From cc0036b2e205940240daeb0b1d9db6358d0ba2a6 Mon Sep 17 00:00:00 2001 From: Ben Small Date: Sat, 22 Jan 2022 14:34:57 -0800 Subject: [PATCH 001/122] Fixed scope on variables leaked to global scope Certain loop variables were unscoped, and thereby becoming global; also, a per-level variable (bannedGroup) was not scoped in certain places to the corresponding level object, thus becoming global as well. --- src/js/compiler.js | 4 ++-- src/js/engine.js | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/js/compiler.js b/src/js/compiler.js index 0561c9a05..ddb973b39 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -923,7 +923,7 @@ function rulesToArray(state) { } - for (i=0;i Date: Sun, 30 Jan 2022 13:57:58 -0800 Subject: [PATCH 002/122] Modified copyState to make a deep copy of the rules property (The rules property is an array of arrays, but was getting copied as if it was an array of ordinary data.) --- src/js/parser.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/js/parser.js b/src/js/parser.js index d760e64c7..279d3f3cb 100644 --- a/src/js/parser.js +++ b/src/js/parser.js @@ -251,6 +251,7 @@ var codeMirrorFn = function() { var soundsCopy = []; var levelsCopy = []; var winConditionsCopy = []; + var rulesCopy = []; for (var i = 0; i < state.legend_synonyms.length; i++) { legend_synonymsCopy.push(state.legend_synonyms[i].concat([])); @@ -270,6 +271,9 @@ var codeMirrorFn = function() { for (var i = 0; i < state.winconditions.length; i++) { winConditionsCopy.push(state.winconditions[i].concat([])); } + for (var i = 0; i < state.rules.length; i++) { + rulesCopy.push(state.rules[i].concat([])); + } var original_case_namesCopy = Object.assign({},state.original_case_names); @@ -294,7 +298,7 @@ var codeMirrorFn = function() { sounds: soundsCopy, - rules: state.rules.concat([]), + rules: rulesCopy, names: state.names.concat([]), From 15f6b8876958ce4b79593e4331bc61cab4636c55 Mon Sep 17 00:00:00 2001 From: Ben Small Date: Tue, 1 Feb 2022 15:20:57 -0800 Subject: [PATCH 003/122] Changed tokenIndex for level messages to -4 to match messages elsewhere The tokenIndex was being set to 1 for level messages, so the comment handler remained active. This could cause strange behavior if the message began with a '('. --- src/js/parser.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/js/parser.js b/src/js/parser.js index 279d3f3cb..6e987304f 100644 --- a/src/js/parser.js +++ b/src/js/parser.js @@ -1114,7 +1114,7 @@ var codeMirrorFn = function() { if (sol) { if (stream.match(/[\p{Z}\s]*message\b[\p{Z}\s]*/u, true)) { - state.tokenIndex = 1;//1/2 = message/level + state.tokenIndex = -4;//-4/2 = message/level var newdat = ['\n', mixedCase.slice(stream.pos).trim(),state.lineNumber]; if (state.levels[state.levels.length - 1].length == 0) { state.levels.splice(state.levels.length - 1, 0, newdat); @@ -1124,7 +1124,7 @@ var codeMirrorFn = function() { return 'MESSAGE_VERB';//a duplicate of the previous section as a legacy thing for #589 } else if (stream.match(/[\p{Z}\s]*message[\p{Z}\s]*/u, true)) {//duplicating previous section because of #589 logWarning("You probably meant to put a space after 'message' innit. That's ok, I'll still interpret it as a message, but you probably want to put a space there.",state.lineNumber); - state.tokenIndex = 1;//1/2 = message/level + state.tokenIndex = -4;//-4/2 = message/level var newdat = ['\n', mixedCase.slice(stream.pos).trim(),state.lineNumber]; if (state.levels[state.levels.length - 1].length == 0) { state.levels.splice(state.levels.length - 1, 0, newdat); @@ -1162,7 +1162,7 @@ var codeMirrorFn = function() { } } } else { - if (state.tokenIndex == 1) { + if (state.tokenIndex == -4) { stream.skipToEnd(); return 'MESSAGE'; } From 55814667b7a46ed3a58dc53a6bce931070b0a038 Mon Sep 17 00:00:00 2001 From: Ben Small Date: Sat, 12 Feb 2022 17:29:49 -0800 Subject: [PATCH 004/122] Changed standalone base files to use stripped URL as name of homepage link (Fixes #800.) --- src/standalone.html | 2 +- src/standalone_inlined.txt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/standalone.html b/src/standalone.html index 096dd3ba8..b4322f5af 100644 --- a/src/standalone.html +++ b/src/standalone.html @@ -229,7 +229,7 @@ diff --git a/src/standalone_inlined.txt b/src/standalone_inlined.txt index 8630954df..e72b7530a 100644 --- a/src/standalone_inlined.txt +++ b/src/standalone_inlined.txt @@ -1,4 +1,4 @@ - __GAMETITLE__

__GAMETITLE__

\ No newline at end of file +}());
From a6e6b1a73005ce0865325efe804c9c3e6078f819 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Mon, 21 Feb 2022 11:26:30 +0100 Subject: [PATCH 005/122] changing bannedGroup back to being local object rather than member of level as in #799 --- src/js/engine.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/js/engine.js b/src/js/engine.js index f8e20f4e4..09be01088 100644 --- a/src/js/engine.js +++ b/src/js/engine.js @@ -2562,7 +2562,8 @@ function processInput(dir,dontDoWin,dontModify) { } - level.bannedGroup = []; + var bannedGroup = []; + level.commandQueue=[]; level.commandQueueSourceRules=[]; var startRuleGroupIndex=0; @@ -2592,8 +2593,8 @@ function processInput(dir,dontDoWin,dontModify) { - applyRules(state.rules, state.loopPoint, startRuleGroupIndex, level.bannedGroup); - var shouldUndo = resolveMovements(level, level.bannedGroup); + applyRules(state.rules, state.loopPoint, startRuleGroupIndex, bannedGroup); + var shouldUndo = resolveMovements(level, bannedGroup); if (shouldUndo) { rigidloop=true; From 37d952999aae24203dcfe877b314064523a2dc43 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Mon, 21 Feb 2022 11:38:00 +0100 Subject: [PATCH 006/122] fixes #804 --- src/js/parser.js | 2 ++ src/tests/resources/errormessage_testdata.js | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/src/js/parser.js b/src/js/parser.js index 4f7d2d1d2..0be60b602 100644 --- a/src/js/parser.js +++ b/src/js/parser.js @@ -372,6 +372,8 @@ var codeMirrorFn = function() { if (state.commentLevel === 0) { return 'comment'; } + } else { + logWarning("You're trying to close a comment here, but I can't find any opening bracket to match it? [This is highly suspicious, you probably want to fix it]",state.lineNumber); } } if (state.commentLevel > 0) { diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index 1dfa938c8..d7c95e6c3 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -471,4 +471,8 @@ var errormessage_testdata = [ "#779 'sfx0 49518300 destroy' works", ["title Simple Block Pushing Game\nauthor David Skinner\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\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\nplayer move up 142315 move\nPlayer Move down 142313\nPlayer Move right 142311\nCrate Move 412312\nPlayer CantMove up 41234\nCrate CantMove 41234\nCrate Create 41234123\nCloseMessage 1241234\nSfx0 213424 sfx1\nSfx3 213424\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 67 : Was expecting a direction, instead found \"142315\".","line 67 : Expecting sfx data, instead found \"move\".","line 75 : too much stuff to define a sound event."],2] ], + [ + "#804 extra closing brackets accepted without comment", + ["OBJECTS\n\nBackground Player .\nBlack\n\nLEGEND\n\nBad = )Player or Player\n\nSOUNDS\nCOLLISIONLAYERS\n\nBackground\n\nRULES\nWINCONDITIONS\nLEVELS\n\n.\n",["line 8 : You're trying to close a comment here, but I can't find any opening bracket to match it? [This is highly suspicious, you probably want to fix it]"],0] + ], ]; \ No newline at end of file From 3cf4c5c24f4c79dc428962b1472b753fa320adf5 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Mon, 21 Feb 2022 15:12:18 +0100 Subject: [PATCH 007/122] fixes #810, #805 (includes unit test modifications) Using hand-picked/modified things from #798 This change weakens the unit test "EDitor crash with opening parenthesis in level section in middle of line #784" a bit, resulting in a less-precise error message, but I think it still does the trick. --- src/js/compiler.js | 11 +++++- src/js/parser.js | 41 +++++++++++++++++--- src/tests/resources/errormessage_testdata.js | 19 +++++++-- 3 files changed, 60 insertions(+), 11 deletions(-) diff --git a/src/js/compiler.js b/src/js/compiler.js index 3f82f0546..11ec28806 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -172,7 +172,9 @@ function generateExtraMembers(state) { } } var added = true; - while (added) { + var targetcount = state.legend_synonyms.length + state.legend_aggregates.length; + while (added) + { added = false; //then, synonyms @@ -183,6 +185,7 @@ function generateExtraMembers(state) { if ((!(key in glyphDict) || (glyphDict[key] === undefined)) && (glyphDict[val] !== undefined)) { added = true; glyphDict[key] = glyphDict[val]; + targetcount--; } } @@ -228,6 +231,7 @@ function generateExtraMembers(state) { } added = true; glyphDict[dat[0]] = mask; + targetcount--; } } } @@ -433,7 +437,7 @@ function levelFromString(state, level) { } else { logError('Error, symbol "' + ch + '" is defined using \'or\', and therefore ambiguous - it cannot be used in a map. Did you mean to define it in terms of \'and\'?', level[0] + j); } - + return o; } var maskint = new BitVec(STRIDE_OBJ); @@ -2680,6 +2684,9 @@ function loadFile(str) { formatHomePage(state); delete state.commentLevel; + delete state.line_should_end; + delete state.line_should_end_because; + delete state.sol_after_comment; delete state.names; delete state.abbrevNames; delete state.objects_candname; diff --git a/src/js/parser.js b/src/js/parser.js index 0be60b602..b0863b7ef 100644 --- a/src/js/parser.js +++ b/src/js/parser.js @@ -287,6 +287,10 @@ var codeMirrorFn = function() { section: state.section, visitedSections: state.visitedSections.concat([]), + line_should_end: state.line_should_end, + line_should_end_because: state.line_should_end_because, + sol_after_comment: state.sol_after_comment, + objects_candname: state.objects_candname, objects_section: state.objects_section, objects_spritematrix: state.objects_spritematrix.concat([]), @@ -332,6 +336,7 @@ var codeMirrorFn = function() { if (sol) { stream.string = stream.string.toLowerCase(); state.tokenIndex=0; + state.line_should_end = false; /* if (state.lineNumber==undefined) { state.lineNumber=1; } @@ -340,6 +345,10 @@ var codeMirrorFn = function() { }*/ } + if (state.sol_after_comment){ + sol = true; + state.sol_after_comment = false; + } function registerOriginalCaseName(candname){ @@ -373,10 +382,14 @@ var codeMirrorFn = function() { return 'comment'; } } else { - logWarning("You're trying to close a comment here, but I can't find any opening bracket to match it? [This is highly suspicious, you probably want to fix it]",state.lineNumber); + logWarning("You're trying to close a comment here, but I can't find any opening bracket to match it? [This is highly suspicious; you probably want to fix it.]",state.lineNumber); + return ''; } } if (state.commentLevel > 0) { + if (sol) { + state.sol_after_comment = true; + } while (true) { stream.eatWhile(/[^\(\)]+/); @@ -406,20 +419,31 @@ var codeMirrorFn = function() { return blankLineHandle(state); } + if (state.line_should_end && !stream.eol()) { + logError('Only comments should go after ' + state.line_should_end_because + ' on a line.', state.lineNumber); + stream.skipToEnd(); + return 'ERROR'; + } + // if (sol) { //MATCH '==="s AT START OF LINE if (sol && stream.match(reg_equalsrow, true)) { + state.line_should_end = true; + state.line_should_end_because = 'a bunch of equals signs (\'===\')'; return 'EQUALSBIT'; } //MATCH SECTION NAME - if (sol && stream.match(reg_sectionNames, true)) { - state.section = stream.string.slice(0, stream.pos).trim(); + var sectionNameMatches = stream.match(reg_sectionNames, true); + if (sol && sectionNameMatches ) { + state.section = sectionNameMatches[0].trim(); if (state.visitedSections.indexOf(state.section) >= 0) { logError('cannot duplicate sections (you tried to duplicate \"' + state.section.toUpperCase() + '").', state.lineNumber); } + state.line_should_end = true; + state.line_should_end_because = `a section name ("${state.section.toUpperCase()}")`; state.visitedSections.push(state.section); var sectionIndex = sectionNames.indexOf(state.section); if (sectionIndex == 0) { @@ -800,15 +824,16 @@ var codeMirrorFn = function() { if (sol) { - //step 1 : verify format var longer = stream.string.replace('=', ' = '); longer = reg_notcommentstart.exec(longer)[0]; var splits = longer.split(/[\p{Z}\s]/u).filter(function(v) { return v !== ''; }); - var ok = true; + + //gotta verify the format + var ok = true; if (splits.length>0) { var candname = splits[0].toLowerCase(); if (keyword_array.indexOf(candname)>=0) { @@ -913,7 +938,7 @@ var codeMirrorFn = function() { for (var i=0;i = wall2\nactiveab = active or activeb or activefell\npartbc = partb or partc\n\ny = target0\nu = Target1 and pit1\nt = Target1\nq = playertarget1\nr = player1\nb = cursor0a\nc = cursor0a and activecurse0\nk = cursor0b and activecurse0\ncurse0a = cursor0a or dead0a\ncurse0 = curse0a or cursor0b\ncurse2 = cursor2a or cursor2b\ncursor0 = cursor0a or cursor0b\n \nplayer = curse2 or activecurse0 or active or dead0a or activefell\ndead0 = dead0a\nx1 = player1 or crate1 or wall1 or target1 or playertarget1 or pit1\nx0 = crate0 or wall0 or pit0 or fell0\nxx = x0 or x1 or curse0\nx0ghost = crate0ghost or wall0ghost or pit0ghost or fell0ghost\ncratex1 = cratel1 or crater1 or crated1 or crateu1\nwallx2 = walll2 or wallr2 or walld2 or wallu2\nwallx1 = walll1 or wallr1 or walld1 or wallu1\nwallx0 = walll0 or wallr0 or walld0 or wallu0\nfellx1 = felll1 or fellr1 or felld1 or fellu1\npit0x = pit0l or pit0r or pit0d or pit0u\npit1x = pit1l or pit1r or pit1d or pit1u\ncrateorfell1 = crate1 or fell1\nplayerormark1 = player1 or player1mark\n\nx0mark = one0mark or two0mark or three0mark or cursor0mark or wall0mark or target0mark or crate0mark or inf0mark\nx1mark = player1mark or crate1mark or pit1mark or wall1mark or fell1mark or ded1mark or crate1mark or Target1mark or PlayerTarget1mark\nx2mark = one2mark or two2mark or three2mark\nxmark = x0mark or x1mark or x2mark\nnumber0 = one0 or two0 or three0 or four0 or five0 or six0 or seven0 or inf0\nnumber2 = one2 or two2 or three2\npicked = pickeda0 or pickedb0 or pickeda2 or pickedb2\n\npickable = player1 or pit1 or crate1 or number0 or wall1 or number2 or fell1 or ded1 or target0 or PlayerTarget1 or Target1\npickable2 = curse0a or pickable or wall0 or crate0 \n\nblackcorner = blackul or blackdl or blackur or blackdr\nrim0x = rim0l or rim0d or rim0u or rim0r\nrim1x = rim1l or rim1d or rim1u or rim1r \n=======\nSOUNDS\n=======\n\nSFX0 51304502\n\nsfx1 22108304\n\nSFX2 84700307\n\nSFX3 78571302\n\nSFX4 25131906\n\nSFX5 13408901\n\nSFX6 50704903\n\nSFX7 24622504\n\nSFX8 29744504\n\nSFX9 13344503\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\npink, chosepink\ncyan, chosecyan\n\n\nPit1,\npit1r\npit1l\npit1d\npit1u\npit0, pit0ghost\npit0r\npit0l\npit0d\npit0u\nblackul\nblackur\nblackdr\nblackdl\nTarget1, PlayerTarget1, target0\n\nfell1, ded1\nfelll1\nfellr1\nfelld1\nfellu1\n\ndead0a, fell0, fell0ghost\nrim0l \nrim0d \nrim0u \nrim0r\n\nrim1l \nrim1d \nrim1u \nrim1r \nPlayer1, Wall1, Crate1, \npit1mark\nfell1mark, ded1mark, target0mark\nTarget1mark, PlayerTarget1mark\nplayer1mark, crate1mark\nwall1mark\none0mark, two0mark, three0mark, wall0mark, inf0mark\none2mark, two2mark, three2mark\ncursor0mark, crate0mark\nnumber0, number2\ncratel1, walll1, \ncrater1, wallr1, \ncrated1, walld1, \ncrateu1, wallu1, \ncursor0, wall0, crate0, wall0ghost, crate0ghost\n walll0, cratel0\n wallr0, crater0\n walld0, crated0\n wallu0, crateu0\n crate01\n wall2, wall2ghost\n wallr2\n wallu2\n walll2\n walld2\n cursor2a, cursor2b\n \nfellcant1\nfellcant0\ncant0\ncant1\ncant2\nsupported\nactivefell\nactive, activeb\nactivecurse0\nholding\ndecrement\npickeda0, pickeda2\npickedb0, pickedb2\nplacemark\npartb partc\nshowthis\nshowhere\nblack\n\n======\nRULES\n======\n\n(Deal with action-----------------------------------------------------------------------------)\n\n[action activecurse0 curse0] -> [activecurse0 action curse0]\n\n(pick up ready icon)\ndown[action curse0a no holding pickable|number0] -> [curse0a holding pickable|number0 pickeda0] SFX9\ndown[action cursor0b no holding pickable|number0] -> [cursor0b holding pickable|number0 pickedb0] SFX9\ndown[action cursor2a no holding pickable2|number2] -> [cursor2a holding pickable2|number2 pickeda2] SFX9\ndown[action cursor2b no holding pickable2|number2] -> [cursor2b holding pickable2|number2 pickedb2] SFX9\n(switch to new ready icon)\ndown [action curse0a pickable| number0 no pickeda0][pickeda0] -> [curse0a pickable | number0 pickeda0][] SFX9\ndown [action cursor0b pickable| number0 no pickedb0][pickedb0] -> [cursor0b pickable | number0 pickedb0][] SFX9\ndown [action cursor2a pickable2| number2 no pickeda2][pickeda2] -> [cursor2a pickable2 | number2 pickeda2][] SFX9\ndown [action cursor2b pickable2| number2 no pickedb2][pickedb2] -> [cursor2b pickable2 | number2 pickedb2][] SFX9\n\n(put down ready icon)\ndown [action curse0 holding pickable| picked] -> [curse0 pickable|] SFX8\ndown [action cursor2a holding pickable2| pickeda2] -> [cursor2a pickable2|] SFX8\ndown [action cursor2b holding pickable2| pickedb2] -> [cursor2b pickable2|] SFX8\n\n(show mark)\nlate [xmark] -> []\nlate [showthis] -> []\nlate [showhere] -> []\n\nlate down [ | number0 pickeda0][curse0a] -> [showthis | number0 pickeda0][curse0a showhere]\nlate down [ | number0 pickedb0][cursor0b] -> [showthis | number0 pickedb0][cursor0b showhere]\nlate down [ | number2 pickeda2][cursor2a] -> [showthis | number2 pickeda2][cursor2a showhere]\nlate down [ | number2 pickedb2][cursor2b] -> [showthis | number2 pickedb2][cursor2b showhere]\nlate [showthis player1][showhere] -> [showthis player1][showhere player1mark]\nlate [showthis pit1][showhere] -> [showthis pit1][showhere pit1mark]\nlate [showthis crate1][showhere] -> [showthis crate1][showhere crate1mark]\nlate [showthis wall1][showhere] -> [showthis wall1][showhere wall1mark]\nlate [showthis one0][showhere] -> [showthis one0][showhere one0mark]\nlate [showthis two0][showhere] -> [showthis two0][showhere two0mark]\nlate [showthis three0][showhere] -> [showthis three0][showhere three0mark]\nlate [showthis one2][showhere] -> [showthis one2][showhere one2mark]\nlate [showthis two2][showhere] -> [showthis two2][showhere two2mark]\nlate [showthis three2][showhere] -> [showthis three2][showhere three2mark]\nlate [showthis wall0][showhere] -> [showthis wall0][showhere wall0mark]\nlate [showthis fell1][showhere] -> [showthis fell1][showhere fell1mark]\nlate [showthis ded1][showhere] -> [showthis ded1][showhere ded1mark]\nlate [showthis target0][showhere] -> [showthis target0][showhere target0mark]\nlate [showthis crate0][showhere] -> [showthis crate0][showhere crate0mark]\nlate [showthis cursor0][showhere] -> [showthis cursor0][showhere cursor0mark]\nlate [showthis inf0][showhere] -> [showthis inf0][showhere inf0mark]\nlate [showthis Target1][showhere] -> [showthis target1][showhere Target1mark]\nlate [showthis PlayerTarget1][showhere] -> [showthis PlayerTarget1][showhere PlayerTarget1mark]\n(connect cratemark)\nup [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crateu1 | crate1 crated1]\ndown [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crated1 | crate1 crateu1]\nleft [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark cratel1 | crate1 crater1]\nright [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crater1 | crate1 cratel1]\nup [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crateu1 | fell1 felld1]\ndown [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crated1 | fell1 fellu1]\nleft [action curse0 holding fell1mark no xx no number0 no number2| fell1] -> [action curse0 holding fell1mark cratel1 | fell1 fellr1]\nright [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crater1 | fell1 felll1]\n\n(place mark)\n[placemark] -> []\n\ndown [action curse0a holding xmark no x1 no number0][pickeda0 number0] -> [curse0a holding xmark placemark][pickeda0 decrement number0] SFX7\ndown [action cursor0b holding xmark no x1 no number0][pickedb0 number0] -> [cursor0b holding xmark placemark][pickedb0 decrement number0] SFX7\n\ndown [action cursor2a holding xmark no xx no number0 no number2][pickeda2 number2] -> [cursor2a holding xmark placemark][pickeda2 decrement number2] SFX7\ndown [action cursor2b holding xmark no xx no number0 no number2][pickedb2 number2] -> [cursor2b holding xmark placemark][pickedb2 decrement number2] SFX7\n\n\n\n[placemark player1mark] -> [placemark player1 player1mark]\n[placemark pit1mark] -> [placemark pit1 pit1mark]\n[placemark crate1mark] -> [placemark crate1 crate1mark]\n[placemark wall1mark] -> [placemark wall1 wall1mark]\n[placemark one0mark] -> [placemark one0 one0mark]\n[placemark two0mark] -> [placemark two0 two0mark]\n[placemark three0mark] -> [placemark three0 three0mark]\n[placemark one2mark] -> [placemark one2 one2mark]\n[placemark two2mark] -> [placemark two2 two2mark]\n[placemark three2mark] -> [placemark three2 three2mark]\n[placemark wall0mark] -> [placemark wall0 wall0mark]\n[placemark fell1mark] -> [placemark fell1 fell1mark]\n[placemark ded1mark] -> [placemark ded1 ded1mark]\n[placemark target0mark] -> [placemark target0 target0mark]\n[placemark crate0mark] -> [placemark crate0 crate0mark]\n[placemark Target1mark] -> [placemark target1 Target1mark]\n[placemark inf0mark] -> [placemark inf0 inf0mark]\n[placemark PlayerTarget1mark] -> [placemark playertarget1 PlayerTarget1mark]\ndown [placemark cursor0mark][curse0a|no one2] -> [ cursor0b cursor0mark][curse0a|]\n[placemark cursor0mark] -> [placemark cursor0a cursor0mark]\n\n(decrement number of placed item)\ndown [xmark holding cursor2a][pickable2|one2 decrement pickeda2] -> [xmark holding cursor2a][|one2 decrement pickeda2]\ndown [xmark holding cursor2b][pickable2|one2 decrement pickedb2] -> [xmark holding cursor2b][|one2 decrement pickedb2]\ndown [xmark holding curse0a][pickable|one0 decrement pickeda0] -> [xmark holding curse0a][|one0 decrement pickeda0]\ndown [xmark holding cursor0b][pickable|one0 decrement pickedb0] -> [xmark holding cursor0b][|one0 decrement pickedb0]\ndown [xmark holding cursor2a][|one2 decrement pickeda2] -> [cursor2a][|]\ndown [xmark holding cursor2b][|one2 decrement pickedb2] -> [cursor2b][|]\ndown [xmark holding cursor0a][|one0 decrement pickeda0] -> [cursor0a][|]\ndown [xmark holding cursor0b][|one0 decrement pickedb0] -> [cursor0b][|]\n[one0 decrement] -> []\n[two0 decrement] -> [one0]\n[three0 decrement] -> [two0]\n[four0 decrement] -> [three0]\n[five0 decrement] -> [four0]\n[six0 decrement] -> [five0]\n[seven0 decrement] -> [six0]\n[one2 decrement] -> []\n[two2 decrement] -> [one2]\n[three2 decrement] -> [two2]\n\n\n\n(player -> cursor)\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [player1 action active no wall0ghost no crate0ghost][partbc] -> [cursor0a player1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [ded1 action activefell no wall0ghost no crate0ghost][partbc] -> [cursor0a ded1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\n\n(cursor holding -> player)\ndown [action curse0a activecurse0 player1 holding xmark][| number0 pickeda0] -> [active player1][ | number0] SFX6\ndown [action curse0a activecurse0 ded1 holding xmark][| number0 pickeda0] -> [activefell ded1][ | number0] SFX6\ndown [action cursor0b activecurse0 player1 holding xmark][| number0 pickedb0] -> [active player1][ | number0] SFX6\ndown [action cursor0b activecurse0 ded1 holding xmark][| number0 pickedb0] -> [activefell ded1][ | number0] SFX6\n(empty cursor -> player)\n[action curse0 player1 activecurse0 no holding] -> [active player1] SFX6\n[action curse0 ded1 activecurse0 no holding] -> [activefell ded1] SFX6\n(red -> blue)\n[action cursor0a activecurse0 holding xmark][partc][pickeda0] -> [cursor0a cursor2a][partc][] SFX5\n[action cursor0a activecurse0 ][partc] -> [cursor0a cursor2a][partc] SFX5\n[action cursor0b activecurse0 holding xmark][partc][pickedb0] -> [cursor0b cursor2b][partc][] SFX5\n[action cursor0b activecurse0 ][partc] -> [cursor0b cursor2b][partc] SFX5\n(blue holding -> red)\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\nrandom down [action curse2 curse0 holding xmark][| number2 pickeda2] -> [activecurse0 cursor0a][ | number2] SFX6\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\n(empty blue -> red)\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\nrandom [action curse2 curse0 no holding] -> [activecurse0 cursor0a] SFX6\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\n\n\n[action player] -> SFX0\n[action curse0] -> SFX0\n\n(Aesthetic----------------------------------------------------------------------------------------)\n\n\n\n(ghosts)\n[player1 active][pit0] -> [player1 active][pit0ghost]\n[pit0ghost][cursor0] -> [pit0][cursor0]\n[player1 active][wall0] -> [player1 active][wall0ghost]\n[wall0ghost][cursor0] -> [wall0][cursor0]\n[player1 active][crate0] -> [player1 active][crate0ghost]\n[crate0ghost][cursor0] -> [crate0][cursor0]\n[player1 active][fell0] -> [player1 active][fell0ghost]\n[fell0ghost][cursor0] -> [fell0][cursor0]\n[curse0 activecurse0][wall2] -> [curse0 activecurse0][wall2ghost]\n[wall2ghost][curse2] -> [wall2][curse2]\n\n\n(wall boundaries)\n[wallx2] -> []\n[wallx1] -> []\n[wallx0] -> []\nup [wall2 | no wall2] -> [wall2 wallu2 | ]\ndown [wall2 | no wall2] -> [wall2 walld2 | ]\nleft [wall2 | no wall2] -> [wall2 walll2 | ]\nright [wall2 | no wall2] -> [wall2 wallr2 | ]\nup [wall1 | no wall1] -> [wall1 wallu1 | ]\ndown [wall1 | no wall1] -> [wall1 walld1 | ]\nleft [wall1 | no wall1] -> [wall1 walll1 | ]\nright [wall1 | no wall1] -> [wall1 wallr1 | ]\nup [wall0 | no wall0] -> [wall0 wallu0 | ]\ndown [wall0 | no wall0] -> [wall0 walld0 | ]\nleft [wall0 | no wall0] -> [wall0 walll0 | ]\nright [wall0 | no wall0] -> [wall0 wallr0 | ]\n\n(crate connectors)\nup [crateu0|] -> [crateu0 | crated0]\nright [crater0|] -> [crater0 | cratel0]\nup [crateu1|] -> [crateu1 | crated1]\nright [crater1|] -> [crater1 | cratel1]\n(pit connectors)\n[blackcorner] -> []\n[pit0x] -> [] \n[pit1x] -> [] \nup [pit1 | pit1] -> [pit1u pit1|pit1d pit1]\nright [pit1 | pit1] -> [pit1r pit1|pit1l pit1]\nup [pit0 | pit0] -> [pit0u pit0|pit0d pit0]\nright [pit0 | pit0] -> [pit0r pit0|pit0l pit0]\n[pit1u pit1r] -> [pit1u pit1r blackur]\n[pit1u pit1l] -> [pit1u pit1l blackul]\n[pit1d pit1r] -> [pit1d pit1r blackdr]\n[pit1d pit1l] -> [pit1d pit1l blackdl]\n[pit0u pit0r] -> [pit0u pit0r blackur]\n[pit0u pit0l] -> [pit0u pit0l blackul]\n[pit0d pit0r] -> [pit0d pit0r blackdr]\n[pit0d pit0l] -> [pit0d pit0l blackdl]\n[rim1x] -> []\n[rim0x] -> []\nup[pit0|no pit0] -> [pit0 rim0u|]\ndown[pit0|no pit0] -> [pit0 rim0d|]\nleft[pit0|no pit0] -> [pit0 rim0l|]\nright[pit0|no pit0] -> [pit0 rim0r|]\nup[pit1|no pit1] -> [pit1 rim1u|]\ndown[pit1|no pit1] -> [pit1 rim1d|]\nleft[pit1|no pit1] -> [pit1 rim1l|]\nright[pit1|no pit1] -> [pit1 rim1r|]\nlate [pink] -> []\nlate [cyan] -> []\nlate [chosepink] -> []\nlate [chosecyan] -> []\nlate down [pickable |number0] -> [pickable pink | number0 pink]\nlate down [pickable2 |number2] -> [pickable2 cyan | number2 cyan]\nlate up [pink picked|pink] -> [chosepink picked|chosepink ]\nlate up [cyan picked|cyan ] -> [chosecyan picked|chosecyan ]\n\n(Movement----------------------------------------------------------------------------------------)\n\n(move attached items)\n[moving activecurse0 curse0] -> [moving activecurse0 moving curse0]\n[moving active player1] -> [moving active moving player1]\n[moving activefell ded1] -> [moving activefell moving ded1]\n[moving curse0 holding] -> [moving curse0 moving holding]\n[moving curse2 holding] -> [moving curse2 moving holding]\n\n(reset and propogate cant)\n[cant0] -> []\n[cant1] -> []\n[cant2] -> []\n[fellcant0] -> []\n[fellcant1] -> []\n\n[black no cant0 no cant1 no cant2] -> [black cant0 cant1 cant2]\n[wall2 no cant2] -> [wall2 cant2]\n[wall1 no cant1] -> [wall1 cant1]\n[wall0 no cant0] -> [wall0 cant0]\n[number0] -> [number0 cant1]\n[number2] -> [number2 cant1]\n[no pit1 no fellcant1] -> [fellcant1]\n[no pit0 no fellcant0] -> [fellcant0]\n\n[> ded1][fell1|fellcant1] -> [> ded1][fell1 fellcant1 | fellcant1]\n+ [> ded1][ded1|fellcant1] -> [> ded1][ded1 fellcant1 | fellcant1]\n+ up[fellu1|fellcant1] -> [fellu1 fellcant1 | fellcant1]\n+ left[felll1|fellcant1] -> [felll1 fellcant1 | fellcant1]\n+ down[felld1|fellcant1] -> [felld1 fellcant1 | fellcant1]\n+ right[fellr1|fellcant1] -> [fellr1 fellcant1 | fellcant1]\n\n+ [> player1][crate1|cant1] -> [> player1][crate1 cant1 | cant1]\n+ [> player1][player1|cant1] -> [> player1][player1 cant1 | cant1]\n+ up[crateu1|cant1] -> [crateu1 cant1 | cant1]\n+ left[cratel1|cant1] -> [cratel1 cant1 | cant1]\n+ down[crated1|cant1] -> [crated1 cant1 | cant1]\n+ right[crater1|cant1] -> [crater1 cant1 | cant1]\n+ [crate1 crate0 cant0] -> [crate1 crate0 cant0 cant1]\n+ [crate1 crate0 cant1] -> [crate1 crate0 cant0 cant1]\n+ [> dead0][dead0|fellcant0] -> [> dead0][dead0 fellcant0 | fellcant0]\n+ [> cursor0][cursor0|cant0] -> [> cursor0][cursor0 cant0 | cant0]\n+ [> cursor0][crate0 | number0] -> [> cursor0][crate0 cant0| number0]\n+ [> cursor0][crate0|cant0] -> [> cursor0][crate0 cant0 | cant0]\n+ up[crateu0|cant0] -> [crateu0 cant0 | cant0]\n+ left[cratel0|cant0] -> [cratel0 cant0 | cant0]\n+ down[crated0|cant0] -> [crated0 cant0 | cant0]\n+ right[crater0|cant0] -> [crater0 cant0 | cant0]\n\n[> curse2 | wall2] -> [stationary curse2 | wall2]\n[> curse2 | black] -> [stationary curse2 | black]\n[cursor0 cant0] -> [stationary cursor0 cant0]\n[player1 cant1] -> [stationary player1 cant1]\n[ded1 fellcant1] -> [stationary ded1 fellcant1]\n[dead0 fellcant0] -> [stationary dead0 fellcant0]\n\n\n(propagate movement)\n\n[ > Ded1 | Fell1 no fellcant1] -> [ > Ded1 | > Fell1 ]\n\n[ > Cursor0 | Crate0 ] -> [ > Cursor0 | > Crate0 ]\n+ [ > Cursor0 | Cursor0 ] -> [ > Cursor0 | > Cursor0 ]\n+ [ > Crate0 | Crate0 ] -> [ > Crate0 | > Crate0 ]\n\n+ [ > Player1 | Crate1 ] -> [ > Player1 | > Crate1 ]\n+ [ > Player1 | Player1] -> [ > Player1 | > Player1 ]\n+ [ > Crate1 | Player1 ] -> [ > Crate1 | > Player1 ]\n+ [> crate1|crate1] -> [> crate1 | > crate1]\n+ up[moving crate1 crateu1|crate1] -> [moving crate1 crateu1 | moving crate1]\n+ left[moving crate1 cratel1|crate1] -> [moving crate1 cratel1 | moving crate1]\n+ down[moving crate1 crated1|crate1] -> [moving crate1 crated1 | moving crate1]\n+ right[moving crate1 crater1|crate1] -> [moving crate1 crater1 | moving crate1]\n \n\n[> fell1|fell1] -> [> fell1 | > fell1]\n+ up[moving fell1 fellu1|fell1] -> [moving fell1 fellu1 | moving fell1]\n+ left[moving fell1 felll1|fell1] -> [moving fell1 felll1 | moving fell1]\n+ down[moving fell1 felld1|fell1] -> [moving fell1 felld1 | moving fell1]\n+ right[moving fell1 fellr1|fell1] -> [moving fell1 fellr1 | moving fell1]\n\n[moving crate1 cratex1] -> [moving crate1 moving cratex1]\n[moving fell1 fellx1] -> [moving fell1 moving fellx1]\n[moving crate1 crate0ghost] -> [moving crate1 moving crate0ghost]\n\n[active stationary player1] -> [stationary active stationary player1]\n[activecurse0 stationary curse0] -> [stationary activecurse0 stationary curse0]\n[activefell stationary ded1] -> [stationary activefell stationary ded1]\n[stationary cursor0 activecurse0 holding] -> [stationary cursor0 activecurse0 stationary holding]\n[stationary curse2 holding] -> [stationary curse2 stationary holding]\n\n\n(falling)\nlate [supported] -> []\n\nlate [crate1 ded1] -> [crate1 supported ded1]\nlate [crate1 no pit1] -> [crate1 supported]\nlate [crate1 fell1] -> [crate1 fell1 supported]\n\n\nlate up[crateu1|supported] -> [crateu1 supported | supported]\n+ late left[cratel1|supported] -> [cratel1 supported | supported]\n+ late down[crated1|supported] -> [crated1 supported | supported]\n+ late right[crater1|supported] -> [crater1 supported | supported]\n\n\nlate [cursor0 pit0 no fell0] -> [pit0 dead0a]SFX3\nlate [player1 active pit1 no fell1 no ded1] -> [pit1 ded1 activefell]SFX3\nlate [player1 pit1 no fell1 no ded1] -> [pit1 ded1 ]SFX3\nlate [crate0 pit0 no supported] -> [pit0 fell0]SFX3\nlate [crate1 pit1 no supported] -> [pit1 fell1] SFX3\n\n\n\nlate [crateu1 no crate1 fell1] -> [fellu1 fell1]\nlate [cratel1 no crate1 fell1] -> [felll1 fell1]\nlate [crater1 no crate1 fell1] -> [fellr1 fell1]\nlate [crated1 no crate1 fell1] -> [felld1 fell1]\n\nlate [crateu1 no crate1] -> []\nlate [cratel1 no crate1] -> []\nlate [crater1 no crate1] -> []\nlate [crated1 no crate1] -> []\nlate up [crateu1 |no crate1] -> [|]\nlate left [cratel1 |no crate1] -> [|]\nlate right [crater1 |no crate1] -> [|]\nlate down [crated1 |no crate1] -> [|]\nlate [player1 ded1] -> [player1 ded1] SFX0\nlate [player1 ded1] -> cancel \n\n[moving crate0] -> SFX2\n[moving crate1] -> SFX2\n\n==============\nWINCONDITIONS\n==============\n\n\nAll target0 on crate0\nAll Target1 on Crateorfell1\nAll PlayerTarget1 on Playerormark1\nno Cursor0 on target1\nno cursor0 on PlayerTarget1\n\n=======\nLEVELS\n=======\n\nmessage Book 1: BASE\n\nmessage Page 1.1: GOAL\n\n#######\n#`````#\n#`p`t`#\n#`````#\n#`o`q`#\n#`````#\n#######\n\nmessage Page 1.2: TOOL\n\n#######\n#`t`o`#\n#t`-:`#\n#``tlo#\n#p````#\n#######\n\nmessage Page 1.3: HOLE\n\n########\n##``0`##\n#```0``#\n#``o0`t#\n#po:0``#\n#``:0`t#\n#```0``#\n##``0`##\n########\n\nmessage Page 1.4: FALL\n\n########\n#00u``0#\n#00po`0#\n#`000`0#\n#`00```#\n#`000``#\n#`000``#\n########\n\nmessage Book 2: EDIT\n\nmessage Page 2.1: MINI\n\n||||||||||\n|```````'|\n|`######`|\n|`#````#`|\n|`#``t`#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 2.2: FORM\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 2.3: PLUG\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#ro`o`#`|\n|`#####`#`|\n|`###`o`#`|\n|`#``oLo#`|\n|`#````##`|\n|`#`q####`|\n|`#######`|\n|`````````|\n|``c`0````|\n|````8````|\n|`````````|\n|||||||||||\n\nmessage Page 2.4: TRAP\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#``````#`|\n|`#``t```#`|\n|`#`tqt``#`|\n|`#``t```#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````16````|\n|``````````|\n||||||||||||\n\nmessage Book 3: DUAL\n\nmessage Page 3.1: CO-OP\n\n#######\n####qq#\n#po000#\n#`o000#\n###o``#\n###r`'#\n#######\n\nmessage Page 3.2: REST\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#`r00q#`|\n|`#######`|\n|`````````|\n|``c`o````|\n|````2````|\n|`````````|\n|||||||||||\nmessage Page 3.3: SAIL\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#0000q#`|\n|`#00000#`|\n|`#00000#`|\n|`#```00#`|\n|`#```00#`|\n|`#######`|\n|`````````|\n|``c`ro```|\n|````23```|\n|`````````|\n|||||||||||\n\nmessage Page 3.4: TWIN\n\n|||||||||||||||||||||\n|`````````+````````'|\n|`#######`+`#######`|\n|`#`````#`+`#`````#`|\n|`#```q`#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`q```#`|\n|`#`````#`+`#`````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````6````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Book 4: WHAT\n\nmessage Page 4.1: GUIS\n\n\n#######\n#q#``'#\n#``8#`#\n#`#p#`#\n#`#o#`#\n#`#1``#\n#######\n\nmessage Page 4.2: IDEA\n\n||||||||||\n|```````'|\n|`######`|\n|`#```t#`|\n|`#```t#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```31```|\n|````````|\n||||||||||\n\nmessage Page 4.3: FILL\n\n\n######\n#0poq#\n#0`70#\n#'000#\n#0000#\n######\n\nmessage Page 4.4: A LOT\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|``````'|\n|`c3o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Book 5: UHHH\n\nmessage Page 5.1: WALL\n\n||||||||||\n|```````'|\n|`######`|\n|`#t`#`#`|\n|`#````#`|\n|`##`o`#`|\n|x+xxxx+x|\n|`#````#`|\n|`#````#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 5.2: SAFE\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#xxxxx#`|\n|`#x```x#`|\n|`#x`t`x#`|\n|`#x```x#`|\n|`#xxxxx#`|\n|`#######`|\n|`````````|\n|`c`o1r```|\n|```111```|\n|`````````|\n|||||||||||\n\nmessage Page 5.3: LOCK\n\n|||||||||||||\n|o```'`xxxcx|\n|1``x```qx!x|\n|`1!````qx`x|\n|``1?x`xxx?x|\n|r``1````!`x|\n|````2`xxxxx|\n|||||||||||||\n\n\n\nmessage Page 5.4: POST\n\n+++++++++\n+p#```#q+\n+`#``'#3+\n+`#`1`#`+\n+`#`2`#`+\n+`#```#`+\n+`#```#`+\n+++++++++\nmessage Book 6: BLUE\n\nmessage Page 6.1: META\n\n||||||||||||\n|++++++++++|\n|+````\"```+|\n|+`######`+|\n|+`#````#`+|\n|+`#``t`#`+|\n|+`#````#`+|\n|+`######`+|\n|+````````+|\n|+```ro```+|\n|+````````+|\n|+````````+|\n|++++++++++|\n|``````````|\n|``~`1b````|\n|````{[````|\n|``````````|\n||||||||||||\n\nmessage Page 6.2: WILD\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`#######`+|\n|+`#0000q#`+|\n|+`#00000#`+|\n|+`#`0000#`+|\n|+`#`0000#`+|\n|+`#```00#`+|\n|+`#######`+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\nmessage Page 6.3: UH OH\n\n|||||||||||\n|+++++++++|\n|+``````\"+|\n|+`+++++`+|\n|+`+```+`+|\n|+`+`t`+`+|\n|+`+```+`+|\n|+`+```+`+|\n|+`+++++`+|\n|+```````+|\n|+```o```+|\n|+```````+|\n|+```````+|\n|+++++++++|\n|`````````|\n|`````````|\n|`~`1br```|\n|```][[```|\n|`````````|\n|||||||||||\n\nmessage Page 6.4: VARY\n\n|||||||||||||||||||||||\n|++++++++++&++++++++++|\n|+``````\"`x&x````````+|\n|+`######`x&x`######`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`#`qt`#`x&x`#`tq`#`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`######`x&x`######`+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|++++++++++&++++++++++|\n|``````````&``````````|\n|`~`r1ob```&`_`r1ob```|\n|```[{[[```&```[[[[```|\n|``````````&``````````|\n|||||||||||||||||||||||\n\nmessage Book 7: ?!?!\n\nmessage Page 7.1: EACH\n\n+++++++\n+````'+\n+`###`+\n+`#q#`+\n+`#0#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`###`+\n+`````+\n+``c``+\n+`r0o`+\n+``4``+\n+`````+\n+++++++\n\nmessage Page 7.2: HOLD\n\n&&&&&&&&&\n&`8```+`&\n&`{po`+`&\n&`\"```+t&\n&&&&&&&&&\n\nmessage Page 7.3: TRIP\n\n&&&&&&&\n&```\"`&\n&`o`!`&\n&`````&\n&+++++&\n&`r2b`&\n&`[[{~&\n&y```t&\n&&&&&&&\n\nmessage Page 7.4: PLAN\n\n\n|||||||||\n|```t```|\n|```````|\n|+++++++|\n|```````|\n|```````|\n|>>>>>>>|\n|```````|\n|```````|\n|+++++++|\n|```~```|\n|[[`2\"11|\n|[[`[`[[|\n|&&`&&&&|\n|&&bor&&|\n|||||||||\n\n\n\n\n\nmessage Book 8: (RE)STAR(TS)\n\n\nmessage Page 8.1: (IN)FORM(ED)\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 8.2: (EN)TWIN(ED)\n\n|||||||||||||||||||||\n|`````````+`````````|\n|`#######`+`#######`|\n|`#````q#`+`#`````#`|\n|`#`````#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`````#`|\n|`#`````#`+`#q````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````5````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Page 8.3: (ZE)ALOT(RY)\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|```````|\n|`c2o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Page 8.4: (BE)WILD(ER)\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`+++++++`+|\n|+`+0000q+`+|\n|+`+00000+`+|\n|+`+00000+`+|\n|+`+`0000+`+|\n|+`+```00+`+|\n|+`+++++++`+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",["line 898 : You named an object \"|\", but this is a keyword. Don't do that!","line 915 : You named an object \"[\", but this is a keyword. Don't do that!","line 917 : You named an object \"]\", but this is a keyword. Don't do that!","line 918 : You named an object \">\", but this is a keyword. Don't do that!","line 1134 : This rule has some content of the form \"X no X\" (either directly or maybe indirectly - check closely how the terms are defined if nothing stands out) which can never match and so the rule is getting removed during compilation.","line 1135 : This rule has some content of the form \"X no X\" (either directly or maybe indirectly - check closely how the terms are defined if nothing stands out) which can never match and so the rule is getting removed during compilation.","line 1136 : This rule has some content of the form \"X no X\" (either directly or maybe indirectly - check closely how the terms are defined if nothing stands out) which can never match and so the rule is getting removed during compilation.","line 1137 : This rule has some content of the form \"X no X\" (either directly or maybe indirectly - check closely how the terms are defined if nothing stands out) which can never match and so the rule is getting removed during compilation."],0] ], [ - "EDitor crash with opening parenthesis in level section in middle of line #784", - ["title Simple Block Pushing Game\nauthor David Skinner\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\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\nobstacle = crate or wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nTarget\n\n======\nRULES\n======\n(\n[ > player | crate | obstacle ] -> cancel\n[ > player | wall ] -> cancel\n\n\n[ > Player | Crate | ] -> [ > Player | | Crate ]\n[ wall | > player | ] -> [ wall | wall | player ]\n\n)\n\n[ > player | crate ] -> [ > player | > crate ]\n[ wall | > player ] -> [ > wall | > player ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n....\n....\n....\n....\n\n\n.....\n.....\n.....\n.....\n.....\n\n.....\n.....\n.....\n.....\n.....\n\n.p..\no...\n.*@.\n#..#\n\n)(ea\n.....\n.o#..\n.@#..\n.#*p.\n.....\n\n........\n.####...\n.#.o#...\n.#..###.\n.#@p..#.\n.#..*.#.\n.#..###.\n.####...\n........\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*O.#\n##.*P*.#\n#..O*O.#\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",["line 127 : Detected a comment where I was expecting a level. Oh gosh; if this is to do with you using '(' as a character in the legend, please don't do that ^^"],1] + "Editor crash with opening parenthesis in level section in middle of line #784", + ["title Simple Block Pushing Game\nauthor David Skinner\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\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\nobstacle = crate or wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nTarget\n\n======\nRULES\n======\n(\n[ > player | crate | obstacle ] -> cancel\n[ > player | wall ] -> cancel\n\n\n[ > Player | Crate | ] -> [ > Player | | Crate ]\n[ wall | > player | ] -> [ wall | wall | player ]\n\n)\n\n[ > player | crate ] -> [ > player | > crate ]\n[ wall | > player ] -> [ > wall | > player ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n....\n....\n....\n....\n\n\n.....\n.....\n.....\n.....\n.....\n\n.....\n.....\n.....\n.....\n.....\n\n.p..\no...\n.*@.\n#..#\n\n)(ea\n.....\n.o#..\n.@#..\n.#*p.\n.....\n\n........\n.####...\n.#.o#...\n.#..###.\n.#@p..#.\n.#..*.#.\n.#..###.\n.####...\n........\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*O.#\n##.*P*.#\n#..O*O.#\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",["line 127 : You're trying to close a comment here, but I can't find any opening bracket to match it? [This is highly suspicious; you probably want to fix it.]"],0] ], [ "#789 1 Lime Rick (recursive player at start of list)", @@ -473,6 +473,19 @@ var errormessage_testdata = [ ], [ "#804 extra closing brackets accepted without comment", - ["OBJECTS\n\nBackground Player .\nBlack\n\nLEGEND\n\nBad = )Player or Player\n\nSOUNDS\nCOLLISIONLAYERS\n\nBackground\n\nRULES\nWINCONDITIONS\nLEVELS\n\n.\n",["line 8 : You're trying to close a comment here, but I can't find any opening bracket to match it? [This is highly suspicious, you probably want to fix it]"],0] + ["OBJECTS\n\nBackground Player .\nBlack\n\nLEGEND\n\nBad = )Player or Player\n\nSOUNDS\nCOLLISIONLAYERS\n\nBackground\n\nRULES\nWINCONDITIONS\nLEVELS\n\n.\n",["line 8 : You're trying to close a comment here, but I can't find any opening bracket to match it? [This is highly suspicious; you probably want to fix it.]"],0] ], + [ + "parsing sections names, not allowing things directly after #805", + ["OBJECTS.\nRed\n",["line 1 : Only comments should go after a section name (\"OBJECTS\") on a line.","No collision layers defined. All objects need to be in collision layers.","line 2 : color not specified for object \"red\".","you have to define something to be the background","error, didn't find any object called player, either in the objects section, or the legends section. there must be a player!","line 2 : Object \"RED\" has been defined, but not assigned to a layer.","No levels found. Add some levels!"],7] + ], + [ + "#805 parsing sections names, not allowing things directly after (no error test)", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n(what\n )======== (hello)\n \nOBJECTS (hello)\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\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======= ((\nno don't do\n this eveer) )SOUNDS\n=======\n\nCrate MOVE 36772507\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[],0] + ], + [ + "#805 untitled test (Error producing test)", + ["Objects are fun to use.\n\nBackground .\nBlack\n\nPlayer P\nGreen\n\nLEGEND\nSOUNDS\nCOLLISIONLAYERS\n\nBackground\nPlayer\n\nRULES\nWINCONDITIONS\n\nNo Fun\n\nLEVELS\n\nP...\n",["line 1 : Only comments should go after a section name (\"OBJECTS\") on a line.","line 19 : Error in win condition: \"FUN\" is not a valid object name.","line 19 : Unwelcome term \"fun\" found in win condition. Win conditions objects have to be objects or properties (defined using \"or\", in terms of other properties)"],3] + ], + ]; \ No newline at end of file From 24308fa692d624e4bd864c0172968919fb2635d0 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Mon, 21 Feb 2022 15:24:47 +0100 Subject: [PATCH 008/122] oops acidentally added some WIP code about something --- src/js/compiler.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/js/compiler.js b/src/js/compiler.js index 11ec28806..dcdc5e8f8 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -171,8 +171,8 @@ function generateExtraMembers(state) { glyphDict[n] = mask; } } + var added = true; - var targetcount = state.legend_synonyms.length + state.legend_aggregates.length; while (added) { added = false; @@ -185,8 +185,7 @@ function generateExtraMembers(state) { if ((!(key in glyphDict) || (glyphDict[key] === undefined)) && (glyphDict[val] !== undefined)) { added = true; glyphDict[key] = glyphDict[val]; - targetcount--; - } + } } //then, aggregates @@ -231,10 +230,10 @@ function generateExtraMembers(state) { } added = true; glyphDict[dat[0]] = mask; - targetcount--; } } } + state.glyphDict = glyphDict; var aggregatesDict = {}; From f34cc8e73e3f177c6fbb0255149f48064243bcc2 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Mon, 21 Feb 2022 19:11:21 +0100 Subject: [PATCH 009/122] fixes #809, fixes #812 Compiler now uses the parser to parse the legend section rather than having its own very primitive parsing. I hope this doesn't break anything - I should probably throw some more examples with weird unicode at it.... related to #798 [Also includes test-cases, and fixes up some old ones due to me improving error messages, and removed a superfluous/misleading error messages from the lime rick examples] --- src/js/compiler.js | 2 + src/js/parser.js | 1653 +++++++++--------- src/tests/resources/errormessage_testdata.js | 14 +- 3 files changed, 866 insertions(+), 803 deletions(-) diff --git a/src/js/compiler.js b/src/js/compiler.js index dcdc5e8f8..45d5fc15d 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -2682,6 +2682,7 @@ function loadFile(str) { formatHomePage(state); + //delete intermediate representations delete state.commentLevel; delete state.line_should_end; delete state.line_should_end_because; @@ -2694,6 +2695,7 @@ function loadFile(str) { delete state.section; delete state.subsection; delete state.tokenIndex; + delete state.legend_current_line_wip; delete state.visitedSections; delete state.loops; /* diff --git a/src/js/parser.js b/src/js/parser.js index b0863b7ef..309e3eae6 100644 --- a/src/js/parser.js +++ b/src/js/parser.js @@ -123,6 +123,34 @@ function blankLineHandle(state) { } } +//returns null if not delcared, otherwise declaration +//note to self: I don't think that aggregates or properties know that they're aggregates or properties in and of themselves. +function wordAlreadyDeclared(state,n) { + n = n.toLowerCase(); + if (n in state.objects) { + return state.objects[n]; + } + for (var i=0;i', 'moving','stationary','parallel','perpendicular', 'no']; + const logicWords = ['all', 'no', 'on', 'some']; + const sectionNames = ['objects', 'legend', 'sounds', 'collisionlayers', 'rules', 'winconditions', 'levels']; + const commandwords = ["sfx0","sfx1","sfx2","sfx3","sfx4","sfx5","sfx6","sfx7","sfx8","sfx9","sfx10","cancel","checkpoint","restart","win","message","again"]; + const reg_commands = /[\p{Z}\s]*(sfx0|sfx1|sfx2|sfx3|Sfx4|sfx5|sfx6|sfx7|sfx8|sfx9|sfx10|cancel|checkpoint|restart|win|message|again)[\p{Z}\s]*/u; + const reg_name = /[\p{L}\p{N}_]+[\p{Z}\s]*/u;///\w*[a-uw-zA-UW-Z0-9_]/; + const reg_number = /[\d]+/; + const reg_soundseed = /\d+\b/; + const reg_spriterow = /[\.0-9]{5}[\p{Z}\s]*/u; + const reg_sectionNames = /(objects|collisionlayers|legend|sounds|rules|winconditions|levels)(?![\p{L}\p{N}_])[\p{Z}\s]*/u; + const reg_equalsrow = /[\=]+/; + const reg_notcommentstart = /[^\(]+/; + const reg_csv_separators = /[ \,]*/; + const reg_soundverbs = /(move|action|create|destroy|cantmove|undo|restart|titlescreen|startgame|cancel|endgame|startlevel|endlevel|showmessage|closemessage|sfx0|sfx1|sfx2|sfx3|sfx4|sfx5|sfx6|sfx7|sfx8|sfx9|sfx10)\b[\p{Z}\s]*/u; + const reg_directions = /^(action|up|down|left|right|\^|v|\<|\>|moving|stationary|parallel|perpendicular|horizontal|orthogonal|vertical|no|randomdir|random)$/; + const reg_loopmarker = /^(startloop|endloop)$/; + const reg_ruledirectionindicators = /^(up|down|left|right|horizontal|vertical|orthogonal|late|rigid)$/; + const reg_sounddirectionindicators = /[\p{Z}\s]*(up|down|left|right|horizontal|vertical|orthogonal)(?![\p{L}\p{N}_])[\p{Z}\s]*/u; + const reg_winconditionquantifiers = /^(all|any|no|some)$/; + const reg_keywords = /(checkpoint|objects|collisionlayers|legend|sounds|rules|winconditions|\.\.\.|levels|up|down|left|right|^|\||\[|\]|v|\>|\<|no|horizontal|orthogonal|vertical|any|all|no|some|moving|stationary|parallel|perpendicular|action)/; + const keyword_array = ['checkpoint','objects', 'collisionlayers', 'legend', 'sounds', 'rules', '...','winconditions', 'levels','|','[',']','up', 'down', 'left', 'right', 'late','rigid', '^','v','\>','\<','no','randomdir','random', 'horizontal', 'vertical','any', 'all', 'no', 'some', 'moving','stationary','parallel','perpendicular','action','message']; + + + function processLegendLine(state, mixedCase){ + var ok=true; + var splits = state.legend_current_line_wip; + if (splits.length===0){ + return; + } + + if (splits.length === 1) { + logError('Incorrect format of legend - should be one of "A = B", "A = B or C [ or D ...]", "A = B and C [ and D ...]".', state.lineNumber); + ok=false; + } else if (splits.length%2===0){ + logError(`Incorrect format of legend - should be one of "A = B", "A = B or C [ or D ...]", "A = B and C [ and D ...]", but it looks like you have a dangling "${state.legend_current_line_wip[state.legend_current_line_wip.length-1].toUpperCase()}"?`, state.lineNumber); + ok=false; + } else { + var candname = splits[0]; + + var alreadyDefined = wordAlreadyDeclared(state,candname); + if (alreadyDefined!==null){ + logError(`Name "${candname.toUpperCase()}" already in use (on line line ${alreadyDefined.lineNumber}).`, state.lineNumber); + ok=false; + } + + if (keyword_array.indexOf(candname)>=0) { + logWarning('You named an object "' + candname.toUpperCase() + '", but this is a keyword. Don\'t do that!', state.lineNumber); + } + + + if (splits.indexOf(candname, 2)>=2) { + logError("You can't define object " + candname.toUpperCase() + " in terms of itself!", state.lineNumber); + ok=false; + var idx = splits.indexOf(candname, 2); + while (idx >=2){ + if (idx>=4){ + splits.splice(idx-1, 2); + } else { + splits.splice(idx, 2); + } + idx = splits.indexOf(candname, 2); + } + } + + //for every other word, check if it's a valid name + for (var i=2;i', 'moving','stationary','parallel','perpendicular', 'no']; - var logicWords = ['all', 'no', 'on', 'some']; - var sectionNames = ['objects', 'legend', 'sounds', 'collisionlayers', 'rules', 'winconditions', 'levels']; - var commandwords = ["sfx0","sfx1","sfx2","sfx3","sfx4","sfx5","sfx6","sfx7","sfx8","sfx9","sfx10","cancel","checkpoint","restart","win","message","again"]; - var reg_commands = /[\p{Z}\s]*(sfx0|sfx1|sfx2|sfx3|Sfx4|sfx5|sfx6|sfx7|sfx8|sfx9|sfx10|cancel|checkpoint|restart|win|message|again)[\p{Z}\s]*/u; - var reg_name = /[\p{L}\p{N}_]+[\p{Z}\s]*/u;///\w*[a-uw-zA-UW-Z0-9_]/; - var reg_number = /[\d]+/; - var reg_soundseed = /\d+\b/; - var reg_spriterow = /[\.0-9]{5}[\p{Z}\s]*/u; - var reg_sectionNames = /(objects|collisionlayers|legend|sounds|rules|winconditions|levels)(?![\p{L}\p{N}_])[\p{Z}\s]*/u; - var reg_equalsrow = /[\=]+/; - var reg_notcommentstart = /[^\(]+/; - var reg_csv_separators = /[ \,]*/; - var reg_soundverbs = /(move|action|create|destroy|cantmove|undo|restart|titlescreen|startgame|cancel|endgame|startlevel|endlevel|showmessage|closemessage|sfx0|sfx1|sfx2|sfx3|sfx4|sfx5|sfx6|sfx7|sfx8|sfx9|sfx10)\b[\p{Z}\s]*/u; - var reg_directions = /^(action|up|down|left|right|\^|v|\<|\>|moving|stationary|parallel|perpendicular|horizontal|orthogonal|vertical|no|randomdir|random)$/; - var reg_loopmarker = /^(startloop|endloop)$/; - var reg_ruledirectionindicators = /^(up|down|left|right|horizontal|vertical|orthogonal|late|rigid)$/; - var reg_sounddirectionindicators = /[\p{Z}\s]*(up|down|left|right|horizontal|vertical|orthogonal)(?![\p{L}\p{N}_])[\p{Z}\s]*/u; - var reg_winconditionquantifiers = /^(all|any|no|some)$/; - var reg_keywords = /(checkpoint|objects|collisionlayers|legend|sounds|rules|winconditions|\.\.\.|levels|up|down|left|right|^|\||\[|\]|v|\>|\<|no|horizontal|orthogonal|vertical|any|all|no|some|moving|stationary|parallel|perpendicular|action)/; - var keyword_array = ['checkpoint','objects', 'collisionlayers', 'legend', 'sounds', 'rules', '...','winconditions', 'levels','|','[',']','up', 'down', 'left', 'right', 'late','rigid', '^','v','\>','\<','no','randomdir','random', 'horizontal', 'vertical','any', 'all', 'no', 'some', 'moving','stationary','parallel','perpendicular','action','message']; // var keywordRegex = new RegExp("\\b(("+cons.join(")|(")+"))$", 'i'); @@ -296,6 +513,9 @@ var codeMirrorFn = function() { objects_spritematrix: state.objects_spritematrix.concat([]), tokenIndex: state.tokenIndex, + + legend_current_line_wip: state.legend_current_line_wip.concat([]), + legend_synonyms: legend_synonymsCopy, legend_aggregates: legend_aggregatesCopy, legend_properties: legend_propertiesCopy, @@ -350,18 +570,7 @@ var codeMirrorFn = function() { state.sol_after_comment = false; } - function registerOriginalCaseName(candname){ - function escapeRegExp(str) { - return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); - } - - var nameFinder = new RegExp("\\b"+escapeRegExp(candname)+"\\b","i") - var match = mixedCase.match(nameFinder); - if (match!=null){ - state.original_case_names[candname] = match[0]; - } - } stream.eatWhile(/[ \t]/); @@ -383,7 +592,7 @@ var codeMirrorFn = function() { } } else { logWarning("You're trying to close a comment here, but I can't find any opening bracket to match it? [This is highly suspicious; you probably want to fix it.]",state.lineNumber); - return ''; + return 'ERROR'; } } if (state.commentLevel > 0) { @@ -410,12 +619,17 @@ var codeMirrorFn = function() { break; } } + + if (stream.eol()){ + endOfLineProcessing(state,mixedCase); + } return 'comment'; } stream.eatWhile(/[ \t]/); - if (sol && stream.eol()) { + if (sol && stream.eol()) { + endOfLineProcessing(state,mixedCase); return blankLineHandle(state); } @@ -423,871 +637,712 @@ var codeMirrorFn = function() { logError('Only comments should go after ' + state.line_should_end_because + ' on a line.', state.lineNumber); stream.skipToEnd(); return 'ERROR'; + } + + //MATCH '==="s AT START OF LINE + if (sol && stream.match(reg_equalsrow, true)) { + state.line_should_end = true; + state.line_should_end_because = 'a bunch of equals signs (\'===\')'; + return 'EQUALSBIT'; } - // if (sol) - { + //MATCH SECTION NAME + var sectionNameMatches = stream.match(reg_sectionNames, true); + if (sol && sectionNameMatches ) { - //MATCH '==="s AT START OF LINE - if (sol && stream.match(reg_equalsrow, true)) { - state.line_should_end = true; - state.line_should_end_because = 'a bunch of equals signs (\'===\')'; - return 'EQUALSBIT'; + state.section = sectionNameMatches[0].trim(); + if (state.visitedSections.indexOf(state.section) >= 0) { + logError('cannot duplicate sections (you tried to duplicate \"' + state.section.toUpperCase() + '").', state.lineNumber); } - - //MATCH SECTION NAME - var sectionNameMatches = stream.match(reg_sectionNames, true); - if (sol && sectionNameMatches ) { - state.section = sectionNameMatches[0].trim(); - if (state.visitedSections.indexOf(state.section) >= 0) { - logError('cannot duplicate sections (you tried to duplicate \"' + state.section.toUpperCase() + '").', state.lineNumber); + state.line_should_end = true; + state.line_should_end_because = `a section name ("${state.section.toUpperCase()}")`; + state.visitedSections.push(state.section); + var sectionIndex = sectionNames.indexOf(state.section); + if (sectionIndex == 0) { + state.objects_section = 0; + if (state.visitedSections.length > 1) { + logError('section "' + state.section.toUpperCase() + '" must be the first section', state.lineNumber); } - state.line_should_end = true; - state.line_should_end_because = `a section name ("${state.section.toUpperCase()}")`; - state.visitedSections.push(state.section); - var sectionIndex = sectionNames.indexOf(state.section); - if (sectionIndex == 0) { - state.objects_section = 0; - if (state.visitedSections.length > 1) { - logError('section "' + state.section.toUpperCase() + '" must be the first section', state.lineNumber); - } - } else if (state.visitedSections.indexOf(sectionNames[sectionIndex - 1]) == -1) { - if (sectionIndex===-1) { - logError('no such section as "' + state.section.toUpperCase() + '".', state.lineNumber); - } else { - logError('section "' + state.section.toUpperCase() + '" is out of order, must follow "' + sectionNames[sectionIndex - 1].toUpperCase() + '" (or it could be that the section "'+sectionNames[sectionIndex - 1].toUpperCase()+`"is just missing totally. You have to include all section headings, even if the section itself is empty).`, state.lineNumber); - } + } else if (state.visitedSections.indexOf(sectionNames[sectionIndex - 1]) == -1) { + if (sectionIndex===-1) { + logError('no such section as "' + state.section.toUpperCase() + '".', state.lineNumber); + } else { + logError('section "' + state.section.toUpperCase() + '" is out of order, must follow "' + sectionNames[sectionIndex - 1].toUpperCase() + '" (or it could be that the section "'+sectionNames[sectionIndex - 1].toUpperCase()+`"is just missing totally. You have to include all section headings, even if the section itself is empty).`, state.lineNumber); } + } - if (state.section === 'sounds') { - //populate names from rules - for (var n in state.objects) { - if (state.objects.hasOwnProperty(n)) { + if (state.section === 'sounds') { + //populate names from rules + for (var n in state.objects) { + if (state.objects.hasOwnProperty(n)) { /* if (state.names.indexOf(n)!==-1) { - logError('Object "'+n+'" has been declared to be multiple different things',state.objects[n].lineNumber); - }*/ - state.names.push(n); - } - } - //populate names from legends - for (var i = 0; i < state.legend_synonyms.length; i++) { - var n = state.legend_synonyms[i][0]; - /* - if (state.names.indexOf(n)!==-1) { - logError('Object "'+n+'" has been declared to be multiple different things',state.legend_synonyms[i].lineNumber); - } - */ + logError('Object "'+n+'" has been declared to be multiple different things',state.objects[n].lineNumber); + }*/ state.names.push(n); } - for (var i = 0; i < state.legend_aggregates.length; i++) { - var n = state.legend_aggregates[i][0]; - /* - if (state.names.indexOf(n)!==-1) { - logError('Object "'+n+'" has been declared to be multiple different things',state.legend_aggregates[i].lineNumber); - } - */ - state.names.push(n); + } + //populate names from legends + for (var i = 0; i < state.legend_synonyms.length; i++) { + var n = state.legend_synonyms[i][0]; + /* + if (state.names.indexOf(n)!==-1) { + logError('Object "'+n+'" has been declared to be multiple different things',state.legend_synonyms[i].lineNumber); } - for (var i = 0; i < state.legend_properties.length; i++) { - var n = state.legend_properties[i][0]; - /* - if (state.names.indexOf(n)!==-1) { - logError('Object "'+n+'" has been declared to be multiple different things',state.legend_properties[i].lineNumber); - } - */ - state.names.push(n); + */ + state.names.push(n); + } + for (var i = 0; i < state.legend_aggregates.length; i++) { + var n = state.legend_aggregates[i][0]; + /* + if (state.names.indexOf(n)!==-1) { + logError('Object "'+n+'" has been declared to be multiple different things',state.legend_aggregates[i].lineNumber); } + */ + state.names.push(n); } - else if (state.section === 'levels') { - //populate character abbreviations - for (var n in state.objects) { - if (state.objects.hasOwnProperty(n) && n.length == 1) { - state.abbrevNames.push(n); - } + for (var i = 0; i < state.legend_properties.length; i++) { + var n = state.legend_properties[i][0]; + /* + if (state.names.indexOf(n)!==-1) { + logError('Object "'+n+'" has been declared to be multiple different things',state.legend_properties[i].lineNumber); + } + */ + state.names.push(n); + } + } + else if (state.section === 'levels') { + //populate character abbreviations + for (var n in state.objects) { + if (state.objects.hasOwnProperty(n) && n.length == 1) { + state.abbrevNames.push(n); } + } - for (var i = 0; i < state.legend_synonyms.length; i++) { - if (state.legend_synonyms[i][0].length == 1) { - state.abbrevNames.push(state.legend_synonyms[i][0]); - } - } - for (var i = 0; i < state.legend_aggregates.length; i++) { - if (state.legend_aggregates[i][0].length == 1) { - state.abbrevNames.push(state.legend_aggregates[i][0]); - } + for (var i = 0; i < state.legend_synonyms.length; i++) { + if (state.legend_synonyms[i][0].length == 1) { + state.abbrevNames.push(state.legend_synonyms[i][0]); } } - return 'HEADER'; - } else { - if (state.section === undefined) { - logError('must start with section "OBJECTS"', state.lineNumber); + for (var i = 0; i < state.legend_aggregates.length; i++) { + if (state.legend_aggregates[i][0].length == 1) { + state.abbrevNames.push(state.legend_aggregates[i][0]); + } } } - - if (stream.eol()) { - return null; + return 'HEADER'; + } else { + if (state.section === undefined) { + logError('must start with section "OBJECTS"', state.lineNumber); } + } - //if color is set, try to set matrix - //if can't set matrix, try to parse name - //if color is not set, try to parse color - switch (state.section) { - case 'objects': - { - var tryParseName = function() { - //LOOK FOR NAME - var match_name = sol ? stream.match(reg_name, true) : stream.match(/[^\p{Z}\s\()]+[\p{Z}\s]*/u,true); - if (match_name == null) { - stream.match(reg_notcommentstart, true); - if (stream.pos>0){ - logWarning('Unknown junk in object section (possibly: sprites have to be 5 pixels wide and 5 pixels high exactly. Or maybe: the main names for objects have to be words containing only the letters a-z0.9 - if you want to call them something like ",", do it in the legend section).',state.lineNumber); - } + if (stream.eol()) { + + endOfLineProcessing(state,mixedCase); + return null; + } + + //if color is set, try to set matrix + //if can't set matrix, try to parse name + //if color is not set, try to parse color + switch (state.section) { + case 'objects': + { + var tryParseName = function() { + //LOOK FOR NAME + var match_name = sol ? stream.match(reg_name, true) : stream.match(/[^\p{Z}\s\()]+[\p{Z}\s]*/u,true); + if (match_name == null) { + stream.match(reg_notcommentstart, true); + if (stream.pos>0){ + logWarning('Unknown junk in object section (possibly: sprites have to be 5 pixels wide and 5 pixels high exactly. Or maybe: the main names for objects have to be words containing only the letters a-z0.9 - if you want to call them something like ",", do it in the legend section).',state.lineNumber); + } + return 'ERROR'; + } else { + var candname = match_name[0].trim(); + if (state.objects[candname] !== undefined) { + logError('Object "' + candname.toUpperCase() + '" defined multiple times.', state.lineNumber); return 'ERROR'; - } else { - var candname = match_name[0].trim(); - if (state.objects[candname] !== undefined) { - logError('Object "' + candname.toUpperCase() + '" defined multiple times.', state.lineNumber); - return 'ERROR'; - } - for (var i=0;i=0) { - logWarning('You named an object "' + candname.toUpperCase() + '", but this is a keyword. Don\'t do that!', state.lineNumber); + } + for (var i=0;i=0) { + logWarning('You named an object "' + candname.toUpperCase() + '", but this is a keyword. Don\'t do that!', state.lineNumber); + } - if (sol && state.objects_section == 2) { - state.objects_section = 3; + if (sol) { + state.objects_candname = candname; + registerOriginalCaseName(state,candname,mixedCase); + state.objects[state.objects_candname] = { + lineNumber: state.lineNumber, + colors: [], + spritematrix: [] + }; + + } else { + //set up alias + registerOriginalCaseName(state,candname,mixedCase); + var synonym = [candname,state.objects_candname]; + synonym.lineNumber = state.lineNumber; + state.legend_synonyms.push(synonym); + } + state.objects_section = 1; + return 'NAME'; } + }; - if (sol && state.objects_section == 1) { - state.objects_section = 2; + if (sol && state.objects_section == 2) { + state.objects_section = 3; + } + + if (sol && state.objects_section == 1) { + state.objects_section = 2; + } + + switch (state.objects_section) { + case 0: + case 1: + { + state.objects_spritematrix = []; + return tryParseName(); + break; } + case 2: + { + //LOOK FOR COLOR + state.tokenIndex = 0; - switch (state.objects_section) { - case 0: - case 1: - { - state.objects_spritematrix = []; - return tryParseName(); - break; - } - case 2: - { - //LOOK FOR COLOR - state.tokenIndex = 0; - - var match_color = stream.match(reg_color, true); - if (match_color == null) { - var str = stream.match(reg_name, true) || stream.match(reg_notcommentstart, true); - logError('Was looking for color for object ' + state.objects_candname.toUpperCase() + ', got "' + str + '" instead.', state.lineNumber); - return null; + var match_color = stream.match(reg_color, true); + if (match_color == null) { + var str = stream.match(reg_name, true) || stream.match(reg_notcommentstart, true); + logError('Was looking for color for object ' + state.objects_candname.toUpperCase() + ', got "' + str + '" instead.', state.lineNumber); + return null; + } else { + if (state.objects[state.objects_candname].colors === undefined) { + state.objects[state.objects_candname].colors = [match_color[0].trim()]; } else { - if (state.objects[state.objects_candname].colors === undefined) { - state.objects[state.objects_candname].colors = [match_color[0].trim()]; - } else { - state.objects[state.objects_candname].colors.push(match_color[0].trim()); - } + state.objects[state.objects_candname].colors.push(match_color[0].trim()); + } - var candcol = match_color[0].trim().toLowerCase(); - if (candcol in colorPalettes.arnecolors) { - return 'COLOR COLOR-' + candcol.toUpperCase(); - } else if (candcol==="transparent") { - return 'COLOR FADECOLOR'; - } else { - return 'MULTICOLOR'+match_color[0]; - } + var candcol = match_color[0].trim().toLowerCase(); + if (candcol in colorPalettes.arnecolors) { + return 'COLOR COLOR-' + candcol.toUpperCase(); + } else if (candcol==="transparent") { + return 'COLOR FADECOLOR'; + } else { + return 'MULTICOLOR'+match_color[0]; } - break; } - case 3: - { - var ch = stream.eat(/[.\d]/); - var spritematrix = state.objects_spritematrix; - if (ch === undefined) { - if (spritematrix.length === 0) { - return tryParseName(); - } - logError('Unknown junk in spritematrix for object ' + state.objects_candname.toUpperCase() + '.', state.lineNumber); - stream.match(reg_notcommentstart, true); - return null; + break; + } + case 3: + { + var ch = stream.eat(/[.\d]/); + var spritematrix = state.objects_spritematrix; + if (ch === undefined) { + if (spritematrix.length === 0) { + return tryParseName(); } + logError('Unknown junk in spritematrix for object ' + state.objects_candname.toUpperCase() + '.', state.lineNumber); + stream.match(reg_notcommentstart, true); + return null; + } - if (sol) { - spritematrix.push(''); - } + if (sol) { + spritematrix.push(''); + } - var o = state.objects[state.objects_candname]; + var o = state.objects[state.objects_candname]; - spritematrix[spritematrix.length - 1] += ch; - if (spritematrix[spritematrix.length-1].length>5){ - logError('Sprites must be 5 wide and 5 high.', state.lineNumber); - stream.match(reg_notcommentstart, true); - return null; - } - o.spritematrix = state.objects_spritematrix; - if (spritematrix.length === 5 && spritematrix[spritematrix.length - 1].length == 5) { - state.objects_section = 0; - } + spritematrix[spritematrix.length - 1] += ch; + if (spritematrix[spritematrix.length-1].length>5){ + logError('Sprites must be 5 wide and 5 high.', state.lineNumber); + stream.match(reg_notcommentstart, true); + return null; + } + o.spritematrix = state.objects_spritematrix; + if (spritematrix.length === 5 && spritematrix[spritematrix.length - 1].length == 5) { + state.objects_section = 0; + } - if (ch!=='.') { - var n = parseInt(ch); - if (n>=o.colors.length) { - logError("Trying to access color number "+n+" from the color palette of sprite " +state.objects_candname.toUpperCase()+", but there are only "+o.colors.length+" defined in it.",state.lineNumber); - return 'ERROR'; - } - if (isNaN(n)) { - logError('Invalid character "' + ch + '" in sprite for ' + state.objects_candname.toUpperCase(), state.lineNumber); - return 'ERROR'; - } - return 'COLOR BOLDCOLOR COLOR-' + o.colors[n].toUpperCase(); + if (ch!=='.') { + var n = parseInt(ch); + if (n>=o.colors.length) { + logError("Trying to access color number "+n+" from the color palette of sprite " +state.objects_candname.toUpperCase()+", but there are only "+o.colors.length+" defined in it.",state.lineNumber); + return 'ERROR'; } - return 'COLOR FADECOLOR'; + if (isNaN(n)) { + logError('Invalid character "' + ch + '" in sprite for ' + state.objects_candname.toUpperCase(), state.lineNumber); + return 'ERROR'; + } + return 'COLOR BOLDCOLOR COLOR-' + o.colors[n].toUpperCase(); } - default: - { - window.console.logError("EEK shouldn't get here."); - } - } - break; - } - case 'sounds': - { - if (sol) { - var ok = true; - var splits = reg_notcommentstart.exec(stream.string)[0].split(/[\p{Z}\s]/u).filter(function(v) {return v !== ''}); - splits.push(state.lineNumber); - state.sounds.push(splits); + return 'COLOR FADECOLOR'; } - candname = stream.match(reg_soundverbs, true); - if (candname!==null) { - return 'SOUNDVERB'; - } - candname = stream.match(reg_sounddirectionindicators,true); - if (candname!==null) { - return 'DIRECTION'; - } - candname = stream.match(reg_soundseed, true); - if (candname !== null) + default: { - state.tokenIndex++; - return 'SOUND'; - } - candname = stream.match(/[^\[\|\]\p{Z}\s]*/u, true); - if (candname!== null ) { - var m = candname[0].trim(); - if (state.names.indexOf(m)>=0) { - return 'NAME'; - } - } else { - //can we ever get here? - candname = stream.match(reg_notcommentstart, true); + window.console.logError("EEK shouldn't get here."); } - logError('unexpected sound token "'+candname+'".' , state.lineNumber); - stream.match(reg_notcommentstart, true); - return 'ERROR'; - break; } - case 'collisionlayers': + break; + } + case 'sounds': + { + if (sol) { + var ok = true; + var splits = reg_notcommentstart.exec(stream.string)[0].split(/[\p{Z}\s]/u).filter(function(v) {return v !== ''}); + splits.push(state.lineNumber); + state.sounds.push(splits); + } + candname = stream.match(reg_soundverbs, true); + if (candname!==null) { + return 'SOUNDVERB'; + } + candname = stream.match(reg_sounddirectionindicators,true); + if (candname!==null) { + return 'DIRECTION'; + } + candname = stream.match(reg_soundseed, true); + if (candname !== null) { - if (sol) { - //create new collision layer - state.collisionLayers.push([]); - state.tokenIndex=0; + state.tokenIndex++; + return 'SOUND'; + } + candname = stream.match(/[^\[\|\]\p{Z}\s]*/u, true); + if (candname!== null ) { + var m = candname[0].trim(); + if (state.names.indexOf(m)>=0) { + return 'NAME'; } + } else { + //can we ever get here? + candname = stream.match(reg_notcommentstart, true); + } + logError('unexpected sound token "'+candname+'".' , state.lineNumber); + stream.match(reg_notcommentstart, true); + return 'ERROR'; + break; + } + case 'collisionlayers': + { + if (sol) { + //create new collision layer + state.collisionLayers.push([]); + state.tokenIndex=0; + } - var match_name = stream.match(reg_name, true); - if (match_name === null) { - //then strip spaces and commas - var prepos=stream.pos; - stream.match(reg_csv_separators, true); - if (stream.pos==prepos) { - logError("error detected - unexpected character " + stream.peek(),state.lineNumber); - stream.next(); + var match_name = stream.match(reg_name, true); + if (match_name === null) { + //then strip spaces and commas + var prepos=stream.pos; + stream.match(reg_csv_separators, true); + if (stream.pos==prepos) { + logError("error detected - unexpected character " + stream.peek(),state.lineNumber); + stream.next(); + } + return null; + } else { + //have a name: let's see if it's valid + var candname = match_name[0].trim(); + + var substitutor = function(n) { + n = n.toLowerCase(); + if (n in state.objects) { + return [n]; + } + + + for (var i=0;i0&&state.collisionLayers[state.collisionLayers.length-1].length>0) { - logError("Background must be in a layer by itself.",state.lineNumber); + } + return result; } - state.tokenIndex=1; - } else if (state.tokenIndex!==0) { + } + logError('Cannot add "' + candname.toUpperCase() + '" to a collision layer; it has not been declared.', state.lineNumber); + return []; + }; + if (candname==='background' ) { + if (state.collisionLayers.length>0&&state.collisionLayers[state.collisionLayers.length-1].length>0) { logError("Background must be in a layer by itself.",state.lineNumber); } + state.tokenIndex=1; + } else if (state.tokenIndex!==0) { + logError("Background must be in a layer by itself.",state.lineNumber); + } - var ar = substitutor(candname); + var ar = substitutor(candname); - if (state.collisionLayers.length===0) { - logError("no layers found.",state.lineNumber); - return 'ERROR'; - } - - var foundOthers=[]; - for (var i=0;i=0){ - if (j!=state.collisionLayers.length-1){ - foundOthers.push(j); - } + if (state.collisionLayers.length===0) { + logError("no layers found.",state.lineNumber); + return 'ERROR'; + } + + var foundOthers=[]; + for (var i=0;i=0){ + if (j!=state.collisionLayers.length-1){ + foundOthers.push(j); } } } - if (foundOthers.length>0){ - var warningStr = 'Object "'+candname.toUpperCase()+'" included in multiple collision layers ( layers '; - for (var i=0;i0){ + var warningStr = 'Object "'+candname.toUpperCase()+'" included in multiple collision layers ( layers '; + for (var i=0;i0) { - return 'NAME'; - } else { - return 'ERROR'; - } + state.collisionLayers[state.collisionLayers.length - 1] = state.collisionLayers[state.collisionLayers.length - 1].concat(ar); + if (ar.length>0) { + return 'NAME'; + } else { + return 'ERROR'; } - break; } - case 'legend': - { - if (sol) { - - - var longer = stream.string.replace('=', ' = '); - longer = reg_notcommentstart.exec(longer)[0]; - - var splits = longer.split(/[\p{Z}\s]/u).filter(function(v) { - return v !== ''; - }); - - - //gotta verify the format - var ok = true; - if (splits.length>0) { - var candname = splits[0].toLowerCase(); - if (keyword_array.indexOf(candname)>=0) { - logWarning('You named an object "' + candname.toUpperCase() + '", but this is a keyword. Don\'t do that!', state.lineNumber); - } - if (splits.indexOf(candname, 2)>=2) { - logError("You can't define object " + candname.toUpperCase() + " in terms of itself!", state.lineNumber); - var idx = splits.indexOf(candname, 2); - while (idx >=2){ - if (idx>=4){ - splits.splice(idx-1, 2); - } else { - splits.splice(idx, 2); - } - idx = splits.indexOf(candname, 2); + break; + } + case 'legend': + { + var resultToken=""; + var match_name=null; + if (state.tokenIndex === 0) { + match_name=stream.match(/[^=\p{Z}\s\(]*(\p{Z}\s)*/u, true); + var new_name=match_name[0]; + //if name already declared, we have a problem + state.tokenIndex++; + resultToken = 'NAME'; + } else if (state.tokenIndex === 1) { + match_name = stream.match(/=/u,true); + if (match_name===null||match_name[0].trim()!=="="){ + logError(`In the legend, define new items using the equals symbol - declarations must look like "A = B", "A = B or C [ or D ...]", "A = B and C [ and D ...]".`, state.lineNumber); + stream.match(reg_notcommentstart, true); + resultToken = 'ERROR'; + match_name=["ERROR"];//just to reduce the chance of crashes + } + stream.match(/[\p{Z}\s]*/u, true); + state.tokenIndex++; + resultToken = 'ASSSIGNMENT'; + } else if (state.tokenIndex >= 3 && ((state.tokenIndex % 2) === 1)) { + //matches AND/OR + match_name = stream.match(reg_name, true); + if (match_name === null) { + logError("Something bad's happening in the LEGEND", state.lineNumber); + match=stream.match(reg_notcommentstart, true); + resultToken = 'ERROR'; + } else { + var candname = match_name[0].trim(); + if (candname === "and" || candname === "or"){ + resultToken = 'LOGICWORD'; + if (state.tokenIndex>=5){ + if (candname !== state.legend_current_line_wip[3]){ + logError("Hey! You can't go mixing ANDs and ORs in a single legend entry.", state.lineNumber); + resultToken = 'ERROR'; } - - // ok = false; } - checkNameNew(state,candname); - } - - if (!ok) { - } else if (splits.length < 3) { - ok = false; - } else if (splits[1] !== '=') { - ok = false; - } /*else if (splits[0].charAt(splits[0].length - 1) == 'v') { - logError('names cannot end with the letter "v", because it\'s is used as a direction.', state.lineNumber); - stream.match(reg_notcommentstart, true); - return 'ERROR'; - } */ else if (splits.length === 3) { - var synonym = [splits[0], splits[2].toLowerCase()]; - synonym.lineNumber = state.lineNumber; - - registerOriginalCaseName(splits[0]); - state.legend_synonyms.push(synonym); - } else if (splits.length % 2 === 0) { - ok = false; } else { - var lowertoken = splits[3].toLowerCase(); - if (lowertoken === 'and') { - - var substitutor = function(n) { - n = n.toLowerCase(); - if (n in state.objects) { - return [n]; - } - for (var i=0;i[\p{Z}\s]*/u, true)) { - return 'ARROW'; + return resultToken; + break; + } + case 'rules': + { + if (sol) { + var rule = reg_notcommentstart.exec(stream.string)[0]; + state.rules.push([rule, state.lineNumber, mixedCase]); + state.tokenIndex = 0;//in rules, records whether bracket has been found or not + } + + if (state.tokenIndex===-4) { + stream.skipToEnd(); + return 'MESSAGE'; + } + if (stream.match(/[\p{Z}\s]*->[\p{Z}\s]*/u, true)) { + return 'ARROW'; + } + if (ch === '[' || ch === '|' || ch === ']' || ch==='+') { + if (ch!=='+') { + state.tokenIndex = 1; } - if (ch === '[' || ch === '|' || ch === ']' || ch==='+') { - if (ch!=='+') { - state.tokenIndex = 1; - } - stream.next(); - stream.match(/[\p{Z}\s]*/u, true); + stream.next(); + stream.match(/[\p{Z}\s]*/u, true); + return 'BRACKET'; + } else { + var m = stream.match(/[^\[\|\]\p{Z}\s]*/u, true)[0].trim(); + + if (state.tokenIndex===0&®_loopmarker.exec(m)) { return 'BRACKET'; + } else if (state.tokenIndex === 0 && reg_ruledirectionindicators.exec(m)) { + stream.match(/[\p{Z}\s]*/u, true); + return 'DIRECTION'; + } else if (state.tokenIndex === 1 && reg_directions.exec(m)) { + stream.match(/[\p{Z}\s]*/u, true); + return 'DIRECTION'; } else { - var m = stream.match(/[^\[\|\]\p{Z}\s]*/u, true)[0].trim(); - - if (state.tokenIndex===0&®_loopmarker.exec(m)) { - return 'BRACKET'; - } else if (state.tokenIndex === 0 && reg_ruledirectionindicators.exec(m)) { - stream.match(/[\p{Z}\s]*/u, true); + if (state.names.indexOf(m) >= 0) { + if (sol) { + logError('Identifiers cannot appear outside of square brackets in rules, only directions can.', state.lineNumber); + return 'ERROR'; + } else { + stream.match(/[\p{Z}\s]*/u, true); + return 'NAME'; + } + } else if (m==='...') { + return 'DIRECTION'; + } else if (m==='rigid') { return 'DIRECTION'; - } else if (state.tokenIndex === 1 && reg_directions.exec(m)) { - stream.match(/[\p{Z}\s]*/u, true); + } else if (m==='random') { return 'DIRECTION'; + } else if (commandwords.indexOf(m)>=0) { + if (m==='message') { + state.tokenIndex=-4; + } + return 'COMMAND'; } else { - if (state.names.indexOf(m) >= 0) { - if (sol) { - logError('Identifiers cannot appear outside of square brackets in rules, only directions can.', state.lineNumber); - return 'ERROR'; - } else { - stream.match(/[\p{Z}\s]*/u, true); - return 'NAME'; - } - } else if (m==='...') { - return 'DIRECTION'; - } else if (m==='rigid') { - return 'DIRECTION'; - } else if (m==='random') { - return 'DIRECTION'; - } else if (commandwords.indexOf(m)>=0) { - if (m==='message') { - state.tokenIndex=-4; - } - return 'COMMAND'; - } else { - logError('Name "' + m + '", referred to in a rule, does not exist.', state.lineNumber); - return 'ERROR'; - } + logError('Name "' + m + '", referred to in a rule, does not exist.', state.lineNumber); + return 'ERROR'; } } + } - break; + break; + } + case 'winconditions': + { + if (sol) { + var tokenized = reg_notcommentstart.exec(stream.string); + var splitted = tokenized[0].split(/[\p{Z}\s]/u); + var filtered = splitted.filter(function(v) {return v !== ''}); + filtered.push(state.lineNumber); + + state.winconditions.push(filtered); + state.tokenIndex = -1; } - case 'winconditions': - { - if (sol) { - var tokenized = reg_notcommentstart.exec(stream.string); - var splitted = tokenized[0].split(/[\p{Z}\s]/u); - var filtered = splitted.filter(function(v) {return v !== ''}); - filtered.push(state.lineNumber); - - state.winconditions.push(filtered); - state.tokenIndex = -1; - } - state.tokenIndex++; + state.tokenIndex++; - var match = stream.match(/[\p{Z}\s]*[\p{L}\p{N}_]+[\p{Z}\s]*/u); - if (match === null) { - logError('incorrect format of win condition.', state.lineNumber); - stream.match(reg_notcommentstart, true); - return 'ERROR'; + var match = stream.match(/[\p{Z}\s]*[\p{L}\p{N}_]+[\p{Z}\s]*/u); + if (match === null) { + logError('incorrect format of win condition.', state.lineNumber); + stream.match(reg_notcommentstart, true); + return 'ERROR'; - } else { - var candword = match[0].trim(); - if (state.tokenIndex === 0) { - if (reg_winconditionquantifiers.exec(candword)) { - return 'LOGICWORD'; - } - else { - return 'ERROR'; - } + } else { + var candword = match[0].trim(); + if (state.tokenIndex === 0) { + if (reg_winconditionquantifiers.exec(candword)) { + return 'LOGICWORD'; } - else if (state.tokenIndex === 2) { - if (candword != 'on') { - logError('Expecting the word "ON" but got "'+candword.toUpperCase()+"'.", state.lineNumber); - return 'ERROR'; - } else { - return 'LOGICWORD'; - } + else { + return 'ERROR'; } - else if (state.tokenIndex === 1 || state.tokenIndex === 3) { - if (state.names.indexOf(candword)===-1) { - logError('Error in win condition: "' + candword.toUpperCase() + '" is not a valid object name.', state.lineNumber); - return 'ERROR'; - } else { - return 'NAME'; - } + } + else if (state.tokenIndex === 2) { + if (candword != 'on') { + logError('Expecting the word "ON" but got "'+candword.toUpperCase()+"'.", state.lineNumber); + return 'ERROR'; + } else { + return 'LOGICWORD'; + } + } + else if (state.tokenIndex === 1 || state.tokenIndex === 3) { + if (state.names.indexOf(candword)===-1) { + logError('Error in win condition: "' + candword.toUpperCase() + '" is not a valid object name.', state.lineNumber); + return 'ERROR'; + } else { + return 'NAME'; } } - break; } - case 'levels': + break; + } + case 'levels': + { + if (sol) { - if (sol) - { - if (stream.match(/[\p{Z}\s]*message\b[\p{Z}\s]*/u, true)) { - state.tokenIndex = -4;//-4/2 = message/level - var newdat = ['\n', mixedCase.slice(stream.pos).trim(),state.lineNumber]; - if (state.levels[state.levels.length - 1].length == 0) { - state.levels.splice(state.levels.length - 1, 0, newdat); - } else { - state.levels.push(newdat); - } - return 'MESSAGE_VERB';//a duplicate of the previous section as a legacy thing for #589 - } else if (stream.match(/[\p{Z}\s]*message[\p{Z}\s]*/u, true)) {//duplicating previous section because of #589 - logWarning("You probably meant to put a space after 'message' innit. That's ok, I'll still interpret it as a message, but you probably want to put a space there.",state.lineNumber); - state.tokenIndex = -4;//-4/2 = message/level - var newdat = ['\n', mixedCase.slice(stream.pos).trim(),state.lineNumber]; - if (state.levels[state.levels.length - 1].length == 0) { - state.levels.splice(state.levels.length - 1, 0, newdat); - } else { - state.levels.push(newdat); - } - return 'MESSAGE_VERB'; + if (stream.match(/[\p{Z}\s]*message\b[\p{Z}\s]*/u, true)) { + state.tokenIndex = -4;//-4/2 = message/level + var newdat = ['\n', mixedCase.slice(stream.pos).trim(),state.lineNumber]; + if (state.levels[state.levels.length - 1].length == 0) { + state.levels.splice(state.levels.length - 1, 0, newdat); + } else { + state.levels.push(newdat); + } + return 'MESSAGE_VERB';//a duplicate of the previous section as a legacy thing for #589 + } else if (stream.match(/[\p{Z}\s]*message[\p{Z}\s]*/u, true)) {//duplicating previous section because of #589 + logWarning("You probably meant to put a space after 'message' innit. That's ok, I'll still interpret it as a message, but you probably want to put a space there.",state.lineNumber); + state.tokenIndex = -4;//-4/2 = message/level + var newdat = ['\n', mixedCase.slice(stream.pos).trim(),state.lineNumber]; + if (state.levels[state.levels.length - 1].length == 0) { + state.levels.splice(state.levels.length - 1, 0, newdat); + } else { + state.levels.push(newdat); + } + return 'MESSAGE_VERB'; + } else { + var matches = stream.match(reg_notcommentstart, false); + if (matches===null || matches.length===0){ + logError("Detected a comment where I was expecting a level. Oh gosh; if this is to do with you using '(' as a character in the legend, please don't do that ^^",state.lineNumber); + state.commentLevel++; + stream.skipToEnd(); + return 'comment'; } else { - var matches = stream.match(reg_notcommentstart, false); - if (matches===null || matches.length===0){ - logError("Detected a comment where I was expecting a level. Oh gosh; if this is to do with you using '(' as a character in the legend, please don't do that ^^",state.lineNumber); - state.commentLevel++; - stream.skipToEnd(); - return 'comment'; + var line = matches[0].trim(); + state.tokenIndex = 2; + var lastlevel = state.levels[state.levels.length - 1]; + if (lastlevel[0] == '\n') { + state.levels.push([state.lineNumber,line]); } else { - var line = matches[0].trim(); - state.tokenIndex = 2; - var lastlevel = state.levels[state.levels.length - 1]; - if (lastlevel[0] == '\n') { - state.levels.push([state.lineNumber,line]); - } else { - if (lastlevel.length==0) - { - lastlevel.push(state.lineNumber); - } - lastlevel.push(line); + if (lastlevel.length==0) + { + lastlevel.push(state.lineNumber); + } + lastlevel.push(line); - if (lastlevel.length>1) - { - if (line.length!=lastlevel[1].length) { - logWarning("Maps must be rectangular, yo (In a level, the length of each row must be the same).",state.lineNumber); - } + if (lastlevel.length>1) + { + if (line.length!=lastlevel[1].length) { + logWarning("Maps must be rectangular, yo (In a level, the length of each row must be the same).",state.lineNumber); } } } } - } else { - if (state.tokenIndex == -4) { - stream.skipToEnd(); - return 'MESSAGE'; - } } + } else { + if (state.tokenIndex == -4) { + stream.skipToEnd(); + return 'MESSAGE'; + } + } - if (state.tokenIndex === 2 && !stream.eol()) { - var ch = stream.peek(); - stream.next(); - if (state.abbrevNames.indexOf(ch) >= 0) { - return 'LEVEL'; - } else { - logError('Key "' + ch.toUpperCase() + '" not found. Do you need to add it to the legend, or define a new object?', state.lineNumber); + if (state.tokenIndex === 2 && !stream.eol()) { + var ch = stream.peek(); + stream.next(); + if (state.abbrevNames.indexOf(ch) >= 0) { + return 'LEVEL'; + } else { + logError('Key "' + ch.toUpperCase() + '" not found. Do you need to add it to the legend, or define a new object?', state.lineNumber); + return 'ERROR'; + } + } + break; + } + + default://if you're in the preamble + { + if (sol) { + state.tokenIndex=0; + } + if (state.tokenIndex==0) { + var match = stream.match(/[\p{Z}\s]*[\p{L}\p{N}_]+[\p{Z}\s]*/u); + if (match!==null) { + var token = match[0].trim(); + if (sol) { + if (['title','author','homepage','background_color','text_color','key_repeat_interval','realtime_interval','again_interval','flickscreen','zoomscreen','color_palette','youtube'].indexOf(token)>=0) { + + if (token==='youtube' || token==='author' || token==='homepage' || token==='title') { + stream.string=mixedCase; + } + + var m2 = stream.match(reg_notcommentstart, false); + + if(m2!=null) { + state.metadata.push(token); + state.metadata.push(m2[0].trim()); + } else { + logError('MetaData "'+token+'" needs a value.',state.lineNumber); + } + state.tokenIndex=1; + return 'METADATA'; + } else if ( ['run_rules_on_level_start','norepeat_action','require_player_movement','debug','verbose_logging','throttle_movement','noundo','noaction','norestart','scanline'].indexOf(token)>=0) { + state.metadata.push(token); + state.metadata.push("true"); + state.tokenIndex=-1; + return 'METADATA'; + } else { + logError('Unrecognised stuff in the prelude.', state.lineNumber); + return 'ERROR'; + } + } else if (state.tokenIndex==-1) { + logError('MetaData "'+token+'" has no parameters.',state.lineNumber); return 'ERROR'; } - } - break; + return 'METADATA'; + } + } else { + stream.match(reg_notcommentstart, true); + return "METADATATEXT"; } - - default://if you're in the preamble - { - if (sol) { - state.tokenIndex=0; - } - if (state.tokenIndex==0) { - var match = stream.match(/[\p{Z}\s]*[\p{L}\p{N}_]+[\p{Z}\s]*/u); - if (match!==null) { - var token = match[0].trim(); - if (sol) { - if (['title','author','homepage','background_color','text_color','key_repeat_interval','realtime_interval','again_interval','flickscreen','zoomscreen','color_palette','youtube'].indexOf(token)>=0) { - - if (token==='youtube' || token==='author' || token==='homepage' || token==='title') { - stream.string=mixedCase; - } - - var m2 = stream.match(reg_notcommentstart, false); - - if(m2!=null) { - state.metadata.push(token); - state.metadata.push(m2[0].trim()); - } else { - logError('MetaData "'+token+'" needs a value.',state.lineNumber); - } - state.tokenIndex=1; - return 'METADATA'; - } else if ( ['run_rules_on_level_start','norepeat_action','require_player_movement','debug','verbose_logging','throttle_movement','noundo','noaction','norestart','scanline'].indexOf(token)>=0) { - state.metadata.push(token); - state.metadata.push("true"); - state.tokenIndex=-1; - return 'METADATA'; - } else { - logError('Unrecognised stuff in the prelude.', state.lineNumber); - return 'ERROR'; - } - } else if (state.tokenIndex==-1) { - logError('MetaData "'+token+'" has no parameters.',state.lineNumber); - return 'ERROR'; - } - return 'METADATA'; - } - } else { - stream.match(reg_notcommentstart, true); - return "METADATATEXT"; - } - break; - } - } - }; + break; + } + } + if (stream.eol()) { return null; } + if (!stream.eol()) { stream.next(); return null; @@ -1322,6 +1377,8 @@ var codeMirrorFn = function() { tokenIndex: 0, + legend_current_line_wip: [], + legend_synonyms: [], legend_aggregates: [], legend_properties: [], diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index 6863b8870..c1bceecf7 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -90,11 +90,11 @@ var errormessage_testdata = [ ], [ `twolittlecrates4`, - ["title Simple Block Pushing Game\nauthor increpare\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\nBlueCrate B\nlightblue\n00000\n0...0\n0...0\n0...0\n00000\n\n\nOrangeCrate O\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\nCrate = OrangeCrate or BlueCrate\n. = Background\n# = Wall\nP = Player\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n\n[ > OrangeCrate | OrangeCrate ] -> [ > OrangeCrate | > OrangeCrate ]\n+[ > OrangeCrate | BlueCrate ] -> [ > OrangeCrate | > BlueCrate ]\n+[ > BlueCrate | OrangeCrate ] -> [ > BlueCrate | > OrangeCrate ]\n+[ > BlueCrate | BlueCrate ] -> [ > BlueCrate | > BlueCrate ]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n################\n#..............#\n#..............#\n#.P.BOBOBOBOB..#\n#..............#\n#..............#\n################\n\n",["line 68 : Name \"O\" already in use."],1] + ["title Simple Block Pushing Game\nauthor increpare\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\nBlueCrate B\nlightblue\n00000\n0...0\n0...0\n0...0\n00000\n\n\nOrangeCrate O\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\nCrate = OrangeCrate or BlueCrate\n. = Background\n# = Wall\nP = Player\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n\n[ > OrangeCrate | OrangeCrate ] -> [ > OrangeCrate | > OrangeCrate ]\n+[ > OrangeCrate | BlueCrate ] -> [ > OrangeCrate | > BlueCrate ]\n+[ > BlueCrate | OrangeCrate ] -> [ > BlueCrate | > OrangeCrate ]\n+[ > BlueCrate | BlueCrate ] -> [ > BlueCrate | > BlueCrate ]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n################\n#..............#\n#..............#\n#.P.BOBOBOBOB..#\n#..............#\n#..............#\n################\n\n",["line 68 : Name \"O\" already in use (on line line 51)."],1] ], [ `twolittlecrates3`, - ["title Simple Block Pushing Game\nauthor increpare\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\nBlueCrate B\nlightblue\n00000\n0...0\n0...0\n0...0\n00000\n\n\nOrangeCrate O\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\nCrate = OrangeCrate or BlueCrate\n. = Background\n# = Wall\nP = Player\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\nstartLoop\n\n[ > OrangeCrate | OrangeCrate ] -> [ > OrangeCrate | > OrangeCrate ]\n[ > OrangeCrate | BlueCrate ] -> [ > OrangeCrate | > BlueCrate ]\n[ > BlueCrate | OrangeCrate ] -> [ > BlueCrate | > OrangeCrate ]\n[ > BlueCrate | BlueCrate ] -> [ > BlueCrate | > BlueCrate ]\n\nendLoop\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n################\n#..............#\n#..............#\n#.P.BOBOBOBOB..#\n#..............#\n#..............#\n################\n\n",["line 68 : Name \"O\" already in use."],1] + ["title Simple Block Pushing Game\nauthor increpare\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\nBlueCrate B\nlightblue\n00000\n0...0\n0...0\n0...0\n00000\n\n\nOrangeCrate O\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\nCrate = OrangeCrate or BlueCrate\n. = Background\n# = Wall\nP = Player\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\nstartLoop\n\n[ > OrangeCrate | OrangeCrate ] -> [ > OrangeCrate | > OrangeCrate ]\n[ > OrangeCrate | BlueCrate ] -> [ > OrangeCrate | > BlueCrate ]\n[ > BlueCrate | OrangeCrate ] -> [ > BlueCrate | > OrangeCrate ]\n[ > BlueCrate | BlueCrate ] -> [ > BlueCrate | > BlueCrate ]\n\nendLoop\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n################\n#..............#\n#..............#\n#.P.BOBOBOBOB..#\n#..............#\n#..............#\n################\n\n",["line 68 : Name \"O\" already in use (on line line 51)."],1] ], [ `twolittlecrates2`, @@ -337,7 +337,7 @@ var errormessage_testdata = [ ], [ `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",["line 236 : Name \"P\" already in use."],1] + ["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",["line 236 : Name \"P\" already in use (on line line 221)."],1] ], [ `cute train`, @@ -357,7 +357,7 @@ var errormessage_testdata = [ ], [ `collapse`, - ["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",["line 178 : Name \"P\" already in use."],1] + ["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",["line 178 : Name \"P\" already in use (on line line 129)."],1] ], [ `coin counter`, @@ -465,7 +465,7 @@ var errormessage_testdata = [ ], [ "#789 4 Lime Rick (recursive player solo)", - ["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 ten 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 = player\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 10\n\n###################\n#.................#\n#.................#\n#............#....#\n#............#....#\n#.......#...##....#\n#..P....#...##..E.#\n###################\n###################\n..#...#...#...#...#\n#...#...#...#...#..\n###################\n###################\n###################\n###################\n\nmessage level 2 of 10\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 10\n\n###################\n#........#........#\n#........#........#\n###.............###\n#.................#\n#.....P.....E.....#\n#....###...###....#\n#..######.######..#\n#.......#.#.......#\n#.......###.......#\n###.............###\n#.................#\n#.................#\n######.......######\n###################\n\nmessage level 4 of 10\n\n###################\n#..#...........#..#\n#..#.....E.....#..#\n#..#....###....#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#.....P.....#..#\n###################\n\nmessage level 5 of 10\n\n###################\n#.................#\n#.................#\n#.................#\n#...C........C....#\n#..###......###...#\n#.................#\n#...P........E....#\n#########.##.#.####\n###################\n#.................#\n#.................#\n#.................#\n###################\n\nmessage level 6 of 10\n\n###################\n#..#.#....#..#....#\n#..#.#.E..#..######\n#########.#..#....#\n#....#..#.####....#\n#....#..#....######\n#########....#.#..#\n#....#..#....#.#..#\n#########.#########\n#....#....#..#....#\n######....#..#....#\n#.#..#....#########\n#.#..####.#..#..#.#\n#.#..#..#P#..#..#.#\n###################\n\nmessage level 7 of 10\n\n###################\n#.................#\n#...............C.#\n#............####.#\n#.................#\n#.......#...#.#...#\n#..P....#...#.#E..#\n#.###############.#\n#.###############.#\n#.#...#...#...#...#\n#...#...#...#...#.#\n###################\n#.................#\n#.................#\n###################\n\nmessage level 8 of 10\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 10\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 10\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#.E..........C....#\n####.##.....###...#\n#######.....###...#\n#.................#\n#.................#\n#...P.............#\n#..#############..#\n###################\n#.................#\n###################\n\n\nmessage congratulations!\n\n",["line 107 : You can't define object PLAYER in terms of itself!","line 107 : incorrect format of legend - should be one of A = B, A = B or C ( or D ...), A = B and C (and D ...)"],2] + ["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 ten 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 = player\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 10\n\n###################\n#.................#\n#.................#\n#............#....#\n#............#....#\n#.......#...##....#\n#..P....#...##..E.#\n###################\n###################\n..#...#...#...#...#\n#...#...#...#...#..\n###################\n###################\n###################\n###################\n\nmessage level 2 of 10\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 10\n\n###################\n#........#........#\n#........#........#\n###.............###\n#.................#\n#.....P.....E.....#\n#....###...###....#\n#..######.######..#\n#.......#.#.......#\n#.......###.......#\n###.............###\n#.................#\n#.................#\n######.......######\n###################\n\nmessage level 4 of 10\n\n###################\n#..#...........#..#\n#..#.....E.....#..#\n#..#....###....#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#.....P.....#..#\n###################\n\nmessage level 5 of 10\n\n###################\n#.................#\n#.................#\n#.................#\n#...C........C....#\n#..###......###...#\n#.................#\n#...P........E....#\n#########.##.#.####\n###################\n#.................#\n#.................#\n#.................#\n###################\n\nmessage level 6 of 10\n\n###################\n#..#.#....#..#....#\n#..#.#.E..#..######\n#########.#..#....#\n#....#..#.####....#\n#....#..#....######\n#########....#.#..#\n#....#..#....#.#..#\n#########.#########\n#....#....#..#....#\n######....#..#....#\n#.#..#....#########\n#.#..####.#..#..#.#\n#.#..#..#P#..#..#.#\n###################\n\nmessage level 7 of 10\n\n###################\n#.................#\n#...............C.#\n#............####.#\n#.................#\n#.......#...#.#...#\n#..P....#...#.#E..#\n#.###############.#\n#.###############.#\n#.#...#...#...#...#\n#...#...#...#...#.#\n###################\n#.................#\n#.................#\n###################\n\nmessage level 8 of 10\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 10\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 10\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#.E..........C....#\n####.##.....###...#\n#######.....###...#\n#.................#\n#.................#\n#...P.............#\n#..#############..#\n###################\n#.................#\n###################\n\n\nmessage congratulations!\n\n",["line 107 : You can't define object PLAYER in terms of itself!"],1] ], [ "#779 'sfx0 49518300 destroy' works", @@ -486,6 +486,10 @@ var errormessage_testdata = [ [ "#805 untitled test (Error producing test)", ["Objects are fun to use.\n\nBackground .\nBlack\n\nPlayer P\nGreen\n\nLEGEND\nSOUNDS\nCOLLISIONLAYERS\n\nBackground\nPlayer\n\nRULES\nWINCONDITIONS\n\nNo Fun\n\nLEVELS\n\nP...\n",["line 1 : Only comments should go after a section name (\"OBJECTS\") on a line.","line 19 : Error in win condition: \"FUN\" is not a valid object name.","line 19 : Unwelcome term \"fun\" found in win condition. Win conditions objects have to be objects or properties (defined using \"or\", in terms of other properties)"],3] + ], + [ + "#809 stress-test for legend+comments", + ["author David Skinner\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\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n(a) . = Background \n# = Wall(b(\n\n)c)P = Player\n* (d) = Crate (e) \n@ = Crate and Target(f\ng)\nO = (h) Target (i\n\nj\n\nk)\n\n\nb=target\nc(L)=(M)target\n(N)d(O)=(P)c(Q)\n(N\n)e(O)=(P)c(\nQ)\n\na = = b\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 12312321\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 75 : Something bad's happening in the LEGEND","line 75 : Incorrect format of legend - should be one of \"A = B\", \"A = B or C [ or D ...]\", \"A = B and C [ and D ...]\", but it looks like you have a dangling \"=\"?"],2] ], ]; \ No newline at end of file From fefcdb91bafe3b5fa2458f0fa6e242b69ba9a694 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Mon, 21 Feb 2022 22:02:24 +0100 Subject: [PATCH 010/122] fixes #814 - Gallery games can be marked as NSFW - NSFW-rated games don't appear on the puzzlescript.net homepage. - I've cropped+blurred out the GIFS of any NSFW games and put a visible 'ADULT CONTENT' warning on them. - Click on the games takes you to an age confirmation page where you have to enter your DOB to see further forwarding links. --- src/Gallery/forward.html | 152 ++++++++++++++++++++++ src/Gallery/gifs/6ec59e0b3f1f306acdc1.gif | Bin 56314 -> 972 bytes src/Gallery/index.html | 4 + src/games_dat.js | 3 +- src/index.html | 4 + 5 files changed, 162 insertions(+), 1 deletion(-) create mode 100644 src/Gallery/forward.html diff --git a/src/Gallery/forward.html b/src/Gallery/forward.html new file mode 100644 index 000000000..3bf3a57aa --- /dev/null +++ b/src/Gallery/forward.html @@ -0,0 +1,152 @@ + + + + + + + + + + Forward to external site - PuzzleScript Gallery + + + + + + + + + + + + + + + + +

Warning

+
+
+ + + + + + +
+ +

+ This game has content that is not suitable for children. +

+ If you are a child, please go back to the gallery and go play something else. +

+ + +

+
+ + + + + + + + + diff --git a/src/Gallery/gifs/6ec59e0b3f1f306acdc1.gif b/src/Gallery/gifs/6ec59e0b3f1f306acdc1.gif index a6a83a8f7ed50e8a58491c3f14fea40f8b51c6e5..9d1142c0df90a0efedf0b2738bacc43dd1659a5c 100644 GIT binary patch literal 972 zcmV;-12g-YS={|^`_I7nD%c!-#&6u{W% z$jI<0`54&<;fR2FG091(IMQjk5Gq*-`Jic#T0z?R2})|(8X$Wqs(Q;hTlyN(D*HQ{ zTYIodvCG@LVJv)#>)f!)tROwSY_04uolp%;{7j3QyNyAftzizHiOoIEz7CzP>wVrK z-yQCNZyW!<>0j?3J!aqMr&zPq0g8;dkO@3Feg%>D|J$=sg0-6 zpH3~#gi2K@2%=LJBGVeQ=~A&wqdM&h3|ZN%YbSEOIu>o#uWg%wgg4n4Z`>C~%Rzm7e-_U+ue zd;bnTy!i3t%bP!sKE3+&?AyEdp1g0eq_)2*O+Na*Up(=}3je2%oP8MK=b3-|-O(R7 z|9!TWfCCXU8`+pDUwj!H+cdZXea-e@|vre$5I%#oU!nypJA#!GL`&fG%F zep<`INXMG3LqSTz`ZItaM~6a`m;QdsG)I?$kc^sG;qGq3M3k37jE7-~gMIlEy9^ft zvBGT|1KZuEiIJ7vA_uz|FT=w8#M~$L`PtD$PIkcnf)!47*)NP8H0(We@14V)bnLhk z9PNy3vmESabu7n$tfbV8007{A%LJ2{t&5(0VQ#XMo}HMIftZ?QaeicBZg_lb(1f0i zqUrC{)D(HsU%@~EiYB?Yx3{}ZV-jj+2n0e(%``tZ+Cj(u{+|C|Jme50DIvK(fkH2>B%8Ke*UPcuKEeZ+Q3RuS<@O?8W_q1-^0Y*KQK5n%#2>r z;h#9=4V;~ApGXZsg;`x&-`HG7B^h4~3Wi33J~=%>hh14kMMOV4Ls{5Q-1nXKnSA@v zMTxH2;qf{lCSG6}K`V#;v4}nX6uVr#!hCnhH!`j*D8vt2M>r~x;}-&wa+Q53MTPKH z&tQz$*zU0H@mXu|erVda)FVED?fG)DAF)JX1b>eT4XOMxDa5~h#>k!iQNgW0l6$Nz zlKBNU@TX=;&Y}(t%9$WRpdO&26rwqnLRgkJTkAaoqyn(yjki9UdKm{f5d87Gw>SWDyeZlV0@=d{}Fz0d?V1asowwn|f!zi5Qgk_d)Z zJL{aT(V0D6?%9sxlBIYo#vIVEx+OL;JiMHrUVEf8Z+d4{+4445k9rqeG0RSRFN;FsT=|tt73{6VXsoG`r$d?FaP`;dHr%{I=O1 zwOGjQXA=$Bgq^Y+3?gT{Qs_9R^O8dW8T)CjposxvhopfYuJ{*pp6pOJiQBw9)`lzL zCpY`)Ku&G`&KwZtz(+#~`-co~3A#eeG!%k`!h8kJj80%l-O*98_7%T=aJ*6MUVsJ+ zJv|(4-&Y*aP=%;^n%h-kXF4m+Kq1*Dg5ZKI?jw5o9Ow{1BOde^vT&$*3Oc5Ob-yFD z7%z&woT`;nM6IIYwj=Z6$}#b^#6%-XZF>^m{kvHp6tDet>E|m{xy-2p2vF%N$ zPc+M4-v}6o;;>rwD_JN`F3CpUUQBx?vy#ig@Bc1;=qDKOuFPXeE;@@zZ*pYTQBi0u z8KwKP07f8)F}qvTPe#x4V^)w%9jPB;3?A+3NW5<6VPMjsito zXK}fl#y4TG%d?Gt`YafuVE(uR1y>dWNU=ff+0Xd!2z8L|F!pr;XR%4YEa^PRhMlTM zT>u9CfQWURnOVCD5XrJKiiBR^h%EhK+dQ2IPv_Xt^v}I}?QEb1^XrX-h_vx>a}o&v zeH2*f9l`T5@d`OBU=d(R`kBLWzarQ^Xu)xE|Kp)o8=-{_O1x)pEg1MzXa6 zTiyFj%8AgM2$Ev(?dYqeGcsfPnWO{Nxu>)%!P5FGmTlXt9ko}vps?hg0go;`vTotz zMqbf;`#OxYBPa*2G{KLzkNg6>*0i2qao0iegzkaDxQM9K(2VHLBDxtIkLYcfh3Xt( zC)o1`KAcV9DUjMiwuM9`PL%(kwgLe0-mKFVC4piuw?Z(5n{9fig@3yUoe9pkgq8h? z=wt!sD5(wmi{{6V4goi?9O)AXK@@$eP>Q)=iyWxm^>r^SxI0J;?=P01NK&MVVUJe7 zE$vsFu1iRCT=X_9VP@;3=NTNbs2=?MbFvsLoTvfWtEY>VLM=z6$-#U zyk^Sa(3WgNmz3%R7`M`phUcRrj#ya-BMtAOtq;YRE#mZ#D9JrG^KrE*WR z{uV{;6jN&*^3@-WTbwcFF{cz3Bht$!lf?Q>)sTOlPUx;Zn+PWNE>>~ik{jW>%OWmi zpgRka3KqwPbzw5ncvKiiY`BBDZz3T9G~F8I=MN=#hOTtQ17M~r{OvxZRRybe zI%R`MWc290sWf06GeE7cjI~%D8gB&r_LavL9+A)E!vxp`N!awZ*rrt_?se&N6=x7R zaK{>cUq}R)h|+HndJT+_0BGjmhkB9#Un?uNiWgeOYXA1Mf*oeU>ae)HS^h+bPv-s# zjBvm39NnStNnTws_2zcbJf(=G!i+=oHREA9=ZkbB7VbmDxSad73(@1{NBT2NT%Xtg@&1VOTlG!Ot4+1U2Jg8&|i9Mt85^|;hN97 zi$iBtp14G^u+p|OX{UuMMZ;$1;n5!79>5L#zs{_amsf6dJ)4rP!dKZgNRHIM$g>s4 zWVWec)xX-iBWeSI2_Z@z;xU$0*Hr@KsH zuivz0PhWZe{d*5=8ck-Qn++Mv7HE=zW)o_~qo_cNR z@OrHD-DOFH_zt(fb&tj3xiFjfrUvEZ0IprV@t*IvU!-l=r2S=icLy$9O8>i0c5 zM0igmLstqeFL*;Q97WG$2TvMBFJ>-J`T-Z(2CrK<*D!W>FMo)c#s@D}F7HnV-icp4 zPT+h}>)ixIoks4xf<=6U7Q9alyrC&wi55IDdb}kHe2Q_sXZ(Fj`+Wole8m>LH4j`T z_k}ZT{r<8uGS&N;F8G;0_*vrlTXXr_D*D?y`a350J2&{dF8I4I`0EGwc^wEDKluAO z1_UGo1T_SNEChr-1eoFlcyk5b%2P!+1|}o~CN%`6ECl+~2FBn8VeACvC)jMCv+5UKK>m^+%D=MKC!z zvpz$O{ z`(j=QP06J6sbmV;gB<_@V-NVFOhkfgv_(k9=vU*$uWG$w**RjV3`glqMaZnqNwY>d zpO3P$owCypGlG?}zBy%mO3eDbAg9Ea!$lEkDg3~Y%6>Vgr!5sQHkHHjq%(Tz@n-@WeR1Squ~1~nmlGrIj&h$w zDnA5=r!;zQD;2`xWbV@!9Eul&1Z5HDR&aM#bY4}MQdeFEmP46T!AMlyDV0%(n~@Z& zPT*IWDHjAcl|ctf(Ym0~A8Ua(tKf_)p^ftIxuTqsvbmmfNC{(2=&R%}MV)ovVW$_z(Sa@X=K*GMMkvGNr4C(5ZVqjKYrX$GTdFBjS- zSAvcTERnJ}i}Q&YYPnt9d4nMp`pLC$$vJp-^-#Y}Qf%~%XX@PwYmgHgeU2@k@hg5M zRs$XL^oASqc=By{a%oJAjDI$QG#jD38dt>XMDgpfmmAIN>UQBP(g|~OksA4en^XyE zwkaE(D|sr4QLBP0S$JC530u+#${@;l=;F1(NG%4>)nP78ea)x?!%daX^`k0PMLg9@ z$#psU4S?mkK#9=yk6+0#EngP;IprDRE0U%^-uqMnyMrzDLFR_tYMqQx0msqjoAv0%H0XUELXe+IYP%%b@cxe7@eTt#pc%zgKZ#YeU*9kpk!FX` z=l-~*tE~DdxXn!$%^IVK87&BEd?U~zo^@22+g+Mtil1`~EirAKZ|VNdhc(|fF|AWd zilR9W8iByOuYPrIU1(jJcUhg?CtHBm{5S*v{azJZEGoVIs{!O6VMYg}GHHaJ24*v9 zu-Gplvx5Gr4MzZ`Zm(-Wembb=Lvi9w9WO1pA?>#ebAu7>4SnOIB~x-OlO5kohB`oq zfR#$#75viC&&dm>grhO7Rp%K1cdcb}o*}x|m0L;mtDt&YGs~{mRV=l&ffJmKXVk&g z`clG?Jk@R@wT7l)V8toR+$iqC>W8J(w(FE-f?t!amAGx8$Y-ah2X51AtE$hT-d7MY%{AotrnQS2rQAn^^8m6lqnIs94lt{Ua%BDkEF*ZX3?PZJD<=oHcl) z_yLeSC2!k=xT!PXY=xP3C%I1_$zca*Hr?C0^Os}~one#JY)>q>IdyL`>Vm{pecu*U z^_30v^;;9e%I*i|olWBA=IssBu?@1aWx~@!pEL7grtSdu14-W9BOsxz>@t!2vK#77 z7txkyS&KK{9;#dA%W#XunryH+H#EVXEXf8o-$WcbX$&)J+}d_RTAz5^VYoSp=2(5Y z)LN$0kzQD*r0Y>?^wERN0S(EtF3ll_*Z$bs$wb?}klwK$$e1=aSyR{J>DQ1GQK^+&zIfu(@>m(l8})MtjOJ9^L__J}{Mz~7vD4H) zySk`(XHsX@%DZQEmQgSJuOzKyZ55Ha1g=|uFRxwGFs+g0o zNna3p>|M1Uskil#mPgVuZyzL^S-&muOJfRHT>cHX#!0zO;kiOgJ5VKU&@8_JrZoQz zzoPq&Y!G=H-?mEPevC4HW6g5gFm^=ub|b-aR&aDJpMLdVhGQ;$Yzf)6lZM>$q>qr3 z-bJWiJD=ZngxwI1o_JZVo3cC@2|c`_TnDq9=|RqLMlZg2+;B@@*`y!SNj=`V-D0Ib zD!*Md4c^K^9=#Z z(ro!#(64@z1D`zSXDP#?9QCJ`^8rMoqMWt+opsN>@W|F!MPpZ-5S@c;f?OP&|k-@E3g1!91d_p3_qa%Z(V`2m2!xNK|{X&SK{xj6`i89lDQ$tH4 zQY$K}s*B3%>JuBA(tHa#pc?a%(V5@}1_%0?N5{sQ5uvA1k_+oP3+5K*qgPhL*L&i( za?*FRmk<1)(9X^;F0Zb-+7E8mj(6^lc3-z34XM*#Ojam$hGN*fVSf?Sg1h1Uw(F&{ zvRxjipO6wlb^0~fI0J~ps&d4l*dXjdSqT<867d9D>bm&X%lwI7rqu)zEb&2pDESx# z@{>fI!Tzky$aPqXe=I-4;K0CN<;)fn{;taY`e9!_N27HKiYM+!t`J57n`iDrr$ELi z5vs4F93y$I!KCo)^6ZI3veWl9l)%~x(NewFJD8XFOZCq1L|FT$88XJ}O#q)cwemPfyD_F+GL zH8$)m{JW0BNAyMRsL@FQ7v|a1^L&Fm02l3z#}m%qEF1Nihuikp6z#RnoD4LX%Qm;D0 z&iQM4-D$;TDcc?Drnsj7ch{B1QQ)@%$jf3r22wFMPy~B_GXz7yV6l=z3;bZ!jYLg} zUkl`GQrHLu{x-@E;F34m_58CtFCT(D3a=cjaFmc6r=K;r9Y=k4knLT`WJKvJHngbg zuT)sSo#vXRw3nn9cbFDGKv%ya_$lhEUWNyVJ2ghNsgNQDrB8>(cbiTuCvv|tJ3l>= zy~!{s^p1`;<9C#es(>b}??D0}4$-(ECoHHayR0;6*ow)uD6g>U4Uw_5cFrH;OEGE@245$#Y;TBb7xLJn}*f_1<@JsHj!x7*vtud=gEGyVAl4lG$=Swza zFXj6fUp?MMcv^DYN2piZtHxtgH-|dKAGPXNd{K{2_E^+(0Xm`Zh7x>X=>$T!*n07w zgC|?~@CklZKOO~}_uyHWnzz@#n>?M<{1F#jh+jrlhGcX56nu^Cg*DZU<)5lO8Q=W=laJ^ZQD9VmRdI< z!E;)*sI@<1Yl*UxdOxDTQR1+sH%;u&{9>)|8U5yg# z4?s+DID6brDQAapZpDR{5$>uXy?rV=!5A{$*5X4w*0b^cReA`baeq9VXS))B?to)? zxnK!UZ(Qh)R)4zGl~{EhO8Bt+Bo#u+)NB)k`F4HhKjw4Zo4cGg zag_639kHbICYCXnw9XakuX8+K`M-UE9 z-$z@{+-*FGU>f5a&+yCiqK{W8Mrgb-lP-K{ex_5U)OWz&o!g(;Xh9JxWCuR(@_Q8)j8EB_x{v94Kxjp^z0MD|9?mbGL^TwAj2zO>>7fY$~ zvG7t@6qQQfPL=#@!f;TIy~3Bhg#1<$YoHE=-9zVw91cTFQfLViE4YAwft(JkKp!3D z^huA-1b-CYc+#8`86VFBAzc6`I;OuT>vMkKh){$C5LVL%IEFB)ZTEh+0r+`99jicX*LvnCjy@m8-fm1$lHCf+; z423rFX8ckA0)##v$VMi~!Me$H_TKDTk%T7=;+qgfjX@WFl zqvSi;v8;&ZTy+?Ksh}N$$~vM#KwWGp68608S9Iq3nvHV!0tTXUafRq3FnqwT5^db! z1+s}4SSZJ%-@C^0opH0JMzxF_=SfPVT~=l0x28mNDvIOQ_LSmAW&ET|D z;5IlDF4$S@=2cX0q!b#mLRmQCmsj?ycJa>smTNUPuOgb%H?Nl(=^l%#KZtX6lFprY zF00IAxHxwFNj--h6b2#~-IlYyX@74GnuU}td;;Auc{)jGHzYmOBl=M`PAP9Ycavl1Hzn8Yss>f*iHq#>Icz;rw1Yo@>59PEUkq`Of_Ac zhP%fu>jFo2vAmnmt%H>s>%P=i5=t6WeW1h9CPinBX%U}YrH)gRa=(e`ZRuy`-{ z7l6RX|AO?%Z3RC9d==FE0?yXcT*f4v$G9Sl5xfQsfp43+?b3?RdV z_`1KxtAWzE2sEb<)E{a$C^7(=p#gq@XF{Hb(7gu*tXG_!%O;I;*%y+Mdt>8l=Tm>F z`#Z1lIc*F~APB?dUI0MvMUd$4v<&C;P1J2sL>^rP#Egz6*Z^ADSHgGzl27>1@QR2xYZvm(>EX1$8j0IV+e><=~c-`qyf+o#5{Jkx`v3MMP zSA=~R^?gO`fP?x#p$9U-0-!CeqQt{*a)2+6p{+`Q?L4l13!HiAgNt%QfaR=j&xNm+ zB8{#gVvDukbDZCOogeCi-}xM)WdNtOp}(GQP=uUYvLD1>FxP*e&)@M1;DHxl_c?(1 zZ-6YG9+7`Q6s=SHfVXzOTQ`@I&4G6ytzt|8P8_Wt9Xym?19A$NU)qB)Nd~zYEje31 zQEmY{cR^5uZ3sVnSci~(5=?OSynm%^aO1w4u5YlUVF2M5-@yjEJyBblyMQ~z5R=^? zy?pD~0m}FQzpf9V=96A~3P409APXLl>YaxL0x!FO7)n3)XF_$ey%YZ0=GUqdHrN@~ zdZ71$$Yi1zH$WdEqUh*Aln5XSOF&y)WEM;~Yi%&jTrlaOP6Aa_ystbFU36(eG%{|~ z!L0AyOi25U7jy>$jHLxE0L5AWn7~d#b>YR705OKvG zYZ*rgHqfkd0Ri+T>J?XdeHtHtp`325`>~F6rcVO_X9Z53dNID1p`b#G%pRclV2l(( ztcEBJ+n?A99N-hR%^9rUy@KW3ee5P)Tw6nYM}wIkuGOn!_`<%5`Jv&@3!w1E??R<` z;x9=lhw-;uj#-28MEG$_un9h73Bv3V&w2^>bul+nF%@?);=md+1nDm}DEMW`7tklbG76n7Tw4QeK$0D;D=1oLu4? z^I((EnV8Vqn9z^l5s7ax`j|556#uvYN!zB?pEpWNz!%w{O>KEdT^~$RbkM6i3`ehx z+fho^`I^xJlTKtAn(g4VWd$#<1je(pK+H&xWRKnQOev2uE~saEO_cCM&w!(kJ2nb_ zR*Vx2NR7jdLokjGzXQ^4_-rD$m5L=RaiwxJC4%VfFrMP+4dAzNb741tQa4_-h(L^u z7)DEw>JZ5OH|RG(9xOOA;~<4~$bp0=CVI~(zAumDK?NB-QDWA_Xvy=uAmdA;8fsIJ z@sNQVw~|Mby#0}fH-VQgcfPc^M??UqC<%%IL_CNj!?9$+o(L}G zoWm77^wk?n@$*GBl*Krue99HujWzI16*B}CUsOt^f~#i;;QvL%U_Jt{0gNBtqhjU% z6BWbu`loFD1KyQwNN8AiD1X$utc{C_c$c*iOlc_@nOT`6?@_UW!u;$+tURoecU@cK z9bezTU)x-g#?;c$8CcZQOVZ_6mRm6}I#$^@nJ_-%*EYLQ(zjeZGek17xV7ywwYM`f ze{dYKayGlZd2&549e#Jya`gCuotF&Rkd1hcczqJ{g6B`tt(a@`I|dok!&GMV3L>MW zEDTg;_hVz@sT18=QgQ|+(!vsQvC2wBv!Vp@MrP%WCUY9VW8&NV8T{Gi{wSy2@Y3~`WQwB65prNfQC@n0*KZDSoWei30SQk$ILJqth3XI;_0b?3 zhVh254iZeBm=a|JF)Bu(X8D9=-Qf%8Z*19>+x=nEw0k-8%DaQzDS5ijH?zw<3EOA1 zKb%DlWa1GnzpW0)fxszF#LUp~cH@|M*6|gm*VD`K*z(t7M9-1z-Dw!!gyxkDhx~KfPbw4+!kupD(InA32)K=r#zPWx;P}{nfhx7P$dvO{TR{zV~&B-}ncXWOIW^~D2 z;NmldhC#-x$gIZ+bVi03yz!KVC5rKUDjBof0f+)>NSM^+PUs+08_k_d6im$+mFYl; zikTL0ywaN`0TjmDK;|?8cv%l%4{Um}$Zu zshLhmu^`#a3`+gFt(4bzwVhPf8GR?x9%dAln*B+iL%zj_9xdV_mU0%Fdc@r=H~ERy zSJl8fgZ!e|xEo`@4BpN~z3AA_ z@MnHH$Y!{yUijd`*LhS@fA(}-`dzbWtU#iK`=nu?nWw_)yQ|AtM?arSc`MJ$Gjt9O zr17F#j*4jSH6l$Q01o#Okfk&zIu;}&FC&nEr`h^{f_C0((2(g8j>`RioxR` zM@Jw7E6@Fo+x6BWUWHFXK)Ula7Ew!?^h<4fCxg4Ffxal5lRqSzRs--#3Gc zPI)qX=|lPgucF94{zwokSq|F@ZMXc8RCLsbyvEfX-Ago-Z z)@}Cqp_x2bi2?+ZBDwr0xkPr;B1MRr@m~>w$`a?=IF(dGh4!S`iai@`#@bxo@~im;SJ96gAFqahuM6Akyz#4&&*m+nNVv__7#oamh38r8~@xg zVTTTwFB=APUNsGY4q8t&`fkt7CZ6#GK?l3lG zpECVaiA68mnk9;1S+@Xi6CDsPsbSTs&w{>_P2eAv9V*18^YRKq!H#I;HRcE6(08X` zGDRAAAgLzN(5q#sz>E4rolXPw7;!=A8=BHs=6`w zjoAk#P1O@O_+#JCv8VvE6($_VuNdl_AHG_W=_q46VYKjKcq9!ML-Q;~V9T19jD^6% zpCCg~XW5vnz%l^Ce~wj5Rg<3(Vev9(3sqd67r(e-@VARk_>$GIAcxjToGMN3|2j{1 zA}pqy2TgYM-ZU2lgNRj;W-{-vxpsT^6nnZm3iT~>gS3oa0;nI-`;DiDA}3 zd%~{%7Szy9o{S%{TVh8*&BpJjU)54B^z6pvg(B>Caz(WzWT{gXV!1=pA=1^B*OU)R zvOgD!tger8edSNq+QB?dhj54%8{Gk^>Yw!&cD8yVKHi%#UR&)9C;ZS~8)>ZGAI}gB zCi&G=b2we_r&xWosrGojLT5PbS99Iza)ZtB+GunA`Fe*p5~);6!{zosG=s*!Ao~79 zwnVyAYt!xVLbb{ISZnkB`9^mzsdQV*+}7^_Hep%d)w>t!}am{czZhp z0)VC607K&#Zg|2|7i@STa~^DXqYKk+`e4Z$Zu;Wsi>82x><=KBKoB%p7JwvfAk(h_ zg|#z?vF>0in1vmz3Jw2$G=*~QJ@6y*UKMPI=cD_}yK$Op?nH`G7g9!{L4RF|xWR7R ziIL+}B8s^dGujDP-5bb>?$V-5k7Fa#+)FgfGund^QKq9*cs68m(gbk0BDNoqWhA@H5O9$DJQcL<79Vm$D zc>(l8w7@U{WzU=#<)AH7&OJjzAPiRqEp!X_5uglJGU;Psbz2{Qd5eC=KXy^fScN{I zcw&nDX+sMZp!<(q=xZ|hqlogDna-9W0_!kyiXmrBN1zDLd}tq@GSgkoAm-)=@eSsd zt1%>%S`=tkX29cCvqc9m_}Ib(xn!uI8lB^q6^Qu#OFY=2E90GA*huQwg)p@;|R!qtK7@rUOZX3O-E{6OdI; zUR5qJ06}tUwKFZ4$;*^}=mYfGC^BZXfJ@Gz&*rMQTebOG;lJz`G+0^)=gh*1S<1DB zes%*IsWam%DB>LC8Vs?z%Q8j@jlnrgL{3aow?y5F<<)mX`kWr?K!;v z``b%K;`r0n!#yhG?ciAB?QOmlfQar2U6Tq#YiNZg2=jz5AqDKhbs{QXc;Ss?z8idKcIijyk1}0}KoDN&m%%-VROt9*@MzHVj;te(&cS+L< zxkmOTd_BZ-R@O=nIi&gFj}HAm7*7FUECav*4gd}RJH}H6h5cVK-hTM>9pft!lo^u8 z_bUHkeDi_hKmD&ZdVOfE{wc_CGQpsKwb4Njl;1_FV*FrA~u7J&Ssk4Tm$zMBL#r$_I2>^^u0kiFQJe4v{L}!7|-p7a-qELJE4QIp6I!fz)Ov!a-^NkYMX(!M5 zM;jlM+rxe}-<|F>&kK}}{5e`Xfa&51K*{9wx!BZ-*lT{tntsRl?oS$g-v2P(0FR#( zB=QIt5&;;d12z9)JbVWL1^qz-jQ)f*ZHi6{07K*H7i9V&;ow51y)lHj$bs1E4V!^@ z_M$3KWPW&>l60{F6hXvgGg-k`_%g)6r&~u-IG&)HKgQmR(B1!GJTl9P&j$zZL9*Q# zIeEHnkQAqoZX{6ga5qLV>C=vd>fFt4yjI+&JR7~VL%k%*(nq;OAbJ4+mTS?7KaTUq zA+{R|>xP_%OVHy^oDgS4Rt9F7VnLFBlu}++HO!Hm9SSdjL5`{QBG@TT9KI;;axh<AcpObkzQ3#*XaG)&0HRQP_#5)$&RNbPWJ4y;I=kH?8V`WhRyZ+()nJ zdOc!FE@Ph#q&@y^sz9=CN>fqxUO@r!KYLjPy;(&GO(^UYfwl-`y1lXk!=+1sE?|O*21)dR1?*(IO=K7;O2)t zLa3JOJ0zi2!HnYbj-#vN^G@+kfX*%y%HxV|P(DxRe-=;Ad0+5FpW08}A0Ry$O#rl4 zBnA-rKF@@;pHXC!ZJ;zn)fz~X-%{Skv_H}_Y&Y249a#S0FA zxl?+-=F%N{Lu@l`Ru6K#HgjBa@9xy!_&MK7x#>@u#uXpJp;jLrAu{%5h3`)BYXu5A z+0#K*vP;jFKtV*uyTh~Agox#;eiEye_7&oD+|W$Ye9}F&rb{WZ!|V!bz9uO-7bf#~ zzG%R;cqt$HfYA!WUZB~Eh}7WTipb7*@p4%wLD~kR?Yj$vImp&%0}{K3AK!c)RP&kn z$xhbsdOwZk2|N@0?*4Ly*A+~l`TYd}3<%oRfH=c^FB=GlhhijqLvNsjVYXC2Nl}MJ zaqNIruh2twRNRLj=)_RI@P>CuK!ob(#O6cxrMyZpQcYk)MFjf|iT4oe8q(6L1zAUT zk|U|m{*;8al;NwvLMQ$BlMs;&APk+59u+`0?Uoz(vnR8p0KWU9<|J5pg(9J;!Ix!= zC8TnT0zXi*?>Q4g-dHsoeaW$#A`fB}V(khdUVoqmw~&P^FJuz~l^6*Lt|I&>cdF0_ zMSqSBN&KeN`A9R^DZ)+19E1g;`a%bm#EFWIzM-t-#~)IM5sOi`P57WO&;i`UkQL&l z0Fa8t`Ik;<`N{Z35)|ZL?D)%8`s6TQY7aB+U7&Tp5Hr2*NQl5(N1;NmsRkhk%Ts)C zZ#ntng?T%o_8wrG;m!X1dNE3&8!f%;L&Z6)B=MKvgHoev{wD}lj@f%<=IVu1uIsSR z>h4E8C%1u}y%wVD8(Kz>t-)t2C3yR$AL;kxhIGi>(l*>P3@;@g1(?@uTCq)G8E(~oQ&f9o%iiD`*-n@aAjR>urrhC2dd>olA^jg zCM+77A-L=BTvCKN`(9_^;-2gZqU|k1vGh0~oe=}+%o5gb?l#+$56UUj z3t?D#*|3ng$`>;tHtv_^TaerZyhYHpWF+xA)H5vHvNzTczi4$~uAIN}zxX0}|LCL= zz65(5k{gmNbkU!A1x_PvV$I{>;;wo7K@sUNgB5#VDJyaHUo;Vy7Y57#vYHuA;x_O~ zeP2kdW87ABls<8Fx=aAwpj>x9`YZNG=dnlS^6In2H{z`mE7P#~a(}EyXpuGK@Cx46 zqMmpher~l14EEln#WEQ8=wnL-s_j!9I1SjsvcI7+>F|B|jqMm9Nr0}rq0hd_WWo2- zzqRB5LqQ4Yr=J%*M3~7(`gw6CYk(~gsnq9JbYfR34u3*D`q7dQ#Z+j9Ef(u4w7Nmp ztc;&!i2=&dwYk;|1?_E&QK&I=^L$^46sTe}#NapP^9-sKCVeU%(uv!*o-oUaIHevp*mIOn5w36Fd47Bj^`Lo_?c_+faFtF z;PgJVttJ|5eN`8sS&FYh%2p5lT@TvWMZrLoEOlyO6dT(WC1ppJYi~mzROqEMsn)g% zS!W~T*%g(cB3zBWV?N!8b(jI~=C^UDi67r?Sbi2vNr9vA`P$%M&|KC@-S3JzC(OwU zOyG0sIA&@qAUY&pUJz8i)J)$JTbLRwuY496_GySv$c^_rG{bAonr6}}oK8Mcs_&Tf zjc}lvNJUcHzgWCfvA0WiIn%mtUhPe>ry_Ejw`BTibAsT&Hb6Y!5&qP4e&(x-t99<@ zagPf^^Bt|Pzp(qxyZ0g8$B82iE!;!WU59Dou5a~5E1>hxYTXZIc=U-s&yt zxP8=}A%~Qb1}OF(|h+2i}Jwf6N}*R@ag zKQKpg@I0UAzVGi5&xoW=`xbDQU;*psI`7pH1>O|nYL6kA`wnl2d1A26lU|SO`xAG) z2Sg&0UU}lo6h+NT>~H_2izEA%6C!O@s>=$d7oe+0!B*(S%D!|#{RJI2@77J zWf=@3VFt}1z$$<|s5Bu6B5NHqwH5p(16J4#EdT|T%6rdD1@}Tc+gXXD5-?&QW^pr= ziC~K48_eSRkaTd6s;PU5Aym~gsGB@w=mv^n3K`r9&Fl?BB@3<7G^>RK(%OW|MFbne zgZp;EuC7855cj_cVZ+QpJ-y*O0nkEtn6hSA2+99mmXT-E|1*pu3mgB}*)+mO`rp|! zJ~lE;E+sW3AT2W~1eBYNJewBzkd&5{S5%f4`{UKY>%1$x>+5TNBalmPR6=)8XJ%?f ze|mc^sB?TGq-tuKq_YLySdH|LCXq{TP0x0G-_YRxNZ#g2$ISUs`wHG-S@X&%a_RLR z#Y)Lhp%C*q$^vQ^1g6PaJiI!%BaO`L3f^LU+yA2AOx37j z6pz8HaZN8&rlfXp?~B*CNy>?w^qGTsQCdvdQqg}qcfqpgc?f&jvzw1O8i@O)>G zeRc4qK+fnFM#2@~nI&IAaKZY1EEsq0RD;6mL%G z`h3GNM)P;}^1jUHVvLS5u-M&^T+{ub@@JmgdjQcV6b!Vu6CCAsE*q$emC7Hlz*j_S7Pzn<{kh-h41%8qg>5s~OotPP| z6ZaJiFwMe>_9l1k$W7E;gQrIuwwrB#7}i7IibNPHtvc5jtDcZCfuzs;{x=W*&}1(#vdlzoe-G7~&3; zOE#WRT$Cj0nCnLV67ef17eA{F*vs&vm~qXWayz7h)~qk7>|L=*C4pjNzY=`Tl+#5t zi&3Xo28DeP8@|+FE~Kp=#E`Mz;i_A|1NeI6O7N1%D1N_epjYDcm$~3(z_@Ez%Qb^s zC>(Y$kYDHdL(EK$7^r;mVq971@M1z$p7V0@vxddxA5D|e%PDQA z!^>$sf6l8J!+2z2!!*D2>fca(HE-R+dA(piZE?K_nc$F4a=SjfUWQ`+g#%z@Y1gX= zWNKy&jfd{$+1y*?*)&p&7P9J#Q^vfO!ag1h^nP}N*vW~vyxYwurW4+R{i2oLu9)`5 z+3^Z)Z9A;rF1tT!kjl8*ENP;>Kk;#+y+dtgDSyCdEvIeX>Lj*uJM87Qk~kVd4R1IZ z>%nikCU`9^_Ow#BF4=awlVAS#w&e+5c;8ia*?k+gUhntg(UXqkIfn3xj3x#sos&)v zfc?M?L@S^@Kid|%v9a<9C|-WlMj%=bkAaVNZvj>^(i(KCUbC*t=V+KR!wM%J&o}1L z`DcRg@GGFDH*{BO3Cx)N((o7mz>L-zeE#W&q&q}4eu zU-FOQXm3?TG=0`W1tA8F1&L9D#Jx~bc9l`C-lNY9<_W?Jz0vB!taOw=@hv)rmr2`s zk8^C_jMhLI>d#Y8VEK5YCqtBBswwM+S|ZP_hwpRGY4>pvC>V;PNFW&FqQnHy-q7Io z>YVl=BoAeBR>_hTaMA9H~x z^`EN=iXU4E5&G$gKbJ#X)JvFS9kl-xYP7lFRC-qz842u5)F{^1MAcY*H_|*cU;W}r z8);?3sr6-S?sKzbR=GB;c%BX*h?1cUsH~RJli%V>o$Y$gjbvR5@}`Tu9E{^F-WtO% zmx(L>dL2BZs~sU=-#{vi?=ofKr1Y(?B^Zv#U9j?M(puf}sqac% zXtIQAPgBAh+SIx1v-jt9C>V4n-mlrw_$?m9oir?^azHw$H2P!XKDRTJJLa;B>Cg=Q znD*r!>kkCorkOY6Re$b<8ZWneF>HNo8AW{dTW)EbHU<726kJMPL0cdE`tWG=sz^LE}&l#YePQROg7?1=3bkHkpM=kT|fC{2@1q%hCt$(GiAjHa~6ldPRp zEB*P=^{%g!>#{hXdcUT!aZ0aApsXctU&pR=x^;@O!Y8y=pLqUfx1`{osHal%Lf)oX zRae29RL32&CzmNH{F>VM&_k?WuJgl3b)LWRj!c8K5Sye|4I?Q>#R^S}?_7nN1DTJV zaY~o2FeqEk53AkJlTH5qg&R$$ns`kluVe_`v=!f%!`L5|KrBuR(&mxRZ~>0lcsJ?} z2pgJFC~8EmRwP4D$?zQx9WGdeQ*9WkUg5U+s(gS=bLnhvL5YB7S_Wi(21@E^-YSAL z3>c(gXJV%A{3ds{oHn-&cmqu%<5N4?-|bV?vHX{< z11%c4n3X<<#$@S&IGU0l!-U8p*&OknZPYMC``5BlBLb9Y6R4rTn`Q`K1mZwfE@=qR z78&WU3k}m)Lcx!#U6zoFk)`XFZelQhdBGHEF$@*Fd{$Sax5j_PA8;sW_G5UfcM7tB~^@wwqq_{fBh=)jEskO;@_- z8@(53l^Vdu9?y9v*ZO?Vdw&pW0d$ka4XYRW3Sd z2o#21l$0OPKPWor{;w&macbV+oAZHQBOFZZZ1Vxkgb@}>6HmZ66CjPWmT!g6^HJ}$ z6)X|V7ccpI;@3cxywcdJc*ECRJ@MW?P97iOP$F_KUj#}yCJK`#aE1{@%M{pP;#=2) zC7}v?PQc{D<8>$R>ve6X2?iOG^BR14;n)UK(e$hx$NsouU8Lb_Eo@($;afiK`<>j+ zfZX3@8p~wH#yi7rEunuS&f=F>fSooPKz$t`9}pO?8T8dZs4yY$n#Jub0v4LVke&cSdqang0HIrlke@v3 zwpaE=wNC_-?(uswfE;CFyHN zCmXD*!pHS+wxbx|k9+f}t_OkkfkKi(b!skbOizI7@(M zYj1EgBnXSb-4Pz{zoIF58qUQK@=7owl`xFdIdZ4Rb-E|Q;3nc-0-cUVu$ge=mVYE0 zRsizXbE*RURwDBNQT^?ao&GpzW>L?bW4ts$Pty^B)=~OokzvBoNyrSyt)IGCtf&YG zi!NyLB#g`$=Ovo}8BbgSX0%bgl5QgM8W#9^H173EsD-SL3>(h(Gnli1_v>8&*qa~n zmGSlpgtKZ9BTf;xJ5d^60|RD35RusW1iMI*#NY_$sL(=ekK6c&Q8&*-YumyI?}S)k z=V(nVtY9p!Ff6wSvxE!^<~yUr#j2#|9gyV0$keaCVCRI-6j<5LzO}oFpZt^31F>T% zaFU>j?N|w!rt$43!4uobnX@T@eV_(25KJLy@T=1w=j3pL|Kgj^03`o&4l-zMi4eji`VtX~iAlT_8* zT_TTfd_hj&c|k9bO>9z4MN0L@9Q;{DaOIkqw;%4e1#n?zP5^$sj7x82j)E>Zd#-pN z(Hfs0w@nL!MggKVfk|tRNw5Ppk}mB@sU-qlAI=ssc!$C^p$@byqtk=FA}ai&F5&Z2 zfVW0VCQC!aMZ3uUPjNn8w#s`gff6mnuTOB4L(${nY52>YH$PnVIn+_qp4MnMcIARP z0*D#YKH_qqXTv!6+&iaBCVqR(rUefsGHUu@im{{|6jZVPPU80&WNQ?V9(_e~&T!aB zaQGH3k*T|=c&Rj1>r;*To;q3}sa>a?!}ZQ~ueMo;CH<(h{&Ky+$3(uyef(&-CDSKf zrKMR+P*a`Jcn8#$~7avvs*E797gg@V{284c{!S|am>(zICUyHH~Ig^EqyT zXJcS{hHE?U`UBB<3;%RUHKP!*_}Q>D`*?MS6sE;R4@L3A$(XW6O3mO~A&ZL%MJf(~ z3A}%M$hEHf>uEio!`d~;Ms~Pup zStY);zB@lV*=4Jinn-vvtw;Chz#}}Ze!rf-tf`@yisi1> z3igM_sAYwn{NE^)5uPlkFG>Kt#g{K((97U9RAw*|u;9VCx661-av}+)S8|~C(!(W? z{tsZm)T#GKkidfxrwk*9%Ahd-e27?A{DeYQarO0}m^0zNAUpa#Ia9zVa)2@cs|*{F zG~h*3Ff98K1m#fG2`kI)R<*}zc{L`(BV4uIC89@ui)kjcbWO1Tcg>v z6sH!K^eOWi5yxiY^a}MTe6Wr?PdN?QE}Yqw(P)`4SXk&4-xnEnwM0wpHb^ZlqbT;I z#m^*Z@WN#l9Wzz4&)O0P&6)hx3I3(>YN|I`1mLf$XikYa+ ztB9+%KmcAf8|Mjys5|~H?RvoOJNIwT5H(pqVH$E^#Lv%Zo^Ha?Z*~V45K9)4| zuzl;ytE%B-1b5ANv93ua zyk*dZ+b#Cx@+|{S-4!00$N7Ef;~8A*@8fYD3df51A2^~-l*ijMcLn{rs0}}C`N@{C znFI8RT!XZ=qLi;h|C>#HN7Wrqfd0!h!g9NIgX}g;dxG*K2dpmOZ5znAS>nUw4XIEb zEW}JZoO&4rQ@Xni6C(o-zR@HSqiuV(lvm62Vz##d!pD^2hJ&F}nA&*b6<7NZ$f@Mq zuXR)v?<&3(!h|iw3Ob8uqc)~;P3-%6eil#j(OAfCcG!v3H&()LlXd!Qk41NN0_q{Y z$o%G@H<&+S`T-=n?%Zchn~*JbY9hToJ06eGmFCGFpaPQlaW%zM?{_{(QPRI;o-Xu1_0qkbBW7eJ1(9X;2XZ>i%&^uLz@Mo1UD@V) zt5wjj@+1Pjaf?ly2@BMewj7EGt<9GE*;lu{|7GmM>42^J4yZ{P=x=YrK--1hpk;An zBY!`?po@mZg|H&xSy>86fEPOHFuw(fuiSD8)irS*X})kH1jxf1XBR7nn&%hY1v@+N z{%#rL=&c6=>glf*k3CsZmT-jl+d_R#qSwVXv9BEm^bc(!7#Y^aq0)`fm6ic{f$1;W zAyOLp=d!)C>o3Sedi1$0Jia5A6`wWqYUo-QHo0y27~c(;SsoY5KI{deWqJ_JPHAh1 z?Fk)2rfVhb63M*LXaerht;H|d@!URGjJQlKw%V78Q6Ij;bVC_Z$$mm5Upn#AY+Dtu z#?!lLoSq+@sN);X3L+C5xcu8ReLw6}>_kgAf&WPV=7aZhSm};qCIDX*;X>lJ!aGd} zn_~>Udqdr_nY*y+?u)ay3SqeUXA2SU%Xwpzz4N^ z@Y3B*2w30kba+s`09Eb(E@$2Glsq(la@k7#?L3nHef^Mo=-B6&20`#!Hdk2E5}fIV zqP;ZY(c`h(wR*qlmV_{8m_ZAZ(;sCC4=l^nh-!7DL|g6 zV2bl?ZR}C1YYpchRqRI%+@T(?v1zZZYY$&NAd?AjnoI_F=LxEf>f^lv5s~&PH}M)L z^G<_1fqQ(wH(vMK07SkH3xr6;5yqcqsPoQVyc>ss2ZS{1@`Zf)$i2c@3^y>TnofNG zZ277|d}EA#KWiE>f(#?hfgTg`HGk$@o_1Jlcz>|x>nEas7dM`KAV8(5Grih>}h(XkJ zkTgc{vcFgEj#sQ{U`@Th)r5c3jbBQfcP=0VVDu!Mkw8!ff%V=v_VqB=FUMk;Ubri7mI=-mvv32a>1duTIRZveOLS5sdE}$-fwgHsFK|KlKGYO%@W}&aY zMgz0#KL4?7k$G1b5gl3)Dfl%!8W9R7j}{ILjh1%caEjnDi{uN8f(yo`j#7zfM2TaO zO9o;~2fDGa1-+ULk;jTvNOV=Eh>8jb`-m0yStOV{FWN}mM&a`p6tu8!?Ko;|afED< zLJct{W=wFnqtI-;#n+fIlUOmfcr9maodzn{_l7tlg$QqjnAVecZjrcO1~D-T;o;qe zUjG{+qW_=!0{#EBFZf9Que${j$o|j15b*rJ`vU&UEFXgMigIs~ToUif%2MRM(2|~j zXp?OH2kVs<_76NSZmO@Su7!^h^de!su=a(-Ib<0;YjC5er18%beN9ds{qEZ7S@YuM z`Ss1s=Kb)_pYg*2nF09v@s-_?hJTKK#wMYEyL4rRIWhuTE#*^3|b9ha*m{r)6QWpPAH zgzdXQbukkfahKbpluD%^A-eb1Ysb%hw-1}dVbk${YL|a|iap%~4sL(2irsWdw}+kP z>)HH0#H3?D8J457$4rB-_~J@}lWo}&Rx+{Z3~T10mu(oDzRb)4^jdp5GkUK5>ap$g zghv9I?l)a^KlC}dZWvs6)daEwc*is{q*=G%*-!csuWk&SWK;xlT;E1PHUdRd;D$Qy zEwMJu{08Z^aG3+74eip&ePhHZUgqY;Ykfu8_NAm$i-edJ)d!^6y~!Enac}j}W~+N^ z%VKp$Sd~XlgI+YA{(#j}kkj#JcQJry4MjERNw|?H=l-K2C_VS9Vs9qu&qjRTP?x<( ziL&mZA;*Qj|KD`42M!?iKi#W83j4J48mx@ey;e0tkU+N6!D$bj|NqzB;#u+z0}GR_ z-4JnyPr!({0q#W(DmtfqJ~h3C{fHtN-^KW|{A&KF(l?7I6WM|mwe6Zh>K9Y^PVZ~G z^-wvk0@dR!Do~Jj3rB!8CQrb;JwF3t(W$tFqhpzerww_x;JR7yc}8%(>c8$Tv=%Z@ z>ePrUPItS3EQ2>}f?lW9uO+?sJ2BZ67bV@0MM`|TS&+}=yp@WXQ4c8XcqEx^3Q`f> zX-z4+JBq1Zy4|l7J0d=8oWrj?YCb<|+CucSs-yNM1s!6~&^<}xfDF^!aTe^#Tdrcc zmmyE*r5`vRe@_tuWYG>-q~XB*>KAPoEj=n8+gm=)ZkuRKqbgYSJP1b~>EC^U;WpP3 z+JAr6O7&kJdjhHTfEp%J!y?aqY@ch~J(y4cy5B%yNh_%M0rhBtmOpyTRyIHcUMTeh zs6cxt4i41oM4iB@&6Rq?niq~YadzKH+kTAL`TC#F}z+rC5psb@mZbY|W{& zgqmif1?Bny{W~H}#N_wtl-ofaa^l3^&&&%64Me&`@724%8FkhO3a**`0P=zJMW_2z zC`>0D@11x1T7jy+=%jti1+kE?G-^=7rp7 z+3$MV`qc~lTE6KMC-b!Nk(N8Um;CbgiR?S7Rmp2dA@eJrg(!a#{?we>0JoVHS~3!7QN z^}|NFw%M*?ooZydVJ&4%RmD1vHt?psJ1$7N*y3q-UGr8hr^|%v{AHB}{K(zPYMuT2 z$~e5WqlMcev}t+oimdkTk-Iu$zv9`bo*u6DdpmVLZw#RuV#bxXPcVtq70h*m_U0Wg zKUZr#6}_2`=TkX^><_E&V}waq!q5U82$e&<%eveRpdl0|ffN(<-Td7)VW;}*RKY(w zsKeyK9XJdKe_QsZRq(RLq!==X%O<6c5{J}!ZKw#(_KS7f#%+JxR0TA2gzua&yOcYc~F1&)095YAZO*vB6n9J8a%vExfaUMPp7r7`9@UV4-c?j3qkiQdS)j zc(CqGaHIb^z&=NUu-8@{K<2Q~nH|4i4320RMG>}VG*4N3Yrir{Mj)4k*|J9tcbP0V zh7}mSH&q>RA$haHQ$Q=n5~mhi2gb>T9^ZtK@Ee;AA3;)WXGfbPA7-+Ug>eik$;@tn9Ni; z3k`lC%n!S#-|zr%m9-E^PXRLs-&?5qKODMALAvK#ZJ*k&sZWxjD_`|90q;H=0>W5) zJ4%Bctr-_iWO~FW1h_%jFC@@nh`q+dRIfRgQVCw)*rthuLcVEvoRt0++@4+9QDv2E z4GDMSrwga*`((f01a4xSR(Y6pO+)tvJ?$tZfOXfA+ zeZ4djXey7+`pvct{&4rfQxr!U;j!W4VVh+lwR;%mK3S|gR#Gm}Mxpw6aW8ennd$Dl z=^m(xLT(N9%>sb}fRHtu=iQ!lTY7i-KT1{gOC$K75eWB81GF!ojQ~d(=4W4~LC-YZ zi9q_#cl4U9U2(2JBr8DL6%a2bUR)-jsqM2TlP3?Uc%M5H;5$r|*gR_hD~z}vG@7sP z+G9Eahb>}wRcOFUm<_0Te5qAY@Dbk4P*RK&RkcqHv~50*{vMDm8=4gtRdPs@HH@AW zd&c1XOjBdNAw~ z6x2u_SU?_D?&NW<33-A*uEF7`SP|%jACsf7lSae(ttn0lLi4J_m+Axb$s-b-A{rRO ztmVS2Az|Udu3dQ%0ze$P7;OAm&?&hud4n@)UlgZ;!>w=_QJ)dz?K^6Ppx~WIoW!uf zis*9Hr~>P#MtLLt+emH&SCyS`cC6@S&FBlv03`)iQ8Q}=EcyR4!gK$3gm3(>2Y`tG zA0EIz7gI$`v-qC}kPWL4PN5F}z4On-tghsQyQ#z{b#01e4*zp8xvjlmzB(?h-~hjW zE~Za-RJ2@hkV_2G#ng&SN%u5S&C1CAM2$q2iu1mwl~(-9`2eY`)5e5)vdOAJq4ILkw6|8L>C?@~>@tu~RwLrXGjBOuk?CRU399UBw0gt&&9nVaH=gpU8 zuio73=5B2D?%XGph>cs$iMeCwd@lgj&&mpXPR@%=TXSSZdA-B_aZb(= z8R^fgfb?|G3<)DSq%xah`0|FJTv}VreWqK4PwwJAb8~EHd8!JMAKr-flaPLt`H+03 zuxC*?SxlI#e`qG~eVR-f9%Pa0z(Gi4`lyPoF;OxPuf*?-9r&>~U2A>5_orrU#;eic z#KocsUa|VdJ@m0wiTq%(+@Db?E?To=4G~V|pE}sUU)F#r&68F&TfIAxVJyNH+E^Rc zU8YcNj3ZWOk?Z_(InOsRFL4oZzJYJqH9oS``On3CAokfF!F!#qlKR1Ce>zuVd065- zDlcA*(~A#j{ntFJ1I6E$H^jXz4%P==WMz1`pPrw`JGG_%wtNII_egs_$Plb}{lNpT zc!C6HlDr>zcUEAjGCMDP$(M{XafpnOE~YM(cs&;VekH6j5}C!1!nNHj|% z*7l#$Lw!Hr{nKINJJ>w{hy_^zqQBe-%mCEN;rH^Q5p@sCIpDa(_s!p2&9nRV z1hH`HQFc9yS@O`eL^~K3%Wjnw^gHQz_D$Tphb-+Ouhqb5H%*oxP`rYxf>n?zQr@Eg zuqgH7Y}^;6iV*2A zUjnzQeL9@fXa2%+ba5xNiDq=A0ll3xlw&^NNoDew zgd*l|kuH4VSp?-Xoh%*%dfEp+NNei_kJVM($Z*$eE(}tN=;S?ol`=PA-i*ryPu+~d zBq|$6tPaG@OZs-s(VNecY=+N=>`^k?2q2l7URf|B^#8qZ0+DB z!zjy(?3bQieQl;hVQ$gubTWy3@4}*l@(r2(<{=cwv7^G=%r`l{Qz&Xw5#iM~FDZJM zDQcWWVKs2%@iq`Bf0%*}u|HJ)n*h^CuqR9*SnZtjVYRV>awoXP16_kT11~rRsuD0>0+hkV%YDRpcVc zM9;-~{^BmnuhAxpL?`m?toK;R-{_DBCTV#IMb!w5&pAv+WACyP)MDR#&V1s0JEn+9 z{3)?@GE?B?m~wXFr_`m%Pzg>pl4QV0Mv+PWTY*>35wBEptNaV+?Dy0>`$-GcKt*3t z3BFX%WgtBOY2C+H(DqkT4-vH`XCmz1(iPR?%KnsC(n-FMk5(m0ZK z$Z=mB{*LN8S^ti>0+u?gM=X}s#Wz*%_kPddW5;ygtNg0Cm-xo~I4MK6SAuDe=H_qM z=cXd+YVt)me@bK{PX&3kWwE&CSk+A+3o7W&IL?~mommrRw43FsxZosCB>!KEnq8vc*LfR|r zyY&*`P&e`QS~tliqxXYu2I`v?QeTCYH7Pf}26|~=ut&*nx@m*nQ#MFg(NX@%S(4CP)+`Ja_Nr5Z%!*{{)l|0^3oSAdg#EuB(dPp z&C#CsfWyo`1`)kiUR&a>X3noT|0m8Go|$U#GyB#5#te|phC)d9u;t&(fyABv=d)pe z^gqWpHah%Y#{od}4>QOBP!Ln)^MaC#Oa6m9BP&t0p>g#M(sj+Hsac53oVn(GKEOgc zzH}|%WF`tX-)CBWKmz)`1YsLQJJRuO{S=@e3ksv;7r@1k?ve6*xH1CuRpk!oQkzgG zDpWHMk$6kDYQI)XRj?rDdth)lpcMW9AaI}Sv)5BjRyA3B2&gE`O3PC02D~EK?bm(x zn_hjdujs4OhwM4zv5bShr2WYw4O{ery}V+noA%pYUAYh~6g?FzQ(v*#&W{G%T7?r# z#oR0ZB_3B#Uo=*r`n5FZ{B1;^_{|6Mh)nz4kMUy2j)UmNHZF?+E;OXE_Hcdz@>ycC z?tH(rz&Khtw5k5|Yon9QT+1C?aJD=g*>PATHT;zWwIVJHgIppz4lF^SO53aLg=!a* z!>pE@>k~Y@fT2gXlbzG^-^UhOV)o^Kb6EymivCDX0O@w}>D2ov$n5_lf27nBsw~M8RM#{iy$$9ZLAVy+Y0oMSG|O1R2F;1Q&Dr zWlcoYg*mmPzjjK|8SDMs-U2_k5mAtRtkmsHH` z+rj2vLqeF3I>X%ODPbdxD4ZALJ(~-N2|V&t{K*f*h>JhnycxAq)J}&2U0T0r08@tZ zq=;FQ-^f?F|KQH1**aGXMO`!q6hV^A>m|2qi|ZMC%%y}y$hC#=vL{Yiy%ubqr*mEQ z0#9TkklRw^ljA3z!zvv6rQ5B6FCMo$9J4f5<$)j$(cO~ohAyb#B};b)s4cWji#6N2 zt_x_0qkw}(Ozz=*Rbo2CY0tHaz)3qdij3=_%;@F$sO;#&p$)$t;tGQY`fxgDHv)J% zpJw!y#@T_dpy1-yJnOjK<<^#@_k4P60bH(2N->^fAA93%DoQ_nqx=2nOXq3R^a5qm zSo$sQ$$y>=ui=PlwhC`Nd%e3!OoSztwGVO1cXU+iHgsbi!es%#_?3E?sJB6r- z(~|_6c0O0D43aF-!#!u|WWD=}XKYXwQX6g&yK>Bzvr)O&YnW914q^rF4IsTATm z@z8v|in|{GK)+E0f|+J7Tf`O(_LH>=}Q&d7t4!&$d zpGwl1Yx?VTCa0H*JCWnQ`5~L9Y7|}SU-%+h&la(a`UZ6G&f*ccc|86KgFhIof`#M| z_~;lwbX5TAXeWRPM_-C=&nn4VIu9?lu*3MQKXKC*Ac*;Kh*_67c@Axrk8M`j)V0qDTvV@BqEO55sK-UM~;fW-?(0o))#fhZ3*C|}@>69s0 zCz9_j@~BdcizizudVxvRV_o$ zy;EYW=e;0hl}00O@wZR%y=8M%PQOCg8M+mv;Xn9FZHL%(2JX6=wl2$O&3|b;V$ZZE zjg(2PL-om&K&@)0WkE(91~kdNor;cC0q?&Va%*Y!>yB5Y9GV-iQhpoTJ0WO#RjN-@ zJU3NUSDWi@L9dB5|2vGdymsi9QFNSE$5C8OOYNbFGnMvg*qKQeUa?8I(!$1(RXNe(?$?h@dRU0Ud7hBX(u19@Dmzb z#dp2wpu?{WkXK$KO1|l2RjCZp7+fQ5y6NHxs|+zwUZp|V6B+GNCp0(aX9>$+<==a+@ogY~i$4X(=4BakM^%o0UL;m( z_L(?oJkwaNg!jSgONex9)3ALKYU)q@<+;fQUAcBlZ16Y8&yc5S{rBG zxon>gaR|S6+y97J>(M!^R5k6sWJCt*{=;SYRA)DS=nHLH@O^(>{UPPJ>Y`~~>+kiN zv}9b=v@5%)wb!td^q~(=Gb3R-M0rH#ynf213-$P#pFMFv*W+=+K=+)Dol)*E&Yhd| zICR!i=c*F!9`kF&NY0Dq1oyl9<};NeeBmb)lo^q|uCcpa4V_DFDUa!RE2=|&soPl- zi3UvW#}B{Wj0j!-U2pj9v7AhEucRThIXgmm+w*XiKiEv)Yvr^rh4T2p*z-FXM1;j- zh0GHJ>{(0?J@&Uf(ts9rd-h&KuP~w2s_t9<=1%!;B)!lSdT0Cur%8Dz*^U>9KNNcg zDmCrJ)GKQF*>E}Do1oX55A343h<2CP(R~*Uvng+z60z2;$KDbzb8R;o|>qr!<@s zY1(l8r!vDukWy4!g#J&stE#}KEs4M{$A>o~OJYIs?H%HX?v}KS{DJ(!o{^O5@d@CTmerFA58n>o0fHN0`?GkH=|w?6yl==vsX_5Su~YiBQ^a(|jLP3G5y zJ)w5Js&Bk3*oI<`b!4VgFPwyzow z7VkYN7Jx^r zipJtVkF=Y3Gk3f4@G4E-cwrF>Y9H7!cjb|1zs#K?GlWOs;5NDyl);*kp4--$G{WhK zDZO!Ca4o=&D@|g#1pN`GHt%c%Rz2z(2$r{J@Jy$}+@J3ettcVCsJh_nBsa$YzNcW` zW&6Cv$$S~;NxX-qW)UGZpW^T+yDQO7rrY{izSrR?&>;cs%uN2fDh{)zif!Ix_IKyM z3OB=siMR>#u1BYNtExDHrU)PXP+`zd(xYijKSqq50RPEaC%S-Fe6<~6Vq5iKHL&_k zzpuijkm9eCz8TO{=)tNm$XgP>3la0_T_VWyU6|Sk4uPIonxA469W&PFQj-v`529w9 zNuD+t!*T4NW3r<{c%1V>&4PN3mDrAMx7fA&3$vnhD=VlzI~B13V_efFS&}^)i3+6c zY{B46f1;TfWZ8mpJp0$XZ-^Xr^;gOC34Q^rJf_&=h53YDl)1^f!m4eh+?@)$8FBbg zd!dOEjOyQ~)Y13f#!|D(u<=W;lvD%ds5pTmqW8Hl`!{4IRTXFJEWfZ}#Q-2mj8+*C zFF*-Vi`A;u#%%1!&jIgsp?bx}9-_qAu!Rlf0s>?aN1n4>M8^V`1WHy?_c4ygthX40 z0)QSDA9Z!J!G>k#qAtDZs9l_lOfm$;cIpP zsxYc{^$@t9<6`uc;;)M_Q5@@waXFzw`!OZPMXO19DWq_>_|c+f_?uENQn+KBa;VV` zr$GvL6R#ZsMoy_n;f}k;asFEmQn*_ml&GDBAcZ?_m*l3aWfeE=$%tRN-YH^ zbUkMKd%Btbd+T<#_*imMi)#7rJ=|LF=@E4!{Rx?}IL5pG6-)`NlLb8Cd3#<>EdM1i zm7d^PF=YIefkw~^M8}7E6I~3V+W19dsEs0{Vk_STK^6FvCqCH7s94vVHz*0Co~)DU z*cztKF+Q`KPG;-jk`;9P9kXWMXFx}toR&51lMWjX4`SEq7 z+lLZ8l1SmM=+7TXG?>1VhWB=H`E3Mqff#SnOl4@VMng;tv+n1>J)(7lVKyXd)Q7$D zqHCuNrk@#a?!aL5zq|}y3kLL9&R{<#HTPf+Lq@VQFh`Y5uvN;2fcZ?dO5VW}IQ4)6 z4Xv+<_lKH)QuDj6H-!Kl8intf<^VP;6Ge(R-q;>ZBNnYhQcXv-xZ&bls*iyK+Jba3 zfc2O4$oJf@b1DgB%|^VQnFDET=dpum#%CF9U1liRNy48Hc&VEMX=cRE3o&^@&cI=! zIAs9WU><*Zpd6pEZEB0DiMRvl2g5Yt)JySA+|xd6ciQOmo{Md9BPRtd(#VWkWmAsj z*%3{y*N%8JThjFXSoSg}*(8rU^4yK0*gvpPNI=ifwV^LDY%g;CdDtSf34n!iE39A{ zsFHsFCz;;Q6oQbqDCFybsaGUk!31`lQ!|a+cJ(sX(qbK1 zdep*ZK!w-lzMc+UnRVitU*JpA@3QnNwzO}wBV!MK=odlFdUs_fSZW($d+Mqh=`zH=c;(1vVRlk33U6nL@B9ve(wUhYjqob9_Nz{N}!0cmhsY*9em+~aNN8+PT3iDcPi!zu5_p-qp_SkUKu7Zpxz%@;2q4#iBk z9W+&`PWmGb;58BMLJerc*izmWoxdG+2$M-p_uu@}O)&z+N4l2>#vGM5Bi<^nQ?Z7& zdB2m7+38m245e&KAoEZpeix`1Zn8k)6<~0k{n?%PxA#nHzg-lS?j5Pji z?nh(dfky)EDZI(qARsL0S)MunfzYCVth;a+a)f_kx4K(okNP%x%Q zO23C0{FDgJ`ZK;CCE~H_epvnevBqg=vBjYH1<5|vpSzJl75#Gm&p))tZo=OGf@V`d z7s1S8ayIqYlrxVj9(25PJM2sw}Aj)_uw^I_~K(GTaz`R|n^zu!b@H4sMsUMwU%y_vo)YpF7o zJ4A=w5)4T?8vI1t3l6;3+-W_h*^{X77-?J)S`wV#kmLya9q3}(ephGbv8VpReasH! zmgX!Sz1tHw-}H<%7&MH1*LFR#yrfC%CB;CLA;CAsgmxqEb#GLjFK?|Q(PHb|FC;?7 z!%S)oGI)bRIr_|n4CUTLET|py1SbRr(4w-6ptCY#nu4(Ep|_*ZXRKm`VAm!g#xwcn zFaDqQ?&qb+IDq3g6R|J!o0NHo@JDRYJSb#NTpbFB*(Em0MTm5%i5(UO8)3=A^m(=? zh)2AvK(ZnkJTPVbfKp>3SVD&|$sdOb0u`UREzq%pf#JZLXD{zRiZ@giujKN0{>RT3H#+TZ6+Ajf)&2w<)w|4QBm))oC!RfdU;>(GPN`pRQgJun+t~i zm`38FFmtp?RA)EEcg3-Er^KoGoyYpzQE@GDvNdA8u_|ub9c^EV+jFK{xdvBhuX0r$ z^2xD_%92Z3v|1khmG9*metxcf;H@z)xT~}t_gT3(r0AFYuDZ~KRx>;wTK3n?wuV$K z+~Jj;M9)ttSDt!;GxY}tMOnAF@FLRkDxf}2glGHJUvJcBbLwmB;h0A#cE?+z(WG7H;e7`NZyT*_PU&bv~>P>#2{)_eN?gGi^(cqwu5fpF-hB;YZ;| z;YZ;|;YZ;|;YZ;|;ooB~Z2ag'; diff --git a/src/games_dat.js b/src/games_dat.js index 30b13370f..d9beb7e54 100644 --- a/src/games_dat.js +++ b/src/games_dat.js @@ -348,7 +348,8 @@ var games_gallery = [ "thumb": "6ec59e0b3f1f306acdc1.gif", "title": "Pornography for Beginners", "author": "Holly", - "homepage": "https://hollygramazio.net" + "homepage": "https://hollygramazio.net", + "NSFW": true }, { "url": "https://www.puzzlescript.net/play.html?p=0590a6662f9e8e6afe4a", diff --git a/src/index.html b/src/index.html index d4b580fe0..58408583f 100644 --- a/src/index.html +++ b/src/index.html @@ -187,6 +187,10 @@

PuzzleScript!

if (item.homepage.startsWith("http")===false){ item.homepage="https://"+item.homepage } + if (item.NSFW==true) + { + continue; + } data.push(item); } data = shuffle(data); From c55da29b2c179822a4b110f842a350f3d0ff71dc Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Mon, 21 Feb 2022 22:02:54 +0100 Subject: [PATCH 011/122] downgrading 5x5 error to warning because it was flagging an existing popular game (holly's game) --- src/js/parser.js | 2 +- src/tests/resources/errormessage_testdata.js | 6 +++--- src/tests/resources/testdata.js | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/js/parser.js b/src/js/parser.js index 309e3eae6..e4a72f0e5 100644 --- a/src/js/parser.js +++ b/src/js/parser.js @@ -859,7 +859,7 @@ var codeMirrorFn = function() { spritematrix[spritematrix.length - 1] += ch; if (spritematrix[spritematrix.length-1].length>5){ - logError('Sprites must be 5 wide and 5 high.', state.lineNumber); + logWarning('Sprites must be 5 wide and 5 high.', state.lineNumber); stream.match(reg_notcommentstart, true); return null; } diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index c1bceecf7..95e706bef 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -10,7 +10,7 @@ var errormessage_testdata = [ ], [ "Sprites must be 5 wide and 5 high.", - ["title Bloygizpo\nauthor increpare\nhomepage www.puzzlescript.net\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\ngreen GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\nTarget_aktiviert\nyellow\n.....\n.000.\n.0.0.\n.000.1\n.....\n\nWall1\ndarkbrown darkbrown\n0.0.0\n.1.1.\n0.0.0\n.1.1.\n0.0.0\n\nWall2\ndarkbrown darkbrown\n.0.1.\n1.1.1\n.1.0.\n1.1.1\n.0.1.\n\nPlayer1\nBlack Orange White Blue\n..0..\n.1.1.\n2.2.2\n.3.3.\n.....\n\nPlayer2\nBlack Orange White Blue\n.0.0.\n..1..\n.2.2.\n..3..\n.3.3.\n\n\nCrate1\nOrange Yellow\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\n\nCrate2\nOrange Yellow\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nTuer1\nBlack brown\n..0..\n.1.1.\n0.1.0\n.1.1.\n0.0.0\n\nTuer2\nBlack brown\n.0.0.\n0.1.0\n.1.1.\n0.1.0\n.0.0.\n\nTuer_Offen\nyellow yellow\n.000.\n01110\n01110\n01110\n00000\n\n=======\nLEGEND\n=======\n\nPlayer = Player1 or player2\nCrate = Crate1 or Crate2\nWall = wall1 or wall2\ntuer = tuer1 or tuer2\n\n. = Background\n# = Wall1 and wall2\nP = Player1 and player2\n\n* = Crate1 and Crate2\n@ = Crate1 and crate2 and Target\nO = Target\n\nq = crate1\nw = crate2\n\nt = tuer1 and tuer2 and Tuer_Offen\n\ngewicht1 = player1 or Crate1 \ngewicht2 = player2 or Crate2\ngewicht = player or crate\n\n\n=======\nSOUNDS\n=======\n\nCrate1 MOVE 36772507\nCrate2 MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nTarget_aktiviert\ntuer_offen\nplayer1, crate1, wall1, tuer1\nplayer2, crate2, wall2, tuer2\n\n======\nRULES\n======\n\n[player tuer] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n#########\n#...t...#\n#.......#\n#.o...o.#\n#.......#\n#...q...#\n#.......#\n#...p...#\n#.......#\n#########\n\n(\n\nauszuprobieren\n\tteilweises Aufmachen\n 2 klötze\n)\n",["line 34 : Sprites must be 5 wide and 5 high.","line 29 : Sprite graphics must be 5 wide and 5 high exactly."],1] + ["title Bloygizpo\nauthor increpare\nhomepage www.puzzlescript.net\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\ngreen GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\nTarget_aktiviert\nyellow\n.....\n.000.\n.0.0.\n.000.1\n.....\n\nWall1\ndarkbrown darkbrown\n0.0.0\n.1.1.\n0.0.0\n.1.1.\n0.0.0\n\nWall2\ndarkbrown darkbrown\n.0.1.\n1.1.1\n.1.0.\n1.1.1\n.0.1.\n\nPlayer1\nBlack Orange White Blue\n..0..\n.1.1.\n2.2.2\n.3.3.\n.....\n\nPlayer2\nBlack Orange White Blue\n.0.0.\n..1..\n.2.2.\n..3..\n.3.3.\n\n\nCrate1\nOrange Yellow\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\n\nCrate2\nOrange Yellow\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nTuer1\nBlack brown\n..0..\n.1.1.\n0.1.0\n.1.1.\n0.0.0\n\nTuer2\nBlack brown\n.0.0.\n0.1.0\n.1.1.\n0.1.0\n.0.0.\n\nTuer_Offen\nyellow yellow\n.000.\n01110\n01110\n01110\n00000\n\n=======\nLEGEND\n=======\n\nPlayer = Player1 or player2\nCrate = Crate1 or Crate2\nWall = wall1 or wall2\ntuer = tuer1 or tuer2\n\n. = Background\n# = Wall1 and wall2\nP = Player1 and player2\n\n* = Crate1 and Crate2\n@ = Crate1 and crate2 and Target\nO = Target\n\nq = crate1\nw = crate2\n\nt = tuer1 and tuer2 and Tuer_Offen\n\ngewicht1 = player1 or Crate1 \ngewicht2 = player2 or Crate2\ngewicht = player or crate\n\n\n=======\nSOUNDS\n=======\n\nCrate1 MOVE 36772507\nCrate2 MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nTarget_aktiviert\ntuer_offen\nplayer1, crate1, wall1, tuer1\nplayer2, crate2, wall2, tuer2\n\n======\nRULES\n======\n\n[player tuer] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n#########\n#...t...#\n#.......#\n#.o...o.#\n#.......#\n#...q...#\n#.......#\n#...p...#\n#.......#\n#########\n\n(\n\nauszuprobieren\n\tteilweises Aufmachen\n 2 klötze\n)\n",["line 34 : Sprites must be 5 wide and 5 high.","line 29 : Sprite graphics must be 5 wide and 5 high exactly."],0] ], [ `No levels found`, @@ -420,8 +420,8 @@ var errormessage_testdata = [ ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\nbaba = player or Background\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\n\n======\nRULES\n======\n\nright [ vertical Player | vertical Player | | ] -> [ || vertical Player | vertical Player ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...pp..\n.......\n",["line 41 : This rule has an ambiguous movement on the right-hand side, \"vertical\", that can't be inferred from the left-hand side. (either for every ambiguous movement associated to an entity on the right there has to be a corresponding one on the left attached to the same entity, OR, if there's a single occurrence of a particular ambiguous movement on the left, all properties of the same movement attached to the same object on the right are assumed to be the same (or something like that))."],1] ], [ - `(NSFW Warning) pornography for beginners`, - ["title Pornography for Beginners\nauthor Holly\nhomepage hollygramazio.net\n\nyoutube K5Yd1iOAzBA\ntext_color lightgrey\nbackground_color darkgreen\n\n========\nOBJECTS\n========\n\nPlayer\nYellow brown Blue DarkBlue darkbrown\n00000\n04140\n12221\n.333.\n.1.1.\n\nTrappedPlayer\nYellow brown Blue DarkBlue darkbrown darkbrown\n00005\n55150\n12525\n.553.\n.1.5.\n\nTrappedPlayer2\nYellow brown Blue DarkBlue darkbrown darkbrown\n00005\n55150\n12525\n.553.\n.1.5.\n\n\nTrappedPlayer3\nYellow brown Blue DarkBlue darkbrown darkbrown\n00000\n55140\n12521\n.553.\n.1.5.\n\nTrappedPlayer4\nYellow brown Blue DarkBlue darkbrown darkbrown\n00000\n55140\n12521\n.553.\n.1.5.\n\nTrappedPlayer5\nYellow brown Blue DarkBlue darkbrown darkbrown\n00000\n55140\n12555\n.333.\n.1.1.\n\nTrappedPlayer6\nYellow brown Blue DarkBlue darkbrown darkbrown\n00000\n55140\n12555\n.333.\n.1.1.\n\n\nBurnedplayer \nblack brown darkgrey grey red\n00000\n04140\n12221\n.333.\n.1.1.\n\nBurnedplayer2 \nblack darkgrey grey lightgrey red\n00000\n04140\n12221\n.333.\n.1.1.\n\nBurnedplayer3 \ndarkgrey grey lightgrey white red\n00000\n04140\n12221\n.333.\n.1.1.\n\nBurnedplayer4 \ndarkgrey grey lightgrey white red\n0.0.0\n.4.4.\n1.2.1\n.3.3.\n.....\n\n\n(Backgrounds)\n\nBackground\n#118033 #117733 \n11011 \n11011\n00000\n11011\n11011\n\nFlowertrigger\n#118033 green\n00010\n00100\n10000\n00001\n01000\n\n\nFlowertrigger2\n#118033 green\n00010\n00100\n10000\n00001\n01000\n\nOutdoors\n#118033 green\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage1\n#118033 green\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage2\n#118033 green\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage3\n#118033 green\n00010\n00100\n10000\n00001\n01000\n\nScoring\ndarkgrey grey\n00100\n00100\n11111\n00100\n00100\n\nIntro\n#118033 #117733 \n11011 \n11011\n00000\n11011\n11011\n\nIntro2\n#118033 #117733 \n11011 \n11011\n00000\n11011\n11011\n\nIntro3\n#118033 #117733 \n11011 \n11011\n00000\n11011\n11011\n\nIntro4\n#118033 #117733 \n11011 \n11011\n00000\n11011\n11011\n\nTarget\ndarkgrey grey\n00100\n00100\n11111\n00100\n00100\n\nOutdoortarget\n#118033 green\n00010\n00100\n10000\n00001\n01000\n\n(Penises)\n\nPenis\nBROWN darkbrown orange lightbrown #997700 #AA6600 \n..0..\n..2..\n..2..\n00200\n00.00\n\nPenisa\nBROWN darkbrown orange lightbrown #997700 #AA6600 \n..0..\n..2..\n..2..\n00200\n00.00\n\nPenisb\nBROWN darkbrown orange lightbrown #997700 #AA6600 \n..1..\n..2..\n..2..\n00200\n00.00\n\nPenisc\nBROWN darkred orange lightbrown #997700 #AA6600 \n..1..\n..2..\n..2..\n00200\n00.00\n\nPenisd\nBROWN #663399 orange lightbrown #997700 #AA6600 \n..1..\n..2..\n..2..\n00200\n00.00\n\nPenise\nBROWN pink orange lightbrown #997700 #AA6600 \n..1..\n..2..\n..2..\n00200\n00.00\n\nPenis2\nBROWN darkbrown orange lightbrown #997700 #AA6600 \n..0..\n..2..\n..2..\n00200\n00.00\n\nPenis3\nBROWN darkbrown orange lightbrown #997700 #AA6600 \n..0..\n..2..\n..2..\n00200\n00.00\n\nPenis4\nBROWN darkbrown orange lightbrown #997700 #AA6600 \n..0..\n..2..\n..2..\n00200\n00.00\n\nPenis5\nBROWN darkbrown orange lightbrown #997700 #AA6600 \n..0..\n..2..\n..2..\n00200\n00.00\n\nPenis6\nBROWN darkbrown orange lightbrown #997700 #AA6600 \n..0..\n..2..\n..2..\n00200\n00.00\n\nPenis7\nBROWN darkbrown orange lightbrown #997700 #AA6600 \n..0..\n..2..\n..2..\n00200\n00.00\n\nPenis8\nBROWN darkbrown orange lightbrown #997700 #AA6600 \n..0..\n..2..\n..2..\n00200\n00.00\n\nPenis9\nBROWN darkbrown orange lightbrown #997700 #AA6600 \n..0..\n..2..\n..2..\n00200\n00.00\n\nPenis10\nBROWN darkbrown orange lightbrown #997700 #AA6600 \n..0..\n..2..\n..2..\n00200\n00.00\n\nBurnedPenis\nDarkred darkgrey darkgrey \n..0..\n..2..\n..2..\n00200\n00.00\n\nBurnedPenis2\nDarkred darkgrey black \n.....\n..1..\n..2..\n00200\n00.00\n\nBurnedPenis3\nDarkred darkgrey darkgrey \n.....\n.....\n..1..\n11211\n.1.1.\n\nBurnedPenis4\nDarkred darkgrey darkgrey \n.....\n.....\n..1..\n.121.\n.....\n\n(boobs)\n\nBoob\npink orange brown lightbrown\n.331.\n31111\n31012\n11112\n.122.\n\nBoob2\npink orange brown lightbrown\n.331.\n31111\n31012\n11112\n.122.\n\nPinkBoob\nred #FF6666 darkred orange\n.331.\n31111\n31012\n11112\n.122.\n\nPinkBoob2\nred #FF6666 darkred orange\n.331.\n31111\n31012\n11112\n.122.\n\nPinkBoob3\nred #FF6666 darkred orange\n.331.\n31111\n31012\n11112\n.122.\n\nPinkBoob4\nred #FF6666 darkred orange\n.331.\n31111\n31012\n11112\n.122.\n\nBoobularity\nwhite blue purple lightgrey \n.331.\n31111\n31012\n11112\n.122.\n\nBoobularity2\nlightblue blue darkblue lightgrey \n.331.\n31111\n31012\n11112\n.122.\n\nBoobularity3\nwhite blue purple lightgrey \n.331.\n31111\n31012\n11112\n.122.\n\n\n(tutorial bodyparts) \n\nTutevagina\nBROWN darkbrown\n00100\n01010\n01010\n01010\n00100\n\nTutebum\nOrange Brown Darkbrown Black Lightbrown\n40000\n40040\n40240\n00200\n01.10\n\nTuteface\nDarkBrown Orange Blue Red\n00000\n02120\n01110\n01310\n0.1.0\n\n\n(vaginas)\n\nVagina\nBROWN darkbrown\n00100\n01010\n01010\n01010\n00100\n\nVagina2\nBROWN darkred\n00100\n01010\n01010\n01010\n00100\n\nVagina3\nBROWN darkred pink\n00100\n01210\n01210\n01210\n00100\n\nVagina4\nBROWN red pink\n00100\n01210\n01210\n01210\n00100\n\nVagina5\nBROWN red pink\n00200\n02120\n02120\n02120\n00200\n\n(fluids)\nUrine\nYELLOW lightbrown white orange\n..2..\n.200.\n20001\n20011\n.113.\n\nTuteurine\nYELLOW lightbrown white orange\n..2..\n.200.\n20001\n20011\n.113.\n\nTuteMaleEjaculation\nBROWN white darkbrown yellow orange\n.1.1.\n..1..\n..2..\n..0..\n.202.\n\nMaleEjaculation\nBROWN white darkbrown yellow orange\n.1.1.\n..1..\n..2..\n..0..\n.202.\n\nTuteFemaleEjaculation\nBROWN darkbrown white yellow\n..1..\n.101.\n.101.\n..3..\n.2.2.\n\nFemaleEjaculation\nBROWN darkbrown white yellow\n..1..\n.101.\n.101.\n..3..\n.2.2.\n\n\n(Cockopalypse)\nKillercock\nBROWN white darkbrown yellow orange\n.1.1.\n..1..\n..2..\n..0..\n.202.\n\nKillercum1\nwhite\n..0..\n00..0\n.0.0.\n..00.\n0.0.0\n\nKillercum2\nwhite\n0.0.0\n00..0\n.0.00\n0.00.\n0.0.0\n\nKillercum3\nwhite\n0000.\n0.000\n00000\n000.0\n0.000\n\n(Hands)\n\nHand\nOrange Brown \n01010\n01010\n01010\n0000.\n.000.\n\nFist\nOrange Brown \n01010\n00000\n00000\n.000.\n.000.\n\n(Bums)\n\nBum\nOrange Brown Darkbrown Black Lightbrown\n40000\n40040\n40240\n00200\n01.10\n\nPinkBum\nOrange Brown Darkbrown Black Lightbrown #FF6666 #dd3333 \n05005\n56056\n56256\n05250\n01.10\n\nRedBum\nOrange Brown Darkbrown Black Lightbrown #FF6666 #dd3333 \n55556\n56556\n56256\n06261\n01.10\n\nBruisedBum\nOrange Brown Darkbrown Black #FF6666 #dd3333 #dd3377 \n44446\n46446\n56256\n66256\n01.10\n\nPinkBum2\nOrange Brown Darkbrown Black Lightbrown #FF6666 #dd3333 \n05005\n56056\n56256\n05250\n01.10\n\nRedBum2\nOrange Brown Darkbrown Black Lightbrown #FF6666 #dd3333 \n55556\n56556\n56256\n06261\n01.10\n\nBruisedBum2\nOrange Brown Darkbrown Black #FF6666 #dd3333 #dd3377 \n44446\n46446\n56256\n66256\n01.10\n\nDildo\nPink Red\n..1..\n..0..\n..0..\n.101.\n.....\n\nStrapon\nOrange Darkbrown Brown Red Pink \n22422\n22422\n33433\n22.22\n22.22\n\n(faces)\n\nFace\nDarkBrown Orange Blue Red\n00000\n02120\n01110\n01310\n0.1.0\n\nSlappedFace\nDarkBrown Orange Blue Red #FF6666 \n00000\n02120\n04140\n04340\n0.1.0\n\nSlappedFace2\nDarkBrown Orange Blue Red #FF6666 \n00000\n02120\n04140\n04340\n0.1.0\n\nSlappedFace3\nDarkBrown Orange Blue Red #FF6666 \n00000\n02120\n04140\n04340\n0.1.0\n\nSidefaceleft\nDarkBrown Orange Blue Red\n0000.\n0121.\n01111\n01113\n0.1..\n\nSidefaceright\nDarkBrown Orange Blue Red\n.0000\n.1210\n11110\n31110\n..1.0\n\nSidefaceup\nDarkBrown Orange Blue Red\n..13..\n0111\n02111\n0111.\n00000\n\nSidefaceup2\nDarkBrown Orange Blue Red\n..13..\n0111\n02111\n0111.\n00000\n\nSidefacedown\nDarkBrown Orange Blue Red\n00000\n0111.\n02111\n0111.\n..13.\n\n(scoring)\n\nHead\nLightbrown Orange Brown Darkbrown darkgrey\n40304\n00311\n00212\n00123\n33333\n\nShaft\nLightbrown Orange Brown\n00112\n00112\n00112\n00112\n00112\n\nLefthair\nOrange Brown Darkbrown Black darkgrey grey\n44542\n11221\n52135\n42143\n41223\n\nMidhair\nOrange Brown Darkbrown Black Lightbrown\n44001\n14031\n41332\n43021\n33122\n\nRighthair\nOrange Brown Darkbrown Black darkgrey grey\n42544\n24512\n55215\n31124\n13524\n\n(stuff)\n\nMess\ngrey brown red green blue\n01234\n34021\n23140\n12403\n40312\n\n\nSocket\nwhite black darkgrey\n00100\n00100\n00000\n11011\n00000\n\nWeeglass\n#22BB55 orange yellow lightbrown\n02220\n03330\n.010.\n..0..\n.000.\n\nCumglass\n#22BB55 white yellow lightbrown\n00000\n01120\n.020.\n..0..\n.000.\n\nWineglass\n#22BB55 darkred red \n00000\n02220\n.010.\n..0..\n.000.\n\nPhone\ndarkgrey grey blue\n0000.\n0220.\n0000.\n0101.\n1010.\n\nRope\ndarkbrown lightbrown\n10...\n.1010\n10.01\n10..1\n.1110\n\nRope2\ndarkbrown lightbrown\n10...\n.1.10\n101.1\n10..1\n.1110\n\nRopewarning\nblack \n.....\n.....\n.....\n.....\n.....\n\nRopewarning2\nblack\n.....\n.....\n.....\n.....\n.....\n\n(admin)\n\nPorn\nBlue Yellow\n00001\n00010\n00100\n10100\n01000\n\nPorn2\nblue Yellow\n00001\n00010\n00100\n10100\n01000\n\nPorn3\nLightgreen White\n00001\n00010\n00100\n10100\n01000\n\nPorn4\nLightgreen White\n.0.0.\n0.0.0\n.0.0.\n1.1.0\n01.00\n\nWall\ndarkgrey grey\n01110\n01110\n01110\n01110\n01110\n\nBadPorn\nWhite Red\n10001\n01010\n00100\n01010\n10001\n\nBadPorn2\nYellow Red \n10001\n01010\n00100\n01010\n10001\n\nBadPorn3\nBrown DarkRed \n10001\n01010\n00100\n01010\n10001\n\nBadPorn4\nBrown DarkRed \n1.0.1\n.1.1.\n0.1.0\n.1.1.\n1.0.1\n\n(architecture)\n\nDoor\nred grey\n00000\n00000\n00010\n00000\n00000\n\nHousewalltop\n#777777 #666666 #555555 red #dd3333\n33333\n44444\n01210\n01210\n01210\n\nHousewallbottom\n#777777 #666666 #555555 #FF6666 red\n01210\n01210\n01210\n01210\n01210\n\nFlowers\n#118033 green #dd3333 blue yellow lightbrown\n30035\n02103\n24200\n02001\n01003\n\nPath\nwhite lightgrey\n00001\n00000\n01000\n00010\n00000\n\nPathmessage1\nwhite lightgrey\n00001\n00000\n01000\n00010\n00000\n\nPathmessage2\nwhite lightgrey\n00001\n00000\n01000\n00010\n00000\n\nFakeOutdoors\n#118033 green\n00010\n00100\n10000\n00001\n01000\n\n=======\nLEGEND\n=======\n\n, = Outdoors \n! = Shaft\n. = Background\n[ = Intro\n] = Intro2\n- = intro3\n_ = intro4\n* = Player\n# = Wall\n+ = Head\n0 = Face\n1 = Lefthair\n2 = Midhair\n3 = Righthair\n4 = Fist\n5 = Hand\n6 = Strapon\n7 = Dildo\nA = Vagina\nB = Bum\ne = Scoring\nF = FemaleEjaculation\nI = Wineglass\nL = Rope\nM = MaleEjaculation\nO = Boob\nP = Penis\nQ = Target\nT = Socket\nU = Urine \nX = Porn\nY = Phone \nZ = Outdoortarget\n9 = tutebum\n& = tutevagina \n£ = tuteface\n$ = ropewarning\n\" = flowertrigger\n' = flowertrigger2\n% = tuteurine\n{ = tutemaleejaculation\n} = tutefemaleejaculation\n(outdoors)\nG = Door \nJ = Flowers\nR = Path\nK = Housewallbottom\nN = Housewalltop\nC = pathmessage1\nD = Pathmessage2\n8 = Outdoormessage1\nS = Outdoormessage2\nW = Outdoormessage3\n\ngap = background or outdoors or path or outdoormessage2 or outdoormessage1 or outdoormessage3\n\nboobularities = boobularity or boobularity2 or boobularity3\nboobs = boob or boob2 or pinkboob or pinkboob2 or pinkboob3 or pinkboob4 \n\ncockopalypse = killercock or killercum1 or killercum2 or killercum3\npinkbums = pinkbum or pinkbum2\nredbums = redbum or redbum2\nvaginas = vagina or vagina2 or vagina3 or vagina4 or vagina5\nbruisedbums = bruisedbum or bruisedbum2\nslappedfaces = slappedface or slappedface2 or slappedface3\nslappedbums = pinkbums or redbums or bruisedbums\nfaces = Face or Sidefaceleft or Sidefaceright or Sidefaceup or sidefacedown or slappedfaces or sidefaceup2\nbums = Bum or pinkbums or redbums or bruisedbums\ncocks = penis or penis2 or penis3 or penis4 or penis5 or penis6 or penis7 or penis8 or penis9 or penis10 or penisa or penisb or penisc or penisd or penise\nropes = rope or rope2\n\nResults = porn or badporn or porn2 or badporn2 or porn2 or badporn2 or porn3 or badporn3 or porn4 or badporn4\nStuff = dildo or strapon or wineglass or phone or socket or weeglass or cumglass or ropes or mess\nArchitecture = wall or door \nFluids = urine or maleejaculation or femaleejaculation or weeglass or cumglass or tutefemaleejaculation or tutemaleejaculation or tuteurine\nscoretrack = scoring or head or shaft or lefthair or midhair or righthair or target or outdoortarget\n\nBody = Cocks or Hand or Bums or Boobs or Faces or Fist or Vaginas or BurnedPenis or burnedpenis2 or burnedpenis3 or burnedpenis4 or burnedplayer or burnedplayer2 or burnedplayer3 or burnedplayer4 or tutebum or tutevagina or tuteface \n\ntrappedplayers = trappedplayer or trappedplayer2 or trappedplayer3 or trappedplayer4 or trappedplayer5 or trappedplayer6\n\nStudio = flowers or housewalltop or housewallbottom \nPaths = path or pathmessage1 or pathmessage2 \n\nEverything = fluids or stuff or architecture or studio or paths or body or results or outdoors or scoretrack or player \n\n=======\nSOUNDS\n=======\n\nCocks move 81432307\nVaginas move 30911708\nBums move 76441308\nBoobs move 59578908\nHand move 83753708\nFist move 88751108\nFaces move 46152509\nBody move 53209307\n\nTrappedplayers move 62896704\n\nplayer cantmove 77916504\nporn create 97214303\nbadporn create 11123702\n\nMaleEjaculation move 51210708\nFemaleEjaculation move 30863108\nUrine move 80548907\n\nstuff move 34367907\n\nEndlevel 48242503\nEndgame 9005308\nclosemessage 71913507\nstartlevel 13337700\n\n================\nCOLLISIONLAYERS\n================\nBackground, \nOutdoors, Intro, Intro2, intro3, intro4, outdoormessage1, outdoormessage2, outdoormessage3 \nPaths\nPlayer, Body, Fluids, Results, stuff, architecture, studio, trappedplayers, \nScoretrack\nboobularities, burnedplayer, cockopalypse, fakeoutdoors, ropewarning, ropewarning2, flowertrigger, flowertrigger2\n======\nRULES\n======\n\n(everything that moves)\n[ > Player | Body ] -> [ > Player | > Body ]\n[ > Player | Fluids ] -> [ > Player | > Fluids ]\n[ > Player | Stuff ] -> [ > Player | > Stuff ]\n\n(disasters )\n[ boobularities ] -> [ randomdir boobularities ]\n[ everything | ... | boobularities ] -> [ > everything | ... | boobularities ]\n\n[ > everything | boobularity ] -> [ background | boobularity2 ] Message Watch out! The boobularity is sucking everything in with its mighty gravitational pull! \n[ > everything | boobularity2 ] -> [ | boobularity3 ]\n[ > everything | boobularity3 ] -> [ > everything | boobularity2 ]\n\n(facesitting)\n[ > vaginas | faces ] -> [ background | badporn ] Message oh my god you could SUFFOCATE someone like that! \n[ > bums | faces ] -> [ | badporn ] Message that's really not safe, what if someone died from having a bum on their face :( :( :(\n\n(one-offs)\n[ > boobs | wineglass ] -> [ boobs | wineglass ] Message you're going to get wine EVERYWHERE if you're not careful\n[ > wineglass | boob ] -> message I know what you read about Marie Antoinette or whoever but that's not gonna work, friend\n\n[ > fist | hand ] -> [ | badporn ] Message That seemed threatening to me! No threats - remember to remain fully compliant with all relevant laws!\n[ > hand | fist ] -> [ hand | fist ] Message Paper wraps stone...\n\n\n(penis level) \n\n[ > penis | tutebum ] -> [ | porn ] Message A bum! Excellent choice.\n[ > penis | tutevagina ] -> [ | porn ] Message Penis in vagina? Classic!\n[ > penis | tuteface ] -> [ | porn ] Message Great work! Remember what they say: a penis's PLACE? Why not try a FACE!\n\n\n(scoring)\n\n[ Porn4 ] -> [ ]\n[ Porn3 ] -> [ Porn4 ]\n[ Porn2 ] -> [ Porn3 ]\n\n[ Badporn4 ] -> [ ]\n[ Badporn3 ] -> [ Badporn4 ]\n[ Badporn2 ] -> [ Badporn3 ]\n\n[ Porn ] [ Shaft | Head | Scoring ] -> [ Porn2 ] [ Shaft | Shaft | Head ]\n[ Porn ] [ Shaft | Head | Target ] -> [ Porn2 ] [ Shaft | Shaft | Head ]\n[ Badporn ] [ Shaft | Shaft | Head ] -> [Badporn2] [ Shaft | Head | Scoring ]\n\n(dead things crumble to dust)\n[ burnedpenis4 ] -> [ ]\n[ burnedpenis3 ] -> [ burnedpenis4 ]\n[ burnedpenis2 ] -> [ burnedpenis3 ]\n[ burnedpenis ] -> [ burnedpenis2 ]\n\n[ burnedplayer4 ] -> [ ]\n[ burnedplayer3 ] -> [ burnedplayer4 ]\n[ burnedplayer2 ] -> [ burnedplayer3 ]\n[ burnedplayer ] -> [ burnedplayer2 ]\n\n\n( special breast instructions for level 2 )\n\nright [ > maleejaculation | boobs ] -> [ background | porn ] Message Great, cum all over those tits!\nleft [ > maleejaculation | boobs ] -> [ background | porn ] Message Quality ejaculation there buddy!\nup [ > maleejaculation | boobs ] -> [ background | porn ] Message Perfect! \ndown [ > maleejaculation | boobs ] -> [ background | porn ] Message That's it, spurt it out like a champion! All over those nice big breasts.\n\nright [ > boobs | maleejaculation ] -> [ background | porn ] Message Dipping the breasts in the cum? Sure!\nleft [ > boobs | maleejaculation ] -> [ background | porn ] Message That works!\nup [ > boobs | maleejaculation ] -> [ background | porn ] Message Putting ANYTHING in front of an ejaculating penis is sexy, we looked it up.\ndown [ > boobs | maleejaculation ] -> [ background | porn ] Message Looks good - mash those breasts right into that ejaculating penis!\n\nright [ > boobs | femaleejaculation ] -> [ background | badporn ] \nleft [ > boobs | femaleejaculation ] -> [ background | badporn ]\nup [ > boobs | femaleejaculation ] -> [ background | badporn ]\ndown [ > boobs | femaleejaculation ] -> [ background | badporn ]\n\nright [ > femaleejaculation | boobs ] -> [ background | badporn ] Message Noooo, female ejaculation is the WRONG ejaculation!\nleft [ > femaleejaculation | boobs ] -> [ background | badporn ] Message Watch out, don't get girlcum on you!\nup [ > femaleejaculation | boobs ] -> [ background | badporn ] message Sorry to be the bearer of bad news, but women's ejaculate is kinda icky :/\ndown [ > femaleejaculation | boobs ] -> [ background | badporn ] message Here's how to remember the rules on ejaculation. If it's from a COCK, it ROCKS! If it's from a VAGINA, decline 'er.\n\nright [ > urine | boobs ] -> [ background | badporn ] message do not WEE on a BOOB\nleft [ > urine | boobs ] -> [ background | badporn ] message Here's a mnemonic device for you: it's okay to KISS, it's forbidden to PISS.\nup [ > urine | boobs ] -> [ background | badporn ] message REMEMBER: urine is neither sexy nor permitted \ndown [ > urine | boobs ] -> [ background | badporn ] message Remember the three Ps: don't PISS on a PERSON in PORN!\n\nright [ > boobs | urine ] -> [ background | badporn ] Message Oooh, watch out, you don't want to get wee on you!\nleft [ > boobs | urine ] -> [ background | badporn ] message No watersports, ladies!\nup [ > boobs | urine ] -> [ background | badporn ] message Here's a handy mnemonic: One, Two, Three! Never get in wee!\ndown [ > boobs | urine ] -> [ background | badporn ] message I know you didn't MEAN to get your boob in that urine, but do be more careful\n\n\n(objects)\n\n[ > phone | urine ] -> [ > phone | urine ] Message Don't photograph urine! Remember: if it's DICK, take a PIC. If it's PISS, give it a MISS.\n\n\n[ > phone | femaleejaculation ] -> [ | porn ] Message You know, female ejaculation is a risky business, but if you're taking the picture from a safe distance, then why not!\n\n[ > phone | maleejaculation ] -> [ | porn ] Message Super-sexy picture you got there!\n[ > phone | boobs ] -> [ | porn ] Message Nice pic!\n\n[ > phone | cocks ] -> [ phone | cocks ] Message Nice, but could you get a picture that shows it mid-orgasm?\n\n[> Dildo | Wineglass ] -> [ Dildo | Wineglass ] Message A stylish substitute for a COCKtail umbrella! (See, because \"cock\" and \"cocktail\"...)\n[> Strapon | Wineglass ] -> [ Strapon | Wineglass ] Message That doesn't seem like fun.\n\n[> wineglass | socket ] -> [ | socket ] MESSAGE SHIT, did you... what did you do that for? Don't pour liquids in the POWER SOCKET oh my GOD\n[> weeglass | socket ] -> [ | socket ] MESSAGE SHIT, did you... what did you do that for? Don't pour liquids in the POWER SOCKET oh my GOD\n[> cumglass | socket ] -> [ | socket ] MESSAGE Did that make you happy? I sure hope so, because you're never doing it again.\n\n[ > fluids | phone ] -> [ | phone ] MESSAGE Well that phone isn't going to work again...\n[ > phone | wineglass ] -> [ | wineglass ] Message Stop breaking the props, that was a new phone!\n\n[> Cocks | Socket ] -> [ BurnedPenis | Socket ] Message ...I can't believe I have to tell you not to put your penis in an electrical socket. You can press R to restart the level...\n[> Cocks | Phone ] -> [ Cocks | Phone ] Message Nice try, but that's a phone! You can't put your penis there.\n[ > Cocks | Wineglass ] -> [ Cocks | Wineglass ] Message Sorry, champ. A wine glass is no place for a penis.\n\n[> player | hand | socket ] -> [ | burnedplayer | socket ] message You shouldn't have done that.\n[> player | fist | socket ] -> [ player | fist | socket ] message STOP! You're lucky your fist didn't fit!\n[> Body | Socket ] -> [ Background | Badporn ] Message STOP putting BODY PARTS in MAINS ELECTRICITY\n[> Socket | Body ] -> [ Background | Badporn ] Message I don't know how to explain this. There is no sexy use for MAINS ELECTRICITY on your BODY.\n\n[ > player | fluids | socket ] -> [ | burnedplayer | socket ] message ...oops...\n\n[> Phone | Vaginas ] -> [ Background | Vaginas ] Message Well, I hope it's set to \"vibrate\".\n[> Phone | Bums ] -> [ Background | Badporn ] Message Stop it. You could lose your nice new phone up there for ever.\n\n[ > weeglass | face ] -> [ | badporn ] Message Putting your piss in a wine glass doesn't make it classy OR porn-suitable, mate.\n[ > weeglass | body ] -> [ | badporn ] Message Stop it! What have I told you about wee?\n\n[ > cumglass | face ] -> [ | porn ] Message That's elaborate, but I've looked it up in the rules and it's definitely hot.\n[ > face | cumglass ] -> [ | porn ] Message There you go, drink it all up. It's probably delicious!\n[ > cumglass | vagina ] -> [ | vagina ] Message I hope that's a shatterproof glass, or this is a no-go!\n[ > cumglass | bum ] -> [ | badporn ] Message I don't mean to be a killjoy but that just seems really dangerous, guys.\n\n[ > wineglass | faces ] -> [ | faces ] Message Delicious!\n[ > faces | wineglass ] -> [ faces | ] Message Full-bodied with overtones of raspberry.\n\nup down [ > phone | stuff ] -> [ phone | stuff ] Message Are you Instagramming that?\nleft right [ > phone | stuff ] -> [ phone | stuff ] Message For a pornographer, your taste in things to photograph is pretty dull.\n\n\n\n[ > phone | face ] -> [ phone | face ] message Now you've got a picture to remember this day by for ever.\n[ > bums | phone ] -> [ bums | phone ] message Hello, who is that? Mum? Wait, no, I didn't call... oh sorry, butt dial.\n[ > face | phone ] -> [ face | phone ] message A telephone is not delicious.\n\n[ > dildo | socket ] -> [ dildo | socket ] Message You're lucky that dildo's made of rubber!\n\n\n[ > stuff | wineglass ] -> [ | wineglass ]\n[ > stuff | weeglass ] -> [ | weeglass ]\n[ > stuff | cumglass ] -> [ | cumglass ]\n\n\n( rope )\n\n[ trappedplayer6 ] -> [ player ] Message And you've RUINED the ropes as well. Let that be a lesson to you.\n[ trappedplayer5 ] -> [ trappedplayer6 ]\n[ trappedplayer4 ] -> [ trappedplayer5 ]\n[ trappedplayer3 ] -> [ trappedplayer4 ] \n[ trappedplayer2 ] -> [ trappedplayer3 ]\n[ trappedplayer ] -> [ trappedplayer2 ] Message Anyone would think you WANTED to be trapped.\n[ > player | ropes ] -> [ | < trappedplayer ] Message Oh come ON, we WARNED you about this.\n\n[ ropewarning ] [ ropewarning2 ] -> [ ropewarning2 ] [ ropewarning2 ]\n[ > player | ropewarning ] -> [ > player | ropewarning2 ] Message Watch out for that rope! It's very dangerous.\n\nup [ > stuff | ropes ] -> [ | mess ] Message Well you're never getting THAT tangle undone.\ndown [ > stuff | ropes ] -> [ | mess ] Message You've made a right mess of that.\nup [ > stuff | ropes ] -> [ | mess ] Message Tangling inanimate objects up in rope is not sexy! Stop doing it!\nup [ > stuff | ropes ] -> [ | mess ] Message Well you've ruined both of them. I hope you're happy.\n\n[ > boobs | ropes ] -> [ | porn ] Message Nice! See, you CAN use ropes responsibly. You just have to be very careful.\n[ > penis | ropes ] -> [ | porn ] Message Hrrrrrm. Sure.\n[ > vaginas | ropes ] -> [ | porn ] Message We'll let you have that one, but be careful with this tying-up business...\n[ > bums | ropes ] -> [ | porn ] Message ...you're tying up a bum. Well, points for ingenuity at least.\n[ > hand | ropes ] -> [ | badporn ] Message Watch out there! You can't tie up people's HANDS, it might look like they can't get out!\n[ > fist | ropes ] -> [ | badporn ] Message No, don't tie up people's hands! Especially fists, it looks so aggressive :(\n\n\n(basic sex acts)\n\nup down [ > Cocks | Vaginas ] -> [ | Porn ] Message Great sexing!\nleft right [ > Cocks | Vaginas ] -> [ | Porn ] Message Great sexing!\n\nup [ > Cocks | Faces ] -> [ | Porn ] Message Well done - shove it in that mouth!\nleft [ > Cocks | Faces ] -> [ | Porn ] Message Classic sex, classic porn.\ndown [ > Cocks | Faces ] -> [ | Porn ] Message Nothing fancy, but it's a good 'un. <3 \nright [ > Cocks | Faces ] -> [ | Porn ] Message You're doing so well!\n\nleft [ > Vagina | Cocks ] -> [ | Porn ] Message Nice!\nright [ > Vagina | Cocks ] -> [ | Porn ] \nup [ > Vagina | Cocks ] -> [ | Porn ] Message You're really getting the hang of this.\ndown [ > Vagina | Cocks ] -> [ | Porn ] \n[ > Cocks | Vaginas ] -> [ | Porn ] Message This qualifies as one of the best sex acts! You should be very proud of yourself.\nright [ > vagina | vagina ] -> [ vagina2 | vagina2 ] Message Ahhhh that's lovely :)\nleft up down [ > vagina | vagina ] -> [ vagina2 | vagina2 ]\ndown [ > vagina2 | vagina2 ] -> [ | Porn ] Message Some good old-fashioned sex, there. Delightful.\nleft up right [ > vagina2 | vagina2 ] -> [ | porn ]\n\n(dildos) \n[ > vagina3 | dildo ] -> [ background | porn ] \n[ > vaginas | dildo ] -> [ vagina3 | dildo ] Message In and out...\n\n[ > dildo | vaginas ] -> [ background | strapon ] Message Stylish strapon you've got there!\n\n\n[ > dildo | face ] -> [ dildo | face ] Message I'm not sure about that. Might be less weird if someone was wearing the dildo.\n[ > strapon | face ] -> [ | porn ] Message Nice! \n\n(strapons) \n[ > strapon | vaginas ] -> [ background | porn ] Message Complicated but sexy!\n[ > strapon | bums ] -> [ background | porn ] Message Firm and gentle does it.\n[ > strapon | boobs ] -> [ strapon | boobs ] Message I don't understand why you'd do that, but whatever.\n[ > strapon | faces ] -> [ background | porn ] \n\n[ > vaginas | strapon ] -> [ background | porn ] \n[ > bums | strapon ] -> [ background | porn ]\n[ > body | strapon ] -> [ body | strapon ]\n[ > faces | strapon ] -> [ faces | strapon ] Message Sure, lick it! Not sure it's ever going to qualify as full-on points-winning porn, though. \n\nup down [ > dildo | bums ] -> [ background | porn ] Message Great prop use, buddy! Dildo points for you!\nleft right [ > dildo | bums ] -> [ background | porn ] Message An accomplished wielder of the dildo. Awesome!\n\n[ > stuff | stuff | stuff | stuff ] -> [ stuff| stuff | stuff | stuff ] Message Well I guess now you can open a junk shop if the porn doesn't work out...\n\n\n(the hand's jobs)\n\n[ > Hand | Vagina ] -> [ Hand | Vagina2 ] Message Nice start! Keep going...\n[ > Hand | Vagina2 ] -> [ Hand | Vagina3 ] \n[ > Hand | Vagina3 ] -> [ Hand | Vagina4 ] \n[ > Hand | Vagina4 ] -> [ Hand | Vagina5 ]\nup [ > Hand | Vagina5 ] -> [ Background | Porn ] Message That was easy!\ndown [ > Hand | Vagina5 ] -> [ Background | Porn ] Message You're so good at this!\nleft [ > Hand | Vagina5 ] -> [ Background | Porn ] Message Orgasms for all! This is going to be the best porn ever.\nright [ > Hand | Vagina5 ] -> [ Background | Porn ] Message Lovely! A++\n\n[ > Hand | Hand ] -> [ Hand | Hand ] Message You DO deserve a round of applause, you're quite right!\nleft down [ > Fist | Fist ] -> [ Fist | Fist ] Message Fist-bumps for all!\nup right [ > Fist | Fist ] -> [ Fist | Fist ]\n\n(vaginas)\n\n[ > Vaginas | Bum ] -> [ Vaginas | Bum ] Message Is... is pushing a vagina into a bum sex? \n[ > Vaginas | Boob ] -> [ Vaginas | Boob ] Message What even is that, are you trying to trap a nipple with your vagina?\n\n(piss)\n\n[ > Urine | Cocks ] -> [ Background | Badporn ] Message Don't WEE on someone's PENIS. Ewwww.\n[ > Urine | Vaginas ] -> [ Background | Badporn ] Message Nope, nope, keep the urine AWAY from the vagina.\n[ > Urine | MaleEjaculation ] -> [ Background | Badporn ] \n[ > Urine | FemaleEjaculation ] -> [ Background | Urine ] Message Sure, pool your disgusting fluids!\n[ > Urine | Face ] -> [ Background | Badporn ] Message Do not WEE on a person's FACE. What is WRONG with you.\n[ > Urine | Hand ] -> [ Background | Badporn ] Message NOPE. And I hope you're going to wash that hand.\n[ > Urine | Fist ] -> [ Background | Badporn ] Message Stop that RIGHT NOW. Don't piss on body parts. How is that not clear?\n[ > Urine | Bums ] -> [ Background | Badporn ]\n\n[ > Urine | Urine ] -> [ | Urine ] \n\n[ > Urine | Body ] -> [ Background | Badporn ]\n[ > FemaleEjaculation | Body ] -> [ Background | Badporn ]\n\n[ > FemaleEjaculation | MaleEjaculation ] -> [ | Badporn ] Message Careful! Don't get those womanly juices anywhere important!\n[ > MaleEjaculation | FemaleEjaculation ] -> [ | Porn ] Message SeXXXy!\n\n[ > Cocks | Urine ] -> [ Background | Badporn ] Message ...did you just did your cock in a urinal? \n[ > Vaginas | Urine ] -> [ Background | Badporn ] Message Look, dipping your vulva in a vat of urine is an absurd logistical challenge and also not allowed, so stop it.\n[ > MaleEjaculation | Urine ] -> [ Background | Urine ] Message This is technically permitted but coming into a puddle of wee is pretty weird, mate. We'll be keeping an eye on you.\n[ > FemaleEjaculation | Urine ] -> [ Background | Urine ] Message Female ejaculate is basically just urine anyway, right? So, sure! No harm, no foul!\n[ > Face | Urine ] -> [ Background | Badporn ] Message NO. THIS IS NOT AN APPLE-BOBBING CONVENTION.\n[ > Hand | Urine ] -> [ Background | Badporn ] Message Are you a doctor? Is this medically necessary? No? Then wash your hands and step away from the piss.\n[ > Fist | Urine ] -> [ Background | Badporn ] Message Don't punch the vat of urine, it's gross and you'll get it everywhere.\n[ > Bum | Urine ] -> [ Background | Badporn ] \n\n(complicated things with glasses) \n\n[ > urine | wineglass ] -> [ | weeglass ]\n[ > femaleejaculation | wineglass ] -> [ | weeglass ]\n[ > maleejaculation | wineglass ] -> [ | cumglass ]\n\n[ > urine | cumglass ] -> [ | weeglass ]\n[ > femaleejaculation | cumglass ] -> [ | weeglass ]\n\n[ > maleejaculation | weeglass ] -> [ | cumglass ]\n\n\n(boobs)\n\n[ > Boobs | Cocks ] -> [ Boobs | Cocks ] Message Sure, mash your breast into that penis!\n\n[ > Boobs | Vaginas ] -> [ Boobs | Vagina ] Message This is confusing but sexy. Go for it!\n[ > Boobs | MaleEjaculation ] -> [ Boob | MaleEjaculation ] Message Go on, rub it around everywhere. We looked it up and basically anything to do with cum is permitted AND sexy.\n[ > Boobs | Face ] -> [ Boobs | Face ] Message Ahhh, lovely.\n[ > Boobs | Hand ] -> [ Boobs | Hand ] Message Not bad!\n[ > Boobs | Bum ] -> [ Boobs | Bum ] Message This is... probably fun!\n\n[ > Vaginas | Boobs ] -> [ Vaginas | Boob ]\n[ > MaleEjaculation | Boobs ] -> [ Background | Porn ] Message So much cum! A terrible mess, but pretty sexy.\n[ > MaleEjaculation | Face ] -> [ Background | Porn ] Message Just look at that cum, it's everywhere! Glorious. \n\n[ > Face | Boobs ] -> [ Face | Boobs ] Message BURY YOUR HEAD. NUZZLE! NUZZLE! \n[ > Boobs | Face | Boobs ] -> [ Boobs | Face | Boobs ] Message So soft and comforting...\n\n[ > Fist | Boobs ] -> [ Background | Badporn ]\n[ > Bum | Boobs ] -> [ Bum | Boobs ] Message I don't even know what you're doing.\n\n[ Boobs | Boobs | BoobS | Boobs | Boobs | Boobs | Boobs ] -> [ Background | Background | Background | Boobularity | Background | Background | Background ] Message ...oops. I guess the boob density got too great and we had a boob gravitational collapse...\n[ > Boobs | Boobs | Boobs | Boobs | Boobs | Boobs ] -> [ Boobs | Boobs | Boobs | Boobs | Boobs | Boobs ] Message We're approaching boob singularity!\n[ > Boobs | Boobs | Boobs | Boobs | Boobs ] -> [ Boobs | Boobs | Boobs | Boobs | Boobs ] Message YES, this is GREAT. MORE! MORE!\n[ > Boobs | Boobs | Boobs | Boobs ] -> [ Boobs | Boobs | Boobs | Boobs ] Message DON'T STOP BOOBING\n[ > Boobs | Boobs | Boobs ] -> [ Boobs | Boobs | Boobs ] Message Boobs for everyone!\n[ > Boobs | Boobs ] -> [ Boobs | Boobs ] Message One boob, two boobs! The more the merrier! Line 'em up!\n\n(kissing)\nright [ > Faces | Faces ] -> [ Sidefaceleft | Sidefaceright ] Message How romantic! \nleft [ > Faces | Faces ] -> [ Sidefaceright | Sidefaceleft ] Message This is CLASSY porn, y'know, with kissing and all.\nup [ > Faces | Faces ] -> [ Sidefaceup | Sidefacedown ] Message SPIDERMAN KISS\ndown [ > Faces | Faces ] -> [ Sidefacedown | Sidefaceup ] Message \n\n[ > Bums | Outdoors ] -> [ Background | Badporn ] Message Not in public! Have a little consideration!\n\nup down [ > Cocks | Bums ] -> [ Background | Porn ] Message Anal is a top three sex! WELL DONE.\nleft [ > Cocks | Bums ] -> [ Background | Porn ] Message Going for the bum again, I see!\nright [ > Cocks | Bums ] -> [ Background | Porn ] Message Ah, anal sex, the pizza of pornography.\n[ > Bums | Cocks ] -> [ Background | Porn ] Message Both sexy and admirably gentle.\n\n\n[ > Hand | Outdoors ] -> [ > Hand | > Outdoors ]\n[ > Vaginas | Outdoors ] -> [ Background | Badporn ]\n[ > Cocks | Outdoors ] -> [ Background | Badporn ]\n[ > MaleEjaculation | Outdoors ] -> [ Background | Badporn ]\n[ > FemaleEjaculation | Outdoors ] -> [ Background | Badporn ]\n[ > Urine | Outdoors ] -> [ | Outdoors ] Message Hmmm, can't say I approve but I guess it'll seep into the ground.\n\n[ > Vaginas | Path ] -> [ Background | Badporn ] Message Don't film in public! What's wrong with you?\n[ > Cocks | Path ] -> [ Background | Badporn ] Message Come on, at least get dressed first.\n[ > MaleEjaculation | Path ] -> [ Background | Badporn ] Message NOPE. Not outdoors.\n[ > FemaleEjaculation | Path ] -> [ Background | Badporn ] Message Female ejaculation is dodgy at the best of times, let along outside where everyone can see! Have some self-respect.\n[ > Urine | Path | Path | Path ] -> [ > Urine | Path | Path | Path ] Message People walk there! Don't be disgusting. \n\n\n[ > Outdoors | Faces | Faces ] -> [ Outdoors | Faces | Faces ] Message Making out in public! Nice! As long as it doesn't turn into anything saucier...\n\n\n(smacks and slaps)\nup down [ > Hand | Bum ] -> [ Hand | Pinkbum ] Message Again! Again! More spanking!\nleft right [ > Hand | Bum ] -> [ Hand | Pinkbum ] Message More! Keep going!\n[ > Hand | Pinkbums ] -> [Hand | Redbum ] Message This is so acceptably sexy! More! Harder!\n[ > Hand | Redbums ] -> [Hand | Bruisedbum ] Message Hmmm, steady on there...\n[ > Hand | Bruisedbums ] -> [Background | Badporn ] Message No, that is TOO MUCH SPANKING :(\n\n[> Hand | SlappedFaces ] -> [ Background | Badporn ] Message NO HITTING.\n[ > Hand | Faces ] -> [ Hand | SlappedFace ] Message ...careful, there.\n\n[> Faces | Hand ] -> [ Face | Hand ] Message I guess you're... nuzzling that hand? Sure. Cute.\n\n[ > Hand | Boob ] -> [ Hand | Boob2 ] Message This is FINE. You're just squeezing, right? No slapping, remember.\n[ > Hand | Boob2 ] -> [ Hand | Pinkboob4 ] Message NO SLAPPING.\n[ > Hand | Pinkboob ] -> [ Background | Badporn ] Message NO.\n[ > Hand | Pinkboob2 ] -> [ Background | Badporn ] Message NO.\n[ > Hand | Pinkboob3 ] -> [ Background | Badporn ] Message NO.\n[ > Hand | Pinkboob4 ] -> [ Background | Badporn ] Message NO.\n\n(fisting and punching)\n\n[> Fist | Faces ] -> [ Background | Badporn ] Message we have TALKED about this, you may only hit people in UNSEXY CONTEXTS\n[ > Fist | Vaginas ] -> [ Background | Badporn ] Message NO FISTING PAST THE FINAL KNUCKLE.\n[ > Fist | Bums ] -> [ Background | Badporn ] Message NO FISTING PAST THE FINAL KNUCKLE.\n\n[ > Body | Fist ] -> [ Body | Fist ] \n\n(remaining penises)\n[ > PenisA | PenisA ] -> [ PenisB | PenisB ]\n[ > PenisB | PenisB ] -> [ PenisC | PenisC ]\n[ > PenisC | PenisC ] -> [ PenisD | PenisD ]\n[ > PenisD | PenisD ] -> [ PenisE | PenisE ]\n[ > PenisE | PenisE ] -> [ | Porn ]\n[ > Cocks | Cocks ] -> [ PenisA | PenisA ] Message Nothin' wrong with a bit of gentle rubbing. Keep at it!\n\n[ > hand | penis ] -> [ hand | penis3 ] Message Keep going! Again!\n[ > hand | penis2 ] -> [ hand | penis5 ] Message Faster!\n[ > hand | penis3 ] -> [ hand | penis5 ] Message Faster!\n[ > hand | penis4 ] -> [ hand | penis7 ] Message That's it...\n[ > hand | penis5 ] -> [ hand | penis7 ] Message That's it...\n[ > hand | penis6 ] -> [ hand | penis9 ] Message So close...\n[ > hand | penis7 ] -> [ hand | penis9 ] Message So close...\n[ > hand | penis8 ] -> [ hand | penis10 ]\n[ > hand | penis9 ] -> [ background | maleejaculation ] Message OH MY GOD\n[ > hand | penis10 ] -> [ background | maleejaculation ] Message OH MY GOD\n\n[ > Cocks | Hand ] -> [ Background | MaleEjaculation ] Message Admirably efficient, friend.\n\nright [ > Faces | Vagina ] -> [ sidefaceleft | Vagina2 ] Message Lick away! Lick with every inch of your being!\nleft [ > Faces | Vagina ] -> [ sidefaceright | Vagina2 ] Message So nice! Do it again!\nup [ > faces | vagina ] -> [ sidefaceup | Vagina2 ] Message Keep going! More!\ndown [ > faces | vagina ] -> [ sidefacedown | Vagina2 ] Message Aaaaaa such a great tongue, don't stop using it now...\n\n\n[ > Faces | Vagina2 ] -> [ Faces | Vagina3 ] \n[ > Faces | Vagina3 ] -> [ Faces | Vagina4 ]\n[ > Faces | Vaginas ] -> [ | Porn ] \n[ > Faces | MaleEjaculation ] -> [ Background | Porn ] Message Yeah go on then, lick it all up.\n\n[ > Fist | Bum ] -> [ Background | Badporn ] Message NO FISTING. I DON'T WANT TO HAVE TO TELL YOU AGAIN.\n\n[ > penis | boobs ] -> [ penis | boobs ] Message Sorry, I think you need more boobs for that to work.\n[ > boobs | penis | boobs ] -> [ boobs | maleejaculation | boobs ] Message Ah, you're so ingenious! \n[ > penis | boobs | boobs ] -> [ porn | | ] Message Great multi-body-part porn \n\n[ > penis | body ] -> [ penis | body ] Message Ah come on, pick a better body part to put 'er on than THAT.\n[ > penis | stuff ] -> [ penis | stuff ] Message ...well I hope YOU enjoyed that, because it's not gonna make good porn, mate.\n[ > stuff | penis ] -> [ stuff | penis ] Message \"Weird Objects On A Penis\" might make a great tumblr, but it's not gonna sell a video. Sorry.\n\n( slaps fade )\n[ slappedface3 ] -> [ face ]\n[ slappedface2 ] -> [ slappedface3 ]\n[ slappedface ] -> [ slappedface2 ]\n\n[ pinkbum2 ] -> [ bum ]\n[ pinkbum ] -> [ pinkbum2 ]\n\n[ redbum2 ] -> [ pinkbum ]\n[ redbum ] -> [ redbum2 ]\n\n[ bruisedbum2 ] -> [ redbum ]\n[ bruisedbum ] -> [ bruisedbum2 ]\n\n[ pinkboob2 ] -> [ boob ]\n[ Pinkboob3 ] -> [ pinkboob2 ]\n[ pinkboob4 ] -> [ pinkboob3 ] \n\n(erections too)\n[ penis2 ] -> [ penis ]\n[ penis3 ] -> [ penis2 ]\n[ penis4 ] -> [ penis3 ]\n[ penis5 ] -> [ penis4 ]\n[ penis6 ] -> [ penis5 ]\n[ penis7 ] -> [ penis6 ]\n[ penis8 ] -> [ penis7 ]\n[ penis9 ] -> [ penis8 ]\n[ penis10 ] -> [ penis9 ]\n\n\n( faces and body parts )\nright [ > Faces | Bums ] -> [ Sidefaceleft | Bums ]\nleft [ > Faces | Bums ] -> [ Sidefaceright | Bums ]\nup [ > sidefaceup2 | Bums ] -> [ | Porn ] Message Super-good porning, everyone!\nup [ > Faces | Bums ] -> [ Sidefaceup2 | Bums ] Message As long as everyone's washed, this is A-OK with me! Don't give up! Stick that tongue up there again! \ndown [ > Faces | Bums ] -> [ Sidefacedown | Bums ] \n\n\nright [ > Faces | Boobs ] -> [ Sidefaceleft | Boobs ]\nleft [ > Faces | Boobs ] -> [ Sidefaceright | Boobs ]\nup [ > Faces | Boobs ] -> [ Sidefaceup | Boobs ] \ndown [ > Faces | Boobs ] -> [ Sidefacedown | Boobs ]\n\n[ > boobs | faces | boobs ] -> [ boobs | faces | boobs ] Message mmmmmmmm\n\nright [ > Faces | Cocks ] -> [ Sidefaceleft | Cocks ]\nleft [ > Faces | Cocks ] -> [ Sidefaceright | Cocks ]\nup [ > Faces | Cocks ] -> [ Sidefaceup | Cocks ] Message Ball-licking! Excellent work there.\ndown [ > Faces | Cocks ] -> [ Sidefacedown | Cocks ] Message Lovely.\n\n[ > Sidefacedown | Cocks ] -> [ Background | Porn ] Message Good lord, she swallowed it all! \n\n(intro level)\nright [ > player | housewalltop ] -> [ player | housewalltop ] Message A sturdy studio with no windows - perfect for private filming.\nleft [ > player | housewalltop ] -> [ player | housewalltop ] Message Nobody's going to wander in here by accident.\nright [ > player | housewallbottom ] -> [ player | housewallbottom ] Message You've got the studio for a few hours. Better get filming!\nleft [ > player | housewallbottom ] -> [ player | housewallbottom ] Message Yep, solid building there.\n\n[ flowertrigger ] [> player | flowers ] -> [flowertrigger2] [ player | flowers ] Message Watch out for the flowers!\n[ flowertrigger2 ] [> player | flowers ] -> [ ] [ player | flowers ] Message If you can't even follow the rules about treading on flowers, how do you expect to follow the rules about making porn?\n\n[ > player | pathmessage1 ] -> [ > player | path ] Message Sure, there are some new laws about what you can film, but they'll help you keep the porn SEXY instead of WEIRD.\n[ > player | pathmessage2 ] -> [ > player | path ] Message It's a shame to go inside on such a sunny day, but the satisfaction of other people's orgasms makes the job worth it.\n\n[ outdoortarget ] [ > player | door ] -> [ outdoors ] [ > player | door ]\n\n(explanations)\n[ > player | intro ] -> [ > player | background ] Message Each time you do something sufficiently sexy, the Scoring Penis will grow! Get it all the way up to the top to move to the next level...\n[ > player | intro2 ] -> [ > player | background ] Message Watch out - if you do something that breaks the new laws, then the Scoring Penis will deflate! Breaking the rules isn't sexy :(\n[ > player | intro3 ] -> [ > player | background ] Message Remember that a FLAT HAND is different to a FIST...\n[ > player | intro4 ] -> [ > player | background ] Message Look at all that! And you can shove whatever you want wherever you want it! As long as it doesn't violate the laws put in place for the protection of your own sexiness, of course.\n\n[ > player | outdoormessage1 ] -> [ > player | outdoors ] Message It's nice to be outside, but this porn won't film itself.\n[ > player | outdoormessage2 ] -> [ > player | outdoors ] Message A bit of fresh air is great for inspiration! You'll make even better porn now!\n[ > player | outdoormessage3 ] -> [ > player | outdoors ] Message Well, you've stretched your legs - must be time to stretch someone else's vagina!\n\n\n\n( cum, wanking, penises otherwise unaddressed ) \n[ > maleejaculation | bums ] -> [ | porn ] Message Awesome!\n[ > maleejaculation | vaginas ] -> [ | porn ] Message Sweet!\nup down [ > maleejaculation | faces ] -> [ | porn ] Message Aim for a good spread!\nleft right [ > maleejaculation | faces ] -> [ | porn ] Message Bullseye!\n[ > maleejaculation | body ] -> [ maleejaculation | body ] Message Pretty hot! Though not in our official list of porn acts, soz.\n\n[ > penis | fist ] -> [ | maleejaculation ] Message You don't mess around when it comes to a quick wank!\n[ > fist | penis ] -> [ | maleejaculation ] Message Grab 'n' go, it's the way to do it!\n\n\n( cockopalypse )\n[ maleejaculation | maleejaculation | maleejaculation | maleejaculation ] -> [ killercock | killercock | killercock | killercock ] Message OH NO IT'S GONE TOO FAR, IT'S THE COCKOPALYPSE :0 :0 :0\n[ > maleejaculation | maleejaculation | maleejaculation ] -> [ maleejaculation | maleejaculation | maleejaculation ] Message This is great! The more ejaculations the better! Nothing could possibly go wrong with this!\n[ > maleejaculation | maleejaculation ] -> [ maleejaculation | maleejaculation ] Message Brilliant! Line up the cocks!\n\n[ killercum2 ] -> [ killercum3 ]\n[ killercum1 ] -> [ killercum2 ]\n\n[ | killercum3 ] -> [ killercum1 | killercum3 ] \n[ | killercum2 ] -> [ killercum1 | killercum2 ]\n[ | killercock ] -> [ killercum1 | killercock ]\n\n[ killercock | ] -> [ killercock | killercum1 ] \n\n(tutefluids) \n\n[ femaleejaculation ] [ tutefemaleejaculation ] -> [ femaleejaculation ] [ femaleejaculation] \n[ maleejaculation ] [ tutemaleejaculation ] -> [ maleejaculation ] [ maleejaculation ]\n[ urine ] [ tuteurine ] -> [ urine ] [ urine ]\n\n[ > player | tuteurine ] -> [ > player | urine ] Message Hmmm, I hope you know what you're doing with that wee.\n[ > player | tutemaleejaculation ] -> [ > player | maleejaculation ] Message A nice big ejaculating penis - a key part of almost any porn!\n[ > player | tutefemaleejaculation ] -> [ > player | femaleejaculation ] Message Hmmm, careful with the ejaculating vagina - nobody REALLY even knows what that liquid is. It could be wee! It could be acid! It could be molten lava for all we know!\n \n[ > wineglass | fluids ] -> [ wineglass | fluids ] Message This isn't Celebrity Masterchef, friend.\n\n[ > fluids | rope ] -> [ | rope ] Message Well that was a puzzling decision, but you have some soaking wet rope now, I guess?\n\n[ > phone | body ] -> [ > phone | body ] message SNAPCHAT!\n\n[ > bums | bums ] -> [ bums | bums ] message Four buttocks!\n[ > bums | bums | bums ] -> [ bums | bums | bums ] message Six buttocks!\n[ > bums | bums | bums| bums ] -> [ bums | bums | bums | bums ] message Nine buttocks! No, wait, that can't be right, give me a sec... Eight buttocks!\n[ > bums | bums | bums | bums| bums ] -> [ bums | bums | bums | bums | bums ] message Ten buttocks! I feel like you might have reached the point of diminishing returns on the buttocks front.\n\n==============\nWINCONDITIONS\n==============\n\nNo Target \nno outdoortarget \n\n=======\nLEVELS\n=======\n\nMessage Time for another \"hard\" day at the porn factory!!\n\nZJJ,NNNNNNNNN,JJJ\nJ,,,KKKKGKKKK,,,,\nJ,,,,,,JRJ,,,,,,,\nJ,,,,,,JRJJJ,,,,,\n,,,,,,,JDRRRJ,,,,\n,,,8,,,,JJJCRJ,,J\n,,,,,,,,,,JJRJ,,J\n,,,JJ,,,,,,,RJ*,J\n\",,,JJ,,,,,,R,,,,\n\n\nMessage First things first: you've got three penises to deal with. See if you can find somewhere to put them all!\n\n#eQe##I#T#9#Y#£#&#\n#eee#.............\n#eee#......P......\n#e+e#...P.....P...\n#e!e#......[......\n#e!e#######*######\n#123#,,,,J,R,,,,,,\n\nMessage Next, let's look at all these breasts - we'd better do something with 'em! Maybe cover them with something sexy? \n#eQe#..O...OO...O.\n#eee#..O.O..O..O..\n#e+e#.............\n#e!e#.I..%...}..{.\n#e!e#.............\n#e!e#.Y..%...}..{.\n#e!e#......]......\n#e!e#######*######\n#123#,,,,J,R,,,,,,\n\n\nMessage This is going great! Next let's check up on your \"hand\"-yman skills...\n\n#eQe#.....B.B.....\n#eee#.0.P.....A.A.\n#eee#.....5.5.....\n#eee#.O.4..5..5.P.\n#e+e#.............\n#e!e#..5..4.4..5..\n#e!e#......-......\n#e!e#######*######\n#e!e#,,,,J,R,,,,,,\n#123#,,S,,,R,J,J,,\n\nMessage Now that you know most of the body parts... it must be time to try out the props!\n\n#eQe#.............\n#eee#.0..T...7..5.\n#eee#......M.$....\n#e+e#.B..I..$L$.A.\n#e!e#......F.$....\n#e!e#.O..Y...4..P.\n#e!e#.............\n#e!e#######*######\n#e!e#,,,,J,R,,,,,,\n#123#,,S,,,R,J,J,,\n\nMessage AMAZING. This porn is gonna be so hot. Now it's time for the final shoot... \n\n#eQe#.....A.O...P.B.....\n#eee#.M.5..I..T..B..A.P.\n#eee#..U.....5.P.....A..\n#eee#.0.O..M..F..4..0.5.\n#eee#..I..L.......P..O..\n#eee#.A.U..7..O..P..0.T.\n#eee#..7.....4.5.....B..\n#eee#.P.Y..P..B..0..O.I.\n#e+e#........._.........\n#e!e##########*#########\n#e!e#,,,,,,,J,R,,,,,,,,,\n#e!e#,,,W,,,,,R,J,J,,,,,\n#123#,,,,,,,,JRRRRJ,,,,,\n\nMessage Congratulations! Your porn is both mega-hot AND compliant with new legislation. And after all, there's nothing sexier than the law.\n\n",["line 744 : Sprites must be 5 wide and 5 high.","line 752 : Sprites must be 5 wide and 5 high.","line 1038 : You named an object \"[\", but this is a keyword. Don't do that!","line 1039 : You named an object \"]\", but this is a keyword. Don't do that!","line 1159 : Object \"BURNEDPLAYER\" included in multiple collision layers ( layers #4, #6 ). You should fix this!","line 742 : Sprite graphics must be 5 wide and 5 high exactly.","line 750 : Sprite graphics must be 5 wide and 5 high exactly."],2] + "censored version of NSFW game `Pornography for Beginners` by Holly Gramazio", + ["title censored version of NSFW game by Holly Gramazio\nauthor Holly\nhomepage hollygramazio.net\n\nyoutube K5Yd1iOAzBA\ntext_color red\nbackground_color gray\n\n========\nOBJECTS\n========\n\nPlayer\nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nAAAApedPlayer\nblack black black black black black\n00005\n55150\n12525\n05530\n01050\n\nAAAApedPlayer2\nblack black black black black black\n00005\n55150\n12525\n05530\n01050\n\n\nAAAApedPlayer3\nblack black black black black black\n00000\n55140\n12521\n05530\n01050\n\nAAAApedPlayer4\nblack black black black black black\n00000\n55140\n12521\n05530\n01050\n\nAAAApedPlayer5\nblack black black black black black\n00000\n55140\n12555\n03330\n01010\n\nAAAApedPlayer6\nblack black black black black black\n00000\n55140\n12555\n03330\n01010\n\n\nBBBNNNplayer \nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nBBBNNNplayer2 \nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nBBBNNNplayer3 \nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nBBBNNNplayer4 \nblack black black black black\n00000\n04040\n10201\n03030\n.....\n\n\n(Backgrounds)\n\nBackground\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nFlowertrigger\ngreen black\n00010\n00100\n10000\n00001\n01000\n\n\nFlowertrigger2\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoors\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage1\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage2\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage3\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nScoring\nblack black\n00100\n00100\n11111\n00100\n00100\n\nIntro\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nIntro2\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nIntro3\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nIntro4\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nTarget\nblack black\n00100\n00100\n11111\n00100\n00100\n\nOutdoortarget\ngreen black\n00010\n00100\n10000\n00001\n01000\n\n(CCCCCes)\n\nCCCCC\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCCa\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCCb\nblack black black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCCc\nblack black black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCCd\nblack green black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCCe\nblack black black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCC2\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC3\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC4\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC5\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC6\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC7\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC8\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC9\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC10\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nBBBNNNCCCCC\nblack black black \n.000.\n.020.\n.020.\n00200\n00000\n\nBBBNNNCCCCC2\nblack black black \n.....\n.010.\n.020.\n00200\n00000\n\nBBBNNNCCCCC3\nblack black black \n.....\n.....\n.010.\n11211\n01010\n\nBBBNNNCCCCC4\nblack black black \n.....\n.....\n.010.\n01210\n.....\n\n(DDDDs)\n\nDDDD\nblack black black black\n03310\n31111\n31012\n11112\n01220\n\nDDDD2\nblack black black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD2\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD3\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD4\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nDDDDularity\nblack black black black \n03310\n31111\n31012\n11112\n01220\n\nDDDDularity2\nblack black black black \n03310\n31111\n31012\n11112\n01220\n\nDDDDularity3\nblack black black black \n03310\n31111\n31012\n11112\n01220\n\n\n(tutorial EEEEparts) \n\nTuteFFFFFF\nblack black\n00100\n01010\n01010\n01010\n00100\n\nTuteGGG\nblack black black black black\n40000\n40040\n40240\n00200\n01010\n\nTuteface\nblack black black black\n00000\n02120\n01110\n01310\n00100\n\n\n(FFFFFFs)\n\nFFFFFF\nblack black\n00100\n01010\n01010\n01010\n00100\n\nFFFFFF2\nblack black\n00100\n01010\n01010\n01010\n00100\n\nFFFFFF3\nblack black black\n00100\n01210\n01210\n01210\n00100\n\nFFFFFF4\nblack black black\n00100\n01210\n01210\n01210\n00100\n\nFFFFFF5\nblack black black\n00200\n02120\n02120\n02120\n00200\n\n(YYYYYYYs)\nOOOOe\nblack black black black\n.020.\n02000\n20001\n20011\n01130\n\nTuteOOOOe\nblack black black black\n.020.\n02000\n20001\n20011\n01130\n\nTuteSSSSQQQQQQQQion\nblack black black black black\n01010\n.010.\n.020.\n.000.\n02020\n\nSSSSQQQQQQQQion\nblack black black black black\n01010\n.010.\n.020.\n.000.\n02020\n\nTuteRRRRRRQQQQQQQQion\nblack black black black\n.010.\n01010\n01010\n.030.\n02020\n\nRRRRRRQQQQQQQQion\nblack black black black\n.010.\n01010\n01010\n.030.\n02020\n\n\n(TTTTopalypse)\nd123d12d12derTTTT\nblack black black black black\n01010\n.010.\n.020.\n.000.\n02020\n\nd123d12d12derZZZZZZ1\nblack\n.000.\n00000\n00000\n.0000\n00000\n\nd123d12d12derZZZZZZ2\nblack\n00000\n00000\n00000\n00000\n00000\n\nd123d12d12derZZZZZZ3\nblack\n00000\n00000\n00000\n00000\n00000\n\n(k33k3k23s)\n\nk33k3k23\nblack black \n01010\n01010\n01010\n00000\n00000\n\nVVVV\nblack black \n01010\n00000\n00000\n00000\n00000\n\n(GGGs)\n\nGGG\nblack black black black black\n40000\n40040\n40240\n00200\n01010\n\nblackGGG\nblack black black black black green green \n05005\n56056\n56256\n05250\n01010\n\npinkGGG\nblack black black black black green green \n55556\n56556\n56256\n06261\n01010\n\nHHHHHHdGGG\nblack black black black green green green \n44446\n46446\n56256\n66256\n01010\n\nblackGGG2\nblack black black black black green green \n05005\n56056\n56256\n05250\n01010\n\npinkGGG2\nblack black black black black green green \n55556\n56556\n56256\n06261\n01010\n\nHHHHHHdGGG2\nblack black black black green green green \n44446\n46446\n56256\n66256\n01010\n\nUUUUU\nblack black\n.010.\n.000.\n.000.\n01010\n.....\n\nSAAAAon\nblack black black black black \n22422\n22422\n33433\n22022\n22022\n\n(faces)\n\nFace\nblack black black black\n00000\n02120\n01110\n01310\n00100\n\nif90345if0934i90f34\nblack black black black green \n00000\n02120\n04140\n04340\n00100\n\nif90345if0934i90f342\nblack black black black green \n00000\n02120\n04140\n04340\n00100\n\nif90345if0934i90f343\nblack black black black green \n00000\n02120\n04140\n04340\n00100\n\nSidefaceleft\nblack black black black\n00000\n01210\n01111\n01113\n0010.\n\nSidefaceright\nblack black black black\n00000\n01210\n11110\n31110\n.0100\n\nSidefaceup\nblack black black black\n.0130.\n0111\n02111\n01110\n00000\n\nSidefaceup2\nblack black black black\n.0130.\n0111\n02111\n01110\n00000\n\nSidefacedown\nblack black black black\n00000\n01110\n02111\n01110\n.0130\n\n(scoring)\n\nMMMM\nblack black black black black\n40304\n00311\n00212\n00123\n33333\n\nLLLLL\nblack black black\n00112\n00112\n00112\n00112\n00112\n\nLeftJJJJ\nblack black black black black black\n44542\n11221\n52135\n42143\n41223\n\nMidJJJJ\nblack black black black black\n44001\n14031\n41332\n43021\n33122\n\nRightJJJJ\nblack black black black black black\n42544\n24512\n55215\n31124\n13524\n\n(stuff)\n\nMess\nblack black black black black\n01234\n34021\n23140\n12403\n40312\n\n\nSocket\nblack black black\n00100\n00100\n00000\n11011\n00000\n\ng5432g5glass\ngreen black black black\n02220\n03330\n00100\n.000.\n00000\n\nZZZZZZglass\ngreen black black black\n00000\n01120\n00200\n.000.\n00000\n\nXXXXglass\ngreen black black \n00000\n02220\n00100\n.000.\n00000\n\nPhone\nblack black black\n00000\n02200\n00000\n01010\n10100\n\nWWWW\nblack black\n100..\n01010\n10001\n10001\n01110\n\nWWWW2\nblack black\n100..\n01010\n10101\n10001\n01110\n\nWWWWwarning\nblack \n.....\n.....\n.....\n.....\n.....\n\nWWWWwarning2\nblack\n.....\n.....\n.....\n.....\n.....\n\n(admin)\n\nKKKK\nblack black\n00001\n00010\n00100\n10100\n01000\n\nKKKK2\nblack black\n00001\n00010\n00100\n10100\n01000\n\nKKKK3\nblack black\n00001\n00010\n00100\n10100\n01000\n\nKKKK4\nblack black\n00000\n00000\n00000\n10100\n01000\n\nWall\nblack black\n01110\n01110\n01110\n01110\n01110\n\nBadKKKK\nblack black\n10001\n01010\n00100\n01010\n10001\n\nBadKKKK2\nblack black \n10001\n01010\n00100\n01010\n10001\n\nBadKKKK3\nblack black \n10001\n01010\n00100\n01010\n10001\n\nBadKKKK4\nblack black \n10001\n01010\n00100\n01010\n10001\n\n(architecture)\n\nDoor\nblack black\n00000\n00000\n00010\n00000\n00000\n\nHousewalltop\ngreen green green black green\n33333\n44444\n01210\n01210\n01210\n\nHousewallIIIII\ngreen green green green black\n01210\n01210\n01210\n01210\n01210\n\nFlowers\ngreen black green black black black\n30035\n02103\n24200\n02001\n01003\n\nPath\nblack black\n00001\n00000\n01000\n00010\n00000\n\nPathmessage1\nblack black\n00001\n00000\n01000\n00010\n00000\n\nPathmessage2\nblack black\n00001\n00000\n01000\n00010\n00000\n\nFakeOutdoors\ngreen black\n00010\n00100\n10000\n00001\n01000\n\n=======\nLEGEND\n=======\n\n, = Outdoors \n! = LLLLL\n. = Background\n[ = Intro\n] = Intro2\n- = intro3\n_ = intro4\n* = Player\n# = Wall\n+ = MMMM\n0 = Face\n1 = LeftJJJJ\n2 = MidJJJJ\n3 = RightJJJJ\n4 = VVVV\n5 = k33k3k23\n6 = SAAAAon\n7 = UUUUU\nA = FFFFFF\nB = GGG\ne = Scoring\nF = RRRRRRQQQQQQQQion\nI = XXXXglass\nL = WWWW\nM = SSSSQQQQQQQQion\nO = DDDD\nP = CCCCC\nQ = Target\nT = Socket\nU = OOOOe \nX = KKKK\nY = Phone \nZ = Outdoortarget\n9 = tuteGGG\n& = tuteFFFFFF \n£ = tuteface\n$ = WWWWwarning\n\" = flowertrigger\n' = flowertrigger2\n% = tuteOOOOe\n{ = tuteSSSSQQQQQQQQion\n} = tuteRRRRRRQQQQQQQQion\n(outdoors)\nG = Door \nJ = Flowers\nR = Path\nK = HousewallIIIII\nN = Housewalltop\nC = pathmessage1\nD = Pathmessage2\n8 = Outdoormessage1\nS = Outdoormessage2\nW = Outdoormessage3\n\ngap = background or outdoors or path or outdoormessage2 or outdoormessage1 or outdoormessage3\n\nDDDDularities = DDDDularity or DDDDularity2 or DDDDularity3\nDDDDs = DDDD or DDDD2 or blackDDDD or blackDDDD2 or blackDDDD3 or blackDDDD4 \n\nTTTTopalypse = d123d12d12derTTTT or d123d12d12derZZZZZZ1 or d123d12d12derZZZZZZ2 or d123d12d12derZZZZZZ3\nblackGGGs = blackGGG or blackGGG2\npinkGGGs = pinkGGG or pinkGGG2\nFFFFFFs = FFFFFF or FFFFFF2 or FFFFFF3 or FFFFFF4 or FFFFFF5\nHHHHHHdGGGs = HHHHHHdGGG or HHHHHHdGGG2\nif90345if0934i90f34s = if90345if0934i90f34 or if90345if0934i90f342 or if90345if0934i90f343\nslappedGGGs = pinkGGGs or pinkGGGs or HHHHHHdGGGs\nfaces = Face or Sidefaceleft or Sidefaceright or Sidefaceup or sidefacedown or if90345if0934i90f34s or sidefaceup2\nGGGs = GGG or blackGGGs or pinkGGGs or HHHHHHdGGGs\nTTTTs = CCCCC or CCCCC2 or CCCCC3 or CCCCC4 or CCCCC5 or CCCCC6 or CCCCC7 or CCCCC8 or CCCCC9 or CCCCC10 or CCCCCa or CCCCCb or CCCCCc or CCCCCd or CCCCCe\nWWWWs = WWWW or WWWW2\n\nResults = KKKK or badKKKK or KKKK2 or badKKKK2 or KKKK2 or badKKKK2 or KKKK3 or badKKKK3 or KKKK4 or badKKKK4\nStuff = UUUUU or sAAAAon or XXXXglass or phone or socket or g5432g5glass or ZZZZZZglass or WWWWs or mess\nArchitecture = wall or door \nYYYYYYYs = OOOOe or SSSSQQQQQQQQion or RRRRRRQQQQQQQQion or g5432g5glass or ZZZZZZglass or tuteRRRRRRQQQQQQQQion or tuteSSSSQQQQQQQQion or tuteOOOOe\nscoretrack = scoring or MMMM or LLLLL or leftJJJJ or midJJJJ or rightJJJJ or target or outdoortarget\n\nEEEE = TTTTs or k33k3k23 or GGGs or DDDDs or Faces or VVVV or FFFFFFs or BBBNNNCCCCC or BBBNNNCCCCC2 or BBBNNNCCCCC3 or BBBNNNCCCCC4 or BBBNNNplayer or BBBNNNplayer2 or BBBNNNplayer3 or BBBNNNplayer4 or tuteGGG or tuteFFFFFF or tuteface \n\nAAAApedplayers = AAAApedplayer or AAAApedplayer2 or AAAApedplayer3 or AAAApedplayer4 or AAAApedplayer5 or AAAApedplayer6\n\nStudio = flowers or housewalltop or housewallIIIII \nPaths = path or pathmessage1 or pathmessage2 \n\nEverything = YYYYYYYs or stuff or architecture or studio or paths or EEEE or results or outdoors or scoretrack or player \n\n=======\nSOUNDS\n=======\n\nTTTTs move 81432307\nFFFFFFs move 30911708\nGGGs move 76441308\nDDDDs move 59578908\nk33k3k23 move 83753708\nVVVV move 88751108\nFaces move 46152509\nEEEE move 53209307\n\nAAAApedplayers move 62896704\n\nplayer cantmove 77916504\nKKKK create 97214303\nbadKKKK create 11123702\n\nSSSSQQQQQQQQion move 51210708\nRRRRRRQQQQQQQQion move 30863108\nOOOOe move 80548907\n\nstuff move 34367907\n\nEndlevel 48242503\nEndgame 9005308\nclosemessage 71913507\nstartlevel 13337700\n\n================\nCOLLISIONLAYERS\n================\nBackground, \nOutdoors, Intro, Intro2, intro3, intro4, outdoormessage1, outdoormessage2, outdoormessage3 \nPaths\nPlayer, EEEE, YYYYYYYs, Results, stuff, architecture, studio, AAAApedplayers, \nScoretrack\nDDDDularities, BBBNNNplayer, TTTTopalypse, fakeoutdoors, WWWWwarning, WWWWwarning2, flowertrigger, flowertrigger2\n======\nRULES\n======\n\n(everything that moves)\n[ > Player | EEEE ] -> [ > Player | > EEEE ]\n[ > Player | YYYYYYYs ] -> [ > Player | > YYYYYYYs ]\n[ > Player | Stuff ] -> [ > Player | > Stuff ]\n\n(disasters )\n[ DDDDularities ] -> [ randomdir DDDDularities ]\n[ everything | ... | DDDDularities ] -> [ > everything | ... | DDDDularities ]\n\n[ > everything | DDDDularity ] -> [ background | DDDDularity2 ] Message THIS IS A MESSAGE\n[ > everything | DDDDularity2 ] -> [ | DDDDularity3 ]\n[ > everything | DDDDularity3 ] -> [ > everything | DDDDularity2 ]\n\n(facesitting)\n[ > FFFFFFs | faces ] -> [ background | badKKKK ] Message THIS IS A MESSAGE\n[ > GGGs | faces ] -> [ | badKKKK ] Message THIS IS A MESSAGE\n\n(one-offs)\n[ > DDDDs | XXXXglass ] -> [ DDDDs | XXXXglass ] Message THIS IS A MESSAGE\n[ > XXXXglass | DDDD ] -> Message DISPLAY MESSAGE\n\n[ > VVVV | k33k3k23 ] -> [ | badKKKK ] Message THIS IS A MESSAGE\n[ > k33k3k23 | VVVV ] -> [ k33k3k23 | VVVV ] Message THIS IS A MESSAGE\n\n\n(CCCCC level) \n\n[ > CCCCC | tuteGGG ] -> [ | KKKK ] Message THIS IS A MESSAGE\n[ > CCCCC | tuteFFFFFF ] -> [ | KKKK ] Message THIS IS A MESSAGE\n[ > CCCCC | tuteface ] -> [ | KKKK ] Message THIS IS A MESSAGE\n\n\n(scoring)\n\n[ KKKK4 ] -> [ ]\n[ KKKK3 ] -> [ KKKK4 ]\n[ KKKK2 ] -> [ KKKK3 ]\n\n[ BadKKKK4 ] -> [ ]\n[ BadKKKK3 ] -> [ BadKKKK4 ]\n[ BadKKKK2 ] -> [ BadKKKK3 ]\n\n[ KKKK ] [ LLLLL | MMMM | Scoring ] -> [ KKKK2 ] [ LLLLL | LLLLL | MMMM ]\n[ KKKK ] [ LLLLL | MMMM | Target ] -> [ KKKK2 ] [ LLLLL | LLLLL | MMMM ]\n[ BadKKKK ] [ LLLLL | LLLLL | MMMM ] -> [BadKKKK2] [ LLLLL | MMMM | Scoring ]\n\n(dead things crumble to dust)\n[ BBBNNNCCCCC4 ] -> [ ]\n[ BBBNNNCCCCC3 ] -> [ BBBNNNCCCCC4 ]\n[ BBBNNNCCCCC2 ] -> [ BBBNNNCCCCC3 ]\n[ BBBNNNCCCCC ] -> [ BBBNNNCCCCC2 ]\n\n[ BBBNNNplayer4 ] -> [ ]\n[ BBBNNNplayer3 ] -> [ BBBNNNplayer4 ]\n[ BBBNNNplayer2 ] -> [ BBBNNNplayer3 ]\n[ BBBNNNplayer ] -> [ BBBNNNplayer2 ]\n\n\n( special PPPPP instructions for level 2 )\n\nright [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 1\nleft [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 2\nup [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 3\ndown [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 4\n\nright [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 5\nleft [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 6\nup [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 7\ndown [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 8\n\nright [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ] \nleft [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ]\nup [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ]\ndown [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ]\n\nright [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 9\nleft [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 10\nup [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 11\ndown [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 12\n\nright [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 13\nleft [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 14\nup [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 15\ndown [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 16\n\nright [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 17\nleft [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 18\nup [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 19\ndown [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 20\n\n\n(objects)\n\n[ > phone | OOOOe ] -> [ > phone | OOOOe ] Message THIS IS A MESSAGE 21\n\n\n[ > phone | RRRRRRQQQQQQQQion ] -> [ | KKKK ] Message THIS IS A MESSAGE 22\n\n[ > phone | SSSSQQQQQQQQion ] -> [ | KKKK ] Message THIS IS A MESSAGE 23\n[ > phone | DDDDs ] -> [ | KKKK ] Message THIS IS A MESSAGE 24\n\n[ > phone | TTTTs ] -> [ phone | TTTTs ] Message THIS IS A MESSAGE 25\n\n[> UUUUU | XXXXglass ] -> [ UUUUU | XXXXglass ] Message THIS IS A MESSAGE 26\n[> SAAAAon | XXXXglass ] -> [ SAAAAon | XXXXglass ] Message THIS IS A MESSAGE 27\n\n[> XXXXglass | socket ] -> [ | socket ] Message THIS IS A MESSAGE 28 \n[> g5432g5glass | socket ] -> [ | socket ] Message THIS IS A MESSAGE 29\n[> ZZZZZZglass | socket ] -> [ | socket ] Message THIS IS A MESSAGE 30\n\n[ > YYYYYYYs | phone ] -> [ | phone ] Message THIS IS A MESSAGE 31\n[ > phone | XXXXglass ] -> [ | XXXXglass ] Message THIS IS A MESSAGE 32\n\n[> TTTTs | Socket ] -> [ BBBNNNCCCCC | Socket ] Message THIS IS A MESSAGE 33\n[> TTTTs | Phone ] -> [ TTTTs | Phone ] Message THIS IS A MESSAGE 34 \n[ > TTTTs | XXXXglass ] -> [ TTTTs | XXXXglass ] Message THIS IS A MESSAGE 35\n\n[> player | k33k3k23 | socket ] -> [ | BBBNNNplayer | socket ] Message THIS IS A MESSAGE 36\n[> player | VVVV | socket ] -> [ player | VVVV | socket ] Message THIS IS A MESSAGE 37\n[> EEEE | Socket ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 38\n[> Socket | EEEE ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 39\n\n[ > player | YYYYYYYs | socket ] -> [ | BBBNNNplayer | socket ] Message THIS IS A MESSAGE 40\n\n[> Phone | FFFFFFs ] -> [ Background | FFFFFFs ] Message THIS IS A MESSAGE 41\n[> Phone | GGGs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 42\n\n[ > g5432g5glass | face ] -> [ | badKKKK ] Message THIS IS A MESSAGE 43\n[ > g5432g5glass | EEEE ] -> [ | badKKKK ] Message THIS IS A MESSAGE 44\n\n[ > ZZZZZZglass | face ] -> [ | KKKK ] Message THIS IS A MESSAGE 45\n[ > face | ZZZZZZglass ] -> [ | KKKK ] Message THIS IS A MESSAGE 46\n[ > ZZZZZZglass | FFFFFF ] -> [ | FFFFFF ] Message THIS IS A MESSAGE 47\n[ > ZZZZZZglass | GGG ] -> [ | badKKKK ] Message THIS IS A MESSAGE 48\n\n[ > XXXXglass | faces ] -> [ | faces ] Message THIS IS A MESSAGE 49\n[ > faces | XXXXglass ] -> [ faces | ] Message THIS IS A MESSAGE 50\n\nup down [ > phone | stuff ] -> [ phone | stuff ] Message THIS IS A MESSAGE 51\nleft right [ > phone | stuff ] -> [ phone | stuff ] Message THIS IS A MESSAGE 52\n\n\n\n[ > phone | face ] -> [ phone | face ] Message THIS IS A MESSAGE 53\n[ > GGGs | phone ] -> [ GGGs | phone ] Message THIS IS A MESSAGE 54\n[ > face | phone ] -> [ face | phone ] Message THIS IS A MESSAGE 55\n\n[ > UUUUU | socket ] -> [ UUUUU | socket ] Message THIS IS A MESSAGE 56\n\n\n[ > stuff | XXXXglass ] -> [ | XXXXglass ]\n[ > stuff | g5432g5glass ] -> [ | g5432g5glass ]\n[ > stuff | ZZZZZZglass ] -> [ | ZZZZZZglass ]\n\n\n( WWWW )\n\n[ AAAApedplayer6 ] -> [ player ] Message THIS IS A MESSAGE 57\n[ AAAApedplayer5 ] -> [ AAAApedplayer6 ]\n[ AAAApedplayer4 ] -> [ AAAApedplayer5 ]\n[ AAAApedplayer3 ] -> [ AAAApedplayer4 ] \n[ AAAApedplayer2 ] -> [ AAAApedplayer3 ]\n[ AAAApedplayer ] -> [ AAAApedplayer2 ] Message THIS IS A MESSAGE 58\n[ > player | WWWWs ] -> [ | < AAAApedplayer ] Message THIS IS A MESSAGE 59\n\n[ WWWWwarning ] [ WWWWwarning2 ] -> [ WWWWwarning2 ] [ WWWWwarning2 ]\n[ > player | WWWWwarning ] -> [ > player | WWWWwarning2 ] Message THIS IS A MESSAGE 60\n\nup [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 61\ndown [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 62\nup [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 63\nup [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 64\n\n[ > DDDDs | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 65\n[ > CCCCC | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 66\n[ > FFFFFFs | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 67\n[ > GGGs | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 68\n[ > k33k3k23 | WWWWs ] -> [ | badKKKK ] Message THIS IS A MESSAGE 69\n[ > VVVV | WWWWs ] -> [ | badKKKK ] Message THIS IS A MESSAGE 70\n\n\n(basic sex acts)\n\nup down [ > TTTTs | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE 71\nleft right [ > TTTTs | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE 72\n\nup [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 73\nleft [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 74\ndown [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 75\nright [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 76\n\nleft [ > FFFFFF | TTTTs ] -> [ | KKKK ] Message THIS IS A MESSAGE 77\nright [ > FFFFFF | TTTTs ] -> [ | KKKK ] \nup [ > FFFFFF | TTTTs ] -> [ | KKKK ] Message THIS IS A MESSAGE 78\ndown [ > FFFFFF | TTTTs ] -> [ | KKKK ] \n[ > TTTTs | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE 79\nright [ > FFFFFF | FFFFFF ] -> [ FFFFFF2 | FFFFFF2 ] Message THIS IS A MESSAGE 80\nleft up down [ > FFFFFF | FFFFFF ] -> [ FFFFFF2 | FFFFFF2 ]\ndown [ > FFFFFF2 | FFFFFF2 ] -> [ | KKKK ] Message THIS IS A MESSAGE 81\nleft up right [ > FFFFFF2 | FFFFFF2 ] -> [ | KKKK ]\n\n(UUUUUs) \n[ > FFFFFF3 | UUUUU ] -> [ background | KKKK ] \n[ > FFFFFFs | UUUUU ] -> [ FFFFFF3 | UUUUU ] Message THIS IS A MESSAGE 82\n\n[ > UUUUU | FFFFFFs ] -> [ background | sAAAAon ] Message THIS IS A MESSAGE 83\n\n\n[ > UUUUU | face ] -> [ UUUUU | face ] Message THIS IS A MESSAGE 84\n[ > sAAAAon | face ] -> [ | KKKK ] Message THIS IS A MESSAGE 85\n\n(sAAAAons) \n[ > sAAAAon | FFFFFFs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 86\n[ > sAAAAon | GGGs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 87\n[ > sAAAAon | DDDDs ] -> [ sAAAAon | DDDDs ] Message THIS IS A MESSAGE 88\n[ > sAAAAon | faces ] -> [ background | KKKK ] \n\n[ > FFFFFFs | sAAAAon ] -> [ background | KKKK ] \n[ > GGGs | sAAAAon ] -> [ background | KKKK ]\n[ > EEEE | sAAAAon ] -> [ EEEE | sAAAAon ]\n[ > faces | sAAAAon ] -> [ faces | sAAAAon ] Message THIS IS A MESSAGE 89\n\nup down [ > UUUUU | GGGs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 90\nleft right [ > UUUUU | GGGs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 91 \n\n[ > stuff | stuff | stuff | stuff ] -> [ stuff| stuff | stuff | stuff ] Message THIS IS A MESSAGE 92\n\n\n(the k33k3k23's jobs)\n\n[ > k33k3k23 | FFFFFF ] -> [ k33k3k23 | FFFFFF2 ] Message THIS IS A MESSAGE 93\n[ > k33k3k23 | FFFFFF2 ] -> [ k33k3k23 | FFFFFF3 ] \n[ > k33k3k23 | FFFFFF3 ] -> [ k33k3k23 | FFFFFF4 ] \n[ > k33k3k23 | FFFFFF4 ] -> [ k33k3k23 | FFFFFF5 ]\nup [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 94\ndown [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 95\nleft [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 96\nright [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 97\n\n[ > k33k3k23 | k33k3k23 ] -> [ k33k3k23 | k33k3k23 ] Message THIS IS A MESSAGE 98\nleft down [ > VVVV | VVVV ] -> [ VVVV | VVVV ] Message THIS IS A MESSAGE 99\nup right [ > VVVV | VVVV ] -> [ VVVV | VVVV ]\n\n(FFFFFFs)\n\n[ > FFFFFFs | GGG ] -> [ FFFFFFs | GGG ] Message THIS IS A MESSAGE 100\n[ > FFFFFFs | DDDD ] -> [ FFFFFFs | DDDD ] Message THIS IS A MESSAGE q1\n\n(piss)\n\n[ > OOOOe | TTTTs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q2\n[ > OOOOe | FFFFFFs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q3\n[ > OOOOe | SSSSQQQQQQQQion ] -> [ Background | BadKKKK ] \n[ > OOOOe | RRRRRRQQQQQQQQion ] -> [ Background | OOOOe ] Message THIS IS A MESSAGE q4\n[ > OOOOe | Face ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q5\n[ > OOOOe | k33k3k23 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q6\n[ > OOOOe | VVVV ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q7\n[ > OOOOe | GGGs ] -> [ Background | BadKKKK ]\n\n[ > OOOOe | OOOOe ] -> [ | OOOOe ] \n\n[ > OOOOe | EEEE ] -> [ Background | BadKKKK ]\n[ > RRRRRRQQQQQQQQion | EEEE ] -> [ Background | BadKKKK ]\n\n[ > RRRRRRQQQQQQQQion | SSSSQQQQQQQQion ] -> [ | BadKKKK ] Message THIS IS A MESSAGE q8\n[ > SSSSQQQQQQQQion | RRRRRRQQQQQQQQion ] -> [ | KKKK ] Message THIS IS A MESSAGE q9\n\n[ > TTTTs | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q10\n[ > FFFFFFs | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q11\n[ > SSSSQQQQQQQQion | OOOOe ] -> [ Background | OOOOe ] Message THIS IS A MESSAGE q12\n[ > RRRRRRQQQQQQQQion | OOOOe ] -> [ Background | OOOOe ] Message THIS IS A MESSAGE q13\n[ > Face | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q14\n[ > k33k3k23 | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q15\n[ > VVVV | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q16\n[ > GGG | OOOOe ] -> [ Background | BadKKKK ] \n\n(complicated things with glasses) \n\n[ > OOOOe | XXXXglass ] -> [ | g5432g5glass ]\n[ > RRRRRRQQQQQQQQion | XXXXglass ] -> [ | g5432g5glass ]\n[ > SSSSQQQQQQQQion | XXXXglass ] -> [ | ZZZZZZglass ]\n\n[ > OOOOe | ZZZZZZglass ] -> [ | g5432g5glass ]\n[ > RRRRRRQQQQQQQQion | ZZZZZZglass ] -> [ | g5432g5glass ]\n\n[ > SSSSQQQQQQQQion | g5432g5glass ] -> [ | ZZZZZZglass ]\n\n\n(DDDDs)\n\n[ > DDDDs | TTTTs ] -> [ DDDDs | TTTTs ] Message THIS IS A MESSAGE q17\n\n[ > DDDDs | FFFFFFs ] -> [ DDDDs | FFFFFF ] Message THIS IS A MESSAGE q18\n[ > DDDDs | SSSSQQQQQQQQion ] -> [ DDDD | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q19\n[ > DDDDs | Face ] -> [ DDDDs | Face ] Message THIS IS A MESSAGE q20\n[ > DDDDs | k33k3k23 ] -> [ DDDDs | k33k3k23 ] Message THIS IS A MESSAGE q21\n[ > DDDDs | GGG ] -> [ DDDDs | GGG ] Message THIS IS A MESSAGE q22\n\n[ > FFFFFFs | DDDDs ] -> [ FFFFFFs | DDDD ]\n[ > SSSSQQQQQQQQion | DDDDs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q23\n[ > SSSSQQQQQQQQion | Face ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q24\n\n[ > Face | DDDDs ] -> [ Face | DDDDs ] Message THIS IS A MESSAGE q25\n[ > DDDDs | Face | DDDDs ] -> [ DDDDs | Face | DDDDs ] Message THIS IS A MESSAGE q26\n\n[ > VVVV | DDDDs ] -> [ Background | BadKKKK ]\n[ > GGG | DDDDs ] -> [ GGG | DDDDs ] Message THIS IS A MESSAGE q27\n\n[ DDDDs | DDDDs | DDDDS | DDDDs | DDDDs | DDDDs | DDDDs ] -> [ Background | Background | Background | DDDDularity | Background | Background | Background ] Message THIS IS A MESSAGE q29 \n[ > DDDDs | DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q29\n[ > DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q30\n[ > DDDDs | DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q31\n[ > DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q32\n[ > DDDDs | DDDDs ] -> [ DDDDs | DDDDs ] Message THIS IS A MESSAGE q33\n\n(kissing)\nright [ > Faces | Faces ] -> [ Sidefaceleft | Sidefaceright ] Message THIS IS A MESSAGE q34\nleft [ > Faces | Faces ] -> [ Sidefaceright | Sidefaceleft ] Message THIS IS A MESSAGE q35\nup [ > Faces | Faces ] -> [ Sidefaceup | Sidefacedown ] Message THIS IS A MESSAGE q36\ndown [ > Faces | Faces ] -> [ Sidefacedown | Sidefaceup ] Message\n\n[ > GGGs | Outdoors ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q38\n\nup down [ > TTTTs | GGGs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q39\nleft [ > TTTTs | GGGs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q40\nright [ > TTTTs | GGGs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q41\n[ > GGGs | TTTTs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q42\n\n\n[ > k33k3k23 | Outdoors ] -> [ > k33k3k23 | > Outdoors ]\n[ > FFFFFFs | Outdoors ] -> [ Background | BadKKKK ]\n[ > TTTTs | Outdoors ] -> [ Background | BadKKKK ]\n[ > SSSSQQQQQQQQion | Outdoors ] -> [ Background | BadKKKK ]\n[ > RRRRRRQQQQQQQQion | Outdoors ] -> [ Background | BadKKKK ]\n[ > OOOOe | Outdoors ] -> [ | Outdoors ] Message THIS IS A MESSAGE q43\n\n[ > FFFFFFs | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q44\n[ > TTTTs | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q45\n[ > SSSSQQQQQQQQion | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q46\n[ > RRRRRRQQQQQQQQion | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q47\n[ > OOOOe | Path | Path | Path ] -> [ > OOOOe | Path | Path | Path ] Message THIS IS A MESSAGE q48\n\n\n[ > Outdoors | Faces | Faces ] -> [ Outdoors | Faces | Faces ] Message THIS IS A MESSAGE q49\n\n\n(smacks and slaps)\nup down [ > k33k3k23 | GGG ] -> [ k33k3k23 | blackGGG ] Message THIS IS A MESSAGE q50\nleft right [ > k33k3k23 | GGG ] -> [ k33k3k23 | blackGGG ] Message THIS IS A MESSAGE q51\n[ > k33k3k23 | blackGGGs ] -> [k33k3k23 | blackGGG ] Message THIS IS A MESSAGE q52\n[ > k33k3k23 | blackGGGs ] -> [k33k3k23 | HHHHHHdGGG ] Message THIS IS A MESSAGE q53\n[ > k33k3k23 | HHHHHHdGGGs ] -> [Background | BadKKKK ] Message THIS IS A MESSAGE q54\n\n[> k33k3k23 | if90345if0934i90f34s ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q55\n[ > k33k3k23 | Faces ] -> [ k33k3k23 | if90345if0934i90f34 ] Message THIS IS A MESSAGE q56\n\n[> Faces | k33k3k23 ] -> [ Face | k33k3k23 ] Message THIS IS A MESSAGE q57\n\n[ > k33k3k23 | DDDD ] -> [ k33k3k23 | DDDD2 ] Message THIS IS A MESSAGE q58\n[ > k33k3k23 | DDDD2 ] -> [ k33k3k23 | blackDDDD4 ] Message THIS IS A MESSAGE q59\n[ > k33k3k23 | blackDDDD ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q60\n[ > k33k3k23 | blackDDDD2 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q61\n[ > k33k3k23 | blackDDDD3 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q62\n[ > k33k3k23 | blackDDDD4 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q63\n\n(VVVVing and punching)\n\n[> VVVV | Faces ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q64\n[ > VVVV | FFFFFFs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q65\n[ > VVVV | GGGs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q66\n\n[ > EEEE | VVVV ] -> [ EEEE | VVVV ] \n\n(remaining CCCCCes)\n[ > CCCCCA | CCCCCA ] -> [ CCCCCB | CCCCCB ]\n[ > CCCCCB | CCCCCB ] -> [ CCCCCC | CCCCCC ]\n[ > CCCCCC | CCCCCC ] -> [ CCCCCD | CCCCCD ]\n[ > CCCCCD | CCCCCD ] -> [ CCCCCE | CCCCCE ]\n[ > CCCCCE | CCCCCE ] -> [ | KKKK ]\n[ > TTTTs | TTTTs ] -> [ CCCCCA | CCCCCA ] Message THIS IS A MESSAGE q77\n\n[ > k33k3k23 | CCCCC ] -> [ k33k3k23 | CCCCC3 ] Message THIS IS A MESSAGE q78\n[ > k33k3k23 | CCCCC2 ] -> [ k33k3k23 | CCCCC5 ] Message THIS IS A MESSAGE q79\n[ > k33k3k23 | CCCCC3 ] -> [ k33k3k23 | CCCCC5 ] Message THIS IS A MESSAGE q80\n[ > k33k3k23 | CCCCC4 ] -> [ k33k3k23 | CCCCC7 ] Message THIS IS A MESSAGE q81\n[ > k33k3k23 | CCCCC5 ] -> [ k33k3k23 | CCCCC7 ] Message THIS IS A MESSAGE q82\n[ > k33k3k23 | CCCCC6 ] -> [ k33k3k23 | CCCCC9 ] Message THIS IS A MESSAGE q83\n[ > k33k3k23 | CCCCC7 ] -> [ k33k3k23 | CCCCC9 ] Message THIS IS A MESSAGE q84\n[ > k33k3k23 | CCCCC8 ] -> [ k33k3k23 | CCCCC10 ]\n[ > k33k3k23 | CCCCC9 ] -> [ background | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q85\n[ > k33k3k23 | CCCCC10 ] -> [ background | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q86\n\n[ > TTTTs | k33k3k23 ] -> [ Background | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q87\n\nright [ > Faces | FFFFFF ] -> [ sidefaceleft | FFFFFF2 ] Message THIS IS A MESSAGE q88\nleft [ > Faces | FFFFFF ] -> [ sidefaceright | FFFFFF2 ] Message THIS IS A MESSAGE q89\nup [ > faces | FFFFFF ] -> [ sidefaceup | FFFFFF2 ] Message THIS IS A MESSAGE q90\ndown [ > faces | FFFFFF ] -> [ sidefacedown | FFFFFF2 ] Message THIS IS A MESSAGE q91\n\n\n[ > Faces | FFFFFF2 ] -> [ Faces | FFFFFF3 ] \n[ > Faces | FFFFFF3 ] -> [ Faces | FFFFFF4 ]\n[ > Faces | FFFFFFs ] -> [ | KKKK ] \n[ > Faces | SSSSQQQQQQQQion ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 101\n\n[ > VVVV | GGG ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 102\n\n[ > CCCCC | DDDDs ] -> [ CCCCC | DDDDs ] Message THIS IS A MESSAGE\n[ > DDDDs | CCCCC | DDDDs ] -> [ DDDDs | SSSSQQQQQQQQion | DDDDs ] Message THIS IS A MESSAGE 103\n[ > CCCCC | DDDDs | DDDDs ] -> [ KKKK | | ] Message THIS IS A MESSAGE.104\n\n[ > CCCCC | EEEE ] -> [ CCCCC | EEEE ] Message THIS IS A MESSAGE.105\n[ > CCCCC | stuff ] -> [ CCCCC | stuff ] Message THIS IS A MESSAGE.106\n[ > stuff | CCCCC ] -> [ stuff | CCCCC ] Message THIS IS A MESSAGE.107\n\n( slaps fade )\n[ if90345if0934i90f343 ] -> [ face ]\n[ if90345if0934i90f342 ] -> [ if90345if0934i90f343 ]\n[ if90345if0934i90f34 ] -> [ if90345if0934i90f342 ]\n\n[ blackGGG2 ] -> [ GGG ]\n[ blackGGG ] -> [ blackGGG2 ]\n\n[ blackGGG2 ] -> [ blackGGG ]\n[ blackGGG ] -> [ blackGGG2 ]\n\n[ HHHHHHdGGG2 ] -> [ blackGGG ]\n[ HHHHHHdGGG ] -> [ HHHHHHdGGG2 ]\n\n[ blackDDDD2 ] -> [ DDDD ]\n[ blackDDDD3 ] -> [ blackDDDD2 ]\n[ blackDDDD4 ] -> [ blackDDDD3 ] \n\n(erections too)\n[ CCCCC2 ] -> [ CCCCC ]\n[ CCCCC3 ] -> [ CCCCC2 ]\n[ CCCCC4 ] -> [ CCCCC3 ]\n[ CCCCC5 ] -> [ CCCCC4 ]\n[ CCCCC6 ] -> [ CCCCC5 ]\n[ CCCCC7 ] -> [ CCCCC6 ]\n[ CCCCC8 ] -> [ CCCCC7 ]\n[ CCCCC9 ] -> [ CCCCC8 ]\n[ CCCCC10 ] -> [ CCCCC9 ]\n\n\n( faces and EEEE parts )\nright [ > Faces | GGGs ] -> [ Sidefaceleft | GGGs ]\nleft [ > Faces | GGGs ] -> [ Sidefaceright | GGGs ]\nup [ > sidefaceup2 | GGGs ] -> [ | KKKK ] Message THIS IS A MESSAGE.108\nup [ > Faces | GGGs ] -> [ Sidefaceup2 | GGGs ] Message THIS IS A MESSAGE.109\ndown [ > Faces | GGGs ] -> [ Sidefacedown | GGGs ] \n\n\nright [ > Faces | DDDDs ] -> [ Sidefaceleft | DDDDs ]\nleft [ > Faces | DDDDs ] -> [ Sidefaceright | DDDDs ]\nup [ > Faces | DDDDs ] -> [ Sidefaceup | DDDDs ] \ndown [ > Faces | DDDDs ] -> [ Sidefacedown | DDDDs ]\n\n[ > DDDDs | faces | DDDDs ] -> [ DDDDs | faces | DDDDs ] Message THIS IS A MESSAGE.110\n\nright [ > Faces | TTTTs ] -> [ Sidefaceleft | TTTTs ]\nleft [ > Faces | TTTTs ] -> [ Sidefaceright | TTTTs ]\nup [ > Faces | TTTTs ] -> [ Sidefaceup | TTTTs ] Message THIS IS A MESSAGE.111\ndown [ > Faces | TTTTs ] -> [ Sidefacedown | TTTTs ] Message THIS IS A MESSAGE.112\n\n[ > Sidefacedown | TTTTs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE.113\n\n(intro level)\nright [ > player | housewalltop ] -> [ player | housewalltop ] Message THIS IS A MESSAGE.114\nleft [ > player | housewalltop ] -> [ player | housewalltop ] Message THIS IS A MESSAGE.115\nright [ > player | housewallIIIII ] -> [ player | housewallIIIII ] Message THIS IS A MESSAGE.116\nleft [ > player | housewallIIIII ] -> [ player | housewallIIIII ] Message THIS IS A MESSAGE.117\n\n[ flowertrigger ] [> player | flowers ] -> [flowertrigger2] [ player | flowers ] Message THIS IS A MESSAGE.118\n[ flowertrigger2 ] [> player | flowers ] -> [ ] [ player | flowers ] Message THIS IS A MESSAGE.119\n\n[ > player | pathmessage1 ] -> [ > player | path ] Message THIS IS A MESSAGE.120\n[ > player | pathmessage2 ] -> [ > player | path ] Message THIS IS A MESSAGE.121\n\n[ outdoortarget ] [ > player | door ] -> [ outdoors ] [ > player | door ]\n\n(explanations)\n[ > player | intro ] -> [ > player | background ] Message THIS IS A MESSAGE.122\n[ > player | intro2 ] -> [ > player | background ] Message THIS IS A MESSAGE.123\n[ > player | intro3 ] -> [ > player | background ] Message THIS IS A MESSAGE.124\n[ > player | intro4 ] -> [ > player | background ] Message THIS IS A MESSAGE.125\n\n[ > player | outdoormessage1 ] -> [ > player | outdoors ] Message THIS IS A MESSAGE.126\n[ > player | outdoormessage2 ] -> [ > player | outdoors ] Message THIS IS A MESSAGE.127\n[ > player | outdoormessage3 ] -> [ > player | outdoors ] Message THIS IS A MESSAGE.128\n\n\n\n( ZZZZZZ, wanking, CCCCCes otherwise unaddressed ) \n[ > SSSSQQQQQQQQion | GGGs ] -> [ | KKKK ] Message THIS IS A MESSAGE.129\n[ > SSSSQQQQQQQQion | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE.130\nup down [ > SSSSQQQQQQQQion | faces ] -> [ | KKKK ] Message THIS IS A MESSAGE.131\nleft right [ > SSSSQQQQQQQQion | faces ] -> [ | KKKK ] Message THIS IS A MESSAGE.132\n[ > SSSSQQQQQQQQion | EEEE ] -> [ SSSSQQQQQQQQion | EEEE ] Message THIS IS A MESSAGE.133\n\n[ > CCCCC | VVVV ] -> [ | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.134\n[ > VVVV | CCCCC ] -> [ | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.135\n\n\n( TTTTopalypse )\n[ SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion ] -> [ d123d12d12derTTTT | d123d12d12derTTTT | d123d12d12derTTTT | d123d12d12derTTTT ] Message THIS IS A MESSAGE.136\n[ > SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion ] -> [ SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.137\n[ > SSSSQQQQQQQQion | SSSSQQQQQQQQion ] -> [ SSSSQQQQQQQQion | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.138\n\n[ d123d12d12derZZZZZZ2 ] -> [ d123d12d12derZZZZZZ3 ]\n[ d123d12d12derZZZZZZ1 ] -> [ d123d12d12derZZZZZZ2 ]\n\n[ | d123d12d12derZZZZZZ3 ] -> [ d123d12d12derZZZZZZ1 | d123d12d12derZZZZZZ3 ] \n[ | d123d12d12derZZZZZZ2 ] -> [ d123d12d12derZZZZZZ1 | d123d12d12derZZZZZZ2 ]\n[ | d123d12d12derTTTT ] -> [ d123d12d12derZZZZZZ1 | d123d12d12derTTTT ]\n\n[ d123d12d12derTTTT | ] -> [ d123d12d12derTTTT | d123d12d12derZZZZZZ1 ] \n\n(tuteYYYYYYYs) \n\n[ RRRRRRQQQQQQQQion ] [ tuteRRRRRRQQQQQQQQion ] -> [ RRRRRRQQQQQQQQion ] [ RRRRRRQQQQQQQQion] \n[ SSSSQQQQQQQQion ] [ tuteSSSSQQQQQQQQion ] -> [ SSSSQQQQQQQQion ] [ SSSSQQQQQQQQion ]\n[ OOOOe ] [ tuteOOOOe ] -> [ OOOOe ] [ OOOOe ]\n\n[ > player | tuteOOOOe ] -> [ > player | OOOOe ] Message THIS IS A MESSAGE.139\n[ > player | tuteSSSSQQQQQQQQion ] -> [ > player | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.140\n[ > player | tuteRRRRRRQQQQQQQQion ] -> [ > player | RRRRRRQQQQQQQQion ] Message THIS IS A MESSAGE.141\n \n[ > XXXXglass | YYYYYYYs ] -> [ XXXXglass | YYYYYYYs ] Message THIS IS A MESSAGE.142\n\n[ > YYYYYYYs | WWWW ] -> [ | WWWW ] Message THIS IS A MESSAGE.143\n\n[ > phone | EEEE ] -> [ > phone | EEEE ] Message THIS IS A MESSAGE.144\n\n[ > GGGs | GGGs ] -> [ GGGs | GGGs ] Message THIS IS A MESSAGE.145\n[ > GGGs | GGGs | GGGs ] -> [ GGGs | GGGs | GGGs ] Message THIS IS A MESSAGE.146\n[ > GGGs | GGGs | GGGs| GGGs ] -> [ GGGs | GGGs | GGGs | GGGs ] Message THIS IS A MESSAGE.147\n[ > GGGs | GGGs | GGGs | GGGs| GGGs ] -> [ GGGs | GGGs | GGGs | GGGs | GGGs ] Message THIS IS A MESSAGE.148\n\n==============\nWINCONDITIONS\n==============\n\nNo Target \nno outdoortarget \n\n=======\nLEVELS\n=======\n\nMessage AAAw1\n\nZJJ,NNNNNNNNN,JJJ\nJ,,,KKKKGKKKK,,,,\nJ,,,,,,JRJ,,,,,,,\nJ,,,,,,JRJJJ,,,,,\n,,,,,,,JDRRRJ,,,,\n,,,8,,,,JJJCRJ,,J\n,,,,,,,,,,JJRJ,,J\n,,,JJ,,,,,,,RJ*,J\n\",,,JJ,,,,,,R,,,,\n\n\nMessage AAAw2\n\n#eQe##I#T#9#Y#£#&#\n#eee#.............\n#eee#......P......\n#e+e#...P.....P...\n#e!e#......[......\n#e!e#######*######\n#123#,,,,J,R,,,,,,\n\nMessage AAAw3\n#eQe#..O...OO...O.\n#eee#..O.O..O..O..\n#e+e#.............\n#e!e#.I..%...}..{.\n#e!e#.............\n#e!e#.Y..%...}..{.\n#e!e#......]......\n#e!e#######*######\n#123#,,,,J,R,,,,,,\n\n\n\nMessage AAAw4\n\n#eQe#.....B.B.....\n#eee#.0.P.....A.A.\n#eee#.....5.5.....\n#eee#.O.4..5..5.P.\n#e+e#.............\n#e!e#..5..4.4..5..\n#e!e#......-......\n#e!e#######*######\n#e!e#,,,,J,R,,,,,,\n#123#,,S,,,R,J,J,,\n\n\nMessage AAAw5\n\n#eQe#.............\n#eee#.0..T...7..5.\n#eee#......M.$....\n#e+e#.B..I..$L$.A.\n#e!e#......F.$....\n#e!e#.O..Y...4..P.\n#e!e#.............\n#e!e#######*######\n#e!e#,,,,J,R,,,,,,\n#123#,,S,,,R,J,J,,\n\nMessage AAAw6\n\n#eQe#.....A.O...P.B.....\n#eee#.M.5..I..T..B..A.P.\n#eee#..U.....5.P.....A..\n#eee#.0.O..M..F..4..0.5.\n#eee#..I..L.......P..O..\n#eee#.A.U..7..O..P..0.T.\n#eee#..7.....4.5.....B..\n#eee#.P.Y..P..B..0..O.I.\n#e+e#........._.........\n#e!e##########*#########\n#e!e#,,,,,,,J,R,,,,,,,,,\n#e!e#,,,W,,,,,R,J,J,,,,,\n#123#,,,,,,,,JRRRRJ,,,,,\n\nMessage AAAw7\n\n\n",["line 744 : Sprites must be 5 wide and 5 high.","line 752 : Sprites must be 5 wide and 5 high.","line 1038 : You named an object \"[\", but this is a keyword. Don't do that!","line 1039 : You named an object \"]\", but this is a keyword. Don't do that!","line 1159 : Object \"BBBNNNPLAYER\" included in multiple collision layers ( layers #4, #6 ). You should fix this!","line 742 : Sprite graphics must be 5 wide and 5 high exactly.","line 750 : Sprite graphics must be 5 wide and 5 high exactly."],0] ], [ "crash bug when 'blank project' is selected #738", diff --git a/src/tests/resources/testdata.js b/src/tests/resources/testdata.js index 16922f15d..39f9a08b0 100644 --- a/src/tests/resources/testdata.js +++ b/src/tests/resources/testdata.js @@ -729,8 +729,8 @@ var testdata = [ ["title Aaaah! I'm Being Attacked by a Giant Tentacle!\nauthor Ricky Liu\nhomepage www.puzzlescript.net\n\nnoaction\nrealtime_interval 0.6\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\n#ccc #ddd #bee\n10000\n12220\n12220\n12220\n11110\n\nWall\n#555 #444 #333 #222\n00220\n11001\n02220\n00011\n31113\n\n\nFire\nOrange Yellow DarkBrown\n.0.0.\n000..\n0100.\n.010.\n2.2.2\n\nFire2\nOrange Yellow DarkBrown\n0..0.\n..000\n.0010\n.010.\n2.2.2\n\nPlayer\nBrown #fda Purple pink black\n.000.\n.111.\n22222\n22222\n.434.\n\n\nSweatR\n#6af\n.....\n0....\n.0...\n.....\n.....\n\nSweatL\n#6af\n.....\n....0\n...0.\n.....\n.....\n\nDeadPlayer\nBlack\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nLivePlayer\nBrown #fda Red Blue Black\n.000.\n.111.\n22222\n.333.\n.4.4.\n\nAsh\nDarkGray\n...0.\n.0...\n..0..\n.000.\n00000\n\nPrev\ntransparent\n\nPrevU\npurple pink\n.000.\n.000.\n.000.\n.....\n.....\n\nPrevD\npurple pink\n.....\n.....\n.000.\n.000.\n.000.\n\nPrevL\npurple pink\n.....\n000..\n000..\n000..\n.....\n\nPrevR\npurple pink\n.....\n..000\n..000\n..000\n.....\n\nNextU\npurple pink\n.001.\n.001.\n.000.\n.....\n.....\n\nNextD\npurple pink\n.....\n.....\n.000.\n.100.\n.100.\n\nNextL\npurple pink\n.....\n110..\n000..\n000..\n.....\n\nNextR\npurple pink\n.....\n..000\n..000\n..011\n.....\n\nNextU2\npurple pink\n..001\n..001\n..00.\n.....\n.....\n\nNextD2\npurple pink\n.....\n.....\n.00..\n100..\n100..\n\nNextL2\npurple pink\n11...\n000..\n000..\n.....\n.....\n\nNextR2\npurple pink\n.....\n.....\n..000\n..000\n...11\n\nTemp\ntransparent\n\nRNG1\ntransparent\n\nRNG2\ntransparent\n\nTick\ntransparent\n\n=======\nLEGEND\n=======\n. = Background\nP = Player and PrevL\nF = Fire\n# = Wall\nu = PrevU\nd = PrevD\nl = PrevL\nr = PrevR\n\nObstacle = Wall or Prev\nNext = NextU or NextD or NextL or NextR or NextU2 or NextD2 or NextL2 or NextR2\nRNG = RNG1 or RNG2\nSweats = SweatL or SweatR\n\n=======\nSOUNDS\n=======\n\nSFX0 8062509\nDeadPlayer create 73802302\nEndLevel 70964300\nStartGame 70964300\n(SFX1 94383907)\n\n================\nCOLLISIONLAYERS\n================\nBackground\nRNG1, RNG2\nTick\nTemp\nPrev\nPrevU, PrevD, PrevL, PrevR\nNext\nFire, Fire2, Ash\nPlayer, DeadPlayer, LivePlayer, Wall\nSweats\n\n\n======\nRULES \n======\n\n[stationary Player] -> [Player Tick]\n\n(simplify)\n[PrevU] -> [Up Prev]\n[PrevD] -> [Down Prev]\n[PrevL] -> [Left Prev]\n[PrevR] -> [Right Prev]\n[Next] -> []\n[Fire2] -> [Fire]\n[Sweats] -> []\n\n(calculate movement)\n[> Player > Prev | Prev] -> [ | Player Prev] (SFX1)\n[> Player | Obstacle] -> cancel\n[ | < Player > Prev] -> [Player > Prev| > Prev] (SFX1)\n[Moving Player] -> [Moving Player Moving Temp] (SFX1)\n\n[Perpendicular Temp > Prev | ] -> [Perpendicular Temp > Prev | Perpendicular Temp]\n[> Temp > Prev | ] -> [> Temp > Prev | Temp]\n[> Temp | Obstacle no Temp] [Player Temp] -> [ | Obstacle] [Player no Temp]\n[Player no Temp] [Temp] -> [Player] [no Temp]\n[> Player no Temp | ] -> [ | Player < Prev]\n[> Player > Temp Perpendicular Prev | ] -> [ | Player Perpendicular Prev]\n[> Temp Perpendicular Prev | ] -> [ | Perpendicular Prev]\n[> Temp > Prev | Temp] -> [ | ]\n[ | < Temp > Prev ] -> [> Prev | > Prev]\n[Temp] -> []\n\n(check fire)\n[Player Prev Fire] -> [DeadPlayer Prev Fire]\n[Player Prev] [Prev Fire] -> [LivePlayer Ash] [Prev Fire]\n[Prev Fire] [Prev no Fire] -> [Prev Fire] [Ash]\n[Prev Fire] -> [Ash]\n\n(draw)\n[Up Prev] -> [PrevU]\n[Down Prev] -> [PrevD]\n[Left Prev] -> [PrevL]\n[Right Prev] -> [PrevR]\nUp [PrevU | ] -> [PrevU | NextD]\nDown [PrevD | ] -> [PrevD | NextU]\nLeft [PrevL | ] -> [PrevL | NextR]\nRight [PrevR | ] -> [PrevR | NextL]\n\n(animation)\n[Tick] [RNG] -> [Tick] []\n\n[Tick] [Fire no RNG] -> [Tick] [Fire random RNG]\n[Fire RNG2] -> [Fire2 RNG2]\n\n[Tick] [Player no RNG] -> [Tick] [Player random RNG]\n[Tick] [Player RNG2] -> [Tick] [Player]\n[Tick] [Player no RNG] -> [Tick] [Player random RNG]\nright [Player RNG2 | ] -> [Player | SweatR]\n[Tick] [Player no RNG] -> [Tick] [Player random RNG]\nleft [Player RNG2 | ] -> [Player | SweatL] SFX0\n\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[Tick] [Next RNG2] -> [Tick] [Next]\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[Tick] [Next RNG2] -> [Tick] [Next]\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[Tick] [Next RNG2] -> [Tick] [Next]\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[NextU RNG2] -> [NextU2 RNG2]\n[NextD RNG2] -> [NextD2 RNG2]\n[NextL RNG2] -> [NextL2 RNG2]\n[NextR RNG2] -> [NextR2 RNG2]\n\n[Tick] -> []\n\n\n\n==============\nWINCONDITIONS\n==============\nSome LivePlayer\n\n======= \nLEVELS\n=======\n\nMessage Level 1: Aaaah!\n\n############\n#..........#\n#..........#\nlllp.......#\n#..........#\n#........#.#\n#..........#\n#..........#\n#....f.....#\n#....#.....#\n#..........#\n############\n\nMessage Level 2: Aaaaah!\n\n############\nlllp.......#\n#..........#\n#..........#\n#...##.##..#\n#.......#..#\n#...#f.....#\n#...##.##..#\n#..........#\n#..........#\n############\n\n\nMessage Level 3: Aaaaaah!\n\n###################\n##...............##\n#.................#\n#.................#\n#......######.....#\n#.......####......#\n#....#...##.......#\nlllp.##......#....#\n#.....##....##....#\n#......#.f.##.....#\n#......#####......#\n#.................#\n#.................#\n##................#\n###################\n\n\nMessage Level 4: Aaaaaaah!\n\n##############\n#............#\n#............#\nlllp.........#\n#............#\n#.....#......#\n#............#\n#........#...#\n#............#\n#...........f#\n##############\n\nMessage Level 5: Aaaaaaaah!\n\n#################\nlllp........#####\n#...........#####\n#...........#####\n#...........#####\n#...........#####\n#..#..#..#..##..#\n#...........#..f#\n#..............##\n#.............###\n#################\n\nMessage Level 6: Aaaaaaaaah!\n\n##################\n#................#\n#................#\nlllp.............#\n#................#\n#....#..#..#.....#\n#................#\n#................#\n#....#..#..#.....#\n#................#\n#................#\n#................#\n#................#\n#...............f#\n##################\n\n\nMessage Level 7: Aaaaaaaaaah!\n\n###################\nlllp......#########\n#.........#########\n#.........#########\n#.........#########\n#.#.#.#.#.#########\n#.........#########\n#.........#########\n##.........########\n###.........#######\n#####.......#######\n######.......######\n#######.......#####\n#########.....#####\n##########.....####\n###########.....###\n#############...###\n##############...##\n###############...#\n################f.#\n###################\n\nMessage Level 8: Aaaaaaaaaaah!\n\n####################\n#..................#\n#.#................#\n#..................#\nlllp...............#\n#..................#\n#..................#\n#..................#\n#..................#\n#....######........#\n#.........#........#\n#.......#.#........#\n#.........#........#\n#.........#........#\n#.......#.#........#\n#..................#\n#..................#\n#..................#\n#..............#...#\n#..................#\n#..................#\n#..................#\n#..................#\n#f.................#\n####################\n\nMessage Level 9: Aaaaaaaaaaaah!\n\n##################\nlllp.............#\n#................#\n#.......#.#.#.#..#\n#..#.............#\n#.......#.#.#.#..#\n#..#.#...........#\n#.........#.#.#..#\n#..#.#.#.........#\n#...........#.#..#\n#..#.#.#.#.......#\n#.............#..#\n#..#.#.#.#.#f.#..#\n#...........###..#\n#................#\n#................#\n##################\n\nMessage Level 10: Aaaaaaaaaaaaah!\n\n###################\nlllp..#.....#.....#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.....#..f..#.....#\n###################\n\nMessage Ahhhh! Thanks for playing!\n",["tick",0,0,"tick",3,3,"tick",3,3,"tick",2,2,3,2,"tick",2,3,"tick",3,"tick",0,"tick"],"background wall:0,0,0,0,0,0,0,ash background rng1:1,0,0,0,0,0,0,0,0,0,background:2,2,\n2,2,2,1,2,2,2,2,2,0,0,0,2,2,2,2,2,2,1,\n2,2,2,2,2,2,0,0,2,2,2,2,2,2,1,2,2,2,2,\n2,2,0,0,2,2,2,2,1,1,1,2,2,2,2,2,2,0,0,\n2,2,2,2,1,0,0,2,2,2,2,2,2,0,0,2,2,2,2,\n1,2,0,0,2,2,2,2,2,0,0,2,2,2,0,1,1,1,0,\n0,0,2,2,2,0,0,2,2,2,0,0,2,1,background rng1:3,2,0,2,2,\n2,0,0,2,2,2,0,0,0,ash background:4,4,ash background deadplayer rng1:5,0,2,2,2,0,0,2,\n2,2,0,0,0,2,2,2,0,2,2,2,0,0,2,2,2,0,0,\n2,2,2,0,0,2,2,2,0,0,2,2,2,0,2,2,2,0,0,\n2,2,2,2,0,0,2,2,2,2,2,2,0,0,2,2,2,2,2,\n0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,2,2,\n2,2,2,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,\n2,2,2,2,2,2,2,0,0,0,2,2,2,2,2,2,2,2,2,\n2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",5,"1627777889846.471"] ], [ - `gallery: pornography for beginners`, - ["title Pornography for Beginners\nauthor Holly\nhomepage hollygramazio.net\n\nyoutube K5Yd1iOAzBA\ntext_color lightgrey\nbackground_color darkgreen\n\n========\nOBJECTS\n========\n\nPlayer\nYellow brown Blue DarkBlue darkbrown\n00000\n04140\n12221\n.333.\n.1.1.\n\nTrappedPlayer\nYellow brown Blue DarkBlue darkbrown darkbrown\n00005\n55150\n12525\n.553.\n.1.5.\n\nTrappedPlayer2\nYellow brown Blue DarkBlue darkbrown darkbrown\n00005\n55150\n12525\n.553.\n.1.5.\n\n\nTrappedPlayer3\nYellow brown Blue DarkBlue darkbrown darkbrown\n00000\n55140\n12521\n.553.\n.1.5.\n\nTrappedPlayer4\nYellow brown Blue DarkBlue darkbrown darkbrown\n00000\n55140\n12521\n.553.\n.1.5.\n\nTrappedPlayer5\nYellow brown Blue DarkBlue darkbrown darkbrown\n00000\n55140\n12555\n.333.\n.1.1.\n\nTrappedPlayer6\nYellow brown Blue DarkBlue darkbrown darkbrown\n00000\n55140\n12555\n.333.\n.1.1.\n\n\nBurnedplayer \nblack brown darkgrey grey red\n00000\n04140\n12221\n.333.\n.1.1.\n\nBurnedplayer2 \nblack darkgrey grey lightgrey red\n00000\n04140\n12221\n.333.\n.1.1.\n\nBurnedplayer3 \ndarkgrey grey lightgrey white red\n00000\n04140\n12221\n.333.\n.1.1.\n\nBurnedplayer4 \ndarkgrey grey lightgrey white red\n0.0.0\n.4.4.\n1.2.1\n.3.3.\n.....\n\n\n(Backgrounds)\n\nBackground\n#118033 #117733 \n11011 \n11011\n00000\n11011\n11011\n\nFlowertrigger\n#118033 green\n00010\n00100\n10000\n00001\n01000\n\n\nFlowertrigger2\n#118033 green\n00010\n00100\n10000\n00001\n01000\n\nOutdoors\n#118033 green\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage1\n#118033 green\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage2\n#118033 green\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage3\n#118033 green\n00010\n00100\n10000\n00001\n01000\n\nScoring\ndarkgrey grey\n00100\n00100\n11111\n00100\n00100\n\nIntro\n#118033 #117733 \n11011 \n11011\n00000\n11011\n11011\n\nIntro2\n#118033 #117733 \n11011 \n11011\n00000\n11011\n11011\n\nIntro3\n#118033 #117733 \n11011 \n11011\n00000\n11011\n11011\n\nIntro4\n#118033 #117733 \n11011 \n11011\n00000\n11011\n11011\n\nTarget\ndarkgrey grey\n00100\n00100\n11111\n00100\n00100\n\nOutdoortarget\n#118033 green\n00010\n00100\n10000\n00001\n01000\n\n(Penises)\n\nPenis\nBROWN darkbrown orange lightbrown #997700 #AA6600 \n..0..\n..2..\n..2..\n00200\n00.00\n\nPenisa\nBROWN darkbrown orange lightbrown #997700 #AA6600 \n..0..\n..2..\n..2..\n00200\n00.00\n\nPenisb\nBROWN darkbrown orange lightbrown #997700 #AA6600 \n..1..\n..2..\n..2..\n00200\n00.00\n\nPenisc\nBROWN darkred orange lightbrown #997700 #AA6600 \n..1..\n..2..\n..2..\n00200\n00.00\n\nPenisd\nBROWN #663399 orange lightbrown #997700 #AA6600 \n..1..\n..2..\n..2..\n00200\n00.00\n\nPenise\nBROWN pink orange lightbrown #997700 #AA6600 \n..1..\n..2..\n..2..\n00200\n00.00\n\nPenis2\nBROWN darkbrown orange lightbrown #997700 #AA6600 \n..0..\n..2..\n..2..\n00200\n00.00\n\nPenis3\nBROWN darkbrown orange lightbrown #997700 #AA6600 \n..0..\n..2..\n..2..\n00200\n00.00\n\nPenis4\nBROWN darkbrown orange lightbrown #997700 #AA6600 \n..0..\n..2..\n..2..\n00200\n00.00\n\nPenis5\nBROWN darkbrown orange lightbrown #997700 #AA6600 \n..0..\n..2..\n..2..\n00200\n00.00\n\nPenis6\nBROWN darkbrown orange lightbrown #997700 #AA6600 \n..0..\n..2..\n..2..\n00200\n00.00\n\nPenis7\nBROWN darkbrown orange lightbrown #997700 #AA6600 \n..0..\n..2..\n..2..\n00200\n00.00\n\nPenis8\nBROWN darkbrown orange lightbrown #997700 #AA6600 \n..0..\n..2..\n..2..\n00200\n00.00\n\nPenis9\nBROWN darkbrown orange lightbrown #997700 #AA6600 \n..0..\n..2..\n..2..\n00200\n00.00\n\nPenis10\nBROWN darkbrown orange lightbrown #997700 #AA6600 \n..0..\n..2..\n..2..\n00200\n00.00\n\nBurnedPenis\nDarkred darkgrey darkgrey \n..0..\n..2..\n..2..\n00200\n00.00\n\nBurnedPenis2\nDarkred darkgrey black \n.....\n..1..\n..2..\n00200\n00.00\n\nBurnedPenis3\nDarkred darkgrey darkgrey \n.....\n.....\n..1..\n11211\n.1.1.\n\nBurnedPenis4\nDarkred darkgrey darkgrey \n.....\n.....\n..1..\n.121.\n.....\n\n(boobs)\n\nBoob\npink orange brown lightbrown\n.331.\n31111\n31012\n11112\n.122.\n\nBoob2\npink orange brown lightbrown\n.331.\n31111\n31012\n11112\n.122.\n\nPinkBoob\nred #FF6666 darkred orange\n.331.\n31111\n31012\n11112\n.122.\n\nPinkBoob2\nred #FF6666 darkred orange\n.331.\n31111\n31012\n11112\n.122.\n\nPinkBoob3\nred #FF6666 darkred orange\n.331.\n31111\n31012\n11112\n.122.\n\nPinkBoob4\nred #FF6666 darkred orange\n.331.\n31111\n31012\n11112\n.122.\n\nBoobularity\nwhite blue purple lightgrey \n.331.\n31111\n31012\n11112\n.122.\n\nBoobularity2\nlightblue blue darkblue lightgrey \n.331.\n31111\n31012\n11112\n.122.\n\nBoobularity3\nwhite blue purple lightgrey \n.331.\n31111\n31012\n11112\n.122.\n\n\n(tutorial bodyparts) \n\nTutevagina\nBROWN darkbrown\n00100\n01010\n01010\n01010\n00100\n\nTutebum\nOrange Brown Darkbrown Black Lightbrown\n40000\n40040\n40240\n00200\n01.10\n\nTuteface\nDarkBrown Orange Blue Red\n00000\n02120\n01110\n01310\n0.1.0\n\n\n(vaginas)\n\nVagina\nBROWN darkbrown\n00100\n01010\n01010\n01010\n00100\n\nVagina2\nBROWN darkred\n00100\n01010\n01010\n01010\n00100\n\nVagina3\nBROWN darkred pink\n00100\n01210\n01210\n01210\n00100\n\nVagina4\nBROWN red pink\n00100\n01210\n01210\n01210\n00100\n\nVagina5\nBROWN red pink\n00200\n02120\n02120\n02120\n00200\n\n(fluids)\nUrine\nYELLOW lightbrown white orange\n..2..\n.200.\n20001\n20011\n.113.\n\nTuteurine\nYELLOW lightbrown white orange\n..2..\n.200.\n20001\n20011\n.113.\n\nTuteMaleEjaculation\nBROWN white darkbrown yellow orange\n.1.1.\n..1..\n..2..\n..0..\n.202.\n\nMaleEjaculation\nBROWN white darkbrown yellow orange\n.1.1.\n..1..\n..2..\n..0..\n.202.\n\nTuteFemaleEjaculation\nBROWN darkbrown white yellow\n..1..\n.101.\n.101.\n..3..\n.2.2.\n\nFemaleEjaculation\nBROWN darkbrown white yellow\n..1..\n.101.\n.101.\n..3..\n.2.2.\n\n\n(Cockopalypse)\nKillercock\nBROWN white darkbrown yellow orange\n.1.1.\n..1..\n..2..\n..0..\n.202.\n\nKillercum1\nwhite\n..0..\n00..0\n.0.0.\n..00.\n0.0.0\n\nKillercum2\nwhite\n0.0.0\n00..0\n.0.00\n0.00.\n0.0.0\n\nKillercum3\nwhite\n0000.\n0.000\n00000\n000.0\n0.000\n\n(Hands)\n\nHand\nOrange Brown \n01010\n01010\n01010\n0000.\n.000.\n\nFist\nOrange Brown \n01010\n00000\n00000\n.000.\n.000.\n\n(Bums)\n\nBum\nOrange Brown Darkbrown Black Lightbrown\n40000\n40040\n40240\n00200\n01.10\n\nPinkBum\nOrange Brown Darkbrown Black Lightbrown #FF6666 #dd3333 \n05005\n56056\n56256\n05250\n01.10\n\nRedBum\nOrange Brown Darkbrown Black Lightbrown #FF6666 #dd3333 \n55556\n56556\n56256\n06261\n01.10\n\nBruisedBum\nOrange Brown Darkbrown Black #FF6666 #dd3333 #dd3377 \n44446\n46446\n56256\n66256\n01.10\n\nPinkBum2\nOrange Brown Darkbrown Black Lightbrown #FF6666 #dd3333 \n05005\n56056\n56256\n05250\n01.10\n\nRedBum2\nOrange Brown Darkbrown Black Lightbrown #FF6666 #dd3333 \n55556\n56556\n56256\n06261\n01.10\n\nBruisedBum2\nOrange Brown Darkbrown Black #FF6666 #dd3333 #dd3377 \n44446\n46446\n56256\n66256\n01.10\n\nDildo\nPink Red\n..1..\n..0..\n..0..\n.101.\n.....\n\nStrapon\nOrange Darkbrown Brown Red Pink \n22422\n22422\n33433\n22.22\n22.22\n\n(faces)\n\nFace\nDarkBrown Orange Blue Red\n00000\n02120\n01110\n01310\n0.1.0\n\nSlappedFace\nDarkBrown Orange Blue Red #FF6666 \n00000\n02120\n04140\n04340\n0.1.0\n\nSlappedFace2\nDarkBrown Orange Blue Red #FF6666 \n00000\n02120\n04140\n04340\n0.1.0\n\nSlappedFace3\nDarkBrown Orange Blue Red #FF6666 \n00000\n02120\n04140\n04340\n0.1.0\n\nSidefaceleft\nDarkBrown Orange Blue Red\n0000.\n0121.\n01111\n01113\n0.1..\n\nSidefaceright\nDarkBrown Orange Blue Red\n.0000\n.1210\n11110\n31110\n..1.0\n\nSidefaceup\nDarkBrown Orange Blue Red\n..13..\n0111\n02111\n0111.\n00000\n\nSidefaceup2\nDarkBrown Orange Blue Red\n..13..\n0111\n02111\n0111.\n00000\n\nSidefacedown\nDarkBrown Orange Blue Red\n00000\n0111.\n02111\n0111.\n..13.\n\n(scoring)\n\nHead\nLightbrown Orange Brown Darkbrown darkgrey\n40304\n00311\n00212\n00123\n33333\n\nShaft\nLightbrown Orange Brown\n00112\n00112\n00112\n00112\n00112\n\nLefthair\nOrange Brown Darkbrown Black darkgrey grey\n44542\n11221\n52135\n42143\n41223\n\nMidhair\nOrange Brown Darkbrown Black Lightbrown\n44001\n14031\n41332\n43021\n33122\n\nRighthair\nOrange Brown Darkbrown Black darkgrey grey\n42544\n24512\n55215\n31124\n13524\n\n(stuff)\n\nMess\ngrey brown red green blue\n01234\n34021\n23140\n12403\n40312\n\n\nSocket\nwhite black darkgrey\n00100\n00100\n00000\n11011\n00000\n\nWeeglass\n#22BB55 orange yellow lightbrown\n02220\n03330\n.010.\n..0..\n.000.\n\nCumglass\n#22BB55 white yellow lightbrown\n00000\n01120\n.020.\n..0..\n.000.\n\nWineglass\n#22BB55 darkred red \n00000\n02220\n.010.\n..0..\n.000.\n\nPhone\ndarkgrey grey blue\n0000.\n0220.\n0000.\n0101.\n1010.\n\nRope\ndarkbrown lightbrown\n10...\n.1010\n10.01\n10..1\n.1110\n\nRope2\ndarkbrown lightbrown\n10...\n.1.10\n101.1\n10..1\n.1110\n\nRopewarning\nblack \n.....\n.....\n.....\n.....\n.....\n\nRopewarning2\nblack\n.....\n.....\n.....\n.....\n.....\n\n(admin)\n\nPorn\nBlue Yellow\n00001\n00010\n00100\n10100\n01000\n\nPorn2\nblue Yellow\n00001\n00010\n00100\n10100\n01000\n\nPorn3\nLightgreen White\n00001\n00010\n00100\n10100\n01000\n\nPorn4\nLightgreen White\n.0.0.\n0.0.0\n.0.0.\n1.1.0\n01.00\n\nWall\ndarkgrey grey\n01110\n01110\n01110\n01110\n01110\n\nBadPorn\nWhite Red\n10001\n01010\n00100\n01010\n10001\n\nBadPorn2\nYellow Red \n10001\n01010\n00100\n01010\n10001\n\nBadPorn3\nBrown DarkRed \n10001\n01010\n00100\n01010\n10001\n\nBadPorn4\nBrown DarkRed \n1.0.1\n.1.1.\n0.1.0\n.1.1.\n1.0.1\n\n(architecture)\n\nDoor\nred grey\n00000\n00000\n00010\n00000\n00000\n\nHousewalltop\n#777777 #666666 #555555 red #dd3333\n33333\n44444\n01210\n01210\n01210\n\nHousewallbottom\n#777777 #666666 #555555 #FF6666 red\n01210\n01210\n01210\n01210\n01210\n\nFlowers\n#118033 green #dd3333 blue yellow lightbrown\n30035\n02103\n24200\n02001\n01003\n\nPath\nwhite lightgrey\n00001\n00000\n01000\n00010\n00000\n\nPathmessage1\nwhite lightgrey\n00001\n00000\n01000\n00010\n00000\n\nPathmessage2\nwhite lightgrey\n00001\n00000\n01000\n00010\n00000\n\nFakeOutdoors\n#118033 green\n00010\n00100\n10000\n00001\n01000\n\n=======\nLEGEND\n=======\n\n, = Outdoors \n! = Shaft\n. = Background\n[ = Intro\n] = Intro2\n- = intro3\n_ = intro4\n* = Player\n# = Wall\n+ = Head\n0 = Face\n1 = Lefthair\n2 = Midhair\n3 = Righthair\n4 = Fist\n5 = Hand\n6 = Strapon\n7 = Dildo\nA = Vagina\nB = Bum\ne = Scoring\nF = FemaleEjaculation\nI = Wineglass\nL = Rope\nM = MaleEjaculation\nO = Boob\nP = Penis\nQ = Target\nT = Socket\nU = Urine \nX = Porn\nY = Phone \nZ = Outdoortarget\n9 = tutebum\n& = tutevagina \n£ = tuteface\n$ = ropewarning\n\" = flowertrigger\n' = flowertrigger2\n% = tuteurine\n{ = tutemaleejaculation\n} = tutefemaleejaculation\n(outdoors)\nG = Door \nJ = Flowers\nR = Path\nK = Housewallbottom\nN = Housewalltop\nC = pathmessage1\nD = Pathmessage2\n8 = Outdoormessage1\nS = Outdoormessage2\nW = Outdoormessage3\n\ngap = background or outdoors or path or outdoormessage2 or outdoormessage1 or outdoormessage3\n\nboobularities = boobularity or boobularity2 or boobularity3\nboobs = boob or boob2 or pinkboob or pinkboob2 or pinkboob3 or pinkboob4 \n\ncockopalypse = killercock or killercum1 or killercum2 or killercum3\npinkbums = pinkbum or pinkbum2\nredbums = redbum or redbum2\nvaginas = vagina or vagina2 or vagina3 or vagina4 or vagina5\nbruisedbums = bruisedbum or bruisedbum2\nslappedfaces = slappedface or slappedface2 or slappedface3\nslappedbums = pinkbums or redbums or bruisedbums\nfaces = Face or Sidefaceleft or Sidefaceright or Sidefaceup or sidefacedown or slappedfaces or sidefaceup2\nbums = Bum or pinkbums or redbums or bruisedbums\ncocks = penis or penis2 or penis3 or penis4 or penis5 or penis6 or penis7 or penis8 or penis9 or penis10 or penisa or penisb or penisc or penisd or penise\nropes = rope or rope2\n\nResults = porn or badporn or porn2 or badporn2 or porn2 or badporn2 or porn3 or badporn3 or porn4 or badporn4\nStuff = dildo or strapon or wineglass or phone or socket or weeglass or cumglass or ropes or mess\nArchitecture = wall or door \nFluids = urine or maleejaculation or femaleejaculation or weeglass or cumglass or tutefemaleejaculation or tutemaleejaculation or tuteurine\nscoretrack = scoring or head or shaft or lefthair or midhair or righthair or target or outdoortarget\n\nBody = Cocks or Hand or Bums or Boobs or Faces or Fist or Vaginas or BurnedPenis or burnedpenis2 or burnedpenis3 or burnedpenis4 or burnedplayer or burnedplayer2 or burnedplayer3 or burnedplayer4 or tutebum or tutevagina or tuteface \n\ntrappedplayers = trappedplayer or trappedplayer2 or trappedplayer3 or trappedplayer4 or trappedplayer5 or trappedplayer6\n\nStudio = flowers or housewalltop or housewallbottom \nPaths = path or pathmessage1 or pathmessage2 \n\nEverything = fluids or stuff or architecture or studio or paths or body or results or outdoors or scoretrack or player \n\n=======\nSOUNDS\n=======\n\nCocks move 81432307\nVaginas move 30911708\nBums move 76441308\nBoobs move 59578908\nHand move 83753708\nFist move 88751108\nFaces move 46152509\nBody move 53209307\n\nTrappedplayers move 62896704\n\nplayer cantmove 77916504\nporn create 97214303\nbadporn create 11123702\n\nMaleEjaculation move 51210708\nFemaleEjaculation move 30863108\nUrine move 80548907\n\nstuff move 34367907\n\nEndlevel 48242503\nEndgame 9005308\nclosemessage 71913507\nstartlevel 13337700\n\n================\nCOLLISIONLAYERS\n================\nBackground, \nOutdoors, Intro, Intro2, intro3, intro4, outdoormessage1, outdoormessage2, outdoormessage3 \nPaths\nPlayer, Body, Fluids, Results, stuff, architecture, studio, trappedplayers, \nScoretrack\nboobularities, burnedplayer, cockopalypse, fakeoutdoors, ropewarning, ropewarning2, flowertrigger, flowertrigger2\n======\nRULES\n======\n\n(everything that moves)\n[ > Player | Body ] -> [ > Player | > Body ]\n[ > Player | Fluids ] -> [ > Player | > Fluids ]\n[ > Player | Stuff ] -> [ > Player | > Stuff ]\n\n(disasters )\n[ boobularities ] -> [ randomdir boobularities ]\n[ everything | ... | boobularities ] -> [ > everything | ... | boobularities ]\n\n[ > everything | boobularity ] -> [ background | boobularity2 ] Message Watch out! The boobularity is sucking everything in with its mighty gravitational pull! \n[ > everything | boobularity2 ] -> [ | boobularity3 ]\n[ > everything | boobularity3 ] -> [ > everything | boobularity2 ]\n\n(facesitting)\n[ > vaginas | faces ] -> [ background | badporn ] Message oh my god you could SUFFOCATE someone like that! \n[ > bums | faces ] -> [ | badporn ] Message that's really not safe, what if someone died from having a bum on their face :( :( :(\n\n(one-offs)\n[ > boobs | wineglass ] -> [ boobs | wineglass ] Message you're going to get wine EVERYWHERE if you're not careful\n[ > wineglass | boob ] -> message I know what you read about Marie Antoinette or whoever but that's not gonna work, friend\n\n[ > fist | hand ] -> [ | badporn ] Message That seemed threatening to me! No threats - remember to remain fully compliant with all relevant laws!\n[ > hand | fist ] -> [ hand | fist ] Message Paper wraps stone...\n\n\n(penis level) \n\n[ > penis | tutebum ] -> [ | porn ] Message A bum! Excellent choice.\n[ > penis | tutevagina ] -> [ | porn ] Message Penis in vagina? Classic!\n[ > penis | tuteface ] -> [ | porn ] Message Great work! Remember what they say: a penis's PLACE? Why not try a FACE!\n\n\n(scoring)\n\n[ Porn4 ] -> [ ]\n[ Porn3 ] -> [ Porn4 ]\n[ Porn2 ] -> [ Porn3 ]\n\n[ Badporn4 ] -> [ ]\n[ Badporn3 ] -> [ Badporn4 ]\n[ Badporn2 ] -> [ Badporn3 ]\n\n[ Porn ] [ Shaft | Head | Scoring ] -> [ Porn2 ] [ Shaft | Shaft | Head ]\n[ Porn ] [ Shaft | Head | Target ] -> [ Porn2 ] [ Shaft | Shaft | Head ]\n[ Badporn ] [ Shaft | Shaft | Head ] -> [Badporn2] [ Shaft | Head | Scoring ]\n\n(dead things crumble to dust)\n[ burnedpenis4 ] -> [ ]\n[ burnedpenis3 ] -> [ burnedpenis4 ]\n[ burnedpenis2 ] -> [ burnedpenis3 ]\n[ burnedpenis ] -> [ burnedpenis2 ]\n\n[ burnedplayer4 ] -> [ ]\n[ burnedplayer3 ] -> [ burnedplayer4 ]\n[ burnedplayer2 ] -> [ burnedplayer3 ]\n[ burnedplayer ] -> [ burnedplayer2 ]\n\n\n( special breast instructions for level 2 )\n\nright [ > maleejaculation | boobs ] -> [ background | porn ] Message Great, cum all over those tits!\nleft [ > maleejaculation | boobs ] -> [ background | porn ] Message Quality ejaculation there buddy!\nup [ > maleejaculation | boobs ] -> [ background | porn ] Message Perfect! \ndown [ > maleejaculation | boobs ] -> [ background | porn ] Message That's it, spurt it out like a champion! All over those nice big breasts.\n\nright [ > boobs | maleejaculation ] -> [ background | porn ] Message Dipping the breasts in the cum? Sure!\nleft [ > boobs | maleejaculation ] -> [ background | porn ] Message That works!\nup [ > boobs | maleejaculation ] -> [ background | porn ] Message Putting ANYTHING in front of an ejaculating penis is sexy, we looked it up.\ndown [ > boobs | maleejaculation ] -> [ background | porn ] Message Looks good - mash those breasts right into that ejaculating penis!\n\nright [ > boobs | femaleejaculation ] -> [ background | badporn ] \nleft [ > boobs | femaleejaculation ] -> [ background | badporn ]\nup [ > boobs | femaleejaculation ] -> [ background | badporn ]\ndown [ > boobs | femaleejaculation ] -> [ background | badporn ]\n\nright [ > femaleejaculation | boobs ] -> [ background | badporn ] Message Noooo, female ejaculation is the WRONG ejaculation!\nleft [ > femaleejaculation | boobs ] -> [ background | badporn ] Message Watch out, don't get girlcum on you!\nup [ > femaleejaculation | boobs ] -> [ background | badporn ] message Sorry to be the bearer of bad news, but women's ejaculate is kinda icky :/\ndown [ > femaleejaculation | boobs ] -> [ background | badporn ] message Here's how to remember the rules on ejaculation. If it's from a COCK, it ROCKS! If it's from a VAGINA, decline 'er.\n\nright [ > urine | boobs ] -> [ background | badporn ] message do not WEE on a BOOB\nleft [ > urine | boobs ] -> [ background | badporn ] message Here's a mnemonic device for you: it's okay to KISS, it's forbidden to PISS.\nup [ > urine | boobs ] -> [ background | badporn ] message REMEMBER: urine is neither sexy nor permitted \ndown [ > urine | boobs ] -> [ background | badporn ] message Remember the three Ps: don't PISS on a PERSON in PORN!\n\nright [ > boobs | urine ] -> [ background | badporn ] Message Oooh, watch out, you don't want to get wee on you!\nleft [ > boobs | urine ] -> [ background | badporn ] message No watersports, ladies!\nup [ > boobs | urine ] -> [ background | badporn ] message Here's a handy mnemonic: One, Two, Three! Never get in wee!\ndown [ > boobs | urine ] -> [ background | badporn ] message I know you didn't MEAN to get your boob in that urine, but do be more careful\n\n\n(objects)\n\n[ > phone | urine ] -> [ > phone | urine ] Message Don't photograph urine! Remember: if it's DICK, take a PIC. If it's PISS, give it a MISS.\n\n\n[ > phone | femaleejaculation ] -> [ | porn ] Message You know, female ejaculation is a risky business, but if you're taking the picture from a safe distance, then why not!\n\n[ > phone | maleejaculation ] -> [ | porn ] Message Super-sexy picture you got there!\n[ > phone | boobs ] -> [ | porn ] Message Nice pic!\n\n[ > phone | cocks ] -> [ phone | cocks ] Message Nice, but could you get a picture that shows it mid-orgasm?\n\n[> Dildo | Wineglass ] -> [ Dildo | Wineglass ] Message A stylish substitute for a COCKtail umbrella! (See, because \"cock\" and \"cocktail\"...)\n[> Strapon | Wineglass ] -> [ Strapon | Wineglass ] Message That doesn't seem like fun.\n\n[> wineglass | socket ] -> [ | socket ] MESSAGE SHIT, did you... what did you do that for? Don't pour liquids in the POWER SOCKET oh my GOD\n[> weeglass | socket ] -> [ | socket ] MESSAGE SHIT, did you... what did you do that for? Don't pour liquids in the POWER SOCKET oh my GOD\n[> cumglass | socket ] -> [ | socket ] MESSAGE Did that make you happy? I sure hope so, because you're never doing it again.\n\n[ > fluids | phone ] -> [ | phone ] MESSAGE Well that phone isn't going to work again...\n[ > phone | wineglass ] -> [ | wineglass ] Message Stop breaking the props, that was a new phone!\n\n[> Cocks | Socket ] -> [ BurnedPenis | Socket ] Message ...I can't believe I have to tell you not to put your penis in an electrical socket. You can press R to restart the level...\n[> Cocks | Phone ] -> [ Cocks | Phone ] Message Nice try, but that's a phone! You can't put your penis there.\n[ > Cocks | Wineglass ] -> [ Cocks | Wineglass ] Message Sorry, champ. A wine glass is no place for a penis.\n\n[> player | hand | socket ] -> [ | burnedplayer | socket ] message You shouldn't have done that.\n[> player | fist | socket ] -> [ player | fist | socket ] message STOP! You're lucky your fist didn't fit!\n[> Body | Socket ] -> [ Background | Badporn ] Message STOP putting BODY PARTS in MAINS ELECTRICITY\n[> Socket | Body ] -> [ Background | Badporn ] Message I don't know how to explain this. There is no sexy use for MAINS ELECTRICITY on your BODY.\n\n[ > player | fluids | socket ] -> [ | burnedplayer | socket ] message ...oops...\n\n[> Phone | Vaginas ] -> [ Background | Vaginas ] Message Well, I hope it's set to \"vibrate\".\n[> Phone | Bums ] -> [ Background | Badporn ] Message Stop it. You could lose your nice new phone up there for ever.\n\n[ > weeglass | face ] -> [ | badporn ] Message Putting your piss in a wine glass doesn't make it classy OR porn-suitable, mate.\n[ > weeglass | body ] -> [ | badporn ] Message Stop it! What have I told you about wee?\n\n[ > cumglass | face ] -> [ | porn ] Message That's elaborate, but I've looked it up in the rules and it's definitely hot.\n[ > face | cumglass ] -> [ | porn ] Message There you go, drink it all up. It's probably delicious!\n[ > cumglass | vagina ] -> [ | vagina ] Message I hope that's a shatterproof glass, or this is a no-go!\n[ > cumglass | bum ] -> [ | badporn ] Message I don't mean to be a killjoy but that just seems really dangerous, guys.\n\n[ > wineglass | faces ] -> [ | faces ] Message Delicious!\n[ > faces | wineglass ] -> [ faces | ] Message Full-bodied with overtones of raspberry.\n\nup down [ > phone | stuff ] -> [ phone | stuff ] Message Are you Instagramming that?\nleft right [ > phone | stuff ] -> [ phone | stuff ] Message For a pornographer, your taste in things to photograph is pretty dull.\n\n\n\n[ > phone | face ] -> [ phone | face ] message Now you've got a picture to remember this day by for ever.\n[ > bums | phone ] -> [ bums | phone ] message Hello, who is that? Mum? Wait, no, I didn't call... oh sorry, butt dial.\n[ > face | phone ] -> [ face | phone ] message A telephone is not delicious.\n\n[ > dildo | socket ] -> [ dildo | socket ] Message You're lucky that dildo's made of rubber!\n\n\n[ > stuff | wineglass ] -> [ | wineglass ]\n[ > stuff | weeglass ] -> [ | weeglass ]\n[ > stuff | cumglass ] -> [ | cumglass ]\n\n\n( rope )\n\n[ trappedplayer6 ] -> [ player ] Message And you've RUINED the ropes as well. Let that be a lesson to you.\n[ trappedplayer5 ] -> [ trappedplayer6 ]\n[ trappedplayer4 ] -> [ trappedplayer5 ]\n[ trappedplayer3 ] -> [ trappedplayer4 ] \n[ trappedplayer2 ] -> [ trappedplayer3 ]\n[ trappedplayer ] -> [ trappedplayer2 ] Message Anyone would think you WANTED to be trapped.\n[ > player | ropes ] -> [ | < trappedplayer ] Message Oh come ON, we WARNED you about this.\n\n[ ropewarning ] [ ropewarning2 ] -> [ ropewarning2 ] [ ropewarning2 ]\n[ > player | ropewarning ] -> [ > player | ropewarning2 ] Message Watch out for that rope! It's very dangerous.\n\nup [ > stuff | ropes ] -> [ | mess ] Message Well you're never getting THAT tangle undone.\ndown [ > stuff | ropes ] -> [ | mess ] Message You've made a right mess of that.\nup [ > stuff | ropes ] -> [ | mess ] Message Tangling inanimate objects up in rope is not sexy! Stop doing it!\nup [ > stuff | ropes ] -> [ | mess ] Message Well you've ruined both of them. I hope you're happy.\n\n[ > boobs | ropes ] -> [ | porn ] Message Nice! See, you CAN use ropes responsibly. You just have to be very careful.\n[ > penis | ropes ] -> [ | porn ] Message Hrrrrrm. Sure.\n[ > vaginas | ropes ] -> [ | porn ] Message We'll let you have that one, but be careful with this tying-up business...\n[ > bums | ropes ] -> [ | porn ] Message ...you're tying up a bum. Well, points for ingenuity at least.\n[ > hand | ropes ] -> [ | badporn ] Message Watch out there! You can't tie up people's HANDS, it might look like they can't get out!\n[ > fist | ropes ] -> [ | badporn ] Message No, don't tie up people's hands! Especially fists, it looks so aggressive :(\n\n\n(basic sex acts)\n\nup down [ > Cocks | Vaginas ] -> [ | Porn ] Message Great sexing!\nleft right [ > Cocks | Vaginas ] -> [ | Porn ] Message Great sexing!\n\nup [ > Cocks | Faces ] -> [ | Porn ] Message Well done - shove it in that mouth!\nleft [ > Cocks | Faces ] -> [ | Porn ] Message Classic sex, classic porn.\ndown [ > Cocks | Faces ] -> [ | Porn ] Message Nothing fancy, but it's a good 'un. <3 \nright [ > Cocks | Faces ] -> [ | Porn ] Message You're doing so well!\n\nleft [ > Vagina | Cocks ] -> [ | Porn ] Message Nice!\nright [ > Vagina | Cocks ] -> [ | Porn ] \nup [ > Vagina | Cocks ] -> [ | Porn ] Message You're really getting the hang of this.\ndown [ > Vagina | Cocks ] -> [ | Porn ] \n[ > Cocks | Vaginas ] -> [ | Porn ] Message This qualifies as one of the best sex acts! You should be very proud of yourself.\nright [ > vagina | vagina ] -> [ vagina2 | vagina2 ] Message Ahhhh that's lovely :)\nleft up down [ > vagina | vagina ] -> [ vagina2 | vagina2 ]\ndown [ > vagina2 | vagina2 ] -> [ | Porn ] Message Some good old-fashioned sex, there. Delightful.\nleft up right [ > vagina2 | vagina2 ] -> [ | porn ]\n\n(dildos) \n[ > vagina3 | dildo ] -> [ background | porn ] \n[ > vaginas | dildo ] -> [ vagina3 | dildo ] Message In and out...\n\n[ > dildo | vaginas ] -> [ background | strapon ] Message Stylish strapon you've got there!\n\n\n[ > dildo | face ] -> [ dildo | face ] Message I'm not sure about that. Might be less weird if someone was wearing the dildo.\n[ > strapon | face ] -> [ | porn ] Message Nice! \n\n(strapons) \n[ > strapon | vaginas ] -> [ background | porn ] Message Complicated but sexy!\n[ > strapon | bums ] -> [ background | porn ] Message Firm and gentle does it.\n[ > strapon | boobs ] -> [ strapon | boobs ] Message I don't understand why you'd do that, but whatever.\n[ > strapon | faces ] -> [ background | porn ] \n\n[ > vaginas | strapon ] -> [ background | porn ] \n[ > bums | strapon ] -> [ background | porn ]\n[ > body | strapon ] -> [ body | strapon ]\n[ > faces | strapon ] -> [ faces | strapon ] Message Sure, lick it! Not sure it's ever going to qualify as full-on points-winning porn, though. \n\nup down [ > dildo | bums ] -> [ background | porn ] Message Great prop use, buddy! Dildo points for you!\nleft right [ > dildo | bums ] -> [ background | porn ] Message An accomplished wielder of the dildo. Awesome!\n\n[ > stuff | stuff | stuff | stuff ] -> [ stuff| stuff | stuff | stuff ] Message Well I guess now you can open a junk shop if the porn doesn't work out...\n\n\n(the hand's jobs)\n\n[ > Hand | Vagina ] -> [ Hand | Vagina2 ] Message Nice start! Keep going...\n[ > Hand | Vagina2 ] -> [ Hand | Vagina3 ] \n[ > Hand | Vagina3 ] -> [ Hand | Vagina4 ] \n[ > Hand | Vagina4 ] -> [ Hand | Vagina5 ]\nup [ > Hand | Vagina5 ] -> [ Background | Porn ] Message That was easy!\ndown [ > Hand | Vagina5 ] -> [ Background | Porn ] Message You're so good at this!\nleft [ > Hand | Vagina5 ] -> [ Background | Porn ] Message Orgasms for all! This is going to be the best porn ever.\nright [ > Hand | Vagina5 ] -> [ Background | Porn ] Message Lovely! A++\n\n[ > Hand | Hand ] -> [ Hand | Hand ] Message You DO deserve a round of applause, you're quite right!\nleft down [ > Fist | Fist ] -> [ Fist | Fist ] Message Fist-bumps for all!\nup right [ > Fist | Fist ] -> [ Fist | Fist ]\n\n(vaginas)\n\n[ > Vaginas | Bum ] -> [ Vaginas | Bum ] Message Is... is pushing a vagina into a bum sex? \n[ > Vaginas | Boob ] -> [ Vaginas | Boob ] Message What even is that, are you trying to trap a nipple with your vagina?\n\n(piss)\n\n[ > Urine | Cocks ] -> [ Background | Badporn ] Message Don't WEE on someone's PENIS. Ewwww.\n[ > Urine | Vaginas ] -> [ Background | Badporn ] Message Nope, nope, keep the urine AWAY from the vagina.\n[ > Urine | MaleEjaculation ] -> [ Background | Badporn ] \n[ > Urine | FemaleEjaculation ] -> [ Background | Urine ] Message Sure, pool your disgusting fluids!\n[ > Urine | Face ] -> [ Background | Badporn ] Message Do not WEE on a person's FACE. What is WRONG with you.\n[ > Urine | Hand ] -> [ Background | Badporn ] Message NOPE. And I hope you're going to wash that hand.\n[ > Urine | Fist ] -> [ Background | Badporn ] Message Stop that RIGHT NOW. Don't piss on body parts. How is that not clear?\n[ > Urine | Bums ] -> [ Background | Badporn ]\n\n[ > Urine | Urine ] -> [ | Urine ] \n\n[ > Urine | Body ] -> [ Background | Badporn ]\n[ > FemaleEjaculation | Body ] -> [ Background | Badporn ]\n\n[ > FemaleEjaculation | MaleEjaculation ] -> [ | Badporn ] Message Careful! Don't get those womanly juices anywhere important!\n[ > MaleEjaculation | FemaleEjaculation ] -> [ | Porn ] Message SeXXXy!\n\n[ > Cocks | Urine ] -> [ Background | Badporn ] Message ...did you just did your cock in a urinal? \n[ > Vaginas | Urine ] -> [ Background | Badporn ] Message Look, dipping your vulva in a vat of urine is an absurd logistical challenge and also not allowed, so stop it.\n[ > MaleEjaculation | Urine ] -> [ Background | Urine ] Message This is technically permitted but coming into a puddle of wee is pretty weird, mate. We'll be keeping an eye on you.\n[ > FemaleEjaculation | Urine ] -> [ Background | Urine ] Message Female ejaculate is basically just urine anyway, right? So, sure! No harm, no foul!\n[ > Face | Urine ] -> [ Background | Badporn ] Message NO. THIS IS NOT AN APPLE-BOBBING CONVENTION.\n[ > Hand | Urine ] -> [ Background | Badporn ] Message Are you a doctor? Is this medically necessary? No? Then wash your hands and step away from the piss.\n[ > Fist | Urine ] -> [ Background | Badporn ] Message Don't punch the vat of urine, it's gross and you'll get it everywhere.\n[ > Bum | Urine ] -> [ Background | Badporn ] \n\n(complicated things with glasses) \n\n[ > urine | wineglass ] -> [ | weeglass ]\n[ > femaleejaculation | wineglass ] -> [ | weeglass ]\n[ > maleejaculation | wineglass ] -> [ | cumglass ]\n\n[ > urine | cumglass ] -> [ | weeglass ]\n[ > femaleejaculation | cumglass ] -> [ | weeglass ]\n\n[ > maleejaculation | weeglass ] -> [ | cumglass ]\n\n\n(boobs)\n\n[ > Boobs | Cocks ] -> [ Boobs | Cocks ] Message Sure, mash your breast into that penis!\n\n[ > Boobs | Vaginas ] -> [ Boobs | Vagina ] Message This is confusing but sexy. Go for it!\n[ > Boobs | MaleEjaculation ] -> [ Boob | MaleEjaculation ] Message Go on, rub it around everywhere. We looked it up and basically anything to do with cum is permitted AND sexy.\n[ > Boobs | Face ] -> [ Boobs | Face ] Message Ahhh, lovely.\n[ > Boobs | Hand ] -> [ Boobs | Hand ] Message Not bad!\n[ > Boobs | Bum ] -> [ Boobs | Bum ] Message This is... probably fun!\n\n[ > Vaginas | Boobs ] -> [ Vaginas | Boob ]\n[ > MaleEjaculation | Boobs ] -> [ Background | Porn ] Message So much cum! A terrible mess, but pretty sexy.\n[ > MaleEjaculation | Face ] -> [ Background | Porn ] Message Just look at that cum, it's everywhere! Glorious. \n\n[ > Face | Boobs ] -> [ Face | Boobs ] Message BURY YOUR HEAD. NUZZLE! NUZZLE! \n[ > Boobs | Face | Boobs ] -> [ Boobs | Face | Boobs ] Message So soft and comforting...\n\n[ > Fist | Boobs ] -> [ Background | Badporn ]\n[ > Bum | Boobs ] -> [ Bum | Boobs ] Message I don't even know what you're doing.\n\n[ Boobs | Boobs | BoobS | Boobs | Boobs | Boobs | Boobs ] -> [ Background | Background | Background | Boobularity | Background | Background | Background ] Message ...oops. I guess the boob density got too great and we had a boob gravitational collapse...\n[ > Boobs | Boobs | Boobs | Boobs | Boobs | Boobs ] -> [ Boobs | Boobs | Boobs | Boobs | Boobs | Boobs ] Message We're approaching boob singularity!\n[ > Boobs | Boobs | Boobs | Boobs | Boobs ] -> [ Boobs | Boobs | Boobs | Boobs | Boobs ] Message YES, this is GREAT. MORE! MORE!\n[ > Boobs | Boobs | Boobs | Boobs ] -> [ Boobs | Boobs | Boobs | Boobs ] Message DON'T STOP BOOBING\n[ > Boobs | Boobs | Boobs ] -> [ Boobs | Boobs | Boobs ] Message Boobs for everyone!\n[ > Boobs | Boobs ] -> [ Boobs | Boobs ] Message One boob, two boobs! The more the merrier! Line 'em up!\n\n(kissing)\nright [ > Faces | Faces ] -> [ Sidefaceleft | Sidefaceright ] Message How romantic! \nleft [ > Faces | Faces ] -> [ Sidefaceright | Sidefaceleft ] Message This is CLASSY porn, y'know, with kissing and all.\nup [ > Faces | Faces ] -> [ Sidefaceup | Sidefacedown ] Message SPIDERMAN KISS\ndown [ > Faces | Faces ] -> [ Sidefacedown | Sidefaceup ] Message \n\n[ > Bums | Outdoors ] -> [ Background | Badporn ] Message Not in public! Have a little consideration!\n\nup down [ > Cocks | Bums ] -> [ Background | Porn ] Message Anal is a top three sex! WELL DONE.\nleft [ > Cocks | Bums ] -> [ Background | Porn ] Message Going for the bum again, I see!\nright [ > Cocks | Bums ] -> [ Background | Porn ] Message Ah, anal sex, the pizza of pornography.\n[ > Bums | Cocks ] -> [ Background | Porn ] Message Both sexy and admirably gentle.\n\n\n[ > Hand | Outdoors ] -> [ > Hand | > Outdoors ]\n[ > Vaginas | Outdoors ] -> [ Background | Badporn ]\n[ > Cocks | Outdoors ] -> [ Background | Badporn ]\n[ > MaleEjaculation | Outdoors ] -> [ Background | Badporn ]\n[ > FemaleEjaculation | Outdoors ] -> [ Background | Badporn ]\n[ > Urine | Outdoors ] -> [ | Outdoors ] Message Hmmm, can't say I approve but I guess it'll seep into the ground.\n\n[ > Vaginas | Path ] -> [ Background | Badporn ] Message Don't film in public! What's wrong with you?\n[ > Cocks | Path ] -> [ Background | Badporn ] Message Come on, at least get dressed first.\n[ > MaleEjaculation | Path ] -> [ Background | Badporn ] Message NOPE. Not outdoors.\n[ > FemaleEjaculation | Path ] -> [ Background | Badporn ] Message Female ejaculation is dodgy at the best of times, let along outside where everyone can see! Have some self-respect.\n[ > Urine | Path | Path | Path ] -> [ > Urine | Path | Path | Path ] Message People walk there! Don't be disgusting. \n\n\n[ > Outdoors | Faces | Faces ] -> [ Outdoors | Faces | Faces ] Message Making out in public! Nice! As long as it doesn't turn into anything saucier...\n\n\n(smacks and slaps)\nup down [ > Hand | Bum ] -> [ Hand | Pinkbum ] Message Again! Again! More spanking!\nleft right [ > Hand | Bum ] -> [ Hand | Pinkbum ] Message More! Keep going!\n[ > Hand | Pinkbums ] -> [Hand | Redbum ] Message This is so acceptably sexy! More! Harder!\n[ > Hand | Redbums ] -> [Hand | Bruisedbum ] Message Hmmm, steady on there...\n[ > Hand | Bruisedbums ] -> [Background | Badporn ] Message No, that is TOO MUCH SPANKING :(\n\n[> Hand | SlappedFaces ] -> [ Background | Badporn ] Message NO HITTING.\n[ > Hand | Faces ] -> [ Hand | SlappedFace ] Message ...careful, there.\n\n[> Faces | Hand ] -> [ Face | Hand ] Message I guess you're... nuzzling that hand? Sure. Cute.\n\n[ > Hand | Boob ] -> [ Hand | Boob2 ] Message This is FINE. You're just squeezing, right? No slapping, remember.\n[ > Hand | Boob2 ] -> [ Hand | Pinkboob4 ] Message NO SLAPPING.\n[ > Hand | Pinkboob ] -> [ Background | Badporn ] Message NO.\n[ > Hand | Pinkboob2 ] -> [ Background | Badporn ] Message NO.\n[ > Hand | Pinkboob3 ] -> [ Background | Badporn ] Message NO.\n[ > Hand | Pinkboob4 ] -> [ Background | Badporn ] Message NO.\n\n(fisting and punching)\n\n[> Fist | Faces ] -> [ Background | Badporn ] Message we have TALKED about this, you may only hit people in UNSEXY CONTEXTS\n[ > Fist | Vaginas ] -> [ Background | Badporn ] Message NO FISTING PAST THE FINAL KNUCKLE.\n[ > Fist | Bums ] -> [ Background | Badporn ] Message NO FISTING PAST THE FINAL KNUCKLE.\n\n[ > Body | Fist ] -> [ Body | Fist ] \n\n(remaining penises)\n[ > PenisA | PenisA ] -> [ PenisB | PenisB ]\n[ > PenisB | PenisB ] -> [ PenisC | PenisC ]\n[ > PenisC | PenisC ] -> [ PenisD | PenisD ]\n[ > PenisD | PenisD ] -> [ PenisE | PenisE ]\n[ > PenisE | PenisE ] -> [ | Porn ]\n[ > Cocks | Cocks ] -> [ PenisA | PenisA ] Message Nothin' wrong with a bit of gentle rubbing. Keep at it!\n\n[ > hand | penis ] -> [ hand | penis3 ] Message Keep going! Again!\n[ > hand | penis2 ] -> [ hand | penis5 ] Message Faster!\n[ > hand | penis3 ] -> [ hand | penis5 ] Message Faster!\n[ > hand | penis4 ] -> [ hand | penis7 ] Message That's it...\n[ > hand | penis5 ] -> [ hand | penis7 ] Message That's it...\n[ > hand | penis6 ] -> [ hand | penis9 ] Message So close...\n[ > hand | penis7 ] -> [ hand | penis9 ] Message So close...\n[ > hand | penis8 ] -> [ hand | penis10 ]\n[ > hand | penis9 ] -> [ background | maleejaculation ] Message OH MY GOD\n[ > hand | penis10 ] -> [ background | maleejaculation ] Message OH MY GOD\n\n[ > Cocks | Hand ] -> [ Background | MaleEjaculation ] Message Admirably efficient, friend.\n\nright [ > Faces | Vagina ] -> [ sidefaceleft | Vagina2 ] Message Lick away! Lick with every inch of your being!\nleft [ > Faces | Vagina ] -> [ sidefaceright | Vagina2 ] Message So nice! Do it again!\nup [ > faces | vagina ] -> [ sidefaceup | Vagina2 ] Message Keep going! More!\ndown [ > faces | vagina ] -> [ sidefacedown | Vagina2 ] Message Aaaaaa such a great tongue, don't stop using it now...\n\n\n[ > Faces | Vagina2 ] -> [ Faces | Vagina3 ] \n[ > Faces | Vagina3 ] -> [ Faces | Vagina4 ]\n[ > Faces | Vaginas ] -> [ | Porn ] \n[ > Faces | MaleEjaculation ] -> [ Background | Porn ] Message Yeah go on then, lick it all up.\n\n[ > Fist | Bum ] -> [ Background | Badporn ] Message NO FISTING. I DON'T WANT TO HAVE TO TELL YOU AGAIN.\n\n[ > penis | boobs ] -> [ penis | boobs ] Message Sorry, I think you need more boobs for that to work.\n[ > boobs | penis | boobs ] -> [ boobs | maleejaculation | boobs ] Message Ah, you're so ingenious! \n[ > penis | boobs | boobs ] -> [ porn | | ] Message Great multi-body-part porn \n\n[ > penis | body ] -> [ penis | body ] Message Ah come on, pick a better body part to put 'er on than THAT.\n[ > penis | stuff ] -> [ penis | stuff ] Message ...well I hope YOU enjoyed that, because it's not gonna make good porn, mate.\n[ > stuff | penis ] -> [ stuff | penis ] Message \"Weird Objects On A Penis\" might make a great tumblr, but it's not gonna sell a video. Sorry.\n\n( slaps fade )\n[ slappedface3 ] -> [ face ]\n[ slappedface2 ] -> [ slappedface3 ]\n[ slappedface ] -> [ slappedface2 ]\n\n[ pinkbum2 ] -> [ bum ]\n[ pinkbum ] -> [ pinkbum2 ]\n\n[ redbum2 ] -> [ pinkbum ]\n[ redbum ] -> [ redbum2 ]\n\n[ bruisedbum2 ] -> [ redbum ]\n[ bruisedbum ] -> [ bruisedbum2 ]\n\n[ pinkboob2 ] -> [ boob ]\n[ Pinkboob3 ] -> [ pinkboob2 ]\n[ pinkboob4 ] -> [ pinkboob3 ] \n\n(erections too)\n[ penis2 ] -> [ penis ]\n[ penis3 ] -> [ penis2 ]\n[ penis4 ] -> [ penis3 ]\n[ penis5 ] -> [ penis4 ]\n[ penis6 ] -> [ penis5 ]\n[ penis7 ] -> [ penis6 ]\n[ penis8 ] -> [ penis7 ]\n[ penis9 ] -> [ penis8 ]\n[ penis10 ] -> [ penis9 ]\n\n\n( faces and body parts )\nright [ > Faces | Bums ] -> [ Sidefaceleft | Bums ]\nleft [ > Faces | Bums ] -> [ Sidefaceright | Bums ]\nup [ > sidefaceup2 | Bums ] -> [ | Porn ] Message Super-good porning, everyone!\nup [ > Faces | Bums ] -> [ Sidefaceup2 | Bums ] Message As long as everyone's washed, this is A-OK with me! Don't give up! Stick that tongue up there again! \ndown [ > Faces | Bums ] -> [ Sidefacedown | Bums ] \n\n\nright [ > Faces | Boobs ] -> [ Sidefaceleft | Boobs ]\nleft [ > Faces | Boobs ] -> [ Sidefaceright | Boobs ]\nup [ > Faces | Boobs ] -> [ Sidefaceup | Boobs ] \ndown [ > Faces | Boobs ] -> [ Sidefacedown | Boobs ]\n\n[ > boobs | faces | boobs ] -> [ boobs | faces | boobs ] Message mmmmmmmm\n\nright [ > Faces | Cocks ] -> [ Sidefaceleft | Cocks ]\nleft [ > Faces | Cocks ] -> [ Sidefaceright | Cocks ]\nup [ > Faces | Cocks ] -> [ Sidefaceup | Cocks ] Message Ball-licking! Excellent work there.\ndown [ > Faces | Cocks ] -> [ Sidefacedown | Cocks ] Message Lovely.\n\n[ > Sidefacedown | Cocks ] -> [ Background | Porn ] Message Good lord, she swallowed it all! \n\n(intro level)\nright [ > player | housewalltop ] -> [ player | housewalltop ] Message A sturdy studio with no windows - perfect for private filming.\nleft [ > player | housewalltop ] -> [ player | housewalltop ] Message Nobody's going to wander in here by accident.\nright [ > player | housewallbottom ] -> [ player | housewallbottom ] Message You've got the studio for a few hours. Better get filming!\nleft [ > player | housewallbottom ] -> [ player | housewallbottom ] Message Yep, solid building there.\n\n[ flowertrigger ] [> player | flowers ] -> [flowertrigger2] [ player | flowers ] Message Watch out for the flowers!\n[ flowertrigger2 ] [> player | flowers ] -> [ ] [ player | flowers ] Message If you can't even follow the rules about treading on flowers, how do you expect to follow the rules about making porn?\n\n[ > player | pathmessage1 ] -> [ > player | path ] Message Sure, there are some new laws about what you can film, but they'll help you keep the porn SEXY instead of WEIRD.\n[ > player | pathmessage2 ] -> [ > player | path ] Message It's a shame to go inside on such a sunny day, but the satisfaction of other people's orgasms makes the job worth it.\n\n[ outdoortarget ] [ > player | door ] -> [ outdoors ] [ > player | door ]\n\n(explanations)\n[ > player | intro ] -> [ > player | background ] Message Each time you do something sufficiently sexy, the Scoring Penis will grow! Get it all the way up to the top to move to the next level...\n[ > player | intro2 ] -> [ > player | background ] Message Watch out - if you do something that breaks the new laws, then the Scoring Penis will deflate! Breaking the rules isn't sexy :(\n[ > player | intro3 ] -> [ > player | background ] Message Remember that a FLAT HAND is different to a FIST...\n[ > player | intro4 ] -> [ > player | background ] Message Look at all that! And you can shove whatever you want wherever you want it! As long as it doesn't violate the laws put in place for the protection of your own sexiness, of course.\n\n[ > player | outdoormessage1 ] -> [ > player | outdoors ] Message It's nice to be outside, but this porn won't film itself.\n[ > player | outdoormessage2 ] -> [ > player | outdoors ] Message A bit of fresh air is great for inspiration! You'll make even better porn now!\n[ > player | outdoormessage3 ] -> [ > player | outdoors ] Message Well, you've stretched your legs - must be time to stretch someone else's vagina!\n\n\n\n( cum, wanking, penises otherwise unaddressed ) \n[ > maleejaculation | bums ] -> [ | porn ] Message Awesome!\n[ > maleejaculation | vaginas ] -> [ | porn ] Message Sweet!\nup down [ > maleejaculation | faces ] -> [ | porn ] Message Aim for a good spread!\nleft right [ > maleejaculation | faces ] -> [ | porn ] Message Bullseye!\n[ > maleejaculation | body ] -> [ maleejaculation | body ] Message Pretty hot! Though not in our official list of porn acts, soz.\n\n[ > penis | fist ] -> [ | maleejaculation ] Message You don't mess around when it comes to a quick wank!\n[ > fist | penis ] -> [ | maleejaculation ] Message Grab 'n' go, it's the way to do it!\n\n\n( cockopalypse )\n[ maleejaculation | maleejaculation | maleejaculation | maleejaculation ] -> [ killercock | killercock | killercock | killercock ] Message OH NO IT'S GONE TOO FAR, IT'S THE COCKOPALYPSE :0 :0 :0\n[ > maleejaculation | maleejaculation | maleejaculation ] -> [ maleejaculation | maleejaculation | maleejaculation ] Message This is great! The more ejaculations the better! Nothing could possibly go wrong with this!\n[ > maleejaculation | maleejaculation ] -> [ maleejaculation | maleejaculation ] Message Brilliant! Line up the cocks!\n\n[ killercum2 ] -> [ killercum3 ]\n[ killercum1 ] -> [ killercum2 ]\n\n[ | killercum3 ] -> [ killercum1 | killercum3 ] \n[ | killercum2 ] -> [ killercum1 | killercum2 ]\n[ | killercock ] -> [ killercum1 | killercock ]\n\n[ killercock | ] -> [ killercock | killercum1 ] \n\n(tutefluids) \n\n[ femaleejaculation ] [ tutefemaleejaculation ] -> [ femaleejaculation ] [ femaleejaculation] \n[ maleejaculation ] [ tutemaleejaculation ] -> [ maleejaculation ] [ maleejaculation ]\n[ urine ] [ tuteurine ] -> [ urine ] [ urine ]\n\n[ > player | tuteurine ] -> [ > player | urine ] Message Hmmm, I hope you know what you're doing with that wee.\n[ > player | tutemaleejaculation ] -> [ > player | maleejaculation ] Message A nice big ejaculating penis - a key part of almost any porn!\n[ > player | tutefemaleejaculation ] -> [ > player | femaleejaculation ] Message Hmmm, careful with the ejaculating vagina - nobody REALLY even knows what that liquid is. It could be wee! It could be acid! It could be molten lava for all we know!\n \n[ > wineglass | fluids ] -> [ wineglass | fluids ] Message This isn't Celebrity Masterchef, friend.\n\n[ > fluids | rope ] -> [ | rope ] Message Well that was a puzzling decision, but you have some soaking wet rope now, I guess?\n\n[ > phone | body ] -> [ > phone | body ] message SNAPCHAT!\n\n[ > bums | bums ] -> [ bums | bums ] message Four buttocks!\n[ > bums | bums | bums ] -> [ bums | bums | bums ] message Six buttocks!\n[ > bums | bums | bums| bums ] -> [ bums | bums | bums | bums ] message Nine buttocks! No, wait, that can't be right, give me a sec... Eight buttocks!\n[ > bums | bums | bums | bums| bums ] -> [ bums | bums | bums | bums | bums ] message Ten buttocks! I feel like you might have reached the point of diminishing returns on the buttocks front.\n\n==============\nWINCONDITIONS\n==============\n\nNo Target \nno outdoortarget \n\n=======\nLEVELS\n=======\n\nMessage Time for another \"hard\" day at the porn factory!!\n\nZJJ,NNNNNNNNN,JJJ\nJ,,,KKKKGKKKK,,,,\nJ,,,,,,JRJ,,,,,,,\nJ,,,,,,JRJJJ,,,,,\n,,,,,,,JDRRRJ,,,,\n,,,8,,,,JJJCRJ,,J\n,,,,,,,,,,JJRJ,,J\n,,,JJ,,,,,,,RJ*,J\n\",,,JJ,,,,,,R,,,,\n\n\nMessage First things first: you've got three penises to deal with. See if you can find somewhere to put them all!\n\n#eQe##I#T#9#Y#£#&#\n#eee#.............\n#eee#......P......\n#e+e#...P.....P...\n#e!e#......[......\n#e!e#######*######\n#123#,,,,J,R,,,,,,\n\nMessage Next, let's look at all these breasts - we'd better do something with 'em! Maybe cover them with something sexy? \n#eQe#..O...OO...O.\n#eee#..O.O..O..O..\n#e+e#.............\n#e!e#.I..%...}..{.\n#e!e#.............\n#e!e#.Y..%...}..{.\n#e!e#......]......\n#e!e#######*######\n#123#,,,,J,R,,,,,,\n\n\nMessage This is going great! Next let's check up on your \"hand\"-yman skills...\n\n#eQe#.....B.B.....\n#eee#.0.P.....A.A.\n#eee#.....5.5.....\n#eee#.O.4..5..5.P.\n#e+e#.............\n#e!e#..5..4.4..5..\n#e!e#......-......\n#e!e#######*######\n#e!e#,,,,J,R,,,,,,\n#123#,,S,,,R,J,J,,\n\nMessage Now that you know most of the body parts... it must be time to try out the props!\n\n#eQe#.............\n#eee#.0..T...7..5.\n#eee#......M.$....\n#e+e#.B..I..$L$.A.\n#e!e#......F.$....\n#e!e#.O..Y...4..P.\n#e!e#.............\n#e!e#######*######\n#e!e#,,,,J,R,,,,,,\n#123#,,S,,,R,J,J,,\n\nMessage AMAZING. This porn is gonna be so hot. Now it's time for the final shoot... \n\n#eQe#.....A.O...P.B.....\n#eee#.M.5..I..T..B..A.P.\n#eee#..U.....5.P.....A..\n#eee#.0.O..M..F..4..0.5.\n#eee#..I..L.......P..O..\n#eee#.A.U..7..O..P..0.T.\n#eee#..7.....4.5.....B..\n#eee#.P.Y..P..B..0..O.I.\n#e+e#........._.........\n#e!e##########*#########\n#e!e#,,,,,,,J,R,,,,,,,,,\n#e!e#,,,W,,,,,R,J,J,,,,,\n#123#,,,,,,,,JRRRRJ,,,,,\n\nMessage Congratulations! Your porn is both mega-hot AND compliant with new legislation. And after all, there's nothing sexier than the law.\n\n",[2,2,1,1,1,1,0,1,0,1,1,1,1,0],"background outdoortarget:0,background flowers:1,1,1,background outdoors:2,2,2,2,background flowertrigger:3,1,2,2,2,2,2,2,2,\n2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,background outdoormessage1:4,2,\n1,2,background housewalltop:5,background housewallbottom:6,2,2,2,2,2,1,1,5,6,2,2,2,background outdoors player:7,\n2,2,1,5,6,2,2,2,2,2,2,2,5,6,1,1,1,\n2,2,2,2,5,background door:8,background path:9,9,background pathmessage2:10,1,2,2,2,5,6,1,1,\n9,1,2,2,2,5,6,2,1,9,1,1,2,2,5,6,2,\n1,9,background pathmessage1:11,1,2,2,5,6,2,2,1,9,9,9,9,2,2,\n2,2,2,1,1,1,2,1,2,2,2,2,2,2,background:12,2,1,\n2,2,2,2,2,2,2,2,1,2,2,2,2,1,1,1,2,\n",1,"1627777962827.728"] + `gallery: censored version of NSFW game pornography for beginners`, + ["title censored version of NSFW game by Holly Gramazio\nauthor Holly\nhomepage hollygramazio.net\n\nyoutube K5Yd1iOAzBA\ntext_color red\nbackground_color gray\n\n========\nOBJECTS\n========\n\nPlayer\nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nAAAApedPlayer\nblack black black black black black\n00005\n55150\n12525\n05530\n01050\n\nAAAApedPlayer2\nblack black black black black black\n00005\n55150\n12525\n05530\n01050\n\n\nAAAApedPlayer3\nblack black black black black black\n00000\n55140\n12521\n05530\n01050\n\nAAAApedPlayer4\nblack black black black black black\n00000\n55140\n12521\n05530\n01050\n\nAAAApedPlayer5\nblack black black black black black\n00000\n55140\n12555\n03330\n01010\n\nAAAApedPlayer6\nblack black black black black black\n00000\n55140\n12555\n03330\n01010\n\n\nBBBNNNplayer \nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nBBBNNNplayer2 \nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nBBBNNNplayer3 \nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nBBBNNNplayer4 \nblack black black black black\n00000\n04040\n10201\n03030\n.....\n\n\n(Backgrounds)\n\nBackground\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nFlowertrigger\ngreen black\n00010\n00100\n10000\n00001\n01000\n\n\nFlowertrigger2\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoors\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage1\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage2\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage3\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nScoring\nblack black\n00100\n00100\n11111\n00100\n00100\n\nIntro\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nIntro2\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nIntro3\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nIntro4\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nTarget\nblack black\n00100\n00100\n11111\n00100\n00100\n\nOutdoortarget\ngreen black\n00010\n00100\n10000\n00001\n01000\n\n(CCCCCes)\n\nCCCCC\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCCa\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCCb\nblack black black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCCc\nblack black black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCCd\nblack green black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCCe\nblack black black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCC2\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC3\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC4\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC5\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC6\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC7\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC8\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC9\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC10\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nBBBNNNCCCCC\nblack black black \n.000.\n.020.\n.020.\n00200\n00000\n\nBBBNNNCCCCC2\nblack black black \n.....\n.010.\n.020.\n00200\n00000\n\nBBBNNNCCCCC3\nblack black black \n.....\n.....\n.010.\n11211\n01010\n\nBBBNNNCCCCC4\nblack black black \n.....\n.....\n.010.\n01210\n.....\n\n(DDDDs)\n\nDDDD\nblack black black black\n03310\n31111\n31012\n11112\n01220\n\nDDDD2\nblack black black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD2\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD3\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD4\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nDDDDularity\nblack black black black \n03310\n31111\n31012\n11112\n01220\n\nDDDDularity2\nblack black black black \n03310\n31111\n31012\n11112\n01220\n\nDDDDularity3\nblack black black black \n03310\n31111\n31012\n11112\n01220\n\n\n(tutorial EEEEparts) \n\nTuteFFFFFF\nblack black\n00100\n01010\n01010\n01010\n00100\n\nTuteGGG\nblack black black black black\n40000\n40040\n40240\n00200\n01010\n\nTuteface\nblack black black black\n00000\n02120\n01110\n01310\n00100\n\n\n(FFFFFFs)\n\nFFFFFF\nblack black\n00100\n01010\n01010\n01010\n00100\n\nFFFFFF2\nblack black\n00100\n01010\n01010\n01010\n00100\n\nFFFFFF3\nblack black black\n00100\n01210\n01210\n01210\n00100\n\nFFFFFF4\nblack black black\n00100\n01210\n01210\n01210\n00100\n\nFFFFFF5\nblack black black\n00200\n02120\n02120\n02120\n00200\n\n(YYYYYYYs)\nOOOOe\nblack black black black\n.020.\n02000\n20001\n20011\n01130\n\nTuteOOOOe\nblack black black black\n.020.\n02000\n20001\n20011\n01130\n\nTuteSSSSQQQQQQQQion\nblack black black black black\n01010\n.010.\n.020.\n.000.\n02020\n\nSSSSQQQQQQQQion\nblack black black black black\n01010\n.010.\n.020.\n.000.\n02020\n\nTuteRRRRRRQQQQQQQQion\nblack black black black\n.010.\n01010\n01010\n.030.\n02020\n\nRRRRRRQQQQQQQQion\nblack black black black\n.010.\n01010\n01010\n.030.\n02020\n\n\n(TTTTopalypse)\nd123d12d12derTTTT\nblack black black black black\n01010\n.010.\n.020.\n.000.\n02020\n\nd123d12d12derZZZZZZ1\nblack\n.000.\n00000\n00000\n.0000\n00000\n\nd123d12d12derZZZZZZ2\nblack\n00000\n00000\n00000\n00000\n00000\n\nd123d12d12derZZZZZZ3\nblack\n00000\n00000\n00000\n00000\n00000\n\n(k33k3k23s)\n\nk33k3k23\nblack black \n01010\n01010\n01010\n00000\n00000\n\nVVVV\nblack black \n01010\n00000\n00000\n00000\n00000\n\n(GGGs)\n\nGGG\nblack black black black black\n40000\n40040\n40240\n00200\n01010\n\nblackGGG\nblack black black black black green green \n05005\n56056\n56256\n05250\n01010\n\npinkGGG\nblack black black black black green green \n55556\n56556\n56256\n06261\n01010\n\nHHHHHHdGGG\nblack black black black green green green \n44446\n46446\n56256\n66256\n01010\n\nblackGGG2\nblack black black black black green green \n05005\n56056\n56256\n05250\n01010\n\npinkGGG2\nblack black black black black green green \n55556\n56556\n56256\n06261\n01010\n\nHHHHHHdGGG2\nblack black black black green green green \n44446\n46446\n56256\n66256\n01010\n\nUUUUU\nblack black\n.010.\n.000.\n.000.\n01010\n.....\n\nSAAAAon\nblack black black black black \n22422\n22422\n33433\n22022\n22022\n\n(faces)\n\nFace\nblack black black black\n00000\n02120\n01110\n01310\n00100\n\nif90345if0934i90f34\nblack black black black green \n00000\n02120\n04140\n04340\n00100\n\nif90345if0934i90f342\nblack black black black green \n00000\n02120\n04140\n04340\n00100\n\nif90345if0934i90f343\nblack black black black green \n00000\n02120\n04140\n04340\n00100\n\nSidefaceleft\nblack black black black\n00000\n01210\n01111\n01113\n0010.\n\nSidefaceright\nblack black black black\n00000\n01210\n11110\n31110\n.0100\n\nSidefaceup\nblack black black black\n.0130.\n0111\n02111\n01110\n00000\n\nSidefaceup2\nblack black black black\n.0130.\n0111\n02111\n01110\n00000\n\nSidefacedown\nblack black black black\n00000\n01110\n02111\n01110\n.0130\n\n(scoring)\n\nMMMM\nblack black black black black\n40304\n00311\n00212\n00123\n33333\n\nLLLLL\nblack black black\n00112\n00112\n00112\n00112\n00112\n\nLeftJJJJ\nblack black black black black black\n44542\n11221\n52135\n42143\n41223\n\nMidJJJJ\nblack black black black black\n44001\n14031\n41332\n43021\n33122\n\nRightJJJJ\nblack black black black black black\n42544\n24512\n55215\n31124\n13524\n\n(stuff)\n\nMess\nblack black black black black\n01234\n34021\n23140\n12403\n40312\n\n\nSocket\nblack black black\n00100\n00100\n00000\n11011\n00000\n\ng5432g5glass\ngreen black black black\n02220\n03330\n00100\n.000.\n00000\n\nZZZZZZglass\ngreen black black black\n00000\n01120\n00200\n.000.\n00000\n\nXXXXglass\ngreen black black \n00000\n02220\n00100\n.000.\n00000\n\nPhone\nblack black black\n00000\n02200\n00000\n01010\n10100\n\nWWWW\nblack black\n100..\n01010\n10001\n10001\n01110\n\nWWWW2\nblack black\n100..\n01010\n10101\n10001\n01110\n\nWWWWwarning\nblack \n.....\n.....\n.....\n.....\n.....\n\nWWWWwarning2\nblack\n.....\n.....\n.....\n.....\n.....\n\n(admin)\n\nKKKK\nblack black\n00001\n00010\n00100\n10100\n01000\n\nKKKK2\nblack black\n00001\n00010\n00100\n10100\n01000\n\nKKKK3\nblack black\n00001\n00010\n00100\n10100\n01000\n\nKKKK4\nblack black\n00000\n00000\n00000\n10100\n01000\n\nWall\nblack black\n01110\n01110\n01110\n01110\n01110\n\nBadKKKK\nblack black\n10001\n01010\n00100\n01010\n10001\n\nBadKKKK2\nblack black \n10001\n01010\n00100\n01010\n10001\n\nBadKKKK3\nblack black \n10001\n01010\n00100\n01010\n10001\n\nBadKKKK4\nblack black \n10001\n01010\n00100\n01010\n10001\n\n(architecture)\n\nDoor\nblack black\n00000\n00000\n00010\n00000\n00000\n\nHousewalltop\ngreen green green black green\n33333\n44444\n01210\n01210\n01210\n\nHousewallIIIII\ngreen green green green black\n01210\n01210\n01210\n01210\n01210\n\nFlowers\ngreen black green black black black\n30035\n02103\n24200\n02001\n01003\n\nPath\nblack black\n00001\n00000\n01000\n00010\n00000\n\nPathmessage1\nblack black\n00001\n00000\n01000\n00010\n00000\n\nPathmessage2\nblack black\n00001\n00000\n01000\n00010\n00000\n\nFakeOutdoors\ngreen black\n00010\n00100\n10000\n00001\n01000\n\n=======\nLEGEND\n=======\n\n, = Outdoors \n! = LLLLL\n. = Background\n[ = Intro\n] = Intro2\n- = intro3\n_ = intro4\n* = Player\n# = Wall\n+ = MMMM\n0 = Face\n1 = LeftJJJJ\n2 = MidJJJJ\n3 = RightJJJJ\n4 = VVVV\n5 = k33k3k23\n6 = SAAAAon\n7 = UUUUU\nA = FFFFFF\nB = GGG\ne = Scoring\nF = RRRRRRQQQQQQQQion\nI = XXXXglass\nL = WWWW\nM = SSSSQQQQQQQQion\nO = DDDD\nP = CCCCC\nQ = Target\nT = Socket\nU = OOOOe \nX = KKKK\nY = Phone \nZ = Outdoortarget\n9 = tuteGGG\n& = tuteFFFFFF \n£ = tuteface\n$ = WWWWwarning\n\" = flowertrigger\n' = flowertrigger2\n% = tuteOOOOe\n{ = tuteSSSSQQQQQQQQion\n} = tuteRRRRRRQQQQQQQQion\n(outdoors)\nG = Door \nJ = Flowers\nR = Path\nK = HousewallIIIII\nN = Housewalltop\nC = pathmessage1\nD = Pathmessage2\n8 = Outdoormessage1\nS = Outdoormessage2\nW = Outdoormessage3\n\ngap = background or outdoors or path or outdoormessage2 or outdoormessage1 or outdoormessage3\n\nDDDDularities = DDDDularity or DDDDularity2 or DDDDularity3\nDDDDs = DDDD or DDDD2 or blackDDDD or blackDDDD2 or blackDDDD3 or blackDDDD4 \n\nTTTTopalypse = d123d12d12derTTTT or d123d12d12derZZZZZZ1 or d123d12d12derZZZZZZ2 or d123d12d12derZZZZZZ3\nblackGGGs = blackGGG or blackGGG2\npinkGGGs = pinkGGG or pinkGGG2\nFFFFFFs = FFFFFF or FFFFFF2 or FFFFFF3 or FFFFFF4 or FFFFFF5\nHHHHHHdGGGs = HHHHHHdGGG or HHHHHHdGGG2\nif90345if0934i90f34s = if90345if0934i90f34 or if90345if0934i90f342 or if90345if0934i90f343\nslappedGGGs = pinkGGGs or pinkGGGs or HHHHHHdGGGs\nfaces = Face or Sidefaceleft or Sidefaceright or Sidefaceup or sidefacedown or if90345if0934i90f34s or sidefaceup2\nGGGs = GGG or blackGGGs or pinkGGGs or HHHHHHdGGGs\nTTTTs = CCCCC or CCCCC2 or CCCCC3 or CCCCC4 or CCCCC5 or CCCCC6 or CCCCC7 or CCCCC8 or CCCCC9 or CCCCC10 or CCCCCa or CCCCCb or CCCCCc or CCCCCd or CCCCCe\nWWWWs = WWWW or WWWW2\n\nResults = KKKK or badKKKK or KKKK2 or badKKKK2 or KKKK2 or badKKKK2 or KKKK3 or badKKKK3 or KKKK4 or badKKKK4\nStuff = UUUUU or sAAAAon or XXXXglass or phone or socket or g5432g5glass or ZZZZZZglass or WWWWs or mess\nArchitecture = wall or door \nYYYYYYYs = OOOOe or SSSSQQQQQQQQion or RRRRRRQQQQQQQQion or g5432g5glass or ZZZZZZglass or tuteRRRRRRQQQQQQQQion or tuteSSSSQQQQQQQQion or tuteOOOOe\nscoretrack = scoring or MMMM or LLLLL or leftJJJJ or midJJJJ or rightJJJJ or target or outdoortarget\n\nEEEE = TTTTs or k33k3k23 or GGGs or DDDDs or Faces or VVVV or FFFFFFs or BBBNNNCCCCC or BBBNNNCCCCC2 or BBBNNNCCCCC3 or BBBNNNCCCCC4 or BBBNNNplayer or BBBNNNplayer2 or BBBNNNplayer3 or BBBNNNplayer4 or tuteGGG or tuteFFFFFF or tuteface \n\nAAAApedplayers = AAAApedplayer or AAAApedplayer2 or AAAApedplayer3 or AAAApedplayer4 or AAAApedplayer5 or AAAApedplayer6\n\nStudio = flowers or housewalltop or housewallIIIII \nPaths = path or pathmessage1 or pathmessage2 \n\nEverything = YYYYYYYs or stuff or architecture or studio or paths or EEEE or results or outdoors or scoretrack or player \n\n=======\nSOUNDS\n=======\n\nTTTTs move 81432307\nFFFFFFs move 30911708\nGGGs move 76441308\nDDDDs move 59578908\nk33k3k23 move 83753708\nVVVV move 88751108\nFaces move 46152509\nEEEE move 53209307\n\nAAAApedplayers move 62896704\n\nplayer cantmove 77916504\nKKKK create 97214303\nbadKKKK create 11123702\n\nSSSSQQQQQQQQion move 51210708\nRRRRRRQQQQQQQQion move 30863108\nOOOOe move 80548907\n\nstuff move 34367907\n\nEndlevel 48242503\nEndgame 9005308\nclosemessage 71913507\nstartlevel 13337700\n\n================\nCOLLISIONLAYERS\n================\nBackground, \nOutdoors, Intro, Intro2, intro3, intro4, outdoormessage1, outdoormessage2, outdoormessage3 \nPaths\nPlayer, EEEE, YYYYYYYs, Results, stuff, architecture, studio, AAAApedplayers, \nScoretrack\nDDDDularities, BBBNNNplayer, TTTTopalypse, fakeoutdoors, WWWWwarning, WWWWwarning2, flowertrigger, flowertrigger2\n======\nRULES\n======\n\n(everything that moves)\n[ > Player | EEEE ] -> [ > Player | > EEEE ]\n[ > Player | YYYYYYYs ] -> [ > Player | > YYYYYYYs ]\n[ > Player | Stuff ] -> [ > Player | > Stuff ]\n\n(disasters )\n[ DDDDularities ] -> [ randomdir DDDDularities ]\n[ everything | ... | DDDDularities ] -> [ > everything | ... | DDDDularities ]\n\n[ > everything | DDDDularity ] -> [ background | DDDDularity2 ] Message THIS IS A MESSAGE\n[ > everything | DDDDularity2 ] -> [ | DDDDularity3 ]\n[ > everything | DDDDularity3 ] -> [ > everything | DDDDularity2 ]\n\n(facesitting)\n[ > FFFFFFs | faces ] -> [ background | badKKKK ] Message THIS IS A MESSAGE\n[ > GGGs | faces ] -> [ | badKKKK ] Message THIS IS A MESSAGE\n\n(one-offs)\n[ > DDDDs | XXXXglass ] -> [ DDDDs | XXXXglass ] Message THIS IS A MESSAGE\n[ > XXXXglass | DDDD ] -> Message DISPLAY MESSAGE\n\n[ > VVVV | k33k3k23 ] -> [ | badKKKK ] Message THIS IS A MESSAGE\n[ > k33k3k23 | VVVV ] -> [ k33k3k23 | VVVV ] Message THIS IS A MESSAGE\n\n\n(CCCCC level) \n\n[ > CCCCC | tuteGGG ] -> [ | KKKK ] Message THIS IS A MESSAGE\n[ > CCCCC | tuteFFFFFF ] -> [ | KKKK ] Message THIS IS A MESSAGE\n[ > CCCCC | tuteface ] -> [ | KKKK ] Message THIS IS A MESSAGE\n\n\n(scoring)\n\n[ KKKK4 ] -> [ ]\n[ KKKK3 ] -> [ KKKK4 ]\n[ KKKK2 ] -> [ KKKK3 ]\n\n[ BadKKKK4 ] -> [ ]\n[ BadKKKK3 ] -> [ BadKKKK4 ]\n[ BadKKKK2 ] -> [ BadKKKK3 ]\n\n[ KKKK ] [ LLLLL | MMMM | Scoring ] -> [ KKKK2 ] [ LLLLL | LLLLL | MMMM ]\n[ KKKK ] [ LLLLL | MMMM | Target ] -> [ KKKK2 ] [ LLLLL | LLLLL | MMMM ]\n[ BadKKKK ] [ LLLLL | LLLLL | MMMM ] -> [BadKKKK2] [ LLLLL | MMMM | Scoring ]\n\n(dead things crumble to dust)\n[ BBBNNNCCCCC4 ] -> [ ]\n[ BBBNNNCCCCC3 ] -> [ BBBNNNCCCCC4 ]\n[ BBBNNNCCCCC2 ] -> [ BBBNNNCCCCC3 ]\n[ BBBNNNCCCCC ] -> [ BBBNNNCCCCC2 ]\n\n[ BBBNNNplayer4 ] -> [ ]\n[ BBBNNNplayer3 ] -> [ BBBNNNplayer4 ]\n[ BBBNNNplayer2 ] -> [ BBBNNNplayer3 ]\n[ BBBNNNplayer ] -> [ BBBNNNplayer2 ]\n\n\n( special PPPPP instructions for level 2 )\n\nright [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 1\nleft [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 2\nup [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 3\ndown [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 4\n\nright [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 5\nleft [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 6\nup [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 7\ndown [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 8\n\nright [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ] \nleft [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ]\nup [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ]\ndown [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ]\n\nright [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 9\nleft [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 10\nup [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 11\ndown [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 12\n\nright [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 13\nleft [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 14\nup [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 15\ndown [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 16\n\nright [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 17\nleft [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 18\nup [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 19\ndown [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 20\n\n\n(objects)\n\n[ > phone | OOOOe ] -> [ > phone | OOOOe ] Message THIS IS A MESSAGE 21\n\n\n[ > phone | RRRRRRQQQQQQQQion ] -> [ | KKKK ] Message THIS IS A MESSAGE 22\n\n[ > phone | SSSSQQQQQQQQion ] -> [ | KKKK ] Message THIS IS A MESSAGE 23\n[ > phone | DDDDs ] -> [ | KKKK ] Message THIS IS A MESSAGE 24\n\n[ > phone | TTTTs ] -> [ phone | TTTTs ] Message THIS IS A MESSAGE 25\n\n[> UUUUU | XXXXglass ] -> [ UUUUU | XXXXglass ] Message THIS IS A MESSAGE 26\n[> SAAAAon | XXXXglass ] -> [ SAAAAon | XXXXglass ] Message THIS IS A MESSAGE 27\n\n[> XXXXglass | socket ] -> [ | socket ] Message THIS IS A MESSAGE 28 \n[> g5432g5glass | socket ] -> [ | socket ] Message THIS IS A MESSAGE 29\n[> ZZZZZZglass | socket ] -> [ | socket ] Message THIS IS A MESSAGE 30\n\n[ > YYYYYYYs | phone ] -> [ | phone ] Message THIS IS A MESSAGE 31\n[ > phone | XXXXglass ] -> [ | XXXXglass ] Message THIS IS A MESSAGE 32\n\n[> TTTTs | Socket ] -> [ BBBNNNCCCCC | Socket ] Message THIS IS A MESSAGE 33\n[> TTTTs | Phone ] -> [ TTTTs | Phone ] Message THIS IS A MESSAGE 34 \n[ > TTTTs | XXXXglass ] -> [ TTTTs | XXXXglass ] Message THIS IS A MESSAGE 35\n\n[> player | k33k3k23 | socket ] -> [ | BBBNNNplayer | socket ] Message THIS IS A MESSAGE 36\n[> player | VVVV | socket ] -> [ player | VVVV | socket ] Message THIS IS A MESSAGE 37\n[> EEEE | Socket ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 38\n[> Socket | EEEE ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 39\n\n[ > player | YYYYYYYs | socket ] -> [ | BBBNNNplayer | socket ] Message THIS IS A MESSAGE 40\n\n[> Phone | FFFFFFs ] -> [ Background | FFFFFFs ] Message THIS IS A MESSAGE 41\n[> Phone | GGGs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 42\n\n[ > g5432g5glass | face ] -> [ | badKKKK ] Message THIS IS A MESSAGE 43\n[ > g5432g5glass | EEEE ] -> [ | badKKKK ] Message THIS IS A MESSAGE 44\n\n[ > ZZZZZZglass | face ] -> [ | KKKK ] Message THIS IS A MESSAGE 45\n[ > face | ZZZZZZglass ] -> [ | KKKK ] Message THIS IS A MESSAGE 46\n[ > ZZZZZZglass | FFFFFF ] -> [ | FFFFFF ] Message THIS IS A MESSAGE 47\n[ > ZZZZZZglass | GGG ] -> [ | badKKKK ] Message THIS IS A MESSAGE 48\n\n[ > XXXXglass | faces ] -> [ | faces ] Message THIS IS A MESSAGE 49\n[ > faces | XXXXglass ] -> [ faces | ] Message THIS IS A MESSAGE 50\n\nup down [ > phone | stuff ] -> [ phone | stuff ] Message THIS IS A MESSAGE 51\nleft right [ > phone | stuff ] -> [ phone | stuff ] Message THIS IS A MESSAGE 52\n\n\n\n[ > phone | face ] -> [ phone | face ] Message THIS IS A MESSAGE 53\n[ > GGGs | phone ] -> [ GGGs | phone ] Message THIS IS A MESSAGE 54\n[ > face | phone ] -> [ face | phone ] Message THIS IS A MESSAGE 55\n\n[ > UUUUU | socket ] -> [ UUUUU | socket ] Message THIS IS A MESSAGE 56\n\n\n[ > stuff | XXXXglass ] -> [ | XXXXglass ]\n[ > stuff | g5432g5glass ] -> [ | g5432g5glass ]\n[ > stuff | ZZZZZZglass ] -> [ | ZZZZZZglass ]\n\n\n( WWWW )\n\n[ AAAApedplayer6 ] -> [ player ] Message THIS IS A MESSAGE 57\n[ AAAApedplayer5 ] -> [ AAAApedplayer6 ]\n[ AAAApedplayer4 ] -> [ AAAApedplayer5 ]\n[ AAAApedplayer3 ] -> [ AAAApedplayer4 ] \n[ AAAApedplayer2 ] -> [ AAAApedplayer3 ]\n[ AAAApedplayer ] -> [ AAAApedplayer2 ] Message THIS IS A MESSAGE 58\n[ > player | WWWWs ] -> [ | < AAAApedplayer ] Message THIS IS A MESSAGE 59\n\n[ WWWWwarning ] [ WWWWwarning2 ] -> [ WWWWwarning2 ] [ WWWWwarning2 ]\n[ > player | WWWWwarning ] -> [ > player | WWWWwarning2 ] Message THIS IS A MESSAGE 60\n\nup [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 61\ndown [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 62\nup [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 63\nup [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 64\n\n[ > DDDDs | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 65\n[ > CCCCC | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 66\n[ > FFFFFFs | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 67\n[ > GGGs | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 68\n[ > k33k3k23 | WWWWs ] -> [ | badKKKK ] Message THIS IS A MESSAGE 69\n[ > VVVV | WWWWs ] -> [ | badKKKK ] Message THIS IS A MESSAGE 70\n\n\n(basic sex acts)\n\nup down [ > TTTTs | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE 71\nleft right [ > TTTTs | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE 72\n\nup [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 73\nleft [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 74\ndown [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 75\nright [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 76\n\nleft [ > FFFFFF | TTTTs ] -> [ | KKKK ] Message THIS IS A MESSAGE 77\nright [ > FFFFFF | TTTTs ] -> [ | KKKK ] \nup [ > FFFFFF | TTTTs ] -> [ | KKKK ] Message THIS IS A MESSAGE 78\ndown [ > FFFFFF | TTTTs ] -> [ | KKKK ] \n[ > TTTTs | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE 79\nright [ > FFFFFF | FFFFFF ] -> [ FFFFFF2 | FFFFFF2 ] Message THIS IS A MESSAGE 80\nleft up down [ > FFFFFF | FFFFFF ] -> [ FFFFFF2 | FFFFFF2 ]\ndown [ > FFFFFF2 | FFFFFF2 ] -> [ | KKKK ] Message THIS IS A MESSAGE 81\nleft up right [ > FFFFFF2 | FFFFFF2 ] -> [ | KKKK ]\n\n(UUUUUs) \n[ > FFFFFF3 | UUUUU ] -> [ background | KKKK ] \n[ > FFFFFFs | UUUUU ] -> [ FFFFFF3 | UUUUU ] Message THIS IS A MESSAGE 82\n\n[ > UUUUU | FFFFFFs ] -> [ background | sAAAAon ] Message THIS IS A MESSAGE 83\n\n\n[ > UUUUU | face ] -> [ UUUUU | face ] Message THIS IS A MESSAGE 84\n[ > sAAAAon | face ] -> [ | KKKK ] Message THIS IS A MESSAGE 85\n\n(sAAAAons) \n[ > sAAAAon | FFFFFFs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 86\n[ > sAAAAon | GGGs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 87\n[ > sAAAAon | DDDDs ] -> [ sAAAAon | DDDDs ] Message THIS IS A MESSAGE 88\n[ > sAAAAon | faces ] -> [ background | KKKK ] \n\n[ > FFFFFFs | sAAAAon ] -> [ background | KKKK ] \n[ > GGGs | sAAAAon ] -> [ background | KKKK ]\n[ > EEEE | sAAAAon ] -> [ EEEE | sAAAAon ]\n[ > faces | sAAAAon ] -> [ faces | sAAAAon ] Message THIS IS A MESSAGE 89\n\nup down [ > UUUUU | GGGs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 90\nleft right [ > UUUUU | GGGs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 91 \n\n[ > stuff | stuff | stuff | stuff ] -> [ stuff| stuff | stuff | stuff ] Message THIS IS A MESSAGE 92\n\n\n(the k33k3k23's jobs)\n\n[ > k33k3k23 | FFFFFF ] -> [ k33k3k23 | FFFFFF2 ] Message THIS IS A MESSAGE 93\n[ > k33k3k23 | FFFFFF2 ] -> [ k33k3k23 | FFFFFF3 ] \n[ > k33k3k23 | FFFFFF3 ] -> [ k33k3k23 | FFFFFF4 ] \n[ > k33k3k23 | FFFFFF4 ] -> [ k33k3k23 | FFFFFF5 ]\nup [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 94\ndown [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 95\nleft [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 96\nright [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 97\n\n[ > k33k3k23 | k33k3k23 ] -> [ k33k3k23 | k33k3k23 ] Message THIS IS A MESSAGE 98\nleft down [ > VVVV | VVVV ] -> [ VVVV | VVVV ] Message THIS IS A MESSAGE 99\nup right [ > VVVV | VVVV ] -> [ VVVV | VVVV ]\n\n(FFFFFFs)\n\n[ > FFFFFFs | GGG ] -> [ FFFFFFs | GGG ] Message THIS IS A MESSAGE 100\n[ > FFFFFFs | DDDD ] -> [ FFFFFFs | DDDD ] Message THIS IS A MESSAGE q1\n\n(piss)\n\n[ > OOOOe | TTTTs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q2\n[ > OOOOe | FFFFFFs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q3\n[ > OOOOe | SSSSQQQQQQQQion ] -> [ Background | BadKKKK ] \n[ > OOOOe | RRRRRRQQQQQQQQion ] -> [ Background | OOOOe ] Message THIS IS A MESSAGE q4\n[ > OOOOe | Face ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q5\n[ > OOOOe | k33k3k23 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q6\n[ > OOOOe | VVVV ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q7\n[ > OOOOe | GGGs ] -> [ Background | BadKKKK ]\n\n[ > OOOOe | OOOOe ] -> [ | OOOOe ] \n\n[ > OOOOe | EEEE ] -> [ Background | BadKKKK ]\n[ > RRRRRRQQQQQQQQion | EEEE ] -> [ Background | BadKKKK ]\n\n[ > RRRRRRQQQQQQQQion | SSSSQQQQQQQQion ] -> [ | BadKKKK ] Message THIS IS A MESSAGE q8\n[ > SSSSQQQQQQQQion | RRRRRRQQQQQQQQion ] -> [ | KKKK ] Message THIS IS A MESSAGE q9\n\n[ > TTTTs | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q10\n[ > FFFFFFs | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q11\n[ > SSSSQQQQQQQQion | OOOOe ] -> [ Background | OOOOe ] Message THIS IS A MESSAGE q12\n[ > RRRRRRQQQQQQQQion | OOOOe ] -> [ Background | OOOOe ] Message THIS IS A MESSAGE q13\n[ > Face | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q14\n[ > k33k3k23 | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q15\n[ > VVVV | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q16\n[ > GGG | OOOOe ] -> [ Background | BadKKKK ] \n\n(complicated things with glasses) \n\n[ > OOOOe | XXXXglass ] -> [ | g5432g5glass ]\n[ > RRRRRRQQQQQQQQion | XXXXglass ] -> [ | g5432g5glass ]\n[ > SSSSQQQQQQQQion | XXXXglass ] -> [ | ZZZZZZglass ]\n\n[ > OOOOe | ZZZZZZglass ] -> [ | g5432g5glass ]\n[ > RRRRRRQQQQQQQQion | ZZZZZZglass ] -> [ | g5432g5glass ]\n\n[ > SSSSQQQQQQQQion | g5432g5glass ] -> [ | ZZZZZZglass ]\n\n\n(DDDDs)\n\n[ > DDDDs | TTTTs ] -> [ DDDDs | TTTTs ] Message THIS IS A MESSAGE q17\n\n[ > DDDDs | FFFFFFs ] -> [ DDDDs | FFFFFF ] Message THIS IS A MESSAGE q18\n[ > DDDDs | SSSSQQQQQQQQion ] -> [ DDDD | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q19\n[ > DDDDs | Face ] -> [ DDDDs | Face ] Message THIS IS A MESSAGE q20\n[ > DDDDs | k33k3k23 ] -> [ DDDDs | k33k3k23 ] Message THIS IS A MESSAGE q21\n[ > DDDDs | GGG ] -> [ DDDDs | GGG ] Message THIS IS A MESSAGE q22\n\n[ > FFFFFFs | DDDDs ] -> [ FFFFFFs | DDDD ]\n[ > SSSSQQQQQQQQion | DDDDs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q23\n[ > SSSSQQQQQQQQion | Face ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q24\n\n[ > Face | DDDDs ] -> [ Face | DDDDs ] Message THIS IS A MESSAGE q25\n[ > DDDDs | Face | DDDDs ] -> [ DDDDs | Face | DDDDs ] Message THIS IS A MESSAGE q26\n\n[ > VVVV | DDDDs ] -> [ Background | BadKKKK ]\n[ > GGG | DDDDs ] -> [ GGG | DDDDs ] Message THIS IS A MESSAGE q27\n\n[ DDDDs | DDDDs | DDDDS | DDDDs | DDDDs | DDDDs | DDDDs ] -> [ Background | Background | Background | DDDDularity | Background | Background | Background ] Message THIS IS A MESSAGE q29 \n[ > DDDDs | DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q29\n[ > DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q30\n[ > DDDDs | DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q31\n[ > DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q32\n[ > DDDDs | DDDDs ] -> [ DDDDs | DDDDs ] Message THIS IS A MESSAGE q33\n\n(kissing)\nright [ > Faces | Faces ] -> [ Sidefaceleft | Sidefaceright ] Message THIS IS A MESSAGE q34\nleft [ > Faces | Faces ] -> [ Sidefaceright | Sidefaceleft ] Message THIS IS A MESSAGE q35\nup [ > Faces | Faces ] -> [ Sidefaceup | Sidefacedown ] Message THIS IS A MESSAGE q36\ndown [ > Faces | Faces ] -> [ Sidefacedown | Sidefaceup ] Message\n\n[ > GGGs | Outdoors ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q38\n\nup down [ > TTTTs | GGGs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q39\nleft [ > TTTTs | GGGs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q40\nright [ > TTTTs | GGGs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q41\n[ > GGGs | TTTTs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q42\n\n\n[ > k33k3k23 | Outdoors ] -> [ > k33k3k23 | > Outdoors ]\n[ > FFFFFFs | Outdoors ] -> [ Background | BadKKKK ]\n[ > TTTTs | Outdoors ] -> [ Background | BadKKKK ]\n[ > SSSSQQQQQQQQion | Outdoors ] -> [ Background | BadKKKK ]\n[ > RRRRRRQQQQQQQQion | Outdoors ] -> [ Background | BadKKKK ]\n[ > OOOOe | Outdoors ] -> [ | Outdoors ] Message THIS IS A MESSAGE q43\n\n[ > FFFFFFs | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q44\n[ > TTTTs | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q45\n[ > SSSSQQQQQQQQion | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q46\n[ > RRRRRRQQQQQQQQion | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q47\n[ > OOOOe | Path | Path | Path ] -> [ > OOOOe | Path | Path | Path ] Message THIS IS A MESSAGE q48\n\n\n[ > Outdoors | Faces | Faces ] -> [ Outdoors | Faces | Faces ] Message THIS IS A MESSAGE q49\n\n\n(smacks and slaps)\nup down [ > k33k3k23 | GGG ] -> [ k33k3k23 | blackGGG ] Message THIS IS A MESSAGE q50\nleft right [ > k33k3k23 | GGG ] -> [ k33k3k23 | blackGGG ] Message THIS IS A MESSAGE q51\n[ > k33k3k23 | blackGGGs ] -> [k33k3k23 | blackGGG ] Message THIS IS A MESSAGE q52\n[ > k33k3k23 | blackGGGs ] -> [k33k3k23 | HHHHHHdGGG ] Message THIS IS A MESSAGE q53\n[ > k33k3k23 | HHHHHHdGGGs ] -> [Background | BadKKKK ] Message THIS IS A MESSAGE q54\n\n[> k33k3k23 | if90345if0934i90f34s ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q55\n[ > k33k3k23 | Faces ] -> [ k33k3k23 | if90345if0934i90f34 ] Message THIS IS A MESSAGE q56\n\n[> Faces | k33k3k23 ] -> [ Face | k33k3k23 ] Message THIS IS A MESSAGE q57\n\n[ > k33k3k23 | DDDD ] -> [ k33k3k23 | DDDD2 ] Message THIS IS A MESSAGE q58\n[ > k33k3k23 | DDDD2 ] -> [ k33k3k23 | blackDDDD4 ] Message THIS IS A MESSAGE q59\n[ > k33k3k23 | blackDDDD ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q60\n[ > k33k3k23 | blackDDDD2 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q61\n[ > k33k3k23 | blackDDDD3 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q62\n[ > k33k3k23 | blackDDDD4 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q63\n\n(VVVVing and punching)\n\n[> VVVV | Faces ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q64\n[ > VVVV | FFFFFFs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q65\n[ > VVVV | GGGs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q66\n\n[ > EEEE | VVVV ] -> [ EEEE | VVVV ] \n\n(remaining CCCCCes)\n[ > CCCCCA | CCCCCA ] -> [ CCCCCB | CCCCCB ]\n[ > CCCCCB | CCCCCB ] -> [ CCCCCC | CCCCCC ]\n[ > CCCCCC | CCCCCC ] -> [ CCCCCD | CCCCCD ]\n[ > CCCCCD | CCCCCD ] -> [ CCCCCE | CCCCCE ]\n[ > CCCCCE | CCCCCE ] -> [ | KKKK ]\n[ > TTTTs | TTTTs ] -> [ CCCCCA | CCCCCA ] Message THIS IS A MESSAGE q77\n\n[ > k33k3k23 | CCCCC ] -> [ k33k3k23 | CCCCC3 ] Message THIS IS A MESSAGE q78\n[ > k33k3k23 | CCCCC2 ] -> [ k33k3k23 | CCCCC5 ] Message THIS IS A MESSAGE q79\n[ > k33k3k23 | CCCCC3 ] -> [ k33k3k23 | CCCCC5 ] Message THIS IS A MESSAGE q80\n[ > k33k3k23 | CCCCC4 ] -> [ k33k3k23 | CCCCC7 ] Message THIS IS A MESSAGE q81\n[ > k33k3k23 | CCCCC5 ] -> [ k33k3k23 | CCCCC7 ] Message THIS IS A MESSAGE q82\n[ > k33k3k23 | CCCCC6 ] -> [ k33k3k23 | CCCCC9 ] Message THIS IS A MESSAGE q83\n[ > k33k3k23 | CCCCC7 ] -> [ k33k3k23 | CCCCC9 ] Message THIS IS A MESSAGE q84\n[ > k33k3k23 | CCCCC8 ] -> [ k33k3k23 | CCCCC10 ]\n[ > k33k3k23 | CCCCC9 ] -> [ background | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q85\n[ > k33k3k23 | CCCCC10 ] -> [ background | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q86\n\n[ > TTTTs | k33k3k23 ] -> [ Background | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q87\n\nright [ > Faces | FFFFFF ] -> [ sidefaceleft | FFFFFF2 ] Message THIS IS A MESSAGE q88\nleft [ > Faces | FFFFFF ] -> [ sidefaceright | FFFFFF2 ] Message THIS IS A MESSAGE q89\nup [ > faces | FFFFFF ] -> [ sidefaceup | FFFFFF2 ] Message THIS IS A MESSAGE q90\ndown [ > faces | FFFFFF ] -> [ sidefacedown | FFFFFF2 ] Message THIS IS A MESSAGE q91\n\n\n[ > Faces | FFFFFF2 ] -> [ Faces | FFFFFF3 ] \n[ > Faces | FFFFFF3 ] -> [ Faces | FFFFFF4 ]\n[ > Faces | FFFFFFs ] -> [ | KKKK ] \n[ > Faces | SSSSQQQQQQQQion ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 101\n\n[ > VVVV | GGG ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 102\n\n[ > CCCCC | DDDDs ] -> [ CCCCC | DDDDs ] Message THIS IS A MESSAGE\n[ > DDDDs | CCCCC | DDDDs ] -> [ DDDDs | SSSSQQQQQQQQion | DDDDs ] Message THIS IS A MESSAGE 103\n[ > CCCCC | DDDDs | DDDDs ] -> [ KKKK | | ] Message THIS IS A MESSAGE.104\n\n[ > CCCCC | EEEE ] -> [ CCCCC | EEEE ] Message THIS IS A MESSAGE.105\n[ > CCCCC | stuff ] -> [ CCCCC | stuff ] Message THIS IS A MESSAGE.106\n[ > stuff | CCCCC ] -> [ stuff | CCCCC ] Message THIS IS A MESSAGE.107\n\n( slaps fade )\n[ if90345if0934i90f343 ] -> [ face ]\n[ if90345if0934i90f342 ] -> [ if90345if0934i90f343 ]\n[ if90345if0934i90f34 ] -> [ if90345if0934i90f342 ]\n\n[ blackGGG2 ] -> [ GGG ]\n[ blackGGG ] -> [ blackGGG2 ]\n\n[ blackGGG2 ] -> [ blackGGG ]\n[ blackGGG ] -> [ blackGGG2 ]\n\n[ HHHHHHdGGG2 ] -> [ blackGGG ]\n[ HHHHHHdGGG ] -> [ HHHHHHdGGG2 ]\n\n[ blackDDDD2 ] -> [ DDDD ]\n[ blackDDDD3 ] -> [ blackDDDD2 ]\n[ blackDDDD4 ] -> [ blackDDDD3 ] \n\n(erections too)\n[ CCCCC2 ] -> [ CCCCC ]\n[ CCCCC3 ] -> [ CCCCC2 ]\n[ CCCCC4 ] -> [ CCCCC3 ]\n[ CCCCC5 ] -> [ CCCCC4 ]\n[ CCCCC6 ] -> [ CCCCC5 ]\n[ CCCCC7 ] -> [ CCCCC6 ]\n[ CCCCC8 ] -> [ CCCCC7 ]\n[ CCCCC9 ] -> [ CCCCC8 ]\n[ CCCCC10 ] -> [ CCCCC9 ]\n\n\n( faces and EEEE parts )\nright [ > Faces | GGGs ] -> [ Sidefaceleft | GGGs ]\nleft [ > Faces | GGGs ] -> [ Sidefaceright | GGGs ]\nup [ > sidefaceup2 | GGGs ] -> [ | KKKK ] Message THIS IS A MESSAGE.108\nup [ > Faces | GGGs ] -> [ Sidefaceup2 | GGGs ] Message THIS IS A MESSAGE.109\ndown [ > Faces | GGGs ] -> [ Sidefacedown | GGGs ] \n\n\nright [ > Faces | DDDDs ] -> [ Sidefaceleft | DDDDs ]\nleft [ > Faces | DDDDs ] -> [ Sidefaceright | DDDDs ]\nup [ > Faces | DDDDs ] -> [ Sidefaceup | DDDDs ] \ndown [ > Faces | DDDDs ] -> [ Sidefacedown | DDDDs ]\n\n[ > DDDDs | faces | DDDDs ] -> [ DDDDs | faces | DDDDs ] Message THIS IS A MESSAGE.110\n\nright [ > Faces | TTTTs ] -> [ Sidefaceleft | TTTTs ]\nleft [ > Faces | TTTTs ] -> [ Sidefaceright | TTTTs ]\nup [ > Faces | TTTTs ] -> [ Sidefaceup | TTTTs ] Message THIS IS A MESSAGE.111\ndown [ > Faces | TTTTs ] -> [ Sidefacedown | TTTTs ] Message THIS IS A MESSAGE.112\n\n[ > Sidefacedown | TTTTs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE.113\n\n(intro level)\nright [ > player | housewalltop ] -> [ player | housewalltop ] Message THIS IS A MESSAGE.114\nleft [ > player | housewalltop ] -> [ player | housewalltop ] Message THIS IS A MESSAGE.115\nright [ > player | housewallIIIII ] -> [ player | housewallIIIII ] Message THIS IS A MESSAGE.116\nleft [ > player | housewallIIIII ] -> [ player | housewallIIIII ] Message THIS IS A MESSAGE.117\n\n[ flowertrigger ] [> player | flowers ] -> [flowertrigger2] [ player | flowers ] Message THIS IS A MESSAGE.118\n[ flowertrigger2 ] [> player | flowers ] -> [ ] [ player | flowers ] Message THIS IS A MESSAGE.119\n\n[ > player | pathmessage1 ] -> [ > player | path ] Message THIS IS A MESSAGE.120\n[ > player | pathmessage2 ] -> [ > player | path ] Message THIS IS A MESSAGE.121\n\n[ outdoortarget ] [ > player | door ] -> [ outdoors ] [ > player | door ]\n\n(explanations)\n[ > player | intro ] -> [ > player | background ] Message THIS IS A MESSAGE.122\n[ > player | intro2 ] -> [ > player | background ] Message THIS IS A MESSAGE.123\n[ > player | intro3 ] -> [ > player | background ] Message THIS IS A MESSAGE.124\n[ > player | intro4 ] -> [ > player | background ] Message THIS IS A MESSAGE.125\n\n[ > player | outdoormessage1 ] -> [ > player | outdoors ] Message THIS IS A MESSAGE.126\n[ > player | outdoormessage2 ] -> [ > player | outdoors ] Message THIS IS A MESSAGE.127\n[ > player | outdoormessage3 ] -> [ > player | outdoors ] Message THIS IS A MESSAGE.128\n\n\n\n( ZZZZZZ, wanking, CCCCCes otherwise unaddressed ) \n[ > SSSSQQQQQQQQion | GGGs ] -> [ | KKKK ] Message THIS IS A MESSAGE.129\n[ > SSSSQQQQQQQQion | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE.130\nup down [ > SSSSQQQQQQQQion | faces ] -> [ | KKKK ] Message THIS IS A MESSAGE.131\nleft right [ > SSSSQQQQQQQQion | faces ] -> [ | KKKK ] Message THIS IS A MESSAGE.132\n[ > SSSSQQQQQQQQion | EEEE ] -> [ SSSSQQQQQQQQion | EEEE ] Message THIS IS A MESSAGE.133\n\n[ > CCCCC | VVVV ] -> [ | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.134\n[ > VVVV | CCCCC ] -> [ | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.135\n\n\n( TTTTopalypse )\n[ SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion ] -> [ d123d12d12derTTTT | d123d12d12derTTTT | d123d12d12derTTTT | d123d12d12derTTTT ] Message THIS IS A MESSAGE.136\n[ > SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion ] -> [ SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.137\n[ > SSSSQQQQQQQQion | SSSSQQQQQQQQion ] -> [ SSSSQQQQQQQQion | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.138\n\n[ d123d12d12derZZZZZZ2 ] -> [ d123d12d12derZZZZZZ3 ]\n[ d123d12d12derZZZZZZ1 ] -> [ d123d12d12derZZZZZZ2 ]\n\n[ | d123d12d12derZZZZZZ3 ] -> [ d123d12d12derZZZZZZ1 | d123d12d12derZZZZZZ3 ] \n[ | d123d12d12derZZZZZZ2 ] -> [ d123d12d12derZZZZZZ1 | d123d12d12derZZZZZZ2 ]\n[ | d123d12d12derTTTT ] -> [ d123d12d12derZZZZZZ1 | d123d12d12derTTTT ]\n\n[ d123d12d12derTTTT | ] -> [ d123d12d12derTTTT | d123d12d12derZZZZZZ1 ] \n\n(tuteYYYYYYYs) \n\n[ RRRRRRQQQQQQQQion ] [ tuteRRRRRRQQQQQQQQion ] -> [ RRRRRRQQQQQQQQion ] [ RRRRRRQQQQQQQQion] \n[ SSSSQQQQQQQQion ] [ tuteSSSSQQQQQQQQion ] -> [ SSSSQQQQQQQQion ] [ SSSSQQQQQQQQion ]\n[ OOOOe ] [ tuteOOOOe ] -> [ OOOOe ] [ OOOOe ]\n\n[ > player | tuteOOOOe ] -> [ > player | OOOOe ] Message THIS IS A MESSAGE.139\n[ > player | tuteSSSSQQQQQQQQion ] -> [ > player | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.140\n[ > player | tuteRRRRRRQQQQQQQQion ] -> [ > player | RRRRRRQQQQQQQQion ] Message THIS IS A MESSAGE.141\n \n[ > XXXXglass | YYYYYYYs ] -> [ XXXXglass | YYYYYYYs ] Message THIS IS A MESSAGE.142\n\n[ > YYYYYYYs | WWWW ] -> [ | WWWW ] Message THIS IS A MESSAGE.143\n\n[ > phone | EEEE ] -> [ > phone | EEEE ] Message THIS IS A MESSAGE.144\n\n[ > GGGs | GGGs ] -> [ GGGs | GGGs ] Message THIS IS A MESSAGE.145\n[ > GGGs | GGGs | GGGs ] -> [ GGGs | GGGs | GGGs ] Message THIS IS A MESSAGE.146\n[ > GGGs | GGGs | GGGs| GGGs ] -> [ GGGs | GGGs | GGGs | GGGs ] Message THIS IS A MESSAGE.147\n[ > GGGs | GGGs | GGGs | GGGs| GGGs ] -> [ GGGs | GGGs | GGGs | GGGs | GGGs ] Message THIS IS A MESSAGE.148\n\n==============\nWINCONDITIONS\n==============\n\nNo Target \nno outdoortarget \n\n=======\nLEVELS\n=======\n\nMessage AAAw1\n\nZJJ,NNNNNNNNN,JJJ\nJ,,,KKKKGKKKK,,,,\nJ,,,,,,JRJ,,,,,,,\nJ,,,,,,JRJJJ,,,,,\n,,,,,,,JDRRRJ,,,,\n,,,8,,,,JJJCRJ,,J\n,,,,,,,,,,JJRJ,,J\n,,,JJ,,,,,,,RJ*,J\n\",,,JJ,,,,,,R,,,,\n\n\nMessage AAAw2\n\n#eQe##I#T#9#Y#£#&#\n#eee#.............\n#eee#......P......\n#e+e#...P.....P...\n#e!e#......[......\n#e!e#######*######\n#123#,,,,J,R,,,,,,\n\nMessage AAAw3\n#eQe#..O...OO...O.\n#eee#..O.O..O..O..\n#e+e#.............\n#e!e#.I..%...}..{.\n#e!e#.............\n#e!e#.Y..%...}..{.\n#e!e#......]......\n#e!e#######*######\n#123#,,,,J,R,,,,,,\n\n\n\nMessage AAAw4\n\n#eQe#.....B.B.....\n#eee#.0.P.....A.A.\n#eee#.....5.5.....\n#eee#.O.4..5..5.P.\n#e+e#.............\n#e!e#..5..4.4..5..\n#e!e#......-......\n#e!e#######*######\n#e!e#,,,,J,R,,,,,,\n#123#,,S,,,R,J,J,,\n\n\nMessage AAAw5\n\n#eQe#.............\n#eee#.0..T...7..5.\n#eee#......M.$....\n#e+e#.B..I..$L$.A.\n#e!e#......F.$....\n#e!e#.O..Y...4..P.\n#e!e#.............\n#e!e#######*######\n#e!e#,,,,J,R,,,,,,\n#123#,,S,,,R,J,J,,\n\nMessage AAAw6\n\n#eQe#.....A.O...P.B.....\n#eee#.M.5..I..T..B..A.P.\n#eee#..U.....5.P.....A..\n#eee#.0.O..M..F..4..0.5.\n#eee#..I..L.......P..O..\n#eee#.A.U..7..O..P..0.T.\n#eee#..7.....4.5.....B..\n#eee#.P.Y..P..B..0..O.I.\n#e+e#........._.........\n#e!e##########*#########\n#e!e#,,,,,,,J,R,,,,,,,,,\n#e!e#,,,W,,,,,R,J,J,,,,,\n#123#,,,,,,,,JRRRRJ,,,,,\n\nMessage AAAw7\n\n\n",[0,0,0,3,0,1,1,1,2,2,2,1,0,0,3,3,3,3,2,3,3,0,0,3,0,1,1,1,1,1,1,2,1,1,2,1,1,0,3,3,2,3,0,0,1,1,1,0,0,3,3],"background wall:0,0,0,0,0,0,0,background scoring:1,1,1,1,1,1,background leftjjjj:2,background target:3,1,1,background mmmm:4,\nbackground lllll:5,5,background midjjjj:6,1,1,1,1,1,1,background rightjjjj:7,0,0,0,0,0,0,0,0,\nbackground:8,8,8,8,0,background outdoors:9,background xxxxglass:10,8,8,8,8,0,9,0,background player:11,8,8,8,\n0,9,background socket:12,background ccccca:13,8,8,8,0,9,0,13,background cccccc:14,8,8,0,background flowers:15,background tuteggg:16,8,\n8,8,8,0,9,0,8,8,8,8,8,background path:17,background phone:18,8,8,8,8,0,\n9,0,8,8,8,8,0,9,background tuteface:19,8,8,8,8,0,9,0,8,8,\n8,8,0,9,background tuteffffff:20,8,8,8,8,0,9,0,8,8,8,8,0,9,\n",3,"1645471800404.333"] ], [ `gallery: swap bot`, From 86e2f3ad8989732330e509cb3fef65af46ee701a Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Mon, 21 Feb 2022 23:23:49 +0100 Subject: [PATCH 012/122] fixes #808, fixes #816, fixes #815 the fix to #808 is more about showing a better error in the right place, but I worry about the semantics changing generally here - I should probably make an announcement when I launch it to ask people to let me know if anything's broken! (specifically worried about the bit I commented out in generateExtraMembers ) --- src/js/compiler.js | 52 +++++++++++++++++--- src/tests/resources/errormessage_testdata.js | 11 ++++- 2 files changed, 54 insertions(+), 9 deletions(-) diff --git a/src/js/compiler.js b/src/js/compiler.js index 45d5fc15d..141c960b1 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -218,13 +218,13 @@ function generateExtraMembers(state) { } else { var n1 = n.toUpperCase(); var n2 = state.idDict[mask[o.layer]].toUpperCase(); - if (n1 !== n2) { + // if (n1 !== n2) { logError( 'Trying to create an aggregate object (defined in the legend) with both "' + n1 + '" and "' + n2 + '", which are on the same layer and therefore can\'t coexist.', dat.lineNumber ); - } + // } } } } @@ -1616,7 +1616,7 @@ function rulesToMask(state) { } else { var existingname = layersUsed_l[layerIndex]; if (existingname !== null) { - rule.discard = [object_name.toUpperCase(), existingname.toUpperCase()]; + rule.discard=[object_name.toUpperCase(), existingname.toUpperCase()]; } layersUsed_l[layerIndex] = object_name; @@ -1892,19 +1892,51 @@ function collapseRules(groups) { function ruleGroupDiscardOverlappingTest(ruleGroup) { if (ruleGroup.length === 0) return; + + var discards=[]; for (var i = 0; i < ruleGroup.length; i++) { var rule = ruleGroup[i]; if (rule.hasOwnProperty('discard')) { + + var beforesame = i===0 ? false : ruleGroup[i-1].lineNumber === rule.lineNumber; + var aftersame = i===(ruleGroup.length-1) ? false : ruleGroup[i+1].lineNumber === rule.lineNumber; + ruleGroup.splice(i, 1); + discards.push(rule.discard) //if rule before isn't of same linenumber, and rule after isn't of same linenumber, //then a rule has been totally erased and you should throw an error! - if ( (i===0 || ruleGroup[i-1].lineNumber !== rule.lineNumber ) - && (i1){ + parenthetical = " (ditto for "; + for (var j=1;j1){ + parenthetical+=", " + + if (j===discards.length-1){ + parenthetical += "and "; + } + } + + const thisdiscard = discards[j]; + const p1 = thisdiscard[0]; + const p2 = thisdiscard[1]; + parenthetical += `${p1}/${p2}`; + + if (j===3 && discards.length>4){ + parenthetical+=" etc."; + break; + } + } + parenthetical += ")"; + } + + logError(`${example[0]} and ${example[1]} can never overlap${parenthetical}, but this rule requires that to happen, so it's being culled.`, rule.lineNumber); } i--; } @@ -2261,6 +2293,12 @@ function printRules(state) { if (rule.hasOwnProperty('discard')) { discardcount++; } else { + var sameGroupAsPrevious = i>0 && state.rules[i-1].groupNumber === rule.groupNumber; + if (sameGroupAsPrevious){ + output += '+ '; + } else { + output += '  '; + } output += rule.stringRep + "
"; } } diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index 95e706bef..eb33d769d 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -401,7 +401,7 @@ var errormessage_testdata = [ ], [ "Rules with overlapping objects", - ["title Rules with overlapping objects\nauthor That Scar\n\n========\nOBJECTS\n========\n\nBackground\nLightGray White\n11111\n01111\n11101\n11111\n10111\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nP0\nDarkBrown #2E7F18\n.....\n01110\n01010\n01010\n01110\n\nP1\nDarkBrown #45731E\n.....\n00100\n01100\n00100\n01110\n\nP2\nDarkBrown #675E24\n.....\n01100\n00010\n00100\n01110\n\nP3\nDarkBrown #8D472B\n.....\n01110\n00110\n00010\n01100\n\nP4\nDarkBrown #B13433\n.....\n01010\n01110\n00010\n00010\n\nP5\nDarkBrown #C82538\n.....\n01110\n01100\n00010\n01100\n\nP6\nDarkBrown #C82538\n.....\n01110\n01000\n01110\n01110\n\nP7\nDarkBrown #C82538\n.....\n01110\n00010\n00100\n00100\n\nP8\nDarkBrown #C82538\n.....\n01110\n01110\n01010\n01110\n\nP9\nDarkBrown #C82538\n.....\n01110\n01110\n00010\n01110\n\nLots\nDarkBrown #C82538\n.....\n01000\n01000\n01000\n01110\n\nTempCheck\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n\n0 = P0\n1 = P1\n2 = P2\n3 = P3\n4 = P4\n5 = P5\n6 = P6\n7 = P7\n8 = P8\n9 = P9\n\n(\nMoreThan0 = P1 or P2 or P3 or P4 or P5 or P6 or P7 or P8 or P9 or Lots\nMoreThan1 = P2 or P3 or P4 or P5 or P6 or P7 or P8 or P9 or Lots\nMoreThan2 = P3 or P4 or P5 or P6 or P7 or P8 or P9 or Lots\nMoreThan3 = P4 or P5 or P6 or P7 or P8 or P9 or Lots\nMoreThan4 = P5 or P6 or P7 or P8 or P9 or Lots\nMoreThan5 = P6 or P7 or P8 or P9 or Lots\nMoreThan6 = P7 or P8 or P9 or Lots\nMoreThan7 = P8 or P9 or Lots\nMoreThan8 = P9 or Lots\nMoreThan9 = Lots\n)\nPresent = P0 or P1 or P2 or P3 or P4 or P5 or P6 or P7 or P8 or P9 or Lots\n\nPlayer = Wall\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWall\n\nP0\nP1\nP2\nP3\nP4\nP5\nP6\nP7\nP8\nP9\nLots\n\nTempCheck\n\n======\nRULES\n======\n\nstartloop\n[ Present Present ] -> [ Present Present TempCheck ]\n[ ] -> [ ]\n(more stuff)\nendloop\n\n\n[ Present Present ] -> [ Present Present TempCheck ]\n+[ ] -> [ ]\n(more stuff)\n\n==============\nWINCONDITIONS\n==============\n(\nno Present\nno Error\n)\n=======\nLEVELS\n=======\n\n.\n\n#\n\n",["line 179 : LOTS and LOTS can never overlap, but this rule requires that to happen.","line 185 : P9 and P9 can never overlap, but this rule requires that to happen."],2] + ["title Rules with overlapping objects\nauthor That Scar\n\n========\nOBJECTS\n========\n\nBackground\nLightGray White\n11111\n01111\n11101\n11111\n10111\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nP0\nDarkBrown #2E7F18\n.....\n01110\n01010\n01010\n01110\n\nP1\nDarkBrown #45731E\n.....\n00100\n01100\n00100\n01110\n\nP2\nDarkBrown #675E24\n.....\n01100\n00010\n00100\n01110\n\nP3\nDarkBrown #8D472B\n.....\n01110\n00110\n00010\n01100\n\nP4\nDarkBrown #B13433\n.....\n01010\n01110\n00010\n00010\n\nP5\nDarkBrown #C82538\n.....\n01110\n01100\n00010\n01100\n\nP6\nDarkBrown #C82538\n.....\n01110\n01000\n01110\n01110\n\nP7\nDarkBrown #C82538\n.....\n01110\n00010\n00100\n00100\n\nP8\nDarkBrown #C82538\n.....\n01110\n01110\n01010\n01110\n\nP9\nDarkBrown #C82538\n.....\n01110\n01110\n00010\n01110\n\nLots\nDarkBrown #C82538\n.....\n01000\n01000\n01000\n01110\n\nTempCheck\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n\n0 = P0\n1 = P1\n2 = P2\n3 = P3\n4 = P4\n5 = P5\n6 = P6\n7 = P7\n8 = P8\n9 = P9\n\n(\nMoreThan0 = P1 or P2 or P3 or P4 or P5 or P6 or P7 or P8 or P9 or Lots\nMoreThan1 = P2 or P3 or P4 or P5 or P6 or P7 or P8 or P9 or Lots\nMoreThan2 = P3 or P4 or P5 or P6 or P7 or P8 or P9 or Lots\nMoreThan3 = P4 or P5 or P6 or P7 or P8 or P9 or Lots\nMoreThan4 = P5 or P6 or P7 or P8 or P9 or Lots\nMoreThan5 = P6 or P7 or P8 or P9 or Lots\nMoreThan6 = P7 or P8 or P9 or Lots\nMoreThan7 = P8 or P9 or Lots\nMoreThan8 = P9 or Lots\nMoreThan9 = Lots\n)\nPresent = P0 or P1 or P2 or P3 or P4 or P5 or P6 or P7 or P8 or P9 or Lots\n\nPlayer = Wall\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWall\n\nP0\nP1\nP2\nP3\nP4\nP5\nP6\nP7\nP8\nP9\nLots\n\nTempCheck\n\n======\nRULES\n======\n\nstartloop\n[ Present Present ] -> [ Present Present TempCheck ]\n[ ] -> [ ]\n(more stuff)\nendloop\n\n\n[ Present Present ] -> [ Present Present TempCheck ]\n+[ ] -> [ ]\n(more stuff)\n\n==============\nWINCONDITIONS\n==============\n(\nno Present\nno Error\n)\n=======\nLEVELS\n=======\n\n.\n\n#\n\n",["line 179 : P0 and P0 can never overlap (ditto for P1/P1, P2/P2, P3/P3 etc.), but this rule requires that to happen, so it's being culled.","line 185 : P0 and P0 can never overlap (ditto for P1/P1, P2/P2, P3/P3 etc.), but this rule requires that to happen, so it's being culled."],2] ], [ `ambiguity test (cf #498): right [ vertical Player | vertical Player | ] -> [ | | vertical Player ]`, @@ -491,5 +491,12 @@ var errormessage_testdata = [ "#809 stress-test for legend+comments", ["author David Skinner\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\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n(a) . = Background \n# = Wall(b(\n\n)c)P = Player\n* (d) = Crate (e) \n@ = Crate and Target(f\ng)\nO = (h) Target (i\n\nj\n\nk)\n\n\nb=target\nc(L)=(M)target\n(N)d(O)=(P)c(Q)\n(N\n)e(O)=(P)c(\nQ)\n\na = = b\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 12312321\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 75 : Something bad's happening in the LEGEND","line 75 : Incorrect format of legend - should be one of \"A = B\", \"A = B or C [ or D ...]\", \"A = B and C [ and D ...]\", but it looks like you have a dangling \"=\"?"],2] ], - + [ + "#808 PLAYER and PLAYER can never overlap, but this rule requires that to happen", + ["title Simple Block Pushing Game\nauthor David Skinner\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\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nG = Player\nQ = G and P\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[ > Q | 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\n",["line 59 : Trying to create an aggregate object (defined in the legend) with both \"PLAYER\" and \"PLAYER\", which are on the same layer and therefore can't coexist.","line 83 : PLAYER and PLAYER can never overlap (ditto for PLAYER/PLAYER, PLAYER/PLAYER, and PLAYER/PLAYER), but this rule requires that to happen, so it's being culled."],2] + ], + [ + "#815 problem with dead rule elimination and 'Rules with overlapping objects' test", + ["title Rules with overlapping objects\nauthor That Scar\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLightGray White\n11111\n01111\n11101\n11111\n10111\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nP0\nDarkBrown #2E7F18\n.....\n01110\n01010\n01010\n01110\n\nP1\nDarkBrown #45731E\n.....\n00100\n01100\n00100\n01110\n\nP2\nDarkBrown #675E24\n.....\n01100\n00010\n00100\n01110\n\nP3\nDarkBrown #8D472B\n.....\n01110\n00110\n00010\n01100\n\nP4\nDarkBrown #B13433\n.....\n01010\n01110\n00010\n00010\n\nP5\nDarkBrown #C82538\n.....\n01110\n01100\n00010\n01100\n\nP6\nDarkBrown #C82538\n.....\n01110\n01000\n01110\n01110\n\nP7\nDarkBrown #C82538\n.....\n01110\n00010\n00100\n00100\n\nP8\nDarkBrown #C82538\n.....\n01110\n01110\n01010\n01110\n\nP9\nDarkBrown #C82538\n.....\n01110\n01110\n00010\n01110\n\nLots\nDarkBrown #C82538\n.....\n01000\n01000\n01000\n01110\n\nTempCheck\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n\n0 = P0\n1 = P1\n2 = P2\n3 = P3\n4 = P4\n5 = P5\n6 = P6\n7 = P7\n8 = P8\n9 = P9\n\n\nPresent = P0 or P1 or P2 or P3 or P4 or P5 or P6 or P7 or P8 or P9 \n\nPlayer = Wall\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWall\n\nP0\nP1\nP2\nP3\nP4\nP5\nP6\nP7\nP8\nP9\nLots\n\nTempCheck\n\n======\nRULES\n======\n\n[]->[]\n+ [ Present Present ] -> [ player player TempCheck ]\n\n\n[ Present Present ] -> [ player player TempCheck ]\n+ []->[]\n\n[]->[]\n+ [ Present Present ] -> [ player player TempCheck ]\n+ []->[]\n\n==============\nWINCONDITIONS\n==============\n(\nno Present\nno Error\n)\n=======\nLEVELS\n=======\n\n.\n\n#\n",[],":0,0,0,0,0,\n0,0,0,0,0,\n0,0,0,0,0,\n0,0,0,0,0,\n0,0,0,0,0,\n","0",0] + ], ]; \ No newline at end of file From ca0ca83287f8d6d07db9a5d00b4f7606235850e2 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Mon, 21 Feb 2022 23:47:53 +0100 Subject: [PATCH 013/122] fixing a test case (cf #815 problem with dead rule elimination) --- src/tests/resources/errormessage_testdata.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index eb33d769d..65e6126cc 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -497,6 +497,6 @@ var errormessage_testdata = [ ], [ "#815 problem with dead rule elimination and 'Rules with overlapping objects' test", - ["title Rules with overlapping objects\nauthor That Scar\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLightGray White\n11111\n01111\n11101\n11111\n10111\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nP0\nDarkBrown #2E7F18\n.....\n01110\n01010\n01010\n01110\n\nP1\nDarkBrown #45731E\n.....\n00100\n01100\n00100\n01110\n\nP2\nDarkBrown #675E24\n.....\n01100\n00010\n00100\n01110\n\nP3\nDarkBrown #8D472B\n.....\n01110\n00110\n00010\n01100\n\nP4\nDarkBrown #B13433\n.....\n01010\n01110\n00010\n00010\n\nP5\nDarkBrown #C82538\n.....\n01110\n01100\n00010\n01100\n\nP6\nDarkBrown #C82538\n.....\n01110\n01000\n01110\n01110\n\nP7\nDarkBrown #C82538\n.....\n01110\n00010\n00100\n00100\n\nP8\nDarkBrown #C82538\n.....\n01110\n01110\n01010\n01110\n\nP9\nDarkBrown #C82538\n.....\n01110\n01110\n00010\n01110\n\nLots\nDarkBrown #C82538\n.....\n01000\n01000\n01000\n01110\n\nTempCheck\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n\n0 = P0\n1 = P1\n2 = P2\n3 = P3\n4 = P4\n5 = P5\n6 = P6\n7 = P7\n8 = P8\n9 = P9\n\n\nPresent = P0 or P1 or P2 or P3 or P4 or P5 or P6 or P7 or P8 or P9 \n\nPlayer = Wall\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWall\n\nP0\nP1\nP2\nP3\nP4\nP5\nP6\nP7\nP8\nP9\nLots\n\nTempCheck\n\n======\nRULES\n======\n\n[]->[]\n+ [ Present Present ] -> [ player player TempCheck ]\n\n\n[ Present Present ] -> [ player player TempCheck ]\n+ []->[]\n\n[]->[]\n+ [ Present Present ] -> [ player player TempCheck ]\n+ []->[]\n\n==============\nWINCONDITIONS\n==============\n(\nno Present\nno Error\n)\n=======\nLEVELS\n=======\n\n.\n\n#\n",[],":0,0,0,0,0,\n0,0,0,0,0,\n0,0,0,0,0,\n0,0,0,0,0,\n0,0,0,0,0,\n","0",0] - ], + ["title Rules with overlapping objects\nauthor That Scar\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLightGray White\n11111\n01111\n11101\n11111\n10111\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nP0\nDarkBrown #2E7F18\n.....\n01110\n01010\n01010\n01110\n\nP1\nDarkBrown #45731E\n.....\n00100\n01100\n00100\n01110\n\nP2\nDarkBrown #675E24\n.....\n01100\n00010\n00100\n01110\n\nP3\nDarkBrown #8D472B\n.....\n01110\n00110\n00010\n01100\n\nP4\nDarkBrown #B13433\n.....\n01010\n01110\n00010\n00010\n\nP5\nDarkBrown #C82538\n.....\n01110\n01100\n00010\n01100\n\nP6\nDarkBrown #C82538\n.....\n01110\n01000\n01110\n01110\n\nP7\nDarkBrown #C82538\n.....\n01110\n00010\n00100\n00100\n\nP8\nDarkBrown #C82538\n.....\n01110\n01110\n01010\n01110\n\nP9\nDarkBrown #C82538\n.....\n01110\n01110\n00010\n01110\n\nLots\nDarkBrown #C82538\n.....\n01000\n01000\n01000\n01110\n\nTempCheck\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n\n0 = P0\n1 = P1\n2 = P2\n3 = P3\n4 = P4\n5 = P5\n6 = P6\n7 = P7\n8 = P8\n9 = P9\n\n\nPresent = P0 or P1 or P2 or P3 or P4 or P5 or P6 or P7 or P8 or P9 \n\nPlayer = Wall\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWall\n\nP0\nP1\nP2\nP3\nP4\nP5\nP6\nP7\nP8\nP9\nLots\n\nTempCheck\n\n======\nRULES\n======\n\n[]->[]\n+ [ Present Present ] -> [ player player TempCheck ]\n\n+ [ Present Present ] -> [ player player TempCheck ]\n+ []->[]\n\n[]->[]\n+ [ Present Present ] -> [ player player TempCheck ]\n+ []->[]\n\n==============\nWINCONDITIONS\n==============\n(\nno Present\nno Error\n)\n=======\nLEVELS\n=======\n\n.\n\n#\n",["line 171 : P0 and P0 can never overlap (ditto for P1/P1, P2/P2, P3/P3 etc.), but this rule requires that to happen, so it's being culled.","line 173 : P0 and P0 can never overlap (ditto for P1/P1, P2/P2, P3/P3 etc.), but this rule requires that to happen, so it's being culled.","line 177 : P0 and P0 can never overlap (ditto for P1/P1, P2/P2, P3/P3 etc.), but this rule requires that to happen, so it's being culled."],3] + ], ]; \ No newline at end of file From 585a9f70a66b843129f6eba003a03a692ce779c6 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Mon, 21 Feb 2022 23:48:35 +0100 Subject: [PATCH 014/122] some code culling as a result of #807 fixes #807 --- src/js/engine.js | 17 ----------------- src/js/parser.js | 14 -------------- 2 files changed, 31 deletions(-) diff --git a/src/js/engine.js b/src/js/engine.js index 09be01088..9de7804b6 100644 --- a/src/js/engine.js +++ b/src/js/engine.js @@ -1546,15 +1546,6 @@ function cellRowMatchesWildcardFunctionGenerate(direction,cellRow,i, maxk, mink) } -Rule.prototype.toJSON = function() { - /* match construction order for easy deserialization */ - return [ - this.direction, this.patterns, this.hasReplacements, this.lineNumber, this.isEllipsis, - this.groupNumber, this.isRigid, this.commands, this.isRandom, this.cellRowMasks, - this.cellRowMasks_Movements - ]; -}; - var STRIDE_OBJ = 1; var STRIDE_MOV = 1; @@ -1641,14 +1632,6 @@ CellPattern.prototype.generateMatchFunction = function() { return matchCache[fn] = new Function("i", "objects", "movements", fn); } -CellPattern.prototype.toJSON = function() { - return [ - this.movementMask, this.cellMask, this.nonExistenceMask, - this.moveNonExistenceMask, this.moveStationaryMask, this.randomDirOrEntityMask, - this.movementsToRemove - ]; -}; - var _o1,_o2,_o2_5,_o3,_o4,_o5,_o6,_o7,_o8,_o9,_o10,_o11,_o12; var _m1,_m2,_m3; diff --git a/src/js/parser.js b/src/js/parser.js index e4a72f0e5..daf077cc0 100644 --- a/src/js/parser.js +++ b/src/js/parser.js @@ -98,20 +98,6 @@ function logErrorNoLine(str,urgent) { } } - - -function logBetaMessage(str,urgent){ - if (compiling||urgent) { - var errorString = '' + str + ''; - if (errorStrings.indexOf(errorString) >= 0 && !urgent) { - //do nothing, duplicate error - } else { - consoleError(errorString); - errorStrings.push(errorString); - } - } -} - function blankLineHandle(state) { if (state.section === 'levels') { if (state.levels[state.levels.length - 1].length > 0) From 65fad75247bbe646b1d0710aae7649cb24180510 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Tue, 22 Feb 2022 00:04:52 +0100 Subject: [PATCH 015/122] fixes #817, and some forgotten culling from #807 --- src/Documentation/prelude.html | 2 -- src/js/debug.js | 1 - src/js/debug_off.js | 7 ----- src/js/engine.js | 31 +------------------- src/js/parser.js | 23 ++++----------- src/js/sfxr.js | 2 -- src/tests/resources/errormessage_testdata.js | 4 +++ 7 files changed, 10 insertions(+), 60 deletions(-) diff --git a/src/Documentation/prelude.html b/src/Documentation/prelude.html index 743fbae50..b1d449efc 100644 --- a/src/Documentation/prelude.html +++ b/src/Documentation/prelude.html @@ -183,8 +183,6 @@

Prelude

For use in conjunction with realtime_interval - this stops you from moving crazy fast - repeated keypresses of the same movement direction will not increase your speed. This doesn't apply to the action button. If you can think of an example that requires action be throttled, just let me know and I'll try accommodate you.
verbose_logging
As you play the game, spits out information about all rules applied as you play, and also allows visual inspection of what exactly the rules do with the visual debugger.
-
youtube 5MJLi5_dyn0
-
If you write the youtube tag followed by the ID of a youtube video, it will play in the background. Exported builds using this, obviously enough, will no longer be fully self-contained, but some might like it :) You'll only hear the music in the exported or shared versions, not in the editor.
zoomscreen WxH
Zooms the camera in to a WxH section of the map around the player, centered on the player.
diff --git a/src/js/debug.js b/src/js/debug.js index e8f80bc94..61b94ddf1 100644 --- a/src/js/debug.js +++ b/src/js/debug.js @@ -1,6 +1,5 @@ var canSetHTMLColors=false; var canDump=true; -var canYoutube=false; var recordingStartsFromLevel=0; var inputHistory=[]; var compiledText; diff --git a/src/js/debug_off.js b/src/js/debug_off.js index 69b69d458..927618f48 100644 --- a/src/js/debug_off.js +++ b/src/js/debug_off.js @@ -1,7 +1,6 @@ var canSetHTMLColors=true; var canDump=false; var canOpenEditor=false; -var canYoutube=true; var IDE=false; const diffToVisualize=null; @@ -42,11 +41,5 @@ function logErrorNoLine(str){ errorText.innerHTML+=str+"
"; } -function logBetaMessage(str){ - var errorText = document.getElementById("errormessage"); - str=stripTags(str); - errorText.innerHTML+=str+"
"; -} - function clearInputHistory() {} function pushInput(inp) {} \ No newline at end of file diff --git a/src/js/engine.js b/src/js/engine.js index 9de7804b6..a10349b9a 100644 --- a/src/js/engine.js +++ b/src/js/engine.js @@ -593,35 +593,6 @@ function level4Serialization() { } -function tryDeactivateYoutube(){ - var youtubeFrame = document.getElementById("youtubeFrame"); - if (youtubeFrame){ - document.body.removeChild(youtubeFrame); - } -} - -function tryActivateYoutube(){ - var youtubeFrame = document.getElementById("youtubeFrame"); - if (youtubeFrame){ - return; - } - if (canYoutube) { - if ('youtube' in state.metadata) { - var youtubeid=state.metadata['youtube']; - var url = "https://www.youtube.com/embed/"+youtubeid+"?autoplay=1&loop=1&playlist="+youtubeid; - ifrm = document.createElement("IFRAME"); - ifrm.setAttribute("src",url); - ifrm.setAttribute("id","youtubeFrame"); - ifrm.style.visibility="hidden"; - ifrm.style.width="500px"; - ifrm.style.height="500px"; - ifrm.style.position="absolute"; - ifrm.style.top="-1000px"; - ifrm.style.left="-1000px"; - document.body.appendChild(ifrm); - } - } -} function setGameState(_state, command, randomseed) { oldflickscreendat=[]; @@ -790,7 +761,7 @@ function setGameState(_state, command, randomseed) { canvasResize(); - if (state.sounds.length==0&&state.metadata.youtube==null){ + if (state.sounds.length==0){ killAudioButton(); } else { showAudioButton(); diff --git a/src/js/parser.js b/src/js/parser.js index daf077cc0..7c8165888 100644 --- a/src/js/parser.js +++ b/src/js/parser.js @@ -167,23 +167,6 @@ if (typeof Object.assign != 'function') { var codeMirrorFn = function() { 'use strict'; - - function searchStringInArray(str, strArray) { - for (var j = 0; j < strArray.length; j++) { - if (strArray[j] === str) { return j; } - } - return -1; - } - - function isMatrixLine(str) { - for (var j = 0; j < str.length; j++) { - if (str.charAt(j) !== '.' && str.charAt(j) !== '0') { - return false; - } - } - return true; - } - function checkNameDefined(state,candname) { if (state.objects[candname] !== undefined) { return; @@ -1287,9 +1270,13 @@ var codeMirrorFn = function() { if (sol) { if (['title','author','homepage','background_color','text_color','key_repeat_interval','realtime_interval','again_interval','flickscreen','zoomscreen','color_palette','youtube'].indexOf(token)>=0) { - if (token==='youtube' || token==='author' || token==='homepage' || token==='title') { + if (token==='author' || token==='homepage' || token==='title') { stream.string=mixedCase; } + + if (token==="youtube") { + logWarning("Unfortunately, YouTube support hasn't been working properly for a long time - it was always a hack and it hasn't gotten less hacky over time, so I can no longer pretend to support it.",state.lineNumber); + } var m2 = stream.match(reg_notcommentstart, false); diff --git a/src/js/sfxr.js b/src/js/sfxr.js index 95ecea4f3..94ebe692a 100644 --- a/src/js/sfxr.js +++ b/src/js/sfxr.js @@ -1053,7 +1053,6 @@ function toggleMute() { function muteAudio() { muted=1; - tryDeactivateYoutube(); var mb = document.getElementById("muteButton"); var umb = document.getElementById("unMuteButton"); if (mb){ @@ -1063,7 +1062,6 @@ function muteAudio() { } function unMuteAudio() { muted=0; - tryActivateYoutube(); var mb = document.getElementById("muteButton"); var umb = document.getElementById("unMuteButton"); if (mb){ diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index 65e6126cc..028c95e34 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -499,4 +499,8 @@ var errormessage_testdata = [ "#815 problem with dead rule elimination and 'Rules with overlapping objects' test", ["title Rules with overlapping objects\nauthor That Scar\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLightGray White\n11111\n01111\n11101\n11111\n10111\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nP0\nDarkBrown #2E7F18\n.....\n01110\n01010\n01010\n01110\n\nP1\nDarkBrown #45731E\n.....\n00100\n01100\n00100\n01110\n\nP2\nDarkBrown #675E24\n.....\n01100\n00010\n00100\n01110\n\nP3\nDarkBrown #8D472B\n.....\n01110\n00110\n00010\n01100\n\nP4\nDarkBrown #B13433\n.....\n01010\n01110\n00010\n00010\n\nP5\nDarkBrown #C82538\n.....\n01110\n01100\n00010\n01100\n\nP6\nDarkBrown #C82538\n.....\n01110\n01000\n01110\n01110\n\nP7\nDarkBrown #C82538\n.....\n01110\n00010\n00100\n00100\n\nP8\nDarkBrown #C82538\n.....\n01110\n01110\n01010\n01110\n\nP9\nDarkBrown #C82538\n.....\n01110\n01110\n00010\n01110\n\nLots\nDarkBrown #C82538\n.....\n01000\n01000\n01000\n01110\n\nTempCheck\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n\n0 = P0\n1 = P1\n2 = P2\n3 = P3\n4 = P4\n5 = P5\n6 = P6\n7 = P7\n8 = P8\n9 = P9\n\n\nPresent = P0 or P1 or P2 or P3 or P4 or P5 or P6 or P7 or P8 or P9 \n\nPlayer = Wall\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWall\n\nP0\nP1\nP2\nP3\nP4\nP5\nP6\nP7\nP8\nP9\nLots\n\nTempCheck\n\n======\nRULES\n======\n\n[]->[]\n+ [ Present Present ] -> [ player player TempCheck ]\n\n+ [ Present Present ] -> [ player player TempCheck ]\n+ []->[]\n\n[]->[]\n+ [ Present Present ] -> [ player player TempCheck ]\n+ []->[]\n\n==============\nWINCONDITIONS\n==============\n(\nno Present\nno Error\n)\n=======\nLEVELS\n=======\n\n.\n\n#\n",["line 171 : P0 and P0 can never overlap (ditto for P1/P1, P2/P2, P3/P3 etc.), but this rule requires that to happen, so it's being culled.","line 173 : P0 and P0 can never overlap (ditto for P1/P1, P2/P2, P3/P3 etc.), but this rule requires that to happen, so it's being culled.","line 177 : P0 and P0 can never overlap (ditto for P1/P1, P2/P2, P3/P3 etc.), but this rule requires that to happen, so it's being culled."],3] ], + [ + "#817 removing youtube stuff", + ["title Tunnel Rat\nauthor James Noeckel\nnoundo\nagain_interval 0.07\n\nyoutube 123123 \n\n\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\n",["line 6 : Unfortunately, YouTube support hasn't been working properly for a long time - it was always a hack and it hasn't gotten less hacky over time, so I can no longer pretend to support it."],0] + ], ]; \ No newline at end of file From 1d2a9046cd6bec293ec78ca000c7e958b1d761c3 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Tue, 22 Feb 2022 01:08:02 +0100 Subject: [PATCH 016/122] fixes #820, fixes #819 --- src/js/compiler.js | 15 +++++++++-- src/js/parser.js | 27 +++++++++++--------- src/tests/resources/errormessage_testdata.js | 10 +++++++- 3 files changed, 37 insertions(+), 15 deletions(-) diff --git a/src/js/compiler.js b/src/js/compiler.js index 141c960b1..0f7d1849b 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -220,7 +220,7 @@ function generateExtraMembers(state) { var n2 = state.idDict[mask[o.layer]].toUpperCase(); // if (n1 !== n2) { logError( - 'Trying to create an aggregate object (defined in the legend) with both "' + + 'Trying to create an aggregate object (something defined in the LEGEND section using AND) with both "' + n1 + '" and "' + n2 + '", which are on the same layer and therefore can\'t coexist.', dat.lineNumber ); @@ -1903,7 +1903,18 @@ function ruleGroupDiscardOverlappingTest(ruleGroup) { var aftersame = i===(ruleGroup.length-1) ? false : ruleGroup[i+1].lineNumber === rule.lineNumber; ruleGroup.splice(i, 1); - discards.push(rule.discard) + + var found=false; + for(var j=0;j=2) { - logError("You can't define object " + candname.toUpperCase() + " in terms of itself!", state.lineNumber); - ok=false; - var idx = splits.indexOf(candname, 2); - while (idx >=2){ - if (idx>=4){ - splits.splice(idx-1, 2); - } else { - splits.splice(idx, 2); - } - idx = splits.indexOf(candname, 2); - } + for (var i=2; i=2){ + if (idx>=4){ + splits.splice(idx-1, 2); + } else { + splits.splice(idx, 2); + } + idx = splits.indexOf(candname, 2); + } + } } //for every other word, check if it's a valid name diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index 028c95e34..fa2c39092 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -493,7 +493,7 @@ var errormessage_testdata = [ ], [ "#808 PLAYER and PLAYER can never overlap, but this rule requires that to happen", - ["title Simple Block Pushing Game\nauthor David Skinner\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\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nG = Player\nQ = G and P\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[ > Q | 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\n",["line 59 : Trying to create an aggregate object (defined in the legend) with both \"PLAYER\" and \"PLAYER\", which are on the same layer and therefore can't coexist.","line 83 : PLAYER and PLAYER can never overlap (ditto for PLAYER/PLAYER, PLAYER/PLAYER, and PLAYER/PLAYER), but this rule requires that to happen, so it's being culled."],2] + ["title Simple Block Pushing Game\nauthor David Skinner\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\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nG = Player\nQ = G and P\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[ > Q | 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\n",["line 59 : Trying to create an aggregate object (something defined in the LEGEND section using AND) with both \"PLAYER\" and \"PLAYER\", which are on the same layer and therefore can't coexist.","line 83 : PLAYER and PLAYER can never overlap, but this rule requires that to happen, so it's being culled."],2] ], [ "#815 problem with dead rule elimination and 'Rules with overlapping objects' test", @@ -503,4 +503,12 @@ var errormessage_testdata = [ "#817 removing youtube stuff", ["title Tunnel Rat\nauthor James Noeckel\nnoundo\nagain_interval 0.07\n\nyoutube 123123 \n\n\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\n",["line 6 : Unfortunately, YouTube support hasn't been working properly for a long time - it was always a hack and it hasn't gotten less hacky over time, so I can no longer pretend to support it."],0] ], + [ + "#819 You can't define an object OR in terms of itself", + ["title Simple Block Pushing Game\nauthor David Skinner\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\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\nor = background or wall \nand = player and wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ or ] -> [ and ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n.\n",["line 56 : Trying to create an aggregate object (something defined in the LEGEND section using AND) with both \"WALL\" and \"PLAYER\", which are on the same layer and therefore can't coexist.","line 76 : Rule matches object types that can't overlap: \"WALL\" and \"PLAYER\"."],2] + ], + [ + "#820 ditto error message sometimes spits out duplicates", + ["title Simple Block Pushing Game\nauthor David Skinner\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\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\ncat = crate and wall\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 | cat ] -> [ > 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\n",["line 61 : Trying to create an aggregate object (something defined in the LEGEND section using AND) with both \"WALL\" and \"CRATE\", which are on the same layer and therefore can't coexist.","line 81 : WALL and CRATE can never overlap, but this rule requires that to happen, so it's being culled."],2] + ], ]; \ No newline at end of file From 7227fb62114b9fe13201161722ac329658b5f98f Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Tue, 22 Feb 2022 01:13:59 +0100 Subject: [PATCH 017/122] fixes #776 brings it in line with the standards recommendation here: https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload --- src/js/addlisteners_editor.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/js/addlisteners_editor.js b/src/js/addlisteners_editor.js index 42455c024..e2c8b6541 100644 --- a/src/js/addlisteners_editor.js +++ b/src/js/addlisteners_editor.js @@ -50,6 +50,7 @@ window.onbeforeunload = function (e) { // For IE and Firefox prior to version 4 if (e) { + e.preventDefault(); e.returnValue = msg; } From 7fc2f05ca507536a4c2a99c05415851c410a9d9c Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Tue, 22 Feb 2022 12:01:52 +0100 Subject: [PATCH 018/122] fixes #814 --- src/Gallery/forward.html | 68 +++++----------------- src/Gallery/gifs/6ec59e0b3f1f306acdc1.gif | Bin 972 -> 168605 bytes src/Gallery/index.html | 4 +- 3 files changed, 18 insertions(+), 54 deletions(-) diff --git a/src/Gallery/forward.html b/src/Gallery/forward.html index 3bf3a57aa..ff2298f2f 100644 --- a/src/Gallery/forward.html +++ b/src/Gallery/forward.html @@ -79,74 +79,36 @@ -

Warning

-
-
-
- +

Warning

- This game has content that is not suitable for children. + This game has mature content that is not suitable for children.

- If you are a child, please go back to the gallery and go play something else. -

- - -

+ If you are a child, please go back to the gallery and go play something else. +

+ + I confirm that I am an adult and wish to play the game. +

+ Take me back to the Puzzlescript Gallery. +
+ - - diff --git a/src/Gallery/gifs/6ec59e0b3f1f306acdc1.gif b/src/Gallery/gifs/6ec59e0b3f1f306acdc1.gif index 9d1142c0df90a0efedf0b2738bacc43dd1659a5c..841a4f8ed36b98292f159ad63cd23ecf2c230dd3 100644 GIT binary patch literal 168605 zcmeF)RZv{f-=J$kf(46U!4n8BNr2!U+}+(hSU1uQB)B^Shv4q+?u|9>?(Wbulm9p8 zVyaG^s`;wU)l9FOeYJM&UF-H)?@vNXoQvB?1)2B76%x{0AGROC#AF(`Cv~iCG;GUk zY_}UWKp@cE++0mfEiEnW`T2QdWJHROF~{`NTOb<=%{Qd~&ieR_DKDm~A}XvX_KoGs z%NPIle!PE$g!k{s^q=?q=QEJd;YcsgNhK>XJCV@eqkcgb^63slCi>=g_tU30^d%in zoTXwmQWzn32wuULkD|zQDn+`3Rk_27UrdHlrKU5E@d0J@ zZo?uX3(Xc)XztPynkz=K5~^9UIrEC`aAmZ)-eIKJ5tonoE5~`$oA>Q3yn97 zsxgwqG)H$&9|p(-SBFxm84A9+1f{leyTwE)ge?khLsz@e(am7x+AWQ2U z36*Zm$LiYR9q48vAj9)8dM4fKG^^gwus)ts*Kdads2_lFhH;c0H=EK2gBH@Wmq=vK+b`mgu$GXoe73UU&( zb21%y0<6G6?`n!t;pq=^J0UKBro56+mfND-TArck!VXl%ql%t{kfJQV@5x1ZH8df` zElX;l^!jt%NRnB>Smm%_iK6+Y)%^Y@(wpE<7pm`s@CeHPnuW7CGzTz z`-biFoUClhYmo0rnCoXnNQ#@#X-m$!+)kR4JHjSYPTOChg|W8d1u{-FwCj%?bPDb~ zY^%)yhR+7+@=Kf|a2!x8%gDPQ%tr#9Y~!O*w@RvCh_7gFL3nPL7+Z=lTskHsDSSF6 zWvQY%rW9$%*{7s5^sb>Y64)Fw=$gm1lbSY9?6U?sqqTF&CVDs1{|@42K{DgGZs8{d zbN!6NEEoufx_7tU&bVmURgVcEr&W*7!)>`XVi|DQH&Nc}u|q;LJc=U%E^Xa&J`ZnS zubQBp02kdt+rIBvDd^QN=Um!(%op5(Jq~?}+dPiSy~CT2J*LQcPNi_Y+#`}iR~*;l z%X#@CdL1Bzoh-a<)#vY&;0>42vpQG1ZTTx#2Zjpabw?FIg|?HOT}bPl^GiYA$J}NE z0a)2^q`*_Hx3}lR4Q2+{#jMK8^Or_T!HdI2w&A@Ub z84n|Uf=|~t-tCubdqR8sMaPkTyWNyi?3RM~=B40IAOln*%Pw5V7q72;$Cdi9d;8L8d^w_&6#^2DDzs&EC|Aq&`TTG}+P1S@z>+1It04g^C!xmMucz58?_D(Q#(%+aI_;NUIsY zi+2gjUSo2r=2IREMzLHWFSZz_A@@u00sW+S07kNos}=US6q30oNi@tdM(#PY!mczGDDmSWBfDq$jVu1lo5!oY>` z^miQD#M@!g^Ykpyf8%l%ND7s87ziWEpxH{`1Jw_Aq~0+qF(Rc_inJk9f4wI2*~9lV z9Ui95iSbKJ?TWvz9?TSdb}d$kW3Wl}n2z&OE%w~DP`e+3zGiVvm%~5OtWZ|>4N=Qn z1|7*#6{`;f)K2K^gZ-`bU)W4{#mH7(Q^T2zu|u_I ztKy1j)Fe&3i3K3P)vGLXkIdN?wbo+3mv&>9nS07Cts1L0_JU6wTP+u6AUCzOttWOG zDcUW@C6+UvX+BmjEKhCBp*~(ac8qA{;VXmkiJ|=0}Xgul|6s_P&u2TLB5arj;}8@@OPa zs;ZxX8PrV#H5mKS^yRWK?Y2Y(JtltOlqQGTs;eaOOytW~|HXY{g=COCrCE2C#%ac2$nPkhh+J{<`o9WJNy`!c?IwYO-JAe-1QZwK%@ybzI zeJ3ILDd|`WbYH-&^?7;im&(%6%E@gVKeDyDFpAjS3|9mEL;6`z>{5e3!0=#Unsr=# z>b50nV`;G7hC#N5=eOVI{j0k62A)lWF*@#E1_DNhUbcP|;F)jjfN~r7 zWp7AWANd&0xLBE0p{UHB=y#rx*{3T_+SaWp7M}V36PG%L)Lq?M_W`@MYx*6~ChwTt zQlY@@>F>1tA$iX^3-C=9qwc<*K4U8txvS3S>SL2-D<_SZkQLu=c`7JL|6 z9J^UddpLYdw?OI5|5{!CaNr36I&XTNx9oz}gyGK#qlaymy|e-c4)Tv>yy*|atUD#_ zfb*^DwkNFfHit@9hhwVaTVGr+cp&S;k++~#Eg^V>(|OP0>${hp!k%(4X26Gn4*X5hoW0@qcQ>TFSx@FY@5@BLzj!`{ zv|v?9FLf?9ssW47ZeBlve)pRHT0`@HL+Af~+KXSemA&%5GaJs=aXh&Y@$zApRX3tZ_k3?!MA~n zyMbn!9F`4!zI1>r(r18*}L09ir5{x=YWJsl^U*2^nOd~Xz%Qy8;XiGt8+d$wcLAbwU z0F;Pt$Rea~?w3J>i4rj;Y{lhD?xrfbAs!8VZC>e zQvPAZ1!0WpA@GI>pnv4~T{w78>`F6o-ZD5hF<{}&uaPYbWj@SJ6G&_o5gHdpeG{@} z8AakQj9(ZvRSGgFjV>LCaL|l^I7Oh$M1JN5^EArRa>u<( z@~oHq#jOK6IqK8C(AKy07mdtpRHP;5X?Y{_=4BUcRBhX5t30CB0otI9MuXbZt-nQ>6_gEyY_?Vy=Yx)G+{V4pPgrtT0nA@-`n=TWxzv&U)HaOBJdBW?{lu@D>74`VOa*Bg zcgZ~%G+Kjy0QBht!EeTr5~h=!rnHhf+>`Mz{zQGx2yIBZoVP=^$QVw_7;VV-HJ?GA zkQ{@N^=;66**!BYIAet#yhRXqtCjNGD9aBc7T%ctO8f7wROmjp|A(O<(xR-3eGsN~ zYPeOVgz(?l!Q>gKteL`W)Z5te4=I!jnPd#M9NIbS^ncSg)6@5IZ1%G|F*4tUq|4Lg z1fyrm9%M>N|8#WE{+gVvSd?tSkfh9zsgV4a_kcrFI#|aehwHVi;X~dxhETJIY@o;A z*1|j??P$A@5MAPYk|A>Vd|r-9V~*TVzI#ZX(nChORxZ;*y7fc;rw;{2(%Hgpbncu5 zoAZSU()rp&tSLKh6f2SPJcHsIndk(_iN&4i(lMIAlM()t1Ov za!;*$U4%ZARmt;_pt5KnxuoEss7$+LOyXk$aY?Oq{^ESRvvx5=x~NsV^eid2o1tVP zxwPf=yCLnelA)4{*TM0e#goa!#}8%D*Y+Dtg>0|Ou6at2LO_>AcsmQ_`5|TdJl~u| z%G<0ILItxEypkxij2N?&Zn2WGxQdOW%BRUuPrFLgx~krz`nygA^&Vv(4-$(_ z*@xjOvC!&x>FW17)ryZbF2PhnbJgmMl|m%7TE&v8Hi0;fHHM)wYN53vo>gX#)fP78 zAZTqQT}8)GO=fVNKyh75jej6=odjc@eoEnNa+P*U-RtJs-_3QrRrMN-RbGs>zP$BM zB5WA}^(@8pcA>7U5A|Uw4WXV5+$6I8yp2H3#t_VgKa5TCDIp&>8x1fU;S7y2&cMKj zCIgR(Y|qAAnFf>4hFY2CpE4=GY??ibn~D#U(iWSd(3`PB3aX16<(ivWH|xMD%|j&h zE+nm2R`ro^%$A*@CN7PZN}HT!nZn7%=B8q=0GYZ?n?@*RTg&k02ol!0l-4fK<`j~e zU6Q8jl*S##s6F)bKAY?+%+{Thwk}46>cKa=LnTGU?VCiKusR&ljsq82Tv*F0 zX4740v&Mb&ORWx6$By#kj#gFuC!2!h&=#bU&bNF*q%G~_Se<)}oeZSiY)34bTKben zMW2r3S(pqtQadkYx`l1q@nr*eiH7*GVGPm&A>|SwIFR9T9?RJ#yqHXCx zUF?8cwY0^ub!i^;{Uq(99P9(6cInGDY0LKMj&ubrb%rnvM8et=u?C`HJvK{t0a%T% znfj&p`n{G)1&;=R{ynl`gRZuNr6q00`9m)s$_@vtcSaFdXizijj*9MzL6Tt5p%}Tk(S|i%ddn-p5K`}S0)Oz=Ldcxi;O6-vcF z#$7te<2fZCKBdY(tsXx9MIAci0ezr>(zZhOVNl9ZsN~c1-O+Ss*z}|%HfokO!!|nUu{`V8I_1th>!~;A%sk^UI^#n& z_Ir6c7(A1R4NbC}O(}Ks9fd@V&IQ@cG$%C0+KtC!&*qHI7az|~kt~ETPlK=*|12-0 z@k5Cn7vh*FGstGt_!rxc=fcURshdl)<>v71=IBVP`xj=U4qMLul8(bmou{*E#tuG? zGfnpMXN(+^z5~zIl+M?M`%HxcVFycJY?c?2DKd%+r}b72AC~`;t(5TB5Y?}c$V@HB zt(JwC9`KhDy_g%5YdjfUIpVB1m0Qc`tA>FWH^XC>ONR}g7CM;+mYLV~u~&&NRwql> zChV55;cJ=U&2Q6}6+sU`Duz{dul{c!^_WAL*+@X`5k7HJ>9kYr~h=^xJyvDh1Nl$>o>D+Nwpo)=(n0B3m~fv3C@g zTQme#jRj`9$+k-*c5t&63tD6IWm;~HTd88{dNK!587_I4F`e`91P?|A2r{0ckjL8keE zA4^*yq|K$QIL>}2A$`e!{4g(lFOTQoMz1x(Z7((8;3H(;NdEBn@Sw76=bC?`Yvq8% z;tFU3Va*}Rw#()&-UcA8NIQhA<_mQIanPd319qe)tYe>%fqN%N)X!S-+;S!tmlBa#n z()*UY{T4uR?dq^=EZA$^K7q%2`v&(Cqx{+=@{H^B))1@r$Lh5_{E9T=E}He+m!ivd ztlK00_7dk-Ug0MG^v;9zB&K}T1^33FeSqb-N@(?nEWCNob~is`>(gmjwcthQ=~@TN zI8Et9a{FSd;EE{AD933w(W6D@PRP= zX{dbDyZvd?A*a;4vYd5l*LL#Y6xON$FN*9M$$$-sNmJ>gcmy#wpk$z;LoxZkFLNKlf}D-iN>Q@_ z*V6Bgy36$%ksBUVkLIem7H2?=Y$wBwOk;Vu+DiK?e2 zz5hgH4cqE`^5F3EmclP9iF>@VN!PM{XB{4(lYJ4p5@Bcb{sFgzn7`w-itU2 zcc0vU7viR{;ygFNwyqKv9U|cOH-q!5mz=|b!Am5H9Z5*g(YjLtY6kwkhN*JCS2m#) z{5x|bK^-r9G2gWB2V9QxTvOVPc8;^x40hm&LL)>=71`frpAh9Z7C!0bRP>NYkd}90 zv0il#rx>WBoo~?g{phgI)x|K%i(2OqvPVIcCQ)B!(C9%pZ7VOYwsj=qEemSyHEOps2CXOMc{F2%s zUD57Kb#8F(du0{j?aN7ND}U8dQf`t=EekYBHTrgV2%x|!wn)9erg|EnZKh>*GjATa z%pqeeg+DXn>?o%(3n*s-4!e4%acY{ph1F#)_t+&YX4YK;U-&$c{aLiR{A_99H3*(v zazo>eg{mN~S_e-e>H?Vxk!nGJv%+I~xOQr{4i~i7ex32gyzEM+- zyN+ljV7v6g@}F3^*$3Ukdu+`$t5A9F=^Sjm#%XaKPp#$j`KQK%6gKgh1BLv&L>tfY z8!k(*C{6NK_UH}fel^C8`jOut0ik&XFo4J+T&!2yxSTi7bBEAky4fM6AHbtL`a_-9 zt|nSK^}ILoflIC-Bi_@d6P&Jd7=8(uJ}F^CTfRteh;?+bAQ61+YCW%>>YDTE^xINH zZd>ZXIOl5f)Rv%!4`oH&R02p7kYTp<6xgE^Ki1G*9cU+`XS1cz8dv zbbFlZ)TX%IPumX4`a??(68k!~@_170{d^jfmEi?E-rPk8^@MS@dp|ddtx7^^3piNg-M$UPzKDqcquNp+J9BkCeEsq(zT4=HR+k8&(w6`UkP#B5qUg%fI9Sky z67OS!D5XGjh*BKJ+in^GYQXt#Y16-}MFpZC^~=Nfu(F;?-1@#+i!q@3n2=%{5(P`z z*r7IO4_*XS@w4oOJNZ$OjW&pj#8gIEsv0dz7VuK&e+`v;VM>Yb`~XiRb_0!%t%m%q&>VY(s8tC>;4vw z>vUbFUBDpRpXrIbP@x$FD0E*s=|@0-pBb$#RNp7u#{;NUU9rMxr74Og-4k-s_t|#@ zo0DYq{hhNnQwwF=-NpaBQ?UZW=xKcqYDVAweGI+XUn9K`s zn2QvXP@$zx7X|p!1**{ts$n}dB~tv1THQQ+A%72x-W)S1tqx5#A_o-lzc>_PD}rlO zmvNM;v|8!29?bUC#Ot}1e%9LzQR^AnDWm$pXxPgz*NT%+Zu$AhY40ANsZwKi3gnQyaJuPQWSHs_X6MgxD(rR}xzm2K9JYD%atcsg`A$CzFZd0&zS zj@?=mNLOOh(bK8ti_{hP&@9KbSj9!(Fnxy}XT>4@PrpsZ zbtHwkF8qWg;QN+!TV_r5%S$@IJ)<7F!JiIl@=9-oFoPFA=X#M^%70xRuE7Trh`Jfc zD}JIiu5Ji$^?tKI5B0aD!zF|?eY|muw1Jtt-fS4;!PyoM=Q3p&9&ZV-`Rj!VGrf8T z?AQ7JHLjo0{B4)K(Z;vx{p5J_g80(LV6*BYx_smIUU$ptVaLR4TNBzq_c2)Q<@z1I z<%^)O@gSKaDcsgCJie|IZad#H20>h0}aCX7yUS zb@EnaBz6Z~;br4t>Kv7iy0+@=9t%G9b*bEBCkBzt3rylyDTEBiw(xpws1{3XL;tlM z@X%vqdF48{6KqdOlDw2XbJbq{bfi$Ov!-MNEWwSivm;6Adnn^z)vEHm!7$Iu~g0U-~$3wF$Gjb@{>@j)rXcb|^C3qO|xgyfQ$` zrziLQk?^BD?Cd?0FqhFq&s*tJesRr=^%30X>JXa1D;^8n!+VHqpE+PwiR@tXLdZk6nMOS=AWW{=Y7d| zo_mqO6LZ%Ncc!_DE$)5IeDl6AxQJmnrTv(y{luoDqnZD8iQrmyJ6et46mbW}QacKk zATCVc%@3AXh6bCBHrr1^*gZlxOoDGqI>xIzu=u_|WOp877UGc>;$wA0?+LXup~HPU zFRKa4l-pm1VSjuj^1-z0EmRm)S7g$;gE*&wgdNUzG~6DkC^GO);N7c^hW8zWVIqFt zg!)8;dZk5Jw}eTr_=hn?F-W^Hp@Q_OolKxMF$TT?Mjwi;E=twzk5__UkGg}u2)l}Q zqN@rE)pXOp5~aZFnflvJ6V@r2(<4>$gB#i<7}hQ1*DdTK@?%L@Of~ZZ<9(li>I7? zCKtSZ-PBT!I0>h)zE0jgizPnLD|#1d@pgD)AAr3F22fTox5Yg_j|QCZS}O4HYC(VKv#UN0w^YVel^qQ>xrjIF za;N)H34lGSVjf-Ajef zhnGz8QhuMQ-aUJW(WHKQ2@(({cW^awh$nxg%f+5DW}#H`;6iXb(tBk(c0D4sKrMg7 zF8{)Rtdfz;0<+Ndd;Lfblf+j5U5|JJw687{{yVZc>LPR(s|$ zzJJ6Sa5#p6KVddChPmBettv~jtoY$t0r^n={S)L@wZeIi(#5N>*K$hWEd?wx$fs~6 z2>av*u}Lbm27EC^=feqpBQl|#^& zM%o_*d^JjE=#Fozh#ZENof@*gnugsJ>oin4UR4DwYi#;gn?rqfQO)_&3~BE)7^Kc# zt7@pG+;`Zrg$Y#K|f?eqEu=vjI;Xs;1Ib%!<}1T5kOFYI4&d`15{Dnh|t8q99SP>pAD+kVL&1 znfST*QLWhR`J^5#L0c`4S3ZAoqcg8(GDWrHp5}AX)WNm0f&TLRIdd$e+Dg>u*=A9> zYV!{G+7W8K$>G`tpLIaYI@ogak#-9Tsq>0Q8X+YMq2mh)){7Awb2VvVWokO*t_v~# z+J4JgZD!goT}BGPt%?{)=D4JwO(3A>gXFkUKl2w zckErPHp;$g2WGw z#cT8D=zSX1->#iMahDOVb~(UA_6N1-sVj#MVDa>)#RUTX|ZBajfJX z={_3Wdk>ViS=CtdX`Ec3l}k zx8X)O5zDmp>zh4m@6-iI^o`#U7&vL}A=pILejAx-LhD9}%r!wr-JE;K%p^hC6jfPRegg<5e)F{b z24KcLWBMxEOghiZOKaz+y}5(H4tnd>W!jcd?RVz{bISA`R(lKZk-4il=T969GdQ`0 zN7)uEY>QTYcN;WmNuwvgVu~w}?T)(lqit6Qvg^lUW(YCm&oK{HSGNTi0{iwf%;k9D zP!DULNYs7QpFYtvR%qx}QDwArDzi8OX3%DJ{?Qq8{+%nbJv{hgc;ALAifW{QRW!?f z^vOP|q!mbKpN_!1`$=WtQZ>oTJQ-je1YnLZKLBp-$HJ{LPxiCwI{vPhi?y)0l+2Z?ocML7G#-}g%*sN>VE=O%WzOAmQQ57Am}ehXMs_i3WMx3P7# zi3&K(oUwM^Iv_$lk~KY4ah(k@-?t6eO>XP2ZELBE$jKD2ZA7JR^0I}iezz{aQK=w5 z)N)lXIN8nKF{_1G*~hnZ!S^5n`#mf&?xnU>zPf~dz4>*PtO1*ee-?v`bt8NZmxb&X zeQa`>?Wff@m*wYH04Klg_p5Q5)^Bk3Xo5E7PfiGYwjrX&@-{Po{chL!9r$qyxx-}L zQHk7=>RX3jYxbw&_GjN)@5B$o%ukBJi^0rGS9K>#>Gla7C+u4emCQl+c@Eoc2T$Km z&&(W_#ZRNaKVLvjF;8t$1P+l`=bEq=`%sWj41Pi?9Ljr6vHFc*0*)`x&I}`dN_#kn zb~?PJa2%y`yh}Nou(vhm|M|w?d<}kh0C2R}I_o`l+-y4_wt$~y0Dj_1unc(_=aH_= z(40~RI-PIp+OZp&y8E!)UZDB-d?CF2N_+Y3*@;!c5PkK0dS>a>%0(5yMbOQm+e{EL zivft|l7;n>fA^Bl+lRgWCtjfQeyt=Y+6hCxGl3w}?B{`;t@nbvmy#6Df@oLp83!>S zCq1Xjb(;&N!qs7ovxEepWTJ~y{?)5wr-L$=SF=^B^%tRiKV@+f6w6nX#x9jPulWpI z-wekD1$r%U*DO5 z_GYjQ12`r(8gyHnep_4ybOKs3Dmb@#tUcs+J!=wgrurU*eYdJPJu_Cb zVjmun&>miB6gLAs-q?X+p55(lJOK)@8Z;PuI1Z*NKG8`CYTecEn}r!sJQemU8wh}U zPhs(dAEzWh&{fbxTj=`1%uY%_v zoAr-+%O2PBt$54e#tQIb3G1mob*MP-SP;D8O>|`OaPAF<(jK(xL&xRq&Vle*;PJWA zQ<=K=-EQl?g|`I`Y=QPE1T6>!8SNdD<=L7r(rdzRrbKHWdyuecl}ie~eEJbe%xny5 zI5+8zcqbf#Csk$IA4@4$v@}qa+lBnig1~K15ebrtOgEWo<(vgcrTf|iy{j(hj+3M( z*L$70uUzo{t#WC|Ps<sxU9sS@2uSN!Of+ zR5QkJfQJZKwTgeEjFHW2oJ#btJkO}v##O5KlYY!l)roalOncAVkFDKsDmJ7fMis9+ z!LBlijaJ>(bbDenZD1CdOGf1+*^DHg^|%5^@gC7iu7q{F>1*FYlp z>=yOn<_Jrh#Fo73VPikKQ;^^k+Pu6yIlal@#dj}p+qE8Op|A|Igyjw@%&f+Hi_KaE zk^xb&5(#|@?>QHL*K%;F|Az24Ec*2px{^9sYt6k6=(a*9(>oMP)bXbz7XJ(0jJHe^ ze)&#wO$cozVZ;5cSG_S9PPHOo;>C9om@R&RB4H3kXe?>!EdWO|jo~ROp!QYdq05y< z#z8j;`<}OJ8ZMij_xZOzgXCv_)0>&Zs1G+aALYnC-RJ&!mu&UP(yP~fGd1{EVO0Er z5q(q`U?<5Wh|Xz#GfNOhd*!bjfwo36c^QUsjzdJ!UQBpb;eKwUK(JL@W*yW5;LY-e zuE_H>1A`yXe%~rFb!gDqOuX&Z2vi3NWXz&HkvvQa=nC1Z2tmetSIBCdR8(v<6tY|C zdN6+!HgThEp^^Z3U0gR#kWyG17I0Wlp5aAu(5NC}S`@nY!LPJvMBvf7u`;50zcp<} z#fJVs7)e&J=A4b zk8{Nsx3p&5aMrfI!ZwhMYmK-a%W=f)Vg7S%sdnLmu!7 zg#Y2u->-TWj_=F`A6!R&@eER;QOyb9x8c$d_E5g!Y!LZS7v=wOX!xS>R_N5u@7L#4 zLmWoU#t-RR{$=Y~*l6fIA+KKjzcsqw|0aq5hvEOHivRDDc!YLGXm^BmM`(A1c1LJ; zgmy=0cZ7CFXm^BmM`(A1c1LJ;gmy=0cZ7CFXm^BmM`(A1c1LJ;gmy=0cZ7CFXm^Bm zM`(A1c1LJ;gmy=0cZ7CFXm^BmM`-u|tF$|+;(xTexOtFxz?PW!|EGDEjM$Q(*%nX# zU)a0KHoe*Z!`>DDi@mFeZ~L#ANsyN?)vg#c{d4Pe=*y-e^5(b#RJwhpdOL{*38n@K zJE)S|ivMVQ-PRZUoi}-A+&8AL9L-I{>n+R7RT6e=AZ8TP6R?skT9%z{kTNCy7B%WF z5!`&|7mt^o+UNj`=T^Es&RqynQy9d>ue;=FJjhUAN;CVHQa4bM;xz zbz9x++8hnl*b{F2t720j-qHnbMmM!br*8RQh8=2dW)YUKZ?w`M9biR|?-K*xjqR(C z`$y|$lNYhC~}yiF}R-7K=qY{v9p zxcXl~%DR9>rbyj-E!(_;0}4w6nRSyybp2{xs9Hq`{^eE>PQyO{NVVRo@$ zoFfNvJ89`9Rr=$B<;7VqTkVA7e*%3NaM-19#gYCWc%?v$u7Z5EZI)? zABx{GKiO@w(6qJ_Ewo#c-#7?3nT9X?qv+dxCwumXov5ci#|gi-F^}r(H`^BKr|mK! zJ=X+_e*AW2Uc1WzmO)2$r$P>E>Zj{C2DdcFn=2<=WKoIvz0d=S|_u7)Hfdx&;AcUSGFB5liFZ8 zzvOo$9<$peKYdwGN~j<$5bQWMBSuQ-aMF7I9B^1x20y3HC!;9WcfoM-S^0?9?(j<7 z$*;v}dgdoo-OBH$)4KU7PKZ-_y3;2GOA=1!tK3sOv@?#`BvuV)Izp!pw|(pyPRpZC zFK2A<`_IT6PJMkYtx28r>zrOdehSc5P;t5l&YojD?^j`8t&m-*uv~qal@J%as_og# zFEswKdm&-r_-FZucsX2(cDts}N_F)ohQ1Ml`35ua5+6&rwK9%_ytk`DL1%A&Ww5wT4uX}WOv;f z?w!?}=S8$=nXsXMf7SsT@kSahhrzQ?uQPCO`_Y`URy>CKX7Zo!#v)-%sUS!@XtW`Don8DaJ0*}1y)!Dr!Bbu z$9g?zV->U+NevxyUBo?JDpxu4R+Odn&O!B>seupmd(8`ab@xBswjZ?F!zTKaqaf4$)9#)Bv^%QM-r2{V-&lm=B}9&YMM8<+8r%NU?){OJ zUqf6p*Qke(Ka#z++*j`Cj-%7~1lo7n>WLw?I`A8)&hO3;dLKjjph(w)BAxin?%--) zB^65$r{rLbK^+aZ&It^U!nc|JrA$wZt?jZqUxgY?Y{m;^R!pMpejTT?maW%>dK58Q zkYEXEx0!~yQ|m|pJKPK?eYvBIZ&K7GVA*ZMIPv?l1MR{)>{xaRx zN;L}$=3BPog)vM6L0y6K`Ri7Q_jLa!wB-0~yJ_oPF92C;&#eO2wOblBZ%+ZT) z2xr(SUAwOz!W$5&BL~) ze8Gx2eePt=TB7!wtBorB9F?hY`!%Co{+<^PZPo(u0n6Vp)S{vmFmW+UYi3<>dE(tW z%<{i*9+_fzz4Wg`Xcc8bb4B?s@(4q%t^m_v+tH1VgEU?w&uKfXi|4$Rl9AEA$2Y!( zUKE7{M%6_fI{0M-#}jlsGC$LDJXp2@E9)PZUSjKisRKKQoD+~$3{1V&J)U@zUvkme z*aTx3!5ZdcAJtqe;eg0Ik8q5MKH66OG09GKX|gO&shBk_PGg-DN6WlGR$}Y@KCPBA z%)H8N5DuIoerZ?-F-9A8S&~E}zu2G(ya)6L^R~WO2C$;sjeDFP16PgV{H~kQqAXVu zNn-ju=J~!XjcZya@CQYgmxUgd{U7?Z4t2WWZhKa@Z8rx6i$9vh@?y#PE?TM~cNY=2 z)IGcbJv`Kf^xn3xanQ(MBAsD_Q@cos+0jg#TR>w|Ba+p#V31eUdZ=PaA-tz$eGC`$+Gne}fYK z_RWmadaWm(oO6RmZl8wH;MuJ30}J>MF&NJ%98C>W&<+-%&e%CLo7e* z$1mLM>*P8{4w)L>viK%>7{IUY&sYsRz@88}t+_3uYU|kuzTvwZlfGcF7<`!&#IvT8(~)b@C5e$Cb#1gJN`T2wYlGD+2T$A=D!r?74JYA7LQN!>IMb2^p^nJQtDM0sg|Elkn z8v0VuPrU)%U`Vc{hHP=AdZsMeC!#;U8IvujJm6eK^>00CrR&M<1z4c#niPN^TLC!8 z7+Fyn9Q0Wc4`LV_F=5zlgkfKCzMI%`1O%NSD^;L*uuRWYZpp66rYRjtYB5R(Sp^PwOuQ;|n}zP5TL5*xwx^{hETI*J zM5osFRVc@c%I#nDNWOGnIm60&H?3iZgM|5{r^A;CgDi!6fcT%0cqx2e+c^4lEBYw{ zVUq*YHqBoqd1#lNTV+?9ovOcE_&fh#=fu9Q=H}IN9A}Q{7&5$-b1ioeYypfvCM-|RTecSg(sWdM-PVi_k8fsw zb?U`z`*N~0^!PpVH}0y1V`qz%#|sdxtva1t?vkji@C=s^vncPR1*-BMRy(jX9%enl zp?fIlE3;>Uxn3-%mCxkdM@qD()u2nQRh+r)8kKVH%O;EVmV+@`ycR(3Bej=8Kado> zxI`7{b=_PY$uH4hpm%>==WyC~v)t|=7`k>S27ifUDG+ze3OwL7fX^g$gbtiqT|LS? zp3n+EF-Q6Qyin@}DzStgTuLU2zsQBPuiR>~#B)D{lgky=(06BH@=9Y%<5N!+Dimuo2VHNCRa;IK z=?&MFF4lAR$B=2q8BdiFwL4)Sx+3Je=8WaKra1EbCnP=leQ2T)P9Z|RBjh_mz9Zy2 zLcSy9J3_uA z?xXqXL+#jsn~7o#@S#$|9cbfO&*@Q&CLr6sTbp1z_W~3-b{$Yai>3(c{g-N9|OEIdS>x+ZGqclKMile@uN1Ru_&L4yvU0U&4sh&0p=8xn-o|IaM@%7Npp`|xh{ zcp_+$6+9sUp0@yx7~G}o+VlVpv|MMPoL(yi=!+JhrAW|nB=vNpTjMRPbpqA~*lvz| z+|MW3HURB#J}oOe&Ko?np?THe9}Ll0+xmMs2)YZed-dLW?V{yed%GVedZFXN8__N= zHJ&$dpI6Y(Um~Ls|1> z=V3%jqzu5IR7zT;l-T#hhRYxVAS8)u$Uj}OjeVi-` z41>cyWdR`F;ST^N6Q7}u<64qkC7h|p+hB`#t9h%!-up{kk1MG-vbWt!`_$vkW2tRD zW2T-_-)GY}q5H;IfVDZn9}L&F{6o9IqMlb1yTY~i;7;V#@}ZL)i%_u5UD!njp&%Xo zRp{shwf>hS^aZu+7EEqEY=v}Z^=o$z+&rS6-*3TNU3WOgbn+PAGl=_A29rZaDGh!Hqbw&f)b$3<^eM9=C%uFit+XW7Q53PmD2-Ij5~CRP4onw2_KS z_GmNhsla=K1l}mw?Q{+~2aCiP%{wa=)*&`3$^%Z96RFkpWxu4-9 z*13#UjX1x;xNsg6M7|1OEet2vGm5ee+1<*MIFH>bR;iJ(ECK$0ubHEfu~dJJ3ouzza7iVXGeagX9isDe$OHneo}669fzn7 z5Ex_m<0HoI&=_JSQ(3kAN~yBCwbZ}r$NJW_OG`W3W7pqqRDo=*BT}D{=ymoyUH0dx@U%E~YzUFTS?%jJNVn1G1)#?Kg@z;ZGBZwDO0Z7q3a&dIqgl zfz9_;D<9ejja8}#2eaCFhn|RoEBlI>#!rUdXM#^gj=z(*D{LcJ|!n}Re=R` zo~Y*v|IFypnvJ*UF<5P}qjCOpu;XZhv<-T`38o=9x#4A9BsW^9xCnJV16`S&a4(`Z#?h}UwAXUO-X zpwpUD_~8C};6d#c(xrV}GN0`B*iJwBe1D#sTk|-J5E!tv0wDK0SvT)`f+Q~n-uy*E zt~>u85jtbealAr>k2lE41Mikj#WBhtLeVir?jY#t+8LRjSl5GTPjp+p2?J|a_xswg z;)V@Hyz+9y`#oRc1Nya$rxe&)JJzgY&HC8U2y0oDM-my3pst3l@7iu0Yu2%59c$LH zW*uwRv1T1>*0E+CYu2%59c$LHW*uwRv1T1>*0E+CYu2%59c$LHW*uwRv1T1>*0E+C zYu2%59c$LHW*uwRv1T1>*0E+CYu2%5{r{0!uP&38gUSft7&?8C^MT5T*hGDSD*D*i z2y1_Un~AS$OArX~_*k=IAS`-NO*&h-QmA4ER6EK>*++{a*Xjuu=*@YHp53&*niEP6gMYf)iN4KG141 zP(m3)7Rw&YSdncSXKZW8Q8>r}95J>|HFj2=P@zdE4<&*u3f4sn1z_liyfW;(^=y62 z0KTQL_f0T7DL5=h%az$wjLRkn!xWrk7b0dGiUNEA!TD(s%R2h5x}f-TD2?FM7HB%)av3`@gDnY3Tk3YpV_$U=J9VuIU@z=;f=L|Gxg632 z9147JG6?in<`Oao;T9ndtVIr|IHOs)7nO}MigO`u=oy>!J);Ci(ObLx8idFoERbMVf!FbmnnPVuafX>wgU_Cm+P>3*cJm~RyL69f z#Xh&$F$wO-aBkO6fK$ut&>^r_XXji(h11PNG$}CDqGylU2y~iu-4|?jP#Gj2rE?gA zJ4u{4y{w4cXeRAQLJhC2qMG-O2@Yd9O&|iu3Xmhspexc2_+Z0z5RGze z2KA|05Jnwb)vW$;G3m{9-IqhoMFHlF56>r27o96DiHF^^hc`9*jAm|_(&ak>)O5xn z0pREX%Mp@bpHSVcBocV9w@ny&^oSdoS9+A(eMEvFc~}N4L>`II93v*>pWM5h3LHPB z-x*YJr(7hVngT)t+~?xm!8LBL#NFyTTyX9&_8yacvHR^U%v2ApMGFD<@K#8hCYK6;P8`M-~rs8cGYv#9wxz0h@(%tADr?odWwpl z?#WW~13Y7MPKTP^g40fqWDob6kM$={MSahB4n1$>PP!j>Ew8`fG(W-n?Dc@_Ot|ah zvpP_OB~G3NtsoEKYw-#vI?JLtgTU8SeNWXgk7e(H)6QO62+uV(^Pt~eJ)ko^@x%Nm zwBr4l4B@d#OOEl7H?JVt@xXfpWGZvNOCx_8f_MH}-NU-f+gJ14mipB0a1C&eQ10?k z4?P9XZ#DIATU>ZJlOJYj5O*Z`{=o>K-@-}U^LL!fteBZkG-@>k%=Vw@dj${-`Lj5F zmER4JzgRj)PpYAUbzJm!b%tOt@`h{ok8 z)E9T-vguO^{nWr2|AG6W-elL~*Z2XlHE_-M1=gT#H z>G%Q~%XOm-8nnQeEL{inKdb{8jIZlTl?pyt&dOB!aO%dG#Gd4=Hla)!=+T2sF`8@} z-C8%U2uw769-@?iGG7IB$sj@LmYVMz8Dq%PHgh}%3`Y^Qyr3P(rPla*z^(5 zPU~?|kWTuI8~BTN=omgyG=$0w@Y&xC+nT)0J-f}*e0g*@h4WbljqeR{#sk@HxDdhh za^0^A;1-H|)r;%0PqXCT_>l+@S~?T2488GSU>jNp!5kBAXyZCE6$VC*loj}Lcn}uZ z@Y=mF*TYa{L>I_>u8#)Akj^UPM?YMNfqW~aeW@ACT)2}K=f!ljk!DNz&nlgk%YP%| zkMIIHEneANo>9H&xdlj``w_YLYJgu>Qu!DJV#b4@UHGO zB%8gih%dJ@cBp&gz;=+^@9KnXDa^ZhS+N{3@w&Mgo3hczZ zW#_?I=5SFQglbg(17za~?z^cVx`Jg=N82F);GL(b&FV5@79&H3K z6OMGkTAkQN_6pk%$L|Jd4ku1K!EOVWd0@|`_lq=cllNqIr@bX7IcJjWgsUFavg901 zLrnC+6(a`bcU%kPWzYF0B%BiJ#tc0t8kc#BI{3%cge%;Zow;d!7hlhH_^jE;PaG?a zURQaqzu6YOT#J-PHs`t>y8LYjdyMp3ir^OWmkP}%wHq=sCiyq|)f=ZUb$=eoTbXor;He!FaMWxa@$-QCO;^D2-;1Q- z)6<`?#*I!&$khW+JLQ3AhhID!MUF=AsXEcHXQ9FS5~}K=r#r6?J5QITxw|HZ!Vm9` zx3|f=&d)r%f~7%=S?52=18=h-5B6CEJs%x}WIltq4f}TDmU4&PYvKG!4IJyKf$P+DlP6 zl0`6uy|ED3>3R9eJyxyw%`@3c>APKxw-Po66c3i9Uei5^)ljy4Zu(*{77y?Lp2I7O zuov6Bea+1K#P=i4|H&i5;5;CrQTX$#2Z!hx0S}SHm%eD+7rYUdZeIrCAF_TjW$%g zoDQLtTVQbJboH~0S9Mv`c_0Kg==SN~{qZjOg_s;fQ;f<1nxep50sXEbunSGqkb4hH z)6sK)rDHifmc!rHj3tZRHHC%-UY|eC7dlzg#&UQphsSbwEQiN(cr1sC`c!`a_GBh5nvX=i#MdwW)TsO`Y+E_Igy#WXN{rNx%B7&Q#8P`yEvN%4TYS zPwjw4<8q$&x=PfmZR*x$I^aZoIcOYhAb?Cz!!WAh22U-wYoxK$0v-z;rcHV{We_lF zehQdAFYf5l*3fF0-t?NegpN~_YT&G?jZ0}zHmSS6pP?1id=S|IJJSFZOxHSVzKEQ7 z#X0*japuZIh|g&jusrh=iP3yDG4S40i%E2r_-=|_c9wHOE4Y1TzMnTGR_kfgEcb-y zBhp#_Q_Tynxs7>^mq;xl*^WtNu@8x2tL0?`8*^eVID|O!65crC$hiP1v4uWOj*4%d>y;)!`wNYMD2Ga z69;Yc3&Oe#t2$EXd3BhMCet8aiPl@vHp4r$4{OtUy7QI`D%KOqqEOv*n?fV>oH6aZ zNn)`yY+4}qhk@$6Zj+u;01Wu?0>dd=iO7y6t^~H4c9q@}o5~s~%pM==z0y`EXIrV}#rn=qx$%&baqz20*eF3ex8LoZ-ajF=mmKdhXEW54A z=g`h3%c?7)`*dWue%dY@2QL>cB>Y&AQ4i9ed$tmx3JQo+bMrO|EEO8rtD&fs6k zlr^d z!<04SKSU&ei;vi;SDop&-rO{+ig!6mxJRvjkoq=qARTD^C= zEs@|b4KQY4EnzTtps&NYe4?jScVIzvwV`BX!gei}X}J!^R87Zpj521H-}HgRnyATg z1u_ntF1wOw>Z)tjU}~m|27A&dQ9F$M^82#aw7x&Ee&AhG%xGqsunu1UBdSeIF7EgpdSE~`hbn#>8#wI&n6H)spOK}n(zr9oX%{EqZO^;RAuY)bgLex04iS6&UjGHzLBqwhNRA68$c91#$JZq~OYgPhV%Npo*g0gOujiP|OGFEv{;TizOVdVy^od@cXiUu;2EVknrR9EEJ479i}4Uk1WI4-oYW5s1kE*aQLu zC}Cra2r_=ae}_sKyM8x>T(DqD4pHwgMd^c*{;a8Mnj@;i;kbV3lw2EubJISsTv)ACa z=S;bm6NRWi?fw>X$e`N6+j7*WbNmrv_ea3d0dBAGem`+SGgogv{Af4d)hTmu#{o1R zinC_fmPahhvc zCsD&Es0ZuLRF8pSe}QLaz{x@9)y|b`uBF2~Bqjt{&E@ti8)%Dvcuer+HfrH)J>fJ@ zc3aobpx@%5uZxAxpp=NrXt3$J=sJ0++r{J&2z~TR)rca~O{diEKI0KtS;`Y~_tW&_ zwxq**vEzs;_f0c*bFm|6lsm!l@k?qH?V@F9At5ZDg=!J2{R!~m}9{% zUO9btS(c-xT`tH1FF%`1Wx$dDfd?HSn)~$ZG2y95viCHHHv<`!4q%_w$nug5st-6Z zq(=WNg%~AoX#?C;rYuy+eatQtZRHgJwMf-yZ&b!cq0Z*jfcFB(n=QmcPk&4IUcnyd z?r`tz7)@jqZ7w$AlagoUp6n@bj-JAt>S4%HUuAr+J2&MGeWP7{-Q-CmE>4_W;f_?= zUoLzM1$~ng-Q3m_g3Wi3NiOoqK6Z9C;n9~42(Q@M*vPK!IWZpsgcZ>4T(t!jL+%nW zb(zZIo2hWv`C{d4IratOt0 z$>AWPz&yGekIp?Yh(9Lem8Y8H&wO9Oi|o`_=uW}FlCtJsYCDpiPBrE?)l;n9`nSFp zfxQsHzRVqd<=Yg%O@yHJ&`=O&P(N@O;#k~yJ9X&um1V!5I7p%EW?<;%gKSVQm1Zk* zaL?2=_xA0welTe94rl6S33BrfayKhzKOY*jnH=PQU-B1q_fIWYvE>G@HQ3@JXyapW zKnvon{Cz7GR1u;D>-TQ<`7A~RH=D}dQ z(27C1P>)VLHIM+G=hPnq6|2pzv2jHe{EJNV&lEtUNC zWjKw)Q;Ct(x7u+g8z)TTKX?I?d?Q-0p+q6kb?~RUGWGADzdF(=r4`N;Jr2ub6#DkQ zKbkt1IN}xmmO`ma69EjfH@C0$M`(bp*x{T*HCr*g(4;c$K=H35dp)I6OO4b&!!>~t zNB%vXuAo{g(-GhO&6?OQF0xg>gY9~ImZIEv3gG&%JHK&rjA89&o1f$K(wyklofc8^A2sQGjt-}_%RZ|Al~=^5rtlCaO#4v zx=(%^!8`$gxBeKRES6`Hlt!0Nqkb-57A752e#(zQ&%7}C{*vtHllUckA+5COe}5t0 zDd;LTGDxgIpw!n<{xcEJF+?`0Qa%-?8T3gnx3b?g8*b%nRlnCt$N9|kOZ$FT@mpr| zn!k1KC#pSz9HmhM{hxceyIS8Y$dsT3a(Zz#g=%VXutF8P-x_)PR?qj+J_s0Wms*vs zY?hcbzhX5@EWOylO-ou?7Ea=)r~s5$;m<54TyhpO^d?OX$G1mA$k{Eq@Y^xfIra1U?B zk??3g&OQMD=?clI8~fOsz|ju|-6ADvvPTZb1iSV<+nF+jPy1LNi*nDP>j}ySmC1FE z|H>0Od(GnO2lFhv7XMv4#QRY6cu@oL+GkD_5G*jJGBo~eR64c8XI|g>R$#(Du)3j0 zB+#X0z$4mOU?Y%lvbj&G?9OXBoPAwzO_rRl1qAS@7TgY!cD-8qL4I&C`m`z0tB-T> z&JSJ;T>rc23tamE%goOE184L^HN*cT%e(-!)C%|_pA@;G5C3r|J*#eiWPY{ZdEt6` zA~Z$zw^i})X^pVO9J%>5x=awFd7MUj7;xSkT^n>Vo;mgHEHpkX1TmZp#N15Yuix1~ ztPjO78;H;@%pIU#3|W5hY9FZ{h`3ok=auRjrI-#SNTA0hf6<6gRShRy&b=1FmDn-V za3<&Yb?MV60kN45d&BqUib1Gnga2FTeV@h6=lcK2;hi5fS`xDGN;NDUer1iIC(?c) z!+@a(<{{a*P8#lc6>t>6bylF{qtN?8Y$jGiL{S0<%ipmzcr1U%@^>tMPxneF+TieO z5Yd{7#kXIls{~;AJC?s=`8$@sWBEIlzhn73mcL{9JC?s=`8$@sWBEIlzhn73mcL{9 zJC?s=`8$@sWBEIlzhn9P|6l&@Qh<)|%z-)M2#h6pu$>#{Mhmpj_%2Tg_;~!dA2%1J zPco0B`Z7$B__u#@c_zv1toMinq;UFk>L&F(l(s_+CEl_(Z5Io{@S#^&*3{r02szrI}@CixE zJ3O(EJQZpj)1M+p14BvOBt~^nUsAK%^DMv?JxvFD-x_`_^Gym3+_)U)T8l986Y`FK zB0EWJ(dZj`=Rc;|d6LH7@qk;<Kd~kDd+WSkY*qE zNnjL0xwE(>XIEAK^L)PXc|rafVw5a!CO&5WU8Y9A8Tr}b19Dg+;`5lZOWyKWrF-k^ zVC1&b%?M=jl&KN zp=T^~99!Mr%e?z;1yAXN-; zz9@36U6>hO^Uw4BSKg}M&njYnvnlO8u8vC_SxtP@m^hNk8mJ_JGvD3LUT!+teLVM> z;(0qMN!QIo@wvC%BjHxrs9))AR|fD&rU}ocDUU_ z!O?>Q?uqs5!L1Vgt{_RP(@i$cOzBlhn8tqi1Jm;=r~7q8Z_4*xhJ$~UXA&%oJ#T0v zpFHn)b|&@qpoiyHlCfVBs?^KH81v%xJ9~dGaZsDkbLo#X9S5&tnVqHIJ@5aZ(#Ojo zC6)6j{Ii5W1V_SjpM*()piXbtufA7xeZo)@PLqCCaGx|(T0TwY(}8IFzBK0Hhc0Da z85t4gvmQCG9*u*3eyEHB$9py#4)!2n6)>r)jjWtVwd8HTK3IyNSXP}+j#osQK}F^b zM}M-PjJ{W&<#>-(nk-j>tatsubap+gm9c4%vQ* znzkP@_v~VtXH^5Uga3Kep!uO-=un7P4HG6p&O$_0uky zIa4g)8^F&}vSU;zj*w5kRmwSgUvisNT0Bx#r4%8P)_B`h>7`upT=C%RSV4qRm*rSC z$xwH!Vj<7iPZ{M}zTqmbls3kJs08I2@TfQ5sLi|aK|Gb1CFRnCvG`l%KP2O05yL|= z6g?!0tu!P393wd@a(}G<=zrjq@^8o7{}d@PP+fBzoSh%-bLL$#VH{6Tok~-V5>Z^{ z`>+!90#cm){#`zZhImVa-Ue?nkAt^udpxOEwI8aQYobymqq-lTKF2pPe@4GeLX5(T zgEgwHR!tm`Oldo-!R9A^1&y8IwL>{*4@4*zwI^DvRj<8NXS~!a@zhbmQ(Z-Br_ZM* z52nzUe=Z}`C7(NOy5;?A#_x3Ii`=>Cm!f3pWjXqSF2&b(}W#r$b)=*7Y%5R z#skvn4Gv92<8*V*7$sViFjDiWOXp_e)K=BZcF@Fg*(n-W2T92^J-;Rnr4}iz7Q=)% z>TC1Yea$}W#>lw8GZ8`&eV7&^eAV6O6FwZX3{10}rs9kpf)2)7R>Hac0a_d#9fYb{ zieJ@;NGI4LwdfbL-X+ol8rt}Dg;>(H_)D~sIkfw1wAsD2Kc;Knn@q76Y4118`M#SI zK?_L0wBU^}1KG+h*mX?rMt~G4=R1x;gsO`tJ>oEHkci@<=bEl5 zzpfkY0$@TnDR$8rBdYBKTjUbe^Fa3plj;W`b%SIL!c+}h@#VtthnWh+L-{3;bD%G_ zOQc=~hE4j3i6CFttPuXP|H2});a_M8h~ag<59e|??Xm;Eo`3aXlI^mjw_YUEV#0v( zgE)f|&E;RGOR+u69;yrA#^rcQBX^gvU#9wb{L7hlhF(mD46j%CbBz?MR|L|R?ZGlm zYM;sud;xR{w0pKAv4;86ZiFCOKDLf48?$4DQ z&FynGQNncOf(NQi#urx1s*LAdRwGHlMf^)y!E5tK@Z1DF*ju8#TB?3wZJd;J%6oM} z)L>P1g*wu7EK$ZGq7RZAqg4E4Q`Kxi)&vAInn_&STmU0s;O&X|uHdCwZ_`?rfn!Rd z9b1ZB{&j5~bI;=S;gYq3-1SOtomMZEu?Us=cJ&OtRob^I#=+*xcLpfV^%Z`L==t#; zm5s0E!?n2Uc-Q8Iq82d9jTYH;G_3_8yf)L>qA1AX-qZp&$($Ipj>Xb7!)bwEd=Qf(cBzr+BusTs*o3Z4k}FHf)mGeW*{XS4#LQOS3@%FmQLM4W&D9Kj1Gj_2Eac|- z)(do-44i#hj8tv)n(fR%Hh9PL7Li}P^bp==fG7)uuO2{`6yz~!=?W+MfT7KFv$J!D zBZAKn4MGT2WHTTP;OBz~w*&Z7*?Wy4OwVltL)4@6_=A1myv&Fm;+@a3df{?AK4vjV z=Q{~+LBwiyO=EC9*#`g89j6*d9Hu@&Y`60DU%LmpewdxCD4a-;eOi)E)g9ov4WOp$ z5ba}Yivp-b?gIIDfu#;PVmn!&-5=-hi2dD+bF-KXyVz31_Zpk;uGUH>^O1SG54v}A zIvvXCs#2J@T*&mACatWQ9si;#i&5~BQb)l1{W5~xay>`p1?_mQz5IBipEaPKyge>B zw8(CEI@`9~rm$UXzXK%N*X-1fax5uv?rS)x#_aXy%@3;SV}`kiW>BE%i(3!MJ=Waox&r%5P3MpgT;3xt8S}z?lzP zLy+A*gX_(mhapb;RIb-PoM_N;oC~m#s>^E)x$9znf*v@LI~>qEN|S(O)SC@>o9BzU z4bY+9c&zW;^_{r5F$zFA1%?Te%SrN&0F%qO6c93c`KR|_B68C=Tu0=gwgiy1L8R%N ztywXLduYwkl^C#R(mnm)_=P-t61Dg5x%=S`=9so?je%PEF#;&-bqx1Dsfj$Hzc_kJ z4`#erV+-BJ-laJ{vqSqSFggi)(XCdGd1UIT<4O4+eXpe&-A^m7ky0c(5)nB zrxq7a7A4mUXDNMO5Bbx5GGDXBpYE7YMN2_@BG(Js`|}tw8@xn2GBdv9k zz)-}8&@8PyPe2*$vz%rOp)Uo{kJZUp0z?v_z9WqA)u8i>?t+DKKa0Beqg=F$Xul*| zxcmk>NxGQ+c;S-}dZnRv$(QNAD3_8(4oh#@%{IRb0iKf)!bjnLaoks_fJeF1(692o zFxLPBsw;2vgM!6_Lc&Wu`2a$0zt3=zJat4C0GS~e5SrRKjvo1H6Vt zT{DT^nE9fFI-M*iol5iUTf43s2`f^=FX}FCest|M(>ZGAUv@@6@0P#OMFi$>-?n$% zJaBW$Z}G1ae>WH!R8i}PX+k(%4FX2RgTjWceTR1b8c!JBPOn z8J`ab9jAb|3oMsuFw8{PEui-9*%T&PG<20av{tQnFfS0QAG{WAbSZXFN*ah357`FZ zR}Y0A(udj+#^B%(Jms)IV(9&kzZ1*sOk0G-Jblb#5~G1Ln1D;6mS&*2DVz9${?+Z$ zH^$NL^xE}|_Vu=7nLOH~Ig0hnqxheFPY!lZ5mP_dUDj!o=HE;fv9YtsIyO4=6l*+C zh%{=l9g5MFO%lQUNZ-;9HxaCF|2==8*(kHHVk11qiSx??flE2+jGOt#Eqh!{sznzcpL5 zsr)0hr6=y7mpiKw-H%vJBA*ab(FdO_FFp%-7^(0wY$E;ABnql%w;nm$MD)b(QBt&N z!sf(Z^Ek{8Sj=|p0eWXW*{Ngar#fxG<)+#@wof)8!sji80g}xF#W6a#Uw$P%u8&~y z6%_mQDqf9%75+s7BhMVAHQ8?&t-$O6`)=RL%HnNDRbCqDRS00wF^MZo+8&;p`8=+o2az#N1j7PQV!Mc-P~k41MAF)QMtW*3bWSL(n77B z-OQ>e;@`0~z5UF=sazTr)v?V=`vn~}pI^rI`Z#hZg*YN$(xYNRDYXrwM(lqQ^!9g} zr1lgkYEE}Yotm{>jbVTLsa~ThhX<9Mb;mOlE884?3o}=pP2QjydkV7w9hZBKHo;o!exD>D{a8Wd0r0Jt`jYhstA%h_KI#=NagXsu4~Z2NPfon z;V?yu2}}FaZKv0bG|@ln#@^Sm*H1pHty&#&i3&O$3p^M3I3>QCQ!&dbSj{`}RQHx= zT>VhxY=)8C*{z38o!Cu75t!(?U`@ToxGZOkY*_wKx#us2HD zaZOyXqBPejc1se03?q6e;bmympICE2qg)~ps zI>gU>wHBECd0GIXk|jrQCx5jjK|g1p-_@ff zMPf)pQ)LL)Gy(}D-jK!*_t8a>ew8o&^_c!C1s1?#0X!DKV*xxCz+(Zt0q}ak?iFQ~ zjZ38fWDoS4$r}scu>c+m;IRN63*fN;9t+^H03HkAu>c+m;IRN63*fN;9t+^H03HkA zu>c+m;IRN63*fN;{{Jh0Kd#IJMtSCtx@rAy06Zt}C&AVkFF1og=>&l5tJloqzSCdn zB*qe{SEDZNd|B^;;eg0%!z4L$_8Zf`Gfc1Mf}79E7esKL1G9$AYxrwE(mLri7|hhW zHk1dF+Q^lyEV-MYulpMj!hKoO-OUXR9<(r~)mP(!=ZzVv$SRlGmn-8wpt^zFgA=a6 z*@>F7hG^uPJto;{QH9E@jKA6mVBEI)@b5*(K(MpN)TINm6y1irLwYJ3Z=9*MG?j_M z{k31)?1u<-pQ^g)$2&m=QN9^tct??$KesefeTO#_kx?H_pu|HlRAG8T=`F7kUOTIb zzUJ}F66}5;IP~wKquOae#v$xk!dZ&4!Zf_cWSO;Auy)bT)+1u`H1;*8*(;ZMD?>zQEkvi>U3`P4;bD-kb!rmjxed$lokg=J|C1qYi~H+9sRm z{P43e0trmX$1?xXs4?MNP)(NrRP%oK>$Yfc+(io#KPE8II`1@NaU9`97tk#~izr0| zL!&Xn5U0+g3iHp~MTdT{$F#DQ$$tBF`I~J(^I2R9v58pmfbD47tK6xM&62L(@zoCW zUK!?~3GBYYLVJGYB)-{{ADWp@f4MQ$+IiZx^{{wbx_#8M^Wv*mb5Z-MwD^NRo%P0@ zj`3Y(ZCxw>OUOTDd_>B}5&Mlb@LD38sAG*sa+OFll{bw-riKXb!x}pdc@^7LVB6x? zuE&jCujeJ_zDu^Z5>bJ>%PA^ivwGrLd!ETiJy7WBoc_Ip)BB{qXV58zg`>Bx0n>|4 z6@3iuxlZjR;bUbz>ovudrn~KBON)7@BK6Ef%4w60g+}TLUmtP1)HyrrhlD=X95E3a ziBJ8#d#Ms^XOatn(okHP;a(y>73t?^!j!k)r9`U5iX|bQ6}%)e3iG}AmN`}8^Cw$)-3MV zI_p<#>{BY1w!|9{wjt6rk)5y~2z8J)5E;mM`$_d1MAs_2Lr@eQcc zymvSlcyT)*&nVetEGG;7EZ5HL&M0LyKVXD6lr<{{tdgaM%8oQhK5>-n$6OA9iH7qT z;s|+$zsd|p=qSKH=dX>*KWcxh107mg9gqzljt`Oy_DTr@E5tU+Dy9vsuqi|`Dt@;a z{&o3V87eitHEfxsaJ@aq)i0l(pqOzs9K$#i>pX&^5%>K}F+xP~mx7`yc<@z3Pn_3C za`ABVxIzM0z63l{(Ab>&pD(!``PKMDQ)bA&Sg|NU>B*Q}4ddufnz3}9%G!CQu7c5& z#?kNnN)_$$4U9aE#S(QSV}(JAj%mtG?TTLxl*4Y7!)fB0&qi9jhHJ*h5(>wR8^``u zjfgsr56h$t;Eg!l);H0p^zx1LdvLuOS1gH8tR+#Qo*6FYm`K7^#dHLzsCkJH1X8|x zmv;3w&JK@wg)jeYTicup<6@A~8lLhH-{`c;IP zRm&QOOB*M5+b8!#D0lhPP%>)NuZUqLGLL&FKws4=Jk+>T|AW5D=XjHwe066Wv`ay% z%Oq3B?NdIC>MChdj83YDL27$^s{d*B{}S*IOR_P1E$hmv4BEuU^HaoZQ($5BGA)h4 z{xO2|kq#TB1F+il?KC)H;^Ej-PN2r^ZT=(MY2v%e$4GfHSryWWJ`!6^4sA_J(HSDj zI2fP!Kd+e*Jies@OBdn z)`haTxo~4Ldv;{utZREc@7nZ&%qZ^K>_ZoA0i@R5jh5A8ZRR_%{xGc%C5vVvlw+KTw|d`+_w6FMpbS|Ag3X<8xi z+@`=Wp`=S~-?{l%8EqxmdFeGBz2F57RV_}{?oZzHaqRrckvh{>Uv$$KlqeT0vggfR z7S8b&F48ou5_Q#O)0kZ54+7^?V&^Sjf7x@jOiBN~sMdVHrssszyEzr(f24oJAzCdW z>Y|(C-ZTe<&D+?53?mn<@8+$l$C;GG?kg75)qT=>|3(omnNqKPQ%caW4IkU3{mz^o_P%Z)`d8KeY~f zQH;M*K)X~Pyc{37T*1Fs%Cx)|*j*B7RF?bWo2|aVfRR4uYAlmcgSY%?WEu))qnOfa(`)u`f`m0f(91<8t2_f_oc69 zbQtyGul}T5`CVdCxuB#49_2|e9^-i5YRiFXOE;OhTdng0_s|;KQiA6Prbj7T7x35m zbHQP5@~;X^mlMIwB`OTMtDs>0$u;nnsxgJg+LSEVPsSARc5OOb4nnIsPMWyJw7wl_ zQiN}^6s);jtv_XJY~8p9H#O0(G8Rl*pL)K2v}Ww2v%dddw|c>>D;*-3Zu9~V(yMAd zz!U?vrPxQCjgbzXldfGf$v+r0#+x*|Sui=UHSN+dCxV;j8*%uDj}hiUJPuZuBF*s! zEeO`vuaUz<1S(Id#$PG^d<-}1y*71ank7hrkeQkPRvp{UGRv#7$k4KUQo7zpvQABA z`I5lunsSSzM!%EK^1oG271-#Z4`zeX)e=Z+MMk#qvJ*UBZTYQNu>d2 z+*CFnlPq}$ttoFbOOP{gyy=@nN{Y2520f@W!8#t74TrN0mGO!q)r>6NAGOkLRkIBx zy6ul-P*gGWaQ@HsKTW>%iT|STpEF=a0x)tpSmMX2CkqMc=P*jn?WK1xp9x#x3@c3m zxW(X%ycx)f+1NMIZm|ibi?USKgDJ1WLib_Uj58_0c1DA6wOsh-0^CUrCNl~5)&qD@ zA@K3-fTh!xKAdklV6+$yz4#8@Z^m}ENpNeb0^#>4SlUPF?Ig?DN0;icOn^cLp+U{M_5%ybcYuKAofy}m zL^F+)C%Y+TG1+Q6Jtw-Jb_gfVU3=s%sT|Z%48b?JCPKQG;YyY3x|8GMNW|a})-k6q zy&I#qn{GO9iQe@Q*vlu_VJ~tpO9GW=IF|eDRe%5)a6~4-c2(X^lH5Y&Ay65y6dbx)1C^*usYFTTnyIQ z>}(2mHt>LB#zG_-P)@@c!ucHwqj}A>E?c?igFckA4INLdtV;$na;VdR)!Ic>?cf32 zD79l5(`KcJa%q7-U2*LU=|F}XxT=DY6HzYbcgP@BqikAN6E0WBW)i5{vYrzv>=I=X zgjzgbTFG-Jpam|M?(Zb+MsK3NPb?l0;9Pa~oOL2vX@ED)cIRZyp`CRXd9E-YXE>c3 zLI4<>w7ocX_%J%RjbQ%(<>-s=7D$W4B?LaE1`@Q85?(msa1GsdpxiNzwQx6_BS^;E zjbrbvhbRkj7I&gdS5Gg<3qp74jNNnip^xZsjFK5unH@F#F+=_u-JVR9=>Ra{W zcls_gEUsJ#BA#Tk5As~^TReojHibf!7|J}DLDz1XUZ6XJ}8Mb;!^8YBkk?K9ZsCiY>>6 zf<8l1KAoCAUF&aj550M!&P}7y?nAD4C1_E(Ocz0 zj@o+)iFb0&MGtoaY%`XfbF!Rc#4KMaTIw&J8_RnSL|j;Q9p|HGd^3E)xcxM0WBtfx zCZ>H;^ne+dOCaRZKLcP%cd5^P5no$0ong1SbD2!$k5_h)27qbM`KRjprzHC&WIjr) z^-ls^8dI-(gq&)Y`gIImjRy}#c3fA6~b!5xrSJ65Ky zkx3rlD!%u(*}r7bzx)thT^8UwbybRZ@kcQ57t77#+8YPJ%};6{JNQ&l{zZM+Rb@WW zKNjbSZ`YAY{(+!Cz@qbDjrMP`g;cZa0KhF+=zU-5ZCvzaNNymefWWzSF-QVYI~IM~ z4Y;lus_KF7I1U8#Wz4aKDBWXNGM0-t8vS!>B{&hC<-v#-xyT zR5Qx4EaXDHxC9okoq0E|9*eK;n!bj)E4#vnd(< zlvXO?zy5nq9PtN_`QbY2f#k=Jzi}9LZ%aL3($NY zvgO|UI@MOdNlL?u?X}W?3jr6WW29-<>jy&}uU>3h=0sL7Gb@}!t#AOwNjk6n>o;1+ ztDnL-1U>Yp&HwvOJFR%xO(Zhalqwhj_H%1@C!3AiHn*ET&UMaD@OmSvde(k-lHN7| zV$1&9SvZ6JJqD*J<&$3-JEEtT<$+y4Zg^KmJ9-YIxM;5Y`{r28F8<}AUEn9Fbovn5 z^T5T6O;pPoJusyHZfM4u;Dz6>2gy$qsKN=^?CIS5?jp@1o~zlL2h5VjJkcicyL|KT zlxe|ClF>@{O%$u+j{@%pRzrn8Jh-|RUmtyM+EB*uuUu*cv;SV&ikcsJkr9u=|D+ks z5WxCYi}^&5F+{$Xr6fdSR<7iW-gOyFo=@QNmoEv3h&fO;!yX<>eO=D{&E))r?sp|# z|FqQXe~;c|f54Oj^1y5Fp?M($E2)`8-`{H%kgdlcET{ystny{7uC{(@Vq&3MN?e}+ zxj0_e@3YkP0$?TD8Ah=3w@i*31!UE&MT)?atDUUI=AUd|QeXN1*8J)C8G-w2F980> zVdZnBU0#$UOHKVGD?Bqk>gV>4*$l&~@)V;Lj-nCbF?MP9aH4}2Fz#>83b@&0RLx%2 z9@p=k-^A4gptnl3g(5!2G|l6q+3aoo1kTQw`mGQJRQ>3AID&ERc`KgnSe9smxIyyiTb!~00v)F&xuIzK4CUj-b|({`y_6iQa%>oyloGjGb5I*otc#pzC9!+Djq0TN93?WEQzl;(0P{3BW8cFJML z>5^#XbKi-tkg88p-=#4hwmjG{pLV^)U0V_5|1A_2BY?Rr`(=x4H`S5Kqye+B?6Si3 z6;r4{WR5b!z;>An&qK_~ZDzh`DQGD3ykasGQDnZ{Oelae$sM%$ zGXLS&!yZ&eau`|~g6I8KV!n9l%W;DR?uQt0g#Vu~>KO>G`epYMy>H=n>>v_2hk@45NRo%JW>|6uQ~zM_o# zy^kA&k}9QA(nvQ-N_WH1LpMWrtE8l)v`Du|!_YJ2&EdPMzPZmha;i5Gr_1=9DO@51$6OIQg|A6Hm zu>1p-f57q&SpEUaKVbO>EdPMzAF%ubmVdzV4_N*I%RgZG|Jzs|f2G0DxdT%W?vi4a zGH;Vf={3t1#h{~SI1imRHb%B-BG^~&NtR7xWfI_Dyo4L)9qY5bR(@9Tzb*kmt(sO{ z|4I1T5N!FhCC`1zvpL}Tbke#G3OQ?`wu;fPE_BcEY$b#U_-HlMSir|D!p7+}k`a{I zw3fh4z^|SYjh?RCh~KThTFPBSeAJH|O7TIa;RY>mrdky>?>K{0iBKV)1O}FtNm#AB z`Rn+%lQpNJ{w77vNgBKE#oX_N_Gs6L9xtf!3{A?3t!tPGT0N+DzTqf=kor>Skt|$#Tlk2n3OhC~2vQ6-H@=rPCo1MeH;F8_0%gLWA9f*-0408M^Y8S^=kod1AoDhZRHrNqh-}?Cqh3e3m@E zadH<0fZKp_3P|{vxw|Cc#aBiVAZ}8`CprP{FJ_^?wkGtt_ywfDF}3EAAbp^eCu-5+ zcYqgiJkkpMaWTPJW^c5bq$U3Rj*VRJCr<&Cd=&U2s|Q=6?CO&#_ZbhzvV2E`Z718| zX&>_$gPuleU|>w1!6^KDWZh;e`;T!@3f|7DlcilIRmLl$5|MYzp6>^Z6E%~<@2pPY?=qBN7QSwtoSh1hl;W^xr6qQjP=i9X0P@W<~FQ8)N3j`Qzp?2 zSZ?xUmyRq>Kg*a%X5jZVSLq6wOhaf}aJ7|=2COB;-esBaJNpht|8&o;(q@#L+#Vt9 zc27NFdoHT(5EbxIIJc()QTQr)2t9`%$8z z3!^dS9{B?M%yNhNlkqrHKQOYNDbzqm@>tG(vVfSC?5-se+>{D(VeeJF{U!r%PMuZH zEb)8?6N}!ilw!Or+y7=i5lTB9tY}>Jx8-J<=*d}`O#p3mg`!63$XTv?J(FS24|G{F zpuCz{v{aLdORt-B=63`p?9r}1q;jdg#+f7^P^vgNAk^?DVR~JA4LaNTcBeXvoz;Xu z*kFRuD>Pb^68OenzXfn!Q(5S!ZM>+|CWcdo%fRY%zc8PdFw+>u42&sV@zz zRQ9yjg|(10q>{*k_}v!s4+QE$+Nw;0Zx>epZcWX}Ajjgjz^%AhFf7o?eTdn(%_p^y z|E9vfRw;Sktx@7zc8S|=ixK)@wxgDz+Apcq!1WIq?G$^dr)M+*)1k3Ff8WXDvm)I2 z)fM<2^C;{uEAVVbum=kr6+q6mw!_l|Aqe_yMwj*D(E6l_*sDsk)*g<2OqW(qwaFFk z+$%44ag|Q3tw^X#!Kys+I+nY^B_gR}{e)${_pvG`NuUUF?pZoBAT<`3u2-PM{zH#y z_;GaCE|S8zX+U`-)1d^sd1$K7>_mWrISI2GkbKi;BTyUS4Bikao*nhhseLpjVmsIQ zhB>@JBdrmyRVeArsEO=p?ls=F*i(ZEwYX&KXKmZ>o?Z{;jQsg!!h}+aXzndq;w|bD z+0<#hs?pr!%X}GY`_Wy|l~0wwY+q!XM{8lW4eKJ`8GDo4I_@GvZIQb;C)tL?R61+lkJ8h6z} z*k6M=>T2&^auwIa!&dj&+NKV{kt6PE_&N>Br^jMsCtXQ+jN+p&L}jTp>M&q&jd2GW zcmP_SrqJLZ6oBbFxqn|bSYoI4YwDo%^w=d&iazij(@{P5avt6yM76Y<0PQn4MOTj) zTZff`&SzJJ_f#i^G`tilu8x6ikkFZg1?-`$@B=q%eDy`tFLE@N< zk4-H7m-?z)(szwd;)=nczO+8FM8L@C!*x4cLSJ(_G?hSn2mLy$xbJvy&RL$b2!c1* zd+0LzQ1x&BvRtgmY%$eE&NAH=KgjRsNbIVbI$&O(6Fz<`c3o$J-ri|#qO3O&}T!z0Vr?a^-fy*Ua9!s-Qw)q_lrRntC0h@goeZG zCN=1xjQ-lTLZZ&h^7giJQMiMUjd1;?d*oAXqUW%VVInb!r=5?cI%FipccaDkYCmnb zcbp}4+$ePpv33#Gb>L%&tg}8Ek!m}=?ZDF(APemxV(Vl!@0#WQ)8r>W82YI&y8WFp zeJ)G!^XN}>c<<>kx+33}kO~*K|ET7Ss-DwBvoc~xzJiG|c(AZ(chXFC*9~=Z-$`C6 zb^H2t-?c=thDwr!mVRG}{H@r`X(q+bCvlS$DHQWwgkF-uvUAbB(`dJce?zkRq7jId&~qs$A6yFP(XCn6qip~sqT_bEjnjui zlr14Zqi&PC9?S}9KcXHUWeHo69`iG(#a?gPt6l|qX}dj1d*VnrJ{IdU0-FtKLysO; z2*fy`&!#}m3EUR|mN8X^syjlY&>M2T+A=e_FF!hmFD$>+lG(?w*GLI>ImWD_a|ZiNQ*?gp~>2Gz6`eud`QWAv0s z$CO&i7i%&U=&j_m287`U|a}X5i0V#uuh>ELpG5fc5*Y6=P@)SGSnnJ;CnkXVhMYJ zs|27J+GQE)f+!x}D4~a?|0ILu2SkQJQ<8@MDYSIS6Zu_lAu{uOO7$>agyRql0z+sI zQ#-1BI#r4JsM_(l{@74p0b>LuLSp?dOno=J9XhfDQEjRiUVb`wu&%lU5kJoF+LZ2C z4dCB~jjZjARIsT|8jW^?`!^sT&!k5_w5a@iH+sl7I+Qp%UD5YfyZ^#cr3>7Sj-f=w zs2;;Q?*iKI@wlEADn7;>OU;5Ag{ojtO3<>7?o+hiLPoC&)Xp(R3%-th<5S+19zTP_ z-m#6#N~lZdtFHBo5$TLK&~!d8)Yu2BQmSZBRgUu*v=TT9HyO%d{T7}D_tGJUsAJWi zKsBD@t22e6TgWLt{o4J=f)u13t_<;S{cNEYyF2mKP-*9EoQFgM8x!`JvYBi8Bir!D z&+|fp$dBLNXuZrD%_Y)upcuyu)5Hl>!Nt_3A0BvjuUavw8Nw?lAd@Bp>JYBi6q?rJ ztA|mFYVlNRD}uV725NsJ68Z?8{1rWg>!DrxbegkLT_QzW)=HBIQ&BNin5wtjTMvAs(nEmZE8km}KPZ zxR(;g(H;wpl5k|75*wBTG0bRz04AP*zcHF_IsoFAvxkne1Z}xa$WG_%85cyCIc1k| zARrJeqie6C^AtRL1e*yt7x$^8@*URZzt;*yw0YJ~1!B%dR_aFS==ulDz69&xo9hM0 z=#Vte#X+Znkh*JGbBUFD;ovT<4UyP-2@UpH6wMq<;cSx1Y*?WF_d>l)&pDCnxl|H~ zR2}^^#C+oReBQl|k*IEBp?>iB+z(8EsnPu1yx!+*{p@wO9)!OTGJL|P0hBMR4*91U2D~Gxe!`<17S#67%It$g)@ccp=Gz__D z8v}RGf`30*)Lu0j*BO|-H_BHrXbv+T6*U^8#GSXQnPOj@W`E{c@N&rt9zwe~s6D+< zxj14BkAUj;k@VO6Yt}j%OVI#PfrgXWaxK$3aCTr#p|LxO#uCza)hc1va}hBOjNCKW z^juy9Eu9$yuRwgGj)r3t!9LN{(-Fi`w&@LYeznb!3~Oen zxXzUEX1NlyI<5nJT(oj{uDDXU{48~qu+WS|c9Pr)PSp!s95y>pL2Hc!tkN=8(Wvra zSFN6ZGiL;v{YIEmrmj4ZU4`tKHWRNAGIqRZU(-+=X2@A)yZ{Ppu5yL1D-Wp?KtJ83 zj|&o*3VE3q+^>y!u0Li(Ea8o7@aydiSV%0HiOpC%!P?+BSl_r`KMfeafdjrOSpGXH z2u)d6N!@rAz9CDsk>;QwgtdUfZY3_TA#`E+$jg%b;vesC)DFtlLTed#S-obryOFCsbI2UBu?rSB~j#vXjXKfE=K9Byf{y)0~fC z%Xt%(F|wV|VE1gyE`4Mo2+Jg(YWiooq}wGNTcsmfWJR;a6f#qra_<44Z@&M-6_<_AaSIN%V1`mc`b@!j5qyAr1!Q&w-i%3UJj zv}p}L*&~R3FV|1o;buSVwm+lA(c#JnrIvidns2b{&^gtvHw&&H{n-`zn4 zvK6+;Nq9;U!77Z3Cd787?K>6hIFXz+WsN@*iFfNQa{s0JmSxFg&F^Tica8hN9i!1i z0s9m`%^fqs>Njlp)#91y_F25sJ9@xz3#o->wWlK4DU;y&Us4m5h*ck7&+s@;PBj-M zDo-Op4}O#@d#>jq&pMW@h3T^MV7Mna;{_hInfhN(I-3ivv_tFMDw|w0)>N-&*avoh zJq(vU^~Jp8{(3pjx>{8`-=Pb?ci4OOJiiE~@&YxUnSd@Ss?W6J-GQSXu1w}`C=U;& z$n(@Pekvb4!6OGJ>(3o$R%zZ5E{^z!m;l`^9}}cElTV71y8VTZaqyMI-^iFoi@02r zci*Nj*Ge+%X2bb>8f#r<|{&noAaw-@uaZ=Y)g9 z6ki`~KQc-`W5A}mxEoWjKw+cbh^cQvj-M=ne*v{iEcJELtlzg$zti?ZcwKBY^>$7C zm8RS+Va!bl;dRjAMcule(#1_tu2W~kO<=xna`=qJ2E*XN#^6b1+t*}4ec)EyQM>)!R-+<~bJ$FNbI;ny(1Kv&88A;If! z@%O*H?h6m>CaP~oO*R%r17Rlj8Kb`uoDS7W_akZdzC=OGeSuq-0ouAKuvl6m7J5zG zFWWDuboAWjt49ly!5P&YR_<+g?!9@3e4lKv(=7VzQuxGM_ZoZuP&aUmbN?$pdbQ(z zyV~jb|6utiFHDbqKKk+$m&;M_-6KfkV`3a>p9EUjN3ZCt_qH_Fd!zmhBjCMHq*q8{ z)+jUj_y^gK$zwB7VRyQzl1gLT4j-7LgXO;dilZZ6x7C?1FX3dQsPSGg0zbuoFH(a= zs!YdIz!PmSQLOt}JvxrW-~u)O`NQlV=zxy-T!Cp%k*B^l646Mp&J#8y$SG4nh$5)S z;Nk*QlAcR$EP6W|b&9siGVYx@EyB{@B*uj zrZULb1JyQ<9{|d)y+@MU_6hn711^@=yWjg;A9(URqDUHPQx|U5+&WSUzXHVc{oRj7 zqn~oB5nX#7r?o|M0B_&>Prz0B4w>g3q3^IT|!x4+0TNwHmzlb0p zk3wJam{O@6zR}6Gf4wmC&XwXVipCE^pm#R#?|y_%ux7f?FKwE)B|z_YI3LXYFsqm> zl+gkTuW7<~^{+_c_A%d6$DH9uWrQD5rmrSem)e?#(4}0NBukP;t)$>s53Hn$+%xMY z5sNmhhl+9>73wJfUvFj@du?q-xU~4>XVI&anxs%6p1=FX>vi!fmV4&f_@^v^y;Yt} zY;%6PP1*B}JZZ)du z&WO*(*{UqtWZ5bYnn<~;bu4+4=TK3w`Ddr9{D^~`qiKEScC!A(#Nd8IH&$z@h4K^dD!NmV z6mI=<`&AZKYZeurUH$%2bZG|yZBU~So2YNCLMC2e2O)@HJL<C}wN;m4mXi3%A6uY>X@4-eZcl`0lvl zDenlF`3m@c zvkwvF9ffu-}S27ZxXnmDI#02mF4bA$xJlizd-j%#Q>pB@(TaS8Rk`KQ%-()_>Z-#v8X zA87mojenr=4>bOP#y`;b2O19>uWu;61AV2>oFDS?s>`F?eW39VH2#6cKhXFG8vj7! zA87mojenr=4>bOP#y`;b2O9rC;~!}J|5+OUhU=Xns1f;(#=X18GMV{$?|r z%x7-gN>D4^Jc09nX?(I}{BGs{()i3F=*N|GLxI<;KZ>zttvXayd67}eqC!gr9Rxy_ zmR;z&-GJdGLC2&twC=8ZZVstaM@f;tVe|Ly7A5!5Y5o0Q+@uDU8qk^7`-y)KuA%z4 zauiz)hM+qBltZy^ZuvXCa5t=z)E~}O+1+0ECpV9-0iZE}~Ne!G-EfH!5?ge<=k zQ*APjmjY$QK&zun?RPzWx*`^nf~h!nlFh}z%v-g^=$oBmXH);1Hm0aMViKXVYt_JB z-i60#OgXWOeU3nUi2U7)9`McdVbJ{KGWrN5e(>0Z{z-E3I@Je}r;TQVdriIoaZw30GF z+YM?0M$}8Rt#~jy2iuz_)H~n+u9wf6XvGFoX{YEp>J=13bAEG=O{MaY@hDr!#wMFc z7V&5eD7$_C&2qr!*9YZbE%G5koTL$?>pX~PtCUW;?lc9tK9R3={JR`-ws8(eg8#PkCL^> zP>G#L&gb-8Rs1|Z5fxhZ14EQqL8(mr{#v_Gd8*6bUQaM0n3(y6{9$uiXHN^O+8ax zW%j)dXVq5y1Y0jeIlQ5`FE^c18b%RHeucM_;W!O#p@G$w`nz-2v<>aYZJeQ}(F^zJ zP;fmzXZSel%1BjX%S!gqm&^BSzJraw@x+cJsg=#Sn>Q08EQ{661NzZ+ZuYLRI^14T zU~{TnpVn7s?&u*%I$6(EfmHhOTL(7Q%VvSTcLZ+nc`?h(w?77TM>1%ljXLN#e-62^ z)$BI-=w0FHcWFAgq>pEr-x$25qs|TQSJrOw$jSULMyDZqk z)29L6e})hr1LaF>jZibE{Sar0lD`aBeIUxyuelT&^ubM# z#!9zeQs7m|QJ)DL0vGE=aOcSIbtN6@;*N|NyS6%R?ny5F#9Zi+^Yxbs)M%=HjJm>8DCDZ0@ z)pbYoo3qsTT2vQg@llRgXtm9~Q3vW)L``g$(L{J}*U6`O9dQ;~+_v{O@D|ppcNzW* zy%)UfS0!9Azr6_j z+aD~lvMAnU(cbFbK}g%qE&Pc}@zWhI-|g)yYz%Qs`i_m;_8LPGIjN4kb+IRw;2tfp zL4UEE=nhkk9p0Swcdm&(f$4C6GgIkB6BxAG5XUZk2Zok@zeFL#}tw*mhUmv#S3tx z=rAO+zcF6EVytXwj+^8<^yw}g>t^*3qh*s~&FT^1Yv+J;ADl`N#z@6IgK$zrv4l!8 zSoRcKbPIS$^5HS@?{!gHMoAR(;2X6QI<|}6NvMd>$;B|q2XsB*lKzYbD%F;rLtLKg}JR7i2b-*a0=GI&Tmx+TzpKz0AM z3JK=I~a=91p6o@yr6oWvLCdR+e)1fZ9TOjXh*V>SRUF zy6j{6jKH$WdnHZ*vQB(`a?*XKuwF0p9#qS*c+)^y#`1+#mYj8+R0zDc{-oQl0LoY^ zM;Rk69R(F?mX{xpujB1^rI+8qfihP>qq4d~0{W7amE}s3 z`&%FNroj~rl?UH`G=qC>=-mt;|Q$smJ)_9IyM^G z_FJm$c@~AIVN1d(THR1v_yy$z8M`KJ$|$SnI0>7^A6{W*W09bwh6Tq@bNWp-QA%tG zO$MaqyJ1a%^A2nkt#op&Kkf~}m6JJ{nu!&fcOH|UDo5!lwdwh%1S{LGZUx;YwaSJj z8HZJJ%7sQDjm%b!V*Hxlh^H_q2RXtf@A9?EaJ7nWwXkG_l&n6mBBls2rzB;jKAda6 z7M)a2nbHVr$!DHcg^J3HN@OTa1CUdL$y#rWr!jP<6+u%5GCCe~(^l+S%GuLzQ#1+q z0j5?uS`1UBAXWY0q_=#Hul72gW7PhcqBZ8Ha30Q7Zi70u0o=o;)r>Vf+Q2X2I)5R* z)Y){+7~c4zhd;3!kL!Z8blGQcp?pEHVty*xl$F%aW3*)`^@zFWE->bT1NDL#0H2|H zAck36ymx-k(AvBpzbhz^~lb*N#bt?>%G;ab>CYTIHT{^*Wz-)vjtNZ`_j4jhSGT08@; zwgIOQOVcEa{V4{<7|Xmc6427c+t3;$KFGtMCsZ8lp&3K`!v_Lcq2Ji(Y zfjM1K*%+ST3o-L^6?1mrTIr72B4u^IWB2PEQ<6XCij-@N?Q40^HBTAEx4@O|n^i={ z8lklXDb_lC%)~)wjVIiM&mlI$7j7!qtFe7H9Ja54 z)?U}qvJ~{P6vMK_ZMXP${mOYh{;qQ4Z}Y~5c z1@#>{Z+E^Cg=K0Wixp`={E{T5sp1pxo2# zzNT*f3J-}_1(@heW?pP(0qu)+1%dSvML~ebpq&a?J1oY5pVqbtGCKugJHG(-WoSTY z`%V($+ILd>AoR3soV6{`hUCPaudwC!rtP1q?GgdIrkvg9clPB$AKPT|4ZsB9+6 z94usat-E$>a<>00p%OXv*q7`Jq52i)n%}~$DhW1qdaTg-fqP$G@BaiFIZNj|vAp|x1IpPZ! zPDcREV=vSfnS)yExn(C%Gw{%?0q=@nJ~aCf>2+|Ys(aG#2_tv*s>*2uV7DaT$nnzU zwNclT+1=S&1I)givtbj0T$fAPy(6&6zwhX8C5kZ3rNhg3BE^L4@Nm`1IUqddRd6hk z+;Iiqcq>PR5M{D^VfC`l{(YTmd#5Y0Gn_gCeUx)?d=s|*40Zg{#<`ODr0s*-Ulli| z(RJoS7Y0t}1=00)#jea`C&?vlg-vb|FgLE?lN_M?7Q4wdrExfh+k0%67k?vpnZEIv zlnXMMAo!O%tlc<^O$3%tcx;Yyfv$v8r+F*xz+-o>DI*$yyU6H@RNp#6$Ag3LnA`i5 z3rh))&cd?mXp`y}SED%z=bwe-HLdI-JGcTxi%(7#`Xh^_{&>b7c}Mw>tE2>Tpsj zz92hLGKeR0oV5iVp6jB{vSFUiD0@3}{H{~+5BvCaQ;o}5z&WVnl+nxUBbkS8@#SYG z>HxXR?gj5J)|WQRonIondI6}&zh|bo-XvW}gPEAHc)PFh$qGT2La0N`%1xKQmkANz zm{E3oo`H66xmlQavt9WuQSwr6_@Z*1?|(soii@aqy`qDF9%_^b#8Zhg54fEaFz$+$m$i?3CqxQ~j^wVmv${#)WIqH|ys9)ra zUmbCi*XXU1dYhZ;SBLFYKsZ=AJJP6jv53BHMcoXD-IS|+=oU-MZubG_Uer!xHIuo! z#s^%O?RGltDP-T-GI{qgaiROwJb85e%gO>;Q?*BJyn5w+^-=q`ao&v`UX0u9wKw>d zdS40v?qS%01AhYyz69D;?#*KdRbYoKF5mx<3;azjklkPhulAXt=35gFM2-6Qm;}sR z+(S&zYbLkw>a8z)_n9_9>&v=W{~)}eLnO8zVp+(@>F(d0)QoO$7v<5}(%}XHx_~fv z1aw;$AG{zJ+=U(a=*i<3Y_>=5x}V^Xk-pe+c_;b!6%)>8j(7JxKq!qy14kFpdN)NqOnuZI<&PiZ*meTgAAc|n z!TfTm?}>hl`swnbn~BOJ{uuHo{0+|vQ1wKDarH}+M!(5dl2rLM)0=uMS{)slAEr83 zEmyz3Os4;!jYdnB`Ygw8AZ?f8>5NNg!YS4^%`VWTDHG@JngS-t?tT8!g&cK@|&pID}84dh5{c>L-Cw}dF7&JGueA0W_k$zUq>#~@;MDHW|nP5!#) zMZ;K_Q~JA?u0Eab64j$9D`?iGZMzBM3LFS@Y2MjGoQTl0m?r>`3ETf0OcQ``~#GKfbtJe{sGEAK=}tK{{ZD5p!@@r|Gx<3 zV|acVI8;Lg3_wc{5vnVeK0ih);hLo2mcMGR$tJ2yqzlE~^GPg&G&&7p~EfE~vwM}*xqZ^Q1E zN3x;tlNRp2tkW57^go8Br3;??<4tYon#WF+y}yQ;xWlGxL8`cjl@rna7`v!=>GM_| zD%E$ti?!lC(vX_sd?nt*=q_h~y505+Dzey`S9yyxA$P?)bddh%#w7@Vx<+ zzbF=da^e)&!MbvVhNlTX<#<7NG!%PRC)cryAPhcVH2KT-`bQ#$x<;&$>1_y8_X{iz zi*hYQQfQwTQ6k=#3RdmE%&$dp4G6z#Pnr^Zlz&CYgCB}dVTP-9#f%-q7Kx|5@{)S1 z?drY!SKd${{%Kklg_Cmx-S#R72OIK=_Is!ihQ+JatwvhajWCYHcc(wEMBXpGFw}vs z{1uv$ew?ZnB}+j^)pI4oeV`G^D!rmKGS~3>#5wk&b(z@pnH=lj_Xv->ciSf)>Ue&= zNLX#9W8hT)D;7z!Ec^$`Tk%Uxy9gH7so=|9vk$KhtLMT1%-CCUoap0_A6fKFf~D=M zUqF$+A*pQS=s$`D1%t^Y(nXK7w=2yXPB^O_ahOSJp<;lf_}Mxu&d0h+PKhshI>D)2 zZzPp)RAWV327FU&w`Q!C?Q?TshxMZg4JoWW2>>!(UH);G>fN!bjR zC*(8>K8hnVZsltQ=dgNGI;{*Y#R z1rj?7vl=c;%rqdnD`UkLr+PBH>UyCEF2xIm2c){KcQTCHSNP zS(8hplUJbd@<9Vx>*{oL-mh}v)129KdL)~#yD*~CX}0xD)FrU`7IDQh=TjET8AQVa z{L0hV5pvJzH|t<}EA*jm?u=4KV`vGJuBnHyU7zMn^VrYdKfb%-S*Fv@kD^xuUPBM9 z*y7}1tFKt~`eHS?DU87(G#yRfxv@@S9B@{#XPX9&0^Q;i?kuivKE!^caQhw$1E1Lq zN6>m5CPQHsEdFzG>S&h~A_{J%w;zXO5j-(n6z|z-^@o`*j(>#tTZk@x7`4nfN#Vb; zuIbeu;RD83s5V(L70<(r58RWz!6j9A9;5j@c%Am-{wloSQvFWuNl<=rF{3Fe}k@WzHQj&LzgeQ&yAc{)9u^( zxRbXYc#*be79OTN7ieg#eACocvFBNvF?bhrCbFyI?3J57yIi%tSP|>^`LuG5BsjZs zZ2xfBOk@Ewt?{?0s-q19e1tKVchDKJKYg-@q$9hm{ZY9bA}8X85$xUbGVCZ!m}2$< za9tI=U!TUIgmgd5s4cn6`!6nWHa72y1s(r3 z$=G=7>=*VpuD(#Ib%&Ny_}^Mai0^F{^7z7Yss7&Ui8#-fxVIbYJFk7BhWt#!hH0Ju z7<+dw8y)*B`}dO_dWN4;oL6VTJcp5AdW{w{2UWGhq2p zj5~|E-615GWhY-_C6Ba)$^Y=aDI)m#yG_tZH0SNyDb?-t<=rOg$Ng1nF#3qB^P)NU zZo7Q>nqWY*xwieh9E`FMfBGNb4&IUy!`c(aF6g+M?BLuMlca6`E7cMHtkb1j9EsbK zDalJ1&{pZtgip~lQ!C!l(}6<_Ue5e9@wJoWO#BsJ{&8*R@FVdT0ZmV}KW&{#PzB`H z;xNv#u%)s5jvgz^>5Qx~Xhj;Z(BLuALOM62#ptxr-I#Y>7_d()1#R<&%@tp|eGAHe-fc);(>-TZmSRipd9&AjK_tP+*Ab5+_4#ejs6#1_ zNcUSd2o0Z9glV_Hogmido{x7u8IjVWcin`rF6Fv&>d926E*q3sL`DiMDSanx2JVTng%tZk zF!P{nQ&9ags7ydF6|Bb~tCzh_T9vrKRs_Pk(Q9_rD;*Xk)uwGvg zaUZyJWCeqs$IIvnq8Pjo>&f2}N%FqnXp@5emvAWzX?ceYXtE_uES&4;mBR6_W~+^U ztmFQO7H0a@VzPY?OzJ%yaQ+N>C{&hh?qLgZm|{K|Z;u!Gcw7R>9EBKtC1(RaA&LoEgLTqF^)b-If?mE!MbnMJ6p^9aNChSj zX)xYU{nCgEE`kr`>6%CAPm5yQ}aqpznhhVTrB%NsD z@%yP!?8-5s{laG{+ⅆ&(G8k-l&nasXrrWB2gJX3sCDy9-(BX`Q6&N82xchp|Rm< z^O|K|InfvuzsjED#N-)ze5+uBeD6~fs~~+!GaY*e5x8M5;1l0WwgXS!H2M>$19Bs16n+olh5d< zY9=RTKw1JM+PfH2ik_O0cbLepP17GS>zp!WYo$TeHhYmg6oRQY z!#ekxUR;j^V52=JSU;nkt%qavFD9>>RH&z>-4$Ek9zU%2Ii=laUzhk=FM?z~JX2Rmo!uytWU-BXK3`{{$kT{k86H~E4+!3lY23^&FH0<6yI?fv2$+^ZEQBrg?k@<}8;?#Krr^uY@EiR=%Kh{+ z{t|!%X$;iA6uT6B4?k`*fl?~|crwhXQ9ZG@^n2fAb6Wq2nDI3d zfr2iMN(1`~D#oP;+me;gDQs5^%Xc~}SH`Are#9xlG;$ACXPn%ttk_PBc$H}EF1oUb zul!VX2@5@hO}g?7%XH|ADgJ?JEo9|hWffy-^~HtR>k+dNX&_ON=`#M(J8Sb(L$p~n za)o)s^!DBqb-n_BZPv+d_8cqb?Tp!bf&r?kH8LtwvYZ)G+4a}q`cuT~&)3bdWXxy@ zXgev^cvLO=E7wnCR>=4@7Qn-F4rBQI7V|LmH(2Z3Vix>ZtBe=A0S$IMqOoVvm0W|Yi;$g#~QEsO)kqel&P$EX4WN^Hb_$}#ZooU&yiwF7Mf00tTQGm z;cM@$R}|tlR5v%oHvxzWEA3u&llBd*2Fop|6#{?b#kqxdn3b7;wN;R{J^*Pnvd%e! zWX(aIvRcuSEU4~U*&J*x4`vuQFws=%x}@sJKsT*Ymq6`ExH=&2d?Ez>IV4~P6}V&* zzJdy#K^geXP^+R;DQ!OrSo)H#aaW-{XQsTU9))1p2B+Evk#4D~Y`){SjS)b)9c(!? zREGogya4In8n(i?wu5@hzBX9MY<^1c1b?VUee|@kw%%|oTGJx6`@v`zpt>DUw3XYw zWhFWjb3x}xwH<+;@Rr?-Z(o16uq~V2nu}$hT(pyyW2fP1pT;rsR1}b^iY!*O&5}(n z5tvbl-70Ue&jZ@U0g>+{?Q;P3jkViSPCJbpG_@D@bw&2ip6w*}+DF7q7ZNyB9h6pD z*%YWaerZ64wL5(Mx)Hy>+aX}rE43HVuws;D5bHS!bK1)cN1^dz_J-o72Y?Qps_ny0 z+t@mwU!rr0Wgn7?vGtKnz#3k2X*`;34t>{LyE~S z%c987L8wjZggBc&y`R?G#W$>-KF=LIPdV^S-QS^{oAm;1P&wrTEn7EV?E&=#_YV$I z4JLxNPpd?)5A1(n9%K<5wg7C$dI>M6ocG)JkyJ;U4Tp%|PG`s^7m>vPdb6V#rRC^3e-blk*~%!Fxmp z2m!=9CKq=-Lp#2q)*$I~Aw?OH1-rhFJ4Ro)W(uKC=+s>LmJWAvR z)u4U>UH3UE2Qd@(-wAGWA5KJa`=#PRWFzL3xlT2kNXAR&R`9A7n>n`c;S+I=w*+Te zPG>9~ZVGBAA5669+s|YMJQ@IIs_|#sXpftm{WF4dB7RR!V3xMrzK*lSN6uqiZ1)c) z9`e+=2AnHCUFU;27JxKQ^Ye3w!(;uwF3jHRinBvna;X;8wwJ!J^jta~rbr z4L^%f0}HV(uc#R>XEJxD4tcL-FFTZ{4chrKkoLmeIn5(?%W~P1?9Juvy)`VzqX+9k zmFfSrcUNCgcme$k?& z2?5^4q&q&H-ny~YQH|F#~)aSn>!6)X9Z-S`3;~H)9Qf~gZz~Zu8eJgLnEPZplZj%FV zCh)zT$?kHD@}C=g;28Ap61(Zr1y#h} zN78_n zA=`(xs9ZkO6&$)d5a2fl8V|hxVgI)#7fYM%Lb1;NSx4>w)CQmVeRh6yC{_KCCyk|$AnTf5ZtXnfxGEf*H)&hI)6BrEqG}Lj+1bkO_w9;;d-a6xO;h<9z&U1>ncU7@6`2E}Fg^1`A%NlV{=26IAojh%7TWI@bb9l#a%0Fcd5<_qAzK)l+o3d zQ<$}nz?70@h%Rftx=&ec}! zM>o0D4rl)>E>IO%;mYuARNl~uX8;?(vfZJs3H2C}UjD%|%%1>qgQ$=R)h!JTMAyt) zVEbP#+lNzi&BX)p_||}f%2yCCT$ESybId#LF*i9S{w+}9AFebZpva_2URh_5ZqTH{L(LQ7@iXGo=@`qNxnbH_b2)O zB;TLp`;&ZslJ8IQeK+tdB_xM9sF(?)B_E)}&qenn-=F0BlYD=Y?@#jmNxnbH_b2)O zB;TLp`;&ZslJ8IQ{r_+Bo#VZMePMosfn&L{_Qy`t2(So{fY2#&`Tv-Rcf@AAUi#V( zyq5ZbVmC6`c8-y*Nvg&zAb-rM7F`KZZ4d0o!RNcU6*b@9dE*{tB_f8m@S<^-; zNkG%AtYKQy=FiXnn~1O5j@z&Q-$Z=GXp;9%a@K$jEF}MOf9DU0F{B~=e-rTr|2GkT z@IQ%o$HMF|A%oJwg5O8MmC0JNjsGVR&qeC{FA=}`7Lf3N6Y+ppt=h<~0{^3uV%ZV5 zJT+%Gr0pGBt83l^W13ZuF`mEElrDkD=JNT#4PYc|?!IWLxqO*@eENJve?pnhfA@!s zZQFTwFxiUjCd5P(@HAV#UEXRXX=5 z+$8c^$1y~VJ{#S~t*0#}HVn_`{XDH+=Q#tR6^9nBiqk?R9_(wN(7ox4Z%zHqNnh!u z{WA#DUi33jtA|-~TjK8NN^s8|2l18B)_d%Bv)umt;dPMndbm(xNaXcbwgcif@$#}c z0@Xi5C^L!I)L zu!%xv$tHZM#<0l-*r>-T|EWkTdTXg^*f=vj<=-qk$1JKzn)mxo@~lF>l+L1p4bFNJ zsM+XR-gF8VNRX&`5nolFv_2 zJQ@A#O)knwNhH@3^8Gz`cDg-N4=oPF=iR4FB8LBD@Ep_wPzePz3=E&QbVqLX>Ixsg z_IA<^XupX1@|b3o6v*bL*xM8Hne*Y&)%ugfZp3-icuYDMK9glwb*0AS4(ix$T6v#l z&6UdIH8t~fkReGW;O8ZLog>WYBc7!^^$u$K|DonGKkc9gVmg^&3N0*uQ~Wb4%yJZB z@uk&St2FikVZ4u{R-pi_$k^V`y%*FQcWbE1$}g}8?$I0Byr`y%VXt;Q2G;B3Eq$aE2m8oz{V*a^+2>lOI4)FNUVu*kN>)NTlShfloZB2P~EK(tX7yHI= znVs@(H#T3)(pBf``eJ0;zi4-wDawJX*>|kepWJEfKADUbos`4u<-OKrg;xs_IvhyF zV)8){vx6%eX{qKD1|va|7$CQx0-FHIIXFJ*B7qA4+|EwkGzA= z)S{y8oh%u92jbEVR#ZT@JufK8hhzqvL6uI{tc6Mv((0#@X~Hn1u)fam-AC_E!yT5j z#!=_6vygAEw*H1R2U-o(Cb-`76DtT*7{$8(^ozE}e7qiW6ZJ^pPq6w-U_Ic;+&v zAK4-WtBm1CL6IN{E7O+YMQSI%{fwRau-j2=7pERa$|Lo`A!6e^#^Fjlw#%ng3iv^(Zb-I0?1F#EyOeIc;@AZn2R zI0N6enQ0Y9x!0b;zUDjnT<9j0!1J)%-481RQs#1>ukG3=5H)F-bzRDi+G-~F`oJXn5UtcH@?8u{$9^kRbD1W3@J1Ys zUi^4p^i)&uE}`?NRdklFy_iDm`FZ=5W!K?ZC#HwUrIh%phWMMQjx~32)LG>tZufO> z*Rh`jPFp8#nV^*++iRx|tPt^$Y4M%hc0!iFME5yw@+4;NBB<){1~hx79oy1+JDFH| z25Z@Hed*sDwjjlp*o!I^=Zlt-3+dr$>;9Pd zQM4^WTB}!)Qab08^!MXl#AcP4(Q75JlzgAiG5aOkw#X1HphT4iQ>?Pdmq$_AAD<(%mIyjfm2p9|%4 z$a!)13!v)cRQlw2=?BcC``o$vzI(_@hsY_G4Sr1@)LSp55ZIGtPauM^_7u~keUwPosKE-P3=%J9&#NaQG#Nn3v(GjaJV|_}a zMzW}`zTplfd73SyX|PhyL1|x~d`{jdS2}oRMQOo5g<_&>j-FLa4C z7(M+hVp}s~(|vE@(qnt{ifc{^MX$zT!nK-<fuS%e#N+bk% z^neUvOw`hk-*c;({ZM_SJic41ddC93#hsW;SG_)mtP!i=kW9d})G=l!2(2gZW~1@( zAOtZYFJmU={MFvnPhM_MzR92Tq#wka8GrsSBVPu=ln-%U(AYoYFayWW399%CulMxfr;_7sQ_B_KW5vc=6Y*+&C7MxH0ShrBvlx+ z4G*={+cj-?bb2Lvb}YLoqt%~nc3EC@xoXF|Q_UIU>DrBH8)53&#%Q>s4!cbOx}Gwe zz7tL0E%x`^s{Cc z@uj=}?93NIg$f=tnvCa&+V%e=$r*Z#Muy0@L5ISshS>MyjIG%)X zMWkG3q@&tKI?D-rto5pA4HdSRd&^e(E)1G?<|+@3TBvYGW_wT(+b@Rm38#z=7`2RB zJ&gxKjYpwI6C_5HJdAOP@?jxHix_A#p~dZZ18o`5?tW;jHe{n7n!#eUWV|}ZYN*d` zZ0u18A@1E2S@~IG(l27tAhL9{V=z9e4bPAr%y_XjHUuRxIU*@Jz=MYWtHgVnwi}sj z%B*#;LcwEDz>17Ih8!5rJ-I*)18f3mGGrvKfv_?!1TDnF094z}P-R;Sh^1 z(%2kQu6>-b28}jPd}aOuzXv|HMkKq0gWA9y-#}WU%t=gEdO|kNjfn|ulo*`N-%u-k zf|=2bZ_>wFu!n8pH4GClnp;&{yyLYXHd%iUH0L}rqo3R02(ScGn*h4w?2jhWSmTkMO$BLhH zO9gA^ODt5a!0N5ChL)@$<&G-TxEhi5rY@_sM(mbm>`s%6HNEl99sQI*K$U9jwtj_` zn9eHurFE^JI$6e&4E2=U+@_+lwN%GWa|R4T1#^9FqrIh80o>$7^pZAHl3-;na$MW#=kQ#`Kb)bJVB;Yt4WE*)o|~Gv?5Pf`UkQzfs$Tz26P~ zhulx+o|7{A2IxA92s*-SjVfUGr?xsg0wJS;Ec#uaVT`Q?;b_?XHEw;?734r zWb5pKo;l{CW+Oj1#)|GY`|dNa!Q;`}9vx&P9n`ZOfCt`=uUgb3@?5v6NUZ!JsmGd#|)qxGdVA)w+)@;Yw#Sq`YArmPsgoKMajHw~p zSM|>E9Zyu8AHxg^mEk7^mS|osXQT@wtBVgnr>$H)jFfG3HvQ8JfNrMUE%3wHq3LeF z>CZ$>oRnkzg0F;-uZRj{f{i3TS>Nrf(Q5+J%l2auHdpdaz^h6-i2;4mI6Rzi*Gk?K zN~AoQ*ycdY>L}Kc1q^lcXWez-_=Kj=bbU;gZPoUJi@{@t8yfE^0h0}w_iK;I$%D2M zQ{xGZ%POboDSNpqtty}y1(?M@+k+}_+PZV84!&1)rCK|E1f8_*oY7XE3cI-DF^w`- zt_n7~SAtHTv#)=gI~C7zCTTn^g<29BS&F)TO$E|WhMnO8&qY&^^7HQU>`3zx4_Mg- zaQHlS)q{)CWd-FS4tHpvKGCndSWGt;4FIUwrfbjd>Oi(MR8N1ADCpXre~CM?e0)jU za4xEIapCNwyvA&a?XFt*&n{m&ke#ztrfOzQ8mC-jo?gUcUYZ5E^L1K&>;N*Teq~p6 z&p83^_gG+~$ghI2fS(#K-c(k3G69{D=YW6mKgx>$^QyndD~`>}pRdQT@WRL$t|fa( zt_xJ3H~j&+4lcCUSc8}hoCrf;L*KlEAeZZx4#ea~x^pge*np(@>n@;e)Rot+%C=pm zxA~)2Dr687zH@GKvv_p#%j;UL@kSumrwrF8oyG@9=6fOFqcz~2Z{nLGcAL#~9^(b0 z-MQ99dgrZ;7U;qX33k1%=7BVq&*W~3#jZ-$d`nVZRCZ2`q21NQ`Ytrz*2%e&;@Or} z-qknyeIdK~_SLUV)d$7+VhexUoAE9UTd%lqri9d~A9<$^xmx+JtR~#QWAGj-YhzX~ zgc@X@8=b$MfcUJ`_~u^)2zC&Rrhiak}Vm{TrI|R$ISxilakpR2W$RT=nHO*8j+NtpDsd z(1Jp6&|lc?s&(~55E8sgv^&X>iNgHs)>lMmKKK(?EQ;l2P~Py*|D@RL_D&hVshrly zM!%zRb&-0gm@>Xo%Xzlc59OD%+Ar$O$4b7W;P0StW*k+k z1p7aw+g~1l%ZL-GjYoBgb#kpV$9eR154#(`LNC)l9q(xu2cS#!8>%CRn~X^UttsbD z^oFb_HDn#V={8$wc}f$N=4*{7QX~*NZ4)l&Jp`Dl+Ekvkb_@P%e_(nPaHj@O<}(#$ zAs5&}hPw+%$8-~5yXjks4nA7FV;NEQU^~vq)ds9@N06xnbaFMYL3hda=*GR-w?$Xk z>2tT~hXmVuUG1gc0{6=@bO@rUYJq2aI;MutNat5=UpzCT4&KEq{2PpJ<3$XI?B%6_hd2ULny^}c#b#6CH$3z4egiHK{9c zqZi(PqYp^-sJ|87Xy-%*#5B<-Fgftkdr9=9Y@5h27FpZr7)Wo$@W2+PVkLZKNY6KX9T;la|5~;>sT4acKEYc>iUy^TS#bpdzraOHjho#~s{F!)rgJr`9_naH>guN9~AwalqC_>o_>Ftt?na}uY8CA*DL#wnr) zB}kI6^X`Y^zb6R6mbb1jQeJXebNj25zo+D|zSL$P*>G&|i33$|zNB!Ruq$iNCbtbV zsO$#Qg4t>|KT)_g?I}B2*5CWSIxhPd;Dqd?$96jD#m)tPZ6uZ2=luHy`H6Fgjv~>n zgS$EMq>b}zueO#WaFi=oyiw^a?4x4aX$u$9iMvm&G@5&oK^Me1UV#uUnLq-mkh2ee zSbz(zA2UuoSmYiqx}3;ZE~d14V|eHF>E0!*IMeu@tcdI@e_jg|8oLO1eh6w<^I=BS zt&8zdd#nOAfADSncw-^}OL5F}tcf5S^U(C`bP|Ba(Pa4S{c=~jfgS$o;N7bjG&wnd z6pMH+DGQn0?G}w5`Sq7{;=DnA?u_-@uX|48eVAzoJ-<10Wnc3<1*^KW9p4fKK1_fD zO@tO##RA*TXASdAZ>X|Wz4rROR7LMPA*puOLyeI3`6GCo*urL((bO#w(=W7uxIn

Ek+6*Ucn^b1z}-0c z(3lLDz}R?=jx8NcuP$LsnMRaW)Xjpg!lceUN?fkj&stI)X0_Ew0JhV z4ubeF!7?={k~LjEYWA?y%{nwq1%&}tr!!U;%F9oyp=wZQU(4!NOEvcxw61)yAtq>? zf?dsZ6?M3RXkQcbfWJ}I>&w?`+J|;P8)TUqS&q<~lTC_%^)0*&rX%R-SnY>^<(rtzu9i&} z)Ee7(z;ng*cjIf^0kb`LYc3<}G;B*kt6Ti58)Jmqq@vsYKej)sY;&lrjZkfPy&50$ z+kS7d^)YiLPGr>*_4@ZTnllQ9w~po}3dcu-yJQM1IeKwewxj5rgJR{|F!5p0uT~UH z+5+xON)m`fAJtek| zLTZ?%P+J5(VZ1Xu(PZye>|WYe$yXe(>(iQ4VVV0(H3KygS-)Xtlb36>y*)yRv(9@T=o!3ZHvMv~GkNc^|t!ud?ze zdIV!TLg6EqOb$8mkBQlL8IN`ekc4|E7?unC&>3}t>^LT?JiZ-2eye)$j^>0!?4*Zs z#DC@RZ~IA9Ky=8f%!zSVQ3ApVl`}n-^Yt(1uUSv*Q0uuJ=ZmYu=z(V(kdv6ELA{kT zvBxus&NI2rQ#F=>JK-+k`|}@}$RB`nQx~Ka=7=koV&ip!4!e+yRB~ut?c0UhH{ZMP9ZTQ3mn`Kl@q>avf@FQX6>7 zj=Za?yd)*K>7qF+cDX6RAIMc5PN&&#KxJM3?YwzI*`KfaFqCyLsCvSg@erSN;}3aQ za+)f=McXz-!2(gcmEc8_DIWH;*vC82zt9TJ-CFa7#^d&t>Dn_^R7n&H_4tTZExz7` ziS~*bLrr|6=h+J?!B?-9`j;eD^eT_v zL^evlxCninil!KqV`zQm&Tpoz)UpY@NO`=8i#5_&Rf#CC#SvO1+U1fY3zNB;Ied+X z1K+BT3o-IBVLYXEMF!bUft(MY-W*OfJMK5M-|@1mHu}S3lUfP)pOuE<5zP6^CGe5St+~?wp!!KvQ+q5p@-hJcUU*XrGV2WKU{)G zvWE%ez8`QNcdgQY{9Jw67Akssyq}mvV_VVuScc2djL7pFe}BA?7QuV!zy&FNn3^Ww zMpOSaA^Gg{IZ_;j)5j)pD7~%HH;WOcB8lAA*rz#Qk;hz}BN+F8cs+v=xg*g?N<+O;DK329>E3jfq zbAY2#Uug{S2L96tJT%`?Q^S<4b?z$Rh_W&;3+DMxNija*1VyTL7Ggz7bZzdj&;9o` z(jtTwZL%uGo|8to(0T@|9jD|0hkRvXLy69@ z%UNyaP=v;NF3&g2mYPe+ntIy)jd|XaELR3@gNHh^0s0SDtD5^68b(@=p4z4%uJvSk zzzu&rJumBwxkYPb?PQavdQkFmRJ-xQ((5acYs)}oEO9gA8ySI(cqy!Tqtr8i-k|xs zvhH-`ZyEg^A59d!_i*eEgMgiUFRQO5D>)m#eP(>-Z|fpMo29?r^TKXu<&D&49F?7n z5$M%}HfT<@*mQmewe!^f0jd{mmH}851ze65^#w@|@oBLw+r^K``p8rg(sY}S&b&Ka zD&*X|qxv1-z0(jKwx8Qbd$N%04{a;|pf+?S%JUT56v3~P1Y#Lr4jzKpqgM9ECAWp_ zU!cndXaiL#IDEj@bwG?y)z23(++gw-%FY-$ zJpPSF^nNo*%;bK1Ot;-7SKoBir=r&M@8!x)V+LxmasI8zd^1*{|M}>ZDH?>S>pXtk zW!utp1a;ZSbG=9a#BZa-_!utsm&);*_kI$3%v>iruqtR^YaM%-OcK*g)$YjB?2`U% zGl^hD=-1r$zgQw9Uuh_U6z*tV8p9;ePSwK6F|rlD<`8>yLn7p)H+P77U(<3T?ddRR zi2+3tltfkGv|w}MK+e8q;?I$$7?y8qe^D?3CnMi-EnwB#_0y<)j&M%QiT=knez|@Y zG9k94zIf5jz?K)uC~QW$@t?fF>TzTU2001A@Bq(LUo36U7Bz#wmxc@V4}svd^|t~; z%A^|c9^CZ*iM=cr_{Eu6K$$-nbviUF5dEt%WM`g5A5BT;tBc-&746#YurY!&wnLg; zUJrFsBtI~fnwW0QYVAGB%v&4NcE2<1`*FWSk8~-aCQ4UfE=} z)VXvJW$I=_B4he&5w}Ms+kyfb$W{K|ECzMXO zXkr-}hvVXeugEUaI-GAcx&HVPfqOo8PlQl?Y*<=kS-LX<$>Aj`6a)-s)`3m1f@@n}n z>fL3|BoBowml5=tX-dZntdnpVr?nTIy4`rZOCbyvCXY1>JqG~S(3gs@QCHO7eN1fC zF<;Wn2$1}Jq77wHbeo&xrg~j$eP4I@{i(-r&RfO9YQCR@n$Ae34l*8njwLCibq4zU z+FVIz-9qS5Io=G~bhswZMqBfyG^d(`)e?5E2#TvLc5BZaeLst~VA}sZqAKft*Fcizoz&g(ivf&>t7S|_)IIk@hRvJK=82RrXtrYN7a1{ch(M-CBE!QTv(VB^_Ud^o zN4taQWwTeh4#RJC5ro*?&3I73MLD3{Ua@v*-e&7!;-GBL=*`_^UhH|b;~2cuq+z}@ z>~egdtW%HxJo{Jn(jgK!qQ~w#H!{alTSx`7o{M&mR{VQ40g@F&W!?FNvT{ZbCLiJY z;xE@1@ZlXABV4ismvgWhtAGD?@p6w@|A<)WR-b9cViW*6Yc`>Ec)1wM`ETB%y#Df- z95`B1t{upp_smm`!$|xcNo|dK^6mR0kN_`)+Jax2-Vxs~ZM=neHczgXK+DVy&PBb4-S8^{D7lAqhD!(eujP3M~` z1PG>>rK?5yFSFCQ8^Jp+8=OJIwkEfn71Tew;X+Yn?0{WjnqLw$ZAY5l?`x(ruUaqf z2S9-jSejyIMJ^qPtib!_VE2hp8hOq!vHOfl}QW=PjTt!Pbe?cKB}qk9K>dK*?W8U768xuzI~ zmDo!RJ_0Ajffn7p@k4TFw0m_4CBa15Lnz&Yt0clQ(?uNFvG%5ohPanF zT1X$a=ZAMui9-!DOAya}>6Af4@{6*eAAC*my=w+NtlP{y=gg;qQZAZ35_MfKUrDRJ zVeGf~C=Ql-9xNdP{wQ81H58m7%iYJ})Wdh*%gZ9wXW1jUB1+OHDoRW%Fa2p+K`Jar zN|sxOS6b$0YF};|mEx;@sk~PP9^ESR?Q}E!H_!Wxz)Kt6`o8uJsISPf`OBF|OQ?GEy3h1#p(y1X?gyn42j%nRJQMkB(m&Z^^f|W4dL0b- z-%ES<4Mx<-M;-LqV+^{na0Gft2Wh>C%aa;6XogzIReh6>F6&R6Y4B^4=KL3;PL~G} z_uH0z-t?8F?QQk+|IB>Q6W1pHr%WzQy7zDTa4x-!8L!#KOrMY>R6#MnJXzrn>>`-J-&2CgK-2#QN1(Z?!3N*R)vXerCLh)fjs5v=&@zuv8fQ{ne;K@ zGcbPZ>$yZ3*qgysX$7eC=rlLsic;>D7C5R*8E!OkeEQp+kXK5e^VzEghtV-OxCXJ^ zP|4jp;WR$!q_hp@KR)=q4^Ew*9zW28K&0!hSw{Y$`8#RI+4;DFB_yj@LgPah<;wUl z9Yo{L`1bRzXLzcZQ1Fqk+V3_9I+Z9IgW7?I>gx~)id*eOiQ|@7`oUkVtxg$xXM*cY z%{@&GH(wHcOznsTa-TQ!rd<4f1p@V-d z?!{s!`KnknsEom^fC+w*=|^*6TIq>F#TKq4{?4tzHN$CffX3@2&E33d1|F>yp;k`J zmNzS6qQ(QwC(}QI)g;Qb#M@^i^VR7>6@?zA1TUtTJf{0cXa2!@38p^G66jCQmzJ@m@B z7eZ$BLUtBH@#e!$#WebLBQECSGxS(P)PF$d6RhW*Jr@&M7isY9R&?BVhmZV zmnk2XO+A-kX2Y?>@_)5H{Sy8%Wg))(}<00zDb%gk8ojc>2iw6EkS8?0MH zyF4|v802Hp2Pb);J3G*^9I9}`pfvz=E8k@M(0G<=6`^drF}o6w2-TP|*7Y}uv{=am z8}IPQ!*)#k+E=@^=Z8X}xvVS5!9*boJphU~ zw{9Z|PHzJfX0Bg@65kEz9DvMwL^ht=n6I*!k6>(|y;gbme7v29n$kp@iq{->9JS84 zx;jp|nYNNdJ10RbYjLV>;ry_He`)^8#sWiUqhqFWHr;%_&tiUdbzaMo9ccbvgDFRt zX={`@7pXZn;});YI%}pTzlphkvw7FUvLLkubHfO?=&A%t`SZ~RpN$n0{uY~!S;@|1 z0Nyfb`2>$_G4qbOeC8Gd%8D&OMMc)ItzAxI+#DxKgO7Au{Al|>{GI=#c51kG)aNEX zW7X-C?l1*d=>e@NoUKM$cP?J3N%d}PXIddBZB$V^TFy3V0WgZ`orlsL7SBnmqY3Lv zYh{#$NwSrZ^UgJPfm26X?bYQmqwyh(Y zH8EPs&>eZKZBKk#Li5qG;Ghtl-B6R=D6`#g9Xle2SZR{fF?93XpJ$ST}2X?(=;8C#MxB~n97xpQ@d327wgn)<)XS*^*dt1ic z0B3#UP{C}QotPt-Z<~E~sLsI2Uc}K}Q5ag{z@C_hgB`U4AY(Vx+17^f-?x2t!F_-3GD90=l#~SB-fU()vOk?&u!|MEPVjvtf5C)fGg?~#rs4F-iI#@l@R6-H9Zp@wOYu9a3NFHJ2z#JQekoM5`RzPGjI z&~Y22a=Qe${RwcRBe45eXbdku{nO#Lg%6-ans!I8e|#)uq*-TMTkD|)a1wmE*FNi) zb-TRWWxe`Cta~C5ekPNA%-`>>Tn2sLa3+O3Yek*$X2~!CEP1m?`m68$)^zLn`vt?ZWT=6^*#LBO~;ye_%c4zd7aTE`fAdz!#O?<=+?*; zb2S;uwD*e)7Fp<}hkc_t2O|`_(SmrR^TFxNZ^BX6A3S}$0&k)kRZ`hcN3WEH+Z^5a zg2%nW@MBpruf{mvsLs38`MX?XS_9u5@i)KXWWQeOYv)F!tjxh*(#!TnpWu$xGIswV zY~U*~r?LUWHyPrqar zqfTygDH5g0uiaIuqhT{G3(TvLzQ#Qnlu5^0U~L}L9j6I4yNP%{1KH>qcY_&6?M7>n z7AyOCGpaW>!iL*h36-pGxXU#!*GCdS%vMyl*U-+MyJuo6_pr0+(dTlHBJE#2`|Cff z4W!;}Ij{C*=&%QfoZXD=5zx9ka`_)z2n-^VR0S%pPqz;%VFX-d=;%0h;(Dy;{ANLz zpTbT3U*Q*;g77)vH2w)M`_aP4IoDTJ&sk+QzW?I+Z!`Ek7Sjh$M!`Z_X>8geGX*yM z7h6&PSq$cQpm=i%bA5$@VYyOd4iO*1MSZ+!BH!Hd(}d8l{eJfoCbGDe_-G$$_T7No zn<1H7l58hHTc^nC*T*PwT6d51G9y~@3WVU*zU7~aq|P*20j+gC@7Qzh=Mcz_ zHuS%xsIaz7$D_*K@5~(4H#sk>%J3ul=3g_n|1a->=^+@yPzf2G@GkE zqq}FT`d};M)<_eGTU*6ey3gK@x8?5w{zP-{-ow27s&Y87Al-CAyta&EOz6C-mW!=G$J95{^I~?k_L#UJw#KBlu=__7{VBL9(Sy zElf6V;}sxP8t40KG-0c;H?~(oV3Ol+ib}(;Bkg+VKE?k~YTLl>e%qHQU9Di9NA<4o Yzy42CaiRKs86@p*2beYJ-=hirKcso7HUIzs literal 972 zcmV;-12g-YS={|^`_I7nD%c!-#&6u{W% z$jI<0`54&<;fR2FG091(IMQjk5Gq*-`Jic#T0z?R2})|(8X$Wqs(Q;hTlyN(D*HQ{ zTYIodvCG@LVJv)#>)f!)tROwSY_04uolp%;{7j3QyNyAftzizHiOoIEz7CzP>wVrK z-yQCNZyW!<>0j?3J!aqMr&zPq0g8;dkO@3Feg%>D|J$=sg0-6 zpH3~#gi2K@2%=LJBGVeQ=~A&wqdM&h3|ZN%YbSEOIu>o#uWg%wgg4n4Z`>C~%Rzm7e-_U+ue zd;bnTy!i3t%bP!sKE3+&?AyEdp1g0eq_)2*O+Na*Up(=}3je2%oP8MK=b3-|-O(R7 z|9!TWfCCXU8`+pDUwj!H+cdZXea-e@|vre$5I

'; + var str =''; data.push('
'+str+'
'); From 8129a9290c052cee6dfe12b831e7f536c681ef2c Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Tue, 22 Feb 2022 16:18:29 +0100 Subject: [PATCH 019/122] fixes #811, fixes #823, fixes #822, fixes #822, fixes #824 --- src/css/midnight.css | 1 + src/js/codemirror/anyword-hint.js | 64 ++- src/js/compiler.js | 59 +-- src/js/parser.js | 428 ++++++++++++++----- src/tests/resources/errormessage_testdata.js | 20 +- 5 files changed, 425 insertions(+), 147 deletions(-) diff --git a/src/css/midnight.css b/src/css/midnight.css index 657cc32e5..b483f76c2 100644 --- a/src/css/midnight.css +++ b/src/css/midnight.css @@ -65,6 +65,7 @@ span.cm-SOUND { text-decoration: underline; } .cm-s-midnight span.cm-SOUNDVERB {color: #AE81FF;} +.cm-s-midnight span.cm-SOUNDEVENT {color: #AE81FF;} .systemMessage { color:white; diff --git a/src/js/codemirror/anyword-hint.js b/src/js/codemirror/anyword-hint.js index ab01e9e56..894796893 100644 --- a/src/js/codemirror/anyword-hint.js +++ b/src/js/codemirror/anyword-hint.js @@ -61,9 +61,20 @@ "DIRECTION", "up", "down", "left", "right", "moving", "stationary", "no", "randomdir", "random", "horizontal", "vertical", "orthogonal", "perpendicular", "parallel", "action"] - var SOUND_WORDS = [ + + var SOUND_EVENTS = [ + "SOUNDEVENT", + "undo", "restart", "titlescreen", "startgame", "cancel", "endgame", "startlevel", "endlevel", "showmessage", "closemessage", "sfx0", "sfx1", "sfx2", "sfx3", "sfx4", "sfx5", "sfx6", "sfx7", "sfx8", "sfx9", "sfx10" + ]; + + var SOUND_VERBS = [ "SOUNDVERB", - "titlescreen", "startgame", "cancel", "endgame", "startlevel", "undo", "restart", "endlevel", "showmessage", "closemessage", "sfx0", "sfx1", "sfx2", "sfx3", "sfx4", "sfx5", "sfx6", "sfx7", "sfx8", "sfx9", "sfx10", "create", "destroy", "move", "cantmove", "action"]; + "move", "action", "create", "destroy", "cantmove" + ]; + + var SOUND_DIRECTIONS = [ + "DIRECTION", + "up","down","left","right","horizontal","vertical","orthogonal"] var WINCONDITION_WORDS = [ "LOGICWORD", @@ -162,7 +173,7 @@ var splits = lineToCursor.toLowerCase().split(/[\p{Z}\s]/u).filter(function(v) { return v !== ''; }); - toexclude=splits; + toexclude=splits.filter(a => LEGEND_LOGICWORDS.indexOf(a)===-1);//don't filter out and or or if (lineToCursor.indexOf('=')>=0){ if ((lineToCursor.trim().split(/\s+/ ).length%2)===1){ addObjects=true; @@ -174,10 +185,49 @@ } case 'sounds': { - candlists.push(CARDINAL_DIRECTION_WORDS); - candlists.push(SOUND_WORDS); - addObjects=true; - excludeAggregates=true; + /* + SOUNDEVENT SOUND + NAME + SOUNDVERB + SOUNDVERB + + DIRECTION+ + */ + var last_idx = state.current_line_wip_array.length-1; + if (last_idx>=0 && state.current_line_wip_array[last_idx]==="ERROR"){ + //if there's an error, just try to match greedily + candlists.push(SOUND_VERBS); + candlists.push(SOUND_DIRECTIONS); + candlists.push(SOUND_EVENTS); + addObjects=true; + excludeAggregates=true; + } else if (state.current_line_wip_array.length.length===0){ + candlists.push(SOUND_EVENTS); + addObjects=true; + excludeAggregates=true; + } else { + var lastType = state.current_line_wip_array[last_idx][1]; + switch (lastType){ + case "SOUNDEVENT": + { + break; + } + case "NAME": + { + candlists.push(SOUND_VERBS); + break; + } + case "SOUNDVERB": + case "DIRECTION": + { + candlists.push(SOUND_DIRECTIONS); + break; + } + case "SOUND": + { + } + } + } break; } case 'collisionlayers': diff --git a/src/js/compiler.js b/src/js/compiler.js index 0f7d1849b..1e9157336 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -2432,16 +2432,10 @@ function generateLoopPoints(state) { state.lateLoopPoint = loopPoint; } -var soundEvents = ["titlescreen", "startgame", "cancel", "endgame", "startlevel", "undo", "restart", "endlevel", "showmessage", "closemessage", "sfx0", "sfx1", "sfx2", "sfx3", "sfx4", "sfx5", "sfx6", "sfx7", "sfx8", "sfx9", "sfx10"]; -var soundMaskedEvents = ["create", "destroy", "move", "cantmove", "action"]; -var soundVerbs = soundEvents.concat(soundMaskedEvents); - - function validSeed(seed) { return /^\s*\d+\s*$/.exec(seed) !== null; } - var soundDirectionIndicatorMasks = { 'up': parseInt('00001', 2), 'down': parseInt('00010', 2), @@ -2475,7 +2469,19 @@ function generateSoundData(state) { continue; } - if (soundEvents.indexOf(sound[0]) >= 0) { + const v0=sound[0][0].trim(); + const t0=sound[0][1].trim(); + const v1=sound[1][0].trim(); + const t1=sound[1][1].trim(); + + var seed = sound[sound.length - 2][0]; + var seed_t = sound[sound.length - 2][1]; + if (seed_t !== 'SOUND') { + logError("Expecting sfx data, instead found \"" + seed + "\".", lineNumber); + } + + if (t0 === "SOUNDEVENT") { + if (sound.length > 4) { logError("too much stuff to define a sound event.", lineNumber); } else { @@ -2484,21 +2490,26 @@ function generateSoundData(state) { logWarning("too much stuff to define a sound event.", lineNumber); } } - var seed = sound[1]; - if (validSeed(seed)) { - if (sfx_Events[sound[0]] !== undefined) { - logWarning(sound[0].toUpperCase() + " already declared.", lineNumber); - } - sfx_Events[sound[0]] = sound[1]; - } else { - logError("Expecting sfx data, instead found \"" + sound[1] + "\".", lineNumber); + + if (sfx_Events[v0] !== undefined) { + logWarning(v0.toUpperCase() + " already declared.", lineNumber); } + sfx_Events[v0] = seed; + } else { - var target = sound[0].trim(); - var verb = sound[1].trim(); - var directions = sound.slice(2, sound.length - 2); + var target = v0; + var verb = v1; + var directions = []; + for (var j=2;j 0 && (verb !== 'move' && verb !== 'cantmove')) { - logError('incorrect sound declaration.', lineNumber); + logError('Incorrect sound declaration - cannot have directions (UP/DOWN/etc.) attached to non-directional sound verbs (CREATE is not directional, but MOVE is directional).', lineNumber); } if (verb === 'action') { @@ -2509,7 +2520,7 @@ function generateSoundData(state) { if (directions.length == 0) { directions = ["orthogonal"]; } - var seed = sound[sound.length - 2]; + if (target in state.aggregatesDict) { logError('cannot assign sound events to aggregate objects (declared with "and"), only to regular objects, or properties, things defined in terms of "or" ("' + target + '").', lineNumber); @@ -2554,7 +2565,8 @@ function generateSoundData(state) { } } } - + + //if verb in soundverbs_directional if (verb === 'move' || verb === 'cantmove') { for (var j = 0; j < targets.length; j++) { var targetName = targets[j]; @@ -2578,9 +2590,6 @@ function generateSoundData(state) { } - if (!validSeed(seed)) { - logError("Expecting sfx data, instead found \"" + seed + "\".", lineNumber); - } var targetArray; switch (verb) { @@ -2744,7 +2753,7 @@ function loadFile(str) { delete state.section; delete state.subsection; delete state.tokenIndex; - delete state.legend_current_line_wip; + delete state.current_line_wip_array; delete state.visitedSections; delete state.loops; /* diff --git a/src/js/parser.js b/src/js/parser.js index 7c184fcb8..d5d900ae2 100644 --- a/src/js/parser.js +++ b/src/js/parser.js @@ -20,6 +20,7 @@ for post-launch credits, check out activty on github.com/increpare/PuzzleScript */ + var compiling = false; var errorStrings = [];//also stores warning strings var errorCount=0;//only counts errors @@ -137,6 +138,7 @@ function wordAlreadyDeclared(state,n) { return null; } + //for IE support if (typeof Object.assign != 'function') { (function () { @@ -214,25 +216,40 @@ var codeMirrorFn = function() { const reg_commands = /[\p{Z}\s]*(sfx0|sfx1|sfx2|sfx3|Sfx4|sfx5|sfx6|sfx7|sfx8|sfx9|sfx10|cancel|checkpoint|restart|win|message|again)[\p{Z}\s]*/u; const reg_name = /[\p{L}\p{N}_]+[\p{Z}\s]*/u;///\w*[a-uw-zA-UW-Z0-9_]/; const reg_number = /[\d]+/; - const reg_soundseed = /\d+\b/; + const reg_soundseed = /\d+\b/u; const reg_spriterow = /[\.0-9]{5}[\p{Z}\s]*/u; const reg_sectionNames = /(objects|collisionlayers|legend|sounds|rules|winconditions|levels)(?![\p{L}\p{N}_])[\p{Z}\s]*/u; const reg_equalsrow = /[\=]+/; const reg_notcommentstart = /[^\(]+/; + const reg_match_until_commentstart_or_whitespace = /[^\p{Z}\s\()]+[\p{Z}\s]*/u; const reg_csv_separators = /[ \,]*/; - const reg_soundverbs = /(move|action|create|destroy|cantmove|undo|restart|titlescreen|startgame|cancel|endgame|startlevel|endlevel|showmessage|closemessage|sfx0|sfx1|sfx2|sfx3|sfx4|sfx5|sfx6|sfx7|sfx8|sfx9|sfx10)\b[\p{Z}\s]*/u; + const reg_soundverbs = /(move|action|create|destroy|cantmove)\b[\p{Z}\s]*/u; + const soundverbs_directional = ['move','cantmove']; + const reg_soundverbs_directional = /(move|cantmove)\b[\p{Z}\s]*/u; + const reg_soundverbs_nondirectional = /(action|create|destroy)\b[\p{Z}\s]*/u; + const reg_soundevents = /(undo|restart|titlescreen|startgame|cancel|endgame|startlevel|endlevel|showmessage|closemessage|sfx0|sfx1|sfx2|sfx3|sfx4|sfx5|sfx6|sfx7|sfx8|sfx9|sfx10)\b[\p{Z}\s]*/u; + const reg_directions = /^(action|up|down|left|right|\^|v|\<|\>|moving|stationary|parallel|perpendicular|horizontal|orthogonal|vertical|no|randomdir|random)$/; const reg_loopmarker = /^(startloop|endloop)$/; const reg_ruledirectionindicators = /^(up|down|left|right|horizontal|vertical|orthogonal|late|rigid)$/; const reg_sounddirectionindicators = /[\p{Z}\s]*(up|down|left|right|horizontal|vertical|orthogonal)(?![\p{L}\p{N}_])[\p{Z}\s]*/u; const reg_winconditionquantifiers = /^(all|any|no|some)$/; - const reg_keywords = /(checkpoint|objects|collisionlayers|legend|sounds|rules|winconditions|\.\.\.|levels|up|down|left|right|^|\||\[|\]|v|\>|\<|no|horizontal|orthogonal|vertical|any|all|no|some|moving|stationary|parallel|perpendicular|action)/; - const keyword_array = ['checkpoint','objects', 'collisionlayers', 'legend', 'sounds', 'rules', '...','winconditions', 'levels','|','[',']','up', 'down', 'left', 'right', 'late','rigid', '^','v','\>','\<','no','randomdir','random', 'horizontal', 'vertical','any', 'all', 'no', 'some', 'moving','stationary','parallel','perpendicular','action','message']; - + const reg_keywords = /(checkpoint|objects|collisionlayers|legend|sounds|rules|winconditions|\.\.\.|levels|up|down|left|right|^|\||\[|\]|v|\>|\<|no|horizontal|orthogonal|vertical|any|all|no|some|moving|stationary|parallel|perpendicular|action|move|action|create|destroy|cantmove|sfx0|sfx1|sfx2|sfx3|Sfx4|sfx5|sfx6|sfx7|sfx8|sfx9|sfx10|cancel|checkpoint|restart|win|message|again|undo|restart|titlescreen|startgame|cancel|endgame|startlevel|endlevel|showmessage|closemessage)/; + const keyword_array = ['checkpoint','objects', 'collisionlayers', 'legend', 'sounds', 'rules', '...','winconditions', 'levels','|','[',']','up', 'down', 'left', 'right', 'late','rigid', '^','v','\>','\<','no','randomdir','random', 'horizontal', 'vertical','any', 'all', 'no', 'some', 'moving','stationary','parallel','perpendicular','action','message', "move", "action", "create", "destroy", "cantmove", "sfx0", "sfx1", "sfx2", "sfx3", "Sfx4", "sfx5", "sfx6", "sfx7", "sfx8", "sfx9", "sfx10", "cancel", "checkpoint", "restart", "win", "message", "again", "undo", "restart", "titlescreen", "startgame", "cancel", "endgame", "startlevel", "endlevel", "showmessage", "closemessage"]; + + function errorFallbackMatchToken(stream){ + var match=stream.match(reg_match_until_commentstart_or_whitespace, true); + if (match===null){ + //just in case, I don't know for sure if it can happen but, just in case I don't + //understand unicode and the above doesn't match anything, force some match progress. + match=stream.match(reg_notcommentstart, true); + } + return match; + } function processLegendLine(state, mixedCase){ var ok=true; - var splits = state.legend_current_line_wip; + var splits = state.current_line_wip_array; if (splits.length===0){ return; } @@ -241,7 +258,7 @@ var codeMirrorFn = function() { logError('Incorrect format of legend - should be one of "A = B", "A = B or C [ or D ...]", "A = B and C [ and D ...]".', state.lineNumber); ok=false; } else if (splits.length%2===0){ - logError(`Incorrect format of legend - should be one of "A = B", "A = B or C [ or D ...]", "A = B and C [ and D ...]", but it looks like you have a dangling "${state.legend_current_line_wip[state.legend_current_line_wip.length-1].toUpperCase()}"?`, state.lineNumber); + logError(`Incorrect format of legend - should be one of "A = B", "A = B or C [ or D ...]", "A = B and C [ and D ...]", but it looks like you have a dangling "${state.current_line_wip_array[state.current_line_wip_array.length-1].toUpperCase()}"?`, state.lineNumber); ok=false; } else { var candname = splits[0]; @@ -392,7 +409,22 @@ var codeMirrorFn = function() { } } } - state.legend_current_line_wip = []; + } + + function processSoundsLine(state){ + if (state.current_line_wip_array.length===0){ + return; + } + //if last entry in array is 'ERROR', do nothing + if (state.current_line_wip_array[state.current_line_wip_array.length-1]==='ERROR'){ + + } else { + //take the first component from each pair in the array + var soundrow = state.current_line_wip_array;//.map(function(a){return a[0];}); + soundrow.push(state.lineNumber); + state.sounds.push(soundrow); + } + } // because of all the early-outs in the token function, this is really just right now attached @@ -402,7 +434,9 @@ var codeMirrorFn = function() { function endOfLineProcessing(state, mixedCase){ if (state.section==='legend'){ processLegendLine(state,mixedCase); - } + } else if (state.section ==='sounds'){ + processSoundsLine(state); + } } // var keywordRegex = new RegExp("\\b(("+cons.join(")|(")+"))$", 'i'); @@ -486,7 +520,7 @@ var codeMirrorFn = function() { tokenIndex: state.tokenIndex, - legend_current_line_wip: state.legend_current_line_wip.concat([]), + current_line_wip_array: state.current_line_wip_array.concat([]), legend_synonyms: legend_synonymsCopy, legend_aggregates: legend_aggregatesCopy, @@ -526,6 +560,8 @@ var codeMirrorFn = function() { var mixedCase = stream.string; var sol = stream.sol(); if (sol) { + + state.current_line_wip_array = []; stream.string = stream.string.toLowerCase(); state.tokenIndex=0; state.line_should_end = false; @@ -861,41 +897,281 @@ var codeMirrorFn = function() { } break; } - case 'sounds': + case 'legend': { - if (sol) { - var ok = true; - var splits = reg_notcommentstart.exec(stream.string)[0].split(/[\p{Z}\s]/u).filter(function(v) {return v !== ''}); - splits.push(state.lineNumber); - state.sounds.push(splits); + var resultToken=""; + var match_name=null; + if (state.tokenIndex === 0) { + match_name=stream.match(/[^=\p{Z}\s\(]*(\p{Z}\s)*/u, true); + var new_name=match_name[0].trim(); + + if (wordAlreadyDeclared(state,new_name)) + { + resultToken = 'ERROR'; + } else { + resultToken = 'NAME'; + } + + //if name already declared, we have a problem + state.tokenIndex++; + } else if (state.tokenIndex === 1) { + match_name = stream.match(/=/u,true); + if (match_name===null||match_name[0].trim()!=="="){ + logError(`In the legend, define new items using the equals symbol - declarations must look like "A = B", "A = B or C [ or D ...]", "A = B and C [ and D ...]".`, state.lineNumber); + stream.match(reg_notcommentstart, true); + resultToken = 'ERROR'; + match_name=["ERROR"];//just to reduce the chance of crashes + } + stream.match(/[\p{Z}\s]*/u, true); + state.tokenIndex++; + resultToken = 'ASSSIGNMENT'; + } else if (state.tokenIndex >= 3 && ((state.tokenIndex % 2) === 1)) { + //matches AND/OR + match_name = stream.match(reg_name, true); + if (match_name === null) { + logError("Something bad's happening in the LEGEND", state.lineNumber); + match=stream.match(reg_notcommentstart, true); + resultToken = 'ERROR'; + } else { + var candname = match_name[0].trim(); + if (candname === "and" || candname === "or"){ + resultToken = 'LOGICWORD'; + if (state.tokenIndex>=5){ + if (candname !== state.current_line_wip_array[3]){ + logError("Hey! You can't go mixing ANDs and ORs in a single legend entry.", state.lineNumber); + resultToken = 'ERROR'; + } + } + } else { + logError(`Expected and 'AND' or an 'OR' here, but got ${candname.toUpperCase()} instead. In the legend, define new items using the equals symbol - declarations must look like 'A = B' or 'A = B and C' or 'A = B or C'.`, state.lineNumber); + resultToken = 'ERROR'; + // match_name=["and"];//just to reduce the chance of crashes + } + } + state.tokenIndex++; } - candname = stream.match(reg_soundverbs, true); - if (candname!==null) { - return 'SOUNDVERB'; + else { + match_name = stream.match(reg_name, true); + if (match_name === null) { + logError("Something bad's happening in the LEGEND", state.lineNumber); + match=stream.match(reg_notcommentstart, true); + resultToken = 'ERROR'; + } else { + var candname = match_name[0].trim(); + if (wordAlreadyDeclared(state,candname)) + { + resultToken = 'NAME'; + } else { + resultToken = 'ERROR'; + } + state.tokenIndex++; + + } } - candname = stream.match(reg_sounddirectionindicators,true); - if (candname!==null) { - return 'DIRECTION'; + + if (match_name!==null){ + state.current_line_wip_array.push(match_name[0].trim()); } - candname = stream.match(reg_soundseed, true); - if (candname !== null) - { - state.tokenIndex++; - return 'SOUND'; - } - candname = stream.match(/[^\[\|\]\p{Z}\s]*/u, true); - if (candname!== null ) { - var m = candname[0].trim(); - if (state.names.indexOf(m)>=0) { - return 'NAME'; + + if (stream.eol()){ + processLegendLine(state,mixedCase); + } + + return resultToken; + break; + } + case 'sounds': + { + /* + SOUND DEFINITION: + SOUNDEVENT ~ INT (Sound events take precedence if there's name overlap) + OBJECT_NAME + NONDIRECTIONAL_VERB ~ INT + DIRECTIONAL_VERB + INT + DIR+ ~ INT + */ + var tokentype=""; + + if (state.current_line_wip_array.length>0 && state.current_line_wip_array[state.current_line_wip_array.length-1]==='ERROR'){ + // match=stream.match(reg_notcommentstart, true); + //if there was an error earlier on the line just try to do greedy matching here + var match = null; + + //events + if (match === null) { + match = stream.match(reg_soundevents, true); + if (match !== null) { + tokentype = 'SOUNDEVENT'; + } + } + + //verbs + if (match === null) { + match = stream.match(reg_soundverbs, true); + if (match !== null) { + tokentype = 'SOUNDVERB'; + } + } + //directions + if (match === null) { + match = stream.match(reg_sounddirectionindicators, true); + if (match !== null) { + tokentype = 'DIRECTION'; + } + } + + //sound seeds + if (match === null) { + var match = stream.match(reg_soundseed, true); + if (match !== null) + { + tokentype = 'SOUND'; + } + } + + //objects + if (match === null) { + match = stream.match(reg_name, true); + if (match !== null) { + if (wordAlreadyDeclared(state, match[0])){ + tokentype = 'NAME'; + } else { + tokentype = 'ERROR'; + } + } + } + + //error + if (match === null) { + match = errorFallbackMatchToken(stream); + tokentype = 'ERROR'; + } + + + } else if (state.current_line_wip_array.length===0){ + //can be OBJECT_NAME or SOUNDEVENT + var match = stream.match(reg_soundevents, true); + if (match == null){ + match = stream.match(reg_name, true); + if (match == null ){ + tokentype = 'ERROR'; + match=errorFallbackMatchToken(stream); + state.current_line_wip_array.push("ERROR"); + logWarning("Was expecting a sound event (like SFX3, or ENDLEVEL) or an object name, but didn't find either.", state.lineNumber); + } else { + var matched_name = match[0].trim(); + if (!wordAlreadyDeclared(state, matched_name)){ + tokentype = 'ERROR'; + state.current_line_wip_array.push("ERROR"); + logError(`unexpected sound token "${matched_name}".`, state.lineNumber); + } else { + tokentype = 'NAME'; + state.current_line_wip_array.push([matched_name,tokentype]); + state.tokenIndex++; + } + } + } else { + tokentype = 'SOUNDEVENT'; + state.current_line_wip_array.push([match[0].trim(),tokentype]); + state.tokenIndex++; + } + + } else if (state.current_line_wip_array.length===1) { + var is_soundevent = state.current_line_wip_array[0][1] === 'SOUNDEVENT'; + + if (is_soundevent){ + var match = stream.match(reg_soundseed, true); + if (match !== null) + { + tokentype = 'SOUND'; + state.current_line_wip_array.push([match[0].trim(),tokentype]); + state.tokenIndex++; + } else { + match=errorFallbackMatchToken(stream); + logError("Was expecting a sound seed here (a number like 123123, like you generate by pressing the buttons above the console panel), but found something else.", state.lineNumber); + tokentype = 'ERROR'; + state.current_line_wip_array.push("ERROR"); + } + } else { + //[0] is object name + //it's a sound verb + var match = stream.match(reg_soundverbs, true); + if (match !== null){ + tokentype = 'SOUNDVERB'; + state.current_line_wip_array.push([match[0].trim(),tokentype]); + state.tokenIndex++; + } else { + match=errorFallbackMatchToken(stream); + logError("Was expecting a soundverb here (MOVE, DESTROY, CANTMOVE, or the like), but found something else.", state.lineNumber); + tokentype = 'ERROR'; + state.current_line_wip_array.push("ERROR"); + } + } } else { - //can we ever get here? - candname = stream.match(reg_notcommentstart, true); + var is_soundevent = state.current_line_wip_array[0][1] === 'SOUNDEVENT'; + if (is_soundevent){ + match=errorFallbackMatchToken(stream); + logError(`I wasn't expecting anything after the sound declaration ${state.current_line_wip_array[state.current_line_wip_array.length-1][0].toUpperCase()} on this line, so I don't know what to do with "${match[0].trim().toUpperCase()}" here.`, state.lineNumber); + tokentype = 'ERROR'; + state.current_line_wip_array.push("ERROR"); + } else { + //if there's a seed on the right, any additional content is superfluous + var is_seedonright = state.current_line_wip_array[state.current_line_wip_array.length-1][1] === 'SOUND'; + if (is_seedonright){ + match=errorFallbackMatchToken(stream); + logError(`I wasn't expecting anything after the sound declaration ${state.current_line_wip_array[state.current_line_wip_array.length-1][0].toUpperCase()} on this line, so I don't know what to do with "${match[0].trim().toUpperCase()}" here.`, state.lineNumber); + tokentype = 'ERROR'; + state.current_line_wip_array.push("ERROR"); + } else { + var directional_verb = soundverbs_directional.indexOf(state.current_line_wip_array[1][0])>=0; + if (directional_verb){ + //match seed or direction + var is_direction = stream.match(reg_sounddirectionindicators, true); + if (is_direction !== null){ + tokentype = 'DIRECTION'; + state.current_line_wip_array.push([is_direction[0].trim(),tokentype]); + state.tokenIndex++; + } else { + var is_seed = stream.match(reg_soundseed, true); + if (is_seed !== null){ + tokentype = 'SOUND'; + state.current_line_wip_array.push([is_seed[0].trim(),tokentype]); + state.tokenIndex++; + } else { + match=errorFallbackMatchToken(stream); + //depending on whether the verb is directional or not, we log different errors + logError(`Ah I were expecting direction or a sound seed here after ${state.current_line_wip_array[state.current_line_wip_array.length-1][0].toUpperCase()}, but I don't know what to make of "${match[0].trim().toUpperCase()}".`, state.lineNumber); + tokentype = 'ERROR'; + state.current_line_wip_array.push("ERROR"); + } + } + } else { + //only match seed + var is_seed = stream.match(reg_soundseed, true); + if (is_seed !== null){ + tokentype = 'SOUND'; + state.current_line_wip_array.push([is_seed[0].trim(),tokentype]); + state.tokenIndex++; + } else { + match=errorFallbackMatchToken(stream); + //depending on whether the verb is directional or not, we log different errors + logError(`Ah I were expecting a sound seed here after ${state.current_line_wip_array[state.current_line_wip_array.length-1][0].toUpperCase()}, but I don't know what to make of "${match[0].trim().toUpperCase()}".`, state.lineNumber); + tokentype = 'ERROR'; + state.current_line_wip_array.push("ERROR"); + } + } + } + } } - logError('unexpected sound token "'+candname+'".' , state.lineNumber); - stream.match(reg_notcommentstart, true); - return 'ERROR'; + + if (stream.eol()){ + processSoundsLine(state); + } + + return tokentype; + break; } case 'collisionlayers': @@ -1005,80 +1281,6 @@ var codeMirrorFn = function() { } break; } - case 'legend': - { - var resultToken=""; - var match_name=null; - if (state.tokenIndex === 0) { - match_name=stream.match(/[^=\p{Z}\s\(]*(\p{Z}\s)*/u, true); - var new_name=match_name[0]; - //if name already declared, we have a problem - state.tokenIndex++; - resultToken = 'NAME'; - } else if (state.tokenIndex === 1) { - match_name = stream.match(/=/u,true); - if (match_name===null||match_name[0].trim()!=="="){ - logError(`In the legend, define new items using the equals symbol - declarations must look like "A = B", "A = B or C [ or D ...]", "A = B and C [ and D ...]".`, state.lineNumber); - stream.match(reg_notcommentstart, true); - resultToken = 'ERROR'; - match_name=["ERROR"];//just to reduce the chance of crashes - } - stream.match(/[\p{Z}\s]*/u, true); - state.tokenIndex++; - resultToken = 'ASSSIGNMENT'; - } else if (state.tokenIndex >= 3 && ((state.tokenIndex % 2) === 1)) { - //matches AND/OR - match_name = stream.match(reg_name, true); - if (match_name === null) { - logError("Something bad's happening in the LEGEND", state.lineNumber); - match=stream.match(reg_notcommentstart, true); - resultToken = 'ERROR'; - } else { - var candname = match_name[0].trim(); - if (candname === "and" || candname === "or"){ - resultToken = 'LOGICWORD'; - if (state.tokenIndex>=5){ - if (candname !== state.legend_current_line_wip[3]){ - logError("Hey! You can't go mixing ANDs and ORs in a single legend entry.", state.lineNumber); - resultToken = 'ERROR'; - } - } - } else { - logError(`Expected and 'AND' or an 'OR' here, but got ${candname.toUpperCase()} instead. In the legend, define new items using the equals symbol - declarations must look like 'A = B' or 'A = B and C' or 'A = B or C'.`, state.lineNumber); - resultToken = 'ERROR'; - // match_name=["and"];//just to reduce the chance of crashes - } - } - state.tokenIndex++; - } - else { - match_name = stream.match(reg_name, true); - if (match_name === null) { - logError("Something bad's happening in the LEGEND", state.lineNumber); - match=stream.match(reg_notcommentstart, true); - resultToken = 'ERROR'; - } else { - var candname = match_name[0].trim(); - - if (state.tokenIndex % 2 === 0) { - resultToken = 'NAME'; - } - state.tokenIndex++; - - } - } - - if (match_name!==null){ - state.legend_current_line_wip.push(match_name[0].trim()); - } - - if (stream.eol()){ - processLegendLine(state,mixedCase); - } - - return resultToken; - break; - } case 'rules': { if (sol) { @@ -1353,7 +1555,7 @@ var codeMirrorFn = function() { tokenIndex: 0, - legend_current_line_wip: [], + current_line_wip_array: [], legend_synonyms: [], legend_aggregates: [], diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index fa2c39092..7fbb39f5c 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -42,7 +42,7 @@ var errormessage_testdata = [ ], [ "incorrect sound declaration", - ["title Microban\nauthor David Skinner\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\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\nboop\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*O.#\n##.*P*.#\n#..O*O.#\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\n",["line 76 : unexpected sound token \"boop\".","line 76 : incorrect sound declaration."],2] + ["title Microban\nauthor David Skinner\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\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\nboop\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*O.#\n##.*P*.#\n#..O*O.#\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\n",["line 76 : unexpected sound token \"boop\"."],1] ], [ `Unrecognised stuff in the prelude`, @@ -469,7 +469,7 @@ var errormessage_testdata = [ ], [ "#779 'sfx0 49518300 destroy' works", - ["title Simple Block Pushing Game\nauthor David Skinner\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\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\nplayer move up 142315 move\nPlayer Move down 142313\nPlayer Move right 142311\nCrate Move 412312\nPlayer CantMove up 41234\nCrate CantMove 41234\nCrate Create 41234123\nCloseMessage 1241234\nSfx0 213424 sfx1\nSfx3 213424\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 67 : Was expecting a direction, instead found \"142315\".","line 67 : Expecting sfx data, instead found \"move\".","line 75 : too much stuff to define a sound event."],2] + ["title Simple Block Pushing Game\nauthor David Skinner\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\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\nplayer move up 142315 move\nPlayer Move down 142313\nPlayer Move right 142311\nCrate Move 412312\nPlayer CantMove up 41234\nCrate CantMove 41234\nCrate Create 41234123\nCloseMessage 1241234\nSfx0 213424 sfx1\nSfx3 213424\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 67 : I wasn't expecting anything after the sound declaration 142315 on this line, so I don't know what to do with \"MOVE\" here.","line 75 : I wasn't expecting anything after the sound declaration 213424 on this line, so I don't know what to do with \"SFX1\" here."],2] ], [ "#804 extra closing brackets accepted without comment", @@ -511,4 +511,20 @@ var errormessage_testdata = [ "#820 ditto error message sometimes spits out duplicates", ["title Simple Block Pushing Game\nauthor David Skinner\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\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\ncat = crate and wall\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 | cat ] -> [ > 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\n",["line 61 : Trying to create an aggregate object (something defined in the LEGEND section using AND) with both \"WALL\" and \"CRATE\", which are on the same layer and therefore can't coexist.","line 81 : WALL and CRATE can never overlap, but this rule requires that to happen, so it's being culled."],2] ], + [ + "#821 people probably should be warned against naming objects the same as sound events (SFX0, cantmove, etc)", + ["title Simple Block Pushing Game\nauthor David Skinner\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\naction\nblue \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 cantmove\nOrange\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\nSfx3 = target\n\n=======\nSOUNDS\n=======\n\nplayer move up 142315\nplayer Move down 142313\nPlayer Move right 142311\nCrate Move 412312\nPlayer CantMove vertical 41234\nCrate CantMove 41234\nCrate Create 41234123\nclosemessage 1241234\nSfx0 213424\nSfx3 213424\nendlevel 12312\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, action\n\n======\nRULES\n======\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\n",["line 26 : You named an object \"ACTION\", but this is a keyword. Don't do that!","line 45 : You named an object \"CANTMOVE\", but this is a keyword. Don't do that!","line 64 : You named an object \"SFX3\", but this is a keyword. Don't do that!"],0] + ], + [ + "Testing error messages for incorrect semantic in the sounds section", + ["title Simple Block Pushing Game\nauthor David Skinner\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\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 up cat 31232\nCrate create up 31232\nCrate create cat 31232\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 67 : Ah I were expecting direction or a sound seed here after UP, but I don't know what to make of \"CAT\".","line 68 : Ah I were expecting a sound seed here after CREATE, but I don't know what to make of \"UP\".","line 69 : Ah I were expecting a sound seed here after CREATE, but I don't know what to make of \"CAT\"."],3] + ], + [ + "Sound section comment insertion stress test", + ["title Simple Block Pushing Game\nauthor David Skinner\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\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(a)36772507(\n)Crate MOVE 36772507(b)\nCrate(c)MOVE(d)36772507\n(e)Crate MOVE 36772507(d\n\n)Crate ()MOVE() ()36772507(e\nCrate MOVE)Crate MOVE 36772507\n(g)Crate(hd)MOVE(i)36772507(f\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[],0] + ], + [ + "Sound effect already declared message", + ["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 ten 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 234234 \nsfx0 3295707 (player jump)\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 10\n\n###################\n#.................#\n#.................#\n#............#....#\n#............#....#\n#.......#...##....#\n#..P....#...##..E.#\n###################\n###################\n..#...#...#...#...#\n#...#...#...#...#..\n###################\n###################\n###################\n###################\n\nmessage level 2 of 10\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 10\n\n###################\n#........#........#\n#........#........#\n###.............###\n#.................#\n#.....P.....E.....#\n#....###...###....#\n#..######.######..#\n#.......#.#.......#\n#.......###.......#\n###.............###\n#.................#\n#.................#\n######.......######\n###################\n\nmessage level 4 of 10\n\n###################\n#..#...........#..#\n#..#.....E.....#..#\n#..#....###....#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#.....P.....#..#\n###################\n\nmessage level 5 of 10\n\n###################\n#.................#\n#.................#\n#.................#\n#...C........C....#\n#..###......###...#\n#.................#\n#...P........E....#\n#########.##.#.####\n###################\n#.................#\n#.................#\n#.................#\n###################\n\nmessage level 6 of 10\n\n###################\n#..#.#....#..#....#\n#..#.#.E..#..######\n#########.#..#....#\n#....#..#.####....#\n#....#..#....######\n#########....#.#..#\n#....#..#....#.#..#\n#########.#########\n#....#....#..#....#\n######....#..#....#\n#.#..#....#########\n#.#..####.#..#..#.#\n#.#..#..#P#..#..#.#\n###################\n\nmessage level 7 of 10\n\n###################\n#.................#\n#...............C.#\n#............####.#\n#.................#\n#.......#...#.#...#\n#..P....#...#.#E..#\n#.###############.#\n#.###############.#\n#.#...#...#...#...#\n#...#...#...#...#.#\n###################\n#.................#\n#.................#\n###################\n\nmessage level 8 of 10\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 10\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 10\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#.E..........C....#\n####.##.....###...#\n#######.....###...#\n#.................#\n#.................#\n#...P.............#\n#..#############..#\n###################\n#.................#\n###################\n\n\nmessage congratulations!\n\n",["line 121 : SFX0 already declared."],0] + ], ]; \ No newline at end of file From 09704eba9221df88ffe5c5252fd58c8b5aab0c20 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Tue, 22 Feb 2022 17:40:56 +0100 Subject: [PATCH 020/122] fixes #826 --- src/tests/resources/testdata.js | 85 +++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/src/tests/resources/testdata.js b/src/tests/resources/testdata.js index 39f9a08b0..9b6ab67f8 100644 --- a/src/tests/resources/testdata.js +++ b/src/tests/resources/testdata.js @@ -1343,5 +1343,90 @@ var testdata = [ "Undo and Real-time #796", ["title Undo and Real-time\nrealtime_interval 0.25\n\n========\nOBJECTS\n========\n\nBackground .\nBlack\n\nPlayer @\nBlue\n\nThing *\nYellow\n\n=======\nLEGEND\n=======\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nThing\nPlayer\n\n======\nRULES \n====== \n\n[ Thing ] -> [ right Thing ] \n\n==============\nWINCONDITIONS\n============== \n\n======= \nLEVELS\n=======\n\nmessage Walk around a bit, then undo several times (usually, three is enough).\n\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.............@.......................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n\n\n\n\n\n",["tick",4,4,4,1,1,"tick",1,"tick","tick","tick","tick","undo","undo","tick","tick","tick","undo"],"background: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,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,background thing:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,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,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,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,background player: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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,\n",1,"1642738088805.1099"] ], + [ + "Cucumber Surprise", + ["title Cucumber Surprise\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #595652\ntext_color white\n\nagain_interval 0.01\n\n(thanks to bvoq for Puzzlescript+MIS https://dekeyser.ch/puzzlescriptmis/ also testing. also thanks to ggn and meepmeep13 for testing)\n\n========\nOBJECTS\n========\n\nBackground\n#595652 #696a6a\n00000\n00000\n00100\n00000\n00000\n\n\n\nziel\n#595652 #eec39a #d9a066 #e1b489\n.111.\n23331\n23331\n23331\n.222.\n\n\nwand\n#696a6a #847e87\n00010\n11111\n01000\n11111\n00010\n\n\nplayer\n#595652 #ac3232 #8a6f30 #5b6ee1\n.111.\n.222.\n.222.\n13331\n.1.1.\n\n\nkatze\n#000000 \n0..00\n.0.00\n.000.\n.0.0.\n.0.0.\n\ngurke\ntransparent #99e550 #6abe30\n00100\n02110\n02110\n02110\n00200\n\npush_up\ntransparent\n\npush_down\ntransparent\n\npush_left\ntransparent\n\npush_right\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\ng = gurke\np = player\n* = katze\n# = wand\n@ = katze and ziel\nO = ziel\nm = gurke and ziel\n\nobstacle = player or katze or wand or gurke\npush = push_up or push_down or push_left or push_right\n\n=======\nSOUNDS\n=======\n\nsfx0 23445905 (katzenschreck)\nstartgame 90870106\nstartlevel 90870106\nendlevel 78627300\ngurke move 70216507\nkatze move 45785907\n================\nCOLLISIONLAYERS\n================\n\nBackground\nziel\nPlayer, katze, gurke, wand\npush\n======\nRULES\n======\n\n[moving player] [ push ] -> [ moving player ] [ ]\n\nup [ push_up stationary katze | no obstacle ] -> [ | push_up action katze ] again\n+ down [ push_down stationary katze | no obstacle ] -> [ | push_down action katze ] again\n+ left [ push_left stationary katze | no obstacle ] -> [ | push_left action katze ] again\n+ right [ push_right stationary katze | no obstacle ] -> [ | push_right action katze ] again\n\n\n[ > Player | gurke | no obstacle ] -> [ > Player | > gurke | no obstacle ] again\n\n\n[ < player | katze ] -> [ < player | < katze ] again\n\nlate up [ gurke | katze | no obstacle] -> [ gurke | push_up katze | no obstacle] sfx0\nlate down [ gurke | katze | no obstacle] -> [ gurke | push_down katze | no obstacle] sfx0\nlate left [ gurke | katze | no obstacle] -> [ gurke | push_left katze | no obstacle] sfx0\nlate right [ gurke | katze | no obstacle] -> [ gurke | push_right katze | no obstacle] sfx0\n\nlate up [ gurke | katze ] -> [ gurke | push_up katze ]\nlate down [ gurke | katze ] -> [ gurke | push_down katze ]\nlate left [ gurke | katze ] -> [ gurke | push_left katze ]\nlate right [ gurke | katze ] -> [ gurke | push_right katze ]\n\n==============\nWINCONDITIONS\n==============\n\nall katze on ziel\n\n=======\nLEVELS\n=======\n\n(wanna hand make the first few levels)\n\n\nmessage Put your doting cats to bed.\nmessage Level 1/20 \n.....#####\n######...#\n#...o..#.#\n#.p..*o*.#\n##########\n\n\nmessage Who left that cucumber there?\nmessage Level 2/20 \n##########\n#........#\n#........#\n#.g.p.*.o#\n#........#\n#........#\n##########\n\nmessage Level 3/20\n(The only thing cats love more than you is hating cucumbers)\n(not so hard, could be an ok level 2)\n######\n#...o#\n#.#..#\n#*.g.#\n#..p.#\n#....#\n######\n\nmessage Level 4/20\n(almost trivial)\n#######\n#.o...#\n#..g..#\n#.o..p#\n#...*.#\n#.....#\n#..*..#\n#######\n\n\nmessage Level 5/20\n(easy enough - could be level 2?)\n.#######\n.#...*.#\n.#..*..#\n##.p.o.#\n#.g....#\n#o.....#\n########\n\n\n\nmessage Level 6/20\n(reasonable. could be level 2)\n..####...\n###..####\n#....p..#\n#.#.*#m.#\n#....#..#\n#########\n\n\nmessage Level 7/20\n(ok early level 1-2)\n######\n#o...#\n#.m.*#\n#....#\n#.*p.#\n######\n\n\n\nmessage Level 8/20\n(nice level. could be #2 or 3)\n..####.\n###o.##\n#..g..#\n#.#..##\n#*..p#.\n######.\n\n\nmessage Level 9/20\n(nice level. could be level 3/4)\n########\n#...*o.#\n#.*....#\n#..p.g.#\n#####.o#\n....####\n\n\n\n\nmessage Level 10/20\n(haven't solved this yet - tricky / hard to find the solution? but once I tried and concentrated I was able to ?)\n######\n#o..p#\n#.#..#\n#o.g.#\n#*...#\n#..*.#\n######\n\n\nmessage Level 11/20\n(ok late intermediate)\n######\n#po.o#\n#.#g.#\n#*...#\n#....#\n#.*..#\n######\n\n\n\nmessage Level 12/20\n( ok level, but not an ok first level )\n####..\n#*o#..\n#..###\n#.g.p#\n#....#\n#..###\n####..\n\n\nmessage Level 13/20\n(two gurkins! not hard! pleasing!)\n#######\n#...g.#\n#..#..#\n#....g#\n#.*#..#\n##....#\n#o..p.#\n#######\n\n\nmessage Level 14/20\n(ok latish intermediate!)\n#####.\n#o..##\n#....#\n##pg.#\n.##..#\n..##*#\n...###\n\n\nmessage Level 15/20\n(ok late intermediate level)\n#######\n#.o...#\n#..g..#\n#.#...#\n#.o.#.#\n#....*#\n#p.#.*#\n#######\n\n\n\n\n\nmessage Level 16/20\n(bit trial+errory. not high-concept)\n#######\n#.#p..#\n#.**..#\n#.#...#\n#...g##\n#....o#\n#o.#..#\n#######\n\n\nmessage Level 17/20\n(a bit tricky - the solution was not hard but finding it was a bit indirected / trial+errory)\n#######\n##o...#\n#.o#.*#\n#.....#\n#.##..#\n#..g..#\n#.*.p.#\n#######\n\n\n\nmessage Level 18/20\n(unsolved. wtf.)\n..######\n..#....#\n..#..g.#\n####.###\n#..o.##.\n#.#.p.#.\n#...#.#.\n###*..#.\n..#####.\n\n\n\n\nmessage Level 19/20\n(ok hardish level)\n....#########...\n#####..o.o..####\n#.g...#.#.#....#\n#...*...p...*..#\n################\n\n\nmessage Level 20/20\n(intermediate. pleasing)\n......#####\n......#...#\n......#.#.#\n#######g#.#\n#....p..o.#\n#o#*#.#.###\n#......*#..\n#########..\n\nmessage Congratulations. All the cats are in bed, having cucumbers nightmares.\n\n(\n( super hard. do not include)\n......#####\n......#...#\n......#.#.#\n#######.#.#\n#....**...#\n#.#m#.#.###\n#.....po#..\n#########..\n)\n",[1,3,3,0,1,0,2,2,3,0,1,0,0,0,2,3,0,1,2,2,2,1,1,0,3,3,2,3,0,1,0,0,0,0],"background wand:0,0,0,0,0,0,0,\n0,0,0,background:1,1,1,1,\n1,0,0,background ziel:2,2,1,0,\n1,1,0,0,1,0,1,\n0,1,1,0,0,background player:3,1,\n1,1,1,1,0,0,1,\nbackground katze:4,background katze push_up:5,background gurke:6,1,1,0,0,\n0,0,0,0,0,0,0,\n",35,"1645544413590.2168"] + ], + [ + "Chevron Lodger", + ["title Chevron Lodger\nauthor increpare\nhomepage www.increpare.com\n\n(verbose_logging)\n\ncolor_palette ega\n\nbackground_color #d3beaa\ntext_color #683d15\n(thanks to youAtExample for feedback)\n\n========\nOBJECTS\n========\n\nBackground\n#d3beaa #d3beaa\n00000\n00000\n00100\n00000\n00000\n\n\n\n\nWall\n#7b4b1d #7b4b1d\n00000\n00000\n00100\n00000\n00000\n\n\n\nPlayer_top 1\n#ee8b16\n..0..\n..0..\n.000.\n.000.\n00000\n\n\nplayer_middle 2\n#ee8b16\n\n\nplayer_bottom 3\n#ee8b16\n00000\n00.00\n00.00\n0...0\n0...0\n\n\n\nCrate_top\n#926c3f\n..0..\n..0..\n.000.\n.000.\n00000\n\n\n\ncrate_middle \n#926c3f\n\n\ncrate_bottom\n#926c3f\n00000\n00.00\n00.00\n0...0\n0...0\n\n\n\n\n\n=======\nLEGEND\n=======\n\nplayer = Player_top or player_middle or player_bottom\ncrate = Crate_top or crate_bottom or crate_middle\n\n. = Background\n# = Wall\n\na = crate_top\nb = crate_middle\nc = crate_bottom\n\nplayer_or_crate = player or crate\n\nobstacle = wall or player or crate\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx0 48406107 (snap)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n(level generation QOL things. can comment out later)\ndown [ playeR_top | no player] -> [ Player_top | player_bottom ]\ndown [ Crate_top | no player ] -> [ Crate_top | crate_bottom ]\n\n\ndown [ > player_bottom | Crate_top ] -> [ | player_middle ] sfx0\n\nup [ > player_top | crate_bottom ] -> [ | player_middle ] sfx0\n\nhorizontal [ > Player | Crate ] -> [ > Player | > Crate ]\n\n\n\ndown [ left Crate_top | stationary crate_bottom ] -> [ left Crate_top | left crate_bottom ]\n+ down [ stationary Crate_top | left crate_bottom ] -> [ left Crate_top | left crate_bottom ]\n+ horizontal [ > crate | stationary crate ] -> [ > crate | > crate ] \n\ndown [ right Crate_top | stationary crate_bottom ] -> [ right Crate_top | right crate_bottom ]\n+ down [ stationary Crate_top | right crate_bottom ] -> [ right Crate_top | right crate_bottom ]\n+ horizontal [ > crate | stationary crate ] -> [ > crate | > crate ] \n\n[ > player_or_crate | wall ] -> cancel\n\nlate vertical [ player_middle | crate_middle ] -> [ player_middle | player_middle ]\n\nlate down [ player_middle | crate_bottom ] -> [ player_middle | player_bottom ]\nlate up [ player_middle | crate_top ] -> [ player_middle | player_top ]\n\n==============\nWINCONDITIONS\n==============\n \nno crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 6\n\n(ok level 1)\n#######\n#.....#\n#.#...#\n#a....#\n#c..#.#\n#.1a..#\n#.3c..#\n#######\n\nmessage Level 2 of 6\n\n(ok level 2)\n#########\n#...a...#\n#...c1..#\n#.#.#3..#\n#...a...#\n#...c.a.#\n##..#.c.#\n#########\n\n\nmessage Level 3 of 6\n\n\n(ok level 2.5?)\n###########\n######...##\n######.#.##\n#####....##\n#####....1#\n#...a..#.3#\n#...c...a.#\n#..a....c.#\n#..c...####\n###########\n\n\n(\n(weirdly confusing - could be a level 2.5 ? but could be too similar to 3)\n#########\n#....1a.#\n#....3c.#\n#..#..#.#\n##......#\n#..aa...#\n#..cc...#\n#########\n)\n\nmessage Level 4 of 6\n\n(ok level 3? too similar to level 1 to follow it?)\n##########\n#........#\n#........#\n#..#.#...#\n#.a.1....#\n#.c.3#.#.#\n#..#..a..#\n#.....c..#\n##########\n\nmessage Level 5 of 6\n\n(NICE LEVEL I used my brain and solved it)\n###########\n#######...#\n#####.....#\n#####...a.#\n#.a1....c.#\n#.c3...#..#\n#.....a...#\n#.....c...#\n###########\n\nmessage Level 6 of 6\n\n(perfectly ok level! lots of nice considerations. good enough!)\n############\n#######....#\n######.....#\n######..a#.#\n######..c..#\n######.....#\n#...a.aa.#.#\n#.1.c.cc...#\n#.3......a.#\n###......c.#\n############\n\nmessage Congratulations. You know your chevrons well.\n\n(HARD. TRY AGAIN) \n(SOLVED IT DON'T LIKE IT)\n(#############\n#######.....#\n#######1....#\n#######3..#.#\n#######..#..#\n#######.a.a.#\n#.....a.c.c.#\n#.....c.....#\n#...a.....a.#\n#...c.....c.#\n#############\n\n)\n\n\n(\n(meh)\n#########\n#..a....#\n#..c..a.#\n#....1c.#\n#...a3#.#\n#...c...#\n#.......#\n#########\n)\n\n(\n(meh)\n#########\n#....a1.#\n##...c3.#\n#.#..#..#\n#....##.#\n#.#..a..#\n##...c..#\n##..##..#\n#.......#\n#..a....#\n#..c.a..#\n#.#.#c..#\n#.......#\n#########\n)\n\n((no: meh)\n(ok!)\n#####\n#.a.#\n#ac.#\n#c..#\n#..a#\n#..c#\n#..##\n#..a#\n#..c#\n#.a.#\n#1c.#\n#3..#\n#...#\n#####\n)\n(\n(Eeeh)\n#####\n#a..#\n#c.##\n#.a.#\n#.c.#\n#.a.#\n#.ca#\n#.1c#\n#.3a#\n#a.c#\n#ca.#\n#.c.#\n#...#\n#####\n)\n\n(\n(meh)\n#####\n#.a.#\n#1c.#\n#3..#\n#...#\n#.#.#\n#..##\n#...#\n#...#\n#.a.#\n#.c.#\n#aaa#\n#ccc#\n#####\n)\n(\n(too easy)\n#####\n#aa.#\n#cca#\n#1ac#\n#3c.#\n#...#\n#.a.#\n#.c.#\n#a..#\n#c..#\n#.#.#\n#.a.#\n#.c.#\n#####)\n\n(\n#############\n#######.....#\n#######.....#\n#######.....#\n#######.....#\n#######.....#\n#...........#\n#...........#\n#...........#\n#...........#\n#############\n\n)\n(\n(non trivial and has an idea but you can probably find better)\n#############\n#######..#..#\n#######.#...#\n#######....1#\n#######.a..3#\n#######.c.a.#\n#.#....a..c.#\n#......c....#\n#.....a...a.#\n#.....c...c##\n#############\n)\n\n\n(insoluble ? wtf? oh maybe old version that didn't transfer movements correctly)\n(#############\n########.a#.#\n#######a.c###\n#######c....#\n#######1....#\n#######3....#\n#.....a..#..#\n#....ac.....#\n#....c....a.#\n#.........c.#\n#############\n)\n(\n(meh)\n#############\n#######...1.#\n#######..a3.#\n#######..c..#\n#######.....#\n#######.....#\n#.....a.a...#\n#.....c.c..a#\n#.....a....c#\n#.....c....##\n#############\n)\n\n(meh)(\n#############\n#######..a..#\n#######.1c..#\n#######a3.a.#\n#######c..c.#\n#######a.##.#\n##.....c....#\n#...........#\n#.a.........#\n#.c.#.......#\n#############\n)\n\n(90% meh)\n(\n#############\n#######.#...#\n#######.....#\n#######....##\n#######...1.#\n#######.a.3.#\n#...aa.ac...#\n#...cc.c....#\n##.......a..#\n##.....##c..#\n#############)\n\n(meh)\n(\n#############\n#######.#...#\n#######.....#\n########.#.a#\n########aa1c#\n#######.cc3.#\n#....a......#\n#....c......#\n#.#.......a.#\n#.#.......c.#\n#############\n)\n\n(\n(meh)\n#############\n#######a.a..#\n#######c.c..#\n#######.a.#.#\n#######.c..##\n#######.....#\n#..........##\n#....#...a..#\n#....a...c.1#\n##...c..#..3#\n#############\n)\n\n\n\n(insoluble :[\n#############\n#######.a...#\n#######.c...#\n#######.#...#\n#######.....#\n#######..a..#\n#.a......c1##\n#.c.......3.#\n#...a....a..#\n#...c.#..c..#\n#############\n)\n(insoluble :[\n#############\n#######.#...#\n#######.....#\n#######..#..#\n#######.....#\n#######.....#\n#a#.1...a...#\n#c..3a..c.a.#\n#....c.a..c.#\n#......c....#\n#############\n)\n(insoluble :[\n#############\n#######..#..#\n########....#\n#######.1...#\n#######.3...#\n#######...a.#\n#.......aac.#\n#....a..cc.##\n#....ca.....#\n#.....c....##\n#############\n)\n(trivial\n#############\n#######.1...#\n########3...#\n#######.#...#\n#######..aa.#\n########.cca#\n#........a.c#\n##.......c..#\n#....#..a...#\n#.......c...#\n#############\n)\n(almost trivial\n#############\n#######...#.#\n#######.a...#\n#######.c...#\n#######.a...#\n#######.caa.#\n#.#.1....cc.#\n#...3....a..#\n#.#.a....c..#\n#.##c.......#\n#############\n)\n(trivial\n#############\n#######.....#\n#######.....#\n########..a.#\n#######.1.c.#\n#######.3...#\n#....a.#a...#\n#....c..c.a.#\n##...a.a..c.#\n#....c.c....#\n#############\n)\n(trivial\n#############\n#######.a...#\n#######.c...#\n#######.....#\n#######.....#\n#######.....#\n#......1aa..#\n#.....#3cc..#\n##..a.a.....#\n#...c.c.....#\n#############\n)\n\n(trivial\n#############\n#######.##..#\n#######.....#\n#######.a...#\n#######.c...#\n#######.....#\n#...a1....a.#\n#...c3....c.#\n#a......aa..#\n#c......cc..#\n#############\n)\n\n(\n(hard but also meh)\n#############\n########....#\n#######.a.1.#\n#######.c.3a#\n#######....c#\n#######...a.#\n#.....a..ac.#\n#.....c..c..#\n#........#a.#\n#.#.#.....c.#\n#############\n)\n(unsolvable :'[\n#############\n#######..#..#\n########....#\n#######.1...#\n#######.3...#\n#######...a.#\n#.......aac.#\n#....a..cc.##\n#....c.a....#\n#......c...##\n#############\n)\n\n((meh)\n(there's an idea to this level, which I like - could it be expanded?)\n#############\n########...##\n#######a..1a#\n#######c..3c#\n#######....a#\n#######....c#\n#aa.........#\n#cc.........#\n#...........#\n#...........#\n#############\n)\n\n(meh\n#############\n########....#\n#######.....#\n#######...#.#\n#######...a.#\n#######...ca#\n#........a.c#\n#...1....c.##\n#...3..a..a.#\n#......c..c.#\n#############\n)\n(Tricky?)\n(meh)\n(\n#############\n#######.....#\n#######.a...#\n#######.c..a#\n#######....c#\n#######.1..a#\n#.a.....3#.c#\n#.c.......a.#\n#.........c.#\n#........#.##\n#############\n)\n(\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#####\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#####\n\n#####\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#####\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n)\n(meh it's ok but I already have somethign like this?)\n(\n#########\n#.a.....#\n#.c.....#\n#...#.#1#\n#......3#\n#.#.a...#\n#..#c...#\n#########\n)\n(\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n##.....##\n##.....##\n###...###\n###...###\n####.####\n####.####\n#########\n\n(meh)\n#########\n#.#.....#\n#.a.....#\n#.....#.#\n#..#.#..#\n#..a1a..#\n#.......#\n##.....##\n##.....##\n###...###\n###...###\n####.####\n####.####\n#########\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.1..a.a..#\n#.3..b.b..#\n#....c.c..#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n)\n(meh)\n(\n#########\n###...###\n##.....##\n#.......#\n#.......#\n#.......#\n#.......#\n##aa1aa##\n##cc3cc##\n###aaa###\n###ccc###\n####a####\n####c####\n#########\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#...1...#\n#...3...#\n##aaaaa##\n##ccccc##\n###aaa###\n###ccc###\n####a####\n####c####\n#########\n\n#########\n#########\n####.####\n###...###\n##.....##\n#.......#\n#.......#\n##aa1aa##\n##cc3cc##\n###aaa###\n###ccc###\n####a####\n####c####\n#########\n)\n\n(\nTRANSFORM\n\nchoose 1 down [ no obstacle | no obstacle ] -> [ player_top | player_bottom ]\nchoose 5 down [ no obstacle | no obstacle ] -> [ crate_top | crate_bottom ]\nchoose 10 [ no crate no player ] -> [ wall ]\n\n----\n\n\n(choose 1 option 0.5 [ wall ] -> []\n+ option 0.5 [ no obstacle ] -> [ wall ])\n\nchoose 5 option 0.2 [ no obstacle ] -> [ wall ]\n+ option 0.2 []->[]\n\nchoose 5 down [ no obstacle | no obstacle ]-> [ crate_top | crate_bottom] \nchoose 1 down [ no obstacle | no obstacle ] -> [ player_top | player_bottom]\n(choose 1 down [ no obstacle | no obstacle ] [crate_top|crate_bottom]-> [ crate_top | crate_bottom] [|])\n\n)\n",[3,2,2,1,1,1,0,3,3,2,3,3,0,0,0,3,0,3,0,3,3,2,2,2,0,1,1,3,2,2,2,1,1,0,0,1,1,2,1,1,3,3,3,3,0,0,0,0,3,3,3,2,1,2,1,1,1,"undo","undo",3,0,1,1,2,1,1],"background wall:0,0,0,0,0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,0,0,0,0,0,\nbackground crate_top:2,background crate_bottom:3,1,1,0,0,0,0,0,background player_top:4,background player_middle:5,\n5,background player_bottom:6,0,0,0,0,0,1,1,1,1,\n0,0,0,1,1,1,1,1,1,0,0,\n0,1,1,1,1,1,1,0,0,1,1,\n1,1,0,1,1,0,0,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,\n1,0,0,0,0,0,0,0,0,0,0,\n",9,"1645544442907.0366"] + ], + [ + "Two-Tone Tango", + ["title Two-Tone Tango\nauthor increpare\nhomepage www.increpare.com\n\nrequire_player_movement\n\n\n========\nOBJECTS\n========\n\nBackground\n#58875a\n\n\nTarget\ntransparent #b8ca58\n00000\n00100\n01110\n00100\n00000\n\n\nWall\n#906f80 #5f4351\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nlightblue\n\nFreund\n#355278\n\nCrate\n#b39b2a transparent\n00000\n01110\n01110\n01110\n00000\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nf = Freund\n* = Crate\n@ = Crate and Target\nO = Target\n\npusher = player or freund or crate\n\nblocker = player or freund or crate or wall\n=======\nSOUNDS\n=======\n\nCrate MOVE 26816907\nsfx1 15668107 (disconnect)\nsfx2 62739107 (connect)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, freund, Wall, Crate\n\n======\nRULES\n======\n\n[ up player | Freund ] -> [ up player | up Freund ]\n[ down player | Freund ] -> [ down player | down Freund ]\n[ left player | Freund ] -> [ left player | left Freund ]\n[ right player | Freund ] -> [ right player | right Freund ]\n\n\nvertical [ up freund | stationary freund ] -> [ up freund | up freund ]\nvertical [ down freund | stationary freund ] -> [ down freund | down freund ]\nvertical [ left freund | stationary freund ] -> [ left freund | left freund ]\nvertical [ right freund | stationary freund ] -> [ right freund | right freund ]\n\n(forward propagation)\n[ > pusher | Crate ] -> [ > pusher | > Crate ]\n\n\n(backwards propagation)\n\n[ > pusher | stationary blocker ] -> [ stationary pusher | stationary blocker ]\n+ vertical [ up freund | stationary freund ] -> [ stationary freund | stationary freund ]\n+ vertical [ down freund | stationary freund ] -> [ stationary freund | stationary freund ]\n+ vertical [ left freund | stationary freund ] -> [ stationary freund | stationary freund ]\n+ vertical [ right freund | stationary freund ] -> [ stationary freund | stationary freund ]\n\n(again forwards propagation)\n[ stationary pusher | > crate ] -> [ stationary pusher | stationary crate ]\n\n[stationary player ]-> cancel\n\n[ < player | stationary freund ] -> sfx1\n[ > player | | stationary freund ] -> sfx2\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1/8\n(could be ok level 1?)\n############\n#..........#\n#....*....o#\n#..f...p...#\n#..f#..p#..#\n############\n\n\nmessage Level 2/8\n(pleasant early)\n#######\n#..f..#\n#..f..#\n#o@...#\n#..p*.#\n#..p#.#\n##....#\n#######\n\n\nmessage Level 3/8\n(ok level 3? no 2)\n######\n#...o#\n##.f##\n#..f.#\n#..*.#\n#p...#\n#p...#\n######\n\n\nmessage Level 4/8\n(Really nice intermediate level!)\n#########\n#p..#...#\n#p....#.#\n#.*.....#\n#....f..#\n#...#f.o#\n#...#...#\n#########\n\n( (Easy but not bad. ok first level?) )\n( ###### )\n( #.#..# )\n( #.o..# )\n( #f...# )\n( #f.*p# )\n( #..*p# )\n( #...o# )\n( ###### )\n\n\n( (maybe ok early level? actually kinda tricky? maybe leave out?) )\n( ########## )\n( #..*...o.# )\n( #...f@...# )\n( #p..f....# )\n( #p..#....# )\n( ########## )\n\n( (p. easy. maybe for start of game. maybe leave out? not outstanding, just ok) )\n( ###### )\n( #o...# )\n( #..*o# )\n( #..p.# )\n( #.fp*# )\n( #.f..# )\n( #.*o.# )\n( ###### )\n\n\n( (easy but ok, maybe level 2-3? so lala) )\n( ########## )\n( #..f..o*.# )\n( #o.f..*p.# )\n( #@.....p.# )\n( ##.....### )\n( ########## )\n\n( (pretty ok? level 1 or 2? okish) )\n( ###### )\n( #..f.# )\n( #p.f.# )\n( #p*..# )\n( #.*.o# )\n( #...*# )\n( #o..o# )\n( ###### )\n\n\n( (Early hard. fine? not too memeorable meh) )\n( ###### )\n( #...o# )\n( #o.o*# )\n( #..f.# )\n( #**f.# )\n( #..p.# )\n( #..p.# )\n( ###### )\n\n\nmessage Level 5/8\n(a bit tricky but I could reason through it, OK)\n######\n#.#.p#\n#...p#\n#o..*#\n#.**o#\n#.f.o#\n#.f..#\n######\n\n\n\n\nmessage Level 6/8\n(late. pretty fun! nice to figure out / work through, if not exactly a lynchpin level)\n######\n#...o#\n#....#\n#...f#\n#..*f#\n#p**o#\n#p.o.#\n######\n\n\nmessage Level 7/8\n(INTERESTING intermediate. got stuck for a weird amount of time lol)\n######\n#o*.o#\n#p..f#\n#p*#f#\n#.*..#\n#....#\n#..o.#\n######\n\n\nmessage Level 8/8\n(funny! late intermediate/early late difficulty. definitely include)\n######\n#p...#\n#p...#\n##*.@#\n#f...#\n#fo..#\n#o.*.#\n######\n\nmessage Congratulations! You are the master of tango.\n\n( (got weirdly stuck for a while, but not hard - late early) )\n( ###### )\n( #...o# )\n( #p...# )\n( #p.@.# )\n( #..*.# )\n( #...f# )\n( #...f# )\n( ###### )\n\n( (ok intermediate? feel like I've solved it before though ,but dont' remmber the solution. maybe pass on this one?) )\n( ####### )\n( #.....# )\n( #.....# )\n( #....p# )\n( ##*..p# )\n( #..f@## )\n( #..f.o# )\n( ####### )\n\n( (easy but not appropriate for eearly game IMO. leave out) )\n( ########## )\n( #o.f...*p# )\n( #..f.o*.p# )\n( #........# )\n( ##.#.....# )\n( ########## )\n\n\n( (Easy ish but not so interesting/useful as intro level?) )\n( ######### )\n( #..o*f.o# )\n( #...*fo*# )\n( #p......# )\n( #p......# )\n( ######### )\n\n( (don't like can realize mistake at the end and need to backtrack) )\n( ########## )\n( ##..o..*p# )\n( #.......p# )\n( #...**.f.# )\n( ##..o.of.# )\n( ########## )\n\n( (trivial) )\n( ########## )\n( #.....po.# )\n( #f..*.p..# )\n( #f.....*.# )\n( #..@.o...# )\n( ########## )\n\n( (trivial) )\n( ########## )\n( #...*o..f# )\n( #...@.#.f# )\n( #p.....*.# )\n( #p......o# )\n( ########## )\n\n\n( (meh. not hard. not fun for me) )\n( ########## )\n( ##...pof.# )\n( #...*p.f.# )\n( #.o...*..# )\n( #..o...*.# )\n( ########## )\n\n\n\n( (perfectly chill/lovely/not hard. wtf? I guess i mistranscribed) )\n( ###### )\n( ##...# )\n( ##...# )\n( ##...# )\n( ##...# )\n( ##p..# )\n( #fp..# )\n( #f.*.# )\n( #o..## )\n( ###### )\n\n\n\n( (meh) )\n( ######### )\n( #....po.# )\n( #...#p..# )\n( ##*.....# )\n( #....f.## )\n( #...#f..# )\n( #...#.#.# )\n( ######### )\n\n( (could be ok as intermediate level? not sure it's conceptually sharp though, but I could solve it with my brain) )\n( ###### )\n( #....# )\n( #..o.# )\n( #p**f# )\n( #po*f# )\n( #..*o# )\n( #o..## )\n( ###### )\n\n\n( (trivialish/boring) )\n( ######## )\n( ####...# )\n( ####...# )\n( ####...# )\n( ####..p# )\n( ####*op# )\n( #f*....# )\n( #f.....# )\n( #o.....# )\n( #..o*..# )\n( ######## )\n\n( (trivialish/boring) )\n( ######## )\n( ####...# )\n( ####.op# )\n( ####.op# )\n( ####.*.# )\n( ####*..# )\n( #......# )\n( #f.....# )\n( #fo*...# )\n( #......# )\n( ######## )\n\n( (hard work, accidentally found solution. skip it) )\n( ######## )\n( ####...# )\n( ####...# )\n( ####...# )\n( ####.o.# )\n( ####.p.# )\n( #.f..p*# )\n( #.f..*.# )\n( #..o*.o# )\n( #......# )\n( ######## )\n\n( (trivial) )\n( ######## )\n( ####...# )\n( ####f..# )\n( ####fo.# )\n( ####...# )\n( ####.*.# )\n( #....o.# )\n( #.*..@p# )\n( #.....p# )\n( #......# )\n( ######## )\n\n\n\n( (trivial) )\n( ######## )\n( ####...# )\n( ####o*o# )\n( ####p..# )\n( ####p..# )\n( ####.*.# )\n( #...o.*# )\n( #.f....# )\n( #.f....# )\n( ######## )\n\n( (trivialish. leave it) )\n( ######## )\n( ####...# )\n( ####...# )\n( ####*o.# )\n( ####*..# )\n( ####...# )\n( #..f.*p# )\n( #..f..p# )\n( #....oo# )\n( ######## )\n\n( (can't figure it out. try solve again later. meh solved it what an anticlimax. screw this level.) )\n( ###### )\n( #f*o.# )\n( #f...# )\n( #*p*o# )\n( #.p*.# )\n( #oo..# )\n( #....# )\n( ###### )\n\n\n( \n\n\n########\n####...#\n####...#\n####...#\n####...#\n####...#\n#......#\n#......#\n#......#\n#......#\n########\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n##########\n\n############\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n\n##########\n######...#\n######...#\n######...#\n######...#\n######...#\n#........#\n#........#\n#........#\n##########\n\n########\n####...#\n####...#\n####...#\n####...#\n####...#\n#......#\n#......#\n#......#\n########\n)\n(transformation\n\nchoose 5 [ ] -> [ wall ]\nchoose 1 down [ no blocker | no blocker ] -> [ player | player ]\nchoose 1 down [ no blocker | no blocker ] -> [ freund | freund ]\nchoose 2 down [ no blocker ] -> [ crate ]\nchoose 2 down [ no wall no player no freund no target ] -> [ target ]\n)\n",[0,2,2,1,3,0,0,0,3,"restart",0,1,"restart",2,0,1,1,1,0,0,0,3,3,2,2,1,3,2,1,0,0,0,3,3,2,1,3,2,1,2,2,1],"background wall:0,0,0,0,0,0,0,\n0,0,background:1,1,background crate target:2,1,1,\n0,0,0,1,1,background target:3,background crate:4,\nbackground player:5,5,0,0,1,1,1,\n1,1,1,0,0,1,1,\n1,1,0,1,0,0,1,\n1,1,background freund:6,6,1,0,0,\n0,0,0,0,0,0,0,\n",3,"1645544569499.8286"] + ], + [ + "Hole-Stuffer", + ["title Hole-Stuffer\nauthor increpare\nhomepage www.increpare.com\n\n\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\n\nWall\n#493c2b #664b28\n00000\n01000\n00100\n00010\n00000\n \n\n\nPlayer\ngreen\n\n\n\nwintoken\ntransparent\n\nrandommoved\ntransparent\n\n\nplayer_1\n#2f484e #c62a6f #852e55 #af2f68\n01111\n23333\n23313\n23133\n23333\n\nplayer_2\n#c62a6f #af2f68 #852e55 #ffffff\n00000\n11211\n12021\n20302\n22022\n\nplayer_3\n#c62a6f #2f484e #af2f68\n00001\n22220\n20220\n22020\n22220\n\nplayer_4\n#852e55 #af2f68 #c62a6f\n01212\n01212\n01212\n01212\n01212\n\n\nplayer_5\n#852e55 #af2f68 #c62a6f #2f484e\n01212\n01212\n01212\n01112\n30003\n\n\n\ncrate\n#2f484e #fca556 #bd5d07 #eb8931\n01110\n23331\n23331\n23331\n02220\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = wall and randommoved\n\nobstacle = wall or crate\npusher = crate or player\n\n\nsprite_player = player_1 or player_2 or player_3 or player_4 or player_5 \n\n\nsprite = sprite_player \n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nwintoken\nrandommoved\nsprite\n\n\n======\nRULES\n======\n\n\n[ stationary randommoved ] [ > pusher | stationary Crate ] -> [ action randommoved] [ > pusher | > Crate ]\n\n[ action randommoved ] [ > pusher | stationary Crate ] -> cancel\n\n[ > pusher | wall ] -> cancel \n\n\n\nlate [ sprite ] -> []\n\n\nlate down [ no player | player | obstacle | obstacle | obstacle ] -> [ | player wintoken | obstacle | obstacle | obstacle ] again\n\n\n\n\nlate right [ player | player | player ] -> [ player player_1 | player player_2 | player player_3 ]\nlate down [ player_1 | | | ] -> [ player_1 | player_4 | player_4 | player_5 ]\nlate down [ player_3 | | | ] -> [ player_3 | player_4 | player_4 | player_5 ]\n==============\nWINCONDITIONS\n==============\n\nsome wintoken\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 4\n\n@###########\n#..........#\n#..........#\n#..........#\n#.ppp......#\n#.p.p......#\n#.p.p..***.#\n#.p.p......#\n#..........#\n#..........#\n############\n\nmessage Level 2 of 4\n\n\n@########\n#..ppp..#\n#..p.p..#\n#..p.p..#\n#..p.p..#\n#..***..#\n#.......#\n#.......#\n#########\n\n\nmessage Level 3 of 4\n\n@######\n#.....#\n#.....#\n#.....#\n#.....#\n#...*.#\n#ppp..#\n#p.p*.#\n#p.p..#\n#p.p*.#\n#######\n\nmessage Level 4 of 4\n\n@########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#..***..#\n#..ppp..#\n#..p.p..#\n#..p.p..#\n#..p.p..#\n#########\n\nmessage Congratulations, you aul hole-stuffer.\n\n\n\n",[3,2,2,1,1,1,0,0,1,1,2,1,1,0,3,3,3,2,1,1,2,3,3,2,1,1,0,0,1,1,3,3,0,1,1,2,2,1,3,2,1,1],"background randommoved wall:0,background wall:1,1,1,1,1,1,1,1,\n1,background:2,2,2,2,background crate:3,2,2,1,\n1,2,2,2,background player player_1:4,background player player_4:5,5,background player player_5:6,1,\n1,2,2,2,background player player_2:7,2,2,3,1,\n1,2,2,2,background player player_3:8,5,5,6,1,\n1,2,2,2,2,2,2,2,1,\n1,2,2,2,2,3,2,2,1,\n1,2,2,2,2,2,2,2,1,\n1,1,1,1,1,1,1,1,1,\n",3,"1645544598726.4905"] + ], + [ + "Wand Spinner", + ["title Wand Spinner\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #5b6ee1\n\n(thanks to bluemelon555 for the assistance, and ggn2, and bvoq )\n\n\n\n========\nOBJECTS\n========\n\nBackground\n#5b6ee1\n\ncrate\n#abb5f1 #5f4a18\n01110\n1...1\n1...1\n1...1\n01110\n\nTarget_h\ntransparent #c71fa9 transparent transparent\n00000\n11111\n22223\n11111\n00000\n\nTarget_v\ntransparent #c71fa9 transparent transparent\n01210\n01210\n01210\n01210\n01210\n\nWall\n#3f3f74\n\nPlayer\n#5b6ee1 #5fcde4 #000000\n01110\n12121\n11111\n11211\n01110\n\nstick_w 1\n#abb5f1 #323c39\n.....\n.....\n00111\n.....\n.....\n\nstick_nw 2\n#abb5f1 #323c39\n.....\n.0...\n..0..\n...1.\n....1\n\nstick_n 3\n#abb5f1 #323c39\n..0..\n..0..\n..1..\n..1..\n..1..\n\nstick_ne 4\n#ffffff #abb5f1 #323c39\n.....\n...1.\n..1..\n.2...\n2....\n\n\nstick_e 5\n#323c39 #abb5f1\n.....\n.....\n00011\n.....\n.....\n\n\nstick_se 6\n#323c39 #abb5f1\n0....\n.0...\n..1..\n...1.\n.....\n\nstick_s 7\n#323c39 #abb5f1\n..0..\n..0..\n..0..\n..1..\n..1..\n\nstick_sw 8\n#323c39 #abb5f1\n....0\n...0.\n..1..\n.1...\n.....\n\nmoved\ntransparent\n\ncon_ne\ntransparent\n\ncon_nw\ntransparent\n\ncon_se\ntransparent\n\ncon_sw\ntransparent\n\ntl\ntransparent\n\n\n\n=======\nLEGEND\n=======\nstick = stick_w or stick_nw or stick_n or stick_ne or stick_e or stick_se or stick_s or stick_sw\nstick_h = stick_e or stick_w\n\nstick_v = stick_n or stick_s\n\n. = Background\n# = Wall\nP = Player\n\n\n9 = target_h\n0 = Target_v\n\ntarget = target_h or Target_v\no = crate\nplayer_or_crate = player or crate\nstick_or_crate = stick or crate\nplayer_or_crate_or_stick = player or crate or stick\n\n@ = wall and tl\n\nobstacle = player or stick or crate or wall\n\na = target_v and stick_n\ns = target_v and stick_s\nd = target_h and stick_w\nf = target_h and stick_e\n\nz = target_v and stick_w\nx = target_v and stick_e\nc = target_h and stick_n\nb = target_h and stick_s\n\n=======\nSOUNDS\n=======\n\nstick move 12743307\nendlevel 58303907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, stick,crate\nmoved\ncon_ne, con_nw, con_se, con_sw\ntl\n\n\n======\nRULES\n======\n\n\n\n[ > player_or_crate | stick_or_crate ] -> [ > player_or_crate | > stick_or_crate ]\n\ndown [ left stick_n no moved | stick_s no moved ] -> [ left stick_nw moved | stick_se moved ]\n+ down [ right stick_n no moved | stick_s no moved ] -> [ right stick_ne moved | stick_sw moved ]\n+ down [ stick_n no moved | left stick_s no moved ] -> [ stick_ne moved | left stick_sw moved ]\n+ down [ stick_n no moved | right stick_s no moved ] -> [ stick_nw moved | right stick_se moved ]\n\n+ right [ down stick_w no moved | stick_e no moved ] -> [ down stick_sw moved | stick_ne moved ]\n+ right [ up stick_w no moved | stick_e no moved ] -> [ up stick_nw moved | stick_se moved ]\n+ right [ stick_w no moved | down stick_e no moved ] -> [ stick_nw moved | down stick_se moved ]\n+ right [ stick_w no moved | up stick_e no moved ] -> [ stick_sw moved | up stick_ne moved ]\n\n\n+ right [ right stick_nw no moved | ] -> [ right stick_n moved | right con_ne ]\n+ right [ up stick_nw no moved | ] -> [ right stick_n moved | right con_ne ]\n+ down [ right con_ne | stick_se ] -> [ | stick_s ]\n\n+ down [ down stick_nw no moved | ] -> [ down stick_w moved | down con_se ]\n+ down [ left stick_nw no moved | ] -> [ down stick_w moved | down con_se ]\n+ right [ down con_se | stick_se ] -> [ | stick_e ]\n\n+ left [ left stick_se no moved | ] -> [ left stick_s moved | left con_se ]\n+ left [ down stick_se no moved | ] -> [ left stick_s moved | left con_se ]\n+ up [ left con_se | stick_nw ] -> [ | stick_n ]\n\n+ up [ up stick_se no moved | ] -> [ up stick_e moved | up con_ne ]\n+ up [ right stick_se no moved | ] -> [ up stick_e moved | up con_ne ]\n+ left [ up con_ne | stick_nw ] -> [ | stick_w ]\n\n\n+ left [ left stick_ne no moved | ] -> [ left stick_n moved | left con_nw ]\n+ left [ up stick_ne no moved | ] -> [ left stick_n moved | left con_nw ]\n+ down [ left con_nw | stick_sw ] -> [ | stick_s ]\n\n+ down [ down stick_ne no moved | ] -> [ down stick_e moved | down con_se ]\n+ down [ right stick_ne no moved | ] -> [ down stick_e moved | down con_se ]\n+ left [ down con_se | stick_sw ] -> [ | stick_w ]\n\n+ right [ right stick_sw no moved | ] -> [ right stick_s moved | right con_sw ]\n+ right [ down stick_sw no moved | ] -> [ right stick_s moved | right con_sw ]\n+ up [ right con_sw | stick_ne ] -> [ | stick_n ]\n\n+ up [ up stick_sw no moved | ] -> [ up stick_w moved | up con_nw ]\n+ up [ left stick_sw no moved | ] -> [ up stick_w moved | up con_nw ]\n+ right [ up con_nw | stick_ne ] -> [ | stick_e ]\n\n\n+ [ stationary tl ] [ > crate | stationary stick_or_crate ] -> [ action tl ] [ > crate | > stick_or_crate ]\n+ [ action tl ] -> [ stationary tl ]\n\n+ [ stationary tl ] [ > stick | stationary stick_or_crate ] -> [ action tl ] [ > stick | > stick_or_crate ]\n+ [ action tl ] -> [ stationary tl ]\n\n[ > player_or_crate_or_stick | wall ] -> cancel\n\nlate [moved]->[]\n\n\n==============\nWINCONDITIONS\n==============\nall Target_h on stick_h \nall Target_v on stick_V\n\n=======\nLEVELS\n=======\n\n\nmessage 1 / 18\n(ok level 1?)\n@###..\n#..#..\n#..###\n#.399#\n#.7.p#\n#..###\n####..\n\n\nmessage 2 / 18\n(kinda easy but not bad?)\n@####.\n#0..##\n#03..#\n##7..#\n.##p.#\n..##.#\n...###\n\n\nmessage 3 / 18\n(easy but fun manipulation? could be level 1 but maybe too constrained?)\n@#####.\n#.3..##\n#.7..0#\n#993p0#\n#..7..#\n#######\n\n( (level 2?) )\n( @##### )\n( #99..# )\n( #.#..# )\n( #....# )\n( #.15.# )\n( #p...# )\n( ###### )\n\n\nmessage 4 / 18\n(ok late-early)\n@######\n#.3.p.#\n#.7..0#\n#1f9.0#\n#.....#\n#######\n\nmessage 5 / 18\n(could be ok easy level)\n.######\n.#99#.#\n@#.15.#\n#.3.#.#\n#pb9..#\n#######\n\nmessage 6 / 18\n(easy enough to think through?)\n@####.\n#..3##\n#.9b.#\n#df..#\n#p...#\n######\n\nmessage 7 / 18\n(simple-enough)\n@#####\n#..a.#\n#15s.#\n#..#0#\n#p..0#\n######\n\n\n\nmessage 8 / 18\n(late-easy kinda fine?)\n@######\n#.#.3.#\n#..0b9#\n#p.z5.#\n#...#.#\n#######\n\n( (not too hard but kinda fun?) )\n( @.#####.... )\n( ###99.##### )\n( #.99...33.# )\n( #.#...#77.# )\n( #.....#..p# )\n( ########### )\n\nmessage 9 / 18\n(reduced above. still solvable)\n.@####....\n##99.#####\n#99...33.#\n#....#77.#\n######..p#\n.....#####\n\nmessage 10 / 18\n@#####.#####\n#...3###.0.#\n#...7....0.#\n#####.p.df.#\n....########\n\nmessage 11 / 18\n(easy. feeling lukewarm about it)\n@######\n#.a...#\n#.s.#.#\n#015..#\n#0p#.##\n#######\n\n\nmessage 12 / 18\n(ok free early level?)\n@#######\n#.3....#\n#.7..99#\n#.3.p.0#\n#.7..#0#\n########\n\nmessage 13 / 18\n(not hard. kinda fun/silly)\n@########\n#p......#\n#.#.#a#.#\n#.15.s99#\n#.#.#.#.#\n#.......#\n#########\n\nmessage 14 / 18\n(ok-ish intermediate level)\n@######\n#.#03.#\n#.307.#\n#.7pc9#\n#99.7.#\n#######\n\n\nmessage 15 / 18\n(slightly tricky + fun trick to notice)\n@#####\n#..3.#\n#.#7.#\n#00.a#\n#0a.s#\n#.7p.#\n######\n\nmessage 16 / 18\n(intermediate?)\n@####.\n#.9c##\n#.9b0#\n#1530#\n#p.7.#\n######\n\nmessage 17 / 18\n(kinda chilll / ok!)\n@######\n#.....#\n#.zfc.#\n#.a.sp#\n#.bdx.#\n#.....#\n#######\n\nmessage 18 / 18\n(hardish but ok?)\n.@####\n##.3.#\n#.07.#\n#.0df#\n#p...#\n######\n\nmessage Congratulations! You've graduated from the college of magicians' assistants with flying colours! \n\n( (I like this level) )\n( @###### )\n( #.a.### )\n( #.sp### )\n( #.3.0.# )\n( #.7.0.# )\n( ####### )\n\n\n(( NOT BAD BUT )(Easyish. ok? not soo interesting) )\n( @###### )\n( #.99.## )\n( #..3.p# )\n( #.3b9.# )\n( #.7.### )\n( ####### )\n\n( (Easy but funish? ok level 2?) )\n( @###### )\n( #.3..p# )\n( #.799.# )\n( #.3...# )\n( #.799.# )\n( #.3...# )\n( #.799.# )\n( ####### )\n\n( (interesting goal, but too bloody hard. not solved but solution gawked at) )\n( @###### )\n( #0p3..# )\n( #0.730# )\n( ##1fb0# )\n( ###...# )\n( ####### )\n\n( (trivial) )\n( @###### )\n( ##.p3.# )\n( #df.7.# )\n( #9930.# )\n( #..70## )\n( ####### )\n\n( (meh tolerable but meh) )\n( @###### )\n( #p0..0# )\n( #.0330# )\n( #.377.# )\n( #9b.#.# )\n( ####### )\n\n( (trivial) )\n( @###### )\n( #.99.p# )\n( #.3.c9# )\n( #.7.7.# )\n( #.df.## )\n( ####### )\n\n( (meh) )\n( @######## )\n( ######### )\n( ###p99.## )\n( ###15..## )\n( ###..#### )\n( ####.#### )\n( ####.#### )\n( ####..### )\n( ##....### )\n( ##....### )\n( ######### )\n( ######### )\n\n( (same old) )\n( @###### )\n( #...30# )\n( #.0.70# )\n( #.z5..# )\n( #..#.p# )\n( ####### )\n\n( (same old) )\n( @######## )\n( #..3....# )\n( ##37....# )\n( #.7.p99## )\n( #...99.## )\n( ######### )\n\n( (same old) )\n( (not hard. ok?) )\n( @######## )\n( #.3.....# )\n( #.799.#p# )\n( #.3..99.# )\n( #.7.....# )\n( ######### )\n\n\n( (meh) )\n( (not hard) )\n( @###### )\n( #p.a..# )\n( #..s15# )\n( #.df..# )\n( #.99..# )\n( ####### )\n\n( (meh) )\n( (intermediate ok?) )\n( @##### )\n( #0...# )\n( #0#30# )\n( #..70# )\n( #151x# )\n( #p..0# )\n( ###### )\n\n\n( (meh trial and error solution) )\n( @##### )\n( #..3.# )\n( #0#7p# )\n( #0.3.# )\n( #0a7.# )\n( #0s..# )\n( ###### )\n\n( (trivial) )\n( @######## )\n( #...p...# )\n( #.3399..# )\n( #.773.00# )\n( #...7.00# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #.3.3...# )\n( #.79b.p.# )\n( #..99...# )\n( #..1599.# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #.3.....# )\n( #.b9.99.# )\n( #...3p15# )\n( #.997...# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #..p..3.# )\n( #....cb.# )\n( #....7c9# )\n( #.99..7.# )\n( ######### )\n\n\n\n\n( (fine? too easy maybe I have enough levels like this) )\n( @##### )\n( #....# )\n( #.#99# )\n( #1515# )\n( #p...# )\n( #.99.# )\n( ###### )\n\n( (kinda kludgy? YIP) )\n( @##### )\n( #...p# )\n( #.#0.# )\n( #150.# )\n( #.015# )\n( #.0..# )\n( ###### )\n\n( (eeh rests around a single mechanism. maybe if it were duplciated multiple times with a level, but not just once) )\n( @.#### )\n( ###..# )\n( #.15p# )\n( #1f90# )\n( #...0# )\n( ###### )\n\n\n\n( (meh driving game) INCOMPLETE BUT ALSO DON'T CARE)\n( @.####... )\n( ###..#### )\n( #.....3.# )\n( #.#..#7.# )\n( #....#.p# )\n( ######### )\n\n\n\n\n\n( @##### )\n( #....# )\n( #.#..# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( (trivial) )\n( @.###### )\n( ..#p99.# )\n( ..#.15.# )\n( ..##.### )\n( ...#.#.. )\n( ..##.#.. )\n( ###..#.. )\n( #....##. )\n( #.#...#. )\n( #...#.#. )\n( ###...#. )\n( ..#####. )\n\n\n\n((test level))\n( @.#####.... )\n( ###...##### )\n( #......33.# )\n( #.#...#77.# )\n( #.....#..p# )\n( ########### )\n\n\n( (meh, don't like that you can randomly need to backtrack if you do things in the wrong order. don't find it fun) )\n( @.#####.... )\n( ###...##### )\n( #......33.# )\n( #.#00.#77.# )\n( #..00.#..p# )\n( ########### )\n\n( (trivial but bad) )\n( @.####... )\n( ###..#### )\n( #..cc99.# )\n( #.#77#..# )\n( #p...#..# )\n( ######### )\n\n\n( @.#####... )\n( ###...#### )\n( #........# )\n( #.#...#..# )\n( #.....#..# )\n( ########## )\n\n\n( @.####... )\n( ###..#### )\n( #.......# )\n( #.#..#..# )\n( #....#..# )\n( ######### )\n\n( @####### )\n( #......# )\n( #......# )\n( #......# )\n( #####..# )\n( ....#### )\n\n\n\n( @####### )\n( .#.....# )\n( .#.....# )\n( ##.....# )\n( #......# )\n( #......# )\n( ######## )\n\n( (meh ok but not so tricky? too much walking about) )\n( @#####..##### )\n( #....####...# )\n( #.33......#.# )\n( #.77#9999...# )\n( #p..######### )\n( #####........ )\n\n( @#####.##### )\n( #....###...# )\n( #........#.# )\n( #...#......# )\n( #...######## )\n( #####....... )\n\n( (meh) )\n( @#### )\n( #990# )\n( #0.0# )\n( #099# )\n( #15.# )\n( #15.# )\n( #33.# )\n( #77.# )\n( #.p.# )\n( ##### )\n\n( @####### )\n( #990099# )\n( #..00..# )\n( #.3153.# )\n( #.7157.# )\n( #...p..# )\n( #......# )\n( ######## )\n\n( @##### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( @###### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( @########### )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( ############ )\n\n( @########### )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #.....15...# )\n( #......p...# )\n( #..........# )\n( #..........# )\n( #.........9# )\n( ############ )\n\n( (dunno!) )\n( @###### )\n( ##..### )\n( ##..### )\n( ##..### )\n( ##..### )\n( ##15### )\n( ##15### )\n( ##15### )\n( #.p...# )\n( #.....# )\n( #.99..# )\n( #.99..# )\n( #.99..# )\n( ####### )\n\n( @####....... )\n( #99..##....# )\n( #..99..##..# )\n( #........### )\n( ###........# )\n( ..##@...15.# )\n( ...#.@#..15# )\n( ...#..#@@.p# )\n( ...#.......# )\n( ...######### )\n\n( @##### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( (nice idea but hard also has a crate) )\n( @##### )\n( #99..# )\n( #o.df# )\n( #.p3.# )\n( #..7.# )\n( ###### )\n\n( @.###### )\n( ..#....# )\n( ..#....# )\n( ..##.### )\n( ...#.#.. )\n( ...#.#.. )\n( ####.#.. )\n( #....##. )\n( #.#...#. )\n( #...#.#. )\n( ###...#. )\n( ..#####. )\n\n\n\n( @####. )\n( #...## )\n( #....# )\n( ##...# )\n( .##..# )\n( ..##.# )\n( ...### )\n\n\n( @.....##### )\n( ......#...# )\n( ......#.#.# )\n( #######.#.# )\n( #.........# )\n( #.#.#.#.### )\n( #.......#.. )\n( #########.. )\n\n( @######## )\n( #.......# )\n( #.#.#.#.# )\n( #.......# )\n( #.#.#.#.# )\n( #.......# )\n( ######### )\n\n\n\n( @###.. )\n( #..#.. )\n( #..### )\n( #....# )\n( #....# )\n( #..### )\n( ####.. )\n\n\n( @######## )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #......p# )\n( #.9c....# )\n( #997.3a.# )\n( #....7s.# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #..p..3.# )\n( #....cb.# )\n( #....7c9# )\n( #.99..7.# )\n( ######### )\n\n( (fine/tricky but too like other levels) )\n( @##### )\n( ##30.# )\n( #.70.# )\n( #df..# )\n( #.p..# )\n( ###### )\n\n( @###### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( @############ )\n( #...........# )\n( #...........# )\n( #...........# )\n( #...........# )\n( ############# )\n\n( @######## )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( ######### )\n\n( @########### )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( ############ )\n\n( @.#####.... )\n( ###...##### )\n( #.........# )\n( #.#...#...# )\n( #.....#...# )\n( ########### )\n\n( @................ )\n( ................. )\n( ........9........ )\n( .....999......... )\n( ................. )\n( ......p.......... )\n( .3333.....2..4... )\n( .7777...15.68.... )\n( ................. )\n( ................. )\n( ................. )\n( ................. )\n\n(TRANSFORMATION\n==========\nTRANSFORM\n==========\n\n\nchoose 5 [ ] -> [ wall ]\nchoose 1 [ no wall ] -> [ player ]\n\nchoose 2 option 0.5 right [ no obstacle | no obstacle ] -> [ stick_w | stick_e ]\n+ option 0.5 up [ no obstacle | no obstacle ] -> [ stick_s | stick_n ]\n\n\nchoose 2 option 0.5 right [ no wall no player no target | no wall no player no target ] -> [ target_h | target_h ]\n+ option 0.5 up [ no wall no player no target | no wall no player no target ] -> [ target_v | target_v ]\n\n\n\n)\n\n",[2,3,3,0,0,0,2,2,2,1,1,1,1,0,0,3,3,0,3,3,2,2,"undo",2],"background tl wall:0,background wall:1,1,1,1,1,1,\nbackground:2,2,2,background target_h:3,1,1,1,\n2,background stick_w:4,3,1,1,background target_v:5,5,\nbackground stick_e:6,2,1,1,2,background stick_n:7,background stick_s target_h:8,\n4,1,1,2,2,background player target_h:9,6,\n1,1,1,1,1,1,1,\n",27,"1645544636691.3945"] + ], + [ + "Acorn Scorchery Paradise", + ["title Acorn Scorchery Paradise\nauthor increpare\nhomepage www.increpare.com\n\n\nbackground_color #3f3f74\n\n========\nOBJECTS\n========\n\nBackground\n#3f3f74 #59598f\n00000\n00000\n00100\n00000\n00000\n\n\n\nTarget\norange transparent transparent\n00000\n01110\n01210\n01110\n00000\n\nWall\n#323c39\n00000\n00000\n00000\n00000\n00000\n\n\nPlayer\n#847e87 #a33c88\n00000\n01110\n00000\n..0..\n.0.0.\n\n\nCrate\n#3f3f74 lightgreen green\n.111.\n21112\n21112\n22222\n.222.\n\n\nCrate_HOT\n#3f3f74 #ff0018 #ac3232\n.111.\n21112\n21112\n22222\n.222.\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\ncrate_or_player = Crate or Player or Crate_HOT\nany_Crate = Crate or Crate_HOT\npush_obstacle = wall or crate or Crate_HOT\nobstacle = wall or crate or Crate_HOT or Player\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 34709107\nendlevel 27179907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, Crate_HOT\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate_hot ]\n\n[ > crate_or_player | stationary push_obstacle ] -> cancel\n\n[ stationary crate_hot ] [ ^ crate_hot ] -> [ crate ] [ ^ Crate_HOT ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on any_Crate\n\n=======\nLEVELS\n=======\n\nmessage 1/5\n(nice!)\n######\n#.#..#\n#.*@.#\n#.p..#\n##.o.#\n.#####\n\nmessage 2/5\n(fine)\n#####\n#o..#\n#o..#\n#**@#\n#.p.#\n#####\n\nmessage 3/5\n(lol)\n######\n#p...#\n#.*..#\n#o.@.#\n##.@.#\n.#####\n\nmessage 4/5\n(fine)\n#####\n#opo#\n#.*.#\n#.*.#\n#o*.#\n#####\n\n\n(youAtExample suggested 'vive of five' when I was looking for stupid homophones)\nmessage 5/5 \n(fiiineish)\n######\n#.o.o#\n#....#\n#.**.#\n#.p#.#\n######\n\n\n\nmessage Congratulations! You are the best Acorn Scorcherer in Acorn Scorchery Paradise!\n\n( (meh not sure) )\n( ..#### )\n( ###.o# )\n( #o*..# )\n( #.*..# )\n( #p.@.# )\n( ###### )\n\n( ##### )\n( #...# )\n( #...# )\n( #...# )\n( #...# )\n( ##### )\n\n\n( ###### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( ####### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( ###### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( ######### )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( ######### )\n\n( ######## )\n( #......# )\n( #......# )\n( #......# )\n( #......# )\n( #......# )\n( #......# )\n( ######## )\n\n\n\n(Transformation\n\nchoose 5 [ ] -> [ wall ]\nchoose 1 [ no wall ] -> [ player ]\nchoose 3 [ no obstacle ] -> [ crate ]\nchoose 3 [ no player no wall no target ] -> [ target ]\n\n)\n",[3,0,0,2,1,0,2,1,0,2,3,0,0,2,0,2,1,0,0,3,3,2,3,0,0,"restart",0,0,0,0,2,1,0,0,3,0,3,0,2,1,2,2,1,0,"restart",1,0,2,3,0,1,2,3,3,0,2,1,1,0,0,2,3,"undo","undo","undo",3,0,0,"restart",1,0,0,2,3,3,0,2,1,1,0,0,2,2,3,3,0,1,0,0,3,2,1,2,2],"background wall:0,0,0,0,0,\n0,0,background crate target:1,background target:2,background crate:3,\nbackground:4,0,0,4,4,\n4,background player:5,0,0,4,\n4,background crate_hot target:6,4,0,0,\n0,0,0,0,0,\n",3,"1645544663060.2773"] + ], + [ + "Match-Maker", + ["title Match-Maker\nauthor increpare\nhomepage www.increpare.com\n( debug )\n( verbose_logging )\nrun_rules_on_level_start\n\ncolor_palette c64\nbackground_color green\n\n========\nOBJECTS\n========\n\nBackground\ngreen\n\nWall\ndarkgreen\n\nPlayer\ndarkblue lightgray \n.000.\n01010\n00000\n01110\n.000.\n\nCrate\npurple\n.....\n.000.\n.000.\n.000.\n.....\n\nhands_up\npink\n.0.0.\n.....\n.....\n.....\n.....\n\nhands_down\npink\n.....\n.....\n.....\n.....\n.0.0.\n\nhands_left\npink\n.....\n0....\n.....\n0....\n.....\n\nhands_right\npink\n.....\n....0\n.....\n....0\n.....\n\ncon_up\ntransparent\n\ncon_down\ntransparent\n\ncon_left\ntransparent\n\ncon_right\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\no = Background\n@ = crate\nhands = hands_up or hands_down or hands_left or hands_right\n\nobstacle = player or crate or wall\n\nplayer_or_crate = player or crate\n\ncon = con_up or con_down or con_left or con_right\n\nw = crate and hands_up\ns = crate and hands_down \na = crate and hands_left\nd = crate and hands_right\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 35405507\nsfx0 3325507 (love)\nsfx1 48219704 (breakup)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nhands_up\nhands_down\nhands_left\nhands_right\ncon_up\ncon_down\ncon_left\ncon_right\n\n\n======\nRULES\n======\n\n\n\n[ > player_or_crate | crate ] -> [ > player_or_crate | > Crate ]\n[ > crate hands ] -> [ > crate > hands ]\n\n\n[ > crate | wall ] -> cancel\n\n[ > crate | no obstacle ] -> [ | crate ]\n[ > hands | no hands ] -> [ | hands ]\n\nup [ hands_up | no hands_down ] -> [|] sfx1\ndown [ hands_down | no hands_up ] -> [|] sfx1\nleft [ hands_left | no hands_right ] -> [|] sfx1\nright [ hands_right | no hands_left ] -> [|] sfx1\n\nright [ crate | crate ] -> [ crate con_right | crate con_left ]\ndown [ crate | crate ] -> [ crate con_down | crate con_up ]\n\n[no hands con_up no con_down no con_left no con_right ] -> [ action hands_up ]\n[no hands no con_up con_down no con_left no con_right ] -> [ action hands_down ]\n[no hands no con_up no con_down con_left no con_right ] -> [ action hands_left ]\n[no hands no con_up no con_down no con_left con_right ] -> [ action hands_right ]\n\n[con]->[]\n\nup [ hands_up | no hands_down ] -> [|]\ndown [ hands_down | no hands_up ] -> [|]\nleft [ hands_left | no hands_right ] -> [|]\nright [ hands_right | no hands_left ] -> [|] \n\n\n[ action hands ] -> sfx0\n\n==============\nWINCONDITIONS\n==============\n\nall crate on hands\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 9\n\n(easyish. ok?)\n######\n#*...#\n##..*#\n#..*.#\n#.*.p#\n######\n\n( (ok first level ish) )\n( ......#####. )\n( ......#...#. )\n( ###...#...#. )\n( #*#####...#. )\n( #.#dada**### )\n( #..**......# )\n( #.#dadada### )\n( #*########.. )\n( #.#......... )\n( #p#......... )\n( ###......... )\n\n\nmessage Level 2 of 9\n\n(ok?)\n.#####\n##..*#\n#..*p#\n#da.##\n#.#.#.\n#...#.\n#####.\n\nmessage Level 3 of 9\n(ok! early intermediate?)\n#######.\n#.p...#.\n#..***##\n###*...#\n..######\n\nmessage Level 4 of 9\n(late-early? pretty entertaining gestalt-wise)\n######\n#.s#.#\n#.w.*#\n#....#\n#..#*#\n#..**#\n#.p..#\n######\n\nmessage Level 5 of 9\n\n(ok? entertaining? slightly? ok level? ok let's say it's ok)\n########\n#..da..#\n#..***.#\n#p..*..#\n#####..#\n....####\n\n\nmessage Level 6 of 9\n(early-intermediate ok?)\n######\n#p...#\n#..da#\n#..*.#\n#*.*##\n#..*##\n#....#\n######\n\n\n\nmessage Level 7 of 9\n(early-intermediate? easy/likeable)\n#######\n#....##\n#.da..#\n#.##*.#\n#..#da#\n#p.*..#\n#######\n\nmessage Level 8 of 9\n(AH. OK? If I@m totally stuck it could be a last level? but not...a *good* one)\n(genuinely tricky. not solved yet)\n#######\n#.#...#\n#*s..s#\n#.w#*w#\n#..p..#\n#..####\n#######\n\n\nmessage Level 9 of 9\n(didnae solve)\n######\n#....#\n#.sda#\n#.w..#\n#*p**#\n#...*#\n######\n\nmessage Congratulations. That was really good!\n\n=======================\n(\n\n(consider pruning)\n(weirdly non-obvious :] )\n######\n#.#.##\n#*#.##\n#.p*.#\n#.*..#\n#.*.##\n######\n\n(consider pruning)\n(Easy but ok?)\n##########\n##..p..*.#\n#.**...###\n##.*.#..##\n#.#...####\n##########\n\n\n\n(consider pruning)\n(weirdly engaging)\n######\n#.#.##\n#.#.p#\n#*.s.#\n#..w.#\n#*..##\n######\n\n\n(I like it - late-easy!)\n##########\n#.#.######\n#..*p*...#\n#..#*#*###\n#........#\n##########\n\n(intermediate ok hmm)\n#######\n#.*...#\n#...#.#\n##*..##\n##*.#.#\n#.....#\n#p#.*.#\n#######\n\n(alternative version of above:)\n########\n#.*..###\n#...####\n##s.####\n##w.####\n#......#\n#p#..*.#\n########\n\n\n(early hard? I think it's ok? just separate the parts)\n(dunno how to solve)\n#######\n#.....#\n#da***#\n#*.*..#\n#.*p#.#\n#.#...#\n#.....#\n#######\n\n======================\n\n\n#######\n#.....#\n#.....#\n#.....#\n#ppp..#\n#ppp..#\n#ppp..#\n#######\n\n\n(too easily accidentally solvable? maybe/maybe not! ok level 2?)\n#######\n#.*...#\n#.#.###\n#p.s.##\n#.#w###\n#.*...#\n#######\n\n(simple? just tidying up)\n#########\n#..*.##.#\n##.*##..#\n#.....*##\n#****...#\n#.*##.p.#\n#..#.##.#\n#########\n\n\n(simple? ok intro?)\n######\n##.#.#\n#.#*##\n#**..#\n#..*.#\n##p..#\n######\n\n\n\n(ok!)\n######\n#...*#\n#da*.#\n#.p..#\n#.***#\n#.*..#\n######\n\n(intermediate eh)\n######\n#....#\n#.*.s#\n#.*.w#\n#***.#\n#*..p#\n######\n\n(early intermediate / meh)\n######\n#.da.#\n#.*..#\n#.*..#\n#****#\n#.p..#\n######\n\n(it's fine but is it fun? ok maybe a bit but not a lot)\n######\n#....#\n#.*..#\n#.***#\n#p.*.#\n#.**.#\n#*...#\n######\n\n(meh too mcuh work; couldn't remember the solution)\n(visually cute. bottom two blocks unnecessary?)\n######\n#....#\n#.**.#\n#.**.#\n#p*.*#\n#.da.#\n######\n\n(dunno. not awful. maybe I'm just tired.)\n######\n#....#\n#.*..#\n#da*.#\n#p**.#\n#.da.#\n######\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n######\n#....#\n#.#..#\n#....#\n#....#\n#....#\n######\n\n\n(meh?)\n######\n#.*..#\n#p#..#\n#.da.#\n#....#\n#.*..#\n######\n\n(yeah fine? no it's not)\n######\n#.*..#\n#.#*##\n#.*.##\n#p..##\n##.*.#\n######\n\n\n\n\n(not bad. easy but not bad)\n##########\n#....#.###\n#.....*.##\n####.*.*.#\n#.#.##*.p#\n##########\n\n(trivial)\n##########\n#....*..*#\n#...##*..#\n#.*....#.#\n#...p....#\n##########\n\n\n\n\n(easy but not terrible but not great)\n######\n#*..##\n##.*##\n#..*.#\n#....#\n#.#*p#\n##...#\n######\n\n(easy. not good not bad)\n######\n#..*.#\n####.#\n##..p#\n#.**.#\n#..#.#\n#..*.#\n######\n\n(early intermediate ok?)\n#########\n#..#..###\n###.*.*.#\n#..#..*##\n####.#*.#\n#.*.p..##\n#.*.....#\n#...#..##\n#########\n\n\n\n\n(boring)\n#######\n#.#...#\n#da...#\n#...*##\n#dap..#\n#..*#.#\n#######\n\n\n(trivialish/boring//routine)\n#######\n#*#*..#\n#....##\n#..da.#\n##..**#\n#.p.**#\n#.....#\n#######\n\n(trivialish/boring//routine)\n#######\n#da.#.#\n#..**.#\n#..**.#\n#.....#\n#*..p.#\n##*..##\n#######\n\n(kinda pleasing; nah)\n..####...\n###..####\n#..s.*..#\n#.#w.#.*#\n#....#p.#\n#########\n\n(ok intermediate. yeah but nah)\n########\n#.p....#\n#.s...*#\n#.w***.#\n#####..#\n....####\n\n(so lala intermediate)\n######.#####\n#.*..###...#\n#.da***..#.#\n#...#......#\n#.p.########\n#####.......\n\n(trivial)\n#######\n#.#...#\n#.s...#\n#.w*.##\n#..p..#\n#.###.#\n#..*..#\n#######\n\n\n(trivial)\n#######\n#.*.#.#\n#.#.#.#\n#...*.#\n##.s..#\n#.pw..#\n##.#.##\n#######\n\n\n\n(trivial)\n#######\n#...*.#\n##..#.#\n#..**.#\n#..#..#\n#.....#\n#.*p..#\n#######\n\n(trivial)\n######\n#....#\n#.s###\n#*w#.#\n#.p*.#\n#.*..#\n#.*..#\n######\n\n(trivial)\n######\n#....#\n#....#\n#*da##\n#*...#\n#p..*#\n##*..#\n######\n\n(ok but not good enoguh? or maybe yeah for an early level but I'm not sure)\n######\n#....#\n#..**#\n#.***#\n#*#.##\n#p...#\n#....#\n######\n\n(ok intermediate but also nah)\n######\n#....#\n#*#.*#\n###..#\n#..s.#\n#**w.#\n#.p..#\n######\n\n(trivial)\n######\n##.#.#\n##*da#\n#....#\n#.s..#\n#*w..#\n#.p..#\n######\n\n(trivial)\n######\n#.**.#\n#.**.#\n#..*.#\n#.p..#\n#..*##\n#....#\n######\n\n(meh)\n######\n#...s#\n#...w#\n#..*.#\n##s..#\n##w#*#\n#.p..#\n######\n\n(boring)\n######\n#...##\n#..**#\n#..*.#\n#.**.#\n#*..##\n#.p..#\n######\n\n(boring)\n######\n#.*..#\n##*..#\n#.**.#\n##.**#\n#.p..#\n##.###\n######\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n(boring)\n######\n#.da.#\n#.*..#\n#..**#\n#..*.#\n#..da#\n#.p..#\n######\n\n(boring)\n######\n#....#\n#...*#\n#s...#\n#w.da#\n#p***#\n#....#\n######\n\n(boring)\n######\n#....#\n#...*#\n#.sda#\n#pw..#\n#..s.#\n#.*w.#\n######\n\n(boring)\n######\n#....#\n#..**#\n#..**#\n#.p*.#\n#....#\n#da.*#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n##########\n\n(boring)\n##########\n#.#.*.#..#\n#.*.***.##\n#.#.....##\n#.##p.*..#\n##########\n\n(boring)\n##########\n####*..*.#\n#....#...#\n#.p***..##\n##...*.#.#\n##########\n\n(boring)\n##########\n#..#.#.#.#\n#*...da*.#\n#..da....#\n#p.###...#\n##########\n\n(boring)\n##########\n#....*s.##\n##da..w..#\n#..p#...##\n#*..##.#.#\n##########\n\n############\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n(boring)\n############\n#..#...**..#\n#.**.#*....#\n#....*.##.##\n##..#p.#...#\n############\n\n(boring)\n############\n#..#...#...#\n#.*..#..*s.#\n#p...#s##w.#\n#.#...w....#\n############\n\n(boring)\n############\n##.....da..#\n#...#s...*.#\n#.#p.w..#..#\n#.#.#...*.##\n############\n\n(not boring kinda funny but also nope)\n############\n#.....##...#\n##........##\n#*..*.#.*.*#\n#*.#p#..*.##\n############\n\n(boring)\n############\n#*.#.#...#.#\n#...da*....#\n#.##p.da...#\n#.##...#...#\n############\n\n(boring)\n############\n#*...*#.#..#\n#.#..*....##\n##...**.#..#\n#.#.p.*...##\n############\n\n(boring)\n############\n#....s.....#\n#..##w...s.#\n#.*p..#*#w.#\n#.#.#....###\n############\n\n(boring)\n############\n#..##.#....#\n#####*#.*..#\n#p#.s...*..#\n#...w.#.*#.#\n############\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n(boring)\n#######\n#.#..##\n#..**.#\n#...*##\n##...##\n##pda.#\n#..*..#\n#######\n\n\n(boring)\n#######\n#.....#\n#da...#\n#.*...#\n##*p..#\n#.*..*#\n##....#\n#######\n\n\n(boring)\n#######\n##...*#\n##....#\n#.....#\n#...*##\n#.***.#\n#p*..##\n#######\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n(meh)\n#######\n#.#..##\n#..**.#\n#...*##\n##...##\n##pda.#\n#..*..#\n#######\n\n(meh)\n#######\n#.*.s.#\n###.w##\n#.....#\n###.s.#\n#..pw*#\n#...#.#\n#######\n\n(ok but not great? meh?)\n#######\n#.....#\n#.....#\n#..da.#\n#.##*.#\n#..**.#\n#p.*#.#\n#######\n\n(trivial)\n#######\n##...*#\n#.*.#.#\n##....#\n#.p.#.#\n#.***.#\n#...*.#\n#######\n\n(easy not great?)\n#######\n#...###\n#.da*.#\n#.##..#\n#.....#\n#pda..#\n#...*.#\n#######\n\n(meh. intentionally solvable. but good? idk)\n#######\n#.s.s.#\n#.w*w.#\n#..*..#\n#....##\n#*p...#\n##*...#\n#######\n\n(trivial)\n#######\n#*....#\n#**...#\n#..s*##\n#..w..#\n#..s..#\n#p.w..#\n#######\n\n(trivial)\n#######\n#.....#\n#.....#\n#*....#\n#pda*.#\n#.#da.#\n#..**.#\n#######\n\n(trivial)\n#######\n#.....#\n#.....#\n#...**#\n#.#**.#\n#*pda.#\n#..#*.#\n#######\n\n(trivial kinda nice but trivial)\n#######\n##.#..#\n#.....#\n#..s..#\n#daw*.#\n#.#.s.#\n#.p.w*#\n#######\n\n(trivial)\n#######\n#.#...#\n#..**.#\n#..**##\n#**p.*#\n#*.#..#\n#.....#\n#######\n\n(trivial)\n#######\n#..*.##\n#s....#\n#w...*#\n#p..da#\n#...*.#\n#...*.#\n#######\n\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n######\n#....#\n#....#\n#....#\n######\n\n#####\n#...#\n#...#\n#...#\n#####\n\n########\n#......#\n#......#\n#......#\n#......#\n#......#\n#......#\n########\n\n(meh. actually ok to solve but not great?)\n########\n#.#*..*#\n#..***##\n#..s...#\n#.#w...#\n#..p#.##\n#...*.##\n########\n\n(meh)\n########\n#.*..*.#\n#.#.s*.#\n##..ws##\n#...*w.#\n#.p.#..#\n#......#\n########\n\n(trivial)\n########\n##.....#\n#.da...#\n##...###\n##.da.*#\n#sp....#\n#w.#..*#\n########\n\n(trivial)\n########\n#da....#\n#..*#..#\n#...#s.#\n#*#s.w.#\n#.pw.#.#\n#...#..#\n########\n\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n(trivial)\n#########\n#.......#\n#..s....#\n#.*w...##\n#.....###\n#dap.#.##\n#..#..*##\n##.....##\n#########\n\n(trivial)\n#########\n#..#..###\n###.*.*.#\n#..#..*##\n####p#*.#\n#.s....##\n#.w.....#\n#...#..##\n#########\n\n(boring)\n#########\n#..*....#\n#.#*....#\n#..da...#\n###....*#\n#.#p##..#\n#...*..##\n#....##.#\n#########\n\n(simplified a part of this and sent it to the top)\n#########\n#...#..##\n#.da##..#\n##..*...#\n#..*p...#\n#da.#...#\n#.#.#..##\n#....####\n#########\n\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n\n\n#######\n#.....#\n#.#.#.#\n#.....#\n##.#.##\n##...##\n#######\n\n#######\n#.....#\n#.#.#.#\n#.....#\n#.#.#.#\n#.....#\n#######\n\n########\n#.....##\n#.#.#.##\n#......#\n##.#.#.#\n##.....#\n########\n\n#########\n#.......#\n#.#.#.#.#\n#.......#\n#.#.#.#.#\n#.......#\n#########\n\n##########\n#.......##\n#.#.#.#.##\n#........#\n##.#.#.#.#\n##.......#\n##########\n\n#########\n#.......#\n#.#.#.#.#\n#.......#\n#.#.#.#.#\n#.......#\n#.#.#.#.#\n#.......#\n#########\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n########\n#......#\n#......#\n#......#\n#####..#\n....####\n\n\n\n(trivial)\n########\n#...da.#\n#.****.#\n#......#\n#####.p#\n....####\n\n(trivial)\n########\n#*.....#\n#****..#\n#p.*...#\n#####..#\n....####\n\n(trivial)\n########\n#......#\n#.*.*..#\n#.*da*.#\n#####.p#\n....####\n\n(trivial)\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#OOO...#\n#...########\n#####.......\n\n\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n..######\n..#.OOP#\n..#.**.#\n..##.###\n...#.#..\n...#.#..\n####.#..\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\n(hmm. ok? meh)\n..######\n..#...p#\n..#.*..#\n####*###\n#..*.##.\n#.#...#.\n#.*.#.#.\n###...#.\n..#####.\n\n(hmm. not good?)\n...###..\n...#.#..\n####*#..\n#.*..##.\n#.#*..#.\n#..*#.#.\n###..p#.\n..#####.\n\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\n\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\n\n(I kinda like it, but now that I'm such an EXPERT it just doesn't do it for me)\n(want to solve but haven't yet. has the look of an ok final level?)\n######\n##.###\n#...##\n#.**.#\n#**..#\n#p..*#\n#.*.##\n######\n\n\n(meh)\n(can't solve. could be ok though)\n######\n#..###\n#.**##\n#.**.#\n#p.*.#\n#*.#.#\n#....#\n######\n\n\n\n\n\n(trivial)\n(nope not solved but nope)\n#######\n#.#...#\n#.s..*#\n#.w*s.#\n#.#*w.#\n##..*.#\n#.#..p#\n#######\n\n(trivial)\n(nope not solved but nope)\n#######\n#..#*.#\n#.s**.#\n#.w.s.#\n#..*w.#\n#p...##\n#.##.##\n#######\n\n(meh I guess it might be ok but meh)\n(stuck)\n#######\n#..##.#\n#**...#\n#.*.#.#\n#.sp*.#\n##w.#.#\n#...#.#\n#######\n\n\n\n\n(didnae solve)\n######\n#....#\n#.sda#\n#.w..#\n#*p**#\n#...*#\n######\n)\n\n(\nTRANSFORMS\n\n\n[player]->[]\n[crate]->[]\n\n(choose 2 [ player ] -> [ no player ] )\n(choose 2 [ no player ] -> [ wall ])\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 1 option 0.5 right [ no obstacle | no obstacle ] -> [ crate hands_right | crate hands_left]\n+ option 0.5 down [ no obstacle | no obstacle ] -> [ crate hands_down | crate hands_up ]\n+ option 0.5 [ no obstacle | no obstacle] -> [crate| crate]\n\n)\n",[2,2,3,3,0,1,0,3,1,2,2,2,2,2,3,0,0,0],"background wall:0,0,0,0,0,0,\n0,0,0,background:1,1,1,\nbackground crate:2,1,1,0,0,1,\n1,1,1,1,1,0,\n0,background crate hands_down:3,background crate hands_up:4,background player:5,1,1,\n1,0,0,2,3,4,\n0,0,1,0,0,0,\n0,0,0,0,0,0,\n",11,"1645544739914.9763"] + ], + [ + "Pushy-V Pully-H", + ["title Pushy-V Pully-H\nauthor increpare\nhomepage www.increpare.com\nbackground_color darkgreen\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkgray\n\nPlayer\nblue\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nCrate\ngreen gray\n11111\n0...0\n0...0\n0...0\n11111\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nobstacle = player or crate or wall\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\nvertical [ > Player | Crate ] -> [ > Player | > Crate ]\nhorizontal [ < Player | Crate ] -> [ < Player | < Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 11\n\n.########\n##o.....#\n#...*...#\n#*o.o.*.#\n##.p..###\n.######..\n\nmessage level 2 of 11\n(level 1?)\n(soluble)\n#######\n#.....#\n#.O*#.#\n#.@@P.#\n#.....#\n#######\n\nmessage level 3 of 11\n....####.\n#####..##\n#.......#\n#.**.oo.#\n#.**.oo.#\n#...p...#\n#########\n\n\nmessage level 4 of 11\n#########\n#.....#p#\n#.o..*.@#\n#...@...#\n#...##..#\n#########\n\n\nmessage level 5 of 11\n(soluble)\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 6 of 11\n(soluble)\n.#####\n.#...#\n.#.O.#\n.#.@.#\n##.@.#\n#..*.#\n#..P.#\n######\n\nmessage level 7 of 11\n\n(soluble)\n####...\n#..####\n#.....#\n#.O*O.#\n#.*P*.#\n#.O*O.#\n#.....#\n#######\n\nmessage level 8 of 11\n#########\n#.......#\n#..*.*..#\n#.*ooo*.#\n#..opo..#\n#.*ooo*.#\n#..*.*..#\n#.......#\n#########\n\nmessage level 9 of 11\n#######\n#..#..#\n#*.#*.#\n#..#..#\n#..o..#\n##o.*.#\n.#op..#\n.######\n\nmessage level 10 of 11\n(soluble)\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\nmessage level 11 of 11\n########\n#......#\n#.#..#.#\n#..@@..#\n#.*o@..#\n#.#..#.#\n#..p...#\n########\n\nmessage Congratulations! You don't just push the push, you pull the pull!\n\n\n\n(\n\n\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n\n\n#############\n#...........#\n#...........#\n#...........#\n#..***.ooo..#\n#..*p*.o.o..#\n#..***.ooo..#\n#...........#\n#...........#\n#...........#\n#############\n)\n\n(\n#########\n#..o....#\n#...#p..#\n#*.*oo.*#\n#.......#\n#########\n)\n\n( ######### )\n( ##o.....# )\n( #...*...# )\n( #*o.o.*.# )\n( ##.p..#.# )\n( ######### )\n\n\n(\n(soluble)\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n)\n\n\n\n\n\n\n\n(\n\n(soluble)\n########\n#......#\n#.*O*O.#\n#PO*O*.#\n#.*O*O.#\n#......#\n########\n)\n\n(\n\n\n\n(insoluble)\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n(insoluble)\n#######\n#..@..#\n#..P.O#\n##*.###\n.#..#..\n.####..\n\n(insoluble)\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n\n(insoluble)\n#####.\n#...#.\n#O#.##\n#....#\n#O...#\n###.##\n#P**#.\n#...#.\n#####.\n\n\n(insoluble)\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\n(insoluble)\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#OOO...#\n#...########\n#####.......\n\n(insoluble)\n######\n#....#\n#.**.#\n#..*.#\n###..#\n.#O.##\n.#O.#.\n.#O.##\n.#...#\n.#.#.#\n.#.P.#\n.#####\n\n(insoluble)\n..######\n..#.OOP#\n..#.**.#\n..##.###\n...#.#..\n...#.#..\n####.#..\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\n\n\n(insoluble)\n.#####......\n.#...#......\n##.#.#..####\n#....####..#\n#.#......*O#\n#...#####*O#\n#####...#.P#\n........####\n\n\n(insoluble)\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\n\n\n\n\n(insoluble)\n...####\n..##PO#\n.##.*.#\n##..*.#\n#O...##\n######.\n\n(insoluble)\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\n\n(insoluble)\n#####...\n#...#...\n#.#P#...\n#...#...\n#.#*#...\n#...#...\n#.#*####\n#...OOO#\n###*##.#\n..#....#\n..######\n\n\n)\n\n(\n\nTRANSFORMATION\n\n[ player ] -> []\n[ crate ] -> []\n[ target ] -> []\n\nchoose 3 [ no wall ] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player no target ] -> [ target ]\n\n)\n",[0,0,2,2,1,1,0,3,2,3,3,3,3,1,0,3,0,1,1,0,0,1,1,0,1,2,2,1,2,2,1,2,2,2,3,3,0,3,3,2,1,1,0,1,1,0,0,0,3,1,0,0,3,3,3,2,1,2,2,2,3,2,3,0,0,0,0,1,1,2,1,1,0,0,1,3,2,3,0,1,1,1,2,2,2,2,2,0,2,3,3,3,0,1,3,3,2,1,1,0,0,0,2,0,0],"background wall:0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,1,\n1,0,0,1,background target:2,background crate:3,background crate target:4,\n1,1,0,0,3,background player:5,2,\n1,2,1,0,0,1,2,\n3,4,3,1,0,0,1,\n1,1,1,1,1,0,0,\n0,0,0,0,0,0,0,\n",19,"1645544759965.9036"] + ], + [ + "Crates move when you move", + ["title Crates move when you move\nauthor increpare\nhomepage www.increpare.com\n\n(\n\ntools used during creation:\n\nhttps://dekeyser.ch/puzzlescriptmis/\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\nnoaction\nbackground_color darkblue\n========\nOBJECTS\n========\n\nBackground\ndarkblue\n\n\nTarget\ndarkgreen\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkbrown\n\nPlayer\nOrange Orange Orange Orange\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nlightgreen\n00000\n0...0\n0...0\n0...0\n00000\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nobstacle = player or crate or wall\n\n=======\nSOUNDS\n=======\n\ncrate move 25044707\nsfx0 25044707\n\nendlevel 84712900\nstartlevel 16124700\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n======\nRULES\n======\n\n\n[ > Player ] [ Crate ] -> [ > Player ] [ > Crate ]\n\n\n\n[ > crate | no obstacle ] -> [ | > crate ] sfx0\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 10\n\n######\n#....#\n#...##\n#..*.#\n#..o.#\n#.p..#\n#....#\n######\n\n( ###### )\n( #*#..# )\n( #.p..# )\n( #..o.# )\n( #....# )\n( ###### )\n\nmessage Level 2 of 10\n######\n#.*.p#\n#.#.##\n#.o..#\n#.#..#\n######\n\nmessage Level 3 of 10\n..###..\n.##o##.\n##...##\n#*.p.o#\n##...##\n.##*##.\n..###..\n\n\n\nmessage Level 4 of 10\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\nmessage Level 5 of 10\n(kinda hard)\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage Level 6 of 10\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\nmessage Level 7 of 10\n######\n##*.##\n##@###\n##..##\n##..##\n##p.##\n##.###\n##o.##\n##..##\n######\n\n\nmessage Level 8 of 10\n#######\n#o...*#\n#o.p.*#\n#o...*#\n#######\n\nmessage Level 9 of 10\n#####.\n#P..##\n#O**.#\n##...#\n.##..#\n..##O#\n...###\n\nmessage Level 10 of 10\n(POSSIBLE to solve! Good final level?)\n######\n#....#\n#o.#p#\n#.#..#\n#.*.@#\n######\n\nmessage Congratulations! The crates learned from your your example and were all very succesful in their subsequent careers.\n\n(\n######\n#o#@.#\n#....#\n#.##*#\n#..p@#\n######\n\n(I solved this, but not intentionally)\n#######\n#.*...#\n#**...#\n#..p..#\n#...oo#\n#...o.#\n#######\n\n(fpfft no idea. haven't solved yet)\n######\n#..*.#\n#*#.##\n#..o.#\n##...#\n#..#.#\n#op#.#\n######\n\n(unsolved. too hard?)\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n####\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n####\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n)\n(\nTRANSFORMATION\n\n\nchoose 3 [ ] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player no target ] -> [ target ]\n\n)\n",[2,1,0,1,1,2,"undo",1,2,3,3,3,0,2],"background wall:0,0,0,0,0,background:1,0,1,\n1,1,0,1,0,1,background target:2,1,\n0,1,0,1,2,1,0,1,\n0,1,2,background crate:3,0,0,0,1,\n3,background player:4,1,0,0,1,1,1,\n3,0,0,0,0,0,0,0,\n",11,"1645544790426.2693"] + ], + [ + "Resin-Caster", + ["title Resin-Caster\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color darkblue\n\n(\n\ntools used during creation:\n\nhttps://dekeyser.ch/puzzlescriptmis/\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\n========\nOBJECTS\n========\n\nBackground\ndarkblue\n\nWall\n#aa00ff\n.000.\n00000\n00000\n00000\n.000.\n\nPlayer\nOrange Orange Orange Orange\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate1\nred\n.000.\n00000\n00000\n00000\n.000.\n\n\nCrate2\nblue\n.000.\n00000\n00000\n00000\n.000.\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = crate1\n@ = crate2\n* = crate2\ncrate = crate1 or crate2\nobstacle = player or wall or Crate1\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, crate1, crate2\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate1 | crate2 ] -> [ | wall ]\n[ > crate2 | crate1 ] -> [ | wall ]\n\n==============\nWINCONDITIONS\n==============\n\nno crate\n\n=======\nLEVELS\n=======\n\nmessage When the two compounds are combined they set into a hard purple resin.\n\nmessage 1 of 10\n(fine!)\n######\n#....#\n#p@o.#\n#....#\n#@..o#\n######\n\nmessage 2 of 10\n(fine-ish?)\n#########\n#..o.@..#\n#..op@..#\n#########\n\nmessage 3 of 10\n(good hard level 1 or nice level 2)\n######\n#.@..#\n#..@.#\n#oo..#\n#.#.p#\n######\n\nmessage 4 of 10\n(ok? looks nice and has a solution that's not totally trivial but also not exactly something you can deduce without trying out - you won't necessarily know after the fact *why* the solkution is a solution)\n######\n#..o.#\n#.o@.#\n#o@..#\n#.p.@#\n######\n\nmessage 5 of 10\n(fine?)\n..####\n.##.o#\n##...#\n#..#.#\n#.@o.#\n#.p@.#\n######\n\nmessage 6 of 10\n(good intermediate)\n######\n#p...#\n#.o@@#\n#oo..#\n#.#@.#\n######\n\n\nmessage 7 of 10\n(kinda ok?)\n#######\n#.....#\n#...#.#\n#@#o@o#\n#.#.#.#\n#..p..#\n#######\n\nmessage 8 of 10\n(kinda fun?)\n######\n#@o.o#\n#.o.@#\n#@.@o#\n#.p..#\n######\n\n\nmessage 9 of 10\n(actually ok?)\n..####...\n###@.####\n#..@....#\n#.#.o#o.#\n#....#p.#\n#########\n\nmessage 10 of 10\n(had the solution spoiled but it's also fine :] )\n######\n#oo.@#\n#.@@o#\n#o.@.#\n#.p..#\n######\n\nmessage Congratulations! You're an exceptionally very competent resin-caster.\n\n(nice level, but maybe not include? not totally feeling it)\n( ###### )\n( #@.o.# )\n( #o.o.# )\n( #@o@.# )\n( #@..p# )\n( ###### )\n\n(eeeh it's fine but I solved it directly by avoiding doing the obvious thing which is BORING)\n( ###### )\n( #.o.p# )\n( #@@oo# )\n( #....# )\n( #@#..# )\n( ###### )\n\n(too much like other level)\n( ###### )\n( #@o.@# )\n( #...o# )\n( #o@o@# )\n( #p...# )\n( ###### )\n\n(kinda ok? I like the interlacing style. but not the best level of all time)\n( ###### )\n( #..@.# )\n( #o#@.# )\n( #.@..# )\n( #...o# )\n( #.o.p# )\n( ###### )\n\n(\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n####\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n####\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\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.*#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*O.#\n##.*P*.#\n#..O*O.#\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\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\n\n(\nTransformation\n\n[ player ] -> []\n[ crate ] -> []\n\n( choose 2 [ player ] -> [ ] )\n\nchoose 3 [ ] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate1 ]\nchoose 2 [ no obstacle ] -> [ crate2 ]\n\n)\n",[3,0,0,1,2,0,1,1,1,2,2,3,0,1,0,3,3,1,2,2,1,1,1,0,0,3,3,3,3,3],"background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,0,1,\n1,background crate2:2,0,0,0,1,1,0,0,\n0,0,1,1,1,background player:3,1,1,1,\n0,1,1,0,background crate1:4,1,0,1,0,\n0,0,1,0,1,1,1,1,1,\n",18,"1645544805711.4153"] + ], + [ + "pipe puffer", + ["title pipe puffer\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nbackground_color #472f37\n(verbose_logging)\n( debug )\n\n========\nOBJECTS\n========\n\nBackground\n#524740 #5a4f48\n00000\n01110\n01110\n01110\n00000\n\n\n\n\nWall\n#472f37\n\nwall_s\ntransparent transparent #291c21\n00000\n11111\n11111\n11111\n22222\n\n\nwall_n\n#5f454e transparent transparent\n00000\n11111\n11111\n11111\n22222\n\nwall_o\ntransparent transparent #5f454e\n01112\n01112\n01112\n01112\n01112\n\nwall_w\n#291c21 transparent transparent\n01112\n01112\n01112\n01112\n01112\n\nwall_nw\n#472f37\n0....\n.....\n.....\n.....\n.....\n\nwall_so\n#472f37\n.....\n.....\n.....\n.....\n....0\n\nPlayer\ntransparent #a69326 #cdb844 #e3d060 #bfaa38 #000000\n01230\n34233\n22522\n11241\n01230\n\n\nrohr_no e\n#005784 #006ea6 #524740 #acacac #cccccc #656d71\n00010 \n23431\n23540\n22330\n22220\n\nrohr_ns x\n#005784 #006ea6 #524740 #acacac #cccccc #e6e6e6 #656d71\n00010\n23452\n23652\n23452\n00010\n\nrohr_nw q\n#005784 #006ea6 #acacac #cccccc #e6e6e6 #524740 #656d71\n00010\n12345\n03645\n02255\n05555\n\n\nrohr_so c\n#524740 #005784 #e6e6e6 #006ea6 #acacac #cccccc #656d71\n00001\n00223\n04651\n04541\n11131\n\nrohr_sw z\n#005784 #524740 #006ea6 #e6e6e6 #cccccc #acacac #656d71\n01111\n23311\n04631\n05431\n00020\n\nrohr_ow a\n#005784 #524740 #006ea6 #e6e6e6 #cccccc #acacac #656d71\n01110\n23332\n04640\n05550\n01110\n\noutlet_n \n#005784 #006ea6 transparent #e6e6e6 #cccccc #acacac #656d71\n01000 \n23452\n22622\n22222\n22222\n\noutlet_s \ntransparent #cccccc #acacac #e6e6e6 #005784 #006ea6 #656d71\n00000\n00000\n00600\n02130\n44454\n\noutlet_o \ntransparent #005784 #e6e6e6 #006ea6 #cccccc #acacac #656d71\n00001\n00023\n00641\n00051\n00001\n\noutlet_w \n#005784 transparent #acacac #cccccc #006ea6 #e6e6e6 #656d71\n01111\n02111\n03611\n45111\n01111\n\ninlet\nblue\n.....\n.....\n..0..\n.....\n.....\n\npust_n\n#cccccc\n.000.\n0...0\n..0..\n..0..\n.....\n\n\npust_s\n#cccccc\n.....\n..0..\n..0..\n0...0\n.000.\n\npust_o\n#cccccc\n...0.\n....0\n.00.0\n....0\n...0.\n\npust_w\n#cccccc\n.0...\n0....\n0.00.\n0....\n.0...\n\n\n\nflow\nblue\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\nwall_überlagung = wall_s or wall_n or wall_o or wall_w or wall_nw or wall_so\n\nrohr = rohr_no or rohr_ns or rohr_nw or rohr_so or rohr_sw or rohr_ow\noutlet = outlet_n or outlet_s or outlet_o or outlet_w\n\nöffnung_n = rohr_no or rohr_ns or rohr_nw or outlet_n\nöffnung_s = rohr_ns or rohr_sw or rohr_so or outlet_s\nöffnung_o = rohr_no or rohr_so or rohr_ow or outlet_o\nöffnung_w = rohr_nw or rohr_sw or rohr_ow or outlet_w\n\nwall_thing = wall or outlet \n\nrohr_or_öffnung = rohr or outlet\n\n. = Background\n# = Wall\nP = Player\n\n1 = outlet_n and wall\n2 = outlet_s and wall\n3 = outlet_o and wall\n4 = outlet_w and wall\n\n5 = outlet_n and inlet and wall\n6 = outlet_s and inlet and wall\n7 = outlet_o and inlet and wall\n8 = outlet_w and inlet and wall\n\npust = pust_n or pust_s or pust_o or pust_w\n\nobstacle = wall_thing or rohr or player\n\nrohr_or_player = rohr or player\n\n=======\nSOUNDS\n=======\nsfx0 39858907 (pusten)\nsfx1 96276907 (rohrdurchpusten)\nrohr move 73985107 (rohrbewegen)\nstartlevel 38142502\nendlevel 45497300\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, rohr\nwall_s\nwall_n\nwall_o\nwall_w\nwall_nw\nwall_so\noutlet\ninlet\nflow\npust_n\npust_s\npust_o\npust_w\n\n======\nRULES\n======\n\nup [ wall | no wall_thing ] -> [ wall wall_n | ]\ndown [ wall | no wall_thing ] -> [ wall wall_s | ]\nleft [ wall | no wall_thing ] -> [ wall wall_w | ]\nright [ wall | no wall_thing ] -> [ wall wall_o | ]\n\n\n[ wall_s wall_o ] -> [ wall_s wall_o wall_so ]\n[ wall_n wall_w ] -> [ wall_n wall_w wall_nw ]\n\n[ > player | obstacle ] -> cancel\n[pust]->[]\n\nright [ | action player | ] -> [ pust_w | action player | pust_o ] again sfx0\nup [ | action player | ] -> [ pust_s | player | pust_n ] again\n\n\nright [ rohr_so pust_n | ] -> [ rohr_so | pust_o ] sfx1\n+ down [ rohr_so pust_w | ] -> [ rohr_so | pust_s ] sfx1\n\n+ up [ rohr_ns pust_n | ] -> [ rohr_ns | pust_n ] sfx1\n+ down [ rohr_ns pust_s | ] -> [ rohr_ns | pust_s ] sfx1\n\n+ left [ rohr_sw pust_n | ] -> [ rohr_sw | pust_w ] sfx1\n+ down [ rohr_sw pust_o | ] -> [ rohr_sw | pust_s ] sfx1\n\n+ right [ rohr_ow pust_o | ] -> [ rohr_ow | pust_o ] sfx1\n+ left [ rohr_ow pust_w | ] -> [ rohr_ow | pust_w ] sfx1\n\n+ right [ rohr_no pust_s | ] -> [ rohr_no | pust_o ] sfx1\n+ up [ rohr_no pust_w | ] -> [ rohr_no | pust_n ] sfx1\n\n+ left [ rohr_nw pust_s | ] -> [ rohr_nw | pust_w ] sfx1\n+ up [ rohr_nw pust_o | ] -> [ rohr_nw | pust_n ] sfx1\n\n[ pust_n rohr ] -> [ pust_n up rohr ]\n[ pust_s rohr ] -> [ pust_s down rohr ]\n[ pust_o rohr ] -> [ pust_o right rohr ]\n[ pust_w rohr ] -> [ pust_w left rohr ]\n\n[pust outlet ] -> [ outlet ]\n\n[ > rohr_or_player | rohr_or_player ] -> [ > rohr_or_player | > rohr_or_player ]\n\n( [ > Player | Crate ] -> [ > Player | > Crate ] )\n\nlate [flow]->[]\n\nlate [ inlet ] -> [ inlet flow ]\n\nlate up [ öffnung_n flow | öffnung_s no flow ] -> [ öffnung_n flow | öffnung_s flow ]\n+ late down [ öffnung_s flow | öffnung_n no flow ] -> [ öffnung_s flow | öffnung_n flow ]\n+ late right [ öffnung_o flow | öffnung_w no flow ] -> [ öffnung_o flow | öffnung_w flow ]\n+ late left [ öffnung_w flow | öffnung_o no flow ] -> [ öffnung_w flow | öffnung_o flow ]\n\n==============\nWINCONDITIONS\n==============\n\nall outlet on flow\n\n=======\nLEVELS\n=======\n\n\nmessage Oh no the factory is falling apart! Can the pipe puffer put it back together?\n\nmessage Level 1 of 8 \n\n(kinda like. fine. best of that kind of level?)\n####6##\n#.....#\n#.....4\n#.xea.#\n##....#\n##..p.#\n#######\n\nmessage Level 2 of 8\n(I like this)\n#######\n#.....#\n#.c.8.#\n#.xa..#\n#.x...#\n#.1.p.#\n#.....#\n#######\n\n( (jokey? not hard? intermediate?) )\n( ########### )\n( #.........# )\n( #...c.z...# )\n( #...xax...# )\n( #.caqxeaz.# )\n( #..x...x..# )\n( #.x.....x.# )\n( #.x.a.a.x.# )\n( #.x.....x.# )\n( #.x..p..x.# )\n( ##5#####1## )\n\n\nmessage Level 3 of 8\n\n###########\n#.....2####\n#..caaq6###\n#..x...x..#\n#..x...x..#\n#..x.a.x..#\n#..ea.aq..#\n#.........#\n#....p....#\n###########\n\n\nmessage Level 4 of 8\n#########\n#.......#\n#...c8..#\n#.6.e4..#\n#..x....#\n#.1.a...#\n#.x..cz.#\n#..p.15.#\n#.......#\n#########\n\n\n\n\n\nmessage Level 5 of 8\n(intermediate. multiple solutions. doesn't mandate the solution I like the most tho >:[ )\n###########\n#.........#\n#.p..7aaaz#\n#..c....x.#\n#........x#\n#........q#\n########1##\n\nmessage Level 6 of 8\n(tricky)\n#########....\n#.......#....\n#......c8####\n#......x#...#\n#......eaaz.#\n#..p.x......#\n#.........1.#\n#......######\n#......#.....\n########.....\n\nmessage Level 7 of 8\n( (or maybe not that hard?) hard)\n########\n#......#\n7aaaaaz#\n#....x.#\n##3...q#\n#.....##\n#.p.cz.#\n#..aqe.#\n#......#\n########\n\n\n\n\nmessage Level 8 of 8\n(not great but ok)\n########6##\n#.....#.x.#\n#.......x.#\n#.....caq.#\n#..a..eaz.#\n#...x..x..#\n#.....a.x.#\n#..p...cq.#\n#......x#.#\n#......x#.#\n#######1###\n\nmessage Thank you! The factory is back up and running. You are verily the premier pipe puffer!\n\n( (not sure if I want this or not) )\n( (fine, solvable wiht brain-usage. doesn't use puffing though sadface) )\n( ###6### )\n( #.....# )\n( #.#..a4 )\n( #...x.# )\n( #.ea..# )\n( ##p...# )\n( ####### )\n\n( (ok silly last level? ) )\n( ############## )\n( #............# )\n( #....6..2....# )\n( #...cq..ez...# )\n( #...ez...q...# )\n( #...cq..ez...# )\n( #...ez..cq...# )\n( #...cq..ez...# )\n( #...ez..cq...# )\n( #...cq..ez...# )\n( #...ez..cq...# )\n( #....1..5....# )\n( #.....p......# )\n( ############## )\n\n\n( ###6#### )\n( #......# )\n( #..a..a4 )\n( #....x.# )\n( #..ea..# )\n( ###p...# )\n( ######## )\n\n( (hard? not yet solved unsolvable lol) )\n( ###6### )\n( #.....# )\n( ##.x.a4 )\n( #.....# )\n( #.ea#.# )\n( #.p...# )\n( ####### )\n\n\n\n(\n(simple. pleasing)\n##62###\n##.x..#\n#.e...#\n#..q..#\n##....#\n.#p.###\n.####..\n\n(similarly simple/pleasing)\n###6##\n#....4\n##.a.#\n#.e..#\n#p...#\n######\n\n(whatever)\n###6##\n#..x.4\n#.ec.#\n#..q.#\n#p...#\n######\n\n(slightly harder)\n###6##\n#..x.4\n#.cq.#\n#.e..#\n#...p#\n######\n\n(fineish)\n###6##\n###.##\n#..a.4\n#..x.#\n#.e..#\n#..p.#\n######\n\n(i remember how to do this one, which is good, but it's alos not great)\n###62###\n#......#\n#..x#..#\n#...q..#\n#x.e...#\n#....p.#\n########\n\n\n( ###6## )\n( #..ea4 )\n( #....# )\n( #.p..# )\n( #....# )\n( ###### )\n\n( ###6## )\n( #..xc4 )\n( #..eq# )\n( #.p..# )\n( #....# )\n( ###### )\n\n\n( ##62## )\n( #.eq.# )\n( #....# )\n( #.p..# )\n( #....# )\n( ###### )\n\n( ##62### )\n( #.eq..# )\n( #.....# )\n( #.p...# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( ###62### )\n( #..xx..# )\n( #..eq..# )\n( #......# )\n( #......# )\n( #....p.# )\n( ######## )\n\n\n##62###\n#.xx..#\n#.eq..#\n#.p...#\n#.....#\n#.....#\n#######\n\n####6##\n#...ea4\n#.....#\n#.....#\n#.p...#\n#.....#\n#######\n\n####6##\n#...xc4\n#...eq#\n#.....#\n#.p...#\n#.....#\n#######\n\n###6###\n#..x..#\n#..eaa4\n#.....#\n#.p...#\n#.....#\n#######\n\n###62###\n#..eq..#\n#......#\n#.p....#\n#......#\n#......#\n########\n\n########\n#......#\n#......#\n#..62..#\n#..eq..#\n#.p....#\n########\n\n####6##\n#...ea4\n#.....#\n#.....#\n#.p...#\n#.....#\n#######\n\n#######\n#.....#\n#.cz..#\n#.x5p.#\n#.x2..#\n#.eq..#\n#.....#\n#######\n\n###6###\n#..ez.#\n#...ea4\n#.....#\n#.p...#\n#.....#\n#######\n\n\n\n(trivial)\n####6##\n#.....#\n#..x..4\n#..ea.#\n#.p...#\n#.....#\n#######\n\n\n####6##\n#.....#\n#..x..4\n#..ea.#\n#.p...#\n#.....#\n#######\n\n\n####6##\n#.....#\n#.c.q.#\n#p.a..4\n#.x.z.#\n#.....#\n#######\n\n##6##\n#...#\n#.p.#\n#...4\n#####\n\n.....\n.....\n.....\n.....\n.....\n\n\n( #########.... )\n( #.......6#### )\n( #.......x...# )\n( #...c.a.eaaz# )\n( #....p......# )\n( #...a.x.caaq# )\n( #.......x...# )\n( #.......1#### )\n( #########.... )\n\n\n( #########...... )\n( #.......6###### )\n( #.......x.....# )\n( #...c.a.eaaaaz# )\n( #....p........# )\n( #...a.x.caaaaq# )\n( #.......x.....# )\n( #.......1###### )\n( #########...... )\n\n\n( #########....... )\n( #.......6####### )\n( #.......x......# )\n( #..c.a..eaaaaz.# )\n( #...p..........# )\n( #..a.x..caaaaq.# )\n( #.......x......# )\n( #.......1####### )\n( #########....... )\n\n( #########....... )\n( #.......#....... )\n( #.......6####### )\n( #.......x......# )\n( #..c.a..eaaaaz.# )\n( #...p..........# )\n( #..a.x..caaaaq.# )\n( #.......x......# )\n( #.......1####### )\n( #.......#....... )\n( #########....... )\n\n( ################ )\n( #..............# )\n( #.......c8###### )\n( #.......x......# )\n( #..c.z..eaaaaz.# )\n( #...p..........# )\n( #..a.x..caaaaq.# )\n( #.......x......# )\n( #.......e4###### )\n( #..............# )\n( ################ )\n\n( ################ )\n( #..............# )\n( #.......c8###### )\n( #..c.z..x......# )\n( #...p...eaaaaz.# )\n( #..a.x.........# )\n( #.......caaaaq.# )\n( #..e.q..x......# )\n( #.......e4###### )\n( #..............# )\n( ################ )\n\n)\n\n(\ntransformation\n\n[player]->[]\n\nchoose 15 [ rohr ] [ no obstacle ] -> [ ] [ rohr ] \n(choose 1 [ player ] [ no obstacle ] -> [ ] [ player ])\n(choose 5 [ outlet ] [ wall ] -> [ wall ] [ outlet ]\nchoose 1 [ flow no outlet ] [ outlet no flow ] -> [ ] [ outlet flow ])\n\n\nchoose 1 [ no obstacle ] -> [ player ]\n\nchoose 10 option 0.5 [ no obstacle ] -> [ wall ]\n+ option 0.5 [] -> [ ]\n)\n\n\n\n",[0,0,2,1,0,4,3,3,0,0,0,1,1,1,3,4,0,1,1,2,4,2,4,3,2,3,2,2,1,1,0,4,4,2,3,3,3,0,3,0,0,4,2,1,1],"background wall:0,background wall wall_o:1,1,1,1,1,1,\n0,background wall wall_s:2,background:3,3,3,background rohr_ns:4,3,\n3,background wall wall_n:5,2,3,3,4,3,\nbackground outlet_n wall wall_n wall_nw wall_o wall_s wall_so wall_w:6,3,5,2,3,background flow rohr_so:7,3,\nbackground player:8,3,3,5,2,3,background flow inlet outlet_w wall wall_n wall_nw wall_o wall_s wall_so wall_w:9,\nbackground rohr_ow:10,3,3,3,5,2,3,\n3,3,3,3,3,5,0,\nbackground wall wall_w:11,11,11,11,11,11,0,\n",4,"1645544832464.3308"] + ], + [ + "crate guardian", + ["title crate guardian\nauthor increpare\nhomepage www.increpare.com\nrun_rules_on_level_start\nbackground_color darkgreen\n\n(\n\nthanks to youatexample for some title advice\n\nother possible titles:\nīdōlum cistae sānctum\ngreat idol of the crates\ncrate idol\n\n\n)\n( verbose_logging )\n( debug )\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\n\n( Target1 )\n( #4b1116 )\n( ..... )\n( .000. )\n( .0.0. )\n( .000. )\n( ..... )\n\n\nTarget\ndarkblue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\n#1b2632\n\nPlayer\n#c8727a\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nCrate\n#746cc2\n00000\n0...0\n0...0\n0...0\n00000\n\n\nstatue2\nblue \n00.00\n.000.\n.000.\n00.00\n.0.0.\n\n\naura2\n#383185\n\n\n=======\nLEGEND\n=======\n\n\nstatue = statue2\npushable = crate or statue\npusher = crate or statue or player\naura = aura2\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nq = Target\n\n2 = statue2\n3 = crate and target\n4 = crate and target\n7 = statue2 and target\n8 = statue2 and target\n\nobstacle = crate or statue or wall or player\n0 = wall and aura2\n9 = aura2\na = statue2 and aura2\ne = target and aura2\nf = target and crate and aura2\n\nplayer_or_statue1_or_wall = player or wall\ncrate_or_wall = crate or wall\nj = player and aura2\nm = target and statue2 and aura2\n\n=======\nSOUNDS\n=======\n\nstatue2 move 95968304\nCrate MOVE 53883107\nendlevel 25071300\nstartlevel 46394106\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\naura2\nTarget\nPlayer, Wall, Crate, statue\n\n======\nRULES\n======\n\n[ > pusher | pushable ] -> [ > pusher | > pushable ]\n[ > pushable | wall ] -> cancel\n\nlate [ aura ] -> [ ]\n\nlate right [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\nlate down [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\n\nlate [ player_or_statue1_or_wall aura2 ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nall crate on target\n\n=======\nLEVELS\n=======\n\n\n\nmessage Level 1 of 6\n(ok level 1)\n.#######.\n.#.....#.\n.#..p..#.\n.#.....#.\n.#.***.#.\n.#.999.#.\n##.9a9.##\n#..999..#\n#..ooo..#\n#.......#\n##..#..##\n.#.....#.\n.#######.\n\nmessage Level 2 of 6\n(I dunno?)\n#######\n#.....#\n#..3..#\n#.9e9.#\n#.9a9.#\n#.999.#\n#..*..#\n#.....#\n#..p..#\n#.....#\n#######\n\nmessage Level 3 of 6\n.#######.\n.#.p...#.\n.#.***.#.\n##.999.##\n#..eme..#\n#..999..#\n#...#...#\n###...###\n..#####..\n\n\nmessage Level 4 of 6\n(OK)\n##########\n#........#\n#.*999...#\n#..9a9.o.#\n#.p9e90000\n#...*.0...\n#.....0...\n#######...\n\n\nmessage Level 5 of 6\n(OK)\n######....\n#....#....\n#....##...\n#ooo..##..\n#......##.\n##......##\n.##..999.#\n..##.9a9.#\n...##999.#\n...#.....#\n...#.***.#\n...#.....#\n...#..p..#\n...#.....#\n...#######\n\nmessage Level 6 of 6\n(ok final level! I used my brain and solved it)\n#########\n#...p...#\n#..o.o..#\n#.o***o.#\n#..*a*..#\n#.o***o.#\n#..o.o..#\n#.......#\n#########\n\nmessage Congratulations. You learned how to work with the guardian of the crates. She still keeps you at a distance, but you have earned her respect.\n\n( 00000000000 )\n( 0.........0 )\n( 0....p....0 )\n( 0...o.o...0 )\n( 0..o***o..0 )\n( 0...*a*...0 )\n( 0..o***o..0 )\n( 0...o.o...0 )\n( 0.........0 )\n( 0.........0 )\n( 00000000000 )\n\n( ####### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n\n( ######## )\n( #......# )\n( #......# )\n( #......# )\n( #..p...# )\n( #.pp...# )\n( #ppp...# )\n( ######## )\n\n(\n\nTransformations\n\nchoose 4 [] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ statue1 ]\nchoose 1 [ no obstacle ] -> [ statue2 ]\n\n\nright [ | statue1 | ] -> [ aura1 | aura1 statue1 | aura1 ]\nright [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\ndown [ no aura1 | aura1 | no aura1 ] -> [ aura1 | aura1 | aura1 ]\ndown [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\nchoose 1 [ no aura2 no obstacle ] -> [ player ]\n\nchoose 2 [no aura1 no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player ] -> [ target ]\n\n\nalt transform\n\n\nchoose 11 [ player ] -> [ no player ]\n\nchoose 4[ no player ] -> [ wall aura12 ]\n(choose 1 [ no wall | no obstacle | no wall ] -> [ | statue1| ]\nright [ | statue1 | ] -> [ aura1 | aura1 statue1 | aura1 ]\ndown [ no aura1 | aura1 | no aura1 ] -> [ aura1 | aura1 | aura1 ])\n\nchoose 1 [ no wall no aura1 no player | no obstacle no aura1 no player | no wall no aura1 no player ] -> [ |statue2| ]\nright [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\ndown [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\n(choose 1 [ no aura2 no obstacle ] -> [ player ])\n\nchoose 3 [no aura1 no obstacle ] -> [ crate ]\nchoose 3 [ no wall no player ] -> [ target ]\n\n[aura12 wall aura1] ->[aura1]\n[aura12 wall aura2] ->[aura2]\n\n\n==========\n\nchoose 5 [ player ] -> [ no player ]\n\nchoose 4[ no player ] -> [ wall ]\n\nchoose 1 [ no wall no player | no obstacle no player | no wall no player ] -> [ |statue2| ]\nright [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\ndown [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\n(choose 1 [ no aura2 no obstacle ] -> [ player ])\n\nchoose 3 [ no obstacle ] -> [ crate ]\nchoose 3 [ no wall no player ] -> [ target ]\n\n)\n\n",[2,2,3,3,2,2,1,2,2,1,1,0,2,3,3,0,1,1,2,1,3,0,1,3,0,0,0,1,2,2,3,2,1,2,1,1,0,0,2,1,1,1,3,0,0,0,1,0,0,0,0,3,3,2],"background wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,0,\n0,1,1,aura2 background target:2,aura2 background crate:3,2,1,1,0,\n0,1,background player target:4,3,aura2 background statue2:5,3,background target:6,1,0,\n0,background crate:7,1,aura2 background:8,3,3,7,1,0,\n0,1,6,1,1,1,6,1,0,\n0,1,1,6,1,6,1,1,0,\n0,1,1,7,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n",11,"1645544889350.864"] + ], + [ + "Don't let your goals slip away", + ["title Don't let your goals slip away\nauthor increpare [riff on david skinner's levels]\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\nbackground_color green\n\n\ncolor_palette 2\n========\nOBJECTS\n========\n\nBackground\nGREEN green\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nblack\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nDARKBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nlightgray lightgray lightgray lightgray\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange\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\nobstacle = crate or wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 78774307\ntarget move 81495507\nendlevel 52446100\nstartgame 73236703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n( [ > player | wall ] -> cancel )\n[ > player | crate | obstacle ] -> cancel\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > player | target ] -> [ > player | > target ] \n[ > target | target ] -> [ > target | > target ]\n[ > target | wall ] -> [ target | wall ]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 8\n\n(funny therefore good)\n####..\n#o*#..\n#..###\n#....#\n#.o*.#\n#.p###\n####..\n\n(meh)\n( ####.. )\n( #.o#.. )\n( #..### )\n( #o...# )\n( #*.*.# )\n( #.p### )\n( ####.. )\n\n\nmessage level 2 of 8\n\n\n(p. good!)\n..####...\n###..####\n#....*o.#\n#.#..#.o#\n#..*.#p.#\n#########\n\n( (Easy but funny) )\n( ###### )\n( #.*..# )\n( #.#.*# )\n( #....# )\n( #p*o.# )\n( #.oo.# )\n( ###### )\n\n\nmessage level 3 of 8\n\n(not bad)\n######\n##o..#\n#.#oo#\n#.*..#\n#.*..#\n#p*..#\n######\n\nmessage level 4 of 8\n\n########\n#...*..#\n#.o#.@p#\n#..*...#\n#####.o#\n....####\n\nmessage level 5 of 8\n\n\n\n(decent!)\n#####.\n#.*.##\n#.o.p#\n##.o.#\n.##.*#\n..##.#\n...###\n\nmessage level 6 of 8\n\n(fine right?)\n......###.\n#######o##\n#...*o...#\n#.#.#.#.##\n#.p.*...#.\n#########.\n\nmessage level 7 of 8\n(no idea. damnit spoiled but also ok.)\n####..\n#..#..\n#.*###\n#..*p#\n#..o.#\n#o.###\n####..\n\n\n\nmessage level 8 of 8\n(Tricky but also decent? involves fun manipulations)\n#######\n#..#..#\n#.o*o.#\n#.*p*##\n#.o*o.#\n#..#..#\n#######\n\n\nmessage Congratulations! You didn't let your goals run away from you.\n\n(transform\n\n[player]->[]\n[target]->[]\n[crate]->[]\n\nchoose 2 [] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player ] -> [ target ] \n\n)\n\n",[0,0,"undo","undo",1,0,0,3,3,3,2,1,1,0,0,1,0,0,"restart",0,0,0,2,3,3,2,1,1,2,1,0,0,0,0,0,2,0,1,1,1,3,3,3,"undo","undo",3,3,1,1,1,2,3,0,1,1,"restart",0,0,1,"restart",3,0,0,1,1,1,1,"undo",0,1,2,2,1,2,2,1,2,2,3,3,0,2,1,1,0,0,3,3,3,3,3,1,1],"background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,0,1,\n1,0,0,0,0,1,1,0,background player:2,\n0,background crate:3,1,1,1,0,1,1,1,\n0,1,background target:4,0,0,1,0,1,background crate target:5,\n0,0,1,0,1,1,1,1,1,\n",3,"1645544970753.6125"] + ], + [ + "Eyeball-watching flowers bloom", + ["title Eyeball-watching flowers bloom\nauthor increpare\nhomepage www.increpare.com\n\n\n(thanks to bluemelon555 for title suggestions)\n\nbackground_color #094118\ntext_color #f7e26b\nrun_rules_on_level_start\n\nverbose_logging\n\n(debug)\n\n========\nOBJECTS\n========\n\nBackground\n#0f5321 #44891a\n00000\n01000\n01010\n00010\n00000\n\n\n\n\nWall_inactivated\ntransparent #44891a #a3ce27\n01110\n12121\n11211\n12121\n01110\n\n\n\nwall_activated =\ntransparent #e06f8b #a3ce27 #f7e26b\n01120\n21111\n11311\n11112\n02110\n\nwall_burnt\ntransparent #430006 #000000\n01210\n22222\n21221\n12222\n02210\n\n\nplayer_up\nwhite yellow red black\n10201\n02320\n00200\n00000\n.000.\n\n\nplayer_down\nwhite yellow red black\n.000.\n00000\n00200\n02320\n10201\n\n\nplayer_left\nwhite yellow red black\n1000.\n02000\n23200\n02000\n1000.\n\n\nplayer_right\nwhite yellow red black\n.0001\n00020\n00232\n00020\n.0001\n\n\nCrate\ntransparent #9d9d9d #bfbfbf #737373\n00120\n01112\n31112\n33111\n03330\n\n\nstrahlen\nyellow\n\nstrahlen_top\nyellow\n00000\n00000\n.....\n.....\n.....\n\nstrahlen_bottom\nyellow\n.....\n.....\n.....\n00000\n00000\n\nstrahlen_left\nyellow\n00...\n00...\n00...\n00...\n00...\n\nstrahlen_right\nyellow\n...00\n...00\n...00\n...00\n...00\n\n\nburnout\n#0f5321 #430006 #000000\n01210\n22222\n21221\n12222\n02210\n\n\n=======\nLEGEND\n=======\n\nplayer = player_up or player_down or player_left or player_right\nwall = Wall_inactivated or wall_activated\n. = Background\n# = Wall_inactivated\nstrahlen_all = strahlen or strahlen_top or strahlen_bottom or strahlen_left or strahlen_right\n\nP = Player_up\nq = player_down\nr = player_left\ns = player_right\n\n* = crate\no = background\n@ = background\n\nobstacle = crate or wall or player\nstrahlen_or_player = strahlen or player\n=======\nSOUNDS\n=======\n\nCrate MOVE 21697107\nendlevel 23649709\nstartlevel 40644309\nstartgame 98216309\n\nsfx0 94788500 (Blume)\n(58036508)\nsfx1 78837102 (burn)\n\nsfx2 94214904 (deadend)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nstrahlen_all\nPlayer, Wall, Crate, burnout, wall_burnt\n\n======\nRULES\n======\n\nup [ > player_up | wall_activated ] -> cancel \ndown [ > Player_down | wall_activated ] -> cancel \nleft [ > Player_left | wall_activated ] -> cancel \nright [ > Player_right | wall_activated ] -> cancel \n\n[wall_burnt] -> cancel sfx2\n\nup [ > Player | Crate | no obstacle ] -> [ | Player_up | Crate ]\ndown [ > Player | Crate | no obstacle ] -> [ | Player_down | Crate ]\nleft [ > Player | Crate | no obstacle ] -> [ | Player_left | Crate ]\nright [ > Player | Crate | no obstacle ] -> [ | Player_right | Crate ]\n\nup [ > Player | no obstacle ] -> [ | Player_up ]\ndown [ > Player | no obstacle ] -> [ | Player_down ]\nleft [ > Player | no obstacle ] -> [ | player_left ]\nright [ > Player | no obstacle ] -> [ | player_right ]\n\n[ up player ] -> [ player_up ]\n[ down player ] -> [ player_down ]\n[ left player ] -> [ player_left ]\n[ right player ] -> [ player_right ]\n\n[strahlen_all]->[]\nup [ player_up | no obstacle ] -> [ player_up | strahlen ]\ndown [ player_down | no obstacle ] -> [ player_down | strahlen ]\nleft [ player_left | no obstacle ] -> [ player_left | strahlen ]\nright [ player_right | no obstacle ] -> [ player_right | strahlen ]\n\n[ strahlen_or_player | strahlen | no strahlen no obstacle ]-> [ strahlen_or_player | strahlen | strahlen ]\n\n[ strahlen_or_player | strahlen | wall_activated ] -> [ strahlen_or_player | strahlen | wall_burnt ] sfx1\n[ strahlen_or_player | strahlen | Wall_inactivated ] -> [ strahlen_or_player | strahlen | wall_activated ] sfx0\n\n\nup [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_bottom ]\ndown [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_top ]\nleft [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_right ]\nright [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_left ]\n\n\nup [ player_up | no strahlen ]-> [ player_up| strahlen_bottom ]\ndown [ player_down | no strahlen ]-> [ player_down | strahlen_top]\nleft [ player_left | no strahlen ]-> [ player_left | strahlen_right ]\nright [ player_right | no strahlen ]-> [ player_right | strahlen_left ]\n\nup [ player_up | Wall_activated ] -> [ player_up | wall_burnt ] sfx1\nup [ player_up | Wall_inactivated ] -> [ player_up | wall_activated ] sfx0\ndown [ player_down | Wall_activated ] -> [ player_down | wall_burnt ] sfx1\ndown [ player_down | Wall_inactivated ] -> [ player_down | wall_activated ] sfx0\nleft [ player_left | Wall_activated ] -> [ player_left | wall_burnt ] sfx1\nleft [ player_left | Wall_inactivated ] -> [ player_left | wall_activated ] sfx0\nright [ player_right | Wall_activated ] -> [ player_right | wall_burnt ] sfx1\nright [ player_right | Wall_inactivated ] -> [ player_right | wall_activated ] sfx0\n\n==============\nWINCONDITIONS\n==============\n\nno Wall_inactivated\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 3\n\n.###.\n#...#\n#.q.#\n.###.\n\nmessage level 2 of 3\n\n\n(ok!)\n.####.\n#....#\n#.*..#\n#.p*.#\n#....#\n.####.\n\nmessage level 3 of 3\n\n(decent)\n.#####.\n#.....#\n#..*..#\n#.*p*.#\n#..*..#\n#.....#\n.#####.\n\nmessage Congratulations. The gardens look amazing.\n\n\n(\n(meh)\n.###.\n#...#\n#...#\n#.q.#\n.###.\n)\n(\n(meh)\n.####.\n#....#\n#.p..#\n#..*.#\n#....#\n.####.\n\n.#####.\n#.....#\n#.....#\n#..#..#\n#...*.#\n#...p.#\n.#####.\n\n(maybe ok? kinda cheated to find the solution but i could've figured it out!)\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#....q#\n.####=.\n\n(i could not solve this and I think that it's bad)\n.###.\n#...#\n#...#\n#...#\n#...#\n#.*.#\n#.p.#\n.###.\n\n\n.####.\n#....#\n#....#\n#....#\n#....#\n.####.\n\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n.#####.\n\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n.#####.\n\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n.#####.\n\n.######.\n#......#\n#......#\n#......#\n#......#\n#......#\n#......#\n#......#\n.######.\n)\n\n(Transform\n\n[player]->[]\n[crate]->[]\n\n\nchoose 2 [ ] -> [ wall_inactivated ]\n\nchoose 1 [ no obstacle ] -> [ player_up ]\n+ [ no obstacle ] -> [ player_down ]\n+ [ no obstacle ] -> [ player_left ] \n+ [ no obstacle ] -> [ player_right ]\n\nchoose 1 [ no obstacle ] -> [ crate ]\n\n[strahlen]->[]\nup [ player_up | no obstacle ] -> [ player_up | strahlen ]\ndown [ player_down | no obstacle ] -> [ player_down | strahlen ]\nleft [ player_left | no obstacle ] -> [ player_left | strahlen ]\nright [ player_right | no obstacle ] -> [ player_right | strahlen ]\n\n[ strahlen_or_player | strahlen | no strahlen no obstacle ]-> [ strahlen_or_player | strahlen | strahlen ]\n[ strahlen_or_player | strahlen | Wall_inactivated ] -> [ strahlen_or_player | strahlen | wall_activated ]\n\nup [ player_up | Wall_activated ] -> cancel\nup [ player_up | Wall_inactivated ] -> [ player_up | wall_activated ]\ndown [ player_down | Wall_inactivated ] -> [ player_down | wall_activated ]\nleft [ player_left | Wall_inactivated ] -> [ player_left | wall_activated ]\nright [ player_right | Wall_inactivated ] -> [ player_right | wall_activated ]\n\n\n)\n\n",[1,2,3,3,0,"undo",0,0,3,2,3,2,1,1,0,0,1,0,1,2,3],"background:0,background wall_activated:1,1,1,background wall_inactivated:2,0,\n1,0,0,0,background crate:3,1,\n2,3,background player_right strahlen_right:4,0,0,2,\n2,0,background strahlen:5,0,0,2,\n2,0,5,0,0,1,\n0,2,background strahlen_left wall_burnt:6,1,1,0,\n",3,"1645545001785.496"] + ], + [ + "Subway upholstry snot smearing championship", + ["title Subway upholstry snot smearing championship\nauthor increpare\nhomepage www.increpare.com\ncolor_palette 1\n\nrun_rules_on_level_start\n\nbackground_color #131316\ntext_color #6abe30\n========\nOBJECTS\n========\n\nBackground\n#5b6ee1 #639bff #ac3232\n00011\n10101\n12101\n20201\n10200\n\ntilled \n#6abe30 #5b6ee1\n01110\n01001\n10101\n10110\n01011\n\n\n\nWall\n#e7dcc0 #b478cb #e1ae5b #d77bba #76428a\n00000\n01220\n01330\n04330\n00000\n\nwallalt\n#e7dcc0 #e1ae5b #e15b5b #ab7722\n00000\n01120\n01120\n03330\n00000\n\n\n\nwallt\n#fdefd4 #e7dcc0 #42b7f0 #65dadf #54cf6f\n00000\n11111\n12231\n14231\n11111\n\nwallb\n#e7dcc0 #e96ff2 #780d80 #e442f0 #c2bb91\n00000\n01120\n02330\n00000\n44444\n\nwalltb\n#fdefd4 #e7dcc0 #6c1710 #ab1d11 #c2bb91\n00000\n11111\n12331\n11111\n44444\n\nwalltbalt\n#fdefd4 #e7dcc0 #fbf236 #fba736 #c2bb91\n00000\n11111\n12231\n11111\n44444\n\n\nPlayer\n#5b6ee1 #524b24 #eec39a #3f3f74 #000000\n01110\n02220\n23332\n03030\n04040\n\n\nCrate\ntransparent #99e550 #6abe30\n01110\n12221\n12221\n12221\n01110\n\nvoid ,\n#131316\n\n\n=======\nLEGEND\n=======\n\n\n. = Background\n# = Wall\n1 = wallt\n2 = wallb\n3 = walltb\n\n\nP = Player\n* = Crate and tilled\n@ = Crate and tilled\nO = Background\n\n\nwalls = Wall or wallt or wallb or walltb or wallalt or walltbalt\n\nwalls_or_void = walls or void\n\ngoodstate = walls_or_void or tilled\n=======\nSOUNDS\n=======\n\nCrate MOVE 41474107\nsfx0 3420907 (new snot)\nstartlevel 24347308\nendlevel 56675308\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ntilled\nPlayer, walls_or_void, Crate\n\n======\nRULES\n======\n\ndown [ no walls | walls | walls ] -> [ | wallt | walls ]\n\ndown [ walls | walls | no walls ] -> [ walls | wallb | ]\n\ndown [ no walls | walls | no walls ] -> [ | walltb | ]\n\ndown [ no wallalt | wall | wall | no wallalt ] -> [ | wall | wallalt | ] \n\nright [ no walltbalt | walltb | walltb | no walltbalt ] -> [ | walltbalt | walltb | ] \n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ < Player | Crate ] -> [ < Player | < Crate ]\n\nlate [ crate no tilled ] -> [ crate tilled ] sfx0\n\n==============\nWINCONDITIONS\n==============\n\nall Background on goodstate\n\n=======\nLEVELS\n=======\n\nmessage Go on, smear it ALL around!\n\nmessage Carriage 1 of 7\n(level 1)\n133331\n#p.*.#\n#*.1.#\n#..2.#\n#...*#\n233332\n\n\nmessage Carriage 2 of 7\n(level2)\n133331\n#....#\n#p.**#\n#.1**#\n232332\n\nmessage Carriage 3 of 7\n(slightly wholesome)\n13331,\n#...21\n#p...#\n21***#\n,21**#\n,,21.#\n,,,232\n\nmessage Carriage 4 of 7\n(I like this level! has personality)\n,,1331,,,\n132.*2331\n#.*.p...#\n#*3*.1*.#\n#.*..#..#\n233332332\n\n(\n(not actually taht scary, just need to use head a tiny amount)\n133331\n#.***#\n#*3**#\n#****#\n#....#\n#..p.#\n233332\n)\n\nmessage Carriage 5 of 7\n(pretty nice)\n133331\n#....#\n#.3p.#\n#..**#\n#****#\n#....#\n233332\n\n\nmessage Carriage 6 of 7\n(ok crate management?)\n133331,13331\n#*.*.232*.*#\n#p.....**3*#\n#...1....*.#\n#*.*#3333332\n23332,,,,,,,\n\nmessage Carriage 7 of 7\n(Decisions need to be made. ok conceptually?)\n,1313131,\n12.2*2.21\n#.*...*.#\n#3.3.3.3#\n#...*...#\n#3.3.3.3#\n#.*.p.*.#\n21.1.1.12\n,2323232,\n\nmessage All done! Very satisfying! \n\n(\n\n######\n#....#\n#.*.*#\n#p#.*#\n######\n\n\n######\n#p.*.#\n#*.#.#\n#..#.#\n#...*#\n######\n\n######\n#*.###\n#..#.#\n#p*#*#\n#...*#\n######)\n\n(\n\nTRANSFORM\n\n[ player ] -> []\n[ crate ] -> []\n\nchoose 4 [ ] - > [ wall ]\nchoose 1 [ no wall | no wall ] -> [ player | crate ]\n\n)\n",[1,2,3,0,1,3,3,3,3,3,2,0,1,2,3,0,1,1,1,2,1,0,3,3,1,2,2,1,1,1,3,0,0,1,3,0,0,1,2,1,1,3,2,2,3,0,2],"background void:0,background wallt:1,background wall:2,background wallalt:3,2,background wallb:4,0,background walltb:5,background tilled:6,\nbackground crate tilled:7,6,background walltbalt:8,1,4,7,5,6,5,\n8,6,6,7,7,8,5,6,6,\n7,background player:9,5,1,4,6,1,2,4,\n0,8,6,6,7,8,0,5,background:10,\n10,10,5,0,1,2,3,2,4,\n",8,"1645545059102.073"] + ], + [ + "Double-Entry Bookkeeping Simulator#1", + ["title Double-Entry Bookkeeping Simulator\nauthor increpare\nhomepage www.increpare.com\n\n( verbose_logging )\nrun_rules_on_level_start\n\nbackground_color #404040\n\nagain_interval 0.1\n\n\n( Svelte Version für Simulieren \nhttps://www.puzzlescript.net/editor.html?hack=a52aae823542d184b57fc3301627a81a \n)\n\n========\nOBJECTS\n========\n\nBackground\n#404040\n\n\n\nWall\n#000000\n\n\nPlayer\ntransparent #ffffff\n01110\n01010\n11111\n00100\n01010\n\nblue_raw\n#1e88e5\n\n\nblue1 \n#003461 #1e88e5\n00100\n01100\n00100\n00100\n01110\n\nblue2 \n#003461 #1e88e5\n01100\n00010\n00100\n01000\n01110\n\nblue3 \n#003461 #1e88e5\n01100\n00010\n01100\n00010\n01100\n\nblue4 \n#003461 #1e88e5\n01000\n01000\n01010\n01110\n00010\n\nblue5 \n#003461 #1e88e5\n01110\n01000\n01100\n00010\n01100\n\nblue6 \n#003461 #1e88e5\n00100\n01000\n01100\n01010\n00100\n\nblue7 \n#003461 #1e88e5\n01110\n00010\n00010\n00100\n00100\n\nblue8 \n#003461 #1e88e5\n00100\n01010\n00100\n01010\n00100\n\nblue9 \n#003461 #1e88e5\n00110\n01010\n00110\n00010\n00010\n\nred_raw\n#d81b60\n\nred1 \n#56001f #d81b60\n00100\n01100\n00100\n00100\n01110\n\nred2 \n#56001f #d81b60\n01100\n00010\n00100\n01000\n01110\n\nred3 \n#56001f #d81b60\n01100\n00010\n01100\n00010\n01100\n\nred4 \n#56001f #d81b60\n01000\n01000\n01010\n01110\n00010\n\nred5 \n#56001f #d81b60\n01110\n01000\n01100\n00010\n01100\n\nred6 \n#56001f #d81b60\n00100\n01000\n01100\n01010\n00100\n\nred7 \n#56001f #d81b60\n01110\n00010\n00010\n00100\n00100\n\nred8 \n#56001f #d81b60\n00100\n01010\n00100\n01010\n00100\n\nred9 \n#56001f #d81b60\n00110\n01010\n00110\n00010\n00010\n\nonce\ntransparent\n\ncounted\nwhite\n.....\n.....\n.....\n...0.\n.....\n\ncounting\nyellow\n.....\n.0...\n.....\n.....\n.....\n\ndeleting\nyellow\n00000\n0...0\n0...0\n0...0\n00000\n\ndeleted\norange\n.....\n.....\n...0.\n.....\n.....\n\nwall1\n#000000 #1f1f1f\n00100\n01100\n00100\n00100\n01110\n\nwall2\n#000000 #1f1f1f\n01100\n00010\n00100\n01000\n01110\n\nwall3\n#000000 #1f1f1f\n01100\n00010\n01100\n00010\n01100\n\nwall4\n#000000 #1f1f1f\n01000\n01000\n01010\n01110\n00010\n\nwall5\n#000000 #1f1f1f\n01110\n01000\n01100\n00010\n01100\n\nwall6\n#000000 #1f1f1f\n00100\n01000\n01100\n01010\n00100\n\nwall7\n#000000 #1f1f1f\n01110\n00010\n00010\n00100\n00100\n\nwall8\n#000000 #1f1f1f\n00100\n01010\n00100\n01010\n00100\n\nwall9\n#000000 #1f1f1f\n00110\n01010\n00110\n00010\n00010\n\n=======\nLEGEND\n=======\n\nwalllabel = wall1 or wall2 or wall3 or wall4 or wall5 or wall6 or wall7 or wall8 or wall9\nred = red_raw or red1 or red2 or red3 or red4 or red5 or red6 or red7 or red8 or red9\n\nblue = blue_raw or blue1 or blue2 or blue3 or blue4 or blue5 or blue6 or blue7 or blue8 or blue9\n\nblue_other = blue\nred_other = red\n\ncoloured = red or blue\n\npushable = red or blue\n. = Background\n# = Wall\nP = Player\n* = red_raw\n@ = blue_raw\n\nobstacle = pushable or wall or player\n\n=======\nSOUNDS\n=======\n\nred move 76964107\nblue move 73247707\nsfx0 66382107 (destroy)\nsfx1 49518300 (destroy start)\n\nstartlevel 46354708\nendlevel 70029700\nstartgame 40047300\n\n================\nCOLLISIONLAYERS\n================\n\nonce, counted\ncounting\ndeleted\nBackground\nPlayer, Wall, pushable\ndeleting\nwalllabel\n\n======\nRULES\n======\n\n[ moving player ] [ deleted ] -> [ moving player ] [ ]\n\n[ blue no deleting ] -> [ blue_raw ]\n[ red no deleting ] -> [ red_raw ]\n\n[ > Player | pushable ] -> [ > Player | > pushable ]\n\n\nstartloop\n\nlate [ player no once no deleting ] [ blue no counted no deleting ] -> [ player once ] [ once blue ]\n\nlate [ once blue_raw no deleting ] -> [ counting blue1 counted ]\nlate [ once blue1 no deleting ] -> [ counting blue2 counted ]\nlate [ once blue2 no deleting ] -> [ counting blue3 counted ]\nlate [ once blue3 no deleting ] -> [ counting blue4 counted ]\nlate [ once blue4 no deleting ] -> [ counting blue5 counted ]\nlate [ once blue5 no deleting ] -> [ counting blue6 counted ]\nlate [ once blue6 no deleting ] -> [ counting blue7 counted ]\nlate [ once blue7 no deleting ] -> [ counting blue8 counted ]\nlate [ once blue8 no deleting ] -> [ counting blue9 counted ]\n\nlate [once]->[]\n\nlate [ counting blue no deleting | no counting blue_other no deleting ] -> [ counting blue | counting blue ]\nlate [counting]->[]\n\nendloop\n\n\nstartloop\nlate [ player no once ] [ red no counted no deleting ] -> [ player once ] [ once red ]\n\nlate [ once red_raw no deleting ] -> [ counting red1 counted ]\nlate [ once red1 no deleting ] -> [ counting red2 counted ]\nlate [ once red2 no deleting ] -> [ counting red3 counted ]\nlate [ once red3 no deleting ] -> [ counting red4 counted ]\nlate [ once red4 no deleting ] -> [ counting red5 counted ]\nlate [ once red5 no deleting ] -> [ counting red6 counted ]\nlate [ once red6 no deleting ] -> [ counting red7 counted ]\nlate [ once red7 no deleting ] -> [ counting red8 counted ]\nlate [ once red8 no deleting ] -> [ counting red9 counted ]\n\nlate [once]->[]\n\nlate [ counting red no deleting | no counting red_other no deleting ] -> [ counting red | counting red ]\nlate [counting]->[]\n\nendloop\n\n\nrandom late [ deleting red1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting red2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting red3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting red4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting red5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting red6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting red7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting red8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting red9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting blue1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting blue2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting blue3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting blue4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting blue5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting blue6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting blue7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting blue8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting blue9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting red1 | deleting blue1 ] -> [ wall wall1 deleted | wall wall1 deleted ] again sfx0\n+ late [ deleting red2 | deleting blue2 ] -> [ wall wall2 deleted | wall wall2 deleted ] again sfx0\n+ late [ deleting red3 | deleting blue3 ] -> [ wall wall3 deleted | wall wall3 deleted ] again sfx0\n+ late [ deleting red4 | deleting blue4 ] -> [ wall wall4 deleted | wall wall4 deleted ] again sfx0\n+ late [ deleting red5 | deleting blue5 ] -> [ wall wall5 deleted | wall wall5 deleted ] again sfx0\n+ late [ deleting red6 | deleting blue6 ] -> [ wall wall6 deleted | wall wall6 deleted ] again sfx0\n+ late [ deleting red7 | deleting blue7 ] -> [ wall wall7 deleted | wall wall7 deleted ] again sfx0\n+ late [ deleting red8 | deleting blue8 ] -> [ wall wall8 deleted | wall wall8 deleted ] again sfx0\n+ late [ deleting red9 | deleting blue9 ] -> [ wall wall9 deleted | wall wall9 deleted ] again sfx0\n\nlate [counted]->[]\n\n\nlate [ red1 | blue1 ] -> [ deleting red1 | deleting blue1 ] again sfx1 \nlate [ red2 | blue2 ] -> [ deleting red2 | deleting blue2 ] again sfx1 \nlate [ red3 | blue3 ] -> [ deleting red3 | deleting blue3 ] again sfx1 \nlate [ red4 | blue4 ] -> [ deleting red4 | deleting blue4 ] again sfx1 \nlate [ red5 | blue5 ] -> [ deleting red5 | deleting blue5 ] again sfx1 \nlate [ red6 | blue6 ] -> [ deleting red6 | deleting blue6 ] again sfx1 \nlate [ red7 | blue7 ] -> [ deleting red7 | deleting blue7 ] again sfx1 \nlate [ red8 | blue8 ] -> [ deleting red8 | deleting blue8 ] again sfx1 \nlate [ red9 | blue9 ] -> [ deleting red9 | deleting blue9 ] again sfx1 \n\nlate [ deleting red1 | no deleting red1 ] -> [ deleting red1 | deleting red1 ]\nlate [ deleting red2 | no deleting red2 ] -> [ deleting red2 | deleting red2 ]\nlate [ deleting red3 | no deleting red3 ] -> [ deleting red3 | deleting red3 ]\nlate [ deleting red4 | no deleting red4 ] -> [ deleting red4 | deleting red4 ]\nlate [ deleting red5 | no deleting red5 ] -> [ deleting red5 | deleting red5 ]\nlate [ deleting red6 | no deleting red6 ] -> [ deleting red6 | deleting red6 ]\nlate [ deleting red7 | no deleting red7 ] -> [ deleting red7 | deleting red7 ]\nlate [ deleting red8 | no deleting red8 ] -> [ deleting red8 | deleting red8 ]\nlate [ deleting red9 | no deleting red9 ] -> [ deleting red9 | deleting red9 ]\n\n\nlate [ deleting blue1 | no deleting blue1 ] -> [ deleting blue1 | deleting blue1 ]\nlate [ deleting blue2 | no deleting blue2 ] -> [ deleting blue2 | deleting blue2 ]\nlate [ deleting blue3 | no deleting blue3 ] -> [ deleting blue3 | deleting blue3 ]\nlate [ deleting blue4 | no deleting blue4 ] -> [ deleting blue4 | deleting blue4 ]\nlate [ deleting blue5 | no deleting blue5 ] -> [ deleting blue5 | deleting blue5 ]\nlate [ deleting blue6 | no deleting blue6 ] -> [ deleting blue6 | deleting blue6 ]\nlate [ deleting blue7 | no deleting blue7 ] -> [ deleting blue7 | deleting blue7 ]\nlate [ deleting blue8 | no deleting blue8 ] -> [ deleting blue8 | deleting blue8 ]\nlate [ deleting blue9 | no deleting blue9 ] -> [ deleting blue9 | deleting blue9 ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nno coloured\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 9\n\n(improved version?)\n.....######\n.....#....#\n....##..@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n\nmessage Level 2 of 9\n\n#######...\n#@#@#@#...\n#@#@#@#...\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n.....#p..#\n.....#####\n\n\n\n\n\nmessage Level 3 of 9\n(ok? not too hard)\n#######.\n#.....#.\n#..*.@#.\n####.###\n.#.....#\n.#.*.@.#\n.#..p..#\n####.###\n#..*.@#.\n#.....#.\n#######.\n\n\n\nmessage Level 4 of 9\n#######..\n#.....#..\n#...@.#..\n#...@.###\n#...@.#@#\n#.....#.#\n#.p..***#\n#.....#.#\n#...@.#.#\n#...@...#\n#...@.###\n#.....#..\n#######..\n\n\nmessage Level 5 of 9\n\n(Actually tricky? or a bit overwhelming maybe?)\n(requires silly batching. i like this)\n#########\n#...#...#\n#..***..#\n#.......#\n####.####\n#.......#\n#..@@@p.#\n#...#...#\n#########\n\nmessage Level 6 of 9\n(possibly ok? IDK? WE?)\n#########\n#.......#\n#.*..@.*#\n#..**..@#\n#..**.@@#\n#.*..*..#\n#..p....#\n#########\n\nmessage Level 7 of 9\n(p ok? solution involves knowing something, but maybe you just stumble through it without knowing the thing)\n\n#####..\n#@@@#..\n#@@@##.\n#@#.@##\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\nmessage Level 8 of 9\n(p. ok level)\n###########\n#.........#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.p.......#\n#.........#\n###########\n\nmessage Level 9 of 9\n(ok final level maybe?)\n(fixed version?)\n...####....\n####..#....\n#@..*.#....\n###...#....\n..#.*#####.\n..#.*#.p.#.\n..#****@@#.\n..#.@@...#.\n..#.@@...#.\n..#.#@...##\n..#.......#\n..####....#\n.....######\n\nmessage Congratulations. You have mastered all the numbers, from 1 up to 9!\n\n(DISCARD PILE::::)\n\n(BAD IDEAS FOR FIRST LEVEL END )\n(thje better version. maybe ok early level?)\n( ####### )\n( #..#..# )\n( #..*.p# )\n( #..*..# )\n( #.....# )\n( ###.### )\n( #.....# )\n( #..@..# )\n( #..@..# )\n( #..#..# )\n( ####### )\n\n\n( ########## )\n( #@...##### )\n( ##...##### )\n( ##...##### )\n( ##@..##### )\n( ###...#### )\n( ###...#### )\n( ###@..#### )\n( ####.....# )\n( ####.***.# )\n( ####..p..# )\n( ########## )\n\n\n( audio test level)\n( ############# )\n( #..@........# )\n( #..@....@@..# )\n( #..@....@@@.# )\n( #..@.@..@@@.# )\n( #.*....*....# )\n( #..*.*..***.# )\n( #..*....***.# )\n( #..*....*...# )\n( #....p......# )\n( #...........# )\n( ############# )\n\n(level 2/3?)\n( ########## )\n( #........# )\n( #.**.@@@.# )\n( #........# )\n( #...p....# )\n( #........# )\n( ########## )\n\n(ok early level? meh other level does this but better IMO)\n( ###### )\n( #....# )\n( #.@.*# )\n( #.@.*# )\n( ###.## )\n( #....# )\n( #..p.# )\n( #....# )\n( ###.## )\n( #.@.*# )\n( #.@.*# )\n( #....# )\n( ###### )\n\n(ok level I think?)\n( ############# )\n( ####@.*...### )\n( ######*##.### )\n( #.....*.....# )\n( #.@@@...@@@.# )\n( #...........# )\n( #.....p.....# )\n( #...........# )\n( ############# )\n\n(\n\n(needs a few more steps of indirection on the right)\n#########\n#####*###\n#...#*###\n#.**@*###\n#.......#\n#@@..@@.#\n####p...#\n#########\n\n##############\n#....##......#\n#....##*.....#\n#.....#*.....#\n#...**@*.....#\n#............#\n###@@....@@..#\n######.p.....#\n######.......#\n##############\n\n###########\n#**@@***@@#\n#**..***..#\n#.........#\n#.........#\n#...@.@.@.#\n#.p.......#\n#...@.@.@.#\n#.........#\n###########\n\n##############\n#...#........#\n*.@.#........#\n#.#####**....#\n#.##**@**....#\n#............#\n####...@.@.@.#\n...#.p@.@.@..#\n...#.........#\n...###########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##....p..#\n##########\n\n\n(damnit a shortcut/trivialisation)\n##########\n####..####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n#@..######\n##..######\n##.*######\n##..#.p.##\n##****@@##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n(pedagogical version of other level)\n#############\n#@@*#@@#@####\n#@@*#@*#@####\n###*##*#*####\n###.......*.#\n###.......*.#\n#########.*.#\n#########p..#\n#############\n\n##########\n#........#\n#...@....#\n#........#\n#...**.@.#\n#.@.**...#\n#........#\n#.p..@...#\n#........#\n##########\n\n\n.#########.\n.#@.######.\n.#..######.\n.#****...#.\n.#*.**.p.#.\n###.**...#.\n#...@@*@@#.\n#...@@...#.\n#...@@...#.\n#@@*@@*@@#.\n#...*....#.\n#...@....#.\n#...@....#.\n##########.\n\n##########\n##@.##...#\n##..##.p.#\n###***...#\n##..***@@#\n##..@@...#\n##..@@...#\n##...@...#\n##.......#\n##.......#\n##########\n\n#########\n#@.##...#\n#..##.p.#\n##****@@#\n#..@@...#\n#...@...#\n#.......#\n#.......#\n#########\n\n##########\n####*#####\n#@.#*.p.##\n##****@@##\n##.@@...*#\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n\n\n##########\n#..#######\n#..#######\n#..##.p.##\n##****@@##\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n############\n#....#######\n#....#*#####\n#....#*.p.##\n#*##****@@##\n#.##.@@...*#\n#@##.@@...##\n####.#@...##\n####.......#\n####.......#\n############\n\n.#########...\n.#..######...\n.#..######...\n.##......#...\n.#.....p.#...\n##.......#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n##########...\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.......#\n#......*#\n#.....@*#\n######.##\n#....#.*#\n#.p...@.#\n#.......#\n#########\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.p.....#\n#......*#\n#.....@*#\n#.......#\n#....@.*#\n#.......#\n#########\n\n(is this funnier than above? I don't think so but I@m not sure)\n###########\n#.........#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.p.......#\n#.........#\n###########\n\n(technically harder than above but also more work)\n################\n#..............#\n#..............#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#.p............#\n#..............#\n################\n\n\n#################\n#...............#\n#...............#\n#..@@@.@@@.@@@..#\n#...*...*...*...#\n#..@@@.@@@.@@@..#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#...............#\n#################\n\n#################\n#...............#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n...............\n...............\n..@@@.@@@.@@@..\n...*...*...*...\n..@@@.@@@.@@@..\n...............\n...............\n.......p.......\n...............\n...............\n\n..........@.@...\n..........@.@...\n..........@*@...\n.......@@@*.*@@@\n..........@.@...\n..........@.@...\n..........@.@...\n................\n................\n\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n########\n#......#\n#......#\n#..@.*.#\n#......#\n###..*##\n####.###\n#p.@...#\n#......#\n####.###\n#......#\n#......#\n########\n\n\n...################\n..................#\n....@.............#\n.....@............#\n.@.**.@...........#\n..@.**.@..........#\n...@.**...........#\n....@.**..........#\n......p*.@........#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#################\n\n.........\n.........\n.#.#.#.#.\n.@.*.@.*.\n.#.#.#.#.\n.@.*.@.*.\n*#@#*#@#*\n.........\n..p......\n\n\n..#.#.#.#..\n...........\n..#.#.#.#..\n...........\n..#.#.#.#..\n...p.......\n\n.#.#.#.#.\n.@.*.*.@.\n.#.#.#.#.\n.@.*.*.@.\n*#@#.#@#*\n..p......\n\n(meh)\n#########\n#...@####\n#..*.@###\n#@..*.@##\n##@..*.@#\n###@..*.#\n####@p..#\n#########\n\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n(meeeeh. I think not great? too long but also if short too randomo)\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n###########\n###########\n##...@#####\n##..*.@####\n##@..*.@###\n###@..*.###\n####@p....#\n#####.***.#\n#####.....#\n###########\n\n#########\n#...@####\n#..*.@###\n#@..*.###\n##@..*.##\n####..*.#\n#####...#\n######.p#\n#########\n\n...#.......\n....#......\n....@#.....\n.....@#....\n#@....@#...\n.#@..*.@#..\n..#@..*....\n...#@..*...\n....#.*.*..\n.......*...\n......p.*..\n.........*.\n...........\n\n( (kinda different from the above) )\n( (trivial) )\n( ####### )\n( #....## )\n( #....## )\n( #.*.@## )\n( ###.### )\n( #.....# )\n( #.*.@.# )\n( #..p..# )\n( ###.### )\n( #.*.@## )\n( #....## )\n( #....## )\n( ####### )\n\n\n#######\n#....##\n#....##\n#....##\n#....##\n#.*.@##\n###.###\n#.....#\n#.*.@.#\n#p....#\n###.###\n#.*.@##\n#....##\n#....##\n#....##\n#....##\n#######\n\n#######\n#....##\n#....##\n#....##\n#.@.*##\n#.@.*##\n###.###\n#.....#\n#.@.*.#\n#p....#\n###.###\n#.@.*##\n#.@.*##\n#....##\n#....##\n#....##\n#######\n\n###########\n###@.*..###\n#####*#.###\n.....*.....\n.@@@...@@@.\n.....p.....\n...........\n...........\n\n#############\n####.....####\n######.#.####\n#...........#\n#...........#\n#.....p.....#\n#...........#\n#############\n\n#######\n#.....#\n#.***.#\n#.....#\n###.###\n#.....#\n#.@@@p#\n#.....#\n#######\n\n....####\n....#..#\n....#..#\n#####..#\n#...#..#\n#..@..*#\n#...#p.#\n#####..#\n#..@..*#\n#......#\n######.#\n....#@.#\n....#..#\n....#.*#\n....#..#\n....####\n\n.#######.\n.#.....#.\n.#..*..#.\n.#.*.*.#.\n.#.*.*.#.\n.#.....#.\n.#.....#.\n###.#.###\n#@@.#.@@#\n#@@.#.@@#\n#@..#..@#\n#@.*#*.@#\n#@p.#..@#\n#########\n\n@....*\n.@..*.\n......\n.@..*.\n..p...\n\n..........\n.@@....**.\n.@@....**.\n...@..*...\n..........\n...@..*...\n.....p....\n..........\n\n\n(ok partition problem)\n(nah broken)\n.........\n.........\n.@.....@.\n.@.#*#.@.\n.@..*..@.\n.........\n....p....\n.........\n\n...............\n....@..#..@....\n.#..@.#*#.@..#.\n#*..@..*..@..*#\n.#..@.....@..#.\n.......p.......\n...............\n\n....####.....\n...#@.*......\n....##*#.....\n......*......\n.............\n..@@@.p.@@@..\n.............\n.............\n\n#######\n#.....#\n#.#.#.#\n#.@.*.#\n###.###\n.......\np.@.*..\n.......\n###.###\n#.@.*.#\n#.#.#.#\n#.....#\n#######\n\n######\n#...##\n#...##\n#...##\n#.@.*#\n###.##\n......\np.@.*.\n......\n###.##\n#.@.*#\n#...##\n#...##\n#...##\n######\n\n(trivial)\n(\n.........\n.........\n..**.@...\n.........\n....p....\n.........\n)\n\n\n\n............\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..*.*..*.*..\n.....p......\n............\n\n...........\n.....@.....\n.....@.....\n.....@.....\n.....@.....\n.....*.....\n.@@@@*@@@@.\n.....*.....\n.@@@@.@@@@.\n.....*.....\n...........\n.....p.....\n...........\n\n...........\n...........\n..###.###..\n..#*....#..\n..#.*...#..\n..###.###..\n..p.@.@....\n...........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n..........\n..........\n..........\n\n..........\n..........\n..####....\n..#*.@..p.\n..#.*@....\n..####....\n..........\n..........\n\n..........\n..........\n..####....\n..#*..@.p.\n..#.*.@...\n..####....\n..........\n..........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n####..####\n..........\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n..........\n\n.########.\n.#......#.\n.#.*..@.#.\n.#..*.@.#.\n####..####\n...p......\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n\n@@@@@@@@\n###@####\n........\n........\n.*.*.*..\n........\n.*.*.*..\n........\n.*.*.p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n...*....\n..***...\n...*....\n..***...\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n..***...\n..*.*...\n..***...\n........\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n..*.*...\n........\n..*.*...\n...@....\n..*.*...\n........\n..*.*p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n........\n........\n...*....\n..*.*...\n...*....\n..*.*...\n.*.@.*..\n...p....\n###*####\n########\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n#######\n##...##\n#.....#\n###.###\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#..p..#\n###.###\n#######\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n##################\n#####@#@#@########\n#####@#@#@########\n#####*#*#*########\n#@.........*....p#\n#..............*.#\n##############.*.#\n##############.*.#\n##############...#\n##################\n\n\n##############\n#@#@#@########\n#@#@#@########\n#*#*#*########\n#......*.p...#\n#..........*.#\n##########.*.#\n##########...#\n##############\n\n##########\n#@#@#@####\n#@#@#@####\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n######p..#\n##########\n\n#############\n###@#@#@#####\n###@#@#@#####\n###*#*#*#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#############\n###@#@#@#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#########\n###@#####\n#@....*p#\n#.....*.#\n#########\n\n...........\n...........\n....@@@....\n...........\n..@.***.@..\n..@.***.@..\n..@.***.@..\n...........\n.....p.....\n...........\n...........\n\n###########\n#.........#\n#.#..@..#.#\n#...@.@...#\n#..@***@..#\n#...***...#\n#..@***@..#\n#...@.@...#\n#.#..p..#.#\n#.........#\n###########\n\n#########\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(meeeh but in a pinch! but really, don't add it)\n#########\n##.....##\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(aaa kinda ok? has some stuff going on)\n#########\n#.......#\n#.*.@.*.#\n#..*@*..#\n#.@@*@@.#\n#..*@*..#\n#.*.@.*.#\n#...p...#\n#########\n\n#########\n#.......#\n#.@..**.#\n#.....*.#\n#..@....#\n#....@..#\n#.**....#\n#..*p.@.#\n#.....@.#\n#.@.*.@.#\n#.......#\n#########\n\n(doesn't have enough personality)\n#########\n#......p#\n#..@.@..#\n#.*.*.@.#\n#....*..#\n#.**..@.#\n#.**.*..#\n#.......#\n#########\n\n\n#########\n...#*#...\n.........\n##..*..##\n###...###\n####p####\n###...###\n##..@..##\n.........\n...#@#...\n#########\n\n\n\n#..#..#\n#..*.p#\n#.....#\n#..*..#\n###.###\n#..@..#\n#.....#\n#..@..#\n#..#..#\n\n...........\n.....*.....\n...........\n.....*.....\n....*.*....\n...*@@@*...\n....*.*....\n.....*.....\n...........\n.....p.....\n...........\n\n.......\n..*.*..\n.*@@@*.\n..*.*..\n...*...\n.......\n...p...\n.......\n)\n(\n....\n....\n....\n\n....\n....\n....\n....\n\n\n....\n....\n....\n....\n....\n\n\n.....\n.....\n.....\n.....\n.....\n\n......\n......\n......\n......\n......\n......\n\n##########\n#........#\n#.#....#.#\n#..*..*..#\n#...**..@#\n#...**.@@#\n#..*..@..#\n#.#.p*.#.#\n#.......##\n##########\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n##########\n\n###########\n#....#....#\n#.**.#.@@.#\n#.*..#..@.#\n#.........#\n####.p.####\n#.........#\n#.@..#..*.#\n#.@@.#.**.#\n#....#....#\n###########\n\n(solvable which is nice but also not good which is not nice)\n##########\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#........#\n#...p....#\n##########\n\n##########################\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#........................#\n#...........p............#\n##########################\n\n##########################\n#........................#\n#........................#\n#.........*..p...........#\n#........@@..............#\n#........***.............#\n#.......@@@@.............#\n#.......*****............#\n#......@@@@@@............#\n#......*******...........#\n#.....@@@@@@@@...........#\n#........................#\n#........................#\n#........................#\n#........................#\n#........................#\n##########################\n\n###########\n#.........#\n#.........#\n#..*@@@@..#\n#..*...*..#\n#..*.*.*..#\n#..*.@@*..#\n#..*......#\n#..@@@....#\n#.........#\n#....p....#\n#.........#\n###########\n\n####################\n#..................#\n#..................#\n#..................#\n#..................#\n#..***........@@@..#\n#..*.*........@.@..#\n#..***........@@@..#\n#..................#\n#..................#\n#.....p............#\n#..................#\n####################\n\n###########\n#.........#\n#.*.@@@@@.#\n#.*.@...@.#\n#.*...*.@.#\n#.*****.@.#\n#.........#\n#.........#\n#....p....#\n###*###@###\n###########\n\n...........\n##@@@@@@@##\n#####@#####\n#.........#\n#....*....#\n#...*.*...#\n#..*.@.*..#\n#...*.*...#\n#....*....#\n#.........#\n#....p....#\n#####*#####\n###########\n\n#######\n#@@@@@#\n##@@@##\n#.p...#\n#..@..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#.....#\n###*###\n#######\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n..###..\n.##*##.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n##@@@##\n##@@@#.\n.#####.\n\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n###.###\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n#######\n#*.*.*#\n#.*.*.#\n#*.*.*#\n#.@.@.#\n#@.@.@#\n#.@.@.#\n#..@..#\n#.....#\n#..p..#\n#.....#\n#######\n\n\n\n(ACTUAL CANDIDATE LEVELS)\n\n\n\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#.........#\n#.........#\n#....p....#\n#.........#\n###########\n\n\n(it is a level, but not amazing? but maybe ok? but I don't know? also repeats a mechanism from another level? but maybe better?)\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#....p....#\n#.........#\n#####.#####\n####*.***##\n#####****##\n###########\n\n##########\n#........#\n#.....p..#\n#........#\n#.....####\n#..#.....#\n#..#@....#\n#..#.....#\n##########\n\n\n\nmessage level 1 of 10\n\n####..\n#..#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 2 of 10\n\n######\n#....#\n#.#P.#\n#.*@.#\n#..@.#\n#....#\n######\n\nmessage level 3 of 10\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#....#P.#\n#########\n\nmessage level 4 of 10\n\n########\n#......#\n#..@@*P#\n#......#\n#####..#\n....####\n\nmessage level 5 of 10\n\n.#######\n.#.....#\n.#..*..#\n##.*P*.#\n#...*..#\n#......#\n########\n\nmessage level 6 of 10\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#......#\n#...########\n#####.......\n\n..######....\n###..**#####\n#.......@..#\n#.#..**#@@.#\n#......#.p.#\n############\n\nmessage level 7 of 10\n\n#######\n#.....#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..P..#\n#######\n\nmessage level 8 of 10\n\n..######\n..#...P#\n..#.**.#\n####.###\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\nmessage level 9 of 10\n\n#####.\n#...##\n#P**.#\n##...#\n.##..#\n..##.#\n...###\n\nmessage level 10 of 10\n\n......#####\n......#...#\n......#.#.#\n#######.#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\nmessage congratulations!\n\n\n#########\n#.......#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#...p...#\n#########\n\n......#####\n......#...#\n#######.#.#\n#.*.*.*.*.#\n#.#.#.#.###\n#....p..#..\n####@@@@#..\n...######..\n\n........#####\n........#...#\n#########.#.#\n#...*.*.*.*.#\n#.#.#.#.#.###\n#......p..#..\n######@@@@#..\n.....######..\n\n..........#####\n..........#...#\n..#########.#.#\n.##.*.@.@.@...#\n##*.#.#.#.#.###\n#*......p.....#\n###########.#.#\n..........#...#\n..........#####\n\n.......#####\n.......#...#\n########.#.#\n#*.....*.*.#\n##.#.#.#.###\n#@.@.@p....#\n########.#.#\n.......#...#\n.......#####\n)\n\n(\n..#########\n..#.......#\n..#.##..@.#\n..#.#@....#\n..#.....*.#\n..#.#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n \n.....######\n....##....#\n....#@..@.#\n....#.....#\n....#*#.*.#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n....#######\n....#.....#\n....#...@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n)\n\n",[1,1,1,1,3,3,0,0,3,0,3,3,3,0,0,1,1,1,2,2,2,2,3,2,1,1,3],"background:0,0,0,0,0,0,background wall:1,1,1,1,1,\n1,0,0,0,0,0,0,1,0,0,0,\n0,1,0,0,0,0,0,0,1,0,background wall wall3:2,\n2,2,1,0,0,0,0,0,0,1,0,\n2,2,2,1,0,0,1,1,1,1,1,\n1,1,0,1,1,1,1,1,background blue1:3,0,0,\n0,0,0,background player:4,0,1,1,0,0,0,0,\n1,0,1,0,0,0,1,1,0,0,0,\n0,0,0,1,0,0,0,1,1,0,background wall wall1:5,\n5,0,0,0,1,1,1,1,1,1,0,\n0,0,0,0,0,1,0,0,0,0,1,\n1,1,1,1,1,1,1,0,0,0,0,\n",1,"1645545097375.3352"] + ], + [ + "Double-Entry Bookkeeping Simulator#2", + ["title Double-Entry Bookkeeping Simulator\nauthor increpare\nhomepage www.increpare.com\n\n( verbose_logging )\nrun_rules_on_level_start\n\nbackground_color #404040\n\nagain_interval 0.1\n\n\n( Svelte Version für Simulieren \nhttps://www.puzzlescript.net/editor.html?hack=a52aae823542d184b57fc3301627a81a \n)\n\n========\nOBJECTS\n========\n\nBackground\n#404040\n\n\n\nWall\n#000000\n\n\nPlayer\ntransparent #ffffff\n01110\n01010\n11111\n00100\n01010\n\nblue_raw\n#1e88e5\n\n\nblue1 \n#003461 #1e88e5\n00100\n01100\n00100\n00100\n01110\n\nblue2 \n#003461 #1e88e5\n01100\n00010\n00100\n01000\n01110\n\nblue3 \n#003461 #1e88e5\n01100\n00010\n01100\n00010\n01100\n\nblue4 \n#003461 #1e88e5\n01000\n01000\n01010\n01110\n00010\n\nblue5 \n#003461 #1e88e5\n01110\n01000\n01100\n00010\n01100\n\nblue6 \n#003461 #1e88e5\n00100\n01000\n01100\n01010\n00100\n\nblue7 \n#003461 #1e88e5\n01110\n00010\n00010\n00100\n00100\n\nblue8 \n#003461 #1e88e5\n00100\n01010\n00100\n01010\n00100\n\nblue9 \n#003461 #1e88e5\n00110\n01010\n00110\n00010\n00010\n\nred_raw\n#d81b60\n\nred1 \n#56001f #d81b60\n00100\n01100\n00100\n00100\n01110\n\nred2 \n#56001f #d81b60\n01100\n00010\n00100\n01000\n01110\n\nred3 \n#56001f #d81b60\n01100\n00010\n01100\n00010\n01100\n\nred4 \n#56001f #d81b60\n01000\n01000\n01010\n01110\n00010\n\nred5 \n#56001f #d81b60\n01110\n01000\n01100\n00010\n01100\n\nred6 \n#56001f #d81b60\n00100\n01000\n01100\n01010\n00100\n\nred7 \n#56001f #d81b60\n01110\n00010\n00010\n00100\n00100\n\nred8 \n#56001f #d81b60\n00100\n01010\n00100\n01010\n00100\n\nred9 \n#56001f #d81b60\n00110\n01010\n00110\n00010\n00010\n\nonce\ntransparent\n\ncounted\nwhite\n.....\n.....\n.....\n...0.\n.....\n\ncounting\nyellow\n.....\n.0...\n.....\n.....\n.....\n\ndeleting\nyellow\n00000\n0...0\n0...0\n0...0\n00000\n\ndeleted\norange\n.....\n.....\n...0.\n.....\n.....\n\nwall1\n#000000 #1f1f1f\n00100\n01100\n00100\n00100\n01110\n\nwall2\n#000000 #1f1f1f\n01100\n00010\n00100\n01000\n01110\n\nwall3\n#000000 #1f1f1f\n01100\n00010\n01100\n00010\n01100\n\nwall4\n#000000 #1f1f1f\n01000\n01000\n01010\n01110\n00010\n\nwall5\n#000000 #1f1f1f\n01110\n01000\n01100\n00010\n01100\n\nwall6\n#000000 #1f1f1f\n00100\n01000\n01100\n01010\n00100\n\nwall7\n#000000 #1f1f1f\n01110\n00010\n00010\n00100\n00100\n\nwall8\n#000000 #1f1f1f\n00100\n01010\n00100\n01010\n00100\n\nwall9\n#000000 #1f1f1f\n00110\n01010\n00110\n00010\n00010\n\n=======\nLEGEND\n=======\n\nwalllabel = wall1 or wall2 or wall3 or wall4 or wall5 or wall6 or wall7 or wall8 or wall9\nred = red_raw or red1 or red2 or red3 or red4 or red5 or red6 or red7 or red8 or red9\n\nblue = blue_raw or blue1 or blue2 or blue3 or blue4 or blue5 or blue6 or blue7 or blue8 or blue9\n\nblue_other = blue\nred_other = red\n\ncoloured = red or blue\n\npushable = red or blue\n. = Background\n# = Wall\nP = Player\n* = red_raw\n@ = blue_raw\n\nobstacle = pushable or wall or player\n\n=======\nSOUNDS\n=======\n\nred move 76964107\nblue move 73247707\nsfx0 66382107 (destroy)\nsfx1 49518300 (destroy start)\n\nstartlevel 46354708\nendlevel 70029700\nstartgame 40047300\n\n================\nCOLLISIONLAYERS\n================\n\nonce, counted\ncounting\ndeleted\nBackground\nPlayer, Wall, pushable\ndeleting\nwalllabel\n\n======\nRULES\n======\n\n[ moving player ] [ deleted ] -> [ moving player ] [ ]\n\n[ blue no deleting ] -> [ blue_raw ]\n[ red no deleting ] -> [ red_raw ]\n\n[ > Player | pushable ] -> [ > Player | > pushable ]\n\n\nstartloop\n\nlate [ player no once no deleting ] [ blue no counted no deleting ] -> [ player once ] [ once blue ]\n\nlate [ once blue_raw no deleting ] -> [ counting blue1 counted ]\nlate [ once blue1 no deleting ] -> [ counting blue2 counted ]\nlate [ once blue2 no deleting ] -> [ counting blue3 counted ]\nlate [ once blue3 no deleting ] -> [ counting blue4 counted ]\nlate [ once blue4 no deleting ] -> [ counting blue5 counted ]\nlate [ once blue5 no deleting ] -> [ counting blue6 counted ]\nlate [ once blue6 no deleting ] -> [ counting blue7 counted ]\nlate [ once blue7 no deleting ] -> [ counting blue8 counted ]\nlate [ once blue8 no deleting ] -> [ counting blue9 counted ]\n\nlate [once]->[]\n\nlate [ counting blue no deleting | no counting blue_other no deleting ] -> [ counting blue | counting blue ]\nlate [counting]->[]\n\nendloop\n\n\nstartloop\nlate [ player no once ] [ red no counted no deleting ] -> [ player once ] [ once red ]\n\nlate [ once red_raw no deleting ] -> [ counting red1 counted ]\nlate [ once red1 no deleting ] -> [ counting red2 counted ]\nlate [ once red2 no deleting ] -> [ counting red3 counted ]\nlate [ once red3 no deleting ] -> [ counting red4 counted ]\nlate [ once red4 no deleting ] -> [ counting red5 counted ]\nlate [ once red5 no deleting ] -> [ counting red6 counted ]\nlate [ once red6 no deleting ] -> [ counting red7 counted ]\nlate [ once red7 no deleting ] -> [ counting red8 counted ]\nlate [ once red8 no deleting ] -> [ counting red9 counted ]\n\nlate [once]->[]\n\nlate [ counting red no deleting | no counting red_other no deleting ] -> [ counting red | counting red ]\nlate [counting]->[]\n\nendloop\n\n\nrandom late [ deleting red1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting red2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting red3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting red4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting red5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting red6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting red7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting red8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting red9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting blue1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting blue2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting blue3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting blue4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting blue5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting blue6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting blue7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting blue8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting blue9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting red1 | deleting blue1 ] -> [ wall wall1 deleted | wall wall1 deleted ] again sfx0\n+ late [ deleting red2 | deleting blue2 ] -> [ wall wall2 deleted | wall wall2 deleted ] again sfx0\n+ late [ deleting red3 | deleting blue3 ] -> [ wall wall3 deleted | wall wall3 deleted ] again sfx0\n+ late [ deleting red4 | deleting blue4 ] -> [ wall wall4 deleted | wall wall4 deleted ] again sfx0\n+ late [ deleting red5 | deleting blue5 ] -> [ wall wall5 deleted | wall wall5 deleted ] again sfx0\n+ late [ deleting red6 | deleting blue6 ] -> [ wall wall6 deleted | wall wall6 deleted ] again sfx0\n+ late [ deleting red7 | deleting blue7 ] -> [ wall wall7 deleted | wall wall7 deleted ] again sfx0\n+ late [ deleting red8 | deleting blue8 ] -> [ wall wall8 deleted | wall wall8 deleted ] again sfx0\n+ late [ deleting red9 | deleting blue9 ] -> [ wall wall9 deleted | wall wall9 deleted ] again sfx0\n\nlate [counted]->[]\n\n\nlate [ red1 | blue1 ] -> [ deleting red1 | deleting blue1 ] again sfx1 \nlate [ red2 | blue2 ] -> [ deleting red2 | deleting blue2 ] again sfx1 \nlate [ red3 | blue3 ] -> [ deleting red3 | deleting blue3 ] again sfx1 \nlate [ red4 | blue4 ] -> [ deleting red4 | deleting blue4 ] again sfx1 \nlate [ red5 | blue5 ] -> [ deleting red5 | deleting blue5 ] again sfx1 \nlate [ red6 | blue6 ] -> [ deleting red6 | deleting blue6 ] again sfx1 \nlate [ red7 | blue7 ] -> [ deleting red7 | deleting blue7 ] again sfx1 \nlate [ red8 | blue8 ] -> [ deleting red8 | deleting blue8 ] again sfx1 \nlate [ red9 | blue9 ] -> [ deleting red9 | deleting blue9 ] again sfx1 \n\nlate [ deleting red1 | no deleting red1 ] -> [ deleting red1 | deleting red1 ]\nlate [ deleting red2 | no deleting red2 ] -> [ deleting red2 | deleting red2 ]\nlate [ deleting red3 | no deleting red3 ] -> [ deleting red3 | deleting red3 ]\nlate [ deleting red4 | no deleting red4 ] -> [ deleting red4 | deleting red4 ]\nlate [ deleting red5 | no deleting red5 ] -> [ deleting red5 | deleting red5 ]\nlate [ deleting red6 | no deleting red6 ] -> [ deleting red6 | deleting red6 ]\nlate [ deleting red7 | no deleting red7 ] -> [ deleting red7 | deleting red7 ]\nlate [ deleting red8 | no deleting red8 ] -> [ deleting red8 | deleting red8 ]\nlate [ deleting red9 | no deleting red9 ] -> [ deleting red9 | deleting red9 ]\n\n\nlate [ deleting blue1 | no deleting blue1 ] -> [ deleting blue1 | deleting blue1 ]\nlate [ deleting blue2 | no deleting blue2 ] -> [ deleting blue2 | deleting blue2 ]\nlate [ deleting blue3 | no deleting blue3 ] -> [ deleting blue3 | deleting blue3 ]\nlate [ deleting blue4 | no deleting blue4 ] -> [ deleting blue4 | deleting blue4 ]\nlate [ deleting blue5 | no deleting blue5 ] -> [ deleting blue5 | deleting blue5 ]\nlate [ deleting blue6 | no deleting blue6 ] -> [ deleting blue6 | deleting blue6 ]\nlate [ deleting blue7 | no deleting blue7 ] -> [ deleting blue7 | deleting blue7 ]\nlate [ deleting blue8 | no deleting blue8 ] -> [ deleting blue8 | deleting blue8 ]\nlate [ deleting blue9 | no deleting blue9 ] -> [ deleting blue9 | deleting blue9 ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nno coloured\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 9\n\n(improved version?)\n.....######\n.....#....#\n....##..@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n\nmessage Level 2 of 9\n\n#######...\n#@#@#@#...\n#@#@#@#...\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n.....#p..#\n.....#####\n\n\n\n\n\nmessage Level 3 of 9\n(ok? not too hard)\n#######.\n#.....#.\n#..*.@#.\n####.###\n.#.....#\n.#.*.@.#\n.#..p..#\n####.###\n#..*.@#.\n#.....#.\n#######.\n\n\n\nmessage Level 4 of 9\n#######..\n#.....#..\n#...@.#..\n#...@.###\n#...@.#@#\n#.....#.#\n#.p..***#\n#.....#.#\n#...@.#.#\n#...@...#\n#...@.###\n#.....#..\n#######..\n\n\nmessage Level 5 of 9\n\n(Actually tricky? or a bit overwhelming maybe?)\n(requires silly batching. i like this)\n#########\n#...#...#\n#..***..#\n#.......#\n####.####\n#.......#\n#..@@@p.#\n#...#...#\n#########\n\nmessage Level 6 of 9\n(possibly ok? IDK? WE?)\n#########\n#.......#\n#.*..@.*#\n#..**..@#\n#..**.@@#\n#.*..*..#\n#..p....#\n#########\n\nmessage Level 7 of 9\n(p ok? solution involves knowing something, but maybe you just stumble through it without knowing the thing)\n\n#####..\n#@@@#..\n#@@@##.\n#@#.@##\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\nmessage Level 8 of 9\n(p. ok level)\n###########\n#.........#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.p.......#\n#.........#\n###########\n\nmessage Level 9 of 9\n(ok final level maybe?)\n(fixed version?)\n...####....\n####..#....\n#@..*.#....\n###...#....\n..#.*#####.\n..#.*#.p.#.\n..#****@@#.\n..#.@@...#.\n..#.@@...#.\n..#.#@...##\n..#.......#\n..####....#\n.....######\n\nmessage Congratulations. You have mastered all the numbers, from 1 up to 9!\n\n(DISCARD PILE::::)\n\n(BAD IDEAS FOR FIRST LEVEL END )\n(thje better version. maybe ok early level?)\n( ####### )\n( #..#..# )\n( #..*.p# )\n( #..*..# )\n( #.....# )\n( ###.### )\n( #.....# )\n( #..@..# )\n( #..@..# )\n( #..#..# )\n( ####### )\n\n\n( ########## )\n( #@...##### )\n( ##...##### )\n( ##...##### )\n( ##@..##### )\n( ###...#### )\n( ###...#### )\n( ###@..#### )\n( ####.....# )\n( ####.***.# )\n( ####..p..# )\n( ########## )\n\n\n( audio test level)\n( ############# )\n( #..@........# )\n( #..@....@@..# )\n( #..@....@@@.# )\n( #..@.@..@@@.# )\n( #.*....*....# )\n( #..*.*..***.# )\n( #..*....***.# )\n( #..*....*...# )\n( #....p......# )\n( #...........# )\n( ############# )\n\n(level 2/3?)\n( ########## )\n( #........# )\n( #.**.@@@.# )\n( #........# )\n( #...p....# )\n( #........# )\n( ########## )\n\n(ok early level? meh other level does this but better IMO)\n( ###### )\n( #....# )\n( #.@.*# )\n( #.@.*# )\n( ###.## )\n( #....# )\n( #..p.# )\n( #....# )\n( ###.## )\n( #.@.*# )\n( #.@.*# )\n( #....# )\n( ###### )\n\n(ok level I think?)\n( ############# )\n( ####@.*...### )\n( ######*##.### )\n( #.....*.....# )\n( #.@@@...@@@.# )\n( #...........# )\n( #.....p.....# )\n( #...........# )\n( ############# )\n\n(\n\n(needs a few more steps of indirection on the right)\n#########\n#####*###\n#...#*###\n#.**@*###\n#.......#\n#@@..@@.#\n####p...#\n#########\n\n##############\n#....##......#\n#....##*.....#\n#.....#*.....#\n#...**@*.....#\n#............#\n###@@....@@..#\n######.p.....#\n######.......#\n##############\n\n###########\n#**@@***@@#\n#**..***..#\n#.........#\n#.........#\n#...@.@.@.#\n#.p.......#\n#...@.@.@.#\n#.........#\n###########\n\n##############\n#...#........#\n*.@.#........#\n#.#####**....#\n#.##**@**....#\n#............#\n####...@.@.@.#\n...#.p@.@.@..#\n...#.........#\n...###########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##....p..#\n##########\n\n\n(damnit a shortcut/trivialisation)\n##########\n####..####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n#@..######\n##..######\n##.*######\n##..#.p.##\n##****@@##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n(pedagogical version of other level)\n#############\n#@@*#@@#@####\n#@@*#@*#@####\n###*##*#*####\n###.......*.#\n###.......*.#\n#########.*.#\n#########p..#\n#############\n\n##########\n#........#\n#...@....#\n#........#\n#...**.@.#\n#.@.**...#\n#........#\n#.p..@...#\n#........#\n##########\n\n\n.#########.\n.#@.######.\n.#..######.\n.#****...#.\n.#*.**.p.#.\n###.**...#.\n#...@@*@@#.\n#...@@...#.\n#...@@...#.\n#@@*@@*@@#.\n#...*....#.\n#...@....#.\n#...@....#.\n##########.\n\n##########\n##@.##...#\n##..##.p.#\n###***...#\n##..***@@#\n##..@@...#\n##..@@...#\n##...@...#\n##.......#\n##.......#\n##########\n\n#########\n#@.##...#\n#..##.p.#\n##****@@#\n#..@@...#\n#...@...#\n#.......#\n#.......#\n#########\n\n##########\n####*#####\n#@.#*.p.##\n##****@@##\n##.@@...*#\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n\n\n##########\n#..#######\n#..#######\n#..##.p.##\n##****@@##\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n############\n#....#######\n#....#*#####\n#....#*.p.##\n#*##****@@##\n#.##.@@...*#\n#@##.@@...##\n####.#@...##\n####.......#\n####.......#\n############\n\n.#########...\n.#..######...\n.#..######...\n.##......#...\n.#.....p.#...\n##.......#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n##########...\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.......#\n#......*#\n#.....@*#\n######.##\n#....#.*#\n#.p...@.#\n#.......#\n#########\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.p.....#\n#......*#\n#.....@*#\n#.......#\n#....@.*#\n#.......#\n#########\n\n(is this funnier than above? I don't think so but I@m not sure)\n###########\n#.........#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.p.......#\n#.........#\n###########\n\n(technically harder than above but also more work)\n################\n#..............#\n#..............#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#.p............#\n#..............#\n################\n\n\n#################\n#...............#\n#...............#\n#..@@@.@@@.@@@..#\n#...*...*...*...#\n#..@@@.@@@.@@@..#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#...............#\n#################\n\n#################\n#...............#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n...............\n...............\n..@@@.@@@.@@@..\n...*...*...*...\n..@@@.@@@.@@@..\n...............\n...............\n.......p.......\n...............\n...............\n\n..........@.@...\n..........@.@...\n..........@*@...\n.......@@@*.*@@@\n..........@.@...\n..........@.@...\n..........@.@...\n................\n................\n\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n########\n#......#\n#......#\n#..@.*.#\n#......#\n###..*##\n####.###\n#p.@...#\n#......#\n####.###\n#......#\n#......#\n########\n\n\n...################\n..................#\n....@.............#\n.....@............#\n.@.**.@...........#\n..@.**.@..........#\n...@.**...........#\n....@.**..........#\n......p*.@........#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#################\n\n.........\n.........\n.#.#.#.#.\n.@.*.@.*.\n.#.#.#.#.\n.@.*.@.*.\n*#@#*#@#*\n.........\n..p......\n\n\n..#.#.#.#..\n...........\n..#.#.#.#..\n...........\n..#.#.#.#..\n...p.......\n\n.#.#.#.#.\n.@.*.*.@.\n.#.#.#.#.\n.@.*.*.@.\n*#@#.#@#*\n..p......\n\n(meh)\n#########\n#...@####\n#..*.@###\n#@..*.@##\n##@..*.@#\n###@..*.#\n####@p..#\n#########\n\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n(meeeeh. I think not great? too long but also if short too randomo)\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n###########\n###########\n##...@#####\n##..*.@####\n##@..*.@###\n###@..*.###\n####@p....#\n#####.***.#\n#####.....#\n###########\n\n#########\n#...@####\n#..*.@###\n#@..*.###\n##@..*.##\n####..*.#\n#####...#\n######.p#\n#########\n\n...#.......\n....#......\n....@#.....\n.....@#....\n#@....@#...\n.#@..*.@#..\n..#@..*....\n...#@..*...\n....#.*.*..\n.......*...\n......p.*..\n.........*.\n...........\n\n( (kinda different from the above) )\n( (trivial) )\n( ####### )\n( #....## )\n( #....## )\n( #.*.@## )\n( ###.### )\n( #.....# )\n( #.*.@.# )\n( #..p..# )\n( ###.### )\n( #.*.@## )\n( #....## )\n( #....## )\n( ####### )\n\n\n#######\n#....##\n#....##\n#....##\n#....##\n#.*.@##\n###.###\n#.....#\n#.*.@.#\n#p....#\n###.###\n#.*.@##\n#....##\n#....##\n#....##\n#....##\n#######\n\n#######\n#....##\n#....##\n#....##\n#.@.*##\n#.@.*##\n###.###\n#.....#\n#.@.*.#\n#p....#\n###.###\n#.@.*##\n#.@.*##\n#....##\n#....##\n#....##\n#######\n\n###########\n###@.*..###\n#####*#.###\n.....*.....\n.@@@...@@@.\n.....p.....\n...........\n...........\n\n#############\n####.....####\n######.#.####\n#...........#\n#...........#\n#.....p.....#\n#...........#\n#############\n\n#######\n#.....#\n#.***.#\n#.....#\n###.###\n#.....#\n#.@@@p#\n#.....#\n#######\n\n....####\n....#..#\n....#..#\n#####..#\n#...#..#\n#..@..*#\n#...#p.#\n#####..#\n#..@..*#\n#......#\n######.#\n....#@.#\n....#..#\n....#.*#\n....#..#\n....####\n\n.#######.\n.#.....#.\n.#..*..#.\n.#.*.*.#.\n.#.*.*.#.\n.#.....#.\n.#.....#.\n###.#.###\n#@@.#.@@#\n#@@.#.@@#\n#@..#..@#\n#@.*#*.@#\n#@p.#..@#\n#########\n\n@....*\n.@..*.\n......\n.@..*.\n..p...\n\n..........\n.@@....**.\n.@@....**.\n...@..*...\n..........\n...@..*...\n.....p....\n..........\n\n\n(ok partition problem)\n(nah broken)\n.........\n.........\n.@.....@.\n.@.#*#.@.\n.@..*..@.\n.........\n....p....\n.........\n\n...............\n....@..#..@....\n.#..@.#*#.@..#.\n#*..@..*..@..*#\n.#..@.....@..#.\n.......p.......\n...............\n\n....####.....\n...#@.*......\n....##*#.....\n......*......\n.............\n..@@@.p.@@@..\n.............\n.............\n\n#######\n#.....#\n#.#.#.#\n#.@.*.#\n###.###\n.......\np.@.*..\n.......\n###.###\n#.@.*.#\n#.#.#.#\n#.....#\n#######\n\n######\n#...##\n#...##\n#...##\n#.@.*#\n###.##\n......\np.@.*.\n......\n###.##\n#.@.*#\n#...##\n#...##\n#...##\n######\n\n(trivial)\n(\n.........\n.........\n..**.@...\n.........\n....p....\n.........\n)\n\n\n\n............\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..*.*..*.*..\n.....p......\n............\n\n...........\n.....@.....\n.....@.....\n.....@.....\n.....@.....\n.....*.....\n.@@@@*@@@@.\n.....*.....\n.@@@@.@@@@.\n.....*.....\n...........\n.....p.....\n...........\n\n...........\n...........\n..###.###..\n..#*....#..\n..#.*...#..\n..###.###..\n..p.@.@....\n...........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n..........\n..........\n..........\n\n..........\n..........\n..####....\n..#*.@..p.\n..#.*@....\n..####....\n..........\n..........\n\n..........\n..........\n..####....\n..#*..@.p.\n..#.*.@...\n..####....\n..........\n..........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n####..####\n..........\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n..........\n\n.########.\n.#......#.\n.#.*..@.#.\n.#..*.@.#.\n####..####\n...p......\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n\n@@@@@@@@\n###@####\n........\n........\n.*.*.*..\n........\n.*.*.*..\n........\n.*.*.p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n...*....\n..***...\n...*....\n..***...\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n..***...\n..*.*...\n..***...\n........\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n..*.*...\n........\n..*.*...\n...@....\n..*.*...\n........\n..*.*p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n........\n........\n...*....\n..*.*...\n...*....\n..*.*...\n.*.@.*..\n...p....\n###*####\n########\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n#######\n##...##\n#.....#\n###.###\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#..p..#\n###.###\n#######\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n##################\n#####@#@#@########\n#####@#@#@########\n#####*#*#*########\n#@.........*....p#\n#..............*.#\n##############.*.#\n##############.*.#\n##############...#\n##################\n\n\n##############\n#@#@#@########\n#@#@#@########\n#*#*#*########\n#......*.p...#\n#..........*.#\n##########.*.#\n##########...#\n##############\n\n##########\n#@#@#@####\n#@#@#@####\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n######p..#\n##########\n\n#############\n###@#@#@#####\n###@#@#@#####\n###*#*#*#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#############\n###@#@#@#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#########\n###@#####\n#@....*p#\n#.....*.#\n#########\n\n...........\n...........\n....@@@....\n...........\n..@.***.@..\n..@.***.@..\n..@.***.@..\n...........\n.....p.....\n...........\n...........\n\n###########\n#.........#\n#.#..@..#.#\n#...@.@...#\n#..@***@..#\n#...***...#\n#..@***@..#\n#...@.@...#\n#.#..p..#.#\n#.........#\n###########\n\n#########\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(meeeh but in a pinch! but really, don't add it)\n#########\n##.....##\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(aaa kinda ok? has some stuff going on)\n#########\n#.......#\n#.*.@.*.#\n#..*@*..#\n#.@@*@@.#\n#..*@*..#\n#.*.@.*.#\n#...p...#\n#########\n\n#########\n#.......#\n#.@..**.#\n#.....*.#\n#..@....#\n#....@..#\n#.**....#\n#..*p.@.#\n#.....@.#\n#.@.*.@.#\n#.......#\n#########\n\n(doesn't have enough personality)\n#########\n#......p#\n#..@.@..#\n#.*.*.@.#\n#....*..#\n#.**..@.#\n#.**.*..#\n#.......#\n#########\n\n\n#########\n...#*#...\n.........\n##..*..##\n###...###\n####p####\n###...###\n##..@..##\n.........\n...#@#...\n#########\n\n\n\n#..#..#\n#..*.p#\n#.....#\n#..*..#\n###.###\n#..@..#\n#.....#\n#..@..#\n#..#..#\n\n...........\n.....*.....\n...........\n.....*.....\n....*.*....\n...*@@@*...\n....*.*....\n.....*.....\n...........\n.....p.....\n...........\n\n.......\n..*.*..\n.*@@@*.\n..*.*..\n...*...\n.......\n...p...\n.......\n)\n(\n....\n....\n....\n\n....\n....\n....\n....\n\n\n....\n....\n....\n....\n....\n\n\n.....\n.....\n.....\n.....\n.....\n\n......\n......\n......\n......\n......\n......\n\n##########\n#........#\n#.#....#.#\n#..*..*..#\n#...**..@#\n#...**.@@#\n#..*..@..#\n#.#.p*.#.#\n#.......##\n##########\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n##########\n\n###########\n#....#....#\n#.**.#.@@.#\n#.*..#..@.#\n#.........#\n####.p.####\n#.........#\n#.@..#..*.#\n#.@@.#.**.#\n#....#....#\n###########\n\n(solvable which is nice but also not good which is not nice)\n##########\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#........#\n#...p....#\n##########\n\n##########################\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#........................#\n#...........p............#\n##########################\n\n##########################\n#........................#\n#........................#\n#.........*..p...........#\n#........@@..............#\n#........***.............#\n#.......@@@@.............#\n#.......*****............#\n#......@@@@@@............#\n#......*******...........#\n#.....@@@@@@@@...........#\n#........................#\n#........................#\n#........................#\n#........................#\n#........................#\n##########################\n\n###########\n#.........#\n#.........#\n#..*@@@@..#\n#..*...*..#\n#..*.*.*..#\n#..*.@@*..#\n#..*......#\n#..@@@....#\n#.........#\n#....p....#\n#.........#\n###########\n\n####################\n#..................#\n#..................#\n#..................#\n#..................#\n#..***........@@@..#\n#..*.*........@.@..#\n#..***........@@@..#\n#..................#\n#..................#\n#.....p............#\n#..................#\n####################\n\n###########\n#.........#\n#.*.@@@@@.#\n#.*.@...@.#\n#.*...*.@.#\n#.*****.@.#\n#.........#\n#.........#\n#....p....#\n###*###@###\n###########\n\n...........\n##@@@@@@@##\n#####@#####\n#.........#\n#....*....#\n#...*.*...#\n#..*.@.*..#\n#...*.*...#\n#....*....#\n#.........#\n#....p....#\n#####*#####\n###########\n\n#######\n#@@@@@#\n##@@@##\n#.p...#\n#..@..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#.....#\n###*###\n#######\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n..###..\n.##*##.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n##@@@##\n##@@@#.\n.#####.\n\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n###.###\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n#######\n#*.*.*#\n#.*.*.#\n#*.*.*#\n#.@.@.#\n#@.@.@#\n#.@.@.#\n#..@..#\n#.....#\n#..p..#\n#.....#\n#######\n\n\n\n(ACTUAL CANDIDATE LEVELS)\n\n\n\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#.........#\n#.........#\n#....p....#\n#.........#\n###########\n\n\n(it is a level, but not amazing? but maybe ok? but I don't know? also repeats a mechanism from another level? but maybe better?)\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#....p....#\n#.........#\n#####.#####\n####*.***##\n#####****##\n###########\n\n##########\n#........#\n#.....p..#\n#........#\n#.....####\n#..#.....#\n#..#@....#\n#..#.....#\n##########\n\n\n\nmessage level 1 of 10\n\n####..\n#..#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 2 of 10\n\n######\n#....#\n#.#P.#\n#.*@.#\n#..@.#\n#....#\n######\n\nmessage level 3 of 10\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#....#P.#\n#########\n\nmessage level 4 of 10\n\n########\n#......#\n#..@@*P#\n#......#\n#####..#\n....####\n\nmessage level 5 of 10\n\n.#######\n.#.....#\n.#..*..#\n##.*P*.#\n#...*..#\n#......#\n########\n\nmessage level 6 of 10\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#......#\n#...########\n#####.......\n\n..######....\n###..**#####\n#.......@..#\n#.#..**#@@.#\n#......#.p.#\n############\n\nmessage level 7 of 10\n\n#######\n#.....#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..P..#\n#######\n\nmessage level 8 of 10\n\n..######\n..#...P#\n..#.**.#\n####.###\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\nmessage level 9 of 10\n\n#####.\n#...##\n#P**.#\n##...#\n.##..#\n..##.#\n...###\n\nmessage level 10 of 10\n\n......#####\n......#...#\n......#.#.#\n#######.#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\nmessage congratulations!\n\n\n#########\n#.......#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#...p...#\n#########\n\n......#####\n......#...#\n#######.#.#\n#.*.*.*.*.#\n#.#.#.#.###\n#....p..#..\n####@@@@#..\n...######..\n\n........#####\n........#...#\n#########.#.#\n#...*.*.*.*.#\n#.#.#.#.#.###\n#......p..#..\n######@@@@#..\n.....######..\n\n..........#####\n..........#...#\n..#########.#.#\n.##.*.@.@.@...#\n##*.#.#.#.#.###\n#*......p.....#\n###########.#.#\n..........#...#\n..........#####\n\n.......#####\n.......#...#\n########.#.#\n#*.....*.*.#\n##.#.#.#.###\n#@.@.@p....#\n########.#.#\n.......#...#\n.......#####\n)\n\n(\n..#########\n..#.......#\n..#.##..@.#\n..#.#@....#\n..#.....*.#\n..#.#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n \n.....######\n....##....#\n....#@..@.#\n....#.....#\n....#*#.*.#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n....#######\n....#.....#\n....#...@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n)\n\n",[2,0,3,2,2,1],"background:0,background wall:1,1,1,0,0,0,0,0,0,0,\n0,0,0,1,background blue1:2,1,0,0,0,0,0,\n0,0,0,0,0,1,0,1,1,1,1,\n1,1,1,1,1,0,1,1,0,0,0,\n0,background deleted wall wall6:3,0,0,0,0,1,0,1,0,background red1:4,\n0,3,3,3,3,3,1,0,1,0,1,\n0,0,0,1,1,3,3,3,3,0,1,\n1,1,1,1,1,1,0,3,3,0,0,\n0,0,1,0,0,0,0,1,0,0,background player:5,\n0,0,0,0,1,0,0,0,0,1,0,\n0,0,2,0,0,0,1,0,0,0,0,\n1,1,1,1,1,1,0,0,1,0,0,\n0,0,0,0,0,0,0,1,1,1,1,\n",17,"1645545159763.6345"] + ], + [ + "short adventure in sticky wall land", + ["title short adventure in sticky wall land\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #1d4765\ntext_color #99e550\nrun_rules_on_level_start\n\n\n========\nOBJECTS\n========\n\nBackground\n#396c90 #457da4\n00000\n00000\n00100\n00000\n00000\n\n\nTarget\n#fbf236 transparent\n00100\n01110\n11111\n01110\n00100\n\n\nWall\n#99e550 #99e550 #99e550\n01110\n12221\n12221\n12221\n01110\n\nwall_grenze_N\n#6abe30\n00000\n.....\n.....\n.....\n.....\n\nwall_grenze_S\n#6abe30\n.....\n.....\n.....\n.....\n00000\n\nwall_grenze_O\n#6abe30\n....0\n....0\n....0\n....0\n....0\n\nwall_grenze_W\n#6abe30\n0....\n0....\n0....\n0....\n0....\n\nwall_grenze_NO\n#396c90\n....0\n.....\n.....\n.....\n.....\n\nwall_grenze_SO\n#396c90\n.....\n.....\n.....\n.....\n....0\n\nwall_grenze_SW\n#396c90\n.....\n.....\n.....\n.....\n0....\n\nwall_grenze_NW\n#396c90\n0....\n.....\n.....\n.....\n.....\n\nPlayer\ntransparent #b13030 #a96c30 #4e0b0b\n01110\n11110\n02220\n33333\n03030\n\n\nCrate\n#8f563b #743a1f #b4643d #b76640\n00000\n01220\n03120\n03310\n00000\n\n\n\n=======\nLEGEND\n=======\n\nwall_dekoration_ortho = wall_grenze_N or wall_grenze_S or wall_grenze_O or wall_grenze_W\n\nwall_dekoration_eck = wall_grenze_NW or wall_grenze_SW or wall_grenze_SO or wall_grenze_NO\n\nwall_dekoration = wall_dekoration_eck or wall_dekoration_ortho\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\nobstacle = crate or wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 76571107\nwall move 95423307\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nwall_grenze_N \nwall_grenze_S\nwall_grenze_O\nwall_grenze_W\nwall_grenze_NO\nwall_grenze_SO \nwall_grenze_SW\nwall_grenze_NW\nTarget\n\n======\nRULES\n======\n(\n[ > player | crate | obstacle ] -> cancel\n[ > player | wall ] -> cancel\n\n\n[ > Player | Crate | ] -> [ > Player | | Crate ]\n[ wall | > player | ] -> [ wall | wall | player ]\n\n)\n\n(it's very possible someone's come up with this set of rules already - but if they have I haven't seen it yet)\n\n[ > player | crate ] -> [ > player | > crate ]\n[ wall | > player ] -> [ > wall | > player ]\n\nlate [ wall_dekoration ] -> []\nlate up [ wall | no wall ] -> [ wall wall_grenze_N | ]\nlate down [ wall | no wall ] -> [ wall wall_grenze_S | ]\nlate right [ wall | no wall ] -> [ wall wall_grenze_O | ]\nlate left [ wall | no wall ] -> [ wall wall_grenze_W | ]\n\nlate [ wall_grenze_N wall_grenze_O ] -> [ wall_grenze_N wall_grenze_O wall_grenze_NO ]\nlate [ wall_grenze_S wall_grenze_O ] -> [ wall_grenze_S wall_grenze_O wall_grenze_SO ]\nlate [ wall_grenze_N wall_grenze_W ] -> [ wall_grenze_N wall_grenze_W wall_grenze_NW ]\nlate [ wall_grenze_S wall_grenze_W ] -> [ wall_grenze_S wall_grenze_W wall_grenze_SW ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 3\n\n(kinda like)\n.........\n.#######.\n.#..*..#.\n.#..p..#.\n.#..o..#.\n.#######.\n.........\n\nmessage Level 2 of 3\n\n\n(ok)\n........\n.####...\n.#.o#...\n.#..###.\n.#@p..#.\n.#..*.#.\n.#..###.\n.####...\n........\n\nmessage Level 3 of 3\n\n(mildly entertaining. possibly slightly harder?)\n.......\n.#####.\n.#.*.#.\n.#...#.\n.#.p.#.\n.#...#.\n.#.o.#.\n.#####.\n.......\n\nmessage Congratulations. Thank you for playing!\n\n(\n#..##\np...o\n.#..#\n..*.#\no*##.\n\n##.##\n.o.*#\n....#\n#*.o.\n#.p..\n\n...##\n.o.*#\n.....\n#*.o.\n##..p\n\n(haven't solved, don't like)\n#..##\n.o.*#\n.p...\n#*.o.\n##..#\n\n(better. still don't like though)\n#..#.\n.o.*#\n..p..\n#*.o.\n.#..#\n\n#....\n.o.*#\n#.p.#\n#*.o.\n....#\n\n(easy-ish, but ok? NO BAD)\n#.#..\n.o.*#\n..p..\n#*.o.\n..#.#\n\n\n....\n....\n....\n....\n\n\n.....\n.....\n.....\n.....\n.....\n\n.....\n.....\n.....\n.....\n.....\n\n.......\n.......\n.......\n.......\n.......\n.......\n.......\n\n.......\n.#####.\n.#.*.#.\n.#.p.#.\n.#.o.#.\n.#####.\n.......\n\n.........\n.#######.\n.#..*..#.\n.#..p..#.\n.#..o..#.\n.#######.\n.........\n\n.p..\no...\n.*@.\n#..#\n\n(possible to get to a dead end wtihout knowing really - so bad?)\n.....\n.o#..\n.*#*.\n.o#p.\n.....\n\n(ok, not so dead endy, but is it good? hardish)\n.....\n.opo.\n.*.*.\n.###.\n.....\n\n(easy but ok)\n.....\n.o#..\n.@#..\n.#*p.\n.....\n\n........\n.####...\n.#.o#...\n.#..###.\n.#@p..#.\n.#..*.#.\n.#..###.\n.####...\n........\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*O.#\n##.*P*.#\n#..O*O.#\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",[2,3,0,3,0,0,2,1,0,2,1,2,2,3,2,2,1,1,1,1,1,1,0,0,0,0,0,0,3,3,3,3,3,3,3,3,2,2,1,2,1,3,0,0,0,0,1,1,2,2,2,2,1,0,3,0,0,0,1,1,2,2,2,2,1,1,0,0,"undo","undo","undo",0,1,0,3,2,"undo",2,3,1,1,2],"background:0,0,0,0,0,0,0,0,background wall wall_grenze_n wall_grenze_nw wall_grenze_s wall_grenze_sw wall_grenze_w:1,\n0,background wall wall_grenze_n wall_grenze_nw wall_grenze_w:2,background wall wall_grenze_o wall_grenze_w:3,background wall wall_grenze_s wall_grenze_sw wall_grenze_w:4,0,0,background wall wall_grenze_n wall_grenze_no wall_grenze_o wall_grenze_s wall_grenze_so:5,0,background wall wall_grenze_n wall_grenze_s:6,\nbackground player:7,5,0,0,0,background wall wall_grenze_n wall_grenze_no wall_grenze_nw wall_grenze_o wall_grenze_w:8,background wall wall_grenze_o:9,4,0,\n0,0,0,background crate:10,0,background target wall wall_grenze_n wall_grenze_no wall_grenze_o:11,background wall wall_grenze_o wall_grenze_s wall_grenze_so wall_grenze_sw wall_grenze_w:12,0,0,\n2,12,0,0,0,0,0,6,0,\n0,0,1,0,0,background wall wall_grenze_n wall_grenze_no wall_grenze_o:13,3,12,0,\n5,0,0,0,0,0,0,0,0,\n",1,"1645545192906.1704"] + ], + [ + "[testing for recording through level-changes A] Level-Change test", + ["title Simple Block Pushing Game\nauthor David Skinner\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\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\n\nun\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[2,1,0,3,3,3,2,1,0,1,2,2,"undo",1,2,2,3,0,1,0,3,0,0,1,2,3,2,2,3,3,3,0,1,2,1,0,0,3,2,2,1,2,3,0,0,0,1,2],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,0,background crate:2,\nbackground crate target:3,1,0,0,1,1,\nbackground player target:4,3,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n",0,"1645546672241.5308"] + ], + [ + "[testing for recording through level-changes B] Simple Block asdfsadf Game", + ["title Simple Block Pushing Game\nauthor David Skinner\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\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[ > 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\n",[2,1,0,3,3,2,1,3,3,2,1,0,1,1,2,2,3,0,1,0,3,0,0,1,2,3,2,2,3,3,0,1,2,1,0,0],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,0,background crate:2,\nbackground target:3,1,0,0,1,background player:4,\nbackground crate target:5,5,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n",0,"1645546774769.8335"] + ], + +[ + "[testing for recording through level-changes C] Don't asdlet your goals slip away", + ["title Don't let your goals slip away\nauthor increpare [riff on david skinner's levels]\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\nbackground_color green\n\n\ncolor_palette 2\n========\nOBJECTS\n========\n\nBackground\nGREEN green\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nblack\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nDARKBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nlightgray lightgray lightgray lightgray\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange\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\nobstacle = crate or wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 78774307\ntarget move 81495507\nendlevel 52446100\nstartgame 73236703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n( [ > player | wall ] -> cancel )\n[ > player | crate | obstacle ] -> cancel\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > player | target ] -> [ > player | > target ] \n[ > target | target ] -> [ > target | > target ]\n[ > target | wall ] -> [ target | wall ]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 8\n\n(funny therefore good)\n####..\n#o*#..\n#..###\n#....#\n#.o*.#\n#.p###\n####..\n\n(meh)\n( ####.. )\n( #.o#.. )\n( #..### )\n( #o...# )\n( #*.*.# )\n( #.p### )\n( ####.. )\n\n\n\n(p. good!)\n..####...\n###..####\n#....*o.#\n#.#..#.o#\n#..*.#p.#\n#########\n\n( (Easy but funny) )\n( ###### )\n( #.*..# )\n( #.#.*# )\n( #....# )\n( #p*o.# )\n( #.oo.# )\n( ###### )\n\n\nmessage level 3 of 8\n\n(not bad)\n######\n##o..#\n#.#oo#\n#.*..#\n#.*..#\n#p*..#\n######\n\nmessage level 4 of 8\n\n########\n#...*..#\n#.o#.@p#\n#..*...#\n#####.o#\n....####\n\nmessage level 5 of 8\n\n\n\n(decent!)\n#####.\n#.*.##\n#.o.p#\n##.o.#\n.##.*#\n..##.#\n...###\n\nmessage level 6 of 8\n\n(fine right?)\n......###.\n#######o##\n#...*o...#\n#.#.#.#.##\n#.p.*...#.\n#########.\n\nmessage level 7 of 8\n(no idea. damnit spoiled but also ok.)\n####..\n#..#..\n#.*###\n#..*p#\n#..o.#\n#o.###\n####..\n\n\n\nmessage level 8 of 8\n(Tricky but also decent? involves fun manipulations)\n#######\n#..#..#\n#.o*o.#\n#.*p*##\n#.o*o.#\n#..#..#\n#######\n\n\nmessage Congratulations! You didn't let your goals run away from you.\n\n(transform\n\n[player]->[]\n[target]->[]\n[crate]->[]\n\nchoose 2 [] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player ] -> [ target ] \n\n)\n\n",[0,0,0,2,3,3,2,1,1,1,2,1,0,0,0],"background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,0,1,\n1,0,0,0,background crate:2,1,1,0,0,\n0,0,1,1,1,2,1,1,1,\n0,1,background target:3,0,background player:4,1,0,1,0,\n3,0,1,0,1,1,1,1,1,\n",1,"1645546878695.2927"] + ], ]; From 0b65fca713794cadc4ed5b3b138a8a4bd727c27b Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Tue, 22 Feb 2022 18:20:55 +0100 Subject: [PATCH 021/122] fixes #830 --- src/Documentation/css/bootstrap-theme.css | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Documentation/css/bootstrap-theme.css b/src/Documentation/css/bootstrap-theme.css index 76cdc439b..654d4d3bc 100644 --- a/src/Documentation/css/bootstrap-theme.css +++ b/src/Documentation/css/bootstrap-theme.css @@ -15,3 +15,10 @@ dt { margin-bottom:10px; /* background-color:lightgray;*/ } + +:target { + display: block; + position: relative; + top: -50px; + visibility: hidden; +} \ No newline at end of file From 4d9d524223ab1148114b71b29469086e68678ae7 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 23 Feb 2022 01:19:53 +0100 Subject: [PATCH 022/122] fixes #833 --- src/Gallery/gifs/Lightdown.gif | Bin 0 -> 106095 bytes src/Gallery/gifs/caramel.gif | Bin 0 -> 165587 bytes src/Gallery/gifs/longhaul.gif | Bin 0 -> 52041 bytes src/Gallery/gifs/teleportgun.gif | Bin 0 -> 308754 bytes src/Gallery/gifs/treestar.gif | Bin 0 -> 818885 bytes src/games_dat.js | 35 +++++++++++++++++++++++++++++++ 6 files changed, 35 insertions(+) create mode 100644 src/Gallery/gifs/Lightdown.gif create mode 100644 src/Gallery/gifs/caramel.gif create mode 100644 src/Gallery/gifs/longhaul.gif create mode 100644 src/Gallery/gifs/teleportgun.gif create mode 100644 src/Gallery/gifs/treestar.gif diff --git a/src/Gallery/gifs/Lightdown.gif b/src/Gallery/gifs/Lightdown.gif new file mode 100644 index 0000000000000000000000000000000000000000..83c807784941fdfd76e35ab50f8e07326ef7ec32 GIT binary patch literal 106095 zcmeFaS5Om-->oaJg<`J|1eBr_MFlAV6<;e&#YPn@D3E}F^n?;1fi%)XdPpFlB&eXE zKtM!6CBcG%Kmq~^(p3aR5)?T6_c?Rsn>ll4_BXRH_Us`yxkxgT%RG73Z!Krn(?EwC zZffaj6U+YdSXfxd$;nAeOEX+peeTrdODB$;sQQzvyr`LfVC$;0%yQ8Op^MeLf72uJCHRSrr;jin6}R1W z$GUEE5}dQq%ALhQR7wW zQ-@Y*U45f8ypc{+GvVn~J{))*zSh0%46Q8W9`nRC!kO9fk$l0WyT~^Vs9Mak zH5F;xyD>NS&CTBVCagg8x1UY6iX>i79aSuZd?9kEi*`MEg8+*q$)t;K3p?&NL2Tp|S^qBWtaXrm= zt*AGB!}08$r&e3*P!KCmi}Ji{FQD{pZ)0bCIlG+>>P7WJhi;%v)(!{4rdgoR8EysA zzRdlDa(|rl59gbi_M!Rxq#qM<CTbqHinir=AZr9l%~ryj4Iw z9V{*&+r$H&G4=4SahI@E!Xs}qud$c#T@%W*8_giP>_pr?b zT}xL*yCgi(ZPl1}mBcgbhh*5m@ki=F$sX^TACu6c@|mVX`)dW_yOBYEk%QxPK`ZzE ztkHVq{?ljGIPyTI*8XJA2H_F^{(GA|&P3f@9&)?wmEM&#`HjKpx1(dna_&X@&D{TH z?QL1NcPhZV`F6R7RqwqRcZczB2i=Y=?0t0N*!u8a*@gP|V_)zszsEj(c*OFtsO_v} z+y}4q__+3?k#DEpT}@4ikq0)PiC66B<9|1WmZn5^MIhEBeA?1{w(@y=@7u`vp2W)6 z3B6zD*D4>u*I&K;1=)**^cC%Urz{{GjR1Y6w7NnE0}# zW9w3W)p{%(@_ir2{W-nnXwi`upAdt!(lgh%hko~WaYXmJqr(o(-lh<3lusHwKFti) z^``tCbswFdRkCyDUbG!O`*3~ePc8l{Wx~J9=9^Q$Ui{qH(($jx?hQA)?)J|AFg?1a zg_yS0=K8X+AgUVkXNH+x+TGcGCc?+cc$5UU%J{N8X!yh~HVNbMHIL8LIlisu1=jn`hUG$L!#)Bg z>(-V)&FAQsq`W9>mn%&-?4Q$Hv1CLfZs+4iF2^0qCI~xCj5m54H|{R^fDONO#;{SN z(Yo*h33k$CXBOzyF?JE5?jKkE6J;`E!OGMP_4yBNRE@;gNzC4Up~iMi{R`HwvkQJn z&EL9cpEr=wk}?WR;>0K2LtoNY)fcP|0=y=?nIwzf^snqHYMj&9?DgcYp=p-P?eQ|| z(dJJ^Rtb`~R}(3Rin9X`_EXPJouP7Gr8K08+SQ^Ck?pF)1)_cq&sKi~fLg(>L1Ek+43X8yoQV+JqnRC6N9AZ~iy1{^F{a&;a_suV3HDnp4)F z^g2KcJA8A^{u!xdymeRn-!6mwii7{Q->yKexn@$N-Q++oBXGF4_V-sx?F+5u*&$<& z)(H+xL9j{8+c(#Cd9!5R@1om=*YvGPVm2>BPH{%2KOfjEc^^9epmc-f;4^E-cgUWy z6t(ah$M_B}+*_tZHr?{kAa+Z2-=nB&)5FK^N6tw>rHH{jrf%pVtMz1`VTHu|5hiM1-iWN2l!-ow|}|9>chM5k)rzn zXU6C!psS{Nthw8U_M9%r(}VPvbKh_BIo&N4Wzp}uuSF*K9aogxVQ1-&nKP1%RP>pO zFGoU;*Kt05p~nOchYuy)?0P%rG+mZ}4@mlp%>9iGcZ6qsx{ZzP^5;{+Cp3-x zyG8BF($bpi*aT&(X#(V%-?>TlA-}J$3{+h<_r6^p`#Tif4}CWAaYAkNk^b%HpfAHC z%7~4Jx;Yk!vb#ocm_LVyd{93=Z2sY2&?xV=8LDimAxxpO^dG3TJqTY}@*U2x`$k$R zDL&EIwbw{rk$5-ha#zWCmg%{1tX^X6NXhU1-vK{1%vrC4b&HRV@`$l*VIDZ)pSp8JR4T}*D;~9^zfu9tyX;7 zW8%3RtZMhMlxriSiH&y+MoZVHd>e2`>MM1syPx`W$Ub#eOn5PaZXOu#pEvO47aAyE zh8!6;?Ntmcl&c!A#neceA;bMo|5WouQ{>3xpYA*U{0y1@F;og;W!e21L7ks)zBEz< zsyunV^yAs(kd5_2Fun;SFC(p!aW47P#i(i%yzV!FT#>Gy)}>05f!$+pW>5Yd|S# z8#2Z_U~`OQE3=947E*-#2ZFp7ltNh~=xhl3AR3!vhTRKE z@pnOmGqFSs%eVQw}&}>N-$uz!W=Qp`(nquvUm7WU3{~yS7iU~$Ueuyo(Iq-fwapQv>TM>>6-0_p#c>%EeZAd;&*qT zpHyzb%@7Kt%ir&FPk5zG?6R>iL08{sPo^6`Lqx<$jZyy&>~Fg#0!C5;zeElWp<8NbxwPWMU5)Q zf7H^~k=H51KS35;t!6LRE#yq*TPovkyY0CdntukHZ|GR$Zee#;cY8!))(dc zN$7N`yr>%B?`@G|GMg7)EJEuRVJ&j!St4>%Zk(H#He2{WA!<>H(%9m+Kmt>%n5Rq7 zQZGJVZHElysHy#bDJp%Drv6{-S|X|?qFN%VC8Am)swJZOFGTgpE9k+)+WQixLv{7> z@#(RiB`@E+@L%uf{b=*AFxBbyf>GGa&?YFoacdvddt31=)U6Mv)OUn~0l0WJ{h#T8;^}8LT=5kYM=)m@?`3ICw z>(*vx_$K*$Ge~%%Q&EcC`ZqwU>tKU^L@7q-*RwGDBM*BEbXDKt=9ne(MMHQL_IvgF z<@OBg?OsvXp_=|mFZs)imDYs*Ltl-x6^&yl(b3e3TXR=+WS1hMx8?cw6?#JJ{eq*= zaZj!pjcY%{Xj;z`J@y8gkJ-KQUw4nP<8RPWMD5J`s(!b!HkWkTiP6lnJ-y ze0I0*d=vBP5vS|#ZjU;L+_w#JT$caX#Zq4+_=*RSmWIf3)w}f}jJo@4 z0;8QxdOq(1GUtyR{E=pSrH}AXY1%Nyq3|6$+s|oAkG-7~ojN>N26K3SnfC*_xu$3P z4u@xP`|e-D8d+FlV7TUT~P6%nCb$A%7k@aXw$R?2QaADPgu`g23w zJ>cETZGRM-1L8|-4u8|wap+!KsPEmIzMt&X_rJ09pDsOmFyuu^rx9-Wg@1Bv-?PE@j-gSqX0F7NQyXKTvW{$L`@BiB|1XGo)cbd%d z{>$x$%{)NGoNS%%+|zQxi80D^JT8f}7*93$>ohZ~98k=C4B@L__o39nq06))*i<8IAS6|N*o*5Nzx#P=%0OCy{lyVe*lL%w zwV*U@blSV3^i_{f#?JTy(CM0H@a~hTHUsIs9mcaO(u{RZ9|SoM4sJomyRMja+apaI zdEs5_9J3J^leQ5N@)4n@L^u^B?6J={T&Z&!7`w$~<0WSDac1g%;CZh{v2Ieh_Jz#x z->HS$+zz2(x)(C9i|z!vWW;aGOhF+pZOss%GKYrFUGX{Z0y)23gtB)zcutODd_lUc zMEwiOjDf)CeKmH#hvPD;GVUg1qJ2<)qLcm*WR%Xb#eZXArYT65JFy^m)BxJpDt0y) zcHA`8Rs>aUOV1ZU{;5Kl_@vExW4AHU2>Y~Td3yOUcApvMgYza&DH5oYRtv$dSe0cX z%Bs^zJ*~mnGoi>fONK^`( zWdhBEMe{SKxpvU5vcT6h;ny7Kx6J9mn%Vv=dMKE7+aXqchOQ;bj%HkptJ- zoBPT)_Q@iZfjMtnxeqjf$`jTZ+DWM{Ijc3vF7v3IUHuNNvYbgYr9+dKJe1Sr$}96B zo1^206{(Nnc;Cf@Q2_iKfN!+XzaPvWQ2~3!d==AnPGZt)jm=%j54O&o@y%7a?&+BH zG?4I~#OJOZ<^6LjHvpcy0Jc@rHPNx4gq7#nx8$YC?RPdA89ClTUJ@8a3r?Hz+ClsF zIwp5Ya8$ ziNz_!cj=)ylF_@J=b`tuH1R7&`Bi@RnnrV{Fyd*z{Tv@Vp&Rf2!7_vY zDz}!fY)N!2iLNElwIsThMA!eX=<0b_K5(!#WXRj+)fW%Rz?B~n0NuSKi!7Fw6v4Q+ zUH;jKA$cFPFTvhDAOPR-;O$v%yg2r1TSfbwv4D$7i+nXrPwIW`)` z!202p6R5Li`ZTpmpa0pkKTB=(%`}`JW#jwK*qdJ&e{pd4IEAGvGOYpDob}3Pw65+wkl^sz+@NfpHDMDx{%V`F z?NoV&OmD!pPW(3a@xh>vv_&Gfw|&(3ok>+^ZJqSjACm%UHD7wwJ>yng@anH`Q#iUuDI z`RhMEy_^~L#A)sQ$A1U48li15@l%ob@T=Fft8PE%#g<6^2F*A5J$-leXQ!b1(d`&{ z_@{FZDo^+ig#AhQgtx4`ua6&d8|tWVcF>J1uZsA0#x1Nq^IO@%?T06yTK3Wh5^B|) z?BH4Py|*eV#Xl{b>I8>cL{^izY&?$CI~ zjJO$fNcFNgputIr$8qkN3R8c4@)y9l<>*sRfvNqQH?@7)59Vv+j zE>BJFM_uUZ@pj7cYWZ7!X~k?yzp>}44p#70{auTYQ$ALUn-i3JKUdMqz?aN ze_^W&9B~8AWk4UA!uMCD>zYCIT2fPo;>|=UBzuG{I`POVn|-3lr~;_oFyddAROfgE zzXc+~XQUfC;q%s*;MVAsXvo}d^t`okI=%>&>SMj8GCCZD zHts-NKY<1?Gi=Zpf|(6=`1~~{7|pb!OH&1))hYPd`MW0)ULQH3a5e2u}jvC$N2_2Hi;0K?YK9WQr@F27VPm=3|za9 z(Hkb-#@qIj3%*5(m!t4~qO`9*gnpl-VJ6{oB|+Ii_%VEWREHR`mGDcMQ6Ep7)F95H zi7oBKd3pFUD1Hh^+M&d)GDo4wBsKGhHBeIdZ_)+{X%iH#;Y$WX2s$ItDvoIfPi`{TNE4#QtiZC9Jk@u2dPqjF~)Y_%-3*Er@D1DN+@T&XLjS;4b6 z${A^AVpPm+*c=P9zzXm_J>87Lg1o)a0(TL2m+s!Zp*ZtdfwYC2<0{ya$T1wvk&Wcx zMVQD>abR)zV_WYB^r||t-o+$rPZ_;*>Q8qUFCrP0 z{C(fh?9tkF(`^2Qu_SHHw&|-00XtmzcJ{-YRN|OQe&f45li@uzzEJ#LgP&J6nkDZ{ zRmSp;EaNjAdmGoyek3`4=QST14Ju81u;6cB>hX8z(*EDVg(Fj58Ky)15wis+pn1R6 z)dWSCe(Y|2I&*Gjt~I9NZ|R|hUypbE-eo(_fBj{B&mVQqr^%Gk@DG<$2RiJX6gQBn zE73cI504%hkDC7@I*~fPdVkI51`kL@m%*5zApU`NY?*iD=h&oq=Y)SdJXe~*)X@-* zX&MG~K4->L6O@W~4!=Ki{?1IwX4?cE4LH&}X^Ts;jVI*D(8UePxLw2PrjT@FCPZs7 zB`i&iM#1B?)2E9rTY?Zf&OK3kHIT$rI_K?8;pRGNQ3WugV;LV3l1a!d=h3Mb zs$fLp$kmX{g%D^EG74s&VaSYDXQbb&$S4wK+PJ`$DKky9kuBP&i)K+4>Ie`dBT9&z zHBGmw3Y!V`_0mCaA4bM$p!|V|`7^7KY4XfN=s-W|N9~dUM1N(49agJxP)9IXD90OUjfXQLc=4LCh=}>HQ#+sL6aSMH5vS z+LiD`D65glWJBp(2eR63R+cI-U$(Qi9>Vy|x(zT{yxX{>frrbCN@a{^@ocq=oc#b6 zR$^Z5K>gj$c@%Al8}X}x?x=&3+jn!Z6z)}NvEeZ(-^=KwjZ_FW1E zt1F&6_T21=fa}}OpdRDBxxqP(;9>H3^$$7D{XDc9|Ij~NuM>RO4ZhrvpJLAY{G8wa zh3~gKx6Ls36r6ua$WKYnT_MQzzM0$fCHI@ccGK+kEpEBrp?MF8V;b}0ofWU=~4VWdF#5K6c?)4%(kj|IdT@=~f$&*yEW7BHOVMYHUBc}CB_diPq9r0)BBCWCS|Xw)BKkkU z3oQ}R5)u8cBO)n0^yT%p<)|PC*z;gI5$!|Pfn;i6yepzH*=U*+!5H>qF=JEFn4IBM zzC3ErZtPsg4KWD4>tJTfAV$bU7AW1n51}4{u(yXZ18+Ja9%jYLu~*E{XeLSmf!4_r zK3Cu-PUCLL!+x0}Q$Ufm%J{dylqM!#uL`f~z~@15I1v7&3;wGp<=slWO+P*ZgbM=_ zTFq|Hm_|G?BT~?WDW5Er3vottV_GBhk376>m^cI?O=yr7G>CIj;yn>@tt&}=g!B|m zT#q4bbU@3LxF0_5>vS@5MWhkw7KqZOzG~Ah)@|(&@>WgUO;N;N@jO1firn>zV4@=H zg6?b(W8S&g02hy;BwNg(AV&=OunbR_pq`7NSXgEADkw(atWqh)N|qragFH2_aL`y^ zS9qmQ_7+y$6<4f2fOJihw#GaQo=LkP#)e2pha~8`%*4e3;~}Nji8;?@oHOcK z5(%hLVG*fd7sxVeMz|zQR-S5i{Ydunc~FEsCC3e8_vJL8#}_sZVLfwQ%3yu+0|-fXZC2S8OxK(piugf0g8XQ*c+h?NryjJ_9gX z?P#EuXtNxvv(e9FZ75$8%hRsr`%UF;i_TlKcs^9kWfkVG9L+m^DGz2Sun4u?+o?U` z%a?-$l}N!dzZ?`G2QKH$s<_K#!sDYthgsfb8EP@7y(%>SDVX<4miJMX55eR!B_;A%XcRZJ9-ydQ<;`z&|$0w<}G3$ zL+21pX-D+2&vC&-n%NhiF+%wP7IPQBYVUpKVU7zn4`f~Ha_F(>KfuKHu`OtYB~h^{ zMv2vny%AMeDe8wM8rVHd#IH?R-Hj;F@SgW(8PR5Fh%v4Kfoq*HYXe?v8OGf$$34)% zHH+{R5TPH08*(93NeN@38+F5kk7z=z8L?4=$O92eq{K22u@FuCu0eWfMw+M!RDno; zT!@XQNN+?WH4JIFCV8bfSzQsP$--8w43pnnf^B|IZtf=y zh$y?o^SFH~!V@5}?I3kpgK7t*tWjC)WZgD#C9fBg*G^DHt<;uFltbp!<0^`q0_Cd6 zzE_1+ptFsjTdb$>mcD2ah_)JvioJ|>14BLLizJxQx4P2z32D2cvmC^9 zfF>gx%-AfW(?N9an-L~c2#g$;zLkl|kH`?GBgJ068qBQ4z92K?=V>Nf5w%EB*}g2i z49}7=-wiNx#MEc27Ju(kg)&xw3Qjj?Y0%lY1TbbXX*X$EY99EI1ulnLZj;{-VN4&X zGBEL+N;>C$AFJdPd(9;0v}U*zu(L@<`P|N(ncxb*k+rJbA641y^XA-dr@2p}5szQx z3{r9mB{^Swm_0H*6bscNF~Cjc41jGHiE3QTdp}|`ig;X=#!BSu@|xA|E&^BmsEG zEI6)y-2F}0jf(Xg*r|7+c$~`~H$Tpq#QbyBCZ3KcGN!=zV7`WK0beF4@fG+TEXV=h zxrbqeH5DF@5iI;ubc^jDQ!G%96tXZyC{a<8E?;-sXi>JNNNy%V6brk8MMR9q7h90k zxp7G{ElH*&$+RSymL$`XWLlC;OOk0RcDEF}`>(M(2sp9|ox3}b$c)pagQ(JsTDwf= z3z>a|m|YEs%s~v?Ha%|`y{MfE%rHeRm_^Bid4#$T!UjpT!l+#WWCeCfqdK>n5gg0 zsc)58ixkxk3~QC5deO-(Ox!0O`~(v{4#DNf@%8bkGay3CZsJ2JQ3@iGU5Hav_yre| zI+!$oCao5eR2oE0R_qszh|MbZtr)w)gF4!p;p;^BO(R)rSgD&@$QotjKm;men7Ede zX~LqsQIeFvd6ZrYvet*V%mIy-!ggZtt@e}w?a1AL>z1tBvp~{ea|*#K`|#%MXNB23 zuj~#fjg5Ph$Tf}TeCYEp}VS$jgV*Sw-JhiMg6*dPTlM3X*mO22}kffuzC zMmJwXC=q#yK#VdMMy`kv0*?vf?K2DmWjD}EbyXpf~e?i^U$yk*&dpT+a-(W zmg(U%*)PS+esev=h~HqmaXp68)y~^H$vX$NS!5<$U(OS=?DqgOl`C%=Y%}8kSP=6r z$@pKu`&L#Pt9NG4VN6$J_0@`PCjmwq9St^H*eqx3XfN6(w(WMTj=tN@9ig^{quRz= zeD@eZ3RwW?wA~tNxX(}U0>aY;?f&H|#ItgrQ-n5}!Ru#tJ5}@Bx8(yZa%v@X3{*HG z%k6c|v9n-bw$4up;VGo~m$3N_=GeQe0=XjfGoYY-q+nLX>NGF>&!plMqD6=AA$tS`?VF7y7@zF_`&6j{en(;=Tr^3+>@%*r#OBOr+t_N8 z>_ka;8Fa@ZUs#5cejmf;N$9yU7M8+cgTw0qW-rWH92q-sgmd4BMpqC@R2)xdWP%tM zP;d4`d6Dbez>Lnzd85WT-k%et#;d=;aX-PkbAxwCz@b99kb0gxo#!Ux1sU@DkMU!m zoUwHNsXm_CEB@y%{1yM?KGft#9?$Jl*#6_EuT{)PC~})7a#w{$YJ~2V$%yZE<<*h% zT05eiD7eS^@>J@A4k+8$EhpbR@QsWv5DSVOGEo@DJ4wz_pD;^5y5Vub7O)@{%4*OQ zu6DHj?Yix7F=-WDcwHhqu9c@=oPSAX4PfL-!ISW zQhwtg-L#W)Q@8Lvu&|AV_8KkRqg9k#RS?lsm|#|9g)Ka)#fs3~@ITtcmul>m_L`RV znwIvOmiC&K_L~0Z_L`P*cmEsb?kpi~O{3tBD=!KL&p(X|AHQXq*t==dzQ?jNL4kL5 zLI2d**LBa0BgVSEtR^a-UE|&nc>aCg5d8C{X<1Zyyic+@^nT;K?Yig;2KS5f6{O+X z{Y~U9R-Y*m{kmgr%tOl|%XuJ7cJT)|c7|DUr@i9D2a9H=$ETrV3-KXY0pCUJ7k6D` zRdrA&pTaACRovC4FiJO&9Y& zeqT0J-SdSo>EC|jdqB?UyCJ7&#(aQS|jHRqI^%1+u(?$^`Ch6nh9viP&x21vMxPG%b~wU>JKl^C zvsE<-PQQse67x`}m1*9o-}uDuzn$mj1`|T3hw5O%UHngX)l%I&ljpos@k6l3Um>>> z5EKygNRXp1yhjx>h4m8v=>3PYzAEwOYsftvv*2oG3v- zD>|UzGwGt|TQ(>YDX$U_NYna;(&nDSUnd~;>*yrW;P6ujCzq668bOKP`|jFZC|YN&LLstitLe8@ohAr1H*bmmM^`ijQ%-}wmj$5DGOAPz7Rw#~#xSEkgV zd_tN2zg{K8=%5}CBG+2Q7@47VG@|s>QAcJ{xii4|N#u3A7s$}lXyX`Eq9_Flam4t5 zvotc(rHB-H6w@Udu0+=cqFvF5#qRN`ZCG_BDoKPvn4xhRk(O0~46cY*Mb1Y>aVE()zfQqo9+9;y!pw!((6i1c2gM#WUrT(iRA9u)h&%>Qw z^e)WolM2ci#by^-_674rt73huDts`QW)tKWD571L-U=9@(JI4y&FRK@w=aTF!79(| zV(jut`V|Fzp9c00l#U;!XL&JFYy)nH8HLB`DI<(176uH(x=&ihYl2;e;K6XF(FbIV zn2v&4-gadQeUQ@QteDJ5GMIU+k9n;q0wT`7{0}=AeJcoHRLII~-^NTYW8c&WF2R^S z&`c`;aw0EsP{aOWuwk_pLw-E||Z*`YVbv(j4-> zdF8zXr>{w5#j02vW|@1O1r)Gg8y0I^&HNX_vz%pY(#>7R&OK-$xGT?1-z7A3WLA#k z!F@CILxo2i^JhnFW?T<|!~z~B|Cwe4z>jfOOUTeHSn%Z?#}+t--Z?x=_pj!F%JUa4 z7F+=p++gRspD3K&v_w2h3$;rNwMz@NOAED23$_29h1wp%t@@zQu&CAk&kScCudnTj zp@zxpi{m8-PKk0bB%s~EE~+yiSH0%7|2IebC!VUk35cw#`J#j;-@+qh?N^>En>vsm z3c6B=lUIZ7DkJ~o>`xxsUcD?Uzb@U9m%h^C*~%pPvrVx-!>4L|H5cL~@kdHCW3GH! z_z~Zrx9%b8?CQWZb&sFzvYS8{Ke@4D&rD5``$O!_LxG)5%4Zu49t=g`ZqCjs8xCK6 zNJ!WFy1D__;J>GgG#7St*&c=T>#68=-kKooql6}X-ouE3tN~5FTo&Lo$(Y_2Y#9Q0 zrKo*4Pb1sVEd7h&G zi#vYhYt(6wU+TH=+|rr>$v($Mj~|ggEV_rx?5kT>!=}9Ip2!b5SLd8EikXM&zgIgO z*V?hqkhg+A-Gt+T*_* z#+!|wacAWY#Sbq>~nORCvV>I6R(sFs?rt~y)VOnvB;Xe?lt9M%cAk6Dy z+CoD5mggz$2P5KUBK0&PR~<`F4@#Fb8Uf_cFWTuH>Z$9hU=!M>F_oJ^>IYxjBXrG@ zJwqTBm5cW=ur9O=fEcI595M)(rN< zJK~fGk>Z?refWGJB;j8(#CB=s&W`vnQHF;yDx3+oN`URI+;XI9YXmy;j#<=X}u1htTO;Gfy*-*U&LHn5jV^4173AJOjUrI_Oz-p2Wfn*5)GE6)F0b@^&^Fq2Zhb zPsnOwVjov#RYBm1Ls&ur<~0P@HWT|;Bk9`Kj8vsN8iId2jBgg95S8c_7j!wAz>?$p z7R%~B65f~*kE;`A<=!*SME+$05<-ZbNz_rt@776(t-^oMz#ueynlIU|Q<$#NA*;=7 z-{Nq17liC=P1co=F0_(mRPs(=BRvPo_Fa_S0K;7@%55}dugYzMYMvtMr&v2&Y`Q=_ z2%rKrsrC};$^xnrn7R#+Em@I$a^&J^Xm&_;wi`IcwKY596!p9ViDyM~QBb`UQ9dl1 z+bMv*n07)%do)Z7bf8l&(1Tezpb`8n3H>>Q9-*R#0vOC0a;z_|D2lNa%t#y|LlulR zxlP&#!^43&{VE$N!=hQtX&pLFjK88{K9DjfVkUX<%*d6+R1q&qSVJFDc$l5J0CsT| zGheo450t$E$S58`AtPSparcZJ-)E{Gx|=i^Ak#5{!ajFr<8obzIk+vCfH(e0o>-s0_2=ZJMW z5czp=zjhO0cPsBJ)Ob{t6B)yM4+syA=J%t?e@1kg0VeY!ME-I9@=*SSggYhXCrJ4t zlH4{HUnnOAyX;z7jcweTOGfc@Eb_)=cI(_YcO@o(S?p7Iu0g0^Czdahy`>;xmKv%nOmGx# zbSv`4THJ6f3~b5|?<}fc#xC-!5^8l?yg=tzCyK7HMNf=KYyI-ZCHYCZVx^hAaj}rt zWMs<5zZMAYI2JLr(zkSqy1-eCP+?YQj>rwG-6X*37FieQCWfNL7?}MxFB|6^UpLq9$&pkQYa#|*CRNSv| zEM{rp!rVeiitjhO-TUIo{lG5f&`a8j^EaZnJ+mbbs>AwROA4Dx-j0;CX_b6n1ulj9 zmO_0?p}wV1-%_Y=Db)Ah3H6n(`d#k(>$d7mhX49)UZrc^jzI-??+z}`F|GFe@s~Gt zezc^iy77B>L{?Tn(tO3^D$gwt7PiMP(Yx~V$C4Py4xZl)a}=Qu~$DInJb0L#;%Vz7CZ}p|4d`Rd;dI5xTITg;O&+-Jq^37 zp6@0c;2po`yPhh)zyEh+>!^Fbw}4p_@?=7~yP;2U{Pz=cgL?$V>weus+Po7LR-~vi z6(~VPz2%SFl%XqMmv09Mx2%iyYkd|w<;JK&oI+T#r!kYhH{bYKdicCaSm(uk{YSR` zwdzCc)w1;I!=O`s?3M}3SWK_Yh!v{3Ip^vl(OUP>BgD>%^H*(S0r&g7ie}sT-u}wF zp%1Q)(0z{%p2|ELKAN^E>19cc6AmaLJmBPnqhO^N)Jfhj5eWc=G_4<_HaQn_4*mMHni@qGz z>!*P2uDX-22Z3h~w-fKHW?_%i5k2OAi)0O-yuLk&O z{X1w*s^mvdN75&^ItVO}7rm}@`I;&Rn9`&_H5bQKvCSpFZY6flgot)6}X`msh3DcO*QTN(l*t3_leEj)B~qRlp8%@PzX z=$Q%h;@;Eu1jKo1h9&x7-il>uFeIp>|k9!7J0QZ$ZZiJP#Wt*{H)F)9=)jEU{9 z+|1B8jD#3J5TzT+QFk8NSdKNwbP7ZB~AdU2nR3}37TrFf(Ld` zS71p0%CM)+Nq0U_+yRsx2)RI+jjbfYTxfGQXeu<#SCPR4()?uy{lMfKzO<_t=tW<8 z6_Cy;qMuihz!-Xjg7#9IVducuFQ&Reai<-!&7o8Xm=LE)KjuJ%Ii$xxnYKF2DF{6Q zL&2FdFSs(@%(G3wjFSLXmpY!QVz4DF7X>SGgn~7X;)`*GD%Kg_1I99FF(zqUB{gG) zO;Ko{bLBWWFt15CRV)rw#vv*=&xe>S1*={`cqm~!g|Kgnp=;$Fk!wt&F9-X9-Rgi( zG-uQ1!AyoLD_KD;FwbEFc-}JZQE^T$m^Cz#^BP0@Dxnptc(=^ClL~r=nD}CZMFR5{ z%~qBRZSmgBQyuE ztDCA*%v~74Y}OTwnA6vrK>%2RmLzVc1r??(+&4<-w#(S-Ca?_^E;}tOmuxMm68>N8 zz13gSfBgS#Qx+jGN)eRPoPHsZ1HNkLD?0s~FL@nrJFK#@BpmGi;`Ig|cQX0WbtVQ6#?!*k{ zvJFOo77S6BLaYK-dV)*NvQ_e1J=wTa5 zNCc0J@x#g<3~2;drOZUqV6H-xkY+q8Uk_A$WzO^F5&li6(xQ~5Sr?fG;CFzf7z(z6 z8N+$5M%J2mUIkx5!5l=_s1AURDR}yNMIj{R!Vq5P5~*NNQikALI$cegs>L%C_z1Pa zSlsftTF2=^0>V1*N^Tl;9p?bV?o)6Qyi!s}d2FpUw^Zuv>gwC4>t$FfZm86A9o0V3 z$M;T^t{}mC3WLp!{cA^@L%!pU-9r?@$g^q@c*iK_>Wls5$pdtVwGTe5dOu0v+7J|f!kQu z)vj?l+7ks(2+N1i{S~M1&Gf4AiH(T88(V6Qk=1!Kqw)uhu4&uJt%pAt+-QNC9V^~O zklBr4+VYOaUN!w;xTw^WHYrnlCZ=e zePkv7w{GJD{Wu|V9UD10apzsGqU_g|&q7t(k&l)n~tyz>QTl6`l=ml31&VGwg z^T?y-sB>b`#k*0L>!Q^)LB9{8IUQr%mmts6YEc?s~d#TkGi zpWxy=yW+;a$LTZ11KgslbRu6n#Sccu^Xu4HD8+f>pf;8XcAx~t)hGxkK5Q~7>U@IP z+3;_o;q+7P#fz#}h=SXiLobSkRsBiWWD9E_f#tfwqD4ac`oiH<-^7;xz8}CB#vw^c z2rR?v3NZu>g+R0**kj=s#l%62@chXzPewRS6plR)O~snRWADCb_P*Za^>!8b`2oni zA5`1_08o(>*b?*sC)-8!?O_D>p`^zwJtz8Kj8Y#AGeST*L0FyS?;vnD$oI~o>q7+l5xxi>kV9hGx4=T-ZMUvj1 zR-=h{1p{6{r(9zKck0NnuE9LC5*f)!U4iN2+yOjH$(ojGZ?scqaVdgUV6#cODF0d- zA48@*87MrJ0a#0Bvr1=`&Aeq5_{cq@dL+fSF|{*VacA{4HyWG^%haz+XKl`S1`vLZ z_vpcqnGOcjyvb#K-Nd|oY1Zu1Ld48ZUqEa$L({A3$X* zr*Oj2-e`29E_zN(tw1I`+v(ssD@B2?nh~odbXWmv0u0&&+ z7cp!h87|n=^I*&!a;70VgUu0r$1$smDOX2O?vrjH1PuS!lKq+vz#Qfz*OumE)=)hI zsR2UB0WfO93Nkf?v|Y=K(k3C;>BM?ff0!hyi7L9mC!bm`Gl@pVXniB<6vO3Dy8 z`{7{jGfJ5{q*Mh{YRX)eCsy7`4%r3xH3G!GW<=U!3KeJ>E*>H;fl*G7vh#{%<0BI6 z9%XOH72g3;?h*w=c+p*OkX-;)lG(@3x*|;P4n1NW?cqC8azpLClqlE8L< zJ=bSlx?YbMzn;xUC^RO(&(;y!)^SR^L<0mNSFdu>m?-W~++UKS_vWUWd`5ld@TDxmI$O`Qj%?vZtU29L1ROzvmB zn#br`5sCUSz4}r>ou+5~ALa&NVvWl8!Yj186Xr%gLc{KQ!z+n0A!4~dqSkh(LL;&M z1#eR-fg~M@(}OhK+^EwUs`gW9(%xv|%EdZ_Rx$C$2OpJe;hP?}7KhC=U$e&khLE71 z&2f^=R5S@Z(@Z2(8B!V_vXI|f5k5Azpsj0iHkuVrf1tP{FBmAwc@87Wo@!xBxi)0-FAE!40T)KA77o$zCh^r@C~J#xxZ-Ec#4mJTiJH7?ugAc+~A z?SRgf$FfOUWnOnrx5I<((B!4@NryT)o@?^ny2*FlgTtu`fyya9x-a|(GF+{Yd}KCf zusm2fU3C=c0?s(E%nj2;MUs)HeSeS`GF2CuCJu?|SBRr!Fpi+KOtQqpb81_X&BZYS z2gwB>p?E6<4xVW0j#hS3OC_JU9`dr zh(Z*g`08}7O)YAksptkK-w0dmfGYS(F22a@Q)U^66wi~|k*0C^r4N*}0>mWNQ}|rb zfmA0BiuipXDoot}K&uo27gfd-Deao89hPc&h&%$8r~q^BQu3;G?&wMsV>#1B)=Pha zZW?3I`4%ObkRZE^@@I_2ZcI*s5TO@{f(7LYxs~F35b564K-1}RRi<(uO1Mp5g#x5F zi^`kyPVzY+XMLbZhPjL$F2VPhhn1W81?W&D&I6}sUBCh?@?b_dOyef~acpdOv}<`2 zsw4*}fLiCq@c28g;|uj}r4ovwCGb)362Sn1W(I-pcErXh{4x`P%y=RNuLUXJI7`GG zV)MzwG73%yK`hpjFZC!?)RXL&AVv+A$xRdU4+%lmg%5!E^AnYbfQp-#3X+H0w8!0f zOuQpc)suv(Nr3PY2D<_&Ss+vyQG|b5$G#_!%=Aca`l}`=C8LKq1|E5DpI6hEYyJYU zd(+jj(*cKiZoSrcl5A=vbM=~D?S@AMb1sn`Q5`T{)W=i%T{$?>nrNtpzm2K9l8!^U z)b2uT>a2lf-H_@XkGi`@b)SKCG1hgJR`oB}LzGl%^C;D-o>l5Yq$eA}<-i7E$(m0X zJi}nUerUd;Ri&0ngMlRBekj(=v+;pSWdo-E=};qGuW=Dk$6kv)`!84Xk2e3&=Kmhr zG-3Mj$6fB&w(py4xPS9(2T3jWcIdEL_ub5kbF|wpQ{@l6QjPeIHis(d`%9f)I}U#J zUE`te>t$8G!AhO{F>*c-ayWD6hWc5yp{V1b`M(@W|KZ;1NB+qy>J@{@Fg!?$zSwQ~ z?iNa&2KS7{5Q-Qybl$Kau17G+zohIOyxX$!i&e1ICGZ7jo~8ayp#R4gMLg8hxQf3X zdsp6(AsyDmJ}nG;#<%eHnNH&!HWG|=>SYgvQS+8wdV==T;v2jrnrzG0ql`8eu64Hb z+%w;XT9lO#et_QazVnN>H7&g^*ZoMTBi&Y9d=c6Xpp6P4*_k1cHt z46l;=?EkQ)K`&Sf^Vbi2dAgGZzl`Q%S?UKq4#-M*E^H_U(Cd||%VNF!N)(RLR%jYg zs?XE8YcSBQq8E@|^keZj0R1-W*^b4nm(H?KUG2tCsVMxD{`<*|Pu1d|pg+6<$V;Pj zwGMX#M_-L=*Q~Jyq_8^Uo?`KgO!`g&Z0N;TF3L+_LyD?N{t8{#`O!OFlE?H&q1~4i z^IvPd%ABS}=f7i{7TgV@wC-bOrgMtl?P$4_WgW8ZGZj9~ycTd`Y~j>8|~<>A6?!XnAt1&eKv3 z(<1uoWDR~d6BbjgZ)}Or98$(FkuQa|P zWIKcyvJTiIg1&e>8b0hp7Cf*1<5eo?KKQOJBdEI8OI&mtY;y0aIZ4Wy=ul1QN)yPg za|^4~n(&w;-`=ka@ZNB^#%pOdJyw=?a>q%t)$+}Q2emFA=u!q=)|O+GoJOlVKRqAK zOq7iiiMh#MuKqJKzRTnFZo7zUL(Auv2GI zN6W8{Do&g_H*xT$%g!%qk!X7|J>2mjzsCPh>nQi*$+l7HQPWP(Z&%JuwlW#Y1X~<@ zKZ>`+3K{yrABxOywIUx0@zx0GnsanWSoVJ0n~Nk4I^FonO$-*CNei)kb*U?)>tTGI zT3pi0tBUAWBdvg}M%AUYm(Tii+GSC^wlDJ}MEeYz>gXs>eV22t2a0aJb(o2#FBNCV zRc3NuQT0znC>lo8gh3Zm%>Hd3v5--6?^$tthJ;_DALH5!^!E zzq}bIv0mlCs)TdgJg^uo%oo>iHQX!0Z4RpOk4T0a&E1SjX_Z@99we)#Otgd=+Yd^G`?0vIYZw_fpfSD}tS z%4n<~NOt!VCF`#XD7LC3t-MYRo!jk|$uer^kn7>Cqp80})1+@ooT#*%l~HW^aC$t; zAJ)obK`or~UglNfYh=9%$Fu+Bi2Q0Z4?x~4qdSlcppksv1bq+4pBMbIY%Y8Sd<9jP zdjudYE-bSmX|7fRQhB1bD+58!!;cCAq=}06Iz=FZ(H%4KzB9|3T;vYjU$0eZs^6Ys zWhhRhy)@VS?wSX|6HbQyG1{gU7Q+V<(QQGs8fxoD_Wtc;dT>j%+K4wcc&;=eguoI$ z@>HZ@Zs?;w=Is1fs)$N;NJQ`>Im|fJA?%Zy-V*07dNw>nD({aJsDnLX+1fZDniNK&8|gl&vcL&lJl1MIKkzPN`yGhY?9KHdz;zWMiH zI^<#bQsK|pMf;%5KJ^pUhbNzw9H_etk#uClUT;4#XH+M^=xZLJAXU4FX+)++2<-ZBBXLn*<#o~ij!w?Y+iJoroQa2?mV+?*Zs&pwa5tJC9 z<5koW6D5{pFqvqL)h(Y?6rO}Bg5u^MB(~uqJCTuj+=~9Fq;YDvTuVIBBDqH~xj+XV zL4`NDIRd$1%OF@zLgc1S;z&r;l31$MWXh-hgo6;^%qnccB7(%2lE#&Kt~uqLcxb#> z@Ec=MzoLzc|XX_dL9m8qoc-QJvej~1^!mGK`SOExa!2|PU(l=T>$uIHYq zHI>ykk@;*b3#gopL1vkg)s4{E9ZlJ`Ox%jJ?33keM}V7#RZas(rW+ueot$&aCG_<1 z=5qkjq%7z4RJIuydB+tAL1%_dAzcQtqTt9#Wt1us84rNGLZjfIoFuqM3=NeA&(5&& zKi!DSWJ03c(Wf`QXk}ypIV>H3LBLUEQ#TXAnD>?_0{j+!3eyQf>x0ttEm9Xisc*HC zOOygOD{==dliS^MTXiGKvGGjq@nrG5PUXBx*Su9wO8;{1oK9Z2rQ<^1 zL6bMOrDqu;F1QPRBRhNr<#}-nFQJot7W2Q=7SygLEe_oJJ(UDmEEqE`B*WkhYtj>s zQ^ws>-TH4I4j>#R3v-_rz2Qzx49q`snm+2AYpXvb&F{RU>vMpL6i?WI_5Wv9`!+MxUn7Cty2!SwGFzXgr zO8EbV6*Xj3d^rm*9WvHE*%*!N6%j)zzy zi3c_qZU`YifIBaql9vVaO&d(ku&$Uu7ktL&jp`<%56g3Tz!-@lC@Q~zl0O`br>_R# zdGI|}gb)a!p7Z~%jdS@;O>x&5=Ci7K-2Mw)Fm5>yDYwrrdr~exjN#L*D;vlZGa+0i z*Ou!;g*Ah-+_%d=An$Xfl#%PO!-fBu%<~cMyFNbM%wV%)4#XO!sY3Pg^~~;!5)F#g z^T~}Oj_!!q4dqS4WM1a?9lAHk2=qv-JKIt@|vxK zuuG~dgWSLO1@pGXhEabl457yKnsjN>j>EY&!TZdL^=m!F%Gy;nQ_^c+VlDn=^HUps zcGrlGaw=H|{z__>32rxNTi==_SwVw;9#Q?impjS#MtGz*9Lq9T4naz1x4C>Y%g4;>qDUFob=KMJKue0D7eKZY+m1YcZly6MYsPAofW zi4}Fr?~0G2U?$6iL=EI1g2bC)v;A#UjP%_5{C zxEGQJrzV{ORc|8&p}Y%X_K7N&bbqArox{IMQUKx$(sdizXoONHO8$SnU zWa~?Ja9NVqQavjA5+mM zPRyVXL@WE|FmBa#k4hr~lu0Z_)w*AXU3kGUHt|R>HK@f_1UJ+YsvL?u#uS!EALN28-9cjdU6E zHo6cv?blBH)%siS+G66px6n&@H8r++voc+Ofqb&v453mo{riYK*#X|Jqx(HVHkJ2# zldiUjRI%IKsBhgZA^+;=>8RWtlqKo~_GQ>V#&QdTjLAO5a>n%huP zOde^J5>oR#z5Vg#ozzT~e$dC2v9?j#mtwJArZIoC-ZX<~{dMMUc=L$1XmwbhBhS|H&L?f7&E5Az{*ylz z+Ir#LolaZfX``<8C);0DMfAODh z&Qlpw&Yk-mmCSnUcwbxn0`QZXB%yHYGW89!&n0cP&6^jc`yY{CJPW(LS;Y8q_w8P^ zU#!^Piwj0AZ#XDv(vtGUmmPF8`nvDMN>vtLz4E2_GG|RRUFGsZjn87&>{(-&jx8^1 zpwe3*k!|>$?(dfib$Ud!{G$xL>~65){yVzwpD48H$ezfk#ey(~S|wQnwnKVvX80#x z^(tlk%Gh^)(AYWX_$$9ZQd?z#0JGj)JluyVKMGDuYuqgqoC0Y`jrgbEXmex{Wg6hn z8%Z>&EW5+2J8<74BObZ;O5~yVyJsca>1AJpMDL6Dn8y2Omw1&+USk?EiSW;{tt{vD zh3lWe1RzT{o$s#o4gJSl?^tlIj3*V}c)FD8^S+z=wgy+5n}jc>!3n958gDQz9hm$4 z$mxD3li_c;9I8o5be{rHbt3GBtz9qv!E&55{Umj0c8%@DiPXD0M5^ z$;kAVEvqfUH6!)di>8Jup5$9Si{$4hQRfxVuyJ{|_VSBL*6dMeCnvGaTAfl9GKRZLDMvpiPT`Idp4^_Rkwz``ql zC{wK7*jcGYA2mF|yjt%;GP5DkY)OJC@|-yVVHOZ)Dp55E9IKDNB<7V(u<=EX$5$y- z1!iBi-5wm3ip#R}Z}f1`*Ea94&cefE#TU=zPFAtnDYcl5_7_Fm;ASt)Ejd$c|_ z=)vi-J0$f=#`7a3Aj>RA&5JHzGv41j*r3-&-*7XVF)J(!u8;V+Ipf1J-Bin2S#^=q zi_~&^-mtr+nKVe9Oa%g@G4e!Q2B3fm8JlRC~?A5(O$?WW-#t{})Km>g=inqtxR zq5Q6VA8EqH@ z4+z$zpw{_8uM>INIdF2}&1_33UE!CGy##PUY!fK}S?zohIbJ&Oq4Y}|?11Cj7SA?QiZc`*V zT^+X7)oRp%4?kB+`Lol;!KMt6vx)&1#KO>AQC)qZ0bG&4v?Ja$NA3hit@njo$3^a8 z{eCS*>Q97!ObB9ei@IVNbzUikQ7n>KC;awghG?{~o5oM= zz&a#!g8{093p%NVk}UXXD?aC_(Q|@6wTcnaV&RIYXc@&=U2c>16=(xP>~n6ADR<0N zUlhtemTn$r1&XoZ4tePYUDk^4)P`#ILk(BspTYd@<6<3*!8~FrMyqNdH@ByZ3Gt!{ zVbla-0(&efnBF58@3|Tm%&74M2J0?{4fe%LTlfgL#fex(d$(|gD@EtP!joHK7DZt9 zMd2lrewH|AGzjhtN=UGbWXHz8P(t8QVMhC~8cVhcF=&HZyoX|Bd0+G`E`$RJv9FC_ z1;uxW-DqtIA~GT#w#2re67pg3?KpUonCobNcA0k&Q z`3EcoESiE+f;PfHG}BZ?m2ri zi@df%{?^Iz0a%>2U_}mOz<4C5l}!ja8zdjDN<(%}qND&Q7c|NkmY(E}+*5+3D_>taw=34U-)c@V0Uj7GR)k_IpZ;t%7jaxYD!0O7g1;-|X^ zx#hZOF{V7ISa!F2t{pha?juSoDVHC z`8Hs%pjJF=3i6I%X=m&Xac;Sj@r$=Y$kr!xRsoAbdQ<=MRf-dBomkHo9b8 z!evz~HeD=1DG^5$-zDTr^OP2g7t13gL?NZ3ilsnG>AmSv%y{8{2ct#wCb zOqm|g@2Q8U&S9CoNZE5pqM>zpnO31j~+?J=r-lN=_ry>tm_)1SmA5xJ5D)$(S z@S3jJRI2bJKz)JO@Rt?AgW2vFEcb0}7*BSPUV7w3Gy2`745%JX#}$_V!@U>FOc=y< z!O~Kh@rA2tnR@s+F~(yu9sx&9FGLVF+){}WB4(L{XEcH- z8!?j;ja?US;vu}yC2G|XDJ?l22%$H?9GZNk1WO|^66avFAB=Yeo3tVS+Pd^bs@bxo!Syj=vDUT?{V9=pQJD< z#@Mdb{=ZBrrIb=zTn7hTiu^@50#IEPw{CYp0`y54V*uq3uavMuzU8825E|25a? zHUPPC8RTsLj`P})^m}d@$L28JVN*WzPp9?_Io|eT%RtAEi89YWu99EB|9s6r@`@T# z-r`fX*%19bPu<4U9b-xP%SR7n+Bs7X`LV?`ksm>7wD|hu zzyMho{jJ#IMI`2A#XjoX1Dzu8%K~l=F`uOwzefQ+ayhcERyD$r^fH5`rwEh+=W@*{S1*0AawOfF^U0EzYTGIfS^EIfyd zE1~CKVkYKzLds5`yc^^L^)A4M3rcZV06;9Gq+G!XY}W#lf)*AM7b%6^uzvAy>~ zw~*=Xhc3EHJxO)At>BAgX4@XoWJYDLP3vZu^oX5`ZBRF);6!H9Nq@g7|5ZXhfj%D4 zn)`sDT^Q6nY%#%K(-+n>hg*nK6lic4T;v3Q)T}-My^Gx7lbMr5{`|d^CTIWkhnhCO z(yC*66=uCqC519qVv!3T1@qE@W3>} zs5Bm<`j1EtW%Y)#XT_afv$Ss^Z!Q7-!kAutGZD~v%UmH7<5oXAE7kw@>bdLC zqfx%|YC7-OV(!H@%)DT-=zomK{{+7K#DT?i@(q{0^BJZ0#a9__J>)rj7EXWAFnBd# zvg;-fYuKZt!RsNG-9kWC7u~QywxG#wQR{R+W2r%oK+7IUh;gLVUO%V*WRDESIQFId z05@2yOOC=C?Oxf>Gep&r>)jR&^m5|g0BINg@Q)4s;dB$c(|7sOP8tiJ@EK+%R;>}{ z^k~x`ntWE*^(3xm_-2)9N-1AA{CGJt_=~WnD!KoD@8v89jwLYzW!C28D>lD_^KNqYX5c zcN31@J3lm|8bw{=KyQ3;dNc=q=GGf%!lK})!4G`Kq4heBy~pM8S+Fq+A|P~mQw(^6 z={Xqj1#$DDkdhJNxj_y`iIg{9*a0$#s=HSn+KM(JI9YR&~*ymoe|=&r~UIDvKc%$8?~(>X+FlxK|1_c zH2r1f*#wWpOrt{P$fAec6wvIA-L>QkcQ$Oo-6lrLgQ{U9JNs>G^A?E*wb7(JhjNeS zZ|SkQX_}sw<@6`|t_GJO$B3?PDN~<4nrdXXmmK-^t-rk6tIoJcuQa)TG)34M^IQ#- zHb9F{f5K$fBeNvE3>0T;Vm?Gk3OXAAm~Fd6w41$WPWw0|w)3(R4fpu?{6$0SHVVop z{&DNxbDVQK0?kna;j014jCNuVxSF@T?LeRP?fzIJ+ZTV@hq^Y;{aR4G^X)?}Xp#8! z7=!FosPxqg8k`=TZ*F3W=eggd zlT)2|l>1IO*|PM&D30`o5BEsJ%&hQz2epxF&RE2}hr6i%rt zB37U_zrkk8>Vuzt!8994es3zMC&Zgv3pTp1Bis{O&!^5}5P zEybT0Lh8LPH$CdL9FXk%^JVQ>Or(^#LVVDsn=6q#^=@3@Y-zsdCHAH-zm618siX$i znbeu)0$HuM$vvkBOEYijHz|MLf4-l1G{SG+bYRN2%B$a6-PFF%a52S^5z`v6yIk`4 z>(k%C2RxInn;wu`FE8A(*zdU#Ib4BH>V}TWe1B!zqE4S8`De(@d>f2!>TFf}8RR;v z!uybRqN@Hdt-f~ta!51W$$r{$x1siH1bBGsio^58Fg)=J<>RjEuLQ-p`$;6}UZju5 zPXY6}he%*!et}ozt}4;^z#A$!A5<8rwpJ8(I9X`8pBQMnoaX}`@2PrS#WlAna+A_L zI?p~mZ8r$w0#42;Q7P>FzYWz?KG7m38j&Zz5sJX^ld9mZX8!H%0@ois&Ornpm96Qa z=9OzLG|Qlfy%WykCBxLiKxo9D65sYVhih$v z^!I6zC!?;d$NpT$M(@5JfB#G9FNusi{@Z?N%@E={5lIgLozV$7?Df5X3;4;P@<-dA zMJe=3f4KN^IIE=(J7d_IqCb~q0KhHmcp~~dGSUL8A}AJf)ip{z`_(mAjNGXT+=;k5 z86(LJlvjctHHGt7Mz1G8Cl#ZLL!j!6zPlkI6(KPiEzyy#W_mbp-F|3>Ys_P6tc*?! zB;;etMBOOdof=mr76*5W#E8LdGvZ89h|aT#Mq-H>8gSeyLgjIyu3KVj zLSmXFEaCK=R57Vr3DOHnGR;mJ#F@UIO#1In(kC~Q5v61)v*dBH=aZ;puEylqmS^+0 z@W%(qM8@b8*I2AhimEpFi*||-HPYu|>MvBxPwrp|rPNbQ-n5KehNW&y+8n@A)0I-r zSf!pDNPHra%D|Ll!E~CU+;PwN4;3PztR;n}C$P~pBmtSFskBS(ISw=% zyQwTsa0;p~i%!ikqJh?^$*zFxnzBU5)KlFlWNaTY%3c3d`Qf$O3z_E0D$BqJHUuo_VSNI&hh?oYax=^CVfFi9ct1ox+>$`4J$)Bw;G z%DD~V@lCqfS5dh~{g^f;B$S%#Mb3R^g$%IFvsA|Pqw~7Sd2aCBkGeS=-1&u5d0(tN zKY{a^=*s!i?!Jvv`Sa-fZ|J~r<$`Np5|-VaR*?l9u?3rJ9t*UBGSS=}ros-Z!tIbk zs(ADuxsV3VqYo4=0g9@c3oal+&qInnx)w1b{Pw1bSf&fFGsmAYY4<@9CnoF$rkE?X zn9n+n>99CjtoSw}K-jt@ezjPP5-&=_sShze{$o%OJ$0bz(1p(9eVK z=8Ps8E5C=I4ALD z`u=Ebz{$6lcaA0o3~%^N5ItPxR=C^a%}54jUaq5hlZCIhYAbr^k{;#j3d0d>^|^Pv zjataoLwcW@lAYarYPqdG@9#Gx&3*j#lxv!UuwAThqsn);$#zS)*;{^TMeAhh-NxhX zmO9ceuZykb_a7hBjcDG5xc1q8Ftlj@W+rW{1F*XaK~`^FkqJIXH1#z%#YTLPF{dRu zP?=G6Z|s=DCpL_~b&S7FQ>ck`9K!_H_y9^>Rr6^3$7`(xXJvw^+NJ?n&NxM9c%aG zYgI<_H>a&{4z&zq6Iru_j&sF3L0y-+Wi3feb@Ntd)*xL$k6F#P08{R!1}N_JRDC^>km zl*PcAJ(D(i#>XdAJj;FVw1`_q1Y6MpG<(QOy}2_(GjPL%rU z&p!FNNTiND%I9O<#ZjB6)kK-O{KI$1rf;F*pg8cuuh&r8?3a$h#@!E_;Wj+8^s2_@ zMt*g1Hrt+pyUiWv?Kds;j~A|Qg&0+}|MKdyS=_y=)I*0G>})B|&izpUy^~Q3aPx#L z4YoHwRZ{n7o>u8&_64Wu|7y>a;q9GsR;rHku`Ah{{c&Dfx#pVKCNx!H;lFe+-7(SM z=i1DY;j)*%v_KFc;drC)17#AbK3k0BFV(7+e-8y(R~g0syeU&XmjCNdGj#UX*^1WL zzm*{%-?`05?a)~hmf((w49DLX zLaA>|+P8DnsGO0cd3^_Uwsc?BCH=_ZFI*Pe)%0uKo1^oGvkxP7KjTz>Cv=8)xQ^}* z%N%d3a7k^rMqX*(lHDD0SV|jK-FzJxNh&QkzU>rwk^tJ%zI{$9YIh~V=~5&EEb66s zR7+RnRjN5Nqif7)6nlSI5ku5vv1q`g6V3HibjWLAYV^gdh(Tzy$fV!({yW>vF(c;D z;UX$56W;eMU(4duBtTF}tuU2-r~nK+Yyq9T6sv{`d*l}TTu}|Z9iyidtcr!|Qe(?4 zK!*q6COUC5`yg{Svrn#2YfFFQRj3trybcoj-Xz`yc4|3=9=62mPpVpckM)~`*eZnt zmc$2v9(lLOL0S^dCB%Q(jnia=<%h)4X)6h_lm79iVAu~%1c8!QgF`IgKGcLvn4jRP zNjE$EHWHo%gW189pY+3u#NsUvBI+L{Si@pe-XTm^5%!jd4DR^47Ucqze-tRObT__f zGNDB$v9Kk+O$Q1@1_W6qEhWH{aY_G!ldDM?i-{!0r1t(KEGikV6#oL3d~pde-yeE9 zV`!?7@&jkO3`+SgJ7wL?WOFh_>QBmVvFE2VhFoT;`(mNqRPbM9>LvK$TGh!yZpfoboH^>!!Sr=TRZEy*YE(}W|YNv6+lasLNyy8g|Dnx*m&S({bRZJI# zBSdIvC97$d!GS&vbWdS;s=09HP2EhRSDC!teh$RbTpb-7o9wSjuD2%F=8wl&}D#}FCYwPDg%ti)Wo8zz~~ZpMD0KZ z!ZNpbDz*in>)w)kQ5n{uoBjrnw;-R_ZG~wE=k;dg4NjrKlX?B_d7s>K%arm(ts=(< zOh)MFd;}nRRyW^kH~$+rdci7Z-l|{@9kc3=y3|sz28RD~H=O|#QYQ-bbfYQYLMl1( za0?hPgg0ZUy`B@cK?6)>gGLvmH8!&MGT z&BTfx^T3p>%SO4%bR^Oz$z@uDC5F?1vOMMI-3v`6%JuY;#&w>rizWMiNwLRhy`Yps z zaFNzx;p`q!Xq*dFNjDznA%P7$k2eg$CZMr|m$lg*KrC$_YMRJoiO5T3322tacq^yaISLMpP;2g#JsG`en)6O z#3Q>ZnPV#d!&RaMNpJN?s&1r=Xp;0oWfwCkb&*ueMs(>XB|oZq$CFqk!Mjc%DZ;9f zwyVAY;XBscjn;{1P<2##br2Kc_>hZ!h@9rG3Atb6zLtDRl8ccSTsK{nOTqo;itJvO zZzVkY-csZLxu*4?<_51~&LGZ&skU6AHb$>@fk&P%5ud3000hy)3iE18Z6M`&_2p(T zk5Nw)hcK$VW*2$ufvs3^8v~Uin5bz(0JZK1u67C9KoR{1lK*VuKil}f(Kg=GH`@6h z+t{%@_{OUHP)(VK8I%S?+C^4&RyUuC72q;I`wFEL}Ei zOZP_pCfri~1&4)fkFYtbpZWXSSDP)n?+R=uTD&UZHqzbNNizwn(KA6M==6t#A z3XC-Q=vxqo+>q*5k{kW#*}+~gO;2)B*R~kGHotp&*YxG(>ha;@6S!jOrn|d^H z?Ll}>tn8n%pHFiiP29-Iz%J3f+{`wn`d4m5b3T?g^ldgUA*XSKG7wqc?x8)h z(YkUjG^o{{#JtzCd-3ii7W~}d$o1CnYXYVHa#mm!Ipl0p)ukOKa%-S8RQ{Q<9)`ZaxUuMN}cPPZ) zOAyVo|I+K**KF(m^z2h@w${C#+XDBJYf;|>3$x$p^!g_$951r3)C@e*tVX!1PKwKL zcKkQ>%xUO1Y{E38!6|6G_ZQ zFRE>z`}u$Q>YuTD_NdwFR;;~T;UD4>ht0G~(l2ajedR}OuE`j`3eRlOleMH*l!Dw8 zj|a+Eoa8o8Z(h#}#Tm|hG&Nx@C;X}-UO8Dm={;0yxQivV!!~SWz!RnFdzqn98)q)g zWf$Me-ea>#;acJAvt-qj1!Mi?5nYN1}41pcsS+9X#t!-C_sddd#{#n&w z%Y3QI|80f+l1!jDSVz*p>t}|!?C$3B zN;B|}^R>VmV<~gZh9NnMoI6~KZQ+aR;Od7R&Aiu+mNVzUWPPq(L*Xz#%}DCsUvtfs z2_?&(^M};u0{ivIlLfWQpf8E4`#*Bp$o~&}Z~4~rg7_T;_meZH>q znn%FD?A`p4f?WS5V;?y5U3aO*1@R}_D=;9dfnS{SW~E3F6AYb~`;+M&wAy)KV~YKF zW7G@&H}1RY5^XDjDI&M}eZFgcbzwtk^~UDOi$N>vtt0CO76TCAHt7&|^^m{gh&>!1 zQSgn$>X2bJvhel;1kLAAOTdaI-11R~lqm8y`@RGnc@pc9YZ=DM4ml?pEHeSOco(W< z81_LSR2vnhN`hUS2s*nMqCOG2UsU@#3-ybQ^8JgtNk`;Jp>C6qd6wa80jPIG)SVV# zmmzc)9rYONCqIGo7zwkKwjY#=u(JY9Yla>WML&l+J^&-i-$l4chZ(e7@Zg}^A^v7q zq^F{j&qTyiFd8NewdP^8k6?lgG2y%jV=P91f?^Cg2#lyd4jVxrMO=Fk5z~Tv2?dFN z!U#p8UWRC04pyQXXMQ*07|&l#0q-h>W72OVV)5BY=+j`l`#7E48BkQ5Kp54MXOp$m|EFl|LA+)USh=gIIO0%MTTB0HW zQMEkm4<52z5&xSNG0wtGiejd%aI@0bdBf-&D|C}$)W`%O0UT8%9n%Mm;Yr8B0fZee z*fKbDx03ZAQfy~+>^?6106(??5_?uL&RZf*vc_JT9G9*TZqgEGTN!uS$o4GAr2!CM z35Yz!2vfktYY@>@#{^NAL0FnJtP7Cvo^|pn2mw$E_Nz|lWhY!WifyLFV<+OT@tyU# z2}WX&RK>($68uJMqB#)y6qsN-X}Tq!c)``w#wbY+mKeR11mGrh-AT4Gin~a@3&th7 zDJ7$OlNDW)o6Zx@84=$&5>MlZRXM~Ht;C{VLURo%?>tG;i1fH7(FvAhESB(Wl4QXk zxhj#PxbY9kF;Pt`Q!=%>`gIp0*;b2NzMVm)Ll{8T*_@33X4Xe z8j;I@7FaShbR{{uh1wvK+$fep8KY(zrjV6VnsF&~=akWwlx^cFUqDamfT>gRsr_8@ zK4Flg$xwY;Qor<@{s28H1*CO?@M9qN5pvo%BXS0mGQm${3ol@0QkOvKMNfnmu&G9@ z|4w0rwDI!MjK#^cUCJ5feKJ;Dg|yK(os*Fd%s4cau?ftyRmhYaAWKs+vp_=HnD~j8 zd1*59EQPesI;+GeOA!wd(nftw)@8SFG1+YSwT$b^*$U9?OKw8i7%aSiz0!iei4VP@ zm2;SubE+!oOc;RWn*;RUQ#w!PbfRhhgL(L6^= z?n`)Hh<~nIZQi4Sygf;IuZ^9YwP@Ljv;cA3EeZ|NmKVgNt@CJ}#<_yJi5TCfv1q*2 zJ~BPElHSFzJlIN4mSDud={uAdr1NnkaU+T~15b&i;tf-oDJ>t9(uDkSF(_M{KrB~p zt0vMY*H$z2qm7y0uH}o|VN}6S7g3-nnf#yx<^@`Q!5W}p;6+Jo{sUD0dL?tXHH_(9 zklY;o7Js~Zjk0M~SngeTrzUDZ`S^~->lHw3rg+g$H#rU*{adzh+*)a9E$Vw)(X8^x z9(csGo9rU<^rS3$)moNsT)aLIu{kBPHE?!*0KGF`X7_RB(E*GYRc5bE@nc>|{Nd8= z?!|xb#k((-;tWfp-WBe*q03Ac2k-R#xK;oF7hYJ0V}Loe>yJkb;VaROxsU1DSJ6Pq{p<98ccQvrzZj=2IcJx^KE;Z3|@vd3n zSlf>c4aN7eumx1|?dM`Lij5MKh43@?&#c+uw612BY?L5G~aXc z<5^knZFNU7XBAzvPK$q4Hi&$21jzc>t#c4775L(Q7WAW%a|zzQj&h_DaObk*SHjU< zFQ-Xkx2`3BjWoP*TEdQ)Ex+<5>Otta!(T=9)jeGzp&K~4QS3Wl*&qC~osOpiuNmrI z{u1N;_}5vNZbKjY5}q?vlTJ;r;#Us3QSi zBAqYO#7sQf%EBxBvNRZzrsyY&q_jbhMzdI)TiVgopWn`FcY+=~?@u885M0kw9d|VY zJpPqB-LX$A&d3-t+=J)OEhNeNV%m)dpm7b<&3}L<9pJR?~mTm zCK+Sl6{%9ff4b^Zx0AE}<_zwdRJv>3os8(oxpDz}+rZeISX7*++Noshgs+Mm?#-*a zl=raC=!wK|Z1(wO*Hgr{Cu)etArChhPfi*2Wm>D}nD1s<#K`s*i96C>?4Pzkk$S_0 zTTodtijM=&vKLbi6-gIfB(b?d$$uxZBbBB}e zY=P2BscX`>&Bf#F_L1038o$O*R5@uk_(7Q z9xpYkjqj8NZ&P{KN`HJx_ncm{`;bPg@4T;S;i^5jI#5jysY?rLH)j7CX4j2HIXJIQ zzgcdpY#`*$AqS10ZOK40L}(vi=UXMM4Y>>O-jTKm&tOg4?R=Bt z_Bmegvg~k3b&Zw?a^7|Dz=!)?Y6!hcE`U|ZPSxu^k)hLLXNb^`b{0$N4QegoHhvvi zrmnFUUJa;I$erR0Ka{EpxY)#n)$uhjExf2k?}Gfd~eff(XIaFeFZ-sr`%BDKSNzVkbQ!go3cb$;E~)cWj% zuqGYVnYtv!sx!BbPgtaWwKU*o+Sq%i>H#m<>s{kyUS5gQ9vXYTwU%~#U@_^o)|?w8 zklRqcT=_kIDs+G0m!Dk$HJZWmB28-Dz74Li#}RByy5GoG`_(KP*n+dc4erGgzfWD} zj;1|W8&vzu$2#z4qPJKR>Z%LfzBP@IBABF;9-K`bUMw{Wp70%l47x8YC9rj#U6>DC z*0E}@Fnj&;sTY4FrtfNv$mYWA%tolYW=AWrWFcQLKRY3=yS_bHceU_f@QfF-qN8~| zt9dJkLv`55a@0%hnO7KT*IP4j5Jb-)k(6{~U#1#znvFE3A*z?}zhuLAah&&XT>tEX z9b$!~6OlI+E^jD=(nXNlcp)GWZ)w&GS-`9O+rg&*q5H9j?W7Pnt1vwSq=fWEsg^Lr zc-VCo^1LF7gNDsr0BB-SRSMpmoG{&Slt3zs?<{fEFnlWy)rJYzp@;7kL5TZ9sUi{K z_k=X&!7VVv!YbT~6?l0u+>YgOza^Ax8Szp&=$@$O*>h-DX)hm;)Ab{x2?<6YS2hYm5ueH^iobLz&Wq>Q&@fQW%^SR;5T_LBl_m zM|83Yo_+Z8W>k)0>Ql3SvCS%llX=xT7JHc4v&98*;lT?2kL(h_s&I^hZ{W(VId zj)kqi8)FNN#n5&3OvVN&;DuTD2tRO_60VOEAjJpCfRKl|agt(@wbIynPTWna*mFwp z#Zoa_qS!%_0C#EfWyb_Q{%E|KOhSPR_98h!R|bEI57onAm0Y84gD`hn;|zdUBc((W zKH8KFF>A#<0*082B^?7sT8c$Htx0O*B-wKb&t#HI0m<{LQI4QzbKtPc81QSw_ zCpTVfGEoMb>AN2`hjf!2}o@gvu~ZGwBzhL$&}Boq!KRmI*6*iLh2XPBv3)P zzM9ks7%@&PZ66~k3X}SaPaT1gevzsBVQElqT7_#`3ynJ2N^$|F347Q1ld1Tc^xv+D zZqn)7rl^~sj1c8zBYHIO#^-f`QM} zlJr633u`uqC|QosEK+M$DC5SJsX!7S8wiNd5O=>q&Q?)=c!QE5h1`Xuyltn+2&9>Fblf`R0E9ZhK zdF|j_598EpYk8K6c|PJaCu`btO&(M{-LICmJeh}RBYVrz1p#zg_*6OsPRBAM@KaI2 z1M~$jJ(d}5uEmJcq9+?O;wg+xD@FkG6I-%V?<0XlQED}89<;HnT4rgjh13h=5o6<@YlSm@MVH});h>_FoT5|k#|zd}U|-rC{&_Y1AuDUQQ)}m$b#!V>LmeybxM7tExv9OV zPrTOiUjY8s{`}Ye{GV-q9<}dX;r1A>fBX4g`_tGY#)n^7_xZo}C-TiQ=R^AFr_{mu ztu1x9IDcteoxgn{MD$qt`~!oV<6k{2#Uh{W*v)&hC%Mb_P-4cOO@nt0ppuZ$!3@z0 z9Q{3r68|$NGR3!B-D*!g6u#FsbKf}o{YL8R5Gp0}0Ne6*XTxiG!A{YvLl{8FzPX3t zRoN%D5YiH7wZ38vdY>Ip<=vFm_=>w7{^HmSY%LX)Q_Bbc9<-1%HA&*UJe)9W@8mMD!*U@dCZRN$NlO2xlyD4Rf@@fn| z)#aW!HT2h*Z#~XbB+NW`~E*<-)pI5XK1o7$GR5Ym79MSwsWfgbzUFZT_xXen)$T3qcYS(UBTh2l107s(_*cYmqhkX-;1-2`pK`!THrA%%D-~FE!K}Dt9Z0!bvg&?c z!AY-tgMz=3)yWdh$B^qP-|tDV3L3b|xWUHnXRDckchCD~uG9l`q$ zxi;JM(s>%8YC3gaea-G!&uaIT1B$eZrM zV&O4zZ@)7Sd#EYvmI3eQqA~!eo>quE_wBpN81(JwHw)Ot+7HrtkKSuFUBRI|UM3u< zDZD#e8W}h9TvCnm$;9(oLgn7>quDWUjpco?QXXITGy>Y}#;ywRH5-m1@s=G2CP#0X zl6wNOYC6C9dyz6z4g(J+cG){)Q%&k!G^b@g6HnsOSH-~U4r*USsxD?3<$pU4;hiQF zxn$EK?;GB(inKr%1()t~iEtc9rRw_7PIkH&QDNO9ePsnZ{ib~LDA;PrQL=)x+f4Mp zm%8Z16XQ1y!^*U}J!kx(BCBcEC^h!2aE+6w)R|l3HH~^rOC?*jGg{-l&210nDxVMO zxVW1SAZ*oX<@Zh8tEC2i<}Fvr481bjxi}~rpqbmeIrZ2E+COc&Slf8tA-GPZ(Q=PQ zUH+xlPm6&+etDL@-`wvQQvJ1sm3J*_RAmHFJum{_d!b3-zqvs0{ie-5z$a~9biy3H z@oA5PcgKaU`4|Nm+Dg~uk2=ESw_ZP*Qw99sjqsSmZTte<(<(O|UWi-;d_Qak?F_X4 zldhIJv9tM9N4EV~hIwkoMG;7kk-$e|aid3ce(ht#n?I!nHlv1j)~MWQ8`j*nX>-lB zHdQ;wkp1S&{NJ#4={+{er+nO$3Oq+N=xH%6!7{twgz<{+R8(V$=EwLG9 zV~APb4(^BYnpXc@GOMQ(1$<@QlTF!}>M0v9sE8S0CCm)y@klkGXq~d0KCaVi(#UIi z88ElGlG4W3-3vv?F2=)E1eRusMQhAZ$3o~a&O{rvg#zxS+WLK)7Bu<+N&R@RC~_FNHREOfxAYofv-x(PRLF*A$ZaCB^fv@0;v*^= zIHrlD(*h52g8nueF?>TL06_zmL2cQg$DuCbbm&pK-x;XyIYqY%(xD25U@1ih87pKS zJ1na??26*G(}pN9PUsrjPKk~>+k)Clw@(`nxoL$`oq&fWpbVrfH0a^AAHq%P0g=_g zwr4}kMg6v1BDBLIKqNmiy3S)>#P!MuIZnh&L$so0NUKzEZywrH)SYk+B_cGulEPmY zVgg#sJSG(ES(wu<_k5)>$3(Dq!Ty4WyyHkP)?FIik&TIj8bpf*2Py=|Df&Wr*lbq5R`#63Afc?yR9m$FQ#fy%BMh{O!zmbLqD8^)ei26wiUNyYBK1q+Qt z9gtX2E?j6NN@m9%fWe2Q!?kCl?U?<7AU$1R5^-*ioG|Cp>f znd|`cvLVOFvy5NMB>2>rz*^%2fhNJQc%)dUJUQ94#ug$&#ECgaaFYq3*HH`-2IiN* zAjZhVKLQc;#iFi@g^U@-S#bm6T**mdC> z^#LP~22SdGe(DdtM;9Qi$|7wHmm=h`T{USl3Ka`+8f}6?pcvRF=?4Br%X}*phv7ElU`H1rQ;R zeI+y!eYecHZ;cT0*j{$lW7)_j*172txmIqGmbJMIUba0R`Ajx%7bn+o3Mb^TWT!kg zYqa4&UJgC?wXyFJEgEPlCqUWXpP9JIG0EW4Dwk*{#LNU?ZPe8#^gjNR!>uue;q?3( zJop#Agc0U&o}tb~Excr;ff7FDFl@1m-{#37LK3S6lWnCd`JPgJG{(d?AMJoEJL+L&?W zg5`m;)8g2lQ!?vq|KZj}YsKyB1rEGo%HfjCYbCGgCFFM{qSS~(7iEqF7SE81yYYo7 z3MAR~!V@<6ayBK-i%hOt{&^d&iY(#YqfG_Y4$oVE;RK8fJmxAwt-H9R+|Iq6{@6bQ*&_D0cKkv~0rg!LWY6d5VT}3<) z&9sgf*;Y4YUR-n8;Ms4cRj{UZkGcf9sxIg82j=z4s%4ndt5l8Udrz+)=?#vqVcPDt z(stgFRAg~H|CxzYWBHMz#lg$@=B`s#EDH^W!cH5DS&CJay=wXG${Bn2TJw*Hhoz9; z(>5Z3pr)>*a@w-s(hptg`(|c9Rb12=gWCjd+fT`g3V(Nxui_w7UU*{og}GOu>o%7p z1Bx9!(T!sXZ&cw4-|#h9`Psy8Mt#kIkW3M7k@xbQEUfaSQf(wo<76v zoug&dwIdO#kap_8+@5NduC3SIz_Si(o=Npz`ii_C?XX9#CD$B6l=!YvpDpzh->vRf z4NGr-{=04U!&Is#`sAf=qC~6r^H&!FhT0us@X)t6A1xq>+Rr5|S&b_F;{;7*o1;5f zH3|p*#ssINsISGR-?%rSqYAlk;yd8nJ;|J#3HKix!+z1K z?)kx(@OIA%1;OEldgmWe{96939EH*9EZ-xH)W&#?#+V(ZM$4c=9UT^jyJD%Ad~;*ewYE@xINH%UhW#cAsg(y zXYFgYr(eOo{fz*bn$#hoMrf%r+ z<<;`h&RJMs;1H(k>h9ehb1&O%zOBk>mVfAUDTvn|-2FYE;_!np_i~$`QV>9uS=MB$ z9P6h4y?6f4wz@IrsNu$UG*SzE%`MEmD6Wu%)}!d^2RO7w48YT)2W7O)RUvS z>G1B)4GVo^8#A)iuDuOv5b|JcseSs=^S;Z=1*&%ArdxF_X4a6lF`aG<`|t4P0lzAj z8^0b@!mVW*15nkQ-*+e77^N{ow*uNjt-S+L9|#R zPV+)JL`1d72|2^CCn8V_^)O|6Xo&(GkrkvW?K|HW)~8^pZW#1IGgMe9?INObS5dcE zz9%P8cdWuwB?I$af{nnChaA*pUibxQ5bP<0ZV=I39pa!CVGRyC4i4YIggZ>=NGhIF zvO)*DL>M|rT&JUjaneLO#8DLULJD;PfVKx?Y`|dy5DBjq%uPd`Kt-%`ON5}q9D|m| zKo!w`R#?IW>M=b$4vgYQpiJo~Cn%c43QJo>rLcgpEtpJzma7#imkv(@1l}Rxsd-po zrL^%dmX5{t5^=YA5oN645?**6Hjrk8%K#J16e1V>&`msRgrZ}s^rIF|WbWO_bkV3! zOOd^z{@pEjHpir&6=gt-dN2|7O*ERK7~RtwwY@52tR+%j)7OI){f_tAM>OVpRphnh z=p{p3mPQPpLwK4Sy+Df4-yJ)x7~AO_!w1LiZHn2X$Jn7`m*}yRqH)`eVm-s%_v50S z!{avTaSk8j#EhbAc(+f>#GMrj)_oE$fs37G-BJd{DsTme^D=JxafE0m60sXt~L|dP>pyu)DV>qwXr%>4+st0^@kBghyaMV}7ExQk+R&q9HD6isfU~-Evd4f{9fvNSNRF|3*jzEk!P?P#lojPnp{3??+VUYR@l*Wdo@txDAjF6+; zv{8|?g~_xTV7f?e#0t#kFF9T4!rc%H6}oUGq%(F5=D4zwOWH;7itF2|~wq+lY&UtE>ogy4T9edET322!E0^kptS58^blV zFit|YtAr)BNmHyN z3n%ETGgn?|MO9kS5Vx3UH-<8Y5s}Fpd&fLK!3^1+pH#;9AOyHCgk@5?s$o9zU4Dad z{wdJ{$e99_uzYQBflp{b<_=~JGj~Ok*)o+cv=x>AEa=zD=O`Z^FfJ(N6f*xX^5BdS zH`!mzsDPFN@3^9$EsSw%*|`C7TuagGtHqIwoIkR(;G+R{jC|*v41qDN+btxOq%QR(7u4K+w+zs}+5wUH)+ctr$pB|UC? z+2RD+e6Qmrh*$fC=)Z#4#`>`<)4m-R0ap^5Cmf$yJjs66KZJBGu-;V;s6BS8JhJYa zv$~ph+Y1e~fZ_tjc(H+!0Q9xYgF3Z3^V024(_Tl(6><&7Vck#eEKwy)htDshl_lXJ@vmV_4qcJx+Pr9 z$uX-{Acx`Znw(%OUw^l*+`VW8JpXOxx;lJ+zTAhBEiMb{;MW_|wYu1^(=MqxJGdw{ z_@VJh*I)Uykw37vj8(fiWbs0Op&YNJ_~b|gJMgz=@$<5m*OxXvZA_XvtaW|28*`=A z&CJfiSmri=RnVK?^tSx#0*7XGnj8H5)A`ZX5)&RYH|-d+pCcEy(mO;dIO&ZWPK4lv zUIV8kbwTIm%((A5TdHC8uoz-|9lFu?S>x|Jg5X8+so&jRTN>Yyh{g6s;!^d-<|}^X z^4_4WpS{RV;VG{4qaD)7T~;Bx{X>RakmAxI9p+wdRzrAFp#qxsF{{uLjgVzx=pk09 zC?`}7V7gBlVW%0E@g!^v6RbF4BH0ppi4#V448Ev{xJC+W+z!(O-@i@@Ilw~Qpd+q; zQ8%HEZ=AzgEyHhI2tOl@GG@UItWXNPaDXCk^ZY4VcF^;R0(jqD1{YfZ182?K1xE3A1 zXBVD1j(^NXg#a*RR(>zB;WH4z?p=hB&4fTA;V~)vEl2MSC-9k7WE;u1l!I%Bn$Qg* zKXdLUk4N?>8fLa&*oI+WS%kp}#1IeporV614IQNi{{~~nNnw+QxapQ?E;wpl(YzB( zXktZ-3I}PDqQ>bl*p|RCUZjBatdSMH(-pUk5xoN!vjuh=Va0B+VoEtN`;1~+05J)G z&=AYmV={63xvvh^M2Y}|q;PRQfC&319`jaFD~9^YuCcRpL7d7`{7F!ZV(YEz5^dNhzH8a$eE{M$&ni0#HwX|}jv@sx=OHM=J zggFuWjh~j!NfC-_r$Omj0qHy-Ub{Sfk)JB8j*^aM;ArW)tdqaMGImd;iEF{%aWe#q zm_u!PN3=4R%`+vn^n}&X4nXP&c+A1I%-QnHv*P+~pe$LTgJ>Z0PfgZ2X4Yl6{uSBm zh2)Iul&mxG>|?_5lqsF_1KIBk(r+qf1GRDzG&Amr``@7CsJUd^pUM`ZN~iJ6$KtPr z<0%Gh8dl=DcLy*}VE5~JxsAv2v}K-VDdw^6h#Ew zR#6l9Jcm|HhUh;@@LK~2Y!*Gwg7QQj)6FnMtWa^Q4VKftg|#$~1?S_E1W<2Ns^77RuF?>>!jxTq_&L zV+6`F;#6SSO;(x0FPa#zTzJiVhI;qfbS%atuLfQYb1Rp(DK8T(Kb=@!!l&Gz;_eXi z?`i93^j35pHTdVV{de~I@9gz|_U!fF=*j<|M^ETkaT#;I`<`xxG~{=QG0ZoAY^!eT zD}(nr>8iV01m3bJw|Ky8Gr4%bP@}(!Qk1W>G4;@&d3}<*T;yqbe&#LH;?mk&aaEn; zK1MY=r$|B(8En63c%Dr;5>WKY)MIj_xxU@Hs`UAVeCLKL;1|giouiQj!_Ep;4H`+s zema5zJA=X6zj2R4DqqS!bTu*m{7o{r{^_gNI@5!g5e{Q& zb|i# z!iGRyf3HyzKXf@*vyStJ$1WY&f8~Y9ed}@ErMIlXNd(pXhe)HQ+O*T_S18HOy$AdA zj$U5y)v|rmI&1Nvp>H2fQ@M_W=Dd--{Kwtg`f?R-#i9-x)vMU8K)oSjtJXf1{o!Wo4WH)#?N(z8 zg5<-IcT`c*9YaZ-q^pC!dEJ1{4v9ZrV;;_>W3yebsz0H;nK90o%$M#YFW9I0u`lT2 z&k7g*j*7l=DV5M_1t0K>J8tScuWy|bZ?PET)cwW`a=mvXYbjmDZc^1n>#M`w#oWQ^ zi9hdQUr7XCnt8pO<)}=*Vcv34;I}EwMp-n$#;4fHZbofOmiw;jB60uv(LQDCx(>+` zrNlyat?AYN_sL(Y4(iO^IVU^NoaSBASLgXDt?td^IghH=LJ#=yb?!oyPebRB=Z;3| z+c0O3YE#qa3jw#`QSsWag_65|5DSAV0-x&GvU}5{kxp~6QtD~*Kr<(;b zbKat1w(sP0_?0I1Zb?Uj5a%Gr+ovPv!!_%WSJQ!8K6CnM(ITZrVYH64;szv znr(i0y!Z?xV^k$QrIQ`|cV(=;>GzzT(1BE`D6-I`zqQcgqPtAgtNo=ux5gPvTiNfj z`O&@cFMCz6SiY(=A8fW(E^=z+gJtj^NKqg`q4CvIJ;9<*DwJ-4Tm|4z2|2S`YbLa-_gx{v2~fP_ev3Po#%K2m^7TEWGvAeGgjO;Skjzd@&4f~2jG zvYgPF=1_$eB+W9+n-;d67kr%;n9mL?Tn)X(@zn;PbfHe`QZPjxs%IDK4(I+oXm~?n zxG~T8J|{e5Dg2?Ri4Gv*@P!BqX``p4h^_DlTb@6F9=sqG{(=+E$3S<3BV53@RuvHL z;9yrkgjWm7TQtI#F6nN*o0x^JP$u8g+?02cs_~bVbOmk zu zG7%<{ct;GQ1xwVBd2S3!G~y<%xFkMgM1s|mRF1h@w4xuAlLk2nwysz+eiC#d=>oI;erPdx!C27Sn@1}Q_tlx8Jl2hd!NmvUYr zwMi`Xy=x3BF{)2Edcrn}8_G%L$e1`NrvAs`t_S~W)x^Gh{gsva+f`2dcgh?i%?xGN z0!SC0cUJbN{RF86tG!y~rhj{p_J@m@B&Tn+I&Vy-j%1~O=ue&DJkuY|7?#Y~2L~*- zrcL0|%gQ`o54)=^3gHT_*h z@xtWA;IeCLB}!gPc$n^Qw>b5t(hr(D3`(f&FI}t5|7?C~jKVb6e6UakQNQS7l*28H zuPimWd&%*oBKIr0vMlnM|(zdS{lA5Aa6K83g00%|_^vN`LaU;V9KW})_3`K!{@IozG_ zeUBQ1was27SV?rab%#9Vpv1f-kn^0)-1AYQ&ue?*y%8~oWlhClI>a)CE$PBy^_X7O z&zbxxyUJ_omavSRpZp;x6*`(MFMllworNn`>zFP(C-WlU;xtkW@aabwK(gGyj!y=0oV?{dNL zusrbXzWzV%?EByu!Ri-Td!LL=?TNiMo!!rLuf(?BaOHJN_slI;WUB9X9SpGklq6Zv zEt~50xK8#9e)wW4NJl%{xTYcg%!1qgOH)r#l&{rqim7IHKg{yix|_R}NSeW??U3D^ z#1;Rt$`c+3(@C5e79KCZJEO;?AMIK~pVH~vPE)BQ*iX}5lBN#t(dggqvb?ju#;2_d`f;e= zpRRCn#{5)ZX8W-4%XSUF@PdEhcIj5T1WbB=UjH_E;3M5jx*buh`MtBjKX;I|06taE zJ-oG2GHyGI*SqmcO=h{p#C}fQ0G4Co$D^d8n~+G*=bV$BTJ!rSnZ%s6K(hp z)vKoUvjEOXAD+Cq6*T)t0PU@_U9H0e&U+v9{UL%}%2y4ZjzR`yscqo{ybwb>Kl7{1 z9ag%F?fA1rOX;f;US*)Xg}d`>Swe9zXKj?%1OcXTAw0{FAvHu8L~kbxvJV=9lR{csB7bRyZn%V=;J8#k z5VE47r&`RX1ZC*d=M*uOi-CQm7dbR30tl2pIJ+9Mx`#x}oTj z>Ef$w7@`kFey0W1h=dyef^}KpmpS1IEaY|Rh{vM(w@D~IBtk+o?AS!meJlUR6Cr)$ z;p@cEqlRdXOYk`?dLJDr;9#e zvhW&x_@b7_CDMem>VyjDqbew2ZxW%FXI9U`8Cl^PIHAWC&7S}wMM;rzkjNIpNKYPk znH_0o6?wiTvKxR>f(D}K1dd_&014Z`iL#ymcN<21ZV9~0imFzO)@#B2#^QRdBHr<$ zTi-=HSKM0y_}TOB@<=fQnlb*pF#^$;6~OHsz}U8lNHp}O2rgEfAHD~8?*JD!#){q3 z8+(*bFbI!3z=*r|F-~+cPH$KIPNjI=JMjW=ycjFugH`NYazy8ZAifcTlMzdJC@TCw zth;E`b#9ynC`d;}xFH#TNGAF=FkwzH@h&b=7{4Txa2JiD+0evtm#C{oNe{$K4vR*E z#B7X=BJE_1Z1~vcHIZ?w1SeqhR!fqrQp_YT*^!&<$&d0=iu7@fbdkY8CZn`Oi2*f4 zE{EtZMzZE(z(%CESZ(a2iFP$ffVPO{hwYRiXH@$niUmi($bEnp6dXC3OAf73%a|l5 z04Y?ULLQ6~OQvK3eF|U+cs>QFNGan+=RBoW$xvBFiMch@`wZ$E*IQ(n6k;{yBbn6Z zoAR`k+y+Xi=B7-LQohItv0Q4e5w#x|^jWBSmBLcKaZ{W4srH&FBMfARa5F?CWx^Hr zvnFk9GIg#sO}H6y?_SzcE4l%e9u7@gQwmAvrb9)AVx4q8Fk|~b+8(Wl4RVGRFMXdf zYK5OMT<(2jAmp%hrjAvH^qS7G+DsKdx|~*~lx&t&PUd;#S9{@E;l!+$fMn(|LL&HS znsl~71pc~~c@Z@Gd{Xvh{cuj+$VQ#hEJa8G(k(yyr|BoRmOk=DuTQjxZ-MjQloc)*3U^O(TzzUn!oS zb|(K#TUeEBK1wUGj0H-;-?iK+x1wgvB2`D4KHmlMtJp#5wSHUn ztZ`0OOR>WF5>tlfqmLyBCEva7C97*DhqOu8i8rM#l1@x#ld(mr|J*YF0^q*@_%8td z3xNNl0r1Ik*RH{P<{j!!X`oM8^Uf}{#qljP`Tg#el?=_YrWlyeHEzwe*8Xo*vV`Dn zJ+Aen#D3lpo^;syc^muPz+C(*^^0>mYH5?o_I+HaiopE6nzZ3xV%Q`Z8P>S zcG{itBFV+7P0IpqtD-U}-)`|)x4#g#DVT{iFA#>ZDDZ4yi@TctI<_Bs`LKHpnAKD?aO9WnDdqFsL4StE;^dl}LY0Gxk+rFQhG zryY@Mzn?5sI^k3t#5VapZ5?o9{*wx{N1OGhdESSwJ=BGw zs(f%`w+YIiKe`XzOX$pp7_jTP&!E{~hDv5+3qTvXPbgOlui)m_Qx1Obsop!B5`h|f zarQkcRasIcT*v&S{4g&CxaX3KQ_o9f0U$*mv4He8cf2eIqZ$QVu|J&hJS>Bh`>1Qy zGc|BTY^QpAsa;w6jv0-^gVlli`bz~QT*?mxGxK++Qi_8UriV37t){;Y_zvl*ckYWN zzxRA_AU!GQnfxH|BlLhDvhs$b-l???XTfEPSi#Vou61`@|CM9E>&I8*CO$h@_=Wb_ zf)6@a_cS(?cPr|=^bUp7V3N}*ARX(T`hmPs#OI7$+mT*|0rQaPCin!HFSd8n68%;%4%+_SkTF zO)H49(OQQc*lL&HR-_{#& zG5>EcB5*v=Z_Nvds4@^7W^!_Rmu#*!4Y(~o83H{*`{7x#g z#6OhN49R4N{xJxWX8E1ALN;iI`C5h)jl(V&1}bx45KP!(cGwZ=;NRnr>x!Y*un<)` zyo`u?DH6Vih3aObzC&Plph35+Q1?kMOgQ0Zlfoa8++_c<%*q^D{)yUMVY^~Qbnu` zPTv*;mmKP<47Hay3nfz>6_H#?+C52un`Fm;guhn07%5FqRBTg73-OXYc3_K3`pbZH zzk<6PCzAqFJiH>!Dtl^^WphOtaCr_oJD&>_lH~6}3E3)-vCEHo$V(&g52C@tzK~=q zPEmjygCjb}AxN@OsER7+Vb3A)P*pAAN!9NW*_Au1Uxrt=E3!T}SDzdJzxa|9Sk&93 zxJlTWH7w5J5me1rOU->W^P!?fjIX$OnQ4pI)g7U-98~?yRXs6P+*>3bOb-AU@x3^+S)bH)rtHu~=wK_(> zK{=)_F_L^x3HK$}t@YGKKhexCsKE^z<|u3Dd8#>gw4O>8u^XA$X^0)H%dOO;jyKol zCDj!KX}?DrM{vkoZ%xUdFV)X5yWRMsXZ?&wt*o<_Iau3kHRYbxl((viJwwtrH!Bn8 z>DgSMdyut#-Sdk#y3YjbXD>^4r6t`WFF8ZlI|AX>I$PVN!edP@lQZGFl@I!swVb+g z>C=2Up}I7d`qq)=3#FI+6Z) z_pO(6Vf-^uC)luaw;lyMH+(2`29ZHI{2$W_PU;k@2Qre1%1znh~k*HDq>;X zA1AV~+d{oA!j5!3S&@yu8anHdO&`T3Hs zuf6&2E6b$4ZihVPVLEq*{VMgD_3Y=}sH^j%e;pBAirR0{T05uBT~qbj=hW8*%Y_@Y zc{Nw+QWp%}zZ&*1@4?lj@C_5YJ948>TYf0PFHgqZ%JcqJHfzq)%7~;RFE^|)(6Z9U zzkYF>_RzmReA)g}bY-jdRlaC#Rz}Px@HS!Ju?F9ojHVNJ0ns zyZmLV_pd|Q&QE@65?^~B{2bNw*Tqo6<3~O%o_%j_^)J?uz{xpf)89O~N^xG2`{hzr zR9_$jIAe+j4rl-P`O(ToQhULPx79JTp9Ee!gN=xOr#aQ*Fb4UviVR7r#GK_^5R0!TI<8tjSU-~ z6?m=d;baqxguSmz+t%HD7JU1{ABlam9H;I0r;lf1d)~|@eE!R4&d0M$DX)7EpL@LF z)&0)o;J2I=kMC@u{(Jpv@4qvX1HXjbczQb~;I&cwxexy6BR_BC1A|lCk#>=M?bDaH zl8s;b4{SWtH9dI1Iwkl8=SK1Eui_6^s22w0>fz?+4~DMG38_;@Vv5Q9xu1^9gI~>a zFL@Q1{PCi?xWP^-K5%=3>s*ZJ<&zViv@MTb@MBKhADA-y=G4Uz9}elEZ{m<|?084v zr+TW3uxXW7=@+k(-{mDomXtn9E17I7@d7DR!)SlHmByyg#^vY(dT!tg}U$0QUjwFN(u(<*D3j>M9Q z0P}G_2#Onux>k}K03oRZ^w~9}6Wte~#zXA$A!-p4S=PG0Tn4XI=Jh{)6XCThupbWQ21>GMw3y%1Axu$yxUGjnoZz?U@yXQyPaGS zzVx9}*kxn4!-UHK>Jy{znPY3_d*K66wDi5`4NUYXm75qU{(#AN42To-;!ig5XQKEO zDr^k8>}C7r@8D(UiJ=p%;z{YDQ*h#Gt}W9Jye@rn>-W5Z{4h~}W7nv0+gEGw1^ z-O?+1fr=lH;-z+A#=uC$1sJ!{Sg}Tta~5BTw}`G8D_6Q#!jP5gIx40jB^x6IZV_dx z5{RMj%6?GNC@J58CeSdCO8J&;&y2&9X*$$G9F+ZwiI7&s}lMB&v2P!*R+cSA`l^wZ%%Y za2ZBxl@B+Z}nC8BWi9#>aC?; z*<-4)xoUcGHUD_9I5^e6&uSbIMT1tAf}nck5pu^%JrJRKZ%TegQg5|E>P`K|u13hz z-|<4n25AZtG!r`0zA7}+Ej2%w{oRK(le|?wde%-%s`Vq*!ZNb>wyb#9wi@@6gz=d> zQCi^=ZTPd=G~D(DNm`^b0}&Kk4bv@J`^~uB`B>X_R~s}Obp@mQMtO_yn>wL8FY%X% zy4*Z{^cCIG|8;E<-8$CoKq*TUml3dyY*=g3hh)t491k5@)bHf!7o+PS=wq*iQY*-e z!BibqpPpf$Zq?$F){OPhXE;-i2F)Uw>lN+w_`&)vY7&x0PAT!5#mX?^xkiTB$oHFb zgtVV)_Ad7`6%85*oy+(^CVH#M?Wk$lQR9>ZQ{4h{?QNrB*eLTetIVdugTBULb4se& z@V4%^KkITxXiH?n?$id=tp-I>!!fcszqKyS(;WT1ahLMg$t1(>r26Zv4Pu{T`r(Ev zGAfd;6Q96U6)B@5u7k`HdKK zW`MrY2hLeS#=q)r3@{&CtJK}_jvDC{+?p9O@e}{MhS8PfDC&)(-YDvgqTY;A)Eh;; z|0k&T@$|DjySK{&9yHG^XgV+4lf9JCl`=Q5^{+_-;f+rVsM6nBm*CjNS6*^47Z_a8rf`2GUJ^A*=O z?a7ZXEo~!i%i5XZ*}Nq;^zAW}OkQl>v!4?S3__20U>mV7ah&y9&hot6y5j!y5!YX= z$@vux)sC%=s0$5AdASEZ_kOH&UN$W6D%}0)@$S0eL&qmSG6dqD16zYkQzjLb1n+$~ zd1KM}cfE&B2DZNNBAorJW;ubsaq6pI6V6_|xR=m45B}QrYTYI34^HpF4Uc1Ug6=$5 zy|)fk_X%>&T`xhoY7!}L_v8?7t$4Kg`l+6G`>(CP9N6f*E+2VUKjr)dw~a?{R;~PS zoO3?ON1fkwW8ZsW%eotFl;3`z*gZ6H9 z_wkLYVXip%?!=K3C8u@v;c0Cn%{9qypHyCacG2tW{lu70uNyYL=x-yv>VLF%0Dk`S z`>!ou%8LsI`Y)DD&!;+usMm(3GfowagHgU;RQj*HG^=a6n}aynNS)YD-P=Z<4upQH z&u@~`3Y%$;w4%Ad{`t1jg(y0rf8A^ws&@j8tT zbA+r$#RRs~qgV`=Kl5#WUIZAAF)|*8lc0^{1}D)S5gUbx-;QCdbCN@eyKs)|7%X!y zVpp<_x|>)OZ7JM`Vx8+JB%BWGS)94R$(S>ab8j&x7%X0PkaL~Ii9^s5FLT|>PhpZ46l*d6^a?o(9peo)kh z5Wd0-GXQ!|J>B6HUFC>}?ke4sQpUHH?XMGmaAyx8 z%7KKktHkUspd3B`n`JsO*G2QRia&w^ACEL|Ynd-jgf#hohZ_N&J1f@MGW<=$ zczTcrNpY*vM_Re5Bers_WYAd|MiQ)7NX`P1Z6wKNm*g!>x+|T$6(1dFG11EFW0rsNoGhk^1C{lB%S17H)$#)cY(i9qx5CvKZB9(O} z8g#yJQHSD~YlGUQe0oON#?d!ibd6OW1a=z9#%$RJ37k#WQRPr zS6p*$d!1gMics6-ssVrXhX{2)lJt1Me~1<{kfwr;>0y7$o6@#yjCqGirg3Xp%Vuf5 z!UHD^#toBbeRZ0?OPYL+TKs)&cHz;tXy-BxeCYpve0Q!lL$2KMPsjWLAz z8CHZDnoZkF@%gnVqlXSe+`kK|oeZvHHMjha-J=tQMLN+ZO zHkJluDi)a1m4(Vkt&pryd8%i_P1TV`G1k23L%o?-JwLzpZHM~g!G?xb^;2YnrM2M; znxY=g+^KK4b70G#-RpBD$7We;auQ9r%g25uZ5#dbHadA6oji_C9!JI7D2#kuPmFNSn}J?CyYl>Zi5VlYg?5umkDi0s0DeC{tPF4Ukql zN*1~^=8mI0Z=s_saZQAh%Q}`u zNko*+v9a7h)-S~DFe7ujJ2MTz#t;i`d$A5UqC#MlEqGR@gB6YCq~O^}U@_UrK7Tsw z2nv@P$jKfDESAGZTKYLR2%&6ZK44))5w{8*VaazGTZvq(ZF40mUyLo_VJQMs7|q6& zwX@a4uqxE9eet}#UL0uk7#z-fL*V^86#A<>sR;!X+1N|-`RM+HW46Pmom(#;Vy#9t zXyX+_aZC)o9pu8AS(~w}WSd|WmVL`2fPTbT+J#{T;XGgAQH+oP3P|mO9kBd!7)E+K z^Qn=)#(1R6CVJ!)-N18>%oN{o2>)ysH@b=bb#U(!fe{d}8AZb=(f9~v9kJ|%MKlI3 zI0%Zq;>9J7vT11k_XEI0WEnJkd}AqpHkOzX5}5~`Y(FR` zK1fE9M|c!GinSAcf0#Hu(6fGWGN2Cl3o zDfBqy%|hixqr&VV(b<)e+;zWp#6n#WKfDrxFpHvUhf4`HDxt~aZe-Q(=<3ec>Q;Dl zJFZ+~t$s%oTt}9xXVy%xR^26u+ekGxM(owyr1Jarnk55Ok2_fZpjDnYRiC}MN1^I> z)x78^eC1NzNv!%eVj~@=?u`eXX!T92x~EG$qENqA6#C%fNr@VW9)%1WsHMr`BhbCj#U@m!0x7~(mD)+Y(^ zjm*-t(ar%|~H@kj0#G94ot=|< zSqJf1VRwCMP`$OZvwme~9VxPY>VSdHGjfxRZiV$tQSvUV~|O$)OukIHM`73ou=bv@6)ZuaXi!7cV>)tQA>umHN({0 z+0gU5Zni=5Cs}*J&u~&{pfnqOQ!=_;Nr=J@-m&_~MoLm9T3JnD9Mf*LYZhn{B5D7(Wq1 zy?ucCI<0h?kviR2`jdm|VKZsWysah$d<)+PawWCXEqnD+mH(F!(~qlSNtx-`SWE z?TlRjYa3YXj%V#~(9aDq`xmhZ;mp=V<|+qk&FL^iUxG7@9etTy9Ds|5v4FJDqrg!` zF7pU6lw|bJ1{sB@V*mFXpf7$T2L)VB1P)(1IBDX@mt%;o@v}GAV1c^I*%{DZxMiUVQ+H@REWIn5Y`a{ zV?GL=!GyCpqN$-mKcetAlyDF$T=#+h+&NuTz`bCj&2Wfds7*h*m(50$&BT7O1IK&muKDuWaiG+SlkW#}+^)JC)<*ad`fF`E^V@I>x5kH{#O z#AiHz7w%{@P8!OUVA1)BkXnn7?i{bES1i3(iuQm&j%Dq`Zmb+!zkLqM^DTqI9~28-Z|`7lsIV(~}{Hd>)1 z(YM+apoc<(Wc zUVW#&>OU*W0b5miJ&+(JTqng{n_06)TC#++?OqEMFmV-jBWp|_k35JdgjSSK+(i8! zx7j0V79FbTgXlt1^q4e%_W|rGFZH)(h=ekzSnV|JfDBwN1Yz;&?>g0ef2;EeHI&tA zNS=L!YoMaYxK?$sk0x5G^862?4QVDMA!o0xfoBBF?5y?ZR{fa(8#}$$o3wv!QteXn z{5Q^&6}(xi$eIrh?RZaJpts*NQp(z(SsS2(1ChFQ8M-aq3!(pOP$V*9P`4~YKZB=_ z2okKAsc(9#-$AZ`E|f#Z2iA1z_bClA8HNJ3!F);cTR^Q((wbSriCH`?WYID*>aN-A zdTy&1466?)>vAI1#;*Fho%LBMk;O+LZ5CpT$}lFuM4UggUY#l-Sp{7c*w|@|au}t< z^^?4d=t$ra!@s&S(?(_5s7xD`X`?djzm;i|Hg4*;NHyI) zMIGvzOL$aH`C61#_#v@qh(p>~Ui7$yA_^(}4j{%8N{1n;N{jp6N&T_CsKt%;1Ce$% zoHpW?@8M4M#(!(`zfYsL5{@<#N+zL-^Eq_5t#Bn+vc_4u8cTl=Uf9$|M>q&UHp)UG zV{0@5|?NBNw78Kq%7B#UKOFR)bl znJRxB^R8xfF+C%JojU-p(r~DdnKjjO5hW zl|@+aS9@@Ti%YU?e?Y9dC#iY|J3Q@jl_&JsX)wS*Jh(hcn*7#Y9dyYbReu3SN{6BX~vu3 zW8eATCGHjo;RGbV9?*Ed*ScS{l4CTNWVE_J+)uCTBNsbNsw;&u(o!W*6Y3& z`A!?qtwRm#*77uNeY#?uZkq3Tq!SH59nziednsLKfO}Uz--TdfCgO{KB zWMZvg9ao(4Cccj?XV{U%~D_y}8>++tlRt&HLJyFDMIa-?nYr>6M+^{^EZt z@;}@D{Ct}*Z`*d^od@zA`Co?>?sz`_{xbf+aY?xNgCDmsB1-meVI%syzoLI?}AN5TU@MljaN$2KB9Y<@v4x&;F+PVsn4HTJtXFuf<>e?HePu zFTXv8pZykR|1NIiJob`Rv%8==b{!w|>KQ`TqwKjx(AZn-P3R~Cf5r6^YLJ>&x9UID zNX~{t+u@hKCq4G_>HI)g_U-!%wlv_`Y zX3$LQOP-3@%({BW{O3>7f0YeDB7TiM01fhTqr=yRe&cW_2N$9@f7t2T$IR?Skz!U4 zwm3j`KeTX+D}Bi~!7V?2+X*kfln1##jCdI3rIHJ&)4rxSGD@L z`ld=s-gU0z#ATPpzl+wKW+^dirfWy76a14WpS|;Ajh&cK%KR~EGt=;EviD-+d_#h3 z4R^)9XY1pO91>B(LT_EW6}Rd^eUl`ecS zwU}1c8`}d$5Dpg( zjnmJ6Sos#cJ9TwRC&6BFqEc+%+Vu7EeK$f`%NHstBw_b1*)@pGT%Pf*_E?`&5IA|c z=8SI3`oiT})B21r9y9B+Qo$!(mcB?|Oyz#N*ci1u4$U!N>B!hTx%Pfuv}7IKDzZ5@ z1KKyT(bPdwcv7QqbTbmC)!7{oQ$IiW*!{@)L#LHv_k9`Meo|OdFo+pjhdCwaVDX|s z)fXn!hhNRZmA#EohHD0KT#WEQ6u8~_;+5UIA9!38x!{4w4|ZC0WZjndaX*-+dga?* zC|=`uvNGa?&FO>EVsH8{`JvM)`uyLR*L7R%#H0=#8+0e z<4_wWRngV!6bER4`4C9+8SdT5X6qVU_Q1NH6}?!~a?kr=P~K11DPgppq{3WSt@NOL zeOQC^k}?|iGFQ<=x52J0$fs(!KnclK;H(@9sW%+oB|&k9I2RQLNKcaF6$l$*sZI7tj?xW9w!c;;hEoOqH}n-j!3DgBnJA zb|_oc5*-C+CR!sQk4Wn!)>q?0U+$3%$rTfIyW-uPv|@ltw+#Jiv$E2LKdPXMeI!Kxx@j4|LW(IXJ63O z6BGLv=?5t?9}@LL6?PLK+6>9POq0q<5r)FS(p`It&&?|c)=VCF!h4@m9+@v^%rJQ9 z9klIHQnBqAFeZPZENj`OSf-b00rk?!35inI^wy*2^~musTU2*H)3yRNNS-9U7PV$boW+4pu=dIyD7 zmBg3IIB4GOX)}LjaeLam6lv4hmR|iN-lsM4nC;ie;KIMo#)OF6kC{B`SiAGU*sX}& zefi4O9>;&4+VRAvf6BF^y0|%*>)oS`*wf) z>zz$FkZt(((Y`H=PYOk2O>-u@xrT1|UobYI{ zvlV_=MX`g^&bKtp+i(L<$>);B^fFf4wf0>(B2?;m)A&#`?rn&(NFBh01ZgKXs8ZV9 zy`DX1eI&UDCb(T2`|h05cKt#qF6+Zc<>}>;?#kUDO~1>$ruWa@Xg}MIS90^$?e6|0 zWAFD`ss7W$-Z~M)yq`&(|Htm0cLU}sJ$e1MvEbm2iDzo>A4mCu#v}*m{!7o<8`nHL zd=xs2uGF?4SO1Qw{$#uqoOv#9(tsvbTgn@IJ=Nk6)#&?ja-;7J@AO_b43y9%1{y1$ zITmz1>}vld0gWbY`=E5)zR_LxRj>VC8^}zN|Nbss=WTRKk7RzEh2t&w}n<0bKvof=lYuShFS#j`khoE zM0IG8^%;$}fC~VrT|2Ye7xOPh{p`3Jp?3Sj zQXx&cGczHxI88hzq*mpKuzNXY{WZit-WkepPSg& z=>2`{`$*%!Aej(tFKV&=Mi#pE0K{ATFvyt-nBHJa%u;VRzF4!kzoROUBNVfpt8r&J zc-bRH$nuWa81#K}%wA!Q-AyJF%VExHvHR#INU_)yb+9B0piDIp!4OmT(@je{=L8F8&?TxWfZs;u-Jl8Tqy|j<^W_t0n%% zaJ*LwB5d4eUhM9xbA}P)(L!Qj?eK?d7SQ`1(NTI(-cFB)wh;iGdOq5C$Dwl&I>c!Y`9UiuXD0*Ndg<|`bV~SYur2q^g98-TL)};k=)dHi9 zGkL;F(CkW3LB>Dh1hMEbiX#aX+>lM_L_yDlqn?Nlaxs}L=o?>Q)9P`1MiUPslF}_q zZoWFek6WVmO`wSQR4s`tEq3O(kas*Q<2ee`1khsYMT&5;{Kc{J zJF(t`1P^pzAs5=hy5S>_Ef>b^TEw1^O9)xXYPQ6IHDabMQ}jhH-jqMH=8-hxi5umh zEhnUr-O0yUm8`q|ID-0Qqj)x5HgY2=WDa~wU>OIEVgHL}~fv)lEF zpSp8MZaHkLoK`|c1Ft5xLqA7}kXy{i?MLUF)5!Q{l|Ag0JF=3?>CXGPk|%)9>k=W! z%9HXF`NikSvQWQFh&g+hjRaUFzN4k^y-DXwfSzCBsYntWI) zS^~2wdF@^DvbE%@XenKxv~jiYUU(^oSlUxt+SgM$uv+@_@PYr1vbg_AbX!>4!rB(r zwy?H^wg0EEcIEu0slI{XzHg;}uqJfiN`KYE(r+%saw~wYhF4W(UiIhg88izMwa?|z zg1+bOuB5#zQ_b=cJnOv1*MhAzAj38td4bAyv%Yd zax_eEVNKwrZ|c~lP3e6XoaZ#(#!januQ9mI``O~Vaxp&Rxl5FhM07;IYl>2@ilUJ2 zyBpC@d2XS*8*=X)_Nx%I&N*!B)QeaK)r2bT=ub4N{vc7kKx_@j_4T+VAX&kdo=#fv zZ5}ve+?I?zk!y1F+t7&Br~Sh!9ve~_LD@9y1J~%!VRt@YqctPPwyzI#IT`}^^VnpTUpAS^AZL<)In()M|Cd)4|VpuL9eaA9cwJ1IiQS@3X((L&*j zRNFP^@AgKCkbORFJa;G(y>TaCA3es@JaCV2(FH zgoic>dG7#0DCZ&`hiaya>!xxZsU9&^)th4DU6pqJfFG#_7>aeisJ&}YHB3XJ~X}|O^cQusj zmNOec=wwRf%6OJ}w{zK%Xf<>ai=I@gm-JiizBf4WHRpaW7yAW=+NFwXs=B{D9{0;5 zGr}t|$_h6!Y=@Z0+)wr2CXsoxCCg3zjIx^J6bmmcPB8IG#>%H;No3%xvhWkq8Qm$l z8c32Cwm@E)%rM!@w!2M0MsU(R(V?XhcIE8UGa_jf=(H*?+iHnyzn!Ww8ZPxUHjNTF zFRXH&n7Q21&rn>+`M}6%lgPbA$nFryZXx70^RebJ>c;lU{Vb99RX?;xByUIr$@j7Hdbv*^4*36iE9X~v5*g(i)P6I@GK?yPQMXZ54 zSMzsI<{yMyOR-9})5qo$3h0ai@!EnDJq4$T1dkPKnna)JBBoF%Z(XR^T0qb* zP!=XALkdk-3NB*EYCW0i-i13S3N2U2M|#K_lVpXS!rQH6gW5vP)}mXI-UBO%G2K`c z8~etR0-C^DV<;vN%EMZULo3CRnB;7b6s@7KEuQKjdBc}T^{b`&OVSU`F0sTG|9`ReP10uj_P@Ed|37AE z|A}k=h~EAY!)pfCSS=dYFZtT^+5Fh<_iWQ{mgoJo z&-yb)BEps0WqRxU*dnFo)w8`bGeJ{5`*2nezoU5nCoT5ZnoEdy!%IYg4U;cM8gARK z=lL|+e2b6Ms2`1YDd^6rd-M>}h#h#U@%3(#;ZRM-u8ok$+jeflMhl;Ou7|b{WcTf< zko>x78p>Fdn!wiMXwR-cGAOwBN_}AE-J2!`?7Wh1w#*v#b>8KtHl-bIu-a~y$S^3m zf5>a7_T^5aKyt3(w6K_2&yt(65g%APSZn>W$<@yXOPxC6_ckrM2coqSYr$)4gDbor zsNaT$z^9r)n?~W!1sa-S4_^(wFfcUsmr>vjWvP^X(D0)ZEv_$L)@?hrzovz!Yridg zCNx9y*V86354RJ>>-}d_z%7Q+t}HhRx$_sD9n1Ut@$asVUfHiQ^e}oZN1$v(VWy@I zx^Dp_c08*%^XaD}V(+f|{2EdzXVrlY8CEJmCgW}|;BO*BQ+=YQY{yD^8}=<-nCt%F zx?I!Uo)=a{OPcm;&*prWTBdl|O@)FMdN$YVpVuA#RckKw)@@&a0AOI75Ndt8{}*sKva)vJn{<+g4xey%5H@CL_u_^#4i|+s1CbL z?#E`{IOU|tG%`9Ox1n$5o|wk-+wGC;cLRO5k2idHJ^gvS{KN{IR9BbH8(bd~>-GJt z3$9|culzi}+27~Uu$wqI@u~r0;&Df1WA}4orBGK? zu^}2)B;9nO3kWrJTCC1d9o1&vyG_C8IY1?R)aLXs9?X`bqZ;maRn7C5`e`NM7zu#?O*505f-Vv2 z9;bB>^B#z^a-ML0c=k0^uoDp$rup>&!UKfh?7Dd494cG{8SCL zj+I(>B+yXxhIn_Z)I|Jo{g}gqRF%%aCbv{^i*(3eycBi4__`K1HIevB6DioY>2)LN z#~5iv(ixg)SUv|%8qT=M$Vh~vo*YT`;%27NJp*u_fjY?0rKo#W){t?Vhv2NA%_)y? zsV=xI!boO{a8`#L8YPRlrk}VwB=HdgataH1Mav9Cdol627R$_5;RM4`>|P2E#LgPF zj4ZXxfLSG?SFk}6z6cTDF5##(6n2)L@eP~AMrDOsCJn3M=1_!42Eks$FLwg3>y~_L zS8}!nYG|CWiH`xJ(zPVgDhcWPccq(|W!=yKKA(U$QL_cd(+uUaODf|JaI!>2ve(Q~ zo7g#x`e_2l%zAL<2mPE5`P_yT*cYBxCZ{I1r#n|0mC;GaRR^b^1LO@@<;m3KwXNiS z1?SC*WLQ&;e@Kw(^z#guIm%(zlho+bxzq(Rl)`xjPl|cej$>GV%{h z<{f0_P1j@=>nD|XVLODe=G_I!tb$B%fz)b&1Fb+tq3|@2_zPcnf=N^W59oS4Jk@>imsfA%yLW-ZQG7II4i)xA+iR4;h z@r&BRCWDe@=AC?RrZ%(WV-NF_b@3};FPFQlS?HT)O`DS|r9c8t~F8@}qR{-T^`3KVCDM+wnrv=hGXHOj$DY-e@VCf;krW}j@w2kEFJqle zi-v3`t{G3|XY86ITJ-g6>TA5&T)$R=OKbPn;dU7ELU+KA=PHy{1bm2Isth>pWw#&P z+s_NrZMORuMU5CZaLv7{E@C)hrfyJG5u~!aAt6I%@r#^MFyq*_xm|#m(fu)CfqYP2 zdGytxt4d(XgXr;v6MAFn?cn!N9<=J{hKxRGf|=VejBUO;rMbB(h_GL(FbX3WL_n*ykkGVi+u9rwvu+<=nBv0p}*G2tgri)yXWkq>Kz=`dd7J7 z>Nhtk_FB?z(4tp9%>2sF*IJttVm|5J&m&v+F8NqQKLkNbaL`+nJL^a_u_mXEYS2Dz zj0jF`3F{|svTxQk8o5EcA0vMVWrX%F6 zix1J~0I#*cwOAUOOYjG%Ky#M&#pPgy>cdvTp@uE-H}&9lo}ql)S&N0csGlCL23-*j zPZIL`DBuDY@_>#V3gv`>{vo@!NS-Iov)bf%EC6;wFRb4KHT%ly3KkXL9NzsIbwnM- zQ9}!{qEYy;TJt++gCaV+Vt=rV8N&q1BT?vgA z2(eoU_DGC<#r^GB2~WcPUX4W-37>nV2R%xQsS}R)KudTpZr3Q|q);v8As6Bmo-q2% zFCC!#v)T8%5VTkBM89X`n{oJCo#Y|8Gs;WRpJfyJSa46zgn|zAtR;#k9QQITc`-a* z>S;2)E7@B-IgOjLA)H!HHxbvnCL4})I2*5E36vW15NnAUQAtbjOgkllaN4O_&=Po1 zYNcBQ@zKJ=K)09%-{|9Kthh)aaOYCEVQ=+&Uib z$4OTNhwk^Xx+YCyD|uD~ zQj1mYZC2JSIJbW#cRMiOlx?}AmE_AM@r#1(=zJbKe?UKfQl6i`75p^`TJ9!E5c3Z} z@(*K3YbynkqWSx33-UvP!|{baXdyo|-X~C)1rbcv=6;}%{ zx29ZS7T)qkYuA!rFvxc>`VY3Ohq*!lq-T02@+p`yN#A~jk!rw5=X(vpAOfjwU4d~Jx*z{fl%xk+(+jPcNCReK>wTs- zvy{k8m}D+>Qz~1FuC9`uB#WLAi)@$_)+(hM9AFPDsWPBklBCoTDK(gqCT8&mgV;&} zxxTifL$u`cYVjLlNwaln_iD*?=B?+L(zl}2&Yq$^U>UzMIowlP1cv=uEt{1rp97XJ zSeI{UZfn`LwQSp3wrwrj{)LxqTbkR_+<#Bs)-V54b9?pvU2}H-MRT_9|5BA#5B?$68r7MeC=TVSX7F^x2Z1^2qff7!v2^qHd^y_>dW^D zy#3YNwY26w;TpR9v{I)WwAS9L9a~nH@W=T>mwdz;zkCRYT98ibozlu){=PeU2WoTn zi!PMm0sR;jurj8~r`!e&w1*S35C6!^C7?SjhGY6@t@HAJe5@os_8{MGIm^PLIbPYK}8Aaj~$t?+gQN%7)ImhT5vZbr8WX zM}rNK#@EE5pM~Jr(r|5#&I8YoQ%xb7_}k>~usL0rG0T8FAD{Nd^^;qC#9NqVK|Eh` z8^iHV!tqYSf$y7K!a!k%f50HPxVR;d$~n^*kUdPuL%|&B144QRTl3qHJihUu0FTo$ zsPD~T4oKt>0+lIzF-P0wAIb~kgr%eWur0_4Ix6F6BtMvYZ4qR|Lez9Z@ST`H!JIpW zAIvcTQNuK78Nis_6j2C*@1Xc-!!hZ)ku|88IWAByOI7y9zLw?~ zYJjNab#W_{T8n`{EAFIM>}iqf(%o^A=s*)oUb@*4j|;5y?vC`zvl)JzG+%9upe&*( zKE$UoO-(QDA`adso^hupQ`rl?;%RlG#^x4U_ufi+6vtH;9RIW>LzbOpE$?dG<+0x# zb%=q)jeCU3Vg+@u2fMN3;~7M*bqop%w)B`#M^dU#VLBNH(8)_&th@y76#&u2x!;3N z>J9g6>q^9c@dIY~k+TtIfP^Q)*aj{hw}L^}WVKroED40?C_=J^j7|;y#Zo573%iq$ z+$QWl*hO4k#`!X$g%~O2-FSuMGKL5K2LSU7|X6NrB z<_jz2?K8+1Q*b-JoVOQPuwYdnE?RgJLRtYA3SkP5G7F1>uPp#lpE8J-nAtBUaBlkK z#c*7KBnkpy-O? z1I#JKA`~5BkqM^g!DNv+lj01aGP{k4XuQ7y@trs=pohxuOBU$U!XY#WGcl}{7P?9+ zs>zSQB)#AlCK2+qc>bLSCLJM3NHCzMKR~fmIjAU!Z z+#3ejn~B9RDWc4`mHgT(y^zQ(Q7A4jVD1TJR@5@9_#H`uVpeT&OjEKdhU&&Ao^?r` zKDD{Fwt#;*ByK<{t zxz(=RYFGYiv@0k5%2Vtpr=jMYCLZq9pE2Ag#L(K}pD|pHlWfVivul>5yT4pAgYUgP zKDO_vT3JAbk`$-KV1>Q^>SY^N$&fxT{M}WfVxE8LvkcFDkDlFt1;?HD?VaUas4g?K z$^Nu*Lt_YQZ?ZBSXQ4UXnZESqaa3=fM(^0bp^N-6+(6EsG2Hi+kN!4SyqhH_W+bc~ zeGq3NrvHrL#Qgum819rUJ>$<9F1hxjh1xi1aOt08xQ?s+!fV1F z!wvDra6kPVBHu;O4k3;;_D% z^BpJg?H^;fQ5b(I?x#lm=F{bhBSI~;oz-oN0!31(&imTF#BxRyyQD_!jO#iZ+nOH>xc$^t ztaEFR4yr27oem9IyY=nFvZ9Thn`L!G*YAD0^>u`qm;|>xT=G(t`o^&F<^=WNMV7ZS z)+4rkb?9`vu9itd0m#50Mf8L;*8Fzir9^sdHmpA4 zZwxCga$n9jtSy+I;i~I9Vov0&j||o>u;sw`@{?J>ub_8&CpTAupYU8lpvjrgX>~}F z7?cQ#jz>b4WMk}uoeVsJ9;?UxWf^No^8hY8@6)@hukKvt5qpZ?u0+LZTc{n=b3NYT zd{Qn>krQ`QH}1ZWsw~Rz1UGnXEDnH&H8;ne^Mt8zP0hyK1kb6hTSW83fR^TNX|Cas zSf{XaaDFXQTP|ET{DIq&{ymg#fUdK#XBhVmTnH6oCT^lH9_mhabsU8US-6s1)J;4= zE_x5$Pzb*}NSCH~?`Pq9>Zi*+AacT<6Y3_nv?G4IflFylyhw4xVf|q z1nL?;yo=(7C$_}=qp6u8?s*!E3LOi_bCLOK5plxT^1>t9gfun_B0kY#W-}w_U5zTa zp5dIxs!qh&9SNh=u!`}hN*(`K<2LePQG-HG8{ZRb#gNS4gx#(QZ&3-S5Q(iGrtgHK z8e5|F3n%T>PW;y5Cnyswq7Hxe8_|n|#&S^tDyRhtVkg~%9FpwBfj(tv5QWh>^px%R z1YHW$wOV>yJmCc@;NDu2HcXL+<_Cp zD6exOs2yYA^cF~_o(sJt+1JXE#JaA@z#gnd=Z517m#qT`SQ-i^T!Yg_d$F4B_|4RX z5N|z3LZV34fThvE5rSDaen%+&Qx=||9_<)Tne4>WQ3%_w5MO@IOxB2Ys=)@L(@t0< z38Eg&;D}&$N+lz8W1RR~*x{)Lz6xx;+l#Pwi8#wjE+M3zaVF}H!1~T*TI*vEvK%g1 znZ-+Fo?&Nw5P8(0;nK>JuzN3$wUN(#WCd%tLVeW$j@H1dMer(1x#Qs6fr%U?{VZ#} z+}}0n3t-ZmeAW_y)ahmQQv>@8jL^`?ziX8@y^^=x8@Wp~U$`fK2gWtgEPqjh#J_H` zXEnbcU9fwVBqd7X){r7Q3q%a^C7Ah#nWVo&3*~DI<$4M?7zMHhz%G|G8M7QncXqK? zjs}GM3{8#$rvX>VszCA^iK19=Q4)u2FqwU|wdgvgXoXc&tY5^GFJf?tG*^rCCyO3> zQ-TN-yB?e^km_hawf81lOH$lLDOVtrRF2VW7CuNJ>AM~+7)a<4PYSoDML=kQ-n5t= zTI?#Vo-Ier(I@gtm6`I!n?tlJIeMxAJ$;p)(L?W`(!r}q$=-}K14dpeBa2BZU@~B< zj6!c_Q4iw_iV+E9rcW@d)qz?1y|$#+yKF=<=Ld#5 z0V(yFES)8m4vH3aNS5zgfpLlD|McDe9^P%?ZtE=N)>+D}vy@wBDgU26OSu)^{g2_@ z3BU4C#s75aWXRp}#^gUPoxHsJ{p<`McmC5E$H1=7X2Y`(_mor1eY;Q3>}h^f67-1m zQ|Fyg_&cox3eN{wcQ`~Xh>yDp?BCZ*!am&bSMgSr_vriVqtIwK>n*6{_Fg8XGJcne zh_&)z|D9Gc^TFr+F*N{9xs*U1P(C16i7eZroVjdpO-$uU>!w^w^7Z3ci ztsA0A_g5^-sCyP0RWS|wy@!pid}s)hEjsUObAL!ZXK=%+%%pzO-gvpQZSN9(hoP^2 z2e4&o@^&}GqI96j+Iy2o+X(3h85F6wpt zhOg9vY6jhph1G9H&4ipZ9Gn_eKV)JsYjfH5oj}U+gWuCC@G0x>`>MTOudO|T^mYx* zH_g7|?YS|Rp3T2>a#7yZ09X^c#jCRMXvKbwngUjM8*X!9e`elCmp{JmmI*n3Uhi&U+sF}vbv z?75AfvAWVMw{mrxO~|5FbA9XA3x0!h4a?)nRnxG5rM`^7l~&znHr{9<417go)`GxW}7doea65f`akUvi#$e#%3HH3q6Dt*U<(A z^6vsZkc&16f1u0N*XL^c>NPq~=gXZ>57;cRtpJ5<7ZS^^oQ#^=iuVLw6hgr??)O`cID ztOQef)WAprpLJ`C_E%L6-hDzqml2mnpt$hlB2J(+J$iW={+%1|&%r$BA`4prH>;C@ zRnZKV^bY`NSnuH|J~=@yRooN#6A<%D?!-oT6nk7XMLktO+H|+DvshTj2sti_4!86~ zNUg+-slwd&(>XLsvODc!i-DlNi;h_6tV(*OWxA#wPn!&jQ;-Nfp>gek1m>1Ux~4=1 zwZ-`%2+J~GM)A1Gy7XIuXSe{d!=6A1#ePC`j}?f*Bnp| zLo&OZ7Cj#x(lB|l?3m2;R5HhUilm{cZG0q>RM}qsBBm4EjBIfnzqI)XjPtT`EF4WV zK_@-#bEZxO)B6tHMNJXvQbA zOt#})Gbs!e-8QFydfFPfdL z;+^vrOjgB^WAwB4>ytGn$yhA;)+$*ISd`_Na>E;^TT9gMA%nr529gvbCi!k{wzff$ zsRHGxSCKW7=n1}NZ;)dPq`1^lEUl?d5UjH(emVsIL5~=~Bm_=UA6e6ay!nMp8iYuT z1QH`AX;G_$cL0T&ZQ690*8VvbM8)YwE@l*LT#|7_=uKx152)Y zQ(sw^c&$R~Ati?1C3e7^H$5f%(cDK&$=B9w1y_nyZArU9%6kZ9u(q_VwRCuuIM7py z(JLLZF6$628wX;3^pyP;&Aw(?z62@%H{1a&|JR!+Td>=L-4^V&V7CRkE!h3*ov_UF zEq|!=A7D3Z7x>fkc<|X4l*&(d?0c7!`>ojKs+Vnu_q1=z;MrPyYh+ZrJTcG!n1+$v zaC;ojf>x?HnwNNKSwNfos+Csx-Lt=g?vCX?>MRauQmUuU^$M1EwwIopMmrU|%iUFN ze?6`Ao40%X8~?^-Xp!a~RqO9R8Z-gZ)Ts>*0SzGJJ9dr|w; zf?bjZtpdclDdx|tERMSeGjWNJPduyGJLwqPx7tUw4}&KVM+9hpaonguFp)&>rREUT92OmB8<>Q6@E8D3?i%gr1ZD)jraj~yLPVEYNcM`YywfXvD$$a3{?upv2 z+&xQlSk6yZ^@!u2P8e40HhOpcLM`XJe`w9?v|rPVNh= z^U=TBmy~{PxA3(;c4G9IP)%oW<9NSHTThw4)pYYO(3PNGZurzjIq2DXu{tTS9m$hP ze66^&FnnlKNLV}fOkq23^QsS|P0l|AbV{KJJ z46`7|!{g-SVm)uiuFAyO-HtQUj*KkY%yx(lON-q^?$% z&V4b5@Gh9(B5Y77dZ#$>8b8D{g_DJx@3P!|#^5`Ik{7s&-WxO8^?tlYbXC1yF z4u25-z)24gz}1fnwTF8^_^R_kL3Nj7BM^Zy=S)K_9J6um3J7F+GlUl@r%e0%jtUF~ z;pcT=6zY697}|oG4e~gC)GG&s?7oc7w?IeX0|W$6vDIj*u8+o@Ghdsd)r1k7{9@Wy zUqP9ukM5=$pD@MC@!7W{cMto$AC1`Wo>1HTu%;#Wr8@kvp7E3MguSW}RV`7KEX@7F z1XOdv#$Sm8BZ(tdqAXjY{@5-JDS%3P$bxRTVQzel8w5bVkHdzz@W?L2rNw9hJ((LG z^JzT!(5{ppHRE+L1c%ne0D~RLM%&WfeOeZYsgw+u>0T zA#g>#c(*KPWsaFZWm+LUME|Icyp>vVOORC4br~=(R*sQ=1r5I;n|=WtJbO4peLM}& zVqn5aS64^&xy9d*K;DtCv%~=G)}t2q zni(<`iNScH4~ty8B?7KJVwYf<#)lNZ3*zTx8z6yuWQFlzgF|acRj9n1J4 zE{@+m6H zuy_7Z>jH6R{$5DlAyLv!VpyVT!5&C~q(R}n)x6E_0(k?HqC&nBrtmN8LQoU2LO(4W z%vW8GswAF&5T(v4@Hzw=(oF^!khO@(S0P1$Rz-J+c>6}WhB7Q4#mw1uY zYLTUPiqR^?ycK6CNwqhintGERfmCl%ikUTe8jdd#q2)->vaN_|8nke}?SMqE!k_mB zLMLf)wfNen0EKOC^mxe|7zjOq_y=~$k_-aaBVB>m$fee3^OG#m@1b}= zN*b+mF2omETT^{7C2tf;KGl|d6)kP@PU|F=+SZnSW@ZnzX7^)Czl#2%V&Y*+vu?W3%j2G4|}^U*=@;gOLkkb+mhXu?Edv+_w3n|E=9#;DAgr- z9s745)9IOo;SyfyD54~3s`%TfV__|Kdw*X{k;*w+{y9~||7n)e?vWvhFs$jWR&2j# zw}=m++3Ra54+nbHt}+p0PnGCuilu3{|r^>qwXLnz8sr=h*?woUT4o$I>tXFDNsAG?;-%fb8wIO zJF+vbVINT%+W%Vo I7rbhF`ioOu12ymjVtuyXj$>vtLjRd9uHaj@y&kpX?yN3n`%v|-+7+(LKm=zr3iLK+d|g-gAPQOjq3Dsl?qz@ zZ$s!+8bu8J(s1B&ki*r^OQaRxt%mt1#VdJG-ts&3=y5G=rOCSS9^Y!;iBQmbf8%s- zx4^IZ*XEHQf*pd&=Nmd2JfxmBN3G=_Zd`zAT_4NXum0_}=E7^Ox^JI&T<^)Dz5PP6 z;Hm9ekbYf(;UT@=4E z`L;T2K`3ws>dy_8SGo{>WcQbFh}Ug%{sONO9&$h~`Up4nlwPbDC+H%TKfDX(5ARO1 z;uKjS(x_lJmpIOwV0{`?DI5mi#@!K8z08Wesv8=iE{Sc1_Eu{c=xCEO;QXj4(!y2a zEPO^cTAO2Raa12}0d#DJ$7+Z1Yn!))p(f%$T|IYK6u@E0(J&lg$2#mF7eD6#H{pIdep@l$5p+kCr5JD;humJ%(DgnDliwG(r5DO>@ z31~QzXRWo@+GoG#?Dvm%oN@Nvj4|h!UtwP3zJK>cJpiY5`4I~{E|j|GrYo`z%CUj| z=jcqjNZ&hq014?t&d_J{TQY9CF=ma>RR%6Wo#g5O+H3UIryZHs-Kh_lOc13BlMuroU3dbSQ*@@(ApFOmN)j8|ih+!D|k5=mE ze)ctZjtH5%?@IP{6#Kqot{lv%Z(>6P0M_L@l4uuLITFW|HMQOfc-l!+!HXk#o~?PN zPI!0iK(2*9{i!C8!z_G1n6G5v<86GrSw(Pgp=DE13%tldQuK&baNdb~6ioX{<_=2= zM&(5laPCV9x3{SGdnb1UT&w}}7O1%MC=M&?3Uv_27V7bq0mcF> zulz6%1TC2p$lJ{3nFN+>p-?29C0EEfQVql0kiSP&5~B&b*U8w~Tw*KbK(YK){roB$ zzSTJ29$IRt@J3ouc46QB^WRoMI*p2mAzqVlqX% z@TV{bCZa$S7~lhRHj4oasMJZ=N(t8~9akqVfl0U&R*{|vuoq+*vNPCHo>DApmhx57 zd|25lMb2H8;5>zM(NN&iT;|W_d#cJ#Ne{}+1oc?PeW~DPbNO9qS%a!PfRf~GC~Knd zpCe>Sn6O1!{?e?x0wsH2C%dDR0k?O(&9b-BicS^BPW{jIlu?S?bW%5M2A?*APn*G~ z&EWra&EV4&%>Ty<=KtU|%yZ}eF`6>=>FcEi+wM&}z7c!(9@){e3V<;_7qGu2^>QBQ z*hO?LuV~sf`@!1-3qI3gtJ~9tY9B3eE1+Tao=dZS`EGs_dZ~8H({BW#hOs_dsF)3C z2srV^Ss@=v+;%_?XM<~YW!tO=+L%-B0SHmE4bwexqjUAsKPw@t$zDJ9onXJ(xe50Q z2q&fb=T(3!UdG9?M%-2gxC7oiQAM;{ef}rx$arVc%9t{ro1a@`mdZ7(KyiKf7uTc- z%bI<$E^VG7yJhunWs71X7hfL=Tea&g#!7ux|5k_pp=U~-SpVa$#|!R^x7BNZR)r=!zUVxmeBC{YDytcEc0P(J)B4pczBSW- z=dbsxlGMnSgb$dWiTG#revKl#Z+z$99sOPpC;a!d&(e0g6uD0RY?-{Ju5=#0g1W5% z1zc%9mxLRwpZq<%ANQ#t)OxgWQu~FwU$ygTpLUhz!`*7%W&P%(#H4Scq&w}{pY7Or z=p@j9rD=_QpU7cXb+`coSKf}(F^MY^;rOR;hRmeZ1DIc9Nx{B&=NO;OvB`53xD5k| zi$Mu%JD|Yz-R@eOEe7@`q=bUG7q{y~y&Fqx)K6@ki9f`QPpS@{a=yhxMSe`!VS<0) zkox69>O+S_JUtc2+|1fT_A`*SK7=zJ$>naTr%aOENU72DFvlE1z0r|>f>KbV}E1#a&{Ob*;I!Vr(5@0JjO0>`z3=M@hG~gcSM5nqDQX zQeb~LY-ECxhz8I+U;|}28CXl9xl^{akPmi{%oSJ)IxbB?ff&T{?bEyc$n}C4pO+R= z5>eqmtVG6L7Lz9e(sLjbg*tks$;q}h%DiFxty;3}=@dgXS%1sk=WWE<4H$QOjO~^S zzUqwUq_q2>49kO=3z3<-U9qplnHx_hcXwn+&}mjC=_E+XYJAo_an|MsSt3E^uzPT~ z0r9ya+bEyZ@0i_+%q}Kn!VFwyIFX@0<3~&qd-bz=hy?FF$$QgUox9OP4VPogJL}@oSTSa}v7 z^L7eDJGJD(weUjc!NOS%3_DHkdmy#L6!owYx;hh#V+#9pX=|Eb`t7MvAEysjSg~8rO_wB#ixx(?qKeD-C~racn-990it+eV9|tWu~w8Hh$>!;1#!NEDdQqMR-8(i z@)lG`oC#)>Y(o}BPm&M#=IX>un1msfumUB8P=M2W(P!wY* ze5n*h)Cr%qzzbSuunD&o-9b+Qhn>|L|$+jzwYqGCX= zwAC!Sst#fkL7XbR`lQyh#AI)=#1G{4j6#g{L{ssC@ev+~Nf!ow+$GNq_Uj|4m)jDW}-N zc}G6uYQ|qbv3qs1A^1+>I>)!O_p2{*o(yvq)Eu3kbmhV9Ti+Z%SbcbwhE|((f5$(w ztWK?M&g1P#!H4mVV@Y&EqUoWeb?78RWb(Y{z=Qv+kLOt6 zFZklybRta@jw#i6y#ai~SVHSv{IEm(dt)RFaLx%LezZkejU}unrLIEGIAW0M07-4E zNwsKA^#u7Gu@2}W68^@6ezkTe4uA_6YJLRA~<&`Vp3X$?qC#B3Wu1*nq)ga>vB*VKs#XBHa zh$L=TkPj%5Eib07Q)KM6#Ln&|9H7OSfI`SRDSOaFX6>fuq~w>5r(dBF@uW<5qbUq@ z?Z|}JrV~iGXC%Ul0gAQB-sdq{t?H0Y@g94<{Dvg=ZcUwbaHD!c_>iI8vy#2 zkn*-LQ%sveE!yI@_2%vF%-e*@-Qtw5=npkxg__lREG9V^gQ+KK1OL#+O(C8IEjNmK z`ABly3fif&G>CgXB-Y0np4@IkJLg2_`qBig5htv}V6|y19lOMVsQtAbA8Uy*x;ytO zazjnhehGdrPHkmcDoL!*H&hKF6s+sc-v-40aAJdZx_jGk_@VLpwW#X*MPOQ|%)a#ww`R>7! z9jy9J!p*@=HM#|_)$B{PIk=|mdrfDcfR~({d$2RkSrOj`_HNOl^1Z-?FIsawU8${d zsznpEy^(IiD(t^r_(qcZnwa0tpb9LCexQnAaBd%qJBH$pG;zyc(LRHVfhEmXgIpI3 zeTJ$?$Ba9PqA#c`)`d;YXl9K@eKFhVHTNXnef{SIN?0mUK0?X?ikW6o8bwm3k}PPIiuKAw&@u_s=*xX+p<$UER(1tZ zR$+LOttzV^qCI`^NZeAABd>DK0SYje7_Io;ZvZf*Y8Yi&*g-+vB#=JePuzm%O%oA)jn zH4}UeQ~Y`3-Qyzl=B-cf-|@2PJ=G0q)UGRP`*T(7i%t5gOB#>$?oZm;XV!m}(J+*FCOO;x9zqiaJm zf_;1v@;!PasVN~}d5LR2w=Sx`|ES{rRlfNbsAt^eCm%;^)oiWtVWBW5*8=6pQdb`Jd5&vFcsC!qs@A&Kfgt3uZW1m0S{l4Wr z`O)BM-#C%0ct481pFg(rM}xO^Yf1wDUDBWqj&~?&tTDbfHh6CuQZ7nRIbbT?)(p5| zt{5YC0F<`k_~Pn_u$2j`PbL2`fR1xWUV@I_L^^IsJiH2WCd)pOJnA3$Fv)hqjExY? zvW~UZAdLP$B;#u#DaNC?A^l{CBOV)ocOc=N#CU^R{PTHs2O+4}ely&WGjys5Iyr=S z!{~xZoWwTMkIEN(k2f% z%iE$}_(h$JHP=Qc2wn=}P2)6^LunEBNRCKM0N|?ILOSG-NMwd_43?8?3F+?W3j@T@ zqS(m|eOz4(ESJ^VJ~+S}%!oPe12~d)-emo=tv~oc>CbE^UdP-GVUEnj8?s54L|d(Ws-I*=K@Iw9c>>5m}9muTWECQ)dRX$(rb<3Je+ z$b3C7br^r%Q9q__H1jPwYf_XoQ%tn|BP#)tRi=p9F_6`u4rxS(tgpq|&W_WQPy_~X zi~ub9TKp2zur&&_W)wSLgE6qd>Z_0Zp~-#g7Dn;U1=Zw&HK{xDbJxi2*AM1yaEja1 zq{U=9WErE9VFNiQ2lAjzc{@8XU9LU`jkpbCPCYgG1uL?T&P#9=g&!v4-s}52qTt8Q zl1_Bm>q2sO#e_dGrjCwL&koX@A4V_i2v`A#1(=x)?gSeL`WJfgOfns+?{Nr-_&%l# zIcA_G^xbO2I!M?lH6w;a-z{gqfEB(HVZM3^F-S z!jd^gAGC_5HqkgX>_QtB%Y@BA1|QYUc>u{lvS{C#83%1*MO$*JbYq9FXKpjexsD1w z)s!jMjkq>Qmti=u*7-lIa?4$4`@o)3H`ibOR6$FAvu@!oh|d#DM5`9;bOeJHcC%olAS(B^Aa6e0mMo`>g z-QrJ};@L{76TElw}^jDuDcvVXnsy#V{=OnD;t35Iu&ui2vDuzb}w4YvNaQ@*S~LdhlaV ze*3ag>$*}4Hb1$u^e~KnNUyY2Q$6aI;21-Y{e$jm84 z0*oE05=NPc(1t9)b{DM_Va6$vLCQiuc6F>&lo%*Zf{Mc_;tV}8Q6(lLPQ)8ZYOXNX z!X)2ci75zi4j@Vx7jvMJB7}s`21Zw;Jivb!D4_$z+CHhw@W7RE=~ctBDLXm4439YG zClv;$%1}~)x7m~*;i6u-z4YLzK*4=%=51wpfTsMWp6sBRtkG;&GolpPT;8IT0i1VI zDpOE|oy~%~dKDgq!gqlcUE{K^brmYZg6q~(&bzas?n(C&hZkp<*scxF; zrl~H@SJ>`yaBKfhf&5M=(uXxB>{8H*Ved1%1_-}eq zz5mgD_rKlU{2xYjKnB>kTXxXJGsQ}wKFkRMALUIy=4n_b&`byE9dcH$(qJ#o(SB&{em#x3a`0~fqG zvHhVBG}gS|ZHnraI{tgAGqPCm7qo5ochDA4-k8)FkUYb2#&S@~9pjV^mq^EJ$rgRc zJq%>%N4)JBe6}@y*}+soEZ)<4*Iv@;Z4lIPMjRm^{#%WCyTit82g2lE!<0YfMD^-K zk4HsS8lw?NoP~NFyf(q3BjK#IGv6r6*DD# z-qlo*08ciKZ5GB@fG9j9Ce8q7d66v3FpRxK%Mhh|1DFr_~%jKOS_%1TW*viKb6j#E?`h>;^i4Kp( zvSzg>XD~uPi?bjGfUqIidwI52od85}KS^O@q--NdimWj^=*N`F{F-r2K|A_7GKcGy zqv^1G9FW8uOVz}Q{E=s>@DP^qw};0rk!WD4(4r# zLw7bs@0KL>i~TOT=0h;~r9OFEj3aH|r68_TOlzsVirfPLlcA{tA6#KJS+~?UK`TC{ zE&qZ&?YT+T?OOa24V7e-zsr?&0Y$sm6uNB;HE)I7 zSQ6c8vIK`=M}k?G^fQmK=&V>)n2z`CWVTqsjwI4InzJ4Jg0ErN)$$ZK4ebLYv(lYC z<2eVX;oR(CBPE=@t(Y!au3l}fkB!fBu;)uTu0?B_`@0~d}VjlIAB%C{k%Rj@-J;R9XPa?n zDU0Wf`=+Ccb=h1%jIgY(cmt6KGU5HwaJ67ASdaSUK5r4Zc#U4kD&Q6m%Ugut?Jz7^ zspPdcq`zKS0Ie+uWbrG=oO>v~0h({wTwt%8Wvk>L)GIX{;2&=0J2tbS&85DmQfD*4 z5oPIlUBOY9zg zh~O^5Vxs^z0!tx^gR-hqV4_rth=3IVu5zHPnS~W+2eOisqFkvs2P;WqOXyNbGDR}w zzH62cSYlqF|57t)pNm9LC*>=}Ma@#lxD;4fxeDkJDAGth>2)(npt9_|s??P&yp0tg z5as@6!o$*ocg6)}PUVeI!8611AgJt?vb@V))}TyPVgZtqwW(w^sPcQ`GMS|ODYW99 zq3kgmC~Fod5VFtg@_$Elbsp1M-E=u~x|}&(&YUi1PM0&M%b6z@Euy|b!Z**ZRoLv? zeaWNCPgRGZD4B`;w1$ zgIoY|+z8Lxteb5_)&gXgU$Hml79=?% zp@~T+p|a(yd~(zooiy`E7M8_opTnFTd1&9{L!W08>-2;ou zV9r&W*ih4ro3UDFZw&=ZK7FNQGWuESIXs&aC1L!X9jZnnTy7Ksk*#n(BhSB-WmjNgK-H+!JCqu*Ks#Nsb73c7Mb#lr6pVR z_&W_t490nox{~$Sk}1fmE`YihhTD|ZfD0b$mKqq8?hh<9XOy1M%Q}KB1r{_7Nu?(P zOI;A0!&3SkQ-Oy{aEdMPAPbzwGcGDqk$QG^FpiI&&=)HRF%$&^3j7hmeTZXXQ>K(9 ziq~UJao)fb=RGcjiwOqeG;CCYnV3Zq6PsDtdQ;N7T&Oq;CShVFY$$+qEMQi%Fi=te zDDDtaz<8GllZxu35{fhnE|CTLuTn|-mP;>V%PQFtDW&XsU70+v>^5+e2P;czmflrK zqV)jbo*<@Kh-xlxR+f9#m3yl;nUxAIn8})TWlc(1EJYTol08+Ww=0FO*s>SwiuX{N z(yVl#uHrQtts0koR8|~C$VL%@E?DI=O63T&V)Sg>EZeF%9)B-q3jWhWyy*mQI>DPx z@TL>I=>%^&!JAI-rde;A^`;ZN|7Ho^*+iF?_{IOqdgR;%qyztV)-(QB)?=iMH6HvY z>wV0!y$fIbudFA|u_7OsBD=rkc%xQF$tV7aeoZvz74&^1nr~-nn6BOFrid7%<-f8X z3N^?%KJR{xRpy#8W6i+^FgfPY~<|4vGano==n`8U>sV>m1wHjwWjTR2r3j%_V1 z)HHLwL*_#bTVcu(X)>T4>7(`qv0CHYA4Y%WbpXn>{XO7A+7xwxy+6uv{qmxI0oL_F z=n)&}DA?&~XW<&%qM@do9U88UZt-E$;vN9~_E6^q`A>N?};RTa$vb%@H1f zh3+Z=klmf2l%5$E_#il^4QWk>1mSSu1w#QsPjnH+aWxagKqLPn>nZ+^upU(+y^NRw zJ)oM&3oPrqHsv_KsaFnw-fh(s>z!wp2Ovb3*rlP$@(^ixlv0R-7CZ|Swy4Tq>J z*QF+jOQko#{HT-g^nRJos-1Wxpjl!&s#P z7Gkg|KkIW0{FcrM9Cq2Sx1gO6rMfUUX)^Bq7VYrUKSDxN&H$%u-8C6oz7B`ZDrnf% zfWD#KzTzFqJL~Er6MwLc-vsUVc6?5_ss^n18wo#yS3_T$5$*WZ^-{(@%i?ZAYZYjp(Q zg8Gy85rQB3CvldC?67p%I~zCAnCR7yt7*h697r57-rMhw6T1KsfcS`h^ml#0qkzY^ zC(lCf>1_)$aE}E>H~#>S^PULyQ;?M_-ecw45`EL6d?UNne(emyD7w%pqgv_+S}WXGc;B{Rj;>DfFZ4qGKZ49DtOo zQh+f$8}PttmuP^JNXPOWEoB1~IU0L~boe^yw1k8uk6P6$;FYzMnn(n&6#CpELm~?D z@R{)nI2{bj)H#_sFUS0);_weZm`)8E2sqc~kQm0#>|kcLDl&T&q?Q#~!;nB=+EeY| ziA>4r5NCddWV;w=4Vh$Xk=c*wfnOk&YINp!2XU?`1lXPYhE5>3XWvP)8g$R?sLdWG zIDf1TegfJFTA90*nH%7fyONx{%#?Ulk@1v-zq>Nec+he)T$^iTdclyDCxD#kYRdzf zj-Jc%2O;_T5SW!F{drp`wCT(Rh35i?m?&iIb47#`*z>3jk$eBFvyIOw)VVVfa_}5W zx2ABo+{2@ZylU*?o`-2?9kP$XX_=1n1IA=m5plK?4M%b~$0V&s!P5;qqTx_{EtyX8 z%U7qhSJM-kU?@{xRBO6Gkhd0`k)xreH!@j$%xfLF*GyP!2UeCJs|bUh5Kv-P2BbMq zSA$*Hl8o&-xlm0Gb7f8iJSoidKzh`K1g1r$fux^MH(hk>r}YIDL>MNDgYO?b^5ky3h?AYp-JHzJQ2Er ze%X?a>!g{AkS>ad8a3lPi+e^x^B*kAgwqpI#97VZV`SQTxAVgi?hK{N58ZI04Rnc; zn$}7G#wuP}SG=^DzO0TH<-}vEi~msaRyWi1u?z!XYZF^yXjZa~U1Bs&FOwASq;R*u z_-1+~TU8}iQ2y*dhV3}t&ak+G#6PU!SsIp-Y)V3OOOr{ZU_>d*jAE_pqLk;kVg(G8 z08SBbQS3p9z|*XVVE^Q2NhnebLEsf3nYR!Ohxl@(IT==zcxSeaZ^R$^9m6Iy;7R(?0I z>;b#HQCe22SN;T8+?-P|bC2wvlk6oz)`68N5t5qs6~^%_26W}B?#Q#=Y> z*Ajm|u+k1^q#X0z&pMC3^ZPaY=*tJ%!e&-K?%NS3pRqd4 zoO=71{|+KJm=Ij9C2UCV8#k-HlCgZ-Bgnar=3I?mYz(;Y)33h04f#*#U*K$;?;d&$ zomCNDokf~1zx~g^_rcw}_%}ZfBv!o4*}rO!hc;-yvc~3xna7XPy9-cz8Hi_jYk$(W zu7MsHvaGML`kdPH8TCkI^-AIuo%vujYC8whj^u2Ao?7@;@3qy9+mB>HjlY5nN0hH_ zwOzlO^2X!+!g}S)tuf8B;`jRHTRobC+*8F%@QFx|Q+AXB2Zm)|e}*eN?jDJGEG2gu z^|N0M*k4a$ZU15*%Iv5Ot_khA8H{PjsD1V2C+SPPihddDx65CB>qSNv*}v}n*Ujoc z{d1o_Br>`-($RA5PrC@AynF#?XxqOM5>Bubo)`%xm^mLIrEa*`pLb~ zogaP=PhR_V)p>H6az9&L1G#+d(ui@;>^WgGYau`8d4yhFHbb!=#KhsR;yPMzixlw1 z%ai};IMRJKbR{}@eQEM4rZuQ00_iiuWNJwTuakqHhdVUi5Z`3D^GS8bH3Hgh66vW9Dc#XBO>wc-nABxW2GDZQIwg4CsSBx)5(7$LT3pQa zB#lmDe@#L;gc9tFn;S#nlANVXip-HxNlO1Mx_HGso!dgDj3fmuCzDAhY^`uTD-+g= zGm`!i_&s+>{vIz2a_CEx9qODsWY6?wd(Y76K7y&=2)#a zh@85lI%gD;Gva$

B3#ZK|7N`Z`P^J{Iv6lyCv$y}l`Jqn!BFF%Rlbi56?q_{;Mo zki7ShGw}xLyG_$f2MKoM%x4BvB{TmINm`zPClj46SI6IXBfGB1zHdNN_EQ{C=T3CG z9*1Y3H`Bab{JO*>SGk9i6AghOEgntyr0;#NmUc#x-lvm4Zk-OrpmML#1(8Yj+tX1P zub3v-<+GGEV8$&4BS}v6(PjSX@b5OE1Dtb6HxtgvNC$iD&@c~bvOb!y-Wqt*G+Eo_ ztYmbSN|E^l&DyA7eMjcJxPEfx+}xFzoZrlxNO+EcCdUw-5(wrjXECpJaw;&Kr7X@o z%j`0Fu1vR}5?;_?n!orgo31G+(&Qy$Tw+WLJVDgwrW=j4@_Z8;j+JTHHq*izo#!79 z7QSN@W;#*Z01$R!`3*9nG)~L_zdD9*fToC_&y6-M8Z%88g`X#)m})ZZBqlCP;X7AJ z3pOo2M=t&W_e+p)zr&d`5xm(@-ZwCBg2h{o~Zb$F-{C*&+BaObJ@zygsmGt(0$H$G4`GZg1xQi7j1i zDA*s!Xm7}ZXjpGiSa-8sg`I*yx!@_da6rO>QwlF)g>?Oy&uPgZkKwn$Tcn=R|8lQpZ#-%!exP(qMc zkf|q$qlnK3R-{QQ;;|LkFfpxP{Jpti08uf_t{4lfjFyVO8Vb$sSAJqwrkhp$hE)#L zRT7jHGmjR|v#p#{U)6(|VnGl`tm{#kA|@Nw|C0!v43^B;pqVpc@r)TWwgK;q(wWz0 z;BO_|IKMP0&y4oB8fX&g;@|A*AnlBqpgBv5&jX)jW`~hg@9q+otT9YAIQ9MzMR&W` zeUk&58Z%bzH(y}-(#I)p-EraJrc-`L=?0z;Q=LxvA7`)FLitRJ{pI{U1-^y`|Tx+RZGT4#}r=>+hSE|lR0wlr*2G_Q>^N?>I63Who zc-Eb5zt~#V8sc?3Zsyp7Rm|bHc&|tJzOD4#@J9c+*7RS@he@c#J zf?Y(gR_WOlIoMZ@&NTmrrQaV*&#%F`G{D-fP-xlkoA1x&wzZm?wU(b;v-MoRq1&~O zxmiJT5gtcJUF)n|D-suOJ3FLmy)o}eb|n>lM)yv~L+I$`IqI#CH&0x7aB%cWhG5%j zS0~u`rO4Mr`CQ?{8~ zR+nX}dtjp}ZCjs1cipSrjjm`&HX6RYXmBilE)aAFQOdx>Yt8@GU1)-H-3p+zi+rlC)`}2WmAETGYC| z`Rl~hz#_)&!GxXg&aH1j6S4PVXhY*Cn$G7(*9I)AUYpuF|EwOrtybSFG;Qw3<2w@3 z>vwj8A?x(sN-kE{n>OrjzJu-kP!i7j;X2%Oaog2JF-xkfZk1;_SNrCFb8p&bv?<4C zo9|*bd4Rpq0J%)*^Lds*)5$LpINGO^$yQ^{yX;4_Pp=&7)ibuK^{Uv#d9k09G z>y_;E)lZEAW9#Q+jnErEzn;0SrU~*31(R&^+Spi5PMo)^c=qvuc6*FpmE8})&Gb`Q zX*Dmh(!ixbsohSSuZRTJ+-9BUI#9@h0VA;&k}>F zdtj&&QxTaK6fYXEzX~3$irQAq$(CL6*%bG{d)w!$l`Dg9AUH~cqS5OMkGa=`)Zcy6 z7IWpU=lf7jbZ4j4nEcOUjolGXs+a%z8il&qHSiwZ_Q9|8X0ooA_gMW6_kECC?@T_~ z?Pu3KKJxnBQgLY3oYmoTZwEI7{I+PZU(K2DzwkiYd2h(o@O#g_9T<$qrR#->98L2v6Lf5Vh5< zu-nPHlEnHNx#ZxQ!PC#iS(QcpS015N4)&axZ6UbXwZCUvvOZAqoBX`%MMBA>6}0h7 z$n$I5?O#KQwy*oWKGqrE7)Fc6yHoy9F)nvL4h)EU+j~NtG+y|O6dUj&JS67v{2$*v zXa9O_y1&78$q|9-vI`JT1(#^_Uf44;_U;>bNddPQXShyI&y zCpf!0>Tf3uIW4q)+vugP*{mH54~@iay)E9cCUB%syMN;4D(`V(kI{+7kl*h=xhO}x z*n{`ziF3Y2BfspQ7=N@fNqf^f@Mk+lu3=Apf0LB`yU`rAW$Da;q@SbVbJ6C&w5hJ6 z-P-=pg-rALpyf*q_Ak*%UV$`UR=WgD+OJOvTO)Qh(2v-Fbji3Mp{tJGg0{7__TI|e zd&t;sC-T@CB7UwIZ$W}?uf1SFO0jV~j$~k0AhG+^HrWB_Esm*2+z%%hr7jhx9tGJr zFwt8|BnI-x3ta7=vWR(tYo|2Qwj;m3>w*q#(0W}IIwp_3GE0+|%K+K7o-PYB8L0})+|Cqal5u{DX1te%6Pdjt@= zlXLfkEmY&^%tIh#s-87I_%LO&C~X}i{J?Tb88U(cp1DVCz6_Y_C(L*jvua6c*Ia3lVaIOT~!!ZRSdn@57{WTd)J z@!+#LF3N$Zu3F%?nLs0@G8~=749rMxYGFre@I1;-Qu+`x`)h5sY9KwqIQujxCmNIu z5MQhaBUWdRbx?BJv*tPFOg3bLGZVV|AtR~58)A8smG>E#wgvwM? z4(XD!6r>{>>WGN?r0o)LXr~UK2JN9GlN?lM@%iZVL!fklLApOG+{Q8e3MBt{C;g}- zyac7kJ?;rTZtdB7^E4LG0Nx&47Aw|ZV-lZN?9 zD`)I|P%vV$7YffZvf=C>3~ub8;hNGtG{n;yq9Zujg~d3hq4i6GhdOcJOql~Hk{yXQ z14N&Yki!P)C1he!6U>*z^^+ItDT`+|Q$sPuv&I=;?iVkH7B6KN>znbGAZXvg%#~2? zdce1bIJTO?TPx*msVh=p7~9!J+YI?T%=o*Yd@BSWg5Yh2maLNUwqp4p72VXZWbZg1 zVps|`D}6hc^}Z>;c(C-?c2w<%fD@ue32NR^C&8Ffs!-N%v1>ew| zzRd+$*sU2*$x<@=4qTGM=447GR4ki?h^@2%ME6pj;Q=93Dnd*pgi@unft9gQEullF zGz=W9qzGGfOTZr7FF8W-Py6!JHlMr?l~tLR zzc4Ic1{Ze)3eOsfd!S;BQWhc=_NruNz7-@`MYOcy9b4>GSJ4d>eTF40Ur{uKs3fv0 zNAxOwC@bHaRrX=ykpmTz(5fVMRjOXqaG>ZHrE32C%O?!U%RMfyjJs^Wxje;#kM{k) z&%aEA;Lndy(u@g!G{ZP#CU~7C5^rroLB#13IzQ! zLidewHqCT6clXoZLGVH4ZA(m8^>ai|pIv0bvVGrDb`-o`^K8sayRa!V<2C)=LT+@^ zSg_Ypew;BV=56460&n|1D_SpaKKa+jEsPe>+Ag-&>(E_Jj7>27}cmB&fW?x}szjNyQ z8>&Bbe?IECMVxDH=c1ANT@nXIP4g>oE8r^ zNQB)d9QZ)k;g@Ko4!Y-%1{0s@WF!YVCR_p${E=S2L@6W2!I2$D28}|k03y6hJoSng zE5_q$30nMLNO%ZMx}%< zYO<$W8bj^GsD6wXelz4=jcpyK;Oh? z9j{HLF|tlG&wN2*hX%5I@={OLX4_k4*C?`Pp-zk|Qm!CR4kO9O#5uEB*=orCqFBmN z5`pKK%Y`JoS7&51)1uXBbV0@7SV?$tekz#tvpsX3hPbJTY17F{lSk{a z7-JCjLfzcpmDwP0E)t$Id4@ewn)Rnib`_aj>Xfrs!~WTk9;44L!*FCM&UF^YkHwbh zb1tg$Xr0?bI&&>-3a&cj8QL&cf%BV)dEuCXOdD3BmYnbeRq(8d)ik*2wbP~UhnW*P z=|QIS6J)$AIf>08_LCikB_U}YMKj#FBdnq*FreovQdSr3P;kpPGiD%gIts=dv*J=Q zHO`c#k`&8H!1fE>T~n-)kO!h-CNR7KGVi;DyP}S_UXQoHjAsPkpb98mmKYk8?0}V^ zY>Jl!@-{W|)=5juu_eo!x!d*lx`F(yO5Q;%|BzwnVQi^AyVQnKvQw|LJ*BV^T+|K` zghNsUrB1TUOe9&Ef@9TRRQaHR+oodREWVSrTdQZCGDiUJm3{F;T{FaZK745J8R zrNVP&qL*r6l%C)sLKF`qg2{T~m~l}LSV+V&0j{pla2A0Jgr<^O8%cKEfjbzvp5@kS@HhxB0hxD165li3w-m9inT z3RPgmB}xSvR$&dU{DQ4~S67LZR`yXUTXicx)rsdEtsF6{dW)+1u2-dz7UURQ{=@e2 zzk#6p^64;;HFl|MdCF)vvfVG7-Y7D1u8-FYH$Hn}@4fd;)HDNTV(X?EaGC+98E~2b zr^CSis$pP@(yFqjaEFYs%5(1{_Kl2d)@W{FXx5C?;j?ec%13StC9d1^ZroCRWByZm z+L;$Q+LhH0W7|JeKK`(Nz%wmtgLo8%BLKF6)!uFs}r#r8JbGZy7deiBq`60C3+>pHbuUydAdZHV=KfH01HXv!gMaSIJ7=~w&=+Dl2 zRZBPe-HH`I3au_wt+KmRV2@Z|=AH1VhTKwLpD4bnANs}nc1!o-&12FYJKY}Sw?13j z-fN+^zBpx?e;D%AIG)?{IZ0c2cwoNw_uk4>TUnEdach*CB)7z$mE43uhH`@8 zUsv^Hopz8u_8U$=Oa8nrp41mM$uQrbvwSwhPS_f*gGOVo;l4F^=nddP+U*^UlhrO> zH?QO7)-GA;zW4Hns5S1PW>i&Nz~?K6Ru_^0Q8uP#n8+;1MxT2=@dvB0+hSViSXSqw_APeN^H8rb;3MU&?-&lN=e460hEDFo*|s_hpskX z!OVLH$};ab{JtM2F-gA$A@z!bZR9xH&P#`NE$^y{5$gQMX%xIWbX-Km8Blc~)MM}@ zzeuW*o~+Z6e*zrpMLtnZB3CE~QZ>2Iotgv5F)&E}f~LF5srgL0>p&R726wIr7Glcq zg?l|kC#{g=z3pI(7-#H5XI^s8-($)ga$xRf;FHKq9N5LZDU%{k%*L>ui}ODiWCzQ0 zMrP+Me85^{dUCD}dsLh=GQc8q=0&=(J#^W9_j4qs>`G0}LOACthJ8iC;p)??P16Dg zb6M9?sJzIgI1@1Iu_pdu)0xdS?0cP24V?+kY!Vc5MvE51+!&D`Wm9nZ*{R?RtngfO;i>UbvPR&lEcJw?xv9eaD5XATLYPtrOoO_pfN>a6 zXrM4dUT_vB3}XucT8wNKy+(;HAw)_gBw1U_5jSy&<18sWn>;Qi8A>wPoE)fxq7vuT zi3#$PGovLlSrTTTgeH~nU{bD`v=}QD8nOYa!;nG(6h$xVmCbZ1yAn8M>;nd2Zs>8& zca~*Jr2=R&OB*TD<~r$Rc{xxHeT?18F%w6Pi{h}dS9)TLrqYx^S*KxIvQ!w+ zENg{TC@CWBxJ+eMVdZpcKq>o3k$qOlMhq)IDMjZ4D}SmAzEdiL5EU4`%9-=42J0&4 zeyV&RC+XE!EqGnEXrgM#s>^@Ox1CP^riWst&jP1wpwl(b{~0yVUu;J<3^!E+&DnCt z`+`*`W4F~6X7DAycVgJ-z$-JRYM>4txZ=SInq!~B&tg^Qlj_IUw|Qu{2d$g$u_NXz zHGZ=!@IslHed%M*zDFL^FJl3%kI%O4+IarTL&lxi%u2$Sz@DG9n!Cnv!>!|GUY|AA zcRJR5P0RK;zaR)w{&NM>T5j^b_!T5%^Vjny7u@lg{eQ9d)?ZODY`eBi*hPsgEf!LP zptp*Yh)NA9NVhaI#LO@~14A=K*A(3$U?451)X<^=LnAqW;5Ya4yn8=yto?m!ul23{ z?jQUwu4A3oc^=|loA@|IyWddy7b)${e_g!g7<1=6@|$pjWX;bG0R20RU$ptJ`Jz}0 zH%sD8vkMj`p2W|bA4lOP^-t$TcM=2yp>li8nr*{=BF!H6T#6z`I5;kn&n7vh8Lb2nD2Aay{KndzP8O?U2Abnb~MZr=&%PP5tga&Kqez5dXyCvKFoqyu9HhOUmw z_rYHjpI_9{N4Y$PfIs`L`QS>HAfy-qBR1d@Mv~ zXI4!`%vUi7M`m|k+K#Dz3+=S%UA0!O-G8L1R2MP&YgO60^X#jAdo2q$tiRVCuTyAv zLi`r?#NlO6?oa$(^P!rZewQ6(f;TCWc$wp`>^Z}~q>dk|xN^O!?Ma7_b>N-aF;7ry zGTxkA5Haz#XhZfe!^wLg>9v$~L8onwO`n8il?O$h$nTJ*ZbyIqad{p;oa-_%394TQGtHGW(XF9FR<`rd9jEBlmD zGu&vb3{qho;>HPRd`D<;nvT}5H`GUbiS@eEdhV_R#8IPyHnBA>{5$aD`R=6b^PxYa zS_3p@YL^d0mQTrm^`6&T25HJy=ch&*_IHNSv`a(h>pb2$QiNYi(h6t2#UM&|$UUEtT!{*~9b4CWO5T9w*ot(%A6!fLMPin#|$zyZ0Hwjkn%K2kogmwhsu6@PkGYp`S~kkN5eWqlF#AJUIb; zh*h+UL{(W*E_+L z`ISjc;Q1!FI!C*R2tLXI-BUsE3V{FzSc6oEE=IXF(RGa&x*&wqa}G6VK5lKzqDZp;L|A517(^Ij{OKFjUrU~!~$W+N=zaL3+{$oZo)>>v8leW zAbUWXh@WL8Od12Y)Ew?_8q7=iw)?`*t%Vg}9+z-J?mIkxLPSYb2CQpEeCfu&0pb^n zZRXMV7c_h$2VyN8(yDUfEjuEN2B$eAqIptyO#>tv`&fjKO+qBA+|_2w-N!&xwFy)X zVXzWBO(JmUk-OQ1R8zvdz0p^86kRIH?h=w%#Y9lim}q^|$U_XI*aqQ1Rm_R1hDjt zIs_u^J!gWw$^iM(P2SOQsUq>$K==?6n#~`7O$TfHAbx8C3Pt0xTLC^z_cNP1c%0W)H65E0lEWFrv0yb|^M3fV=Ku%SXG>O>`| zMy)jyC@us=4*B=@s5F5nUJ|$kOi0!t(_F|@GIM=S(W!h!+-!k!^_y5is)M zAP!Gav$50`4(Xsv;wQ(XB!Q$ZZM>Uyk{lUQPmF(wjqlx24bv3BV00i~v2kOfkWnnk zNjoK&kv!d!_&_!8QB~YomBeSNJSTg~luNvsXk2Q1YD`1w79-K4DrJR{aJ@fuml&@5 zblR*;>ON+?ARujXD)j_7?T}ddDcLj;m2``ZR37T>=Y@OI=|^zMZUX5C2GYr-LLNW7sKUgD>1p5wlm>8hLK z1jx~9jTqr+)seJ7v3tDGFSME#CPs$>=*>C2`0ff7L!r>kq6+%y_)T)eCcTKktJ5(O z1Q{d%BXNL2(_*AlGtwxGgMJK(Ec5UgCd(*t zWgY5arsG(3t*lWJvr0GjLurnmSm>9joEE|4kJZ`U<}?jJ-Xp=-*6FNvUK>!B_8FXK z44@6l=AG*g86C*$5X&DK$oblu=Q5D*rJLu5$)Ds6#hB+U%jR3_7IaqU&WOdrxc_bt zR1fus^Zsz&AI|&3d4D+X|1Qqc8T_wxKiL1M`(=FmSKZGa`oC58drgtq{mE#L3Xk(5 zukPLvRA{ZsEsFh^YbPIk*Esfh+&r&>!+%p%yLA!+sR9jOTsM z4-Uoq3p>1*m=C0_56z@Judd0ScZ#9N&(80=SfVIrv)f{@_(-C)A$i={u>3`>tS_N= zWg&R~u@_tC0vRjg`LK=3jH4Z0tSl1OB~T9d|w-dKUr})z+b%k$h{wX`TKYMwVUPG zfIVW4$ehpuG@1357@yTPE;$^qMIxOoHrJLQELjDYW z^?tpA_MTkNJQjBI@kv*3FZF==Nw1G3mNVvG^v3-Qp6R=|wv~SvJX`)uhudg(xu#de zVXY%+d)$gD#;!9lE8P9DJ~gL%u;f7CvuEvnCHvP#-15t9?*5bh=KbB41ZNaO76vy~TbM80 z2ec&Jw$k}+*SbBdE{{Ff<|8&jbRr0;K|+F;UG6v_=cFJuYy{wR$W#7MJ3o{yJ7mHMWnZa3Fo`0> zqh9et=Y>K8RFI%%>(xZa{$_M2M`?>@yu+u0@c?2_B| z?}g3me`ZEBG!oX4R`EF#1ikGPewN>gA@T^*h0En)eL1lE#0Mo@)l48@djfaW2`9nE zvMTXc$9<|X*z1!aMGxUeF%iw(@L^u^Hx4~@0Q4m*qProYVKQRzOW*_TK;BE}Fz`{Y z^Yi->gij)fFU@-0((s4$Ft*B#8$noYF5=#mC^@#{%8J1==U|J<;51-xJul?@fjnr0 zJ|c^QF=g36*+c;Y{~cJ)CTbgnX+C<5m1d!(TWmvj;Yua zEh0d@AQI!*NL&+%t}&z1T!;l5)S`as@@4AM3bM!<1Q1BN4T{X{mw$~x-w}v$XeM+{ zU3LQ*we6@TeUu^KWN!3t#HQs?hh360Kq+K463~-?*@({yf-LGlNM;Fw&hhhD{LhV) zrKMH?~OBH6hC1G_cK1YEhz$6-)k@u}9W}Zxk$)p_vq&u6X@6}BYZ%KR6 zpNP)~u<~w?t ztZYV{z12lr#(mw4yXIMcxn@1C&U&($aT%BX+%@C87$pvyVnWF#s}d$a+1AW#d`mWE ziqL16%=_#_3+Iehq5H@=o~=2+>TEYK*;$bGLYC&?O7m|;c{6iBtu%YrATW-$7`mAQ zt)}t75C@=PTj}H2=L{|C2c4u?bH?xYlsX3GHG@IM{k;H_I?b!~MJF?p8e5(Ui!!OQ zOky=N-<(;Kp3gn^Eidx}P#eIxO)j}D1G#v< zj8+`8xiz+3K`O z)PJ0Rp@{yU{7?sP`jYZD4^k~cuPJ%FvzqoH*BHIo6HpUXCV$dfua%=) zQQ9qk{dtK)Q}Px2a>vzq@3J!^#YaqRMt*$zn+Ma3<7z|wuHXOaHoB3bShX_j4tvJq zL9%k`uem%(f~uC=0pOc`lB|&9cXrLAR_pHiCwoeS6z}ZJ*7w#F1}prs-3zIx6DyYs zlR0F5g4*6-n(58g{Owv$!nPhw^}2T%p~MI(@Pq>pJug}9GMsK zcyOdRI@Hphb*`$aaDRz=?U4P=(cbhu`>*UI>@RjCn~~G3+kB$YL*vY_s+wy`i$)6} zHj_Kct^V%5RJ*ka^vnJx^PJ^-BumRXz9NOe*Ge+CA9vnfe)dUe-Yh+eq9h*-X!f7K z5hUg2n4sEkUt%@S*em>!O5nbRqs&fH*;59=fbLAm)vWigXKqRb)vyj&vYNQAzy~7E zCHcok+(TzH<%D0q71Ayh-Ey}fiut?`vnz^BwodsX=F#4JD_=`}&d1cEr_b85{A0NX zFz^h`qTAADa@fiGph@EkBbKefTSH*nryUn%0AGwGG=L~0wF5Z5U<;1oEx9txL-K?Kd zJe_0^+In?V6jv0un(ZAL%AZ<iPQn<-4DgeMgef*Nes-B0-IA zBh|I7zs5gb1u07H%v~Gwn=z;d^#-O)m-DF)u8stBo>>_zrE%m91wmt{6Xu4l?L32> z|CM|xhFizmd9m{H8xOYV|9H2*dUQuU#Pss$aBq{$GQ56!F))=qdiVM|nsNv01gYIW zIkV+&=DqIpB1()5QJz`w-v0g@w;8Awtay7jKjf?w53Fo3J-+?xe#%5BH_KXw209|* zcMSOSL^JfGDa_p)7LW21(+<1W2Rq0A&{)fE867A=Qnl;z=S{xIku+~R`bYA?Zvr1F zV8R!8xu1wuC=Fb?9;D8-&vtS?%mvxqLQI<=5(5xbM1-!iN^xNDvJ~POU76ZwXpDI# z?vIRshhF;-wi_5`%|!wf!~SYUN*bXYD?@DP5c_5nbp<6T9P(T0xDVS}z{z`^XtGU2 zJ1an+pM(Z-jzPIfJK>dDG8{C25C)g+brR!o(K)>Hw2pW)hO-Y{uZVSe@kT@!jHUa?6SroKmrJb+~7@V>;hMnSI}Cg2UD7(ersd(Rifrd;92h7 zrAquBBr2JXJT4vajUCa)3Ee-10x0U9!oq~e{vs`&*+D2TPE40+OuLBDWtmF?B=@t7 zo!BNC?xI;_XDLboWaO_Mj10me%Hn85%*J{+38Qt_EFMRX40eWm?2EgMiGQGj`PGNf zRn<%<;elqrhXU9Fc94ckLIqvxx+q?sFDikn^FkEzgBx}y5a+%TuO&*f(ZPF7`NZ%C zxqzTxm-vG>6JL`e^j+d46$uTM3BK!i2dUVrRir*{L@1hMN+XH3kiKz9XaQ1yG)X~| zl;lE&to!V%LK;*?FLyz6Qm8s)*?mj(Z{bd($_e|V6MPtnAp)s7{b;=nw6RQT?mpt0PU^O4iXwkP9wzaJ1DT(c zlC40jB&AJO;qoyln^>L+K5b(v?Nn=8nvt$qRhlUyZP!4WkZk(#&9q=p+Og^MGqQ;y zt?3J@87DW>FNvjI75h8-J1d)}AeN{&ka!K8DN4z_uA6bwHG}7XzhRzr&oxV4H}fIW zKa7S->W`%e7=0B;HWJG=&?Os#li(orMs(6sW;S&rn?05Fvf9%OkYfcPeR`kWF_jH; z&34eu@e<5=E|y}*6R+cPJj@?Ex#sY;U;Mz?P$un1?-UItMsuNHb4Bk(Oj9DO=>#zb z@7+#0-in_0R@2k-|usrjo$aoJ~eHj+r5t!~`?5s+ps3aKSV)xs_Qm zz^vrapE)aCmzCMd8joka0n5FYH9$$RKD0i4Tg|E;$StSj?wMkBPUqIj=5|--ej1>d zagqZD@S`QxoI!MrsX-GW8)0wl9w ziBd2jOCP4>PgWNk*edu5$nOLd3eM#03NG-U#{B!%-{~`dT7Q39f2%E=RNT30dKL)) zm`Wp?Y|@jR%w?x(Ae63b#-G+-j^fat*59Aj-~Z9p-(O$<3j->8{EtlV$ftiX;AxNl ztxWKC&i{%5XB7W)CirmTzhr`Iz6q#(9xj1r{*eiGTmBaY%(?ZiOfZZ39~jVslVV{t ztV=BI-oE<01Ua01;omXff6N5Cvx7%jLmvkM>zwqjg&uy~yCv98wVYjOxe`+LJHHRS z=iH5uqq$%A)wsVu%%i=&KwUw;4-MWWHxQXBHoKuJxl4050&TB;_oG2JHpZq*=x(-+Vagd zGeUo&fFR(y@J92?d|7f0-sa5{|ITwLsRW4o_*nz?r>cWA>N6*&OW#2ko?g3_sy6FH z-y@cAAh2ywCGRT zF)MkH3~+{k*k5bQt4s6;J@(GgWVV$mt0KGPi?0`QO;%f%^1N8t#+Oiv1J>wX)3DC6 zFMI_*g%6%t6jT@*8COuTI)22I@A^>Q;otplvK#MWrCz@eE8~joh^G8ZzF7WRVwCKp z*;0~lJ)mnjY~3rJx?~V%TC486;Xj@?yK?J9rQ!>6hw3-qhT2~rza9z9cy?qZjpojA zk5ToMYFRcH4xQZPSkPtH+g|T-hZ^wtdWONBwNvZdckIE*JVM}pG&e%*d4eEx5b!+1P+N*W}@e@X=SR7~4ZyHKQXVE{EKaKsHT;*Zj8AMS2YEQOmp_LZNNRGL31!Z$B_Q261bSs@XMy* zg(|+qB-qu!@O%;`or~AQ_^4wL4@4}nePKKXJT4vNLIb|4fVOcTe^tJr;0*mlda*|( z=nFUCE5FyLN0hBJiFJ{3~p@&s6mL<^($svBo)~MFcag5-Nu! zxK>17$%%|~iAx|yK9NC8Xd`+m2~kxfb2CB!kvv9}UU{yN0T$y;Fhl-e_?2b=*8%`9PiaW9qL#&Ez7eE74V?Xti z3D~%6JW1e>M@frLk#taGmriU?6|v8ZqUeH}F!R!CAsZTz+(D$dDX0w@`f?)$g-!j* zi#D+d%PpiO(X>q$;%`yPQPZ@PiiE9}`0c(_0S+-+Ax%&>ZBJ`j?nB~9O1g(=x)1~JOa;(8A?y@-^U`k(HikmCNhe9)E(wqS_o)^$ljAoAu*a{G%2UXKB z12o8Hj&?&f%A6iXK?utvtpRz_L_rQ;}cs2GE12>i*! zObO;JnHMa!((jQAelhc-HnaPu3cNQ%3A%-7-Gbk^f;mdzCbMwfyx>4h{vK-fLAAoe zZTVYbMZ#`H;uf)Fk>X2g#aAqfC4-Bl^)UbM@1p;dLj2EZ&_8wv;e}tye#>7zUp|#T z0uG*^d=@ymlN=Vb_5CN2cz$#x?Dsb-Eo7Y%X9) zjJ0Lt+&5TrmLz+*Za5^{jsn{m)}Ov%Ya8&BU~omIA7`?559Q)%rzaV^eeO zrPP&MAL>TO(H}VM=M!x;0Y8tseMLgjVX8r3)l(`re0YPvet*TfF{X8Ij(nVQ`{39T zu`$R)zTP7)c+xt3bh z;T*8&zZWyPi~pX%o@U=&+@1FqcEPh*0{K3W?3GD1!@y4PfMLo;d)obVm$#M~pHh#` z9lc!BT@&8BoFd>r*AT6IiapSsS+bA5`!7K?{FjrN+k?(|Vqm!%U~I|vA_K2q>-)o0J&KfgOX zQRka^Kz{wU$14jZtHf2M>hiq#UX+{eC)xFyCWmYCwgPoCFNx&?#%5qc$C2f4LIuv> z=Py|tv|hwj)SNSNSQ`i)SD^V0SLSBvv?bb$dQ^@?eM8NayQF^*P>L!`P=U zZnAm%ck$|mwrMd@Aw|e*U{N{SVVp?imGVW!ei`TWy9)j+T%b_ZNCc>0j*=SQaVLP?EYOq4xu31ag}1`U>BY9Tu;Nc=MO4 zJCQ2>BH>+k&HXU%9f~h)9Hv1munWi~jQ?`Dwk6cAZ8tUg$=&iuL6y^4KVQ&Xh{c_Q z4WD)$TTZSWQdEzN>ufu_lnN4ZmPdOFzcHA%5Q%#iWi1K{aFrKr2rrUj`Y?W@8=vJ5mW^W%} zYc;R^ZY_MKuVlg%pJ3%mRy@=5%dm__e(Yppy4BOSLyrHT>)<(RKHTB?swE|IpgXpv zRD)LwRLK1XY72H=$zOL=RbLD%@E-lOCT2@>2Ex8?jqJaB#$F=!6&5cvW)V>7C{X7O z|9<@Y>52ijou6lxm@TIDH`F#H2IuDY^DVuRxJzlh`^~2zFJw@@Nh!?s+%g6Ib0S`; z(07b8A6NpKe6RqTMLbzbtC){&=}>+BQ_U{>{9&r$wc=Y=VyoJ$evWyRV^7|>+qny> zjl$M1`nC_PRkm=O?XPe3VkgI{^p1XUUk41Fy|Y%i5IP*S6I|X&@U7)@=)cicti4^g zLTELb6tfB$Tb^Hjn!5Be!Yky*#p#ugaehm&o;8d?_o?>t!^@<*>RPHVnx0+WaiBTY zPH8Q06B zI2^O{ylm&JJ>vyrQ%SsTwN{-wZD7UyiVh1eGjMa+4E|NWe6@M(MIEv}bw|&_qkj={ zcWZCb?+sI9HD;LQ5_(y4_$}P zH3TX*!&Ida)P^VFjW7ZV@uDn94+GQZAXFcMV~OEBG`wezEN()iHTs(aA6jyQFY*WV z3!`50dp?&40|LXGFsSHdk7qsMj+G{_Dph>6QPx2wXME7!B3|?BklS>q7YFT)@ZL#4 z!k3y}p`=v~RBFj23IwU z4k2U0X>T1$eZ_!QE%8U`j@Gl%2MNXs+DWE9;0boaJH0w{QApA*@ymwKB=15&qFq4fe zuLQ4Qg3Fvh0FmI-b;Jr6zs{B;m`FA?Bez8&esi%Kz`MIudGR26&ua84349#Ms}4rL z&<@;ELAhh1!Or;a>UONs6we76iEEB^UL}$HiA&15{z>r8CzyQtz8*-KAvRo=$%#m~jo9_P{** zv6y(nmG}X(lvx*wica!eOZH2#9Q*0)=#7AssfZT?*)FolcCI-#f;4w#_Gb_|V8F1? zkVaFb{V?OfBF$|x2U1PrhU?Nev>Xta?m10E0a7el>Aa*4DaL@CXEy6dyqSt_B_|0p z7|E^CWI^WJ4aV;{YPJ}Y24Hr881f0s6jx^329qxKw=JFtU?mB%s&Fh4m{rG&+W5fA z(`DtGvl`8Fn{{(rdGR1Pw{3t`E|%BPn)?NilrMUZElBO>DdY$8hBotZH|4qn^S%Re zrynvR2Vz4u>9K;0S#ySyV1f7a9&Po2fRe5=Irdg_e_rwX3*LR7d!7Y!iju?X8 zB68$QkZpF=`B6QBDM}A|YhGp$NMAzI6bs1h?y<+L>wgW-y%qqhyDY-~9T&oON-iY0 zW*gXl@quK8IPo11`X?7Q{F4@Uy3(cnIQRH~pTHvu>7wnN`&*0-^qN+p)k}MAW#BWg z^{H3lr+fD+ZhnUDSqV7nereBP-7fG;KdN?wwL&O=mzazX=Dv9U0XOq5YKpH7z$)iN zFy%fm>;|2?`{FYf*Y2eI3rvaI9}SSL-8Aqq`q3ojU##i2te5UINk3WOWx-zg;(}eT zB3XZPVP#`(e$Ypj^(sY4-4zi9Quyw1tg`Q&(ARvFe(uYoc%^#lF_MSZB5pOxg`{qhc7x2c`6T1@!@9dtMsJh(LyzbfporMLj0_WsG;ALfsX@iqt&fUo^t9TEt)7hK} zw7&SahDX5a3jx=0wK?Ai#iU9x&zlkNL1XL*kqR}>eyF~Z?HM>PtF)EhW$k`TcD+6M zdhH9_biJ42?|Vvv#+QgN)~Cd<-qyW;@vMO_H=iuc8@ETS`Xn*797nFHy2vCHQ)pLz z3<;Ee^vYZIuX#LqvrV-sb44qY>FLlikw(<&vIZn-ogIvoW~0ReXmoNGwfNAyaI)NG!*`}j*R#xjA>#JsYp08w@>kp9tz6~xwyL^?v@3TX`|46(?bj8-ui!BV&l0u1E z)%=lywioAWNRt%~`*$!!rYXL03rUljv<+#9kRRdDHv4L-Lrjc@y>vm;`-v+lt?;3F zW*g}(JG1%=_;Clz!3wOj08WTGTOy(ioYlD;{OL!Xzi`P}N6({bLs5?c3uuE)e2>b@ zql7!K^T|^Y=VZRA<#GL4XTJoFDlsmCxgWeveadwFMM8D>Cs~ZNfAa_#zuRfhE~WO9 zTCmk};OI&VJZwe5=|VOr(W$3k`)6tDFLT?};Fm9IoFIM7*7Ov=!f%vy+Inp@?E1S= zzLa4>rJdrK&X93h&yrRsATM*Lv!@^+b+e_3kz3@|bMpvf>%)S^>$jt~nsgD{jk!T@ z$3}NLI#PG$;_91z*5B?)jQl+dfAwH56fp^z(Si=2@>xPcrMvvx-$J`eED!R-F7-S* z@Cf##$LAylmhJ?*-vs+`879dW&PA#SYlq)HWo_654Mm3+#sxl`2)A(xb&!IOKC~Z0 zgv&d_=MeC7l5n+VI0fzy&lg@Mg;4zgPLYIbVG#GS5E)wGJT82^56Ngk(4B;hxT%cUn2mGTOMca%3FLEjNE;DlZ|ttL66&E1x8+CUmpz5}!sjQC1y!o- zkygCt4B1*oTV+9Z1e7rcD$yvmIWh=(jExTDap8BZGtEe%3QAW>H;Ds%YYV?5?R$LH z7sTrmI?fgIw>2->8As>BfX+U=msnL2z#eVP zu{VJ>p*6Vv*MSkr&i-1b5$#;~6Z^AF zp6+?b6QRfCl9AgO>hgQ4CnFf(65~mFGQx>L>!7a6ki<90pUuc!J5$CEoTOVIN}P;$ zkWA>XWAdFAvbqfVJ0mQDPI3_?TAPvPbYSKirVJTkFgbORjJXC(jrtHDBA^GB!E7_) z_f?a3>+001ki7g-kt%7~CsU2dM1*R((?)_2E|FW6x+$72Q0*76k#cSzeUEuM&mVtC zH(dstzEt(MBjUzp#w~N0C@x)!nRX19AzPh!)jU&PHeFd3FKLd4Ze*UXPP@ZQzc-!1 zs~7%-%X-q9r2@#(t3KAZoP6Gl%!>?@1(I*~XZH)F*lcD`G4w3Wb5h7TykenUYmReu z&dbdlTS~UKAlbv5maRhrgL63jG+vDm0;UBIM6AMOY4+2!PE{I|LPwj^d9Ty*9O~}d zj5j(AUXzdnW>8#{csluVotUIebJ za8`sxb7iHNvv^9u3c=i39t&0*l3BiL^Z?H#pX|$t8=t1H=;jBx7QlI2*qXn|q{$-k zBXI>Y;QUv-|50$tYHI;sFyUK&>{-=)RcLKVe}mIA2gUnf8t;o0l_SE}LJMp*zJwH%_I;$_dGEiqw?)-HRXJ z$InK8(a@VKYxQh(j}{Ztds)g3r{*Es!qny}<(XA;)f47;Pr`J0n@8p3xheVhZxa>^ zb@S7M*Xx(-@b*>QJ?)-ve@luN){BqGNxkR0>t6W!_+B&b*ZkM-csB~4yjt|`tead) z#QXgYOD)p0+@;p56|+liH=2I=c*0Gzd|%QMq?bGHtj{iY-i!N1{j{{-W9759l)A5n zVntwytG;mFO1F{eoWjS4Gw!Rsf5JlOe_vQgi1LiH>R_s9501@8$*&~syUEvl??eYK z`l`Ll1vWqz_tBf?_G55gON*B7EvH2LD}vXnnjgD9_eq(xpW(-9i^=lR#LJ^HwE=aP z*KS~mZOUBW5G=L2v4p^|^<;X1HFKb|f5F+!(ox-+A-C;y3JlwbFBXCXkdXfv1P z96D{PFRWB@ATn3Ncc$ZuZr|=)|GzJM%YsKuCL;#%&c3p{59qPqi6!oOqB+jncx?IS zwv7Ak@Eo=JcSj4IPR`mYtMMX4{e&#{TzjnwPJ4IeTt91@ zf1#AeX8+>ncWNu^tu8MtT&1`h9&8>Utd*y0x|Rpjob)R$XS~UiGhEm->`OjTEc5=_ zCuY^qVWqw*tK~dD8ou0dN53>%lN`|W_gZLI&1jjYW4a#u=Rn!({?fLqeQvjQ)*@

l}M(9nM~0_6U}k4VrgZW=@~B zII9f6Rfkjv6}N?Z%+!Sa?0HQPwM0wK*ib2Ky3(3hO!92@#lhn4<-FvdxwkxN?Tq(5 z@}J&)JbqPq;4|dOwQ?G5?pE*_hXr10Z3r4jiJ{6z%qtKKYdj~)wkm!qnZ1GETKMq9 zXK1A{j}}?uhUuGJ@GI}H z-y@%5B0MweD<;@Apq9gyZk7ePlPeU#?)P;Xk4~QbQCkOa#pn88FzBBdMr~D4t3RPS zqgqPk0r1tjl4}P~g*{hNXf<>6-er@N0+}=${`kbdW=6Tf)U$kWfBmv;+u0Gnily)8 z=RP&`-JA#^l1KkK6eL_9y7;30^=pMu&=)!D<-4iXi4R_UdvyTt?ePacC*$j{MouQJ z4mP+ntDc?w7AD@UQmbAlQRgvgIhhKNTCC`6KLF6v2$4d?fKj;ltp}%r7_0+)Jx+9|hp!s>kijN%EPm80r zE74ycuJ&Kv?_yaF$Q}yQ4gF^PNWCrXkOfi z^5B2y#c%7tAAFy;A?o~eXcFG@0S2x_YxSVL>CQidF*}<3TxRs`@K#4=Q0%L0J4UEO-SeA>x(-d~`}1XWWcU1me6A?i3E3=?uwbYs&B=j*Y)k zP4JE}LUi@QZAIYa7}VLOhXOQwY6E^!6RRo>_Y{fP?-0=p1O)B(4&+AwDpmUEDxaHm zKd3~gN&8q!qgnWIAZ#_@UP^!&a9LW_%dNz)s{0ObDRrEt=YatKtL zmR8xQjM^t~y#+(KEsUTN@%if!nDyuh1o}BGB7`3u!vTHd8u0#04_Bf5F)^u`sEaZ& zyuleCHX>8m?hqrkA}BCVIOclGPQWQLDo#cBjzipcTGRp2s1NAaIBkqDD9+iLu%Kdy zR*Ac_KfZzE@PHh*U-iZvP^dOJM6o}9(kY>HpOG3Pu9%I9@ZxBdr(IDrE`*_i zYf_4|HA=MQ#~H6Cy7uGU%!uvf$X8WvL8`={Qr9Bq#J zYKKhfyh^I6XsQu5WkV;mzAC{0gd)?S&q(E7ke>JTDq;A-p@{62Mgr)7k zs#6fvshDYMh&lby6m8lio=1l$5eAMz3uvX&tLU)+B!QWlfMdX!v_vK&wVDw{VPpbO z11(P_WKwR(B!AzyTU33o0KhuDpH)U-^$R5bm}1_lis4x$-U{aKHp+eH%2NjBw(>x* znmPA_^=W|hMV3`9me*a)s>J1$4=}rQSp(*I!(i6nwB^TER-bF$2rmDdVE&|7{?I`F zA|-zwm-Mqbe{_=-2c~CN7i{qK6}pUVFe7K0vHPGCeY0RwtT2mN$iNlu01Ee*(+-?r z?rAIF`Q?ST3Wb81r)mmC)o3RV7M`Ce5|=BMz!yoeiVn>bp2nX{E#Vg5I8$;m^v ziBfRM`pG}d!#~Z#Kh49Xu3XJzd3OH(udDse29c}x+-P%agLmTOmAh2Xf0~D)-=6+y z9{wL~9{&GEjPw2uPb8o=d^}=2@rFUS%)Y2-_D}1C{Jl?plYR9$R|`=eb8U{}m5gI! zi((FY*hy`*!YN;h<=^Kz9&YO|0r5-|r*`t3b^cx$-B)(qaL!d=(7d2_trQyX;q0C-{k8km5Yx>(@Y{N^OOLzP*pvZcC-C*R z$oWnH`|VynWWJzdzT25Q&p5hD@6M;ZQjv4Fh1sZ-92^lxAD$hH7YK4XB}qpbw3{E^ z3ix2R=Q?7%=KD}&0{516Txy$k{cN2wRh3Zs8NU%j( z4COLF$rnSl9BM7T-fexxU-s_D62p@0c1Ou;m#wTcfPwnGxa2H`lhvT=LDN3kxFR>? zqoR$WcTsMKTuBvuTA{DHbYyn*$*--M9Kd?5-RiZUujam;ThFCTW`8ZO8g}=>TY$%M z`i!2}PVb@yzghjbR@`@Z9#~^BGP8G}V#>inL` zAozji%H2oa{M_q2v@6J0NquKO&QTmf96EWv{4bsM`l!I6?_x(mhQhd6>mqT2d9P3V z%U_>%SHJ##o~UZbTc3f9h)1f{D@QoMAx$A4!gZrC;07NR&Bj>KE$Kr)$-k)-@ks{*I=h*h5cm_x;^V~{==}=;+og_&_y|mU*M9kBA0?+ z@q2$pz{26L*zZASNlqtKV8YJf4i9a#wA62#0KLi~n^N|p zPJYIG@K^7BuQb7&vqMi|pcnZ=?F0Q6C*ZKXh$Bi+0aO@IHE&1{)8Rb*s~HjW9dY&% z>_w!YaZiLt@?!&}Kyj5iC=qA2 zX)tLbJj2u^ovl?%!^t}1;3ypG5suZYSX`k+gw;!W_#30&hUzKV`N(Tso3 zhkK)~*Q5+NX6$-Z!ULla`Twx@o^4GiY`dnFx~wSGvK~>Y6$O$YVy9R@sR;@Q0-;HV zB=nMAD1lUZ64D^_E?6mvT?7KCsE8C5M5Jq+xZeHl*|R@9U-le(-kIU+{SVILI`8ZH zrATD!Cv~Ik`vHkB-H0J)iM;waDInycQ{u_J32zpNZ(%`|<|J7saf)_kOo=3hlJ==5 z&+faVg8>b>ILf!{+tH~rr5Bbl7xw}j*d?^^7*~+C8aC{ z<*=-U)W5)+%NXBEP$38;E6ThsD|1_1PL4#On)$8CLp+ zedL46zGmCkF6{I}Njx17M~B7`$r&MJcy%A>*2DR$464 zg`Ru4Kj#n-{p?uQ+L>HuFjiiBV-KV>9Lt3o?rHBkTdR3e3R6ckZFKDFwjJ zWpGFR6BiMcRO&Nz+X8tQA4A<&N*m|VNQQ(dv}e6KjcG>fZKQl0C15D@8XlcfvpE_J zp<+Es#PkU%pLJhatTaCefF#!Qr6Tw+59 zXn_3Lu6#@)8kUrQ5QwH3q8UWR)P(4}QI5QEMiyAHI8pFhrQ!#qasgDiBsWZrD^&(7 z*Tq$Cbide)5auok)Z(gI2L#*Vij)GXw1mZI9)Fj6)or`#wm_j~P_;I*dI$bE#pqSl zzQJlibM| z>+avTNvEb3o~M{aAXK9IHnxI9n-W7ynXikki*z4%PKK9ky4z}Y9jH76`?9}Ji+cmD z+b_NqQ=4(+tIfrL!EwU;UU|(-a^AA^^9jG!q4=+e{F<<#$@xasm2Zdj#8Z zaV}DpSU+Ds5nUMbcBZfB@Vc~} zb7FJ3Rq#6@wd?cO6O%ogewC!%>Hn~4hi`>_>z6*-FaDdvM3#Mfd&eCNhZFYrAGCZr zFWt%`{sQM|(GxC+lDU}^}RZipFI!os%17d*m^hlG%I*D!O0 zmu?P&v@=uw#D~^N`$~!5Toaym5nsWG@*)>rM_j*)=Sy}-r$!iNG$lVKaX?{bWZT*{mt; zxT)P4E#fRJa~mD|REi-flFx~W*0vc~SZvii+I~FS6_|~r=B#C9-gL>m*pE58h;jht z{vOMP@-fE!7?zv&dxM0q{-nyzxMmwf)jTC)@ee=Npb?2E>NtiP563fOaTo>KJ0(Io z7*P;II;BNT;nV7EQWDRTq;B+~E)u4n5Cl$qh4QS?qi1&D^612meMAR!Mu`D~S-<&j zt>pE}zG_-d*P1fMdNR#AX*RaZ+i*%+Q|MfKaLk?xTEp` z@7~Y6F3znOzv&&oAdhA&VhfkyPM7)%Zn@<>9oJneaa<27obS(DFx;bxa|{W%!Q_+V zpNonv)JQnB3=Cq^ixb6}m5ns{Mu&m6oG$YcvX0$tR$wOeAHR^gmwQ0;MS7wtbIhLU=g#sCL6z($BU zo)c_u1ltW!3JGM30^E<|SbmIB2C(!7gdM(A>ILCI5nSJi(x5;Onr6}Fe+CU@HHJK- z9q%!g_i*vzDjZWuyBLe$Woz?unt96fqOD-Qy19Jc!m%TO$5`U#G5GldykZEfZ>F$N zz+(>xN)Q48j$Z*02tk6o{rRhNghPB`W3#YrKzJ8d@cl(i=Dt`_smm$_&rcDXC#tAD%ToUY#qfAAi_#Sk*cw9le}VeLa-%B zxJ7unK&7fmg*aiK~_Rj^a1+9iOp)xBziPVS!N!&O>A)kf~sdk3rk(ylp% zuU5CHHWbzXKUbF;)mW%v?gMJiy4RkMtF>X)+TrmlIJxrhxbpD0^6>co*u&$B+sapT zRdHmCb4vFS-lA?Tz09b8g>6_#D*r#4R7x)Y`Wlj=7f2eDKK|FOh;U>4kOTL7_it+MOiPx{o<4M6&b`!-k6vyY@)O)1-Z?o{ zr}^;XY)nez%T0MZeT;sM$8_>5qQBo!k_K-KBD~ zx6UG0;F?o=aP>}?xu!Q={jJNZ-W}Z1^vv>Qz_Wt4O-%RJnK%DRypvzT>9}*RGx!_2 zA>ae2-_?y;@kFb4K46Go;$y7SNLKU?z_uQL%#yw-^*j2u+hW#d2J{2CqjjW5`U7^SM_`LuK$~bfx)(}M*G%D`qIMNq!aUZ5ACT{{>$oDZ?wM3``ejU zWK(a)9LaaT9BiH5)N=ic{@G={xVSs4@n0sXg-bEJlM0?>Z2sX%Tec2O`ZP&w{cv=4 zuFpDYj*AfYB`i_Tt<#H4rFwBYofN($D}=4u3X?0XtL8i7Lq_92?e$T_nD4ZXm`1zM z%~x#)q-;}4(XfGuIVsAWDLWf&jYh+%oyn%3k~c$Bx6@Le^dWxiO*^DyzFT@@UXG9> zPWu2UK$~PE8e~7f>fl0J{`NG0M(WzI__Prxx%H^VOVg4fZYUy?<=E()Fzg@a#zTU; zkjPP_&Dj{Qv6R5x=m@iPUx4o=Br1THZlM%mtq%`XLSI%#M=d0|*d$&=qGftKlyMiT z;Ug+Z-k-W1_Ub4sr~#d2em+BL9n~4&WP|KhMxe!_~_U$8h zYGY7gI$>-*vD<+7NIkxdOQ>%o$o2(PtxMvmCF0M7$O~1UABF#Py_KXNmNS3Lt|2sW zp7gC0_6c+Gv$^AG)0oMH#97mf?_C#u{X>_l!JaAx2;)(rrDm26AmX$Q>4;M5`jNEG zv54QgSqBy}9n{nJQyjI&Gmms;sUFMP2ln1$8@3;rwOL+-vuiwk8!%fvz~SsD(UF!V z=f~e&k>+qGU{jWl0nySnBV-I6p^vgQwUe8ywqnv%dL{`2y||cjwm;{*R<2VM={gph z*mt%8=GC)6Z1ba7#b%V+1Vp$}p3UP!a$)!e>wG;DvzKsRlNzWDiyrmAr9}vXLnHY3 zK^ubqA|z8Z>E)!>r{q?qaXMTbF&R-eI*V z`H%)h1Du5ilaIl(U-swa89HnbXB)`+9bWb4AJ)o#7C?S6o^Jv!*xi(^9uw&{N^|YQ z)EMsJ7-G)Q^Ac?Gs+B2yV#gVNzEdYd24qfaVa|yQtPKy}*DA6$r7Uphe+^KB%&5-3 z%&h*R_W<0cW(wsKV>_rg1`I0a74H@l-RmzdOQ$20OXTJ&%a9Q(F4;9vvTuo|XGGr% z0-0&s8V!^fPj~{CN-PAdlM}2{+AJuTjRCU&AeOvMM+b7z(vEFCz_v1CJE?H!Sau(e z?Y6`=Uy56b;#>u>uS+<#Ml8QTwwHt*sKW9QaBkRf`nn6J;Dxsh^J46{55QdcLWWI0 zCVZgaS$ZZM#FNDb7R4cW3EI5h0fktVOmR0)2H<8I@sJZ9*?~NAGY`SwQ*ohl&V@`I zza)@P0Li^l9wtx_0THn6a=#wSf83w-Nm*C}vad4|j%o=F>B5F)VXZ`XcS(3ZFkd2P zb>Fgf?UNFD3yxfGT`GI3T|PL@?nW5bYnSzb${GdbZH)4_&GKln{2fU20U~Ui>)I+M4uoP-*FW`0?WS%Dx`YoEQx>%;jd*1%5j1`qe`K+z*U^9 zBorirV)7xC%8x3ysaCB=RDQF)GRd#pqEo5fQn^W3r4U!O*S#uDaQbhHYQ4c7)q5^f z9&)cfg0EJ@;pJ{CfLQ}-sX0Da16Y~YSV6}XbX-Bl6?FWs_7*Ar?{ATUV>33^9ECq` zk%E)|yhZjz-RPcp@#igaP0>GZk=(KKHT3P!n+ND_-GAO9XYt^K&pl&ONfsz~Rq}>1 zx#YTvd-@omH2CIf^+(bUQ2nY?-Pb)2EVOQ)(={eyu-PQK+$#Ed&?$U% zhlex$-V^l@td868E-LlUt7HD)wNJ7##><@t9q~ceK6-D<$IXhwjmy`^_L$y=l$S?; z#a%~S@@<*epb|H4bS>fXv9^HL{kN&9_FET zu%TgJX*kiT>x!_~tP|-QehcaP>ggI_mr0PfTIlgrd&$%`!M^u8Nk4CPt+^yQqaK=D zP5|#yYwR=}`7R?TJ?cJC3TwO4`dNEM(AW6l#goIx$h^;wTzEb7JHD58<@3u%KbKt2 z&|Zvu_5pP4h=%r~F7`yx_SRz{d$VGT7`jmk)8b7>ulV|$3F=&2K%!r>FH@a^wR{qw z8N1j(*gtDw|D@W99MdEGxF6~H%lGQk+!GYZMCg3ryeK)my=dk}gwO_h6tkUOG$VjTY*FeXfoZ`om!7WtD zC)9lF*B!UMk_PXWC`8r#`h3}cc&YHO6OH)aEkO~A*Y3T)2rFp%RlR0@p!i>(hHqEw ztkJ%sDb1X0OqXeG3@0SrCg~h%xUY3^dP9YdpSr8reN#e5j#d1~`q*)Y4IW=YKGc3Z z5&B)!7eCFqto89^U$wihC~B>KOE<`J>7l1b__4v-u}iK;Gy4gS{FdV%4>v4nR*@ba z(`Alb>@+OUorgjS%f4>2Dqyd@6tHjv639!l=y5KMt#oaEcB8!I&D1sLC$pA*=uz`` zkMtJqb;G}AUikTFZ$?O^N!#?u%y7lg*pEAgWAtx%2EM*x`NiF5S5lkD+$bn?@ELyZ zk5eg@l3>fhZh!k~roTnB_{&m8SE7(r5j`Fhx;*~gV-_{knj7~lYpBq4!I))fjk9lc zn`F*N3a2h_lYNLE^~?|tvDy~DBuw`B4>b?k+sqda-3~x|{%l`6b@!CM=MS#us?S4l zj|MjUo-VX_o8p+%5uLQqnONnYZ15oImqyZLPefMd4N&P#g~KUwfK-RA+6G;|qp=Z4%&W67GAeSh=SIY7z z7N&^1vKL3T!ExL?4i6`!*2C~!I5-R5rGb2?krpzG$EXonmC`!<0(bi%uu23>9U&y0 z@XeL*kV1H>lrEgLeaW>BRw8zH`Lq}iA7h{_R?tHO$f`!bh}-!|`8Ono6l{<*?su_I zBjA@yjGQFD+9ZBkpE1(uFLut5Cz10DNz-oFWf*iE;P@GnxtgAFS_!zJ2_P3X4+8Z1 zHN#JI5w$w;mSgFyTO+N;!tHrkvW}~2K>JT0Q?`vG|6WY(?8@G=XthsSM%KrAtGf9d zpG8{rp?+vO$pDA_=CeXIQLkWR5d4C&veWMc@^BX#ge0FH&3TrdbE2QTU7Ta)l4H?% z)voWB6F)l?hHqCSWknH@4au<$)`tx!y?}VCBGR7@_25x%2Ee@n;zHr)!udFk4<4aR zy(M;SnkNJsQq#0{cr*o9`^80ysZo5Yvp4_?N8qup1Tg)@y3_#xfd-}#`{@*{#|3e~ zs1$ZhOfIG8r~;E%hA<92$FhkLJxZF-rOrTeDu9_E^qC*#sC8Po){9L3B54yAzU7~g z(V;Qhke+7{kiD}%??p%6DOgs!Yu@Up{CnSNdt^5GIOTlRW8|aOvX&vpdzZf6L8h34KR1Raa7?Gf+~- zE;+1C@-bu`La_EWmwbIi7?M(t35pDxi_93TqY&0<1p5?&E$L!il&DwtuulZC?TiQx zkdm`F)sWDy3Ic*f#??*Oypo%^VL9$5OtjD6uK$7mR`Bn~K~> z23OHA7csz`&@7sga+f}FWlGAtRg8jEqoNoFZxqX2;PFUyy!dABG?teW$Xi(C%2n4~ z9HUN&PeAbS2tE_UD^(G&L4rISUl#~@CeG5)DyY^b4=oC6R0?Vb92x?JO_0mCaevTp zH#EN!n=hAK-|~g62;-+(!be8-CWdl)EPFIA=r$^U!YF@%D1R*|ulv)LQ!cTSZ)*tO zEtQW*%3cJNkE@iAX^XxsiN1qGQtgT#2+{n2=r3QsEfS^UO7~Fa!n;Fv66VK}@>~|X$-j3mKb}!3`-zn(|NcG|yK&@K zM|Yu7Rg;nW?|7&#H4-*)4z|2mwq@zv1k-AWegBLpcexWCtXy54Ow4Nlwf znzmFx6}7LF>im~0)fwM3``?;$qK#DPh;w}H4Fbp731z;~mU4v+!hJJF>zgJvSIHh{ zR2(z@?PP0rY2&-{KTWHOn~%MzyITIvM`*AJ=xe)QCkkja_TY0}9nD@=B(4wMcVRK> zp2##eVEtb2Wr4JQkEuJU)${1@PrY|a_KQ57KkX=|gXcneqq*z8`dh}iyzuBna1O|Z z0{r;{=W1tmI96o%E9jStUUm?on0h7Y~e z?0{YmCYoPM*0Wd?I~-hvRvmOxJ>w#tbq@2@GL)uA03=>9-*YO0`wOnnb?D<({rNgn)o26Ve`BpAw|Opo1Sa zGb`RO;T2-B^i0&-@C^qUUCZ6}4B`@%ru;Z?&EGqot7II0peULyKE31aUmXGWWYz=Y zctu8fXbxcOZjXRWVf?Ue15~^v@q6yzkC9)#aLVbJK$&uy&E z$lVAkNoowbJYV^u6Z3<8A!OV&6!8l9*KD~pe7OUDqS)u ze&g%MzaP)m21y?y&B_Mxn$oVoTa#g;<=%DnZ*RN8r%rycpjauwqScB%$7ams>0=ij zPW4Znv|4Dl+_`vsX@6KG*SJ{Sy+dcBu z#flRh7NK=tsBz2hrrPG8gm_F0N~iBpe_C-X5}mgG9O5P=wTUx+J=56r>!(W+;X&fJ z*;s~ugsd;=CpTdy_w1U+M9}s~d^c=4Hg1HP{1+zT_*`<>Q7_Q;#MXLvo_~spO{x|& z(y23rc{cpuNVr%dmFb^or<-e!W+Kca z1%Q^vhS5+A&eadwg_3cxs*NTYP?IbhOweA;$&{$7+JM`ycI~KFQ<=sV!Yoy(k#e+i zj*VxRUJxuqml>=QVNyH2GpPXh+y%sIFT`_v32jKc zS_z>=iqEG7y~L!-fw0aXVW9!=`xHzelO*TwFR)b;&{eOM(tp&4j;~LiRSKcNlD<;W zds9ghQqm-kG>wU!1K7)4GOK%ihBT5l_wJU_NUIh}YYmeoV=`x~Gx~U$>$(yGl=f|E zB7HT;dO|aK#Jn|`1d`KsGiNf8lx1z z$aP~ByV9wK2yHkVL(7OhPVb?V;jTCyAg>cn zv9-n1n*#Oq;yMf*`fO*`A4T7-GBG_f?*hfI}he&uMpPdB8=>bbl4X_*NOcx2wshNGA z!J!zIc&V_i2pEpqrOqG_RNK~#QEETI4ic0)7_owvN{b%4`AIl7Aa1yXjhHBn8{i}$ zI7tkyENp_yF)vmX6k}EL@HpOI1H5%OvW`(vrZ(}_B1C10#}M$C5?=lUFHc)gAaAn) z2_Dk(bM5$r+I*WP0YxBSO9Wk7!itHoN?1-!pn%gXtX9bvsR)|~gk)U2*sO4R(W7Eh&7{T>e&DBo7`nv1NU7i4|9_1up9! z5KZ7jlPVQcg0gX=iaEQAX+dxN1{N_Fajv4ndZ$fM^((@frLbs?{vPX&s$1ExfQzTmB*`)Eu;`(l;*N)sl12 zqGr!vwW&^x5x)9CbG4yG^){s74x;7|vsmv!&GD8R&~lYEljke_&lgFHIwuRnzt>t< z=yK&ta^*{M* zIbBAJfI8u*=(sIwb-;5^c0P?B8hG=77TbE}sVG5l>E5BqfDN%B-$M4^e!m?J+y7u{ zYC`Ys@XVFddoH=;guQN7htt`~E>sjPL zkN@l0!opu;ql42`p7U*;+Y&#k{TzzuJJInXBYxJt@9o#vkIT`B#dhY7ud~*xtT>VK z^`UK}S9e**t9QaW6qDaj!woup)+?E>?MPy|#uGXdoE;+@&L*p2%(g3eYBVPQ#Y=H| zkOGX2+KsV0VeYNl7=1l9CRjhkSQ>wGH1+vt^pUaXqi$)pXoC?S9&cf@FF$H7z3InG*u3k^kNiLWKBJYMm7*URp z1F%(6=&E)e?%EjUT}+bfJn5$yX4yJ1S}7?HN|ZJdUt@?vHc9mcq;X%;{DOUdz2~e# zB5EvyJ4WhL%6J3FxTKjWr}`mt(oz?xswZPq>4v<~XWet+I>U^$DFlTkht(suR*5r) zI~`ejvoG7M`UcA$gl1Ya5}u6V)()qvSC^&k1v~7)WExM}VnwR)o5H>SJiw0=)wDm)I7(%md z`p1gFht1I0u{2LN3LXqneUTFvgB<11;6OUthfeWDZvsQJ8tH5>os98)IOcXiOgO%X zw=u^(XrR{kN0!kUY3rFaFiKlzt|b^hjb!q<%$oj`R&4NIb>eO<&mI4Slw$@C%e*|5 zMXO!nOf@=vI5z*atS)c$tNeQ(=;H19Qf!7QJ)=jQ$W_k2Z0l{;#5~y(LmbaJVqUP5 zo7--9xBwWgu1PL;V@~$xzT`X3H0A&5&z6nrE@BE zY~~}9cE{)ja5qiuc-qF{tBtTz(g4lHO`61ED2s_V+yw6k9K=e>oONkIAX zGM*Ml*>j_^4d;ZfaKdMHaZ6{*UP3NE9VnA0lE%q~^@m=KAK1Z5Du+-6OYWAKtdKI>S8{Eg`?&VZ%mxR*9eDF62IZ&w0oUp;P-@j>TY-p9D((l!6p~*#; z5(~Q9PK?Vl%9>#d$qv0c3!T3cX8d2j8F#gMJCXnU>rsm#ZM~!q)`@e9h;HA|r3TwC z+=R)_gjF`H)@UZKQ#v*}Z>2;_=A8}OHX5%!3VYsgV@4zOgKP4-Z;l{ziVDy1h_xki zK6#Hp>RxE7H9FN0=41@8JfM{H_d@E7M%qU6v}3dsv&Iz2d_1Z1#&K!dHrgLPJvC+{ zXHRZyOh-d>@MyX{#>}fdO1@9vtQqY}L*A-Eg8Pt8T?h{ils6A~Qy(d7i1r+d3T#Bl z!4pqC6Du{jhDLSx`+ISH;2QA5D7Y`m9=Tv5i^E``T#SMNH0vY!Aj;3i8WS@Q3`d(_ zkbnHjq>m;>8BY^6_!F-2sNz1?thSB?3kkZF;vkY^Dj-$ zpRO63Q5nAsh^oq@>Bi7;)693hq)J%EuTIkX{>&*&(xgGgpIq%`hBnVp?gD=^ASEoM z^|}#4%rR$SX&2AR()GtlhD~8WF1`zvy2;FIZvaM5oTUvW@AM}D;KY-S@@SHL!tln) z#f-nkbBNOP{Q)^n`q|dbF%Ik)9X?JphK;0=tWmia*tv}h=<^Dg@-fu%IaFNw`J1)` zzozq93%PqcC?+n}q2k@wz>BLh*Ds>C6H#+U+_a*;5L^3P1(~XfPA(o z`%OfFnnqzRuy78TJ0*7X7GIZ_$0lgSBx_Lun;3~=y9|2K3ty^pkB_PfeFM&0djPf3 zj=58t!EvOi2VS%Ngem+%FR_)+e9(*`#cCkXu?gB?Ny)y6k~9?Skf7u^gmnbLG69to zf!PNF*+3lIve^e`$i6%wpYtd=8pv{3Vqcudb<}1%H*;JiMORg}5!#DAL8Tx&&UK?w zUjfIzxj2}?u>#p1onu5a7x0yt=HrDi1BJ6-ZlqmNaR)aF$2?ibm8A-p_rW|ggWE*s zB`o3f)pOZZ8Qtw97Ws<@aODM$VQE!^_$wWet1E zzi*SHVp*4RwuD~(+NeNmB!|lKzk14^Ym54p%9{olZ<@Ny@yNZ#( zim9cnFQ2Z)A_R=33XYM0pi(LC_>pN>u3?=n0`b=f1yqTkR8q;)X3BRU*D(w82IPio z<@QHa8<|yVgB4rjsxI*=Hw&wDgQ|=^SLrP4$i>*|{i-zw<8q?h{tSQox93Rr=oNBY zA;%SRTp`C5a$F(D6}xrCZv9`fTmSFNA7>l2djGHFxcpQTJAZg0VJh=K$r1A4o~Zhy z%23AxU5{{Fr^(M%6}Q%$-SuQ`@$FrQHa)C0flLxNEse(Bzu`sx$8P-%Do3W+%>NFJGz1n8)KS=llv0?+0ab?HbalEc*+6euG~YNY(FrWq!$% zI`3A!vr3-duz8zA9!0+Db8mg|d;W{hj_=2Hk`~&hetnmd;}?6Y*S*g|KMgj{Sn4Ld zH&2{vxV3Dix1<61iB4Wy8?va7WTBh<&N{g`Hc95^p^ULxXB{r{4=45A9Mm{EW1jl{ zKj4v?!hD!wvG2y$zM$QjsfW+};YR~llu=`D{)sO;eVl235R%D_ahG2fkhj!OU~`neE6P0<1;v;J zHd+VskO7@YFSK{KTY|NEEPfcRubXD9i!stgz@ax~AWCeuq7Pl3Uw*_KI)gFP#Txiv z4!XcmRBTb74-pCl*1`^+!KRF*7eiARQl!Nv>~s&7GB4K>(I+*rY^e!_hT+06LF=~J zXk1`+Txd1GZ+64ov%!1%#~YX*K3x~LzVr`H-Z3ClDG_~PkpBoYAH(7sjwa~o;@$x8 z`_&T6p~R0$hw_j&o9hDy7YGjlg!f9MG&jOaZrssa!dN<~D<+|kl`%C&njXtQLUH4! z*B2CTX*S|M#bk20nZGrOU&k_k!BQ1ri3*GMKfA80j=7)r4ZW+BwE>Kh|4gnIC+E>J zpSw8d8xkv(veg!?bZxWtie++6bYz_+8^g&vfuv8+40+~e(v-H}jeJm=<=d6*2)%lo zo^yV|Yi+6H>89{=Sn_ioxyy}c(Uh~kH|N_d#>_V7>SCsoEpcQFX$5!kRXi6snzdRv zh>F4C+{~mlF>YPw0)WIujCBZ{8nxgRY2Xv>M6Dd7G|;FwI;jz0T9hp+g-pmWgMVo-G@w}r znocgt8a%atdA;DQL*v8WoO27zXUe&2RB|rEi*}-Oej4tfiBs(~3)coRw+$3-LLf0sp4_J5NPaPz zkA8y1>|x+5=*81LROfSf`M?qwxa4m;Z-W83`&(>mS7N2W3hQGO+OiHxN;ustGi~;P z2^P_oUg*R)3j(E~*r%6Rwh%fxOuSjTiDxC8Y_8CM5WP*JO!cIl~DbWE#IHt`U z=maM~rIf!wi7mCi70B@(C=~%Y*CnOlh|<7jE)2r;1VLN1cF&kV>B!@||u%6}M^ zKbMD$@`_eQ{zFjNNNrgcBc{CE*8#Xk?&#Lf)x^6MaS)PaD}!fr8(I zD*kF0Ef{5w28xDNDrN;0tBotxUZ_|VS1B71z0(%_h3D5IglvQ$cS67cRW$}yf%+=z zAXRePc89QPvySj@3n6ddz_#cMTbAV!WYwO}hb#BVe*zR$n@;a=T`mpbx+%KhOBlgn-6db7>4&jZu>4tZ|}S^<&+qHxtt z#+_aM-*_#}-WMM|UIj3}yE-N@IZx+rgU2yY%)MXs^u8>!dKELj~e7o>y`;N<1{uy6( z*27;#o`|m7w0F$ix~lj3U-Mp%5~N{;-ye&w`L#X>p2!?s98k=>#%xYt0yfMs4n1>h z_jLbgbGcr=1i2`7O(f)5dowy)7bAA}%=oy*jy-v5^772vAJF>SpXz%cYHnY3!sKqo z^Gj1Rv)e5b(K)*l-wf&gJl2|cvcYqHs&AKPIq}>J`@~&gT5|AcNDU{YTkXPRbn?I4Qb-LZ z`mte#(A2i>u%8OnyJ2Z-(cwe7X&q$-Z)0QRdB z6$MBQ<)T6tZeTV1PP(Blj-~$96$kISn%{{I(nQG&x=~GNL>do_`3@TE51v_6-h1`GHcn?%sW4Mimu^rGKU11@*DIIwVeG5+i^WW|`t zA&hIe4L;QmkLft~LnE=O3m-9pzaz!(Yy>>w0ajz&o=eZKfu?VPCL`QZ!!UpWO(NnI zrbj8buWO6H0r9mopabLKw?KTVhx-ikdp~FU%!c#SPPm0O zkki5JjHB%t>&G)}G}CyxnfNnde<(FAbEzZKmz`OslxDwh(O_TJkv`;cJ@lj|Y>zE! zW;jc`F$yg8HWZUSr6XHEph7XSY?vm=kV=%})IK=c=L0d?KRfdbayKyh0G~Wln|)l~ z!eeS@JB|^|XMS7bRHR8p8N_cH`;08O3N2uOocHEmLTA7phdc%%iO68l{+KzxE2hvXyC zO~mgss0aCEG{ew5amrSMv?4yeM2iu8Dr3D8iK0x) z0FzF>XM8%JHDyf+rRO$+6MwsrLwQVyn5iyKyCaUcXPfB&%sbVdwQ)Xt6+KU@DdS;4 z1__8f0ZdkvZFktKoEKr}a1x#k0Oy$7=5#IQhXbOj0t!@*<(vkRKPwmX(~}1O(P6Lm zlRa&T_(tX}ao&~1{0yiMWC6PhQMBhi8FVgJ4_b7eUR1w`2+%6@;pc^6lh)uIvlo+V zniztn;&Iei5XfPGWeZ|EEwQg6sE&c0Z#2$@0SiArl|XUk}dL zr1Lfg7Gs)usOG#)65bOq4>wS#WW<-z`P3zz#!_LHgij3QcVcr3aC|0&p9|x0R0Kkt zfMzXV*oF0x1(|_@!U@54iJ&S_cv~RkF6GVs*^?~%?|YKNi&k&MWt0774!p82{SH%f za*tg>uS)qVLHUSNLEl8#TS<9CYWZD5d0lIPd{}aVA^O57|2!f3YA1Rp-;Fe?7=u)F z1&BTv+0O)43@(Xe1LX^diq#gPUx>IW)C;%*1 zpNOk5UKZ%$i@V(ZbM&L-&z|Jszwh5!LCO`RTtUher2IEXX{VFCjce0x1PRAc28q%@ za|`^*EfMjqmAnWD+^?gfx~KE*y=k+A zy*@h?;hmC^s?1o`y{{KaEzU^@xOEuzUVU5JH4ax|fWzK;A?TL#_0J=>KFrhI4Q#h# zT+OELy{6&XBz}3aGP+_LbNI5kB>&X+oYITFpO0b19;x4B3fS)tSsF+nZC@yjZ1%wh zK(k-92@SYIPsNvhTUm>ob2abd-+Wk`?%ZK4_1?}!59_vY53+Ap?ME|?^wKWGOnzBv zKJbd`<&pdu8b@|^1f=-v=Uto=Rw^RX)3_LGNr_S-*nVHnj>dPlP#?fuv7yJF|=hY^@V zmx?!V?RrW+%?OrqO18WayCg3iF58`M>}Cn*tKRrf;QGX9D{KCl$n2x=X1N#9X~CuC z?Q9v;nF~25b-6=%E_5IYz1l%-fbaIjz63453Im63UeXY}%GWB_= z+4DV@YWL~L{tk3ht?9pfr7mC{J19e8uvpw%zZOs)5{|ciGie4TQOetjkGUYA2*bK`@< ziPO*gf?J0MG=+L39h~De55yb|X7%<~X3Fu8n>R%_nV;h)#QG&4l*dtCCz7cfHs|a- zMB*O!R4L1`S065n{w5hYDllR0uQ`GSKlV6yG~WvSDX6~xX3}Iolc_zre|Pk=!!?n# z&a%-17pVLzJAI23O~&&#fL?wh*O+bjWpXZ!{sJ9+tT5Nk(KODjt4VFbi+DWw;oC<4 zSW+}iC&BB6$|kEszp$8{$NTjBAa~&-wU2Hd2!hx<3d@~qM16UIl9#5HcTPljKe=t< z-8mrrbS_3jy)@!?p|{VCGM9{eV-hr^HCP{GP&@nR>n&A8&*ohRgjbAT_iydX?6AC* zJ9D5TY_O&NZforL$MUHJwQCO*Gv@A017E-T*Hzv1)GFUCyWEw{^WLjc$Nr_iYkKtZ z&(^c-da>;6>y{@GGMDN`cUA~3UJzk>v}Nr0(Z#fVZ*KYBS^j9HSh)v#d6rS=ItsY6^r%=G#nn%sZ9#hXoFiV|e*%n9 z@DyI4Pu{X)fjZBTVqY%<=IG2~Q& zFn@?c1Dme6%s;r0H+8~nHm7wLO#652MbiG`cQqbeq5CE9OZ_cIb$-uPSZhD^+-BLa z{MWI8pn@mm4Yh(JU(fe<=l#emC~COk8QAkXVfIK%?YFcO@S5y5rFZpDIM^3Dy;aPf zCZXxyKg$M|KV`gL-sc~Dqfm6~+SIka+Z*>cc8)E#to0nM)3~Gj?Af~?Oi#f)*J8of zBed?B)#q>A;4zJ)r}c?d4M}Iv$>;o|SC55k7_+(VpQMv*y4gH>wK+m{1nk=#zUh_w zRW+NtzOlZYmvyM2JCv+;(QF>ahToy42-lnH15O&crTh&`(VP$S*p@a=zUIJ9JIIP! z97*f$zAo99ZnQSt#y@>w*y9{8T|X`T>S+3zu5?QSq&+Rd-5;5uXO}gaPT?Xu&fJu) zMd{BVZz^5M)bRE0IP)LFufe^a1By>W0 z0}|5cgpfw)LI`3(rCG2-0%8XO*io7qR>nKux%d37gMF~q$y#f2{CtAzx$ggcLnGCx zSuY6mp3twp_?#&}CWJVeK+IO+cyi*QSfUOGU#vV<3M4)1i3}!SR%erVHW-i`U#VVM z&ADXQPPzgimmtZJO!E3h+;sx!#uRy)g(YDq84Iy!=0z7{EXNh=(T;!YN_{v*>E%$v zRuP;a*bGjlznanq$=C&ON$Ke!WLVWT)zxmrJ(P~r_ z0KXhhrwZs1*Dl2YaA=F;2$L*Mqu=9&j(9>=@+4gYIHBFdSfo0$DkP9Z&=N9j{3xQO zl|Y^%h=ZwId+2S8bL6fa5nP3#I zzcFH@E!k}(i~cjq%Z>5`l2*tGckLv;W@bZ1m`Qi3Wx!kyZfbiQ(?2&?%aDmmCxM8R z<(lg!&Ruwv6=a&5BOqT?(_nZk(v%&eM=|f9o59&ri!tc{autyCf#W|2q$R6JN!+Lu zE+@^B7AwZ?=g^LE*$LA$j%nsL{kX3p%mWkdCzJJON4Q>a5|7K{Hu3U_Jda849upoO zdN#|A7pxz@q?5Bu#R{Bet+PZnHIa=+AOZT>IQ{&2;=DWIq69ML_9C zfT#A3@PL}8Lr$uKefo@67lJn-NU@jsx{0x8I-5O`v&B+N)rAG7g&U^vpHYlg(}m8a zMHqGNH)7cKAr_v%`aPmu0LhQyhFuLIKGG>%3@$KHk(c%nmyikvd-Gc?H_t~C86ntG zG3Qznr?oTkwkV$fEv*kJ-Gt1dLZhu_*mcCnO{1KxqyFF8N}rnY0pKW*J7xzus&=IG z5Q%RAF59i(KYH%&s-2J27V${@NXpLe%Cr-c9;4cXYk6Ro;6fMg0KPm3A-G5qoJI=~JYg8GJl;weIV#jdkK$%g zB|5MIB1yE|JwH+`qN0oOuzY%)V`ESWlP9KkiSDb!+zxS(M9ffVw?B$mu#)Hc5+OvA zZ6GdGNXpEle6X|}=2e9ji@PL^B*_YiMBXP=m`Q3CqT68HDSXjnNYSUx!VX2nkgDRb zq~eJg^O2&!_-@5hp6s~+x=1K{36*tfD|pbdZg8db;z~7G_F7W;0U;ais{F#!N@J_r z-i4ph)e+;U>83gLYR?UK|4c1kUj8?U_R%>TLmiSj2TGy-` ztDdl`evL`xfGcF9((9w5`k9)0Gt$i-6&tO0XU5fT&2z171=lwB74NZT?OY<=ZCz|` zEe0gk*)`W4=&#+MS64}@`&(Lf=vST1{k(1d^+)^bTz=JC`BS{L{X72Gd=sxh@~*)W zz2?m2To86H2s;;q{r??=ox{xk!!c9GyM*)bqun!{E7im|B=vde7F&|4X_BL%0BJAm z%0Fk=qCT@Lb{WLeUSTZwdgilB#@^Sm?8ckvcfX*1`k%Kj`%z0c15ZlG$y(qqD@wJA zM4vh~P`q}ZKcD*bfQ9F!`4Bn6B>r5ieNyf6g`e*9JPWsbrhv}(nYw%0<6AN`Y_IX` z(l#aLE2Rc}dEJ*q?T7%;3BTn9ejd#!6@Z!L7SRVEjH@`Vwedm=bbpM%e{DP0cwoBrw_ij9NIpk#> zs9ABJw6X5%*SdhkLR7Fa3usxmd=TpZsTZ5?xVh@{m*?R8w+;bi`FS`v;S^ zgUXU`T(G?PvH`T>%OmcHJ7@N~y4N@1;q7&&B<2Nq?&gKJv@4igM&F06I?=ZGXt5Xa z){vp>SM+C^mQyZh^)icJcLL5%MDYzjoxSk7XR&Xb{VTJ1sdUq<=AAF4?+d=1TJBI| z6E+m5yD`X6_9J-NP318*=mV=a=KbvhS?xC|PYuuR81ye3-s9Ec7k0e*eeVXF#}2R` zK{pczxmGBj;8#C9aSlA_3Y*>wh3{(`M?SJ=&<~y+_;IQ?c^EZ2?c-xK5pR58B)FyI z%9o#2O$Qr(HftV!8Z|yJW%X>#{%?;Th?vyzeF-z;Y}wVXesLqPWf9Zw55|0wUa0-J zYfNo?Lc{R6K%@tyjvGU!%Tud=My^heUXkhV?UNwDrY$c?)4Q8S+=tSIN3XOO#_s>Lc6WnDzzp6>BD*+c`;uF}0JEF!#0z7kBso}^7^V9g_*wlV=+;8KIq$yC- z1pcfEK@+}@@T5Kk2gedRTu82jR7jeuUIx*G$i0(3kBwvL5jiFx9w#kQN&G%ZBpZ@e z0ZArmSUHk(_eI8`MP%np%&jxpRglc!4h%?%*J~hn_PXEF!yNjC+b1W-!znl5D0^KfP8{ryyVTXr*oZ-h|2D*BJ*-C$c11iEWt{5YfgKXX zsR0QKuF-lYA&-6VUqtbv0J@lQ`SCcNj-{VBfp@}ji-~A~-@&`VStulaksI}1JJ~HR z(Eya)F-&-rkln7Gn+(ZbLd;sDPw!S|UF*%}>Ei!FC2ay7TmizHLj98UG>rBR+8Y2( zfFz_6@HJCO&zu-PfGHUS2Bm|sCnVfipEQm{eETTT=wh1>Al(VcM(@sr4 zqoRdzX~mY9Qny@5NN$K_f^Z~59FjW^M3cEC#28Gr9!6q~h~tb`DCXM2NTUV6XPYKbeNDO5fUYMR+ng2 zEate2xijS%FmchSIMZDsv`ToOMZc%{uif%rh2(DsytevYP)!>-}d=D zpOJOT??DrWQ~GYAQtB>7_|p@Jpz`o*Pa@fkPB zg668l{*onm5-n`%{Hj{vQJtc!UVXnR$3V;=)vODxF&(SgWW8H&UCrMPH9pW2G2!wwchsmmkyovgS>W_c#@PHK)8?MNlHL@^!DeM_mcI{Z=r^lBa`d?MnHNal-RZ(NG zo+Ati(#w2p`hC{Zi3jZJeL?ffwaf@>)Q(pUL=$;u&+fF3s9)2Okf3u8(equQ7DUA3 zn+ACC#zOBa5mEW~>%JTLWRG}#LGwdz{p$PK0-)|f9$d}**7e}V+YNy!Pns``gP#(*CpG;=Ko(|1k|?bc)!SwAn=OqS0-zN5SKci`?A)Pn`)Rorw^&_@aA;lZ(s zxvxE4rn*qUv6`!#Z%OKfUr?To=f@9~Js1+L9)D2W@;!Ted!17v>dB86HZFmE!vGK1 zbHlRGi@TP*;pd=&<7hwGrsqQNm1Z}WG(=#A`<#5Y7|A>$xD|n3V|$mZIGFwDr+9-G z^vss#4x%i&8@FNXG9MjVT1C#|8y@Z`Pu`~x!_Qn{+{lh_{ye&&n9>5T5nM8 zH$*xjqbjHMZL@ zR{dTxJ(JB-^V{mTcty@|#DzZ!Ur(!jcKjT;nKE&|GI_NBWmv~pQce4-mCe5lpuFLP zX?G@~nR+mu9k6aD!uD-Xqh`bSZCcz+Tkn{C-ipLn>(pOkpHu2umZ84c%vO!sr~WXE zy!tV8_RE*@l%J}muTMsABBxod&+QX#FSec4OU!nbjV3<&xR_}BjPWxW#|JM00P$9OYql#hd@Qc4K*rg) zo;ZR_NY@@rPJuQJB^awQ2RWd_1jmi8na+C0j`X0OTcAAjobI+K>gr)nbvXG1Rc8=clkf5I=uT(zqWk?U~a@iww#cNSMezLY=%3iJY{@$HMWC;!_e# z@F)=;`OInYWNP7{vnE4izluO`Q>IR{36XV#6@D3bATdksst->;swS8v5F_rm{yhcS z1;_n0>AA%iv*dP0-&&G4=c>6Vwp!#usEdu_T;&6RjV3@5Bz>_7c`GtqswVAoC6^*e zZ4iWUr4kY_ zZ-BJbYiXZc6B2Ey{5_?8O|Ny1pSgsCt+l5l*+FytvOMCl=3C-eLzz<| zY->HeSU0W|$@!wlpRO#c-t>Lbxpf5AvMKUGXl$z} z>m(`{w~uYjVK#J-vV?3w0E_U0o{D0x)n}b2Qo5AU57e|XrVKTJ;W$mbsLO3j$Qkco zJOsq|aN+}rcm{~~IDnhh%RM9HI(Bk7`Y0NkegcSF@*%Mvloi*MwTYWii#ogxl-Iz; z8FBM=%k!)Uvs<9Z6w`dUab7z#e^p43Q9W}I7?_G zpx~80p)4fQ%Chh!wBQ>d=W`QREiOoR&gF7hm`?JPiU{ju{TSg*KqD#B%yMq(9~EX+ zKPtmAJ=CrEYzRRYL7Hz?qG~8E;1uf_u&=stR*W)NOE~KgB`bMs6Eth<4Ee9FlFfZ3 z(a_RO;8HTTboXdU5{Pf+&Y$L93ZE|B3*+xc^CyY9js|5142t(CO2LS-9cYd-ujDAY z#Hy?8h?yYKw9Kck>~96%msAQNAtfq7PA5;cTD9ce`VFIZt$8E27)<3-bE1yGO)^D)F^xG2cv5W+f4!B@%?BqANS!CBN~h>Mg9HNRnTJ>{O zG~HLVAh9Y}QuTT=W$~}7CF`oE5Y^*-g)8n?8;(^Qf~)CPHM$x4y?;^dUc>*-^~kyO>RfttF1L(%|^1w#_i-x@p%wVLqS)n)g)E+c5k-4&lJFE_fqE8svbuFBm)_G$=N?O(;) zg^MNxuD>*W95T=Tywt-*^*((c^wx%rlB|dBF8S^?|5Ymu+dpsnzqI1`Jme^N>7=TY{z_HEH-j@w z&v5Tk$4j(Y@#$Xhy`b~aWr21foxY0t&NDmn6YPe46QEDr?MnEoeqZrk5nnL{vdz`a z8a17K@S+lD8?YqwJggV29oH>q2Dm`WrLY?qzXdHh=D%Hop2){HLYrz5LES8u}z{nT_!*^6kek#g7LY z#{^^0Pg!ja%!Aj5+{x3asEIo7kgm8>V*@?R&xyseHx9K9M|?fB<9DZ0Q|qmJ5=ozu(k_XPcz!<-aq>scVJV>An~l-7o0GM>{@f>~{_dN7(bsmfoQ~n+Cwfk#)}>$E7q<}*`4>E4 zGXNNYcU+l}VF}E*=$G+wC}Y>uu~RzmRZ5h z^dS+tjGYPxqL0;qzSgxB^g9Wyc>_rVPHF5uzkbW2!1#-Fe(n8d}Rt7tWLQ< z6s4_Y4Q8ZjdNPcKDOc6Dv4kicU3@qb53j>74o*qwa7hE=HAQP05ioVU)OVdJf31rxcqJ_g%^|2HU(*SCEP@kzu%>Nb)o#D z5?_$bwe_d~lHoq6=V0czVP*^-=R8GyQbyyzX+nG2S2;?=2__|^eT37$aZY~#1|1}% zkC@O{Q<-l>s2L8u#hWfP$NK7#eDr9yhbfPz@O4NWOi2p{daWQ*`yeT5*X&E`tR?z6 zkBqamwLLgs_Or?CF*ssrlb<l0zn3qvl%rG#7`6dt#g`L{A#+(A^Z zh?k*YklWRBBg6|TVzr2MrITf1&sb~{pRSX=%`InlCu5HuDCicjPXN_yxCvnP` zCeAlEQp^bHr)4V7w9ubhG~QGQ)i2huDvnjLbisu>6GeLN#qY$$D-=a*W=KW~<|;Gh z>aOA$RLNqq^}p5@uLl>eC6#PelmH|pR$!)OSE)6awZnkF3&Hka728M(x6PDnLGX9> zX)PmvpEj{-R^~+Fqr};JnzAWPWv-(fFGcKmRSIvZwnexz40UUe=g)}cDxVyf_=~Ifh=^Mz z;W1{o6$aw+8Ig2UA~TcLYmYub61jnP-$TMOleBtE>J-wO5=kpUbeku=WhL!`Njuyt z9-^f!GeR^>7zLA|`pOf)M1QHEw@gXo;t+=4!|EZtr9 zb*A#=Xysc;<*-74095_#6ZUsi&0A7AYgIko#la)1_429>nyZ)gS1)f)pVNYKT5wJa z&S}9pE%@JC3!45DB|U4Wjgr0#-Xm50J4y;q*G5TYJ@wTEn$3uRqNHa35hcCk;J@SZ zldy(B8KT7WY^)aEgwA=pE`>Z;0Gw=kO#RoH;yWY1K%`gD)$WF~h#qgno8+Bw_>h6I z((TRimzBK=e@|ze{q^^OmGk>U&*uf%)If4&SI=Y^(i7)GxF93BM-Xq!j^Zvk= zg|?l~!uK#xLm$eIaO(rNexFCtMnW&6I^A_(8a96>kl_Z+JAJ+?xBbKG9ZT-sJ8Lw0 zv48uA`EMp$171av>`xERzWXN#y18g^#`!%A)AlLL`jThA>zuxzo|OHGp>C3$d2<={ zbbg_<)OY~SG=e_PGOwpuc#XU~2Wzdow~wFT5sHoPA=e%-jS#TLV876LjV#y7I2mkD z&P;E|&VcF-dp}mK^}ohB-cbLE13P5b%quMzap6&)+mbT#>hphI)&@FHtOMUF-Cjj$ zmbFI)?0GrwqW$J=%Mi8G~Q&vYJMv!V0o`tZCZ6=2YC$D>U%-?Q3Zw(lw2m9t6{Repp>(&Eu47PW;a@NA6+V}q_%?QKQqgngz`R05<;Z>`Q0dPHL#1^s zezUg~J@2*CjQ!`H?iNnv5cf{l)!-bW-BzJE2W zXtWO;F@v-RpPletf8g7W)I>w~>#uTCuGJjWME==7NN^c*00oax^wz!QqPG^30m5VUDXq|9+|LlDt%RXdbnN2HWQEy-tnz4!&(kB ze35V`9=S&Z3~`Bn7=*Dm0fLlBTO`V=2ZJ8RkQ*^arW~ChnMoE zm}8R0I78&9lW*7(XM>~iU5P&gX*aKt2+v4`aBOL2hPg@H_vcp=7dt-QlDY%9cBONy z*d{|h1!>YFSg6TAu25D7l1q#!{>~Y_4dk&c$2+D#w*ZtLB}HL!`9wMC5Wq9AC*IeX z1~$no7!G`i%oOR-0)(`W1eyRs+oz@?dWqwVOzXwSAtlxeNc-MFABNCh6X^5Zg6Yc4 zIA@}+CB48`djg4l>w-N_$a-jzeIH3(c*oEEN0$E-;u$l`K%UiQlDHfdzH%fR55can z%rWZBDm<3cryG99PJ=H-68E{`Q3QOoIicHxfXhtX%cTOvIF31^LLGk1nWFNA0xdK4 zL&1DFGjJi(trJ=0O0y9YN(e4AQT8GNA&HgiIL-XzoBKtcc3u^9afDeaXRQm$9f@b@ zKp1`?wlgv9tmVa8y}<2F>}PWLWA#;gRP5g>h>42TG{NRHGVBwuSk)PCx0uaC86-;% zSwH7*6Gk70eg#f%^gcMIrmd0F2TXViN4TH#vc}acpGN8ogf~0R6^+nk;`oXtZe`OU zVF<4nly}7*cY%n0fXu!vCaxpq1cq>#-259v);-hgb`;qf#A%<*ztNubA_Ut3#VymQ za66llj*PIqrc)r6Z0{!g>!$R#Bc3c^p&f`jq|d-}3%j?nZ=NXxqY5nnMPqL4lL1B7 zkL3oK7CViQ7D$RhEDL|@=Pr~K>$n#!no09+FFv3u{>Uv}3@$OTVl6?Jn7Nl2DN4r6 z!`FAQF1eK=#JL-ICFZ2!IQ`O%eWkl*ij7Q4wvbA#C55^q{&K4l%Rat6xM-~b-wMHZ z>Pt_8avwJpxLf5vA(pLe(jFw{-%^!%cafFl1)c_iry~$;r>d1oaHflM+f)D{aZd0A zaQAW_gYrOyfI3|sFj^ixD)?4beiA6W#48Bpm0xuiglkK1?g@-R-u*S)ys8k9+%oGO zL1Y}8M^%VO26+moD7#BE=_+32#@Ajc;$dQK_f0-eRNN=#TS-c0L^;|tDOxP;;}Sy> z6br-xl7uxXDc2qW4wqBLAwzW0i0);UDJvRlRau&1#1lsL7n}<4%UXT!Wc- z1@8@vX0;2=Pc$b@e{Ju6cdmNbl;rr`@dcH&7t4_2Iv>sXDl?z`VaIA z)jGb2Mx*e`o8?;c>+9uRvkkv*7k2r*qPCl5TgzDXF>swjFNHZ&W88edRcs&hQ7|Z6 zw&CI_mS3CeIlk+SWpz=hPEU({ZBW-94#$o~4@B$Or*wryjr}uGI!C4X1fHywg_3+|&5?bl<#`-)>gb(7t6R zFambnc1tj{^IYTTcK*wu1LskMJ)gd33AYU;CQeTtkElI5yYudejmYEolm0H2QiS^~ z&?hOCk#-g>gC42T=A`i2Nz{uJ{)r0YhUDpntb>a4gE}yu%h0BTD<# z?34EBhT2ej9)1q52<#rC*V!oV z+)n=7-7w~)X{j?>rTN?uxi8f2aFcG_={1;LdYJ7%Ou8?o=2=1z3j=U9cIe1(G{GDK zWZJoAMq8w~=*3uxGIw=kejCor4UVg7ODPC8I{h4Tc`Cz8gk5R@W#dDzc(l(xTmS?Y zq(;=RapVS^&MI7l5));Dug2rf0k9VU$Z!t+3J05{7p19+53j`~t=^N2H?es*?0mnS zu>387F5ma0oWMCo3^Va(%Wbj&tDd(L6XgCy$k-=skz_uJ6qEWy7*WlMy6=+u&JH>@ zeEPu;&riMKmHWu!Mk%d}C{ON^Wv3~XCMVMX7b^h3`zFA4f=h!jb!M2n%s%~MeT>*9 z=5ZaBZcEZ5P=73c2LwsXcv##fec7=(7p^D{%LB zWtgFJyd09bC-<~xuQf6_^Q>OhZ31RtNR|)s@M5>%=LC$Ou9Nu`=%mm()*`DDlDQV@ zWE_&c3VJZuC2OfFJJJRJmucd&=ONP_^i*3-cIgCu3Di%n&iSDBHQ&l0xiIdi6YNpw zFF@vu^4NYibnIHl4l(oawAYY`aiWQFr`L&Rl6Fg%T7`_fW=p(R4$~lWaa*Y&Yr-#Z ziRVFKWv-NNWn!RZ*oMZ$a1aa1Wi_c+s@1Hh$q2(~|0E(XMa=e@CO2|IL!sapebygB zP8ye8Yr;V^Y4;R4&t1sm5p1?TH`$c@a+tHAjdpkA zTB-O_wk~6!BXv!|bPV>Ox8>ED+y(P5bE8wM;ic+h-Qd?N* zesn2#rgWJL|B#jewbBn=wwuRaW>xCcRqD~@Hh!k;go1wnEI0}iEaeFnDT@6OoO4}e zkUl}LA>or7vzE&%aVt7PESE#e!zAU$p@n5lMd4P$C`eDs5orcbC|k%Zwfs z&w|B^Lu*z_t4$KC*7omM&@Wz;SHrQYU6WX&+g!7ZTx)2J5-L~J?)+8z?<>Nw+Bs1; zCkp38;hZR(6NUf1MdAPA{h<8xozT5vrOk!br<}!v%6~d%7A*2gXm^fSvx@9H^!-88 z^NPT@cI$z$|gSo3;cJUQ5D7!>4n zC6=FPq~;%k1ueBJq3sAiR~*>aofjW#XGnf=A^?1^v~r(#?FPsmyS_$wB|o@@Gs+n8 zMYKG+R$V0zCI0B^t+@8H2>&o_d!KDX1^NzFBoI-nCxvF!a~cy-Lu)Hj8l6 zh#ot-=kA<-=6mbmukF3-zf1ophd#x}KeFBUB}EfHY|%gdC1vSQrZz^KK(jw_ zuJ>x;&HTrwBEk6sjyLURe~kpw&@EM!!yb1kFtD5QJ7X5{oalm2ZX28LzbN=n&rbR@ z8|rZ2cEqrJ#r5ICr)H$TJXNR1e&%I)p+ts7L(n|47qQDeKDh5Vg2S|YS0CFaTjuEd z2=nWE;veho<*)tP=#B&QUDwMCc1A+-UVUP&NM2{N>CMAPLVsIB!(+@6+xtcF{kyB; z155s(a>q3deD;p72@_*Z$2ShQ@5=k))%;svSkzj*Bc;JvQ*?FIZ&MJ(2`L$V`1Qll zq8)-i8r6#PufrKdTW%N!CcfydO=>*Y_r)c(Yw!zVM)*Lp2$!n47jfoV;*9RR@!`~2 zd(T70LC0L;el;5EXQvqu!uHr-dNPsr%_3dzaQa%4fbI54TXd4l;3;j5hFV>?8SePJ zEn}-P`n6&DdQOHF@DwyY%x5@Jry8TB$OFiE`{DBrAI5AV#Gh{r0l_m4Phk#qV2&zN zt<>SCbOHmslifI1J*F^+r!oVLu;u}o_R3H{lSrr<krzSJJ=`vD-YU#MPhML23#nJrRaom`tpL zpM5t8S|kTfPm)4nNxE>tSP%J7CdGMQ+55YN8tkCEPc`y*7z=TO4Oh3~GZUxNsYT+p!%oCG>eV@OT};}A{T;oPeUNirV#Iu?9(6yoaDwl^8sVN_n z6lPFXHIhYTvED&w1)TKGHds87ibj!DdSMYNV$^i-RaNACd{TpwcoT3XR!mK5V$a87 zJ{qTGiCN?jSDN@T!|fsw6p#xAQ>VFfOI$XHy1SE=*%YrA-Czv@41F1#eM|mr$PhG~>M~YZ*897L;|Y6UQ}W-n1;L znk@V|ojasobZeUTqchh9RpgSj9aqDLY}s_d=ANmIyqo%B;KiPG;p7!Gd!< zK{ryc1ySyT5QG^B&P({0VS)%W|1UyOI~1+0ow>{{ZX3x%n-!r(g&7K@CJtSktU#ud zL`l3NBADnoEiy0@Z2zw`eITbjb{9P(fg8TK%;9e)2)o3==jVzp1{s%%v)j!GKA)vFb*x3u`9^cV$h`X5V~FNPQO{5p0-xXisWOxx;_(<6?R0rnjki z=9hcw!h8K<_O{#VbgWvfgs&ku8Y$Dh>ZY$(BQ{ROm?}dz!&9~rR&AIHHp~tDfxmKU z$oBM=c|iC)-D-?(7Di{~nq7Lq@Zq>TySOa?=K~!WM-Ju?JR{XEb1x@tAJE(dIM1yE zb3mCHXpYUq2Q4ts*2-M+iN!i_uzFLe=OBJIT7C@1_>^TvbzopXI2-_#`r$c~Y2It_ z(LnqKEf-DVYujD6%kfE~OihX$7jHr!aqtn^jSM-4*n!Ovgo#<7^g3VQn(jm1G4cY3nKbCrM@i|7yAaE8mo;!N{WbDI7xTJHO0%@YLhm zD6RX_WU-X%9jTv;DGEKOn`%lMhax7p8X?JF?0w`w=v@=9Cu;J*6t!QE^06_Ee3TaX zJX)aZ_}GWK#y8zqP5aKwSdFD=MdZ&8+9tx)Z@^0nv{#ZsnzptS&_Ndm&@!H-&1*U{ zA-XIAUhWaa^obH)>fu`U#s#+0PO7nY0NKqzY?NR2Mz`1toH!>vsu`5BMiqCGefksx zzg3m9L0`i#S0((_lw*s^*$GXc5ONS53=DAhk`YKIJYDFEeD<7S2nx}ghH&K+Nh8C} z5_Lz!{Gs-(8Df&*OdreK1JiWR>0AR9Gee1E0nIP)Snyu`GbpU@`0QFl)D( zR3r~?(WCw8NqhlFdZt5)GUddWvTxzoZ9gd|)YKsyg`}boJ5#1D0-pjo8C;eNK6ebq zIilpuZ;V>Orf$)X%(lG32;mBja+joM-?@^twSjp_pLNJGYmZA-7%^SLq0LvZ7mj4% zPzgbM!MP$6wD_C+jr)S#HNi!0(w=;j= zbpGp+{FSCWTX}w72;&X0;H_x^6IkF1EjT@r=R1vN>JebjqJty6LzXP62_!+UXd0S( z#4Q98Qj}xMl27vt6h(E71y~n$6pKxU@*0$RrFtbxT{+tP>-FcwMrgK)Rp4p`yU?`s z$PjyAqU364$)mfRqvBGnh{T=dTEqA@B;NKJ&wOa9SzifS#Vs-|drqJp>ErLP;;%z! z;gJs-Ej3i|o!$AKlClHt7hPe3t!4tCyTHXju*IP4LKoj#QFg^0yhR}JLJQ8#@GmO_ zJ~P_HY59q+a(I^j45lqGW1`Xds4n4mQ1OhZDA^!SlL5|ea}!|{#aKih1uY`+L`!Ex zsS07!G_7)2NJWbYU@>P@lszLRkBUnSGCqmKIXrO~r?}Wa%;!mNHi<kBAwd|2qWe>RWpTR{$rF^vVj(cUWd*#EK$~TJ2uM*iObk#4C><_6@ z%aR(i>K|5zya#iIR+0)ub-saA3yk`q66xrc%*CRm>!ja^HS-N>45c-C{WUAbY8rb{ zb?BPE6KhxZOKN8%tH!J)<0^3$zIJD5&3b9AskL@wv37Z0ZB`fU-w5eY@8ti_;9|sF zQ_UPn&XMFCNzRev97)cR+MDkI)DQ|l~`b!515Fz#xM7bHkC9CS(<>NAzLFe`IE0sDuYb`}7g97dPw;@p+E z{TwVN2q)1+h5QFte!xZO;YW2*S}TbFCWeXd?j86a!+1?B0Gr<7avC@<6G8|?LcPlV z!N^boUiAN9WCM|dgz=QbHOEL#f`}O=q;gx5RyWB+8Ab4aNU}mN?BqmB_TscdA1*9_ z`)g&H(NyY6W3P|e8_33}n;gn?Z;GxT<#=Ffw=%L_M5z&7CUvBI)B&mFz!tq^k(zQI z=($7=d_Q$;gCANumuQ4cU)w?Z3vj~J^~A7NLpsyPTrYhh(7ymq8n)3*fd9bc7$IZ3 z%gJwmQ{!r1+O;#w^~hQi>FkubN0ps4@`af*R8 zVlD+SDJB#G1o`X(!x9v-OwDALGmdeYXDm^UmWf`L%*)eE7|4$)4|xrbkkzx;NYaD$ z&GihQLljy<`=Z-aSQzy9EN*a;r$zIosgTMek5Nn|iy+;|kh|7r3 z&+;_QTfk*+8KPMt^JY!*$&GpGT)NEda+N8o%QSBicFvzz3CY!O%7Q|fWb>kYedZ5B z?&ho7exO{bTajE<anV>oBkP;!3TMH~v2J^HxipB{3E;Jv^_H$+F zHz)oP1;;{C=87ow>f&f+WD>OWs6f*^OntgX*R zMA^X^K_IF8gcdKsf-tkP<7k0DiNB1Suh7p+ni2lA%$v{`X%^mIuHr&>QGQnuP9eTS6qj@rFVm3-U}B+rvCM!~1QtvB z#C5!kKJ6q%ZNXPh%TnA39 zt4g3B`A?E`&8v5Bu0K1+lXE;d$CGnBImeT8JUPdc|J(57j=labM|}}uokNxQuCMkUlnH873RS8l2XXttOQVex%&`)xoKiywbWa=4z9*i+Zcw!4($0Uc~* zY;00BT~gHl-ts2}Ss1X-E78@CU}$KG zC$tmSikc3dzMeSnY3Jni6}*Ady2#HjJ*P-ZZuq6Ss0W8#O7GrJ{+5uizhld$Z=I7( z-?zO^`lF;py_j9`EowGt;OOkP`QOid_X}z+Ul=*%7JPj&F{)0_txI#mp6vNUrSCTTf&N_l=!6P+?#*5w(;J) zS&_2tUh0=zcIv$03rRD7WXVJyR%`WO(mCU^C&v?&tk4^6u!gooFPF4N=Tu#_zrLR9 zi+wOx`?L_JbWh{-7Ta_q2-Hk3b$_sbU_jdXj&Sy1_`=}ulR;6x+A^}YxvLikPfcX( z20|CvVJ`V%mL_0;0L+@kkp1fD1M1U@aB)%E;#8l^AF*)<+cMk1?se#4@B^5nz=wfRt2ELh>^f8Tsf2XRgBo6|RwXdYA=%WI2-Dx;3Kv z!-bkmwkC)aven^3N+GaeIMokf(^4$3VcWvIu!4@o(cO}UeqdGSZ4*bw{JherQN zIs?4CXdBH-9mkl!mT+h;jWk~%4Wj&~R@GY%a~2TrLqz)?OP_(${IAhPdRYN#oJg33 zw?{4`q9TXzk(?_HaNOEXROoP4{IP6C2Y%HwNFVBil%vg{IYz2%#bowUeY{ehy^@=~ zD@238J(2Lz-YbVd{Q}5}_?bchK$G=yY(p|ZBed_vWP20hD+{I@k>RXOv&tDyhRH7{ z8B0-&9w2kUQ5s*F9U~x7b;zm?>ZT5Qxk-jDH+{JY)z~=gifP9A>EMf8a`zO=4Z;dQ zv5-tsD3_fO5?(K-TydrJ!zr06iVY|lXPKR0$%3mmR=Av>61Zeo#|q%+tX`h71 zl}%}zA~KEKN0(t1m%FHzX6cu9$(DF|nQ4ij59oyrx?2>gmlztMdkJi9IhF=mnj2a= z8k(UF%Ag@gnGkB3BC4Xi>qRQjb_Dy2MH zr9e8RNJ^$$T7l|$n~yc0L`i;eTBrLdpuZ`nzB#A(2t6^TbOULpaC)cyc`B%Q%BO)! zsE8_`hWeX-nxFCcnu9v2hq|Yh`lgkNsfDVj0GX-!NvWF(s*5VAo*JpZd8&GIwO0L}+PuChi?3%6Ex~}fp zuJAgqtm>`OdalA^ufW=Ubjqo!da0jUs({L<{u;2MDzJ-Yu%n8qjk>U@s;~fSst+r% z4I8lo`+onLu@I}V6kD(zE2|{Ygqo0QkPip!=eqprM)CI`;MTQD|J; z-cqNfrJe2gOhfG*_-J&Z*OnO=s51a`Hzn`w@(y4sj7&7`22~3^*tu~-4EU% zAE3Rw`^@~;Fa7mr(Qr^`=s4t3zcT;$b||-2N1R{q|gUW!_+hsQ+UMnX3HZY^hjA-JYs~ z(Y(*uGHEi^h2uqJ!!JFrSlCgC)@MA zwPlMfKA2A^<)FWo+rTfF^!lLXt6fnvvgvYl73;kaPV@oylK@z3K7|HG8vA`<;dUhT4NVbiXH53XRaCRah*O{y<~h$>vaEVuV6d{n^e` zrDR5FQ^Uo<(jSyPfnswb@}#vZTYs?m#{O)7wKtK#yZPp7ZD)0HaIqeRLVK7$=Z!%K z{EGH~GXJ&rBi8&>w5JjbS!f%0Uzb6|#`(*EB=}Ov{^Rlt1|aeTpg~YKH_nPJwSv@2 z@OwM>GLT7P@<#w$XZ|XPGen)nfmZ^u8o_@~JQF#H^=LWjV=IsrD8-*g3tH!vUW?86 zG(8t5r>#YukZ#&do~Y(VLIX()t|L!cOL8?1p(;!wPg$Oe}w z;6Tr)!H_Pzy_J{Y!-&kxo}dUx{n=Fjnfnozz{_Bp!Y^51n?Y#u&JJ=u4UCHXL0S+T zSP=q`Muj9?=H*6FPnz0iJx|=R$)=>=NzYq=6#gpmN}4O(>d=}mtBi3rw;5y&valJY z&S!S)dpNuDYnG5{wY-#ivdDINq_D80T3N%gdX-S4v~ue)DO=VuW!HZ7a1)tc)o_j3 z?$0yQNvrT1H}lOvpdH<2>WQ1P&F>#84Tm;Z8W)Ex@iKz!Rd~+MN3|Kv293}CK>a<*MFb=P*C?7e;Ly-U+!Z+eoq1UUy6k$tO0pC31ImRphvp$#Ry zYjUWSC&S}5RyJWtgK0Yp*-Sq1#;Zv-h%EU&ZA=sFG{arm&jYq6M7ZE`07%mF$ z9@KhyEi4x4x7@&N^-;pLBIr46GB{G17(}q&5BZ~fS2^d<9ubSI(JuKB_kG2P%l?C} zhsSK@mWd-d^&5xK%CD?w$(BF=1AfI*f2wO49BC=>XUS2H3~Te-I*3+0y1XD1QCOCS zv1S`J>tP_DhYoru=0_^+r(m(&$IrrnA8F~>?HIWfUbrG!8SK7?s1|3vDuY7bJ~s&! z37{Ss!svV-V-sd1=tC0Z-${Qy6#B(9o6ORsWxS(2Ov~s8>E2WaclxJDcZb*H-2lnu zFVFG?43f8nM&G^sJx6* z(>Erhsw~gW3iz66k2r$IG79YqL`%{?XZ5IMEBq?dY+`(Jl>ds`_N-Ws;ru~cBLQ@mJnyU-AZtImZ)m*mL!Yba@M`W?0rury++agA_0ZUA<$b!PFnx^ zAJzf3Si{CedXuR**>t-KJMv80Cp^8{HH3*Kxa*{{e0?J6Ca9?1zE#fbX&93PM@rD{ z1~0E`BRhAoGGFL29_RBu?Syi@GeMwmtjmB*X=R$L+PWZ_+hE@J!}x5SrB6?ahoiih z-%tsWv+)uRsSsAtobYcqIgt+Qt5@Z8;A%)pY8RIYpZ@IE*;3jOnN=5jyLeKeys zouzN3WI&Gk@OWQ!!qDkYn26MLwxQ$z0rM3gd=BjHxnm9}fwf}9=lsu{t2y$4sj z*y16$80KTy*Q%|XsKLh{%PVy(MfBv&_e%D5^YR*#r z!lG^Fpkje1M}_?SORd{v&b-5XV)}*Zf#=;q6A8*DO>#D6r9X?RMU-cNmu9ndxbjF`F^fzRYr+K(I))IQgoz z`~~XJWcK?$G%9Vrq@uD| z7?ixG=PJDb5qO#duviWP5C*8iL8ic zm_Z9~f{d_8P#7Fy;Gi$mfkrqKC@+Zd2TaxgDHbyTT_8iCn4}#LK)!PfHh&)MmQN83 z*8bKC_R|c?!l6xu12!HZTx<62u`Dzy%EW0|!$>0%)NDeN+Ae2>&6eAbmji)$>pj`*3+k zxFR&XnjvILD%^^JQx3?XAoX?w!lgVFwha!OAP%Po2P^`^>_#G}P9n5cBZ)AhJ~KqV z1W>(ji3%a+ejFS{Hx-3EihBBv@;P7hLUa_NsmmrLdc!xG+|}zLGJ1VEnjA?+=NiM1 z6vJ2-!#o|sii~+r@+X#qFP2Lymd7;~kQB>b7b`d&D~ya4C5aQ`i~Fb*C*c|=l@upa z7biCzr+|$6OcJlm7q6-nukISJnG~;G7q2rNuZN8PN|Io}mtdroVCn zq!_-WIIW}v*Ca?%QgU5V>U2^%GAWZJ`3GO}Pp#x!*W~=9Rv(|?Qd z{(pNP+=2bwgWzwkgulHB{`N|^dm{Yp(eM}g|I^3++2~Ix>hm}BPfvy3p?|h)#y_F| zsH~#NKvRR=?ot~nluA*r-f3%L)R}Ftx#{WxeLzw}@mApa3UMNkNYK>my?Tkokm-Ic zbdlkWNtgfH35(zPtLGC5hGl!a=NGR%Ul;?vf!cKQ(*s{K!m?~AbBR`h(Ibd;f)}#j zE1rxG-~SHdngFhb17;XrqYIwHY0xnUU#~@dBs5)%{$wmU(hdSmqDWGX+`&W{iBO344AS20Z&86m7~oM2)lZJHRSK$4m3VJDN9mmy42 zn35f1mS2GK`jKoFTNF55SQORzI2pb1e0!(t_d}-LU+oIc?{Y^dp3u5#C`=ZYW;|os zs~W>M-z}fi(_W|?wtb>&Iv&VmRo-pzrL?ARW2U5jF@|Tq;gB@SGJSJIAiZ{Qxgn$B z=v;QM(SL&MuxWSW%VBdivgm!?@Vh5A*<0#cyMNk!8xA{Kgqh9SHl8z=J6x*wv31g# z_c3mS|pImVCJ?RZ&?#G;!V;>OT5#$(reAUQ2^t8xh zt(~QI*3y76$_R>tcdfFy7+$q@^T&T%WA4usNS}iCcR*j$9}RO-?!=AP;BtEd?(Y5+e@_tQ9kw&o^q>YG#LmDVxXl zCo`H(c2@Phkrx`bsn=JlRM)7k#%m;-&%_QDaz#V*f!-hszTh(qI;lU8sb8ZL_hmlh zh5f;|8uEL+OZk8Xhx)1ZkUxXm8*F*a56@~q0dI|#AE-&Sz3j2^V>Nn$%k9wiWa2Og zMb-EXf3l(t_v|THs{JcLP<{fn0vs&;VC6X#LX2JlCq$`u`Q;1EPfUzBp<1fTgju{| zY;-tb-##uAXJ|-pKE??*-CZJ$os{6+#*VPX{ehbVAr!#JiFEB-A`i~?5hFd0dJMs* zCPE68BaXs(aetD67}7pbD@P}A8PT*I!_d%`WBkb#=(x4ImFSdRB6f|ugh^nZA9uy& zh2b;vJ|a{r<%o%iqj~$?R7Nf$CPBaat(Rt!q{c&&gq-WQjC}9p5KlQHI&slBTnpq9 z9m|vUT#ZSy`Q+gam6rVNx$adY5?1FNNl6cKHQM9NTtRmOm>N*_Pc)66G0&%}td(>X@!V!MBC#wILsKIARMF`=4rh z%1lrtS0^Bt3HU0317??_rAwz~I$fNT3=`a$&R7r&mE6d%OX1zjG_V4vaA!8iEk~8x!tEcozA0?hz=;_Vg$_RsZO)w35A2SRmx6ZlSQC0_|w8Y>Yt5af{93$&@zmH3E4+tacxs z%&lu{@VDbyTWq=X9|%h}PE{|vL~BT%JjZTge!1$VKc;u_7`vG+?trp^RObpGyXEzm zwIFgw_ZBr-cP)27d(qo5OA0_k6V7rYk?TAb2DH9<`RmalX&*L~<{!%T_gH+53IvNp ze`G$|V*DWaae1lH&Y61XL)JI5wxu3=Qe76R>tIM)F;y=hp%lqYF7~2j@DGfvB8=B! z4WS9>W(+irm?txOB;lH(!ebpT{&Nj$aH{=F#2fIll=Xwaq#zAe6I7D#^%{{QU%R>S zeo{EZxV}>hs#aRUaQi5YcPFNma)2}Ay8v(#;R_qEP91!ZrZ~?(HZ#u=UcMf)&W;BOO_pt zl)|j)h|SsOk9nU4$tV?{pU#crN7v8u?^h|n=7vLg!5g~bPE=gQdx5+$`t8=Fmsdab z3C)|a_kZ{m9WF7k@YWIO8LsgOf}XY%w(sFlI!MA-82SLeQMdAxk!(0?lrLRdF%^zb zbOh@Zs>sgDnPUtQf(`PxI&FGNO5+Rl`i65yA74B;_SH3X0EKj|?Vq+fID-$f@Z@XU z?5GO}m405_ue|DWm?E72t)<96k~M!euSb#b?SiEoPuGdud%ndK`*H@v`mLx%w`+Xj zq&QE{T;0TBCU)Sex+HB6NRR0CCG@B{^V+SsLhSB_HH^8-pJmNb97#;_CR?&tzQRl& zP0r)oB+z#RET;8jdH>kFLw}Y$J+b%aS&8v@8usYIVgccRCB&@La2k-_eLZiw17AUeS$@O%KmwWXSJ(TAi zT$r6$khzj$W%)hEC>PS#TBz2q^%)QP>i`**0Q41q3haPCZvs9-{mC#X`17fxV6SBW z0iP-ZG^8k$a6lBJ{(^}CDwq^<5Re3nOA$<^;zGfV!wn#&{DL62cA+u_Qkdg#7{LSR z+dy9af%;OQZ@~8!tK{;)Kv$d~U04u`d@~466Q~6MyCM7ro&_DU2TiGf42i*0Z-U#h zg7-fJk0}N5BDmK61poOEvb!97&P8GY_GKmJdJhc7oeB{|gm^Q6%k!ynfxf?{{Gcvi zbya^ThyNaCSSfYbhIrUdgD?!$&~{&+3YWkZXy{8s7>GE$59T*I73vNQ55)mbL#XQV zebqF5Zg?ZsaC|mgA}}El+d!Y)sfY*15r;6!2Y^U!`gi9H)W?v>3n1UMX2c{S^5BT< zfmYN**C?E%sK<3txYJSi$f&0z(RbYcQY)I!HJUgnnzSyOd^(yE8U30hhMF&iRx9S; zpnt@FBJ@}OJI52;@%TR?`M-1ge>~^^Kbzz4BmDaa|31RMkMQp!{QC(1KEl6`@b4r1 z`w0L4pa}mS{qOCadwb{qlf9$!FYKM<|Ej%1PyfHj-k~9CMi@~4H|!m4yT98z2Y`Rq z-sy4uPi^nS#Qqz5M_l2*w08)xpvUpQ!v5Lb;lB(~_{-j@nmSJWjcd$ei!9pN{mb47 zeV^Ff_vOy%`MbSitbLN)9;e2YLn36Bu%5hRWXzLgN?~O+m}2xOkKdP1LC$hCwLyGS zb3$5CyT)GW;LhIJS$mh@cKIUVqEFTF^v>Q1T+hJ4%P;7W{yb0ek{RbFPYfA180fa2 zr5~IxLjRaKQ2V6=F@=HMf8E}p3nu^f?47aX=Vt{>|2=zW-R8frce?ogmAxan3VT)f zFYF!Le{Jt*rvAV74v$rJ#iyL2^WFM8dnX|(^_AxBb29CoLaq`FIn+1P;acsMg|Xt= zS1d@QQ0WCb)}PAP7BaT8GYlPsc3o;Kx+JQzE1K$1zVVU=@8FW#A^1@J04r5p0iCV% zp?a0Gy|p!LjakCU#RP)p+v3Ztz-*ftl z?hPq^gX>tSbg+OvIuYb|6X?(yDWHW!O}3sn+62U3eZ|*LY)!{H^n0bFJcU2i_9D>Q z6*Eppg_X#vQOr%N4T93g*W%M+$%0JCw(wV#17n**lM)Fm&td za>TmEucAb?N|e*>Y>bKxNl&Iawdu^&{dU*i`1AF};Mt;lOPQyb&69f7Su0}(!;Hr} zHHz~+%cmrj-o|#BN_;>GB7Q*7Lb~jZMTtPy*e@A*OIvD+ zCh1AnVKz&Ld@2ew1+u|W;6q2nvk+6^UcMfOT&{SQv@O9^WI2qz`t-T3ky@zRc%T<| zf+5Qei$>B=i9}6qaJKpW(M(q}9rv#{EW11}8m5L7YOjEO6d*W76!lP;D(iiR#O&Lz!19KPAwe}N2RPOqx^N28K_8W2QYXq4cf)L8{NMQ#> zer@|GBeFTA%^E2sI7`y?J>K_#hGt&PSEUx zoj(s7k~)OXjjBCn^+eoPPVo8jTc-C%I^Aaknw%TYC<1dGuX5?Vw|gc_R`=^F;6iM? zL$xNSe%Q40DwZe6Os_V6T90L>v{OJH%B9swF!Kvr#$=F2>p@ymIYH!|y)*v1{6+J! z`5@KmCJ_Rxf;zquSe-Q=xvbaVI#@-mUeAkpw~X)#xz~&6uF)%AR^@pmmS?z+w8&q> zO$O&zZqtyXEdu8)-cHA5w>yU|x7>-GXi%zKUZ3qw?uT$nEQrs`ARk;PCEf~`q9Lms z4c9X`*9-@>vc0dmxUZ_AFFu1W37ndY*pC?QOPbF`4(Fr+)4XNy>3HMEAmzsh^rOIG z`a7eow815y6A%oW3h4m{2m`_gG{Xg9;eGIM=~3_y zL&OM}BXcY`D0`H}btpUrX~v`2v-IHOM9L_Mqn zuS25te4}vr%*PN>=*Yfxh%s)Tz8gohH6evkX89&XkC zF4TO=Pqvo%P#n>Wue|O*_$KR`I$!K8$%c`^LE*`KS1U>LXGV650o+-QHo}GXj3_>% z0sI}w-*4)p{EQy0*oC>YQ*#^zeXfgWUg7)%CtnKD?E67j3+rHYI|}`Zn@!x6|EZ~? zQ1zl<#U2LhfYf{BrGgnG3TzFwz+ zZIB;FNA0eX4}#wb^lbA-_x+^%1A%$4#Drv2tj24 zYLrB-F>@UC%K@LIyRvt6?l{q-@4LO*BT558YzQnY`+Yny`2)a7(ok3~R~||K&gYZl zsW`fq8LfS5Mkgs#Rdj$ZEqU6AoD|rbJpQzI1C9~)DGDDpZRey1oJKfP4p9~%g5max zHZzqOV}0~0=UU`GE2I1m@$&dO#6GXko+jUVz&Ww%;{x#|e~gAPNW3e28TuGId*&m9 zR95%!PnW7BnzVc=l@Om8>h+)KU*8F6Br7LUV&!7X=ZO`?j=Ju@G%^3PrHJHHg`dXd zKh*_l1|+Md@x=2>vH+EWE9HzO#p_sVB(rSQ`Sm~N?E3R(MD4}JXz9;>50a31lM zw*fkDh1;-`e&DB3+g`$IiDk5K5~JS8Kx^$jv$L=~Gf`)%G=Op5yNF^HZ9$!t*}=c) z54B$StKt3fiOpU@;S)o#ysX{o8WvW#AT4OkhyIpi-ySV$G&OS%fG$#&A6f%yC@A-Q zSs+W#5;gzO>sf~Ek$t(=j`+jcSsoZGzJy-}^<`OLx0ATmrxbVT%(yv1^S3ad;3eS` ziue_C)MZ30Fx~T6m?I`hVEITL0{G}<>tkp!!$M!zdvtS*vT5~LXD3T)Gu}83dPly3 z)=}5&(D>6cOj?cmWOHD@pOf^0yypVpD&iwtmdPXy6w;7v-j(KZA!=ff#lIX5>WutZ zDZ3?yRWUT+d+Nr+GOv(QIGmUpkv}ZHy`G$`m|)D6yMvpl&U7*UTdcZREp6*+N*fBb zBBc2+pQ@IzIr#_AshDXmLvI#)x=yX8G)c&Ol`^Pbe84tg*<#~eMp=*5KuuKSi**e5 zEB7V6U(gIWD;65$+=Ohc|7`KTlf8TIp;dY#yWD}RHCc!4fb-G0{EFAf)glKzAo*FU zsfGTR+4F}kwL}9ef#N#tL~IImJ4`kU&l+Jnop$Z07s5w;?nx8o0|1DcaB6r%?P}!} z6tZJUo|r+jQOH^2$}?aef;l~1=*Sx`y}wNAKQ*)a%FQ(1>T3oY34HSVWzs>3L7oc9 z_CkEUiM!P?S9Yq1PNK`OhWYCJH}xGmLih28fy1%``rVKE4Z~Yur)Yng`rzN)JLV%Y z8Y+1X>_uGX(bq2en+Z3wM)~AY(keR|HmxEExF@OgDPbyJ=HV^ZuFPewy{&~O@MS?b zO#*T_)Z{pKP{BX-oXehF9$4g@Tq8kSJ@uvkOx0g#TT8^9Xx!_fqDyEm-q=0kj8d|N z?Z(E1&13Ne6{0qXXjoO0>W6sSRn# zlltp1vD@SImbYh>RPpV`3TKKBS;MAbsBL=7@pIR6G4G>IZ&3`N(MbxAPNt=x_cz!a zV}IDtrKHEsy=F9gaPpZRLg^kO+&bdCA&I`3BfjIUENxxXuMm>^wG;#}?^$}^+ghJi zTkmpOKb~Aca&KN0KQe~5R1kM@h#4!6H@c0Nw5GQx)Qc%! z>LU>N8Rjv9?Z;slKxOYK8{_!^9I!kIl0$&lfE)%=Z`UOKgor(W3;||PklmE0niP*Y zao|djr?qCFEzEQ2n?DmqAkkK0d&g(xMkzG%;G4eQ3m;tiO+lI3$idzME~(j68RVL_i`hp^?{9ktjqY8c7reU)28yUmy3M z!~VKRbo75}z5aJ8`fp{|J6^u)yZ!^G?c3drL*gNpHXbP; zmKRAP5Gzyf1`w;W)mX^2F+K(4`uj2vazn$v1G$ND_rE9nkCwt^$Ysox`KEpvtMT@J zX#|&csre%T+u9RGw>^;!*3^TXg8_l zLg2~Xo_dX0fho^|Mdw#2zg0tRVU0<4>-4MjKi)iNL)}#AH%rU6t0#S12WhwS=&$GC z7v$*1T|QGEGW`&>|eGb?` zf8!$sXL|WV5;WlZ#vg}RoG4u~@TT(3G;oTXoab{8>Iie?y2`m3GsjwKXIAEJ<)&@x znQbrzzdfJfK zQ)b5AQkDP6)XL>ZfXQtzg$MU&KRiilIep8OH{Aaoe$Z~DrC!#)jx(#hd{vZUaO!I_Q<%jNDiP&C|lk#V(a zBI^8T2=v%K)9@XfnV^0kfUYa+whCVYi&2V`5}5H)E$>rwrIH>`)lck96E#}5z9=jE zpIsle#EWP~&74#tsLpa_^=Ae`Cr%USSqfwdT9sAzRg>Ox4=DN;4(H^){9&MkkC7`g zUPvuks9s%YC+enZL{|-Xgj1y1B{NZx9A7-iSEN0uJ&~n=Riu@}sI%%ezGhQh^y`|@ zcB*HxI=8ya=M$4^8^`2b)wSr$_&dFm8I`pM=jGpSn2gYO)CGCARNUVZtX#MZ)G zd*|t7ng5xNG5753>igQdPFofmL#EW#!s?odS4>tJt+V@fJZZl{B{qMO=W9r78~vKL zxD$)C4lW5Bm$}g#{rwkCmGhbn=Sx-Qc62uA2%DGFtkDjO=1-n$w#YA+*`{ADx_4?c zug)|1zVMkpriQ$G>~^U1>i06fJEHA1emPiDZsmCjqMZR{!_b|*oR*8|cpp(7W>RdR zypY$yno}O(+_y?n1`q_`n??r7tx>xpx|SYsd7~hd$kbak&s)60s$|<>uJ0W`g{f9C62CW-xu;DHXG-e6jNb| zO^0bgLPOY(&VSS%pXS90)@vLft0IMutccck+i0)1=PYBof{c#I>O4O2+(r%38=c+& zZUoi6Bk=5IM*C15Tv^{2O=n1-G1N)09NK4?Ezom71EtO?Z?9K0 zW-dwsy)SkaQOC7xTrYUgVBRN_p8S>G!lPb*W3OP0_YWC-PI<+!a5&B}*rhpq{u-g7 z{@9jCx8%ouMDHj1!`Oiz{X75M!dpf8VsAL*1ZCEW2BhA*oo`5j;*yQtX_qT8!f zOfDQOFuyk#{x9+=aDMuHbn&Hy+-=)%3qV9TfvyCw0N#8iVurU8V4ub4fDbO5G%g@* zL;%^8e=i5f65AU90kuZ^uW;nAHXtNEGK6trFw{3tV>&`ceUc z(}Pf6I21B)4qOIWd`*9KAZIv~HWI?c!w`Hk>2r$>wj}mhdKSb~0jA>&R;>tDBMyYP z_ypxk>m%5ILb!jxLz3X&T%6#17`Rd@xEdH74Gt|N1{K4C{h>Z}nju^CVIA1^(a~Xy z;IKX^|3*YupRK3m$8Zy)@NWU(Uw($Gw}*dT3zt15``<*-U;de*|3?qry#EhcE&pKg zf2`5mL-{?F-$VHwl;20&_tEx!w0$3K-$&c`(e{0`eIITA1;&4Ev;S9yVD2gUe#`xS z%l+Tma=&o&BeDW48P!%_EQb*(xU5DIu;wlpNLcYLM(X3cu2`^?x~?X9djU4hU0Lgw zvocr#TV_e6Zc7C%tjOsQ4c4peiTMbDy|mfVtKG4i2*g^o`8&bGVTuFZ9n(5ikKGo| z$b^&O%~HXQ_KVUS^f~8)n~SBO+Z)G~L~CKhSm;?S@zXatZ4-X)@jdmzYs^Hv28&=yJT)Cv z$$YqOlJ+ddM(c&nBKET>{%6VWJxDyhT>!xE9+gJ=M2_iuA!n=S*^rI>siXN&tCA5U85}67?PyAiA#yW^0p`t|(ff=p6?^l)+)}>Dxdb!5Y`-AR*=A9tYm&;R|)W2hM zlCm^r%;^jIq%RhoDD^mx|Ib#xV|`_c9By_QbyBe$3Vs)DR~ZYOYz^4*n5U<#jnf=- z4|-|mWj-7?WD3p}Sy^M3!O`6mrn!{&<{wVLAOnUokPZafsiq!r>?zTqs3-yI0)m%d%1+9Wg_0_5~Ng<(kyzwU! zn`4duXHbenbdSQX^Rq%z#~uCbml{1fg9v2Ndh#6;r)g}TDWP|=K>Ou&;X3*ym zvpyyjln?RhmlsKx9=3>!c~!r)>pPw0OFanRGxfs&zEnK|Z>Xof(vY8YqwbRo&B8vp z0SsfgRZ=!lKAwScJM}&Tcs-)Sh?dpX&ccxVMN+2#rEO%BxxwqU)8aNhj+pPv>tysn zU9wjDk!gKu+N60s>Js>n*v4gM&bmgOKz0;&0rPj7T4aw5kG*$F>IQ3eCBV@5B)a=r zmv5A)-_Z%~a>Bg9c*57062qHJXnA4<`b5m-6}@OWB1mcMw0g)_@X5+7M#F6g z-`in;M*ajmdp!!EI!kocBL}n9trK}6T_ zG{J>L>L(2Q9gEzXcD{OF!q6#z0%c!BB{C{!Zm;KS$kb*I@EYdIDd+R4G$)UO8!#Rm zT-;(T2n9@DEp-Xoe#h233N~q&Cs<5}oy>QIZ9-R{5g-R-oA=^OBG;ekt_*Uzoy1>U zuMg@tH=MjY`=KGU^(ECcvCT^;d(mO*%faPPL$i?cRg(*p?)v6I3u2y6__#9rdi_fx zVjz#;H2WZZLxt)$Ujxds7*%$oBfe;=$VoIBF!B1(-29_5Q_JYU!H-jK@0*o8Qskm_ zH6mNzbi3>><<70Rz6!emtawdpkZ+iH?*)0EUU)ww_Q3)8)MI#G@p|#Edh=lVh*A68 zCEfqnUB4ireB|u>>xb`MXOrSi__!-|a>@{6QM|k>byoO_R`{{tP|(1gOga4NVZK~& z-)mm3=LiZugd6@{DKp0Ji-A9ri_I}1mmv7P5`+Jn)_@QB6rX@Bk__b12!BQw&}$bT zYN*Pvx*r1^q>~?DXaEw2Q)m(U^RD^}Y5ISK`N;zH)5^FOnJzkZQoc?x9h`u&Q#1v_1F-vF|ajZ!vKl@Y>`_BP4Jl)*w`)&JleVWdExK z5wrhU(e}UEa_75Gy6^j&_x;WPKmE;rvDor=Mt4ccbG8fOwE`?hND8~GAgilu*C0e_ zt{c%RdVF6J?e`HIKdAOyT|#LzF5wd;3y7^1tpVsxWUYex@-OeiOWWF2EB6EN=ED4b zCpr~itMi2A`mmxXy>Ssn-_q#RPIMu7+M+Mw=`{Yr*>iE2tVPIap1|Zc5}x;$#9idA zdv(~=;x%z+x9p66eMf(bI%*lbz1@%1zL|3r`I+^}8%-_~{W|aW?QogTPrug#6MnxR z9!L5T#w}ug&q+mpp6Aipy@XXl(|Tk1OO+xn^LMgy>T|QG0M>xTN9^%p_@sx-ufmqE zzvj15F!uYS+RzOuL=#gfD+v501Q&6M)Wlyd3^DV`tzft^bi6}-20f^H)5oCM&d3-Y zqO4<(OP$~GsPJuw^hX0yEbyll9Cm;epU*!r`pi*;%U=>V?2ggPBPLz5Q&$jOe~qq# zf7X= zFBo)=se~k&tvxLY9`w4rlemT8uQsQfmqo}<8GE;(8_vHfej#0bPByLCB{G7-=3yl$>{Q?F6?9J|chQQ<3|0C~GuS9#DY z3xkwO%_e;HpP=epWp07#5_HGXuvhp-X`I@_GBuTmD;XI@vgsj?yejqYC>AqCH_@v4 znvx1jd<$Fm*=fI5IW_AR<{;Ubxz3u}=9>cL53)L=)U{=hCJVvXtM&>82K1@^Ql}T0 zKKpJL4NG`sE`J*4kChWkF5VqDb@eWs2Wm9U2(d|`KUmzYzi8eoVRKr)(z@IxYC-cV z^FlW0+)nWR#@R3RdLg>>ixBwdk;I`N8LkfI2S6)Yx{ckidBzh%L^J6*OVH-(GQpAb;Y@^|u z+e8?vL^)WEnVgQ7k57G~JeC0W`w?kfrPRQ2OiAN+gwu4d@*Shc`^SE#GSuqpCb3Iw z5uAP>i|lunh)B(n+iagn>Nb4nkecDKL7j($nd6J5V5Y5c6x9x`32{MQGyw&lXb%Pi zR$*LTPm1u)jAV3jC2}{JN>3(@*bLYfMpl|o+t-(}M-UVQGs~xUN=6l&h4>lEuWB!1 zPmaIsEp@dt(4WPg;w-W81?%p9ryduA<+9)twC@s-xeE^~6#8SSTH@+|5uUCw@x2<| z!|}eF5bk%>2-Mw2%OIQC!avuXnzy=cZV*~Vef@EuV(l!@Py|OY+8gYpdto9LcDpYm zt^`tLiuebM2e^Lfm#8aZlZ+7&RVSIqA027wbQ5FOb)u;HZB?#F#-H*=w9yEg$vbx{cKepM_|oZG2L6wT)UZDBX-$+WSyH*Smk@>8!aEP3gX{ z?7nLHh4>(F!hH#uZV-54vhR0MI{OXV`TX_5hEk2~a+jyeZ>ELg$GHN1dkO}9iTp=N ziPv#>Eg4<6g2w?=LhG^zuA?c=$FulRJCp7P!$nD_h@>W``3A%&cY6I!-Q9@~n(Jki zNb}BG#iQ63^)*fr;a+dyuW4+a=O0@x53+>M2T}GndjxYx1^47S$V6YNZ_i&Q3imgx z_eJ3uX6uToSDp!8L?t4oC$(BPwhp(+yOepR~OLT7&{9C$OP#39PB5;U}?JIX9)}BHKZ|y zgXW_Hc>sap4CJ3+@2!c^g#Nm>l<%tr4GeV&a?=FgT}uj{3J3>sJcQEXXa+F@gNa;x zNTh;a!F;d8KnBkP(EuSJDIPO8N21i*46wHgg1rPNR|E^D!11O+1o<(9EIkWmG6;F% z5-Q2S`8(hHj_k{b1L7G%yWk;5cPu_hIZqUROvpVZMK$9bULPAi0~4&D3eRr~Uy>5O zGf+@U5gP!{MMy+fZN#orM9Z`P*%G(i{~|{J`@N;<*#C$seiyU8k5UV&Y!y){*#{zVA$JlCrv&6==}w z@2n=$GT*j2Ae~`v*@a9~jb@%F4H&I+#0I4T8Atgi8sD;oCdr!`RHhWA(oq&YQqc0M zOwE5uPaNw%pnG>sY-^5=GZb@BMeIe|Hj12^aN_fVUC1)RsFIDq%@c)ogG zp?V1=W_j{ho|syJKA+FuRPnQ7p!}UG-ZN2CUtPTSV&!Hnxv9GGtkk8y=&BzECJ zfL^iA7lh1IE2&eNEuMwPQ+Prf|9N@TTXO@F6KCd=9Ew%_A)ttQ~tbnSmnhG#!&Y;er0eGzB zjzyaAQ^LBT`C@(fUY#-i#5f#SsncDazVDXUFo`U6>6+F3<;TXiCV$}4Rk&h?V0Bm-ewYWp)m@ z`ks_QUB|j?LG&JmFT@ppi{T&p+o!Hk@giXibQLi(12 z97b8JzjsIS87v&5l3XQ?8J+9;fO?fSBRUN{?#^9y#`tOem7Al})14~KCs9}wKv5H| zY-^{=q~+aI;fo{(?@rqvk95C(3IYsz(XD$v|GlN)&X4{Wr#fF!ep@*uc`QTWjKQ8R zQ`P%&>{o`CY9m(kbZ|PNkv!yPvQ4(P0B4 zzUlK8#v%eU-;&RN70K_K&xV^{W%1Oy?(IGDBNJJntS#?B0iuQ07$^hMJgg|9Y>5G^8Y z-Gq-a2A{6CD)9|+E7)Zp(8ICy`Fkz*9j-+wj5xX=wicx}>oe@t?AWi`MN7|CY=oBd zS_a0So!ivVZ0;fy8oV9!oGJ`GcWg9j=ZY%NW2@&6tOu{47kYEQh)i@1sUnuJMRce9 zgr>Awu9jc0rFPh-97ZZSt<5*P{-)|W9`C$%j8j6}1>KI1dDnH}5x5_|(7!%10rdHcAoI<= zw^?evPLDk4PQ222ypEmiP803Kg1lxm9M-TM_Km5wHZ2I?c9*=~*VwOL<)cwB_#D~t zE*|+30ev3y=7ed7Mwi~B>agX0mzyF^~r#vqkuyq5J|pI3wxlEW}vZ4 zAP^F01`V{B3baB5+7JiX0fHPfgPdG~Tp&Si&>)YgATLCa4>8ye01nUu2fBb$zz}c< z6dX1MjzEB;h=XGQ!Eu_w2`<49NN_SVICUyG9TA*K9P$GY@>4S;*Ciw$5>f~aDW3YD zUAPSS4^r*FtUmsu5BU$ay{FoHs=cS$`vT7uaZpN2nkxOxVwbnQrt^% zlHh^h8l-5DAPJjS&g{&dIcMg~?!Gg#+i&;Vy&s?RyTAYQ`0HcIZinT+WB)k#m2?0{ zgUFZWT}PTT!ZU9v+>*WbbucVxB#Twz`^P6Al`CGjSWGMGp+ntva}rOMi?QchNtsX=L}0RO1ELAq~z>kW5| zOHzySJSdcz=F-moI^rxuooD(!U$sS4qeNYh$5FyUKk-3omHLkom8L?h$#spN#Qh?0 zE|<~0km2eX71FD0lxh1kTi>Xa6^q@zAk;U3^!$5`h#Y1p>F`IIZTju)gpmuGhgD@^ z#9|xsWDG?CN~-w>m92Z<Lmca?RI#XA3MYRhBE#qUEB+^wi?6Y=7X})p0c2q zHuHCqYk!6l*iCLU7~NLE{(9l&5NvF-K$%?HZf3h{@|Glw2-kK!seXCtz@x#kanSV& zxf2@g{pB(DAgP`v9O^;3g?v)id(VyUVP+$m)tJ6RmB^RC`JtE72iV0+Q%MXcEi$8r z*JkL3J10!0knz@N^?_n=iS*)FvC0Y5mxEQ!Cxyn6@I<8DR%Oy|D77G`h)9IGfM4uA zOTI<)>sTShyv$0=1sBivv#}_+Kfl#Vj3^nLaXFXPWnJ}c(y!8LrwpBt9QAhXA*#In z;%8xownF1zo|C6D*EJ!{M~H3k>FF$?v!+!omE+3hD$sXQI7Czea+~cLEE+7+fzSwBym6#xcXbu{&+kW>6+rDr=fVG0fTOK4K5T{ zn5)pnh$tS_3!iOW?`uFUA&;7)n>M9*Ynv9Dj{+X1&6=jqPX@x=mV!W=k+Y}?di&!# zDM=iDqH#vd0FQbyvl>mSxE$epTn-~jW>HKmyfjPcifC$aXe?cLefeeWa5JD9ExNTy zS2v;Pptm^WZQyn4@jKeF9BSM0pyc6!rq58}Dkf~wCd8Vx$EYax_!O95uF z9{5=?FwR}-c-sJcqSs7Z*q$LQAAyL0{5~g2=%zz7_(T|lk%3g9eb_X72FO9|Pe7Ei zpsTBn*YS*M?qG7|XLmS!&&>^f!yPZL^7&zbZAYFU72oVG&op!3QvlOV3%b&lNEjj~>&ar_ z#Ye~V4F6Ih$UzbBuFL`1(SWG}Vd_DCQMCSFx?%F&{-$_8yTE|6LC+JmKo0YOBzKp? z*MXiEfti7Uxbi@0yrW$L(2y>WlOu?zcGW>+l~ED<2$B$FBOH`Z5y43QG@);TT;i^J6a#@#`LM!-z*0b9m1bZ$onK78bIoe- z#UuZgJO5p3M7aKa1p528KN0PuUv2N2YHn(J`Zg!wwDpXT_#+^@%@*w6Vk3B3^9AJM*2+!DAxLI z)`yZB&mx7*>lFCey2w`L;i8loDX#T6QHmhAIQ9d|6BC`bOpI9+nf{J++v88&X@tL` z_^RZB1K<6;3Kr3Nf&GWu7~eahV$2 zgv)At{9K+OklX!%L-cL^XK1wm53ioN;_3IHr0|gp#JhZX_kw|S{62irI75CS_;c#v ze!kG<0s&*uk-WW;eC05!&!r+vmw*R_hLnFV8L0xjX*AHTbXO)%JScVuv(_41e}BxZ zoG=$jBFCO%e<8=NVY&eFU+A9?XvkeCbM(*;%G(aHW#3}0jm|~W8=TZ6BM~+R@g3vm zuIldL%MoTW++#f~cgns}+vr?;hZ*x6{h^{uv@y(tp|@+RtIAl7O{J2H2DY%(If&v1 zpX4Tb^@Jo_9~C>y*G^6}2gb;;uFDrkL)NvANEy4tt=vlmrB#*xCfCBXT5e{~tfry( zbj#&Cm;QRfQPc8!Ui?U(>Y=Ag;|_w?J+~LJGlOnn??~>1bZ~&su+BH3R%q9Nh_6oHPVUYX0mDe(oyMKYv$lzn!zBAV{ld z`c~y9`4u(AaJ~Ld4AFEVVlxHywD*@5@6&r$*`gvtDwpP26D1TF6=STAmJZ}a02-2d zv4hdeJkfT2*tNZgLJBinP-3IdRyHwWFol6PqNIOW1m`v!N`0Ag4hck7UZ82kN}e90 zAh-6@59BSDLvhK_o5Q|Wi_Kq)oeVo?xp6v z_o*Mw58sEseP*Sqk9nCm=2Bpez$$S=MvH~a7^uyxw1!1Tt2veh}n)mI6Y~BI)1-{_|i@(>`B1lb6jod>n(Ht^W>!if#WaAc6_li$;%)&4@W~r zXD?&Q**oZ?E=PT9pY0SZE~f5_1@UEaeDdmz0TIVg5uGvbd>$|F+ zU&@FtiiMLlJ~NSKmF!&mz7Y(~Q2giyyWOQC0+|te|Kw3xN?o#8U6SoUJ+m}Ji}S;s zL~8N*K$U0hau0VS)xOq@` zeaed1`LSadc*399?34x90|+214(E}CWUtwc&$pzKKOi>N+#Ao7qt> zDpR}SN884AL_s&7m`ESH3ZLWvw^a%-8BqTMfc}yN+m%}Ls{kMAYRG8^7_|cCr0~(9 za3#``(Exof#Iv@cT^N9Fj0uo)TIgu3J8T!Cf7h1)hcb6VpN&JJ$YJU%uzMU%wq~$v zb5Lj|OyMVtQ`WbW-0yV|EOOqCBf;SL9P})VRQjc@-4i^{ewB&2}1rhwE=4~K^d|Bm!YJ9ACMUooV*(3Zt>Lv z;E>Mo^;y?f5gC%?4KV`RN7MO)tOnNPn_G1UU+)fSi{`&@;cIbsV76=^{A#fJYRK5$ z!~d#PeWL%qj9nKaKM|vN9HUGh`&lGbRV$Y6KW0|{6Vd+L!ym5whim`g+JCtAe=^tp z=eEYjPc-2%f6LsxdoLXRnz?Zo`*cq#VjJ!&@%nt|H@rR^-T63=FD$Y43m1QU|330r z`dXibn|ad6uUx?@7{X@VDLKqJPgv_3(t)KCa77j_ita(W)kmi;H{QB9OUm5Uq%uF^ z<6Ma&EhTSt^R%;@9O4A}I_JAGB(BZ=`bLuY($o8yH~eqCV(LW&HOr*mFV26T%s&`< z=$zfZmM=4VZRnekOU^#e+Ss@gB(8ox_eI!udGn9MN!3b0N9~qGmj^H7#`fW_DA(of zNr@R>1{G%w*YWEe$;0gXu8V#7v6+I}>WVK=@5pps&K`qIS0!{yd(R?H}|4~Z8 zyGg#W>I+pxvN7xG-%m#8{6~v{{+zn-ZnY|KS;<(vwLV3I245O=nZKH`#(riR|Z*0X1BH7!Gz zUjPrd4S&qfE!;_x%V=giim*v3SUf>yvfT5k6yPY3d95ij|tyt0^;ML zQ&L2uDS&?hAzqD34L&m+DAGc`?W_zXFE$oYQbxG4{fN0tY5bld3FTbkl=UdpR9ZM` zNKnXS=C+=hyar}S>F`IMaQB+9mo|BZ;@)?eM;SwBi9_FS3Fc`v{rr4{AIVn~EU}zs z(olLZRf>yo&(D9xtP`-?kJTHU$x zr(tch;nsc{it{%kYO^092L@!%79e?e%WL7g;mKNyw2#8Nh%(`(-^AboPnC|N6p){S z3eT2B%<9ZVZsC&9nk(G7bqMQl+=S@Lj33gy?&y)_i*xO1)D^b|>qmA#sz)fCkozFP z+r^vx(VE=$K?6mxeZIRy=h@250rF=qc5^zxxdVWqu2e|-%T+)PG0Ya`OK(5z9ZjM7p6OFg& zeD4B$?`!&!LN;B3?}J)jhH+m;ye~5ylm!5NstIKSLOBwkT(wZ1ap-eA^aUM^4*(O; zgb4v*fCQLmElhkICW(i=qVszL@O!7}Ck^zIP4N3z>nA_%r-=7crt|*{@K@FJR|ooQ zCirXD`s*M_m=>m)Z{~=og;CJBAvU{{Y)R!1n)zR_H&#_7AZA&jz;R$4H=h z>xIMqzX97r=QIih3vmikD>TtLb6dQ3kOzYd4j0H`Qm~YeI~jt4U9#W5wUqbrM8$&l z;SvgK3W0gU+08Ebw5e8V))>2-*RG^eiuE@r(V^Ucs_gfmjSpzgfu_TQECtF3S`<2i zEl6DX#ng>!ok{3Eq)Wv%gRKdb4mu^kt?IRet(AQ;3W1!g)FRm0xlax)-#WU|WxL_T zJ2&;st)~8>>H}l@hcm0h!$ys6yEhG|(>uhY=2I1W+gY)>J#bZ}yTX>slc{;MKCt>> z$#$TI_`-r2u;KBHtuMFu;=NgX2T?4|A+%Iyk@#GsM?}%W$ft8=w6ms5L2(;=QD=EL z%_CE9i#|a{X9d6{fD*%PXFZe{=&Q=Mdh5KOCoHjs<_sH#6YcX)0|iu3C)LIJkG@+I zHriI|9c3;aR-m+h%Ta_)pox}0hG{lzBD`{@iMkbige}>l4aQr|G^t6Y zRTw^ZUkYF6I^$%Mj+uK|Q@h~4g*SRj#70GkBaXxNk}Jh0LTNph4Zz2y7YR5IMp1Kb zyOVxnFz!-KT?LG|F#reeOYjoPm8AAM<<544(PzD0yeG3dlK4_4;u46;X)eV3I0G(` zrq)6~2GcoOQE#qFC$@lA(#4lJrG6Y#raOOeHo(LPORh!EVs|fk@2*fuRZ0;-*ghuG zKMV;;QF`ZZJ9!a_S2tr}L$j1rK&XZU_0+ zz`=Djz65ul%bH%h=8#i%U;JxdmLM=U9)jtDvH_sOfnKSRK9pB|9sqqGYkHs8fJH4} z03bw4)<^K@;s5pU2n@3SN2!KZ9`*lB z-+knH*Yod~bII2Jub6We_*cvs`IL3-uWG^F(0Oi>S|HM`{};?DV9b|JQVW_tdyEvV z+_u$fvRU9ua!Sb)Hok_e;P|^*;DB^3;kW)5YQa-EvFSu4XfHbTa|1~&&_;QOcch=a z%NLvfFc5HkB*W;_s#r7*1->$pN!I}vtg}q{nx&GpZek%VbA7N3GLqH3%ke5!Xecgj z#QFZg>IW&$!8oJ++~N?+_vZDVGbaSH0hiMi&wErNi7^?k1!tA-)sOg(?dM-q;5tnb z9gOMS|E}BwSB>Qmyu>p1Kh=VRzg(g{iu^86n)WxfV0gWw_ZrUCN-$jas8{2Mq%w$D zSGc*SokHqbD7%_r&AjQU5L-uG{>{J8h+HRC`N3*=B!WkaJ>*xbkehMBXpu!r?*u1b zTsGg0O$$LCZ9aANvQM9hn^sRIwFNzCs=`@$9L*Xqn4h~<>8S}e9$uQWn3qm%l;Iyk zxT-DzNcwJAi3|MUba6#w!Q+nSAN{3CM`;@MW1HD-mR6&wLPrg&n|8qRpHq8x4;t6P zcwNw5v4@Q2bvv=8-fPy>r*8WNABRgJ$2!#KG!!l5G&^A7-oDcd<83PnWzbNohNEz<%&;osBOm6m_D_mm-JL-p^;Eql+ZDTazo^{*r7M1=F6+K9v( zFYe=`dL*VJg87%IwP+mQ(50LvRn2D{`@JhJ*EchZ|p?)v?r#JXgu z=wPaJRi+?e{e6ums;c@RLxMoBhSeUZ3CES<7&fj&b)wtzoXh-Ef6H!bkHzGn5{ z7FKFNb|5Fqb3vO{I;WTf$*OV{(x-bp9GugCRV`d=`x$;Z6@KODFGC|!B(e=sAb@z)?b1256BEs}0>|AXAOdr_Bq`wK-PM#*D0o$8w9fOQ@7reKC z9mG2`=K5ZpGd-QcJ;yeC$PDjsE;yhsld$GAJ30T5R|Fvyy-li=Lv=POT7nf_vM31E znVj`QIFQTSSF<(cbhlxpBrI9hq-8xd22iT9B=YLIup3`eT40bO7dd;jCh&CY`UkI)KrJN8#b5-0)bR~ z0`kod(?L|;o3o6l3#F2aDpJI)_?F{|z?L0;CGWN5bi!01_;m67>=@ll#0rBB*?qcb zLF7Q69vPp$E}wB>2tfmKiiJ?hdWFz}!DbMAAUG!wLQCg+ALz*(?|T6Vxs>2_%v;wBBfwtWFM`2E2ki|bFsRsQ!Vd_8i zCXlk~p9?d^ruu`8@jq)Gf7U$y*EJ7P1+lvajJ*Un=U?dx@CcD90WMlgFs3af@RJ&e z<9y0rW~3e%7kyoGR}1U_$%Azb2U9;6-+p?JqkxKH8<+0ZQyx9fRE^`83U#NZ|!n>q@^LYRD zgMiyGV&CUXukoXli*&m|vhrDXrpn~|cfgCF@a z%$322c~Z7pnk_PdWj~vWJh7WabT7(Lz=Y|}vCMn*p|1%pPoMg7e4xT$!+WpgatP9Y zP*fa>PW_R?MIrL>;mi);YBy$0wwn|_!{AF5F*Mh z+AfK=U1AS7KAUQ*em9FPsQFdk@N1p9cuU3A zOu`yFR4~?6URCVn#jU%+hOTQaE^$+MsE-q^ZrU5QHY614U*sNdh6<7gDHIvq%Sh=E ztu7;cDKw^?9PeSHskkXxWO_$u0%7DP6*bLc9Q_0{2p*HnJm9f>?}a(d8LLS3C)!$L zahRUYvFgg)2s5>il%W;%8d>UadyT%y*$Q}d1Z#;+nAg6Yi2_7l~(uKK06 z=i(9Uf}7B;hFS9Mch?G8cip-gF|X|+6ZmN57w+vygXQ1YP~z>&Q6Xwnw@3lkVoD>r(8kI6|ai+fE};n4zT+QN?~H29S01u zRsch%j33i#^vn#tH22Uo=HR9O^+9^?Tk+H*&g8Kk)UuOXqs<~)2))>KNoOKtsA#3z ztQK*>h(Bfb305Tg5aEX83BuWAh~g$Bz(i-~BOVK~%k=~Nb|DvN5UbMMhUDMEf8?+$ ztbJ6%3??95vY#Q=6jii`LrZeaUo}}MCD#w~@hA=c%hwMSAvxE7jITB=1Sja4cN z7KuEu)~&>hWgH%q8X!In>}!vwU8&BCw6)TsJ>~B*tImy0wY1Dm8V9i{{3zbEva(N_ zjCFIXmZ`LLKw~Cng=%s-QiW}2wWl|vg|p`$*(+~*@-GY3G-4IDohMHxvcc{xM|$gE zUdXhgn|m3h;*J^>!{jDgP3zjU1B{7b;aWWYCsVV1$P;hGbpxSx;KXanBmj#$lETaPjD8)-WRURe5=1nDj!}IqW~7!m)K=2>aN;J zdkng6*~VEXVH3-1$7<}>@N5YJx>R1{O*1J&L4@Bl>|)OS;fK|QI-5EV!zQsv+uDs9 zJ{Oc&#iryd)GA^7$BNfWv5WYh>DoJ!%c1kMD9c}^%3GlkjX95IB?o1Rdp9!9fVtt8 zh1rw1gicX2Z#!GK@S}Cl>f=t>jAKrq{#v71ee;JcPni%RUrv1Wnz<4#v`})nNJ@0n zmdeY!PjZE{n3rvDpE$+ub=190=<$&{nDc2q?BfNaB8ca>C7ttw=Tu?1NJ_$%oX={C zyGupgw*9jDZe%8vwnFheqZ>7;B+xZcyP>uc!I2OZiX%P1i$On9x-)Am8`hI7IL&3~lbK zgm+v$dia0lPdqT_>pvu-{@X*<+5Z}6g<3kg_V@SyEv%lOv!te`lCmp_w*G&ijo#2i zHr7GN2eReT6`M|6u;bCzv&cstYg=>eMDDJcsrqBwNRKcrsu={?-dc3lKru8CaQpFn zv*`?y=jZLqM^m6n`teMVt5>iF(6eirbFhJH-OP|1igf9)+cX@R{-wlW`dvF!56-+RM8o`znBS{3KdW{&kn~dUo~+QKeS*5y0XQ zKLt~;$+X6(s#`9{YHHIjMaf%fEJfdu4%Uq`iSt;F%XVGMjW#^tSaCG#)M87@`Yyr< zvaJu!iE%poZtA0pv7CxGB+90w2Pu9a74k94tVRdiis#4*fsUzawWc?0FpOR;81!heuYpWu_({i?97}fJkeLViIvp82w&M?VX;#^*UYhUhU&$kQk?&uQIIq@TCLUh^1< zQj!))Thq6*S&6bOVGN12_pHqiWj|hDhZ`iFd@FL+H{J+qzGd<|`>n@%arH)!m`Bd` zjMcUSmvMHzA{bncv) zqwP8-0!q_Aclsi~?bfXbU&fnX9C`8{-9=J9W08OCC?CW?qe$t;MRFj+_}e?$UIZ`} z&0lw{uCAO@_9u!mDBkvOZ)4JS2x@!1;ALm=>&e~@;3JRGy(js>BeMV%N8wdnPxIS6SX|bwv*1vIdq$S!GKiqwc6ay-y#^BBxkkn%HRME}r;8F)k>E zDaM3z0`OGzYgcT^Jyv(aYmD0ALoxSamKhv-9_t{Z;!lT7=n3x9@`nRF?Jg|bHMRZE zOIQ=BdDu82v}i0oDkotsq^cJsc9?AqB)8vT6J85M*yi3zTvRm_NzO$S<*20Q{m9~) z6=`)Ph9sE~Guba})|EM{tE69A!glBblpqgOQ?3wL-rN)I@aG!|x&`96^@Qsa_2(a1 zER7t}68VE+R%O|YRm`$)x!NM5Mts>MzF$x&7@}CO$bD(TDNn&MoVZevAw>A1;9Ss> zy0;JIC9KK7xKtz8hsb0V3O-Y2q~?lN9hpE`gcyeD&^qYOr-TCF~O0>+}f)oQEO&! z`mIL&Q0q)lw#8I!8${@1CYx1j-DZ6Oy%{>w#Z}w7uU7=RcQ!{RUE9(bZ12zMGQY1_ z+x&1#Iq*@a;q5?x1*>7#o9IyjW6oQ|Df5GJdZf7;E`v(X;w_GT z;1kV{WO}_-PhXM2D9M>r?k3Ca%Y_0uTl%Tb!dC0PvW;vk3S>$=YmuMy7|q^tIhHIY zQFiUo7&F0dZ(&v&0-oL#Zi-KpB(QKo(#SU?U-{8lwK0X4#EQ;gmi@H3i9y6z$)R(J zF{L$08%1|CCsj63+S-CwsT zSkXXG*r8ZHO}jv=&_;WUAA%B_&-_yR3*o#29`c&IhXT5ANh%-4NG~!ok#!N5al7Bl zy_ZfqYkTO!_d>Y6m+#t({CYiXEis>jskA$&6I9rGUMhxd$n&Ue5!$l#nw*+5t6u&Z zj?3N101h`vjM@sHRi!`2|B_(`tt~p$(QhBTd^@w3 zpyZZRxoK)(4qo?jZ~RU(>xz1(KVlo_jkVQ3coh#iFocsj${0PHE5X0jXT`?sTTaJe z`ny?7t+@)tUX`bkcsC7+vO5u8Xj-Pjs%_BzAkus7V#{$Pn6M|Y!FxKW@$jHCy&1Et wf4p_$95-7E#+RlaO`We0b|PBNuuA7AljlS{s)cxjI{$C0jRwI;OjGQC0Iw*o#{d8T literal 0 HcmV?d00001 diff --git a/src/Gallery/gifs/teleportgun.gif b/src/Gallery/gifs/teleportgun.gif new file mode 100644 index 0000000000000000000000000000000000000000..fb8f573850506c7929155c67142d61fa763d71c1 GIT binary patch literal 308754 zcmeF)Wmg>U;_qn)5Fl6*ToWKb@Ze4acM@D065QQ2xHs+&f) z0^6vq@kUAs@3o#5y1&>^&XBN$L~5PxekoRn=j34`WKv64Nt7J0P&-h|RO@pf#B!-v zs55hqQ}awZ(rC8xu1bU_*=V=f`;E@%B%c7f+=Gq@my&<#_xXhpse7f^8x%xP^CjJ1 z?|mI|<3gE@OySxd$q@=cuzP=6+0FkjOOCMX{?Z?UmZ4=8SgZ8kh@y0ba|(n zi0Hc7RS(xQoq+B+?WYGLP?FgwZk-NhvMr;5A_C_pqpb+rE}!-r%d_>VeEn>Ix98PL zUmu_TUB|=q&dF3)RF{u0;_mV)`#W+Hx}FaT+1qR%^jnSB&g66$YXQrj`Kbc1WHrA9 zAUR0qggm1$%k?DF)1(Qb9YtRcWVT897ETgApBMHntHj_l`_tFmK;f%hLm&z&<7Ujq zmtWt+O5=WggDkMUyAdz)By}@Jju$+Wph{+5sHp71NS7o_g=vx^57{+JR`LlmPBhUI zpijs32{B3I1j-a;+PS!GX9$-G7-zjw4=PSFO&m5v4yA|W$GoMY+l&i%`Q12QhyKlG zZWzttP86;PlSy2Hj z;qC2wW!mv@Nevn@7JWg_Ac?7X@^OlJ?UP->m^x|g2(qTSx?<+CGF-4hxmFy=ssbev zzFj5mpI#mTehIE<`H2YHY#*A$$ZLCIq;t}EmgmV1+7~51iMc1jwrfS~x6O5LZ^*+HCkTTtf_eqY>;oDQ$+LHa7gFjNDPXVw;w zyRQZ?x0P{?vPvj^j1r=**e8HF|izO)(B zBCQ#?^LA4=-@s;IYps9rS(Gm_0c-DCA`^X2txy$(ka2S=>F8jTk*a(O^4O1I;Fhm zaD=WXtNLp5rB3(3?rLY{xL!UL*Y%OBF#8Qr+Ha@pa#GQw+wOAx;al`BMzkYcXQAx% z9JLRv98tbY5%B*0jV|+ATPFOa6f;Hjk4T(&eq;eZOk)yivS+M(-avC~rLQ^gaDN8T zZ{}2LzwLtL$_Fug%SE!I>nLDlaYno|io$g#5vL%M4#r)gZbWhw!vWR+xcjMo$7qWG zzMNX+o6~P zw|&dP_xOZj%3n>a;GsB`Wrmn2Kv=oSOX}ep*Aq}9z2#HlBy#ZOlPSOg=ZgwIb27M# zG()*79T9ojAdc!yPn{e(p8WR0U&_3MhJAk`%s?fYK!Oo0Etntq@-^^P!4Hz(=#!zL zPPtbTG_7wu7@Ug|vYigM#r(Lc^DGh~W8kj|VwncwmoA(Ic~WH`_NL;WI7fe`%lbT` zHXguhA0+2oVxP4*tuK07M!3aDf4)8Z1z}X4U#9u2l0;ns=$vnSpWhq^kti>_j28jy zP%D^`BvUC{8OTqLV2i1Dfb3(>XL_t)3WE~!?Ms=$EK5%624w*y)Po)Oe$7}eTCjvk-&8-T@Hgx0* z@@bcKXgAhe0hXLFopS2vL7CF7Ylu%}4vq@*RaS75=$Y6X%Hu1hB{NZ5lSb}ji>UndqI=f74fUf>C04+nm(?mQQ zmdR-SzC|hZ=~eM9p?>gZ%ZZ)f>r94wJHWa2XS{_i2J@*a!C*r(KFTR zNEnN!z|hyGIfQEI+pX6d!y|0zhu>PsRe5e3{qCIA%}+B18Jib?*6HUCfOO5bd}m`1 z3tYLM4^4L$wMHww?K8jSn~fITG{#HN=C65eoa2Jp1tcf!_U<8M*>Ter5%$G+R&uzj z3$0mfH9M*z`yYMzdKA^lq`KW>HEae0C$BfAYxN;8qD@Kx_% z=36-M2LC+0lmK0^52=cajn)k*aMk1Cmn+G$Fi4`;EWOZeKkaWfOy5q8 zg!99hxFUf<<~!S?9s+YYB^m`w=ud8qwCNO4t*lJooZUCFA{{(ltty*?Nl z`_!&5hjq?(2k6}ey0p%(S0&J#cXH-5pJ?iB>) zCUbU+8!kW|UnxEta6!baHNf3JjSvowh#i({8&-W~6v5CO zURNKfw-p&?_Pti~{bWk$^!)ekYac^mvntI7o`|__Z(C%=yPW?ei&3 zs+5T8Ib&XvwyG(=bODKUPzPN=lXPQYbU89JJlb)j|bHybwHznx_02j@Y zoWLK{_q?8o2d{pL)H{!)`IYE!VaGjWClq45qA5tb<7}c>Kc*t$p!k4J|K?c-)rJUC-mV+s^(Ho2C^84S}apxu5@X(N2x|)X;E5!4kU6q zH%2PH%sr^g=UIS^V@~QoIiF@gvv!6qU%3oJI^`Y_NVWiZq1ZVG9CjQvXAcB$uy&~Fq77B0^{o{2vWv;I_`fR|=MB3XW><>k}bV59XF%Fw6@PeyS` zV=M8NmCLly7S#~4GEHq%x6BVrX|gI0Gb(R1A&)TNO)s^e_#l*BKq}@Ync}V zq}9X^ZT66BW*JJY_|+VdCgv&B7%uQ3{LVPk6R0Q@-MP>rRjvq7X_apdh6^<8-}=3e zX#FM>L&^^dE_c!`=gz>&$P5DMrGwJ3+WfKNn(3O<7itTHS^~CZa}MMT!4@r+b#nsk zgYY($;kE$cb~5*N=z%4Wxy3KJz3VQ^AF&rAB2#TP%rG=qF9?0T(w12))h2ThWH#AR zc-P_f)^FeQIk>1}n=F@rv{QPaVe`N`_(h{kak<4_*>Z}(v3t|VQ1WlAri1=2*S)S= zxo%GPcgXFaOlb=Y*!SFdvs&hEzT0klric-qvWN776jIY@q1H0NUTSPIO8JyNx2mwV zHtDHuMw4D}N^h2+N!~(l>0R$n(iXcm<3nfvVb%N%sgeZ?C#Y7#!G41@3uwVDB4)5R z!LzGTwzn87y$9US3rpOU?tksxuR&2En;}wm6=(Ko5a7@@A(y=lCpS+IFu|s?y?2P$|UX$hj3d@OZ??+W1PQtF!XdS#uEj)u$M+xg?vJAqYg(56T@qFbq@(|j$&>FQK z>uF6*ZST!rL!_{7_HW6ma!`2;3%j&L@ph=+jO~$JQZEH6gQ-1*wX}q6x5U$aq`+e|Zcp>weR|&Qi1z{cx>w1*?(6Le7Wcl==M|1@x~7U- zqpH{xr;%g#Dq}cKW4UP(k)ZU@@gr6v?pUDuRKJ>Tfg6k~@umD9_*yMPWRWH1W z@NuLJ7stbh21zRizzYZn<#I(6V;Tgz_~roWSE1*%1Kr2e8C}Sv(V43BvM|4|^;(+3 zwV!HEoARiD+zT?iW6^s*!k6%?L)^P2ws?vN8U&C|h!F049^9eSMosffr;Ip}7YqC* zZKl6J&mnYHk9D@0Y!-iUhM_%&F0H|?L*Am2U4MDDI(befQ%Rq!60ir82X)(;+Zm^g zAYaTWS{2S>Ms(@U2Pznj))tV=K?kK4VmkVO9ZfcJ;f8YgAtTVm49OJM1zVytWmsR5 zU~`1r*lNaT1@TyU<`_rvqRU+|MI;>a?_!J=f%<{1Z&|;=q(g8C*_7sQaa+=&EDfN=3l^8&H`I2*m z764v|a`EZO`iRpp25%qs6d1gp-h0}0qcAIWw5ry!+H3hE$Q29^uhlI1ah@8W4rs@) ziNnVY!abglUH*{=)A6^OxVf2S_sC9QnX^@Jc>+#zjOr;*flLm}WuoU|tAiLi6I113 z@TfTn(sd5KxiHvlFz?3Kyb!o>{-+KZHb7OPz zVDngJB#%|W;B93Xx6z zQA8-y52}?^Dd4E5Y=4RQ4o^jUw){%(pM%TF2~Rgm#SB);&JEe zI$xY;f_TCYvI`F$kk?c*>tq0fEHYE6p=J?-k$x$89HZ9m|omP?~QcOj+ z=V9BCfa74Cv&xjkjLbpn^aZVzgTuvG=98U|37fwl11K!#MYv2#7U$Oac7=-P=f|hf zvO5j)%YBt6lWnOh@)v%_;~^`HUu{0+*<6ZNFMfRAa3p`}58BPgT*7;w!nS(R1aMIP zeU#XFVW3~;ywT&>*h9y-FNQr2BfI=^U&#R2>IC}tR9(Crx$r1hi6&~bdB5))edg!8 z|6z20F!d_r8jVn>t^^Ch46jzZ+?&x6jOtRzX zxU;TE|IF<;kh|k(?>M%)`rMcIc1Zj7I_hUJ-t<0jnizVwa(hFVW07KtFzc<8mSgdFmbfpOTB&`0Z|H|~ zG8|csyh$L{i#pw~m(1W8CKVe(k{Noj5~adz7V`7M@kR+al{d3Xg-WBLEscUqqWN;G zxp`-yc4N0xWl&oh>H$x!ZiD^EV&NTeoqiqghBwPf%VD)y=7lzbusfx4c?9W+2A!9t zu|btyS02TPz`4~zBL^Jlt>bDFP>fCsqg*-?Tg}nRR(%j`HJI|X*2ze;BdLV+_5Cy^{jq?#uC$`zU!X;Kr>!* zp)F*G^!s?SqHce&4X+pah9&9~`q0aFVu3`PF`QG}1T`OC;0Y;qY^m%~S z0{06@oZ?5*K(5asgb$XZJZNt(6!FgkU$BYxUEoimqC9ZczgOUnpQMlKXM}|NTws5Y znkwfWZRo#KP+@L{D%U8<1v;~XP!HqVfKHd=s$T*Wux8o^mo9|kwT+!rLmlV{1hml_ zc(n1S0*eQcu5Vc`moN%mp*@lFED^qSQ1B$I)vtG(bj7H48=JeIfmjL_6!g9)%Aiok}&V zB%N^a7R55p%N8XYzswuO*|Oy-;M*x@C?W+_8|&R}XGjxj?7%Kc) zO2YFLXm5M3z+(+8wn^XLUqO%?RN~>g9{oNxxjATWoNlun{BgzGJ-Fx6Zr97m7w-`L zVsu(5>-@o?XFRdc*{K(RPU6HNapDD;WM3vfqEySyynK8W>}}ITobVvGC?K^`1s@O= z*_am51xyBheMRwOjodZ{z&G;-P z9MF*Q!W82L+q2WJ^7m`_N}=M+$IOvqOxjnIp}lCeH4z3nhOf6;B((>Wfhl53guZBO z?|M(EeZ6vCH(vM9uN22<3LC8l(>IAglz}k~xy0xK5E=C|&Sc#JWXce+WF3@oeuzP^&U$8A8)a7I_!3kN@#<+gh?Eu9>*MWOVuEel+2I?{? z2L0QZp6>GMqNQ$1;j7#l3n}+9b+LEMJ4;6Nibh!~Q8qHBob|1(Za!9-=WhyyjKkVJ zRwgo34;Uy;1f*pjI}lwfc95-1y1MCm+BCAT=amth|^97#hL?tY3+PL>i2_KKSN^;sjPFY#1}x#tu`<1|lQdoCMm0!XbWpSaF-ONjmSl3*#s$>!^Mbz4Hk zgE{~5*JUpQ@9FR7d&~2UUm^!cp4vr{FRiz9a`%QPY(;%LG)Oy}Zx=@tP9-H%(~j{D ziQ70>WMjhUl<JvK+z^PZ&7zVgv>cN5Vj@ke10vQ%R>3>XV;x^vy{NUmSc&oUzd$Fr((%7TXN6bq z{~S7n{$GMl_5UZ(S@wSyIHh>pii|GI@TQV~vTz-7-3(AoZ9pc9iR{}DQS$b}(tM4!{0Ry~qW(z?9N+sy8|+8J8z zpx+lEp+n?ekBB!}-o5Vm?pDs96JL)X&tiHx(eJkY4G&lyh+JQ9+brAE1f2@=7ZNH*U16qBC z?7iQZRR4@r&uegh4`bUVc^kVh$WXn=?oFCXM!#AHx9TBrvvb^$`Cx;};GkSKseElq zdH{PEz5NoMMMe!hjLIBq$c!b{GqScUX$awZ?`nHr_w8TSsr|<~9|iMY*7+3D8ERD@ zmy!LN8Tf*XAzD~3cBvoLWmtEz=IQJpy)49DE$?;`jB;SZC77hf{Kqs&yuj%MKp zE%Sa&vH_iEkgxCnBiV8T^UQ`wfBY%U4hqeOrtVtd#=b}BbcX@TpxjJp&6HeUv$v7V$ayVe(6@{fV$!uI7Oas^wos;7r?IN-V!j}&fP445n zZrzR0Dh(Dy1#V{e^NvjFk!mi(3A)O@xZEMj`&x5~;eT@{)YY$|O`}BbgUBdB?NrO+ zl<6V(9#kjkZNc{scS=8U=gz;mGfG~bg(*b8;+2lB)zA zQ_7vS9+`DKnsqpW5D3hQr$4@mtsuOIajT1{?^DQyPjqEShCL)9-4}dW^7yZ5_L@9STh7hWYm!Zef-M=h2z zJ>6oqeQqvxf|0n;#8Wzg2gjzy)B!1jzWPm6v;*AaRBkypKl!;#mvGjNn(sq7TG zGmJsuE9&Z}HyQxkUOU>cpwcv5+)*T45|)Qg&@RX7?Ivj$=~6{2S1s3}C8b3aWKnI? zRBpw0R=E32gt5(EWa6(z_3|)1TIYU_57Fa6WsufNF`Lwk&PYuDLH57_PF%p+%@lL% zTKwFaD%IM%J=(d;jX<^^nwfP9%XIzeKT40KW`J?{EPJg{lp|R)%c*MihZPXK@{a1Gr2v znP*3!vyu5TIZ>8(@6Y@JXZ7V9`fOVvHdPoS)z&~-EviFzu9Yh9o-gdJzr8MGvJLrl z`(9U*Dn_#@>pQ5hZ$~KZsaLZo>5sx#Pf?~X4r2XH>QwvmE)Mj>(v0~*tOm2H3}wq zm(60bLR;{+V@$*$`|;4Y&_zMSloxE8n0W|!J|lN@SUGkaE?nKP zdP=Mp#C>u-e!LB*`niltw~8<^M*tEqWV_5dE~~N{dVTv{T23LpUGs{!PB&m>nT;40 z$kfRha+H-$D;?kIjR`w++xNOjm|~-Op8eI${63;i|G`w?H!{KeRN4sA$M4-p{%ANa z3HX10{fLBvB5XzS*`PlJnO+Z7`Nf8K6glIki{0l&!@xIE9xP#Jn}Z1~8nP@YH91IW zJnyx!Q%?(JGhSK}A(3&LDWqbc4GMeI?0yQ6BXwB9Y-AYA5G)3@hu0R)mb`4%yJu>& z(5z-BMxa`#SSi-=vF8yACTxEJ$)qnDTd3xKtN|?7T{3f8uJ%|e5V1vEpRCpTRq6@L zsZ=5LMiFB9Fbf=Sf;=<#5hI?iCsX}N3MifTB$wuc<$&g3N{+hk;6(lU;I`DadWG#0 zA(Eived~&fkRdk349oqd6#cPj7S$t%4KVU1u+7uyg!~JbA1JNlr+q`}elWn8@JlQp>lkfQ19#_oI5s5$E-rw%1m^OT0|Ct5L z`niG#{<+F$GHN>2#y(tQuFuGviPPg!#EmK=ifs)*wUiG~%TMpcHXM~?qn51d?lBzf zdp@^fRdz1gL`lyouhuImDs?##4r?RNCo&rPSvq_-t)^?D{x&7Z)7RkkMHEN!U{aoE#+wq$gqMy#cut-v?y+^WW_FPGU!sP`Ql zRi*b8&wxY^_1BU5$H28Xwby!oE?$y_y%jZ*t;aJ<^Et5tK~A~h05ta|uwE9S zfnQ$-zd>9f;!}46 zWl-c{TI$#|yPQj0-fE>^T*ha2=QUfrD%>_}X~K^=&D+bTekvK`culk9s7?R$qS zWCLI2Y4HhMH|P?)B1x`8XlR)OzR}QeJ?(^^s6DW84;cBOMj^V=Sp7>kZ^KVR_oghx zHvU(fw=4DyY0#@BXLbg(bBh6d4-rI7?eFKGpDt9F7{W=_oDqjzMEaQ+uixLRDOn}e zW{)E(ObH)4*wu7sa(+B9tHyXa_T8QQ^Ar8KZclp#MO0OiJydDtTR@BhoxFbG=Byxr zN5NNG7Om+5b%Ecp5`pp?a#)sTpU8;JgI?@^i{R$#=%r=}B@&0>FbpQpvW#_Hk&4@~S;ov3%dH^%nt&OjvWoOY04rz4If$znAE6XccWSU_MAw4{{X38 zoL%Q9oi}?WGMv5R(HV|3c&oeMD+)HPRM^tK&s#CDj6-yCeEwZvpR8UHXAq_X-M$TC zAzo8)Bq5KYh?Tak>$r3>YK&krIcG=y+}SR6^Uj!tuUFoZ=uKM3^!AhD)R8b%F28wk zqrR4~T-#gDOlu0$Vwig~?Z9y+gaC%lfvJeSe-0#DDi%T^Q|!Iwibt2o`xuL%{Dnp} z2S-7r^g31kEz@)|wsQ$JTt?YCQ!$#Ha_f6|7&|^9CVaEtt@taZFVQY9(?(JE82Ti> zB&1#Va189oeU`0B%DTuZZ=aU_O!|pY@on)HDw7mzkbDNcnw0lFjq-02=@fP6Vnu+3 z(uu2Tc@johiPgGlbGTZSo?5Zqj0J6*;CQiUoB{Q+5h*}>R&inmINVS!I}wj)0f;8V zH@>m_ItEdvSW~M}xFpcePn+xl@)VK=9mrBj$qj82)&)7o6L2kPqG>m&SOII$y{)EY2yGo@K0Egs1dp2UNo*mD1ja1s2bVRh?OO6zmqS*oPBflOBUX&MM&yP%!t^PtZ z_ux0ad$lb1gT%(F_W@w%B6h#{;`dHZqSIF31=c!N_AdZwm0f5MWNmxAtU&KRU?HodJ=^;9s!C_sQu)2YbUUK4#yV>68$+a1m6`&^7(He0Ka(c~+Du0;YJUA1hDI z01)J#%Cod$LYrr_tW-<3#7MQ28biyYp)wbvlBqQ2f0cL&RR57r$3KbZ!+%RWga4g) zqCsVlgjk=*QKF{DJ%uu0mm5BV$CF#~<31*y__cFfwW(if=k5QMcp@Gf&;Ooy^8UBP zllMP~XHq@iKZ&R4e-cmeer_U?yRMw_H=dthTaHwD|#Za)e8&P-`R>DDUoH(I<%aO|?ULy=JmhOaw^MRVO2& zZZ5U0UC69z6ExGB>7LXaVCvfK333k6_3$*|Tp;h43rc8cuYH8jw{4w>a(kco_^a?> zF9$18Xg&5>N3Wdx;$2N7YF-OpgY->9n&sDxJ8QMpj`YXGld}6E%^~EY_)G>{`=?N5w%y`!FHsd>~yf0@4XHtYb zkD$-~vpA@G!@#q~KkTW|KhxZ|Gu+>^*Lnm^=ejrh6MfPTRFL0**+Iz(vfrrpN2N52TLx;#i96AGX>0K`c^MdaQ z6dCjF9r8?fJ$_l{yd=pFzaMzRRJShOMfn80K?hcl|7s{CoazN;f<2FdfnTkI(f+XK zU?xV-BYUdfb<&!Z2eo!TV&)(AB!d_{vS&E7$MnCj=hIGWW+*iwkizQU-RC|C_Dss> z(7BJNJ;g1p?*}$iUK&_qoO0I--7V|eJ%mvZ59$z&77J?NVpHUKlw@kZhP00gsFyv> zNc|bftw=Xo%rdrJQGT>Ud)U=YXp}g`@X<-L1CU zvP_+5WNWei!v_!7`N|1c@z4D&%Xt0iHXMqY>&guS>S ziYBjyXBMBVQEi#vb@;3ZG>;{376h67Wj_0^J;!LIieIP8se{_3Qp|1Ss~;<=6=PZt zOVW&C;bYm!_W(6VU9i;}TcGY8(_O%>SZISK+8KGHNG@=jz`~ck?Bv3Y;R^)b(K*X{ zc?w3$UMYHqE&j|AkJP!&l6oVb+6sVUGxRnn6uNn z%9d{B@-ws5qvdk|`-#YkKFjLz2+1LMy3?hD5FD3mIHHwlbEea--SI=s>_>YVGS8_xaI0bo6sOZ*b(WDqq@vkdeBhgfS@yI!-%K!@&wyu{nFq!MFI(=f zh4tX0*;)L=mv3V#7Uq6qPhs~$2=_N6+txX3%szA`?#hjXR<^wL?i@;8oH$%S?oh=! zt{xWNq>8fT$*j6Mn#Vm|6mf%fvPjL{PuWDST;Wugnr+30Y^^TEKDMEjoofq6TL_h` zvJBZJ6p^vna`=Sf_|WpU?Gd?mRVfJ5fq-i{+Yu8F|FPdx{$EoPM&G<|S=vsF- z6F7EZZS+)l>r`{=W~6*e1oC#bm#0B947eNjZJ%RmS5x?)Ty*zO{YkM;FS1X2#L}S0 z*3`N3$fPoD2QiKlHJwW`@d0b*)69%(A+GDrRa<}X6KxBHqHc=q=q2eoLG9LQ`jKNs zb)9JUgy@VCPKUA0Q7G2zcIOcj6$RfYowUzB(945Uv?DQcLkO7D<}$zBNf7`z_{3HL z>ip?3GAzOPQ-^UbX*uTx`14M&6Z>TE`O}}@q;vIg=+DZ#l0*MBF%|Yv2;k@5{f?pf zVv+fk@yTux=mJuA@|O>MuGtDFq&c zyt>wHUmdMlj;fY|AEj%poQw%h*p8luy}#k#{k5@j{CaimnyDi&+d|~w=#Xmq71f1r z(@eSVnv~l`4*Rhq+uf_^yBgmU<&s+;f?2fDyV#SXH3aw!;d4B_667_q9xDv#SK2Jc zfGEp6j7ASPW#8y`pvMo5MX#Mdrh5>XQp96P8tKhYG@Vc| z_g*Y@Zx}OW6Zi1TBJq?L#!UqR=iB`m{H~u4!RI@DInSiR5BcqKplQ7Nyw0~ZG?I~I zGPoby&-N!0=<0pm2s(Y6s8RAxBMc`h(F`&gsx#J}ves$gm`Tgf{<^2rXq-+oBBxf} zT^-bHA+bnUE7Rq0AnCl6e6l*^xUrug&v(96k9YbE0h6|KFoIa1s5GX{+Zj}a6DM0m zwq96GHX6f^BZXM4^XblyXJF~S_R0eBeD5td-RG)XZQr|6c{d+7rXM}aMl8|V|EMk0 zP?8pI_`Wq9-R!a~eCK*{upCglLM3|ftF}2nlGQ`>ZUU)aM_!@!Y#je56T&~Dx(h|1 zT&d^jivruuJJjbDLg+j7ku-(8OYh#`y?+zadM*ojUWc(IcG^oot@{&%s+AEcMvBH% zJ2+&La4JTrMm`}t3#ywC#MhxX`}p)1*W>`cnl6SEZa_aS4TI3qMBj52vY38I6TwRe zakTCWdHQeSUm%R=XD^v($Q^KM{hr;wfJWtEBc`gjR;|uQap3(Hv?6G4ag+owuj5BK z2Hw;w7GGn_C~tWPL&n8#ZsW(^Qxe81i=YrfFGn^h%pMrt4u&4vw^b)cI6Lx>u; zg09X!PpJqT=76MLONqZ|(xuJ&-YD}3vSb;dYPP7ssOqZgRzKq`g9K8$f?s$vXu#>q zja>jvrYt1$rkGX9y1(xMDSDPDqsh|YCujRDt7$>;wPKW_lgndow(Z(grHHJAZ+P|i z3=-dW5}WuzRp*;6d`I{dy&QR>zFB@oJhc;x@0pq3Nd_CGYR6r+xv9lu2RCm=$I)w> zrZUeeuLoM|X_w~yj+$CdwB2q2)U8^RO{at%RU6ti;)0A-g%)RdV^`TUS40Cw+MINHQ!d9YN)t_X9+7n}xqB{M?pl*Jml8Qxhnuv}KHw(A zw~NcI{^X6G(uTRXk7+S2dx`r|_N&((o~3hBx1+UP_FkRDe7-kBou>8ss(U90i>y<; z59SE_mGlbU!lr9hh>zNa{u2ad%KMRPTR&u^ug7FO-F@I_(|werC(Ib4xI{HRRjJFP zG}4`zD>4BS8^m4D(LtM)F&b5msi#g}^8_-h@q|GRmM4BUN|AWTif7JK5frh)`*)T| zn{x-k!`%e*P(w;sE_T2*4Q$|fcxrC$x|QZT+9o^AFXd|+18+NtQ}K;FhW2U44*;+fyRJ@iZ=)1$7UfD_h4Gp>ZpoAi}vr-rU54jaA1nH0aGG#;=bPW!4Ix`EyrX#0y?-MDDiw|r! zqLxXO71OIttoNd0G(-r1J}*ut^TfWs`DrGp_vuIp&1vP%i>J`o=3VM!AQeUVf;_G$ zK5!y|lBW@K$nwlQy~2oov)z1%6vUpP$n=A$!)-t(w?5%eUQT4^rY9846@Rs9B6e{z z<_*O6C+JT^IoTTnJmJp9a5npRs+H-tuat{CGABT{s5nTekdMlmG=@4ez(jN!^8(FW zEWTJgfHT3R_6_3;d;W<8GW>i^ZZg{F)^Vq+SbJKLJzPAK$xMg(WHQ!mDK){SDv{4I zx>zQkKZ8`uXjqGf%Jx3THcQGsRf{&mvQY2So{0fC$8pnHDz}!&l^$c23C=KS^DR!z z6FkaeV#XG>5kg6$m#5O2kooJK;au(FbXEoYKzCVIP>JcP$Zd=E8=9r&01Yok@By=W zv4wo$m)Y3E_yfR9aKBaXRp>hRk&y&cC8YwtuFQG+hx`)-5oedi=*lq5z1z7%dz+@! z3TwHUD{VN@l>u!(J>EwQ=JjXEjV<2CCeh3~4C@X?gqJL~nOJ~h**V2&wPVKC;AOan zYw!|hl|O6QD1P8rCigQuwM(F{Sgi)~51=$@ zxN`{`9%zOWv}MsnDb~Xj(H_Dgc&QBa)HZ+b{8Ak}b{=a0OaZHJiI{G*H{F{9KO+No7 zpMR6jzscv{(ayJ8aiJi^(yMx>T2^^pQ4`772VUko-J20>aCR9|vjoH3cqG!^3GG zr~_aNT7PzKd&(bsPj5(B%3}E+0ZlCXw}2M^(}!M{kEgxp1ywXylo&acR{i6keg8P< zY*~y>Z~6Idx}0;RKy0Noq{6+iOmd>^4~249<-Sd)B$Y`<`7aUZzt(Q?YaS^SJ^epx zxAe9DTD!%A$~+Td#g?PQO^dc%)Fx zX1DS%JIf}Ae<(E1BF$c|!IAHSd_<%fmhU5oI;S=3!%LW&TY{je6|OB#Of6n=E$ikj zk5-uA3Dj<@+O}x5uoPPZHDr4FElbBJ=>R)rK>^Gl4N{4| zNT~%-$jv3Bt;^F@Vz)`1F}{PNT~%5pn!K%gTXs+<6OKqV9gS#LBk4$ew9t~)ex2+` z3Pp9v0-bgn@(L{HYIQa|QYg6dl3X}VjtG$MwC|BT z0s<8ZH9t<>mP4BkoVu}Fsw3ZajPoU}oA&sbXKK^;JPS%5Z0-)bBcY)vuAA2_Doet= zZ+>)8^7C}I!xGb^UW|-CCtd&%p1f5Ha+f~E^*`02n*o7(*UIB3$qH|&8P8EusekzUWZqrJfw@WCZ$ z`?Jr@0@rb7{zCu<9f;h}I?oV7Qa7uDG1gAL&Ox`<4@TwEUT?13h{BRfyEv@$-==Pf zyPq=oagc$($>*^!0}*iQWMREj`2p0ywoI0Ww2bWB3auUT1c|VmV%Q*wSHZDN(IivS zta&p2VWBf)nr8TbPB`Q_i`~K+)N~K}xMv&11A82~-S=$9^}>e;_Z|@gnI0=qaOLyXZ3WD$~=kUFn|e!#3@0B4Wx( zqDSilBRHtMW0+aS>hA_3=ykrPWi(Sb>Iw{R?Xxfg247o~xGoKOiMj8WXVq+FEbrBM zB@g?ePwyvA^N6_HX4IqVxJj|r>F!Q43S~2s4=Eiz7k?<1q@0l+nE_xVCVF`&AGoW+ z-~Maxw!#XgfShOP-M|8&v3@AG70K0!n0ck02RsBjxXqEr%?UQl{bHPt>`BUVhxKUu zs{plMv+|06NV>^@MJ;!y0J=To^4}`JkS_{LTbkzEWzzo?pbMEei+q(*lfqw<6%3Pz z(@d-=O5AN*N8aBpjn}n|vCZ`rrY*KawJ=yMVNSwNm-@ON2X8SVqz;!rh^Qrm*J#|r zSc3WTw8%u2%#zw6=rR9fQt)?1DK_8kX-ywL+5Z!JK4`Y}%B;W-tM-^yyDcX<6)FUl zHP$Itjx)JmTCH%Htqz0cHQ!E4k#v%Q<9j$Hc$(Ga_mLSv#W6m5W7kjYnN!V0A#k!AG9w%-n zH}1EWY4a~rHgp)fZpv3UJhItkH+iTwycAp{N5^gWM=mB@g(#zkZkpIR;C+LzyoZmE z-w)`GBGaPcN^D&OP%SRQt8j7Ql|0+B3frc7Z03l^E!^#6%x%O3#g3uJ;`Hef9?rNY zq_WL=Y*V`JoY)b>8UHb zoeJC0Hd8AVl^}DF8g1o*PCi+OrqA-s2B7>_d+~v?0<|-vVRZWevf-%s%9%TrAq~a?i{J)DCq`4 zK^kcoC7q*tjE=FO8wN<%=#U!U;rqPL=XV*?ZtN6{qZzo6R!L~ z9wla{`%`a`QE!MhxP;MlmU8>|2@2H@P7$(&uY-cW>KRf{$-VkP-FlLE6* zGxAYAIP{=sba;2}_8PAvb|q+T(}{d*UL8g^>B`6GPbsu4ke}KOp&`0_w+_8KW zzPsvr71OTUE7pi1zH^{_p1TE@Bt=bhG4>r>d5hj2a47EKd7x?T-R)`9!gRDMmvq>@ zx^FeL7HPY#DKZeEe+YFuJcLiJBMv;m9ZSjgAE4I|6^m;ApZ?!)*J+LH4GM9K%U%YUiH(IvL|oqe7$r z4tTOBlJeumX4AV3c;m?=n&~=MnX>EduiG1;%E-@}h#Ng!Q^i{~Ve*Gzqx|yE7E+H| z2Uci%lxOu{44)o8k3vp!9laOX%di^5+vjUSU!q$il&@d^Ch#W%us+@Tk|q&E`bgdK z=IhS{VRWKidvI=okC6nDvDaMh8pFfb_^TZ9c%GqRcr5xQ&0jw64!`?^M>62&!pFF0 zu91UBchcTu-{ks4zx8TWGM73}onCv8xi3M-#tlPUWu%<>K?QvF@t|2A-UCGds~C=1mlM4 zM_7g${jS~?lPkp<52pg%{m(}C*GCPdOsL@+O`!3zn8hiXFBLQWR9Whx-9MeJ>Z2GY zHpr5X?52mZ+}lJI1u)&ihCi&wX-Zn>=Q{y8tI5ZX2Wb6*%_%RK`?#GCU|!bS&2;Ne zdm`WMrW(a45-~(l)Vk==>_AV`5}nT0>-Dd73j8rJ#xu!=6saNs@A~fj9x*e3?Hm2up5=1kojKzok2rh=AXblPvrA$j0a{{85}y z|9ggB8PijjI)uYCJY)g98xB+XSc?jO-ZPRAQ-T;i^87Rr8i1bLXHTqH}8Pq9BXg59jo%W#cwg(sP;w)_m_m{hjiJnN6sEA z`h=Y-UkG|TCRZcxR4d!|O$>1vqPc_W?Gc;uu5hHQ_ROI%(U!j+IQA}{ewT>t7q>7SuH+69pET6UlUfnbD4;`ziY6c zOElHW^GQJ`t_^`ZqIQqtGgR`{F6&3heBP7;Z4EH{wTS!t~K&a6JAYD$<~?p zyA6C@oO;~mn|RW2^lRb(yg!-ZTyjeyVw2ve;ZOx^S4ujWK37oCm? z31nl}Cb$3du6#_<@1EW4k*t6Fbin#oojnXy;6Zx{gOZ^9)!($+0$iniSY`dBalim| zXWhP{pW|dY=-{U03uRklPf3P{BmT{Ao|XPo)|u_oeBV{Zq3rH@jp+f|p)k!erk_dl zSxo0ujAJ9x)jjpv%F;*CE4yH==)n`*^Lp`!a+g`jU&847 zh^5Mx@oPG9qCMvFkfwVwJM7QIgH2f+yKnnkBQp`~s)?n$?vS=z2mkywqOP zBMXK~HM4+gzTc4{Mvhpy*~dhyt$%dBp^;^xQtT~meF0^p1GgS>LjDRJ8g@v(-g0;hd8TW<>;2#H2jLnSMrxyAUL z$*>Yn=E#ejIOWwV{1ro3PJ0HHx7QHGYRCl+v!P&}ExOoxg+e-KAQX5K$PZiJH~*|8 zhzi}eYM9>NaD!M(dxE%Q>(^~KuZHMf$*8V5q{{cos_nY=p$bN$_r;KVa%OpBCHkI! z<{&%L;O39&wsWd4sbYn?xIB(xd(ST+3?g%X$W1ldy+vQNl)cv`SJ0>v&9)(`?V8oQ z5>mnZtTe=e)JXR|m0ulz`)fkdr>D2$izK?YK})kp8|y!9Pm=8-y@M4PmWrkHt88QB z3XL9ghM^{ScXe7Ujrnf4cD3pSfZR;H3YuIS){ zmuV}c=5GME(P8TL*;H0$^8CmBsj+(*!e}$)58!@3eEsQ7x~ih!Hkj?@n8giSQLWY< ztPJDLm*KEbUmC9i%R7{qa;)pkjgLZyc?-iKmPSywv3hl0NFrp=Py;$TaJ{NBLvG#5 zVq$o#fv>!s3~M6;U?L>^-$H1EXZ3t!OY`Vic0GMeTX8<%w`cM~?BPTO8p@O=RMQh=#LOuMOfwv?wGVFQTyY zmJ1OjmGu=bCN>(EeRjxn7V>rGN5wJh23ydIJ* z!WvXMc3gNAHET&aN_<25ST^Zh`QI`$KnT)st4ag-0-11uqAEI`()Iok!fn!VE$iSK zoqys`>W&Sw#-g=W?U44dsCxW`Pv?+QCy$1y0t)xUZ#euYuFoV>wHnNmUC)CwbtIwl zZWr8M86LRayuaP~29Tu65`&LJV=YBV0UAvCTo<#rKce+-brOM7AG*iv1tYZR(roV{ z=6Dh2lgztFreqJqCrf1BWP|;uRMPip!q6C_W_LErDsscP4p~GUWf(W!Jhj?2NjiW+ z$a^|fMnMq#GA{h@GHxG!8P}=FRHm8V2W47|)?G#6W76sW(9sUOj()`J=t?dfbDsNe zbhUJF4yaDyS&!rUo=oXB(jPs+bp=E%JvFO6sL{6DPkIkT^7cvluo^v)dA%ns-DgQ{ z{$njH_3dh{F*KTO`rGYSCvXtc=HBJp=31Tl?0T~@qUSkxa5f26E-P z$wSkCF87>H6BtSjmJ%_NYy=s`>nIPa`$w4w?SFOD89RXA$92VA=%~9~p{Hn?;jLbU zN27jccHhtse?TMxJyXH!H264_Itgt9tX`AtccbjST9x^=0AAvfAuCjscQ*FwVh0yL ze3>;~I5s5vdFaVR#GCQO$K%+niK;V`w3Uwcr^YhtHN?KX>25YRv37Q+v^i(B9T@LE z9ITIs>{%B_FcNR0ePt#%BEwBE*}e&4qlzl?i-eG1J% zyNXR*$Ap)jOg)`MU4t_1CQt9n4OTGJ^IeOqm3gp*pUWMaZUc52!Tn}|4d>JiG*>`( zH=M7W)>|Y~(CVf1%fRRx9^NM(TB-W|r~zTgG4dgP_L<46eyMSFhH^6^b}K zN{>Ao5yBy3*?txtb=|e>pCUx|^N!)qfxeb^dfO25khPn&;n%yaIk}BFSw{cvllft+ zzjBH~cJd&888?MNxl|XmOxg`0%K3pBRmd+OKz0;ZE&lRs-2u(@vwyJM7{Zwp(y@y! z)&)&iV#XsA7dPlR-KTylTF$$$F8VlT&tR5^bSvSyJtLUKtK{_FxaC7cM>^Zed<`^4 zY~^UZ;46Bmp>!oydNHM7W!7pbD+LjOD2WSOUFcjEEM56cw|rtXO)lT?k#4nFFH~lK zT4iIgJADm*BlLz?zky%_Z%}`*-+H|K%opq8TJ3h?l(oi&q&~03mtLzE`?$0tp`>$^ zKC^4LqIB(aJ5yF}s&BBc4LLizxaie-wQVrd4p&WWuBr_!ZbYyjZO$cb9&c#81mriFX# zx4$)bVTEB6GmM?@!UlaGj1x6L;)?f~V0U!Ik5V{iQj2E_$v4V1 zM0Ri1_iTQz_ue4nf?pLM(F%KZMl4^Mbb4!gX_{{*hHRcYwTU?V?592=`poTPN?E+l zxghSGfbjK969Lf;MoG;V1aJKbD9OLxS9&Z-NCkNI$|b_!{SSItbxOt8^YDm=#7Rla z+fRK0*i^C|j_jH`{OE{SD_jTW-X#gTkDumoGxsEu{h;GOY~}W6UIC_O-t15B2ER^Z z)M2G~Dpm9>tszA4VWDiPzDhr8tTey3z|6BM3(Uu+UISVfPF}0}trDx0wQ3BF&7JuM ztc@)caQdX#Zh)4*Ch~{VFgu!CJ3CmAM;UE9?S!j3(Rwl+pq%4hMdDWeyOpT^fa4a_ z_H%r=sa{GFaBpL<&V84BU09$cy6}xUH7D((wbo)Oi6kp1-+BPthwVJsv&LzC0_J?< z_Ai%rZC48Imrf%*EJgwwd8*{xOR>At1Nx2O4PJlFjkm{9D3=Pw2eD)v7<{vvUwM}k6)pko4)!RgKl41KE z@EO%DK`8esT%xCpt+bxv0G4wf6Qp6w%K*aoURteCi_ z*&^SSm3j0_@$|H@$@TW?sGuuqzDLQC4SmB6RB&xZbI305(Z80bP5f@#1t22YLog>7 z+RKQuu(K=WZJjF1CMbuPDY00?L+Dz0RK+C_;8h~J56fbA9YU&{@t zYRbLjtW20-t{yhMV*65B3^V zdcp@ku_;$JuSBB{%1n$s)d`GT{bIDgWEj(^+Eo)BJXg9AshZ9)!elY#UO8DR?Wizh zE8`O$!vZH%NVL#*xT<%5#M?V-bh==N;}3>PrJ_a-MQLqgKy}6=@Fs%$AQ<+O*wLl^ zu0&GJoa@qC*RQdy*y_n3$Lm@nC961*`z_zaDdUZ`A8_KU&r*z_=J)-xlJT4;mfC|U zyxBaT=1TneU&l!3aDa;R$LU70XhkO)@>Ig&_2H{S6-oiFd)gMI3L9?e1?YncOViCo zz6}{7XKAxs=jib-`2*xOn{^Tg6Tpds4KBMl!XFcJu00(IR&`9`JSu2Hoc3JY@4|$4 zh*Dt&n=(0oheJgSuGBs;&>FDU{_+rQ+k>=7Q1=WMK1%A? zIazX^E}Y?irAbJkzFz=8$L+<5_iov!uL5Vvt}wsG`1B}Um(`D0r+IS_5$H;If2K%G zpk>?ki{|YUgW300+~)iF-^*^v-t63ed$*h1n?Xj8q%&3&SljDQa?OxP>*H6tj-r5c zO@duX9)XXhkTosI>R}D1Yg-){D6ej{*?>}b;OKk_M)<2>tHER<$ zS8_FPOQmt9YMcvH3Kb8TCCT~2Cvasuzz8+hQ#IOI0JpXJF*kL8%;l#9qn(?#$2{Gw zAMk*8%GL|SzgO@7>3q*h{y0|0h`AX45oTx|g{%cWTho-<{vGiG{}UxTsxfJ$D?2e+ zl1VWe0u)HBt@}FhgGXvO`w#kJkl0`J3y;e?GTwRF1R!O>92T0gtqf7IUGz+^v{>Z& z6WHCrlF#_t?K`-%ccY7vo^7l1Nt=q<#H>*+oy9MU-#b={Y>7-IK6%cmBy_PRiltP)~$`J&-g&bZaI;n9bk|hgN5-ZdP4HrP(k(uiPwI4EA`6Zt*y}a$-+0Z~8 zLlj+TxLw;CIN6il;%8;UB*3=N9qY+j7%i3n&_VfAhjl`V%n7NLR<7`ucQdHj(?EfS zoVIGDa&eCBP`%Yint(+r=G&N@se_`S;tI5NQ9!{5J73$JE=V!c*a>EPyc++OZ^ABR z0+#f3ZrWqo`UVAkROq&CRyP0QLrDLdV0xsPL99g8$V}iD;mbn$_oa^8YkCwvIO2-F zE%3+;)8U|1e_C0Fi~L1(44OJd?O%p129dGPlS%vu7cF{WM8#$}e21Mq61fu-jDjIGmQJUuRfWq7v$n8|F!SAZH?izu_9X42X|Yn zNPHBUrTDFGz?N}8QweMSCbh0V9{*y+e{7V49uHLb^U}Xew$SSV4@GQLLVz5r`kUh; z1@Eg0{m9lo&()1pb2=5KC9j*aC5{dgc78Uh3$jj$Z2MrH=mJ z(b0@g1aDbmXZb&g9B1&Vu?f`qENWy-I%gPkDi)Y$5(EZz{1Ja6l-aD2x#N^cNc&oV zItz2(UT5sHqIRH=P?oNCR@$EoP1aX$K?IVltg3F>#A7i=wV5vFRNuNn7@vp8kbs%E z?Qma)f<=Q^ztIrbx)FrX<$TPrQ&G#E4Y+7WeYEp7<`edBz4AW*hcwyf1cS$O zwd>+PQ0ArH%}-}>;OTS&gF<;n-uNEh`(Bq{1OD}6{B59i{*9Sj$Lsh3-8|>j|8_dG zCc92L&q(r@pKuVP}UF#^41rElGe70DoWEV z!ms24??NuxQK}+ZpQ1@2h<;tsx)8yJ&`7`YB<~`R(9#wR|6jjRu&eIynx_e6TiQTy^-StVND_k9K2SEmuxUw z0Z*QNtg!RJ^C}M@|5eI5egE2}_^KoAZ`!~*Yh>b<5Hu<=>GPOR3DV&fvd$4tqXW>U zTK|caTC+oFMQ|O8SPRKkkIzQ~gv|sKp(;3JWZX+wpmycWY#6>Dt(>U6BkVUK1KV10 zo^p5o0I!Fiq>N2etJ5lW##;W$*7D$K%tONPGxV(^I>FIq1x-X?(af5fKW=d($f^yN8a$SMuB%>iXeJfF=c5h1)ldhz`d@a{QD)6g z11g|FIYUos={+(4>tE0KQ>(T4OYlaV9S-p=Y!iBLUY$n4exl0!GjkIm$ZYCc> znq^m8S+2Jg0c&OG3)dZe;TJbVFCtO{;0q)AB)pdz=y-CAbeID>s&6Hl{ez{$9mQ~AyB5-&u^`S58ztxygK=J+W1<_zUmKww5P>g}}T|$4%Ffh$o}Ry#bHdfxk>Tis~3gAs^z) z(rq+5JNkD(n?Ov=pmsMtE{*Msmq4{uNyqDiv?R9mbc5ng?9jE+!NuTqny8+$_3l*Z zHk^nrnQnYz{KI*j-d2~wn;dPxko*(+zFQ24(tMxFIvOgp8a4XslQW#j?d1#q%$5aM zkQN=dQ8R^xJrzN=7Ico0060Sj)Ks#8V|#zFGV|=x zWpKrem3!n=C?+6?Ne#W=>FoF=-7GgH+R6#iw8OQE09b`D?9q2@p}%Mv$bAscr=Ov+ z;SjC}h(wfUYMIWED@zB%Y3%3xpkdO%Lo?5-ii6` zv_n$;hGu=sQOg$l;M(l;HS4jndun<3Cd_fvF+A2H7MKT_m zoEk0XbS1FM>#Sc+E?QFl$B(nhkJj@-o~l9FKZxoV@JB}9bsHplB2=u+WEcmp=(OIs zGI7l+2LtLy=(k0k zH^_Q3^j2fMmUF!Nok=kAM5}&{fY%HxTT%q!UKn!uS$w z4UKG`8BSb>TNTN3uIX>DFWkj?4ENLOH897|wAHUK>T(I*PjN#JPgo2$vDb=_N5$Su z&Kz7{Mlr5(mYc(7@n6Tbv22Rk>9(NOg>XY_oDqWZcX)7(1e;H;aLsGI+DZ~#?Dbll zA8yzZYYt-YrV&_CKM@C0MFex^VQX$)l_Rtf&A(mLy4p8P=rN` zU2$FNqoGLY0;JnWQ}{21DEsu{XvC3iMgd+>JQOh|QZrr0KCu;HSO&b_5;%H>qMpT<$J3`Qj&Xb?}*}Y&1R-WxvQo{e|4` zQm$~PBjaxABKFK*d?L)2OMHKg_SGsp^o_VWRl?8bt(niN-FSswuA@tZkvI|Lz6GLE zd%*XdYYahW;FZa{Si}Lx*DU$ux9xOxtEvUxMW;l^V;A(=K5esd9^?Oxu9$n9F*44d zK9|J;4siQO$}OEdO|oDSbVRvUPcm1v$(eT5+*lF7q)5}5S34d0<_BYFBI`<6o@k1? zu%I1wv?6)Je@aBiW|82nFC$5{o1K5-+4X8Op)W48ex0{x8gx(WSFm~I-r}O7r)w0c zZv!Pg(gH&V_FRqE?u6L9ff-o5cuNGim*04$%v}+7SbuV>X_r)F zqm?3XfJ@>J{xWDYr5w9$H5Fh$mSASfzPEi}pk9Gs&i|#&>%kIG1P_^&QR(|f3aZ>) zkEere-$O%mx&`Ua2b3fkWpg>p#!O*B&m*G86`X<#nJO~E!aS5xZ({I7`toS-rOLwH zWaj=Cf-z=&g2e1wh%2J7K?P~Tvw{BCY*zOM0~E0kH9u(v&U8jwrWHkvs3@w(I^SXf zMuG!kWHs0$_G8q6yu7gl#%m$!LsI*XoisoBaZo)mX$KGY*>nyLYHRwe9%x$U$;A=a zYZ0+cC|B!NciN&!oZH;>{SL=FlBja~CYeDa`S#ox3&gFF?eZL8fY6sGGAPhquk+05&uso}IP5zv-dJN1&q&0uVnO#dF&JU+j zD?zA9-DUjPF>JJj-aWQLIh*V;9op{)V{L}%9mc&+=R0I$Ep>JwRbr6jBnqe-@IV`# zqf&WPn0sRwyjI;e5kH*D7UKT6q#zb-c^#dty;$*5FHt}2Rw`htE#5A^ar+?q5VPd;j2;X5-KOyI{U&2yy+9gO5u-ES?( z_<-1s)cyfbJ-9(oGdHsmv+uU_CX{!S!BkD$eWumpLFp7tqjaBwUgoae2~HqJTnl^q z@wFtqb8V{EXAH%UDWa!NN#mJM(&W@h9a3Zd9Ewj2A-ow1?;SrK6{LEM`os|p$fKw! z-mN6_3j-OFPYk!vRB`xcmuZwZxIohq8S$gkkh z9d6Bcw5!j2iG#;B+OCU%BYM4UBhv2EerTsc*aTZi>e0$kzh@T=4*|Jl(5A(92t}?3 ze`Gg&c>C@Lk*Yi9o|(EkEr*@jeIRRlN@r}B@kh8Z z^_iJVf0iz@i9@CD=c~)A%JZ;y(HnCn1WGB|4ZQ5pG2+dtmFjD^OBia)=8&q8W9J)i znz{CDphF9`ZCeDs|9zHY_a+?V#j1Iqa)u+YQbB*=rO#HzJo{K)Z_nw=G&)&IBJn?p z9#eK-DcjBXC&r|IfGCxyM3!GaK=kN-k_j4qYQAJPTFaPT5qFDh(O7*I9d~S#eZyi! zP^L~Pg>x~R6thC(ecYAQ@=E!dqqzhXODFhx%;&jD=12OmebN1|@>=TYRf<7_m9MFC z3D-VhKh+I+*-?eaaAbby%pVBPx7Jo7Tia~_4dovUsts1KDd)`Lq^cVKP_y-sI)o>!&~(i$bA#b#@mMk|(WO&F5&5@m&hfcs}fAV~E{fbeWymx^K%!G7AeLX6@I!BqlY} zYKM`g*LlE|9&@GL_aa((?ZFH6i_dzFs^=`YISpNnZ{5~H?^l-pG^FeOY5h~thx$dj z!l^OyojMQy4a#I_p_#Z!-P16W$CVnWrL1&$n#bBabQgw z!Q*9NRh5<4wNKvU69ZFDMa38k+aG|DB|WF=TI{;bQw?{_oCzP>oSe186TsvqpL5-q zoQ-EI5VO$X+(an0^aWQLb2{10X-_=$Kd*B?``rGW+(VU5|J+VgLVarq1JU4@MP8)3R>#=Gx`k|5r23 z8P>FCc$zEzCO5TAEi{HXFi197C^OWJAe@BmTpQCk}+#h`_TrUog z0=OYlB-tb51^C0HS4$y#w!a)nf|H3L%lS_8biRlA5=Y>BtJ=lTAm&k_@SX98dv4mr zprZd_au;u=cT4e;yBB8K`c0_q!c6~}-2K-~Wf=a$Obb3=n5l&T^Tp3>!Uh&Ma`-HiL~Q(sI?zSJglnq27!HKDl-6e zsYv_y+GKrT*coeGbYh)uM%AuBO~YNN89x+)gz`B+fih5ZVN}>JU$_AuoX+A$d2?VP_)*^Y2Gw{| zyqQwqCwF-oM=UByeJhWV6nlwfec=no(ok2qS{?34m1|7wb!?8LFKzyV z0!&#Xgz*W_fx&UXU4;qAh%JbUXNg@!^yZpsq%dF z8XlI?N}1FNDJk#Cl;>T}-$Y=3g%saC+81cyjAQUeC-5KiU3m190d(pKH0xYxqDX=t z)i!}08{cR}-&}Pgvb;Dz`h)}__n&LL>m2}Ae2R)R5kcfyHvUtWzWZC3z9RL+-xS5C zwN71MU9{pZ%=AZ2eIWyP62t#7QytIw4_%K=t3ZfCdP_v&HS|+_hiVR4z$d3Bt#3)& zv_*2iYnhVr7sLs*6TR(jN2o1-D&R>doFV8wOp7cKN zESAFa-ho?9kW7%bOoq8-cR{F4wN;G<{e-R7xGQjC7&UM~tHa|>p-D3}=i-5{iW7>!wharY+|CTU^1v0sl7 zlMT0Eok$1zmn|}G--^as#z2Dv!sGksPW&M65q5euDe-35G=Z4!-dSN8aORF4*Rg1} zdG_=@PTKXnkdHfH@dXIJEH z83Ydp+(>hF6*|%^n;vzRo{Am~^h7PN{fsRfmC>D&>q0n~je3)%eUx{SZipcZ8GVC$ zR7)D5jNjqao_A*t!z=2iWCa-6kSlY0j@$_JFPPfB%1+W5Q)X>nqYJVslEK+n``KFe zK;A7apN?0BE?q$`wm^p58hT%2XYFure8onZBSIt?G}WZ1?ubr>OieM$^?zgRiYY1x z@Tz0b4Xr8gd5puPaITO|(WL41){SAZyh0X&`}zh}20~kaIz};!;hkMGQs}~{VBdE- z60>d?c#0Z~@nxy?bcN6F*E$*Ep6hkE7248u($lr;oInG?DmUr1HuOwo+n`h!8@{?QS7`y}*pw6;v*@0`r@uyZd;D1tZu`L+Z@k>{qvHjX zUb->c&I^Sd8u9tM`WTi6k4TG`r^iF?xlfgO!dvByxO}jP^e-)96NMW__!FaI=Mzu7 zSGx;$*R^}zPh;Pv?uAwDi8k(f0Cp80pslT!l|1|IBX^5nYl72W<6-@`i!fTJ`$>r_ zpY-=`oMF}=J7xFQT%#~aaH)!g$yUpQt zvWh$>a2Pb8(^KNrvrOAP7@^-8+<Mn|vTG{5a$M2pV@lsWjr{P_cIFu=YGf0~SfEe_)2YG8-4p(1t%estoJetR2$Y zB1}cSbnjx9-|*%;`-7NkxW2blFsqF|UEVmmc67*N%-@mNbkz6$AIPu>xl2j=qzRsZVGmP^&6Vo?JP zH9x?n44v@Wj<$aW#K8cxrSp~Hx7k93<7OA?qwnqDu+Y8Y$y|+F;Ubs_dkv%&uo1GJ zP-)p-K|4VmKlT_iRHwSTj9 zJKjJGRC`r#a!En9}P&jflyjjkU^RFED3W zwTPU}^`VsN&A`4h!RSn1_sWF z^h6fusROUE*iXZ(w8bw6h0bC+dqZd#YOgjGH*tt5wm5TUHY|RLf0xUs-3aHmpf>1$ z?81)F3=ag|z6Vz`x<(k^@LCyf6|enLQL9d`yh0R|ys0_CKeTAFf~_*>^>MTxyUL{9 zXm@_{BNZ1(Bc2o*=(Qt_LE-#k8V#{rkI%mSI;FhZbe;T#Z?WJ^)!pR^O>PQJa>^#6 z(n{_V!VT?unbd2JIWPiB>(5%>QcM5%wVYSxf3NeMSXK>apsU*Q;&MnCmaQq)T-Y+< zKaIVkl`ENlr09bJJtn=u-1@lx=QDx<+JlYQmMffnLBgc*v6IdMUwP5GJx}x}YT#|_ znJ8!A`XhiVb4ys@wlnYA<2NW~!2q;;sO{HBP+*de?#D~ zYV=l7>Z2N1IqIv(Q!4{p0$i)1&(U=4=?i-^SuygS1U*udxsc}#&)m>XZ#+hKq_yf4 zNp6FC3Qah(%wfN^iocJy8NX_+k>T_lNdB#A3O2i;VE>FFxk2?7L5^9oKHc3UOKtV@ zYky$eAVexU=#jWqpn`@xm%yKsh1clAyl?5OY1fzxBt-M%uX4Ufr)o2M?VYD&T(+op zF1v)5N4%v8iptoW%(hS`QHY+k&+Y-O$e5E1M1%Jy8;z91A-?$5ohy zUb-`>W$ygCF%+*HlgFwI60fXN%n?!rOD3)=(~_vBG)Rd&-(A&o1j+3%u|a~P=id%! z4+TxB6xvtP&(8?pV1{}_#UNf#{(7BS!mbfJyrtp{cd%XctJ8 z_4|{QCY^F@xk>0#N>R3vP&WnM-sq)I&!K%ybUP^-9PHAv!J`h@2eHEK9J=Bs+QVX1 z6=BhcElaks$!z@NPcHt0)P!co)P~Xnzh%2{q|Urp#kW)|tL&1aJ3g%ZRsHQ7r}Z+! zv&!AIv{`8%o1v4NRdMwp5s%-qjB*?nIaUs~Z#v9X>I(A=yp?dYbTvGgI$5n&+kW@y z!HUcb!5UxcZ>lej=XD>Pq^aahjh}wIVL5%B=6;K&W2Seh#;Xvin%3u2Uz|qPq)Boj z!=Gkn`)EvR;qK*(Rx66KKX~L?*4!Q6$`|&zTFfu4)dsM$AO{QH`BXL!GciN zelR&tu4wYIg7|T7cJ^MjFvp_W2kpT^r`0y_;3!ReXcodO($G?$a~STz$O`_ zTTV05BF0zZPPV4ZEb8g~XM|GFta)H;`Vye+I(L_|o`Aadp zoOQGAl*e|kBlv0@C;hR*+EA)Rc$lc*?q>I;mtK0QbI0dPFTM2AOE10j(n~MB^wLW& zz4X#cFa5vdr8V?;FHMfudXJ}0ZIw#j41k#zFT#_b#EG;L{3Q0L=&|^lV+IKj!8?8GV}*QJ!|)P{2+SLNOQ#-m=x_r4yp-~-b@DHv9ZTLWV)M|PMbf!7@z4z5m=WiIi4H2pX=yW!1Lk1k|{hJ zkG$WH3s(2;1IIO@_OtM0dN3OCQ0s3$2|1OC2A2Dmm*Fc^PIu84 ziOf8~46pusX)0LxpQWkdzon_V%-_yyfET4{0JH`yP~!@$DP=Y(U$ON-)Yt{*vGV^@npVO!?L38R{f~{n!p<;Pn-pkH zwp5LVMIEgHm3xtU!7C`zq3RaY#J%JvQ+*p7^!XoX6K#F^ zMBSNoJsJsp?+o;@h!MeA)OQQJ#C@(EPprJzagmwEA?tkj{l)+d%}1s)_{>zGehJyI zU)qrOEFOQQ^xoeqrNFg|%=BV`*QxO%{w8T{HVNk>N@`k50A0X@igOSg^Dib9;_lQqa!T~ z&x6rJd5-qQkp=N^cgfM|70%V(`dfPRZHoD17>B4;c+?%{5 zePdT)(y#)rkXJEDBvPu1NTp-t#O&fM>2QhBWR*!Fl+sedwy@)KRrZ&sU>lLnTK9HS z(oWo11_(dG`)!hGP`F_)ujwHWCa4KloP{gc!I`1$>pnH19+B9(M-P&o2gfpEozp)pHA_o1aqV$~IlJq(cbDN#+dMbaD5Xp!#1~?73B^ zk80Sj!l+VfQWmtz~XRijW7UHLPd;T`2BX}=e>I#}b zUC1hN_qtB|SRviKN9HK~>vg8~*Qc~6aUqq`c_rEpcTs8()`atV)LvW$ zfh#K*9>htGZJ~MDb_<W7{` zrRdwpd^?`Qvd2%U*v^VMu+&_b4(6nOH89bcE3;{%46Hpa2Ko`&$V2>MngOg(?R`oncrLeKEqD=i&Bw z&DHc@CRJNQH0YqF7pu6cM_Btu`j1EMfkyF1IGKW~!eFxaW!@l&LfX-0@7&$-e4+^BT*wfI2h|b=+N#h&&eI7= zr=A}x9Wm|+;+6&BL%m2u!r8iAcyezC?yRjhdGcZPBm+kQ5r=S3=p-M#{Q$Z>wV-t_ z`5_7&QaFNfoNMo(oqAAHzj1SV|5J-I*n~U8$-;$N>~yLUFnuOEeHzpzhXoUQ)thn9 zo>+A{c!V{vB@ubGoP3<=20KJZ`kQ(tvuj1rHar|)A6j|VgaM%Gu|o}fW|1Kc&3(V0 z;(oV!_*p?@81?*~b$7k=5@eMhVaFls7b;$(DLQr1z9x@QAPl|+XW|L;LDD=vB<0E< z^AR1D+^E0O1&)BVP$rMQ8=F^Z7;BjvHR4|Y9yLAQ7~~T3C7URcgp9ADV)6jp*&H7R z3x|yHHzDyyOId2Vlg2kz7I8j~uWiMa`b4{>u~{SF#kAxlOY1%%$ea!Cjd#(!K+6|V zbOBi~xG8Pw++k`y*C&x=g&(W>jj`V^C1~L+XN&=sG&KtzZ+gP9l+yiuSftnYI6rm+ z5bvcA)(g#Rz zcAQb4deEfD*)r8xVmpm?$L5hu^2kx+8&i9Z2!NMMeoDL0wI~HUUD(EYgvRhkXer~^ z1|{JvDf{NGbt%u-oD#=~2`2f`)aE96JCb}WmU*j4Z)B-q9;g?kRs``N-7EoQ$aW)u zfujeE>2Iu;oME`8O&KWF;GIU7$}eBB;+$>3X6mjyiJka`Kk(>15#Y6Vt6*v9vsk#9vVN;v??yh zB47TtvZoOOH183*FNtBt$^xNu;_DLFu?19S%`YK< z=LTdZrDy9rbmm*}u{rKIUV(brx?8`e9@5w#!f@giJ@8_5_fGMaq1=MK9W1PPS$=eg zt!sx52i@ewt+Iq|8G4lib?3h}o?4(cy3dDq+0Is^&J65+FC?5HHf2yfXKUnV#9Z4I zNehg(kwEd&RPrW#sVn&4Tv_lu!24J=0riiU5|ZAP6zDbh`kk2O|GP1ziDh@8$ZCpW zBdpLNzL$lHd<7VH$mPlIP7tx6`=>D#vsrCp`EQMBUay(FKW9|-dfiLQo>FlnqbM?F zSp#A&XHDhuw=o?r^1DU7pqwM0_K8f;F@LC;anlX$uF0-f?RJM>T{d=mzLR;OKl%O` z`+~p62@mc}Sc7%A<*|(YU`TBFJOV-k#W$u->)+$phUFl!%>NI2clp$I-~RiW3PlRE z#fw#NFYdHRaVzfbTHM{;-JKBJEw~4F5~O%>cSv{I>v!F=_g?qRdbl2}=70FkWajw1 z-lt@K*5}{`X(fk&X%fl(EYRDAv(3_E9-F8PC(T@VKbkP+!Hux$>8nA8j{oqzdmYIz zxSja%t}({7l@T@j@O~BoaK7NJ^L)IJDEEGW{;{i@)P@)6CuG&JvtUohjYw=M2SOr` zIN=|8-ZWN$au{FE)A5}3mB5A|ku4{xJ+$gG&RgN?ZX5-}*!Fwgnd7f`vFD$9)&poO zzf4zge-lC0Ad??_zp=q6LZ;Pv!g0W^Sz-HX-Ev5dwl9`K@^R)!0mH)cTO zrPhfgKlx+4)Ta+PwbH_*-4}z>qaCWc^$_kv>p=_lpk5K%R~ah zO9nK=!xU$)^#gw@>ykq*^Yq?=9a*179XcxA8hf()=qIBqFPd36I;rXfmtTE}NWr01 zZH$9Yd=t%*yQ==BQu3b}kjj z#P-nwVpN>c`tCd)3!$$SUg+pBz0jS3Qkgpp__+r*X#}nsF0AE9w5#gJyeeRljuaic zpp8aKSSEBpz{`B+AvMWK0EwQsv>Z1aR8VNR^Kb%KjSt$S0%Z(Y>FTIev~$EU2zzF z%+PAy!%X3k)3V&3K3sW-aevtU<`>j*1d$PsKh2Sk*9atSNif}F;B>y79j=|mHPe__ za_($`i|LS|=Iw5`sKrBkEuds_aaA7aw0zww)LnkjpBU}*9;)+>PoO^i+U6!_dF;~; zu}b60`a(`H7t6MZsQGPB!{-Nu3#6Ro-M!sN$FqXZM)nInAIv{{pJS=7!sKbEvU7eQ z(cPLwd3l}bw88@LzMOrtA%A=}cZdHo?g{26H|%hw$B!Z8YFyu)TX!{|?9P0_WPhne z8S(0XK#c9j8mcNeQAQmDJ_o+nM9_#rF3Ltv_m9Q>KyI`gnq&qFi>~iNFDqMgjt218r{YP z-E zPdGKSejpu(aY`Ks$fx{pUtx$u0gunVNpTA(`t(^#@(!6XO1alBx8$} zewUBsV{H^9!bla;$d57{7jsmwuI)41{=ECh$M!iT!ouz6tFGznn6<0wOz| z75T$#O7eR5V zu}~)`iH=IdCIfX!YTb>^x2uuAbiG9puwHJgl+~=Xn}yRW7z@t9T}i4gQ(7{#uFa1eN#=UmY1K!--g@xKoF|Tvf;U zTFTtyRSb(`oF(!sZP@ua24zWq3Z3WPe)k!9L=EHop1p4s6;q<$nZiDPb*auTsB+9{ zj3r5_&4drjA#eN99tldPO-`>q5@B4ML`rNz3+0@M53(;piZl_`XqirY!ItYwXD(%P zHx(mtnXhzcCSII2n?O+y6dK)Cu5_C#ZgBjdQ@$&>;Wl3cb11Wywot`NpZ7a*tcpZG zP^WcXXm78t$)!Kgp=@28Y-g{p);cg_ghG~**wO0wtZhi4ONFqj>Pb&)HT3va=rM+K z0~lm2f%yC{j{e0_AESH?3bM`I(2tOvNDMw2m@n(|rD06|#&+wbAr(EqQDIu*cg za0(2ENeULc(EUBe3ol9K{wYbX3g9v-Ph+E~UYKfExXw}Vb*0@#O8hIM z@Y!A2+(KB?t?KWLG^Qi~@yA2-CM}e?#P-hPnL~+i zS_x8BiEll?*A0L)Ef7n?;{pfNfzr|z@p!k=G)Q6Y0zg`?6h0Q4XO2){Ug}K~^%+tM zL0tAT(9t_CsqHqC)NF@C%sDcaLqUSBctDGv-^VU5kwn%iabpv zGe;U5oi+Z)O1&)VeJt{~dK&ps(yq6EQ)n0zc+zufZBr^7c3Gh96*aa4UQKe|Nhzn zVADQN;1Q3D-|oNHN{i~Bd;HrK0j5vds@_P%-nC}F zfON2!d#K}9IH%@E47N>hB-zlk!TAp_qcZSqjE;F15mCyEgXAOEB+`S*eAaR?b-qOR zq)^)LTsY0=sQ|}~68*V$G17SW3~w8-<@sQbIiRa3U0-+!RPnOcu|I`J6X?3p!;RJ# zj*^|t<2)0q^t&ge?12yPqGquEXMh)tr{7Ye|LsD3zeev1K))HP=(1asO+>$O+kh7n z2nG*I%Uo+qU$h98y$&kt+u|A|agFm(84PzHTqkee0S|JSVyb@H(JSH{3drq8E&;Kbpi2Fg^0 z`Z53-r%VLY=}%qan^-5FC_|cfpUhkly8Py6+mYBR{8XugoBt_#kLvu?HqENpL+d5| zk8A1fwo1?0Yu=cU%LKANuFv1DQ4FoW#~2ZVl5=Y$I+;(S#e%2me_tgXJZOJ9 zG}w5sYI{g5sGS>7z92#pgq*RNqPfWKG1cLb&A7K12-*^raZ<*ha2p)E-GqG13`W~8 zI(e8ndYI;p8n;s{me$^x7^#{v?;gcpg2i(zsV>DzIec;8pAE87lN~L$;D<8CLJ`@= z;W4Sd^>*A?05flyXxfTr%Zkm>3Mq$!T04~Re5Qn^Ck2Lebm)%69EgBYzI2wjlEkE~Dmr^UN#Twy^DgWYlu>$EU10w)Ede zNvzI3uQCPRC9`F> zDOT=W6RG~lS}MaJ=+N#%uwJ1YKb}J;%EQ=)-yTEsiL$Z!rQ(FT*i3ZBh54r z<5kIF2sevna2vO!mOd|pPAa{-F+X0m$?geUeYZT;kHNp%1-%|h#R7RnTOS>oFlLNn z%%;Bk5uSZIQE})aJ3RpUk!^ij7(DJtRr%u0MXw_i3p;KDM#Q!xWHT@Z**BkhnTDdLcbiF5n zh(jjgXY6{<6LRS+I_fV*qA}=S!=y^&zdT7}vlu3e!P*+icrJCd)Qn|1@#L9aizVRq zc~X>QZY%W@z)T4yeN>q_E3gxQ;I$`3ZBIU5PEZZk_o;353|)T=VuWN<%|@R3ysu%& z0PPYFz+L??=80BU;Aaeqmp8!iDt(l9>}7J>>giT*I~-|~OSa>q$3)GM?{0z{WGhZIcjUZ`tE<3+* zo1K-+TaIP0J=ZG}eys=XHE%GIj0``>zJ3DHr z3FX?KKD&r!ODKyM|ALg5A5EX=29D}@pj#Rzd-hH^`U^%O&!^s3X7`K&@C^;RmggK& zpSrOTb57bvFN9DSaCzF^^u95`vi+^96D~cq?SO4icj;#pTIWKX2S^3EPcAY&x z-;glN1Xy1&o{C=*4NLYbmeIwSNIBZn_~$@C4h^VAMwpl!XNq2O zw1!*C=&56a0@i+=VCtO5SvS7|$YNH_VD_?JwR!&%)Z^sHyr7}siKC)wa2UFPmO8q- z!0G?UrfOnB*14dkl&7R2`A&&_iObt6NyBm|(n(R_J}*hd0`Ut6R2#ANO3+5AkVQwa z^~_<=EgRij=Nq}usiX^+RfLrP6XR$xe`4}lh~F}ns*Yn{dFg7v=pk!=*tp~r-vdk& ze^_0JA*aic{L#59R3QjmjRvXx+s2cRK@D@!Z@#9gHi^NKPJX=H+2h(S{eCp_HIb>| z2AX=Q-^4^7STtMl)meFVEr&2GO&|*Bq_+RD{vyphZ`ey6QiL9HXN;{uLQq&YO$)JX z3{_O!%xG>$H`Z&W)6j40O1Rxi?9wVd?7U8belN1vhuXA1YPW41?%`J1<*ia=Y>V~u z5gfEiHaswUkOHCLoLCC%waI&J0^Y(7{`>lAMus+_Ns~sxAJAA2SMymN!%XRUrr;B! zrbk4q{Z;Q(Emuh9%*nZgLb98qj#jkx0RXU}b+SM_zFd2TX#RMlH2wMWl5=^aiigy| z0h@?2pKOCC-Sn#@&j)7@omL6T4)IA@l`Dl%7z`%bUUO3E)lca2R2r*OyKh{ph55%_ zibF@eS|y!%t?up&yWkT21dX2p{Fb2#gI4T>8JIwKO!J2KmD6`dDmpy`MPvco3iBW~ zv=8N8DW9>p85ub}^u9W&0{fPLK_ZHB@xmtc16$ui>=gzFEuA?-tQdm?1hjGD2N{nt z!>QzYKca`0q-Q_e{L~kc)@eX^- zl$qw}jqO)#G8hF%JI~WE_Qt&8_{0D)5#|aOkG79gKGpgIiPdcozQ-`wIc)iJ3EHe~TMixNPKhHSYSGvDL z>e8J(*FQJZ7k}Uq5$ivfzoq-h|E#qA7N^b=;c@oMXy{n@B}?ur&62N$yEOjYwX8DO zJHn|iriwp&E5Kx<5OCzIG{|yLr&9umE9^~0%3sitp_|ZV2TiLDvldW)-Ie`@!jnH+ zmmg(WO!_2LESP<^M1WWfKR0dqEBS0urKQ39Xt&u^Cr3$n$5OsmCbLlt^(Fd<#43Sl z%|BA7^0lqD7&Jn`9n1EmHaL4c$L6s4fT%3Eo zfxgy_%uoZXtA5w3i@009rjN?y0hee-pZC?6aK{~}l_*&oThs@W=BoCI4s~VCAbX)K z^^W9Lh3Y`r0DiVIoJdj$m+-FDQta{`ty$}E!q_d8i@e@TD~IU&rA>y$+8^fD&jC=m zU2V&jWj1S!Wc*%;+J5U!{eil@#WE;DC2?!Z%&3P)CoM0z-PQIOkHci;!jHXS+n~~0 z%|cL6K0f2i`POQ}%ayw;XAl}cmGP>(E+3yl*AuTQPeKo!OLh3w^MdcGbaboelA*ox ze6}G@DB!g%`mU$iRYBh#bYKMMrhS=G5dF(Ay~QiezE9gsA=X6TN2kO34u`5}i-!#~ zO0K%8ec~t^TF4WjrXDF}yToruMrZ9&E~5QbNd^a-1ktYThtHXgODwn1YhC-*+d~9V z!~`S|n@602Sb}|d1tP{$$547}(r17r_GRIa zTD`(nW;?pC0#={zAZe(IwpusB<5}o0s;_iE+*7CJfy^W|)W$9!m<#dD&mT=R_DLUD ze}*nWUpUu*q>n67lL?nM8ra)%iT`G!gnwo9uZ+%#kAds8IVpC1q!X zujty6r;)sH`sXgGL>e*ApHbc4cS(oC7|6-Knj?rp{^xe7WJ?-D%5NDpq_KhT@G1{` zAaE39|ISA9b^b)92Z`^q)V#a#i*nR3Ns&}QKMP^>7ufJ-G$bsI&|etMwj`vb(BjW> zuKS;6)cX$0_n&4|zvOFJ2~tjp0;^IaL20ylK`f+L$k}J)r)?QGAiEl%*#}S{2+M|G zM{$=9HkA~)y>3MXG^XWO4@b=8rm5d1ljHj~<7q^E@Hgi!b4>(_R0GdbeB-|sh;WxU zl>P}uQOf7l{YTX^2%nVmLdp%Fm%eykx>0Ikm0zwoT>fOY+_p$)`wx!7l@va+`;(>+ zMWSTC6j(A0>_ky>BdfGmucQ{MxG}FpeqsLZt>lEbggYKJ5g^XvEdQ6n@3CFN|BUS# z|1-7=VBD_A?m8tY4 z5I(k>67H0FSzirpdKOxq4NlL5M(2Ya8lkOu=~ajdt?Y^oMoGmt{R~hb@Qp9CHUU1BIx(t?jp$F#Q6uXQPIWR9;^YsQ5pyYZ7sI!+=IG!vUZ&; zheWDP2PtoWt?JO zmo2C0!yOdD(d1!K{L{U5)TMe4Vme9N?ZeY(0x%*P@yQ+R?juZj+SWvtp#YHdsVhw) zp);OpH9CZ!BMogyvPk^A)TPheN?nv9R@N*O@jEA#lXCbBE#&EQRQ3{?|6PvK zdPG_8cZ%0$m>#4XBo%!RC@@9?c{Bv==k<5p`i^t-&x%&PHydy$V}+Sy@ReT0nF&0@MA2(8!}7$U-t|zK#rr?hnGxm!@jg_5P@3YNuY^=#|XeHQ>sqtnL_?Z&~R0X)T5QjOW3mKOGlaiuQ|?C`X7q{%*QuW=(_X$qp;FnwqOQOG zNl2;dJg$fMc(Ol(hsH8y)0XP+HC%M8;0bA8J@&A>$(+V==Kfn(tIRqg9!gyzxA$QU z;NE{vlX8uGe#|9LYp}Vu^C|xru>AWpY2@f6MazOV)k0MH;vME9H|yfH8dxba*~lYb zy0j}wGG72R2B%P|G>A#L-t=v3SfdHC2AN8DLvpa>-Z)Tl~13S~W>aN2rhq zMX!1eGewq(xtD&2I+nNw`7y!;F}#_B?t?PX){~!^lT--4(QJ1lp4--NF6)mYjRLcb z&Z{DC91ud|i`UyJ*6AxYEUiW)+y_~XHcaN`rAJ>6Yvu+^H}nxfFsWk7LKo4rHo>-= zu++`h6uD9iU_`_&>xHpR-i5EXd1_u;MN*4~JDVD=ojPOqo+i_-VpYBLP|e%s3tq3a zvw~pSAEj&CFgDi=Yd5T+Wq-%9QM-U0eb1jC$Y(tEl;`xtf)Ot2bG?qeoOxa|qr?Pov|WNB`8K+OpH%TEW;dqB=%7o^D?$Qp z+Bbnqp;@~e<-1fwJFlXkjrkDH(a`MmGJ)Wu=1purPb2{J5|3-4BMtDiN!@aASN#oiVe=P3HD>5aYE>iMAOm z^W<)9qf=W{bM&0kE5P9RZuIl~-BuM`p4jtcjCAYs7F=roD0DRb&6TJ5U zo^)ZWdDu4XdVs5VVd{$2Ew9*wzcD zd}fFx$DbKyPs;o1v34SIJEK+xtDX#b5=^!{3MRX6QIOFAJw_^trsF3E(cYIT%@JdO5dgIdx~R^03&L9f_PqPD#1&2bN35ZM&;9PaHyANu8ldS#WyY#MN6 zHP8B#oF2@leDfZxLnp00Oh%Mc&W#mylr@BiXUEd}o9Mmg%%j0ld}p&Gde@{M}=yZK%@4x?txGA*%?P`6xKUhe(8tLH*UoFVpF`uJ{8CPG(VW^)wfv z5`|yw*+vsv=zL_Hsb_BZ78iIx@^UMFKvX|YE^q(G+r{|-asdpxEaAd;EVrUH)MN4K zKttNm;v&VU8v3Gw%`fJz;!5%-Ni}s^jC!!4{*%n;O_i+t^q9Rm#31_9FcFJu$6JXT*b zi47ZEVP)mNRlY}V`eJ~7ro^&TOwqGDrX56+^H8w;4CPKPupJ8lIZ?m#{a(KbrhIH3 zrYW)z(o|&ow@mBYb#ZzcK*HTwC|Z4?INoqlQiVf4-DNTs8-+r;a$T-5U{}__tv3g9 zR!CEyB@lZjF1j~TEObewFhEh@JzVV}vjvcQ9Qwwij|C(Sq@F1?t27`v1AbdBmA566 zsJ}|kGnh3}ice+bwqq+(PuyQ?Q-|@jGAPCMTu>S*|ewy^3TO*XzCaZB`A+QHBGWOx6sbzZeI^n$XaYW(EF+};6B_? zr}%LrbdF1Aff={FG*QEfejf^@XBIo%JiHSl>|Fdfm;26R&u%S|$2S1GMUA+^DxdIM zob`NjaN!X`8C2^)qOsba=BJhSed|e7qwk)llB+Mz>aiU-&DXGCW{-UJF3lM9nq0My0QS>Sg* z*yc)f;>V(F>Lc|!6_g{=gVmy1SHHxywRDWo#g{#)X2n<);V)Z!jhEWZHFgqpePMvX zF(uI*X&YBq2LGoMICRsOx}FnZNV6X^Ai+?5Ekme1FDBchlV#^L8?ntmdu4emT@e|% zXpCp?I?Bn;Y(3DXN7tb|=%&b!1+>)Tsl6RLzyaK`o0bT^BY2V|OSeeq5D`zniE~t}jA*{Q3JHY32)-vi%YZwQ26T zwij3BCZpz>`EIirBgr4jJsutil>MqU5wxP? ztN~qNziyh%JanYBheEczIBJ*Ct<8JVSL7bqTQ=yeovz(i?%Eqc@YAIBcx}sTV~t&+ zME`|O{c$jbb>Db`n7;nd7l=zOGn2x!E)q>l?1lYSeoZW%94kvP^-NDPlo6@IVew>LDus<} z`+0M`p=`ouwHJl1Z#LvIzS;~&sGa_lFP4sHW~0HOQA$@x6zMZp+E>a{>aoLl=~T8@ zW9k~G()iu8A`zNot=?+uJ2tD4e5}>s8hC`WlzgJo;~R>r?2%%tUl9I*BkAF0 zS9idL<=I?B3d{Cr4o@(Qu7!1XI)N`*1_ZG)oR8O2Ss_TjI%q64+Gzm&B~{G7r23as z!8tZ!H%zZEP68=5bIR4JI)-zl0x9)!5x$dy3h3z^VV?{mFG zmw8#5gAB>BKg%(@ar+gTeeas5DW8C!mPZK5m0Wb&!_E_^$sr4)pxDa^)c?=}2x+Hu zB%~ne9Z+}M6}Srt$+tt0qDfkJHb#3>h?FbmBAz7J;=6sFzl2wyJ0J&y-!gSA_*GjV zP2eGGo+wXHsK_nPIaj!hZ?Cy%ps5}zd{=meTO`h1B-m4c^rIl}X`vZ+Av0Z1NxU1gd^uuzg9o{}zJ8o`~4 za{A|-DS3XZ0U$-aDBM*z!|inzYH7CH>wI$}xai~#MUXU>2sx|tmWo!lR4%_2R6qnaFa)#eDY)P;&3D|n3I$rl<(uxc zmJxbu4&UPybg7Bxh5a7tb>*i2-J>pU| z`c`{tUdzZsN&Tl+{RT9kg$4+x$BDeG6$_`5kR+B0ui6f*)sn9dvM4^St^OJ8J#tNBXz~cx&^4iM zjs|-OxHZS~SSCqkrqISO>@tYfLI7!?12K@L5K?Nzq?eUHae8LHJ*+QwSW^I)1212Ye_&mJ1AWvv7)yf zvfD_p+o404?U>#PSJ)Rs9hbL_N+{-Bd*rX_65$KIn4FD93-Oo{LA(;Nj=(OLlrB6e zDI(swE#?G2tZs6t`~XSZuyluOx8#7kqE?OO(Sc-}QqMis9yHF%h>&(KiOy)-o(-PR zpZh%@2)`6i^%_IEd-Qs_$lK0$OC8UFiX*KWFS7e+v${0wd5!wumxRiIDLPW+#+I$& z5c5sWh`8a>ql(Zez{^|BOS)T>FV<=_GH$Rp_&U8SXZa-Q0Fg2y;#cgh@(N;|wv zO(`KZEOi$ce=(}`)2>W3BlRr^*7vz^!%=E!A=9!z2TNN=lTdRyiBFw0dIV5AWNO#b_ehEIXnGv z)@8LiO_%A4kzrr0d4B0P&h!x}`^c>4c40PxgMkrq-ks+R^}D zizd;Mt+>H#epo+@xcGOknqOE9U0O`*=^^e}q@SGejD{oa!t%1SM@nK_f3jM?jrA0$+HiPd53`!SBmS{}=!22I zveXKKUo<7!=&?>SmXKPjdBnK}RUJyktP{?@;^{}-Pa}tcq{`=@d~4B~v!pBU@MVgd zQ`bk-YWQdu&NMm@M>+z7yFJQ>xiA(8G8X1{I|)KJmrzCoNaBT7;<-#Ww{|!9+B-Fn zHQf*5Zy$w&pHOH&mwU4z97#y(bdhqZ zCx(D1jmazKvo`#MQp@imC5~Jul?7+6jtil9G?PWo+QF51OD+%9KkZ=XjB+RvCmOd+ zT+w_iKwPEBu;n68If_)sE)n@EUnN?fI?gH#H(xClS6sOOBCo4lud(lhev+W82oTy( zFLaHmfL1#95RgbV(XH2pO>=95n+|n{ZHW7cRhvHwNq)*q^bY^bEJ{LK14pH3HecY|r?5{_%%G(+8TQ3>g&KZ~bUKm! zA}Iv~o@a^Uqp;^UHocuhh4H=2*B7<&Uw&!Ij`P0xIzc6vt{6Wh36igy5E=5npgF8zM+1l|JxG8mk?q6N>x!-!JYKJf- zHR*=^vf|u`vj3=Rs3>kszZNTC{dOasBW+qa{SlUFwxcGAsATlUlYvS!wLBx#6n%CR zou(Aq@k|>?++MOHaDCRKpPTCdG0yOlhnSY{gR4v#qzRf1DhoY%7Hb!e?l|L*$2crw z2b=(wO0;uOIoI8w+v#G&aSm(t4cPsN;I-Be^x~;=+t0VjQ3<)7l5I-|Ma2&CwpuJ% z<+h^&14|B1MYAK%rfvAz><4vZ@4t_IyM`~ylQVMJwk69i&kgLeM_&%1zw^o+GosXX z-JGq6z3tX}_2^u-#!iBeGuhAPJR439T7p;=K?-ZhJyx6$!Pl_My&Vv@$8Cd&_tlfm z`4Pt>Jn}Zt6Ly{KHLokKd);woqzD~h*iXvN85G(NHwsa(h4~IgCM$32m+ueaOyW_j zz;0))Dj_9GT~Ekj$e2h|9yv`Jhaz5of6AnHEGQ<3hq3QQGV=JM>&V4o(%lSV0zy5m${BYD{Ek%?`t3W9FkZVhEJFkz&IG0Q=R#ak;WQX!NS zOP=SiLqJO1QKnYqzwvSDibj;YL>x0Nk`A5h>#e{Sk-<1bUqcENk}5W(ne0_ zX?`?2_W{Zs+spBpjR8CGvjVanXVdB3z#eet-!>N%jxNUvqE1;9w|2>}s7rnI>T~HGsjM2(W}RSWW$_2_ecmv+WcKYc zBl1%4_o9J1r7m0dxc{GNwQvt)Y>TiMQ%g(j$_p@V;-YL%$$Q)b$H z{R>>nE{84sclY_BUd%PAO8aehcQWDXS5>ftB7+W88B-eex_rK@7o-wukbe4lLL*Jy zSrzE0a#CR-eVLh!;`nU2a^sqV)v>O{{1iiDc}SjaCP@n$n%``TlC-tGI~dw2f>(uK zcw|}4qqY;K*zf^VVMDyFHS5QbqesW+@8`~#66f4{$ZFW24^bRNb#5Cdwej{(Uk#i{ z?x+OW_&we$W}|X8lYIEpdIi;e{%)e{O6!wzdD>*$)k!&O*0H}VQ14B6VuVQMu4Xo& zK3eTfcOb9rJ2U)R7@mr%GDCxH=p_wX7$n-#EZ#EmutlF3*w`0zYILHk_Ab5-)0UIu zEM((;b%H`I|0Qo|e6i)GfmLd+C~Vg%5pBc-Qy8o{#*`8$Wyr?j;xBomm+Pak$ylj2 z{GOpYrE)|9tmhQvVr`#*D7__MVv{$Wk(0e>xpOhcHR{UCn$ZLP{B@P9N4uXjCy>Z2 zP)2<$(b}Qt*~_i3Dx4)G+Iiw)R=Y~U>eCh6Y)=%*&AG!{W&;=;#q_1O)$lgwOdCD| zEgts-d0G}4NUjP)GcAl?@=T06)z=h0S{Mis&ZFkB*JK}Bis8rf~>zNn6*MX;jw9-mbIhJ{nFKyQ~Q?Zv9pT%%ITGJ-LkZ`&#R1;T@lXKd#e+_ zbdA*~-kd$Z_>KcM+*jW?-}JFzoJLA!tUk}a8F*FkJtn+u4G9hTf8F!_@AL|HSGd0Z zH+e<)ORpVXZMPO@>(lu<*;=0NS1Ua|96I-)$D5tw>5j+_FK^iWQN6Uzxk{b-u&PN1#&F_d%+3BKKLouU_pAGVMe z`YEeK{~P0r_nlF^S3eD+o;|1Dj1j=pC5siq&?S4qwf%D=p6_YuW{f2J&}@Ptfmxx9 zoD(&9k^~8gaf;ONPs3zcuTY~zV{I;qbPTUx<22?d@uJM{PA=OSyro=5S?`nsi<3+e z2MwNtPz>kCP?3;t#`*uHSMtB~`j=jJvFy&?IIl|X5X}#@>SbZM2|hF7ti+RclbOyk zg-sT~EM25Tw6To-((7M(y{q^AORsc3H)3MQg10mP~7U16AVQYj%MROzaP7io*BCC=@@taZej`H|c+E z>H3;)E;5QeiB>sj(j+1^BmlQDCaNaMYUs5Mb^IY-lp&YABUco}H1Huse|0w58(>Sw zVh2-E{^Xp*h;Q^f6;G`9HBwb-+EA)>XvDng`VJ zQ!jTS3t7_8RMS2>r?KpKbaDCso~3tEr_UiLBMN!MkcB2R+rMA*Q<+Wn0?2@yS^7~l z4hGGJcKvi`(!aq5(#GEUSu`0|Er2Fa(pZq+ft^5{lyQw?!~a zj_-bMSX%!ivLVGICfM$fVnj~;s+7XuVQm!s^qy3q0_s#0COi1mRGl!ItCTE5^`eTm z0Pf(-9?sG%w@<_Y>G9$bsuU5HG{9^LAbOorWFl2zm=s!dF~GbCsGjPm0O)^{8fBCQ zPhT70hf-(D+2Y)|DCvN3T9lZ)|f}#Sq zav4;AgsS4u7k=zbg+C#&@69UCn=&N}D+s$P!p!q4Bt$ygDxM2eUg%|65`>KaDhI{= z#BQo+05PP<(XHH7pfD;Vo@i9)d$jPfcT`yj8inwj47v36yrWBr8jO`lt=b;5=vREr z%xTWAVM@5kqI2h<-xmMApn6sVznaR-L(dvc%${Ds39Z$xt>r?oz=YI!OxHw^)nzEw zrP|fu#nlmq#!7*64shI{$!^kSm3$HnRKryhxS0l=4c7xf#=wS8X$`hKjh3{*vM-a0 zuRT_1eC38qmbRE7q=x_8^wr8DPWbRkVTKsm(4D3J=O=BdbXRa0*V-1 znoKmBJ)qyp2J6H2Q)(6($4$JgTU+eezWRXE>lU-F#NgpwddhwC*qvb|k2A#8ri9jK zsHHV0yye+NYmRuvqiQ2vN@XK$Blx9S_kJeG!eLA!Diem&(m&iHu|qo>?o{I*HEaQT z69URe2koHLtnGu$oHXKr_16Hlk#3kRf+7m zejrMk-srj&4r>Hg+J{ztS8Gp8FAO3~vq*FJG~$B+4jHv*{>V$j8qtF$+)S(%c0}-n z!LnDlKl`|+H)q}F5veIBjNzku%OteLCsiN71zH1+P$GKTQQ^?|^9tx_S?CPZQ#F z^D5Xfvekz2EYb&AKa5aXz86x@A0QG3@`ip!^ZY=bk_Sw*8|n$*B8}YoJqIlC(94lQ ze4LST9O0)ANWah=yowl!OB)Xv9_!l~Lp~h0VjX{`F)k4S7DfZ^(h0_K61c+i7A_M7FiZPBwB^xK2(E zKb?ZVi=b&5ticJx3z>c*S^R@NOMGJ*iMoe5vVB<7?`vk*PPlVGS)KarchF(oHJ^NiTblan=jy52{x$7lOmdQr8GU5ESB{&`V{d@i2E^wxF|EutNvSyVnF*je0Ey`Uw?2smgZ>S&U>ZIHD+E4Abef#7-(-6cB-+ zbuU(J<;_SHeB*<7gmhQZk7bt&m1gEHAK)2t^|PZD_a_&R36z*-LU)_e+sY?m+n|Bm zJ%zO65`S#9bGbJdhQ8o-(Cn(l*G~L)lCSQK79Z4e*`~j2)(XgQ-LLszL{TvPfj*pD zYX!d?+QpN;jouaw0IoMr)zXynnylcWuaY+c6zEo0^;d_7-43l%k7AWn=mr;4+r~9A zFroeA8U{Rc?cP>%ut!r|nV82tS{}L*Gv&2C_qD3(A8a>2FxuB>u-2GH{vY=4x-aVZ z-~T)YC@G*wgLH#P$Dksef^E!vur8P*@kDz0Ol7EKF)&6iA~iH#d_k1!?= zHOG`iDbF4D=Jn?-;Bff1S_^@X7PFt$0>`W0y(e929d8XA6g6RO$pNS6#T=yRy zjp%Q7Z4}cF=+vExnpcyjL;d%~z>W~D*oBBSyod^$hpEUgpI+pdS(zv(bFu5f>ORUk z8EoN1Cha3=uU2so7ZTHhRs{@O_wd-KF(T;O!IqYnz3u-xOMcZQyF))?Y>r_RT6Lcg|2NOay6clvV_Dm=PrRBu+nv@TILx+@^D9=>n_YSVB% zip{e=(ArUzwJDP+YLpIol{yzvc!@|j=1sMROnj=;c=>Mm(tNa4yKE#D_xhd3Ufjqo zAnm9+X;nLQge`LE1I1Mq??L&<`B>>e7vM0itWoZ`=@I>A$n)k7eI+7&DPXx+lXRJV z`KU;JBI0Rc8or<8dWFAw;NpHe6nYohYOFY1h{3XpXSBN~u#HZB@2_!3;dXEFXG(nd zc4ue5HDlid4!9ffSXeiEaQ`zcRoH8rF?|-|TVAH+4L;@9T7LpP$GeXoSmq;`HqJ@~ z?G8n?%$(M(?l)VVwpq@QmZ^l8Z>5Y+ty`*3%G#c5)=w{dUZRt*i$x&_2E2O7{~A+n ztt;pyqtq#{pQYTyYskXUwVlBTIo&~$Ute9xFC~^V%D~dPl8=>` z{o=7-%{0}ZvTxc9;$(r9D=Z%QqpC2^MryTwjN|1roNqN;&&ENUx7i3XV))u3HD7Ev z2&B1&*Kn)aZvk;pQ$@n>vUUCRRJq(Oe%k6m?L}dw7T2{$3(i)qmq|99mTNT91v1S9 ztOuJF>MTawsZKV_&6h`|GLMZ8wXJ5%sr0Gr*KK)Bnz zH*cCx#p zq)*fxxF8>^%@BVldYRGKIgNVQF*(gzZw}Nge>jiF9e2%ZoXz$r*qqh*Lx#ky<}K`j zw=D3!s%S09zs5|6JEz2;T$LmBoYvs9lYdKo(PEttiFheD(-yvXn!5KbSq zO5c#GY7mO*Fh3P`7GAU?=+WZBSnB8*p`N$OIJPB%=x=Y5RY9F%W*e!cRG#ZgGH+U7 z;-{vUS_Ti=lK@*n#H-y%?nc0GwA{v8T=KEalirE!%)~#BvFsBCMySizE$3BRlH#}G zTeWWpsw_= zo26IGY8o&~C^m%Xk(NK|!o{lz4fG{)T6MtnIDol7MaosoRcXl( zeR|-?8C`N7Lndu=*Q~f+dOTc>Z@ei#e*g5itWK(Vh~Y$fH61D08LQm}-`}SQNDwBT)iQ1?O1G{dBVSxad5|-Lk%9=zE zS6$d8eJG!w)Q7suZtAnBu#8&*e405xU!J+Y{s+D3ksVfE0`yQE^>r9jrIIVZj80rK z1@ZB1&-a8=@3kyljiZl^(*}n|ep0#fbA4iOaBL%nLF?ie$e$$h^`lSj7q71jg@4Fk z$NBG5QY+4j#+jc*8$4_r5~yY>%bZ#%hGwG-I*KbLpg4iel+KLda{_8Uk#P^vn{?~j zU5ZCvVzH3(*6ooIbmXype8O_6ZNvczDW}OJ^m<;|MKvZ$zmjLAHmL%UTeWzrl2;fN zpH${sSF+~ouNcZJEn4LGn@Eq=%93)gm;?%NVB_Y9vEzCK}#>4B`{NB__j%{2^1-4SRxV@3*`UGlI??Q=n0fP!dUlgl)Hq4c8?_>t@ zl}h?@7Vf|B4GzcDn zQrDFd>isxW@>2*FP%yaSXD*o?|CquuG3Xtps_X&#YUt6D?d%t#kP&{+|P(Q-lR=B4=q=1 zm`fo(EC;`IOzJzO<4?S9QL8t%?0~F*eLt*JUHJPt<(~GGW1m$n4$+p&9-`WckaGt8 z8ePf=jSnVa!BRS(xRQIW{h3Z89wgH)ovmonPa`YP)~JAN$pz@?@l{P5tg|r+wFXhc5BeP`BPnL!(u7U4O*Sk1VY~5tUi`OeUSH-%1DDQ2cnEj+aBFS4 zo4%ypmN4+Xn;!x^5@3CoH+g3V9Si0p&5tiINpNl)ik-2`=w#R$HLkQ%0FcN*SG#d)=0kVro9nMo;2pE zZ})w+lcKG+yF+X&#Q%_$@*lGPL)NGYXB-Bd{maSLD{Qc9wYd`desi11a8=DKIQTnL zUr*UMre8Hzrzz zon?PKbT#O7`)3MeWNSfi6K9M2GibCGD7RFjF$=Qr?gyr>iCp;Q^A6?c8sDK5;sNHF0JXQm_XYoIEBIMkgH57Tfszfz?YoRa&)N#_GZ_s| zoheF9Lo|zO@St)|dyGzd-nM1k0akJOq7?eAC&w;}M;XOR?9@a@HF&*sWxN+X5OKV9@!RiDjOZI}PrK8LR{P@i0r;Vzpog!VH*PM)YE zwJWCho)QC!#kya7H(NFxz3g|1-0$SMloG$s#B=O)b4*ldKl-FEY`e+V=>(|$CDqX2 zpyGO>w3Hihp4$|^(ZFLT`}Ax%n00y!S+m17xK zJm;>4_$tVRQ44A%dlz_^!1sr$pdf;DL>Rn65b^K2@b&+!3ul)PB_)%bGc|8Vy<} z5y>h|?tl%KKjv?J)Kgq1*>bEUqkC&>RiR)yU>z@gj%%p)_^ylNU|`opZ2)}*(#JXv z$vFGLpiQVRRJ7h3mEJ-K1PB0zi!_8o-S3gJQu*>XC+lAtHH5($!iyUG8It4g8*<$m ziE*+kgBl@fc1imw{(Rrc)&H#YyVkh@c{bAIQBzqrAa+LSk2Fm+e8sJh2Ig!1o_(7J zw+KrH6(dndG+%iOJf_}QG(L2&WLUj&k`J=-T)j>=Pk@>~1vhhElw}e&&wz{$2JNA4 z>H~u@j)5(!sAhfLjmkF(C7i9k2{jN%OLT1Ow7L^P$nXC9R$=wFfI;<2_7;-l-gMk^K6saA8*ObVC^JoX`h;M>y0d_7F;P)Wpn51Uz(K$ zo48l)Cq?ep&pO+PsdS((Wk;YYXK8d9NQC?>EJA4j5QPmRwW<`Im1hW-m>f$l9K2Yq20&uG}1k)Ht^aw?{- zQD@Y;17@)>4vbgDq)G9mNLBl|o8}BM_l8WK8?1 z25O*pc{Y{VMsxkN3$^Ixxtl^m`aT_^bRC2~Lq> z!_iX%Z{Byi5k#Q)jR3nww$y$_kE=ZQt!Jsjucx|&kcv(;+#Ow#zVplL>;W$|JT^o# zk8?(2AS0yeiFreQnOj98-$!Ex6!DzKGVZz*^T*UQu%E%TalorZ?b8Q~acXq1?F0O? zp_E-KK{4ZE4A~;6sR5S?%xD<~GIeKV@BmMyOdN87X)Odf!i$x{CLI_Xy=I2akqIYg zhGM*XC2M;1S*HRRyO!PiCBn<3H2Xq_@P0m)GKYRtVCq*ooMd>Lrs$i18#MKXupf#) zW63)6UOjl*y)84Wy4JnzLrVH(f4`Qb%b>d-#NFBJaqQSViw!m#1kif^U*W9>nG;yc z#bS;mbU-U-uJBSSmeO~_dl36!Q0<=pQ0N8X+WN0;GAeiE?GjE7;oe(858cx72}iA) z*(6e%4L!PFqpm%^ZAE<5<(gthn%+_v}{+vM&-f!6Vk>J*#zmrvFS;#T8OTeX!P><&b1*mDx-{ECAOSG&+s|#= zsJ|nw*)5W3c5@so>Fk)RuBQuw|Pqd&j0befn@`7QK%MHhev&7DuwhvnY~O z3U*}_4Hs}p6M!Hv?UJ(ZSqQ8qq+=>Dl>}<6v|+6hfxTspCU)-@a^cHGmcbc5``xAc zE$#awz55in2Q^x|$hP~v0!97A5GKv=W69#y(!&M#N~g@eu;boZ(gF3+GX6pMLz%Y7~8 zHYU_qfUV{Pd`|jkmX4=}Bze;heeas#R8#PDmHFUj5d8FPYL0C5^aIu=J=&Qp`B{~g zJu3_JkJb<_qZ^E*ZJcOFhdb|iW4Q5f%impySQ%}c@H<|DEFIGT!Vs8O zDYbbcw5Os*K}yHFJrb-5R+H(+6NBnq50kfg8mpOKZ(<@3Ni^?-7VnZXR^$&xDh-Yl zJ+Ajq@3a3LJ$T;Wg!`PA-d~;_yBypv6W(3JLDS4K_sxGo*(_(+avqR~uZQ0~jB2Ov z$UM0G8K2d93_HERlpZXSssVUjM8QtJHqW6(!bO&@{d@bJkLHxpr{R203|41fpQ`@$ zt!>_~(J;Ox{Uqx^K!3sShj*&eiGa=YGSgX3S0o&h$FXY%lM=y)N}7PO{O2Y@EEA&V zL6GgHU^3hL|LI#z?dP$d`&MM%bp9l}w$W$;Iua(A*d2vD-q*H)`%Ji zSzaxe>ZM2^TF-Z7wl$bGIwGBXwZ1jRamJx0-*CB&{pRHx7XG|lP+#yn*?LW<%ge<) z(QP!+GWTiX3JUfjIN&~Lx%~}pU(?!HPH@|ci_pl{*Nf^=d~aZG)?blG8zZR>O@Co_ z1U}rCA)L~`9%@3F1hRDANePvAAUQ$K<$<(I$FZFNhR}0Z)`TGRo>q)xS8tOJ68%Lhnjs z#s`23LILc;tTU3~{til#v0#T>EkxtmZgjWD_+G_digaq4(VNvO1_sl$(?*?|S0bjM z#V>Q>{fLPwCar*vT84{<#u~1`?3ygI?-cJ~FOkb@#*D1ol)OCL{KJ;p&|EoJ+y*xt zD}2$9uGIqBhC#|cZ+0H(hlt|-Cv;Z6x|RJ6*_g%0kYe* z_(b)ZY;lRIt_syYQq6RI$@%FSKrER7N~XE7I4A(qFXS4%t_-Wi+lEkpUWhA{8H} zy_o*}$&7BKLUA-@o}ZTEz1o;1#&HJDaQ-*{T^<`-JEPA+q}Zx1m#FVvlGY_L)~PcN>aHPhr%?Cw#jt0dkxX{F>@7@1LrSmato zyUiiKC>O<}qBB5*Xfz&4HMChU@uh{T8GBCU&gC81*8nA=Laytg7mlpKyNlBS%7VGW zrCe@rp}m|O5h&hdzd)#3@O0(YE&noo3$gB}8K>6m;j*8*W*SjL=Y_A8PRw-r)L*mU zm0mOLz4-cL72&$B6DQ#$b1PYg#uBgc^wBzmDQqnujN6M~1~pLGeFBc}R^Q{<2@`WD zsg5CM?)sX*8YO$MG^q4B2fTiIXU?d0K+k}Jo+MWWRm4s8|P-L#M zG?dO$U!ec)#Bd$JSY&f)l{6B*o}W-HEz4;qT7=;fWCrD5aNt_}7HO>xpwc4$E;79G zO}laAl9%J%FN+vO-^LkPPYx@?yD7+UBW2xDC5v~OG2a{D9Jq%aB$;L=&!s*;Qd1RfiA!~Yr8cM^jO>$U;=dw{a}l8MMJl_gMh1=*+)xPNw=jd zk?Usgp`|;BZ~1A)wqbqv*aLL|c7}A*hE8JX;Y+v*52){0^|1E&Q@(_l!QJ^@=G6bI z#u~1ZbNA%qsb?(F`lk%LZwUWq;p+2$jtl=+-uka({a3PPrXd9vXY-9nj1|V(^5U1} z-QCTBQ;zxy%Mo9oQs=h!;28-e9wnJnyxif9suWWTC8({eEMO=u#^~1tsm3&#m%Ivt zZIuf7070Ss*!?B-Cvg9brrwFS*^rm|>c=%_*={V2djf>VQ4b%{tQ+8aklD7aEfAC0 z17`_CSF~D~dC&nlBU23us-I0A#x=*6X55s!+)CGwhk~{jKv-ov!f$b!-tqw{1~neZ zhcZnDNHN<8i>OBRDAlC-`9EZ}qJO`TWGtif9pTG6Zvx*Hqo}y@jA?Vvf5_VP4_W^q z>zQ)sLno>L};$9f&suJku{5gl+;U#8pOugzAl9x~+W}=FX zU`}vIUvTP9@WVDO1yZmmRd8&dMkeXh{i zMBSoT{ao6Rw3`q&B8vLF zZIDD;3nLkO?3-vKaEe50jU&!z!?0Y!k;MZ%IHHz!qOzT%5Rg?#`lIl6;Xf(FV?Kzp z@$Ya<7>K*;`cd_pdf^0BcVa$>#e}K&eQluN;Sou!_Enp+1|!93lE*zJMF^{sf)nDz ztK)o?;tQ@!eg;#^i^nL;$4#A@3+uU6?P$+ZvyblZnW=i2_ea}QT7F6nC@V-1$4dmz zX;w>$k_ei^A{XM0!ow`84Hv3+;#-rWC{ zV*8H)qFu%dWh&pKpvq^J8)WwQW+Brj#!&)CxBZ?A*OSe}&DX9B^g++s z>YPj~NS@=Eo%oEYKJy=ViY;f^f@V6iyVtXysg*T^md!Mmqc~~OH|f7eif41^3346# zspNTcKfC6!^CGD4<%Cyy81Lj>zs~c|PDY#8`=7#f(&g9Fq}wJ1`tI&| zr($5tK-7^O@MgybP~biOpS!LDH~G(JT^;s{3=9R)ut2VOphv%g-nVJpbbO<#e+r88 z(RT^&B`5?Xwb~W4wlSbSM5=KQSO^6jU4SlB?1CSOafo0EumcDQK5 zAEZY0hU$mV)}UR9J(wB!ofQJVv!hd6KhQL>s!buus5il!i!k3#zTN*mlRmqSNF%_? zrQLxppK7-qdBK&?y~8p%iM%PtN3X*TpTC`tKU&{iEup-yAwOZRDe1O7T{0yF703!p zYS}3Uyl%i#YlN;gO1O7^asw{meFF}5Ruy#|pSLN7QCv=HEDa>{nm0W)K;Hdm6YI3r zFb678SN)diap;Nf8wA1{nv7<;d78Yt@p^0?n&u?!HjV5XP>SHM=qflGGIrEk=K1PZ z?;|4nt5{6BeBJwc-73_S`ktqRuXsFtQbYX0`T~erpRXHU?8lS3#<>@mD(&~6*bKlS znYktLcHp zy9_NY$}H&jD*CUa^-c0>n8!D?!m|ar))L7V7NZmf`64Bw)1sbrsf{&5`H0}I%jezU z*ilT#s66A)cm4=#DOTg5Ug==)^qvZ`?)b9nM3*>x0v!xiK$}>+8`oX%Bu$$bDFT*A zM0~-WMD0s`9?rF^3C$*(=-4au(3u#B;X2v#LaF~7s-_O%B{nHg!bnA$qe2fV6#J(t zYhs@Je>p%UhucR*;y&$?Npik^MZ0O-w^KjS`;54@dgL2HTsQnjYGTTr*y} zX098Q{cf1J24*>j*Dy5C@=nd>Jj@Cc&b?ZUck*zKE12~JS4D5n>H=q!Xg>T>kCn-5b13qxJ(d5(Qh!Y|NkRVW>OeKg~TG-4>r0rc)AjF%FImJj1DOo=!c zOW^w*7&2Q2xY$u!xSmhS<7K1?-`q+#*nQ3){2WJ7p}8RlxUFg!!Yxj0g> zcm*}ylGZ<$&Q=nw6sI|6*ZK%7rI0q1Kb815Ii^Z=ua$JN9c! z7L;*1KsrD~puG^_BYtEioo;CuO8i4$ewTCe4l+My{$bxeNZA#ta0g?PN-P^1))N?H zm)jC@-Lh97t_shQO;7Ts9frFL);76HEKEX{%DO8z2dN;#X`CZJ9RBK$j6HKFgcyQXsH;RZyiH@J-x&_({ijA zV^f7`4z6{KEPd2KvK|w?{@Of4yII9bhLi^{E4exL`%(4nzNmIT#jNoDnnhL8qq^53 zmAd6h+|mTG`l(nyyt=)#OQ|&e-B%h?tIc?~9ZKypGgvj=a_>qhx%bF!(2@W9r{)l| zZBzJgL@?|Lp6le9z$a^ofz~EMdU3#i(WbdF@(kIs`IXz}S@827#$3U7)Z`06!tZuL zTA`*7oizt7kuqa1{#4RxR+ngwn93gD67S#c>{>@I=xKKyYF-2W z9D8P5&yi+QX}(eJJiE<4p+iH0-VHyP+W;YO9+#*9wHWn4Cv7OyW| zaW5Y9!LQv;ZyjQniA3+*4j}WMcgat8q#nyPmV28mV}};2m62Ce_0z$v*Ly9;+v=MP zBsaE?_wjIz+m5I7a;)P}(%r4+JH|XG!&ZkzOlR#Z>0M7z=>1m*>8p_0+laAr z%WI5>8v4=G@WWHA(K~3$WvTBS#3q zVR}B2u(BqCfX}0KaZ{ly7EMf(@VfkGUPk~XS*f46yuM^2hRF<(bydDhB0t%{!&^J5 z@7YZL#TU1jv;&d&k<8VqakL|W;yKvA8|`zHqG%*-Yu-BMDo5+GK92||Vj{^Ywwbt`pMz{qYO|>@a9r4Q&4}8CmHv1g;*5T8@ zD68cmZ##@F^Z65_t`Z!O;Q^G@ysw(-O<$8sjcGYD>H`u6zs^KLer$_OntR>ZTrGgF z7qz*j4`ho=uAT0YbG*_Xc;Br`E+kt;>E>h7(^$@h>8SXt{^hcA}=flHvzEtu#;Sl^K( z?LU9Vd0{R7by4c|ct;#2RF>NhA?$PS2|qh+4~_@FoXDrZ4|09vfB0j%6OA|Ck&%nX zVRas{e_(8zESa*QA$jAB-9rhHVilvzBAS%^(yeethMV?KIs88F;;4tIDi{7fJ0Xn! zy%fqRd)4UYOMQl)WhL)F{oovbJ;lIn@xiN}2gGQ>FYshPISLreWgnGbtBIo&M929( zA-SwyDMDYz*;cZn-u^;_Q#zhRKIYQ`VXWl29A0W-&GMz{QUfts|E;YR*P! z&kwd?e@-O>SV$bgxFcgN%~TUW3A&IgT&Qh=e2+Wrzd7u*tcN3mx8g}PGP}}>S(?P} zO`-+X@qR@7xNaoNnXLN)ZgwpZi;r~m+fQ)@bu0b_lIlWGJg80v`5HdKxkA#u$kQtS zJ^Uwat|HFeHUSWg<5#>s()4^Hnc?tuk#GLM-b-A6UX!E*!y1!v)G;tuA*TR=X&Evz zfh>6Ts(!cblpms#)3bHCRarD}|FgzB0(GQ%o!Y4qLPyZhEiYV)m+g#;ws0()r8Rlh zH*L;0QaC!4YFf7|Or+^1YT@3mIewJ1sY?@CX(vLgt(iC9p!8@m^OcL$zSitG-Z-wJ zmdRnndzMHs@waw`EfoK<`Di=ClXYn4#UK6~tGY5L+gXn(I z?lr|6br?Qf?1(U)G(;*KcK%+a?&3$0FZ4wC9Nwtr*kNlUr8jY(rlsZ#R;2Rt&!bos zk$=lLx$s$u*?kpWj+=tNM@7fkMYcOYQ%pQjZn7Y;w(Et*hKwN>FutaPj4kRuRdlgBEpJYZmBahk0;4pv7A=nAeA%!Yeh_etI;yjE-d@isjf&# zmW_v^8pS8nNj9hUa%!Jk?N1Ecv{|FWU7RmM#>iJ)3BI)?=U%Y-kvnTm4^3o^LyI(P=Bn?M8-D?*W9e8H z6H$!rs#01e<>|svC0PmN9h{EisAu2|ffmw*aZnlTCSucrY~O}4>- zv0h-)>P4|Z;-ur{g2+N6WZ6PdGDc_Bi2(zbref*Iu;t+z0e3>hnwj)4DP|V8DQGCm&FUbI%^k#Dz!9u2ZLW9SINv5xTg8%Q{$3t9KbcSqu0XdicykYh zB3)O40Y~PckcA~`F72FQ3msX|9c;_+8Zz#2lP;-1zXtW~wLjRU$Ldo&ElFhFN3;fam;pqycXAk5~Wk>Jni6n~Nwz z+p_nuh2p9Zik8B%>pN!5bu=30hAJ#M0j{t()ZH85v^Tqoc?z#^=r$Gtq-lrw=Nn8? zqhl~WWN24u@rD)5`QJ-IXZvdH;O8-Eb&Qd@%p>WU^#7 zwd_A$75K-i|9Dl+gC?~JRr#_@Qg`Q13jT1=2vst?LPD81)Ny)O=4bEmy-jVv!m{x{ zUj4_b|9JHuul|36SM`#gc{Q~m|J9rSomUHk3rz0*cV2DucKP3U)fK^&)(e+S@xO!> z#UDuY=Kon(9e6>*Dj;PC&~Rfwqp5G0Ygo&k$^=iO0cXkc9oM{K(f(rKAoN3hV?cG| z^QS>@r35%cq9mKv{)=)#3%RckP6ltXPqj{&rCMQON6Dcn0^=^jR~!(^cJUpG@pVIb zs$tnHP&sc`xpsS*4@wODu6TYS6#Tyf%KncY9UDgrja21&hHC%Wb#dL#+xS@jgskI*>hsGr{ZCMR+O>sLNM=H?TQFh6 zv$oRknM1D=>|g~`bqxTO6q&2P+L|HR5Z70f&0r0o4b6Yn)`G?&1{;eHkiXg*1bJ5L zCbQ)HJAL#4APhNU>}?YxS4oX}{qwMJC!bRU179LT$*UU(7!Ct>Fl6+bHE|#}a8g#z zK$_UZNS9DW#v#m`4Cz=Z*`t!#YKfvyx3Y`mkX?xJK40^yx)0*7*3Usvb;1xS6Q>7I zW2r)`#%&EkQ@rDT12VsJB1MZ6P4*K~dl7Y87+(X*LmT>Yjpt}C4XI_V%JIpmdsj?O z$=DtPGR~aIwOeaPAa;hNv-C}la zz3ScDFjjtpo{Ry|=j#lsu(U&7CQe_vKafv$b zVSVp|%ao9cUN!Vxp!T1eRjFGs@gZt*_l71~Bas8V(K9|4LYB$)kw%O8B z-Ah3LP%{~H01mvCN|-wxXllwVaUYDpk1K5&tPX3dlrlf)?myz_)I+ftdidat{FhXX zcH)skyR>$Ol%Rf`Y6F6-!}`35%C5tuy`5b2-m)meD^l;*H1fPuM~s|D3QIC2hJLp0 zq@cK_sPoGkhLk^7tx>@vbD}9X=9NheqqqEBuKz+?_HjPGzn_iamM)=h#^oPY1f+p4)Vd;T?JUVW-lG#{@K*vPKS~0`B9o_S-CG3# z({V(@_Y(cjq^jN=rI}W)*pQ*yJVUFlubftP*+0PytjbOSv^F{S6J>u`t^U?5{wAdM z>wVTaQLWv}L0Plfz3GA85=mc=x@fLB3(28KY2ucJxdiFXXOZ;>$H%7)YO1(RxhEa) z2LufMH?x}RuO#!UvDkHl36;$U75Z&=uRr_ zP@TBQ1+vdvu9_$gPI;evBeVW`A788r+pi?grHl0 zV8ign@Eq~d0sE2Xm%4>>dY(0NJri`>2EN^X0E0HUwWiL5T_g{Cj8AKJ-wp`9VJ}J~ zp0uFcMJ&o#AeK*z$RZ#fx9!?xFPUR~GlnC%3zgopW}3nRZoEv}1B~oB4f)9q6`$U8 zVIL`cfM>jsS$!+8)7JuC3W}3{+#hTKqFRc*DCO>}6h!P!rrGm65q;=wbH<1@s_I)@|TuHhr^^bTD9w$G_Mz2SLh z)nJ8-#Q zwpgc=Ic#ESv?9K9dOSJOx>whIcw_b`7yftyIq5!rm~Pc!EWPS_mlX{d%9h@+CB4Ra zn2iIR2Zd8}THPsw{Ge=MfSjJ@-F8iX`%x0weQ?0ku2(!hK)(@NUjJba)j z8r>OPcP?fmwRtj5P8*0J$FrnylCr<_&3Dr@iO+|s75w-i=)m*Ck$Uv~MkZvZ($VH` z_vuZ9&RJrmNHCNUNhcjuU!!r$_`CR`uFgNbYPG?)WNQP#x32IjRDyEDhHMt#2$9!` zmv5TpK6;yqmtHk!7NzM%jdgE0_wcR?eX@i`<`@`rS+*EMAzJb z2^|H%{l3r&+@cka2;61*lw`ktRR8%Mopk}T?M3rFCjW(XD19C(z&x}maK*0N>-JMs zM9cjS#pfRwRzek>1P-sqdx&gGg1R?_&`yOu61$IoJJ3%pryy|Kh!!Jt>WUs9Evx<_ zNlS=Q`F$sVUrv&anDoKMIYy9Rh3T0`?&H@&~x}0M9Yed$ABdb~IUTImYwv zFUZY*^+)Q5oXHCBOT~@TKiVsd@XIO4B2eDP*~{U)O2g=&PGtNb4a+uF=$7YU_#)3M z?O{Jbz|gGV^~-xQc#;Kxjx+V+tD^19>Cc);MKRT3g=rlJpJ^#6<>_7Kd6H08}nXDeZ8JH z1+}?u2!(nQYnXC=l%C)6^oNxxp@4aD4?DKo%}PpmI^K4r`%=wjmYYb5VN?MVEt&t< z;`w!)W^-1((D)HodGqYoGzt= z1E*gvd1vZkudXR;-s!8aYdm3a9>tgC^I3t}zutmiv)@`8IRa)YkeAG?GhNvLMnS# z*@qLS{VdAdiS$LPa6(b5d2ED_|CH=XX*IHNWcML_4P%Z)~O5^ z|En2VPfS1LSEKRYj~y`neDYgd#IzScohkB1s2{0v=7@Phmo)fJ@%yZCt;EJ-?-R>w zU360HPLe%_p!Ei_0VpnC&&i3F0DB*ni4zmKz<7{goHF*Ggdfxi-NBmTgYPQ(njmAA z&cZ@6Y+Mdd3Cy7xbvjW{Z(Z-^4bp0?Dejo5{pkh2py+pE!$p71c&5(=@W^ zZLkNZ93$hjCO4dZ-qN8o%Etuxy=9by(+R2RjwL8|8Zi99mx2UOB$m9UW>4mkct0~v z31iDgh*oWp6=8Fot}-OaxE<0vW6_*5C*%k(=+ls~ON5}(kj3|pC??pcE>@%5juZ|% zT-hcg^yROj+>8p{#inDZE?>io+E#gfrkn{G^RlY^bQfedK?ZOAz#k9}j9^QD;Xx#9 zKsOS3_A84(Smy_pv;2NDW)z4uPuM`M*axd5=o?Ij&*)0tb9gfID|m+y*e8O&2g;{B zB$YMF{uSM$P^d+@C+*-Ik1H~nvl6`V1K0>IK`M!4qcT>hAxJ6hu>;ZACHJ?uDuGfI zV+;Va^212VRba&uCWAdq!ZrBMf;}89LWf^J3;OF-t{h4No9VUBLsa-*%w%>*8LF?N zDD`CP=izf4C_ZhdvuLqNQD)S@Vvia^*c4i~h^NMOfo3{~qz7934<=rOoCO%aoPnH4v(Z z$lbKaR8E2XawW?a_y1z=Ex)2}AH8iK20m1f4tAw(I2}QY~o%k`IU!& zUw*u5f!wX)vDNX!JMp*f(*Fqg24AUTRxe=AE(~O`T0}mmRPQvCGvKn6UI_+XwKd-y zhuPkZJ&sgQ_mh#r36wTqxK;0F%(aUPVH$Qc+)qfiuFwuF`u@gNz)pYmIGQVom|ijg zAx5JR_atn?@_@JRLVP~{8oW+X=+>rlaA482Jv;h2vES6|ByCq%kk2=6u%(iX@0fK< zaoTM_ULH^X5v2LTU86Zs*CBnI-kdr1t!=z+Rql4!woq5xs9~;cGE{m;a#3w8ir4O& z9prO1oMI?zfVb#s!9GbAjv> z*#!xt*V`auDRGa*Ul#k9#Rd?}(N?3me8P_?)8THX`5mP$zJy0)JoRp6o%a>b`S_7V z&+A#d_#|c~5X9;rR`#xMOZbpbOrxjmZ! zt5v$au0M`|9M$08qEXgWh%Zx?Vi5s0cdm2NR%-dKULT7g!%yFiL8;D;l9;Gt*&Pp#4WhC5s<$P$2x0ap@Mop%V8<5RDQy z@S96st(53t?c`N%uFTZ7T@+ zZ(Y^>pF!3vdo)?*gcTPPJfa+|jIXZJ2_Ipc%Xft=cOEgvE zXRB*Y`ac3|gKKs^r|W~}JnSC@fDmqGJ{3H>0_>rJ#9qQOGZ4j8ew=g?SQ-*02*f$g zPpeP~r_YKuDoE1I4RsSwb|*~5g`~L?W?4|hY^!JVgwa6rQJl3MB3Z@^s@U<1@6ApH z6*!?x&yK>0ox)5eN7ODPq#*vMh7VDaM|sC{PS-rN;9xfKbn(`_w@KXh&+>iTb28q5 zsc~Y~1tS~llsoE()-AH71q*hV>Gp6-vi)U`D9|i>!>=Jmw-9GKDX?i*87d&WfLjpu ztT2eU>>(n1AM|U`r3`1bOyC#TYdJai+5(jd{^(i}){cy3?qPHjWP3493F{#IG8O%N zI%4WyltNggKx>WM*uvwd^fjQ#+-CGC)G{>A zYbw?rQS+q->Rb=C3DtWUY_Q0j*0Gs*;09u^1%ztpn=;i!A^>9Ub+JNL2{I{3EU{CY zbsxS2fwW*C_4hW?b>(kNDm98A7O*hOa3$`v>>glIA{13~j+%v`oYyKLmj*Z6+QR%& z7FZeB`z0s5g7T||Q|dc z8vHyOFq9hM*Iv-?a8{hEWuc~34ZkBHv-J9^OPPX3-UhH%d`Wxb%r=x^yGf5S%?aGB z>}r8Y)pULhRl%_k*r6w6jh{77C+3HKpNb_83lRPi?Nr#}n$$ujD@!F@wayvm^R$&- zHp@?jGz9E;>7M9!lUuJ<*WZu>ApE_3yM{(xbTW0DBLuoJC>u5?lTqZ=UE4DV zFD4YP=isJmI?IA1m?1^GCYcp>&7zA0`=;U1=iSjAYV~Ss%Vf^=#yZ68Ga;%fdzBv} zeqQ#f(zYI3w6KL#tKoETFUOHkFfxT?lt{L}Xl-r6vktQoc_ZBN)i4c@R6%psrd3wo z8)0*e)3?CemA2VWqn#o_ zj)n92snOzcpz>NUgE_XHQZ-wK2p) zY!I_wWy`)uG8stTfb0-$8D{MFvt}&`sN;AlGE!ArY;kAIWZlIQ4uL`j_Pa(~1V6lz z8xf}-({OB0+#?$a>?wQKLk#X7;2hh+Zl5aT1{IAt-}K2@=h3kwb9rjwcExM%vq-aP zWw`zllBJZ_DXqC4SCZ=tGw6lEU8=(nJ2+YlLWtGRHFUrsK@Y@Ehl}%k$}YLvyhfF_ z>u5<|?=PLn_i{uoY$a|DF&_6-0`-VDkTl_fOnd$;)|kvG+35898YAmx%yX#M+KmRn zk;PU*)SH%CJSAs0V~CjMfX;-E%m|*%TyFP)tpHh&AzSmdwB0P!vA!(cT$cz;n`+KZ z+Gsp0q!US<=RRgTo|Tg~J2wq#Yol(PW*Z*+XVZ0Re%=L;6c6uA)acYR`H0eff5-|S z;@c+`kgMZ$?&~Zv)xa@07a7<>PxtL_*eEVjKGm^==GVPLT94jPFYWGo6Mz@y>KhKQ zlc`qQY(OSoWS1-MNiG}8_GO}0D94`&b>i-V=#dSw#S^n4%aPjSuNPiCm(QyMuJmbC zh_FnZXfw zn>%$Pb0EPcd^?DB9!#@Pzq`F*{~=a)yJdJdheq81v_y$NCV;;vTe2%5vSb;t@W{Hn z+G|PPf7hvRSL=G@cmGDC{JYA=qCEM%2#dXtx}~08@0a0&gvhBxuX3Qxas@^LF5Yn0 zRoi%esb^82iU`*{P2?gHzTCKV`*wVt+}#gtswS)Z#GB|1co+ zP_%e5NN!5CL`EIiesd27bz#d6(|yWDy#beB*enRxN_q|B{z(%s z!KzSCI@@3JnfFBjtNYpf?XfZYrmO_fA7=}Sx7i!&j(ThqleYIREF02%cKj_8Ha z#7Z-0SL(1`WF9hja4|Jd@i3w-=;pvi`%(vRc_y<2)Ei6dxqk9~r@8UMUv@n9=U#l| zd2Z8TewvYC(Qu$<42)@kSiU>%=Q%ZErRMiU0Nx>H6MI8bm+y;mX{7CSHwXE??mU8e zC6!|}{qQ#P$z27<9XiW>C4uC)LPNl}6WOE_=K)3&%DcVaso`wVqD|E_1#5aXQy%G<6z@Ur%m1tEwobt8vS<mn zTyj!g>&9(*8(jZ0mDnpYUrifMUQ{^3<5y1f|rp z?afpVDn}BEL@gs7Yc(Z%Fg|qB6_`0$ZHe<7d)%|B`b=Xkl|+Bh6l<3c z;Y$#3Ij=E~->g6Mj6hZAAsWqi98aO?%ISj}{@B9-KC9?1=K?DgmWkP~ZrcIZ zqj?yEd^WtR$lJb;mpVPOXAfQATjYrmaT(1r@VUL*JV!-49j?@3yMD2*Imd^RY2hcM zwjywcZaszD9|PYmlXC{>IRxzBiHh?RUAw%I=RNo@yfOy9GwQmnjh94Uw;DXTcPU!t zr9n#{?&NV952bIIo3YNF$*H6VEI4BzE|KRun+<}1>l)La7Y~{z`z_7{U+%@2#^P8b+)wJ&g7Q^b9?(V6 zy?dQ>&u_-j6Gr&s;X8xFk5V7W2zK3R#-8BvO~6UK0@NCq`#%_Bw=4t`2GLQy`s!HQ zmi&A;kWF~yafZ{Ug=K{Ik7e2p#{@3+-Xl&W1PMXPNOP7`xQSZ!D_!OM4tC<)I z&xx=aA84|Ecc0EATb&XoPL+ss17tmK;ui@UKL$_>X1&DWD*2QUO`qwjNAa4esYs*D zclFiW1+yf5zBF-6I4eHg=WDSK65TNvzl<5wB$|(%Vq$(|M_}-12&22l#97CY-r%Yu zCh|EQU^05+R!D)KFEj5#FA=&g3$bOC1S8!I#uCm<+*%IUl%hM(*S(AC`i(i2UV#C6 z+;&h23-%CjyOjwqt<%7_lZv>REb6l%fnqzFr{1T1tK3bSa^Ia#K|aizw|=Tk8}qR# zP`^zM=%fPRWE9+5n9GOLEBS$P;@0Gi;yQzoP6rNQ9|Wc@nnMz3ZQrd zXPm|gg$e$8K3PIV&rfFS?zfii!|o!-@z0~T&&(jB1`A^Wq9XZ1B0H?4ubhOwtxYK% zoDXD29CInJZ__6`9*A z4~`eBLYEz_5A`i4N7$joL7Dm~G%y}KpK+LqoQ;DAVzya=tn7KtfmOMX#%73e4Q)e- zE%k=ZxDQ{t0V{{Ej|WFmj7$AKw{eZ(jB-D&3%mNSLVPV!&_^Oqg12!C3|^NY2O!wfpdhb zjYAxU+`5>lZRTildfK$r=GlZmznd_3avMVQ^P)hTZYOuTKb5(^yyif>jbrYk$LpWf z`15IWGo_`hw^af)M@s~G9w-%C2!_JO{n(wP4COX7$kryzYF-su-tT-Af=$)XT;v3& zSeiT*8tQkhuE@E!H2Oq2iJQq=k+yFop(ivmt;-92A#z|8cstvJd092wVDmxAyneR1 zh8NzUW8-9dJ9ly6+_>&}=%VJaaD3rXH7{r5{Umu|TY|s-*80c?thM;yCx6>-kwd># zk3}Mvs}3H5<8YbeMf9|*t|uiwqC(-zSa^S@T>nnF{+)9DTN(bV!Tv?Bf6;5OeM+gK zG+z7g`-ysVhm+u0m{JczU7E~a^g8|*z5Ye7f6?o|(co7CG4B`~NG0s>r?qEDtl$=hCDgK$jyZ;c^ zD-Te&hiNCFl^dbRM0f;m0*h+GuxS`D$d42n6;Y93-9u>06uVCrVJx8N^asZJ-z6C? zjwk*su%qPqv&H(>B>`0dMhB8fwG(2M0YN=Lo8YiX^_NkoMsVIwXC}!fk`8!@K&)~g z))27t8hE}Lp2G#gQwP0r`BNEg;rA|h1a4*mPhclveEPHC8ut&ORU1$ADv(Fiadn~= zT)WMCwte)+z~7KvpaF6p%UbqPphr20FYF&sd%u?4+T*wwtp9&H!uj!`E4ldCcTt@EevT zSm4Xd^fvaW`p=a0m z>#KPf2}uaG+MsDb@Z&mHa==PgZQDkzwO=l~YptnP9boobQFnF7Zc@b*bkOvtO+5^y zwR$7KRnw^#Qm~hs;H2BSfg9seA(t69+k6)99$0;PDD2T$eY$k=y*iXNsT9frMLgDM z-A!q*bR5u%NI{aoI(uPXHd)3)ohv*ddMz7>f*O*+4VyR>%exKc&RVgB)t3bg^D^cW1Z?wLG|^CB17|Ovrp9TPCsNMoX12y4rFr9s)&_Is}*g&}amKa{?$q zmLSKsecl9!pnl7`SHe`>VQqNgb<`Rm2NWOJt=h#q(+=C((^tIjv1-#p*k5_ThG${k zK*IuohUH!*6+n?UMSVMEeFwNhYa*tfq|M6 zFD0m3lGo~3k62)M_7I3j+e9!^w6yPK9LL4zXO{3Jr)l(LT7tW|Y5N$hUVhTd>Y|b^ z6b=@}^Q5Iu$}Ehx?`iYx%&m2K5efYz|=W z4_b2%KGGWe5{3}RE8J$KK+U&;Airv7$O!sX(qj0A1cxithtuqaUwM|VVI#E$-+<8W zhuPUW`?fkH{W|Tni5bG-jnTtU!4kLO;ogTMsCyC2wcQmYA!I?L4`lL|cvGcUN3odN zIKvxzwS7LPglvYo_!U)o?6Jz@_lRisWIO%I5HGNjYv7ktjgJ3N4&DH?RI&KQxwJfH zPBmRkQ>C1|v_hoeH9u?dH=#<(-K%uMN4T&dHUSnM^OmfZQ}*}>MUM(U>wd3!f1gh| z56ZHfgQmkdvkw@uIYRWBt)3+mPm4*+;I&Sdt!IwOW`7fz0R**{vJIpae}bfB%y0-FJrUQChZ8L7j!?#j`C!;0=6uWI^Fd-AE;Kv9Rd^DgGio zv_OeGe2E^*B6dEu!3#*96zL2&%=d6y4gRkg-?i49-Jw_KYggx^gE&H z;(^5nc4c~D*U@4bR~`R*A%p_K^w3;&N|?W(mp`%G5G8B|b�euwKLV>mj*F!hYX? z@PIUI2HM|O$p$xS9Q&R+ISn8*BM7p#(SO&gk9oI&oZJgA(S1{0H1X~eP~Cl~%^E%@ zvi^`wG7+}+?S7WcQ_~qVFYC3%-LQ(v3Wp;%H5(~>blLrM=LnAHRmTTIkz!!>O-1;c zj$AQ@%%XtYQexw1i2N>w{0gHEI2t(`YBAQet6X8zxT3lH8oHo$w>3r`^=5mxνx zvY1I^{4Mod;AAo@xy%Wd?QzFn2WLJHuAA0cmb0yX zDIMH?|7A6N?x?U?+x;Lm=f|GzmWF~|seA!UF6dG6R7n0g2IbH%`V}1NV^!Gslf`qZ z!6v=ZfmpK3C!RZT1KT1g2USVSddUM^kqggWUt|dGl?|K@mF%^P?8lYDz8%8v@vr*4 zu5R#`B2pIu79lz>7P%J>3baNdevgbJcaz*N$d~ur0M~t?H=#{tD*gEc9NW)Lw|Cxe z;=j7}*S>k}acli^OuGMiYiqYDZPy$rax>sLw`zF@_&F|{-({aReiGtaR;v4}_*htX z^>^V_pY^<9gGLSBy9GUfRL|Hta=laabjq;Z10CeuwO ztC=Kt({^h?rYxe3veOU~1eoy>SVtrY2 zFz0IPex78AmnYvq@osOuT#Lh$KiS1@vElrnME)M;RMTY1p3I!gec7DD_DaEK zxNd4=NU|g`)$;~$eGauel-Fgy2ySjO3Ojs{jQCWFw%%;?q-ApA^f3MIh()0Z?M1f2 zhub&sx2;IRS3{-ubX2yl9u5nYwP4H}5r|E57ZHAXtmpVnf|Toyu$6+|Fu!fc#4oyw zD4ONC9y1W|@f`OFSexNi{0_X?tz2fN%9#`d4xK ziqS8^*KtgP=xxMYUqABf7b*4eQjd*_OQzU+vy}>SwGUvAZoQpkrLUm|12&7A3G+aD-U*{{dK^tnrD~En zi;i>E8S}2Z~2AV49WA* zu@Au+iLH{JNNi2S z`}S+@QUyk6DMA->s%&16H<8=6tnbbKsL(^ddrAEwa(b|j5lidfGxhJ}?dGSFBx7Su z6I!Q!9jVa#0R^>Wqc7i~CHoy5T~fB=B7>AteHfl8xr1(ef;uySzEm#DPGp{Yvw+`` z->S&RPAw)POOMBTC2z3R8`C6z-|=J(F1QZiyl4jKlwU5~?=Q#0uF4Ld{=Q$-dZDvV z;PT>PJW{4DR<9YkHQ98lQ7jg-nuf%@6g|QyGuw*6zFg{L#y5QHiC;f?#5!51B4;Vm zNb&NNIG-F}x6qdfoecZ4YBNy<#IIG5wp#y9bN@KRpTRE?Yn-voJU9xlc@y`T&A*jK zbI^^2+c3l=?>((5k>&+xE8T7n^;Up?7?V5s|aZ02+$I9RMnbG*b z);mE8{7@3D)!7;K3clP@CTSTE#yxhYSi|>NsB0hj)4QrM&6kP z)#j>7z)9J4`aql}UBOD=606E@_35VNj8QN|+jMgVXV8{Y!F|M$QKZiNgT(%5THIKk z5Pq+$Dl#_tLHrV_km=y#kBYt=c&36Ruy1kNGC^M)^#`yWWO;PBgQDoRg^K;#!xWze z(atYPeY5y>mr|9(q_YJV#+8l==nIHiqnDgsk;vezvJ%JGq*k#|_F{K>3t-(5Q43P; zXX445YTy2rF*8<38Urz^v`}Vo9|huK`e>kBomV?GXfQ>2vlJ6;;7s*M-IK!a@rfT2 zfyn;2TBkVI{Y`C*-4WQqlM>(RS?@|4C#;u?MkY#a6!aCkMmo0g}!|<*k zIku)Z=k#FU!fA*A<(3dxja>(vGx@rRMexaVpU6E0k(i?S6Nj0hVBQzG@pcmK};1P_To%ld1mwhUnnTM1C$$rb>gQl8okX9i~&Bk%*Q4DQGHj&#BnXb61aR zb_5aNT$y!mWv&LEnIv^Cj}4d8u@#z1 z8hca~_Z}zit3do7L+~@K$fbmc%;%n+Nx`Ts*2mj#nz~}}-X-FmB@8SF9dCXG(M8%Z z*-g6IS!=jBxDh(_#LxUnWXVmm_%GUu!j!(!Nz|YJ%YKC>{KtOH^TT=z!g~k8`a#Uu z1@(V%x-VZ)=Kic?UkMqH;DxXc8MWsodN^p#mDc(^Sh z88aCrz_x1m4hD+H_7IXyg-av^Rt0~)`Qr~N$LQgQiH zzwiT(G>lARzid^%7Il?T&G!qabN$sLHD#`goQ`wrO8diH1JWKa1Ahw$+%s`M!nMTs z68*R}UAHo=^C_^=I8n0JQ-U+&6~vBnMGv4ZudX57c`A2eocSo~&BupX&aH7RtMUKQ zWApy#v4T5U9#RY=>zSN4nL(Uc+?wvjfpK^(*&(Z$L%i}#%+J`}12}TxK5J&9pe%1l z06%WF9!P;SCN*TsLlJ7QA_gexNTSJ(49X8d{6e#z30B1pH9_sTO6JbF( zp4{J$@{o(PdDtKF@GX4J1b?_fQrscIepC5;8M#1=s3fy6-(CQoVSbRNzB5IE=Z-f9 zr~O0zWRz_z?+^SJrs{Uvr?n6USb&l#OjFJCa(lh=VL&)e;iD06R1GqO&ZJKF zhK-dcn`n3gCNxkhx?!}wC#3mHngLR{zB2~-o+>HseuXdiOLu#m4ndA=`9>IEq6=8A zjeF5DL_Tu46ceZHGQY$$uMD@2{z5SFTi&O~;HUUn1!@*WY<@+wwG_|5Pgj|cWs#T_ zlq|~W7t!T$X@9_K>mTFQ=0=p8l8Opa?$GKhn4QrhQ6)p~m!iQfh;m&=D@RW%$B6!b zReWIjO|ZX=WjV(lCbQAYeW2?}l;erLw>m zf%OdtyLylMVj(ppZukISN=48g`!!Xjz7bMC1gy~nxp#?y5qI?+kD{QK1XfvbfVY|P1n_YsVaG!U^ zRGqjskR31aWH%w8u8r=h`U%Q-ooes6Y{z@n(PHX0#Sfp;2-dgMH9itg?gf7`1Qfd|b>43_IyrP9CD*!e%t$6eWsL>B)RKLYc~f6b^ZcCc zJ`xHu3yuiJiwU!eh@$W2dY%?=mltJH5n|<-*w+}*_h;7i>ed{4CK(XZD+%r-uxcs8 zY(+V+)pPVEbFuicgb83@C?0*&9bMgCd_7eQ?5-xMFP5J*=Rlf40T3@r!KmUMP-2?l zQy>4HBBw|8=}=hfNKu@sW`ES2dj>dbMz;6OOdsD&3q9_@7$Cv8#Y1y1?~u7e0uD}R zC@`8y{o}ei4W?7p#sw(5t84~g6j=Cuye?GCE5wnrYr&$K^91}A+HR=maQz1Q|! z>(Wgx=+ROoMq$@%cgXi@4!nM(%6tg>Cl}bj$(^5!4P@b;iv%V{tnS{v zq=s|P7t-PnLo~vRu0wHRMp=qSjEjmj#zqGP8&Iv`Syu8uxH7E_=@*pQ8kn#e))=YH z6ASP82pIn;#HA(IV<+2{O)}vnHokQ?kvf+`6+3}dHxaXpxGt;$V4-dY^p-iLVSlNK z>*{#n-nTP8DegH$X;JAjKeeh-UAs3~T{Q_%nnLUMW4W%5Y?$^dp3+H*9|pKbTGldJ zy!?u*B?QaN6B*?Ss};kX#fzCah0Tb$50r@H=mgJlFwQQB%?cXN;!Vtil_x&8%!L%T zfix2`uq7w>^dol?laWG0=~P1(bGm-+i4Oh4xYioO`>@Nqf zYjWL}on6**a0JVuw9Y8QzWR;n;(6D^Gl#i4i}2Hi#YmMAnEU8~_!8Q{k0YJ$FV$-I zXO|M0#(=?Na2ROnW^7MmJ{r(_Z`Onn+a3-wkq&F%67iu(ZCKomK+*V@G>|=^6{dm3 zvgL{wl&k1H4Fe-9y89_A$rbrU)#;v7E_u-y+OF?dt5jtI7=&FzQwUKz(Rf7`gncyE zVbi=dYsy#S`=;x5Q|B%pTwc z32V;Syq`mQQ*N3Hv;~B3Y!_`fCT+SQ=mQSAya*WFpKnEvt$p?^NRX;11 z{Uk-hnB9144lWfoL3@W+ZkPJfmE3egDp|%sak}tcqut(s%iim*(b1Is>-$|<>b+t4 z#aG3P+sw<7DSOQpOFlGI%+Gg@-|W%omWt@YyKR>uN$yzXbNwmFH(0C zOYdgebA_n;+U9WeXyL}iGxRaXF($a%qT!12;PT}Cc%SHf|NVjK&r8}TQ(*(^JcTzW zk;l(yPfps8S!_>=BlJ0cBgJ(6(ZuwdQGP2H@dvZ7%V>TN$w;lP2n|05KYFB%9`$Xt zGwh+T7dm;xvQ!NEr&M(E@)hsU2mFobL&OY{KrWt%D)OgB@+s_Yndp#;S6}1!t#RXn z&N4>)Wl02i%p4hpW9fF+jh>H1OKod z=?{W#YS!!Dwp!J37D_h0UqxDbeA|<(_&&_r33_H=&?|hdD{(h*G~eeSG>M$wATJ?=(OI+{(SDTC{yLce+VbHDR>__PgMOxK!kr>IMKaoVm zUuW>@n4gts-|nmw*Q1_=TcID|D7k>X0TJP@jiC&gCYvbtyWBIJT(YKxE7!aBbC2Io zgwORkZPR0KW;s5f%{UAST)m2oEZiCTh$;-9)(iI3fv3%l2pq|L3y(?Ud%?!y+V>Z6Tj;U-|t&qewh^*Tn#&Q)nU1 z+AHg!771Y&U^cbl?7kERl}g=c$`bc74RW*9a$jpH_3{?ZopiEbbR!kfxE7WB5rTO_ zBQUzOl@J7f3f0-b+>-d|SFxuZ+ronWV91B+^s+y^_;Dx54kUN_O&h4{rudK7?oir^A&q;Ln$N<);f7ZFGtV!^*zIhcy z!=$cuPQTiGa>e;&;pb89gz}tbdd_(V9S{6EBaAm!)vb6D=j#3(x_o7ogqhEW-0s_5 ztBt5>+>9QwP81u_ee)t+^wb&PF${Wwtj&n>WO2(6G%d-eO|V0vK6+_Tf1n=oIsRmN zY(jj#8ir1e`kPF}b%AZ4^of|dD5~6nHy zT6^cxX_t0qZ-2TlexWZ=3NqPqom8-%!dGa#sR-q`b2Y2q1UcWJI#*`SfiI4oG;1< zTZ?sS%QK4JkBDKmDsb@ZP2dM##Zzyv{(7$+Rvz<4Jd*XDk-!`_F_{uI3$idcbbI+E z6T6-1V|nP2lKOKao_eB+VQm7Xsa=Mx#*FIYkglFI)ZK>nuMLT~f55Y-jwL07=ii09 zWlz%>skdX0Vn%HlJ;&V4uNUlK$xV9$236$Q{ zAdU$^r+5E44eW|1cD=3CV$P`Qm8Qs!2kfn}m?DW~i2G0Ys;g3;+W~n*A3jAJkued| zo|crDvHLW;n#R==DD^bpNdT-$abwP<;WP6|;yNDD6*qs0b;M{~E6C(6&%^#h=~3Wu z6$6i+PrnmESxQaOl7No6%O zc97506t-LQ0-vjokmo$#n6!hH!p#R{7@Txua=`LzE?;9Q@?ykD^4~SVx+R@S(o8Wd zL7fz;U`2=GPF5EA(HYgchnvNYpSQ6O1(5}{8{_ec9ffx^6!iu6)g^2qjPD#Ylsg}u z=leij>W7C+wGx{}WW-q+73@@WTTGPsWm@UK$6jjT|`~Y$YygT51QpM_E7iZ)tabnGIy#O@ z_dZEGapT)x-{z)>o}3#A-Ie((2rnSXDajn!N`MM3q((Hhj2$?sZ%w7i`=8YGyY|J| z#ds7MQm|Z`e=0GJ{&uo}&F9wh0eNhYA*(P;KLCzJ*aw{(>c5+O?pCs%YimonK_Ud~ z;SD$i`Z7w#d@PZ-TJhk3L`t;CT~XL6ATsf zSS{0sZYBy<&*PtHcNU$vPt;1(l=x9weXbXrMqD^lT3ef&1yUde6D~>%_pS6LwZ`Jl zd8#Yf4s2s@XXa~o{rZa!e&|CfXV;ziV08`q;&MU@XA>8-hsB33X_Sk*CcN-l)UE>7 z+~S?8b0Y@3tq0lMESBC?(v=54*QqG{^hWLIqY8!`coddkHNCgL(NCk$dqk|3rqTa{o_c_~e<%PEuqC zp-Bi@l3+o1J7H1?T5?DMWAvvq0bqqg{)D;%bydFT@IR5^_%|^#d4qf(5_YmvAO(Y$ z1*z_YDHISYK1c+~AGc_B+r_6_V40j!@|IHPo1Bd9B8laq9nH5=hGi?kWn|c9%gp5h zsLt?q9{zU9a1S3N0x3mR5Ce$G{(TzVu$-FpFn>cOMY1+kedqo;oI@c&S+{PEw^FlD6__@C6U41>H@4HKeL)y@hfzMfPk z+w2ODo@SVJGon(%mj9I+wv%yY5KO3rLQ(Us_AF_Y-8jkfT&o2@I=@3|DK|NVpz0+#FsT;flVIRy~7r+9S^n+UnWG5qWVr(BL zUwvsvl>xhr!L2Dms-;VrNa28*h9z*rdTq&4A$)Q+^2>EGQ9g7IT#xHPir8*Mchf4Q ztT}drqRIN_kv6;)V&v4Qyhp^S$uw<;RwQ!OXkRsYVKw+dn>TJ@E^2;-lr3I)H6l0` zAwrBa+OAdgzEJ6g_Uh3ueu0*}Or z*>I+fR74>xz#~DEv>oqFV^~nVAx@idaLYG%+r=jf*`lwm=74sO_Nd$1b;i*C4oD9R zsOS>hQ1{M^wWaf2r=LLBZ;GOOwICW-p+$N7Mq;hf>aJJKt6_pq^ zzxT^oC99vJY+6N>M^ODq4TorZ+Rb(I021_B2wTz!K%F?kU#O^ z!a4dondUR|4#Rqwz*O&7LxjRfZ;wgW3I?JY5VMcdSCxej=|TL~>f1Z-R%VJP0cFO( zvou*Eo>4Fo?PQh&#(A>*I)BzLDCj9~E_~6WPsXe;S=5Jq(b|s(o$8}kp=>oH9x&h^ zSW+ICj;+(_`?~x*f5R$KPB!0(3G|1?(jyL^b`Oy$UeA5YEtJ8TALL)pO0*2VXCBI7 z>F_ddzbcAPA4x=wzy4W%B^gQ(9^%jJ!iOh?-5@*PGz`5CD$+MBqI^11EI9hTFDzHM zfsyTxBby8PH9JGb*{{OQ2DI-R5mf7DNg)*K9|mWSh>Ls>D`s_jG%C)_$x~w0t&}rs+G?BU2 z?sbf4?5hCqb)Pdw4+&KJPo{iEwCD=gXbAQBQ9HD-Rx=1qhswE;HdJ;O>H1oa;fYL} z)xTVJn@*Yc|B5qUT{w_2nQ`NjS(fAetzbrT{@G8&41zn0b!BE5cb1en!$@bg_TIjx z_!X@96WlXx;BL~br&~(aXq+o|;8zYVQql{N5>g=3E^g7;FJ~;8oI~gtdTHkQh+#e! zT-PWQG$+|UL`}YC&3>;cvcErP%TUzkS^x5~Yp_>Tq&Po&NB(x-{%6tXjP)WKyGe~u z61#QXoYdlYE${)7{6+|_*9p9~&X>n8D!N=u+@{gUX(F`zlmu^VmGF z4g1i2);{5zCFhdQ742H@#&~|&p_pM8 z0Ci*+4vd3nv2A1cHJhXZ#dIg@bh%auQNu!-^(5o`A2^$GFwH-(V69V*q^Qp>8OxA` zgJ{$t@~g5UvGoIf8Slp;nRmOfsVLY}Z$<2t@3)2TcNDG5Cp?$hy_Ok0_n1@mQoZ&I zd-w1i^GH%haA=weG^>~2J4_7hXta;T(s03WR!po*=RyJ9&XC(ZR%bf=pN20*>2IN zovB6o3YQ++X@{JLFW~p0dRbAL^UpS;JI70SgdFBrqhh-Gn zU4Krwi*`J_J9m0<+C;GXY(8u~Wy2YM!1cZtec>X^wmag*a0JK*Agty;xTG%#Y7koT z1MK`i?A=vYoNe2#X&?cDlK{aj1h)_@c!ImT26uONx8UxDyApbR+T?*?3IG;V(p#6-7R5{h>uszs}a6`;SFhHMZ@Db%+CdPL@Y>>?e z+%bLz7@@=4T{{L#V8Cr7e{wOfCj zZS>i`40iBxI~?-|5D-fyFna+jP+p$NdflD6tb z0nz{L+W905X8MI7FVTY@?D+HB;cmHY?=lVVu@E|Jrh+I&TH90`kqjV?EKHFh_Y)ER zsXZAPsgZqu!S@QV=!Yy`meCJ|K@O7i(McZjaKhIU$4}`ZUZ6~+(4G;S5GFeta8Pk8olWj5qYjQrGuvFk%r_np&?L8nNQ0WL zZ}jZKcmIKgKGh**n}uhXNU-YiBsR8kn4)vTqDV0CR?$L?ST)zANrhuJ=C;TsOz zouYnwa7J_8 zR_sQ~LZByylk|j^j8j|o-1kARLtMy{u7L9U-_0v$_g_goBWa}g7C9;D=D0{IkteLH zThzJRw9e%hM5pWemF`bl2-fOKoXEAfs0`Ge!L968-MR4WcVoy9_5g*7#E;H5MY#&{ zPRH?02k&+>0J}d_yiB`4-(A{-`0;vKhAcC>ZB|(h)T>Sgimo2blvg=8w_H{w{fg^j zlyq9SMqj%Qw#u=;T6(MO4O*v=(-~+s#?R*byo-tF2F0SF^!k{~!Mbt5ce_*`jio^0=TZpZCe5G8((rNLu?*rNwY zDdi~Oi8j^B4_l4FrB5urZ(Q88(++$$f@VnbHC=vKmlZod#G#~be#@GHzk(c7D87HC zREkVADjF?xxP)>L!AEu$85{U6jm(C{n}B-`w?IYYgN3|f*%tYut{d+g5^(gil3~eW zNe55oC$8fB9aLfiG5TyqA$O-Gl8F-W!k5eFng>1NP>$|8X9VASM}1Ou4e_@+X8|Fn z(i>mydB;>f2QIYkBGn^~DmBI>m=H}-!&8kCYsv@tSyGbna5gDa#Ye;%8Pym-N=cNa zgOX*~^wuRuBm;5k$>z!n1+}?kbXw~?pQTbxuTp!ZJFi$Lg-xEzxW+}`uG2;;vY3EK z{EEx5>3gfjbnandyIhb3c4ljznIt6v-@DHZ1?!J1ze64rVvr}T zFoi+PtYy=J?<#aPGV|n^379guMT&VTOYuq#8Y#A=t@W{K1Pm2tON4;{amr$`9J9Hi zI=fO;KC^d7Y0Bj$W)-y#yRvG?auv5$@zy}oigAy@hF+C2W|b4WeFBJDqk&y@QN@WS zm+LIB=tqqkU!u@}`<&yrOtNvX71NUkW1lETMP5|t>OHrTwytWO*Pf-ZfaiiM9rT|+ zQW?JGnVr)N&j5grbrv3Ybaa(sYO)wK#4IZp%2bI~o$1G(Oudq< zZ#;COHM4J94T1aB*b;3mLHY(KsuA0xvXIHGU_tBX(WO1PP1BXURqnL0shykh!fCHu z=hwJQ$A@Sem(s%3Q)Kq)EoV9S;(<95&H3g>%AW@JC+pF~7&=Jn$2Pdnx^IM3dJ(FU z1F?E%;q=^^vf(fN*XX{hgkZ_}vNH!NN$X>Ts(bi5S%k|yt3rClU3)nOYjiY_427w% z1~_$D`2Bfzi8xC-U(c=WBra&YtzR7Arm8cFbywV=b@x4tyh^YnGGbzO8|@U*pHG%< z`4Fi#AZznEMvhDCqY$Uf2qUZC+tqD0SA1rxq7udt&Ubs>xZvMe^~vC8)BON!|CDlq z%p=r8)^d%>Ar*#iw0L?v%mkzM=uTOV?~ZuomRnOAey!XJ!|fb0eM|2F0XL z1-Xo47)tjsmG#f%`ZyKot$oiOZ=Dxv0hX{-ZhyaPSkQgB!45?`5!_E-1ex4a(VtnF zfF73ebZ;6YqOC2}v=*AzIe@{a*49#Oi)%3)&0v{xM+0B2#Z?#A#uaaC`xLD;@oSEb zzK#p$KCO+Hs=M}UzMoEAJe#MY&0R<~wmusxn`pjYy2+U?f=IQu;EV4E@U!hBUA?wB zD({DOqR*ofv^ViM-G?bV9YP(ocYoWskFt|s!jM0_hQWX?xib7&b7g>)g#EktT4sFE z*g@!Ox!&cSVZx{FYF9m6Pj}J!{MmkX@bBX5-^EvqZi-b=>W5ops}-Fch_bnygzKQ; z-^JIzi?1*=oN}MvJNR-+08mB>_<50?44$IQUOkn9`4Ad}Uwc!Lr-V(W(EJJzGcWnT zd^{CypcIQOLOUYPT@dw-EQS=YiT4|EIxNg7?{?}#%SR7t=c2?Mr_+5Qf7a@Ji^QlO zD`ePlbOQ;iznr<*(b>vDsRgoCy0^{d`rl3)g^0J!*KAi({88f^T5_u~F>1i;k&|iuDE3tni_OHbL zU3|5vq|$lIMUAx-%3%_Ri$sZ!ACF!dgUR(*V*lS*d~H?vb4gg?i1+SSE|y0Q^pda$ z*MB7Tq#+kMA{R|F&kHW^xg`-wwI2yWpj7+2B`@qlE{kNY8W$gFdMmq%x{um-%Wj>tFVHag-iN?f8*8PeSnI49eEEJ#p3{y zqC%^dbZFyh@%T;~YOvt|eW<}601y?5OeGD>HN($YQlU!P3tfC&JyZ@_`l>aj9)5)l zJxLrBkxm#WEQeee69MDlf%!wzk@$6bD1He8=bz!$Yzv`qy7b6p?C8gmVZ2f$_EJRo z(i8%iwDfuyvFtN7!JiN|3{cWrl2}&O@@Q0k0HMKUX z|4->E`6%#b+Z9;ssac0?uXBU|v7n>Zg-*PB?bKqv`g3HMf`^egl9;-@nidrAGE}QB zUVq(ED>YXugU8ANlHkgq6SMgGjphc67#&?idr7C?j?CYE%+~&R_ zZ+odM7ft>M&&rUMBts28Z%{G#pgD-X+1jb4W-;2*?Nf?n^muDaG=27~Ul}=`$+${Q zj;6jQgl*9K!&O?G8rc!BTcQ?t(grI<3UY5tb&rv3 zsh%%u>!I%eKyW(7L9Lwz?dUumBc82TTA#r5>16I&=}!%NrR`H07AdcqIYHF6ghc0& zoe7Sew>)N505fgzc3+OJuP2sQ8Xf+e!743XKCV_H`*mht8nMkAcS}E@OE=nSbqi}T zd7yaegKT<^@)T)%Hbi?QEPMDK9o|MITG9I(`Rf-wb%NhyAxX6)6Sf#Ubo+u*azV`} zuWNeS{G(|4dc^vI4zo>5jk*7{ux2Uc9qdHiz8<#Vx$?v9_Qm@St&rxy%Zv^U2VVGr zMybxs@PTKP_K38B!j(Tmugqf}-=Et@#RtTdd_))I)VO^TwA!b%GBC6{+)g{x*oWp) z1|gGDO&kqF3-rV7_=BBXCRWJienhRb2pNQ#Y#@9I9QXJ$^N|L_PFU?M5^3V|j6f*8 z=B-kuXIfpN)E8L|+&r1Djimo9x5%j&^(}6(lO8^IZbe77ZhXd;mB_Qd%EvwSph9gV z9xEU}wKf{V?5N1^(oXDYPx{(UM9C|Q6EzmLiVYg;CWad`r5Q`K%98j4t*P_oDWbfJ z@2CHnc%2)$sPAPx#oYHw-iPkK7K|f;#zVDQ^0)h-`nt2K@LVAU>plMErT{iP-r#;3paRJjA&#V`OjftX`NZY zj->Z1WD;m%J_K`j7Q`?Gj)}UX?a{5hMs!wt&jzHV4Ot*jg>U|)*ZI}y7n8iDVYT+Q z7sT}^gBf7NOqR#sM9SDlw6zVL3WNQ1LdWSKV)az5j8wA!Hc-HHQ zNSk`eB2^>nq;Bo!C7U;j{bt00(B`9319lQbyL^@nD>A zV%*_}*nW*^;5=V6Qr~5b0mev!sU@kVZJ3jz zed{`QM<)$&FRahZG5GLR;%p(o5u`)nwawwRPEV8WdJFo2d(TN_RR)p|n3kubrNSK4ZNZRVQfU$0#qy{yy6j_gfjyLk8B9><#K<-lI#B=kA9m zl<0&a?T+iZhv$#`!48X&jB>=ZqrW}f`p+kDpn+>|T_4do%DZg8j(E{d*JGX<SKZy@a;zX6`ItsLMAKdpQP^m;>PD%5x7CR5H z#yZ|c@3Sx;>;Nt6EBn{|ue(OCc;rsBWt!2Ee{r0!S6XWk$Q|DDOFCz^oG_g#N!~#1 zxr0%xhwsKY?X1#l#a`obRtxZJodXSgCQNlZEOV<$diZ7RI!SgsVg2Ue`6d@~J5_d+ z-gC+ry=m;#g~L4KyMEm8Wrk^Ju!8!Y*ZZa@{3jpji9p_ImCsDF?R75fgU;!iru2jB z?~|jdyR_KB!?k-E=`$Le3w5-|*!`<~-{E-sv(xN|Ws(aEvD<3q2e0QV%~%)Rtoyx~ zfJ6TMY2*_`i91uy$8m_<(|zZyWc1Trr>C9mPp`H8j~YNTy@yWa#dk~KaM_<&vCqOW zi)=Z&DycWnd0=eV%cz%mS5wFvs^31Z_X5#69|eA2FfUxjLZD}dH@p2|QQ^L(%5MpV zAfX{(LeCBhN4!GP?oYk^@Ga&&r^{|w?N)Cn1x_+sIHvJv5|vhr*U~4dzO;`RMX%+r zcV&_hzBwd@u~N&W2dQu}Rr_vv zwb=ZW{l5()Q)b-K2p3AGaYT=DR4d2X?isw4vwu>n4(xd^ddkVN+-rr{Y+UiBN+KMd zL9dg+-gc-X!`A~sW#&@5Jmo0$il6ZdyZ#7T8oD%HEBjGg5{u#d^IId+HMwsXiNqRT z&bEq737KOan;jP5?gq2lwVltxn(W1%&$L}#N;-K(UTyXP4 zko>n_Uw9|`UX!B638UjzjDJQfc#;=JQUX->KC@*iF#rDAKQ(|ZGg~YCUhG++8_Pey zejpEZ=dvBiHlbGFCDX}@nJiYja)>Aa)nSOi8&Jo-_=GVfyqnq?>PK=vb0(#a`VBGWI zQyKjcJ5&6Erbb-_qE}Q>*9R(88Y?3(y)Cxr;8iZa3vmLKH*(agCMFybkW=NTth1Z6 zlb#@q548!bvKqTS<~|F2g$B3xv;cPqvT0VUCZ@rFm46Y{b!d zFQvE@Nt;XhaeC!A_jz`YtoVLIq|?&LWLa=Bd9A|i!x_SLNa}DmBe9)b)C&6Qa5m|M zXHO9tDcg2Twso^g6Mb>J#Q@_4uV@D8v)A#U*utY)3x(S7xnwzlx27(>9d&o;FY3-;G@2#`+4KYTycZxA9kQ80}1DuK#W~{X#KS>CJnzbPb8% zWPoqQpvEmvUB}~O_?#8V^Uj`Z{vBQ!AIpzGxDhgAGPjCF89P;+{(1QN0q&n`%!*g2z#Is+8IrweoHZILLk>CCDV`S-(1eRLXifjB5Nua3gPEv@~Sw&%{g-5k{-~ z>4z$1@Rqbr7~WtvTn*LW{IjSC&DB|$d+LFm{J zKShKct-)&|Z-A-TW;DRdv0(!PrF4+)%>ILY;v6YuNn2KrOdJ>YN36(sG2ZOU7)FPW zMim2%5DjJz+rW=_lnbI?k&WVvGj&K1v4_76UNLu2te*%YHYqPVSSDob!stRuB}HAX zQe1h6na{#NipLJFooxGbtVrqlKJSw40hDy$L(cZvDQ5^4fFrMkQGKs2apB`GM*$Ly z>AXYSb>!MZg@m-@HgZ-bg9-l%?YQePb9OPqckUsLiHo<_*(tv!`CmoIxkV^sN3MRy z@?T=mC}YjJ<5in5piwYVtjXVDlfX3&o77F7RmOiY`^Yyug`WMX5KbmcTm!i`W&1jp zU8Iz{Wkd*nKT+F=?NEDNT_!)>zQja&N5mTMd+%r~!`esn3{{o-F=b0*>(JKm<)qqT zN}cap$QlpQw>;@U26He$Q2@%?g0c0C`tk!rWDlj)z0DcZY*M+V;9 zs|PksVb?cR=GU(`@YB^okKsRf-$<>|J1B&F!d|pF%h;GpZtPiN{VC0E&Rt!!&;jT3 z$&a;NG(eUu6lcE1WWYloA#$`bILz^(7@i}EtPtC+3&HZFTl>=91MyDOSWLXjt0fgYey2X1XI0_4TVB4Wr|Ij zZVvmuN=YltNu@mI0iD1Kpw+SZ-Q#5Ed40Jn^zX3cLQGRzMcHsP8t67|1DsRr%USeZf|FX z{e!Uom+uV(2KEh+xcqm&KzJ;;FL+<|zlES92}YS=k`DyGre5Q!)Xq3j~p<=O2!e@3m z96FT@r6kb-3zZXiRcz z{hPY}1=hd7`WIOL0_$I3{R^xb{`vnbwGPv&$GdU-&zaW$2Z0rYWW58(vA)TgACfPJUJEWQ_`Or`mB35zF=bQ*AofqR>P}k#ty<;M ziNE|?zN!}r_7$qr(FxJ<+8}!yr2*W`aRNu8pqFVSkkcvunQ7&Ypo0YB!iadlgmD)` z$qv=NB;2Dga>V{m(hAkmp<*bidX$Ml`IVM{E5-vRf zX!eC~K95*_kF;5I={d(iArWP<769iWhr$S^Vhfm3?y{m%|N8&6XYHxr8Z8Kt%oS1u zd`e|Ql>E4;8SwVL0*b1drG>AKGNf>-@X0I9Eb;@F1?N2~1=1_=@4ay5D)%%4H=(rJ zTXAhx#T`<`l~+~FUf9A-b?f2pQIsg*Q1d5>J;EJNORXLZgm$X$K>viSy#@bfaRtv3IaX_3@gsk`(5aEWt+L`Uz9@sil(ORj2>=BcCZj)M>;X2x*Izp8C@DKH~ z-|AIM>qC@$uv@%Ksr6PQt9!V45tcdL$O8oxfp2m(n4zdT)Br_Qd7cd2NKfiOpqds? zljl#{svDViK9E0qlx$QkW5v;nk zhtr(n&E!M&8Z;q@(a|24eq&)w@JCl)S(f98`Sh6_*V6$=YD~Maug9=cMM!l-MdC6p zC0GR+ZK#r97=$v6y)zvpUCzXq7L!EA4t3asQnSo7`e-)Uy&3Mx(z54@kQU~A{1UE^ z*&nOXu?QJZihZMHl;BmBeEMF*`-k`Q%m!YM*FNsFE4bn9{BQ1g9i5S6v+0eKPNK7F zP0@LUGAA?C1!68%W3*A@u?c7GVB)cQ(CQ>qW8Y?s?F4uCtWJvaJ!|n?nHjls8T6Fens?S(Xcp!i zaSB^V%b2O%hK~0dbnF$a1(|o<*<%fF9)R#NLjBTznzjBbYdREvbO_nO$E)obYsQ;< zreA2232`~6XEfNW6xOEw70GM@_v{Pt9Nf4aDpM)CZfm&~+3T3Oyq40o6B3PqQIC%K zbF(gJ_WA{!M8-8ZA2}~AzEC%k@j}x@&tD~`6V5!oO-?i6=sigrR?XtGL#NAZs9j`^ zu(L}KqLf;u(Q>We=tdEoEYGs}%4^1TzqGg1O(3xstkwrTIV_hA+B(D3=I8ou6R#Pw z+^F4a%s*!J4Bqz2p*&ul);YLe?S;TS>>r-aYgURJONUOaxudrp7%d!VwXB$;@5+pT z{nQT;_Ve}cnm=)he6d;46e}VhF3nlA}=DwyWdu4q3h=t-OhYxg3vk56@U?{a(h~%)d zZZGSlKHA$glzQKSXyMZmgkm9SVJJJBxO(E_GsyD%1ol*nGIp{U?Lu*kWUF+!sH4Y> z=}MB}n$`Epi9dm6g3Jx_bC?gj!!zX0KjE?t)*4x*?IIVm?UT3&#?HAJu;%-*UZ+cO zLm-#fpA}l=?P2k9{cbo=jhuve24N*UVI*9dJFzK~znG}rg=T)@iy%!S*(@&oBjY0p8mX)oq zm3Is4+X`8moO0*w{3gATtqIjP(rc$-w&!7)k0~vW!a5gC%)7T@52n?RE9gH}8Ow3$ zpEY#iF{{@DHb%N3B+u%&yB3-Yp1uq04An|GY#@P?YJsi-fvdL|gy_DpkHnCr>U0O& z`5C>P%?(H-l@?I%#YHn(26F2o_m&jnml4U{q};tV|1u2upVSo&iAXs0=O#=DJn=i> zVfk(0a99So?o0wHHtG_RxyMYvq{hHxs$2$n`bJv@K%hTCT>2^6^MU3y@TDG*>s|F>6+VJx|o^&is@MCQ39<z13$7t6UViJq?xzt#Lpi(2tJg9_54=hvUqPpi6YML$Sed_U890iO9Q{J(Qgi2Q&lzI3A|C&GXzU7C`*8yrkWn%z~d6%h*V3Av4k5JOspw!7i=|-=~pfA*XUNb z+g@z7ob%xCv^7EA^Go)?2uoe>S}@0i%2w8}p4T1t?t38E*kz0833w-J&qL>uE8Zkh zvL3>NQdQT<@ct~f^V2JhuW+KWEczkrRqDBsNDyhmcpm-}!xSNYuBx;b0=zv>HHa+! zR)^;P(yoCqKbSSvn#!X*OYfFzDY_Ve;G;jaL&@T$^1g@m_u}@nl}BU(;9+?o);ehHhp&l)A<}9BrAr9D zh*3Gmk7AuDu%CR53CRY>6ub4(n7yoKNRDY1yWdb=1RV5bXo#zS!w_ZmvjLHfeO~B2 z(0CKDh@$^9qzTZx2LJtYKL{Peq&~LRmij0kjPVxtJ$Zzk``DGf_PL-y2d08K?duQk z(hB=2KF9f^>}Ja}4h+=GztvHF9r+fkImuF@)=?L=pjmxTAah{KSFe4?X|bqw{w<2B z!Yji`8c{KZW&0ri)Ah+)8u1trc`M&pe2U9dBKG$aKjhj0y)^a1!Y+W=Sgf~X*Cl;d ze(w@xXLmocxPQRsdYu%?N`7C~#3wOcY;*5P%*eAOtXNc>#CBY`#}A?HVLFa=>RC0W zwZ)g(J8}q~5Z)E@DgA0{^Ez3SzNp|aWK^hVJXU>-k~0notY9JRGb^}u^Jb~juxL7F zL(8;KHEm2f|2)%Hiu!qW_?x}zOh%D*QTe{axQ)wo_L?&Fm#Jd#!{u}qWq*+%yrygb zI(FRYSRRwDxVVpILuNCZz6h!0gr*>N0R3u-Fc0@MP5@i}hqGdQ<{$;9an?c%z!t~b zB_T98g`!Wy#mx<=WS^PdG6>+Pm9K8g0~D1@FqH~LBQ&KsKF{Szu1P4N94iQ*v70IB z>?m%lPUJ#F6Sa(w;3gi0Pvhot%%aUHvQ!o0sT?ayt>|_9A0et$Rr^);(R6(f$3?FW0fCeI!u4U$LcQmmA>z#9AS(w; zjAulj_-Jb1BUn1xyM6ch*FquF{Avsx$PkUeArqzh!Dq|pO_mdW9zG$V6EMdd}N$ApO(0ol!QzrOe zZE4cJaU*&FJ}1QTVZ_3$-;P;?m;l+Iq#Hr&@9lL&a}CX>uD|0;Q=fpqTd3@U&{0gsu$t8ZtEyRPGzpSmb$B4 z8f>%9^t3Woii;Y{y7(-uB3D)$tI`{jI?f!eo(NW_T{v4h*3Rt;+E#C~IXmaPFWmGp z)*jDqJFnL+?4PtY5i#6)H(qQ5W(e1BY`%0Z@Y(x7cU>`tzVtCyT}CN+Z4%yn>BS{+ z2woB0z2a}_k*d0iQ)}O0I&d44Sig$xYTy4H>MjZg_t#_-`C?@|mK}^167<#92{LX^ zoBl?xB$T`Hf$#i`3$&;{?&gJmSU!kG=c6-;PZZrR{Tsdhjb8QhVC*P60E`UIkWWU@ z=2#?iT&-X=JVG@P69U~@=Q!N8T2+T!5T7|46!b?j#$PC__~&=Nu6ilGK&scUfDr4 z>a{f!?;D&=2YbhoH@D-S55G3%*KiFGReuJ;XXZkM1Tdm> z0BANTLI6PA0j%LUYI79?9Tsx>7yR46Dvx@J+7~X0Wm%14+AOmejp`z8r`=FTv5!W} zilqL#;d;9$2XR0KAlj8UTKKMnG6h?}gnGa@(xv@-IoJbwIasCC<8?_sZHfJ@95i$d zFDpJzS1I z!+C!|wpp{{HF6-#cR+YiB8VGv(c%YKGgG@b$yWo4vz5qP0o$78QP?G6@#QOYm}|>q zh@(!g-&UWus$d8&}abd&Z^w?@U&q z>_6yARrd#7@t`0J^;pP%KvvbfE<~t~Pomy1s4lLqE_1go4X%Ecy#6a;&dG>wUQ@|` zI#v$8SAH<^^dIFTVOrV$1g%}^4OdAu(kt%tj|~chAC2eaKHap% z%eA}^Jk;d*lnis%6mt>~NGNZ>k&%pCo{-U;@t}@+SyJp-;?HC9!?H1R3FuDOniAQ7 z^yWjUCrndYs~UTATpLS`Wi-2KbMKQeRbm^We=A~Kv^jSv!H{``rBEGLd%;tcL_ttA zgb+r$zpYB@#{?*Yw7KD$t8Ij~Ivu5XX{8nFvuhyJvBx%zGFcs^&eq77X^*NC2d!ji z4BXT?1MOk!Kem>)F^9+fJaXOkbQKeC1Mp;vn03>qMz8T=!pEo(D(N`-_ACTCe+J&J>f2s8`h2m-Ubbg) zR_GDp`%VUWu>$2TD8+`Xw6Pukf!EQpWRB4=VTNQ*qLf6b=A_6V1+NsP=R&E~lzhd3 zp3sUH&YXq_re*rbuBD7l!p@YmC~(rCbN%4rn<3|&L8YJ}V0on3X)%P$WXKe?)v<8E zQ+im-q&RO@PKw({95o)Kk?~_-XeZJ&3bpVDM-7IhQyftyps+GtyJ}P_#-m|SV{YWA zoGmw#uZ*KxXM6PH(x{gw5ShH5>kUXQ0K`HI!mG#f=Nb}qijx{jo zj#@QjS2Plg+B~Gysd0@7ZY4SqQlo0-SKWbnu)uu@xwEI%9%Gn`V|}D`VADl#US^&m zQr?@#F**BjmR0g&Uft8NQNz+EuQXzpw5Iv7pj_4B|J)(QnOuH52qB8`H_!SF&0}ZO z5p}$G)w;u00y&Q-BT=S^zRm|Xa z8oo%Q_EgHAX@hnNKZep*A7`}LXDk>T_q>D?Gl%Puhs8Q(t29%)+=>xoW`%TyM6*Qr zqDSi}3zFKiqT7`r%VdHwU3#mt8*e%%wb=ES=hmO+UM#xISmqHm=CMxcHD4-HSI6VG z=AjzvkTsHrC&4Kr0fx4*p;K^-ag!2~&|Z;O%3ZC!3k$>vg^I)0c<4ilx0Yk~6}66a zW5S;GiQbEWXPEznw6QYFI&YGeygcsb`mEc?QIBn^)mF%k!P`;e8yqVxsg2PAE8ye2 zx5q0pra)q%3Bxz5bRSl^g;(!NS3@8@$%jyrMI5xZAeSn$!?pHWsSNjCXi=9o5?XCq zjvjeK{MCJAE_7uEiG1D2d|fhg?E`rID64<&dM#DUr;cV=z(4&CVe@%sdeCB~PH2-X zG%bB=LnV1L2c=!{WwypRHSu9)_;6kNei%S71naZ)%4Q3drW_G{8?$Pd-DH%#q~^S2 z`(}E;(<88|w3nzfxlsC34tx5z6xJbLA z{A=p!ODbQ?MtI#)SSJ;;O}VZ17*KonM)n9wyP~~oxr4?OWWnvhi{CBwl@;-X~k}C#}|2L6C*avJtrT;&(Cg4dUDI=(ElpCzTQX z$H=E7=w|?ivp&4Dc#AV+lB0^DQ{~DGbabLO=U#949a1F^XY&GbNm!51J3PTVn^6IZ zUQy_t2UqLcN-rm7+^6PexUwIqjU|%}?kYSE|m(s0OEY z{t8%Mkyv`+3sF)OD)yW2V^t0_lYwsZ;9TUi6g@ z{z;rpt3yA!nDaZ^4lRkaeIK~bW|w8>W=PJM4t{2qo>vGwQKs~`>kY53pNMSSZ$ZvF zE=Z&y?QgO4rh9*z0rj3G#R%VC440PdERa;?3oL*LJBs9G35u6{M!Uthk97f%K zGx;6S=vOR0?Tc~b-$G%jvR});+Y?Trr)YG7<}A`_ROSKwv<`r;nPmE{vn{NL!+EHY zRJ_Y}CS%#8T>O-qwdTXYJc!TQ;W&l!3ECP=&POWS%4G_b=wy}(R{en2D|Bp@Hew&g}6aGWCvDW5wj-$<|Ny=hN}8f*Qr29BoHSud70qHCYq_du6bi zPFI_LZO;~5H;&`~TH0LfxDYk3?RLA`Wo(=~^5FV5yR_m1c^c#E)9%v+*P9c^8bKsALHUMAg7%-^+UY*jeC@y{BIA3< zDjn8$1gAYEgv)64cJNp|)4uEV&ZGDMK_TI%emK-9kZ`|^vdu88%c=a}iLP|r2ws-( zl>{x;@st2@N>J?(rvF$C%}rF)XK98!A|*+d%ZwlV?4AYh`Y$UonY+HYJ3(f|n8N#K zDzUDK4#()H0JYKr2dLQcRA7dB8Q3vG8F}c2V0<@E^oL6j{|KA%h&0Pfy^ zPO4gR&K!$^Hz!Gp#`+FXHGM%0pBqg5lM*zPdt_KwZQ;jGR_&*5ELX_%UZgbTGv;uX zJw~!_bv=WPjRDCvRc7$*}LX z?=L-tml#_WXry)ZoC8t2oI3RatFVsqmR9bTCNHy}t-<90@9!cr^SqL)DNL&_U*z^Z z^|wWIvT`@*yBeVBeLC^|a-VLt8AZWe$IYti@2ATasbrc53!MdG@{6pf?57oAN~hNz zE(VY1R+FhWq}kBbORxG`)YI-HLqM<0>YxSkmfk)&U3VE0Qk08U}6SMemWanf$0(40N~I`*m1q!=+!L z_xC#YZ_?IAFrZ4mFFdSdC7Fmc*IyTZEF}CqTKmCdH^09dXUO0G!c&=E4KMHuCtkoO zGo#A_1SJH~6H3LfnAL)nQI%n4E}1xgrw=n^X}vPCc03V;fDg1t%%z3!UdQo72(AVq zvT)N$9G{KOgsFS_FXg;>y>tl&;zyP1rW4%Tw+nSTbXsscz4*r}Tn;CW=L;K@9q%NUs$K($1@agH&K4@Q?O1S@sAI9K1 zcBY?#b!Mr}Sux1_ynK8LA zAv*Af_;=wh5=VmO=`$FG18&Z*DY2cGM2XKo=3HtY_wT1Fr&L{rE43W6m2=0}95>`> z;!p(T67ZHf++<2J#!%L`Dy7Px6$W_G%PFKo7UGAKs+20z^_0TYDj-SaZrBVWX>|Sl z`B62V-o_fZpm7_H^BO;}tbFY2h3uH<)J&CA?Fo+}S4q_dw3!O#$|IRhgT|Uzx=Ks( zCtwN(Mw0vJTQeL2&Ax1-5)XDuv+_G>r_KqV4sS-=iASxO53UTDlvRpz2l7h@u1y%k zo5IyvI={X(Wp|$)-OImOpW(jC?pixHR&ncA2PPI^eynz9wtDrQRCXj%8; zFz4K)7#(3hE46!*-nm1%3Y&HY0dD9La6WNiY!4sTqh+1=+KJ_}sZjaScp!%ZfRw0_ z^Xb8MY>pLB9DX2rtzQ40G0*RW_gGqBc~<}BSE>-P{C#{nSlop@FD3Dq{>jPPFWbDB zU8Y}gXu03g`if9s`-J4=akk@q?Rz~+t4vJ7`C%XS)C&}=kWVYrlgU65SH?3#F`kKa zj>h^H=nSlB#!SF@V@s2cjf9f`;i}XJ*XG)_bNh+5#lslR&a*Qc=i-d@)6S-XYeu`Z z%#6(oezz_}8@rHdt@Ssy&0ViZE`xcrH!z!;uW33jJPftBpCNaBIOFzyfnMAA8_h%X zkjt1ElRakYmSG{E%eZpheYPC;UdQaK^gFKuFO)ZbZT7Ft8fTNL1{WurCJh_HhEa_c z{Gj=3vqxjB%*2%Q65}ACj$)fJ18P^Uv8R|5gR}(Kwta%EjriaTKkFduS^S0r|SAf!ab}(`1){ z)(y=MJbFT=ZA&ZXPEBe%O6xZ62wjoka`IR5Utb&3Bv@Gl(cd+5o-V1>|dMx zYqNiC_WvWB#ZEx1RhJ*hk@_c@MgMaoGUwH&T-*qn*P6Mcb}co9R8n=5QFq#M3=*7N4&U4DMT$`pevYPM!lsp z!}(hOAnn&j0pUktnFzp@gaOGQK=ctXhgFy^9tO>7Rq1Ti=>VE#fc2?D#GP!d;}nBq z0L8$6gqG*OgccH=M58{030sP{J!#hR9M1g;{%qQg3d* z?qxvD|FM@9paZngl^y@WlUY`qK+G`Zgc;T>cs)|_XV_IGlaRdfk1sC@wi5)D$5kS< zR9+(m#!`LUK(5@93}{%YBtCk7=%HyHL38F&Sq59pWuGg3P;skSx)~Ap-!O~$Z!EiA zG;Yo}Gp^jVh56t31VYZ+)trt?;vsJ4qQ5Ql{$46UlXjB&$Uzgcm7rtFL z3tP|sFU%g~L1FfaJ45t|^37y};B>>ATrDBm1n6?%XF9z%84Zh2u!RB2tu!c>=XBs3 zi9Y3@8v`XCQ%>jezHI}oQ5r|tfzTtw{hGzV{6;;=3J{_tY7Zt3eB@eKnqzvSqGZ@t zsb zMtWv4aId81I->chRXhr^(j-0GUIiV0U8;Cn0t9HaqNxF4F!S{OB9gllh89SL6X z?4IRub2<1Q?7d}I6z<=54T>TyAxKMiNw;)^bfa{KbStfN_s|VPcXtd7-9t!sca7Kh z`^SCW&#!f@b*{yWIF2X#yZ5Ixi$BXrZz(TCO zUFHBCu0CXmf|ss+pHUrjP<=GW%n;m5cm3Pv2iuW&5-~RVojCh>IWn#ExNVlcJGPp> zW^C~a=YWP=4pgUdd!RaX@Ybtd4!CIiZ5Q*vOxcoX;`z2ZByBIfq2u9}?4OY_>HcGK zLtQdDS$aK>eBpXSL-2G%2i57xj38$D3Uu8V7=W#j=Wj@;?_e-MkxQDEt+c2rm9Do(^m(ZfX2yMtn{6jCM?KttP0d(aFuAk$heiM5jsQUYc33K`J zYw6TX7^EF6B#tlh@tdRvz_P?GMEV2xBLl)@Q_SGN%{RI*I~Mtgt`YQui+Hp~tG}MU zbXyOL1L&s!z~ccj2I`e+i;tJ-aTcbhlM_1`qEVBVq_(9^eD@3xV`>vVs<2)J#hwjr zm4GZ_W)M?)7Z^Ko8FkYbXWgad_{_>L{pO=CR~@3!(qG#HY4&107nb(kr+==#2|A+lv0e%8mXi$g>z= z^WB~(BDiS@y>Y?eS!G|~P#W%sfnUmU;ms{Y325gspKVq-x0orkV zQ;uWQcjd~t5Mnp>8C25?ZVvh^8s;XNf0MpRze!sktzK74O}i)P7*rsnG6>)}jubIq z;fb8*V;+}Dn&*1meOKD`2N!nlU?tD2#t$=PdA9g0wt7ZlOPR)8mPfR9w={VcDfAbR zZMw?(w@}Ep%reZ?Be(V6Y|Q44{V0OmCS>(9`MnrQg@SC?1Qp}yWJ6rh4L^Xs_Oiaf|l7wR+09uk9#MklCUReH?m-^ypo)R8ML)4Q=W^l!B53)EhX)k>+5@K0MK+? z({576p$u@UX>n+fqzIf*H)1gT-E(FdwW(A2P!?FeY#T9|akQ*Em18&aj$zFim4e>= zU@Iq$27UHxaR(3myt)4V_x7@>cJORQWwp!6y6)tFbl=SFmLu9RH}r&aXirRNj^E(a z8gTmV`zfFJyvZ@1rqBXiarJQ7*1qXjEebTw!cl+1;6T1HHjC+ireZs!;ke>hiaP4= zEkJks+1}pSInH7y>IDwwfx7m^Xa93W!8p1OqVb3WAEC+$y{<06lHba?8Pmmz+5WZV z?wd^rPE^;0-mc+$CDIel(Whg(y331|%h~(O7MN`*a78C~t=!?oOF9m}8v353&lcnA zC4l(6e1<{c)TiRy7vn7Va@BLSW3Rn0BXXZka3A1%X&HYoo^nInc9Sf;`U)@`RWac| z)@y&=a@jtUIQF|Xtn-Kb3_7V+-q_K*(NhH9!_=~UeCFQJj^vWDyXg#LH=^G%QPb69 ztsj}2|C9~Z5KNVJOz#V&k{|zYfhtXxM1l_Xhko>5H;}gZ0{5+$<|{`|WW-LQ7_gJ8IKKI@jbImMIOQUJwBDd)Z7y3pu!bewdY+paY`NN@- zh+BN_6b(ir#`=fN`n@DFuz6p#E*XjNk`e)_(|9nDLWYFHL&ZcSfkC*w_q{5GR4N-= zfdFsZwj_Z6)%7KkbK&Py9+|~f9%VYeP-#+?OYI4Z!Qv04i6+J8^xZ&2fLS2H%=%oA zJ{s26&qVY2A}faGcNVyC3qf);T=^(&UuP3_kS5=q&XyZ=zkL8nj3k+?C;1X)ns{rm z%?xQU7^8jA_#ieEh4%%zeVjp6&~W4*(2J<#4%>(j&a5$epoIPtsd^YP6ADV8Ycquuqa zS6UKUD#uFj!7`z63V`43#AYfOZH(q&MU_S9R*(K|*Yz8{w;iuBQ|;M9UOS%(1ztjw zTA=cT$e;f3ZAMcg1H9fgW98S3_u?pO7-fi3LM+7 z$B(km{Squm-hg|k0~mkEq-Ny9k($FG|I;D6OeAX=vyzyyGduW1D4ku-@A@%zY~jO9 z+^{qYP)+*Y&Sr8_UR_>IjHk+`cKQ!b-sSiwL3I}ujX(15W|6rQs;5}l>R6^<6gbz; z)pv)w%;*aDsm~hfMkr{>)Z|<#aDF*bW$u&>yWo)Imz|w4j?lmUWZR|5pAGKR!5J&BYP$hyq8Y^wqISvYe?ah3L zMAh%XI+>iwo3+K%7YD&PxDHlLQ?qsEfJUJ->bm`Um&1mT<5XLKAN9~t23ex#QPWd9 zf%W?{SB(>EV;k?ec98&r)0$VBeA=UEu|#sB){^NI4y2n9Yb0=eYc|K)3atx`l%@~O zq7tdV=8&lH#Z_{hnl5D8YarEiJ`Jr^p%UX}@A^ktu!immqJG9@yux=O!-~%1)Z5vJ zKLF3!xG@~>s&ovJd)q1dGH1{Q`u88B*d)GJjO=zt)kp14apqE&SQ>$W%~%L5vsP%Tic&+@wer8Lt2fxlpixpel)rO zee4|rDltn?h8aZ9i%}s*{JM9_QO!#38-kAs4ZBD`cDRs8C}s;Fo7P^?c>M{RZ^Xh* zZR5;0SPHHCo3Eo91#yL1ZOYkM6yK6D>6hDnyca6w{sM+0vGvj%v4xRwr8y`-_x{== zCCSiS!iBf^{Ky4#aqk(IK1gZDs8&bCq}Arp8&lSkt&jPvP^{uYsE2ipFyfolC>fQY z>oPi4Ctq_+a&ZQdy7Se)c@Ax2(gzgFD0rUucch2kc`kI})K8`qPUb%5?McbLo=RmZ zqm-^462ajMOWi;q=8?Kn)Fh}*_a~=1D5q=PpE*uB;-C`XYy_LfswQ6x?7nVV;NvN0 z^~I8>B|@TC`X+gqfu~@>UqQzcB8r`JiL)d=)h8S7&jIkBrsX@(E;rRU&Cc&7ATpls zl@5KC{F;-F)|i z=1)N{NJcQ<6j_!Fq}<-R)R}K>SCJ0@lo+$Q%s2BXB;s{381~U?CTf%?$1WdM(n99d zW^rl~wrq6pbcK>X##f~Rm4*Foz}~MpYD-?(z7q~z>^OG?yvw((xyD~8Z`bf?p*rGt zbq}!$9ji~-qIA|wE1k8AZ)ki+_EAJ@G(HEd1=I%Qh+$Y>f+G2Mu9rVGTQ2PxB(*`T z_ncOBmp%gU)c5p@T;dp1*ZuL@UXmuV0n4rB}`n@7_ z+tQVD8bnOA=Bwad`h=$8!6dLMg`1pos7C!os`cwlwR_)Y{)zhsx@joR>O==q@L9x{ zaAT4dlYWlAoKQo^#saFxfK*}<&;5*+_t=^N&E0iSr)nep4Q+0OIbKE9N=@(-tySF|-knSSJ1#3_MBRlEGtL5; zCmVBazQyrG*P4(BTRTnuh1uZ5|?lw=a_Gzmmn0|1A>V3JZZk<*@Qzv*wLU zCBmAHUf*7Ct4Dp_0hrbKW?n<|A-YU8RkdAOiROjMAjmx zFQ`B|?w?&(io#hfCt{OAVZXx6YIPW(^=U2`0r6dm^#eUbc2 zXGh#W#?z-JF5+YolswiHzaB5H;>%=)IkRty6X!@j4yFSVysG-%cckVDfC?)^i($jB zVn+GLLusV6|1^sK8Hb%LiKfs3dVr)8LTQsc^Y^DY#n;QGhs?W5#HLDIVe^XSg~kV| z*nRtX)XjxVIOSw-v_*`{&n?AZqp>m0yjj;VRS1B*TDO?)zr(Kr_reH-L}Q+20!3nn zDK^+GYNE->61kPI#aA?bCJZ@ZOzQ-^QsZ}!I4Wx%d`KW0Op;B%tV+SEo@cB6=mmJK z`|moj)_vOBe|%U`21?O?d{`PxveP{S#^#!8^PMRQCU4#SVVZ&`Cou0X`u&5O|i$ zz-(F521LJxoCR7h!t|4k278FNzg$hKbfb%P<4@}f{X60?LL!(UOCnVm%TQm4T!c7L zjB3~%!f*B~jKE*ENCebyP1AsMi!F3ew_aSF&tFtn+EVPL?!iC;JSeUhZfxFfWJGL^ zNo#cpXo3IH3?6QQkB<1fuf>hong*34)}E=cNGh*qXxTvK3bt;LzicTZ%%du9gWi`H zF0`$-NUwP{?2ETA8s_g1)@=>8We_$T>9WecZ{KKXE*0sx{H65HhYR< zEzlQ~t}T^q-Pumv+^?J9Jk^Qz82i4dmY$;vRxrjz?RL`)l+5XB8}8D_`aF67b)$xxZYbR$y zg4*;Ql2o_ed!&;LkN-*GFvA?F@x@%kVz#N0capMvKN3;D#$zL|i#?dC*oC4424!_M z`Xc%I+*<1pFFIkZVrcTPCrqOyWFN!~Z_T_O;FTPBG9L&D9r&5r;k8r>b7rOad5q!%#eHZ+4bxZ@78ZXBw%d5@4jc;pf5U1&wY z5ckTui?^uzGx>;;<1jAD5E{~myZney_lTg;2yNI1;-eK03dn%xZ@#$H21hZa{@dSD zv8N1?fFHjA5~y19uIKL8XzIJ3Rrwrq+R<6Po_T?s!^gTBn=y}FF!77gv(^Ng;eoiK z0V7_I8J+R{R++UoeLU}S^=*D#^7(QmjQ3Raqt=ZRQ;j1TCZYaJ`s>nCO&F9-%nu~V zhfegFLjgqppjxsg5OxGb_}-w)wpytCV7p<7i)_jFwaK{qDJMoJ9-t#fTe6$yRERuV zC}YaB?gt^T`X}(Tn2)#w69H^xmJd)ucrgu%<<@!XH#tmmJ;a@C028i(PD_R?x?tF~ zUv>FIx*n&Vho7MWp#@rHJ<=qmZNS6NK87NYuk!4j{Hy^ob(lJf4VtAMekJ$PFpR}= z|BJ=$RYxmKuro9=$no>iE_BN-G{IQxLKh`kRqE4xi{2vPGT;E;BLNUgJWMl#n(&BP zk47It4slK~OeWBImhRCVXtu zmqK040GLeZ7Hr2Gg6NwPB-3GlG?DhQmXM$%{h)x?V5$+ouD~LL&6YlMl{;z|SK3zV zNbHN!ss%n8ny@Zo-z{?aE`nd%C@-u`%0>AYcl2*(p-|MHr1W(M;eS=xvR`#1Li4pg znN&K%s^(0~lgA&Oo<_au7qUgz1sd z!|>%ChGUsK4v#T25{VZ*?Z#KE=Xw87&TU;t(44LK?R_)dozpwIA6}Y$Irh>1^5WPQ zfi(Vm`AOZAtqSS&f&z9TI>dl|8N3p&|NZo{lHD8m@ebmpC`D=_uj>gW{M~k7t&q_^ zagsz-JNN!k8NupT-rusM2S=kfaIGt^1g_oy<@_t81`Tf29`_?PQgVBjjchvTGACZ^ zpXH&?{AoM&lljeZa)`kMvJ+gxd%XToIGv1gv`aov<8{B^ep1`G5tH88scK7q~Mp^fgik*u#WHq!lIis2E9Cj^6)&dvc$lN{OE-9e}#sH z6a9A?_CJ!W-%AXGGIz|}PZ5ahu8g;sn{fX~vYnr|x z_?_-+k#I~$64?2%)afqslq2N1b%^$+DF$LFNzdhf#plbFv)0kaTYcUGmkJEX3Y69y zj@5B>_~-MT+jiIDZ1|%Rp4$zyB0T7D{&FdYE7!*yebU8a=#34y!i5rQ|2FDNfaKH? z%^z;XrO-J+sY_FUyIJU^=$~&>ILyW^i21Hjv_Gn~##MQ?FY6rbk2d2!93v6kn5|^1 zXDR|(8V|Nw3^AewADks-W)gI1B7JJFC&AynFwom6&jXjVt%XV}J3X%t*CsQN)jbE6 zx4pvfGD!dUKJ-`ok=kRcz%9Y(JX(@15`48RFlfqK3V)1)ALA(EXBb)1fC0 zK_I;Iucnr$qSD*EiBzCpD zD!7m(Rs*4{4 zA%rnPE5IDffrG=Zu#vH4ZX+Krio<4mFBHX)1g90n@ziUTc_?Bp#Q9!*y;O#~l8+gC zV~i3%wYTm$H6SbD60atQE$A}+ft%=bm`|D0MO1!ys#f(A;UiATXH6zGb%F-Q1Wm1= zE0;ozo4ne&uiwG4D&!G3&JwzAO9=~BwrX56rd7m=3&!jU^$-9KAtRr#lVAkIC?7#X z*Ugy9RrmL6RksC4@G|CH$-WQwiZ2k1Yw)AbG>OI&rTltj_dJ11Kk((X=2u@T-{h~S z=ml7V)(WL1V?udzSOb*VjQEha$nc{U%#0Iw~S?CO#>cs!rQsHSPu zY1G`Ool`tPuP@awzzi_0mY^8SZ&nmlFLMkZ(th`$4U$hNS1&=1d~Cra8K=-{#HRWn zRQg%5tebVW>dm{8AHxh`a8%Nrefr}vNWCPD8grk}Rw}-eE`7ZuSMRz$LJLTx%U<6% z?}WA70>=U%Z*&nvh|oRUB>8TMKH^AJks1-%ao?ZQH)apK{5eaO5+ zVn!dWQ`0GF*+T|dCmkXZ#d7J@n+p7`CHmQZr6%xiHv(s%EL=Y6JK$QAHF1H0pF^)hSd9uW?IU!;0|s zN<{khCCa;1OFwkciwe_COwc-(an&X3e&d#nK#l`y9Hr{5-9u-S_c+a*1^4wa2iX#>?-b3!1Zgs1Kd*HC6+(19o>M0d9PnzDuS*b3!JR})#ekq&HY zycVk0f;Cq%!ny0j-?Fe~hEuTg%HH1PO-WceN6{>CnX}Y`{-tZf*Nqu<4=0eyRd7;6 zkKu_=9HcD!7eb+M-xnXR($)Qfy2hEd4Z<2eycZR9Z6+@C{x@lrAy}J^uW=m$666-& z@FzFqtL13p3#l6&_e4yZcl`x}zAx>;Pmg>!pnLRHFdf6~T%(|7XzP25r0ugpn> zqbp#%yV$@;Fv}LRoDcTXxo}$!XAWIPF{YAgQjx#5M9LIsMYL}i)?hwQifAQb#CF!H zTRy+(U)r$qTNsv(eB+cx)Xjl-3#Q5Vn0C=>$ZMYR9fc!XaZYbbgl1t}AW}IK%-DXb ztT|?=5uQe+Z?OQ4E4=Gt&tvy7rzdR=5qR2=Vq3Np_tF8SQePFy=^Cnrrl$CBU*@hM z?4a87joR6i5XBiCh$b!0)iJY{H8Ci}mY$!;XVnCuIw+^^=ouw=2g&M)qNY}miaVo+%FyT3p-Q0w2lV$G5~ z)V{p)?K}bG{1HTlPxN_CDS3K(B>$R@{hy^`C6Ro@%EF>1HtF8Cp3Q}7`^iw)(rcDS zvK`3L0hTFFDB?0H%=uNQfLVk%UZ~2U{(~UT%M&i3IVFgoFhn-R`QBTU#wq7NnPQKU zV(-v!-_T-2kz#;sNtjiM_9nxBX>7}18e0;#Uy=ZFj^6TDOLc~U)DKOi|2AMT%l>7+ z07i!FakUM4~pH`FH_G=@S`e&F9!C3fECE;L$XF|q2+BQVq2-$|DB74 zg8rF{{rHaoyO#0qxmcb`*jz09FgF$<`zx3P8&H{&Q`yy3Y5uzM?^-M@Tufc5@Ux1p zxC(I?TJ>|iY8t-!Z@BnBbFqje@vz`9EKvN3f%4OT0>zA}HPr(({4g5JT`P)GD^Z%2 zP8TBM^Y_%3kW!4lj<^}{{yNE9Cii1neX7=f>cq+U5w5AsMLwEgHTIST zmD}}*@P8%PVe|TPZExS=`T)ZG^|^ZQgN9OqPXuoEx+tZbQVlhC1yOx((?XlP?(2=O z8`OtWVsyVdST(w*{rHg6g!rR5-Anx&N@JByQ|Ntho>zlYpKyuS+Z0Fx0MZ!w?z8qx z?N)LHEJfT3Gg}86;5)^E4^0S2trj$`m8IG1&C-J{&AU*ZGGv*IRZ#69fu9b4D-4ED z>$VM*Dh|s%tD8&zBf%C+RxLfWX}a^uk#{s(C+H2f(g$|9>{y2! zBvK8_!RfWXkoUOS3lT*68z{zNZ0k`?W8nL8F>Kc*lMpJ|Wnt09?Nzrp{Nc}Z7ye_{ zF=rQ^F0*7QkGog5`%ig#)ZDzH&eyQf*r67u(w?lzq#VZrbpr3%V$*TYBv`EY6JsI= zQBsUbsh>yhr}SRb_o2d!jU3m#CUlJ|OUi$p*qa!)_6D+BTRwV5pU@9UN)6?;+m_@J4$tV-nLp`S) zTQKg3Z^=8{?}enib@k|@FeQuFQrXZ{MT+n-_rgZ;NkoBh*NgEvkU9)24la4Wd&0tF z>iz4}EPqVTZv6vRPyhFS?6VMm~qp>em zUKXtCKAL6U4fPuqn=>{?1x*Jd&mIT<{=mJMB{Co^^4rDcw{7T*5ZDv-*b&{gWM1%h ztnTmGL19$rbanDt(ojM9!WyY`#qr>}yH7bCI6~XBugiJ{|6BW{mDqMu27vY|S}~YfF@>J0LMYr#wL4ZbY;F zgEo5CUjLT5Z}%7Un(zJFcq-dzOj|5Vm4*Tn==WnLF`T`OZ&tL+1UR_e;C3N5Rnh3wlz}V z89`u44C9)x;rcr7damqxS^HXM%v?06WxRYm_dadfU>XTJbuPHc2R>AY0J;#bYwAZl z5FTsU9u18eNX#C5yEz+OqJ6)?={z@2a>^cg%=zm?s{BN*yd9b55Y;EVy}1G) zv|DRHknNoi0;_P0W^KUpRTDo(GD zZYowLFqx!sGcLC>j$X42Cb6`nX5LxK-vd?;d8r57md+6k?kg(RMQry&?MrbkZVUj^ zFH6?~Gd?tHKfEw-jQ4u{(tjVhIx`|XkPAhAMAy2Jzdf{x=-Z>8UO??NdAj)tK1C#b zykvWfUIKwbpR$M3IzdmX`un>qr*ytIo<8?0UeIlp&Arw8xr61q$bdEpdhyH(Mu8-%#;rSK|Yuf@ICAjQ{L-vJH0u^e!ubO0&sBEQd2~_QTf} z{|BLEO8 z`#61tzdnLsJl48t(ZKmg5u?$ zVT{J7;Eky6moLl4dEj#?qO*`Nr=#<(aJ^5M?#W}vy5KnpVtUY+5Tg6hV@fA_2#w`; zC8m%OSfuc=`7rxl5Cl5V=aZKy4d4S9W5nq~(kJ_AzKx9Kkf-#VgWiXUW6F>wIb-%x zw}i*aasuV!!1USP*kHOkHE6UTvqzw+0xQ1Sw~@Bw@If%=1y1c}QH%tqad9+-ctv;> zoFB>prb|8wNoG59;b&tbL&qJz3t&(QB>*^D^ii(7_J>bBqMj3K~*Py zr>P;aTsQk!X^UM&|ITSf5qG8$RiAkNT^Aat2(8G{j^`kZt zSCWqJAJf}4e=4qd;7{zAT1`c?1QrVp+O^E97TGV6DkHh=-c;@&oNJlJjBUBp%&V9! z7{ntv@ED&;M-H37n?b2NO=lFh87!I{+j%S}?WmjSw9UgjOy+XV@5~FL3V@b_fh)MH z&^P7W{gvWhftn`+0q(jus<3M7q zS2Yp??=L#k@d)j^h#QK&IPO4+bfp_meI0)N=y;S{4s%nx{$=|e|InEp%;lE}L&ITx!^s}E{ zjTrUt<^&+0ckfW0QA?)JwN2ktP$?=H@?EAYH*Y0Y$bSn{&s#64lFua1xEuT{8wQV*BYjuxm1wxAz=<#cKu76 z9G(+xMYH|5%+pI6{*FfQX9r|<9_WTPG zvhf;mKD#uwEqYUC8jT}IN5SD~sutAT_28i6?ToNxJw?sBnYt~dCVrydX52+Xhvpsw zX{kgcn)yP&BbQt`EkPm8whM{11FYGp6djHBuPz6iNBny8?X_*wb(Y_!r;n%r9|d-n4k$~+V! z%*BN|>|5lQk*_3j?iQSq`^yfk#-vk8J?v0>+Niyveq8)&G!3@kUwYh6plMLJSj9@D z%_c4O+%R?G{H9$qB#v^bTG!VxYC=GVEAzHz^s!8CWJDL=X(8(d=#)ya-{D$b=?OXd zm<(9jX4!x}TZy7fc%5xV1~;&Zq+|9>nUQ$FMSoAJjW8+GUK_qA$dBu@)xobGd9mrK z7~IPORbqW*8nr-l#yUqOTXW)E&)E-GYiZVZ`;%zyS^*7qOAj(U6;+cDz8wFb*Ap8*6QmUO53cQ-D_HwHZ-`K z#*Pl18`4&eGu+y3+Ya5h(^l`fZrbO3?EPU(_Pqan_sez%cL?M+>dj3j>B^~Z82>tQ zAx|f}uY(Jo-a6^PZQq8VV@N>y=DP}R&>8qFHe_i%+SLQZ$$Xxe>AlU8#5=5he3o26 zw9a#L*S|;j_Bmes94~&37xUk=?vL8>0+^>iJq$WdNp;*k$BQd7XKZ{ahqLUZZ`m-= zPlKp8vw%9Z9iVLaAe!fR@pHTwTvPWF3KU@)?5{v@2L9+fvh)B=KF5onJ^?k!f)R)sl~3+@N~?%hb&rn%O`+JiTlhHloEr*=mp4TO6j z!FpaNyQ~Q@gUiKPfd#_DyP1w9rBF0(+k14AXFmJPXP^1(|4Kf~L;w0T*ND#74xdig z3Qk0a0Vc-&%bbN(iA#BnU}Ef_joeQJ-lF$OAoV;czF%BCDjsyXFmqPvziO>kzGzRr z7CpTfy?`CEk4Z|NyXCuo5nGx6;m<+?@Zcmo;ePTJzPwCB{Z{nLGe2zTTPANx^+w9o zz+X4kvqVaFMvIPsH_{U>ltAnvg*)Ot_a}WxG`;i30nbFM2+lbX-+SyI_jCaI)Xe?B z;LwsNt2~zi$NW&{LMympz7iM$uKEARi(%WcfwEa*DtWBQ9Eh@%^E$9S*?&aZ;{2C; zX>#w%@yUP|RyhHSqO+br;Zz|0t@pbb;FeCn?~-WU?y?Jua=zel-t6*1&ip1m>T6Fw z&w_Xv$I77;?8ZI3|I%BmfAx#IbN^h#wEdUfx>v#I?Ym)aYC_nyEEF~_`|oYpfA7wk z)%@L^9jvC?t0qLL`9)qcEmEUVT=QRg3z4np;uFXZfm36kRQoTzU97DxtW-iVoMMO5 zw60T2`)6Kuz7AGB{>+~y&rnBdRR88vgT+7dvYR?z7YFLU$r)>d-uip}yJC!JT)QNd z8!88Y0rqXqM)=Q-e*tboL(gmj!G5EHj!+DLV?3l>pDy|4It^wo7vk4>!79cvCBU#E z)R+jXeJx!Sf`YK{BErHnhK!e&&4|BSs`$+kO6$`-T9Q1=l3Q9zOBp)7-j>TXb~7}$ zEku1Cb{>UVwH8~8>0dPY4~qx$w@KpFTe!8A95n3LwpCI$t?;+P=4IDQ+sqLgwjpJ& zas&5E6;~g88~U2W2{XU*cNDww%3-xu_N(eixBAXC1_ak`mA0z6TOoYvM1Xm+NSR0@ z9gM%KXCCUw7&;}%yT+{(5D(p8o@`cuHq4W?fqAl64U8~P)}z}Zxm&KK`>!W^+l^3W z@o}V_oWPUWyT{48=T1DddAP#OGB>=aMIYuH$G0jFrGHCwmj0(-ykOk~9!Lr)ZGzHD z<%$F0O?p2+7Dyu%n#vb~7QbI;m%7AtRNtokMkzaQF=blNvnxxK4R53?NOtlThoXgZ zgfH~N?Ab}(R=>wmTpJ?Cbcys?C3!wyqjdkMvPwn0jzq@3DC!oND(jH0KI}1+moRkH z;-9V;kulPKJlN%}0op}LTgbJ-S)!_ukF6eQs$(!XzsoS*v(B6alnv25v<%PC^|FTz zhY9e)0>{Jh{5|P4LyvBQ;f4JpaV^8yZ%T%g*5cj&H81Pd-{k~;n+h&Z&lF^c6n-RI z^$uQR1R+TFBBhS5Tn}VQjj;>RTn~N4qE|X08g2{EJNC$3d!IaOnWTYQ@Yjkp&3`>^ z&qtKxjgr4X(6`en^9s-l6KP>9pD(RTB~|j?>Vr?>`d=Tted7a7eDjYpi?&=K%s0vN zanOZv@Vm}n48i#Ow&Jg`#e^G^AHeFFSS1pkSapy=oPeq8^tTnEW$}x6pO~gqm?*`c zawUnuyzzs);Az>2&eX-BvA?W#Tm;CdZVRWW0M-w$s651*ECknL4(*gwm}AcDYUOdy zCz)e{)O!-%=$be_RX9iBx;{m^w?%o{g3u0e?R_SysR{(2w69d=qp9ISz!5y}!IHx@ zqeNiXm@MY-$i_^}yRxabsNnrRw+ytAEMkx4g=&hjK0fJ@MH$R0;;_u8vh23lTws+` zPHlE!9huFjH6)9%JL~w`a}X_OU103s(YF7|@jbMJW%#L#gdlqYJRnN81nVL8DJ&7H zEb}=p-yp5Tb|oIl{R}H@IIty?FLBt!D=6kE_ywK`8EH%%T)8`1QTF_+)}FMj7A*Vj zF-?d|_8+y4`vO2`w%+j2M3|}VkUlfOVD=6=#lw_R>y<2Ul)U(akIh_+M>5bjEUd6x zsH7l3bL>c(F?|Cbq>7ASGx$JrJXPJep0r1zeKlkw*j}m^Nu=6mnrfzwx+w<^jAKk| zm1*n5-=w_lPk0k6alBzbJXiAQrvTkh%is_t*=oAmBzsduRk}zZkU@~r1v6wDBEAah z6|uB#KY4Yb94_w3FY5c(2&M!$L~cXPg?5s1x8o5r7`%e4(8eJ0InKA)w_8h(tt~I` zN0x1NufU@}(SL?A*HeTpo80W`4lQE}{zhNirJ`Q};O!d@)~Ay!e7)Ucwd#r|jvBaY zZ!Jt5(RS9>!WHSdIw9Q@ZhbRV9PWn3y zB+P^8`_nPu@jj)aLL0TIYdZQHJhmInE9+mDCla-0{gDq>>{h=%rLC{5DYmW6w;v!? zABh0dKJ2WYkR1OW{Shs83~KM^d)jBqJ&|L^S2Y-rCzua2J$du8{o?O)>|YYkEo9F4ZQm}(lzGqC-0QPG)YS3%kC=o)yPPT;J#NeMqYCmJOroT z4wiO)>6k%SxmVSHq=S+^#@mbDXK<52vFFns#%Ks`R~|crQ+bbn$O)gv{8`uXeG1P! ztu#D^5+6yTpK(${Pi-Gpt)PRemEyuf(WLX|1W$U3j|VJ&;NU-Hb;7+uME{h`N(LW{ zOw4R^J5C1Uvow;mKckJh{fLnWaA-f7z{gU_h2m6B8_B;cYH#s zwH~YEgB;5bbCr))OOFYad0herTJWmOj!Icsdpq!NTt~uG4%a(=CD{46zu(bo6b+H3 z*1=(i8=xcOhaR?iRL*v5*2D@4e!ctw2H;0Y?B3UOgC*eS59M!NEPs{KEv^uyS4*uW z&Y<5|>Xkb-4AQVyptgRsil5BJb|c~7-disAVXq}IaJq(UhJ|(57(88V&K8G>e@}n9 zI4W@)qdp{lyuC}Ax?#cSytoasZ+el2?a(|`LQ&ZT*G90HA4jsmBs{H%a@h1T*XeUR zT9q7YF9zgboB~BxRJI2TGw?GU63t~Cp*tmm$ejrl2G;!NB ztt@52?Zb43AG1CmuVS8@j9+Q(D>7l5-Un)IC(-~jkyM3aOud+WN|Wp!PrL!od-PWctjjd$M+{93lS7W_o{wG0(5&hZpnG;{IR zLWvc%R>L@{qt^TpeH+VvDz$RfMFc&~uLtug;u}Z(qMD_Cdh-)$QPpGw@*WSY3#6P=w!>R)Ypm)IQCqcR&-9QDq(`Qj6{e`8<@)V~UQIC@~2zSBq)`XdwNt-oP#3iVa* z=nZ22{yr{Yi~LGxstH5qUJL`?IH2huhFNp3Mdj5I4JIpb#5Wof;#%<{0aQNe0NT)1 zO&yxrt8esyM31D8*O#BLeNSj`db3|y{*1;o+6yAT{N2m?LX;UeZX-o!gxN(CJu_G! ziIkFqfa$~qSUB{JT+=jq5fICm_|2WT*r;RLR1)r6RhSqf@q7M){$;_f@aixlrAgX; z&Xp=hJ4V76naN44qK8hdOJB~&i-fn9QG+}V$tW_lYKcT;Y@@}sDJmv;-rOsPA%qc7 z1@VY2>sQD9@{Xhq>K~HMsJ6%+(V5>zY)m=!>dVnyU&I}gQxjn)H|fi&ei$(^ z3{O%|4hwD(EQKUIVM{9zS1uO&+ zQ-}SrFtf)g3&n}e!_q)&s3}Ft5QN$shu%CXRoO|L?zcH4F6#nPsmcogwG4&` z3q^%}CA<5N1)svdG+H#P+8T@}@t|2?k}gh=K-GeXa7v_V-mr!(Vdv7jq!7gwQwkYW zr3Tg((iDd#0(I20dOcH0%HDIr)|1O>IJC8v`7~>->dN&^t@W#up`Xjh2jf>vilNZd zAsGYCN-2r5FU77JJy0QE*{fFA4`ihX7RT=C3or!> z*ET_#BWBLErM8S*0q=RHS4LCwz&0v!!!zHTu^Yr@)-7Ea=pZ@l^`}J44v>#io7V~1 z6NK5K19O5q8Vz-``J`$oB~zg8>)feabAiH^o^6A<)+PON*J7`g^JDC0oBadPD#*&6 z>y7bPVs8g+Lg7)~q5Xjz%VW-53%B=j_~XH3#%eilPHV4)KNvffHh9peT(&v zyUPOQu4>w(E=`U5klE<@51&HCkP==xoBs1OOQM~}*gFU33`cfD_nnXU+=GrQR%sZ^ zJMirdnUsOdzE30O5@8+_$FD5oyY9Y-Lf%g3X4GcXp@M^7HwOcJEmLk7t$1ouCvE^h z`j{ev^LB#i_|Xes$l-L($3_5_##Ipuz?%Eu-jQwka>I;x`pCC=9v!)^Dyn5x5Lt9sdk& zQ{-}}m3sHE9nUe{R^@hx=7w4fGq62HUz+n&JcHY3a61Q8E2iE0urUZ`PCGPgB2?qN zuk(8bx6k0VCevNB*YY;sbLKMX2})L$`M{Dne5(Z69qcjN;kG~DcKSr)bSLF*W#)9Q z=`2xT`7_Y-cEDAV#^STNuX&!K$2(8m7k>Vfe!-g_WjK~*a}J9eu92MIrMR`V2Rslg zEKkh+aEjb*3;k#i2|0K^|JZU*lllSw%8GaQT`Z0N-8X9pr=K8?HE73&oyH2;olwle zzxmodC(l=?$m-K=U>jyo;tdW;zl@Wpmr7%xWR<{%i(0LdkFmQQ@5|t4aQh5y|5t+B zqEJLbxKH=*3-|n$;PYNb3nk23!1P)UWLMO>zhkq1^;!ZrN%}my|HIx}HpSJjZI=+i zU4lah7Ccx8o&@&<39iB29TME#-5naY?#A668X9*exOb*=-7?QJ^L6U2nyUPQ{cYE- zz0S1`4SjLa0_4qq8@2&^g}lD`e|%N52$dl(3Hw5bWTw>+j?E&6(SNGP|I@R*hA6@u z&PR=hy-N6;?_ElL>X$AMVHjA~|R7bpJEfD_zGG(Nu#&GHC>l90G^C=<@| z;%np~rx&%1>VL0#%9m|4$uBC zaQn6F-((gp*22jwF`U}Mp)Ks+)b@{9D_ScgUH3hpHnz4lW2-jxS=|hE-N%0o&o-67 z5$yO)`p!QE_BVMx zBq7{1MIHM2lYN2rj+4;JJ;mCG**mUF`q*11zqud4zkDBrT96D$v4ad1OwN0m6z|+RS zau9oH?5};-4Nq4|DNunxmbe)$Vg}f>FA!S(8TqKaEvRWq0KSmffrDZBf3MD7<@uyE zz*lFb(*LtDD;LWQ&O~DJWf5$zy6$?$oF^IH#r;Ulm7!R0+s48ynXl5WW9}6M1#ur_ znU)$4{nI-ZV@cvAPfn0+P7DwD>XoegSSY)coTt>=8C>zin_VBqw#Xa~PZ_t7wI!!U zj3)Lu*Y!bA`kgoXlmq%3%EQf$ieY>v{iYZ|$HHDuxdAPcVtCzHmfuGTBW_qDJ*KyR zGu$--qcG-uHMXTwEO|yjVP%{)U`RH~qrOjLc5uI(J10Y^?0tvM#t`koke6oz8r-Bs z8CLWg=3pEquE>;H=xCM87SSGt^V(iHfm^bXdKTRwtNN^pM$#dhyVP1WzLC%C2~Ph) zwl~9__@mwNIWtGr9wRuAk#4HmQB%lhZbmL#vPHQcQM4c9SfV}<)IAy*`d-@Pl}h1~ z+B7#3kn`=&-t2{8!BC#vmRd&$)Ss6$%GW&ecf_B`S!B!t)JS{u*75I4?Z!tqzrB+1 zt^MKh?W-q7lqXm*sgAO3UrIv8Kpon^wlpwGlE7VDX^L6iCn9;)3a|yjm&j7Al8kaVtYsLl zpB#|guELC){v0>uyIsg7-?oO{s)}Ef2+p)vuDT9?WkW%0S2>Xj8JpFbtEJ0#KOXg5 zj^(P%r>&j}bc+a<}%NdC-HSI;t z-2q&H3DWsWWk1xq_IG9OB*lT|RZslDx#-7IREQgLSSpWtJ^CHH~^e zB{BjFu#ST@5I5vOK-q5ymPXfg=gSZ2Iqt(Qz0LMOdTZ#N|sTA7HqFtwse1*6MS0TvkrEiGG0ST#l{UE6$a zgr)7J-ZlIIBkFH=E>iuqh57UWv6f?*GfS~Az}qH1ft8q3S@1Y=(ugkQ4$Kx%)1tHE zEnGMDxH;{WO*gcx>p4oLId9Li3&fyPrr2jA4Z=If4#zTxkD`}ij;Tmpk^_g`u;_%? z=%=pGrJwBeAMMjnN;@lTq>)!5n)f_B;oV0z(NN4+iciFyjCLDNAZn$a$RF+t%}}_v zZIm5mKkawH4%&S(b}5v)PbR%6_TZFnVC=B3@jx!5=YXjYd!?8eP$@zo#Ll)pEVsNi zcAVW+n)Y}sPH_?;9Px{-lq%|^V0nFHO!Y9T2-#=j6t>Y$vi{TRE$*_N?UP)bzu4u=-p#A*(D%FeqzDC_oL?J2MNW6k@;diq zE`5wHlS(dLitIU#=C10*m#uWIv0U}(>|uP{U#qu-j9#$w9zw5%@h3 zvKp4QH1T-Yqlk8AO>;N;;jofYtixw98r-XYdY$+C_6^k?v(O#4NngJ0ESh3C9VNI2 zHWek!(FQnegP(Wk-bv{^ocr9@rnh%$uct2FGwJmIgjGB)uB7%*4K!to0@+UrL60@M zSM7R_vr=G2{HNg7r%TY&Wcou$#r4$Xdro3fxstJwPNiYvF<#bG8dYaLMOU|UKB{dd`AGX zCkx|*t!x|0u&{(zbqzu%5|Jnv76dd#?8Y=NKCHb%zWUl%ZY=Oabw zd^kCK(JUJr#n-xXH4SPC*7LUUI@qAdl2mx|y!!kBkUvrD%<1QMxfGxa5j{3m(~vGw8fVC7_P0m2;e*=NZw#ss@*mE}YpUZ^OBT!+;npf>be zD3V!+P0KYL^hiy7yi2H8l3^Ej8khT>knn|fz1~UrBatzRB;D}yK~XMDG#**CbU7!b zuUdhs(`pOk1o`OLtvq#mQr00d*f0H^5VS0}38r=TpF4gtj@{<$BWsYI(-89wjE67{ z4wo((e|2L2rfHve1-&RRzEpQO?V0;x;AkWdwiym|S+bjLorij4%i}LAl@{`jj@Ud` zP_P*s=3NUoHvXpVL!`jS9a3o>U*#vt)L0NYYMt~wm~n+@%bA9)(!d$@1bdc3bre%O z{)$3lD^m3Ob}LRt!hRrei*A704If4W_@1V?gk3gaqshnp6yqXqp8Fj@vXdEa!mpY& z>bcmQC(aMFn9E?B+^u4mzB3No1Zi5$1K7xRD@6`8f7TDOeK}U??3+IlV9-@nD*_Mu%h@tT4)_hHLdUE59-ai2JOV+^v+S+T`5NrNzBtWpDRt4(j9;RRUhyzMZ#P=hX&`BY z0sMladz}Qwj2d^{-321{!9L1KPGvn>a}P*E|0OgD9jmkFdy8+cH78E}YrP=|ap#AC zh~eQiy#X4DBQUPGiQpz;tZUu!#AJwzN*=K5L+Tm=C!?Dc25DqT-_`A;a?m3L$+&nx zS5=4X-EE>E{Kn~7gp68cgWB~3Fw zdl8qKh?k+|FH~9odrrEi#}yG#$xq^8Hn~`dAwsqTOreI{*;GP%_e1kzp}N(1RS$ZS z7Yp*{elz(Pv&A|{q+cU!IC8n<_hmVTrf|Au3W<2O&*I~!mRaj7dA&7=^SgkY|2r(PXT011e_jj-@SK-6!16HJd>%=-DT_=ptq|D>aF;W z3{CH{NGeFJIBH@$TyWpHsyP!a6=8UoZD0xvA=j~%s0*c^wz;nS(rRI)1(Ij#!fNzN zuROQ$TwL~fuhLRkY0qIit%pRE(Op<%Et;ye&)F!BEtYcumYzN^Not@d1UQ7E>xP-! z)Zq{sIyf^g1O&RaZVIuwuseLcR8Vbg!?Sf=hU!fD^@d%bG2#3URDt;rwTa2Ix-NvP zQBY!cG$b(jUI?t;9PoCE7XI?~Ki7NP#ohH}of4F*r6dv6+(mFwVBEv6c6w0X%-~}E zU5o_+i;J@F$j0W^HP=c7m%+eCQ(0ien*o`wjc;u=e{EC8L(H zk^!z!w#JK$Q|(>i;^vI0$K|i%kA}mn{1a|bkzVdVoe#3VCIeh9edjUu52VscUu9%? z{vI*oSJs%oIImCtq|=KIZJMzNvM(}j-6wv2S_H*(E~i`CR(1r=r@S&%Rn_?@ahyC? zbnRU0E2L_0;nawA#MI+cd6Y>$eF?dU?~-u~}*7$wj`7@Vlv= z25=IvOSXZ<>()dCtM@epZxUwn_I(1_N3$<&;1S*RDk|6~277HI{y6K`QaFztCf{by z{xG7`=9o6Vw8PTQH~u5*B=Y(49{;KPM7+;s2CvYz3>9$N9_9p>i1%?(QU1c)zwq`i zy!{Jr|H50ff|gcHLi|*z5tESw>EWVx(|_S@GY(Ypxo}L48zHm7;nj5eHD0Ahz126& z!`2Rozwq`iyp>U-2zQy?SNPI@`e5G}w6tm#o>%@C-u{KRZ$q~@WnvsdmFGo2-D)Q^ ze;0ffMmFb}FXbJmZvXjtXn1oddJ4aEP#8<2k4s6ARM5{VVohF#aC?a3x4!V`y>P*x z@Yn%K(0~e+Q8+_WSZ!T|?si0|+0Pnvk*SoB8OYC$Tc7VlW&rgFfgM%N{?ND&Qbo-) z(Ayt_X3lF68k}i$%9QY`dE@s+A(DY1?U1O`;Hd1B==)}yV2S9^8>v&`u)|vyR}@#b z=jz3`T1h<&66!HV5DSkG`iYdk@b>=@yd{W7u2KIom@V6qZSJOsB||@TmHqr(4pG?K z7n(U#wce!+x%<62-_3GS(z5%M74bcS*i{pV!*cD+^i)f=-je2JCknmd%m~}_RBAHV z_~cblm`qs^9a0iDY=9uK7&UrN z|83ohFcpB9$__4x?ulXij8$?qp#8~&;s5UmPHlwFDbfb0#u}=73vONU!e<+Nj&785H?8PCm+q_>Vxta;B933 zM!hm`V`zg|l8BAQpC#2_?q2o+R#xE+dYZ*~4o%}Sl}-Xlv!WGV0--*#4MIqE!Jf&2 zq~V4|^&u8%;aUyx0w3E^!&3$m%1BFjB%9+wWy;)DdwwmZ?i_i{S=YOb9`HP}LrdO5 z`cp~5D5-Bkd1D!rr&bo2u^-it?o_+q(kNRU;|xS|_V;dK3ki2YlLcEdgJ0HV0RJ?P z8$Wqw&cHld{dZ)-`T{`@rXS%{HW?h_=_*d#xRl<)7TW4h)K<&fHmlL*8D8V~&#Elk zmeo8AHU>3d)Ye1YJsLdQH3S&0K<&R}8$E{GF$~%X$)fKWgOMT<)R+?kKZp4+10q1a z5w|TAbj{vm;2Z~V5PBE!KelX-CJ=7RE|*Yfe(UN@FYZh3dhXs_IQxWJO$)$A~!P* zn8UGaw?Lbb9B9EUJf^4|ZNazJv#;Q)uk+4#e7ASDzt6zR>APURbX~s>M=R`KV(d@B zTDcL*cj^A@q4eQPbb;D+!H=#6D$w|#k!Sff*WInr z-Y^%XdgycQ5XyuF8kih5Oous=TPQcoz#N5}HYC13R0$rc_Ufo4>O@T&UP0=?SWhTf zqAnX5`m{0BnW5bqDfD>p&2H}&v1 znT9)s_-=|>-#jDPCMZ8R2>uvk*}-`I2xq6?@*B* z!imV1CrPX>^vH|UQ+*;(7@o^|a?pjorR86&x>+pJnURQHOm1Ctfh;n;f%1zj;)g-8 z&DgdC6lMI^(Ea=`R@?Hr77>CR~h*l zBw>iHON*IHv(|*jA^oKSYPBdpIIR{O^`O9XP^*~iUhc_A@9E`F;l$JmA}RkZRIWHu zs=u_tP7(Q_^ZKf_^yb?tTQVmgbydF-4Az31vt8yM!|$xtU)szN=vGlG#B3fglPVOp zlvbUjP4MBiZoxCi8XIE{8``LG6j+<@WrD(%=MRT1)NIxs^Mc*jMwP|_^aU#&p%H5oN_(wS zQlr~LtdeAHgDkq^p;-VE^u9oW?dX%NJ#uwqmHk+&{gAf3ur@%%$ab|9M%!n?pmYn0R~%IGgDMX+nNaCy5sy>t;|u8&nkic z5zyy2y=@P?a@5Aw(?uz?_4X(^i;4-NUaGKy%B-bd3jE+P^JZwC&io_|kp6*fj%fw_ zgY@K1H*))6mZ)`y%jOuN9I%I#acwicYRPsC+f$dH6NvX;FRhD{ZzDk5#=!VfK6ckV zO2$893|*kS+x(e1+z}2t)5$ygtpE*dje~pK5iI9~R7WuYQTkPyx7fdgBQJ&#_w0KY z^gzH{tR)Z19n)q@Z2lAQBa~XcX{|JvvfA9e=v(z>1f3ToBZtvV zJls?NMI3d>1rt5h1MjsDcQ%S_h_e0~&JNp$t@klLbhAHw6}spjPoE5XLN0wmvL()? zatzAciCT)Ws=6i68)soZJ5~(jUp>P=l_W;}?X}tlhqr4V|64^y#H0`okoveG7KVrX zx#!mI&8Mj6m`LixcpZ|l=+a4YZg|@R{>&PFPN`pa`l85G(H84&mS%tql zk*%>EBt7EqFwjY1-qr10{Bk%~qSTIuVL1y}=rwyNvmSY03+=aK7;cqQv)=|~kRZbb zK(1VRZN4u(>9lWm*E%HMrYM71H4mta%LB(UOj#qc*BGc`*zg?tH zpK)|GVTlBha-M>NVzkCvqp+S=x1BwkvE@aii>U5=q*N&pX?{Tl5vR(`5H6(|}kBWc&juu~q&898p|!map9egev1bzPjKV3A%VAJZT1F z?ejrO`})w1b(bESE~Fpa>;v1}FO=Wj6l~RuurLd9^)coL)DFIPtdHvn8jyqG^Ri(Q zAbg?;AF*U0+kX)|%Ck&PFtJc8kT8V#62U>?)9B2J!X_5&dCx4{R< z)M(|l*pWtCRUwo0N|9dKbf?sO)zAN}fy56X9yNz#m$^gT_)66LxWrdvRu)Z^9NU>T zX=&qSo7{<#b>b$TQ-I#9WZQ<9Jp2b0E<3ljpDT55txH>qfL6ekMgdFkp#sREos}1C zua_yDPUE>P`nW&JF$Hq;`z)!{pG{#(Hax8NgU_)=F&f`IQQ&^5zyB=F!@NDl-gvokXaU z+NvFhgX<@PIaLPG<-4<}Op1ewTGp4Y6G@02DuO?5tzzgg^jP&)dmr%|>c_q9EZ+OY zC}<^xTWDO(Dp6sw1$u*+TgciFk@P#9esH%^PQ}Z@-i?F{J)3 zcbOyl%OlasVu}c^4MvPb#0G@a9kiqVF4BzKsD=BIN;Z$y_cw@gdnaX(_kPkblf{T> zyE#eT0VVOx-PW}_FBq?lGv*EBHZAf88P%1k7!iy4_&bcmi`w<${UPeJRQhewAghJK& z(zWV05?Zs|>|#QU!v2Y(#_zvcijJ1nN0e2RFkR*8%E_Q-hIO%_&6Lpxj?rLiPPvAu zs(H#;Xb$p^C8rQp;2LLZt%lAuEMAoHB{FNplEUWVr4s;lk$bv`orV!H-j$f9>`7gqUFI~z>)-EPOj#TIHCZL_tcM*2hJy{$GFPg90fDBp!R^MP1+?QC^+?C%q6*vDP4UtuoD1#AL8-}S^jUOWrZ?5ldL%OQF)$PwlV#|d>V zqG+}JsAgQw(#9jg1116rqbN zbJtDbItP@IWYCS1#uignYiHv+f#p;BtCnsdTbq8*<@q+=xMk~8Z_)IXJ{#V)hgR#K z-O$x5VYkjZR=c1>&^jVAZx^b;Z zoh9Z!Zm`YY_H*f;2mCc@|4!8Yov8ggQCstOqW14Z?ca&ozZ128Cu;vDkpG&re_`zZ zAsAbbZGDw}`wxkIBvEYd&3Vp`K!_H6t(pi_RqV_6__{BMbDyKFlwf+RB(9N51Wc%$ zk0&F|^ZNV>{_kIC=l{uI?`XK;6Sc^sUOuQU|B4?={I_j<`)8$A7VpnW?Sy0!ypAjh zOoPXdWj*laJv8BUWThc51muFxWeGW)b_V|uXtn-F_E^!NFbb|?8WbYGD}nh86-mX5 z{%Ic56wj$UQWzDB_!ei^s=^_yH?U}&_oFXqfxibr;Jp_-yc=Csa?(?xC-H~Sj<|6q zFr_6e5@eH>J=T>XO_bK~XS2b@T9neHd8+>o)wcf`sx7V#E4@hZ6*Vk88BC{o`%mro zE}4$lcd9IgM!nK~NGdVxZL&wYsMg@E+wX;lg`k$>@_-O568h-CV0X?vol>k7E zqVdTPaBeONU%QQU;>)>?t$C4IQ12Ss70WcpAb2nGf{c9J!$hz|^eEK|AEfd*B}F{H zT3Sp1Q-Bp)mIBu@k*NGTAvB)O@&gGpfCFyQW?a^!;?+VpYB@bKk+ggWTHxSZPyId} z=e-bVSP=Un5$?0>lioZ5X3rpC{jG5h-iHK+ul3(k6LP}Jk0j)zpj8m0dL!fpI_idZ zGGTDFc`>CLHeVGY~!da08V0u)tb6IDiG_*ZOAfC{hQzm#N4t? zOUaEVsNon>O`X&xb^G>C{LPx4Wr`*Z&i>6C)FlC=1-6zyOw)ggtk)$RHpfGo;Vs}2 z--!A)koEh` z1dH`BNJo2nIjul2O_pBgzBY-keaHp_h_A~(c=`1ZjPMIA6<5FNMb#K zf;53jvw>ftSH;q11tSknFpq^fis+FVgQ*KB*&P|zdAL-+HiEN3J}$2@=B+)h56a9O zNS6D@o^=`g`Q?Z_G1ciQXslrhsKM_(%isHA*#|`j#6w7eEpLIFIcaCvjnObE!7>F! zgIU;WCim}mQ^O}}8T<2U;P*de&N5{`a?`)1mRSgf`w8~PF7|z_40=C0{g^*pX_BHW z`@`UognM}!Dic**IOFL%GbuM~d;PNluFf`%lhh3UDyuZjovv38g;tnqv1)OqWyn%E zYMT!;?lBu3_w^pmV!jzvy_mC#bk)bKZd{m3vzlXDnoCG%W0n=*E6J+f&S(H9hAfXT z3S;r8?uFJq;B zPRhtQ8fn*2L??WNwwkq~);oI@9K`0)fnPEHeQ%Lz3d(;8#b|`qW+cZ5HkrY~4Wvo) zOG_l#tu>@Ho4tdZ0|u7aF;-YA|IuX|m(w82x{u5I6f4IZ`8$E9V<+yTQsM2t;oZcewcgBd}d9x^GYcna=1C1dC685H@y11jpO%d1Y+A7 zYTLk3+A74N^#mn@e6yzq6b)Da)PVafC}IpV4d1Lp%c*TJjZLx(bJ0_7vM5yG!_4^G zKwNAYJYy4YZ8Da^oc%Gga=ioKv$UI_*G#Qj@4t1*vn?v=LR0~6MNSwW_HQ zHLP|Gn>hcZ1-r;tb;$N^YVTWld<@OJp=Ech#ib7B7<1wJW3M@wAO5Zr%7haefunG` z+XNb(?-8LlHOEnulP6!FH=zhs@`|7@lkM@-FM{)II&5@#;mjNwX&a= zy8i{Z&uub!rqh!%Hkii-xyG0^57@uFpUj|CDmgl!r#NunKCsQ=tUsCiyi{rIvG(a{ ztz&p?l4h27c`Z{1`qJ=Fo2OK9@qiGE{F$&T$;pv~&S)s$xY*`+R=4VN#1U%E@y5dO zY;*YsodX-;L%mPO?zeqo0;i&5ty__P&5TQ)S?QY!Mf19=A_`=DFpw15TsYzSy3JOv z&*4v!Qxh4Ju^bZzH=KB7>$N8iSZl>tA6yF?u23X% zWP^E0e<|hL5wssLu1YlPrljdM%In<{SIT;j+DXQ9ENIA$DzEtO*4y96e-|Vj)zTXhO zQ6p@Px}Pp+zjxJqSmrOwZ&}5H+WPAHBL4I z`1EI@_BjR`e4=)}%MXb{n49?H8-y@IR;2{uwG9ab5m1mN-fUY{z9^JKS7Q2(%w?SXikEVi*?mN zRYv-TRMqlN)keKhtO6aDG60nDSI&^RV~tA7uW1;s)jmR+%%9M}pl^06vHm=H+~g_0 z`g=l%xDr2Hzy91CTqx|q^p$FtRUP`-*_sDm8cKnihFZLMJw7XlH)y`*F5)9 zP$#>x7;xWqIC;2ZM_jIOHx&i|-A=a$(wTX6NO-sRX3des)jvL5AEU-Mk^=}`9Ok$B zMcAWZ;H%{WGzOk1V5wHkUvr!p~E+CR&gf(`-2d zQ3QW|YJ4#fEdUe5Kd$&?mlyNtr6fyC51KqdjToWg(%UXX6|~7t5MDhK2%`ZyA)YDh zCDli$Y{Vh;I{5PIz?;y3u{X)*-Lb$+7L3?IGDq%k(TNJDugsZITbzSbATK=eci%6k z1~?Jbr}~~b2sn=1vc++VGF6ShYGu~%9pfdqx*u!hMedg3;dj%&9GC|1vV+ei zPG1x#*CySQb5Aai;$J9!;?=1ayT_QFkd|GSeK+>B(}kBOsl2?;BEvU}KPba<%sruL z9GF<3xJ{5ar*6#6qk{Nt7Eg&tuhm)Q1&8>xnjXjUm5P|Pyd7&R|3maFLc`O(lC89H z(xRQc{Pn`ZB`NQ?Wlcj|Kd?>bmG0Z&%!U>1ZB|qruXG(ED8JVBw^Hw3iWF_r*B*0X3}T70|KdI}5gQv35-w!>UkHp`GrqiARm^lD=?Q2O z{s1|#XjJ~3=%&hllm-@7`I7j7UdtdQJ#)ySrc(l4sfkt0Qyv)U7kZRyKa@TSATrci z1i1@mD7EO(dKsTJU-SKH9mg9wEqqz&morN46IW@o=VtgSnlT#Dcw0$++2 z_S~OV&R9LjLH6ekTt>y!zFDjoMSnY;_NDrAwXOL>db9>R5pu=o8L4_R_HuXGZB>g_ z$o3&3?p_G zRM17dFYqzR{68R{jaaI?^xCs)TKn#bWdqWXbW#t7za_A z&XY|1zq0bdo((JUSGkmCY<1d^h$d$^B)4smFyn^Eo#Ws;_mRKmp(+{;$2m=7bTZ-0 zW~4oDtA}fY(b4EWC zdMk8FBIpu@o>`M&Aj}~xiTA250cF{{q$ImoZ&_Mf=(Z-$0F`AFF92jpubXinArN&-U*TYHA6R%BXAs<$z zlyPnuj*|9p%dvbpJMW= zA~BOi(sw~-RH>o5k(}OWmT0lH54*mwm0`7Le_2t2WC z1r7glnQuL2sVW~kRMf<4YB)7Mb<(=mc?85bn)uUu^g|Wa4X?`PD5}YX-oCpE!mh-W zIPtyI)Aza(u0-tkul&XMmPImxiK+F_Y?XM{Wz zu{1TsIHxI(8C`Sb-C%58Ewp6&U1$6Fm+x`dYK-9aT}oP~Y^J?eQ$N1qDCA-_67F`- zzV>uN{#3aulgvLEoRy$-5Z54k(PbGN4 z2FDiKb?Hl0MZ8V3tfyYto-6BZu33xAr@qgm=CjD6$F;q1j8D%!)1TdMgg`^BLQ3soY1{b?1K~ z{J$MpKSDe)ecT^E%nk2`_3x6f&5)nRF(tNngHd1zh$!SzU-WtFo(7r*}h6~AsK!SO4c z&*_``z!Sz|nxVY^$gh7A#zSF1!awXaK>gqSVzsgYjNXFtodQ9$Lim8`N2UVD)B^2& z%75+6{?Br;;-^C7>f(|X4yhg-4`8v%K?)2$51ZqjVl(7m2hSEKmb^DA&I>J;$1Opg zC|2fH{YhHj>4D%6ObsM04wgxEy7&6b;F$NHY_WS;saIHpPgp7Pr_xNBvT%zsjV+QV@LCpsP?k946tnH8lI8?wrmtJd|1G@YR{TqNt+YT$C#`HdR~`;?hQrpGf2ix` zL4|65qAy(qVrgaXP-PWb#-NPhdKjR!OmsU9|Gyivupue((l{^9e}vcnZp?nDhHuOw z4)fxXalM2)um07kdDWer)uu?*e{@)Q$e6xbKBR`Rv<7(?Rui&OGlN+BCuFSrZ}y5@ zmH-bB|6#98IO+U2=}hrGJ$Zc0o`RsdKloKjUX;1s)1rR$y6(Sq<8SB29lQq0-3jb1-cGt1Eg)9)MghEqR@HJU@cX7-a_7X5*(2nbEK&~$6DrmqLdoLbFk z>cVd5THObYK4eWk3?_AVMcEe3W|oo3q%E#324A5~QJ@x6b8=1eavp}}&|yc#_u1~# z>ggb0)I$rMB=9wFiz}#cgYRQ|DKIk~g#1NPqqlxLrK&^#G?FHnLROrM(ikb5wF;~s zAobNC11AofUX>YpL7OXKWElm$;L8JWt`>Nu%v4aTbq++=LE;dK}2br9;hlX4K?!F5N#j2pf6TEHzizdhlmjmgPs5XmBqu%6emacKDU z?;f0dyiS6pcnpks$Gi?4aHazM8s00B(yLxIwUd4^*9X!mHQ4Y((6wShOe_JS&zOR9%< zQy3G*3@ev}v3Y@dmBA^$7(vD2%(}ILecOX+ckYa9p;8d&S&v=TUn@MK6tZ!ynR`_GfkWEja^5nOU!U53)f!Iq9e+$|z514w=Jf zRnq8LdHuMh{@POg)DpoAOCH7Nv3;u#@A&&99t)4sx<>{5?kbu+tnB(VfKT6g#H;kZo(S7WmVf93*V zL_qVz2#>K;#wo3Dcyz~8a#B$+mg1MSQ*hEMC-)=Fy)0j|U&MZjB4NrqcN#b{opkfF z5Db7rRiVm4MNIl|Rd#0iaNYY+nduoHYVYGm!gx6Vn)E9*%%T2=+0ee(TAtY=j0*j* zbaLf6zM#T)86%wGwe|7-a4Gg_F{^uoq0K9Eph6c!J{!L~k1Z>MUOTU1J%aB|?P^^U zNYNRgQa?=~`h4hI7^P3Q>55SP0rbM>BRpxX2!yd(XKjtGak|w@@N9 zT6P>*VI2%uep_Any>?W;rFE#Uze&ogxj?;$BQ4D1a`M=@U8(-yFNX zL@ep!&Nn;P+6AOdGqIeUja+)=x4hG}lw`cZ-8d7%v}}~|^POoa>gSmt{?uC0)f&sG zHOykR-9bi^mJ6Y>xPA59{gQyP)kLcwzbGQ}$kvd2rX}PBZYl!SBU}pq8_r zFnS+=bc*10SnFK=<6!ts)EhwBQ5sMq(}WrZ`aC**GTLfZJi7{|qE?vafUJWx=Zyve z+vNh?gW8FnS$sTkrI+hSIEJXAbbybxlD%sTg&1g|@gAdF2`{$$E4Bj}wkbkmanozn z21ZsgbBc8GT6H?%En-vVm}c!!YoQJH{v0z{?$J?B$8v)bYzRj72w7xdpp^-B!7{Ln zqQ5@e(OOs-B&Ytqq<)fCIcl~JUi}^Gn6Wj`xTTslJKSa%FwrBORB8C&@pd0gCkGfvQGd4a&bz=sXVw9Bs$qQM-h8~zMslwUeuNzyl+F65jI5{D zqzGjN^By7nBf_3X9mURP;;d%M2%k;q?oV5s3Hia!jHBkrq9GK~5GqAn>8MWH-?a2p zyM#XH@_c(7`Fn`(I!r;(6Y{;y2Fp&N)6IyB?Ys*?+Xi7<0w z)kb#onm^C<~{$VK&65y<14{X5;vv z%%@U2aaq4*g(Q0^MxmQdAwMDg^8Rtz{m03|*p0*G{*ict)My_O7EoPe+yG-Hw2FlV zwst3f8BKV10+>O54hj^Ra!k8(KIqMtSY9gJtPWbdUt!Fs4*e_YrO zL_~~daQsUB`TtuNR(b7fGTr}jVG}I|YUs59EamU4hw9$WzwvrdveGJd68C|-u zX2)?nA+x!2m0t^e=!oZxwflaIUOOMER~j|O9BQ`7k^oFv!ZCMX%ZDUfYm?D0d14f_nH(hQmBz~6!wDP%{F65A{v{{jvcR%ZmBy$aMW3a3W51MS*A3M#8O2?V=KTq(o^ zuc=;aWCC2#H@I@AV!qW&?_}vmooeNHoHt`fkxB`Eb};AD!Y&3_N70o=dOEo6dAi56 z<9RdYIV0=YhUt&VgwpC} zgoH`z)K5l<`R3-4SIXMZqa>&`VcfNrDGC4RB6TDkN0ogx53h<_dScU@-X!7CGFEpX zCbUz#_tnxtz?Hl@;-gSx)sN6PDRtjX)mLf(*htOHy$9P(oPHoqVxDj^1@-zs{1+P4 z!TXUP=0lZ@=6m7^g)7%0v6)GjQy5KB5Q4`?A-X8=3c?&HmKk8af>3Tnu$yTkleT5W z6>%X+G2K^f(V4f0)86jIRGRtv7$> z8L@vd>{VhvFR~4pIbA%4BsU9R*?32Qq6=UhSjy8(YWQ#~e z{C=B2f`-KL{xbJKcL$Gx)ILx;gRtf2TVi6FLT%93_30ROfd`=|7uAGiyi;WH&DbJ+ z2CbY2m-iBE!blMSyv^qeZna#W-$hbXEGTabRPgRtMHA8HkE^IjzF&zArq#?R_jPGH zB$SW&%94*~ua1Xtw;O9slLPzW+92x!|Jqt#%(~tgBpb7jdoU=V6X8n-o8x)r3uwPq z3yu2{#2FVuTgXDB@v%f6Gpy2Sh4~X~Yxw;$Jgy=N^i2 zMc|mj67xi1GW2g#9gr55Bw#j9oSXghu+;J*7Nn zFY&W~IWfH7cKc`_Bp;wEX!;TPKye$fJ`=l@{?o4cm%FcD+))GHvJv%uvF0bp9I4M1 z3wIs$NBipEow3KO3dFlO4hib^jN8 zZ~Yb3|M2aCg`^-LjY^2LfQYmT(xHUJ(B0joq;&Vt4BZVgLpMV=GXqF>ca3NKeD3?Z zp8Gk^`SF~!&RWj@uxIc0zV>y!z~j}`&ZVzPEF?Apr#V^nqs{@vsyjs}#iqczvRjrS z?)g-Conr0^2O290VvpIV0hY>!QX}lGE43cKgajachK6CPy4Mmxby2*P@%_9xQG@uJ zM0WNQ^exJCSh==<(b`{5aIS8A+GTBJT@N6rgrKW$h)5r^(!D|K6`ea2)&WF#aJAOA zry5vNtgX5!Ki%6m%4Vv|cLcI(^GlG`FXk~}=?03#C{0(?b-ysFyFi{O@v(+O%O4NP zRxAlP7w;K!K4UK~OI>iS=~}a~&J>uxt+#7^P-WY42+=-#m7M>(jMMblZ0BzRw-z1o z1HTwR-+d<4;ztlxe@vtvKGtk<&@O%2Cd=|;vBoY27yI%rR!XQ2-}mKg1eRf9(4`jR z*xVcvO7Tld82Q0$*TWXBsPqSNUfY~@uNkXj^x4*k)HHfK-4EU!T^T88UZET0+>v2y zfR*v&fOC@lqzXAbE@cYMwOg*U06bZS8jXH_EImhk!g4Bo2z&9IBL&w;q z{H$O>0aLd@7Y-*-0aBwqg#vQ_R?p>Z*NpE8c;Zy1R`m0xHm9g&Ool==$n-k?l>!k{ zVbCeaP}_n$6j~s@ zaP2+uwu=p;Ud8|I)-7q{ko12NVE>XomsXgrH(pX2>meDasaDMvVJIe=xk2Nn~Xw(ubhuw zv_%S?ZyHA4f55yN{qd~G&D;(M3N4PZ06FJ7)DmpS+J>x{z+HEyg8Jikk0*VXjbD&4%a1Jnh3)S3N* zVh!P5lN1HQjb5vo$(YzeMVgJyXcP--Ko7?PSTn;A5}~+Z7xBoAh;8|E^M@_@FMC}`(a#tMSF(A0IUPR_M? z4pNWyiPsR#3$ht4O3m*WfG`MTNb?P>s3jN8VW%1-S*z_3t!Npxq@>ERgK!i8-OUCE zZd+oqwfgb}s+wy(L?(SMY!#=uIM)tb;qm(ac8g&ZStX$PWP^S4wp3V>$9siy^9^W}Gx;+j}gF3TOa^v@)@oS}V@{L0pN8!Yy zwh6b;?o_nadNHU=H1HeVXO=x)+erV}!~c_fORN^JR!HS%i76U>9`(ImKy#F~eE-_c zv#({tYBYIz)#_&s)BHX3=0g$hXD0;S!?wF!y~;8wNvj%e&Ev5~RX1lmlVHB{={pqe zkh1cs4>Vbe&)@;KEMN@kt;s92agM0Kx0%j z^rGmlw8T4eYZs1%iC|&*+1&iHu1u_feYk9h+=@9>0hyPW7y7INgd^#rpBn0kLUer* z7?8b9R37wt#5A*#G`hEjOqYelT6Qm`H^6Cf$GxLy?&gu+3%jJL)7H>Fsh*P|(YNVE z7ZMYHwqSjGMDQJM(+x@iFD~Yb(~1_8_$T_(!Pp9mN!RKRhr`PS#`^?&dMFk%wIc22 zD_ZV#8>gB8teU|zmALy;(7C7;)-(pUo`lD-FHz|0j0kmSM!6r^*3U(|u-w$NykSYc z%Rh&c)<)SMn{?ko>(Z1?Zk5SvwNA*a%gZ%zrUT7Y8G)TIW#>rRSJ#+VUu~^MTd&=d zTQf>t)uDwC+>)T>)^@bqDuXm)iY{&H#1vUxqW&`iJBe36AC5q&AUZmB8B?qwF3Iao z$s1N2B$gsTJB~RAonihl*9hJ+e?<72u)98cA5FhFmP&q)&_*HA)=u%*TazsVoN-nB zb>F%z0fqTeALMtoEen~gS@y9co9&cxh2r6a$nsKl>}@UM5_8S%`yAuI&~`ktRr-j< zvf&x*<(&cUJkos?5{^D1g-KrgzQK&WuHnAK$Gfe=MdveQyOM9NqUmL2u%55508q0O&*#2mtSRaAKKy-zmR@}$ z4?YDRiIyBWH@MO$rg1zujw;*ld3I80y(z#pqzxFtWAml<$Ycatwz8jy_ru+#P76#= z33dOGUi(hJweE0OY&`Bl^z66rBG1gmGk<~3nyis<1vHQjMP?wEWzQ1!32{b>$S)2Z zM}`s^w?7MS*>PUr4tn3e+uniCJ1|_P`{W*o$k>iF_$s!$SIp&XDFt!v5Q|p)^@pWTLHO80)P!G`yMpoAx!K4umLxEqV1IeQ-)1NkN-r(*)?JA~JmEgK zgPhw@j$|q?<3L)!(wc1Y1N?K6KH|dB3~_zRwcrVZfjAi|y7|6%&}6jAM@{yk6NbrT z1=8sUH&r<^6`Ilx55ZjY8iB7n$E})_N@b$VF|*E!xY!r6M1Nkh<6IW%MS2}P{T4=^ zy%cUw1~)Ff{H0lMvzS^IdbKUq7klD@n!e$4`ZeY+OLmUDa9W-UQ+{qE+>~V)m}Pyy z-uLat8qB^*p)^eJ+;pkoGZj+=vesd;Q+485TN>{X2nScIH`06QAikA76O;kHyj)rB zPLlktbLWt}*vpMKBH}%>d)8nXIZGpYcy|PpbsgfL#fX=0>%;TfYs)}VwbA{~=ZR{$ zu4T0>A6h@=Xho^eAGTu%uDC*$M z-!WDh9ZQkt8bz~E6@j^jdDd=GvC;x{T|9DvBh<=2$PXrog?X8b9EAkA0AZh75{cl%8~b+$%X`*grS?GA8vr-AO^2=i%hnuXn|hiVC@%BucIChRR0= z*#>cD0F0WXA9X*f@J=gz6;_=d)nuHMd#m_Xt^sCJs-zYzu}7+I5s2?HrvfzI(X@sf zZ)>CzCM43?Hpsu3*JT`fHt*~^zK1k;=xEN zxq*l5Nuu}eJ(B0!WKg(#IZtN;`*M#%q)|@^f&T^`$Q$|0VCnTY>4uoC>SXqC*NNnn zsEaeT_c1&Rb;~~m&q>$vRZu}GYZ2Na6dSn4<%t`qUneW|!*U+l&gSvu@b-`x%e>q4 zWG<$ZHXic;Git^?Xwoej;Q+wOm~a4_g%c7~R4#Z$ z)KN71J52-4fK8qy(lKU9ycwVPWHD;LL+^X`bWcy#o^tHlgeGuhlP36mE@1fj^6Ra7 zTW}%Qs~kd~Wo>O6N zRIY#OS?Ng2X^fI)(mdv3sNY?F6E{a|Sls7Xb+qtes$;}%*4@#OFU2h z>djFb`||A9xRk)BaPVoWd6k~*uh}tomQX#+ycy!&OJ(DIjsn5{H3f}puAJ(UpYOB` zl^oqC%cMvP`64#kzzMJdgIKmH)@@0?EvXEHI<*WZHM$z`Wc59wvftuG%!}6_>*}Y9 z^%Gb%=D;YmAH!4X&TFi<@fOO(MbX~=5tfUOgL!=SV{L;2Esb7ksyiw?sgCO=k)}cn z1_hs0XRsT}iy|flIo_E8jTtc1+|^us&x@ssiY$*(%RFp|YmUO0J~Of+5*N7ZL5ys= zmOCSer%pj8_`5c~f`Xkvadnp3({>XnfEW(7rUv=aFFs-OJCVhHA(||5JpF)8lNmz< zV}-WZ$$S%`0<>4&)}aaa>#3$|3%9er#XPKId%-m$_p^<2%eB@S+&D&bb^DvHtlm{< zUD4X!z9m6v#e*kq?PM9&XS7CzkExnBCGQ5%xqSu9>Yn(1C=KcfG- zD~2*G9%E(bsR{w$843$j_P}dtMji0Q?LD~6skH)F6_(1wAxU3&}sSvax>+gyMLmMQ~YQ4 zP1%*1G-8E4&yVTma;>bBphtFU$}SRVQ21~e!D$%{n+jz~;~X1T#kX`cY5>e{ zE}S<7vfEnw1L24De2_(9TUS}n`K5fmrn?AR??72)mT0i9-0z7ThXZbZQ88V0DMud1en+n2w_fxM56AqqTbrp|Ef-q7 zfhNLQu67lDH7p0<+rP{;UShonq#Ptbk)Ogr2`Wl_cD0p?s(9LOk(K@^q&P=#SZ1^^ z&Ov~pBJcWowk&nOudwnVChjXxdk?v(c+!5ddDXp5f#_-}%`nRP>god4;$nh+gA$Ec zuvO{(aKw7KxF4`2tp90$Y2zU(a247+{x}D6&j@f(cbwzN3Emc=I*7h~hG*A=+J?-u zt*@7`Ti(7aW$lX547Up2rDJ2S!@&)(Zy>nfmmx^1saWFLV9NT>moHzs&Xjm&~;= z6iXlD!!>!qmY*Uf=uxyt!mJtEaea&9f>)PHpBVkeaizqNU;&|9wx20MSS$afxdv?J z@%iTdkw(qJRR+8y?DJ+N)2#*wZQxu+|6LjWUuDj=>bv2K3JVg%CFYl zMc`361!kG4MNR|!)4o8|xyQ2;oU}6>khgI;bED^f#$NvibNyQUUr-fox1ymcIU2a4 zc`NF_fa@Q-RjgWAy2db|I;OfhZM8b(Ud`monh*buy*3p7M`ZoidW{kwj6z$lrzO&? zy4bMV^oATo)=D~oIwjA-Z#UMuVcGkEby8vV5q`Ck4D}da>hR3H#AFQM1@&&YEY>Ow zmE;Xk*9};sKu=&^r%Qt=umMfj0}!R-I6^;e8vJnW!dUIzveeoQfYx}L&^2Mhn?~Oo zQ-gQFM4XZpmdqS1%Vjz9d3H-Ap+a<2mB%$R~J*!n4%Hd4~4#kE@lC)yKPgFHYFx28R{>O2B!QGoC z4GGkU=zL!p2mfvn4n`SU_A=jZ?yCi@^!^D7*I~CdLHgEGBN`r?d!_ZkxBF(oIu@zY z(6kjTyT*A%CY1I|=l1uX@oo>rE0W+znjZ3nxo32jvV@ za^I$~r+229k2i#k`+$?#o5p+Ky*JCF_c10qEr#CWPu`p7GQFi>rfIv_Ep{I)cz8VC zF;MbIZxZiyNndeVHX6kK9M&D{zw;{>J--TR!x=OA9*aFP{?|3H|GP3g&kS?)gH_!QY^%b42)plL zqa)%kqJ?MMgvQ7^X1#de@0!QrXy%9zbFHOw+K&_F**srRcA)jwy?WQ4wR4v!DKrwS)pZ!5pIowFC+tISt#Kf42#`;il`l>*@6k2+B+^`< zxu<}&?~q(XVXx)b8y3;m$b}VIbW#87{{G~qz+xA0NndE`R(T2ir3$$YADZ$%*$0mA zM6Lih)u9D^o2l27ewOOfm?F)r3sI*mX*?O-C{067REraI>Grnr$Mo_8{;1-V^5FED zrn!{^i+S~6czjoDz13P$&8P~>mUb`}SO%~34tPL4s7?TX3ss2}UK zt(ml}Qv&8JblQ95;0U=Kl+)!9;d+jKaNRxWxgF?q=PnHz(vHp7eX825;ok&YA%2Q% zW%eRM_cy{7h$C$@qdDMu$&)dsYl=f%W16cg-edZq6J|c^7qgmp_}f9WN;w+a=J4=T z_57>5F6zDhrQ>an@}=T2^;(YEjfkD13}}hMhOhI7mJE1%_IM47Ic=b~5SyA2rAS9G zB`UnyO1nHZtU4Zq-LTuWpA}{&lS3lPdod$yj)3huf=}vB5>a${1Z@juf&A>0+?Ke`PG?4_Agc6>PD>NP%7wyA6~T_}P%rND{!jadaw6@E z!uwCZhZB?>v>c;m=lg3)@Ha@t)`;=q3U}uc@plXNVXqJ1hCXhkv@L8q$7m2cPkW*# zbHdzoLd(4IzG4?=@I-O>WY}j}w3QlYQxa%X|43`BE`9JqBL{Mh+-u27*5Qby#jp%( zR9hU>_#On%oyX#2(tWN5+Y2;WoX&$~n~Lg~XClLWVbAyGsBISRQ(yS@&w*$wujfb3 zA`WA!E*9KZd=8Gj>yGw_To&Y&--{ZRKQIb?K9!w3@1P4s;jhPX@-E^hW-5*ci*DzO znDEg;ix;kHV3UjGY;NiMFJ{it%%^K~SKUg>uvsbZ2=?1Ji;f9Sy=C@_fA`buUkXc10k;0c2h&Iep5OcZv#tGzgRAf9hmWuB zUM_Ai*rxS-zXOj{2vnf#X{M{bN8?4UzIXeVx%%G2qZLn%ZtM7Cw^}8Cq3ggP#nz#2 zjK&a;y#LlE;F1U=7DF%0{gyw=03)27sb!K}IlnWBST<5??$|&f{l5G8gTtDFFX`fd z>3BC{hVcLiE|$H=3AvNeujQ4zH&5x51Gt-Q!uzIPeEX@1oqA?YWcH=*!x)Yi?uT9V z68a6CVA=ZYg*d&6>4*J%`|}k%ouQ;imoh}CtMs#VD)*)3#spHbX5=_GtPaR*it5>H za_o-3PvEmY`2K9P$MLz?xu6m^=472@MNc?@XEPl-a;;Dz_|~qmYYyjtChK$yQLiev zfGg;t*Y=f(ueTh|Z@JnE!CK4^yxl+OPAD)c7lzFFKSZ{E|4wMxKS$qgx*_7@cC~UH zcXL6|cBAPLkst7A@JVYKo?pest76tS;H^^N=*tJ)%F#lYLx{>&yo;UD(#P_G(Vb6z zPZTvjTFEW>ge@75-x0(ydDw+v4I&b!mRG6heSqzCRCy{67!>nU(W?4^b(d2CzJ4)2 zCW)6<8Z+?vdzZriTM2bAJ;MZy=rc=$WFhV@g1B-c5eel*s{N=NitcKeT*F9jApb z=if>wND57>>BI=DPU-~Ssls1}+)d0{eW$eI*h;1*k%+EL{|2xuYMy@YZAWNi#kY)_tdCry=}JTza9PEd{AQV5hQR0r~Z z_LN#=&?Fd<(=B^{kc){2w9ZVgA6YK+32jxyiO~yt0 z$A!a4O5iW6@}3@s^;gkA76y9yeu$U{dkm8t#mwkMyQGp?Eaolfc|!er@n>9)Kuyq< z&`kP7`mkRta`l-rH(dx+$p=`XBdOFl@TLAZ{$RzJO&>)eM#Nm2C>21*u{ZmP#_vf= zN9p_~P9wzhX-!l;2`RgFBj>cd^7p$y4~sSYa9TB}&xDg5DJ#`*sObM5b!-De6;YNyk?QRj9?+@5$sv zuM!GO=2>WA;H-iLqEgGc%@1SXOce{~a?H{lAy#vgQj19)2-$BbACsEaMrU8)Lu#c? z%E~K$epc#c&Bnwy^EHR#T|9((S67;J(!t=24lXWbu*3p~J^E^sn^2;i&LZIMcU~KR zwyScG+Bw;Lo|ei>Y6`F%wAM^C0Fl0u=D|hMe?HB)Z(S(ry`w&7q1p)hyjyNcIHEA)^)KeGzt?cIgu1N{>jrA)GU>G3lRacPkU7?4m=fc%D$HE0;P62On zol8nW&{;R9_n9Spr}$kf<2>i58%W3QQ}f0m_Hs@An_tvDRgkagZ=9a9a^o$2Ya^<+ z`zbJ}g`s>IF2z+9G(l+)8qwI^({JahjD(oH8A2s8q$*S zw@HY=qZkJUJ80+n-=tMVO7BimqLjRYEz_(Ey!7ZqHM$uyfSyT06G@ZLY`-p4B^lou z->*;@JWtc#s`fH@=Q!7=Ey3eh;HmsnrfYEZvqSn3+vbOgIoDt5bUb@W3rPgmgLZkB6jWZ-Eu{raX{?u=8&`9aQa>MaF-jd8#$4$~!yiJSG5NpqLF{0NZ6mx{`% zfNwR92F(i`o^{SnUj60r+S~8QG`n=1SSx{kmilCZGnM-+)vd)=p>GiI+n4p}nGqI- zVmFf&>*w|D!ZsRw0L1!wZ9`4EO^ag=1hM4O&aA8}bvHjxiz>V+r7tTRLCz+0&--+N7spv%~mxx`M*zGdSqFW0^xqWn!*DA5= zyGALWZ3W$H?RG6R#JTnE&^{u>b#4U>M4YiSd8>{S6QQ z)nWgl*#+U15AKqzZHvAK)~ZY5I65ke9#1$3SMZoPnreu?itvTU<8EDkPRH6(%~QEg z%DjpUl7BrUG}mOF786TAlBrvxBM??Vg>V_J#$CIHR9b51@6}8Y+|E+FCVRF*$mRv* zTh#ysha)RSw?{7C3b!4p0Cum6^M~xZps9!slfCT2&N!-&Lp2Arq}%cwmIH6fnD__NhCB!3!mD zQh)Y`({B7RVv~y{16WdnWNae)DMKwl;T{-~*T6#NqI{X6M|wr^%!MONPTWkC^jK=m zk3oeFg+h|WSX@PDE^Gg&$Xnn?8yr;mKXq7977&D`c>9!G9UNJ1#Gw5AB+J6;h&OHvSln%3=AkH=G zV_Ky!lDNs)C#{pdPTHN$)`R3Qfz!!f)$0~}8zbt(6Gd$_k})Yh9J+gU1>= zavT~)WXhZb6Q{&Vy#zyiWb1?<+5JQx`zgZ=@@s=FQo{gsae^OOvBQ%4nU_Ox?M1SToKy>OFuzUN|)6%mMET3lLnTJZXm7y=$Sr=@@)2BmkI3&gxr{ZfW^8bL8Cog zKaYQh7 z`exo`G1s`c)3s^YBqP-2K`C<=kh_A_$lPa+c3C?GTa4r&e_Yo55}Y~TYR?|fSx@_w z@5n~?RBw;Im6M@RuXIhX4_7lPb2`1WpXrBCwcH@>8=ya0Zw*5-25Qy(ymi$t>0_G9 zNRShZ(n?S)Aq(1f!p#^B0$E0nQT;dD1#JGZlm&guPixG#C_D8O1>r=zO zDVcas`XX#{5ya|ce z$BFNT(7yYT7RvZU%hVTMBr7*czd3$$JC;f`j`?PsPkS8mMM|Wq&!v`swor8COYclM zDwk5jb(!b8$YH_sc4_>H+wBGvINy$qLUO*Meru%i(Wt_F&$3)Ea+^%t8>T#z;GfnD zE1r_G9)AUmf{^v6m+E+t^`m>k!*l5*@?#q%9RlR7r|xd?y{*o7rLNZf529zRnrC>a zW#b0Tn<>BuQ-Qmo+KB0;t4$6!yE5}_dv z8hi(}(y`9@t~6j*w?HyCJ|Kvq;a)Fa3;zs+$S##0Fw?&R5?(&pHy)q~i z5J|1vVeSEYW3}|qW|Bmwf>t4VWt){!A+M>ZVn211pQw4&LhOac^033Q7IrKR!OA>TtqGIVR-|W-STz>EpT!B+ppZQFaRJ zpSad*G&b~de!6iCDGdkc36(h_!hg{yZ8ncf4Xq8ZOH#G;v+0b4WR#oW_5=#9MeS#7 zQmbRBY{gh@1-ER5wv>nOBd2b+zL9U^n2vyaHlL!9?CD!tXUyt2i#Y6y8oOh$1iL&N zzv^|i@i}#P&G%Ewf$uq{Sr(w*Dfh2*BG$I2$eP!AZ1ylp$~Otp&TU2( zEjjj3o9gn@f^q&!MK!VVEhLz0c>lDA-F0@8h>w^<=4h{0ex$?N!ca%rIY+-05P{9H zD^oGyY{#U}ccaV2UMGU~$q`DJ>`(NV;? z;j?A_)18m$MN^Tz{TX~py9+K)s89E=5=ZQl4^F2ysq8A)K%&2h2o8D`uG9j%@_(Ne z{x-fGx|&r8tG>P_FgxdpxWJ6KH1oRd(LJaR+}Tt=B#%7hL5UscLN{As?e(I|V(f>o z%+M{=QV;V@C+FQ);gjAG;8^G#R?*!fTk`DZjzQ_`k;rJPic1pR5jM`FJ;gwQ#UtVa zNpkGpUW+Y%!oweY|KAA@*XYS6ar}?)@L6GB)k|0^DD=3rqmFqZ(JJiCzHF6kKP5Um ztgoHSx}nnz|FSb(sMPut&vL4KuG{RU*n03?HKNy!3Dzv9X1@kWqrgJ-L0oxsTYMjS zGHP9JEVY9qThD=46;|*J8c3uyfP1q%$8kkxr?Sm%xr>H&p`X%OIV0X)Yb=L``VDU zC6_Lnjz{0$a`vsgeW3jM0<>B+$i^zf)5Dw_P~HE|u{O3Vs80?>%*TOGg7J|)Y|xU4 zYU@GF5br!S$>?0QVEh37LktInk3*CD3M&K*$6Zq_Q->q(@XO?30?+T_zeuTGmw&~4 z%RVV4T>)}Z>|#-^dZQw_M>6!`Gk$`yxaGsFNe-HBRY;Q@jE9$m>#n*)+*aT}{nt2A^-f zZToIiYxg?7FI%>W{aD8=1V3VS0uOh#cKq3XB8CBeezFD>oGPWqh3%8@Bh*o>kuUHe zhPuH|zKQobarbYMwS8P!`PYJFZRWtyd6X$e;Z!CR#=&8zwAp1deNT#o1EYn@0!Ml+ zRfTl+GsRcRrt3xKi+=vE^(DRw^Qt){xlHfq#Fb&^#wI+Yva)EPu~ z#BR5SxW*xlexD?jdNXNEsbDbO@BEHUic!So34+(i-rl2t8s}gcCg=r`#=IvCu11z| ziPY{%k{)`9m7%Yeq|1G}n*L4u6jU-ub^NYoM$>kCYY1=GmoEzC<(vE*JU^e?dXnEJ zD6!~?wIZ3}IfMUP)b)%k0(cr3 yF#6t^0HHmuQ)>eR$W10blH02RF2ui}2H)Qh+O_rMe!lB5$8U_|rE!@#`%xer-?`2fcqt5d$shHeR*f2uBSkGE0CEd-t#Eq}V!at!5v`KT& zohBQdUnTT=;Gaz91Cc&+NMnX>b6Kf-%D`p+b@(_F>`9Je>X_HWZaDuBn^@wwW^pNA z8Z$*Jj>ELhntbk|UIh)*aYl*Ct0MBvVPyJfW+5xnryK5(9*WwGPUsqz@+{lWNIM{& zd;tryfM8gVO3w3%O_4>4ocXgOAjX42nfB=pb^Aej>~3ZuHA-UVt@u3E+M-{TbP|B6 zx18d_%p(2?V#e>jT8a%7)rJ?B7P6e>=*Y?7riXTL;7k_33LK_?qB-sws;cHGXQA0I zFr1W3T1sS`30Mr7u7jTx^Cz$ZVklA5ankYSb`hI8m?eb422PdZPG$@MY+6W*bLme; zHT{P-vz>KL`l0ywtoX8XkZTpI*s@~HhY7PiGD`O0^ShtVDB+oO%6V~nr2@ik1L-E4 z$pem7R;`+d>7H7*JncQk8wv%_?URP0A!`SBfbi2tlQn(X<>=Xw_9F_l1_!+TUL4PP zumnqhPpFwp6mWh%R!s<@TJA1?sjU&{n%%f&<>4!+d*DOTf(*2Zdir?5KePcdXiZGaWfz4_<~I6mv%{D?Eu%G#rj!VOM4Y$PGV?()OojGMuroh|jnB?jd)@x39;tuJZQl4Go$+WC zX!J&mA8c)N0!%3tZyur;(mm$}=29C9>t5BrsI_H35Ze4u&@@KiV=TFZ*Upca8@GIQ zocn}jOSqFnF`?%zXsgs*hzHyNy}#i}vP3&ZlX%{GeuB z!q&no;lRGF-|8{>j5epiFCtC=Liq)nc$OD6Z)qWkn9DD(FRzi`HBm&s7pBh}!nC(( zBd8F|`}Iwx?AFf4HG=a8ug;n}g>7wmJ?Cdy_+sa+54^>I3q3Y`EjP{9KROYMXCiLx zSL}8{JCG$zEWQqGg?-;#&m|%?w+?2Moxh^i!qbNLb^^2xQ5#gtOwX@c`67=Ja&MP8 zW-fbqbdCf5PYvR~Ft*ruqyDca>;LqJaW3E$!)kU29eg8#K$yiO_OB=Fehz>0q>Uaa z!E|-5VujFNL8+K4O1t(L{)MqY1jv_l7_MUYk(JtSyJ&w$tBe1_BQl!hT3&lc$9pz) zXwgrPz)MJGVNNZ!+K-dF9o!Uu?zd;8GfDIKLan>PDLU9zd}*>{Gl}=SGV-3092uZb z>=oU}8`mznF%`bIA56NUOaQ;Y++=*6V;oNRA2WO`cYQyss^k<4lDZIR>i)9uC@!rF z^a`s(x~pj@o`7PF1+hu1qNA8lsUpQHoYK~_#{IIo>lcG}hj`xnOkg|Yu1!B|kH^;zcSKP2{+Lb0_w>%IU6DbCMx)daAr zVo$Ee*DWE!>nts$c+*Rz&l=fe;P|qcI4a55>(3$~y#wCE(+SIi)9zaRMg^*?GyrXzoXY@?&!`^q_2v6MxouOw|LlKj#|L5yR5Y zBy=tMfQov=!$hc1Y&XS<7^3niIr(#LrL?#pz99P(SsEhC1hNuCQbZi1<$DT502kVm zO*^ehd0IWoRn6_0{s{12L$K=CK*D#zf0S4_8PUDW{q7t=R?i@C?VlCc_wh_$YYkK4 zvqDRDCFGC6Cl;Sp}qqSKQa2_lV?h6i;rO}wGF-t11 zrK;U8t^h&uvMI;E$nDIY49!N)XzQTPA(K*{X!HSN3_s z=SDVj*Ezv@bayxgQRPJ!*Nh3-090=6w79ATIKcwbG$fCK7OQ~fA%JUNLd*G%E1J;W zXRUSQZqty>U~#C&(FzjQXgg!c$?k1KY}Kk->XC-msbaV5;Ci+p+R#d@zNMGud5MKN z_)l)wJ<%B9Z>rI;hmJHiH85DUSf_TlLOQ%PSlui;>cWzEkzfs+4twT?KgD6jq69>9 zGKFdA9FXb+_+_`yG{1|<3KD+PbwMR|2T5j6=|UHW&$rcQXS;!)F`w^G z-6^r4hqd5*?Uw*##O}s0^}EK)H6*g>Z2iM*^N@^DR#hp3w8>Va;?x)kAJs>S~x9vGz_G61)`K9wpjh7-2@Gvrt09m30SKUc&E-qA2RLmZycLqgo6<24EtAB&aldDuaiJ}~AF zA3aGa78D9w)-qN2JZ9>JDj-iUq{OGA^~T`DAAj(Ad`t*3YdOx+TwD#a%hxObU6XNn z6VmJrzhrj=3yyoE)5Gq*yv;<`P?e+Wh|1}a-?bp-`4`fAWaFlTx<`|T#bthjBYRp? z37frxI6xWp+}WyLZW~`nv+u8_5$ve}-Tm zjP3=3`mAe%QJ%=uWaOB3Qh=8CYEqJgyn!kI{AW2MgA(Mkd-LQC^F5{uW??niO}$Z` zDH?1|{zVgdpC#EWa=oVs9b}9k&;&DSw@^cOu;u zr;-;5`pWmcn?tC3(ZyjAIq1!1Dwj~X*4|_gb=kCMACnFzjmXS{xh3ZP#p<&jbm{r7 z&xx9L`RaD5r@u@+NmxC2M)JKIDSr!Y?C=L0LqfJyckk8sw`N7RE$#ZNf%qAeu)b4@ zQ8MARj|6L%va5k=Yuf_-=r*y|LZG}iAzFKFMYo9u^fXwbfo$#cw6hB_>rR*1^1#fx z`8t%IPPYyDh`Iut!DGWS1Mb0rR77liEBg5(LvfrvwMU?HNPV6&d*NZ?D4d348@X95 zKVnF|^+jN7M|*3Iz3We~xOU4|WW4j<)~RO7jQsHY5OiA*woz_V<~}h&Z@TEzvKzC#t@UshJhxb^x!W4DOH#HQB)oC6ygQ(j-?^~+WVm*k zc3)(EJgsG0duWf>J?$L_K#u}K>l4n;aiEVHiosv$D&C(J>KO*^3(>Z22=Bamzoct@ zFu1T8@o@WI1ynO)1qqp~1Bit=Bk~RA=C`V2wAM8U4tyTOJxQ6ppdDNaIojJot&x0O zr`kRG;-I}rdn^|`%Mdjy#y@uCLvLn^2wAM+qvAu7Wy(qPMZww`w0qLAO_vu(D0oWZe6|7bxowe=R@W&eEJ zF>}jVajSfACx>XSS7-Tl=(2}ku`TA%pR=bsqeMgZMRF7e_OQJ+9vD|-&*Awsze%@X z#JRiuwXD}tPy6*d&c)1%gL#4C+^s7~uXX&Vdp2xaJOt-_%}ZRUYd@4NhYr5KT&8MI z#k^$f4X&5ijFxKw@HZ^thm!*z?hcr*|2#MOnLrIxv8QQ+AV1!dqxSSRe z8c9VymL>=$Z(EkZc%p3(K%txs`$;dBZ)8qnst_vZe($iK$80#8&0L^%>&UDXc4EpGHVq*-WTHkJZGt0gpBYLcGD%8eREl2@9wgRnj8Ej?qy)5+q5B}(Z@)_E&~42(U*^&gzrGH9tMB;gjrp( zU3BZD{P;7bHQt-vN49ul?KI9^L>LhuAVEFRXQSx8XFHvo5_cw(uceqhSC6Eg7t~e{ z5Eo6_OFhPY;{aoGR^k5iiZwo_<0fbISdy=bgl8BpCJl8m@Xr40w5Kvo6{FQW%`b1uIO-tqL|Ha;0a7Eeo|Jo=DlA?$-qI4=!(kjv=-QC?CN=tVR z-8FR244pG{cQ*q__qd1ay7#^J|9Jt=T6-;D#rZqe@jZ@D<_vqBoEWLdi;=w{W+fS{ z_v11ObMKy>jDC~qo={SFzZp69`6=FHCy2xO1)m%aIi(8j+xuvF9kGLR0afn0S3|s) ze$3oN=z-Ajs-J->D(0>N36mBP+60cwd?zcejtlqa>UCS_bFtaJ10 zX=>YWF26d+`z6UbDQ;d)o1YsuzMAS!C`^gcbGo1!$tt?v6A$Xpx1Cqe{t zL%ne22_5gaT8YRFyrK^IvczIo$t>!wmC!(vqNi=hceQ5H4S8>p*dE%r5zmB(95hMt zwQ*aHB;RW2;19%|&CMmwcODKAk{QUCEL2I&E^4ohXAXYXa?*QAHhUDG*ZhV=Bzjj45dhVIUKKyYHpBBacTD6I1_qK6YI^(y_q@-%<$9U9}OH%&srPbqPX7hH=?kD3PlNa z>kv$_*e;<$C{c%U`=RTH~+7|&695+wj8)xvTRv@;vTY~QnoUZqu zquv&RpKOI$y*65|Y;kQ9cE*qm)Ur;FYm*jfB8)$xUp*; z8eaR0h9yNp#cwR~)v=MMR?|BIOot%41)~Hdb67j%IG%NbI>ZeT!l$Uh=J13+V~_q5 z-+=t{6!M9U_qpobCOL=hZBO(sMb+CBZr&$pJ8T_Z_zy}bI40Uin!vrxQ%~N$bX`;2 z<{l*;n%@jfQ_|WH7~dUasE_lXg3~_LVDCOq-WX0^dU{)un_Hsu?y3Y+g^ZvTD6;^f*g<+!l)`>{>yjE(DptKzI3+j{Oern#NAijETVs;`RR|; zhXY-Z+rS6-gBfS(6_Q7}IFK!gQl7zx;@U4_;-<35M}DekU7j%ccGOUlPuI=+JQ@~r zMSPM1buD{K&<>tPX7hBtET>u~W{Gs}YobAZt=_yD&%V+T0C+yG_q8?s0Lqta{tJOwY~V zv0k>E3LO1-&cAZN)d+rmc;pjBx`H{)-SJe=K14Nb^{BqF6W``2LMUzhRjXT9Z-HIx z5B~MD3pXfVi$k;}c$41rx*rR1lJbX|@~;{jFAyaQnR76jj?-6NA^}{$8~)N*3Yv}B zzciMdW=diRR;R51GNwXVHE`!@QTP8#W3#0L>GZQv>}Vi)EX>Y`4@MEV?nK|nUW@;w zu_*N1avxti{NR?z!|Kl!*9dCFHY zjNNeyXU@EwDU$cQ<8hCjqvUBaPzHW_G7xB3(iMy0tW zYM4MG6_H5iT;sdkh5)EYX~}tV{-v=&e`)Mr z8vFk$ja^Sf(pV&}(=+u!_KLr0gmC}k!anqhp`pzL4=6T3?LV<%)sj5y?!1$&Jbujl z0d%|1jCqbJd0M*^|L(&6-6uXxcdxeJkgchTJ zDNdIx39~3s-(dPLhXp-w*pj%tk_4zz^roLusuL2SQZ|+T$A5iM_OJg6v_Jun09#HJ zVWG}Q_B!zogk9e&Q_fBBr73$<4D5yiD=^dgB@I?X%ONGgo2mH!-GW6x|M6cx{^P&? zcMJAYC2|Y)5sdpKDf?5T0_$Iyl2h5IXyeL=D)pSAs z)mCaan(+Z_Z;X%wyp_LFq!}8|(F=89^;2%eLC9%XXiC|3V;n#@M5@kL2hvP;PY@ETX21d~_g!Q7++HD=Kr?(9BcNtxKDv)hl~7phv?eHUz7m-r9{Y#1 zB3;-oo;8+8(t09?&Bl1586+^<@|llrpR`pLlyj=w`jjM1so3lWR{M^(77-RNIWPCv zDkv1lUg`-RV( zcq#QuF|=UBl)ymrXHh6CC@i7`@Y6)<$L+ULt_1*1uOgoox4^;=A?)U5fPt`8S)D~! zfTxK>Sz;0l)GE=O?GCy8THDT!^6We8s{-uV&z9!Po>Nd8GEyLhAKHbtn&i4$WV5yyno*bcHRy(zlx*)4{KmrsFBoH zx(r`S`@p-CWx&QX$ko@K6l|gr&vrb3#i-{^n|OGsH<>U_1c&2Z5#?g+%f&CR772;G z5hx76QI&zwL9On4Ez`F$ksoEoa*@gM1WG1vJVNiG)BYmdqO<^J&5x;l^9;QkCDF@n zBU^WJYS8Ypsx+Io-WAfM;=uASr(x!MFF64Sv3N@xR+(N2)BuvN*;F9~oD>w$)n*~i zgg5=CMJ&So{H`sBEUw_r)y}#qg{QV>Ps;etUU|*AB+oHc z&+$&oT^7%Vwxn_V!SKOWna=izc4Ntf283JG&4Nz<{le

Yhs7<2g(;lAQOL+Ii=GSguF+487z$%SyvX6~CCcg1SEutm`o)5GjZrkq zpIO3A4jj%Fi*|6Dl2SSWnv{13W0x1pPbnri>p^w{fGW@C^RW(l5C3xFj=gVFv5!_c z#aEy3fbR8It<#lX>qL%$%TY5b%vAf{$-bdJ%n$ThW3eHEhs><+2M{o{V0|5lN6#Si z3`8cIe;io)i$ay21%6qIAtJ77vue2nv?Qc${HX^MuC0q?*q~cMwACg>+p}mw=hL^d zunF6yaAq#$}TQ-Mt2=L&R7pt!mF0Dt=5YCuu z#Adk_}-M2KUzlL_8-uNrpdTZFb4%EBCJ$ zs@=}1U1W$jOLix**De^r5G~nzbw9#=KYDb(0g4>|PQI5ev8N@nKLg!CN8n?#W?-<6 zfe`zZON2Fo@Ue2hDa*=aG6W_&o`t#mc(8!BEZ@Xyw;N}z^2>U?XP!7j&9!A~lNCPU zwb#d}sW%JWkzJC|?u8=`MiGZbw`)B5hm=-R*hL3w2k;lzaEuoj#7r~A1v+4g@fOTD zIb?MhaUi*rVcNH$ZLoQ~0QR9irpIWwj@;DoJ2?b)*o0c zx!*cA+g8{I7hvhLk_5eElmm&*zds;1&|$4UIG%-_c6w#fkepSJuW(;)hdZ5FhMn1E zWR@?UX`0X1i|mFi9Z}Uc4h=#kVT-y)4Xm6#r#2S^wsyV57jrU+EEW58^FymTdlv7- zQV!2!jXBP}nD02dic;WPIpa?%H(mdj#fof5-Kjk3MPsfMcXF0Vg?;lrJg z&&Q1`PB|mshdPC6!|+L)$ey`M_^lhszidI#+JC{?j(X9GR>2KGERJ@|O2tuZ6?-H}`~s z_b(5pQsg#hqqbx+)}7vi!w+JJZ7UCdY;3j$Mrm&^?N|D>B3d?n)3*LT{{wzliv8^O z2>a!?Pa}Fi1271=zFpzvbok>x#cWHKUl)B$j_&n@_+(u)mV`zFF8+A~`iMb2)am-A zk#q`+z!aICgMmZ_gE!(ye+{)v3NMR>7JdB2K&FiSoKgt;raX!$sfM%Ki{hyeH7bX| zojS^yQlpxW{EUePKMRSAO9-Adlzho2P2oDfj^BY5n-BVkfH>`@TMf~JS-=<8YmMRC z6s%a+R+`~qG^q7js_WWdZp%Z2@vLg4@tDthQdWUECyS0k0zd)tPtLVA1NPT#>3puD zBd*?3=irk%i#4FBn4k|A&(`E1DT3m&L!X0mO-}UQ!0RIiX;fYmgwh-QQH;9SYeW(y_*ItpY-7CTCz@{f z`$6K%(=suZ(gk}MbH5Wpnw4*Vf|356F2_qLp23CFmdASWAEDUS7LMIKg!lNe+`GtU z#3yp{@53Li$;Ra*QTg$OXr}`dXt9OwcjQI6y%iM{NtKo5RgSO+6fke4 X@U={4Y zMe|?KslEM1prEHY89$>z-bs+F3jx!sYXdmWK!u6v6KeV?br%y>x*}Za7OK{-r%lt# z*yf^JoH^C3M_CdV4XI>QP+W`sY8S%4J)LZg3<~62nz?%#`O}TP^O>%1+$Q0$_%`Rj zlHUu?%klui0;bs?EVyoZlVaYi3ar_eHup`=xB+i!<1=>r{i%hh!(6T$s<>V zg*6!UQofeIA5njbFpDnCoaJa3|8iS9$eI=}ZEsTer9gcVz_NK&J!}{exSI5%{#aL#5m3s0*v-dGMR8%gIjX7K`)#VeXyNW3G|Ayuuf^ z?ML3lF}f>=Pr=O!-bX$x7U?T~!Q2RuG8;#%tjBV_EfKFiI0dXLgWWbkHr=p*v;8y^ zo6RyW*LB_#kv8%Yq2Oz;gCNQ-XHuO%<1)3*}?7WR>Ghr zavu1H7JZisv8*-PtbX=a!cJ5jdn4JrB|O3+?%<|@Fnrj%(fUtaoGQm*>3|uc*@A}T zs?jj>J6Y1j-tNaew2`D~>)LxeJ$o;xqn)L+Uk*3+kzZGsW8adZ@?5np5=8z|<29=2 zz~_|Oi*XHg*qHUGPobTX{T`LKM)4xH|BszQjCKHxKkLjF)yP5XS@z9g%ziOn6uHGorJA%yPd^K4 z_lo$?M#o~Y>~Nwp4&I1NWW4UCgFCqo21$;kAEN62!Ml!CC3%(o$!m=rD&whxSY`QC>IB~@wO$=5@ZN@PgC~0E3mzT zN1~olE5C1^tP!s(`u;Rr)qht^G&R0Rmmte&p>@2C zs6*RQPE2*eQyaZePH$GMG(88Pow`hY$F(WPK zZ%PFkbS@~5-o~afnq^e)vSF+(NoO=~LLV46sY$6kw^A{_9iGs5-7vDg#ZebJHxsH- zQ5HCEsd+o!s2p7%rC7w}s5vz{rrgxSVxyBjKOKI9|8vrq)uj-tJy?>kX?3!E-mIg0 zXUU~$;)G>2xXtKcn6lxK3&o`Qkwg749z)fL zPK?;0{ebOx;iU$dYtsNL;70!#qDZ3Dv z^x7ifK|O)ovtI%NbrKpfy8?6?lQlNt#rov?lyj+*ZZhW;{y5v3x2ZE7P5G(R^ zlG!>6mzoHc16n4)T)zufjljK?grVo${8W8njkmR#C*Rx(EqCxJ#KvCX2WWBIr=e+6 z+s4Bcv{YN~+HwpzGU&YZIBs!m-3HqFqNmN@A=Oxn47;FU&k0Pi#!g*xYZoE#>Tcwx zp0_Q>VXA3sD7uYZy$8oJ{tF&|qr|)8f61$H#v7Hu!bH=AKEp@9XrZ~$^nc0g?g0Dy zzvR`28kS`%e#Q12_je%eMix+m9(mpMm%N&Osvwl{kR8u3LyYDjtlXqUb?}XAUcLQG zUZ3`lrv%l+srs2GXg5zbG|3#=(2&kbr=C|oy|!lew`|J6yR@I)XW5Cr9o||yX*_&V z;3RY|@|~5{2Eb(F5~wbd#vJ8R<%n+_N33J1lF)K6SYiQT;Fs-DrCVGy@jfS5ajwWo@)#gx*FWpIpGmyF-XuYl^Tc>VxIQVk zGvp#|Sh@e|vTFHXJM+~T8HE}7Z7{u!Qu5r)3I1iV691PIi|{8z5%ECz#aoDa2Eev2 z3h~Gf>$iWNi_x%o=6XrP!eGzB8<4n{l!=k&FF+&K1{TT;GF*A zgZz)aVMu38&D;wJ3N4AU$a5}m$PZ;Lv_L85EkVNFn*SLkMoz{CNM;Eu>sE#2vIH=0T2ka>ECRV1`=80! z|IEpn)I7||_Ej_NR+D1YguJVn_)?=%T=QQpJ1<$$&dZO+=qt<+*VUCH!{mv1Tl*hr z7D;M*Ymub(J0HLZSuj?4n29aqDHs$>x1aNeiIoQuM?ZR!*~|T4z>3~Bq^b#eA@S;5 z66!@gb%D1UQ)bA#=r63W#l|3X|HjHxVR@-~&l{s8sYc1r6zOXKQbdmDYaDJU0w70W zX8@OI&3*LEd9dcBk|r})QxHRPT2GzXc3CA~bC}8p7)DcxrBkD&aCJZEr)LFH_*oYN z-Z0j?bASeKfS}vvrhO150t`J#SYSRS)_Ct zh<3;DCO&s;mK@Nb`z0;i40Z$fHI!D?VW<~^ddB!n3kG zl~TOa@WM#A4pCZ`fM-JC19r{U2}7x7rmhZ0xi0mLnWulspHm9A_PcY3l(m_i(9}u8 zs=Z)8q&qh1+ri;kE>;3eOp&ke-u8r}Ook79C~4rcD)`rN{S>a~hh>S~ju)hocmKLQ zU?+onZjgMl8~4!=y;{Sj7E*l8-Ccm%!x|6x%eD7fdvo`7Qmz>%Poq zapq@wU)F$5c5nTopV=<-a}obg*aDm!;sMyWSKAPOP#*AI@qHPR!s6V(vdHJt3+9*D z=6RLoFR$l<+7olsJN~4JmYBVjF0tDnEGT}~VB(D*jQ|b#&bP~uyhNv==DbE*6(s;%Y2NdceT?i=PL2z~KG)^_)){3(K@nq8w72h1u~#~)b2OD(>Ikw2DkUm+fR zd%JjSwXw_B`iEzT!{$|ZOR0dnqE6r!n?B7JN`>-iBehN0rNHstESkN45p3h* z>;6iwO%3n3dhabHf-NCiP$C`l6&OI=lr7sBZ#k)LYs2O&TUxAJ60(3pgar)|oIq2p zB{kLpt%VqAr_ZPYGmY z0dDOZqrFhU3GBi>=*Rr$Ez9UFbuR?=+F4VcM(#G?F69sxt?l$eWJ^(px?dpnskPyS zxa;nFz0jfk(*vd9^5jw3$o9y+>ukSfow(lq)#|5-d$2q$h}x9SQo2PPu;syh<*Ckdf_o3u zF!AWD&(nMtL=MgFcbOxOk#n%5w(#KTbiB+N*M<|Sr~%p^C(Qg%qr+{o(CyRmEF~Ur z56tG8XB$~0W@J3H_uJZxoxf^n0ej>9JUrH%J)10lFaAcAKME?{de$L>FSlH+LvN(trWY-j~kjE-kUVc*Oa0vX=>jQ$EkalK99_-IuFbynmMUkWrbr|bj zhI?K1LL~ZIE_b|-+$w5wrH|ZCmtuK$vvrz3reA3pm+ts=I|iN}KDh?8uJo`$sBN#` zkpE82ycWhDBfve1dU{hTcbThuowt0`^7aVIT1sen8~Ob5%%%s`b}e7`c8LU-92FVM zx+W^b-Ws*!kFcE-(!J__v)=n7dKP&1hqZjb=Dz)hOZ=aE650Er*1fHc$rFod#UqLr zx+ji)wY7f`M?ACS%O}4UHW_~K>}OUS$jzuP|9P1?{jUf6_!-%^tm1x)_E}thOFE&JDsMr%Zh))b2JXp~@qVY}Pcv}6QG&g)Y;dDOFwL9XP zt-cgo0ty<+Dzo;iSHaa}v-S*MLc|FU2b%DhhW)>1`rJu67(**bU>RhVC(OOI^7DRL zrDIgENKI1AvzymtI#rJfaLX*}%%}2PUTmdHB~~D##Q3Gw0~b~E{dQC^k+hU@5fCbx z1wuv3y<)lb@nbAju=8*8k!X=iYZ;#U&FOGUz6=2p`|V+XtyGVUlHQ}W?y%=%UXGm8 z6Kwv$LpbxUPV*C)pn6=d4fFh`6|f9et)KQMeRYooTD{sOSJ$Qu&|MDM}xy$e(W5L(cprsz0BB(;S4!0A&sXA0s&8Bssg|W8RT_^0714CYTc%E#V`u*ga2 z8=FmkHnl!eG?D8*pSlcER+-Y5pRZOxjUms{(1Td3Olb6aPpRump{fp9R&ly$TGL5R zYnf}mYFO}C2PVzAXKU26cH%w`9~;8WomLq`tXZr1qM%+I80izwIz4g_x(eow`TS{gKvBfU zSrr!7dN7p{b|>v8Sf278sxH^@X%)Yfou?_BUD~y6CL9OZHRQrcHGF!@!+(b?Ex6lm zZ=_#Sb!KKPSOu$WE;w)#26KoFGpX{+e!}a5(6IA#|)9JTm zR)@>zFAV~l1ApSc)5WH8I(<{NbmV6XxvvD_GeSoESL5z<9=B^uE!gIxtrQD4kJ^M< z@^_M!hIbn!_-!50x3>`elbPI0&N`lj%VygRL0Ypu4fPk-d)^C}3n&OF(@cc6j4;Zb zI*PXoJtAhvsFrVe@v}eZ@z=edq@<~LL}p*Mx(|IW-_3{a1-&>g!wOiG)Ngr3`|-5y z;QjUuOb@NPlB?nR$kj{@?^a+wmwK`DA>EXZ%`%<;jG8i$v`K ztrA?0Noo9V8%qkMWnYfR_fCkPa$UDt`ou){g>9bj&o-DJ+9$W%EV0L#4`JtgNWweY z^3QS?x5E7Hq5dkHFQS;)MRF+R_Y-6O1TnBAS9I#O7UkzsRhomxLkYBQ02o|jjU4;jyK7@nNhjYK$&`fBDC3#yNe z4S~;c*^~*JKbtEGuf-?gZ4_&Jl_(@bM~VcgN^s(yL38~kxV(+_fG+o2o zBTs89Cav@{4d!NIUze3wn=WfGsmw4YrtMP|TM1(c%-TQC0TI}k$n&Yqu_jeIViqvc z@r>c~UY0`^RUNAU>c-w9xs3U&0>IMA;{tI|9ZN-SjweIRyV~aYrxCXLeB*UlJ#Z|$})H8CpvuCon+wNsCBGC4y?^C@exk*}2%76J5LUlJ8Kb7@s8)7K;%YPf? zY{yBg@E0Lli&}N#-xSOAuQI`{3qb>`0e;^;wSgt=U&@g|R$j*ty_cH&Zk9WF*B|DV23M zr9!QIl-P$~Aer8RyzUfHX#ziBOZ^6F39#nUK=spcv*zLKjo`=}DFKaH} zFS%A+3;h16I=_5O+t`kUYvcJ|Yw>Y#W5*-G;{f)%l_gOO$ot5{AF6k&FE8C%UQpPF z@o8-k*?#JlK-fqBEfN1Euq8Zy2`t|wcyGvtC!KZT^KGBQxLE7;Ujkd1IcfEmz{+*) z;yawYa9x(#CY$aD>1W`3d`10BU?FXygEe)i2;di%zMhIFPQaht2j=e3vA+cN)>*~; zIIV}FVK&klaO$89P^0HQ8NQ!o&z6Uq?#!tV0ln?h^>fXJ3a;zoM5uCCz1B~0o54Jy zV|KfDP?F5p35ziM!sk{}xXZIm8LXAtN&!2>ovx)<0Cb z5VN?rq=*?>BxF&9T!zggDUCCCzklmLFst4~s2QGJhQzOp8f8x~{ZaJtLJHzxym&Jf z(SsUkT7?Ne)R8C_h{@x(rcoOHs_0j2={zIe;v6M9)al8Kio<3#HgUgNcNbo?a^goo zQ;VF2xvz)3Q5PPsPchTZG4s5Q%NZIy|GNzPKM1UR$$tr&P#sfUowiY(^0;Q=ZO!L@mth-<{%gSg>%@xPmP#<`V!&$C8*=2BD&J`U z41Ya1u}WC=jG?lcd=F0SI%8({cG6d@LTL>_bxh5%e+*d1dH*@?dM_+SYmPiml2Fqo zFU!*WLG%XO+eDP41`G4tDteO|^WsX4M(_P(Ij&51)Q4qQH9%n;pwS3qEEdqTlhfo6 zVoSG-;6!gMyESI}*6eK990fC14RaYtZ4Q^JKn}lFgPJVGfk2SiW+*8Bwp^kUl(SoR z*jQWX>HD(>95dgboeP8jlp7F%59#4LQV7zBwfiSDoFx?)-&NnvS4;S=W@R6=76$PT zs#yR*CU+rQrT=FfR$eMb{6UCqRgjVvXlnh=M|Uk%hcZCN*WE^4%*H~gTx5@!uB-wHr(G<)n2}oS*A8-H zf@qjxtwwV{avXLRP&5yAJkReL)e<5DeSw37$yzE%Tb+B5bFp3IR>>bOyWphVp%Tad zvz!#KkMnJ%XhRxQN@LEWCn_D#i906Vfd}!GW?@M0W=Kn-@l;J*GU zEcGZuLf9ya(O`=aRK2_$Xyw{n%BzF6nr9t3k48U%C4A-(Wolrg0*k@|93>MdBM}&l zlk6{*8q3rltAUfgv@YYsdG{VE!QPLOvXp@>P}mQ~b-c!W;DlqYP~8_jQkxYgjKizp zG@_|Zzwbbj_OOccXh^~w-0S%!g)%@vEGG&<*6)(tGS!6^MlAXaml>v z-K$cWVK79x7x=CPDBR|q3A84%n(Yce^m#Lp6~3;{!xZyz$C#paNlfKiOf9OPAb*f$ z?^Oh5$d_Di7k8wMNXQzdfxYX6BL@jfp@6w~Xm6fJiU7PhYH}Po7h8?G!rJh_wBBS3n{%43Wr+~1mzzm4K`;2-R1Wd>H8TuaHf4NxbbMMBGy3@9vqjQ5 z$OiG1^E|d_-DC4UF#j|HAMqC1Du$)keSNW0ld`R;zOc=|h3m0x^iDfKkdbU};icIQ zaxpeUaByl?ZB(*zuxRNm&GIdH=#)il$!piHd?=@B*L-gG^8V$8wqA~o_nO9D;bA}h zeNV~I;`+f}md&7|ca`0QMy<_!&(yXaZ_gfMKJijvd1@u;5?oSXp-1p@DuN;HrU!-? zVYmkj%SMjctaNEnP7WzgMHVaon+FaLY|{-Fbt0B24sBb;-)HPSDg|(LtqZr*(a*GV z22`vF9(;}5Kle#P7IVdhAX2Sp?0r@_sTC@EAcI_PH_X~ey zG_&e;4MLqYwXnkYEEY4+byh zN(S%YmkM!Ld;K=L*Mx{dK|Sxzc~qC=8AkT2BJ8sw>k0}+-(WH+Sgf0359RU z9!g^$P^w;B5AIqmOuzQIuFw2gBY9LN7se2AgYsuNZumAq_x5w!3QQ3XE8Y|y+1V5tBc=G)vjYt9$O}$gfO9SZ?T64cH28TScv^VU;CDaIW|1Yga`-~b=h z@Bz5?Y<9wOKXO462YeOg=ufh|D^P#FxZlM6N^W zJ?c#bxMrgn6B2VF#oDs_>e~livZ+ZI2d7>?yHV z$3Ju;$fRF%6DX(s771a5Gv(rMl9oY2KEZzrli*X~b;Zm%u!&Ns$G_;M(*Ner{|*pN z{}%U);!8=|~B$d{vzbJvo_z*)bVQ zE@~9kaZkG(vm^<$UUW|~xIyw&XLC>}rWOOP1-NysQAKxkgB_{4r^4b>rzeAM32<3j znX5lltbC>zqip38y&m8D`WnU1=veByK2q!^*(m!puRA16ik5QQ^DTnb)i6;zl5=ar z#HMH~vHd{ZDBXH$+|--SrE1ZSW#M|uju=rp^SBzfgibN3fJv*OSo(_Upl9o5JJ2`r zbdQ8hbx6mXj<5+vKY!alOfW=czw4atFJ4581g{1j!2R)~luo}>UnCtkXgK?fn;`v@xw|$E76d91ZdaXu4Q((+0 z^DP^-Gr9B)t2~?V8R2VKjtI3w%r6rsG7=mb4$OjKv*(JdMQ6K0}xb;#5CRE~+)AQ%}az-g=Re zc(xfBNzA6-GGagK`DP7o3q(c17F5@@!D0GM`kMTu)ZzNZn|=lu9+XXF5&I?k;I+*6 zf|u-71GEC8=&5XeQ;f+AsVg}M|4YjJs?hB80x zdV7Fq^_)5heph2`t*KRo(IyEUZH3S~|RX6vRRb-~zzkgF`eJ%#f4KNg{dJwp)SnPp?Fq)cZ7Joz?KJj~c)lVenPgsJC5&BX|Yljaw(5k4+T&!W!|P zt4=A_lXy$DP3mBtKBjWJL_pdWoi5LiA;KZWkbj%o*5NbC-!k!EKlU%3{Yz&V@fVWK zWL3VPe0=Up;=f`V9sifkrby+`{-v|1g3(oO1Wfw-=i{vxFM%GlRw_9Af9Y(mUi~ye zshEC~a=mYm6#&<7B30tNsq_6yXC-h|;^xnnlBNcr30_mQd^cTGf7~#Bw5Z0P!Y5-3 zc=DNUZ4cUCnM=vNld**T=1@(YNETGjNROPh(1h@V<*z3X&MZ#-G7#;?`nDW+vZ@PfpixtP|xFNlQk-=b2c}{KT8U~o@`x^3&r8K zzQO%VXaCaKzjXHhFFN}w4!uh4dw-_XKU1-|lC)#znW!JK2t( zG#`CELvt_5U@woVTL)t;<(w{@4;mpWl8jTUj6m+e>hw8ew&TfopoB9PGPtDnsX2tr z6^UY|2KR?kY(FTn$t7X|jHyAAHj(`#p%!`J9w?DFfFg$C0?A@Dz2bO=qG39xk8~td z=&F!sc|{II{9+~OY{f`4YmZj!&HJ-$F0b-``msWcc_7A;y)z=2In`lwfGIahpGNMJ z{<6~@fRu6?>098x(PA)(Uug^wtqFLF;U7gyy^IN5mGrBf1(NT+-to||4y8Zv0G2$e z;IYq=-Y&b)C|(Km|1X-wgZ&dNUi&9n{H4&8w(22Ej8@Gn`haE$k!UuzDy0Ka)xKJ# zB2gVgRV~0!V`x+z6I-3uRUNWcJ@KeU@Lx2$osC4ZC%gbrr1HuY|4~9(fFbuJuu>w- zdK^F3tdDMk*hus?=a8UI;wA|`m8}QLp=(YjqOI30@iv~X`<5tVqn`YT_#sY=oQkyy ztJBpe%yDQKmIONSB~A*LdGUq#NYx3T*#&zh@sorZ6x9B*NDb4hi{ty;it&JEOGt`2 z#Tw&4C5jvsJAO^3?rb?s85i629)O>e4ox|;fcv8OK@#8i()yBl&T6UVwB5)$fK&Bu zQ@vDWv~x42v%hx}>#r~uOewH66Bx;Eo28-~2uSL8QNntyk@gXyPU`>^Vp5x9%rY05h zE{oa5o&ByI%O*+wE)NpP`+(ea^hSn0bC^1yldr`{8ibT!qYFwgXML+Zd-BeE+OK_w zx4S2Md-ScG4EcK{YI=RxAc%jh*Pr~=(gPG9{uzJ`Tc8QlstLYx)i3QsO0x;ld{J5n za;117(zRavl@PxATlE}E`fPW%`iB&8CG=}G^chM`cX5X?Q9Fi5wW@ntu2$T0?A-DN zXel^CVj4PUIx)YFXEMIIPpYlRJB8mn>2-Tyb-KNVK`_x0Sc8XxCRQ zQ{TB_Dd|BfvysKLGH>}3G`o@`>7M|NPTr*MC)zJ>lfu2`zF^-I;^K_nd*ShFmC9K) zqe7C2SP-S3wMI6cX$E1udvj2NU>>DT|M(8xTTKv3STv}s-^*)KewH2ZVzFE4roY8+ ze6+a$Ib|!jSfRH*!Y(tR)igm&1VzOl9W$K}fD|+~iGODqyG$tfLDrvMrsGA}zlWje z#6Hfx*hfv=&*d3t647tQ(q}O!WrZ^(FYUfD&{Ahv?G!PB8#6WBJms-Cl_cGl!Jh-V ztGnU}(wV2H#?&k!Ocbx)&E?lU_w$Wh@KY|AmnT;iQr^YamAqp5uA9YB@t4h0y%tSv0eK0G4{G2P|C|Y zU>|0&0;1$-S?6+D7l@n%P;bNstP7TJ1ey*A0cVWFHwM%E;=mS$P)3+R`tQc|7!0oo8nO0 zHfw@}pdk?4LV|08y9D>(ZXvk4ySux)yEo9dyG!Hl?$UWXd*5@{Gw*z#s;SDaxT>yo zu62NOIV$Wx;Zub2OQ)Gf5asprd>ZYhZ{&a{u+ke0>WWywdfjO>Kd|*bu+BIPL+y{y zUR`cKEMY(Vvk>cl$RR_Bx4NHoRpQ*X&i8F&oNeO^+f--8q1%*dGj*iy$q~YvV>^oD zT8ZNj?Om#|gEG$(!`9>1*Q0Ho!%m|0Zp-6072eI6l|$ft9MrAFm-ap1JYKroTFuxw z)as+7!`%Z2UFcqVJw>6}3zfmz_8cD8-hvpjrN^gBr?Z3H!44Kf+jBADFWW);JDo^z zZy*Sj>J)u616*0>C=L8bva4irp=GNjLUiUnlYx4EE=+U@JJA&{bD8)qBR?O!uPAe3 z`+0xYcDeKzI3TtE%QLXGahcL8OEZ$6cD=1k@_HWQ`ZqA4MC;g6Y2RjUF}tmW!eg(& zJ&T(2I&%!Chsdsi_veJxI41*eVf1j`@-S*`1$$j2fkQ$!y@~#PH{|l7U*=3Rzy?Hg zK+Z=yAb#6zam%H1Z^XA)T6w3b(`;3R3rNv_)G{z!2Of--sCV22%dWM7Z(pwOT`(Tt zVcJ&40qvRh!&eWrN4AF%z{rUnc+|c)uUqV~6BDn;Or7=Ab0VB946omPUf|YG43A{V zGhS!%l*y-v=T$Zx{rXWGepYidnX?66(K#~bEFJU}UIXnNZQ=|^U%=zDiLx)I?q{@_ z&(0H<=BT?2Yghh!nK0`YR3)|OR2N8DM*gRwI7`u&&(HfD3){c1x6WgBi1*$(f_qC| zx#^!e`F0mNVlS+I|4V1zAVc#f|JeK- z9~r0-!)+2wWn)l^O=l;eb)~~q$~|}78qD5`J_3D-WNCMlLIn~jtP#VkRf;iIyFXvc zSiY)M`E_B5oUnac?ly;SHYjJW6c2%;)dAAlSPitNdAWkgjU8*2r|cwQc;z1&k*_4Y`Xw`-=Ep0>2Mm{WFz`=s_Eod z+|Kcqf{3Wad2gqPg3l_`;rh)4l`nC}O5-hb3qsqxCtv>k>dVXk!~4$P(4^MvtS5L(V-dENVtyNB)Z?;D@}e+b;Lb5Hib5+lb5q2iX0Gs5RR{}4h@$gk>t zVNRE0_|4xt)rTrQTO))e`Xbkf;p1!5mxH{0*@j>hSHt(3Zg0-;DN3_qfFKUpc7WC+ zzm{cDca%1lYTyXno2&}Mn~UXfTdL{XCiS&6X;T|GR)*%hw|0~PF8hZR$>p!h(XTVV z>O?3l+~voquSx6V*al_ z60+NvgL8`@7s79FR~IH$fJJK#XMM6_)!x@w?U2Epq-o(3(Wn8WcXe8#95BF~{4yb} zqGi9tGrt<#8PTL;d2G=9&9`ec3Cbl0E}6~;9+>3qKQ-*c7XeaAUh6AYYODxF^Dy0{ zhEuxK6=Z8rT+dRioS3kULrj(>x5#YLOn3&~9;H@{bDm{($%yUMhuJS3PnHHG zlGMn}KAyh44on{Gq$9Mp4hNyG3}zCayLAtW>;_R4irt0&4~-^)R(Mcwx;i(S4N3H!-<<#sKhc{!}9{uo(j zt<7|I^$dsf;70(r-DWUfooj2HsO96?G2-&~hMuC#i?kk66E$o; zk5=A_^1)5+jM%?SRd{e8E?t8|*=XSa?1@X5J+QQBG=vv(e@u8;F#l|de{eght<`}HT1>=G{-sFT2;29- z=n5G(+hMhfx6UN>bY}W=z3FHfLP99hlL4qBBr7}hLU2EKLg2Z#H1nHjslUfq>A^~& zhdrRt4^M`DD%(;M>*v$dqIXcy%)=D?#e0V<=P%hsvT^XGoeSEEbT=>W)iZd2T{$EQ zivDK`_*gN#+87t+(Ju@o1K4lmeE}fcl|4t%g%8c1z&hoex$q`B{W@&*u~K~8Y6~%ATaf}2#8Ir(g%NaB zUr2HM$YZ;9otQUUJ;Gfq4xkh?*_%lg=2n^bxhMpk86A%$JtV|IT^dz5 zlm8GuSHqn89oMivpHetjj8I`JPNY7N)4e1`m2(=^)jk6RT_UjbPBdrlqr8rN4&Dd# z*{rt?^kOKKLQP_dU#SyH2Et1@bExNheQnB)>P=N}#TDF#r7R;KEqa7jZytvO)Ut*nlJIVE#xn688be* z&6UJ7)88~z>tLPnjL9!&CoEfR=T)vtZ>MI8x>r-4m#!BE_4v>`Ad_4`+pW4Oj$Go$N6?NZP7f~Lp9xR+m7zJ_ux$Uu_}GxzZ)wCn z(^hc1yn}4s^0V@2@tAykT^8QJ*TgxNvsP0|{Awy6#yOJ!zNs+aInwNLom0rPtuiAt zQ_)dh=zH5(;lX33&ycpz9C%k5C2gh`XRnB9bU1J^>9tR-6}7q0$=tAF9DN`6Z_3MNL1*r?%Xy!c4r*O|X?wHXa0`WLQB5?!f; zz4Q=ECJw{!UMW_EkJ7qv{DrG2;2H@P!Z63VLzy1~=g&5cfh+6AVYy|0;c8u$vr4bY zLxJnuP0}lvq&(}HA#3D87IZM!V+grvyV|qkr?7hzbv8A$yHc?iE;I@DcYPRe6rnKw zVdQC)ujhj4ssZieOX?H2<5K?7#BjlSdD}6P#Y>b;O>Mvh*4X6S$me6Rvqg~)1w1}8 z`w#D3=QL68H*lsL2bi%GzK=F$AQm4UcC+Dq4<-szL}z?KV_(3Xb8fyTZ?P%=gMa&n zfW-TcNd4k=-`(V!{Y7fHw;dGg?L73IEjeKR!qvZU_5T)J&Cjy9&3gEUtiIsNcJyV# za6(}s2Hhzo0F-3=^IYW)xzV1oHRa=t9^{49aLn{}CLP)hmd6R7KV+fd5(y_8cx0ixd1)8~#!>uWCp5tBB91D63Wp z0$n`-g%fQ2K6v?lu22C_?vVCvRB7>9Z?TTZAL2Ud%otCdnz;Ni3$OI0uH@}xNeyQf zJ;a24SCY6u{NM4{jz8nCMb)7t*U3JDKMT%=(ugVl=?p(6k>U7Emqve4t#BC@O9-V* zaxFNTWf9scpB*ylDixghXa5y41bdu{(RY+j4k)7gSV{6uP2gwcm5Cr^K{m#oBl|9< z1~wzV-YKR#hI)vC`-u-0pJ2k(kh@s$B*h$~Rq=arvT$CtxDXc#7u|bF!VhK%*k$^d zpg1x!c3hDEH;DS0ep8czUc30MmeDQat;ToY90zK4GRZ6UX~`^Y@hmIzZcQmiYRTYIQTPZb7%5ox z0fb6I9MC%Bq{@2y`m@ri{MLe;2OMSf*tX-UbJx_4)^cENdZHUZAhb&P%Y7i6FwhUU+PCV{BSWHB1*y zpO+Qm^mI-0H5)BVlT^2D0{}S;wGmD9kz+?V20$7EU^8bd^Yj7h-rh6kuH}(#mf*ny zQ=H9zWZ2^}(=Q`HM7bdmjm+4S7>XgMc&VmDTJ6Js7;M1`S(JHA$|zB?Ii?T+)JN`I zTDJsTi1fOc!yg6(pd|%_Lw(Um4?XE5M$UO>Iv~9n-%P*_Gda>$KGIR{#@^P6AT|0a zG=BD^0x>mblz_DTWfVd#+l+c3NM??6yrHck`>t?3rq!k&?aUpGYr(4OB#Co0|KCP2 z^1EK8u5qfn@iT&nd8ctNjftPG6ND@cs5ujqix9;A4QdPxTH4e4sn0~}o8CzuV!Jpl zUCOT)^k%O1^OX{0f$0nGtP%jYr;c*mVNVg)qu*(HD&%QO^uzR9s7Z1{C=QhV(RVYS zKKEroG+N_Q2Z>Tdy%~0%VzP=^3TbaDkKQR{qWq)5qFZQlV|I3}47-VPaSSeYA1zA1E-F(kQA>;Gr7vc-P3^SBnz>cq zNJ6ELEfq<{o?yBXhC`ynpns#pjap+49-~X{^(fRq)We@!=>9~BJKFo^XF%FGD-5C_ zYQ_~##g%)o+Nft&qLfr{K$xERKijZZ+`3|^t0G~|ixnZubZZXcgL9%&{n%@JJZlSD zy+Y)TAPbT+3;Oj{?R#nccGqOLm*%9DzF4m0GC)G0cnTv=ku);ilw{whrj1&>A_U%2 z=JsL?-i@p=f2+}!T8(~0nGFcbhPT{=8@Hp{P7Nfen0Fhb(PrS4YI_deS_yS98C#$N z8`H@|j~~-AXfMJ(ZgEulqIeDr;}23{?Et5@6W+!0ueC;o2ZVa~`>Diiw|+V#*kyg& zr2t%1MP1gYj8W2d#!IWPv#nKfS<*u7(6Nm5+e_E4tc;TiR0jjK*gYV&>*T5n>aZ?Y zjV3ycwu=QgjBL9P(PE|3viesWthD7wYF3xX20Ce=7g`5KJ~Av7k(g`nI5m7&77L2KS*pl z8SXwEgamC*-8aFf!djbysB^-GXDlx1Qv2A_ylrBD`LKY~7W(vxwc|U~^ar9ILo>g* z;EMsVz1H@H6VCoh@QI8}`P=txl+JxDv*$?KUyULAuZuB-1bZL9?c*bZ;~?Pm(({zy z^l}^Sih|*4hoDvW=M{t3GBxq&=3#A&)INg1RjA1I58taY-Z-ib0vB!i8jlOCiIpLX z6*7RC6!GYq&5cdL%8oLypmP8FheLv6mhsaIOW|8r#Dn$58$;Pu4cT1cjs%_ejlz6K z`kJBmyiJ!hz#1_64Wxy@w(TUlY_fCwmh0Zv?4HpIVzXcTT0VKux(r;uSb06NeSbt3 ze)~4!KA3^U?S10QtKly1MZNQOF!hN6k5g{U{i?*~>e+q9;p0!*hyFK!+^i=auSb-4 zHszJg9qmsLY>PtlG>ZRxc!pnC^*}`ToSyZ3HT-n%ye$NN9tW=vetds<<9d0|JAYjJ zY)Sh#GBTY<+@^$bL@)dbYxT!20QoAttqrRf1yV&uMr_s?=!am6#{P5*hxynCO$ej+BqH|n1h|ie~ z5K;OZVd6ll6rd{S%7ZYUy_ovd?R#Ib($0@Y!?{3G$>=iCpm*!Oq>G8g*)4HqhYqxtiK{k&cr>_orB8yVTg8^p--K8A0 z+Q_XnCj*HTL8OE!cZX1^98Ro~Gj#{ktqS-$8TfT(y?qHyBH-mlnU(Ph$=?XIosMTK zo4%+>uI$c!16c#Sd|V!<$0K=c3lW!2Q!#rWLD{l)xBK(1fl!L`GAM*v2H^7~*N=AC zC8lbD`*|2$ppPQ;MHd|3v{lFH69y{(Z`haU&K>%4G(L1u`^nyqA2j6zLP+za^3m0} z8AwsuVL~VfVF=CzvFXfX1U>~R#)#pC30)1oL#egt8TOaD5)DXgixKP?y(%4u%U6t* zWXL%|A7yayvlgM3&8_8Rl~#y7p_hhYyF`{>E?#l+E8T6}G$n;a9PgVA_bYiJkYaoX!Et<@py&v?oT9Xr zMcuUAX58(Z6j#PqK?1m97G+Gy)dX5SxquoKb+*3v8GSvid0|6bPb}{{k!vQN6bBvTS4cw$XlM0)8V=SqKQ)aQ3Cd=JE7+Q zlb`Sf!Q{i*8JYMC%!=>K% z?PG~So%Ai&X%>k+*Fq;tO?-#4Jq;k!p>5$0gY>lLVbmu;&xs0PFtI_4V zO}O=2=Lr<$c8m6`iDj2Qa0 z(%>Z^%fj?kwo$Q=4XRV+7u`s?-M?A3ihkwRO#9n9;@J((-WO01d=aS&qAHd55 zJ=y|Vs$Zi1dbUxFI|g6y!B^sHxu}WVy+l;PMI#ElmZVWTy6dLmLz-``5@2%3DH^DT zf~##kmeQwh0uMTrq&4F=ggRm4A zgB%mbEm2u?=48*2EngqX?XoVAjfI3=CJtUPtmC;zPV-IVWH=Rl(Qb_xk;JF0)Z+u! zU<$>isD3zPR%TJdned9@jm4JUJ|cQ>Q|k+zp^6wq{H+ znTj_FsMA72d-E9QN-*V2<)cmK0(dd4mB>mlSe&a=sG0KXmPkeCLfh+qPQ+^W6$pWr zlv`La6YQl|H5Syt3uWCOIh|jrG*$Y=1QW-~`67Nm#%sI+E+Oow?R?^xAW&;Cpx217Qmd_ko7G{!Wlgh6$ znS1GUW@g8#eH*OJ02E3qogg`He*kE=|kyTq1sM90RJSZa*b^1`H>%M$<_IXdlVC$nQ=x5AcinSLXgrcc;ugh4b zsHGkxxS|7|L1gRZ57Q;*Db?zneyFE4tctRD!Nb0`FQ-@d7Oe#Mi3*RaTWWtu+miT$ zBy4e5ssAd%Ek*xlD3+Dt{8e~Q_!do6i~Nsq9T7cvLvZTSkb$LLx{b@KM{11AR+&lS zZut%|TT6dpuAStZ^Zso2`*A6m+N@`(VSWva5Pw5jr$_Ez0f)F#0pTZ{Ce7=TaZA&2 zyv)CO-6o~CT{_*AnF|D74`GcshoM=C)3E9G0vy%*GXqQ2+t@`C7N5p|V5YKDGG!d< z$OR3xhBUv56SeK9GWDg~nucU^MGV@hg+i9J*X$_}N1be4KX&!ByBwmM;i zGaCzi(9#M0ee2ZenI%K(@}A6n`)-Dnb6M-^^>GvMxZT3)+HLKj(5VZ<^4y#4W#d_! zy$km&)%iX5%7+g2ZWh$b2#uF@0{E5zn#zmFIPM*4+vYB%$jhj(mGv)K55tl~c8NWj zTWk{#L#Kpjf1&JODEk-6{)MuCq3mBM+YYdaF=3%nT3TxC;%%(9p)vjoWrxUHvi?F@ zlsR<|iu5)lmD^s)p9fy4xMRWNWPhRT^`?_n9(xQRSOX4xU}~?tJjn$2P81 z4d>cZQXdG3Wfv=K{sMY{e1=|jjuU$P;OO+u$r(nq=s_c~mqJ7}`q!eVYcTobUnu+kER@|&gg{vcwbM27gp`Pd z)I-?*QC$C&h=)S~n16_@zv_Q7#44rv$bI=&d->dm1*7oR{M7k&Dfya*ME~x;{?7oh ztUv*Lby0E4H?dwcS3r^CQ8E}Z*P88;Y&mRe4XF<&6tn&+$_*)!{!k1*S){A>ccLjCGMf&o}nf10woy|rD3L}YCAOl#j&k_aBOMZ zQE9@kee|xcVyZoaq<(5C`;XT8q5NO1wZarC4X*-tr7#le070;`|FGEYqjIIZ1Rt{U zHzgH)!xdGC=|d7fH$yAiO9gjRG5)*x3LgGPYi0aLYyI!$D|w( zt4_(S?&_*GdRzTRdWH0e$*ZMAHi#-%* zvPc`{wWdvZw>mgQimLe* zzDQ@Jao)Kk5Hc1!oKn8u9G4~-BH7^1r4nD39F~@v-dJ~o=OYSgi5)SzEj7psYk3{4 zTSGK1(P(i_OGl|quNrAK!!b%70Te&CW{s4=<+bJ_#5V1=e8talachOp)y$EA>SL!E zF6WP6n$|_G%*j>&Ef)o2OZD(b?1DyX0H`|YOWpK8z%{#2O~9?r>`!`F7Wo_Xl|~@X z5|E#Z;uya}rZx9ksRIr#U9rUYX{7!$XFWJ9UIHWw?f%DgbpW*&u$SAKxd*r!AflHH(XT^&T8L*!AQ_#G;!L--k%}~5NF=?c=L%ff=s9avNx5d={ z)jogQsEbM!z^##10huFn^--g)P!aB*!)`L7?KhF?6o;u4K=fu=VuW(XmN7_UPk?XtAm(cDeDL#gO4vF=5tjQB&Npg4}j!5`4WvR8v-l0zpo zLnj6O+%5G4q1n!VMq%s!2(Uj!zRQoi^9BO$`>$I&5mIZ>MmxVCj-HKlNQ8|vX^sFi z2k@jUi!H3vJ=gK9Nh2MI`<+eW`~Hj$+hI;y$PKaNp0S48FbBVTrYlJYEEY0z}T zSa(m{GWYw!QYN52zUMFwUt{;m+5@p-C5I~+Upl_Lo2+K(zBHYv4xD(CJu!c87{1i2 zq5Ma5%^dQs66}3zjgIGmmNtw=m@#oZR7}nt_D$2s?xlsWlnuKlP37BNNZe7}+!j%k;=0WCC`$o@8K$T39jF z_&$8%w|@a&Myo%q24m_Vh-&Ug0!>MpcrSeJzF=-9&1VOxtrM}Z^krTHknme&UNd9T zm`BHy4mazhg;J7>qd2o#nC<;bXD&h9u~gmlz=$F5jNu<@W4-ygw!zEz|4hS{qvUqKj3Br#^E}(ifhem^%ODiCA!BAf zFB=XSgt!7~e$4@#F88D8eK2B7W&$r{OalM8ndBGj`+YGeD4%{GeYfjAZJQ#&-$l*P=sm! z{b{e%OLG+5hJ@Do&Oyn?_SJs965j9)i{%ZVX>u;!Y-1{8CBi1LGoS`(OMIr=#?_B- zymAzAPN$~TdNhqhJCZ|ZKJC+`o*gxn z>kZux0g7uqWmN{e1DoAPX*_WOtjN=`vq{9k(<02%L23=%r8ZIOxv+-$4x;U9 z;Mt$M1jDNBsVp8Q=Dx_&!BmWqbS)*+Sx*h*4phGX%F^O{CHWhwDYI>b|A*DHbEd#>~Q@v-)~vb8wT2l>3C;HvI}%+u_ci_qguCE9zg(~ZuY zv*GDSyffR+QN_JP1DO*ojWl;3d7tjJpSZb8i>;QP$L`9l)}!%((OxMqGL4hk&qeQF zP>b)>0Z%@o&yRRdHsGu+Pk|?Rj@8eR&o?m;KH4~@K0U!uImP!p;}tenb^oREdF1@w z^X18hZ%3Q%#qs>Yr_#PP=q0WrHtTLz^xeZM@gA1s71QsvbTw;(YcC?> z!EzGxOetOKjLAR|{JJN>ptA8|jf?m+556h#qL^~W6LZSnK zvfeuFHhOp9_Q(6`?c)4zsg}X6+Yl)GA-{z`^7c7HkzM%s{Mq1*0N&~SSP{#TiF~<7*^?JN)*nAKwb<-I<*FB z#TW7x`Ny_R_HS6<$cm!!{jwFJ(4Vc9r0>|78u{8GH2s~dgvNH{Th1&)Pc7@ouwZQ^ z0a#axs}2@pf@|iZf-K)7XV?IWf0qzhOFByl8#VK1RSVW2ansSu{Sr!4xmf33HSRvhH z1BNw(4u@MU6_&aM4bwS`8zx5-MC^I@0YdgAR~TTGrvKscJc%9x6xE^`LNZ%jYvGJ} zT?k7Z?N2WfVA)o{1WR&D5D)l#fkQYlsi~T=-)uYDDU8D)vX3rhBgTZQWlxwGY}m3L zrW4q*-{e2PxR(OA#xdyrOh#D{WHha|hR9WLIht?t`Di{%Z%gS|t$-ZwSZIniS=%bh z@}4@TFtFqZwnrqzEUOJHVE~vSk1$U|BV)GcN_z`sDkGQpK-vuep8;#8oIb8;jIw_kqBlxO_FkMD2kH(7;^4yHRA)Ga;R{Cv!-Bm&U!T#Nt$cuiQ z1Y6A|qYHM(ZAj3Bx;eMLtSkARj}hKIorBZVL%Jik>Jx=*l;)3R!CGFMg)FUWw{Y=* zOtm>~Spw@N1(}3j<5ZZQ_ZqJvbKr6Wo_M#Zkv*L|-@rPRh6%5BKjK92PEh8P(z)8h zbJ8lMDDXo|l}nwQT+h4x79w10-`}lkdCbABZ`IL!smaWlL(E#NvwjLKm=!kpZl_2vDWEz)^>I_9|FaM->IY?!_^poe z*DG-#i#vy{p*8tCIfqa-z@)x-qDi|el~vv>2*qeWS_ z=|k--vWm`4MHq9h^*$x@^1emaw{c%5*#9*sGA?To8&3*P<1)zKU1UKuwe$UjocG)V z&7-mGv&mQSL0|va7*EBmOnDp<$?pd7z#iQz=%is)@?QxGxp>rW;Kyz~z;sepz5&oO zrE};o)~fI0C&6OTb`@o&RL2)hDp_%<;IHRl)NSMxbsR+u>TziqLi_B3``_(cm|{wp z463pnWX!35rMf(8v9qQrPT1`gv^QH)ym_J~CbKsPAmbaJ=e6te)I&R>eYe$r4+iJ%KvY{$PHVGI_GR z?pj1e*UF$+8BD5g6Npu!g-nICbJWw*-<2Z~?JAbc%oH|E9S_v|^8Y&GuSh;oiCx#m8i~Z!v1?iX;M(#s%P} zR@LwEW9?gIbYOIVw)An>`iFwVV#R_=gImlYUjo(gLzW9i+%2VdlB)5@SaeX)Nhnrp$#gyD%eBLzM`AE@|GB@@T3DrH!nE-`T15Vzqt}!NpVV8h-%t-hFjd zTTwyozzP2btO?*z*~X-CPPw1`w!{21Nh2;Aq{=NR%NuS<%4mKUf( z9p&3&%AbHX631SqibAPJxJ8;2RB4$JJiEsGHfAhM)0iJqXkXfAZk!UCngVTDRVueC zuS|hAg2B6m(VC1Y`Gs>fyRyEDAzhgCES0hW+>mC}elqKe+23E7TW!E&qAT0FkO_3C zuCXw)q|lg{*1l~hBeb+;(pVW5ag3R^IJGsYN?QTl-4#uFoLTi~fVNqkS`X>YUANO# z@4#%p)eI}|4vmfHamUX63adcu^bL3`_BWVo=K);q8`z@GP3KxR!5ZA#mom*=9K5zR zKe@L^_nn3X!PfCrD?3Dd9DN3rwh^-FdoL*O{!bw5i-|6z`@zf0I9%i+dDASn|B0aKXkqQ;4q-sarpHF0#OmZha01j^aWs1$;>8y+Y*T)B=r1B3gS;cAx$@6)qhq?pKOfd7|$xM4=*<3+jS^)FkA=tk|u-8$4!Rue} z`WL+Z1+TUlRr2Dxyc82g;&`DJh+nBDqB})kV<)1)Co#n) z(ljP&b3`s1C)yA3D<8Te3I(oz57)j9|9qcddt=Q!V9ga|u%^oSW#7vH&d%b|S573_ zWh&X=F4_HK3eBC@Q&2L~zIzwDcPN!NToGde4$sM;NkWU=rzPLS5dWGMre1jQ*oRd5 zcOnJ24yi-FQfgnD5H$YZ1h4GWZ!hwGQh8e9Qt_EW38>RRl-GZqSV%*-jN>OndHube z$B*a!{V8c!DPNQ`gq2<1g(?r?#LE6xnpG|M-cz7TO)W^xZHegdD<$9A1oK}MEB-&s zSg;>9l&~vQFlQ0WO&YRIafoX{*pSU1Id(hccHoco>RKwQF{es}#}VlY6^bVaA%qc6 zdBN1B(bV>g1Fngt5iAP=o=+IwPgEJysaZ$(xzIdUqCSPEJ=$?sf!TnppHZL5b;Fq#js|BGe+w;|a7Vp-=J z2$sbhVI#+fY{7ydW3d0(g8k151*q`HvLb+ZC>$|ZIG#j+rYsxD6M zx70p@RB^q%xzaRlh|l%^QD*@eIRo_&Q2T=`?H8m=tlWTX;$Fm2I3}85v+Oq_S_xS@ zeFK{{!1l+36?tw-RpoVu(ADK6n7c;OLJw7%tPqe$FjClRb0EB5b9JhqoMfZh)2}4S zW{J=gsmC;kjvUX`JkeB~HUf$Drro~<3{nE}M*vBsEyg1)fmF%q{SC(Z<<(q(Fy*f! z2rZ>%_RVI3wL`7mZdC|wjoYFXPt=Vr%&lWj6|K*Jmg81LFjCvOlZLHZ{pYZjFpc8D zzGlLZ7}v7z14uy8gLWM*##wQlnjW2ef(TK|K%#;>4zOo>1rNgF3|y8|2j}^VyqTBwBTk8t>c^LnWI6 zj|&{jYR2AWoGvGPPVdgP?T+$kHYzb74hIC_w=mQ8EDj`bGytyE${hUKYai0Okjf{+ zn8R`Z_^x!Lt|G`C`Ki4f%dul*y{0KWKSlatI1}I70VGDXDT1Y>0Bz1`zD;G-4G3yQ zt^LznhH{7|vhI5UqzjFDQRyrC4zgC5ob9GM=WQ-30 z#v%RVQd203Z^Lp@-=sCcQ*YC!JOEQft5fj0UT|2Y!s^p$<}I4Ec-Uh--otNR>||s ztrw4QIL`5<&WWGW_-nFghExk<%@dl8K5EW)gv`Iqp8rrgRM6%W+V&?$jQn9XrLFx* zvOBJ>o%?xVRqBJ!Yq{U+G*Lvo)Tk5NYI|;ZZQ|-;T+rYbNeTZ~r$A{Jt#=94^X1>`Qq4J>iA-Uv~3}LQGc* z)U6IW4NuLv_Tw!|`t)y^eUJ%Q7MZqD>A;|j#gj5qp)kUGspUhFt^*nns?AP1!LCc= z4)*j;8cOC2L2WwEu8ekoxaFWe@RR!Zq9$-yTYH&meB@p&cVN|}lQ1xhCOXS~Stnu< zxjP$d4bJJ|**E^)=m<UO1iDr8)1@aOk0xJ`iR!hKZpXlaIQP(%Gj%qT6 zxp|H?4a!Uahv+h8SmS-K8Pi~owHz>RcO|XD(S}#*NodOnUgZ=H>hZbxR4#7u*1^DR z)-bAeyv#-wJa& z;5Tt>`|B8;@TM~-&FFNqKW5a6xPJ%rv6uIRQTq(;>@2?IzP|Xe66xwA&)FLNLr&IH zzE_Hd&ZlIrvr^)+yW>fOhsS)PXPNY~f~tD5kVixFBhIx)AKHuR^YcA0`utVt-0jbo zi}nZN@xuzMZCRds59AAmvm0i?S0CYCiT3Bcj&0qsS8M-cI(l3_s|oa!!R+uQMZR0Y z^M%W(TWanhT9e0jj@SRDhM|#(gp$8@euqLKs956#VR0%I&nj!J^RIP>^Hxwo9`gFV*0EPdxzL8$L4W#OcQM&3T1M_Z`Ea7Jnz{MMhcy&LW4 zIs18Lm=&jAXMrO#zfsPovpg%o z_Xa1`{b&~Xmm-9Aqcyo76OLtiJ`qdQ2w;htBZ?rxZP^UsX7qj-CM+<&;(G0;iOwa~ zsFNS05Am1n!z2!`?!zWKp%kHBc)1#4&2zUKW-qG;|BxW=Ay9zgl)kADgUle;0{KN> z#K_r>)8nLtuy-+JAYCCFv0K=$u_HVrrxUV=k?H1>E0Z7Xvjy=JuI0wtm|0k*2w7~V zC2oH?%)MuE_yP5frw?`ZgJ{C-w89r@=0(N6=eapPJ-WHxR-C%q8b+%bh|lb`o3N}} zA>F7VjQ@S$Tp9&88*{)uK>;5nB2JY8LM+U zRO?xFG8~3HS;wzKfnzsdpa9u0NE!>lAdLd-`Ph^=fe2W3hMC3I@sA=BPCIwKR;ysVbjv9}b&o0eC6y~0Tnyi~|#(QdHE zWfD^(Qfv}An`n1dlIQ9+)4w%7XieX<1u$y!Ie9kLM(9wN9ku?u7ex0XwVtyIqaLi;@1dIpIFPn~{gz${QUIr;#cxBJWWP zJ}u|f`&})Ek|@6F`3<`TP5X+16{5%Em3SrXc!^>cXtz> zFq684TNK}5O8w2lzYuv#9B{tMRk`4YE;)2!R=nvoSL5Brg>Ritz)vKjgRj{{dP9kY zI~^7%@bNvWoio!=LP3z$V~#*H4!<_$RFLS$EnvJV*6f?epwd*5O7G;pD@=1$t&@+K z--`RqV|pF%w$o!n8$~img4{6l^G=QyYbv`gy@^RT2tZ=}7uhu)UqJew;hNcc+iD_h z@;8NHO9qD9_xu~u);?n5erInv^-bs%-?3k8{=gd)3AYuOgjIwiw)%Z+?fsiq`Xo!p_B9k{-dodFR(-c?X zWL_w(5jV&3B)2?9J|5{IrL@EljtF`fssW{l@KdEv24gsFTPS`&N*VJr?#3v` z5sq5!~tYthb);=!kUE!2C-ROqZP7ThR$TLn9MCCcM949NPdda<)nB=4xrozB} zM<9cvO*mn=5Ev6bHiItH#(S4WpD^!%nWeB8dw_a_z^`(U+|c~>j8Y+4b-qXF?9wZT zU~~E{{h*Z8%DuDHE{3GbfM_LSaLCiFKRa%}uIFxC2Z6x_Zd5l6nE_X8*dEmvmoZI| zm^6!Y=?#IVF7x^7RF4;Yuk8{2*BPhCChrGk z)5zLx64_pjw^f|rl=k0@zk%aLqZ78cP8;T7oj_H{a=4BdKq^z}$ z#NLBue{Py$_(h=UV?U>~S~g~f(4FevFE6ExJJf5TScqDImS=%?#bsJX_r_@pJK)Bq zsrEBfgQDk^Q$wf5)>lgxeYfSKKqug;g{9|2>-rs06YyO6+~>E(%H|$x=Levb7hl@O zo2vV+E*=|qQSMFjD(5czO6yQQ_sz?B_9PTfn^>mwZQLN|!Ea}mkx?r^p1osJEpi|c)Mc6QI4IcLv*{=2iYyVrx?@Q5dQ_?q|i`D*K4Q&F`(Lr^ccV|e61U9Z-@G@p?igLUbW7`u;;C(%92^{n*S2#A{`sr$ z=i~VI-#NIqI5@c_bjq_@g1Gm|nbXU&+rk8n=;3uLa$ccD&pM3JD{?zx4qb_q(5=j4 zB*+*QnKLT$S;?oYnRwl*g3dG*x7jg9RbhAL#ULI@y=p>lu18+(c&`jyW>@)oW&0eWkl?$RLMpQwePeF zugniW9C*qCXB{eoq#lXZ#EO23IEy`Mg}x%?^$D$erq%{?{qkB~^ld|vqq;^vaK~cJ zN{#ceO6#k~k}Y|LkA-oXtM;YH~Orm#=$|lFy_pDS;EtJWM=+>+caXKZzT_b zv=!K@M<71WiEtuFWyh2W+!$0#Cbc_4**BIyK6kIWyj$<4He;-ETwMa^9 zeD7Gip(kIV`q;dZRgqtOhJKKRI@2jLieF?Q`ea-QQCqCV-rP4%i)49qOjSQxv2&^a zdK>0gkLUjMYDU%HQ3V4VRwu}V7ZOg04=K+%J$_~F)|vZ;^T>&#BLmolWxDHb6lE*f z{btGXs8ia57d@vb>B{jwqdu!_Gv!p3fs2$eM82r_`L!{3dEeRz^p&;McP3nop7h+z zqW-stXTQ8=VtH@;ocs3VX>DwL$MvwH z@EUCEC$BI1^GfDv({j}x1=`%|XD_dD=K5J6nu5~1{tnYl;*W!WA$S-Bc-oOWs2nbXL&yk3E{tjw3_Fax|O$wAL8^l(y~j~_QkFNp`8sc z;{QUFbJVRJ;zlnvPuz(O+>6J4JA)(f7m$Ju@>%lf+FjgNa7$Ub{vD4APEw?gH+1Vj zqNRX6PV?QTQ_9+WB8vz@i)3TZQ7OR>+(Fxv8}5FKRNnqz1xs!C`s)UYwaskN!1m~H z_&3biqZ#XnP%VX#DAXexa|utfx}t0Mi^a=F_M4E~OKQGHK3lR_n^w`D{>~TOUWfa+ zgt&HII4;VMEj3S;x%QcHI&PX|eXI^qccwiw?zX$Bkdm;j?gS&u!hPZpzwGflrIpAG zJ`S1wRoZQAapIm$oII~d`JLIm2v3Z~0bA8qrpu=vQLEp*^N3*RKZ#GiXf=6ONKD^K zc%OI3sKpsS`;OCOMO^f@f|D1jb*$9Rq_vDqD(_M4^iW$&m$sJH7`)eIlCe)3y=7P^ zJWSDj-nbXli77mkJ(F)aVwBiXEv2~4zQg59e)hY}mRpE0=ry}(r}lD8;N+jP*Lxi11AxAebl^0`BrTd z=NkwA(SHQgZS$|2SA1+Ew)d49+?F>RmuoWbe2r0ZK78sstsv!`R+-~x(ogrF_tE!W z+<)=;;lmE3@o0HXNo$Ie$9{QMvx9VHV#)OG^u2Y-dv8?#oiwL)5J`{g+J`0l+OoZr zX*iM@e-=wjk5W>S?h9pNt={N6o5~KKKGQCockaQ$QHpeLjA3;-UgLm$1n=pOmql`r zqYKJrb7r3=mZ=9q77P_fD_ExYk4_Xvd6xWscAj{&n`yy* zVbr+va>4sMDREtDzVROGtN&}#*wS)w=HKVvItFYP+IEnyrSNXKrx^R~=WBm{?F{GV zB6!Puc6+O2!ndnRWQ*Nyl+0G42be-}altDFueu()1aX>|PcBy`ygO#^zbGdzeuS^% z!r#VdNprL9UB=DgiY|sX*!PHs#j@1CoJt@%j!1Kz+4xeg2%W)r)ud!o^9h1h2B~(I?A#%%_g0VgtOfH!@kg)7x`JjDs89 zZVf6ZoDEVcST1oLQS7|jGixH%9^r1HTGG1Bk@ht2NlxLoM%*nCWK-^qnw!7t-;^^( zd`S21kb5O$7(dW zd5vH5#ZC2z&s~%-{^;9&l!fsjtyS8w8=oJgsa1^DcvAMAe|{i<`cZJ=CwYtWfJ=z_ z5Pe(ow+8*cU8DDnef$!2Mr*6&bJWeTPZzJ$GM#;&*~Y4e2W|0oC)&u8so)!+&N0a3%2o~eD|$Jd`B7uFuy?*Ev7^HGM$3FO<@^FI|EPW4-UZMq^(o~2{| z2}{1dG4{N1WyP$a)a-5A;I_9bg>UQ1V@{TsFPeO6K7D?1o1e>Pb>H$Aaw{=&bgGV=6lWF;+!YW6Tu_n@2CB2ubqbk&i`b)r~i~4|0PeP zjVCX+zbN6^xKQBrsep%r{&CxUY?8es>4Bb=?u5a>bJL!`UPu`x2O72u9HnZDaR(4X zg3=3vHU@+ASJf_Xdr93xXlVy28iz;+1|R1R{#(cDW_aN3aPLsh7Y260M?*ujaGtg* zUN`zfWL`fNk_pw*3Eee>Fk1AtQwjBy(G27YvD_JIWEbE;2;Hp}W@Z<1T~ukydpg8N zC&1F!(;g9MA}SY54|2hU$#VrEjs|h*gs89jd7O>NSPeJTiMUP+o+m+V?%0G%CV^7`%ZTGCL`Ra&xF8lw&<@E@i)eP6UO3S2q!<# zB|cG69iGu_T=X6l-#KGNmPpLz%cu^SnBO5rXf55+@R+Z-nCd4!>(tn9$AUMdW9z3C z7rA17B7C}C-EY2*YYn>ilPjJu6!9oIe9zjRe9_Z6^svPH=9^RT)8SherF7lT%7z3C zSsxd(OYZZ1gGk7wCkz>5HtftUdifmIwf{Mlz=unaq9$A!PEbOGn@^rTY4YH%y{Xbn zm00L!DbkxOuD7y*+=B5B%P{Fwin~bqNk3yCfXfI2_xzrvP*dr6d^*7zdwVEw0CLL zRj%B1u38LtY%M82CC$Jj;>9qIw3hbw8oqUxkB<@Fb=8Tk`(kh_Kh1hLt- z@Ok;fd#9NG>aM%rW^hqn=nb)Co=aKR?6a0DvqXt_?pZH>TIy~!?;?||evr6+ApfCZKU-QM#Vg&$!3zPkM zq^DUvooZ(u znU>W@Q0*IDh7A8_J+@ntg0*e4q9o|s}yg;m(|z3?QOoJ{izX>Z%WtX z3ct`w9-yy33aAMm$v>u37|&Dmh!h@2C-W>ysZpuWIHBBZ;tXrKiJ2lu+D+{mp(O6PS}P-jY5#4(#SD&weM*0NO|(Z+qF1# z3iB?-*_)PurmgR%xv10p%iR;b(w#Mz<|?LHRo0gpb?O@Ryc@r>uFh^$HP|&t1vjm+F5jQaIW`i_G8CG#&fJM= zHi~QBu^GcR*1TN-%`4I3(_VJO!Bkj5C`jJoEiFmBUQp5iVXB*R*uc86j#AIvDvc35 zvKg|QGxda%Rf|4R;Bed7`Bo(f5`RFOs*~W!`4UZulnVxJ?|5zG4KlP)f|uAi(Y$G| zD_QDS!^C>V=nkaq5U|%{Zd8yvEr7e z8XfND9UiC-1ik}V-+>zI@ZId#@|U0oYS4qt>7gikIG!F^PsfbWqc`cX5{!5aMxr?b zi(=sL4DUDtZWoS>O-9x{BVB@-r@_qQV-}#8IVgc546}HQNz!28H<{&lW|0%C5W~th zV3icJvdtM)P6Fi;tR1J>T<=(=3hXuvJCn_RDZywlXS3KWia}?sQ)gWFnM$Ki2hSvum17pT%f>Gw)tTbx-2E7R@iMj&*Nsc6Tdu zQ$Mjg*qsc8&e7t|2B)4*b`R$-dar>%yFriOLeGwpp4XV(K?T+}=U$- zK_3@?r=+u1AAd>TZhnq^3%#d0`$S3@|2*hF=hLr}-mlisuQA?#{#XA+$$`t716Lmm zT=N;wNgvQ_7%&(gxbbV?mgH+g&DVDp1UWhXTSy7~?pkRT51qzn`c)4P0bl`O0bl`O0bl`O0bl`O0bl`O0bl`O0bl`O0bl`OfstDnxrLEi z7`cU!TNt^8ky{wKg^^nrxrLEi7`cU!TNt^8ky{wK{eO1k777+9SfF5mf&~f|C|ICi zfr14J7ARPtV1a@K3Kl3>pkRT51qv1@SfF5mf&~f|C|ICifr14J7ARPtV1a@K3Kl3> zpkRT51qv1@SfF6hOV_I@dQCE}au{dUkOs>hwM9zmlZ%I|?D~ryu*fB&l;H3t? z@jArf>^O^3_O{7?8}9)FYWe%N@O=O*04xA304xA304xA304xA304xA304xA304xA3 z04xA304(i0t->qw!w(0ZvcOq~${?vnqBXIipCZm;k6NLxNO^ri>z=8#!Cb$*mKS~7 z(B!DD(GT3QShG^&e5}&?>M;No02Tli02Tli02Tli02Tli02Tli02Tli02Tli02Tli z0G2WW>90*t&EGpV(_R)Y zL28kd*7)ABctcOVLKT1ofCYdBfCYdBfCYdBfCYdBfCYdBfCYdBfCYdBfCYdBfTb~E z!fUXtpS-^4&nxLOO_eVD_0yL3rq3)ntZZee`K(EOyVjA+vcB_WUyBDeBfpfb&$WH^ ztyem}O@)+%b#*5gVHWNahxlcW-zlv`X7F*y^smxx zV~Z2_Yyz+VumG?CumG?CumG?CumG?CumG?CumG?CumG?CumG?Cu>4d$Hb9hh?(cug zEkqdfn%%ThdpRcYT3J`iQqhGv@J>glsCUhQlZd=NYF?v!t2T=Bjf4N_KLYBu`Pa=W zJ_4`+umG?CumG?CumG?CumG?CumG?CumG?CumG?CumG?Cuq=3gCnc^+%{Sg-ef57$ z8e3W}&iwoQTgQOyLfa1VwG`eh_Y`Bl{e10a>b?x;=OTE^e0F=QWWu+rN@R=OZWI6( z02Tli02Tli02Tli02Tli02Tli02Tli02Tli02Tli0G3&^BVoNY6V+wARg4*dse@%6 zPQ`w?Z>OWXYvgyHeb$El9KS{#S=3x!#=HiumG?C zumG?CumG?CumG?CumG?CumG?CumG?CumG?CuuMMHF6Nv~f01FGzVJS@u0HI`x46O0 znIKQEF85qT;}r)rb!#W=D6SO8c6SO8c6SO8c6SO8c6SO8c6SO8c6 zSO8c6SO8c6SO8e0XT?QQ&^u~#jPK^W`;l{Ie{RF+T>6LHb49s>QhD>Oxmu>V!m2Un zBE_#F6;)`t;yk%Jda(i?3gfaK+4dO#EC4J3EC4J3EC4J3EC4J3EC4J3EC4J3EC4J3 zEC4J3EC4JCb+zG@BPGuCeD>WEvR6sKh#3l5I#l$$hgtGitwg0Z`%O_vr`nlEre*aJ z`M#n>L3$-WOiPz&rBf-T0yqE`02Tli02Tli02Tli02Tli02Tli02Tli02Tli02Tli z02U@iZ;tXrKiJ2lu+D+{mp(O6PS}P-jY5#4(#SD&weM*0NO|(Z+qF1#3iB?-*_)Pu zrmgR%xv10p%`&+U)LD=%#*Rcd$Dd z3IHqsEC4J3EC4J3EC4J3EC4J3EC4J3EC4J3EC4J3EC4J3EDmGzirkKvLsudtbSv{1 z2{J}S=8VdGR`MxpCSJFypfgRyZFY=NRoI<*F^ES}ubR-CtCJx2fLTrKFT9ltzyiPm zzyiPmzyiPmzyiPmzyiPmzyiPmzyiPmzyiPmzyiSX>&Nd1ku2n|2IWJj9ZYF)Uzr)( zM}bS1>@tHn3}v!Hw!a}C^xMBqITUnUmGCHRcf5*}v-p9bjEFszD%ofu02Tli02Tli z02Tli02Tli02Tli02Tli02Tli02Tli02Tli#<@8KSB$3P7{|chhZbs@?>d%L@&Coz zM;^Y%`-Mug-*BST`|2w`n=GCC;3hWF=&sRJ4#04xA304xA304xA304xA3 z04xA304xA304xA304xA304xA3ziyyd+sqaXY>y6yf5V(Tnz4=u)lwLVLOrrEm+&O3 zE4p^SSiF2>zX`d$q~?3%vn7kQX%+41?|jkib-15P04xA304xA304xA304xA304xA3 z04xA304xA304xA304xA3OCK)}s`mI-#%C2_?6k*s9SaKlk)eG0#@=UDhLYr%hUB1Z( zH)@Iy_{|pml_LJe*l)sE{F|uvt0aj<>6l3>sv|j?O^x28;=5q1$Wo5kd>PfD6Z86U z%qP0U8p5ZA5VNTq{kkLOE8Qp2Cbr(#f&3WxJH!b6B5ugl{iafUYtY4?w($hqgCaZU z2=0f;eZFr*x58uTem@D(O2aYS!SPoM6AV>?{0X{;!jCTgxN}A|@>E3BtJN5BV&bZ6 zeBwR7^Si>rsezYe)vlTZh0z}$xRS8TJ|VF^!Iv9bFPap+dTYB%qOM6I$~dy1M(qhA zanC+Gz6!Nlvd5EOBqO|%3kBWgh4(tiL^=|alxMJCwHbl1#Y4a8j~ZveG@AOS^ld*q+Rpu&58Xyp-Vg197eHdlOB<&l|_LE@D$^lj3Uy zvQ@DjCaF=i$%K^i$176vhR%_$;DjlOJ|7e9jFKB_5{-uaeAePC7%z->1+=WC;)yBU zCMVi=ouhB9IgvZePsk=8Y{BXiv5_)yzmDSHXye@z((hs8_uHkj#1bd1lio&zVP!Ld zbko~XGCOwpyqd{S7*2n5Kl74kMqosWc9^ZMZhR*_=?x=x?(1tHy~5_NcN2vXE%*={))V_l#;G_rqPZPYnEw)& zzg`(@8YympRMc6Iv`Y1{S1VZMjvh2D_*zx)kjJv)a)z@?U{gv2dN^X6UXm+4ot=`D zZI`+AK`B>66jwzQC|=9>D3<=$=Rz#5FpL%+>QMNONQhq#D4-Xnjy#S=W+qb815;DI z)r!(b2%(}`0qcbY4qhDliO7+JOdhv7RZ{QEzc34lI}3lf7JT`T+s&Qtq*ow;KCxfD@FdU01El<8;uoGqZWUZ# zSCkdcmsh`dL|^eVI$y#8^Y9Y73gLI~pQ^)Y71k|P19o>Wm{naeL)u)brX6;;m{y%k zu0EfJxu#$9_CCi=-kMul!cD6Q#39SSN6Wsim+`8Tr)Gs7$R|BB#_otD4w#m&L>7B8 zh3r}6D?>WTsRFM}D_rDD-Rgv1m<7Hau(H%APpXyjp{YODg#z@0cWY70*2^E)QQ~=R zFuaZ)b>zS_0+N@q7hT>aM>a>-rp;N#ZjewLwb_o;LK)#GG$n>)9>QCeC{M284bCMw zrHqE>tJg((*HzEeUdPqludDOp4r`RB_}0}&Y*0+U(_FN$4dS(A`Fhfpcs)z6o|_Q= zNWY<&L?iOj>eQ-@Sl)LX8}FypnDQDKI@YXGybbdj=U7)3(2ZXmZI`{PPpCItmKQeg zZv2j}-qd$^Ij6YSG>&yyXwI#9TS_wz{v_Xgtk+z#PDQhAWV7Iy?PJHh%3-n?O0YSt z__9u((t68&6!p+7`Jh_MaSg%4_||m&+*4z%icSr8Rs?Ev+k~9jT&Dz7i`%Y!Z&h#- zxWM=F>fx7ow1Ae=%gX^T4`2kOkTwPyk2Ms^ju_;QoOyL;lU%VMJ4bwV$oy6C)T>{+ z+O;fO)YlT9pxOoIGac&Nm7GpWj3qvo==gf3uKr!B6F#3oua}ugqDD zVs^I^v%j8=!?4*3oo(~1Q9ky#0=t*Zdh5ha#vAwzu&41|v-STz(>!aym>j$IMWcJ^ z&oj-NT?rE1#_rvlf1YU`>-tvQEwt3V{Xx%8=gu{Z{_A=6N50Nsg|7DoZ2s$=`=WZV zn9l9JY~F@mq0XK?ot+04I%|u2Bs+T#^LOn&akE$YdYAk{&!9oyiR-JvwV~$gI}cvp^LcHY z{@S$R^^H9O9EaDobL{5e;86JUaiBOAI0GN;@r#hc#LFcK?Y+9jdbEb!-RM)V#4W?U z#lgufp;MmK62!ev&YWJJ-4-TrL=Uf1k@E^IdKRb!s0FA6s0FA6sD=0R$IBu)$k7F5 zvpKU*6U)>CAq$3zqZKUE`$s2=qdZJT^<1`=>yecHyz`u!t4L4HaT|M|yMPpgxy80@MQ3 z0@MQ30@Na69Ng%3YfwSqY>-mHa*6ARV&~OQq_XIKKNwdcB@3 zm3eDEGHV(h?j2vm7J9!mI{4#CaTlE|{R^lCs0FA6s0FA6s0FA6s0FA6s0FA6sAUY1 zFDib1ZOmOBs0FA6s0FA6s0FB{{T~lABaf{xcTQ2c?NrzGDL3D1_7>+nah?bs8Gk?R zXM62DByj#G+dciK?D#KvB5gc*x&1{6&&GuUuTKR4wE(pMwE(pMwE(pMwE(pMwE(pM zwE(qzi&WnJU9ANu39CNGbZ<64G+&D@YkZcq`{;9`u{_uW%$Jr0HY@8kCW zr4>N?86c%&Z?V%i)bqtLoj{>gr}4*uzALx5WP)~a2PF>%zF6@*g>WrA?oAL0x?mi{ z`P@VY7p#NOJFOj{J{=&s>UUm5Q(rk)UOMDfPOvF8_~MZldqnN{di}jW1sUN??+$rg zH4Z&W4si+(egD!|N7`Z`)a$lr;6Kx9wyXXRR|5_DLe1#GfK^q{|WLcMImw|e>! zMnNG79k>7NqwY8M51#V9H63V=2uC5#L?S{wbe_Hb9Ii@uepAOo1`*~$4Xdt*xJHkV z6+NA$5||_7lV=%7oKt$*7-$s9{gv`~u&k<372` zP9ieC(<|N`#)`_hnC_JbC$gX6K-6o(v%!@pdNPJZ!PHWtBv&ysTiZSz-vOCuPGd96 z&!~ltz<#bM`+}37MPoR19EYZqH;u(_%EY9+iW-XdqxN1L8uI3q)ns*e@q77h)76bk zieBdq)5$mC-{mc?8~01p_7YWm?+oUEZ0u28MQ)S09Ie>zgK?X|ehiVVIF@qUNt0ON zi1>*PiT$-PZGRSYe>*kX)M-HyKF`QYYbG-1eQWIDEis&-Y^-Do(#Kupe3 z`f;+9-+`cT0cyZAk))+*+r)cGiFVj!M3SXgr0$xXxtFhlY{1Q##8U3)U%}WQ9qbEY z5^qbSN_e8{6c#z0lrj{~5=?AO2s3ZT2v(@&4n-Jz2$9g)8!sF2h;iLB1xMwMzcP*6 z_ddm%D@x$P~SNg~K3rP{k(4iC)| z+tZ>O;X+Jx^GZ7&mlm>?ar{gyH^+qN@37Ci#7?`F-*E45 zb%}9%gKXWj`F8)hY4i*O?>hWA#~znV$gngn6r7uj0i%8WJfqq2AAeP-45MqL zD;^{B{>%l7sw)br7hD^ukh72ZVpU;jTB%jERnaai{Hw!nb@h^*VkL0A}U5&pcEUkkc&Noj>EskK8))v+5IVWu7 z7-2P}qmL|TC@M3qt65qve)PRY(=O;9sl-;l)WwW^W4fmN4f((utNSFvfE)$oSk6lq zaxx2lI%?_7s&Styd4i5K^ri%-QJ#61{#Y;YMN`N23kRu(hB!uqrIGD;%T4BLhpNfZ zq}o_V>hldsVj6XNw$LoD)~c=+FoZ5|-)za(52e*v#8v&-`~5TU`zWcp4;ND>t@W0-@#3+@ zE2QX;X4T3OjTh8~$LgxCi$_iIHfh|c|LU53q*mchK!MUo)0VstN4?))8qGe~N=}Ug zZiD9Hw9*~uWd3@=By`!bOv^rv$GhigHoSS;(^|A|w;UX6`5=~e$iTXV)WCllFJ0W? zBVH`f(t1LoRUDtrcew4WxuBE=c~?N2s)nGt1l52iZ{$bY@q29vh?bxBFaOzWP4>p> zvtO!VUM3J8nL9Ug8pbb9R9M$eL*8X&}{m&q- zt44>rd4~t81A+gaoW)i6FAKQO|DDB6c4DNC{kx2t^6xS(gX=Ui+niZoz{Hp{2zX|W z2D6NhSuxKjabi{#GosndopH<}bAfsk2L;8fWB-}OWxN_=MHaIf4cIk&tWE`1w*jkd zp4p3GMf_R7U1E*YcaDv9PHc9LInjs4uDvtwnnZO?OLT>3bQvdhec9~#w%PfC-6bU0 zy^QK!#jxiv`W<}i*9vTwL1(`c>$ekoM@e^hF?;)W)~~T1u7&Px3+z4oog{Ym?uDLx zCptN=_lP-nO7izGoO%yB_Z*4p;b`s=NmuJT#^0MT)~EQZ@04W!8O{EG9`v8{=~qeb zS8Mnm&f>xXZf70k>)U4MCYWWJ&U$p&;dp_KgM)No%$fbNgs1Vy%=`nlX~aU`N*)4f zE3j3MKzyDP;ZQX4xoEDmd3BB^?nwzQnvSUD1Kvh6hKvh6h zKvh6hKvh6hKvh6h{(q+`Fm?;7QUt1UA>oAhkn)_<<5$*how;u~kDNFa)r=Q%+SGxJUt20aXE2>5Vb0F2`#eu#W&$0aXE2 z0aXE20aXE20aXE20aXE2f!CVh2_a}zKvnAB@tEKwMf!L{w+QT&_e86|OT3fcei#*H$!Z4SyeufB<&d|u+0`*u3IyGDNJ*=JRC){|E1 z9h2T3qgb}Jf@50lIDc7fRp-;`xY5xW;Yx&LCBf7B{>0o)%Ega9U$%37EO{E`Oe*{$0Yp>&m|N1>#v0FYag_DXP*@yMWY=0AFn2 zIeMTvcc6x-+{JLirF)1J+rVpfAqK85hCPFf2|<^pLu7^=3`Cz)TnqUJ5&XzFNIBU- zxS$4^$HB@$glTl19VR;mokj@1F@)(D@@t;PNF5LI zv_qR!A%{BrKb`UJwG8`U>t9_EwGtooA^gM`x8#Iqz&jnE&xn9eL($!?(cN*;4HbUh z=*Vv}Cw}NiuHBE>8}7ee>8~=a9B*rxx$M0(gi6^FFgoo|>%F*Ch}vUf_G8MAeLqgb zB$6i}Zu^WK|N9F!2IW(g;_9{IH($olMdB)wW95fqKDzqVa&E=_B^!5EH||TgLkBi) z8_{^cE}!P3QAm2(G(w(dR-M| zrW-}!*1S!KYm)M+SV`)e4(#T#eWo1CJ&^R6fK8Z+YolTk?<4z!^zW!f=pd4Ai-q2v z!G1|ja*@RpP|-Qck^M5JUb`ZXlGRALA-*Q&RuKXuw}`tl56eQer7wlsGB9p-+A%ZX z1A&%Fs(bQPgOM|;NuohVTT;5GA4SV*#Oh-Gq?37FQZ2kvq(7uasP3(2M3k+)$dXOV z8FslAmL?E@53t8(rlc6!?`@h%apext)5WW!O=mdUr|*28Ij8D5!$`*rn|X{F^II2`;jczh$a1v@bOj#^xmXWPEqqt!gzE2K!+{<3fG}~9!O^}I_ zRLk6(DzHm1CxM|*ZIUjh`lCD^Lz?^HvUBCbEP&psfWy>(EVP$on0r{QU`S%kIBLE)&DUC%fp zgS{QHqd7*omsq&|9h5@ zC>md2nj4f-RHlYb8zFsLi_48nL93G92b0Pp(dP6FvRrVDL-9gL@ouIvNeok86v^f( z@iZx7sD-~CNx88vJ##-XFtwzaN$5tF=5P~H`_ZLE#eTHn%A(R@BB39dmB3ThVng^o zQdZ3@SwR+Yxs*&WO0lNNw^K+TWkXtL%TiNI*Lji@i^>i57wJ$PUZg6B=@%HTD|$KP zi>qIB+n;|IdEsDM%wb+%%h?K5o~`&};)Sk71@Gc38LpKbR#hs;gqNpd=5%~_T&z0f z=wMS(Re#ChqIh-kx$56TRgBkFQts6{ym$5HsySqx4Y$|a<~6c$@qa_GVLmS1Gg|VF zR{n7$&7!5|Zg{x&Ke; zIK|45>ccDSXNK|Es99uEywfOu>lZz&pgL~c^4y@tqX|e-$uSkm02j3oQF}77C|$oS zO}`=nNp@#Z1I+FqHpn5PrH{SK9gYfP<*B$iY74x#JU*_bsv-_mbr53VcGrK&B@5j zXWrQV%UqRlU8BN4<1}y6jC|D+t8ucf`uk}0_l@e=x+c-N`nA@0?plSr73aCl6M5>J zx#r_ftTh|9H1EYX3rYxmlrMKCktFafS1MY9^abLEa}SN#y0S78Jz8Z@)F-3m8q6F8 z18Y1fWp6hAEJjeuDUIjPu8NbOx;c&OecJ^C!Ak~vuA0BR?DA5sK2xu_jje7IFr0Z4 zC1}9Tx?%oG%jMO8&MQ-=mwPa;4y?a=RCS!@=?ptIJgv#yw3gXwJI zV=$Jq+aj?rd=C>16kC{-XC92(%mY2rl&ODCv2P=^a#HZFBAwD(M}@^zicc zjT`iF@pno(YxVJ$^zG*7*tgJosA>m0>A>mvJXr6wPkxL({Lm+{w$W59;Kut-51KlTD{SC zHkBPdeWqPF@7#lhqZDZX7629i7629i7629i7629i7629imVbc-)>dF`1=dyuVQq!K zfE09)&yr8q?&7|JTguV^EC4J3ETk=tpM@s#e4gyra&Bqe^Cqv)pEI_4@eW_OILVdZ zRkl6)WLb~-)bUg-01E&M01E&M01E&M01E&M01E&M01G@4M98x`4!{DyLIPlE8Jkqz zquS}AwwNw$Ev+#KzyiPmzyc>ia3TaJLU1AkCqi%{1SdjpA|%0xhZCXmzxppq4qVn8 zxcXq=n$Lhv`hZ@;fWi2{jsNyU2nrS`SO8c6SO8ek09exZ)+O(~QT=z)oYp}kJ+2FY z<^LLBNl()ttuZG)w19LxR~w_GR-?z<7=d& z>eS&EYwylYxMWczbd_(aJy}?&P3L{U^PHFs-a6et|YI1Fd5oswcd2EJH#N}$9 zZ{Na!v1x3GmrHN-GsOMD`G%11FO3eclfpEoJt?E@-*-Iszwr7i&$HFoU8Sz*m0$Ct zqZ^%n-*i*a=KHdSRqvLySS9*x&hmDsBqfYLe)+Jmqv45q+0XQqi`wH;kNu`A;~JJ8 z$M`zXgzu5o47}bMjQ*rsYJNHBQ8l!&-V-WRQ*FC2Wc4-Ub;^zT@3JPNww)HeHNQI- zlKtjX9DP<+fBeb|*gELYI-0SXE_v>!a~pCY=C@B%=<-n5N#F6n-=IH7Sq+QAuyLWso8%BFW2C8Z=-7749IhY@Yfm$kp#5Q?1BUKbjsL8*gz2n?`YC%} zkO@6Zec>TLwF}L4+f75x*$GMynxd^nm!4z#8QUYr6=i zX-k}nQWST@6G9~4&xm}PFtaORPr1GFsb1VNE=f4_5!~}@^oRnAfQ?9SwQ-mTA`(qS zr_ygX&?B1&0xdEjZ>y1v!f+nMiEa_eQ>*?9+K#V>?E8nJKDtKr#6_)g1$>?Iqj5zK zNkw;Gir!`yJ!%{^Lx^4yL5@!ev_3(->bSaV2=z%hYL}?@m(@p+O5tDr@~`c^_$%D! z2gUD4hoA3aObYkI!Vd3!!UrSiFOFSo7n? zxP_Xy8SA|?zRo zbdybuvo}cHBbOdrMNVrDEv@t0~bDVRggG`nt+V zTg2pgsXt=VlaN@9p!)LOfzo!#UMczHLKW}L@cW14lhC|c^lNfQae2Ln;Plox%O#ESFz9}t! zVoK3s7G)LbYobn#!AZHoW~;3F6#Q>li-6j&kHj2BdV0%Jh9h_O)&WE+ zR`vk`Nr)49=2e8n6cPN@o_iy+J>?>nW(ZVnVrVU<%nMUyM~G9)RwV|FuMx8Mdlu*s zs)kaKYDK6>!vu%I?%{~uPiZ7I0wwY~c7zZvMoKPnD`JoyT9X>-Md|xhvxrbw+k zDRT;mqp&5EGjNBjZ56G#K}|2!6bgA zc|Vss`E(@ry2Ht{%mSe_1xa*)n0UcqR>4I^{>L8`E~fZh)fLu}Ta`{vD&2}IIbK$_ zUlQJK9Q|F?cgMTRqjiqwcw^S>?p$P5Y1TPhNUPeT<79ZXT8m|`EncnbXnSkplEG;8 zBQ4=C%8_~n=9{LO)RD4vp7L)*ArrH3f;7fjyo}4Scpr=GGfVy!DfAdkKJdosfp@Xv zMvcWB(L+qwjW=rdW6BbZVmVqYFjr%&@94gP@xF@XYN33RBO^CbBg{}}Z?eB5KE{kX zqDS=-x3vCFi4v!pt5Xr9<#_MX5INzTQJsZ*wBaIJoFnx)y8KZu&E;6+VFblly|#h3 z_7S?omqblrQA^Xv+?@3pXj-OONwI!?t{J5~t-NZqws6a_d~v-VYgUgFZ>ZlOH}W#Y*Za#!;-uq{OWt3Ek%u7ME7{;|cn)dOZX*rIi`S2zu zUTgIsm+8`SSodh-KsXIAeUNR88f~ik4 z%hvXIY4oJ^ttxSD=H+F+S1ekKk-;k+r&qjb@dl_1<%LDaD;F3jfZq z(EryB7F5@?c~^`?mviF38!X=>x@YI<^BAoksP0vK_jG;NPxDLbo826eJ-r6q)a{*& z`A(KW=Qz8w3DeU(-?L4U(QhC?cj^)5@8#<387%G{Hel_D>J{ni9WCzRKhgKrsc+W_ zoz8<%eY-pR_V9BE@%Nos=o9N?ob%~dN$*!{=+_wU|33$o2e0qJ49na^XB`D17Km6j ztWJ=@Sio4oSayT4aH+m*E>XBp6Y`#75mtrI2V((a0b>DU0b>DU0b>DU0b>DU`41Zl zbS%)ZK*s{c0>%Qy0>&Z@#sVD+bS%)ZK*s_d3v?{du|UTH9m{{ZV*z6UV*z6UV*z6U zV*z6UV}V;CxD|q1A-ENSTOqg=f?FZD6@pu#|NN~G7z-E+7z-E+7z-E+7z-E+7z-E+ z7z-E+7z-E+7z-E+7z-FnTlhYC3pTalV@K=}{S1TJ%Fis^S;q->ZPiqF))n-D>$K{b zeu5FnqLWrLSIcR|%D7%fUKpji!5&Ltww2-t?6JTe3-;R?92g523mD7)J;uU;vwi+& zv3Bq28+k0`%*Rv663e=Wg%v;Tm2X}h2$?uZ)L-c1b)-GjF#lO&T2g#p#CD+CqKn8M z>##CoYFa;8RTi{u{?oKF?W5a5WDDN>#G)wc*y8E`g}uA}it_*eeUC}1pweI?je*kG zN?L$4sGxMH)BpoRPth^O&^1H%1SLI1gS03pjfg=zZr-2I-s`Nh*ZJ;P=ZCYu>s&uv zf5dfLkLUeWJ14$atGG4xoNu)@t6=5LUdnGOYMr8E`Yry(@L8n3s_(G7hs${WWPR7S z*dg~-sGer$td;NOuYZ>PH>?8wKB^?&z5nL8j^gJTp-c4*4W8kTccwX@iF?i4&x&>5 zD$g8Kr?Iu!FE<`w&#je$n$48*WBep0zCB2!Io^1O@jB6>a_rh&BMm*w^K+;8i3n%XA*oxg|AcYEl2 z1+DA_eHpSJy^xnA=Q#_m7RokkToytvM>eUpEp@q5jDwet9q~P2aOlAZ=Q>1UW*N5O!VWwWeQy_gt7N#?q7ojw6NL7k>S4F5>(3NGWrF;gQhO zNs;;^5iXzzXOV{&J0p*)MZ5xqY089|ghiP;Mfr0@J^C5xDr5Ia_02t6q?L@<-vTh( zofhFnhC(*4dx}K9RSORniHwB#LCtMsFmNB*lgmQkcVysR<`J*CwBf4Pb4FlrC#W_m z;;l|tm2{i%<66$;9+c+V(iO2$Ybu)pTpC~#XN7=_t_@tJ2Ry}Fb zDV~*(xQkIZv|(~XR*UOG=xy2XY=T~bv`xh?lXe2^=6ujiXPvuP$Wu|6!B#{XEIB(b z`Ta=JqtTQndd_#aQTIfVX9&piAR9}I)RDL`1m8jt@wM)(xXkv{< zQ8@Gs93K0DzvwPHnd@5cruW6S7(*hW0~Ve?gl-|kjH+Tz+{R`QP}13$mk*BPun1M? zt$2z*TNT@KR{*7#Vm0cc2Gx=7!$yx_z_MDw3m7pcT%I~AazUe16mzB`)y5oM;jB|V zk5aw(Cg?7viOXMo(CO?V!1jv&#XildLS;K6Z}^hLPJvR(#6I>TsFplJB@dzho`DC!S6 z=9BvMkuChWt&pFf_zyENPufvE>Y0he$hHOW5gyFGLjF?WEOqs)b7F2ni&-Mu?|8+c zctf+^Iw#G^1PbeAUtNsm49L1f%)TwfmdND+f^golZx%viN1v*O#4T3=)a>82tHzO z(6WS&quGg!v`}2C?-l{eATAgaGpPi3O9HQ@TRt`Ch9wfR==TSXD4`KNwy_`4g^l#W zaxoA=o#<#$=#Nl~Bd5K0NgyJMV3Z;hPew4VsLZPP64%6(H8rk-^T%N$BJ1&>*Z>Xpr^TS)M$(2#P>Yu0>epEDs{w#I~+YSmoLQu7OF%RWOb*+P^a5RZ5nTJvo4 ziQ?fJs7B3Cdhry3V0*jPYUiP&LCMp)+SRc#ki4P&K2qQX5+kzKMZScCSzAgaRhrhG zQX#Ev*DP6*FGLhKW5UQKt|T7=YHVtu!8j!)m7G~et{W#uAStQ5LRD6ddw+&E5&UIK zR9nq@^DV(^OmP*qW~H8Zwf)luqYL+SQyVzz8Z@haV%`y4Qf}g~Xj)Ibw7HasDrz$BXj0K@;+Sx(ugj>hc>i>*{_j%#D5HkQ?Ihns zJ?H0aEwScm!G;&oQH6|55kvd9r854vxYKTSV&LNQ;8dyllPBC#eXCpUIn)m<@n7I; zJq~X9G?u^M+^XBx!sYf_Yob+cx%MTxWbAm`9fekO07VkqrVDOe@6Q<oMmZv(pn+KZma#3b%z7E!wKKvQs3b=(c!V%@kXNaomQv!|GaryEKHB! z=luRp^EPgomS{~+wx%b5=@>0KX9XQQK~HDVBPM8j<=edqZb3Ai=tj?5rWYyDqYN2` z1sK`Z{MBHNvR!(WA(O&KZ?I;DDKKkU%#vtEdoiPv#i(;*(D|65cteOcvtO%g(7Njb zxNC5^vv=ab$VAu2-L6mguAurZ^ON1Pd(B&L*O+0q;J=%o?Y zTfN65`z2#~k=FeegZgFCl=|fw`V}VomHzZ!mK?aMJ#fut;6G~KJ`&*P_~&`%V;meD z3VR<1c%Q<)uonUl__^prxfH?U_qLcXwou0!gX*ty$#Ahb_Hjw*mS;AHbDfa0rj=*4 zLix|@<8>>t+mRy5E)%qhoX)s2cM%eLmAUjJ8RJ50dSxCHec7IY*Q?6!N>%e(oS;_~ z^km!$=aJN}CiLa#Cdt__s)+*yPjd9r^lJ)-ip;BACK)wF!(}g85t0VA#iLbD1BEus z+LCe7n;Ax$0jYGd4)k+zl1VC?Y6>~Pd&-bp{uz*z?M*54OP*0F=ss)peym(JeKy9n zamyb6I$g#Q=Mv>Tm+m7sT95?M7nMl?cR1uk`-ho0aX@4B07fF?0VL&rCMm$(4{-Mb-2DJ|KfophkQ6{t z07(HP1&|a#QUFN-Bn6NZKvDon0VL&rb&~=}3Lq(fqyUlvND3e+fTRGD0!RuVDS)H^ zk^)EyASr;P0FnYo3Lq&!Ck43fA;hqmKl^e%xc#h^*Nmz@DQ*FC+&{nbv-Vk`%Q_Injpw8 zP|aSre>#Ac(0u|`=p*xaU0<&+Q5mI$EU|FZq_61x$~oDkARX5^_VG@1G-VR^hTFi} z^9HN-#QlEPD%Zw>YL#+RV~@)P2BV9XMwv(cINrWrU`6n*wNHyI1&I%hZjX@~bFQzx zdwij5e7|!YZRnfvN8XA}whHwQwJdDSYAh*O8Bdrj3n>}?xUWjEF-ZG6xV`$*(LmGE zqxtUg?L=F|Q*zsnXFQ<-4xhdwzC1c*`zH99oE_`FNH#ra&3}P1I#R6mnnP*CnC@z` z@KW{tr1lkEV|?=HF4_L}snPh~$eGLM%3Ji;WjxT+UwAJmGO}=2W02yknf1yft`9%h zkOuiw>AQTa+!J0fy7l-kC5u)K)SJY>iK_4#5NSGcdGPyvOaAi)#YYb+`t~ncyZqTI zX>1nGlGdE5?6_9i686hmr0cP}wq;*J<7n3j)8kKwpf9H=*EVu-1SA_iW$jbvc z85W3rc=7B-XoEG$`oQl>SPJYdkD`U~j#zp6Y|T_`+N~GzLg!lZy~D935`1OX-3EO# zs!k{_PxGgajCRM=90^%@GwwQ$OxLZB(O&v8UrU>6xQaNfwJH|3N^^AZxF>Y~i{zYD z*YkQ(+P+gpVXoi0hb7hY{P|XDe_QoT#Hc0qjraKNh-dQtC8b=6`5L5&X9z(z+t^u- z4$(WRpF~wDZIRKQDayNNcMtnFENFSDYHGBuKT>BrwtbTZiD~2FtiEe^!vXXhJolt> zi-Yavo#2X}n^<;CkiGLuUA2Mn#Ive0Y0^A^^Uor6WtA~Jv9h8qv1G5aP4mz7&OhBS zXVK$7v9miEt2(iK_3!rhO1?KZQewr`Z)-qSX*JXM&&>U)y5S?;qa`=Z*4{nVoRET~ zCKd%T@9NYKoqg=pursnIFrzi%c&Y~VJbn38XW(?2(&mSZ8zwS!}HnbUXYwpgOHhNNdH?<^VtwCbN}hN;9~?=)hG)pI(S_*h;chGUB^$tEU_i07LTx6b=2IoatD!pvx)*SN0P zkijoSA`A$TPtE*HVBw~;Kyw-B9ohwVwcsb@sI%nAn|}7boI&aY9ri8rC^*eG(=o(j z6Z(P+Zg?lkf^6FcjRFy(5=K-ihFwF+umBP0rTK_AGTuj?`e=}$c_5!Owd**Us0`ZE zTmlT_i@>1~*)p(9uE3aizcU!O>Ya;|9V2xwc_qKu5lb_{GIJV1k@ zoypf5rGroCDvfPGbaWw$(m`CHpmCVuBss*FD^`>oysH!Yl?yUUvYZkL`HTsjA;heX zK-Qc>YezzUtA%`>gVUwsuVWxzY9ZVtH>D484<5wV(D>QLq2`Ayk8=eJj>hvWgdX-! z_-Yzixo*Khi-AU(o`lD5_$8di##{TvAH~MUUXR=T#ZH``Q{s_H3VopW6_%)`7a`!3 zD61!aijq_#kbF)y;R4(>=&%xG!^Cheo?;UD*csYm9##eO59oI~m4m3>eDVNF#HQx^K!$=R^ll#G5UU95)6c zYT*qJj&z1GXiuE5Xmll75sR^;pD(J?2r`fN)DtK&M)|7SMZg@+--ZWUyh@VQO4&*Y zgJWBAux`%wM#AdS`*6)7*uF2xxuY-$3VR|nb%>1HJ>(s|B~VU@rZ{0=5EDEtaIx4F zUOGS30$mSRYgB(JC4g@sVBT7!c5R}9*vcrU99)RG!+;Ya#u?u}imnjFM8MM&h-u!f zX)k8dQk|?nt6#dWhOZoXoIHxm{*dlVPBWrl&pk_#k+J=~6=kK4S$5Vb(Zzdy$k?T% zPWhu%HdD!o_{NdY=4n*BGu8u*H$0q>FB^YvOKHw2$^Sw64N(sgBIk7l-mw0}e94|eTa)5_gKyrmi_LG_%20T*|k$rhP=LS#G1&v(RS&av{ zxQmSVZ&$NF86~YMCz|T#DpQm!U1Dvid9Szgs8{lbv-7_@C3A!Foe<(~0ZO;G^F3Vh z{c!TLviNBVf1pp(UP zvCKbm<#7S!!*V61RDAGaX?_6l5VH)VULnp|C=%f2#ZdIoPcmApuoW%P9jX|qtk@Q* z99yqA7npa(g?;Jbc>Z-OqI*J?~sU0*$QChIzU5iIAGFXP`S%NwaVvR*@g z!H#W}4EcDTyBjO@3Sw+#%WNa1+r=>)qTal)x1c2 zLB8oH)9p91Y1P2ys};v$U6a;9>gv^ONs7X=iW^*Ri9Gf1xBB15ZM`>Xe(!^Oe^Ns5 zvlW$dE!#M$*{GuVn+5(%ar1}NKt6wrRPo7k5;A-?UgR(+IgyRqR(eQ*RD+kXFL zvw>lY?QXlka*Lf-$K8D$)_l263MXB_?T^Pg{?|Gw^|a^-TI}vWos>kaebN8jGH(#mLrTWLPuuB^aCujDmVbaWNyYo?g1kAmAA_ZVZwkql(3#@G+7V zn1|OG<<|TyV2*|fMzaE|bD7T6V#V{Z+KO3qZp?vb=1?({Zpa*7X2$KsQ%qQ&B)X@y zy1!U=PqSzrCmzh!cP~$Le*stXp@_EA$9@_v}veu$NhD(FR>^tnp}8 zUvbwci+QMv#e1YTmapsJQ`Q0Pz9SENxgT~3yLVM6^a?)g6OHNOEa^Sn)pg#zw};gy z)pfU5cBPl&OrPYRetGvktk(ailky;FP&aK*zhTgDa`4fg!6%YKM%qI_Jmq6o9cgvy zy*n^e0fs8TPz4yO{3jl&0K5Y53cxD>uK>IP@Cv{y0IvYN0`LmJEB`0(3UCJm@Cv{y z0IvYN0`Lm3UIErCz6V7&sYSAg{juwDVyEC1~d2w1QDM{U~w;d%w&6@XU& zUIBOo;1z&Z0A2xj1>hBcR{&lCcm?1UfL8!s0eA)AmH$`AK>)7+yaMnFz$*Z+0K5Y5 z3cxD>uK>IP@Cv{y0IvYN0`LmJD*&$myuu<^%yh<|H%K?6RDNY*lwCivC{;k(7D(Fy zXPLe+O^PeD@jeMQok_owmJX&ZQ;qexWY4?#F7Gy-l(E$e8Kp7rtf* zipy>?R;8`B>lFn<3O6+$bRh1Sc>X(WE7uoibgcrfm2PY&Jp8k(>P1D~(rstW{;BhR>SQ~cSB<3DOkYM*{sVSB}~COLkQ?O(E|H%sO1wXdFJy2Y03yrh`Tn!2{@c7Lz< z9(k!h*j(Mt=aXZ_!0bL%Upm_8Qx}io*r8*lk#Apr%1-%x^5ZGKUQhSWxt=bGGG zG4-$IJ2gpO`5WnRnhEy>MnCG*Rul+;R<~}5(EdnC;@a^aok%NF`_ZZ`b1`!PIucVC zB0si##oItVk4+zc{Iij*Zd(}x_5LE=L#92uaWyGt@GRTma>t2M^|K9IJ!OZd zYk<_RW|;+zK33VHN}l=^r5ZH*TXE-va@$W|_C+c)#^d5NZouqsOkJ}LxInIMOF`>K z(az*I=hNcbq_a2H_pxPy76=X7te(~NrzIuixaZG7r{(Ixt9D&7{=OW!v9VM3d)Zog zN_8az;{41o;7?K!n>H8lJ^{i;2dy~<9@2$O9CqJN0DsuWJVo%z-gpAd^-n19TY~zOqXT380*V~N2+%;(a9Ew$+w&q$NA`gOFNCYk zdl&13DU5`kM1!1lg38RiuVDhtg8be}MWk{@C~t;$RD-MrK#xFSrw{n45BuI8iNx54 z>e2jpvchB9!W$f;e%%lFN{S?LMrw~lnXQ{xTnvdOg(-s~Z)Hcu%|2#Pw&{4^Iu($dB`5HV>Rpx?9O&q+}VH=Z`2U#k#0G)r3FE zDY8yz5du^LAw;C#O>Vi1F;;(l zG6CbvjfS0oNtzvxUw|iWYJ^!};q!4w0v0B#g&?AC&S8&m;>x*G67{6=oOMv6ab8$# zF$Ej46?t7qU0MKFvjyLQ-3s@|nb0wBOyhzEaCnP%ZVQ2@-(p{(kS~d;#%vT`SsmT8 zfcHL-)`aye6G;tLPs`kl@P^~_N7Ked(?7vgrbl73?P%~UYJLG)ZIR+Ln%*{__8p$G zuP|js-JzY}Fz1|+16Oz_n?iLC2620h`70mBCcK~|eo&61D4bX7AsUzbqEtPRjl`lug*mX6a>JMPRSFWMLoN zd+wjR2FsP5R}x%|(ISS(QF5gVlV*P88j0bhH1bRs688~`=7`v*a{1O{dD>ff!^iV~ zsO7s_=2I&%#=4omWbq~57VyAcs1ZjN z2=B%SX$J`z+qkktTwhyZFcncgpX!Csd9Ppeehb|!rrkDLz{>;8A1m_KD8f?n}+Gv$io0*a+X3ft97zZDjb29&nCl=iq3 zEz7_*O#hjhpUwXgFd6GPn%RfsM`zKI%;k{`5RUGlTk7qP*W&YGrH+- zB5z|VUud^eYUx@YrY2-$74_V}=A}Wcy?mLcL17NP=JafhscFq`T)9JPnT0rMj4J3X zZ;@yI+MSo=5lD_24|pL!j=WCxwIaW>sx9X!-`Ez6W`bkI!Kw)UMvZbXvusqKH0VHj zWo{C0RT`j433N?Ijo07;NiR}K-TIX3I%=OB)pR5}LcVUnrH;5$a%or)y%dbqtbu68 z*A!71<4EKZwZn>9?M+SFDQncMYhhm#QkRc4T)O>er}{}`^n2pI&JQ zvn&@Vd~eYFeq-T1l)JeuvgTlFxVnCtklV@QEYJNK*^?dQxsTKFpX5tY*t{F6tl`$tO`C>(K4&XjYj{aQxEPM z!FP?-cTM2C!mYd92fO~Aw*9C;`xJfu-)Y;4-L3`e+uyW$_R_ZP(cR>GtOkXyroEgk zUsn~Yr&XbM!eH`F@ z3j4xd2teTHq7&s(1drd_V!qfy9cv7#zs@DY#pc+@C81lM*&NPwLe832p4AHFKd+D1 zt;lXiiYU8G&?<5|EJMx~(ptkwIma@q9R7~94zd;IHk zKvV!x0Yv4KFPv`RkchrzH>)ftYG5aHA~15?_A11=^GdA}CKeDCKvV!x0Yn856+lz~ zQ2|5+5EVdF08wFwNYKKxXc5-`{a^(Ul>x2Efg67YZb=T_(H^{KGx*<&3UC4hoB#nQ zK)?wQa02w7_yh>pr~n%kV50(TRDg{Nuu%avD!@hs*r)&-6=0+C|ItPT5EVdF08s%% z1rQZLRDi1=;OYms`T?$ffU6(i>Ib;`0j_?4s~_O%2iU0m?_T`?q5_BtAS!^U0HOkj z3Lq+gr~sk@hzcMofT#eX0*DGADuAc}q5_BtP^JYsD&zQ{Oi;hfJD{TibX5L-&{65N z`KLB}Z=_;m$UWr8%#`sU!;~~TWc#*+XmQirOuwTiz}TJV`S7Ay+o>lZLM4Syxp}YD zZM)}J7%CVGjhlYn{cRJPQv6U>{7UQeP=)<71u0(Fn(G$tvc;;{vrfmhFT)}^pC6U7 zzJFG~FV7rRL-kRVzO6BybQD$FU!@3ov(poXP$D_oxWA^0GAESuYdf!dxC{7>r{3P6 zbmd`;gEc2VAlg!owR^Y^rdoef8m{{+HRI8=bh1_~(|$dr?2W&Hk=*D;69;?MZA8Ay zzvW%yTAq^eGIFX>4%GDFkY$Lp!V6{FqPNcU4$+Yms763+H$?|-Eyl#hkli9mDln0_!8*V3w8zO zx&CY-ZZzkCDFQdlnAL3BLe7XQC!1-_WeADtx_^5uttxNhG76%p`JQh4E;W2RX`}SV zwt{aq^0SNfcF8tXH1ANIt>ulaYV6PwNL)MQv8%=)#-Sq5$9T|qX?1Ae^R;;Gl^54$ z7K4)-E%Fo_zN2UjaQvPj>yk2c=+4MKDDke0gNB-j)H{Sly z`11MbDax!!u=8C`@C+iK!g6o@k+`FA_OkS^?$bCc#hGcoNSQu)^?q144I7C6@@ONmPqM@(#Y^(DvyNs8&h~dfxEAId zq^>Q9O|2nOSME+}bkueGQBQpA_M5Z#$a!poy87o;uw!ZWZ>5b^&2;YrByhU;9bawS zqN^mwOg{NcLslJ@)| z$QnyE_$Qxp(D^2RPq%{2kDEf*9M10d=yMR>roX+hZo!r@<-8-Qwi>*#zIuOkO}cz1 zmCg2SnezN8U%&eeUHuEH9~5lWG`JD>*Y_Ce)t^>D46Z$3-OO}TCxmV0^~Wz{X8P{F z&36Z6?(^sdTljgP1w;1@J{*t^X>JbQ5)SP~dkPV5aS&Vto(3IObETaHgU!6&=Y_r9 z@Rz5#D9ZRw6@ZK!15*6J8k?`l8)0R0fj74&Z+3(l*o6jt+4<%z%ZIDBK(rpBIT00ik7#q~~DQ%_9?Nk%$qM_kM^x4D{(hxWlFwR~Go) zAw>4(!wM(FdtD?6jlh!;`|Kl2xgwi?AzMbG!(~9vG2y2kel9q zOT)p_1tFt^n31qxMs{#xbEq^SW=1!*-!7IC72A*%`;F%H-7KzWe_a0>Y-%L5tu{8~ zwdXp_qZk!J>2u$8vaCsn|I!j-{@dcre6YZ%t>AnVL?^T^H2#N-Yx>ui@(*_Rl3jN1 z#h!4sSXB-E{UCm4*nChoLBRsD56%u%i?oyw4U;0qpCl?CmJJo8$6wbIzrn3^6mH5d z8{cXKp4c=g3cnRcOYTrZHlK`9(s}iC{)!t2*^5cGbk=#~?`JcbSWgRYgI)O9@8wR2 z(x;^S`IU0nIbpLOj**E_kv7b>N14M>F3xTS>JAU-=*L@#@$)HWLe9RTh!-QsXWZ6B z#&895+am@1MF-IIdG%CXlyn~yipBPCUT>+wn0G=fg|R2j;!M=AUS`4CkjssFOTSR0o^mE3)yx@#-@^HxOogkb=E!O#a;JR0kmOCo5&Tij^QhPb z>`4N~djRd^g%1%;sbz~qH62dN`x>pwjsMdY{n7vO2X2)SVl=cm%~#kU3=3nB(al@f zLI1R=Vbz5Nd?-DAfNZr&gyuxwzo=%mG zY87?8y_L`rW#U7R=|ZDp;UR(yl$cXiI6UizYL@as`WZybx$QJ{e{Ymbs#rj#cWu^@ zt?YXXnOgcD$2HIw5HMxAoH=f54Qh#4rkWEegI9GnncGDAh??zd+iV z7|7#@9m6%k3s*)_*)9dQHt=-+{1RN2DTSD@9X--kh^7{1QH#I>c#>FABpkz`Pq^CQ zU(Qo_A69g$HMN#;zT2`mqYx3LPwd2j=?Ha(dePTW_X$J+ae?>&S3tEaw9_l>kV7jw zmEz<|K3kS9Y?n4LN^=;QGjeYV#!}mOph*nkf^i9(N-)wbI{+^o5G!-%A`%f#r^U)s zT*{7$JHZ*m@!5RB2NZiIH!iQjrBGZ*+})m9afj#DyRnK=9CGVN1>LA}xP@JLv8Zx8 zKksj6g_C~Og0#@D&5-K#+m~G{yB`Rt*M)wfRf#WDedDaYyA)@dQhlhm>H+UF-JCzHi{^3)`)yrQIo#$aQXLMZnx02sLXw*xPDR4VJW}{ zY3(vz`bn&UQxj~t6K5?Cavm?UHzl(^LTN~F;{WF4}o4#QjCBu@zlEaPSe*0nBCdkv`lsno`$ zh6GKD8ngPMQ_X#3&4_RfhkDJDRgLD-Z8Kz}LT)2Jp~`@_X->ZB$AhNT@y6ldrnRCb zjtljx(@A0!1(S*!hwDAKtOa@M6F4W{KV5roDb{?v-t04yEbWpl%yO!cFJm&AC5s(J z>#6RtE$5?8PKlFf`bEOHmirYgf42B*xLYsmHj6FuUw3Pjvu>Hd^6!;tADnH4a0%R2 zXuEg2?b2>xb)ljzxV3tmC>@>oSgY*@t7T-YZOEuyJG%8^eX|Lx{qF5%MR<$d#EDm0 z?dky?diY8;4fI~0cKuy$n`oymxD$l$45;q}Pjm+FcK(MQm3Rqyq89z1GA)>n*~`+_ z)A7Z^^ay@Ve#SppT0TZDn6X!&&A~GYtr?tsjG|pe`7#5wORv;o7EdrJ#f-XW28oZ^ zV93C@F%Ms1R$KFTfH|5anC)&XrUIh}%t|(7(Uw_F#mr$Ab99;670n!1U?t%VA<3*S z*4?w_jie&ANAdF6W!+5dN%Pr+xYHfw;sXj9uCRg{fb?`qYe6s zSyL?5&~n!#AB+1)*RhAaiH2PV6Ih&k5%ieeBQag#C0#Xcy`nLFl3iWAE4}BBbW4}$ z^$zg$%O2@dRP5t;(RWsR;8ICn8hAi0Z9t>pKj^453>r=jKKe8GL~_VTd&tCQ$TVo^ zkpMpst0k>Yy>|y@E5K|8n5_V_mH))EmH&z?A}YcE;uM7C=%VSCW+S|Iy#{s^{?lD26GNo zvGX5Z+Aep=`v+O@u3o7hhVB&CxK@6-cm1Lj<5YF+Aa$h+B(E{6A?2H(J*5>$shN)b zhh9qj|DhKZQr*eGQqS`by3J>OpMFS__s!De`1;`?`Pa2epwOa!BTHUc`X>XMv;P%Y z`o}B2pZq}iafle4VE26YM@@ZQTG_yU!?;%(Ct{h;BGz-+eg{E8; z7Z^9Bwx)ffrQ>V`&hpbQc3e$*J@X~`_Eyf#qk<{JRt552<|K<7UTjbMfv>Sal%|&# zCoyrF7nJ2iyUwl6CMNZNk+`(d#c}^_^X#(SiBa`#UN$U!jWs8n1nNOk|Aj1Pd27ot zJ|%YO7F&01Twj9kRIaD#0`GIn4y?*rK8f}C@lBC_#Nkhbsc}2mN?~iyXDAmdo07+K zIP0o(OQLI#h1(yo;=2B|pr)y~kdTHicgYs(S9@P2vnD-;yNg2<&QL5I#z8{PL}ueae%+ltI$)_fpNtMaR{jmMINCqopT5^(EyG-)@M{6y9EO zw5{$V*8DCcNq&9aX|4LF+dgU}Edi3DIeehpFHYdbcaP`w^wd+&`Q`3Qs;hCGb#q4oo!$@FoP`eCPY9`j^lylL(3^~#J71^PcK!&DE~GYYe^b5QG?y{Cc}aY8ms9CRu1A!a#L9-pzIi7L zKXdL)g#!eOjn3dL9k(M+;y(_D2yWhZe=o$xG311<`_6EPFfBwBrf^KnbaOV8ivVF{ z`B$m>caQ?EsDYKu!S8&%u8P>of&y5=fk;1HHQjJ0bag#_Yo+~l z&BKk zk*~>yFXwz+L=0aGgMDNIrT0T;rJ)vTPzR?7PINFk7ACv=^$l9M3O{!T-+OL-A ze@tD5K&MV3gWM9O@D_ZqtE%E5i%M9 z^yo|G@$PigTTu%ee@K#g(rf=nn4bNID$KMNBl$G~(2ii|PQ{^#DA8A(^* z94JmjCvXWP@j3pu6E9QgPMAV}DBSsY=@xQaSE@o*D_azs=bzdVj!P4LM3g~YSW6A! zO10F(R}mAEV5tJ3X~k?1wy!M}XK}n&J!XsEA#H0vkV(BqYoH7UD znThmFUWCf7UY7gMbWgfK2R9}is}KZ-b%;XeWii{LHcz-MW8o$U(VXwT*%xrx`z^4= zgq*sOpx{w?)A6#Nq4b`7h?GaRHZxcI3xf3Kgs!OQu)LE`NMYk9*F#RRB>N9#h}Fy zPh7#<00s7hY`Ww&E@2>(xRv>GA+uvM138wF=ZKAE;3%TR7orxC0pTYQgkR1`C=b5F zo5&>U@yiv;4-*NN=p<@didfbxtq{sh%+n|;5KF5>KoOQjAkm@>F~5%sS*0h^56Z=~ z7e2@xOYa`dkqXdnUL?LB!jV@{bC)`Em9weE zqg3J{*RpyB0jE*2jRPMdl%7#371$vh4lE|Al^@GQkgrt!Fk)9e z#a3P%&y^d`}ajGbKA16=GJ{7)Q9lV5#8^4Xpy=KUW1A#4IxKn zlpfmldq6owtklC5Mtn%849LBUPGkC+YQfo0qYIG6s%F!SY11@k zjcrkrH>2sHypSm}eyy(Qpkd9s)Ju;Rl9)z5FyV{@meW-RZk~0>mm-tpDFamI-?L-eW%!{~$~5 z-oroE|1y_y#vZ8@6*EdDnB@}85-n!+E`#$evj)$kMl&<gIBr)B>Tk``-By{r5<)S@tOCXSL~N|?-q>dQ!MGe^005R zxL>)XPqnL$gQH)5azOoIe}TmRJy!ewge>N1LzWFg){{fFe}-O2e)wW)3%Ok9dP zv{XuxGpO0Mt_~LuBJSMYc1WzfoHzV>Vd0m`z>wXw6nnn+kDL73jjW#&^SoSIUA8;$ zY~B4f+BHvFHJ(=;c0D10di_#dv##us(EaEcS9MOM)AZTa=HETNKsjEC+8 zQJ@~^ipq(S5)1gN)bS*xB65)Z%nr(TQuM-x`T2JqKAz(ro77h^ccq>x)ls@0HvVkd zIx?a+{r24ap{m9Oi8q(xsz2j?RyBujnaFEi`204#vSa*%r}8naTqt|?ESvYn*Vm*Y z3_iz7#vhx?*aP6Nr=Voob@~`K5c5&mj2tDMKCUoj*{(IU)nWWd%9)`x%+n0Y3|Cr{ z-O(CKbqJuHrhcCnm7IO`0MxDA=ot^$wSQcIDuh0AD(2mtuf6C$ERgoA9(6+<sfblKUSm%S3}sPe@xB(LRrUR zf7VR?nTLoEf8|`+C<|JfO?p1K`RMO-f#Tn{Tk(I=h5znAZ2pc{TYdZ^Z2Ud~QZW}i ze;BfF9x^xQK}UtGDu;Z%2!4MhnA05ccf;c-;TFG|=dfeQS|_A4D-a5GNstOl8U{W6 z8Q6gK`7CS*aSW?beXHc>Tjm%jP1aUc14-riw08Ow=!Cy72=7e_uZH@*(eXMo?0;w^ z+!Gr12o^2}3y|lEFqVmUMhH35?x!^$*5(&pFCD368t?=ftfLn8TsN|>+VA+VpY?pW zqf_JySd{HmKc9{8H!@H^40K}fvDBW({0yt(3^%+3eQFkED+6Pv=R|=zqaY)ZSDawF zcVMqJBRtI`u48-?hM4 zS8fFF*}y;(L*c!-hh)%|aLFV`)S@>A3nNa4*F1T8K+djDa#N)zh!7LM{77^X zOyV3>c(!43Z%XmF2) zuQq@4X(81`PxY(p^*MUlc~Y9DllF=~c7mSTBbr|CkYP2VxSCjwQL^B&*>@E1l6U zCvhJZQg~djS4T3xi4y!5QEVGZMua7P<^X{$`y>c~LsF698mW=gOuw--$QS{%nJ%S9 z3@(I2sRdDTL|8x?L9GxxmYk2sLh*&94IN1zXrE;*dh~EmzgiDi0dU&ba7}MYW0KZk{Y%>a3F5Ildwp zdev2_@E6N*!^KkPg=^HtJYVM4oRPnKeY-|PPxNoSgpb2D8i3lHv9+_}i9<&d_s%by zDS5n1^2%9%Fk4vJS5m*TgY*Kq);3w(xfsDKwfY!unDL5bihrxC`n_aXnGlH zgQO%%rl2YE2th24nn5H{up+5M&vYp=8d8~HTb2kYepW>rAEY_!(YPMcDsg0wF;EsU zK4%+DRiY{c(yHbws-+@ZY~uno$UhLYC;+VqSLw9tK>rm(4+hj1#MU>`Ngr`EtEAdf z;&m2dwND`)w*ZZ6+O|*TZ&~6RZ`L&~(c?SoYQGVySGH>%Z#DjbHT{Tf+~%`r!Bu;f zBzcgPU7gi*G0D98BGu{ndYjFUgj!zewg}q+4g&H%GaDrAgzIB-yJ8D?c3S>gXn3Je zE^L!0i*);>RAEACH5zUGY|+54BvftGW+c=~0|@Grw!vds=Xr!~@VCo(w9Q7gwYjx} zW!o>-(`ylzOvl>|`P&Q>+eR;U=qJx#&W0P-r?o(Q+{@Yy?D$2e6Z!en2YJZwB-#8pTR2jV3myj!!CrqU`suVOPyV1 z$0nJwGwfKD4EA2grHP;2vcPKaV7HaBvN-HxNo<;(ASdWRR}h=c;q)O{1LGWQDW}J@ zyMv!Iq0ISU%6YfI{)FUU_OxY~C+U%yfS2=gT5XnVP_u^~w$W2Vz=Nccdzs1?r-p{>ozs&~%S^pGt!or} zrdD&Xem9QPAE`E&^*XEaCGV@pCOuZw0S~K07664$RYoT{q`ceT-8PxF#4={`sR64u z4v>efkJyxe=`YKr#pCUHqK+lOrO~M6QtOokyY0W%^W_eCM{e_d`s1k4^5y6wn^*atQztZOl+z=R zf7=$197-)%TU&%{m8OoYQJikXs3-GjevuTTQVdS4Kn|C_kd^CTdZgK;LZ~n2cb`yX zG?R9dn$S}!N>sMW?&XBG`dW3DJ&y@ij_ZR=&re#jzM6Ppc#6lC9>sP<6;(PF$EeY+ zi`RY+Bv!Av&m8>ArvFRp)BL+ipMN^o=;}Fp)u~QcQzkv$CElwkHn}!C{cGVxf$HLO z^I#1FpzibRJz{xk`fXuuYiLJ*=nm2ez$lU&R*m+rP>S`)iMb!zrfOCdJF(#N3N$jX z`?Dtcu8^be=nhcR<{ZAUdi$N6Q0S_}N6<09c7lF?SPJDMmss@yu}LGCwtlxzIj~{( zqT+J0jQ)p1XFqh_o?P}P$1w!8HnYv+3*-{Enx&x{Z2u5r?-R5!wLjzrx$CQW5aw5C z=Vs5t5bvzR_pzc08n>_aFjCD&W;V(h?v4(xONQG?!qrfmMTM(1mvjxGhxJPY}8 zF^)8+^Fh-)MX&way>*rZ9`ez2d#t6mdnqORR+Vn$Mw3nm9n*xHe*7n-r|ZOI-0mMw z_vhJ^`k3u?0qr3Fb=%PigWdJe?C;B5mAJ33x#=GoT(;=X-y5j`9hUwmpFMB6Jgya- z;2gS_XW8xwT^cfPA9^z*7el~!mMT-0s0uzfsYXMhD zK0C6ZxTpT!LxE{1m*4H-?pzTv;tpqFkG_#1iiQz2>;94kZ_K(PDPocQKO=5D4bsmC zUXqWvW$1m~FtBzg;_sR8BC+U4WWguJ1`qI2mnl&<4}qSoM=4PvQ@XSQ41i<6D5PAV zyZi-vyk90c#%xB{$sigY5ZMwH^@b5)_Acf#*)I?ud75JSY6I#Ii_nHe?>dOXLKqi< zxPxAAL^@HTpKHJzfHAg_&_r~U%wfoU8q^UF&wUgr9v!X#gM}GFqr2b<;?N}Rs5Q$d zeh>_j3d3{9)a4>b6d1w^l!w1p1%kSv;aMAjUSjH03L?rX@V+4|UHlRnuhj_j3^oiG zu?o3;G^`I5a)LX2&>(I&Ik@Z|qUBuh5k_493~X}a`XJ2uvv}C_Oz=@q{Om^DULZwP zD}K}}zUV7p02p?Rk?@E+(E=}6?H@KqPT)1X1HEeVemLY~mq&$c_?BFv0MlyG&{`B8 zw{^(WaKQQmGw3WcQD`Gz#Xn4(Y25@$uJcZm;tAEh2&nkF8+T5^;~>G~6igF!8wcY%p*KEKcb~p`*UfUxnqRP=Zvh!k-5Fplq`z`D-o2kjpun5 z_QG5Yb`~IyP*X%CUM@*Q9nE_ol8=L<((mQVA_6U~^5y1IYBX`D70_zB2`bp+`Q-dH zd93bM!2_1Gv99V9n>fp@la7<^CBf`=dq4G>o#Z_0;yF{r<2XVlv z_%KG0;R@c}%*q`uK7h>#(S5PoVw5hLom( zDamm*B&5#9M)P77frPX`!?=>zLf+V1Y&Ji+Bm<${zKQn{Cq_u(|L~Lm6*G3+prEZB zy}2wi-wZOMB%Aj|If77zCF16EYIRGm$zdC4#Yx~&f@C^Nv80l>jE2SCWM;N25^Igh zIs%=7CCUsX!R)!z0^Ra1ZbBAsIn$U>nSnv&O^wjAGxKl`QThOOrj%iCHaYHz z@?lEdQ*m<4SVf{#6#z#)J}Lr}vPSUvAh#*eY*L&a$zhqgC`z-{qea@%GUh35iq!M> zsD-Z7ay>i^K-?<}JU0tvFh^fdi)1upM1w7*~DWpQ~o#uyC4N)}I-e*hsAW?}~#D;G+DpnaCLZ#^v zI~}*GnicCaU)l*fkE4Pxo!6^61BN@j^t=4_vMv9y8j*jJDYy55e-bVW%uH!k!CuIP z|DPIBUXWl3@?RkreP+fUxa_rxJlMrZcA+V|tdyN=$E@)X+)KV3Rp)ShWS1**+K`-V z4yRq3*<#0GbJ%3lZmLH&y_8dj>~7*`GS>_`rF%Z>_xw{M((j4e>Gt&d&)PD>Vay@# z{wHnun$fdrcWYz(A8qMX?xlR;baA?wd%{xM-Qe-IoAdVIZ$_V~V5jL@;l;N{%iazk z`-YU+hduj5%KAo-Z~2b*Pnh;|9q&HvdAI*~S--&X1E&`IE_L^dl`*e8d#4%vKT{)G z6h3(HUlpSLILm&VWgl4ffn^_9{`UtK-n{_Dyn_2HqU|*B=0TgOY zPmvSP7e$`7491iXpD*>}x0P!DJ`lJIAt;~Ld)hPTUv;8g>A&`d{;3T;fS&BBEic^l z=nXOMv7!Y$EV-%#kYh5Ztkp<)({gSAzOm4dhp(x@3tkO`&JU6(M>BY)bFWsfy_X6# z^O`Fl+jjJ-b#;OHEsri`6T78fqIEa_E)5(aPL8}lQ9J!q4e3PT<-d{jmKsZLM#dL^ zZIK(C?Y;wV7(e`dXh`ALUGb3TfEV9&7n=ml7M`1LbsruZY}qVRv+W`dtsssx0uet# zCzL*}u85^~WL7{^F5`|ABWb6uEiQ6oz_H0Dn<$`;mJYc7vBN9WHq0^IsEZ+{6lNzK&JX`x>4!G zId7c;OJ^U%)Xu8{!}S+@>B^KJ(P|7cP;g*OyoXNxpl;}e@SsLawicfi@aUFKWaDe7 ze-L5&BF*cdSFP98`{f3YT{uzcKT=v28cobS`(m$)xwc4_K7hszl!nw*$~#Iwfrt)X zA4re&?w%hhu{mGY_%j<4C;hZIZunB#)x&ZpJ$tC~s0D&(47XRp!s4Z_jd2+jt&9dc2k#GH%Ggg8(wLMzqaoGh=kOCHdXYk+ZE;i4DFTr zXqF<&QfNr@CsV%&8)&57F;hv#+4-8qRIrXuIzcIR?5Q&pfZO#0xGw3>XHnq(q@Mgt zwP!s7n>sSyX5Rw&;4}A@v>D*?wXz$(CjpI{2#NFl*B(uLzV$(}Z~5XH9MCZTF`bff z^^9pe`Pw&6+wJb}_CJHxp9L;|4ZMZv{(*{}SaMCMJ}AgoZ$BF{e)9L$u&q5Pr)_7^ z^ekqwIBqkAZ*n!c3H0&y4fpD&A#)$10`P?H+f^~5!yQ#u$=1E9Mq=1suoK%422Mj9 zG;GEw6%7$`r*}C0mZ4Ds@eAS4cg9N_H#@u5OH%|grf-L8_5T|CS+P6aM)+>K*=X*+ zTGJHlR{_uMVWx4bGM(EF>&|eLGASEu)rx>6C zSD-yA%)1LDVGykE1oV;%6Y2^(HVk&r3VTs(JuB*8>=IzP4n&E8dC}ktu&_5zBNnv+ zWw`yX4~0Y4!sCHq3RYo%ZGccfLq$-8^045m^#~X=JOS#zms1h4ibB7;pI`tK7=9xn zAO8F3%Qhh7#s*l-Fj_&*>^L_>sw?WMe5Am!Xpm-fgevr0U1!sjY~SPh}{$vRFwjKY#4~zTTt06 z49N#xfdv@jV`9ERlkn<^hA}DV01^2JT^N)n7wU5nmcMa76A#aVA)Z>o4};(b4~HMj z4}60T{aOsUQ4qbx71jieUH6G?<_@LJ1lMzgG|GpJtp~N?Lpxw0^)sPN*U;%MWcSAP zUir|j;aCpJZGvId^)={|wk_>g%&=CxAJ7Fg5c-de9JLv=3|ck}8B&qy&>_Y9~FKkB`M&2$`~V6nt>QQm8xgu_Jv#BVg}~vo6=>F!2Kmv#Wg`F1y(qW zz}^Wz`pZE_B0WwU=1fU#m5F*}mG86`tB}AcUsI z-NmHaGSM>2n5WEiJ3>nMW(;;fOW8;ZHUe$AkjBSUE>#F78o__x!A7{HweYA@;hJ=7 zSRxSi80^X2n}mUF{G8unEtI5s%&mXKj4WE~X|3jbQIw z$r>33a2aPBV*Krykvp5XV@VKgog`t&y!QdQMwlE2aa0jl;{+l{fB;Lk%ss5Ado(bP zb}%PfByLeY`41ysQ!-I^)J;%Vb(`#RU^AbiUZBH@KSxCePv;xz=HJp))iy>xFfK5l zDgBtmKDW+Hn#zRpWUW}IIJ``EFfOX%E~;0^Dj{Hgh^BlU!M&Bh1@j;>-2xvdn7Yqp zJk%(jw!ZY!t=MG?xZ5pJ?6H+ao~~^-V)c1EWELKnj+Ek?-C>}Puw`Y zP7xQ)DtV3|w$Z{qVTfUKcpNujYp{r^m`dj@o0=-k636#qOF*?H{-Y%zEZ&E=xU&TR zWvi^!7(XeA{m7g284>x7Rc;M08*2kt1gfkf3NJ_ot4bEi=oFgFC73Jbs?#cV1M`g~ zt$D@@40vu{4Xiw4BN#@i+%m2#l+6cT6rG16KWsoYd8 z^KNGMmMo;YJ-u3mUX2^9I=@zZ2~gqG;+#%~-L)v4*(!O*i@g*3$iAfpzy4tOXzhw( zZKiu!mZGTPe7G^)*3`DPaI|)bReJMp(Z}5B?L|qfM?&UVVXSQw4;_~4klK`+PbsgYsIK$m zhjdCf9|^=~m8eIZrq$gB)IMvW6vN;N+a$OWHF%5)4Xj0tQ82cqI2`TPJk{KU@ZuaT zqb_PMs)E-eKiH;|wnb!=;xxB!Y2#`tWotU-W0mRkN8i*l_$*mUcSkI%g?FVIbct1p zwhc7znxWVRCcS3!P>wWJ*+RYQu}$MwJ&_r9L1U5CypqVGQsvJ3gk`B`jZ*c`Xu0cr zuQrLq`|wx4r9`St$`0zI4kMe)OvsDyW*(04QRz(HB&-0(@z0p=@mnn-LBc}PRY!7L zr0j%GE2ncGY(1whEW`1+RFdf&&?;Kr?AV#|eYW*pQmdM7I)6#V6;6xTc-?V+&ApwL zU;TOSCEBm*H{RIExrb~uRBk&_-+oiQ3C3!AVAo+8)UoF(HuW8L;~n-p9WSIi9rZh3 z+I2byb-HGBy4QE^1zEgyI^XOCS^h1s`2LGb{&j{6L#Mm)nlo_xLMpTd>vXl|O z!-%u%3fWt0sb?UOOn501>cLFlFe8Jy(mVwBCR~m_WN{r}C7QAdOIhIytRnrc{2*4@ z0u$rG#v$3692RO1Sd_c=%mlB`X}9Ba25}g6oY&GE&s0v&4(F|OH*2AjgS^`x)IFTh z&8X)L*xef4>Ha9)Q)SvsIl?9^u!*MZ1`azL*;BF5GbPF72h7 zGN+Nf>zrPCY0ska+a`~_cJ|FV3$Zzl8mp_E)l)%{S)`)x-R(!QDO zo5{YJ{2yc{2W^MQVwT=9*2+?1K>p4n>E3u(yU)KZ#SCvYdWWa=e?G3J!aN{yc@|ds zY*JF9e&z1#Tai)+&fex{b)~I%;!Qs-&Y@e*lGJyTshm%B{ZGvgw2L+VrT6Klk*037 zXH8Te|F>=CrnBFq@{0+7mzgh{ji)D<3wMHQbRe3|k!O@$t9)IL%3*tB13qNWADgXK z)aw7Dc*UwN|665T;QJ!cy;{$ynVZ=(twOUgVhh&&m|4_7LiuWG$|-=^lH@@3;D@r< zcXM`sXm&7rKv_a&^D6<7^OR%$0oRUajFo^HGS__2b*CSx0QHb+tv(R&Q0I zLt@#%eEj3(re9=C!Sca3cHh*Yn`|Ki-{i6JFWO>(ZMP>^vmtiV54gZhg?q)InEEgJ zdYdibyWLq+eA6#JZ2b~8^B2BRFmCZ3#A08+T=7A9K_^sqtZL#d*5t_IE7IlhG&3pk zcHrVzR^Z1Q*Eb@P8h!v8AuaEEeirg&`GsVUPM$6YR>h82gh9RT{OB>HtK0T+ob#-1 z6E{8z+m7b0AD?-g-O~4XYoh)ip z0Y8607RjF?+0e%m`c)~fJ-%st*nD%;dF|V-XW(4^neEoH^w<`2)tOa+UyaMxHU}nr z4r@bxw_g5ZRk-IR^O8C#0#v_k%%3i<%$05E&6R+FSQOBGDD93>nLB5mvxwMqFW<;*QEBmqIJnRQ{S6+b4MSN0k=l{*!*JVGFo`R)UG9y>)kua*XoM!D5(Jh)MNv1dKi}}U zFbtW5##T}S8$c@Mz^7fPkTwvKb?q_#Ld^+LQAD2krsevurCx*J%ygOm)D9mR zx_?L5WDOm=V3@c&9CDBlw>lh;s6&px68G>#7_1_{{^ZOal05M_2lgx2NQ~9?!f5({ z&@fpEum06o8h#g|4p%!52fs0lfkweUZV1_ns{_Pgh?(STv+62vunZGoKtSl@jSdYP z6%{7KtYXx3;xslB0#Z{?!O~i+k`-YHd1gxfE7%P;L`97*(KiM{(iP54zd%hzM<(qh zNp3J=v<&^8D(JiFq^eTWTYXa!xv%)T1)LW`zvOxD3`a#%VqLA$t{cVkwxr_>qdy%% z%{rZoa)bLbFF@T4z!K?u>XJxEO&&4!a=q?jjSXccKN~T3!JzL*glIlaah*c>NnF*X zIx2v1ZrrJN3D#u_h(;r=Y97s6CaxHiYqMeQ=pd5K{mv!K8H=PWIv^uQO0yAmM zT?Jh>6*sJt*~>&%jJztRy0u$pwvMFd^F-c`yvL$e-C(9htmafK`Q*+X_K8)^Q)f*<0X5L2TlZQQ84)u83~D zx3xrzz450vXyNTTMS(XDxWL1 zW)XXNqsq33T?j#@u2ZNap>4|_J4#4WETSkDR_c~XikE#fE}jW2;m8)Kx#x*1rh3QZ z8H{F|D5|ZOp)R@E6+o&QpGb{iluh8#4kK8@S0klS{DdCRd>KAL{9JVCd7 z#F%(^M&z<>O94!8|wy5DY)Y!IWfVa*{sccZP z&QZM%@}$n9vo-=--oYwMlBvr~uNA1PeM+peHX(foEK$dip3q5_+eNS0<>vFG_oH=w z+jRj_Bu_qa6^k6j7wxL&;0}1TH*6b2Bs)t{AL)=0wqzuPOb?{k;>abmnrENt;*OAR z>QNHuCCRoVi@@4YDO$K5EuOg72&(ZmNmpQ3ktjAK+XJ%O)t98I74@nf)za(r-0RrY zWTGuqslJWRqC@F!pL0EJzM9SVBz0T$=B{EQ`)`qeqU>Q@!=tJO+0lkcC0lLD#*;dY zAL!(@D|>@GjV4JoGOmQh`9}Q!S{kkNEG=aXApC>a#4ygeLT&0RY-F(na}}CR?={24 zgt(B+hJ8&Gs^Ia3<{e@)jaTTDY0I61E%BR8XG>HhGn#*m5m#_o=YoW#l?nO0&Cdf` z)ZF5KW01a z52QOD>32N&A2$=^ziK-V{t2b{n|6Wf|CzT1j(6>bWOQ)}{bMFk$_#h?u9zT3m^349 zp(}yY6>G{!LUwtSGLCsOV0MDopaW@k3`{9A+oLPLp6QBYW+<~#78pc+W|=ZGm&2&= zV7lz}cHT4h%0IMv_TJzM&9sv=ey{OAnaK{@Nt$Ej$Ki}~ddAt!r5uqp&U?G=K@S!a zX|ngq*6_0k%Iqpr=7cG03fb+9WF6^aj@9=}bGkoqSW62mcxm?{r)Qa;{Xw~B-ITq( z&|PfW``fhVpl8p4oSvUSZx1i_c-Oz>pLl!X_glf!eJ8K=2|w%mcg=+BA2ZqS?d%iD zK9QV=EBe2QNbEiyjqYkr5&jr?boe;;ZL18fUqunZsUK^#xo;jn#uYia@)!4A?Y5JW zKcW=hALrF#)E^0`2;OCcJJ4Qk+>#XSiy1lGbHcZ#{msv}&}$|bpD07M^U0UAWUibT zU$bmc{VM2pDAm6My$bAYXvS4Z0qYJF+bC=a?8y= zkdyb0gs;*GNJ=pOGWiQ6y0=iMisatOLLC@kC^g0>UetJbDu1v`@3QKPwAu@Drxc73 z)@rG5O!K6#O0*c zT9Y?2b1O;4w(Q<{sXszsM^N8n2E3P*>XKmiOn%AO^mryLGh+TD&OB^|U;a#j!Gmj( z?`64P6<(LHF`Zdn$UeJRaP!Y_r~T+EYW_~~-xs%-Nq-9z&}ClTmb2~;Jh>E8KT_c7 zxAiw{OYpe^U!J+1>&aV=eMwE~4rWa-sVv=xhzCf=g}Gyyp*XHN$5rJo%LLGqMxOx%a_+RJq`1YX z$4^b@Gckv>pQ+7(kF{5nN-b+_aP7%}s(0ZCr&l_|4CBGd)T3q3C!(!qT?aKIqDy~X zw;g%g(^);Gxa;X>hU<*Se8+SzxVDJ9Jp#8r%Aick-NjwDpq>2gPW7MlS{)uUkQFof z22k*m;xmFxh*DcE%5Ps4z5k)-eQL|^vVrtRc4LRc=%4++>(YsnYxjoGZLfG$^wLL{ z5f?HhkG}F??FS2d*DHmX#n5{aTXRo1CFYc&b z*itis0PE<45{9goXN zG*}gR?RpX~ejcd)RaYMEoKbPncIItBu182|@Xxic%=p1xkA_m0(|Bk7$HeZI#hQ#i z<2LuY0^SZ&HG+R~oUSWL_QZGk<(ysoYH}FRUwwsG%%?ObZrrY2Ik1LbR(zrM!GECO zpIAx6oDSDt1C^7<@y8#`*?p)Ove5VUesfyNaeGUXe(YD(V&Ot9uby_N<}a^)`p3EW zv{3`mYK(Wi{?rO;(6dIJ#72Jc@)d5exd%iKcuJuWoAm222BOe<37mH*IUFUUq_ipeC(HUCt;+M!fmOOM}gYdEd8*9PC?@mF4~E^ zl}t~8+wGr^TF5irvAq+_^(QV4ZP0{@%|xH-j~{ui(-1!BV;mav?aQEMf}z)sxrrdi zY6uYSWLB8vYdL*W0Ni%Bhm0-W9GUM1zxO|LDSj$;UhogNS@^ntezx>CvCvIU>_0@p zzhJ6HfBWr>V)eVz^)3dq!L*Q9joZTmLzA?Rzb7^6H|#nLdILuzLqH_0-Ird)ic=2% z=t@xG`8d7A=CbvU3XLJUy{2`S@%#2avZEx?Yt^>D{RZf26;YjAvz{uRLk4!O*U1g^ z7iVYT?{(kBPS$>Zny@`65W0TyY~Dg}WZ=iMH%6+jha6~ebAP9i{fj`pwsvt>?Kj}z za>?M*{nco--;3L2+e?q-Hdaq$Eax{(lz#JH`=D03q^Gx2?;Yy%(H{JHDdi7}?Dv~1 z^l}FEU|ki)n@5#sUz zdg9m2Tn^k6k2D7XXYT~-bH6?j9_b||K-%nR+9>9n9nWU%Nk*oZs) zZ|>-4Un4udMd=PlJhy@le)aUQaytYJ*BOqnn}Oz@1V2uR@ZyHOGz{ClU=?l!jS5DG zU!8#^a)CPU!a}*>x2@}U@Q zL^cC~0ztn{!vjH)K@`Nwk-!^5RXFGjFANJSntN;s+$+IGn2Pik^&NISf9I%VNo>hf1av|I{Z*zT$|;t?}-6P=(|G#w^N+CQ=s^?!B??>*_X-q_|!cvIfrsk2=99wWnpv@1W(aKuJa7*>#fu0jZwQ8VH)+m!1ZAe0(Zz z$uY0?Vcw~^IAO_TKhc~O?c{65N!rFa%iOA$6%%iks9l#Vpgk-YZY`KZ6`Thb7}KQ8 z6jdy?;vQ@jJfbPNf*2^(2;GrAtSnai`d4?GWC6*FG& zWjN1yk`hlsBZDOi+E3CyqlyBmIv=;Lx@+D zt#Zq<_=a_oBxrUO*JJQBeDTd1f-`Tva~+;QD+VhP>`U<3x_+5DC2|oZdDeI;0$9N+ zp>8As5jt52JlTer&P&W-5qDinP=R=oZh94(;PkYZ>0aEumD0Y2+Y2^)Qz(wy!cX#+ zjF%8!+rZ0dr3}f3??+3>oBmU}1d3HTEwKDKtJIH|@FuY06Sg8Npm4l3{}eT~0+|08 zE48brb|AJuMz@mBw(<$KQct&lSE+LMUF8Wtr68bC0#G0fxp`y^;+Pxy_E;Pjq^k0s z==p8rmyKH&0lU@tG1YH3AblXfU+=3`A#RuG)f#%vx_}z3F_)LQZgH^a*Y9%*vE_94 zGQ(}py~a*G-hSa?#SdC-%T_61w6;a7mTpxmh!Aw&DqAY4b=VRyW7j}a5G~}$WZ%@%l(_vc1ORh)4%<$chh117E@_qvz=xqk^gwCB#0w65GA-z)sg*f&@9fCnF3Tl7Zr9W|}fU9?WCvdzXO(i-Hd1 zN;3;RSVUz;MG(u+l!aelWtTF^942*vS%zfNm07-a_hV97|2bBY!Rh4hYSlMj{VP_| zU(b0x&auDpPpo7#gTwLY7ODLwR`OYyJs@pbRmy7Ou<91r4g9QGe)f`SkB=$)ND}K? zQ13FbXA#NXE@h{A^lTz~e{H=np{NoZkW_2MO zb;*g9VN_Gpjnnp>8)w!O_h#RWCt8Cgk!7I%sunf=#aY&=hu@>3h^l#)G% zQZ?0;C}WakO0AyWznQ#$GkO1Jvgo16yUh!0z5nKB@;;jEqscy+?4!v(n(U*=KAP;K z$v&Fwqscy+?4!xQ89UiW6Zy>l4w~!_nCuUj><^gyUsA@|N0WUt*+-LoG}%X!eKgre zlYKPVN0WUt*+-LoG}%X!|IdKQKAOzF!#^h4chl^qZNt1td zbM{I)`}Lf*-OwhL#`*&*U)%D{Z%k@Je$0<_ncw)Z}z~2p8 ze+3<7$w`IC&$_&bSi9w#9d+Q5d`|R{LDJb!$u06!WopW&_&{6r;6ypW?4uMb)&$9DSkFm}xrvx=T zRhyJodqBzcZ-_TE;4AoxH5oo0Iv+|E+r)-StNN=i9$$UmE=gF)ysZ@E_qK|(qyGMG zBn(3Y{zWQ_W?zh?zO?VuhQPb&L6CsCqUoI$h(t3*6|gVmJ~m*P*3H!-+0J8 zKWIX6X^}D&ESIJE>AHYw!5H*Z_tiAGlGg?ix4N-012Xu&{smQWU#k}#>9q;Z%-l&|jdYv3Wi^#@C!UfxSOzpu})JT$ppzbXp|30ii^ z4!O2w6=Duv`wS>+`1!s#;Tn5Ptz>5_Ty>+Q~X>0SjM*Nkn9~xudIVjx^ zzuB6LdO6Fxn&hbq51x0w6KNIRXxe=!7|y?g^Em^mcNHr z^`>PA+bB!vn5+!+r+Zzom3X>Y|8(nQfa5~prE3aogMJ@W%`NB4V3MiJcQtg3@FT4j zw?c>HGPJgJs^%v~gSYbvZi!#+ioe3OGZG6an!7bc>QxFj|4B|}FTcG0QQnJTC;YIM zvB$6Xflv9nucp#oI{#uYjqiAw=aDWKzY}*q1wDT%58m$j{lsY9{mz<<_ZNz;zXM+j zJ=R}v#G+7Znqc%I>wT7FnS=r0^F!N+wLFb9g}b;-Htd*4vBI@)#!@yJwv(NNTcw|* z3Gx=gXZn)B?d}ym8&deePU33G+>=>(OPNXaZ0n=bqSQI5O6OCF453d}Tmh{C&n(I` z-p$!mj95@Ucb5H7oVTly8Co0{DYJe*FPZIwtDpE96PX!z#!X|y=a#1412>P^sHqkP ztEf8LqO@K$Hj^{jS(Wh<<8o2ShD92z&g|G#b~2}rj3#PU=UB`DI{e3G(WK~udKT01 z#_w@99=YMdvy780^Sw#c#Fl4X8{9_Y@XN=kj1<|_W3F~;*MN}mIJdh{NyUYgWZKb} ze|C>w_%JT9xsJ9;~xk4AahliQ)i*RN0wMrJv#t89W z;Y$HEwWeJP|3pk3q3ms%WU0lJ*-p9VZFJ5)Q;!E{2%m)vzq(blj9li^l|rGxyp!Hx z5M|t1E@jq}y=u9E+w?`X%k10EZ+0Q{oi7RD7{=om-{`m?`wMbbU2Z+g*l=4F@vgxd z>fY|ip8?z1p!Jr&RM)HypPun2h(gW0Uz2urW(Ih5xToVY!D=SJh}PsCSn zJzHqbqaEn-A|1;2w1PL=ypJ2~P80A@M|Y06I+w4KHti~8BA3p^Dy~MQNO>7O^&b!D z(V)j}+5094oS!XP4W3s1@*2V^S|P2|j`mzRQ4Ko3dA*7<*1h-u4B8ecT5!zTH}1?@oI87D2S0nwz4$_3Ww16ZklzSWFp|Y5WOa#m_!l zS7qmaUn%wdy(o;hw*0S8ab>GS{a{guZD_nfNiJM5^Tb zYf(qkl2pXiQ*FD{Y*Ul<>vmAETbC-tgDttv7o_>)IUe$Ac~`6EY)GYN#g34@^vK5d zx~0&Gpv>pNUk6Z6PoLY(T$p^EUH74PcaD%5e7-1XsPE~oHO#Z!zCV=TpGQOL=m|SN z+iq-J>Dv9BeKByn=ke(a~+%|76{@39UzCLJ_X%`g7`q7L6@*NE-;2G zFbVi~;ZU%xjQ^<(;P-c7XcSP~HR8l65D(tvftKT6RuLz;BSj3=gykbNxq%lz5$6UY z&RPYC;lm}kFIYnTZ%`s`?H&Jx$-dxs;Xh(1>T+(RmuaDbCSc_^`{MXxMG@(DkrlvGA+t7_Gd zow&mN>^vD%E1I~97Cd2{SOtyerdp-R8uA+@QF7x+#em~S;CvXHKfuIa6pPcC1nQyJ z(!#qb2aed+8>Cce!7oN5BD?I4Jw;psdtWA)XpRKm)E{nE_1(?s!z>uwK|Q7;c2OPanH<3PCl zgy&`e2x2dR5?;RUK8v8ghuUolg<;^VD=7gyvG=$fgLH&q!6^U*vu{AJ^XlkaEA-!B zbSy9i2uru9LmhaJsu_-fN4>gu3*!ii^(UAB71Gx~V`xXP2zl(a+4K|%OoC1<0b`ht zMvWeVXCB6-YC9S+BhI&AgMc^$8aGyhd&BecDn`4R8l&y{q?Vdm&kSHlWUzLvEjXLF z-dU|aLZpmgCQ#O~%^G6^#+1O(hkP>!KI7hwz(+7CUog+VQqvp{$3J9Zyhq|(hcn7H zGm$RI=Y)}v_xeK=o0o3kyHv~uD*X^|u7q{YCv@Vvb#5~$r)ncd2##8m&%HB(IR?JT zgGkbM%c&{K{mslC`j&H+mP-Mp*BfPAX8nB;kt{~b{=i69*i=1IlALdpdyAGYsvEzv zlE2g+I-OT=$33qHR3Jkukm4!O8Z8ik3yMYUZJH!YG7FmzrIW?8%xCRZW>IBNvRlAK z=dNad-i&!AiCyoE^uR`Jz_Zj?;l8>kYl-~ll;Q%nRIt0Zt77JEt95ZP6Gq-B_Ho~v z#M(Oo9TquS^p0ADv>}|9D+;8Ups{#AH(WZ)FN?Q0doJv?BreV-|3yhuu6s!$HJMSZ-lE;a0l^)>DZ^IHzeiB)drN@#=*N#2O zH_lE~EE!bv!y)ja#`(cp_$lkMQkyq1il_`)@dz(5h&O?xOXv?Q%kj;EBFY;PCEeJ) zYrbVehbz9Yu20eAiA9C=B85AT3I}0%mWcd&x;BSQ3K>|)F-T?Y!AdNt(rBxapPna3 zlsc)TB1JFMbS*%h9vi`Mb}cBjF2R+O#IAcpw1`zA#j`0m zTT&m01ZUUfno#nUXl7EP&@mf=3Dq#RumDFWW7CRhoSTd=M#&!g-6X-*qsuvbPJ`oCUkr;pZ+l0vTspV{tuvCTvauah=xtV6tJQrB{ zt-4j&qx1())@5Y#IZm0{LZ;S2vyO72(R|kX{x(@tcOl;VI}2?aQZ47P?YGZ0oeTWi z%(Uemr+shy^*?qhCuqDYq+V=yK1z`55+llv5vk0G$@u3~PW0YwoFE3*G9zy9P7Xg4 zB+W>*WA0tf!EqRwr3{Sn-s~$Q5Xn6DaPLBwAU^0ozCN=U$tp8tRAsONJXj_C?A(8C zn$Y=K6{XAuQlujlk2 zyKlVj{^u64DSN2&ehr7!vcMwqbDES{^UCaHj~+h{_K_;q|HIyWMK$^VYoEuTN*4iX z0%D_sAfj|o5$S>y>7W#)gMgIKdqP6*A@mlK&|4CECxj*-9YjTX6X`9E`~U2jHP179 zuPJMe_P!79(;R2L*86jP*D{CqN{4nz`~R+)q(u*%l@9;e?BAjtzWQK*YH+Ad_%qFe z;p?x4$%2P3n~yLI4hLoaXHVsD{>PgpQd$2`W=#M$ajYnJuMgh&2Dr)Jhs{tQ^P?Ql zGfU`=^0xUIhKe?FA>sTMhsT>$1PjAW(a-01*!I>4O{aHj*@=>T^+z?}|orvu#S0CzgT zoeprP^I!Q+=RfLA{=Pl@_XXnr@%He4*?p5mmbON$>(_=bn%i1UxXsB2F+y*%&#)es z1`0IdVl$WaH+pjZ^b9roZLJG6lVI4g`J>~#v35+Rd~WmE(Uxmx&eLZK7e`pC)rH}= ztrusz)8x5+e=Zq)3#dV*G5TGe;CmNFF`D)^h)G#0C*qeSWFhP_Z^<_`S}#Ig$o+eE z91+Z^{CQB;>hwGqN6+D1NcEG|cg_+Hs^6mce=3Zpcw)(Yc|%YC>L@0+hJr79;*+oag#3w(f?SKAk-I<_41q~Gnnxrnfy zQL`blKNKj+e)eOHH&>Ec(3b2|r1AZ<$ggUvPJyQC_B^=SdsJfjxt2CcQW7Dm{w+mCz zMD4g)6#K(>71iez&gHv&m1Dhbj>WL7Zr(S|*=aG-aoc&p{ga6IQflLNBcvF^&@@)p z_@H^`QKYEX_Vz}_r;AaTZj0;%&97#1zEZQcUvy0(+SH=GAG?^6z`t7Pa%kMTyIu|K z_HsFD77%0}^xM@`Dx7VUmSqb&*FHd?ACw5{IVSeKcj4Sai+az9SN<&a7p_&ZgSZ z0v=C4_Kp!Bw#sStB7OGkEUTW;>z6Mc3Kh-ro@=4*|MfLO`>cM_TqtmNQG!qHWHDU4 zT)H5!cO5&QcDvktr8CgQw@DKG^*9So(E@@O23^Q}#l&U#tW=9r`%KkQ%*gE2INp?9 z&A+iA`y+GFrKzHEY^Z6xJ14gKr}ywJ|IywB3IF~0VKv=@uopQOze8M~w(O(dx=PJM z!*VtVE8cOwTHCTi7f9klPRqvmo=eN=8;vXy?nrj!AkOQLZ0-RQM81cI-lrk#HkmPB zOI$PBi6xqC@(OwDM+T9w;|&hV8};pxo|UGzIq#m;7AQuf#J~IJu_3j}aR&fc zn|LXmFR$2G4U~i|s-myUsHAdW#mi}6kMtJtl{QKD4xwA1+Y&y$@L zM063|<;vl)gh%OQJlx7p)O59p9!^>3?}u2RuL7$*5O-gdJbdXhd^$Lm!q|+we{)?I z+`*K8Z_xf_0es}3=yCdRAL~qou({XC+L=EJn)<8XlLYW*Ckhy-#(0#o?mB zr#}Cqy1wYqIO+;maK30$7xz_<>7};A=f&TT8|SW76enYJiv5qIxuAKT7!IkQGs(F^ zDXzY|_+$Zl+nV)P<32Fxm(y%X{AG)6uRc>v4JX}y90yxA-`LNvIDJ=E zSZW`NdgviEH}}sTT_@8-W#~cww_}N`U9AjaU=9B<7I3|aQc)Gyc+PSG&Z4f%I01R1 z`Qu*2_3r&Tw_xv-?_?5Jb)QF$$G@7hhGnoeQfmE<1eIFfewwDOLq4ADXtq>w7u2H0 zvrP&N;ox9%v>iBpP_sMKwBP|X>=z1j|LAvrarVbyL;g~}i_r4yUL~mbpVd9(KeToV zbQx9=T*G;PU^6^H;UkUL_QQP;?W!=_QTp=Q@T<}G-R?5A5B5KyXgJpSBb>$!{GWWd z-@!>#V4rBntHtnv9nnPgh#RPbvR7qm7S~lKuO8P`iI+G{llw{6D;!jN%&*(*`OZi< z9lGX}W!kZtO52t1W!npGGwI>`4VHhJ?aqA#|AG#w5B>I!Q~&U3Ws0!UlWklll;C~) zxMiu%`!&dZ+jnvHo068#!=vU8E_$qA-IZON7Bse_ByWB{F~Ci*ak)Z|Ir_=8kJ?F# zr96^*#$WEXVtdpSen0CL|55OP(3>Wsm5$^jG}4I?MTdT;P&6&w^B(KJ>S7-;z}fqR zuc7JYd-tzO$IFaZ>0xt`&#|(ZZuEvSUzR5Km3ErG$q(bE#Iz3OuiaV|i6o5Z6#lLP zH*eZ*_~JX9-75dgmE3>n=Y6aCkm;rQhF%J*-}xE? z*;??0$*kVoM%_UG&9x1uDR0D4CktsOr`$jOJJ(c?WGogDwCSLCJG^VbYad1uzt}L< zTq!C=N=e=Vw184bjwcT}#h*^016HHnuiu2!pdwY5&@F|8TLuvl@0%3ZKt!6tAoLhOp{fu?1-@2VLj$E0Ofg#|E-Wh1|w{@&wy` ziwK!`9AwlR!jJRKSP7l!1i{mMOC`fD^Mzbv4G^MqXI>4-VwKz{4^yxUO8|S9Q+RN( z`pHd&ygUvonhX>>^n73xrZ^R@WEcADNw{orD0zLj-f^ftTV%wj=Rj{bx1G=1V?REe zry8ZNFn_4l)Ds*2h>t!IrdR=6$xvrph=mdO4Z+irC8FInBFG0U&lW=3=y5gkv2rzX zvA2^;Hk64|g;=SEJ>w4x!hvN~J(4LSvyY!7*g-zVFrgAPDbDfLbbL5 zi{$=SpT%(RM|UHGM+w1GMltV?V<>!ld6{B5#bTz6{C?m>r)}-%u)$$_uyz`HH= zN$NEUr3;VBmNe%CM@mQ=j2p$h>`EFzCS!51r=V~UZ*tTsio9B~ z6mw`!tC@+rgdzzDU^sZjIfGT6EF{Irtjj=o3@Fd+IPoIbi z3kJPrwX?mK0I%kcRs^TAuEJySX)n|03#OBkL9(In59!997RI5OCmAi28LTHC=u~8a z){@>D!%TTopPfXR_(-%GE9S8wTJln%9+}N3RaerQ*#JH(vM-~|J7ifrtMi0&Lck_T zI&|!E>dAQ4COoT=EsISl8#>LgBJh6gBx?hesRObtUd{Ytm8uL%_)bV>x67rI_Mc(n z)ESEn;>|Uniq(bW`m-Y9;ZUq(uK(4ibWl_JhDgSYv>bt`BY{jYEd7TsdDm{H39cL8 z&PeZ<%rnC$i=QSA)aROY=SelhF0?1!u1R3IlK4;{T`r@5OU+I}rVxozR5U4+_brT1 zEo2@mTx3nsT2G|0fBx(=PDA~LfrCgDWiFq?r*=pN8+G*Teoh%>=s5^cWFK7^mAQoq zv1AYXY7a&i6b}m&JEiCNpkKRD=bTPtk{s1Je0|d)f={QWQ~TABu4or;G~8aj#LuMU zgP_NIsC1wpDy0t*Ehv}0UhGbdtVd;Mu$Sb>@S^*WaW&}F3{NpE9kU+qsh%|{QMzQGUuahfZ9ri_D1K^8kt!-mCf_3s)3lBmAfl_*OA4q_ zJ8-n}aakL6`N9ci5{>9^DEmHLypoaGSy*0=hRg|;%t=@LYyc(9l!64yj3ez$iDG|z z3)s=Qm;H*2GIC7>i~f$ms8i>Y!#FN+6ul-E(IK2^{fZbk#BR=3KFr8t$arZH68mc^ z7+-Xo+%yMrwW>=Nu#0RS;$*>6d#nK*EKRmM)+=y9GslH@aP3>1xq|CyDh*nRB zEz4k<(WQOtsqe&URr&M?p0&Hw6`APT+L>B;janDTdtK8yeN2TKBFyr8t&^lJ#YEjZ zjkM1Wb+f0;HXGi?EOpbTXv^8MMd~#3-Fl2&y_qaFW)U3Tt zY-|c2Z;~Sk#r^Sa7CEc=0yCZ1uzS#GKhuAEY_?gyuCXAcP)I;jKfz($&w107d3z&a zgQHbPtX0&w_3+F(4TeqkE#+=#Jrcrstj9A6wy85Tw43CS`R7qaGf~gw(3Ymrowq47 zw3CD~UfQ(3EpEJ_gW$|$Vl%6_eyQWGKhyop5T2%XzRb2OO>MR&IZY!SB6F?Wa_v28 zo%H7&jGUd)rJbw;oi{a$$;`5zadxd~6gYyqltNl5ObRqPnY5hRUUPOo73-EV>o#cW zHk<3VIPZSP*<&TwV`J9y!N12Yv&W&S$7!y|<-F%3XRo_l@Bj3Y&fk5L^IlRgC&BBx z7Nr|mq(1@TM2N^FME~74i6;CVG=cil|J^tFJ8qKH)En;Km;QI|WV0`hmKZb8mm*Az zn(IY4(WhtjU9BQgyd$QT5;3&>V9oy0%wE(Su||`aGti&6*spG7->jPBjGQ7`}3 zzRAGcz);hGr~g3m{=gTr!3qDt&zilX!m3kqgI~`Fhd2jkg_XXU4K4c*VM_<+ZTc%T z2dYZ@JB0^|Hizmohu8dj@tXAI14HLd!&}0`&9t9eOZzr9hcARbx6=;qMSt!d_`DO{ ze|78gf$+!?E!mmVXSP=(e}oB~^CMgr|I14{cmLCU6Pe~QxhcPd^r=fLA)gj=dHGD^36Z6(<+zoak?)FHj18q#9KpB+V< zTFG&gpf1XS>H3zaCVo}3FHZSAZ3^mmwQi3L?WzBnmKNHzh7QZ_b8sT%MxxhBD#$;s zC!hlLH_93rWlT#)qD;_bE%gpIj$F-WI28JUer?7a;J-zgDWuG-f3ve|XF zKtdv}vmG;Axap97hK9`<0~fNL`u@xYjy^}xrj-n#jb@@)&yMFVN$8=+rCFG6qujMQ zvvz99QuCHSTmvp0bR4}OyV=IPcDwGmm+JL&InzGsxfdrS*1&`?DJ2e8JN>MvQrAG| z543CwXFd!Q6i4#in5`b}-PYf$mJ}zJ4Rwr~?H6l|%{;CXT7>P_sy7PT_8L4z)a5BY zHGlG1$m#B!B>D_zXs zUJWbA@L6#hBViNJV3PQfMCVtpfvVeDQdvlj?CLF;w#eyf!%?jNp4l>&+;GNT;KAmE z<3&^B0P9ZUud+$Oi=!{CEdd+7wyrWKDo&&PgNC;KZnw@6bKrrbA#sJk^Bqjq zsnk*HCEp=`a?Wv*S8r>jT3O&G><-!1O6#^-rOCMCyX6m(k76!WgwfGtHu>_FFNRbG zxX4;|DnT9&ru^~{JfHWlDtXA_Tl$ed%#zkw^#y46vkggPKb0!VI`|&@J4t1^{CeT3 z7hV??5xkdlT?*|o@6z!_sXo5fo<7y(CchiWotGbRE-reDQ3ux0{)6$sWVcs<7+8n9 zz@GD*VcQ<@+#j5F3VhRqF!G1+8PnqDh_%5Wg~xn#>_|pF^hiYZ4d0s&KFI1! z>wrm&`Foikgzx$cCt2x*^2Bhz@TMA03;hy!FH3;OSw;u;$lc+|)`u5CS3c(m+NRfs zpxpzfRGvyOLV5BE;vN}u%6>@5v@cv{NicaMYQY?Re?-vvO9MwmBy%Z8xbGXhb0cO=yPcl z5y;)Dt1TVvgkV(zR*p6GA*IfmG$tcGJ$2WtNn4=TrX1s3D>b=GJoYMn(+Pctrm^yZ z-jU!Er{5k0Pd5Y<@zcZRT*>uJS$EyU-kbg8GV~)h^UHXu$t}Bk3+!v;ZDwkGSyF%0 zIQ|5s+t)aHS%RnO^K(wW3e4E=A@b(0Z(KbZ5nnDuiqvPT$~KlA=l|K53_0Ga2$@&= zcG<|_(yWlCUXjvN1caHzCvU-EsBGsr0yxd zgYNlR#j(^iaavS@7tTulArtE5UCxa3+|b=q@a~pz5%cjox8|n6r;77F(sM5&sn}+qqf#$>ZN78>-(sGCzOliJY`+Y`TiLnUVcNI&PlLvgn=m z_{JiNYkoiE(b+7w{3J-K!B}KJWfop8nBzUfWA`hS!~Cc1DZV!>`&XVy)A~je2+kAg z&SF0Q-N@UQ`z@*5X%Vq3^~RpS)4ad8ow@!l&aV^v(hCB=wZ(M3vCAI1m$bpT_%TOz z=u!LR&@YTf)3??Zkf8Y7@6>SrFBwC4)0_sf zk?nhLOb0zJdK*SjIS!RNxBb}5Ehfvf4>w+#``zsDUvH+E-ipiebKD^vw6ltQPSURS zX{|i&#!KwEO8Z%BzcmZ;C*jOVI~!;BS`U#}(!n(iy;4TAqxprsC($_JkKhx;xZ1R4iTh7Q~y4--`q1 z{o=rxX~dK5Q7E5kh^B9Uksmz{IU1LDUTcJp_lG>2LIy;WA#xpdS%iZ zmY-&p$QNqBAEvMB_nbfCHD#na+gnS!_aaihZ+*g~A>k&++Iu+Ee$~o#C-GcQWT2<~-^(XN~cM<%WZKFpBqMcx_bi0@XTjTGz7h@kn z;NYN7MzLFq#-FjVm^aS1x`LW4O|}gkdU_syN5#>_~pVC8P|EE+Tv8rKoIE!;;mlro7G}uH< zQ1J7U5bfzm3AQJXPZA<|&Ek`iOL56^)5(vSQ|_P=c0!>hYA~UaPwu>_W2s5HQ;C|7 zBcqX#27UB@UZm=wUfn=h@#cX|jl*3)!5^bi+^0k7bkf95AXIe`ZY+%c0$@x!Sm7jf zZPm$5z}y2*A2|(vFD)3;2j&@pm$5;E)bv6?Nu8c>>IAqVC=FMT&fA+_-WO^sm2qz$ z>Ttp-DlOwBki={QwF9LT8+##cX4For)}v(b_R@_}=@6r27)mhI9-b$KNT5njqJk2P zou^4CcqvNL*4WM7IHjf}DFu{)wa@NFA!bn7bA1T?lPq|bixN25vRYVd1QK7CZs zg%ZX2<69YfIldoqav`yAaPg=3Y}N4`KJHxHh&Ua!$(4q1B8C5oz}wf;s25hr*=zW~A)pRr9PwRbb4c`b85I;+~J zNZlT$i!UnrQdBjSDGMpKobkS<15pMQyPjsZOsAz#78_B+UaA)Rtm|Q=GR;s(()$dg zvk7t@1O?-fM>Qo8GcvjO;@umlBm&Y}85!N67m`sT0WPpYYge6=EUp!Cj%PzoGimN3 z%hphDOtOvpP(d8tyerb%~w#*JI~-aItjuzgCN_2X_N|R7U-IfsT$NsOHIE~yIya(vl0W!|RQ1J3 zwTP*a&G&%25E$8yQp;&{BXvc$AX>W7Hb_c`_!6^-E_*gxnzqg?gNceZvQZbRou4T; z)Tp&)s8eyYP~#}wBbHYCmUA65n_-};j;?QnP_Ja`pF0+rI@a24)H%@9Ys}WSLhGC; z>)a7A{lmIZDCV0C&Z+A3ai)>I6deLr|DR(JhI`>oSnBz+waP?#f5cB(<+|9a}_k1wl{*_Np~sebjb<- z{ddizKIf$}*QG1ht^arJ#J}4pv)knV)#iyN>%9niiqHSrJP8=+4VEK>$`OLh2$7rw ziUb1q@8(GNYf-F4G`e8gipeKyh@4iL6R|Ox_;=?7KhU={K-{1ma-r?NqC;Gi8{X0! zTGQ-5a_UbI9y-t*K8fyMDINMV(0|!^sA6FF>fjL7))3j9;fwRnG|s~yxe+Gw5te`v zwyY8M=8^ws^W?_=x_P3-K>y!+L0giEiV;tZZ2ROz7j&Xov9N-uSIK}~vae!kS;1~xu#sQ9TfMXos z7{>=V#^E*}86LaLvvzH^pvSiK!B z`-Ad3RG7MCF;D@@zZlIEp=y<&F`9ZmPD$p(+Ucsk{ZfjN6{;{w(_QUWBDZstRhqTB zeIfi66m>7fxE@}VA)1I^PJ0KvVjFGe3$l#^rQ&UqUC14lawHF>ZL{t($k^mT75nUB z^vLg&_Klr}EV|j%6i0K5-Aj z{fS4mgLPAuVOtK9p95|Q_1NUhdwr3qD}6F{N$#w6&Kfa@BvlA4lzAjOZQNQaHW+jE zDQp$-_ZfwW#`yeLQj|Ylh#>#!GtS;Bk6(^+kA3jdK|A1NE-q{vyMk07^eK#hZJ)y9 zRbsuT3s!D9Zno7oNG`4L_MMHDRfzZ};lK*#BXw_0&euW>%NrJL$**7RtBA%mY$GIH z)MVq2ro6Qj2*qzj@h5$a0i>0v;lLWT-?&0cVYvxYm<1Kl3DE zzGnm7Ti#1&CS-9cGUPKZ4m5=paLUy-4dX5ARS$OZyC1NitFfl6bMMBQcss&9<1P35 zr!Hwg>Q^f1E%`W&sBcLqu=M9>rvkt@~Jg`E6shXlG6D($mA)myky4!n~<@-4rj}q_aBi`NVa0` zlTr~EWQZ|tx=)RtQsz5kfG!qrFi;rx9?bKGe#hjV9jD1FNqh{xPczCf&evSPkQh(> z<^KI?!!{KI?W8O@eQqAL+?}#t0oC}Qcf{ce`lr`JB5kto-)3vpNn|uh`H~^n&(^;c ztebG*QS|WONP`NR2rd+U|Bs%x`txl@$Y zo9Z(u9tlOT+j|oqG}L@+;NNI%A6HOmIF*ZM$&fgUkK^G3-d`)SQOPS(YbV6e^&9Cr z_xKdEdWTIje&>*1vt>wI>o?Ha%chaH5yRL&Tj-8Nkh=OX+(dOx_WgXOt@q^G5M53C zy@Ct>64guW9En8tg6si-2QkL=#u+uK*F2G$u8(v>ikSk1Rpq07Vxh7Mz>9cJTYcFlMbf~^`TPDYNeOWgc93OYgQ!1T3U-bUL-=kMl8TC~O!JXL_m&mq>Z`wgo2R_oC}oskR(dOgZL0)Yl^p(p`HC zW*LfO;9T^bJfylTQbnd5R)G`}lVFyl(*(+lcqR&Po+)P~WK6<&YPp=OI5?Z^`=rf9Zj z@s$}{Jn^_B9O)oe?Hj{jsf99ieyAKLZBuKpfoT?GFlNp8oG?`9>eTFDM#B-)=(VBb ze`^ybaW;k1@vP2^X}8DLPxiy>KGil_m7UZMxk%Jx-8g^0F={xx6G6b#4s1Pu$+|AI zh$p7aZGCJM&GCyp@S47`_H8`-DpiMV8rIwfNxrF|EhaRK57>mTW_}~1J#OTqbAev> zpJUi@>_}^NjhvkQalIFpPJ%hxKYPmh){0rZFlcGP$%{0VlCX8X}wzxhksUlcqz zm)}q{eZ97RL=b4%REj$rQ{(rc#F(zi#QJ|L%Wm#jiQV%z1dX+pk91tV_@%FX<`q%q z;BddODKLPtMtZCJZKH)`S*tu92g39VtIBM{icud8{W(^oeV^!f!x8tzgR-T z_(JklKCPxc{xlh~_aek6%_q?i#FL_r0Ecj`y55y~Ll@%3g7Yru4JoqK%{2_;z=hpo z(-f7`7lVLw4}xirLta&Tnx};+*@bDOzn)KXJuwVLgF|0Ug$26@wkL!O8--^`y4s`# ze@LT$Bo(eq38IY*XYvZ+D+w1kh@fMOq!f!3&JQy%0)GyTAf_7uP>F!%s-Tut{}w_3 zJ2)tFHE=P_y4Of2FEw(wM6_-7R)}iwj&1O;ZSU+y3LNE^FA_|q+-!| z30r5Hu^>vS zm`gWfci2qn*Tk+!8<5+_;fv#Ydg3qAWB>TXUxx=R`ve7Zn=(*|ZKY}pqEz^pAP=H^ zO;<@_b!>LLUh&D3P&1#8lE#5FeTkJTiBGALpp?(WK`?TOxAT{vQUXbRkYxF3bx~Qxwrc=G78GHnief!*{2p@QN(=_>`h&R%tjM6>f z$wv0{Q6O*EHJ*6s5bj-gJwM!MR6aZ^Vk!+RaWk2*3a*b&&+bbjW67w#2@_C*^KnBl z(t^*Zq(Sxwr9Ox`ubqQ5Eays!Zy^FVhKSlj1lYZHxGB|rGhGCNs6=K~b!OU-iqqTd zQ#wvQbb(Sdrc+iSVMvf;KwV}DGCPwB@s&4wR3N(|Uqom+xzRolZJ(Zl%zAs0aG%PP z2W~c=ZhSzMdjt>v5CuCr5g|#(FW@+L?Q@Roa<4YToq*tvr|D1Od9)!fFVC3X-^=rR zllRs*kdm0el%C5DRk}ya%LvVz=f8E0T1?zQasDXh0egWXp1znRuGOc2PCZdZJx)PJ z>r)}81wT4877Faa44yv4vAtfg$bhJ#`JE~D4|od z$5Aod0cC0Ycca7`!(L)XU6Q$8+(#_&AtL9XWm)TGIWuLQCgtt+rQy($ZQtS&ufnS@ zDs%+%)Ys9P4hjDVn7tN^J9T(*sj&iQS#e=isoIbvEK_-9w$L`}IVC2LmL}lFte@5M zXczt9ON>?5WbJH1ssfW^IL<0=AslaGs+Lxx?`n{7nv$yFp4Imd)jy?TBPXgw8VzkO zImPosvZqR~B$S~{&@E_`bzV&vKls6qn#-4JUznCH3zk?~*2-_Vo?b2eAy}rpQ5&$v ztc$4C$JiM3m-eHRHEA;5j?`UFw0Z|Cf9_Z6d{$m-Qae;%6DI|+)TmF-s6!CyJp5|2 zR_nZHF+`JkLqD{;P+%Ye24}@t3*jO#SkqZ%I~oH|*}7;AoD~fJj2|B$Tc?VsSDwxT z3Dt(lHbnBVB$?W!(BPbAYvVWS%Q^672@MJL4Y`=wfAa9L2z)V(8Y`^&F``PWzna^x z22NhnE{m< z{FG&0mQA>`R=Kvpw6Rf0w$`#kV{0VTC`Vm@Gi`mE*Jvadd3x4*ZpuXJ&jCxf{hDq3 z;+ZN4ZPO`kbDyCvUu#p>X@j6tnC6&R<}%na+cm1%8N}MToS5#IrA|wCSdzDY7HkMT z;pETkIFd!s`ge$Gb_kZ1@oplXICW;#XY)67Dl)W+&lx_`Z2K;h^3<&B!mmppqf7m~ z>osTh|Hti;yE>F^WWG(k{-wR3xn5H6d2jGQ@89i`K!5s3&3_v!0iXBy{GBiPJ7pr= z7pB=4LfaSR)EB_n8|OqHJx92@+eeYx2i@$;(Ioms6LaT!vN(yz=)NS{{uJT}OV0c4oBGop4-hg3h)n}s(LFtysso&ZqjG~CW&^{TN?$Su zXPO2vn*-kqi3QR9MVmydQ$JjI2o*gv-_%p4NuN(U^s98}yVFpW=5Wm>VL^C!*J-#; zb7*B?7*G3oae#Ot{CUmk^9C*1PU$dh%;!C)Uiw=jjPn1t+a=fkPunG1O#lAC@O3gW zGU2};ng1o>OQG)=f}-w4GczhB3Z|T-UT+C#I_ZD+gp!|Q8%UP0UoQDIP>fd92U% z)gXs+o`q50Qm-u;DNs!kG$+=g#*nWI)U(v<(Bl}R8i#pe9cHrPT_^OGMt$jYjold9 zyuZF|7W;9Ln5BU&pKtWpTc7X8RxGpzU#8*G#8rOpgxnCa7{FC6_Qv1W$kxPHFZHL3 zJANI&*Q^ZZzJPJPYN%ZsE7ALpW?lg*0jLC^5`anoDgmejpb~&e04f2f1fUXtN&qSW zs05%AfJ**-x8(nz5}+ypsuG|o0jd(9Dgmkzpeg~X5}+ypsuG|o0jd(9Dgmkzpeg~X z5}+ypsAS_SP?Z2x2~d>)RS8g)096T4l>k))RS8g)096T4l>k) z{#gAUcK^3eL7c$Ep;ZX4jM1$ao@q92XL^>KcjJW=r}L8^^%%6J7=1t$rK&4~xD)St zO7kSiC!Q3*HK4{k85S;U#R!LGHjZ@eZv1_O^$h41_ntPT7o!hlwzbl4i zs7q@*C(IlY#cDD<%J_CRtB1Ftr!~Yz#+cF(0i?;NmdCAv;-4iasp^Vjy-N2-4EdTL zeSD=?CO-NwtgLiuAaP5$Y5rPPT^fh0eBHPU;@Z}XwfKYDK?{ykchbDuY(Vym5VrZ# zH~IdH+V5}2nm<%BA8j3fi_hu9b?Dg&N=<}s)Ot@tkEBoVpvzqNiT8nAuB$$8wNBw5 zrtUPIS7A6{S`X$mn0A4oc5;VG%^e5o(EbS?1 z_l-5zxiG83g>jNyR!8+Wegv9`p+k&Y}jMh9HH?H`RFgqbyRP(Fb? z5A%FzdYkj^L1BR+Bec?-WAEM7H@J3|e@Y{HF$q*TNY2a0pUFs#CwJ-7#uPZpF%Vf{ zst~W5uBF0CNk!Tp*WqDG_aiY-PFb}Z9yKo)JCGyZPhX0OpVOinKpDb-deU=spG>E#5lgvTIXtc2e~Ve|wS0 ztNI-MAS7xthnE%dMDw@ntGI9*j`3b`F0D$56xyFWH~XF~*8Tp7w7DrHPNhx-bx#hD z&Uy7Zg($ZCC_MV|w^O_6wwLUWQm=fmbaGJ(rp%~zZRWHouAEXeWE{)T$X^zUVN%zT z8S@^46<h)Y-b6uPCAbgi6HDY}dA-8gMwZlTYb^XKPY1SNr#JyLqF z*sHvOj=q!lq&d%Nue5YiE7at%ok%yI#>k|09BHelPX7a0y4tAu#D1aN!B1uJ46Rs; z$3?SF$S+^1Mi9znh5frr&b8`Yj5E8@7K8chXC(;L-^(yvP9*1eMkQ;Yrxl@or5ZgEE zrgdyIL+@2$bIX!e=Qw$Qktk8Hh8PwRuAA&2l{!C$nGB)pD>ZGL$t_K}rY9on z>%NycJl!w}r}CC-IS^=R>QyTi-1k&kTGOf!Wb|U}7iiO*jSiQYf2$?hU~o|W6wfif zA;HrqJXbF3H)F0JV%W4=#@|@r*rEg;j#|8{T6*I@McQGBGT9)33>X8d){j)IHIr!$|yi}$oGlggK zegJh;fwdLA?3;$O_YeK8HNSGaJ?5{0?}D`E^sntDckdolg@|R^%%>RWGNm#nz^XzFo`RpO`>Afl2+NNfP z)DsrLVmH$X6>#ZT0he|}yCz=W+sno(hSGym-p)``bEK3!tL*K(1Dlr3MDd|hrS~A> z4J+A1m&@I1H6ey~lO|KcTJv_tor=q1ZW9@+DmMpBQcN zS_+)f;R zOZTZ9D?OQeC_dDB;g+-~jok2ZCpdEbs-_57_jGLVPR{;RA}Y6D*(CM#MZ;nCjM>m9 zaK+s2%fpU^xgTsr4f?n5xfLSKcTICB|@aZ9^tdNMP<$MM#-YlWXS-}MF} zhw;A6edo+nui>cMu--Z> z&U1B;Ry`F(qwzthe6lg`vvZUH3iEeq|Z@9b<87O`0Yxs+OyAB< z#nm77U%%Mi$hi2ng4{y5X09y$*<7RW`m>^Fm-eD#l7rOCSxf<1oqR%r1I1Bev>+AFo>fh1hW!Cjs)c$*=D7AivAON4;T92&5P?sq1LvVc7`Ez-$4SD zz82sxIK`XP6)$Os@1xaFdWxWOaEJoG=QAH(_oGiL$00JS;oq4(=zRiSuKI{gg$dP! zTe12W`uO6xBY0FJ0`|NurXrm411~}R)r=y|*nHj{hw(z_B`EJZ5`sOYcukD#wb?=i zr@&;#AJusyr9Xs=Qi4kqeMv|?h$>si!(;I6C*c8-krm!PHwk(WyGX{V$m1^|FURRU zRJr{Kp?P*D?~vvxKHwN1XmwYZ1wX{-MWh!25_$Z-cR4tDD%@WRdhHkzq8gs43emXX zH!2y-a@l`p(i^7|G;0{tsTzI74%!kK-HD9e_YSOHi5^b3;N*^>RE_x!4w{6-P+CV% z_rx?M1h=jPNFC@~@&%7gIOd}5WBnxY>Ci~Nyz zJsIqZmElI+8A58Hk*XaSfs{^jm*#9bk#3QOy#b{fMkO2I zAyO3ScBC{!nzW6TwDd?+7DOe>&pzwtT3W_b=AZn`BBRXaldR|)*{jl7;%x6EL0Nm# zBAU}F-*HLZCzT^y!e)*YKiE z{_xDTk1HqX)%@92Cq=cO3c6xU6ScY|mi&aDFW8)k@Xj+dz zCdnHO?fX*fMs$6TF8V-K5|~i}Gw2N`ssF&b^+Sxt@cq>jpWKslsg;OrWCpv-lAT$nmCX&p`HP|{;k z(n8B+m?PXlo%rxXy^zI0>F#M^`;($m!OC;>e2M)EGDrK@c+)G00&(?# z>xjzN#2{LYIG&qTqR^`5CoHQ|F$ z8sJ|%wcpT~pT6a7>L`8LptfV^D@2_srfyyaW3pcJ&M|`Du1?FZ_Jc-+nMR43PF*gc z_S0d#F09_1!^gqY=$T)gbtBwOC`-o=m)*eZf;N;`TLbAot2wc;o2u~A!oR+ zr?psUt)(S?I1;bXSVZ2Af7yut=$Q2GQo}>j2)IVQtt@tX25Z00T-sd_X9PXMn^>Ek`W*gv#)g6fHA<|hBnz?ygqj|uwnFZGT z1W_xvpLbVURIlA$#H3}JgLzdbv7@0y|9@leJ%gf*+dWN;WJDzgvl7J!O%@YbP*F07 z4o74g>)ug8`H*NKUrP`<^|g_Ds!A&Cc%B?40v_c)tF> zK2=v;_w^fSI$zMVR&VD|bA3McVXK}iSBsRs{~@okc^OydObyzXXi*<%W??O5M7KDr zwwNz+7A>@BWVCqJbDr03RXN?7!E%J{r+|1hduZwhwZA9KJ54o_$ddqhD;sB z&R3?L`jAdTe5Y|kr|D#;`C+GpP?x1*m$hk^Eu_mH-{siQ?+sh%+>DOT<-f()K`t}CrVOgocp(m`bp@%CAN=^ z+8^iGXn&kPt`vP-WnLm;k^8044x10e}erOaNd4 z0F$XfsXv3a{|jL9U+b0}^<9rDumABAuSdY-ON&dhD}O`n?-_Eu#GDfT$NJpIEUh=w zkbkb>IF**T*95PAZKnq{-)w4NSpV6crTbu7#(!;TtXucNmqX`YVvWrYRs)0ntp7#u ze(?L#2)YD0MHLYY6kV{hfNnmtPY+{wDf%J&-It*EqlQ zoC`1N3i1LgSn>&UXq#q!!MjX^W8wIZ!ljaysqwR=EvF?UGn*XmFPD?e4VG0YGE0)~ zXeFmfhEE)qR;pW$CUIQHy-kYU*^krC*Ng>f{UVVZ>T$$rsQ=5dnM@k4ZhcrmuyLUR zwfg?sxI z*=gS!xI4m9-K(s}R`v0QZt?B@Xa0NZ`AS+YYyFmLE;65OhPJC*4DC|4hb??u2!nUB z0%UrbXi8i3K|v7Gr}G%srQNS#yym;9?-cM=IuM`boiEZL`kj#k6tiz{gk754_toKE zxtTQB1#jo1)thzG4quGwoKuL(yK|~(O<@HbV`C#vi2AkmM;bu;YU8Jr{Fm1w(E0=JRV>yIf zk>|8cxIQi}|>)gtyt?l_KruTq;jBfS=OeeyH2LVnx#vfBz*W+RVz+Xqjr zmBHwp2y-^C>rdXNcDRrpT9%sb;x6vTz=qe!Kk;N`lYr%J} z(yLu8=4Wl{2EH?rMg?zw?}}^|o8im4+Rc;lB=Tx|Cc7EA`r`gsWWkKZUxwXg2A!y& zprJ35=wTTp9!}4dgPDt7M3v*yX9B<6%U-EfQ$IOg8fy=^wxT1V@!(}#e99AJ5n-5m zgV;-(aumBLOjSwU{H{z+*v!InBeJ>eVA63RYw?imGNa*sOhC^Mj=URPCo0^r2j^ej zGhoiKgsx+=(AjrGz#uWp_2d@C?E8&lO&i4;GF?SBGH(3AF7EL@Lt#Jr@*V2CuiuRs zp&!gje?}<3bd67*wa&ZO$*&{cS@}V+!uD$Un68WXMnc<@{Qda?P1x`Cq%`YU<)>rM zz3a|r?nsI}6%p?*B(38OcgA_d+pITCNh$G2bUX9=QoVi`L%{gJx6BC)UF{D^Wp;F`5D=oLf zjC!va5a&NjLAN5^BCourIqFv!|BiC9F){a#Zx@l;K)q+rG+U5QtsF1E2F`wF>2o4+ zg7cRQ=-RU70BOYIslJi!`{kuDs|Rg;wiOjck|ZgG)UNTL<#_27J264c$zXls>_mE$ zgH!1Ec!zgXX~0UQD{JalSCvWGwY2AVke{ONYz4I2yxfE1Ugl-T6w+==Jxq40pJ|HA zxk8dEPgytJ=YCdjqIgdIv5i>*(m;J6wZ#3Ng!;U|yM~QyhYLPPQ+(!5<9cVj9#dZF z_#$t^TF$i*D$aCEhPP!eoF!=N$Cu4CVt&H4vVhBnX5VyV3$%^Ohyv(0Ea@&U&T+Us zMSOa@cw@p@`h!cpJBORu^XyU-*Uki(O9lg-Xx@GdA=TOb(!O~_m=hac?DiD zG>bnv$a&_1AgF8n$5b2w`7NhMwR<_m9rA|FQj|BD!dSD0=B1cj<5i(Z%dF8u1GLR= z@q&AoY|3MZw1i)dPMw-&F7_t=(#kXxvH!PA5J+pzV==kf*sIvS{FMFT*IgpGW-Y^` ze%?uX+)S-&DuVgX8;zyp!9dlKoHOjH4@F23*(HUHs{&_dg5?JaIIe~=5*H2a%7$$d z-~@@rSLPGr**>|_g+aoPO|xE)boxq{+cYld={b!RUXam`6&A7)vFkbR`r|~o*^nH~ zaAKLd9Z=BQcWDkpMadVYq&B$TZYND;$X_P1uEaexPZ42iTa$*$m zr6yH78FVQ`>1v3P?Kp$3O2PbmPNArKQ(jM!%;2@vgjhVFjV< zN8$hC9oqhB_yNqjoDt_#V}Ki};|_3nRJzX_M<2~)jH)(S6&xN43@d$5M2U~|d-KJ7 zNc`vKDl^7kXx(hP@yym*$VF#6HP^kq!mQtvKe(~SZRcHi?1=yn06 z`{{zXgI8?!3qBVE4VPXYwu73h2F^&XT4DB^%A4M^-P-taw``q(53Ew{;!pH^KjV|K z1NLEj?>7>3Xy+xv{mM&CySv-dRU|kzDcDye8R>JEh3p}~1g7)4 z9+M4Wwf7O-z2m?b+S=(Gu;Z092fd?y{pOB4Up`bA3zZm^;^(uKF?5xk50)DhRT72V zO;oL4K*BYSd5z29Pg45E4_6e+_DL1l5FlNjtK70p~zUYz)AED47Hbs^6(54 ztqSS&vE5*V#9T+OR0p68+<3DCowAK*;DO^<(7KxM-tp+F%djc#s9vztc9I|{JF;9f zdg-q7s(REG)_9mH>Lev_J1)AmJo<~M-wIPq#e5{aHe}l{X2Ra&yE+6^{V26MYV?uM zz59kIX3b}}RnoBGmqvrH+1_7|h|}kd^N^-Tow1JVR*Nqd4O`%Wg1X{N7(?Wk;_*xm zK{oN_Y6(mlaGk7p)!bJ%egCnEBU$TrMeKp9Z`f;xs1!I@+{k9^RN@nIgtDB@W3dO0 zwFr!16#H2vk%ffk$6*Ra=Un9wS)-U&8kj`GoAeya`HUoxZ-m$Rq#~vyOFoR7VG`&y z#+*Nat2OEMe4P4mtdrWg7*eSFf`XMV)+afjk_^FAVb?1$VSCt6O5)`^$q;OOl2}L% zIhpG!Ea^l_K3~X5Sy%0Xgv`G4Z`Vu45s|h?4SoQ7p=107wC#RhGgfHF01)ax}laV$2$q_&C9!a4$?kC8uV9cr*=J_Y*mhNjmxXgDV-x~BM9kKs4+3H#+lVM}s^K+x zV`=0~mIal&@>wE&(K3r!vUORraaoF*>FZ;eAY;@cfowrvNp%wPr&zjfo$pKe)Vqdh z3BI`F)C@hp6tAmk<6<_0$*I)P9CMaTw(*<{rkqy-A1DjT7RJfOh|~;?)JmhgnK5{z zMsA32f<86aQviqJOQ1WlV353d#wof1{J9wBtX%MwTvDzPHJ8mREF6gm+0D-!%XV|r zjT$cq5>J9_7Cgojd=ST^8^avV7et8T3t8Z-A@I(HJcyRmn8p)-{Plcvp7Am{EhC*N1drJ>rmz4p$V2^$_1R9giw(UYUoDQyO#tj z3S=s7;OKrEHs~2x1v{a_PnGA6fB2S{X_kC}BCe=@-&+P{{~;eLUtjcjzX%~-q@utB zQmB#>v{G2AoEfi-GcGV6sFGvUds?6WrLZawSv89+FbS!S%Bz0vRMjb8{gO~(N#M42 zg4$}md0|rRIZ^msKH}}~now}C9j#j9pz@7>RW^m&&%`JlTfL9uoExtWUaF>w^Mn&1 zFq0aDKPT#d=x9Q;WFb95)#^$R?fr=sTGieYCDAxy>XG7ss`N0aL*qy#63B-pXdMZ- z>E}8Rhq_4r0!h|Nc#YFdle=PCmC_14!UX+RiAojChV0>b@>0D?V#CSX4Lw?heRQ1a zETh$+R^w+A{Ys}>>nR|bCHIlD^If6o)r+PbaMQd5_o7qm@x^6v2g-7M2{EU z8bT=MIMyoc%yr&5`}kq%RW#Ri?Uqw-F-Dj+aeV8%c)BQC`_uBaeM0Ra;ie3PYZVp4 zFy5~GyIp@Q`H?o)6YX|YNXKc#+gAiKwEu_Ka3J0O-*k@j63AqCU{5#Q|F9b>M20SR zhnbRtA)Ih$GO~e;5bE}uBu7EWaBWJsGbL1#f*h}XbC_|09pdj5`dNfv;?3f04)J%2|!B#S_06L|GcyWa7zHU z1aM0Lw*+uY0Jj8iO8~b7a7zHU1aM0Lw*+uY0Jj8iO8~b7a7&JkasJIM0cZ(8O8{B| z&=P=_0JH?4B>*h}XbC_|09pdj5`dNfv;?3f04)J%$$uv;p;`P(x_clP(|K`Ia#=<@jPt4{UcEfC6UBGWagtn~)g685F;YmQBAXH~s#j=AsmP%v-L|6Q zH7av^ak3tZla$K5{&ba47Gce*{DCa>cyTjoRl!i+^DNC&&FaF>1j98OPKf6md|v@ zT-8d`CRO~PVedIj_mC>*`ae8IU3gYkwJ?;gM={MSpn(TP-SZ>qw2gtRVdsq+2?ccJ5K5|dbLd$+`uay7fz&EW zB}ZiLrvuBIH6st=ZwiirmYi)mtvq_OhL2snd2Rd?W@Ve~eg;CMCwb}?Z%;Vm%)CC{ zA*O=j0ww}>drUwnvY%9lli(aaLFK(kPl-U%H0tr*?pGtmCLeNEdg0I)u-hNsg&0_xo6bS_4I0b>7a7yYSE`dYXL z9(*a^CJOKWkO*QB;yE7rv}Jj-A9NCa>6rJ`R%RYMFXm6&r|Uge3TWLea7Nd+5WZVV>o?e@7wWbyRCwYxe-r# zF1+)D3*MmrgsCJ%ah{rg7=P&w$Y42fAFSUhRZ`}qbi!ogzDUy##0!~g+F552BJ$FO zu{I`?DZGvLp!LMq_db(jzpyY>knLH2)y1rf51G`iyT6apamEQpcB^kDu38fWX9eDX zZfTqwba*!;c;!5)@u~dX=#K~H`Bxk$k51o}!AM>fWEbmxrn+YJfGcO?0>9>+;y#Aj zo*XG3l9q}&dty$9wa|&5R0H{&m?}xErY&UT9SwK0co>6Cr$WO6)3i0>L4Z zWwCklTj1Elgmic@=}*j7n1bp=_GaoOrD^xag(kU|cr8CC+Ird;(}It zCnD~U^oLyEzjY+8%J^h-a7(@N9J@1|JA(hVBIU#SbNbL*udY6ERd1g4&H;x(W6#zq z`Djo@*W9^o`L(Ma6Z-avXrJ7J>-H4BhG{ncg|_{htHB;dZ>XBGO`q6*4a?#!!jL*G z5sB>KdZ)kt^^?sNuzHXDhWaXe(NL^1`F*!z(OWhJ*>1UjQk@gaRvRq*mQQ%*BPVdy zr?iYZIMdb`=NvB(*3U9KawkvYNi^V|)w#!&z$A`vS z%5R*EOS`AzIS)DDF-XQzk`BA1V9XkJi`XW>@Z-)=GIeH6N>~Nq!4D)`k3-zKx}+96yE1X;4Xe)0s<8 z_`wI$v&wse=eNr<{ys|2BkVQ!DsR1~n-ufA{WW?%S-tjN_wbF#-`#+}$`x(V&d%L+ zhuLR1X18<(L)xcS<8>Qa9yo4c>YIPr`2_t@3(DSbaZP%+Ap)*>8yqX*#r_`bTIJ!e z<9+|S_j!2m@p)%9^To~8&@eQLF`Qo(#%%}{Ht?R_3cUh` zI;w@;y$^L~itz6U(%uce2nW+`_(CCug72B&QMGVpVu&F*d@&b>oQpuK$wx9FLTX_R z*AdC1Ax>cUSteDSkKdxm&6W|P(LDPSEK=OiU4s$TU4bn4j8r=rRK@4R1wz&HN!Hk# z)Xv-eRuk-z@yG9=mUeuY~3d3MXXEaxk)t~Xllix%nenTe&VnO^p#BMc0Kg6t!&X~fKXnU9|Gj35V`ZI8b|Mj&V7K3AIDafpb{kAL70 zFRcMR%!}(|N@NjBNPUu^a`%>60sNt1oWer4bIyAaR}J;vFTh-Q9K6NOhA*InD2ZAmYe+#76zdjD z334w;cxIH;W`&8~!#EVYb6UWHnZsfcDmeAz$Cx1U)(VV-3{5z`WT3*JA7aI9T{?L>0Q)L6n3YC@P#wy_cXAt~{xeB!G*TrV?zoGJAMOO8W6et?p! zN=-f3$+l+EFk-<&f!jOqtoqA$~e+`^qgq)~)pit|<%VVNt zXtordC|E_QtMQ?gbK>k*4eBtMvZMBj)RVeS^$Kc4-L-`BB8dw2iSmBY`pZx1t0(G+ zg!+65lNJ+(hKYLSSG7yyQA}c4w3pmVS(*Ez4X=JT?2%&z>4My!CSnHs8%J5|y6cK| zD2>BE8r207`NW!jKCR`|Oq#E^wUj8-7id~RabZjnINxJ8SgmIdVk3N$_Y|5|4;nc_ zn*aK9ZTTmjf7o)$l#8(^^d}C_isxcq#{Wj8o;|9RNR~2RCXBncZq_$b$HRh*Z(eY2 z*-S~DGiiGg+js_@Auh=!Y1+E9*Y@~q`&V4seSEuoL%ZT+yYgYXicrTR#f~SY9Y@6y zb$o|rLx=Wcht6Tg^Z%P}iEqfWqbA8emT|PZtRP*EN8>oo{}{)yhj6}I?m8OBd5`b3 zJle-O+REwac3JLTb}H)jU?bZ#box4T9C3agpK0Ad{i>&91T-PL#X+9YGDJl2v5~BrFwj#Rw&Y{Olc*Oon^~UYZ_<`leD5k zD#`R=(?6GSj<#|-pHLztsnKXk1{*cBrzc*rx7)NcNt+X0)HAN#OJnQBE%&CPyD2@r z6Ks9y%RK|meOX0)z0Q=Gp1vWr{?BX-W7>V&lKoR`UHc9Fhm-yE!+r+gkH?iho;3S- zI^ZKy>PMEwk8D#PIsSa)6dw3@-I9OPM*eGyH~(jn1OOpG!1e!Cz!d-?00;p<2mnF= z5CVV@0E7S_1OOob2mwF{073u|0)UYJ-+_?-#{CQcLI4l~fDph40gMp92my=`zz6}1 z5Wollj1a&G0gMp92my=`zzF$|WrP4A1PF=z&kBhEMhIYp07eL4gaAeeV1xih2w;Q& zMhIYp07eL4gaAeeV1xih2+#=0w}73AlfB|1cwsaRakfG>1I68S+7e!o1HTNtZH~2y z5cR9Q8l{Bcn?>BiT(d+yzT!KJ(zr{qMn8MBmmT%urO`DFy>;yM7?Tpi9E|k-?)9X% zEMwPU$4uo0lf^SBKO@bX_N?$WX`*&1juD=7X_ooqb337@mA{Z#TU}pi{d}yB@#_&?~L-@(znu|dK z`@~D3H{<{#1Xzs$R%3wG7+^I9Sd9TzV}R8dU^NCU_KX^&jsdlf%)A3H1oLt2mwF{ z073u|0)P+zga9A}03iSf0YC@VKqCZbgaC~Ypb-Kz zLV!jH&U_KX^&jsdlf%#luJ{OqJ1?F>s`CMQ= z7nsil=5vAhTwp#Ih@}Ft)c<9%)JCtkeEP*|j5PFgA zEt`hD%K6;qAd!ZzEJj#i-a*y~`h|qIoDNu}ud}y7YHYk4;QUtMrjOUIaD8VAJppQb zy@mvxG~2<{Hm?5BfzVEvY-rnE8-uT*?_EpV2S+@W9FK%pSepv@)F?=~_j_$Tx+-8) z(^Xvk8|k)bzBezcHvgL~s;eHmwFy>L=826A>bbI9BdYp?awm44V0FD7Tz|JKBKC!+ zF}F02hQ>4nX6`wCiCyf*tC9-8G&Tm&q20O{n4*NUhgb<#qq0|vg9snA`2{<bE|wQToa9GFuuf?p-!6! zi$hA!KGSll)VrR`mfI4ya9+z@Z<1>Zbp2C-n9I=67bfof5#Pl_d-;w@q0bWO#EL+v-s3-c_1wnat$Z1B*k9}aPfJQH@aO%Y#i+= z_UxqTuiFmS`Dy-A^HHc+QC)3hh`8n1jGO*+*QS9}qBNwRF!5tu#)9thDp;h!P*Ih) z;pb}>=-FJ0LvxnK!#|nRS0rz+Fv>QurMc#0X97R{Sz|>gCvPoC7J5t5SFE6RqNquOcmbenWHI)^tt1-MJbHstc9*$U#m{d zCc4+rOiLk@M$dSHS8{%&W&$E~{;Cp8`LT>q=z-mLj|+KncCN%=a?KU@BtyvhtlHT0 z)(x}d{;6Lzk^E$aJf9X;nN_|o3fcB_+d3D?Ux6MwAAX+pXmD|wc~>g<{&xeY51) z>odFX`}`Q*SeBR6=1}5^6!iJoJt0H3N%P39|22O?egEUVsP`fMQ(v_m){`Om4A3fQtz zQJg-tZ&EonP`z`p`|T>HtJa+z&&Gi8kX5O2`RBtGXSVYZx>LAx{NC5Q^vu|c_%R>c z9-&WWGnD?L{n?1H?C=-*d_i%*@72NsKPkoC#J?-Ub{EHf^78C=7t+6kJ)oz0)60t^ z|629_-F;~gu&n0a{M$DLQqXRJQj;rni@wz*p3-zch>x-3@&O51;&`%gz{LJ|AYQ9u{mLo;~ENcODi3 zhtch8-*fDGK$xJ4vSCnr=*P!!X?s`<9De3rs9nAl%RrdlH3SSBj;r;y0-L-ABQp7r zY}N1&J9dqB-hqa&EVz3D7#YEb5V8p=9*wxV9dWGE@6&M5$dv%tXXrL4ctj+yNCe&g z2#q-v(ybnxnuwktqI>vM>hoN-<^*?qB70$;dh?MFxBSL;0|wM1X=+kGx^;=a0}nxg zt7HW8Kot43XD6e!`e(zXTBifJ{jYh@8dJex`fGtF)Z3JCwk4m{}0^xuc7m4 zhv~y-q$%+#@nH`9 z=ll?;AiigJ#1!545@qz0+Vn6c2stPFw>JioT*X{f#IQL`QJ(fm=iVkiafmOj3V&g6 zE-D!rxF;X$pcYyH)wRQVhhZ`K5q`23X_REJQQ|R#%6qxw3sxz@_u@UXQYuB=>?yAD zd$?#{WY(B&buES|3uoVsE5xE?9h6%OP__$kAsQ()MvfL)_%XU~(vU-f2P}~-A~Z-2 zPxi(AK-}uy!;qLm0^0EzVxfb~sl!*(-gX7(_@=iR#Oddz9xz8TCr9qdrq42=A0W~L zc%t4SVt$aqQs?~`>SB)Xe<&DE%*7)13&w#o$SHP z>|Sv8U|W`YN;X|ATTfoOwxrprRp=(g!*B_9yLvZri=v}80D5DkQSOTmgC9t zh6%R&srKSN)+xDfQbJ!9TDHSB`GO+@zV}62s9%er`voPGKE`KpOBXJamqh`JxFI3C@5FnnC zip+=W5u%I>v*y!g#k6551W6d72pQHkj-TPr_ZKJRQwik7yx+`4o-74*jztx%0fh2rDIi7dqzb_wmsgz?3K$&`#~YQ_y@@h^Eo4-2w|zi>j+Hb}fQ<54>5 zoV_;n=4-#`bNd<60y!z%*)xNshT>Uw786er1etJ>XC|_bv6it+lwIC09X(gRdavxb zLU|`2&s1&TAfKIpQ@O=cp3DAGFJD#MV5PqjMWLJW1g~^d+@w9ZrBKnvQ>nl8@V-f< zQx$B2Xm>!I9k0<)C=S!|dDBWnE)nlC)>`-zvz&-d ze%xt-29LE!nM<|vj)XFkml1+??+>bq{7E>4S}1|!Dn_b8)w=uFZ|>K{)Ymll6G5n` z6%hmSXr(evg>v9efmPl^mG{$G?FJ+&X%kfvPK_f=24nS=vIj<=XqD3kjn9A7uYS*f z*GTG@D=(Ww|I*@KGs#&|Xx4kt%u9(ng=!wEE?Sl|qDye+)Ym#MX1-8pdHkY<*_89k zcm~U1bDfsAZ_0dOm+tzcGH7}$WTRcSP?HJjFT~jjBFqy&}8%>IqHy%5~9RSk{Mr6;vp2Q zGbIp0PHCVdm{Kw%DOqfkbTlQWha9|2IbBY{n{t*w7z*%|;$>=O5t(>Mh4fI%oN0NI z)MjmJt24EljoMyB^~Y-manX7vd-@K0J__~rp}VP*s)LZ;QGD;XVy};BuVGd1SE0V| zLcO1sd%5rT&ExwPi)d45Es`XyTbtJC+|!As{zlVwdiwl&XeZCoRuB94*!s8FdQRNz zNnP$c#{Titvz`s-e%8pIGdKI|(I3x7_H!5aGkoo5ZXDpf`7!)(;F9p*6{W#zW`j2Z z21Qe^4~jPqN=^+*{TaM1JakuS=)T#IOu&$A>X3ZnkmA&k@}D7{vz!c<_f9gLVPIg8 zJo*?Q$0UzIEzSlZuAt+@f!W<3n@hk+O z1pp`jKmh;>08jvc@;?YrfH*4v$6{gwAHg-0Yfqis%%I@;<|!r z7xK}ktj5U{X&1i%SZ==`$91}pp5@NVu@Xw$`Rihv`n0jox|;ah$YT3F4P*DNyEW5A z>~4t@;~L*zc(&y@_Xj#oex+}q@`cCTe~eGgj_Y5W4rj4cupL{R#>8K$p71_Po8GPf zHGFK8>crnQhbN9W&M6hU>Is%@)$KIzd@kMljx*m7&uL;}UEBLf`LY~AZDu%q8}e4- z%b?V$Rz|(sA;Lm0IVy*V$Kdb6L?Dwag0fkJm7_-qpNe?_SouUa5lf*{N}F7NbxRwX5>*lE<^*h@0DJZx{*30 zGo<|Gb+7dWhV<3LpIwgLeIUZdnJL9#MG?P&y{*cuKjQQ1=g0e!w>_S()X(UmQV?;r zU!R~W7ak;SebTwUWvs`(baGJO6USRGJc)JQ_#mPorvz6T;4kE&r?dA^A4O%tH*zn=_d_JaI9O{)y|(^_4(8qu(>c@zd#6-?|#;| zl|6BDc6YFD{Oxp&kJeNhiRYj{R%Z*BBF<#6py`r*w_%GIR5f~y-%e}*qU zI1II+?`8enBF{Ne%Y7s4-rcM5(zEkn-t`vZes5t1$p(3+^7{GY1-Hxv<6*(!cD~U* z!Ld6*t()!;A78f5x+lpY0;9n<$R2NbLp*%IS7k#^&3JQ@gFWp+#NjFz`Fy0*eL?o2 zx4~DQB>5%I`93rZR>^W#mG!%9=ogg)4ZRnJ*b0?43}?0fhf%`M2vxiaIGK@N#`78uA<*W+oEx6dqwE3e)k3kj1(|LB4+XVLtN_BJsX9yWzU?K796I z?a^?$4qvECt!S`1^!+GIS}oK78!-ukJ2ORi?mmwc4OQWTtB;0sb|OxFhC1y+)8J6W zN(5>i{z?|XTMIptAAzw)x_J2Y5Q9db{uxh^TfD)e5kXaIVYQ++>qLdMM^Vd3kanhb zt+L@XK9!CUze{lRP9C~{G~~WdB+DkGOEswJZBTx0PEFQ$g?Nb z_J>tLryLx2;W0DwppZPy($Q$e-56uOShP&+Xr`C0*O7IiqMaX?4M*H#@+-5Z8@~~O zBjIraOvqOe@w2sYXIpoQNJ4uY2PL6mH=dIb#SBW2FNn>Y zN6KO2fAAqq7L0T#0dFYb&*hYFi}_{Vi%%bo&=OO8XPCJA=qzC-9?7S}xo3LgElkZf z@iaM+FoZE5i9dff>82b8-tMW#e-4ZYkLG(OM#1QJ+Zu{s&s|Q|l}jqN#;QZlArOhh zwMoWfNzo*`*rPW!QbHY)v3f~up675BnD1Uv^{JFOKAdNJy#3Xr`x=;VS&QMTh>`*< zKSHHKEU?NKmpuxqO~!wL&<)+X$DJjC)JxN_cuBzMqmjuovfj zAK!*ZeddssSdhBCo%$|MMBVotp*9l4jJpsYLmW+9bHFjyMiaXu)qmhOG@=>jlle5# z#|#r!#@w0eVwubRjv-$&$baaujX#Hstlmk}%Stz;q+g;WcHOzv$)wMnX^2 zK}lVd%QZu0vTNp!zCu`tKetRloS(y?m{U!5W9{X$=w9-90o1f0P5Hp_WCZdhG$n5{ zA&u&rTqu{%XPgkjg0N1>aj#3UODRAb6?`c4$gIna7eIj>3me1=T>Y*TkL4#hI%25# zj++IA#xKWw3rmp6#m3kifjo#nzNtWZ8nrOB4*#x@FtK1%X`E}ALTIcjEMO`6K9<|f zlF%bx_*JZkMYBj>rkE;_J1kJ-0?V&jEc!|*m~~9*sw-)&%AemyQjpNV?d-{OIl_gB z9L5>X3I(^tZ|yEh-ATzlGhTXYF=}SL^dzmcy}RtRe;Hj}iseA^gjP9yA;|n#)Pg}| ziA?z!oRM`#IRh3gELe7N$?5VE>KLE>%UOE42TJyi}|!$YUpHP-#efy;Sw6 zzRC|(Xd*#WQvkn2Sx==@yPDJ*C?Ma{91utUL#@0A2enZ+VsA<%yuKFcPeRi&V+2d| zo$4Tqqy*MF45|j}&-qNN7H3j7=vPaSsLNQY%hJlK@~<0Mtk;s|xiS$TzVuMazfzm4 zQb?h)p{C)YX9Jn`h^i1EXi~{R=Wi61Xy~MsOA-XHoNOFrRVh4>5-Np){Ys&R* zdL7%e>)5m`$oOSw*+^&Q?4T)W=Fv!r9Nkh+WZG+^>-rml4#2bG}oR4>3|i> z?CgMNZDDOycoIM7 zfWHahx~iR@yoC9Dw_OO*dO^ExxS;*%oo04Z6P4vQX}{DbrX5c%cSztnG$pyTAuSw- z9j{C~^&y={?ul_jr|IPX69WbRPvd0mp9V_MayQhJ9A-)mfso;fWX5tbVv-!yL-w5P zjuE09IVnkKau$7 z#2yO4nL=WtzCThQffRu+wulLOaNj65R?C%iHYgalFo}x`4Xb|(my*UKZqr@eYPdX8`914;`JxW zs*BscNsta5RgDL^O+yoP-a2`VHX8Svp{wm*`)}(psLII4|8VXm8@_=1Rap#IEj+!r z_`EH#raI#({p;S(Fx z{`%(;U-UUCH%Q`L9E%TIdv*9N*E9QNEjN7H+PQy&lU`cZXtH-Qe7@~i$!ZFB(COU% z93S+Sk|0pJ)phx_yL;)x3_Rd`*X(O|`)6!-go1uovHiT`8E|OL&$##UxOa)3rJY4% z-)_?$wTLb$>|a?nwp95MaWkOz@JDo!Zf|h0;PvxNb8}=;kCSkD%u2YO%u;eXM8D`n zy2QAnnc={@;sqoMaSPN;=(kw;hL6VAX#0;3{$n$TrO`ZA!?~_o&o3WedZ{Zgk~dv-%#(fj;H-aPsT4;6O+e^7hp+Xy-Zf}x(TtET z&Qmvh{qZ{OJFoxP#1)r$;)9~Ei!7TtUoX6STpKVbC6PQipmPUP5U_GFy1#QJhpC?5 zVbyVHV)7%3Sba>&EeJRAl}OnpZcWMDfRUzuDW6R&@Un1MIQVulI#-rgYB9ozG&$I} z+e|OG|NGdh!?CNkWIK!|sF7NvnF$YB@@uK}(0c{5BHduJkB&#$8NBA8sT@?e!cA%0 zWPYVnE_En!4Gs!OmP!Y8UVFKzBrm)mDq=?Y?e#nPZ^N7gY+F6NZw(vNuw?&beAo@M z?PHgk@#mAwfYP)JD!Sgq=|RKd&-^9Z-{ z+BZ60b;N^=PF1fDsNVMO>FV`XBbmAQEZ>eO<&dK@@Sc#X`$GiIkGVdL2QP1peg2!f zRZ&`!gPB5t>P{c?qG@v@QC$Ot(ptt|TD9}BVcpw`viH3I!s zz^GpOL46(FFkaYi4#czn71UJN8ZG(zmcV8asM$7|U8ws(jcTy9S}R=kLq% z`AhOa<@3WLBV6}t{1oqnv8abBx`!#jp$2>*r5mA7MMIeHgwCsl8`_5zoc1@G4>87u z!Owf`@P@qrd+YJRj&3Y=Z{ ze~$@hC=V!6x8>>buijPO{pr|a5IDaB*)%}qB%wx+qXKWBUM8SB{tx!<`>CmbUl%>t zD5BE4U8G|{I*667C?HZ50qI3LgkF=7&>@Y`A(YSwB=jPXMn~z0h|;m4bmQTD_q;P_ z_Uzf`>~rtjnS1tH|HArVt@+IJJYOdWFBnEgg*1~~r^iCt1H(E4@2nx;tQCiWiW6o7 z<8SUntO>+?{S?+bd}odvKW7#)tsFW@a)cfaZ*Ve4nI(3_n8YIzJGMd*y$NBL6W5e| zFGIqAO~Ag{CN@PTenSNxOeB6FCS#u^k4gmnU5;g)*PMOupypQ6#E75a@06~~mU!{h z@7rKWC+O-4heyjd;E*`Em4qA$11_VR!ulW;<&<{9IrTa^qJ>YNeF@CYn)-Oc{suIS zr!jTsQ(UT`mO47sUn?DfOA8cCYY?=)>71dZ5@5M#&mY8@F8HR1^~&bYv`p6c5T4X7 zyVxhx*VfLQ_=5C1P!%CI+pC?iIEnb|XoP2pnS?m(Du5;p zL!jwylF1y*D6z(L18|N0*i^M)=#D~mTX(8&dXy;cUiL{ zRWb{mu)jX1y@H|w7&>WvXhhpCYJ@F(9tv#=%4nR_Ey}>61WbmPQOqiErWItTWX?}W z!hNXmm>vAOSh|UBy2?_vF;AA9R^rxV&JHwdn;LZBobjwNSj8zDB%ZshmD@I+y@Sf( zZ%W!|%sm|+<0_Q5>72m}N*0PYrI_arQbZ{b*~{#5tU!75)!yOY) zqN0?ntOZRTEFeWI7O z9F+ceFHgQP%M6ostrY7tg*g5riN$quc29>gwDalKj!2Vk*tLsd(N5^MzUxI2mgJ!lprsvFxSkQ{IP{ zbcB`4vdc;hCrVRR(|MLlhNDX}*?pn$hw~+nd5IFi<7Hr4dP-o~o2g0B9}wB>Z)p$Ur*(hOK#m#<(@?$L+aY`%)%r4@objC zws&Du;^D4~cYmu^cWCjSR)cX$-{aA*Avn|sovbN)mas{z5zVZ$^QxgaJv;xPRxFd@ zY|jioy7PqcrGhY3UL#drzgP5vxeg{#*Z8nb*|pBiqB3@;c1*BNf2$7ERG}bUp+YZu z*;!}0R5yEq@Iabi*j(nW%x@GNXo8P7#b-sX63kr7p9T{&G6~O`33Ga7wrdTJWjK@J zdOix+Rix5DgkaxHY$)UN)sOZ++2A%!u(KqIit~qy#6`jguSAGS!Sx|0i4ABzsD8L- zAhBDIlsaAV+7$zVH5lU?qF_XK%L-4|rbJi5CYWGjW{{v?JOFC4z=Kci*IaTnX|QCH znXY~ErG|)ixEP#pIk>vzq-mRU3m2@VQ~F`EWs8Ati=;?+dvk5~TFZ4tQIi6#3h~c# zIhUJSXVi$hKU)_B+l=R1YgyYCMfmQoS$|T=U8A>|OBbC$XZ+B&-OMchrk1x&cZwCx zPnv9JG&g#yapp;O=nl6b*|=EX9ol&vX)w-H>m3i7J3p3i@)&g9f7N+hhBF*QTM_j(roN1!__r#@&DGR#w+(m| zthx@=x^)g0Oj^1PX1X6AbUzX8F;egO-`z3!w>vr4|8YsjM~3W={l_sKzr$lXA!G*2 z4|3??F&z$ylPLLc%H;644y=!yP)>%*P?FrpE^x|;r<6D=PE-g}n)>0O2{p@roQI`4 zxKS}2w3I$d={f~}cvYvIQei-SeYjdepf-fiNmzPQ3!Nm>OPJAW5$*fOj>!!D)dAhi zq>t9p*VjUCgZJ^h>l;z;e`i1=!}SaLs5R@HtJFTqo#GWfV3?9y#^5og*$TNGF&SQ$*rtfD&Axt-ChJW^Ja>b$pL&dYjO zotpd}n4rAN45g-koOI!Syr^z%AvI0HxXg-LTSP}*x1(Wo>u~*<%081gqj0=+D~`m*k*I2hS zn0p^~?oktAWwgW?|DwOCeyx$&mYxmtYobh?n81m;#X!I2bOP?(zO8Hn;3I&K{QuoY ztUC8hUu!(9aPz|-j43>qALA|m4F6)188u$N`X2Ok75@;=Zg$i37x=NHn`La>b8ksg zM7X=#KMFW{{(UvBwVxj-I6Uf)&aRo$$ws#bSoIh7K_WFBpSB2dqF?X3i>M6u@JqQV+#%PlS!ys7k(Ozd zZWmXdn%yS0-070DBxXKex`b@G5}O_POzp!j^KVUtRJq_&YaiyW3bf{7z6CG~zuasS zXn#C>t(!Fc@*9KLahd0P^b*^PFTLEIF&PO_?*6ygc}Vu$aaG{&(5#7NSyeExffUUDXW#g3w}hR@6*dyH`9e z`$6!5?WkhV5KAbEDcbE7L`JIjDbDkqmWA6Vqo9_HVN!8fvx-hHEvMW?6w^Z8th}dX zr|EItb?1Msi$@3dcJn*kFVL{z&YUj)>QG58xBe7IP@7!6t=OJYxZskpJKK3Kp#B+l zHcqYOV`b5|;^r*RK+AAzpe&&tTF6!Es!jJf77n&FN4*EGy?qebTvx`GCJgkERkTRySnH1@l`s7{^Z zm@q5eMg_Zycjx8zvulMO?OC>wLFAzc07>q%&*k^?1dD)k^K=BFq@^bncYehSR$8AEmZ| z7IrRvpW$!pFR?5K1}lu!C&81yXjfZvUY#G!EV}&(zvN$KecokCfAHPI?LRB-o@)cs zem^VD*JCoSg@jg-c0d1|xA8lJ9lHPbTdijOR2Ac|%*y7qFS$z^n|X$7kA41{eK;?@ z7NE(P%+}m`p!9d&>r~$gPxhah7h#O>w*g3&+p~Yb0b$!uytci3v_sVweB8$aPe`~W zEBQH&N0z)< zTMiR(P9#p32^}{xurI{_zN0tCa@=(Y_?S*KBMcJjToRix4vs}ZVEKWz%Ft-a(@lpM zNpOsc88louw&5ZaD*=v^h?jvtlANNi3SMUqjI}GdkvkC?vkcAJ@yAKP;!D7AQrsE8 zpbn+*1RUu8!_fKhu>6MbZ{VP|K-pfh`Nt)ZF(iCIAZ`c}*1>A7qzvy}4jUCr@FFF= zg9LX5hQAjNo7|E6$r4ULh1NHOPAn+}m2j>sC;FU7VlfFfd+)I11lkRJ{bM<1O(LnC zoVbbN{1Iq2UUF>R2oKiJz6xllUWsnhxNcIBy9zZ>e$wi@ID~o9 zPzjoHx6$(`l(RxPsy@)p7w4JP5L2)de$PDpfpdnYScZ~a+KPXSrpj%@-Ng2;jI+8K z$xa9+p){@C49S3WB?v-35c;R#wXRCWD#ZcJXC>PgdSyxl(JW~4o`PTqrq1hTCr!eI%oB9PROzf{Ou|`ayXej(l(lY-Wn(%^ z%AJ!g$r{ky!m-@vr5Qym$amuTpO!UmqI1X6@}7Ljn`g@(k;rz@&OPmtx=6`mN9QZ9 zCN$kG_}Eo2k)P5|%2WjvNUF%)E`v)875=$ZC}B~k;gY*>q)-!6Xka0tEhYPWD%2#t z@SdXjP|d|9I`K zpe%4qajRqrV`I07--UBV*U+22c)1blYH@v?ni*S`EhteM7M~u+ULdPlin?5g#+29~ zV-ZpY;qf?eZ%mCu-g#OnJRXYLD_MC~7AmY!vI-%tlvZQVrFsYhYT2G7-mM8uQZ0r= zXV&eN#x<5i=#}QP!w@C7?$vZZ;qta7pAL%*Dki={uXw1b;uRrn7*zf!paQB}RwZ0{ zTDfAv1skJUhNcz21C`QT%H}ZH%j~5a!Uk|e(ae#eule~_7J1J=NjfWX2g23nYQn;Fpfo-PnI^cS8g(@zU@_)!J%#ofEzpRPwB|PPZgpQ@^rFkMLNH z@C1f6k0fM5qJ>!rU*gNZV(=wG{3iIwU^5f5X~NT!W#(#?wm<4Ecbhk5Q|Fx{^|w%j5U? z;B;{G$u}O;Le~ zRl|s}`i-R`1Pj;7bNY4E=ZQ*dRVw-}_QSO;KWZtNEg20h-LUYB`z=F^V5bq+x>m5~ z)Y@I;;8vyw{A>3McpGK3Gp~KNOkLFHTR2(trMb;$xb65_DuKD(c(~D8E#JerJ$S2< z*CO{|-+=*3zareBt<_AFPCV|`p&ZwdN8=<=J5Iry+NCfllAQ*T?N3TMx!|1-^E$&_ zInSO8(&sD#UB432!HdmQQqGYM;l1kCBv6K!;(p81(llAt@gDkC>tg%0miF6L zUCaCJ@~Yhrn7jAZEDl>X4-Go*&2;}4`ZWi=Z$!!7>i_81_=k`K;r~1mJVZV$(=bB& z$Pwz4D0ND>6(vrT!jeJ(w@~2a6z>*t;sFJMrDV8KkOq{rJ_?$H;wwWv@q?0V#hD+% zlr=-ilc5!_lkw`bHypIWa$2SvweFvHf=dmk#C59YVco`r*70xs8mqppzTUPOt=_|a z&EcKkkUm#zpV_azcUJvlR(%wiem>v+nVJ3%>$G9GeuW#Y8BVJyr#JRdzx2`8I0ig8 z=*OPY7Ssnf3_!Tmo za0$RA0GIr8!1Z5T0<>>{_6^X!0n#M^mjGM>a0$RA0G9w<0&oeyB>o(j~ZSngktN)tdm909^9_m`f7Q)|?Y}+slM_t;;xRHQyR= zjU^OiEI9GWS-eP?8T>?>dF*%QO<4H*lb_B!_xmD~(Zz z0cHqQ;rqru#CBPiK)$9}@g_%9!Fm*V2^Q~_zB0WY_c*xY%2nCA=`9nE`&Xu>vv1T| z8+h0y-J0w!s>Phy8}iT=nsQHTXe#aB@Ihu$Z!19pCP76rO$nv~WApGhz zj!62^U%0M%Fn?OJNO|tmnhkr)$CY!WI6iCFr~)<0y(kiearyKu=dgppQ_M>3d@tPM z?(34@>nS(<4*jW?aIl!>mqq=S^&x(9{gXn@F4^X>Ec)8PTlGQzw_bAI&;aA*Qw|WC z^GWZ7=hk))wgul+o%?lT8&NREAP&A2`HHw4I^%TBZ0yIw^#<3UbvECMiRW+nX@S&N zZjqbqxt6zr#;5DwBh-4ti~=-1XlytJsQelWt824tof}{@f9!d@6Nt=mEc@U&;FTpB z@?#30a(@Rd!kXqcW0H2$&l)+6 zYM*PZ#-75Xw?0wYiCK(raVv#eJsLej%=O7>@f(pE<6Db-P74$sv6e;4& zjt|#z01qkZxN($3Nfa0vrKA&eq9mI4Xb30C+mhw=D#A}oDe4v^`XVag1xw)lohW

OpMg${fSEUscF-Sz7!z{rNu8Hk%Z`E)kvfz|e}1{y30%KJjCB_D zelFzyBQBvj*W7HHblnX$A#KD z1T)IT@S2%CTmPsPNw<&g}xv6@BN-a%z|$BYxTr_Gd@BugK3r5bCuQ%t1+e9(U(DTg=@_ zNX3qSlf%oJ&z>Mbi11{{qm?uzYTA7$%-A`scEUqr!e^`?{U$YCW7p4+4e@ft;u#e_ z1-bS_BD(WIngsE6$W=rkDfX~{?5h}*BAs+ z;et*=A3{~apy^k*Py}Vv@VnGFbMV6@N0<;-CKOh=qYwhQB5@J@OefC32<7jK(kyii zl2i|#%m|%~d;gld5DG=2pa?Vu1x*W}+VYJnRhh?Ytym=QzHk#l%CM#*(Md+SO4nAf zHzcu_UPtCjs*;6ZuIS7^jAJlIwi|;`#ZD+h9({P^CjE0Gbea0(&jV!hO3;vG`ZwKl zmmr;`AUj|F3|n2d4?7?kXc8HmQ@)+`coK1h?athCa&IZTXe{Sw69(;!JWb0yLQA{6 zE5{<7vbYlSi;^R{n)6pVmq!Z0x0lEsZ#rh4kLb;PLQM&n$YS2hEEh_=QkK{1oqua8 zflo5!^UeGTqf`yO6lIsxoAI*h7^x+w{!oby&C*G>=JAe78t#btd)C#c;1tpY1nE_T6W`&wkbal!F7 z6o&-i)X_LQD30O9o(W$rj+-hrUCD@ijtf`Kl9k9xngYYA#bUVl=ew%)&|*3-CKXeX zE|rsJk(HrZR=iUBNk}6Tlvxgf!K6y&B~h68vf5Q&U0R6;dmLo1bde{kR5;U$iqF1} zPjkk!@8PN}N?I+-a)q@Lr^$;5Q?(hWfQ3-aLC3Mx+~(ZB%_~yGO%J!Zk+`W1Kb~B}ci6{at{s=Cy<&OT z$6@eGNGD3IRmoVo*#D>vBl(b`k`v zYQ@)hJX)&iMINE)ux|5(@bF~)4-7t!o!`_oaF~xUIaP1GR=*^L*EkuWFY?BoUcTYd zV5CO$d0y`pT)&V}|5}Y;MJG~(>R(Oqy*e3Xw%@QQObmlHK=ui)YLa0Ki3`9(4bG8 zEo-pLYxMd84P0x~5@`v=H+=)uUfOrJtkbluEJv#K>YzOqER5ucz);%al7@nIQfzwNsS-%ons!GogTblyDI zocifZr^fcJ=B8h~ajzv0`#2qEA*Dh*rfjUfEdaP!8UL5q;i1ym5_u5n2XBp@4w3=^<0jn2NTnGi?Mv28z;D==#IOVX3 z6Cc8v%0W%HqNcTwV?wAXQEKWsHHm|k&_~UXp+RTJnQokieZb>2G!`2gqMU~3po0zQ zId5h9iq;3}4F*?2$c+Y^m3;#TZi5># zgRLAx?d8<9^}#*JZMdqwY`mCB;wc=lq_aXdz;~TW}|8h@Abe$>Krm++SG5>^l%gk*3 zRMxuNl@jcAuy7I0+N6~KG-#1$_KM`LDrqGlMbr24zMK&CHo`5r6m2Hf$W!%DD z)@6GXl(?StRHX1`r0yUS(=G4igTmYW6tc%nIUAPQ7x(`Jw%GjiMzP5*-ji0*Gu_(^ z;H)o}65ktwnG?{0J>ut-RE;84ebEbW5&W?Hjo!XoZz8`ECW~?Ul`M4p zjJYB9E3dPfqj0~%tJ-92k!*LbWPjLcf{jX#tf%MmCttV|C2Qo@cJ=h0wu)^RG^xua z<4%rd-g{2ss&n_L!E4Pj_(20-5A^y^W-*XB+{2X^V9`ypz$569chK*(p;cVyHJkIV%&)Sz#4yR_KtA>cIC3mT zVTSR?WpR9hA0=LbMp0XJtYWsyub71Nt{FMe|0ESv6K)Y`sG&stm`3+{WXa5-FL!~-3t_TgJYt$xCcbyStW z$GUf0t!MhbHG~Gwzm5xJikWfH{cHJY>9q3PCpM4xUm`_ZO3Ez^vBy8uE!7uBzkcr& zYkQR98F1-5OW`8t*O^qL;Fn+iDj8g4FKF=0{MW}pozHIn+ykk0iI4vnfWENDU7PjM z7*|1tx3+@yLl*^+kElN~e2S;{S2@m-#uwI-QKMXIHfMsU4PkYaXZ~zR8>%HP{jozG zot;w_*p`{BbWI2kUEdp1)1CjY07kVYMiw`I*uAYlB%l56qB;5Te7n8>+}Y1%4;so8 z;Oo6jh;aWikE_*ku>EQ0>T;B1-$%;tjXFNFR0;@nsxNCFs{1e*lJRE-)*m!GE&cm6 z;g6@qxBa$DvlBf_@@lW#gN7GAO!myR)TV{Y$g(%>62V(9@)+NOSL!f()Y{w2=#7vK zo{asb?XbDdaM>UDbNg?@+jc`2cJj}gug7?T7&(u383JxUx1I;Z1q9th2AVGg5Sb(P zmcma8MsQHV|ANEMDEm#2Lv)>QF?hihQ}p8&h56qPzOPHHz~A>0`ow@CysM#shA#;u ztScqFlaL+Taq3tW>0Sz&+rFNI3nRxRu4((9A}6jn*%nV&4E}nC@z;8%9E!LCBag=| zL6Xpli3P`;z87EnjWRDUN-8W)W@1YsLqd85k|uPVj!nW(sKjjvI_;z294n5iC8jxw zDI(?~mvrU6E}03dBu`v&hrjQ%j-jmGri(4m`| zHau87385R5*5ilugm}^!RKu2CY{OC(d>8$$H_{5~lvs+c5qgqD$ShMqv<6)tVsn_6 z#12JgnLwnMBr`_%W#ohqf&9U{jbT3|GsJY080eJoM)=#YoTQaBroHU15HPcYPi>Z29pLg*isxb)Fih@;Ks7nq`NNNg$Ph%^4C56X9DvD?oQB4&J zE9EV#r5NEnI<4}fFg{u3C_IA_>i{N?4w% z#IL4ntHJeMWA9j23`$i#(I;37^J`evYffw3-LJ5smy@LG?S9l>RW|;1t0670!9j%h zSgn3=u}-hK!C=2Kw2Am-uXG#D=Yj{9y=yRQt_;D~$LJBAST$l`<#E$Q%YDL+DZa?V zBR$ea9w&>vgGrlHIIE|P5PMi)W@DIii&-7pFHj*#r}# z^qW#F2^d(D^;(U>w3|}%T@`#?xK`a;dV*(0i==B!uRe%^Pr$p@ji|wU82c>+e67|G zTQ9D)OsKi}S{9vHbEMnytr_Qjwrn%;YFiLVT~*^-->;U^P5ma#*P>SW=w!j~X5Q_! zO7=Xg<}PvHlJ}1*Nkq}Nkw@$6d&LBLe zNMGlJ`A%N0u1hk!R}Qj#eY$R(AgUI1bx^wm*1Kq+4xTdEo9b`5Iq)9r*(&N?yWIKA z2c4Q6rVE$4ADVaHal57yBCprd{cWV1?V#Jls>d{>#|+zJ@n5a&lnYG6aI$+9nrg*a z7{ZiuKq)Ywm2yxjtZ3dcG+ZAo>z_Ath<#MN8?}*x<^_KQ_oa2I_jOzK^@j9yulIIf zwJC?SorAt1Y@d5epFMB?SV;dwNFU9hpD+C%wVjU~^iem1DmbmRoL1LIZ(gS^tVd2){|ERXZ{~y$L{ASQsAJZf$L&JP3Uhk+dvV8;a5F#&c=fE^QH#{}3h0d`D)9TQ;3 z1lTbFc1(aB6JW;JHogE+HGw`mJ)QDBu|WiTGAn9r5gmEmj)v8(!}Vt>`>f7T>xu_+?nJYn z)gzP)7wDu(SRe`N_4x5Bo44_2^&843>zqc*tmzFE)5JFm zv@CsM)nkWv_nrcq<#UboTk}z(wSFIpV^DFpb^0pt>;7vf1;m8`FiZ zFC>>pFBw4t)zKgJ*8~1msEv^e7+Yh6zm+@_xjwTY--*VRptV}-m+EOl;@3WZud(%1 zb^oA!Eo_4B<5~aVUG$lQZ43I>gI%|2kFbL;#PHy~HP^|5cLL2Tdoj{5rzLViPmby_ofr)SjyVM{U3TOv6sTeV=eMINRPxalCQB zT}wWTa>at@{i2G4794wz5wocBLtD?Ub~ER_@6zp8)B?|JBc$@Ym`eYOURc{rC#K^i zcSQ7_To5urm+;ytooakyAv}t>pzz_`CehH@f)~m18>jI$ZqT%Hs8DY|Q~10~r$*O1 zQ;8mld!G4E9Gl+ZzQc=tYgzQAo~X}NDJuSM%HD(ky(=N}mKi|xMjy8QDiME#GeVX= zJ$HLF@nwZAf0a`=MRvs66t1W2w~{6-4x9 z&t*N4u1_~A1lPwu>^MCat5ir7idpwKrq<()cv|WAXVQ9ewXRDRT%{UPenCmuVp08z z;y8!fX(hUaQ^i>9MW-V$B6Z(D!qNu zEI(x{Rtdl})s^&SGxy}mM$1Vo+%6*BdnEW{DvSakDsOmo6^&|YAa*y~6F9pk) zX%;)(Hg36^Wi9oE{=C2z0S}s+@(khoCsN0Q)8CV0IbJdy6)LUCIF%N@Xn)1nJmn_B zJL9+SmvSj{y3AEe1~Tv9HMgb;#k2QkLTmY_tzHMZyrn#LrO#23Y~Jn8_>TR9wNtaK zw>anV)mva=Vduztqe78sKA67zP#UD#lkkh_YSxV2^SzM~>aRSpjZa#ZlcOd4zmkmm zrO%1j)RebfDsPnFS~z%CThp6>cg$Mj0yQMm_wrXRO|HGQb))w<$X4yMb6K8guAqMH zuM9uC(QOoL#_Q$p?7Xu+8`IdAcf=uQ+hEx{ZGXm29}lm~Qhqa{O#9e|CiT0|-+}Fx zGW>k<&euu=gsb%`eEs%p{?wbOb~U#U>+J`7StC)?Y9EMbr6%S-jy$88pH%b%6DF;n zg|mo$LcW#HXXsmhPEu?6WUR%l#CL8zQR(2LMDg|12ai|JA!k1RjZ;Z8ZTk^R-2b9- zrU~WL=A1fbIVV8e>2B@zx#WXwI!A7#_G|l|Isa$zjOOmZ+=_2bvsLj0?Y$9CtzThm z)~in1JKA=PPqEiU*DVY|G_rL~ZSdB*`FP{ZX?w6MW7U&Q!YOf50+aF zy22W@IO>}e5PV8mAyz4db0=C+J4VAP@}7>EmRUqHIZ97CI!N5^u@jU2PSg`KyJt>O zcDaLjIWqWbI z6#DLU`YE5Z2j~D9C zq8cEGbls<+=G-Zgu;&392=j21Bq}o~{q#Iqg_K^-mQke4T|`YUg(P~HYF11jJ{lq1 z>re)QQMYzcI?n0ICH@)I%vjybHgnmIQitbM)RiKHZZCqe0=>_u$L_z&Eab_0q?q*< zozc@6S-gdXkijRwn7$yi(QX!zB`2p8Y5WkX0L}X1j9EjPzAR0enLxZ=_E(*}#vF8K zP9k-O4N*RpV{49lQ-Zb^%DE>5Z^Pxb*JMCqT{xyNr`cneKoGVYnMKCAKb-P5ozjF> zokdo$XZLchuY_GwP5pw(=Y!^7ol58vOIf^^zi5=Ip_;55pDS8&M;#=4+okZ1aN!x< zyltbx5${4nOrf4|F2wBaV+`CVzA!{Zrnb>!Q#Y%?IexViJI02Qch1Qz$%$Mks!_rD zDHeK`;+A*89vH7(Xy$cR)Z%3<$i?10J}t%!_scw;5g-f;1o?$vaDkYTR266xJFXjw zOTZMzmqmrU;I`R{t=aR`(3wb|%sAmPHz{0%OZJ7*tb(_GDB9&*RrCThy0EDX=Mq=4 zr(C95B0f@<-Go=<$CLJOxzF*9Abhe#O!r=yp9KuLhtCNpb6qVtDvqBwEvcL;*4Qqh zfU+={atWP^7O8v(az%zkMXyl#;1qt^qHI*E)VnDw2~#oBRPxEWV#=k`3siD+3X@ru z{H?4Q?qBr1tMG(gftXZ=u}kVry=zSPq7%}t$AYV|lDQAc3XTL79CfYX6sdWpT64s* z`qXN*U^Cn{GT}2z_-t*pP_vc&-P!{(LvAvvR#L=DS}hU3RC|o6?nbbsyld@W0dw{J zTHee$gd+dU)gUBA{z5z_m0JFtM!2TK|8P1=74j55RryJ^RG*G|vKFot3^P%yTG*@T zS|z+%!&r0GJ1N^COzL+)mFCj~3w?r>bbT>|AS{w^XIZ|#*MMH-bArXY1nap;m)Wj0 z1c?~h{2=;^kY2(nehF8_=$EE7)o-RZKuM%%{YtZ7Qj%+|w`F5QaHB~Yfu)o9+O;V& zxH5g(6fqs?oY@!~T$KWAf^9aIi!@c9Bvnf{n&KDF|ZU^vCxy0jy^IxRV+`??;^ zcd=SE?Z)4@S+C8IXS#MXyLnr>@6WeCF7JFI z!)t_%K5f;b>D6;eJnoKRY=jSPw2)g3IBPiunJNZr z)z(q<+0om7M(=F!GBYz>+&#whpG?65gyLFN>D>_V?c-ZUc)M&{3)9cVw*`ip9~6VX zuT7E-HRlf8zDl;XYkmt0|MT-NR3I1hr&Z}f$Z?vuNSMTmqfOMWyG}VVOhyv9vB$<5 z&W8){5idkvRVlFnpGj4|pfu$sV#zBjJo~;Wfvy_B3(|@KnQ+@ z$|J7W!tP%R`V7;(*=P@cbZ@sX@u`vd6D6wSAO0yz_!rqP;@)i4}7?{~gWdtpi zPhCuS(Y9-ceVr}gh;fPYUCQ>8nk-HO2n8S%fKUKJ0SE;k6o60wLIDT`AQXU5073x> z1t1h(E3$tGIq+}_79f=WI-&e0OD6!K0EAK;R?A+3XGC@Bm6X28hq{zaeJNY3?3kV6 zs_Hl)EtB8oa%;VY^5Xfr7FBUg#v88TI>Yqt^aUV=0;EuY6bg_+0a7SH3I#}^04Wq8 zg#x5dfD{UlLIF}JKnmsmx)cgPD8N|k|NCRH0HFYc0uTy7C;*`VgaQx>KqvsA0E7Y% z3P30Tp#X&P--1wf5oc1RGWfV391fuz&Y}F@xrH*y-(eZ?m8muK@43eU5KcwL8b;D{UB}=&9X>*8Gi84DJS;#D~X&q=3d+dJr3cW zT*%+MP9m{pWRhrtloT$*SJP#M++qF&B zIxYFxO=GXb9&RAFVxMO0A#pkN%InGb3{#NqN9a@b=VBQ)`I3tv*Ik0HATL!k+F?9K zcE!?Pdn+%Z{b;4)nVwy2sX6W+Br_9vw04)UF+ZK1+#nv3%emkq&P&y0LMpB5|1Rgt9|v@_e8KPaCO2d=2j5%oGuZN>V}%Bq`m={HS#A(;aQ zTO1qBmsMO#`+CPLQG~WqB{SCj`8ZOzIA$4M_ zN0K#5uK&zn)W)yL8e6L^M!}<(v&1TI54*(~-}<(enI|@sKC7Ca+NsME&>*co0?9S6=Mrx>CgZ9G0#}0z{wP(W zirx3uT9qshuyx|?K^u84$?@>Xy(tKbA?YVg{$=B)>Eh{-EtF|^ z({Ciphl3xV?{Bny>OT3mZQJ(#-0fABPPx$i>CK!2CJE({{;Lt+MXP9B(CdFe`G3AL%~F{0)42!M!?0bJS-0rr8}{;fm->2Ol39DT?xq zd{+{&Gxu=|ypcwNIWv?9r_Mwx-x}^eV=sGf@mKHh2ba!Whd$=b=klXqFZQ}YKe*WP znzPo(E?xy|btm$nArC_yepNo9Q@|Wn(5qnT75L)a_^~gs+#sQW7v003-b_)n6uxpM zdZmwxW;k)HNu5l3J8XA;l%%7S&5<1GHhv-4jQhUrBfXxdg&sR3UCp+Xn3MJ7<0 za|W6(ur&f|w|{+|8LB@kmKGUyAE)3|OwZ+doUsJED*lrCaBnyjHLX6!Y8NzMCAXOh zrl0@zSmN<>ZjW?1Mz@W^duPdzuXQ1_aK~evlC7Yd-ftKW#5Jo{?$YjhBX%EHU{Sgk z9S7v|2{%eEf7>1M$MIyIe`tJ9$U+>ok?MOaBS$MiaU{7nxiG}eTKk67;FYHYO@6-% z8mCkraWm@j-iQIE`Mm{Qd4mUBHZ+vB%rS_Xw|sjz?cSOONw?kQ-FIezMX#Db1=| zwTFb++<1!ApM7w8yumQigSjwsY!yVb8uk0?!Lw8oeb%omsAz4WSM_a+1-2Q%(;7Z&zzn7`1uze=lObnD7l_C&=m6p zeo9@q?y}!ZEnKGYo~?{lxl)TeNE$=`@nBO;mwdz<15EG>BR>*IQ3Y$hT!A4S- z>3?CH@4a`1UzhwW`c2K=W!ovNOVUbwN3Va_%q45}nuWCOt$v7_Q1*bzx{yIiKX`OM zJEV~ARP6+7$T{jE-(y5&yw|gw`^!zyXlCVebszFZRlI7CjW$l)ATr9$)jVQRf9!O$ zfzv+r4_o_}=p;yfWM`eDmx7t{@1f{t)fF<}ElobSSiaWJN-mX4e{Tm>k8tM5CPhx# z`oKk>a8_^js@hu*IXzl>|J4EMV##^`ZlT+)`MjI;);yy+a}Eu^DNZOIeU)nqwho-@ ztERtFC27wKx+;{Br!RWz)D<2}y-XJ{vX0vCfly@}$`CoXdjdZI=eUm8KfmsE4)T~@ z=6=4=_&iD*6l0jlxGmBeLTBmAJh8+Y2I$f(Mkd*$j#1atX#cD;&tF8W&Lq9+|LJp( zCW2oRXRP`DP-!pqe(HvH;Ax*V(G6{Bo;h-Jx5QZ92>pZci;YD9v0C)ZtSSr*7|flJ3r%*DpNO~ zbTqRRse964d~fIenB-Dy15LFK-F|^|-NF0D?LLF)0~vYI`H|j}cCQAX2DPK&iTbw5 z{IIsoSKz2?;g@_D*H)BW;7ArO)5WxT9eC*qKXaec}Z_~zL6RcD~IXpmDLu*@UK zH$I5%I2iWWW0}iMmnm3)+zXoRfo8O!oCk_t4>ev3>C6eaF!hzN@-X7|dh|+@YuxLz zMaYBWP&1}WrX3+lj($nYITM-0$hX}oQ?C53{+z=M*G!FVH z<29WVl+eF7Trt0Qv8O80h$KjWJJBDe3NWz?#!-nvzQK}Xb*=(mm)hlyk#119?_OmwGP zBv{jClS%GRvV0>)K>u-cZL{DVMD$hWn1o~BYkJW)^a9A4KbJ1~(yqk}tVK^>jj6g5 z#eX;IrEAP+UaY*UFZ;T~ZG23XIx+4_O)Rao-*i|k&xFw(Ye8`f6g)oXRuwvL9M%qX)#EBgCk8VqX(rAey|0h#RkeoTSY0Bxfn6eo083nh>91hICseTGu4^ zfT4r<=oUcw7<1ZmP5OpdYzxR~A7*U>OCI7;Pz7Z6azTytQollJ;_;bz6TqJ@SGPE;@Vu~@uFLM~@TuF_<#+C~m-t(*oy zKubJN8<=+!LgQ4Kw|10gXp=wuDrTcHB5!;zSfF!s*ukm$c{x6|)PnP7MjdU-Ta8o=&S{vz0nYjx?xKf70#0zXk z3p|)J!cUPdo$wG!IGqhL7+7Eeq(OJ4NT#6f9KbuR(4oA@kjeC@33xUN{w@$5U6ay8 zKxRP@nMx=IJjz6&u$`r_H>I!-;#sGk38^j2PXWYEqKEYg0+i6W(|mVeQN;!duaLO} zOB=u!PTLfZP=a<&5mczGt(13byd`C*!e#vuUH#DbN#tQ$$;&k)K-A{z#tX8|JUW(a zM#}sPRDnKao=8pUi^QrS3t(v`7RWn(9g|&+9C4;E}M9rYuUl8HBlaxY=AG-O3>sEg4Qp8Co~%3Un$ojK#HMS<9){bfy=>&H zZPapVl&_8ZK-r`|fVsk(Bw^E(rd{*NHkPWpNg<#qnX362Z}a|g6U9~*V?^^!>bg^# zl%)0MQejM@;=3n?EdVMCnL`-)^b$5oJcgC^dpH`Zc>|HYK9ro^-pMJkm*Sj^{TTk74qpho| zup2|&jgRO?tMuUt`*x-~8dYd2`TMT)^zBFVwc7Q!Q4{u5`maXzci8ovZ1s2X4;*fF zQK=4`MGRa}U%K4Wf3IlZdSvInxrM^}AGn3WKK$V46q2Hl6osTHBt;=93Q18& zib7HplA@3lg`_AXMIk8)Nl{3OLQ<4}F3SE}MfqRNc}R*vQWTP+kQ9ZaC?rK8DGEtZ zNQy#I6q2Hl6osTHBt;=93Q18&ib7HpRb2JYDXa@=(es~c(c|!U(X-o#xvt_^X;j@c z)I7x8y=!+xeru<-T+I6gh;m0(z=c7Rf3Jy^tbebODF^4+*&f-w+rfK(y1b4f-s@M1 z$qfUcziE88VB`O>=$RI>m)Nh{>=%$eTmQT0v2p1YJwopH$}r+=Mm{LB8w}i~@_E_v zckjb9q-1$vHH39AdO50|;d40ld93}_lob`Ma>(9HNtih6b`|bXp;@8gF;P~}E>h`S za#LjC@^qT}oc8vG=zL5L{;(@S+Mwz0qG!8i)pXGl&=?f0nlphXzAjj5&@QgpG>&pO zn9uNa!2Qgk;_(`bcb~LdMwqJB{>e_en_3!K9AO0*vVTk;jzOB-YlQ~!CHkUB3 z|8P9>Kawyco?@gAtG+pJSKL2>$TiJ!#8}b3e6YyiDRlE!NziS(nX`A}jg*wTc8`|~ zuI70(uPt9QZxqOC5dSUcf$#si%*r_Q#R|?!2oELZ8o(B|>4n%)(P3nCsWg^c3JI+=UCo#hNh}E->6t_#WR+^xLh9>V~(-UmOq-z%lxiH*>D zQcF9b5O-eY7)_UZ^~9oGV|LF^^=r?XT0g$JNNy5(i=H0%1N5`^G_dYM<>ZG9V1J1E}94}Vl;z6sKQ zlfzk6ATPJBmI40s^7X5HbvG_4_NKH(+96$5Uqm1O8K7&YtD55*4pe?n-s%r z+9|8J4=h4)jj-H@%V1WVDQyXW1A04heC*?>?Q41dC=+X;i3BHsGU2+y?&&pM(JSr- zv3ZY8HpM4#+w>Jj`df5jtn$;xhr%Cgh^nh!_~eEsg(c(+i!{G>Nlq>O{oOdR_ge+M z!BqEu|J@iJZ)ii05$-7JaZFY=>Su^AQ!RUB%Bs^)nKXiX7HQkkpQ4s;byUe#XQNp# zF=ADnTwl(g?~!3U8qI;g?Xa%`52v(`f9rfZo_Q|a!zy|f_*6}_=lR|)#q6~XOa}F{ z9S!lLvNdO&21*O#P`8wkTVAi4{;=-`i|NeIHt^Zqx>Xi>z0QyX2vmEAa(I7m$~pei;2jKvqg5DlTMv{!I+1V za|Lf;-{s(feif1yk8LLi7B^lH<72(&w+Nhs`*-&PS=r2l!^ZFxkkW|cU&}pCs=ZG+ z_fr#7mpC(+n%#aQ;ms4z9~on6V|sgBM`Y$`zil@}M^)xq3#}h$)wXjw?0br++Nj7d z;jUS{Y-ID<(1@=cDprfmqx#sYYgRp)=G|E*PNiS~7yhFD`_S2`UJtxgTQx@e+sQ)J z&RnN#qBgR#OnUQ!jl@}9(~Sy-k~AHwMcYS1Qn$-tGM2ByV~PTAxu%fWua%#ccC~AB zYTd1OaLcJl)^2mIcPrfSy8W?YH>tX=S?QZ!M$O!x6&u`+p_K%quIV|ER<7{9qf3Fr z!fMx1v&d(QAP=^A?rWl1M7g5PfU6@5XYcb?Dxbcf5<15{_B&D3^j!=6c)qmUTa))= zdhKK5`6^GtaVzHR7Z}b~%o`2pFZ#a!>CAimo+YN0>T>~1{vz*6<7%C{uUmvIYWgMfGzpdG^I-S<(R-Tcz z@&xyuJV&m|`iqtdK9Lt~Vzr44tjDL4?N*>e0@q1ILV&CtJ91S)8JS?cb z=)qh#Eqt>-2%7BMu=G0`)9_jH-YxJM2xHB&^aNl$^T!-xJphN-y5Sa2wa`5ghCA^;Q}fmDb< z=3{@RmqD>QLEbJw+~YyeEAFObK=HL8aEFEVYJg`ojYwF)2c`hlV>kX}d;C$5##)G) zl{&Rt;J9U=Hg|vmBIMGVkCA5xOK0%&@n9%zh?+uhv{`UKa;QsoaD8%+({Y%9m899Y zgZsF+Cn$vIs34LP7AlGe6YLE7+6fe11ImwsyemL@EGZ0_}jt&BYvEXlOVbP+2!MdSko}q+mUVn5hU19R=X7u(E z@h125Z5Q!rL+IRS*TL(uogYOMb$Z!bMS97)UPt&5xc#E@BJZxbPH;!T+9GRiKqknd z(&-InEwphU?@9)LMOlLuM$zA*k&;h*+XM`ExFZh9UL1%6~GRs`m3nZV2Jw5h%z@tbj zMvVER;UJ|I&#d*90~Ft&5WdP8Y#?m2(;lB{6~CqsGhmevoE-mA3zUl0mZ|~JFeD^` z0%eizIFAHzJWy}KBMKW>ry$k#B(XvvG38StePtpgIH{C7p=3CKR!7QoBH{6o)K2T) z378aJK(d5bBGvWSd#<#ux{zE1k1Oo0yJCb681kxv2FL@p!)x$!Yd*XKb=HNYK;3n% zp#=(2ATSJ~=zMDcYIp+uBm(-PN1FhEp>Z|n_{$BaCjjU zdgm@Y!#Z4nSwKllylMgtT}|>POCVUoP~@qN>+lD6SzBr(+5lo5Cn4L!(Nx`z)DOrs zT3skgE3Mom&96GyY$84eYY7rg9YTiJ)dX20VYZ(7qk5r7>rn5SPn&?0*@=u)&nWG6 z*yZ&IDjxW8O@cW>agd_RzRLMWu77Gy}r^jBjlSkp5!f9 z&aU34>66q!MUPzOP$VLYq8VgMpz%bd8zb|*l>%INq3Dw&;wda0k{@FU%r0g^P_2OX z6bmp|sFrSll|I6kkl|wkzjKflGnpS$n`&E=Aol2OQdD`eqD#^2wK zW0;dmHY8E{Xe?#$!~~M>WlFX<`q2@(P%Ix@TM)*AuBin!=%bqS6Tm=J#zty1C5kBp zf#XHc9pn#9A|@dyM;0yXl)~WJ!gAgWf8N4}9msJd0~K*B%4OL>~>Ds z!=N&~(^6*Ed^O&34a%I?Hszh<3?rWYTjWFqHmb4`VFo^2)F=bn-$hT#dj=t#UsvZp zi=LSLiq}(qF;5(>>{h%{Hu^fR=b-bZ(zWPhvUqL-Y0Jf+!UsVdRL+Z+5XGxT#Tj&_ z?z`qx{i00YvMKz{Ql*Sj)7`A3xn6|=R~v>G2i8`Pj8>Y>7UuFyj_byKFQ10;~?XBaJITuEoG9bdKHS#>J9)|IsiX@L0x#|6VNbq3W9U4@y- zrF$$45@(UGrdSo=m4ts5JqGs6tNMe=<-_5nf)bSzUQhqdc`)Yn177u$;SIuF^-HXk zt!ViVr-FayJSlXIJYtPn>WwD6jmHx7r^>nKQ;q6(>K=t=+3++WwQ)aCiIkA0&lWgz zS3cQR(}x?)0A8FB3y#i^?%H`tgd&`^&Wdunj^<&?L&N3@T+<434O|W6v)7dvksWjk)kyK3!V`B#TH%o}HboPoYy)GaLW>xtO`}!~fc} z_H@A7Na%yWE40VPLAP#L83YsGGMTuXW_`aOa$T)6D}ZXU;0uUiu-zoAD$Ob@h>sRz z63S_>U=n^cP~nkJ<&0H&n9wiJtZ4o#>)CcM(w{6w^Y~i9qeOcdA4OhzcajJVk)wuMpN#@=X7_ zILwA+5Jik@fjqL``)TnQ9NWulTU=+lz9Em}M4|1fPOEdH>VXiOQbPGDpF(&3>AGE; zw#QZ^UJ19A_048;tKyy<-?Or|+0)$8i6~aqY{$T^JHB0b`Qoy&SRh~BvCXQ3{K+G( zZ+3rfeA%f|{cXEzf7amT=uq8jYhTYXi`)HP#Zh;st?D}4Zqws!kU)EckGFBtqvVMD zcurgLUuvA_Fz2opE=T2^yqevb-3zZG_IoFL&YgPh&UFiUi{G}dY?Q-LAGEwHnJTKi zT&iqav!*>`S2#^c=~lIFp^Aw8tjQvrsVaYQFpkQ8UDUeh_Oo)-=G&P&+(6Uku+(LW zqLMf~kksQbT{volp0a37!yx_5d^{&FP5mrd2=QY#Tkw=G7U@d3OY~R_GPv+uh8sj3 zFW9==%UGG&_7Pr3oYvQ_MYIyFtAxTF&NeYrN?wC7uj1PIa!i!iX26lJNEJ@{Tx_Fh zb=Kk+LFVbl&Iie*-YIow%<``&x2mJ-ChC4-FmZM=uy z$c4#N|84|F30#mv(v|ajTNVM_jz6ZI=+1m+eF?T9iR!%JTEM0 zBC3A#yB7Rq?G{rD<)czphHl*pVNmm}_U)i?GZV^WOIBKjkHH)VKQ`?^GH+{WLWnP1 ze+=XW+S05BaI&4i);&lZt5x1VOb*X<(y4wD#dN0y1A?LS?0isXCK#Liy^eTU)}<#r+W40#Ph!6}e|0t_lN7BLjM;6? zX8yp9Vb&=1lYD7%is;O>E29l8@#dI!Mz*qU3_`J~IZwq9-#>5kLAoMTUl@t0m=DJJ z40NxM7r|Pu3E$Q0qkDA2Qb_gV;K!sW9OrQ@#dmh+yRg|M4pB3}YbT3})Ka3P#PZyDSTBdxdq5&*Y57)(f%PW#DTr=L7Gs()l-O4;TH^0uvA`cX&OaFO| zM;0S8;3TM-&NNc+{;WeC3~|nUc-=}MLr24YyF8PzjsD%Y?EVmK&4fGknW{IB)nK&4 z*;n8NN^i%NGAI+F&%L>YgCM~+Gs@f=Zk@fUf9U$di=c}9Xj#9o$Ec|-5qW!_< zLy34|dgoP?))>zqvR1R$Es?H26{h}5STF-4VEH6ZR7rz&H15e;b2Y~GF|{kB!h!T( z8K?|8TT_0;-D{0Bb!x@SyVHrp-dz656D}Y$yO)5{%57lToEQ!5sLahH=9)KxI)+)a z;?dp&`|rUoUbg?n4D4k$XO>UBI81^xsXn{!BVjl*8H(95DRwUKnlAjD#M9=cJVPr46s@w0;U1 z4V8@v!#mxDaeBsQ~*yLOlSAs+^t)XmOm|&B7B2vc^6$;#dL=h zvu4Zt{Gk0%JDMEj5-njgFWD&GB|rNV6`nFG#8or-y4SVP1NiX67|+DjXTQf`ufNz9 zNc1E=dpn6g-((3poyDXd5@zbH0Lj3CfLV_i9r48pEx=6V=i@D2@wA7=l5+;Pnkxi} zKPkayH7mu(__1HR2Q23U6ny}Uj$5TzqsLNfx~dLZeA?utXEnR2!!(NFNMT=KGC*2( zCZ2V9YTLamz|U(zWZ<|bMA8N8Y&@uM6 zRPi&|Cp+G}cz7IXP(a|Dzp&^lu27(lK_fFPreZvntY47#RkLUJWd{8YFiNIQZ&5eiY0J z3Sb#^XC(K$&+VbD3zWce?{RrUM?+q91{AKU8)1Ss7(ETSgDpIR${&WbS_X+KgffCc z6gq>*=YzbR1K%oyIVt#d3Wt5u4Ra8cA$nQ`SGoIrA^V%Zgb0NJ2{Iv;R$%~W5Gy%Y z|M+kG26jAli1P%cTY+St;Ia;{$njABwXkFb)+{U}2>~iQc6{fZ!K&ln5;Ly~;ZO=I!6`=DK@8h9Y{cAq(4dvBwwwOFHUHBiFN$&R5ncHT zdVgDT_5tq5+2hDRj8W4^5d`(9gjWvv@xhKw=N{C5C$Gt518kH4^bqK@IXz#X_3e@1W$A?K2?`FwVx+r@FXdX z%<0Rz^#<4@8X7g$3Ec+!*dSy5VQDX_lg9F+Xppi!<3<)Ra4LmgI2ep1OHG@Ir#Q`M zZp)_FC<{jS5D6_1b!?=6Mtp4U~QAiXY zBeWX_hT>>GV=0c5VMel8y~&?F&O{&B8B<=?xq&>L^xYl!E5fMprk z2>RhasW7KVEhR4lGMx0F(t4?_fc(4MseTG6OV$|{AsJ2FGM$Q$EuMTArTq4qBoh=I zw3<)EC*vr!1&$b7pnmco%wXu^TJ#}B z;R!y@3sT??Ec}iPCZNy-3YmUlsD7oi7znc029XR#BoWXkNIG{4JX#o8WaHGwf?9zT zMv51krxe!fBUS;Z>GdK!*jCC$)_^7VDIr%Ike6CjqM%gzq9#X#rSuBUXyQ2M#+mmY z@w_`-ITr*WdcHF9&6vBmdtc|HmX7_KoXV)CjM%BluOsw0`N|*L+L+A~%O*X`+p@~} z;D#Ky$e$SB6Ol`T5*3Yd3_00KsZfn^LUF)k;d`n?v%QK_#!5rc$~j=A+*I-C1iezY zfeJia4PNrmworD{P0`DsrZX%iFz@<9h~ZhK#%7hNdR1`zH$8NLwQb1+ONmKy^}FTj z1wxSlAI1nBYHWhp3B~-PEEy8VgcyWKQB_MbVU-T6Ga=RLUPZ=mO%pgo7mgVQR_n83 zR7Gm^^B`C(mP5Zd7G2|LP-J)+E5wD}L19uQN{Yj44YF!Ym3gD!#WA+E(OxO9s48d_ zUWnl;B$f5+;T6XoYyxMctzG4&^X2`}assaI|qR#UDwdD7A zWv%6yMuq9`YUkfSvbAYQw*Bo-w7uJOQ`_|G+6<@LKA*RJ`FHQiIye7Qns}ym03$j) z>Nc-rh99{GESK%Z5z1yQg+SBs+tt@d5mJzpc(N6};DZd!!xB-$3R1 z0G`Yr59-FJ@e=@cg!H<0_&Gk$4j;Qkh^OvKR3Sw3cfktV*zWccyl?*tLH@S0en&UD+nd?jCCSLGPaN)E;DaH&qBB%dRV@n^2|Fl}z1R zVAng9+KyJC$=vGMj_93J=`G>!E9>r@q3+vJ>8s%HT`ugyZ1v3-5{{_*S5^AgsW1JE z=%cjn-&5(hbih>>PbjF38^O`^(3U8gw&IedJ5Ox0iJ(}jeH9y37)Syv+ zw!Y||`T09HN4W(JV`>+Z()f9!5T$T-(BeQri|KCowV z*EN7V_@BF*LGnxx=b*en)Cxc}Cz|mJ^S|tF%wqU_xpTv-_YjNTk0(Jt;$CS09{;nu zS&C64j&sCarhBjg{hFl5nQ%)@J27N=ZKkBeKg&dwB0L8UqV z%kCzz1+{=o>t)FBR{f>0URb_;nvK49c*<4c@=R%}sA)MRr=(TTfV=cQMHe@E@Lo87 z6sNedEn?&yt9@CrHeaz_r+$H5bx*#8ectSi@Ht%d0t@`xe%jdMx}B=2I}OK!%Efi< zX`rW#CmXms%{!+O&ztgZMK}U)+&|y-q9pt1)Viw1cF&B3i`uc{!M=f0r*8YWz=tO| z5oZE_0Y(tdl3u6THD9l?-_t!o?cB|h6H(zR{)hj-{_T-nZntGGp@syE>qPb%0X%F-gX^6$T6+3v;*SQ z@Go}soSK36&ryxlo1Qa)=$^wlcT1q_;#Zk;L|Olai_?XQB-@I4)F0s5PvEMS=ufRpqQGwF5fSk78%qZN zRzJq3{MSH5uf)EE=7-ZC1Gjf-e~*ZNb2!4}5MTdJ)BkXOnhcRXI~nWvR(RHxK@>fO zF3urNcPqY~4b|??{yAV2zY?_#Jh*Cnvdz_q1FHtmy!`Tmmb>}rW@*6H+y^)2zBW*? zg!|pwnmc*9*4X)})VK0+7CE~}{ax*yfM?&?7qpmKSW+B=CZ^IC9HCM-k{q3hFW4p> zuw36C5uTZU_F~$ESiv6)s)N+1^=R)@f9JA@bkU~Mr}J=^=C~mceu27mv5{ z3Xi%xYURIBS{C`nWtPd{{o7|L*UUI-8C_9`RFT@)$SLF^n*^uA%cN`3613ya$51xu zjrQ09o}~x(ITfGJs>cGn2Ol+#%fFEtjE_xNd?KT*$eVsG_Au@ix$1GdcA!S6DxLW? z090DvCMs0q{KrLVZqcWe{>0+cEPgZYCd1Y1RpOn7ynk%tj&)TvnRs_-vc-sXZl3tW)3;mNbOba_KPd1W_sBVmpC>U(wg?6m?W zqkA7;jSYb;O49^yjwpod4_dA~FHj0W-8`!q@sXm>W~JZQF%{}Zg~q$EP2fwct=5l4Pgk_}H9vhUKUxiQ`$Loh|FMuug4%kAq7o)$@(w zMDd0xx(@~$!^tVhXto0rt)rs^KFFTlQ#)J5L+0V)QIYyRj_2NqthkL}ohJw8DBo3y z*~11G#IM8RTX;>uYqv$4oP8Vv^wz#yt=Q!G$`b8%Br%F1Ft*&PD)DdQoh{XX@-P?o zhN@1^-~Mo1_c>(GCje?pRdTDmWL<57a~Ev^pHyI zyK1N)FnZdI^^XWog`%@JRC1Zg1JM5YmJl=#HOn=}ge@QVMfAk-uRM^i$&vb9`pnjD zh3_#(m)Ls-c*oYt^P`#`HQ$P~#zQmS=hyp8dB@WKbg#ZSn;7s<`lZ5WXnF5`ZDXCD zphp$jXmvrkS={1Tm~!{J#_dU?(610LuN>>8l-l9+Z3i!br~cZv4@XL8Ul#A(-MB($ zKjw1o=KQccZ6Jzad_~JCJtNGnkMaz2hv&B)kHk+4E(3hmy^N}hQ@cQQ*~yTe@#^`Y zpR)JAO`C1~cICRVJxDt`)9vJxmBp;1C^9)4(JPX>Pd0I_f;H3am2>XA-Lh`rr{3!x z=(>4I13zV1o68wT^%S4iZFjU5PTP+fgw&kA3VS!r-4InIzMbBaxAk^Ce0I|0Q~RsX zoneuTv$_+htdDMH~Kjqk}CQ?%rVMdp$2Hf7~DP z%t~3}``Sx+@ecc0?tIJ1b#-IxIGKuDe1_PhP>J>UBENCT7|YhH=Oq(0y{K}G_pr_f zuY@JvqpFO)pY*H}!;9Oa2}i%??nGdR(ZqwxSMGfYye~eV<8Tbge!VBZbJB-tsOu1t z_!V)4Te7~GZDSSRf%es|tZ(lxuXu;qMPK~5tPjY^CKf>&?-hGRZhvWYAD2sxDnrkl zee&~JZL@sz_3!Rxg<5(VFLL}%o6U!tcyCfLx_5t`XmqjDzA7YneLl*2 zv{@DDo0J%Lew$HhFZ%WNXEg3&7x<@kvE<_9?){nH9uCLy3J==6Zw@&8Zt-bj^zRn- z_j7X$Nc34*_3I~N&lK?(WRznZ_lW0uRb{Dt9_9tJ1hOIAt{()jTLl)aIy1@#eq{(8 zi}xxQ0p1A?Z#gGLXa|he%K6TIuQ5g4p zZxxceYHZQ@`Gtanps1Idu7(S_ho@B-lNE@VmK|#1X+sgd8F%0-!l)u zU8~698&NaKk&{rtL2|#@HE%kE|A>6l^0B|}6S?Jrs09UmT%Ln)tN#|4Pb+<(&T#bl zvFs`4-k_UbNoe#HM0A^pkkN7U*mCq0J^v0jTbCeT@(KUSd~+%u|C@TTx0z!IT(S9| zVy=+;bKs+y$6XV!(F|lUv}-X{1H{;e6an?iHkY2rQjzJ2i>as&hrGsvTcPhdjss;z zzE$f6&L&5f%Dt6l4pd!_{4V-d1|KGO;`G)UEOFvYr49VR6JVqmS%T11@-)r0NYGh_ z=rKpPGe#Q&yzFbjD;2ynnO)4S6N{mtl42@BSQk3kJ3bT%9%9lDUg9~Mf#nB1BW0oU_LQT+PQ38n*8 zCzF5c#hjuj7GB#)6VDT%UXzq(sq?rwrGY#gfeSZbq364hlNvx2d*=c$d729b>3ISa)4uBoOn}qy6wpkBYCkgNfk_&KIr*1$ z>Yidon_gP>1Z$_YrAl7uk?bix;^uSXmpIjgaP-n=79)hY85>7~sK) zev_v}!wDi%1CZt zUSa_)vV_Ge6|J6Ttm_w@=Oc?w;9*C|J(~hbCp5;Ycz}?030GX>o+tMtUx7DQQz`rN zMs_ykdvb$(a&blJ$i)l`{OZQ0RVhE*=VLr*s5O=4MJ zNckqnzqYyj(PsJIW8-{hehb?7TL;R8y9`9Tq7IT3Db^~aH}$`&^9JQbc&(Neofge* z6n^X~(aWl&@2sp}tGw7iX-rjloua;&RBeY=`DRx|c2*g0RxOA#n1+j*j}#X`QP<$r zw-_1hagyIyk(bfM+u~I+$(8fih|dUjM=$8#ORa9K)d5qL>dBbXTFk*D#s(K`hr{Yk zVV``$!Z%7{a3y{QHD8y(h0q$H1P0_)o5085v8f$JRg!jAn~y8hBgbZ)g{CQdO7SYm zXThXWAyKw9=HWG1gW5PRY&ouGhmwKEAoAT*#VfDMe1=L2?g~jhw)aG;dS8xuA#{Z- zu732aZhXqxtgLQsyl&36be^xFk*e%fSIiwv`iHiq+h+}$cN!nmh&@wmtY~le)fIcn zM_;d;_!*h=hn4=aO0t7u)AhQ>cvjShsqDhqruR-wv+I%Hc$($kHrs8`V8G3~q17%7 zci6X@nWw8&*O-?ydVDQuBxZZSS>TBT_9uxPneS4FkKDtzAT3rAn=&UkIu zBJB<2*Kd_kq5IAH{Z`6%KFRkIO7Oqyn{(S{O3AjjW#7L5nsxsJyBk--4tMX4e|9%@ z9p2L&zULjpzoVN#$xfG8jlY8&(BH*PL}yrCXVi3ORAFZf8$QCDCV?NHA{=cXu=0?UCBuMAtL=FT0yTyN=;4rOET2A8ft-l07r$ z?-#s#*HU|Hx_ih%y2|XjE4sVdRJseO`!IHWo2eZ*6`InmUSh;Q8=OY|{^oA{PwM_Z zD*dheeTRkp9b5f-gQ6}h38_CJ^(UnMgw&sq`V&%rLh4UQ{Ryc*A@wK! zet$yp6Ox~h{DkBuBtIef3CT}LenRpSlAnwSx!gv0~rXL zVtFn;o?8=Th%e9UN`7HRNL8%J?}3ZDY)s=T3i>kM1W~dpRU!s*6ykY}2$jg8f{!^$ zX-ZY75wvcF%?zOmJy!Ci6~eAuT{ux;HH0$isxF$sI4%;>lrhCKIM4l!nJ!GpT%-S0 zs(UKf()m`GV$HCRtt?ws1H)URo zRY=lWjDIZ5%n6nG#RR`>m5*FWvF&C28cP|)Y;I=+MCQWGAuukOaWC^Fxc`+6&TvNv zwjjeTZrC!(SrCZG33mWkWF};btp$fz5X`e5%0Y6HGK6{8b8@ux*YlnRqH+*fH=2+N z#Pnh%8*~{99#vS;cElQ^Z39FX6*o|76gl-mHq(H#wpPWp`Z{@uYZv;3<${!(cdAfV z!iy@q2&07+Rc~2~$|fHv=U3ggSKh8%IYmCJsQqE2fzBWxZFrD zBj$WGsifgLS6y0TnE;!A6ZUQ4Za$gi%e}TPv8~eYeNo{~ZLB8z*$wCJwRx+e7DCGN<%SF%9FrSCY!bzkjG5XNOd;rWqJzc41kWpD^aeK?GJ zI^#0*Sla%1`c5^~dgI>U)Xz~o@U_j@*L@0i?}lPq?$OKBo9q!x{5}pAHL$H+G-SNBJ3@OvFU@U?&5^dhDmd$Qs15Wi8cC z){>N^u;T@feQRb*?oWwL6^`AjOe;%doMYo#nMOo zH<^KpU5!S--J(UYy5Rwr&py9_;>PR;`BV1_`X`UCp z%+qsMWtf`(s6Y45#yud53~RXy+4ilR%DjBCDn*-8>UT+H{*n%;j$t7NNPMxxdfig= z-TgQ~J)Wx8ZFit=#UM*@X{u*5_H)|za z<5@=>!f@G}p;|@s*GnZA>v}=;?uC(4k8g}jOThE)(kQ5=)jim7|uG4S9n%Q|L z4!W)8=~3~6TVF)=5UoGo#yddbRE3dG-o2I@fU{_&iNVR`fKhh=KZteNR|gp3ZYV1_ zo{nAe4pRry=upaO;lo#};E(*jgf0=U8NES@^pjT)rc)z->NSIjU&ss)y6Jc1=RdKFoZt1 zhSqHZd_r7_MQO@zN{!eI(W(u5Ir?N98YzvI^^SO2xQ%NTC6Cx~CZd%?Mn%vQLoI_N z<)Ah++aXZ4p?su-<5li6p>=`vgMsA8Yn-f>cr^{1inxL$qAKqP{YeDiR#oGH)dRE8 zIJ4e%Ol@ii*}&r0uWCH~g!9h0;hNHVMyVUY z{;PQBR*FciO~@0?_A~X#grmCMo6qirP0;<`W=MMsF7f>)X8ca7t--cX&+kb2%XtfL z!opKTtCf{*%ROxrG-NlZ3^m%uBFfWCxA1eYMuW@?+x(zmD;RzJk*eey4|DHk=ziA( z%^%nA1BJE`Lxg$4wp%@A5=)TWxye18Zp&+5Crewq1$w@=LhY%t7{5YUW|0@2p%tdV zJl%9pFgo}*7Uf1J=U<-+Rkx@~?Zv+0^M9fY>)PXYCJGry^74zo+Lgg zJgC}>(VI4re`_ubzPOoY8L|56Xrcq;Fp_ycd{HrL-5^}e1-f5o;U-sG#GRy?>EmK8 zvpLaaq~@BSENM+4JQ)=2pk2_%v(7WdJZ!p62dBT73rso5y58$n7#8y5bn=vNb@b48 z&Y)EK53skH!QC6&^W3bj7}eBXRZh{pWj#lh#8fHl5CW?L+mT@}T#KvqC{!GxS)*38 zcVrr#ZttW^m@VH}#$7-iPTvL3%)YX~t=hBN?N22i{w|T-y*aze;4P7u{z{4mzAN)w zZ`h;wp|hU-Qs{V53Eh!v>+*?8h&c1R?JK z?95*5&hG4QeEWx&vxoZ!ki_g5Sg*Y!!CMt#`zmlqF0dhuYLOsr%NJG3)7H#G}^`*E3df)|Ka< zIeXFnTwdlf@kWn!dk^_Nv?C>NeiWH{8Pc9XTYUfL-4D{zGE->6dTFgGf9Fcomp>cZ zhO%pYOdGe@$4sTc66RWZqmQhI<%D=4v%&VH?^1l@mRqY+iL+?>YKh<0x2V%w5$y&) z&CIul*3H&ueK(RF|8!i~ws!6`^4rPp#H!_AdqnTMhyS^F{~gJ0EC`nsjewptp|h<4 zSFHj#fB4WJ`yIduzkTIBVvUrPK(r{B$ROM&3y`Kmp81-{N+Y-G*}#q=#2agkbHiRo z3Oz3V^DH$c=n7R+h3Xm5fkJ6sE}TW-#g&PCUb4g2?jnM;*}b_2UC)s1DMqNeSEvf3 z5H+0b)8`Ma|3)WD*0*TNfiI5TmTG1w? zi(l!jR%Dh<*ylX7oqX_sLGVC7a+ED_i_d3rJ?z7f|NFuK;orWKmJ<) z2!}g-(F^QROik2^P1KTR)bE~2h~ba-SPIdBg(UY4SHUefa2T8u%3>qK%wLa;feBO&^CL=_)Oq1{@z@NqaM z!m}XZ`%pm5=Y;-_MC;uNZ0BAZhec=^SxvAd_TYldOcJFEQ0=pc{On0wYYB$Nuc_(= zc8N)^C?O~Ll3Z->_}M1D(DrlEevvjD^^W@D9>tnXBl!?6NwVsn--V^!JeX{o>}z{9 zWzJf>4~terq_t`%X`5hdQ&K#`{cz}{HS8fttcp6e-6*B~RZ0~$C7X&Z2^W`OO)>UN zEI*%;hz(gz#PU2&dr84?e@eAh;$h53mP({mD53e?uH90)I*d!X!?a1Fu46)N@04N_ z%kk(woAhX#3`=~P*t5t9N&A>^%(O}5Ot|^y@bp>R%z1&#pp7K2@TBo@bQ50nop#0m zC3CwK==Ra-6kucvGx4ld}ye*~dqcPHHC}OR+zT#+>)EyokONFFqCwe2C67-^|ys!`NIb zxNMMbMoUr3&AgeA>7$g0mMr|rfkAAh8&V3t;j;#8UhKqYFfB02?ozIQDM<|yL2k9! zVipSPC5gS12O+k^+6DXr1rpaL!JZwLnu1UFBJFreiZvw_(};DW z#4f?2{ieiH)1-a1q+rhL13IJ;LDHCx{m?=Yf}{9zt;<9Tp#|}}fksFp6b;s6({0Gk5#)!`HF<($*197p z-c@N_lnh-;q<8hORB#Zz+L<1an^2oQR{PwWfaR)-k*@1jugl%6+o~nE&XGTp>kL)u z;?3%k?I|_(MF?VDun+~ATHmBwLt~EB2hxtn>AIZ#Q>iXg)gsS3mKrd@RrO&}M{DfO zxQh18)Qnl8!#us=T3rC;c*WG8hFSG``^~(g9Ov&(Yl?2fF;$MRFdBELHr>73v{EO} z9o}>=o4hPpDzVUnt**5sV*Yt|nBR~RrG)$E-C<4Ex2KZQj_z$%Ki(|A&P}y#)(L1n z6u~XcXx5r;Hn!(JC)1*Ft>uYr3og7x$l-0bJ!WpcxdMy9jr@ zQ0@3%?w_E{|K-u)f7w5&r$+uWezHZ4spq4kxZ{!BY%ZOcw9e#6?v(LPwx-UEw9YJH zTB<{5o;eL|-nl26w%e748>bbk((+{J*?RO029>18O;P18-s&ts(yGTh-;z38WM~of z^c?{VmR@>WWM|hFZP!~yqbfbLUhkj%lbyZv(fY3O@vccy7b>#rqr>Sb^X@PI?4JmC z&(wEQ1G-nXx>scwL5%L7Xxb^PfGDCdd)vo%b-lMYb zj(7FO3jfdcPqzE7iVR%8JaE%uK*MK1D}6xc&4Av-fd2Nt9g#u(gWUghTlN483yaJ@ z9}ALIhBfffLBH@5k^k~mG1v;&3fKzR3fKzR3fKzR3fKzR3fKzR3fKzR3fKzR3fRj3 z-d6rscRye&U@KrNU@KrNU@KrNU@KrNU@KrNU@KrNU@KrNU@KrNU@LGF1UEr&69hLw za1#VKL2wfUH$iX{1UEr&69hLwa1#VKL2wfUH$nd|Z-Ss(fxQ*jTY(5i?-C68LrBD&S2kqVoB zf(5<0XspI%hL)~dQ#?_J_^~iSuPK>o^xw%Psz)xJZV5Xi{g6Q}16u)G0b2oE0b2oE z0b2oE0b2oE0b2oE0b2oE0b2oE0b2oE5oJFS&Q&n?0WEV+%PdUkp~P6^MViK^DEaf) z?0B)Yxs#~s-L^*)&O8yAiPcKFKNEjaUO)_U<2!#U*b3MR*b3MR*b3MR*b3MR*b3MR z*b3MR*b3MR*b3MR*b3N6NyBdO`t-)KbHe^j%-``ZL}@km zPmNdp{+y&w)Xg=-kAba#t$?k7t$?k7t$?k7t$?k7t$?k7t$?k7t$?k7t$?k7t(+1_ zzb+>p%W8mq!P}{YQHt}{SK&DAdO_z`{aq!DDpt(1rBgp@DSp@CJPD!7)O&IraX9nO zNZ#rjU@KrNU@KrNU@KrNU@KrNU@KrNU@KrNU@KrNU@KrNU@KrNyosJ_%hS5SoWeO8 zgSboTQrfO|@6e;NnO7b08ZD+bFmY_T``birR(Tn$_4N~f?jjnuc|O4Hh$VonfUSV7 zfUSV7fUSV7fUSV7fUSV7fUSV7fUSV7fUSV7fUU^lT5N2Ln?(%?nBdi*GQ#^dK}E^# z!ylL5QSPyMliwa|SV9qh-{C58mK5k-4EaGH;r{E^+DEdF1X}@H0b2oE0b2oE0b2oE z0b2oE0b2oE0b2oE0b2oE0b2oEF)O|D*Q@(2uLm-`>x@-TF`=ows+@zdWIM%{#9t}z z6pXD3cVHuLyA@ZPaOgQj3q^e~{CcB7cI7MB3fKzR3fKzR3fKzR3fKzR3fRiOqpi&F zHr3TQPu2#p@n1z=UH#Y|EPa4k`}zB9Z|2_&xno|ApE@GUrbM%pbXPu5m%DR7U%5nE8+=oC8UYle7)yKuB zJ*zGcX9gYUPO{YbW1^MiDC%pR9m;;*=0wPzN%?7%#QxzNe?ce2y-?nU-aNf$n+ynb5?L`Q77Gt|MGMjR?+9W^W#EO7*`YBc~t0af! z5eclXhG{{L(!F`HY>ZR5jaI_>d7G?EIlE)^OV+Ub z89k%H(IZ{jG$v3l)4cCY{oR)DYIo2|6!y@|KurQynqBAK!0$+wEfzF8E>Gc#^|wWyi0DtJ>p zKFCvCOtI7zshMzn=c6#w_VIGYq}lpq#ZSFo91ueozR8X02ebPWK0Eq#D}8vat1mL| zW%^Kg!N%UnYq;Xf{<`wn@5qhij34_qSIjb%Cf`Lx`~3J)`A3cPp=4*Y^@`BT^!guu z20ew?mefwK4^O49T%IcTcCP#7dOe!-ajfv6cX6|Urt0^ZAiu56Txq1ix7hw@#h>%D zXMF$C?55l%3$M%{p}7ynTk5YWDEuCwA@?qcY;4u2u%e6ozotz6UC=CCy;T~(e}7`^ zx>obPoams+vJanx!>;dA>qZs7)86H`uKXjLh&r0^=*Ppt=E1U66jNm2(SEbG`dxzG zg5}eu=R?RhMW38;J0sd=Z zH!i5Tpqy?B3JwmxIU8~&>cpu7qMzr~mVL^i9L%%aPss~iUl0rTCJ6{e^J>M(NGL{E zM)4U}6>r&f^Msu{oOf;{xZAOyJazT{7p_<0`eGS`v@cA?;3X`!%j1h{ z@b{+$muJ>%yjDuxCoaq??X$Vy9#xUKcf0Vww!j@u(Vt#LPoD`^*><6%?q`Z3MQ#?J z)_3M{%iw!$aKQ6MldEBO?uNr-t-td3tdlNg$lb!L|Ej#lTIrUx?^c4tVN;eE-XGaZ zk#o#R?Y^|YL#VS$^S9kol=krq;`UEi+|sq_EnMg&UfeRfy?f97KjBa1jS}bYR;Ao0 zxF5-XQB3slXcbY5~4DNpG!PYp_wM#s|-dlmtSa^jbggK zMdK}SG7&nAp3!>`=3-@e>BeJm6Y|fS28yDL{|MjX6t8UBeZVoozI=xH{nQ|m=jG6k zgt1Du*8}^Uo%y8C;}Ap9Rjeh5A)@dvCcVCTL+;p!uH^*zmE~&DYvd*4DJH?8fraio z$FezG@v*X;P1M1d%f7x|%&@87J^RtD*E^02h(f+%LeP==`W2mlWS;iYU`?5iJU4#5 zow!kEFs}W9I}_6~#W?#|d+P~`^I$t05`DkV?2++<%J%aQ&%U;Hcw$Y#Pz9gUqTYlV zeLwNLLo2F0CPJ_E@Qfl(*W|lKswxlt#bKJkp6@Y4q!p)?iKMAo1vC1R%5%z|kuJw5 z*PwLdvkI|i@|epnF!_6}rPfUtz72(mT@KcHA2z~k-u=kjkeR(|G~8#Le<7PfO1NQt zu`kH?WiD%%t;Utw{-=|xdEO2-BcGJ|U73}ItYo_$9n*fLhpwW@9+rPMYu%K5mz5>6#g{;Sw6aQJx|+I1x1t}p_9X zm9DyM6IzEqxSfiB@@DzrQTKtbaxVz+!t)N|TVs6ADvT$pi>f^;Gk29NjtDiNJYIPX zr7j?-v#Q@xtiN<$xw6(`Ci2sgt=@M-|3hy{+9JN7zFp~|7vm)J8{sx`_GPqpo9?7X zZbw~;z;zFa`F*4Bf7J+uu3SvH68gdG68XD*{MNj4?8d0*MpHi1a@E}|bF+@=TW{sG zLchVb+56Y`S6h!JG9f99-HdZmB$5s$Bhem#5vd&t7Ye4gcOnn!$kKK90C{o@&o|7pZbSNR|5HZQ-lZbuZkyt2iQvM-y3KAYt_PpvS0xPz`PO*eml7IKWvjP+!_~lks6j|fDSPZ ztNtBG{2dnf`#K5}o?v{c6l z!m7FcI5#25Ieiumzs)eevFwK|vyp!gT1T`TK2x2yhGX)+gx^<;nKF(U9x`W1ilOdt z+13i+;_yAL6su$$TYWI*`GEg&RV)wIU)DD6#0c{hk}vjTc%1ID*tM|OcjUOOUzrzR+4laNpBN$JLMrrM|n#_ARxk(c?=g(nl9nIzsx2(;FIT^gomE}$YfkWe)j za)aZRy}17208E`$L509B)J23E>R#- zt<4H8c@S^wt1p>&cjT@ZYf7qQiluGP$ER5JFf0X+#Z$3+I8sj^Pkp1EdSA(+#x^An ztKwy=7NdyK#zyFBKTQ3d(8m7qxh;k&a9N&NnbzB%rZtapwzbmRNN&*%PYCx*BB!f& zrq$aFnxq!7h19zxmzbo=RwW-2PgcZm z=O@OFpU#}e#r&jZ-PwpSGfX?A9=G2vTNurKpfW-UAyoip$cH$m+9-cfFr; za`f_9J9}}{Y<9aSQChnETn=44hjBbtO)6Ruo9Nn_Ym^r^G>f^unaf8}*YMKNNr}5# zoA-Ax&-7>BxYeV2{*;@pkFCjP%03`iF=AE4A{hMDHSqJJYSEh zgbOAWD!z&zEsV3ny&{M=&u5&yNcgFpmc~g)Ko@cm3ZtJ8o^W`ihZ8ELa5o7BN4>aP zeiNd?iKVspD!~wsTEa(9V)Cd|qfUB*Bqmgc5IstW-Mp8+fHRXU%rM1Q43P@$h_+s& zU~AH-Y4Q&NqOTo(nv*oni6<+QhD?k67Dy|0#o5Xwt<>THQ__T2ag##v9H;RXfkX|- zS3g;5rkw4amv1qeb*xr%7gzqC2u=3XQi>gS_&}*iZT9iaQXUoL;c!h}vx^6H3k0Pd zo*ei4N;dzEJ9f0LtW%!JD<&Pa#9kp`#v)BGUsC5iWA?f^;n*enijTn+)3}P-vSXJQ zD+bhg*?yy+<52dsrNv$)KSzseC3v;zmEl9iYn&yU1YBLpQ_H(mCd2oQ$1=tQizY`) zdT2);)dk5YRQD6A?s8SNE`(@#JL?bw3zMs!MG!5xYAi;M*mI$cA`o7>#n0=iQgqVY z$9xR`gx}36tra98r76}b?vDP`*KEY%$FHAsx%2dc;S_?j|8;H_|#Gq9lgU#DzS}wpC=q z@%Etk;X^Vuo7iMN8GAbM?ZL7X5p&ypd$aZ*Z$4>mchrG$AfQ>&;jjRsSv(DUhS4O= zD09FjeY@Lo3fU5)Tb4T_r0UQTYTw*jn|UMh?dh!=X+q0PY%33=bdf{z&fb=L^>6Q+ zx7~c($iaAPDs$M}{O!Z7wx{Op&ynpmY3+9P?GEGZPFw9R!W}PEJKW4WJdhoTv<|QO z4&-=;?^XxXUzi%GN=2DdLy*+4G%7lcZ!D1eHIkc+yE9I;Gd7Yt0olp+s1u{wnNr`G zxVJN7s}r?F-E)n$`yed`NyCkIW-w@}OEioFwLp)%LX{hr)|n+tD@AtJ>2GAIy=&6yB;$r|?NX_2laH=I`zMv&7hUtMAZq&ym-CeEWJ2EQ{@2?&EsRI9|l4j_eia>JxHQ z=#8j|!~MyZNurpa$ z*@d-Av)%@=ACfYsmS(qva-Y;m(<;kpi{QUtH%=|f?T9{h11+pwp4S;KVL&kNEYGJW zpS7Z;X;&0#@8s&F>r@d2iN+OnKq^2g zKq^2gKq^2gKq^2gKq^2gKq^2gKq^2gKq^2g|6h>GZXgw?RG?CUN(Cwvs8pa*fl37` z6{u98Qh`bZDix?ypi+TK1uB()ZKVRF0*60v_ydPOaQFje0oH$BAZq|wtGrXZU5ITm0ZmO`W8*A zA3Mr)rzX=ruYLW{$TT|On~w1KF`fC!65H^`dweD!`F4iThWF&+|G1@M8L(%EjT!4+ z`MG03HOIxXJ*rL*9}VRA@3&O=1rcLG61?2gD4rz6tcV?UWq8?tt3Y+YHYMdN-oxl}kVWIQf%>oN*?f;5V@cTZJ8R z>mBhXWeHQrp*FQm>b|vQ4D8gxPA%-z!cHyh)WS|J?9{?e?SI5h?SI-)6|fatZiJKP z^Q?p%r8!jabK0|<?DvX+SY|) z4DGy#Ma2!A_ljJ*(TnL`JoYxlwWdb-iF4bgr1JBeiwCO+J0glI>9qHximGcuMP;KW zbPKAEI_j=ee%Zv!Rn&gpd|tiOUVSQk&cki0;cMsYa&ftZNoLH}`y{XxuobWsuobWs zuobYCAv3Mq;A7 z$fJRwU5;a+Yz;~|H?8$I=8|;P$isyveJPVAN5_=LNJFBP>1D~O-enPWQOaNHgf^G^ z8e1OLFLf+tAV0kzDrF4%FA8|gfUSV7fUSV7fUSV7fUQifhkY3Ge_t3N{M&aDb78j7 zf4;+C+&F3;;c$m9dVxKPsfk*#iCWT(`dt(HGt7UD8ud3hx~et$8Q2Qg3fKzR3fKzR z3fKxf1_X}*!DB%17!W)L1djp1V?gj25IhD1j{(7BK=2q4JO%`h0l{NH@EFkl7moq` zr#%Il;ccp`ah|LVg5_FRu7%}VSgwWTT3D`ygUu7%}VSgwWTT3D`y%K3hr0r6p1ZPg-$^$9)WR$cY-82KfTiUihI!?Ykr z=^l^@kP46rkP46rkP46rkP46rkP46rkP46rkP46rkP47W8piVByp@Bw2li9iixBKA z#&&IFHsx%!Nq)kK6#?t?Q>1{{ZIh7(i zfVd~(UIV0(6CG4p_TiIo7?28(3Xlqr3Xlqr3Xlqr3Xlqr3Xlqr3Xlqr3Xlqr3Xn>? zrT(gd!tW6pa_^GJ##W6AE4tYKYs%E$1dGVSx) z*AIT8@G$}fl*3zFdFo<{K`DP~3Nup>`v zi-~08Y_;q>=s~2_201|7U6;> z7iPN04Ol0=IPZnajd1dOo|TZJG=~a)PJ5PfTpgX8lqoMYpPOrFI-f5aNXW%y?`gto zF*AyF?1*K8odi-v+qzJUp`918sJMaiUXg1zdNJLL$KIy6*3>9Jac%y? zRwsWfy3o%`lb$oGvv*y%eX(x+MYn39!polDDQ-XXuLjlpbNF*+{X(yNP2|gW{n)*~ z2I^!dUiP27;&>+GYcH+%T|@+k8s;*e+@I z`YV!WeFes+cHZEB`}gh{|D3vGY_CI`5206lE61`}H)hp%QcC?;^rl&i!s>ZH#&|K$ zeiGVkt$6)toW8i~{fw{o6>kbC$D%yAp18+R>rQ;R<295kh`fqx!^`&GQwkdEC?9T{ zbSaC}`jf+o5Nl72J@|Sxcfar(MYTO4t|+UUABAl%P%amgMLo(h5fZN^&t^r+hmP+% zw5@gF63?0F(;Kl)rv%ck%ZbOb8em`Wc4}di;=J`$I8M7>(D_w=R|%tv74vNA)Q?(< z-*q@oLZ~wJo?J&9&ipfyxB7;W7f;L{M4r&CC-l+7hpw3XOefDBx`x;njZV4nWFcvo zF23oEGRVo_a58RrmJt>IZt0Pt39e=NTD%iF?v_0M)b-11eW`-?)0I-$)xDw)d46El z=j`m`OLZsMq;?(_Q9a1t!T-KLWs`LL(rox0neP`^n7b^l;uU(?tKVgCq(9ft{dH|? zBsPm1WpZ1u~)uQ%}<_m%r!$MpwKFWR^~ z^}5~m_+>heEdIQ^@|6tUL{GKlY29E>;T(-Y+$D7>ZCAT@=uz3stB!b$7SkJ;IJVsV zZ6Y_TybRX*`iVbx5slkCAK-Sx5)5uGstwxp^XLzFyZGdoTj;zm>mEcrcONz=N*;6& zOC;(BzgHlR^f$j7EDviV3jgxD*-$=Ma{5x9+=cmb^FRBNU+)qVvhLKsXIBwd_=$N- z>bB`9&U1fN<4>DoRv~d#-R(8CZ}S~AiL}w{vz25=te}xDW2m;es$lQ(>2O`M=ik3q zcODse@pagIPG>%|)Sc$|RGGSzqEKrWe9EBx&)w04_4?I)a-yLlhu2nk(@%z%_&O_D zURP^tuqT=Lt?NG8YL-g)D2r>cu`zBIH6&nySA)t3@7n|wCA$xQTz*Hn$L39bd#qsz zMf`n-tHfDSpnEao2YrP5uUl&$$v(25HceY`f5Vw17^J@SShUW#`LeI8wY|f~Bhqao z!?Cg$KhjMBg|pOpEdMbONx>;ZCTkIui|5LhH`Zt*u%nN3! zQZfqIcHOe?P80RdBpL;}j#Yh&F&TfXdF`2e`1ZbZ>&V$l>mwauPJ>xTBWAR-=glJY zUt)fcp1Z5p7D*)C%JO+>dt-5gZlUj%psQ-jAwL=v?POTkBRMZQBrxz~<#6he?Ww?& zjqKgs?xfJ*51XT#w4LvN`A(UYUis_Q{g&4Q8Qyiqs;8LH)LvE2!C11LVoTz$ly?fo zR)ssTk+HABVf^PbOj+Zd!^vzOV8_O9fcfzj3xhC zE4jJ4Z*rCwsgjs+Nlh|!^~M>Kfmg-HUzj+43K=dcIlS)H@_9oqSX20Yf}A^=sUY-1 zQRUOe%q}u*hUOCMy*0=kO8F+n{C;LCHG{vz6L(bYM^ar%uSb$+l2x%%iVAYz;5CYs znZ;ZrU8(7`b8Ra*0-qBTM_LBKh4ayht|#3XMH!4 z9shJ(*tT}=H1gZY@5HL*UwcIFyNCa|c>f*AZY&6w6^($NHKDVu0avX8IDh!iANw7^ z3BP^iJz|ZNlt8p7n8+a9Ckv3KL!SAX$Vwx(>e;}KA;cSNjdR0ZM+!YIQa$7`L071n zDpb#a4irlBa^WlrFRo1F^O7CDb{7$(&F;-L=z4~1PccH(y+TzOg{a|dpFV$Z{Wq$4 zD5%*AVX26Ej6rzwg*xB@qr?IZl7oXff`hG*2!$XwGV&EQ$ZijU89aybC5KqQ@(jdy zy3d6m*{_9>!yFO8Meo88Hg;U>;V7H%RDSiwLO)Cx>M0`R>RfOfdkAN?x5W8yBF4I8 zD74Zh)Upa?N=0)_qYvze$j7Nx*hEzEM`R=g7f6H_NraRj(26!8UHnRKwIZ`@!anDr z?c{?841x#xk)v#ZTYNr~>tP>;{NEP_2>yQ!i(X)lVrrsR zY@(Jlqkh+f{tWY9qelHrj;?Bres~Y-1eb`)z$)*hM}E$Bg6r&=&)^ zutKeeVnrmQ*py=D9$0m|`Lk=Q3Q^Sg@e%CVG5a{;EKV^48Rs7HN;-(+V|Qa>rNblZ z$boyP@v;=n^OBbD)?y4QTqlwf5`xV!9SPCDBdYjN3hmayg^$BA5uODJ--iNfJ}2~d zBwFuIU_1BPI4nZT$ZCQuu?H7qW|AmXfNGyjDRb81eOR<2BCSuTrY8DcMwPNw~NKYl^XFV)^-$L~O`%B9`ZI z+Di(C`%|j55)WfOvQ#3iLJ7_9cI}qZ)nQ!99i~kZbsZCGd#4neSdK^c*`!C?WLV0|Nf6cf+a z^VkDz87!PJj`+kIgAezhud&g5G`bCdhxMf;6rqt`DVV39meKj!DWMdGg^vLZsyH| zOdq90v}EB|4h&*5-H=lF4WBh&^I|7HgK2?Dc9(MfOG#>w2y&~%9uH0pSh&nhzo24?=8-wF~$M3M8&gf;~GfH3gsUMcVO{6l+QpFyUsfj8AW9lXQ7g(NpG-^g z(b3dR{H9dNq9lQ#>3Cb`lEY@f$pxLu=mMkBc$3;vB`FLyJ&$LsbUZOlijZr;SIhzRn#JS1Df|EdMm@yUAOz?|j8Y`-k$xim!+h3Uw8y z$0{gm6=#V0d$1MSi~hTtDl{U@o*wtl#6`ZL##wC?FV>c@+Ldl^9Jy~6O&+a!shjjgkoU1Y%Ic5FvxpK?u2P#+l2vSt6}bjATw`uu z<0~EML9W&()?{c@e>1J|lP;cYw`ritaV3HysOfgqxNbl-l zso)@bwKF{;H=#CrtoFG#0n1evBVE_6UYEOBw^d7Sog;rH*BPqR#hcY7+f!=nix9-R zU?B=JwZ2KWhQ=JL52PKD({(xfr&3+0szsi6EHz+)tLnp|j@HGsTs3Ghk1I# zwYmVx@rtQG4YTU?_M3S}InLjo))d`{W2zisVKnYgZMu86X{An{JG|*$HhEdHRAQkC zTU~2O#2nIl%Wp`DQo;$4-fFVGJ(ZMpbZ@iz@n-pTZmMmwPC)aa2ySUcv(|L8u|4-W znHG&}El+G)aN#XN4sW~dF>~`R#~E*DymEePw<}+8&sFyOnRhu*jTSk!?fM5zTIKG-D#`cMY!XIYKNP7hX=9)k=Ef= z-+>(O@ZIWQ`U_J7RjDZR|3)hH)W~sa)D|_So{x^=jz@B{xpZREI+G*0Q^q^lnmRMm zI(Mh9RFWPyMU}gFtFr(}s~+!sOX_Tq zp+(fwcLXq4dg*PEon2eBU2hqUs`Su$z4yqjoxSwY`mXWuu1QiCDzfXN!|5sW?k~vh zIpOY^`fh4K_sUlHsthBD(fu>6>l?D?_f}UJi9wU;+B4l#x|h*!PT%Q6?~sv8i0s`h z+w)hL&UK4%z>%>}wii$8B|7x6-s(D3)F*JOS7^CU#Ig6tK3R@i?+z|A#P?n8s$c3o zD*NtuS8uFv|M|=P7cKhbefkyC`<37Ht4{Q*ZTDXl8MuCV;HJfZhR=Xj`hd=x0lkR< z{q2D}B7^z|xmk{H>|*&(`MyZNurpa$*@d-Av)%@= zACfYsmS(qva-Y;m(<;kpi{QUtH%=|f?T9{h11+pwp4S;KVL&kNEYGJWpS7Z;X;&0< zr7FH$81Jko?8&?u#3`aviR;VNikGsWRpR>#@8s&F>r@d2iN+On6SOMgP|2efw1{ps zX{5rYpI||+E*h(GnW3fY))Y_FA$}}O&}&Mj8vS>2iRzI{r(41fNk3$e%Vs)aPU>dp zQOcoPfo=u573fx=TY+u`x)tbFpj&}%1-cdJR-jvfZUwp(=vMw6yA`k%xCw%rAh-#F zn;^Ief}0??34)s-xCw%rAh-#Fn;^Ief}0??34)uTfBQ`k*b3MR*b3MR*b3MR*b3MR z*b3MR*b3MR*b3MR*b3MR*b3MR+yudvEo|AsmMv`A!j>&;*}|4BY}vw=Eo|AsmMv`A z!j>&;*}|6Xf5et8bSu!UK(_+j3Un*btw6T|-3oLo(5*nX0^JI9E6}Y#w*uV?bSu!U zK(_+j3Un*btw6T|-3oLo(5*nX0^JI9E6}Y#w*uV?bSu!UK(_+#1c|br2J4; z1#AUu1#AUu1#AUu1#AUu1#AUu1#AUu1#AUu1#AUurKDlEczt?f**RhVCh|4XY5|+| z#cyqNrKQr=o~Q`dHlfEdW;Nz*fLkz*fLkz*fLkz*fLkz*fLk zz*fLkz*fLkz*fLkz*bHPq+gd4k7YH$zToZD!YIXg>#J~_cDj C8)HoX literal 0 HcmV?d00001 diff --git a/src/games_dat.js b/src/games_dat.js index d9beb7e54..51230b0b3 100644 --- a/src/games_dat.js +++ b/src/games_dat.js @@ -780,4 +780,39 @@ var games_gallery = [ "author": "nebu soku", "homepage": "https://nebu-soku.itch.io" }, + { + "url": "https://www.puzzlescript.net/play.html?p=74aa33ccefeb1255f90227bca5ea4076", + "thumb": "teleportgun.gif", + "title": "I Need To Stop My Teleport Gun", + "author": "duyaa", + "homepage": "https://confoundingcalendar.itch.io/" + }, + { + "url": "https://www.puzzlescript.net/play.html?p=361283c1cef6837b6563d25e8f01e444", + "thumb": "lightdown.gif", + "title": "Lightdown", + "author": "Stingby12", + "homepage": "https://stingby12.itch.io/" + }, + { + "url": "https://www.puzzlescript.net/play.html?p=7fe2230e6d59af738b85826dd62b6e1d", + "thumb": "treestar.gif", + "title": "Every Star Needs a Tree", + "author": "Toombler", + "homepage": "https://toombler.itch.io/" + }, + { + "url": "https://www.puzzlescript.net/play.html?p=44a295d7a2ab17a2048f555d72781a29", + "thumb": "longhaul.gif", + "title": "Long Haul Space Flight", + "author": "pap4qlxxlevb", + "homepage": "https://pap4qlxxlevb.itch.io/" + }, + { + "url": "https://www.puzzlescript.net/play.html?p=bc59f54ac76fd119991b250979de70e0", + "thumb": "caramel.gif", + "title": "Caramelban", + "author": "Notan", + "homepage": "https://notaninart.itch.io/" + }, ] From 6ed95f38801dbeb8560a71c008d77d964ef472e8 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 23 Feb 2022 02:14:44 +0100 Subject: [PATCH 023/122] fixes #832 - added lots of unit tests based on games lying around on github --- src/tests/resources/testdata.js | 52 +++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/src/tests/resources/testdata.js b/src/tests/resources/testdata.js index 9b6ab67f8..7d5f36ddb 100644 --- a/src/tests/resources/testdata.js +++ b/src/tests/resources/testdata.js @@ -1428,5 +1428,57 @@ var testdata = [ "[testing for recording through level-changes C] Don't asdlet your goals slip away", ["title Don't let your goals slip away\nauthor increpare [riff on david skinner's levels]\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\nbackground_color green\n\n\ncolor_palette 2\n========\nOBJECTS\n========\n\nBackground\nGREEN green\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nblack\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nDARKBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nlightgray lightgray lightgray lightgray\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange\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\nobstacle = crate or wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 78774307\ntarget move 81495507\nendlevel 52446100\nstartgame 73236703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n( [ > player | wall ] -> cancel )\n[ > player | crate | obstacle ] -> cancel\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > player | target ] -> [ > player | > target ] \n[ > target | target ] -> [ > target | > target ]\n[ > target | wall ] -> [ target | wall ]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 8\n\n(funny therefore good)\n####..\n#o*#..\n#..###\n#....#\n#.o*.#\n#.p###\n####..\n\n(meh)\n( ####.. )\n( #.o#.. )\n( #..### )\n( #o...# )\n( #*.*.# )\n( #.p### )\n( ####.. )\n\n\n\n(p. good!)\n..####...\n###..####\n#....*o.#\n#.#..#.o#\n#..*.#p.#\n#########\n\n( (Easy but funny) )\n( ###### )\n( #.*..# )\n( #.#.*# )\n( #....# )\n( #p*o.# )\n( #.oo.# )\n( ###### )\n\n\nmessage level 3 of 8\n\n(not bad)\n######\n##o..#\n#.#oo#\n#.*..#\n#.*..#\n#p*..#\n######\n\nmessage level 4 of 8\n\n########\n#...*..#\n#.o#.@p#\n#..*...#\n#####.o#\n....####\n\nmessage level 5 of 8\n\n\n\n(decent!)\n#####.\n#.*.##\n#.o.p#\n##.o.#\n.##.*#\n..##.#\n...###\n\nmessage level 6 of 8\n\n(fine right?)\n......###.\n#######o##\n#...*o...#\n#.#.#.#.##\n#.p.*...#.\n#########.\n\nmessage level 7 of 8\n(no idea. damnit spoiled but also ok.)\n####..\n#..#..\n#.*###\n#..*p#\n#..o.#\n#o.###\n####..\n\n\n\nmessage level 8 of 8\n(Tricky but also decent? involves fun manipulations)\n#######\n#..#..#\n#.o*o.#\n#.*p*##\n#.o*o.#\n#..#..#\n#######\n\n\nmessage Congratulations! You didn't let your goals run away from you.\n\n(transform\n\n[player]->[]\n[target]->[]\n[crate]->[]\n\nchoose 2 [] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player ] -> [ target ] \n\n)\n\n",[0,0,0,2,3,3,2,1,1,1,2,1,0,0,0],"background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,0,1,\n1,0,0,0,background crate:2,1,1,0,0,\n0,0,1,1,1,2,1,1,1,\n0,1,background target:3,0,background player:4,1,0,1,0,\n3,0,1,0,1,1,1,1,1,\n",1,"1645546878695.2927"] ], + +[ + "Wallnut chasing mouse chasing cat chasing dog chasing man", + ["title Wallnut chasing mouse chasing cat chasing dog chasing man\nauthor Stingby12\nhomepage https://stingby12.itch.io/\n\nnoaction\nrun_rules_on_level_start\n\nkey_repeat_interval 0.2\nagain_interval 0.2\n\ncolor_palette 5\n\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\nDogIdle\nLightbrown Black Red\n.....\n0.0..\n101..\n02000\n.0000\n\nDogActiveL\nLightbrown Black Red\n0.0..\n101.0\n02000\n.0000\n.0..0\n\nDogActiveR\nLightbrown Black Red\n..0.0\n0.101\n00020\n0000.\n0..0.\n\nCatIdle\nGray Black White\n.....\n0.0..\n101..\n00000\n.0220\n\nCatActiveL\nGray Black White\n0.0..\n101.0\n00000\n.0220\n.0..0\n\nCatActiveR\nGray Black White\n..0.0\n0.101\n00000\n0220.\n0..0.\n\nMouseIdle\nGray DarkGray Pink\n.....\n.....\n.....\n100..\n.000.\n\nMouseActiveL\nGray DarkGray Pink\n.....\n.....\n.....\n100..\n.0022\n\nMouseActiveR\nGray DarkGray Pink\n.....\n.....\n.....\n..001\n2200.\n\nWallnutIdle\nYellow Orange Blue\n.....\n.....\n..0..\n.011.\n..1..\n\nWallnutActive\nYellow Orange Blue\n..0..\n.011.\n.212.\n.2.2.\n22.22\n\nCrate\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\n(--Anim--)\n\nPlayerAnim\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nDogAnimL\nLightbrown Black Red\n0.0..\n101.0\n02000\n.0000\n.0..0\n\nDogAnimR\nLightbrown Black Red\n..0.0\n0.101\n00020\n0000.\n0..0.\n\nCatAnimL\nGray Black White\n0.0..\n101.0\n00000\n.0220\n.0..0\n\nCatAnimR\nGray Black White\n..0.0\n0.101\n00000\n0220.\n0..0.\n\nMouseAnimL\nGray DarkGray Pink\n.....\n.....\n.....\n100..\n.0022\n\nMouseAnimR\nGray DarkGray Pink\n.....\n.....\n.....\n..001\n2200.\n\nWallnutAnim\nYellow Orange Blue\n..0..\n.011.\n.212.\n.2.2.\n22.22\n\nSpawner\ntransparent\n\nSpawnButton\ntransparent\n\nHordeButton\ntransparent\n\nGoL\ntransparent\n\nGoR\ntransparent\n\nDelete\ntransparent\n\nAscendButton\ntransparent\n\nPlayerAscending1\nBlack Orange White Blue Lightbrown\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nPlayerAscending2\nBlack Orange White Blue Lightbrown\n.000.\n21112\n.222.\n.333.\n.3.3.\n\nPlayerAscending3\nBlack Orange White Blue Lightbrown\n.000.\n24142\n.222.\n.333.\n.3.3.\n\nNextStep\ntransparent\n\nLight\nyellow\n00000\n00000\n00000\n00000\n00000\n\nLightL\nyellow\n...00\n...00\n...00\n...00\n...00\n\nLightR\nyellow\n00...\n00...\n00...\n00...\n00...\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nD = DogIdle\nC = CatIdle\nM = MouseIdle\nW = WallnutIdle\n* = Crate\n@ = Crate and Target\nO = Target\n\nDogActive = DogActiveL or DogActiveR\nCatActive = CatActiveL or CatActiveR\nMouseActive = MouseActiveL or MouseActiveR\n\nDog = DogIdle or DogActive\nCat = CatIdle or CatActive\nMouse = MouseIdle or MouseActive\nWallnut = WallnutIdle or WallnutActive\n\n(--Anim--)\n\n+ = PlayerAnim\n% = PlayerAnim and Spawner\n& = PlayerAscending3 and Light\n§ = Light\nµ = Light and SpawnButton\n£ = Light and Delete\n- = Spawner\n? = SpawnButton\n! = HordeButton\n< = GoL\n> = GoR\nX = Delete\n/ = AscendButton\n\nDogAnim = DogAnimL or DogAnimR\nCatAnim = CatAnimL or CatAnimR\nMouseAnim = MouseAnimL or MouseAnimR\n\nAscend = PlayerAscending1 or PlayerAscending2 or PlayerAscending3\n\nAnim = PlayerAnim or DogAnim or CatAnim or MouseAnim or WallnutAnim\n\n=======\nSOUNDS\n=======\n\nstartgame 13270509\nendlevel 22256108\nendgame 22256108\nrestart 94088302\nundo 87693501\n\nCrate MOVE 25943107\nCatIdle MOVE 25943107\nMouseIdle MOVE 25943107\nWallnutIdle MOVE 25943107\n\nsfx0 86992703\nDogActive MOVE 47565107\nCatActive MOVE 36092905\nMouseActive MOVE 20048306\nWallnutActive MOVE 18695302\n\n(--Anim--)\n\nDogAnim create 47565107\nDogAnim move 47565107\nCatAnim create 36092905\nCatAnim move 36092905\nMouseAnim create 20048306\nMouseAnim move 20048306\nWallnutAnim create 18695302\nWallnutAnim move 18695302\n\nPlayerAscending3 destroy 58002102\n\nsfx1 52296908\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Dog, Cat, Mouse, Wallnut, Wall, Crate\n\n(--Anim--)\n\nLight, LightL, LightR\nSpawner, SpawnButton, HordeButton, GoL, GoR, Delete, AscendButton\nPlayerAnim, Ascend, DogAnim, CatAnim, MouseAnim, WallnutAnim\nNextStep\n\n======\nRULES\n======\n\n[> Player | Crate] -> [> Player | > Crate]\n[> Player | CatIdle] -> [> Player | > CatIdle]\n[> Player | MouseIdle] -> [> Player | > MouseIdle]\n[> Player | WallnutIdle] -> [> Player | > WallnutIdle]\n\nright [DogActiveL | ... | Player] -> [DogActiveR | ... | Player]\nleft [DogActiveR | ... | Player] -> [DogActiveL | ... | Player]\nright [CatActiveL | ... | DogActive] -> [CatActiveR | ... | DogActive]\nleft [CatActiveR | ... | DogActive] -> [CatActiveL | ... | DogActive]\nright [MouseActiveL | ... | CatActive] -> [MouseActiveR | ... | CatActive]\nleft [MouseActiveR | ... | CatActive] -> [MouseActiveL | ... | CatActive]\n\n[DogActive | ... | Player] -> [> DogActive | ... | Player]\n[CatActive | ... | DogActive] -> [> CatActive | ... | DogActive]\n[MouseActive | ... | CatActive] -> [> MouseActive | ... | CatActive]\n[WallnutActive | ... | MouseActive] -> [> WallnutActive | ... | MouseActive]\n\nlate [DogIdle | Player] -> [DogActiveL | Player] sfx0\nlate [CatIdle | DogActive] -> [CatActiveL | DogActive] sfx0\nlate [MouseIdle | CatActive] -> [MouseActiveL | CatActive] sfx0\nlate [WallnutIdle | MouseActive] -> [WallnutActive | MouseActive] sfx0\n\n(--Anim--)\n\n[Anim] [GoL] -> [left Anim] [GoL] again\n[Anim] [GoR] -> [right Anim] [GoR] again\n[Anim Delete] -> [Delete] again\n[PlayerAscending3 Delete] -> [Delete] again\n\n[PlayerAscending3] -> [up PlayerAscending3] again\n\nlate [PlayerAnim SpawnButton] [GoR] [Spawner] -> [PlayerAnim SpawnButton] [GoR] [DogAnimR Spawner]\nlate [PlayerAnim SpawnButton] [GoL] [Spawner] -> [PlayerAnim SpawnButton] [GoL] [DogAnimL Spawner]\nlate [PlayerAscending3 SpawnButton] [Spawner] -> [PlayerAscending3 SpawnButton] [DogAnimR Spawner]\n\nlate [DogAnim HordeButton] [GoR] [Spawner] -> [DogAnim HordeButton] [GoR] [CatAnimR Spawner]\nlate [DogAnim HordeButton] [GoL] [Spawner] -> [DogAnim HordeButton] [GoL] [CatAnimL Spawner]\nlate [CatAnim HordeButton] [GoR] [Spawner] -> [CatAnim HordeButton] [GoR] [MouseAnimR Spawner]\nlate [CatAnim HordeButton] [GoL] [Spawner] -> [CatAnim HordeButton] [GoL] [MouseAnimL Spawner]\nlate [MouseAnim HordeButton] [Spawner] -> [MouseAnim HordeButton] [WallnutAnim Spawner]\n\nlate [Ascend AscendButton] -> [Ascend NextStep AscendButton] again\n\nlate [PlayerAnim AscendButton] -> [PlayerAscending1 AscendButton] again\n\n[PlayerAscending1 NextStep] -> [PlayerAscending2]\n[PlayerAscending2 NextStep] -> [PlayerAscending3] sfx1 win\n\nleft [Light | no Light] -> [Light | LightL]\nright [Light | no Light] -> [Light | LightR]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nNo DogIdle\nNo CatIdle\nNo MouseIdle\nNo WallnutIdle\n\n(--Anim--)\n\nNo Anim\nNo Ascend\n\n=======\nLEVELS\n=======\n\nmessage \"I wonder if I'll get chased by something today\"\nmessage Level 1a of 4\n\n#####.\n#...##\n#.#p.#\n#.*@.#\n#.o@.#\n#....#\n######\n\nmessage \"Oh just great\"\nmessage Level 1b of 4\n\n#####.\n#..d##\n#.#p.#\n#.*@.#\n#.o@.#\n#....#\n######\n\nmessage \"There's more following me ?\"\nmessage Level 1c of 4\n\n#####.\n#mcd##\n#.#p.#\n#.*@.#\n#.o@.#\n#....#\n######\n\nmessage \"I don't need anything please stop following me\"\nmessage Level 2 of 4\n\n####..\n#.o#..\n#..###\n#@p..#\n#..*d#\n#c.m##\n#####.\n\nmessage \"There's not way this wallnut can chase me\"\nmessage Level 3a of 4\n\n####.....\n#..###.#.\n#.d..#...\n##.#.###.\n.#.mp..#.\n.###.#w##\n...#...c#\n.#.###..#\n.....####\n\nmessage \"Okay nevermind\"\nmessage Level 3b of 4\n\n####.....\n#..###.#.\n#.w..#...\n##.#.###.\n.#.mp..#.\n.###.#d##\n...#...c#\n.#.###..#\n.....####\n\nmessage \"They'll never stop following me until I'm stuck\"\nmessage Level 4a of 4\n\n...#######\n####...#w#\n#..#.m.#.#\n#..d.*.o.#\n##c#.*.o.#\n.###.p.###\n...#####..\n\nmessage \"But I still have one last trick up my sleeve\"\nmessage Level 4b of 4\n\n.......###.\n...#####w#.\n####...#.##\n#..#.m.#...\n#..d.*oo.##\n##c#.*...#.\n.###.p.###.\n...#####...\n\n(--Anim--)\n\n.........\n....>....\n.........\n.........\n%.!.?...x\n.........\n.........\n\n.........\n....<....\n.........\n.........\nx...?.!.%\n.........\n.........\n\n.........\n....>....\n.........\n.........\n%!....?.x\n.........\n.........\n\n.........\n....>....\n.........\n.........\n+.../....\n.........\n.........\n\nmessage \"I ascend !\"\n\n....£....\n.>..§....\n....§....\n....§....\n-!..µ...x\n....&....\n....§....\n\nmessage \"Goodbyeeeee...\"\n\n",[1,0,0,0,3,0,1,2,2,2,3,0,3,3,2,1,0,1,2,3,0,1,1,1,1,1,0,3,2,3,3,1,0,2,0,3,2,2,1,0,3,0,3,2,3,2,3],"background:0,0,background wall:1,1,1,1,0,0,0,0,1,\n0,0,1,1,0,0,0,1,0,0,0,\n1,0,0,1,1,1,0,1,1,1,0,\n1,0,0,0,0,0,1,0,1,0,background mouseactiver:2,\n0,background crate:3,3,1,0,1,0,background catactiver:4,background dogactiver target:5,0,0,\n1,1,1,1,1,background player target:6,0,1,1,1,background wallnutidle:7,\n0,0,0,0,1,0,1,1,1,0,1,\n1,1,0,0,0,1,0,1,0,0,0,\n",23,"1645578571689.1494"] + ], + [ + "Kettle, except something is off", + ["title Kettle, except something is off\nauthor Stingby12\nhomepage https://stingby12.itch.io/\n\ncolor_palette arnecolors\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(Moonwulk)\n\n[ up rpolice] -> [rpolice]\n[ down rpolice] -> [rpolice]\n[ left rpolice] -> [ left rpolice]\n\n[ down upolice] -> [ down upolice]\n[ left upolice] -> [upolice]\n[ right upolice] -> [upolice]\n\n[ up lpolice] -> [lpolice]\n[ down lpolice] -> [lpolice]\n[ right lpolice] -> [ right lpolice]\n\n[ up dpolice] -> [ up 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 You've been hit back by a smooth Kettle\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################\n\nmessage Area secure\nmessage What are these people in black doing ?!\n\n################\n#..............#\n#..............#\n#..............#\n#....kkkkkk....#\n#...lc..c.cj...#\n#...l......j...#\n#...lc.@tt.j...#\n#...l..t@tcj...#\n#...l..ttt.j...#\n#...lc..c..j...#\n#....iiiiii....#\n#..............#\n#..............#\n#..............#\n################\n\nmessage Area secure\nmessage We may be in trouble.\n\n##########\n#..k.....#\n#........#\n#..ltck.j#\n#..c..t..#\n#..t..c..#\n#l.ictj..#\n#........#\n#.....i..#\n##########\n\nmessage Area secure\nmessage KAW !\n\n###############\n#.............#\n#....k........#\n#......k......#\n#..l.c....k...#\n#......c.j....#\n#...l.@tt.c.j.#\n#.l.c.tt@.....#\n#.....t@t.....#\n#..l.c..c.j...#\n#.....i.......#\n#....i..i.....#\n#.............#\n#.............#\n###############\n\nmessage Area secure\nmessage Mickael Jackson was here.\nmessage Next time it will be Despacito.\n\n",[2,0,2,0,0,1,1,1,3,3,2,1,1,0,0,1,2,1,1,0,3,3,3,3,0,1,0,0],"background wall:0,0,0,0,0,0,0,0,0,0,\n0,background:1,1,background rpolice:2,1,1,1,1,1,0,\n0,1,1,background crate:3,1,1,2,1,1,0,\n0,background dpolice:4,3,background upolice:5,1,background target:6,3,1,1,0,\n0,1,1,6,1,1,background lpolice:7,1,1,0,\n0,1,1,1,1,1,6,1,1,0,\n0,4,3,5,6,1,1,1,1,0,\n0,1,1,7,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,0,\n",7,"1645562847734.9592"] + ], + [ + "Lightdown", + ["title Lightdown\nauthor Stingby12\nhomepage https://stingby12.itch.io/\n\nbackground_color #262626\n\nrun_rules_on_level_start\n\nkey_repeat_interval 0.3\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nPlayer\nWhite Black\n.000.\n01010\n00000\n01110\n.000.\n\nNormalWall\nWhite\n\nLightWall\nWhite Gray\n00000\n00100\n01110\n00100\n00000\n\nSolidWall\n#262626\n\nFakeWall\nTransparent\n\nLightCrate\nWhite #808080 Black\n.000.\n00100\n01010\n00100\n.000.\n\nNormalCrate\nWhite #808080 Black\n.000.\n00200\n02120\n00200\n.000.\n\nFakeCrate\nTransparent\n\nTarget\nWhite #808080\n.....\n.0.0.\n..1..\n.0.0.\n.....\n\nTargetActi\nWhite White\n.....\n.0.0.\n..1..\n.0.0.\n.....\n\nLightFew\nblack\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nLightMid\nblack\n.....\n.....\n.....\n.....\n.....\n\nLightFull\nblack\n.....\n.....\n.....\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n% = LightWall\n# = NormalWall and FakeWall\n- = SolidWall\n* = LightCrate\n@ = NormalCrate and FakeCrate\nx = Target\n\nLight = LightFull or LightMid or LightFew\nCrate = LightCrate or NormalCrate\nWall = NormalWall or LightWall or SolidWall\n\n=======\nSOUNDS\n=======\n\nstartgame 4133508\nendlevel 74089700\n\nCrate move 19432707\nrestart 14550505\n\nsfx0 10653902\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFakeWall\nNormalWall, LightWall\nTarget, TargetActi\nFakeCrate\nCrate\nLight\nSolidWall\nPlayer\n\n======\nRULES\n======\n\n(Clearing)\n[Light] -> []\n[TargetActi] -> [Target]\n\n(Basic movement)\n[> Player | Crate] -> [> Player | > Crate]\n[> Player | Wall] -> [Player | Wall]\n\n[> Player] [> Crate | Crate] -> [Player] [Crate | Crate]\n[> Player] [> Crate | Wall] -> [Player] [Crate | Wall]\n[> Crate FakeCrate | FakeCrate] -> [ | Crate FakeCrate] sfx0\n\n[> Crate FakeCrate] -> [> Crate > FakeCrate]\n\nlate [Target Crate] -> [TargetActi Crate]\nlate [Target FakeCrate] -> [TargetActi FakeCrate]\n\n(Lighting)\nlate [LightCrate] -> [LightFull LightCrate]\n+ late [LightWall] -> [LightFull LightWall]\n+ late [LightFull | no Light no SolidWall] -> [LightFull | LightMid]\n+ late [LightMid | no Light no SolidWall] -> [LightMid | LightFew]\n\n(Darkess effects)\nlate [NormalWall no Light] -> []\nlate [FakeWall Light] -> [FakeWall NormalWall Light]\n\nlate [NormalCrate no Light] -> []\nlate [FakeCrate Light] -> [FakeCrate NormalCrate Light]\n\n==============\nWINCONDITIONS\n==============\n\nNo Target\n\n=======\nLEVELS\n=======\n\nmessage It's so dark in here.\nmessage Maybe this lantern can help me find the way out.\n\nmessage Level 1 of 8\n\n###########\n#....#....#\n#...*#....#\n#p...#.*#x%\n#...*#....#\n#....#....#\n###########\n\nmessage Level 2 of 8\n\n#####%\n#....#\n#x.*.#\n#p####\n#x.*.#\n#....#\n#####%\n\nmessage Level 3 of 8\n\n.........\n.x...###.\n.x@.*p@#.\n.x...###.\n.........\n\nmessage Level 4 of 8\n\n########\n#.@@@@.#\n#..*.p.#\n#.xxxxx#\n########\n\nmessage Level 5 of 8\n\n.......\n.@.#.p.\n...#...\n.*.#.x.\n.......\n\nmessage Level 6 of 8\n\n.....######\n.....@@.xx%\n--*..@@pxx#\n.....@@.xx%\n.....######\n\nmessage Level 7 of 8\n\n###%#####%#####%###\n#.....#...*.#x.@..#\n#...@*#...*x#..*..#\n#p.x@x#...*.#x.@..#\n#...@*#...*x#..*..#\n#.....#...*.#x.@..#\n###%#####%#####%###\n\nmessage Level 8 of 8\n\n-######-\n##@@@@##\n#@xxxx@#\n#@x*xx@#\n#@xp*x@#\n#@xxxx@#\n##@@@@##\n-######-\n\nmessage I guess darkness is not that useless after all.\n\n",[0,1,1,1,1,1,1,2,3,3,2,1,2,1,0,3,0,0,1,1,2,3,2,3,3,0,0,3,1,3,2,"undo",1,2,3,"undo",0,1,1,2,3,0,3,3,3,2,"undo",0,3,1,2,2,3,3,3,"undo","undo",1,0,0,2,3,2,2,3,3,3,3,0,0,1,0,1,2,3,2,2,2,1,1,1,0,0,3,"undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo",2,"undo",3,2,2,2,1,1,1,1,0,0,0,3,2,3,"undo",1,3,2,"undo",1,2,3,3,2,3,3,1,"undo","undo","restart",1,1,1,1,0,1,2,3,2,2,1,1,0,3,3,"undo",2,3,3,0,3,"undo",0,3,3,2,1,2,1,0,2,1,1,0,3,3,0,"undo",0,2,1,0,0,3,3,"undo",3,"undo",0,3,3,2,3,2,1,2,1,2,1,0,0,0,1,1,"undo",1,3,1,1,2,3,2,3,2,3,0,0,0,3,3,3,3,3,2,1],"background:0,0,background solidwall:1,0,0,0,0,1,0,0,0,\n0,0,0,0,0,0,0,background lightfew:2,0,0,background fakecrate:3,\n2,background lightmid:4,2,background fakewall:5,2,background fakecrate lightmid normalcrate:6,background lightcrate lightfull:7,background fakewall lightmid normalwall:8,5,3,background fakecrate lightfew normalcrate:9,\n6,background fakewall lightfew normalwall:10,5,0,0,2,5,5,background lightfew target:11,background player target:12,11,\n5,10,background lightmid target:13,11,13,10,8,background lightfull lightwall:14,8,14,8,\n",13,"1645563041712.7258"] + ], + + + +[ + "I Need To Stop My Teleport Gun", + ["title I Need To Stop My Teleport Gun\nauthor duyaa\nhomepage https://confoundingcalendar.itch.io/\n\nagain_interval 0.1\nbackground_color #151244\ntext_color #f9cb60\n\n========\nOBJECTS\n========\n\nBackground \n#f9cb60 #f9960f #bc2f01\n00001\n01000\n00100\n00010\n10000\n\nSave\n#f9cb60 #f9960f #bc2f01\n01111\n10001\n10101\n10001\n11110\n\nSaveFinal\n#f9cb60 #f9960f #bc2f01\n01111\n10001\n10101\n10001\n11110\n\nPit\n#151244 #60117f #922a95\n00001\n01000\n00100\n00010\n10000\n\nPlayer\ntransparent #be7dbc #60117f #bc2f01\n03030\n02220\n21212\n02220\n02020\n\nDeadPlayer\ntransparent #be7dbc\n01010\n01110\n10101\n01110\n01010\n\nGun0\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n10000\n10000\n11111\n\nGun1\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n12000\n12000\n11111\n\nGun2\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n12300\n12300\n11111\n\nGun3\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n12340\n12340\n11111\n\nGun4\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n12345\n12345\n11111\n\nGunBroken1\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n12145\n12345\n11111\n\nGunBroken2\n#f9cb60 #680703 #151244 #bc2f01 #922a95 #be7dbc\n01010\n11111\n11315\n12145\n11111\n\nGunBroken3\n#f9cb60 #680703 #bc2f01 #f9960f #be7dbc\n01110\n11211\n12321\n11214\n11111\n\nGunBroken4\n#f9cb60 #680703 #bc2f01 #f9960f\n01210\n12321\n23032\n12321\n11211\n\nGunBroken5\n#f9cb60 #680703 #bc2f01 #f9960f\n12321\n23032\n30003\n23032\n12321\n\nGunBroken6\n#f9cb60 #bc2f01 #f9960f\n12021\n20002\n00000\n20002\n12021\n\nGunBroken7\n#f9cb60 #f9960f\n10001\n00000\n00000\n00000\n10001\n\nGunBroken8\n#f9cb60\n00000\n00000\n00000\n00000\n00000\n\nBulletD\ntransparent #be7dbc #922a95 #60117f\n00300\n00200\n02120\n00200\n00000\n\nBulletL\ntransparent #be7dbc #922a95 #60117f\n00000\n00200\n02123\n00200\n00000\n\nBulletR\ntransparent #be7dbc #922a95 #60117f\n00000\n00200\n32120\n00200\n00000\n\nBulletU\ntransparent #be7dbc #922a95 #60117f\n00000\n00200\n02120\n00200\n00300\n\nCrate\n#7f6962 #680703\n00000\n01110\n01110\n01110\n00000\n\nCrateUL\n#7f6962 #680703 transparent\n22220\n22200\n22010\n20110\n00000\n\nCrateUR\n#7f6962 #680703 transparent\n02222\n00222\n01022\n01102\n00000\n\nCrateDL\n#7f6962 #680703 transparent\n00000\n20110\n22010\n22200\n22220\n\nCrateDR\n#7f6962 #680703 transparent\n00000\n01102\n01022\n00222\n02222\n\nTempGun\ntransparent\n\nBorderCheck\ntransparent\n\nTempTele\ntransparent\n\nSolutionCheck\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n: = Save\n; = SaveFinal\nX = Pit and BorderCheck\n# = Pit\nP = Player\nG = Gun0\n0 = Crate\n1 = CrateUL\n2 = CrateUR\n3 = CrateDL\n4 = CrateDR\n5 = CrateUL and Save\n6 = CrateUR and Save\n7 = CrateDL and Save\n8 = CrateDR and Save\nB = CrateUR and SolutionCheck\nd = BulletD\nr = BulletR\nl = BulletL\nu = BulletU\n\nGun = Gun0 or Gun1 or Gun2 or Gun3 or Gun4\nGunBroken = GunBroken1 or GunBroken2 or GunBroken3 or GunBroken4 or GunBroken5 or GunBroken6 or GunBroken7 or GunBroken8\nGunOrGunBroken = Gun or GunBroken\nObject = Crate or CrateUL or CrateUR or CrateDL or CrateDR\nBullet = BulletD or BulletL or BulletR or BulletU\n\n( for bullet colliding )\nObjectD = Crate or CrateDL or CrateDR\nObjectL = Crate or CrateUL or CrateDL\nObjectR = Crate or CrateUR or CrateDR or Gun\nObjectU = Crate or CrateUL or CrateUR\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSave, Pit, SaveFinal, SolutionCheck\nGun, GunBroken, Object\nPlayer\nDeadPlayer\nBulletD\nBulletL\nBulletR\nBulletU\nTempGun\nBorderCheck\nTempTele\n\n======\nRULES \n====== \n\n( gun charging )\n[GunOrGunBroken] -> [GunOrGunBroken TempGun]\n[Gun0 TempGun] -> [Gun1 no TempGun]\n[Gun1 TempGun] -> [Gun2 no TempGun]\n[Gun2 TempGun] -> [Gun3 no TempGun]\n[Gun3 TempGun] -> [Gun4 no TempGun]\nright [Gun4 TempGun | no ObjectR] -> [Gun0 BulletR no TempGun | ]\nright [Gun4 TempGun | ObjectR] -> [GunBroken1 no TempGun | ObjectR] again\n( gun breaking )\n[GunBroken1 TempGun] -> [GunBroken2 no TempGun] again\n[GunBroken2 TempGun] -> [GunBroken3 no TempGun] again\n[GunBroken3 TempGun] -> [GunBroken4 no TempGun] again\n[GunBroken4 TempGun] -> [GunBroken5 no TempGun] again\n[GunBroken5 TempGun] -> [GunBroken6 no TempGun] again\n[GunBroken6 TempGun] -> [GunBroken7 no TempGun] again\n[GunBroken7 TempGun] -> [GunBroken8 no TempGun] win\n\n( bullet moving )\n[Bullet BorderCheck] -> [Player TempTele BorderCheck]\n[BulletD][Gun] -> [down BulletD][Gun]\n[BulletL][Gun] -> [left BulletL][Gun]\n[BulletR][Gun] -> [right BulletR][Gun]\n[BulletU][Gun] -> [up BulletU][Gun]\n( bullet and object colliding )\ndown [> BulletD | ObjectD] -> [stationary Player < TempTele | ObjectD]\nlate [ BulletD CrateUL] -> [ BulletL CrateUL]\nlate [ BulletD CrateUR] -> [ BulletR CrateUR]\nleft [> BulletL | ObjectL] -> [stationary Player < TempTele | ObjectL]\nlate [ BulletL CrateUR] -> [ BulletU CrateUR]\nlate [ BulletL CrateDR] -> [ BulletD CrateDR]\nright [> BulletR | ObjectR] -> [stationary Player < TempTele | ObjectR]\nlate [ BulletR CrateUL] -> [BulletU CrateUL]\nlate [ BulletR CrateDL] -> [BulletD CrateDL]\nup [> BulletU | ObjectU] -> [stationary Player < TempTele | ObjectU]\nlate [BulletU CrateDL] -> [ BulletL CrateDL]\nlate [BulletU CrateDR] -> [ BulletR CrateDR]\n( teleport collision recoiling )\n[> TempTele Object] -> [> TempTele > Object]\n\n( teleportation happening )\n[Player no TempTele][TempTele] -> [][TempTele]\n[DeadPlayer no TempTele][TempTele] -> [] [TempTele]\n[TempTele] -> []\n\n( player, object normally moving )\n[> Player | Object] -> [> Player | > Object]\n[> Object | stationary Object] -> [> Object | > Object]\n( cannot push gun )\n[> Player | GunOrGunBroken] -> [stationary Player | GunOrGunBroken]\n[> Object | GunOrGunBroken] -> [stationary Object | GunOrGunBroken]\n[> Object | stationary Object] -> [stationary Object | Object]\n[> Player | stationary Object] -> [stationary Player | Object]\n( pit )\nlate [Player Pit] -> [DeadPlayer Pit]\n[> Object | Pit] -> [ | Pit]\n( checkpoint )\nlate [SolutionCheck Bullet][SaveFinal] -> [Bullet][Save]\nlate [Player Save] -> [Player] checkpoint\n\n==============\nWINCONDITIONS\n============== \n\n======= \nLEVELS\n=======\n\nmessage Press X to wait. \n\nXXXXXXXXXXXXXXXXXXXX\nX#4##..####3##.###.X\nX####.2.###1##.###3X\nX##.....#####:4#3#0X\nX##.4.#..####..####X\nX###...#.#####2#1##X\nX###.#...###4#####1X\nX.80.######.60#####X\nX#23###0..####...##X\nX#4.#3#4;0G.##.:0#3X\nX##...#.....##...##X\nX##.1.0###..#####..X\nX###..#B####23##0:1X\nX##0#.###.##41###4.X\nX###0:0.#4..213####X\nX####0.0#.....#0:1.X\nX0:..############1#X\nX#.2.###014.0#23###X\nX#..########1##2.0#X\nX####0######4##1###X\nX########2.10######X\nXXXXXXXXXXXXXXXXXXXX\n\nmessage I'm freeeeeeeee!\n\n",[4,4,4,4,4,4,4,4,4,4,0,3,2,1,4,4,4,4,4,4,4,4,0,3,2,4,4,1,1,3,0,3,1,4,4,4,4,4,4,4,4,3,3,4,"undo","undo",4,4,4,4,4,1,4,4,4,4,2,2,3,0,2,2,3,0,3,0,2,2,"undo","undo","undo","undo",3,2,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0],"background bordercheck pit:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background pit:1,1,1,1,1,1,background:2,1,1,1,1,1,1,1,1,background crate:3,1,\n1,1,1,0,0,background cratedr:4,1,1,1,1,1,background cratedr save:5,background crateur:6,background bulletr cratedr:7,1,1,1,1,background bulletu pit:8,1,\n6,2,2,1,1,0,0,1,1,2,2,1,1,3,background cratedl:9,2,2,2,1,3,\n1,1,2,2,2,1,1,0,0,1,1,2,4,2,2,2,1,1,2,background crateul:10,\n2,1,3,1,2,2,1,1,1,0,0,2,2,2,2,2,1,1,1,9,\n2,background bulletd:11,2,background player:12,2,3,background bulletl pit:13,1,1,3,1,0,0,2,6,2,1,2,2,1,\n1,1,1,3,1,1,3,2,1,1,1,1,1,0,0,1,2,2,2,1,\n2,1,3,4,2,1,background crateur solutioncheck:14,1,2,3,1,1,1,1,1,0,0,1,1,1,\n2,2,2,1,2,background savefinal:15,2,1,1,1,1,1,1,3,1,1,1,0,0,1,\n1,1,1,1,1,1,2,3,2,1,1,2,4,2,1,10,1,1,6,0,\n0,1,1,1,1,1,1,1,1,background gun2:16,2,2,1,1,2,2,13,4,1,1,\n2,0,0,9,10,1,1,1,1,2,1,2,2,2,1,1,2,2,1,2,\n1,1,10,0,0,1,1,1,1,1,4,background crateur save:17,1,1,1,1,6,4,6,2,\n1,3,10,4,3,0,0,1,1,background save:18,2,1,1,3,1,background bulletr pit:19,1,1,9,10,\n10,2,1,1,1,1,1,0,0,2,2,4,2,6,1,1,2,2,2,1,\n1,1,9,1,1,6,1,1,1,0,0,1,1,1,1,1,1,1,2,2,\n2,1,1,1,1,3,13,9,6,10,1,0,0,1,1,9,1,10,1,1,\n2,2,3,1,2,1,1,2,1,1,2,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,2,2,background bulletd cratedr:20,1,2,10,1,3,1,1,0,0,2,9,3,\n1,1,10,1,1,background bulletd cratedl:21,1,2,2,10,1,10,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",1,"1645578752808.7263"] + ], + [ + "City road builder", + ["title City road builder\nauthor Stingby12\nhomepage https://confoundingcalendar.itch.io/\n\nbackground_color #60117f\ntext_color #f9960f\n\nnoundo\nagain_interval 0.05\nrun_rules_on_level_start\n\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\n#151244\n\nHouseNeut\n#bc2f01\n.....\n.000.\n.000.\n.000.\n.....\n\nHouseWonrg\n#922a95\n.....\n.000.\n.000.\n.000.\n.....\n\nHouseRight\n#680703\n.....\n.000.\n.000.\n.000.\n.....\n\nIntersect\n#922a95\n.....\n..0..\n.000.\n..0..\n.....\n\nWall\n#60117f\n\nPlayer\n#f9cb60 #f9960f\n.....\n.0.0.\n..1..\n.0.0.\n.....\n\nPlayerDone\n#f9cb60 #f9960f\n.....\n.....\n..1..\n.....\n.....\n\nStartpos\n#be7dbc\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nPathL\n#f9960f\n.....\n.....\n000..\n.....\n.....\n\nPathR\n#f9960f\n.....\n.....\n..000\n.....\n.....\n\nPathU\n#f9960f\n..0..\n..0..\n..0..\n.....\n.....\n\nPathD\n#f9960f\n.....\n.....\n..0..\n..0..\n..0..\n\nCorner\ntransparent\n\nStraight\ntransparent\n\nCantmove\ntransparent (#be7dbc)\n.....\n.....\n..0..\n.....\n.....\n\nCornerWonrg\n#680703\n..0..\n.0.0.\n0...0\n.0.0.\n..0..\n\nCantWin\ntransparent\n\nWillWin\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nO = HouseNeut\n+ = Intersect\nP = Player and Startpos\n\nPath = PathL or PathR or PathU or PathD\nHouse = HouseNeut or HouseWonrg or HouseRight\nWonrg = HouseWonrg or HouseNeut or CornerWonrg\n\n=======\nSOUNDS\n=======\n\nendlevel 57894308\nstartgame 74954908\n\nsfx0 92660707\nsfx1 65428907\n\nsfx2 94788500\nsfx3 78837102\n\nsfx4 52715504\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n\nCorner\nStraight\n\nCornerWonrg\nStartpos\nHouse\nIntersect\n\nPathL\nPathR\nPathU\nPathD\n\nPlayer, PlayerDone\nWall\n\nCantmove\nCantWin\nWillWin\n\n======\nRULES\n======\n\n(clearing)\n[Cantmove no Path] -> []\n[Cantwin] -> []\n\n[WillWin] -> Win\n\n(check win conditions)\n[Player] [CornerWonrg] -> [Player CantWin] [CornerWonrg]\n[Player] [HouseNeut] -> [Player CantWin] [HouseNeut]\n[Player] [HouseWonrg] -> [Player CantWin] [HouseWonrg]\nup [up Player no CantWin|Startpos] -> [PathU|PathD PlayerDone WillWin]\ndown [down Player no CantWin|Startpos] -> [PathD|PathU PlayerDone WillWin]\nleft [left Player no CantWin|Startpos] -> [PathL|PathR PlayerDone WillWin]\nright [right Player no CantWin|Startpos] -> [PathR|PathL PlayerDone WillWin]\n[WillWin] -> again\n\n(moves)\n(forward move)\nright [right Player|no Wall no Cantmove] -> [PathR|PathL Player] sfx0\nright [no Wall no Cantmove|left Player] -> [Player PathR|PathL] sfx0\ndown [down Player|no Wall no Cantmove] -> [PathD|PathU Player] sfx0\ndown [no Wall no Cantmove|up Player] -> [Player PathD|PathU] sfx0\n(backwards undo moves)\nright [> Player PathR | PathL ] -> [|Player] sfx1\ndown [> Player PathD | PathU ] -> [|Player] sfx1\nleft [> Player PathL | PathR ] -> [|Player] sfx1\nup [> Player PathU | PathD ] -> [|Player] sfx1\n\n(VERY IMPORTANT)\n[> Player] -> [Player]\n[Path] -> [Path Cantmove]\n\n(paths)\n(straight)\nlate [PathL PathR] -> [PathL PathR Straight]\nlate [PathU PathD] -> [PathU PathD Straight]\n(corner)\nlate [PathL PathU] -> [PathL PathU Corner]\nlate [PathU PathR] -> [PathU PathR Corner]\nlate [PathR PathD] -> [PathR PathD Corner]\nlate [PathD PathL] -> [PathD PathL Corner]\n(can't turn on empty)\nlate [Corner no House no Intersect no CornerWonrg] -> [Corner CornerWonrg] sfx3\n[CornerWonrg no Corner] -> [] sfx4\n(clearing)\nlate [Straight PathL no PathR] -> [PathL] again\nlate [Straight PathR no PathL] -> [PathR] again\nlate [Straight PathU no PathD] -> [PathU] again\nlate [Straight PathD no PathU] -> [PathD] again\n\nlate [Corner PathL no PathU no PathD] -> [PathL] again\nlate [Corner PathR no PathU no PathD] -> [PathR] again\nlate [Corner PathU no PathL no PathR] -> [PathU] again\nlate [Corner PathD no PathL no PathR] -> [PathD] again\n\n(turning)\nlate [Corner HouseNeut] -> [Corner HouseRight] sfx2\nlate [Straight HouseNeut] -> [Straight HouseWonrg] sfx3\n[HouseRight no Corner] -> [HouseNeut] sfx4\n[HouseWonrg no Straight] -> [HouseNeut] sfx4\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\nmessage Build a road that turns at every houses, then return to his original position, forming a loop.\nmessage Move backwards to undo.\n\n++..+.+o+\n.........\n.o.+o....\n....+.o++\n.p.####..\n...####..\n.+.....o+\n...+.o..+\n+..+.+...\n\nmessage You are hired !\nmessage -- Made for The CONFOUNDING Calendar --\n\n",[0,0,0,0,3,3,3,2,2,1,"undo","undo",3,0,0,3,3,2,2,2,3,1,0,0,0,3,3,2,2,2,1,1,1,1,0,0,3,3,1,1,2,1,1],"background intersect:0,background:1,1,1,1,1,1,1,0,\nbackground cantmove corner intersect pathd pathr:2,background cantmove pathd pathu straight:3,background cantmove housewonrg pathd pathu straight:4,3,background cantmove pathu startpos:5,1,0,1,1,\nbackground cantmove pathl pathr straight:6,1,background cantmove pathr player:7,1,1,1,1,1,1,\n6,1,background cantmove cantwin intersect pathl pathr straight:8,1,background wall:9,9,1,0,0,\nbackground cantmove intersect pathl pathr straight:10,1,background cantmove corner houseright pathd pathl:11,background cantmove corner intersect pathr pathu:12,9,9,1,1,1,\n6,1,1,6,9,9,1,background houseneut:13,0,\n10,1,1,background cantmove housewonrg pathl pathr straight:14,9,9,1,1,1,\n14,1,1,10,1,1,13,1,1,\nbackground cantmove corner intersect pathd pathl:15,3,3,background cantmove corner intersect pathl pathu:16,1,1,0,0,1,\n",2,"1645569075149.173"] + ], + [ + "Every Star Needs a Tree", + ["title Every Star Needs a Tree\nauthor Toombler\nhomepage https://toombler.itch.io/\n\nbackground_color #60117f\ntext_color #be7dbc\n\nrun_rules_on_level_start\n\nrealtime_interval 0.05\n\nnoaction (remove this line to enable turning off the display with action)\n\n========\nOBJECTS\n========\n\n(\nPALETTE\n)\n\nCol1\n#151244\n\nCol2\n#60117f\n\nCol3\n#922a95\n\nCol4\n#be7dbc\n\nCol5\n#350828\n\nCol6\n#7f6962\n\nCol7\n#f9cb60\n\nCol8\n#f9960f\n\nCol9\n#bc2f01\n\nCol10\n#680703\n\n\n\n\n\nBackground\n#89228c #922a95\n00000\n01110\n01110\n01110\n00000\n\n\nWall\n#60117f\n\n\nPlayer\n#151244 #f9960f #be7dbc #151244\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nUnsatisfiedStar\n#f9960f\n0...0\n.000.\n.000.\n.000.\n0...0\n\nSatisfiedStar\n#f9cb60\n0...0\n.000.\n.000.\n.000.\n0...0\n\n\nTreeTrunk\n#151244\n0000.\n.0000\n0000.\n.0000\n.000.\n\nTreeTop\n#151244 #89228c\n11011\n10001\n00001\n10000\n10001\n\nProtectedTree\n#be7dbc (#f9960f )\n..0..\n.....\n0..0.\n.0...\n...0.\n\n\n\n\nTreeTrunkDissolveCopy\n#151244\n0000.\n.0000\n0000.\n.0000\n.000.\n\nTreeTopDissolveCopy\n#151244 #89228c\n11011\n10001\n00001\n10000\n10001\n\nDissolve0\n#89228c #922a95\n..0..\n0..1.\n.....\n.1...\n...0.\n\nDissolve1\n#89228c #922a95\n.00..\n0.11.\n..1..\n.1...\n..00.\n\nDissolve2\n#89228c #922a95\n.00..\n0.11.\n011..\n.1.00\n.000.\n\nDissolve3\n#89228c #922a95\n000..\n0.11.\n0111.\n.1.10\n.000.\n\nDissolve4\n#89228c #922a95\n00000\n01110\n01110\n01.10\n00000\n\n\nAboveTreeTop\ntransparent\n\n\nScoreStart\ntransparent\n\nScoreSatisfied\n#f9cb60\n.....\n.000.\n00000\n.000.\n.....\n\nScoreUnsatisfied\n#350828\n.....\n.000.\n00000\n.000.\n.....\n\nTempCountedStar\nblack\n\nScoreToggled\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n# = Wall\n\nS = UnsatisfiedStar\nX = SatisfiedStar\nstar = UnsatisfiedStar or SatisfiedStar\n\nT = TreeTrunk\nTree = TreeTrunk or TreeTop\n\nB = ScoreStart and wall\nScore = ScoreSatisfied or ScoreUnsatisfied\n\nDissolve = Dissolve0 or Dissolve1 or Dissolve2 or Dissolve3 or Dissolve4\nTreeDissolveCopy = TreeTrunkDissolveCopy or TreeTopDissolveCopy\n\nCol = Col1 or Col2 or Col3 or Col4 or Col5 or Col6 or Col7 or Col8 or Col9 or Col10\n\n=======\nSOUNDS\n=======\n\nstar MOVE 35528507 (36772507)\nPlayer move 63208907\n\n\nSatisfiedStar create 70313100\nUnsatisfiedStar create 55575100 (54449300) (59228107) (49933904) (15540904)\n\nstartgame 51532700 (75654300)\nendgame 38823100\n\n\nsfx1 78866304 (27218109) (89389102) (4099902) (67740500) (6235507)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nCol\nAboveTreeTop\n\nPlayer, UnsatisfiedStar, SatisfiedStar, TreeTrunk, Wall\n\nTreeTrunkDissolveCopy\nTreeTopDissolveCopy\nDissolve\n\nTreeTop\nProtectedTree\n\n\nTempCountedStar\nScoreToggled\nScoreStart\nScoreSatisfied, ScoreUnsatisfied\n\n\n======\nRULES\n======\n\n(push stars)\n[ > Player | Star ] -> [ > Player | > Star ]\n\n\n(dissolve animation)\n[ Dissolve4 TreeDissolveCopy ] -> []\n[ Dissolve3 ] -> [ Dissolve4 ]\n[ Dissolve2 ] -> [ Dissolve3 ]\n[ Dissolve1 ] -> [ Dissolve2 ]\n[ Dissolve0 ] -> [ Dissolve1 ]\n\n\n\n(stars protect trees below them)\nlate [ ProtectedTree ] -> []\nlate down [ Star | TreeTrunk ] -> [ Star | TreeTrunk ProtectedTree ]\nlate down [ ProtectedTree | TreeTrunk ] -> [ ProtectedTree | ProtectedTree TreeTrunk ]\n\n(stars kill unprotected trees)\nlate [ star | Treetrunk no ProtectedTree ] -> [ star | TreeTrunkDissolveCopy Dissolve0 ] sfx1\nlate [ TreeTop TreeTrunkDissolveCopy ] -> [ TreeTopDissolveCopy ]\n\n\n(tree top sprite)\nlate [ TreeTop ] -> []\nlate up [ TreeTrunk | no TreeTrunk ] -> [ TreeTrunk TreeTop | ]\n\n(check if stars have a tree)\nlate down [ UnsatisfiedStar | TreeTop ] -> [ SatisfiedStar | TreeTop ]\nlate down [ SatisfiedStar | no TreeTop ] -> [ UnsatisfiedStar | ] \n\n\n\n(score stuff)\nlate [ Score ] -> []\nlate right [ SatisfiedStar no TempCountedStar ][ ScoreStart | no Score ] -> [ SatisfiedStar TempCountedStar ][ ScoreStart | ScoreSatisfied ]\nlate right [ SatisfiedStar no TempCountedStar ][ Score | no Score ] -> [ SatisfiedStar TempCountedStar ][ Score | ScoreSatisfied ]\nlate right [ UnsatisfiedStar no TempCountedStar ][ ScoreStart | no Score ] -> [ UnsatisfiedStar TempCountedStar ][ ScoreStart | ScoreUnsatisfied ]\nlate right [ UnsatisfiedStar no TempCountedStar ][ Score | no Score ] -> [ UnsatisfiedStar TempCountedStar ][ Score | ScoreUnsatisfied ]\nlate [ TempCountedStar ] -> []\n\n[ action Player ][ ScoreStart no ScoreToggled ] -> [ Player ][ ScoreStart ScoreToggled ] \n[ action Player ][ ScoreStart ScoreToggled ] -> [ Player ][ ScoreStart ] \nlate [ Score ][ ScoreToggled ] -> [ ][ ScoreToggled ]\n\n\n==============\nWINCONDITIONS\n==============\n\nno UnsatisfiedStar\n\n\n=======\nLEVELS\n=======\n\n\n\n(things:\n- can't destroy from top\n- use star to free other star\n- use star to make path to other area\n- 4 high = can fit two stars\n)\n\n\n###################\n###################\n#######........####\n###...t.....t..##..\n###.x.t.....t..##s.\n####t##..s..t..##..\n....t.......t..#.s.\n....t.......t..#.s.\n..tttt#t#...t.##t..\n....#...#.p.t...t..\n#####s.s#..........\n#####...#t#########\n###################\n#####b#############\n###################\n\nmessage Thanks For Playing!\n\n(hold right\n................................\np.x.............................\n..t.tt.tt.t.t.t...tt.tt.t.t.t.t.\n................................\n..s.............................\n)\n\n(\n..........\n....s.....\n.t....s...\n.t.....t..\n.t.t.s.t..\n.t.t......\n...t..p...\n..........\n)\n\n\n\n\n\n\n\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",0,"tick","tick","tick",0,"tick","tick","tick",0,"tick","tick",1,"tick","tick",0,"tick","tick","tick","tick","tick","tick","tick","tick",1,"tick",0,"tick","tick","tick",3,"tick","tick",3,"tick","tick","tick","tick","tick","tick","tick","tick","tick",0,"tick","tick","tick",3,"tick","tick","tick","tick",2,"tick","tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick","tick",3,"tick","tick","tick",0,"tick","tick","tick",3,"tick",0,"tick","tick",1,"tick","tick","tick","tick",2,"tick",1,"tick","tick",0,"tick","tick","tick",0,"tick","tick",1,"tick",0,"tick","tick",3,"tick","tick","tick","tick",3,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick",0,"tick","tick","tick",1,"tick","tick","tick",3,"tick","tick",3,"tick","tick",2,"tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",3,"tick",0,"tick","tick","tick",0,"tick","tick","tick",0,"tick","tick","tick",0,"tick","tick","tick","tick","tick","tick","tick",2,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",0,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick","tick","tick","tick","tick","tick",3,"tick","tick",2,"tick","tick","tick",2,"tick","tick",2,"tick","tick",1,"tick","tick","tick",1,"tick","tick",0,"tick","tick","tick",0,"tick","tick","undo","tick","tick","tick","tick","undo","tick","tick","tick","undo","tick","tick","tick","undo","tick","tick","tick","tick","undo","tick","tick","tick","undo","tick","tick","tick","tick","undo","tick","tick","tick","undo","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",3,"tick","tick","tick",0,"tick","tick","tick",0,"tick","tick","tick",1,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick",3,"tick","tick",2,"tick",1,"tick","tick","tick","tick",1,"tick","tick","tick",1,"tick","tick","tick",1,"tick","tick","tick",1,"tick","tick","tick",1,"tick","tick","tick",1,"tick","tick","tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",3,"tick","tick","tick",3,"tick","tick",0,"tick","tick","tick","tick","tick","tick","tick",3,"tick",0,"tick","tick","tick",0,"tick","tick","tick",0,"tick","tick","tick","tick",0,"tick","tick","tick",1,"tick","tick","tick","tick",1,"tick","tick","tick",1,"tick","tick","tick",1,"tick",1,"tick","tick",1,"tick","tick","tick","tick",2,"tick",1,"tick","tick","tick",1,"tick","tick","tick",1,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",3,2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",3,"tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",2,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick",0,"tick","tick",0,"tick",3,"tick","tick",0,"tick","tick",3,"tick","tick",0,"tick","tick","tick",0,"tick","tick","tick",0,"tick","tick","tick",0,"tick",1,"tick","tick","tick",2,"tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick","tick","tick","tick","tick","tick",3,"tick",2,"tick","tick",1,"tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background wall:0,0,0,0,0,0,background:1,1,1,1,0,0,0,0,0,0,0,0,0,\n0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,\nbackground treetop treetrunk:2,1,0,0,0,0,0,0,0,0,1,1,0,1,1,2,1,0,0,\n0,0,0,0,0,0,1,background satisfiedstar:3,background protectedtree treetop treetrunk:4,background protectedtree treetrunk:5,5,5,0,0,0,0,0,0,0,\n0,0,1,1,0,1,1,2,1,background unsatisfiedstar:6,1,0,background scorestart wall:7,0,0,0,0,2,background treetrunk:8,\n0,1,1,0,1,1,1,0,background scoresatisfied wall:9,0,0,0,1,1,1,1,1,1,2,\n1,6,1,0,9,0,0,0,1,1,1,1,1,1,0,0,0,0,0,\n9,0,0,0,1,1,1,1,1,1,1,1,3,4,0,9,0,0,0,\n1,1,1,1,1,1,1,1,1,0,0,background scoreunsatisfied wall:10,0,0,0,1,1,1,1,\n1,1,1,1,1,0,0,10,0,0,0,3,4,1,1,2,8,8,1,\n1,0,0,10,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,\n0,0,0,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,\n0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,\n3,4,5,1,0,0,0,0,0,0,0,1,1,1,1,1,1,6,1,\n0,0,0,0,0,0,0,1,1,1,1,1,1,background player:11,1,0,0,0,0,\n",0,"1645569315086.5925"] + ], + [ + "Long Haul Space Flight", + ["title Long Haul Space Flight\nauthor pap4qlxxlevb\nbackground_color darkblue\ntext_color lightblue\n\n========\nOBJECTS\n========\n\nBackground\nlightgray gray\n00000\n00000\n00100\n00000\n00000\n\nTarget\n#ffff22 lightgray\n.....\n.000.\n.010.\n.000.\n.....\n\nWall\ndarkgray gray\n00000\n00000\n00000\n00000\n00000\n\nPlayer\nBlack Orange white darkblue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nCrate\nlightblue #668899\n01110\n01110\n11111\n01110\n01010\n\nCryo\nblue lightgrey\n.....\n..0..\n.010.\n..0..\n.....\n\nDefunct\ngrey lightgray\n.....\n..0..\n.010.\n..0..\n.....\n\nThaw\nred lightgray\n.....\n.0.0.\n..1..\n.0.0.\n.....\n\nDthaw\ngrey lightgray\n.....\n.0.0.\n..1..\n.0.0.\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\nw = Wall\nP = Player\no = Crate\ns = Crate and Target\nx = Target\nc = Cryo\nt = Thaw\n\n=======\nSOUNDS\n=======\n\nPlayer move 81907\nCrate MOVE 96378700\nPlayer cantmove 16386304\nendlevel 55294100\nstartgame 5822103\ncrate create 49604100\nplayer create 59446908\n\n================\nCOLLISIONLAYERS\n================\n\nBackground, \nDefunct, dthaw\nTarget, Cryo, Thaw \nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate [ Player Cryo ] -> [ Crate Defunct]\n\nlate [ Crate Thaw ] -> [ Player Dthaw]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nsome Player\n\n=======\nLEVELS\n=======\n\nmessage \"It's gonna be a long, long flight. Make sure all our passengers are in their seats.\"\n\nmessage level 1 of 12\n\nwwwwwww\nwwwwxxw\nww.o..w\nwp.o.ow\nww.o..w\nwwwwxxw\nwwwwwww\n\nmessage \"Looks like someone's arrived late. Help them onboard, will ya?\"\n\nmessage level 2 of 12\n\nwwwwwww\nwwwwx.w\nww...ow\nwpp.c.w\nww....w\nwwww.xw\nwwwwwww\n\nmessage \"Honestly, you'd think people would have the decency to turn up to their cryonic space flight on time!\"\n\nmessage level 3 of 12\n\nwwwwwwwww\nwwwwxwwww\nww.o.o.ww\nwp.....xw\nww.p.c.ww\nwwwwxwwww\nwwwwwwwww\n\nmessage \"If they're gonna arrive late, they can at least help with packing everyone up.\"\n\nmessage level 4 of 12\n\nwwwwwwwww\nwpxw.c.xw\nw.p..o..w\nwp.w.cxww\nwwwwwwwww\n\nmessage \"They're lucky, they won't even feel the years pass. Not like us.\"\n\nmessage level 5 of 12\n\nwwwwwwww\nwxc..wxw\nwwo.p..w\nwwp.c..w\nwwo.p..w\nwx....xw\nwwwwwwww\n\n\nmessage \"From their perspective 75 years will pass in a blink of an eye.\"\n\nmessage level 6 of 12\n\nwwwwwwww\nwwxwwwww\nwwc..www\nww.oxwww\nwwpp..ww\nwwwwwwww\n\nmessage \"It'll be our grandkids who thaw them out on the other side.\"\n\nmessage level 7 of 12\n\nwwwwwww\nwt....w\nw.w.wpw\nw..c..w\nwow.w.w\nw....xw\nwwwwwww\n\nmessage \"I guess we're still lucky in our own way, winning the maintenance raffle.\"\n\nmessage level 8 of 12\n\nwwwwww\nww.cxw\nw.potw\nwto..w\nwxc.ww\nwwwwww\nwwwwww\nmessage \"I'd rather spend those 75 years in here than back on our ruined planet.\"\n\nmessage level 9 of 12\n\nwwwwwww\nwwt.o.w\nwwoww.w\nwp..x.w\nwwww.ww\nwwxc.ww\nwwwwwww\n\nmessage \"Wonder if they'll even remember us once they arrive...\"\n\nmessage level 10 of 12\n\nwwwwwwwwwww\nwwwww.wxx.w\nw....tw.cww\nw.o.w.w..ww\nwp.owt..cww\nw.o.w.w...w\nw....twxc.w\nwwwwwwwwwww\n\nmessage \" ... We've got a long trip ahead of us.\"\n\nmessage level 11 of 12\n\nwwwwww\nw....w\nwpoo.w\nw..o.w\nwwwtww\nwx...w\nwxxc.w\nwwwwww\n\nmessage \"If I am gonna grow old and die on this godforsaken ship...\"\n\nmessage level 12 of 12\n\nwwwwwwwwwwww\nwwwwwwww.www\nwwwwwwxw...w\nw.....twx.ww\nw.o.ww.ww.ww\nwpcow....t.w\nw.o.w.wwcc.w\nw....tw...xw\nwwwwwwwwwwww\n\nmessage \"...I'm glad I get to grow old with you.\"\n\nwwwwwww\nwwwwxxw\nwwpo..w\nw..o.ow\nwwpo..w\nwwwwxxw\nwwwwwww\n\nmessage The End :)\n\n\n",[3,2,1,2,3,3,3,1,0,3,0,0,2,0,3,3,3,2,2,2,3,3,0,0,0,3,2,3,3,2,3,0,0,0,2,"undo",1,2,1,1,2,2,1,1,1,0,1,0,0,0,3,3,3,2,2,3,3,2,2,3,3,3,2,3,2,1,0,0,0,1,3,0],"background wall:0,0,0,0,0,0,0,0,0,0,background:1,\n1,1,1,1,0,0,0,1,background crate:2,1,1,\n1,0,0,0,1,1,1,1,1,0,0,\n0,1,0,0,0,1,0,0,1,background dthaw:3,1,\nbackground thaw:4,1,3,0,0,0,0,0,1,0,0,\n0,0,background target:5,1,1,1,1,background crate target:6,0,0,6,\nbackground crate defunct:7,1,background defunct:8,1,8,0,0,1,0,0,0,\n1,1,0,0,0,0,0,0,0,0,0,\n",29,"1645570541337.319"] + ], + [ + "Caramelban", + ["title Caramelban\nauthor Notan\nhomepage https://notaninart.itch.io/\nbackground_color #be7dbc\ntext_color #350828\nrun_rules_on_level_start\nnoaction\n\n========\nOBJECTS\n========\n\nPalette1\n#151244 #60117f #922a95 #be7dbc #350828\n01234\n12340\n23401\n34012\n40123\n\nPalette2\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n01234\n12340\n23401\n34012\n40123\n\nBackground\n#151244 #60117f #922a95 #be7dbc #350828\n33333\n33333\n33333\n33333\n33333\n\nTarget\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.5555\n.5..5\n.5..5\n.5555\n.....\n\nPlayerR\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.222.\n.2222\n.060.\n.666.\n.....\n\nPlayerL\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n..222\n.2222\n..060\n..666\n.....\n\nCaramel1\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.2222\n.2333\n.3322\n.2222\n.....\n\nCaramel2\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.1111\n.1222\n.2211\n.1111\n.....\n\nEdgeH\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.....\n.....\n.....\n.....\n.3333\n\nEdgeV\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n3....\n3....\n3....\n3....\n.....\n\nEdgeC\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.....\n.....\n.....\n.....\n3....\n\nStopCaramel\ntransparent\n\nStopH\ntransparent\n\nStopV\ntransparent\n\nStopC\ntransparent\n\nStretchUp\ntransparent\n\nStretchLeft\ntransparent\n\nStretchDown\ntransparent\n\nStretchRight\ntransparent\n\nWall\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.1222\n.2112\n.1212\n.1121\n.....\n\nWallH\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.....\n.....\n.....\n.....\n.2211\n\nWallV\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n1....\n1....\n2....\n2....\n.....\n\nWallC\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.....\n.....\n.....\n.....\n2....\n\nWalkMarker\ntransparent\n\n=======\nLEGEND\n=======\n\nPalette = Palette1 or Palette2\nX = Palette1\nY = Palette2\n\nPlayer = PlayerR or PlayerL\nCaramel = Caramel1 or Caramel2\nObstacle = Wall or Caramel\n\nEdgeX = EdgeH and EdgeV\nEdge = EdgeH or EdgeV or EdgeC\n\nStopEdge = StopH or StopV or StopC\nStretch = StretchUp or StretchLeft or StretchDown or StretchRight\n\n. = Background\n# = Wall\nP = PlayerR\n* = Caramel1\n% = Caramel2\nT = Target\n\n=======\nSOUNDS\n=======\n\nsfx0 30084302 (walk)\nsfx1 50705900 (on target)\nsfx2 85057703 (stretch)\nsfx3 65493303 (stretch unused)\nsfx4 42598703 (stretch unused)\nsfx5 49655103 (stretch unused)\nUndo 21479104 (72060504 60450507)\nrestart 46704309\nstartgame 21069303\nclosemessage 21069303\n(startlevel 67233309)\nendlevel 32515109\n(endgame 21069303)\ntitlescreen 21069303\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWall\nWallH\nWallV\nWallC\nTarget\nPlayer\nCaramel\n\nStopCaramel\nWalkMarker\n\nEdgeH\nEdgeV\nEdgeC\n\nStretch\n\nStopH\nStopV\nStopC\n\nPalette\n\n======\nRULES \n======\n\n(turn)\n[ right player ] -> [ right playerR ]\n[ left player ] -> [ left playerL ]\n\n(stop player)\n[ > player | wall ] -> [ player | wall ]\n\n\n(move)\n\n(add stopCaramel to walls for convenience)\n[ wall ] -> [ wall stopCaramel ]\n\n(add stop marker to caramel cubes)\n[ > player ] [ caramel no stopCaramel | stopCaramel ] -> [ > player ] [ caramel stopCaramel | stopCaramel ]\n\n(stop player if its neighbor caramel cube has stopCaramel)\n[ > player | stopCaramel ] -> [ player | stopCaramel ]\n\n(walk sound)\n[ > player ] -> [ > player walkMarker ]\n\n(move player and caramel cubes)\n[ > player | caramel ] -> [ > player | > caramel ]\n[ > caramel | caramel ] -> [ > caramel | > caramel ]\n\n\n(add stop to edges)\nleft [ left player ] [ edgeV | stopCaramel ] -> [ left player ] [ edgeV stopV | stopCaramel ]\ndown [ down player ] [ edgeH | stopCaramel ] -> [ down player ] [ edgeH stopH | stopCaramel ]\n[ right player ] [ edgeV stopCaramel ] -> [ right player ] [ edgeV stopV stopCaramel ]\n[ up player ] [ edgeH stopCaramel ] -> [ up player ] [ edgeH stopH stopCaramel ]\n\n(add stopC)\nleft [ left player ] [ edgeC | wallH ] -> [ left player ] [ edgeC stopC | wallH ]\ndown [ down player ] [ edgeC | wallV ] -> [ down player ] [ edgeC stopC | wallV ]\n[ right player ] [ edgeC wallH ] -> [ right player ] [ edgeC stopC wallH ]\n[ up player ] [ edgeC wallV ] -> [ up player ] [ edgeC stopC wallV ]\n\n\n(propagate force from player to edges)\n[ left player edgeV no stopV ] -> [ left player left edgeV ]\n[ down player edgeH no stopH ] -> [ down player down edgeH ]\nright [ right player | edgeV no stopV ] -> [ right player | right edgeV ]\nup [ up player | edgeH no stopH ] -> [ up player | up edgeH ]\n\n(propagate force between edges)\n[ moving edgeV edgeC no stopC ] -> [ moving edgeV moving edgeC ]\n+ [ moving edgeH edgeC no stopC ] -> [ moving edgeH moving edgeC ]\n+ [ moving edgeC edgeV no stopV ] -> [ moving edgeC moving edgeV ]\n+ [ moving edgeC edgeH no stopH ] -> [ moving edgeC moving edgeH ]\n+ down [ moving edgeC | edgeV no stopV ] -> [ moving edgeC | moving edgeV ]\n+ left [ moving edgeC | edgeH no stopH ] -> [ moving edgeC | moving edgeH ]\n+ up [ moving edgeV | edgeC no stopC ] -> [ moving edgeV | moving edgeC ]\n+ right [ moving edgeH | edgeC no stopC ] -> [ moving edgeH | moving edgeC ]\n\n(propagate force from edges to caramel cubes)\nleft [ left edgeV | caramel ] -> [ left edgeV | left caramel ]\ndown [ down edgeH | caramel ] -> [ down edgeH | down caramel ]\n[ right edgeV caramel ] -> [ right edgeV right caramel ]\n[ up edgeH caramel ] -> [ up edgeH up caramel ]\n\n(add stretch)\n[ left edgeC stopV ] -> [ left edgeC stopV stretchLeft ]\n[ down edgeC stopH ] -> [ down edgeC stopH stretchDown ]\n[ right edgeC stopV ] -> [ right edgeC stopV stretchRight ]\n[ up edgeC stopH ] -> [ up edgeC stopH stretchUp ]\ndown [ left edgeC | stopV ] -> [ left edgeC stretchLeft | stopV ]\nleft [ down edgeC | stopH ] -> [ down edgeC stretchDown | stopH ]\ndown [ right edgeC | stopV ] -> [ right edgeC stretchRight | stopV ]\nleft [ up edgeC | stopH ] -> [ up edgeC stretchUp | stopH ]\n\n(stretch sound)\n[ stretch ] [ walkMarker ] -> [ stretch ] [ ] sfx2\n[ walkMarker ] -> [ ] sfx0\n\n(collapse edges moving against stopC)\n[ left edgeH stopC ] -> [ stopC ]\n[ down edgeV stopC ] -> [ stopC ]\nright [ right edgeH | stopC ] -> [ | stopC ]\nup [ up edgeV | stopC ] -> [ | stopC ]\n\n(collapse edges moving against walls)\nhorizontal [ > edgeH | wallH ] -> [ | wallH ]\nvertical [ > edgeV | wallV ] -> [ | wallV ]\n\n(collapse edges moving against stationary edges)\n[ > edgeH | stationary edgeH ] -> [ | stationary edgeH ]\n[ > edgeV | stationary edgeV ] -> [ | stationary edgeV ]\n\n\n(remove markers)\n[ stopCaramel ] -> [ ]\n[ stopEdge ] -> [ ]\n\n\n\n(connect walls)\nleft [ wall no wallV | wall ] -> [ wall wallV | wall ]\ndown [ wall no wallH | wall ] -> [ wall wallH | wall ]\ndown [ wallV no wallC | wallV ] -> [ wallV wallC | wallV ]\n\n(caramel on target?)\nlate [ caramel1 target ] -> [ caramel2 target ] sfx1\nlate [ caramel2 no target ] -> [ caramel1 ]\n\n(stretch edges)\nlate left [ stretchLeft | ] -> [ | edgeH ]\nlate down [ stretchDown | ] -> [ | edgeV ]\nlate [ stretchRight ] -> [ edgeH ]\nlate [ stretchUp ] -> [ edgeV ]\n\n(add edges around caramel cubes)\nlate [ caramel no edgeH ] -> [ caramel edgeH ]\nlate [ caramel no edgeV ] -> [ caramel edgeV ]\nlate up [ caramel | no edgeH ] -> [ caramel | edgeH ]\nlate right [ caramel | no edgeV ] -> [ caramel | edgeV ]\n\n(re-assign edgeC)\nlate [ edgeC ] -> [ ]\nlate [ edgeV no edgeC ] -> [ edgeV edgeC ]\nlate [ edgeH no edgeC ] -> [ edgeH edgeC ]\nlate up [ edgeV | no edge ] -> [ edgeV | edgeC ]\nlate right [ edgeH | no edge ] -> [ edgeH | edgeC ]\n\n\n==============\nWINCONDITIONS\n==============\n\nall target on caramel\n\n======= \nLEVELS\n=======\n\nMessage Sokoban + Caramel Cubes = Caramelban\n\n#####################\n#.......#####.......#\n#.......#####...#...#\n#....*...*.##.....t.#\n#.......##.##.....t.#\n#.......##..........#\n#...#...#####...p...#\n#.......#####.......#\n#####################\n\n\nMessage You win!\n\n\n\n",[1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,2,1,3,3,2,1,0,1,2,2,2,0,0,0,1,1,1,2,2,3,3,0,1,2,2,2,3,3,0,0,0,0,2,1,0,0,3,3,0,3,2,1,2,3,3,3,1,1,2,1,2,2,3,3,0,0,0,3,3,3,1,1,1,0,0,0,3,2,2,0,2,2,2,1,2,2,3,0,1,0,0,3,0,3,3,"undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo",0,1,0,0,3,3,2,1,1,1,1,3,3,3,3,2,2,2,1,0,0,1,0,3,3,1,1,1,1,1,0,0,0,3,2,3,"undo",0,3,3,2,1,3,3,3,1,2,2,3,1,2,3,1,1,1,2,0,3,3,3,3,2,2,1,0,0,0,1,0,3,3,3,3,1,1,2,1,1,1,0,3,1,1,3,3,3,1,1,0,0,3,2,0,3,2,3,3,2,3,3,3,2,0,0,1,1,0,1,0,1,1,2,2,2,3,3,0,0,1,0,1,1,3,3,3,2,3,3,3,2,0,1,1,3,3,2],"background wall wallh:0,0,0,0,0,0,0,0,background wall:1,background wall wallv:2,background:3,3,3,3,3,3,3,2,2,3,3,\n3,3,3,3,3,2,2,3,3,3,3,3,3,3,2,2,3,3,3,3,3,\n1,3,2,2,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,2,\n2,background edgec edgeh:4,background caramel1 edgec edgeh edgev:5,3,3,3,3,3,2,background wall wallh wallv:6,background edgec wall wallh:7,background edgec edgev wall:8,background edgec edgeh edgev:9,0,0,0,0,2,background wall wallc wallh wallv:10,10,2,\n4,10,10,10,10,2,10,10,2,4,background edgec edgeh playerr:11,5,10,10,2,10,10,6,7,8,background edgec edgev:12,\n10,10,2,10,10,10,10,2,3,10,10,2,2,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,2,2,3,1,\n3,3,3,3,3,2,2,3,3,3,3,3,3,3,2,2,3,3,background target:13,13,3,\n3,3,2,2,3,3,3,3,3,3,3,2,6,0,0,0,0,0,0,0,2,\n",1,"1645572641748.1404"] + ], + [ + "Paralelism", + ["title Paralelism\nauthor Stingby12 {Remix of Octat by Increpare}\nhomepage https://www.puzzlescript.net/play.html?p=7e1e5c5b3cd9de65085e46bfb0a8d002\n\nbackground_color #233F5C\ntext_color #C294FA\n\nnoundo\nrequire_player_movement\n\n(A port of a flash game I made. The original's here:\n\nhttp://ded.increpare.com/~locus/octat/\n\n)\n\n========\nOBJECTS\n========\n\nBackground\n#3F72A6\n.....\n.000.\n.000.\n.000.\n.....\n\nactivetile\n#60ADFA\n00000\n0...0\n0...0\n0...0\n00000\n\nTarget\n#634B80\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nHorPlayer\n#C294FA\n..0..\n.000.\n.000.\n.000.\n..0..\n\nOrtPlayer\n#C294FA\n.....\n.000.\n.000.\n.000.\n.....\n\nVerPlayer\n#C294FA\n.....\n.000.\n00000\n.000.\n.....\n\nvoid 0\n#233F5C\n\ntemp\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\nP = ortplayer and activetile\na = activetile\nx = Target\ny = target and activetile\nplayer = HorPlayer or VerPlayer or OrtPlayer\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nvoid\nactivetile\nplayer\ntemp\nTarget\n\n======\nRULES\n======\n\n[ > player | no activetile ] -> cancel\n\nhorizontal [> verplayer | ] -> [ | ortplayer ]\nhorizontal [> ortplayer | ] -> [ | horplayer ]\nhorizontal [> horplayer | ] -> [ | horplayer ]\n\nvertical [> horplayer | ] -> [ | ortplayer ]\nvertical [> ortplayer | ] -> [ | verplayer ]\nvertical [> verplayer | ] -> [ | verplayer ]\n\n[ activetile | ortplayer ] -> [ temp | ortplayer ]\n[ no temp | ortplayer ] -> [ activetile | ortplayer ]\n\nvertical [ activetile | horplayer ] -> [ temp | horplayer ]\nvertical [ no temp | horplayer] -> [ activetile | horplayer ]\n\nhorizontal [ activetile | verplayer ] -> [ temp | verplayer ]\nhorizontal [ no temp | verplayer] -> [ activetile | verplayer ]\n\n[ temp ] -> []\n\nlate [activetile void ] -> [ void ]\n\n==============\nWINCONDITIONS\n==============\n\nsome player on target\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 10\n\n..........\n..........\n..........\n..........\n..........\n.x...ap...\n..........\n..........\n..........\n..........\n\nmessage Level 2 of 10\n\n...........\n...........\n...........\n...........\n...........\n....xpa....\n...........\n...........\n...........\n...........\n\n\nmessage Level 3 of 10\n\n...........\n...........\n...........\n...........\naaaaaaa..aa\n..y....ap..\naaaaaaa..aa\n...........\n...........\n...........\n\nmessage Level 4 of 10\n\n...........\n...........\n...a.......\n..aaa......\n.aaaaa.....\naaayaaa.ap.\n.aaaaa.....\n..aaa......\n...a.......\n...........\n\nmessage Level 5 of 10\n\n.a.a.a.a.\n000000000\n..aaa....\n.xaaa.ap.\n..aaa....\n000000000\n.a.a.a.a.\n\nmessage Level 6 of 10\n\n.a.a.a.a.a.\n00000000000\n.a.a.a.a.a.\naxa.a.a.apa\n.a.a.a.a.a.\n00000000000\n.a.a.a.a.a.\n\nmessage Level 7 of 10\n\n0aaaa..00\n0aaaa...0\ny..aa..ap\n0aaaa...0\n0aaaa..00\n\nmessage Level 8 of 10\n\n....0000...\n.......0...\n..00.0.0...\n.a...ap.ax.\n..00.0.0...\n.......0...\n....0000...\n\nmessage Level 9 of 10\n\naaayaaa\na0a0a0a\n.......\n0a0a0a0\n.......\na0a0a0a\naaapaaa\n\nmessage Level 10 of 10\n\n..aa..aa0aaa.aaa0aaa.\n.a0a.a0...a..a0a0.a..\n.p0a.a...0a00aaa..a..\n.a0a.a0..0a00a0a.0a0.\n.aa...aa00a00a0a.0y0.\n\nmessage My white square brother will be proud of what I did !\n\n(\nmessage level 1 of 8\n\n..........\n..........\n..........\n..........\n..........\n.x...ap...\n..........\n..........\n..........\n..........\n\nmessage level 2 of 8\n\n...........\n...........\n...........\n...........\n...........\n....xpa....\n...........\n...........\n...........\n...........\n\n\nmessage level 3 of 8\n\n\n...........\n...........\n...........\n...........\n..a........\n.axaaap....\n..a........\n...........\n...........\n...........\n\nmessage level 4 of 8\n\n\n...........\n...........\n...a.......\n..a.a......\n.a.a.a.....\na.aya.a.ap.\n.a.a.a.....\n..a.a......\n...a.......\n...........\n\nmessage level 5 of 8\n\n\n...........\n...........\n...........\n...........\naaaaaaaaaaa\n...y..ap...\naaaaaaaaaaa\n...........\n...........\n...........\n\nmessage level 6 of 8\n\n\n000000....0\n000000..0.0\n000000..0..\n000000000..\n....A...0.0\n.AY.A...AAP\n....A...0.0\n000000000..\n000000..0..\n000000..0.0\n000000....0\n\nmessage level 7 of 8\n\n\n..AAA...000\n.AY.A...AP.\n..AAA...000\n\nmessage level 8 of 8\n\n\n0AAAA..00\n0AAAA..00\nYAAAA..AP\n0AAAA..00\n0AAAA..00\n\nmessage the end\n)\n\n",[3,1,0,3,2,1,2,1,1,0,0,3,1,1,1,0,1,2,3,2,1,2,2,0,3,0,1,0,3,0,3,2,1,2,1,2,0,3,0,3,0,3,2,3,0,3,1,2,3,1,0,2,1,2],"background:0,activetile background ortplayer:1,0,0,0,0,0,activetile background:2,0,0,0,\n0,0,0,2,2,background void:3,2,3,0,0,0,\n0,3,2,3,0,0,3,0,0,0,2,\n0,3,3,0,3,0,3,2,3,3,0,\n2,0,2,0,3,3,3,3,0,3,3,\n3,0,0,0,2,0,0,0,0,0,0,\nbackground target:4,0,0,0,0,0,0,0,0,0,0,\n",15,"1645572899761.3071"] + ], + [ + "Psyshic push", + ["title Psyshic push\nauthor Stingby12\nhomepage https://stingby12.itch.io/\n\ntext_color #DB524D\nbackground_color #6C478F\n\nrun_rules_on_level_start\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\n#6C478F\n\nWall\n#A163DB\n\nStopper\n#A163DB\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nPlayer\n#7BDB58\n.000.\n.000.\n00.00\n.000.\n.0.0.\n\nMovecheckL\n#5EA843\n.....\n.....\n.000.\n.....\n.....\n\nMovecheckR\n#5EA843\n.....\n.....\n.000.\n.....\n.....\n\nMovecheckU\n#5EA843\n.....\n..0..\n..0..\n..0..\n.....\n\nMovecheckD\n#5EA843\n.....\n..0..\n..0..\n..0..\n.....\n\nMovestop\n#7BDB58\n.....\n...0.\n.000.\n.0...\n.....\n\nTarget\n#8F2E2B\n.....\n.0.0.\n.000.\n.0.0.\n.....\n\nCrate\n#DB524D\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n+ = Player and Target\n* = Crate\n@ = Crate and Target\nO = Target\n% = Player and Stopper\nx = Stopper\n- = Player and Movestop\n8 = Crate and Movestop\ns = Movestop\n\nMovecheck = MovecheckL or MovecheckR or MovecheckU or MovecheckD\nBlocking = Crate or Wall or Stopper\nSightBlocking = Crate or Wall or Movestop\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx0 80929902 (Blocked)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget, Stopper, Movestop\nPlayer, Wall, Crate\nMovecheckL\nMovecheckR\nMovecheckU\nMovecheckD\n\n======\nRULES\n======\n\n(I tried to place a [...] in the basic push and ended up with something cool. I tried to ajust the code and ended up with something like this.)\n\nlate left [Player | no Movecheck no SightBlocking] -> [Player | MovecheckL]\nlate right [Player | no Movecheck no SightBlocking] -> [Player | MovecheckR]\nlate up [Player | no Movecheck no SightBlocking] -> [Player | MovecheckU]\nlate down [Player | no Movecheck no SightBlocking] -> [Player | MovecheckD]\n\nlate left [MovecheckL | no Movecheck no SightBlocking] -> [MovecheckL | MovecheckL]\nlate right [MovecheckR | no Movecheck no SightBlocking] -> [MovecheckR | MovecheckR]\nlate up [MovecheckU | no Movecheck no SightBlocking] -> [MovecheckU | MovecheckU]\nlate down [MovecheckD | no Movecheck no SightBlocking] -> [MovecheckD | MovecheckD]\n\n(This code generate 4 lines of Movechecks (one of each direction). These are blocked by a group called \"SightBlocking\")\n\n[> Player | ... | Movecheck | Crate] -> [Player | ... | Movecheck | > Crate]\n[> Player | Crate] -> [> Player | > Crate]\n[> Crate | Blocking] -> [Crate | Blocking] sfx0\n\n[Movecheck] -> []\n\n(Bottom code is the easiest to understand. Keep in mind that rule 149 and rule 150 are completly different.)\n(Rule 155 is just for clearing)\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nSome Target (ignore this rule)\n\n=======\nLEVELS\n=======\n\nmessage Cover all targets with crates.\n\nmessage Level 1 of 16\n\n(Surprise level that shows the main mechanic)\n#######\n#..*.o#\n#..*.o#\n#p.*.o#\n#..*.o#\n#..*.o#\n#######\n\nmessage Level 2 of 16\n\n(If you are directly next to the crate you can push and move at the same time.)\n#####\n#...#\n#...#\n#...#\n##*##\n#...#\n#.+.#\n#####\n\nmessage Level 3 of 16\n\n#######\n#.....#\n#o@@*p#\n#.....#\n#..####\n####...\n\nmessage Level 4 of 16\n\n.#######\n.#.....#\n.#.o*o.#\n##.*p*.#\n#..o*o.#\n#......#\n########\n\nmessage Level 5 of 16\n\n(Like this level design.)\n#########.\n#@......##\n#*......*#\n#@....*.@#\n#*......*#\n##....+.@#\n.#########\n\nmessage Level 6 of 16\n\n.######.\n##....##\n#@.*..*#\n#*..*.@#\n#@.*..*#\n#*.oo+@#\n########\n\nmessage Level 7 of 16\n\n..#####\n###@*@#\n#*....#\n#@.**.#\n#*....#\n#@....#\n##.o+.#\n.######\n\nmessage Level 8 of 16\n\n..#####..\n.##@*@##.\n##.....##\n#@.o*o.@#\n#*.*.*.*#\n#@.o*o.@#\n#*.....*#\n##..p..##\n.##*@*##.\n..#####..\n\nmessage Level 9 of 16\n\n....####\n.####..#\n.#.....#\n##.*xo.#\n#..*xo.#\n#..*xo.#\n#...#p.#\n########\n\nmessage Level 10 of 16\n\n(This is the old first level that uses the Blockers. I wanted an easier level for that.)\n####...\n#xx###.\n#o.*.##\n#ox*..#\n#ox*p.#\n#ox*..#\n#o.*.##\n#xx###.\n####...\n\nmessage Level 11 of 16\n\n#######\n#xxxxx#\n#xo*ox#\n#x*o*x#\n#x*o*x#\n#xo*ox#\n#xx%xx#\n#######\n\nmessage Level 12 of 16\n\n(I couldn't find anything simpler without chessing.)\n######...\n#*..o#...\n##.#.###.\n.#px8x.#.\n.###.#.#.\n...#.#.##\n...#...*#\n...######\n\nmessage Level 13 of 16\n\n####..\n#.o#..\n#..###\n#8...#\n#op*.#\n#..###\n####..\n\nmessage Level 14 of 16\n\n######\n#....#\n#....#\n#*88*#\n#....#\n#o+oo#\n######\n\nmessage Level 15 of 16\n\n#########..\n#oo*..*.###\n#+o8..8...#\n#oo*..8...#\n####..#####\n...####....\n\nmessage Level 16 of 16\n\n(Probably the last level I'll make.)\n.......###..\n########@##.\n#@......p.##\n#*..*..*..@#\n#@.s.oo.s.*#\n#*.s.oo.s.@#\n#@..*..*..*#\n#*........##\n########*##.\n.......###..\n\nmessage Great work, you pushed like it was nothing !\n\n",[2,2,2,2,3,0,0,0,1,1,0,0,3,3,1,2,"undo","undo",2,0,3,3,2,2,1,1,3,1,2,2,2,3,1,2,3,1,1,0,0,1,3,2,0,0,3,3,1,1,2,2,2,1,1,3,3,1,1,1,1,1,0,0,3,1,2,1,0,3],"background:0,background wall:1,1,1,1,1,1,1,1,0,0,1,\nbackground crate target:2,background crate:3,2,3,2,3,1,0,0,1,0,background movecheckl:4,\n3,0,3,0,1,0,0,1,background movechecku:5,background player:6,background movestop:7,7,\n0,0,1,0,0,1,0,background movecheckr:8,0,0,0,0,\n1,0,0,1,0,8,background target:9,9,0,0,1,0,\n0,1,0,3,9,9,0,0,1,0,1,1,\n0,0,0,0,0,3,1,1,1,2,0,0,\n7,7,0,0,3,1,1,1,0,0,0,0,\n0,0,1,1,0,1,1,2,3,2,3,1,\n1,0,0,0,1,1,1,1,1,1,0,0,\n",32,"1645573610754.0828"] + ], + [ + "I wanna change my position", + ["title I wanna change my position\nauthor competor\nhomepage competor.itch.io\nbackground_color #2A0E3A\ntext_color #fe6c90\nrequire_player_movement\nrun_rules_on_level_start\nrealtime_interval 0.1\nagain_interval 0.08\n\n========\nOBJECTS\n========\n\nBackground\n#2A0E3A #2A073A #260E35 #2F0E3A\n01021\n21310\n10101\n01213\n23010\n\nTarget\n#F5F5F5\n.....\n.....\n..0..\n.....\n.....\n\nWall\n#F5F5F5 #FEAFC2 #fe6c90 #CD577B #87286a #6B1F54\n01112\n12223\n12223\n12223\n34445\n\n\nPlayer\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459 \n.121.\n.020.\n41214\n54445\n.5.5.\n\nanim_p1\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459 #2A0E3A\n66216\n60266\n41614\n64465\n65656\n\nanim_p2\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459 #2A0E3A\n66616\n60266\n61.64\n66466\n65656\n\nanim_p3\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459 #2A0E3A\n66.66\n6.2.6\n.1...\n6.4.6\n66.56\n\nanim_p4 \n#87286a #2A0E3A\n11..1\n....1\n.....\n10001\n11.11\n\nanim_p5 \n#87286a #2A0E3A\n1...1\n..0..\n.0.0.\n.000.\n1...1\n\nCrate\n#87286a\n.....\n.000.\n.0.0.\n.000.\n.....\n\nanim_c1\n#87286a\n.....\n..0..\n.0.0.\n.000.\n.....\n\nanim_c2\n#87286a\n.....\n.....\n.0.0.\n.000.\n.....\n\nanim_c3\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459\n.....\n..2..\n..2..\n.444.\n.....\n\nanim_c4\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459\n.....\n..2..\n.12.4\n.444.\n.5.5.\n\nanim_c5\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459\n..2..\n.020.\n41.14\n.44.5\n.5.5.\n\nantiCrate\n#fe6c90 #d03791\n..1..\n.101.\n10.01\n.101.\n..1..\n\nmemory\ntransparent\n.....\n..0..\n.0.0.\n..0..\n.....\n\nanim0\n#2a0e3a\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim1\n#351149\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim2\n#401559\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim3\n#571d86\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim4\n#571d86\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim5\n#401559\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim6\n#351149\n.000.\n0...0\n0...0\n0...0\n.000.\n\nme\ntransparent\n.....\n.....\n..0..\n.....\n.....\n\nfloor\n#B08CC5 #B080B5 #B07CC5 #A575A5\n01021\n21310\n10101\n01213\n23010\n\n\n\ntargetWithCrates\ntransparent\ntargetWithoutCrates\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\n: = antiCrate\n; = antiCrate and Target\nO = Target\na = floor\nb = Player and floor\nc = Crate and floor\nd = Crate and Target and floor\ne = antiCrate and floor\nf = antiCrate and Target and floor\ng = Target and floor\nh = Crate and memory\n\n\n\ncrates = Crate or antiCrate\nobstacle = Wall or crates\nanims = anim0 or anim1 or anim2 or anim3 or anim4 or anim5 or anim6\nanimswap = anim_p1 or anim_p2 or anim_p3 or anim_p4 or anim_p5 or anim_c1 or anim_c2 or anim_c3 or anim_c4 or anim_c5\n=======\nSOUNDS\n=======\nrestart 53933706\nCrate move 36681907\nantiCrate move 36681907\n(Plates MOVE 209907)\nendlevel 7121610\nPlayer cantmove 53676504\ncancel 53676504\n\nsfx0 8992509 (falling)\nsfx1 87861307 (up)\nsfx2 65232307 (down)\nsfx3 93691109 (save)\nsfx4 24089507 (on crate)\nsfx5 14894304 \nsfx6 36681907 (on snow)\nsfx7 76479500 (show hint)\nsfx8 55581906 (hide hint)\nsfx9 98183507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n\nfloor\n\nanims\n\nTarget\nPlayer, Wall, Crate,antiCrate\nanimswap\n\nmemory\nme\ntargetWithCrates,targetWithoutCrates\n\n======\nRULES\n======\n\n(sound init)\n[targetWithCrates] -> []\n[targetWithoutCrates]->[]\n[Target no crates] -> [Target targetWithoutCrates]\n[Target crates] -> [Target targetWithCrates crates]\n\n(push)\n[ > Player | Crate ] -> [ > Player | > Crate > me ]\n[ > Player | antiCrate ] -> [ > Player | > antiCrate ]\n[moving Crates][stationary Crate memory] -> [moving Crates][stationary Crate]\n\n(swap)\n[anim_p5][ anim_c5 ] -> [Crate][ Player ] \n[anim_p4][ anim_c4 ] -> [anim_p5][ anim_c5 ] again\n[anim_p3][ anim_c3 ] -> [anim_p4][ anim_c4 ] again\n[anim_p2][ anim_c2 ] -> [anim_p3][ anim_c3 ] again\n[anim_p1][ anim_c1 ] -> [anim_p2][ anim_c2 ] again\n[action Player no floor ][stationary Crate memory] -> [floor anim_p1][ anim_c1 ] sfx3 again\n[action Player floor ][stationary Crate memory] -> cancel \n\n\n(memory push)\n\n[ > crates memory ] -> [> crates]\n\n\n(sound)\nlate [Target targetWithCrates no crates] -> [Target] sfx8\nlate [Target targetWithoutCrates crates] -> [Target crates] sfx7\n\n(memory)\nlate [ me no crates ] -> []\nlate [ me ] -> [ memory ]\n\n\n(anim)\n[stationary Player][stationary anim6] -> [Player][action anim0]\n[stationary Player][stationary anim5] -> [Player][action anim6]\n[stationary Player][stationary anim4] -> [Player][action anim5]\n[stationary Player][stationary anim3] -> [Player][action anim4]\n[stationary Player][stationary anim2] -> [Player][action anim3]\n[stationary Player][stationary anim1] -> [Player][action anim2]\n[stationary Player][stationary anim0] -> [Player][action anim1]\n[memory no anims] -> [memory anim0]\nlate [anims no memory] -> []\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on crates\n\n=======\nLEVELS\n=======\nmessage Press X to swap.\n\naaa#####\naaa#...#\naaa#.o.#\n###.*..#\n#..p.###\n#.*.#aaa\n#o..#aaa\n#####aaa\n\nmessage You and the last crate you pushed are swapped.\n\naaaaaaaa\na######a\na#.po.#a\na#*##o#a\na#o##*#a\na#..*.#a\na######a\naaaaaaaa\n\nmessage You can swap only if the color of your standing tile is purple.\n\n.##..##.\n########\n##ga.g##\n.##cc##.\n.##ba##.\n##a.aa##\n########\n.##..##.\n\nmessage When you swapped, the color of your tile disappears.\n\naaaaaaaa\na######a\na#.pg.#a\na#*##g#a\na#g##*#a\na#..*.#a\na######a\naaaaaaaa\n\n\n..###...\n..#p##..\n.##*.##.\na#g.*g#a\na#g**g#a\na##aa##a\naa####aa\naaaaaaaa\n\n\n########\n#.*gg*.#\n#p####.#\n#.a#ga.#\n##cg#a##\n#..aa..#\n#.ca#a.#\n########\n\n\n.#####..\n.#g#g#..\n.#gpg#..\n.#*#*#..\n.#.#.#..\n.#*.*#..\n.#.#.#..\n.#####..\n\n\n######..\n#agcg###\n#accc.a#\n#agcg###\n##.#.#..\n.#g#b#..\n.#####..\n........\n\n\n########\n#aa#gcg#\n#c#aa#a#\n#aaca#c#\n##g#ba.#\n#a.a#.a#\n#aacgag#\n########\n\n\n########\n#..cg.p#\n#a####.#\n#c#..#c#\n#g#..#g#\n#.####*#\n#..aag.#\n########\n\n\nmessage Congrats!\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",0,"tick",0,"tick","tick","tick","tick","tick",1,"tick","tick","tick",3,"tick","tick","tick","tick","tick","tick",4,"tick","tick","tick","tick","tick","tick",1,"tick","tick",3,"tick",2,"tick","tick",4,"tick",1,"tick",0,"tick","tick",0,"tick",3,"tick","tick",3,"tick","tick",2,"tick","tick","tick",1,"tick","tick","tick",2,"tick","tick",2,"tick","tick","tick","tick","tick","tick","tick",4,"tick",3,"tick",3,"tick","tick",3,"tick","tick","tick","tick","tick",3,"tick","tick","tick","tick","tick",4,"tick","tick","tick",1,"tick","tick",1,"tick",1,"tick","tick","tick",0,"tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background wall:0,0,0,0,0,background:1,1,1,\n0,background floor:2,2,2,0,0,0,1,\n0,background floor player target targetwithoutcrates:3,anim2 background crate floor memory:4,background floor target targetwithoutcrates:5,background crate floor:6,5,0,1,\n0,2,2,6,0,0,0,1,\n0,background crate floor target targetwithcrates:7,2,5,6,2,0,1,\n0,0,2,0,0,0,0,1,\n1,0,2,0,1,1,1,1,\n1,0,0,0,1,1,1,1,\n",11,"1645574132967.735"] + ], + [ + "Isle of Bloks", + ["title Isle of Bloks\n\ncolor_palette gameboycolour\n\nbackground_color #242b26\nkey_repeat_interval 0.12\nrealtime_interval 0.1\n========\nOBJECTS\n========\n(colors:\n#CADC9F - white\n#0f380f - dark\n#306230 - green\n#8bac0f - light green 1\n#9bbc0f - light green 2\n\ncustom \n#242b26 - black\n#3e4a40 - darkgray\n#4c5a4e\t- light darkgray\n#88a68d - gray\n#709277 - gray but slightly darker\n#ddebdf - white\n)\n\n\nbackground\n#3e4a40 #374239\n00000\n11000\n00000\n00011\n00000\n\nbground1\n#3e4a40 #374239\n00000\n11000\n00000\n00011\n00000\n\nbground2\n#3e4a40 #374239\n00000\n11000\n00000\n00011\n00000\n\nbground3\n#3e4a40 #374239\n11000\n00000\n00011\n00000\n00000\n\nbground4\n#3e4a40 #374239\n11000\n00000\n00011\n00000\n00000\n\nbground5\n#3e4a40 #374239\n00000\n00011\n00000\n00000\n11000\n\nbground6\n#3e4a40 #374239\n00000\n00011\n00000\n00000\n11000\n\nbground7\n#3e4a40 #374239\n00011\n00000\n00000\n11000\n00000\n\nbground8\n#3e4a40 #374239\n00011\n00000\n00000\n11000\n00000\n\nbground9\n#3e4a40 #374239\n00000\n00000\n11000\n00000\n00011\n\nbground10\n#3e4a40 #374239\n00000\n00000\n11000\n00000\n00011\n\nbground10anim\ntransparent\n\n(player animations)\n\nplayerStandR\n#ddebdf #242b26 #88a68d #709277\n00000\n00101\n22222\n33333\n.1.1.\n\nplayer1R\n#ddebdf #242b26 #88a68d #709277\n00000\n00101\n22222\n33333\n.1.1.\n\nanim1R\n#ddebdf #242b26 #88a68d\n00000\n00101\n22222\n22222\n.1.1.\n\nplayer2R\n#ddebdf #242b26 #88a68d #709277\n00000\n00101\n22222\n33333\n1...1\n\nanim2R\n#ddebdf #242b26 #88a68d\n00000\n00101\n22222\n22222\n1...1\n\nplayer1L\n#ddebdf #242b26 #88a68d #709277\n00000\n10100\n22222\n33333\n.1.1.\n\nanim1L\ntransparent\n\nplayer2L\n#ddebdf #242b26 #88a68d #709277 #FFFFFF\n00000\n10100\n22222\n33333\n1...1\n\nplayerswap1R\n#ddebdf #242b26 #88a68d #709277\n00000\n00000\n22222\n33333\n.1.1.\n\nplayerswap2R\n#ddebdf #242b26 #88a68d #709277 #FFFFFF\n44444\n00000\n00000\n22222\n33333\n\nanim2L\ntransparent\n\nplayerinactive\n#ddebdf #242b26 #88a68d #709277 #FFFFFF\n44444\n00000\n00000\n22222\n33333\n\n(player tops)\nplayerBoxTopInactive\n#88a68d\n.....\n.....\n.....\n.....\n00000\n\nplayerBoxTop\n#88a68d\n.....\n.....\n.....\n00000\n00000\n\nplayerTop\n#FFFFFF\n.....\n.....\n.....\n00000\n00000\n\nplayerTopInactive\n#FFFFFF\n.....\n.....\n.....\n.....\n00000\n\n(swap animations)\n\nplayerBoxInactive\n#ddebdf #242b26 #88a68d #709277\n22222\n33333\n33333\n33333\n33333\n\nplayerBoxSwapAnim1R\n#ddebdf #242b26 #88a68d #709277\n33333\n33333\n33333\n33333\n.1.1.\n\n(playerbox animations)\nplayerBox1R\n#ddebdf #242b26 #88a68d #709277\n33333\n33131\n33333\n33333\n.1.1.\n\nanimBox1R\ntransparent\n\nplayerBox2R\n#ddebdf #242b26 #88a68d #709277\n33333\n33131\n33333\n33333\n1...1\n\nanimBox2R\ntransparent\n\nplayerBox1L\n#ddebdf #242b26 #88a68d #709277\n33333\n13133\n33333\n33333\n.1.1.\n\nanimBox1L\ntransparent\n\nplayerBox2L\n#ddebdf #242b26 #88a68d #709277 #FFFFFF\n33333\n13133\n33333\n33333\n1...1\n\nanimBox2L\ntransparent\n()\n\n(------------------------------------------level elements)\nwall\ntransparent\n\nbox\n#242b26 #88a68d #709277 #3e4a40\n11111\n22222\n22222\n22222\n33333\n\nboxtop\n#242b26 #88a68d #709277\n.....\n.....\n.....\n11111\n11111\n\nbutton\n#242b26 #88a68d\n00000\n01110\n01010\n01110\n00000\n\npressedbutton\n#242b26 #88a68d\n00000\n01110\n01010\n01110\n00000\n\n(---------------------------------------island generation)\nland\n#CADC9F\n\ncornerLandTR\n#CADC9F #242b26\n00000\n00000\n00000\n00000\n10000\n\ncornerLandTL\n#CADC9F #242b26\n00000\n00000\n00000\n00000\n00001\n\ncornerLandDL\n#CADC9F #242b26\n0000.\n00000\n00000\n00000\n00000\n\ncornerLandDR\n#CADC9F #242b26\n.0000\n00000\n00000\n00000\n00000\n\ncliff\n#242b26 #242b26\n00000\n11111\n00000\n00000\n11111\n\ncornerCliffTR\n#242b26 #242b26\n10000\n01111\n00000\n10000\n.1111\n\ncornerCliffTL\n#242b26 #242b26\n00000\n11111\n00000\n00001\n1111.\n\n(----------------------------------transition objects)\nblackscreen1\n#242b26\n\nblackscreen2\n#242b26\n.000.\n00000\n00000\n00000\n.000.\n\nblackscreen3\n#242b26\n..0..\n.000.\n00000\n.000.\n..0..\n\nblackscreen4\n#242b26\n.....\n..0..\n.000.\n..0..\n.....\n\nblackscreen5\n#242b26\n.....\n.....\n..0..\n.....\n.....\n\noutscreen1\n#242b26\n0....\n0....\n0....\n0....\n0....\n\noutscreen2\n#242b26\n00...\n00...\n00...\n00...\n00...\n\noutscreen3\n#252b26\n000..\n000..\n000..\n000..\n000..\n\noutscreen4\n#252b26\n0000.\n0000.\n0000.\n0000.\n0000.\n\noutscreen5\n#252b26\n\n(--------------------------------------------decor)\ntreebase0\n#242b26 #88a68d #709277\n.....\n....1\n...10\n...0.\n.....\n\ntreebase1\n#242b26 #88a68d #709277\n.1122\n11122\n00022\n...00\n.....\n\ntreebase2\n#242b26 #88a68d #709277\n2....\n22...\n002..\n..0..\n.....\n\ntreestem1\n#88a68d #709277\n01.00\n.0001\n.0001\n.0011\n.0011\n\ntreecanopyMB\n#88a68d #709277 #242b26 #323b34\n33333\n33333\n33332\n22222\n122.0\n\ntreecanopyLB\n#88a68d #709277 #242b26 #323b34\n33333\n33333\n23333\n.2222\n..220\n\ntreecanopyLLB\n#88a68d #709277 #242b26 #323b34\n....3\n....2\n.....\n.....\n.....\n\ntreecanopyMM\n#88a68d #709277 #242b26 #323b34\n33333\n33333\n33333\n33333\n33333\n\ntreecanopyMT\n#323b34\n.....\n.....\n.....\n.000.\n00000\n\ntreecanopyLM\n#323b34\n...00\n..000\n.0000\n00000\n00000\n\ntreecanopyRM\n#323b34\n00...\n000..\n0000.\n00000\n00000\n\ntreecanopyRB\n#88a68d #709277 #242b26 #323b34\n33333\n33333\n23332\n2222.\n.22..\n\nbush\n#88a68d #709277 #242b26 #323b34\n00011\n00011\n00111\n21122\n.222.\n\nbushtop\n#88a68d #709277 #242b26 #323b34\n.....\n.....\n.001.\n00011\n00011\n\n(-----------------------------------------------------variables)\n(tracks buttons)\nbuttonState\ntransparent\n\nbuttonStateOff\ntransparent\n\n(------------------------------------------------------water?? tiles)\nshallowWater\n#a6c45d\n\nshallowWaterLRD\n#a6c45d\n.....\n.....\n00000\n00000\n00000\n\nshallowWaterBottom\n#a6c45d #323b34\n00000\n00000\n11111\n11111\n11111\n\nshallowWaterUp\n#a6c45d \n\nshallowWaterFull\n#a6c45d\n\n(---------------------------------------------------------smoke)\nsmoke1L\n#ddebdf\n.....\n.....\n..00.\n.00..\n..000\n\nsmoke2L\n#ddebdf\n.....\n.....\n.....\n.....\n000..\n\nsmoke1R\n#ddebdf\n.....\n.....\n00...\n.00..\n00...\n\nsmoke2R\n#ddebdf\n.....\n.....\n.....\n.....\n..000\n\nrestart1\n#CADC9F\n.000.\n.0.0.\n.0.0.\n.000.\n.....\n\nrestart2\n#CADC9F\n.000.\n.0...\n.00..\n.0...\n.....\n\nrestart3\n#ddebdf\n0.000\n..0..\n..000\n....0\n0.000\n\nrestart4\n#ddebdf\n.000.\n.0...\n.000.\n...0.\n.000.\n\nrestart5\n#ddebdf\n.00..\n.0.0.\n.00..\n.0.0.\n.0.0.\n\nrestartanim1\ntransparent\n\nrestartanim2\ntransparent\n\nrestartanim3\ntransparent\n\nrestartanim4\ntransparent\n\nrestartanim5\ntransparent\n=======\nLEGEND\n=======\n\nbgroundanim = bground1 or bground2 or bground3 or bground4 or bground5 or bground6 or bground7 or bground8 or bground9 or bground10 or bground10anim\n\nplayerbox = playerBox1R or playerBox2R or animBox1R or animBox2R or animBox1L or animBox2L or playerBox1L or playerBox2L\n\nplayer = player1R or player2R or anim1R or anim2R or player1L or anim1L or player2L or anim2L or playerBox\n\nplayerswapanim = playerswap1R or playerswap2R\nplayerboxswapanim = playerBoxSwapAnim1R\n\nblackscreen = blackscreen1 or blackscreen2 or blackscreen3 or blackscreen4 or blackscreen5\n\noutscreen = outscreen1 or outscreen2 or outscreen3 or outscreen4 or outscreen5\n\ncliffs = cliff or cornerCliffTR or cornerCliffTL\n\nground = land or cornerLandTR or cornerLandTL or cornerLandDL or cornerLandDR\n\ntree = treebase0 or treebase1 or treebase2\ntreedec = treestem1 or treecanopyMB or treecanopyLB or treecanopyLLB or treecanopyMM or treecanopyMT or treecanopyLM or treecanopyRM or treecanopyRB\n\nshallow = shallowWaterLRD or shallowWaterUp or shallowWater or shallowWaterFull\n\nsmoke = smoke1L or smoke2L or smoke1R or smoke2R\n\nrestart = restart1 or restart2 or restart3 or restart4 or restart5 or restartanim1 or restartanim2 or restartanim3 or restartanim4 or restartanim5\n\np = playerStandR and land and blackscreen1\n# = land and blackscreen1\nx = land and box and blackscreen1\no = button and land and blackscreen1\n. = background and blackscreen1\nl = land and treebase1 and blackscreen1\nc = bush and land and blackscreen1\ne = playerBoxInactive and land and blackscreen1\nw = buttonStateOff and blackscreen1\nm = shallowWaterLRD and blackscreen1\n1 = restart1\n2 = restart2\n\n=======\nSOUNDS\n=======\n\nsfx0 21839507\nsfx1 35644707\nsfx2 69260304\nsfx3 38107505\nbox move 20210107\nstartlevel 93909903\nsfx4 42654903\nsfx5 62394902\nrestart 16186705\nundo 44484905\n\n================\nCOLLISIONLAYERS\n================\nbackground\n(island decor layer)\nbgroundanim\nground,cliffs, shallowWaterBottom\nshallow, shallowWaterUp\n(tree layer)\ntree,treedec\n(decor layer)\nbush\n(interactive Layer)\nbutton,pressedbutton,buttonState,buttonStateOff\n(main layer)\nplayer,wall, box, playerStandR, playerBox, playerBoxInactive, playerswapanim,playerboxswapanim,playerinactive\n(\"3d\" layer)\nboxtop,playerBoxTop,playerBoxTopInactive, playerTop, playerTopInactive,bushtop\n(fx layer)\nsmoke, restart\n(fade in/out layer)\nblackscreen,outscreen\n\n\n======\nRULES\n======\n(gives control back to player)\n[playerStandR no blackscreen no outscreen]->[player1R]\n\n(----------------------------------------------transitions)\n(generates opening animation)\n[blackscreen5]->[]\n[blackscreen4]->[blackscreen5]\n[blackscreen3]->[blackscreen4]\n[blackscreen2]->[blackscreen3]\n[blackscreen1]->[blackscreen2]\n\n(background animation)\n[bground9]->[bground10anim]\n[bground8]->[bground9]\n[bground7]->[bground8]\n[bground6]->[bground7]\n[bground5]->[bground6]\n[bground4]->[bground5]\n[bground3]->[bground4]\n[bground2]->[bground3]\n[bground1]->[bground2]\n[bground10]->[bground1]\n[bground10anim]->[bground10]\n[background no bgroundanim]->[background bground1]\n\n(generates closing animation)\n[outscreen4] -> [outscreen5]\n[outscreen3] -> [outscreen4]\n[outscreen2] -> [outscreen3]\n[outscreen1] -> [outscreen2]\n[buttonState][background no outscreen] -> [buttonState][background outscreen1] sfx4\nlate [buttonState][player] -> [buttonState][playerStandR]\n\n(generates smoke animation)\n[smoke2R] -> []\n[smoke1R] -> [smoke2R]\n[smoke2L] -> []\n[smoke1L] -> [smoke2L]\n(----------------------------------------------------level)\n(generates decoration and walls)\nlate[background no ground] -> [background wall]\nlate up[wall no ground no shallowWater | ground ] -> [wall cliff |ground]\nlate up[box | no boxtop] -> [box | boxtop ]\nlate[bush no wall] -> [bush wall]\n(generates detailed cliffs)\nlate right[no ground no cliffs | cliff | cliffs no cornerCliffTR]-> [|cornerCliffTR|cliff]\nlate right[no ground no cliffs | cliff | ground no cornerCliffTR]-> [|cornerCliffTR|ground]\nlate right[ cliff | no ground no cliffs]-> [cornerCliffTL|]\n\ndown[shallowWaterLRD | no shallowWaterBottom no shallow no ground] -> [shallowWaterLRD | shallowWaterBottom]\ndown[shallowWaterLRD | shallowWaterLRD ] -> [shallowWaterLRD | shallowWaterFull]\ndown[shallowWaterFull | shallowWaterLRD ] -> [shallowWaterLRD | shallowWaterFull]\nlate up[shallowWaterFull | no shallow] -> [shallowWaterLRD | ]\n\n(for single-tile cliffs)\nlate horizontal[no cliffs no ground| cliffs | no cliffs no ground] -> [|cliff|]\n\n(generates detailed land)\nlate right[no ground | land | ground]-> [|cornerLandTR|ground]\nlate up [ ground\t| cornerLandTR | ground] -> [ground | land | ground]\nlate right[ ground | land | no ground]-> [ground|cornerLandTL|]\nlate up [ ground\t| cornerLandTL | ground] -> [ground | land | ground]\nlate up [ ground | cornerLandTL | no ground] -> [ground | cornerLandDL | ]\nlate up [ ground | cornerLandTR | no ground] -> [ground | cornerLandDR | ]\n\n(generates tree)\nright[no tree | treebase1 | no tree] -> [treebase0 | treebase1 | treebase2 ]\nup[ treebase1 | no treestem1 ] -> [ treebase1 | treestem1 ]\nup[ treestem1 | no treecanopyMB ] -> [ treestem1 | treecanopyMB ]\nright[ no treecanopyLB | treecanopyMB | no treecanopyRB ] -> [ treecanopyLB|treecanopyMB | treecanopyRB ]\nright[ no treecanopyLLB | treecanopyLB ] -> [ treecanopyLLB|treecanopyLB ]\nup[ treecanopyMB | no treecanopyMM ] -> [ treecanopyMB | treecanopyMM ]\nup[ treecanopyMM | no treecanopyMT ] -> [ treecanopyMM | treecanopyMT ]\nright[treecanopyMM | no treedec ] -> [treecanopyMM|treecanopyRM]\nleft[treecanopyMM | no treedec] -> [treecanopyMM | treecanopyLM]\n\n(generates tree collision)\n[treebase1] -> [treebase1 wall]\n\n(-----------------------------------------------------player)\n(steps left from facing right)\nleft [> player1R] -> [> anim1L]\nleft [> player2R] -> [> anim2L]\nright [> player1L] -> [> anim1R]\nright [> player2L] -> [> anim2R]\n\n(step animation)\nright up down[> player1R] -> [> anim1R]\nright up down[> player2R] -> [> anim2R]\n[> anim1R] -> [> player2R]sfx0\n[> anim2R] -> [> player1R]sfx1\n\nleft up down[> player1L] -> [> anim1L]\nleft up down[> player2L] -> [> anim2L]\n[> anim1L] -> [> player2L]sfx0\n[> anim2L] -> [> player1L]sfx1\n\n(---------------playerbox animations)\n\n(steps left from facing right)\nleft [> playerbox1R] -> [> animbox1L]\nleft [> playerbox2R] -> [> animbox2L]\nright [> playerbox1L] -> [> animbox1R]\nright [> playerbox2L] -> [> animbox2R]\n\n(step animation)\nright up down[> playerbox1R] -> [> animbox1R]\nright up down[> playerbox2R] -> [> animbox2R]\n[> animbox1R] -> [> playerbox2R]sfx0\n[> animbox2R] -> [> playerbox1R]sfx1\n\nleft up down[> playerbox1L] -> [> animbox1L]\nleft up down[> playerbox2L] -> [> animbox2L]\n[> animbox1L] -> [> playerbox2L]sfx0\n[> animbox2L] -> [> playerbox1L]sfx1\n\n(-----------------------------------)\n\n(pushes box)\n[> player | box] -> [> player | > box]\n[> player | playerBoxInactive] -> [> player | > playerBoxInactive]\n\n(pushes box into shallow)\n[ > box | shallow wall | ] -> [ smoke1L | land | smoke1R] sfx5\n[ > player | shallow wall | ] -> [ smoke1L | land | smoke1R] sfx5 \n\n(button)\n[> box | button] -> [> box | button]sfx2\n[> player | button] -> [> player | button]sfx2\n[> player | pressedbutton] -> [> player | pressedbutton]sfx2\n[box button] -> [box pressedbutton]\n[player button] -> [player pressedbutton]sfx2\n[playerStandR button] -> [playerStandR pressedbutton]\n[pressedbutton no player no box no playerStandR no playerbox] -> [button]\n\n(-----------------------------swap)\n\n(player -> box)\n[playerBoxSwapAnim1R]->[playerBox1R]\n[playerswap1R][playerTop][playerBoxInactive] -> [playerswap2R][playerTopInactive][playerBoxSwapAnim1R]\n[action player][playerBoxInactive] -> [playerswap1R][playerBoxInactive]sfx3\n\n(box -> player)\n[playerswap2R]->[playerBox1R]\n[playerswap1R][playerTop][playerBoxInactive] -> [playerswap2R][playerTopInactive][playerBoxSwapAnim1R]\n[action playerbox][playerswap2R] -> [playerBoxSwapAnim1R][playerswap1R]sfx3\n\n(manages extra tiles of movable entities)\n[boxtop] -> []\nlate up[box|no boxtop]->[box|boxtop]\n[playerBoxTop] -> []\nlate up[playerBox|no playerBoxTop]->[playerBox|playerBoxTop]\n[playerBoxTopInactive] -> []\nlate up[playerBoxInactive | ] -> [playerBoxInactive | playerBoxTopInactive]\n[playerTop] -> []\nlate up[playerStandR |no playerTop] -> [playerStandR | playerTop]\nlate up[player |no playerTop] -> [player | playerTop]\nlate up[bush | no bushtop] -> [bush | bushtop]\n\n\n(--------------------------------------------win condition)\n\n[buttonStateOff][pressedbutton][no button] -> [buttonState][pressedbutton][]\n[buttonState][button] -> [buttonStateOff][pressedbutton]\n[buttonState][player] -> [buttonState][playerStandR]\n==============\nWINCONDITIONS\n==============\nno buttonStateOff\nall buttonState on outscreen5\n\n=======\nLEVELS\n=======\nMessage WELCOME TO THE ISLE OF BLOKS\n\n(1)\nw..............\n...............\n...............\n.......##lc#...\n...cl#######...\n...####xo#o#...\n...#########...\n...#p###.......\n...###.........\n...............\n...............\n\nmessage NEW BOX+\n(2)\nw.............\n..............\n...###..c##...\n...#o#..co#...\n...####x###...\n...#x#..c##...\n...#p#..cx#...\n...###..###...\n..............\n..............\n\nmessage TOO MANY BOXES\n(3)\nw...............\n................\n..........cl....\n.....ox#xx#x....\n.....x#x##x#....\n.....#x#x##x....\n....cx####p#....\n................\n................\n\nmessage A HOLE NEW MECHANIC\n(4)\nw.............\n..............\n...###...#l#..\n...#x#xm###...\n...#p#...x#...\n...#o#..o##...\n..............\n..............\n\nmessage BUILD-A-BRIDGE\n(5)\nw.................\n..................\n..................\n....###.....#l#...\n....####m####x#...\n...###x...#x###...\n..o##p#...cc#.....\n...#####m##o#.....\n..................\n..................\n\nmessage BEWARE OF POTHOLES\n(6)\nw.................\n..................\n.......#o#........\n.......#m#........\n.......#cm........\n...o...###..#l....\n...#####x######...\n...m.#mm##mp#x#...\n...#######m..##...\n...##.............\n..................\n..................\n\nmessage HOLESOME\n(7)\nw.................\n..................\n...........####...\n...........#xx#...\n...........x###...\n...#mmmmmm##x#x#..\n...ommmmmm#x#p##..\n..................\n..................\n\nmessage HOTDOG STYLE\nw........................\n.....##.....##...........\n.....#######x######......\n...om#p#....m....#x#m#...\n......######x#######.....\n...........##.....##.....\n.........................\n\nmessage BOXING RING\n(8)\nw.............\n..............\n...mmmmmmmm...\n...mo####om...\n...m###x##m...\n...m#####xm...\n...m#x#p##m...\n...m###x##m...\n...mox###om...\n...mmmmmmmm...\n..............\n..............\n\n(11)\nmessage ISLE OF BOXES, OF BOXES AND BRIDGES\nw..................\n...................\n...................\n........#lc#o#.....\n...........###.....\n......mmmmm#x#.....\n...####mxmm###.....\n...#px#mmmmm.......\n...##x#....#####...\n...####....#x#o#...\n...........#####...\n...................\n...................\n\nmessage RING OF THE BOX\n(9)\nw..............\n...............\n...####.####...\n...#xo#m##p#...\n...####.####...\n...###...#x#...\n....m.....m....\n...###...###...\n...####.####...\n...#x##m##x#...\n...####.####...\n...............\n\nmessage CONSTRUCTION CREW\n(10)\nw....................\n.....................\n..........o.....#l...\n...####..c#.######...\n...##x####mm#x##x#...\n...###x#p#mmox##x#...\n...#o#####mm#x##x#...\n..........#.cc.......\n..........o..........\n.....................\n.....................\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",0,"tick",1,"tick","tick",1,"tick",0,"tick",1,"tick",1,"tick",0,"tick",3,"tick","tick","tick","tick","tick",4,"tick","tick",4,0,"tick","tick",3,"tick","tick","tick","tick","tick","tick","tick","undo","tick","tick",2,"tick","tick",2,"tick",3,"tick","tick","tick",2,"tick",3,"tick",2,"tick",1,"tick","tick",0,"tick",3,"tick","tick",3,"tick",3,"tick","tick",3,"tick",3,"tick","tick",3,2,"tick","tick",2,"tick",1,"tick",0,"tick",3,"tick",0,1,"tick","tick",1,"tick",1,"tick","tick",1,"tick","tick","tick","tick",1,"tick",0,"tick",1,"tick",2,"tick","tick",3,"tick","tick","tick",1,"tick",2,"tick",3,"tick",2,1,"tick","tick",1,"tick","tick",1,"tick","tick",1,"tick","tick","tick",3,"tick","tick","tick",0,"tick","tick","tick","tick","tick","tick","tick","tick"],"background bground3 buttonstateoff wall:0,background bground3 wall:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,background bground3 button land:2,background bground3 cornerlandtr:3,background bground3 cornerclifftr shallowwaterlrd wall:4,background bground3 cornerlanddr:5,3,background bground3 cornerclifftr wall:6,1,1,1,1,1,1,1,\nbackground bground3 land:7,background bground3 boxtop cliff wall:8,background bground3 box land:9,background bground3 cornerlandtl:10,background bground3 cornerclifftl wall:11,1,1,1,1,1,1,1,7,7,7,background bground3 cliff wall:12,1,1,\n1,1,1,1,1,1,7,7,7,12,1,1,1,1,5,7,7,7,\n7,7,7,12,1,1,1,1,2,background bground3 bushtop cliff shallowwaterlrd wall:13,background bground3 bush cornerlanddl wall:14,7,7,7,7,12,1,1,\n1,1,background bground3 cornerlanddl:15,7,background bground3 cornerclifftl shallowwaterlrd wall:16,15,7,7,10,11,1,1,1,1,1,1,1,1,\n7,background bground3 cliff shallowwaterlrd wall:17,background bground3 shallowwaterfull wall:18,background bground3 shallowwaterbottom wall:19,1,1,1,1,1,background bground3 treecanopyllb wall:20,1,1,7,3,6,1,1,1,\n1,1,background bground3 treecanopylm wall:21,background bground3 treecanopylb wall:22,1,background bground3 cornerlanddr treebase0:23,7,7,12,1,1,1,1,background bground3 treecanopymt wall:24,background bground3 treecanopymm wall:25,background bground3 treecanopymb wall:26,background bground3 treestem1 wall:27,background bground3 cornerlanddl treebase1 wall:28,\n7,7,3,6,1,1,1,1,background bground3 treecanopyrm wall:29,background bground3 treecanopyrb wall:30,1,background bground3 treebase2 wall:31,15,7,10,11,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n",11,"1645574325242.0908"] + ], ]; From 9552c7c1f7e6be7601c78d7f70cb7ffa353e04c3 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 23 Feb 2022 14:46:08 +0100 Subject: [PATCH 024/122] fixes #838 --- src/js/codemirror/anyword-hint.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/js/codemirror/anyword-hint.js b/src/js/codemirror/anyword-hint.js index 894796893..9d15066fc 100644 --- a/src/js/codemirror/anyword-hint.js +++ b/src/js/codemirror/anyword-hint.js @@ -194,14 +194,14 @@ DIRECTION+ */ var last_idx = state.current_line_wip_array.length-1; - if (last_idx>=0 && state.current_line_wip_array[last_idx]==="ERROR"){ + if (last_idx>0 && state.current_line_wip_array[last_idx]==="ERROR"){ //if there's an error, just try to match greedily candlists.push(SOUND_VERBS); candlists.push(SOUND_DIRECTIONS); candlists.push(SOUND_EVENTS); addObjects=true; excludeAggregates=true; - } else if (state.current_line_wip_array.length.length===0){ + } else if (state.current_line_wip_array.length<=1 ){ candlists.push(SOUND_EVENTS); addObjects=true; excludeAggregates=true; From 7d9dad4f520cdbeaf565e45fdc1bf036d95d05df Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 23 Feb 2022 15:04:01 +0100 Subject: [PATCH 025/122] fixes #834 20 felt better than 10 --- src/index.html | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/index.html b/src/index.html index 58408583f..1b8d29004 100644 --- a/src/index.html +++ b/src/index.html @@ -193,7 +193,28 @@

PuzzleScript!

} data.push(item); } - data = shuffle(data); + //reverse the array + data.reverse(); + //now the first element is the newest. + + //Shuffle the first ten elements of data + var firstten = data.splice(0,20); + shuffle(firstten); + //Prepend the first ten back + data = firstten.concat(data); + + //take the tail + var tail = data.splice(1,data.length); + //shuffle the whole tail + shuffle(tail); + //paste it back + data = data.concat(tail); + //now the first element of the array is a random taken from the first then, and the rest is shuffled. + //swap the first and second elements (so that the new game will be in the middle) + var temp = data[0]; + data[0] = data[1]; + data[1] = temp; + for (var i=0;i Date: Wed, 23 Feb 2022 15:31:54 +0100 Subject: [PATCH 026/122] fixes #775 --- src/js/compiler.js | 10 +++++++++- src/js/graphics.js | 10 ++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/js/compiler.js b/src/js/compiler.js index 1e9157336..c7bf841cf 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -160,7 +160,7 @@ function generateExtraMembers(state) { } } - + var glyphOrder = []; //calculate glyph dictionary var glyphDict = {}; for (var n in state.objects) { @@ -169,6 +169,7 @@ function generateExtraMembers(state) { var mask = blankMask.concat([]); mask[o.layer] = o.id; glyphDict[n] = mask; + glyphOrder.push([o.lineNumber,n]); } } @@ -185,6 +186,7 @@ function generateExtraMembers(state) { if ((!(key in glyphDict) || (glyphDict[key] === undefined)) && (glyphDict[val] !== undefined)) { added = true; glyphDict[key] = glyphDict[val]; + glyphOrder.push([dat.lineNumber,key]); } } @@ -230,11 +232,17 @@ function generateExtraMembers(state) { } added = true; glyphDict[dat[0]] = mask; + glyphOrder.push([dat.lineNumber,key]); } } } + //sort glyphs line number + glyphOrder.sort((a,b)=>a[0] - b[0]); + glyphOrder = glyphOrder.map(a=>a[1]); + state.glyphDict = glyphDict; + state.glyphOrder = glyphOrder; var aggregatesDict = {}; for (var i = 0; i < state.legend_aggregates.length; i++) { diff --git a/src/js/graphics.js b/src/js/graphics.js index 7f49b1e43..17ad5f23e 100644 --- a/src/js/graphics.js +++ b/src/js/graphics.js @@ -113,7 +113,7 @@ function generateGlyphImages() { glyphImages=[]; seenobjects = {}; - for (var n in state.glyphDict) { + for (var n of state.glyphOrder) { if (n.length==1 && state.glyphDict.hasOwnProperty(n)) { var g=state.glyphDict[n]; @@ -270,13 +270,7 @@ x = 0; y = 0; function glyphCount(){ - var count=0; - for (var n in state.glyphDict) { - if (n.length==1 && state.glyphDict.hasOwnProperty(n)) { - count++; - } - } - return count; + return state.glyphOrder.length; } function redraw() { From a7cd1534a90bc0288c58c2baaf1d720c7167572b Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 23 Feb 2022 16:33:09 +0100 Subject: [PATCH 027/122] fixes #840 --- src/js/buildStandalone.js | 16 +++++++++-- src/play.html | 5 +--- src/standalone.html | 58 +++++++++++++++++++++++---------------- 3 files changed, 48 insertions(+), 31 deletions(-) diff --git a/src/js/buildStandalone.js b/src/js/buildStandalone.js index 481851416..69a35596f 100644 --- a/src/js/buildStandalone.js +++ b/src/js/buildStandalone.js @@ -39,12 +39,17 @@ function buildStandalone(sourceCode) { } var homepage_stripped = homepage.replace(/^https?:\/\//,''); + var background_color="black"; if ('background_color' in state.metadata) { - htmlString = htmlString.replace(/black;\/\*Don\'t/g,state.bgcolor+';\/\*Don\'t'); + background_color=state.bgcolor; } + htmlString = htmlString.replace(/___BGCOLOR___/g,background_color); + + var text_color="lightblue"; if ('text_color' in state.metadata) { - htmlString = htmlString.replace(/lightblue;\/\*Don\'t/g,state.fgcolor+';\/\*Don\'t'); + text_color = state.fgcolor; } + htmlString = htmlString.replace(/___TEXTCOLOR___/g,text_color); htmlString = htmlString.replace(/__GAMETITLE__/g,title); @@ -52,9 +57,14 @@ function buildStandalone(sourceCode) { htmlString = htmlString.replace(/__HOMEPAGE__/g,homepage); htmlString = htmlString.replace(/__HOMEPAGE_STRIPPED_PROTOCOL__/g,homepage_stripped); - // $ has special meaning to JavaScript's String.replace ($0, $1, etc.) Escape $ as $$. + // $ has special meaning to JavaScript's String.replace ($0, $1, etc.) + // '$$'s are inserted as single '$'s. + + // First we double all strings - remember that replace interprets '$$' + // as a single'$', so we need to type four to double sourceCode = sourceCode.replace(/\$/g, '$$$$'); + // Then when we substitute them, the doubled $'s will be reduced to single ones. htmlString = htmlString.replace(/__GAMEDAT__/g,sourceCode); var BB = get_blob(); diff --git a/src/play.html b/src/play.html index 246ec26cc..7d482f970 100644 --- a/src/play.html +++ b/src/play.html @@ -26,12 +26,9 @@ image-rendering: -webkit-crisp-edges; image-rendering: pixelated; image-rendering: crisp-edges; - } .homepagelink { - - overflow: hidden; text-overflow: ellipsis; max-width: 50%; @@ -45,7 +42,7 @@ text-overflow: ellipsis; height:2em; margin-top:0.5em; - margin-bottom: 0.5em;; + margin-bottom: 0.5em; } a { color:lightblue; diff --git a/src/standalone.html b/src/standalone.html index b4322f5af..240e210c1 100644 --- a/src/standalone.html +++ b/src/standalone.html @@ -7,8 +7,9 @@ -

__GAMETITLE__

+

__GAMETITLE__

+ id="gameCanvas" >
From af4a4d77fb273d9ff05fc8c72590c0c0136538ae Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 23 Feb 2022 17:47:14 +0100 Subject: [PATCH 028/122] fixes #780 So the problem was that I was using the raw string declarations of font['X'], and the html inlining process was altering the multiline-strings by adding a space to the end of each line? I'll look into improving the standalone generation pipeline/migrating to a different library next. --- src/js/graphics.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/js/graphics.js b/src/js/graphics.js index 17ad5f23e..c44dd90ca 100644 --- a/src/js/graphics.js +++ b/src/js/graphics.js @@ -546,13 +546,12 @@ function canvasResize() { var w = 5;//sprites[1].dat.length; var h = 5;//sprites[1].dat[0].length; - if (textMode) { w=5 + 1; - h=font['X'].length/(w) + 1; + var xchar = font['X'].split('\n').map(a=>a.trim()); + h = xchar.length; } - cellwidth =w * Math.max( ~~(cellwidth / w),1); cellheight = h * Math.max(~~(cellheight / h),1); From 654393d6169f7af11c2a44d32158f2910eae0347 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 23 Feb 2022 18:10:26 +0100 Subject: [PATCH 029/122] work on #841 * moving from inliner->web-resource-inliner because of it modifying template strings * now the standalon_inlined.txt in /bin/ uses the compressed js, reducing file size from 400kb -> 200kb * removed the kinda pointless vestigial gamedat.js (used by standalone.html) --- compile.js | 471 +- src/editor.html | 4 +- src/js/buildStandalone.js | 2 +- src/js/gamedat.js | 3 - src/play.html | 3 +- src/standalone.html | 6 +- src/standalone_inlined.txt | 29241 ++++++++++++++++++++--------------- 7 files changed, 16649 insertions(+), 13081 deletions(-) delete mode 100644 src/js/gamedat.js diff --git a/compile.js b/compile.js index 721c88228..484d8b036 100644 --- a/compile.js +++ b/compile.js @@ -6,14 +6,14 @@ creates a highly compressed release build in bin of the contents of src packages used: -npm i inliner ncp rimraf compress-images gifsicle glob concat ycssmin terser html-minifier-terser gzipper +npm i web-resource-inliner ncp rimraf compress-images gifsicle glob concat ycssmin terser html-minifier-terser gzipper */ const fs = require("fs"); const path = require('path'); const rimraf = require('rimraf'); const compress_images = require("compress-images"); -const Inliner = require('inliner'); +var webResourceInliner = require("web-resource-inliner"); const ncp = require('ncp').ncp; const {execFileSync} = require('child_process'); const gifsicle = require('gifsicle'); @@ -48,260 +48,287 @@ fs.rmdirSync("./bin", { recursive: true }); fs.mkdirSync('./bin'); -console.log("inlining standalone template") - - -new Inliner('./src/standalone.html', function (error, html) { - // compressed and inlined HTML page - fs.writeFileSync("./src/standalone_inlined.txt",html,'utf8'); - - console.log("Copying files") - ncp.limit = 16; - ncp("./src", "./bin/", function (err) { - if (err) { - return console.error(err); - } - console.log("echo optimizing pngs"); - - rimraf.sync('./bin/images/*.png'); - - (async () => { - - - compress_images( - "./src/images/*.png", - "./bin/images/", - { compress_force: false, statistic: false, autoupdate: true }, false, - { jpg: { engine: "mozjpeg", command: ["-quality", "60"] } }, - { png: { engine: "pngcrush", command: ["-reduce", "-brute"] } }, - { svg: { engine: "svgo", command: "--multipass" } }, - { gif: { engine: "gifsicle", command: ["--colors", "64", "--use-col=web"] } }, - - function (error, completed, statistic) { - // console.log("-------------"); - // console.log(error); - // console.log(completed); - // console.log(statistic); - // console.log("-------------"); - } - ); - +console.log("Copying files") +ncp.limit = 16; +ncp("./src", "./bin/", function (err) { +if (err) { + return console.error(err); +} +console.log("echo optimizing pngs"); + +rimraf.sync('./bin/images/*.png'); + +(async () => { + + compress_images( + "./src/images/*.png", + "./bin/images/", + { compress_force: false, statistic: false, autoupdate: true }, false, + { jpg: { engine: "mozjpeg", command: ["-quality", "60"] } }, + { png: { engine: "pngcrush", command: ["-reduce", "-brute"] } }, + { svg: { engine: "svgo", command: "--multipass" } }, + { gif: { engine: "gifsicle", command: ["--colors", "64", "--use-col=web"] } }, - console.log('Optimizing gallery gifs'); + function (error, completed, statistic) { + // console.log("-------------"); + // console.log(error); + // console.log(completed); + // console.log(statistic); + // console.log("-------------"); + } + ); - const galGifDir = "./bin/Gallery/gifs"; - fs.readdirSync(galGifDir).forEach(file => { - if (fs.lstatSync(path.resolve(galGifDir, file)).isDirectory()) { - } else { - if (path.extname(file).toLowerCase()=== ".gif"){ - execFileSync(gifsicle, ['--batch','-O2',galGifDir+"/"+file]) - } - } - }); + + + console.log('Optimizing gallery gifs'); + + const galGifDir = "./bin/Gallery/gifs"; + + fs.readdirSync(galGifDir).forEach(file => { + if (fs.lstatSync(path.resolve(galGifDir, file)).isDirectory()) { + } else { + if (path.extname(file).toLowerCase()=== ".gif"){ + execFileSync(gifsicle, ['--batch','-O2',galGifDir+"/"+file]) + } + } + }); - console.log('Optimizing documentation gifs'); + console.log('Optimizing documentation gifs'); + + glob("./bin/Documentation/images/*.gif", {}, async function (er, files) { + for (filename of files){ + execFileSync(gifsicle, ['-O2','-o', filename, filename]); + } + - glob("./bin/Documentation/images/*.gif", {}, async function (er, files) { - for (filename of files){ - execFileSync(gifsicle, ['-O2','-o', filename, filename]); - } + console.log('Images optimized'); - - console.log('Images optimized'); - - - - fs.rmdirSync("./bin/js", { recursive: true }); - fs.mkdirSync('./bin/js'); - fs.rmdirSync("./bin/css", { recursive: true }); - fs.mkdirSync('./bin/css'); - fs.rmdirSync("./bin/tests", { recursive: true }); - fs.rmdirSync("./bin/Levels", { recursive: true }); - - console.log('compressing css'); - - - await concat(["./src/css/docs.css", - "./src/css/codemirror.css", - "./src/css/midnight.css", - "./src/css/console.css", - "./src/css/gamecanvas.css", - "./src/css/soundbar.css", - "./src/css/layout.css", - "./src/css/toolbar.css", - "./src/css/dialog.css", - "./src/css/show-hint.css"], - "./bin/css/combined.css"); - - console.log('css files concatenated') - - - var css = fs.readFileSync("./bin/css/combined.css", encoding='utf8'); - var min = cssmin(css); - fs.writeFileSync("./bin/css/combined.css",min,encoding="utf8"); - - - var css = fs.readFileSync("./bin/Documentation/css/bootstrap.css", encoding='utf8'); - var min = cssmin(css); - fs.writeFileSync("./bin/Documentation/css/bootstrap.css",min,encoding="utf8"); - - console.log("running js minification"); - - var files = [ - "./src/js/Blob.js", - "./src/js/FileSaver.js", - "./src/js/jsgif/LZWEncoder.js", - "./src/js/jsgif/NeuQuant.js", - "./src/js/jsgif/GIFEncoder.js", - "./src/js/storagewrapper.js", - "./src/js/debug.js", - "./src/js/globalVariables.js", - "./src/js/font.js", - "./src/js/rng.js", - "./src/js/riffwave.js", - "./src/js/sfxr.js", - "./src/js/codemirror/codemirror.js", - "./src/js/codemirror/active-line.js", - "./src/js/codemirror/dialog.js", - "./src/js/codemirror/search.js", - "./src/js/codemirror/searchcursor.js", - "./src/js/codemirror/match-highlighter.js", - "./src/js/codemirror/show-hint.js", - "./src/js/codemirror/anyword-hint.js", - "./src/js/codemirror/comment.js", - "./src/js/colors.js", - "./src/js/graphics.js", - "./src/js/inputoutput.js", - "./src/js/mobile.js", - "./src/js/buildStandalone.js", - "./src/js/engine.js", - "./src/js/parser.js", - "./src/js/editor.js", - "./src/js/compiler.js", - "./src/js/console.js", - "./src/js/soundbar.js", - "./src/js/toolbar.js", - "./src/js/layout.js", - "./src/js/addlisteners.js", - "./src/js/addlisteners_editor.js", - "./src/js/makegif.js"]; - - var corpus={}; - for (var i=0;i<\/script>/g, ""); - editor = editor.replace(//g, ' @@ -208,8 +208,6 @@ - - diff --git a/src/js/buildStandalone.js b/src/js/buildStandalone.js index 69a35596f..da4a58770 100644 --- a/src/js/buildStandalone.js +++ b/src/js/buildStandalone.js @@ -65,7 +65,7 @@ function buildStandalone(sourceCode) { sourceCode = sourceCode.replace(/\$/g, '$$$$'); // Then when we substitute them, the doubled $'s will be reduced to single ones. - htmlString = htmlString.replace(/__GAMEDAT__/g,sourceCode); + htmlString = htmlString.replace(/"__GAMEDAT__"/g,sourceCode); var BB = get_blob(); var blob = new BB([htmlString], {type: "text/plain;charset=utf-8"}); diff --git a/src/js/gamedat.js b/src/js/gamedat.js deleted file mode 100644 index 81b0c00e6..000000000 --- a/src/js/gamedat.js +++ /dev/null @@ -1,3 +0,0 @@ -//var sourceCode = "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\n==============\nWINCONDITIONS\n==============\n=======\nLEVELS\n=======\n\n.....\n.....\n..p..\n.....\n....."; -var sourceCode = __GAMEDAT__; -compile(["restart"],sourceCode); diff --git a/src/play.html b/src/play.html index 7d482f970..ac191f23d 100644 --- a/src/play.html +++ b/src/play.html @@ -242,7 +242,7 @@ www.puzzlescript.net | hack - + @@ -258,7 +258,6 @@ - @@ -264,6 +265,9 @@ - + diff --git a/src/standalone_inlined.txt b/src/standalone_inlined.txt index 873846475..46a3fc956 100644 --- a/src/standalone_inlined.txt +++ b/src/standalone_inlined.txt @@ -1,12858 +1,16401 @@ - __GAMETITLE__

__GAMETITLE__

+ + + + + + + + + + + +
+ } + } + } +} + +function cellRowMasks(rule) { + var ruleMasks = []; + var lhs = rule[1]; + for (var i = 0; i < lhs.length; i++) { + var cellRow = lhs[i]; + var rowMask = new BitVec(STRIDE_OBJ); + for (var j = 0; j < cellRow.length; j++) { + if (cellRow[j] === ellipsisPattern) + continue; + rowMask.ior(cellRow[j].objectsPresent); + } + ruleMasks.push(rowMask); + } + return ruleMasks; +} + +function cellRowMasks_Movements(rule){ + var ruleMasks_mov = []; + var lhs = rule[1]; + for (var i = 0; i < lhs.length; i++) { + var cellRow = lhs[i]; + var rowMask = new BitVec(STRIDE_MOV); + for (var j = 0; j < cellRow.length; j++) { + if (cellRow[j] === ellipsisPattern) + continue; + rowMask.ior(cellRow[j].movementsPresent); + } + ruleMasks_mov.push(rowMask); + } + return ruleMasks_mov; +} + +function collapseRules(groups) { + for (var gn = 0; gn < groups.length; gn++) { + var rules = groups[gn]; + for (var i = 0; i < rules.length; i++) { + var oldrule = rules[i]; + var newrule = [0, [], oldrule.rhs.length > 0, oldrule.lineNumber /*ellipses,group number,rigid,commands,randomrule,[cellrowmasks]*/ ]; + var ellipses = []; + for (var j = 0; j < oldrule.lhs.length; j++) { + ellipses.push(false); + } + + newrule[0] = dirMasks[oldrule.direction]; + for (var j = 0; j < oldrule.lhs.length; j++) { + var cellrow_l = oldrule.lhs[j]; + for (var k = 0; k < cellrow_l.length; k++) { + if (cellrow_l[k] === ellipsisPattern) { + if (ellipses[j]) { + logError("You can't use two ellipses in a single cell match pattern. If you really want to, please implement it yourself and send me a patch :) ", oldrule.lineNumber); + } + ellipses[j] = true; + } + } + newrule[1][j] = cellrow_l; + } + newrule.push(ellipses); + newrule.push(oldrule.groupNumber); + newrule.push(oldrule.rigid); + newrule.push(oldrule.commands); + newrule.push(oldrule.randomRule); + newrule.push(cellRowMasks(newrule)); + newrule.push(cellRowMasks_Movements(newrule)); + rules[i] = new Rule(newrule); + } + } + matchCache = {}; // clear match cache so we don't slowly leak memory +} + + + +function ruleGroupDiscardOverlappingTest(ruleGroup) { + if (ruleGroup.length === 0) + return; + + var discards=[]; + + for (var i = 0; i < ruleGroup.length; i++) { + var rule = ruleGroup[i]; + if (rule.hasOwnProperty('discard')) { + + var beforesame = i===0 ? false : ruleGroup[i-1].lineNumber === rule.lineNumber; + var aftersame = i===(ruleGroup.length-1) ? false : ruleGroup[i+1].lineNumber === rule.lineNumber; + + ruleGroup.splice(i, 1); + + var found=false; + for(var j=0;j1){ + parenthetical = " (ditto for "; + for (var j=1;j1){ + parenthetical+=", " + + if (j===discards.length-1){ + parenthetical += "and "; + } + } + + const thisdiscard = discards[j]; + const p1 = thisdiscard[0]; + const p2 = thisdiscard[1]; + parenthetical += `${p1}/${p2}`; + + if (j===3 && discards.length>4){ + parenthetical+=" etc."; + break; + } + } + parenthetical += ")"; + } + + logError(`${example[0]} and ${example[1]} can never overlap${parenthetical}, but this rule requires that to happen, so it's being culled.`, rule.lineNumber); + } + i--; + } + } +} + +function arrangeRulesByGroupNumber(state) { + var aggregates = {}; + var aggregates_late = {}; + for (var i = 0; i < state.rules.length; i++) { + var rule = state.rules[i]; + var targetArray = aggregates; + if (rule.late) { + targetArray = aggregates_late; + } + + if (targetArray[rule.groupNumber] == undefined) { + targetArray[rule.groupNumber] = []; + } + targetArray[rule.groupNumber].push(rule); + } + + var result = []; + for (var groupNumber in aggregates) { + if (aggregates.hasOwnProperty(groupNumber)) { + var ruleGroup = aggregates[groupNumber]; + ruleGroupDiscardOverlappingTest(ruleGroup); + if (ruleGroup.length > 0) { + result.push(ruleGroup); + } + } + } + var result_late = []; + for (var groupNumber in aggregates_late) { + if (aggregates_late.hasOwnProperty(groupNumber)) { + var ruleGroup = aggregates_late[groupNumber]; + ruleGroupDiscardOverlappingTest(ruleGroup); + if (ruleGroup.length > 0) { + result_late.push(ruleGroup); + } + } + } + state.rules = result; + + //check that there're no late movements with direction requirements on the lhs + state.lateRules = result_late; +} + +function generateRigidGroupList(state) { + var rigidGroupIndex_to_GroupIndex = []; + var groupIndex_to_RigidGroupIndex = []; + var groupNumber_to_GroupIndex = []; + var groupNumber_to_RigidGroupIndex = []; + var rigidGroups = []; + for (var i = 0; i < state.rules.length; i++) { + var ruleset = state.rules[i]; + var rigidFound = false; + for (var j = 0; j < ruleset.length; j++) { + var rule = ruleset[j]; + if (rule.isRigid) { + rigidFound = true; + } + } + rigidGroups[i] = rigidFound; + if (rigidFound) { + var groupNumber = ruleset[0].groupNumber; + groupNumber_to_GroupIndex[groupNumber] = i; + var rigid_group_index = rigidGroupIndex_to_GroupIndex.length; + groupIndex_to_RigidGroupIndex[i] = rigid_group_index; + groupNumber_to_RigidGroupIndex[groupNumber] = rigid_group_index; + rigidGroupIndex_to_GroupIndex.push(i); + } + } + if (rigidGroupIndex_to_GroupIndex.length > 30) { + logError("There can't be more than 30 rigid groups (rule groups containing rigid members).", rules[0][0][3]); + } + + state.rigidGroups = rigidGroups; + state.rigidGroupIndex_to_GroupIndex = rigidGroupIndex_to_GroupIndex; + state.groupNumber_to_RigidGroupIndex = groupNumber_to_RigidGroupIndex; + state.groupIndex_to_RigidGroupIndex = groupIndex_to_RigidGroupIndex; +} + +function getMaskFromName(state, name) { + var objectMask = new BitVec(STRIDE_OBJ); + if (name in state.objects) { + var o = state.objects[name]; + objectMask.ibitset(o.id); + } + + if (name in state.aggregatesDict) { + var objectnames = state.aggregatesDict[name]; + for (var i = 0; i < objectnames.length; i++) { + var n = objectnames[i]; + var o = state.objects[n]; + objectMask.ibitset(o.id); + } + } + + if (name in state.propertiesDict) { + var objectnames = state.propertiesDict[name]; + for (var i = 0; i < objectnames.length; i++) { + var n = objectnames[i]; + var o = state.objects[n]; + objectMask.ibitset(o.id); + } + } + + if (name in state.synonymsDict) { + var n = state.synonymsDict[name]; + var o = state.objects[n]; + objectMask.ibitset(o.id); + } + + if (objectMask.iszero()) { + logErrorNoLine("error, didn't find any object called player, either in the objects section, or the legends section. there must be a player!"); + } + return objectMask; +} + +function generateMasks(state) { + state.playerMask = getMaskFromName(state, 'player'); + + var layerMasks = []; + var layerCount = state.collisionLayers.length; + for (var layer = 0; layer < layerCount; layer++) { + var layerMask = new BitVec(STRIDE_OBJ); + for (var j = 0; j < state.objectCount; j++) { + var n = state.idDict[j]; + var o = state.objects[n]; + if (o.layer == layer) { + layerMask.ibitset(o.id); + } + } + layerMasks.push(layerMask); + } + state.layerMasks = layerMasks; + + var objectMask = {}; + for (var n in state.objects) { + if (state.objects.hasOwnProperty(n)) { + var o = state.objects[n]; + objectMask[n] = new BitVec(STRIDE_OBJ); + objectMask[n].ibitset(o.id); + } + } + + // Synonyms can depend on properties, and properties can depend on synonyms. + // Process them in order by combining & sorting by linenumber. + + var synonyms_and_properties = state.legend_synonyms.concat(state.legend_properties); + synonyms_and_properties.sort(function(a, b) { + return a.lineNumber - b.lineNumber; + }); + + for (var i = 0; i < synonyms_and_properties.length; i++) { + var synprop = synonyms_and_properties[i]; + if (synprop.length == 2) { + // synonym (a = b) + objectMask[synprop[0]] = objectMask[synprop[1]]; + } else { + // property (a = b or c) + var val = new BitVec(STRIDE_OBJ); + for (var j = 1; j < synprop.length; j++) { + var n = synprop[j]; + val.ior(objectMask[n]); + } + objectMask[synprop[0]] = val; + } + } + + //use \n as a delimeter for internal-only objects + var all_obj = new BitVec(STRIDE_OBJ); + all_obj.inot(); + objectMask["\nall\n"] = all_obj; + + state.objectMasks = objectMask; +} + +function checkObjectsAreLayered(state) { + for (var n in state.objects) { + if (state.objects.hasOwnProperty(n)) { + var found = false; + for (var i = 0; i < state.collisionLayers.length; i++) { + var layer = state.collisionLayers[i]; + for (var j = 0; j < layer.length; j++) { + if (layer[j] === n) { + found = true; + break; + } + } + if (found) { + break; + } + } + if (found === false) { + var o = state.objects[n]; + logError('Object "' + n.toUpperCase() + '" has been defined, but not assigned to a layer.', o.lineNumber); + } + } + } +} + +function twiddleMetaData(state) { + var newmetadata = {}; + for (var i = 0; i < state.metadata.length; i += 2) { + var key = state.metadata[i]; + var val = state.metadata[i + 1]; + newmetadata[key] = val; + } + + if (newmetadata.flickscreen !== undefined) { + var val = newmetadata.flickscreen; + var coords = val.split('x'); + var intcoords = [parseInt(coords[0]), parseInt(coords[1])]; + newmetadata.flickscreen = intcoords; + } + if (newmetadata.zoomscreen !== undefined) { + var val = newmetadata.zoomscreen; + var coords = val.split('x'); + var intcoords = [parseInt(coords[0]), parseInt(coords[1])]; + newmetadata.zoomscreen = intcoords; + } + + state.metadata = newmetadata; +} + +function processWinConditions(state) { + // [-1/0/1 (no,some,all),ob1,ob2] (ob2 is background by default) + var newconditions = []; + for (var i = 0; i < state.winconditions.length; i++) { + var wincondition = state.winconditions[i]; + if (wincondition.length == 0) { + return; + } + var num = 0; + switch (wincondition[0]) { + case 'no': + { num = -1; break; } + case 'all': + { num = 1; break; } + } + + var lineNumber = wincondition[wincondition.length - 1]; + + var n1 = wincondition[1]; + var n2; + if (wincondition.length == 5) { + n2 = wincondition[3]; + } else { + n2 = '\nall\n'; + } + + var mask1 = 0; + var mask2 = 0; + if (n1 in state.objectMasks) { + mask1 = state.objectMasks[n1]; + } else { + logError('Unwelcome term "' + n1 + '" found in win condition. Win conditions objects have to be objects or properties (defined using "or", in terms of other properties)', lineNumber); + } + if (n2 in state.objectMasks) { + mask2 = state.objectMasks[n2]; + } else { + logError('Unwelcome term "' + n2 + '" found in win condition. Win conditions objects have to be objects or properties (defined using "or", in terms of other properties)', lineNumber); + } + var newcondition = [num, mask1, mask2, lineNumber]; + newconditions.push(newcondition); + } + state.winconditions = newconditions; +} + +function printCellRow(cellRow) { + var result = "[ "; + for (var i = 0; i < cellRow.length; i++) { + if (i > 0) { + result += "| "; + } + var cell = cellRow[i]; + for (var j = 0; j < cell.length; j += 2) { + var direction = cell[j]; + var object = cell[j + 1] + if (direction === "...") { + result += direction + " "; + } else { + result += direction + " " + object + " "; + } + } + } + result += "] "; + return result; +} + +function cacheRuleStringRep(rule) { + var result = "(" + rule.lineNumber + ") " + rule.direction.toString().toUpperCase() + " "; + if (rule.rigid) { + result = "RIGID " + result + " "; + } + if (rule.randomRule) { + result = "RANDOM " + result + " "; + } + if (rule.late) { + result = "LATE " + result + " "; + } + for (var i = 0; i < rule.lhs.length; i++) { + var cellRow = rule.lhs[i]; + result = result + printCellRow(cellRow); + } + result = result + "-> "; + for (var i = 0; i < rule.rhs.length; i++) { + var cellRow = rule.rhs[i]; + result = result + printCellRow(cellRow); + } + for (var i = 0; i < rule.commands.length; i++) { + var command = rule.commands[i]; + if (command.length === 1) { + result = result + command[0].toString(); + } else { + result = result + '(' + command[0].toString() + ", " + command[1].toString() + ') '; + } + } + //print commands next + rule.stringRep = result; +} + +function cacheAllRuleNames(state) { + + for (var i = 0; i < state.rules.length; i++) { + var rule = state.rules[i]; + cacheRuleStringRep(rule); + } +} + +function printRules(state) { + var output = ""; + var loopIndex = 0; + var loopEnd = -1; + var discardcount = 0; + for (var i = 0; i < state.rules.length; i++) { + var rule = state.rules[i]; + if (loopIndex < state.loops.length) { + if (state.loops[loopIndex][0] < rule.lineNumber) { + output += "STARTLOOP
"; + loopIndex++; + if (loopIndex < state.loops.length) { // don't die with mismatched loops + loopEnd = state.loops[loopIndex][0]; + loopIndex++; + } + } + } + if (loopEnd !== -1 && loopEnd < rule.lineNumber) { + output += "ENDLOOP
"; + loopEnd = -1; + } + if (rule.hasOwnProperty('discard')) { + discardcount++; + } else { + var sameGroupAsPrevious = i>0 && state.rules[i-1].groupNumber === rule.groupNumber; + if (sameGroupAsPrevious){ + output += '+ '; + } else { + output += '  '; + } + output += rule.stringRep + "
"; + } + } + if (loopEnd !== -1) { // no more rules after loop end + output += "ENDLOOP
"; + } + output += "===========
"; + output = "
Rule Assembly : (" + (state.rules.length - discardcount) + " rules)
===========
" + output; + consolePrint(output); +} + +function removeDuplicateRules(state) { + var record = {}; + var newrules = []; + var lastgroupnumber = -1; + for (var i = state.rules.length - 1; i >= 0; i--) { + var r = state.rules[i]; + var groupnumber = r.groupNumber; + if (groupnumber !== lastgroupnumber) { + record = {}; + } + var r_string = r.stringRep; + if (record.hasOwnProperty(r_string)) { + state.rules.splice(i, 1); + } else { + record[r_string] = true; + } + lastgroupnumber = groupnumber; + } +} + +function generateLoopPoints(state) { + var loopPoint = {}; + var loopPointIndex = 0; + var outside = true; + var source = 0; + var target = 0; + if (state.loops.length % 2 === 1) { + logErrorNoLine("have to have matching number of 'startLoop' and 'endLoop' loop points."); + } + + for (var j = 0; j < state.loops.length; j++) { + var loop = state.loops[j]; + for (var i = 0; i < state.rules.length; i++) { + var ruleGroup = state.rules[i]; + + var firstRule = ruleGroup[0]; + var lastRule = ruleGroup[ruleGroup.length - 1]; + + var firstRuleLine = firstRule.lineNumber; + var lastRuleLine = lastRule.lineNumber; + + if (outside) { + if (firstRuleLine >= loop[0]) { + target = i; + outside = false; + if (loop[1] === -1) { + logErrorNoLine("Need have to have matching number of 'startLoop' and 'endLoop' loop points."); + } + break; + } + } else { + if (firstRuleLine >= loop[0]) { + source = i - 1; + loopPoint[source] = target; + outside = true; + if (loop[1] === 1) { + logErrorNoLine("Need have to have matching number of 'startLoop' and 'endLoop' loop points."); + } + break; + } + } + } + } + if (outside === false) { + var source = state.rules.length; + loopPoint[source] = target; + } else {} + state.loopPoint = loopPoint; + + loopPoint = {}; + outside = true; + for (var j = 0; j < state.loops.length; j++) { + var loop = state.loops[j]; + for (var i = 0; i < state.lateRules.length; i++) { + var ruleGroup = state.lateRules[i]; + + var firstRule = ruleGroup[0]; + var lastRule = ruleGroup[ruleGroup.length - 1]; + + var firstRuleLine = firstRule.lineNumber; + var lastRuleLine = lastRule.lineNumber; + + if (outside) { + if (firstRuleLine >= loop[0]) { + target = i; + outside = false; + if (loop[1] === -1) { + logErrorNoLine("Need have to have matching number of 'startLoop' and 'endLoop' loop points."); + } + break; + } + } else { + if (firstRuleLine >= loop[0]) { + source = i - 1; + loopPoint[source] = target; + outside = true; + if (loop[1] === 1) { + logErrorNoLine("Need have to have matching number of 'startLoop' and 'endLoop' loop points."); + } + break; + } + } + } + } + if (outside === false) { + var source = state.lateRules.length; + loopPoint[source] = target; + } else {} + state.lateLoopPoint = loopPoint; +} + +function validSeed(seed) { + return /^\s*\d+\s*$/.exec(seed) !== null; +} + +var soundDirectionIndicatorMasks = { + 'up': parseInt('00001', 2), + 'down': parseInt('00010', 2), + 'left': parseInt('00100', 2), + 'right': parseInt('01000', 2), + 'horizontal': parseInt('01100', 2), + 'vertical': parseInt('00011', 2), + 'orthogonal': parseInt('01111', 2), + '___action____': parseInt('10000', 2) +}; + +var soundDirectionIndicators = ["up", "down", "left", "right", "horizontal", "vertical", "orthogonal", "___action____"]; + + +function generateSoundData(state) { + var sfx_Events = {}; + var sfx_CreationMasks = []; + var sfx_DestructionMasks = []; + var sfx_MovementMasks = []; + var sfx_MovementFailureMasks = []; + + for (var i = 0; i < state.sounds.length; i++) { + var sound = state.sounds[i]; + if (sound.length <= 1) { + continue; + } + var lineNumber = sound[sound.length - 1]; + + if (sound.length === 2) { + logError('incorrect sound declaration.', lineNumber); + continue; + } + + const v0=sound[0][0].trim(); + const t0=sound[0][1].trim(); + const v1=sound[1][0].trim(); + const t1=sound[1][1].trim(); + + var seed = sound[sound.length - 2][0]; + var seed_t = sound[sound.length - 2][1]; + if (seed_t !== 'SOUND') { + logError("Expecting sfx data, instead found \"" + seed + "\".", lineNumber); + } + + if (t0 === "SOUNDEVENT") { + + if (sound.length > 4) { + logError("too much stuff to define a sound event.", lineNumber); + } else { + //out of an abundance of caution, doing a fallback warning rather than expanding the scope of the error #779 + if (sound.length > 3) { + logWarning("too much stuff to define a sound event.", lineNumber); + } + } + + if (sfx_Events[v0] !== undefined) { + logWarning(v0.toUpperCase() + " already declared.", lineNumber); + } + sfx_Events[v0] = seed; + + } else { + var target = v0; + var verb = v1; + var directions = []; + for (var j=2;j 0 && (verb !== 'move' && verb !== 'cantmove')) { + logError('Incorrect sound declaration - cannot have directions (UP/DOWN/etc.) attached to non-directional sound verbs (CREATE is not directional, but MOVE is directional).', lineNumber); + } + + if (verb === 'action') { + verb = 'move'; + directions = ['___action____']; + } + + if (directions.length == 0) { + directions = ["orthogonal"]; + } + + + if (target in state.aggregatesDict) { + logError('cannot assign sound events to aggregate objects (declared with "and"), only to regular objects, or properties, things defined in terms of "or" ("' + target + '").', lineNumber); + } else if (target in state.objectMasks) { + + } else { + logError('Object "' + target + '" not found.', lineNumber); + } + + var objectMask = state.objectMasks[target]; + + var directionMask = 0; + for (var j = 0; j < directions.length; j++) { + directions[j] = directions[j].trim(); + var direction = directions[j]; + if (soundDirectionIndicators.indexOf(direction) === -1) { + logError('Was expecting a direction, instead found "' + direction + '".', lineNumber); + } else { + var soundDirectionMask = soundDirectionIndicatorMasks[direction]; + directionMask |= soundDirectionMask; + } + } + + + var targets = [target]; + var modified = true; + while (modified) { + modified = false; + for (var k = 0; k < targets.length; k++) { + var t = targets[k]; + if (t in state.synonymsDict) { + targets[k] = state.synonymsDict[t]; + modified = true; + } else if (t in state.propertiesDict) { + modified = true; + var props = state.propertiesDict[t]; + targets.splice(k, 1); + k--; + for (var l = 0; l < props.length; l++) { + targets.push(props[l]); + } + } + } + } + + //if verb in soundverbs_directional + if (verb === 'move' || verb === 'cantmove') { + for (var j = 0; j < targets.length; j++) { + var targetName = targets[j]; + var targetDat = state.objects[targetName]; + var targetLayer = targetDat.layer; + var shiftedDirectionMask = new BitVec(STRIDE_MOV); + shiftedDirectionMask.ishiftor(directionMask, 5 * targetLayer); + + var o = { + objectMask: objectMask, + directionMask: shiftedDirectionMask, + seed: seed + }; + + if (verb === 'move') { + sfx_MovementMasks.push(o); + } else { + sfx_MovementFailureMasks.push(o); + } + } + } + + + + var targetArray; + switch (verb) { + case "create": + { + var o = { + objectMask: objectMask, + seed: seed + } + sfx_CreationMasks.push(o); + break; + } + case "destroy": + { + var o = { + objectMask: objectMask, + seed: seed + } + sfx_DestructionMasks.push(o); + break; + } + } + } + } + + state.sfx_Events = sfx_Events; + state.sfx_CreationMasks = sfx_CreationMasks; + state.sfx_DestructionMasks = sfx_DestructionMasks; + state.sfx_MovementMasks = sfx_MovementMasks; + state.sfx_MovementFailureMasks = sfx_MovementFailureMasks; +} + + +function formatHomePage(state) { + if ('background_color' in state.metadata) { + state.bgcolor = colorToHex(colorPalette, state.metadata.background_color); + } else { + state.bgcolor = "#000000"; + } + if ('text_color' in state.metadata) { + state.fgcolor = colorToHex(colorPalette, state.metadata.text_color); + } else { + state.fgcolor = "#FFFFFF"; + } + + if (isColor(state.fgcolor) === false) { + logError("text_color in incorrect format - found " + state.fgcolor + ", but I expect a color name (like 'pink') or hex-formatted color (like '#1412FA'). Defaulting to white.") + state.fgcolor = "#FFFFFF"; + } + if (isColor(state.bgcolor) === false) { + logError("background_color in incorrect format - found " + state.bgcolor + ", but I expect a color name (like 'pink') or hex-formatted color (like '#1412FA'). Defaulting to black.") + state.bgcolor = "#000000"; + } + + if (canSetHTMLColors) { + + if ('background_color' in state.metadata) { + document.body.style.backgroundColor = state.bgcolor; + } + + if ('text_color' in state.metadata) { + var separator = document.getElementById("separator"); + if (separator != null) { + separator.style.color = state.fgcolor; + } + + var h1Elements = document.getElementsByTagName("a"); + for (var i = 0; i < h1Elements.length; i++) { + h1Elements[i].style.color = state.fgcolor; + } + + var h1Elements = document.getElementsByTagName("h1"); + for (var i = 0; i < h1Elements.length; i++) { + h1Elements[i].style.color = state.fgcolor; + } + } + } + + if ('homepage' in state.metadata) { + var url = state.metadata['homepage']; + url = url.replace("http://", ""); + url = url.replace("https://", ""); + state.metadata['homepage'] = url; + } +} + +var MAX_ERRORS = 5; + +function loadFile(str) { + var processor = new codeMirrorFn(); + var state = processor.startState(); + + var lines = str.split('\n'); + for (var i = 0; i < lines.length; i++) { + var line = lines[i]; + state.lineNumber = i + 1; + var ss = new CodeMirror.StringStream(line, 4); + do { + processor.token(ss, state); + + if (errorCount > MAX_ERRORS) { + consolePrint("too many errors, aborting compilation"); + return; + } + } + while (ss.eol() === false); + } + + // delete state.lineNumber; + + generateExtraMembers(state); + generateMasks(state); + levelsToArray(state); + rulesToArray(state); + if (state.invalid>0){ + return null; + } + + cacheAllRuleNames(state); + + removeDuplicateRules(state); + + if (state.invalid>0){ + return null; + } + + rulesToMask(state); + + + if (debugMode) { + printRules(state); + } + + arrangeRulesByGroupNumber(state); + collapseRules(state.rules); + collapseRules(state.lateRules); + + generateRigidGroupList(state); + + processWinConditions(state); + checkObjectsAreLayered(state); + + twiddleMetaData(state); + + generateLoopPoints(state); + + generateSoundData(state); + + formatHomePage(state); + + //delete intermediate representations + delete state.commentLevel; + delete state.line_should_end; + delete state.line_should_end_because; + delete state.sol_after_comment; + delete state.names; + delete state.abbrevNames; + delete state.objects_candname; + delete state.objects_section; + delete state.objects_spritematrix; + delete state.section; + delete state.subsection; + delete state.tokenIndex; + delete state.current_line_wip_array; + delete state.visitedSections; + delete state.loops; + /* + var lines = stripComments(str); + window.console.log(lines); + var sections = generateSections(lines); + window.console.log(sections); + var sss = generateSemiStructuredSections(sections);*/ + return state; +} + +var ifrm; + +function compile(command, text, randomseed) { + matchCache = {}; + forceRegenImages = true; + if (command === undefined) { + command = ["restart"]; + } + if (randomseed === undefined) { + randomseed = null; + } + lastDownTarget = canvas; + + if (text === undefined) { + var code = window.form1.code; + + var editor = code.editorreference; + + text = editor.getValue() + "\n"; + } + if (canDump === true) { + compiledText = text; + } + + errorCount = 0; + compiling = true; + errorStrings = []; + consolePrint('================================='); + try { + var state = loadFile(text); + // consolePrint(JSON.stringify(state)); + } finally { + compiling = false; + } + + if (state && state.levels && state.levels.length === 0) { + logError('No levels found. Add some levels!', undefined, true); + } + + if (errorCount > MAX_ERRORS) { + return; + } + /*catch(err) + { + if (anyErrors===false) { + logErrorNoLine(err.toString()); + } + }*/ + + if (errorCount > 0) { + if (IDE===false){ + consoleError('Errors detected during compilation; the game may not work correctly. If this is an older game, and you think it just broke because of recent changes in the puzzlescript engine, please consider dropping an email to analytic@gmail.com with a link to the game and I\'ll try make sure it\'s back working ASAP.'); + } else{ + consoleError('Errors detected during compilation; the game may not work correctly.'); + } + } else { + var ruleCount = 0; + for (var i = 0; i < state.rules.length; i++) { + ruleCount += state.rules[i].length; + } + for (var i = 0; i < state.lateRules.length; i++) { + ruleCount += state.lateRules[i].length; + } + if (command[0] == "restart") { + consolePrint('Successful Compilation, generated ' + ruleCount + ' instructions.'); + } else { + consolePrint('Successful live recompilation, generated ' + ruleCount + ' instructions.'); + + } + + + + if (IDE){ + if (state.metadata.title!==undefined) { + document.title="PuzzleScript - " + state.metadata.title; + } + } + } + + if (state!==null){//otherwise error + setGameState(state, command, randomseed); + } + + clearInputHistory(); + + consoleCacheDump(); + +} + + + +function qualifyURL(url) { + var a = document.createElement('a'); + a.href = url; + return a.href; +} + + + + + + +
+ + +
+ + + + From 8cbffb0b82991d34fdc1574ca0ecdf1a262cbc2f Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 23 Feb 2022 18:40:04 +0100 Subject: [PATCH 030/122] tidy up compile.js formatting --- compile.js | 487 +++++++++++++++++++++++++---------------------------- 1 file changed, 228 insertions(+), 259 deletions(-) diff --git a/compile.js b/compile.js index 484d8b036..c31ea70c9 100644 --- a/compile.js +++ b/compile.js @@ -6,146 +6,128 @@ creates a highly compressed release build in bin of the contents of src packages used: -npm i web-resource-inliner ncp rimraf compress-images gifsicle glob concat ycssmin terser html-minifier-terser gzipper +npm i rimraf compress-images web-resource-inliner ncp gifsicle concat ycssmin terser gzipper html-minifier-terser glob */ const fs = require("fs"); const path = require('path'); +const { execFileSync } = require('child_process'); + const rimraf = require('rimraf'); const compress_images = require("compress-images"); var webResourceInliner = require("web-resource-inliner"); const ncp = require('ncp').ncp; -const {execFileSync} = require('child_process'); const gifsicle = require('gifsicle'); const concat = require('concat'); const cssmin = require('ycssmin').cssmin; const { minify } = require("terser"); -const { Compress } = require('gzipper'); +const { Compress } = require('gzipper'); const htmlminify = require('html-minifier-terser').minify; const glob = require("glob") -var lines = fs.readFileSync(".build/buildnumber.txt",encoding='utf-8'); +var lines = fs.readFileSync(".build/buildnumber.txt", encoding = 'utf-8'); var buildnum = parseInt(lines); buildnum++; -fs.writeFileSync(".build/buildnumber.txt",buildnum.toString(),encoding='utf-8'); - +fs.writeFileSync(".build/buildnumber.txt", buildnum.toString(), encoding = 'utf-8'); //#node-qunit-phantomjs tests/tests.html --timeout 40 console.log("==========================="); -console.log('build number '+buildnum) +console.log('build number ' + buildnum) var start = new Date() -// console.log("clearing whitepsace from demos") -// cd demo -// find . -type f \( -name "*.txt" \) -exec perl -p -i -e "s/[ \t]*$//g" {} \; -// cd .. - console.log("removing bin") - fs.rmdirSync("./bin", { recursive: true }); fs.mkdirSync('./bin'); - - console.log("Copying files") ncp.limit = 16; ncp("./src", "./bin/", function (err) { -if (err) { - return console.error(err); -} -console.log("echo optimizing pngs"); - -rimraf.sync('./bin/images/*.png'); - -(async () => { - - compress_images( - "./src/images/*.png", - "./bin/images/", - { compress_force: false, statistic: false, autoupdate: true }, false, - { jpg: { engine: "mozjpeg", command: ["-quality", "60"] } }, - { png: { engine: "pngcrush", command: ["-reduce", "-brute"] } }, - { svg: { engine: "svgo", command: "--multipass" } }, - { gif: { engine: "gifsicle", command: ["--colors", "64", "--use-col=web"] } }, - - function (error, completed, statistic) { - // console.log("-------------"); - // console.log(error); - // console.log(completed); - // console.log(statistic); - // console.log("-------------"); - } - ); - - - - - console.log('Optimizing gallery gifs'); - - const galGifDir = "./bin/Gallery/gifs"; - - fs.readdirSync(galGifDir).forEach(file => { - if (fs.lstatSync(path.resolve(galGifDir, file)).isDirectory()) { - } else { - if (path.extname(file).toLowerCase()=== ".gif"){ - execFileSync(gifsicle, ['--batch','-O2',galGifDir+"/"+file]) - } - } - }); - - - console.log('Optimizing documentation gifs'); - - glob("./bin/Documentation/images/*.gif", {}, async function (er, files) { - for (filename of files){ - execFileSync(gifsicle, ['-O2','-o', filename, filename]); - } - - - console.log('Images optimized'); - - - - fs.rmdirSync("./bin/js", { recursive: true }); - fs.mkdirSync('./bin/js'); - fs.rmdirSync("./bin/css", { recursive: true }); - fs.mkdirSync('./bin/css'); - fs.rmdirSync("./bin/tests", { recursive: true }); - fs.rmdirSync("./bin/Levels", { recursive: true }); - - console.log('compressing css'); - - - await concat(["./src/css/docs.css", - "./src/css/codemirror.css", - "./src/css/midnight.css", - "./src/css/console.css", - "./src/css/gamecanvas.css", - "./src/css/soundbar.css", - "./src/css/layout.css", - "./src/css/toolbar.css", - "./src/css/dialog.css", - "./src/css/show-hint.css"], - "./bin/css/combined.css"); - - console.log('css files concatenated') - - - var css = fs.readFileSync("./bin/css/combined.css", encoding='utf8'); - var min = cssmin(css); - fs.writeFileSync("./bin/css/combined.css",min,encoding="utf8"); - - - var css = fs.readFileSync("./bin/Documentation/css/bootstrap.css", encoding='utf8'); - var min = cssmin(css); - fs.writeFileSync("./bin/Documentation/css/bootstrap.css",min,encoding="utf8"); - - console.log("running js minification"); - - var files = [ + if (err) { + return console.error(err); + } + console.log("echo optimizing pngs"); + + rimraf.sync('./bin/images/*.png'); + + (async () => { + + compress_images( + "./src/images/*.png", + "./bin/images/", + { compress_force: false, statistic: false, autoupdate: true }, false, + { jpg: { engine: "mozjpeg", command: ["-quality", "60"] } }, + { png: { engine: "pngcrush", command: ["-reduce", "-brute"] } }, + { svg: { engine: "svgo", command: "--multipass" } }, + { gif: { engine: "gifsicle", command: ["--colors", "64", "--use-col=web"] } }, + + function (error, completed, statistic) { + // console.log("-------------"); + // console.log(error); + // console.log(completed); + // console.log(statistic); + // console.log("-------------"); + } + ); + + console.log('Optimizing gallery gifs'); + + const galGifDir = "./bin/Gallery/gifs"; + + fs.readdirSync(galGifDir).forEach(file => { + if (fs.lstatSync(path.resolve(galGifDir, file)).isDirectory()) { + } else { + if (path.extname(file).toLowerCase() === ".gif") { + execFileSync(gifsicle, ['--batch', '-O2', galGifDir + "/" + file]) + } + } + }); + + console.log('Optimizing documentation gifs'); + + glob("./bin/Documentation/images/*.gif", {}, async function (er, files) { + for (filename of files) { + execFileSync(gifsicle, ['-O2', '-o', filename, filename]); + } + + console.log('Images optimized'); + + fs.rmdirSync("./bin/js", { recursive: true }); + fs.mkdirSync('./bin/js'); + fs.rmdirSync("./bin/css", { recursive: true }); + fs.mkdirSync('./bin/css'); + fs.rmdirSync("./bin/tests", { recursive: true }); + fs.rmdirSync("./bin/Levels", { recursive: true }); + + console.log('compressing css'); + + await concat(["./src/css/docs.css", + "./src/css/codemirror.css", + "./src/css/midnight.css", + "./src/css/console.css", + "./src/css/gamecanvas.css", + "./src/css/soundbar.css", + "./src/css/layout.css", + "./src/css/toolbar.css", + "./src/css/dialog.css", + "./src/css/show-hint.css"], + "./bin/css/combined.css"); + + console.log('css files concatenated') + + var css = fs.readFileSync("./bin/css/combined.css", encoding = 'utf8'); + var min = cssmin(css); + fs.writeFileSync("./bin/css/combined.css", min, encoding = "utf8"); + + var css = fs.readFileSync("./bin/Documentation/css/bootstrap.css", encoding = 'utf8'); + var min = cssmin(css); + fs.writeFileSync("./bin/Documentation/css/bootstrap.css", min, encoding = "utf8"); + + console.log("running js minification"); + + var files = [ "./src/js/Blob.js", "./src/js/FileSaver.js", "./src/js/jsgif/LZWEncoder.js", @@ -184,163 +166,150 @@ rimraf.sync('./bin/images/*.png'); "./src/js/addlisteners_editor.js", "./src/js/makegif.js"]; - var corpus={}; - for (var i=0;i<\/script>/g, ""); - editor = editor.replace(//g, ' -
- + From d76bc6d65df5441cfb007a21e16fab4ac1b7469f Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 23 Feb 2022 18:45:55 +0100 Subject: [PATCH 032/122] build --- src/standalone_inlined.txt | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/standalone_inlined.txt b/src/standalone_inlined.txt index 46a3fc956..1a2edc929 100644 --- a/src/standalone_inlined.txt +++ b/src/standalone_inlined.txt @@ -16387,15 +16387,11 @@ function Animatable(key, increment, update) { -
- + From a08d7b422da2074f632dcf759f144e3672beb289 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 23 Feb 2022 19:59:52 +0100 Subject: [PATCH 033/122] new unit test, censored another to make it SFW --- src/tests/resources/testdata.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/tests/resources/testdata.js b/src/tests/resources/testdata.js index 7d5f36ddb..dfdd64484 100644 --- a/src/tests/resources/testdata.js +++ b/src/tests/resources/testdata.js @@ -1291,8 +1291,8 @@ var testdata = [ ["title The sponge what lights up the seafloor\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\n( verbose_logging )\n\nbackground_color #097ca9\n\ntext_color black\nnoaction\n========\nOBJECTS\n========\n\nBackground1\n#097ca9 #026f9a\n00000\n00000\n00100\n00000\n00000\n\n\nBackground2\n#097ca9 #026f9a\n00000\n00000\n00000\n00000\n00000\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\n#005373 #0a6284\n00000\n00000\n00000\n00000\n00000\n\n\nPlayer_tl\npink red\n01111\n1....\n1....\n1....\n1....\n\nPlayer_tr\npink red\n11110\n....1\n....1\n....1\n....1\n\nPlayer_bl\npink red\n1....\n1....\n1....\n1....\n01111\n\nPlayer_br\npink red\n....1\n....1\n....1\n....1\n11110\n\nsponge_thick\nyellow\n.000.\n00000\n00000\n00000\n.000.\n\nsponge_thin\nyellow\n.000.\n00000\n00000\n00000\n.000.\n\nCrate_tl \n#b685b5 #8a4288\n00000\n01111\n01111\n01111\n01111\n\nCrate_tr \n#b685b5 #8a4288\n00000\n11110\n11110\n11110\n11110\n\nCrate_bl \n#b685b5 #8a4288\n01111\n01111\n01111\n01111\n00000\n\nCrate_br \n#b685b5 #8a4288\n11110\n11110\n11110\n11110\n00000\n\nsponge_ok\n#ff00ff\n0....\n.....\n.....\n.....\n.....\n\ntargetlight\n#83e5f9 #27aeca\n.....\n.....\n..0..\n.....\n.....\n\nskin_tl_loose \n#d5d156 #d2b140 #af8c18\n.0000\n01212\n02121\n01212\n02121\n\n\nskin_tr_loose\n#d5d156 #d2b140 #af8c18\n0000.\n12120\n21210\n12120\n21210\n\nskin_bl_loose\n#d5d156 #d2b140 #af8c18\n01212\n02121\n01212\n02121\n.0000\n\nskin_br_loose\n#d2b140 #af8c18 #d5d156\n01012\n10102\n01012\n10102\n2222.\n\n\n\nskin_tl_tight\n#d5d156 #9b7907\n.0000\n01111\n01111\n01111\n01111\n\nskin_tr_tight\n#d5d156 #9b7907\n0000.\n11110\n11110\n11110\n11110\n\nskin_bl_tight\n#d5d156 #9b7907\n01111\n01111\n01111\n01111\n.0000\n\nskin_br_tight\n#9b7907 #d5d156\n00001\n00001\n00001\n00001\n1111.\n\nskin_n\n#d5d156\n00000\n.....\n.....\n.....\n.....\n\nskin_s\n#d5d156\n.....\n.....\n.....\n.....\n00000\n\nskin_e\n#d5d156\n....0\n....0\n....0\n....0\n....0\n\nskin_w\n#d5d156\n0....\n0....\n0....\n0....\n0....\n\nface_pressed_eye_l\n#ffffff #639bff\n.....\n..01.\n..00.\n.....\n.....\n\nface_pressed_eye_r\n#ffffff #639bff\n.....\n.01..\n.00..\n.....\n.....\n\nface_normal_eye_l\n#ffffff #639bff\n.....\n.....\n..01.\n..00.\n.....\n\n\nface_normal_eye_r\n#ffffff #639bff\n.....\n.....\n.01..\n.00..\n.....\n\nface_normal_mouth_l\n#000000\n.....\n...00\n....0\n.....\n.....\n\n\nface_normal_mouth_r\n#000000\n.....\n00...\n0....\n.....\n.....\n\nface_pressed_mouth\n#000000\n.....\n..0..\n..0..\n.....\n.....\n\nface_pressed_eyes_both\n#ffffff #639bff #097ca9\n.....\n.....\n01.01\n00.00\n.....\n\n\nface_pressed_horizont_full_l\n#ffffff #639bff #000000\n.....\n.00..\n.01.2\n....2\n.....\n\n\nface_pressed_horizont_full_r\n#ffffff #000000 #639bff\n.....\n..00.\n1.20.\n1....\n.....\n\nforcesponge\ntransparent\n\nhalttag\ntransparent\n\n=======\nLEGEND\n=======\n\nface = face_pressed_eye_l or face_pressed_eye_r or face_normal_eye_l or face_normal_eye_r or face_normal_mouth_l or face_normal_mouth_r or face_pressed_mouth or face_pressed_eyes_both or face_pressed_horizont_full_l or face_pressed_horizont_full_r\nplayer = Player_tl or Player_tr or Player_bl or Player_br\ncrate = Crate_tl or Crate_tr or Crate_bl or Crate_br\nsponge = sponge_thick or sponge_thin \nobstacle = sponge or wall or Crate\n. = Background1\n, = Background2\n# = Wall and Background1\nq = Player_tl and sponge_thin and Background1\nw = Player_tr and sponge_thin and Background1\ne = Player_bl and sponge_thin and Background1\nr = player_br and sponge_thin and Background1\nO = Target and Background1\nz = crate_tl and Target and Background1\nx = crate_tr and Target and Background1\nc = crate_bl and Target and Background1\nb = Crate_br and Target and Background1\na = Crate_tl and Background1\ns = Crate_tr and Background1\nd = Crate_bl and Background1\nf = Crate_br and Background1\n\nskin_flesh = skin_tl_loose or skin_tr_loose or skin_bl_loose or skin_br_loose or skin_tl_tight or skin_tr_tight or skin_bl_tight or skin_br_tight \n\nskin_barrier = skin_n or skin_s or skin_e or skin_W\n\n\nskin = skin_flesh or skin_Barrier\nbackground = Background1 or Background2\n=======\nSOUNDS\n=======\n\nCrate MOVE 2330507\nstartlevel 93226500\nendlevel 74584306\n================\nCOLLISIONLAYERS\n================\n\nplayer\nsponge_ok\n\n\nBackground1, Background2\n\nsponge, Wall, Crate\n\nTarget\n\nskin_flesh\nskin_n\nskin_s\nskin_e\nskin_w\n\n\nface\ntargetlight\n\nforcesponge\nhalttag\n\n======\nRULES\n======\n\n[moving player] -> again\n\n\n(drawing code begin)\n(\nright [action player] [ Player_tl | ] -> [action player] [ player_tl | Player_tr sponge_thin ]\ndown [action player] [ player_tl | ] -> [action player] [ player_tl | Player_bl sponge_thin]\ndown [action player] [ player_tr | ] -> [action player] [ player_tr | Player_br sponge_thin]\n\nright [action player] [ Crate_tl target| no Crate ] -> [action player] [ Crate_tl target| Crate_tr target ]\ndown [action player] [ Crate_tl target| no Crate] -> [action player] [ Crate_tl target| Crate_bl target]\ndown [action player] [ Crate_tr target|no Crate ] -> [action player] [ Crate_tr target| Crate_br target]\n\nright [action player] [ Crate_tl no target| no Crate ] -> [action player] [ Crate_tl no target| Crate_tr ]\ndown [action player] [ Crate_tl no target| no Crate] -> [action player] [ Crate_tl no target| Crate_bl ]\ndown [action player] [ Crate_tr no target|no Crate ] -> [action player] [ Crate_tr no target| Crate_br ]\n)\n(drawing code end)\n\n[sponge_ok]->[]\n[moving player sponge] -> [ moving player moving sponge]\n\n[ > sponge | Crate ] -> [ > sponge | > Crate ]\n\n\n(expanding sponge applies force)\n[ stationary player ] [ sponge_thick | crate player ] ->[ stationary player ] [ sponge_thick forcesponge| > crate player ]\n\n(propagate movements)\nright [moving Crate_tl | stationary Crate_tr ] -> [moving Crate_tl | moving Crate_tr ]\n+ right [ stationary Crate_tl | moving Crate_tr ] -> [moving Crate_tl | moving Crate_tr ] \n+ right [moving Crate_bl | stationary Crate_br ] -> [moving Crate_bl | moving Crate_br ] \n+ right [ stationary Crate_bl | moving Crate_br ] -> [moving Crate_bl | moving Crate_br ] \n\n+ down [ moving crate_tl | stationary crate_bl ] -> [ moving crate_tl | moving crate_bl ] \n+ down [ stationary crate_tl | moving crate_bl ] -> [ moving crate_tl | moving crate_bl ]\n+ down [ moving crate_tr | stationary crate_br ] -> [ moving crate_tr | moving crate_br ] \n+ down [ stationary crate_tr | moving crate_br ] -> [ moving crate_tr | moving crate_br ]\n\n+ [ > crate | stationary crate ] -> [ > crate | > crate ]\n\n\n(unpropagate movements)\n\n[ > crate | stationary obstacle ] -> [ crate | obstacle ]\n+ right [moving Crate_tl | stationary Crate_tr ] -> [ Crate_tl | Crate_tr ]\n+ right [ stationary Crate_tl | moving Crate_tr ] -> [ Crate_tl | Crate_tr ] \n+ right [moving Crate_bl | stationary Crate_br ] -> [ Crate_bl | Crate_br ] \n+ right [ stationary Crate_bl | moving Crate_br ] -> [ Crate_bl | Crate_br ] \n\n+ down [ moving crate_tl | stationary crate_bl ] -> [ crate_tl | crate_bl ] \n+ down [ stationary crate_tl | moving crate_bl ] -> [ crate_tl | crate_bl ]\n+ down [ moving crate_tr | stationary crate_br ] -> [ crate_tr | crate_br ] \n+ down [ stationary crate_tr | moving crate_br ] -> [ crate_tr | crate_br ]\n\n(add halt tag to allcrates)\n[moving crate]->[moving crate halttag]\n(remove halttags along propagation)\n[ sponge | crate halttag ] -> [ sponge | crate no halttag ]\n\n+ right [no halttag Crate_tl | halttag Crate_tr ] -> [ Crate_tl | Crate_tr ]\n+ right [ halttag Crate_tl | no halttag Crate_tr ] -> [ Crate_tl | Crate_tr ] \n+ right [no halttag Crate_bl | halttag Crate_br ] -> [ Crate_bl | Crate_br ] \n+ right [ halttag Crate_bl | no halttag Crate_br ] -> [ Crate_bl | Crate_br ] \n\n+ down [ no halttag crate_tl | halttag crate_bl ] -> [ crate_tl | crate_bl ] \n+ down [ halttag crate_tl | no halttag crate_bl ] -> [ crate_tl | crate_bl ]\n+ down [ no halttag crate_tr | halttag crate_br ] -> [ crate_tr | crate_br ] \n+ down [ halttag crate_tr | no halttag crate_br ] -> [ crate_tr | crate_br ]\n\n+ [ > crate no halttag | > crate halttag ] -> [ > crate | > crate ]\n\n[moving crate halttag]->[stationary crate]\n\n(squish sponge if necessary)\n[ > sponge_thin | > sponge_thin | stationary obstacle ] -> [ | sponge_thick | stationary obstacle ]\n\n[ no sponge | > sponge_thick | no sponge no obstacle ] -> [ | sponge_thin | sponge_thin ]\nlate [ sponge no player ] -> cancel\n\nlate [ sponge_thick player | no obstacle player] -> [ sponge_thin player | sponge_thin player ]\n\nlate [ sponge_thick | no sponge player ] -> [sponge_thick sponge_ok | player ]\n\nlate [sponge_thick no sponge_ok ]-> cancel\n\n(draw skin)\nlate [skin]->[]\nlate [Player_tl sponge_thick ] -> [Player_tl sponge_thick skin_tl_tight ]\nlate [Player_tr sponge_thick ] -> [Player_tr sponge_thick skin_tr_tight ]\nlate [Player_bl sponge_thick ] -> [Player_bl sponge_thick skin_bl_tight ]\nlate [Player_br sponge_thick ] -> [Player_br sponge_thick skin_br_tight ]\n\nlate [Player_tl sponge_thin ] -> [Player_tl sponge_thin skin_tl_loose ]\nlate [Player_tr sponge_thin ] -> [Player_tr sponge_thin skin_tr_loose ]\nlate [Player_bl sponge_thin ] -> [Player_bl sponge_thin skin_bl_loose ]\nlate [Player_br sponge_thin ] -> [Player_br sponge_thin skin_br_loose ]\n\nlate up [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_n | player no sponge ]\nlate down [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_s | player no sponge ]\nlate left [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_w | player no sponge ]\nlate right [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_e | player no sponge ]\n\n(draw face (eyes/mouth))\nlate [face]->[]\n\nlate right [ sponge_thick no face | sponge_thick no face ] -> [ sponge_thick face_pressed_horizont_full_l | sponge_thick face_pressed_horizont_full_r]\n\nlate down [ sponge_thick no face | sponge_thick no face ] -> [ sponge_thick face_pressed_eyes_both | sponge_thick face_pressed_mouth]\n\nlate right [ player_tl sponge_thick | no sponge ] -> [ player_tl sponge_thick face_pressed_eyes_both | no sponge ]\nlate left [ player_tr sponge_thick | no sponge ] -> [ player_tr sponge_thick face_pressed_eyes_both | no sponge ]\n\n\nlate right [ Player_tl sponge_thin no face ] -> [ player_tl sponge_thin face_normal_eye_l ]\nlate right [ Player_tl sponge_thick no face ] -> [ player_tl sponge_thick face_pressed_eye_l ]\n\nlate right [ Player_tr sponge_thin no face ] -> [ player_tr sponge_thin face_normal_eye_r ]\nlate right [ Player_tr sponge_thick no face ] -> [ player_tr sponge_thick face_pressed_eye_r ]\n\nlate right [player_bl sponge_thin no face | player_Br sponge_thin no face ] -> [player_bl sponge_thin face_normal_mouth_l | player_Br sponge_thin face_normal_mouth_r ]\n\nlate right [ player_bl sponge no face | no sponge ] -> [ player_bl sponge face_pressed_mouth |]\nlate left [ player_br sponge no face | no sponge ] -> [ player_br sponge face_pressed_mouth |]\n\nlate [ player_bl sponge_thick no face ] -> [ player_bl sponge_thick face_pressed_horizont_full_l ]\nlate [ player_bl sponge_thin no face ] -> [ player_bl sponge_thin face_normal_mouth_l ]\n\n\nlate [ player_br sponge_thick no face ] -> [ player_br sponge_thick face_pressed_horizont_full_r ]\nlate [ player_br sponge_thin no face ] -> [ player_br sponge_thin face_normal_mouth_r ]\n\n(place lights on fulfilled targets)\nlate [targetlight]->[]\nlate [crate Target ] -> [ crate target targetlight]\n\n\nlate [ forcesponge sponge_thick ]->cancel\nlate [forcesponge]->[]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 10 : \"I am yellow.\"\n\n(p.easy)\n,,,,,,,,#####\n#########...#\n#oo.........#\n#oozxzxas.qw#\n###cbcbdf.er#\n,,#.........#\n,,#######...#\n,,,,,,,,#####\n\n\n\n\nmessage Level 2 of 10 : \"You can sqeeze me.\"\n\n(pretty easy, but fun?)\n,,,,,,,,#####\n,,,,,,###...#\n#######.....#\n#..,..ooqw..#\n#.....ooer.##\n#.as..##oo.#,\n#.df..##oo##,\n#####.....#,,\n,,,,##....#,,\n,,,,,#as..#,,\n,,,,,#df..#,,\n,,,,,#....#,,\n,,,,,######,,\n\nmessage Level 3 of 10 : \"It doesn't hurt at all.\"\n########\n#......#\n#.##qw.#\n#.##er.#\n#.aszx.#\n#.dfcb.#\n#.oozx.#\n#.oocb.#\n#......#\n########\n\n\nmessage Level 4 of 10 : \"I like to make the lights go on.\"\n(borderline not cute but tolerable)\n\n######,,,,\n#oo..##,,,\n#oo...##,,\n#qwasas##,\n#erdfdf.##\n###......#\n,,##.....#\n,,,##....#\n,,,,##...#\n,,,,,##oo#\n,,,,,,#oo#\n,,,,,,####\n\n\nmessage Level 5 of 10 : \"It's dark here on the seabed.\"\n\n(too like original/)\n,,######,,,,\n###....#####\n#.......as.#\n#.......df.#\n#.#....#as.#\n#oo..oo#df.#\n#oo..oo#qw.#\n########er.#\n,,,,,,,#####\n\nmessage Level 6 of 10 : \"I wonder what colour my eyes are.\"\n(ok not too hard)\n,,,######\n,,##....#\n,,#.zx..#\n###.cb..#\n#.asooqw#\n#.dfooer#\n#.......#\n#########\n\n\n\n\n\nmessage Level 7 of 10 : \"Sometimes corpses fall down from the sky.\"\n\n(fine. slightly tricky)\n#####,,,\n#.oo#,,,\n#.oo#,,,\n#...#,,,\n#...#,,,\n#...####\n#zx....#\n#cb....#\n#...as.#\n#...df.#\n#...####\n#...#,,,\n#qw.#,,,\n#er.#,,,\n#####,,,\n\n\nmessage Level 8 of 10 : \"The lights twinkle as if to say 'Thank you, spongey!' \"\n(p ok! not super easy)\n,,,#########\n,,,#.ooooqw#\n,,,#.ooooer#\n,,,#.asas..#\n,,,#.dfdf..#\n#####..#####\n#......###,,\n#........#,,\n#..#.....#,,\n#.....#..#,,\n#........#,,\n##########,,\n\n\nmessage Level 9 of 10 : \"Am I the only yellow thing in the universe?\"\n(I like this one)\n,,,,###########\n,,,##...#...oo#\n,,##as......oo#\n,##.df#...qw..#\n##....#...er..#\n#.............#\n#...###..zx...#\n#....##..cb...#\n##....##......#\n,##....###.#..#\n,,##.......#..#\n,,,##.........#\n,,,,#####.....#\n,,,,,,,,###..##\n,,,,,,,,,,####,\n\n\nmessage Level 10 of 10 : \"It's lonely, here on the seabed.\"\n(fine/hardosh)\n.########.\n###.oo..##\n###.oo...#\n#..asas..#\n#oodfdfoo#\n#ooasasoo#\n#..dfdfqw#\n#...oo.er#\n##..oo..##\n.########.\n\nmessage The End : \"I hope I was a good sponge. Was I a good sponge?\"\n\n(\n########\n#......#\n#...as.#\n#..#df.#\n#..as..#\n##.df..#\n#aszxo.#\n#dfcbqw#\n#....er#\n########\n\n########\n#......#\n#......#\n#......#\n#..as..#\n##.df..#\n#aszxo.#\n#dfcbqw#\n#....er#\n########\n)\n\n\n(\n\n################\n#oo.....,....oo#\n#oo..........oo#\n#..##..as..##..#\n#..##..df..##..#\n#.....####.....#\n#....##..##....#\n#..as#....#as..#\n#..df#....#df..#\n#....##..##....#\n#.....####.....#\n#..##..as..##..#\n#..##..df..##..#\n#oo......qw..oo#\n#oo......er..oo#\n################\n\n############\n#..........#\n#..,..ooqw.#\n#.....ooer.#\n#.as..##oo.#\n#.df..##oo.#\n#####......#\n....##.....#\n.....#as...#\n.....#df...#\n.....#.....#\n.....#######\n\n\n)\n\n(\n(ok? doesn't involve fancy logic, just pushign things around, but that's ok sometimes?)\n.########.\n##......##\n#...oo.qw#\n#..axzser#\n#.ocfdbo.#\n#.ozsaxo.#\n#..dbcf..#\n#...oo...#\n##......##\n.########.\n)\n\n\n\n(\n(too easy)\n.########.\n##..oo..##\n#...oo...#\n#..asas..#\n#oodfdfoo#\n#ooasasoo#\n#..dfdfqw#\n#...oo.er#\n##..oo..##\n.########.\n\n)\n\n\n\n(above level is just better version of this even if uglier)\n(\n################\n#..............#\n#......qw......#\n#......er......#\n#..............#\n#......as......#\n#......df......#\n#......##......#\n#oo..........oo#\n#oo....as....oo#\n###...#df#...###\n,,#..........#,,\n,,#...#..#...#,,\n,,#...#..#...#,,\n,,#..##..##..#,,\n,,##.##..##.##,,\n,,,#.##..##.#,,,\n,,,#........#,,,\n,,,#........#,,,\n,,,##########,,,\n)\n",[2,2,2,3,2,1,1,1,0,0,1,1,1,2,2,3,2,1,1,1,3,1,2,2,3,3,2,3,0,1,0,1,1,0,0,0,3,0,0,0,0,1,1,0,1,2,2,3,0,1,2,2,1,2,1,2,3,0,3,3,3,0,3,3,2,2,2,2,1,1,0,0,3,0,0,1,1],"background2:0,0,0,0,background1 wall:1,1,1,1,1,0,0,0,0,0,0,\n0,0,0,1,1,background1:2,2,2,1,1,0,0,0,0,0,\n0,0,1,1,2,2,2,2,2,1,1,0,0,0,0,\n0,1,1,2,2,2,2,2,2,2,1,1,0,0,0,\n1,1,2,2,background1 crate_tl:3,background1 crate_bl:4,1,2,2,2,2,1,1,0,0,\n1,2,2,2,background1 crate_tr:5,background1 crate_br:6,1,1,2,2,2,2,1,0,0,\n1,2,2,background1 player_tl wall:7,background1 player_bl wall:8,2,1,1,1,2,2,2,1,0,0,\n1,2,2,background1 face_pressed_eyes_both player_tr skin_tr_tight sponge_ok sponge_thick:9,background1 face_pressed_mouth player_br skin_br_tight sponge_ok sponge_thick:10,2,2,2,1,1,2,2,1,0,0,\n1,1,2,2,2,2,2,2,2,1,2,2,1,1,0,\n1,2,2,2,2,2,background1 target:11,11,2,1,2,2,2,1,0,\n1,2,2,2,2,2,11,11,2,2,2,2,2,1,1,\n1,2,2,2,2,2,2,3,4,1,1,2,2,2,1,\n1,11,11,2,2,2,2,5,6,2,2,2,2,2,1,\n1,11,11,2,2,2,2,2,2,2,2,2,2,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,\n",17,"1627894176777.0325"] ], [ - "Sexual Intercourse", - ["title Sexual Intercourse \nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nbackground_color #4e0606\n\nnoaction\n\nverbose_logging\n(thanks to ggn2 for testing)\n\n========\nOBJECTS\n========\n\nBackground\n#4e0606\n\nWall\n#730b15 #ab2a2a #a82934\n.000.\n00000\n00000\n00000\n.000.\n\n\nwall_n\n#730b15 #a82934\n00010\n...1.\n...1.\n...1.\n.....\n\n\nwall_s\n#730b15 #a82934\n.....\n...1.\n...1.\n...1.\n00010\n\n\nwall_e\n#730b15 #a82934\n....0\n.1111\n....0\n....0\n....0\n\n\nwall_w\n#730b15 #a82934\n0....\n1111.\n0....\n0....\n0....\n\nwall_blot\n#730b15\n.000.\n00000\n00000\n00000\n.000.\n\nwall_blot_ne\n#730b15 #a82934\n.000.\n11100\n00010\n00010\n.001.\n\nwall_blot_ne_sm\n#730b15 #a82934\n.000.\n00100\n00010\n00000\n.000.\n\nTarget\ntransparent #e04eb2 #bf258e\n01110\n12221\n12221\n12221\n01110\n\n\nCrate\ntransparent #ffffff #e3e3e3\n00220\n01112\n10220\n01000\n00110\n\n\nplayer_hat\ntransparent #ebb176 #d9a066 #d86375 #d25165\n01110\n23432\n22221\n21111\n21111\n\n\n\n\nPlayer\n#d9a066 #ebb176 transparent\n01111\n01111\n01111\n01110\n20002\n\n\n\nattachment\ntransparent #ebb176 #c48d55 #d9a066 #f1bd88\n01110\n23341\n23331\n22331\n02220\n\n\nconnection_nw\n#d9a066\n0....\n.....\n.....\n.....\n.....\n\n\nconnection_ne\n#d9a066\n....0\n.....\n.....\n.....\n.....\n\n\nconnection_sw\n#d9a066\n.....\n.....\n.....\n.....\n0....\n\n\nconnection_se\n#d9a066\n.....\n.....\n.....\n.....\n....0\n\nholding_domain\n#ff0000\n.....\n.....\n..0..\n.....\n.....\n\nplayer_start_location\ntransparent\n\n=======\nLEGEND\n=======\n\ncanpush = player or player_hat or attachment or Crate\npushable = crate\n\nself = player or player_hat or attachment\n\nobstacle = player or player_hat or attachment or Crate or wall\n\nconnection = connection_nw or connection_ne or connection_sw or connection_se\nconnectable = player or attachment\n\nwall_connection = wall_n or wall_s or wall_e or wall_w or wall_blot or wall_blot_ne or wall_blot_ne_sm\nwall_v = wall_n or wall_s\nwall_h = wall_w or wall_e\n. = Background\n# = Wall\nq = player_hat\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\na = attachment\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 39435507\nendlevel 98112905\nstartlevel 27288509\nsfx0 97643907 (rearrange)\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, player_hat, attachment, Wall, Crate\nwall_n\nwall_s\nwall_e\nwall_W\nwall_blot\nwall_blot_ne\nwall_blot_ne_sm\nholding_domain\nplayer_start_location\n\nconnection_nw\nconnection_ne\nconnection_sw\nconnection_se\n\n======\nRULES\n======\n\n[moving player]->[moving player player_start_location]\n\nright [ Wall no wall_e | wall no wall_w ] -> [ wall wall_e | wall wall_w ]\ndown [ Wall no wall_s | wall no wall_n ] -> [ wall wall_s | wall wall_n ]\n[wall_v wall_h no wall_blot ] -> [ wall_v wall_h wall_blot ]\n[wall_s wall_w no wall_blot_ne ] -> [ wall_s wall_w wall_blot_ne ]\n[wall_s wall_w wall_e ] -> [ wall_s wall_w wall_e no wall_blot_ne ]\n[wall no wall_connection ] -> [ wall wall_blot_ne_sm ]\n\n(editor stuff)\n(\n \n\tdown [no player_hat | action player ] -> [ action player_hat | action player no player_start_location ]\n \n \n\t(Draw holding domain)\n right [ | action player | ] -> [ holding_domain | action player holding_domain | holding_domain ]\n down [ no holding_domain | holding_domain | no holding_domain ] -> [ | holding_domain | holding_domain ]\n\t\n right [action player] [ holding_domain | holding_domain no player | holding_domain ] -> [action player] [ attachment holding_domain | holding_domain | holding_domain attachment ]\n \n [holding_domain]->[]\n)\n(end editor stuff)\n\n\n[ > player ] [ stationary self ] -> [ > player ] [ > self] \n\n[ > canpush | pushable ] -> [ > canpush | > pushable ]\n\n[ > canpush | stationary wall ] -> [ canpush | Wall ]\n[ > canpush | stationary canpush ] -> [ canpush | canpush ]\n[moving player ] [stationary attachment ] -> sfx0\n\n(Draw holding domain)\nlate right [ | player | ] -> [ holding_domain | player holding_domain | holding_domain ]\nlate down [ no holding_domain | holding_domain | no holding_domain ] -> [ | holding_domain | holding_domain ]\n\nlate [ attachment no holding_domain ] -> cancel\nlate [holding_domain]->[]\n\n\nlate down [player_hat | no player ] -> cancel\nlate [ player player_start_location ]->cancel\nlate [ player_start_location]->[]\n\n(cosmetics)\nlate [connection]->[]\nlate up [ connectable | no connectable ] -> [connectable | connection_sw connection_se ]\nlate down [ connectable | no connectable ] -> [connectable | connection_nw connection_ne ]\n\nlate left [ connection_sw | no connectable ] -> [ | ]\nlate left [ connection_nw | no connectable ] -> [ | ]\n\nlate right [ connection_se | no connectable ] -> [ | ]\nlate right [ connection_ne | no connectable ] -> [ | ]\n\nlate right [ | connection_nw ] -> [ connection_ne | connection_nw ]\n+ late right [ connection_ne | ] -> [ connection_ne | connection_nw ]\n\n+ late right [ | connection_sw ] -> [ connection_se | connection_sw ]\n+ late right [ connection_se | ] -> [ connection_se | connection_sw ]\n\n+ late down [ | connection_nw ] -> [ connection_sw | connection_nw ]\n+ late down [ connection_sw| ] -> [ connection_sw | connection_nw ]\n\n+ late down [ | connection_ne ] -> [ connection_se | connection_ne ]\n+ late down [ connection_se| ] -> [ connection_se | connection_ne ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 12 \n(chill level 2/3? not too hard)\n############\n#..........#\n#..........#\n#..........#\n#..........#\n#..o.o.....#\n##.#.#.##..#\n#.......#..#\n#..*.*.....#\n#..........#\n#...q......#\n#...p...####\n#..a.a..#...\n#.......#...\n#########...\n\nmessage Level 2 of 12 \n\n(not tooo hard but relies on shape manipulation)\n.#####....\n.#...#####\n.#...#...#\n##.......#\n#o....*..#\n#o...#*..#\n###..#.q.#\n..####.p.#\n.....#a.a#\n.....#####\n\n\nmessage Level 3 of 12 \n\n(ok possible first level)\n.###....\n.#o#....\n.#.#....\n.#.#####\n.#.....#\n.#.....#\n.#.....#\n##..*..#\n#.q.####\n#.p.#...\n#a.a#...\n#####...\n\n\n\nmessage Level 4 of 12 \n(super chill/not hard. don't put too early because assumes literacy, but don't leave too late)\n#######\n#ooooo#\n#.....#\n#..*..#\n#.*q*.#\n#.*p*.#\n#*a*a*#\n#.*.*.#\n#.....#\n#ooooo#\n#######\n\n\nmessage Level 5 of 12 \n\n(not tooo hard maybe? but p. good)\n.####..\n.#..##.\n.#..o#.\n.#...#.\n.#.@.#.\n.#.@.#.\n.#.@.#.\n##.*.##\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n#######\n\n\nmessage Level 6 of 12 \n(not hard. not too much manipulation)\n##########\n#........#\n#........#\n#..o.*o..#\n#..*.....#\n#.....*..#\n#..o*.oq.#\n#......p.#\n#.....a.a#\n##########\n\n\nmessage Level 7 of 12 \n\n(p. ok? medium-solvable, not hard)\n......#######\n#######.....#\n#.....#.....#\n#...........#\n#...**......#\n#.q.*.#ooo..#\n#.p...#######\n#a.a..#......\n#######......\n\n\nmessage Level 8 of 12 \n\n(enjoyed solving this - fun process)\n.#######.....\n.#oooq.##....\n.#...p..##...\n.#..a.a..##..\n.###..***.##.\n...##......##\n....##......#\n.....##.....#\n......##....#\n.......######\n\nmessage Level 9 of 12 \n(not too hard, kinda fine)\n.....####..\n.....#o.#..\n.....#o.###\n######....#\n#.q.......#\n#.p.......#\n#a.a.*.*..#\n#..#.#.####\n#......#...\n#......#...\n#......#...\n########...\n\nmessage Level 10 of 12 \n(slightly tricky but fun?)\n\n#########\n#.oo..q.#\n#.....p.#\n#....a.a#\n##**#####\n.#.....#.\n.#.....#.\n.#..#..#.\n.#.....#.\n.#.....#.\n.#.....#.\n.#######.\n\nmessage Level 11 of 12 \n(hardish, but satisfying + thinkthroughable shape manipulation)\n########\n#.#..q.#\n#....p.#\n#...a.a#\n#..#...#\n#..*@..#\n#..o@..#\n#......#\n########\n\nmessage Level 12 of 12 \n(for me super hard but for others possible)\n##########\n#..q.....#\n#..p.....#\n#.a.a....#\n##.*.#*..#\n.#o.o#...#\n.#########\n\nmessage Congratulations! You now know how to make babies!\n\n\n(\n\n....########.\n....#......#.\n....#.oo...#.\n....#.oo.q.#.\n....#....p.#.\n....#...a.a#.\n....##**####.\n.....#**#....\n######..####.\n#..........#.\n#...#......#.\n#.......#..#.\n#..........#.\n######.....#.\n.....#.....#.\n.....#.....#.\n.....#.....#.\n.....#.....#.\n.....#######.\n\n\n############\n#..........#\n#..........#\n#...**.....#\n#.q.*.#ooo.#\n#.p...######\n#a.a..#.....\n#######.....\n\n\n########\n#......#\n#.o.*o.#\n#.*....#\n#...q*.#\n#.o*po.#\n#..a.a.#\n########\n\n########\n#......#\n#.o*o..#\n#.*.*q.#\n#.o*op.#\n#...a.a#\n########\n\n\n.#####.\n.#..o#.\n.#.@.#.\n.#.@.#.\n.#.@.#.\n##.*.##\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n#######\n\n#######\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n##.*.##\n.#.@.#.\n.#.@.#.\n.#..o#.\n.#####.\n\n.....#######\n.....#.....#\n######.....#\n#o......q..#\n#.@@@*..p..#\n#......a.a.#\n######.....#\n.....#.....#\n.....#######\n\n\n##########\n#..q.....#\n#..p.....#\n#.a.a....#\n##.*.#*..#\n#.o.o#...#\n##########\n\n###########\n#...q.....#\n#...p.....#\n#..a.a....#\n#.#.*.#*..#\n#..o.o#...#\n###########\n\n\n..#####....\n###...#####\n#......*..#\n#.....#*..#\n#..#..#.q.#\n#..o.o#.p.#\n#######a.a#\n......#####\n\n########\n#......#\n#..q...#\n#..p...#\n#.a.a..#\n#......#\n#..#...#\n#..*@..#\n#..o@..#\n#......#\n########\n\n#######\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n#..#..#\n#..*@.#\n#..o@.#\n#.....#\n#######\n\n\n##########\n#........#\n#.#...q..#\n#.*@..p..#\n#.o@.a.a.#\n#........#\n##########\n\n\n################\n#..............#\n#........#.....#\n#..............#\n#..#......o....#\n#...*..q...o...#\n#...*..p.......#\n#.....a.a...#..#\n#..............#\n################\n\n\n#########\n#.......#\n#.......#\n#.q.....#\n#.p.....#\n#a.a....#\n#########\n\n\n###########\n#.........#\n#.........#\n#.........#\n#..q......#\n#..p......#\n#.a.a.....#\n#.........#\n###########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n)\n(\n====\nTRANSFORMATION\n====\n\n\nchoose 5 option 0.5 [no obstacle ]->[wall]\nchoose 2 [no obstacle]->[crate]\nchoose 2 [ no wall no player no player_hat no attachment ] -> [target]\n)\n",[3,2,3,0,3,2,2,1,1,2,2,3,3,3,3,0,0,0,0,2,2,1,1,1,1,1,3,3,3,3,1,2,1],"background:0,0,0,background wall wall_blot wall_e wall_s:1,background wall wall_n wall_s:2,2,2,2,2,2,2,\nbackground wall wall_blot wall_e wall_n:3,0,0,0,background wall wall_e wall_w:4,0,0,0,0,0,0,\n0,4,0,0,0,4,0,0,0,0,0,\n0,0,4,0,0,0,4,0,background player_hat:5,background connection_se player:6,background connection_ne wall wall_blot_ne_sm:7,\n0,0,0,4,0,0,0,4,0,0,attachment background connection_sw:8,\nattachment background connection_nw:9,0,0,0,4,1,2,2,background wall wall_blot wall_n wall_w:10,0,0,\n0,background wall wall_blot_ne_sm:11,0,0,0,4,4,background target:12,12,0,0,\n0,0,0,0,0,0,4,4,0,0,0,\n0,0,0,1,2,2,2,10,background wall wall_blot wall_blot_ne wall_s wall_w:13,2,3,\n0,0,0,background crate:14,4,0,0,0,0,0,0,\n4,0,0,0,14,4,0,0,0,0,0,\n0,13,2,2,2,2,10,0,0,0,0,\n",17,"1627894223066.2476"] + "(censored version of NSFW game) Sexual Intercourse", + ["title Sexual Intercourse \nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nbackground_color #4e0606\n\nnoaction\n\nverbose_logging\n(thanks to ggn2 for testing)\n\n========\nOBJECTS\n========\n\nBackground\n#4e0606\n\nWall\n#730b15 #ab2a2a #a82934\n.000.\n00000\n00000\n00000\n.000.\n\n\nwall_n\n#730b15 #a82934\n00010\n...1.\n...1.\n...1.\n.....\n\n\nwall_s\n#730b15 #a82934\n.....\n...1.\n...1.\n...1.\n00010\n\n\nwall_e\n#730b15 #a82934\n....0\n.1111\n....0\n....0\n....0\n\n\nwall_w\n#730b15 #a82934\n0....\n1111.\n0....\n0....\n0....\n\nwall_blot\n#730b15\n.000.\n00000\n00000\n00000\n.000.\n\nwall_blot_ne\n#730b15 #a82934\n.000.\n11100\n00010\n00010\n.001.\n\nwall_blot_ne_sm\n#730b15 #a82934\n.000.\n00100\n00010\n00000\n.000.\n\nTarget\ntransparent pink pink\n01110\n12221\n12221\n12221\n01110\n\n\nCrate\nwhite white white\n00220\n01112\n10220\n01000\n00110\n\n\nplayer_hat\ngreen green green green green\n01110\n23432\n22221\n21111\n21111\n\n\n\n\nPlayer\ngreen green green green green\n01111\n01111\n01111\n01110\n20002\n\n\n\nattachment\ngreen green green green green\n01110\n23341\n23331\n22331\n02220\n\n\nconnection_nw\ngreen green green green green\n0....\n.....\n.....\n.....\n.....\n\n\nconnection_ne\ngreen green green green green\n....0\n.....\n.....\n.....\n.....\n\n\nconnection_sw\ngreen green green green green\n.....\n.....\n.....\n.....\n0....\n\n\nconnection_se\ngreen green green green green\n.....\n.....\n.....\n.....\n....0\n\nholding_domain\n#ff0000\n.....\n.....\n..0..\n.....\n.....\n\nplayer_start_location\ntransparent\n\n=======\nLEGEND\n=======\n\ncanpush = player or player_hat or attachment or Crate\npushable = crate\n\nself = player or player_hat or attachment\n\nobstacle = player or player_hat or attachment or Crate or wall\n\nconnection = connection_nw or connection_ne or connection_sw or connection_se\nconnectable = player or attachment\n\nwall_connection = wall_n or wall_s or wall_e or wall_w or wall_blot or wall_blot_ne or wall_blot_ne_sm\nwall_v = wall_n or wall_s\nwall_h = wall_w or wall_e\n. = Background\n# = Wall\nq = player_hat\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\na = attachment\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 39435507\nendlevel 98112905\nstartlevel 27288509\nsfx0 97643907 (rearrange)\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, player_hat, attachment, Wall, Crate\nwall_n\nwall_s\nwall_e\nwall_W\nwall_blot\nwall_blot_ne\nwall_blot_ne_sm\nholding_domain\nplayer_start_location\n\nconnection_nw\nconnection_ne\nconnection_sw\nconnection_se\n\n======\nRULES\n======\n\n[moving player]->[moving player player_start_location]\n\nright [ Wall no wall_e | wall no wall_w ] -> [ wall wall_e | wall wall_w ]\ndown [ Wall no wall_s | wall no wall_n ] -> [ wall wall_s | wall wall_n ]\n[wall_v wall_h no wall_blot ] -> [ wall_v wall_h wall_blot ]\n[wall_s wall_w no wall_blot_ne ] -> [ wall_s wall_w wall_blot_ne ]\n[wall_s wall_w wall_e ] -> [ wall_s wall_w wall_e no wall_blot_ne ]\n[wall no wall_connection ] -> [ wall wall_blot_ne_sm ]\n\n(editor stuff)\n(\n \n\tdown [no player_hat | action player ] -> [ action player_hat | action player no player_start_location ]\n \n \n\t(Draw holding domain)\n right [ | action player | ] -> [ holding_domain | action player holding_domain | holding_domain ]\n down [ no holding_domain | holding_domain | no holding_domain ] -> [ | holding_domain | holding_domain ]\n\t\n right [action player] [ holding_domain | holding_domain no player | holding_domain ] -> [action player] [ attachment holding_domain | holding_domain | holding_domain attachment ]\n \n [holding_domain]->[]\n)\n(end editor stuff)\n\n\n[ > player ] [ stationary self ] -> [ > player ] [ > self] \n\n[ > canpush | pushable ] -> [ > canpush | > pushable ]\n\n[ > canpush | stationary wall ] -> [ canpush | Wall ]\n[ > canpush | stationary canpush ] -> [ canpush | canpush ]\n[moving player ] [stationary attachment ] -> sfx0\n\n(Draw holding domain)\nlate right [ | player | ] -> [ holding_domain | player holding_domain | holding_domain ]\nlate down [ no holding_domain | holding_domain | no holding_domain ] -> [ | holding_domain | holding_domain ]\n\nlate [ attachment no holding_domain ] -> cancel\nlate [holding_domain]->[]\n\n\nlate down [player_hat | no player ] -> cancel\nlate [ player player_start_location ]->cancel\nlate [ player_start_location]->[]\n\n(cosmetics)\nlate [connection]->[]\nlate up [ connectable | no connectable ] -> [connectable | connection_sw connection_se ]\nlate down [ connectable | no connectable ] -> [connectable | connection_nw connection_ne ]\n\nlate left [ connection_sw | no connectable ] -> [ | ]\nlate left [ connection_nw | no connectable ] -> [ | ]\n\nlate right [ connection_se | no connectable ] -> [ | ]\nlate right [ connection_ne | no connectable ] -> [ | ]\n\nlate right [ | connection_nw ] -> [ connection_ne | connection_nw ]\n+ late right [ connection_ne | ] -> [ connection_ne | connection_nw ]\n\n+ late right [ | connection_sw ] -> [ connection_se | connection_sw ]\n+ late right [ connection_se | ] -> [ connection_se | connection_sw ]\n\n+ late down [ | connection_nw ] -> [ connection_sw | connection_nw ]\n+ late down [ connection_sw| ] -> [ connection_sw | connection_nw ]\n\n+ late down [ | connection_ne ] -> [ connection_se | connection_ne ]\n+ late down [ connection_se| ] -> [ connection_se | connection_ne ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 12 \n(chill level 2/3? not too hard)\n############\n#..........#\n#..........#\n#..........#\n#..........#\n#..o.o.....#\n##.#.#.##..#\n#.......#..#\n#..*.*.....#\n#..........#\n#...q......#\n#...p...####\n#..a.a..#...\n#.......#...\n#########...\n\nmessage Level 2 of 12 \n\n(not tooo hard but relies on shape manipulation)\n.#####....\n.#...#####\n.#...#...#\n##.......#\n#o....*..#\n#o...#*..#\n###..#.q.#\n..####.p.#\n.....#a.a#\n.....#####\n\n\nmessage Level 3 of 12 \n\n(ok possible first level)\n.###....\n.#o#....\n.#.#....\n.#.#####\n.#.....#\n.#.....#\n.#.....#\n##..*..#\n#.q.####\n#.p.#...\n#a.a#...\n#####...\n\n\n\nmessage Level 4 of 12 \n(super chill/not hard. don't put too early because assumes literacy, but don't leave too late)\n#######\n#ooooo#\n#.....#\n#..*..#\n#.*q*.#\n#.*p*.#\n#*a*a*#\n#.*.*.#\n#.....#\n#ooooo#\n#######\n\n\nmessage Level 5 of 12 \n\n(not tooo hard maybe? but p. good)\n.####..\n.#..##.\n.#..o#.\n.#...#.\n.#.@.#.\n.#.@.#.\n.#.@.#.\n##.*.##\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n#######\n\n\nmessage Level 6 of 12 \n(not hard. not too much manipulation)\n##########\n#........#\n#........#\n#..o.*o..#\n#..*.....#\n#.....*..#\n#..o*.oq.#\n#......p.#\n#.....a.a#\n##########\n\n\nmessage Level 7 of 12 \n\n(p. ok? medium-solvable, not hard)\n......#######\n#######.....#\n#.....#.....#\n#...........#\n#...**......#\n#.q.*.#ooo..#\n#.p...#######\n#a.a..#......\n#######......\n\n\nmessage Level 8 of 12 \n\n(enjoyed solving this - fun process)\n.#######.....\n.#oooq.##....\n.#...p..##...\n.#..a.a..##..\n.###..***.##.\n...##......##\n....##......#\n.....##.....#\n......##....#\n.......######\n\nmessage Level 9 of 12 \n(not too hard, kinda fine)\n.....####..\n.....#o.#..\n.....#o.###\n######....#\n#.q.......#\n#.p.......#\n#a.a.*.*..#\n#..#.#.####\n#......#...\n#......#...\n#......#...\n########...\n\nmessage Level 10 of 12 \n(slightly tricky but fun?)\n\n#########\n#.oo..q.#\n#.....p.#\n#....a.a#\n##**#####\n.#.....#.\n.#.....#.\n.#..#..#.\n.#.....#.\n.#.....#.\n.#.....#.\n.#######.\n\nmessage Level 11 of 12 \n(hardish, but satisfying + thinkthroughable shape manipulation)\n########\n#.#..q.#\n#....p.#\n#...a.a#\n#..#...#\n#..*@..#\n#..o@..#\n#......#\n########\n\nmessage Level 12 of 12 \n(for me super hard but for others possible)\n##########\n#..q.....#\n#..p.....#\n#.a.a....#\n##.*.#*..#\n.#o.o#...#\n.#########\n\nmessage Congratulations! You now know how to make babies!\n\n\n(\n\n....########.\n....#......#.\n....#.oo...#.\n....#.oo.q.#.\n....#....p.#.\n....#...a.a#.\n....##**####.\n.....#**#....\n######..####.\n#..........#.\n#...#......#.\n#.......#..#.\n#..........#.\n######.....#.\n.....#.....#.\n.....#.....#.\n.....#.....#.\n.....#.....#.\n.....#######.\n\n\n############\n#..........#\n#..........#\n#...**.....#\n#.q.*.#ooo.#\n#.p...######\n#a.a..#.....\n#######.....\n\n\n########\n#......#\n#.o.*o.#\n#.*....#\n#...q*.#\n#.o*po.#\n#..a.a.#\n########\n\n########\n#......#\n#.o*o..#\n#.*.*q.#\n#.o*op.#\n#...a.a#\n########\n\n\n.#####.\n.#..o#.\n.#.@.#.\n.#.@.#.\n.#.@.#.\n##.*.##\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n#######\n\n#######\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n##.*.##\n.#.@.#.\n.#.@.#.\n.#..o#.\n.#####.\n\n.....#######\n.....#.....#\n######.....#\n#o......q..#\n#.@@@*..p..#\n#......a.a.#\n######.....#\n.....#.....#\n.....#######\n\n\n##########\n#..q.....#\n#..p.....#\n#.a.a....#\n##.*.#*..#\n#.o.o#...#\n##########\n\n###########\n#...q.....#\n#...p.....#\n#..a.a....#\n#.#.*.#*..#\n#..o.o#...#\n###########\n\n\n..#####....\n###...#####\n#......*..#\n#.....#*..#\n#..#..#.q.#\n#..o.o#.p.#\n#######a.a#\n......#####\n\n########\n#......#\n#..q...#\n#..p...#\n#.a.a..#\n#......#\n#..#...#\n#..*@..#\n#..o@..#\n#......#\n########\n\n#######\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n#..#..#\n#..*@.#\n#..o@.#\n#.....#\n#######\n\n\n##########\n#........#\n#.#...q..#\n#.*@..p..#\n#.o@.a.a.#\n#........#\n##########\n\n\n################\n#..............#\n#........#.....#\n#..............#\n#..#......o....#\n#...*..q...o...#\n#...*..p.......#\n#.....a.a...#..#\n#..............#\n################\n\n\n#########\n#.......#\n#.......#\n#.q.....#\n#.p.....#\n#a.a....#\n#########\n\n\n###########\n#.........#\n#.........#\n#.........#\n#..q......#\n#..p......#\n#.a.a.....#\n#.........#\n###########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n)\n(\n====\nTRANSFORMATION\n====\n\n\nchoose 5 option 0.5 [no obstacle ]->[wall]\nchoose 2 [no obstacle]->[crate]\nchoose 2 [ no wall no player no player_hat no attachment ] -> [target]\n)\n",[0,0,3,2,3,0,0,0,2,2,2,3,0,3,3,0,0,0,3,0,1,1,0,0,0,1,2,2,3,1,1,1,2,3,0,0,1,1,2,3,0,3,2,2,0,3,3,3,1,1,2,1,1,0,1,1,2,2,1,1,0,3,3,3,3,2,3,2,2,2,2,3,2,2,3,2,2,1,1,0,1,1,2,1,0,0,2,0,3,2,3,3,2,2,2,3,0,3,3,0,3,0,0,0,0,2,2,1,1,1,1,1,0,0,2,1,1,1,2,1,3,0,0,0,3,1,2,2,3,3,3,3,0,2,3,3,3,3,2,3,3,3,0,1,0,0,3,0,0,1,0,1,1,1,2,1],"background wall wall_blot wall_e wall_s:0,background wall wall_n wall_s:1,1,1,1,1,background wall wall_blot wall_e wall_n wall_s:2,1,1,1,1,1,\n1,1,background wall wall_blot wall_e wall_n:3,background wall wall_e wall_w:4,background:5,5,5,5,5,background wall wall_w:6,background crate:7,5,\n5,5,5,5,5,4,4,5,5,5,5,5,\n5,5,5,5,5,5,5,5,4,4,5,5,\n5,5,background target:8,background wall wall_blot_ne_sm:9,5,5,5,5,5,5,5,4,\n4,5,5,5,5,7,5,5,5,5,5,5,\n5,5,4,4,5,5,5,background player_hat:10,background connection_se player target:11,background connection_ne wall wall_blot_ne_sm:12,5,5,\n5,5,5,5,5,4,4,5,5,5,5,attachment background connection_sw:13,\nattachment background connection_nw:14,5,5,5,5,5,5,5,4,4,5,5,\n5,5,5,background wall wall_e:15,5,5,5,5,5,5,5,4,\n4,5,5,5,5,5,background wall wall_blot wall_blot_ne wall_s wall_w:16,background wall wall_n:17,5,5,5,0,\n1,1,background wall wall_blot wall_n wall_w:18,4,5,5,5,5,5,5,5,5,\n5,5,4,5,5,5,4,5,5,5,5,5,\n5,5,5,5,5,4,5,5,5,16,1,1,\n1,1,1,1,1,1,1,1,18,5,5,5,\n",1,"1645642688116.959"] ], [ "Attractor Net", @@ -1480,5 +1480,9 @@ var testdata = [ "Isle of Bloks", ["title Isle of Bloks\n\ncolor_palette gameboycolour\n\nbackground_color #242b26\nkey_repeat_interval 0.12\nrealtime_interval 0.1\n========\nOBJECTS\n========\n(colors:\n#CADC9F - white\n#0f380f - dark\n#306230 - green\n#8bac0f - light green 1\n#9bbc0f - light green 2\n\ncustom \n#242b26 - black\n#3e4a40 - darkgray\n#4c5a4e\t- light darkgray\n#88a68d - gray\n#709277 - gray but slightly darker\n#ddebdf - white\n)\n\n\nbackground\n#3e4a40 #374239\n00000\n11000\n00000\n00011\n00000\n\nbground1\n#3e4a40 #374239\n00000\n11000\n00000\n00011\n00000\n\nbground2\n#3e4a40 #374239\n00000\n11000\n00000\n00011\n00000\n\nbground3\n#3e4a40 #374239\n11000\n00000\n00011\n00000\n00000\n\nbground4\n#3e4a40 #374239\n11000\n00000\n00011\n00000\n00000\n\nbground5\n#3e4a40 #374239\n00000\n00011\n00000\n00000\n11000\n\nbground6\n#3e4a40 #374239\n00000\n00011\n00000\n00000\n11000\n\nbground7\n#3e4a40 #374239\n00011\n00000\n00000\n11000\n00000\n\nbground8\n#3e4a40 #374239\n00011\n00000\n00000\n11000\n00000\n\nbground9\n#3e4a40 #374239\n00000\n00000\n11000\n00000\n00011\n\nbground10\n#3e4a40 #374239\n00000\n00000\n11000\n00000\n00011\n\nbground10anim\ntransparent\n\n(player animations)\n\nplayerStandR\n#ddebdf #242b26 #88a68d #709277\n00000\n00101\n22222\n33333\n.1.1.\n\nplayer1R\n#ddebdf #242b26 #88a68d #709277\n00000\n00101\n22222\n33333\n.1.1.\n\nanim1R\n#ddebdf #242b26 #88a68d\n00000\n00101\n22222\n22222\n.1.1.\n\nplayer2R\n#ddebdf #242b26 #88a68d #709277\n00000\n00101\n22222\n33333\n1...1\n\nanim2R\n#ddebdf #242b26 #88a68d\n00000\n00101\n22222\n22222\n1...1\n\nplayer1L\n#ddebdf #242b26 #88a68d #709277\n00000\n10100\n22222\n33333\n.1.1.\n\nanim1L\ntransparent\n\nplayer2L\n#ddebdf #242b26 #88a68d #709277 #FFFFFF\n00000\n10100\n22222\n33333\n1...1\n\nplayerswap1R\n#ddebdf #242b26 #88a68d #709277\n00000\n00000\n22222\n33333\n.1.1.\n\nplayerswap2R\n#ddebdf #242b26 #88a68d #709277 #FFFFFF\n44444\n00000\n00000\n22222\n33333\n\nanim2L\ntransparent\n\nplayerinactive\n#ddebdf #242b26 #88a68d #709277 #FFFFFF\n44444\n00000\n00000\n22222\n33333\n\n(player tops)\nplayerBoxTopInactive\n#88a68d\n.....\n.....\n.....\n.....\n00000\n\nplayerBoxTop\n#88a68d\n.....\n.....\n.....\n00000\n00000\n\nplayerTop\n#FFFFFF\n.....\n.....\n.....\n00000\n00000\n\nplayerTopInactive\n#FFFFFF\n.....\n.....\n.....\n.....\n00000\n\n(swap animations)\n\nplayerBoxInactive\n#ddebdf #242b26 #88a68d #709277\n22222\n33333\n33333\n33333\n33333\n\nplayerBoxSwapAnim1R\n#ddebdf #242b26 #88a68d #709277\n33333\n33333\n33333\n33333\n.1.1.\n\n(playerbox animations)\nplayerBox1R\n#ddebdf #242b26 #88a68d #709277\n33333\n33131\n33333\n33333\n.1.1.\n\nanimBox1R\ntransparent\n\nplayerBox2R\n#ddebdf #242b26 #88a68d #709277\n33333\n33131\n33333\n33333\n1...1\n\nanimBox2R\ntransparent\n\nplayerBox1L\n#ddebdf #242b26 #88a68d #709277\n33333\n13133\n33333\n33333\n.1.1.\n\nanimBox1L\ntransparent\n\nplayerBox2L\n#ddebdf #242b26 #88a68d #709277 #FFFFFF\n33333\n13133\n33333\n33333\n1...1\n\nanimBox2L\ntransparent\n()\n\n(------------------------------------------level elements)\nwall\ntransparent\n\nbox\n#242b26 #88a68d #709277 #3e4a40\n11111\n22222\n22222\n22222\n33333\n\nboxtop\n#242b26 #88a68d #709277\n.....\n.....\n.....\n11111\n11111\n\nbutton\n#242b26 #88a68d\n00000\n01110\n01010\n01110\n00000\n\npressedbutton\n#242b26 #88a68d\n00000\n01110\n01010\n01110\n00000\n\n(---------------------------------------island generation)\nland\n#CADC9F\n\ncornerLandTR\n#CADC9F #242b26\n00000\n00000\n00000\n00000\n10000\n\ncornerLandTL\n#CADC9F #242b26\n00000\n00000\n00000\n00000\n00001\n\ncornerLandDL\n#CADC9F #242b26\n0000.\n00000\n00000\n00000\n00000\n\ncornerLandDR\n#CADC9F #242b26\n.0000\n00000\n00000\n00000\n00000\n\ncliff\n#242b26 #242b26\n00000\n11111\n00000\n00000\n11111\n\ncornerCliffTR\n#242b26 #242b26\n10000\n01111\n00000\n10000\n.1111\n\ncornerCliffTL\n#242b26 #242b26\n00000\n11111\n00000\n00001\n1111.\n\n(----------------------------------transition objects)\nblackscreen1\n#242b26\n\nblackscreen2\n#242b26\n.000.\n00000\n00000\n00000\n.000.\n\nblackscreen3\n#242b26\n..0..\n.000.\n00000\n.000.\n..0..\n\nblackscreen4\n#242b26\n.....\n..0..\n.000.\n..0..\n.....\n\nblackscreen5\n#242b26\n.....\n.....\n..0..\n.....\n.....\n\noutscreen1\n#242b26\n0....\n0....\n0....\n0....\n0....\n\noutscreen2\n#242b26\n00...\n00...\n00...\n00...\n00...\n\noutscreen3\n#252b26\n000..\n000..\n000..\n000..\n000..\n\noutscreen4\n#252b26\n0000.\n0000.\n0000.\n0000.\n0000.\n\noutscreen5\n#252b26\n\n(--------------------------------------------decor)\ntreebase0\n#242b26 #88a68d #709277\n.....\n....1\n...10\n...0.\n.....\n\ntreebase1\n#242b26 #88a68d #709277\n.1122\n11122\n00022\n...00\n.....\n\ntreebase2\n#242b26 #88a68d #709277\n2....\n22...\n002..\n..0..\n.....\n\ntreestem1\n#88a68d #709277\n01.00\n.0001\n.0001\n.0011\n.0011\n\ntreecanopyMB\n#88a68d #709277 #242b26 #323b34\n33333\n33333\n33332\n22222\n122.0\n\ntreecanopyLB\n#88a68d #709277 #242b26 #323b34\n33333\n33333\n23333\n.2222\n..220\n\ntreecanopyLLB\n#88a68d #709277 #242b26 #323b34\n....3\n....2\n.....\n.....\n.....\n\ntreecanopyMM\n#88a68d #709277 #242b26 #323b34\n33333\n33333\n33333\n33333\n33333\n\ntreecanopyMT\n#323b34\n.....\n.....\n.....\n.000.\n00000\n\ntreecanopyLM\n#323b34\n...00\n..000\n.0000\n00000\n00000\n\ntreecanopyRM\n#323b34\n00...\n000..\n0000.\n00000\n00000\n\ntreecanopyRB\n#88a68d #709277 #242b26 #323b34\n33333\n33333\n23332\n2222.\n.22..\n\nbush\n#88a68d #709277 #242b26 #323b34\n00011\n00011\n00111\n21122\n.222.\n\nbushtop\n#88a68d #709277 #242b26 #323b34\n.....\n.....\n.001.\n00011\n00011\n\n(-----------------------------------------------------variables)\n(tracks buttons)\nbuttonState\ntransparent\n\nbuttonStateOff\ntransparent\n\n(------------------------------------------------------water?? tiles)\nshallowWater\n#a6c45d\n\nshallowWaterLRD\n#a6c45d\n.....\n.....\n00000\n00000\n00000\n\nshallowWaterBottom\n#a6c45d #323b34\n00000\n00000\n11111\n11111\n11111\n\nshallowWaterUp\n#a6c45d \n\nshallowWaterFull\n#a6c45d\n\n(---------------------------------------------------------smoke)\nsmoke1L\n#ddebdf\n.....\n.....\n..00.\n.00..\n..000\n\nsmoke2L\n#ddebdf\n.....\n.....\n.....\n.....\n000..\n\nsmoke1R\n#ddebdf\n.....\n.....\n00...\n.00..\n00...\n\nsmoke2R\n#ddebdf\n.....\n.....\n.....\n.....\n..000\n\nrestart1\n#CADC9F\n.000.\n.0.0.\n.0.0.\n.000.\n.....\n\nrestart2\n#CADC9F\n.000.\n.0...\n.00..\n.0...\n.....\n\nrestart3\n#ddebdf\n0.000\n..0..\n..000\n....0\n0.000\n\nrestart4\n#ddebdf\n.000.\n.0...\n.000.\n...0.\n.000.\n\nrestart5\n#ddebdf\n.00..\n.0.0.\n.00..\n.0.0.\n.0.0.\n\nrestartanim1\ntransparent\n\nrestartanim2\ntransparent\n\nrestartanim3\ntransparent\n\nrestartanim4\ntransparent\n\nrestartanim5\ntransparent\n=======\nLEGEND\n=======\n\nbgroundanim = bground1 or bground2 or bground3 or bground4 or bground5 or bground6 or bground7 or bground8 or bground9 or bground10 or bground10anim\n\nplayerbox = playerBox1R or playerBox2R or animBox1R or animBox2R or animBox1L or animBox2L or playerBox1L or playerBox2L\n\nplayer = player1R or player2R or anim1R or anim2R or player1L or anim1L or player2L or anim2L or playerBox\n\nplayerswapanim = playerswap1R or playerswap2R\nplayerboxswapanim = playerBoxSwapAnim1R\n\nblackscreen = blackscreen1 or blackscreen2 or blackscreen3 or blackscreen4 or blackscreen5\n\noutscreen = outscreen1 or outscreen2 or outscreen3 or outscreen4 or outscreen5\n\ncliffs = cliff or cornerCliffTR or cornerCliffTL\n\nground = land or cornerLandTR or cornerLandTL or cornerLandDL or cornerLandDR\n\ntree = treebase0 or treebase1 or treebase2\ntreedec = treestem1 or treecanopyMB or treecanopyLB or treecanopyLLB or treecanopyMM or treecanopyMT or treecanopyLM or treecanopyRM or treecanopyRB\n\nshallow = shallowWaterLRD or shallowWaterUp or shallowWater or shallowWaterFull\n\nsmoke = smoke1L or smoke2L or smoke1R or smoke2R\n\nrestart = restart1 or restart2 or restart3 or restart4 or restart5 or restartanim1 or restartanim2 or restartanim3 or restartanim4 or restartanim5\n\np = playerStandR and land and blackscreen1\n# = land and blackscreen1\nx = land and box and blackscreen1\no = button and land and blackscreen1\n. = background and blackscreen1\nl = land and treebase1 and blackscreen1\nc = bush and land and blackscreen1\ne = playerBoxInactive and land and blackscreen1\nw = buttonStateOff and blackscreen1\nm = shallowWaterLRD and blackscreen1\n1 = restart1\n2 = restart2\n\n=======\nSOUNDS\n=======\n\nsfx0 21839507\nsfx1 35644707\nsfx2 69260304\nsfx3 38107505\nbox move 20210107\nstartlevel 93909903\nsfx4 42654903\nsfx5 62394902\nrestart 16186705\nundo 44484905\n\n================\nCOLLISIONLAYERS\n================\nbackground\n(island decor layer)\nbgroundanim\nground,cliffs, shallowWaterBottom\nshallow, shallowWaterUp\n(tree layer)\ntree,treedec\n(decor layer)\nbush\n(interactive Layer)\nbutton,pressedbutton,buttonState,buttonStateOff\n(main layer)\nplayer,wall, box, playerStandR, playerBox, playerBoxInactive, playerswapanim,playerboxswapanim,playerinactive\n(\"3d\" layer)\nboxtop,playerBoxTop,playerBoxTopInactive, playerTop, playerTopInactive,bushtop\n(fx layer)\nsmoke, restart\n(fade in/out layer)\nblackscreen,outscreen\n\n\n======\nRULES\n======\n(gives control back to player)\n[playerStandR no blackscreen no outscreen]->[player1R]\n\n(----------------------------------------------transitions)\n(generates opening animation)\n[blackscreen5]->[]\n[blackscreen4]->[blackscreen5]\n[blackscreen3]->[blackscreen4]\n[blackscreen2]->[blackscreen3]\n[blackscreen1]->[blackscreen2]\n\n(background animation)\n[bground9]->[bground10anim]\n[bground8]->[bground9]\n[bground7]->[bground8]\n[bground6]->[bground7]\n[bground5]->[bground6]\n[bground4]->[bground5]\n[bground3]->[bground4]\n[bground2]->[bground3]\n[bground1]->[bground2]\n[bground10]->[bground1]\n[bground10anim]->[bground10]\n[background no bgroundanim]->[background bground1]\n\n(generates closing animation)\n[outscreen4] -> [outscreen5]\n[outscreen3] -> [outscreen4]\n[outscreen2] -> [outscreen3]\n[outscreen1] -> [outscreen2]\n[buttonState][background no outscreen] -> [buttonState][background outscreen1] sfx4\nlate [buttonState][player] -> [buttonState][playerStandR]\n\n(generates smoke animation)\n[smoke2R] -> []\n[smoke1R] -> [smoke2R]\n[smoke2L] -> []\n[smoke1L] -> [smoke2L]\n(----------------------------------------------------level)\n(generates decoration and walls)\nlate[background no ground] -> [background wall]\nlate up[wall no ground no shallowWater | ground ] -> [wall cliff |ground]\nlate up[box | no boxtop] -> [box | boxtop ]\nlate[bush no wall] -> [bush wall]\n(generates detailed cliffs)\nlate right[no ground no cliffs | cliff | cliffs no cornerCliffTR]-> [|cornerCliffTR|cliff]\nlate right[no ground no cliffs | cliff | ground no cornerCliffTR]-> [|cornerCliffTR|ground]\nlate right[ cliff | no ground no cliffs]-> [cornerCliffTL|]\n\ndown[shallowWaterLRD | no shallowWaterBottom no shallow no ground] -> [shallowWaterLRD | shallowWaterBottom]\ndown[shallowWaterLRD | shallowWaterLRD ] -> [shallowWaterLRD | shallowWaterFull]\ndown[shallowWaterFull | shallowWaterLRD ] -> [shallowWaterLRD | shallowWaterFull]\nlate up[shallowWaterFull | no shallow] -> [shallowWaterLRD | ]\n\n(for single-tile cliffs)\nlate horizontal[no cliffs no ground| cliffs | no cliffs no ground] -> [|cliff|]\n\n(generates detailed land)\nlate right[no ground | land | ground]-> [|cornerLandTR|ground]\nlate up [ ground\t| cornerLandTR | ground] -> [ground | land | ground]\nlate right[ ground | land | no ground]-> [ground|cornerLandTL|]\nlate up [ ground\t| cornerLandTL | ground] -> [ground | land | ground]\nlate up [ ground | cornerLandTL | no ground] -> [ground | cornerLandDL | ]\nlate up [ ground | cornerLandTR | no ground] -> [ground | cornerLandDR | ]\n\n(generates tree)\nright[no tree | treebase1 | no tree] -> [treebase0 | treebase1 | treebase2 ]\nup[ treebase1 | no treestem1 ] -> [ treebase1 | treestem1 ]\nup[ treestem1 | no treecanopyMB ] -> [ treestem1 | treecanopyMB ]\nright[ no treecanopyLB | treecanopyMB | no treecanopyRB ] -> [ treecanopyLB|treecanopyMB | treecanopyRB ]\nright[ no treecanopyLLB | treecanopyLB ] -> [ treecanopyLLB|treecanopyLB ]\nup[ treecanopyMB | no treecanopyMM ] -> [ treecanopyMB | treecanopyMM ]\nup[ treecanopyMM | no treecanopyMT ] -> [ treecanopyMM | treecanopyMT ]\nright[treecanopyMM | no treedec ] -> [treecanopyMM|treecanopyRM]\nleft[treecanopyMM | no treedec] -> [treecanopyMM | treecanopyLM]\n\n(generates tree collision)\n[treebase1] -> [treebase1 wall]\n\n(-----------------------------------------------------player)\n(steps left from facing right)\nleft [> player1R] -> [> anim1L]\nleft [> player2R] -> [> anim2L]\nright [> player1L] -> [> anim1R]\nright [> player2L] -> [> anim2R]\n\n(step animation)\nright up down[> player1R] -> [> anim1R]\nright up down[> player2R] -> [> anim2R]\n[> anim1R] -> [> player2R]sfx0\n[> anim2R] -> [> player1R]sfx1\n\nleft up down[> player1L] -> [> anim1L]\nleft up down[> player2L] -> [> anim2L]\n[> anim1L] -> [> player2L]sfx0\n[> anim2L] -> [> player1L]sfx1\n\n(---------------playerbox animations)\n\n(steps left from facing right)\nleft [> playerbox1R] -> [> animbox1L]\nleft [> playerbox2R] -> [> animbox2L]\nright [> playerbox1L] -> [> animbox1R]\nright [> playerbox2L] -> [> animbox2R]\n\n(step animation)\nright up down[> playerbox1R] -> [> animbox1R]\nright up down[> playerbox2R] -> [> animbox2R]\n[> animbox1R] -> [> playerbox2R]sfx0\n[> animbox2R] -> [> playerbox1R]sfx1\n\nleft up down[> playerbox1L] -> [> animbox1L]\nleft up down[> playerbox2L] -> [> animbox2L]\n[> animbox1L] -> [> playerbox2L]sfx0\n[> animbox2L] -> [> playerbox1L]sfx1\n\n(-----------------------------------)\n\n(pushes box)\n[> player | box] -> [> player | > box]\n[> player | playerBoxInactive] -> [> player | > playerBoxInactive]\n\n(pushes box into shallow)\n[ > box | shallow wall | ] -> [ smoke1L | land | smoke1R] sfx5\n[ > player | shallow wall | ] -> [ smoke1L | land | smoke1R] sfx5 \n\n(button)\n[> box | button] -> [> box | button]sfx2\n[> player | button] -> [> player | button]sfx2\n[> player | pressedbutton] -> [> player | pressedbutton]sfx2\n[box button] -> [box pressedbutton]\n[player button] -> [player pressedbutton]sfx2\n[playerStandR button] -> [playerStandR pressedbutton]\n[pressedbutton no player no box no playerStandR no playerbox] -> [button]\n\n(-----------------------------swap)\n\n(player -> box)\n[playerBoxSwapAnim1R]->[playerBox1R]\n[playerswap1R][playerTop][playerBoxInactive] -> [playerswap2R][playerTopInactive][playerBoxSwapAnim1R]\n[action player][playerBoxInactive] -> [playerswap1R][playerBoxInactive]sfx3\n\n(box -> player)\n[playerswap2R]->[playerBox1R]\n[playerswap1R][playerTop][playerBoxInactive] -> [playerswap2R][playerTopInactive][playerBoxSwapAnim1R]\n[action playerbox][playerswap2R] -> [playerBoxSwapAnim1R][playerswap1R]sfx3\n\n(manages extra tiles of movable entities)\n[boxtop] -> []\nlate up[box|no boxtop]->[box|boxtop]\n[playerBoxTop] -> []\nlate up[playerBox|no playerBoxTop]->[playerBox|playerBoxTop]\n[playerBoxTopInactive] -> []\nlate up[playerBoxInactive | ] -> [playerBoxInactive | playerBoxTopInactive]\n[playerTop] -> []\nlate up[playerStandR |no playerTop] -> [playerStandR | playerTop]\nlate up[player |no playerTop] -> [player | playerTop]\nlate up[bush | no bushtop] -> [bush | bushtop]\n\n\n(--------------------------------------------win condition)\n\n[buttonStateOff][pressedbutton][no button] -> [buttonState][pressedbutton][]\n[buttonState][button] -> [buttonStateOff][pressedbutton]\n[buttonState][player] -> [buttonState][playerStandR]\n==============\nWINCONDITIONS\n==============\nno buttonStateOff\nall buttonState on outscreen5\n\n=======\nLEVELS\n=======\nMessage WELCOME TO THE ISLE OF BLOKS\n\n(1)\nw..............\n...............\n...............\n.......##lc#...\n...cl#######...\n...####xo#o#...\n...#########...\n...#p###.......\n...###.........\n...............\n...............\n\nmessage NEW BOX+\n(2)\nw.............\n..............\n...###..c##...\n...#o#..co#...\n...####x###...\n...#x#..c##...\n...#p#..cx#...\n...###..###...\n..............\n..............\n\nmessage TOO MANY BOXES\n(3)\nw...............\n................\n..........cl....\n.....ox#xx#x....\n.....x#x##x#....\n.....#x#x##x....\n....cx####p#....\n................\n................\n\nmessage A HOLE NEW MECHANIC\n(4)\nw.............\n..............\n...###...#l#..\n...#x#xm###...\n...#p#...x#...\n...#o#..o##...\n..............\n..............\n\nmessage BUILD-A-BRIDGE\n(5)\nw.................\n..................\n..................\n....###.....#l#...\n....####m####x#...\n...###x...#x###...\n..o##p#...cc#.....\n...#####m##o#.....\n..................\n..................\n\nmessage BEWARE OF POTHOLES\n(6)\nw.................\n..................\n.......#o#........\n.......#m#........\n.......#cm........\n...o...###..#l....\n...#####x######...\n...m.#mm##mp#x#...\n...#######m..##...\n...##.............\n..................\n..................\n\nmessage HOLESOME\n(7)\nw.................\n..................\n...........####...\n...........#xx#...\n...........x###...\n...#mmmmmm##x#x#..\n...ommmmmm#x#p##..\n..................\n..................\n\nmessage HOTDOG STYLE\nw........................\n.....##.....##...........\n.....#######x######......\n...om#p#....m....#x#m#...\n......######x#######.....\n...........##.....##.....\n.........................\n\nmessage BOXING RING\n(8)\nw.............\n..............\n...mmmmmmmm...\n...mo####om...\n...m###x##m...\n...m#####xm...\n...m#x#p##m...\n...m###x##m...\n...mox###om...\n...mmmmmmmm...\n..............\n..............\n\n(11)\nmessage ISLE OF BOXES, OF BOXES AND BRIDGES\nw..................\n...................\n...................\n........#lc#o#.....\n...........###.....\n......mmmmm#x#.....\n...####mxmm###.....\n...#px#mmmmm.......\n...##x#....#####...\n...####....#x#o#...\n...........#####...\n...................\n...................\n\nmessage RING OF THE BOX\n(9)\nw..............\n...............\n...####.####...\n...#xo#m##p#...\n...####.####...\n...###...#x#...\n....m.....m....\n...###...###...\n...####.####...\n...#x##m##x#...\n...####.####...\n...............\n\nmessage CONSTRUCTION CREW\n(10)\nw....................\n.....................\n..........o.....#l...\n...####..c#.######...\n...##x####mm#x##x#...\n...###x#p#mmox##x#...\n...#o#####mm#x##x#...\n..........#.cc.......\n..........o..........\n.....................\n.....................\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",0,"tick",1,"tick","tick",1,"tick",0,"tick",1,"tick",1,"tick",0,"tick",3,"tick","tick","tick","tick","tick",4,"tick","tick",4,0,"tick","tick",3,"tick","tick","tick","tick","tick","tick","tick","undo","tick","tick",2,"tick","tick",2,"tick",3,"tick","tick","tick",2,"tick",3,"tick",2,"tick",1,"tick","tick",0,"tick",3,"tick","tick",3,"tick",3,"tick","tick",3,"tick",3,"tick","tick",3,2,"tick","tick",2,"tick",1,"tick",0,"tick",3,"tick",0,1,"tick","tick",1,"tick",1,"tick","tick",1,"tick","tick","tick","tick",1,"tick",0,"tick",1,"tick",2,"tick","tick",3,"tick","tick","tick",1,"tick",2,"tick",3,"tick",2,1,"tick","tick",1,"tick","tick",1,"tick","tick",1,"tick","tick","tick",3,"tick","tick","tick",0,"tick","tick","tick","tick","tick","tick","tick","tick"],"background bground3 buttonstateoff wall:0,background bground3 wall:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,background bground3 button land:2,background bground3 cornerlandtr:3,background bground3 cornerclifftr shallowwaterlrd wall:4,background bground3 cornerlanddr:5,3,background bground3 cornerclifftr wall:6,1,1,1,1,1,1,1,\nbackground bground3 land:7,background bground3 boxtop cliff wall:8,background bground3 box land:9,background bground3 cornerlandtl:10,background bground3 cornerclifftl wall:11,1,1,1,1,1,1,1,7,7,7,background bground3 cliff wall:12,1,1,\n1,1,1,1,1,1,7,7,7,12,1,1,1,1,5,7,7,7,\n7,7,7,12,1,1,1,1,2,background bground3 bushtop cliff shallowwaterlrd wall:13,background bground3 bush cornerlanddl wall:14,7,7,7,7,12,1,1,\n1,1,background bground3 cornerlanddl:15,7,background bground3 cornerclifftl shallowwaterlrd wall:16,15,7,7,10,11,1,1,1,1,1,1,1,1,\n7,background bground3 cliff shallowwaterlrd wall:17,background bground3 shallowwaterfull wall:18,background bground3 shallowwaterbottom wall:19,1,1,1,1,1,background bground3 treecanopyllb wall:20,1,1,7,3,6,1,1,1,\n1,1,background bground3 treecanopylm wall:21,background bground3 treecanopylb wall:22,1,background bground3 cornerlanddr treebase0:23,7,7,12,1,1,1,1,background bground3 treecanopymt wall:24,background bground3 treecanopymm wall:25,background bground3 treecanopymb wall:26,background bground3 treestem1 wall:27,background bground3 cornerlanddl treebase1 wall:28,\n7,7,3,6,1,1,1,1,background bground3 treecanopyrm wall:29,background bground3 treecanopyrb wall:30,1,background bground3 treebase2 wall:31,15,7,10,11,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n",11,"1645574325242.0908"] ], + [ + "SokokoS", + ["title SokokoS\nauthor Notan\nhomepage https://notaninart.itch.io\nbackground_color #350828\ntext_color #f9cb60\nnorepeat_action\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nPalette1\n#151244 #60117f #922a95 #be7dbc #350828\n01234\n12340\n23401\n34012\n40123\n\nPalette2\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n01234\n12340\n23401\n34012\n40123\n\nBackground\n#350828\n\nWall\n#7f6962#680703\n00010\n11111\n01000\n11111\n00010\n\nPlayer\n#be7dbc #151244\n.000.\n01010\n01010\n00000\n.000.\n\nCrate\n#f9960f\n00000\n0...0\n0...0\n0...0\n00000\n\n\nPlayerGuide\n#be7dbc #151244\n.....\n.....\n..0..\n.....\n.....\n\nCrateGuide\n#f9960f\n.....\n.....\n..0..\n.....\n.....\n\nTarget\n#7f6962\n.....\n.000.\n.0.0.\n.000.\n.....\n\nMirror\n#f9cb60\n..0..\n..0..\n..0..\n..0..\n..0..\n\nMarker\ntransparent\n\n=======\nLEGEND\n=======\n\nObstacle = Crate or Wall\nGuide = PlayerGuide or CrateGuide\n\nPalette = Palette1 or Palette2\nX = Palette1\nY = Palette2\n\n. = Background\n# = Wall\nI = Mirror\nP = Player\n╋ = Crate\n╬ = Target\nH = Mirror and Wall\n& = Crate and Target\n@ = Crate and Wall\n\n=======\nSOUNDS\n=======\n\n\nsfx0 22463707 (walk)\nsfx1 67079507 (push 10471704)\nsfx2 03111065 (flip)\nsfx3 10471704 (walk unused)\nsfx4 41314507 (walk unused)\nsfx5 10471704 (push unused)\nUndo 21479104 (72060504 60450507)\nrestart 46704309\nstartgame 21069303\nclosemessage 21069303\n(startlevel 67233309)\nendlevel 32515109\n(endgame 21069303)\ntitlescreen 21069303\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPalette\nTarget, Wall\nGuide\nPlayer\nCrate\nMirror\nMarker\n\n======\nRULES \n======\n\n[ > player no obstacle | no obstacle ] -> [ | player ] sfx0\n[ > player no obstacle | crate no wall | no obstacle ] -> [ | player | crate ] sfx1\n[ > player ] -> [ player ]\n\n[ action player ] -> sfx2\n\nhorizontal [ action player ] [ no marker | mirror | no marker ] -> [ action player ] [ marker | mirror | marker ]\nright [ | marker no crate | ... | marker no crate | ] -> [ marker | | ... | | marker ]\n+ horizontal [ | marker crate | ... | marker no crate | ] -> [ marker | | ... | crate | marker ]\n+ right [ | marker crate | ... | marker crate | ] -> [ marker | crate | ... | crate | marker ]\n[ marker ] -> [ ]\n\nhorizontal [ action player | ... | mirror ] -> [ player | ... | marker mirror ]\nright [ | marker mirror | ] -> [ marker | mirror | marker ]\nright [ | marker no player | ... | marker no player | ] -> [ marker | | ... | | marker ]\n+ horizontal [ marker player | ... | marker ] -> [ | ... | player ]\n[ marker ] -> [ ]\n\nlate [ guide ] -> [ ]\nlate horizontal [ no marker | mirror | no marker ] -> [ marker | mirror | marker ]\nlate right [ | marker no crate | ... | marker no crate | ] -> [ marker | | ... | | marker ]\n+ late horizontal [ | marker crate | ... | marker no crate | ] -> [ marker | crate | ... | crateGuide | marker ]\n+ late right [ | marker crate | ... | marker crate | ] -> [ marker | crate CrateGuide | ... | crate crateGuide | marker ]\nlate [ marker ] -> [ ]\n\nlate horizontal [ player | ... | mirror ] -> [ player | ... | marker mirror ]\nlate right [ | marker mirror | ] -> [ marker | mirror | marker ]\nlate right [ | marker no player | ... | marker no player | ] -> [ marker | | ... | | marker ]\n+ late horizontal [ marker player | ... | marker ] -> [ player | ... | playerGuide ]\nlate [ marker ] -> [ ]\n\n==============\nWINCONDITIONS\n==============\n\nall target on crate\n\n======= \nLEVELS\n=======\n\n\nMessage Press X | X sserP\n\n\n(\n######h######\n##..╬.i╬...##\n##...╬i.╬..##\n######h##╋###\n#...##h##..##\n#.#.##h##..##\n#...#.h..#╋##\n#####.h.╋.╋.#\n#####.h##...#\n#...#.h##.#.#\n#.p.#.i.....#\n#...##h######\n######h######\n\n\n######h######\n##..╬.i╬...##\n##...╬i.╬..##\n######h##╋###\n######h##...#\n######h##...#\n#####.h..#╋##\n#####.h.╋.╋.#\n#####.h##...#\n#...#.h##.#.#\n#.p.#.i.....#\n#...##h######\n######h######\n)\n\n#######h#######\n####...i#╬╬####\n####..#i.╬╬####\n#######h#╋#####\n####..#h#.#####\n####.##h#.#####\n####...h.╋#####\n######.h.╋.╋..#\n######.h#..##.#\n##...#.h##.##.#\n##.p.#.i......#\n##...##h#######\n#######h#######\n\n\nMessage You win! | !niw ouY\n\n",[3,4,0,0,0,1,1,4,3,2,2,2,3,3,3,3,0,0,0,3,1,2,0,3,4,0,4,1,2,0,2,3,2,2,1,1,4,0,0,0,0,1,3,2,2,2,2,3,3,3,3,0,0,0,1,0,4,1,3,3,2,4,4,0,1,1,0,0,3,4,0,0,4,1,0,3,3,2,3,2,3,3,2,2],"background wall: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,background crateguide wall:1,0,background:2,2,2,0,0,0,0,0,0,0,\n0,0,0,2,2,2,0,0,2,2,0,2,2,background crateguide:3,0,\n0,2,2,2,0,0,2,2,0,background playerguide:4,1,2,1,0,0,\n0,0,0,0,2,0,0,0,0,2,2,2,2,2,0,\n0,background mirror wall:5,background mirror:6,6,5,5,5,5,5,5,5,6,5,5,0,\n0,2,0,0,0,2,2,0,0,2,0,0,0,background target:7,7,\n2,background player:8,background crate:9,2,9,2,0,2,0,0,0,7,7,0,0,\n0,background crate wall:10,2,2,2,2,0,0,0,0,0,0,0,0,0,\n2,0,0,2,0,0,0,0,0,0,0,0,0,9,0,\n0,2,0,0,0,0,0,0,0,0,0,2,2,2,2,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",1,"1645642394866.7083"] + ], ]; From 613ee32c4a2ee1d4675f41276cf0ee0aa8253b3d Mon Sep 17 00:00:00 2001 From: MisshapenSmiley Date: Wed, 23 Feb 2022 19:05:41 -0500 Subject: [PATCH 034/122] fix trailing whitespace and inconsistent formatting in default project --- src/editor.html | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/editor.html b/src/editor.html index 7b7fab9ab..b6dcd35b9 100644 --- a/src/editor.html +++ b/src/editor.html @@ -33,20 +33,20 @@ OBJECTS ======== -Background -GREEN +Background +Green -Target -DarkBlue +Target +DarkBlue -Wall -BROWN +Wall +Brown -Player -Blue +Player +Blue -Crate -Orange +Crate +Orange ======= LEGEND @@ -72,18 +72,18 @@ Player, Wall, Crate ====== -RULES -====== +RULES +====== -[ > Player | Crate ] -> [ > Player | > Crate ] +[ > Player | Crate ] -> [ > Player | > Crate ] ============== WINCONDITIONS ============== -All Target on Crate +all Target on Crate -======= +======= LEVELS ======= From d3f7b82a76c70d1bc82ac0242f1b9b97e401dd2e Mon Sep 17 00:00:00 2001 From: MisshapenSmiley Date: Wed, 23 Feb 2022 21:36:42 -0500 Subject: [PATCH 035/122] ignore .DS_Store in all subdirectories --- .gitignore | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 9c41dac73..211d9aac8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,5 @@ bin/ -.DS_Store -*/.DS_Store -*/*/.DS_Store -*/*/*/.DS_Store -*/*/*/*.DS_Store -*/*/*/*/*.DS_Store +**/.DS_Store *.swp src - Kopie From 619dfd74de219d80f0a7ab1c65b8bede3671814e Mon Sep 17 00:00:00 2001 From: increpare Date: Thu, 24 Feb 2022 09:01:13 +0100 Subject: [PATCH 036/122] Update editor.html the casing isn't inconsistent as such - it's just formatting it as you might for a sentence --- src/editor.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/editor.html b/src/editor.html index b6dcd35b9..43fcc9360 100644 --- a/src/editor.html +++ b/src/editor.html @@ -81,7 +81,7 @@ WINCONDITIONS ============== -all Target on Crate +All Target on Crate ======= LEVELS From a23e1244a01e5dc216bf6a965474d8677579e0ed Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Thu, 24 Feb 2022 19:23:44 +0100 Subject: [PATCH 037/122] fixes #852 --- src/games_dat.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/games_dat.js b/src/games_dat.js index 51230b0b3..99a95f2dc 100644 --- a/src/games_dat.js +++ b/src/games_dat.js @@ -393,11 +393,11 @@ var games_gallery = [ "homepage": "https://twitter.com/trevnewt" }, { - "url": "https://www.puzzlescript.net/play.html?p=d688de5e0e1e978f63fd", + "url": "https://www.puzzlescript.net/play.html?p=81b9430a6c09b355f6379c0f63beb04c", "thumb": "d688de5e0e1e978f63fd.gif", "title": "Marble Shoot", "author": "Stuart Burfield", - "homepage": "https://www.thepixelshelf.com" + "homepage": "https://www.stuartspixelgames.com" }, { "url": "https://www.draknek.org/games/puzzlescript/cyber-lasso.php", From 32b3c6ac3de2238314f38d177d812ad0c61e0150 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Thu, 24 Feb 2022 20:19:47 +0100 Subject: [PATCH 038/122] fixes #850 --- src/js/parser.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/js/parser.js b/src/js/parser.js index d5d900ae2..74f822962 100644 --- a/src/js/parser.js +++ b/src/js/parser.js @@ -1510,6 +1510,24 @@ var codeMirrorFn = function() { } } else { stream.match(reg_notcommentstart, true); + + var key = state.metadata[state.metadata.length-2]; + var val = state.metadata[state.metadata.length-1]; + + if (key === "background_color" || key === "text_color"){ + var candcol = val.trim().toLowerCase(); + if (candcol in colorPalettes.arnecolors) { + return 'COLOR COLOR-' + candcol.toUpperCase(); + } else if (candcol==="transparent") { + return 'COLOR FADECOLOR'; + } else if ( (candcol.length===4) || (candcol.length===7)) { + var color = candcol.match(/#[0-9a-fA-F]+/); + if (color!==null){ + return 'MULTICOLOR'+color[0]; + } + } + + } return "METADATATEXT"; } break; From 87c905fa4e20cba54c1e4aac66e5389f38d9906c Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Thu, 24 Feb 2022 20:55:39 +0100 Subject: [PATCH 039/122] fixes #849 ok I'm going for lower-case on keywords --- src/editor.html | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/editor.html b/src/editor.html index 43fcc9360..c70c6aff0 100644 --- a/src/editor.html +++ b/src/editor.html @@ -34,19 +34,19 @@ ======== Background -Green +green Target -DarkBlue +darkblue Wall -Brown +brown Player -Blue +blue Crate -Orange +orange ======= LEGEND @@ -81,7 +81,7 @@ WINCONDITIONS ============== -All Target on Crate +all Target on Crate ======= LEVELS From c5f225ae7d7492e360405dc0b9c0b3d4bde8d296 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Thu, 24 Feb 2022 22:37:08 +0100 Subject: [PATCH 040/122] fixing erronious explanation --- src/js/buildStandalone.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/js/buildStandalone.js b/src/js/buildStandalone.js index da4a58770..dbedbd7a0 100644 --- a/src/js/buildStandalone.js +++ b/src/js/buildStandalone.js @@ -57,8 +57,9 @@ function buildStandalone(sourceCode) { htmlString = htmlString.replace(/__HOMEPAGE__/g,homepage); htmlString = htmlString.replace(/__HOMEPAGE_STRIPPED_PROTOCOL__/g,homepage_stripped); - // $ has special meaning to JavaScript's String.replace ($0, $1, etc.) - // '$$'s are inserted as single '$'s. + // $ has special meaning to JavaScript's String.replace + // c.f. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#specifying_a_string_as_a_parameter + // basically: '$$'s are inserted as single '$'s. // First we double all strings - remember that replace interprets '$$' // as a single'$', so we need to type four to double From a2958d152fe575083b44ecd7174841c13dfad7b5 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Thu, 24 Feb 2022 23:03:57 +0100 Subject: [PATCH 041/122] file renaming to get around case-madness Part 1 (for #853 ) --- src/Gallery/gifs/{Lightdown.gif => lightdown2.gif} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename src/Gallery/gifs/{Lightdown.gif => lightdown2.gif} (100%) diff --git a/src/Gallery/gifs/Lightdown.gif b/src/Gallery/gifs/lightdown2.gif similarity index 100% rename from src/Gallery/gifs/Lightdown.gif rename to src/Gallery/gifs/lightdown2.gif From 71a5b29cb09878410e1e9c1272f86671df6274fe Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Thu, 24 Feb 2022 23:04:06 +0100 Subject: [PATCH 042/122] file renaming to get around case-madness Part 2 (fixes #853 ) --- src/Gallery/gifs/{lightdown2.gif => lightdown.gif} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename src/Gallery/gifs/{lightdown2.gif => lightdown.gif} (100%) diff --git a/src/Gallery/gifs/lightdown2.gif b/src/Gallery/gifs/lightdown.gif similarity index 100% rename from src/Gallery/gifs/lightdown2.gif rename to src/Gallery/gifs/lightdown.gif From da0fd9e3f1ee02fc8b163dc3dede33242ac2340c Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Thu, 24 Feb 2022 23:31:13 +0100 Subject: [PATCH 043/122] fixes #855 --- src/js/compiler.js | 10 +++------ src/js/parser.js | 22 ++++++++++++++++++++ src/tests/resources/errormessage_testdata.js | 4 ++++ 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/src/js/compiler.js b/src/js/compiler.js index c7bf841cf..2773b23c6 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -2803,7 +2803,8 @@ function compile(command, text, randomseed) { consolePrint('================================='); try { var state = loadFile(text); - // consolePrint(JSON.stringify(state)); + } catch(error){ + consolePrint(error); } finally { compiling = false; } @@ -2815,12 +2816,7 @@ function compile(command, text, randomseed) { if (errorCount > MAX_ERRORS) { return; } - /*catch(err) - { - if (anyErrors===false) { - logErrorNoLine(err.toString()); - } - }*/ + if (errorCount > 0) { if (IDE===false){ diff --git a/src/js/parser.js b/src/js/parser.js index d5d900ae2..5a9ac9b2d 100644 --- a/src/js/parser.js +++ b/src/js/parser.js @@ -21,10 +21,17 @@ for post-launch credits, check out activty on github.com/increpare/PuzzleScript */ +const MAX_ERRORS_FOR_REAL=100; + var compiling = false; var errorStrings = [];//also stores warning strings var errorCount=0;//only counts errors +function TooManyErrors(){ + consolePrint("Too many errors/warnings; aborting compilation.",true); + throw new Error("Too many errors/warnings; aborting compilation."); +} + function logErrorCacheable(str, lineNumber,urgent) { if (compiling||urgent) { if (lineNumber === undefined) { @@ -36,6 +43,9 @@ function logErrorCacheable(str, lineNumber,urgent) { } else { consolePrint(errorString); errorStrings.push(errorString); + if (errorStrings.length>MAX_ERRORS_FOR_REAL){ + TooManyErrors(); + } errorCount++; } } @@ -52,6 +62,9 @@ function logError(str, lineNumber,urgent) { } else { consolePrint(errorString,true); errorStrings.push(errorString); + if (errorStrings.length>MAX_ERRORS_FOR_REAL){ + TooManyErrors(); + } errorCount++; } } @@ -68,6 +81,9 @@ function logWarning(str, lineNumber,urgent) { } else { consolePrint(errorString,true); errorStrings.push(errorString); + if (errorStrings.length>MAX_ERRORS_FOR_REAL){ + TooManyErrors(); + } } } } @@ -80,6 +96,9 @@ function logWarningNoLine(str,urgent) { } else { consolePrint(errorString,true); errorStrings.push(errorString); + if (errorStrings.length>MAX_ERRORS_FOR_REAL){ + TooManyErrors(); + } } errorCount++; } @@ -94,6 +113,9 @@ function logErrorNoLine(str,urgent) { } else { consolePrint(errorString,true); errorStrings.push(errorString); + if (errorStrings.length>MAX_ERRORS_FOR_REAL){ + TooManyErrors(); + } } errorCount++; } diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index 7fbb39f5c..b0946f0d9 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -527,4 +527,8 @@ var errormessage_testdata = [ "Sound effect already declared message", ["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 ten 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 234234 \nsfx0 3295707 (player jump)\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 10\n\n###################\n#.................#\n#.................#\n#............#....#\n#............#....#\n#.......#...##....#\n#..P....#...##..E.#\n###################\n###################\n..#...#...#...#...#\n#...#...#...#...#..\n###################\n###################\n###################\n###################\n\nmessage level 2 of 10\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 10\n\n###################\n#........#........#\n#........#........#\n###.............###\n#.................#\n#.....P.....E.....#\n#....###...###....#\n#..######.######..#\n#.......#.#.......#\n#.......###.......#\n###.............###\n#.................#\n#.................#\n######.......######\n###################\n\nmessage level 4 of 10\n\n###################\n#..#...........#..#\n#..#.....E.....#..#\n#..#....###....#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#.....P.....#..#\n###################\n\nmessage level 5 of 10\n\n###################\n#.................#\n#.................#\n#.................#\n#...C........C....#\n#..###......###...#\n#.................#\n#...P........E....#\n#########.##.#.####\n###################\n#.................#\n#.................#\n#.................#\n###################\n\nmessage level 6 of 10\n\n###################\n#..#.#....#..#....#\n#..#.#.E..#..######\n#########.#..#....#\n#....#..#.####....#\n#....#..#....######\n#########....#.#..#\n#....#..#....#.#..#\n#########.#########\n#....#....#..#....#\n######....#..#....#\n#.#..#....#########\n#.#..####.#..#..#.#\n#.#..#..#P#..#..#.#\n###################\n\nmessage level 7 of 10\n\n###################\n#.................#\n#...............C.#\n#............####.#\n#.................#\n#.......#...#.#...#\n#..P....#...#.#E..#\n#.###############.#\n#.###############.#\n#.#...#...#...#...#\n#...#...#...#...#.#\n###################\n#.................#\n#.................#\n###################\n\nmessage level 8 of 10\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 10\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 10\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#.E..........C....#\n####.##.....###...#\n#######.....###...#\n#.................#\n#.................#\n#...P.............#\n#..#############..#\n###################\n#.................#\n###################\n\n\nmessage congratulations!\n\n",["line 121 : SFX0 already declared."],0] ], + [ + "Pushing It", + ["title Pushing It\nauthor Jack Lance\ntext_color #A20021\nbackground_color #C1FBC6A\nverbose_logging\nagain_interval 0.1\n\n========\nOBJECTS\n========\n\nBackground1\n#CCCCCC\n\nBackground2\n#C1FBC6\n\ncrateactivatedcoord00\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord01\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord02\ntransparent\n\ncrateactivatedcoord03\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord04\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord10\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord11\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord12\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord13\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord14\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord20\ntransparent\n\ncrateactivatedcoord21\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord22\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord23\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord24\ntransparent\n\ncrateactivatedcoord30\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord31\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord32\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord33\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord34\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord40\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord41\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord42\ntransparent\n\ncrateactivatedcoord43\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord44\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset1coord00\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord01\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord02\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord03\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord04\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord10\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord11\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord12\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord13\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord14\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord20\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord21\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord22\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord23\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord24\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord30\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord31\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord32\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord33\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord34\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord40\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord41\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord42\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord43\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord44\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset2coord00\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord01\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord02\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord03\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord04\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord10\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord11\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord12\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord13\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord14\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord20\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord21\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord22\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord23\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord24\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord30\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord31\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord32\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord33\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord34\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord40\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord41\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord42\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord43\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord44\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset3coord00\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord01\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord02\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord03\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord04\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord10\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord11\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord12\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord13\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord14\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord20\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord21\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord22\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord23\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord24\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord30\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord31\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord32\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord33\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord34\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord40\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord41\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord42\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord43\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord44\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset4coord00\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\n",["No collision layers defined. All objects need to be in collision layers.","you have to define something to be the background","error, didn't find any object called player, either in the objects section, or the legends section. there must be a player!","line 12 : Object \"BACKGROUND1\" has been defined, but not assigned to a layer.","line 15 : Object \"BACKGROUND2\" has been defined, but not assigned to a layer.","line 18 : Object \"CRATEACTIVATEDCOORD00\" has been defined, but not assigned to a layer.","line 26 : Object \"CRATEACTIVATEDCOORD01\" has been defined, but not assigned to a layer.","line 34 : Object \"CRATEACTIVATEDCOORD02\" has been defined, but not assigned to a layer.","line 37 : Object \"CRATEACTIVATEDCOORD03\" has been defined, but not assigned to a layer.","line 45 : Object \"CRATEACTIVATEDCOORD04\" has been defined, but not assigned to a layer.","line 53 : Object \"CRATEACTIVATEDCOORD10\" has been defined, but not assigned to a layer.","line 61 : Object \"CRATEACTIVATEDCOORD11\" has been defined, but not assigned to a layer.","line 69 : Object \"CRATEACTIVATEDCOORD12\" has been defined, but not assigned to a layer.","line 77 : Object \"CRATEACTIVATEDCOORD13\" has been defined, but not assigned to a layer.","line 85 : Object \"CRATEACTIVATEDCOORD14\" has been defined, but not assigned to a layer.","line 93 : Object \"CRATEACTIVATEDCOORD20\" has been defined, but not assigned to a layer.","line 96 : Object \"CRATEACTIVATEDCOORD21\" has been defined, but not assigned to a layer.","line 104 : Object \"CRATEACTIVATEDCOORD22\" has been defined, but not assigned to a layer.","line 112 : Object \"CRATEACTIVATEDCOORD23\" has been defined, but not assigned to a layer.","line 120 : Object \"CRATEACTIVATEDCOORD24\" has been defined, but not assigned to a layer.","line 123 : Object \"CRATEACTIVATEDCOORD30\" has been defined, but not assigned to a layer.","line 131 : Object \"CRATEACTIVATEDCOORD31\" has been defined, but not assigned to a layer.","line 139 : Object \"CRATEACTIVATEDCOORD32\" has been defined, but not assigned to a layer.","line 147 : Object \"CRATEACTIVATEDCOORD33\" has been defined, but not assigned to a layer.","line 155 : Object \"CRATEACTIVATEDCOORD34\" has been defined, but not assigned to a layer.","line 163 : Object \"CRATEACTIVATEDCOORD40\" has been defined, but not assigned to a layer.","line 171 : Object \"CRATEACTIVATEDCOORD41\" has been defined, but not assigned to a layer.","line 179 : Object \"CRATEACTIVATEDCOORD42\" has been defined, but not assigned to a layer.","line 182 : Object \"CRATEACTIVATEDCOORD43\" has been defined, but not assigned to a layer.","line 190 : Object \"CRATEACTIVATEDCOORD44\" has been defined, but not assigned to a layer.","line 198 : Object \"CRATEACTIVATEDYOFFSET1COORD00\" has been defined, but not assigned to a layer.","line 206 : Object \"CRATEACTIVATEDYOFFSET1COORD01\" has been defined, but not assigned to a layer.","line 214 : Object \"CRATEACTIVATEDYOFFSET1COORD02\" has been defined, but not assigned to a layer.","line 222 : Object \"CRATEACTIVATEDYOFFSET1COORD03\" has been defined, but not assigned to a layer.","line 230 : Object \"CRATEACTIVATEDYOFFSET1COORD04\" has been defined, but not assigned to a layer.","line 238 : Object \"CRATEACTIVATEDYOFFSET1COORD10\" has been defined, but not assigned to a layer.","line 246 : Object \"CRATEACTIVATEDYOFFSET1COORD11\" has been defined, but not assigned to a layer.","line 254 : Object \"CRATEACTIVATEDYOFFSET1COORD12\" has been defined, but not assigned to a layer.","line 262 : Object \"CRATEACTIVATEDYOFFSET1COORD13\" has been defined, but not assigned to a layer.","line 270 : Object \"CRATEACTIVATEDYOFFSET1COORD14\" has been defined, but not assigned to a layer.","line 278 : Object \"CRATEACTIVATEDYOFFSET1COORD20\" has been defined, but not assigned to a layer.","line 286 : Object \"CRATEACTIVATEDYOFFSET1COORD21\" has been defined, but not assigned to a layer.","line 294 : Object \"CRATEACTIVATEDYOFFSET1COORD22\" has been defined, but not assigned to a layer.","line 302 : Object \"CRATEACTIVATEDYOFFSET1COORD23\" has been defined, but not assigned to a layer.","line 310 : Object \"CRATEACTIVATEDYOFFSET1COORD24\" has been defined, but not assigned to a layer.","line 318 : Object \"CRATEACTIVATEDYOFFSET1COORD30\" has been defined, but not assigned to a layer.","line 326 : Object \"CRATEACTIVATEDYOFFSET1COORD31\" has been defined, but not assigned to a layer.","line 334 : Object \"CRATEACTIVATEDYOFFSET1COORD32\" has been defined, but not assigned to a layer.","line 342 : Object \"CRATEACTIVATEDYOFFSET1COORD33\" has been defined, but not assigned to a layer.","line 350 : Object \"CRATEACTIVATEDYOFFSET1COORD34\" has been defined, but not assigned to a layer.","line 358 : Object \"CRATEACTIVATEDYOFFSET1COORD40\" has been defined, but not assigned to a layer.","line 366 : Object \"CRATEACTIVATEDYOFFSET1COORD41\" has been defined, but not assigned to a layer.","line 374 : Object \"CRATEACTIVATEDYOFFSET1COORD42\" has been defined, but not assigned to a layer.","line 382 : Object \"CRATEACTIVATEDYOFFSET1COORD43\" has been defined, but not assigned to a layer.","line 390 : Object \"CRATEACTIVATEDYOFFSET1COORD44\" has been defined, but not assigned to a layer.","line 398 : Object \"CRATEACTIVATEDYOFFSET2COORD00\" has been defined, but not assigned to a layer.","line 406 : Object \"CRATEACTIVATEDYOFFSET2COORD01\" has been defined, but not assigned to a layer.","line 414 : Object \"CRATEACTIVATEDYOFFSET2COORD02\" has been defined, but not assigned to a layer.","line 422 : Object \"CRATEACTIVATEDYOFFSET2COORD03\" has been defined, but not assigned to a layer.","line 430 : Object \"CRATEACTIVATEDYOFFSET2COORD04\" has been defined, but not assigned to a layer.","line 438 : Object \"CRATEACTIVATEDYOFFSET2COORD10\" has been defined, but not assigned to a layer.","line 446 : Object \"CRATEACTIVATEDYOFFSET2COORD11\" has been defined, but not assigned to a layer.","line 454 : Object \"CRATEACTIVATEDYOFFSET2COORD12\" has been defined, but not assigned to a layer.","line 462 : Object \"CRATEACTIVATEDYOFFSET2COORD13\" has been defined, but not assigned to a layer.","line 470 : Object \"CRATEACTIVATEDYOFFSET2COORD14\" has been defined, but not assigned to a layer.","line 478 : Object \"CRATEACTIVATEDYOFFSET2COORD20\" has been defined, but not assigned to a layer.","line 486 : Object \"CRATEACTIVATEDYOFFSET2COORD21\" has been defined, but not assigned to a layer.","line 494 : Object \"CRATEACTIVATEDYOFFSET2COORD22\" has been defined, but not assigned to a layer.","line 502 : Object \"CRATEACTIVATEDYOFFSET2COORD23\" has been defined, but not assigned to a layer.","line 510 : Object \"CRATEACTIVATEDYOFFSET2COORD24\" has been defined, but not assigned to a layer.","line 518 : Object \"CRATEACTIVATEDYOFFSET2COORD30\" has been defined, but not assigned to a layer.","line 526 : Object \"CRATEACTIVATEDYOFFSET2COORD31\" has been defined, but not assigned to a layer.","line 534 : Object \"CRATEACTIVATEDYOFFSET2COORD32\" has been defined, but not assigned to a layer.","line 542 : Object \"CRATEACTIVATEDYOFFSET2COORD33\" has been defined, but not assigned to a layer.","line 550 : Object \"CRATEACTIVATEDYOFFSET2COORD34\" has been defined, but not assigned to a layer.","line 558 : Object \"CRATEACTIVATEDYOFFSET2COORD40\" has been defined, but not assigned to a layer.","line 566 : Object \"CRATEACTIVATEDYOFFSET2COORD41\" has been defined, but not assigned to a layer.","line 574 : Object \"CRATEACTIVATEDYOFFSET2COORD42\" has been defined, but not assigned to a layer.","line 582 : Object \"CRATEACTIVATEDYOFFSET2COORD43\" has been defined, but not assigned to a layer.","line 590 : Object \"CRATEACTIVATEDYOFFSET2COORD44\" has been defined, but not assigned to a layer.","line 598 : Object \"CRATEACTIVATEDYOFFSET3COORD00\" has been defined, but not assigned to a layer.","line 606 : Object \"CRATEACTIVATEDYOFFSET3COORD01\" has been defined, but not assigned to a layer.","line 614 : Object \"CRATEACTIVATEDYOFFSET3COORD02\" has been defined, but not assigned to a layer.","line 622 : Object \"CRATEACTIVATEDYOFFSET3COORD03\" has been defined, but not assigned to a layer.","line 630 : Object \"CRATEACTIVATEDYOFFSET3COORD04\" has been defined, but not assigned to a layer.","line 638 : Object \"CRATEACTIVATEDYOFFSET3COORD10\" has been defined, but not assigned to a layer.","line 646 : Object \"CRATEACTIVATEDYOFFSET3COORD11\" has been defined, but not assigned to a layer.","line 654 : Object \"CRATEACTIVATEDYOFFSET3COORD12\" has been defined, but not assigned to a layer.","line 662 : Object \"CRATEACTIVATEDYOFFSET3COORD13\" has been defined, but not assigned to a layer.","line 670 : Object \"CRATEACTIVATEDYOFFSET3COORD14\" has been defined, but not assigned to a layer.","line 678 : Object \"CRATEACTIVATEDYOFFSET3COORD20\" has been defined, but not assigned to a layer.","line 686 : Object \"CRATEACTIVATEDYOFFSET3COORD21\" has been defined, but not assigned to a layer.","line 694 : Object \"CRATEACTIVATEDYOFFSET3COORD22\" has been defined, but not assigned to a layer.","line 702 : Object \"CRATEACTIVATEDYOFFSET3COORD23\" has been defined, but not assigned to a layer.","line 710 : Object \"CRATEACTIVATEDYOFFSET3COORD24\" has been defined, but not assigned to a layer.","line 718 : Object \"CRATEACTIVATEDYOFFSET3COORD30\" has been defined, but not assigned to a layer.","line 726 : Object \"CRATEACTIVATEDYOFFSET3COORD31\" has been defined, but not assigned to a layer.","line 734 : Object \"CRATEACTIVATEDYOFFSET3COORD32\" has been defined, but not assigned to a layer.","line 742 : Object \"CRATEACTIVATEDYOFFSET3COORD33\" has been defined, but not assigned to a layer.","line 750 : Object \"CRATEACTIVATEDYOFFSET3COORD34\" has been defined, but not assigned to a layer.","line 758 : Object \"CRATEACTIVATEDYOFFSET3COORD40\" has been defined, but not assigned to a layer."],100] + ], ]; \ No newline at end of file From f70adbb1e4f860d3a01641003178d7b6aace5174 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Thu, 24 Feb 2022 23:40:18 +0100 Subject: [PATCH 044/122] fixes #854 --- src/js/parser.js | 8 ++++---- src/tests/resources/errormessage_testdata.js | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/js/parser.js b/src/js/parser.js index 5a9ac9b2d..b2818b740 100644 --- a/src/js/parser.js +++ b/src/js/parser.js @@ -43,10 +43,10 @@ function logErrorCacheable(str, lineNumber,urgent) { } else { consolePrint(errorString); errorStrings.push(errorString); + errorCount++; if (errorStrings.length>MAX_ERRORS_FOR_REAL){ TooManyErrors(); } - errorCount++; } } } @@ -62,10 +62,10 @@ function logError(str, lineNumber,urgent) { } else { consolePrint(errorString,true); errorStrings.push(errorString); + errorCount++; if (errorStrings.length>MAX_ERRORS_FOR_REAL){ TooManyErrors(); } - errorCount++; } } } @@ -96,11 +96,11 @@ function logWarningNoLine(str,urgent) { } else { consolePrint(errorString,true); errorStrings.push(errorString); + errorCount++; if (errorStrings.length>MAX_ERRORS_FOR_REAL){ TooManyErrors(); } } - errorCount++; } } @@ -113,11 +113,11 @@ function logErrorNoLine(str,urgent) { } else { consolePrint(errorString,true); errorStrings.push(errorString); + errorCount++; if (errorStrings.length>MAX_ERRORS_FOR_REAL){ TooManyErrors(); } } - errorCount++; } } diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index b0946f0d9..09d642d28 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -528,7 +528,7 @@ var errormessage_testdata = [ ["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 ten 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 234234 \nsfx0 3295707 (player jump)\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 10\n\n###################\n#.................#\n#.................#\n#............#....#\n#............#....#\n#.......#...##....#\n#..P....#...##..E.#\n###################\n###################\n..#...#...#...#...#\n#...#...#...#...#..\n###################\n###################\n###################\n###################\n\nmessage level 2 of 10\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 10\n\n###################\n#........#........#\n#........#........#\n###.............###\n#.................#\n#.....P.....E.....#\n#....###...###....#\n#..######.######..#\n#.......#.#.......#\n#.......###.......#\n###.............###\n#.................#\n#.................#\n######.......######\n###################\n\nmessage level 4 of 10\n\n###################\n#..#...........#..#\n#..#.....E.....#..#\n#..#....###....#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#.....P.....#..#\n###################\n\nmessage level 5 of 10\n\n###################\n#.................#\n#.................#\n#.................#\n#...C........C....#\n#..###......###...#\n#.................#\n#...P........E....#\n#########.##.#.####\n###################\n#.................#\n#.................#\n#.................#\n###################\n\nmessage level 6 of 10\n\n###################\n#..#.#....#..#....#\n#..#.#.E..#..######\n#########.#..#....#\n#....#..#.####....#\n#....#..#....######\n#########....#.#..#\n#....#..#....#.#..#\n#########.#########\n#....#....#..#....#\n######....#..#....#\n#.#..#....#########\n#.#..####.#..#..#.#\n#.#..#..#P#..#..#.#\n###################\n\nmessage level 7 of 10\n\n###################\n#.................#\n#...............C.#\n#............####.#\n#.................#\n#.......#...#.#...#\n#..P....#...#.#E..#\n#.###############.#\n#.###############.#\n#.#...#...#...#...#\n#...#...#...#...#.#\n###################\n#.................#\n#.................#\n###################\n\nmessage level 8 of 10\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 10\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 10\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#.E..........C....#\n####.##.....###...#\n#######.....###...#\n#.................#\n#.................#\n#...P.............#\n#..#############..#\n###################\n#.................#\n###################\n\n\nmessage congratulations!\n\n",["line 121 : SFX0 already declared."],0] ], [ - "Pushing It", - ["title Pushing It\nauthor Jack Lance\ntext_color #A20021\nbackground_color #C1FBC6A\nverbose_logging\nagain_interval 0.1\n\n========\nOBJECTS\n========\n\nBackground1\n#CCCCCC\n\nBackground2\n#C1FBC6\n\ncrateactivatedcoord00\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord01\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord02\ntransparent\n\ncrateactivatedcoord03\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord04\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord10\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord11\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord12\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord13\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord14\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord20\ntransparent\n\ncrateactivatedcoord21\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord22\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord23\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord24\ntransparent\n\ncrateactivatedcoord30\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord31\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord32\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord33\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord34\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord40\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord41\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord42\ntransparent\n\ncrateactivatedcoord43\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord44\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset1coord00\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord01\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord02\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord03\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord04\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord10\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord11\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord12\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord13\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord14\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord20\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord21\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord22\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord23\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord24\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord30\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord31\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord32\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord33\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord34\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord40\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord41\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord42\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord43\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord44\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset2coord00\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord01\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord02\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord03\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord04\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord10\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord11\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord12\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord13\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord14\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord20\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord21\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord22\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord23\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord24\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord30\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord31\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord32\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord33\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord34\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord40\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord41\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord42\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord43\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord44\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset3coord00\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord01\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord02\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord03\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord04\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord10\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord11\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord12\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord13\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord14\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord20\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord21\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord22\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord23\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord24\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord30\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord31\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord32\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord33\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord34\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord40\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord41\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord42\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord43\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord44\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset4coord00\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\n",["No collision layers defined. All objects need to be in collision layers.","you have to define something to be the background","error, didn't find any object called player, either in the objects section, or the legends section. there must be a player!","line 12 : Object \"BACKGROUND1\" has been defined, but not assigned to a layer.","line 15 : Object \"BACKGROUND2\" has been defined, but not assigned to a layer.","line 18 : Object \"CRATEACTIVATEDCOORD00\" has been defined, but not assigned to a layer.","line 26 : Object \"CRATEACTIVATEDCOORD01\" has been defined, but not assigned to a layer.","line 34 : Object \"CRATEACTIVATEDCOORD02\" has been defined, but not assigned to a layer.","line 37 : Object \"CRATEACTIVATEDCOORD03\" has been defined, but not assigned to a layer.","line 45 : Object \"CRATEACTIVATEDCOORD04\" has been defined, but not assigned to a layer.","line 53 : Object \"CRATEACTIVATEDCOORD10\" has been defined, but not assigned to a layer.","line 61 : Object \"CRATEACTIVATEDCOORD11\" has been defined, but not assigned to a layer.","line 69 : Object \"CRATEACTIVATEDCOORD12\" has been defined, but not assigned to a layer.","line 77 : Object \"CRATEACTIVATEDCOORD13\" has been defined, but not assigned to a layer.","line 85 : Object \"CRATEACTIVATEDCOORD14\" has been defined, but not assigned to a layer.","line 93 : Object \"CRATEACTIVATEDCOORD20\" has been defined, but not assigned to a layer.","line 96 : Object \"CRATEACTIVATEDCOORD21\" has been defined, but not assigned to a layer.","line 104 : Object \"CRATEACTIVATEDCOORD22\" has been defined, but not assigned to a layer.","line 112 : Object \"CRATEACTIVATEDCOORD23\" has been defined, but not assigned to a layer.","line 120 : Object \"CRATEACTIVATEDCOORD24\" has been defined, but not assigned to a layer.","line 123 : Object \"CRATEACTIVATEDCOORD30\" has been defined, but not assigned to a layer.","line 131 : Object \"CRATEACTIVATEDCOORD31\" has been defined, but not assigned to a layer.","line 139 : Object \"CRATEACTIVATEDCOORD32\" has been defined, but not assigned to a layer.","line 147 : Object \"CRATEACTIVATEDCOORD33\" has been defined, but not assigned to a layer.","line 155 : Object \"CRATEACTIVATEDCOORD34\" has been defined, but not assigned to a layer.","line 163 : Object \"CRATEACTIVATEDCOORD40\" has been defined, but not assigned to a layer.","line 171 : Object \"CRATEACTIVATEDCOORD41\" has been defined, but not assigned to a layer.","line 179 : Object \"CRATEACTIVATEDCOORD42\" has been defined, but not assigned to a layer.","line 182 : Object \"CRATEACTIVATEDCOORD43\" has been defined, but not assigned to a layer.","line 190 : Object \"CRATEACTIVATEDCOORD44\" has been defined, but not assigned to a layer.","line 198 : Object \"CRATEACTIVATEDYOFFSET1COORD00\" has been defined, but not assigned to a layer.","line 206 : Object \"CRATEACTIVATEDYOFFSET1COORD01\" has been defined, but not assigned to a layer.","line 214 : Object \"CRATEACTIVATEDYOFFSET1COORD02\" has been defined, but not assigned to a layer.","line 222 : Object \"CRATEACTIVATEDYOFFSET1COORD03\" has been defined, but not assigned to a layer.","line 230 : Object \"CRATEACTIVATEDYOFFSET1COORD04\" has been defined, but not assigned to a layer.","line 238 : Object \"CRATEACTIVATEDYOFFSET1COORD10\" has been defined, but not assigned to a layer.","line 246 : Object \"CRATEACTIVATEDYOFFSET1COORD11\" has been defined, but not assigned to a layer.","line 254 : Object \"CRATEACTIVATEDYOFFSET1COORD12\" has been defined, but not assigned to a layer.","line 262 : Object \"CRATEACTIVATEDYOFFSET1COORD13\" has been defined, but not assigned to a layer.","line 270 : Object \"CRATEACTIVATEDYOFFSET1COORD14\" has been defined, but not assigned to a layer.","line 278 : Object \"CRATEACTIVATEDYOFFSET1COORD20\" has been defined, but not assigned to a layer.","line 286 : Object \"CRATEACTIVATEDYOFFSET1COORD21\" has been defined, but not assigned to a layer.","line 294 : Object \"CRATEACTIVATEDYOFFSET1COORD22\" has been defined, but not assigned to a layer.","line 302 : Object \"CRATEACTIVATEDYOFFSET1COORD23\" has been defined, but not assigned to a layer.","line 310 : Object \"CRATEACTIVATEDYOFFSET1COORD24\" has been defined, but not assigned to a layer.","line 318 : Object \"CRATEACTIVATEDYOFFSET1COORD30\" has been defined, but not assigned to a layer.","line 326 : Object \"CRATEACTIVATEDYOFFSET1COORD31\" has been defined, but not assigned to a layer.","line 334 : Object \"CRATEACTIVATEDYOFFSET1COORD32\" has been defined, but not assigned to a layer.","line 342 : Object \"CRATEACTIVATEDYOFFSET1COORD33\" has been defined, but not assigned to a layer.","line 350 : Object \"CRATEACTIVATEDYOFFSET1COORD34\" has been defined, but not assigned to a layer.","line 358 : Object \"CRATEACTIVATEDYOFFSET1COORD40\" has been defined, but not assigned to a layer.","line 366 : Object \"CRATEACTIVATEDYOFFSET1COORD41\" has been defined, but not assigned to a layer.","line 374 : Object \"CRATEACTIVATEDYOFFSET1COORD42\" has been defined, but not assigned to a layer.","line 382 : Object \"CRATEACTIVATEDYOFFSET1COORD43\" has been defined, but not assigned to a layer.","line 390 : Object \"CRATEACTIVATEDYOFFSET1COORD44\" has been defined, but not assigned to a layer.","line 398 : Object \"CRATEACTIVATEDYOFFSET2COORD00\" has been defined, but not assigned to a layer.","line 406 : Object \"CRATEACTIVATEDYOFFSET2COORD01\" has been defined, but not assigned to a layer.","line 414 : Object \"CRATEACTIVATEDYOFFSET2COORD02\" has been defined, but not assigned to a layer.","line 422 : Object \"CRATEACTIVATEDYOFFSET2COORD03\" has been defined, but not assigned to a layer.","line 430 : Object \"CRATEACTIVATEDYOFFSET2COORD04\" has been defined, but not assigned to a layer.","line 438 : Object \"CRATEACTIVATEDYOFFSET2COORD10\" has been defined, but not assigned to a layer.","line 446 : Object \"CRATEACTIVATEDYOFFSET2COORD11\" has been defined, but not assigned to a layer.","line 454 : Object \"CRATEACTIVATEDYOFFSET2COORD12\" has been defined, but not assigned to a layer.","line 462 : Object \"CRATEACTIVATEDYOFFSET2COORD13\" has been defined, but not assigned to a layer.","line 470 : Object \"CRATEACTIVATEDYOFFSET2COORD14\" has been defined, but not assigned to a layer.","line 478 : Object \"CRATEACTIVATEDYOFFSET2COORD20\" has been defined, but not assigned to a layer.","line 486 : Object \"CRATEACTIVATEDYOFFSET2COORD21\" has been defined, but not assigned to a layer.","line 494 : Object \"CRATEACTIVATEDYOFFSET2COORD22\" has been defined, but not assigned to a layer.","line 502 : Object \"CRATEACTIVATEDYOFFSET2COORD23\" has been defined, but not assigned to a layer.","line 510 : Object \"CRATEACTIVATEDYOFFSET2COORD24\" has been defined, but not assigned to a layer.","line 518 : Object \"CRATEACTIVATEDYOFFSET2COORD30\" has been defined, but not assigned to a layer.","line 526 : Object \"CRATEACTIVATEDYOFFSET2COORD31\" has been defined, but not assigned to a layer.","line 534 : Object \"CRATEACTIVATEDYOFFSET2COORD32\" has been defined, but not assigned to a layer.","line 542 : Object \"CRATEACTIVATEDYOFFSET2COORD33\" has been defined, but not assigned to a layer.","line 550 : Object \"CRATEACTIVATEDYOFFSET2COORD34\" has been defined, but not assigned to a layer.","line 558 : Object \"CRATEACTIVATEDYOFFSET2COORD40\" has been defined, but not assigned to a layer.","line 566 : Object \"CRATEACTIVATEDYOFFSET2COORD41\" has been defined, but not assigned to a layer.","line 574 : Object \"CRATEACTIVATEDYOFFSET2COORD42\" has been defined, but not assigned to a layer.","line 582 : Object \"CRATEACTIVATEDYOFFSET2COORD43\" has been defined, but not assigned to a layer.","line 590 : Object \"CRATEACTIVATEDYOFFSET2COORD44\" has been defined, but not assigned to a layer.","line 598 : Object \"CRATEACTIVATEDYOFFSET3COORD00\" has been defined, but not assigned to a layer.","line 606 : Object \"CRATEACTIVATEDYOFFSET3COORD01\" has been defined, but not assigned to a layer.","line 614 : Object \"CRATEACTIVATEDYOFFSET3COORD02\" has been defined, but not assigned to a layer.","line 622 : Object \"CRATEACTIVATEDYOFFSET3COORD03\" has been defined, but not assigned to a layer.","line 630 : Object \"CRATEACTIVATEDYOFFSET3COORD04\" has been defined, but not assigned to a layer.","line 638 : Object \"CRATEACTIVATEDYOFFSET3COORD10\" has been defined, but not assigned to a layer.","line 646 : Object \"CRATEACTIVATEDYOFFSET3COORD11\" has been defined, but not assigned to a layer.","line 654 : Object \"CRATEACTIVATEDYOFFSET3COORD12\" has been defined, but not assigned to a layer.","line 662 : Object \"CRATEACTIVATEDYOFFSET3COORD13\" has been defined, but not assigned to a layer.","line 670 : Object \"CRATEACTIVATEDYOFFSET3COORD14\" has been defined, but not assigned to a layer.","line 678 : Object \"CRATEACTIVATEDYOFFSET3COORD20\" has been defined, but not assigned to a layer.","line 686 : Object \"CRATEACTIVATEDYOFFSET3COORD21\" has been defined, but not assigned to a layer.","line 694 : Object \"CRATEACTIVATEDYOFFSET3COORD22\" has been defined, but not assigned to a layer.","line 702 : Object \"CRATEACTIVATEDYOFFSET3COORD23\" has been defined, but not assigned to a layer.","line 710 : Object \"CRATEACTIVATEDYOFFSET3COORD24\" has been defined, but not assigned to a layer.","line 718 : Object \"CRATEACTIVATEDYOFFSET3COORD30\" has been defined, but not assigned to a layer.","line 726 : Object \"CRATEACTIVATEDYOFFSET3COORD31\" has been defined, but not assigned to a layer.","line 734 : Object \"CRATEACTIVATEDYOFFSET3COORD32\" has been defined, but not assigned to a layer.","line 742 : Object \"CRATEACTIVATEDYOFFSET3COORD33\" has been defined, but not assigned to a layer.","line 750 : Object \"CRATEACTIVATEDYOFFSET3COORD34\" has been defined, but not assigned to a layer.","line 758 : Object \"CRATEACTIVATEDYOFFSET3COORD40\" has been defined, but not assigned to a layer."],100] + "#855 Pushing It", + ["title Pushing It\nauthor Jack Lance\ntext_color #A20021\nbackground_color #C1FBC6A\nverbose_logging\nagain_interval 0.1\n\n========\nOBJECTS\n========\n\nBackground1\n#CCCCCC\n\nBackground2\n#C1FBC6\n\ncrateactivatedcoord00\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord01\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord02\ntransparent\n\ncrateactivatedcoord03\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord04\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord10\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord11\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord12\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord13\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord14\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord20\ntransparent\n\ncrateactivatedcoord21\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord22\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord23\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord24\ntransparent\n\ncrateactivatedcoord30\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord31\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord32\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord33\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord34\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord40\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord41\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord42\ntransparent\n\ncrateactivatedcoord43\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord44\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset1coord00\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord01\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord02\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord03\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord04\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord10\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord11\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord12\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord13\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord14\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord20\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord21\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord22\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord23\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord24\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord30\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord31\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord32\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord33\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord34\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord40\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord41\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord42\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord43\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord44\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset2coord00\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord01\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord02\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord03\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord04\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord10\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord11\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord12\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord13\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord14\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord20\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord21\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord22\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord23\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord24\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord30\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord31\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord32\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord33\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord34\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord40\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord41\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord42\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord43\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord44\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset3coord00\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord01\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord02\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord03\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord04\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord10\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord11\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord12\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord13\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord14\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord20\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord21\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord22\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord23\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord24\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord30\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord31\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord32\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord33\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord34\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord40\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord41\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord42\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord43\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord44\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset4coord00\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\n",["No collision layers defined. All objects need to be in collision layers.","you have to define something to be the background","error, didn't find any object called player, either in the objects section, or the legends section. there must be a player!","line 12 : Object \"BACKGROUND1\" has been defined, but not assigned to a layer.","line 15 : Object \"BACKGROUND2\" has been defined, but not assigned to a layer.","line 18 : Object \"CRATEACTIVATEDCOORD00\" has been defined, but not assigned to a layer.","line 26 : Object \"CRATEACTIVATEDCOORD01\" has been defined, but not assigned to a layer.","line 34 : Object \"CRATEACTIVATEDCOORD02\" has been defined, but not assigned to a layer.","line 37 : Object \"CRATEACTIVATEDCOORD03\" has been defined, but not assigned to a layer.","line 45 : Object \"CRATEACTIVATEDCOORD04\" has been defined, but not assigned to a layer.","line 53 : Object \"CRATEACTIVATEDCOORD10\" has been defined, but not assigned to a layer.","line 61 : Object \"CRATEACTIVATEDCOORD11\" has been defined, but not assigned to a layer.","line 69 : Object \"CRATEACTIVATEDCOORD12\" has been defined, but not assigned to a layer.","line 77 : Object \"CRATEACTIVATEDCOORD13\" has been defined, but not assigned to a layer.","line 85 : Object \"CRATEACTIVATEDCOORD14\" has been defined, but not assigned to a layer.","line 93 : Object \"CRATEACTIVATEDCOORD20\" has been defined, but not assigned to a layer.","line 96 : Object \"CRATEACTIVATEDCOORD21\" has been defined, but not assigned to a layer.","line 104 : Object \"CRATEACTIVATEDCOORD22\" has been defined, but not assigned to a layer.","line 112 : Object \"CRATEACTIVATEDCOORD23\" has been defined, but not assigned to a layer.","line 120 : Object \"CRATEACTIVATEDCOORD24\" has been defined, but not assigned to a layer.","line 123 : Object \"CRATEACTIVATEDCOORD30\" has been defined, but not assigned to a layer.","line 131 : Object \"CRATEACTIVATEDCOORD31\" has been defined, but not assigned to a layer.","line 139 : Object \"CRATEACTIVATEDCOORD32\" has been defined, but not assigned to a layer.","line 147 : Object \"CRATEACTIVATEDCOORD33\" has been defined, but not assigned to a layer.","line 155 : Object \"CRATEACTIVATEDCOORD34\" has been defined, but not assigned to a layer.","line 163 : Object \"CRATEACTIVATEDCOORD40\" has been defined, but not assigned to a layer.","line 171 : Object \"CRATEACTIVATEDCOORD41\" has been defined, but not assigned to a layer.","line 179 : Object \"CRATEACTIVATEDCOORD42\" has been defined, but not assigned to a layer.","line 182 : Object \"CRATEACTIVATEDCOORD43\" has been defined, but not assigned to a layer.","line 190 : Object \"CRATEACTIVATEDCOORD44\" has been defined, but not assigned to a layer.","line 198 : Object \"CRATEACTIVATEDYOFFSET1COORD00\" has been defined, but not assigned to a layer.","line 206 : Object \"CRATEACTIVATEDYOFFSET1COORD01\" has been defined, but not assigned to a layer.","line 214 : Object \"CRATEACTIVATEDYOFFSET1COORD02\" has been defined, but not assigned to a layer.","line 222 : Object \"CRATEACTIVATEDYOFFSET1COORD03\" has been defined, but not assigned to a layer.","line 230 : Object \"CRATEACTIVATEDYOFFSET1COORD04\" has been defined, but not assigned to a layer.","line 238 : Object \"CRATEACTIVATEDYOFFSET1COORD10\" has been defined, but not assigned to a layer.","line 246 : Object \"CRATEACTIVATEDYOFFSET1COORD11\" has been defined, but not assigned to a layer.","line 254 : Object \"CRATEACTIVATEDYOFFSET1COORD12\" has been defined, but not assigned to a layer.","line 262 : Object \"CRATEACTIVATEDYOFFSET1COORD13\" has been defined, but not assigned to a layer.","line 270 : Object \"CRATEACTIVATEDYOFFSET1COORD14\" has been defined, but not assigned to a layer.","line 278 : Object \"CRATEACTIVATEDYOFFSET1COORD20\" has been defined, but not assigned to a layer.","line 286 : Object \"CRATEACTIVATEDYOFFSET1COORD21\" has been defined, but not assigned to a layer.","line 294 : Object \"CRATEACTIVATEDYOFFSET1COORD22\" has been defined, but not assigned to a layer.","line 302 : Object \"CRATEACTIVATEDYOFFSET1COORD23\" has been defined, but not assigned to a layer.","line 310 : Object \"CRATEACTIVATEDYOFFSET1COORD24\" has been defined, but not assigned to a layer.","line 318 : Object \"CRATEACTIVATEDYOFFSET1COORD30\" has been defined, but not assigned to a layer.","line 326 : Object \"CRATEACTIVATEDYOFFSET1COORD31\" has been defined, but not assigned to a layer.","line 334 : Object \"CRATEACTIVATEDYOFFSET1COORD32\" has been defined, but not assigned to a layer.","line 342 : Object \"CRATEACTIVATEDYOFFSET1COORD33\" has been defined, but not assigned to a layer.","line 350 : Object \"CRATEACTIVATEDYOFFSET1COORD34\" has been defined, but not assigned to a layer.","line 358 : Object \"CRATEACTIVATEDYOFFSET1COORD40\" has been defined, but not assigned to a layer.","line 366 : Object \"CRATEACTIVATEDYOFFSET1COORD41\" has been defined, but not assigned to a layer.","line 374 : Object \"CRATEACTIVATEDYOFFSET1COORD42\" has been defined, but not assigned to a layer.","line 382 : Object \"CRATEACTIVATEDYOFFSET1COORD43\" has been defined, but not assigned to a layer.","line 390 : Object \"CRATEACTIVATEDYOFFSET1COORD44\" has been defined, but not assigned to a layer.","line 398 : Object \"CRATEACTIVATEDYOFFSET2COORD00\" has been defined, but not assigned to a layer.","line 406 : Object \"CRATEACTIVATEDYOFFSET2COORD01\" has been defined, but not assigned to a layer.","line 414 : Object \"CRATEACTIVATEDYOFFSET2COORD02\" has been defined, but not assigned to a layer.","line 422 : Object \"CRATEACTIVATEDYOFFSET2COORD03\" has been defined, but not assigned to a layer.","line 430 : Object \"CRATEACTIVATEDYOFFSET2COORD04\" has been defined, but not assigned to a layer.","line 438 : Object \"CRATEACTIVATEDYOFFSET2COORD10\" has been defined, but not assigned to a layer.","line 446 : Object \"CRATEACTIVATEDYOFFSET2COORD11\" has been defined, but not assigned to a layer.","line 454 : Object \"CRATEACTIVATEDYOFFSET2COORD12\" has been defined, but not assigned to a layer.","line 462 : Object \"CRATEACTIVATEDYOFFSET2COORD13\" has been defined, but not assigned to a layer.","line 470 : Object \"CRATEACTIVATEDYOFFSET2COORD14\" has been defined, but not assigned to a layer.","line 478 : Object \"CRATEACTIVATEDYOFFSET2COORD20\" has been defined, but not assigned to a layer.","line 486 : Object \"CRATEACTIVATEDYOFFSET2COORD21\" has been defined, but not assigned to a layer.","line 494 : Object \"CRATEACTIVATEDYOFFSET2COORD22\" has been defined, but not assigned to a layer.","line 502 : Object \"CRATEACTIVATEDYOFFSET2COORD23\" has been defined, but not assigned to a layer.","line 510 : Object \"CRATEACTIVATEDYOFFSET2COORD24\" has been defined, but not assigned to a layer.","line 518 : Object \"CRATEACTIVATEDYOFFSET2COORD30\" has been defined, but not assigned to a layer.","line 526 : Object \"CRATEACTIVATEDYOFFSET2COORD31\" has been defined, but not assigned to a layer.","line 534 : Object \"CRATEACTIVATEDYOFFSET2COORD32\" has been defined, but not assigned to a layer.","line 542 : Object \"CRATEACTIVATEDYOFFSET2COORD33\" has been defined, but not assigned to a layer.","line 550 : Object \"CRATEACTIVATEDYOFFSET2COORD34\" has been defined, but not assigned to a layer.","line 558 : Object \"CRATEACTIVATEDYOFFSET2COORD40\" has been defined, but not assigned to a layer.","line 566 : Object \"CRATEACTIVATEDYOFFSET2COORD41\" has been defined, but not assigned to a layer.","line 574 : Object \"CRATEACTIVATEDYOFFSET2COORD42\" has been defined, but not assigned to a layer.","line 582 : Object \"CRATEACTIVATEDYOFFSET2COORD43\" has been defined, but not assigned to a layer.","line 590 : Object \"CRATEACTIVATEDYOFFSET2COORD44\" has been defined, but not assigned to a layer.","line 598 : Object \"CRATEACTIVATEDYOFFSET3COORD00\" has been defined, but not assigned to a layer.","line 606 : Object \"CRATEACTIVATEDYOFFSET3COORD01\" has been defined, but not assigned to a layer.","line 614 : Object \"CRATEACTIVATEDYOFFSET3COORD02\" has been defined, but not assigned to a layer.","line 622 : Object \"CRATEACTIVATEDYOFFSET3COORD03\" has been defined, but not assigned to a layer.","line 630 : Object \"CRATEACTIVATEDYOFFSET3COORD04\" has been defined, but not assigned to a layer.","line 638 : Object \"CRATEACTIVATEDYOFFSET3COORD10\" has been defined, but not assigned to a layer.","line 646 : Object \"CRATEACTIVATEDYOFFSET3COORD11\" has been defined, but not assigned to a layer.","line 654 : Object \"CRATEACTIVATEDYOFFSET3COORD12\" has been defined, but not assigned to a layer.","line 662 : Object \"CRATEACTIVATEDYOFFSET3COORD13\" has been defined, but not assigned to a layer.","line 670 : Object \"CRATEACTIVATEDYOFFSET3COORD14\" has been defined, but not assigned to a layer.","line 678 : Object \"CRATEACTIVATEDYOFFSET3COORD20\" has been defined, but not assigned to a layer.","line 686 : Object \"CRATEACTIVATEDYOFFSET3COORD21\" has been defined, but not assigned to a layer.","line 694 : Object \"CRATEACTIVATEDYOFFSET3COORD22\" has been defined, but not assigned to a layer.","line 702 : Object \"CRATEACTIVATEDYOFFSET3COORD23\" has been defined, but not assigned to a layer.","line 710 : Object \"CRATEACTIVATEDYOFFSET3COORD24\" has been defined, but not assigned to a layer.","line 718 : Object \"CRATEACTIVATEDYOFFSET3COORD30\" has been defined, but not assigned to a layer.","line 726 : Object \"CRATEACTIVATEDYOFFSET3COORD31\" has been defined, but not assigned to a layer.","line 734 : Object \"CRATEACTIVATEDYOFFSET3COORD32\" has been defined, but not assigned to a layer.","line 742 : Object \"CRATEACTIVATEDYOFFSET3COORD33\" has been defined, but not assigned to a layer.","line 750 : Object \"CRATEACTIVATEDYOFFSET3COORD34\" has been defined, but not assigned to a layer.","line 758 : Object \"CRATEACTIVATEDYOFFSET3COORD40\" has been defined, but not assigned to a layer."],101] ], ]; \ No newline at end of file From ddde26fc3afee9a18b7ab777ba12b49bfee4e86f Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Fri, 25 Feb 2022 03:37:59 +0100 Subject: [PATCH 045/122] fixes #829 (mostly) I'll try to add some special test (see #856 ) to monitor the exempted gist to make sure I'm notified if it changes. I think the security risk is adequately minimised by this workaround while not breaking an older + beloved game. --- src/play.html | 13 +++++++-- src/standalone_inlined.txt | 54 +++++++++++++++++++++++++++++++------- 2 files changed, 56 insertions(+), 11 deletions(-) diff --git a/src/play.html b/src/play.html index ac191f23d..738888dca 100644 --- a/src/play.html +++ b/src/play.html @@ -306,7 +306,16 @@ if (state.metadata.homepage!==undefined) { var homepage=state.metadata.homepage; var homepageLink = document.getElementById("homepagelink"); - homepageLink.innerHTML=strip_http(homepage); + if (id==="2fe3172d2b9fe684977d184f1b6226d5"){ + // https://github.com/increpare/PuzzleScript/issues/829 + // Supporting vulnerability on legacy grounds to enable Pushing It: + // https://www.puzzlescript.net/play.html?p=2fe3172d2b9fe684977d184f1b6226d5 + homepageLink.innerHTML=strip_http(homepage); + } else { + //sanitize tags from title + homepageLink.textContent=strip_http(homepage); + } + if (!homepage.match(/^https?:\/\//)) { homepage = "https://" + homepage; } @@ -315,7 +324,7 @@ if (state.metadata.title!==undefined) { var title=state.metadata.title; var gametitle = document.getElementById("gametitle"); - gametitle.innerHTML=title; + gametitle.textContent=title; window.document.title=title+" - PuzzleScript Game"; } diff --git a/src/standalone_inlined.txt b/src/standalone_inlined.txt index 1a2edc929..45862ff82 100644 --- a/src/standalone_inlined.txt +++ b/src/standalone_inlined.txt @@ -10181,10 +10181,17 @@ for post-launch credits, check out activty on github.com/increpare/PuzzleScript */ +const MAX_ERRORS_FOR_REAL=100; + var compiling = false; var errorStrings = [];//also stores warning strings var errorCount=0;//only counts errors +function TooManyErrors(){ + consolePrint("Too many errors/warnings; aborting compilation.",true); + throw new Error("Too many errors/warnings; aborting compilation."); +} + function logErrorCacheable(str, lineNumber,urgent) { if (compiling||urgent) { if (lineNumber === undefined) { @@ -10197,6 +10204,9 @@ function logErrorCacheable(str, lineNumber,urgent) { consolePrint(errorString); errorStrings.push(errorString); errorCount++; + if (errorStrings.length>MAX_ERRORS_FOR_REAL){ + TooManyErrors(); + } } } } @@ -10213,6 +10223,9 @@ function logError(str, lineNumber,urgent) { consolePrint(errorString,true); errorStrings.push(errorString); errorCount++; + if (errorStrings.length>MAX_ERRORS_FOR_REAL){ + TooManyErrors(); + } } } } @@ -10228,6 +10241,9 @@ function logWarning(str, lineNumber,urgent) { } else { consolePrint(errorString,true); errorStrings.push(errorString); + if (errorStrings.length>MAX_ERRORS_FOR_REAL){ + TooManyErrors(); + } } } } @@ -10240,8 +10256,11 @@ function logWarningNoLine(str,urgent) { } else { consolePrint(errorString,true); errorStrings.push(errorString); + errorCount++; + if (errorStrings.length>MAX_ERRORS_FOR_REAL){ + TooManyErrors(); + } } - errorCount++; } } @@ -10254,8 +10273,11 @@ function logErrorNoLine(str,urgent) { } else { consolePrint(errorString,true); errorStrings.push(errorString); + errorCount++; + if (errorStrings.length>MAX_ERRORS_FOR_REAL){ + TooManyErrors(); + } } - errorCount++; } } @@ -11670,6 +11692,24 @@ var codeMirrorFn = function() { } } else { stream.match(reg_notcommentstart, true); + + var key = state.metadata[state.metadata.length-2]; + var val = state.metadata[state.metadata.length-1]; + + if (key === "background_color" || key === "text_color"){ + var candcol = val.trim().toLowerCase(); + if (candcol in colorPalettes.arnecolors) { + return 'COLOR COLOR-' + candcol.toUpperCase(); + } else if (candcol==="transparent") { + return 'COLOR FADECOLOR'; + } else if ( (candcol.length===4) || (candcol.length===7)) { + var color = candcol.match(/#[0-9a-fA-F]+/); + if (color!==null){ + return 'MULTICOLOR'+color[0]; + } + } + + } return "METADATATEXT"; } break; @@ -14550,7 +14590,8 @@ function compile(command, text, randomseed) { consolePrint('================================='); try { var state = loadFile(text); - // consolePrint(JSON.stringify(state)); + } catch(error){ + consolePrint(error); } finally { compiling = false; } @@ -14562,12 +14603,7 @@ function compile(command, text, randomseed) { if (errorCount > MAX_ERRORS) { return; } - /*catch(err) - { - if (anyErrors===false) { - logErrorNoLine(err.toString()); - } - }*/ + if (errorCount > 0) { if (IDE===false){ From 964468e039c50dc32f252dcbbf838b87f12b6cf6 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Fri, 25 Feb 2022 13:03:39 +0100 Subject: [PATCH 046/122] fixes #848 --- src/demo/blank.txt | 11 ++--- src/demo/blockfaker.txt | 45 ++++++++++--------- src/demo/byyourside.txt | 45 ++++++++++--------- src/demo/constellationz.txt | 26 +++++------ src/demo/kettle.txt | 76 ++++++++++++++------------------- src/demo/limerick.txt | 52 +++++++++++----------- src/demo/microban.txt | 23 ++++------ src/demo/midas.txt | 72 ++++++++++++++----------------- src/demo/naughtysprite.txt | 18 ++++---- src/demo/nekopuzzle.txt | 20 ++++----- src/demo/notsnake.txt | 5 +-- src/demo/octat.txt | 49 +++++++++------------ src/demo/randomrobots.txt | 14 +++--- src/demo/randomspawner.txt | 21 +++++---- src/demo/sokoban_basic.txt | 21 ++++----- src/demo/sokoban_eyeball.txt | 18 ++++---- src/demo/sokoban_horizontal.txt | 19 ++++----- src/demo/sokoban_match3.txt | 14 +++--- src/demo/sokoban_sticky.txt | 17 +++----- src/demo/sumo.txt | 11 +++-- src/demo/whaleworld.txt | 29 +++++++------ src/demo/zenpuzzlegarden.txt | 12 ++---- 22 files changed, 280 insertions(+), 338 deletions(-) diff --git a/src/demo/blank.txt b/src/demo/blank.txt index 5fc923d01..d98940e42 100644 --- a/src/demo/blank.txt +++ b/src/demo/blank.txt @@ -2,10 +2,10 @@ OBJECTS ======== -background . +Background . black -player +Player green ======= @@ -19,8 +19,9 @@ SOUNDS ================ COLLISIONLAYERS ================ -background -player + +Background +Player ====== RULES @@ -33,4 +34,4 @@ WINCONDITIONS ======= LEVELS ======= -. \ No newline at end of file +. diff --git a/src/demo/blockfaker.txt b/src/demo/blockfaker.txt index d2966b7d5..62cc6161f 100644 --- a/src/demo/blockfaker.txt +++ b/src/demo/blockfaker.txt @@ -9,12 +9,14 @@ background_color white text_color black color_palette c64 + ( + A port of first several levels of Droqen's beautiful game: https://droqen.itch.io/block-faker -(his game has secrets that this one does not) +(His game has secrets that this one does not.) ) @@ -23,7 +25,7 @@ OBJECTS ======== Background -White +white Grille gray @@ -34,10 +36,10 @@ gray 0...0 EndPoint -Green +green Player -Black +black 00000 00000 0.0.0 @@ -45,10 +47,10 @@ Black 00000 Wall -Gray +gray WallBlock -Black Grey +black grey 01111 01111 01111 @@ -56,7 +58,7 @@ Black Grey 00001 BlueBlock -Blue +blue 00000 00.00 0.0.0 @@ -64,7 +66,7 @@ Blue 00000 GreenBlock -LightGreen +lightgreen 00000 00000 00.00 @@ -72,7 +74,7 @@ LightGreen 00000 PinkBlock -Red +red 00000 00.00 0...0 @@ -80,7 +82,7 @@ Red 00000 PurpleBlock -Purple +purple 00000 0...0 0.0.0 @@ -88,14 +90,13 @@ Purple 00000 OrangeBlock -Orange +orange 00000 0.0.0 00000 0.0.0 00000 - ======= LEGEND ======= @@ -117,7 +118,6 @@ E = EndPoint x = Grille H = Grille and Player - ========= SOUNDS ========= @@ -135,20 +135,22 @@ Player, Wall, WallBlock, PinkBlock, BlueBlock, PurpleBlock, OrangeBlock, GreenBl RULES ====== -[ > Moveable | Moveable ] -> [ > Moveable | > Moveable ] +[ > Moveable | Moveable ] -> [ > Moveable | > Moveable ] -[ > Block | Grille ] -> [ Block | Grille ] +[ > Block | Grille ] -> [ Block | Grille ] -late [ PinkBlock | PinkBlock | PinkBlock ] -> [ | | ] -late [ BlueBlock | BlueBlock | BlueBlock ] -> [ | | ] -late [ PurpleBlock | PurpleBlock | PurpleBlock ] -> [ | | ] -late [ OrangeBlock | OrangeBlock | OrangeBlock ] -> [ | | ] -late [ GreenBlock | GreenBlock | GreenBlock ] -> [ | | ] +late [ PinkBlock | PinkBlock | PinkBlock ] -> [ | | ] +late [ BlueBlock | BlueBlock | BlueBlock ] -> [ | | ] +late [ PurpleBlock | PurpleBlock | PurpleBlock ] -> [ | | ] +late [ OrangeBlock | OrangeBlock | OrangeBlock ] -> [ | | ] +late [ GreenBlock | GreenBlock | GreenBlock ] -> [ | | ] ============== WINCONDITIONS ============== -some player on endpoint + +some Player on Endpoint + ======= LEVELS ======= @@ -226,3 +228,4 @@ message congrats: level 5! ......##...... message now go play the real game + diff --git a/src/demo/byyourside.txt b/src/demo/byyourside.txt index e194a5c89..cc1feab1d 100644 --- a/src/demo/byyourside.txt +++ b/src/demo/byyourside.txt @@ -5,16 +5,21 @@ homepage www.draknek.org require_player_movement key_repeat_interval 0.12 -(a port of alan hazelden's game, By Your Side, in 6 lines of code, made with the permission of the author - +( + +A port of alan hazelden's game, By Your Side, in 6 lines of code, made with the permission of the author - the original is here -http://www.draknek.org/games/by-your-side/) +http://www.draknek.org/games/by-your-side/ + +) ======== OBJECTS ======== -(Ojects in all scenes) +(Objects in all scenes) + Grass . darkgreen green 00000 @@ -42,7 +47,7 @@ yellow (Initial Scenes) GirlFriend G -Pink red +pink red ..0.. .010. ..1.. @@ -99,7 +104,6 @@ gray .000. .000. - Spectator1 B black pink white ..0.. @@ -117,7 +121,7 @@ purple pink white 00000 Wife_Wedding W -White Pink +white pink ..1.. .000. .101. @@ -125,6 +129,7 @@ White Pink 00000 (Post Wedding Scene) + house @ black grey red ..0.. @@ -136,7 +141,6 @@ black grey red pavement ` darkblue - Road ' gray white 00000 @@ -146,7 +150,7 @@ gray white 00000 Wife_Repulsed X -White Pink +white pink ..1.. .000. .101. @@ -180,8 +184,9 @@ darkbrown brown black 02220 (final scene) + Wife_Dying Y -White Pink +white pink ..1.. .000. .101. @@ -202,6 +207,7 @@ black ======= LEGEND ======= + Target = TargetMain or Road Player = Player_Casual or Player_Formal Background = Grass or WoodenFloor or Pavement or GraveDirt @@ -216,12 +222,13 @@ E = GrassyTarget ========= SOUNDS ========= + Player cantmove 82269707 endlevel 54461500 startgame 10582309 endgame 66004102 Wife_Repulsed move 44043907 -Sfx0 16417502 +sfx0 16417502 ================ COLLISIONLAYERS @@ -238,15 +245,15 @@ RULES (game logic) -[ > Player ] [ Wife_Attracted ] -> [ > Player ] [ > Wife_Attracted ] -[ > Player ] [ Wife_Repulsed ] -> [ > Player ] [ < Wife_Repulsed ] +[ > Player ] [ Wife_Attracted ] -> [ > Player ] [ > Wife_Attracted ] +[ > Player ] [ Wife_Repulsed ] -> [ > Player ] [ < Wife_Repulsed ] -late [ Wife_Dying ] -> [ Wife_Coffin ] -late [ Player | Wife_Coffin ] -> [ Player | Wife_Dying ] +late [ Wife_Dying ] -> [ Wife_Coffin ] +late [ Player | Wife_Coffin ] -> [ Player | Wife_Dying ] (level-specific events) late [ ColdFeet Player ] -> [ Player ] message ... -late [ Wife Road ] -> Sfx0 +late [ Wife Road ] -> sfx0 ============== WINCONDITIONS @@ -276,8 +283,6 @@ LEVELS #.......##.....###### .##############...... - - ....################# ...###...#....####### ..##.........##.....# @@ -296,7 +301,6 @@ LEVELS #.......##.....###### .##############...... - ....################# ...###...#....####### ..##.........##.....# @@ -315,7 +319,6 @@ LEVELS #.......##.....###### .##############...... - HHHHHHHHHHHHHHHHHHHHH ,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,, @@ -330,7 +333,6 @@ A,T,,,,,,,,,,,,,W,,,C ,,,,,,,,,,,,,,,,,,,,, HHHHHHHHHHHHHHHHHHHHH - `````````@@@@```````` `````````@TT@```````` ``@@@@@@`@`@@```````` @@ -347,7 +349,6 @@ HHHHHHHHHHHHHHHHHHHHH @@@@@@@@@@@@@@@@@@@@@ ````````````````````` - `````````@@@@```````` `````````@PX@```````` ``@@@@@@`@`@@```````` @@ -364,7 +365,6 @@ HHHHHHHHHHHHHHHHHHHHH @@@@@@@@@@@@@@@@@@@@@ ````````````````````` - `````````@@@@```````` `````````@TT@```````` ``@@@@@@`@`@@```````` @@ -413,7 +413,6 @@ RRRRRRRRR~~R~~~~~~R~ ~~R~~R~~~~~RRR~~R~~~ ~~RRRRRRRRRR~RRRR~~~ - RRRRRR~~~~~~~~~~~~~~ R~~~~R~~~~~RRRRRR~~~ R~~~~R~~~~~R~~~~R~~~ diff --git a/src/demo/constellationz.txt b/src/demo/constellationz.txt index 0a1c7725f..ea14419ea 100644 --- a/src/demo/constellationz.txt +++ b/src/demo/constellationz.txt @@ -2,8 +2,11 @@ title constellation z author increpare homepage www.increpare.com -(a port of the first few levels of my game, the full version of which is +( + +A port of the first few levels of my game, the full version of which is http://ded.increpare.com/~locus/constellationz/ + ) ======== @@ -11,10 +14,10 @@ OBJECTS ======== Background -Black +black BorderTile -Red +red Teleport white @@ -28,7 +31,7 @@ blue ..... Player -PINK +pink ..... .000. .000. @@ -36,7 +39,7 @@ PINK ..... AltPlayer -Black +black ======= LEGEND @@ -48,10 +51,10 @@ P = Player O = Teleport t = target - ========= SOUNDS ========= + sfx1 44641500 (teleport) startgame 26858107 startlevel 34443107 @@ -71,8 +74,8 @@ RULES late [ player Teleport ] -> [ altplayer Teleport ] sfx1 -late [ altplayer Teleport ] [ Teleport no altplayer ] -> [altplayer teleport] [Teleport player ] -late [altplayer ] -> [] +late [ altplayer Teleport ] [ Teleport no altplayer ] -> [ altplayer teleport ] [ Teleport player ] +late [ altplayer ] -> [ ] late [ player bordertile ] -> cancel @@ -148,7 +151,6 @@ LEVELS #............# ############## - ############## #............# #............# @@ -190,7 +192,6 @@ LEVELS #............O...O...O............# ################################### - #################################### #..................................# #...........p......................# @@ -210,7 +211,6 @@ LEVELS #..................................# #################################### - #################################### #..................................# #..................................# @@ -230,8 +230,6 @@ LEVELS #..................................# #################################### - - ############## #............# #............# @@ -258,8 +256,6 @@ LEVELS #............# ############## - - #################################### #..................................# #..............tt...tt...tt........# diff --git a/src/demo/kettle.txt b/src/demo/kettle.txt index 0ada90b26..01a13b1be 100644 --- a/src/demo/kettle.txt +++ b/src/demo/kettle.txt @@ -4,10 +4,12 @@ homepage www.increpare.com color_palette gameboycolour -(a port of a flash game of mine, the original of which can be played here: +( + +A port of a flash game of mine, the original of which can be played here: http://ded.increpare.com/~locus/kettle -) +) ======== OBJECTS @@ -24,7 +26,6 @@ yellow 0...0 00000 - UPolice black .000. @@ -65,7 +66,7 @@ blue .000. .0.0. -wall +Wall black ======= @@ -73,22 +74,22 @@ LEGEND ======= . = Background -player = upolice or dpolice or lpolice or rpolice -i = upolice -k = dpolice -j = lpolice -l = rpolice +player = UPolice or DPolice or LPolice or RPolice +i = UPolice +k = DPolice +j = LPolice +l = RPolice c = Crate @ = Crate and Target t = Target -# = wall - +# = Wall ========= SOUNDS ========= -target move 59810707 -player move 86872107 + +Target move 59810707 +Player move 86872107 startlevel 63638302 endlevel 86642102 endgame 63929902 @@ -102,37 +103,38 @@ COLLISIONLAYERS Background Target -player, Crate, wall +Player, Crate, Wall ====== RULES ====== -(the idea is simple: lots of players, each of which only responds to a particular input direction) +(the idea is simple: lots of Players, each of which only responds to a particular input direction) -[ up rpolice] -> [rpolice] -[ down rpolice] -> [rpolice] -[ left rpolice] -> [rpolice] +[ up RPolice ] -> [ RPolice ] +[ down RPolice ] -> [ RPolice ] +[ left RPolice ] -> [ RPolice ] -[ down upolice] -> [upolice] -[ left upolice] -> [upolice] -[ right upolice] -> [upolice] +[ down UPolice ] -> [ UPolice ] +[ left UPolice ] -> [ UPolice ] +[ right UPolice ] -> [ UPolice ] -[ up lpolice] -> [lpolice] -[ down lpolice] -> [lpolice] -[ right lpolice] -> [lpolice] +[ up LPolice ] -> [ LPolice ] +[ down LPolice ] -> [ LPolice ] +[ right LPolice ] -> [ LPolice ] -[ up dpolice] -> [dpolice] -[ left dpolice] -> [dpolice] -[ right dpolice] -> [dpolice] +[ up DPolice ] -> [ DPolice ] +[ left DPolice ] -> [ DPolice ] +[ right DPolice ] -> [ DPolice ] -[ > Player | Crate ] -> [ > Player | > Crate ] -[ > crate | Crate ] -> [ > crate | > Crate ] +[ > Player | Crate ] -> [ > Player | > Crate ] +[ > Crate | Crate ] -> [ > Crate | > Crate ] ============== WINCONDITIONS ============== -all target on crate + +all target on Crate ======= LEVELS @@ -188,7 +190,6 @@ message We didn't see nothing! #.............# ############### - message Area Secure message You'll be late for class, eh! @@ -209,7 +210,6 @@ message You'll be late for class, eh! message Area Secure message Ha! You shat yourself! - ############### #.............# #.............# @@ -227,7 +227,6 @@ message Ha! You shat yourself! message Area Secure message Have to confiscate your camera! - ############### #.............# #.............# @@ -242,11 +241,9 @@ message Have to confiscate your camera! #.............# ############### - message Area Secure message Keeping the peace is hard work - ############### #.............# #...kkkkkkk...# @@ -261,12 +258,9 @@ message Keeping the peace is hard work #.............# ############### - message Area Secure message You should've packed lunch! - - ############### #.............# #..kkkkkkkk...# @@ -281,7 +275,6 @@ message You should've packed lunch! #..iiiiiiii...# ############### - message Area Secure message I want to hit you @@ -300,11 +293,9 @@ message I want to hit you #..iiiiiiiii..# ############### - message Area Secure message Don't be naughty! - ############### #.kkkkkkkkkk..# #lccc..c...cj.# @@ -323,8 +314,6 @@ message Don't be naughty! message Area Secure message I'm upholding human rights! - - ############### #.kkkkkkkkkkk.# #lccc.c.c...cj# @@ -344,4 +333,3 @@ message I'm upholding human rights! message Area Secure message I'm all out of lines, matey: message It's game over for you - diff --git a/src/demo/limerick.txt b/src/demo/limerick.txt index 20c803cb1..1e8c67141 100644 --- a/src/demo/limerick.txt +++ b/src/demo/limerick.txt @@ -10,7 +10,8 @@ The first ten levels of a neato game - you can play the full version here http://www.kongregate.com/games/KissMaj7/lime-rick -the full version includes some mechanics that aren't covered in the levels here, but they are supported. +The full version includes some mechanics that aren't covered in the levels here, but they are supported. + ) ======== @@ -18,10 +19,10 @@ OBJECTS ======== Background -Black +black Exit -Red +red .000. 00000 00000 @@ -29,7 +30,7 @@ Red .000. Apple -Blue +blue .000. 00000 00000 @@ -37,7 +38,7 @@ Blue .000. PlayerBodyH -Green +green .000. 00000 0...0 @@ -45,16 +46,15 @@ Green .000. PlayerBodyV -Green +green .000. 00.00 00.00 00.00 .000. - Crate -Orange +orange 00000 0...0 0...0 @@ -62,7 +62,7 @@ Orange 00000 PlayerHead1 -LightGreen +lightgreen .000. 0.0.0 00000 @@ -70,35 +70,31 @@ LightGreen .000. PlayerHead2 -Yellow +yellow .000. 0.0.0 00000 00000 .000. - PlayerHead3 -Orange +orange .000. 0.0.0 00000 00000 .000. - PlayerHead4 -Red +red .000. 0.0.0 00000 00000 .000. - - Wall -Brown +brown ======= LEGEND @@ -117,7 +113,8 @@ C = Crate ========= SOUNDS ========= -sfx0 3295707 (player jump) + +sfx0 3295707 (player jump) sfx1 3538707 (player jump to max) sfx2 42451307 (player move horizontally) endlevel 96434300 @@ -132,33 +129,33 @@ Exit, Apple PlayerBody Player, Wall, Crate - ====== RULES ====== (this game handles all the movement stuff itself - it removes all movements before the movement phase has a chance to tick at all) -UP [ UP PlayerHead4 ] -> [ PlayerHead4 ] +UP [ UP PlayerHead4 ] -> [ PlayerHead4 ] UP [ UP PlayerHead3 | No Obstacle ] -> [ PlayerBodyV | PlayerHead4 ] sfx1 UP [ UP PlayerHead2 | No Obstacle ] -> [ PlayerBodyV | PlayerHead3 ] sfx0 UP [ UP PlayerHead1 | No Obstacle ] -> [ PlayerBodyV | PlayerHead2 ] sfx0 -Horizontal [ > Player | Crate | No Obstacle ] -> [ PlayerBodyH | PlayerHead1 | Crate ] sfx2 +horizontal [ > Player | Crate | No Obstacle ] -> [ PlayerBodyH | PlayerHead1 | Crate ] sfx2 -Horizontal [ > Player | No Obstacle ] -> [ PlayerBodyH | PlayerHead1 ] sfx2 +horizontal [ > Player | No Obstacle ] -> [ PlayerBodyH | PlayerHead1 ] sfx2 -[ Player Apple ] [ PlayerBody ] -> [ Player Apple ] [ ] -[ Player Apple ] -> [ Player ] +[ Player Apple ] [ PlayerBody ] -> [ Player Apple ] [ ] +[ Player Apple ] -> [ Player ] -[ > Player ] -> [ Player ] +[ > Player ] -> [ Player ] -DOWN [ Player | No Obstacle ] -> [ PlayerBodyV | PlayerHead1 ] -DOWN [ Crate | No Obstacle ] -> [ | Crate ] +DOWN [ Player | No Obstacle ] -> [ PlayerBodyV | PlayerHead1 ] +DOWN [ Crate | No Obstacle ] -> [ | Crate ] ============== WINCONDITIONS ============== + some player on exit ======= @@ -346,5 +343,4 @@ message level 10 of 10 #.................# ################### - message congratulations! diff --git a/src/demo/microban.txt b/src/demo/microban.txt index 002bd1058..09eacff20 100644 --- a/src/demo/microban.txt +++ b/src/demo/microban.txt @@ -2,27 +2,24 @@ title Microban author David Skinner homepage www.sneezingtiger.com/sokoban/levels/microbanText.html -( -My favourite set of sokoban levels - here're the first ten of the Microban set. +(My favourite set of sokoban levels - here're the first ten of the Microban set. -I 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. -) +I 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.) ======== OBJECTS ======== Background -LIGHTGREEN GREEN +lightgreen green 11111 01111 11101 11111 10111 - Target -DarkBlue +darkblue ..... .000. .0.0. @@ -30,7 +27,7 @@ DarkBlue ..... Wall -BROWN DARKBROWN +brown darkbrown 00010 11111 01000 @@ -38,7 +35,7 @@ BROWN DARKBROWN 00010 Player -Black Orange White Blue +black orange white blue .000. .111. 22222 @@ -46,14 +43,13 @@ Black Orange White Blue .3.3. Crate -Orange +orange 00000 0...0 0...0 0...0 00000 - ======= LEGEND ======= @@ -65,7 +61,6 @@ P = Player @ = Crate and Target O = Target - ======= SOUNDS ======= @@ -86,13 +81,13 @@ Player, Wall, Crate RULES ====== -[ > Player | Crate ] -> [ > Player | > Crate ] +[ > Player | Crate ] -> [ > Player | > Crate ] ============== WINCONDITIONS ============== -All Target on Crate +all Target on Crate ======= LEVELS diff --git a/src/demo/midas.txt b/src/demo/midas.txt index 468d8bab7..82eaae3a8 100644 --- a/src/demo/midas.txt +++ b/src/demo/midas.txt @@ -2,7 +2,9 @@ title Midas author wanderlands homepage https://web.archive.org/web/20160706204929/http://wanderlands.org/ -(A port of the luxuriant Wanderlands game, Midas, with permission of the authors. It's a bit messy, if you can find a way to tidy it up, let me know :] +( + +A port of the luxuriant Wanderlands game, Midas, with permission of the authors. It's a bit messy, if you can find a way to tidy it up, let me know : ] the original is here https://web.archive.org/web/20120219201941/http://wanderlands.org/main/midas @@ -16,22 +18,21 @@ OBJECTS ======== Background -WHITE +white lovebase white Target -BLACK +black ..... ..0.. .000. ..0.. .0.0. - GoldTarget -ORANGE +orange ..... ..0.. .000. @@ -39,7 +40,7 @@ ORANGE .0.0. PlayerGround -BLACK +black ..... ..0.. .000. @@ -47,7 +48,7 @@ BLACK .0.0. PlayerJump1 -BLACK +black ..... ..0.. 00000 @@ -55,7 +56,7 @@ BLACK .0.0. PlayerJump2 -BLACK +black ..... ..0.. 00000 @@ -63,26 +64,24 @@ BLACK .0.0. Crown -Orange +orange .000. .0.0. ..... ..... ..... - GoldBlock -Orange - +orange GoldingBlock brown Water -Blue +blue Wall -GRAY +gray love pink @@ -108,13 +107,13 @@ W = Water G = GoldBlock D = GoldingBlock - ========= SOUNDS ========= -SFX0 28219707 (touch water) -SFX1 45545307 (golding) -SFX2 42491507 (make lady gold :/ ) + +sfx0 28219707 (touch water) +sfx1 45545307 (golding) +sfx2 42491507 (make lady gold :/ ) StartGame 8892900 EndLevel 28067900 EndGame 28067900 @@ -134,29 +133,30 @@ love RULES ====== -UP [ Up PlayerGround | No Obstacle ] -> [ Up PlayerJump2 | ] -DOWN [ Up JumpingPlayer | no obstacle ] -> [ JumpingPlayer | ] -DOWN [ Up PlayerJump2 | no obstacle ] -> [ PlayerJump2 | ] +UP [ Up PlayerGround | No Obstacle ] -> [ Up PlayerJump2 | ] +DOWN [ Up JumpingPlayer | no obstacle ] -> [ JumpingPlayer | ] +DOWN [ Up PlayerJump2 | no obstacle ] -> [ PlayerJump2 | ] -[ Stationary CanFall ] -> [ Down CanFall ] +[ stationary CanFall ] -> [ Down CanFall ] -HORIZONTAL [ > PlayerJump1 | NO obstacle ] -> [ | PlayerGround ] -HORIZONTAL [ > PlayerJump2 | NO obstacle ] -> [ | PlayerJump1 ] -LATE DOWN [ PlayerGround | NO obstacle ] -> [ | playerground ] +horizontal [ > PlayerJump1 | NO obstacle ] -> [ | PlayerGround ] +horizontal [ > PlayerJump2 | NO obstacle ] -> [ | PlayerJump1 ] +LATE DOWN [ PlayerGround | NO obstacle ] -> [ | playerground ] -LATE [ crown no player ] [ player ] -> [ ] [ crown player ] -LATE [ goldingblock ] -> [goldblock] -LATE [ crown | wall ] -> [crown | goldingblock] SFX1 -LATE [ crown | water ] -> [ | water ] SFX0 -LATE [ crown | target ] -> [ crown | goldtarget ] SFX2 -LATE DOWN [ JumpingPlayer | Obstacle ] -> [ PlayerGround | Obstacle ] +LATE [ crown no player ] [ player ] -> [ ] [ crown player ] +LATE [ goldingblock ] -> [ goldblock ] +LATE [ crown | wall ] -> [ crown | goldingblock ] sfx1 +LATE [ crown | water ] -> [ | water ] sfx0 +LATE [ crown | target ] -> [ crown | goldtarget ] sfx2 +LATE DOWN [ JumpingPlayer | Obstacle ] -> [ PlayerGround | Obstacle ] -LATE [ player | target ] -> [ player lovebase | target ] -LATE UP [ lovebase | ] -> [ | love ] +LATE [ player | target ] -> [ player lovebase | target ] +LATE UP [ lovebase | ] -> [ | love ] ============== WINCONDITIONS ============== + some love (Awwww!) ======= @@ -323,10 +323,8 @@ message And she feels so distant #...................# ##################### - message I live on borrowed time - ##################### #...................# #...................# @@ -341,10 +339,8 @@ message I live on borrowed time #.......###W#.......# ##################### - message Is she still waiting? - ##################### #...................# #....###########....# @@ -364,7 +360,6 @@ message Is she still waiting? message Is love just fool's gold? - ##################### #...................# #...................# @@ -380,5 +375,4 @@ message Is love just fool's gold? #...................# ##################### - message Midas diff --git a/src/demo/naughtysprite.txt b/src/demo/naughtysprite.txt index 7cbd529f5..06ff01316 100644 --- a/src/demo/naughtysprite.txt +++ b/src/demo/naughtysprite.txt @@ -10,16 +10,15 @@ Temp black Background -LIGHTGREEN GREEN +lightgreen green 11111 01111 11101 11111 10111 - Target -DarkBlue +darkblue ..... .000. .0.0. @@ -27,7 +26,7 @@ DarkBlue ..... Wall -BROWN DARKBROWN +brown darkbrown 00010 11111 01000 @@ -35,7 +34,7 @@ BROWN DARKBROWN 00010 Player -Black Orange White Blue +black orange white blue .000. .111. 22222 @@ -43,7 +42,7 @@ Black Orange White Blue .3.3. Sprite -Pink Blue Red +pink blue red ..... .000. 00100 @@ -59,12 +58,11 @@ LEGEND P = Player O = Sprite - ======= SOUNDS ======= -SFX0 67117309 +sfx0 67117309 ================ COLLISIONLAYERS @@ -79,8 +77,8 @@ Player, Wall, Sprite RULES ====== -late [ Sprite | ... | Player ] -> [ Temp | ... | Sprite ] -late [ Temp ] -> [ Player ] +late [ Sprite | ... | Player ] -> [ Temp | ... | Sprite ] +late [ Temp ] -> [ Player ] ============== WINCONDITIONS diff --git a/src/demo/nekopuzzle.txt b/src/demo/nekopuzzle.txt index a44538fc9..6bfd3e4f2 100644 --- a/src/demo/nekopuzzle.txt +++ b/src/demo/nekopuzzle.txt @@ -3,11 +3,13 @@ author lexaloffle homepage www.lexaloffle.com ( + An inadequate but illustrative demake of one of my favourite puzzle games ever, by the extremely amicable Lexaloffle, and with his permission. www.lexaloffle.com/neko.htm The game proper has a lot of magic and love in it. + ) ======== @@ -15,10 +17,10 @@ OBJECTS ======== Background . -DarkBlue +darkblue Fruit F -Red Green LightRed +red green lightred ..1.. .000. 00020 @@ -26,7 +28,7 @@ Red Green LightRed .000. Player P -Gray White +gray white .1.1. 10101 11111 @@ -40,6 +42,7 @@ LEGEND ========= SOUNDS ========= + endlevel 97301508 startgame 97301508 endgame 97301508 @@ -55,16 +58,16 @@ Player, Fruit RULES ====== -[ > Player | ... | Fruit ] -> [ | ... | Player ] - +[ > Player | ... | Fruit ] -> [ | ... | Player ] (if you're not sure what this line does, try removing it, and see what happens) -[ > Player ] -> [ Player] +[ > Player ] -> [ Player ] ============== WINCONDITIONS ============== -No fruit + +no Fruit ======= LEVELS @@ -80,7 +83,6 @@ F......F ........ P....... - message level 2 of 10 ........ @@ -124,7 +126,6 @@ F...F... message level 6 of 10 - F.....F. ........ ........ @@ -135,7 +136,6 @@ F.....F. message level 7 of 10 - ...FP..F F.F..... F......F diff --git a/src/demo/notsnake.txt b/src/demo/notsnake.txt index 148388c6f..594ebf2ba 100644 --- a/src/demo/notsnake.txt +++ b/src/demo/notsnake.txt @@ -18,7 +18,6 @@ lightblue Trail purple - ======= LEGEND ======= @@ -49,13 +48,13 @@ RULES ====== [ > Player | No Trail ] -> [ Trail | Player ] sfx0 -[ > Player | Trail ] -> [ | Player ] sfx1 +[ > Player | Trail ] -> [ | Player ] sfx1 ============== WINCONDITIONS ============== -No Trail +no Trail ======= LEVELS diff --git a/src/demo/octat.txt b/src/demo/octat.txt index e0e80a705..910b14e04 100644 --- a/src/demo/octat.txt +++ b/src/demo/octat.txt @@ -5,7 +5,9 @@ homepage www.increpare.com noundo require_player_movement -(A port of a flash game I made. The original's here: +( + +A port of a flash game I made. The original's here: http://ded.increpare.com/~locus/octat/ @@ -23,7 +25,7 @@ purple .000. ..... -activetile +Activetile pink red 00000 0...0 @@ -32,7 +34,7 @@ pink red 00000 Target -RED +red 0...0 .0.0. ..0.. @@ -47,10 +49,10 @@ white .000. ..... -void 0 +Void 0 black -temp +Temp black ======= @@ -58,10 +60,10 @@ LEGEND ======= . = Background -P = Player and activetile -a = activetile +P = Player and Activetile +a = Activetile x = Target -y = target and activetile +y = target and Activetile ========= SOUNDS @@ -72,30 +74,30 @@ COLLISIONLAYERS ================ Background -void -activetile -player -temp +Void +Activetile +Player +Temp Target ====== RULES ====== -[ > player | no activetile ] -> cancel -[ > player | ] -> [ | player ] +[ > Player | no Activetile ] -> cancel +[ > Player | ] -> [ | Player ] -[ activetile | player ] -> [ temp | player ] -[ no temp | player ] -> [activetile | player ] -[ temp ] -> [] +[ Activetile | Player ] -> [ Temp | Player ] +[ no Temp | Player ] -> [ Activetile | Player ] +[ Temp ] -> [ ] -[activetile void ] -> [ void ] +[ Activetile Void ] -> [ Void ] ============== WINCONDITIONS ============== -some player on target +some Player on target ======= LEVELS @@ -127,10 +129,8 @@ message level 2 of 8 ........... ........... - message level 3 of 8 - ........... ........... ........... @@ -144,7 +144,6 @@ message level 3 of 8 message level 4 of 8 - ........... ........... ...a....... @@ -158,7 +157,6 @@ a.aya.a.ap. message level 5 of 8 - ........... ........... ........... @@ -172,7 +170,6 @@ aaaaaaaaaaa message level 6 of 8 - 000000....0 000000..0.0 000000..0.. @@ -187,14 +184,12 @@ message level 6 of 8 message level 7 of 8 - ..AAA...000 .AY.A...AP. ..AAA...000 message level 8 of 8 - 0AAAA..00 0AAAA..00 YAAAA..AP @@ -202,5 +197,3 @@ YAAAA..AP 0AAAA..00 message the end - - diff --git a/src/demo/randomrobots.txt b/src/demo/randomrobots.txt index 443dd6cb9..9451e6321 100644 --- a/src/demo/randomrobots.txt +++ b/src/demo/randomrobots.txt @@ -6,25 +6,22 @@ homepage www.puzzlescript.net OBJECTS ======== - -Background (special, automatically placed in its own layer) -GREEN darkgreen +Background (special, automatically placed in its own layer) +green darkgreen 11111 01111 11101 11111 10111 - -Player (Required by game) -PINK +Player (Required by game) +pink ..0.. 00000 ..0.. .000. .0.0. - Robot gray black red .000. @@ -33,7 +30,6 @@ gray black red 00000 01010 - ======= LEGEND ======= @@ -57,7 +53,7 @@ Player, Robot RULES ====== -[ stationary Robot ] -> [randomDir Robot] +[ stationary Robot ] -> [ randomDir Robot ] ============== WINCONDITIONS diff --git a/src/demo/randomspawner.txt b/src/demo/randomspawner.txt index e00fc51b7..f70fc700a 100644 --- a/src/demo/randomspawner.txt +++ b/src/demo/randomspawner.txt @@ -6,25 +6,24 @@ homepage www.puzzlescript.net OBJECTS ======== - -Background (special, automatically placed in its own layer) -GREEN darkgreen +Background (special, automatically placed in its own layer) +green darkgreen 11111 01111 11101 11111 10111 -Spawner (Name) -YELLOW (Color) -..... (Sprite) +Spawner (Name) +yellow (Color) +..... (Sprite) ..0.. .000. ..0.. ..... -Player (Required by game) -PINK +Player (Required by game) +pink ..0.. 00000 ..0.. @@ -59,7 +58,7 @@ gray black lightblue LEGEND ======= -Robot = redRobot or greenRobot or blueRobot +Robot = RedRobot or GreenRobot or BlueRobot Obstacle = Player or Robot . = Background P = Player @@ -82,8 +81,8 @@ Player, Robot RULES ====== -[ stationary Robot ] -> [randomDir Robot] -[ Spawner no Obstacle ] -> [ Spawner random Robot ] +[ stationary Robot ] -> [ randomDir Robot ] +[ Spawner no Obstacle ] -> [ Spawner random Robot ] ============== WINCONDITIONS diff --git a/src/demo/sokoban_basic.txt b/src/demo/sokoban_basic.txt index 47d911e17..add30a612 100644 --- a/src/demo/sokoban_basic.txt +++ b/src/demo/sokoban_basic.txt @@ -7,16 +7,15 @@ OBJECTS ======== Background -LIGHTGREEN GREEN +lightgreen green 11111 01111 11101 11111 10111 - Target -DarkBlue +darkblue ..... .000. .0.0. @@ -24,7 +23,7 @@ DarkBlue ..... Wall -BROWN DARKBROWN +brown darkbrown 00010 11111 01000 @@ -32,7 +31,7 @@ BROWN DARKBROWN 00010 Player -Black Orange White Blue +black orange white blue .000. .111. 22222 @@ -40,14 +39,13 @@ Black Orange White Blue .3.3. Crate -Orange +orange 00000 0...0 0...0 0...0 00000 - ======= LEGEND ======= @@ -59,12 +57,11 @@ P = Player @ = Crate and Target O = Target - ======= SOUNDS ======= -Crate MOVE 36772507 +Crate move 36772507 ================ COLLISIONLAYERS @@ -78,19 +75,18 @@ Player, Wall, Crate RULES ====== -[ > Player | Crate ] -> [ > Player | > Crate ] +[ > Player | Crate ] -> [ > Player | > Crate ] ============== WINCONDITIONS ============== -All Target on Crate +all Target on Crate ======= LEVELS ======= - ####.. #.O#.. #..### @@ -99,7 +95,6 @@ LEVELS #..### ####.. - ###### #....# #.#P.# diff --git a/src/demo/sokoban_eyeball.txt b/src/demo/sokoban_eyeball.txt index c10ad8a7d..1f461d502 100644 --- a/src/demo/sokoban_eyeball.txt +++ b/src/demo/sokoban_eyeball.txt @@ -7,16 +7,15 @@ OBJECTS ======== Background -LIGHTGREEN GREEN +lightgreen green 11111 01111 11101 11111 10111 - Target -DarkBlue +darkblue ..... .000. .0.0. @@ -24,7 +23,7 @@ DarkBlue ..... Wall -BROWN DARKBROWN +brown darkbrown 00010 11111 01000 @@ -32,7 +31,7 @@ BROWN DARKBROWN 00010 Player -Black Orange White Blue +black orange white blue .000. .111. 22222 @@ -40,7 +39,7 @@ Black Orange White Blue .3.3. EyeBall -White Blue Red +white blue red .000. 00100 01110 @@ -56,12 +55,11 @@ LEGEND P = Player O = EyeBall - ======= SOUNDS ======= -SFX0 67117309 +sfx0 67117309 ================ COLLISIONLAYERS @@ -75,13 +73,13 @@ Player, Wall, EyeBall RULES ====== -[ Eyeball | ... | Player ] -> [ > Eyeball | ... | Player ] SFX0 +[ Eyeball | ... | Player ] -> [ > Eyeball | ... | Player ] sfx0 ============== WINCONDITIONS ============== -(there's no way to win against a floating eyeball :S ) +(There's no way to win against a floating eyeball :S ) ======= LEVELS diff --git a/src/demo/sokoban_horizontal.txt b/src/demo/sokoban_horizontal.txt index 509dded37..8063d6934 100644 --- a/src/demo/sokoban_horizontal.txt +++ b/src/demo/sokoban_horizontal.txt @@ -1,4 +1,4 @@ -title Horizontal Block Pushing Game +title horizontal Block Pushing Game author increpare homepage www.puzzlescript.net @@ -7,16 +7,15 @@ OBJECTS ======== Background -LIGHTGREEN GREEN +lightgreen green 11111 01111 11101 11111 10111 - Target -DarkBlue +darkblue ..... .000. .0.0. @@ -24,7 +23,7 @@ DarkBlue ..... Wall -BROWN DARKBROWN +brown darkbrown 00010 11111 01000 @@ -32,7 +31,7 @@ BROWN DARKBROWN 00010 Player -Black Orange White Blue +black orange white blue .000. .111. 22222 @@ -40,14 +39,13 @@ Black Orange White Blue .3.3. Crate -Blue White +blue white 00000 00000 01110 00000 00000 - ======= LEGEND ======= @@ -59,7 +57,6 @@ P = Player @ = Crate and Target O = Target - ======= SOUNDS ======= @@ -78,13 +75,13 @@ Player, Wall, Crate RULES ====== -horizontal [ > Player | Crate ] -> [ > Player | > Crate ] +horizontal [ > Player | Crate ] -> [ > Player | > Crate ] ============== WINCONDITIONS ============== -All Target on Crate +all Target on Crate ======= LEVELS diff --git a/src/demo/sokoban_match3.txt b/src/demo/sokoban_match3.txt index 0e03f2009..8275f9975 100644 --- a/src/demo/sokoban_match3.txt +++ b/src/demo/sokoban_match3.txt @@ -7,7 +7,7 @@ OBJECTS ======== Background -LIGHTGREEN GREEN +lightgreen green 11111 01111 11101 @@ -16,7 +16,7 @@ LIGHTGREEN GREEN Target -DarkBlue +darkblue ..... .000. .0.0. @@ -24,7 +24,7 @@ DarkBlue ..... Wall -BROWN DARKBROWN +brown darkbrown 00010 11111 01000 @@ -32,7 +32,7 @@ BROWN DARKBROWN 00010 Player -Black Orange White Blue +black orange white blue .000. .111. 22222 @@ -40,7 +40,7 @@ Black Orange White Blue .3.3. Crate -Orange Yellow +orange yellow 00000 0...0 0...0 @@ -80,13 +80,13 @@ RULES [ > Player | Crate ] -> [ > Player | > Crate ] -late [ Crate | Crate | Crate ] -> [ | |] +late [ Crate | Crate | Crate ] -> [ | | ] ============== WINCONDITIONS ============== -All Crate on Target +all Crate on Target ======= LEVELS diff --git a/src/demo/sokoban_sticky.txt b/src/demo/sokoban_sticky.txt index 6a2ea6558..8928869e5 100644 --- a/src/demo/sokoban_sticky.txt +++ b/src/demo/sokoban_sticky.txt @@ -7,16 +7,15 @@ OBJECTS ======== Background -LIGHTGREEN GREEN +lightgreen green 11111 01111 11101 11111 10111 - Target -DarkBlue +darkblue ..... .000. .0.0. @@ -24,7 +23,7 @@ DarkBlue ..... Wall -BROWN DARKBROWN +brown darkbrown 00010 11111 01000 @@ -32,7 +31,7 @@ BROWN DARKBROWN 00010 Player -Black Orange White Blue +black orange white blue .000. .111. 22222 @@ -40,14 +39,13 @@ Black Orange White Blue .3.3. Crate -Orange +orange 00000 0...0 0...0 0...0 00000 - ======= LEGEND ======= @@ -59,7 +57,6 @@ P = Player @ = Crate and Target O = Target - ======= SOUNDS ======= @@ -78,13 +75,13 @@ Player, Wall, Crate RULES ====== -[ < Player | Crate ] -> [ < Player | < Crate ] +[ < Player | Crate ] -> [ < Player | < Crate ] ============== WINCONDITIONS ============== -All Target on Crate +all Target on Crate ======= LEVELS diff --git a/src/demo/sumo.txt b/src/demo/sumo.txt index 84a1e17b9..02b1cc93a 100644 --- a/src/demo/sumo.txt +++ b/src/demo/sumo.txt @@ -7,16 +7,15 @@ OBJECTS ======== Background -LIGHTGREEN GREEN +lightgreen green 11111 01111 11101 11111 10111 - Wall -BROWN DARKBROWN +brown darkbrown 00010 11111 01000 @@ -24,7 +23,7 @@ BROWN DARKBROWN 00010 Player -Black Orange White Blue +black orange white blue .000. .111. 22222 @@ -32,7 +31,7 @@ Black Orange White Blue .3.3. Sumo -Pink White +pink white ..0.. 00000 .000. @@ -65,7 +64,7 @@ Player, Wall, Sumo RULES ====== -[ > Player ] [ Sumo ] -> [ > Player ] [ > Sumo ] +[ > Player ] [ Sumo ] -> [ > Player ] [ > Sumo ] ============== WINCONDITIONS diff --git a/src/demo/whaleworld.txt b/src/demo/whaleworld.txt index fdc20b025..f25880f29 100644 --- a/src/demo/whaleworld.txt +++ b/src/demo/whaleworld.txt @@ -10,7 +10,11 @@ color_palette mastersystem run_rules_on_level_start require_player_movement -(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) +( + +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. + +) ======== OBJECTS @@ -42,7 +46,7 @@ black 00000 HBeam -Yellow +yellow ..... ..... 0.0.0 @@ -50,7 +54,7 @@ Yellow ..... VBeam -Yellow +yellow ..0.. ..... ..0.. @@ -96,31 +100,30 @@ RULES ====== (while we allow whales to move onto the void, player's aren't) -[ > player | void ] -> [ player | void ] - +[ > player | void ] -> [ player | void ] (beams detect motion) -Horizontal [ > Player | VBeam ] -> [ > Player | > VBeam ] -Vertical [ > Player | HBeam ] -> [ > Player | > HBeam ] +horizontal [ > Player | VBeam ] -> [ > Player | > VBeam ] +vertical [ > Player | HBeam ] -> [ > Player | > HBeam ] (If beams detected motion, transfer that to the whales) -[ Whale | ... | Perpendicular Beam ] -> [ Perpendicular Whale | ... | Perpendicular Beam ] +[ Whale | ... | perpendicular Beam ] -> [ perpendicular Whale | ... | perpendicular Beam ] (remove whales, if necessary) -late [ Whale Void ] -> [ Void ] +late [ Whale Void ] -> [ Void ] (remove beams) -[ Beam ] -> [] +[ Beam ] -> [ ] (Place HVeams and VBeams) -late Horizontal [ Whale | ... | ] -> [ Whale | ... | HBeam ] -late Vertical [ Whale | ... | ] -> [ Whale | ... | VBeam ] +late horizontal [ Whale | ... | ] -> [ Whale | ... | HBeam ] +late vertical [ Whale | ... | ] -> [ Whale | ... | VBeam ] ============== WINCONDITIONS ============== -No Whale +no Whale ======= LEVELS diff --git a/src/demo/zenpuzzlegarden.txt b/src/demo/zenpuzzlegarden.txt index 51f1e61ef..977122462 100644 --- a/src/demo/zenpuzzlegarden.txt +++ b/src/demo/zenpuzzlegarden.txt @@ -38,7 +38,6 @@ grey darkgrey yellow 11000 11101 - UnbrushedSand yellow orange 00000 @@ -96,17 +95,17 @@ Player, Rock RULES ====== +(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?) -(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? ) - -Horizontal [ UnbrushedSand > Player ] -> [ HBrushedSand > Player ] -Vertical [ UnbrushedSand > Player ] -> [ VBrushedSand > Player ] +horizontal [ UnbrushedSand > Player ] -> [ HBrushedSand > Player ] +vertical [ UnbrushedSand > Player ] -> [ VBrushedSand > Player ] late [ Player BrushedSand ] -> cancel ============== WINCONDITIONS ============== + no UnbrushedSand ======= @@ -143,7 +142,6 @@ message level 2 of 5 ;;;;;;;;;;;; ;;;;;;;;;;;; - message level 3 of 5 ;;;;;;;;;;;; @@ -159,7 +157,6 @@ message level 3 of 5 ;;;;;;;;;;;; ;;;;;;;;;;;; - message level 4 of 5 ;;;;;;;;;;;; @@ -174,7 +171,6 @@ message level 4 of 5 ;;;;;;;;;;;; ;;;;;;;;;;;; - message level 5 of 5 ;;;;;;;;;;;; From a35bf83483c7853a025a45983412c2b84e04d2ac Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Fri, 25 Feb 2022 13:08:39 +0100 Subject: [PATCH 047/122] fixes #857 --- src/js/parser.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/js/parser.js b/src/js/parser.js index 3f9053be6..52d4174e9 100644 --- a/src/js/parser.js +++ b/src/js/parser.js @@ -1391,6 +1391,7 @@ var codeMirrorFn = function() { return 'LOGICWORD'; } else { + logError('Expecting the start of a win condition ("ALL","SOME","NO") but got "'+candword.toUpperCase()+"'.", state.lineNumber); return 'ERROR'; } } From 97efac79f39fdf8e6a139d83ff58a8b9abf7ad9a Mon Sep 17 00:00:00 2001 From: increpare Date: Thu, 3 Mar 2022 13:39:23 +0100 Subject: [PATCH 048/122] fixes #859 --- .github/workflows/codeql-analysis.yml | 70 +++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 .github/workflows/codeql-analysis.yml diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml new file mode 100644 index 000000000..24b96ba9e --- /dev/null +++ b/.github/workflows/codeql-analysis.yml @@ -0,0 +1,70 @@ +# For most projects, this workflow file will not need changing; you simply need +# to commit it to your repository. +# +# You may wish to alter this file to override the set of languages analyzed, +# or to provide custom queries or build logic. +# +# ******** NOTE ******** +# We have attempted to detect the languages in your repository. Please check +# the `language` matrix defined below to confirm you have the correct set of +# supported CodeQL languages. +# +name: "CodeQL" + +on: + push: + branches: [ master ] + pull_request: + # The branches below must be a subset of the branches above + branches: [ master ] + schedule: + - cron: '23 7 * * 6' + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: [ 'javascript', 'python' ] + # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] + # Learn more about CodeQL language support at https://git.io/codeql-language-support + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v1 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + # queries: ./path/to/local/query, your-org/your-repo/queries@main + + # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). + # If this step fails, then you should remove it and run the build manually (see below) + - name: Autobuild + uses: github/codeql-action/autobuild@v1 + + # ℹ️ Command-line programs to run using the OS shell. + # 📚 https://git.io/JvXDl + + # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines + # and modify them (or add more) to build your code if your project + # uses a compiled language + + #- run: | + # make bootstrap + # make release + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v1 From 9870191487002773ba4e06936b06eee5d89dd63a Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Thu, 3 Mar 2022 16:34:47 +0100 Subject: [PATCH 049/122] fixes #862, fixes #843 partly dependent on #860 which I can't include right now --- src/Documentation/actionbutton.html | 6 +- src/Documentation/collisionlayers.html | 2 +- src/Documentation/css/bootstrap-theme.css | 4 + src/Documentation/directions.html | 4 +- src/Documentation/executionorder.html | 4 +- src/Documentation/faq.html | 4 +- src/Documentation/gifs.html | 5 +- src/Documentation/images/gif_output.png | Bin 0 -> 35302 bytes src/Documentation/keyboard_shortcuts.html | 2 +- src/Documentation/legend.html | 1 - src/Documentation/leveleditor.html | 2 +- src/Documentation/levels.html | 11 +- src/Documentation/prelude.html | 52 +- src/Documentation/privacypolicy.html | 2 +- src/Documentation/randomness.html | 8 +- src/Documentation/realtime.html | 7 +- src/Documentation/rules.html | 12 +- src/Documentation/rules101.html | 4 +- src/Documentation/sounds.html | 9 +- src/Documentation/visual_debugger.html | 2 +- src/Documentation/winconditions.html | 14 +- src/demo/dreizack.txt | 1322 +++++++++++++++++++++ src/demo/kettle.txt | 2 +- src/demo/leftrightnpcs.txt | 10 +- src/demo/sokoban_basic_debug.txt | 111 ++ src/demo/sokoban_basic_zoomscreen.txt | 109 ++ src/demo/zokoban.txt | 215 ++++ 27 files changed, 1851 insertions(+), 73 deletions(-) create mode 100644 src/Documentation/images/gif_output.png create mode 100644 src/demo/dreizack.txt create mode 100644 src/demo/sokoban_basic_debug.txt create mode 100644 src/demo/sokoban_basic_zoomscreen.txt create mode 100644 src/demo/zokoban.txt diff --git a/src/Documentation/actionbutton.html b/src/Documentation/actionbutton.html index e87333b3b..1e6268e98 100644 --- a/src/Documentation/actionbutton.html +++ b/src/Documentation/actionbutton.html @@ -74,9 +74,11 @@

The Action Button

It's treated like a directional input, merely one that has no effect during the movement phase and is removed (so if you search for a moving player, it will detect someone doing an action. If you want to detect someone moving who is not doing an action, you can use the word ORTHOGONAL (which just means up/down/left/right).

-Action markers are discarded during the movement phase. +Action markers are discarded during the movement phase.

-So, what are you going to use the action button for? It seems to want to be a button for violence, and puzzle games mostly get by just fine without it, but maybe you have some awesome ideas :D +TIP: If you are using action in your games, you often will want to use norepeat_action to prevent the player from repeatedly triggering the action even just by holding down action (this is especially useful when action toggles between two states - when toggling a button, say, you will probably want "one press" = "one toggle"). +

+So, what are you going to use the action button for? For pushing crates? For swapping between characters? for pressing buttons? There are many possibilities! diff --git a/src/Documentation/css/bootstrap-theme.css b/src/Documentation/css/bootstrap-theme.css index 654d4d3bc..492830b86 100644 --- a/src/Documentation/css/bootstrap-theme.css +++ b/src/Documentation/css/bootstrap-theme.css @@ -21,4 +21,8 @@ dt { position: relative; top: -50px; visibility: hidden; +} + +table.padcolright tbody tr td:first-of-type { + padding-right: 10px; } \ No newline at end of file diff --git a/src/Documentation/directions.html b/src/Documentation/directions.html index 6b0b1feae..c920db384 100644 --- a/src/Documentation/directions.html +++ b/src/Documentation/directions.html @@ -65,7 +65,7 @@

Intermediate Directions and Movement

Relative directions rotate along with their pattern

-

[ > Player | Crate ] -> [ > Player | > Crate]
+
[ > Player | Crate ] -> [ > Player | > Crate ]

gets compiled to the following set of rules:

@@ -122,7 +122,7 @@

Intermediate Directions and Movement

Parallel is also a keyword, and means what you think it might :)

-Tip: if you don't know what something does in the examples (or in your own code :S ), add the debug statement to the prelude and see what it produces. +Tip: if you don't know what something does in the examples (or in your own code :S ), it can be helpful to add the DEBUG flag to the prelude to see how the compiler interprets it.

diff --git a/src/Documentation/executionorder.html b/src/Documentation/executionorder.html index 152b2c932..14616c36e 100644 --- a/src/Documentation/executionorder.html +++ b/src/Documentation/executionorder.html @@ -85,7 +85,7 @@

Zoom Level 2

The player won't be able to push several crates in a row with this, because the first rule gets applied first, and then the second rule. So order does matter - these aren't abstract replacement rules floating around in a vacuum.

-

Zoom Level 3

+

Zoom Level 3

Each rule gets applied in turn as often as it can be before the interpreter moves on to the next one. It sounds quite simple, doesn't it, but there's one point of ambiguity. The compiler compiles each rule you write down into several smaller rules (You can see the output by using the debug switch in the Prelude).

@@ -109,7 +109,7 @@

Zoom Level 3

You might wonder if you can construct rule groups yourself. The answer is yes, with use of the modest + symbol..

[ > Player | Crate ] -> [ > Player | > Crate ]
-+[< Player | Crate ] -> [ < Player | < Crate ] 
++ [ < Player | Crate ] -> [ < Player | < Crate ]

That assigns both rules (or rather, the rules that are generated from them) to the same rule group.

diff --git a/src/Documentation/faq.html b/src/Documentation/faq.html index c27300f22..4b7be666f 100644 --- a/src/Documentation/faq.html +++ b/src/Documentation/faq.html @@ -63,7 +63,7 @@

Frequently Asked Questions

I have an idea for feature X!
-
Not a question. Let me know about your ideas, for sure! For making an engine like this, while I have a lot of discretion for random crap, my main philosophy is to not add anything unless: +
Not a question. Let me know about your ideas, for sure! For making an engine like this, while I have a lot of discretion for random crap, my main philosophy is to not add anything unless:

  • It would be useful in 2 or more possible games.
  • @@ -81,7 +81,7 @@

    Frequently Asked Questions

    Can I run the editor offline?
    You can download an uncompressed version of PuzzleScript from GitHub, and that should work okay offline, except for exporting standalone versions of the games (it has some optimizations that stop it from working when the webpage is run from your hard-disk), and sharing.
    Why no music?
    -
    I want scripts to be standalone, and it's not so practical for people to write aesthetically tolerable music the same way they say edit sprites. Sorry! (Maybe a better approach would be to have a seeded random music generator like the random sound generator).
    +
    I want scripts to be standalone, and it's not so practical for people to write aesthetically tolerable music the same way they say edit sprites. Sorry! (Maybe a better approach would be to have a seeded random music generator like the random sound generator?).
diff --git a/src/Documentation/gifs.html b/src/Documentation/gifs.html index 847af046a..96944ebd1 100644 --- a/src/Documentation/gifs.html +++ b/src/Documentation/gifs.html @@ -62,9 +62,10 @@

Making GIFs

Making gifs is crazy fun.

- From the editor, load a level, bop around in it a bit, and then press CTRL+K (or CMD+K if you're on osx), then BE PATIENT, then BAM a shiny GIF along with a download link should appear in the console in a short few moments. + From the editor, load a level, bop around in it a bit, and then press CTRL+K (or CMD+K if you're on MacOS), then BE PATIENT, then BAM a shiny animated GIF along with a download link should appear in the console in a short few moments:

- + +

It's not the fastest generator in the world, and its speed depends on the length of the animation and the resolution of the game-screen in the editor. diff --git a/src/Documentation/images/gif_output.png b/src/Documentation/images/gif_output.png new file mode 100644 index 0000000000000000000000000000000000000000..f52fee9a64c1dee6133bf508b5b01fe4203f54ab GIT binary patch literal 35302 zcmeFa2Ut_-);8>nGXplTK~zdcup>l81*BvY5fv3XC_A)|mO5fBTA2(hEm zK?o2?1dM=`P^6QDUPD3%B#`>=1aLf-ne+Z{`ObCDT-OXUBs+WWXFY4(>t6R-JKQ*W z#CXyCRrBY}nX~A?{=LWN%$a*(&YU0N(mw*P#35aN1^)Ac=W*jbb5g4n2Z3LHa@c)% z_nbKykqh|NKLfwdbK8H$bIu(3wc>w&IB5C`_|KIv;ULS`h{H6il0Zd*jN6vFBPm2m>NOq{GJQIxAu zS)<}~Os2ACgVV=f^$L$Qzf`<$U4s#kQ0wchLE~G4GPCFAzji2et@pZPZn`kT^2G*q zDbD?pIoNW=`;U#9p8!9B5AF8#f0}+wXG_ViudF;9tp4H3%2grZtAZ1?<}2KrtGRFw<`&uh?+gByO=`L{iaZ)5 z5`Y^+=GV<^CGJt=%DX8_HK+84k#R5L-uc^HAK7MfNhi1TdYQ{_Y9FrreI(%Ue_QEa z%|jx|LS4rq{f$!g7nkI00Ddmtd3kXHWrNd6nM$`6k4zPp4qOfz9p7jD^q0;-9okg` z`=dENznM)WbDSTzEFHeFI;Ud!^WF|+P3iBTllAWg?)x9DSX5lEAiwdr=paPpukGtR&tH?bMthvUHhsnL;(fhu7l!`8eYg6G&30*1 zSIO-qlxPgt{&K-l%Ig%#pZa2OT}HwR8{DB|XJzPHgT8}yioXmj3;ijqb{cU3@Ra$! zGcGK4-u8WiY}og=LH@x*{x--LA@iSSkdYfemitpWv0_QfqJd?ZZQq9wRTbP1$UQ!B zmNlgdKQzh=yiSdsz1HR8S*W_-6D-tDU}s+Q05E7hy&1N!L2{ZAJ)IO*#W%zYj(Yu zyH{rU(`m*GfVW}s_qRXv2bViKTMW_ZM!-*iU{7N`kdSr{EYmr96Uc%t&bnJ|stNBLS;_h6{ z?ei6Y!-3?tNy>gjutC&Z;zdc4{@Wmb8{}^f5pz(ZW57S_Kxl2gT=oTj-sGZgoa)1S9=RmezqxgqSyhOlj&FCi~%bPtHHvHU{uG1wuZ&u!rK zCmTKlKgHh<8(Aay+}(M`$gOg12gDzFvSC>S*Je}Bojt;H(;xE}e@t91YEB=#(FizL zOsq+gJ301Z`2_K#m?RshMHEi-vTa!Mr7zm7oG6PCUWg1oLt5s+Yx|%1fkQv%L|KV^A8(C+-K3|;S z)75}CT0y!Po{cKkhP5f|$<3vI?3N{?0fe^wpSw8<(M6`bEhv0I!B*@8!{`(;NTF7; zIaSvW$3F~^7w^;I_kBta@+8(+XPcD{L3XwjqiCb-5KS6Ayqr(Rz7qNf$;>Zz$nd`A+s@f&q zcqgN!2}4!hwK%StD74=2l>s$!bTi@7lASAW_D5zc(GVXpWJ5ZH4^)WSN_ev2V1qcg z0P@E^<4*Hu*l>a!k^Sj|TpLFYao@P)BAPZQ*00CRT+c7mo<4Iv+AzsgR_XfTejCx2 za;-t3KaNo{g3i9FZw2U6Jj`F&)@+n&g6 zhOUwLh9kXmuh{HwgnUP$)xr0FcHP36>-uyM}3KOFP0X5ZZr#XnYW=_$KjVzP;Tm>T=|HuhI$r-E=g zxotrL)ENDO*ylVmvhO6dUB7AZKtKP8(~unGt=M@iY31dDOCrMaCRfiC-=gbPxa<1M zZL-FR`xeeZlVlTO+BjE7z_-Cai*5DA#kp2DtC9dnJ@^rHLR`-ClC^ybP2ba(`e~`h zVYLAdF1+4Tk-lUlb~|GGyM!EjS~*(0u8S~QIp97>F%ljF#i>Bpiqk;o?G$b2G@$Z_ z=e_5wCh0j6V{sPEfD4L32@=B6y@^8Dn`m8U1#ZU|Z3xb7lK-C9hdI)!{GMI(>z% z$ZbBj{gf>>)84>VxeY1VmyD`-lbEs+F(z4YD+u8MbJ`1=j^`I;0A>>VEZ-@gRf=1? zQX&7k7%SPtg!Wnd@Xl%xt+zF_q=6e_sX{1({qW|LEe(8oL5uV>zMv1cYB_&nhZtz` zTCU46wg}h&v~7J}b8C5n^Sd0^Sj#{44!|U?FsFAO(`MUgGJCIHRr=?}cagIlC0WN= zlyI+8XTfvluWbOM`E^Hu7 z^Q`~W?%@2s$U6hoT*tp5*#N=RvWyT`bdH~#(Xo9ufV?fP0x@!>sT^cRTL{j&S+w4D zwK#e10$J$h*|Gou>mC7zS1HMva@(L zbiZ+R&O>!_o>s)+CXfYAl1Kqq-L+i8KO|@0zA_Geu}=c&4{lcBg?x6+Q75($?XlcU zn6A}{oHdqT#sMIE=8SWfNw&kzsSw{h?Q}q_e6{U`XtHOHS3gC2rzOm3WH#CcfZR5F z_F6k9%Hvp^WdFA9Ik$0>Z2H3#v6u%RXIi`%2vmmWK5I4DEPuGroBU9ri>K|G8(R;msBQ zSfH37{xyL+{Qij3gptuP8QAC8O9j>fB)QL-&L1S|uUV1!*smZIFzkPaw*mL^Rf_nZ zzRiCm-RD;?S+XQ*<53AkmzG}&{1*G;G$;5!ee3aR(Rc!n#BVt$V&fRuQ3SvB!b{~~ z6qiL#7j@T*uA$C)^g~m2(3BVg80seK>{vIIcFh@~mV?V^o$pYZ)7ARWpuRQC(W~Re ze)RM9?+5zh1U{+P{8Ua0B@5 z(3P3DYHm5QQZ^uEKh~Zezi6kHS~aMdl9IbmD&hK@{nJ^~{9;*l-l>;QwOhlK!<~rP zI>;B`mh3<#JBlTsc;v$^Lk&9;&y+ zo)a*Um&GFcOwlwsOiUlW4S{Q0x!RTBd)IaocYtGsck3N$Py?9;Fn03q93tIG><{hW zCi>{lO^jUA&h9V)fnx5)fca~L2YepR8u@M>b6^2_xcc}X^$&aN+WJkQgp{VdMN_a}2f5?&bhKmp#KZ(K$4ekAUd=#b0>->@BccvQkp$v4g$rvmFkJq-Gt}Ki8l(-=IYw(rJo{%b&OACbU#>~mSoR6T$c29nT8|>_n zY=z5*o1Q=pTAUp~YZ**_5T0r2nDBJqJ~4sL`26j0-6LAnE+YtO)f2G0eY1|ZXt4Tik^?4}`4*}^On3?(N$md#FJ#H;Ph_z` z#p~N*C_|!O;FR<@Mqt;+JZ#CM3Xmz3^;TU`)3bYo+SVo_-c^f%6tKIV8oL^7ampFs zV31Wv1vt?$E(5&!Yy*hE?FyNKV*I?OnDqBKT`n2ncwcG-tF4az)Q9wBn z7ZjA>-S>(Y4bL2j7A&N8*CUxP5I9WCC^*xB(4SL?;0|pb8JQbohT81g5zlM!EOoJ5 zl{INjiWChK^r$5A+cUP!EJ)gI)l%ia&O>_e=uEG78W>OvBtf4!NjB~xRHtOinIw{E z*Zl>(p@hmL)RHztDr~e3p7Cu%vd%Y(v*P1HvJsnj&Jjpuoiv zWc83!6;atw9@Ny;hBZ_Cq6$*>pPF?@Lz+hbeI<1@*K57A73?84eClFwq6;Nmx2vfx zK%MrO)ntVAoE0*8ApW6+I`1M`*HSp4=efu z6)ny;flT9l3weotM?|^2S5+GQn8GB5OW@%3`p14qAHn-}D4*BiR2J^E7bql{ zib}i6kR*JIXNP5BfUw1uH}MkT>;Tj8T>~>`F~(H?BE&TXe?L1zQ!U3P zI-J)P&LM1vp0y9MzJIO-3mk9mvUrYmb;I}ydY_-ra&1;OE!+y;F7lZwWRV&o z+I{*}Aqf@*Jz1uC5xnw5QZ*Ro+ZBbtrQ`~`MQ*eVkSQSt%fITXE3BBxT>t^lsuZ-o z0Lct+7Lyz$N4N6)Pe+e{EJy$GGNX}|*R&YUfOeT>}3Hezt+BG7N*?WhYH&xwV zGQu8-i6jTdTo&n?PP$bZJU6J7y9zTP^HdWA*zh23qy}ps2}DZpr3;^mYLIpg7R-+j zkn!7lCuBX`usX3ZgYQaJ0=OB?b;Nuv>R5Q9DID>3hc_IR?>m;!iyYg8AJ0C_j>_l1 zKS9m44YX?aD$Q`9n74a%8~f0?uHLXPyf60#okpR~r*87Vc3oFOfUJ<*4G}M4ga880 zKX+b9hbl)A<;*VhdA(s~lqS$f+$5{JCyz(S z^$pP?yK|sWct@RnR&`5ZS66|XF&uQCAf%7GWAB-y1)xS)D*ZVsw$pNvwEQZc9(*B8 z{mAcUQa8I)k`FA%Lv9V27>+UJAS<*#D6-#n3B5Y*!u4oUf#=s4+umsp}*%|vCyXb{up6$O6d%h4Ma? z>!6l@;2I%ldrZc%;(W4fYH(@Ex=@)`(FX*#tB@R3@J3E8g|+pdq7$2?=c<>@&sy8b z3fGDVg}ssqWp=cXodfC4Mz4?0P|y#aEOKOFfDiLtkVZ_P_mFnrSei(_IexwHC!w%> zO3R<^`ckcDk*@zJw{B2Fk$!eD!F~&(mz;Q0Pz>2(Wq=yHAw}aLPV3%8*2*gtT=c~sbH;;r*MLx{8*3@$bY*%a6Um_z+_Jlu}OoT79;K_T*{LBuJ3^6!U#^d^wzfr+n7?M1=Ye{L=`=300qua1g$d4X zv|aBttUOs+fOzG8M>F!}=(P(xIrU5Nk+orHRwWsMo=dw|D!ct8?=6uO;DNQNY70C0 zd|Ha${6>b?!lL8mX4#6yWyy)pVq+3hI~S3cdW3poNA8{R=T4Ne^IbPodiHkZnZe$; zdX|ilo~u(XdGu;^$=bsBcAT}TkJBKnA-S%y5KBfhqzJH#6JzXJvVU(unZE$k9#n^P z7YZNIIY-!@qtzLWmZ;uR6()i?u&)JvSA7^?K7a=!83Gb`GVo3Og``YE%vesB`Ox}x zF_;9Ndn94NZPXU$0;?o9yOnnhW?94DV7T{3o(mlJGj)^!AHqTK-SKce{)etzIc3kW z6m4dup&I4+4je>AsV%SH2p$4{px%507U0HANudso{u5N*nTz z$367hEz?)XZy0s_m~~DE)uk&%FpSSwwlwke9fVa+m3%U5Yi9T3{vVr>u?6rnABb*X zhX=N}hjRMarkR@T@gktoZwG~YKupOS3q?UBAQUY8>}6sJb1P!$LU;N~VMl={D_+EZ zC|Ft&M;Z}rw@W_;?7VMEuEkxd2@MgI6i8fSo)?2`2zDwT&_+970Kn2cNo*9R_IGC|@ zd(%ibp0qOhf(vnsdFwXEoe{WeY6!@X0lB=wJ0YjmlWQKvDmcQ{hC?qoWR!bC77zuD zZe}{CShhd8HLNoW(UGHaYBotb4|Hhh6X2JHZ_{9SXhaJtQ33U%MV!v4qx>zMWZu@& z1aNVMbyG+Y>_j$I)e3pxOarJyma3O6D$(LG1~R&G&Qd_#vTM{uZ|AfqCs@*=Iq8Dm zr}Fx7T2Ig5e@df*MnKJG=k!DA%%Y*Vqa5PzXLPJu!{Uk=xY6ob=W3xG^wLCWu|ei! z{xN=Uf?%%4i0;A3iOdC1gx*w~)d5RmQ*y>GpM_q8!n?Qf4aWO$@mL1DPZk_#rbK z)|X-@&iK2)L!hG;2L+8fI5UnBF2>TYTRV{YoOgIcEm2v9diyMo#y(9w-A645MB*VD zh4@go|80+1#yA(B4`)}MAQ>#BkZkOk`{t|%nNiN@>d70oDvb}dIP@`g`wL1LS)A>$ z4ufOM@xQ+DMg7FfECPxT-=_}?tl6pdW)KXN**q81f=aqtiV?I-J%`$jHNRSrR_M#e zM7G>-NvwrKDTU0UF$GUOzp)fegsGkvR&e-k%e8i%8)w~eeb}K@L+DN$c&7uJQ&u=g z2{ko8^YA%9V5t=OJC*E;mSv`0&fB_N<{_F3G1VZje-7`ZWd!t6x(`eb3o=*?WNz9# zo(g>s%qHZSo_4)|2DvO#wy0Mt;Vl2hMq2j{(T5CVX@3W@_Fzc^)`|_wJiD5ikq*n5 zU?h6>LmBGA1jc)YCbq_TP$j6!{`pY{Q#}tF8%ICD4=Bu@N)i`BHDtQBj<7g(K^hI* zkY`~{P{wOJM7Fx#BfAY}@G!p2af?KLOZ(FjcT7m2g)n&sjK;m%yn%(@#4xP8|z27T7MRo z3Jp+vj@K%jrrXAVBuc8XQstGjHR=l|h{F*+(1AYBsY(i|PnL@_f|CbHHTSU8FiuB2 zaU@!Z-31etrIJCi_C5p-Y*SWzBbZZkSP>D(n2^DFFpI-rAA|$8`p~7=@=}`yWh;M$ zD8BB8F{pYSb#7*`)-6MM6v1ICei7aG4Wg+e$lcgmcsf~lqvUyg4rLam($RN;ABrofu3mL4;YDitK}dHWbgRhI!At{=`jCuhT&HwFT`JHqx2>m_ z8gNdC_A!%jaoP=|3G>hMvn-3Ed0o0`xFXS15s`}4wgo5{m5xhD3B zBVo|H`CHt$J#1o&)Nq9?a>Oc77UD=J3Nn%dF+q5zo0wno&* z)Pplh*?v2dF#6TZGz4}^j`7=F;%hdsu$Rz|ECH3kbcUzS1Oj7gi8GvLO(xL1C-y=8 z6#~!FQ##XXl5JpDxxMw19%Z`4X|8616TvDfq0zJAQd#s%Nc12+s_AFc3HQTn_ANAL z#e71?4$+C~$b@vQHrT|lv5E@r@E>>b5md36+Z6^*vaBDX`aI|@R{NRpQB|dG+pO*x zrG5;icgSTIdtiZs2EVo8eFY$W2*-+G(4|XaWoD21eHC?15D4A>9=tiZq z?TqXl0Y!S;gi}wXkzk_dO&AlIJ4+S@Y*t1(Gk+kHVvS{Qz8Xj(#m5u!D;zL+k)kzs zY@1>;(G5Oiv0U1pHaIe^mtH&6O*=hP1l``IrHr(8_d9#g5y?z~Sf#rU6Fgc{A4eL6 z<0orfN8$rnT@7ZKcimDW;E}nQD`lOd<)I1434Vy$J%d-;!ANF#J-Wm*y4LEHaM1H` z`&3B`3GY4CzMw?TO~nB_6FWzvRXOdVO8)(LN5NSi_1 zE+4MjG0E*(l}O62L0*f^wgp7heP^25_5m|K=O0^R4FZ?KlIQCj!ko5JwNyX|@*=yK zRhD<~8y4lSLmq3b+XE|LmG<{%Z9d)(O1nZHMAtu>L5A%;??Yj+U}u1HP!T=N>g1T3 zh<0|Yt6m0Y{r`^~I@0xAZKqpbZDT8`$Ql#CrFFrM1iDT!r=a@S$wU?@uojvyl~Gn(SU{xU2Ai2?CB{7?T5PQq%_L1SdLTAIzp36SjEDm4jXSq7U2QOjeSFRzT;tzR}7x@ zq{qK`vJxSOK=)Qk+d9g``*bkiaU4$d4}L?|88c zg%qU$OTq;7Jx;K;n5~qzzmvgvlEy6!3cR^p>X8qNf5?|6-6^n!>v1pZwX;13v)9K! zN(%}1Jw|_q!3A3r^w7D7wcUKSGEbgk@nPu|HP(Y@=7LH<37TRK8*o1=uu4(c@P1)X zEEs*Lvtz2dK2c}5ZpjYbt@z>8gC?=r+fTnwR=wOHd%gfU)LHW*&UTPy0)Y()FGXXm z0*2%`n@Z?I28|9dZQsgs27+d1^8Jv9k;F_niH>i_$^u(Bw*d@Nmtt`Vv z#7kOJviA{8rAci3g)O6XaXrB=;v>*Z8Kvw>zud}M*I z3-dO~pf?rH_Rd7FSI)z>g$+Z6vZcxh=C~uG0y3G?O?ViI8?Ebx2L`yirn}-Xem+vX zCwEq`3s106`5r?>&r4kqLlaXa4x$T$@t(lV9#d*#y;)?}<>c|-1s4NoX~xRCn8Qjnl%1DLtINePcoZv;N=`|O3 z_6>xKIpq$0rw?;{8CrATg{`T;V=FlgW?+xjsNmm9(ax_lgX!^-fF6{-8!rW&_K1Y- z>ZRxEbGi}H``%YEv9}tQawbOe8oQbZqZy;HP#=ey=UN;(CbD3PE|yZmH0VlXj2kW$ zW#_)86#Z6ckQXq9NR_r%KGtFpg|PAhb2PF_Tm!FDe0j?pu2yQMcR_cwT@puNA3K5(SR#1%g|3hEF2FaaiTIzjnoN8g|5T=r}-45J=~?R+>D})H(%?1E@gd2`IHm|i8lQiLSWu?rqNbt`-n6X zs|!DRM%X7@CDGDFM~9=Z-jA!sqTqP0c5kTL>Cz?5)2SFyS$ge>y3WwDt+AUSgrdcpZBgV z-UAS_Te?d@1h17`8~FLqrWWL@Y~G_Rhz9D?(0;S6G0@1cZBRS4h}54DEmD+8TN7lh zK~tC65*t+==I{D8X^OD(ZR{x2+aUDZIcWuL>=ws}$R6cmc@|Mf@$O9pL6phRl;Ys> zxPb}N%~qb;8`+DL*N}gRBqdY)x`Uu`)CvwXd%)mQyQs@6vB%KfnAozO_R%V-@!6W4 zI-m7J471q8Hg2{y#)Ty~P*AnM7dOD0m9D#Q! zO$p11i5)C6WrGVe&+Z^HTn?!8r{2wF^YoJzo!jU^LZ$UAZBG<+d;I2c-}wb^CPk$EpX?6Dk>-Y=ED~L4 zn9(-Z1i6)O#V2NwLK%JGduE+iiM?zb4S7?U$)BqcYkUAcp;%CUK?dQJG4NrtzJP0s zAaj22%kyBiCqY`x#yWwnSU$$(OhJ9m2iJG968pKbOxy^kw3hCd9ZpT)QE%fNm{qTO z7c}kyqxE!fUFHG(ITRXfaxCH{hMijok;fz+JaCzuhtlx1^zKB6&i!wd%?v>=odBR zj42brhL&%nQMg025v^Vr?jH8JJiDslo@V5G z&fY4$gV$1F>pab|10NK9cTs!;d~OQIbolhn;&3c#I8Q*ekMA8*Fr5(KM@|9-sC_U} zGZp7^el#D9w${NFzfbk6eCgrQVZVxv735N-2^E=~4F>%_|SGdx6MSTPAZu4*Z}><1{;I z4O6!^{vM#zE{!XoUxC+W7{j!?QE|fd8w@aCezY0sK43c^aE*IGEWkBNe5X_fE1@az zqIplI?f_dYe0K#)Xx8{csf|p_!}OKwA1sc^=AZ&_W|S?8ucln`IYNi(%}0Ju>Q5Nt zt%?Ntcc?(R7rfAyl@|oPf;|Q+$QZU#OI3=qylPgl8EjZWbJRq;e)M7N@}o~7V%|IP zGt4(Snk5%Bo@iWh0bCPA&^iz48@u6JCBo)HT3_UW)4Twj5*VA62KIOfO%~E|my)La zq5+G!hiJyz%268wiE1R_QJ0s1Lc4(AwWwo+wI0)f+t`c0S(#D>g=8Ag*|BXxhOPH$ zeJ$@>mEK@((Kc(0@raUzKfjD)sv(oL18PThzg_(Sq_;VvJWkoS3B|`7n|e{raRFnx z{3bxZV!Wn^#$+gvZH&kE6Z6_^Cpu_ZIMLB_`2FnrD9+ekj`z!oN%9Bv6Ejs$>#Ygm zltM*|Dp_`~h}+BSzAu1BjT#@|q*Mk$cP@x6$;b2zOg#=$^huBvl1+KR`2HWayFE`& z>m)Eg3SlqunF9%etwC~45d~@{_{y=Z+Q~e*@G0ywoNTzDFZ9HC#=xCyHJW-oBCu=m zSi}b2h0*7XyH)2zg+$l&=X54UyOL@vz?@!_P7mlnq3{|tfk{yBu?s9)$}!^E{I09t z@1p1PMC6u@X|3dG8YM9{|hp08=ELnr5h@VjN&NeEInlQo|O4#LfOEN_fnvPblklzce zwS1tdffHj>%OdqhW9bg|{b{322b7PH#-cw$(LRPWS?LK$rB0Q!tXLcvnlah;ag20J ze_GOg$9ZjDfZNNlnu8>C>W;@=fG6ep1A;DglSI&ME{9fxIT};$t)=DwFO|A4@VRari)$}=~I`jFhFig8_MILD-jn<^YI8sUamAk0M8pn~ zE{tFM+?&@`G%Drb36+19R+Ssy4&PQSk3=+dwsNj`N+meEqWF|ylj> zRG{Z%vXd5tiu9ZKO{37euZ5v5$cs-_-GowW%-^>to}nLe_Y4KEjVeNtMidBMyR8Is zqXNx+yQO1VRx&%f-mcIy^j!1c;I#sl3ePZS==Xk$qW<-{Rn0FP>q00hI0nl z=zN6(+y_QumtO%I6O%_KO>9{`$n|z|vsk>E1@6#gw$?GaEd6=>K~Ms1YVJYfcG#|b z59T`RE39ue4Ym+ zQD|euEM>824G{w5_d4;&zH&5tVm-`2Cs(pFF3KGzpt~BT$G#GL3w7fid{j8&! zM>V3pEw6y2wOMo=HnDIuQir z_>CUV$#5Yk-Nvs7tiOOtoWSH98yi2~coU|v=bTHSedCutqheO))LdIT-D#*sMD znF=AH2KR_zoMtb1bZo`dkiE|mGI5XgvVB?#q4Kwh_zxaa#kNcqr8lj@1D}J^NcwEeU|K6cvu+3TH zhDZ9@qqx}NbWT-*=nY;#ujQlBJVw&<$f(aoIrr-ip)bfI-8-b>#*&54@0`&n%){~# zt}2;vv(uq<;_s}<87L7ALfOUX{^>5k*7wdIlT}qKdZN57RRG>_qStzH^9 zXeW{qIUM#9N9f?Z4v8Jo$+&+xGZ9`1Rou z6_vVAjNtDh|2Zqok9`2-%w^_N_+Q?()%Ez46xv(_e;0 z-RroycuADcYy;={WBsy^kDmAqoSNCpm8(@$MrNl=4jLkEz1nTWs!7@;-sRI*HTUe@ z+d3-}-Mz;C^+Zru-(#~=SB>;G+;j1g*d9iz3t3;8ThHsRbjggtBz6%y`H#J?7N30p*#CU3 zbcxE0EmWgEjkcSh;nazhjJmSp8*1#9!wU;4-QFmtS?4scJY;e9Jk ze`TY`i+3Fiww^do{@fXF9!=1D^G3R4s3?EQHM!z1-F-uF#8PW>eRHkPol*7fdRcY# z|ET5kb@u7+ZeG1My-ok-%~6}L9dO#X$}W^;!Ai$}#F0zNq#^cSd#_}x|Lsq<>3t~H zCc^DR8sLZwZXvW?1pw{Pn+q*QI=umm{8nnP4tOcO#AQhAogrz9OMWpD1QCV(C-$L|5sl+4PN zIjtqb$=^<*C6h;&sI-3^2EuthZ1rE69W_#7m~nke@?sZC$Wd*Tg%wxC*)rH#c^_cW zB|bPH9gf<}x5gs=G##o1$H7;>36?JLcr@y_Vx{%{&?se}{lR3qwcWge`+J&4{ya0z z@9eXbR$pD5uDBrpV2&&Lte=G{EtOpKN63rC;=A~>B)KQo546YR`j*X7^D&`OORo8? z7_<)EE52y-Tl7ZBUHn=47caeL>EBELFYNk~m0%Z2s1)E|hv?$4{ua=^4~^q=UIAkB z4niE8=-98xJhQV8>H7!>upV)MeG62r19JVq%0QHC$rDFO!Tot(C8!nuDz{RC(*o@Q z-2fk6rAue;&<8R#mlNg{+0rOe)>;1%16J8zQEaEH_rf(It8SaTXIq zY29Z(iG6>G)y>e9h(9L+ez|_eFQp}6rhjwu9~tO<$!X&mX0iB7x^1{xOiT6J3sg`3 zG*h+77t3tCA`aVNP`7mwP>%f>kpObtl1*2|u?ZA?3#>!$zIEYj*;b5ZrZ>#gDQdxA zmIp_r0b097R*NAmR|FI$V!j=cZg}uK05B^%iN4K4e@;a1hsME!!#czS7^rLZ{E?6K zoV;h4&HT+fMl)oSjBg`D*dl+ zXTq;DSDMLsXaL>5xWP`!8ELISU?c7(&YLy=be>7S2mtXHyGD->ak~?-rP2_nj{iP& z`q5P`N!=wDTa7oIlJMH0BAKYDuMDhX05II=uO&=czj^hxZC|kIcHPp@X!*w{rzHp} z-M#y+ec`x>{z-sX-+e7nIVR4BmX&=$;@udE;In6gkDrpTcxBq+l`Fs6xo&{ZAAKz$ z+6_TUDym=9mL-Lr0T(YVIe1FKw*Au$?d-mQiClODz`OUndMyb{S)c1S7k*I(ajKb* zpBw#|F*Qs9rL z8>)!04d7_si+Dt0Xq;EDb%>;>Hd=97T-(=`$lMU~XaMGb8<807OK_scE4$PI^~fHe zevg*7HWvrPep%f$#Q?+rA-w84IGPLh&piMDo_KMm?``Hp)5nWkQ@)83C&IRe;DBAKnEdnBI+hj96cQ{XYf4(sET_H(H<3( zqJLB`-58sL#gL-h+BSI<24JM}{LZ)Nuavry!mPz&2=Tk<+HHsgl7jDs;JJ{mMLYzAM1r$Xy7uxVZI@UAu8l$}33% zn$~F*WxKzX$Xvzc=OOyzHAXLYd@eb4TL*jf*Y*T>tJf>FgJhJUtygZhAMr zRBgp6uFz<@Cb+%)apT9&`Ub!-N@ zJoxO1&qO(G<@a9!06+^UDnMC&zuoXa*k2ia6sw`vep+>*TCn&Mej5}40(!r_WZ~Kx z>?{gMIv>T%4zWike>W+Lw?c2Z3{X@6_1Cqf7x&K)e@Wf2veS3etpiB4U+RCHBeG(i zIbUKu<@upNWwDO4#cd*E06xTsC))*CBUbuD61?EzwgqI zH^5$!3_C}GLZe67e#4b(Ju}6Cq?T9`Atfti1<;MJ+pzn#ZXCV+M>qnK{NjHq5vkn$ER4i4{?8LlKjEj3&%#)I!NwUO1CPq5F=j~V{_vx}YY*6tGKQE71q zf4A^OTu&Zw-guvXboUj7l~$FLZhFg$fvEc~Ijd1tQS-N$zYcoxXve;5AWZ{B*$^>4 zezy*P6IvEViM|RfVR`Pq`w~(jWKp_n_M~hKj_9%m`a(lRCSs3Y7YWGS_Ah_>Hc|my zq_Zcam53!k$EYDF1}Mf>A5sS7^va|2zMX&pohkdp;$2~(;tszQWCsw5_w|ZT1KDHg zw~-E*2e^EAwbyc4aUV<8>N0@nTl|7k*jo(OekThb15!IMMxZS2p(z)91Q5b{Oxj|^ z`r5(oAm!7&FLwZjoITcZ`xbJ705#x4{$HKP717vIXxaRhygk+2v44Q@-W^}c{3Qre+HHlC6L-gYe-m?} z#q-;NhKocs5BVn&C_wmCfxb7;Vmk=LTZkl)N*V6wa;2*WN z&GbT6|8*(`*ghcqsj32<$=d+cUoA<=l0Ly-Q$YQ_;(j84f&i?E+1Y}}Z^IWtrduM? zf5}U%0i{jSnE0mzpmnp|ntw*W5sP?#pZZcRd{(XdXAIIdG&zbj{I}5HDgXV31V@AI zW+A3(A5N_H!p{u!%=YXh-STe^^n5DAH<*Sx*vh%-qX2hBH4&z8g%J0E49e*qEM{XudfJ z@<{^LGkSUP%O3jlgwVHUG(SngW6K{unH7R&+x;_ROWzm={iI(5s|%CNa(>pz{&!j2 z=ZY^d?sfC1)%q{x$dT`jBYtnT?yGZtV+`~^_?#(wUi^Z}fB(NRU42n@+YTTy{?*3G z85G)Mb6{|Gx(^|)8YL?3QXsd9xw53a{H4nCSl?Itu)$1YL_B6A`SefXOf%iW`&z5I zD61?UoSkKMvj}lToYW-U!f(uJv<8KW2WMxRfZ{QG@sy0oBXRzeG$y~%PGomT=77Jk zoSM4-kmXzlo;}bz{AJ@q{A9p~`k%gN?MNO}_ucJ_xeF8Oc=745XH z>uIQ{s5B+ae(3<~Bgkm)-Zh_|UHqNOYr{aW8CmcEK|e-VEKA`DIkr97@De5=mQZ|+ z*M)PLWJ?i7>!<!zV1k{4hcNZZI!N;79QzW1&9hf9rP@vNg00 z?cHm)YxdEgUleKRT9^p~YZp&}Npoeq5DG4~1ZZU65-9qWa3C)n|e zjD-RzyZ{6f8Z|i?2x3L@##V?$9O5vA=hyZe#d{7e;9QIJGU8h@c5;tK|O&t2t(<+5FtXY33QS`fuc^0rYhihFuYTmbDt-< za+pJeBS(#~5c^3Qm2!`_)?&g4xa*18uhCy*UJIf!t5unFsGp=D8942Zm%Ct_8Gb#)OcOq z7+w~UR2PEEr*lB64kM#MV4*8v2dYOv5L{shdz<7B4}ejlx@d>Oenwx2$JF|fC-kI9 z2zgXECGr{8;CG$C=Bo_CX&D@3+;oI@PZ-> zc(%}~HsaC>>M0Q$7TBAJV!nDx;NgksQ>XPjDxO>va&!sup@qXGqWsCsE{K6J_Nk~J z(eFHI$q+Q-puFRpu|^u2Dy$$@Og6(N0_J(H{nDyr&`7uwom-6U7x5?zO6GtmSlHn) z=tot>nCl5a=(JTr9;s5H!2!z4BNBXIW?5G+W)H@RxD?_tLl~b}D*S-lu~ned-yq^z zU?vCoj#ps3T0}HhG%`Agivfqik+eihodx<6C$#w8PLJn8@j5k~r?ox!S*#cVOO~=& zd9bgg30pYVF@?M7l?4!sc4t31|3Wqq5^$*&1RcBM$D9u{_R44MCcSP*>`Etya8J=F zZmTf}I_edNk?}CmK_R z-&Zd5%9W#C5RID(f7Pq2$}&YB1D0YHl0Hjz)3C{cjFK2K{H&F+1RX9TsSbxg|d5FukogmEnxv;u5;vp3mdz_Bz2 zHJXtQVeiPhXK}X$WJcQ{{!1pa5BjZ2&xcSZ9urCHd|*m^GKt-Y%j;b!uWw)L(Fd)V zyw{D|E@~ozh79;=BC`6M2K+_n<=A=a#gSAwho$@*khai1Ww>qLD=A4!~b$LtfU zb5FC45DV_tyvgT|MM5Vzft3%DQ0_9!WK9{c5@0Asl^Wkqul!=OQQ9ef15c z7=CR)0H;w0E+RHnQ@lxVswV6r+Y8aT`+kTG7#Qy%2A* z!GUaQrBS%GMhIHhL`QdCsQjSCPLLpH<0r)U4HnSEGnk+gxV5Nkt!?9i_xNr7RMURA z3%{roq{^5q#)2X%)hWmO`?2jT^kh;EBLO;Am)H-r$rUNAX#<`eZo&$9gM2I}pf3>< z2c1L{`1?88q?NpNJSC3a7>-3X$fIK;6b1E=U}!xSR-MW#(e00HpSTBB7e=r{14Xvb zGn)%1qe>@uHvFaCG$Ox=z+>a6O@g8Uj))zKdgEIPmW1RV-*%gfRdQ=;LUA$B=7t9y zNFaLgTJP|~;28XC2iOpc8W=C?s<3gpcuTVdnSpqQ5oHdziW*GiM{WtZSth9Cy&Qu! zmhnRd_XDY)8o=qT#Jda?jyr%S>3pJ79moN}hyz=mY%p*~*rw2GIh_A*i?4zzKqYt~ z_oBPJ_Op2X=cn^)KCFM&6|Wz&=@0w&f5-puzmt9HZ&LPt&*m@RuDILZ5%vA)-xQdvH8WdUr(XPL6%APn7@vB>y&_?Oxsa zk4NQs-bilihY|1YxdD(9OY7%w6ycyk7{md4Xo z2skwT|DXSnzxtNH>H7aZ|DT|IHZX_Hg`GDsWx>83t3g$KN)s$)x&Xm42l#$%V4~$3 um4fYF9}SJsv@x0;hF0P5eedU8|K)Qx{he3f{2`wK2s~Z=T-G@yGywpm>pl7a literal 0 HcmV?d00001 diff --git a/src/Documentation/keyboard_shortcuts.html b/src/Documentation/keyboard_shortcuts.html index ec220925d..6d9b5f91c 100644 --- a/src/Documentation/keyboard_shortcuts.html +++ b/src/Documentation/keyboard_shortcuts.html @@ -60,7 +60,7 @@

Keyboard Shortcuts

- +
diff --git a/src/Documentation/legend.html b/src/Documentation/legend.html index fa78e3269..34921e462 100644 --- a/src/Documentation/legend.html +++ b/src/Documentation/legend.html @@ -94,7 +94,6 @@

Legend

Flying = Bat or Bird
 Obstacle = Wall or Lava or Water

- diff --git a/src/Documentation/leveleditor.html b/src/Documentation/leveleditor.html index 377d442dd..a3326e418 100644 --- a/src/Documentation/leveleditor.html +++ b/src/Documentation/leveleditor.html @@ -83,7 +83,7 @@

The Level Editor

If you've messed with the map so that it's not in a state that can be converted faithfully into single-character glyphs, the editor will output the closest approximation it can find.

-Tip: you can press the E key while playing the game in the editor to toggle the level editor. If you press R, it resets to the last time the editor was toggled. +Tip: you can press the E key while playing the game in the editor to toggle the level editor. If you press R, it resets to the last time the editor was toggled.

Also, if you hold CTRL (or, on a Mac, CMD) and left click on the text of a level in the script editor or the console, it will load it in game.

diff --git a/src/Documentation/levels.html b/src/Documentation/levels.html index 2df575ae5..61e2902a4 100644 --- a/src/Documentation/levels.html +++ b/src/Documentation/levels.html @@ -83,9 +83,12 @@

Bird's-eye view of a PuzzleScript file

Levels

- Here's where all the fun happens. A level section of a file looks something like this: + Here's where all the fun happens! A level section of a file looks something like this:

-


+    
=======
+LEVELS
+=======
+
 #########
 #.......#
 #.*.*.O.#
@@ -96,14 +99,12 @@ 

Levels

MESSAGE Woah, that was tough, eh?! - ######### #.....@.# #.P.*.O.# #.......# ######### - ######### #.....@.# #.P.*.O.# @@ -121,7 +122,7 @@

Levels

What stuff is hard to do?

-Branching. I have no support for it in terms of this level structure. If you want a continuous open world you can set zoomscreen or flickscreen in the prelude. +Branching. I have no support for it in terms of this level structure. If you want a continuous open world where you don't see everything all the time you can set zoomscreen or flickscreen in the prelude.

If you can think of an elegant way to implement level branching in the engine, let me know, and I'll consider it : ) diff --git a/src/Documentation/prelude.html b/src/Documentation/prelude.html index b1d449efc..67346752e 100644 --- a/src/Documentation/prelude.html +++ b/src/Documentation/prelude.html @@ -124,54 +124,66 @@

Prelude

The amount of time it takes an 'again' event to trigger.
background_color blue
Can accept a color name or hex code (in the form #412bbc). Controls the background color of title/message screens, as well as the background color of the website. Text_color is its sibling.
-
debug
+
debug
This outputs the compiled instructions whenever you build your file. For instance, the line

-

[ > Player | Crate ] -> [ > Player | > Crate ]
+
 Edit[ > Player | Crate ] -> [ > Player | > Crate ]

- is compiled into four instructions, as the output from debug shows: -

Rule Assembly : (4 rules )
+			is compiled into four instructions, as the output from debug shows when you hit 'RUN':
+			
===========
+Rule Assembly : (4 rules)
 ===========
-(52) UP [ up player | crate ] -> [ up player | up crate ] 
-(52) DOWN [ down player | crate ] -> [ down player | down crate ] 
-(52) LEFT [ left player | crate ] -> [ left player | left crate ] 
-(52) RIGHT [ right player | crate ] -> [ right player | right crate ] 
+  (83) DOWN [ crate | up player ] -> [ up crate | up player ]
++ (83) DOWN [ down player | crate ] -> [ down player | down crate ]
++ (83) RIGHT [ crate | left player ] -> [ left crate | left player ]
++ (83) RIGHT [ right player | crate ] -> [ right player | right crate ]
 ===========
- the number on the far left is the group number of the disassembled - based on the line-number of the rules. The compilation step removes all relative directions ( ^, v, <, and >), and replaces them with UP, DOWN, LEFT, and RIGHT. + Going from left to right: +
    +
  • + The number near the left is the line-number the rule came from in the original source code. You can click on the number to jump to that line in the file. +
  • +
  • + A plus-sign on the left of the line indicates that the rule is grouped with the previous one as part of a rule-group and the engine will loop through the group as a whole trying to apply the rules until no more rules in the group can be applied (See the rules page for more info). +
  • +
+

+ The compiler does a lot of stuff to the rules you give to it to 'simplify' them in various ways. One thing it does for instance is replace all relative directions ( ^, v, <, and >), with UP, DOWN, LEFT, and RIGHT, which often involves splitting a single rule into many more rules (as above). An other thing you'll notice is that the core engine has rules only going DOWN and RIGHT - rules in other directions are flipped. For more information about directions in puzzlescript, see this page. +

flickscreen WxH
- Setting flickscreen divides each level into WxH grids, and zooms the camera in so that the player can only see one at a time - the camera does not follow the player around on a move-to-move basis, but if the player moves from one part of this grid to another, the camera flicks to the new position. + Setting flickscreen divides each level into WxH grids, and zooms the camera in so that the player can only see one at a time - the camera does not follow the player around on a move-to-move basis, but if the player moves from one part of this grid to another, the camera flicks to the new position. See Legend of Zokoban for a cute example.
homepage www.mypage.com
- The homepage of the author. This doesn't appear directly in the game itself, but is included in the exported HTML build. + The homepage of the author. This doesn't appear directly in the game itself, but is included in the shared game and exported HTML build.
key_repeat_interval 0.1
- When you hold down a key, how long is the delay between repeated presses getting sent to the game (in seconds)? + When you hold down a key, how long is the delay between repeated presses getting sent to the game (in seconds)? The default value is 1.5.
noaction
-
Hides the action key (X) instruction from the title screen, and does not respond when the player pressed it (outside of menus and cutscenes and the like).
-
norepeat_action
+
Changes the action key (X) instruction from the title screen, and does not respond when the player pressed it (outside of menus and cutscenes and the like).
+
norepeat_action
For many games, you don't want holding action down to retrigger it - games where you're toggling a switch, say. For these games, set norepeat_action, and the action button will only respond to individual presses.
noundo
-
Disables the undo key (Z)
+
Disables the undo key (Z) (I generally advise against disabling undo, FWIW).
norestart
Disables the restart key (R)
-
realtime_interval
+
realtime_interval
The number indicates how long each realtime frame should be. In the above case, twice a second the game engine will tick, but with no input. Player input is processed as regular. See this documentation for more info on making realtime games.
require_player_movement
This is a common requirement in games - if the player doesn't move, cancel the whole move. This is equivalent, where there's only one player character, to the following: -
[Player]->[Player Temp]
+			
[ Player ]->[ Player Temp ]
 late [ Player Temp ] -> CANCEL
 late [ Temp ] -> [ ]
run_rules_on_level_start
- For some games, you will want, before the player sees the level, for the rules to be applied once. + For some games you will want, before the player sees the level, for the rules to be applied once. (Games that have rules that generate level graphics on the fly, for instance, may want this. Try out this game with and without the prelude option and compare results.)
scanline
Applies a scanline visual effect - only draws every other line
@@ -181,10 +193,10 @@

Prelude

The name of your game. Appears on the title screen.
throttle_movement
For use in conjunction with realtime_interval - this stops you from moving crazy fast - repeated keypresses of the same movement direction will not increase your speed. This doesn't apply to the action button. If you can think of an example that requires action be throttled, just let me know and I'll try accommodate you.
-
verbose_logging
+
verbose_logging
As you play the game, spits out information about all rules applied as you play, and also allows visual inspection of what exactly the rules do with the visual debugger.
zoomscreen WxH
-
Zooms the camera in to a WxH section of the map around the player, centered on the player.
+
Zooms the camera in to a WxH section of the map around the player, centered on the player. Silly example.
diff --git a/src/Documentation/privacypolicy.html b/src/Documentation/privacypolicy.html index 22fe24a25..945601b90 100644 --- a/src/Documentation/privacypolicy.html +++ b/src/Documentation/privacypolicy.html @@ -80,7 +80,7 @@

Privacy Policy

- To create a shareable link to your game on puzzlescript.net, you need to authorize with your github account. Then, when you hit share in future, a publicly-accessible copy of your game is uploaded to a gist in your account. + To create a shareable link to your game on puzzlescript.net, you need to authorize with your GitHub account. Then, when you hit share in future, a publicly-accessible copy of your game is uploaded to a gist in your account.

If you have any questions about this, hit me up at analytic@gmail.com. diff --git a/src/Documentation/randomness.html b/src/Documentation/randomness.html index 16bf25216..35e619223 100644 --- a/src/Documentation/randomness.html +++ b/src/Documentation/randomness.html @@ -69,13 +69,13 @@

Randomness

and then use this in your script

-

 Edit[ RobotSpawn no robot ] -> [ RobotSpawn random Robot]
+
 Edit[ RobotSpawn no robot ] -> [ RobotSpawn random Robot ]

You can only really use randomness once per cell - if you have several random statements they're all munged together. For instance, the above rule is identical to writing

-

[ RobotSpawn no robot ] -> [ RobotSpawn random RedRobot random GreenRobot random BlueRobot]
+
[ RobotSpawn no Robot ] -> [ RobotSpawn random RedRobot random GreenRobot random BlueRobot]

If you want to have a rule applied a single time, at random (if possible) do this:

@@ -85,11 +85,11 @@

Randomness

If you want a robot to move in a random direction each turn*, do this:

-

 Edit[ Stationary Robot ] -> [randomDir Robot]
+
 Edit[ Stationary Robot ] -> [ randomDir Robot ]

-* WARNING: random object movement is super unfun in most situations. Do not use this if you think it's going to be fun unless you're REALLY sure it's going to be fun. Predictable movement tends to work a lot better in puzzlescript games. See this demo for an example of deterministic entity movement. +* WARNING: random object movement is super unfun in most situations. Do not use this if you think it's going to be fun unless you're REALLY sure it's going to be fun. Predictable movement tends to work a lot better in puzzlescript games. See this demo for an example of deterministic entity movement (But even in this example it's not easy for the player to understand what happens when they try to walk into a spot and another character is trying to walk into the same spot. It's tricky to have independently-moving creatures, even without having randomness on top).

diff --git a/src/Documentation/realtime.html b/src/Documentation/realtime.html index 1498a65d1..1cc95c300 100644 --- a/src/Documentation/realtime.html +++ b/src/Documentation/realtime.html @@ -62,7 +62,7 @@

Real-time Games

-If you want your game to work in real-time, set the realtime_interval tag in the prelude. +If you want your game to work in real-time, set the realtime_interval tag in the prelude.

realtime_interval 0.5

@@ -77,16 +77,17 @@

Real-time Games

[ moving Player ] [ c ] -> [ moving Player ] [ d ]

-Because you're working on a realtime game, you might want to limit the speed at which a player can move - you can do this with the throttle_input prelude switch. +Because you're working on a realtime game, you might want to limit the speed at which a player can move - you can do this with the throttle_movement prelude switch:

throttle_movement

-With this switch, if you press the same direction multiple times in rapid succession, you'll still move no more quickly than key_repeat_interval. You can still alternate directions quickly, and press action as quickly as you like. +With this switch, if you press the same direction multiple times in rapid succession, you'll still move no more quickly than key_repeat_interval. You can still alternate directions quickly, and press action as quickly as you like.

A small note on the interaction of realtime and again:

If again is triggered, no realtime ticks will happen until the again stuff has finished.

+ Note: Apologies for not including any examples here. Other people have used realtime a bunch to varying effects, some of which I like, but I'm still trying to find a good simple example that shows it off at its best. Drop me a line if you have a suggestion for a good example. :) diff --git a/src/Documentation/rules.html b/src/Documentation/rules.html index 0ec2066e1..ee95a8513 100644 --- a/src/Documentation/rules.html +++ b/src/Documentation/rules.html @@ -87,7 +87,7 @@

Rules

Rules are about pattern replacement. There's a left side, and a right side, the engine looks for occurrences of the left side, possibly in many different orientations, and when it finds one, it replaces the contents with what's on the right.

- Let's look at the standard sokoban more closely. + Let's look at the standard sokoban example more closely:

[ > Player | Crate ] -> [ > Player | > Crate ]

@@ -103,7 +103,7 @@

Left-hand Side

[ Player Spikes ] -> [ DeadPlayer Spikes ]

- If one wanted to match any player movements, not just movements towards the crate, one can replace the arrow with the MOVING keyword. + If one wanted to match any player movements, not just movements towards the crate, one could replace the arrow with the MOVING keyword.

[ MOVING Player | STATIONARY Crate ] -> [ MOVING Player | MOVING Crate ]

@@ -115,7 +115,7 @@

Left-hand Side

It's possible for a rule to search for several disconnected bits. For instance, you could have a bird that vanishes whenever the cat tries to jump up:

-

[ UP Cat ]  [ Bird ] -> [ UP Cat ] []
+
[ UP Cat ]  [ Bird ] -> [ UP Cat ] [ ]

It's possible to restrict rules to only operating in particular directions - for instance, the following removes anything that steps on lava:

@@ -137,7 +137,7 @@

Left-hand Side

and never finish compiling.

- A point that might occasionally be relevant : ellipsis-based rules search from smallest to biggest. + A technical point that might occasionally be relevant : ellipsis-based rules search from smallest to biggest.

Right-hand Side

If we had the following rule

@@ -153,7 +153,7 @@

Right-hand Side

[ > Player |  ] -> [ > Player | NO Wall ]

-

Commands

+

Commands

Sometimes you want other things to happen than to just replace tiles with tiles. That's what commands are for.

@@ -164,7 +164,7 @@

Commands

In several games, it's important that if the player can't move, nothing else can happen either - so that you can't make time tick forward by repeatedly walking into walls. There's a prelude setting for this, require_player_movement, but you can also simulate it as follows
[ Player ] -> [ Player Shadow ]
 late [ Player Shadow ] -> CANCEL
-late [Shadow] -> []
+late [ Shadow ] -> [ ]

At the start of the turn, you put a counter on the square the player's in, and if they're still together after the movement phase, then cancel the whole move.

diff --git a/src/Documentation/rules101.html b/src/Documentation/rules101.html index 02e131c2e..f3adb9e9e 100644 --- a/src/Documentation/rules101.html +++ b/src/Documentation/rules101.html @@ -98,7 +98,7 @@

Rules 101

  • An optional extra stage for rules you want to apply at the very end.
  • -What might you want to do after movements have been applied? Say you want three crates in a row to vanish (a la block faker), you do this by adding the following rule: +What might you want to do after movements have been applied? Say you want three crates in a row to vanish (a la block faker), you do this by adding the following rule:

     Editlate [ Crate | Crate | Crate ] -> [ | | ]

    @@ -116,7 +116,7 @@

    Rules 101

    late [ Sprite | ... | Player ] -> [ Player | ... | Sprite ]

    -No wait! Don't type that in! It causes an infinite loop, it keeps swapping them back and forth forever. This fixes it: +No, wait! Don't type that in. It causes an infinite loop, it keeps swapping them back and forth forever. This fixes it:

     Editlate [ Sprite | ... | Player ] -> [ Temp | ... | Sprite ]
     late [ Temp ] -> [ Player ]
    diff --git a/src/Documentation/sounds.html b/src/Documentation/sounds.html index 60be63dfb..539c45ea1 100644 --- a/src/Documentation/sounds.html +++ b/src/Documentation/sounds.html @@ -92,11 +92,11 @@

    Sounds

    A sound section could look like the following:

    -

    player move  up 142315
    -Player Move  down 142313
    -Player Move  right 142311
    +    
    Player Move Up 142315
    +Player Move Down 142313
    +Player Move Right 142311
     Crate Move 412312
    -Player CantMove up 41234
    +Player CantMove Up 41234
     Crate CantMove 41234
     Crate Create 41234123
     CloseMessage 1241234
    @@ -166,6 +166,7 @@ 

    Sounds

    Played when the player presses the undo button (Z).
    + move and cantmove can be supplied with directions, so that certain sounds play if you move in particular directions. diff --git a/src/Documentation/visual_debugger.html b/src/Documentation/visual_debugger.html index d1fa00bb3..9368aa3f4 100644 --- a/src/Documentation/visual_debugger.html +++ b/src/Documentation/visual_debugger.html @@ -61,7 +61,7 @@

    Visual Debugger

    -If you run a game with the verbose_logging prelude option you can avail yourself of the visual debugger. +If you run a game with the verbose_logging prelude option you can avail yourself of the visual debugger.

    As you play a level with this option, you'll see information about what rules were applied. By hovering over them (or tapping them on touchscreen), you can see the state of the level after the indicated rules were applied:

    diff --git a/src/Documentation/winconditions.html b/src/Documentation/winconditions.html index 393c93a63..2ba1faf3a 100644 --- a/src/Documentation/winconditions.html +++ b/src/Documentation/winconditions.html @@ -86,24 +86,24 @@

    WinConditions

    Here are the possible formats of win conditions:

    -

     (neko puzzle - you win if there's no fruit left)
    +    
    (Neko Puzzle - you win if there's no fruit left)
     No Fruit
     
    -(sokoban - you win if every target point has a crate on it)
    +(Sokoban - you win if every target point has a crate on it)
     All Target On Crate 
     
    -(you win if Love exists somewhere)
    +(You win if Love exists somewhere)
     Some Love 
     
    -(you win if there's some gold in the chest)
    -Some gold on chest 
    +(You win if there's some gold in the chest)
    +Some Gold on Chest 
     
     (you win if all gold has been taken from the chest)
    -No gold on chest
    +No Gold on Chest

    If you have multiple win conditions, they all have to be satisfied.

    - These should do for most games, but if you want more advanced control over winning and losing, then you can specify your own win rules using commands. +These should do for most games, but if you want more advanced control over winning and losing, then you can specify your own win rules using commands. diff --git a/src/demo/dreizack.txt b/src/demo/dreizack.txt new file mode 100644 index 000000000..24e903684 --- /dev/null +++ b/src/demo/dreizack.txt @@ -0,0 +1,1322 @@ +title Des Poseidons Dreizack +author Stephen Lavelle +homepage www.increpare.com + +text_color #e7cf5c +background_color #041646 + +noaction + +run_rules_on_level_start + +again_interval 0.1 +(verbose_logging) + + +(flickscreen 14x13) + +======== +OBJECTS +======== + +Background +blue #204ec5 +00000 +01000 +00000 +00010 +00000 + +smrocks k +brown darkbrown +.1.1. +10101 +.1.1. +10101 +.1.1. + +teleport T +lightblue blue darkblue +10101 +01210 +12221 +01210 +10101 + +Target +darkblue transparent +01110 +1.0.1 +10001 +1.0.1 +01110 + +Wall +green lightgreen #2d6d0c +00000 +00010 +00000 +01000 +00000 + +wallalt " +green lightgreen #2d6d0c +00000 +00000 +00000 +01000 +00000 + + +wallalt2 ' +green lightgreen #2d6d0c +00000 +00010 +00000 +00000 +00000 + +coast_u +lightblue +.0.0. +..... +..... +..... +..... + +coast_d +lightblue +..... +..... +..... +..... +.0.0. + +coast_l +lightblue +..... +0.... +..... +0.... +..... + +coast_r +lightblue +..... +....0 +..... +....0 +..... + +endhand x +pink +0.0.0 +..... +0...0 +..... +0.0.0 + + +Player +brown orange yellow lightblue +2.2.2 +2.2.2 +22222 +..1.. +.313. + +underplayer +lightblue +..0.. +..... +..... +..... +..... + +magnet +lightblue blue +.0000 +0.... +0.000 +0...0 +.000. + + +flowers +darkgreen brown +.000. +00000 +.000. +..1.. +..1.. + +hinge H +orange green darkgray +10001 +02220 +02220 +02220 +10001 + +door_l L +pink darkgray transparent +.2.2. +0000. +11110 +0000. +.2.2. + + +door_r R +pink darkgray transparent +.2.2. +.0000 +01111 +.0000 +.2.2. + + + +door_u U +pink darkgray transparent +.010. +20102 +.010. +20102 +..0.. + +door_d D +pink darkgray transparent +..0.. +20102 +.010. +20102 +.010. + + +door_dl 1 +pink darkgray +..... +..00. +.010. +010.. +10... + + +door_dr 2 +pink darkgray +..... +.00.. +.010. +..010 +...01 + + +door_ul 3 +pink darkgray +10... +010.. +.010. +..00. +..... + +door_ur 4 +pink darkgray +...01 +..010 +.010. +.00.. +..... + +ul +orange +0.... +..... +..... +..... +..... + +ur +orange +....0 +..... +..... +..... +..... + + +dl +orange +..... +..... +..... +..... +0.... + + +dr +orange +..... +..... +..... +..... +....0 + +wu +green lightgreen +10101 +..... +..... +..... +..... + +wd +green lightgreen +..... +..... +..... +..... +10101 + +wl +green lightgreen +1.... +0.... +1.... +0.... +1.... + +wr +green lightgreen +....1 +....0 +....1 +....0 +....1 + +suck_d +lightblue +..... +..... +.0.0. +..0.. +..... + + +suck_u +lightblue +..... +..0.. +.0.0. +..... +..... + + +suck_r +lightblue +..... +..0.. +...0. +..0.. +..... + + +suck_l +lightblue +..... +..0.. +.0... +..0.. +..... + +temp +transparent + +A +transparent + +S +lightblue +.0.0. +0.0.0 +.0.0. +0.0.0 +.0.0. + +nopull +transparent + +spawned +transparent + + +ip1 § +#ffff05 #ffa33b +0.0.0 +0.0.0 +00000 +..1.. +..1.. + +ip2 ± +#8e4833 +..... +..... +....0 +....0 +....0 + +ip3 ` +#8e4833 #dbc297 +..... +00000 +11111 +1.1.1 +11111 + +ip4 ~ +#8e4833 +..... +..... +0.... +0.... +0.... + +5 +#ffa33b #dbc297 +..0.. +.111. +.111. +.111. +..011 + +6 +#8e4833 #dbc297 +....0 +....0 +..... +..... +....1 + +7 +#8e4833 #dbc297 +00000 +01110 +00000 +00000 +10001 + +8 +#8e4833 #dbc297 +0.... +..... +..... +..... +1.... + +9 +#ffa33b #dbc297 +..0.1 +..... +..... +..... +..... + +0 +#dbc297 white +0..00 +00000 +.00.0 +....1 +....1 + +bla ! +#dbc297 white +00000 +00000 +00000 +10000 +11100 + +blo @ +#dbc297 +00... +000.. +000.. +0.00. +..00. + + +(BLANK) + +ble £ +white +....0 +....0 +....0 +...00 +...00 + +ble1 $ +white #dbc297 +00000 +00000 +00000 +00001 +00011 + +ble2 \ +#dbc297 white +..00. +1.00. +1000. +1000. +100.. + +(SKIP) + +ble3 Y +white #dbc297 +...00 +...00 +....1 +....1 +....1 + +ble4 & +white #dbc297 +00111 +1.111 +1..11 +1..11 +1..11 + +ble5 * +white +0.... +..... +..... +..... +..... + + +ble6 - +#dbc297 +..... +...00 +..... +..... +..... + +ble7 = +#dbc297 +0..00 +0.000 +..... +..... +..... + + + + +======= +LEGEND +======= + +. = Background +# = Wall +P = Player +M = magnet +O = Target + + +walls = wall or wallalt or wallalt2 +ortho = door_u or door_d or door_l or door_r +diagonal = door_ul or door_ur or door_dl or door_dr +Door = ortho or diagonal +doorpart = door or hinge +obstacle = walls or player or hinge or magnet or door or smrocks +thick = wall or hinge or magnet or door or teleport + + +fixture = wall or hinge + +pixel = ul or ur or dl or dr +walltype = wall or wallalt or wallalt2 + +fillwalltype = wall or hinge + +suck = suck_u or suck_d or suck_l or suck_r + +coast = coast_u or coast_d or coast_l or coast_r + +verge = wl or wr or wu or wd +decoration = coast or verge + +% = flowers and wall + +image = ip1 or ip2 or ip3 or ip4 or 5 or 6 or 7 or 8 or 9 or 0 or bla or blo or ble or ble1 or ble2 or ble3 or ble4 or ble5 or ble6 or ble7 + + +======= +SOUNDS +======= + +sfx0 1415300 (swing) +sfx1 7555504 (cantmove) +sfx2 16800907 (whirlpool move) +sfx3 77044105 (teleport) +sfx4 43993702 (whirlpool destroy) +sfx5 43993702 (whirlpool create) +endlevel 30657706 + +player cantmove 7555504 + +================ +COLLISIONLAYERS +================ + +Background +coast_u +coast_d +coast_l +coast_r +A +Target +S +underplayer +teleport +endhand +Player, Wall, wallalt, wallalt2, magnet, hinge, door, smrocks +flowers +ul +ur +dl +dr +wu +wd +wl +wr +temp +suck_u +suck_d +suck_l +suck_r +nopull +spawned +image + +====== +RULES +====== + +[ player teleport no spawned | ... | teleport ] -> [ teleport | ... | player teleport spawned ] sfx3 + +[ teleport magnet ] -> [ ] sfx4 + +[decoration]->[] +[underplayer]->[] +[A]->[] +[temp]->[] +[suck]->[] +[nopull]->[] + +right [ walls | ]->[walls | coast_l ] +left [ walls | ]->[walls | coast_r ] +down [ walls | ]->[walls | coast_u ] +up [ walls | ]->[walls | coast_d ] + + + +up [ walls | no walltype ] -> [ walls wu | ] +down [ walls | no walltype ] -> [ walls wd | ] +left [ walls | no walltype ] -> [ walls wl | ] +right [ walls | no walltype ] -> [ walls wr | ] + +[pixel]->[] + + +[ > magnet | door ] -> cancel + + + +[ > Player | magnet ] -> [ > Player | > magnet ] + +[ > magnet | no obstacle ] -> [ | magnet ] sfx2 ++ [ > player | no obstacle ] -> [ | player ] ++ [ > player | no obstacle ] -> [ | player ] + + +[player no spawned] [ spawned] -> [player] [] + +[ magnet ] -> [ magnet suck_u suck_d suck_l suck_r ] + +up [ suck_d | no thick ] -> [ suck_d | suck_d ] +down [ suck_u | no thick ] -> [ suck_u | suck_u ] +left [ suck_r | no thick ] -> [ suck_r | suck_r ] +right [ suck_l | no thick ] -> [ suck_l | suck_l ] + + +[S]->[] + + +up [ suck_d | door | no suck_u ] -> [ suck_d | down door S | ] + + +down [ suck_u | door S | no suck_d ] -> [ suck_u | stationary door S | ] +down [ suck_u | door no S | no suck_d ] -> [ suck_u | up door S | ] + + +left [ suck_r | door S | no suck_l ] -> [ suck_r | stationary door S | ] +left [ suck_r | door no S | no suck_l ] -> [ suck_r | right door S | ] + + +right [ suck_l | door S | no suck_r ] -> [ suck_l | stationary door S | ] +right [ suck_l | door no S | no suck_r ] -> [ suck_l | left door S | ] + +[ > player | door no S ] -> [ > player | > door ] + +[s]->[] + +up [ suck_d | door ] -> [ suck_d | door S ] +down [ suck_u | door ] -> [ suck_u | door S ] +left [ suck_r | door ] -> [ suck_r | door S ] +right [ suck_l | door ] -> [ suck_l | door S ] + + +([ > player | > door S ] -> [ > player | > door ]) + + +(push ortho doors) + +up [ up door_l | no obstacle ] -> [ | door_dl ] sfx0 +up [ up door_r | no obstacle ] -> [ | door_dr ] sfx0 +down [ down door_l | no obstacle ] -> [ | door_ul ] sfx0 +down [ down door_r | no obstacle ] -> [ | door_ur ] sfx0 +left [ left door_u | no obstacle ] -> [ | door_ur ] sfx0 +left [ left door_d | no obstacle ] -> [ | door_dr ] sfx0 +right [ right door_u | no obstacle ] -> [ | door_ul ] sfx0 +right [ right door_d | no obstacle ] -> [ | door_dl ] sfx0 + +(push diag doors) +up [ up door_ul | no obstacle ] -> [ | door_l ] sfx0 +up [ up door_ur | no obstacle ] -> [ | door_r ] sfx0 +left [ up door_dl no S | no obstacle ] -> [ | door_d ] sfx0 +right [ up door_dr no S | no obstacle ] -> [ | door_d ] sfx0 + +left [ down door_ul no S | no obstacle ] -> [ | door_u ] sfx0 +right [ down door_ur no S | no obstacle ] -> [ | door_u ] sfx0 +down [ down door_dl | no obstacle ] -> [ | door_l ] sfx0 +down [ down door_dr | no obstacle ] -> [ | door_r ] sfx0 + +left [ left door_ul | no obstacle ] -> [ | door_u ] sfx0 +up [ left door_ur no S | no obstacle ] -> [ | door_r ] sfx0 +left [ left door_dl | no obstacle ] -> [ | door_d ] sfx0 +down [ left door_dr no S | no obstacle ] -> [ | door_r ] sfx0 + +up [ right door_ul no S | no obstacle ] -> [ | door_l ] sfx0 +right [ right door_ur | no obstacle ] -> [ | door_u ] sfx0 +down [ right door_dl no S | no obstacle ] -> [ | door_l ] sfx0 +right [ right door_dr | no obstacle ] -> [ | door_d ] sfx0 + + + + +[ moving door ] -> [ door ] + + +late up [ door_ul | ] -> [ door_ul | dl ] +late left [ door_ul | ] -> [ door_ul | ur ] + +late down [ door_dl | ] -> [ door_dl | ul ] +late left [ door_dl | ] -> [ door_dl | dr ] + +late up [ door_ur | ] -> [ door_ur | dr ] +late right [ door_ur | ] -> [ door_ur | ul ] + +late down [ door_dr | ] -> [ door_dr | ur ] +late right [ door_dr | ] -> [ door_dr | dl ] + +late [ thick suck ] -> [ thick ] + +[player] -> again + +late [magnet suck]->[] +late down [ player | ] -> [ player | underplayer] + +late [ magnet target ] -> [ teleport ] sfx5 + + + + +============== +WINCONDITIONS +============== + +all player on endhand + +======= +LEVELS +======= + +message Level 1 von 3 : Ausbruch + +##########%#%## +#%##...####%##% +####.m.######%# +##.....##...### +##...###.....## +##....##.....## +##.....##....## +###hl..##....## +###..........## +###....#hl...## +###.....#.##### +#########.##### +##....##......# +#.t....#....o.# +#...x..#..p...# +##....##......# +############### + +message Level 2 von 3 : Flucht + +################## +##%#####.....##### +#####%##.##.2...## +########.##.1h#.## +#....##..##h.##.## +#.p..hh..###.##.## +#....u.3####.#...# +#hl##.######.#.x.# +##.....#.....#...# +#....o.#.t...##### +#..m...#.....##### +#......########%## +################## + +message Level 3 von 3 : Fensterrose + + +####################### +#######.........####### +######...........###### +##..##...kkkkk...##..## +#....#...k...k...#....# +#.t..#...k.t.k...#..x.# +#....#...kk.kk...#....# +#....#....2d1....#....# +#..o.#...krhlk...#.t..# +#....#...k...k...#....# +#...##..m........#....# +#.hl.............#....# +#...##....p......#....# +#######.........####### +####################### + +............ +............ +....x....... +............ +............ +............ +............ +........p... +............ + +............ +............ +....§±`~.... +....5678.... +....90!@.... +.....£$\.... +.....Y&*.... +.....-=..... +............ + +message ICH BIN DER POSEIDON + + +( + +##################### +#######.......####### +######.........###### +##..##..kkkkk..##..## +#....#..k...k..#....# +#.t..#..k.t.k..#..x.# +#....#..kk.kk..#....# +#....#...2d1...#....# +#..o.#..krhlk..#.t..# +#....#..k...k..#....# +#...##.m.......#....# +#.hl...........#....# +#...##...p.....#....# +#######.......####### +##################### + +############# +##.........## +#...........# +#...kkkkk...# +#...k...k...# +#...k.x.k...# +#...kk.kk...# +#....2d1....# +#...krhlk...# +#...k...k...# +#...........# +#..m........# +#....p......# +##.........## +############# + + +############# +##.........## +#...........# +#...kkkkk...# +#...k...k...# +#...k.x.k...# +#...kk.kk...# +#....2d1....# +#...krhlk...# +#...k...k...# +#...........# +#.m.........# +#...........# +#......p....# +##.........## +############# + + + +############### +##...........## +#.............# +#.............# +#....kkkkk....# +#....k...k....# +#....k.x.k....# +#....kk.kk....# +#.....2d1.....# +#....krhlk....# +#....k...k....# +#...m.........# +#.............# +#.....p.......# +#.............# +#.............# +##...........## +############### + +############### +##...........## +#.............# +#.............# +#....kkkkk....# +#....k...k....# +#....k.x.k....# +#....kk.kk....# +#.....2d1.....# +#....krhlk....# +#....k...k....# +#.............# +#..........m..# +#.............# +#......p......# +#.............# +##...........## +############### + +############### +##...........## +#.............# +#.............# +#....kkkkk....# +#....k...k....# +#....k.x.k....# +#....kk.kk....# +#.....2d1.....# +#....krhlk....# +#....k...k....# +#.............# +#.............# +#...m.....m...# +#.............# +#......p......# +##...........## +############### + +######"######## +##...........## +#.............# +#.............# +#....kkkkk....# +#....k...k....# +#....k.x.k....# +#....kk.kk....# +#....k.d.k....# +#....krhlk....# +#...kk.u.k....# +#...kt...k..o.# +#...kkkkkk....# +#..m......m...# +#.............# +#......p......# +##...........## +############### + +############### +##...........## +#.............# +#.............# +#....kkkkk....# +#....k...k....# +#....k.x.k....# +#....k.kkk....# +#....k.d.k....# +#....krhlk....# +#....k.u.k....# +#....k...k....# +#....k.t.k..o.# +#....kkkkk....# +#...m.........# +#.............# +##.....p.....## +############### + +############### +##...........## +#.............# +#.............# +#....kkkkk....# +#....k...k....# +#....k.x.k....# +#....kk.kk....# +#....k2d1k....# +#....krhlk....# +#....k........# +#.............# +#.............# +#...m.....m...# +#.............# +#......p......# +##...........## +############### + +############### +##...........## +#.............# +#.............# +#....kkkkk....# +#....k...k....# +#....k.x.k....# +#....kk.kk....# +#....k2d1k....# +#....krhlk....# +#.............# +#.............# +#.............# +#...m.....m...# +#.............# +#......p......# +##...........## +############### + +############### +##...........## +#.............# +#.............# +#....kkkkk....# +#....k...k....# +#....k.x.k....# +#....k.kkk....# +#....k2d......# +#....krh......# +#.....4u......# +#.............# +#.............# +#...m.....m...# +#.............# +#......p......# +##...........## +############### + +############### +##...........## +#.............# +#.............# +#....kkkkk....# +#....k...k....# +#....k.x.k....# +#....k.kkk....# +#....k2d......# +#....krh......# +#....k4u......# +#.............# +#.............# +#...m.....m...# +#.............# +#......p......# +##...........## +############### + +############### +##...........## +#.............# +#.............# +#....kkkkk....# +#....k...k....# +#....k.x.k....# +#....k.kkk....# +#....k2d......# +#....krh......# +#....k4.......# +#.............# +#.............# +#...m.....m...# +#.............# +#......p......# +##...........## +############### + +############### +##...........## +#.............# +#.............# +#....kkkkk....# +#....k...k....# +#....k.x.k....# +#....k...k....# +#....k2d.k....# +#....krh.k....# +#....k4..k....# +#....k.k.k....# +#....k.kkk....# +#...m.....m...# +#.............# +#......p......# +##...........## +############### + +############### +##...........## +#.............# +#.............# +#....kkkkk....# +#....k...k....# +#....k.x.k....# +#....k.kkk....# +#....k2d......# +#....krh......# +#....k4.......# +#....k........# +#....k........# +#...m.....m...# +#.............# +#......p......# +##...........## +############### + +############### +##...........## +#.............# +#.............# +#....kkkkk....# +#....k...k....# +#....k.x.k....# +#....k...k....# +#....k2d.k....# +#....krh.k....# +#....k4u.k....# +#....k.k.k....# +#....k.kkk....# +#...m.....m...# +#.............# +#......p......# +##...........## +############### + +............ +............ +............ +...kkkkk.... +...k...k.... +...k.x.k.... +...k...k.... +...k2d.k.... +...krh.k.... +...k4..k.... +...k.k.k.... +...k.kkk.... +..m.....m... +............ +......p..... +............ + +............ +............ +............ +...kkkkk.... +...k...k.... +...k.x.k.... +...k...k.... +...k2d.k.... +...krh.k.... +...k4u.k.... +...k.k.k.... +...k.kkk.... +..m.....m... +............ +......p..... +............ + + +............ +............ +............ +...kkkkk.... +...k...k.... +...k.x.k.... +...k...k.... +...k2..k.... +...krh.k.... +...k4..k.... +...k.k.k.... +...k.kkk.... +..m.....m... +............ +.....p...... +............ + +............ +............ +............ +...kkkkk.... +...k...k.... +...k.x.k.... +...k...k.... +...k.d.k.... +...krh.k.... +...k.u.k.... +...k.k.k.... +...k.kkk.... +..m.....m... +............ +.....p...... +............ + +............ +............ +..kkkkk..... +..k...k..... +..k.x.k..... +..k...k..... +..k.d.k..... +..krh.k..... +..k.u.k..... +..k.k.k..... +..k.kkk..... +............ +........m... +............ +..........p. +............ + +################## +#####.......#....# +#####.......#....# +#####..##...#....# +####hlrh#hl.#..rh# +####....#.rh#hl..# +####hlrh#hl.#..rh# +####....#.rh#hl..# +####hlrh#hl.#..rh# +####....#.rh#hl..# +####....#...#....# +#.......#........# +#.m..p..########## +#.......#......... +#########......... + +################## +#####.........#..# +#####...mp....#..# +#####..##d....#..# +####h..h#h2...#rh# +####u..u#..h###..# +####h..h#hl...#rh# +####u..u#.rh###..# +####h..h#hl...#rh# +####u..u#.rh###..# +####....#.....#..# +#.......#.....#..# +#.......#........# +#.......#........# +################## + + +################### +####....#.........# +####hlrh#.........# +####....#.........# +####hlrh#.........# +####....#.........# +####hlrh#.........# +####....#.........# +####....#.........# +#.................# +#.m..p............# +#.................# +################### + + + +################## +#................# +#................# +#................# +#................# +#................# +#................# +###.###..........# +#.....#..........# +#.p...#..........# +#.....#..........# +#...m.#..........# +#.....#..........# +################## + +################## +#####.........#..# +#####.....pmk.#..# +#####..##d..k.#..# +####h..h#h2.k.#rh# +####u..u#..h###..# +####h..h#hl...#rh# +####u..u#.rh###..# +####h..h#hl...#rh# +####u..u#.rh###..# +####....#.....#..# +#.......#.....#..# +#...kkkk#........# +#.......#........# +################## + +################## +#................# +#................# +#................# +#................# +#................# +#................# +#................# +#................# +#................# +#................# +#................# +#................# +################## + +) \ No newline at end of file diff --git a/src/demo/kettle.txt b/src/demo/kettle.txt index 01a13b1be..6b6d48b75 100644 --- a/src/demo/kettle.txt +++ b/src/demo/kettle.txt @@ -109,7 +109,7 @@ Player, Crate, Wall RULES ====== -(the idea is simple: lots of Players, each of which only responds to a particular input direction) +(The idea is simple: lots of Players, each of which only responds to a particular input direction.) [ up RPolice ] -> [ RPolice ] [ down RPolice ] -> [ RPolice ] diff --git a/src/demo/leftrightnpcs.txt b/src/demo/leftrightnpcs.txt index 79a0f561d..1c331fd65 100644 --- a/src/demo/leftrightnpcs.txt +++ b/src/demo/leftrightnpcs.txt @@ -55,8 +55,8 @@ LEGEND . = Background # = Wall P = Player -< = LeftPerson -> = RightPerson +L = LeftPerson +R = RightPerson ======= SOUNDS @@ -90,10 +90,10 @@ LEVELS ####.. -#.>#.. +#.R#.. #..### -#.# +#LP..# +#..R.# #..### ####.. diff --git a/src/demo/sokoban_basic_debug.txt b/src/demo/sokoban_basic_debug.txt new file mode 100644 index 000000000..acf022ded --- /dev/null +++ b/src/demo/sokoban_basic_debug.txt @@ -0,0 +1,111 @@ +title Simple Block Pushing Game +author David Skinner +homepage www.puzzlescript.net + +debug + +======== +OBJECTS +======== + +Background +LIGHTGREEN GREEN +11111 +01111 +11101 +11111 +10111 + + +Target +DarkBlue +..... +.000. +.0.0. +.000. +..... + +Wall +BROWN DARKBROWN +00010 +11111 +01000 +11111 +00010 + +Player +Black Orange White Blue +.000. +.111. +22222 +.333. +.3.3. + +Crate +Orange +00000 +0...0 +0...0 +0...0 +00000 + + +======= +LEGEND +======= + +. = Background +# = Wall +P = Player +* = Crate +@ = Crate and Target +O = Target + + +======= +SOUNDS +======= + +Crate MOVE 36772507 + +================ +COLLISIONLAYERS +================ + +Background +Target +Player, Wall, Crate + +====== +RULES +====== + +[ > Player | Crate ] -> [ > Player | > Crate ] + +============== +WINCONDITIONS +============== + +All Target on Crate + +======= +LEVELS +======= + + +####.. +#.O#.. +#..### +#@P..# +#..*.# +#..### +####.. + + +###### +#....# +#.#P.# +#.*@.# +#.O@.# +#....# +###### diff --git a/src/demo/sokoban_basic_zoomscreen.txt b/src/demo/sokoban_basic_zoomscreen.txt new file mode 100644 index 000000000..6bfd80464 --- /dev/null +++ b/src/demo/sokoban_basic_zoomscreen.txt @@ -0,0 +1,109 @@ +title Simple Block Pushing Game +author David Skinner +homepage www.puzzlescript.net +zoomscreen 3x3 +======== +OBJECTS +======== + +Background +LIGHTGREEN GREEN +11111 +01111 +11101 +11111 +10111 + + +Target +DarkBlue +..... +.000. +.0.0. +.000. +..... + +Wall +BROWN DARKBROWN +00010 +11111 +01000 +11111 +00010 + +Player +Black Orange White Blue +.000. +.111. +22222 +.333. +.3.3. + +Crate +Orange +00000 +0...0 +0...0 +0...0 +00000 + + +======= +LEGEND +======= + +. = Background +# = Wall +P = Player +* = Crate +@ = Crate and Target +O = Target + + +======= +SOUNDS +======= + +Crate MOVE 36772507 + +================ +COLLISIONLAYERS +================ + +Background +Target +Player, Wall, Crate + +====== +RULES +====== + +[ > Player | Crate ] -> [ > Player | > Crate ] + +============== +WINCONDITIONS +============== + +All Target on Crate + +======= +LEVELS +======= + + +####.. +#.O#.. +#..### +#@P..# +#..*.# +#..### +####.. + + +###### +#....# +#.#P.# +#.*@.# +#.O@.# +#....# +###### diff --git a/src/demo/zokoban.txt b/src/demo/zokoban.txt new file mode 100644 index 000000000..f111c1bd9 --- /dev/null +++ b/src/demo/zokoban.txt @@ -0,0 +1,215 @@ +title The Legend of Zokoban +author Joshua Minor +homepage pixelverse.org +flickscreen 9x7 + +======== +OBJECTS +======== + +Background +yellow orange +00000 +01000 +00001 +00100 +10000 + +Water +blue lightblue +00000 +01000 +00001 +00100 +10000 + +Cave +DarkBlue +00000 +00000 +00000 +00000 +00000 + +Goal +DarkBlue Red +00000 +00000 +00100 +00000 +00000 + +RockWall +BROWN Orange +01110 +10000 +10010 +10000 +00100 + +StoneWall +darkgrey grey +01110 +10000 +10010 +10000 +00100 + +PlayerWithoutSword +GREEN lightgreen +.00.. +00000 +.000. +.111. +00.00 + +PlayerWithSword +GREEN lightgreen white grey +.002. +00020 +.0222 +.110. +00.00 + +Sword +grey white +..1.. +..1.. +.111. +..0.. +..... + +Block +BROWN Orange darkgrey +.111. +10001 +10002 +10002 +.222. + +EasyBaddie +white red +.111. +10101 +11111 +11111 +11.11 + +Money +white lightblue +..1.. +.001. +10111 +.111. +..1.. + +======= +LEGEND +======= + +Wall = StoneWall or RockWall +Solid = Wall or Block or Water +Player = PlayerWithoutSword or PlayerWithSword +Obstacle = Wall or Block or Player or Water +Baddie = EasyBaddie + +. = Background +# = RockWall +S = StoneWall +P = PlayerWithoutSword +* = Block +@ = Block and Cave +O = Cave +w = Water +1 = EasyBaddie ++ = Sword +G = Goal + +======= +SOUNDS +======= + +StartLevel 40430108 (music-ish) +SFX0 16358103 (power up) +SFX1 84057304 (push) +SFX2 74654508 (stairs) +SFX3 21293301 (fight) +SFX4 49521903 (hurt) +SFX5 47598700 (money) +ShowMessage 82693708 (you win!) + +================ +COLLISIONLAYERS +================ + +Background +Cave, Goal +Player, Wall, Block, Water, EasyBaddie +Sword, Money + +====== +RULES +====== + +(baddies move at random) +[ Stationary Baddie ] -> [ RandomDir Baddie ] + +(player can push blocks) +[ > Player | Block ] -> [ > Player | > Block ] SFX1 + +(blocks pushed into water become land) +[ > Block | Water ] -> [ | ] + +(baddies can attack the player w/o sword) +[ > Baddie | Player No Sword ] -> SFX4 + +(player can pick up sword) +([ > Player | Sword ] -> [ | Player Sword ] SFX0) +[ PlayerWithoutSword Sword ] -> [ PlayerWithSword ] SFX0 + +(player with sword can kill baddies & leave money) +[ > PlayerWithSword | Baddie ] -> [ PlayerWithSword | Money ] SFX3 +(sword moves with player) +([ > Player Sword ] -> [ > Player > Sword ]) +(sword doesn't move into obstacles) +([ > Sword | Stationary Obstacle ] -> [ Sword | Stationary Obstacle ]) + +(player can pick up money) +[ > Player | Money ] -> [ | Player ] SFX5 + +(blocks pushed into caves, teleport to other end of cave) +random [ Moving Block Cave | ... | Cave ] -> [ Cave | ... | Block Cave ] +(blocks sitting on cave exits will roll aside to let player follow them) +late random [ Block Cave | No Obstacle ] -> [ Cave | Block ] +(players can enter caves - teleporting to orthogonally matching cave) +late random [ Player Cave | ... | Cave ] -> [ Cave | ... | Player Cave ] SFX2 +(sword follows player through the cave) +(late random [ Sword Cave | ... | Cave ] -> [ Cave | ... | Sword Cave ]) + + +============== +WINCONDITIONS +============== + +All Player on Goal + +======= +LEVELS +======= + +sssssssss#################wwwwwwwwww +ss.s1s..s#1#####.##..1..1.wwwwww..ww +s.......s#.#####.##.#.#.#.wwwww..*.w +s..*....o#.##o##.............ww....w +s.s....ss#..........#.*.#....ww..1.w +sss.s.sss##...............wwwwww..ww +sssssssss#####..#####.....wwwwwwwwww +sssssssss#####..#####.....wwwwwwwwww +ss1...sss#####..####.....wwww.....ww +s......os##o#....##...#.1www..s.s..w +s..+...ss#.......##*......ww...g...w +ss.....ss#...p..........#.ww..s.s.1w +ssss..sss##.....###..#.1..www..1..ww +sssssssss#################wwwwwwwwww + +message Congratulations! \ No newline at end of file From a5ba0ebe5bf526d53ead18120a69005ee48eec0a Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Fri, 4 Mar 2022 17:14:10 +0100 Subject: [PATCH 050/122] fixes #863 --- src/js/parser.js | 9 ++++++++- src/tests/resources/errormessage_testdata.js | 4 ++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/js/parser.js b/src/js/parser.js index 52d4174e9..b3d6d1206 100644 --- a/src/js/parser.js +++ b/src/js/parser.js @@ -310,7 +310,14 @@ var codeMirrorFn = function() { } idx = splits.indexOf(candname, 2); } - } + } + for (var j=2;j player ] [ stationary shadow ] -> [ > player ] [ < shadow ]\n\n( 1. Propagate movements forward )\n[ > Mover | Movable ] -> [ > Mover | > Movable ]\n+ [ > Box ] [ Box ] -> [ > Box ] [ > Box ]\n+ [ > Crate ] [ Crate ] -> [ > Crate ] [ > Crate ]\n+ [ > Chest ] [ Chest ] -> [ > Chest ] [ > Chest ]\n+ [ moving Glue | Glue ] -> [ moving Glue | moving Glue ]\n\n( 2. Propagate obstructions backwards )\n[ > Mover | stationary Obstacle ] -> [ stationary Mover | Obstacle ]\n+ [ > Crate ] [ stationary Crate ] -> [ stationary Crate ] [ Crate ]\n+ [ > Box ] [ stationary Box ] -> [ stationary Box ] [ Box ]\n+ [ > Chest ] [ stationary Chest ] -> [ stationary Chest ] [ Chest ]\n+ [ moving Glue | stationary Glue ] -> [ stationary Glue | Glue ]\n\n( 3. remove all movement, keep a flag )\n[ > Movable ] -> [ Movable wanna_move ]\n\n( 4. propagate movement only on wanna_move things )\n( ie redo step 1 but with WANNA_MOVE added to the first line below )\n[ > Mover | Movable WANNA_MOVE ] -> [ > Mover | > Movable ]\n+ [ > Box ] [ Box ] -> [ > Box ] [ > Box ]\n+ [ > Crate ] [ Crate ] -> [ > Crate ] [ > Crate ]\n+ [ > Chest ] [ Chest ] -> [ > Chest ] [ > Chest ]\n+ [ moving Glue | Glue ] -> [ moving Glue | moving Glue ]\n\n( 5. cleanup, remove flag )\n[ wanna_move ] -> [ ]\n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\n###################\n#.................#\n#.................#\n#...*..g.g.#......#\n#...*......#...g###\n#...*...o.%%%.....#\n#...+++.o.%.......#\n#....+....%%%.....#\n#....+.....P...g..#\n#....p.gg.........#\n###################\n\n",["line 78 : You're repeating the object PLAYER here multiple times on the RHS. This makes no sense. Don't do that."],0] + ], ]; \ No newline at end of file From ea69b7e4254698e8a394a739f920e24de9fe621d Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Mon, 7 Mar 2022 10:17:50 +0100 Subject: [PATCH 051/122] fixes #868 --- src/js/engine.js | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/src/js/engine.js b/src/js/engine.js index a10349b9a..a29bf5907 100644 --- a/src/js/engine.js +++ b/src/js/engine.js @@ -2382,9 +2382,11 @@ function resolveMovements(level, bannedGroup){ var rigidGroupIndex = rigidGroupIndexMask.getshiftor(0x1f, 5*j); rigidGroupIndex--;//group indices start at zero, but are incremented for storing in the bitfield var groupIndex = state.rigidGroupIndex_to_GroupIndex[rigidGroupIndex]; - bannedGroup[groupIndex]=true; - //backtrackTarget = rigidBackups[rigidGroupIndex]; - doUndo=true; + if (bannedGroup[groupIndex]!==true){ + bannedGroup[groupIndex]=true + //backtrackTarget = rigidBackups[rigidGroupIndex]; + doUndo=true; + } break; } } @@ -2538,6 +2540,8 @@ function processInput(dir,dontDoWin,dontModify) { calculateRowColMasks(); + var alreadyResolved=[]; + var i=0; do { //not particularly elegant, but it'll do for now - should copy the world state and check @@ -2545,8 +2549,6 @@ function processInput(dir,dontDoWin,dontModify) { rigidloop=false; i++; - - applyRules(state.rules, state.loopPoint, startRuleGroupIndex, bannedGroup); var shouldUndo = resolveMovements(level, bannedGroup); @@ -2555,7 +2557,20 @@ function processInput(dir,dontDoWin,dontModify) { { // trackback - consolePrint("Rigid movement application failed. Rolling back...") + if (IDE){ + // newBannedGroups is the list of keys of bannedGroup that aren't already in alreadyResolved + var newBannedGroups = []; + for (var key in bannedGroup) { + if (!alreadyResolved.includes(key)) { + newBannedGroups.push(key); + alreadyResolved.push(key); + } + } + var bannedLineNumbers = newBannedGroups.map( rgi => state.rules[rgi][0].lineNumber); + var ts = bannedLineNumbers.length>1 ? "lines " : "line "; + ts += bannedLineNumbers.map(ln => `${ln}`).join(", "); + consolePrint(`Rigid movement application failed in rule-Group starting from ${ts}, and will be disabled in resimulation. Rolling back...`) + } //don't need to concat or anythign here, once something is restored it won't be used again. level.objects = new Int32Array(startState.objects) level.movements = new Int32Array(startState.movements) From 1fb5393a0f68fb665421059f6df1882c3d5f41d6 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Mon, 7 Mar 2022 10:20:56 +0100 Subject: [PATCH 052/122] Delete codeql-analysis.yml Not sure what if anything it's doing - maybe I'll try it again another time, but because I'm running my own tests locally anyway, it's not likely to contribute much to my workflow. On the other hand, it might help with other people submitting patches, if I got qunit to work somehow. Hmm. Whatever. --- .github/workflows/codeql-analysis.yml | 70 --------------------------- 1 file changed, 70 deletions(-) delete mode 100644 .github/workflows/codeql-analysis.yml diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml deleted file mode 100644 index 24b96ba9e..000000000 --- a/.github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,70 +0,0 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# -name: "CodeQL" - -on: - push: - branches: [ master ] - pull_request: - # The branches below must be a subset of the branches above - branches: [ master ] - schedule: - - cron: '23 7 * * 6' - -jobs: - analyze: - name: Analyze - runs-on: ubuntu-latest - permissions: - actions: read - contents: read - security-events: write - - strategy: - fail-fast: false - matrix: - language: [ 'javascript', 'python' ] - # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] - # Learn more about CodeQL language support at https://git.io/codeql-language-support - - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v1 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v1 - - # ℹ️ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl - - # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language - - #- run: | - # make bootstrap - # make release - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 From 355ecf49fc640e37f0bf50db3112dc61e71779e3 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Mon, 7 Mar 2022 10:22:20 +0100 Subject: [PATCH 053/122] rigidbody test (for #866) --- src/tests/resources/testdata.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/tests/resources/testdata.js b/src/tests/resources/testdata.js index dfdd64484..ca5f2b32f 100644 --- a/src/tests/resources/testdata.js +++ b/src/tests/resources/testdata.js @@ -1484,5 +1484,9 @@ var testdata = [ "SokokoS", ["title SokokoS\nauthor Notan\nhomepage https://notaninart.itch.io\nbackground_color #350828\ntext_color #f9cb60\nnorepeat_action\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nPalette1\n#151244 #60117f #922a95 #be7dbc #350828\n01234\n12340\n23401\n34012\n40123\n\nPalette2\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n01234\n12340\n23401\n34012\n40123\n\nBackground\n#350828\n\nWall\n#7f6962#680703\n00010\n11111\n01000\n11111\n00010\n\nPlayer\n#be7dbc #151244\n.000.\n01010\n01010\n00000\n.000.\n\nCrate\n#f9960f\n00000\n0...0\n0...0\n0...0\n00000\n\n\nPlayerGuide\n#be7dbc #151244\n.....\n.....\n..0..\n.....\n.....\n\nCrateGuide\n#f9960f\n.....\n.....\n..0..\n.....\n.....\n\nTarget\n#7f6962\n.....\n.000.\n.0.0.\n.000.\n.....\n\nMirror\n#f9cb60\n..0..\n..0..\n..0..\n..0..\n..0..\n\nMarker\ntransparent\n\n=======\nLEGEND\n=======\n\nObstacle = Crate or Wall\nGuide = PlayerGuide or CrateGuide\n\nPalette = Palette1 or Palette2\nX = Palette1\nY = Palette2\n\n. = Background\n# = Wall\nI = Mirror\nP = Player\n╋ = Crate\n╬ = Target\nH = Mirror and Wall\n& = Crate and Target\n@ = Crate and Wall\n\n=======\nSOUNDS\n=======\n\n\nsfx0 22463707 (walk)\nsfx1 67079507 (push 10471704)\nsfx2 03111065 (flip)\nsfx3 10471704 (walk unused)\nsfx4 41314507 (walk unused)\nsfx5 10471704 (push unused)\nUndo 21479104 (72060504 60450507)\nrestart 46704309\nstartgame 21069303\nclosemessage 21069303\n(startlevel 67233309)\nendlevel 32515109\n(endgame 21069303)\ntitlescreen 21069303\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPalette\nTarget, Wall\nGuide\nPlayer\nCrate\nMirror\nMarker\n\n======\nRULES \n======\n\n[ > player no obstacle | no obstacle ] -> [ | player ] sfx0\n[ > player no obstacle | crate no wall | no obstacle ] -> [ | player | crate ] sfx1\n[ > player ] -> [ player ]\n\n[ action player ] -> sfx2\n\nhorizontal [ action player ] [ no marker | mirror | no marker ] -> [ action player ] [ marker | mirror | marker ]\nright [ | marker no crate | ... | marker no crate | ] -> [ marker | | ... | | marker ]\n+ horizontal [ | marker crate | ... | marker no crate | ] -> [ marker | | ... | crate | marker ]\n+ right [ | marker crate | ... | marker crate | ] -> [ marker | crate | ... | crate | marker ]\n[ marker ] -> [ ]\n\nhorizontal [ action player | ... | mirror ] -> [ player | ... | marker mirror ]\nright [ | marker mirror | ] -> [ marker | mirror | marker ]\nright [ | marker no player | ... | marker no player | ] -> [ marker | | ... | | marker ]\n+ horizontal [ marker player | ... | marker ] -> [ | ... | player ]\n[ marker ] -> [ ]\n\nlate [ guide ] -> [ ]\nlate horizontal [ no marker | mirror | no marker ] -> [ marker | mirror | marker ]\nlate right [ | marker no crate | ... | marker no crate | ] -> [ marker | | ... | | marker ]\n+ late horizontal [ | marker crate | ... | marker no crate | ] -> [ marker | crate | ... | crateGuide | marker ]\n+ late right [ | marker crate | ... | marker crate | ] -> [ marker | crate CrateGuide | ... | crate crateGuide | marker ]\nlate [ marker ] -> [ ]\n\nlate horizontal [ player | ... | mirror ] -> [ player | ... | marker mirror ]\nlate right [ | marker mirror | ] -> [ marker | mirror | marker ]\nlate right [ | marker no player | ... | marker no player | ] -> [ marker | | ... | | marker ]\n+ late horizontal [ marker player | ... | marker ] -> [ player | ... | playerGuide ]\nlate [ marker ] -> [ ]\n\n==============\nWINCONDITIONS\n==============\n\nall target on crate\n\n======= \nLEVELS\n=======\n\n\nMessage Press X | X sserP\n\n\n(\n######h######\n##..╬.i╬...##\n##...╬i.╬..##\n######h##╋###\n#...##h##..##\n#.#.##h##..##\n#...#.h..#╋##\n#####.h.╋.╋.#\n#####.h##...#\n#...#.h##.#.#\n#.p.#.i.....#\n#...##h######\n######h######\n\n\n######h######\n##..╬.i╬...##\n##...╬i.╬..##\n######h##╋###\n######h##...#\n######h##...#\n#####.h..#╋##\n#####.h.╋.╋.#\n#####.h##...#\n#...#.h##.#.#\n#.p.#.i.....#\n#...##h######\n######h######\n)\n\n#######h#######\n####...i#╬╬####\n####..#i.╬╬####\n#######h#╋#####\n####..#h#.#####\n####.##h#.#####\n####...h.╋#####\n######.h.╋.╋..#\n######.h#..##.#\n##...#.h##.##.#\n##.p.#.i......#\n##...##h#######\n#######h#######\n\n\nMessage You win! | !niw ouY\n\n",[3,4,0,0,0,1,1,4,3,2,2,2,3,3,3,3,0,0,0,3,1,2,0,3,4,0,4,1,2,0,2,3,2,2,1,1,4,0,0,0,0,1,3,2,2,2,2,3,3,3,3,0,0,0,1,0,4,1,3,3,2,4,4,0,1,1,0,0,3,4,0,0,4,1,0,3,3,2,3,2,3,3,2,2],"background wall: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,background crateguide wall:1,0,background:2,2,2,0,0,0,0,0,0,0,\n0,0,0,2,2,2,0,0,2,2,0,2,2,background crateguide:3,0,\n0,2,2,2,0,0,2,2,0,background playerguide:4,1,2,1,0,0,\n0,0,0,0,2,0,0,0,0,2,2,2,2,2,0,\n0,background mirror wall:5,background mirror:6,6,5,5,5,5,5,5,5,6,5,5,0,\n0,2,0,0,0,2,2,0,0,2,0,0,0,background target:7,7,\n2,background player:8,background crate:9,2,9,2,0,2,0,0,0,7,7,0,0,\n0,background crate wall:10,2,2,2,2,0,0,0,0,0,0,0,0,0,\n2,0,0,2,0,0,0,0,0,0,0,0,0,9,0,\n0,2,0,0,0,0,0,0,0,0,0,2,2,2,2,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",1,"1645642394866.7083"] ], + [ + "rigid disablement applies to whole rule-groups", + ["title rigid disablement applies to whole rule-groups\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | crate ] -> [ > player | crate ]\n\n[ player | target ] -> [ > player | target ]\n\n( up [ > Player | Crate ] -> [ > Player | > Crate ] )\n( + rigid right [ > Player | Crate ] -> [ > Player | > Crate ] )\n( + rigid left [ > Player | Crate ] -> [ > Player | > Crate ] )\n( + down [ > Player | Crate ] -> [ > Player | > Crate ] )\n\nup [ > Player | Crate ] -> [ > Player | > Crate ] \n+ rigid horizontal [ > Player | Crate ] -> [ > Player | > Crate ] \n+ rigid down [ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.............\n.............\n.....#.......\n.....*.o.....\n.....p.p.....\n...op...p*#..\n.............\n...*p...po...\n.....p.p.....\n.....o.*.....\n.............\n.............\n.............\n\n\n\n",[4],"background: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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background player target:1,0,background crate:2,0,0,0,0,0,\n0,0,0,0,0,0,0,background player:3,0,0,0,0,0,\n0,0,0,2,3,0,0,0,0,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,1,0,0,0,0,3,2,0,0,0,\n0,0,0,0,0,3,0,0,0,0,0,0,0,\n0,0,0,0,0,2,0,1,0,0,0,0,0,\n0,0,0,0,0,background wall:4,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,0,0,0,0,0,\n",0,"1646644384358.2732"] + ], ]; From a63e19e561706b69eaa657cc4409f2fb51613380 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Mon, 7 Mar 2022 10:31:27 +0100 Subject: [PATCH 054/122] test for #866 rigid applies to movements even if the movements were already present in the cell before rule application [i.e. if the rule doesn't do anything] --- src/tests/resources/testdata.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/tests/resources/testdata.js b/src/tests/resources/testdata.js index ca5f2b32f..7d39f196c 100644 --- a/src/tests/resources/testdata.js +++ b/src/tests/resources/testdata.js @@ -1488,5 +1488,9 @@ var testdata = [ "rigid disablement applies to whole rule-groups", ["title rigid disablement applies to whole rule-groups\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | crate ] -> [ > player | crate ]\n\n[ player | target ] -> [ > player | target ]\n\n( up [ > Player | Crate ] -> [ > Player | > Crate ] )\n( + rigid right [ > Player | Crate ] -> [ > Player | > Crate ] )\n( + rigid left [ > Player | Crate ] -> [ > Player | > Crate ] )\n( + down [ > Player | Crate ] -> [ > Player | > Crate ] )\n\nup [ > Player | Crate ] -> [ > Player | > Crate ] \n+ rigid horizontal [ > Player | Crate ] -> [ > Player | > Crate ] \n+ rigid down [ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.............\n.............\n.....#.......\n.....*.o.....\n.....p.p.....\n...op...p*#..\n.............\n...*p...po...\n.....p.p.....\n.....o.*.....\n.............\n.............\n.............\n\n\n\n",[4],"background: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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background player target:1,0,background crate:2,0,0,0,0,0,\n0,0,0,0,0,0,0,background player:3,0,0,0,0,0,\n0,0,0,2,3,0,0,0,0,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,1,0,0,0,0,3,2,0,0,0,\n0,0,0,0,0,3,0,0,0,0,0,0,0,\n0,0,0,0,0,2,0,1,0,0,0,0,0,\n0,0,0,0,0,background wall:4,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,0,0,0,0,0,\n",0,"1646644384358.2732"] ], + [ + "rigid applies to movements even if the movements were already present in the cell before rule application [i.e. if the rule doesn't do anything]", + ["title rigid applies to movements even if the movements were already present in the cell before rule application [i.e. if the rule doesn't do anything]\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | crate ] -> [ > player | crate ]\n\n[ player | target ] -> [ > player | target ]\n\n+ right [ > Player | Crate ] -> [ > Player | > Crate ] \n+ left [ > Player | Crate ] -> [ > Player | > Crate ] \n\nup [ > Player | Crate ] -> [ > Player | > Crate ] \n+ rigid right [ > Player | Crate ] -> [ > Player | > Crate ] \n+ rigid left [ > Player | Crate ] -> [ > Player | > Crate ] \n+ down [ > Player | Crate ] -> [ > Player | > Crate ] \n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.............\n.............\n.....#.......\n.....*.o.....\n.....p.p.....\n...op...p*#..\n.............\n...*p...po...\n.....p.p.....\n.....o.*.....\n.............\n.............\n.............\n\n\n\n",[4],"background: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,\n0,0,0,0,0,0,0,background crate:1,0,0,0,0,0,\n0,0,0,0,0,background player target:2,0,background player:3,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background wall:4,1,3,0,0,0,0,2,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,2,0,0,0,0,3,1,0,0,0,\n0,0,0,0,0,3,0,0,0,0,0,0,0,\n0,0,0,0,0,1,0,2,0,0,0,0,0,\n0,0,0,0,0,4,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,0,0,0,0,0,\n",0,"1646645466460.093"] + ], ]; From 679da3f00b8586a069b1ef43e6dfc907c38728f8 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Mon, 7 Mar 2022 11:01:33 +0100 Subject: [PATCH 055/122] #866 rigid applies to movements even if the movements are chagned by subsequent non-rigid rules in other groups --- src/tests/resources/testdata.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/tests/resources/testdata.js b/src/tests/resources/testdata.js index 7d39f196c..7becabf40 100644 --- a/src/tests/resources/testdata.js +++ b/src/tests/resources/testdata.js @@ -1492,5 +1492,9 @@ var testdata = [ "rigid applies to movements even if the movements were already present in the cell before rule application [i.e. if the rule doesn't do anything]", ["title rigid applies to movements even if the movements were already present in the cell before rule application [i.e. if the rule doesn't do anything]\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | crate ] -> [ > player | crate ]\n\n[ player | target ] -> [ > player | target ]\n\n+ right [ > Player | Crate ] -> [ > Player | > Crate ] \n+ left [ > Player | Crate ] -> [ > Player | > Crate ] \n\nup [ > Player | Crate ] -> [ > Player | > Crate ] \n+ rigid right [ > Player | Crate ] -> [ > Player | > Crate ] \n+ rigid left [ > Player | Crate ] -> [ > Player | > Crate ] \n+ down [ > Player | Crate ] -> [ > Player | > Crate ] \n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.............\n.............\n.....#.......\n.....*.o.....\n.....p.p.....\n...op...p*#..\n.............\n...*p...po...\n.....p.p.....\n.....o.*.....\n.............\n.............\n.............\n\n\n\n",[4],"background: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,\n0,0,0,0,0,0,0,background crate:1,0,0,0,0,0,\n0,0,0,0,0,background player target:2,0,background player:3,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background wall:4,1,3,0,0,0,0,2,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,2,0,0,0,0,3,1,0,0,0,\n0,0,0,0,0,3,0,0,0,0,0,0,0,\n0,0,0,0,0,1,0,2,0,0,0,0,0,\n0,0,0,0,0,4,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,0,0,0,0,0,\n",0,"1646645466460.093"] ], + [ + "rigid applies to movements even if the movements are chagned by subsequent non-rigid rules in other groups", + ["title rigid applies to movements even if the movements are chagned by subsequent non-rigid rules in other groups\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nrigid right [ right Player ] -> [ up Player ] \n\n\n[ up Player ] -> [ left player ] \n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#p....\n........\n...p....\n........\n\n\n",[3],"background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\n0,0,0,0,0,background player:2,0,2,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n",0,"1646647163086.0168"] + ], ]; From ffd0fdf54ed99e56636fe583902a6cfaa253a09f Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Mon, 7 Mar 2022 11:03:34 +0100 Subject: [PATCH 056/122] #866 rigid applies to movements even if the objects are changed to different objects in the same layer --- src/tests/resources/testdata.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/tests/resources/testdata.js b/src/tests/resources/testdata.js index 7becabf40..8679cbc1f 100644 --- a/src/tests/resources/testdata.js +++ b/src/tests/resources/testdata.js @@ -1496,5 +1496,9 @@ var testdata = [ "rigid applies to movements even if the movements are chagned by subsequent non-rigid rules in other groups", ["title rigid applies to movements even if the movements are chagned by subsequent non-rigid rules in other groups\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nrigid right [ right Player ] -> [ up Player ] \n\n\n[ up Player ] -> [ left player ] \n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#p....\n........\n...p....\n........\n\n\n",[3],"background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\n0,0,0,0,0,background player:2,0,2,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n",0,"1646647163086.0168"] ], + [ + "rigid applies to movements even if the objects are changed to different objects in the same layer", + ["title rigid applies to movements even if the objects are changed to different objects in the same layer\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nrigid [ Player ] -> [ left Player ] \n\n[ player ] -> [ crate ]\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#p....\n........\n...p....\n........\n\n\n",[4],"background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\nbackground crate:2,0,2,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n",0,"1646647382066.4045"] + ], ]; From 135fb61c960d31e1186a416beebb5a7ea6894f3c Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Mon, 7 Mar 2022 13:27:22 +0100 Subject: [PATCH 057/122] more tests for #866 --- src/tests/resources/testdata.js | 36 +++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/tests/resources/testdata.js b/src/tests/resources/testdata.js index 8679cbc1f..8a4a473f3 100644 --- a/src/tests/resources/testdata.js +++ b/src/tests/resources/testdata.js @@ -1500,5 +1500,41 @@ var testdata = [ "rigid applies to movements even if the objects are changed to different objects in the same layer", ["title rigid applies to movements even if the objects are changed to different objects in the same layer\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nrigid [ Player ] -> [ left Player ] \n\n[ player ] -> [ crate ]\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#p....\n........\n...p....\n........\n\n\n",[4],"background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\nbackground crate:2,0,2,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n",0,"1646647382066.4045"] ], + [ + "rigid applies to movements even if they are removed and subsequently readded", + ["title rigid applies to movements even if they are removed and subsequently readded\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nrigid [ Player ] -> [ left Player ] \n\n[ crate | player ] -> [ crate | stationary player ]\n[ crate | player ] -> [ crate | < player ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#p....\n........\n...p....\n........\n\n\n",[3],"background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\n0,0,0,0,0,background player:2,0,2,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n",0,"1646647562594.771"] + ], + [ + "rigid applies to movements even if they are removed", + ["title rigid applies to movements even if they are removed (along with their objects) and subsequently readded\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nrigid [ Player ] -> [ left Player ] \n\n[ crate | player ] -> [ crate | ]\n[ crate | ] -> [ crate | < player ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#p....\n........\n...p....\n........\n\n\n",[3],"background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\n0,0,0,0,0,background player:2,0,2,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n",0,"1646647631710.7463"] + ], + [ + "rigid applies to movements even if the initial movement applied is an ACTION that is later changed to a movement", + ["title rigid applies to movements even if the initial movement applied is an ACTION that is later changed to a movement\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nrigid [ crate ] -> [ action crate ] \n\n\n[ action crate ] -> [ left crate ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n",[3],"background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\nbackground crate:2,0,2,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\nbackground player:3,0,0,0,0,0,0,0,\n",0,"1646647810474.9294"] + ], + [ + "rigid applies to movements even if the initial movement applied is an STATIONARY that is later changed to a movement", + ["title rigid applies to movements even if the initial movement applied is an STATIONARY that is later changed to a movement\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid [ crate ] -> [ stationary crate ] \n\n\n[ stationary crate ] -> [ left crate ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n",[4],"background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,background crate:2,\n0,2,0,0,0,0,0,0,\n0,0,0,background player:3,0,0,0,0,\n0,0,0,0,0,0,0,0,\n",0,"1646647871326.5627"] + ], + [ + "rigid DOES NOT apply to objects if the rule is totally inert except for triggering SFX", + ["title rigid DOES NOT apply to objects if the rule is totally inert except for triggering SFX\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid right [ wall | crate ] -> [ wall | crate ] sfx0 \n\n\n[ up crate ] -> [ left crate ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n",[4],"background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,background crate:2,0,0,\n2,0,0,0,0,0,0,0,\n0,0,0,background player:3,0,0,0,0,\n0,0,0,0,0,0,0,0,\n",0,"1646648625330.979"] + ], + [ + "rigid DOES NOT apply to objects if a movement on the RHS is removed implicitly [by not mentioning a movement matched on the LHS]", + ["title rigid DOES NOT apply to objects if a movement on the RHS is removed implicitly [by not mentioning a movement matched on the LHS]\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid right [ wall | up crate ] -> [ wall | crate ] \n\n\n[ stationary crate ] -> [ left crate ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n",[4],"background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\nbackground crate:2,2,0,0,0,0,0,0,\n0,0,0,background player:3,0,0,0,0,\n0,0,0,0,0,0,0,0,\n",0,"1646648958460.208"] + ], + [ + "rigid DOES apply to objects if a movement on the RHS is removed explicitly [by not mentioning a movement matched on the LHS]", + ["title rigid DOES apply to objects if a movement on the RHS is removed explicitly [by not mentioning a movement matched on the LHS]\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid right [ wall | up crate ] -> [ wall | stationary crate ] \n\n\n[ stationary crate ] -> [ left crate ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n",[4],"background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,background crate:2,\n0,2,0,0,0,0,0,0,\n0,0,0,background player:3,0,0,0,0,\n0,0,0,0,0,0,0,0,\n",0,"1646649072656.4766"] + ], + [ + "rigid DOES apply to objects if a movement on the RHS is removed explicitly, even if the object is replaced by another one on the same layer", + ["title rigid DOES apply to objects if a movement on the RHS is removed explicitly, even if the object is replaced by another one on the same layer\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid right [ wall | up crate ] -> [ wall | stationary crate ] \n\n\n[ stationary crate ] -> [ left player ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n",[4],"background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,background crate:2,\n0,2,0,0,0,0,0,0,\n0,0,0,background player:3,0,0,0,0,\n0,0,0,0,0,0,0,0,\n",0,"1646649296576.2854"] + ], + [ + "rigid DOES NOT apply to objects if a movement on the RHS is assigned, and later the object is replaced by an object on another layer", + ["title rigid DOES NOT apply to objects if a movement on the RHS is assigned, and later the object is replaced by an object on another layer\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall and target\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid right [ wall | up crate ] -> [ wall | down crate ] \n\n\n[ down crate ] -> [ left target ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n",[4],"background:0,0,0,0,0,0,0,0,\n0,0,0,background target wall:1,0,0,0,0,\nbackground target:2,background crate:3,0,0,0,0,0,0,\n0,0,0,background player:4,0,0,0,0,\n0,0,0,0,0,0,0,0,\n",0,"1646649418277.2751"] + ], ]; From 3b9365179f76689c339446e664321452ddb64a0d Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Tue, 8 Mar 2022 03:19:43 +0100 Subject: [PATCH 058/122] fixes #869, #870, #688, #864 fixes #870 somehow though I'm not sure how. fixes #869 fixes #870 fixes #688 fixes #864 --- .build/buildnumber.txt | 2 +- src/Documentation/css/bootstrap-theme.css | 44 +- src/Documentation/images/rigid3.gif | Bin 0 -> 9830 bytes src/Documentation/images/rigid_11.gif | Bin 0 -> 82728 bytes src/Documentation/images/rigid_fail.gif | Bin 0 -> 8439 bytes src/Documentation/images/rigid_many_many.gif | Bin 0 -> 14047 bytes .../images/rigid_parallel_many.gif | Bin 0 -> 32879 bytes .../images/rigidbody_one_unlimited.gif | Bin 0 -> 194577 bytes src/Documentation/images/rigidbroken.gif | Bin 0 -> 9494 bytes src/Documentation/images/rigidbroken2.gif | Bin 0 -> 53499 bytes src/Documentation/images/rigidbroken_uff.gif | Bin 0 -> 7613 bytes .../images/visual_debugger_rigid.png | Bin 0 -> 10467 bytes src/Documentation/rigidbodies.html | 502 ++++--- src/Documentation/visual_debugger.html | 6 +- src/demo/rigid_11.txt | 104 ++ src/demo/rigid_many_broken.txt | 176 +++ src/demo/rigid_many_many.txt | 202 +++ src/demo/rigid_many_many2.txt | 190 +++ src/demo/rigid_one_unlimited.txt | 180 +++ src/demo/rigid_parallel_many.txt | 158 +++ src/demo/rigid_parallel_unlimited.txt | 212 +++ src/demo/rigid_scott1.txt | 12 +- src/demo/rigidfail1.txt | 8 +- src/js/editor.js | 3 +- src/js/engine.js | 16 +- src/js/graphics.js | 35 +- src/standalone_inlined.txt | 1 + src/tests/resources/testdata.js | 1194 +++++++++-------- 28 files changed, 2277 insertions(+), 768 deletions(-) create mode 100644 src/Documentation/images/rigid3.gif create mode 100644 src/Documentation/images/rigid_11.gif create mode 100644 src/Documentation/images/rigid_fail.gif create mode 100644 src/Documentation/images/rigid_many_many.gif create mode 100644 src/Documentation/images/rigid_parallel_many.gif create mode 100644 src/Documentation/images/rigidbody_one_unlimited.gif create mode 100644 src/Documentation/images/rigidbroken.gif create mode 100644 src/Documentation/images/rigidbroken2.gif create mode 100644 src/Documentation/images/rigidbroken_uff.gif create mode 100644 src/Documentation/images/visual_debugger_rigid.png create mode 100644 src/demo/rigid_11.txt create mode 100644 src/demo/rigid_many_broken.txt create mode 100644 src/demo/rigid_many_many.txt create mode 100644 src/demo/rigid_many_many2.txt create mode 100644 src/demo/rigid_one_unlimited.txt create mode 100644 src/demo/rigid_parallel_many.txt create mode 100644 src/demo/rigid_parallel_unlimited.txt diff --git a/.build/buildnumber.txt b/.build/buildnumber.txt index 3a2ac0e3f..dfd4d9fcd 100644 --- a/.build/buildnumber.txt +++ b/.build/buildnumber.txt @@ -1 +1 @@ -1701 \ No newline at end of file +1704 \ No newline at end of file diff --git a/src/Documentation/css/bootstrap-theme.css b/src/Documentation/css/bootstrap-theme.css index 492830b86..3c475017e 100644 --- a/src/Documentation/css/bootstrap-theme.css +++ b/src/Documentation/css/bootstrap-theme.css @@ -19,10 +19,50 @@ dt { :target { display: block; position: relative; - top: -50px; + top: -60px; visibility: hidden; } table.padcolright tbody tr td:first-of-type { padding-right: 10px; -} \ No newline at end of file +} + + + +/* + * Callouts + * + * Not quite alerts, but custom and helpful notes for folks reading the docs. + * Requires a base and modifier class. + */ + +/* Common styles for all types */ +.bs-callout { + margin: 20px 0; + padding: 15px 30px 15px 15px; + border-left: 5px solid #eee; +} +.bs-callout h4 { + margin-top: 0; +} +.bs-callout p:last-child { + margin-bottom: 0; +} +.bs-callout code, +.bs-callout .highlight { + background-color: #fff; +} + +/* Variations */ +.bs-callout-danger { + background-color: #fcf2f2; + border-color: #dFb5b4; +} +.bs-callout-warning { + background-color: #fefbed; + border-color: #f1e7bc; +} +.bs-callout-info { + background-color: #f0f7fd; + border-color: #d0e3f0; +} diff --git a/src/Documentation/images/rigid3.gif b/src/Documentation/images/rigid3.gif new file mode 100644 index 0000000000000000000000000000000000000000..25fdb6ef6608be1fc64d88550bb292eaadcb1c88 GIT binary patch literal 9830 zcmeI%cTiOAf+ld%r$|nsM3vA$(}0pQO3oPs16jIhauNjv34%>hXvrBGnw)c%ARP#j zp~;e?NVbJ$xc8gcxwU&|wx)J>swsp6Nre(*)=P( zzl4%A0-vEObGjqwxV6(Yt8#mzZi_)@QB`?;AMdI}vTIc%&~Sc};%DgUd~DKvdrZ1k zO~F8#wD;C5x&}Fv^)QrzL%X(cI8PG}e2%Ft8buoBX=iBH6_1x#)IjGjbtRJ(Hru`NL&ZV|2`M?JZe!(A_XkEntNzBS<-Skc zI+?mDe5=@GG3WXICNW2Brb-m2Ub8s(TY*W5)c{UxYogK~n<;cAu{+b~?Ob2h((q#; z;x*|V{qy?$?@Y=X(R{A@y~@JN$TI>&nJFnWDW+fZh! zWSekSW>k(FNf^If#7CI)ce^`lj&>h-Wb1Q@qVqq@L1DMI7nMvV*qLe6B^R0~7Tnq$G$TaqYrWJLij>5}E@Ic#=YpH@6 z9W)aqxnH2tf)$=XDR2aKBGJWb!0PsHWn6O;qORXg&?0WkuGp2xNK$&Y2BoI6)L5kt zb_?5>FJAdH*Z%ui>p`T3TN~SaR7C`SkL_+7A$8Kd^PE_B-~HO1()mt`(Ik)VMg^*> z04jt2%pT^xaL=zK1z67@wxH4{C@!`QPxNtI^Z^7|QM!m0ZkY7yN1Ex@_(?8+=K5uW z61|5`x~Rlo$Ic|OI&fz&}Wm4)pg*MWw zud&Y(^1wk2s9(;Mro646br|KSpR-zSt0T-?96qmGFeW9`F6uI7)-I`YE7pF0C^lcS zEX%FXx$^n3+ppDRaQUybbier~@Av>={01UPSa!o5>4@JdZ6Lh1%w)jPZ+qsk<< z4Cy30a0?c6$|m)_{wP7yBc!&(MqBv9qe&+^UiO{4+lsH^=^`urE1z0<>yvjfsk^@i zfwCzpu6N%CdW6rF`d#L@_703fw{r*_GZu{<| z!uyJx{U6Cl9XiQ2MU?lP<;XM81qu} zz5Hu3R+-i{7g>h9N5s-~2+?STpIX^(15Glye)35z2pBpx?>Zcn8Yx$Fr@d!o%$$;s zSFyff6s}#HOX~_&rH?d020Kk4BgqaY9hUsn&UEhspjz1 zYtNBd_FG12YfLiKW<`4L0;UcjK1j8%z4eMD&Mii$6dv(wRquj zAi89~i_1)e)SNS+P95xO^hB$6f~L+)#l6k&nSl5t1N1Fi4sIm%q_$A6 z4Eh+0n`l0%tBko*<^tB4!QoEo8wbkV{IE0g_>+cC>T-_=o!Re+l6U`CEkgbyYW`B> z|B@oM5yXMyc0pXR$<{EyM1)=B&oY!`pa=M4Ynu5@< zdm?}sbYevyKUhYx6cT^ZzE>0#>CaLe5sTW&A`}~+0P{Hpo57{`t`w`z=Y6fx2{I$b=%3pm(V-={6^F$0{z~koYue>HOS_8fwPlKMPPuel6znoTD z4y&KAsCe!$<>oj2a&|Byrhe|lvQRx?-uiH$Zo!h&t!~kTk*01*k2?_g-A9xYx$LIg zUa$fgk?Z_7MfQHJXGd`Q&v`Te@SBCma@j4!(8bJFWuNfx4V~t_nVrUU;ehRjQpn#w zI!EVyH%tF;KmVD0SYH1FC3ShFh|K!=QRAPAbTt2|NbaACEc{&&0v2>}jvdpNJT(xf zK(w*^y_*A?JmT@5d~WQz>=NRAL}T=F@C5;yhg`&Yxs@d$p6A{BV_!RKrc9q@4xir+In0ZGLR zGP1&$5&NhoDm3 zOV-3Ing(3-jXupG?4{$#^enVT)5p#o0n}Q_4x*^|c>%ECq>KT@m(esRfs9XXwNOjZ zZY0AV4(6VjHc%$iWTTe`6ndKs-cG=i@PhryBI3igv0-jXT%77)l_pVNQ{6ik#+psy zBcOyaZN3a+?VQ>XK%J?Uh=Q>$Onmh2_?U*&oRPj~?I`Q9sk+izBSTB^F{Yd2su~pXe7*34B8A$1;ocGoP6?Jnt|pEh`};|X^EAYp4mNdbE;s8(rd+cp7@%W^JVy! z}9qo}Ujv02dS1@~jJ<8c+AIYA#1L5myo^_5A#wi9TgrqKM7s?n}44xE&C zG4cG>@ntlQVl%g~Ax<^v)J!(&|3ndq|4b3q(?*nDxmOZ)c1`xQ>03;>4^n4tYvNyR zq5a1s^6$1>z5T}|^Or6EzuGdNVxQ@MfC6VJ5pEQI3ZZ%8kQ2@YgXHRTq4{6CD*EGc z`?i0S%-D7fbGqE_ z{>~tO-}Vv{z}5p$-tn-#t)na4hm&O6L-8a<+o1W8ATJE)FwGi!U#G>ZUnoo08!NUD zT|FS1m+n2peMohLQlh{%z?S#p(5Yh^!_nE= zDV$jwZjv>ZLPteiM12?lak2YF0H;b83`O(7@;Lh- z8ar)OfPnO6;_a!vA4|hL!R-AP$|jmBgg5}q=MKm8l%^8!f!Ez94n>d%fF5Tg{KWyn zM^c@`2uShSPIUF24hg@Rq8H$q=pt*A3T6Q%8nalG@9rj`p_JpL(Hh1CAZ6-TxM0xe z?O(l5+@nfY9?w(d0=SkX6A#fo3?5^GNmOiVn{w2s&-SbdzNjAX7#uOi>e4Y*MMe)wgbOS;j}}GA%{t?ZO*3gu6v!Q{USamsQi=1ZMN7x;8J zrTc6FGRx6O2njSL3<$^#L>E3&h9-W7@)qc$iwr}ca6~arF(8yW0DSyRa zE)ncIVnZ8H(kp8IIQ%WhiJ|3QpSHPMTw7^~Xvy@TA@iemH~x7-5&N&&GV|`wj_aSv za>dI3)RFxq%U`nmZ)IuDAo`}RGfOmPPPtJttSskRH)e$e*W+mVTpQlnrR~MoCbxI~ni1)+y!K|VljK(PecNk%t&Cqn zjdq^)&?(91ca4a)R(5YPhyVP_DD|ugeajg%g);P--NW9`Yfb48pL7xH zwKYah(#5eQ&{3LgO;AMJDUoK6FoNNz|HC=DYEFt@LV44dHAvj?WG5O*ZECd$;j# zvb3J={r=JMg9BgIQ+)0GCyK8^{-A48=e)T`NaW&Z>^kkMwV{&vXUDUC25%3+;5#QL z^GWXQKNiI%c7E+NxCh{CnX^)VAEnU-eVr}0z9ft`iBm-1#g|LTlgiThcgJO4^L^Y&M6@5AKb=j!Fey=UK^4sXIeT1JQ;ey=Fj&xG ziTIIb>MghX;i9F9l&<^_+1EUX2y!b+gg43EcPZim3zpMfLZnlQJg zU=l!7EQ|2|j;IXOnHAK>hlL!tq((C4OH>qL%}>B-v$}&~aisdmRmLd-K=5#-OpC-t z47`_VRPGUrfnHZk@)!X$DzCMvN4CqDaD23)u#{r(dXOPyovKh$CP_!=xaML1Gd2ZE zs6jZsI&GuJNY(k5A&Dzf)--6s-fU8i64rdsB^o|I&m8ACpbKjBJ{)I=WB+nE1b z_x13j!^)v%CUJ%hfL!AX=Iir32-Ab zjF|#y7eVo<(0fJ#zY!k=0Bj=AKYavj)9keK^)t3!7b1=Jn4sBt@pvbFWM*-(8zHp- zQ&d`kXD-POZ+cSVSs=N!UD2_J2b6R&KP{~+orCUFH*%GvR`-i;@6@!Zv+dSm&760u zr&ukD3TIx*f%Kc)whJ3eemd?oZ8-iGDqgDJcGF+|D(LRCl^RgdaKtS+v^y( z271!|2W>&g7Y1{!{cNh1wfmj>%IrU#82PBmdvD22iM%2W19|1Tx&aPQVTq;F=zDOg zLT?c5;z7$)ul!-(+;sW@c3@LCdB~(Vo#k5y{T$+3GK*_%yry-5IQE&O-t;J+#z2ji zX`V~|SVZs6@ubaDy+aS1B-i>WX>RZd&MHsOZOEl>&MWa58=zsB^_mf~KYPk1-Ns?}haI)|=n9 zH*TPd2-4e7IH6`IDUXwl_}`i7ye`tZ{|QGkvwy|R`2qSCZGd~f#uYO?CaEty$G{aA zM}yV|vnPuY)@@$N*Y6U3ZLH5<%wY0=1fFeg&&~cm0^hk@IGn6dIy{|RnI#apWFAi? zr4zBS&~3z5><)x=^L#Nz|I zVW8Q;RPXQ}edy&MJNf|3QfbuF9D!LJ^hWwqRvqzX zaW;{lWvu@|`=ms(Jf?xbg`XrQ%C;;>j7IzaP& z^wV;fy^MsuQ9px}+W669 zZ^KuBv5!n9S1tk#f4p$YDb6XpyIh3%U<}Gj6~`&KZW_fr5J#l4UojIYkf@Kz{}{44 zKt5G9i}C@}mI<^=7n`7G#|)I(Obj>0$E0ui`ZDhdxWwX{5kLt``M1UP$*i(SZC@+# zwynnU!ts3dx)N9pbk~bwB0R3HG>N_>c?{26k9UoM=uJLejx;P8xoHn>6LgsMZ*JZ4 zE%qK4v~FOYYN3&YywBgZ&8eNreb@t>zGw5c6I1%9RI_K<)4>h|Ga9d-1o1p4SO#r%L}Dr*ybD7y29O> zOUtn3(7kr&?CJyATkdUnb5Ru`M|)A}?SxE#TW2S+ZeRD zW!|2U2I_j;DrV;BS{!Y4fhcKR%tQ*fmx|ne8?}e`Bn5F9~i71co zt&$~ew+|`@n})mu`JJ4zz~uO=U=yIK3ZwrBY2(RsfaxMK8TCkd`SBI+7TIENI(<+( zcD_P^p2)J*BI`s<-1Y(vrv;DM^BBb5n`0dS}6Zd{BN*~Fd8 zn|$X)E5Ik`YT_b|gU8^!^y3_Aj$n8U$w$7bZho0zBOW;L zMVdZKylL@)ZYdc|(Au)VBG4hR*2Uoq=XCb735Jh&@8tqiLZ4wUChjxO$O9OQu04&n zY#!B+XbxJ3TF*pwn2eU6Z(3d1l`&=Rd{ipsMyGiUJQaO3EK_AUKv~8ZyLmokC$Ew0 zVilDcN~q$i+qX=6i8+K+t3)g2^$rnHjamMouu-j#G<0|{mUa0CB7X_H4GV|oMo>bC z94EfnS&GANXRI%Nn;2G#`HY}Dp41vLH&!S!brC8X)#+v)l^S4jkkK-xWuO z;hhX_0>)s*wS~8+i|js880UZ2%hMz+*2*b1Dr){*{CITGkk+xq-z~xB`M~;PQs#+3 z*6|{E6|iv(CsYr`mQ98T)~&D#HLsNxL7op<9Bz%*9Ms7MTnHLm04=^w)q%r=O6_Q( zKwp`$Rh=O&;M1& literal 0 HcmV?d00001 diff --git a/src/Documentation/images/rigid_11.gif b/src/Documentation/images/rigid_11.gif new file mode 100644 index 0000000000000000000000000000000000000000..14220f4fc0a162bd435f794859c4d6aac2b20e12 GIT binary patch literal 82728 zcmeF)S5%XI`{;S>fP#;ej$JxF51}^;DjlqJP(DlM)78ogjS>e;kz%z!ou?V_iq8io#PMx<8|xzdA(WZDc=u1lh;oXnai7iO{A;)rH`5`P zm-x3TsqW@uo|e>PoagtpG>q%&G!a|7G1DA!{)S!y=Ep);qS!l9L)|8|KU+Ip4_Cjn zO0IO6A>pt)8?$Xp&<*{@hP_SNP~p42M%=;9_XR?_epBPo!S3ejOkY#e@82wEQT(r~ zP8ejoe{o6nuTO#kX=zUEQu0Y5(JyzoLqjz+ZiYt~%R?fPzhJl{Ie^?eQCFZ|5Fn%+ z0|6mgb|K)*0eNV2?wl7irr-w#8e4o~4;oi~NdXpLeGhfhK!cZjH<(v~&IRNX<++vo zN@Xu2ndgHyELGFaI5Umw>-a6mjVzul$Q`utZJ1C!dt@=oxPo4<1yn-kcrMcC+LFYeo^Vj^%TdnrA8iS#Kts_3v#p7N3wj4WbBfDz#MnU z_|3`tIrG#Flh0Y_&Ou7cc5Y+K$~mlHWyMz(Ov+2RHhKT4j6 zLm9Qz9;8Y2o)0a`)r+2X85$mJ0S~D}PwAMths9nc4S$O{F9E$e)UP6^z z`HAQ1^IIF(SocHqi#_n)YIMDL_`T1i6t^{f{$aq5+ZBE0-b|$nb8@_|Satt9=-u!A zouQfS!!_#6w}~I8GLE*nR1ewu10B!5KY6Z8mWkU4+&8^>axAa8Iy%BK>xvdx6eY`< zM+~t#b!+ivN=t7L=`P>Ln`hpVA72mX50h`p7`p5EBtGYJutfXZd3Ww7+%aVznKD<6 z{!;qd###~=@!^W)rQdh}kF)LH-sPGS?&iawSTyvDX(@VB~IwIqs3l3O;u_? z7O3Q!HJ-8C0S}G$`4qaqLu7q?KQA7npJU1A^z-?2^vf9crwiBCPym@$-B|O}cgRT? zjT_sSJiq&hgnx38)d?(wJ`thqz!sJKMQ=0huuYSfo zVZ_j_H3>P<=oC!vy?*Bcg2jG9YU2fKi6D{Q4+$}8ojTS_aRt5BQZWz`czGs6glKPZ z@y%$j^$efsad2l>Y4VT*wcSK9He4~L8w`(eyn9)nM^hu97$L&+73v?g zlL;^&roTBw>;JB)_2u$uKfO@%QhKQWGcTvPT!rt70s!T6xX^=fl>Ce=`#j}lV9 zU7gM$Zg*5OF%d3R8~&Ed3#wK1<1bHJ{59yQLbU7xax1qln(|e_?(vVispw%R=M$y- zGSvIY1q0?3H-L%xNSLAB*wm6oCA;j#*Rh!thOxM0q%ZKxb>1~kw;(BiP#LftmE4PRh4xf+mG zr@;5+rEJm5tG^9QR)fDZ8i~L0DDSPg>-4u*JnDmX-e|NC$r-2wzRG*?a=S{5{b!pG zi?=|pYK82iUOm(K*dRHc^!R@1>vX@RWDSM(Te@GZu|)|FKs;Rv)-FtFyxFH4_>@@V zyay3=hgR~X;~np<0f-s17gFj9q(k>5q>7)-Eq#SvCxfpD$OT#kVx07Sq}<3GPW$Hp zFClESBGJij2;?{3n=G5=$tx!~!vw?p#HtH?!&k5cJ|jvFGC}Gbt41K;@O(jav0B*b zcbbV!g~i`q0f@@?+T^kJ>w)E~Ajc06uuW}x+m(E24t7?Un%8Fv!@dwGl2(R85of;) z>z$v}e*I=5LDIzKi}icNZA|Bs>`wiexJmC?tj$(u%~R9WbthlhX}?ji`VoG+;NR7g zC%B4g&q=Q5jvq`tBgi?9P^wQIOxRp(!sy>>vlHfIRl#Xd|#xY5EJ=vt|PRIY_@@p6lBV@udH>hgHL(&;u{L)fDlP9siPC-(JN< z3rjiKF-MNEy+IgqH9g-b|Lw#5Rs?ekrjP3|cz7^+M{pbSu7UB-bKmI+rc2$$fLYJd z@>c56_hzofpJMtG1Old6oC`{AS>8Em^n0J&*SKBFOh2l?`;BGnHO^q zInyP3&P#?375EDu_`*=;B1ZO-t;`jTAev3k233X!CCg_dBR~t3k*Xn) zAMzvpX*Q&Mjj!BcA*^pY)S^_ZqAVk#`o?@as1dh*e2VvSO(ciVJj1DDzzhvLP^7m$ zIVw0U5^xPz<`qzp7TkaWadX-4EruhvBURKue^Wv3sR1n*|6cAdrnX>na^yQqgqLiz zf?8Npm;Zo9NV>e;8xIgLJo*bN`VBssu?%)Q7wr`p-iC^q-ByFp!UWYE{N-Zq??!6~ zM;~HzYtMRaMg}r>V^<90LIF;^+;Pvn;#eV}>SC{q$M$i@vv|j!>~=Wq9i^NW z&kKpW=`DXjGni9E=51ssLs(WwGgO3!DI-P?kq`;Jrs?xfoisopL}uJVj_#vSAgvS? ztl}LaXcvF4Amp|}!evNO*k*#&>!di=cwUiYqoL4m!p0xD!@2AHETTNrxnvh>JpHSa z9k@f@K~k)_Qr-hn!l`ZvUO`W@Q{1}a*D#?1J1M(q$>>ihKMhj@$GzOsLe8nDP}95v zcoKrx(j2|@V};y9ctREH(t^g*Osk_R!u%8y&612EQS`JlZ!mN`dSDC!-h-rer$X3L zON3L^tf2085Tk_@JRT}#2rVl}sW5iS^p1|?fousU)Ta+`bbQ9JviZqqe8WY(GVoo?hF-J-G~{LO4buf##7z^N$%A0#2hRpM*x`Jx-Ful z<-)&`t;L?Bqv&C3pY?W3@r`1#xKFMwZ?GXxHkV?yg-PyvblwNv+@j^YyFOXgy!p2F zxmSU?__Km$k#@{qY57l1#YS+0-m!Z`nneAiB`F!i>_o<_(?9iiNk=OJfui}~`hplm z(Br6gHSz@_5kNmf)B_(B5?#=YLA^^YP*wxJw*eNYN##I6C|;SedH_~2;7UEZd>@tT zRq)-QFq0~oXOhw$DUE{yh(N%nouZRB3+>g59KC=fV_&q!(@`zyLDAv?_M!&SqDo4! zgpEYEkJR`+tgc>qMzo|6nm5ZGn_-{I3AA1ILWYi(Xl<4h_Y{<}my)zfM(T?cB8n$W zV7_(0Wi^EdihTvF<04?6XJgHL>N`R33|NCyPpKA@2ZmCB z4QQt~)j~Y%>r2Ec>mj%XIyO!d=VFgLtI$9bt2eZ1OxAAH#5X)!XaJ~Vb166&Ut?%j zlZI(MkrlVc<_)%DIqTQV3U6j_Xl8>WV`^|Lia2;%^HsAJc1H7Lc$2PB3(TrT(5!{~ z(1o|Cd~#gjhF>cef2-@+reu3X;ltLmMXh3tx(RRel?!dc;%(=YS~0e50^l~GqBbEh zT#{DXhIiW|M#~ewVr9Ryd*F7>3$5CIB~Rf^{dD=4MeVOA>vW4s^$**Oby`e&JMaz~ zrP>`9dz-*R5O~pZ>JzWOzQa_PnjHPQ%vKuIEvB zrh~MdxVM8@o>OmiAXuvq(6#2!wW3`Uc>#Zzv9@$-(+2Q`(G z`~C7m{oKUfQye{K5Pc#Oa5m7TAMk;@=6wvufsf)$Gd%jiA=ql%ulF8efX~0w&$iz{ zXW-Rv**_9PLPvw%Q5Cm{xW`VH?%;+ls0^8q2OdQaE&de93t@R7F!D-eMSt!)>P3AG3qf@ z>xCGz!i^z*4hKk#22R!ZtB^n9M&BRFM^24|;RKovx?e4jAE}ME5PCu{K*b%~sVU>G zR^zItC@}GH&1k|K@nM~43cnwr%uzav2q-P?%4ujSCboZSXz5z*?lF}qF9zTcgi0J1 ztMYY&;cM8C+Y}AxRtal4YRE$jqW$}8nQLuDx)kloNkVjwig_BVd0UT3w@1iSl>hN_ z=aiNjNfb-THJeUWna*6B&Q_V^KboX*45C*jt97O4aU;2i89vcw*wmEzVb5r>^nugJ zk@@Tw#!SCJ%bjl;`zyTJP)4Tlmf2 ziuUP!7>BbDhlO$}gD0|jZpsx-D8F&?p{edFbK0n6`WXj>doYS9Z; z&NFW$>A;xf7}8vlDm_kbF=c%z&3XAl06kiAC5m$;w~>||vjU!8DHL4J=Uj~?RU%av zlbu)LdaJd1%SFr;h-x!*nvQLx=d7=kGgnVY&gZGF9vlv|B3Frmbc_XqQ;#+putr9% zQ5x4Kr`M*LYqNsu^Q!BM7VFCa>ony0iXOFhT8dP%+P}U&NLsBBWPI0K!#6Uv1=p(e zHo8dTYtzFL55K==jguwc3mU)krvKn~VQ|D2 zZICwFn2cTK-5=rtKYud6-~IOe{s!sF#qS5mpLf1(h~L;e8T(W2-FLBzt0zwUk4PBu z|5P6TpyD4?{DX>rQ1K5c{z1h*sQ3pJ|DfU@RQ!XA|0|%Pox<5Nc<(rzvITK;#=E!tLzXY!oMrkrQ-8xt;eY9j2tNxV(p)qDRei8^w;pPEwKI zA?arWk#7GxP{wAb?{%lw7a-^Ape7ONr|pqvwcxDiR2l}kGp@j~kG!~_%w&^73uiXj zWpbGyc~+A7e56=Rd{3^(-xAIG2|>=%Gj(e-Zq{c}6tW10Sz>np>r2pU+rUJd?9P*5dbxA=aMVF61*Nyfc}rT;i}`oUQuT2U0#nUIl7uTk~Dz2iF0A*b_RD|lF$uzd1KnF$R^Cm0x=#i+ZGr=D*O&2Pzg=j1`zD=JvQd zEq6uzvdxosWhvt=tWYehGAXR_Da7;?lyk>cawqM60`16Wva#E7*1W*@6m>z1YSD$w zU4^axg_bSQuc$81V)p!#8AX)(;yRyvtWV@m*5buT+d_0ktJc$=F2H1c3B!k_mpz75 zA3x9je$WRfwBjou`ix!=SfiBo?3YY%#i+4+(4BWr0~PdA{%_%>Onl_cXTr zSTjW(vbbPi@xqb^tL6WI`~li|cTGX}L6tlIrI50);)fIEkA3~sR`Z@YNZ)P`JE*DR zov1wAuj1gV9+j&$@P;+pmz%({E8Zxwmen{;)Hom1d|s^q0duXy-W|K*7g(*&L5=G~ zjyovG(?P*k3F9+S`((fNqm0}jT6Y{knY%IY&zR;s@ z7z^IS`ogfkF<7mTkbQLh?kiR(&y=9d4 zcTeOE`^HdjnFRu1Lo9rlCzXnIo7DcQ%q#Pw5O4qkfQ;d9UEvu!Utx8*Dnm{3Av}CTd+&lzaQ*M$L$1PlM<5og)G{}na*GlmFJrI{U$)7>igraz*)h^UN zgZrvawr%scJ%T%Sr?d;#w;M4`O~9pQlN}{n9a>6l9~$gG9;S=rgUjT3G4&1#OD-K@rcR zl_#rI@zq6q0cUk;k`4>g%_z>^~HJCM*f?H+GiZD8XDdGg^p=SMLc1Le09;}rL@6~{|8io`MGIHDai-~4t zef)%ea4-8RYC5ReLY6QF@18q!5rS2E`_=6Gke1;j^j+MdUsu0aU(r)ytawX&Z-h0h z{61LohfXh{D6FNSjcn2v?0AW$(|_2|Q{z}YVpKB5*1rMnlgR5kI_$@q)vUs+>=`8P zfqsfve_{ji%?fis16!%(IB-X${~mFm*Kv?0Gr(Hd$hO+g%P}CV64un)t}bRKT=;+? zZo-XlllJe?MD%#&^}l6Ae&-)i_y4Ht6fJ=e0Q#A}fQ)ojjhIR3SR9QseQfw3plfM9 zTIV)utDE&HT3C;Wace{;1@e0{ax?$HuopQzdi*KC)yJu16-3rX5Q6*%vn2*l_I)DSU7p?J zB5M@Y;_=j}A++vr(Nul~$8eND`y1Sl?Fjj85&2c|(0D^%5_v&&?k|hk z>jATuI4Rd+=C~y1_}1rm)~But&NDRUjSFYDRptds=I+N#-yqG4NzOlzT#(S4GEk8! zNmx*9Tu`1~P-QMW5?p+uy7<&$@p-_a269oWaZzV_QIEO!LU8F-j8N0pp?@sq4Fl#m zkn@0;C4T18P2`fK#X`5hpm52gDChFuCCk#1%d&a{7J|!;f>Z}ds)q&DYkJwWWU0$8 zfaan+?X9XF}%+)%{jc(43&6u?(i1jS>^-cgd z22J&L(IVGtRI!evi;Uoaam5^|@#| zey2z)tCV9GAKUmVUf**m5wTa4Q@@30svfOtKiqq7%Jktw+EEKR_NVoKe{cCM^TR53 z=?Q3$)L$B~RXO9ZelGdYz2-N3poux{`OPTtTl(NP#@TO=H@~sS`=9iZIZYEetKq`R zD$R}w92g5U*bGEm4!UF%blujE+en7DON3uO=;1=p4Gn+STK^9b{t|iqbLt)0HFWY^*rPk4Vj7`XtI&{9x1ZZKrd^?IyP*SIVO;WIyKln{yh8m`!cB}m zFXl(6(!%lQBJhSGU2nszJi{KRerA5E3FRIMliv(E!xDK@ID$_-BFr|zC^A9|6AmJW zM$;lX&qZ|zMgCBa{9qGVS?dZV`@w}-VpxHq!k+&;16tYuV^bqImwn44pB8h6zmgAs zqY;&B8x^5p>&F^WKn7rU0UuaFAH9^UyX-W(Ja}^=(d6)VyWtJo5smT@B%=r$R#S4k zV-YP1zzs~G1&(<-ID1AfaYs$a2hzJ7R)sy*P|>~QfFF^%o7^5-+>z9@puJs@d0Heu z82HjP1S%D`NRB=8K2AF%4w4ne=!$Eh#%Z03PrDueOCx@DC-ydX95O5Zuq(dRCSEfn zKJ|9Od-a5S^mtj;1Vk1y;T=BV8a?54NW$pjuMIW^@^arWJBcoyK*86(m&u8j&V73X zNwN`2x@qMqWfOc94!Vj;dcy-YqFP`2;%0^co-Rf76wU* z7?*PB{^qoo1R9Turl+}zL?@g{0}CJ5g~_RGNwJ!e8A35iRxBt86kP``8iy9zMTbKm zp46ng0zip34ATuQ(@f5`lZ-cpos5IEM!~QJNjSRXQ<0dqI(WUp@$ZE1C&0Tq;lokT zjwpz~h-np*4c=mm==DZqiNFGD5zTbO3>{t$L1<_otL=~kHsnJ#M0giMWdYg7mW~lh zZ`DXwwn}e}O0UgNpCKC_+QFEba9TI)QLV3MomH(`Vr&=W)J<=eo?uIAuqKz%Up{VE zp&9ROGT%pJs*n}=L^B20Q?1Try%Wkx&&ibT&Wtw9v>p#$uyI#1%JQHq3atP>H8+`- zAD{{L8qZL=gMyp*g^8k%Whh@NbVm+s%oXD_=;5%OIbmv11;&*mFOgBn43a0 zUcU6~1mN@pfDKlDUMcbj?eUvZY;nKzxof$yT7^<#IUBY-n_T{Wk6D(6f&it<@0ga~ z)2lGI^*U+z3hImhZR6fwN*KmTF2?9GZJA~!0Wh|j*b2kOsppJ1eC>n* z#tQ)pgft9a`3Fey<@#hCp`mHDu?2>t!O$q$ahrwS@s(Ku0S=U6CX|{ebhmA#v|a7y z{qs#^P%}lW>2JPf6PtX9Xr=v7(~)n=NlN9)`IctUiYrCUi>ocms|}OqD?ZjmttnNf zpKnd+Zmwi2=Kx!s@iFC^ENS9t3y^6mIQ3Q5%tYQ%Vz91le7LRkE%cF@;gg1&4sY8L z?(MH%ebE9N=_pG*J#433?eJCWcyZWJY}jTbu4@2qH)j~s%UKQ;7FEDNpWww^eA2Ex z*iUw?tpGyE;i7x4HLyn9j0tZ0h_wCU&D z?6b;tfxV@Py=6Y)U7S7mcy#yhYS-J4?u6cMYX;s{yoc>{``5O17sju}ML4Etm{f9bjI3RIaw7-F$z&=Gp>=75}t@8~8PIFTKBq8&Va8_dA zk^pH!@<4cxEwr=9J{@vcT-2`7B$&>~EDMs?+S6 ze+2vb%n`>d$8?hUvM6uk9RKv3Aam}f;QVdX`MVbL_XFmIk@KRB^WxLKW&ve$3+Il0`M= z#n+sWx13Azf=h3Zi$?29Lbyfc#-)$bi*2^cvAR-6laq|-Nhi|sI&tY;z>+0$>6Ika zopZSXO|4sXq?+qdeK~3VB7dtXF+NtC-w3%%N;Gpme6cDM7pX_U29oFJn~ahmG03oKUL zH52FM|AhLE8Svk;#s8i&{@1|p|M~h8`TdFf{zQI%BELV8-~Z<#zp9d7*Hm4m<96t~OcB*Z^Nh`tRfOD<=P zDzcU%jJJJ|MT-hhKZx*|1iNilp^_OkI1^)F%=PzD+RS1{8{e_+*6qTGQ{qmZ1k;Jm zit5yR5^p$KC*}u7Yfm4~EW0^OE`PmVclNd9T-xg7it6=x`Htc_l*80IXHE8ko#;TP z>sXn>XoH9Q`?n*{EwEX&WgEGLKL46BPU3Q;cDVSQ_Zlg!t}Xc?;25~1I0GJ)Q{Fi; z3Aonqj)8b<|2uaz@RX7z<~kYqv$E88>-;-TLTZ!o8Piazi6t(DT+B6k_r#?J%d?*3 zjvF4IUzN&!s6%p>%IW=(X-a%wDnZ6`oQ=Jenl*yt;1N;Tw)+uKv^X`goot`{I^JBQ zXB2(6`;mEtr4@RqUJw#(pxT`j)+3n$sp(K&lVV!dF+O4g#uM7y?-<1Hw@JV6}M_l7g;-Qg*2k8N<5 zpO`9+J{gdCYl^o~Q8FpXAPJ$Jj2tfT@r*xwDQomj!btWvg-EuRD1ZBb@dByXTkza9 zv581`AL1la1#3G$?&)xxBDdkff0)&E*Ye`GIw=Me^F4pLZ*A9RR~jkJ&qm}!ny$_5 zjLHS^Sh!qQ=kHoG@QQml^4V9LduHmaw;7YI(Q4zgvK_I6(yBJ{1@z5q{_6F*Fp&WH z2<)}_2Y4@Vx$&3paDF?Hd`geEg==i0(enN0iolMAu@qH#+sUnx;Z2}WKyzf)l2YbER zRX>fI{B&I=Oa{krn>W=|`kwUplweiA=k1^vIL+#lyUd;Di^tS=<1piv;I`0^dke?MpAE%)}|T)TrU63ci@{b~?jqE9V36 zl48Y~5ILa`>ByI(9wEIcCW;y?3THpK893kWaL$(reI{%r-t|V5=3Jf_awW~x2;i3f z#Die%kS-ne#3)StoGXADdh7WsePIJhl(9}%$a5n*4fpVm$>H(U;U9JlR8U$EZQpKe zhdtbMRSyY6W`%t=48MObBJNoPQ?b^?$;jTE7OshjK!rsbV!ljYasmW}YS^+sF;Q@G z6mmBzgBzGdi?G^p^teN=uvaM(ILlpK8i8F)}W`s@o(v?s_V7mP)La5S(w4fIGYdR`th z%IZU=8BlhE&Yg)-B?DXJW4>#EI#IUNG%yO~*~@)7tt&?LN-UEWwIs~aaMo!@-myX6 zewr2u*^Rwm9KDIM+e(Ys7z2l~Mp%bE<>-z(p%9m!26~zD;2K>gLD-;F3O!xkEKUl++MX@eXc|1{dFHuD#ir3KaZbYKWsU!_ZlB!6O z!Kp~Zha`o9q*qZ%It5>oc9UM%Nx!a3)@BQr?F<)BO@7vv{IMYMt%#dpx5x*DluzBs zHVQI&1t|^+(oXagi#?b3nr^Oa((ZN1E+R5t>O_1+r2Q3=zwyWf6^MlJNQa3eN7PA2 zK}0~^snL+6Sdq_mbppewKK@)0*A-;6y3md1s!0#@^e{NQ5L;(k1s(vwqfQ?GI*2?)(3Zjs~E!u0&;?`;z^_I9r5n zqAVJ$x)Q&|lXFo%=SO(f^ZIWZK!>lDIcLZ@1)Di9_Oldxvg(a;Ujl>YEi>TWO00k7 zeNfE%Xp(2GmB;6kXJ4Q9sXp`Gn21FW0^647R-b2QlJ5n~>+gnIx<(WYD|+*yEPe8s z!N7cHcGZvEnf)3{VbJ_g3d+$3MX!t$glfi_{grtuh4Rki}H2P(B>B*aAkMES77DK#A$sw`96VH}uTb1Rb zrT;3-YwF50k;}Dy4x>Gf2WgdT@s@A0S7-prODQogxJnE~pRqbf-&JB3UKFcXVy|rL zfgS;KpVn0Dh*m1PmQm4_dn=U(E0Hn>>3oH;^4ii8tA%v-s#An24f(3^w^dKws?-vz zI_s;ho|jfuDtQ8`xZoT0Moij3DenZK%5p+-ajupiM{EN+qkCG=SD~!;a(9uDXwI))LJ>T_1d!;dDv4S zO}SABY;f}sZUPM8QkI$+Z=L?t>U*b6dcVoi5GL!WE6v}e)a$DPZ+SSW`ur-) z_EPj~C%$R_r?;K7*e=E1(Q>y#Tc@Mrw1qja8Qa-0P08eAyd(P5cC6Oiacpe{%CstK zh?q5B6c4l0v9f~WejVhuiFG1<8U!bs{LBiCX&uac2fSr(wGV%hYj0DqPN#rlm$x52 zl+o3BzT0}T^JQh{`=Tyic$Z6$NUdUq%>{fIe|JbxXM`Dk4cHy4-1C)R@P+TCPvCGD z1|nUYaJW+a-Q;R1e`AtP%a;p;TO&OR;?<(C?tC4*KfFv2S}x9>(FX59iTCs=cjJl( zc7@oFCeHF$H z)&0WOg8zEQUo|b>|4d+jS3=rAJY$U3U!~mdtV|de9jUdhoWc(;(}rIc_u2Xl^Az_4 zq_(p~kDN5_Pstx4@)1lqMuzx?ubSt~5JoO?jB4nPy%Qi>;#!B5hGT`t^w&oCbVu-c zW6n;0`4RhHu8lcxkhLU6lTw?`a`bUIjRh5x-x8Z0#Ym^Q$EnKWUgl%zy3*Pl<2J>k zb`s=5>(MX7(Vu2yngb5*)Ps~5e+!_9(J8xL6VT!Wh|`FJFY$K+sYRgoJh-WTZQ|GA zgrWIlD{->je=?0@lEhr=8&Vk^IU@HvP2vQm2#6`-+EgEIiXt&Jt2?#iG)0Y`nm?La z6_{R}nqKCZp-IfF98GUeP5p98Y!jH-DV}5^CRv!Hza?f*1VHx$e8-As*kWes#j_lw z*>gz01C^QMS>n>@nQMBp-3-zHg!-f{7B+v1je_SCRcFs4=TsUOt|KQdtq)wWn0Zt( z_mH%}RkHYGeL-7r@vOq)O`}Cl$)&}tUSI8{zt$IZ0~R$oml}vmFC~{P*O!hh(1y8W zJH4c%x@=8aes6(uSzmUtSaz4BdOA-Sl$0l*mz?w0Tl}WF6cn)JZp zG%bcnixZ?LsM3=x=qUm8e^cN666(ho>X&u8t1~roo&1(b&q7l38ke#;R~+=Hxq4*m z+KRo!s$Ib9XXZ*y$!b;1Y8h#@KyVdvv|58)?a*U1Hm>4J7~RvWozsjKPDbH6^`hRI zZ)2~C^BPKZEzmjWKV-aP!26$U3H-x&e;Dr%@%}L0AIAItG2=-X22LOR zoAH8N6x-XFA1Os)-OP<{X9hfTk-F1r1cV;UZb=w#s;kGQjdP_ zF!xKjzHO@;DsHCUII@4p>`~p2-|@Y{#Jqb5-&7sho@m<5x z=xakY$#D&2Wew=h{}$i*EoJH3Ul>0&dH30Sf*)%gi|&}-#3-J95q#e(SU4?MG&1<{ zF{d3<+|QuTJI)0%!KccC<~q2zD_a)_v5xUN_D z`gJAnZfNahq`Gb7xroS{&ut({QD(=ghYCUNe$L<)9FV=Tbf4wiU!V$kP?Zs=#tVc= z13eA_K57F!bPWsp@4!#A6Htc%_maUF3`m0v8rTITpzKPTV>%T%hEwYUrt5ZA5bCUaVsc_6s`Pg&sW5jG@Mbm(CR0ru@n{n<>dzWK>$;S~R zW0f@iwXV$y6?3#}w&+ka!iPA*X4h z2uV~m4%W3}c_fmQ#_IeVQep2Q+;`4@-gwsn+Z=6!(bm210ZR@?$kh@G-rCk zh`daAfk>1PSehYuwk0@s84aQG%71%k+{Lo6$NDUuHeHnOv-OnYpVekcso zz7n8r4Cb&6@d!zOcqhZMApN9V&;?ZVpds+qw#;b?;9^hQS>RXJ9uF38_ez^6^(&c5 zZJEHlvUZaEN zTUIeW_rBXTsM*kV7Go^(3Q*<|I_;Ha`m2Sk=RV0Az`x`a<#d6NJ+|DJcX9{Zb6)di zKe2bPOUw<}%TW`BJloHG!<+Y8A#b!()|!%PtCeRD^uNQN?Xsflhn7{empntx5B5=H zo;S)p_YW%4M?Y*OkCKLpv6uO_BKd0vl_V-1kA9G7QULXFI-h7l3+>HwmKi z>V3jRozs2LMLv!Q_V{QDx&rME*2)S}EQC>l&I;W(q*s%UX#)m8wbkQ(x(X3A~&)H(_ zo;MwdCDRne@93xjpiC4>>n^5p;l>#eAxv`iNUEd-mT)Zu*_vq z86v>0MzYi*u0hQ@*D%~^_+3gbtO-diGR!S9CJv&t;zfg6J@0IKU zx+<^YYGI|yscIuwl`^*Ms#3ML$yEhV9IU(I6HNL=VfDQz^zl~2XU0`{+iGTgwf02y z^TZk*zN#1OH3gzJU$N!7uv&dF%#)B>5A8}{rK(iL8f)LUXl#P5Hpc#-wp+s*vs{zv zV11-s$6zap1;OKeF$#b>b+M|Cb>E)W)MQRn7;9tPjyq0J%Bw<*obM$twz7y&UFTby zuv(8M6u2D7k}VZCDV01E3RA}N9lp{82Ze5Jc_JSMPf+MPINp4#Ej@N1Ke8$}Zi=~u z)uGiXOdTZU+bT{>$Sr8s5Pfv!92DpWbx^y;HB*HR5caOAB9$PwHBmo=RoL^DJ1E5N z5E_4IRUiJ8{3iDOw|MXp_X)uyRfE^wEMXi>L49`o-UbXCrT!*g&O)DaO ztF>JV0Gh2n4z2Km2+NRGwZc}7>K0CL)rV`XFUDFxJ1r;US_GroOnX|{#oL8HHJ@K8 zlXh&;1h?ENDlt0MmhX$wV^q5yVBcK8@aMKA8KPNr+Sl3JwHDfLHneBixBo0CPd06R zJJ||M>oj)kJS*Pza-vzwu}ww?Z+ixB>5z+|pkMGeFo7fZ{CzwGRuHU=3Z1M`_UTH3 zc8z}M0{7;}6iI%)(p`t{K;qj{Ci4@Io5AXCD5d-LpiIVOR~o;snORSiXwRL>F0^=e z9hZeJxDyrH0dT~>$u2VpBj{Y{JX7B+EnDuO+}_sP-0au(kzc01sIx{HkN3m(!3nLC zy|oU#7U1573zkES&RQ`3HiMALO?+M1D`wXF4&M9Nk;H~2R`(J~$HaA^Z?Lyy{*XxH z@2s5cSTU1XoFs0U()C!HX6u8MxF;;U_k_g`Eijrfr&`8v?-wKkdq z(--hus(ybtHs*K}CTfy1Yr9@)?tdW|6R za}3Kx*WW1~xhv3T=G1phVDwsA{j;Nihik2AT*JtfVR`N2)qkV^a10to`%V7niQR7s z5YPz}AmgOTp$P48e{!326VO~YYKr{R7Zx|A8>=$jMIfgX>m(oVn0z=Y6IYku!o0l3`)H}QF@v!NJY ziL1+)8UhGV?nO_W^`}%w49XwR>Q*UF?xH8NIHtZJC{J{!x{pTNou>3BCpPhIA12%O z{K`nh!!5)bU8lk;hi$n>ll8ikHI9j1bLpZ6xtg`ndE!t9ajHt7YvyRCws>mWe^|A0 zhCbiDS~2LfKkcJ6W*}rM$Uiq8Hg}CQ$fKHYS#|0P=ZxU=oTS9m2ab8+fa79s^w#vh zw*NgSp-48)O9?JasVw}hw;<=daEi20COUtQIj14nebR|{;FiloyIxd z^+j#YC4I>y-GI5bF-xzVmmUQyDe*6vtS^~1ELl!3g)fTQBA5T81%Q-YG5hF6g#cPO zlBR@QeCn{Q-bjn&qyzO9-3MDE3lZJOx5M=^@&^(J>7XF z21$=*(o!Vp6@tffM+cK;FP3y&ms}|hSY6Z&M37d>oL7_e7^x+6oCTvxl|fiv!5|+5 z3$6{St_@qP{ogGB^k*`lVg>wqO9gr>`4-bHB`a$&D;vl7C%LiJn2nWWkeI9cjq7G4 zM(OlMr_+3o>i0&A?@t20(;7E+kqmsy_X`^vfxH{*oIfg^89Xx#wg^5d7q&l@*3Z{7Iu2NM6BB=YAZkv}Ji{5eVFf6bFb{`7!< zdcZ$D;D6o&dK&y6khr0nCZxKfyEFc8NPI`Nk2vbCny6ehP2cOo^Umion=1Ow&+gB9 z25cAC_%BjbZRhmAZQ%6-{u_ID{nUoyt_hq|!>JdiUYrW96kNS)r`Dkc(AO9;J_{PMSoCo}r>3eC+H&@Ga~Zlp7w2ld2K-lLKN;)!JZZ- zBqezY-%wru&`*Zip&G8Ce-c8&Ty-PhN|96mIW7RDJmB|=gmb40StM&R0iQbo*OvjW z+U*itL*j$K*jNC+a0M$`_&ENH7AZ@@YRAIrkHZ?7!pV8S#b-iLDxr>JK@)9P^M8{= zPWxvs!-upZM!3S;n1s4k1SiJ?F=MVh$C@Ztzss(-MqNQG3gN?tfpUWpQu83my@)hM zkex87UmG+C2Av`!$3w%*j|I2kg1cN4x?G^yCFcRITW83qm9a>QlSn*O^ptiOL@x4* zaU@>r1|2GTcqQtlV&DWx6JQr%_TWqM9rj=;v+fm||NwH$GG4}w`Te(qu zNwKvnF90M;?ZBLroR`@AK1l=# zz7l03BnnP(gHXLlO5+a5P=xSN3c=m}egnSN2Z`wVMOMUQacI6J)EoJ`_(Twmf~G1$ z3lzgN;lKO<&}Q-Es4i&QDzs1ZSCb_K$DPz>nOsQ%B>#dZOLioWxTUyJr^IomI2@-; zz4etc0YeqRQ#rxUhFv~5`gaN2eg)jv5Qm{wVfEKiv&4XsD}Dz6ySq#`PXLLO?%)eR zh(%H;AwGJ+!HEb+>FG*Ul66jWh4s6{9=YA1UQ4=*NM%I0r(8?>!Ijo;ntB=NcgCGD z3rM3q1wJy(*aKvYe@J7ux^Z7OQBo;!t1HcVCG{^|cUmUPzOhV4Kvo`eX7-`~D;jWd zM>;RUM@ctZWzD~YD~nSp>ne-IkZAh7(+nDkj9p7jQwgE{qzo~MZ25_d7c3d}x*57k zn&v!0mhPF{T{+iu{XN%QJ|lAYCUX60oJc;v+%FRF&^5suRsu#4H~yIyzN37SfpFMq!VV)MKmwsLo|EH_2(ofYL?gy24d?vQiR6VJQsJysVHKokTq1W;x2PQwG6r$a7Ar27&roP7ET|}Ir!KnS zDI#Yb2PTSEPK(#NC0gA}dXWqCCIW=p?={Qhcqo>tO^34nGQKsw8}!i^eVjakv?H)KiM-PR7A|obInfXq6vCrqfNpL9FR9H$p=@4s}1hLkrWOs?T=?P(!#aleY zdL)JViDJFhVuK`T*|kaWVLh?Y8dMHfZC8yrfmk(;5ua2Ro7XFEBD3L{=;~Qa2eFnc zid&PhcWT5ph@uBjG|@xl5wScYyF|yM=q)e$vQ*}S{ED=&m=K;u?X$)JCJ{Id>Q;AY zy?Zt)tWoGJm0G2m)+P?YQ~Hs%=6O)Dms#mM!KNC$Cai1I4`B0a-Nqg27LIlFi<(>p zwk8Rw>Z2jVw^2C1O3QP6lWc91ifQwY!zL3z%cI&Va-2}A_A3Rp@!@%?9G|8DU#^x) z?z;lGjFjseI*`t~ot{mOflB+U@Xs1_%_=r+mY%I9p3UzI+U(bJt!rDeY4YPv+rk*z z-Lc*z9vlAR(+X0L8psn5UlS5k$T04 z?+U8zge`Yu*r=w~ismN&O^6Bw7RCC}zt(Na^@W(MzdDAuKUP8YO$3zEB~RC^I=h*Le;fs zj8w~_N)OSd2dCemkH;;XW4qT|4IOc65FDFI?*v;(@~aZNg5IA}xB(f^0yUCAytW4@Y<{n_F z?eDW0U{*4X!BiGw2FCGyWCr9)>7&x=cg0{oh1X2d4H;qwza&@DZVViRV?}xfI5rSG zr-OJknk@jIC~jRu$EuTzZi_zOF3xNskDO zrk8De0qh>#;7_l~75vBt!O7(H30djkW`kiRLT_2h1i`$U!mD_eq%zWUG2u`>xqLL4 zlTtcjJK7bYIcCr`6wy!MA3>>NF&9V?mBGwRLRB3BnKJc(f5HOVF|aXN*+b~qAO{9J z_WAATZSWuIribgM*B9{of}scbM$I+7W{KhWoC&6WLKP9znJ4=n5QV3yKXm21Dg}U&2ZYyc@@k{gXSdF=Gg`2 zZ^7o@kmjX8v+rc)ltJ_NrxxDYEhrjxlZEdy!=eIcQIoWwHMOWuS`^@z|1L96uK4@G zu#~s<|GXs9cg!m&z4QUJ6zV+$^jS}gwRE+$V!O3$(3&c1UOsHmRE9{!k&coiFGMU@kJ2JZujCMI9clnBUA8qYExqstd!y*55eIWUJn7ms2&rk6`YsCMo z5&yGB{LdQk|6gmw{&K!m=zseuo@J>3-JAK>Pw`RrX#MFyvG3nM#rdP4dv`4yRSUk) z>yB2u3oMC>DEPstJl-sk@UP`!M$CAth%-Ft>Kjve<%xmMBPEF+I?W_86V=}2pJKtk ze~OhSYcuXu@UU}!*Td*tsuf8{FD(2S;xREKCtOWQu(j7Y)AMgjK=ws!8rjoM7L#mH zg|QAO3qYe@VKQv9n*_O=GRtp%AgjY}+|ErqhByMKm<*<_y9CH?H z9g?ty0xu7N)n>_+%*FOaJ4q)rYM+8NpI)P?NTXC;dB=L%7phkAFmb>XHh?O7=~ZFG z$d7~?KIsSJDspbBu4V{L8E16OnwoRim6<>Hj+LndgaRm;XG?j7tJHgbLf@PdZe15GAiee4bkOn`OE5s{ zF7E$w3DJLgC)X-GkKNky=wOj0_GuqO;~wnneEH4w)7~~V82Gtu>#svz(O=K@b0pbU z-cv^Q#|Qr|_R{(C)&o6~!f~*rB5nD#V`5k~{-6-*wQ^tJw6pl0a}|aeD*3twf4$FX z%ah&Gwt8Z0mQ;?y)NK+_XZ^c|m32Odb?<438PsFf%$qQ);G;WpxBu+7+2`(j@HiiO zG@aK)?r%;QWmp2_xaIwVX~6z?_Q|HE^j|OB|0H>l^SRi)BG(n`u7>U^Bpq(CRc+}< zO0FcC=?6$1AKwu0Zn@6qnLaqROxvy<5UuVNq;=HWtuC+~LTd0@zJ0%XjYHv}qxjdh zOKsYWw|DPw@7~I?6mlW*k0Gtfbn;=rZjaH$QSo)Vle7E9`;^9KZGy+6UZ+|b=ZxN$ zc6|OY`qGK`N^1DZJob||(W2w>Vc_z*0T;ZZ;M)}9JDcsB;pDfI=(m;VeM0HPZQ&tf z;`c<%``OCN!(~6bsNelD|8Y+5=TrgWT%WM!zC2WceA<4}V*Zi}UN5O$ys*(*W$sMvU)iC*iZX#! zU|<2*qc-=qrSq3ZPG8B2SuGZxPbHKJ4zmz3S8V%I?&?q@8{TID=mh`pNHD3>{u;0l zmUJhgPb@-1Gs1oG2mFURqCx_%5I%)8oe}#n+Nr1+|5f|0WUdLRBKLK9nz{) zC>U9-9qH;EsX78;J^)QHMOLmvBB-KVOiiySg3h(0#=%iE03e+X1p_mOSjao7RnYC# z==bGOZyv|I-UHk-*JBN_wt(N#y&HYQP3XxgN$};k;4^>&SDr(cS;)iw7?z-jhk&rh z)NxP8f%9gu6yO-c?AZ51(YH<%DNh6iy97U>1ch}Rs)FM%oS~devDa2(Wd-9UE+>d< z#EZDZizV4U>Woo2i7}v#G2)JUMV%<57#Cv^zZViu%!&J4k#IH^YsW409U$n(P4Oe? z=gBjEqCfbgIsX25oV{iATk0g)ys#%)2`+94Y}I$d$!|^6U zPsEvG#J*(&;UtZUC5;xHa@F0H36g$-N?#vOpL!W8bvx|UGPv#}&UiG`1srPv*XYr9 zthfA(S#cGBgudYM=k893Sj|j6Ni0pww1dZk;JU_6nLo0#%-XVw<+GeDvYtywD6T=2 z7PI0)vl&;7b>YeSX?*en{kC;n}yl1LP4gz_HJQx=D6C znm;9yo_2;fTHTPINVLt%Ak~UzF|Fik0JEIYxkBAJ_PRM@?rZ7+D77siBGn#;>l3eJH*;Shut5^?$pQN$Bc!s1Y_n^Fl(oOj9(1m}a@ zZq(``LJ^r?SPIf43O?xOwJYU!vSfFo3lO@2x14jE55sS=z;7bb5_qzVVil#Hy<%FAJc3opyjbZ&-BS7*a+{zDOMc|Nvm%mG zDI=!P=ys{MIH~A9d3IK#?DAR3hnBJc_hK&VvJFIu1QD(|Xx^CzVf4#;pd0>S5}+&y z4(NiiCc(jRd5UMrmr5$4xuIX7uxa-a@xh8##M_UP$)A-g<$2SztSk1=#tpYBKBHre zph8N#l{Z+beoj`sKh9S~RVg!vyRjsXQA50}h3wC&sluvO%N}sOt0)Cj0<5b>xU2nH zvv|5IyU;Ouiq+F6NPqEall)XDZ#p@52uP9$vqbq4k(#tsV982|btdgo6ix}nmRBu< zsm`rIDukgcJz)8hIrS@O3z`~{_vjC|kth#TTaDm%4Eo_>O$b-TJwGHGitb{q>rk!% zl6Xtgpnr?wE9+Wz50yhj34$J43L{SH5}TK-eXcCN>>;)qmMU&tKRYSDMVmT3DZXJX zc0f#8B!?08#Lif&FRaD?D2x52U$tT>arIo35|6r@*SLofr?;t@p>ASSY9LxS>{vF< ze9L&CT<+9Wtjg1@aXYLYQPnF^zO7sMBsrU3172aKAqgtom*`Tl5#D{6YtF&P| zI`ma;KI0HQZ?eI*K+anSZImC=c8-y!L1=h->B_z7N?5InN{)Np*|hQkJ1%s4cHDa= zl6%H#dX|;Qt%0p&VYtTyIC+!u0M^d)WSRAI+$O$kiB05Gzg5?xHBP06+P3Em*ek)- z(+23e&fhP5)_cjTZ`r16wYHB~5RJA{dLQ0*nB0Dcy%}@XZy8Fe_R#5N@#3S~R z&uLp7M^kHq8QAyi;8z`BsB13_8z`Zv14<2qs|-1@q2APW*Dwz-rwoR!56NC6Vlmy8 zEHx7J!-@F8XY7MA(t}(!gUR7{-lYud*A2@VbSbC~y5$YzcMX};^_v&=rHBt-U#V4& z7`(hO;vO-|q&muCF&e`*tW7^EX)qMzHMF!o%Belvgc+U1_ils-SY5PFlwwCJ8WW_I z!71a}<>Sc_4L8rn+ZM(%R2$O`CK`TEzzdbL>Lx&g6Gay)2=>W}D;2Nl;4^gN6zt>L zu~^tdj|g9HEZgWO&oL-lmn1OQ2Rq4lF?N(S9Ma^!pbsXimo41H@WF0(N{Otoih2CS2@$g$TEMsF#FiFE#W5p)Sr#% zjlbWGgV)&c>#EaO+i8Ec>Bxd$Q@WYUxEZwS%qfAeXMj7Z8`Vk~1<{Mt(~s>Ey3ovo zaIeX;6#Ns0F0Fz&0Z@W*1pY<++#}MAjq3QzsX0N?TvFHko7(v|Q}b_0^Y087-g_^Y zB+rYHbBb!iN}CHR-gDoi7Zf=b)eT2gLF7`vc{#&HnN4zu;M_ORtft|Tk-(AxXi1@H z$r!fu!+Xh|6k7D^zg{B_G+YV(&!6I=F_HR3iOr=|uf=C-tB)C$W9^nqV5?xenFP{G zYEht$;VML66=t|*&9R&V8;Gi3ASVvf>w|>J0YrwyVve~??^USxTJ`2k1qabkf>;J4 zrh(RMVQb0t#1gx8o2hjKXuY;*9cf6^Wmr$)S#MHXZ@{hhdaqBB(Bc2f8gc#R`qbto zX>*%nYgcA#-*9VLW@AJE!MC|Kut{uD+sK+CUaeohh{&h zIl|^T?VpX?K09~ScltrwB-jQ;F_G=hHoMQp1c`IYcDwtL@b{pRb%hxXg7z1ugo zwqHzdKY#wWIKH&s5r6%EnI$2kVkVCBA6ML&@BGIV|C_jCImPAu^}XIVl>9<{l8m{gQZPV_4C?uxiAldgE~N zXGfjmxIjt-=ZN*PY6S`Jd9-mf?YO60J|prvuzD)=a?$Zzc&w`H@G;IqY|c&8?qm_n zs9LR}Ih`W1=x#1>x&pKpc%>a1P%pe%P)({@byg;!)~ssm&Nd8Mrcmn&gY_btjg-X| zo6(qL^wvAt;`3dx+s|!Xue^VLv47=`@x{TIdGW>JIIrr(5!grF>v&E%@&vx9+^p&!rQ& z^P=GAyO+L99SZHQAUoj}Dw!-NIc;r~pMKd7jWa%6evxqVeS|AElVh+`P5|8>`SVH^ z+rw+^5)8N}9x7RnM!BlRNIlWs0a+AF7F7iH&riazS)bNG7%L19zkSvCL12W?k=g-^U|={J=lyQhJOoi-$aZ!v54*3AC^aHd{BncNYHd~ykk!u-gi@Pz?>*X+GLz0+e*gR3&D5swr5E%|?Ah!y={F+a?>Ut|0bXro zG_uCa@^<%wbnj$7uuYMRUFwf<7RuscCn!Xl4J4=uWxo*q1{YZyfVA)Dgz2sJTXkzB zpAOke2(zf$o(^U-^TR)|B9tS#hpHYrnJd{^YUI*X<*xA|o@FC6v(1K+zg1@G(dQ4= z9wUEp1m@iR!26-09V6#nZg1OTpkv963%d2b@cGkK#kzZ1$b$o0pCHIyD6_iX%t0m} z!Fu%4q)0ocr&N`7U5J*}w?%HK?1m{(kCLUqgXNB0jB3)(e)lJ=%$IU}AkmBf(d{@P zrru#C*?w16o~YP$s;p@(G;(6C?5hti%aMNb^V6A1<69A%4g-k2$u;~$(J;!*fX|+g zpg&jUXoE@7aWuEq+mz8l7n<7s`o?UCs!u2zXBYT=lecnhs;ago$liXr8-<1pKUh1k z`#mX1Xg@qE{S(3GrJl?`V8kO6#)&|6a)m?9L?4|o0zCrYht zBhiBapo47l4Rgs@-F`I5xTG|94QDkmlI#u5{bgXWgDtCnJ-fc$sAvYmOIUr85_UE3 ztT(@{tu~+rsg8EAg`2XDOx`m(Yd28lEPjGlFsc67eNo})(TASa6Rk{F)pp6hG9@2- zq`tBt);FXSM{dRHIy@2|RPlZjsIETy@W=%sEnujt?y$I!<66h>y>;ZEH~+@orNd}$ z_tTQ+DsS}3fQ6xK9H;&wZLvs4rCn?e=GE%nJ@+Pn_s`6HR-*dyslAiktzsWR;yDg5 zlmxHW*SlD%`gKS3`}~qW!^ZeRD4E~u`{Wf6uJMhqi%LH=L|7l zWx5IdgDK^A=r6jzvwpepe7k|;ls{oHrS$%SptH;Q{A-`^VI%XSBZv1nK4&i8n_6D- zw|&(TeLiaWUR&|vV>FY?^fjXNyD{sFAN66$^gd)XR?+ZgQZQv%dHE+%@XoO_ubj?9 zSF^`duV!67WLy(@fb@Sm;?LRQN3r79z3448W-5Yw^^{9fuFZ#X#rqwX=6ef2rCeuq z=Rn=~K<-ZGPgG87$gdweeO2HF&$WXzoPwmDIcR``^cB7uiuryF@io!@Vj5~{92zvu z`Q5Vfi#3&5$p;@XrjQrHA*-B0c1$;2#R9jF0{9(6e3(AFTZE7{ML0OcoFpt92LdRf zm;fu@J02R36?v z79MpJK5{z(CLBS$0~{F(8w+)>RB)?i3b4!7tz`n0ih(*4-LpCXD`SpzBdWwsP}T~l zq}sFA*`mD?$aDle21ho!0*wX3VV}catT-kMM_mC3H8BZOjkB|kI__y49 zM9bZdCdxaHYeZYS1YdWFjyjBB>JsA65#mP)J{TwYF(-aEHdnA6ySWOERosh_Xo(fS z9V;#tJ1HB3Z3__t#7r?Mv5ZHTA!Ajkqpw+pi{-jFt@wy`-IPeuLxTln0D=bG6mKm3 z9|5G_=LJ0*cUBPh?$nM{-itS4P7srI8qrAbch$0V3m*cmN)RyQ>%z#HCDS=v}UY19}AKVfiMaS534hZ%Lu3c*DG;Boz3nV%S~IxCue4* zq|-g^bF!^taxHay{kX{OE^eH-NFNGPM_LWvriy5DNim8|iSLA5jq<2HN|_lKo;wK} z=t^1abX!S+<)L6P3b3Uv&)wCy{jTuIqzD2kVkaq8tvof_BK2I`tc`p5D#x{1_<6_H^Sy9HAWl3Iku(u?9G+D`%ejVmdBF^M-11WpQj zxh5215nrJg5=aH+JcSDKh=gfpvbtt^C3+Si@7VRr6Wt5MN(HcgIYV=q$7I+<>f@JuIHL##S&#~1$N{K|2`4& z1CnVb;b)=i-~|+XBa!?L7)p9?mGKK`>(d|BMjOy3&8fjd-#R`~o3!>e~v&3oL63~>1g54woAQ;{bPal;?j{zo%4@VkWMP5=& z8|NvSobYV5D4YZqt|AJ9-SdoEA}EEW*CvX(I*Wd;6&YSGw$_O_?9M$xrnXxYQ3Hzh zX+R6QCFkxXN4j}-nZ<4=p%*+Evos}(-B!zJxa?8!zIf4{u#)KsQHK1OU6#^U;-##5 zr5(;7I^N6!1gV5%RYqhkxhGk|1kHKD3uE&r<6zCMm-A|Z+^#}FCs5Iyd1?J!aq?#+ zv1s2?lnasv!g#YnG7~btD*OclJ3B3Hc0;^-SShVjp-)|P3sUh;uX3lmoQtYZ$2H%O zwd#jt<@d>iUuW^F$jU+%+Z@YEN7ia3$I8U92xSaHRWJVSDO_GL*Jixh0y(oxbB1m>tJh-n9#EfU=0eDhjzfAe?zNx4$EiE zk=btO`%rXRJ_-Sd67=!AoGV5WOdhC3C(d7mY%ldBF zhC-8ui2U*g*$o9P4Ygqn&6gXq9ygjymi}Q)!vr)=u$GhGk~8NUk;De3r%f5MO{aN{ zjM&ER%%=Ce4a-CuxzI8ly*gXvY++tx7AE7NZdnpB^GZz#fLLp{R}he&D|lY^vY`2R z4bsRfBF0xMQQIt7-EwQP;hl6W@!hJI9qedHE6TF{;orO7=z{emhsf$oN~VYiJY5OCySX{Dts%9D5Uo=lB=X zaR{O5#>6-@WjxLHOS1ID3GYPChDLVEL@*`CbGA4ZuhwJz&d>`9`IO-nzJzks7N(6B zr;Xf1&&eMbhzi1}Cj01b_5mO}0(73$<~7z%815up2sN+cYa?)7gvsj{lV$9auRHL1 z^7v8u5y}X{qUscN4`G_nIeXD9Re-mkC+yPeHusEereIf6`q$`j09EgUp1hHZsR^&a zeuLi2_4sw^n!iBPgDF$n{JGbsde;mHbNn+)8#9y~(-*4KGles9gxQZ5v(y}OIy99n z26O&}c~Z91lB#3KjXBOK@?1&h2LC)){TzkNe0unN5bZo42qC&TFV3+bvDq!+z3>LK zP^7e=QnbKnu<(k1L7HLlx!U4O@)}9~g4z^blQgdjTU4J~Fvcx@CoP(BEa@4}n-ndX zt1Ve>&YFUjelGL;He7c0UUr2oyVoz1Jg1huNz1+*EB-Po|C1|Dt?-@lO4Kd=BrQEr zTXiEW%G#}(aWA%FRs$kdH8_^-1XknK))EEQYy_6cT9{eC7HhW#WmroQAf|%WiZ{t2 zMPhEz>K!{Gs%WioYOM*k*6K|pPmwgk*4s$LZqPc042)C6TGDj7ni0r*V+^)2QNMwo z+L$73%=~Yz=q<3(ueMRXN$e{kmXbf5Wi}qjY<2wYkXu`@Et1;Sroi^LA@Nvd?sRJX zd~=jA4gfedqf9?c0$%H1<1e#XC2Rws|&JAF2}{+tY8|YS`g0+Tr%u z8Nd5~OeOxKhXJ(r)oPLd=pkY?=f8;_?%|}4{-uY~jeYO`rH8ES|EY&{j{nlbA#L*> z#{qp8uZoes^>FOcM}u1xTCs&9eTLP9gNdIV?A7A}=@GejSK66F(v;CMSr63)`D2G& zE*FVRhhDcO>miX3*=Z~+;5-+qYwexC%n_S$5vZ8b#vx?ukZFxxBVf;|I|ZD zRj>U)pFih|nZVcei%XLKp@*|j^?LZKa-{d^#&R#|YK^-pVV!zJ`}i-WM# z<0VGK6^3n(YvE}J$JLFLpCkR!9MTrnIGd`kMpl zzO1eHX%2Fm@3of%hClvx)n1{Id8s&<)JHo@^Vjh^Hi6AR8T|cA-z?reTPg{aw8=P$ z8IySciwt@6Kep%fhW)Ll$Z;7z{GPfe@;SpF)QZD+J z@j5eOzKFaysWnoE?(u!bu1=Y5{wTZJ%=tM51$=-1lTfydN330nYGwn$pU*RQx!gns z3_d?erF+yT(WNApvkOdD$$FruBdWm?!&&^>uur#3S$b)}TYG4MPuW???{4|y2E6I> zM7Q=IWgp{Tv;N?w)lt-!*^Q7e$r0&V!5aHJfY-k>qgutI?Ccz%SRu{_rAdO8BQcOc zsRiMuNrJ!aG*Y5Tcb>8V+>}A=v5${iGo=T`)x9n;#GKJBzwTH~SvXjy_%}W52dWLF zGqK;5b1~}&xyNO&s>0-Cf#s2qq0A>wrxX<32NL{+vg`FM6%3R#LYswhGW;!7E!{N; zUB5FWoh;R@k2J!sRc6a(8+>ASABuf;*I8NBP($@}X!yfjH;oI6uU|!Bi#J<==!#@b zKM~D>hx=*kKiC`YAxiKE>jgf%`MnD)!pPH}BICU^%<0MS(}6+z--|lNsllVZAl2fR z^VZ@QR(;5fxPnMwYu!D~v4V%rX282t+J586rZsH2YQ7ErJ#Qt((78PEvaRA{Ug3eF zp30Acqzzp`T8bfHeC72v{vl&!k*RBTRm1z7wzj1pB&=IPPSEve9$T)H1z*VWPqI|5_v8Xr(kZ`yARrhER?VfwUv17m2G zN&*)uo9+BQ!OC1Ihop-wHN?AlIl#WbP}OD!ESos|q$B0k!a5n*@?XAF9O=^Fr2}S` z1a-Pz=xnf=m?Q*eQ&kS_QCSreh4g|C9idNqRx7`v2NUfcc+MxRT-Id?3TvOrY(ae3 zR+$)rc^@32l`y;*$BI~|++sHeBBA?Zua4}aqdq>ccV2rc?Ri z{(70E-bA*Db7eID_%Cy4s_c|C+Gt?Ig3)wBP2(^vHezD~#R~gW^{nL2n(goV;+)&w z#i(V2O^%|isf4UTrHP9Tmk{X0wGiPt$|C7NTJ>3{aQmEe!q4<8$(FkbX(Oa}pji;7 zCxQ1HvSE*YJEWs#>QSm|>xS)aSf=MJ3!{^y^^}7YhRuJZh!?9|zx$2$Xo-2+#YEh2 zKikvO@`>n7X9!3-?Eb~H$S3iHXuFtP`@^Akxnlj*paUuw%G|6&RFO&j;kv=y--Vk~ zxzr%5k0CT0RnDlf#-geh%R{+PO%K8M_RjTBIXj zxnfm%f5Kg5aZb?9RC2_jFVyIq`+kF|nl}-lY`qvN^yk#%_4Cnc5~~-C`@RLXqdqdV zw{LT6{j9%0=6&mP?_DV7Ttc>?x4D<#{xeb2mZMmq`-9Zi+0dhh_94rpx&6jW~i|?RS+Lju%uY98D*fESdfK6 zfEE0kscVq=aj*bW$Rjzu`6l1Fs^4+(GE_H0{l!89wL^myLP>8kUA5;uQkz3=XqmfQ z4JCV7TxjT<%+Sv*p|H8o=OKPdN7C_3z&LOyno#bxwSH znk$k=KD)?h2cSHr4*CB3^krQC=IH-Qb9Y3C8OzuZyibI?T zjUu_1R#R5EL&tO|I>|Ak6WFKQsk_WD-&N2NAXPmx)lV$-z|DiA8+@vmHes21jT)i| z*Leg;WI+MrQE8$}L8>l-H?5L*bRfzoAy@c!M}=S~g#_!>$ompboZUhXc}&Dm!FCoI zcO)R}JduJBfPq+&7Bl3bSUfL{$T(R43c&w!XQl*KW(ycx1e+%nxP>4Qo+Ufos;$aoxAA=avpJeHt< z&K^TV{sw{wp)d?2tp{i^&XdmDRk*fR*fmi&tCT%&Rj>%m*kdX_ppl+IWFOLqZZYNJ z_KNeVi+2r3R-`*JzW@ASFZ= z%Z6ph!}Kh#RZ=oX7t|01e$HF|FuyQ?Cfn62QOK(NFPicsRH9HmSU|6Q6YagK9*1XqLX2V>;MqU1fw$cDo>De6{GmdCjDxqhsoDnZK zo-F@fQ)zov)S_LL0=%Oe29Y6Fs`FObV5;BOc=AjJ%R%DIAjM*X74DPO*0c$Lu&N)d z$lu@!-kJ(K)@s+YD%Aia*gDgZ7WIS&)%hL;PO65omM3^1BlM6d9u;?xcU;2I*~AJU z6c(67fbl9oD;vy>NC>+>Jimro`y5^Gxn>MO0wrZM#m^YzX7_1vcQ z2-${jv<(k~8geol_=$BFybbl28-MaPvbI^9S>K?+pyt+)f90dE*ZR~m&&!Q$?90kzik7*%NLLZ6nyJmrU7ZH&DZ3$iE*cCF=1_bw%%l+ z+pKPq|9CI&38tl!r$th^@=0>@Yr19~cskR1sbF%e1U7g~@rvY|zBEe4F!7gMwmbw!&|GA`g^nQP?;(d`KOeNCR7o zIa_C!RHuJ|NJnx@k4jq&U3*il=?0`-p`b}xzejfutFO|@>WN7a>-jj}W37Ti(%~ix za5^S9N46d(ee7&FPHi6NQ;U`4>m}0l)_eA7kf%^K-qB%tK7{uU6!c!*=(x|z@mmsQ zao&5wtJGnlPkSBxsi22CrRS4MzejR;Ahh?2SI0RYcCG-}7FM$mNb<3TR5B6<$N@%g zY=78#zs|{k4{N_@ig$sBLz+jl2t9V4Z{QkxZ)DBjeKDkPA(m!iK&i0*HK9EQQo|Kd zdCRZ=UEPp6eb4O;REkZ%&PC5->0Tf#rz9aRy(?$d=R) zx^`sfd_=!+0RIv*wA$cJ@F!O!eibHHBz_@RBudAR0qg1)$H%^Ojzvi~k}DEFaE&KO z*Ih{-59;X)1-2O5jy_TCeMT6e*Y1y4>waF)rbZb0OIkFUZS>_tM_~^(gMTDP6^lyw zXs6Qth;G8FZgM_+6wN-QDb?kM2x>GK)!vv8llCl42`M8E|6LURN3ma2QDSn+P*(|*HY+JmW7lAoKv{Y*HAY!_$ zaQer^L`J}rz}obX?evBLp`~zUt7k@Tk|3`-c+0No&eY_T*DU;^on@+Dt7c$;+|zh5 z>%cyzU@*(4Kex(1XWldW1UFaaHOC|~`&?k2b#qb-HY+?e`xrLC<2@s?IV;03{|q`jEg$Q>5zFz?!s|GFY^$$N7Jw&{#ptDO3gXh+-tc|HIU z`(!pSGSgUwtq!}b@}l(%j*TPG9En7{yhXhBeEqN2^OQ#0RDZV4)wU_Nw%6;oZX0dg zeZIk%x-BZObF#UaG_}6N;I*~6gJWRcy)(VDE3?b}XXn&zhwJ$+pZe}YBX2IoeO&LOHe@{0`pD~D*3Oa5eOYV+?oM6x6<7aou%Jwpmb zCx2sp91wgM?T&lBI6?cfmXzeAVYoaFIR{Y2Rn9y2TAwVrX-tVO>zK$Om(mhpRm+}G zj>?ten4(jnb|y(=U4tBC+z@&F{%q3#!yvNtu6(nE*vL3tzSY3GRlYqGEZ?}-C$HYP zG@zyKby-kv>#`_xot58b7{_@;xk1rns%}cH_j}bCK5g%ERN=3}was)U^*t zEK~?eIb2{k^a0gPu6M-fZ4E9deLDKw=DVB4K?9hy%c8FDIC4IElSCHoGjtujQ|~GH zDSxgF$RE|RgeHv?|5&EqCIJ7i9yBV5>Kd(qmJBg3Db`29|&yt-QcT4FcaE{^pswPjU5 z`>Q7a>^F|tF+m0Q-PmiLPi|6jcf1?;1(LeCc$+b=Q_g=k-up}TJwLfFw9c(~@#sYg zk50u`&AW-daakNrn#xVgw-QDAv;UG`RWg>?3-8V{<>qx$(a8A>uFINz;dqF(OLz&% z;v0WTEuseUjZJhtPZF(h!@=(E{o=C9rK<*%JIQFk97)g|{(Qxr)S26W{X4$WDJQ+j zb+=vcpJ4BtoPC2O_WzYbe2D%Ci$G-1roiPySw4lYt!HoubI8l1`=jRQvYsunD{4)A zip>zpt}w|{VTBANHt#zL##^d>a2g~m#$`*=e^oa*)rh%v_lsW=Ow?17p!>>{mHZ!RvthAuO=6Fvq5l zmd@hs!Lw1=!CkB0@el)}V60z>Q|ziIujV{@47GMpK;q$S-aajFEb1wIm%eNuWgoj_-^;-@5j3Fa;_vKdyD8L(P>vsNuyx?7;+X@j>3 zo1A{8S#3dB=JrsI!sBiuJ#7n&vT3zvX+%)%`gXcrdOAeIk(#9JO|!O1oo(-XHQVp? zT+;PE?13VX3r|_B0acTPOZL@Te@kLb!)eBmS?zyF;%FsS*v9wIS=1%TWAcvRi$*SG z$-iWeo0$$_fmh|ejp>MyQ-s^WUCfhLAG_9Ep)LhJl=>dvbnJBBur!<=YwXQ4`rxQ= z=dBsmgeCR3oz0_k?K^({kw!^dEdS1CsLjH&hU;B4k6|HBHa9r+l6-2|dp%Jiu%p=s zfRVG&#aLLiz>&J0v0OO`EUaLLN=hGW{Z}%Unv=87n{mDI=2i%m09C{H_zcgisr(-`J`L9#V%`)6D5Y|aSnIn z$0Zwi4-VCO-sxEP<`iqxTqStRqFW4{9G+85n${ELC7oQ{racJ%gT43sYVzUxEm0IH zf?YZmlnyGPHw&T^0TJm4UglL+{(|e;*`Mz|<{`HXiEV$~uOFUrcOSZg*#7m2bDsH9LzjjUIVN3l zaemWI#u~AeoWHlUGj*uIPZ`O)U@@;@eOPne%rTx-Xv_GLH#Q$JW||}J?pwP!v#Qi# zz@jwbU;L#g#kX2}+H>CT@#R_h^p$q)2eZxi?TSZ-hx%dS9U+wBs;LVbM+E1}-=dwT zsh$?_fpFD>^v8Y?iMOnmFD-{yH25voSy-trHF>Z0`UDPJ9PBSY+Ty3#VSTwe_U@1S z$20Weg3G48?g8|%0gMFy#&13}GXbM71Fu4TuiIF3=YO@M_2WcZGI@v}8t4hAN)QZ! zgaHA92SKt`LENf=4-JE#@CILoe!22KSOEi&k?}XU5OR|c{2T~)jCubuJcQXWMA0MU z-pvqonGk9ZS!=~o?I7fhOsJ$`s2W|UA;FO`FZ3ZM)Y?5%9~EMG5cC1%`-u>01Pv2F zg)QtG8`t`q>IOV>SE4Tu_aTJ)9fSw0gj4yU&Nc7*AHpdn!QqQiN`VAm)IoSK(5p1u zHXLc|kPY19dmN1dMX`Yp?%saMwlg{I=JV@h;Uf+Gl#*K(p6sTR*Hp9@P4CzCo2e#vVf};+g z4?yuN;6!9Zf1U;r1L`B#c6!*9Q{%}{DS}K?v|&` zxNatWt4WIZ%_gx$FF{=$hhPAY3}|R%gAKdBtjS0>4L$75@kWhN-$v55?&m#0jy+W9TDh zfH6l002$j5Irh)*tX)1{NDx7J=NTqkRZC>`OfVn4llwXt}IHXl*6JY?GCs$#?3K`@5iyE6|&4F(1_8_f?aP*nxDmFaZ$k;aJl6 ze7q=u`?G-bArLNCm85J1e0w9s0gz&hj_x2t!}+Ow5UEC6cr!!fB+@HeI@Q`JHO3=# zi9Xf2E)@%s#2=!e6|(i z$Hd$rCf-&}$T0%0Ux*bm^1i~TIcs%$UMtg(Y^_QT9qh0a>wOv%E` z7Mm!Z4kpE-BtoPjou%iNI z10)Pkkl~e{#F&(8T$q29fPfdK*B7Q5<&}bw?AJ1zz?0_xZ z>_*0mLg_AoexFsbZ+$W2c(JmPOt)O}NL%qe4#iQ%>>wejAt4xEy|^D7)Z>SQ_|i}HxrV`IT!m#b#%0qzrTz6P z51*GRsF%~*m!F#{6JjWT!&~kTEAOIUrIKVsku{=C$6>fcyccr_M-#$)- zv-*W>wU%%Vtw#PpQdO4m^()57Z@uGHgsVHdYu>ZAe3Y zSVN`2c(wc<3L;z;vsM#mU#%~X7Ave)O|BC^tow3|22(fFMfI+ng|+J973%fSpYh>1}u-TxZ#Ub}B*)bJVvS!x=ulxvC*CV6RYQtuRCpmKaNM z8@6p?FKW0C(HSvOAoilTIN!`NDa?B}@}}thW`DDq(%2}gH_6a6sR8>{^m@5heoMY_ zaZTs2LH=02=F(aVNw|4mxaq>Hrt=Za3=vJt#Z66lRjh=HDX*#^2>N<=xs31+7Q0H2 zeM3`GU4}`mv2GC#;LG!>^|sHCTMqR%8zuQ1MCA&9w2oJXs8x8PN@5C&EC_{{?W>+N zHVT;>QjG6Zcpy*(zw`3nYQjqfOIvf z7X>NQzcj_rbF`6zTEQpj5sg$hjsbCW>$(&roFI}E#KYm;Bk1m!`R+U~%!i|}tds5> zY*wXL&u99ccx=zqY7g{cZ^dB|Ub*cK6UJ1%%ip2R#H!*>aaU|_uUT>L8Tn{GQ*5(H zT&L+5Hf#w-q{~+X*K~rFp1|tRVntrzdK_@#@XqJiIDHW;YcI|w0{5C1Z%xIKCY>oa zaqT|%-p1YqF6;x-Pur$_B(A>oh~7=C6xpHk>_#i2{d3BC=eAs*1Q@?~6pdqoom1>M zQo!$x6>{jLfFYZH`#yJmH`7Y*F8gVWf4W~RYY ztT}5*j~Md+zuCYQvmZ~33-~WWWxeWXMu(gu2Kkx>uK5ly}b)4;CSNl6$Uc{L>DIQmEt#jA+9?>Nk`fzx3gGvUSs1JekCC_;ppUeqZ;?FKP!Qa8bj`0yJMifg`5 zPkfFfBAA<5N;>G9x|U3b#JO|dGB+qj)UqCx6_~ZTH1!uL4&^ts*-wnCq;>gB;%vCb zS`^1zczdIYOKVETt4;^%(nhu5m9Qjp%IWA2O%hJC&N9*^&tYQhw4+OuG*U9b z#obAq%poz8rqg;?Py4(hrQ0XFuW^#dlasZIQ{S5=zM4%LdQI&#P306QHH2#!e(;pz3sF&3xEi}>;Wjd3q9CV+WXdU@Dka_~K_)6lVw zJ8IyT)0~^;oNy^g3_p8!b5`7Z?xEk@qo_GR>6|2Gj;=?AnLR*&b@F? zbK&LGf*LiO9JR1ivcN00c&xc7!Lsn$d{Ikj(FC#hin5@nv}COHPd53J)8ZAxl9}J4 z1%AGHN$5W#iT}sGIrT``AGc&_z7*%TiwGEJ+w zTIBOl??Htc~ z;bvZI>3Sz+O>l~gqL49^2^|(P4}RtU#Y6mO-;7`G$5a0a-KdG$=-OQC#;^Ax@^?4a zf10oV@!R^%vxO_&>O*Xum~S(*Y~e{;bhoz8^=*sNu3xg)xGlC_5w$gnUu1v0O+UTO zcxm_QpX5fdI~zCq=D5>$(WN`Aw{|YH?7YM83bgFkdZuZG9ojq8WwVU%1F1d6K6#!qRHCSO2I~L7?_kbb+wX9KHG^`rUbjU#-ngJB zbTpYB-F&(@|3K;FWPhvqBrEII{?C2Iv+ymKv-bl2+$21v2@?vWE53F1Jll_-kG6w$ zXva?kWS$=BUH0LAev9rUQt3hvW6&L}1!GrT>sIXN5WbV^jH1$Q9V4&5F!n2wZYulTyQ~)XRck|&$X`yBu*vb3u^+Wy+&G!|K79UL5 z#_~Euo68{M@7aEuzfoZs?2nWRvFf|{q)TpmC+eSN^FHRKWGVi=i15^n#RKJMbOSMR z^VxT)ZldB*#b^Cq15QOkD{XUZ+++J3K561hV9A$H>2JI5Z5gOBn8zi+7IK6P4po!c zwBmx>KX82nDL-FwNJLG15dL_z`^k$3NyyZX5AD@75R1D|$V4vYo`m`h#2~CSWQi+Q z4W}Tqm)Lw=6<~Dm%IU>W%208h%&G^@TyEX*o3FPrJLLnY%jN;F@z1OqDpq;7dvplz ze`epVLB4o2G7uLhmLqU}RrSHg!6b9B+=n*`=u{R5;e29wGKnkdq92D4yQ29rleW1& z>Tm1LNaj7ueXEmPSexA{Q4nug__l6oIN_Pz8(o~;U?F(0=!JUGJ5de;WwPGNWqhJ7 z?Ks;=t$tZejs1u7#-{#m`sVn(_@~~&V?XO9o9!G+m1rIM$n~#q3nNLdo)=%cQ6&9i z7h56EDZl%BePw)+NS^K6@ZPfyMvMZ(w$Cxj-_hri`M0oWd-sq|A!-+>3gB z9o%?HrVVG`Ru49nm~@b8*6v2u6o1=rf1e^ht6mk;W#-_+*)WM8-LIMyU7u~0w|Li_ zjQaD7(`yR?_@y3E*$DXj6pNXmllKT@)M5{EXPpgHpb|y5&!JXy=97+WH0&%DK(&L} zOPpJ6yjm6DS%bNgDUlyyei*Q|!u-wY$fls2&kt zVx3)3-1rD2>|3^bQ?q&1kV_ptqx`X^!!LGH8bm|t_)W>$$8ckXi@5G5(Hm6`q>w>1 zVP1wBzRlmB#~(8lx@$9W6LIGy?#{e0M!Tz;ojKZ?;NqzgI4!c>te2nU1MLqi`95_a zHTWOUa5Eg1V6(sl)w@2w=> zcwby%|MjMH+B}!{K174lA_sDgyg4~N4Ds8|wlHfcUy#dU@^Q-vNNag>OKPOo>07$I zSu2gRXPeQ6v)jjO?a!0lM|2!_P-Bx@#&zCq5&Rp!bW)~95#Nw(m)5nU8y1pp-B@hf z`<-JXx4SWzlW_BJ6C}uiWfdkbXjzy>(FI%kw)-|8!H;BA|;^VXuCS zd&}42%NVQtK{;phs(o24A=qwjM)q{TsZVOzpYdoqws`?=358I@27P?zMyb2`@kPO&|>{NAFx^Hzc}W9bI)JlTEIc# z*UL`>PV!xall|AmoXr6NEYMGMz(@2b03*ijqJR~vVZddm^HnxKAA>+%r2idYpdh{9 z=Po}Jt3YAZkL<`tj!6MEd=k_Gi<*8gPgS7YP+&=75LM;4bzo|kZ1p}@?|3=*cDA1e zy}l+PNRTb`%|XCRl=*#|P+iGTBh07Qn9w(ip(bwbS8T$x_`+VPgdK#3G1i6J8NPM! z_~^6}^hNcptH7s2>u`61t|!#b+c4A@7;b17rsfew35SLS+vxhs_@`GZ%G$Wt^INR^ z-!CSP8%T_fDaRUmJVZIAdVrBg5CY?4ehsWD0d|!J6F^4v6Kw zCpBylh17G2suHC#D&?wfl_>W~-Uz%6sLsZ-bJ?K*6=7!p#$puvRw4!nUTC202rzO? zHLzOcF-ag|5@8-C(KcG=Pzaz(fKj{|mXtps~qK~c?h#sQz`3;SB_!doj zA>srIrmT3-cs@HP`-NH7h0ZgkRyCrSAlZfDHfO!6;r@DV1whXraqAG!0R+g5xnawwq=i}vR6Lf5y_&_1*$&u@|amL*M^8$c9 z4De3PeOWrm*f9K}dm_JKlv+WOCNa*GJziVz>-%mc-GcD1wpU+*l5NodM-TuaNaJkl z@x>@UUNS+@Hfa+o8A*gj8!55z!}!^OVYaZ197(D%rdS2Dw01+NC8>Uag6_vS*uuSt z$@z!L*H)eh)WM&FxFIO1tAZ&OwkbxgvGBnZyS(R^g%6sKiXaE?V^s4i43)0f z<@NUDzZkbWBbe`fBX+mDn2B6$O_tsuXyL$_(?ccBteBN8JAzmAfn|7763=s1TwtnT)1Z_yHAv4tg0jtK zKVV3$fTh0Bh08!Hsj6a-G1SYt^uCFNoNyY{wn}ygszk1m8b<K^3R*f(VTa}bbJ_r;_tpaBJJ2nb=St}?zZaa{L;lo;5XoLq#q zVk%Q+LJwAoWu~|_$y8X%N1Q1{rEr$}!|U|xYkvJi$rse8an?jO)ZZl4+opUo;AjX+ zsjo9>P<5@JTSdQv6l5Q}&%b{|mx2;y(i!d6!Ex3K$tw;}m~@8Z8~To4j~%}z3fJ-W z>P%`VPWPf_nVMMS6c_E$oF;GPi<(C?nn)UoTf&NK5cHmX(<=1{Vo}p_Z__bEVZRrB zXRY~+j{n`&ut)$eHZRn;EL*m%lltHW|IB65CULQ~i!=BEw&u~RN<~xjEo?p4grsz1 zgSt(tU~%*{Nb3WQcD4BSdUlg%K1hX#4hQ9q*pzJX;T)d&#$# zexq;QG{%g-{~n>A>(0QBlRh5DL6KLKf!n8HcTcO?nQ^D4{hXph^(GySObu+fzAH_A za|%P(n1gSehJ?xwDx~!*nGJHM4L)fa{GmSB6ES!hjkQUw`RFr{I5D{Lc9_etzszS? zyJ=WTvp{)cP|ml{Sd+>a2bI}Ifrd$T8^a5!qaP>Ro|=uY&sdo_(2kBs># z>QUXqS5!CA>>oE#iRvag>PAcw#C{QC9N)w#61i_wIURLAIvp}?!ly+>zhqJNu445AKQZ>5zA5|CBav*f#E4OmvwXN{Jj!_Z?K*Xl3CVG+!UL^BMo8;D>M+ zh*ik)7Mie~n6N(~iEvMFQn*O2W)qh+Csmb6DcFhf$nlZWar^AavYyFy=BZnd$(OuS zpBg8IHYQQNq!(!<){B!q0u@b)y_urfhl<$!$i{5NWV4jQ9OfBIxzQ)Z1$0xLh9xs+ zoVw0M%`mZaGlGra8$lb z+T7jJIbQsXxcU4ezxn%0^Vdt~A0pDy>{Jomw=fEWYDevQ%37V7~OpZ|Q%NZ{EDyGT33Hw4kO{NO^!? zcqDO#)H zrBfQzAj{_5bE=pqM)r*&rISIbz)fl;d!rR03E)jGe4dZo2e9&)48*f%9= zE@-{eZykeJ?`dAgPEpIt>;3WWR&T4YpF(bU>^t?3`73zJS{(o|9Q=0*+6TC>>N zwAjq5)>_ikCJWEj7G>=ho*G!$$Q9c}Yi%CmmrwCqi(3HNzlm=D*<3l_ zw|(K#=GCpupXNKY&6`I&|7x#9&2pu0(Qj?fv+Oh|(e3P+|0f3#sn-zyhF1Pgn*WVO z#Q%N}@o%j8Z>;&>GuCV{Ja}cM9V>3nyw_~-hdif`Bv(#Sv2EfjB0Y( zECc?se-|#K2a-z4iU6!HUDYu9F0NVb;3H!42y%Hy?{}56naFpi!iTsUNmUniL~MkG z#|@SAEB%8hj*I%e-U?szd84F8S2%f zNf*4*bN1QqwK&|Y3@|ty_oa0hocy)_{Uq%{Kow){82~h=PPsf}y6D|{rnDW4QlToZ z!Ym7GMr(%9R=>FEw00-Hjhk*K|G9|7RoB77YUP~}y>-ExLnwJEx}w035i^{wLS2tt zzr1+wW65)i(3NtwvMIRP{^?n}|4;;}T6HtFH8GEYtQ zUFJ2u{Z}I>H;LTy8;0g(3&W4^NxD5vvteF7BG`TUrWAfkwp^AaRN-06V>KNC!VMYC z`V8e|jy=W}Xza)fsX9e6ImY35!0NYKf2*j|*Dm%#@Yh+1!2)b|To+d-VEGp6{r^PRNY!SW}w^vU8YJP>*Vm-&mGO4t!rsLDv*<@#H2&){I}ioGI@EOvY`R$Dcnn!9(Z!tN~d(pu0_|=8uy*r}P&UZC?x1(E5F8LghQ^rrX(pxC|xBeX6ve=#s^?%Xk zf6g#~XUTuf9dK4AfQ}HrLT^DY;6np-V=|Puzh)iDi)vW-V?1QwG2bwv4!c|d@#gV7^B=&Kl;7h z3$-MK>3M{{iw|Xz^4kpyvuq1l?!w6wOpd=V&8D%38v=SV`2J(~v8R&u}-9RewAURr4Dt#DYCG?X_cpsg^N0deW zN?3uRWClSn2MVYI0`k}(x-t-Z6xg2-`k}`AO%Oq?kx%o-$+JXJ_%7^JZP&r%JA`tvR zM)#=3f&>jvnFVjz1kW3W{yGTTM@kSe7RLgClLW_aY*Bo_9fl4<@2ItR&9k>Bh*zQBn2ZM%7#8ghbuF@l{z#RlntUzmk&D<4ptKO zRHL3)Me2e;daLFJ=%63`Dxzv19vmi~Wlvg?Ny;`%+W3~VS?T(G1#qVua-%?^7bWOf zkgV+)@k}lL3w^{jR_HF9MTl*57%?2^`4x9YG555MzFDZ9&>Xw>f9GvjP$@ z(`~s(M4bPO;Mp@J3nG-;5SwaH6S5Lg74&!7D=2jQW`;~SIiYhY7;uFf4 zz{Jjtf$h~GV&GtYJF#0mslG!9S+8XIo^1E|?1w$kY4>x&lyhi%qL>(rRMlnFIkG3w z>DubjI(9j-#2h`w+{MG}qc@o*<5C8NG3&`$@9lEUjB`E|23X7G*w*J531vHi^Ug5l zs}iGJ$$8&|a@k?rm+Iw_f}tyHNQ%x%AcGsUhdtu!K}5AOa@a7VcpiC`LBb>qS=DxO60}Uo?_`U&M-sR`CHNZW<#y&p)FTyL%O6`+s0CNt(1_lwFE=BW3wS0BBq!pe zDkg=>sm{J&N`-I(rGh~iN(5)#Zb)lQN-`wo{O*j`$gWUmt9mhCB}ZF*M6RGyOI{MJ z3{FnC-;mHRP%SfG{fxHewMl`BNy44ua^1q}CH?H@yfvcU66VL1IQ43APAhs)HQ`02 zNl_Kuag97}&AHwJA>rD2_1fpMRr;XXro7tc?KR5RYMqI-Uyo~@?BQ<0SswODUc&A^ zMM)05mBF0Vp`@Dl#_pGE*HrCrW@5t*r6>mVIq1r(<|t zwv_jkGi#N38V!%oRoUL?w?$}H&sswhU&4F2!=t)6^(=~BX+MWht4X5@pb^Shby8mf zBFf@9>l!Kag~vyrLA8`z-KJblB*7b1NGQu8Heof;)Z9!Vq_ML;bt$DeMguw9(7Y|w z6sIOPC11Bos`$y-v{cx*)zA_o{QY4{)4Y943aDjSqj6il_Oz&JK|b}&#by-g`?uro z7fxD+dSws2>(8x!?=orOIN=^vt1w}Ryl9f949F8AqNIiMh2+Y9p|jF@iaHMRe0p*o zUMv+~Pglfd_1T4(%Q;aK%u)&sKhXJxUirqxZHkBOPqCSH1ZG7W@Ipko`m&l0*z znesABHM3IXHVk?;-Frr#^%SnZDlQf)IO!R`-b<}KSFdZ}Vr|#P^0M(#oE=@H7 z9)AvuyM0#?q)X4W_yZQR?V-5~#sZ75dK$P7f}Ky@NDOG9W zBF>PnB$HEWfeW{Mv2O)iGUwAeDuP*G$K6c8?=<2aCh*LieTxeHyCRRzn)OpAaI>j> z=CoR{2sN6LzFVFhzfG+nYq^dJ5d^LxPR%lM;DKq~m28PHv-(>DSPa?a(vsp;g8aj;0YV?lZ5vk{Gz9`l!8UpGo7$i35en(US3^NitvEYFdq-T7^+&%b0Q= z@eJ}tk@L+bjI`!6#8%6rR#Pdf)GLWqrK>esYltYSg-E{3J^G}SEGM>3y@^O&IA@lw zWtUDP+6pS4&&x3$T*m3c9G>+1CO^{v?((OE4~J3p0n ze&cuU^>J=t{I+Q>?Qmaepe@_sb>5}(-xa^LC-LCF#1c9A#Q$esg^Cvcct#h4hL18tPTi+pm;lGAgeQyTlww@>UBF zH(zIW<-;XODUV{izwq}#l>F5%3SGZDkj4AuZluRo!JcTXNTEotazVW$-Lk9I>WTJm z%d~!o-GC%G=u|x$puFvkchstrn#Cs^$8D-N2<^0D3-vP0M*c-_UI*Wyw5h(eO9QJ?kG{2NV4UrqjwnvJs4rO(2%Gvu$1XJnGbOML76Orj*H*LHTCtnb#E_^%N27C5Fp>nqap zm(9C#PKT)ledvb#;!4LEI4 zq0~I$S8iYAxQndq)17 z#yvI!AFm;j^Y>N8eI(VM>~$s=|H&QqD?3d4Su4@cjK9j%Oa^cjNq5V46;PYWB*to>#{#TvxH@! zMIX70ON#yak|;BN^S#h;(^Zh9Tpx4VGU89_s{T!{O3jx6rQWA&?=CeEer(!g^m(sE zayE>Q@%*l|n#5gs>b*+P+OKIaTQ<^0O{f{{H`k?+#2!4FI<9xeAD(WTwaDZ4c=lVJ zS$4t=d}cCF+`8qaTw?Yc7F0wJI<8T66MB87rK5-N+Ec3;?x`zlT3(@(1k)-_-*JP! z-=n(4Lv_(j>z7_0kJBRd0>3>NK4ZGeI9*DE(Qe*N?mJm}@Mnb%*!(kJ`;=^we)JSl zE(D?=eiCH=9M4!&-!`-TP=sn{-^6@b+fP~O03z1KNN^R zxmel%tfBAkWIq{eiS>K{X5RlI&}UaVfYvY|BQ8KzIdFZ+k9o!a5`ExL{=jt0z@K@3 zFOvf~=mUz{0xz!wBF+Yh00ZwG_;CV*7W0GB27@lJeGxkd+OZCzy&Zg3H8|BWxPw(! z78#6Z4OX)8eS#8vCgby|M*anxpDHwD+1+kT%0^|>=2ys972eP%^P!JjX)I;JJ{X35 z@(8nmhS?q1`0_dXC;6Kms2wZ=-l>MmvxV6~!@W@9Hkh#EC2KyqaAc1EbKP)7D?3i5}r@2fk0+K!sE{ zP1WhntZNWT0ty9G0RcrGkVs%?L~>|_3@ArHqDFw`2N2S36INp5=4|-cb>&?LYebu2 zL_Yx(MF`7)MqpP$`1VclHekhTk^LSKiTSEcGGLvmNF=?)lwrh-j0f}{xcK?Er&duf zfl;eK$eM?EWwo~sCh}!44do!3hCSx2Y|I&S2)xp}6&1aQlsHF>VG)d>g9*|X#4y1m zE_ueXu*X8hW3M0jUj)V8Hi}sZ*E}M`_SH$;fyGgfvB|Bmd@vuKY)YJ9cU;n3+yf(; zM}qOU)#4K^;~&7{W`$O;Cm!9iLV+9#t3q8afko0&yi7h;0R>1gFDgZUA6>=6leOz20^ zqgDYx7$BSI^8Er3jD|_`!w!DI)>z>_wy-S06xSs9Fu^0*_S^hH)C`|gt{_dzDj3QR zMKeTi5-d9pC0p22U2Id%8l*OLCymj=^s7>F&$Mts1n4k1 z=|yVGi%>EevCa_K>IpY~>98T2{?jOZ%P0w%Z~qIOezF?8zv@M@wL6u~IA`bg2j(5Y zV1K?o<06Oe1-nOQ$R^BknY2e4Y}YdDR5Cg2(s8zkuLbFx99e6&nH<^PHGEkD@Q{1t zM{Hzc!J{lLRMzeIj3T;hDRqDD`#!^JKGm-A4;dtuma{Q0L*HBZjd!IK@#e@d{hpkKOt+l6SFR>J_akGj zwNP%iT5d^Io~4)X2XgQybw8VNUp;cRgIu0dVLs(^PreIBTEM6L$HBQug}LT!xz`A3 z8yE5dyz)nr^Tkp5V`KTp2Kn#nk&fd?=la|)200~}#J@Rd0eA~fWno0*ckS#7VEDlAL zGI&O12q7t6U_5IXy-e8vM{&Ag>5y#hR(-KTd~qhZyn(R{PcEufE))OlwHf4n^-kKQ z-m=R~+2*R6cQ3hUTccrBN|`RLtsKKJSHKJ8!D+x4_sJsLo%j5As0}m=vsT-vrad@4so|GUA^wE zeVw7bWDrR(#H8SPZ(*=qWsV)Pv9>OhRQJt3E>aU7qU5_ZgsQ~Rx`5{pM!?_5)=Uphr+5C*Q_1Z+{kepnQTGXxLR!*T- z)0A}jZmA88Hg-~$v`Eu!}PH9VXZg1Cfr_!jAXrZA=jzG{)bpi&0kV9oA!=b;q6N4Y#kkeWyNn zJ(!SM3jZAT0Zh(4*=COP}iM=%?`QPSQXI;pXdqk z{PFEtPoqLl9=vyE9OM0}9jbsWHpQmGUYGgbXcAE}w#MC#MjI*Dpd7gm(g-twc z?B!pVoA+s7j>tg5%E~4R)-KjI74)t3_Khs}U5qR{bJ`!s)jM&5qvOV(LDk4N_FuLe z)S}iLbFl;Y3IlhV`qVl5cojN?`TC`BgJ+)%{Nfxs73ur1{!to-|GwV1nOa>D-`}c- zXPc~eS~6HFGW=ZBcMChjx-s=Z*&pE*9B~j(yV%aONKKFl&6%H0C}z7N{{+>4WnUCU|HNK#qi92mul~ z>UdfoxIs|g8wth{A~cApMTBIH?z}Tp48Dh3Vr;z7FLhGB6i%v zNgOeyrPw#q;bh!2vahdkq_PQMX4>^Jb@2Wx(v4G+yyJx2wF%LS?(eurJUhP|;do-_!WrLQe@PMW$9v$`D!Z5g6>tT1#HE;sl_suRRH5!v>(~rX{{n^ zt;UJmh*-^NUPY9Wd9#Q0Pv=h+SF5AeE2E+l{MMQf9^FcG=1*Rtez72lx6$-=GFm1?5Wl| zplO?tN)-Dx&O5KO`fs0!-fmXfVeTU{Hf=Rb?cC_&-=5UkxEsB}V6n^Nzq_2WJFd0M z^>~|3dr8E958%8bnZCmJXXwlsnmdQ*Xf9Dc(~@h?~W%N74}#lKwfFIW7_75{R@zg+Pz zSNzKr|8m9u=j_T~uK53*EB;SekqQ|9qpV2%<*%=JOS`%8aBpR($fB>g>3Dy8zBgUF zrTO&uU~g@@uchVB9~wF&mu~eL{fu|7uSi|~$ioeVIx>pOBm_t59I%CisHxr#3pbL1 zg(rSNu>qOEZ0w+Ga1R(5R)K;+(taGkA~FYL;E}nr9`LAw9TYse9oVfb_AD50q0!wG{(9Km zRN+BlR@#F(_G|=T_ph(mFBu$C3ek8e`fK>Df#a_cU1@5+`Lz`_!a~hC*Nz!Cv`ZrX z6=89RHmiN5ojv(`;_H~>exEbs;wWX(XMdxP;F+$tH66n0Br_P;rFbwKA-##B0nIlY z%qJK)xi7G2I~^{i(&8WB(n%+;mvfT+B$tN6q`#Ak>y!c}OS@RS*Gu}ej>&G(Uh-?T z(^K*rExqP-n++}I?mL}Bkv`j{%VOl+F4jJuje)IAA7sDq1K(fGu9r@>`<%;~eoZkw z_S^q@O`CE!UFA%fAoi6g9c@D_{v7QOP5(aGSf2JL?a)%QEv!l>4E+HPOz+NKz(`S= zwgQe!{&Gd^C-Ep4{x4Vj%N74}#s5FKV(^Rq(^qtoa~bmaYI0$mFoyqKp3J?nH|0fI z#{aJSM_p8F7+=M^S0>}v#nMZrJV*Ci-6uEY`n*~%YysL>d3LP3j`8d*fUbS+-N5kO z$@?0IJtl}vDC;-SwdpbZ+WKC`ANh$~C$H2@zs=09)fL{p!%?Q0UyjjDtxJpMNLtjw zjb^hmVcI8ioPQ25(v$(~$pUCw>f$qH^IfX1IRC(cknYlquco8}Rt^3f54BJ#o_6@U zDgRlS(Qf&b&*D^}Vwm_`+iQJT`_C*Sow)G$@$tO>hp~}#%KimMV!prj*k@R++@E~E zGpddR<$zN&%YVtNqjKnT+nu#)~H zrYE3cL+@`QK;sAvH$MooVhi6Kw7og&YIFejAKT~Av%s6#Ku?2k5rSVB8|Wzz*t!^g z)C!C@_)LccdGLV{gy00!?bW+rm%G4J)otSEZPcz^V*)J2>s2@on zL=GCt;ZSx{GEwcwNJ4w$!b;@Qf#8Tu z4n|WBB52Uu_m;gs-4A-c7yYCyX63wZ0Kb* zgukzfRj`Uf{d!-ZV}_o+kC4aNWFqZ0wfc31Wm3T`f#r%Sh^;jgC%ma$5xId zlE&g~4-=U|iI0a8#5}cMt9idEh)-F0cNryNSrBo>Fv-<6{*G*-=nBxGD!H4G?0M)M zKvf6p>>eCIW7uKS)=3Rx&^$gE6b6e`gI%|RHRr-I*x|prU=W*x8a_A@2Je0eXPbxB z<-*GuQi=;62% z#>u8-A0}U2{o3*(ZJfg3$35chj<%``rkRsPEEpk{JQ0iR5+mV=bt3h9(0g59VS;7J zJmNPIL00qKN2hNQ19#MX_XPb*+tSYoAr57I&#Px_Gf3^C&8KB;XJHw~o*CWznaAi1 zi=m7=Q0PI8{7tX)>tLT-cIj+nNe-_-uAbN{a#`!_SzTRO8%9}%u35C0q@ZrOhvQjK zs;I+fgt(Wa1X+*+sG#VD5VP}98Bf1xcQz z(DHf41;=io(0YiSfJ7M_FaQQr*da2Fse|Yk47jLA9T~Dzd{4Hhtp_k9L^A?M%z+V| zV802w5b%CUp?ac{Zt0>|=^J>d61;?4uAqomf&^1f155rS7ySTdoYN>K7nc3E_U`+u z>3fgkxL(?Os{tw^iZb+GT9g$n>mmV^DI>w!+G-)B#{pD@w3Jd50&XY-0wPN@WD6vO zB`XODBYPuZCGaJXFcK1|UVE)#!sRcxKi>OG{)*2zkMnuHU#?liaxJ;6?{a>ew;6;C zxzhf9VS98OvBCegJ}yrfUG>BMju@}bn%3ukjp-ys6StCy_6lQ%V|ELV=g>6XbR%v@ zDuofiP{WR_5`1WPkXzkp?2C((7m7&#*v;)l zvie}GcPQE=JihUaT~Gbf+Vk0%Zx!7a-ALb1dLqYrs$Tb;JJgHd_nuMpR{o_g%C+x? zTTfzKukND%h4_wBkUkXXd9GW@9dz$KP|pKMuX9%aTv{pdX{n30MR9Au5M5q*sQOoz z_E-MZA?Sg+c+{3_{^+$_U->|dpr>9zY23``^BP;S%O69$+tw(QxF?-xN(Hve;TE-i zlTy`BwezFypP_c_rd7Mq?(eRo#r5&C2ZV|?v0Z1L(QZ(Fa?mn9yH$Xmg!oKT@$$_s zTnv=}B1FG?v2X*Y0_Bqnniy32_zayKNz-#11XwEm8slwDZ(R(dfXgsI>W7Jp##Y_uMXLxe7_tfI*}5^*<}zgG?sLGr>tGT7@4}jo-G|dM zNB)5uv84?Zb4QNN4)4|BS3tEIVjDNc`$Y2)cctOv%~3|xD9J9@3x_&wj|_nhgw6KK z@)@UeH8H}+?6nF=3iT|Cd5%^KGd~~CrzWI$2Y%>>xw43x0|2&V4~`XtLPfzdl8fj) zijjy}Hv27Gf*wt`_qhTcN))n;*|g5DapiaIDH%|9WD5J5d)GBv@~?2zmpXRg2hyzo z=0iA>cYv3PN>vaeuYYJj7qKOB4uaMOUZbbqtUMeOHV@*|x^r$u@ackfZWYlL_n^of zeY}OvKgw-;Ou`E*h|v6J_RKUAr&Gw@j6DIi;Lgo=?fzuCsQ4v2Wa>Tb< zP!h>&OA&b=Y@UHL6twDaXOR{zl(h;$imoO5p%oPVgn+Np@s%jaqIvT)Twv4=?=u&0 zQh4`;T|5+bLwDPOC>ka4|9}bs=(F}B;rTuZCtAQs791y`>vUWzj~W}jxUp!A{e0{T zs)HxV$SWnW%HTaNdd?H!ORVnYanbM>1}^ge#wVfM6+aH8j!$Ke|3+gafn>qOsK7v! zf2u6-${5OgU?)#@W-!;UO?Jv-BF|lR0w%kSo;X`9jo##h>nEy_7&tQc|G8IlIXOjaNB_25E*{Ld=v=hd<1Dk#WZ{`?tUVf^VzRa2V z$)F%b=9wqVQ6Q2@gHUOhvw#7>AVXCQEVThEIYVoDKyMha?ReBuE{G zP)FpdBMItgx*7_oV~y%B9hbH(P&~Wn0~Xq1=6A&|dC(4sc`tNhhrYnf1@f1_JY?8p~;QhJMhkm0q(US%Mw1jJXee&2>=%A6MYaeK@5`#_=1CrRU4)m*Fx6~m y(o$)QNdisfvZ-AD|Ch@q2{cKdNdiq0Xp%sa1ezq!B!MOgG)bUI0{@2+2>A~u$0)@B literal 0 HcmV?d00001 diff --git a/src/Documentation/images/rigid_fail.gif b/src/Documentation/images/rigid_fail.gif new file mode 100644 index 0000000000000000000000000000000000000000..690ffed4c79e29a3fe23ca16ee70aa06616d032d GIT binary patch literal 8439 zcmeI1S5On&x`t5!=_rB9p8geHan{ve3b11Kf*UP2%!H3$ky??FJogx&%HLQM#v zDIF4m(t8zDdJ&Lf-2UgxoY`m2oSA(t&edk!d~4RM@A`S>ebqJ9@ z?iAA%jf(7#AxsxUExIalS|iR0X{Bpa=C;RNmVr%nRpxafud7C1(X7hvP7*P|T69+x zkW;1Xd(t(l3wzOWUdxl+)tJ64cd4Fh+7L?Nn+O2EAm@QpYpV`bQ=%1z7AKr&QKczp07@~(qgXZ1uFd9 z{x(ozZGH6D(f;NF0wLMl^y`S4H9ynW{NULkjX~sk5FH0}_RT6!{HxId|Va;ZZoq;jIP?;gG0O1}3G1K3;+d1nAjTxF0%z<*q3BMQx%~g@;fg`U#^yooz$p^S`s`>lyJuYTK8{aK?{M~r0j{<^tkGfm;U;fI7}Z7J-TYo)l4EcHFl zTPuaxwi-C~Ub?nlToLu?IJTomS6mJHYqjG>2-EZKnXuTZpxfoE=46TA7*9$+RmTf| za|R$tQJCrQ>RTIQtErXeY@F>=>kRkqFBk9icGZ0#pggE&&|5R4X%DX%R`p`98Bq)= zs~!a7DLft_Y<~%rA<+o&xhOgJyM@GeL7D>Y^|eDaNq0{H!)}a0R1k zRsSVF_1pe>!#)m_nkDr0XtV8iob&q4i{;1bjW@2%Z-43xe7Ou(d)B!1;Xdd5?q`tR zugOWtjaRdl;gYl;U#eYb-)5Za0?{AU_m$9Fs-Pg$E(r0UY`m5j^!~t}`n!u;xhD+y z>bv%Z)mg@7S|#+2kE_j51^vgFxxP2?^%;xzn3UO4;zQEU*k=4ybpL!b$Ez?`1BOb( zM`mM}FeV+rP)6lezVXd)IZ6%(qO0}l;bsI)nQfk`QIv6=Z!1zmCzmVCPx{ifbCiB; zE;q)nRZzj>fgvULVr`eIm~euM1zXTi#EWudW99U(4q8j%;f7598lkl*rBj@MR_XbD}@>;}qi#js-Yg^`yv zb9FqEvL|hCM{IZNqx!@1xV7%+z34GybbMFJRv`A~G}*-6Gvz^Xfw)+dcGfq~ROG6o zULZ5&5lhnTHo($#WL=VjXf={D7$uVx)v1j-A3NAk0G#maaD&}N$-gfI%`oYvM|!2Z z0KS5$QMwP^lj7aoFw!%{oqj!D?|;zfzg*pj(qpoX%ZfC_fJd42?=B4_908!fUz%;J zBHXC6jt&p6v8cZp4$bBc%YEz;{5e+CBTq(}`;?ki|Jxqjtk)L-*yV;)*xRnS3ll#iR~w zU@k1CqK6O1s8s^k#zL|fhPk7LiojvcSyb%cs^xhdH>2-Aai#_76}juFlgo-?e$?wAWtY$FMp+wik*V)BWyz69c0 zqK78Qyl?Mf*^{t!`1f(M?^Z*kR=6L0(6hiHCn*f_ErXa{>IXLj4yI64(?=YS`gNM1CK4FcL*4aq@31fzIo zyuHaT(ddD(QGy=O;VF;2q57U-A_(uG1FUx1WgcUs!%La5NlPsE$ zsqmf|DRMEzX^*Q0HPC>TUXW;Zn~q2C-gBmu$y4n}GMR7#XNBD{FaK#7IBjyWlZ8(y zG*CQ^Gb8hn5aM&}v}C%FfPgwCwKiF4BwwcYigv)I{&ZjcY*j_zP}<>OkuDw!>0LIi zKOCxv$Co;TSIj03hlx}?4$-?}b#yrLfrC&H0baG^KN{`QB~+#Mt~%X68v7JasKJ2O zVCF~Tqf`Q+ws*}v;Amo&qn6kSUiU;FO@7m@B^_{``=104{@?I_LiQ7~pOF3Ef$XXO zM0U8G60eiX-(lrn9Ycy8dzl|M045z{ zaWDE(vs}B>MaNhNw_M(+;EsD&J>pbd^7ykNTW-*v$7_}@aK%Nc3${EF@m#g%_q9;m^5TN%e~9Z`1~;VD2KurIRLE%1WyocFxEb)qgXJ}GW7e@VgeMvmK! zyC8a67e;BPm_NYy!b6iCXCaU3zE^t&*=I(1neic?Lg%Zqk11eP9#r=)ogX>p6pNJa zpp+Rcle5p=dad@W`^hzb?i>ufD%36h&i6OW2#c#hPyp4c~{? zln5>^zdmhdoRj&k$OXRg1P{B0m)$KxgcVsP@eD1m?w0uBVHTCx%B&kjIilcFyG!W4 z=DRVtT@`@+ZEe#|uA=h6w*W^F+Jw9wQFeN<6nd6_xRh^C86{8#Q#6<9>bZ@_^3cRx zH_n&^b;uH`+s9nk=_e+Pjd9n#;4cf8Cn8&fYj=y`;JIb}x!8!ys z()?2#ZrkZ^vf_^io^=8v=IpJsa}k)|Ltp(EEUXUIFwI=?6&}{rHo0pc<;&AjHZs`h zW5)ef8uOMGhSi3H3{hrhEC`1HOt{Ya)fL{7g0Wv2J+Jz+qhDYXTp(*b$0e`G5NeXh zPjCnW9@yv!na z?u=_U(RSUP*hTCXIEGuO@s+zZZWM<5V|M0{Lzw9Eh?eReJK%2SJwlfZl}~A zFG?ZnD9*Y&sEOkxxxP9og6h>sPyZh-!THZ=z==zoqy#4^!M}A%aN-jGrl}z?&9}#)MalNRPq+Hs~B2IRH z{V^%;Oz~o8b^D#qhz<|^TVY_W{YMY^$_9awy9V0!+y=vg_w;4LK7*efmZlS+7@>9t zl@0pANECO1rCrg})E>jos(VQ)FsvbF{8Qe=yTyjRqI%4W223uyB|LcSjY<~dis0m1 zHlnVkeWb)1>~4vhQIz=%YKT}!uj^eV`in%$Y3TSA58W=IkI)kSxXy#szw5@z%rD%& z%~=WdbUQ0ZzS+%{P|ha`GvOqU*17Ki&3Ts9$oXTjp1w6bYD!6jQxS!DDm9YE&m6l>3sVgott%)^1qK}w^RI-m8Zdp z1vT^g0C|v}@Fk@96+0Hl!3Xt=`pM6#7rlV*6)kb#v~D4X7hJrZYK*J2;EuoeWn(ZD zG{xiXnd8M>qP#4^_fzuQq^~1C#;gLCHs7g~+B1)sDh9cOb9a2c{QxM?AqgDm;&+_y z4aj%=eBqt{n+Li8_5Z}aelJ=Dy!bGr^z*lan&Ja7SaDc;DTq$q2t;u!}atGXLLPLgrs^iJi=& z<(XdzlckVYTGv0;XiKd#QtD}^H=5dFB)5mj4ciYl>IcaZdxhl2rQi+X7gmWw zUvkrU%Le|3wm40V+)O>aSw$ZUIDLuyq2=LbIX6X&@oUdVLhxqkO*S!>+MX6{i<#_s z(+qaVg@=556|(mM^QTtbNWFI|qcj2Y7gR4Pi4t^UCHLm{DQOCz;ZcuYN%r4={Dg`) zQIR<^U(SRP+W~tOF^I{m8?1G0+IwYh(i^UbvVQB*(%lZvV;f~Km6x}6GEFF9a}-A> zb?7YV(bACBPN(Bc<>3;#=}G9NUle&cM2Bg{R?^p*AErts(^c;mqnz$=e(P&gx%cw) zE2k@|ylu}Ick(cK&;>p-<#)s2!jV?!!~1;Q2{`Eh**N~E7|Z}Vc`Khc6sC>k8&qiW zeys!NH`9g;u2cfy-cvXYp@@;HQ?d=u%dXnCc8u<90nrcv0f!0gu?`Pk*Zd4gJ50p* zsSgAnGxi=84C#}l+BpLLmn4+@e(aH2?b}}QbdQn%hkzzzy=^bdci~{lp%9c%7MJU-78l9c*XsH0J5kb4FCWD literal 0 HcmV?d00001 diff --git a/src/Documentation/images/rigid_many_many.gif b/src/Documentation/images/rigid_many_many.gif new file mode 100644 index 0000000000000000000000000000000000000000..0822d2f7ddd04217b5aa3c03209ad7f7a0d78ba9 GIT binary patch literal 14047 zcmeI&cTiLPqvvr19z_vRK!_+Hy(3KsMNmNqT|p&uq=QH=p+gc#LKmb+2?)}w)X=3U zJs=1{rdFBTp9*weo$Rj68_0MJyT+nkmH#6f6fa=XQ&ljW_dHuYUA?;SXA!v4 zVXCLP2v=s_9?qgsQ#@8_H(Y4aTT?Po>oV7qu2EY$)d1OBo$9SEn`sHApk~#?l>cr= z(hHjQVZO|D#&T+)HR~!CdXpvIPWRPSE)8TVMX+ksSFH@^>lK;y*H^FM$}M}*S`9TD z6Bzfk>Hdb=t(mVdYBudg%+6d_yr3Djv2Jf^Fk2%-yQ%(Q&5*)w2HVtdwDqf<7{R8~ z+<3gVJX~Zp(A;!-v_03Gq0`cQeoEL|lP+v&xws&^%=asplF{y02o(>AE$Eum@-Ns; z6~5nahSzq#A=gdwe}~=kTK85+P^xSSPP zFKw3{t5Uz59rxN{1^vOaa3%MhP0vbRX5fl_{^vyIh5X#y!qwRP($&=>;=`J2YsFQ$ zd~ZuIi{rmb>JL}n!W)SK>*ar4)>!}2wP@>D(I<5}U4c~*eCIQ${dS{Tnkn=N2-i6X&m#r!p?B zR5%}(w(AXbF6}onj$Jw!U^1@X0Jc7^-|uPExpv-vaO~Q})n4$fn{P?Rtw(4HAVC?AAx(E5kKyM>7>|*c7t)?T!E@f8 zqs9ZZo;Y*46A!#q1i^F6PEW2Tk-Tc7h78!UA=PPX#^*iZI-_+&95!4-}C8+(F4l#CP^C~!;@^WE=!2LhB|m=Z@=q`Glje_JbxhF zbq#XVAPX7GgEJI+^mo~7(`&+fA%`DsN*S7BO+?I$b+dV%PKHndiKsz7c zEi+Dk>Dp{H?UMyP2wbgLQ>2g_Kzm(N9Y=oCONX+FaRY26pQ?n_Z&z9UL_a*am~ z-alvF_L%QJgKl3arRAGob1E_BLs~vlH`5Lefao1^B!WmoVR31ymYbcY4|%-%J17<` z$}_5gBDz|9{S0`(r!oK;e_~4i1wbaO@BXA-SE8c8g;IJMP@4P^)}GM`sfz&(%v;0Qw+S@t(_%i|Ywbx7xL6 zWMbcZ;Me?aZFF878V=x7GI&Z8xBJ0ToLfNuSWUaaEg{=~;pPT!uc1X(Le0LFkh_nH z@veA$!v|rr zQ%zgx)~~c>%{*CLH`c3uFMT^QPku>lz&F=jeU!+Rr*PCg5O@-wx>%L>_=@@>do09m%-#C|{XZ{YQ9@#HT{zAtmXaAJH}vS&TFVAXVAtkrs67tXc)?r&o33 z>i2U*ALXgp-^ocB-_M!W9 zvh}LhGW1TL-jxQ*wp%vKaQ?{AQS$2CJ6MrVz+yw{TFQ2In-zbxNCWyx%5VJN*TN0f z!Axb8-^E0hBJDN7cZ=rr|DvjhMQF}*+&%6BX;;K0_099>#mkRMzKGA$To5oi?s*ot zE4(5rDCBqCYu;Ru_>F#nF7&w1PP>vA+j$Qy9s%liiLOi-yUr?&0AV3miMW+B7C9Jb zAozx4M$_C9?O!K@5Z0=c=C}OHa)$lki`t(a?Juh%WQN9O#fydd?S(82<>EJ==c#Hf z=v=u!a*w0BFv-#3rL*17as{`dJ0=C-3E!^D(fuN){xxGxM*YU->N1nmBJ&AfJlkl( z7t5&ioI{7PawjQpz+W4$G>l3{N~H?QHgJw_8-^zni)&lnt+=>*P0j~a)oDa*dT{zq z)x4{1`0LzW|E=A0LRhWyLe!T0+63lovo`HwV=|cf9+tAUw3QaU2+#2TeOE>ajGHOddYdm1?PL zwkh31FElR2p2!TIf7|+*FQ+pZ=Y$rZ z!+xGZPf1zM*%Isd`D~C#XOIC$u%K#ip=!{@lKGmGHUD;BuVbbco-9N(iAMgc{(xXB$|21$qSpJ+OcRkkBU-FyZ8o&?S%v1lIQfCQHzi z$HRv9VUNLDPl52!*$|a3foI9^A5gd^6_+*vE>9P#o6q?Y913&`1%o&ZF`?p>a8sa= z2_VeN0%ipkwS zSVH6=AZiF0H3E(rg+$?#qsB2&llZ7UIOZ^!`O>9-j#lXZta$&#?4OwZPZ6_THTsc$o42;Ge(lW{XqW9aCQbjHOKdUzEjVW+nZMFg#Bb36F24?xyr480Oe1&&jBjJ8!uw@xU5)d?tlO{;@-&J z8(?So2m&RRgW@~haNc56+p&tX$lwC=w#T<46U2RzxQ6)e)~L&We-R@#a)X6pwC8fJ z8>m_tEaC~#VBd%{Z~2VlYo+g#Qh1N}qP)Pimegm!ECK6^%;Zk${(K3%m-0WvEX}iE zx0Jnqidi2lKaE}*f!OzV%<8<0i${~uCO{vvZ4W?Y=q zN*S`r-snm%ID9jKH$bb{iedua^SY{B{86!$v>aKF;bG;P|GG9uuR)71V^#jcJUh>) z<3mFSRRzyTG3!2Lh%3BZ^W}Wq(N))I0(!f)u4LWGdB|wS@HVE^dfnxnuJN46?Yi#U z>uzs{jF-r7*Z=so=3%dEvNp=lFy^`DWjkcDmCMlhn|lpnt!ui6W@uXZx$0{iMNeGGj&ztej7t04;}82vY~8!M4|yG7&#Lg(Wf z{~~4!ywPt`K;6%yD?a3DTC+=x$!m+eNT}^w5YapCafn|lZq!^9Pd)B5=g}c1KJ!?V zYVhf?|9nWmyVlc_{JuC#HZ!r6ArPtQJ+D zo7U~N9@i_yV?7cCOLAq*)Q2;p#q$;x?KMJAMnJ5dH67OlUpAz46^>$aWcF7LDP%@3 zB_D)2_P;e=GgNAtnDKN+R;)??lzL-Thw$D0@l{$IZWYBErX{2`471mT+p082c z%Z=c)3(J~mR$cr&C+D$Mbw9#4Jv4l${7Es(MC07m<2Ma2J+j-1+EQ3cttQ26`i0g+ zF!fnKnjI4799PCe zWQQBHcndU|mS1MX|1`mRWFIwJ8>#x>NguJ!km+C2KC1Ul zYg8_3m_8!9Ik7dF`_rCHZegbzsfpYCM}Cv;(U1;$baR+<<1e;>nJx|V)(2jf5fQV! z^fD8jw9bm%qqCK}iN2{p3OXf-_F z34va}bne*Sv!1vherkIV7~<1% zcAr!6R^?1u6`jfP-u2gYZnD zyGyW_1VLp;sBB!QA(GP=A1b*UYR)I|8W^^!8)gF(v`7vUst9w;=Wrr~`Mbg0z)(9d zqJRzov6J$~AUQO3S~GCZM$SP+35sPvG!xP?rA-F$;+yB*&a!V$Sd}L_!SNo!Ej~H~$g0wEw-x z{)@OJSuRO*|HfLfKT`WgYX5Uc?f+YGd$3xXo^v?nu2Xcd9TL+-sEoTnA5Uao6rOB; z*&?1!Tk>C=6}8PwpA+&575&cUw8>7F%1%t|gU6rTzeIb`a=`aIgqk7wQo;V?y=Ubw zXkP04)#}|!PPd?Wcf|Ax@55I9P*HzQEAy)%9nFmO+o2m8pC}dixB=sXVd9c6FW0)a zv(|_rh!Xe0uLgjW8OU!vm(w)A6#?mZ%q>QyVP!#ovERW*=NkUfm_4o-pd>`MikkVI z#pId)jRWNxX(q(^9*b1rDs%-oI%c;{^L+;PywEYR zUgPAV7S2~y;i!lq{k&jjE2seN+Qog)vt2%BXfjo)p`xxu0gN+SqOV~_nMyUCY3bi@bTwrm^1Gscad;Z4fVx>XYb=+qt1JFjXuFu(Br<$p^C*RAb-x#HuB)h)Rter<17T~r^@ z-&9^-c_2`I82#p6?*3r`M-a2*N3wTT3OfsZFxjf4tLNE|SAGs63_TKWu~D?!f)jw)j@`U{m*6B`4yxK2eh7E%@H-p`GmnM1$#>7vZnKExppf*GrPRTEO>eRaf;|S?be+Ox<(=jXMr6=}iu@4Suf583`!!2RzJ+ z9k<-AH_WOumDF_*F4X%t|2m@WXZTmkBIN4HV1tTSnY#&{8Oth;o4ls@1+&oW;c%Ss z>Oo9L_$!EM>)>bg&!GmlD^v)1Z zj#|hryZC1`kANBV7@{kOwZ zHD^y9@a=rsU&33dXJ<|dJ4BUqfS@q4a4immVz9H`Ce*FW>5uuBl z_$4-}&x+t1`PKJn#RswCc^)H~E@dL>eO})Jh5m7mxv6VnK*fSc>R7YcjY?vQoctpC z!*QR>v{MRB)Ama3M_%XXN_2_blI-bmi}$n|`bcwm`S5sv#9o=6;>%CBjt5cE9==TJ z@hWn%*x1CX+-?o~H1NrgEp|Uw)g)MZW_~zxvm#%u#9nWL@@D~hx6pvaULQv}`bA~8 z*gne6XqXaLcj$_OXsz#_`0{+cQ4{HH;wZ~z#MAv+D)Qr$<3mL`o*#))r~;FBqGoq_ z#zv(Q5K|i#L8sim8EZr9Og4EkCb(B#dqc;jHo03GxOWn3le$fuU(cj+ACGzmu1q=K zzwqO}#DqZ|n`~>b8FOFNhXh=m-ey*m=f0JM@xEiaW2orURyIUWSL@?IdiR?*Ft*-n`-N2``^2{~=<@>fNKm4$r85#~N zAX>4}%xRA-&d617j}vq`mZh}z#hUMKy;p~VO8F9M-RdZ7YzOX@tvdDX$y>j{nNrKF z?(`*(2NhFOo9R`St{a|)^}nv@KyqVlZhHtc&fb2Y)G=Vc6U*d3SAs6>GGg80_h?KL z8946dZL&^lXlb!Iwz+j7=4 z(6lvkW%f{GrDMBtrq(k^5jXna;>k%fG0k0(SX6j%UKv3os`8Qng5AV}DVIghy@P*S z1Yb+$xsDH}ix0ku5vB!(Sm=f@+KJI6hYUkQ?qRrD2_ejtAsl!ib};m%8vlHzN9DwwipMK%@>ry!+6|-9)k^pf$)wFm`bt&C>g%b3D>kU9z23C z&%<@8f_(Kux0Oj!`$7W~`gs>-3gR>egozJ_TG>6YfrO=qlcbiz5g#V78|Ko*YY0UA z;y`$TIUvah_P?c8!k&QOdWnGA2?v6axVvshSOG+y4dSuu{VxmZ{B%NC-a`+<9}n_f3D_Ydp-VckEh z`ybA_f6DjYS-y!wPjrfNME+5}6$!PD&qadN`Yf0$lUiR6ipF&J*~q$+b!!faXQ=f% ztcs^-PjG!GCT$ej=u)qwCk(&jbuB>D}C^}d7BxBYqKuEMd9ar%#YM9Db0 zHy#6lMDdK15u5lkwLued$;Ssm`A-dep5NWrdqy3#EO^(U8c_kt0+?_=JC7fXr1Qu= zU&&WJy*hLb_ISqm%}y=BQ}=ex%Phg4h8lYNL&)#@3LGT`vd#_}X{#U7!%8 zIn*;XIaXDpWV1eIfeMIL4tnqFx$@&)7H;1ud{uz@SuA^?Y*cNlpKr$w$mUk_sFkjKUh|y|*SA>xX=E+@!mRTcx4-RKP7o^gd3=?F9C-L8 zHmcZ)S7VH1xfRL%#Wt>#Pr}3wl~QO*>{K%KhEhr zYm1E6!o;eFdP_4f8m3deweKqf(2%2-(}!(`jX{(TnjCuBkH&FT+bq`3$IoVHrjA;& z`XA6P7&RTNUL}=pad1MissDk#($#2DYo_bZ$lKRinc~XB*xz!99Nshs)C`8HPQIa? zi}ksT9Y#tUThO=M?BM@C9R6_9g6ZPsH?Pp2k=(|Xca1P6?4^UzoRgMpTl!5hfj?vE zjjcEpnYy3u|BSnJmi36|!FSIT@!%rIXTRQj)HWnONXlMb;A#-)J7U=*()He3F#R+} zV#?X=X8Ann25GGRzEJvt)zabY7{ZaUr|iUdS}~}$m6BRKluFA~Df_7F`@~)F_%7|5ilqK^8#yDqp8CU2zWr-vil^gvY)wsV(}vxWtl7wP zb#<)~)upJg z9oI1VoA*eq$FIpPq4sP6xaHmFC%)(4$2%|DQ#W|ra7zX-8o9Axr_hs@~q- z!Njawqw`4}oZ84l|3T?+qq07&Tx}&fzQpf*U7hwl9vA(tVyOe2x?v}ypUV7ojvJoS2*;_Xwr1pB23JoH|k@qZix+K z%`Bn!>0-uL0-Vpvudwm7UkUg&j6PW`J3oGaQdq4f?h)FJ%+~SVsKd8TklO)lXI)#E z-GYID!;IxKtd3$2&Uvq(L2+-}*_U7>PW+6UIXlh^+U0fM*AJZd5#YfTtW+CB^3Ezt z=Nm}DA;u6b@el?+@tcs4a*GgVB-cHB2oERZK9$uSAe5*F<>7n4mkj;18zR)jDMEnC z(!s=$oRVOeq#F##Cn1P|C1$}C?07iYIiEuX0{0h(s{@49@Nn*3_;UbZqL~~z3k@}1RyHMs8dQZ^5CmU=!x-Jd>_F@em@vAbFefT@7XSjo5awa0ZUsTC zSR#CvMg8#zM{z_jL^}wGq|-wZ!@xYyWaOn+K9NA72mW(oj2svP;G3>d*mnkfLF(a90Kd=ZWLp$&wH z&lcfrNLJEJAtE%Q3&Yuoi3DUtV(nn0nSu;yrqBgzhD61Fh#Cj+;&=WX8-@R+@-=wR z=<^=%@jY|h`+H;WS&!e}zZ1tH6USu`$Kw;n_c2bOE>37HPUJXF^v?BoahZ5YgLtWe zKeha4(feo7`%jDBKTiDrr4#?D<^TO!w(i2y+8Rgg%WId!7?IE4 zua)X-{#NonUCt_z!KXX(-L5+N`a(ZP9Y(#h!X>9TuKf0|UUQM)xcgn@)T#n~=B$-O zK7Jb;(5K^G2OjS48HTTj3{7_;$H8Nhx)@5eU>go zFJ{wnbbN8U=9-egmk~lwb(&YY%~Og~T&a|2)Ek>68@balZ^m0pepI4wTCR@czt^C0 z1KJ%j>P^OOcvsf;zXSOCjS17&*87-bxuvH1%-G=Sm$aO`FK$jR+l)2hOq~5@>P<$y zhMRv*IS28|;dj2{zGgqlCY=?29~c6o?*%%sNNdeL%mOwGV^j?&NMZ3&mXV`2@LjTU^v9#aft6Xj5n|81KR7Zs9>UWH9 zIAwcZSrOEgZAAv!=P8Y^KH)uR&BJ>5SUwsyL%bhh)80!t_g|37lWgnVRHMM0Z@9!X zO#VHBm^j~r43I_;SZ|CDYW4nF1IdXAZFh;=L0c!gHwFmb<%m0eI`R_|SC4y)h`V7) z{sT*>W2_%>&kg4vclX-KP-^pTR;T!i&cMkit-?WXPX3y$&S^utLVZP9)26p`@PwK4 zQ6p{OTEL9SFX{_ICNB{Z6?3*|W_rA0-Mp8#1zB#t5Y17L9z5YjIl!t*+W5#kTPSTJKkT5%zwhavYdejEf#E-*ZL z6#)7PEnAU-xqT@xwNqP?Do_k)Es+e%t%aG4!W5GIrGUOy9>QtB@WMQ>`|BW0paN;p zTTTwqP39skdY_RNy8PRNpfOY(xMm1NpfOIk`wbuSOO7= zBqz4x-AY2>p$Pwc4$`96zXAc}6Al3*ySYhD4B#LwdKE~EUXThLfa)4Te!#Gk7QIds zsFdVq@px1V$%*YGGl1ds9O1cC>?9|~bfAhsyhViYAvnu_#G?1#s^z~o5pw?pAc<>s literal 0 HcmV?d00001 diff --git a/src/Documentation/images/rigid_parallel_many.gif b/src/Documentation/images/rigid_parallel_many.gif new file mode 100644 index 0000000000000000000000000000000000000000..de43668f0958fd517d12c37f0e91fa9cd1860a66 GIT binary patch literal 32879 zcmeI5RaBgfmS79pMB0JA|}kvq3aI42z3Sp1+Z~=dV1OqVpuj@7YxF&qo8jg zWx`j!{``a}Eu+ySf>0nBPpl%lFNR#cK%=iBXCQ%IzduE+5;O#4 zx7%CntIQoq|LXe|U%V=BEK4+oQnSA*e@j|UNxIa~*wq&W%`FyV!_gCpks}~F+fn;6T+V4O#Dy_k~a&S*1u|%4r zDnoyNB9qzjV14EG$ggkOC{hhoyAyfxh4I|3)%!DL`U7cFbu5Pqb$0v9&9kh>D{a1r zB8P5ur{LZgb>94@`t$9+5P@{*<~!5f=}NPeaBQyY5jGWZaWGg8**|z45ak}|9M^viZ5okNZ@a)Y_N+Qi2shO{j^R_`CQ33g{ zAGDNtfHhqJGzf?)x%Ab5iGDwCa!xVcI?h}<;B5Y&v_JFhq5n9)aB))KtB~Tl4&h0FSi1)> zuX--t)uR4=s)Ss_-rM(djXL zq_&290{(VYoZ#;B!Kzn7jM=}pG^njaTJcJ4z6m(k7LrieYfQ;#BAZUXv1qo}R_Z}2 zn|zStafC9&rDB?ggPA#ivJiNznV@}Qb%HGUFH6}^G#xHg&%OPPT)sGTHdL^(Xjuqc zm3Gmjm_>LE?;;z~7$Hl+%%i>GBS+z_LyPk9% zA>dg1m|JqW*IeVNK3SW~gE!MSqvd>R^QpDwr0T2##ZddxDzz7B+)~Kh*3-`dd@$5rq5p{p=tzHM*sWW3Ki2>L^b+fgvQd@ztcLp`4J_H-Vz5yTQA2=($`=#FaR zbmG9vBebK}ocM#?K6mKdRAY~y_(G!FGv2@XB@lFKZOfaTfgC{IL1cRnm~6ND&KnDx zba^z0)R$;4`{p-^TDgzPMenXgT<1sE(-3$heUa`uDq2d0Kog`49F7iQgSatY<52Kx zvBcJ$Ln}7y)2WDccrU%yf&BYOKcvxz)3TwxS%`r`l{) zM$*JyNf1Rqy@(bkBU^tcDLollFL(H8Qruz~b1gu^RC+A=fXax@@b{2y#W+y&Cow~m z!C+V7d1`5_B+JyCBvG|I!wFfx+?TnUp_G9=~vkFFVHq3Bz=Rr$pqiqR+C&B>~7n;;r#V zCpq+rAW1UO3A0xU8MS=?=A@v}uvc-c{8JRxdbbln{7m`1UrYtV_9p%KSrX;&DHJ7= zQw==fWA_(Fc=*7IM_$!w*y|>?{SB#=7>Y%vLMZCh;OYF1%e;{!GsnGxsYWFSPS{}E-y1p8w=~YllHN;$9eW7K>h@nQMnc4!)M4iFbxO#Zb;#M}~!&HBKNym_`)y&NT z_=u%mP=gj92wa#WO{l|UuylxW)7&M9ZkU)Xwk|jOaOltW4PNvZ8iZCg5jw@xHWcAH zgP3}CMpn`jRO+!cuv}e_+1fp3<#D5~{j^+LKJfA1pOG!ixGt|ek|pNEx)>KEzRmSeT|yPP^14eH~- zMCh7S~rbu)9U3E5Z_} zH<~zI_*A!+A&K>a2K8yGd;rJgc%ccyRd<&j!m9zlsiF#^DeTHL)KidGVimHxYZ%zC%QcJ29Fzt87 z8PB&&0-X--4mHhBmWRs$bM*mELl(pJ1W8sS6J|z_IJ50Wp?PBR=G}O>bAA4!1(g#A zUEFR%V@g-)E-;(q_jmJH12ttyjj5I+>;|jS$#vDuX5d8i?j7mc^y$YU$9LOHysR}% zx>Cod=3MMH{(~*wmyX{);<7_WT(==E1AU)J*H#GFhp^HT4V~cD@8WMdDLk=4>_GF; z_0>aG>{>Pfb_-+0N;f(P(zb2R?o5Ocp}qHuXW>A1HU>=gB2_KBio?zAukRX01Eeo9 zaUXX?Wg5m4hA%)|kGrxF4U@Ujmj&vNdnzLh)3w8wC2o)VI`0~1d!(-_fR6_zGL7>y z!&fzpkB8QL;$QzA_VD?Sz~zNWUYO*CNnV)bg-KqR3?Ao zhrct4!{3?2;SVM;Gq!vZDzp8_jStVo&h?)6L_0%3cjuW&R{E>~%L_>;e19;>X`?XG z>RO@-`=6O)-LYJy!_48x(|8b!s4mheW?F8og_rUNlPo~nnurc!6Txiv@{};tTQ;pV z?KyMF(ndrJ5pS%ryRfTbjKuT(-WYQK15eH%!M>sT^;)W2x+o)wJn}|EDfPXCS0NFb z<~o!iHJnbKwrRNBCg-y=BmRebz)kfX9^dUz^O6dE%x3V%{rXYUBdw?gBwP{VA!Q$L z=0tM&?JnneV-FOsJdq)0vE!}DeD8|_RT^gLR=DZBD2D=o2a|duT$d>6(BjshS$C`& zLmOnaj79T6t@f6+&uFIN&9u33qZ->7?NC*&#$nX$6`SlksE zzNCeP!Pm770O~_Wru(J$4Ohk6Vf)E*3r07?*Xb^3+Zs=9Gtlp1N@e7&9iOklsW` zA5niTD4m?#!#Twz*#g@F- zlK*B~619c5+60el8a4cFkh&(9URbdtf}q}cEx>wGishbrE^;y_yidj zZunFS8mq|rq@ADqr2`or zO5kywS;=dxoRtRgQ5$DFO97?fPDS94?*e+hPBVloIDlIT*n35<%B>?qH$KM{_GS(t z$M_a)tV&|{N>5|PA`h%l9oO}@ot}kPN|w>cPxnhomq9|SnKsX6*~RD_rGSsGwm#*m za$BJw|3qinZkcrHb3&0x6GGdby5NBNA#4|Ox~RtvR$*nnI!~T+(`}_!8NH(^kIK>5 zZ9!lk(>=0>qD3Zv=W?B>3u4YB!`Jy9lRPL!ES;g4Wh(n5JY_jtmBc1NBoBNxD|2=Z z?!{(0@NUyEM2^>?_=E;9qI0bJj@UX=`Qa|i8e4cjy@DJIN7Y2Em*t|?^UM4m#6PuTb&CA5*Wn%Mx)5PXK_9D-b z$)9VJ=hWn7V)KtpY+jSK{rsq8lHvExsP~g^tL9Ed0FFO7PC%1~36UQWsCUl0Ak{fD znBGxj-I6vL3mjH7l&2o{X?-Wln{%t1IFJt`2`eNY*(D=N6373Gskq+kMyxlFi&`wY zTz-zWQnEiuu)67-AwXLi3zYb6T?qtbEXP3#FstF%1ZH$mkj2>h7;UEtZQahLx!>*N z8hgRHf`6r=o05kH+Jbg6DOelkva*qNc5@Qdl2t(|DD>Du?BWI3IT;SgyC9I(-L7B; z$OSha@++r+(x}2TIZLou7y+*+eQJ-QxVj{GKci&4yU?g5`A(%Gl^2e(yundr3ovNg zU|yZbIY3!OBF0_}m^Ip0sjFnYG7rr(a-=TU&|094{GF+OV7~wA-co;K-t?&EOjv!r zHfQsms^!)cmoDqPU&+ewRU>Xm`-jc>!xAWEwUau`W4E&4UA-E5Lu7q-I{j^;1G+Hu zgk%Q&&t`ZGwO?HBNvf&nrWyMllDW&Pn0(bM_1LcCnR?#zTro7}6BQp6(_J^7xANp} z6^;)vB1d&H$m6k?$}a$`rrzoDL=UQzOtbuM_c@H5C5pl)SwO~ja)gqtFaENK)R*cA z(RMJ?WF6GSWpi5LemcCE@;R2emUny?bj{!XMv{Hfe?RobDw^r&dcms{Sz}9@Wf%;8 zE0lJ;L2e~=(cR#^9J|93off&fk=df(ABD1Xx0{SPe7okYKkT*xTv>8iOn>*}dK&&I z-RZ3QTKe`l9)1M4FWG*Sd4MoRP;$t>POI0qOgB_}k+0n1I?;g~4mm8?9&R|PfV^%= zUJnrEz0gjVd9Z>-_yq+o+V%?P#0x=^5ZYJX3y$;Txgz-mOD5X>mj8qgzcBO_TW>oG zX{0v>QU-#E=r<$`WL5&njJIqE{HP5le(20=efE_dIPytzgwj+k{AI$oM-xx*t zOTI@~2^tVp*7Zg(k4I_!%*G<&=p#`YCr;@6@{vVVNZK(vz=V6vOfX4IK)50zml{mQ zg(|MJ92u*?Y)GxmE)hOC9?#Ob`N5%H0`KgxA%*S!I6iIW3WEz_u2qSZ3C_X1y$7SzC-bZeU%cB~vPRJatq` zlfZuLEJnC|6VzS%#0KnKTDSts@g1AI0_;LcxI(+}0-HKlyfRj?{PfR-HiN-r zzjX_vM)$Dm-inlX*cMtJh!5NPp8zp$QM8kGl_QS=N>Z^8tlpZbJQBt;1#cqjH@is3 zftV6cQ;Im=70y_D(pM%wni;0%rS=|?RuRD#3BiWUxn)lK6cj@c%#`bfXY^t#<@~|{ z4*ClVoHdnB*)%3@xb3q?#}yq8G&UhzYP6Qdwe_kcuwjK<8?^HE_@WI5{WJeW@d-B{%J>zJ%uKd@JZXH;!|> z)i!w94?bu}sr9K_I6rLCI#D%@CN`-R)A-_(67?!s)BhpLUG4=WLpSx?Vfe%o-}Ch(1#al33d zW9$?0CZ)`6*HmzM6i|PY7OcXjRbzWwv1qVOz%eKXVuU1TaT^%{l6po}nShVP+f;N( zgP-EdtvepTwEGqY8Q&O;Z&D2Co>Y5WmTgmzHBI=)P)3FP?HmwN3B_xVjnh9|7{!JX zN`IPn?;NwU<{r``g#X%`P?B!ST#POEu6HW`NIMVx5l^MCzT5Mg15l>g^!t5JC#k=} zFOTL=I#klLhFc{Op~a>Kt#f@0dNoC<9(sBcB07SgD~ zg7ms}sF}#-x5$#D(RIzzBY`tmb$J`a=629*={^uRjj--i@qkb0Q7W?9PRic&<&f~_ zC-t?cZ`am%%jSWF7ENOy_B>y&1dED)rE(2`UFOkYp8?mR(wZ$ZfKeIGUpsXVM zR3T?k$D9AG7x|+ic@q0eI`aQEh|udm|BGXE8fy+0a@4``cwARUf8?y%#cu37%b8(R+QUs8tLww}L^1@;4VU}* z86xStIE~LaD;dPhX*kv9=6q-38h@q9UH|d~EMh#e*sOPZbB>tXy4Yg=2nENE`=kFh zAkhnfG;u*}8Jpb8=e@8Aws$uN`I;XVj_{f_hSAPi0JJ%|MgUXVa9YFv_%3(9x5Qi>P?Q&a4>@-tFr*7CR0z1x$L z)4ecoh|;G&nC_(eWIlt43#;pVR^%{6J|I?Uek&)(uwXYSC3P+*(~ zQrj$m0INCYpsJ=#sfx3g3ihFrzr&Ijm15s4l+rYVn4ZQTFauf=tgx;YFgDcK!1qiS4hP)DtY%o!aw z$35cG7*6lKF*h28aXD?+vTl9_#*M1G?^v+1z=Urq>wa$|iQ0N~ z%T>{ft*m67jaI9CYWkV2iLvum{J}DvsZi;>h%E$@VUUY#-p-Vd57$1G18s?6w{yyz`zd7<%`t0xD(vquK|^#9LWL0| zGzBjroYO#2$xPIQ-cC}YC{fkMq4ys)Iw{pogQb4zt!^+0LF=A|=oDpQU}FBFg(D9& zk<9wgbHfaq6vYY`n1#2EB{GzE8m?oYzkqttJvVw90ar#$08i2VS!j&a!ycJ%mt2&e zQ!dE03Fw1bpDZ+79u+ZY@PU{D72&%aOMEObDa);>w0~zz)x8w?ej>J9^mr`cHo-ENd-L3n(IB#3dWcQBkC&AGXV zgg!T@$JBNsIl~u3lG8Ut=W0j1Dw*cfKR2Ws{o!l(&v#tM&eCDo=XUQQ$=i%ebHdPF z@;rBv`aDdwBh$q($t6UCpUuukE)bYAd{xOUaDvkU_?cxpf4&nM(H{$e2xV5z?HEVa z4{^I*aA2eBQC4CPMJJzUf06>Y3hrS?>w&W9U+0^dG++a@;Bv{Pc1@iNu+!Dx@(9oi zOaqg#vy|ZSF%?Zs6N9mH<=_h5$5EQ*xndVe!xg@n+5^;?VwZ};6_ubC0(#Z3D}~{T z^X1F{v*Osb{BR}N(NusPPV7crxYG3TedC*cyf#zuvb4_!wn*v}otDDo{kqiIc!k)# zI3g7xnFj!rwmBFt@?Qv-QASb|sw18VRl0cO!e15UM>4N+GUFimo@#FMGkV{vF?B7B zpZL{@=C6Y5ssk-K1{RhGE^7Tk54ngZ7oeDDLVBevBZSqHw|K8Z#~k#msa|D_yIwag z4;edF_KxrnAvEnEAKUaG_MM3{e%lQz1$YcBUs2YkLq}V=cB!v?v8?rYHBRS$XSTB2 zkHPz@<-Pag{<5?dc{{4w2^y|@Km34G8>$wupFTi${cf}2V(8?D8I}(C>UF2W;0Y;P z(E!TGOg(9MWU#Wk_PHZlH@SaFu*d^vVgXst+FXi7-oE~CC{-uFLgc6r$wcBGBE90g z^f5_bgLk|K;&N#fwnez$J$GaliD^cix`VZ~N3&j4j7o@g?}Hwlj1-Hm(s_{0;^vOK zizFbv((EEcizpCW6@%*ZW+V>DRn!q4|% z>tKUpqR{&!h6{O1#+Q>Nla;yoy#-hvmuxDWlqHSfaBry$n^zVjm7U~ncDdpD6;$Hj zu&ZHo@z5aAj&Wt|nwqAMMm8sKS6vw=RdJ0WJ}(BUSut56HGh&_0Ql5IGv zwwcWuY9_O^6I-eXhq}y)I z7J|5ez{MY++a~NZvXoD1+jO@{{>O< z!Y40$^1>%CeDcC4|1h7}{=p}`OuznslDbLNkyjt9NS{$9PX3usFhVk$AqW7j{rMR+ zh8m0{8sn#NwS!rVnukUGIM)Ttb+zqU_y@LJVCs3EL*nySEPHyhWpY{&}>aZE3B=imHKHrK@ zYF2nAhXM&_g!|;KBtu@C*Tj#(4X92J#w%`ZLJM&Wo?t0)_BndvWJ!rHjTQPaN&iX%`7p z7J%)q>=V8q`wXtIG#TZjp}95Ye72BX`H>{{0x(-K&(hz(zBGr1j5#B3cGEcUNi26KjR!u~ag_(KGL5tt|RZKI_;rEa} zU2Wo8{m?^R`&P9joe9U##Yao$J zlMHXhMDL~^kHE^$N^E@w#Qy$G3sI<(I+&rlF3yRY*D^9oVMCGVwnB;)>xYQQB9(DH zKL;&wVwS{~pH01;xwLtTNbJ@*#JSt1CE=f0xA`ld;8Q?Dzp%-RJ9%*@FYe^Uo&107 zPN+TqU=t*=Ke?05XLs@z{!i{iRPnFw1OWWk?qq)U>JK)_am9sNZ`gWflVTzJ0oCQB z8rI(GOk1iBjftzSy22pK&-(YnbMaS=t6e3gRr{U0HSeU>q>h~|1eU4cl%rkcO5KaO zfLDxTO)P@P?h^xA_xxwgsTz}>Kfo(bwzcU$a84}WrU*W?(6*nG(ECR0tS+L9x7Q`n z`$4;lL-ReaXS9U*&-AXTxYpHsez5Wo(eQeUc--+>>C{H`V0|++v4wG%HcX;OA~B7k zC-K>x2=D7}LESR)mpr?Zq7-8N1C>@)#+U%GLHsutHn}ug>p=C*wr6*uI(=qUho_fQ z9m=YU!344F4b=mtx_qrrv$Qom^tl?)rdmK8S(-WzxWQW{ds6Ll!Km^= zK-Ll%K^#R;y7+~?WZ3rXS%Tu3edt3s^7BcDl39^+@r!9i5!oh5ajMflh3$OJ!VxHN zJWo}}-&Hma9PYmRZ28q( zG&rI8SY7O4kusGmz2NUyTaK?I;HN$V7GA9I*eH|8ZKQ8<)NWjPuq>=slRO7GHMiFs z5p23m-`8B%j$9lIz~eEV8cDaSdRTj|a7iN4IsC@wwRRUtSwMr=Yqhbr2{lf!Ll1E7 z@fv%yY5(HRK}_b-_x;YAHivtbs>fvD4egQX4EGj8YJHdDGG;{2!^SWN+n|l*S=c+V zogJbE{_Bqa{Z-(qn-hIy3)x&{G8~(_IQN8P`luVF{;h)PpMJoH9QepVAGL+^LNltq&Azh0! zkAG;#Jam2{$n~;NER0lYXl^oNotaPLb)j1G9cG~#Tp{aJf!TP&bVH3|zOtdIQcy5K z!?a?t6Z*c~Zxy9VUi7r@&4bz$I9Rnxa3vIR`=)hoCt6Xu%VWK%MM(;A`tJ+HQ^!~4-}a|S!F*xNNAkZRtyCzC1T(_xlC1YkV2J1R#Cyd$Y>Jb~y_ky{LFI&SYed8BXe zNFTO`9(Tu-Yguipl}f5KfFoG7ELmhllcF&p72V_*^Q+NdUkBV^?Lu2q&ckfJPVP2` zW$KufPDA`n0(V||Nk5|~%-nqC<50(uBUB0Uq2_|@;)YgDeG-^nJHmBo08m>nAa#h^ z*J!v5L2NSiuyWhHUzi8Uw>}Se2&eC7Vfd8Wk!km6NHjDN+05IvFRcAU+*i8uof{0p zPS;E{7B4K>^X>Tvc0)cr2z;Tt?cgG?viId)q29iJ2UB^f)58s>O?T-eK{>G4*4X44 zxzh6g=kAsK8B#J}VPEXYi#>UT9}$4NgzLCme9QXwjKw$0pI zbhY{2mP#AIXf9%o0e~nY(OKB6DjAo<6*H^@1Lqk;!H8?&W|$Y1A$?+To8VqdtQ~Ll z7d%!tuclCP(b86$$2Svxze-tu5QX)bw+Ymj0$FCYstl~K2w@KK?-8CCnIVXyq95)s zqxDE*9q^0^WE!vo=8baTEhr?IVC26)=N-%*@}g_L6G6iExpaQ{tf^QE4MGgxgr)$} zE(Honww3vTxCQS4WMd_+)rHBsyKqq{ zu=0fPk0)PM{Vaz7ER+^h5|+2B%g{s30RrmztkbM@Lx*-% z$!W`XT{Ue>h1U8K8W&jC6|Kcm)(MSiTaFmN{9hy4rdKU+>n2pr3+)vaQOzA|vCuCl z$~o;CXw~5;G|8$Rr_AHdT}z`k2u7Czcg(ulXIYyW#;t%i>Y^9Hm~GUk^vMW=3is0( zEo^cpNmz@5-32VI8$8s0NhWKhdhFGcODCvY2UG9v;~Mly=!53=h~I>Wbw+ZRnA8Jx zTRPZ-TAJy@zBMi4@_p|vl8O%by#XfPn*Ghi%Mi@AufM{{(HE=9s1w{IOvrcB!e3&e zk>4an#i!b=MoX0-wY$mao75u*nSgAWGi@-FnG96}DuJ(Ijput^hM@}1y*fg-zdX~3 z(@~`>gqxHXabDyntJJS|hrfT6&y9w*e9y%Exh1L$7$+>Q%1QsZJ3{R`F}uqw9*49? z6Vw2Tq;&|AKAaRNxRWfp0)n)cvQ&&6rmF~|(;8#MUl?|%6*w%*S9DwaO;y`mU}2$Qr?wPs zbgeyVA>dr9zWlYRCg_jy#4dcYY^%26K~vL-O6>W(B71Y8?}^=qhn4Rj`QN{h_xwbR z*XM+5x?;jk^?BUENBcLmfJbCof8&((Qrg=tnKT=h!W1wc5>mh7<5^@69z7G?rIzDA zz8d_uLu!uMFEsMf!M=2`|8NIeW%jQ-*r-2uuyaQLQ3tDq`|o$K6IXxhVEJ(WlMc2p zhz}C^rw+E@Zyjv@-#Xa5zjv^?fA3&HfA3&({@%f6|8I4$ABU0t4UH)J_01dlo8Xf@ zcd#nvL?7P}3k}GYbE+a`VHMYPwcD37YKIPE&GZTr$A70c&X&Xh=zDR_pN2a;NZ?+R zceBA!TK6Y`%}+!{VRoV-0>5N^dP42#Ll|fA>jZyB6B8q$jgInS9wt^s>*JEHi2g;r zPU4-|w`MNKl3E2O6Hx8@UXmNjpS@%ymn70!79Cfzu{cp=*FQNr9$C{wLT)!F+INA< z(yEa|e=91f0=J!*D`rHWkko5LOUpUR9L9XlFD0&KmoU|51gOFGvQ(Og>k18J7ZZ@S zBRT_GG!An*fu)TyCz9GANo1CL^&-y8$Xs_#$b1VsGEvTCziP0_aS?H%ef#C;;RAP| z{VPW`rb$yHKV%D%QKkf|*?+xx2ooj|A7k;1WySIs6eU(0XGr^)J!3yC&M}`5W(rCr z^`NlfZvZAixxt`FJMnC68GK~Uq>%N&viQy=yQKE%NdzeZBcl3*OXgGnOHi6Fj?zO)Iyt>S(|~suQyQF zj0lw2no*6ean6{kFJGZ4Tog0xiTl?iXVQy+6 zwPRMCH6L0@buUOPJ5_Du(7KH&tROx*mEOKSa$i!=d4oS&wvT?|!}eN}lV>(4RFmol z@?Jk88^dp%C2Ik$gEbPLn?fQuF&~SFaf1Ar!aRASqNjlicy8lipl0HQH}v#%ZkE=hs{R} z)xjByKWJoPmHGZerS+Lc9F*%q5X@)iLlVwVvjN8I}d}P;}#_{vNTfmfYF3@^{ zwGAh}kAu>#uEA{q1P{1vq6S=P8A<;)94g8BuOP_tHt?U9$_W7Lr_iQ5FA`@(Ch){?q zY!=Q8xex=2e`p*-miB0`5bHC7h}mc9tcqfDT=_jO0%sbbeC_4OiH`iyo<%g1*YowY zG>0b=6d?&k?;ze;G`#2r5!+msFz ze|Ode5{0F3a8KAX#E_@zQ(OHW=W0;+vK*98&1VWs#$nDpMUwuKq%XfFIw4EyF({iL zKe>umEi2|QC>J-Ou*yAUKzF#qT`oVhqA_L3?zgLCGcoE8napQ;EJ(~WP0R;@ilBG) zEQLAb%P%WAEQOFYHiK~+3MK(~n_DVYl{1xUEX59rc>JjxDhnUu!)l<(nagpMil0SQ zgrR}OmqO_>|1Y^=#ZpEr4XVQ^6P1L}hlWl}YV^X>Ri-o$MOp8dnTe{a5G_q|Ipcfa zeDYR})}VzDX4iDbO$~F~;f96-qT=$=RviWnsc_ta@|N6HrJm-Y!wn~H>)FTZPu~ww z>P=^7AS^W|l(f3PsK(FYubP6U=JX!1)wZo?SeE@_UB7L}_rAI;(K{$LlGxJ_c#~KK z3rCOs?qL3DcqR;~yVw_IzYhW4sYBH;$1i`N|IyRrw?(J5Aq$co`SQocM(Xk)p-?^4 z!nz62NzhS=(d?My&$4eZewW07)R=j9j`>-LctV;8Un4fi{v>@CA~flOKa9pg{Ufp_I=4mD0pmdLs+=)jK!c(4 zg#TXE3KFs@TM&*-9IZpN^dm^2@J{SG(k;|(-s?zpc@`paMM1v%8rLQ>1!EUZt4QYB zT*9*i?pQj(76+79I3k@j4wc2irhF1yP=je#1nJF00p*-Cz2V`txu8P^+XX?erD}bI z#}R7Iz4ktwdgHeXOSdlI($unC^R~k=&*uI3J+E?W>f%yDpU&`$R5?&K|c>&a;-72V^;AlXJ!+o%ZZ<5j|f zCZ}UJUmWN4qH@IO<&)7n?As0CkN0<11y5M_n{H2>HzOf3T#pltR_`Cqqto?oX87)R zQGU!$tQ;fcaX+EMdhMb9(#4wn3WNI2dsm+Dj2w#_9u?MSJ6cDVefAq7D;+lw?X#{Z z0{1%<1E-znRJg33j`@07LVAq^B(B<4oQflV2vqOqX2;o&3$vE=uSNBsSM|L}{{$kL zA9F>!DEY^pwTK#2I5`#x?ROrfXBX0=B1DZU9HM~~ikT$Z&Dt;)Y=nn|V=*g4QgIsQ zJeUQ&PM*jCDGL{S7{GC|^Ww)ji}ZU4A;8=fem-zx4H6^Pft$k=UxtfHEcDB|6X|E9|gI zbWjiVoUMK`N87b;kOvZNCj%U!4-*@bpC(NT(lBCjxs^15lTWTL1hKaU;+mVv0T&Dm z*&gc}Y?RQFW)}@PvFnFbJcXl=Ab8;%n;bGc({?t6?c3~^*fRE4c2Q5EATwA>X&=&< zba)Sa{?>X~&iRUrj=9`##KAp5%f+lnB*suhF8JX@7fA;S_!KZ=67fDg*$}~e9v-yu zxZp`H`k^clAw9v6@Qe5_)zZ>jl=5B$M)6SNyT(2Z6Ok7e5pU!Qj1$!q{NN^YUq$a3 z<=qX$2BYw+O(7|3?@o=Tie!1bF*Bm(P?C#ta9R6i1~nOsU9)@^WA(VGikPgFDUF`z z~;R+Ywm#1&Jhk>+DxCl+U6c+fCA>S|D>tr%%wTsRA?aI8nS zu=JY7#Xf78sS%cvvOE>g?ww6&TyofB3g}mVP>YLzWi9bm4_SqEx@um2%<=uyq;tb* z+o8{FCDIV2JISxohI&Mg$LBr=9a0zi1*14fhFb{P?&oi6OPk=4#&s-hn{M2a^03sM z^{_VQ9+`u3VNWCj?e&{3PPmFlCjJc~I&5MorL!oHlns2oTcYnZXR!eqhPc{uL{LXt zTjp6^^zQ(J)fAPGB)6YN^LZ{qY^LX4mWbON&jQ4%gemZdo0M}OTgshPD(xvH<0~C` z>rc4Y3^Ar1K?#$wbU;n5q4jtw!s=uQe8X}YR0zjI%9rxnId&a$}xg7>qf*{;OAj(kbXMT6t1b0 ze0adizaY|$;aHtsY);EDI90S|@7cmrZNXQupibm8FgSDwL#MuUuIGeNicjqP?3fOX zP8tuT4lP1(`5u%oTQ)_lFkU}sz|^ufFnL&84BW4rJ%h*`^68DJ#{3(2%by}1r&vZB zU_x4j8Y2dXjS4NdB=NRp-^igQXU-y+3f?6M`O+4@TVuN&aUPae8e~a=Vq{bo9qqX4qwY2H!JJK3?_tJV}vqc>PXU z4=vYDwz@H=LVj(@{ZV`?@BMLGfR>v>EnghhaW9#S*Ks@B@x#d&dW5TCzj7xgd~ zw62^Wd&frH=+8ERjAhs>o`-5#ceg&nY3nlYQb>0@|Jc5oo>l>Iniw z9n${RS!;LZb%L8LV?opcQ7u3gT zuM=j4iwLFo34SyJ^S5KIM!vdbbECBV+U) z_J%PIg;*hp97_l+64^wS*hpwaO!zbS@ZToLr;W412j);4V-K{(+A@`NexZEI6jyo{ zAwM3FX#!lJ)Ol@V8j#wkoaQ7Xf*F$rvXL18fWg&ojESw1TeLDFVly`tbZyLEEI}Lt zrmv2Z*A+mlN!aWYUrHlSLdm%O#D>-GHshlqQMtU^^-`_OF;4eLCY-veBYMl{iLoDc zc<*;d9OJiA-^P*g>;r~ZR7o>Y4awOSgmDA)n3F3h^1j{sjP$z4rXxM(zHg@(T??$r ztegntXSu@*h$f9?LLZiRXF4>v5ewQc-!-? zJS;8NKbMGcRhj(8!d@8H>p2psa1(-rnWp|$n<2fdD(4w82g<82bcBPV9WMy(Kz4UX+IDq+QC3X zy_JK1!IRBajt&+2+hp}4yCu@&L&^eOf)+mjXRWY#%Y)g_*3qr%x@d=~LiIzZP$zD> zeUli%8Jbq{@3G8TAgHYd+97 zaWq<%!B0Y9b)%aa8J;7|ND&u0a+&&m<>9mV#)r-4*Vzmj|081=PPzZ|LqmKf9t#v1M?+_AhMPPn=n>H+=U>nM)eJ0ys#-YK|-|) z_NPP>VG59g!MG8rJHV%&6eyu}4RW>7<1lux7Xkyc6U&_CUf=X<;b)1XmH$d z2{NiDw+kz|GI5Ub=h(H4D{!Q6PQs|C$n{gY-gU|#;wZ351vwTtLGlag_dIhfjR}92 z4|8f1<~0XvmNdZi>;qbSl8wsxkgj=9(Wc%&l7>j)?St zSIWXC?e9f2EIX!YA5?!wc2S;o!^uAsb*1S(BzEH^gq{eV`mnS?#B!6nO^`MDiM9Y&ZH~JHgq~sDI7L8>8EH> z-KkPqaA~N4wskr4K7eO$Ha?DLcFx3Uv9g0tIgi=Yx@V{qG7qfKOj_{SEUs;Fm)T=8 z^m00+uJ^UlxXBEViLaXr0WYx6+9_+W1voWo+-@dH#M*8&InZ8g|H@6h?ExYxwe3GM z$NfRojOG1dg&QUV0Pe!FO(%lNiB2JY&GO;2ccp}@v*{k?VXsw5+TE~E*{b<;;M1b} z@kmH`{)G(skH?#h*0kpKg(q5-lWycsyqB9j+K;!dbDt89;mV%WizehrpPqWMKD8cf zV?OL!u|2q@KSA}j&A+kMhCK*@&e%?Y3ds& z1X1ekKqq+5Mr~!>mf#&(2;1p_mqNNMVraNrYMln`dlTAl)(6#I^HT|Z!h!X6Mxry=ywW3X7J5u zA}tF}RM^% zX01X(qMeH2+{!6p)JG)M@lQ(AGd)g>72Cpl{af;a9nE9(qs%^c)}V&xSn>>>4y$VA z(2#vhOoM_Ur&h=1!#C&(MjLiaE%kiF?kf%$=ZLhZf(FR z-%Z03DW&;If&p!c#{bjgz96-gJbGq$4i`NdGftrW-M4?`Faie>I zYHpCMRa#GpQx_H0l0ACFqLNpf(B3?$Vup)zAlKMVXL&n(cFPjwb+gdgG6>-5jb)g^Rc{$Be2*Jl~CjJa~w*cOHGnQ3m8k$3eQ!n+?6#G z9*pd+%nz8{{95Qb6~lXOA&$K7UClYgBaK}EQ?^ey(GXApktp?eFjMZQu&yPwEl2Y> zXhU-A8JN~DB0n^f{b4dcNm^6Q^V33z%54FA&k>Z2XR#H?CAR@rn>Lb~Yp?G5{QxDl zQJbg0xmLYz6QjC0MicCgXtmNlebos6`ov2>eQA=iF6|`D+LG*kj{T~(3VGPf6ES7E lVVy3$*SQlurJ_dw`1 z1xO%}LhlfIPvOL8pV_m|*)wa-S^rt&&?XVZa@18Zz- zSTe4zc27;`;Yw-#`nz4v^4MElaac~et`LlKXwnXon?MX zFn`#7|2f++2HSyS{JKS>4Q$7Fcx^gXp4_Nu8umciyS-B6cv_+lP`26g~ zo2&G(;MPFSrNEH1uB~Cf!x^Ak#YiC^b>L1;q`~fN(qGiu}GSmQq=ThV*`@lwg z+ShhBp7$p`a(n@;-h6>iv-b|6DRf4{tkYap0evab}`ccY+P5fxiDDj zGJ>wF-CiDTW`qlw)WdhzXR!tLnEE>E_R2&z*aT5er|zsTj9?Im{e8A0H%31mI`1_4 z>Dcw$(a)R;v!j8hv~P?B4faplxV!+hK5}h94g3s-8F`Jl{V}aD?tX2{YurQpNaFY_ z>GKyRUdvv8H1S4JA#uV}_2~{FMC^bv?hAj#?9cC)UmUakR(5VkI8>kGrFpF3na9^+ zjJ5TqzFFGsUJbLd>YPfHh?#quWE&OwD_N%`c{1ACSoBxg%f7i639rz3f2R4)S7)X8 z3=HM`2q08X|NJyOcP-844M9OUL&rt3B@vOk7R!+YXng;VCz z%Ae1NRLsv8FpAp579eE<&I{10>HGy4d~1H8u;GaKVo^)mQRnQAJ1LN??D;{7Xv|*j zVi{7(_hs3AtA)IZc2i%;%8btj`BlGS79iC<8RBl`!|p`)%EdM+rFN`O6;?Mj?hC7* zTdQ4yuhsC~gtJ|cC~7<;1bNlOiB~OZKBfgPYT+887PX#sP%CabH{)B}e&odEwT`Qa zu4|n)av*D65|xW<-8b7M){$~}*L9TA3}hWG;SFEDt#(v$qv!4gw~bz15$Fb5efz{l z-+dj)O`Q27x6S@5igalc|fuU;!hgPuXB9OxFo^^vVY(&2K+ZPHu3n|Igo zOz&;Ru-`VtyZ;D7a%VK?g0bglhzM+FJV+S5Gx1FaRxuIt$bEO}fmzh<5pi z$=%tk#9`TVMw{E-JS0|dubs18in^G9NPn$WHUsk=ukeVVE;SrQcrSZsNYYk23XIf3 z$FD8Z*6m$R(l>A-lEBSDN5uLj!Fw5qBn3z_c0|6IFm@*brEcvlR@&2&^DCthJIj?X zduThp_5sVg+tGAJu59}Lkt8)XDKY;;hEG;FcWxZWaAP|a@#Bz)ZX<`)%IAw|qth}S zjVC{x3cN%8aZIN}^XIK^rjFKp#~*bx9dj=VzIpb~V-C8_XO2*U((a71yL4!ss4x1$ zxc&Cep3k~12a>)$T`>Fe^rxNXYXh%BjQz&BzUSVmxcB{w5&Y?ipSi7)#@`+E%&jjt zB(>g(`WF5|ZQ_DvLf*9KgU^S)X7bPIwyO|Uqu$2}AMQ?SSKnKWeodM-uR?&7YDbF3F^<>(Y;_?}x?2WFeD9P3Ahx z{b9EsUcD+VKBwOSeUlIj$ws+{8t7h+aRj&UO8XA!*vhykwX|g3dKrRzMtGepdt$mj zWzJCLj_hk3IWpUiyMn|vk~uB1wS=5eU&kZTH5NJmf9O6i zu)-zqP@FDn)O3Ffd;3GYITtIpr|lP3mH}$9xg8p68jmVVly9|W^SDr(@Ma_16FE2R z9%k?}JtDVMF2B>9}$ub!l?;HqxW~G>q zN1)|l+(rw3<|GV0JU{R%9x&j%N;cxG#!cH6Ik&@2>V z>Rhj73x4Zed*4CRt(XVFD z>>TW^SIzPO*7;iJk3RzMp)Lg!jE@K&eD8Yj*I1yi2%)>lwbB3OO>PnXieubK@Z-N$ zd=`=(a{6jF%TL}MRO8e-*Sy)#TDH<{D8YZ$AgQ4hBpt3ZJKk!c)S}o;^l_p-YB=cA zDl8=vm7F@VJnvc}(Jk>6#5s0V{Bebjf3ZQ1%_wEeqE3Un@YJMsN<7e_Es%PP5pS<| z`HJd!R9tyU@@e>sZ%s29*g&7{Xl21Z>#bV>A-M867=vrC-4%%!zvk~}ct=6NnZITeqaL?MPQ8h0B;HP!YC%06mcyw4O)b`qP`1O%#z4H;%`YlF zAq?IE==}Uo;~Kn3sT}EU<%~7^CN}BqMrLp7f~F&H6)HWss5|bA`Gm@Vh5uGbYJ}Tq zm(-R9yLrfhBgNqh)u}dNp?dDf!h`ObA4+eWOAvIUXA2VKlqk6u0Z@;mKM23N+U9D) zLp*{Bs>J7ZZ_Bu-Q$8XjEW3zR`5tB%XG83)p2p`yZiF+&l!fS1_Qf%ph+sehjohsM88=IG;?tCtwE*Ofo4yl{?B{9bY+ zM&|Li=&cyl>Tl?((A#;j4<|ky$PIw(geVWioSTciDH}VZ6gOZQTju3ltQ5sL7cDdt z=kqnz@>1M`^Rf4Q;@Y2^JbL-v@p#N>pYIk`F~)hp=6dcgLqFZs3%Bl!^w^Df`ZDqC zrO%I#%Zn&I^PEe3k{1umOL#vRT~LwuK{Vc_`Fn(D+?UX#`i_KON=bH>iRSFdQFHNe zdPym}k+Gs*laiAHs^!v@Q{o?|#3d)jRQvHJ$I-sX=N(Tq=uG)Km-6ROGV$wozPWGI z+!Tq>ROh_Zke8|Umr`m))7tW6Zafb8aV)eo#9QoQNd91$yHi9gLpQ`r3H0+K=;T9h z-}j)2WY9>m0(=(KcRZc%dOG2f)yt%~<+-p9%TEbT=?jk|f*%DBguWWAjwn!4nCnc( z=BAIme4jT9o;v# zN%>%>qV{agZbj!;pvte$gxtW`T+vR`#F}SuVR@fkCmOol;755XFDtB z&AWxni!f!(5a{!VpDs0-cL|yC zxe*ddS&s&PNLgi;R^%X6pvSv14=M!*J3|o!C}t0ut&>Nzf}XH~`HQ?AtAWj@z#`T& zf@iOkE)Lwva(eyJE>9^O6Fe5;!lT_>%P_zEpL|?k{4hX%a4i zLhp;myc6}}i_n>Q%D9gzzCqH&NFG)7+tgoLE`>f;9_rS&zjyt7QC&vsDz(}y>xeD; zpjm#`rQGp+=>|`^x=Oi?bt$7pCBwPchA+NJ&&<+S?S|^@7u1R-o=S#nUG5 zw`{z$au-|qhp+m_aE;I61&gr|{+bHc+Pgo*G)@_m_GA|nT&VWUy%)WpKBylbAznm& zmmgnS9Y&~5GN{gQtai4n`QclWQJbehP(FOBwnVkIOuRN*3vz}d^6{gDfJ)_ZYHgWs zZ9|yc8P%%Bff`M5Xd*itY0cKOP!M4buNBW*;;2P2sI{2zf@aHbtay1{xH3MxE-SG1 zVpm;7V#FU>Dr45QL&UPn;Z+7^@D-QO_f+yTCv+(;kPj+$cm>3iY-w~LVnP)@`>-sm z|8+1?{-B!5WcQD~g)$#ind1@iCl-~t_=Aq5RilqLM3^;#JR8?%>sNys_~A-|$c#g- za$kIbOGk4Np2|l~HOr_q%h@z5@HZP1a%e8@r_wwn4ue*9_y zNU#}_{xD8!yAN-p65Bks+Flw6W_z;v)7lvy`8xvA5WM_|OPp@2ZqU>PR6asB*scP-}c7+ZAEcl^EKdm(cao zMhPO(0fR*9rL}`48o?HIX%5}j*pZxRO@|b#Q*C5(Yn7VRWV&gMEfTNWT)V=)!0Go? zP!eo-*Y;%5NJTFshc1fq1uBXkIiZH^Av%G@QNZ@vdblz^4Q0QGnuXhaqoI0IT7fob zBm{%@LklOP3*l(o3D~4)VXruX0rxl#4A^!Bcky*jc6A<;Y!bJI1REl_+%mnr(+}Ii zF8~$AQ;->=u%m!pZdyGdg3&j#&@)%td)oP@pe-hhr*AavPonh?DRPmJo1z@_)}U@H z;Y2rhH|xA4mh%g+S^~3As<7E@O9<`0t=Js`?@_{czVNEhE6vE~d}SVK8AC#dx|P_4 z;5cfqhh6(0h4i;jkV7r=9}FvH%bjMrxyT;KZY241W8cLNK=+~Eu_ zvtiZLnHAvpJbCh?t&+d-H*dy(OVsqDZNa;xA>aDZZ&I@u6j@DB*}bOxgYP67T}tS$m{TyA&tc5Pp=aJ{Eu42+5U?xH zTXJnypUyBQLeZ0j{&OGd7h;SRebodz?WSx`E?6Cz@7S9agU`C}O!uHDPd#T17Z$Pp zQ}=9VBQq&??H1n|Ev?$jC&89pp_lR`7dYLQ-w7`XMp63Fi^ayvA;aB=xUdJ^$FDFZ zpQ2T7GkUIpRyI#g;ZGLk*H86Sj~yK$sv9q!v{zC>zf@4i@R=y-_)nZLVT7FrPaTO~ z+ZS9*wpuGRSdm;JUyxoCDqJyLssW|0i&GXfVe9G|;u*ck269d1k~FUgpx%bnnDf)TL_2>71M#ull_Y3yX!7 z?F@BQKgw!l_l!D16}Y^KARZ0S;Qz2X-##N!h=BX9?_k*PJ~FPM=5|YouyfzNsd@Oq zvm(u-LP0n092dzdx^qIh<)#*w;$)E)x5lAccTekFExyZRa`(ZNl_M=M4T|L?`rh&r zn^ldyt)}ba{y|2xP+u&}X9SSPBCuWb7 zX_ItZEYTJR;Y_;tn@Oipg8j7bsLN#jGw3T*YL8>kS1C4c3}wN%^={Es$XXkqdt)7` zeqd_t{=LJJaVFZQ4}11rKiX>AcZ2WR***=)ep53op(&h!i2&#XKsJ{zjFJNf8=&m*@HB| zzjC{T?1@Fd-?`o1tdab8ZeNraga9tnzFk=~xf)UWv;c1J!1h16-LF|Dt)M{s4U^J; z<9efl5|i82npH>%e=~ULi2Cpvg?s$1iheDL$DMC%HygQv#g4a{l3JAw^Hn3B0U{n+ za^_Au$2(87+8MSIbkiTfTMn|d2wZ7#mS}b5PvzKa^EZ%Tio2I5+i!0Ftk&`AZ{qG+ zBlD=qR;wdQts?}|@sw0?@Mt>^zif0`=h0K0e?nYBNuA!oz&Dwl(a26+*H(`goe>f8 zS&JRNY+6^8+jwi+&%nDLVY`B8U2bXZd4}Crm{_*g{>?_FTCL$XpZj((`MjT~&}t}y zacyKiH{=%}m%ZA$R1|w9WQY+>Si@JbC%XDV;B*T`G705P%PNN3#W0QKZaMU#^SVO)TB6{Xq z`gHH`0SkX~`(96gHZ)zW_bjkNkB8B>`-7iA=S`0A1O+B`$QLk4@uTogA zU&^zSO=sYg01hfTfX(WE5n1d6=z9o!ZfV=_x=x0Pw|emI0|31KLp%=B|Hk#IR%AQS zsPld2fFTec;?#CHG7c_*c8DBQIXXCs98{SaMAB4qC5GH6_z$jd8Og!NX{8{p9yPKBFf8zv9FA`vSn&oc~( zrNF@_sQ6As9X_P41I0ylt}D6CMQY?K5Ft0QXOQkuNF-3Q31FBaa(Ub>k7zr*=!P4C zc1e+tgLT+XfVj1Sw=;S@sX$l>3ZEx1aveHyIt(M{mbq_Bj+GeYF&e$(JUR%k!jZ`b z(#d}$k9_#rGvPNnq%zh`Cmtgdos0^fvBq}9kDjd`J@4LEPg0PaM~efW3Puf|b02wn zua7D2X)j1EFNZb_Vfe1GG}Vb^qhSu%b0w7OEjx$1{*W7tu_ms`^_s~D{3Mk+DW?um zf+?xMa4@d%T;8fCaBy4RPwrcYNHDKYHG z^4`YZlF0q9hKGICl>*RZ;%Gu-@{DKtEEb^L0_y){M~YP^#M>$Q2(&zOA5N9RS>#XK z*byGXhmDPA|BRZ98Xh;x%YEZBoqci|L!MQTQVc|0&+?!8CAjbuJ*$bH_a@9;PhDWE zUwFHelK~@w9!>mEA8KXH1qD z@`}pT9rYSXR4=!5XlwqM{_qNn*ei2(^-}cvvmQ#e>iy{aae@6e4uXvN^I-Vl=#|4! zWMS@=Yxb+B1(Cdk;j;FTm(o`j2_rp2)oPd#oJ$WtXoEv{N>Ow}TjSGR@S+Z4BUxbm z(0+}f(B?(T2CwAiLygVqYm`Tb&H4IGcHE}j$Zu}nVRE~)#*2WhQ0n6jf3S1FM!B7v zhxF!ak58ULoA0E{ygfF25Usx4+wDsWpZ2!zjI>W^?&yHGz7_()5Icj|ohTE)H=*4g z+1WL_~!UV)xA8Zu)+}523w9#l5U$;IDu^%yt+Aym4f60~)YaBzf(IeZ0p0 zph^I>dbzH|gj$LbK`e{ZYtR}@XifICjsRMh$&EG)liQbR-G!nkX*$M)-pi!-g}tIu z>d*+aKbl@tNLT2jntO~F+cSU~401H%({jyBG_^)(f0BED9YY^mrsE4GTTA|vxINiy z#yA}SWVjx`J$pY;D^l=YSecXQFT+HIVEwWu=J{;t58tVrbHNr^M|*9G#XlL$deWJ~ z6+TcvfVvjfKsgfgNx5%-5~lLwArIh>+n1&aE)-cbexxQy!nce1S{(UufN+I3#7+@AYQoUbxANxspMAea~4xON(k)dBShf zw&vv5+dx0Gc(Q%N&xX5WE66XpV<#ewyK^rN9^FZMON(x2{IKb1I{=bcxy{CtC8I6D z4|KSU z&feF(bZx!&2KQ87pP2ByxIRt!%|5exB8M#uA6%=8!y4*6m+v=ImF!18R0O`Wc;w*5 zgI9bPS^6*L&i#)mJImZzi90KCXC>~e#GRG6vl4e!;?7FkS&2IYjD2x#HdE6yK;MUeRSOdt{~Q zCjVcFJFRJ8=C2GM_u5LF?~YmXZT^;UZWD~P^*UW6SqO}lCIN!L?_R$&ku)2i_m`=1-g%e;?&Qf!= z-{7wMuZg=&Q-N=joA|3!5;A#WejuA+MqA-xBx4yfzPo&hUuN2uLSW@m&@> zGg&I@GU^;)qiRcAr1m1cG$Cm1YD}Q`THd z`0DzrJ8>9zk5p`bw;t{ZJ;#c^6U8$ zk?0ud`P%4ym{?*O3IBkGSMg>(1zg2aLKj$pg*#*oUrHU4i&G+aaJ;HrWsJ zl=;Z=5)YOfN(Vw9VS_wM1m$pou0U^CUDT&Y%On6{aIjy=2nmBci!g$#7!9<~^}izx zI1 zW9vYRB#lwtpNM+THB309ObRAQuE>FGmgsQpSye z1>-eJlJ1SSq=+w2!?tzf!DbVyslzS1#KTN^PZ=BH9i!Hc;i36gj3&6z?{x*q4`Af; zg5$#k*eal3+I>RVyh(r^})JwUUYil6(`_D{IDt z_mYc`AcWx>HKS-e60qd@38wTes@V4=>B~v%ZFOZJ0~0=+ijJIqJ*>cdA2CDszo?&# zfsw*uhg|PWpYb10k(zLaP4HR`dViRk0L@*mpF5VG2Llj(q)#3doXb+5GYg$Rq`qJZ zn}qr=q@h)d8H0+C7v_-j&(V{izvK4ld^=JGVx&USLc#^0uv5H-CZwO%q<8sj6 z!){Yq=!u|-i74aAkLnX)*o^hP$yU3SgRrSn(B~(m7q!vV?9y5S+|w3ztBV{%GXzH8 zmFS6;uvO9JNj{AlA^S+_5zPbXKVvdiK)&na18cDGbv5a6OS?6uxnEQt?{yx%6R`0% zcfHePLw96jqhJHaOx!(sUE_$%#61p4vRvNSuHQVwH23A-=Dy1`cMXmBrDkU0o^I#% zJ8}2;2p5c|);;2i=pagY9;xZ`+M z?(NsaXp|`g>~1CQrr7(ZjqDC=@BRqz%h1>>-ww-_UY#GWyDxpsfSI_{*RN_&i%qBy zlMRQoJt#&*Z*i{u1op$*DZ@y#XD05+W{!8+ z06^Z2OXjmZKW~Q$0-Vpz^??s3s~`Sx*4Z@2?7M!s*jbl>Ux%vCkoV*z@Wqe2tpKX> zlDKjcq71NBZmB=tJ`kNf-@inz@y*;KhhLC*Qu{gl%)gbmC&TOz0m@W{JjB9t_!G!C zWSXkHGW%EJzNqrgiF@e^D%&V?$r&!YhAq0sBO=*T<~a2Olmn~h{afO`^lv2YYW}b1 z+6$S9JI#N688f59{X}Itw;NMK@w)SWnz-M(7uO4{QtH)W1*=^uXX!bylwdU!h+N zLiF9)*mgOf4Nr$cuwQJ4Qe>JHPp3*eJXTKz6ZFR9W*!o&&%Z0TZX!qLEHk)!K>*jI z&SxZNs13R**R7ZRwya0@K;7GJBktfbth5F&uFp`COWwjvuiqSZ%c3>T!u-)Y3zXFm zyx-^n`@z4aV_4qKnv`Kp%CIJ7Sd%iWNg39p3~N$`H7UcIlwnQEuqI_#lQOJHng8~a zGSww7Yp#eC|6YE9(oZZ5;Y*5~jJf&E+$KXy3$FTcBFYWnCLH z4@0R&w=i5vR`hCr56GC+aXK@%Vj{|K)bWQ!4pYD3YfFZR6$cY5h0UrS>q5}JZk^WZ zvcB~fe^1i<-jG>Y2wYnTxiN#-4o9el7fjqk;1w?)iKrh=EXu5iZg5uJYL?1@dOIhij55$!T0JI-pDd% zNXwz!YPagTEoJXdX>H6$f)Kytuu3>*MMs20t?pI_VaI)%0~ALpw{iW+lhVm?z4OvQ z=Vww!yJ|JYMKyT@w~jS|R8eWbEscc@|5y-ehw4I7fPux1O{qXsE7Y-zJ`=tx6#!clAU$l-{t z`h@md*e+QI^o&Hu++x#$Yp2z96p+?9fqXwDfvJf=&*-IhbfdjXGtTj~>P+YoU3+S~ z5zlN8UZoj%T|GGwn0aK&d%emJG}Op;o2)}`It25av)kA8MUX3_PZ0RXQ9|yDZMnD` zh8OB7>Lz!Vt50UVFH*IG-?mw{E($=g7^BrI3COBYs&A2dH9*mtk)BJ79s!WtX9coH z?)N_g_FIDbt!(>WyVf}`#u!CfYJuccY`V=rveuvhXSaS^N(1ez@u=5As@v+dH1ytWNCH{UN5LQG#HTFQK>zT#>&XVA6N&_gh2)-#l2|`mLL`uoEa`cVOSXhg zEH)w*kWeDP=ki9cLP7Zrb)=)0NhLO|Ndl?)j1*EGT?WZTLPrufc*!3@zw~V1c)7~q z>BONrVgnp^aY0N}=AGPr`8t%6u#I|&vzj`V4y}ABnL&6U7q=9Aq!`smF|@eyALCn`34r%=W`v6FXv7pCcxKLzo5g89#FQOxPhc8hcA4o!^JY$-@e(!`~!r zmuAsRZ>1JD-Idnuh9~`p=_ePKmlWB#M{({e+s3n+Pbma#?n78BT z(l9biYs$xcs__J4kz_cc;Xi}moRLMZTBNNdoLq|unF-6BIgePovAo)Uay?mpZNRWc z#bZTHTIq`Yy1GZVP{3LRU}I%?N;rBt)1?dLvTiCJVs5{w{(jSP`7?7;hJTPbDf96& zn((Ja*$MkCvgei)7~qW9>c?)mYXDveZDV8?#0CqkXB_*%0Nn)lQJq{3z=a1z$Y4eyJma8 zG&FL-dnqS2VcmOYs`iTZi*)wGD(tCM%X^<~*>G zwd41s3`PXAEP~dc_n6T8?CFC6bb`r^0StX;nNBPeB}+3#Oc-O)l86!7R5YUrLu>RH zXbqq(dn_(_(CR$)TM8L7g;Kj3`(a?~|F4rW|I)Z0;x(VWpKZ}o8XHLp6y}d=1Z$CnMA@2 z`<|c3Lh;tRELFD8Y}Hf!mNyW1=A?|8|LSi0f(Qbk7O+moP<8e_R95oEmun7`iodGe zsyVSz%hrT7hO>7XNQ?eElQMrb?#1^m*azLxz9b#wac6_q9HYJU>a9sTuh7+3n(KaX z(YkvPW!!qSI9#+IBW;6QpDp|BDcwWCay|MSKF_}CAN|Ad{vAn=4Vm^^-V&wlvH^#9 z3=UWGzdXS!?dBHFwsU`~Mqj?ksx$uS4%{ z|48r7bsef5ZwuPNeh;$zp1y1D?t*vMOTe1>khzO4KK!y!l6TnNoWxk<<55?s3 z{s{R&IFcYyh#{d8AkX#qo7-(1I@Qo{8}y9m&oc`sFLpEq`F@!bQzL;n9rp8>3+7!Q zhS#C~&4eyNq9>iH?8->&MwiWIn{8lEP8u3ROa5j9;h@)_iIhKE*VDAvC{Jtzk`%-_ z+HS5hdM&JxZ;$b#cI^clR|!^k#4tEG)Ju z6*OlhDI8hB-52OL1@xQKapL({{-fCAX}wGcf0L(RAu#ZitN#(|H~w!gVjnl-LXpi* zvIDP-`k&XeztHX|QbTPY%}w=-H5S18yY)K*aGX$2FE_bE&|G^mK0pBPN$Crs^w^yn zyl3O)Qab2Q9t^CD`WET=o-6SyN^R^<#iKU~S+;~nIi#1( zq!J2AhuoJ8icXEREF=>j29k52WGJAm*NudYBu!W1J|Y#SY-Lut`uKoY+nlTK4Lx=c zJuJara2EDu5Acab_Hp4EJ@{ihDH40cZfxHbdC@)dZRWUy;2=d|eAjJErXC+|oqam0 zMJj3lUsHqNLr(b7^+&wvF zz;rBno!Geb{*=4pRYI;)4B{bH>2O%U*zfwD@U4e*>}+ieF6_a}#WDQT`Y7>y?Jt)}~10sm=h?#B)=XOvF;o|o~R-?$`qs(=K<)$T4Oqgyeqa?zxz7CMb53a`~mm{d1yfNVb$xA z0oxCiFdOKHu{HW!V!@NbpnqC(f4e$e9&zEOMVIGMJ4Su=ko$BUh#JFi`Mu^2IZ^vh zYwiI@B=^Ktx|_5LrWc8&w|kO8U9{Erd|pm5*W6*h*W4+Ewg0r{o_sV~od#UpX)hJ= zK&ajJoIuZL6~e9`IC{0{_W$9UdkaT3HM)idF*sd&uH5BxD}A)qq~>B>?P)lFEAcyA z5Jf#*ce$T0rtS(k^?N<-Qy3Hb?Jc2<$APt(>A&c zjy{*eN-El(?bE+TDKmedS&qX>8)cuhFg3C0M_Tr#Ss0nHDtFf5RMz2C*5Opv;Z)Y) zRMz2C*5Opv;Z)Y)RMz2C*5Opv;Z)Y))c;owr?RO1zYevh{R6dk)Y|=x%bCue)!f~| zbaq;I`8gzdtMh^dQr-*MX@lxUB7gFy=I?dgl|V)4p!y?__z2WdvF_Het}cV$8GJeq znn~@GX;0A*C2>Mm*aUi9qGMG8Qy_s1G(<9y9Wsb5lB-BQ(!Qb`{n10wE7QAWD~PnI}9;1^5|#e+heUl38CQ6~j;Nl>q(f zk?<4-Dcz)0i~Pmq%vPS+E+;v#X#;V(Ae??3PMhq0gWU4mMsX9;Ty9tq-;85c?m85l zI;B+%)W8Gngo!66X7<0R!`T3P9wqc>%l3b)=~R5F>B_%;yM2RF`=jI@}8P5y(7;+7bl9KcVz$CJY`#DIfhdlu|d81|2#q&?{GmhY&E{ zQ+V;1$AtUL#h*%ZK1xcZQgw=<#x6(>4UJx2~+9*wRWrqYM$fUbGh%uM0Y zL+VY&DtZSTCplyfO?M z)z8qn)SkEq!Pkrq>E}a0~y`+lvcfxJHz=7 zdcuNtCem}7p|3LG3d0B06bzCJOx0&LXfx5f?P1RScjjjthCQPN^Fu+Uzr?0Pq+Wh! zC^8>D{-3ockW#b1;wuI-Wnc7FpXKdXM4;Up)fIZ{ zr(2^I6(pBpGOH}3VB1|&%m)M$G#VOJG%poej$Nuqn`Gx(mf4utfI;V?M*moX-t>oc z6P9_>N7?pAZVk^a*{+?7O6l`t1#4>q5|wBTQ=Fr}YTY`!wh{ zd-{OT&$h z$NsqV{`?i{aN!=?fxix?vh&}yWFAfpKE@*xG}!a!$FJv(8fQ5bU(t@_6Y+}ZIDJ*? zyYMv?x$2^4UExBH&)DqBT<=a6bxDCM%ZPM<1bm%oFK^}Q#7SG9m*;rmq?@Rhc*jq_ zB(FDDET;>uFI#|uD%H-@x?~}k;@jOE0E3O6*fPWKrfw(XVYo`mg_PE$N6U8gKsw_v zzvar4reH21?KI2Pr)`k}8X^3T*PeC7OWL=kJzjr-1_1&#jtE$7IQ3;4fwe(an@q;H zMT7`gZ@Ci6-A39#*4yp~o8>*b6Wf*eu_xi-0AmH^;Zd(t7uzU>8bYAn;fH`-{`c<| z2D#AXDrBhF_+(_NPLy5shiTGKSmFt=l<(X|o}-^f0Ni(MZ-NSr)|fdIbh2TE6B*S& zSy?b?T;o^cZrZqN6Wz3Rk^fZlK}kq-GZkXS0Y4;fbL#H$lQXNTyC*kZX`B)AyVZ12 zB(1oKS6c4Yy|a(_Z|MkH+&$HCexFaKflpO!t$FFKnplSb$hAcGeC*p^og0M?XS#*J zaV727DkEa_ue8ebbx8$Z_0$hO$Qpck%&N{=)j6v=XI1B{>YP=bv#N7ebRqowEjC{&NRk?u5aU{zlu(k(Ury71FEVuXw!P#-V{9Nm2gG!QUYx5|Leg z4#>ZBTT2O5{=BnAt)uO)37F-4lxQ0YWrI|P+?qDX(0W`dKx${sm_H#YQl`<&9Q>Uy z#v=_yLH@Psl8JF7L1z6le{ZUUb={D~6i$0?Azur+HZhmX*-_Bqy&eEx@9~J9jxVJu z66i(0UdCeUibU^U7R@O8)ddzNw_U62&7dKFgY_=Vw(_qwJgxl}bDu>!|5#W3@3ojk zq~=!d7(Dkjs!s{{T*XZeAAwV@?K?}r>2KiM4uekN^FJ_5w8B$#{PLlgL zY_g|a{m(&Rijp{$Fa2k7`u#}*6MOxy>Z0xfjNU>YJ_i)MN401{dllgWoR0Vn?|~;q zeLF~ZAhb$7r9jiRr;!QHd7aE5ls}Ay&TR}Fa~V3V(lzRuX%6z*MArTQ{md}JhS%aO z1P0kt3Ct}Nb+XTS)KCtz?yE>4$1#+A-OzA^X1W0JLkF>Mnpgo;K3qgXl1XS3DVUSU z!2l{ssuXqr!Kv#c0)^BYNd*4YZsP^u38my|TQ;%)>4@7PRhwCS6NdCvX6ndu01{T9 z2j@&)K~=8-MliM`<31z1X(Qo*sL+X#ePGuC^sw~I@E%IrwoWc;5J{DU#7PLMd=`seAoB$+_ z2V%!f11Hk?Ci*2_s!J*T?NP#Tc+!|Ld0%kKFrBCkfXGFqn?~YNg{N$Wr;LoJ(j*6h ztdz?o%i<@doCK$yz$Tu$=at7!$wtP-#7@6uOoiD_kvYdb&88V*)sydxXIx-2Z%W7Q zn`hMgrUTNaKcOc+Yt7oRw@y4zIeK$0&TcNjc}jz@n_3&Cp<#8l`Q6irIesj^My1nNKybeS0TU~PnTp4L6gZCeAsUs#zDj#uI8d8@TOP`>N5t+0dR`m=&{zmE0T`Ssvq8=u5BJasn^4jVcc=GS85>BV(pu=kodts%2X^VM)^ey-HJMb3F zcN+qz@EX~E|5q*UkJ!e+w)c!zg6z9PqIbS%)P;g^;mbRb(mMg*KGTCc7NWZmh~1Qt z-MIZ7U5#Bo``tv3UB9P${-%5R0ec1DJ;?qZOo$rPw^zzdEtjUI+@V%`P-~;9gED)k z>?Hmp3J;*Oo!Lv<-_5Y!2^^t^?bC_ev{CNe@#Wn~4aTs^9(q|4?9c8qrV8m)kNy9jDctw$giXym%5ZDy{{@9F{<{>u{00~uoxJ&D+4&*$Up_wpH){mBJT6j?YdA=6e^cA!@k` z0qTt1t%Y@jiN+`!&7@(T6MnLBag^_V<0`)dchmY+!|0|>30Lms?H^`g^>cE_=tlN? zhTmEaD^H%h&Rx5{ti|&W6b`@D%&$mtzjx01+4tKQ9&9|2Iz{D?=@4co-MV|_6YW;# zjYNqey{mcrB|0}E%VIi3vM1LJB;v2$y3870VG%fsz*z*&B5)Rgvk06;;4A`X5jcy$ zSp?1^@c(86{?)z5QgcYFa8v))HX+R~vyeLfnx2vw&t7!ESkgQ6IR zA};ZtJ-J1^fss7jh2F{Lr}+K{d-oOAbl>m!9z~^#ii&h^DS|Ymw}6O+j*6gk6%?c@ zNDsZ2fb`xwN$5S0(0lKYgwT5k9TFgH?q@w~&6;)XwddM1d(T|6HwQWSALr=x`&{p@ zWHV!lsA*zAw-g(!_%D^jG0n0Amojhyv8+C^RK7FHIwl*ORp!@O*0NT%yyNv0T-vOp z$y4*U@R^Ao*_r1y=6{=moL@cBdr7E7RRcQ2-zSEP^JjvBoNq(MGSwvUB zY#wWXOq$>VL)iC z^7EE16Ft${>aKc*G{~a_-07(S)f(1O)>47q!tHh5mdo=WoEBm%pSn51vKsRvhcf}vrD4IXQqo(>kUT5F0}OqA9X*z-_zaO-A|p?s`^$H41tUHjRF(Wt9sb= zFA5nztbe(YYsa0A7JW#z!jFE3O;|m!kGH(vZryH+xp`Z)DPi-QIiJfCb6dd;1TeIJ z2RV>z+L{V}Edl(}Qra#$8%`kTr9 zMT*eArPMRP_-FpXtCo%5S;ou&W0YzWR<4jnj`lseiL|x8am%6SWRtt>lRhk6_w)LL zsfuJ$Ce-@+0-0O-r@IFAjZHzLhJcb`#TSzsS$Y8z$rlGk0iiX=4FVwjY{1lmQTrKJ z$CZS!7r-JYV4V3Hav)^-I-&O>BvTDV76JOw_=6-^8vZ~5|3={Ldei_=;kvkQ1lu58o3E-vtWn)ANei{* z3jo!H=d!&cXY&uBV^O+*8{2;q_XY9M7yK43E(87xm zXuT;JvJb5HtwML(=pHhkxK+OmSoK1Ju=nE(Er{Qdi#`%0MM2UG`3ANM}sBrga& z`GUX))@x=CB0CN~Bfu)wNMoGqBag%Bs6+E}xjTaURv0-;wxbc@qu+9Me@EO{%`+0-SbW9zem8I|u1scrR#i zCU97V!kA;I;F7P3&G&-OLu5+`O`B9O#JXG2Y0F~Th@8#2)ag2*dT*c~v3-qMFl#q^ zfwFPy?rB)#KC?b;^C1T?y!rS+GHnZix?ZE@R01{7OniQ-(MqDke5>th1A($BVLRkz z`L_33;{;iH1TEIUYAjIx^U;+ zf57)5e<}{pF=8;)6g*k8IrA^BeT~?2qaW2`Imrr}T{Xt|s->PoXK7PY@7g5{%yTZHBRM%&~CsuK6N?dDeY;_yKtS%7vtF&Iav`=djO*qUT@U ztbV92`<0mOXSLMnvb+$r>^9vi!aB#0`uwMQ{(b8O(84lt-fktfZh1Lnm@RCm3q4j! zvxrGC*7iUxK9;Mn3$`wti4UtybT3Xe z1f?1x2iE}CZ*7#xZd3?tLIz%-E8lKi|2Pw!?Ki%5Om2d3e6_NN)Ef|8!LM_G6D7o^u$l9G5-_ zK=yM_B5hA9eDB$S(C002X|{bS%-&uo4#K{#=t1%lm;4$br6jnof*V(}ke-|z! zhY{C8?0qzneN0?Ow;XV?9~uk{=NZ;5C>*k99exue2}zZ<6eRhDIk3@?{v~(x(dek$ z?nnW1Si`i|YzP3R?YW;HnWl{t#~*vrN>B9fH1!{MV%H-u$C0$yn1S5@1W%$MXCUHO z><2!YjSwYANY^05NfZ9CJ2vem2WSoR=dm8WER0h^uMDbp&w} zL%gzkoW^#Rt8tcJOaQB$93XZ|5rnbx({-V{Et-1y;u>YTi?1v$aM;nkMD53PT=Pm*Y6TC?M~rx4LhX}GV91-2r&=U zp=*2>uJlVPrb~olH17Rhx|~W{dD^M^ZZ6j;wevq^nt&2tDeo0b=bI&!LDwCgprF5D z(`UirkeO0o4*@_W0qv>uMN+z3NC?c=25(5gsU(XR8=_Bii6N3D%T406c0~0}=Vztj%(j#Psahb?r22N|2;snhOKU)q~A!!wsd z2zyp4HKOdaXI~hJ36-lH&ao{f3~{T?S3jJ~C0McB`NV7gPS4ZIO(CUceH?VE zA}35yeWC?2n%yG8C=S~eDQP}Ub@2mVyM9_6^)rpw_B?icG=12~*#^!1Io<&B~(9qN2W~mCXTS*NGY{ z#j0XH^>SGjHmw&6UBJdsZ$a3%!d15}lHIuSh`7t8v5V|q*|gi`v)Sb_S^-b&3VDzSdQ5DJ@9`V$U467G;jt^l_D}}1 z$9cXt|7=yesqd<+A*6BMStBd=PEbe-(V;0Q_tE2kHLZTw!c8xHKQ8$I zOLwS%*l$Z6DXuwGy;zVpY=Zj^e;{~%3v!xc4yDcxhl-92X^-e|htzUM4n{}77su{G z$AL!2K_17!nB&m%W8bpl2;6ZLEk5xPK28IlV1u8$bL_6MO+~wIdydbL8+MW-xZ>~y zf`mK_!MhlrGC(LEz)!#DtMWLhNjs@SoYZ4Z;O8feZ2vJber5N_nOID4LlAQ1PGXGC zl5EaO<<7Fxc97>gqaJ6oX=lH11hmHyMv&MaP8dQEJNeHRJc#SfN7w=4uF?6R-1)K1 zd6^N>Km2URr05^ntqyCLAJMSZIL$2v zC5iW=#SYgui?d8`Vw~F#cFVylR)_}T(Q(Ad$1ubiis@}5jsz73KfOgA{%>U!jiz%x z>OalLBFVH;Ipi|8TCM^1i_-6WDJyz@6GvCtbpKz=DlhJ6Qt!OJrPdnJ!Se2Ohnv)m z`A+8}KmA__juY@N1?tOVnwQ5kFOO+n9@D%$rg?cx^YWPHfXb5oc9?c4)ZHK~4o zJ2$3M6X)}<&Ru!o+@VPaq7N>e`@j2`=B0CAI(Lt3tPH)aez!CK#2Ao%&uG9)p7y>$ z{Qj4bpm&1WXo)PH%IA`}7<8PyNk@#8QTwHHUpn`tb6-05rE_08_oZ`RI`^e>Upn`t zbN^3wZl%;g38(nI^byh+R{G3-E$M?UxnG^h1{4|GjOh^ynS;ieqYtt;DkMcHog?t3 z5`~U&c4j~KHjxZ_#ZGlOeIE>hR`MUwpK{?t1rrTg15aOC(Y$Z83uonS<`;-JJ(w?_oyv9uRuhD(O!%Y-{|bgR+#>&F4x#aavz7p;Cp)3CX$B=J_rOigo!+E@?7}dH3UT?M1=U@%i9&j$Q4{m&*AU z#qEH^LU)%u#!nFSZZO(OK6PE(dirhM6I(x*?{LPXNKI&@X5K|pyGt1yy8xZx%J0_6 zo>JCcAb`=`kVev?hOUC$V6lOzlp>c5*t7xpldM1N*&ip<72AtXbuxtOGRyr7sDhyz zOQ|aqkZRqaZi#G)x?&n+@zov)5CeeJ(&s?;;&95n35{Coy$8( zflG50${P@{anT2+qMTsBr=-fVsl3sVO2eM?VnY5Gs$yg5$hWRCUz4h6l?u}n03L<( z)=Xe+Wk7nO0?nuDMM)?$s@k)=S|g-rinQi8Z;cyO)rfITnO9AabiqJN4a>6Hf;oJ-&3vo8ral1 zojokxlpG>-KUD4^-_J+Xu#Up!U%Ila$$mV&zj#&uFhOz!Pkknj;2g{alF5i~yhWn= zLUzcS8>p57vDP<%t=-d(NQdxvGe^iI7RM!L5A6J_@93XZc^<9>h&Efh!5xqqq zR2NHV*Ro#MdR2FcWmVj!`&Lrd>J!9`>C`_=CeuixH!{(67nSkx9T#+paI%dDm60?WjpMnywS&S2-N-1oNJsp zB_oI3>}6(x(dG9)Ztov_HLxFm;Gi4W6&{#C4IDBHlb~g~&^+5S zHwiUaC%~YK+88K#SZQ_4Rc$c9%Do8U>;WD8#XlLPItd+_yyG_ZTCLR$ARCP>icOiI zHf23f8TC&o4OE*R_8$-x8~db|$HG)XB|Tw7os#J`PF$bnqC%P&xD?WqRT>O5Kt1#O zoM0(s3{pdXg&-Gs`$GZK#aLvn+rUk=vKAts;QCwixZ6dT1g+(YVq`*zOCqUL(DNWP z@(kIrfquv5Tqr)XX+W}chVr)?sySq)rViz-i^CM(O+50Wd-!qj}0%Y%OFhkauA;8Lvaig&iAG`r_8 zn)Cj@=RH#-*opo0*7FRk^A42L77gW<6V^8d7i5VG&si5=%q%!ifeV!Lqgv+}wpS4EGgX24Z2 z6-Tn9Rk8^d{*^|oU`LE{+U!cs%<>qO-@@#6U1Y)ssvxp^lpK3vv@#bllsdcO&i=i_ zA`FUZ|IQ@trN;Bu9{a?oedRPcRm}e0UhsRt{kOdcO*Smh{Q%2ap;bJpn}+OaICy-1 z@P+nJ$@*|#v8O#cI^B9I3)ZSRD7J+{Lel2WaJT010RPwxNpFhdX7(LBV@`EvW*D29)$cfLLq_x z!4Qhh2_MkWLGEh7D^V+oYMjUa&=p2jt=brm2>A%}^ufCms8GMi5ur>bO!s{>=fcrIu_lt^= zoNB2r6W%W=$MPG%eHk>DRTD+6W?B<8SJYDhZp3ShA6DOHz5=nnO8l_)K36S8){jwZ z{X?M^RN42zZ42$98`TbdQn&d&mKs+|iMSqqnf5oDy2E#Jzeul^WPZF-<>MB*4tTWg zwjuuXbCow0ow|j@v#;gBOv0=i5<(^=k-VB)=90qS%aU7MK-#XiaL@ZvhQj(?U4E|( z6z-JWWFfI%uPl}q_640BHlykttL@Q8j!iR-7F4uEas2F3K$4(4QG&3z76-P0TN7$_ zvAr-u8|nDSp=ACyRTgVYs2?;kwz!{H@2)a9@knsdq2gVL;A&4@?w4OSC_C zni8Kn@)LJYh+%V@>sUW5aCDEaG;&;fJau9x?%`SF;UX_s`Pv1uyU1QleCOa%B5n;M zb5VHgGD+$g#N|04Y_+XmNfrnUf9yu>BuqIeb<<3atI1<<*`veGOXQ>1^_QM=S{CIK z#*2@=XY#x|qP!S7y?U3uc*yPjxO|p7yqlxE+UdP0O??_ky$1t)n&>>(NquvTedizh zuEzZ;dgIy@=c&Bv{*K&3wG${(V<%f9t(forG2S**!S}nU-~MC&!wEk`faGUx5|m=x4XYuMaiQfko|O_}t??o7 zyr6HLp(SR)o@Y$AL<5TxE|F})f}G39Y(O7zF1{}(4e z${;^FXP*Z=KWT&h0AB}KYDSPTc(Y7}C*6y1O0xR@_WqWV+OCyzmIDdOJ$2({1weP8>doDeIk6nC^5 zyT}zM$`JEjCzhtb+AP7>d@7D`6lcT`?K0)tXK z_nQPqNsx1ph?Im$cvoD3WL)}>=$tOU7zTTGoj;@EiNB`e|4b!-88k9=;;R$H06&sG zuO(1UB^Ed&>{dsODZ87`ST zjZbJ`NStww=r2f$YKhK}2;=w=&M|7gZuSRV8NQw1`lBTbFA3bM`C=dEbT;+E-6<+( z5(KId-A$0Edh%kw3$$GG^15!!Ek?1^u0PI!8GetwJo7Uw1JYR6gHF~!qp>cBIvJHZ zdRG!N)B+u+@M*l+@$Mf3|LT50Ly)J{4SW0~BY-?>r&f%f62M=p=l?M+oG$xMUb4f8 zHOmu8MP;wqAScNu=`nlR4i9pUDpMy`vpEQ!!1(M>({IhEvLlRh&hxVETe8V?bB_ZP zvmfL}X6625l>9*s+%n6{{vl5{EzyhjGV8XM70;fV$|DNr=a`b4Yu4rYXy&ZlPWOZ-;rB$1IaAIwSoeIM20!I&{?uL_EDf%b)9ItteK2jVs?t^+=_+GQ`T9^{dKH$v3e9=8{{=l@eV^S#^>&$ckUm33eg=XNgtJwW-Sq)p45D zZ(OUdj#b65*F0CL5&2ewT~Ezjj|PS${n1GY)`Ym+u5As94DHEv?<$SgOKq#Il>sLJ zPIA(EDjzVVWcHM0Qw4K5)k!DTA#3YGjcd!Uz^D_FUQT(UE}jScVfkQ~<2ulls$QN4 z=5dmk=C+mG=b`cU^$SJ{6fv%dZ%n!t zuHUnsG+evec4fJGfVb$0aT}>`8~I~+h+dlpHR3a0i?LE0B}DsMDBM)FRad{kqQ0O# zu~lNT>4#LC$=I(d3Ril{TVXcU^8r zg=+gXi|!k|ZRMNV^)e5OPP?O-dmI&NqPZTnZ8p9IOLXh^SW&}kdKK&VdhIrA4tu)T zT}uVl!*SXOO5I*GbD2zCv3yl?2>~9d-#f^iOLFsU@D|GuEkKrEa$s*{@J`CmEw!Oz^PydzAx7vB z^I5OZ!Vs2p_%D9q5IeSO4$`%dT*aL-%)~Ey4?0NQK1lXtgrQ-$M87k$_cgwz61t)& zACJjv4|D4$z==4aO~Fk*;Uc6Bj2d8<6Uja8f|c3_r4-X68#n8OUmc;l`Asflx)t z%qq*whs42b%d$Ea42Ljg7dm6sHzQ&^yt#lnKx0T|0M`M=TW(*s&ps1Dvt+EZ4|%O< z42@~~i*CybF%`{TwVuNRDj8T&%Ro#rZ@&Oj?O1(_h+ZvyzY}{AYP_x-vN6oVx-jfk zaIarl(ApE-Fm?kyFT*>>!b_=kO|Okrsxd+Dn}N1VkXjJH!C4$TUkXWf|oS_C0lTW4fq zTN2L}rqx!y-^})yDb40zo$qUvbf4$zjSn_lk&;~%h4)ufb*Z@{arGP`x zUzn*6tW#dRPK{|dobTJ3@9u9-hc6KM7X1}wSIcL=SY!QsupiIn4tue_3)nuIt+CX_ z!LXIAzWzSc7X8=)*ZS5jtMH;MZtEgDGShpUiYuzeoeFflXkR>+-8MjNT(jw@cHh=Z z+NQ)*P-C{ApKRYsd;ZfMMn}67hAyDj*k(vuWs=)wp{->*$NhCqjAf_Y4Ip|y4&Qa$ zdW3-O?g{KX#mHWqvRu{N6Vs5rFzWg8JsBLJ#eG2zvqhBMFVWk7eO{}WwjTl8S52!@ zKi}7L4f#NeyHU9nCos5vb5)yGTGVnO0ez60d+<5@K#L6<>wc&gzG{psGdDWa4?lF~ z=lmgfsDnFnI6pK(9GMIpIsJ=NKRR~5bL=m79AI>Ok>tK;j`&6%hY$R1)QMN|F@k?L zM<(wadWPeZYz|HJ`2H`9y29w>qB%l*x9fsAsy{!nC_Zs!J54FZug{prIPJ%r44$8+%bkt05hue>VK%2TX=g*2(*z)KQSfvc zK}4OO;m%jL(uhbK;!ZemQ}Arh=xA1s_;;onf&6n|SGhXu9I@Rtl9=eO3HP_pSA->?pb`VYiFX)xe{E zEY-0fs?nFMnm_coWV$t!KFx|6|7@x=`mrM<6kpcfn=Eb`yGc#3Ya7gdqsa#%h_sGE zJ{H@@SBq{2IUkJ2oJ~Wm{p$hqhgA9{KU-SwF*%0nm)Z98ib@|*8&v!r8P(Er1f__* zMwUBToU=;T9M3I=B*}%z))JOBlVBb<i6Vt+LspEv`Z}Zh#swBz(7; zNUt-8H|;XZ&^GUL=!Z8S@&RdEE}A3ZErf^Emx1g{tiHtRORT=c>ex%H{$GXFOE-R1 zFKR*if3Ds+zWNTHkt0Zh?P=ZV)<#G!*l3+16-aPz8=rFgq}_3y#cjn^)_!|R%OWF2 zJ~07P$u4oY4SYw<_OV5Dv1C$)`O7W(cdc-aoxZ!9^ml0|+d{wXka32-A`PExrihK7 zQQsJD5Qy!RJL6Rs&Yv#{IxKsd#MdK~Wc0B3xL$ermoXTK#Bn|f}CxjZabxd}PN9}fBwCd(vB>T*{c#~=^S4d2c`o4@OBwGb9*`zW=`SlB@^G=$S z0Cd{Ln0|M!o-RChlo$#YSWexbHgsIU<_EV%SJ3vp;BfebD9&LkSS zlWfjies3hfko(5RK1F@f!x0f5QPfNEjrT~#Qh2{TixzrWde7y1vw)_uB6iYPQ*5gH z=6WtKdWDQWVWb^>S2y3v#6pE;>@oT1wG~n%-EXmRP;c~f^J%m-Kpwf5mqlNtA8s>8VF1=bkKK zFB|9ddmUh_B%XjPe?tt)gRRx7$Z1#8dQ4Z!t>E&ATZP?Lo<1?S|kG>r%zJhOjKGi%2bjr+q@$1P2<_i11&G(`0v~wl%9+>cJ zH1?+n^oNpqUG?-FB@Oug+CN7jz(E4wr1;CWQwq51tCsHxJn$v{TJ=B4^OqP2c#-d? z5}@s(D8-oX%<}2CW2al7glp50OYY-aUmth|D|#ia1`ZgzNmcl(O!~`9xaTMa&cx|` zatun24=V2Te=-@|?-NXx<9ol;_uMfA(HT6|5^^&;xFtTsk2~~4+bxybs$ep(B=CE) zle0rysD6G3XPe^>NrvCbDvd7<;i4(Q|1?U4{rK**Gt@xr9T#AN8x5$CT9 zpwc%X^(!GeiZ7Oq!&Vesy0gL_cZPK;hT}%VuS$l`I|?5@5IcSlO!Xj8An(t(gcJFi z5G{q6vmNUl=Rh_J`-e*QjrrkIabiAZfq1cCMuwnZ2ltzjL=ZeaLNh9I%gJy0ldxXA z#?xAmxTOC(i625iVq&$y%Vv>}bRwzOyo9IzeAbMf42=3KAsSE+rQrNWodFQ~AnFO; z;%>oj1D;5&F4d1bAOp$Rp?w|2Pkysb(P|0N@qrOKO0lMrL9d1VxH&8o8NysI_*y9v zh>!gxDdv=*&^jJR5)|()8NuglWzP_O4A_BtrROf$jd zSxnMFRANx9ka4j7kHpY~C`0zdGWkRYXHS6y(|iWu!nLS0d>mT>qNAO{@0>E5 zkT_is!|Iq&pOBD9k(k<%$X*cN=bZYHG{ue~wOz?>k>c%|QrvEB+#k~8Fb3=*Sh4cI7f7T%J}V=@!B-~yW|%Ox(GJq zFy6$kQ4_|TQt^)|v)1BWJti`Vfmv)fT(}vtD)Td_7!p}1ZML};q^7^hC}$<}WcBd8 zYN&M@<;;+0%#4i7RD(y5s$ci%4#yqR!ao!9??wcpMf-X5R#<@iI<1|87s8?N1yh47sS?U*aC&%v0 zxRHqEro5qql#`%eoO#hP3IV;9;Y~s5&*PIq7YZi*a&si}ek%Qzdm@>utQFRsit8#& zUoS)j$z)Te7b?djC8n=Bf;*zX0d?T7Q(y*j@W&&+rMsc9#6q|AxC)m@pF+r6g0vw4 za#bp(t=kitnD^n6Tx??6YC^%(eQ5F%$&#tR=FBtIo)kj3A@vH-GVa?Oi8@nbKgX)DcGFFl|r17(#CndUD96LXPIJU0mvk9Z}y^-={~lj-%+k~D+r9HGIw zrO+P{PLz_N>%pi`W!g_FSSuu7ZOAY=7v~pN$mvP{RQ3Z(RVrF!ytl}X(ycs845#4D zCo8PfgH?pASNc1LzD8!TNEd!Pkyj0=I?H*ktXck>>ZdL2vtx*e1FTwTq{1Cpb&IKn zJ~uCoyvmmsOr2PxKw1-uOo=1ZJXxrTl)m8mTvFXyeuaXij9PD3NUH0{4Tid_Oy$`p zLc*|WH`hA-oH7V+G{;HZyXCqvusfd~j4P_n5mr~$Qyv=x>tcX4CcWQv(U+B|7Xz2v zRIXby=jgOZc?YY{K-OFC)^`zIYtMM(My0LBc~hE^4V>i-+~jZz#)j6lTC$CZMJm`b zIJX!K``rV>slYmU5fCZ_r3oT01VNFF$nHU0TSR2^l#AEFKX+B#P!)=%f@`S2sZb3x z)NoqMhTEtHy3_i5mJRg!2#&-?%H(R%c9PEh%(*+iVZz4uo*$fQT*Phj_`0_N6iP2oHjoREkI6>X1tn8*oa^5i`BUCnNYF{ zYdCU@#A4*vcn5Z2yf?Vv8)`u8xM3%0T)=0dTw!9OyM2>yVv}_83-9DLwN7`7Nx#C0 zbnQVz&nS?8JPbXIdD5c`m@+e%l6RYWfgVo;Ok@CR>t)*DGGkdFSp$P!C8yB>H(9X3 zv>SQ4rIlqVOC(F$@;!2(%sb8GMaB_@an|O9HqDHZ8iT@=l^CB01m35AecYz@U4bz*qjY55~LqW0@ z!u%JkS{A?y3y>R&mh6k)%oZQi72lRdS3?(NDJO)ern07H9vGs43X8=&NJ%y1l-hy_ z)spD?6rKen4xe|+S~6&vwq#iNSk(I@M1e zs@2|F>7`lysvfPrg$yc6_fMU(_gTEc5B(Ch3}j!s>$dXn+nTG-8XI&ioNo16-Rcl} zm78omM|Y5bUiqZAMyFmuV!iB2gK=`74~?21Roh4+u5+_)+`um>udg?$&o!LRV){0I z=4>>;XSDTJp@tjX?i+CRQBDJ_RNJPJ1$Me60sA8%K=ndi|#@-hFh$_tySwr z3jpf|d@Gf>MWn;+rpjFms`u=0$1}1QgX+}}K{eY$>+plZi$j$I1e@@~Ul@Wt=Fl#cP=p|qYaIPV9A3OSAf_P)G?wdVPa4?HLiNu^F0eZ7tP*oJIBxx}k7q%KI|2nY_45`3Q)JSZ2bAEELG;H{eKWsR$+Zt`s zqA~&`i|&lK8Jw@v)H{AQLPYVrnZZA>GOkRXGBwEwiHjOp zV%b`85BWV5`OKoTh?6Rtn#AtgY@D0va)XZJ%2HZXfVHfY%i2m_ULG7?=d`g|4DKMx zN&~Sw)jcb+2v=9!7J~E|o4~2W&QUv(-KhA~`8mm7_-iDzBqSt!7eA8bEB;r!vrQf; z$?(1mVmz9+*a&)d@%jAxoaN&Y`33uvGb@%{$Uiw9qkiZ1=NG;-?Dv7>?=oKnU*R*% z&VTo)J?yrew+Xjxc2gu5MW!mxPfnFMo-c{fl961BNi4t2M{9Tf>Iq`@klN>|_%@g+ z17N+ED6%-5rpEM|6Tkm$EdHbEcWCXw_laa9M}KTV3Abkf)le!kIGX!?l{#9;k2gj@ ztM)B6cMNvFSPSv#ip9O&n39hzpKpg~saDPFwOd{GJc4o)-jpRQhU=;G+ncB1q6R9?ErbnSA6*UTDc=A$Q+W?BCq>v_tB;@JHWfpflt(GMro2V=A}M^ZCBX@qB0t;CMk(T)?@DB1;^< z6fX@GzLM;?gpbe z3brY2dmG!$l7i{wsoSZ&0yh%L-aHV#Vtvbjh2u-lbHztH`P+W{!gCaH^fC{+Rb9n; zGdfKq6ozu%1`xSg{<`(0vxU`rD?ouc;Z~Gl^CQL~J4KWEI|-}uk7Xn5-l@*tEpU?O zHGCGLz>(HkW2PYZ^|q}xyK(mmCoZbO(jZ2Thm5X=ucJ##)ov89Gyn2ONbahJbHUiJ zUeRfjIP4Gi;8^UurX+v+iLKZ7Ypjnf@)chTbc4c0K65;#c>Pd!_g$C?^W)o7jqk$B z!gHCQ^Jq#+nCF z99_=btEBe9eHM|doUH6&4$5Jt^^wdK6GkO*@}X$^yEeRTpH<%7ABo&8&kVTxW60bE zk&wEXrkjnBpMtPGymS$pyVY%P~J~T-%LC0HW%)EKVB9}!za%qEj*Yx`n{n7{C%f; z>WWir1=N+uXA<+cvPVd(_)X5{7x~=VZ4P1;JO+tB26T}_-uBsLH2Ky{1?==yhm{@Z zAGW5h(x^IF4O`E?mi;YH%8psc0{`($yN^GPkV64dYBe9 zBD6(}U%-v!RPW@@C$q0hP;WJ<4qMr_4*%YxKw-Tin!v=YD~DmIzKIQ8R7wUD_>I?B5%ZUB$iIqsJTpjbG@&gwiau; z#o#jNyTt_*rJP}8KWzV|y_+V=V5Vr}oD#)~wiN`4c=5SdgJx#30B)-U`?@hcmHiNP zngKP^pJR}sin*WY&#sY)7P+Z=%$gv8;R<6v3$Zj6=bTEoLqFau?2yhzX;r#2{e$t) zH2<-(jtN4mnO?iktO-@XgPBT;>V}kHo7x6l zlz8@$v&yNZC;bU#>03$lV}CIiX+aZ};W__oC>hT0Xu$05Q3{haC~ts2#E9(mX4a6=~<5(ie$YcMbhwL?A^K0?Z zYL9vGpNlIVn`E9>6fM)@JmAaUDdL?X#68#Jls4krk5-ga^MKnEZj6e*e&u?V#lD&N z=)|t*-8Jqd_1ha|;&t_tHA9UzvE9q@&FiNRRL&;6CCz+pOZZr6`EXSDWN`RUt^ObE z-Gx(|ec$(as?b79^&@!{_}&cU*aX zxNAw+Gbs8ACdun4zW)ddFyQt-|JwiIUx8d%0j7-pN|ugtim$CLg>6RywS)Xr@)dqq zesH!7dNUl99OrI%(|3;{$kW-6Y$)MxY$!;iJX@3ETDPSvF|y6?bS%tkx3VD0wo7O?RxlS|-PrO=4JhPvMU_r3S zQvByDpQ$9>#{%6xFp1AgBy!w!v%lhWB{6Z!EZSx<8oM3w{BqJ;zeJY~7x$XDNu8MR z_lf>W2`NcQ#WaaDk4(aABqCjs4S14eT9XZxT%(f3l9i&RsuTV!xw(fVr6q^mEQooc zl(=v%{DE$qbU`e*z(4N5-m*O?yC5-_N31O5&EuG8>w^@hkdz=E-Rgti&A70-0MgFsj1aLYCXm{jRNj%4 zMJp#|-Sk^Z=`Blf8%x1gUxCIY)4&BFl2Y1v>-6ISJ-~zTD#-vU*VK!8e`pHR2VEqy za0w{gv^-pD8dJt4>tt3bw|1_i$ed(Vmo(B+22W?&N z$Q52tl30#!c}{;^POg@P?Bm?@z*t?~$J{zOjauH6-Efmau3unoOqGO&OPto#+#jJH zX3BY%=6P1;31p)}M_=CTl=(cJ+_2UzM~N998Yx-Y|RN~am{*Q9qU#o2UAw4 z4b9G~O&we;+`bJl5QXTDq_J@OoL&f^e4cml1_BO)T9y+bCXu6UVEz^aA6#OvQ z^#%0kF!3Bb>=H{+<#yUtsnBFCD4ldk#c)aM!&1FBrBSA(KVc=oq>{xHY1ULHoBh%U z=u}P?vipGx_=G3)Rz?Z4G&mF|!v~h)f~!^ME8atw$?IkCx2HUjE)}S7x|3Sor&HdV zSCPD3yt7@7Zm;MbEh86ZX>nGngq4~yRGf3IypllKO+!r3#UE*(YlgY1yG5GmgAG*V ztoVM}v6TJbi~0qY(kzTGzoK}$0RGHNxsO$7GpYbsEN^$s6vtJD@WB%EtKVHM41y>1 z6vBK`A%1+o0NR==y~3W0FfaXzfUCY=q-#8naxbc=tE9hS}6apmUSj zW7OYM!BXM1aCnUk+$alzk`_fsBj79uoePLo6_I8*;!-q1(+`1V5$RGv^tyQqllck; z;iCQ02pqnEY?V&{i{jDnDX?gt9{ZfWXh$sS)$QurH7H`(7af*5o(pw5(jsf<=smYO z(zCi_ec_{{I>Few^Gx;UyM$@@Sg0YwmwW23AJ^YtZMZd7Pm54^%96vb-|$GJfpx6m zI;4TCyxfnbk%idsn6-gZRg!@SV*)mE9XE0S8^bCZEAZulbWKA1O(M1x#|mORazKd2Oe&B};oCEI4rJ5}lcVO2nj3Tq3eeEor9i=I2xM^zV1+ZKJ*7DIkl zGQ9pXpv8orN{2PdqN~}8!rqAZm&Ddb@@v`v}$&m@rtV%T^C`w^4P3I+n}qJ zu9&sfxs%vZH`XP^*>zdU!B`a|WQt)5wJTL>l7(OrkGra?ivllUlklO_2n=HEJ&ddI z3LHxWX3t(K_3_6}^K|nzV(#vv?8pFiyFN5)9}ipQ1;g$~VZvWk zVc(DYJ_Y4eTA@54eO)LrW6F_7P=Y z)oM+VRX+)VjslU+9tm$HVrLN4MWzH$5M#a2nr6z6jLfS>0Rm1<1dl`)t&V_K z(P?aB!!`5a*NqN*4FUK6W%(lu4Tlj9ug@T~vZr zMH)#&%L4snmz38Q^5mNX?Bs9p=mOf zSpQ=6c_6u>`nrFOY)JWanP(>xBICoa()!yxWuK?b%NDutM9QKgS1{@;9fGpGYb*WN zWqhDS1+0aJ>{L6MIJPzcwwa!`U&M_AhEaobHEYDQs5SE1665+7DuTk#7)sBhC~QH6 z{fJywN?!N=Yva7}8%ob(oDoOEfuye6_)fyK8p5xqBNFYKZgU{-6k{2TkxUaeStgKd z>17=2i2D=d#)lk;w6$5Tbi}o~Eun!eL5-JBIJVhEw?(~Ph^Xuo1qDI(rIU5y@s1wFrwJ3pH)isj)?oH#}r|QIa4!gSaLxy#`kK}fj zAE3WP?P69Z&5QT+y7xY5?A;mIt3mGl5ZY%|-*56W#;W@ze@E zN~`;o8g-Oxd=R~U^^9iI7&D@vJ^V5A$K3aySaMTxq6IG`W#LuXBkJ+PsTL3 zN7hg9^khOY&x8i0+d-bu*lq1T4v0FAq(5GtIPR1?MjIa|ah$HwpSBgB5{nP^*8kZ` zKli=xUwa-SJ)gaU?_5)_u>AI*CH$ti<4*9+?D~lRr#+AVx|RO-eMU3M-`R?lm*lE` zq3^Eg1^u{!s-&eVCLn(tHJ;$bN=6$V()t0$o_=d>VV*nmppz(@?C|GfL4`|{Ph-NR zrPGR1wbvIyBUECqGf5RM4bW?61-46x*#?%`^cz`9i`$139&AOfu#|o6Xy#$54reX@ zj_H!5Y^B*MRwnv1^c_4jcPxqJ@Chs7ZN71Mot2UZ{ zys6I6df$8kbi z{z4iJlhtyhU)2c%q8;w zUiy+`7oc@Yfn?__kMKuzALbJ)x&+;?+6Y@%Gik)}vMURG)Maa&FqK2(`2YUqfuwvOGahG4Pi(T;za!ZKNBPE@`5XN0c;Q zn>Z?IxoH9@ZN0PLR@!!%_TE-IXQJ&^2X`K1tCPQ)xP^Yw#=qSqdbYGaTUwtjtr9VUspWUDfep1wQ<> z$&fc~<{c~sKIsTZ>X>InSWJ#;haPWdq)jW>wiDXbVe6Mr%8#ZDsV}PtpSq!8S%1&0 zb&2SJxW7lznuE>Fz*qIQf3|bG&~&dbz>E>GuHLTa{oz?~3-)OjjC>p>ORS0W7&fl@ zDp2zI6r@Si04sG73u|k<)PV_i}nU6a~z}@q z8snfA@y&3cL1j3GcG!jwI`ZTKhyYs`Ddu#=6Sx#7sR`v_#E63gG! z1B~*K!BwPmg~`MuL(3urTuTqSeX;*vz`Htx0~Jns;EZI(OZCPn0Q=}6fq7_t>q6I?n95P z+J*muj*(B0RB0nyn2AEe$q@I+1}Nr=(S)qP@ca46RE+-xK@mHW_?v-RhkjGe>w-BO=Hu;q9|Cmu!A{sBAofhM+B zr)aKMPhqB>8wJvjg9DogLZZ{R3A4@*=XhVueQ=(QsF{6WKey94m$Woznm-4jo-gUZ zl%LFeLCs0B%WRC@wjAO*z$RfsB@I1wdFWXH|iq)03SXH#-> zfn~EPWOEO^DTCgeT-mI=wuQ4HFZC;LEx2uPJIM3?4@>JOhQwL-?b|Nv0D6Df(``P+ zotF;2^RhOt>l)uo;FZ$XRf+{A)QA;Gy^W&5w-Yl|5v$Dtk8r48A5M3*DSK<7-3J;97DDNG7B zCWUzYU8N2`CHa^A`*LE+gTJfPluL*snfqzo`*Z&jRqE5XdtXlvyeIZ;=?_hfH<$TI zDH8|v#d}DNV<7!5LT(pM_BystKW;c(^jbgmkvqA|aWb@i)Gc&EDSLDpA57OB%uuS- z#V561Cll%9v10O~(6Qkt2PLRpQ|Gu0^sZ!HLYfilgq`C7y z6Z-hSaXIlEvsk$E2XIr6ezp0o>m6I2K$8w;QMZIodX?vKRUTlmHC&D9N+5FO*}8VH zUGLs5{O;FJ)qYpj2SarrQ}v;x!h0()ep6W7oL+7iuE-n#+;xqZ$H#yD+?(}?18`Ek z^SLKPU&x3++MOARvCt?ol-!>qB)d6~36i9RsSJk5%h9!ezBjZON(Xt2?br0`jeh%4y^5?Qtz3!Wszw1ker(j@w>{UTWj78QS8mrii~+vS8*Iy+3e}$EKGZ;- z$FV$tQ&p>!z%SL=JV8*mrIrA|BtQPM%ZX<(>i@N3)MrM0X4Gd!eP+~WMtx?~XGVQy z)MrM0X4Lmk9V(Pqr* zis)~l`Zd(`u$cT(DdpDz_^L#!n$WNs2oEe3{R+faLn)O!x=y3iwIZiB2IZkw+-St8qxuW`jI)| zx7zbA>mb~1gnPnD+riMp5%@bwc$Xy(8wTqGqX=$@>QTrHr8Pn-yvB%FvVpIJ)vZb+ zaeOFBn`DFqwRe=;3$G&{Rj;u?cCrwxxccd)`s=I>Jr^2o88p<&Q<%EJ!Uidj*T4>F zV1@kQ05mpU2v|~XU7Uk0Kpo77HSyJJJl8)TPrJ;O5L#*z;LBm;~yhHtB^>O z=~$z=dn*sH)mpXDcC3}-xb-Wf0l`;CkZN-dZ*UH8aYeLIF6faxiOt@u?TUbQfBxn` z_x4YD1&0>pzYE)ie%eN`<{VRZxLvfOUTmk-Ko~hYK+EZYogIk=d9kXfc>Yeq=Jxb1 zv0q`Gx3bgDNjXRpJLxW>U#z$asiM6Svu7VwYd%BQhL=#t+FV8WJ8PF&QtfDfTU&V7 z3$wplA#?ZBu*70<3`rh^E0vRZ#$ZzK34z z`w{D>9eyf|L2pg!TS`xZRY3M;L>8R7>%JY};R(5S=36IMM4t|CnVx$$)mR@zq%Xm3 zH&?JImHt|j{wJ94k{GCdM?Y+)-v{q`8W!`4%}&T;KsmNu<(h;70j9y$s5e~Sl^U6+ zBCM$vs4EbukHNn1K;AwW#4`@<0teoP4(_rZXcn@kw38^bk4jQS(T__s$SO-JX$2;2(2o{NM!75tc? zLf^H~d4X|9#c|iaM&}#)IwRtl8s8+|V&<&@F))Gi8tXwZZVBnWQxsXl*psQ_74z$qzY^lO~zB)>L3L0gjY}u8En*cBZKJ zG$f{HvrOEPn4nARk(QMcw;y@NF5?27mSH#lUQ~bXWMx5w$mdK{Un4$Tn|y#EHsXmd z*XpQHLnEGbzuAdv7gpa2gv=VPc{;Bxjt5eVT7P714eP(bzAk3j=%KcL*I!_~vx}=6csA zUT10l`qs21d4p3LkSzbi7Jhr{35U!tNdKJl_Iw)AJ#f2JVja*OELChN zHxVK$w?oaeQ*OQ!G!ms6wKH;l@s9nrn!{=vVO7&%_b%!ej4;)pwu@ceJwWQ|%k3F* z?A|KgHH+GPx4yIdd(XgY*CBoPy~7^6(4M`<-q)!8@7;TM;`W_R|Bg|+(eHiafAl$O z&$n*R-+>g+%@wiE70z)GDRdAmcaUIwkfgyKSA392&(^Ya@PAPQp}+SlisYxUf79#e zNAaG;#L>56QtjzN&H53dd*3N%ztQ0sK5^VkuA>0;QMv%Z*053!)(4TZVoHQBlPOKj;gxSr`Kfv`{hIp(QDGu#|vXl@O1S$De}tkf=M{Nl>h9Cdfn?^qUs-=7Y1zqGh7|M-SzyRa5XjIzl5vNvTp=- z2V~^zDBva_C>->IK#M`Tq!4OD#y6*dO*$!qu)*DN$>baP@7?!{rJzkP@!0 zBe)U~`+`T^HPpphlyG(W?iz|q?vU6jE=0A7eN!yD)v3KMx!p%i@3A-5t%}^8G?|cD zT|`RukrvyIWk`cz>8Pc7udbe>onnOSQ3u?(Zg$gRtcOg+k2~2ImOi=E^YsKja(bPy z{@kr6j+ad*CvFA9ij+z`ue(pKJaB%2cpLrY*3!Mp-*R89eADy~YKo0$_G{cXEAh{i z{!H6ng=A7*4|sABL}$lX#k^JGLYC;7+V$RVf*+IwH_~R_PHM3dwTFu3dFodOSFnOhasXH4cI$soS0ZCzLsA?5sGL3x4nXx|I zE&}j`Mqb%@xH{SX26RQ(##<}n5`D6y%-xb`Bh%TgTQ&J&%3I(4{j=`~6^Pxiri)FX z%i*R?u6wLr9PPvMXjZD@=~H#}_>yoloN|p)?hE1gvTPQ<7r9R~=eH8;5ljNBLlydW zMUwn&m>+ReDz@I=POf1!$9!daWBsz<0{%*`-N*%FANVfiLdiUD)RLN{uw8Q8GK)C6 zL%rSSJuu48LOQQNHAL4QBu379u%4OQ?b+HB_ZrRl)NV=9i(HaUe}rZ6?hz;|3Z9O*hl@R6^FomCH3md?1+M@L|>XAg85Wd};0yoPjbxpszPKa@X>XtA?j zl^RPZy_;1O!EO6yXaFV?U(;#0_Sp$PI(e7?@7XO<&*LjwZd|P;@nT&r1($2;SZlh2mjSd_;X2-@El=hm@%HjRgc#G3PI>o#ma;q7Jn z`iC+Cege#&GG2@{G45ITG?A2!WxuDD&z5k{@krcl+XU^}nuXkCoxY!$WIHKpuGhUd zEz(E=rp=mJX}Fsd&N0Sovn@nEJDADIh<%@63seh(OsyA5bZj;Y^L%iBmm`CFB!Bry ze2$~3?4Gl|g{J{I7Rfr>5s2$FDcbt-A$i_Zkm!7Y((7lR}4_CEyxYR*Td^K- z%jENng71UUX*Wle1b;ZRp;unGx;0ZLtizVTtLbU_SmK({iGdyb=h1Lg zx?T1A36SB`vb5_?BvUm(dX?_<2yr|lR3RzT=<9WzaM9HfHFs^%U&wi?-Kcuyo>AKL zd40m^oJ|cm%HkX7QR4Ixtwa~VC^t@VY=T?+SI6zKNxuuFvpD~xWrEVq3*ug3atN6q)er>L+woYL7%<(VaYQd9mQcOqIuDw z>1}etZc9+vp)X2yA6RT*Tn${P+LrZp=FG zZZP^5i+SZf_RtV_-;bmKQPNj2 zXC))<=N}{jIhz6mlLGBvfwmI<-z9=L&40z+2{J^E(BR{D}9v^hUELyF#1$0236#Ta>Bx{kA$7S7cR~nVxkz{>a2ve z469u5J4X{**cOCoS9D_ZDB%t$%Xg`hi1^X&)94c#!W|f>6A^SVQs_aXOa+6V&rxp4 z&UV)$?s$ePzw~tDS!<%-Tg7+hNB3IBJsytdQT!3O8)Q)(`{hc&eVzz|kOcFBgkLQQ z7iwa{f5a0c5`XfzIfgiE)da;hCF;7wdLASu!kj{DlHPRux~wGMWD%O(^4t3$4t*y+ zA|$bgG1mTlsI#K}H{HafWc`$aB%o44TC&)mWc57Dy3nYF+b-NT)2rIalgYV)K}Md>hWC(%mlV|LixoHnr>%a1wueXsrb>=kMiy;1cy z$~m&kxwIo+2XsF{K2Uv^%KNF8_ruy=L|5)vjo0IpM0-hLN9O!rp?PGb8aX#*%ju2? zhpU>tqxqMf=L7CO53+U%adq`r&iB1qa7#%pb~*Q+ROFq`{3PqVloT_nfr9tLd7y&C z^G^!1YhTmk=j~~w1s4_;b`*AG6@YmF&6a=6nF`0^!6nvUN>K3V06d=@y7d@RXc84* z0=ZcOjvCJEa+ShfmFPK)zsj7Tc98erJrtu|P#FuYR)S0^K~Y&?$f4|TJ}_Pv9CkJQ z+hXcv&Eh@RVp2-+p_;CscAGs{bCHR&K@R5EQlUo|g zN=bZso*+KGzOr0IrR*6PBE$!n4e^&^DL*U#G3yIc_f)7KRcNkMEH6WMsX3f_z+bqDInUKHoh8}Wq1kssJ6_e7LzL51dkX;%M*@}(|j+d zq*3#3Eu@*|XnAl=hS>vmdr3GwJ1-2+7S`1X1jgDJxRb-7;mwn-Fm3!5CGF#vR^;P(}rECWqPI?O>+Fb?W*gI8N;;{k>P{J+Wxvlzr z4X9UO`)R(x;~-qtyte2TP0OddJ^m^-7X?H=hxe4@GqupRmoXOCWjr;RdoS6w@agu7 z|LpyQZ~G3+WL*VZi0Gx0>HVvnjH0+_<4DhYSld9)q1k_JO3B2G2wdV{cb;)aj6y6DR3n2$;^9Kuwm{*uVMw+4b zhHalb!UOoe>a6;IkWtV+>F(ffnSl=(YYp50map&)>%AH-w{1~09O|MOYOv+>@EE$J zG@`ga6u~|472j=+f%zE>_qq>z3MjeSVbo6s1MLFr46(mKINenozsQh?|FCui?!53w zB-`*8(2$Da=v&j#bH1Zt7>qS?)c&MR{MsnguAl4LKs9(|(YCx^2FYYMz)v^KFM|t@ z8%Qu8QweP;TO3st%l<_tk4fkrzB{o|``57@@buXXhoLTDO#o)CQunIt4j4<>{_lMBda`D@JTDR_Q8np zl?m>Zo@>Mno4VN-#Mi`y_O$R$6!E>{A{Hy(!@epax;hZ~a+PW#U#WF$OWbNkS zTIYIPx5eGP#XGU}DgWNHNc|;%)KnZOJHsHnlAU&lYWlJ`RqZhv_?y zCbplSj=iSeQkL6U7nGa#*ik<%`H;S=P`s;Iw$*ML zi9P$%y{{bm-{tmy8t*%L?K`LMyVmWyPf(ot-uu%X#r0hYW0I@`NzGyJt?}Ngs9pV2 z(&uiH&pIild)H5BZ#wc|Mex96eKWyp*W&abRD%>`d>Ar8%Ah}>^Xo_@ zat8&*2Zi*9WnM>F#RsNxN1*hrVER4q`Vmy)xVZSJRO2vDA3J?|+{1CwCwDSn zd@|&9GLn8WT6Z!waWZ~-VsCuZ6m{HHeB2myG;i#<*nO0yL9VOYMxT;Zy~yzOL*zQS zCF-=z;pkY7d{X!CaP`IiF5KM&qb zb|#AIj;e#nv+gGjxx0#3V+*9gdx%33n;xh<{O*bC z&gZ_|8|dG3D}V9eD$MbjhUgt=XAM_dX9VrD;sK=Ak={wzvyvg?xpQar=d=3rVtz)5 zLg93_-xod0+=RxFg7EY{#=?lKY3_#s`MHJ5g^;S{WiYvbpdT|3iMo+KAiT|B~OP|NUg)iEy_jMSijB+W%dC zqW~27mH%6Q^H#TqPS5|LoGd*0TYmfhmfs-Ef5`7IYW2Mde+KoPf61>U?V9sI_!~i& z&VS_h!^D4+UvU$A*MCkH_WT$5odHqg7j654BERac6#4bqqsXuE_Z1Y^`rqYWLmDtnCm->ppFWk}=tun{zo%qQbow{> zV`;*_D7P9FE@gD>xMl=elr#vN%CV9`L&|Rua~w6r}=uYI$i3mL`KwOg zK!jxZWoF@|K2iOCqYfUGP~p@`)<@5%KdF6qDFW2O&kMbnulkX>4T@y3kemxvbIyEc z6;GDdkfDD5nq~`NG90d-3|pD$0Go_qKCfRk=Cn3o8Nt$L&eE=aON>XH@k~=OEaKk zBkQLwx_;O1W{AqKS{hgB6;u?Ss4L_bdOf*?)*vX>HVt zs^vc_v@L}T7sz62#UqM-R_hz&_=-cvJ|sKh6UXCRw4Ewtcx~I@{dnOuSht$JOTgZE zL>fauV~&sxo>uHwPprD3(xLY-m2i6X8|plk+vm#CWN6A>y@lFWv&7cPc<8YIbi`K= zarcR<-Fr=2wxc?@5Ci<^58D}4bHU;co%e_KRbxMu!X6!eDQih;6%peK6i@z=I|t*H z{%95T+1=zLwmklsm}yL+qiG$di;If+Rws|m zZ(=TWFTiCMMO}j;Zv-%!*UM6Z=*-pBM@+xp#q#GFOp|zVSTBVPp8|yX(D_e24j)Ut zsf91%gunKZY%3f%Fv>4)5A^61i2@11OPQArUq@fxPPvJgQ+9esl_Lwx#V1(HMM;&! z-L1?%Wn9Ssjozzt+zfc%VXeR7Iub#w?Afwn|LaXkbGl$v2?)BZ!YgfgIkT!XL&i#T zSl6N!xyx95t-@BDR6Lz#ThsvkZ2Iu`*c@MURRF;ZAbz)YY3KpM!`$9MW1#Nb4DB+-DT&`pC|r=*^?! zdpzhGTy59i=DU2!SC~dDmdopzr7&NTAI*Yq+#3e~w{H=HV*!Id?Yy6arT=XS-;zB4 zwE+LV1%Hut|JU3BbAfIz8E#4^dFfjQaF;up{k~FOdAooT8|Bo*gjC97!l`COuzch`t&UdFpI6YAL~`$Ue*Uh4{<$FI+VB&u{_1 z(9=ans=03rHQ`kfvdjl>HAk%7-WcCw`W>Jh(D43uIu|(hslnvCO)=5-tbDoXC;5{;RH3MI1L_2>*OF~@mM*fm=`XwW;MFIMqQ0jbZGfVx&d2S1>fMQUOP&~*uDUJ&n1rogbG&5)&oM?$2Dhh~;dJ$Gl54Cw1hcO9Z!-#j397&nxNvN@2*vG|+td9#7(2O~l>;Xiy^E!~f65 z&-C@gghQs}tt)@Bv;V9&|M6{#ryu>bnr-2QbM{C zBkwO*WbTmsu&ts!Jb3PBm&g^EXBrLO>6{?W6^e~%M zIlG@JNjN9@L2UNZ!>kL;*fAGM>5`83xB+trL&y2dpl;PAu|z{rNv9t@jh4c zYUaC88MZxz$O5kmq+FHJ+>Q5nlCM)G4pKHQ<&%q+>|L$DI$6KEl$i^(%*N{q2aUc! z96a;X`xN3ToO8F}zEeTP`+~n(^B}Q#s0(>UdVseD4B;uEc6ak0SWy)n7M3uB%cQ_X zuIV|vfarn@&|r=fuXm*)xSknOYz;>0WgS_)DF}@*d+gCT3Mp5H*c9fpF-LW{W`m{F zu_@3d-anss^XTHh;#Y4C9_FKK%|;8MJ)`;OE*4onEqbk2^u)Ocmr_(1`rHv`Ff~>5 zc{zVwN|<`1n2M$3JZ(v~9%N~zK<`qa(KGK0_>%MbCB28TG^x+@b*!(ul~PlcE_ce^ zUQq9f^Wi0>^jQ?;CcR`$xm$9uUznA zU^eqH5f)bwmgg%_RhCun^tje(A*WJ7uP^)>Uhv!+V!dc7%Tn4#=8o~jb5wG{qBtQveut1n|kA;F9y|C zGU)nX=0EM=`cA$Zw*U<@$@Rf_F(x_~i$Mb$qMn2Q1r2{=gh4ig3INJd(*l|Q@L3a0FXkk))ACMoxjyA3<1uzBu%KW8-_GfLz?e&H1oPK-_p#Yn5lMg{j8uPratD7m+X(Qm)V)Fu*UC*9R9wA9X`-xR~&L6Glw z1eQq*@7T-g5VGk2sFVGD0AZ(NNBG?&;&o#0MKvF0J9#RJ9ZQlyIfX`sGUV)7x*#jbj|B~ z*y#Q4&8l`Xu)J0&^fJZ)M8sUP!(O#>roYy6Q>~l9BNTRoxc>@!Q7!N`w9UJZ6I=qAKQK$co1H0zKkfftrW!!RW1!Rj9`QBVC@jtPi%wy z1WYw>I1D*#F*3}2JdDc4NYoA~5Qd^aImyrwU(pee;fOW3(w1+Ob06o=mLEt+iiT#U zK+*1YL%1u|K`bL7Dx<#)rJV?X&Eug+!)lmXW$kJMVig@2j`KaL@lYM^gho}7?IcXq zJeoks!^m=LL;P1z2fx5sY6nRQ}gWS~uTAc8O&pj@2co_okvRIfjovpPzH>aM{|J`(RgQR|`aXIQq$;4^eRdL~>UxJa6Pwbyb zV#7q&#AV0;e!*U`NRa2j6z_N*i@?Zh!?C4pe1bGS9D~zTmwi{Hprwv8N}7X)kHmmS zkCvviJtzJU#(v9;YM`o>Sn;^qV?nF)eF6&)QF9%~u&N_VIx?RxVAIWZDI$r(MgnTg^79FBAQRqc_iICNFPPl#DNU;kQ#Z`ql|#!p3|bVf!*M zoJ}JhOc5zmBAI(LV3v3qCU6$8$q>1DE>h%-5^<4ASe@G3_1Zk2zIn58bG3ZqGSAkk z(Tp;3i$L8Zif(UhQ1R^!+x+R%n>#jQMo?-u% zZseXSanG!uc2Ohb6VLW%)4h*8yS67g2CN4*rU$Qi4rWaD9Z&Ym?RUL&_Z(pRKfMo} zX?b!aOfmfs*mwwsefC8i%G!?xc84uejP(s)Q7k^639huM(_ zOB?&1tcR{A2VY^N93sixd%u8nD^QG7=}pduk!!sVGaAVak>pZS@&jGULmo0To#ZPP z+&E1}^8+aLtjEo)l>SBvx9M?lI;9$L+$TmEn?4#L9#5Q*rcd@~rnl&RN-t+Y|Gz0` z>3&N0Q@Wqh{gm#fbU&s0Dcw)$eoFUKx}VbhlOI(*1NIKf@baOM9eXYUN?peL*IRY`UM) z{gl4nr|OG(J(CdgOk&rEC9dmG4GdZ`?iFia#R-o)RVnw&qRes7sQs%PE4s5`sj8)fE=ixwX~-yP!|q z8Q>|1Is~Ft2+>(s{TPL4K_D79z)fUOYfAlvSM^r0HD?RzTT%6vbM>bfku6jqq>5{O zo&~Z#4B0wYBkYW5GZdd(Lw<~{1nV{MW;ZORNG=P7t_z88;TqoWGQ4sU<%@0z(Tu+4^TQ>^}HLw1x zGD)i9T+d_1`%(;>A3&WRG6zSTuNI&<_NbeH?!=ziZt<5cT$XB8&~KH3w#aCG7ZpfR zz_(taw7$)6eJ*_Wg;t9S$jQ)Bgx zhSFC2he9FiWsGO6H3zpnm)%F|AT2Q0zlZ(X-i%nwUs7fOZgoZ2}q*_W>%ckZ16S($+(g}z;bfm2+6Un2BT zY&xzL47|pNl0XGRoc4O4jva+TdrrT7k3t8~Ad5DTXhZe;wLZuP9>PHTgt$7dZVmc- z3_P(Ns0tl;_Gs7&t_N`$k~SKaMK-256p645$#H@HLJy118UYAH7d`XOh7YNE4zo^n zT{Z51%F_C3@|C`Eupy!Kd3c^WOS^Jv|0i^t8B2kV#OSl|VRPG24zxX_-qOJq#jM>A zsOS@$9Mvcu-^33)dyZI7w$CtQ1iAX7UB}%?BfRoxU~wjhP>>kX7bSwRm6&KVnh3Fd zGA-OPnL3v9WrCM9aXNDXW&{{tSMcB(^_olsqp^9#uvFvGmeg{Nu!$R*nD6MZ8r#wf zBiK@YY|a5DxA^g)5iSr6@roUE{WTbY#CK8Ul7}Yy^XA5kY;he1lQ*>GF(P9~Tg-+A zzT?uQ#WA*J4qs?9)x$N_>*pe%8G^SEHhNCaS3AWQwplQpUP61zR9}^nS zHB|fH58tytf7MNHC{Av6jXY8q-cuYWG5#qMn(0^{UgDZ2XHW5gZgqQNxJ$5XROGt$ z>;;pt70=mEJCjz&f5yUP@0L9IOQ~IaYVsg_s@ZYQaDCRHXRdZ`?mp9efWhphKa9&A zThCHH$Av>bz5{fYeT-Q0umgHgm%wVdIwH#{n)5;2J|St#M>Wf!DfI~I za?FjDmhzM1Op~hYlB>C*t0e8A8)>U~5giXURv&Aw zl$X4$G+BH7a}6HxqOM^LFtXNQr>rqmr^UVQBf8X~wA_`p?#;H`JLN;$@1JEO4E1?e zxDYDB2__~ZZ?+e(B{)qJhwGO&+C(=vls4SpgvmaFN6Us+`Nrnd#ujyB+l095MGO!p z9@!De5ya#y;z=Lz6p@IzwlSTyF&|O&(PndEYI9X|^PK6%g~*K?-W#`I&6m?REp0Z~ zPBzcNM7dyF`6j}=rqpfP3uFHm`~6c6tJl4^n2B4*+`DJQcCW%VIZt-(H?B^lZ81*o z-sIWVA?{r3-_?!Wea*V}H(>86VAsfWmt%TIPi#+x_Gno8o|*36=aW4Po_!nBearqG zYvR5wY)>6FeH5QqKD@ zA|3_wuVy#yri+DSHXh^>H(pF1q@L_+^plKWlye}rrmO- zG>TE`Pqs3|4%=DD&M-J|F+Q~LE&`t?(KeM-N6O22+ezkW);eoDW7O22+ezkW);e)_-s`YByc|G%oI7xfs# z<^R!B2{PzDZz<(lg@R#)4DOj+inpSC<+;s@+czpB zE9;6k?oZ#X8l6p4(C2u%C8umct|DKr7I{)_ehKh3?72ls^-4wc{gG-r`C`{(9|!pw z-GG1GG{&5P_Ry6N2b`v-USTzZ|G24o00Iso*95I8ga~oK#^7=C@JO6OH11xkVQs1* zJfTRXM=<=0lR6kzn|`Uzog*^EurAKMu7!5WGtTG2Ux-RWM71WOM5w??)29Z9s7^uX zRU%F;Bih^>9{M9EQsi~q z)&FRUFK{$eN;Jg$Y`EXrua|{|!zon9jcCeY%TSSOa^Yv8{A@k_1u*J}^)Bx~NkJzh4c7k+msgy7mC`K>o)+f3Q&Cix-e zpckefGpqIAHu#QutB$+z?LN0U-)VI^d9=TL=u9oO=JvpM>I%1MP+DFpbg5c(A~f1g zWp#zEcSZ+xe*PO7CH&0Z#wFh4A3)_P?AGe-KHu5Z3be)HnzQiFR+EZ8r8b$z_uNX( z$c0MYTGuYMf!dufZg`J+?uME$&sJ%cI}R&9p1*K;;^7{N{oQ9fPGDPKXX zD}jcXMl^pe4N5V+{%Wgee0^^_K6Ebx`Po!257E#UX($WgPvx zspw9PZr+{xJ8S=->7qwI6`Fg*+;_nfn9@tr(-sEfl+%;1E-ChtK^@oNf#+y94#V@V za)Hiz_GGd{Y51DR*;lyMHdGB4hqW*e+CWB;|Ij+ z2YrA|G&)r*9^$qgvAW$UU^6UX6!{qK%ceM}qc#*GhuXT;qs21vkrMPeeDncf*#FnC zPVAs?(P$z2m^RmdnaHRUT} ziB4nrci>+p#eHZhOUW=&&YUn%EAq74Q+oV(c*0h$U&Iwv+#i4*{M#1$Q@;I&FfO7F zFcXeZ2E)Tx@Mmi$ZxwW|9pjeKip0sDEs>F?LO7JUCejR41<0fXq#8zxRXB~p{&V;<;!tns9|+!UksA10I8TiWsusAIw# zQ}@!O9(%P(l*~xl#oZObxF3)ALDAelar!LtD-}4H=6r{CIj;ads%U-)Jx?LbCth0M z7M*_^v5?JzW4FSncwyhAVc$>nHWgvbb*jI5E$XK%TJ=@hOf3S)i{GgrLlo384I%Bd zbTg55{dCI5V`}N_;gV0Ex1Z87th#`~ZrR29k3i;f5NerkW;tx*&l9ezF-kR2N_7d; zswAb(l!iqO&;E4Lsz9aHpYK-l(o_o4R!u8cp^ueFD?cdz<< zY42WLJ6vl@^J!69KP3~^717t-w{XwcA#@T~wXqI`tdI1qpAa6s8CpkOCR`B?KB^yCu|&Q;wN`Qsf{lbsu4yT9#rpXu%@5H~kBb~MCx zv~+j0O=)_%p{Tp}wsBXQc4T#SSD$wM6t-g=x%b9&-^703+7gk- zG^K~8^w5+Zn$km4dT2@yP3fU2Jv60E#N6D^Rpn;>zu`NM@_U> zweCQh8GD=E7`1p5%J11U(;mKhsMQ<`wEHJ9EpHK~g`*2G<#$@e|J9v}^~TDiw%R2p zyd7_q7QXuw>h%2IiK#=|GknY0Z>|3%rYmi~652c-wLjXawfX$7+>|Lefj!bhI7{9r z`UNF04;P+g(4ls=L#DdJWTL~ax9A)5X9H#n2cvc;n@&BWcht{Ib&G?YUd-*v^=*II zv;}zN{HiZ{$$2-dx67MT-&Od%D|@%d+0LL}-HA5e!xf;Ij&3lgLppP@axC&{Ju>@W zTKXBT(EeP+=GU_|RgDz?RxOg12&)&;8*#>4C41x4g zg8sqzZ7mqzdOwX;AJhz*8x3+#_D4Xe9lXbV9WFy>wOdbwho038HGrBAjRq`*eV4U{ zAJjjUW*NRWImDv)52rp4A7()N${UaHmRE5pju4nfIgSR_)`#STN3|%ey5S?@+WmUq zt|*%!Q?7yQ#iLB|62JPeqJ?Ax4qV>;oQ>v+eUd#x!zHu%QQdtx-f_wL})Qj!eH*Lf=*@ z#+R#O?*T0ZMZYc{@6y6tv!=cNjJaYvD*a-D`vtbrc+{*|39g-0Co&$xQu4;29IWlo z0-oqI!qn>1pds!^Ny+A~wY0$4h36HJ46 z?M&BmQ+$`R2or1qtd*Bs$Qn$8lm}sDW4#(<+F*)z&>xZn1rQ)@$pD^V=#{fA3!+o*hEd!~GPr`Bat76&3i>J-DqOb8g!#Uhhl`^)_g zI|=b<$ix&O&x?Rn>R952I3&Urbv7Uo8yj9TvuPW&hoatOZA>c>w;Bi}?u~V&4XPK0 zz`a?axcSFx^EhJjM2C1ldr4|`(`#t++R5g1o~;|+Tes4;0^V$KL~hY4)8v*du{ZyB zLen=J46x19(>oV=b}uy&H+44E?KYpE?9kHFd;PnZtlbxpL^Z&!3X$-Z7Mk|&XtHkW znr=ST-BTj&8J=vJPwyJRL_enQe&*S`V!Chay=xk|_lfnu%zoc4a{r&lq5AjlpX}4j z)H;2SD7v>*u=Ag(^nZ9LO3ZuD7jWQhdf)}y^C0fJG#bOPtY9ToneL`Wk`aJITl<5ilcR>|gKSnZQjGRc6r}`4=`bbLKO|CG#Ylzy zluB<(weE4hH+e9UO_}mOo*@$GcuL1pI-b(;l#Zu#Jf-6)9Z%_aO2<<= zp3?F3e>I-+y=Az|o^@X?>mJ0PHqrl&xjw%*FDdJRRaWvu@aP4A(7#6e56@&P7%+%y zq{tj4zmChAaLndR&K_Q|Q)J2pU^CU3TqWh6-N9;?y-O7lWY8pKX#;cY1acq;QEv<~ zUOl=Z>=vq*ocq{K;gOZ{i{$6D?YPXUWp_pHz)`LQ?S1)ul`}H=R&M!?HF;IB`LgG7 zs3j|Q9vb5H`tqTxl70ps-B;y*y5)MW<`ahtZaC)$3rhK5pNAz&#zX#2WGeL3C`e55 zN~x23U3mKolmGbvNC^p2%3f5Cg@7S)Rc?||g_+=+`9so04WyzHx1ziU(7$7g-Z5P( z60~WmgO+PRyMfWC%%K)rQ29>i7&|oI>idM7+zPxz(`qMX+Oo5?i&x6^YV_ zCq5TA$}U8e7Fs}{ie@NGp1Q{MFL+!eE&XYQFVH7k`~5d zP@cBWPqmgy!PRCUlI$V6nTB$yb{GIr)Rt1u~#jM^&8ipk! z`P31AwG4OFd?P^~$8<2<=`pIm>K(%6k?q{!D($&C#h zO{Y^4XN{VOb5^T2YKQc4895!+YyZ(wR;a~Q8*`8l=S^twDPS`*K0FrDoFtoejaHlT zwp`0;;_lV?4s1CMsnF>Dr#2P!NLTEvkPyBrNog^%(i1Ukcv9awUywTguvOts+jAp8 zlRiY_Orv^z$_t}t72%YH!QZ;jw%5#`0UqMb*1R8>0h%B)Jg%vW)V^}PVIJS!>`%O?ToU`c+SPzKu9l%kv6L4<|hEI=J$t z$iRI4pbpK_aiNSzz&dl+d*PwW+SDL!~J8Ww;hD~Q9Q0? zG&)z0oDf#?Wf{#C7@gG`_x8Z>c8=>A`|d)Wmq4naiWArLCcfK@n;SLCdX9-5^|@Y} zAPY=*;X48e3frKuPa-v*C_pinpAA|rhme=Yl~jO6@w(y$C2+Tov0fA7VMUL%z~ex! z0jX3hThZ8iJ)Fryd>}P;@RQKEn(gGK@}z(8=CA}mf>1GCg(-U7ctXyq^U#2KhE`X1CuC` zaOA}_JOGKWFU~qo{lnNWN*0;su$$SRCXCPM2Fz|MOz&sU zR?p3zLC*#-&lPCQaVgH;I_{O?R$MA}lCdii_mbWrPq=7fB8sQq8{*Tzo$8mziY66O zja3tjN8U8d|6IpGJr^!R=e4IM-`drhG@z}~3-2Np&C_t~J>%bSV`i6OHd8}=TD48a zOI>=48R1LRewQT=6F=HYpObCbPt^C2b2g9~{48zRv~n5b^^&&I*P*TSO21-I?Z5uh zmD5viw)|YSZV*?m*l(SS+~NT2asf7ReLF0XyLSOw>O8xOCo`8%cBvwJ7eseo!ggq% zlC&Ck-}7wgOz#>@?>*(&e+St361l-i+%sq0=Wg74-M_DLvSr`D_YFq;K-{qe?Awa% z%b)E1WIfRH-t`iL$^6&O^uOS#>9zxG*Rk;^dHTqocw~KYkkx;bZc573CFQe{+)WQI z!uE?;4_$P3OLz|KV5G|a1N{?HwmsQ5{U{GcE?}k9^N@eB?zP%e8okNTlO4}=Qup0y za@7f?4L}}NF57%|FFBxM3dDeXVTP9OX7(D(WJ^nE^kpHJWC)A#xGeLj7kPv7U$ z_xb-1_xaf4&OAe8?#U|ZIC;4*!FwV9TS$%V@VK}4j`zfEpVRy@DL>hfU@lzxxFlzaOnO3(vgncbF6=yr^FC z^OA7gm-4^+-k;yeFE!YIVa)9u|My2-{?9OPrTGJXW%~~;IWznY(5?#5VwBdwSh=g3 zzUg}NPA|~PG4MQN;LL)*{Yaomh}6w-?FaY#6}r3^RbB791c~wg+`nMMyzFLs=p6q` z`73|$#|q~!G1qJogMV~+ZZ8E>P0obaR0jRh3kblt2*Djg7^Q(Os(g<_BK4d_mZgiN zLmO0rd&jRNCWd;~1pf#Qc7uneSxEj4;m%eA7P5sV!-1A(f>c6)Iq*Q}aB$_J!VAV= zVg8_ZIbkO4VaUW^XSac+dM@UPZ{b~_>|Y>dv#{pGz`2*8XTzaGYCjs`{wO^lq$~I- zqdSiOJ^ayQZWopPeJ^{LkOjC`CdMmV&0Lq!Yj80n<}gC4O_%-XUKVL6D@1suN} z!XOjTvKuML7Ij4?O67f2n40en=35QibKnB#XgP|Og4Ie#zj+@yTH|sk6UJT}Z95#z zcqg3tJ7(ZLgXmGrUw5dnVwU18%MlaG-hr)=9sF;FSM0=(Vjru=p0s*X`HQ|1`8}Lq6{e99?tc!T=*l)nm z@1+Fa3s2%*{p0!*T?HpT>Z^-e3B=k=cz&t{d=HiWOO5+mZ9-bSLcmeDrhY<;M54ZO zxM5+yFIn**SA{WtV@y}5{6xScCgCkx(tU{}-UpzpZ@{-nNk8TidG)`hUQGV{HmTJq zDM30xD<`qFB8jCtFin5~Dj=S9^l{!IB-K);;9{sjQgY0Sd~j%@qiV{kS@L_A2=kjx zwV^5HmTphX7%)j-EVUMlp8#VfQuOvxZVUX5V+2Ngy$ZUMtiA+ZpGcdyn6})JIyskW z|2Fh@Vp{P;>_%<+54 z+L)_u5|`>SsIpGm`tlbHB=^-bFC=At{$RiX$>0Jy<*X>&tBban0p7Ms;OlvJ;d{1B za<&{WySp&;=R_8IC#y^5?mYu5dAA%nY_^gW_^Fk`b3xbYm3YWRl$t^Ag^V0cQbxW^ zOq+mg>%|C-J7Evaa@ByjN|4+f$!rU@+(5=8NytZYx16t#R0|C^du&csSDr9i9_pg) zkGgC}V4{AwW6 z5>yJ$7zDo>_suc@jgA-I&xVvPM(^K%+>?cDxp?O%hbNN?Qh`NjJ-L7Q3&9_X%+(>7 zN6}?KNN7(%T^*zw3yB6=l)6EG3qsF_{vN0cE3AV;v5_;o&@lGm3anJrqm1bf(D}E1 zGo->LZ1HvT!a;#6E5PWEB%7ul#YF@6Svl{WWW_xz+rS>>M0Q1Tve&Vd^2w@#uPirF zBklEWPQlx|7dcW#f=e!pd;+wUddZenDVI@!Wg_NfVcBJ8QDs2Ba>$u-iTSck|MI}t zAd4+(Y0aIo`s73xL4^m{684$$H-e=HtIv4lppES?d9ov~yPV`D4M0)FwM&)iD8Ngc zle9HVQwa8~2&O1seAl<5D@g_ExB2mM2qh_wP#x=X<-iMl4QuSbL&>vFOnUKoWWTjI=Riknxk%lGf zR+R+a>d-ZKm{9Eyd-MhnzHU*Qj;f4Zt0c15CA!z{4Z{sIOZ;!wDj;e<+|hU_izt+@ zv*JforXXPC;#`B;Ix^zjC4}GE`nF4@)kS9QDfL!A>(%n=`!1=`Fuh+M`EadtgzAn= zI0MHZkgqiE;>k!MYb4E0lUI;5H??mqck^vn50lb%N2uZ&w%sL(xbhwM#%H93Uk9Xg=V~A^DPjPEwy>X8jeIY z--YV;T7S96+yXIdVex3;_h_Om^H1YjMDdNZWxg}cjBf&QQMr}F`kVB61ygqGJya_d zg-~K{d$a~s_DD1T+U6eC#wt+H+u3I4{#DVYiiwl^jaH57VLFeMI7e#xS(h5vg^bq^ z8$K$)ud=60pxhSSJ1i8c%`okYm<~JPcoq$R2Q6_^qfU;54x{=G>c%;698TZErqgge z(+4EJhiC}&C=2e*`eOa$A}3-C*EN48O-8Eww?+4!fA{B_uJYz?0ryVD#LoMa#!{gk z;#{{mvqh{h5`wSEftHF?be3rqME3qFR_HwAfGST#z5L?xbsZ%thq{6?ZPn`4vFa5I z>-`DsMKSkASE1a5yCTk`bM-YUq0SE!zF|0Xz|Ort#?UQW=s!^OEU4*~O~oQ7I;Rr7 zrQ9br)Hig!53SI*rd7LJpSYh|F{9e{ejP#5EA?W_lF$k}D-wKOq~9ec`l4shC2)Vv z+Q89j=v9`1RG|Ul;ed(Dpa!$n4RjqNxcUO3>C8%vfhrY#Ikk5oWaxWJbv1MCcS?3N zDC8dd@F8UA9LumUGF;U2mz*(5Q6wDT`BK^zy-BXTtUq!|b0}G%`(gJ8WND-TG{`w2zj~I>H8TktSaF45sLwnR;>pq|2fEBXN zp;%Gb6Z9thh3avyBiG0k^sry}Xu#xP&?M@I;&4S$mkb+ipFb9A92ld`EsMu|=Bj>V zJQyQ9sD3>98y&!j9%UwIyC`Cx>tStKuw9xH?u6kqMTe5f`ceW$OJj^l5%0$?zF0G=&TWHmUCma=@>sQGM6|!s`7dENPE~hY_4*+YH?=nx!s?8Y5uHA zLvo^FE(pLy>X3F{6whVA>&qkTB~$9u8ci>};pNOnqG>$11)So-Cy)6XCfrFZ_`FNA z^CFW~+ATJhqZ&zz9UMzj3QL#tm#BlDOTFm6LUPhJLMmx)s=7hl_<4i4ou;yDLNtBn zN19rG_#q>%MBt71I;DYl5+S0bwdp-Id(m|6lGx@snCJj?lX`87rBUD(&*ts^M|X&i z*rvDGiCdf}Tlaakd3CA$ckQ>tsHQ5pA--(0%)$XvXmcFaexT`h2t8=pZif8W)VDFvj-h1yoz4SeU#yumRyQs@s z7XX`|#kO2-?mpGs`o^uLwBj_0=jbKt(a)2k6joC3^dY$a z&~|9AAe{thBtfT1B`2g(9&$N=Txm+K_9nyA$y&stOxihJ*imEuk+RGcYwnUy-^ zO~FqejGRzIiN|Z+RDu}wK$pryq^_o)tTdi5oO=4_so$A1oG$O(- z3wlJEeHY7Kl1SArV%fF=ERljB)V)`)J)i2_wjDpWQWbXF*g~I-9eMWlNyXZ?^;UIe zMgFuWp{j)SFT<``6@>DFst*}9{c^u)KOie5z;-D?@?&?DYKEB2H@?~9;LRq#)PyJ> zKB>a6%GuJ5v_Ge+i{vRNhm7GdLBVII2G8`Uq`}v7Z2&AY3lM=buqxR)TrZfK3i@S6 zU6_0ay8ZWDo}dfMJ4daE!q{spWeAV?L2&A zArU3}xf}SwBt@b81*~KM#<6!^SF!%@+i62)9Yzhcl$BvLi9?oZTX)|WkKH&Ns7r%K zA5w;-ABjxtxR3r?t6jV&z1>GR+<$Xs(%vv#5OYD;c@J$&)EbX=Aw{gg&unela@V3y z`jAbHT7N#|XH7l;Yy^DcZi=u^Ti{^Y>IWRI{|v6h>e{+Nv#1*}{qn(@_CJAk4f#=> zo@-<-x4H0!FNrWkxM}}UWx`}>Akk#www8N6D&es1c0+q~-{H!mM(4(pW!G!e_Xc;e z<@=+F73&8}$2#(F%_c8wA0Rmwl$@137Xa1yxOguqX%5QZFNyA%+uqjc>EOMZZ);03 zrhH#IKG>{&^D+za;vDz>&F6EZYJP$3>1F;WT`E^jg?Quhd_&)B5LK0KvVGfGaylLD zJJjKI1MUIl^**^^$>-wdXJ$Pl{S#T^C+z5ZX3Os{j3y(-ttMDaM$eB0?$3FsH1W+} z@OnVTqW_DoFN!k$?>_jesmVUTILpceXtVk2E_(oK+}^@}t_RraF$UgO@sCSTR6Pvj zyY6Ac_{-vb5RZ(KWkC>cYfxFf+i0-I8#V<;wcz_^!7k3h-!XyWm>{pEK&ls`2l`Qn zU5JFgj4vq9FVw{~j4dP*?ybTf8e0&u*zEkFE8vuKDC9#3$R#ADK+^p~V7gk+@=ahC zCM1U~I6p)@txLsDIwGFPB6g-ogmcqyUIT zSdm)fS2az+!oU^AXb&gPpNz4q1vV10F_aH6Cl+zfEkCJE1m5Eh*6NPX>5hG!82vK% zxAIxf)2|pl-iiM#8~@2tTwg6b_GN64<8K@$wlm@Pn%Wa{*#tAockB>g3m zq@EM+o)p^>;`{eXLh{P*RQ32YSHFzVH*V@ON9Np~F5*?);@!i^w?m_UB*lk^%AL}W zwx9U@qE@`tRe|}U{$+JX+lvVa%F%P3iG}*9f{v-Y5>d%ZzqzO~;A^3h1G2!vZy-H0 z@aNdnx|iS&jw$*(;8}f-#M&qG0^*p9ZU*W}MzvvkNmA<nbp_ zBtNsV9eflj#SP4u;LjRzO}{#kC1{o*2*gwe07`ggVkl{;mu6kYWrKJoG zgIrO;T%9)&uU1_@BuifSp6`;J?*`02C759fbSADylS3n@8v?1$b@?I5`JSu!%H4TF z8rk94?2i%!-Hdru$$YKYf@C*_u$}@`t$iX%I<69g8z4|ci>{4J) zX=QTYDGr&0>;UN`@h{ji1-7SmIm)Y7@;uba@Q&1S{-QEwQhujJ*~(nGn0yIG5qKxW zk78CK%>nBHItr&KD!ErY(1cx)e>R?{3ka)tYz--cCvFaZN^z+y{g6?sTor3kwH92Z z^6swoTBS*tr(jCeM~>>JhWXEuDvaf14N^jk+`V-<3iGkby>fZ%zSWkf>IkNSAgl84 zR)LK-tA8MT9Sw^v@aBm~!?g|JQw7zE9B|s_BDXcTynJO>#~21|sv7FJgucfmTx+bS2*X<#FQ$3 zvA*dtRE~wxbWK6FLZAD(M{~<11Y3P`Ol&asjQ;gkBwSQC0ffrwaR%&%HZ$GQ(9M_x{ zXnlcxgS9fW*;@n^dZG`zt?LlhEV9`4_4I+>R;)p)z`V#$4KzwR)F}daeccI=8olfK+>#Q4Jow6D2{gGv;89FIUuM#q^W@Z zTwix2ANIwqbJU{r#AQTY@!Jco#`Ug|2x#o-PYqApW8a93FxZT$bCm0A4~J4lh+(6h zh8^s!-TOia72`2){z1mtdee7#R0Xx~#V;KQW18qODVK4?dPCi%!G@x7$759|&zBy? z+|3pZLdErN;J!GaG4Eo`({Lb;V%fSr9vlV@n#9Ctj?(JYq~Z$K-O)`@_y}ksOffJA zDIf;I#-gK(if>ySR|Ims3>LW?10H@Yf^k9OtUQ4=Tz6}aYb+=0A1d5!6)EE9z%#_) z|Eyr^v_sjbELs_0tXjc{%J4|b44$Bld&vdB9^c0k(%V@Yp0SJ#7*4{D$EL$$-x?=d z*i^b9{V-_58Bgp27uMEYeGh4Lz|y^aj8n3m;@+Jui<=$;|0JNB&T~(T8RGU`8}|H1 zP>eH~7e`mgQ+_#9gCav_#(&tokeoVrG-XBvQAu;q77}_bT+v?^!wwzx+$G05zV8!gk%8j7qI|`Gc z;S(RUf3rn2v6zfzaIFr@uaXQ`Pt`A-O`5LkIqGZ*o zZPkcSCSkpHw`47Ca+pN5_bzge_PUf&D1Lm>iRU*t)Dc?bAk~&sb)Rd@jltJr?f{>8q!ZFM6rK!EW_#l6UScA z$+0NAuM*Dj$Qjgil~+0X!9%$xwWa1gVLbZRjE=gfW!_6*w`F=P*qtw4G*oXTA=FnahuEg9N(c{>Jx5*h?AnFC&3QGh;i*|w zJX))_W`#sa!p4yw$-rYxsnUsN3s%0HGJk);w+Bw-IjymknAb+F7*vPdfqg}$9=V<0 zzr_C6q7NO1={QWsVLA@eahQ(7bR4GRFdc{gcjGYcTLwY6pD@Nx$O3>GSKmJHj{55N zh+l?p&QA_Q^WlGR__oXyDHng_J8^lJfO7->{{ZqMf8px^4>3M33VhYz{u=*cVVwd= z8Wcb04}7cUqoNlm>JmspV8alXON>4r*@Apy{mr}li()-3L&Rx-$jASAz5QLcSrCt2 z@L$(G^k{mV7o0T~Om$@Q_gR+ka|zPd^X$t17*Zhj6CT1l9OAMV5~LO~EEUSJJW#Dv(iKIltre65{gWx3>ahnf(0$U&g#zo?K#k1jG zazmV$oT)M5t_%XM;X;L;Jkrq*E=J&_Vjto`Y>+uig;?0xd z<9@|{>;COf8834fZze1L{U}tkE7rgw-Z&((yEZ&-Hn zlv+&Tc+~wzw&k+=8J05D-4SEs$*X(G6|VkBfnTN33_{)3np;X|sfKz36D!ae!fPl+lt(Savfa6NaPPdGR zW$aR6%(I$gvJNiECd<_qqK$YA*v? zlfhZ%pxd2(TQKY3Q7ZW`^U1d?A6MC%kd$NftTFv`A-Tw9eHnw$TfY;|{!wD5e(pe5j`+ho@15NF73Zy5Fn3+988GjZM*iTfeEYdPJ77*{cK*709-$zQ zIw+g}!AjDODcvSH%NY1ZL-2EeV0w^7>ZjqXq@(}9=gqZ88 zFRWkakSjF|lMj0`E(BE8xKyz~iYTpBMaxxBfSGv5|Hj^Zbv60-`@Xl+#g0-{kd7!K zH8hdl{0mAI>~v5;YUsU7hZI7G&_XXMgkD4F5Fivqdha1X*zunCoNJD;*FM;5AM7>8 z^89)Puj~E$e6u{ZD$gla=h#$B$!5bwj9<%E5!7lboAbUzs5!A!)mzqtCDicbU$yD3 zKF5%?8BlZO&eedG8cuLk1v1ZfB?$YVGO)X(DZD&ZmKU#57dcVk0z&kg0N&e%C3cqv zAIWE-LUX`real5UT6ZJ5YgmL(at2ipEtJGWU2Z(mw-$Lot}|g%9AvF6J1V=oSWb+u zknyY#K|vHIBJK6j@(ey5N7a24EwraCdbSzepM`$XjbSpx2wbQT;kz>63H{AiKdDte zc|*(QsGhc^Ugi>Z*Rysz;^Q6|E9!}f6RIE|VS8pVX8;Yp&e+$g4YbsmgFBUU#D=_P z)MfTY8XMF#v&P`_jkh3;JF1PW#KzjLMo#vo=J<#(l;VA0lSh2rTbVk3Vv|uo?PH;u zhk)i+=bPt*YQ-VVHg3%>+0F8RfX9F|1whMvqo#-DbmxFQF( zC#I2|Mhs{)3-Yc;YZ{=v4D>Zb@C?+f%U;&K1l95a*OiM-&p7U?RqrZ4mNy0!RUfzf z{+U|`sm}v`gWEN)F)j5#Ek*b z&5Ymk>8++$aX*FemD*ogS8>S@{5YWJ7P7IHvG=7c{+%KI{l%tz0BQyOg$xWkCid1v z^air@83Ot)6az2mnA3`g6{7q6=(|>r`wFz1gn9eDR{WApdw`7EtZTjGcASdY57@1N z`yv!S@bM2`4h;XBzUH?<$uSsI4z(+lp>LBK&K%wEn9wmR&)r4tE(i^Nh#0XFV)KIzYDA5+McxWw8qz8z zEZDWUzZwQI6S(6B^*TK*9K?Tu`hO%5ci4xQDQrXf zBITKDguVPBk$|D>H^k8FNj<`l2Wk{jj2w)LHa=+`J(=k48P-ak3SienOd|C#r4*X! zAB>aK{Q5l<{cBBUXRS8LD_7+NO*+BNqo%qzdhrb9!yFZ4DEv68ey@3w3qEmYd?w{+ zMw0z!rcCF$Ts?ywC+FqrChcicSz=fZQLAqHsA8mTZL&yc29C=VoSGDNNaTNrmh}E9 zMnTPCWFAo_6&^aNP$YvU?>#Uts;-_rt{_+!&h+>As69-Bany}bmnr_r`f&733j6u_?dh4^;PoNQitgQ$jbfo<&l$>E2aym zb-=BuK{nJXt|S#tS^aT19VonJ!?rd;iKVu>=iEc)8rL>umuAw`s5tCE#bJ3>Dh``a zTU|~S4F{eL`HHV4zjx%zsWS%$Q>)evE5`L3gWhu|M;m9baff)`i_B~5kOjKa*!8JR z{@u+h(@NJAwyqga2V#HKLbs9@TeqMy>^{*GoZCKsa9B@`io@0k+k&Sm)R_ZA=Oi(` zHJy+-aju;7$(3B_nC$cpuxUqOW5@gcZs4il8+v zfRL{7s-}tvjF@$bS$08rJ)@85#H`vg?nKx`8eebtCr0C|Ok$@v&rtHqdnOMwUgf<` zGxPGeNdG$DDDz_!NJVo8KAvv{E-zko5hNBnqsC9dC5xuYfZb#{2C3ris=x_)Z(FH{ zzv{wQWa=5D5x+4BM<$dA>C*W|NoJ?px~uMw7uzzqz|oN&<;z_~q9{D0XT{QAF8(|1 z0Q$?tf4TTC7ysqrzg+y6i~n-*|KD6}^j}<@|Ek#4Gt}Ad{JTF~Z2liy%IoeZ z6Q}0HZUI+}p30{D5o7#;Qz1*>eG=7{160)|rSk)2Is&OU{32iXCCQpP@PJErYLpUW z9Pjn!U$OC1qrmr}0UwQm0dB$F$-)10=o03G<@w)_&;&k?2bhrjTxg#(js|`S`Ah-w zhpLbg5{(5b~%w^wL7;sATB5D`9TDVPS5edimlhZcnW`!gyxGtkuHK zJP63KdYTs+em^VRv@P7oGE8(Qys|1pc{enm<=fG zN@Tm*_gemlKlc01zqQs!c_)%ci0Zl>g{ch-Fp9F{i3H_88MAWCB0ZTRMB{0r7av5s zs7JegyhccgHY13y*TzhzcohLZThb(>?3X=Aj-qw>{bcHLrVmRwgt zBk7l-89NQPQ-XI>LN10qxgPez*y#+9aU8FE+=Dxz*J*#qD@QC_MSu<{q5RVEeDJvO zj=1rIug$dK_u#RYJH^EBB+$H#Uk;6*8w3KZBkzvId$~m_b0>&vB+ObSG=wC;Iudk@ zWA*3~`2`XW)f1B~6AS;e&H-j)iBTO9Tcr2^+Q{9Sc&Y~9%NMuO5c_T&{+%|-h7{y@ z7~930OlS1eRX{ADE}|tr!K2gkym9mecoLJe&IfBBf8+QE`YCs;--XqgMHt82rcJ(N z6ydid9%P+L;g3tbqX14-e8;Z_Q}^Z8NOhqDyB)^nb&4s|+IZiwiFFUm6aWVM zjE%whoyk0*;OM1zT>-aBfo}u3p*PyWK~CVZP_bc+cduxn@syjO!Bmi}E0p(qnzeht zxPWV%wbW2*a#1oQWeF1gIxWUEZPFTIrykg2{8`A|hmRKK_$1jqKJCC5D0#*PP!A!P- z#QCL+``Kl9re!oWU z7;TQU7p78eAkM?dcndnq;~^rkz!YN;D;ja@FKisdI4*A zQ5Pi7CRd-na4@{E0trPOWYoyOhdqklS#uKGp>E5d(os;=e43w=^qKJV5KV;dLhAm| zr&U(zoi4vLON3t#Vlx}@g570QhixY7bQZy`G_Yf|KEQp*LD^SEUt8F$Mcd5VcKc-~-8knpT% zuPA34E$6H(OAjoUKdLB^k>>zEdp_|^)wA;b`N~YbN@7;}+}SE7!K(Vas@B1G!l@Mu zN5%cKRcGj`twDvG%GKpo)i)!mH?pepJE}=ZmBjNk5dIp7V2)g+SJtx5i-;Pr_Npc) zxJuzwBep7Mu$=FaWZ+6=uxIVL(%J)1t#$<5cir8U>ZQTj zM%rsBLdY3Vag$7K8r73;B0;up39{7}Flw95hsY);7g43vUH)^WT*nis zXInqZR=FfwN$tKec55~~(OeUlA4!j9z}UqVEMC7pMYds&yWs+`VS5Dw3vOU6s^1Y( zXJT*sjjEU7ZM;>adL!~93%b#litjDdX$P5pwkDp)r`%>u{6+6uz)ixdl6=IbM~vd4 z?9Jl9k~yWAr;ui=4@j$wX8Gf%fFc$u7aLx0DOYMyUkwWKtkWR2P-YD=sG zYvSVE!t88?1;37uzp*sy8d6PKeFgt~+*+jVSHk$dw5Y9uy*hpr`KYR^ zj?urWs0Jh4jm7yiY9obQF)!G!wrYE~3s;9**Zo7pwXv5lgcKC)A^8}PLyWkQ$SyQG zx!bJ6d!lFJsOJt%w<_`8ym0*@@Y`}x&+d`wnwfhqq=??AmFHXQ-Z6H#%M%X3oge7k zKgPcZ=_#Xfag@^mu~sms*x)_Pc_r+&=D9b#H{xVp^3U!Fc%b>4*MO}pp@_Fv3O%MQH=Jf~H~_#V^o#|)!L&-_ZQkIc-;7&_ zj=lUf41F;EP-LVW+LQN&_ZTvYVhV~CxeJ#YPn9N~eMzjdPv~H}+f_UyIYB(7Y!NT( zj2DUYwM0$yMU6C0wtXs|9QGm}2n8C7un#c}G@J}+sf~=#PV{pSmDGntd!{CUQ*tJw zwBX)|u8w`r$xpIV)y7kz@254#r{8hRym`||DjwfIKT`spVMWiht@R$hX*d_HHWM{9 z44h%so!&VfUSF9;cK`hD{Byl$^8R}NaxwNur1KsgnM)j@W3>J%^0T{m@X=+AzYZh@ zsxQr{7%HbOXa06mCsX$Fu*y`)bv!ESWJ+LaMz3B*iK3<)4OPG^7zno9@t*c)pDU=q zt3I1SYj&G^%e=+&zV|MA<2^@vVLTo)cX6uglY@+9+BIv=Vq1q%S`h@rVQM1c)9l1r zkDbF$?96Fk&wz#2>dvpJc~y*fuL*$H#?8URskPL@wV9G+Di<4ASN(ps zexYb-Syyd!YTbHweUqZHEx%!Cu(7}X+}OM2(7W=x!?lz34X^ca_nVsp`AsqocZs>; z)ciGr9)u|d$;`a9Z8m!ymP+#8x}UJc>Z8Oyy~Vh@b(i^fo;+n+X>oF`XN9*nZmxdY zeQ5jPhAMRx_k;M3I6_6jXXhVhFaW!v;|h_3tp>iFNY&X@?d4O6*;U)%(^A;gJl)l1 z-qYpUGobn~LO>^G?ejeFxaK z!s-6AjXgK!eP`^xBJ+X0=z(wVzPAF&by}eH8z~e<3dfQnr%C^vi<5i~Q(%W6>>-5f z?nkZze+$y`z(MAQXtvLO5GOfbZ?iz*VB+|on2VIRLFT%AR3Uogf+f=-j;t-n-?0bj zK1XE=$4wT;b$UlI$D{U`qXxur4@HlJhV8yV93YraI%4(*PWQ5~$1S}lZKucey$4eY zlo_rQW4)6qY%la*E%Cp(SmAWn;&k8Vlmt5^Q$u7d32*TqT;=V?zL{si=dTOe z-Hx464!kD9neFz^{nj(A+~0NyS3Y(GackTXcOQ7Cnt0u~`bJ85j&`EB-Z)R#lWg4> zz*91sb||wiO7z{e6D#N30g$$%Ob^}nyrDD$9}}kV@A)H{%525vnFW~ zbtUsC$d1S3DF!5B5u1J9@J6>=+53c|H=6Q{sIsN@e41|aC{)$@XeHl7^r~$2=2(Le z8#WSf_iuLmH#`38$bTLAuOt6; ztAY{(UyJ)UL#*X2Q-)O6ohNvrmJOoEd!ruiebhN#h`UHuDGGj?J85HG+h#JNn7xPi z;9?u_d%Ts!We@&c=l$Cq@^HtkC)xc0zceH#YMZ92Dgq`~`g%qbhaJ9WWb}NncSIp4 zZ!MO-yR=S!`hAkfdys+fav1mwo;ntJQJV@~{VFOuzURGF>Oq4T!e+xT^w_5qa;omeYHKd2e(;L*C(#TUPsRoR7qEC zy}lv7nT=2G8g@)h{sXcQnR}}Dt7ll_HJTN?U>79W6~eij)6I_2biC7XUGiFTFWY=# ziBvPg)Naw)lP^LwS;O4;y#_JN3cr`k^#=}>rSa;34_N0h$r6`(RgN_sIn)5Z{1>n} z8aL7=GsOXSjk(UhZpwmg(86yt=Dk^&+OO*%;Yo!QOi!Xu-R!iH+u9P_Qp+b#^pUPh zt0U(u$Z%_6CHht8;H~ZDTPI8Qc(S99+54Qt$DJIKp7a&QbNC^nbw9Lc&{dW6vb%{UA@kj!B~*$n8GofBKxV__SK;ozJ%c>ie#^`ks;UHm>&F zp|QS1>$h+KyiW4Iz<-4$)X#bF)42}6Ys&V_w4V2Gxw{^?Wm|qNNw!J|u}n?&hg;e_ zQP&qGXgt2{7OG|_P3zWI<$t**z;q-a_(34^sQ>lv?orPJk3R>}9R#H0nW`H(>W13A zxNZJw(UU(vsNB#==#tjmcfR7cZLYZmJgg0xkoZo0)lEfYUe{m)QV?Hzu${qozWl&1 zZf|TBzo#GQza*%;P*)?if<27_C_IuOP9ZJ4 zs)o5qhVl}CXLG~8EreCHd2FbLu(}3`CI=a`1iFWW%Z-LKw1pckgrCU`hww#cQ1P#tWan zN_lS6Mt}PlbH^&+(CzyI$*VRmn(0pDIktK4nWtgF;Lw-@ zerbSvoXbK4|M_?>=>#$3gwIkxXgj2|tmA=;34G@hW4ROcmqO$O{59@K8(Sv`b|mu7 zCMwY-i3=oYTfd_|2mEa8ztEU;?_xqkJis6CMTP&vvvES^assjxZu3q0}3LgYYR za&?8rSNHeP#!{ggZo!Ai-eEF7;3+TilG>l72I{Bwx}}Dtq(*Y5NG`=stAKL3K~bF` z5>1Lv0LWA$h4T`~XBM={2lfs~j*C0Ae!;nL31a975ooVHfM-lS89L+Mz)jkVxaFGlyw7fwU@P=rbB{ zuoE;r0lMrC-Zz%oJcRuW^SG=LjZT#$2?UeJV3qA@X<<*#(5G+Lr7+2W7;V6oPU+H; z!AEd&HdYB{GVJPj>Mc;9m2_JC`Eb{<3_W8&uPz88; zEO(YXYnJ%9+XWj?gfjS=Or}s*R^(2Ww#OMI`j|3}?BEaC_cdY1#u=|!C3VPIdId56 zm}Ge?=M3G+{D71(UCw$Vlb%AC>&~646PEp^Gt=5BR}7RJE0t{*p7lG!``2i!m!R}_ z6EQ!VREm*IGR8Ucm=KK1ix)MHm7~x0r-uj1KpjCjJTlRmsrjypF_D6XKIHsIHevyq z83}^P>Ke&LaCjiWCwdtUMM`A}ij^V3FKrT2Op;maY>Gk2Fl2U|j97(cZlX>8z0mx+ zabM2bLb2h(QgUJWa#1BHFOO8<#vMbZ@y`)V#ew8T$le5#%$>tepTZOi1l6a)izSiJ z3DC1Syc_?zs ze;JXAxGpFr6RvXcTWJocv_!H@+@NfsAnIIh>6i(mqO)wDK5F)2`HV+)lFf4-6vc~q zBH{}&=^IjJD)iPZaCt~*`Pm7;ZJP>?h*E+4iY-lfxk466t#DWRz-O$ADne{(5tVB2 z$`|wsIurNw7^-*$tIRd47U*KHeyuVpEN`+Y(4MHW|7G@IrEK>>UGl2xrxLC=@Gt3)w1zTwJnFoCr_0_0H^8*z-Wj(ILxG z$Vyb*;aFYuQC(TL;oGrKsqou(&}{%WGh3v;<~;xo)Sc6*AwtPT$%r z)HbzXP3KhcPh^`lu(9EH8#EBLJ&H^aYEORN{=u%jC!*b*9Zm6Etcex^PxX{-aPpdy{XzbYEpRhn^)HLH#7kvJ&e z?OJLRZ$A!SR2_QMIbimB$n1HiS$p@f%g?eN^`Rd2q?TVmrQg5?5D+hsfDe|uyNXj@ zUv*z$@8uWoRX*RnFRa+BZH}<(Eh~{d_i3?p*l2%d=TKznslQ{7j$x#<8Co|JCtN<_>g<4RuZRPeP6jY+ zgQ*NH;utd;XhwVCfPK+mEW^MTKnIqs?TOqFpAP2Uhc;>GP-jF>LQ(x=vp%Jo7VfOx z2=w67kl}bseDuPwEPIOyN2e0R>OFOkf@j1^XXLG%o1I*{0~4g)4mnXcBpfyRHo2hy z+4SC&S}M1-+Ex0>RlVqGXfD9X_k44IMYvYnYBt&Ty|^EnGr(B<^*yxb?$6OzU1Lm) z16J>(qoexWIfg5>#cX;yW245Ln0mA92XdkaA5HOlz|q{E?!AfebHB#I?8n5+x|V4O(w6E;(7)pqWTaVSY0`kR`HmE z*HAfA#Ai&&!#9)sOp}Y4kqMFSa>XB}yw&t$Hqufus0qT=P?;-f3;SE3T2>*~Sr+jGh}Ouo3L zM=^e){bwgf;J zrR08Y>MuW+T@e)L z^EJH78sVYsc>P)`?{D3eH9p{6gYbHT!+e0%`aSJ+i^BB<{OI7y`bOICt%n=U>+|G~ z8)u1YQT zPwyz6?mR>6DCzAgBLw6fcQs>nReE>TxVA?y+fOZq^iR7br*~hR&fP^kd@Z`OyS_IK z+|%pbyN}(IG2DNT-KCCD*iG*{obG?&I{2n=;B0a5f8V4yJFxvKX8$c>`?I6-8w=7u zR89W069U`OMeKi^CRr;`9eK}kofN6F_oJ6&;&TYnBT-MQrTLH}9Lew)axgO)EJ{w~ zBFDmZQ@M^13P(ncN7=pPq?n@*KKqyrG73v>nI;!F9-~E%nwWPiu*Xj}e5(DqP6iZC zhAd7-d`<|klX2|H|JbBpK6vSK+~`Q@ilNkO9QPn7)KsC>hti3qtoI(j+c-*KK3-Bd z-4H$9`p=2r|D87}IBx&F6!$kL{+ko;{bk_44E&dY|1$7j2L8*ye;N4yGzLCv@ShB9 zEoLG42XOxwuu~kDM%*I-N*r%zoOgg%aK*m>SS5b%dc3^xnJ207_uXRR0^w1K=M<%)GypA#_;&*2dOO2Q{M-q>b9p0q&UVbrMBKqqOx)AdC>h2sh>kY!C9&A zsSL~uBF=)&odG+mfr<_RHHOX{jbP;GDgdpf z+yUUnpi`+3f;6ar?)zZa(_uQzW@|`|0C-~ux;_T^8RjtFnd<12_C6(TRl{?qQ*mPq zHUm#X)xzRGz^KrB1|+uS4xx;}=(_yB)TJgXr(5->FMm(3tw?9I$@qAfUZnxEIUl~D zltEjN(du-D*CUf3l*u=qeA_y}_fWF34m5WMbl9mN=#eGRm3h%R_UW?ZW6iV)=}b8j z1u2tkn)IwFwP?}htU|tY#gy#(AG4*xvo}M1v_O&y;R&23DZ1lIFFmph3SwT5XXX!P z&%$%4+-({zXHk&(4w>{&GdFTJs_=EJyMQ;%@7xDjd5IdC-l2JcPD!&JmXzm9Inv0y zknud_aquVi_&*-3mP{VYcL(KjH|L3u=d4NQzdrnf!EqjW8Ayc`L9rYp*jv-hmn`XT zk}vluFWUy5D_EG1%#YB3`z`~kAnLqZ?Vf7NI~@t8h^{K1f_5>32CKv zZs|mA?oFG* z{_|xEyk)*5aI=Z*ZInGLTNJx(>DwESMfla&WdLHz*` z@c_{$WiBpM5oMe#$q;+>YQ?ZesGMn~m4~9J5ZiOD@XJTpujm!DChk#(h^^_W-V0VK zP4MD#DvmTQ)U*)Pd5TxIRaXj<^tu(eR_yMv8FNpRi$AX>7nBR!u3n>8uw}5bmwn@C zTHz*CW3E+m|8tG3ro8jG@40`f^{jj><_jbWW9_qQjXG-QN3}GCO8A88iq-1^O%iDX z>kh_r{Z=Zv#%t4#YNb}JL7owi2zLm%?ngvzCd!NUP&e1M?(7XjrB*pre9OU)3c=MF z+oW{U^f1|)>?3fqkPn=#t|Ounr&-p$@)XJD#X*t9yw=CGyJ83{s1qx`Hz?GX35-R2 zO?eyUclSGAp?Ys{eQI6(NH=PoL44lSW>FTatdC7~!IEsh@UkJHd+7HQ*fCTUm3z+t zYc2pK^lf<>O~V=3C7E!%%)qLv5Q*!MYd4E>SVuzb*jdx2 zXz9Cbz-nQ32{PE~n5}v8B6dOuE5ZIsis<XeSnOgsCWO+Ba!=%YstZ zu0(XVOfkUM&b3Ahwc>;-h4<0_L{b5`#eiK?GqTVeAU?j*+-lO+@)|9Z+XmhB(LaXY zn{7+J(EfZBU9Q#sort6&aYJD{CF*0l@oM|WOC3Hu9Tt)8dUhQFfgN5%iKOO^5Of7l ztMuHX<~WEv&dT#bT&H_wXGutB8cr_#7@P^{BItJ|0lV^70R_0y_j}m3i1OlN6@)N` zKfaOopYCey&hz_Vq}gjUyGjjJg8gqb165jq?PrP#JGF83+U7~@xVu|8-AY_Q}8L14s(6kCrUMDu4yVko6z~6n1pWkZV7k<{B zRP`Cxrasb30mcTcSiKc)*U;{x+3o!T>M&unW}H;IEQ0Rh>w7KHf6bu(3Jw=YU7wi5 zUt-F+a?)=q-1G)OY2oo~6O1ZxGi(<2@)$$9KZ@#iYHKwl4y*}@Kh_zvCOSWb_MrsZ zq*n*5ScXgm?2P_h3~k3*^unopu?K^r(!}XN0~KKufNW~2S5{qaa>DhJV!&#!hSd} zYM8HPJXdbKr1)zoRa%MT-=oH~&~4A6iZVE=WOUkSi#y%{(O9NF7yBXm(TRa@LZoBM^v~zchn*n13fK-@(hVm5g)Xvo2izb#v-FQ}oZUD7mRn+=+evX8bS3h*A9UFOHrW zZhXO4xgo!(2_a57v9v;Q>OUce##88QeC2FF{)~dwFKwpog7bt*Ad&J$L8)X`*_=0V za^yjpoFP8DNMwR*eNH_(hwt*xCwzW>F*^SGFNfW^vavZ~?|CJf1snN^#@Tu6j|-F< zdk)`zd=?u038||e6-G-v6Wzx}d>3V&+{K{|BmFj4Wi!o=Nd5g!?N}>8f zLo@~}zxtYgwM`z~nzo7``SqxKl|y*WiD`{Nc#%-U58$P&~FSppHx7d66?rrehwV-U@ciiUj z*%pLt3+wUoZ)^)O?}#7-MD=zaJMKJ*5m9H{;-cP*!)^fdh~MnDgp;?fi|zuE2te{r3v{A1(Gj`|Ml6_HD5H|DA!4 z`ge_)clBWhrlLE*m>sXv9cAnRH7E9k?HX|HxrtI=TOEXQk#w2&UQd&P5eG4jgan_1 z=$ONJ1ZmlSFRqsq%SBETC7W0rM%t4(W60d62T%(#h?$(lbyRYCsONYHK{!?Dk;4$= zr&yA#?m+|Bag)Mvi^Xx9&v6IrxC?uXn?A<3pC0#doml&jkg&r_=EHLA5yIjq4@>pn zqcO*mVeBD#W2YE#GU|9V*Sl96Lz!hhn&CQK=c4@HI9YZ)orF;iPbowgnY8i$;!+$p zOOm+ppY@5$#sxPHU(R$TiyMz?hYe=qV*yI!Ra)_^7g3KtT`LY1&(=zP5;X$!cw&Qx z%NFjV$xm$iij`5fK8+g)w3P8+dF4>M8HD_^Xa82de=Fa=mG58P{mZ+5dG{~x{^i}j zy!*e%yIAjiNiWu9YUR6tJtA59gth&v@@@B|N$~j}l`pLVJwbz7_EIZfOoHz@bw5V+ z@0SU{+o4|9YWR=$!cUrI(lA@}?N zm47PVpAP~j&wD8B13p&_B6-|~FM0)lT<`>Ny_FppAO%<~c&+kLC%WwF*f89Lz4|^TWmOWm~|3q<_v0n*akp*rn*f zmgrvx^6jq!;&@_~32MKrfZx5fN z{B3LTha1W7Dm*+v$^bg5aq&^ypS1{$INqJ_MT5~n`agC_vHCYDammhc;?{8j0`W@R z{vz<$AcBvSfT3ue{Zr|Li(lfEtiA8>OFtZowQY}La!F`VO?YaZpq(15yYx<2LrNg?PolU+qS;~Mqr*1``H6s3ML`YESMFhW-XuPaq$frm7MFf#3OvrGO-zye zk(>ZIA*s`O|m* zOa*_EPKEA5*AF2})Z5~8NghsV!=qQIjJpF*(cMj>(51Bj5#=_1a(_k7f ziCx%fSh`UiH2x!On(ykB0`s#b&o3{-SU_SN^b$F4oLnAa+~Ln@zWm``!SGDK&L3V& znXz>q=fge17VU&QvINI7Z`Z|LGf5FENH6S6=K*Dy1ZJsvoRMJ-@vX@U%mQ(0q$+j6 zJ~(GffwH+r^`Em!=#D46WX*U&Z)f0<^|~O&XgsTWC+oX(*b8#D1Z%GJc*^Gjs71KU zl)8^`T`FCwm5_~?Cw-oiNv=CGesR&7BD0iqm7w9JDHb*k@&UP8A4;0u@kx=4F0anN z{{dc~n!~T3{{xvM)DEw3&rc47r0S@(W$^G6dl{ss)a$ps#{y`7#*==si*o?>|DRkob1f)e3mis1uPAqC_w(4BkMAYFLESX36u*B$btJ4Z+;7!;}| zEtDtA5F!^*s-Oi?TG3H1gsGSYt1%=$)yhZr=C%#us%p)!w6v8L!Uh~^S6Ig2S>uL+ zGqafhwbI@i-e6J&EJg^a zOpeR3MZP(zV+*S*@GSTyR90MAM4M2eIH6l1RCwf$>Nly&U$Mq$q3%W0{4zo3%9M0Y zpt`$@dt_0)TE+c^$U(|P(XbG5)V7G%h_iJC6=zz5IjC7hVm8$3XKm`|Lh6YH^%L#& zL(BF3G}sY{;X1Kdnh_;;N3$!U`O8uB54ILH09qol5i0Jt&DUDn zg)$(jzs6as3#*$7YrI+YdZqRG9YFm<5l}huqh+MJHKU6K`kVb~8_#0vsyM<4qBbE_ zw*INs9iU3Be8nFhw-c^+6sX+|)K&||i3dPB`crD}eom#XMVRH+5ISl}o{b5|DiL<= zXK?XgT;~rUx@Eq~n7tt*@;OwyZB(EUzWThdsO^%C8iHM=jImvkp{uH>D~niNd)z5> zp&DiOyapg155S!p>JBuO_m0HfH^3bRci`=m`|Q5-0D7(&^e8&v2zEAAo`ET=wJj4p z{0T8;T5U^~ZNDKsbG5k8o9z=wJjX}8i-xliu+Bud_m=yQb+fKbTsax2v|E(BZB^)t%VeKyQNOBP{|!c~+j5q7Ir8&H zDg6hGNKGK{CI|KMoUI33kFN(C3AP&T?r{)rHc1#9g$z7qvXd9-5o8}Kml!&~-N$O? zq%Lw-b21+@Iy9>ks%Jm=3~4XOgcA}$J+vFjNgBSS-Tm~WM|@&ft4Hh>@!l()5qa5> zY+PSmWQ*;|2>aUbxgR5{Vx#o{&$m&x-0VhP^o+U`4_dbj8uARE$sA>PGio{cMgij< zY~LMlLWpJ=D+P=_XCl1rY2OPb{EU4RUYreDD=0?~Yv6{(>_(+9{oStyny!u;E)Num zd@nhO;gd}PmFX4;fzLV9NONfT^BcqSb27}Iq@ziz4?&IJG#+lN@U!6cx$}y^zccZsh{8ErZX`L=e#9E(yob` z_X<9oB{nxs+0K@&MJrOC(?6WNmgaT$VO4F)?`f~!LFnIby17-6xgzyBOWV1~sJW{A zIi0RKrQ})W|Pd4^#7vPZk_> zr$ji0y*a0ryn6g_$3$m`-El|SXPnn!$JI<&)n`{7wyTNV)t=tfJ>7l5 zwf9nC&%k2uwa=arY|jL{ccy7o=3obKx}i9|{dQyL0e0szVn>u~`<>6Gl-|B2cK_KsVU zK8H#h2g=NcHll|fy@%gL52E!Bfu~!+dgMGuJ~J%2XqsGdN-pI(DpxqFv^c8vIjV&n zA+bkj>@M|3Tt4$L)Z&np`JmZ?`~*hM*f{jzI?f98IqpLIxjfgccPy-M*e7~C9CIwk zb>ek;l8ZPQ5GAK8P;l5oyai|dMxU$j}S*nLU4gFg!l|6#L?E&sMz z=zq6aDRp``#s4RpJ^NoaYxw++&E5w5+h$!g{@84Y+`nzMT~SWTNi;=Pw)T^fx=M15 zf?BN$RYO%e9JNSq72Fj6v3ke28`$wWXoJ^N*C0rvR_ecOHf%mfpI=&^x|FLF{E6Vk z+TmeJ2*g+XSzw@!KRD8UHw%4kB^BuV+hu3;o4dM)XJ`P0EUD^42xurxBLQtZSL2`#wx7+s~tFR2h zv(DR!?-s3D_&)*Me7KD?GcGCIBw63>&=L#vm7ulx+~F6n7?ne?H0F=?akhKfp|C)T z@~Vt(V+qMNh`v7LXV(Elbc77vi2mgovu^cmUj2tF$&aQpu=01z0?iMH`5))+#1xLW z7tO}b8J?joFi>rl+gj{6#m|N|HiqDH_l~&50mYkFI{rae+zu&5s56$y%1>0laETP@ zruJunLE? zd?icbYmzr_MI!H5VsmZ8zPc1ueLm8~YfF1}HYbVk{|MBNiVyWL3`yd3N^aK=_c)XU zN=F!mh58zc`D=)QQ(}hrBZHRWKOY8#jikI+PTAm>4jBvc9;04;6H5^gi#be=A567y zkC^_Hm>~eF4@jmrP93yzo689MF8!)z%=uC&7(E8AKLj__fph3UDg2>SQgzZuHHW8c zu>7%Ev@|3%ETQet>sl;Cs}nRwp@9uyCrA|Y`=~e-ti{b9^?!ar~8CNwkUQpLbxl_ULj0eaRPEaPznasV8^x%LDDnkb>Wp3nU za&~3n_%q*~&nnFaZ9V{tEq{?1&ycc-lA)IXg#VCVwh%Y*Ru;@qG4a^GBRNTkWiU>< zYLvxgBKATiOHn3q2p-Sb5pSrO{E5};ji#72C{PBv*@!;=Cv^Mhq1Lv5fVHTgT%@VtY3S51(l zd+a58*vAo&v8(SbcwDPM?!`M=nFZGOj0!@Kc?n(b3uOvU7YgF&3)AVfE4m79TNUC0 z3zt|5P@1k+77GK;7s0nT{oDThP}uV4gRI_FD8$*N%9B*=eZJS&+Su|tj>W_@>1kbUUkc?7?D zwCucRQ+)3;2!<4}`loc!rIZ3HZRwOsC8fFjE{!oPi6bFy&=oTlvfKuj*$YIl3neOs zN!*kzh2AV@&ZCrt7?oSrmA;H~y4zSTB3qtETahF!o|UgBvEq3}=&g(_IE}AFAp)qR zWueTLZJ32n>(17YHP-@{7|&Mft-R~!uev4+g}{pqkDQE!-spRlbK6u}F!-!5C+XOv zoD(Xv1g9*r`bUv--`9O}jHoUXs6mk7jRl3S3~o0IYH~HpzRQ;S9HqAK*9M@Z7Tjum z*)qdD3xVJwy4l(_`np)pqIlWdE}OdD<#LWA@2HhJ;qTcC63FbMJhpJxd@!;rtl}#w zn{O0Z(w(1fTV7uHwbB$-TUQ;;lKi_7g+L*#EUVHO5K5NlqzLrWJalw7nr{Ie!hm7r z!}w6NFqcQ8n1s;P3@DNy@|ITJy%tO|D6ekii-1tt1+99FZM{`$Jq@yc^(d=`tzv=( zD}H3U!%(${s&Eg)PN1+1%k?vb<&G?z=Wy65hSCj7jB5nu>_UShL*pKAqor2k!skYd zh{lQBM#Jt#{Og=fP{VmhPF@X)XElcx?amKrazi#@O>37|ngnL^goT^8w3_)pG(V0k zxGHc(1}FvqxQVd0oTV~sa=!hC7XH8%$b7TN9ZhYYJpQQEdpNSF8%~;c_;f;Th`qi)%Ka#_FJWjXSVU1b|G@F?VNABJKBxnY1hs@ z+wOxa-jfYkSTX-<*0EF(#XeHKg({CEb~qRL`xlw~?5>Lgbk5Fpm>rjuH+Civ5d^o+ zb7vav3UxuvI`6i%=d*Ve;N;RG+b%J-mI-$kX`}58yFdLht6`U`FsnSj-A%ZTQ&#S1 zF?(AF%&Zi++qnv8gE)RZ!Zls*xm43JR3zU`OdGZ1Oa%7~6MuY3X(^+(o?*xT?!djJ zY4vx;k3;apRjXCInsuVwFTl6=!u8&!y@dfW^tP>YtJcS6vJ^mBC9o9|k)#~yde_cy z$F6pxrq61$4;0jVIH5bo*Z)SXKjpaZ346a|ojbc%*RA3Yccb7sl9T}z;emT=Zi3J@ zd2oL&%APw4=PW*urrx0aVbCFP@OE8825OK11jq!Zek=QKzT&|N*O6Gr z$k$2i^X?zEm~O|(Zd%}|Vid|oWYlwED350NZ0)FM^PqJgVOE{c!+tj)Y7__=Ot9~Y zEDp7YTECRT`4)EzV8-r4`e4O)y~zQEih+livHz>KyZue00N^-2J58NyAto~#9ndXV z8{`#Q7Uj82Um`Va>xtcxcB}WpM3NC4c3nq#-{HbbNA5{&pQt7(jK`+b7{K# zvnT!U5BekRo>A=q`tamkt?MTD7ygLvj>G4woh-%tz2vFDzz4wZvi65%_bpkw$0As0 z-fo~R=gj9Ohxt%>XQbz-#_vf|1^+u4Ky}h_y zsk7YA3waxs&L^DaVwtx^)wz}Opq9s@(mS6{wLNQW^9{`$4z3iG-XlXCYhVXq@p}!S z)2(5_yWt5Thy}re!Kts^p$6lF+(!6hhZ|tp(?|%`gpF4t`^W5Dapb-J$W9h~tQ+2B z^wjmhGe?)1TDUD0*~W^Rh0(_mXjBt*SfaVfXejP|4TLY010VLxJjPj>u8&IVR?V%x z8wcHcxzL<6<}d`M+66M9jV&V}*s-EwL1)R>lyW}g(Din&fy%YU!>fJOn>ZowGuymI z=QO1Dd_Mle=07f8s0wcXTrcI%%k)boas22f@ljAwwb|WWkS!VacZF{1I(`x-07c^0 zo;QE9C7PEKHWvQ{%It*d9zS({ig)HEXXA8FvW53oE0`QRljO6ID`L+_GUUcM++sn5 zwMkG6tk6@GR1{_%kEl{z&egbaVt_e^jNcjB7sDu0ix^cX(7aJlw4stElvH)bUQcJ8 zrXn-W*_YPwZe30`)m74G7t-fyFbV_P22_vVuxISpb1v-C35;RIXh3EMN@B}3{;llH zE>Wflh%=iauTYT|b^4I7+TCWJ1YkBh+b+*?_1WE2ybaAfWy;QinJtnu2hG02#sLw& zSFM|R^*=V-4Xr<#-ZC2Ava*EK^%vzCDT>QXxZIWb7|jVph>J(OA;I_P3AKp$)J~j` zRBaajf{|A;*83&I%a#1w_PmZ!IBxCz(v&~XE@&W6pQIqTPZ;ItZ>@!4EAgGFaK(;~ zn2IWW@wy%vqL!|S@?TZ(Q{UwNwOOcStCSu|Zx2Al+oIz5RZ;08v@r(de^k#uq!z96 z@)A(`o?Z5`u>mzPuP@J`8=!<-1PWm}2}5OsU2>tMxl(Qr6>w`NrzZ(2F(@ga*8gqE JcXQ1q&Oa&U)Oi2^ literal 0 HcmV?d00001 diff --git a/src/Documentation/images/rigidbroken.gif b/src/Documentation/images/rigidbroken.gif new file mode 100644 index 0000000000000000000000000000000000000000..036608ccf8e8f67293f804bb5428314f2ef0e5e8 GIT binary patch literal 9494 zcmeI%S5y<)zAkXE(?kVjNeL*@t02-8MS2NUK%|RwLhqp|3Q__Bp+f+vQl*9#5Rgs? zy@dp%6B59LUczy$wa-5H-aYQP4|m*`d-i;pW6Uw<(|q~;zfVO?SxVaKGo?Kxk%Gd( z-TVCfoXzNbOyT-t8+WRfHGvWrPdZudCm#*kP#2x2)tMYo{I258-)vELR5_$DYO#7+} z22w<=`!m&Q3XvI7p18Tbnj%#8^Dt^Q_1fZ*Jk>;gv;NwzV?{c7>RIY_B@?BuY8)~B zb){34mYq>-8ueu}HTGjAW&`!*Xt>)_f0hQk0@LhA!eIvBmGf<(7ij>R4c~rteqsv>iNv60n==(UKvOgcft-f)~um&6rusZrrM3MV*OHcWK-Sd)Hmw^7nYoQ0=mI- z6N_wyZ_j@ZqhZ%-Y529&nwz*~#J8F%+t;?fkrfaCIT{(w$UT=oRkbh4;r#yB5N3D5tW% zzh!7|^^wuM_-FWK+uolM9N0ChPY;s)a>BR^i@yYLR;({ZkJepVih0D$V-1m7?L|Xm z_NO`H=2u!U~{tx@0elIh=#FLwk(XAm^XJVhP(Qn?r(1AE>TN< z`+j`ORJ8nR^i?Q~)7VOeWw;=v8;{Yuw~AmwNkX%{X!FAEJsv-kok*xZn<2 zPN;MwFFnbor2ix5{3dTGZ5i-_EByO4_2G9H-&%CjK}Q z8j%5d%`=oTbnOD;WejNNZxmYAqAM7Sv(R5r&R$I#nDH!Af}aqeDpqH4QPf)r#N%^AU<)(F&-O46jK zeB9Tk6+lePp|#-=@#sUXwSG488g$LLK+sMt)bM(|{I^H+LcV|OD`VjFj&AL9zm17Dq8v#>U8B{#_SxIWa1)n z*qAqS(W_A4i~+cllbF1us4ngBN3QRX7)*tnwnmL|Kp8BK@gB#_emvgL_Qrb16Hc$o z8yum&Tw-*%Xl5@$cRWDNH79YI0{LDSUqapN4U;KC+ zrkG@*pJZ>~?_uC?4*R_}BiBL1E z>_Vl_J}Q_r-H!PeW{(M`P`w;qA=I3GyJEc)Oo9?)11vg)kfY1sx_g6 zLQCY4akoo7cUG2>#aY1X^zq@xIpyRsbqf}gp8JNOb&z3k64c}xVNwebH0-*`XnKXt zNUIAmY8{qhdYMg93ke+d#4ws&1j2z6gkcZQ6pRpv$p^zW>^;F~P63ewuAHI#kx=vV zGPow;Y}8km$%5Qsq`8Mg1$9C#PVrM3XSYWJm6#SD(xrM{u0Vw}Ll^Ye8a(KNC&Jj7 zewqURaKC+h5_FRC)5h$T8(Z>Z#NM4nXV4!ZTz67zj8hlov;2aEDyE__OiOz)uUsU^ zQ;>;d>qvs1^Hc1!v(q2T31@yzO5~yUbsF4 zRYah?_d_@EOPAex&b`;ju<+gNJySb5U%Qd|_S$3Spc<7p>CtSMm!*S~!K(%M)zLwCelGCL zFu=2>U>9$1(o8WHt5;V^M{t&PK+hT0!!s^zxiNs})cN6!5ISebj6ddW_g+cjfs5aO zF*Y>T67jPf7bxyFzqut@aM27$oIb&}!6ZFtgkfPcf#Zs{etxX6+wV3_78i2;I?jTg zhmvF@iS3Rswsi$+N==H8`td=}FnC-E#U!oH>*5bZ5m}MIuJ& z^|R)!!HRvx0tBI-MRu-B;GnS-zU7l5f+mr3;iRV_;PdA2Q{lsifu@~j9kPpTtcP8j zhQDH`zKw8h`}FE#eu!6>ZL!l_b=9WJSkg^5Zout7d zHiMk7t@V4GA{7+TDV6S*rfhfGJGcYa8;KIE-#c$K^FQ>XVX}MJeK)M>Vb6t>1NX{% za2cX6n?)f0H?{e6tRn(LyuLjc1SN#_FDkkTFd& z2tKTTG>8rDeM09K^WI3sZ$6w|?&~Z!DJx_Cq7=DdZb3bkWhMDp5!@wO8|$~$9|SX5 z&xq5K@hB`65LvH`b~(Tm@MvNBYVOF%63WnWY+J>+t;gF41!2I>SFu*vUtM)WuK0?z ziqoAz$?ayZ-Z2@(%!G++px?|1zw91{W-YLN_?gJr;arLaO+hUxd7c+bN$;0&Nz3jXZ5iZZ!NvA#TB0(y-!5FvO>DpDvLnsL zxNtR%p@R%@ljiy{PnDF|aa1lUE#x&%6VK2|MD9pQ;IVX-RHn-ux!TP%GfgW@8c z?rZbt1&X$wocqMBPqVLKw^&rapGd{~=rE?>3VGZ4XV;=i2kyIlSCx544v)za&vPBN zmzLNMhs1hvx-R%hNmEw_nbtzs;3+?z;6|eNayb|Fdt2p>A5whK%wi;^_M)%da)s0) zIe*^io7KDpN}~PF)t=l3ghf!~&=&BjsP*fm>p_`t%XjX1^&2)-Cw;w?ANa%pW;9Do zzVwNUfk|E~4TyvOJL33fC4&O}Gc^NopNV+e2_BP=uZ*ORCtx4;EUnA!jr~0gLkcExoiJ)9 zn|qUC-3C0KHb!QY0aKaF-lkxrorOEm$ira0==sD~S$}HOwR?A~n zrj9DydZu^wZS{Bw-ukHt!|<#|?I$iFpe9S%_kR64acS~fkWA^T;Qr+LR0CcncUi6& zKrH-b|J&41ntMM3A{*$%Tv9#{aI82+HX0Fy7II2C)@&o2sH!WHzBzFa3?rM_5`?ke zo4I~1zwK+0eAb+&D(cLd4(DgY0EE1FE9Pe0iSY8`rO<`-S;<<@KD}qm`M9 zl3Ibq8f7+-HtAy-S|r$1W{-Yp`e^!tSmUQaifi&bU;K`(t(dgb2u)MaGht>XM<(O4gNUXZO@M8@n=xOfIK z$i)SG75(&$OLG|8vL25nmK0kBHxjga1vi;r-tug77vFxd_G+fK^PtVCY|D_|bo|KH z@5@xytVy)V;^)E!T_JN&sAS;O?Sq3F@;w&`Ik}2kpega zy{Xw7`<={}GZKZ@8VddUKx86&&l3tESN|rSt)0&_W@}>X0jOy5avo3Cn%eaS=e$eX z@-fuELuG{=<@xw6DuOS%o*qNO&_KJ@eN#MYV-f$+q#p@6u5pa7top_w_OAW zwiX8$FC#y|3a1uZT-LBWm473PvV&%^weBxup_40vE?u?!6IrI{ zjy;J}(H|A+tQ1{D<2ixuYZ`;@fdCY>M=7(bpxe8idOUF;8OB=GE5LA#gp{J;AeHdN z4Vn!-hqrikKa%yf8dlAd@hW~g^~7>iXR~Fu2*?7m8duW>)^*FdMo5gl2EX>!R|%o> znjX9ZeB5BM9san;TKppj-Go3m%xNGYb!4>9QaKc>OFFBcSEIaMw_wi@3;n6a38-IG zc^F%}^jg6Mx-73RSGS^M)oRk|L;qb`7q)pNVBS;~Y1voo*t)x}kOV_-gcZ4Xw;+OH zU`%nTkR-YW2Y9kwcLI~#DbHvHyX1BXL-9D_I1^HRC5CIS`<%eFPvuK@?|=e)&T)7U zh2l8cN^j#hUMZ>MIKeb!bDU1}yK>PZvsB^@^F2Lh;;W@^v_x6=1Y%= z0#(29|5nT`6crKeKz!r(-Jbj5`-m7Du_fPOUT%qi2#A%3weP|@m$V0u*QMS(z(H@1 z-0`nCa7-TV{Rfrj%*4;3jLU@Dm#T^~qw!I-08YYwuR1_1p{*IfCDhj^_lD?~9%#a& z^0i0XQ3Ptw$;AgWZXkg4k}}_}ESmDEzv`}z4cpb_1RbdwE5{~(UAEy0@|U&@2c~xZ zSh-(QtMQgOAvH_9a59rh%|<;Ttuo*CetBA-+N53v8lS)hAJcRr-b~L=Tpb_0t0e?s zkX?Ce2N=04>n#j~1(WmFNOReb_OrdMcoQ z=+gz8FEbB{l|tT+xbl1D$!)AZf95!B_(d$2nu|ged|wZm0L>k!y`_X~)PvP}rSlm$ zsM-1JWfs;J$~JDucv8R2y0!;X#B7LwWyZ7l>ryq9O7yJ)fN8el*-FSh-IKJJB|Z!p zfQfbeJie+-+;}PFezqt{c4 zbd%~qHp5n>(CN!UhUyT5Ve34`nM=S)wIqpQn+)j81(2ay7T2&{BI7J2WKy-@@~}fR zboRW=P_=xIjB*NNM3V<6Rq9qyppciZ6bObYjYyQMC!^^pEt5(Y0_E-mH9ZmZRYeGm zd)kf99cwZvPb8tdEufe~=P4!3N0e_IqnSL!Na<$~%3mL9eo!{0NC2V08jKcugT87j zbmKt^FXwmhOp0epsE}uj3#68Mir-Vg`>z=m&)8nIQ`x#%4(wT8V|w0Ua2szPWc~B9 zHM~8jMD)YM(+P0otM&(4rIC_z8P_ciI~lenBROf8X!WIvgt5R_C(}1{MP5CPlwyAJ zWjr<1M~_vMMdC?sm#=S5_dPMJio2b@Jp1x)t46(kqR{DEVHN300rEp=*pt~$i(RdSK0VW$3r+7nHLJ}4fN_c!Urm7Cc$cDC zH>~=O$7@?3r5m$`8n#JI)D2CP%V%wBSqGF9!X$#j&PuFY17@0%A5~Tk+S1&7{bWel zyBa}@w?_xezOM(?-9|d=*`Oy>uOB2@mKS=S2cR9d>Z^PqcrQ;DEN}RJOM#iIduj93 z`5lSWB0)p3c{KJ{uy>>W{eaj{mK}zIZ2k8E_$$ErSNIf_8@t5td&?-gIRG2 z0S_(-`=*Z}wj|qRvEEw*gl9cI`0B9p745?g7V^#~?UqF*)M2+Q`Pb*TmSrC8qka=I zF%{LaDv3H80+UHO^oVs8?c>o5@@}y<0%wFeo@^%XeTzfj?X*v3(d7LG6k^L4b%H%1 z{|mC_lS2Ql^8O8?|Lzr^$G?EcAvN$yHD2Jah;s<4J%UtAEA`lA;d<05rpR$?7kUvR1c-OS0%+B<38C8LVlf4Y^Sbw zdE=_SuVbsh<}>R=GqFGF8qMabkZ2K4@rsL*Ix?X53LR%q82`Zx zys2oAKXUsSwCgS?Ucv0c2vas=mnuY8!76a%t_W0_seI%GC{TOl+VdWn*XkStzRfDAm+Fzbh; zq&!&Vc*nr-YS2&w3_oRtqk~bAt3E8gI&62=F)EA;&*9H zuf_OG(T6-eb4OaLZoycOh4QE!m!9T_kt-=`jqtk3^)skvCi_<~+=Bx7#yOMCgdGNVaQs5y`K`WgqbM&y_A z&-`_~8m_qB%y6$FF>f{?*kLS(*|oS&&`}vtKa%bPElS$`s`jqwC0Zh>SX%kzBkiuFA$JmVZe4In z3;A)#bCVIXrfH-#VKd~t1jVd4PXRFoL%wK6>~f3|a7Agze+-IUDx1L*QMhot!#_Y2 zTNO$97l@iQV7h;U=qNy}`)?4{G^qa#qCt#cCohukPY?~xLl2DxJ%?&wPc;|JnEyb5 zuRqF|Ut48rHy-}9>S<7bx8~Jpaymckgm=;3k7f+T;RcFUl6VVJ6-*W!wd+2tzpX z+?1Udtd}ToKXVdEoS9v}T^|KITa-viL(FR3ggXR+Bs!aBfXu%6o@b!LaI_*WxUL!v zocB%P#TIYvHx?ir9j`9*hi#D_p5r$|#?TAXS0tOZ`*&uS;XhCPrGEV4{1qA3hrQE7 z>=2KA72_E=-$ItMAUqZJ@O5oj&g7ErS2IgUl5ANNW*_gfzHX8YMJ}@sLjCRI$ zRwc51vVA6dYplYD*9Sq64UwG-s@Q8>N+JAi$mdApXDuYQ*x>UMsI9{Pdk~=lD=uB4 Gko^yD&*Uip literal 0 HcmV?d00001 diff --git a/src/Documentation/images/rigidbroken2.gif b/src/Documentation/images/rigidbroken2.gif new file mode 100644 index 0000000000000000000000000000000000000000..6763d84adf83a42623ab775e05f963bfd116d6db GIT binary patch literal 53499 zcmeF(XHb*>`{;Q^rCMX5lLjFW1O=4P6;zslVxfwPg)Rb0mtGQ3ke))XA%Os)q|ro_ zrl6?wBA}4ai*=j@q%u&2y7PcoC-lLz(*yugk#b8dCismM3ig z>b`x>o-hCY{kw19zFGA7(I*pE&|=c}vvD*B8^de02ER~2_>Uy2ZvG_EFm%{NSz zzt>S+@~!wrzHz2;4e)@gqlVO1{@{JAq)Bb*K$X)s;=Rt=vLWj8$&O4DDtUzI zw>mS@Ni8313_Tzub)8l*{vLG_VgHF%IobLaYLa!GPWj!5QE?spM6a6e&e4yPGG$b= zzY%Vc>_0PVX8S50b!M3|Yv+e(-m{~hnbgIxrU)URSsiV8vMm{LzpIYEI{hWzB-^Z> zu{LXSz-g?jp1HC3^F22XXx>oAS!I1A-S2Lw-`-f7?94WAY}no2T%A=THa70vabEb( z(1T~3eunYG41pnn7g;|ej$eb1N1nRtH12oUo-iIQ;lmn_0Y$^_M?=z_CeZLA!bI#` zV%tRAxsUM4*Qz`$hd0P6!eqQwgWscsOT2Qw-d+*he3WPiEBTdl{h9CMhb`gO#6j*M*&xVozijxj*e-7v}`Coe2eLV!sJR zMZ}r61oF%biF=_|aJIC%2<}=&n;IN1W311(M%HoV=PC~In#@(UO*y(zK3&`%rF30G zxch%GbDgg-gT>C*4ihcisXvLbO|)NvO>F9Tk*z)bR~D&^u{6`VKwAKuUaa5!?7C3I znwTwbSUdWAv1x7pr$y#L*}ANExOLLGs>9yGm4!!jU(dA+K2&i2aONbb@?)acaAgIs zTfE{1G{H`pDa)7Y)rv?TQof;NE8)%L8?vox-ddkq?cN5+uXNFP+^fGvA2n4iGf*4x z?%`J|BY(TyX-DX>XtY`Dy)m1yR&Q%LQqy!lLbCSTqkOxI-HtI5YlBN!lB)Su?~jm% zp9Q+BaU1;fZ8k

    m#hO&|-Pyh=*|3{CF~qjI34rHcOpMuodSFznQ(KPD`IQU7s5F z(VCB6+26#cw6oNrX1KH5b`sgs z7U|o+z4~Q?tGV)>&m(B<2SN$3TEi#0yD?^-@M=Xc-n@Pt?77HD`bkyNj+;u(ez4P; ze=KP$Tc6G4(&Nk<*M4tjFU@V7*eN+{yknB{_n@Elex8I-sq;CV1u2)fXO}{byZ{~4 zgj~kmtO#FFNjxA*$UfolTz6>JY882~`FL7eW=D*1-vmF`-39-W7EWkry2=(ja{CX7DB*a%S<7K4hZ8;Pz{KKn?N| zEUEIf`Sr0Qedz_~^gLcWN;e&w+`M#(_%+V$N|JasU#m)2V!U46qf?D-`PvQUS6&=^ z5Dc(xRUP$s!*NXlzjFL=g?m0eEJ#`k+FoF^Ku&mER{)$Rv|pa8G|c)g39o^7+(@E? zzSYX%TA-PC>?>1CgPt6Gq<;Be&x%j28${8g#N_BoPejAclXI!a>krQ)LnU|GQ-TFP z8T0hK?t3AvpeAQxWZ{jyzL0Y{l8DL!{`eUxfxD@_@8;#&KPgwj*;k(6EaG@kg#zCQQ7-~4 zvbwqnx*wcw+#^Esiuel+4zZ0>jnC!YZ7VUUVW;MFNPd(^Njvlzl}^K*{Sb5^_2Gv$ zt3;dLmW&_C&h>3Jg~Xx{buW`VYufDY*jQGjohpT%ola{bN|tj^mxal&9t_x6F{RFs z(Wgl%B1Ze(!%kK#sXk4CyIT7@tmiI90vsg+ty`YnEx{##IgHNLv<*#vFoxy=N z?}{!alHNGER&Ck9KJ=C)d~kjIL&N$9rkK&w6_X+Vuwa)^H-- zy~8wZ$9wNqQVSnFq-kis@YpDMixoP7kPzI@NOP(c=K`mGqq>3nds3e$RhN*T}j1_UZhV^7=^p4pN?K$&{+`wo-}-Wo_m9p?g(uq3t*>w6tMb5N zPlTB2J(#X)jI5;jK7BPy+|e3>`kPM*i(gH64Qq&&pJ(o#H2hxiQMJUVWBis!$q!oB z8tKvJS^e&<3{Fi=nwRO^okd1p+th0L5ivKlJVyTq9Un^ZS?Bv@{(2Gdfa-j0kV~L= zSLYNuC@Qni{iN;SnAt{A*(*nhC*sCay)UUhOc&3^1j8xkblP%*0k$x?*W}Y6lJ1~*H+>hL2UCZ(2+mjas z{Dlm<7L)K21MqTm$K|#aKjzNwx_EWdr}pn~`0XiVOih<#v-hC|%?W_H-+NealE@;p$~IW`rF~)E zd%~%I)G%^kaEGV?oN1#zUb!=OnoS~aTBx!2RV38UIht<|4sq9M-SrE;-P>}h+?NyW zL6LsuI}_r6H`|Kq7p;#4E%5{O+7lZ76esNbc4TnI{kahYZujm&pzeC_hQ@k*{wuy$ ze|K2A!JANR?qW*gWp+a2jz?o~HMOz)l|j$WM)%(>-7W5>fuB)x$U%{igA+a;>ArvY zLM?0kOe{i=Z@%JV`8+ppJlr2jZk0Yk3;V7X_SiBk#3u~N>vOp|42B7kg1;1m`$9H@ z1--)0Sp~_Ve0f#^g<0VOfCvpjpo*avg5`RaKR}fdam6W6yWdOK$q9lC=U7T#-HfF8 zMqW&hjH-=9qCht=Q5Kutw^@#N;gKpyQ8#E&wtZ2r)}y5Pr5!dSAM?9|;EqoHkyj|u zSNo%f??!xT4Yl+Gy)caQ@q6}^;C2}kt=$u&xf#Pn6P6a2`g#|cdQbs&%jr# z;3O(4TkVbWNF4f2uJ%!N&isoj{DG+_Na< zRBz?9$Lv%qfiw;+)dd~*1nuD{ns!<=-K#zADK^zZF3r#XX;CX6Iy}v5CEfXA`T@)I zSN`eI)=$IefC%Swi2+PJ8grx=!^@wZLVp%ulpch|2Gg|#K^b-@jd4&1Yzd>t2{vS6-ifXo$}fK(j3{&;??lQMh!oP|B-N zCaKV7M#_$XxS=8QK&)u)e38UNA;hc5i74g50K17no^2JeP85qN7lSN{eO#pc0>A-V z;Gn@`?yu$IGXR2=G9gl4D%u8&8U)8O2tU6PPOT6m03}H?k}2}=C-O2FT*+`{3BaL5 ze5E9ZD48dykSQip6hJHy1Q!s&WdTH7tb+_A|A{iGT8voRkw=q_M(|QK0{vKlAM+=U(F@M9m;!$0$IE4TDmG^xzt*VW z#goUjWCRfv92?Tt$Hb}T1L5MJ~scZroNRX6q7#njXs-OBMx9Vi-QVmD>CC4VtI_-L58p^qpOc*3}GJ7W7fDb zf5kA3@|e&LX6!6egs09BQdeqHXX#qk>PmOWtCR1jlbosRUf!m!i7~27>I+@#f9+=q zH`iu2j1V(P9^8YGPMe|t7`;TultHU6@#KeFAhBp!M} z6uu*V$4s;2s(90zL-h|Wn)oLg_)41wWE&qNsz(#6nA??`u66xi-%0Jf14%SPw3?;u znqfiB@Qh~px@LvpX2qT6a}w{Bwce}Ry}uar9+~l8qwc-d@Ozz|_m?DE^t4*8*tJ{> zYB9`cF|KR5KHOrq({e-NgN4?I+jbxB27R!~_+V4_!EX42{mzF65+5D3K0dbl_%!IF zQ^rS^x{q$dAD``fd@j-IrPcbPRBZqL|MJ)$@gJ7(ACRy|0egz@ADr-CvxI+`;2$RV z|HcGo<9H$w3$$Npu4MX15n_Uh$eLYXP7@L3F>^%z#rlmdQhD@R5o)nz(8GpH=E z^ltKK>AA?=Jk-*AA%oHf?`3sfSG0(T8&;yv05g_bubruT+`2EqjS?cBZn)AYOMQL6 z144dX-l+;T{+^;dZM)jl9b5XiYiUK{4@S*I;15$@_Knmhu+%)c=SFg?D$0ycV(rJM z>F&cHEQk4*wO0+=U()ZVm(|2PO153^bM(ddG`l_;xftUSCr%yKk+t^a(tPi0Z$t+Q zeewMs;wrNF^M-Kn_&7?oj287;P4Um<>1&Fdu9RC&oZqUBI^$Cr)H!-&PRz3v)`_%d zTdf3r!q$ukmHTtH!a#u;QQb#gnm;l{W;WF!SlclNPI>Gxf$Z3Wl}~EsKMjunK)Zhq zJ{JoLe;?Stv)-!It-aA5cS?J$$2MCnX~1_=dsC3y_-YgU#=L>^P#>!kv!FQ^%imf9Xt zAzVIe^E^U|owM)4)uscY=k%n1-4AiVG;(*8boZBL`Fd@>%ZXfa=fd)Gx1YjW76)zw zZHHccmgo3*0g$>9d(>IvHb^nZC6exZu6#t?{~kF zGh+O&kI6$zBD8};Wfk`nt%m=_sXp$}R|GwB?H!=rT4oV@<*C zw=V%-ni~(@`pUICWg)uOZFHd8V*UFI?X!hN7arR5fIgqPq;|*r#<%2eSK^ZkRwb~P z^i^;FQC-uz`fB>7Kkj?>*$Y?Czy2k#YiW`QyQP_N`}Xzi)o<=eH%LNP9vbkU>fKkp zmJK>g;I~fsaRYLrOyVI4_Kwk~|K^VF6Vqwyd3k+u^!L11uUvDvxa=mq7ZnwsK=x{R zedUar^5<*0c43B=ZQP!!i!<^LXG#5D>!%Fkf5V+V%Ui$4SzK~I%biy=AIkr}E>AQi zl5l5MTPicns&Dn2^%ePMOWs|tcz4fzABt%W4?j%34p8g|+!`iIZq!&Ok$o_TT9WZ$ zhDpzYm;aF6n2s>b0-)qOKYec~SJRI~mvN$n ze=VqWAGMXdk{>^4Ik@R`AnR!uLhgRRg4(0?LlzOoRv+YC^($i+J`WxU9PeLCHx$2k zJ;r-|ye`@*>GWL}bYtKIxR7=Zk!Bqyw>_cvv7e~ovlu>(aM%a!X9#|L_AD;w!LCp0#(iL7#SJUuz^K7h9}?YoepXy-u7O?xj_U)RU7n!+8%4S-y6(+T}=$gf}T zEF`R58yoqGeTP$2eS7xoFT-2TJ*MP8`O~l2OVPL_?Ii`p=DP=jM7okb`onLTs^)O`D%A3Gp zv;~0vY1VWlWoUQ`;X&^b;;v+0cb>YW>-*Wm>`&5k(6ph4Z}+Q})f`R9kpuFK?+ICd zh=GA@ZRf3TRPHRnB$IWU%IMF0^W1Y0HS09J_N9@$vj5HQ{Nu*5ftM-kjLCp`H(me! z@h;!z>5`*{6y{IoHyd^0BlEA!>&AW`-Gm(BE=Q^DjGpfHEnU4bn@}G3YgNa;qj6+K z^Ig!?*9QMu-_cbEzIwAOx?5%G+}UD-S3mA#pX{ZMvdgnICZ62qG;W9+Q_TYx;-msc z7ciiCa7|MhgA&#LPJM{c=`7@WoSd-)PWH8OR%>(v$1Ei_$6D+A zj+AdKCj;5T<>-xX-AhZp8md!CNXJyK}yNo9Q9HTm2e^UAY?}Jb=)7wa|n7 zA=`Z3p!861vF9A&*hLO z5pCgmj^Rpep6B5wRSYA3Plc<|JVe`Gh_^)uO-JaWJk&)_Mkjejg-0-wp97mCBPSwj z4n#>oqQdl|Djr2ihDU|wMUmb|NlZkA@I)6uqs8^2gB_xCBcjFfq63?wGbW>jd17Rm zLt*K!=GHY|IDviO5I=b6en?FEx0ur_F7`+ndDB(hZm-0lSKBmh76t9A2(zgmI6VSqpU)cQ6-1BT!s z6mUdDZHxsPM}jB)fWK)Mr~5%{IC$0xIPY|^+zPfV0$#NOuC-mj4(K1Tvst7bl#b4%vy83y#jJlDGX1j`-KS@=tRp@A(+%X(#SGyu+oglC9{vM>K+)&7tT7=a2z_Tz1YP>| z0EWJTIRwBOD`Nv`X}NuA*6L9>Yjg%ZAget+M-*qNhO4o}#SWws=Tnd}w5oG;EzE5i~pMOd7Wv!FE z1NPKJzP4b2Sdkq}ui&IZfmUpRHpJcphj*VS&=oAygcQm&7XTazt#F0LjKbR;F#D}S z^}NDa0!7Uf#1O&g4w;Am*c+FEgn;5o>7rxw{P-Ek=zx;2loDq~Nt8v2jv(uBY?X1v$_Ha*c{D4W?ikz(sCb!FAt-KLP*Bp| zQ8Fx6IjvFICLbQ_Ks1Q0T$eAX<*B$eQE4tn`N+6~fRK6im|#AZB8tDO&`jAsK{+>6 zF0WZ29Y@L>l*|sO3YVb-O;o&asJbLx<$Iw@Q@m8$q}VjDI$Ne%Rc0%SEt%icjI?m4p03PZfBkCtV?eowMSfPfFwO6P95oVszWG^ zch*nhFMQvYn;xRFg`~!WT;^@{7ia5dJLOhwt=6_Bmo*;!(mN}q^8*DhOzM`w$MB5$0keHCLTN5Z_>FSe6{#%@IkFQvFq<9<0StFFo9jG zPf)90Mr%M_YtV3O@J{Oi;)&z`c7tR8c`opObAvrJ*!%7uH~4?g3;g&0M_%wMaP>dW z3&y(tBQHQ^-{jfL3w#!22swd#|9M^j_C07%c<3kO(?1@)mlsT+q|==8!bG#2a$^*f z3I8cCSV?zybEKA#AAnqEP449dM&obvwy2YdSO1+CTr81HG#m8&6@T-t^Il$Xm;XuH zwCUbMy$8{9Q7cAu**h~x>C*dl<>7+&$1O`qE!QpFmOqjl>Iyze#7GcZjl&gI+LMwp3fke+ z*MyF%l)05p!OaQkoo+c>js}^>q7L- zuKm!{7|H)(sJoHm*4-m_*LG3YF^p;5QL(gKlHrsRqn8IkNXC96fhx~ zKN`e0nlpBeM{#rfm&JVXI7;nV{)C_M!sf4y6WqLCDUOQSzvUgsoatYl!Fkg;>D){f zEa}UTW0v5v5x-QAoByZ>lLeNCUbS31EJ%nKSNLLx**q!RAQd{LEZy)~@Q^D%0^}bC~tA2d+e0w|aSyFP=VF)}1-T_Ghq!xdAET2y6 zfYq*`%Tt~xfYnXnm%hpdYn=u?^l!CT_kuRg8J*L;aQ)tyWDHsydS=q9Mtz--QWR9A zlF#|*e3ybtFUUXdJJ9yXMH;JRJynQnH}L}WWQbm#Hv7(o`=ou#4C6-1Ui(#YGT=-{ z)?$mS)SCZ^;Hj4EARZ^3LpBECHZ3{G%dCu38aJXTUvp1~u}r0Lu-J>=^PF4YS5;k3 z#s{?L3m=jbxvFs@skf!zma+rD#P7-}tIzQk7z(f{%wofkNj>I2KNw4TZo97!8_#M6k^P;duHNm-$Cv_ z^gLePxP#p?)jjc(?Dv^uztPdxu(ehmdZhFLAG3^pm#`0I>bC#-slHx0*o}xcrH^Gz z209jMDx3@7I-Kn6r#LvBe_K=PWME>`;jms5GcxC3^1XlGIaqb!8*Z7Kqeu$gaNEKTxy8+xf-pP%`-Z{HCz z-Jt2Nb-nysFtVbY&Lp1t;#*&3U-i_h&gVjTkYk*^4Y7|l_n|xxEO1}z^G0J~na7Pq z{Ls!Bzs5Ini<$dAJ?In^!5(r^@|Cs&yUF*P9qFog3=HbxpY?49lAp^d*~uQkBP%50 zi(`%*b~qDy?yzm@|)a@n{u}}o$7a;g&)nq&K|&aLf4eJn0IbZxDEr2PqWVB zY>87BZqYvr1h0lq22H4&v|REzs_L+O-B6i|?tT@m=<*lJx^zQVd8TvIC_}>6 zi1-@`fkVHH)M!1&>8eFC)y}`U{onTSuIXPHak5atezU%|7IJ6)_+6pFALn{iqMu~C zTpg>uj44`(Fn)viy)sx={R~wmS;n@+GrqN6t1V~F<~*3(>ZpkJt}e_xJ0Z0vYz;ns z%#-X3?zRo>PunOeBbm?D0;!yym+0<$qc4;mk2H_QGr^DV`FCPQ2WzN$OJ$SCSNp4$ zyVkSzFW802M*ieIsuE6u+lQoM$B$(D1ON{{i!djQ365R($n7S1ZhH++ZcANkmfW6m zcDJ-^2B#phUJ{@J~4${a|HWF0^@sP z!=EDKPIeEDvG=!liM6aJTXt`LVVbQ|#CK;cU()-tpRLz2cc+|=kp}V1GV0Lof+zJ! zZG~dNfz92;&|`H!WnOGFQ?(cMN45v!q&GimW-Uc0X!V^qcHMnh+c3Uc>nB)=(`Ask z(owxLu}${>>^-_l&}DXo+81;lDEU*AaAU^t{);cgxBk4i513O42^id#S|B-Yk?sEG zkLcR3H<~wmcGoo@PPQ}p=n=G-S{^jD@s0EDiNzm2ZbHyZ;Mf-52c73Njk}+H$F_eQ zYxt3WH3*nGwsTzX@5YZ~KI;imtBV`ke}3x*E*ae3X}lWDp@!_l1aPT0_ZiyqYz7~+ z3eEHll}Qc#Qy9qc-FJi)n#dQXBojud3H|LGCSv6$W_WU_Cs^Ae?2KP9nB@;eo|N$m zDYpy*(ZW6Y!j+f9>3px03E`@kus`WO57Q%z!oyYiBc3`&oDYlWR*TdW3AwfzstfnM zOpCPMh)jx!JeM0ez~_CJ6`}q5Eoe zj@~a4G?ob^WPa`Dh0Mp87x3x%?R#bOYzF^Kq0)CwiI zQyE=lflfn8Ir2;6;E0TV^!PGb7Z6*i99!V0k%&YPX!3h)!LQy}%1W%fUZj?x4~2!U z7D3edL1?VV09ssOe;jEg4hDFA3=r4CviV4mZ?l4Qut1*-Ul*~UUkxGO`awTvaee*J z0VHI|4>SUg8$&_I;gCru&~IAov=x*s0-3b}%^Sup8bX)(A**oET0eRN3FXkh+ajP{ zC-h%9bbkr>fB@(a2gN4}74QcOaeznAsAB@q6VBk1Y~X2iU11JH)EX>40F-3w081cX zBQUfbD1+6J^@qr*bHNBY@T`%Jk~8GI99X3UctKr9%^IRE3f9B|wb|ObMv%(_V0|?3 zDpuP-9b&`*nfL=ujkL|>AUD~dTh72c94$*xh_%1$y%Mea0+5H!vX88_p3uRL*0Rn5 zTCOEvcTrgnx~8W;*qaS|>8$DN4E7&@1&V6EvId8=!@}A%B1$0q6`0rPeOw;Y1vm=r ztMsNFlOTYNk;SIQD5cUd>1gZ|YK+3TQYIU-%YzHsjOwN-6mqZxb$^^_K*j)e&kby3 zafr*fYJXg<0G^0OFZSR@!5NSG@KjMeRSloYk!)%A`KbPqRsvwqGv3qjA2=D=F&Uq^ z#TjqfGkVz>{Q@t)VgcUXJxl?<%oHj26-|M^OOd2&dcXR8M*uzMKzloR$jiA zLB8~f47DvqJ&k-Vu`r#0f|;ZO4TFNwr}^i$3U0)DTZrAe9h-MIpscNFpdENbK}9>Zq)%PYPZEP7xZJ_9HY6jS8B((v{% zc6Zhwcx}bJ2q1{7DTc>pUA7^dpC-WgN@6t#-W^408V^{2l4bRhl);kYy|0U6uOWn` z(f-8K-)t^Xh^1TS$Xn0~F_M4^sfB{8m5-xsUD#_23i?S%3sTddQnL-T#io=MZd$%Y z>cDA#GA4Cxm3E&jqYGwy?;uUSC|k#t4GNmR*C-ohX!g#K`ZdUDR^;&jGAkA}6I(hl zNG7e4Rg+3r7z%$hpz8tU?MdZNPVS+BIu|FqPrL%FQgMz_&dWsbZ$ku`74)8pPZkx& zhmZi~#Z$JGG2WH1l?pMYyo4=8YI`q{phzoIq!IEkO$Z#%rQj(P&*VzQIAp6$xw2+e z_^qm~fGT9Cn#Okd++fv*)vANy)p{o6lEKnzfz_4z)dHPW*S9a4%~sq%T)3cFb8{Pb zHV$ryueOf6Yoe)sPsroG&~3c4=A$^fC$6;=bgli6q!qJvtFk60sdf@ZwT~)V-Krfv zLG`m$ze7^#KUfta4t!xN8^J7#5(34D%c6zIaZGp^UL}EPnuwr3WU8eOnWfJH-^{}B zf##WU^pP24uK11oZ6wxJt(bYEgbBks{D?4Fyyakh~NYzwn z6t{SXs3X~`ePCL&3enny)H;W*?i~;cT`RwGJE`Anb>7b^_r=u@2uam5VIwBBV}a-& zCRLMx)ZeaBr!x5g6waf5%{;2$^m#|{3Ma|4(>x$M^U9Ny0Uj~eThZ%14oev5^- z@P?j`dsF&Ut#hE&Y!3_0BBIYE4|L(ys|hkqj_G29Rq=N#LyiCC2D8@gqP3K~&%(}+ zOom3cYRgHx#5{#K>(RZ^yYUEF9(;9pgeyS*GGFH9%#n3FvqAs*S<$6f{QFGW3d83I z*-yRm-eaB)M%R%=zdqX`w~<~mR@7Oa0h9a9gK3nd-Dd&Ix5v1=wRO{4<-xy6_J75! z%J;<=hpG$MbEP)l`I#>12xqkOjtMl2q&>eZci2d1NZ|eP-X(qYVZ&p60xieRcwRHQ zZg{d)-~->?WkYKTLt&=CN8U6~6X(|k;#7fF?vKhVJg3K6QqHu^o%Xtd(s}?D7jB=u zqkIMP>F2J!NQY5_lGEbt$1M_~or9?>`UJa&h!Bxalc%e=`fbAxRkB4sPu%g=@3(VM zYZU2v*sJVHAAYQ)E85+bs-iFb!;VK&hgvlJ8&EprywlB2eKWmZEaR&S z))a<&&DLrX6f24fJK4XFQop9xtiCbG9JaW%@jcC_Ivf0XX247XoXY)EsDHN1)RDBW z>FEEXH*i}O`8n|AVrU}(D}CQQZlJ&GU%i35gQn(Schyq&)U>4bbw(WgBX#u^ z>sC3VKQ;5^e2S#KEuTf7=bx9kF|X#HE3FT7bIae%y3Aj23H%H_wb39RxL~r#X$ax| zfv{gqd29rZS$FNZLBnsMszCCRS^oRvjK$dQp#4(a{#|1MGDCSguN9P5T3qetGR?Io zb<2~!2-_PL$ZAZPH~Re;%KAx`a;d$dl;0mQ{HI!XYd)rXD}~lDX0o!|8U_r?IQDn_ zgF*YUQJM5_U?}IaE@#!93*1eW)Ktl#WHNISV6=OBIXB@aC#xt_6o!w3W0}qc!eX=!�#Vd;uO{ZJ@U{+yq; za(@KE>G{sJSADe+u;~cnzGu4qFD~;359&o;MTQyrMRL+2YpVklF$!i@!4{}MTY?wM zD*~Amk(U&8+A-3~GUC2d7zGlYs~3IPF?#5-FP-oDU~@FyB6_t--9-f9Ly+5ZgC~?2 zQcnzaB_%jAimhM#cpFC=QxTe^zRxlZBBlwgQ(}fk;+yg>Wd{5X^*w>f2%)MWFAH z;P)b+56IY7erP)!+{q96+=lMngnShNf7=B9utN6{AOrm1Ar^3ig&OmNjBkP_`+>jx zP}5EjHVZV{2AtUJ zZ6$y3c{Wf*9eBY=Tg@4)J^<8|18Q@$bgjXc+kyI`z^f%%21Z~bIhd)nmbp6krYP)| zfYu#3u%!UZnyzUp3clAabKhC>p#b<1R_2MQrXvUBjFxe2*KlWpJp5%m=^Eamdp?jJ zwC4j8(Lx(4{sNF!?dc%`nEkRCDq-)zX?hGA^S20t#wfmFr|?>Yr6JNcFi^D3^J7-v-GFWFaUZ9jd8)caCXHLU1JGkGKepq9;(U~Jfne3L#-T}!j zb%mdzSsm)wW(({BCu_+WyONeQ2+LY6IJ=C^=5R9qVBOaT%r{H2c>=PUd$QN)S$K7Y z1B{$k?b*Bxx4-^3_IKn6&Ey=zxt$QZdD1wS$0b*I@HxNy-ta^2ftg&OjhiUrW`Ua+g zMHl%ZH;qizL}9c*k&8yr`I|-eU9vpo6}=fn+-r;sN_cU6N%6yu;&bE0{(^+3IK>E? zeXq9wHGUJ_ zQnet}ikIv_)*$Dy=+OR;^L?ouSc- zBlY9T3aiRg@<^jN#7~=xBN}AfEwaBCnPsd#BMAMM8?2C(0Ocz<`9B>Ba{=Y3oHLITAs#@D~1JXqeQn~U_RncnIU$N@l zSeLQO)q1l)QCnFWvD#!Cc`XoW9#?%c?(Qu_#oZyv8-X>PuhpIwHI-8}Rwk8fM$Pco zn#Zod2eU8-lB?@B$Xy)P|Dw`U6QpIL@=~1Q+i40NLIw(%zS;(Q3&FxVD!sd@1|skUmHVU<+pWLuXYQU{r= zdn8mpHT$m4Qm_8GYkeQ09-LpV`=Q=1u+IKKgONfT8V{|_BY2>MS03IENo;6JK@JtO!B2>tHu2kxPxZ{_#bDs}=)=z&^uqbYaAAp`wV%=&A|8iEYwnEi4J1S!HuDUI1`z~- zeu7%{1Fk4Nf?o9m%_SbkMwJ7sd z>-WW0`j^zQRsWTY@5Wo|9T7TziiDZ0T`diFY{82JgEqF6+Qsk3c@Rsw?D6OEgG`Z7DDzK z18XxsoLlEF-7V(GhlWk+?A*ZB@VW%)V}2c$I*aLJ>txk2XqWh<0f{{01~L@9%!y%h%A^#R!GhH0ai`e|R_%4qAa4MTH_g&6alSaBe%Et@fRvU_Jr ze21fiZs?2PD*2DtW{>pyqSwEX%NB*R*B5K+XH%a9zl~{>namF443!7`nG_#w-?+G2 z?(sKt^8Oa9HiWw#tZ*Xam2fDJljm;wa~{5+gXy7y7!{1HG?j{|a+KkF8z$zrkEYL6?TUbCe|O8SBwB*5D*a=X-pW*DzGytyowTT))Ow#uO!7Utqez~_Df&f3}*{R z%%&@7w@K@wB4jZLO%cRZnzR8*NqrM)vI*(r1DlFK&D$icos@2}ptlH+JDVU&eyA-$ z@(I7vy?*F@KgdHC=+P#`(J%UMQe+h+8rBniWF=Z25ObD4a-%r-D9y9kG3vl3G{`WV z8_Ws`#e}G+p&YDGI$kJo4C?S^$WU=mJS+NbKQzfI+>k$_!y!f{JcchXM%E#MfQcpg zMJ!y6p+I7#^BVvp=?i^LQ_wboWU|6}IY}f+GTJKznv_yXNW5MmZ-$27kb_vX zCtMbZ)ki8=i$ZMaDZ6k5OMm!70mvhP#5-7dM^U&l9qek9`b1rk|9QIKztVxQI%=rC zvywkLJ+M7}?OG_KUn$IguOq>%KE-@QVbFBUYj!-KKdmDP6EL8ZJb(!{^4bi?Ceg7I zQ&xO~>WaahiR&Vh)as4y6dZu6BM=i%lQfk7v;F94qWg zImPC7$@Y?vmUjHdfz%mF#vnNJ+CWB^k&1eW^mndN=A2{ZWIz7q20k2(r>bX+4!Hen ze>o72og2tnz+$KTv#z9PIa0G0{j(S4JXWyYe?)!P(b@ZO_+zwe7AGTwrm!EE(JWk9i`M$Q8bg6*07XhFh#c|xGzt5ubf6Aspw zk}^|_FQ#ol_m&peSCzC_6l7@-C-)QYLx}}A;^;#nvZsXDp;~GK-5X1|c9NvJx3pkT zx&K880Y_S`B4rGc8gM#IV#HSU(rTO1;(*dNBC%tT*gRM|uv$tHE9=?P`W`^)4JiAN zT(;MI4GW$hwYfMXMy^#M`&*EwIy6{<(4P$Q!Ea=x74p)I(n^QIj7@otce!hF`4&-q z#|83dt9%_$A){PzP)Lc_1j3K6n4wfadn%5`DIOPB<7!l*ZdHOIl_KJbVkT#WhbmJZ zk;cR*kXfX(3Heh1Wi**fVKXQSCfbU#WSDqWxJuQkP1VItHDp}*Ic8PUx2oN(s+dP4 zJ)vs8=1Ph~H6glMJg>U4xw>+y+MHBXGgwWEt+|bWUkR+T>6A2J*6ib{Awg;wuv*_o zHCG?i>PFRqhH6|QOo6ktsrj`GdFq!dRIevgcm&m-L^bN9%1%;;4${JesLuMd`Ny;f zC=HTN+i0Q12xY!GK;JJzSBT2Xenc0FqDM#4a2<5uZ+g-%8W_sRH(@+-Wk^IYu$}~ zt>xCyXJPgBSL(MO)+dJ7yOZi?dFszh)*Bsac!^+U8#fHNHmtv^&uy;#-Py1`-hk(6 zyd&M15Yh1bQR8e}Bj<7>uDMa{SK}(8;nh&xpl98|4419#i#(;*gn}AqLKXZH`vk8y z{Z9b||JTNX{|+Gduj#-Z9Q?Df;9naH{wWClDG2^42>vMu{wWClDG2`mE(rbsg8yxR zKuve~{QpSd{cL&PmXRDaZ^KQHF)dQNAF4}$bf!lhphb?~j6!-v z$tFcv(4y@8G?b8t2Tl+N7U&i{(%uT{Yz1-c2f5QCJPe_ph7fN*&`ZMzUnJBY2?=xp zz3LASfkU}ra7cs|D9R~3Mg)o$fyBW~}6N06I@%*4nq;56= zl1l*RZvqQhI>mmF5ybK*hLCrL;P*7( z2bOj#64H+R_r?N@b~haI75?vy1%}#vB9H-*e{U?<)EeW5jPw6{V*x>Hng(XGWaq84 z775^Glfo;b<*5#4L)Ekdq`B1&j>6aDl62kaYP+_j144yduAq@tgW8>EiXmS zI@MGzNmC&83OrSwBWZ^YwHJ7%*`7R7ndUGM`FJ4lse0;adfNC@+UVY$oJfXxr45g# zZ#kyBh^F})VFF81dw4K|xtLA}#@87$oSVMUoDONmylxMU=eQ@)CGnz4DWZ@xqjV=M z_IodO{{!6LaLiW#?um7Jfwg-P8aK0o<>N`I^~cjhQ}Q{u&f2sF4!)^9O(-8%l7#>0 zoU!r|Um=?DNi<`RaE81xdYtj?B^lp(Gy2*1Zf*(St9s@rJ&Ej`*^!p{i<3f*_O#_> zj#+0;sAv7Q&Kkl3MoO~2wP($v-4+G1r;WT+jk4E7vo@UFI7V5^Xu#q`HUq7=-}pro zHoF9!vRab0NXcnmmpmY!F{y_Kgy-x<1b=&T7CAXLMRR9M6s5Lu-PLm-8fnrqnUVo{ z1H5@#SVb{0u!KwA-qHfOnVc%447yi7J1Jj73@bmFf1G%>RPO(1?>*d_UetC?M3+)r z7O+5KK#CB8A{`P~VgmyRDp)8k8@i+jDp&}h^b(L75>n_jjg~+vRYaPKf(i*m1w_gc z1r$hvVScW?zdie$v(H@TnwjhD`R3!#xS#iVpF7JER(wsjNXw@njZkm^p>MB{d#JP6 ziB~jEDRHwea)s%i@x?eMmYnp>bWSYzWxk|ZsZ<_e04y0C^({RwF1AAyB4NaEbQ!R4 z_{+&sPY|$EP;yL|CoLC1vgGsOQ)Ry^kdt8Kdk$m=Uvdb{02n>IP9@)&Dv9=p%XU!1 z{i1Cqq%6)+Y?P>lp#8-TdwoNw`|#9@OyKh%vLaEd6hxaerkMc^0)zp_K@0di=!$a6 zSNMB_0QfxM2hpiK3J?&CzNV*&=`R(WYKU~8K>!pAUJ%RYndN=L@?qkE_duZlQIY3b z(ExlN5aCk@twv!*^<2fZmWsJ4%Wp(o;PU`z5Ev>|E+b%4u_o|&P+(m34EQ|gvXJAO z1D^-?daHDR&jTwxB~MM@^B_I2T05f}r06%Wt)f?4&1$LE8mZRyt0tS%M~Fa!pqKVl zTxH;CVdz=8&x%?7x6cDwxqcGedVpC{#9VKGq-#Y?leEouG)=w=IJhoGngg5T^lf03j_qpg)INaEc=hFD@nP;XeS*< zHi=nd63u=^Wy{F2FO9I@DsYk>vki`LH2gTJ$~Cu&IG>+zq#B&_vfM>&Zu~UorWbcj zEH~MT5!J#~{K%CY;<{_{w%hW2k~sUKdFmxR(Pf_72v6@9{`6xW^ax+$8lO$$`WEr^ zTlv^%zV6z(-?i&nrujZzb=Q;X7@>Qfd9vE4qdJpnUVTwy^(sa^(f{l7AT;WYmHE&B z>m4a_0Bk&J#r{aE|1fPf>1jLdsRK+G^w1#B!HwPeI)RFfv!3cAu#RNf_Q!PNJg~zE zmRaOCtXTd0Jow0O!UCTM)=k!KP38K{9*)iLlOX@*2Ekv$hGqYYZwCJtKL)EI!Qbr% zt0BQ^NU$0btcC=uA;D@$uo@Dqwg~=jwg^^3g8vVM1nPea34GQ@)|F}eEhH$)NdNxo z?;!!$RulI}l;1cgx<-%erF?9KlX5@7!4A;H7{F(e?ETo7Sp85nB;Z>}U2wcd2a7por81 z&w0%v_Q7+}DBb6i_#r~BzE9SBxc`WK?pJt*KtKv8%v})WeCFQxqMA1b&#RgwEf8{- z2zec>yk%656pp*AlrP(vyUrv34Ju#G0VcH9*@(z?oX@4}Es`xTU z<|7IUn}S^9<=P~cejYDTQz+%@mD-B4YS6hJh_XA>QdDQD)Q^~dTNQfS7jwO{BuboF zK1oiSD;-KFtN5DU@hF2M$o{_Mjd*BgVzIZ7e342@BNlpj#5sDqAJn9fL-td}T67_G zc8>ZakjfB7)rielAvAS7%~FY0M>J^g&}stFM~&&GF7&6oz5O**K9AnoORoY#0-jZm z2QAd2oP%)gpDGqQME6l?0&%&DN=2hX`Is+a+<`tptjK3pbO_? zR^<``E+*`?#8Fe-lL5RRd_qVoU|k4ZD@{EK0~1AG@TfNRvoPmZ8jzT86MbI@ znFqjDR*F@Jt!iklHNPY=ktA~mS{2|u@S3mL99k0}O+T$)yJEz=9aVdfR(s(txn#7q zdOho)ZJ>=O>s@;7AAI%m(>hmae*R!qjso-I0OW=hds?a1R+(*6!d9MRU5;`xQsk_C z%-(l|Gw911JjzHY;=Fvq@l4`C*K+sjbCV8pb-lQnNn9W{xb&F2IL6JRaW%DgYixN0 zzuKG8JjD`TY75VIl(+pCet;iO;|O2<8ehDIcfOFX*UA@t;JeG#Y3!+MN#gJFs?(3H z3)Sa4ch#Y$>z*X->5*F1w|mx~3#`9CT{kCNf3>CFce;Kzxelz=5a`%&?MlOr=!S4w zL%d>x>vY4Jb&a#r<>wq5FI;UTwKQM{>IWk07ijfYM%ebPjo8sfl46rkqv@+-Q*>9; zn)gjpip>T3&D)MQ>{#Zj>}{4Cj8zEZL983pm+Sj)|2yml|J|%%7)bW-HiXq~!T)n< z;%aQL8XK&}2CK2bYHY9?8?43#tFggqY_Qrb_@BoHtKEXtZoz7|V6|JY+AXLqY)w)z z@f~chE^15NeI#+0J)^h-19hdI?_iX4Wf^*PX4^AMpOY+urUpBhW!-rPqZJ?yHRM-C zNDS=v&KgQ@*~ub@9EV!!8=4!_cc`nC{B@yDtq6?Vbz0}{kSmgukTce#hj_isd ze(?O%P#3%MU1P*rMYZFcst+v*%K8_cajHk#(zG0Nk8>FxyYMD{!_T?wp9qjToAHPI_ zcfB{*%DF-KkA;Gz`+qGI)a_9?v9Cqz#qEDA6u4*1em3~0g@Uj>du%>GbxoQ3+d=`? z;Yxsz&^tIf+zc#O?mKbJ=rCwRL@% z10g*(hrjJR_5+u7SG2o!`1_Uk-(Fm6ye_O%n`iH@pZW1z;(Uy@aFAEOCdMW#DfD4( ze(GXh^on@gwQi|&=KB|a>4_hMp6X-$;k64#_J8?uaYgjwQA2}#fV8)0C4WjiSTt~A zdGVO3RPnma4@EWUjI*NXHY0q)^>A=(I8bDkod~;h%~2p55s(q_9r!+f6ESd3ciF<` zHuG%rNQ8f2qzZB$h@-!&T?cqT0A(QUjida42Lx{osGBw{SO<7OIHDBAQ;NO{JRr!O zwmTL%rt80z6K&RidQ|rTy)We1&Va)cQRaAkOQ=?7R*V5V=7`%lTh2oVrPwzXH&468 zp8FoYeM!q>;(5@Uz@;tnmvMfb)q=VFW=#|?al z3vPG17#uri@c_w*mHxRSVe?$n;m7fYBk{sD35gTxk5sf%mNe5;WHKz#snKx_i_ym{ zLtK{pvx9eI<+QWNz&`@I1g~DUq(uqVqy@*9BhevH{c3MbX8+Avs6AUnpX;W{cZ;j% zKpQ!*W~63|+s#(F-IWts9hRD1$eYiX)Vuq&UO_c`+hgB&KguPCZx&nh2>S%hg`z zp7!B(nn^~Q10!uC3eiS}Z6RnY!PAF6q!|aM+h(MLxPH<26uV&E-KrUs^=Ze0WPpc* z4H0{`Oh{A4B4te7F>-0&?6EznqJA5%{~?C*MkXMC_u=#+D=xU+#cZ*HbJ z7pEn_*@++l0YW+jR_y_5!T2MT`-tL2I0O)D_1@sUypd|2oZgSXeF;r5&6?7xCr;GC=_w1 znP6m0>OV_5jv`&QH96^?{S=jbYEr8K<$noSB@ks_CYV%kb=uu?-sq9K-2Golxj6$O zlU|h0Th-iFbdCV-KZweGKAA&6?H>{38rbK40+179c(D9a1Pd?or@OB@H%{LR3p!sCd?7Nppwk?kSxrQSLFITaaIT zPQLWJUa1wr@LK23+JNs=0Zvq+E-sZSl^uhZo$@G)@F;1q$4T8B@Ubv$Z()F|uynAQ z*h4A%@wiMyoQ@`zCV5~Yr%I1@=2uTbJQB6AzLXn@lq_B;ibsKptbvyVFCz5|gKE=5 ztsojyIqXeC&{AA!7lUY=L`zy%%kFXP(>%PV#?R_PlQ&NxPq!wd2O`f zo7iN5sJle0gflA*jVq-fn2bad@Ffyms-E>!$_*GR@Xa?4RO!xF=>%3Of%Ud|YVHXA zxnejfF5fj^rs}8(1~cM~8Cot3oh~nRthC&T$G92IP?cjCTA6piDz|zvHG-In4opOn znRQp?0SR+F(YG5>bCh3U=U9#;)qLgE82FVqgPA9%%lFgZ9iSRlMKzc{%-yrrQ<8d) z1iuLOyUd5fX_c2~5RXt+zD_NmK3MaT6`=1I-HEtH^SkS*<3lq+NnAs%c0bTJ?$>5I z57a(8!+E)lvrSN=N#m$>almknl_K}EHt=`AiuB@UC2=v+oP%B5H6MR=3&Q?dD9}W) zGym!q(7Gb>{^}Oo)92rI{ObY1Dw0Y2xloWWP~D`@4zQ}rJzMw3G`Bs;v(vBc`aqqo zr0yk{)idXK{q?kM9Vw%fZz15<;X~{9O6s+>>oU8H#uPc@ioA1}2K(BEAwP>5Pul_g z2DD{9+zs4t$hS7q?w$KKHdA5{af3u5MdZg)_UsH)9`>H-$W>>xJpH*AV*FWlN z?C@;*u(kPZ5=3pedH1fzn%0lC&p*})`}cGUD62mRt2x1{B5_rbxT;9}ud7I0%?bWf z)NrrvdGw6tn@~H^CQego{Y{kFPZz@XrkxF6qv8XGx#Ihg z8xPJVdM=NstZZtrP`eeMTK4X61}8#l=scILqR2lg`~C)de$< zqLqZHAJx2$`l9a)Fll;dmY3S}LcJQZYxDIM-uP5MunFk46pX%DlzsM~@9r_q z%{`fmNiFqXoL2bs7T?7f8}e6^cUB`GD}rkmCuYQvVXd2OP$c~WZ#Jav7@sdfB?dLj z>#fv%ylon?oH;C0cI>ydGyA{0)k+Uk0!xOf&XSk=rxzAF>c{S@e;e*Q^R+lG?JNJt z@{@B73pCk>4{+T%0A=0BiKD#w8buZR4icjRt_ ze8iEGh#%K)ZgY#=92~h78S$PKDSJJ#sd%5Fo5rt;C>utISzy$*j40TW*~>DRfu)9_ zO0?PIC{vecCBR!?sfDoAvR2VJuoR6lj;0vLY;lRPThcrP)pA(ceY`)$FFK}3DRyM` zp(`?W4}ktru^$RzceTeFj>H`FXIHbFY5k+5i&aAqRDB`RT{AmPi?1f45!`(@EW4K(Z+TKftb z7KL7ukN*4=o#UNAluayb4=A?O%njBgyM^#90%$50rFgwcGO9W_h>6@+YpKVULvd9C z`0Yt4(7lar!OeL87LG=_w`LpueurB?SFlArRIhvD-YfFWUT=-(Zkm12djiWl15jwI ziodG&ZVEDB6qz#J7Ou1uTxA&+%1Ke~N!FfAKD#sJja}+@x8!u$#2?kM%TRl%oSsaF zx-2|R=1QtoV45U7O<_`fqn_p_iuxAS^iBPEc19rBA!0B^qZe zoyyShQP<$^-LOT9F-FOZYee}W)#TDJ2(--Dd`71+uup(7ho@R{F>nC}DsOR66>}J# zndGKshsqos#dI(-P2JU;;Rz>Iu}Dff%?s;9z!q_^b^%*{z`saDqDW$Yb6z-a3p6c__*nGsh1#;{`{sErEDpIzCY^ zAcYIb5?QC|?afe?$#f?OaD+9xiLFdRa}Oa;p4g{DES9$}d zGu%OXOSmC`=K}V6lUF(K2)Rb8xo_-pXSkSgJ>>~X?z@iM22n2XfM8^l_su?Mq2mVd zfN=OsRDN&Xq$sazNB#^Y&oG_zgObYB!z*|YZ=uZAhhU$@=XdB7tZ^s^nY7%gP(bY{ zSeh(|bEuRVVAnb)417#Zf7B@XD@dg!N zPPFvu%)I7X>VqixN-5P9!~GKrY<){xc9adiBEFoAtPU#k5NAolrb%_JPI&WaO!WW1D+|MI=JgWzX}W$c+ff>3;{(VpgJf*IJW>p z1&L;_9JFY}^6QN9gA?@Oko|z_U<6Sy>r!#dvV1~lJSB|#Q&^!pU-2NJd~S;JHj$nY zQhEGHWvoi&GS5gVOaN2|aFZ%*aK(DCf!shWFjOGysVb4H+Cno_>PiGu2R(t+HOOjE zD6L|O_KT!?1DMgrtJF@atlptL1Pm3NHKq*`s|~F78G>w`Vxo(zv`5tpN*p08NaG?(>_Q?HBWHW?@6An z(~!$um0qNa{p*}gf@`)gSt23J0!+WfcM7y(+;e5$b7c5<>V^zBn+&jT&#@P`aRMZU zG2oMNR_q@{&h}bPu%|_egkzx32{7iW|H6faTH;AA#4aYLm#Y!W#0}^a@?DBUIXgmm z*B#4Cx^(CRylyeiPl>b^=$+HH zl!3b6M{DZ3>e9JgTsBySF;G!MW4Sxl3TV|s(`*61ege@D?b-0bv!>nC=(VK&RcL+G ze8bZLW<)$>iPR|OH!cq}N+pdlyP9OJo7SCgS|8RVm))dL*R*l4Y14AkmR-$C*3H|_ zH}42*R>}T(9K8XSV`Jnb4fG&S>R z`Q!HeqK@kZGnt#^N4N^`XBQ2Eh>}5}dEU#m@Z$L#%%GLciICdpO+Z6{HetsO?#4Rb z^)eZvUC!C@y2yE!a_-0U*9LKP+)Pn<(2&f94U)dr1NXAKJO4a?f-j`JxX0!Fe)d)> zZ}3y@H{Rx%nd(mdtHl@h^CUkGUj35({=W0l3Jdml{pdcMeEdhMD_xo9=EM}Fzd zKDF`W?&YTz-6HI<>3Qq6x(TdvNWg_N)0yv5K9*F7->lSqmvOL8IcYQZa^T^6&PwWx z-xEpE{ZESzHcJZ;mDG`o(xrBbx;gdh;%o4{g_o()(K2ac-iO`^u~B9H!m;iLKZ3*U z{!_wvKi*~c!-OElF!WYk7bQi^|OO8GKaZY`4r`DQa^|j>N zzj&)}kkgX)R#)u5^(#_+^OELPH+5yst?k~CUo2p%NcCO)k;mpE3zeegjiR)X`Z_8w zC{!KBi8>b;37dm!hIagWf8iNQ|HGuP%dx zSjI-X#WMR7D&_R5`{V18=teTM8JW<6d{m3P$ySl!a$*A$0y`|VisUrg+LL~iA7(yb5ppyzV8=u0Vn%;bc}DWe}!7J`Fj zm+sAzZ+-7i)h;Za1yUC|RW$`}n*U;I@XoX;i!>#@o7+V24KLHxP%^fh zNQRr5+{p|bfakr^TISN#R5LWukH&6GGjs?UOJwuCf^-8>#wSZPWA_YGZaOgtv%4b( zfljs-U~GKiyR|am?wOzeQ2Py?F_GzDn+x&f;{IH~4Mk=FK;LYfB|MdN4;~N#)B;2R?(08Pm5ETr ze>jU@^B&(Cgy&`8lREJIkNW^CJKYo3&3-+!%PCRhp<;fNY*0`rW5!_h-sRc zRjMQgN`_4EKLzX(5=bucXMgQTXNpKncTyIG^n^k(uvIQyo82i-dW`aK6=kzg*(T}P zUG6z*g6y~JbA(bB-SXA#K`l5<_7rWr3SP0%QtW+FzmD_6{T-T z%rWoG*{4tpAr^%)i}s1~RmDXns>P0oVh1k5E)j!NC~%m<9QQ48_QlbaOO{m&O%XTF z!17}##OfpY#K$GS39~QrN-f33vw9^%>G+G{JS7L*Ian#(tCSE`>N=Ho!=vo5Z{bm5 zy42Ro{a|5Pj8G>|td&3{`!UEh6QwCc^E9!UE`qYomC|5I#v@FK9$Lvl%H=sqCzMj? zK_1;k@d%+hMmxoaQ0NGQicT_s`yY&HRN`HhuPMiulFg$Lh|~sOYSWZ)J&ywH5<-LM z`2g;N_C52U(!}(qFnaq>vmyPhklsivpH(V<4d6a(?|U8^FdI&}RJ_O2ClrjPV2Oa) zkULi~sZu!y)Bl#3_$j24%`5Mr(g55Sg``SARRZHG9VO~|iKd+APqU%vVd@8usx1RQ zfgZqpBhBjZ&I%BizEeWoCaLayTs@swu1z!4QLNMg%!XYI#&;pZ?FiLyfTEh@sWA;P zOQKkWLQRu=1w!VXv$h|rnHX4&b*bIh<(iblnqe$+sJR9`Rr7F;d6Gsy-KEq2y2{nB zQkGx)@-*FDLcYXzx-wn6!K zby+<0JQb0|NHF23pW(N-VqJ&smC&|JT6vOZt2L8#I2BLOnS zZ}@YdVMfyM72G&y)%eY`aUrzve>3h=R}cBChy2w;{^}ur^^pJn|3m(BwXN?ff}hha zEOz!ah`(1x{7S#HLBizzb;#eCw!W+XDPo~IZOHF(ZzA-``Us<>WcnW#U4k~}h0^$a z`f)ojf)~Vv8uFf|>sg?`$lk_5T7KjDw0n*!i&6M|r;nH8z_6HA`7c%h#BxC6yFAcG zqBKOsE1K%?6>nYqE@7|k=V0hQ>S7keSFMj;2RnT|urs@3eV^Q872K^udK>K( zd*xcTy#0CvK8W1hE%#*ej@x$j$C1iia;+QA&LZ7+A$PXPJzbBx?dbF97`R2QP5Phb zke^)U^smW2Rxf??e@phMth46-MD{`Q!cG57_Gj3A#s47t>X@1J{~-G>`rjo7|AXu; z{D-gq_hkPS1{pl~-;jN{@{^8jbLsrBkv%rtXRSGbx)16O?h6;SdmWh1_2iE`@wgFz z6+w?e+dd&H&0m(i1r&)qE8F|9($xQ7?V*WqCgT1aG3zF2sOaZ8|CT&bQ_)TRS2y*|oLgI=k!!v8Y)7iA;3FZ-$TK~W^Rtn=@i1kix;9i@CpfAw zBWk`nYW7u>0Y}des%|W&Zt50I2#lUhj~=g%w#FL+=E8$+YKJXj(ng}cHb3zG^kA_x z#@sE&c_aq-0&pSg9rso{D;N6(7yBDB)~P3!XL0LNyWW*{?W^q&`{20Zj5tR|+`y~2 z05_9cWbHsQ<5+c?mZQpo#bK+9fKnWeK`POAy*pYT}quho5By00f2tPmYAJLG*I3Ldj4_;4~WUIjoh?NqO^RK^lf_SJ5AN}-fpfkFI*oNC<5zTyu8%bF<81nF_<@}Sn1N4*(PWZ|Jx1UC+-nTRkc;8q zGq#B^=diyWrX(MA&m293+3thU6qq@7Knw(#GwZSM3a~C68P%@Xf!kQOj)3z5$Th-m z7I4@l3gikLH+l~@uqLY;gDYg<*1W_8s0IY8%7nUG-%*9#LuaAT{-J`brui(A5?&jQ zA32LZAiy3JStk~qfq;-JB5XKG5Uj@*yAw-QvA};x{#qivgIH*f zFHDrE?KGsPQTuH-P5?WnsZEC4KmEmIkbF1CelhvXIWqPcSBIgy*%w3(ZsuI=EKG zAyCuA!gajDCZOjpE`+%k+KaH-A_xpt{6kQ9j9R4JQDEPRu<^){i1Lr}N|2zl`?$q= z3Z;i&#phuqaBBVwNG?xv|?KrR4MD5CWityk5-ZAbZdl&uXaBW9I_2=|8}Lbi#^ zr00~$bPI9}$Slqy^dXTv%OIN_E=%#)lNJ(|fS?#eI|YYO@QKDmVHt49*PN$B`4$$6 zO^QRvr6E)}hWZFNGpoRhxnMp|fKBbj4al>M#7Nb21-fvGal93gQ}k^RDr;HyY$O9Tfwm)MhdSoY=__b%M5g)lp!i%ylZB}Ofl}d zFn(2}n}T)C6`8F>W&nf9vnxL^pmR{-I)SLU6y+oZr6RlbI9NGbPFKGX*9=^xIg$39 z_N=WAsddY!{k*Mq+kn}H&=Z%e7@;PtHD_3=jtpcZANd6l26p*PzcvEI`MsEa*Kbc;C?^`sa$|CgX(?z&N?I2)2f;n%!o?*~@YC8v za1C9^b(-VaO|!e?ImMo~$$qSR7#`J+2VlA_>GUX!_j@RFa4R>&mwzvbKTyEG+sRLy z<_p)k1q>8@lSAN>bZN+?QQ-W#~jmKdD~GuOA$!AC}a=2RDpZHH>*S zjE6Q%kQ)BCk^L&Zum0<+t>XJCzOUl@e*t`#`4{*;-IIWXRg}9viu@;h*9h!qT=D)V zeAmGKHhpcoXZ~OK-a369q9mlGm>UtCe&YK;{~Pn-TAS~iysrGj_p^+{wtp0F0Y?ns z7TE2!75=JG1I72+II<2EcS8AtvFj8_FKegou#<#SurXfAGlK|@g4Qi>hw*kFACYL=HGPltC9qx!;6jKv0o02DcXw{HZ;l2&?0_4{N4_Pw~1zRjZxE){sV~hhN+9-VX2)(`yym6Z^==pr6s6$SWw1Xo_?pBWziW-G`h)-AtY)uZI{-nF5Sb6q6nd$eq81v_fHPFLm38k-CoHnN!&mgNa!*4fnB(6XYpD*~N zc80gMDnR=4Fh6s*&erTp$QRvrGMkqgj+y&!j~tMZJHdGj9Ol2QTmG=9wp1#1nw&8N zdieJ(pIA5tp#2g@Di$_9l^(0Ol^nD@*1r&3dT`ihCT;nn&N1#YLV2L`_T{4+{*Lc! z`Qv(gE;_JcK52gN6Y`zeORd&G;lr{C)kWu?vKP}ON2rs`2Z+~TgS*twp~15!w!OVZ z`(B<^H+^w2q`%eRo6^>yKjmyfgbx}PvT7f^-F_cFsBEyv?XH`N2Zj1}H7qtrARi+( zXTIm_&(*grScOGNw`MA z_>rNdm;2e@hNMRyJO@D~tak@Uyp>_u$ng1*>t|*Tjoti_tv)h&F5LC@U-sP8?k7o&e#U`cZ=bo9T8r}5xLhMu3rk3gGNZoGytZTS&UF9iby#VvB^7fZFJ<) zp55EqBOxl0JB=e3wnl08?^kPg1F78BBS&d_Yv{PCLzki!7*R2;5n%7=*{JBKYY%MW zAM`zqUL1*z{3QmV8`EtUW1$kgoe|o%7$$6s`FbTLA~wcQHx_a%c4Z`Hn{4bMa_s2S z*xxO~&1B>3p>ZR2aZ^`f*Vu){mc=J$%ja80{bB88uXipfplF)SRcFJ{`5V@O~ZV4$+jWm3GB0ew&zYj+~ zm!NVtgA-lC*;{6LIl?lOHW5{>vagctQ9TjHObDy>PRdi!D8MK1Cj#mxlKwzyHIowu zjS^Z__OgS|QM~UIS;jn9F=~|4=zu1-^as50PHwZ*613kPu#6p=c+|JF+XSip%q@j6 z_h{YAsJix)ok1y^GE(NNQ|9{pzxD54fT}OyQ|DNz8+uY_XH#YDZ@q(Rt&>+@k4jV5 zO$+`5g+L~4qNK`mtu~~kgMfNi8K`C$qS9F=m|gB_=Jt;)2^cGY<3}-Os+nGvnFj8e0LLTcGab0GW9b-e z_yHZk{!{j9uJ+h{_L**~7%wJv@B`*|c)(c^#77lpt!j0Z3;6?u6S8nahq441?9v=g zxHT&f?SGF82^U!hqxOfW%7h8Bx_98$Zcr^ZbDgKeXb&Bf#G&m*$<)0~! z8xA6T%^*Oz1oR|f@Dzc+me@Ihp$mu=D4F8P8)xC98h6q;A76mcE4d`TDhcC5YVskO znx7-Kke+rB8#-<@bF-Q7Y#%JVO*IEh$nJWY{T80_0_EB&)ywIz&*{9E^PZ67SerA5 z${yCc@g9{kB07`jn)?cs+l^cytpnO?hzg?Z#>%|2$<-#t@ zLh(3c4n<-W5rvvWuwDVlz0h*1;KU@(L1pa0V7?35(0PCD?l>n=r+u++q>BQ-K#*~k+feWsT^1pa$XnQiApRsjhNUInlRk|dK0j+|v05Ni;nDAjh_x>f3`K6ONbeowv#Z*$P8Pupr zbf}5*tr>`{iKW);?5YudsEJUhCC53Hbkfe!pl*&;PkFWIo?7=%+NC7u6~0rm2P;01 zwIZ(7vogF9dZLTU`fUe0e~P6pF~7$@86;t0d2IDJY!uBr0?Y{pSEaae^!9KP1}qZ+ zrk`g2nB(Yg=SGvvGY4$nIIxf6xT&SJ8C})667E$nZ_$`ntWV4K^d?WAkN2y}?B(4j zu}Z-Vpk?q#k&g-Db0oY|AS){p4>!QcQ?A1=l+(IuUBEJ@J<~hDtgeB&O`^I#!1Y~3 w8n0H7@>ai&E8)|<>X=D&{YL)=d^g|B1(6K`M*6M(4<6>}yZ`_I literal 0 HcmV?d00001 diff --git a/src/Documentation/images/rigidbroken_uff.gif b/src/Documentation/images/rigidbroken_uff.gif new file mode 100644 index 0000000000000000000000000000000000000000..7519d586c46c18e32b3a57423d81b46a3b9b5499 GIT binary patch literal 7613 zcmeI0XD}RWyMTqf(Id)>AQC0)uHL&uiRc6gkwo;~dr1)lt6Ocg)h(-AtX_k)`VzfF zU5f~!m(9sL-=A;h%=gVXXHJ%0Iun5uL4aYA^-6uwdDoXlKL)Bu5iO2{>3^(bai95qG#Wv(#(yd!w1f92d|v1^w|4RHE24Y6}OF0EURy1GPniX~I^REDdDw zaHh1^_QC)XKAQ75l;WOdUCDTXdJ^ajrml1Xu3w;;tyz!wT4sWDT*TCuO;?%sMBUSB zD4#{zPaxh5HdM@`+}AMKTByp!7XP2yi-V}DXn{IdOowE#+tSM1THO@ zb~^9IAXLn0X{breb`Yi#&92idZZ}qJSY|dnC$>FRZ8ZoJIFtB3-{|GkP|c*$mlbH+J$ zT2BoSm*om0=XLkmEVa#keo~SJ3r-!tncMp^+UJHk`r+Inh%*2dpCMEBvGH?woOjX- zM+ejEQk2;@Vol3RM~}C6 zD)Y$8$|}Cx-2v6KZ}vGO`#2~C{6}^9Ue!-^hr2YCy9`!1E`4x%P`w(?n zS{}V~W-%Tp7B?!_e)jlGH#8wc+q0P~N4t6e)WPa8h?H5V9Rf|fs~zTEW2+ru|JhnI z%1rX6W{i&hx_X?7E4vzdOH849f=FetYVyM1ebv_^%X?K*d!B8T(_0~LDrZ)S6*_0_ z;T0!y&ZzGv^X~okP+qo!E~ktBI2S3xB7bJ_>2ffsBC1vBlILtCl61sxrS0L~*;*){ zvDA99v0~>ckjd_RGu|pL$tx@3LnBV=li&qDFv&FuUxE@uZA;YbUF^E_=qByf;o=&; zi>*`!?X?cBU;aRn-k;e2f^wDDM)Q8WI24lj@osCZh5Py_(|8$sJY!s`ptayfbAHPA zS*U$&z08_$9tqFEUhGotDQfQb)0|!Les%k}9cHJyK$zTF#$}K^9$6XXzTo?|bkjtZ z7&I0{^*Wp6zH~cT-)&nyE4EuQ#a+}N%0t;1W{Fgo1@1uZ*l@|`^=g+Wr=3@QzWd8#!U5d!hlF9nZo@63-4-=je6t652d;wo{imD?49zRh~UoF~y|o8n<&7)EFTDnZABZNg`Q~rovEl zQT&4FBHo6~#GCNP)Cm0u&B=V0;}Ufpgh3i+vRL-GR6iDB1lRnEFg-??3?p8kFkdSJ zkIT%d%S`$;r)o2f%k6c_Os6qZ4b8_D?y+S?B*g!o+#&x6`~M>Pe-qIyB5r&jv;4>z z2Yn0XnToKCI;cQf1_`!9&0<7TpIXJPEJj-S$?iel#4DPSS|?0UYpi>zu>+SvG)1A- zNoWP~q5y4OjojoHgm9bG?dJmzKfd|^eg(B`#@VDFC4z089V>y~LS140wpn5$8t_xnF17UmeVTivl~jju-M2U=HV z@$5L~zZ8|5L5?y;Pt;6uI(^rfvANvJz;bR@WUjDF3O3de`w3=jur#=)f8Wj!Xu=b0 z`RaD3cIMlbHz{|$udtU@unG(xUo(l6sXLPN(rMS{2G><}{%)_9htGvst93WaPpC)# zvkz3FDQxllg=iipuqWnC>X0aeuS4E;NHi1gIXv((#>++g2UX^X97!y4OoCnjIWELC zT#E&YxztW@sZiHW-ZQMI`O0LaQ!|ykv^!5^9wBftW1Z%5@)yw?=0;Ll{vx`7)Pl=t z*4%9=Th`WMlER%FeCrS_y}!Y*SM){?o{&+CVuSIT@#^U6Hm z%pF~9(i!>eD!cgJs&WBe4p#`&DMAU#%~nk?T<$i~=wE81aDtb6qQ`r3JDvU9SNp|G zG!qBt(8?>VA*rhKpMp<>6gDPN*4M{zcB9yn1>U`D&2JGO&(1(8ZXdpF!3zl&L8y4_ z5`C75O>rQ(pgT0M}iLzVJsB79sADD!Z@m zND}0a%qgBr6+N(ZkG$r~ze73ElQdo($`zB(P{iB`$#Rb}`C|E}hG#E-pa=NYyL_?^ z^*$QqG2fRUtGg&^h#*2F+L-~IxumYlix`WwKFYfdRDG%tNpHN)&ucY;FZD(kitL6N$ZKqj_;K38N?{1N z0(I!94c;p!49}Z*lZ89v0-Y37k>3jW*ZQ1vR1>fk3vM<{_-|M0Soc5Zwd?^LX zW@A|e>hXPiRj8d!Ragsgr`(VBtK0fQx~I)$ZXGuZE`R9Uh?jHkqVfu=)*(;QVs584 z-gPfH36H3aM1GE=jx!JV?x}s{b5Vc;Q(;7PPAXJW7lIyba>&gQF1v( zq;q(M?`TZ*)LCRiMCR!cR-5&W2v!(4d^E`;rz1Qmq@i;>MQk!GJSFHbd^~B!MCGex z8QaL1U{#YMbof?aAD7YXy@zpV`0*#u=<}>+x4_emJDZ8t46Y1#r{uif~W{r_9Hr5-H#x(eYVhx&C$5THB1U=?ZeG13Z zA0NFwE05KCe14ZNg5bD~q^Y|E=sjw`a+~;pv^!v$dgMPGm}5(jVkY+F4L)95zP>^| zCbFy&CmxEqK_aZQ`@sEUcDnf=rGsNt7w?SdN(}g=$!LIEjkBCTmrr+%NY`a&b_Bx63!6F5pICa`;(Xpn8!5^ zwv9?+w4qkzsC!2BT)ZHs8=#){b39S4xIh*eP3c1v2^RgSZ53FSjx{poY;&;F zZ|2C{W-w8_##eiSCZiQ=OZq4f`TP%+PVgi9DC`*RjyBIZ)Lw;Ph#OM!E;kJ@sQM8_S=Y% zs6hHsLU~^^5RuIY*r_0HbfhnDtVB5Jw4Ru5SBd|@w+sI=V!d0F&cioRJEXhqtUad2 zimwxX?({u>roHfc103X6;{45Vu0m@$bskhvFo&qD+il<8YnkqA*=arUbP}pQ+hle1 zT~<_*&_DNaV`tz7RCC=z7mhW9a&h9N%HHL#ZDeqSyb3Sw?f? z&H!nE=+}psmksirgQdT%eYig49TFoU)g)%|=qDL6Mv3ypQM^ir|IzqN`obbsU~Qo? zMZbW*zSZdI8|DdRp5gqV-$vii&r`#HGHaLg1~O}ps;F-?gKwQI0DBgZ5buc!NrHwm zF7{-Js|kNP^k(@Ua#^Q8cI_LO73Q-Pi+jzp_E}4iXJZLyX7$yFsZ?g%ErPAtTeqOU zX)r}k;e6|cy9;XLElk&cGfoc}w2tt4+PT*n`g$JMaj?|#qezeEYOkGCzty^*KH=&x zQR0{Ue!GUA{Bhe$J?M#{GR@u7kWb5nr}1E+cF4M%E#csG@$$??H!8l(b)Uwq=yDiW z^^0&gZFWr{x@rE){Am^ui||L1p*J44(T^{E+&+{#n3K>))~~B4d}3&2@)6u>m1r6j zX7ipPrKDG;QNAPjP<4U~<)=gotCj%rPf(B=K3Y#7`$%bhpWLUUo2j-qoN#ZK<2EH) zg@y5%wiwkiEs1+O|HDMEmh!PhT7yy!^1h^?+PDOX;E{ zq208Q7`%qQr-U_%D15<54IH50ghQm8*Q;eqyViqi)$(sX=RwvFsDDUI?35{rF#z)$ zSdJ%ue7C{Pnm#DfeJEA?Zk#@;A8J8oDAFg-V+kqM?h!_&hXwG6e`G>CsNrL$tYgLD zO*;0z$n<3+Tj_WiUCUIjz^_A_?jr$hzl~mN<{kXg0#I+Un%?^KYpbCmzHU_dc;fR> zIS#rC)E~e48Q#GUNFhe(&$1aslDh!p?}Emqp48=^a0ApH7LLc7ZRUyYmOSMpG2o8! zE=&aC(~O!m-SWKinBD_3bwLw-)sv~d<)v<}2ra#B?_7p!2Rr}m!8a5>#Yzf@P)o!l z_RevPxC_EJAM~|L{&}oM1xTY5@x0UjpER2P#4d1p{4e)XO<1>c%0^b|0#10;kt8*SwqI?7nbC#(V;AjvQ0a7E8;5v93V;dneef+uau zyAU&DuN7a+vWg(^*KdQ$`35pT6`)y7P$dw50jvU?BY@SsJ|=TSXdbPl(muM>^4b-V z`Ev77&X(Pz3C9=TiKboC1?=X1l-@#Q_6P1f=(yeDmNB~bV6H*SIA|~J`^cqr`!DvF``yO8K?k+8 z@$yy}p(>M~BV4!MABF4aDOgOseLH_J=M@)p+H6zRb~c@)*LFT$@T2u&5E|fXq35SIr1rm{=x5@(?#YvD#cKq zyUq<&A~qTG#^Q5HrTn{=BKJd=TSmw=$hvXm3Bp3oETm%gQ0Ch%;VfYmq!Zyipm>npT|B)uThXHf#G`G2AsRWl?Kqs@=gV;rp#VqjAN_S@*%XR%RA92jDd@m zG61EDeI^`{%yIu!(iin5cSw0D_Z?F3z*qa)$gG>|F3ppDlN=GrR@!TB`e3wfRCo%6 z;h~FpfX2&_@Ki;^`-16Pn6X`KblcI8(3@f{{uBcv%v~N#R6vo{2!DE?b`dMMU?^6^ zP;-Rso_Hou$B+@8!O+5!-V7dE4^FaJwKkAknauKH;m>y9#EA{x9ey!qAh|c8%_JXN zHzHe)gw+@oxgBa$zHiom%@y)WeFu&$-8p)7$J#=rYr4_gfWe=!ZEIf?@oa4oS&$Fj zT2sYHLwH6C!&UJ2c`2|P?sY}c&w%W2DJH(4#gq9f@b<2zPcydb0u`@;Cn2E8@9*nM t+PEB_1vv8u+V9y-?h zdmBzf=~rISq*3Ls=he6_NdF6Wda#C5@L87Pf-epKs?&C;l$cqKw=OGx$rx^={NmMR zDsR8fGjHcrLay^t+^0OjP$InoC(zuNVi;w8SM|-7)-UX?Z9by;_VVfYVk6{_>IdT2 zts%dd`^O$soAOUa^=rE(**O|1MLGu?8}!adHm=dVa#lDf=?r?;xCStbM*Hao7e|~U z8EYV%R@lIrHGe%k3|A?QeH`?VG)Tua^(W5xJkkHmbT}5$*~w`m*~ajvOKun^C%ZIu zQc|=feb%fVf1;7$%ZK3ct#jzpNx`NJomo#j{*I2EI%G%Q(Nw+FzT-AtxAA(VQuKza z@}|i1=oUHY_Vrx$nC6jx%vQ_#$`v=Bs?=%16r&bJ9EIOg2_PO=CEa?FkAnAt7c!^{ zuX4|zofp&z5el<{E}&N=ym*7CGcz!6n{N1c5hLU;h0o+tw>kP$sW@e91ppCvLt$}V zd~v*XlJyO@!ex)V6uoyTMJidTM|!0N`dz%Knoree*9cqCo?}VBzjTN0Zmh{adScYP zkylUaSDtKa`@-&GiCLv~PG$Cs)w&XZN`Thgq}8h8)%sKx{{p*}`=^^lprbc9ixDWx z0J1{Vw3uUB#YnqrMq-S6at1Qi9eL_qWgnt$<5{r}20wsox>K%Y_cU|5>KhlapCkPt z)8`_>^W_PFicu1noDUmn+hHs3Bd&$VY$b500^9T7Z}}<1zBYHm7Yog3!nZiQWp|fx zjas7iZwQNxVxt==iQ|AzRmfJzi9UDuH@Abn6`i~P;uEt*?nbT9ze8%T!qk&(VKG?6FCbc;r*Au=$7<}A9Ehv z3qiF{RXx_n=}%uG&hk@fHmQ0}tMZrRd4y)#nHHmT zwTk;?p__+?cpTEROs*M?_e<1$4$hF_Gw%DCOtE$8HXg+7N8^6psA2`eSUUh_XUG4NlaCG1oyStQhux zsE$P$K;=ea=@MQFgWsaRmwKor{iWOT1(Qugp>vya+<2PM2~Dh4fe#j3Lx6hqz$$)3 zicQPthll1VoU-e5Bp7s(E|h>#E*4eG2$ju=q=?fC#yOoMGjXuWz0e>-nqo5?rLuT9q-fAU{bn|YwQv&WaD_C4_b zN!QJ^3?fbgb4~FO-;MA5^)`UTw|$yfRST1*-U}u>CZx$bx2s}J2k4(o=@@2RTl!KI za6xtmV-j2(iasN(E(1Lq0^G?T;z(?|-=zw@-`p^>WHtp9%XtYF&04I~p*%9Sxe06U z%}GgPm$k&bIT9N`C$6FQEMktCh4#Q<7E z-WEN=`w^`M&n3GRe#P;I@v8v6=3!Reuw@Yq;Odi3Pu93&>vNOl5t zqHjmb>ErbPb8O5_7$G4$n6*eXCdsbjscIsGM8ekR$nXesVl^$+kfB5P5k@3=;r!m@ zA!X4FX>7B~kGp=(FgmLvJ5G+BNq+WynWxQxo&OPlJ+gVnC7m# zrazoyeOq&##mWE2OhEc!^re8KxAu*QZxWG0x=Modle(ABN|TEPY>q$CVJ@5+2w7es^QI9PS>^q!gP;@p&^Bx8 zkBtp2<-hXH482qldHIQpka30Biz{OO4v=Lo7w_E(JxbYGF0jgRIP|g!s~yb$WQ+V! znv;y5xWJr&TY!WT4u~0qX*fXN89&tQ+1bmE-yqeRI{=FiP@*J$0vDY<>~j+vCeWe!5hy_)Y&)jg zLQ#1F15W70+-^;q+eyQuzu&5mEF?W9P`W;M>Yp7oW%wk5934tU)J5btOs1N@;=FlQ zPkH;UWBaYgzq6dO-jWes@62dytXGZ*sl}vJI%epp&v*JUZPB3c~oJN71 zW2TtIhZBpZhjMql_a}0o!Ulv_3klr{r46nFB?q6JLuVeFYPC`IML!R0A7OKDXHmsS zGnoO)dLJS^r!w1zHyo30>Rtlv*zXyQv!e;?Kd0wijHn8mY_Z?+LT1L2nC}Y1&Qlbv z8lZ}4FdkG(<7jM9v3>0ck{VFxOu9X_LCb^P!^V0SDT}=1w^Pw*ZK*9^Ib9Or6tBO@3EYH~1k60$B8EYpqA^yHcWB zGDFW-1P~M<1V%b%C0-94(mYH9AO3Qk+qmLuM6Cz(HF#3T7@}@3Hu1OU- zfK#2I1l(N=!WF1mxrA!K^eV|J2p8`uXDl!ag9lhuPWeWCny%X zXPZSF1?BW$T^nGFC&&Yj_D=ISqfSuA+W-=HqO9;A@zH?&P_@ICw;U5H0tLf9JG<@* zDZJ()FOoUWpV(mwU|)~Hr}YWC-doZmzXB;T@JvX2r~|$VWCd@s4J;S{FNZXURN&S? zT_|wFz=A~p(Fl?v7K3vFi46b!tDfudJpv3Ybv~{^cEne=b*wCKUkl@1%7%&^-M)^ZQw}be#T0T&c z*|J}lji&{Sk>?|w*uLiuiR+#+xrf4VKR;2e*r_-+G>Bt``K#0+8al2|ZCMMd&pnhp zq&+TVieu<4Aw6(ptfnoF!#)QeaX;pH!ls&XfbVy(^+_BMIe%{w5b-SOisRIAafH2I zUe|#Q|BiwlB3dzq! zeU=j2Dcy*%h%e52vO@{9b7<7K{6(D5xTfp`#K_R9AmSX5$%+qxagBK0T}6*xfAY1# zERnZwugqWa#G0w0#}f3PS8qx01{8C zaRAt!RGT0GjQ`jA1eT~8m()VSD+y{8cV4z0Yn7}-^BzP%!=J!j{weo1#$50i6DXyM zk*p^E$L<9E@moZn-vi3)?x=EA@C($tv4H|25W1rWL0R=cKLwiuhY$ZERM l?fYNdY`Vo8@f_8sIypCNIq3HuTuel)U+dwN>$v;q-vBIWZK41G literal 0 HcmV?d00001 diff --git a/src/Documentation/rigidbodies.html b/src/Documentation/rigidbodies.html index 505558d3e..9ecc6e403 100644 --- a/src/Documentation/rigidbodies.html +++ b/src/Documentation/rigidbodies.html @@ -1,176 +1,366 @@ - - - - - - - - Extended Rigid Bodies - PuzzleScript Documentation - - - - - - - - - - - - - -

    - -
    + + + + + + + + Extended Rigid Bodies - PuzzleScript Documentation + + + + + + + + + + + + + + + +

    -

    - -

    Extended Rigid Bodies

    -

    - -

    -So, it's nice to be able to push blocks around that are larger than 1x1. An initial effort to achieve this will look like this: -

    -

     Edit[ >  Player | BigBlock ] -> [  >  Player | > BigBlock  ]     
    -[ Moving BigBlock | BigBlock ] -> [ Moving BigBlock | MOVING BigBlock ]
    -

    +

    +

    Extended Rigid Bodies

    +

    +

    + Note that this can't be extended to having multiple players because if one player is blocked, the whole turn is cancelled. +

    +

    Multiple Parallel-Moving Players, Multiple Extended Bodies

    +

    + +

    +If we have many characters that want simultaneously to push several objects, but some may succeed and some may not, what do we do? Well, it's actually not so finnicky (at least if the characters are all trying to move in the same direction) - we do a three stage process: +

      +
    • First we propagate movements like before,
    • +
    • then we see what things can't move,
    • +
    • then we extend this blockage back the chain,
    • +
    • then we clear all crate movements, and only try to move non-blocked crates.
    • +
    +

    (Checking this example in the visual debugger is strongly recommended). +

    +

     Edit( 1. Propagate movements forward )
    +[ > Mover | Movable ] -> [ > Mover | > Movable ]
    ++ [ > Box ] [ Box ] -> [ > Box ] [ > Box ]
    ++ [ > Crate ] [ Crate ] -> [ > Crate ] [ > Crate ]
    ++ [ > Chest ] [ Chest ] -> [ > Chest ] [ > Chest ]
    ++ [ moving Glue | Glue ] -> [ moving Glue | moving Glue ]
    +
    +( 2. Propagate obstructions backwards )
    +[ > Mover | stationary Obstacle ] -> [ stationary Mover | Obstacle ]
    ++ [ > Crate ] [ stationary Crate ] -> [ stationary Crate ] [ Crate ]
    ++ [ > Box ] [ stationary Box ] -> [ stationary Box ] [ Box ]
    ++ [ > Chest ] [ stationary Chest ] -> [ stationary Chest ] [ Chest ]
    ++ [ moving Glue | stationary Glue ] -> [ stationary Glue | Glue ]
    +
    +( 3. remove all movement, keep a flag )
    +[ > Movable ] -> [ Movable wanna_move ]
    +
    +( 4. propagate movement only on wanna_move things )
    +( ie redo step 1 but with WANNA_MOVE added to the first line below )
    +[ > Mover | Movable WANNA_MOVE ] -> [ > Mover | > Movable ]
    ++ [ > Box ] [ Box ] -> [ > Box ] [ > Box ]
    ++ [ > Crate ] [ Crate ] -> [ > Crate ] [ > Crate ]
    ++ [ > Chest ] [ Chest ] -> [ > Chest ] [ > Chest ]
    ++ [ moving Glue | Glue ] -> [ moving Glue | moving Glue ]
    +
    +( 5. cleanup, remove flag )
    +[ wanna_move ] -> [ ]
    +

    + Which seems to work quite well, I'd say! The notion of propagating information around like this is generally a powerful technique in puzzlescript and puzzle games generally. +

    +

    One Player, Unlimited Extended Bodies

    +

    +You don't have to define individual objects for each crate in regular sokoban, so why do you have to do it for extended bodies? Well, you don't; you can instead have a single CRATE block type and encode information about directional connections as 'metadata' on top of it (CRATE_U, CRATE_D, CRATE_L, CRATE_R) that rules use to propagate movements within single extended bodies like so: +

    + +

     Edit(Propagate movements within and between extended bodies)
    +[ > Pusher | Pushable ] -> [ > Pusher | > Pushable ]
    ++ up [ moving Crate Crate_U | Crate ] -> [ moving Crate Crate_U | moving Crate ]
    ++ down [ moving Crate Crate_D | Crate ] -> [ moving Crate Crate_D | moving Crate ]
    ++ left [ moving Crate Crate_L | Crate ] -> [ moving Crate Crate_L | moving Crate ]
    ++ right [ moving Crate Crate_R | Crate ] -> [ moving Crate Crate_R | moving Crate ]
    +
    +(Move connections along with the crates themselves)
    +[ moving Crate stationary Crate_connection ] -> [ moving Crate moving Crate_connection ]
    +
    +(If any crate can't move, cancel the turn. This works because there's only one player.)
    +[ > Crate | wall ] -> cancel  
    +
    +

    +Et voilà: +

    + +

    + This can be extended to cover multiple players, but you have to back-propagate blocked movements, so it's a biiit trickier. Here's a sketch if you want to look, but it's only one of several ways of trying to do it. +

    Trying and failing to do Multiple Players + Multiple Extended Bodies

    +

    +So I'm going to take the above example and push it beyond its limits. Let's say we take the above example but have two characters: a regular player, and a shadow player that moves in the opposite direction. +

    +

     Edit[ > player ] [ stationary shadow ] -> [ > player ] [ < shadow ]

    +

    +The problem here is, what happens if you push the same extended body from two directions at once? Well, as you can see, the directions end up fighting with eachother and can't resolve: +

    + +

    +A question you might ask yourself here would be: how would you expect this to resolve anyway? Well, in this case you could detect conflicting movements as obstructions like so in this step 2: +

    +

     Edit( 2. Propagate obstructions backwards )
    +[ > Mover | stationary Obstacle ] -> [ stationary Mover | Obstacle ]
    +
    + (The next lines deal with directional conflicts:)
    ++ [ ^ Crate | < Crate ] -> [ stationary Crate | stationary Crate ] 
    ++ [ ^ Crate | > Crate ] -> [ stationary Crate | stationary Crate ] 
    ++ [ ^ Crate | v Crate ] -> [ stationary Crate | stationary Crate ] 
    +
    ++ [ v Crate | < Crate ] -> [ stationary Crate | stationary Crate ] 
    ++ [ v Crate | > Crate ] -> [ stationary Crate | stationary Crate ] 
    ++ [ v Crate | ^ Crate ] -> [ stationary Crate | stationary Crate ] 
    +
    ++ [ < Crate | > Crate ] -> [ stationary Crate | stationary Crate ] 
    ++ [ < Crate | ^ Crate ] -> [ stationary Crate | stationary Crate ] 
    ++ [ < Crate | v Crate ] -> [ stationary Crate | stationary Crate ] 
    +
    ++ [ > Crate | < Crate ] -> [ stationary Crate | stationary Crate ] 
    ++ [ > Crate | ^ Crate ] -> [ stationary Crate | stationary Crate ] 
    ++ [ > Crate | v Crate ] -> [ stationary Crate | stationary Crate ] 
    +
    ++ [ > Crate ] [ stationary Crate ] -> [ stationary Crate ] [ Crate ]
    ++ [ > Box ] [ stationary Box ] -> [ stationary Box ] [ Box ]
    ++ [ > Chest ] [ stationary Chest ] -> [ stationary Chest ] [ Chest ]
    ++ [ moving Glue | stationary Glue ] -> [ stationary Glue | Glue ]

    +Which gives us this: +

    + +

    +And I might be feeling good about myself, but there's still a lot of ways that movement-resolution might not work out: +

    + +

    + So you throw in this as well to detect when two objects are trying to move together and stick one of them in place: +

    +

     Edit+ [ > Mover | | < Mover ] -> [ stationary Mover | | < Mover ]

    +

    + This patches up that behaviour quite nicely! +

    + +

    + But wait, no what about this: +

    + +

    + Well that's no good at all. +

    + Anyway, this goes on and on and you can patch things up until the cows come home but ultimately you'll be nervous you're missing something. It's a gigantic and subtle kettle of worms, as I hope I've demonstrated. +

    + So how did I go about trying to help the engine support this in a more robust way? Read on! +

    +

    The RIGID keyword

    +

    +Initially I thought the solution would be to add a keyword to objects, to mark them as rigid. However, I later realized that it was far nicer, and cooler, and more in-keeping with the engine, to think of rigidity as something you could apply instead to rules. +

    +Let's just dive in and explain exactly what it is. +

    + (I kinda regret adding this keyword to the engine. However it's in, and I'm going to continue to support it because it's there. However, it's quite complex and idiosyncratic. I'm going to depart from my normal expositional style for this section - the next 'specification' is more technical, and as much for my future reference as for expositional purposes. In the past I was very enthusiastic about this feature, but I can't keep it up - I now know the extents and capabilities of the PuzzleScript language waaay better than I did when I was desinging it in the beginning - many of the reasonably elegant techniques above were just not things I knew how to do when I was first designing the language, whence the heavy-handed and rather mystical RIGID keyword.) +

    + I'm first going to give the technical definition/specification (based on my post-hoc analysis of the code and creation of tests to figure out its semantics), then I'm going to give a high-level explanation of how/why it works, and in the final section I'll show an example of how you might use it. +

    +

    Semantics of RIGID

    +
      +
    • The RIGID keyword is a keyword that can be applied to any rule.
    • +
    • When a RIGID RULE triggers movements, the MOVEMENTS are tagged as being RIGID, and coming from a particular RULE-GROUP. +

      +

        +
      • Even if a rigid rule doesn't change the state of the level (let's say it tries to apply movements that already exist), it will still tag all movements as being rigid and coming from its rule-group.
      • +
      • Assigning ACTION counts as assigning a movement.
      • +
      • Assigning STATIONARY counts as assigning a movement.
      • +
      • There does need to be some movement mentioned though: rigid [ Crate ] -> [ Crate ] Sfx0 will not cause anything to be marked as rigid.
      • +
      • If a movement is implicitly removed, by it being mentioned on the left but not on the right, it is not marked as being rigid (e.g. rigid [ right Crate ] -> [ Crate ] will not cause anything to be marked as rigid, whereas rigid [ right Crate ] -> [ stationary Crate ] will).
      • +
      • Even if subsequent rules (even in other rule-groups) alter the movement of this object, the RIGID tag persists.
      • +
      • Even if subsequent rules (even in other rule-groups) delete the objects, the RIGID tag persists and any subsequent unresolvable movements created on that tile in that layer will trigger the rigid cancellation.
      • +
      • Even a RIGID rule removing an object on a layer causes that position and that layer to be marked as RIGID.
      • +
      +

      + I guess the rule-of-thumb is that RIGID applies a tag to a layer when any movement-related stuff is mentioned on the RHS of a rule. +

      +
    • +
    • During the MOVE-RESOLUTION PHASE, if a MOVEMENT cannot be resolved, and if the movement is associated with a RIGID tag, the whole RULE-GROUP is disabled for that turn, and the TURN is simulated again from the beginning. This may happen iteratively, with additional RULE-GROUPS being disabled on subsequent resimulations.
    • +
        +
      • ACTION does not need to resolve - it's ignored during resolution.
      • +
      +
    +

    +

    Hand-Wavey Description of RIGID

    +

    +So, if a rigid object would be one where, if one part can't move, no parts can, a RIGID RULE is a RULE where, if anything it tries to move can't move, then its RULE-GROUP doesn't apply at all (the unresolved rigid movement disables the rule-group that caused it for that turn and resimulates the entire turn). +

    +

    An example using RIGID

    +

    +Let's go back to the broken example right at the start: +

    + +

    +

     Edit[ > Player | BigBlock ] -> [ > Player | > BigBlock ] 
    +[ Moving BigBlock | BigBlock ] -> [ Moving BigBlock | Moving BigBlock ]
    +

    +We want that, if any of the BigBlock pieces don't get to move, that whole rule just doesn't apply. Actually, we also don't want the first rule to apply. So what we do is that we group the rules together using the + symbol, and we mark them as rigid +

    +

     Editrigid [ > Player | BigBlock ] -> [ > Player | > BigBlock ] 
    ++ rigid [ Moving BigBlock | BigBlock ] -> [ Moving BigBlock | Moving BigBlock ]
    +

    and magically it works -

    +

    -

    -So all's good if you have a single rigid block, but if you try to have blocks pushing other blocks it gets complicated. Let's say you want a big block to collide with little blocks. You end up with stuff like this: -

    +

    +So all's good if you have a single rigid block, but if you try to have blocks pushing other blocks it gets complicated. Let's say you want a big block to collide with little blocks. You end up with stuff like this: +

     Edit[ > Player | LittleBlock ] -> [ > Player | > LittleBlock ]
    -
     [ > LittleBlock | LittleBlock ] -> [ > LittleBlock | > LittleBlock ]
     
     rigid [ > LittleBlock | BigBlock ] -> [ > LittleBlock | > BigBlock ]
    -+ rigid [ >  Player | BigBlock ] -> [  >  Player | > BigBlock  ] 
    ++ rigid [ > Player | BigBlock ] -> [ > Player | > BigBlock ] 
     + rigid [ moving BigBlock | BigBlock ] -> [ moving BigBlock | moving BigBlock ]
     + [ > BigBlock | LittleBlock ] -> [ > BigBlock | > LittleBlock ]
    -

    -The rule is, anything that adds motion to a BigBlock has to be marked as rigid. Repeating the code twice isn't so bad, really, but if one has more than two block types, there's no nice way of encompassing all the ways that they can interact. -

    -Let me illustrate with a simple example: let's try to model two crate types, where crates can push crates -

    +

    +The rule is, anything that adds motion to a BigBlock has to be marked as rigid. Repeating the code twice isn't so bad, really, but if one has more than two block types, there's no compact method of encompassing all the ways that they can interact without maybe introducing one thing that I should mention. We'll need to take a few steps back and look at a simple but related scenario: +

    +Let's try to model two crate types, where crates can push crates. +

    -

    +

     Edit=======
     LEGEND
     =======
     
     Crate = OrangeCrate or BlueCrate
    -======
    -RULES     
    -======     
     
    -[ >  Player | Crate ] -> [  >  Player | > Crate  ]     
    +======
    +RULES 
    +====== 
     
    +[ > Player | Crate ] -> [ > Player | > Crate ] 
     [ > Crate | Crate ] -> [ > Crate | > Crate ]
     
    -

    -which works splendidly. But what if we weren't allowed to refer to crate or combine them together into a rulegroup in the second rule? We could try something like: -

    - - - -

     Edit[ >  Player | Crate ] -> [  >  Player | > Crate  ]     
    +

    +Thich works splendidly. But what if we weren't allowed to refer to the Crate but instead had to refer to them individually, or weren't allowed to combine them together into a rulegroup in the second rule? We could try something like: +

    +

     Edit[ > Player | Crate ] -> [ > Player | > Crate ] 
     
     [ > OrangeCrate | OrangeCrate ] -> [ > OrangeCrate | > OrangeCrate ]
     [ > OrangeCrate | BlueCrate ] -> [ > OrangeCrate | > BlueCrate ]
     [ > BlueCrate | OrangeCrate ] -> [ > BlueCrate | > OrangeCrate ]
     [ > BlueCrate | BlueCrate ] -> [ > BlueCrate | > BlueCrate ]
    -you can push around pairs of blocks, but a big alternating sequence of blocks you can't deal with -

    +you can push around pairs of blocks, but a big alternating sequence of blocks you can't deal with: +

    -

    -If only there were some way of looping through these four rules. Well, adding them all to the same rulegroup is one way, but in the case of rigid rules we don't want to cancel the movement of EVERYTHING just because one block can't move - so we need another layer of loopiness. So, let's introduce startloop and endloop; -

    +

    +If only there were some way of looping through these four rules. Well, adding them all to the same rulegroup is one way, but in the case of rigid rules we don't want to cancel the movement of EVERYTHING just because one block can't move (e.g. let's say there's gravity pulling objects down - we don't want one object being prevented from falling to prevent all of them falling) - so we need another layer of loopiness. So, let's introduce startloop and endloop; +

    -

     Edit[ >  Player | Crate ] -> [  >  Player | > Crate  ]     
    +
     Edit[ > Player | Crate ] -> [ > Player | > Crate ] 
     
     startLoop
     
    @@ -181,56 +371,54 @@ 

    Extended Rigid Bodies

    endLoop
    -and voila! -

    +That fixes our weird theoretical problem (in a way that will be useful for solving the more complicated but less theoretical problem): +

    -

    -For the above example, this is identical to saying -

    -

     Edit[ >  Player | Crate ] -> [  >  Player | > Crate  ]     
    +

    +For the above example, this is more or less identical to saying +

    +

     Edit[ > Player | Crate ] -> [ > Player | > Crate ] 
     
     [ > OrangeCrate | OrangeCrate ] -> [ > OrangeCrate | > OrangeCrate ]
    -+[ > OrangeCrate | BlueCrate ] -> [ > OrangeCrate | > BlueCrate ]
    -+[ > BlueCrate | OrangeCrate ] -> [ > BlueCrate | > OrangeCrate ]
    -+[ > BlueCrate | BlueCrate ] -> [ > BlueCrate | > BlueCrate ]
    -

    -However, we don't have this luxury for rigidbodies. So, with all that said, here's what code for a system with several rigid bodies and some small blocks looks like: -

    ++ [ > OrangeCrate | BlueCrate ] -> [ > OrangeCrate | > BlueCrate ] ++ [ > BlueCrate | OrangeCrate ] -> [ > BlueCrate | > OrangeCrate ] ++ [ > BlueCrate | BlueCrate ] -> [ > BlueCrate | > BlueCrate ]

    +

    +However, we don't have this luxury for rigidbodies (Can you tell why not? It's because rigidbodies deactivate entire rule-groups - if our whole game logic is in one giant rule-group we can't selectively delete parts of it). So, with all that said, here's what code for a system with several rigid bodies and some small blocks looks like, thanks to the STARTLOOP and ENDLOOP keywords: +

     Editstartloop
     
     [ > Player | Smallcrate ] -> [ > Player | > SmallCrate ]
     
    -[ >  Player | RedCrate ] -> [  >  Player | > RedCrate  ] 
    +[ > Player | RedCrate ] -> [ > Player | > RedCrate ] 
     + rigid [ moving RedCrate | RedCrate ] -> [ moving RedCrate | moving RedCrate ]
    -+ [ >  Crate | RedCrate ] -> [  >  Crate | > RedCrate  ] 
    ++ [ > Crate | RedCrate ] -> [ > Crate | > RedCrate ] 
     
    -[ >  Player | GreenCrate ] -> [  >  Player | > GreenCrate  ] 
    +[ > Player | GreenCrate ] -> [ > Player | > GreenCrate ] 
     + rigid [ moving GreenCrate | GreenCrate ] -> [ moving GreenCrate | moving GreenCrate ]
    -+ [ >  Crate | GreenCrate ] -> [  >  Crate | > GreenCrate  ] 
    -
    ++ [ > Crate | GreenCrate ] -> [ > Crate | > GreenCrate ] 
     
    -[ >  Player | BlueCrate ] -> [  >  Player | > BlueCrate  ] 
    +[ > Player | BlueCrate ] -> [ > Player | > BlueCrate ] 
     + rigid [ moving BlueCrate | BlueCrate ] -> [ moving BlueCrate | moving BlueCrate ]
    -+ [ >  Crate | BlueCrate ] -> [  >  Crate | > BlueCrate  ] 
    ++ [ > Crate | BlueCrate ] -> [ > Crate | > BlueCrate ] 
     
    -[ > Crate | SmallCrate ] -> [  > Crate | > SmallCrate ]
    +[ > Crate | SmallCrate ] -> [ > Crate | > SmallCrate ]
     
     endloop
    -

    -And this gives us the image at the beginning of this document: -

    - -

    -I apologise that it's not easier to do. I really thought the idea of rigid rules would trivialize a lot of the hard work, but it still left things a bit gross. It's messy, code that uses it is going to be messy/hacky. But, it's there if you want it. -

    -If anyone has understood this and has a suggestion for a way they think is better for dealing with extended bodies, I would really like to hear it - I'll happily rip out the current rigid body system if there's something nicer : ) +

    +And this gives us the image at the beginning of this document. It works even if there are multiple player characters moving in multiple directions at a single time: +

    + +

    +Anyway, that's it. Thanks for bearing with me through this rather labourious description. Drop me a mail if you noticed I made a mistake anywhere. This material is hairy, so it's very possible there are some errors above. +

    - - - - - + + + + + diff --git a/src/Documentation/visual_debugger.html b/src/Documentation/visual_debugger.html index 9368aa3f4..ef7cd78d3 100644 --- a/src/Documentation/visual_debugger.html +++ b/src/Documentation/visual_debugger.html @@ -60,7 +60,7 @@

    Visual Debugger

    - +

    If you run a game with the verbose_logging prelude option you can avail yourself of the visual debugger.

    As you play a level with this option, you'll see information about what rules were applied. By hovering over them (or tapping them on touchscreen), you can see the state of the level after the indicated rules were applied: @@ -70,6 +70,10 @@

    Visual Debugger

    Changes are indicated with black+white (or your custom background/text colours) outlined boxes. In the above example, a new movement has been added to the indicated tile by the rule on line 139.

    Movements are indicated with arrows overlayed on top of the cell. They don't tell you what object the movements are attached to in that cell, they just tell you that the movement exists somewhere in the cell (if you have several overlapping objects on several layers moving in multiple directions at once, you will see all its movement arrows overlaid). +

    + The presence of rigid movements in a cell are indicated by a small r in the top-left: +

    +

    diff --git a/src/demo/rigid_11.txt b/src/demo/rigid_11.txt new file mode 100644 index 000000000..464dea296 --- /dev/null +++ b/src/demo/rigid_11.txt @@ -0,0 +1,104 @@ +title Extended Body Example: 1 Player, 1 Extended Object +author increpare +homepage www.puzzlescript.net + +( + Example for + https://www.puzzlescript.net/Documentation/rigidbodies.html#one_one +) + +======== +OBJECTS +======== + +Background +LIGHTGREEN GREEN +11111 +01111 +11101 +11111 +10111 + + +Target +DarkBlue +..... +.000. +.0.0. +.000. +..... + +Wall +BROWN DARKBROWN +00010 +11111 +01000 +11111 +00010 + +Player +Black Orange White Blue +.000. +.111. +22222 +.333. +.3.3. + +Crate +Orange +00000 +0...0 +0...0 +0...0 +00000 + +======= +LEGEND +======= + +. = Background +# = Wall +P = Player +* = Crate +@ = Crate and Target +O = Target + +======= +SOUNDS +======= + +Crate MOVE 36772507 + +================ +COLLISIONLAYERS +================ + +Background +Target +Player, Wall, Crate + +====== +RULES +====== + +[ > Player | Crate ] -> [ > Player | > Crate ] +[ > Crate ] [ stationary Crate ] -> [ > Crate ] [ > Crate ] +[ > Crate | Wall ] -> cancel + +============== +WINCONDITIONS +============== + +All Target on Crate + +======= +LEVELS +======= + +###### +#....# +#.#..# +#.*@.# +#.O@.# +#.p..# +###### diff --git a/src/demo/rigid_many_broken.txt b/src/demo/rigid_many_broken.txt new file mode 100644 index 000000000..25b39eabe --- /dev/null +++ b/src/demo/rigid_many_broken.txt @@ -0,0 +1,176 @@ +title Broken Rigid Body example +author Anonymous +homepage www.puzzlescript.net + +verbose_logging + +( + +Example for +https://www.puzzlescript.net/Documentation/rigidbodies.html#many_many + +) + +======== +OBJECTS +======== + +Background +white + +Target +DarkBlue + +Wall +DarkGrey + +Player +Blue +..0.. +..0.0 +00000 +.000. +.0.0. + +Shadow +Black +..0.. +0.0.. +00000 +.000. +.0.0. + +( three multi-cells blocks ) +Crate +orange + +Chest +green + +Box +red + +( 1-cell small block ) +Small +darkred +..... +.000. +.000. +.000. +..... + +( sticky, multicellular block when in contact ) +Glue +pink +.000. +00000 +00000 +00000 +.000. + +( a flag to know what is allowed move ) +Wanna_Move +#ff00ff +..... +..... +..0.. +..... +..... + +======= +LEGEND +======= + +. = Background +# = Wall +P = Player +S = Shadow +* = Crate ++ = Box +% = Chest +o = Small +g = Glue + +( blocks that can be moved by the player ) +Movable = Crate or Box or Chest or Small or Glue + +( all things that can move and push blocks ) +Mover = Player or Shadow or Movable + +( things that can stop a movement if they are stationary ) +Obstacle = Wall or Mover + +======= +SOUNDS +======= + +================ +COLLISIONLAYERS +================ + +Background +Target +Obstacle +Wanna_Move + +====== +RULES +====== + +[ > player ] [ stationary shadow ] -> [ > player ] [ < shadow ] + +( 1. Propagate movements forward ) +[ > Mover | stationary Movable ] -> [ > Mover | > Movable ] ++ [ > Box ] [ stationary Box ] -> [ > Box ] [ > Box ] ++ [ > Crate ] [ stationary Crate ] -> [ > Crate ] [ > Crate ] ++ [ > Chest ] [ stationary Chest ] -> [ > Chest ] [ > Chest ] ++ [ moving Glue | stationary Glue ] -> [ moving Glue | moving Glue ] + +( 2. Propagate obstructions backwards ) +[ > Mover | stationary Obstacle ] -> [ stationary Mover | Obstacle ] ++ [ > Crate ] [ stationary Crate ] -> [ stationary Crate ] [ Crate ] ++ [ > Box ] [ stationary Box ] -> [ stationary Box ] [ Box ] ++ [ > Chest ] [ stationary Chest ] -> [ stationary Chest ] [ Chest ] ++ [ moving Glue | stationary Glue ] -> [ stationary Glue | Glue ] + +( 3. remove all movement, keep a flag ) +[ > Movable ] -> [ Movable wanna_move ] + +( 4. propagate movement only on wanna_move things ) +( ie redo step 1 but with WANNA_MOVE added to the first line below ) +[ > Mover | stationary Movable WANNA_MOVE ] -> [ > Mover | > Movable ] ++ [ > Box ] [ stationary Box ] -> [ > Box ] [ > Box ] ++ [ > Crate ] [ stationary Crate ] -> [ > Crate ] [ > Crate ] ++ [ > Chest ] [ stationary Chest ] -> [ > Chest ] [ > Chest ] ++ [ moving Glue | stationary Glue ] -> [ moving Glue | moving Glue ] + +( 5. cleanup, remove flag ) +[ wanna_move ] -> [ ] + +============== +WINCONDITIONS +============== + +======= +LEVELS +======= + +################### +#.................# +#............s....# +#...*..g.g.#......# +#...*......#...g### +#...*...o.%%%.....# +#...+++.o.%.......# +#....+....%%%.....# +#....+.........g..# +#....p.gg.........# +################### + +######### +#.......# +#.p.+...# +#...+...# +#...+.s.# +#.......# +######### diff --git a/src/demo/rigid_many_many.txt b/src/demo/rigid_many_many.txt new file mode 100644 index 000000000..e26fd4c66 --- /dev/null +++ b/src/demo/rigid_many_many.txt @@ -0,0 +1,202 @@ +title BROKEN Rigid Body example +author Anonymous +homepage www.puzzlescript.net + +verbose_logging + +( + +BROKEN Example Game FOR ILLUSTRATION PURPOSES ONLY. DO NOT USE. + +Example for +https://www.puzzlescript.net/Documentation/rigidbodies.html#many_many + +) + +======== +OBJECTS +======== + +Background +white + +Target +DarkBlue + +Wall +DarkGrey + +Player +Blue +..0.. +..0.0 +00000 +.000. +.0.0. + +Shadow +Black +..0.. +0.0.. +00000 +.000. +.0.0. + +( three multi-cells blocks ) +Crate +orange + +Chest +green + +Box +red + +( 1-cell small block ) +Small +darkred +..... +.000. +.000. +.000. +..... + +( sticky, multicellular block when in contact ) +Glue +pink +.000. +00000 +00000 +00000 +.000. + +( a flag to know what is allowed move ) +Wanna_Move +#ff00ff +..... +..... +..0.. +..... +..... + +======= +LEGEND +======= + +. = Background +# = Wall +P = Player +S = Shadow +* = Crate ++ = Box +% = Chest +o = Small +g = Glue + +( blocks that can be moved by the player ) +Movable = Crate or Box or Chest or Small or Glue + +( all things that can move and push blocks ) +Mover = Player or Shadow or Movable + +( things that can stop a movement if they are stationary ) +Obstacle = Wall or Mover + +======= +SOUNDS +======= + +================ +COLLISIONLAYERS +================ + +Background +Target +Obstacle +Wanna_Move + +====== +RULES +====== + +[ > player ] [ stationary shadow ] -> [ > player ] [ < shadow ] + +( 1. Propagate movements forward ) +[ > Mover | stationary Movable ] -> [ > Mover | > Movable ] ++ [ > Box ] [ stationary Box ] -> [ > Box ] [ > Box ] ++ [ > Crate ] [ stationary Crate ] -> [ > Crate ] [ > Crate ] ++ [ > Chest ] [ stationary Chest ] -> [ > Chest ] [ > Chest ] ++ [ moving Glue | stationary Glue ] -> [ moving Glue | moving Glue ] + +( 2. Propagate obstructions backwards ) +[ > Mover | stationary Obstacle ] -> [ stationary Mover | Obstacle ] + + (the next lines deal with directional conflicts) ++ [ ^ Crate | < Crate ] -> [ stationary Crate | stationary Crate ] ++ [ ^ Crate | > Crate ] -> [ stationary Crate | stationary Crate ] ++ [ ^ Crate | v Crate ] -> [ stationary Crate | stationary Crate ] + ++ [ v Crate | < Crate ] -> [ stationary Crate | stationary Crate ] ++ [ v Crate | > Crate ] -> [ stationary Crate | stationary Crate ] ++ [ v Crate | ^ Crate ] -> [ stationary Crate | stationary Crate ] + ++ [ < Crate | > Crate ] -> [ stationary Crate | stationary Crate ] ++ [ < Crate | ^ Crate ] -> [ stationary Crate | stationary Crate ] ++ [ < Crate | v Crate ] -> [ stationary Crate | stationary Crate ] + ++ [ > Crate | < Crate ] -> [ stationary Crate | stationary Crate ] ++ [ > Crate | ^ Crate ] -> [ stationary Crate | stationary Crate ] ++ [ > Crate | v Crate ] -> [ stationary Crate | stationary Crate ] + +(also one space removed) ++ [ > Mover | | < Mover ] -> [ stationary Mover | | < Mover ] + ++ [ > Crate ] [ stationary Crate ] -> [ stationary Crate ] [ Crate ] ++ [ > Box ] [ stationary Box ] -> [ stationary Box ] [ Box ] ++ [ > Chest ] [ stationary Chest ] -> [ stationary Chest ] [ Chest ] ++ [ moving Glue | stationary Glue ] -> [ stationary Glue | Glue ] + +( 3. remove all movement, keep a flag ) +[ > Movable ] -> [ Movable wanna_move ] + +( 4. propagate movement only on wanna_move things ) +( ie redo step 1 but with WANNA_MOVE added to the first line below ) +[ > Mover | stationary Movable WANNA_MOVE ] -> [ > Mover | > Movable ] ++ [ > Box ] [ stationary Box ] -> [ > Box ] [ > Box ] ++ [ > Crate ] [ stationary Crate ] -> [ > Crate ] [ > Crate ] ++ [ > Chest ] [ stationary Chest ] -> [ > Chest ] [ > Chest ] ++ [ moving Glue | stationary Glue ] -> [ moving Glue | moving Glue ] + +( 5. cleanup, remove flag ) +[ wanna_move ] -> [ ] + + +============== +WINCONDITIONS +============== + +======= +LEVELS +======= + +######### +#.......# +#..p...p# +#.......# +#.......# +#..***..# +#.......# +#s...S..# +#.......# +######### + +######### +#.......# +#.......# +#.......# +#...s...# +#..+++..# +#...p...# +#.......# +#.......# +######### diff --git a/src/demo/rigid_many_many2.txt b/src/demo/rigid_many_many2.txt new file mode 100644 index 000000000..363dd4855 --- /dev/null +++ b/src/demo/rigid_many_many2.txt @@ -0,0 +1,190 @@ +title Rigid Body example +author Anonymous +homepage www.puzzlescript.net + +verbose_logging + +( + +Example for +https://www.puzzlescript.net/Documentation/rigidbodies.html#many_many + +) + +======== +OBJECTS +======== + +Background +white + +Target +DarkBlue + +Wall +DarkGrey + +Player +Blue +..0.. +..0.0 +00000 +.000. +.0.0. + +Shadow +Black +..0.. +0.0.. +00000 +.000. +.0.0. + +( three multi-cells blocks ) +Crate +orange + +Chest +green + +Box +red + +( 1-cell small block ) +Small +darkred +..... +.000. +.000. +.000. +..... + +( sticky, multicellular block when in contact ) +Glue +pink +.000. +00000 +00000 +00000 +.000. + +( a flag to know what is allowed move ) +Wanna_Move +#ff00ff +..... +..... +..0.. +..... +..... + +======= +LEGEND +======= + +. = Background +# = Wall +P = Player +S = Shadow +* = Crate ++ = Box +% = Chest +o = Small +g = Glue + +( blocks that can be moved by the player ) +Movable = Crate or Box or Chest or Small or Glue + +( all things that can move and push blocks ) +Mover = Player or Shadow or Movable + +( things that can stop a movement if they are stationary ) +Obstacle = Wall or Mover + +======= +SOUNDS +======= + +================ +COLLISIONLAYERS +================ + +Background +Target +Obstacle +Wanna_Move + +====== +RULES +====== + +[ > player ] [ stationary shadow ] -> [ > player ] [ < shadow ] + +( 1. Propagate movements forward ) +[ > Mover | stationary Movable ] -> [ > Mover | > Movable ] ++ [ > Box ] [ stationary Box ] -> [ > Box ] [ > Box ] ++ [ > Crate ] [ stationary Crate ] -> [ > Crate ] [ > Crate ] ++ [ > Chest ] [ stationary Chest ] -> [ > Chest ] [ > Chest ] ++ [ moving Glue | stationary Glue ] -> [ moving Glue | moving Glue ] + +( 2. Propagate obstructions backwards ) +[ > Mover | stationary Obstacle ] -> [ stationary Mover | Obstacle ] + + (the next lines deal with directional conflicts) ++ [ ^ Crate | < Crate ] -> [ stationary Crate | stationary Crate ] ++ [ ^ Crate | > Crate ] -> [ stationary Crate | stationary Crate ] ++ [ ^ Crate | v Crate ] -> [ stationary Crate | stationary Crate ] + ++ [ v Crate | < Crate ] -> [ stationary Crate | stationary Crate ] ++ [ v Crate | > Crate ] -> [ stationary Crate | stationary Crate ] ++ [ v Crate | ^ Crate ] -> [ stationary Crate | stationary Crate ] + ++ [ < Crate | > Crate ] -> [ stationary Crate | stationary Crate ] ++ [ < Crate | ^ Crate ] -> [ stationary Crate | stationary Crate ] ++ [ < Crate | v Crate ] -> [ stationary Crate | stationary Crate ] + ++ [ > Crate | < Crate ] -> [ stationary Crate | stationary Crate ] ++ [ > Crate | ^ Crate ] -> [ stationary Crate | stationary Crate ] ++ [ > Crate | v Crate ] -> [ stationary Crate | stationary Crate ] + +(also one space removed) ++ [ > Mover | | < Mover ] -> [ stationary Mover | | < Mover ] + ++ [ > Crate ] [ stationary Crate ] -> [ stationary Crate ] [ Crate ] ++ [ > Box ] [ stationary Box ] -> [ stationary Box ] [ Box ] ++ [ > Chest ] [ stationary Chest ] -> [ stationary Chest ] [ Chest ] ++ [ moving Glue | stationary Glue ] -> [ stationary Glue | Glue ] + +( 3. remove all movement, keep a flag ) +[ > Movable ] -> [ Movable wanna_move ] + +( 4. propagate movement only on wanna_move things ) +( ie redo step 1 but with WANNA_MOVE added to the first line below ) +[ > Mover | stationary Movable WANNA_MOVE ] -> [ > Mover | > Movable ] ++ [ > Box ] [ stationary Box ] -> [ > Box ] [ > Box ] ++ [ > Crate ] [ stationary Crate ] -> [ > Crate ] [ > Crate ] ++ [ > Chest ] [ stationary Chest ] -> [ > Chest ] [ > Chest ] ++ [ moving Glue | stationary Glue ] -> [ moving Glue | moving Glue ] + +( 5. cleanup, remove flag ) +[ wanna_move ] -> [ ] + + +============== +WINCONDITIONS +============== + +======= +LEVELS +======= + +######### +#.......# +#..p....# +#.......# +#.......# +#..***..# +#.......# +#....S..# +#.......# +######### + diff --git a/src/demo/rigid_one_unlimited.txt b/src/demo/rigid_one_unlimited.txt new file mode 100644 index 000000000..46dc3eeeb --- /dev/null +++ b/src/demo/rigid_one_unlimited.txt @@ -0,0 +1,180 @@ +title One player, unlimited rigidbodies +author increpare +homepage www.increpare.com + +( + +This is a sample of + +- Unlimited rigid bodies +- 1 Player (should be extendable) + +It's made as an example for the extended rigid body tutorial here: + +https://www.puzzlescript.net/Documentation/rigidbodies.html + +) + +======== +OBJECTS +======== + +Background +green + +Wall +BROWN DARKBROWN +00010 +11111 +01000 +11111 +00010 + +Player +Black Orange White Blue +.000. +.111. +22222 +.333. +.3.3. + + Crate +Yellow orange +00000 +01110 +01110 +01110 +00000 + + +(The directional overlays bellow establish connections between crates) + + Crate_U +orange +.000. +..... +..... +..... +..... + + Crate_D +orange +..... +..... +..... +..... +.000. + + Crate_L +orange +..... +0.... +0.... +0.... +..... + + Crate_R +orange +..... +....0 +....0 +....0 +..... + + +======= +LEGEND +======= + +. = Background +# = Wall +P = Player + +w = Crate and Crate_U +x = Crate and Crate_D +a = Crate and Crate_L +d = Crate and Crate_R + +e = Crate and Crate_U and Crate_L +z = Crate and Crate_D and Crate_L +q = Crate and Crate_U and Crate_R +c = Crate and Crate_D and Crate_R + +r = Crate and Crate_L and Crate_R +t = Crate and Crate_D and Crate_U + +1 = Crate and Crate_D and Crate_L and Crate_R +2 = Crate and Crate_U and Crate_L and Crate_R +3 = Crate and Crate_U and Crate_D and Crate_L +4 = Crate and Crate_U and Crate_D and Crate_R + +0 = Crate and Crate_U and Crate_D and Crate_L and Crate_R + +5 = Crate + + Crate_Connection = Crate_U or Crate_D or Crate_L or Crate_R + +Pusher = Player or Crate +Pushable = Crate or Crate_connection + +======= +SOUNDS +======= + + Crate MOVE 36772507 + +================ +COLLISIONLAYERS +================ + +Background +Player, Wall, Crate + Crate_U + Crate_D + Crate_L + Crate_R + +====== +RULES +====== + +(For making maps easily: uncomment out the next few lines + press action to discard all boundaries and recreate them) + +( [ action player ] [ Crate_connection ] -> [ action player ] [ ] ) +( up [ action player ] [ Crate | Crate ] -> [ action player ] [ Crate Crate_u | Crate Crate_d ] ) +( right [ action player ] [ Crate | Crate ] -> [ action player ] [ Crate Crate_r | Crate Crate_l ] ) + +(Propagate movements within and between extended bodies) +[ > Pusher | Pushable ] -> [ > Pusher | > Pushable ] ++ up [ moving Crate Crate_U | Crate ] -> [ moving Crate Crate_U | moving Crate ] ++ down [ moving Crate Crate_D | Crate ] -> [ moving Crate Crate_D | moving Crate ] ++ left [ moving Crate Crate_L | Crate ] -> [ moving Crate Crate_L | moving Crate ] ++ right [ moving Crate Crate_R | Crate ] -> [ moving Crate Crate_R | moving Crate ] + +(Move connections along with the crates themselves) +[ moving Crate stationary Crate_connection ] -> [ moving Crate moving Crate_connection ] + +(If any crate can't move, cancel the turn. This works because there's only one player.) +[ > Crate | wall ] -> cancel + +============== +WINCONDITIONS +============== + +======= +LEVELS +======= + +############### +#.............# +#..ca...ca.dz.# +#.ce..d1e...w.# +#.t....w......# +#.w.d1a..5.5..# +#....w....5...# +#......dz.....# +#...p...t..dz.# +#..x..cre...w.# +#..w..w...5...# +#.............# +############### \ No newline at end of file diff --git a/src/demo/rigid_parallel_many.txt b/src/demo/rigid_parallel_many.txt new file mode 100644 index 000000000..6d901cf7f --- /dev/null +++ b/src/demo/rigid_parallel_many.txt @@ -0,0 +1,158 @@ +title Extended Bodies:Multiple Parallel Players, Multiple Extended Object +author Anonymous +homepage www.puzzlescript.net + +verbose_logging + +( + +THIS IS A DELIBERATELY BROKEN GAME, JUST FOR ILLUSTRATION + +see https://www.puzzlescript.net/Documentation/rigidbodies.html#parallel_many +) + + +======== +OBJECTS +======== + +Background +white + +Target +DarkBlue + +Wall +DarkGrey + +Player +Blue +..0.. +..0.0 +00000 +.000. +.0.0. + +( three multi-cells blocks ) +Crate +orange + +Chest +green + +Box +red + +( 1-cell small block ) +Small +darkred +..... +.000. +.000. +.000. +..... + +( sticky, multicellular block when in contact ) +Glue +pink +.000. +00000 +00000 +00000 +.000. + +( a flag to know what is allowed move ) +Wanna_Move +#ff00ff +..... +..... +..0.. +..... +..... + +======= +LEGEND +======= + +. = Background +# = Wall +P = Player +* = Crate ++ = Box +% = Chest +o = Small +g = Glue + +( blocks that can be moved by the player ) +Movable = Crate or Box or Chest or Small or Glue + +( all things that can move and push blocks ) +Mover = Player or Movable + +( things that can stop a movement if they are stationary ) +Obstacle = Wall or Mover + +======= +SOUNDS +======= + +================ +COLLISIONLAYERS +================ + +Background +Target +Obstacle +Wanna_Move + +====== +RULES +====== + +( 1. Propagate movements forward ) +[ > Mover | Movable ] -> [ > Mover | > Movable ] ++ [ > Box ] [ Box ] -> [ > Box ] [ > Box ] ++ [ > Crate ] [ Crate ] -> [ > Crate ] [ > Crate ] ++ [ > Chest ] [ Chest ] -> [ > Chest ] [ > Chest ] ++ [ moving Glue | Glue ] -> [ moving Glue | moving Glue ] + +( 2. Propagate obstructions backwards ) +[ > Mover | stationary Obstacle ] -> [ stationary Mover | Obstacle ] ++ [ > Crate ] [ stationary Crate ] -> [ stationary Crate ] [ Crate ] ++ [ > Box ] [ stationary Box ] -> [ stationary Box ] [ Box ] ++ [ > Chest ] [ stationary Chest ] -> [ stationary Chest ] [ Chest ] ++ [ moving Glue | stationary Glue ] -> [ stationary Glue | Glue ] + +( 3. remove all movement, keep a flag ) +[ > Movable ] -> [ Movable wanna_move ] + +( 4. propagate movement only on wanna_move things ) +( ie redo step 1 but with WANNA_MOVE added to the first line below ) +[ > Mover | Movable WANNA_MOVE ] -> [ > Mover | > Movable ] ++ [ > Box ] [ Box ] -> [ > Box ] [ > Box ] ++ [ > Crate ] [ Crate ] -> [ > Crate ] [ > Crate ] ++ [ > Chest ] [ Chest ] -> [ > Chest ] [ > Chest ] ++ [ moving Glue | Glue ] -> [ moving Glue | moving Glue ] + +( 5. cleanup, remove flag ) +[ wanna_move ] -> [ ] + +============== +WINCONDITIONS +============== + +======= +LEVELS +======= + +################### +#.................# +#.................# +#...*..g.g.#......# +#...*......#...g### +#...*...o.%%%.....# +#...+++.o.%.......# +#....+....%%%.....# +#....+.....P...g..# +#....p.gg.........# +################### diff --git a/src/demo/rigid_parallel_unlimited.txt b/src/demo/rigid_parallel_unlimited.txt new file mode 100644 index 000000000..7ec58b76e --- /dev/null +++ b/src/demo/rigid_parallel_unlimited.txt @@ -0,0 +1,212 @@ +title Many parallel players, unlimited rigidbodies +author increpare +homepage www.increpare.com + +verbose_logging + +( + +This is a sample of + +- Unlimited rigid bodies +- 1 Player (should be extendable) + +It's made as an example for the extended rigid body tutorial here: + +https://www.puzzlescript.net/Documentation/rigidbodies.html + +) + +======== +OBJECTS +======== + +Background +green + +Wall +BROWN DARKBROWN +00010 +11111 +01000 +11111 +00010 + +Player +Black Orange White Blue +.000. +.111. +22222 +.333. +.3.3. + + Crate +Yellow orange +00000 +01110 +01110 +01110 +00000 + + +(The directional overlays bellow establish connections between crates) + + Crate_U +orange +.000. +..... +..... +..... +..... + + Crate_D +orange +..... +..... +..... +..... +.000. + + Crate_L +orange +..... +0.... +0.... +0.... +..... + + Crate_R +orange +..... +....0 +....0 +....0 +..... + +BLOCKED +red +..... +..... +..0.. +..... +..... + +======= +LEGEND +======= + +. = Background +# = Wall +P = Player + +w = Crate and Crate_U +x = Crate and Crate_D +a = Crate and Crate_L +d = Crate and Crate_R + +e = Crate and Crate_U and Crate_L +z = Crate and Crate_D and Crate_L +q = Crate and Crate_U and Crate_R +c = Crate and Crate_D and Crate_R + +r = Crate and Crate_L and Crate_R +t = Crate and Crate_D and Crate_U + +1 = Crate and Crate_D and Crate_L and Crate_R +2 = Crate and Crate_U and Crate_L and Crate_R +3 = Crate and Crate_U and Crate_D and Crate_L +4 = Crate and Crate_U and Crate_D and Crate_R + +0 = Crate and Crate_U and Crate_D and Crate_L and Crate_R + +5 = Crate + + Crate_Connection = Crate_U or Crate_D or Crate_L or Crate_R + +Pusher = Player or Crate +Pushable = Crate +Solid = Crate or Player + +======= +SOUNDS +======= + + Crate MOVE 36772507 + +================ +COLLISIONLAYERS +================ + +Background +Player, Wall, Crate + Crate_U + Crate_D + Crate_L + Crate_R +BLOCKED + +====== +RULES +====== + +(For making maps easily: uncomment out the next few lines + press action to discard all boundaries and recreate them) + +( [ action player ] [ Crate_connection ] -> [ action player ] [ ] ) +( up [ action player ] [ Crate | Crate ] -> [ action player ] [ Crate Crate_u | Crate Crate_d ] ) +( right [ action player ] [ Crate | Crate ] -> [ action player ] [ Crate Crate_r | Crate Crate_l ] ) + + +startloop + +(I'm using ACTION to mark 'BLOCKED's as old to allow the loop to exit once no new BLOCKEDs have been added) +[ stationary BLOCKED ] -> [ action BLOCKED ] + +[ > Pusher | no BLOCKED Pushable ] -> [ > Pusher | > Pushable ] ++ up [ moving Crate Crate_U | no BLOCKED Crate ] -> [ moving Crate Crate_U | moving Crate ] ++ down [ moving Crate Crate_D | no BLOCKED Crate ] -> [ moving Crate Crate_D | moving Crate ] ++ left [ moving Crate Crate_L | no BLOCKED Crate ] -> [ moving Crate Crate_L | moving Crate ] ++ right [ moving Crate Crate_R | no BLOCKED Crate ] -> [ moving Crate Crate_R | moving Crate ] + + +(If a crate can't move, we have to back-propagate the can't-move-ness, including possibly through players) +[ > Solid | wall ] -> [ > Solid BLOCKED | wall ] + +[ no BLOCKED > Solid | BLOCKED Solid ] -> [ BLOCKED > Solid | BLOCKED Solid ] ++ up [ BLOCKED Crate Crate_U | no BLOCKED Crate ] -> [ BLOCKED Crate Crate_U | BLOCKED Crate ] ++ down [ BLOCKED Crate Crate_D | no BLOCKED Crate ] -> [ BLOCKED Crate Crate_D | BLOCKED Crate ] ++ left [ BLOCKED Crate Crate_L | no BLOCKED Crate ] -> [ BLOCKED Crate Crate_L | BLOCKED Crate ] ++ right [ BLOCKED Crate Crate_R | no BLOCKED Crate ] -> [ BLOCKED Crate Crate_R | BLOCKED Crate ] + + +(Then we remove all movements from BLOCKED crates, along with the BLOCKED marker itself) +[ BLOCKED moving Solid ] -> [ BLOCKED stationary Solid ] + +[ stationary BLOCKED ] [ moving crate ] -> [ stationary BLOCKED ] [ stationary crate ] +endloop + +[ BLOCKED ] -> [ ] + +(To wrap it all up, move connections along with the crates themselves) +[ moving Crate stationary Crate_connection ] -> [ moving Crate moving Crate_connection ] + +============== +WINCONDITIONS +============== + +======= +LEVELS +======= + +############### +#..ca.........# +#.ce....ca....# +#.t...d1e.....# +#.w....w......# +#....d1ap5.dz.# +#....pw...5.w5# +#......dz.....# +#.......t..dz.# +#..x..cre...w.# +#..w..w...5...# +#.............# +############### diff --git a/src/demo/rigid_scott1.txt b/src/demo/rigid_scott1.txt index 342552aff..b378f53c6 100644 --- a/src/demo/rigid_scott1.txt +++ b/src/demo/rigid_scott1.txt @@ -1,8 +1,13 @@ -title Iterated Extended Rigid Body Test +title Extended Body Example: 1 Player, Multiple Extended Objects author Scott Hughes ( -usable in the case where there's only a single player that's pushing stuff around. + +Usable in the case where there's only a single player that's pushing stuff around. + +Example for +https://www.puzzlescript.net/Documentation/rigidbodies.html#one_many + ) ======= @@ -63,15 +68,18 @@ RULES startloop +(Propagate movements through crates of different types.) [ moving Box1 | Box1 ] -> [ moving Box1 | moving Box1 ] [ moving Box2 | Box2 ] -> [ moving Box2 | moving Box2 ] [ moving Box3 | Box3 ] -> [ moving Box3 | moving Box3 ] [ moving Box4 | Box4 ] -> [ moving Box4 | moving Box4 ] +(Extend the movements between crates of different types.) [ > Box | Box ] -> [ > Box | > Box ] endloop +(Just cancel the whole turn if something can't move.) [ > Box | Wall ] -> cancel ============= diff --git a/src/demo/rigidfail1.txt b/src/demo/rigidfail1.txt index 4d97d949f..486c6909c 100644 --- a/src/demo/rigidfail1.txt +++ b/src/demo/rigidfail1.txt @@ -1,8 +1,11 @@ -title Naive bodies +title BROKEN Naive Extended Bodies author increpare homepage www.puzzlescript.net -(naive implementation of rigid bodies) +( +naive/broken implementation of rigid bodies +see https://www.puzzlescript.net/Documentation/rigidbodies.html#Introduction +) ======== OBJECTS @@ -82,6 +85,7 @@ RULES [ > Player | BigBlock ] -> [ > Player | > BigBlock ] [ moving BigBlock | BigBlock ] -> [moving BigBlock|moving BigBlock] + ============== WINCONDITIONS ============== diff --git a/src/js/editor.js b/src/js/editor.js index 6145d093a..0f996d453 100644 --- a/src/js/editor.js +++ b/src/js/editor.js @@ -280,7 +280,8 @@ function addToDebugTimeline(level,lineNumber){ objects:new Int32Array(level.objects), movements:new Int32Array(level.movements), commandQueue:level.commandQueue.concat([]), - commandQueueSourceRules:level.commandQueueSourceRules.concat([]) + commandQueueSourceRules:level.commandQueueSourceRules.concat([]), + rigidMovementAppliedMask:level.rigidMovementAppliedMask.map(a=>a.clone()), }; diff --git a/src/js/engine.js b/src/js/engine.js index a29bf5907..74a15fd01 100644 --- a/src/js/engine.js +++ b/src/js/engine.js @@ -782,6 +782,7 @@ function RebuildLevelArrays() { level.mapCellContents_Movements = new BitVec(STRIDE_MOV); _movementVecs = [new BitVec(STRIDE_MOV),new BitVec(STRIDE_MOV),new BitVec(STRIDE_MOV)]; + _rigidVecs = [new BitVec(STRIDE_MOV),new BitVec(STRIDE_MOV),new BitVec(STRIDE_MOV)]; _o1 = new BitVec(STRIDE_OBJ); _o2 = new BitVec(STRIDE_OBJ); @@ -885,8 +886,8 @@ function restoreLevel(lev) { for (var i=0;i 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"] + ["(\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"] + ["(\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"] + ["========\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"] + ["========\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"] + ["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"] + ["(\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"] + ["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"] + ["(\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"] + ["(\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"] + ["(\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"] + ["(\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"] + ["(\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] + ["========\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"] + ["(\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"] + ["(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"] + ["(\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"] + ["(\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] + ["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 increpare\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] + ["title Simple Block Pushing Game\nauthor increpare\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] + ["========\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] + ["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 increpare\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] + ["title Simple Block Pushing Game\nauthor increpare\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] + ["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] + ["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] + ["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] + ["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 increpare\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] + ["title Simple Block Pushing Game\nauthor increpare\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 increpare\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] + ["title Simple Block Pushing Game\nauthor increpare\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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["\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] + ["\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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] - ],*/ + /* [ + "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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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 increpare\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"] + ["title Kettle\nauthor increpare\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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["========\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"] + ["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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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 [ @@ -391,1150 +391,1170 @@ var testdata = [ ],*/ [ "100 objects", - ["title Simple Block Pushing Game\nauthor increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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 increpare\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"] + ["(\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 increpare\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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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"] + ["( 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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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"] + ["========\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"] + ["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"] + ["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"] + ["========\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"] + ["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 increpare\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"] + ["title EYE EYE EYE\nauthor increpare\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"] + ["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 increpare\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"] + ["title Several Rigid Bodies\nauthor increpare\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"] + ["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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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"] + ["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"] ], [ "Synonym confusion", - ["title Simple Block Pushing Game\nauthor increpare\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nRed\n\nPlayer\nOrange\n\nFloorB2\nYellow\n\nFloorB1\nGreen\n\nFloorMain\nBlue\n\n=======\nLEGEND\n=======\n\nFloorB2AndDown = FloorB2\nFloorB1AndDown = FloorB1 and FloorB2AndDown\nFloorMainAndDown = FloorMain and FloorB1AndDown\n\n. = Background\nP = Player\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFloorB2\nFloorB1\nFloorMain, Player\n\n======\nRULES\n======\n\n==============\nWINCONDITIONS\n==============\n\nno Player\n\n=======\nLEVELS\n=======\n\n...\n..P\n",[1],"background:0,0,0,\nbackground player:1,0,0,\n",0,"1496933845000"] + ["title Simple Block Pushing Game\nauthor increpare\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nRed\n\nPlayer\nOrange\n\nFloorB2\nYellow\n\nFloorB1\nGreen\n\nFloorMain\nBlue\n\n=======\nLEGEND\n=======\n\nFloorB2AndDown = FloorB2\nFloorB1AndDown = FloorB1 and FloorB2AndDown\nFloorMainAndDown = FloorMain and FloorB1AndDown\n\n. = Background\nP = Player\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFloorB2\nFloorB1\nFloorMain, Player\n\n======\nRULES\n======\n\n==============\nWINCONDITIONS\n==============\n\nno Player\n\n=======\nLEVELS\n=======\n\n...\n..P\n", [1], "background:0,0,0,\nbackground player:1,0,0,\n", 0, "1496933845000"] ], [ "a = b and b #393", - ["title Simple Block Pushing Game\nauthor increpare\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\nO = Target\n\nab = crate\n@ = ab and crate\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n\n======\nRULES\n======\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\n",[0,2,2,1,0],"background wall:0,0,0,0,0,0,\n0,0,background:1,background crate:2,background player:3,1,\n1,0,0,background target:4,1,1,\n1,1,0,0,0,0,\n1,2,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1499256887390.9216"] + ["title Simple Block Pushing Game\nauthor increpare\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\nO = Target\n\nab = crate\n@ = ab and crate\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n\n======\nRULES\n======\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\n", [0, 2, 2, 1, 0], "background wall:0,0,0,0,0,0,\n0,0,background:1,background crate:2,background player:3,1,\n1,0,0,background target:4,1,1,\n1,1,0,0,0,0,\n1,2,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 0, "1499256887390.9216"] ], [ "Rule direction inference test (#407)", - ["title Simple Block Pushing Game\nauthor increpare\nhomepage www.puzzlescript.net\ndebug\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[ > Player | Crate ] -> [ > Player | ^ Crate ]\n\n[ horizontal Player ] [ vertical Crate ] -> [ horizontal Player ] [ horizontal Crate ]\n\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#..*.#\n#....#\n######\n\n",[2,3,2,2,1,1,0,2,3,0,2,1,0,"undo",1,0,3,3,2,"undo","undo",2,3,3,0,1],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,1,1,\nbackground crate:2,1,0,0,1,1,\n1,background player:3,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n",1,"1503122963823.3987"] + ["title Simple Block Pushing Game\nauthor increpare\nhomepage www.puzzlescript.net\ndebug\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[ > Player | Crate ] -> [ > Player | ^ Crate ]\n\n[ horizontal Player ] [ vertical Crate ] -> [ horizontal Player ] [ horizontal Crate ]\n\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#..*.#\n#....#\n######\n\n", [2, 3, 2, 2, 1, 1, 0, 2, 3, 0, 2, 1, 0, "undo", 1, 0, 3, 3, 2, "undo", "undo", 2, 3, 3, 0, 1], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,1,1,\nbackground crate:2,1,0,0,1,1,\n1,background player:3,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n", 1, "1503122963823.3987"] ], [ "Reserved keywords are too greedy (#419)", - ["========\nOBJECTS(cat)\n========\n\nbackground \nwhite\n\nPlayer\nblue\n\nLevelscat\nblack\n\n=======\nLEGEND\n=======\n\nP = Player\n\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS \n================\n\nbackground\nplayer\nLevelscat\n\n======\nRULES\n======\n\n\n==============\nWINCONDITIONS\n==============\n\n(there's no way to win against a floating eyeball :S )\n\n=======\nLEVELS\n=======\n\np\n\n",[3,3,0],"background player:0,\n",0,"1506517029540.7014"] + ["========\nOBJECTS(cat)\n========\n\nbackground \nwhite\n\nPlayer\nblue\n\nLevelscat\nblack\n\n=======\nLEGEND\n=======\n\nP = Player\n\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS \n================\n\nbackground\nplayer\nLevelscat\n\n======\nRULES\n======\n\n\n==============\nWINCONDITIONS\n==============\n\n(there's no way to win against a floating eyeball :S )\n\n=======\nLEVELS\n=======\n\np\n\n", [3, 3, 0], "background player:0,\n", 0, "1506517029540.7014"] ], [ `Removing background tiles breaks "no X" wincondition (#534)`, - ["title no Coin, all Player on Target\nauthor Zachary Abel\nhomepage zacharyabel.com\n\nrun_rules_on_level_start\n\n=======\nOBJECTS\n=======\n\nBackground\ngreen\n\nPlayer\nRed\n.000.\n.0.0.\n.000.\n.0...\n.0...\n\n\n======\nLEGEND\n======\n\nP = Player\n. = Background\n\n======\nSOUNDS\n======\n\n===============\nCOLLISIONLAYERS\n===============\n\nBackground\nPlayer\n\n=====\nRULES\n=====\n\n[Background] -> []\n\n=============\nWINCONDITIONS\n=============\n\nno Player\n\n======\nLEVELS\n======\n\nP.\n\n",[3,3],":0,player:1,\n",0,"1612779741066.1199"] + ["title no Coin, all Player on Target\nauthor Zachary Abel\nhomepage zacharyabel.com\n\nrun_rules_on_level_start\n\n=======\nOBJECTS\n=======\n\nBackground\ngreen\n\nPlayer\nRed\n.000.\n.0.0.\n.000.\n.0...\n.0...\n\n\n======\nLEGEND\n======\n\nP = Player\n. = Background\n\n======\nSOUNDS\n======\n\n===============\nCOLLISIONLAYERS\n===============\n\nBackground\nPlayer\n\n=====\nRULES\n=====\n\n[Background] -> []\n\n=============\nWINCONDITIONS\n=============\n\nno Player\n\n======\nLEVELS\n======\n\nP.\n\n", [3, 3], ":0,player:1,\n", 0, "1612779741066.1199"] ], [ `should allow overlapping things #512`, - ["title Bloygizpo\nauthor increpare\nhomepage www.puzzlescript.net\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\ngreen GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\nTarget_aktiviert\nyellow\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall1\ndarkbrown darkbrown\n0.0.0\n.1.1.\n0.0.0\n.1.1.\n0.0.0\n\nWall2\ndarkbrown darkbrown\n.0.1.\n1.1.1\n.1.0.\n1.1.1\n.0.1.\n\nPlayer1\nBlack Orange White Blue\n..0..\n.1.1.\n2.2.2\n.3.3.\n.....\n\nPlayer2\nBlack Orange White Blue\n.0.0.\n..1..\n.2.2.\n..3..\n.3.3.\n\n\nCrate1\nOrange Yellow\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\n\nCrate2\nOrange Yellow\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nTuer1\nBlack brown\n..0..\n.1.1.\n0.1.0\n.1.1.\n0.0.0\n\nTuer2\nBlack brown\n.0.0.\n0.1.0\n.1.1.\n0.1.0\n.0.0.\n\nTuer_Offen\nyellow yellow\n.000.\n01110\n01110\n01110\n00000\n\n=======\nLEGEND\n=======\n\nPlayer = Player1 or player2\nCrate = Crate1 or Crate2\nWall = wall1 or wall2\ntuer = tuer1 or tuer2\n\n. = Background\n# = Wall1\nP = Player1 \n\n* = Crate1\n@ = Crate1\nO = Target\n\nq = crate1\nw = crate2\n\nt = tuer1 \n\ngewicht1 = player1 or Crate1 \ngewicht2 = player2 or Crate2\ngewicht = player or crate\n\n\n=======\nSOUNDS\n=======\n\nCrate1 MOVE 36772507\nCrate2 MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nTarget_aktiviert\ntuer_offen\nplayer1, crate1, wall1, tuer1\nplayer2, crate2, wall2, tuer2\n\n\n======\nRULES\n======\n\n[ player tuer ] -> [player tuer]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n#########\n#...t...#\n#.......#\n#.o...o.#\n#.......#\n#...q...#\n#.......#\n#...p...#\n#.......#\n#########\n\n(\n\nauszuprobieren\n\tteilweises Aufmachen\n 2 klötze\n)\n",[3,0,3,3],"background wall1:0,0,0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,1,1,1,\n1,0,0,1,1,background target:2,1,1,1,\n1,1,0,0,1,1,1,1,1,\n1,1,1,0,0,background tuer1:3,1,1,1,\nbackground crate1:4,1,1,1,0,0,1,1,1,\n1,1,1,1,1,0,0,1,1,\n2,1,1,1,1,1,0,0,1,\n1,1,1,1,background player1:5,1,1,0,0,\n0,0,0,0,0,0,0,0,0,\n",0,"1612782799099.4512"] + ["title Bloygizpo\nauthor increpare\nhomepage www.puzzlescript.net\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\ngreen GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\nTarget_aktiviert\nyellow\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall1\ndarkbrown darkbrown\n0.0.0\n.1.1.\n0.0.0\n.1.1.\n0.0.0\n\nWall2\ndarkbrown darkbrown\n.0.1.\n1.1.1\n.1.0.\n1.1.1\n.0.1.\n\nPlayer1\nBlack Orange White Blue\n..0..\n.1.1.\n2.2.2\n.3.3.\n.....\n\nPlayer2\nBlack Orange White Blue\n.0.0.\n..1..\n.2.2.\n..3..\n.3.3.\n\n\nCrate1\nOrange Yellow\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\n\nCrate2\nOrange Yellow\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nTuer1\nBlack brown\n..0..\n.1.1.\n0.1.0\n.1.1.\n0.0.0\n\nTuer2\nBlack brown\n.0.0.\n0.1.0\n.1.1.\n0.1.0\n.0.0.\n\nTuer_Offen\nyellow yellow\n.000.\n01110\n01110\n01110\n00000\n\n=======\nLEGEND\n=======\n\nPlayer = Player1 or player2\nCrate = Crate1 or Crate2\nWall = wall1 or wall2\ntuer = tuer1 or tuer2\n\n. = Background\n# = Wall1\nP = Player1 \n\n* = Crate1\n@ = Crate1\nO = Target\n\nq = crate1\nw = crate2\n\nt = tuer1 \n\ngewicht1 = player1 or Crate1 \ngewicht2 = player2 or Crate2\ngewicht = player or crate\n\n\n=======\nSOUNDS\n=======\n\nCrate1 MOVE 36772507\nCrate2 MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nTarget_aktiviert\ntuer_offen\nplayer1, crate1, wall1, tuer1\nplayer2, crate2, wall2, tuer2\n\n\n======\nRULES\n======\n\n[ player tuer ] -> [player tuer]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n#########\n#...t...#\n#.......#\n#.o...o.#\n#.......#\n#...q...#\n#.......#\n#...p...#\n#.......#\n#########\n\n(\n\nauszuprobieren\n\tteilweises Aufmachen\n 2 klötze\n)\n", [3, 0, 3, 3], "background wall1:0,0,0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,1,1,1,\n1,0,0,1,1,background target:2,1,1,1,\n1,1,0,0,1,1,1,1,1,\n1,1,1,0,0,background tuer1:3,1,1,1,\nbackground crate1:4,1,1,1,0,0,1,1,1,\n1,1,1,1,1,0,0,1,1,\n2,1,1,1,1,1,0,0,1,\n1,1,1,1,background player1:5,1,1,0,0,\n0,0,0,0,0,0,0,0,0,\n", 0, "1612782799099.4512"] ], [ `trouble parsing non-ascii in unicode #528`, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\n\n\n大\nred\n\nmauer\nBROWN \n\nPlayer\nwhite white white white\n.....\n.111.\n.111.\n.111.\n.....\n\n\nschlange_oben q\nlightgreen red yellow\n.....\n.....\n.000.\n.202.\n.000.\n\nschlange_mitte a \ngreen red white\n.000.\n.000.\n.000.\n.000.\n.000.\n\nschlange_unten z\nlightgreen red white brown\n.000.\n.000.\n.000.\n..0..\n.....\n\n\nleiter_oben w\nyellow \n.....\n.0.0.\n.000.\n.0.0.\n.000.\n\nleiter_mitte s\norange\n.0.0.\n.000.\n.0.0.\n.000.\n.0.0.\n\nleiter_unten x\nyellow\n.000.\n.0.0.\n.000.\n.0.0.\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = mauer\nP = Player\nO = 大\n\nleiter = leiter_oben or leiter_unten or leiter_mitte\nschlange = schlange_oben or schlange_unten or schlange_mitte\n\nmitte = leiter_mitte or schlange_mitte\noben = leiter_oben or schlange_oben\nunten = leiter_unten or schlange_unten\n\nstück = leiter or schlange\n\nobstacle = stück or mauer or player\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n大\nleiter, schlange\nPlayer, mauer\n\n======\nRULES\n======\n\nhorizontal [ > player | mitte ] -> [ > player | > mitte ]\n\nvertical [ left schlange_mitte | schlange ] -> [ left schlange_mitte | left schlange ] \nvertical [ right schlange_mitte | schlange ] -> [ right schlange_mitte | right schlange ] \n\nvertical [ left leiter_mitte | leiter ] -> [ left leiter_mitte | left leiter ] \n\nvertical [ right leiter_mitte | leiter ] -> [ right leiter_mitte | right leiter ] \n\n[> stück | stück] -> cancel\n[> stück | mauer] -> cancel\n\n\nlate up [ Player leiter_unten | ] -> [ leiter_unten | player ]\nlate up [ player leiter_mitte | ] -> [ leiter_mitte | player ]\n\n\nlate down [ Player schlange_oben | ] -> [ schlange_oben | player ]\nlate down [ player schlange_mitte | ] -> [ schlange_mitte | player ]\n\n==============\nWINCONDITIONS\n==============\n\nall player on 大\n\n=======\nLEVELS\n=======\n\n\n\n\n\n#######\n#o....#\n#.....#\n#.....#\n#.....#\n#.....#\n#p....#\n#######\n",[3,0,3],"background mauer:0,0,0,0,0,0,0,\n0,0,background 大:1,background:2,2,2,2,\n2,0,0,2,2,2,2,\n2,2,0,0,2,2,2,\n2,background player:3,2,0,0,2,2,\n2,2,2,2,0,0,2,\n2,2,2,2,2,0,0,\n0,0,0,0,0,0,0,\n",0,"1612797615322.4563"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\n\n\n大\nred\n\nmauer\nBROWN \n\nPlayer\nwhite white white white\n.....\n.111.\n.111.\n.111.\n.....\n\n\nschlange_oben q\nlightgreen red yellow\n.....\n.....\n.000.\n.202.\n.000.\n\nschlange_mitte a \ngreen red white\n.000.\n.000.\n.000.\n.000.\n.000.\n\nschlange_unten z\nlightgreen red white brown\n.000.\n.000.\n.000.\n..0..\n.....\n\n\nleiter_oben w\nyellow \n.....\n.0.0.\n.000.\n.0.0.\n.000.\n\nleiter_mitte s\norange\n.0.0.\n.000.\n.0.0.\n.000.\n.0.0.\n\nleiter_unten x\nyellow\n.000.\n.0.0.\n.000.\n.0.0.\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = mauer\nP = Player\nO = 大\n\nleiter = leiter_oben or leiter_unten or leiter_mitte\nschlange = schlange_oben or schlange_unten or schlange_mitte\n\nmitte = leiter_mitte or schlange_mitte\noben = leiter_oben or schlange_oben\nunten = leiter_unten or schlange_unten\n\nstück = leiter or schlange\n\nobstacle = stück or mauer or player\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n大\nleiter, schlange\nPlayer, mauer\n\n======\nRULES\n======\n\nhorizontal [ > player | mitte ] -> [ > player | > mitte ]\n\nvertical [ left schlange_mitte | schlange ] -> [ left schlange_mitte | left schlange ] \nvertical [ right schlange_mitte | schlange ] -> [ right schlange_mitte | right schlange ] \n\nvertical [ left leiter_mitte | leiter ] -> [ left leiter_mitte | left leiter ] \n\nvertical [ right leiter_mitte | leiter ] -> [ right leiter_mitte | right leiter ] \n\n[> stück | stück] -> cancel\n[> stück | mauer] -> cancel\n\n\nlate up [ Player leiter_unten | ] -> [ leiter_unten | player ]\nlate up [ player leiter_mitte | ] -> [ leiter_mitte | player ]\n\n\nlate down [ Player schlange_oben | ] -> [ schlange_oben | player ]\nlate down [ player schlange_mitte | ] -> [ schlange_mitte | player ]\n\n==============\nWINCONDITIONS\n==============\n\nall player on 大\n\n=======\nLEVELS\n=======\n\n\n\n\n\n#######\n#o....#\n#.....#\n#.....#\n#.....#\n#.....#\n#p....#\n#######\n", [3, 0, 3], "background mauer:0,0,0,0,0,0,0,\n0,0,background 大:1,background:2,2,2,2,\n2,0,0,2,2,2,2,\n2,2,0,0,2,2,2,\n2,background player:3,2,0,0,2,2,\n2,2,2,2,0,0,2,\n2,2,2,2,2,0,0,\n0,0,0,0,0,0,0,\n", 0, "1612797615322.4563"] ], [ `Can't start message with section keywords #490`, - ["title Simple Block Pushing Game\nauthor increpare\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage object swap\nmessage the objects swap\nmessage objectsswap\nmessage objects swap; comment me out!\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[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",4,"1612811326612.0864"] + ["title Simple Block Pushing Game\nauthor increpare\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage object swap\nmessage the objects swap\nmessage objectsswap\nmessage objects swap; comment me out!\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n", [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", 4, "1612811326612.0864"] ], [ `Bug: "norestart" prelude option can interfere with "restart" command #411`, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\nnorestart\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[ > Player | Crate ] -> restart\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\n",[0,"restart",1,2,2,"restart",2,2,0,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,background player:4,\n1,1,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1612832538428.8394"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\nnorestart\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[ > Player | Crate ] -> restart\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\n", [0, "restart", 1, 2, 2, "restart", 2, 2, 0, 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,background player:4,\n1,1,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 0, "1612832538428.8394"] ], [ `undoing reset undoes two steps, not one #453`, - ["title Simple Block Pushing Game\nauthor David Skinner\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[ > 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\n",[2,2,"restart","undo"],"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,background player:4,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1612997864833.277"] + ["title Simple Block Pushing Game\nauthor David Skinner\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[ > 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\n", [2, 2, "restart", "undo"], "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,background player:4,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 0, "1612997864833.277"] ], [ `Recent update broke some games with tabs in the source code #609`, - ["title Simple Block Pushing Game\nauthor David Skinner\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# \t= Wall\nP = \tPlayer\n* = Crate\n@ \t= Crate and Target\nK = \tCrate and Target\nM = Crate \tand Target\nN = Crate and \tTarget\nQ \t= Crate \tand 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[ > 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\n",[2,2,1,0,3,0,3,3,1,1,2,1,0],"background wall:0,0,0,0,0,0,\n0,0,background:1,background crate:2,background player target:3,1,\n1,0,0,background target:4,1,1,\n1,1,0,0,0,0,\n1,2,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1615587622342.6877"] + ["title Simple Block Pushing Game\nauthor David Skinner\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# \t= Wall\nP = \tPlayer\n* = Crate\n@ \t= Crate and Target\nK = \tCrate and Target\nM = Crate \tand Target\nN = Crate and \tTarget\nQ \t= Crate \tand 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[ > 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\n", [2, 2, 1, 0, 3, 0, 3, 3, 1, 1, 2, 1, 0], "background wall:0,0,0,0,0,0,\n0,0,background:1,background crate:2,background player target:3,1,\n1,0,0,background target:4,1,1,\n1,1,0,0,0,0,\n1,2,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 0, "1615587622342.6877"] ], [ `Test travelling through multiple levels`, - ["title Simple Block Pushing Game\nauthor David Skinner\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[ > 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\n",[2,1,0,3,3,3,2,1,0,1,1,2,2,3,0,1,0,3,0,0,1,2,3,2,2,3,3,0,1,2,1,0,0,3,2,2,1,0,0],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,0,background crate:2,\nbackground crate target:3,1,0,0,2,background player:4,\nbackground target:5,5,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n",0,"1627477832505.31"] + ["title Simple Block Pushing Game\nauthor David Skinner\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[ > 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\n", [2, 1, 0, 3, 3, 3, 2, 1, 0, 1, 1, 2, 2, 3, 0, 1, 0, 3, 0, 0, 1, 2, 3, 2, 2, 3, 3, 0, 1, 2, 1, 0, 0, 3, 2, 2, 1, 0, 0], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,0,background crate:2,\nbackground crate target:3,1,0,0,2,background player:4,\nbackground target:5,5,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n", 0, "1627477832505.31"] ], [ `Win condition test "NO X"`, - ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Crate ] -> [ > Player | ]\n\n==============\nWINCONDITIONS\n==============\n\nno crate\n\n=======\nLEVELS\n=======\n\n\n.....\n.@o*.\n.p...\n.....\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[0,3,3],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,0,background crate:2,\nbackground target:3,1,0,0,1,background player:4,\nbackground crate target:5,5,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n",0,"1627477994465.8933"] + ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Crate ] -> [ > Player | ]\n\n==============\nWINCONDITIONS\n==============\n\nno crate\n\n=======\nLEVELS\n=======\n\n\n.....\n.@o*.\n.p...\n.....\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n", [0, 3, 3], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,0,background crate:2,\nbackground target:3,1,0,0,1,background player:4,\nbackground crate target:5,5,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n", 0, "1627477994465.8933"] ], [ `Win condition test "SOME X"`, - ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Target ] -> [ Player | TARGET Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nsome crate\n\n=======\nLEVELS\n=======\n\n\n.....\n..oo.\n.p...\n.....\n\n..p..\n.....\n",[3,0,3],"background:0,0,0,0,0,\n0,background player:1,0,0,0,\n",0,"1627478110201.5347"] + ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Target ] -> [ Player | TARGET Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nsome crate\n\n=======\nLEVELS\n=======\n\n\n.....\n..oo.\n.p...\n.....\n\n..p..\n.....\n", [3, 0, 3], "background:0,0,0,0,0,\n0,background player:1,0,0,0,\n", 0, "1627478110201.5347"] ], [ `Win condition test "SOME X ON Y"`, - ["title Simple Block Pushing Game\nauthor David Skinner\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\nup [ action Player | ] -> [ action Player | Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nsome crate on target\n\n=======\nLEVELS\n=======\n\n\n.....\n..oo.\n.p...\n.....\n\n..p..\n.....\n",[1,4,3,0,4,2,3,4,2,4,1,1,4],"background crate:0,background player:1,background:2,2,0,\n2,2,2,2,2,\n",0,"1627478147227.8706"] + ["title Simple Block Pushing Game\nauthor David Skinner\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\nup [ action Player | ] -> [ action Player | Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nsome crate on target\n\n=======\nLEVELS\n=======\n\n\n.....\n..oo.\n.p...\n.....\n\n..p..\n.....\n", [1, 4, 3, 0, 4, 2, 3, 4, 2, 4, 1, 1, 4], "background crate:0,background player:1,background:2,2,0,\n2,2,2,2,2,\n", 0, "1627478147227.8706"] ], [ `Win condition test "NO X ON Y"`, - ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nno 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\n",[0,1,2,3,2,2,1,1,2,3],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,background crate:2,\n1,0,0,1,0,2,\nbackground target:3,1,0,0,1,1,\nbackground crate target:4,3,background player:5,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n",0,"1627478173305.2952"] + ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nno 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\n", [0, 1, 2, 3, 2, 2, 1, 1, 2, 3], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,background crate:2,\n1,0,0,1,0,2,\nbackground target:3,1,0,0,1,1,\nbackground crate target:4,3,background player:5,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n", 0, "1627478173305.2952"] ], [ `Test for cancel cancelling restart #374`, - ["title Simple Block Pushing Game\nauthor David Skinner\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[ action player ] -> restart \n[ action player ] -> cancel \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\n",[2,1,0,4,4,3,4,4],"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,\nbackground player:4,1,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1627560547946.0017"] + ["title Simple Block Pushing Game\nauthor David Skinner\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[ action player ] -> restart \n[ action player ] -> cancel \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\n", [2, 1, 0, 4, 4, 3, 4, 4], "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,\nbackground player:4,1,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 0, "1627560547946.0017"] ], - [ `Test for trigger message at same time as reset`, - ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n[action Player] -> restart message ACTION\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\n",[2,4,1,2,2,4,0],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,background crate target:2,1,\n1,0,0,background target:3,background player:4,1,\n1,1,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1627560815572.0037"] + [`Test for trigger message at same time as reset`, + ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n[action Player] -> restart message ACTION\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\n", [2, 4, 1, 2, 2, 4, 0], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,background crate target:2,1,\n1,0,0,background target:3,background player:4,1,\n1,1,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 0, "1627560815572.0037"] ], - [ `Test for trigger message at same time as cancel`, - ["title Simple Block Pushing Game\nauthor David Skinner\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[moving Player] -> cancel message ACTION\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\n",[2,2,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,background player:4,\n1,1,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1627560887718.9905"] + [`Test for trigger message at same time as cancel`, + ["title Simple Block Pushing Game\nauthor David Skinner\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[moving Player] -> cancel message ACTION\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\n", [2, 2, 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,background player:4,\n1,1,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 0, "1627560887718.9905"] ], [ `movement not getting correctly cleared from tile - #492`, - ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\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\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=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n(^ COMMENT ME OUT/DELETE ME)\n\n\n[ | < Player | Crate ] -> [ Player | Crate | Crate ]\n([ Crate | > Player | ] -> [ Crate | Crate | Player ])\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#....#\n#*P*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[3,0,1,1],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,background player:2,background crate:3,\n1,0,0,background target:4,1,1,\n3,1,0,0,0,0,\n1,1,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1627732650514.1125"] + ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\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\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=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n(^ COMMENT ME OUT/DELETE ME)\n\n\n[ | < Player | Crate ] -> [ Player | Crate | Crate ]\n([ Crate | > Player | ] -> [ Crate | Crate | Player ])\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#....#\n#*P*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n", [3, 0, 1, 1], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,background player:2,background crate:3,\n1,0,0,background target:4,1,1,\n3,1,0,0,0,0,\n1,1,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 0, "1627732650514.1125"] ], [ `second test for #492 movement not getting correctly cleared from tile`, - ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\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\nperson1\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nperson2\nlightbrown orange white red\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 = Person1\nd = Person2\n* = Crate\n@ = Crate and Target\nO = Target\n\nPlayer = Person1 or person2\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget, Wall\nPlayer, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n(^ COMMENT ME OUT/DELETE ME)\n\n[ | < Person1 | Crate ] -> [ Person1 | Crate | Crate ]\n[ | < Person2 | Crate ] -> [ stationary Person2 | Crate | Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n......#......\n......#......\n......#......\n......#......\n.*p*..#.*d*..\n......#......\no.....#o.....\n\n",[3],"background:0,0,0,0,0,0,background target:1,0,0,0,0,background crate:2,0,\n0,0,0,0,0,2,0,0,0,0,0,0,background person1:3,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background wall:4,4,4,4,4,4,4,0,0,0,\n0,0,0,1,0,0,0,0,2,0,0,0,0,\n0,0,2,0,0,0,0,0,0,background person2:5,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n",0,"1627732858112.287"] + ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\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\nperson1\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nperson2\nlightbrown orange white red\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 = Person1\nd = Person2\n* = Crate\n@ = Crate and Target\nO = Target\n\nPlayer = Person1 or person2\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget, Wall\nPlayer, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n(^ COMMENT ME OUT/DELETE ME)\n\n[ | < Person1 | Crate ] -> [ Person1 | Crate | Crate ]\n[ | < Person2 | Crate ] -> [ stationary Person2 | Crate | Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n......#......\n......#......\n......#......\n......#......\n.*p*..#.*d*..\n......#......\no.....#o.....\n\n", [3], "background:0,0,0,0,0,0,background target:1,0,0,0,0,background crate:2,0,\n0,0,0,0,0,2,0,0,0,0,0,0,background person1:3,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background wall:4,4,4,4,4,4,4,0,0,0,\n0,0,0,1,0,0,0,0,2,0,0,0,0,\n0,0,2,0,0,0,0,0,0,background person2:5,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 0, "1627732858112.287"] ], [ `third test for #492 movement not getting correctly cleared from tile`, - ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nplayer p\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n* = Crate\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n[ > Player | ] -> [ Crate | Player ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\np*.\n\n",[3],"background crate:0,background player:1,background:2,\n",0,"1627732919488.2104"] + ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nplayer p\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n* = Crate\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n[ > Player | ] -> [ Crate | Player ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\np*.\n\n", [3], "background crate:0,background player:1,background:2,\n", 0, "1627732919488.2104"] ], [ `fourth test for #492 movement not getting correctly cleared from tile`, - ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nplayer p\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\ncrate\nred\n\n\n=======\nLEGEND\n=======\n\n. = Background\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ncrate\n======\nRULES\n======\n\nright [> player | crate ] -> [ > player | > crate ]\nright [ > Player | ] -> [ Player | Player ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\npp.\n\n",[3],"background player:0,0,background:1,\n",0,"1627733021968.0657"] + ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nplayer p\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\ncrate\nred\n\n\n=======\nLEGEND\n=======\n\n. = Background\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ncrate\n======\nRULES\n======\n\nright [> player | crate ] -> [ > player | > crate ]\nright [ > Player | ] -> [ Player | Player ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\npp.\n\n", [3], "background player:0,0,background:1,\n", 0, "1627733021968.0657"] ], [ `fifth test for #492 movement not getting correctly cleared from tile`, - ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nplayer p\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\ncrate\nred\n\n\n=======\nLEGEND\n=======\n\n. = Background\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ncrate\n======\nRULES\n======\n\nright [ > Player | ] -> [ Player | Player ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\npp.\n\n",[3],"background player:0,0,background:1,\n",0,"1627733036654.9438"] + ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nplayer p\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\ncrate\nred\n\n\n=======\nLEGEND\n=======\n\n. = Background\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ncrate\n======\nRULES\n======\n\nright [ > Player | ] -> [ Player | Player ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\npp.\n\n", [3], "background player:0,0,background:1,\n", 0, "1627733036654.9438"] ], [ `test for convention #2 to issue right [ > Player | ] -> [ Player | Player ]🐱‍🐉 #679 : Should right [ Player | ] -> [ Player | Player ] propagate movements? (A: yes?) `, - ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nplayer p\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\ncrate\nred\n\n\n=======\nLEGEND\n=======\n\n. = Background\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ncrate\n======\nRULES\n======\n\nrandom right [ Player | ] -> [ | Player ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n..p....\n\n",[3],"background:0,0,0,background player:1,0,0,0,\n",0,"1627733171811.7598"] + ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nplayer p\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\ncrate\nred\n\n\n=======\nLEGEND\n=======\n\n. = Background\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ncrate\n======\nRULES\n======\n\nrandom right [ Player | ] -> [ | Player ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n..p....\n\n", [3], "background:0,0,0,background player:1,0,0,0,\n", 0, "1627733171811.7598"] ], [ `right [ vertical Player | perpendicular Player ] -> [ perpendicular Player | ] produces error #682`, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\nbaba = player or Background\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\n\n======\nRULES\n======\n\nright [ up player | up player ] -> [ up player | down player ]\nright [ vertical Player | perpendicular Player ] -> [ perpendicular Player | ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...pp..\n.......\n",[2],"background:0,0,0,0,0,0,0,\n0,0,0,0,background player:1,0,0,\n0,0,0,0,0,0,0,\n",0,"1627766697714.8755"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\nbaba = player or Background\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\n\n======\nRULES\n======\n\nright [ up player | up player ] -> [ up player | down player ]\nright [ vertical Player | perpendicular Player ] -> [ perpendicular Player | ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...pp..\n.......\n", [2], "background:0,0,0,0,0,0,0,\n0,0,0,0,background player:1,0,0,\n0,0,0,0,0,0,0,\n", 0, "1627766697714.8755"] ], [ `right [ horizontal TestObject1 | perpendicular TestObject1 ] -> [ perpendicular TestObject1 | ] produces an error #498`, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\n\n======\nRULES\n======\n\nright [ right player | right player ] -> [ right player | down player ]\nright [ horizontal Player | perpendicular Player ] -> [ perpendicular Player | ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...pp..\n.......\n\n",[3],"background:0,0,0,0,0,0,0,\n0,0,0,0,background player:1,0,0,\n0,0,0,0,0,0,0,\n",0,"1627766801845.8809"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\n\n======\nRULES\n======\n\nright [ right player | right player ] -> [ right player | down player ]\nright [ horizontal Player | perpendicular Player ] -> [ perpendicular Player | ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...pp..\n.......\n\n", [3], "background:0,0,0,0,0,0,0,\n0,0,0,0,background player:1,0,0,\n0,0,0,0,0,0,0,\n", 0, "1627766801845.8809"] ], [ `[ orthogonal a | moving a ] -> [ moving a | orthogonal a ] produces an error #496`, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\n\n======\nRULES\n======\n\nright [ down player | down player ] -> [ down player | action player ]\nright [ orthogonal player | moving player ] -> [ moving player | orthogonal player ]\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...pp..\n.......\n\n",[2],"background:0,0,0,0,0,0,0,\n0,0,0,background player:1,0,0,0,\n1,0,0,0,0,0,0,\n",0,"1627766972788.5994"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\n\n======\nRULES\n======\n\nright [ down player | down player ] -> [ down player | action player ]\nright [ orthogonal player | moving player ] -> [ moving player | orthogonal player ]\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...pp..\n.......\n\n", [2], "background:0,0,0,0,0,0,0,\n0,0,0,background player:1,0,0,0,\n1,0,0,0,0,0,0,\n", 0, "1627766972788.5994"] ], [ `1st alternative test for: right [ vertical Player | perpendicular Player ] -> [ perpendicular Player | ] produces error #682`, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\ncrate\nblue\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n* = crate\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer,crate\n\n======\nRULES\n======\n\n[crate]->[up crate]\nright [ horizontal Player | perpendicular crate ] -> [ perpendicular crate | ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...p*..\n.......\n\n",[3,"restart",3],"background:0,0,0,0,0,0,0,\n0,0,background crate:1,0,0,0,0,\n0,0,0,0,0,0,0,\n",0,"1627767245523.3818"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\ncrate\nblue\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n* = crate\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer,crate\n\n======\nRULES\n======\n\n[crate]->[up crate]\nright [ horizontal Player | perpendicular crate ] -> [ perpendicular crate | ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...p*..\n.......\n\n", [3, "restart", 3], "background:0,0,0,0,0,0,0,\n0,0,background crate:1,0,0,0,0,\n0,0,0,0,0,0,0,\n", 0, "1627767245523.3818"] ], [ `2nd alternative test for: right [ vertical Player | perpendicular Player ] -> [ perpendicular Player | ] produces error #682`, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\ncrate\nblue\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n* = crate\ncrateorbackground = crate or Background\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer,crate\n\n======\nRULES\n======\n\n[crate]->[up crate]\nright [ horizontal Player | perpendicular crateorbackground ] -> [ perpendicular crateorbackground | ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...p*..\n.......\n\n",[3],"background:0,0,0,0,0,0,0,\n0,0,background crate:1,0,0,0,0,\n0,0,0,0,0,0,0,\n",0,"1627767313362.127"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\ncrate\nblue\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n* = crate\ncrateorbackground = crate or Background\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer,crate\n\n======\nRULES\n======\n\n[crate]->[up crate]\nright [ horizontal Player | perpendicular crateorbackground ] -> [ perpendicular crateorbackground | ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...p*..\n.......\n\n", [3], "background:0,0,0,0,0,0,0,\n0,0,background crate:1,0,0,0,0,\n0,0,0,0,0,0,0,\n", 0, "1627767313362.127"] ], [ `super tricky (related to #469) right [ vertical playerortarget | vertical player ] -> [ vertical playerortarget | vertical playerortarget ] `, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\ntarget\nblue\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\nplayerortarget = player or target\n@ = target\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ntarget\n======\nRULES\n======\n\n[target]->[up target]\n\nright [ vertical playerortarget | vertical player ] -> [ vertical playerortarget | vertical playerortarget ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...@p..\n.......\n",[0],"background:0,0,0,0,0,0,0,\n0,0,background target:1,0,0,1,0,\n0,0,0,0,0,0,0,\n",0,"1627768267232.6797"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\ntarget\nblue\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\nplayerortarget = player or target\n@ = target\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ntarget\n======\nRULES\n======\n\n[target]->[up target]\n\nright [ vertical playerortarget | vertical player ] -> [ vertical playerortarget | vertical playerortarget ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...@p..\n.......\n", [0], "background:0,0,0,0,0,0,0,\n0,0,background target:1,0,0,1,0,\n0,0,0,0,0,0,0,\n", 0, "1627768267232.6797"] ], [ `right [ vertical playerortarget | vertical player ] -> [ vertical player | vertical playerortarget ]`, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\ntarget\nblue\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\nplayerortarget = player or target\n@ = target\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ntarget\n======\nRULES\n======\n\n[target]->[down target]\n\nright [ vertical playerortarget | vertical player ] -> [ vertical player | vertical playerortarget ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...@p..\n.......\n",[0],"background:0,0,0,0,0,0,0,\n0,0,background player:1,0,0,0,0,\nbackground target:2,0,0,0,0,0,0,\n",0,"1627768474619.1826"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\ntarget\nblue\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\nplayerortarget = player or target\n@ = target\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ntarget\n======\nRULES\n======\n\n[target]->[down target]\n\nright [ vertical playerortarget | vertical player ] -> [ vertical player | vertical playerortarget ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...@p..\n.......\n", [0], "background:0,0,0,0,0,0,0,\n0,0,background player:1,0,0,0,0,\nbackground target:2,0,0,0,0,0,0,\n", 0, "1627768474619.1826"] ], [ `gallery game: sokodig`, - ["title Sokodig\nauthor Ezra Szanton\nhomepage ezras.work\n\n========\nOBJECTS\n========\n\nstoneBackground\nBLACK darkgray\n11111\n11111\n11111\n11111\n11111\n\ngrassBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\nTarget\ndarkred red lightred\n.....\n.202.\n.010.\n.202.\n.....\n\nWall\nBROWN DARKBROWN\n11101\n10111\n11110\n00111\n11001\n\nPlayer0Dig\nBlack Orange White Blue\n.000.\n02020\n00000\n.000.\n.0.0.\n\nPlayer1Dig\n#573103 grey #6e6c69 \n..0..\n..0..\n..0..\n.111.\n..1..\n\nPlayer2Dig\n#573103 grey #6e6c69 \n..0..\n..0..\n.121.\n.111.\n..1..\n\nCrate\nOrange darkred red lightred\n22122\n2...2\n1...1\n2...2\n22122\n\nDoor\ndarkbrown\n.....\n.....\n..0..\n.....\n.....\n\ntemp\nbrown\n.....\n.....\n.....\n.....\n.....\n\nstairs\n #565756 #373b37 #212421 #1c1c29 Black\n00000\n11111\n22222\n33333\n44444\n\nshovel\ngrey #573103\n....1\n...1.\n0.1..\n00...\n000..\n\ngoldShovel\nyellow #573103\n....1\n...1.\n0.1..\n00...\n000..\n\nSuperPlayer\n#573103 yellow #d4bc37\n..0..\n..0..\n.121.\n.111.\n..1..\n\n\n=======\nLEGEND\n=======\n\nPlayer = Player0Dig or Player1Dig or Player2Dig or SuperPlayer\nBackground = stoneBackground or grassBackground\n\n\n# = Wall\n. = stoneBackground\nP = Player0Dig\n* = Crate\n@ = Crate and Target\nO = Target\nd = Door\ne = Player0Dig\ng = goldShovel\ns = stairs\nh = shovel\nr = grassBackground\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nPlayer move 17705907\n\nsfx0 66043100 (clink)\nsfx1 25555704 (dig)\nsfx2 51411503 (super)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget, Door, Stairs\nPlayer, Wall, Crate, goldShovel, shovel\ntemp\n\n======\nRULES\n======\n\n([DOWN Door] no [ Target no Crate] -> [] )\n\n( no [Target no Crate] -> [] no [no Crate] )\n\n[ > Player | shovel ] -> [ | Player2Dig ]\n\n[ > Player | goldShovel ] -> [ | SuperPlayer ] sfx2\n\n[ > Player | Crate ] [stairs] -> [ Player | Crate ] [stairs] sfx0\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n[ > Player2Dig | Wall ] -> [ | Player1Dig] sfx1\n\n[ > Player1Dig | Wall ] -> [ | Player0Dig] sfx1\n\n[ > Player0Dig | Wall ] -> [ Player0Dig | Wall ] sfx0\n\n[ > SuperPlayer | Wall ] -> [ | SuperPlayer] sfx1\n\n(Altogether makes the rule that the stairs will appear if all crates are on targets)\nlate [Target no Crate] [] -> [Target no Crate] [temp] \nlate random [door no temp] -> [ stairs ] \nlate [temp] -> [] \n\n==============\nWINCONDITIONS\n==============\n\nall player on stairs\n\n=======\nLEVELS\n=======\n\nmessage 1/10 runes in the stone\n\n#########\n#########\n##.....##\n##pd.*o##\n##.....##\n#########\n######### \n\nmessage 2/10 just me and my shovel\n\n#############\n#############\n##dph##.*o.##\n#############\n#############\n\nmessage 3/10 Remember, z to undo, r to restart\n\n############\n############\n#######d.###\n##ph###.*o##\n############\n###.....####\n############\n############\n\nmessage 4/10 How long have I been down here\n\n#######\n#######\n##...##\n##*o.##\n##hd.##\n##.p.##\n#######\n#######\n\nmessage 5/10 I can only go, down\n\n#######\n#.....#\n#.oo..#\n####*.#\n####*.#\n####dp#\n####h.#\n#######\n\nmessage 6/10 I lost my shovel ;-;\n\n#######\n#.o####\n##*.###\n##*h###\n#.p*..#\n#o.d..#\n#....o#\n#######\n\nmessage 7/10 riddles in the earth\n\n###########\n#.........#\n#.........#\n#.........#\n#..####...#\n#...*.#.o.#\n#..#**#.o.#\n#..##.#.o.#\n#.........#\n#.Ph....d.#\n#.........#\n###########\n\nmessage 8/10 will I ever see the light again\n\n##########\n##########\n##o.hp.d##\n##.##*#.##\n##.#@@#.##\n##......##\n##########\n##########\n\nmessage 9/10 I sense a great pressure\n\n###########\n###p..#h###\n###.#######\n#...###...#\n#.*.#d#**.#\n###h###ooo#\n###########\n\n#########\n####p####\n####.####\n####.####\n####.####\n####.####\n####.####\n####s####\n#########\n\n#######\n###p###\n###.###\n###.###\n###.###\n###s###\n#######\n\n#####\n##p##\n##.##\n##s##\n#####\n\nmessage 10/10 my final trial\n\n#######\n#######\n##oo.##\n###**##\n###dp##\n####h##\n#######\n#######\n\n\nmessage 11/10 deepest~\n\n#############\n#p.h##g##...#\n#########.d.#\n#########...#\n#############\n#############\n#############\n#############\n#############\n#.*.#########\n#...#########\n#.o.#########\n#############\n\n###########\n#####s#####\n###########\n###########\n###########\n###########\n###########\n###########\n#####g#####\n#####p#####\n###########\n\n#########\n####s####\n#########\n#########\n#########\n#########\n####g####\n####p####\n#########\n\n#######\n###s###\n#######\n#######\n###g###\n###p###\n#######\n\nmessage 0/10 freedom\n\nrrrr#####rrrr\nrrrrr#s#rrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrr###rrrrr\nrrrr#####rrrr\nrrr###h###rrr\n#####rpr#####\n\n\n\n\n\n\n\n",[3,3,3,3,3,2,2,1,1,2,2,3,3,2,2,2,1,1,1,2,1,0,1,1,2,3,0,3,2,2,3,3,3,3,3,3,3,0,0,0,0,0,0,0],"stonebackground wall:0,0,0,0,0,0,0,0,stonebackground:1,1,0,0,0,\n0,1,0,0,0,0,0,0,1,1,1,1,0,\n0,1,0,0,0,0,0,0,1,1,1,crate stonebackground target:2,0,\n0,1,0,0,0,0,0,0,1,1,1,1,0,\n0,1,0,1,1,1,0,0,1,0,1,0,0,\n0,1,0,1,0,1,0,0,1,0,1,0,0,\n0,1,1,1,0,1,1,1,1,0,1,0,0,\n0,0,0,0,0,0,0,0,0,0,1,0,0,\n0,0,0,0,0,0,0,0,0,0,1,0,0,\n0,1,1,stonebackground superplayer:3,1,1,1,1,1,1,1,0,0,\n0,1,stairs stonebackground:4,1,0,0,0,0,0,0,0,0,0,\n0,1,1,1,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n",24,"1627769218300.0015"] + ["title Sokodig\nauthor Ezra Szanton\nhomepage ezras.work\n\n========\nOBJECTS\n========\n\nstoneBackground\nBLACK darkgray\n11111\n11111\n11111\n11111\n11111\n\ngrassBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\nTarget\ndarkred red lightred\n.....\n.202.\n.010.\n.202.\n.....\n\nWall\nBROWN DARKBROWN\n11101\n10111\n11110\n00111\n11001\n\nPlayer0Dig\nBlack Orange White Blue\n.000.\n02020\n00000\n.000.\n.0.0.\n\nPlayer1Dig\n#573103 grey #6e6c69 \n..0..\n..0..\n..0..\n.111.\n..1..\n\nPlayer2Dig\n#573103 grey #6e6c69 \n..0..\n..0..\n.121.\n.111.\n..1..\n\nCrate\nOrange darkred red lightred\n22122\n2...2\n1...1\n2...2\n22122\n\nDoor\ndarkbrown\n.....\n.....\n..0..\n.....\n.....\n\ntemp\nbrown\n.....\n.....\n.....\n.....\n.....\n\nstairs\n #565756 #373b37 #212421 #1c1c29 Black\n00000\n11111\n22222\n33333\n44444\n\nshovel\ngrey #573103\n....1\n...1.\n0.1..\n00...\n000..\n\ngoldShovel\nyellow #573103\n....1\n...1.\n0.1..\n00...\n000..\n\nSuperPlayer\n#573103 yellow #d4bc37\n..0..\n..0..\n.121.\n.111.\n..1..\n\n\n=======\nLEGEND\n=======\n\nPlayer = Player0Dig or Player1Dig or Player2Dig or SuperPlayer\nBackground = stoneBackground or grassBackground\n\n\n# = Wall\n. = stoneBackground\nP = Player0Dig\n* = Crate\n@ = Crate and Target\nO = Target\nd = Door\ne = Player0Dig\ng = goldShovel\ns = stairs\nh = shovel\nr = grassBackground\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nPlayer move 17705907\n\nsfx0 66043100 (clink)\nsfx1 25555704 (dig)\nsfx2 51411503 (super)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget, Door, Stairs\nPlayer, Wall, Crate, goldShovel, shovel\ntemp\n\n======\nRULES\n======\n\n([DOWN Door] no [ Target no Crate] -> [] )\n\n( no [Target no Crate] -> [] no [no Crate] )\n\n[ > Player | shovel ] -> [ | Player2Dig ]\n\n[ > Player | goldShovel ] -> [ | SuperPlayer ] sfx2\n\n[ > Player | Crate ] [stairs] -> [ Player | Crate ] [stairs] sfx0\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n[ > Player2Dig | Wall ] -> [ | Player1Dig] sfx1\n\n[ > Player1Dig | Wall ] -> [ | Player0Dig] sfx1\n\n[ > Player0Dig | Wall ] -> [ Player0Dig | Wall ] sfx0\n\n[ > SuperPlayer | Wall ] -> [ | SuperPlayer] sfx1\n\n(Altogether makes the rule that the stairs will appear if all crates are on targets)\nlate [Target no Crate] [] -> [Target no Crate] [temp] \nlate random [door no temp] -> [ stairs ] \nlate [temp] -> [] \n\n==============\nWINCONDITIONS\n==============\n\nall player on stairs\n\n=======\nLEVELS\n=======\n\nmessage 1/10 runes in the stone\n\n#########\n#########\n##.....##\n##pd.*o##\n##.....##\n#########\n######### \n\nmessage 2/10 just me and my shovel\n\n#############\n#############\n##dph##.*o.##\n#############\n#############\n\nmessage 3/10 Remember, z to undo, r to restart\n\n############\n############\n#######d.###\n##ph###.*o##\n############\n###.....####\n############\n############\n\nmessage 4/10 How long have I been down here\n\n#######\n#######\n##...##\n##*o.##\n##hd.##\n##.p.##\n#######\n#######\n\nmessage 5/10 I can only go, down\n\n#######\n#.....#\n#.oo..#\n####*.#\n####*.#\n####dp#\n####h.#\n#######\n\nmessage 6/10 I lost my shovel ;-;\n\n#######\n#.o####\n##*.###\n##*h###\n#.p*..#\n#o.d..#\n#....o#\n#######\n\nmessage 7/10 riddles in the earth\n\n###########\n#.........#\n#.........#\n#.........#\n#..####...#\n#...*.#.o.#\n#..#**#.o.#\n#..##.#.o.#\n#.........#\n#.Ph....d.#\n#.........#\n###########\n\nmessage 8/10 will I ever see the light again\n\n##########\n##########\n##o.hp.d##\n##.##*#.##\n##.#@@#.##\n##......##\n##########\n##########\n\nmessage 9/10 I sense a great pressure\n\n###########\n###p..#h###\n###.#######\n#...###...#\n#.*.#d#**.#\n###h###ooo#\n###########\n\n#########\n####p####\n####.####\n####.####\n####.####\n####.####\n####.####\n####s####\n#########\n\n#######\n###p###\n###.###\n###.###\n###.###\n###s###\n#######\n\n#####\n##p##\n##.##\n##s##\n#####\n\nmessage 10/10 my final trial\n\n#######\n#######\n##oo.##\n###**##\n###dp##\n####h##\n#######\n#######\n\n\nmessage 11/10 deepest~\n\n#############\n#p.h##g##...#\n#########.d.#\n#########...#\n#############\n#############\n#############\n#############\n#############\n#.*.#########\n#...#########\n#.o.#########\n#############\n\n###########\n#####s#####\n###########\n###########\n###########\n###########\n###########\n###########\n#####g#####\n#####p#####\n###########\n\n#########\n####s####\n#########\n#########\n#########\n#########\n####g####\n####p####\n#########\n\n#######\n###s###\n#######\n#######\n###g###\n###p###\n#######\n\nmessage 0/10 freedom\n\nrrrr#####rrrr\nrrrrr#s#rrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrr###rrrrr\nrrrr#####rrrr\nrrr###h###rrr\n#####rpr#####\n\n\n\n\n\n\n\n", [3, 3, 3, 3, 3, 2, 2, 1, 1, 2, 2, 3, 3, 2, 2, 2, 1, 1, 1, 2, 1, 0, 1, 1, 2, 3, 0, 3, 2, 2, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0], "stonebackground wall:0,0,0,0,0,0,0,0,stonebackground:1,1,0,0,0,\n0,1,0,0,0,0,0,0,1,1,1,1,0,\n0,1,0,0,0,0,0,0,1,1,1,crate stonebackground target:2,0,\n0,1,0,0,0,0,0,0,1,1,1,1,0,\n0,1,0,1,1,1,0,0,1,0,1,0,0,\n0,1,0,1,0,1,0,0,1,0,1,0,0,\n0,1,1,1,0,1,1,1,1,0,1,0,0,\n0,0,0,0,0,0,0,0,0,0,1,0,0,\n0,0,0,0,0,0,0,0,0,0,1,0,0,\n0,1,1,stonebackground superplayer:3,1,1,1,1,1,1,1,0,0,\n0,1,stairs stonebackground:4,1,0,0,0,0,0,0,0,0,0,\n0,1,1,1,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 24, "1627769218300.0015"] ], [ `gallery game: at the hedges of time`, - ["title At the Hedges of Time\nauthor galactical\n\nbackground_color #222323\n\ntext_color #f0f6f0\n\nrun_rules_on_level_start\n\nnoundo\n\nzoomscreen 12x11\n\n========\nOBJECTS\n========\n\nBackground\n#c5ccb8\n\nDot\n#9a9a97\n.....\n.....\n.....\n..0..\n.....\n\nBounds\nTransparent\n\nBoundaryWall\nTransparent\n\nWall\n#93a167 #557064\n00000\n00000\n11111\n11111\n11111\n\nOverWall\n#93a167\n.....\n.....\n00000\n00000\n00000\n\nCrate\n#8d6268 #6E4D51\n00000\n00000\n11111\n11111\n11111\n\nOverCrate\n#8d6268\n.....\n.....\n.....\n00000\n00000\n\nTimeCrate\n#70568F #433455\n00000\n00000\n11111\n11111\n11111\n\nOverTimeCrate\n#70568F\n.....\n.....\n.....\n00000\n00000\n\nFadeCrate\n#8d6268 #6E4D51\n0.0.0\n.0.0.\n1.1.1\n.1.1.\n1.1.1\n\nOverFadeCrate\n#8d6268\n.....\n.....\n.....\n0.0.0\n.0.0.\n\nPlayer\nTransparent\n\nTarget\n#f7e26b #c5ccb8\n00000\n01110\n01010\n01110\n00000\n\nCam\nTransparent\n\nStatue\n#696969 (nice) #787878 #636363\n.111.\n.111.\n.000.\n.0.0.\n.....\n\nOverStatue\n#696969 #787878 #585858\n.....\n.222.\n.222.\n21112\n00000\n\nClock\n#f7e26b #f0f6f0 black\n.000.\n01110\n11211\n11221\n11111\n\nClockL\n#f7e26b\n.....\n.....\n....0\n....0\n....0\n\nClockR\n#f7e26b\n.....\n.....\n0....\n0....\n0....\n\nClockD\n#f7e26b #f0f6f0 #6e6962\n01110\n.000.\n..2..\n..2..\n.....\n\nPlayerSpr\n#F1C69B #4A403B Black\n.202.\n.000.\n.111.\n.1.1.\n.....\n\n\nUPlayer\n#F1C69B #4A403B Black #c5ccb8 #f7e26b\n4000.\n.000.\n.111.\n.1.1.\n.....\n\nRPlayer\n#F1C69B #4A403B Black #c5ccb8 #f7e26b\n.0024\n.000.\n.111.\n.1.1.\n.....\n\nLPlayer\n#F1C69B #4A403B Black #c5ccb8 #f7e26b\n4200.\n.000.\n.111.\n.1.1.\n.....\n\nDPlayer\n#F1C69B #4A403B Black #c5ccb8 #f7e26b\n.2424\n.004.\n.111.\n.1.1.\n.....\n\n\nOverPlayer\n#F1C69B #564A44 #3E3531 #4A403B\n.....\n.222.\n.222.\n21112\n33333\n\nExit\n#5F5A54\n.....\n.....\n.....\n00000\n.....\n\nExitR\n#6e6962 #c5ccb8 #5F5A54\n0....\n0....\n0....\n0....\n.....\n\nExitL\n#6e6962 #c5ccb8 #5F5A54\n....0\n....0\n....0\n....0\n.....\n\nExitU\n#6e6962 #5F5A54\n.111.\n10001\n00.00\n.....\n.....\n\nExitUR\n#c5ccb8 #6e6962 #5F5A54\n.....\n2....\n1....\n1....\n1....\n\nExitUL\n#c5ccb8 #6e6962 #5F5A54\n.....\n....2\n....1\n....1\n....1\n\nDoor\n#514D48\n0.0.0\n.0.0.\n0.0.0\n.....\n.....\n\nOverDoor\n#514D48\n.....\n.....\n.0.0.\n0.0.0\n.0.0.\n\nGate\n#f7e26b #ECD968\n.....\n.....\n.....\n00000\n.....\n\nGateR\n#f7e26b #ECD968\n0....\n0....\n0....\n0....\n.....\n\nGateL\n#f7e26b #ECD968\n....0\n....0\n....0\n....0\n.....\n\nGateU\n#f7e26b #ECD968\n.111.\n10001\n00.00\n.....\n.....\n\nGateUR\n#f7e26b #ECD968\n.....\n1....\n0....\n0....\n0....\n\nGateUL\n#f7e26b #ECD968\n.....\n....1\n....0\n....0\n....0\n\nOverBushR\n#93a167\n.....\n.....\n..000\n..000\n..000\n\nOverBushL\n#93a167\n.....\n.....\n000..\n000..\n000..\n\nBushR\n#93a167 #557064\n..000\n..000\n..111\n..111\n..111\n\nBushL\n#93a167 #557064\n000..\n000..\n111..\n111..\n111..\n\n0\n#f0f6f0 \n.....\n..0..\n.0.0.\n.0.0.\n..0..\n\n1\n#f0f6f0 \n.....\n..0..\n.00..\n..0..\n.000.\n\n2\n#f0f6f0 \n.....\n.00..\n...0.\n..0..\n.000.\n\n3\n#f0f6f0 \n.....\n.000.\n..00.\n...0.\n.000.\n\n4\n#f0f6f0 \n.....\n.0...\n.0.0.\n.000.\n...0.\n\n5\n#f0f6f0 \n.....\n.00..\n.000.\n...0.\n.000.\n\n6\n#f0f6f0 \n.....\n.0...\n.0...\n.000.\n.000.\n\n7\n#f0f6f0 \n.....\n.000.\n...0.\n..0..\n.0...\n\n8\n#f0f6f0 \n.....\n.000.\n.000.\n.0.0.\n.000.\n\n9\n#f0f6f0 \n.....\n.000.\n.0.0.\n.000.\n...0.\n\nSoundStop\ntransparent\n\nCountDown\ntransparent\n\nCountUp\ntransparent\n\ncp\nTransparent\n\nStop\nTransparent\n\nSame\nTransparent\n\nRewind\nTransparent\n\nNoMarks\ntransparent\n\nHighest\ntransparent\n\nz0\ntransparent\n\nx0\ntransparent\n\nq1\ntransparent\nq2\nTransparent\nq3\nTransparent\nq4\nTransparent\nq5\nTransparent\nq6\nTransparent\nq7\nTransparent\nq8\nTransparent\nq9\nTransparent\nq10\nTransparent\nq11\nTransparent\nq12\nTransparent\nq13\nTransparent\nq14\nTransparent\nq15\nTransparent\nq16\nTransparent\nq17\nTransparent\nq18\nTransparent\nq19\nTransparent\nq20\nTransparent\nq21\nTransparent\nq22\nTransparent\nq23\nTransparent\nq24\nTransparent\nq25\nTransparent\nq26\nTransparent\nq27\nTransparent\nq28\nTransparent\nq29\nTransparent\nq30\nTransparent\nq31\nTransparent\nq32\nTransparent\nq33\nTransparent\nq34\nTransparent\nq35\nTransparent\nq36\nTransparent\nq37\nTransparent\nq38\nTransparent\nq39\nTransparent\nq40\nTransparent\nq41\nTransparent\nq42\nTransparent\nq43\nTransparent\nq44\nTransparent\nq45\nTransparent\nq46\nTransparent\nq47\nTransparent\nq48\nTransparent\nq49\nTransparent\nq50\nTransparent\nq51\nTransparent\nq52\nTransparent\nq53\nTransparent\nq54\nTransparent\nq55\nTransparent\nq56\nTransparent\nq57\nTransparent\nq58\nTransparent\nq59\nTransparent\nq60\nTransparent\nq61\nTransparent\nq62\nTransparent\nq63\nTransparent\nq64\nTransparent\nq65\nTransparent\nq66\nTransparent\nq67\nTransparent\nq68\nTransparent\nq69\nTransparent\nq70\nTransparent\nq71\nTransparent\nq72\nTransparent\nq73\nTransparent\nq74\nTransparent\nq75\nTransparent\nq76\nTransparent\nq77\nTransparent\nq78\nTransparent\nq79\nTransparent\nq80\nTransparent\nq81\nTransparent\nq82\nTransparent\nq83\nTransparent\nq84\nTransparent\nq85\nTransparent\nq86\nTransparent\nq87\nTransparent\nq88\nTransparent\nq89\nTransparent\nq90\nTransparent\nq91\nTransparent\nq92\nTransparent\nq93\nTransparent\nq94\nTransparent\nq95\nTransparent\nq96\nTransparent\nq97\nTransparent\nq98\nTransparent\nq99\nTransparent\nq100\nTransparent\nq101\ntransparent\nq102\ntransparent\nq103\ntransparent\nq104\ntransparent\nq105\ntransparent\nq106\ntransparent\nq107\ntransparent\nq108\ntransparent\nq109\ntransparent\nq110\ntransparent\nq111\ntransparent\nq112\ntransparent\nq113\ntransparent\nq114\ntransparent\nq115\ntransparent\nq116\ntransparent\nq117\ntransparent\nq118\ntransparent\nq119\ntransparent\nq120\ntransparent\nq121\ntransparent\nq122\ntransparent\nq123\ntransparent\nq124\ntransparent\nq125\ntransparent\nq126\ntransparent\nq127\ntransparent\nq128\ntransparent\nq129\ntransparent\nq130\ntransparent\nq131\ntransparent\nq132\ntransparent\nq133\ntransparent\nq134\ntransparent\nq135\ntransparent\nq136\ntransparent\nq137\ntransparent\nq138\ntransparent\nq139\ntransparent\nq140\ntransparent\nq141\ntransparent\nq142\ntransparent\nq143\ntransparent\nq144\ntransparent\nq145\ntransparent\nq146\ntransparent\nq147\ntransparent\nq148\ntransparent\nq149\ntransparent\nq150\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n\n- = Bounds\n\n# = Wall\n! = BoundaryWall and Wall\np = PlayerSpr and q1\ne = Exit and Bounds\n* = Crate\nt = TimeCrate\no = Target\nc = clock and BoundaryWall and Wall\ng = gate\n\nWalls = Wall or BushR or BushL or Door\nCrates = Crate or TimeCrate\n\nWallOrExit = Walls or Exit\n\nremove = OverWall or OverPlayer or ExitR or ExitL or ExitU or ExitUR or ExitUL or Dot or OverBushR or OverBushL or OverCrate or OverTimeCrate or FadeCrate or OverFadeCrate or OverDoor or ClockR or ClockD or ClockL or OverStatue\n\nDirPlayer = UPlayer or RPlayer or DPlayer or LPlayer\n\nNumber = 0 or 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9\n\nClockSide = ClockL or ClockR\n\nMark = q150 or q149 or q148 or q147 or q146 or q145 or q144 or q143 or q142 or q141 or q140 or q139 or q138 or q137 or q136 or q135 or q134 or q133 or q132 or q131 or q130 or q129 or q128 or q127 or q126 or q125 or q124 or q123 or q122 or q121 or q120 or q119 or q118 or q117 or q116 or q115 or q114 or q113 or q112 or q111 or q110 or q109 or q108 or q107 or q106 or q105 or q104 or q103 or q102 or q101 or q100 or q99 or q98 or q97 or q96 or q95 or q94 or q93 or q92 or q91 or q90 or q89 or q88 or q87 or q86 or q85 or q84 or q83 or q82 or q81 or q80 or q79 or q78 or q77 or q76 or q75 or q74 or q73 or q72 or q71 or q70 or q69 or q68 or q67 or q66 or q65 or q64 or q63 or q62 or q61 or q60 or q59 or q58 or q57 or q56 or q55 or q54 or q53 or q52 or q51 or q50 or q49 or q48 or q47 or q46 or q45 or q44 or q43 or q42 or q41 or q40 or q39 or q38 or q37 or q36 or q35 or q34 or q33 or q32 or q31 or q30 or q29 or q28 or q27 or q26 or q25 or q24 or q23 or q22 or q21 or q20 or q19 or q18 or q17 or q16 or q15 or q14 or q13 or q12 or q11 or q10 or q9 or q8 or q7 or q6 or q5 or q4 or q3 or q2\n\n=======\nSOUNDS\n=======\n\nsfx0 76045107\nsfx1 32958905\nsfx2 11140903\nsfx3 3750107\n\nrestart 26711100\n\nshowmessage 76045107\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nDot\nExit\nGate\nCam\nBounds\nTarget\nSoundStop\ncp\nStop\nRewind\nSame\nNoMarks\nHighest\nz0\nx0\nq1\nq2\nq3\nq4\nq5\nq6\nq7\nq8\nq9\nq10\nq11\nq12\nq13\nq14\nq15\nq16\nq17\nq18\nq19\nq20\nq21\nq22\nq23\nq24\nq25\nq26\nq27\nq28\nq29\nq30\nq31\nq32\nq33\nq34\nq35\nq36\nq37\nq38\nq39\nq40\nq41\nq42\nq43\nq44\nq45\nq46\nq47\nq48\nq49\nq50\nq51\nq52\nq53\nq54\nq55\nq56\nq57\nq58\nq59\nq60\nq61\nq62\nq63\nq64\nq65\nq66\nq67\nq68\nq69\nq70\nq71\nq72\nq73\nq74\nq75\nq76\nq77\nq78\nq79\nq80\nq81\nq82\nq83\nq84\nq85\nq86\nq87\nq88\nq89\nq90\nq91\nq92\nq93\nq94\nq95\nq96\nq97\nq98\nq99\nq100\nq101\nq102\nq103\nq104\nq105\nq106\nq107\nq108\nq109\nq110\nq111\nq112\nq113\nq114\nq115\nq116\nq117\nq118\nq119\nq120\nq121\nq122\nq123\nq124\nq125\nq126\nq127\nq128\nq129\nq130\nq131\nq132\nq133\nq134\nq135\nq136\nq137\nq138\nq139\nq140\nq141\nq142\nq143\nq144\nq145\nq146\nq147\nq148\nq149\nq150\nExitR ExitL\nGateR GateL\nDoor\nCrate\nWall PlayerSpr BushR BushL\nUPlayer RPlayer DPlayer LPlayer\nStatue\nTimeCrate\nFadeCrate\nOverWall OverBushR OverBushL OverCrate OverTimeCrate\nOverFadeCrate\nExitU ExitUR ExitUL\nGateU GateUR GateUL\nOverDoor\nOverPlayer\nOverStatue\nClock\nClockR Clockd ClockL\nCountDown CountUp\nNumber\nPlayer\nBoundaryWall\n\n======\nRULES\n======\n\nup [PlayerSpr no DirPlayer no Statue] [ | Exit | ] -> [PlayerSpr] [cp | Exit | cp]\n\n[DirPlayer] -> []\n\n[stationary Player] -> cancel\n\n[> Player] [q150] -> cancel\n\n[] -> [NoMarks]\n[NoMarks] [Mark] -> [] [Mark]\n[action Player] [NoMarks] -> cancel\n\n(Movement)\n[> Player] [PlayerSpr] -> [Player] [> PlayerSpr] \n\n[> PlayerSpr Statue] -> [PlayerSpr Statue] cancel\n[> PlayerSpr | Crates | Crates] -> [PlayerSpr | Crates | Crates] cancel\n[> PlayerSpr | Crates | Walls] -> [PlayerSpr | Crates | Walls] cancel\n[> PlayerSpr | Walls] -> [PlayerSpr | Walls] cancel\n\n[> PlayerSpr] -> sfx0\n\n[OverPlayer Gate] -> [Gate] win\ndown [> PlayerSpr Gate] -> [Gate OverPlayer] again\n\n(Sprite direction)\nup [> PlayerSpr] -> [> PlayerSpr > UPlayer]\nright [> PlayerSpr] -> [> PlayerSpr > RPlayer]\ndown [> PlayerSpr] -> [> PlayerSpr > DPlayer]\nleft [> PlayerSpr] -> [> PlayerSpr > LPlayer]\n\n[> PlayerSpr | TimeCrate] -> [> PlayerSpr | > TimeCrate]\n\n[Stop] -> []\n[action Player] [PlayerSpr] -> [Player] [action PlayerSpr]\n\n\n(Placing Player Markers)\n(--Can this be refactored to be scalable?????? Probably not...)\n[> PlayerSpr no Stop] [q149]-> [> PlayerSpr > q150 Stop] [q149]\n[> PlayerSpr no Stop] [q148]-> [> PlayerSpr > q149 Stop] [q148]\n[> PlayerSpr no Stop] [q147]-> [> PlayerSpr > q148 Stop] [q147]\n[> PlayerSpr no Stop] [q146]-> [> PlayerSpr > q147 Stop] [q146]\n[> PlayerSpr no Stop] [q145]-> [> PlayerSpr > q146 Stop] [q145]\n[> PlayerSpr no Stop] [q144]-> [> PlayerSpr > q145 Stop] [q144]\n[> PlayerSpr no Stop] [q143]-> [> PlayerSpr > q144 Stop] [q143]\n[> PlayerSpr no Stop] [q142]-> [> PlayerSpr > q143 Stop] [q142]\n[> PlayerSpr no Stop] [q141]-> [> PlayerSpr > q142 Stop] [q141]\n[> PlayerSpr no Stop] [q140]-> [> PlayerSpr > q141 Stop] [q140]\n[> PlayerSpr no Stop] [q139]-> [> PlayerSpr > q140 Stop] [q139]\n[> PlayerSpr no Stop] [q138]-> [> PlayerSpr > q139 Stop] [q138]\n[> PlayerSpr no Stop] [q137]-> [> PlayerSpr > q138 Stop] [q137]\n[> PlayerSpr no Stop] [q136]-> [> PlayerSpr > q137 Stop] [q136]\n[> PlayerSpr no Stop] [q135]-> [> PlayerSpr > q136 Stop] [q135]\n[> PlayerSpr no Stop] [q134]-> [> PlayerSpr > q135 Stop] [q134]\n[> PlayerSpr no Stop] [q133]-> [> PlayerSpr > q134 Stop] [q133]\n[> PlayerSpr no Stop] [q132]-> [> PlayerSpr > q133 Stop] [q132]\n[> PlayerSpr no Stop] [q131]-> [> PlayerSpr > q132 Stop] [q131]\n[> PlayerSpr no Stop] [q130]-> [> PlayerSpr > q131 Stop] [q130]\n[> PlayerSpr no Stop] [q129]-> [> PlayerSpr > q130 Stop] [q129]\n[> PlayerSpr no Stop] [q128]-> [> PlayerSpr > q129 Stop] [q128]\n[> PlayerSpr no Stop] [q127]-> [> PlayerSpr > q128 Stop] [q127]\n[> PlayerSpr no Stop] [q126]-> [> PlayerSpr > q127 Stop] [q126]\n[> PlayerSpr no Stop] [q125]-> [> PlayerSpr > q126 Stop] [q125]\n[> PlayerSpr no Stop] [q124]-> [> PlayerSpr > q125 Stop] [q124]\n[> PlayerSpr no Stop] [q123]-> [> PlayerSpr > q124 Stop] [q123]\n[> PlayerSpr no Stop] [q122]-> [> PlayerSpr > q123 Stop] [q122]\n[> PlayerSpr no Stop] [q121]-> [> PlayerSpr > q122 Stop] [q121]\n[> PlayerSpr no Stop] [q120]-> [> PlayerSpr > q121 Stop] [q120]\n[> PlayerSpr no Stop] [q119]-> [> PlayerSpr > q120 Stop] [q119]\n[> PlayerSpr no Stop] [q118]-> [> PlayerSpr > q119 Stop] [q118]\n[> PlayerSpr no Stop] [q117]-> [> PlayerSpr > q118 Stop] [q117]\n[> PlayerSpr no Stop] [q116]-> [> PlayerSpr > q117 Stop] [q116]\n[> PlayerSpr no Stop] [q115]-> [> PlayerSpr > q116 Stop] [q115]\n[> PlayerSpr no Stop] [q114]-> [> PlayerSpr > q115 Stop] [q114]\n[> PlayerSpr no Stop] [q113]-> [> PlayerSpr > q114 Stop] [q113]\n[> PlayerSpr no Stop] [q112]-> [> PlayerSpr > q113 Stop] [q112]\n[> PlayerSpr no Stop] [q111]-> [> PlayerSpr > q112 Stop] [q111]\n[> PlayerSpr no Stop] [q110]-> [> PlayerSpr > q111 Stop] [q110]\n[> PlayerSpr no Stop] [q109]-> [> PlayerSpr > q110 Stop] [q109]\n[> PlayerSpr no Stop] [q108]-> [> PlayerSpr > q109 Stop] [q108]\n[> PlayerSpr no Stop] [q107]-> [> PlayerSpr > q108 Stop] [q107]\n[> PlayerSpr no Stop] [q106]-> [> PlayerSpr > q107 Stop] [q106]\n[> PlayerSpr no Stop] [q105]-> [> PlayerSpr > q106 Stop] [q105]\n[> PlayerSpr no Stop] [q104]-> [> PlayerSpr > q105 Stop] [q104]\n[> PlayerSpr no Stop] [q103]-> [> PlayerSpr > q104 Stop] [q103]\n[> PlayerSpr no Stop] [q102]-> [> PlayerSpr > q103 Stop] [q102]\n[> PlayerSpr no Stop] [q101]-> [> PlayerSpr > q102 Stop] [q101]\n[> PlayerSpr no Stop] [q100]-> [> PlayerSpr > q101 Stop] [q100]\n[> PlayerSpr no Stop] [q99] -> [> PlayerSpr > q100 Stop] [q99]\n[> PlayerSpr no Stop] [q98] -> [> PlayerSpr > q99 Stop] [q98]\n[> PlayerSpr no Stop] [q97] -> [> PlayerSpr > q98 Stop] [q97]\n[> PlayerSpr no Stop] [q96] -> [> PlayerSpr > q97 Stop] [q96]\n[> PlayerSpr no Stop] [q95] -> [> PlayerSpr > q96 Stop] [q95]\n[> PlayerSpr no Stop] [q94] -> [> PlayerSpr > q95 Stop] [q94]\n[> PlayerSpr no Stop] [q93] -> [> PlayerSpr > q94 Stop] [q93]\n[> PlayerSpr no Stop] [q92] -> [> PlayerSpr > q93 Stop] [q92]\n[> PlayerSpr no Stop] [q91] -> [> PlayerSpr > q92 Stop] [q91]\n[> PlayerSpr no Stop] [q90] -> [> PlayerSpr > q91 Stop] [q90]\n[> PlayerSpr no Stop] [q89] -> [> PlayerSpr > q90 Stop] [q89]\n[> PlayerSpr no Stop] [q88] -> [> PlayerSpr > q89 Stop] [q88]\n[> PlayerSpr no Stop] [q87] -> [> PlayerSpr > q88 Stop] [q87]\n[> PlayerSpr no Stop] [q86] -> [> PlayerSpr > q87 Stop] [q86]\n[> PlayerSpr no Stop] [q85] -> [> PlayerSpr > q86 Stop] [q85]\n[> PlayerSpr no Stop] [q84] -> [> PlayerSpr > q85 Stop] [q84]\n[> PlayerSpr no Stop] [q83] -> [> PlayerSpr > q84 Stop] [q83]\n[> PlayerSpr no Stop] [q82] -> [> PlayerSpr > q83 Stop] [q82]\n[> PlayerSpr no Stop] [q81] -> [> PlayerSpr > q82 Stop] [q81]\n[> PlayerSpr no Stop] [q80] -> [> PlayerSpr > q81 Stop] [q80]\n[> PlayerSpr no Stop] [q79] -> [> PlayerSpr > q80 Stop] [q79]\n[> PlayerSpr no Stop] [q78] -> [> PlayerSpr > q79 Stop] [q78]\n[> PlayerSpr no Stop] [q77] -> [> PlayerSpr > q78 Stop] [q77]\n[> PlayerSpr no Stop] [q76] -> [> PlayerSpr > q77 Stop] [q76]\n[> PlayerSpr no Stop] [q75] -> [> PlayerSpr > q76 Stop] [q75]\n[> PlayerSpr no Stop] [q74] -> [> PlayerSpr > q75 Stop] [q74]\n[> PlayerSpr no Stop] [q73] -> [> PlayerSpr > q74 Stop] [q73]\n[> PlayerSpr no Stop] [q72] -> [> PlayerSpr > q73 Stop] [q72]\n[> PlayerSpr no Stop] [q71] -> [> PlayerSpr > q72 Stop] [q71]\n[> PlayerSpr no Stop] [q70] -> [> PlayerSpr > q71 Stop] [q70]\n[> PlayerSpr no Stop] [q69] -> [> PlayerSpr > q70 Stop] [q69]\n[> PlayerSpr no Stop] [q68] -> [> PlayerSpr > q69 Stop] [q68]\n[> PlayerSpr no Stop] [q67] -> [> PlayerSpr > q68 Stop] [q67]\n[> PlayerSpr no Stop] [q66] -> [> PlayerSpr > q67 Stop] [q66]\n[> PlayerSpr no Stop] [q65] -> [> PlayerSpr > q66 Stop] [q65]\n[> PlayerSpr no Stop] [q64] -> [> PlayerSpr > q65 Stop] [q64]\n[> PlayerSpr no Stop] [q63] -> [> PlayerSpr > q64 Stop] [q63]\n[> PlayerSpr no Stop] [q62] -> [> PlayerSpr > q63 Stop] [q62]\n[> PlayerSpr no Stop] [q61] -> [> PlayerSpr > q62 Stop] [q61]\n[> PlayerSpr no Stop] [q60] -> [> PlayerSpr > q61 Stop] [q60]\n[> PlayerSpr no Stop] [q59] -> [> PlayerSpr > q60 Stop] [q59]\n[> PlayerSpr no Stop] [q58] -> [> PlayerSpr > q59 Stop] [q58]\n[> PlayerSpr no Stop] [q57] -> [> PlayerSpr > q58 Stop] [q57]\n[> PlayerSpr no Stop] [q56] -> [> PlayerSpr > q57 Stop] [q56]\n[> PlayerSpr no Stop] [q55] -> [> PlayerSpr > q56 Stop] [q55]\n[> PlayerSpr no Stop] [q54] -> [> PlayerSpr > q55 Stop] [q54]\n[> PlayerSpr no Stop] [q53] -> [> PlayerSpr > q54 Stop] [q53]\n[> PlayerSpr no Stop] [q52] -> [> PlayerSpr > q53 Stop] [q52]\n[> PlayerSpr no Stop] [q51] -> [> PlayerSpr > q52 Stop] [q51]\n[> PlayerSpr no Stop] [q50] -> [> PlayerSpr > q51 Stop] [q50]\n[> PlayerSpr no Stop] [q49] -> [> PlayerSpr > q50 Stop] [q49]\n[> PlayerSpr no Stop] [q48] -> [> PlayerSpr > q49 Stop] [q48]\n[> PlayerSpr no Stop] [q47] -> [> PlayerSpr > q48 Stop] [q47]\n[> PlayerSpr no Stop] [q46] -> [> PlayerSpr > q47 Stop] [q46]\n[> PlayerSpr no Stop] [q45] -> [> PlayerSpr > q46 Stop] [q45]\n[> PlayerSpr no Stop] [q44] -> [> PlayerSpr > q45 Stop] [q44]\n[> PlayerSpr no Stop] [q43] -> [> PlayerSpr > q44 Stop] [q43]\n[> PlayerSpr no Stop] [q42] -> [> PlayerSpr > q43 Stop] [q42]\n[> PlayerSpr no Stop] [q41] -> [> PlayerSpr > q42 Stop] [q41]\n[> PlayerSpr no Stop] [q40] -> [> PlayerSpr > q41 Stop] [q40]\n[> PlayerSpr no Stop] [q39] -> [> PlayerSpr > q40 Stop] [q39]\n[> PlayerSpr no Stop] [q38] -> [> PlayerSpr > q39 Stop] [q38]\n[> PlayerSpr no Stop] [q37] -> [> PlayerSpr > q38 Stop] [q37]\n[> PlayerSpr no Stop] [q36] -> [> PlayerSpr > q37 Stop] [q36]\n[> PlayerSpr no Stop] [q35] -> [> PlayerSpr > q36 Stop] [q35]\n[> PlayerSpr no Stop] [q34] -> [> PlayerSpr > q35 Stop] [q34]\n[> PlayerSpr no Stop] [q33] -> [> PlayerSpr > q34 Stop] [q33]\n[> PlayerSpr no Stop] [q32] -> [> PlayerSpr > q33 Stop] [q32]\n[> PlayerSpr no Stop] [q31] -> [> PlayerSpr > q32 Stop] [q31]\n[> PlayerSpr no Stop] [q30] -> [> PlayerSpr > q31 Stop] [q30]\n[> PlayerSpr no Stop] [q29] -> [> PlayerSpr > q30 Stop] [q29]\n[> PlayerSpr no Stop] [q28] -> [> PlayerSpr > q29 Stop] [q28]\n[> PlayerSpr no Stop] [q27] -> [> PlayerSpr > q28 Stop] [q27]\n[> PlayerSpr no Stop] [q26] -> [> PlayerSpr > q27 Stop] [q26]\n[> PlayerSpr no Stop] [q25] -> [> PlayerSpr > q26 Stop] [q25]\n[> PlayerSpr no Stop] [q24] -> [> PlayerSpr > q25 Stop] [q24]\n[> PlayerSpr no Stop] [q23] -> [> PlayerSpr > q24 Stop] [q23]\n[> PlayerSpr no Stop] [q22] -> [> PlayerSpr > q23 Stop] [q22]\n[> PlayerSpr no Stop] [q21] -> [> PlayerSpr > q22 Stop] [q21]\n[> PlayerSpr no Stop] [q20] -> [> PlayerSpr > q21 Stop] [q20]\n[> PlayerSpr no Stop] [q19] -> [> PlayerSpr > q20 Stop] [q19]\n[> PlayerSpr no Stop] [q18] -> [> PlayerSpr > q19 Stop] [q18]\n[> PlayerSpr no Stop] [q17] -> [> PlayerSpr > q18 Stop] [q17]\n[> PlayerSpr no Stop] [q16] -> [> PlayerSpr > q17 Stop] [q16]\n[> PlayerSpr no Stop] [q15] -> [> PlayerSpr > q16 Stop] [q15]\n[> PlayerSpr no Stop] [q14] -> [> PlayerSpr > q15 Stop] [q14]\n[> PlayerSpr no Stop] [q13] -> [> PlayerSpr > q14 Stop] [q13]\n[> PlayerSpr no Stop] [q12] -> [> PlayerSpr > q13 Stop] [q12]\n[> PlayerSpr no Stop] [q11] -> [> PlayerSpr > q12 Stop] [q11]\n[> PlayerSpr no Stop] [q10] -> [> PlayerSpr > q11 Stop] [q10]\n[> PlayerSpr no Stop] [q9] -> [> PlayerSpr > q10 Stop] [q9]\n[> PlayerSpr no Stop] [q8] -> [> PlayerSpr > q9 Stop] [q8]\n[> PlayerSpr no Stop] [q7] -> [> PlayerSpr > q8 Stop] [q7]\n[> PlayerSpr no Stop] [q6] -> [> PlayerSpr > q7 Stop] [q6]\n[> PlayerSpr no Stop] [q5] -> [> PlayerSpr > q6 Stop] [q5]\n[> PlayerSpr no Stop] [q4] -> [> PlayerSpr > q5 Stop] [q4]\n[> PlayerSpr no Stop] [q3] -> [> PlayerSpr > q4 Stop] [q3]\n[> PlayerSpr no Stop] [q2] -> [> PlayerSpr > q3 Stop] [q2]\n[> PlayerSpr no Stop] [q1] -> [> PlayerSpr > q2 Stop] [q1]\n\n(Placing Crate Markers)\n[> PlayerSpr > Mark | Crate] -> [> PlayerSpr > Mark | > Crate > Mark]\n\n(Rewinding)\n(Teleport the highest mark under the player and the highest mark that is under a crate next to each other at the x and z position)\n[Stop] -> []\n[action PlayerSpr Mark no Stop] [] -> [action PlayerSpr Mark Stop] [z0 Mark] sfx1\nright [z0 | ] -> [z0 | x0]\n[Stop] -> []\n[Highest] -> []\n[Mark Crate] [action PlayerSpr no Stop] [x0] -> [Crate Mark Highest] [action PlayerSpr Stop] [x0 Mark]\n\n(Try to move the objects together)\nright [z0 | Mark x0 ] -> [z0 | < Mark x0]\n\n(The rest of the code must be done \"late\" so I can see the result of the equality check, so I convert the action state to an object called \"Rewind\")\n[Rewind] -> []\n[action PlayerSpr] -> [Rewind PlayerSpr]\n\n(Place the PlayerD object if it's the first turn)\n[stationary PlayerSpr no Rewind] -> [PlayerSpr DPlayer]\n\n(Checks if the two objects failed to combine, if this is the case, then we know they are the same object)\nlate [x0 Mark] [Crate Highest] -> [x0] [Crate Mark Same]\nlate [Mark z0] -> [z0]\n\n(Rewinds a pushed crate)\nlate [Rewind PlayerSpr] [Crate Mark Same] -> [Rewind PlayerSpr Crate] []\n\n(Removes the highest mark that is under the player)\nlate [Stop] -> []\nlate [Rewind PlayerSpr Mark no Stop] -> [Rewind PlayerSpr Stop]\n(Teleports the player to the starting position if there are no marks)\nlate [] -> [NoMarks]\nlate [NoMarks] [Mark] -> [] [Mark]\nlate [NoMarks] [Rewind PlayerSpr no q1] [q1 no Crate] -> [NoMarks] [] [PlayerSpr q1 Rewind DPlayer]\n(Teleports the player to the highest mark)\nlate [Stop] -> []\nlate [Rewind PlayerSpr no Stop] [Mark no Crate no PlayerSpr] -> [] [PlayerSpr Mark Rewind Stop]\n\n(Faces the player in the correct direction after rewinding)\nlate [Stop] -> []\nlate [Highest] -> []\nlate [PlayerSpr no Stop] [Mark no Crate no PlayerSpr] -> [PlayerSpr Stop] [Mark Highest]\n\nlate [] -> [NoMarks]\nlate [NoMarks] [Mark no q2] -> [] [Mark]\n\nlate up [NoMarks] [Rewind PlayerSpr | q1] -> [][Rewind PlayerSpr DPlayer | q1]\nlate right[NoMarks] [Rewind PlayerSpr | q1] -> [][Rewind PlayerSpr LPlayer | q1]\nlate down[NoMarks] [Rewind PlayerSpr | q1] -> [] [Rewind PlayerSpr UPlayer | q1]\nlate left[NoMarks] [Rewind PlayerSpr | q1] -> [] [Rewind PlayerSpr RPlayer | q1]\n\nlate up [Rewind PlayerSpr | Highest] -> [Rewind PlayerSpr DPlayer | ]\nlate right [Rewind PlayerSpr | Highest] -> [Rewind PlayerSpr LPlayer | ]\nlate down [Rewind PlayerSpr | Highest] -> [Rewind PlayerSpr UPlayer | ]\nlate left [Rewind PlayerSpr | Highest] -> [Rewind PlayerSpr RPlayer | ]\n\n\n[Number no Wall] -> [Number Wall BoundaryWall]\n\n(Player/Camera)\nlate [PlayerSpr no Exit no Gate] [Player] -> [PlayerSpr] []\nlate [PlayerSpr no Exit no Gate] -> [PlayerSpr Player]\nlate [Player no BoundaryWall no Exit no Gate | ] -> [Player | Player]\n\n(Doors)\nlate [SoundStop] -> []\nlate [Door] -> [Door SoundStop]\nlate [Door] -> []\nlate [Player | | Exit] [Player Target no Crates] -> [Player | | Exit Door] [Player Target]\n\n[moving Player] [stationary Player] -> [moving Player] [moving Player]\n\nlate [PlayerSpr Exit] [Door] -> [PlayerSpr Exit] []\n\n(Door Sfx)\nlate [SoundStop Exit no Door] -> [Exit] sfx2\n\n(Checkpoint)\nlate [cp Player no PlayerSpr] -> [Player]\nlate [cp PlayerSpr] -> checkpoint\n\n(Timer)\n(Decrease when player moves)\nlate [ClockD Player | no 0 | 0] [PlayerSpr no Rewind] -> [ClockD Player | | 9 Countdown] [PlayerSpr]\nlate [ClockD Player | | 1] [PlayerSpr no Rewind] -> [ClockD Player | | 0] [PlayerSpr]\nlate [ClockD Player | | 2] [PlayerSpr no Rewind] -> [ClockD Player | | 1] [PlayerSpr]\nlate [ClockD Player | | 3] [PlayerSpr no Rewind] -> [ClockD Player | | 2] [PlayerSpr]\nlate [ClockD Player | | 4] [PlayerSpr no Rewind] -> [ClockD Player | | 3] [PlayerSpr]\nlate [ClockD Player | | 5] [PlayerSpr no Rewind] -> [ClockD Player | | 4] [PlayerSpr]\nlate [ClockD Player | | 6] [PlayerSpr no Rewind] -> [ClockD Player | | 5] [PlayerSpr]\nlate [ClockD Player | | 7] [PlayerSpr no Rewind] -> [ClockD Player | | 6] [PlayerSpr]\nlate [ClockD Player | | 8] [PlayerSpr no Rewind] -> [ClockD Player | | 7] [PlayerSpr]\nlate [ClockD Player | | 9 no CountDown] [PlayerSpr no Rewind] -> [ClockD Player | | 8] [PlayerSpr]\n\n(Increase when player rewinds)\nlate [ClockD Player | | 9] [Rewind PlayerSpr] -> [ClockD Player | | 0 CountUp] [Rewind PlayerSpr]\nlate [ClockD Player | | 8] [Rewind PlayerSpr] -> [ClockD Player | | 9] [Rewind PlayerSpr]\nlate [ClockD Player | | 7] [Rewind PlayerSpr] -> [ClockD Player | | 8] [Rewind PlayerSpr]\nlate [ClockD Player | | 6] [Rewind PlayerSpr] -> [ClockD Player | | 7] [Rewind PlayerSpr]\nlate [ClockD Player | | 5] [Rewind PlayerSpr] -> [ClockD Player | | 6] [Rewind PlayerSpr]\nlate [ClockD Player | | 4] [Rewind PlayerSpr] -> [ClockD Player | | 5] [Rewind PlayerSpr]\nlate [ClockD Player | | 3] [Rewind PlayerSpr] -> [ClockD Player | | 4] [Rewind PlayerSpr]\nlate [ClockD Player | | 2] [Rewind PlayerSpr] -> [ClockD Player | | 3] [Rewind PlayerSpr]\nlate [ClockD Player | | 1] [Rewind PlayerSpr] -> [ClockD Player | | 2] [Rewind PlayerSpr]\nlate [ClockD Player | | 0 no CountUp] [Rewind PlayerSpr] -> [ClockD Player | | 1] [Rewind PlayerSpr]\n\n(Tens digit countdown)\nlate down [1 | CountDown] -> [0 | ]\nlate down [2 | CountDown] -> [1 | ]\nlate down [3 | CountDown] -> [2 | ]\nlate down [4 | CountDown] -> [3 | ]\nlate down [5 | CountDown] -> [4 | ]\nlate down [6 | CountDown] -> [5 | ]\nlate down [7 | CountDown] -> [6 | ]\nlate down [8 | CountDown] -> [7 | ]\nlate down [9 | CountDown] -> [8 | ]\n\n(Tens digit countup)\nlate down [8 | CountUp] -> [9 | ]\nlate down [7 | CountUp] -> [8 | ]\nlate down [6 | CountUp] -> [7 | ]\nlate down [5 | CountUp] -> [6 | ]\nlate down [4 | CountUp] -> [5 | ]\nlate down [3 | CountUp] -> [4 | ]\nlate down [2 | CountUp] -> [3 | ]\nlate down [1 | CountUp] -> [2 | ]\nlate down [0 | CountUp] -> [1 | ]\n\n(Turns player into statue)\nlate [SoundStop] -> []\nlate [PlayerSpr no Statue] -> [PlayerSpr SoundStop]\nlate [Statue] -> []\nlate [0 | 0 Player] [PlayerSpr no Rewind] [ClockSide Player] -> [0 | 0] [PlayerSpr Statue] [ClockSide Player]\n\nlate [PlayerSpr SoundStop Statue] -> sfx3\n\n(Places the camera)\nlate down [Player | | | | | | | | | Player] -> [Player | | | | Cam | | | | | Player]\nlate right [Cam | Cam | Cam | Cam | Cam | Cam | Cam | Cam] -> [ | | | | Cam | | | ]\nlate [Player no Cam] -> []\n\n(Visuals)\nlate [remove no Gate] -> []\n\nlate [Crate TimeCrate] -> [Crate TimeCrate FadeCrate]\n\nlate [DirPlayer Statue] -> [Statue]\n\nlate up [Wall | ] -> [Wall | OverWall]\nlate up [Crate | ] -> [Crate | OverCrate]\nlate up [TimeCrate | ] -> [TimeCrate | OverTimeCrate]\nlate up [FadeCrate | ] -> [FadeCrate | OverFadeCrate]\nlate up [PlayerSpr | ] -> [PlayerSpr | OverPlayer]\nlate up [Statue | ] -> [Statue | OverStatue]\nlate up [Exit | ] -> [Exit | ExitU]\nlate up [Gate | ] -> [Gate | GateU]\nlate up [Door | ] -> [Door | OverDoor]\n\nlate right [Clock | ] -> [Clock | ClockR]\nlate down [Clock | ] -> [Clock | ClockD]\nlate left [Clock | ] -> [Clock | ClockL]\n\nlate right [Exit | ] -> [Exit | ExitR]\nlate left [Exit | ] -> [Exit | ExitL]\nlate right [ExitU | ] -> [ExitU | ExitUR]\nlate left [ExitU | ] -> [ExitU | ExitUL]\n\nlate right [Gate | ] -> [Gate | GateR]\nlate left [Gate | ] -> [Gate | GateL]\nlate right [GateU | ] -> [GateU | GateUR]\nlate left [GateU | ] -> [GateU | GateUL]\n\nlate right [Exit | Wall] -> [Exit | BushR]\nlate left [Exit | Wall] -> [Exit | BushL]\n\nlate right [Gate | Wall] -> [Gate | BushR]\nlate left [Gate | Wall] -> [Gate | BushL]\n\nlate up [BushR | ] -> [BushR | OverBushR]\nlate up [BushL | ] -> [BushL | OverBushL]\n\nlate right down [BackGround no Dot| BackGround no Dot] -> [BackGround | Dot BackGround]\nlate down [Dot | Dot] -> [Dot | BackGround]\nlate [Bounds Dot] -> [Bounds]\n\nlate [ExitU Dot] -> [ExitU]\nlate [PlayerSpr Dot] -> [PlayerSpr]\nlate [Gate | Dot] -> [Gate | ]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\nmessage It was a warm and sunny day\nmessage So into the hedges went Sir Montaclé\n\nmessage Then, a witch's curse befell the poor bloke\nmessage Now one step too many, will turn him to stone\n\nmessage Montaclé despaired, wandering lost in the maze\nmessage He knew freedom lay, just beyond the golden gate\n\nmessage But Montaclé was clever, and so are you, so fret not\nmessage Press R to restart, and space to turn back the clock\n\n---------------------\n-----!!!!!!!!!!------\n-----c......##!------\n-----!.t....##!------\n-----2#####.##!------\n-----1..o*..o.!------\n-----!...##...!------\n-----!...#####!------\n-----!........!------\n-----!........!------\n-!!!!!!!e!!!e!!!!!!!-\n-c........!........c-\n-!....####!....#o..!-\n-1.......#!........1-\n-6####..##!..#.to##7-\n-!###o.###!####.###!-\n-!##..####!...t....!-\n-!#.....t.!.....##.!-\n-!........!....#...!-\n-!!!e!!!!!!!!!!!!e!!-\n-c#...####!####....c-\n-!......##!...#.t#.!-\n-1.......o!.t.#*...1-\n-0.....#..!...#o###5-\n-!.......#!....o##.!-\n-!....#t.#!....o#..!-\n-!.......#!........!-\n-!#....###!........!-\n-!!!e!!!!!!!e!!!!!!!-\n-c#...####!.....###c-\n-!......##!......##!-\n-1..o....#!.*.....#2-\n-6...##..#!........1-\n-!....#..#!####....!-\n-!.....*.#!...#..o.!-\n-!#......#!#..#....!-\n-!######.#!.t.#....!-\n-!!!!!!!e!!!e!!!!e!!-\n-c....#...!...#....c-\n-!..#.....!..#.....!-\n-1..#.....!....#.t.2-\n-5..######!....#...0-\n-!...p....!....####!-\n-!....###.!...*o.##!-\n-!#####.#.!####...#!-\n-!....*t..!........!-\n-!!g!!!e!!!e!!!!!!!!-\n-----!...#...#c------\n-----!...#...#!------\n-----!...#...#1------\n-----!#.....##3------\n-----!##...###!------\n-----!########!------\n-----!#.....##!------\n-----!.......#!------\n-----!!!!!!!!!!------\n---------------------\n\nmessage Thank you for playing!\n\n(\n(Level1)\n---------------------\n-----!!!!!!!!!!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-!!!!!!!e!!!e!!!!!!!-\n-c....#...!........c-\n-!..#.....!........!-\n-1..#.....!........!-\n-5..######!........!-\n-!...p....!........!-\n-!....###.!........!-\n-!#####.#.!........!-\n-!....*t..!........!-\n-!!g!!!e!!!!e!!!!!!!-\n-----!........c------\n-----!........!------\n-----!........1------\n-----!........3------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!!!!!!!!!!------\n---------------------\n\n\n(Level2)\n-!........!.\n-!!!e!!!!!!!\n-c#...####!.\n-!......##!.\n-1..o....#!.\n-6...##..#!.\n-!....#..#!.\n-!.....*.#!.\n-!#......#!.\n-!######p#!.\n-!!!!!!!e!!!\n\n\n(Level3)\n-!........!.\n-!!!e!!!!!!!\n-c#...####!.\n-!......##!.\n-1.......o!.\n-0.....#..!.\n-!.......#!.\n-!....#t.#!.\n-!.......#!.\n-!#.p..###!.\n-!!!e!!!!!!!\n\n\n(Level4)\n-!........!.\n-!!!!!!!e!!!\n-c........!.\n-!....####!.\n-1.......#!.\n-6####..##!.\n-!###o.###!.\n-!##..####!.\n-!#.....t.!.\n-!..p.....!.\n-!!!e!!!!!!!\n\n\n(Level5)\n------------\n-!!!!!!!!!!-\n-c......##!-\n-!.t....##!-\n-2#####.##!-\n-1..o*..o.!-\n-!...##...!-\n-!...#####!-\n-!........!-\n-!..p.....!-\n!!!!e!!!e!!!\n\n(Level6)\n-!........!.\n!!!e!!!!!!!.\n-!.p......c.\n-!....#o..!.\n-!........1.\n-!..#.to##6.\n-!####.###!.\n-!...t....!.\n-!.....##.!.\n-!....#...!.\n!!!!!!!!e!!.\n\n(Level7)\n-!........!.\n!!!!!!!!e!!.\n-!####..p.c.\n-!...#.t#.!.\n-!.t.#*...1.\n-!...#o###5.\n-!....o##.!.\n-!....o#..!.\n-!........!.\n-!.......#!.\n!!!e!!!!!!!.\n\n(Level8)\n------------\n-!!e!!!!!!!-\n-!.p...###c-\n-!......##!-\n-!.*.....#2-\n-!........0-\n-!####....!-\n-!...#..o.!-\n-!#..#....!-\n-!.t.#....!-\n-!!e!!!!e!!-\n-!...#....c-\n-!..#.....!-\n-!....#.t.2-\n-!....#...0-\n-!....####!-\n-!...*o.##!-\n-!####...#!-\n-!........!-\n-!e!!!!!!!!-\n------------\n\n(Bottom Room, no puzzle)\n-.....!.....\n!!!e!!!e!!!!\n-!...#.p.#c.\n-!...#...#!.\n-!...#...#1.\n-!#.....##3.\n-!##...###!.\n-!########!.\n-!#.....##!.\n-!.......#!.\n-!!!!!!!!!!.\n)\n",[1,1,0,0,0,0,3,3,2,3,3,3,0,0,0,0,1,0,0,0,3,0,1,1,1,0,1,0,0,0,"restart",0,"restart",0,3,3,3,0,"undo",4,4,4,4,0,0,3,3,3,2,4,4,4,4,4,4,3,3,3,3,0,0,0,4,4,4,4,4,4,0,0,0,0,3,3,3,3],"background bounds z0:0,background bounds:1,1,1,1,1,1,1,1,1,1,background bounds clockl:2,1,1,1,1,1,1,1,1,2,\n1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,2,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background bounds x0:3,1,1,1,1,1,\n1,1,1,background bounds overwall:4,background boundarywall dot overwall wall:5,background boundarywall clock overwall wall:6,background boundarywall clockd dot overwall wall:7,1 background boundarywall overwall wall:8,6 background boundarywall dot overwall wall:9,background boundarywall overwall wall:10,5,10,5,10,background boundarywall clock dot overwall wall:11,background boundarywall clockd overwall wall:12,0 background boundarywall dot overwall wall:13,0 background boundarywall overwall wall:14,5,10,5,\n10,5,6,7,14,1 background boundarywall dot overwall wall:15,10,5,10,5,10,11,12,13,8,5,10,5,10,background boundarywall dot wall:16,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,background boundarywall wall:17,background clockr dot:18,\nbackground:19,background dot overwall:20,background overwall wall:21,background dot overwall wall:22,21,background dot wall:23,background overwall:24,5,background clockr wall:25,background dot:26,19,26,19,26,24,22,10,background clockr dot wall:27,19,26,19,\n26,24,22,21,16,background clockr:28,26,19,26,19,20,background wall:29,background dot gateul overbushl:30,background boundarywall bushl gatel:31,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,4,16,19,26,24,22,21,23,19,\nbackground dot exitul overbushl:32,background boundarywall bushl exitl:33,26,19,26,19,26,19,26,background exitul overbushl:34,background boundarywall bushl dot exitl:35,19,26,19,26,19,26,24,22,17,background dot q7:36,\nbackground q6:37,background dot q5:38,background q4:39,background dot q3:40,24,23,background gateu:41,background dot gate:42,1,1,1,1,1,1,1,1,1,1,1,1,2,\n1,1,1,1,1,1,4,17,26,19,20,21,23,19,26,background cp exitu:43,background bounds exit:44,19,26,19,26,\n19,26,background q32:45,background exitu q31:46,background bounds exit q30:47,background dot q29:48,background overcrate q28:49,background crate dot q26 target:50,19,26,19,20,21,16,background overwall q8:51,22,21,23,background q2:52,20,29,\nbackground dot gateur overbushr:53,background boundarywall bushr gater:54,1,1,1,1,1,1,1,1,1,1,4,10,11,12,2 background boundarywall dot overwall wall:55,8,5,10,5,\n10,16,19,26,24,23,background target:56,26,19,background dot exitur overbushr:57,background boundarywall bushr exitr:58,26,19,background dot q37:59,background q36:60,background dot q35:61,background q34:62,background dot q33:63,background exitur overbushr:64,background boundarywall bushr dot exitr:65,19,\nbackground dot q27:66,background overwall q25 q26:67,23,19,26,24,22,17,background dot q9:68,background q10:69,20,29,background dot q1:70,24,23,24,5,10,5,10,5,\n10,5,10,5,17,1,4,16,28,20,29,26,19,26,19,20,17,20,29,26,19,\n20,29,26,24,5,29,26,background q38:71,background cam dot player:72,24,23,19,20,10,23,19,background dot overwall q24 q25:73,background cam overwall wall:74,23,19,20,\n21,5,29,background dot q11:75,24,background cam dot wall:76,24,22,background overcrate wall:77,background crate dot exitul overbushl:78,33,26,19,20,21,22,21,23,24,16,1,\n4,17,background dot overtimecrate:79,background overwall timecrate:80,23,19,26,19,26,34,35,24,23,19,20,21,23,19,20,10,23,\n19,background dot highest overwall q39:81,29,26,19,20,21,5,29,26,background q21 q24:82,background dot q20 q21:83,background q19 q20:84,background dot q19:85,background overwall q18:86,background dot exitul overbushl wall:87,33,26,background q12:88,20,29,\n20,29,79,background exitu timecrate:89,44,background cp:90,26,19,20,21,23,19,20,17,1,4,16,19,20,29,background dot target:91,\n19,26,19,43,44,background cp dot overwall:92,29,20,21,22,background overtimecrate wall:93,background dot timecrate:94,24,5,21,background dot overplayer overstatue wall:95,background playerspr q40 soundstop statue stop:96,26,19,26,24,\n22,10,22,29,background dot q23:97,background q22:98,26,19,background dot q17:99,background exitu q16:100,background bounds exit q15:101,background q14:102,background dot q13:103,24,23,24,22,29,57,58,26,\n19,26,19,20,29,26,24,16,1,4,17,26,24,background dot overcrate wall:104,background crate overwall:105,22,29,26,64,65,24,\n22,21,22,21,23,19,20,10,22,93,background dot target timecrate:106,24,22,21,22,21,5,21,22,21,22,\n21,22,21,background dot exitur overbushr wall:107,58,26,19,20,29,26,19,26,24,5,21,22,29,26,24,23,19,\n20,17,1,4,16,19,20,29,20,21,23,19,20,10,5,10,5,10,5,10,5,\n10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,\n5,10,5,10,5,10,background boundarywall dot exitul overbushl wall:108,33,26,19,26,19,20,29,26,24,16,1,4,17,26,\n19,26,19,20,29,26,34,35,19,26,19,20,29,26,19,20,10,23,19,26,19,\n26,19,26,34,35,19,26,19,20,29,20,29,32,33,26,19,26,19,26,24,23,\n43,44,90,26,19,20,21,23,19,20,17,1,4,5,21,22,29,91,24,23,19,\n43,44,background cp dot:109,19,26,24,23,19,26,24,5,29,79,background timecrate:110,26,19,26,19,43,44,109,\nbackground overcrate:111,background crate dot:112,24,23,19,79,background cp exitu timecrate:113,44,90,26,19,26,19,20,29,57,58,26,19,20,21,\n22,21,23,24,16,1,4,10,22,21,23,19,20,29,26,64,65,19,26,24,22,\n29,26,19,20,10,23,19,26,19,26,19,26,64,65,19,26,19,20,29,26,19,\n57,58,20,29,26,19,26,24,23,24,5,background clockl overwall wall:114,22,21,22,21,22,21,22,17,1,\n4,5,10,5,10,5,10,5,10,5,17,26,19,26,24,background dot overtimecrate wall:115,110,26,24,5,21,\n22,21,23,19,26,19,20,17,26,19,26,24,22,21,22,21,5,29,26,19,26,\n111,background crate dot overwall:116,29,20,10,11,12,15,3 background boundarywall overwall wall:117,5,10,5,10,16,1,1,1,1,1,1,1,\n1,1,1,4,16,24,23,background overtimecrate:118,94,19,26,24,22,17,26,111,112,56,91,56,26,\n24,16,19,26,19,26,19,26,19,20,17,26,24,22,21,23,56,26,24,16,background bounds clockr:119,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,17,26,\n56,26,background overwall target:120,23,24,23,34,35,118,94,24,22,21,23,19,20,10,23,19,26,19,\n26,19,26,34,35,19,26,19,20,29,26,19,20,17,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,4,16,19,26,24,22,29,20,29,\n43,44,92,29,20,21,23,19,26,24,5,21,23,19,26,19,91,19,43,44,109,\n118,94,24,22,29,26,24,16,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,4,17,background clockl dot:121,19,20,21,23,19,26,64,65,background clockl:122,26,24,23,\n19,26,19,20,10,background clockl dot overwall wall:123,21,23,19,26,19,26,64,65,122,26,19,20,21,22,29,\n20,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n4,5,6,7,8,7 background boundarywall dot overwall wall:124,10,5,10,5,10,11,12,15,5 background boundarywall overwall wall:125,5,10,5,10,5,6,\n7,2 background boundarywall overwall wall:126,15,10,5,10,5,10,11,12,55,14,5,10,5,10,16,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,119,1,1,1,\n1,1,1,1,1,119,1,1,1,1,1,1,1,1,119,1,1,1,1,1,1,\n1,1,119,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n",8,"1627769376598.7021"] + ["title At the Hedges of Time\nauthor galactical\n\nbackground_color #222323\n\ntext_color #f0f6f0\n\nrun_rules_on_level_start\n\nnoundo\n\nzoomscreen 12x11\n\n========\nOBJECTS\n========\n\nBackground\n#c5ccb8\n\nDot\n#9a9a97\n.....\n.....\n.....\n..0..\n.....\n\nBounds\nTransparent\n\nBoundaryWall\nTransparent\n\nWall\n#93a167 #557064\n00000\n00000\n11111\n11111\n11111\n\nOverWall\n#93a167\n.....\n.....\n00000\n00000\n00000\n\nCrate\n#8d6268 #6E4D51\n00000\n00000\n11111\n11111\n11111\n\nOverCrate\n#8d6268\n.....\n.....\n.....\n00000\n00000\n\nTimeCrate\n#70568F #433455\n00000\n00000\n11111\n11111\n11111\n\nOverTimeCrate\n#70568F\n.....\n.....\n.....\n00000\n00000\n\nFadeCrate\n#8d6268 #6E4D51\n0.0.0\n.0.0.\n1.1.1\n.1.1.\n1.1.1\n\nOverFadeCrate\n#8d6268\n.....\n.....\n.....\n0.0.0\n.0.0.\n\nPlayer\nTransparent\n\nTarget\n#f7e26b #c5ccb8\n00000\n01110\n01010\n01110\n00000\n\nCam\nTransparent\n\nStatue\n#696969 (nice) #787878 #636363\n.111.\n.111.\n.000.\n.0.0.\n.....\n\nOverStatue\n#696969 #787878 #585858\n.....\n.222.\n.222.\n21112\n00000\n\nClock\n#f7e26b #f0f6f0 black\n.000.\n01110\n11211\n11221\n11111\n\nClockL\n#f7e26b\n.....\n.....\n....0\n....0\n....0\n\nClockR\n#f7e26b\n.....\n.....\n0....\n0....\n0....\n\nClockD\n#f7e26b #f0f6f0 #6e6962\n01110\n.000.\n..2..\n..2..\n.....\n\nPlayerSpr\n#F1C69B #4A403B Black\n.202.\n.000.\n.111.\n.1.1.\n.....\n\n\nUPlayer\n#F1C69B #4A403B Black #c5ccb8 #f7e26b\n4000.\n.000.\n.111.\n.1.1.\n.....\n\nRPlayer\n#F1C69B #4A403B Black #c5ccb8 #f7e26b\n.0024\n.000.\n.111.\n.1.1.\n.....\n\nLPlayer\n#F1C69B #4A403B Black #c5ccb8 #f7e26b\n4200.\n.000.\n.111.\n.1.1.\n.....\n\nDPlayer\n#F1C69B #4A403B Black #c5ccb8 #f7e26b\n.2424\n.004.\n.111.\n.1.1.\n.....\n\n\nOverPlayer\n#F1C69B #564A44 #3E3531 #4A403B\n.....\n.222.\n.222.\n21112\n33333\n\nExit\n#5F5A54\n.....\n.....\n.....\n00000\n.....\n\nExitR\n#6e6962 #c5ccb8 #5F5A54\n0....\n0....\n0....\n0....\n.....\n\nExitL\n#6e6962 #c5ccb8 #5F5A54\n....0\n....0\n....0\n....0\n.....\n\nExitU\n#6e6962 #5F5A54\n.111.\n10001\n00.00\n.....\n.....\n\nExitUR\n#c5ccb8 #6e6962 #5F5A54\n.....\n2....\n1....\n1....\n1....\n\nExitUL\n#c5ccb8 #6e6962 #5F5A54\n.....\n....2\n....1\n....1\n....1\n\nDoor\n#514D48\n0.0.0\n.0.0.\n0.0.0\n.....\n.....\n\nOverDoor\n#514D48\n.....\n.....\n.0.0.\n0.0.0\n.0.0.\n\nGate\n#f7e26b #ECD968\n.....\n.....\n.....\n00000\n.....\n\nGateR\n#f7e26b #ECD968\n0....\n0....\n0....\n0....\n.....\n\nGateL\n#f7e26b #ECD968\n....0\n....0\n....0\n....0\n.....\n\nGateU\n#f7e26b #ECD968\n.111.\n10001\n00.00\n.....\n.....\n\nGateUR\n#f7e26b #ECD968\n.....\n1....\n0....\n0....\n0....\n\nGateUL\n#f7e26b #ECD968\n.....\n....1\n....0\n....0\n....0\n\nOverBushR\n#93a167\n.....\n.....\n..000\n..000\n..000\n\nOverBushL\n#93a167\n.....\n.....\n000..\n000..\n000..\n\nBushR\n#93a167 #557064\n..000\n..000\n..111\n..111\n..111\n\nBushL\n#93a167 #557064\n000..\n000..\n111..\n111..\n111..\n\n0\n#f0f6f0 \n.....\n..0..\n.0.0.\n.0.0.\n..0..\n\n1\n#f0f6f0 \n.....\n..0..\n.00..\n..0..\n.000.\n\n2\n#f0f6f0 \n.....\n.00..\n...0.\n..0..\n.000.\n\n3\n#f0f6f0 \n.....\n.000.\n..00.\n...0.\n.000.\n\n4\n#f0f6f0 \n.....\n.0...\n.0.0.\n.000.\n...0.\n\n5\n#f0f6f0 \n.....\n.00..\n.000.\n...0.\n.000.\n\n6\n#f0f6f0 \n.....\n.0...\n.0...\n.000.\n.000.\n\n7\n#f0f6f0 \n.....\n.000.\n...0.\n..0..\n.0...\n\n8\n#f0f6f0 \n.....\n.000.\n.000.\n.0.0.\n.000.\n\n9\n#f0f6f0 \n.....\n.000.\n.0.0.\n.000.\n...0.\n\nSoundStop\ntransparent\n\nCountDown\ntransparent\n\nCountUp\ntransparent\n\ncp\nTransparent\n\nStop\nTransparent\n\nSame\nTransparent\n\nRewind\nTransparent\n\nNoMarks\ntransparent\n\nHighest\ntransparent\n\nz0\ntransparent\n\nx0\ntransparent\n\nq1\ntransparent\nq2\nTransparent\nq3\nTransparent\nq4\nTransparent\nq5\nTransparent\nq6\nTransparent\nq7\nTransparent\nq8\nTransparent\nq9\nTransparent\nq10\nTransparent\nq11\nTransparent\nq12\nTransparent\nq13\nTransparent\nq14\nTransparent\nq15\nTransparent\nq16\nTransparent\nq17\nTransparent\nq18\nTransparent\nq19\nTransparent\nq20\nTransparent\nq21\nTransparent\nq22\nTransparent\nq23\nTransparent\nq24\nTransparent\nq25\nTransparent\nq26\nTransparent\nq27\nTransparent\nq28\nTransparent\nq29\nTransparent\nq30\nTransparent\nq31\nTransparent\nq32\nTransparent\nq33\nTransparent\nq34\nTransparent\nq35\nTransparent\nq36\nTransparent\nq37\nTransparent\nq38\nTransparent\nq39\nTransparent\nq40\nTransparent\nq41\nTransparent\nq42\nTransparent\nq43\nTransparent\nq44\nTransparent\nq45\nTransparent\nq46\nTransparent\nq47\nTransparent\nq48\nTransparent\nq49\nTransparent\nq50\nTransparent\nq51\nTransparent\nq52\nTransparent\nq53\nTransparent\nq54\nTransparent\nq55\nTransparent\nq56\nTransparent\nq57\nTransparent\nq58\nTransparent\nq59\nTransparent\nq60\nTransparent\nq61\nTransparent\nq62\nTransparent\nq63\nTransparent\nq64\nTransparent\nq65\nTransparent\nq66\nTransparent\nq67\nTransparent\nq68\nTransparent\nq69\nTransparent\nq70\nTransparent\nq71\nTransparent\nq72\nTransparent\nq73\nTransparent\nq74\nTransparent\nq75\nTransparent\nq76\nTransparent\nq77\nTransparent\nq78\nTransparent\nq79\nTransparent\nq80\nTransparent\nq81\nTransparent\nq82\nTransparent\nq83\nTransparent\nq84\nTransparent\nq85\nTransparent\nq86\nTransparent\nq87\nTransparent\nq88\nTransparent\nq89\nTransparent\nq90\nTransparent\nq91\nTransparent\nq92\nTransparent\nq93\nTransparent\nq94\nTransparent\nq95\nTransparent\nq96\nTransparent\nq97\nTransparent\nq98\nTransparent\nq99\nTransparent\nq100\nTransparent\nq101\ntransparent\nq102\ntransparent\nq103\ntransparent\nq104\ntransparent\nq105\ntransparent\nq106\ntransparent\nq107\ntransparent\nq108\ntransparent\nq109\ntransparent\nq110\ntransparent\nq111\ntransparent\nq112\ntransparent\nq113\ntransparent\nq114\ntransparent\nq115\ntransparent\nq116\ntransparent\nq117\ntransparent\nq118\ntransparent\nq119\ntransparent\nq120\ntransparent\nq121\ntransparent\nq122\ntransparent\nq123\ntransparent\nq124\ntransparent\nq125\ntransparent\nq126\ntransparent\nq127\ntransparent\nq128\ntransparent\nq129\ntransparent\nq130\ntransparent\nq131\ntransparent\nq132\ntransparent\nq133\ntransparent\nq134\ntransparent\nq135\ntransparent\nq136\ntransparent\nq137\ntransparent\nq138\ntransparent\nq139\ntransparent\nq140\ntransparent\nq141\ntransparent\nq142\ntransparent\nq143\ntransparent\nq144\ntransparent\nq145\ntransparent\nq146\ntransparent\nq147\ntransparent\nq148\ntransparent\nq149\ntransparent\nq150\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n\n- = Bounds\n\n# = Wall\n! = BoundaryWall and Wall\np = PlayerSpr and q1\ne = Exit and Bounds\n* = Crate\nt = TimeCrate\no = Target\nc = clock and BoundaryWall and Wall\ng = gate\n\nWalls = Wall or BushR or BushL or Door\nCrates = Crate or TimeCrate\n\nWallOrExit = Walls or Exit\n\nremove = OverWall or OverPlayer or ExitR or ExitL or ExitU or ExitUR or ExitUL or Dot or OverBushR or OverBushL or OverCrate or OverTimeCrate or FadeCrate or OverFadeCrate or OverDoor or ClockR or ClockD or ClockL or OverStatue\n\nDirPlayer = UPlayer or RPlayer or DPlayer or LPlayer\n\nNumber = 0 or 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9\n\nClockSide = ClockL or ClockR\n\nMark = q150 or q149 or q148 or q147 or q146 or q145 or q144 or q143 or q142 or q141 or q140 or q139 or q138 or q137 or q136 or q135 or q134 or q133 or q132 or q131 or q130 or q129 or q128 or q127 or q126 or q125 or q124 or q123 or q122 or q121 or q120 or q119 or q118 or q117 or q116 or q115 or q114 or q113 or q112 or q111 or q110 or q109 or q108 or q107 or q106 or q105 or q104 or q103 or q102 or q101 or q100 or q99 or q98 or q97 or q96 or q95 or q94 or q93 or q92 or q91 or q90 or q89 or q88 or q87 or q86 or q85 or q84 or q83 or q82 or q81 or q80 or q79 or q78 or q77 or q76 or q75 or q74 or q73 or q72 or q71 or q70 or q69 or q68 or q67 or q66 or q65 or q64 or q63 or q62 or q61 or q60 or q59 or q58 or q57 or q56 or q55 or q54 or q53 or q52 or q51 or q50 or q49 or q48 or q47 or q46 or q45 or q44 or q43 or q42 or q41 or q40 or q39 or q38 or q37 or q36 or q35 or q34 or q33 or q32 or q31 or q30 or q29 or q28 or q27 or q26 or q25 or q24 or q23 or q22 or q21 or q20 or q19 or q18 or q17 or q16 or q15 or q14 or q13 or q12 or q11 or q10 or q9 or q8 or q7 or q6 or q5 or q4 or q3 or q2\n\n=======\nSOUNDS\n=======\n\nsfx0 76045107\nsfx1 32958905\nsfx2 11140903\nsfx3 3750107\n\nrestart 26711100\n\nshowmessage 76045107\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nDot\nExit\nGate\nCam\nBounds\nTarget\nSoundStop\ncp\nStop\nRewind\nSame\nNoMarks\nHighest\nz0\nx0\nq1\nq2\nq3\nq4\nq5\nq6\nq7\nq8\nq9\nq10\nq11\nq12\nq13\nq14\nq15\nq16\nq17\nq18\nq19\nq20\nq21\nq22\nq23\nq24\nq25\nq26\nq27\nq28\nq29\nq30\nq31\nq32\nq33\nq34\nq35\nq36\nq37\nq38\nq39\nq40\nq41\nq42\nq43\nq44\nq45\nq46\nq47\nq48\nq49\nq50\nq51\nq52\nq53\nq54\nq55\nq56\nq57\nq58\nq59\nq60\nq61\nq62\nq63\nq64\nq65\nq66\nq67\nq68\nq69\nq70\nq71\nq72\nq73\nq74\nq75\nq76\nq77\nq78\nq79\nq80\nq81\nq82\nq83\nq84\nq85\nq86\nq87\nq88\nq89\nq90\nq91\nq92\nq93\nq94\nq95\nq96\nq97\nq98\nq99\nq100\nq101\nq102\nq103\nq104\nq105\nq106\nq107\nq108\nq109\nq110\nq111\nq112\nq113\nq114\nq115\nq116\nq117\nq118\nq119\nq120\nq121\nq122\nq123\nq124\nq125\nq126\nq127\nq128\nq129\nq130\nq131\nq132\nq133\nq134\nq135\nq136\nq137\nq138\nq139\nq140\nq141\nq142\nq143\nq144\nq145\nq146\nq147\nq148\nq149\nq150\nExitR ExitL\nGateR GateL\nDoor\nCrate\nWall PlayerSpr BushR BushL\nUPlayer RPlayer DPlayer LPlayer\nStatue\nTimeCrate\nFadeCrate\nOverWall OverBushR OverBushL OverCrate OverTimeCrate\nOverFadeCrate\nExitU ExitUR ExitUL\nGateU GateUR GateUL\nOverDoor\nOverPlayer\nOverStatue\nClock\nClockR Clockd ClockL\nCountDown CountUp\nNumber\nPlayer\nBoundaryWall\n\n======\nRULES\n======\n\nup [PlayerSpr no DirPlayer no Statue] [ | Exit | ] -> [PlayerSpr] [cp | Exit | cp]\n\n[DirPlayer] -> []\n\n[stationary Player] -> cancel\n\n[> Player] [q150] -> cancel\n\n[] -> [NoMarks]\n[NoMarks] [Mark] -> [] [Mark]\n[action Player] [NoMarks] -> cancel\n\n(Movement)\n[> Player] [PlayerSpr] -> [Player] [> PlayerSpr] \n\n[> PlayerSpr Statue] -> [PlayerSpr Statue] cancel\n[> PlayerSpr | Crates | Crates] -> [PlayerSpr | Crates | Crates] cancel\n[> PlayerSpr | Crates | Walls] -> [PlayerSpr | Crates | Walls] cancel\n[> PlayerSpr | Walls] -> [PlayerSpr | Walls] cancel\n\n[> PlayerSpr] -> sfx0\n\n[OverPlayer Gate] -> [Gate] win\ndown [> PlayerSpr Gate] -> [Gate OverPlayer] again\n\n(Sprite direction)\nup [> PlayerSpr] -> [> PlayerSpr > UPlayer]\nright [> PlayerSpr] -> [> PlayerSpr > RPlayer]\ndown [> PlayerSpr] -> [> PlayerSpr > DPlayer]\nleft [> PlayerSpr] -> [> PlayerSpr > LPlayer]\n\n[> PlayerSpr | TimeCrate] -> [> PlayerSpr | > TimeCrate]\n\n[Stop] -> []\n[action Player] [PlayerSpr] -> [Player] [action PlayerSpr]\n\n\n(Placing Player Markers)\n(--Can this be refactored to be scalable?????? Probably not...)\n[> PlayerSpr no Stop] [q149]-> [> PlayerSpr > q150 Stop] [q149]\n[> PlayerSpr no Stop] [q148]-> [> PlayerSpr > q149 Stop] [q148]\n[> PlayerSpr no Stop] [q147]-> [> PlayerSpr > q148 Stop] [q147]\n[> PlayerSpr no Stop] [q146]-> [> PlayerSpr > q147 Stop] [q146]\n[> PlayerSpr no Stop] [q145]-> [> PlayerSpr > q146 Stop] [q145]\n[> PlayerSpr no Stop] [q144]-> [> PlayerSpr > q145 Stop] [q144]\n[> PlayerSpr no Stop] [q143]-> [> PlayerSpr > q144 Stop] [q143]\n[> PlayerSpr no Stop] [q142]-> [> PlayerSpr > q143 Stop] [q142]\n[> PlayerSpr no Stop] [q141]-> [> PlayerSpr > q142 Stop] [q141]\n[> PlayerSpr no Stop] [q140]-> [> PlayerSpr > q141 Stop] [q140]\n[> PlayerSpr no Stop] [q139]-> [> PlayerSpr > q140 Stop] [q139]\n[> PlayerSpr no Stop] [q138]-> [> PlayerSpr > q139 Stop] [q138]\n[> PlayerSpr no Stop] [q137]-> [> PlayerSpr > q138 Stop] [q137]\n[> PlayerSpr no Stop] [q136]-> [> PlayerSpr > q137 Stop] [q136]\n[> PlayerSpr no Stop] [q135]-> [> PlayerSpr > q136 Stop] [q135]\n[> PlayerSpr no Stop] [q134]-> [> PlayerSpr > q135 Stop] [q134]\n[> PlayerSpr no Stop] [q133]-> [> PlayerSpr > q134 Stop] [q133]\n[> PlayerSpr no Stop] [q132]-> [> PlayerSpr > q133 Stop] [q132]\n[> PlayerSpr no Stop] [q131]-> [> PlayerSpr > q132 Stop] [q131]\n[> PlayerSpr no Stop] [q130]-> [> PlayerSpr > q131 Stop] [q130]\n[> PlayerSpr no Stop] [q129]-> [> PlayerSpr > q130 Stop] [q129]\n[> PlayerSpr no Stop] [q128]-> [> PlayerSpr > q129 Stop] [q128]\n[> PlayerSpr no Stop] [q127]-> [> PlayerSpr > q128 Stop] [q127]\n[> PlayerSpr no Stop] [q126]-> [> PlayerSpr > q127 Stop] [q126]\n[> PlayerSpr no Stop] [q125]-> [> PlayerSpr > q126 Stop] [q125]\n[> PlayerSpr no Stop] [q124]-> [> PlayerSpr > q125 Stop] [q124]\n[> PlayerSpr no Stop] [q123]-> [> PlayerSpr > q124 Stop] [q123]\n[> PlayerSpr no Stop] [q122]-> [> PlayerSpr > q123 Stop] [q122]\n[> PlayerSpr no Stop] [q121]-> [> PlayerSpr > q122 Stop] [q121]\n[> PlayerSpr no Stop] [q120]-> [> PlayerSpr > q121 Stop] [q120]\n[> PlayerSpr no Stop] [q119]-> [> PlayerSpr > q120 Stop] [q119]\n[> PlayerSpr no Stop] [q118]-> [> PlayerSpr > q119 Stop] [q118]\n[> PlayerSpr no Stop] [q117]-> [> PlayerSpr > q118 Stop] [q117]\n[> PlayerSpr no Stop] [q116]-> [> PlayerSpr > q117 Stop] [q116]\n[> PlayerSpr no Stop] [q115]-> [> PlayerSpr > q116 Stop] [q115]\n[> PlayerSpr no Stop] [q114]-> [> PlayerSpr > q115 Stop] [q114]\n[> PlayerSpr no Stop] [q113]-> [> PlayerSpr > q114 Stop] [q113]\n[> PlayerSpr no Stop] [q112]-> [> PlayerSpr > q113 Stop] [q112]\n[> PlayerSpr no Stop] [q111]-> [> PlayerSpr > q112 Stop] [q111]\n[> PlayerSpr no Stop] [q110]-> [> PlayerSpr > q111 Stop] [q110]\n[> PlayerSpr no Stop] [q109]-> [> PlayerSpr > q110 Stop] [q109]\n[> PlayerSpr no Stop] [q108]-> [> PlayerSpr > q109 Stop] [q108]\n[> PlayerSpr no Stop] [q107]-> [> PlayerSpr > q108 Stop] [q107]\n[> PlayerSpr no Stop] [q106]-> [> PlayerSpr > q107 Stop] [q106]\n[> PlayerSpr no Stop] [q105]-> [> PlayerSpr > q106 Stop] [q105]\n[> PlayerSpr no Stop] [q104]-> [> PlayerSpr > q105 Stop] [q104]\n[> PlayerSpr no Stop] [q103]-> [> PlayerSpr > q104 Stop] [q103]\n[> PlayerSpr no Stop] [q102]-> [> PlayerSpr > q103 Stop] [q102]\n[> PlayerSpr no Stop] [q101]-> [> PlayerSpr > q102 Stop] [q101]\n[> PlayerSpr no Stop] [q100]-> [> PlayerSpr > q101 Stop] [q100]\n[> PlayerSpr no Stop] [q99] -> [> PlayerSpr > q100 Stop] [q99]\n[> PlayerSpr no Stop] [q98] -> [> PlayerSpr > q99 Stop] [q98]\n[> PlayerSpr no Stop] [q97] -> [> PlayerSpr > q98 Stop] [q97]\n[> PlayerSpr no Stop] [q96] -> [> PlayerSpr > q97 Stop] [q96]\n[> PlayerSpr no Stop] [q95] -> [> PlayerSpr > q96 Stop] [q95]\n[> PlayerSpr no Stop] [q94] -> [> PlayerSpr > q95 Stop] [q94]\n[> PlayerSpr no Stop] [q93] -> [> PlayerSpr > q94 Stop] [q93]\n[> PlayerSpr no Stop] [q92] -> [> PlayerSpr > q93 Stop] [q92]\n[> PlayerSpr no Stop] [q91] -> [> PlayerSpr > q92 Stop] [q91]\n[> PlayerSpr no Stop] [q90] -> [> PlayerSpr > q91 Stop] [q90]\n[> PlayerSpr no Stop] [q89] -> [> PlayerSpr > q90 Stop] [q89]\n[> PlayerSpr no Stop] [q88] -> [> PlayerSpr > q89 Stop] [q88]\n[> PlayerSpr no Stop] [q87] -> [> PlayerSpr > q88 Stop] [q87]\n[> PlayerSpr no Stop] [q86] -> [> PlayerSpr > q87 Stop] [q86]\n[> PlayerSpr no Stop] [q85] -> [> PlayerSpr > q86 Stop] [q85]\n[> PlayerSpr no Stop] [q84] -> [> PlayerSpr > q85 Stop] [q84]\n[> PlayerSpr no Stop] [q83] -> [> PlayerSpr > q84 Stop] [q83]\n[> PlayerSpr no Stop] [q82] -> [> PlayerSpr > q83 Stop] [q82]\n[> PlayerSpr no Stop] [q81] -> [> PlayerSpr > q82 Stop] [q81]\n[> PlayerSpr no Stop] [q80] -> [> PlayerSpr > q81 Stop] [q80]\n[> PlayerSpr no Stop] [q79] -> [> PlayerSpr > q80 Stop] [q79]\n[> PlayerSpr no Stop] [q78] -> [> PlayerSpr > q79 Stop] [q78]\n[> PlayerSpr no Stop] [q77] -> [> PlayerSpr > q78 Stop] [q77]\n[> PlayerSpr no Stop] [q76] -> [> PlayerSpr > q77 Stop] [q76]\n[> PlayerSpr no Stop] [q75] -> [> PlayerSpr > q76 Stop] [q75]\n[> PlayerSpr no Stop] [q74] -> [> PlayerSpr > q75 Stop] [q74]\n[> PlayerSpr no Stop] [q73] -> [> PlayerSpr > q74 Stop] [q73]\n[> PlayerSpr no Stop] [q72] -> [> PlayerSpr > q73 Stop] [q72]\n[> PlayerSpr no Stop] [q71] -> [> PlayerSpr > q72 Stop] [q71]\n[> PlayerSpr no Stop] [q70] -> [> PlayerSpr > q71 Stop] [q70]\n[> PlayerSpr no Stop] [q69] -> [> PlayerSpr > q70 Stop] [q69]\n[> PlayerSpr no Stop] [q68] -> [> PlayerSpr > q69 Stop] [q68]\n[> PlayerSpr no Stop] [q67] -> [> PlayerSpr > q68 Stop] [q67]\n[> PlayerSpr no Stop] [q66] -> [> PlayerSpr > q67 Stop] [q66]\n[> PlayerSpr no Stop] [q65] -> [> PlayerSpr > q66 Stop] [q65]\n[> PlayerSpr no Stop] [q64] -> [> PlayerSpr > q65 Stop] [q64]\n[> PlayerSpr no Stop] [q63] -> [> PlayerSpr > q64 Stop] [q63]\n[> PlayerSpr no Stop] [q62] -> [> PlayerSpr > q63 Stop] [q62]\n[> PlayerSpr no Stop] [q61] -> [> PlayerSpr > q62 Stop] [q61]\n[> PlayerSpr no Stop] [q60] -> [> PlayerSpr > q61 Stop] [q60]\n[> PlayerSpr no Stop] [q59] -> [> PlayerSpr > q60 Stop] [q59]\n[> PlayerSpr no Stop] [q58] -> [> PlayerSpr > q59 Stop] [q58]\n[> PlayerSpr no Stop] [q57] -> [> PlayerSpr > q58 Stop] [q57]\n[> PlayerSpr no Stop] [q56] -> [> PlayerSpr > q57 Stop] [q56]\n[> PlayerSpr no Stop] [q55] -> [> PlayerSpr > q56 Stop] [q55]\n[> PlayerSpr no Stop] [q54] -> [> PlayerSpr > q55 Stop] [q54]\n[> PlayerSpr no Stop] [q53] -> [> PlayerSpr > q54 Stop] [q53]\n[> PlayerSpr no Stop] [q52] -> [> PlayerSpr > q53 Stop] [q52]\n[> PlayerSpr no Stop] [q51] -> [> PlayerSpr > q52 Stop] [q51]\n[> PlayerSpr no Stop] [q50] -> [> PlayerSpr > q51 Stop] [q50]\n[> PlayerSpr no Stop] [q49] -> [> PlayerSpr > q50 Stop] [q49]\n[> PlayerSpr no Stop] [q48] -> [> PlayerSpr > q49 Stop] [q48]\n[> PlayerSpr no Stop] [q47] -> [> PlayerSpr > q48 Stop] [q47]\n[> PlayerSpr no Stop] [q46] -> [> PlayerSpr > q47 Stop] [q46]\n[> PlayerSpr no Stop] [q45] -> [> PlayerSpr > q46 Stop] [q45]\n[> PlayerSpr no Stop] [q44] -> [> PlayerSpr > q45 Stop] [q44]\n[> PlayerSpr no Stop] [q43] -> [> PlayerSpr > q44 Stop] [q43]\n[> PlayerSpr no Stop] [q42] -> [> PlayerSpr > q43 Stop] [q42]\n[> PlayerSpr no Stop] [q41] -> [> PlayerSpr > q42 Stop] [q41]\n[> PlayerSpr no Stop] [q40] -> [> PlayerSpr > q41 Stop] [q40]\n[> PlayerSpr no Stop] [q39] -> [> PlayerSpr > q40 Stop] [q39]\n[> PlayerSpr no Stop] [q38] -> [> PlayerSpr > q39 Stop] [q38]\n[> PlayerSpr no Stop] [q37] -> [> PlayerSpr > q38 Stop] [q37]\n[> PlayerSpr no Stop] [q36] -> [> PlayerSpr > q37 Stop] [q36]\n[> PlayerSpr no Stop] [q35] -> [> PlayerSpr > q36 Stop] [q35]\n[> PlayerSpr no Stop] [q34] -> [> PlayerSpr > q35 Stop] [q34]\n[> PlayerSpr no Stop] [q33] -> [> PlayerSpr > q34 Stop] [q33]\n[> PlayerSpr no Stop] [q32] -> [> PlayerSpr > q33 Stop] [q32]\n[> PlayerSpr no Stop] [q31] -> [> PlayerSpr > q32 Stop] [q31]\n[> PlayerSpr no Stop] [q30] -> [> PlayerSpr > q31 Stop] [q30]\n[> PlayerSpr no Stop] [q29] -> [> PlayerSpr > q30 Stop] [q29]\n[> PlayerSpr no Stop] [q28] -> [> PlayerSpr > q29 Stop] [q28]\n[> PlayerSpr no Stop] [q27] -> [> PlayerSpr > q28 Stop] [q27]\n[> PlayerSpr no Stop] [q26] -> [> PlayerSpr > q27 Stop] [q26]\n[> PlayerSpr no Stop] [q25] -> [> PlayerSpr > q26 Stop] [q25]\n[> PlayerSpr no Stop] [q24] -> [> PlayerSpr > q25 Stop] [q24]\n[> PlayerSpr no Stop] [q23] -> [> PlayerSpr > q24 Stop] [q23]\n[> PlayerSpr no Stop] [q22] -> [> PlayerSpr > q23 Stop] [q22]\n[> PlayerSpr no Stop] [q21] -> [> PlayerSpr > q22 Stop] [q21]\n[> PlayerSpr no Stop] [q20] -> [> PlayerSpr > q21 Stop] [q20]\n[> PlayerSpr no Stop] [q19] -> [> PlayerSpr > q20 Stop] [q19]\n[> PlayerSpr no Stop] [q18] -> [> PlayerSpr > q19 Stop] [q18]\n[> PlayerSpr no Stop] [q17] -> [> PlayerSpr > q18 Stop] [q17]\n[> PlayerSpr no Stop] [q16] -> [> PlayerSpr > q17 Stop] [q16]\n[> PlayerSpr no Stop] [q15] -> [> PlayerSpr > q16 Stop] [q15]\n[> PlayerSpr no Stop] [q14] -> [> PlayerSpr > q15 Stop] [q14]\n[> PlayerSpr no Stop] [q13] -> [> PlayerSpr > q14 Stop] [q13]\n[> PlayerSpr no Stop] [q12] -> [> PlayerSpr > q13 Stop] [q12]\n[> PlayerSpr no Stop] [q11] -> [> PlayerSpr > q12 Stop] [q11]\n[> PlayerSpr no Stop] [q10] -> [> PlayerSpr > q11 Stop] [q10]\n[> PlayerSpr no Stop] [q9] -> [> PlayerSpr > q10 Stop] [q9]\n[> PlayerSpr no Stop] [q8] -> [> PlayerSpr > q9 Stop] [q8]\n[> PlayerSpr no Stop] [q7] -> [> PlayerSpr > q8 Stop] [q7]\n[> PlayerSpr no Stop] [q6] -> [> PlayerSpr > q7 Stop] [q6]\n[> PlayerSpr no Stop] [q5] -> [> PlayerSpr > q6 Stop] [q5]\n[> PlayerSpr no Stop] [q4] -> [> PlayerSpr > q5 Stop] [q4]\n[> PlayerSpr no Stop] [q3] -> [> PlayerSpr > q4 Stop] [q3]\n[> PlayerSpr no Stop] [q2] -> [> PlayerSpr > q3 Stop] [q2]\n[> PlayerSpr no Stop] [q1] -> [> PlayerSpr > q2 Stop] [q1]\n\n(Placing Crate Markers)\n[> PlayerSpr > Mark | Crate] -> [> PlayerSpr > Mark | > Crate > Mark]\n\n(Rewinding)\n(Teleport the highest mark under the player and the highest mark that is under a crate next to each other at the x and z position)\n[Stop] -> []\n[action PlayerSpr Mark no Stop] [] -> [action PlayerSpr Mark Stop] [z0 Mark] sfx1\nright [z0 | ] -> [z0 | x0]\n[Stop] -> []\n[Highest] -> []\n[Mark Crate] [action PlayerSpr no Stop] [x0] -> [Crate Mark Highest] [action PlayerSpr Stop] [x0 Mark]\n\n(Try to move the objects together)\nright [z0 | Mark x0 ] -> [z0 | < Mark x0]\n\n(The rest of the code must be done \"late\" so I can see the result of the equality check, so I convert the action state to an object called \"Rewind\")\n[Rewind] -> []\n[action PlayerSpr] -> [Rewind PlayerSpr]\n\n(Place the PlayerD object if it's the first turn)\n[stationary PlayerSpr no Rewind] -> [PlayerSpr DPlayer]\n\n(Checks if the two objects failed to combine, if this is the case, then we know they are the same object)\nlate [x0 Mark] [Crate Highest] -> [x0] [Crate Mark Same]\nlate [Mark z0] -> [z0]\n\n(Rewinds a pushed crate)\nlate [Rewind PlayerSpr] [Crate Mark Same] -> [Rewind PlayerSpr Crate] []\n\n(Removes the highest mark that is under the player)\nlate [Stop] -> []\nlate [Rewind PlayerSpr Mark no Stop] -> [Rewind PlayerSpr Stop]\n(Teleports the player to the starting position if there are no marks)\nlate [] -> [NoMarks]\nlate [NoMarks] [Mark] -> [] [Mark]\nlate [NoMarks] [Rewind PlayerSpr no q1] [q1 no Crate] -> [NoMarks] [] [PlayerSpr q1 Rewind DPlayer]\n(Teleports the player to the highest mark)\nlate [Stop] -> []\nlate [Rewind PlayerSpr no Stop] [Mark no Crate no PlayerSpr] -> [] [PlayerSpr Mark Rewind Stop]\n\n(Faces the player in the correct direction after rewinding)\nlate [Stop] -> []\nlate [Highest] -> []\nlate [PlayerSpr no Stop] [Mark no Crate no PlayerSpr] -> [PlayerSpr Stop] [Mark Highest]\n\nlate [] -> [NoMarks]\nlate [NoMarks] [Mark no q2] -> [] [Mark]\n\nlate up [NoMarks] [Rewind PlayerSpr | q1] -> [][Rewind PlayerSpr DPlayer | q1]\nlate right[NoMarks] [Rewind PlayerSpr | q1] -> [][Rewind PlayerSpr LPlayer | q1]\nlate down[NoMarks] [Rewind PlayerSpr | q1] -> [] [Rewind PlayerSpr UPlayer | q1]\nlate left[NoMarks] [Rewind PlayerSpr | q1] -> [] [Rewind PlayerSpr RPlayer | q1]\n\nlate up [Rewind PlayerSpr | Highest] -> [Rewind PlayerSpr DPlayer | ]\nlate right [Rewind PlayerSpr | Highest] -> [Rewind PlayerSpr LPlayer | ]\nlate down [Rewind PlayerSpr | Highest] -> [Rewind PlayerSpr UPlayer | ]\nlate left [Rewind PlayerSpr | Highest] -> [Rewind PlayerSpr RPlayer | ]\n\n\n[Number no Wall] -> [Number Wall BoundaryWall]\n\n(Player/Camera)\nlate [PlayerSpr no Exit no Gate] [Player] -> [PlayerSpr] []\nlate [PlayerSpr no Exit no Gate] -> [PlayerSpr Player]\nlate [Player no BoundaryWall no Exit no Gate | ] -> [Player | Player]\n\n(Doors)\nlate [SoundStop] -> []\nlate [Door] -> [Door SoundStop]\nlate [Door] -> []\nlate [Player | | Exit] [Player Target no Crates] -> [Player | | Exit Door] [Player Target]\n\n[moving Player] [stationary Player] -> [moving Player] [moving Player]\n\nlate [PlayerSpr Exit] [Door] -> [PlayerSpr Exit] []\n\n(Door Sfx)\nlate [SoundStop Exit no Door] -> [Exit] sfx2\n\n(Checkpoint)\nlate [cp Player no PlayerSpr] -> [Player]\nlate [cp PlayerSpr] -> checkpoint\n\n(Timer)\n(Decrease when player moves)\nlate [ClockD Player | no 0 | 0] [PlayerSpr no Rewind] -> [ClockD Player | | 9 Countdown] [PlayerSpr]\nlate [ClockD Player | | 1] [PlayerSpr no Rewind] -> [ClockD Player | | 0] [PlayerSpr]\nlate [ClockD Player | | 2] [PlayerSpr no Rewind] -> [ClockD Player | | 1] [PlayerSpr]\nlate [ClockD Player | | 3] [PlayerSpr no Rewind] -> [ClockD Player | | 2] [PlayerSpr]\nlate [ClockD Player | | 4] [PlayerSpr no Rewind] -> [ClockD Player | | 3] [PlayerSpr]\nlate [ClockD Player | | 5] [PlayerSpr no Rewind] -> [ClockD Player | | 4] [PlayerSpr]\nlate [ClockD Player | | 6] [PlayerSpr no Rewind] -> [ClockD Player | | 5] [PlayerSpr]\nlate [ClockD Player | | 7] [PlayerSpr no Rewind] -> [ClockD Player | | 6] [PlayerSpr]\nlate [ClockD Player | | 8] [PlayerSpr no Rewind] -> [ClockD Player | | 7] [PlayerSpr]\nlate [ClockD Player | | 9 no CountDown] [PlayerSpr no Rewind] -> [ClockD Player | | 8] [PlayerSpr]\n\n(Increase when player rewinds)\nlate [ClockD Player | | 9] [Rewind PlayerSpr] -> [ClockD Player | | 0 CountUp] [Rewind PlayerSpr]\nlate [ClockD Player | | 8] [Rewind PlayerSpr] -> [ClockD Player | | 9] [Rewind PlayerSpr]\nlate [ClockD Player | | 7] [Rewind PlayerSpr] -> [ClockD Player | | 8] [Rewind PlayerSpr]\nlate [ClockD Player | | 6] [Rewind PlayerSpr] -> [ClockD Player | | 7] [Rewind PlayerSpr]\nlate [ClockD Player | | 5] [Rewind PlayerSpr] -> [ClockD Player | | 6] [Rewind PlayerSpr]\nlate [ClockD Player | | 4] [Rewind PlayerSpr] -> [ClockD Player | | 5] [Rewind PlayerSpr]\nlate [ClockD Player | | 3] [Rewind PlayerSpr] -> [ClockD Player | | 4] [Rewind PlayerSpr]\nlate [ClockD Player | | 2] [Rewind PlayerSpr] -> [ClockD Player | | 3] [Rewind PlayerSpr]\nlate [ClockD Player | | 1] [Rewind PlayerSpr] -> [ClockD Player | | 2] [Rewind PlayerSpr]\nlate [ClockD Player | | 0 no CountUp] [Rewind PlayerSpr] -> [ClockD Player | | 1] [Rewind PlayerSpr]\n\n(Tens digit countdown)\nlate down [1 | CountDown] -> [0 | ]\nlate down [2 | CountDown] -> [1 | ]\nlate down [3 | CountDown] -> [2 | ]\nlate down [4 | CountDown] -> [3 | ]\nlate down [5 | CountDown] -> [4 | ]\nlate down [6 | CountDown] -> [5 | ]\nlate down [7 | CountDown] -> [6 | ]\nlate down [8 | CountDown] -> [7 | ]\nlate down [9 | CountDown] -> [8 | ]\n\n(Tens digit countup)\nlate down [8 | CountUp] -> [9 | ]\nlate down [7 | CountUp] -> [8 | ]\nlate down [6 | CountUp] -> [7 | ]\nlate down [5 | CountUp] -> [6 | ]\nlate down [4 | CountUp] -> [5 | ]\nlate down [3 | CountUp] -> [4 | ]\nlate down [2 | CountUp] -> [3 | ]\nlate down [1 | CountUp] -> [2 | ]\nlate down [0 | CountUp] -> [1 | ]\n\n(Turns player into statue)\nlate [SoundStop] -> []\nlate [PlayerSpr no Statue] -> [PlayerSpr SoundStop]\nlate [Statue] -> []\nlate [0 | 0 Player] [PlayerSpr no Rewind] [ClockSide Player] -> [0 | 0] [PlayerSpr Statue] [ClockSide Player]\n\nlate [PlayerSpr SoundStop Statue] -> sfx3\n\n(Places the camera)\nlate down [Player | | | | | | | | | Player] -> [Player | | | | Cam | | | | | Player]\nlate right [Cam | Cam | Cam | Cam | Cam | Cam | Cam | Cam] -> [ | | | | Cam | | | ]\nlate [Player no Cam] -> []\n\n(Visuals)\nlate [remove no Gate] -> []\n\nlate [Crate TimeCrate] -> [Crate TimeCrate FadeCrate]\n\nlate [DirPlayer Statue] -> [Statue]\n\nlate up [Wall | ] -> [Wall | OverWall]\nlate up [Crate | ] -> [Crate | OverCrate]\nlate up [TimeCrate | ] -> [TimeCrate | OverTimeCrate]\nlate up [FadeCrate | ] -> [FadeCrate | OverFadeCrate]\nlate up [PlayerSpr | ] -> [PlayerSpr | OverPlayer]\nlate up [Statue | ] -> [Statue | OverStatue]\nlate up [Exit | ] -> [Exit | ExitU]\nlate up [Gate | ] -> [Gate | GateU]\nlate up [Door | ] -> [Door | OverDoor]\n\nlate right [Clock | ] -> [Clock | ClockR]\nlate down [Clock | ] -> [Clock | ClockD]\nlate left [Clock | ] -> [Clock | ClockL]\n\nlate right [Exit | ] -> [Exit | ExitR]\nlate left [Exit | ] -> [Exit | ExitL]\nlate right [ExitU | ] -> [ExitU | ExitUR]\nlate left [ExitU | ] -> [ExitU | ExitUL]\n\nlate right [Gate | ] -> [Gate | GateR]\nlate left [Gate | ] -> [Gate | GateL]\nlate right [GateU | ] -> [GateU | GateUR]\nlate left [GateU | ] -> [GateU | GateUL]\n\nlate right [Exit | Wall] -> [Exit | BushR]\nlate left [Exit | Wall] -> [Exit | BushL]\n\nlate right [Gate | Wall] -> [Gate | BushR]\nlate left [Gate | Wall] -> [Gate | BushL]\n\nlate up [BushR | ] -> [BushR | OverBushR]\nlate up [BushL | ] -> [BushL | OverBushL]\n\nlate right down [BackGround no Dot| BackGround no Dot] -> [BackGround | Dot BackGround]\nlate down [Dot | Dot] -> [Dot | BackGround]\nlate [Bounds Dot] -> [Bounds]\n\nlate [ExitU Dot] -> [ExitU]\nlate [PlayerSpr Dot] -> [PlayerSpr]\nlate [Gate | Dot] -> [Gate | ]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\nmessage It was a warm and sunny day\nmessage So into the hedges went Sir Montaclé\n\nmessage Then, a witch's curse befell the poor bloke\nmessage Now one step too many, will turn him to stone\n\nmessage Montaclé despaired, wandering lost in the maze\nmessage He knew freedom lay, just beyond the golden gate\n\nmessage But Montaclé was clever, and so are you, so fret not\nmessage Press R to restart, and space to turn back the clock\n\n---------------------\n-----!!!!!!!!!!------\n-----c......##!------\n-----!.t....##!------\n-----2#####.##!------\n-----1..o*..o.!------\n-----!...##...!------\n-----!...#####!------\n-----!........!------\n-----!........!------\n-!!!!!!!e!!!e!!!!!!!-\n-c........!........c-\n-!....####!....#o..!-\n-1.......#!........1-\n-6####..##!..#.to##7-\n-!###o.###!####.###!-\n-!##..####!...t....!-\n-!#.....t.!.....##.!-\n-!........!....#...!-\n-!!!e!!!!!!!!!!!!e!!-\n-c#...####!####....c-\n-!......##!...#.t#.!-\n-1.......o!.t.#*...1-\n-0.....#..!...#o###5-\n-!.......#!....o##.!-\n-!....#t.#!....o#..!-\n-!.......#!........!-\n-!#....###!........!-\n-!!!e!!!!!!!e!!!!!!!-\n-c#...####!.....###c-\n-!......##!......##!-\n-1..o....#!.*.....#2-\n-6...##..#!........1-\n-!....#..#!####....!-\n-!.....*.#!...#..o.!-\n-!#......#!#..#....!-\n-!######.#!.t.#....!-\n-!!!!!!!e!!!e!!!!e!!-\n-c....#...!...#....c-\n-!..#.....!..#.....!-\n-1..#.....!....#.t.2-\n-5..######!....#...0-\n-!...p....!....####!-\n-!....###.!...*o.##!-\n-!#####.#.!####...#!-\n-!....*t..!........!-\n-!!g!!!e!!!e!!!!!!!!-\n-----!...#...#c------\n-----!...#...#!------\n-----!...#...#1------\n-----!#.....##3------\n-----!##...###!------\n-----!########!------\n-----!#.....##!------\n-----!.......#!------\n-----!!!!!!!!!!------\n---------------------\n\nmessage Thank you for playing!\n\n(\n(Level1)\n---------------------\n-----!!!!!!!!!!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-!!!!!!!e!!!e!!!!!!!-\n-c....#...!........c-\n-!..#.....!........!-\n-1..#.....!........!-\n-5..######!........!-\n-!...p....!........!-\n-!....###.!........!-\n-!#####.#.!........!-\n-!....*t..!........!-\n-!!g!!!e!!!!e!!!!!!!-\n-----!........c------\n-----!........!------\n-----!........1------\n-----!........3------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!!!!!!!!!!------\n---------------------\n\n\n(Level2)\n-!........!.\n-!!!e!!!!!!!\n-c#...####!.\n-!......##!.\n-1..o....#!.\n-6...##..#!.\n-!....#..#!.\n-!.....*.#!.\n-!#......#!.\n-!######p#!.\n-!!!!!!!e!!!\n\n\n(Level3)\n-!........!.\n-!!!e!!!!!!!\n-c#...####!.\n-!......##!.\n-1.......o!.\n-0.....#..!.\n-!.......#!.\n-!....#t.#!.\n-!.......#!.\n-!#.p..###!.\n-!!!e!!!!!!!\n\n\n(Level4)\n-!........!.\n-!!!!!!!e!!!\n-c........!.\n-!....####!.\n-1.......#!.\n-6####..##!.\n-!###o.###!.\n-!##..####!.\n-!#.....t.!.\n-!..p.....!.\n-!!!e!!!!!!!\n\n\n(Level5)\n------------\n-!!!!!!!!!!-\n-c......##!-\n-!.t....##!-\n-2#####.##!-\n-1..o*..o.!-\n-!...##...!-\n-!...#####!-\n-!........!-\n-!..p.....!-\n!!!!e!!!e!!!\n\n(Level6)\n-!........!.\n!!!e!!!!!!!.\n-!.p......c.\n-!....#o..!.\n-!........1.\n-!..#.to##6.\n-!####.###!.\n-!...t....!.\n-!.....##.!.\n-!....#...!.\n!!!!!!!!e!!.\n\n(Level7)\n-!........!.\n!!!!!!!!e!!.\n-!####..p.c.\n-!...#.t#.!.\n-!.t.#*...1.\n-!...#o###5.\n-!....o##.!.\n-!....o#..!.\n-!........!.\n-!.......#!.\n!!!e!!!!!!!.\n\n(Level8)\n------------\n-!!e!!!!!!!-\n-!.p...###c-\n-!......##!-\n-!.*.....#2-\n-!........0-\n-!####....!-\n-!...#..o.!-\n-!#..#....!-\n-!.t.#....!-\n-!!e!!!!e!!-\n-!...#....c-\n-!..#.....!-\n-!....#.t.2-\n-!....#...0-\n-!....####!-\n-!...*o.##!-\n-!####...#!-\n-!........!-\n-!e!!!!!!!!-\n------------\n\n(Bottom Room, no puzzle)\n-.....!.....\n!!!e!!!e!!!!\n-!...#.p.#c.\n-!...#...#!.\n-!...#...#1.\n-!#.....##3.\n-!##...###!.\n-!########!.\n-!#.....##!.\n-!.......#!.\n-!!!!!!!!!!.\n)\n", [1, 1, 0, 0, 0, 0, 3, 3, 2, 3, 3, 3, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 1, 1, 1, 0, 1, 0, 0, 0, "restart", 0, "restart", 0, 3, 3, 3, 0, "undo", 4, 4, 4, 4, 0, 0, 3, 3, 3, 2, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 0, 0, 0, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 3, 3, 3, 3], "background bounds z0:0,background bounds:1,1,1,1,1,1,1,1,1,1,background bounds clockl:2,1,1,1,1,1,1,1,1,2,\n1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,2,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background bounds x0:3,1,1,1,1,1,\n1,1,1,background bounds overwall:4,background boundarywall dot overwall wall:5,background boundarywall clock overwall wall:6,background boundarywall clockd dot overwall wall:7,1 background boundarywall overwall wall:8,6 background boundarywall dot overwall wall:9,background boundarywall overwall wall:10,5,10,5,10,background boundarywall clock dot overwall wall:11,background boundarywall clockd overwall wall:12,0 background boundarywall dot overwall wall:13,0 background boundarywall overwall wall:14,5,10,5,\n10,5,6,7,14,1 background boundarywall dot overwall wall:15,10,5,10,5,10,11,12,13,8,5,10,5,10,background boundarywall dot wall:16,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,background boundarywall wall:17,background clockr dot:18,\nbackground:19,background dot overwall:20,background overwall wall:21,background dot overwall wall:22,21,background dot wall:23,background overwall:24,5,background clockr wall:25,background dot:26,19,26,19,26,24,22,10,background clockr dot wall:27,19,26,19,\n26,24,22,21,16,background clockr:28,26,19,26,19,20,background wall:29,background dot gateul overbushl:30,background boundarywall bushl gatel:31,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,4,16,19,26,24,22,21,23,19,\nbackground dot exitul overbushl:32,background boundarywall bushl exitl:33,26,19,26,19,26,19,26,background exitul overbushl:34,background boundarywall bushl dot exitl:35,19,26,19,26,19,26,24,22,17,background dot q7:36,\nbackground q6:37,background dot q5:38,background q4:39,background dot q3:40,24,23,background gateu:41,background dot gate:42,1,1,1,1,1,1,1,1,1,1,1,1,2,\n1,1,1,1,1,1,4,17,26,19,20,21,23,19,26,background cp exitu:43,background bounds exit:44,19,26,19,26,\n19,26,background q32:45,background exitu q31:46,background bounds exit q30:47,background dot q29:48,background overcrate q28:49,background crate dot q26 target:50,19,26,19,20,21,16,background overwall q8:51,22,21,23,background q2:52,20,29,\nbackground dot gateur overbushr:53,background boundarywall bushr gater:54,1,1,1,1,1,1,1,1,1,1,4,10,11,12,2 background boundarywall dot overwall wall:55,8,5,10,5,\n10,16,19,26,24,23,background target:56,26,19,background dot exitur overbushr:57,background boundarywall bushr exitr:58,26,19,background dot q37:59,background q36:60,background dot q35:61,background q34:62,background dot q33:63,background exitur overbushr:64,background boundarywall bushr dot exitr:65,19,\nbackground dot q27:66,background overwall q25 q26:67,23,19,26,24,22,17,background dot q9:68,background q10:69,20,29,background dot q1:70,24,23,24,5,10,5,10,5,\n10,5,10,5,17,1,4,16,28,20,29,26,19,26,19,20,17,20,29,26,19,\n20,29,26,24,5,29,26,background q38:71,background cam dot player:72,24,23,19,20,10,23,19,background dot overwall q24 q25:73,background cam overwall wall:74,23,19,20,\n21,5,29,background dot q11:75,24,background cam dot wall:76,24,22,background overcrate wall:77,background crate dot exitul overbushl:78,33,26,19,20,21,22,21,23,24,16,1,\n4,17,background dot overtimecrate:79,background overwall timecrate:80,23,19,26,19,26,34,35,24,23,19,20,21,23,19,20,10,23,\n19,background dot highest overwall q39:81,29,26,19,20,21,5,29,26,background q21 q24:82,background dot q20 q21:83,background q19 q20:84,background dot q19:85,background overwall q18:86,background dot exitul overbushl wall:87,33,26,background q12:88,20,29,\n20,29,79,background exitu timecrate:89,44,background cp:90,26,19,20,21,23,19,20,17,1,4,16,19,20,29,background dot target:91,\n19,26,19,43,44,background cp dot overwall:92,29,20,21,22,background overtimecrate wall:93,background dot timecrate:94,24,5,21,background dot overplayer overstatue wall:95,background playerspr q40 soundstop statue stop:96,26,19,26,24,\n22,10,22,29,background dot q23:97,background q22:98,26,19,background dot q17:99,background exitu q16:100,background bounds exit q15:101,background q14:102,background dot q13:103,24,23,24,22,29,57,58,26,\n19,26,19,20,29,26,24,16,1,4,17,26,24,background dot overcrate wall:104,background crate overwall:105,22,29,26,64,65,24,\n22,21,22,21,23,19,20,10,22,93,background dot target timecrate:106,24,22,21,22,21,5,21,22,21,22,\n21,22,21,background dot exitur overbushr wall:107,58,26,19,20,29,26,19,26,24,5,21,22,29,26,24,23,19,\n20,17,1,4,16,19,20,29,20,21,23,19,20,10,5,10,5,10,5,10,5,\n10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,\n5,10,5,10,5,10,background boundarywall dot exitul overbushl wall:108,33,26,19,26,19,20,29,26,24,16,1,4,17,26,\n19,26,19,20,29,26,34,35,19,26,19,20,29,26,19,20,10,23,19,26,19,\n26,19,26,34,35,19,26,19,20,29,20,29,32,33,26,19,26,19,26,24,23,\n43,44,90,26,19,20,21,23,19,20,17,1,4,5,21,22,29,91,24,23,19,\n43,44,background cp dot:109,19,26,24,23,19,26,24,5,29,79,background timecrate:110,26,19,26,19,43,44,109,\nbackground overcrate:111,background crate dot:112,24,23,19,79,background cp exitu timecrate:113,44,90,26,19,26,19,20,29,57,58,26,19,20,21,\n22,21,23,24,16,1,4,10,22,21,23,19,20,29,26,64,65,19,26,24,22,\n29,26,19,20,10,23,19,26,19,26,19,26,64,65,19,26,19,20,29,26,19,\n57,58,20,29,26,19,26,24,23,24,5,background clockl overwall wall:114,22,21,22,21,22,21,22,17,1,\n4,5,10,5,10,5,10,5,10,5,17,26,19,26,24,background dot overtimecrate wall:115,110,26,24,5,21,\n22,21,23,19,26,19,20,17,26,19,26,24,22,21,22,21,5,29,26,19,26,\n111,background crate dot overwall:116,29,20,10,11,12,15,3 background boundarywall overwall wall:117,5,10,5,10,16,1,1,1,1,1,1,1,\n1,1,1,4,16,24,23,background overtimecrate:118,94,19,26,24,22,17,26,111,112,56,91,56,26,\n24,16,19,26,19,26,19,26,19,20,17,26,24,22,21,23,56,26,24,16,background bounds clockr:119,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,17,26,\n56,26,background overwall target:120,23,24,23,34,35,118,94,24,22,21,23,19,20,10,23,19,26,19,\n26,19,26,34,35,19,26,19,20,29,26,19,20,17,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,4,16,19,26,24,22,29,20,29,\n43,44,92,29,20,21,23,19,26,24,5,21,23,19,26,19,91,19,43,44,109,\n118,94,24,22,29,26,24,16,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,4,17,background clockl dot:121,19,20,21,23,19,26,64,65,background clockl:122,26,24,23,\n19,26,19,20,10,background clockl dot overwall wall:123,21,23,19,26,19,26,64,65,122,26,19,20,21,22,29,\n20,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n4,5,6,7,8,7 background boundarywall dot overwall wall:124,10,5,10,5,10,11,12,15,5 background boundarywall overwall wall:125,5,10,5,10,5,6,\n7,2 background boundarywall overwall wall:126,15,10,5,10,5,10,11,12,55,14,5,10,5,10,16,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,119,1,1,1,\n1,1,1,1,1,119,1,1,1,1,1,1,1,1,119,1,1,1,1,1,1,\n1,1,119,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n", 8, "1627769376598.7021"] ], [ `gallery game: shall we golf?`, - ["title Shall We Golf?\nauthor nebu soku\nhomepage www.puzzlescript.net\n\nrealtime_interval 0.13\nrun_rules_on_level_Start\nbackground_color #3a6aa3\ntext_color lightblue\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nGreen\n#659b2d green\n11111\n10001\n10101\n10001\n11111\n\nWater\nlightblue \n\nAddWaterLUD\nlightblue \n0....\n.....\n.....\n.....\n0....\n\nAddWaterLU\nlightblue \n0....\n.....\n.....\n.....\n.....\n\nAddWaterLD\nlightblue \n.....\n.....\n.....\n.....\n0....\n\nAddWaterRUD\nlightblue \n....0\n.....\n.....\n.....\n....0\n\nAddWaterRU\nlightblue \n....0\n.....\n.....\n.....\n.....\n\nAddWaterRD\nlightblue \n.....\n.....\n.....\n.....\n....0\n\nRemoveWaterLUD\ngreen\n0....\n.....\n.....\n.....\n0....\n\nRemoveWaterLU\ngreen\n0....\n.....\n.....\n.....\n.....\n\nRemoveWaterLD\ngreen\n.....\n.....\n.....\n.....\n0....\n\nRemoveWaterRUD\ngreen\n....0\n.....\n.....\n.....\n....0\n\nRemoveWaterRU\ngreen\n....0\n.....\n.....\n.....\n.....\n\nRemoveWaterRD\ngreen\n.....\n.....\n.....\n.....\n....0\n\nBunker\nlightbrown orange #2a6b17\n00000\n00010\n00000\n01000\n00000\n\nAddBunkerLUD\nlightbrown\n0....\n.....\n.....\n.....\n0....\n\nAddBunkerLU\nlightbrown\n0....\n.....\n.....\n.....\n.....\n\nAddBunkerLD\nlightbrown\n.....\n.....\n.....\n.....\n0....\n\nAddBunkerRUD\nlightbrown\n....0\n.....\n.....\n.....\n....0\n\nAddBunkerRU\nlightbrown\n....0\n.....\n.....\n.....\n.....\n\nAddBunkerRD\nlightbrown\n.....\n.....\n.....\n.....\n....0\n\nRemoveBunkerLUD\ngreen\n0....\n.....\n.....\n.....\n0....\n\nRemoveBunkerLU\ngreen\n0....\n.....\n.....\n.....\n.....\n\nRemoveBunkerLD\ngreen\n.....\n.....\n.....\n.....\n0....\n\nRemoveBunkerRUD\ngreen\n....0\n.....\n.....\n.....\n....0\n\nRemoveBunkerRU\ngreen\n....0\n.....\n.....\n.....\n.....\n\nRemoveBunkerRD\ngreen\n.....\n.....\n.....\n.....\n....0\n\nOnBunker\nblack\n.....\n.....\n.....\n.....\n.....\n\nblank\n#3a6aa3\n\nWin1\n#3a6aa3\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\nWin2\n#3a6aa3\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nWinS1\nwhite\n\nWinS2\nblack\n\nRSVWin1\nblack\n.....\n.....\n.....\n.....\n.....\n\nRSVWin2\nblack\n.....\n.....\n.....\n.....\n.....\n\nTarget\nlightgray red darkblue\n..0..\n..0..\n..2..\n.....\n.....\n\nFlag\nred lightgray\n.....\n.....\n.....\n..00.\n..1..\n\nclubR\ngray darkgray white\n.....\n.....\n.0...\n.2...\n.11..\n\nclubL\ngray darkgray white\n.....\n.....\n...0.\n...2.\n..11.\n\nBall\nwhite\n.....\n.....\n..0..\n.....\n.....\n\nBallR\nwhite darkblue\n..0..\n.....\n..1..\n.....\n.....\n\nBallL\nwhite darkblue\n..0..\n.....\n..1..\n.....\n.....\n\nBallU\nwhite darkblue\n..0..\n.....\n..1..\n.....\n.....\n\nBallD\nwhite darkblue\n..0..\n.....\n..1..\n.....\n.....\n\nBallIn\ndarkblue\n.....\n.....\n..0..\n.....\n.....\n\nStart\nlightgreen green\n11111\n11111\n10111\n11111\n11101\n\nTree\ndarkgreen brown #134b3d\n.000.\n.000.\n..1..\n.....\n.....\n\nTreeU\ndarkgreen #134b3d\n.....\n.....\n.....\n.111.\n.111.\n\nLeftRSV\npurple\n\nUnmovableR\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n63636\n.3333\n.0330\n.3.6.\n\nUnmovableL\nwhite lightbrown lightgray darkblue brown blue black\n6666.\n63636\n3333.\n0330.\n.6.3.\n\nPlayerR\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n63636\n.2333\n.0330\n.776.\n\nWalkR1\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n63636\n.3233\n.3033\n3.776\n\nWalkR2\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n62636\n.2333\n.0332\n.773.\n\nWalkR3\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n63636\n23333\n03330\n77..3\n\nPlayerL\nwhite lightbrown lightgray darkblue brown blue black darkgray\n6666.\n63636\n3332.\n0330.\n.677.\n\nWalkL1\nwhite lightbrown lightgray darkblue brown blue black darkgray\n6666.\n63636\n3323.\n.303.\n677.3\n\nWalkL2\nwhite lightbrown lightgray darkblue brown blue black darkgray\n6666.\n63636\n3332.\n2330.\n.377.\n\nWalkL3\nwhite lightbrown lightgray darkblue brown blue black darkgray\n6666.\n63636\n33332\n03330\n3..77\n\nRSVR1\npink\n.....\n.....\n.....\n.....\n.....\n\nRSVL1\npink\n.....\n.....\n.....\n.....\n.....\n\nTM1R\nwhite lightbrown lightgray pink brown blue darkred\n.6666\n63636\n.3333\n.0330\n.3.6.\n\nTM1WalkR1\nwhite lightbrown lightgray pink brown blue darkred\n.6666\n63636\n.3333\n.3033\n3...6\n\nTM1WalkR2\nwhite lightbrown lightgray pink brown blue darkred\n.6666\n63636\n.3333\n.0332\n.6.3.\n\nTM1WalkR3\nwhite lightbrown lightgray pink brown blue darkred\n.6666\n63636\n.3333\n03330\n6...3\n\nTM1L\nwhite lightbrown lightgray pink brown blue darkred\n6666.\n63636\n3333.\n0330.\n.6.3.\n\nTM1WalkL1\nwhite lightbrown lightgray pink brown blue darkred\n6666.\n63636\n3333.\n3303.\n6...3\n\nTM1WalkL2\nwhite lightbrown lightgray pink brown blue darkred\n6666.\n63636\n3333.\n2330.\n.3.6.\n\nTM1WalkL3\nwhite lightbrown lightgray pink brown blue darkred\n6666.\n63636\n3333.\n03330\n3...6\n\nRSVR2\nyellow\n.....\n.....\n.....\n.....\n.....\n\nRSVL2\nyellow\n.....\n.....\n.....\n.....\n.....\n\nTM2R\nwhite lightbrown lightgray yellow brown blue orange\n.6666\n63636\n.3333\n.0330\n.3.6.\n\nTM2WalkR1\nwhite lightbrown lightgray yellow brown blue orange\n.6666\n63636\n.3333\n.3033\n3...6\n\nTM2WalkR2\nwhite lightbrown lightgray yellow brown blue orange\n.6666\n63636\n.3333\n.0332\n.6.3.\n\nTM2WalkR3\nwhite lightbrown lightgray yellow brown blue orange\n.6666\n63636\n.3333\n03330\n6...3\n\nTM2L\nwhite lightbrown lightgray yellow brown blue orange\n6666.\n63636\n3333.\n0330.\n.6.3.\n\nTM2WalkL1\nwhite lightbrown lightgray yellow brown blue orange\n6666.\n63636\n3333.\n3303.\n6...3\n\nTM2WalkL2\nwhite lightbrown lightgray yellow brown blue orange\n6666.\n63636\n3333.\n2330.\n.3.6.\n\nTM2WalkL3\nwhite lightbrown lightgray yellow brown blue orange\n6666.\n63636\n3333.\n03330\n3...6\n\nRSVR3\ngray\n.....\n.....\n.....\n.....\n.....\n\nRSVL3\ngray\n.....\n.....\n.....\n.....\n.....\n\nTM3R\nwhite lightbrown lightgray Blue brown blue #153759\n.6666\n63636\n.3333\n.0330\n.3.6.\n\nTM3WalkR1\nwhite lightbrown lightgray Blue brown blue #153759\n.6666\n63636\n.3333\n.3033\n3...6\n\nTM3WalkR2\nwhite lightbrown lightgray Blue brown blue #153759\n.6666\n63636\n.3333\n.0332\n.6.3.\n\nTM3WalkR3\nwhite lightbrown lightgray Blue brown blue #153759\n.6666\n63636\n.3333\n03330\n6...3\n\nTM3L\nwhite lightbrown lightgray Blue brown blue #153759\n6666.\n63636\n3333.\n0330.\n.6.3.\n\nTM3WalkL1\nwhite lightbrown lightgray Blue brown blue #153759\n6666.\n63636\n3333.\n3303.\n6...3\n\nTM3WalkL2\nwhite lightbrown lightgray Blue brown blue #153759\n6666.\n63636\n3333.\n2330.\n.3.6.\n\nTM3WalkL3\nwhite lightbrown lightgray Blue brown blue #153759\n6666.\n63636\n3333.\n03330\n3...6\n\nAddGreenLUD\ngreen\n0....\n.....\n.....\n.....\n0....\n\nAddGreenLU\ngreen\n0....\n.....\n.....\n.....\n.....\n\nAddGreenLD\ngreen\n.....\n.....\n.....\n.....\n0....\n\nAddGreenRUD\ngreen\n....0\n.....\n.....\n.....\n....0\n\nAddGreenRU\ngreen\n....0\n.....\n.....\n.....\n.....\n\nAddGreenRD\ngreen\n.....\n.....\n.....\n.....\n....0\n\nRemoveGreenLUD\n#1d4c2c\n0....\n.....\n.....\n.....\n0....\n\nRemoveGreenLU\n#1d4c2c\n0....\n.....\n.....\n.....\n.....\n\nRemoveGreenLD\n#1d4c2c\n.....\n.....\n.....\n.....\n0....\n\nRemoveGreenRUD\n#1d4c2c\n....0\n.....\n.....\n.....\n....0\n\nRemoveGreenRU\n#1d4c2c\n....0\n.....\n.....\n.....\n.....\n\nRemoveGreenRD\n#1d4c2c\n.....\n.....\n.....\n.....\n....0\n\nBorderR\n#1d4c2c\n0....\n0....\n0....\n0....\n0....\n\nBorderL\n#1d4c2c\n....0\n....0\n....0\n....0\n....0\n\nBorderU\n#1d4c2c\n.....\n.....\n.....\n.....\n00000\n\nBorderD\n#1d4c2c\n00000\n.....\n.....\n.....\n.....\n\nRemoveBorderRU\n#3a6aa3\n0....\n.....\n.....\n.....\n.....\n\nRemoveBorderLU\n#3a6aa3\n....0\n.....\n.....\n.....\n.....\n\nRemoveBorderRD\n#3a6aa3\n.....\n.....\n.....\n.....\n0....\n\nRemoveBorderLD\n#3a6aa3\n.....\n.....\n.....\n.....\n....0\n\nRipples1\nwhite\n.....\n.....\n..0..\n.....\n.....\n\nRipples2\nwhite #3a6aa3\n.....\n...0.\n.0...\n..1..\n.....\n\nRipples3\nwhite #3a6aa3\n.....\n.....\n.....\n.....\n..1..\n\nArrowR\ngray lightgray red\n.111.\n11211\n11121\n11211\n.111.\n\nArrowL\ngray lightgray red\n.111.\n11211\n12111\n11211\n.111.\n\nArrowU\ngray lightgray red\n.111.\n11211\n12121\n11111\n.111.\n\nArrowD\ngray lightgray red\n.111.\n11111\n12121\n11211\n.111.\n\nRSVText\npurple\n\nNT\n#fa5c5c\n0...0\n00..0\n0.0.0\n0..00\n0...0\n\nIT\norange yellow\n.0.11\n.0.1.\n.0.1.\n.0.1.\n.0.11\n\nCT\nyellow #27cc20\n000.1\n....1\n....1\n....1\n000.1\n\nET\n#27cc20\n0000.\n.....\n0000.\n.....\n0000.\n\nST\n#4bb6e3\n.0000\n.0...\n.0000\n.....\n.0000\n\nHT\n#4bb6e3 blue\n0.1..\n..1..\n0.111\n0.1..\n0.1..\n\nOT\nblue #bb4be2\n.0.11\n.0.1.\n00.1.\n.0.1.\n.0.11\n\nTT\n#bb4be2 pink\n000.1\n..0..\n..0..\n..0..\n000..\n\nTT2\npink\n0000.\n.0...\n.0...\n.0...\n.0...\n\nExT\n#fa5c5c\n.0...\n.0...\n.0...\n.....\n.0...\n\nCursor\nred\n0...0\n.....\n.....\n.....\n0...0\n\n=======\nLEGEND\n=======\n\nPlayer = PlayerR or PlayerL or WalkR1 or WalkR2 or WalkR3 or WalkL1 or WalkL2 or WalkL3 or clubR or clubL\nLeader = PlayerR or PlayerL or WalkR1 or WalkR2 or WalkR3 or WalkL1 or WalkL2 or WalkL3\nWalkR = WalkR1 or WalkR2 or WalkR3\nWalkL = WalkL1 or WalkL2 or WalkL3\n\nTM1 = TM1R or TM1L\nTM1WalkR = TM1R or TM1WalkR1 or TM1WalkR2 or TM1WalkR3\nTM1WalkL = TM1L or TM1WalkL1 or TM1WalkL2 or TM1WalkL3\nRSV1 = RSVR1 or RSVL1\n\nTM2 = TM2R or TM2L\nTM2WalkR = TM2R or TM2WalkR1 or TM2WalkR2 or TM2WalkR3\nTM2WalkL = TM2L or TM2WalkL1 or TM2WalkL2 or TM2WalkL3\nRSV2 = RSVR2 or RSVL2\n\nTM3 = TM3R or TM3L\nTM3WalkR = TM3R or TM3WalkR1 or TM3WalkR2 or TM3WalkR3\nTM3WalkL = TM3L or TM3WalkL1 or TM3WalkL2 or TM3WalkL3\nRSV3 = RSVR3 or RSVL3\n\nTMs = TM1WalkR or TM1WalkL or TM2WalkR or TM2WalkL or TM3WalkR or TM3WalkL or UnmovableR or UnmovableL\n\nclub = clubR or clubL\n\nArrows = ArrowR or ArrowL or ArrowU or ArrowD\n\nObstacles = Player or TMs or blank or Tree\nOBforP = Ball or blank or Target or Tree or Water\n\n. = Background\n, = Green\nP = PlayerR\nO = Target and Green\n_ = blank\nT = Tree and Green\nS = Start and PlayerR and Green\nB = Ball and Green\nW = Water and Green\n+ = Bunker and Green\nR = ArrowR and Green\nL = ArrowL and Green\nU = ArrowU and Green\nD = ArrowD and Green\n1 = WinS1 and blank\n2 = WinS2 and blank\n3 = RSVText and blank\n* = LeftRSV and blank\n\nAddGreenL = AddGreenLUD or AddGreenLU or AddGreenLD\nAddGreenR = AddGreenRUD or AddGreenRU or AddGreenRD\n\nRemoveGreenL = RemoveGreenLUD or RemoveGreenLU or RemoveGreenLD\nRemoveGreenR = RemoveGreenRUD or RemoveGreenRU or RemoveGreenRD\n\nAddWaterL = AddWaterLUD or AddWaterLU or AddWaterLD\nAddwaterR = AddWaterRUD or AddWaterRU or AddWaterRD\n\nRemoveWaterL = RemoveWaterLUD or RemoveWaterLU or RemoveWaterLD\nRemoveWaterR = RemoveWaterRUD or RemoveWaterRU or RemoveWaterRD\n\nAddBunkerL = AddBunkerLUD or AddBunkerLU or AddBunkerLD\nAddBunkerR = AddBunkerRUD or AddBunkerRU or AddBunkerRD\n\nRemoveBunkerL = RemoveBunkerLD or RemoveBunkerLU or RemoveBunkerLUD\nRemoveBunkerR = RemoveBunkerRUD or RemoveBunkerRU or RemoveBunkerRD\n\n=======\nSOUNDS\n=======\n\nLeader MOVE 62144707\nblank MOVE 16278507\nblank move 95612108\nTarget action 6210100\nclub move 44711106\nBall action 45846907\nRipples2 action 22937701\nRipples1 action 73444303\n\nsfx0 47327503\nsfx1 44711106\nsfx2 48837904\n\nrestart 58221102\nundo 12286707\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nStart, WinS1, WinS2, RSVText, LeftRSV\nGreen\nTarget, Bunker, Water\nAddWaterL\nAddwaterR\nAddBunkerL\nAddBunkerR\nRemoveWaterL\nRemoveWaterR\nRemoveBunkerL\nRemoveBunkerR\nRipples1, Ripples2, Ripples3\nRemoveGreenL\nRemoveGreenR\nArrows\nLeader, TM1WalkR, TM1WalkL, TM2WalkR, TM2WalkL, TM3WalkR, TM3WalkL, UnmovableR, UnmovableL, Ball, blank, Tree, BallIn\nclubR, clubL\nBallR, BallL, BallU, BallD\nRSV1, RSV2, RSV3\nOnBunker\nBorderR\nBorderL\nBorderU\nBorderD\nRemoveBorderRU\nRemoveBorderLU\nRemoveBorderRD\nRemoveBorderLD\nAddGreenL\nAddGreenR\nFlag, TreeU\nCursor\nWin1, RSVWin1\nWin2, RSVWin2\nNT, IT, CT, ET, ST, HT, OT, TT, TT2, ExT\n\n======\nRULES\n======\n\nup [ Target | no Flag ] -> [ Target | Flag ]\nup [ Tree | no TreeU ] -> [ Tree | TreeU ]\n\n[ > Player | OBforP ] -> [ Player | OBforP ]\n\n[ LeftRSV ] [ PlayerR ] -> [ ] [ PlayerL ]\n\n([ > Player | Arrows | no OBforP ] -> [ > Player | > Arrows | ]\n[ > Player | Arrows | OBforP ] -> [ Player | Arrows | OBforP ])\n\n(Arrows)\n\nright [ BallU ArrowR | no Obstacles ] -> [ ArrowR | BallU ]\nright [ BallD ArrowR | no Obstacles ] -> [ ArrowR | BallD ]\nright [ BallL ArrowR | no Obstacles ] -> [ ArrowR | Ball ]\nleft [ BallU ArrowL | no Obstacles ] -> [ ArrowL | BallU ]\nleft [ BallD ArrowL | no Obstacles ] -> [ ArrowL | BallD ]\nleft [ BallR ArrowL | no Obstacles ] -> [ ArrowL | Ball ]\nup [ BallR ArrowU | no Obstacles ] -> [ ArrowU | BallR ]\nup [ BallL ArrowU | no Obstacles ] -> [ ArrowU | BallL ]\nup [ BallD ArrowU | no Obstacles ] -> [ ArrowU | Ball ]\ndown [ BallR ArrowD | no Obstacles ] -> [ ArrowD | BallR ]\ndown [ BallL ArrowD | no Obstacles ] -> [ ArrowD | BallL ]\ndown [ BallU ArrowD | no Obstacles ] -> [ ArrowD | Ball ]\n\n(Water)\n\nleft [ no Water no AddWaterL | Water ] -> [ AddWaterLUD | Water ]\nright [ no Water no AddWaterR | Water ] -> [ AddWaterRUD | Water ]\n\nup [ AddWaterLUD | no Water ] -> [ AddWaterLD | ]\nup [ AddWaterRUD | no Water ] -> [ AddWaterRD | ]\n\ndown [ AddWaterLUD | no Water ] -> [ AddWaterLU | ]\ndown [ AddWaterRUD | no Water ] -> [ AddWaterRU | ]\n\ndown [ AddWaterLD | no Water ] -> [ | ]\ndown [ AddWaterRD | no Water ] -> [ | ]\n\nleft [ Water no RemoveWaterL | no Water ] -> [ Water RemoveWaterLUD | ]\nright [ Water no RemoveWaterR | no Water ] -> [ Water RemoveWaterRUD | ]\n\nup [ RemoveWaterLUD | Water ] -> [ RemoveWaterLD | Water ]\nup [ RemoveWaterRUD | Water ] -> [ RemoveWaterRD | Water ]\n\ndown [ RemoveWaterLUD | Water ] -> [ RemoveWaterLU | Water ]\ndown [ RemoveWaterRUD | Water ] -> [ RemoveWaterRU | Water ]\n\ndown [ RemoveWaterLD | Water ] -> [ | Water ]\ndown [ RemoveWaterRD | Water ] -> [ | Water ]\n\nright [ RemoveWaterRU | AddWaterLU ] -> [ RemoveWaterRU | ]\nright [ RemoveWaterRD | AddWaterLD ] -> [ RemoveWaterRD | ]\n\nright [ RemoveWaterRUD | AddWaterLU ] -> [ RemoveWaterRUD | ]\nright [ RemoveWaterRUD | AddWaterLD ] -> [ RemoveWaterRUD | ]\n\nleft [ RemoveWaterLU | AddWaterRU ] -> [ RemoveWaterLU | ]\nleft [ RemoveWaterLD | AddWaterRD ] -> [ RemoveWaterLD | ]\n\nleft [ RemoveWaterLUD | AddWaterRU ] -> [ RemoveWaterLUD | ]\nleft [ RemoveWaterLUD | AddWaterRD ] -> [ RemoveWaterLUD | ]\n\n[ Ball Water ] -> [ Ripples1 Water ]\n[ stationary Ripples3 ] -> [ ]\n[ stationary Ripples2 ] -> [ Ripples3 ]\n[ stationary Ripples1 ] -> [ action Ripples2 ]\n\n(Bunker)\n\nleft [ no Bunker no AddBunkerL | Bunker ] -> [ AddBunkerLUD | Bunker ]\nright [ no Bunker no AddBunkerR | Bunker ] -> [ AddBunkerRUD | Bunker ]\n\nup [ AddBunkerLUD | no Bunker ] -> [ AddBunkerLD | ]\nup [ AddBunkerRUD | no Bunker ] -> [ AddBunkerRD | ]\n\ndown [ AddBunkerLUD | no Bunker ] -> [ AddBunkerLU | ]\ndown [ AddBunkerRUD | no Bunker ] -> [ AddBunkerRU | ]\n\ndown [ AddBunkerLD | no Bunker ] -> [ | ]\ndown [ AddBunkerRD | no Bunker ] -> [ | ]\n\nleft [ Bunker no RemoveBunkerL | no Bunker ] -> [ Bunker RemoveBunkerLUD | ]\nright [ Bunker no RemoveBunkerR | no Bunker ] -> [ Bunker RemoveBunkerRUD | ]\n\nup [ RemoveBunkerLUD | Bunker ] -> [ RemoveBunkerLD | Bunker ]\nup [ RemoveBunkerRUD | Bunker ] -> [ RemoveBunkerRD | Bunker ]\n\ndown [ RemoveBunkerLUD | Bunker ] -> [ RemoveBunkerLU | Bunker ]\ndown [ RemoveBunkerRUD | Bunker ] -> [ RemoveBunkerRU | Bunker ]\n\ndown [ RemoveBunkerLD | Bunker ] -> [ | Bunker ]\ndown [ RemoveBunkerRD | Bunker ] -> [ | Bunker ]\n\nright [ RemoveBunkerRU | AddBunkerLU ] -> [ RemoveBunkerRU | ]\nright [ RemoveBunkerRD | AddBunkerLD ] -> [ RemoveBunkerRD | ]\n\nright [ RemoveBunkerRUD | AddBunkerLU ] -> [ RemoveBunkerRUD | ]\nright [ RemoveBunkerRUD | AddBunkerLD ] -> [ RemoveBunkerRUD | ]\n\nleft [ RemoveBunkerLU | AddBunkerRU ] -> [ RemoveBunkerLU | ]\nleft [ RemoveBunkerLD | AddBunkerRD ] -> [ RemoveBunkerLD | ]\n\nleft [ RemoveBunkerLUD | AddBunkerRU ] -> [ RemoveBunkerLUD | ]\nleft [ RemoveBunkerLUD | AddBunkerRD ] -> [ RemoveBunkerLUD | ]\n\n(Green)\n\nleft [ no Green no AddGreenL | Green ] -> [ AddGreenLUD | Green ]\nright [ no Green no AddGreenR | Green ] -> [ AddGreenRUD | Green ]\n\nup [ AddGreenLUD | no Green ] -> [ AddGreenLD | ]\nup [ AddGreenRUD | no Green ] -> [ AddGreenRD | ]\n\ndown [ AddGreenLUD | no Green ] -> [ AddGreenLU | ]\ndown [ AddGreenRUD | no Green ] -> [ AddGreenRU | ]\n\ndown [ AddGreenLD | no Green ] -> [ | ]\ndown [ AddGreenRD | no Green ] -> [ | ]\n\nleft [ Green no RemoveGreenL | no Green ] -> [ Green RemoveGreenLUD | ]\nright [ Green no RemoveGreenR | no Green ] -> [ Green RemoveGreenRUD | ]\n\nup [ RemoveGreenLUD | Green ] -> [ RemoveGreenLD | Green ]\nup [ RemoveGreenRUD | Green ] -> [ RemoveGreenRD | Green ]\n\ndown [ RemoveGreenLUD | Green ] -> [ RemoveGreenLU | Green ]\ndown [ RemoveGreenRUD | Green ] -> [ RemoveGreenRU | Green ]\n\ndown [ RemoveGreenLD | Green ] -> [ | Green ]\ndown [ RemoveGreenRD | Green ] -> [ | Green ]\n\nright [ RemoveGreenRU | AddGreenLU ] -> [ RemoveGreenRU | ]\nright [ RemoveGreenRD | AddGreenLD ] -> [ RemoveGreenRD | ]\n\nright [ RemoveGreenRUD | AddGreenLU ] -> [ RemoveGreenRUD | ]\nright [ RemoveGreenRUD | AddGreenLD ] -> [ RemoveGreenRUD | ]\n\nleft [ RemoveGreenLU | AddGreenRU ] -> [ RemoveGreenLU | ]\nleft [ RemoveGreenLD | AddGreenRD ] -> [ RemoveGreenLD | ]\n\nleft [ RemoveGreenLUD | AddGreenRU ] -> [ RemoveGreenLUD | ]\nleft [ RemoveGreenLUD | AddGreenRD ] -> [ RemoveGreenLUD | ]\n\n(Border)\n\nright [ Green | blank ] -> [ Green | BorderR blank ]\nleft [ Green | blank ] -> [ Green | BorderL blank ]\nup [ Green | blank ] -> [ Green | BorderU blank ]\ndown [ Green | blank ] -> [ Green | BorderD blank ]\n\nup [ BorderR | no BorderR ] -> [ BorderR RemoveBorderRU | ]\ndown [ BorderR | no BorderR ] -> [ BorderR RemoveBorderRD | ]\nup [ BorderL | no BorderL ] -> [ BorderL RemoveBorderLU | ]\ndown [ BorderL | no BorderL ] -> [ BorderL RemoveBorderLD | ]\nright [ BorderU | no BorderU ] -> [ BorderU RemoveBorderLD | ]\nleft [ BorderU | no BorderU ] -> [ BorderU RemoveBorderRD | ]\nright [ BorderD | no BorderD ] -> [ BorderD RemoveBorderLU | ]\nleft [ BorderD | no BorderD ] -> [ BorderD RemoveBorderRU | ]\n\n(club)\n\n[ > PlayerR | TMs ] -> [ UnmovableR | TMs clubR ] sfx1\n[ > WalkR | TMs ] -> [ UnmovableR | TMs clubR ] sfx1\n[ > PlayerL | TMs ] -> [ UnmovableL | TMs clubL ] sfx1\n[ > WalkL | TMs ] -> [ UnmovableL | TMs clubL ] sfx1\n\n[ > club | no TMs ] -> [ club | ]\nlate [ club UnmovableR ] -> [ clubR UnmovableR ]\nlate [ club UnmovableL ] -> [ clubL UnmovableL ]\nlate [ club TM1WalkR ] -> [ clubR TM1WalkR ]\nlate [ club TM1WalkL ] -> [ clubL TM1WalkL ]\nlate [ club TM2WalkR ] -> [ clubR TM2WalkR ]\nlate [ club TM2WalkL ] -> [ clubL TM2WalkL ]\nlate [ club TM3WalkR ] -> [ clubR TM3WalkR ]\nlate [ club TM3WalkL ] -> [ clubL TM3WalkL ]\n\nlate [ club UnmovableR ] -> [ PlayerR ]\nlate [ club UnmovableL ] -> [ PlayerL ]\n\nlate up [ club TMs no Cursor ] -> [ club TMs Cursor ]\nlate up [ no club TMs Cursor ] -> [ TMs ]\n\n(Hit)\n\n[ Ball Target ] -> [ BallIn Target ]\n\nright [ Bunker OnBunker | BallR ] -> [ Bunker | action Ball ]\nleft [ Bunker OnBunker | BallL ] -> [ Bunker | action Ball ]\nup [ Bunker OnBunker | BallU ] -> [ Bunker | action Ball ]\ndown [ Bunker OnBunker | BallD ] -> [ Bunker | action Ball ]\n\nright [ action Player | Ball no Bunker | no Obstacles ] -> [ Player | BallR | ] sfx0\nleft [ action Player | Ball no Bunker | no Obstacles ] -> [ Player | BallL | ] sfx0\nup [ action Player | Ball no Bunker | no Obstacles ] -> [ Player | BallU | ] sfx0\ndown [ action Player | Ball no Bunker | no Obstacles ] -> [ Player | BallD | ] sfx0\n\nright [ action Player | Ball Bunker | no Obstacles ] -> [ Player | BallR Bunker OnBunker | ] sfx2\nleft [ action Player | Ball Bunker | no Obstacles ] -> [ Player | BallL Bunker OnBunker | ] sfx2\nup [ action Player | Ball Bunker | no Obstacles ] -> [ Player | BallU Bunker OnBunker | ] sfx2\ndown [ action Player | Ball Bunker | no Obstacles ] -> [ Player | BallD Bunker OnBunker | ] sfx2\n\nright [ BallR | no Obstacles ] -> [ > BallR | ]\nright [ BallR | Obstacles ] -> [ action Ball | Obstacles ]\nleft [ BallL | no Obstacles ] -> [ > BallL | ]\nleft [ BallL | Obstacles ] -> [ action Ball | Obstacles ]\nup [ BallU | no Obstacles ] -> [ > BallU | ]\nup [ BallU | Obstacles ] -> [ action Ball | Obstacles ]\ndown [ BallD | no Obstacles ] -> [ > BallD | ]\ndown [ BallD | Obstacles ] -> [ action Ball | Obstacles ]\n\n(Follower)\n\n[ Start RSVR1 no Player ] -> [ Start TM1R RSVR1 ]\n\n[ PlayerR ] -> [ PlayerR RSVR1 ]\n[ WalkR ] -> [ WalkR RSVR1 ]\n[ PlayerL ] -> [ PlayerL RSVL1 ]\n[ WalkL ] -> [ WalkL RSVL1 ]\n\n[ > Leader ] [ RSVR3 ] -> [ > Leader ] [ RSVR1 ]\n[ > Leader ] [ RSVL3 ] -> [ > Leader ] [ RSVL1 ]\n[ > Leader ] [ RSVR2 ] -> [ > Leader ] [ RSVR3 ]\n[ > Leader ] [ RSVL2 ] -> [ > Leader ] [ RSVL3 ]\n[ > Leader ] [ RSVR1 no Player no TM3WalkR ] -> [ > Leader ] [ RSVR2 ]\n[ > Leader ] [ RSVL1 no Player no TM3WalkL no UnmovableR no UnmovableL ] -> [ > Leader ] [ RSVL2 ]\n\nlate [ TM2WalkR RSVR3 ] -> [ TM3WalkR1 RSVR3 ]\nlate [ TM2WalkL RSVL3 ] -> [ TM3WalkL1 RSVL3 ]\nlate [ TM1WalkR RSVR2 ] -> [ TM2WalkR1 RSVR2 ]\nlate [ TM1WalkL RSVL2 ] -> [ TM2WalkL1 RSVL2 ]\nlate [ RSVR1 no Player no TM1WalkR no UnmovableR no UnmovableL ] -> [ TM1WalkR1 RSVR1 ]\nlate [ RSVL1 no Player no TM1WalkL no UnmovableR no UnmovableL ] -> [ TM1WalkL1 RSVL1 ]\n\n(Walking anim)\n\nleft [ > PlayerR ] -> [ > PlayerL ]\nleft [ > WalkR1 ] -> [ > WalkL1 ]\nleft [ > WalkR2 ] -> [ > WalkL2 ]\nleft [ > WalkR3 ] -> [ > WalkL3 ]\nright [ > PlayerL ] -> [ > PlayerR ]\nright [ > WalkL1 ] -> [ > WalkR1 ]\nright [ > WalkL2 ] -> [ > WalkR2 ]\nright [ > WalkL3 ] -> [ > WalkR3 ]\n\n[ stationary TM3walkR3 ] -> [ TM3R ]\n[ stationary TM3WalkR2 ] -> [ TM3walkR3 ]\n[ stationary TM3WalkR1 ] -> [ TM3walkR2 ]\n[ stationary TM3walkL3 ] -> [ TM3L ]\n[ stationary TM3WalkL2 ] -> [ TM3walkL3 ]\n[ stationary TM3WalkL1 ] -> [ TM3walkL2 ]\n\n[ stationary TM2walkR3 ] -> [ TM2R ]\n[ stationary TM2WalkR2 ] -> [ TM2walkR3 ]\n[ stationary TM2WalkR1 ] -> [ TM2walkR2 ]\n[ stationary TM2walkL3 ] -> [ TM2L ]\n[ stationary TM2WalkL2 ] -> [ TM2walkL3 ]\n[ stationary TM2WalkL1 ] -> [ TM2walkL2 ]\n\n[ stationary TM1walkR3 ] -> [ TM1R ]\n[ stationary TM1WalkR2 ] -> [ TM1walkR3 ]\n[ stationary TM1WalkR1 ] -> [ TM1walkR2 ]\n[ stationary TM1walkL3 ] -> [ TM1L ]\n[ stationary TM1WalkL2 ] -> [ TM1walkL3 ]\n[ stationary TM1WalkL1 ] -> [ TM1walkL2 ]\n\n[ > PlayerR ] -> [ > WalkR1 ]\n[ stationary walkR3 ] -> [ PlayerR ]\n[ stationary WalkR2 ] -> [ walkR3 ]\n[ stationary WalkR1 ] -> [ walkR2 ]\n\n[ > PlayerL ] -> [ > WalkL1 ]\n[ stationary walkL3 ] -> [ PlayerL ]\n[ stationary WalkL2 ] -> [ walkL3 ]\n[ stationary WalkL1 ] -> [ walkL2 ]\n\n(Win)\n\nright [ BallIn Target ] [ WinS1 no Win1 ] [ WinS2 no Win2 ] [ RSVText | | ] -> [ BallIn action Target ] [ WinS1 Win1 ] [ WinS2 Win2 ] [ RSVText | | NT ]\n[ Win1 | no Win1 ] -> [ Win1 | RSVWin1 ]\n[ Win2 | no Win2 ] -> [ Win2 | RSVWin2 ]\n[ RSVWin1 ] -> [ Win1 ]\n[ RSVWin2 ] -> [ Win2 ]\n\nright [ NT | | | | | | | | | ] -> [ NT | IT | CT | ET | ST | HT | OT | TT | TT2 | ExT ]\n\n==============\nWINCONDITIONS\n==============\n\nAll WinS1 on Win2\n\n=======\nLEVELS\n=======\n\nmessage Hole 1 of 15\nmessage X to hit.\n______________\n______________\n_1____________\n__s,,,,,,,,,__\n___,,,,,,,o,__\n3__,,,,,,,,,__\n___,,b,,,,,,__\n___,,,,,,,,,__\n____________2_\n______________\n______________\n\nmessage Hole 2 of 15\nmessage Everybody can use the club.\nmessage Press move key towards followers.\n\n______________\n______________\n__1___________\n______o_______\n____,,,,,_____\n3___,,,,,_____\n____,,t,,_____\n____,,b,,_____\n___s,,,,,_____\n_________2____\n______________\n\nmessage Hole 3 of 15\n\n______________\n__1___________\n____,o________\n____,,________\n____,,,,,_____\n3___,,,,,_____\n____,t,,,_____\n____,,,,,_____\n____,b,,,_____\n___s,,,,,_____\n_________2____\n\nmessage Hole 4 of 15\n\n______________\n__1___________\n____,,,,,,____\n___,,,b,,,____\n___,,ttt,,____\n3__,,,o,,,____\n___,,ttt,,____\n___,,,,,,,____\n_________s____\n__________2___\n_____________*\n\nmessage Hole 5 of 15\n\n______________\n__1___________\n____,,,,,,____\n____,,,,,,____\n____,,,ow,____\n3___,,,,w,____\n____,,,,,,____\n____,bt,______\n___s,,,,______\n__________2___\n______________\n\nmessage Hole 6 of 15\n\n______________\n______________\n1_____________\n__,,,,,,,,,___\n__,,,,,,,,,___\n3_t,w,o,w,,___\n__,,tt,tt,,___\n__,bwwwww,,___\n_s,,,,,,,,,___\n___________2__\n______________\n\nmessage Hole 7 of 15\n\n1_____________\n__,,,,,,,,,,,_\n__,,,,,,,,,,,_\n__,,ww,,,ww,,_\n__,,ww,w,ww,,_\n3_,,ww,o,ww,,_\n__t,ww,b,ww,t_\n__,,wwwwwww,,_\n_s,,,,,,,,,,,_\n__,,,,,,,,,,,_\n_____________2\n\nmessage Hole 8 of 15\n\n______________\n1_____________\n__,,,,,,,,,,__\n__,b,,t,,t,,__\n__,,t,,,,,,,__\n3_,,ww,twow,__\n__,,t,,,www,__\n__,,t,t,,,,,__\n_s,,,,,,,,,,__\n____________2_\n______________\n\nmessage Hole 9 of 15\n\n______________\n__1___________\n_______o______\n___,,,,,,_____\n___,b,,,,_____\n3__,,,,,,_____\n___,,,,,,_____\n___,,,,,,_____\n_______s______\n_________2____\n_____________*\n\nmessage Hole 10 of 15\nmessage The bunker could be useful.\n\n______________\n______________\n______________\n_1____________\n___,,,,,,,,,__\n3__,,,,,,,,o__\n__s,b,+,,,,,__\n___,,,,,,,,,__\n____________2_\n______________\n______________\n\nmessage Hole 11 of 15\n\n______________\n_1____________\n_____,,_______\n_____,owwww___\n_____,,,,,,___\n3____,,+,,,___\n___,,,,,w,,___\n___,,,,,,,,___\n___,,,w,,b,___\n__s,,,,,,,,___\n___________2__\n\n\nmessage Hole 12 of 15\n\n______________\n_1____________\n___,,,,www____\n___,o,,,,,____\n___,,,,+++____\n3_s,ttt,+,____\n___,t,,,+,,,__\n___,,,,,,,,,__\n___,b,,,t,,,__\n___,,,,,,,____\n____________2_\n\n(______________\n______________\n_________o____\n______,,,,w___\n____,,,,,,w___\n____,,,b+,w___\n____,,,,,,w___\n____,,,,,,w___\n____,,,,,,w___\n___s,,,,,,w___\n______________\n\n______________\n______________\n__________o___\n_______,,,,w__\n____,,,,,,,w__\n___,,b,,,,,w__\n___,,,,,,,,w__\n___,,,,t,+,w__\n___,,,,,,,,w__\n__s,,,,,,,,w__\n______________)\n\nmessage Hole 13 of 15\n\n_1____________\n______s_______\n__,,,,,,,,,___\n__,,,tbt,,,___\n__,+++,+++,___\n3_,+++,+++,___\n__,+++,+++,___\n__,,+++++,,___\n__,,,wow,,,___\n__,,,www,,,___\n___________2__\n\nmessage Hole 14 of 15\n\n_1____________\n______s_______\n__,,,,,,,,,___\n__,+++b+++,___\n__,+++,+++,___\n3_,w++,++w,___\n__,+++,+++,___\n__,,+++++,,___\n__,,,wow,,,___\n__,,,www,,,___\n___________2__\n\nmessage Hole 15 of 15\n\n______________\n_1____________\n_______,,,,ow_\n____,,,,t,,,w_\n___,,b,,,,,,w_\n3__,,,,,,,,,w_\n___,,,,,,,+,w_\n___,,,,w,,,,w_\n__s,,,,,,,,,w_\n_____________2\n______________\n\n(______________\n______________\n_______s______\n__,,,,,,,,,,,_\n__,,,,,,,,,,,_\n__,,,,,b,,,,,_\n__,,,,,dttttt_\n__ttttt,,,,,o_\n______________\n______________\n______________\n\n______________\n__s,,,,,,,,,__\n___,t,,b,tt,__\n___,,,,t,,,,,_\n___,,,,,,,,,,_\n___,tt,,,tt,,_\n___,o,,t,,,,,_\n___,,,ltd,,,,_\n___,tt,,,tt,,_\n___,,,,,,,,,__\n______________\n\n______________\n_____,,,,,____\n_____,,o,,____\n_____,www,____\n_____,,l,,____\n_____,,r,,____\n_____,,,,,____\n_____,,,,,____\n_____,tbt,____\n____s,,,,,____\n______________)\n\nmessage Thanks for playing!\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick",3,"tick","tick",2,"tick",2,"tick",2,"tick",2,"tick","tick",3,"tick",3,"tick",3,"tick",3,"tick",3,"tick","tick",0,"tick","tick",0,"tick",4,"tick","tick","tick","tick","tick",2,"tick","tick","tick",2,"tick",1,"tick",1,"tick",1,"tick",1,"tick","tick","tick",1,"tick",0,4,"tick","tick","tick","tick","tick","tick",2,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","restart","tick","tick","tick",3,"tick",2,"tick","tick","tick",3,2,"tick",2,"tick","tick",2,3,"tick",3,"tick",3,"tick",3,"tick","tick",3,"tick",0,"tick","tick","tick",4,"tick","tick","tick",2,"tick",1,"tick",1,"tick",1,"tick",1,"tick","tick",1,0,"tick",4,"tick","tick","tick","tick",2,"tick","tick",4,"tick","tick","tick","tick",3,"tick",3,"tick",3,"tick",3,"tick",3,"tick",0,"tick","tick",0,"tick",0,"tick",0,"tick",1,"tick","tick","tick","tick","tick","tick","tick",4,"tick","tick",3,"tick",2,"tick","tick",2,"tick",2,"tick",2,1,"tick",4,"tick","tick","tick","tick",3,"tick",3,"tick",0,"tick",0,"tick",0,"tick",4,"tick",4,"tick","tick","tick","tick","tick"],"background blank:0,0,0,0,0,background blank rsvtext:1,0,0,0,0,0,0,0,background blank wins1:2,\nbackground blank borderl removeborderld removeborderlu:3,0,0,0,0,0,0,0,0,0,background blank borderu removeborderrd:4,background green removegreenlud rsvr1 start tm1r:5,addgreenru background blank borderd borderl removeborderlu removeborderru:6,background blank borderl:7,\n7,background blank borderl removeborderld:8,0,0,0,0,0,background blank borderu:9,background green rsvr3 tm3r:10,background green rsvr2 tm2r:11,background green:12,12,background green removegreenld:13,background blank borderd removeborderru:14,\n0,0,0,0,9,12,background green rsvr1 tm1r:15,10,11,15,background blank borderd:16,0,0,0,\n0,9,12,background ball green:17,12,12,10,16,0,0,0,0,9,12,\n12,12,12,11,16,0,0,0,0,9,12,12,12,12,\n15,16,0,0,0,0,9,background green rsvl1 unmovablel:18,12,12,12,10,16,0,\n0,0,0,9,15,background clubr cursor green rsvr2 tm2r:19,10,15,11,16,0,0,0,0,\n9,background flag green:20,background green target:21,12,12,12,16,0,0,0,0,background blank borderu removeborderld:22,background green removegreenru:23,12,\n12,12,background green removegreenrd:24,background blank borderd removeborderlu:25,0,0,0,0,0,background blank borderr removeborderru:26,background blank borderr:27,27,27,background blank borderr removeborderrd:28,\nbackground blank wins2:29,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",2,"1627770891133.2458"] + ["title Shall We Golf?\nauthor nebu soku\nhomepage www.puzzlescript.net\n\nrealtime_interval 0.13\nrun_rules_on_level_Start\nbackground_color #3a6aa3\ntext_color lightblue\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nGreen\n#659b2d green\n11111\n10001\n10101\n10001\n11111\n\nWater\nlightblue \n\nAddWaterLUD\nlightblue \n0....\n.....\n.....\n.....\n0....\n\nAddWaterLU\nlightblue \n0....\n.....\n.....\n.....\n.....\n\nAddWaterLD\nlightblue \n.....\n.....\n.....\n.....\n0....\n\nAddWaterRUD\nlightblue \n....0\n.....\n.....\n.....\n....0\n\nAddWaterRU\nlightblue \n....0\n.....\n.....\n.....\n.....\n\nAddWaterRD\nlightblue \n.....\n.....\n.....\n.....\n....0\n\nRemoveWaterLUD\ngreen\n0....\n.....\n.....\n.....\n0....\n\nRemoveWaterLU\ngreen\n0....\n.....\n.....\n.....\n.....\n\nRemoveWaterLD\ngreen\n.....\n.....\n.....\n.....\n0....\n\nRemoveWaterRUD\ngreen\n....0\n.....\n.....\n.....\n....0\n\nRemoveWaterRU\ngreen\n....0\n.....\n.....\n.....\n.....\n\nRemoveWaterRD\ngreen\n.....\n.....\n.....\n.....\n....0\n\nBunker\nlightbrown orange #2a6b17\n00000\n00010\n00000\n01000\n00000\n\nAddBunkerLUD\nlightbrown\n0....\n.....\n.....\n.....\n0....\n\nAddBunkerLU\nlightbrown\n0....\n.....\n.....\n.....\n.....\n\nAddBunkerLD\nlightbrown\n.....\n.....\n.....\n.....\n0....\n\nAddBunkerRUD\nlightbrown\n....0\n.....\n.....\n.....\n....0\n\nAddBunkerRU\nlightbrown\n....0\n.....\n.....\n.....\n.....\n\nAddBunkerRD\nlightbrown\n.....\n.....\n.....\n.....\n....0\n\nRemoveBunkerLUD\ngreen\n0....\n.....\n.....\n.....\n0....\n\nRemoveBunkerLU\ngreen\n0....\n.....\n.....\n.....\n.....\n\nRemoveBunkerLD\ngreen\n.....\n.....\n.....\n.....\n0....\n\nRemoveBunkerRUD\ngreen\n....0\n.....\n.....\n.....\n....0\n\nRemoveBunkerRU\ngreen\n....0\n.....\n.....\n.....\n.....\n\nRemoveBunkerRD\ngreen\n.....\n.....\n.....\n.....\n....0\n\nOnBunker\nblack\n.....\n.....\n.....\n.....\n.....\n\nblank\n#3a6aa3\n\nWin1\n#3a6aa3\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\nWin2\n#3a6aa3\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nWinS1\nwhite\n\nWinS2\nblack\n\nRSVWin1\nblack\n.....\n.....\n.....\n.....\n.....\n\nRSVWin2\nblack\n.....\n.....\n.....\n.....\n.....\n\nTarget\nlightgray red darkblue\n..0..\n..0..\n..2..\n.....\n.....\n\nFlag\nred lightgray\n.....\n.....\n.....\n..00.\n..1..\n\nclubR\ngray darkgray white\n.....\n.....\n.0...\n.2...\n.11..\n\nclubL\ngray darkgray white\n.....\n.....\n...0.\n...2.\n..11.\n\nBall\nwhite\n.....\n.....\n..0..\n.....\n.....\n\nBallR\nwhite darkblue\n..0..\n.....\n..1..\n.....\n.....\n\nBallL\nwhite darkblue\n..0..\n.....\n..1..\n.....\n.....\n\nBallU\nwhite darkblue\n..0..\n.....\n..1..\n.....\n.....\n\nBallD\nwhite darkblue\n..0..\n.....\n..1..\n.....\n.....\n\nBallIn\ndarkblue\n.....\n.....\n..0..\n.....\n.....\n\nStart\nlightgreen green\n11111\n11111\n10111\n11111\n11101\n\nTree\ndarkgreen brown #134b3d\n.000.\n.000.\n..1..\n.....\n.....\n\nTreeU\ndarkgreen #134b3d\n.....\n.....\n.....\n.111.\n.111.\n\nLeftRSV\npurple\n\nUnmovableR\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n63636\n.3333\n.0330\n.3.6.\n\nUnmovableL\nwhite lightbrown lightgray darkblue brown blue black\n6666.\n63636\n3333.\n0330.\n.6.3.\n\nPlayerR\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n63636\n.2333\n.0330\n.776.\n\nWalkR1\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n63636\n.3233\n.3033\n3.776\n\nWalkR2\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n62636\n.2333\n.0332\n.773.\n\nWalkR3\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n63636\n23333\n03330\n77..3\n\nPlayerL\nwhite lightbrown lightgray darkblue brown blue black darkgray\n6666.\n63636\n3332.\n0330.\n.677.\n\nWalkL1\nwhite lightbrown lightgray darkblue brown blue black darkgray\n6666.\n63636\n3323.\n.303.\n677.3\n\nWalkL2\nwhite lightbrown lightgray darkblue brown blue black darkgray\n6666.\n63636\n3332.\n2330.\n.377.\n\nWalkL3\nwhite lightbrown lightgray darkblue brown blue black darkgray\n6666.\n63636\n33332\n03330\n3..77\n\nRSVR1\npink\n.....\n.....\n.....\n.....\n.....\n\nRSVL1\npink\n.....\n.....\n.....\n.....\n.....\n\nTM1R\nwhite lightbrown lightgray pink brown blue darkred\n.6666\n63636\n.3333\n.0330\n.3.6.\n\nTM1WalkR1\nwhite lightbrown lightgray pink brown blue darkred\n.6666\n63636\n.3333\n.3033\n3...6\n\nTM1WalkR2\nwhite lightbrown lightgray pink brown blue darkred\n.6666\n63636\n.3333\n.0332\n.6.3.\n\nTM1WalkR3\nwhite lightbrown lightgray pink brown blue darkred\n.6666\n63636\n.3333\n03330\n6...3\n\nTM1L\nwhite lightbrown lightgray pink brown blue darkred\n6666.\n63636\n3333.\n0330.\n.6.3.\n\nTM1WalkL1\nwhite lightbrown lightgray pink brown blue darkred\n6666.\n63636\n3333.\n3303.\n6...3\n\nTM1WalkL2\nwhite lightbrown lightgray pink brown blue darkred\n6666.\n63636\n3333.\n2330.\n.3.6.\n\nTM1WalkL3\nwhite lightbrown lightgray pink brown blue darkred\n6666.\n63636\n3333.\n03330\n3...6\n\nRSVR2\nyellow\n.....\n.....\n.....\n.....\n.....\n\nRSVL2\nyellow\n.....\n.....\n.....\n.....\n.....\n\nTM2R\nwhite lightbrown lightgray yellow brown blue orange\n.6666\n63636\n.3333\n.0330\n.3.6.\n\nTM2WalkR1\nwhite lightbrown lightgray yellow brown blue orange\n.6666\n63636\n.3333\n.3033\n3...6\n\nTM2WalkR2\nwhite lightbrown lightgray yellow brown blue orange\n.6666\n63636\n.3333\n.0332\n.6.3.\n\nTM2WalkR3\nwhite lightbrown lightgray yellow brown blue orange\n.6666\n63636\n.3333\n03330\n6...3\n\nTM2L\nwhite lightbrown lightgray yellow brown blue orange\n6666.\n63636\n3333.\n0330.\n.6.3.\n\nTM2WalkL1\nwhite lightbrown lightgray yellow brown blue orange\n6666.\n63636\n3333.\n3303.\n6...3\n\nTM2WalkL2\nwhite lightbrown lightgray yellow brown blue orange\n6666.\n63636\n3333.\n2330.\n.3.6.\n\nTM2WalkL3\nwhite lightbrown lightgray yellow brown blue orange\n6666.\n63636\n3333.\n03330\n3...6\n\nRSVR3\ngray\n.....\n.....\n.....\n.....\n.....\n\nRSVL3\ngray\n.....\n.....\n.....\n.....\n.....\n\nTM3R\nwhite lightbrown lightgray Blue brown blue #153759\n.6666\n63636\n.3333\n.0330\n.3.6.\n\nTM3WalkR1\nwhite lightbrown lightgray Blue brown blue #153759\n.6666\n63636\n.3333\n.3033\n3...6\n\nTM3WalkR2\nwhite lightbrown lightgray Blue brown blue #153759\n.6666\n63636\n.3333\n.0332\n.6.3.\n\nTM3WalkR3\nwhite lightbrown lightgray Blue brown blue #153759\n.6666\n63636\n.3333\n03330\n6...3\n\nTM3L\nwhite lightbrown lightgray Blue brown blue #153759\n6666.\n63636\n3333.\n0330.\n.6.3.\n\nTM3WalkL1\nwhite lightbrown lightgray Blue brown blue #153759\n6666.\n63636\n3333.\n3303.\n6...3\n\nTM3WalkL2\nwhite lightbrown lightgray Blue brown blue #153759\n6666.\n63636\n3333.\n2330.\n.3.6.\n\nTM3WalkL3\nwhite lightbrown lightgray Blue brown blue #153759\n6666.\n63636\n3333.\n03330\n3...6\n\nAddGreenLUD\ngreen\n0....\n.....\n.....\n.....\n0....\n\nAddGreenLU\ngreen\n0....\n.....\n.....\n.....\n.....\n\nAddGreenLD\ngreen\n.....\n.....\n.....\n.....\n0....\n\nAddGreenRUD\ngreen\n....0\n.....\n.....\n.....\n....0\n\nAddGreenRU\ngreen\n....0\n.....\n.....\n.....\n.....\n\nAddGreenRD\ngreen\n.....\n.....\n.....\n.....\n....0\n\nRemoveGreenLUD\n#1d4c2c\n0....\n.....\n.....\n.....\n0....\n\nRemoveGreenLU\n#1d4c2c\n0....\n.....\n.....\n.....\n.....\n\nRemoveGreenLD\n#1d4c2c\n.....\n.....\n.....\n.....\n0....\n\nRemoveGreenRUD\n#1d4c2c\n....0\n.....\n.....\n.....\n....0\n\nRemoveGreenRU\n#1d4c2c\n....0\n.....\n.....\n.....\n.....\n\nRemoveGreenRD\n#1d4c2c\n.....\n.....\n.....\n.....\n....0\n\nBorderR\n#1d4c2c\n0....\n0....\n0....\n0....\n0....\n\nBorderL\n#1d4c2c\n....0\n....0\n....0\n....0\n....0\n\nBorderU\n#1d4c2c\n.....\n.....\n.....\n.....\n00000\n\nBorderD\n#1d4c2c\n00000\n.....\n.....\n.....\n.....\n\nRemoveBorderRU\n#3a6aa3\n0....\n.....\n.....\n.....\n.....\n\nRemoveBorderLU\n#3a6aa3\n....0\n.....\n.....\n.....\n.....\n\nRemoveBorderRD\n#3a6aa3\n.....\n.....\n.....\n.....\n0....\n\nRemoveBorderLD\n#3a6aa3\n.....\n.....\n.....\n.....\n....0\n\nRipples1\nwhite\n.....\n.....\n..0..\n.....\n.....\n\nRipples2\nwhite #3a6aa3\n.....\n...0.\n.0...\n..1..\n.....\n\nRipples3\nwhite #3a6aa3\n.....\n.....\n.....\n.....\n..1..\n\nArrowR\ngray lightgray red\n.111.\n11211\n11121\n11211\n.111.\n\nArrowL\ngray lightgray red\n.111.\n11211\n12111\n11211\n.111.\n\nArrowU\ngray lightgray red\n.111.\n11211\n12121\n11111\n.111.\n\nArrowD\ngray lightgray red\n.111.\n11111\n12121\n11211\n.111.\n\nRSVText\npurple\n\nNT\n#fa5c5c\n0...0\n00..0\n0.0.0\n0..00\n0...0\n\nIT\norange yellow\n.0.11\n.0.1.\n.0.1.\n.0.1.\n.0.11\n\nCT\nyellow #27cc20\n000.1\n....1\n....1\n....1\n000.1\n\nET\n#27cc20\n0000.\n.....\n0000.\n.....\n0000.\n\nST\n#4bb6e3\n.0000\n.0...\n.0000\n.....\n.0000\n\nHT\n#4bb6e3 blue\n0.1..\n..1..\n0.111\n0.1..\n0.1..\n\nOT\nblue #bb4be2\n.0.11\n.0.1.\n00.1.\n.0.1.\n.0.11\n\nTT\n#bb4be2 pink\n000.1\n..0..\n..0..\n..0..\n000..\n\nTT2\npink\n0000.\n.0...\n.0...\n.0...\n.0...\n\nExT\n#fa5c5c\n.0...\n.0...\n.0...\n.....\n.0...\n\nCursor\nred\n0...0\n.....\n.....\n.....\n0...0\n\n=======\nLEGEND\n=======\n\nPlayer = PlayerR or PlayerL or WalkR1 or WalkR2 or WalkR3 or WalkL1 or WalkL2 or WalkL3 or clubR or clubL\nLeader = PlayerR or PlayerL or WalkR1 or WalkR2 or WalkR3 or WalkL1 or WalkL2 or WalkL3\nWalkR = WalkR1 or WalkR2 or WalkR3\nWalkL = WalkL1 or WalkL2 or WalkL3\n\nTM1 = TM1R or TM1L\nTM1WalkR = TM1R or TM1WalkR1 or TM1WalkR2 or TM1WalkR3\nTM1WalkL = TM1L or TM1WalkL1 or TM1WalkL2 or TM1WalkL3\nRSV1 = RSVR1 or RSVL1\n\nTM2 = TM2R or TM2L\nTM2WalkR = TM2R or TM2WalkR1 or TM2WalkR2 or TM2WalkR3\nTM2WalkL = TM2L or TM2WalkL1 or TM2WalkL2 or TM2WalkL3\nRSV2 = RSVR2 or RSVL2\n\nTM3 = TM3R or TM3L\nTM3WalkR = TM3R or TM3WalkR1 or TM3WalkR2 or TM3WalkR3\nTM3WalkL = TM3L or TM3WalkL1 or TM3WalkL2 or TM3WalkL3\nRSV3 = RSVR3 or RSVL3\n\nTMs = TM1WalkR or TM1WalkL or TM2WalkR or TM2WalkL or TM3WalkR or TM3WalkL or UnmovableR or UnmovableL\n\nclub = clubR or clubL\n\nArrows = ArrowR or ArrowL or ArrowU or ArrowD\n\nObstacles = Player or TMs or blank or Tree\nOBforP = Ball or blank or Target or Tree or Water\n\n. = Background\n, = Green\nP = PlayerR\nO = Target and Green\n_ = blank\nT = Tree and Green\nS = Start and PlayerR and Green\nB = Ball and Green\nW = Water and Green\n+ = Bunker and Green\nR = ArrowR and Green\nL = ArrowL and Green\nU = ArrowU and Green\nD = ArrowD and Green\n1 = WinS1 and blank\n2 = WinS2 and blank\n3 = RSVText and blank\n* = LeftRSV and blank\n\nAddGreenL = AddGreenLUD or AddGreenLU or AddGreenLD\nAddGreenR = AddGreenRUD or AddGreenRU or AddGreenRD\n\nRemoveGreenL = RemoveGreenLUD or RemoveGreenLU or RemoveGreenLD\nRemoveGreenR = RemoveGreenRUD or RemoveGreenRU or RemoveGreenRD\n\nAddWaterL = AddWaterLUD or AddWaterLU or AddWaterLD\nAddwaterR = AddWaterRUD or AddWaterRU or AddWaterRD\n\nRemoveWaterL = RemoveWaterLUD or RemoveWaterLU or RemoveWaterLD\nRemoveWaterR = RemoveWaterRUD or RemoveWaterRU or RemoveWaterRD\n\nAddBunkerL = AddBunkerLUD or AddBunkerLU or AddBunkerLD\nAddBunkerR = AddBunkerRUD or AddBunkerRU or AddBunkerRD\n\nRemoveBunkerL = RemoveBunkerLD or RemoveBunkerLU or RemoveBunkerLUD\nRemoveBunkerR = RemoveBunkerRUD or RemoveBunkerRU or RemoveBunkerRD\n\n=======\nSOUNDS\n=======\n\nLeader MOVE 62144707\nblank MOVE 16278507\nblank move 95612108\nTarget action 6210100\nclub move 44711106\nBall action 45846907\nRipples2 action 22937701\nRipples1 action 73444303\n\nsfx0 47327503\nsfx1 44711106\nsfx2 48837904\n\nrestart 58221102\nundo 12286707\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nStart, WinS1, WinS2, RSVText, LeftRSV\nGreen\nTarget, Bunker, Water\nAddWaterL\nAddwaterR\nAddBunkerL\nAddBunkerR\nRemoveWaterL\nRemoveWaterR\nRemoveBunkerL\nRemoveBunkerR\nRipples1, Ripples2, Ripples3\nRemoveGreenL\nRemoveGreenR\nArrows\nLeader, TM1WalkR, TM1WalkL, TM2WalkR, TM2WalkL, TM3WalkR, TM3WalkL, UnmovableR, UnmovableL, Ball, blank, Tree, BallIn\nclubR, clubL\nBallR, BallL, BallU, BallD\nRSV1, RSV2, RSV3\nOnBunker\nBorderR\nBorderL\nBorderU\nBorderD\nRemoveBorderRU\nRemoveBorderLU\nRemoveBorderRD\nRemoveBorderLD\nAddGreenL\nAddGreenR\nFlag, TreeU\nCursor\nWin1, RSVWin1\nWin2, RSVWin2\nNT, IT, CT, ET, ST, HT, OT, TT, TT2, ExT\n\n======\nRULES\n======\n\nup [ Target | no Flag ] -> [ Target | Flag ]\nup [ Tree | no TreeU ] -> [ Tree | TreeU ]\n\n[ > Player | OBforP ] -> [ Player | OBforP ]\n\n[ LeftRSV ] [ PlayerR ] -> [ ] [ PlayerL ]\n\n([ > Player | Arrows | no OBforP ] -> [ > Player | > Arrows | ]\n[ > Player | Arrows | OBforP ] -> [ Player | Arrows | OBforP ])\n\n(Arrows)\n\nright [ BallU ArrowR | no Obstacles ] -> [ ArrowR | BallU ]\nright [ BallD ArrowR | no Obstacles ] -> [ ArrowR | BallD ]\nright [ BallL ArrowR | no Obstacles ] -> [ ArrowR | Ball ]\nleft [ BallU ArrowL | no Obstacles ] -> [ ArrowL | BallU ]\nleft [ BallD ArrowL | no Obstacles ] -> [ ArrowL | BallD ]\nleft [ BallR ArrowL | no Obstacles ] -> [ ArrowL | Ball ]\nup [ BallR ArrowU | no Obstacles ] -> [ ArrowU | BallR ]\nup [ BallL ArrowU | no Obstacles ] -> [ ArrowU | BallL ]\nup [ BallD ArrowU | no Obstacles ] -> [ ArrowU | Ball ]\ndown [ BallR ArrowD | no Obstacles ] -> [ ArrowD | BallR ]\ndown [ BallL ArrowD | no Obstacles ] -> [ ArrowD | BallL ]\ndown [ BallU ArrowD | no Obstacles ] -> [ ArrowD | Ball ]\n\n(Water)\n\nleft [ no Water no AddWaterL | Water ] -> [ AddWaterLUD | Water ]\nright [ no Water no AddWaterR | Water ] -> [ AddWaterRUD | Water ]\n\nup [ AddWaterLUD | no Water ] -> [ AddWaterLD | ]\nup [ AddWaterRUD | no Water ] -> [ AddWaterRD | ]\n\ndown [ AddWaterLUD | no Water ] -> [ AddWaterLU | ]\ndown [ AddWaterRUD | no Water ] -> [ AddWaterRU | ]\n\ndown [ AddWaterLD | no Water ] -> [ | ]\ndown [ AddWaterRD | no Water ] -> [ | ]\n\nleft [ Water no RemoveWaterL | no Water ] -> [ Water RemoveWaterLUD | ]\nright [ Water no RemoveWaterR | no Water ] -> [ Water RemoveWaterRUD | ]\n\nup [ RemoveWaterLUD | Water ] -> [ RemoveWaterLD | Water ]\nup [ RemoveWaterRUD | Water ] -> [ RemoveWaterRD | Water ]\n\ndown [ RemoveWaterLUD | Water ] -> [ RemoveWaterLU | Water ]\ndown [ RemoveWaterRUD | Water ] -> [ RemoveWaterRU | Water ]\n\ndown [ RemoveWaterLD | Water ] -> [ | Water ]\ndown [ RemoveWaterRD | Water ] -> [ | Water ]\n\nright [ RemoveWaterRU | AddWaterLU ] -> [ RemoveWaterRU | ]\nright [ RemoveWaterRD | AddWaterLD ] -> [ RemoveWaterRD | ]\n\nright [ RemoveWaterRUD | AddWaterLU ] -> [ RemoveWaterRUD | ]\nright [ RemoveWaterRUD | AddWaterLD ] -> [ RemoveWaterRUD | ]\n\nleft [ RemoveWaterLU | AddWaterRU ] -> [ RemoveWaterLU | ]\nleft [ RemoveWaterLD | AddWaterRD ] -> [ RemoveWaterLD | ]\n\nleft [ RemoveWaterLUD | AddWaterRU ] -> [ RemoveWaterLUD | ]\nleft [ RemoveWaterLUD | AddWaterRD ] -> [ RemoveWaterLUD | ]\n\n[ Ball Water ] -> [ Ripples1 Water ]\n[ stationary Ripples3 ] -> [ ]\n[ stationary Ripples2 ] -> [ Ripples3 ]\n[ stationary Ripples1 ] -> [ action Ripples2 ]\n\n(Bunker)\n\nleft [ no Bunker no AddBunkerL | Bunker ] -> [ AddBunkerLUD | Bunker ]\nright [ no Bunker no AddBunkerR | Bunker ] -> [ AddBunkerRUD | Bunker ]\n\nup [ AddBunkerLUD | no Bunker ] -> [ AddBunkerLD | ]\nup [ AddBunkerRUD | no Bunker ] -> [ AddBunkerRD | ]\n\ndown [ AddBunkerLUD | no Bunker ] -> [ AddBunkerLU | ]\ndown [ AddBunkerRUD | no Bunker ] -> [ AddBunkerRU | ]\n\ndown [ AddBunkerLD | no Bunker ] -> [ | ]\ndown [ AddBunkerRD | no Bunker ] -> [ | ]\n\nleft [ Bunker no RemoveBunkerL | no Bunker ] -> [ Bunker RemoveBunkerLUD | ]\nright [ Bunker no RemoveBunkerR | no Bunker ] -> [ Bunker RemoveBunkerRUD | ]\n\nup [ RemoveBunkerLUD | Bunker ] -> [ RemoveBunkerLD | Bunker ]\nup [ RemoveBunkerRUD | Bunker ] -> [ RemoveBunkerRD | Bunker ]\n\ndown [ RemoveBunkerLUD | Bunker ] -> [ RemoveBunkerLU | Bunker ]\ndown [ RemoveBunkerRUD | Bunker ] -> [ RemoveBunkerRU | Bunker ]\n\ndown [ RemoveBunkerLD | Bunker ] -> [ | Bunker ]\ndown [ RemoveBunkerRD | Bunker ] -> [ | Bunker ]\n\nright [ RemoveBunkerRU | AddBunkerLU ] -> [ RemoveBunkerRU | ]\nright [ RemoveBunkerRD | AddBunkerLD ] -> [ RemoveBunkerRD | ]\n\nright [ RemoveBunkerRUD | AddBunkerLU ] -> [ RemoveBunkerRUD | ]\nright [ RemoveBunkerRUD | AddBunkerLD ] -> [ RemoveBunkerRUD | ]\n\nleft [ RemoveBunkerLU | AddBunkerRU ] -> [ RemoveBunkerLU | ]\nleft [ RemoveBunkerLD | AddBunkerRD ] -> [ RemoveBunkerLD | ]\n\nleft [ RemoveBunkerLUD | AddBunkerRU ] -> [ RemoveBunkerLUD | ]\nleft [ RemoveBunkerLUD | AddBunkerRD ] -> [ RemoveBunkerLUD | ]\n\n(Green)\n\nleft [ no Green no AddGreenL | Green ] -> [ AddGreenLUD | Green ]\nright [ no Green no AddGreenR | Green ] -> [ AddGreenRUD | Green ]\n\nup [ AddGreenLUD | no Green ] -> [ AddGreenLD | ]\nup [ AddGreenRUD | no Green ] -> [ AddGreenRD | ]\n\ndown [ AddGreenLUD | no Green ] -> [ AddGreenLU | ]\ndown [ AddGreenRUD | no Green ] -> [ AddGreenRU | ]\n\ndown [ AddGreenLD | no Green ] -> [ | ]\ndown [ AddGreenRD | no Green ] -> [ | ]\n\nleft [ Green no RemoveGreenL | no Green ] -> [ Green RemoveGreenLUD | ]\nright [ Green no RemoveGreenR | no Green ] -> [ Green RemoveGreenRUD | ]\n\nup [ RemoveGreenLUD | Green ] -> [ RemoveGreenLD | Green ]\nup [ RemoveGreenRUD | Green ] -> [ RemoveGreenRD | Green ]\n\ndown [ RemoveGreenLUD | Green ] -> [ RemoveGreenLU | Green ]\ndown [ RemoveGreenRUD | Green ] -> [ RemoveGreenRU | Green ]\n\ndown [ RemoveGreenLD | Green ] -> [ | Green ]\ndown [ RemoveGreenRD | Green ] -> [ | Green ]\n\nright [ RemoveGreenRU | AddGreenLU ] -> [ RemoveGreenRU | ]\nright [ RemoveGreenRD | AddGreenLD ] -> [ RemoveGreenRD | ]\n\nright [ RemoveGreenRUD | AddGreenLU ] -> [ RemoveGreenRUD | ]\nright [ RemoveGreenRUD | AddGreenLD ] -> [ RemoveGreenRUD | ]\n\nleft [ RemoveGreenLU | AddGreenRU ] -> [ RemoveGreenLU | ]\nleft [ RemoveGreenLD | AddGreenRD ] -> [ RemoveGreenLD | ]\n\nleft [ RemoveGreenLUD | AddGreenRU ] -> [ RemoveGreenLUD | ]\nleft [ RemoveGreenLUD | AddGreenRD ] -> [ RemoveGreenLUD | ]\n\n(Border)\n\nright [ Green | blank ] -> [ Green | BorderR blank ]\nleft [ Green | blank ] -> [ Green | BorderL blank ]\nup [ Green | blank ] -> [ Green | BorderU blank ]\ndown [ Green | blank ] -> [ Green | BorderD blank ]\n\nup [ BorderR | no BorderR ] -> [ BorderR RemoveBorderRU | ]\ndown [ BorderR | no BorderR ] -> [ BorderR RemoveBorderRD | ]\nup [ BorderL | no BorderL ] -> [ BorderL RemoveBorderLU | ]\ndown [ BorderL | no BorderL ] -> [ BorderL RemoveBorderLD | ]\nright [ BorderU | no BorderU ] -> [ BorderU RemoveBorderLD | ]\nleft [ BorderU | no BorderU ] -> [ BorderU RemoveBorderRD | ]\nright [ BorderD | no BorderD ] -> [ BorderD RemoveBorderLU | ]\nleft [ BorderD | no BorderD ] -> [ BorderD RemoveBorderRU | ]\n\n(club)\n\n[ > PlayerR | TMs ] -> [ UnmovableR | TMs clubR ] sfx1\n[ > WalkR | TMs ] -> [ UnmovableR | TMs clubR ] sfx1\n[ > PlayerL | TMs ] -> [ UnmovableL | TMs clubL ] sfx1\n[ > WalkL | TMs ] -> [ UnmovableL | TMs clubL ] sfx1\n\n[ > club | no TMs ] -> [ club | ]\nlate [ club UnmovableR ] -> [ clubR UnmovableR ]\nlate [ club UnmovableL ] -> [ clubL UnmovableL ]\nlate [ club TM1WalkR ] -> [ clubR TM1WalkR ]\nlate [ club TM1WalkL ] -> [ clubL TM1WalkL ]\nlate [ club TM2WalkR ] -> [ clubR TM2WalkR ]\nlate [ club TM2WalkL ] -> [ clubL TM2WalkL ]\nlate [ club TM3WalkR ] -> [ clubR TM3WalkR ]\nlate [ club TM3WalkL ] -> [ clubL TM3WalkL ]\n\nlate [ club UnmovableR ] -> [ PlayerR ]\nlate [ club UnmovableL ] -> [ PlayerL ]\n\nlate up [ club TMs no Cursor ] -> [ club TMs Cursor ]\nlate up [ no club TMs Cursor ] -> [ TMs ]\n\n(Hit)\n\n[ Ball Target ] -> [ BallIn Target ]\n\nright [ Bunker OnBunker | BallR ] -> [ Bunker | action Ball ]\nleft [ Bunker OnBunker | BallL ] -> [ Bunker | action Ball ]\nup [ Bunker OnBunker | BallU ] -> [ Bunker | action Ball ]\ndown [ Bunker OnBunker | BallD ] -> [ Bunker | action Ball ]\n\nright [ action Player | Ball no Bunker | no Obstacles ] -> [ Player | BallR | ] sfx0\nleft [ action Player | Ball no Bunker | no Obstacles ] -> [ Player | BallL | ] sfx0\nup [ action Player | Ball no Bunker | no Obstacles ] -> [ Player | BallU | ] sfx0\ndown [ action Player | Ball no Bunker | no Obstacles ] -> [ Player | BallD | ] sfx0\n\nright [ action Player | Ball Bunker | no Obstacles ] -> [ Player | BallR Bunker OnBunker | ] sfx2\nleft [ action Player | Ball Bunker | no Obstacles ] -> [ Player | BallL Bunker OnBunker | ] sfx2\nup [ action Player | Ball Bunker | no Obstacles ] -> [ Player | BallU Bunker OnBunker | ] sfx2\ndown [ action Player | Ball Bunker | no Obstacles ] -> [ Player | BallD Bunker OnBunker | ] sfx2\n\nright [ BallR | no Obstacles ] -> [ > BallR | ]\nright [ BallR | Obstacles ] -> [ action Ball | Obstacles ]\nleft [ BallL | no Obstacles ] -> [ > BallL | ]\nleft [ BallL | Obstacles ] -> [ action Ball | Obstacles ]\nup [ BallU | no Obstacles ] -> [ > BallU | ]\nup [ BallU | Obstacles ] -> [ action Ball | Obstacles ]\ndown [ BallD | no Obstacles ] -> [ > BallD | ]\ndown [ BallD | Obstacles ] -> [ action Ball | Obstacles ]\n\n(Follower)\n\n[ Start RSVR1 no Player ] -> [ Start TM1R RSVR1 ]\n\n[ PlayerR ] -> [ PlayerR RSVR1 ]\n[ WalkR ] -> [ WalkR RSVR1 ]\n[ PlayerL ] -> [ PlayerL RSVL1 ]\n[ WalkL ] -> [ WalkL RSVL1 ]\n\n[ > Leader ] [ RSVR3 ] -> [ > Leader ] [ RSVR1 ]\n[ > Leader ] [ RSVL3 ] -> [ > Leader ] [ RSVL1 ]\n[ > Leader ] [ RSVR2 ] -> [ > Leader ] [ RSVR3 ]\n[ > Leader ] [ RSVL2 ] -> [ > Leader ] [ RSVL3 ]\n[ > Leader ] [ RSVR1 no Player no TM3WalkR ] -> [ > Leader ] [ RSVR2 ]\n[ > Leader ] [ RSVL1 no Player no TM3WalkL no UnmovableR no UnmovableL ] -> [ > Leader ] [ RSVL2 ]\n\nlate [ TM2WalkR RSVR3 ] -> [ TM3WalkR1 RSVR3 ]\nlate [ TM2WalkL RSVL3 ] -> [ TM3WalkL1 RSVL3 ]\nlate [ TM1WalkR RSVR2 ] -> [ TM2WalkR1 RSVR2 ]\nlate [ TM1WalkL RSVL2 ] -> [ TM2WalkL1 RSVL2 ]\nlate [ RSVR1 no Player no TM1WalkR no UnmovableR no UnmovableL ] -> [ TM1WalkR1 RSVR1 ]\nlate [ RSVL1 no Player no TM1WalkL no UnmovableR no UnmovableL ] -> [ TM1WalkL1 RSVL1 ]\n\n(Walking anim)\n\nleft [ > PlayerR ] -> [ > PlayerL ]\nleft [ > WalkR1 ] -> [ > WalkL1 ]\nleft [ > WalkR2 ] -> [ > WalkL2 ]\nleft [ > WalkR3 ] -> [ > WalkL3 ]\nright [ > PlayerL ] -> [ > PlayerR ]\nright [ > WalkL1 ] -> [ > WalkR1 ]\nright [ > WalkL2 ] -> [ > WalkR2 ]\nright [ > WalkL3 ] -> [ > WalkR3 ]\n\n[ stationary TM3walkR3 ] -> [ TM3R ]\n[ stationary TM3WalkR2 ] -> [ TM3walkR3 ]\n[ stationary TM3WalkR1 ] -> [ TM3walkR2 ]\n[ stationary TM3walkL3 ] -> [ TM3L ]\n[ stationary TM3WalkL2 ] -> [ TM3walkL3 ]\n[ stationary TM3WalkL1 ] -> [ TM3walkL2 ]\n\n[ stationary TM2walkR3 ] -> [ TM2R ]\n[ stationary TM2WalkR2 ] -> [ TM2walkR3 ]\n[ stationary TM2WalkR1 ] -> [ TM2walkR2 ]\n[ stationary TM2walkL3 ] -> [ TM2L ]\n[ stationary TM2WalkL2 ] -> [ TM2walkL3 ]\n[ stationary TM2WalkL1 ] -> [ TM2walkL2 ]\n\n[ stationary TM1walkR3 ] -> [ TM1R ]\n[ stationary TM1WalkR2 ] -> [ TM1walkR3 ]\n[ stationary TM1WalkR1 ] -> [ TM1walkR2 ]\n[ stationary TM1walkL3 ] -> [ TM1L ]\n[ stationary TM1WalkL2 ] -> [ TM1walkL3 ]\n[ stationary TM1WalkL1 ] -> [ TM1walkL2 ]\n\n[ > PlayerR ] -> [ > WalkR1 ]\n[ stationary walkR3 ] -> [ PlayerR ]\n[ stationary WalkR2 ] -> [ walkR3 ]\n[ stationary WalkR1 ] -> [ walkR2 ]\n\n[ > PlayerL ] -> [ > WalkL1 ]\n[ stationary walkL3 ] -> [ PlayerL ]\n[ stationary WalkL2 ] -> [ walkL3 ]\n[ stationary WalkL1 ] -> [ walkL2 ]\n\n(Win)\n\nright [ BallIn Target ] [ WinS1 no Win1 ] [ WinS2 no Win2 ] [ RSVText | | ] -> [ BallIn action Target ] [ WinS1 Win1 ] [ WinS2 Win2 ] [ RSVText | | NT ]\n[ Win1 | no Win1 ] -> [ Win1 | RSVWin1 ]\n[ Win2 | no Win2 ] -> [ Win2 | RSVWin2 ]\n[ RSVWin1 ] -> [ Win1 ]\n[ RSVWin2 ] -> [ Win2 ]\n\nright [ NT | | | | | | | | | ] -> [ NT | IT | CT | ET | ST | HT | OT | TT | TT2 | ExT ]\n\n==============\nWINCONDITIONS\n==============\n\nAll WinS1 on Win2\n\n=======\nLEVELS\n=======\n\nmessage Hole 1 of 15\nmessage X to hit.\n______________\n______________\n_1____________\n__s,,,,,,,,,__\n___,,,,,,,o,__\n3__,,,,,,,,,__\n___,,b,,,,,,__\n___,,,,,,,,,__\n____________2_\n______________\n______________\n\nmessage Hole 2 of 15\nmessage Everybody can use the club.\nmessage Press move key towards followers.\n\n______________\n______________\n__1___________\n______o_______\n____,,,,,_____\n3___,,,,,_____\n____,,t,,_____\n____,,b,,_____\n___s,,,,,_____\n_________2____\n______________\n\nmessage Hole 3 of 15\n\n______________\n__1___________\n____,o________\n____,,________\n____,,,,,_____\n3___,,,,,_____\n____,t,,,_____\n____,,,,,_____\n____,b,,,_____\n___s,,,,,_____\n_________2____\n\nmessage Hole 4 of 15\n\n______________\n__1___________\n____,,,,,,____\n___,,,b,,,____\n___,,ttt,,____\n3__,,,o,,,____\n___,,ttt,,____\n___,,,,,,,____\n_________s____\n__________2___\n_____________*\n\nmessage Hole 5 of 15\n\n______________\n__1___________\n____,,,,,,____\n____,,,,,,____\n____,,,ow,____\n3___,,,,w,____\n____,,,,,,____\n____,bt,______\n___s,,,,______\n__________2___\n______________\n\nmessage Hole 6 of 15\n\n______________\n______________\n1_____________\n__,,,,,,,,,___\n__,,,,,,,,,___\n3_t,w,o,w,,___\n__,,tt,tt,,___\n__,bwwwww,,___\n_s,,,,,,,,,___\n___________2__\n______________\n\nmessage Hole 7 of 15\n\n1_____________\n__,,,,,,,,,,,_\n__,,,,,,,,,,,_\n__,,ww,,,ww,,_\n__,,ww,w,ww,,_\n3_,,ww,o,ww,,_\n__t,ww,b,ww,t_\n__,,wwwwwww,,_\n_s,,,,,,,,,,,_\n__,,,,,,,,,,,_\n_____________2\n\nmessage Hole 8 of 15\n\n______________\n1_____________\n__,,,,,,,,,,__\n__,b,,t,,t,,__\n__,,t,,,,,,,__\n3_,,ww,twow,__\n__,,t,,,www,__\n__,,t,t,,,,,__\n_s,,,,,,,,,,__\n____________2_\n______________\n\nmessage Hole 9 of 15\n\n______________\n__1___________\n_______o______\n___,,,,,,_____\n___,b,,,,_____\n3__,,,,,,_____\n___,,,,,,_____\n___,,,,,,_____\n_______s______\n_________2____\n_____________*\n\nmessage Hole 10 of 15\nmessage The bunker could be useful.\n\n______________\n______________\n______________\n_1____________\n___,,,,,,,,,__\n3__,,,,,,,,o__\n__s,b,+,,,,,__\n___,,,,,,,,,__\n____________2_\n______________\n______________\n\nmessage Hole 11 of 15\n\n______________\n_1____________\n_____,,_______\n_____,owwww___\n_____,,,,,,___\n3____,,+,,,___\n___,,,,,w,,___\n___,,,,,,,,___\n___,,,w,,b,___\n__s,,,,,,,,___\n___________2__\n\n\nmessage Hole 12 of 15\n\n______________\n_1____________\n___,,,,www____\n___,o,,,,,____\n___,,,,+++____\n3_s,ttt,+,____\n___,t,,,+,,,__\n___,,,,,,,,,__\n___,b,,,t,,,__\n___,,,,,,,____\n____________2_\n\n(______________\n______________\n_________o____\n______,,,,w___\n____,,,,,,w___\n____,,,b+,w___\n____,,,,,,w___\n____,,,,,,w___\n____,,,,,,w___\n___s,,,,,,w___\n______________\n\n______________\n______________\n__________o___\n_______,,,,w__\n____,,,,,,,w__\n___,,b,,,,,w__\n___,,,,,,,,w__\n___,,,,t,+,w__\n___,,,,,,,,w__\n__s,,,,,,,,w__\n______________)\n\nmessage Hole 13 of 15\n\n_1____________\n______s_______\n__,,,,,,,,,___\n__,,,tbt,,,___\n__,+++,+++,___\n3_,+++,+++,___\n__,+++,+++,___\n__,,+++++,,___\n__,,,wow,,,___\n__,,,www,,,___\n___________2__\n\nmessage Hole 14 of 15\n\n_1____________\n______s_______\n__,,,,,,,,,___\n__,+++b+++,___\n__,+++,+++,___\n3_,w++,++w,___\n__,+++,+++,___\n__,,+++++,,___\n__,,,wow,,,___\n__,,,www,,,___\n___________2__\n\nmessage Hole 15 of 15\n\n______________\n_1____________\n_______,,,,ow_\n____,,,,t,,,w_\n___,,b,,,,,,w_\n3__,,,,,,,,,w_\n___,,,,,,,+,w_\n___,,,,w,,,,w_\n__s,,,,,,,,,w_\n_____________2\n______________\n\n(______________\n______________\n_______s______\n__,,,,,,,,,,,_\n__,,,,,,,,,,,_\n__,,,,,b,,,,,_\n__,,,,,dttttt_\n__ttttt,,,,,o_\n______________\n______________\n______________\n\n______________\n__s,,,,,,,,,__\n___,t,,b,tt,__\n___,,,,t,,,,,_\n___,,,,,,,,,,_\n___,tt,,,tt,,_\n___,o,,t,,,,,_\n___,,,ltd,,,,_\n___,tt,,,tt,,_\n___,,,,,,,,,__\n______________\n\n______________\n_____,,,,,____\n_____,,o,,____\n_____,www,____\n_____,,l,,____\n_____,,r,,____\n_____,,,,,____\n_____,,,,,____\n_____,tbt,____\n____s,,,,,____\n______________)\n\nmessage Thanks for playing!\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", 2, "tick", 2, "tick", 2, "tick", 2, "tick", "tick", 3, "tick", 3, "tick", 3, "tick", 3, "tick", 3, "tick", "tick", 0, "tick", "tick", 0, "tick", 4, "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", 1, "tick", 1, "tick", 1, "tick", 1, "tick", "tick", "tick", 1, "tick", 0, 4, "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "restart", "tick", "tick", "tick", 3, "tick", 2, "tick", "tick", "tick", 3, 2, "tick", 2, "tick", "tick", 2, 3, "tick", 3, "tick", 3, "tick", 3, "tick", "tick", 3, "tick", 0, "tick", "tick", "tick", 4, "tick", "tick", "tick", 2, "tick", 1, "tick", 1, "tick", 1, "tick", 1, "tick", "tick", 1, 0, "tick", 4, "tick", "tick", "tick", "tick", 2, "tick", "tick", 4, "tick", "tick", "tick", "tick", 3, "tick", 3, "tick", 3, "tick", 3, "tick", 3, "tick", 0, "tick", "tick", 0, "tick", 0, "tick", 0, "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", 4, "tick", "tick", 3, "tick", 2, "tick", "tick", 2, "tick", 2, "tick", 2, 1, "tick", 4, "tick", "tick", "tick", "tick", 3, "tick", 3, "tick", 0, "tick", 0, "tick", 0, "tick", 4, "tick", 4, "tick", "tick", "tick", "tick", "tick"], "background blank:0,0,0,0,0,background blank rsvtext:1,0,0,0,0,0,0,0,background blank wins1:2,\nbackground blank borderl removeborderld removeborderlu:3,0,0,0,0,0,0,0,0,0,background blank borderu removeborderrd:4,background green removegreenlud rsvr1 start tm1r:5,addgreenru background blank borderd borderl removeborderlu removeborderru:6,background blank borderl:7,\n7,background blank borderl removeborderld:8,0,0,0,0,0,background blank borderu:9,background green rsvr3 tm3r:10,background green rsvr2 tm2r:11,background green:12,12,background green removegreenld:13,background blank borderd removeborderru:14,\n0,0,0,0,9,12,background green rsvr1 tm1r:15,10,11,15,background blank borderd:16,0,0,0,\n0,9,12,background ball green:17,12,12,10,16,0,0,0,0,9,12,\n12,12,12,11,16,0,0,0,0,9,12,12,12,12,\n15,16,0,0,0,0,9,background green rsvl1 unmovablel:18,12,12,12,10,16,0,\n0,0,0,9,15,background clubr cursor green rsvr2 tm2r:19,10,15,11,16,0,0,0,0,\n9,background flag green:20,background green target:21,12,12,12,16,0,0,0,0,background blank borderu removeborderld:22,background green removegreenru:23,12,\n12,12,background green removegreenrd:24,background blank borderd removeborderlu:25,0,0,0,0,0,background blank borderr removeborderru:26,background blank borderr:27,27,27,background blank borderr removeborderrd:28,\nbackground blank wins2:29,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 2, "1627770891133.2458"] ], [ `gallery game: Indigestion`, - ["title Indigestion\nauthor Le Slo\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\n\nagain_interval 0.05\n\nnoaction\n\nbackground_color #5974eF\n\n========\nOBJECTS\n========\n\nBackground\n#A9E4EF\n\nBorderB\n#4026bf #5046ef #5565ef\n.....\n.....\n.1111\n.....\n00000\n\nBorderBL\n#4026bf #5046ef #5565ef\n.....\n.....\n.11..\n..1..\n0.1..\n\nBorderBR\n#4026bf #5046ef #5565ef\n.....\n.....\n..111\n..1..\n....0\n\n\nBorderL\n#4026bf #5046ef #5565ef\n0....\n0.1..\n0.1..\n0.1..\n0.1..\n\nBorderR\n#4026bf #5046ef #5565ef\n..1.0\n..1.0\n..1.0\n..1.0\n....0\n\n\nBorderT\n#4026bf #5046ef #5565ef\n00000\n.....\n1111.\n.....\n.....\n\nBorderTL\n#4026bf #5046ef #5565ef\n0....\n..1..\n111..\n.....\n.....\n\nBorderTR\n#4026bf #5046ef #5565ef\n..1.0\n..1..\n..11.\n.....\n.....\n\nCornerTR\n#4026bf #5046ef\n00000\n....0\n111.0\n..1.0\n....0\n\nCornerTL\n#4026bf #5046ef\n00000\n0....\n0.11.\n0.1..\n0.1..\n\nCornerBL\n#4026bf #5046ef\n0....\n0.1..\n0.111\n0....\n00000\n\nCornerBR\n#5046ef #4026bf\n..0.1\n..0.1\n.00.1\n....1\n11111\n\nTL\n#4026bf #5046ef\n00000\n0....\n0.111\n0....\n00000\n\nTB\n#4026bf #5046ef\n0.1.0\n0.1.0\n0.1.0\n0...0\n00000\n\nTR\n#4026bf #5046ef\n00000\n....0\n111.0\n....0\n00000\n\nTT\n#4026bf #5046ef\n00000\n0...0\n0.1.0\n0.1.0\n0.1.0\n\nCenter\n#4026bf #5046ef\n00000\n0...0\n0.1.0\n0...0\n00000\n\nPlayerR\n#96d550\n.....\n....0\n....0\n....0\n.....\n\nPlayerL\n#96d550\n.....\n0....\n0....\n0....\n.....\n\nPlayerT\n#96d550\n.000.\n.....\n.....\n.....\n.....\n\nPlayerB\n#96d550\n.....\n.....\n.....\n.....\n.000.\n\nPlayerExtraR\n#A9E4EF\n.....\n....0\n....0\n....0\n.....\n\nPlayerExtraL\n#A9E4EF\n.....\n0....\n0....\n0....\n.....\n\nPlayerExtraT\n#A9E4EF\n.000.\n.....\n.....\n.....\n.....\n\nPlayerExtraB\n#A9E4EF\n.....\n.....\n.....\n.....\n.000.\n\nThingR\n#7A306C #A9E4EF\n.....\n...00\n...1.\n...00\n.....\n\nThingL\n#7A306C #A9E4EF\n.....\n00...\n.1...\n00...\n.....\n\nThingB\n#7A306C #A9E4EF\n.....\n.....\n.....\n.010.\n.0.0.\n\nThingT\n#7A306C #A9E4EF\n.0.0.\n.010.\n.....\n.....\n.....\n\nThingJellyR\n#7A706C #96d550\n.....\n...00\n...1.\n...00\n.....\n\nThingJellyL\n#7A706C #96d550\n.....\n00...\n.1...\n00...\n.....\n\nThingJellyB\n#7A706C #96d550\n.....\n.....\n.....\n.010.\n.0.0.\n\nThingJellyT\n#7A706C #96d550\n.0.0.\n.010.\n.....\n.....\n.....\n\nTargetA\n#7A306C\n.....\n.....\n..0..\n.....\n.....\n\nTargetB\n#E15554\n.....\n.....\n..0..\n.....\n.....\n\nTargetC\n#499167\n.....\n.....\n..0..\n.....\n.....\n\nWall\n#5974eF\n\nPlayer\n#96d550 #499167\n11111\n10001\n10001\n10001\n11111\n\nPlayerExtra\n#499167\n00000\n0...0\n0...0\n0...0\n00000\n\nthing\n#7A306C\n.....\n.000.\n.0.0.\n.000.\n.....\n\nminiCrate\n#E15554\n.....\n.000.\n.0.0.\n.000.\n.....\n\nminiCrateJelly\n#E19564\n.....\n.000.\n.0.0.\n.000.\n.....\n\nthingJelly\n#7A706C\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTargetAJelly\n#7A706C\n.....\n.....\n..0..\n.....\n.....\n\nTargetBJelly\n#E19564\n.....\n.....\n..0..\n.....\n.....\n\nTargetCJelly\n#76b530\n.....\n.....\n..0..\n.....\n.....\n\nmove\ntransparent\n\ncanMovePlayer\ntransparent\n\nstart\ntransparent\n\ncantMovePlayer\n#c97167\n00000\n0...0\n0...0\n0...0\n00000\n\nendanimation\ntransparent\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player and start\n* = PlayerExtra\nO = TargetA\nb = TargetB\nd = TargetC\nx = thing\nc = miniCrate\ne = PlayerExtra and Thing\nf = playerExtra and miniCrate\ng = Player and Thing\nh = player and miniCrate\nj = player and TargetB\nk = playerExtra and TargetB\n\nTarget = TargetA or TargetB or TargetC\nplayers = Player or PlayerExtra\npushable = miniCrate or thing\n\ncorners = CornerTR or CornerTL or CornerBL or CornerBR or TL or TB or TR or TT or center\n\nplayerArt = PlayerR or PlayerL or PlayerT or PlayerB or PlayerExtraR or PlayerExtraL or PlayerExtraT or PlayerExtraB or thingR or ThingL or ThingB or ThingT or ThingJellyR or ThingJellyL or ThingJellyB or ThingJellyT or TargetAJelly or TargetBJelly or TargetCJelly\n\npushableArt = miniCrateJelly or thingJelly\n\n\n\n\n=======\nSOUNDS\n=======\n\nsfx0 91710308\nsfx1 92912108 (out of thing)\nplayer move 99671708 (jelly move)\n\nsfx3 39045308 (wrong move)\nsfx5 51693308 (jelly moveout)\nsfx4 26547308 (jelly move2)\n\nsfx6 12306908 (jello no move)\n\nstartgame 87148308\n\nshowmessage 26755108\nendlevel 33616908\n\nrestart 24552908\nundo 24552908\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncanMovePlayer, endanimation\nTarget\nPlayerExtra\nPlayer, Wall\nthing\nminiCrate\nmove\nstart\n\ncantMovePlayer,\n\nPlayerR\nPlayerL\nPlayerT\nPlayerB\n\nPlayerExtraR\nPlayerExtraL\nPlayerExtraT\nPlayerExtraB\n\npushableArt\n\nThingR\nThingL\nThingB\nThingT\n\nThingJellyR\nThingJellyL\nThingJellyB\nThingJellyT\n\nBorderTR\nBorderTL\nBorderBR\nBorderBL\nBorderT\nBorderB\nBorderR\nBorderL\n\ncorners\n\nTargetAJelly\nTargetBJelly\nTargetCJelly\n\n\n\n======\nRULES \n====== \n\n(----------------------------Aesthetic borders---------------------)\nright[start][wall | no wall] -> [start][wall BorderR | ]\nleft [start][wall | no wall] -> [start][wall BorderL | ]\nup [start][wall | no wall] -> [start][wall BorderT | ]\ndown [start][wall | no wall] -> [start][wall BorderB | ]\n\nright[start][no borderT wall | borderT] -> [start][wall borderTR | borderT]\nleft[start][no borderT wall | borderT] -> [start][wall borderTL | borderT]\nright[start][no borderB wall | borderB] -> [start][wall borderBR | borderB]\nleft [start][no borderB wall | borderB] -> [start][wall borderBL | borderB]\n\n[start][borderT borderB borderR borderL] -> [start][center]\n\n[start][borderT borderB borderR] -> [start][TR]\n[start][borderT borderB borderL] -> [start][TL]\n[start][borderL borderR borderT] -> [start][TT]\n[start][borderL borderR borderB] -> [start][TB]\n\n\n[start][borderT borderR] -> [start][CornerTR]\n[start][borderT borderL] -> [start][CornerTL]\n[start][borderL borderB] -> [start][CornerBL]\n[start][borderR borderB] -> [start][CornerBR]\n\n[start] -> []\n\n[canMovePlayer] -> []\n(-----------------------Player movement--------------------------)\n\n\n[moving player | stationary player] -> [moving player | moving player]\n\n[> players | wall] -> [players | wall]\n\n[moving players | stationary players] -> [ players | players]\n \n (------------------------Pushable movement --------------------)\n \n[> Players pushable | ] -> [ > Players move pushable |]\n[> players] [pushable move] -> [> players] [> pushable canMovePlayer]\n\n\nstartloop\n[moving thing canMovePlayer| stationary thing no canMovePlayer] -> [moving thing canMovePlayer| moving thing canMovePlayer]\n[moving thing | stationary thing] -> [moving thing | moving thing]\n[> pushable canMovePlayer| stationary pushable no canMovePlayer ] -> [> pushable canMovePlayer| > pushable canMovePlayer]\n[> pushable | stationary pushable ] -> [> pushable | > pushable ]\n\n(Move groups of jelly that are not the player)\n[> Pushable stationary PlayerExtra | ] -> [ > Pushable move playerExtra |]\n[> players] [PlayerExtra move] -> [> players] [> PlayerExtra]\n\n[moving playerExtra | playerExtra] -> [moving playerExtra | moving playerExtra]\n[> PlayerExtra stationary pushable | ] -> [ > PlayerExtra move pushable |]\n[> playerExtra] [pushable move] -> [> playerExtra] [> pushable]\nendloop\n\n[> pushable | wall] -> [pushable | wall]\n[> PlayerExtra | wall] -> [PlayerExtra | wall]\n\nstartloop\n[moving thing | stationary thing] -> [ thing | thing]\n[> pushable | stationary pushable] -> [ pushable | pushable]\n\n[stationary PlayerExtra moving pushable no canMovePlayer] -> [PlayerExtra pushable]\n\n[moving PlayerExtra stationary pushable canMovePlayer] -> [PlayerExtra pushable]\n[moving PlayerExtra | stationary PlayerExtra] -> [PlayerExtra | playerExtra]\n\n[stationary pushable | > miniCrate no players] -> [pushable | miniCrate]\nendloop\n\n[canMovePlayer] -> []\n[player] -> [player canMovePlayer]\n\n\nstartloop\n[canMovePlayer | moving pushable no canMovePlayer] -> [canMovePlayer | moving pushable canMovePlayer]\n[canMovePlayer | moving PlayerExtra no canMovePlayer] -> [canMovePlayer | moving PlayerExtra canMovePlayer]\nendloop\n\n[stationary pushable canMovePlayer] -> [pushable]\n[moving PlayerExtra no canMovePlayer] -> [playerExtra]\n[moving pushable no canMovePlayer] -> [pushable]\n\n(_--------------------------------------Sound RULES--------------------------------)\n\n[stationary pushable moving player] -> sfx4\n[stationary pushable moving player] -> sfx4\n\n\n[stationary player cantMovePlayer] -> [stationary player endAnimation]\n[stationary player no cantMovePlayer no endanimation] -> [stationary player cantMovePlayer] again sfx6\n[player cantMovePlayer][player] -> [player cantMovePlayer][player cantMovePlayer]\n\n[> player no pushable | stationary pushable no player] -> sfx3\n\n[endanimation]->[]\n\n(_--------------------------------------LATE RULES--------------------------------)\n\nlate[player | PlayerExtra] -> [player | player] sfx5\n\n\nlate[playerArt] -> []\nlate[pushableArt] -> []\nlate right [player | player] -> [player playerR | player playerL]\nlate down [player | player] -> [player playerB | player playerT]\n\nlate right [playerExtra | playerExtra] -> [playerExtra playerExtraR | playerExtra playerExtraL]\nlate down [playerExtra | playerExtra] -> [playerExtra playerExtraB | playerExtra playerExtraT]\n\nlate right [thing | thing] -> [thing thingR | thing thingL]\nlate down [thing | thing] -> [thing thingB | thing thingT]\n\nlate[miniCrate player] -> [miniCrate miniCrateJelly player]\nlate[thing player] -> [thing thingJelly player]\nlate[thingR player] -> [thingR thingJellyR player]\nlate[thingL player] -> [thingL thingJellyL player]\nlate[thingT player] -> [thingT thingJellyT player]\nlate[thingB player] -> [thingB thingJellyB player]\n\nlate[targetA player] -> [targetA TargetAJelly player]\nlate[TargetB player] -> [targetB TargetBJelly player]\nlate[targetC player] -> [targetC TargetCJelly player]\n\n==============\nWINCONDITIONS\n==============\n\nAll TargetA on thing \nAll TargetB on miniCrate\nAll TargetC on players\n\n======= \nLEVELS\n=======\n\nmessage . [o]o o o o o o o o o o o o o o\n\n#########\n#########\n###.c.###\n##p...b##\n##p...b##\n###.c.###\n#########\n#########\n\nmessage . [o o]o o o o o o o o o o o o o\n\n#########\n#########\n###.c.###\n##p...b##\n##....b##\n###.c.###\n#########\n#########\n\nmessage . [o o o]o o o o o o o o o o o o\n\n########\n########\n###ppb##\n##..b.##\n##.b..##\n##.ccc##\n########\n########\n\nmessage . [o o o o]o o o o o o o o o o o\n\n########\n########\n##.c####\n##.ccc##\n##.b..##\n##bbpp##\n##b.pp##\n########\n########\n\nmessage . [o o o o o] o o o o o o o o o o\n\n###########\n###########\n####.b.####\n###.cfc.###\n##.......##\n##*..*..*##\n##.......##\n###.bpb.###\n####...####\n###########\n###########\n\nmessage . [o o o o o] [o]o o o o o o o o o\n\n#########\n#########\n###.#.###\n##.pppp##\n##x...o##\n##x#.#o##\n#########\n#########\n\nmessage . [o o o o o] [o o]o o o o o o o o\n\n##########\n##########\n####b#x.##\n####.#x.##\n##......##\n##..pp..##\n##....c.##\n######*###\n######**##\n##########\n##########\n\nmessage . [o o o o o] [o o o]o o o o o o o\n\n#########\n#########\n##..o..##\n##.xxgp##\n##..c.p##\n##.bcb.##\n#########\n#########\n\nmessage . [o o o o o] [o o o o]o o o o o o\n\n###########\n###########\n##*k**#####\n###...cc.##\n##.......##\n##..g....##\n###ggg..o##\n###########\n###########\n\nmessage . [o o o o o] [o o o o o] o o o o o\n\n#############\n#############\n##.......####\n##.ggggg..###\n##.g...g..###\n##.gc...cbb##\n##.g...g..###\n##.ggggg..###\n##.......####\n#############\n#############\n\nmessage . [o o o o o] [o o o o o] [o]o o o o\n\n###########\n###########\n##x.o...o##\n##x...o..##\n##*#.ppxx##\n###e.pp..##\n####.....##\n###########\n###########\n\nmessage . [o o o o o] [o o o o o] [o o]o o o\n\n###########\n###########\n##k########\n##******k##\n##*.....###\n##*.xc.p###\n##*.....###\n##f.xx.x###\n##ex....###\n###########\n###########\n\nmessage . [o o o o o] [o o o o o] [o o o]o o\n\n##########\n##########\n##...o..##\n##..p..*##\n##..c.#*##\n##x..x#k##\n###xx#####\n##########\n##########\n\n\nmessage . [o o o o o] [o o o o o] [o o o o]o\n\n\n############\n############\n##....######\n##..c...####\n##p.bbc.####\n##pxxx#.####\n##p.....#*##\n##.x...c**##\n##......####\n############\n############\n\n\nmessage . [o o o o o] [o o o o o] [o o o o o]\n\n##########\n##########\n###....###\n##x.obb###\n##x.p..###\n##x.hh.###\n##..p..###\n###....###\n####..####\n##**fk.###\n##########\n##########\n\nmessage . [o o o o o] [o o o o o] [o o o o o]\n\nmessage . [x x x x x] [x x x x x] [x x x x x]\n\n############\n############\n##...x.xb.##\n##..ppp...##\n##..p.....##\n##..ppp...##\n##..coc.o.##\n############\n############\n\n\nmessage . [ ] [ ] [ ]\n\n\n\n",[0,2,2,3,0,0,0,1,"restart",3,3,0,0,0,2,2,2,2,1,0,0,3],"background wall:0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,background borderbr wall:1,background borderr wall:2,2,2,background bordertr wall:3,0,\n0,0,0,0,0,background borderb wall:4,background:5,5,5,background bordert wall:6,\n0,0,0,0,1,2,background cornerbr wall:7,5,5,5,\n6,0,0,0,0,4,background targetb:8,5,5,5,\n5,6,0,0,0,0,background borderbl borderbr wall:9,background borderl borderr wall:10,background tb wall:11,5,\n5,5,background cornertr wall:12,2,3,0,0,4,5,5,\n5,5,background player playerb playerr thing thingb thingjelly thingjellyb:13,background player playerb playert thing thingjelly thingjellyt thingt:14,background minicrate minicratejelly player playerr playert:15,6,0,0,4,5,\n5,5,5,background player playerl:16,background tl wall:17,16,6,0,0,background borderbl wall:18,\nbackground borderl wall:19,19,19,19,19,background borderbl bordertl wall:20,19,background bordertl wall:21,0,0,\n0,0,0,0,0,0,0,0,0,0,\n",13,"1627769708001.6777"] + ["title Indigestion\nauthor Le Slo\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\n\nagain_interval 0.05\n\nnoaction\n\nbackground_color #5974eF\n\n========\nOBJECTS\n========\n\nBackground\n#A9E4EF\n\nBorderB\n#4026bf #5046ef #5565ef\n.....\n.....\n.1111\n.....\n00000\n\nBorderBL\n#4026bf #5046ef #5565ef\n.....\n.....\n.11..\n..1..\n0.1..\n\nBorderBR\n#4026bf #5046ef #5565ef\n.....\n.....\n..111\n..1..\n....0\n\n\nBorderL\n#4026bf #5046ef #5565ef\n0....\n0.1..\n0.1..\n0.1..\n0.1..\n\nBorderR\n#4026bf #5046ef #5565ef\n..1.0\n..1.0\n..1.0\n..1.0\n....0\n\n\nBorderT\n#4026bf #5046ef #5565ef\n00000\n.....\n1111.\n.....\n.....\n\nBorderTL\n#4026bf #5046ef #5565ef\n0....\n..1..\n111..\n.....\n.....\n\nBorderTR\n#4026bf #5046ef #5565ef\n..1.0\n..1..\n..11.\n.....\n.....\n\nCornerTR\n#4026bf #5046ef\n00000\n....0\n111.0\n..1.0\n....0\n\nCornerTL\n#4026bf #5046ef\n00000\n0....\n0.11.\n0.1..\n0.1..\n\nCornerBL\n#4026bf #5046ef\n0....\n0.1..\n0.111\n0....\n00000\n\nCornerBR\n#5046ef #4026bf\n..0.1\n..0.1\n.00.1\n....1\n11111\n\nTL\n#4026bf #5046ef\n00000\n0....\n0.111\n0....\n00000\n\nTB\n#4026bf #5046ef\n0.1.0\n0.1.0\n0.1.0\n0...0\n00000\n\nTR\n#4026bf #5046ef\n00000\n....0\n111.0\n....0\n00000\n\nTT\n#4026bf #5046ef\n00000\n0...0\n0.1.0\n0.1.0\n0.1.0\n\nCenter\n#4026bf #5046ef\n00000\n0...0\n0.1.0\n0...0\n00000\n\nPlayerR\n#96d550\n.....\n....0\n....0\n....0\n.....\n\nPlayerL\n#96d550\n.....\n0....\n0....\n0....\n.....\n\nPlayerT\n#96d550\n.000.\n.....\n.....\n.....\n.....\n\nPlayerB\n#96d550\n.....\n.....\n.....\n.....\n.000.\n\nPlayerExtraR\n#A9E4EF\n.....\n....0\n....0\n....0\n.....\n\nPlayerExtraL\n#A9E4EF\n.....\n0....\n0....\n0....\n.....\n\nPlayerExtraT\n#A9E4EF\n.000.\n.....\n.....\n.....\n.....\n\nPlayerExtraB\n#A9E4EF\n.....\n.....\n.....\n.....\n.000.\n\nThingR\n#7A306C #A9E4EF\n.....\n...00\n...1.\n...00\n.....\n\nThingL\n#7A306C #A9E4EF\n.....\n00...\n.1...\n00...\n.....\n\nThingB\n#7A306C #A9E4EF\n.....\n.....\n.....\n.010.\n.0.0.\n\nThingT\n#7A306C #A9E4EF\n.0.0.\n.010.\n.....\n.....\n.....\n\nThingJellyR\n#7A706C #96d550\n.....\n...00\n...1.\n...00\n.....\n\nThingJellyL\n#7A706C #96d550\n.....\n00...\n.1...\n00...\n.....\n\nThingJellyB\n#7A706C #96d550\n.....\n.....\n.....\n.010.\n.0.0.\n\nThingJellyT\n#7A706C #96d550\n.0.0.\n.010.\n.....\n.....\n.....\n\nTargetA\n#7A306C\n.....\n.....\n..0..\n.....\n.....\n\nTargetB\n#E15554\n.....\n.....\n..0..\n.....\n.....\n\nTargetC\n#499167\n.....\n.....\n..0..\n.....\n.....\n\nWall\n#5974eF\n\nPlayer\n#96d550 #499167\n11111\n10001\n10001\n10001\n11111\n\nPlayerExtra\n#499167\n00000\n0...0\n0...0\n0...0\n00000\n\nthing\n#7A306C\n.....\n.000.\n.0.0.\n.000.\n.....\n\nminiCrate\n#E15554\n.....\n.000.\n.0.0.\n.000.\n.....\n\nminiCrateJelly\n#E19564\n.....\n.000.\n.0.0.\n.000.\n.....\n\nthingJelly\n#7A706C\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTargetAJelly\n#7A706C\n.....\n.....\n..0..\n.....\n.....\n\nTargetBJelly\n#E19564\n.....\n.....\n..0..\n.....\n.....\n\nTargetCJelly\n#76b530\n.....\n.....\n..0..\n.....\n.....\n\nmove\ntransparent\n\ncanMovePlayer\ntransparent\n\nstart\ntransparent\n\ncantMovePlayer\n#c97167\n00000\n0...0\n0...0\n0...0\n00000\n\nendanimation\ntransparent\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player and start\n* = PlayerExtra\nO = TargetA\nb = TargetB\nd = TargetC\nx = thing\nc = miniCrate\ne = PlayerExtra and Thing\nf = playerExtra and miniCrate\ng = Player and Thing\nh = player and miniCrate\nj = player and TargetB\nk = playerExtra and TargetB\n\nTarget = TargetA or TargetB or TargetC\nplayers = Player or PlayerExtra\npushable = miniCrate or thing\n\ncorners = CornerTR or CornerTL or CornerBL or CornerBR or TL or TB or TR or TT or center\n\nplayerArt = PlayerR or PlayerL or PlayerT or PlayerB or PlayerExtraR or PlayerExtraL or PlayerExtraT or PlayerExtraB or thingR or ThingL or ThingB or ThingT or ThingJellyR or ThingJellyL or ThingJellyB or ThingJellyT or TargetAJelly or TargetBJelly or TargetCJelly\n\npushableArt = miniCrateJelly or thingJelly\n\n\n\n\n=======\nSOUNDS\n=======\n\nsfx0 91710308\nsfx1 92912108 (out of thing)\nplayer move 99671708 (jelly move)\n\nsfx3 39045308 (wrong move)\nsfx5 51693308 (jelly moveout)\nsfx4 26547308 (jelly move2)\n\nsfx6 12306908 (jello no move)\n\nstartgame 87148308\n\nshowmessage 26755108\nendlevel 33616908\n\nrestart 24552908\nundo 24552908\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncanMovePlayer, endanimation\nTarget\nPlayerExtra\nPlayer, Wall\nthing\nminiCrate\nmove\nstart\n\ncantMovePlayer,\n\nPlayerR\nPlayerL\nPlayerT\nPlayerB\n\nPlayerExtraR\nPlayerExtraL\nPlayerExtraT\nPlayerExtraB\n\npushableArt\n\nThingR\nThingL\nThingB\nThingT\n\nThingJellyR\nThingJellyL\nThingJellyB\nThingJellyT\n\nBorderTR\nBorderTL\nBorderBR\nBorderBL\nBorderT\nBorderB\nBorderR\nBorderL\n\ncorners\n\nTargetAJelly\nTargetBJelly\nTargetCJelly\n\n\n\n======\nRULES \n====== \n\n(----------------------------Aesthetic borders---------------------)\nright[start][wall | no wall] -> [start][wall BorderR | ]\nleft [start][wall | no wall] -> [start][wall BorderL | ]\nup [start][wall | no wall] -> [start][wall BorderT | ]\ndown [start][wall | no wall] -> [start][wall BorderB | ]\n\nright[start][no borderT wall | borderT] -> [start][wall borderTR | borderT]\nleft[start][no borderT wall | borderT] -> [start][wall borderTL | borderT]\nright[start][no borderB wall | borderB] -> [start][wall borderBR | borderB]\nleft [start][no borderB wall | borderB] -> [start][wall borderBL | borderB]\n\n[start][borderT borderB borderR borderL] -> [start][center]\n\n[start][borderT borderB borderR] -> [start][TR]\n[start][borderT borderB borderL] -> [start][TL]\n[start][borderL borderR borderT] -> [start][TT]\n[start][borderL borderR borderB] -> [start][TB]\n\n\n[start][borderT borderR] -> [start][CornerTR]\n[start][borderT borderL] -> [start][CornerTL]\n[start][borderL borderB] -> [start][CornerBL]\n[start][borderR borderB] -> [start][CornerBR]\n\n[start] -> []\n\n[canMovePlayer] -> []\n(-----------------------Player movement--------------------------)\n\n\n[moving player | stationary player] -> [moving player | moving player]\n\n[> players | wall] -> [players | wall]\n\n[moving players | stationary players] -> [ players | players]\n \n (------------------------Pushable movement --------------------)\n \n[> Players pushable | ] -> [ > Players move pushable |]\n[> players] [pushable move] -> [> players] [> pushable canMovePlayer]\n\n\nstartloop\n[moving thing canMovePlayer| stationary thing no canMovePlayer] -> [moving thing canMovePlayer| moving thing canMovePlayer]\n[moving thing | stationary thing] -> [moving thing | moving thing]\n[> pushable canMovePlayer| stationary pushable no canMovePlayer ] -> [> pushable canMovePlayer| > pushable canMovePlayer]\n[> pushable | stationary pushable ] -> [> pushable | > pushable ]\n\n(Move groups of jelly that are not the player)\n[> Pushable stationary PlayerExtra | ] -> [ > Pushable move playerExtra |]\n[> players] [PlayerExtra move] -> [> players] [> PlayerExtra]\n\n[moving playerExtra | playerExtra] -> [moving playerExtra | moving playerExtra]\n[> PlayerExtra stationary pushable | ] -> [ > PlayerExtra move pushable |]\n[> playerExtra] [pushable move] -> [> playerExtra] [> pushable]\nendloop\n\n[> pushable | wall] -> [pushable | wall]\n[> PlayerExtra | wall] -> [PlayerExtra | wall]\n\nstartloop\n[moving thing | stationary thing] -> [ thing | thing]\n[> pushable | stationary pushable] -> [ pushable | pushable]\n\n[stationary PlayerExtra moving pushable no canMovePlayer] -> [PlayerExtra pushable]\n\n[moving PlayerExtra stationary pushable canMovePlayer] -> [PlayerExtra pushable]\n[moving PlayerExtra | stationary PlayerExtra] -> [PlayerExtra | playerExtra]\n\n[stationary pushable | > miniCrate no players] -> [pushable | miniCrate]\nendloop\n\n[canMovePlayer] -> []\n[player] -> [player canMovePlayer]\n\n\nstartloop\n[canMovePlayer | moving pushable no canMovePlayer] -> [canMovePlayer | moving pushable canMovePlayer]\n[canMovePlayer | moving PlayerExtra no canMovePlayer] -> [canMovePlayer | moving PlayerExtra canMovePlayer]\nendloop\n\n[stationary pushable canMovePlayer] -> [pushable]\n[moving PlayerExtra no canMovePlayer] -> [playerExtra]\n[moving pushable no canMovePlayer] -> [pushable]\n\n(_--------------------------------------Sound RULES--------------------------------)\n\n[stationary pushable moving player] -> sfx4\n[stationary pushable moving player] -> sfx4\n\n\n[stationary player cantMovePlayer] -> [stationary player endAnimation]\n[stationary player no cantMovePlayer no endanimation] -> [stationary player cantMovePlayer] again sfx6\n[player cantMovePlayer][player] -> [player cantMovePlayer][player cantMovePlayer]\n\n[> player no pushable | stationary pushable no player] -> sfx3\n\n[endanimation]->[]\n\n(_--------------------------------------LATE RULES--------------------------------)\n\nlate[player | PlayerExtra] -> [player | player] sfx5\n\n\nlate[playerArt] -> []\nlate[pushableArt] -> []\nlate right [player | player] -> [player playerR | player playerL]\nlate down [player | player] -> [player playerB | player playerT]\n\nlate right [playerExtra | playerExtra] -> [playerExtra playerExtraR | playerExtra playerExtraL]\nlate down [playerExtra | playerExtra] -> [playerExtra playerExtraB | playerExtra playerExtraT]\n\nlate right [thing | thing] -> [thing thingR | thing thingL]\nlate down [thing | thing] -> [thing thingB | thing thingT]\n\nlate[miniCrate player] -> [miniCrate miniCrateJelly player]\nlate[thing player] -> [thing thingJelly player]\nlate[thingR player] -> [thingR thingJellyR player]\nlate[thingL player] -> [thingL thingJellyL player]\nlate[thingT player] -> [thingT thingJellyT player]\nlate[thingB player] -> [thingB thingJellyB player]\n\nlate[targetA player] -> [targetA TargetAJelly player]\nlate[TargetB player] -> [targetB TargetBJelly player]\nlate[targetC player] -> [targetC TargetCJelly player]\n\n==============\nWINCONDITIONS\n==============\n\nAll TargetA on thing \nAll TargetB on miniCrate\nAll TargetC on players\n\n======= \nLEVELS\n=======\n\nmessage . [o]o o o o o o o o o o o o o o\n\n#########\n#########\n###.c.###\n##p...b##\n##p...b##\n###.c.###\n#########\n#########\n\nmessage . [o o]o o o o o o o o o o o o o\n\n#########\n#########\n###.c.###\n##p...b##\n##....b##\n###.c.###\n#########\n#########\n\nmessage . [o o o]o o o o o o o o o o o o\n\n########\n########\n###ppb##\n##..b.##\n##.b..##\n##.ccc##\n########\n########\n\nmessage . [o o o o]o o o o o o o o o o o\n\n########\n########\n##.c####\n##.ccc##\n##.b..##\n##bbpp##\n##b.pp##\n########\n########\n\nmessage . [o o o o o] o o o o o o o o o o\n\n###########\n###########\n####.b.####\n###.cfc.###\n##.......##\n##*..*..*##\n##.......##\n###.bpb.###\n####...####\n###########\n###########\n\nmessage . [o o o o o] [o]o o o o o o o o o\n\n#########\n#########\n###.#.###\n##.pppp##\n##x...o##\n##x#.#o##\n#########\n#########\n\nmessage . [o o o o o] [o o]o o o o o o o o\n\n##########\n##########\n####b#x.##\n####.#x.##\n##......##\n##..pp..##\n##....c.##\n######*###\n######**##\n##########\n##########\n\nmessage . [o o o o o] [o o o]o o o o o o o\n\n#########\n#########\n##..o..##\n##.xxgp##\n##..c.p##\n##.bcb.##\n#########\n#########\n\nmessage . [o o o o o] [o o o o]o o o o o o\n\n###########\n###########\n##*k**#####\n###...cc.##\n##.......##\n##..g....##\n###ggg..o##\n###########\n###########\n\nmessage . [o o o o o] [o o o o o] o o o o o\n\n#############\n#############\n##.......####\n##.ggggg..###\n##.g...g..###\n##.gc...cbb##\n##.g...g..###\n##.ggggg..###\n##.......####\n#############\n#############\n\nmessage . [o o o o o] [o o o o o] [o]o o o o\n\n###########\n###########\n##x.o...o##\n##x...o..##\n##*#.ppxx##\n###e.pp..##\n####.....##\n###########\n###########\n\nmessage . [o o o o o] [o o o o o] [o o]o o o\n\n###########\n###########\n##k########\n##******k##\n##*.....###\n##*.xc.p###\n##*.....###\n##f.xx.x###\n##ex....###\n###########\n###########\n\nmessage . [o o o o o] [o o o o o] [o o o]o o\n\n##########\n##########\n##...o..##\n##..p..*##\n##..c.#*##\n##x..x#k##\n###xx#####\n##########\n##########\n\n\nmessage . [o o o o o] [o o o o o] [o o o o]o\n\n\n############\n############\n##....######\n##..c...####\n##p.bbc.####\n##pxxx#.####\n##p.....#*##\n##.x...c**##\n##......####\n############\n############\n\n\nmessage . [o o o o o] [o o o o o] [o o o o o]\n\n##########\n##########\n###....###\n##x.obb###\n##x.p..###\n##x.hh.###\n##..p..###\n###....###\n####..####\n##**fk.###\n##########\n##########\n\nmessage . [o o o o o] [o o o o o] [o o o o o]\n\nmessage . [x x x x x] [x x x x x] [x x x x x]\n\n############\n############\n##...x.xb.##\n##..ppp...##\n##..p.....##\n##..ppp...##\n##..coc.o.##\n############\n############\n\n\nmessage . [ ] [ ] [ ]\n\n\n\n", [0, 2, 2, 3, 0, 0, 0, 1, "restart", 3, 3, 0, 0, 0, 2, 2, 2, 2, 1, 0, 0, 3], "background wall:0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,background borderbr wall:1,background borderr wall:2,2,2,background bordertr wall:3,0,\n0,0,0,0,0,background borderb wall:4,background:5,5,5,background bordert wall:6,\n0,0,0,0,1,2,background cornerbr wall:7,5,5,5,\n6,0,0,0,0,4,background targetb:8,5,5,5,\n5,6,0,0,0,0,background borderbl borderbr wall:9,background borderl borderr wall:10,background tb wall:11,5,\n5,5,background cornertr wall:12,2,3,0,0,4,5,5,\n5,5,background player playerb playerr thing thingb thingjelly thingjellyb:13,background player playerb playert thing thingjelly thingjellyt thingt:14,background minicrate minicratejelly player playerr playert:15,6,0,0,4,5,\n5,5,5,background player playerl:16,background tl wall:17,16,6,0,0,background borderbl wall:18,\nbackground borderl wall:19,19,19,19,19,background borderbl bordertl wall:20,19,background bordertl wall:21,0,0,\n0,0,0,0,0,0,0,0,0,0,\n", 13, "1627769708001.6777"] ], [ `gallery game: two worlds`, - ["title Two Worlds\nauthor nebu soku\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\nrealtime_interval 0.1\nagain_interval 0.05\nbackground_color #282818\ntext_color #c8c8a8\nflickscreen 19x16\n\n========\nOBJECTS\n========\n\nBackground \n#282818\n\nOutLine\n#282818\n\nBGBlue\n#c8c8a8 #c1e4f0\n\nBGPink\n#282818 #f8cefd\n\nTarget \n#a0a088\n00.00\n00000\n00000\n.000.\n..0..\n\nGhostTarget \n#a0a088\n00.00\n00000\n00000\n.000.\n..0..\n\nWall \n#a0a088 #686850 #282818\n01000\n02010\n00020\n00000\n11111\n\nWallAbove\n#a0a088\n.....\n.....\n.....\n.....\n00000\n\nWallBelow\n#686850\n00000\n.....\n.....\n.....\n.....\n\nZonePurple\n#282818 #a0a088 #3d1e7e\n00000\n00000\n00100\n00000\n00000\n\nZonePurpleBelow\n#686850 #a0a088\n00000\n.....\n.....\n.....\n.....\n\nZonePink\n#c8c8a8 #ef90e3\n\nPlayerBlueRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850 #54b4d5\n.0000\n.0000\n.0121\n5.33.\n..34.\n\nWalkAnimBR1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850(#4fbbdf #608b8c #d5f5f6 #1d7788 #1a6978 #53aecc)\n.0000\n.0000\n.0121\n5.33.\n.....\n\nWalkAnimBR2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n.4..3\n\nWalkAnimBR3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n..3..\n\nPlayerBlueLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.43..\n\nWalkAnimBL1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.....\n\nWalkAnimBL2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n3..4.\n\nWalkAnimBL3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n..3..\n\nStayBlueRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n..34.\n\nStayBlueLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.43..\n\nPlayerPinkRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818(#de4fdd #8a608b #f6d4f5 #871d86 #741978 #cc52c9 #d153d5)\n.5000\n.0000\n.0121\n..33.\n..34.\n\nWalkAnimPR1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.....\n\nWalkAnimPR2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nWalkAnimPR3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n..3..\n\nPlayerPinkLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.43..\n\nWalkAnimPL1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.....\n\nWalkAnimPL2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nWalkAnimPL3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n..3..\n\nStayPinkRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n..34.\n\nStayPinkLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.43..\n\nFallRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nFallLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nClimbRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nClimbLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nGhostPlayer\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAbove\n#c8c8a8\n.....\n.....\n.....\n.....\n.000.\n\nGhostPlayerAnim1\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAnim2\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAnim3\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nGhostPlayerAnim4\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nGhostPlayerAnim5\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nStuckRigid\nblack\n\nStuckCursor\n#282818\n0...0\n0...0\n0...0\n00000\n.....\n\nStuckCursorAbove\n#282818\n.....\n.....\n.....\n.....\n00000\n\nCrate \n#a0a088 #686850 #282818 #c8c8a8\n01110\n02220\n02020\n00000\n11111\n\nCrateAbove\n#a0a088\n.....\n.....\n.....\n.....\n00000\n\nCrateBelow\n#686850\n00000\n.....\n.....\n.....\n.....\n\nCrateLine\n#a0a088\n.....\n.....\n.....\n00000\n.....\n\nRigidCrate\n#a0a088 #282818\n11111\n11111\n11011\n11111\n11111\n\nRigidU\n#686850\n00000\n.....\n.....\n.....\n.....\n\nRigidUL\n#686850\n....0\n.....\n.....\n.....\n.....\n\nRigidUR\n#686850\n0....\n.....\n.....\n.....\n.....\n\nRigidD\n#a0a088 #686850\n.....\n.....\n.....\n00000\n11111\n\nRigidL\n#a0a088\n0....\n0....\n0....\n0....\n0....\n\nRigidR\n#a0a088\n....0\n....0\n....0\n....0\n....0\n\nRigidLR\n#a0a088\n0...0\n0...0\n0...0\n0...0\n0...0\n\nAboveRigidL\n#a0a088\n.....\n.....\n.....\n0....\n0....\n\nAboveRigidR\n#a0a088\n.....\n.....\n.....\n....0\n....0\n\nAboveRigidLR\n#a0a088\n.....\n.....\n.....\n0...0\n0...0\n\nAboveRigidLRwithR\n#a0a088\n....0\n....0\n....0\n0...0\n0...0\n\nAboveRigidLRwithL\n#a0a088\n0....\n0....\n0....\n0...0\n0...0\n\nrigid1\nblack\n\nrigid2\nblack\n\nBlock \n#c8c8a8 #a0a088 #686850\n12222\n21112\n21112\n21112\n22221\n\nGhostBlock\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim1\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim2\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim3\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\nGhostBlockAnim4\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\nGhostBlockAnim5\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\n\nClimbable\npink\n\nColBGPink\nblack\n.....\n.....\n.....\n.....\n.....\n\nFallBlock\nblack\n\nWinable\nblack\n\nAddPinkLUD\n#c8c8a8\n0....\n.....\n.....\n.....\n0....\n\nAddPinkLU\n#c8c8a8\n0....\n.....\n.....\n.....\n.....\n\nAddPinkLD\n#c8c8a8\n.....\n.....\n.....\n.....\n0....\n\nAddPinkRUD\n#c8c8a8\n....0\n.....\n.....\n.....\n....0\n\nAddPinkRU\n#c8c8a8\n....0\n.....\n.....\n.....\n.....\n\nAddPinkRD\n#c8c8a8\n.....\n.....\n.....\n.....\n....0\n\nRemovePinkLUD\n#282818\n0....\n.....\n.....\n.....\n0....\n\nRemovePinkLU\n#282818\n0....\n.....\n.....\n.....\n.....\n\nRemovePinkLD\n#282818\n.....\n.....\n.....\n.....\n0....\n\nRemovePinkRUD\n#282818\n....0\n.....\n.....\n.....\n....0\n\nRemovePinkRU\n#282818\n....0\n.....\n.....\n.....\n.....\n\nRemovePinkRD\n#282818\n.....\n.....\n.....\n.....\n....0\n\nTransition1\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransition2\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransition3\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransition4\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransition5\n#282818\n00000\n00000\n00000\n00000\n00000\n\nTransition6\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransition7\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransition8\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransition9\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransitionR1\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransitionR2\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransitionR3\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransitionR4\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransitionR5\n#282818\n00000\n00000\n00000\n00000\n00000\n\nTransitionR6\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransitionR7\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransitionR8\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransitionR9\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nHide\n#c8c8a8\n\nWinAnim1\n#c8c8a8\n.....\n.0...\n.....\n.....\n.....\n\nWinAnim2\n#c8c8a8\n.....\n.0...\n.....\n.....\n.....\n\nWinAnim3\n#c8c8a8\n.0...\n000..\n.0...\n...0.\n.....\n\nWinAnim4\n#c8c8a8\n.....\n.0...\n...0.\n..000\n...0.\n\nWinAnim5\n#c8c8a8\n.....\n.....\n.....\n...0.\n.....\n\nWinAnim6\n#c8c8a8\n.....\n.....\n.....\n.....\n.....\n\nLevelStart\n#282818\n\nPressX\n#686850 #282818\n0.0.0\n0.0.0\n00.00\n0.0.0\n0.0.0\n\nTCount1\nblack\n\nTCount2\nblack\n\nTCount3\nblack\n\nTCount4\nblack\n\nTCount5\nblack\n\n=======\nLEGEND\n=======\n\nBlueRight = PlayerBlueRight or WalkAnimBR1 or WalkAnimBR2 or WalkAnimBR3\nBlueLeft = PlayerBlueLeft or WalkAnimBL1 or WalkAnimBL2 or WalkAnimBL3\nPlayerBlue = BlueRight or BlueLeft\n\nPinkRight = PlayerPinkRight or WalkAnimPR1 or WalkAnimPR2 or WalkAnimPR3 \nPinkLeft = PlayerPinkLeft or WalkAnimPL1 or WalkAnimPL2 or WalkAnimPL3\nPlayerPink = PinkRight or PinkLeft\nPlayerFall = PlayerPink or FallRight or FallLeft\n\nPlayer = PlayerBlue or PlayerPink or ClimbRight or ClimbLeft\nPlayerMove = PlayerBlue or PlayerPink\n\nGBlock = GhostBlock or GhostBlockAnim1 or GhostBlockAnim2 or GhostBlockAnim3 or GhostBlockAnim4 or GhostBlockAnim5\n\nGPlayer = GhostPlayer or GhostPlayerAnim1 or GhostPlayerAnim2 or GhostPlayerAnim3 or GhostPlayerAnim4 or GhostPlayerAnim5\nGPAboveAnim = GhostPlayerAnim3 or GhostPlayerAnim4 or GhostPlayerAnim5\n\nRidable = BGPink or Block or ColBGPink\n\nRigids = rigid1 or rigid2\n\nAboveDeco = AboveRigidL or AboveRigidR or RigidL or RigidR or RigidLR\nRigidDeco = RigidU or AboveDeco or RigidD or AboveRigidLR or AboveRigidLRwithR or AboveRigidLRwithL or RigidUL or RigidUR\n\nAddPinkL = AddPinkLUD or AddPinkLU or AddPinkLD\nAddPinkR = AddPinkRUD or AddPinkRU or AddPinkRD\n\nRemovePinkL = RemovePinkLUD or RemovePinkLU or RemovePinkLD\nRemovePinkR = RemovePinkRUD or RemovePinkRU or RemovePinkRD\n\nTransition = Transition1 or Transition2 or Transition3 or Transition4 or Transition5 or Transition6 or Transition7 or Transition8 or Transition9\nTransitionR = TransitionR1 or TransitionR2 or TransitionR3 or TransitionR4 or TransitionR5 or TransitionR6 or TransitionR7 or TransitionR8 or TransitionR9\n\nWinAnim = WinAnim1 or WinAnim2 or WinAnim3 or WinAnim4 or WinAnim5 or WinAnim6\nTCount = TCount1 or TCount2 or TCount3 or TCount4\n\n. = Background\n, = BGBlue\n' = BGPink\n# = Wall and BGBlue\nB = PlayerBlueRight and BGBlue\nP = PlayerPinkRight and ZonePink\n* = Crate and BGBlue\n@ = RigidCrate and rigid1 and BGBlue\n2 = RigidCrate and rigid2 and BGBlue\nO = GhostTarget and ZonePurple\nx = ZonePurple and BGBlue\n+ = ZonePink\n\" = GhostBlock and ZonePurple and BGBlue\n! = GhostPlayer and ZonePurple and BGBlue\n($ = StayBlueRight and BGBlue)\n% = StayPinkRight and ZonePink\n石 = Block and ZonePink\n文 = PressX and BGBlue\n\n=======\nSOUNDS\n=======\n\nPlayerMove move 15203103\nCrate move 80987507\nRigidCrate move 80987507\nBlock action 70814309\nStuckCursor action 20002502 (boo)\nZonePurple move 95712903\nZonePink action 52706103\nTransition1 action 54782309\nTransitionR1 action 54782309\n\nsfx0 30806303\nsfx1 91797700 (fall)\nsfx2 99718300\nsfx3 65480100\nsfx4 80396503 (jump1)\nsfx5 80987507 (block)\nsfx6 45846907\nsfx7 28015305 (jump2)\nsfx8 10636903\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPressX\nTCount, TCount5\nLevelStart\nClimbable\nFallBlock\nWinable\nrigids\nStuckRigid\nBGBlue\nZonePink\nBGPink\nWallBelow\nTarget\nHide\nCrateBelow, ZonePurpleBelow\nPlayer, Wall, Crate, ZonePurple, StayBlueRight, StayBlueLeft, StayPinkRight, StayPinkLeft, FallRight, FallLeft, ClimbRight, ClimbLeft, Block, ColBGPink, RigidCrate\nRemovePinkL\nRemovePinkR\nGhostTarget\nRigidU, RigidUL, RigidUR\nGPlayer\nAboveRigidL, AboveRigidR, RigidL, RigidR, RigidLR\nRigidD, AboveRigidLR, AboveRigidLRwithR, AboveRigidLRwithL\nCrateAbove\nStuckCursorAbove\nWallAbove\nGBlock\nGhostPlayerAbove\nCrateLine\nStuckCursor\nAddPinkL\nAddPinkR\nOutLine\nWinAnim\nTransition, TransitionR\n\n======\nRULES \n====== \n[ > Player ] [ FallBlock ] -> cancel (bug?) \n\n(int)\n\n[ > Player Transition ] -> [ Player Transition ]\n[ ColBGPink ] -> [ ]\n[ BGPink ] -> [ BGPink ColBGPink ]\n[ Background no BGBlue no BGPink no ZonePurple no ZonePink ] -> [ Background OutLine ColBGPink ]\n\nright [ GhostTarget | | | | | | | | | | | | | | | | | | | ] -> [ GhostTarget | | | | | | | | | | | | | | | | | | | Target ]\n\ndown [ ZonePurple | no ZonePurple ] -> [ ZonePurple | ZonePurpleBelow ]\n\nup [ Wall | ] -> [ Wall | WallAbove ]\ndown [ Wall | ] -> [ Wall | WallBelow ]\n\n(Crate-ZonePink)\n\n[ CrateAbove ] -> [ ]\n[ CrateBelow ] -> [ ]\n[ CrateLine ] -> [ ]\nlate up [ | Crate | ] -> [ CrateBelow | Crate CrateLine | CrateAbove ]\n(late down [ Crate | ] -> [ Crate | CrateBelow ])\n\nlate right [ no Crate no ZonePurple no RigidCrate | | | | | | | | | | | | | | | | | | | ZonePink ] -> [ | | | | | | | | | | | | | | | | | | | BGPink ]\nlate right [ PlayerPink ] [ Crate | | | | | | | | | | | | | | | | | | | BGPink ] -> [ PlayerPink ] [ Crate | | | | | | | | | | | | | | | | | | | ZonePink ]\nlate right [ PlayerPink ] [ RigidCrate | | | | | | | | | | | | | | | | | | | BGPink ] -> [ PlayerPink ] [ RigidCrate | | | | | | | | | | | | | | | | | | | ZonePink ]\n\n(Block-GhostBlock)\n\n[ PlayerPink ] [ GBlock ] -> [ PlayerPink ] [ ]\nright [ PlayerPink ] [ | | | | | | | | | | | | | | | | | | | Block ] -> [ PlayerPink ] [ GhostBlock | | | | | | | | | | | | | | | | | | | Block ]\n\n[ PlayerBlue ] [ Block ] -> [ PlayerBlue ] [ ]\nright [ PlayerBlue ] [ GBlock | | | | | | | | | | | | | | | | | | | ] -> [ PlayerBlue ] [ GBlock | | | | | | | | | | | | | | | | | | | Block ]\n\n(Player-GhostPlayer)\n\n[ PlayerPink ] [ GPlayer ] -> [ PlayerPink ] [ ]\nright [ PlayerPink ] [ | | | | | | | | | | | | | | | | | | | PlayerPink ] -> [ PlayerPink ] [ GhostPlayer | | | | | | | | | | | | | | | | | | | PlayerPink ]\n\n(Switch)\n\n[ Target LevelStart ] [ action BlueRight ] [ StayPinkRight ] [ Background ] -> [ Target LevelStart ] [ BlueRight ] [ StayPinkRight ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueRight ] [ StayPinkRight ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueRight ] [ PlayerPinkRight ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueRight ] [ StayPinkLeft ] [ Background ] -> [ Target LevelStart ] [ BlueRight ] [ StayPinkLeft ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueRight ] [ StayPinkLeft ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueRight ] [ PlayerPinkLeft ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueLeft ] [ StayPinkRight ] [ Background ] -> [ Target LevelStart ] [ BlueLeft ] [ StayPinkRight ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueLeft ] [ StayPinkRight ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueLeft ] [ PlayerPinkRight ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueLeft ] [ StayPinkLeft ] [ Background ] -> [ Target LevelStart ] [ BlueLeft ] [ StayPinkLeft ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueLeft ] [ StayPinkLeft ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueLeft ] [ PlayerPinkLeft ] [ Transition6 ]\n\n[ action PlayerPinkRight no FallBlock ] [ StayBlueRight ] [ Background ] -> [ PlayerPinkRight ] [ StayBlueRight ] [ Background action TransitionR1 ]\n[ PlayerPinkRight ] [ StayBlueRight ] [ TransitionR6 ] -> [ StayPinkRight ] [ PlayerBlueRight ] [ TransitionR6 ]\n[ action PlayerPinkRight no FallBlock ] [ StayBlueLeft ] [ Background ] -> [ PlayerPinkRight ] [ StayBlueLeft ] [ Background action TransitionR1 ]\n[ PlayerPinkRight ] [ StayBlueLeft ] [ TransitionR6 ] -> [ StayPinkRight ] [ PlayerBlueLeft ] [ TransitionR6 ]\n[ action PlayerPinkLeft no FallBlock ] [ StayBlueRight ] [ Background ] -> [ PlayerPinkLeft ] [ StayBlueRight ] [ Background action TransitionR1 ]\n[ PlayerPinkLeft ] [ StayBlueRight ] [ TransitionR6 ] -> [ StayPinkLeft ] [ PlayerBlueRight ] [ TransitionR6 ]\n[ action PlayerPinkLeft no FallBlock ] [ StayBlueLeft ] [ Background ] -> [ PlayerPinkLeft ] [ StayBlueLeft ] [ Background action TransitionR1 ]\n[ PlayerPinkLeft ] [ StayBlueLeft ] [ TransitionR6 ] -> [ StayPinkLeft ] [ PlayerBlueLeft ] [ TransitionR6 ]\n\n(Climb)\n\n[ Climbable ] -> [ ]\nhorizontal [ BGPink | ZonePink ] -> [ BGPink Climbable | ZonePink ]\nhorizontal [ BGPink | Block ] -> [ BGPink | Block Climbable ]\nhorizontal [ Block | Block ] -> [ Block Climbable | Block Climbable ]\n\ndown [ ClimbRight | BGPink ] -> [ PlayerPinkRight | BGPink ]\ndown [ ClimbRight | Block ] -> [ PlayerPinkRight | Block ]\nright [ ClimbRight | ZonePink ] -> [ > ClimbRight | ZonePink ]\nright [ ClimbRight | Climbable ] -> [ FallRight | Climbable ]\nright [ > PinkRight no FallBlock | Climbable ] -> [ up ClimbRight | Climbable ] sfx7\n\ndown [ ClimbLeft | BGPink ] -> [ PlayerPinkLeft | BGPink ]\ndown [ ClimbLeft | Block ] -> [ PlayerPinkLeft | Block ]\nleft [ ClimbLeft | ZonePink ] -> [ > ClimbLeft | ZonePink ]\nleft [ ClimbLeft | Climbable ] -> [ FallLeft | Climbable ]\nleft [ > PinkLeft no FallBlock | Climbable ] -> [ up ClimbLeft | Climbable ] sfx7\n\n(Push)\n\n[ > Player | Crate no GPlayer no PressX no TCount ] -> [ > Player | > Crate ]\n[ > Player no FallBlock | Block ] -> [ > Player | > Block ] sfx5\n[ > Player | GBlock no rigids no ZonePurple | no Wall no ZonePurple no OutLine no Crate ] -> [ > Player | > GBlock | ]\n\n[ StuckCursor ] -> [ ] (Stuck effect)\n[ StuckCursorAbove ] -> [ ]\nlate up [ StuckCursor | ] -> [ StuckCursor | StuckCursorAbove ]\n[ > PlayerBlueRight | GPlayer Crate ] -> [ WalkAnimBR1 | GPlayer action StuckCursor Crate ]\n[ > PlayerBlueLeft | GPlayer Crate ] -> [ WalkAnimBL1 | GPlayer action StuckCursor Crate ]\n[ > PlayerBlueRight | StuckRigid ] [ GPlayer ] -> [ WalkAnimBR1 | StuckRigid ] [ GPlayer action StuckCursor ]\n[ > PlayerBlueLeft | StuckRigid ] [ GPlayer ] -> [ WalkAnimBL1 | StuckRigid ] [ GPlayer action StuckCursor ]\n\n[ StuckRigid ] -> [ ]\n[ Rigid1 GPlayer ] [ Rigid1 ] -> [ Rigid1 GPlayer StuckRigid ] [ Rigid1 StuckRigid ]\n[ Rigid2 GPlayer ] [ Rigid2 ] -> [ Rigid2 GPlayer StuckRigid ] [ Rigid2 StuckRigid ]\n\nrigid [ > Player | RigidCrate rigid1 no StuckRigid ] -> [ > Player | > RigidCrate > rigid1 ]\n+ rigid [ moving RigidCrate rigid1 | RigidCrate rigid1 ] -> [ moving RigidCrate moving rigid1 | moving RigidCrate moving rigid1 ]\n+ rigid [ moving rigid1 | GBlock rigid1 ] -> [ moving rigid1 | moving GBlock moving rigid1 ]\n\nrigid [ > Player | RigidCrate rigid2 no StuckRigid ] -> [ > Player | > RigidCrate > rigid2 ]\n+ rigid [ moving RigidCrate rigid2 | RigidCrate rigid2 ] -> [ moving RigidCrate moving rigid2 | moving RigidCrate moving rigid2 ]\n+ rigid [ moving rigid2 | GBlock rigid2 ] -> [ moving rigid2 | moving GBlock moving rigid2 ]\n\n(RigidCrate)\n\n[ RigidDeco ] -> [ ]\nlate down [ rigid1 | no rigid1 ] -> [ rigid1 RigidD | CrateBelow ]\nlate up [ rigid1 | no rigid1 ] -> [ rigid1 | CrateAbove ]\nlate left [ rigid1 | no rigid1 ] -> [ rigid1 RigidL | ]\nlate right [ rigid1 RigidL | no rigid1 ] -> [ rigid1 RigidLR | ]\nlate right [ rigid1 no AboveDeco | no rigid1 ] -> [ rigid1 RigidR | ]\n\nlate up [ RigidL rigid1 | rigid1 no AboveDeco ] -> [ RigidL rigid1 | rigid1 AboveRigidL ]\nlate up [ RigidR rigid1 | rigid1 no AboveDeco ] -> [ RigidR rigid1 | rigid1 AboveRigidR ]\nlate up [ RigidLR rigid1 | rigid1 ] -> [ RigidLR rigid1 | rigid1 AboveRigidLR ]\n\nlate up [ RigidL rigid1 | rigid1 RigidR ] -> [ RigidL rigid1 | rigid1 AboveRigidLRwithR ]\nlate up [ RigidR rigid1 | rigid1 RigidL ] -> [ RigidR rigid1 | rigid1 AboveRigidLRwithL ]\n\nlate up [ rigid1 | CrateAbove ] -> [ rigid1 RigidU | CrateAbove ]\n\nlate left [ rigid1 RigidU | rigid1 no RigidU ] -> [ rigid1 RigidU | rigid1 RigidUL ]\nlate right [ rigid1 RigidU | rigid1 no RigidU ] -> [ rigid1 RigidU | rigid1 RigidUR ]\n\n\nlate down [ rigid2 | no rigid2 ] -> [ rigid2 RigidD | CrateBelow ]\nlate up [ rigid2 | no rigid2 ] -> [ rigid2 | CrateAbove ]\nlate left [ rigid2 | no rigid2 ] -> [ rigid2 RigidL | ]\nlate right [ rigid2 RigidL | no rigid2 ] -> [ rigid2 RigidLR | ]\nlate right [ rigid2 no AboveDeco | no rigid2 ] -> [ rigid2 RigidR | ]\n\nlate up [ RigidL rigid2 | rigid2 no AboveDeco ] -> [ RigidL rigid2 | rigid2 AboveRigidL ]\nlate up [ RigidR rigid2 | rigid2 no AboveDeco ] -> [ RigidR rigid2 | rigid2 AboveRigidR ]\nlate up [ RigidLR rigid2 | rigid2 ] -> [ RigidLR rigid2 | rigid2 AboveRigidLR ]\n\nlate up [ RigidL rigid2 | rigid2 RigidR ] -> [ RigidL rigid2 | rigid2 AboveRigidLRwithR ]\nlate up [ RigidR rigid2 | rigid2 RigidL ] -> [ RigidR rigid2 | rigid2 AboveRigidLRwithL ]\n\nlate up [ rigid2 | CrateAbove ] -> [ rigid2 RigidU | CrateAbove ]\n\nlate left [ rigid2 RigidU | rigid2 no RigidU ] -> [ rigid2 RigidU | rigid2 RigidUL ]\nlate right [ rigid2 RigidU | rigid2 no RigidU ] -> [ rigid2 RigidU | rigid2 RigidUR ]\n\n(Fall)\n\ndown [ FallRight | Ridable ] -> [ PlayerPinkRight | Ridable ]\ndown [ FallRight no Transition | no Ridable ] -> [ > FallRight | ]\ndown [ PinkRight no Transition | no Ridable ] -> [ > FallRight | ] sfx7\n\ndown [ FallLeft | BGPink ] -> [ PlayerPinkLeft | BGPink ]\ndown [ FallLeft | Block ] -> [ PlayerPinkLeft | Block ]\ndown [ FallLeft no Transition | no Ridable ] -> [ > FallLeft | ]\ndown [ PinkLeft no Transition | no Ridable ] -> [ > FallLeft | ] sfx7\n\n[ FallBlock ] -> [ ]\ndown [ Block no Transition | no ColBGPink no Block no Player ] [ PlayerFall ] -> [ > Block | ] [ PlayerFall FallBlock ] sfx1\n\n(ZonePink border)\n\n[ AddPinkL ] -> [ ]\n[ RemovePinkL ] -> [ ]\n[ AddPinkR ] -> [ ]\n[ RemovePinkR ] -> [ ]\n\nlate left [ no ZonePink no AddPinkL | ZonePink ] -> [ AddPinkLUD | ZonePink ]\nlate right [ no ZonePink no AddPinkR | ZonePink ] -> [ AddPinkRUD | ZonePink ]\n\nlate up [ AddPinkLUD | no ZonePink ] -> [ AddPinkLD | ]\nlate up [ AddPinkRUD | no ZonePink ] -> [ AddPinkRD | ]\n\nlate down [ AddPinkLUD | no ZonePink ] -> [ AddPinkLU | ]\nlate down [ AddPinkRUD | no ZonePink ] -> [ AddPinkRU | ]\n\nlate down [ AddPinkLD | no ZonePink ] -> [ | ]\nlate down [ AddPinkRD | no ZonePink ] -> [ | ]\n\nlate left [ ZonePink no RemovePinkL | no ZonePink ] -> [ ZonePink RemovePinkLUD | ]\nlate right [ ZonePink no RemovePinkR | no ZonePink ] -> [ ZonePink RemovePinkRUD | ]\n\nlate up [ RemovePinkLUD | ZonePink ] -> [ RemovePinkLD | ZonePink ]\nlate up [ RemovePinkRUD | ZonePink ] -> [ RemovePinkRD | ZonePink ]\n\nlate down [ RemovePinkLUD | ZonePink ] -> [ RemovePinkLU | ZonePink ]\nlate down [ RemovePinkRUD | ZonePink ] -> [ RemovePinkRU | ZonePink ]\n\nlate down [ RemovePinkLD | ZonePink ] -> [ | ZonePink ]\nlate down [ RemovePinkRD | ZonePink ] -> [ | ZonePink ]\n\nlate right [ RemovePinkRU | AddPinkLU ] -> [ RemovePinkRU | ]\nlate right [ RemovePinkRD | AddPinkLD ] -> [ RemovePinkRD | ]\n\nlate right [ RemovePinkRUD | AddPinkLU ] -> [ RemovePinkRUD | ]\nlate right [ RemovePinkRUD | AddPinkLD ] -> [ RemovePinkRUD | ]\n\nlate left [ RemovePinkLU | AddPinkRU ] -> [ RemovePinkLU | ]\nlate left [ RemovePinkLD | AddPinkRD ] -> [ RemovePinkLD | ]\n\nlate left [ RemovePinkLUD | AddPinkRU ] -> [ RemovePinkLUD | ]\nlate left [ RemovePinkLUD | AddPinkRD ] -> [ RemovePinkLUD | ]\n\nlate left [ AddPinkLUD | RemovePinkRUD ] -> [ | RemovePinkRUD ]\nlate right [ AddPinkRUD | RemovePinkLUD ] -> [ | RemovePinkLUD ]\nlate left [ AddPinkLUD | RemovePinkRU ] -> [ AddPinkLD | RemovePinkRU ]\nlate right [ AddPinkRUD | RemovePinkLU ] -> [ AddPinkRD | RemovePinkLU ]\nlate left [ AddPinkLUD | RemovePinkRD ] -> [ AddPinkLU | RemovePinkRD ]\nlate right [ AddPinkRUD | RemovePinkLD ] -> [ AddPinkRU | RemovePinkLD ]\nlate left [ AddPinkLU | RemovePinkRU ] -> [ | RemovePinkRU ]\nlate right [ AddPinkRU | RemovePinkLU ] -> [ | RemovePinkLU ]\nlate left [ AddPinkLD | RemovePinkRD ] -> [ | RemovePinkRD ]\nlate right [ AddPinkRD | RemovePinkLD ] -> [ | RemovePinkLD ]\n\n(Animation)\n\nright [ > PlayerBlueLeft ] -> [ > PlayerBlueRight ]\nright [ > WalkAnimBL1 ] -> [ > WalkAnimBR1 ]\nright [ > WalkAnimBL2 ] -> [ > WalkAnimBR2 ]\nright [ > WalkAnimBL3 ] -> [ > WalkAnimBR3 ]\n\nleft [ > PlayerBlueRight ] -> [ > PlayerBlueLeft ]\nleft [ > WalkAnimBR1 ] -> [ > WalkAnimBL1 ]\nleft [ > WalkAnimBR2 ] -> [ > WalkAnimBL2 ]\nleft [ > WalkAnimBR3 ] -> [ > WalkAnimBL3 ]\n\n[ WalkAnimBR3 ] -> [ PlayerBlueRight ]\n[ WalkAnimBR2 ] -> [ WalkAnimBR3 ]\n[ WalkAnimBR1 ] -> [ WalkAnimBR2 ]\n[ > PlayerBlueRight ] -> [ > WalkAnimBR1 ]\n\n[ WalkAnimBL3 ] -> [ PlayerBlueLeft ]\n[ WalkAnimBL2 ] -> [ WalkAnimBL3 ]\n[ WalkAnimBL1 ] -> [ WalkAnimBL2 ]\n[ > PlayerBlueLeft ] -> [ > WalkAnimBL1 ]\n\nright [ > PlayerPinkLeft ] -> [ > PlayerPinkRight ]\nright [ > WalkAnimPL1 ] -> [ > WalkAnimPR1 ]\nright [ > WalkAnimPL2 ] -> [ > WalkAnimPR2 ]\nright [ > WalkAnimPL3 ] -> [ > WalkAnimPR3 ]\n\nleft [ > PlayerPinkRight ] -> [ > PlayerPinkLeft ]\nleft [ > WalkAnimPR1 ] -> [ > WalkAnimPL1 ]\nleft [ > WalkAnimPR2 ] -> [ > WalkAnimPL2 ]\nleft [ > WalkAnimPR3 ] -> [ > WalkAnimPL3 ]\n\n[ WalkAnimPR3 ] -> [ PlayerPinkRight ]\n[ WalkAnimPR2 ] -> [ WalkAnimPR3 ]\n[ WalkAnimPR1 ] -> [ WalkAnimPR2 ]\n[ > PlayerPinkRight ] -> [ > WalkAnimPR1 ]\n\n[ WalkAnimPL3 ] -> [ PlayerPinkLeft ]\n[ WalkAnimPL2 ] -> [ WalkAnimPL3 ]\n[ WalkAnimPL1 ] -> [ WalkAnimPL2 ]\n[ > PlayerPinkLeft ] -> [ > WalkAnimPL1 ]\n\n[ stationary Player ] [ stationary GhostBlockAnim5 ] -> [ Player ] [ action GhostBlock ]\n[ stationary Player ] [ stationary GhostBlockAnim4 ] -> [ Player ] [ action GhostBlockAnim5 ]\n[ stationary Player ] [ stationary GhostBlockAnim3 ] -> [ Player ] [ action GhostBlockAnim4 ]\n[ stationary Player ] [ stationary GhostBlockAnim2 ] -> [ Player ] [ action GhostBlockAnim3 ]\n[ stationary Player ] [ stationary GhostBlockAnim1 ] -> [ Player ] [ action GhostBlockAnim2 ]\n[ stationary Player ] [ stationary GhostBlock ] -> [ Player ] [ action GhostBlockAnim1 ]\n\n[ GhostPlayerAbove ] -> [ ]\nlate up [ GPAboveAnim | ] -> [ GPAboveAnim | GhostPlayerAbove ]\n\n[ stationary Player ] [ stationary GhostPlayerAnim5 ] -> [ Player ] [ action GhostPlayer ]\n[ stationary Player ] [ stationary GhostPlayerAnim4 ] -> [ Player ] [ action GhostPlayerAnim5 ]\n[ stationary Player ] [ stationary GhostPlayerAnim3 ] -> [ Player ] [ action GhostPlayerAnim4 ]\n[ stationary Player ] [ stationary GhostPlayerAnim2 ] -> [ Player ] [ action GhostPlayerAnim3 ]\n[ stationary Player ] [ stationary GhostPlayerAnim1 ] -> [ Player ] [ action GhostPlayerAnim2 ]\n[ stationary Player ] [ stationary GhostPlayer ] -> [ Player ] [ action GhostPlayerAnim1 ]\n\n[ Background Transition1 ] [ Background no Transition1 ] -> [ Background Transition1 ] [ Background Transition1 ]\n[ stationary Transition9 ] -> [ ] again\n[ stationary Transition8 ] -> [ action Transition9 ] again\n[ stationary Transition7 ] -> [ action Transition8 ] again\n[ stationary Transition6 ] -> [ action Transition7 ] again\n[ stationary Transition5 ] -> [ action Transition6 ] again\n[ stationary Transition4 ] -> [ action Transition5 ] again\n[ stationary Transition3 ] -> [ action Transition4 ] again\n[ stationary Transition2 ] -> [ action Transition3 ] again\n[ stationary Transition1 ] -> [ action Transition2 ] again\n\n[ Background TransitionR1 ] [ Background no TransitionR1 ] -> [ Background TransitionR1 ] [ Background TransitionR1 ]\n[ stationary TransitionR9 ] -> [ ] again\n[ stationary TransitionR8 ] -> [ action TransitionR9 ] again\n[ stationary TransitionR7 ] -> [ action TransitionR8 ] again\n[ stationary TransitionR6 ] -> [ action TransitionR7 ] again\n[ stationary TransitionR5 ] -> [ action TransitionR6 ] again\n[ stationary TransitionR4 ] -> [ action TransitionR5 ] again\n[ stationary TransitionR3 ] -> [ action TransitionR4 ] again\n[ stationary TransitionR2 ] -> [ action TransitionR3 ] again\n[ stationary TransitionR1 ] -> [ action TransitionR2 ] again\n\n(Level start)\n\n[ Target no LevelStart ] [ Background no Transition ] -> [ Target ] [ Background Transition5 ]\n[ Target Transition9 no LevelStart ] -> [ Target LevelStart ]\n\n(Win)\n\ndown [ PlayerPink no WinAnim Target no FallBlock | Ridable ]-> [ PlayerPink WinAnim1 Target | Ridable ] sfx8\n\n[ WinAnim6 ] [ Background no Transition ] -> [ WinAnim6 ] [ Background Transition1 ]\n[ WinAnim5 ] -> [ WinAnim6 ]\n[ WinAnim4 ] -> [ WinAnim5 ]\n[ WinAnim3 ] -> [ WinAnim4 ]\n[ WinAnim2 ] -> [ WinAnim3 ]\n[ WinAnim1 ] -> [ WinAnim2 ]\n\n[ > Player WinAnim ] -> cancel\n[ action Player WinAnim ] -> cancel\n\n[ Target WinAnim6 Transition5 ] -> [ Target WinAnim6 Transition5 Winable ]\n\n(tutorial)\n\n[ Crate PressX no TCount ] [ PressX ] -> [ Crate TCount1 ] [ ]\n\n[ TCount5 ] -> [ ]\n[ TCount4 ] -> [ TCount5 ] message X or spacebar to switch characters.\n[ TCount3 ] -> [ TCount4 ]\n[ TCount2 ] -> [ TCount3 ]\n[ TCount1 ] -> [ TCount2 ]\n\n[ > Player ] [ Crate PressX ] -> [ Player ] [ Crate PressX ]\n[ > Player ] [ Crate TCount ] -> [ Player ] [ Crate TCount ]\n[ PlayerPink ] [ PressX ] -> [ PlayerPink ] [ ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Winable \n\n======= \nLEVELS\n=======\n\n\n(Tutorial)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,!xxxxxxxxxo,,,..'''p++++++++++'''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxxx\"xxxxxx,,,..'''p+①+①++++++'''.\n.,,,,,,x,xxxoxx,,,..''''''+'++++++'''.\n.,,,xxxxxxxx,xx,,,..'''++++++++'++'''.\n.,,,xxxxxxxxxxx,,,..'''+++①+++++++'''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,!xxxxxxxx,,,,..''''p++++++++''''.\n.,,,,,,,xxxxxx,,,,..'''''''++++++''''.\n.,,,,,,xxxxxox,,,,..''''''+++++++''''.\n.,,,,xxxxxx\",x,,,,..''''++++++①'+''''.\n.,,,,xx\"xxx\"xx,,,,..''''++①+++①++''''.\n.,,,,xx\"x,,,,,,,,,..''''++①+'''''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxx!xxxx,,,,..''''++++p++++''''.\n.,,,,xxxx\"xxxx,,,,..''''++++①++++''''.\n.,,,,x,,,,,,,x,,,,..''''+'''''''+''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxx\"xxx,,,,..''''+++++①+++''''.\n.,,,,xxx\"o,\"xx,,,,..''''+++①+'①++''''.\n.,,,,xx\",xx\"xx,,,,..''''++①'++①++''''.\n.,,,,xx\"xx,,,,,,,,..''''++①++''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxox,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xx!xx\"xx,,,,,,..'''++p++①++''''''.\n.,,,,,,,,,,,,$,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(二つでスタックのチュートリアル)\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxx!xxxoxxx,,,..'''+++%+++++++'''.\n.,,,,xx\"x\"xxxx,,,,..''''+++++++++''''.\n.,,,,#########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,b,*,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.xxxxxxxxxxxxxxxxx..+++++++++++++++++.\n.x,,,,,,,,,,,,,,,x..+'''''''''''''''+.\n.x,,,,,,b,*,,,,,,x..+''''''''+''''''+.\n.x,,xxxxxxxxxxx,,x..+''+++++++++++''+.\n.x,,xxx!xxxoxxx,,x..+''+++%+++++++''+.\n.x,,,xx\"x\"xxxx,,,x..+'''+++++++++'''+.\n.x,,,,,,,,,,,,,,,x..+'''''''''''''''+.\n.xxxxxxxxxxxxxxxxx..+++++++++++++++++.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(一個なら押しのけて登れる)\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,xxxxxx,,,,,..''''''++++++'''''.\n.,,,,,,x\",x\"x,,,,,..''''''++'+++'''''.\n.,,,,,,,!,,,x,,,,,..'''''''%'''+'''''.\n.,,,,#b,,,*,x,,,,,..'''''''''''+'''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,oxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,,,,xxxxxx,,,,..'''''''++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage Reach the heart to win.\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,x!xxxxxox,,,,..''''+p+++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage You can climb one square.\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxox,,,,..''''+石+++++++''''.\n.,,,,,!,,,,,,,,,,,..'''''p'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage You can only push one block at a time.\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxox,,,,..''''+++++++++''''.\n.,,,,x!\"xxxx\"x,,,,..''''+p石++++石+''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 1. Two Worlds\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,!xxx,b,xxxxxo,,..''%+++'''++++++''.\n.,,,xxx,,,xxxx,,,,..'''+++'''++++''''.\n.,,,xxx,,,xxxx,,,,..'''+++'''++++''''.\n.,,,xxx,,,xxx,,,,,..'''+++'''+++'''''.\n.,,,xxxx*x\"xx,,,,,..'''++++'++++'''''.\n.,,,xxx,,,,,,,,,,,..'''+++'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,文,,,,,,,,..'''''''''''''''''.\n.,,,!xxx,,,xxxo,,,..'''%+++'''++++'''.\n.,,,,xxxx*xxx,,,,,..''''++++'+++'''''.\n.,,,,xxx,,,xx,,,,,..''''+++'''++'''''.\n.,,,,,,,,文,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 2. Delivery\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,oxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,,xxxxxx,,,,,..''''''++++++'''''.\n.,,,,,,x!x\"xx,,,,,..''''''+%++++'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,b*,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 3. One-way Tickets\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx,,,,,,,,,,,..''''++'''''''''''.\n.,,,,x\",,,b*,,,,,,..''''++'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx########,,,..''''++'''''''''''.\n.,,,,xxxxxxxxxx,,,..''''++++++++++'''.\n.,,,,xxxxxxxxxx,,,..''''++++++++++'''.\n.,,,,xxx!xxxoxx,,,..''''+++%++++++'''.\n.,,,,#xx\"x\"xxxx,,,..'''''+++++++++'''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(message Brain training\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,b*,,x\"x,,,,,,,..'''''''+++'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxx!xxxxxxx,,,..'''+++%+++++++'''.\n.,,,xxx,,,,,xxx,,,..'''+++'''''+++'''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxxxxx\"xxxx,,,..'''+++++++++++'''.\n.,,,xxxx\"o,\"xxx,,,..'''++++++'++++'''.\n.,,,xxx\",xx\"xx,,,,..'''++++'+++++''''.\n.,,,,xx\"xx####,,,,..''''+++++''''''''.\n.,,,,######,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(message 2 x 3\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,##,,,,,##,,,,..'''''''''''''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#,\"x\"x\",#,,,,..''''''+++++''''''.\n.,,,,#,,b,*,,#,,,,..'''''''''''''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,xxxxo,,,,,,..''''''+++++''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,xx!xx,,,,,,..''''''++%++''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,##,,,,,##,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 4. 3 x 6\n\n\n......................................\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,b*,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxo,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,!xxxxx,,,,,,..'''''%+++++''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,##########,,,,..'''''''''''''''''.\n.,,,#,,,,,,,,#,,,,..'''''''''''''''''.\n.,,,#,\"!\"x\"x,#,,,,..'''''+p++++''''''.\n.,,,#b,,,*,,,#,,,,..'''''''''''''''''.\n.,,,#,xxxxxx##,,,,..'''''++++++''''''.\n.,,,#,*,,,,,,o,,,,..''''''''''''+''''.\n.,,,#,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,,,,,,,,#,,,,..'''''''''''''''''.\n.,,,##########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 5. Too Small to Climb\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,ox\"#,,,,,,..'''''''+++'''''''.\n.,,,,,,,,,\"#,,,,,,..'''''''''+'''''''.\n.,,,,,,,x,\"#,,,,,,..'''''''+'+'''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,!b*,,,,,,,..'''''''%'''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,b@,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,@,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,oxxx,,,,,,,..''''''++++'''''''.\n.,,,,,#,xxx,,,,,,,..'''''''+++'''''''.\n.,,,,,!,xxx,,,,,,,..'''''%'+++'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 6. I Hope That's Enough\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,xox,,,,,..''''''''++++'''''.\n.,,,,,,,,,xxx\"xx,,..''''''''+++++++''.\n.,,,,,,,,,,,,\"xx,,..''''''''''''+++''.\n.,,######xxxx\"xx,,..''''''''+++++++''.\n.,,#,,,!#x\",,,,,,,..''''''%'++'''''''.\n.,,#,*,,xx\"x,*,*,,..'''''''++++''''''.\n.,,####,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,##,,,,,,b,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 7. The Larger, the Better\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,#,#,#,#,#,#,..'''''''''''''''''.\n.,,,,,xxxxxo,,,,,,..'''''++++++''''''.\n.,,,,,xx\",,,,,,,,,..'''''+++'''''''''.\n.,,,,,xx\",,,,,,,,,..'''''+++'''''''''.\n.,,,,,!x\",@@@@,,,,..'''''%++'''''''''.\n.,#,#,#,#,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,b,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 8. Cut the Screen\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,oxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,@@@@@@@,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"x#x,,,,,..'''''+++++'+'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,x!x\"xxx,,,,,..'''''+%+++++'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,oxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,2222222,,,,,..'''''''''''''''''.\n.,x,,,xxx\"xxx,,,,,..'+'''+++++++'''''.\n.,,,,,@@@@@@@,,,,,..'''''''''''''''''.\n.,,,,,,xxxx!x,,,,,..''''''++++%+'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 9. Transfer\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.#################..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,xx,,,2b@@@,,o,,..''++''''''''''+''.\n.,,!\",222,@,,,,x,,..''%+''''''''''+''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.#################..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 10. Do You Like Math Puzzles?\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,b,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,\"@#xx#xx#xx#x#..'''+''++++++++'+'.\n.,,\"\"@#xxxxxxxxxx#..''++''++++++++++'.\n.,,\"\"@#xx,xx,xx,o#..''++''++'++'++'+'.\n.,,,,@#!x,xx,xx,x#..''''''%+'++'++'+'.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 11. Haste Makes Waste\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,xxx,,,,,,,..'''''''+++'''''''.\n.,,xxx,,,,,,,xxx,,..''+++'''''''+++''.\n.,,xx\",,@@@,,xox,,..''+++'''''''+++''.\n.,,!x\",,@@@,,xxx,,..''%++'''''''+++''.\n.,,###,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 12. Neither Road Leads to Rome\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,#############,,,..'''''''''''''''''.\n.,#,,,,!\"\"\"x\"x###,..''''''%+++++++++'.\n.,#b@@,,,,,,,,xo#,..'''''''''''''+++'.\n.,#,,,,xxxxxx,xx#,..''''''++++++'+++'.\n.,#,,,,,,,,,,,###,..'''''''''''''''''.\n.,#############,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 13. This Elevator Will Be Taking No Passengers\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,o\"\"\"\"\",,,,,,..'''''++++++''''''.\n.,,b*,,\"\"\"\"\",,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.####xxx,,,xxx####..''''+++'''+++''''.\n.,,,,xxx@@@xxx,,,,..''''+++'''+++''''.\n.,,,,xxx@@@xxx,,,,..''''+++'''+++''''.\n.,,,,xxx,,,xxx,,,,..''''+++'''+++''''.\n.,,,,xxx,,,xxx,,,,..''''+++'''+++''''.\n.,,,,x!x,,,xxx,,,,..''''+%+'''+++''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................)\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx\"\"\"\"\"xx,,,,..''''+++++++++''''.\n.,b*,xx\"\"\"\"\"xx,,,,..''''+++++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#oxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#,xx@@@xxx#,,,..'''''++'''+++''''.\n.,,,#xxx@@@xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#x!x,,,xxx#,,,..''''+%+'''+++''''.\n.,,,###,,,,,###,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,xxxx\"\"\"xx,,,,..''''+++++++++''''.\n.,,,,xxx\"\"\"\"xx,,,,..''''+++++++++''''.\n.,b*,xx,\"\"\"\"xx,,,,..''''++'++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#oxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#,xx@@@xxx#,,,..'''''++'''+++''''.\n.,,,#xxx@@@xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#x!x,,,xxx#,,,..''''+%+'''+++''''.\n.,,,###,,,,,###,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 14. 3 x 21\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,#,,xxx\"\"\"o,,..''''''''+++++++''.\n.,,,,@@@,xxx\"\"\",,,..''''''''++++++'''.\n.,,,,@@@#\"\"\"\"\"\",,,..''''''''++++++'''.\n.,,,#@@@,\"\"\"\"\"\",,,..''''''''++++++'''.\n.,,,,@@@,\"\"\"\"\"\",#,..''''''''++++++'''.\n.,,,,@@@,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#,,,,b,,22,,,,..'''''''''''''''''.\n.,,,x!,,,,,,,2,,,,..'''+%''''''''''''.\n.,,,,#,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,#,#,#,#,#,..'''''''''''''''''.\n.,,,,,#,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\nmessage Thanks for playing!\n\n\n(......................................\n.,,,,,#,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#o,b,#,,,,,,..''''''+''''''''''.\n.,,,,,,,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#,*,*#,,,,,,..'''''''''''''''''.\n.,,,,,#,@@@#,,,,,,..'''''''''''''''''.\n.,,,,,#,@@@##,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,##,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,x,,#,,,,,..''''''''%''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,b,,,,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,o,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,\",,,,,,#,,..'''''''+'''''''''.\n.,*,*,*,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,#,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,@@,@@@#,,,,,,#,,..'''''''''''''''''.\n.,@@,,@@,,,,,,,,,,..'''''''''''''''''.\n.,@@@@@@#,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,#,!,#,#,,..''''''''''%''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,##!######,,,,..''''''%''''''''''.\n.,,,,#,,,,,,o#,,,,..'''''''''''+'''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#,,@b2,,#,,,,..'''''''+'+'''''''.\n.,,,,#,@@,22,#,,,,..''''''++'++''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,x\"\"\"x,,,,,,..''''''+++++''''''.\n.,,,,,,\"\"\"\"\",,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,#,xxx,,,,,oxx,#,..'''+++'''''+++'''.\n.,#,xxx,222,xxx,#,..'''+++'''''+++'''.\n.,#,xxx,,,,,xxx,#,..'''+++'''''+++'''.\n.,#,xxx,@@,,xxx,#,..'''+++'''''+++'''.\n.,#,x!x,,,,,xxx,#,..'''+%+'''''+++'''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,\"o,,#,,,..'''''''''++''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#xxx,,,,xxx#,,,..'''+++''''+++''''.\n.,,#xxx,,,,\"xx#,,,..'''+++''''+++''''.\n.,,#xxx,,,,\"xx#,,,..'''+++''''+++''''.\n.,,#xxx,2@,\"xx#,,,..'''+++''''+++''''.\n.,,#!xx22@@\"xx#,,,..'''%++''''+++''''.\n.,,#,,,2,,@,,,#,,,..'''''''''''''''''.\n.,,#,,,2,,@,,,#,,,..'''''''''''''''''.\n.,,#,b,22@@,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n......................................)",["tick","tick","tick","tick","tick","tick","tick","tick",2,"tick",2,"tick","tick",2,"tick","tick","tick",2,"tick",2,"tick","tick","tick","tick","tick","tick","tick",1,"tick","tick",2,"tick","tick","tick",3,"tick","tick","tick","tick",1,"tick",4,"tick","tick","tick",3,"tick",3,"tick","tick","tick",3,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background colbgpink outline:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background bgblue:1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,background bgblue zonepurple:2,background bgblue zonepurplebelow:3,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,2,2,2,3,1,1,1,1,0,0,1,1,1,1,1,1,2,2,background bgblue ghostplayeranim1 zonepurple:4,3,1,1,1,1,0,0,1,\n1,1,1,1,1,2,2,2,3,1,1,1,1,0,0,1,1,1,1,1,1,1,2,3,background bgblue stayblueleft:5,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,2,background bgblue crateabove zonepurplebelow:6,background bgblue crate crateline:7,background bgblue cratebelow:8,1,1,1,0,0,1,1,1,1,1,1,2,2,2,3,1,1,1,\n1,0,0,1,1,1,1,1,1,2,2,2,3,1,1,1,1,0,0,1,1,1,1,1,1,2,3,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,background ghosttarget zonepurple:9,3,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background bgpink colbgpink:10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,\n10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,background bgpink climbable colbgpink:11,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,background removepinklud zonepink:12,addpinkru background bgpink climbable colbgpink:13,11,10,10,\n10,10,10,0,0,10,10,10,10,10,10,background zonepink:14,14,background removepinkld zonepink:15,10,10,10,10,10,0,0,10,10,10,10,10,10,14,14,background playerpinkright zonepink:16,10,10,10,10,10,0,0,10,\n10,10,10,10,10,background removepinkru zonepink:17,14,background removepinkrd zonepink:18,10,10,10,10,10,0,0,10,10,10,10,10,10,addpinkld background bgpink climbable colbgpink:19,background removepinkrud zonepink:20,addpinklu background bgpink climbable colbgpink:21,10,10,10,10,10,0,0,10,10,10,10,10,10,10,\n11,10,11,10,10,10,10,0,0,10,10,10,10,10,10,addpinkrd background bgpink climbable colbgpink:22,12,13,background removepinklud removepinkrud zonepink:23,10,10,10,10,0,0,10,10,10,10,10,10,background removepinklu zonepink:24,14,15,11,10,10,10,\n10,0,0,10,10,10,10,10,10,14,14,18,10,10,10,10,10,0,0,10,10,10,10,10,10,14,21,11,10,10,10,10,10,0,0,10,10,10,\n10,10,10,background levelstart removepinkrud target zonepink:25,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,11,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,10,10,10,\n10,10,10,10,10,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n","7","1627769807359.2505"] + ["title Two Worlds\nauthor nebu soku\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\nrealtime_interval 0.1\nagain_interval 0.05\nbackground_color #282818\ntext_color #c8c8a8\nflickscreen 19x16\n\n========\nOBJECTS\n========\n\nBackground \n#282818\n\nOutLine\n#282818\n\nBGBlue\n#c8c8a8 #c1e4f0\n\nBGPink\n#282818 #f8cefd\n\nTarget \n#a0a088\n00.00\n00000\n00000\n.000.\n..0..\n\nGhostTarget \n#a0a088\n00.00\n00000\n00000\n.000.\n..0..\n\nWall \n#a0a088 #686850 #282818\n01000\n02010\n00020\n00000\n11111\n\nWallAbove\n#a0a088\n.....\n.....\n.....\n.....\n00000\n\nWallBelow\n#686850\n00000\n.....\n.....\n.....\n.....\n\nZonePurple\n#282818 #a0a088 #3d1e7e\n00000\n00000\n00100\n00000\n00000\n\nZonePurpleBelow\n#686850 #a0a088\n00000\n.....\n.....\n.....\n.....\n\nZonePink\n#c8c8a8 #ef90e3\n\nPlayerBlueRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850 #54b4d5\n.0000\n.0000\n.0121\n5.33.\n..34.\n\nWalkAnimBR1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850(#4fbbdf #608b8c #d5f5f6 #1d7788 #1a6978 #53aecc)\n.0000\n.0000\n.0121\n5.33.\n.....\n\nWalkAnimBR2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n.4..3\n\nWalkAnimBR3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n..3..\n\nPlayerBlueLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.43..\n\nWalkAnimBL1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.....\n\nWalkAnimBL2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n3..4.\n\nWalkAnimBL3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n..3..\n\nStayBlueRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n..34.\n\nStayBlueLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.43..\n\nPlayerPinkRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818(#de4fdd #8a608b #f6d4f5 #871d86 #741978 #cc52c9 #d153d5)\n.5000\n.0000\n.0121\n..33.\n..34.\n\nWalkAnimPR1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.....\n\nWalkAnimPR2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nWalkAnimPR3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n..3..\n\nPlayerPinkLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.43..\n\nWalkAnimPL1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.....\n\nWalkAnimPL2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nWalkAnimPL3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n..3..\n\nStayPinkRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n..34.\n\nStayPinkLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.43..\n\nFallRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nFallLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nClimbRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nClimbLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nGhostPlayer\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAbove\n#c8c8a8\n.....\n.....\n.....\n.....\n.000.\n\nGhostPlayerAnim1\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAnim2\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAnim3\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nGhostPlayerAnim4\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nGhostPlayerAnim5\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nStuckRigid\nblack\n\nStuckCursor\n#282818\n0...0\n0...0\n0...0\n00000\n.....\n\nStuckCursorAbove\n#282818\n.....\n.....\n.....\n.....\n00000\n\nCrate \n#a0a088 #686850 #282818 #c8c8a8\n01110\n02220\n02020\n00000\n11111\n\nCrateAbove\n#a0a088\n.....\n.....\n.....\n.....\n00000\n\nCrateBelow\n#686850\n00000\n.....\n.....\n.....\n.....\n\nCrateLine\n#a0a088\n.....\n.....\n.....\n00000\n.....\n\nRigidCrate\n#a0a088 #282818\n11111\n11111\n11011\n11111\n11111\n\nRigidU\n#686850\n00000\n.....\n.....\n.....\n.....\n\nRigidUL\n#686850\n....0\n.....\n.....\n.....\n.....\n\nRigidUR\n#686850\n0....\n.....\n.....\n.....\n.....\n\nRigidD\n#a0a088 #686850\n.....\n.....\n.....\n00000\n11111\n\nRigidL\n#a0a088\n0....\n0....\n0....\n0....\n0....\n\nRigidR\n#a0a088\n....0\n....0\n....0\n....0\n....0\n\nRigidLR\n#a0a088\n0...0\n0...0\n0...0\n0...0\n0...0\n\nAboveRigidL\n#a0a088\n.....\n.....\n.....\n0....\n0....\n\nAboveRigidR\n#a0a088\n.....\n.....\n.....\n....0\n....0\n\nAboveRigidLR\n#a0a088\n.....\n.....\n.....\n0...0\n0...0\n\nAboveRigidLRwithR\n#a0a088\n....0\n....0\n....0\n0...0\n0...0\n\nAboveRigidLRwithL\n#a0a088\n0....\n0....\n0....\n0...0\n0...0\n\nrigid1\nblack\n\nrigid2\nblack\n\nBlock \n#c8c8a8 #a0a088 #686850\n12222\n21112\n21112\n21112\n22221\n\nGhostBlock\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim1\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim2\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim3\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\nGhostBlockAnim4\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\nGhostBlockAnim5\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\n\nClimbable\npink\n\nColBGPink\nblack\n.....\n.....\n.....\n.....\n.....\n\nFallBlock\nblack\n\nWinable\nblack\n\nAddPinkLUD\n#c8c8a8\n0....\n.....\n.....\n.....\n0....\n\nAddPinkLU\n#c8c8a8\n0....\n.....\n.....\n.....\n.....\n\nAddPinkLD\n#c8c8a8\n.....\n.....\n.....\n.....\n0....\n\nAddPinkRUD\n#c8c8a8\n....0\n.....\n.....\n.....\n....0\n\nAddPinkRU\n#c8c8a8\n....0\n.....\n.....\n.....\n.....\n\nAddPinkRD\n#c8c8a8\n.....\n.....\n.....\n.....\n....0\n\nRemovePinkLUD\n#282818\n0....\n.....\n.....\n.....\n0....\n\nRemovePinkLU\n#282818\n0....\n.....\n.....\n.....\n.....\n\nRemovePinkLD\n#282818\n.....\n.....\n.....\n.....\n0....\n\nRemovePinkRUD\n#282818\n....0\n.....\n.....\n.....\n....0\n\nRemovePinkRU\n#282818\n....0\n.....\n.....\n.....\n.....\n\nRemovePinkRD\n#282818\n.....\n.....\n.....\n.....\n....0\n\nTransition1\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransition2\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransition3\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransition4\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransition5\n#282818\n00000\n00000\n00000\n00000\n00000\n\nTransition6\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransition7\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransition8\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransition9\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransitionR1\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransitionR2\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransitionR3\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransitionR4\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransitionR5\n#282818\n00000\n00000\n00000\n00000\n00000\n\nTransitionR6\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransitionR7\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransitionR8\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransitionR9\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nHide\n#c8c8a8\n\nWinAnim1\n#c8c8a8\n.....\n.0...\n.....\n.....\n.....\n\nWinAnim2\n#c8c8a8\n.....\n.0...\n.....\n.....\n.....\n\nWinAnim3\n#c8c8a8\n.0...\n000..\n.0...\n...0.\n.....\n\nWinAnim4\n#c8c8a8\n.....\n.0...\n...0.\n..000\n...0.\n\nWinAnim5\n#c8c8a8\n.....\n.....\n.....\n...0.\n.....\n\nWinAnim6\n#c8c8a8\n.....\n.....\n.....\n.....\n.....\n\nLevelStart\n#282818\n\nPressX\n#686850 #282818\n0.0.0\n0.0.0\n00.00\n0.0.0\n0.0.0\n\nTCount1\nblack\n\nTCount2\nblack\n\nTCount3\nblack\n\nTCount4\nblack\n\nTCount5\nblack\n\n=======\nLEGEND\n=======\n\nBlueRight = PlayerBlueRight or WalkAnimBR1 or WalkAnimBR2 or WalkAnimBR3\nBlueLeft = PlayerBlueLeft or WalkAnimBL1 or WalkAnimBL2 or WalkAnimBL3\nPlayerBlue = BlueRight or BlueLeft\n\nPinkRight = PlayerPinkRight or WalkAnimPR1 or WalkAnimPR2 or WalkAnimPR3 \nPinkLeft = PlayerPinkLeft or WalkAnimPL1 or WalkAnimPL2 or WalkAnimPL3\nPlayerPink = PinkRight or PinkLeft\nPlayerFall = PlayerPink or FallRight or FallLeft\n\nPlayer = PlayerBlue or PlayerPink or ClimbRight or ClimbLeft\nPlayerMove = PlayerBlue or PlayerPink\n\nGBlock = GhostBlock or GhostBlockAnim1 or GhostBlockAnim2 or GhostBlockAnim3 or GhostBlockAnim4 or GhostBlockAnim5\n\nGPlayer = GhostPlayer or GhostPlayerAnim1 or GhostPlayerAnim2 or GhostPlayerAnim3 or GhostPlayerAnim4 or GhostPlayerAnim5\nGPAboveAnim = GhostPlayerAnim3 or GhostPlayerAnim4 or GhostPlayerAnim5\n\nRidable = BGPink or Block or ColBGPink\n\nRigids = rigid1 or rigid2\n\nAboveDeco = AboveRigidL or AboveRigidR or RigidL or RigidR or RigidLR\nRigidDeco = RigidU or AboveDeco or RigidD or AboveRigidLR or AboveRigidLRwithR or AboveRigidLRwithL or RigidUL or RigidUR\n\nAddPinkL = AddPinkLUD or AddPinkLU or AddPinkLD\nAddPinkR = AddPinkRUD or AddPinkRU or AddPinkRD\n\nRemovePinkL = RemovePinkLUD or RemovePinkLU or RemovePinkLD\nRemovePinkR = RemovePinkRUD or RemovePinkRU or RemovePinkRD\n\nTransition = Transition1 or Transition2 or Transition3 or Transition4 or Transition5 or Transition6 or Transition7 or Transition8 or Transition9\nTransitionR = TransitionR1 or TransitionR2 or TransitionR3 or TransitionR4 or TransitionR5 or TransitionR6 or TransitionR7 or TransitionR8 or TransitionR9\n\nWinAnim = WinAnim1 or WinAnim2 or WinAnim3 or WinAnim4 or WinAnim5 or WinAnim6\nTCount = TCount1 or TCount2 or TCount3 or TCount4\n\n. = Background\n, = BGBlue\n' = BGPink\n# = Wall and BGBlue\nB = PlayerBlueRight and BGBlue\nP = PlayerPinkRight and ZonePink\n* = Crate and BGBlue\n@ = RigidCrate and rigid1 and BGBlue\n2 = RigidCrate and rigid2 and BGBlue\nO = GhostTarget and ZonePurple\nx = ZonePurple and BGBlue\n+ = ZonePink\n\" = GhostBlock and ZonePurple and BGBlue\n! = GhostPlayer and ZonePurple and BGBlue\n($ = StayBlueRight and BGBlue)\n% = StayPinkRight and ZonePink\n石 = Block and ZonePink\n文 = PressX and BGBlue\n\n=======\nSOUNDS\n=======\n\nPlayerMove move 15203103\nCrate move 80987507\nRigidCrate move 80987507\nBlock action 70814309\nStuckCursor action 20002502 (boo)\nZonePurple move 95712903\nZonePink action 52706103\nTransition1 action 54782309\nTransitionR1 action 54782309\n\nsfx0 30806303\nsfx1 91797700 (fall)\nsfx2 99718300\nsfx3 65480100\nsfx4 80396503 (jump1)\nsfx5 80987507 (block)\nsfx6 45846907\nsfx7 28015305 (jump2)\nsfx8 10636903\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPressX\nTCount, TCount5\nLevelStart\nClimbable\nFallBlock\nWinable\nrigids\nStuckRigid\nBGBlue\nZonePink\nBGPink\nWallBelow\nTarget\nHide\nCrateBelow, ZonePurpleBelow\nPlayer, Wall, Crate, ZonePurple, StayBlueRight, StayBlueLeft, StayPinkRight, StayPinkLeft, FallRight, FallLeft, ClimbRight, ClimbLeft, Block, ColBGPink, RigidCrate\nRemovePinkL\nRemovePinkR\nGhostTarget\nRigidU, RigidUL, RigidUR\nGPlayer\nAboveRigidL, AboveRigidR, RigidL, RigidR, RigidLR\nRigidD, AboveRigidLR, AboveRigidLRwithR, AboveRigidLRwithL\nCrateAbove\nStuckCursorAbove\nWallAbove\nGBlock\nGhostPlayerAbove\nCrateLine\nStuckCursor\nAddPinkL\nAddPinkR\nOutLine\nWinAnim\nTransition, TransitionR\n\n======\nRULES \n====== \n[ > Player ] [ FallBlock ] -> cancel (bug?) \n\n(int)\n\n[ > Player Transition ] -> [ Player Transition ]\n[ ColBGPink ] -> [ ]\n[ BGPink ] -> [ BGPink ColBGPink ]\n[ Background no BGBlue no BGPink no ZonePurple no ZonePink ] -> [ Background OutLine ColBGPink ]\n\nright [ GhostTarget | | | | | | | | | | | | | | | | | | | ] -> [ GhostTarget | | | | | | | | | | | | | | | | | | | Target ]\n\ndown [ ZonePurple | no ZonePurple ] -> [ ZonePurple | ZonePurpleBelow ]\n\nup [ Wall | ] -> [ Wall | WallAbove ]\ndown [ Wall | ] -> [ Wall | WallBelow ]\n\n(Crate-ZonePink)\n\n[ CrateAbove ] -> [ ]\n[ CrateBelow ] -> [ ]\n[ CrateLine ] -> [ ]\nlate up [ | Crate | ] -> [ CrateBelow | Crate CrateLine | CrateAbove ]\n(late down [ Crate | ] -> [ Crate | CrateBelow ])\n\nlate right [ no Crate no ZonePurple no RigidCrate | | | | | | | | | | | | | | | | | | | ZonePink ] -> [ | | | | | | | | | | | | | | | | | | | BGPink ]\nlate right [ PlayerPink ] [ Crate | | | | | | | | | | | | | | | | | | | BGPink ] -> [ PlayerPink ] [ Crate | | | | | | | | | | | | | | | | | | | ZonePink ]\nlate right [ PlayerPink ] [ RigidCrate | | | | | | | | | | | | | | | | | | | BGPink ] -> [ PlayerPink ] [ RigidCrate | | | | | | | | | | | | | | | | | | | ZonePink ]\n\n(Block-GhostBlock)\n\n[ PlayerPink ] [ GBlock ] -> [ PlayerPink ] [ ]\nright [ PlayerPink ] [ | | | | | | | | | | | | | | | | | | | Block ] -> [ PlayerPink ] [ GhostBlock | | | | | | | | | | | | | | | | | | | Block ]\n\n[ PlayerBlue ] [ Block ] -> [ PlayerBlue ] [ ]\nright [ PlayerBlue ] [ GBlock | | | | | | | | | | | | | | | | | | | ] -> [ PlayerBlue ] [ GBlock | | | | | | | | | | | | | | | | | | | Block ]\n\n(Player-GhostPlayer)\n\n[ PlayerPink ] [ GPlayer ] -> [ PlayerPink ] [ ]\nright [ PlayerPink ] [ | | | | | | | | | | | | | | | | | | | PlayerPink ] -> [ PlayerPink ] [ GhostPlayer | | | | | | | | | | | | | | | | | | | PlayerPink ]\n\n(Switch)\n\n[ Target LevelStart ] [ action BlueRight ] [ StayPinkRight ] [ Background ] -> [ Target LevelStart ] [ BlueRight ] [ StayPinkRight ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueRight ] [ StayPinkRight ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueRight ] [ PlayerPinkRight ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueRight ] [ StayPinkLeft ] [ Background ] -> [ Target LevelStart ] [ BlueRight ] [ StayPinkLeft ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueRight ] [ StayPinkLeft ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueRight ] [ PlayerPinkLeft ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueLeft ] [ StayPinkRight ] [ Background ] -> [ Target LevelStart ] [ BlueLeft ] [ StayPinkRight ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueLeft ] [ StayPinkRight ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueLeft ] [ PlayerPinkRight ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueLeft ] [ StayPinkLeft ] [ Background ] -> [ Target LevelStart ] [ BlueLeft ] [ StayPinkLeft ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueLeft ] [ StayPinkLeft ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueLeft ] [ PlayerPinkLeft ] [ Transition6 ]\n\n[ action PlayerPinkRight no FallBlock ] [ StayBlueRight ] [ Background ] -> [ PlayerPinkRight ] [ StayBlueRight ] [ Background action TransitionR1 ]\n[ PlayerPinkRight ] [ StayBlueRight ] [ TransitionR6 ] -> [ StayPinkRight ] [ PlayerBlueRight ] [ TransitionR6 ]\n[ action PlayerPinkRight no FallBlock ] [ StayBlueLeft ] [ Background ] -> [ PlayerPinkRight ] [ StayBlueLeft ] [ Background action TransitionR1 ]\n[ PlayerPinkRight ] [ StayBlueLeft ] [ TransitionR6 ] -> [ StayPinkRight ] [ PlayerBlueLeft ] [ TransitionR6 ]\n[ action PlayerPinkLeft no FallBlock ] [ StayBlueRight ] [ Background ] -> [ PlayerPinkLeft ] [ StayBlueRight ] [ Background action TransitionR1 ]\n[ PlayerPinkLeft ] [ StayBlueRight ] [ TransitionR6 ] -> [ StayPinkLeft ] [ PlayerBlueRight ] [ TransitionR6 ]\n[ action PlayerPinkLeft no FallBlock ] [ StayBlueLeft ] [ Background ] -> [ PlayerPinkLeft ] [ StayBlueLeft ] [ Background action TransitionR1 ]\n[ PlayerPinkLeft ] [ StayBlueLeft ] [ TransitionR6 ] -> [ StayPinkLeft ] [ PlayerBlueLeft ] [ TransitionR6 ]\n\n(Climb)\n\n[ Climbable ] -> [ ]\nhorizontal [ BGPink | ZonePink ] -> [ BGPink Climbable | ZonePink ]\nhorizontal [ BGPink | Block ] -> [ BGPink | Block Climbable ]\nhorizontal [ Block | Block ] -> [ Block Climbable | Block Climbable ]\n\ndown [ ClimbRight | BGPink ] -> [ PlayerPinkRight | BGPink ]\ndown [ ClimbRight | Block ] -> [ PlayerPinkRight | Block ]\nright [ ClimbRight | ZonePink ] -> [ > ClimbRight | ZonePink ]\nright [ ClimbRight | Climbable ] -> [ FallRight | Climbable ]\nright [ > PinkRight no FallBlock | Climbable ] -> [ up ClimbRight | Climbable ] sfx7\n\ndown [ ClimbLeft | BGPink ] -> [ PlayerPinkLeft | BGPink ]\ndown [ ClimbLeft | Block ] -> [ PlayerPinkLeft | Block ]\nleft [ ClimbLeft | ZonePink ] -> [ > ClimbLeft | ZonePink ]\nleft [ ClimbLeft | Climbable ] -> [ FallLeft | Climbable ]\nleft [ > PinkLeft no FallBlock | Climbable ] -> [ up ClimbLeft | Climbable ] sfx7\n\n(Push)\n\n[ > Player | Crate no GPlayer no PressX no TCount ] -> [ > Player | > Crate ]\n[ > Player no FallBlock | Block ] -> [ > Player | > Block ] sfx5\n[ > Player | GBlock no rigids no ZonePurple | no Wall no ZonePurple no OutLine no Crate ] -> [ > Player | > GBlock | ]\n\n[ StuckCursor ] -> [ ] (Stuck effect)\n[ StuckCursorAbove ] -> [ ]\nlate up [ StuckCursor | ] -> [ StuckCursor | StuckCursorAbove ]\n[ > PlayerBlueRight | GPlayer Crate ] -> [ WalkAnimBR1 | GPlayer action StuckCursor Crate ]\n[ > PlayerBlueLeft | GPlayer Crate ] -> [ WalkAnimBL1 | GPlayer action StuckCursor Crate ]\n[ > PlayerBlueRight | StuckRigid ] [ GPlayer ] -> [ WalkAnimBR1 | StuckRigid ] [ GPlayer action StuckCursor ]\n[ > PlayerBlueLeft | StuckRigid ] [ GPlayer ] -> [ WalkAnimBL1 | StuckRigid ] [ GPlayer action StuckCursor ]\n\n[ StuckRigid ] -> [ ]\n[ Rigid1 GPlayer ] [ Rigid1 ] -> [ Rigid1 GPlayer StuckRigid ] [ Rigid1 StuckRigid ]\n[ Rigid2 GPlayer ] [ Rigid2 ] -> [ Rigid2 GPlayer StuckRigid ] [ Rigid2 StuckRigid ]\n\nrigid [ > Player | RigidCrate rigid1 no StuckRigid ] -> [ > Player | > RigidCrate > rigid1 ]\n+ rigid [ moving RigidCrate rigid1 | RigidCrate rigid1 ] -> [ moving RigidCrate moving rigid1 | moving RigidCrate moving rigid1 ]\n+ rigid [ moving rigid1 | GBlock rigid1 ] -> [ moving rigid1 | moving GBlock moving rigid1 ]\n\nrigid [ > Player | RigidCrate rigid2 no StuckRigid ] -> [ > Player | > RigidCrate > rigid2 ]\n+ rigid [ moving RigidCrate rigid2 | RigidCrate rigid2 ] -> [ moving RigidCrate moving rigid2 | moving RigidCrate moving rigid2 ]\n+ rigid [ moving rigid2 | GBlock rigid2 ] -> [ moving rigid2 | moving GBlock moving rigid2 ]\n\n(RigidCrate)\n\n[ RigidDeco ] -> [ ]\nlate down [ rigid1 | no rigid1 ] -> [ rigid1 RigidD | CrateBelow ]\nlate up [ rigid1 | no rigid1 ] -> [ rigid1 | CrateAbove ]\nlate left [ rigid1 | no rigid1 ] -> [ rigid1 RigidL | ]\nlate right [ rigid1 RigidL | no rigid1 ] -> [ rigid1 RigidLR | ]\nlate right [ rigid1 no AboveDeco | no rigid1 ] -> [ rigid1 RigidR | ]\n\nlate up [ RigidL rigid1 | rigid1 no AboveDeco ] -> [ RigidL rigid1 | rigid1 AboveRigidL ]\nlate up [ RigidR rigid1 | rigid1 no AboveDeco ] -> [ RigidR rigid1 | rigid1 AboveRigidR ]\nlate up [ RigidLR rigid1 | rigid1 ] -> [ RigidLR rigid1 | rigid1 AboveRigidLR ]\n\nlate up [ RigidL rigid1 | rigid1 RigidR ] -> [ RigidL rigid1 | rigid1 AboveRigidLRwithR ]\nlate up [ RigidR rigid1 | rigid1 RigidL ] -> [ RigidR rigid1 | rigid1 AboveRigidLRwithL ]\n\nlate up [ rigid1 | CrateAbove ] -> [ rigid1 RigidU | CrateAbove ]\n\nlate left [ rigid1 RigidU | rigid1 no RigidU ] -> [ rigid1 RigidU | rigid1 RigidUL ]\nlate right [ rigid1 RigidU | rigid1 no RigidU ] -> [ rigid1 RigidU | rigid1 RigidUR ]\n\n\nlate down [ rigid2 | no rigid2 ] -> [ rigid2 RigidD | CrateBelow ]\nlate up [ rigid2 | no rigid2 ] -> [ rigid2 | CrateAbove ]\nlate left [ rigid2 | no rigid2 ] -> [ rigid2 RigidL | ]\nlate right [ rigid2 RigidL | no rigid2 ] -> [ rigid2 RigidLR | ]\nlate right [ rigid2 no AboveDeco | no rigid2 ] -> [ rigid2 RigidR | ]\n\nlate up [ RigidL rigid2 | rigid2 no AboveDeco ] -> [ RigidL rigid2 | rigid2 AboveRigidL ]\nlate up [ RigidR rigid2 | rigid2 no AboveDeco ] -> [ RigidR rigid2 | rigid2 AboveRigidR ]\nlate up [ RigidLR rigid2 | rigid2 ] -> [ RigidLR rigid2 | rigid2 AboveRigidLR ]\n\nlate up [ RigidL rigid2 | rigid2 RigidR ] -> [ RigidL rigid2 | rigid2 AboveRigidLRwithR ]\nlate up [ RigidR rigid2 | rigid2 RigidL ] -> [ RigidR rigid2 | rigid2 AboveRigidLRwithL ]\n\nlate up [ rigid2 | CrateAbove ] -> [ rigid2 RigidU | CrateAbove ]\n\nlate left [ rigid2 RigidU | rigid2 no RigidU ] -> [ rigid2 RigidU | rigid2 RigidUL ]\nlate right [ rigid2 RigidU | rigid2 no RigidU ] -> [ rigid2 RigidU | rigid2 RigidUR ]\n\n(Fall)\n\ndown [ FallRight | Ridable ] -> [ PlayerPinkRight | Ridable ]\ndown [ FallRight no Transition | no Ridable ] -> [ > FallRight | ]\ndown [ PinkRight no Transition | no Ridable ] -> [ > FallRight | ] sfx7\n\ndown [ FallLeft | BGPink ] -> [ PlayerPinkLeft | BGPink ]\ndown [ FallLeft | Block ] -> [ PlayerPinkLeft | Block ]\ndown [ FallLeft no Transition | no Ridable ] -> [ > FallLeft | ]\ndown [ PinkLeft no Transition | no Ridable ] -> [ > FallLeft | ] sfx7\n\n[ FallBlock ] -> [ ]\ndown [ Block no Transition | no ColBGPink no Block no Player ] [ PlayerFall ] -> [ > Block | ] [ PlayerFall FallBlock ] sfx1\n\n(ZonePink border)\n\n[ AddPinkL ] -> [ ]\n[ RemovePinkL ] -> [ ]\n[ AddPinkR ] -> [ ]\n[ RemovePinkR ] -> [ ]\n\nlate left [ no ZonePink no AddPinkL | ZonePink ] -> [ AddPinkLUD | ZonePink ]\nlate right [ no ZonePink no AddPinkR | ZonePink ] -> [ AddPinkRUD | ZonePink ]\n\nlate up [ AddPinkLUD | no ZonePink ] -> [ AddPinkLD | ]\nlate up [ AddPinkRUD | no ZonePink ] -> [ AddPinkRD | ]\n\nlate down [ AddPinkLUD | no ZonePink ] -> [ AddPinkLU | ]\nlate down [ AddPinkRUD | no ZonePink ] -> [ AddPinkRU | ]\n\nlate down [ AddPinkLD | no ZonePink ] -> [ | ]\nlate down [ AddPinkRD | no ZonePink ] -> [ | ]\n\nlate left [ ZonePink no RemovePinkL | no ZonePink ] -> [ ZonePink RemovePinkLUD | ]\nlate right [ ZonePink no RemovePinkR | no ZonePink ] -> [ ZonePink RemovePinkRUD | ]\n\nlate up [ RemovePinkLUD | ZonePink ] -> [ RemovePinkLD | ZonePink ]\nlate up [ RemovePinkRUD | ZonePink ] -> [ RemovePinkRD | ZonePink ]\n\nlate down [ RemovePinkLUD | ZonePink ] -> [ RemovePinkLU | ZonePink ]\nlate down [ RemovePinkRUD | ZonePink ] -> [ RemovePinkRU | ZonePink ]\n\nlate down [ RemovePinkLD | ZonePink ] -> [ | ZonePink ]\nlate down [ RemovePinkRD | ZonePink ] -> [ | ZonePink ]\n\nlate right [ RemovePinkRU | AddPinkLU ] -> [ RemovePinkRU | ]\nlate right [ RemovePinkRD | AddPinkLD ] -> [ RemovePinkRD | ]\n\nlate right [ RemovePinkRUD | AddPinkLU ] -> [ RemovePinkRUD | ]\nlate right [ RemovePinkRUD | AddPinkLD ] -> [ RemovePinkRUD | ]\n\nlate left [ RemovePinkLU | AddPinkRU ] -> [ RemovePinkLU | ]\nlate left [ RemovePinkLD | AddPinkRD ] -> [ RemovePinkLD | ]\n\nlate left [ RemovePinkLUD | AddPinkRU ] -> [ RemovePinkLUD | ]\nlate left [ RemovePinkLUD | AddPinkRD ] -> [ RemovePinkLUD | ]\n\nlate left [ AddPinkLUD | RemovePinkRUD ] -> [ | RemovePinkRUD ]\nlate right [ AddPinkRUD | RemovePinkLUD ] -> [ | RemovePinkLUD ]\nlate left [ AddPinkLUD | RemovePinkRU ] -> [ AddPinkLD | RemovePinkRU ]\nlate right [ AddPinkRUD | RemovePinkLU ] -> [ AddPinkRD | RemovePinkLU ]\nlate left [ AddPinkLUD | RemovePinkRD ] -> [ AddPinkLU | RemovePinkRD ]\nlate right [ AddPinkRUD | RemovePinkLD ] -> [ AddPinkRU | RemovePinkLD ]\nlate left [ AddPinkLU | RemovePinkRU ] -> [ | RemovePinkRU ]\nlate right [ AddPinkRU | RemovePinkLU ] -> [ | RemovePinkLU ]\nlate left [ AddPinkLD | RemovePinkRD ] -> [ | RemovePinkRD ]\nlate right [ AddPinkRD | RemovePinkLD ] -> [ | RemovePinkLD ]\n\n(Animation)\n\nright [ > PlayerBlueLeft ] -> [ > PlayerBlueRight ]\nright [ > WalkAnimBL1 ] -> [ > WalkAnimBR1 ]\nright [ > WalkAnimBL2 ] -> [ > WalkAnimBR2 ]\nright [ > WalkAnimBL3 ] -> [ > WalkAnimBR3 ]\n\nleft [ > PlayerBlueRight ] -> [ > PlayerBlueLeft ]\nleft [ > WalkAnimBR1 ] -> [ > WalkAnimBL1 ]\nleft [ > WalkAnimBR2 ] -> [ > WalkAnimBL2 ]\nleft [ > WalkAnimBR3 ] -> [ > WalkAnimBL3 ]\n\n[ WalkAnimBR3 ] -> [ PlayerBlueRight ]\n[ WalkAnimBR2 ] -> [ WalkAnimBR3 ]\n[ WalkAnimBR1 ] -> [ WalkAnimBR2 ]\n[ > PlayerBlueRight ] -> [ > WalkAnimBR1 ]\n\n[ WalkAnimBL3 ] -> [ PlayerBlueLeft ]\n[ WalkAnimBL2 ] -> [ WalkAnimBL3 ]\n[ WalkAnimBL1 ] -> [ WalkAnimBL2 ]\n[ > PlayerBlueLeft ] -> [ > WalkAnimBL1 ]\n\nright [ > PlayerPinkLeft ] -> [ > PlayerPinkRight ]\nright [ > WalkAnimPL1 ] -> [ > WalkAnimPR1 ]\nright [ > WalkAnimPL2 ] -> [ > WalkAnimPR2 ]\nright [ > WalkAnimPL3 ] -> [ > WalkAnimPR3 ]\n\nleft [ > PlayerPinkRight ] -> [ > PlayerPinkLeft ]\nleft [ > WalkAnimPR1 ] -> [ > WalkAnimPL1 ]\nleft [ > WalkAnimPR2 ] -> [ > WalkAnimPL2 ]\nleft [ > WalkAnimPR3 ] -> [ > WalkAnimPL3 ]\n\n[ WalkAnimPR3 ] -> [ PlayerPinkRight ]\n[ WalkAnimPR2 ] -> [ WalkAnimPR3 ]\n[ WalkAnimPR1 ] -> [ WalkAnimPR2 ]\n[ > PlayerPinkRight ] -> [ > WalkAnimPR1 ]\n\n[ WalkAnimPL3 ] -> [ PlayerPinkLeft ]\n[ WalkAnimPL2 ] -> [ WalkAnimPL3 ]\n[ WalkAnimPL1 ] -> [ WalkAnimPL2 ]\n[ > PlayerPinkLeft ] -> [ > WalkAnimPL1 ]\n\n[ stationary Player ] [ stationary GhostBlockAnim5 ] -> [ Player ] [ action GhostBlock ]\n[ stationary Player ] [ stationary GhostBlockAnim4 ] -> [ Player ] [ action GhostBlockAnim5 ]\n[ stationary Player ] [ stationary GhostBlockAnim3 ] -> [ Player ] [ action GhostBlockAnim4 ]\n[ stationary Player ] [ stationary GhostBlockAnim2 ] -> [ Player ] [ action GhostBlockAnim3 ]\n[ stationary Player ] [ stationary GhostBlockAnim1 ] -> [ Player ] [ action GhostBlockAnim2 ]\n[ stationary Player ] [ stationary GhostBlock ] -> [ Player ] [ action GhostBlockAnim1 ]\n\n[ GhostPlayerAbove ] -> [ ]\nlate up [ GPAboveAnim | ] -> [ GPAboveAnim | GhostPlayerAbove ]\n\n[ stationary Player ] [ stationary GhostPlayerAnim5 ] -> [ Player ] [ action GhostPlayer ]\n[ stationary Player ] [ stationary GhostPlayerAnim4 ] -> [ Player ] [ action GhostPlayerAnim5 ]\n[ stationary Player ] [ stationary GhostPlayerAnim3 ] -> [ Player ] [ action GhostPlayerAnim4 ]\n[ stationary Player ] [ stationary GhostPlayerAnim2 ] -> [ Player ] [ action GhostPlayerAnim3 ]\n[ stationary Player ] [ stationary GhostPlayerAnim1 ] -> [ Player ] [ action GhostPlayerAnim2 ]\n[ stationary Player ] [ stationary GhostPlayer ] -> [ Player ] [ action GhostPlayerAnim1 ]\n\n[ Background Transition1 ] [ Background no Transition1 ] -> [ Background Transition1 ] [ Background Transition1 ]\n[ stationary Transition9 ] -> [ ] again\n[ stationary Transition8 ] -> [ action Transition9 ] again\n[ stationary Transition7 ] -> [ action Transition8 ] again\n[ stationary Transition6 ] -> [ action Transition7 ] again\n[ stationary Transition5 ] -> [ action Transition6 ] again\n[ stationary Transition4 ] -> [ action Transition5 ] again\n[ stationary Transition3 ] -> [ action Transition4 ] again\n[ stationary Transition2 ] -> [ action Transition3 ] again\n[ stationary Transition1 ] -> [ action Transition2 ] again\n\n[ Background TransitionR1 ] [ Background no TransitionR1 ] -> [ Background TransitionR1 ] [ Background TransitionR1 ]\n[ stationary TransitionR9 ] -> [ ] again\n[ stationary TransitionR8 ] -> [ action TransitionR9 ] again\n[ stationary TransitionR7 ] -> [ action TransitionR8 ] again\n[ stationary TransitionR6 ] -> [ action TransitionR7 ] again\n[ stationary TransitionR5 ] -> [ action TransitionR6 ] again\n[ stationary TransitionR4 ] -> [ action TransitionR5 ] again\n[ stationary TransitionR3 ] -> [ action TransitionR4 ] again\n[ stationary TransitionR2 ] -> [ action TransitionR3 ] again\n[ stationary TransitionR1 ] -> [ action TransitionR2 ] again\n\n(Level start)\n\n[ Target no LevelStart ] [ Background no Transition ] -> [ Target ] [ Background Transition5 ]\n[ Target Transition9 no LevelStart ] -> [ Target LevelStart ]\n\n(Win)\n\ndown [ PlayerPink no WinAnim Target no FallBlock | Ridable ]-> [ PlayerPink WinAnim1 Target | Ridable ] sfx8\n\n[ WinAnim6 ] [ Background no Transition ] -> [ WinAnim6 ] [ Background Transition1 ]\n[ WinAnim5 ] -> [ WinAnim6 ]\n[ WinAnim4 ] -> [ WinAnim5 ]\n[ WinAnim3 ] -> [ WinAnim4 ]\n[ WinAnim2 ] -> [ WinAnim3 ]\n[ WinAnim1 ] -> [ WinAnim2 ]\n\n[ > Player WinAnim ] -> cancel\n[ action Player WinAnim ] -> cancel\n\n[ Target WinAnim6 Transition5 ] -> [ Target WinAnim6 Transition5 Winable ]\n\n(tutorial)\n\n[ Crate PressX no TCount ] [ PressX ] -> [ Crate TCount1 ] [ ]\n\n[ TCount5 ] -> [ ]\n[ TCount4 ] -> [ TCount5 ] message X or spacebar to switch characters.\n[ TCount3 ] -> [ TCount4 ]\n[ TCount2 ] -> [ TCount3 ]\n[ TCount1 ] -> [ TCount2 ]\n\n[ > Player ] [ Crate PressX ] -> [ Player ] [ Crate PressX ]\n[ > Player ] [ Crate TCount ] -> [ Player ] [ Crate TCount ]\n[ PlayerPink ] [ PressX ] -> [ PlayerPink ] [ ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Winable \n\n======= \nLEVELS\n=======\n\n\n(Tutorial)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,!xxxxxxxxxo,,,..'''p++++++++++'''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxxx\"xxxxxx,,,..'''p+①+①++++++'''.\n.,,,,,,x,xxxoxx,,,..''''''+'++++++'''.\n.,,,xxxxxxxx,xx,,,..'''++++++++'++'''.\n.,,,xxxxxxxxxxx,,,..'''+++①+++++++'''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,!xxxxxxxx,,,,..''''p++++++++''''.\n.,,,,,,,xxxxxx,,,,..'''''''++++++''''.\n.,,,,,,xxxxxox,,,,..''''''+++++++''''.\n.,,,,xxxxxx\",x,,,,..''''++++++①'+''''.\n.,,,,xx\"xxx\"xx,,,,..''''++①+++①++''''.\n.,,,,xx\"x,,,,,,,,,..''''++①+'''''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxx!xxxx,,,,..''''++++p++++''''.\n.,,,,xxxx\"xxxx,,,,..''''++++①++++''''.\n.,,,,x,,,,,,,x,,,,..''''+'''''''+''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxx\"xxx,,,,..''''+++++①+++''''.\n.,,,,xxx\"o,\"xx,,,,..''''+++①+'①++''''.\n.,,,,xx\",xx\"xx,,,,..''''++①'++①++''''.\n.,,,,xx\"xx,,,,,,,,..''''++①++''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxox,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xx!xx\"xx,,,,,,..'''++p++①++''''''.\n.,,,,,,,,,,,,$,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(二つでスタックのチュートリアル)\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxx!xxxoxxx,,,..'''+++%+++++++'''.\n.,,,,xx\"x\"xxxx,,,,..''''+++++++++''''.\n.,,,,#########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,b,*,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.xxxxxxxxxxxxxxxxx..+++++++++++++++++.\n.x,,,,,,,,,,,,,,,x..+'''''''''''''''+.\n.x,,,,,,b,*,,,,,,x..+''''''''+''''''+.\n.x,,xxxxxxxxxxx,,x..+''+++++++++++''+.\n.x,,xxx!xxxoxxx,,x..+''+++%+++++++''+.\n.x,,,xx\"x\"xxxx,,,x..+'''+++++++++'''+.\n.x,,,,,,,,,,,,,,,x..+'''''''''''''''+.\n.xxxxxxxxxxxxxxxxx..+++++++++++++++++.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(一個なら押しのけて登れる)\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,xxxxxx,,,,,..''''''++++++'''''.\n.,,,,,,x\",x\"x,,,,,..''''''++'+++'''''.\n.,,,,,,,!,,,x,,,,,..'''''''%'''+'''''.\n.,,,,#b,,,*,x,,,,,..'''''''''''+'''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,oxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,,,,xxxxxx,,,,..'''''''++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage Reach the heart to win.\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,x!xxxxxox,,,,..''''+p+++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage You can climb one square.\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxox,,,,..''''+石+++++++''''.\n.,,,,,!,,,,,,,,,,,..'''''p'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage You can only push one block at a time.\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxox,,,,..''''+++++++++''''.\n.,,,,x!\"xxxx\"x,,,,..''''+p石++++石+''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 1. Two Worlds\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,!xxx,b,xxxxxo,,..''%+++'''++++++''.\n.,,,xxx,,,xxxx,,,,..'''+++'''++++''''.\n.,,,xxx,,,xxxx,,,,..'''+++'''++++''''.\n.,,,xxx,,,xxx,,,,,..'''+++'''+++'''''.\n.,,,xxxx*x\"xx,,,,,..'''++++'++++'''''.\n.,,,xxx,,,,,,,,,,,..'''+++'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,文,,,,,,,,..'''''''''''''''''.\n.,,,!xxx,,,xxxo,,,..'''%+++'''++++'''.\n.,,,,xxxx*xxx,,,,,..''''++++'+++'''''.\n.,,,,xxx,,,xx,,,,,..''''+++'''++'''''.\n.,,,,,,,,文,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 2. Delivery\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,oxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,,xxxxxx,,,,,..''''''++++++'''''.\n.,,,,,,x!x\"xx,,,,,..''''''+%++++'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,b*,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 3. One-way Tickets\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx,,,,,,,,,,,..''''++'''''''''''.\n.,,,,x\",,,b*,,,,,,..''''++'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx########,,,..''''++'''''''''''.\n.,,,,xxxxxxxxxx,,,..''''++++++++++'''.\n.,,,,xxxxxxxxxx,,,..''''++++++++++'''.\n.,,,,xxx!xxxoxx,,,..''''+++%++++++'''.\n.,,,,#xx\"x\"xxxx,,,..'''''+++++++++'''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(message Brain training\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,b*,,x\"x,,,,,,,..'''''''+++'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxx!xxxxxxx,,,..'''+++%+++++++'''.\n.,,,xxx,,,,,xxx,,,..'''+++'''''+++'''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxxxxx\"xxxx,,,..'''+++++++++++'''.\n.,,,xxxx\"o,\"xxx,,,..'''++++++'++++'''.\n.,,,xxx\",xx\"xx,,,,..'''++++'+++++''''.\n.,,,,xx\"xx####,,,,..''''+++++''''''''.\n.,,,,######,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(message 2 x 3\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,##,,,,,##,,,,..'''''''''''''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#,\"x\"x\",#,,,,..''''''+++++''''''.\n.,,,,#,,b,*,,#,,,,..'''''''''''''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,xxxxo,,,,,,..''''''+++++''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,xx!xx,,,,,,..''''''++%++''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,##,,,,,##,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 4. 3 x 6\n\n\n......................................\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,b*,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxo,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,!xxxxx,,,,,,..'''''%+++++''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,##########,,,,..'''''''''''''''''.\n.,,,#,,,,,,,,#,,,,..'''''''''''''''''.\n.,,,#,\"!\"x\"x,#,,,,..'''''+p++++''''''.\n.,,,#b,,,*,,,#,,,,..'''''''''''''''''.\n.,,,#,xxxxxx##,,,,..'''''++++++''''''.\n.,,,#,*,,,,,,o,,,,..''''''''''''+''''.\n.,,,#,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,,,,,,,,#,,,,..'''''''''''''''''.\n.,,,##########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 5. Too Small to Climb\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,ox\"#,,,,,,..'''''''+++'''''''.\n.,,,,,,,,,\"#,,,,,,..'''''''''+'''''''.\n.,,,,,,,x,\"#,,,,,,..'''''''+'+'''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,!b*,,,,,,,..'''''''%'''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,b@,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,@,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,oxxx,,,,,,,..''''''++++'''''''.\n.,,,,,#,xxx,,,,,,,..'''''''+++'''''''.\n.,,,,,!,xxx,,,,,,,..'''''%'+++'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 6. I Hope That's Enough\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,xox,,,,,..''''''''++++'''''.\n.,,,,,,,,,xxx\"xx,,..''''''''+++++++''.\n.,,,,,,,,,,,,\"xx,,..''''''''''''+++''.\n.,,######xxxx\"xx,,..''''''''+++++++''.\n.,,#,,,!#x\",,,,,,,..''''''%'++'''''''.\n.,,#,*,,xx\"x,*,*,,..'''''''++++''''''.\n.,,####,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,##,,,,,,b,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 7. The Larger, the Better\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,#,#,#,#,#,#,..'''''''''''''''''.\n.,,,,,xxxxxo,,,,,,..'''''++++++''''''.\n.,,,,,xx\",,,,,,,,,..'''''+++'''''''''.\n.,,,,,xx\",,,,,,,,,..'''''+++'''''''''.\n.,,,,,!x\",@@@@,,,,..'''''%++'''''''''.\n.,#,#,#,#,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,b,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 8. Cut the Screen\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,oxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,@@@@@@@,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"x#x,,,,,..'''''+++++'+'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,x!x\"xxx,,,,,..'''''+%+++++'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,oxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,2222222,,,,,..'''''''''''''''''.\n.,x,,,xxx\"xxx,,,,,..'+'''+++++++'''''.\n.,,,,,@@@@@@@,,,,,..'''''''''''''''''.\n.,,,,,,xxxx!x,,,,,..''''''++++%+'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 9. Transfer\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.#################..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,xx,,,2b@@@,,o,,..''++''''''''''+''.\n.,,!\",222,@,,,,x,,..''%+''''''''''+''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.#################..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 10. Do You Like Math Puzzles?\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,b,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,\"@#xx#xx#xx#x#..'''+''++++++++'+'.\n.,,\"\"@#xxxxxxxxxx#..''++''++++++++++'.\n.,,\"\"@#xx,xx,xx,o#..''++''++'++'++'+'.\n.,,,,@#!x,xx,xx,x#..''''''%+'++'++'+'.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 11. Haste Makes Waste\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,xxx,,,,,,,..'''''''+++'''''''.\n.,,xxx,,,,,,,xxx,,..''+++'''''''+++''.\n.,,xx\",,@@@,,xox,,..''+++'''''''+++''.\n.,,!x\",,@@@,,xxx,,..''%++'''''''+++''.\n.,,###,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 12. Neither Road Leads to Rome\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,#############,,,..'''''''''''''''''.\n.,#,,,,!\"\"\"x\"x###,..''''''%+++++++++'.\n.,#b@@,,,,,,,,xo#,..'''''''''''''+++'.\n.,#,,,,xxxxxx,xx#,..''''''++++++'+++'.\n.,#,,,,,,,,,,,###,..'''''''''''''''''.\n.,#############,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 13. This Elevator Will Be Taking No Passengers\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,o\"\"\"\"\",,,,,,..'''''++++++''''''.\n.,,b*,,\"\"\"\"\",,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.####xxx,,,xxx####..''''+++'''+++''''.\n.,,,,xxx@@@xxx,,,,..''''+++'''+++''''.\n.,,,,xxx@@@xxx,,,,..''''+++'''+++''''.\n.,,,,xxx,,,xxx,,,,..''''+++'''+++''''.\n.,,,,xxx,,,xxx,,,,..''''+++'''+++''''.\n.,,,,x!x,,,xxx,,,,..''''+%+'''+++''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................)\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx\"\"\"\"\"xx,,,,..''''+++++++++''''.\n.,b*,xx\"\"\"\"\"xx,,,,..''''+++++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#oxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#,xx@@@xxx#,,,..'''''++'''+++''''.\n.,,,#xxx@@@xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#x!x,,,xxx#,,,..''''+%+'''+++''''.\n.,,,###,,,,,###,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,xxxx\"\"\"xx,,,,..''''+++++++++''''.\n.,,,,xxx\"\"\"\"xx,,,,..''''+++++++++''''.\n.,b*,xx,\"\"\"\"xx,,,,..''''++'++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#oxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#,xx@@@xxx#,,,..'''''++'''+++''''.\n.,,,#xxx@@@xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#x!x,,,xxx#,,,..''''+%+'''+++''''.\n.,,,###,,,,,###,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 14. 3 x 21\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,#,,xxx\"\"\"o,,..''''''''+++++++''.\n.,,,,@@@,xxx\"\"\",,,..''''''''++++++'''.\n.,,,,@@@#\"\"\"\"\"\",,,..''''''''++++++'''.\n.,,,#@@@,\"\"\"\"\"\",,,..''''''''++++++'''.\n.,,,,@@@,\"\"\"\"\"\",#,..''''''''++++++'''.\n.,,,,@@@,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#,,,,b,,22,,,,..'''''''''''''''''.\n.,,,x!,,,,,,,2,,,,..'''+%''''''''''''.\n.,,,,#,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,#,#,#,#,#,..'''''''''''''''''.\n.,,,,,#,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\nmessage Thanks for playing!\n\n\n(......................................\n.,,,,,#,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#o,b,#,,,,,,..''''''+''''''''''.\n.,,,,,,,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#,*,*#,,,,,,..'''''''''''''''''.\n.,,,,,#,@@@#,,,,,,..'''''''''''''''''.\n.,,,,,#,@@@##,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,##,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,x,,#,,,,,..''''''''%''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,b,,,,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,o,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,\",,,,,,#,,..'''''''+'''''''''.\n.,*,*,*,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,#,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,@@,@@@#,,,,,,#,,..'''''''''''''''''.\n.,@@,,@@,,,,,,,,,,..'''''''''''''''''.\n.,@@@@@@#,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,#,!,#,#,,..''''''''''%''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,##!######,,,,..''''''%''''''''''.\n.,,,,#,,,,,,o#,,,,..'''''''''''+'''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#,,@b2,,#,,,,..'''''''+'+'''''''.\n.,,,,#,@@,22,#,,,,..''''''++'++''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,x\"\"\"x,,,,,,..''''''+++++''''''.\n.,,,,,,\"\"\"\"\",,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,#,xxx,,,,,oxx,#,..'''+++'''''+++'''.\n.,#,xxx,222,xxx,#,..'''+++'''''+++'''.\n.,#,xxx,,,,,xxx,#,..'''+++'''''+++'''.\n.,#,xxx,@@,,xxx,#,..'''+++'''''+++'''.\n.,#,x!x,,,,,xxx,#,..'''+%+'''''+++'''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,\"o,,#,,,..'''''''''++''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#xxx,,,,xxx#,,,..'''+++''''+++''''.\n.,,#xxx,,,,\"xx#,,,..'''+++''''+++''''.\n.,,#xxx,,,,\"xx#,,,..'''+++''''+++''''.\n.,,#xxx,2@,\"xx#,,,..'''+++''''+++''''.\n.,,#!xx22@@\"xx#,,,..'''%++''''+++''''.\n.,,#,,,2,,@,,,#,,,..'''''''''''''''''.\n.,,#,,,2,,@,,,#,,,..'''''''''''''''''.\n.,,#,b,22@@,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n......................................)", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", 2, "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", 2, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 1, "tick", 4, "tick", "tick", "tick", 3, "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background colbgpink outline:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background bgblue:1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,background bgblue zonepurple:2,background bgblue zonepurplebelow:3,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,2,2,2,3,1,1,1,1,0,0,1,1,1,1,1,1,2,2,background bgblue ghostplayeranim1 zonepurple:4,3,1,1,1,1,0,0,1,\n1,1,1,1,1,2,2,2,3,1,1,1,1,0,0,1,1,1,1,1,1,1,2,3,background bgblue stayblueleft:5,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,2,background bgblue crateabove zonepurplebelow:6,background bgblue crate crateline:7,background bgblue cratebelow:8,1,1,1,0,0,1,1,1,1,1,1,2,2,2,3,1,1,1,\n1,0,0,1,1,1,1,1,1,2,2,2,3,1,1,1,1,0,0,1,1,1,1,1,1,2,3,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,background ghosttarget zonepurple:9,3,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background bgpink colbgpink:10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,\n10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,background bgpink climbable colbgpink:11,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,background removepinklud zonepink:12,addpinkru background bgpink climbable colbgpink:13,11,10,10,\n10,10,10,0,0,10,10,10,10,10,10,background zonepink:14,14,background removepinkld zonepink:15,10,10,10,10,10,0,0,10,10,10,10,10,10,14,14,background playerpinkright zonepink:16,10,10,10,10,10,0,0,10,\n10,10,10,10,10,background removepinkru zonepink:17,14,background removepinkrd zonepink:18,10,10,10,10,10,0,0,10,10,10,10,10,10,addpinkld background bgpink climbable colbgpink:19,background removepinkrud zonepink:20,addpinklu background bgpink climbable colbgpink:21,10,10,10,10,10,0,0,10,10,10,10,10,10,10,\n11,10,11,10,10,10,10,0,0,10,10,10,10,10,10,addpinkrd background bgpink climbable colbgpink:22,12,13,background removepinklud removepinkrud zonepink:23,10,10,10,10,0,0,10,10,10,10,10,10,background removepinklu zonepink:24,14,15,11,10,10,10,\n10,0,0,10,10,10,10,10,10,14,14,18,10,10,10,10,10,0,0,10,10,10,10,10,10,14,21,11,10,10,10,10,10,0,0,10,10,10,\n10,10,10,background levelstart removepinkrud target zonepink:25,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,11,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,10,10,10,\n10,10,10,10,10,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", "7", "1627769807359.2505"] ], [ `gallery game: mad queens`, - ["title Mad Queens\nauthor Chris Pickel\nhomepage https://sfiera.net/\ntext_color DarkRed\nbackground_color \t Gray\nkey_repeat_interval 0.25\nagain_interval 0.10\nnoaction\nrequire_player_movement\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBlack \n#222\n\nWhite .\n#ddd\n\nAlice Player @ \nBlue Brown White Yellow\n.333.\n.313.\n02020\n30203\n.000.\n\nKing K\nRed DarkRed\n..0..\n.010.\n..0..\n00001\n.....\n\nQueen Q\nRed DarkRed\n0.0.1\n.001.\n..1..\n00001\n.....\n\nRook R\nRed DarkRed\n0.0.1\n00001\n.111.\n00001\n.....\n\nBishop B\nRed DarkRed\n..0..\n.101.\n.010.\n00001\n.....\n\nKnight N\nRed DarkRed\n.101.\n0000.\n..01.\n00001\n.....\n\nPawn P\nRed DarkRed\n.....\n..0..\n..0..\n.001.\n.....\n\nThreatened\nRed\n.....\n.....\n..0..\n.....\n.....\n\nDying\nRed\n\nHorizontalThreat\nTransparent\n\nVerticalThreat\nTransparent\n\nDownRightThreat\nTransparent\n\nDownLeftThreat\nTransparent\n\nUpLeftThreat\nTransparent\n\nUpRightThreat\nTransparent\n\nFurtherRight\nTransparent\n\nFurtherDownRight\nTransparent\n\nFurtherDown\nTransparent\n\nFurtherDownLeft\nTransparent\n\nFurtherLeft\nTransparent\n\nFurtherUpLeft\nTransparent\n\nFurtherUp\nTransparent\n\nFurtherUpRight\nTransparent\n\n=======\nLEGEND\n=======\n\nBackground = Black or White\n\nPiece = King or Queen or Rook or Bishop or Knight or Pawn\nSolid = Alice or Piece\n\nDiagonally = Bishop or Queen\nOrthogonally = Rook or Queen\nRightward = Orthogonally or FurtherRight\nDownRightward = Diagonally or FurtherDownRight\nDownward = Orthogonally or FurtherDown\nDownLeftward = Diagonally or FurtherDownLeft\nLeftward = Orthogonally or FurtherLeft\nUpLeftward = Diagonally or FurtherUpLeft\nUpward = Orthogonally or FurtherUp\nUpRightward = Diagonally or FurtherUpRight\n\nFurther = FurtherRight or FurtherDownRight or FurtherDown or FurtherDownLeft or FurtherLeft or FurtherUpLeft or FurtherUp or FurtherUpRight\nThreat = HorizontalThreat or VerticalThreat or DownRightThreat or DownLeftThreat or UpLeftThreat or UpRightThreat\nTemporary = Threat or Further\n\n=======\nSOUNDS\n=======\n\nAlice move 93593507\nPiece move 69693707\nAlice destroy 31577701\nPiece destroy 2057504\nstartgame 92634708\nendlevel 63318705\nendgame 6260903\nundo 86245107\nrestart 2571701\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSolid\nHorizontalThreat\nVerticalThreat\nDownRightThreat\nDownLeftThreat\nUpLeftThreat\nUpRightThreat\nFurther\nThreatened\nDying\n\n======\nRULES \n====== \n\n[> Alice | Piece] -> [> Alice | > Piece]\n\nlate [Dying Solid] -> []\nlate [Threatened] -> []\n\nlate up [Pawn |] -> [Pawn | HorizontalThreat]\nlate vertical [King |] -> [King | Threatened HorizontalThreat]\nlate horizontal [King |] -> [King | Threatened VerticalThreat]\nlate vertical [Knight | |] -> [Knight | | HorizontalThreat]\nlate horizontal [Knight | |] -> [Knight | | VerticalThreat]\n\nlate horizontal [HorizontalThreat |] -> [HorizontalThreat | Threatened]\nlate vertical [VerticalThreat |] -> [VerticalThreat | Threatened]\n\nlate right [Rightward |] -> [Rightward | Threatened FurtherRight]\nlate down [Downward |] -> [Downward | Threatened FurtherDown]\nlate left [Leftward |] -> [Leftward | Threatened FurtherLeft]\nlate up [Upward |] -> [Upward | Threatened FurtherUp]\n\nlate down [DownRightward |] -> [DownRightward | DownRightThreat]\n+ late right [DownRightThreat |] -> [DownRightThreat | Threatened FurtherDownRight]\nlate down [DownLeftward |] -> [DownLeftward | DownLeftThreat]\n+ late left [DownLeftThreat |] -> [DownLeftThreat | Threatened FurtherDownLeft]\nlate up [UpLeftward |] -> [UpLeftward | UpLeftThreat]\n+ late left [UpLeftThreat |] -> [UpLeftThreat | Threatened FurtherUpLeft]\nlate up [UpRightward |] -> [UpRightward | UpRightThreat]\n+ late right [UpRightThreat |] -> [UpRightThreat | Threatened FurtherUpRight]\n\nlate [Temporary] -> []\n\nlate [Threatened Solid] -> [Dying Solid] again\n\n(Alice wins in the top row)\nlate up [||||||| Alice no Dying] -> win\n\n(Make the checkerboard pattern)\nlate right down [White | White] -> [White | Black]\nlate down [Black | Black] -> [Black | White]\n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\n(0)\n........\n........\n........\n........\n........\n........\n........\n...@....\n\n(1)\n........\n........\n........\n........\n........\n........\nPPPPPPPP\n...@....\n\n(2)\n........\n.N......\n....N...\n.N.....N\n........\n.....N..\n........\n...@....\n\n(3)\n........\n....N...\n...N....\n......N.\n.N......\n........\n.P.PPPPP\n...@....\n\n(4)\n......R.\n.R......\n........\n........\n........\n........\nP.PPPP.P\n...@....\n\n(5)\n......R.\n.....R..\n....R...\n.N......\n........\n........\nPPPP...P\n...@....\n\n(6)\n......B.\n........\n..B.....\n........\n........\n........\n.PN..P.N\n...@....\n\n(7)\n.....Q..\n........\n........\n...N....\nR.......\n........\n.PPPP.PP\n...@....\n\n(8)\n...K....\n.....B.N\n........\nR.......\n........\n...N....\n......PP\n...@....\n\n(9)\n.B......\n......Q.\n........\n........\n....B...\n........\nP..PPP..\n...@....\n\n(10)\n.K......\n.....N..\n.BB...N.\n........\n........\n........\nPPPPP..P\n...@....\n",[0,2,3,3,0,1,3,0,0,0,1,0,0,"undo"],"threatened white:0,black threatened:1,white:2,black:3,2,3,pawn white:4,3,\n1,rook white:5,1,0,1,0,1,0,\n0,1,2,3,2,1,4,3,\n1,0,3,2,3,0,black pawn:6,2,\n0,1,alice white:7,3,2,1,2,3,\n1,0,3,2,3,2,3,2,\n5,1,0,1,0,1,0,1,\n1,0,3,2,3,2,6,2,\n",4,"1627769866824.53"] + ["title Mad Queens\nauthor Chris Pickel\nhomepage https://sfiera.net/\ntext_color DarkRed\nbackground_color \t Gray\nkey_repeat_interval 0.25\nagain_interval 0.10\nnoaction\nrequire_player_movement\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBlack \n#222\n\nWhite .\n#ddd\n\nAlice Player @ \nBlue Brown White Yellow\n.333.\n.313.\n02020\n30203\n.000.\n\nKing K\nRed DarkRed\n..0..\n.010.\n..0..\n00001\n.....\n\nQueen Q\nRed DarkRed\n0.0.1\n.001.\n..1..\n00001\n.....\n\nRook R\nRed DarkRed\n0.0.1\n00001\n.111.\n00001\n.....\n\nBishop B\nRed DarkRed\n..0..\n.101.\n.010.\n00001\n.....\n\nKnight N\nRed DarkRed\n.101.\n0000.\n..01.\n00001\n.....\n\nPawn P\nRed DarkRed\n.....\n..0..\n..0..\n.001.\n.....\n\nThreatened\nRed\n.....\n.....\n..0..\n.....\n.....\n\nDying\nRed\n\nHorizontalThreat\nTransparent\n\nVerticalThreat\nTransparent\n\nDownRightThreat\nTransparent\n\nDownLeftThreat\nTransparent\n\nUpLeftThreat\nTransparent\n\nUpRightThreat\nTransparent\n\nFurtherRight\nTransparent\n\nFurtherDownRight\nTransparent\n\nFurtherDown\nTransparent\n\nFurtherDownLeft\nTransparent\n\nFurtherLeft\nTransparent\n\nFurtherUpLeft\nTransparent\n\nFurtherUp\nTransparent\n\nFurtherUpRight\nTransparent\n\n=======\nLEGEND\n=======\n\nBackground = Black or White\n\nPiece = King or Queen or Rook or Bishop or Knight or Pawn\nSolid = Alice or Piece\n\nDiagonally = Bishop or Queen\nOrthogonally = Rook or Queen\nRightward = Orthogonally or FurtherRight\nDownRightward = Diagonally or FurtherDownRight\nDownward = Orthogonally or FurtherDown\nDownLeftward = Diagonally or FurtherDownLeft\nLeftward = Orthogonally or FurtherLeft\nUpLeftward = Diagonally or FurtherUpLeft\nUpward = Orthogonally or FurtherUp\nUpRightward = Diagonally or FurtherUpRight\n\nFurther = FurtherRight or FurtherDownRight or FurtherDown or FurtherDownLeft or FurtherLeft or FurtherUpLeft or FurtherUp or FurtherUpRight\nThreat = HorizontalThreat or VerticalThreat or DownRightThreat or DownLeftThreat or UpLeftThreat or UpRightThreat\nTemporary = Threat or Further\n\n=======\nSOUNDS\n=======\n\nAlice move 93593507\nPiece move 69693707\nAlice destroy 31577701\nPiece destroy 2057504\nstartgame 92634708\nendlevel 63318705\nendgame 6260903\nundo 86245107\nrestart 2571701\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSolid\nHorizontalThreat\nVerticalThreat\nDownRightThreat\nDownLeftThreat\nUpLeftThreat\nUpRightThreat\nFurther\nThreatened\nDying\n\n======\nRULES \n====== \n\n[> Alice | Piece] -> [> Alice | > Piece]\n\nlate [Dying Solid] -> []\nlate [Threatened] -> []\n\nlate up [Pawn |] -> [Pawn | HorizontalThreat]\nlate vertical [King |] -> [King | Threatened HorizontalThreat]\nlate horizontal [King |] -> [King | Threatened VerticalThreat]\nlate vertical [Knight | |] -> [Knight | | HorizontalThreat]\nlate horizontal [Knight | |] -> [Knight | | VerticalThreat]\n\nlate horizontal [HorizontalThreat |] -> [HorizontalThreat | Threatened]\nlate vertical [VerticalThreat |] -> [VerticalThreat | Threatened]\n\nlate right [Rightward |] -> [Rightward | Threatened FurtherRight]\nlate down [Downward |] -> [Downward | Threatened FurtherDown]\nlate left [Leftward |] -> [Leftward | Threatened FurtherLeft]\nlate up [Upward |] -> [Upward | Threatened FurtherUp]\n\nlate down [DownRightward |] -> [DownRightward | DownRightThreat]\n+ late right [DownRightThreat |] -> [DownRightThreat | Threatened FurtherDownRight]\nlate down [DownLeftward |] -> [DownLeftward | DownLeftThreat]\n+ late left [DownLeftThreat |] -> [DownLeftThreat | Threatened FurtherDownLeft]\nlate up [UpLeftward |] -> [UpLeftward | UpLeftThreat]\n+ late left [UpLeftThreat |] -> [UpLeftThreat | Threatened FurtherUpLeft]\nlate up [UpRightward |] -> [UpRightward | UpRightThreat]\n+ late right [UpRightThreat |] -> [UpRightThreat | Threatened FurtherUpRight]\n\nlate [Temporary] -> []\n\nlate [Threatened Solid] -> [Dying Solid] again\n\n(Alice wins in the top row)\nlate up [||||||| Alice no Dying] -> win\n\n(Make the checkerboard pattern)\nlate right down [White | White] -> [White | Black]\nlate down [Black | Black] -> [Black | White]\n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\n(0)\n........\n........\n........\n........\n........\n........\n........\n...@....\n\n(1)\n........\n........\n........\n........\n........\n........\nPPPPPPPP\n...@....\n\n(2)\n........\n.N......\n....N...\n.N.....N\n........\n.....N..\n........\n...@....\n\n(3)\n........\n....N...\n...N....\n......N.\n.N......\n........\n.P.PPPPP\n...@....\n\n(4)\n......R.\n.R......\n........\n........\n........\n........\nP.PPPP.P\n...@....\n\n(5)\n......R.\n.....R..\n....R...\n.N......\n........\n........\nPPPP...P\n...@....\n\n(6)\n......B.\n........\n..B.....\n........\n........\n........\n.PN..P.N\n...@....\n\n(7)\n.....Q..\n........\n........\n...N....\nR.......\n........\n.PPPP.PP\n...@....\n\n(8)\n...K....\n.....B.N\n........\nR.......\n........\n...N....\n......PP\n...@....\n\n(9)\n.B......\n......Q.\n........\n........\n....B...\n........\nP..PPP..\n...@....\n\n(10)\n.K......\n.....N..\n.BB...N.\n........\n........\n........\nPPPPP..P\n...@....\n", [0, 2, 3, 3, 0, 1, 3, 0, 0, 0, 1, 0, 0, "undo"], "threatened white:0,black threatened:1,white:2,black:3,2,3,pawn white:4,3,\n1,rook white:5,1,0,1,0,1,0,\n0,1,2,3,2,1,4,3,\n1,0,3,2,3,0,black pawn:6,2,\n0,1,alice white:7,3,2,1,2,3,\n1,0,3,2,3,2,3,2,\n5,1,0,1,0,1,0,1,\n1,0,3,2,3,2,6,2,\n", 4, "1627769866824.53"] ], [ `gallery game: fall leaves`, - ["title Fall Leaves \nauthor Le Slo\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\nbackground_color #5d3a2f\n\n========\nOBJECTS\n========\n\nPlayerL\n#ad6545 #c96845 #d97865\n0.12.\n.0012\n.1112\n..111\n.....\n\n\nPlayerR\n#c96845 #ad6545 #d97865\n..222\n.0002\n.0100\n1100.\n.....\n\nPlayerN\n#c96845 #ad6545 #d97865\n.02..\n.002.\n11102\n.000.\n.00..\n\nVent1\n#485259 #7a8891 \n1..11\n01.0.\n..0..\n.0.01\n00..0\n\nVent2\n#485259 #7a8891\n..11.\n1.0..\n00001\n..0.0\n.00..\n\nAir0\n#86A2E4\n.0...\n...0.\n.0.0.\n.0...\n...0.\n\nAir1\n#86A2E4\n...0.\n.0.0.\n.0...\n...0.\n.0...\n\nAir2\n#86A2E4\n.0.0.\n.0...\n...0.\n.0...\n...0.\n\nAir3\n#86A2E4\n.0...\n...0.\n.0...\n...0.\n.0.0.\n\nAir4\n#86A2E4\n...0.\n.0...\n...0.\n.0.0.\n.0...\n\nCrate\n#7b865e #3d743d\n.000.\n11100\n11110\n11110\n.111.\n\nTarget\n#5d3a2f\n.....\n.000.\n.0.0.\n.000.\n.....\n\nBackground\n#cfb39b #f5bda2 #e6b3a1 #d9b193 #dba886 #f0cbb9\n01100\n23340\n44425\n42245\n32340\n\nBackground2\n#9d7a5f #5d3a2f\n11111\n11111\n11111\n11111\n11111\n\n\nWall\n#9d7a5f #d07953 #c96845 #906646 #ad6545 #dd906f\n01100\n23340\n44425\n42245\n32340\n\nauxAnim\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = PlayerN\n* = Crate\n@ = Crate and Target\nO = Target\nx = vent1\n` = vent2\ny = Background2\n\nvent = Vent1 or Vent2\ncollision = wall or crate or vent\nair = Air0 or Air1 or Air2 or Air3 or Air4\npushable = vent or crate\nplayer = PlayerL or PlayerR or playerN\n\n======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nvent move 19444907\nstartgame 60152908\nundo 31509107\nrestart 24415508\nshowmessage 5759908\n\nsfx1 37419308\nsfx0 36262108\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBackground2\nauxAnim\nTarget\nair\nPlayer, Wall, Crate, Vent\n\n======\nRULES\n======\n[right playerN no auxAnim] -> [right playerR auxAnim]\n[left playerN no auxAnim] -> [left playerL auxAnim]\n[right playerL no auxAnim] -> [right playerN auxAnim]\n[left playerR no auxAnim] -> [left playerN auxAnim]\n[down player no auxAnim] -> [down playerN auxAnim]\n\n[ up player no air] -> [ player] sfx1\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Player | Vent ] -> [ > Player | > Vent ]\n[ > pushable | pushable] -> [> pushable | > pushable]\n\n\nup[vent | ... | player air | no collision] -> [vent | ... | up player | no collision]\n\n(animations)\nlate [vent1] -> [vent2 auxAnim]\nlate [vent2 no auxAnim] -> [vent1]\n\n\nlate [air crate ] -> [crate]\nlate down[air | no air no vent] -> [ | ]\n\nlate [air0 no auxAnim] -> [ air1 auxAnim]\nlate [air1 no auxAnim] -> [ air2 auxAnim]\nlate [air2 no auxAnim] -> [ air3 auxAnim]\nlate [air3 no auxAnim] -> [ air4 auxAnim]\nlate [air4 no auxAnim] -> [ air0 auxAnim]\n\nlate [ auxAnim ] -> []\n\nstartLoop\nlate up[vent | no air no collision] -> [vent | Air0]\nlate up[air0 | no air no collision] -> [air0 | air1]\nlate up[air1 | no air no collision] -> [air1 | air2]\nlate up[air2 | no air no collision] -> [air2 | air3]\nlate up[air3 | no air no collision] -> [air3 | air4]\nlate up[air4 | no air no collision] -> [air4 | air0]\nendLoop\n\nlate up[vent | ... | player air | no collision] -> again sfx0\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n(##########\n#........#\n#..#.*...#\n#..p.#...#\n#.x....#.#\n#.....x..#\n#...x....#\n#..#o#...#\n#..###...#\n##########)\n\n\n\n(SOLVABLE)\n\nmessage 7 leaves left\n\n########\n#.p....#\n#...*..#\n#.*...`#\n#.o...##\n#...o.#y\n#.....#y\n#######y\n\nmessage 6 leaves left\n\n##########\n#........#\n#.*..p...#\n#.....o..#\n#.*o.....#\n#.....o..#\n#.*......#\n#........#\n###`##`###\nyy######yy\n\nmessage 5 leaves left\n\nyy#######\n###.....#\n#.....o.#\n#.*..*o.#\n#.p.....#\n#....*###\n##....#yy\ny##...#yy\nyy#xxx#yy\nyy#####yy\n\nmessage 4 leaves left\n\nyyy#######yyy\n####..p..####\n#.....#.....#\n#..*..#.....#\n#..#.....#o.#\n#...#.......#\n###...x...###\nyy####`####yy\nyyyyy###yyyyy\n\nmessage 3 leaves left\n\ny#########y\ny#.#.#.#.#y\n##.......##\n#..p......#\n#..*..#.o.#\n#..x......#\n#..x......#\n#..x......#\n###########\n\nmessage 2 leaves left\n\n##########\n#.....#o.#\n#.#p.....#\n#.....#..#\n#..*.....#\n#....x#..#\n#........#\n#........#\n#.x......#\n##########\n\nmessage 1 leaf left\n\nyyy#####yyy\nyyy#.#.#yyy\n####.o.####\n#.........#\n#....p.x..#\n#....*....#\n#..x......#\n#......x..#\n#.........#\n###########\n\nmessage no more leaves\nmessage welcome to winter\n\n\n",[3,1,1,1,2,1,1,1,2,3,2,0,0,1,2,3,"undo","undo","undo",2,3,3,1,3,0,1,1,1,2,2,2,3,0,1,0,3,3,1,2,1,2,3],"background wall:0,0,0,0,0,0,0,0,0,background background2:1,\n0,background:2,2,2,2,2,2,2,0,1,\n0,2,2,2,2,background playerr:3,2,2,0,0,\n0,2,background crate:4,2,background target:5,4,air3 background:6,air2 background:7,background vent1:8,0,\n0,2,2,2,2,2,4,2,0,0,\n0,2,2,2,2,2,2,2,0,0,\n0,7,7,air1 background target:9,air0 background:10,air4 background target:11,6,7,8,0,\n0,2,2,2,2,2,2,2,0,0,\n0,2,2,2,2,2,2,2,0,1,\n0,0,0,0,0,0,0,0,0,1,\n",3,"1627770803266.147"] + ["title Fall Leaves \nauthor Le Slo\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\nbackground_color #5d3a2f\n\n========\nOBJECTS\n========\n\nPlayerL\n#ad6545 #c96845 #d97865\n0.12.\n.0012\n.1112\n..111\n.....\n\n\nPlayerR\n#c96845 #ad6545 #d97865\n..222\n.0002\n.0100\n1100.\n.....\n\nPlayerN\n#c96845 #ad6545 #d97865\n.02..\n.002.\n11102\n.000.\n.00..\n\nVent1\n#485259 #7a8891 \n1..11\n01.0.\n..0..\n.0.01\n00..0\n\nVent2\n#485259 #7a8891\n..11.\n1.0..\n00001\n..0.0\n.00..\n\nAir0\n#86A2E4\n.0...\n...0.\n.0.0.\n.0...\n...0.\n\nAir1\n#86A2E4\n...0.\n.0.0.\n.0...\n...0.\n.0...\n\nAir2\n#86A2E4\n.0.0.\n.0...\n...0.\n.0...\n...0.\n\nAir3\n#86A2E4\n.0...\n...0.\n.0...\n...0.\n.0.0.\n\nAir4\n#86A2E4\n...0.\n.0...\n...0.\n.0.0.\n.0...\n\nCrate\n#7b865e #3d743d\n.000.\n11100\n11110\n11110\n.111.\n\nTarget\n#5d3a2f\n.....\n.000.\n.0.0.\n.000.\n.....\n\nBackground\n#cfb39b #f5bda2 #e6b3a1 #d9b193 #dba886 #f0cbb9\n01100\n23340\n44425\n42245\n32340\n\nBackground2\n#9d7a5f #5d3a2f\n11111\n11111\n11111\n11111\n11111\n\n\nWall\n#9d7a5f #d07953 #c96845 #906646 #ad6545 #dd906f\n01100\n23340\n44425\n42245\n32340\n\nauxAnim\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = PlayerN\n* = Crate\n@ = Crate and Target\nO = Target\nx = vent1\n` = vent2\ny = Background2\n\nvent = Vent1 or Vent2\ncollision = wall or crate or vent\nair = Air0 or Air1 or Air2 or Air3 or Air4\npushable = vent or crate\nplayer = PlayerL or PlayerR or playerN\n\n======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nvent move 19444907\nstartgame 60152908\nundo 31509107\nrestart 24415508\nshowmessage 5759908\n\nsfx1 37419308\nsfx0 36262108\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBackground2\nauxAnim\nTarget\nair\nPlayer, Wall, Crate, Vent\n\n======\nRULES\n======\n[right playerN no auxAnim] -> [right playerR auxAnim]\n[left playerN no auxAnim] -> [left playerL auxAnim]\n[right playerL no auxAnim] -> [right playerN auxAnim]\n[left playerR no auxAnim] -> [left playerN auxAnim]\n[down player no auxAnim] -> [down playerN auxAnim]\n\n[ up player no air] -> [ player] sfx1\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Player | Vent ] -> [ > Player | > Vent ]\n[ > pushable | pushable] -> [> pushable | > pushable]\n\n\nup[vent | ... | player air | no collision] -> [vent | ... | up player | no collision]\n\n(animations)\nlate [vent1] -> [vent2 auxAnim]\nlate [vent2 no auxAnim] -> [vent1]\n\n\nlate [air crate ] -> [crate]\nlate down[air | no air no vent] -> [ | ]\n\nlate [air0 no auxAnim] -> [ air1 auxAnim]\nlate [air1 no auxAnim] -> [ air2 auxAnim]\nlate [air2 no auxAnim] -> [ air3 auxAnim]\nlate [air3 no auxAnim] -> [ air4 auxAnim]\nlate [air4 no auxAnim] -> [ air0 auxAnim]\n\nlate [ auxAnim ] -> []\n\nstartLoop\nlate up[vent | no air no collision] -> [vent | Air0]\nlate up[air0 | no air no collision] -> [air0 | air1]\nlate up[air1 | no air no collision] -> [air1 | air2]\nlate up[air2 | no air no collision] -> [air2 | air3]\nlate up[air3 | no air no collision] -> [air3 | air4]\nlate up[air4 | no air no collision] -> [air4 | air0]\nendLoop\n\nlate up[vent | ... | player air | no collision] -> again sfx0\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n(##########\n#........#\n#..#.*...#\n#..p.#...#\n#.x....#.#\n#.....x..#\n#...x....#\n#..#o#...#\n#..###...#\n##########)\n\n\n\n(SOLVABLE)\n\nmessage 7 leaves left\n\n########\n#.p....#\n#...*..#\n#.*...`#\n#.o...##\n#...o.#y\n#.....#y\n#######y\n\nmessage 6 leaves left\n\n##########\n#........#\n#.*..p...#\n#.....o..#\n#.*o.....#\n#.....o..#\n#.*......#\n#........#\n###`##`###\nyy######yy\n\nmessage 5 leaves left\n\nyy#######\n###.....#\n#.....o.#\n#.*..*o.#\n#.p.....#\n#....*###\n##....#yy\ny##...#yy\nyy#xxx#yy\nyy#####yy\n\nmessage 4 leaves left\n\nyyy#######yyy\n####..p..####\n#.....#.....#\n#..*..#.....#\n#..#.....#o.#\n#...#.......#\n###...x...###\nyy####`####yy\nyyyyy###yyyyy\n\nmessage 3 leaves left\n\ny#########y\ny#.#.#.#.#y\n##.......##\n#..p......#\n#..*..#.o.#\n#..x......#\n#..x......#\n#..x......#\n###########\n\nmessage 2 leaves left\n\n##########\n#.....#o.#\n#.#p.....#\n#.....#..#\n#..*.....#\n#....x#..#\n#........#\n#........#\n#.x......#\n##########\n\nmessage 1 leaf left\n\nyyy#####yyy\nyyy#.#.#yyy\n####.o.####\n#.........#\n#....p.x..#\n#....*....#\n#..x......#\n#......x..#\n#.........#\n###########\n\nmessage no more leaves\nmessage welcome to winter\n\n\n", [3, 1, 1, 1, 2, 1, 1, 1, 2, 3, 2, 0, 0, 1, 2, 3, "undo", "undo", "undo", 2, 3, 3, 1, 3, 0, 1, 1, 1, 2, 2, 2, 3, 0, 1, 0, 3, 3, 1, 2, 1, 2, 3], "background wall:0,0,0,0,0,0,0,0,0,background background2:1,\n0,background:2,2,2,2,2,2,2,0,1,\n0,2,2,2,2,background playerr:3,2,2,0,0,\n0,2,background crate:4,2,background target:5,4,air3 background:6,air2 background:7,background vent1:8,0,\n0,2,2,2,2,2,4,2,0,0,\n0,2,2,2,2,2,2,2,0,0,\n0,7,7,air1 background target:9,air0 background:10,air4 background target:11,6,7,8,0,\n0,2,2,2,2,2,2,2,0,0,\n0,2,2,2,2,2,2,2,0,1,\n0,0,0,0,0,0,0,0,0,1,\n", 3, "1627770803266.147"] ], [ `gallery game: mini nomerads`, - ["title Mini Nomerads\nauthor Dan Williams\nhomepage www.activeupgames.com\n\n========\nOBJECTS\n========\n\nBackground\ngreen #11aa11\n00000\n01000\n00000\n00010\n00000\n\nTarget\nDarkBlue\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nWall\nBROWN orange darkbrown green\n31113\n10002\n10002\n10002\n32223\n\nPlayer\nBlack red White Blue\n.222.\n.020.\n11111\n.333.\n.3.3.\n\nball\nlightblue blue darkblue\n.011.\n01111\n11111\n11112\n.112.\n\nredball\nyellow orange\n..0..\n.000.\n00100\n.000.\n..0..\n\nballright\ntransparent\n\nballdown\ntransparent\n\nballleft\ntransparent\n\nballup\ntransparent\n\nrublock\nwhite lightgray gray\n0....\n01...\n011..\n0111.\n12222\n\nrdblock\nwhite lightgray gray\n00001\n0112.\n012..\n02...\n1....\n\nldblock\nwhite lightgray gray\n00001\n.1112\n..112\n...12\n....2\n\nlublock\nwhite lightgray gray\n....1\n...02\n..012\n.0112\n12222\n\nsrblock\npink #ffcccc #ff5599\n1....\n10...\n102..\n12...\n2....\n\nsdblock\npink #ffcccc #ff5599\n11110\n.002.\n..2..\n.....\n.....\n\nslblock\npink #ffcccc #ff5599\n....0\n...12\n..102\n...02\n....2\n\nsublock\npink #ffcccc #ff5599\n.....\n.....\n..1..\n.100.\n12222\n\nrugen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nrdgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nldgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nlugen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nsrgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nsdgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nslgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nsugen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nrugenbg\nyellow\n0....\n.....\n0.0..\n.....\n0.0.0\n\nrdgenbg\nyellow\n0.0.0\n.....\n0.0..\n.....\n0....\n\nldgenbg\nyellow\n0.0.0\n.....\n..0.0\n.....\n....0\n\nlugenbg\nyellow\n....0\n.....\n..0.0\n.....\n0.0.0\n\nsrgenbg\nyellow\n0....\n.....\n0.0..\n.....\n0....\n\nsdgenbg\nyellow\n0.0.0\n.....\n..0..\n.....\n.....\n\nslgenbg\nyellow\n....0\n.....\n..0.0\n.....\n....0\n\nsugenbg\nyellow\n.....\n.....\n..0..\n.....\n0.0.0\n\nstopper\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = Target\n* = ball\nX = redball\n@ = redball and Target\n1 = rublock\n2 = rdblock\n3 = ldblock\n4 = lublock\n5 = srblock\n6 = sdblock\n7 = slblock\n8 = sublock\na = rugen\nb = rdgen\nc = ldgen\nd = lugen\ne = srgen\nf = sdgen\ng = slgen\nh = sugen\nq = rugenbg\nw = rdgenbg\nv = ldgenbg\nr = lugenbg\nt = srgenbg\ny = sdgenbg\nu = slgenbg\ni = sugenbg\nblock = rublock or rdblock or lublock or ldblock or srblock or sdblock or slblock or sublock\nballdir = ballright or balldown or ballleft or ballup\ngenblock = rugen or rdgen or ldgen or lugen or srgen or sdgen or slgen or sugen\nbg = rugenbg or rdgenbg or ldgenbg or lugenbg or srgenbg or sdgenbg or slgenbg or sugenbg\n\n=======\nSOUNDS\n=======\n\nplayer MOVE 29986507\nblock create 8026309\ngenblock create 8026309\nstartgame 50407900\nrestart 90013309\nclosemessage 35794303\n\nundo 21150709\nsfx0 6213103 (redirect)\nsfx1 55324302 (split)\nsfx2 24543300 (get redball on target)\nsfx3 58317102 (destroy block)\nsfx4 21946837 (push block)\nsfx5 77326104 (ball thud against wall)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbg\nTarget, block, genblock\nPlayer, Wall, ball, redball\nballdir\nstopper\n\n======\nRULES\n======\n\n[ > Player | block ] -> [ > Player | > block ] sfx4\n[ > Player | ball ] -> [ > Player | > ball ] sfx4\n\n\n([ ball target ] -> [ redball target ])\n\n[ ball | redball ] -> [ redball | redball ] sfx2\n\n[ block wall ] -> [ wall ] sfx3\n\n\n(ball movement)\n[UP ball] -> [ball ballup]\n[DOWN ball] -> [ball balldown]\n[LEFT ball] -> [ball ballleft]\n[RIGHT ball] -> [ball ballright]\n\nUP [ ball ballup no stopper | no ball no Wall ] -> [ | ballup stopper ball ] again\nDOWN [ ball balldown no stopper | no ball no Wall ] -> [ | balldown stopper ball ] again\nLEFT [ ball ballleft no stopper | no ball no Wall ] -> [ | ballleft stopper ball ] again\nRIGHT [ ball ballright no stopper| no ball no Wall ] -> [ | ballright stopper ball ] again\n\n(ball collision)\nstartloop\nvertical [ | ballright slblock | ] -> [ ball balldown | no ball slblock | ball ballup ] sfx1\nhorizontal [ | balldown sublock | ] -> [ ball ballright | no ball sublock | ball ballleft ] sfx1\nvertical [ | ballleft srblock | ] -> [ ball balldown | no ball srblock | ball ballup ] sfx1\nhorizontal [ | ballup sdblock | ] -> [ ball ballright | no ball sdblock | ball ballleft ] sfx1\nendloop\n\n[ ballright lublock ] -> [ ballup lublock ] sfx0\n[ ballright ldblock ] -> [ ldblock balldown ] sfx0\n\n[ balldown rublock ] -> [ ballright rublock ] sfx0\n[ balldown lublock ] -> [ ballleft lublock ] sfx0\n\n[ ballleft rublock ] -> [ ballup rublock ] sfx0\n[ ballleft rdblock ] -> [ balldown rdblock ] sfx0\n\n[ ballup rdblock ] -> [ ballright rdblock ] sfx0\n[ ballup ldblock ] -> [ ballleft ldblock ] sfx0\n\n\n\n\n\n[ > ballleft ] -> [ > ballleft ]\n[ > ballright ] -> [ > ballright ]\n\n(block generation)\nlate up [ player rugen | no block ] -> [ player rugen | rublock ] \nlate up [ player rdgen | no block ] -> [ player rdgen | rdblock ] \nlate up [ player ldgen | no block ] -> [ player ldgen | ldblock ] \nlate up [ player lugen | no block ] -> [ player lugen | lublock ] \nlate up [ player srgen | no block ] -> [ player srgen | srblock ] \nlate up [ player sdgen | no block ] -> [ player sdgen | sdblock ] \nlate up [ player slgen | no block ] -> [ player slgen | slblock ] \nlate up [ player sugen | no block ] -> [ player sugen | sublock ] \n\n\n[stopper]->[]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll redball on Target\nAll target on redball\n\n=======\nLEVELS\n=======\n\nmessage Video games.\n\nMessage Push the blue ball. Blue balls stick to yellow targets and bounce off of blocks. You can push the blocks and generate them. Push blocks into walls to get rid of them.\n\nMessage Level 1 of 9\n\n\n###########\n#.........#\n#.p.*..O@.#\n#.........#\n###########\n\n\nMessage Level 2 of 9\n\n###########\n#.........#\n#.p.*..3..#\n#.........#\n#......O..#\n#......@..#\n###########\n\nmessage Level 3 of 9\n\n###########\n#.........#\n#.p.*...3.#\n#.........#\n#....O.4..#\n#....@....#\n###########\n\nmessage Level 4 of 9\n\n###########\n#......@..#\n#......O..#\n#.p.*.....#\n#..r......#\n#..d......#\n###########\n\nmessage Level 5 of 9\n\n#############\n#......O....#\n#......@....#\n#...........#\n#.p.*.......#\n#..q.w.v.r..#\n#..a.b.c.d..#\n#############\n\nmessage Level 6 of 9\n\n#############\n#...@O......#\n#....O......#\n#...........#\n#.p.*...7...#\n#...........#\n#..q.w.v.r..#\n#..a.b.c.d..#\n#############\n\nMessage Level 7 of 9\n\n###################\n#.................#\n#........o........#\n#.......o@o.......#\n#........o........#\n#.................#\n#.p.*.............#\n#.................#\n#.q.w.v.r.t.y.u.i.#\n#.a.b.c.d.e.f.g.h.#\n###################\n\nMessage Level 8 of 9\n\n###################\n#.................#\n#.................#\n#........@oo......#\n#........oo.......#\n#.................#\n#.p.*.............#\n#.................#\n#.q.w.v.r.t.y.u.i.#\n#.a.b.c.d.e.f.g.h.#\n###################\n\nMessage Level 9 of 9\n\n#######################\n#.....................#\n#.....................#\n#.....................#\n#.........ooo.........#\n#.........o@o.........#\n#.........ooo.........#\n#.....................#\n#...p.*...............#\n#.....................#\n#...q.w.v.r.t.y.u.i...#\n#...a.b.c.d.e.f.g.h...#\n#######################\n\nMessage You win! There will be a full version of this game coming out eventually. Follow @activeupgames if you want to know when that happens. I love video games!\n\n\n\n\n\n",[3,3,"undo",1,2,3,2,1,3,4,4,0,1,0,3,3,"undo","undo",0,0,3,2,2,1,2,3,3,3,2,3,0,1,1,1,0,3],"background wall:0,0,0,0,0,0,0,0,background:1,1,1,\n1,1,0,0,1,1,1,1,1,0,0,\n1,1,1,background lugenbg:2,background lugen:3,0,0,1,1,background player:4,1,\n1,0,0,1,1,1,1,1,0,0,background ballup redball:5,\n1,background lublock:6,1,1,0,0,background redball target:7,background target:8,1,1,1,\n0,0,1,1,1,1,1,0,0,1,1,\n1,1,1,0,0,0,0,0,0,0,0,\n",9,"1627769983359.2385"] + ["title Mini Nomerads\nauthor Dan Williams\nhomepage www.activeupgames.com\n\n========\nOBJECTS\n========\n\nBackground\ngreen #11aa11\n00000\n01000\n00000\n00010\n00000\n\nTarget\nDarkBlue\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nWall\nBROWN orange darkbrown green\n31113\n10002\n10002\n10002\n32223\n\nPlayer\nBlack red White Blue\n.222.\n.020.\n11111\n.333.\n.3.3.\n\nball\nlightblue blue darkblue\n.011.\n01111\n11111\n11112\n.112.\n\nredball\nyellow orange\n..0..\n.000.\n00100\n.000.\n..0..\n\nballright\ntransparent\n\nballdown\ntransparent\n\nballleft\ntransparent\n\nballup\ntransparent\n\nrublock\nwhite lightgray gray\n0....\n01...\n011..\n0111.\n12222\n\nrdblock\nwhite lightgray gray\n00001\n0112.\n012..\n02...\n1....\n\nldblock\nwhite lightgray gray\n00001\n.1112\n..112\n...12\n....2\n\nlublock\nwhite lightgray gray\n....1\n...02\n..012\n.0112\n12222\n\nsrblock\npink #ffcccc #ff5599\n1....\n10...\n102..\n12...\n2....\n\nsdblock\npink #ffcccc #ff5599\n11110\n.002.\n..2..\n.....\n.....\n\nslblock\npink #ffcccc #ff5599\n....0\n...12\n..102\n...02\n....2\n\nsublock\npink #ffcccc #ff5599\n.....\n.....\n..1..\n.100.\n12222\n\nrugen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nrdgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nldgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nlugen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nsrgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nsdgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nslgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nsugen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nrugenbg\nyellow\n0....\n.....\n0.0..\n.....\n0.0.0\n\nrdgenbg\nyellow\n0.0.0\n.....\n0.0..\n.....\n0....\n\nldgenbg\nyellow\n0.0.0\n.....\n..0.0\n.....\n....0\n\nlugenbg\nyellow\n....0\n.....\n..0.0\n.....\n0.0.0\n\nsrgenbg\nyellow\n0....\n.....\n0.0..\n.....\n0....\n\nsdgenbg\nyellow\n0.0.0\n.....\n..0..\n.....\n.....\n\nslgenbg\nyellow\n....0\n.....\n..0.0\n.....\n....0\n\nsugenbg\nyellow\n.....\n.....\n..0..\n.....\n0.0.0\n\nstopper\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = Target\n* = ball\nX = redball\n@ = redball and Target\n1 = rublock\n2 = rdblock\n3 = ldblock\n4 = lublock\n5 = srblock\n6 = sdblock\n7 = slblock\n8 = sublock\na = rugen\nb = rdgen\nc = ldgen\nd = lugen\ne = srgen\nf = sdgen\ng = slgen\nh = sugen\nq = rugenbg\nw = rdgenbg\nv = ldgenbg\nr = lugenbg\nt = srgenbg\ny = sdgenbg\nu = slgenbg\ni = sugenbg\nblock = rublock or rdblock or lublock or ldblock or srblock or sdblock or slblock or sublock\nballdir = ballright or balldown or ballleft or ballup\ngenblock = rugen or rdgen or ldgen or lugen or srgen or sdgen or slgen or sugen\nbg = rugenbg or rdgenbg or ldgenbg or lugenbg or srgenbg or sdgenbg or slgenbg or sugenbg\n\n=======\nSOUNDS\n=======\n\nplayer MOVE 29986507\nblock create 8026309\ngenblock create 8026309\nstartgame 50407900\nrestart 90013309\nclosemessage 35794303\n\nundo 21150709\nsfx0 6213103 (redirect)\nsfx1 55324302 (split)\nsfx2 24543300 (get redball on target)\nsfx3 58317102 (destroy block)\nsfx4 21946837 (push block)\nsfx5 77326104 (ball thud against wall)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbg\nTarget, block, genblock\nPlayer, Wall, ball, redball\nballdir\nstopper\n\n======\nRULES\n======\n\n[ > Player | block ] -> [ > Player | > block ] sfx4\n[ > Player | ball ] -> [ > Player | > ball ] sfx4\n\n\n([ ball target ] -> [ redball target ])\n\n[ ball | redball ] -> [ redball | redball ] sfx2\n\n[ block wall ] -> [ wall ] sfx3\n\n\n(ball movement)\n[UP ball] -> [ball ballup]\n[DOWN ball] -> [ball balldown]\n[LEFT ball] -> [ball ballleft]\n[RIGHT ball] -> [ball ballright]\n\nUP [ ball ballup no stopper | no ball no Wall ] -> [ | ballup stopper ball ] again\nDOWN [ ball balldown no stopper | no ball no Wall ] -> [ | balldown stopper ball ] again\nLEFT [ ball ballleft no stopper | no ball no Wall ] -> [ | ballleft stopper ball ] again\nRIGHT [ ball ballright no stopper| no ball no Wall ] -> [ | ballright stopper ball ] again\n\n(ball collision)\nstartloop\nvertical [ | ballright slblock | ] -> [ ball balldown | no ball slblock | ball ballup ] sfx1\nhorizontal [ | balldown sublock | ] -> [ ball ballright | no ball sublock | ball ballleft ] sfx1\nvertical [ | ballleft srblock | ] -> [ ball balldown | no ball srblock | ball ballup ] sfx1\nhorizontal [ | ballup sdblock | ] -> [ ball ballright | no ball sdblock | ball ballleft ] sfx1\nendloop\n\n[ ballright lublock ] -> [ ballup lublock ] sfx0\n[ ballright ldblock ] -> [ ldblock balldown ] sfx0\n\n[ balldown rublock ] -> [ ballright rublock ] sfx0\n[ balldown lublock ] -> [ ballleft lublock ] sfx0\n\n[ ballleft rublock ] -> [ ballup rublock ] sfx0\n[ ballleft rdblock ] -> [ balldown rdblock ] sfx0\n\n[ ballup rdblock ] -> [ ballright rdblock ] sfx0\n[ ballup ldblock ] -> [ ballleft ldblock ] sfx0\n\n\n\n\n\n[ > ballleft ] -> [ > ballleft ]\n[ > ballright ] -> [ > ballright ]\n\n(block generation)\nlate up [ player rugen | no block ] -> [ player rugen | rublock ] \nlate up [ player rdgen | no block ] -> [ player rdgen | rdblock ] \nlate up [ player ldgen | no block ] -> [ player ldgen | ldblock ] \nlate up [ player lugen | no block ] -> [ player lugen | lublock ] \nlate up [ player srgen | no block ] -> [ player srgen | srblock ] \nlate up [ player sdgen | no block ] -> [ player sdgen | sdblock ] \nlate up [ player slgen | no block ] -> [ player slgen | slblock ] \nlate up [ player sugen | no block ] -> [ player sugen | sublock ] \n\n\n[stopper]->[]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll redball on Target\nAll target on redball\n\n=======\nLEVELS\n=======\n\nmessage Video games.\n\nMessage Push the blue ball. Blue balls stick to yellow targets and bounce off of blocks. You can push the blocks and generate them. Push blocks into walls to get rid of them.\n\nMessage Level 1 of 9\n\n\n###########\n#.........#\n#.p.*..O@.#\n#.........#\n###########\n\n\nMessage Level 2 of 9\n\n###########\n#.........#\n#.p.*..3..#\n#.........#\n#......O..#\n#......@..#\n###########\n\nmessage Level 3 of 9\n\n###########\n#.........#\n#.p.*...3.#\n#.........#\n#....O.4..#\n#....@....#\n###########\n\nmessage Level 4 of 9\n\n###########\n#......@..#\n#......O..#\n#.p.*.....#\n#..r......#\n#..d......#\n###########\n\nmessage Level 5 of 9\n\n#############\n#......O....#\n#......@....#\n#...........#\n#.p.*.......#\n#..q.w.v.r..#\n#..a.b.c.d..#\n#############\n\nmessage Level 6 of 9\n\n#############\n#...@O......#\n#....O......#\n#...........#\n#.p.*...7...#\n#...........#\n#..q.w.v.r..#\n#..a.b.c.d..#\n#############\n\nMessage Level 7 of 9\n\n###################\n#.................#\n#........o........#\n#.......o@o.......#\n#........o........#\n#.................#\n#.p.*.............#\n#.................#\n#.q.w.v.r.t.y.u.i.#\n#.a.b.c.d.e.f.g.h.#\n###################\n\nMessage Level 8 of 9\n\n###################\n#.................#\n#.................#\n#........@oo......#\n#........oo.......#\n#.................#\n#.p.*.............#\n#.................#\n#.q.w.v.r.t.y.u.i.#\n#.a.b.c.d.e.f.g.h.#\n###################\n\nMessage Level 9 of 9\n\n#######################\n#.....................#\n#.....................#\n#.....................#\n#.........ooo.........#\n#.........o@o.........#\n#.........ooo.........#\n#.....................#\n#...p.*...............#\n#.....................#\n#...q.w.v.r.t.y.u.i...#\n#...a.b.c.d.e.f.g.h...#\n#######################\n\nMessage You win! There will be a full version of this game coming out eventually. Follow @activeupgames if you want to know when that happens. I love video games!\n\n\n\n\n\n", [3, 3, "undo", 1, 2, 3, 2, 1, 3, 4, 4, 0, 1, 0, 3, 3, "undo", "undo", 0, 0, 3, 2, 2, 1, 2, 3, 3, 3, 2, 3, 0, 1, 1, 1, 0, 3], "background wall:0,0,0,0,0,0,0,0,background:1,1,1,\n1,1,0,0,1,1,1,1,1,0,0,\n1,1,1,background lugenbg:2,background lugen:3,0,0,1,1,background player:4,1,\n1,0,0,1,1,1,1,1,0,0,background ballup redball:5,\n1,background lublock:6,1,1,0,0,background redball target:7,background target:8,1,1,1,\n0,0,1,1,1,1,1,0,0,1,1,\n1,1,1,0,0,0,0,0,0,0,0,\n", 9, "1627769983359.2385"] ], [ `gallery game: Broken Abacus`, - ["title Broken Abacus\nauthor Le Slo\nhomepage le-slo.itch.io/\n\nbackground_color #0A060f\nnoaction\nagain_interval 0.05\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nFloorL\n#9A9510 #7A4690\n01111\n01111\n01111\n01111\n01111\n\nFloorR\n#7A4690 #9A9510\n00001\n00001\n00001\n00001\n00001\n\nFloorT\n#9A9510 #8d6d9f\n00000\n11111\n11111\n11111\n11111\n\nFloorB\n#8d6d9f #9A9510\n00000\n00000\n00000\n00000\n11111\n\nCornerTL\n#9A9510 #7A4690\n00000\n01011\n00111\n01111\n01111\n\nCornerTR\n#9A9510 #7A4690\n00000\n11010\n11100\n11110\n11110\n\n\n\nCornerBL\n#9A9510 #7A4690\n01111\n01111\n00111\n01011\n00000\n\nCornerBR\n#7A4690 #9A9510\n00001\n00001\n00011\n00101\n11111\n\nPitT\n#5A3670 #3A2640 #1A1620\n00000\n11111\n11111\n22222\n22222\n\nPitWT\n #364355 #162335 #081118\n00000\n11111\n11111\n22222\n22222\n\n\nWallT\n#6187b9 #6d8caf\n00000\n00000\n00000\n00000\n00000\n\nPit\n#0A060f\n00000\n00000\n00000\n00000\n00000\n\nWall\n#6187b9 #6187b9 #465365\n00000\n11111\n11111\n11111\n22222\n\n\nBackground\n#7A4690 #7A4690\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\n#d6cF24\n.....\n.000.\n.0.0.\n.000.\n.....\n\nBarH\n#a69F10\n.....\n.....\n00000\n.....\n.....\n\nBarV\n#C6BF14 black\n..1..\n..1..\n..1..\n..1..\n..1..\n\nBarHN\nred\n.....\n.....\n00000\n.....\n.....\n\nBarVN\n#465365 #4A3500\n..1..\n..1..\n..1..\n..1..\n..1..\n\ncrate01\n#C6BF14 #7A7510 #9A9510 #d6cF24\n.....\n.003.\n.200.\n.120.\n.....\n\n\naux\ntransparent\n\ncantMove\ntransparent\n\n\ncantMove2\ntransparent\n\nauxPush\ntransparent\n\nauxSolid\n#23285b\n.....\n.000.\n.000.\n.000.\n.....\n\nauxPit\ntransparent\n\n\nAnim01\n#ccd7a5\n..0..\n.000.\n00.00\n.000.\n..0..\n\nAnim02\n#ccd7a5\n..0..\n.0.0.\n0.0.0\n.0.0.\n..0..\n\nAnim03\n#ccd7a5\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nAnim04\n#ccd7a5\n.....\n..0..\n.000.\n..0..\n.....\n\nAnim05\n#ccd7a5\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = barH\nI = barvn\nT = pit\n\nO = Target\n\n1 = Crate01\n2 = barH and BarVN and crate01\n\na = Crate01 and barh\nb = Crate01 and barvn\nc = barh and barvn\n\nd = CornerTL\ne = CornerTR\nf = CornerBL\ng = CornerBR\nh = FloorL\nj = FloorR\nk = FloorT\nl = FloorB\nplayer = barH or BarV or barhn or barvn\ncrate = crate01\n\nplayernotMove = barhn or barvn\n\nanims = anim01 or anim02 or anim03 or anim04 or anim05\n\nFloor = CornerTL or CornerTR or CornerBL or CornerBR or FloorL or FloorR or FloorT or FloorB\n=======\nSOUNDS\n=======\n\nsfx0 36772507\nsfx1 36772505\n\nbarh move 13941707\n\nsfx2 75593907\n\nsfx3 978108\n\nclosemessage 489108\n\nrestart 35665908\nundo 23271308\n\n(fall)\n\nsfx10 49054908\n\n(stumble)\n\nsfx9 8799108\n\nstartlevel 35665908\n\ntitlescreen 39484708\n\nendlevel 72619508\n\nstartgame 48479708\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFloor\n\npit\nauxPit\nauxSolid\ncantMove2\naux, auxPush\nTarget\npitT, pitWT\nbarvn, barv\n\nbarhn, BarH,\nWall, Crate\ncantMove\nWallT\nanims\n\n======\nRULES\n======\n\ndown [wall no WallT| wall] -> [Wall WallT | wall] \nup [pit no pitT | no pit no wall] -> [pit pitT | ] \nup [pit no pitWT | no pit wall] -> [pit pitWT | wall] \n\n(BLOQUEAMOS EL MOVIMIENTO DE LOS INACTIVOS)\n[> playernotMove] -> [playernotMove]\n\n(***************************HORIZONTAL ACTIVO*******************************)\n\n(-----------------CONTROLA HORIZONTAL------------------)\n\n(casos en los que se puede empujar la barra vertical)\nhorizontal[ > barh crate | barvn] -> [ > barh > crate | > barvn]\nhorizontal[ > barh crate | crate] -> [ > barh > crate| > crate ]\nhorizontal[ > barh crate barvn] -> [ > barh > crate > barvn]\n\n(hacemos el multiban)\nhorizontal[> Crate | crate] -> [> Crate | > Crate ]\n+ horizontal[> crate | barvn] -> [> crate | > barvn ] \n+ horizontal[> crate barvn] -> [> crate > barvn ]\n\n\n(Quitazmos el movimiento de las cajas)\nhorizontal[> crate ] -> [crate]\n\n(movemos todas las piezas verticales)\n[> barvn] [barvn] -> [> barvn] [> barvn]\n(horizontal[> barvn no auxSolid ] -> [> barvn auxSolid] sfx1\n+ vertical[auxSolid| barvn no auxSolid] -> [auxSolid | barvn auxSolid]\n\nhorizontal[> barvn][auxSolid barvn no auxPush] -> [> barvn][> barvn auxSolid auxPush] sfx0\n[auxSolid] -> [ ])\n\n(Empujamos cajas)\nhorizontal[ > barvn | Crate ] -> [ > barvn | > Crate]\n\n(hacemos el multiban)\nhorizontal[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ horizontal[> Crate | crate aux] -> [Crate aux | crate aux]\n+ horizontal[> Crate | wall] -> [crate aux | wall]\n\n(Vemos si nos chocamos)\nhorizontal[> barvn | crate Aux] -> [barvn cantMove | crate Aux] \nhorizontal [ > barvn | wall] -> [barvn cantMove | wall]\n\n(Paralizamos todas las barras)\nhorizontal[cantMove][> barvn] -> [cantMove] [barvn cantMove]\nhorizontal[cantMove][> crate] -> [cantMove] [crate ]\n\n(Empujar en horizontal)\nhorizontal[ > barh crate no BarVN| Crate no barh] -> [ > barh > crate| > Crate] \nhorizontal[ > barh crate no BarVN] -> [ > barh > crate]\n\nhorizontal[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ horizontal[> Crate | crate aux] -> [Crate aux | crate aux] \n+ horizontal[> Crate | wall] -> [crate aux | wall] \n+ horizontal[> Crate | cantMove] -> [crate aux | cantMove] \n\n(Vemos si nos chocamos)\nhorizontal[ > barh | wall ] -> [ barh cantMove2| wall]sfx9\n(Paralizamos todas las barras)\nhorizontal[> barh][barh cantMove2] -> [barh cantMove2][barh cantMove2]\n\nhorizontal[> crate cantMove] -> [crate cantMove]\nhorizontal[> crate cantMove2] -> [crate cantMove2]\nhorizontal[> crate | cantMove] -> [crate | cantMove]\n\n\nhorizontal[> barvn] [cantMove2] -> [barvn] [cantMove2] sfx9\n(Movemos lo que está pegado a la barra vertical)\n\nhorizontal[> barvn crate] -> [> barvn > crate]\nhorizontal[> crate] [cantMove2] -> [crate] [cantMove2]\n\n\nhorizontal[> barh crate no cantMove | no barvn] -> [> barh > crate no cantMove | no barvn]\n\n(Limpiamos el tablero)\n[aux] -> []\n[cantMove] -> []\n[cantMove2] -> []\n[auxPush] -> []\n\n\n(-----------------CONTROLA VERTICAL------------------)\n\nvertical [> crate ] -> [crate] \n(casos en los que se puede empujar la barra vertical)\nvertical[ > barh | crate] -> [ > barh | > crate ]\nvertical[ > barh crate barvn] -> [ > barh > crate > barvn] \n\n\n(hacemos el multiban)\nvertical[> Crate | crate] -> [> Crate | > Crate ] \n+ vertical[> crate | barvn crate] -> [> crate | > barvn crate] \n+ vertical[> crate barvn] -> [> crate > barvn ] \n\n\n(Quitazmos el movimiento de las cajas)\nvertical [> crate ] -> [crate] \nvertical [ > barvn | wall] -> [barvn cantMove | wall]\n\n(movemos todas las piezas verticales)\n[> barvn] [barvn] -> [> barvn] [> barvn]\n(vertical[> barvn no auxSolid ] -> [> barvn auxSolid] \n+ vertical[auxSolid| barvn no auxSolid] -> [auxSolid | barvn auxSolid]\n\nvertical[> barvn][auxSolid barvn no auxPush] -> [> barvn][> barvn auxSolid auxPush] sfx0\n[auxSolid] -> [ ])\n\n(Empujamos cajas)\nvertical[ > barvn crate| Crate ] -> [ > barvn crate| > Crate]\n\n(hacemos el multiban)\nvertical[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ vertical[> Crate | crate aux] -> [Crate aux | crate aux]\n+ vertical[> Crate | wall] -> [crate aux | wall]\n\n(Vemos si nos chocamos)\nvertical[ > barvn | wall] -> [barvn cantMove | wall] \n\n(Paralizamos todas las barras)\nvertical[cantMove][> barvn] -> [cantMove] [barvn cantMove]\nvertical[cantMove][> crate] -> [cantMove] [crate ]\n(En vertical)\nvertical[ > barh | Crate ] -> [ > barh | > Crate]\nvertical[ > barh crate] -> [ > barh > crate] \n\nvertical[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ vertical[> Crate | crate aux] -> [Crate aux | crate aux] \n+ vertical[> Crate | wall] -> [crate aux | wall] \n\n(Vemos si nos chocamos)\nvertical[ > barh | wall ] -> [ barh cantMove2| wall]\nvertical[ > barh | crate aux ] -> [ barh cantMove2| crate aux]\n(Paralizamos todas las barras)\nvertical[> barh][barh cantMove2] -> [barh cantMove2][barh cantMove2] sfx9\nvertical [> barvn] [cantMove2] -> [barvn] [cantMove2] sfx9\n\nvertical[> crate] [cantMove2] -> [crate] [cantMove2]\n\n(Movemos lo que está pegado a la barra vertical)\nvertical[> barvn crate] -> [> barvn > crate]\n\nvertical[> barh crate] -> [> barh > crate]\n(Limpiamos el tablero)\n[aux] -> []\n[cantMove] -> []\n[cantMove2] -> []\n[auxPush] -> []\n\n(\n(comprobamos si empujamos y nos chocamos con la barra vertical)\nhorizontal[ > barh crate | barvn] -> [ > barh > crate | > barvn auxPush]\nhorizontal[ > barh barvn crate ] -> [ > barh > crate > barvn auxPush]\n\n[> barVN auxPush] [barVn no auxPush] -> [> barVN auxPush][> barVN auxPush]\n\nhorizontal [ > barvn | wall] -> [barvn cantMove | wall]\n\n[cantMove][> barvn] -> [cantMove] [barvn cantMove]\n\nhorizontal[ > barvn | Crate ] -> [ > barvn | > Crate]\n\n[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ [> Crate | crate aux] -> [Crate aux | crate aux]\n+ [> Crate | wall] -> [crate aux | wall]\n\nhorizontal[> barvn | crate Aux] -> [barvn cantMove | crate Aux]\n\n[cantMove][> barvn] -> [cantMove] [barvn cantMove]\n\n[> barvn crate] -> [> barvn > crate]\n\nhorizontal[ > barh | wall ] -> [ barh cantMove| wall]\n\n(Movimiento básico)\n\n(Empujar en horizontal)\nhorizontal[ > barh crate | Crate no barh] -> [ > barh > crate| > Crate] sfx0\nhorizontal[ > barh crate no BarVN] -> [ > barh > crate]\n(En vertical)\nvertical[ > barh | Crate ] -> [ > barh | > Crate]\nvertical[ > barh crate] -> [ > barh > crate]\n\n[aux] -> []\n\n[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ [> Crate | crate aux] -> [Crate aux | crate aux]\n+ [> Crate | wall] -> [crate aux | wall]\n\nhorizontal[> barh | crate Aux] -> [> barh | crate Aux]\nvertical[> barh | wall] -> [barh cantMove | wall]\n[cantMove][> crate] -> [cantMove] [crate cantMove]\n\n[cantMove][> crate] -> [cantMove][crate]\n[cantMove][> barvn] -> [cantMove][barvn]\n\n[aux] -> []\n[cantMove] -> []\n[auxPush] -> []\n\n)\n\n\n(\nvertical[ > barh | Crate ] -> [ > barh | > Crate]\n\n\nhorizontal[ > barv | Crate ] -> [ > barv | > Crate]\nvertical[ > barv crate | Crate no barv] -> [ > barv > crate| > Crate] sfx0\n\n\n\nvertical[> barh | crate Aux] -> [barh cantMove | crate Aux]\nhorizontal[> barv | crate Aux] -> [barv cantMove | crate Aux]\n[> player | wall] -> [player cantMove| wall]\n\n\n\n\n[> player][cantMove] ->[player][cantMove]\nvertical [> barv no barHN crate] -> [> barv > crate]\nhorizontal [> barv crate] -> [> barv > crate]\nhorizontal [> barh no barvN crate] -> [> barh > crate]\nvertical [> barh crate] -> [> barh > crate]\n[aux] -> []\n[cantMove] -> [])\n\n(Cambiar los personajes)\n\nvertical [ > barvn | crate no barvn] -> [ > barvn | crate no barvn] sfx2\nhorizontal [ > barh | crate no barh] -> [ > barh | crate no barh] sfx2\nhorizontal [ > barh crate | barvn] -> [ > barh crate | barvn] sfx2\n[> crate no barh no barvn ] -> [> crate no barh no barvn ] sfx0\n\n[action player] [barVN]-> [action player][barV aux]\n[action player] [barV no aux]-> [action player][barVN]\n\n[aux] -> []\n\n[action player] [barHN]-> [action player][barH aux]\n[action player] [barH no aux]-> [action player][barHN]\n\n[aux] -> []\n\n\nlate[anim05] -> []\nlate[anim04] -> [anim05]\nlate[anim03] -> [anim04]\nlate[anim02] -> [anim03]\nlate[anim01] -> [anim02]\n\n\nlate random[] -> [cantMove]\n\nlate[barvn pit no auxSolid] -> [barVn pit auxSolid] \nlate[cantMove][barvn no pit] -> [cantMove2][barVn] \n\nlate[barvn barh crate auxSolid no auxPit] -> [barvn barh crate auxSolid auxPit]\n\nlate[auxPit][barh pit no auxPit] -> [auxPit][barh pit auxPit] \nlate[auxPit][cantMove][barh no pit] -> [auxPit][cantMove2][barh] \n\nlate [CantMove][barVn auxSolid] -> [CantMove] [Anim01 auxSolid]\nlate [CantMove][barH auxPit] -> [CantMove] [Anim01 auxPit]\n\nlate [CantMove] -> []\nlate [CantMove2] -> []\nlate [auxPit] -> []\nlate [auxSolid] -> [ ]\n\nlate [aux] -> []\n\nlate random[] -> [cantMove]\n\nlate[barh pit no auxPit] -> [barh pit auxPit] \nlate[cantMove][barh no pit] -> [cantMove2][barh] \n\nlate[barvn barh crate auxPit no auxSolid] -> [barvn barh crate auxSolid auxPit]\n\nlate[auxSolid][barvn pit no auxSolid] -> [auxSolid][barvn pit auxSolid] \nlate[auxSolid][cantMove][barvn no pit] -> [auxSolid][cantMove2][barvn] \n\nlate [CantMove][barVn auxSolid] -> [CantMove] [Anim01 auxSolid]\nlate [CantMove][barh auxPit] -> [CantMove] [Anim01 auxPit]\n\nlate [CantMove] -> []\nlate [CantMove2] -> []\nlate [auxPit] -> []\nlate [auxSolid] -> [ ]\n\nlate [aux] -> []\n\nlate[crate no player pit] -> [pit Anim01]\n\nlate [anims] -> [anims] again\nlate[Anim01] -> [Anim01] sfx10\n(late[barvn aux pit no auxSolid] -> [barvn auxSolid aux pit] \n+late vertical [barvn auxSolid| barvn pit no auxSolid] -> [barvn auxSolid | barvn pit auxSolid aux] \n+late vertical [cantMove][barvn auxSolid| barvn no pit] -> [cantMove2] [barvn auxSolid | barvn] \n+late [barvn auxSolid crate barh no auxPit] -> [barvn auxSolid auxPit crate barh] \n+late [barvn auxPit crate barh no auxSolid] -> [barvn auxSolid auxPit crate barh] \n+late horizontal [barh auxPit | barh pit no auxPit] -> [barh auxPit |pit barh auxPit aux] \n+late horizontal [cantMove][barh auxSolid| barh no pit] -> [cantMove2][barh auxSolid | barh] \n\nlate [CantMove][player auxSolid] -> [CantMove] [auxSolid]\nlate [CantMove][player auxPit] -> [CantMove] [auxPit]\n\nlate [CantMove] -> []\nlate [CantMove2] -> []\nlate [auxPit] -> []\nlate [auxSolid] -> [ ]\nlate [aux] -> []\n\nrandom late[barh no aux] -> [barh aux]\nrandom late [] -> [cantMove]\n\nlate[barh aux pit no auxPit] -> [barh auxPit aux pit] \n+late vertical [barvn auxSolid| barvn pit no auxSolid] -> [barvn auxSolid | barvn pit auxSolid aux] \n+late vertical [cantMove][barvn auxSolid| barvn no pit] -> [cantMove2] [barvn auxSolid | barvn] \n+late [barvn auxSolid crate barh no auxPit] -> [barvn auxSolid auxPit crate barh] \n+late [barvn auxPit crate barh no auxSolid] -> [barvn auxSolid auxPit crate barh] \n+late horizontal [barh auxPit | barh pit no auxSolid] -> [barh auxPit |pit barh auxPit aux] \n+late horizontal [cantMove][barh auxSolid| barh no pit] -> [cantMove2][barh auxSolid | barh] \n\nlate [CantMove][player auxSolid] -> [CantMove] [auxSolid]\nlate [CantMove][player auxPit] -> [CantMove] [auxPit])\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll target on crate\nAll barv on Crate\n(no barh)\n=======\nLEVELS\n=======\n\nmessage . ||||-----| |||||----- \n\n###########\n#d.......e#\n#..1.1.1..#\n#...ppp...#\n#...ooo...#\n#f.......g#\n###########\nttttttttttt\n\nmessage . |||-----|| |||||----- \n\n#########\n#d.....e#\n#...o1#.#\n#.ppo1..#\n#.#.o1..#\n#f.....g#\n#########\nttttttttt\n\nmessage . ||-----||| |||||----- \n\n#########\n#d..1..e#\n#.o..i..#\n#.pppi..#\n#.o..i..#\n#f..1..g#\n#########\nttttttttt\n\nmessage . |-----|||| |||||----- \n\n#############\n#d.....e#d.e#\n#.......#.o.#\n#..i.#1.#f..#\n#.pcp#1.##o.#\n#..i..1.....#\n#.........o.#\n#f.........g#\n#############\nttttttttttttt\n\nmessage . |||||----- ||||-----| \n\nttt###ttt\n####i####\n#d..i.oe#\n#..1i1..#\n#f..i.o.#\n##pp2...#\nt#f...og#\nt########\nttttttttt \n\nmessage . ||||-----| ||||-----| \n \n########### \n#d.......e# \n#........g# \n#.o.bo##### \n#...i.e#### \n#.apcag#### \n#.o.bo##### \n#........e# \n#f.......g# \n########### \nttttttttttt \n \nmessage . |||-----|| ||||-----| \n \n#######\n#d..1e#\n#o..i.#\n#.ppi.#\n#o..i.#\n#f..1g#\n#######\nttttttt \n \nmessage . ||-----||| ||||-----| \n \n \ntttt### \n#####o# \n#d....# \n#i.pp.# \n#i.11.# \n#f.g#o# \n####### \nttttttt \n \nmessage . |-----|||| ||||-----| \n \n \n###ttttt \n#o###### \n#.#d..e# \n#o#.ppg# \n#..i1.##\n#o.i.1e#\n#..i1..#\n#f....g#\n########\ntttttttt\n\nmessage . |||||----- |||-----|| \n\nttt######\nttt#de#1#\nttt#....#\n####i.1.#\n#de#i1..#\n#.o..pp.#\n#foog#fg#\n#########\nttttttttt\n\nmessage . ||||-----| |||-----|| \n\nt#####tttt\n##d.e##ttt\n#d.i.###tt\n#f.b..e#tt\n##..pa.###\n#o.#....e#\n#f...g#og#\n##########\ntttttttttt\n\nmessage . |||-----|| |||-----|| \n\nmessage CRACK!\n\n###ttttttttttt\n#d.tt.tt.#tttt\n#..ttttttt.t#t\n#...ttttt.t.#t\n#..i..tt.ttttt\n#.acpttttt.#tt\n#..i.tttttt#tt\n#...#t##tot#tt\n#f....ttt#tttt\n######tttttttt\ntttttttttttttt\n\nmessage . ||-----/|| |||-----|| \n\n##########\n#dooo..e##\n#.......e#\n#..i.#1..#\n#.pcp#1.g#\n#..i..1t##\n#......t#t\n#f.....t#t\n#########t\ntttttttttt\n\nmessage . |-----/\\|| |||-----|| \n\n############\n#d...tttttt#\n#.oootttttt#\n#...i..1ttt#\n#.aa2tt..o.#\n#f...tttttt#\n############\ntttttttttttt\n\nmessage . |\\//\\----- ||-----/|| \n\n#############\n#d....ettd.e#\n#......tt...#\n#.pp...tt#.o#\n#.1i...tt...#\n#.1i..#o....#\n#..i...tt...#\n#f....gttf.g#\n#############\nttttttttttttt\n\n\nmessage . |\\\\/-----/ ||-----/|\\ \n\n\n########\n#d..o.e#\n#..pp..#\n#ttttto#\n#..11b.#\n#f..oig#\n########\ntttttttt\n\nmessage . - || < \\ < / | | \\ / - / \n\n",[2,2,2,3,3,3,3,3,0,0,1,1,2,1,1,0,0,1,1,3,3,3,3,2,1,1,1,1,0,0,3,1,2,3,3,1,0,0,0,3,3,3],"background wall wallt:0,0,0,0,0,0,0,0,background wall:1,background pit pitwt:2,1,background cornertl:3,background:4,\n4,4,4,4,background cornerbl:5,1,2,1,4,4,4,4,4,\n4,4,1,2,1,4,4,4,4,4,4,4,1,\n2,1,background barvn:6,background barvn crate01:7,6,4,4,4,4,1,2,1,4,\nbackground barh:8,0,1,4,4,4,1,2,1,4,8,background crate01:9,9,\n4,4,4,1,2,1,background cornertr:10,8,4,4,4,4,4,\n1,2,0,0,0,0,1,4,4,4,1,2,1,\n3,4,5,1,4,4,4,1,2,1,4,background target:11,4,\n11,4,11,4,1,2,1,10,4,4,4,4,4,\nbackground cornerbr:12,1,2,0,0,0,0,0,0,0,0,1,2,\n",7,"1627770023925.0144"] + ["title Broken Abacus\nauthor Le Slo\nhomepage le-slo.itch.io/\n\nbackground_color #0A060f\nnoaction\nagain_interval 0.05\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nFloorL\n#9A9510 #7A4690\n01111\n01111\n01111\n01111\n01111\n\nFloorR\n#7A4690 #9A9510\n00001\n00001\n00001\n00001\n00001\n\nFloorT\n#9A9510 #8d6d9f\n00000\n11111\n11111\n11111\n11111\n\nFloorB\n#8d6d9f #9A9510\n00000\n00000\n00000\n00000\n11111\n\nCornerTL\n#9A9510 #7A4690\n00000\n01011\n00111\n01111\n01111\n\nCornerTR\n#9A9510 #7A4690\n00000\n11010\n11100\n11110\n11110\n\n\n\nCornerBL\n#9A9510 #7A4690\n01111\n01111\n00111\n01011\n00000\n\nCornerBR\n#7A4690 #9A9510\n00001\n00001\n00011\n00101\n11111\n\nPitT\n#5A3670 #3A2640 #1A1620\n00000\n11111\n11111\n22222\n22222\n\nPitWT\n #364355 #162335 #081118\n00000\n11111\n11111\n22222\n22222\n\n\nWallT\n#6187b9 #6d8caf\n00000\n00000\n00000\n00000\n00000\n\nPit\n#0A060f\n00000\n00000\n00000\n00000\n00000\n\nWall\n#6187b9 #6187b9 #465365\n00000\n11111\n11111\n11111\n22222\n\n\nBackground\n#7A4690 #7A4690\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\n#d6cF24\n.....\n.000.\n.0.0.\n.000.\n.....\n\nBarH\n#a69F10\n.....\n.....\n00000\n.....\n.....\n\nBarV\n#C6BF14 black\n..1..\n..1..\n..1..\n..1..\n..1..\n\nBarHN\nred\n.....\n.....\n00000\n.....\n.....\n\nBarVN\n#465365 #4A3500\n..1..\n..1..\n..1..\n..1..\n..1..\n\ncrate01\n#C6BF14 #7A7510 #9A9510 #d6cF24\n.....\n.003.\n.200.\n.120.\n.....\n\n\naux\ntransparent\n\ncantMove\ntransparent\n\n\ncantMove2\ntransparent\n\nauxPush\ntransparent\n\nauxSolid\n#23285b\n.....\n.000.\n.000.\n.000.\n.....\n\nauxPit\ntransparent\n\n\nAnim01\n#ccd7a5\n..0..\n.000.\n00.00\n.000.\n..0..\n\nAnim02\n#ccd7a5\n..0..\n.0.0.\n0.0.0\n.0.0.\n..0..\n\nAnim03\n#ccd7a5\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nAnim04\n#ccd7a5\n.....\n..0..\n.000.\n..0..\n.....\n\nAnim05\n#ccd7a5\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = barH\nI = barvn\nT = pit\n\nO = Target\n\n1 = Crate01\n2 = barH and BarVN and crate01\n\na = Crate01 and barh\nb = Crate01 and barvn\nc = barh and barvn\n\nd = CornerTL\ne = CornerTR\nf = CornerBL\ng = CornerBR\nh = FloorL\nj = FloorR\nk = FloorT\nl = FloorB\nplayer = barH or BarV or barhn or barvn\ncrate = crate01\n\nplayernotMove = barhn or barvn\n\nanims = anim01 or anim02 or anim03 or anim04 or anim05\n\nFloor = CornerTL or CornerTR or CornerBL or CornerBR or FloorL or FloorR or FloorT or FloorB\n=======\nSOUNDS\n=======\n\nsfx0 36772507\nsfx1 36772505\n\nbarh move 13941707\n\nsfx2 75593907\n\nsfx3 978108\n\nclosemessage 489108\n\nrestart 35665908\nundo 23271308\n\n(fall)\n\nsfx10 49054908\n\n(stumble)\n\nsfx9 8799108\n\nstartlevel 35665908\n\ntitlescreen 39484708\n\nendlevel 72619508\n\nstartgame 48479708\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFloor\n\npit\nauxPit\nauxSolid\ncantMove2\naux, auxPush\nTarget\npitT, pitWT\nbarvn, barv\n\nbarhn, BarH,\nWall, Crate\ncantMove\nWallT\nanims\n\n======\nRULES\n======\n\ndown [wall no WallT| wall] -> [Wall WallT | wall] \nup [pit no pitT | no pit no wall] -> [pit pitT | ] \nup [pit no pitWT | no pit wall] -> [pit pitWT | wall] \n\n(BLOQUEAMOS EL MOVIMIENTO DE LOS INACTIVOS)\n[> playernotMove] -> [playernotMove]\n\n(***************************HORIZONTAL ACTIVO*******************************)\n\n(-----------------CONTROLA HORIZONTAL------------------)\n\n(casos en los que se puede empujar la barra vertical)\nhorizontal[ > barh crate | barvn] -> [ > barh > crate | > barvn]\nhorizontal[ > barh crate | crate] -> [ > barh > crate| > crate ]\nhorizontal[ > barh crate barvn] -> [ > barh > crate > barvn]\n\n(hacemos el multiban)\nhorizontal[> Crate | crate] -> [> Crate | > Crate ]\n+ horizontal[> crate | barvn] -> [> crate | > barvn ] \n+ horizontal[> crate barvn] -> [> crate > barvn ]\n\n\n(Quitazmos el movimiento de las cajas)\nhorizontal[> crate ] -> [crate]\n\n(movemos todas las piezas verticales)\n[> barvn] [barvn] -> [> barvn] [> barvn]\n(horizontal[> barvn no auxSolid ] -> [> barvn auxSolid] sfx1\n+ vertical[auxSolid| barvn no auxSolid] -> [auxSolid | barvn auxSolid]\n\nhorizontal[> barvn][auxSolid barvn no auxPush] -> [> barvn][> barvn auxSolid auxPush] sfx0\n[auxSolid] -> [ ])\n\n(Empujamos cajas)\nhorizontal[ > barvn | Crate ] -> [ > barvn | > Crate]\n\n(hacemos el multiban)\nhorizontal[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ horizontal[> Crate | crate aux] -> [Crate aux | crate aux]\n+ horizontal[> Crate | wall] -> [crate aux | wall]\n\n(Vemos si nos chocamos)\nhorizontal[> barvn | crate Aux] -> [barvn cantMove | crate Aux] \nhorizontal [ > barvn | wall] -> [barvn cantMove | wall]\n\n(Paralizamos todas las barras)\nhorizontal[cantMove][> barvn] -> [cantMove] [barvn cantMove]\nhorizontal[cantMove][> crate] -> [cantMove] [crate ]\n\n(Empujar en horizontal)\nhorizontal[ > barh crate no BarVN| Crate no barh] -> [ > barh > crate| > Crate] \nhorizontal[ > barh crate no BarVN] -> [ > barh > crate]\n\nhorizontal[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ horizontal[> Crate | crate aux] -> [Crate aux | crate aux] \n+ horizontal[> Crate | wall] -> [crate aux | wall] \n+ horizontal[> Crate | cantMove] -> [crate aux | cantMove] \n\n(Vemos si nos chocamos)\nhorizontal[ > barh | wall ] -> [ barh cantMove2| wall]sfx9\n(Paralizamos todas las barras)\nhorizontal[> barh][barh cantMove2] -> [barh cantMove2][barh cantMove2]\n\nhorizontal[> crate cantMove] -> [crate cantMove]\nhorizontal[> crate cantMove2] -> [crate cantMove2]\nhorizontal[> crate | cantMove] -> [crate | cantMove]\n\n\nhorizontal[> barvn] [cantMove2] -> [barvn] [cantMove2] sfx9\n(Movemos lo que está pegado a la barra vertical)\n\nhorizontal[> barvn crate] -> [> barvn > crate]\nhorizontal[> crate] [cantMove2] -> [crate] [cantMove2]\n\n\nhorizontal[> barh crate no cantMove | no barvn] -> [> barh > crate no cantMove | no barvn]\n\n(Limpiamos el tablero)\n[aux] -> []\n[cantMove] -> []\n[cantMove2] -> []\n[auxPush] -> []\n\n\n(-----------------CONTROLA VERTICAL------------------)\n\nvertical [> crate ] -> [crate] \n(casos en los que se puede empujar la barra vertical)\nvertical[ > barh | crate] -> [ > barh | > crate ]\nvertical[ > barh crate barvn] -> [ > barh > crate > barvn] \n\n\n(hacemos el multiban)\nvertical[> Crate | crate] -> [> Crate | > Crate ] \n+ vertical[> crate | barvn crate] -> [> crate | > barvn crate] \n+ vertical[> crate barvn] -> [> crate > barvn ] \n\n\n(Quitazmos el movimiento de las cajas)\nvertical [> crate ] -> [crate] \nvertical [ > barvn | wall] -> [barvn cantMove | wall]\n\n(movemos todas las piezas verticales)\n[> barvn] [barvn] -> [> barvn] [> barvn]\n(vertical[> barvn no auxSolid ] -> [> barvn auxSolid] \n+ vertical[auxSolid| barvn no auxSolid] -> [auxSolid | barvn auxSolid]\n\nvertical[> barvn][auxSolid barvn no auxPush] -> [> barvn][> barvn auxSolid auxPush] sfx0\n[auxSolid] -> [ ])\n\n(Empujamos cajas)\nvertical[ > barvn crate| Crate ] -> [ > barvn crate| > Crate]\n\n(hacemos el multiban)\nvertical[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ vertical[> Crate | crate aux] -> [Crate aux | crate aux]\n+ vertical[> Crate | wall] -> [crate aux | wall]\n\n(Vemos si nos chocamos)\nvertical[ > barvn | wall] -> [barvn cantMove | wall] \n\n(Paralizamos todas las barras)\nvertical[cantMove][> barvn] -> [cantMove] [barvn cantMove]\nvertical[cantMove][> crate] -> [cantMove] [crate ]\n(En vertical)\nvertical[ > barh | Crate ] -> [ > barh | > Crate]\nvertical[ > barh crate] -> [ > barh > crate] \n\nvertical[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ vertical[> Crate | crate aux] -> [Crate aux | crate aux] \n+ vertical[> Crate | wall] -> [crate aux | wall] \n\n(Vemos si nos chocamos)\nvertical[ > barh | wall ] -> [ barh cantMove2| wall]\nvertical[ > barh | crate aux ] -> [ barh cantMove2| crate aux]\n(Paralizamos todas las barras)\nvertical[> barh][barh cantMove2] -> [barh cantMove2][barh cantMove2] sfx9\nvertical [> barvn] [cantMove2] -> [barvn] [cantMove2] sfx9\n\nvertical[> crate] [cantMove2] -> [crate] [cantMove2]\n\n(Movemos lo que está pegado a la barra vertical)\nvertical[> barvn crate] -> [> barvn > crate]\n\nvertical[> barh crate] -> [> barh > crate]\n(Limpiamos el tablero)\n[aux] -> []\n[cantMove] -> []\n[cantMove2] -> []\n[auxPush] -> []\n\n(\n(comprobamos si empujamos y nos chocamos con la barra vertical)\nhorizontal[ > barh crate | barvn] -> [ > barh > crate | > barvn auxPush]\nhorizontal[ > barh barvn crate ] -> [ > barh > crate > barvn auxPush]\n\n[> barVN auxPush] [barVn no auxPush] -> [> barVN auxPush][> barVN auxPush]\n\nhorizontal [ > barvn | wall] -> [barvn cantMove | wall]\n\n[cantMove][> barvn] -> [cantMove] [barvn cantMove]\n\nhorizontal[ > barvn | Crate ] -> [ > barvn | > Crate]\n\n[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ [> Crate | crate aux] -> [Crate aux | crate aux]\n+ [> Crate | wall] -> [crate aux | wall]\n\nhorizontal[> barvn | crate Aux] -> [barvn cantMove | crate Aux]\n\n[cantMove][> barvn] -> [cantMove] [barvn cantMove]\n\n[> barvn crate] -> [> barvn > crate]\n\nhorizontal[ > barh | wall ] -> [ barh cantMove| wall]\n\n(Movimiento básico)\n\n(Empujar en horizontal)\nhorizontal[ > barh crate | Crate no barh] -> [ > barh > crate| > Crate] sfx0\nhorizontal[ > barh crate no BarVN] -> [ > barh > crate]\n(En vertical)\nvertical[ > barh | Crate ] -> [ > barh | > Crate]\nvertical[ > barh crate] -> [ > barh > crate]\n\n[aux] -> []\n\n[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ [> Crate | crate aux] -> [Crate aux | crate aux]\n+ [> Crate | wall] -> [crate aux | wall]\n\nhorizontal[> barh | crate Aux] -> [> barh | crate Aux]\nvertical[> barh | wall] -> [barh cantMove | wall]\n[cantMove][> crate] -> [cantMove] [crate cantMove]\n\n[cantMove][> crate] -> [cantMove][crate]\n[cantMove][> barvn] -> [cantMove][barvn]\n\n[aux] -> []\n[cantMove] -> []\n[auxPush] -> []\n\n)\n\n\n(\nvertical[ > barh | Crate ] -> [ > barh | > Crate]\n\n\nhorizontal[ > barv | Crate ] -> [ > barv | > Crate]\nvertical[ > barv crate | Crate no barv] -> [ > barv > crate| > Crate] sfx0\n\n\n\nvertical[> barh | crate Aux] -> [barh cantMove | crate Aux]\nhorizontal[> barv | crate Aux] -> [barv cantMove | crate Aux]\n[> player | wall] -> [player cantMove| wall]\n\n\n\n\n[> player][cantMove] ->[player][cantMove]\nvertical [> barv no barHN crate] -> [> barv > crate]\nhorizontal [> barv crate] -> [> barv > crate]\nhorizontal [> barh no barvN crate] -> [> barh > crate]\nvertical [> barh crate] -> [> barh > crate]\n[aux] -> []\n[cantMove] -> [])\n\n(Cambiar los personajes)\n\nvertical [ > barvn | crate no barvn] -> [ > barvn | crate no barvn] sfx2\nhorizontal [ > barh | crate no barh] -> [ > barh | crate no barh] sfx2\nhorizontal [ > barh crate | barvn] -> [ > barh crate | barvn] sfx2\n[> crate no barh no barvn ] -> [> crate no barh no barvn ] sfx0\n\n[action player] [barVN]-> [action player][barV aux]\n[action player] [barV no aux]-> [action player][barVN]\n\n[aux] -> []\n\n[action player] [barHN]-> [action player][barH aux]\n[action player] [barH no aux]-> [action player][barHN]\n\n[aux] -> []\n\n\nlate[anim05] -> []\nlate[anim04] -> [anim05]\nlate[anim03] -> [anim04]\nlate[anim02] -> [anim03]\nlate[anim01] -> [anim02]\n\n\nlate random[] -> [cantMove]\n\nlate[barvn pit no auxSolid] -> [barVn pit auxSolid] \nlate[cantMove][barvn no pit] -> [cantMove2][barVn] \n\nlate[barvn barh crate auxSolid no auxPit] -> [barvn barh crate auxSolid auxPit]\n\nlate[auxPit][barh pit no auxPit] -> [auxPit][barh pit auxPit] \nlate[auxPit][cantMove][barh no pit] -> [auxPit][cantMove2][barh] \n\nlate [CantMove][barVn auxSolid] -> [CantMove] [Anim01 auxSolid]\nlate [CantMove][barH auxPit] -> [CantMove] [Anim01 auxPit]\n\nlate [CantMove] -> []\nlate [CantMove2] -> []\nlate [auxPit] -> []\nlate [auxSolid] -> [ ]\n\nlate [aux] -> []\n\nlate random[] -> [cantMove]\n\nlate[barh pit no auxPit] -> [barh pit auxPit] \nlate[cantMove][barh no pit] -> [cantMove2][barh] \n\nlate[barvn barh crate auxPit no auxSolid] -> [barvn barh crate auxSolid auxPit]\n\nlate[auxSolid][barvn pit no auxSolid] -> [auxSolid][barvn pit auxSolid] \nlate[auxSolid][cantMove][barvn no pit] -> [auxSolid][cantMove2][barvn] \n\nlate [CantMove][barVn auxSolid] -> [CantMove] [Anim01 auxSolid]\nlate [CantMove][barh auxPit] -> [CantMove] [Anim01 auxPit]\n\nlate [CantMove] -> []\nlate [CantMove2] -> []\nlate [auxPit] -> []\nlate [auxSolid] -> [ ]\n\nlate [aux] -> []\n\nlate[crate no player pit] -> [pit Anim01]\n\nlate [anims] -> [anims] again\nlate[Anim01] -> [Anim01] sfx10\n(late[barvn aux pit no auxSolid] -> [barvn auxSolid aux pit] \n+late vertical [barvn auxSolid| barvn pit no auxSolid] -> [barvn auxSolid | barvn pit auxSolid aux] \n+late vertical [cantMove][barvn auxSolid| barvn no pit] -> [cantMove2] [barvn auxSolid | barvn] \n+late [barvn auxSolid crate barh no auxPit] -> [barvn auxSolid auxPit crate barh] \n+late [barvn auxPit crate barh no auxSolid] -> [barvn auxSolid auxPit crate barh] \n+late horizontal [barh auxPit | barh pit no auxPit] -> [barh auxPit |pit barh auxPit aux] \n+late horizontal [cantMove][barh auxSolid| barh no pit] -> [cantMove2][barh auxSolid | barh] \n\nlate [CantMove][player auxSolid] -> [CantMove] [auxSolid]\nlate [CantMove][player auxPit] -> [CantMove] [auxPit]\n\nlate [CantMove] -> []\nlate [CantMove2] -> []\nlate [auxPit] -> []\nlate [auxSolid] -> [ ]\nlate [aux] -> []\n\nrandom late[barh no aux] -> [barh aux]\nrandom late [] -> [cantMove]\n\nlate[barh aux pit no auxPit] -> [barh auxPit aux pit] \n+late vertical [barvn auxSolid| barvn pit no auxSolid] -> [barvn auxSolid | barvn pit auxSolid aux] \n+late vertical [cantMove][barvn auxSolid| barvn no pit] -> [cantMove2] [barvn auxSolid | barvn] \n+late [barvn auxSolid crate barh no auxPit] -> [barvn auxSolid auxPit crate barh] \n+late [barvn auxPit crate barh no auxSolid] -> [barvn auxSolid auxPit crate barh] \n+late horizontal [barh auxPit | barh pit no auxSolid] -> [barh auxPit |pit barh auxPit aux] \n+late horizontal [cantMove][barh auxSolid| barh no pit] -> [cantMove2][barh auxSolid | barh] \n\nlate [CantMove][player auxSolid] -> [CantMove] [auxSolid]\nlate [CantMove][player auxPit] -> [CantMove] [auxPit])\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll target on crate\nAll barv on Crate\n(no barh)\n=======\nLEVELS\n=======\n\nmessage . ||||-----| |||||----- \n\n###########\n#d.......e#\n#..1.1.1..#\n#...ppp...#\n#...ooo...#\n#f.......g#\n###########\nttttttttttt\n\nmessage . |||-----|| |||||----- \n\n#########\n#d.....e#\n#...o1#.#\n#.ppo1..#\n#.#.o1..#\n#f.....g#\n#########\nttttttttt\n\nmessage . ||-----||| |||||----- \n\n#########\n#d..1..e#\n#.o..i..#\n#.pppi..#\n#.o..i..#\n#f..1..g#\n#########\nttttttttt\n\nmessage . |-----|||| |||||----- \n\n#############\n#d.....e#d.e#\n#.......#.o.#\n#..i.#1.#f..#\n#.pcp#1.##o.#\n#..i..1.....#\n#.........o.#\n#f.........g#\n#############\nttttttttttttt\n\nmessage . |||||----- ||||-----| \n\nttt###ttt\n####i####\n#d..i.oe#\n#..1i1..#\n#f..i.o.#\n##pp2...#\nt#f...og#\nt########\nttttttttt \n\nmessage . ||||-----| ||||-----| \n \n########### \n#d.......e# \n#........g# \n#.o.bo##### \n#...i.e#### \n#.apcag#### \n#.o.bo##### \n#........e# \n#f.......g# \n########### \nttttttttttt \n \nmessage . |||-----|| ||||-----| \n \n#######\n#d..1e#\n#o..i.#\n#.ppi.#\n#o..i.#\n#f..1g#\n#######\nttttttt \n \nmessage . ||-----||| ||||-----| \n \n \ntttt### \n#####o# \n#d....# \n#i.pp.# \n#i.11.# \n#f.g#o# \n####### \nttttttt \n \nmessage . |-----|||| ||||-----| \n \n \n###ttttt \n#o###### \n#.#d..e# \n#o#.ppg# \n#..i1.##\n#o.i.1e#\n#..i1..#\n#f....g#\n########\ntttttttt\n\nmessage . |||||----- |||-----|| \n\nttt######\nttt#de#1#\nttt#....#\n####i.1.#\n#de#i1..#\n#.o..pp.#\n#foog#fg#\n#########\nttttttttt\n\nmessage . ||||-----| |||-----|| \n\nt#####tttt\n##d.e##ttt\n#d.i.###tt\n#f.b..e#tt\n##..pa.###\n#o.#....e#\n#f...g#og#\n##########\ntttttttttt\n\nmessage . |||-----|| |||-----|| \n\nmessage CRACK!\n\n###ttttttttttt\n#d.tt.tt.#tttt\n#..ttttttt.t#t\n#...ttttt.t.#t\n#..i..tt.ttttt\n#.acpttttt.#tt\n#..i.tttttt#tt\n#...#t##tot#tt\n#f....ttt#tttt\n######tttttttt\ntttttttttttttt\n\nmessage . ||-----/|| |||-----|| \n\n##########\n#dooo..e##\n#.......e#\n#..i.#1..#\n#.pcp#1.g#\n#..i..1t##\n#......t#t\n#f.....t#t\n#########t\ntttttttttt\n\nmessage . |-----/\\|| |||-----|| \n\n############\n#d...tttttt#\n#.oootttttt#\n#...i..1ttt#\n#.aa2tt..o.#\n#f...tttttt#\n############\ntttttttttttt\n\nmessage . |\\//\\----- ||-----/|| \n\n#############\n#d....ettd.e#\n#......tt...#\n#.pp...tt#.o#\n#.1i...tt...#\n#.1i..#o....#\n#..i...tt...#\n#f....gttf.g#\n#############\nttttttttttttt\n\n\nmessage . |\\\\/-----/ ||-----/|\\ \n\n\n########\n#d..o.e#\n#..pp..#\n#ttttto#\n#..11b.#\n#f..oig#\n########\ntttttttt\n\nmessage . - || < \\ < / | | \\ / - / \n\n", [2, 2, 2, 3, 3, 3, 3, 3, 0, 0, 1, 1, 2, 1, 1, 0, 0, 1, 1, 3, 3, 3, 3, 2, 1, 1, 1, 1, 0, 0, 3, 1, 2, 3, 3, 1, 0, 0, 0, 3, 3, 3], "background wall wallt:0,0,0,0,0,0,0,0,background wall:1,background pit pitwt:2,1,background cornertl:3,background:4,\n4,4,4,4,background cornerbl:5,1,2,1,4,4,4,4,4,\n4,4,1,2,1,4,4,4,4,4,4,4,1,\n2,1,background barvn:6,background barvn crate01:7,6,4,4,4,4,1,2,1,4,\nbackground barh:8,0,1,4,4,4,1,2,1,4,8,background crate01:9,9,\n4,4,4,1,2,1,background cornertr:10,8,4,4,4,4,4,\n1,2,0,0,0,0,1,4,4,4,1,2,1,\n3,4,5,1,4,4,4,1,2,1,4,background target:11,4,\n11,4,11,4,1,2,1,10,4,4,4,4,4,\nbackground cornerbr:12,1,2,0,0,0,0,0,0,0,0,1,2,\n", 7, "1627770023925.0144"] ], [ `gallery game: soliquid`, - ["title Soliquid\nauthor Anton Klinger\nhomepage www.puzzlescript.net\ncolor_palette 7\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\ndarkgray Gray\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nwhite\n.....\n.000.\n.000.\n.000.\n.....\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nCrate\norange Yellow\n00000\n0...0\n0.1.0\n0...0\n00000\n\nFrom\norange\n.....\n.000.\n.....\n.000.\n.....\n\nTo\norange\n.....\n.0.0.\n.0.0.\n.0.0.\n.....\n\nLiquid\ntransparent Green green\n01110\n12001\n12201\n12221\n01110\n\nFrozen\ntransparent lightblue lightblue\n01110\n12221\n10221\n10021\n01110\n\nWantsToFreeze\nwhite\n.....\n.....\n.0...\n.....\n.....\n\nWantsToMelt\nblack\n.....\n.....\n...0.\n.....\n.....\n\nFreezer\nlightblue lightgray black\n1...1\n.202.\n.000.\n.202.\n1...1\n\nHeater\nyellow darkred black\n1...1\n.020.\n.202.\n.020.\n1...1\n\nFront1\nRed\n00000\n.....\n00000\n.....\n00000\n\nFront2\nblue\n00000\n.....\n00000\n.....\n00000\n\n\nUU\nYellow\n..0..\n..0..\n.....\n.....\n.....\n\nDD\nYellow\n.....\n.....\n.....\n..0..\n..0..\n\nLL\nYellow\n.....\n.....\n00...\n.....\n.....\n\nRR\nYellow\n.....\n.....\n...00\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Liquid\nPlayer = Liquid or Frozen\nO = Target\nC = Crate\nT = Target and Crate\nF = Target and Liquid\nObstacle = Wall or Crate\nK = Freezer\nH = Heater\n\nFront = Front1 or Front2\n\n=======\nSOUNDS\n=======\n\nLiquid MOVE 32774309\nFrozen Move 88300107\nendlevel 58794308\nendgame 37721308\nsfx0 35611100\nsfx1 66706102\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nFreezer, Heater\nLiquid, Wall, Crate, Frozen\nFront1, Front2\nUU,DD,LL,RR\nFrom, To\nWantsToFreeze, WantsToMelt\n\n======\nRULES\n======\n(establish front)\n[ > Player | Crate | NO Obstacle ] -> [ > Player | From | To ]\n[ > Liquid | Obstacle ] -> [ Front1 | Obstacle]\n[ > Frozen | Obstacle ] -> [ Front2 | Obstacle]\n[ UP Player ] -> [ up Player UU ]\n[ down Player ] -> [ down Player DD ]\n[ left Player ] -> [ left Player LL ]\n[ right Player ] -> [ right Player RR ]\n\n[Front] [From] -> [Front] [Crate]\n[Front] [To] -> [Front] []\n[Front] [> Player | NO Player NO Front] -> [Front] [ Front | ]\n\n(move all players)\n\n(create trail for liquid)\nlate UP [UU NO Obstacle | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | ]\nlate UP [UU NO Obstacle | Liquid | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | Liquid | ]\n\nlate down [DD NO Obstacle | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | ]\nlate down [DD NO Obstacle | Liquid | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | Liquid | ]\n\nlate left [LL NO Obstacle | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | ]\nlate left [LL NO Obstacle | Liquid | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | Liquid | ]\n\nlate right [RR NO Obstacle | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | ]\nlate right [RR NO Obstacle | Liquid | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | Liquid | ]\n\n\n(prevent frozen from getting smaller)\nlate UP [UU NO Obstacle | Frozen | Frozen Front| NO Frozen ] -> [Frozen | Frozen | Frozen | ]\nlate UP [UU NO Obstacle | Frozen Front| NO Frozen ] -> [Frozen | Frozen | ]\n\nlate down [DD NO Obstacle | Frozen | Frozen Front| NO Frozen ] -> [Frozen | Frozen | Frozen | ]\nlate down [DD NO Obstacle | Frozen Front| NO Frozen ] -> [Frozen | Frozen | ]\n\nlate left [LL NO Obstacle | Frozen | Frozen Front| NO Frozen ] -> [Frozen | Frozen | Frozen | ]\nlate left [LL NO Obstacle | Frozen Front| NO Frozen ] -> [Frozen | Frozen | ]\n\nlate right [RR NO Obstacle | Frozen | Frozen Front| NO Frozen ] -> [Frozen | Frozen | Frozen | ]\nlate right [RR NO Obstacle | Frozen Front| NO Frozen ] -> [Frozen | Frozen | ]\n\n(cleanup)\nlate [UU] -> []\nlate [DD] -> []\nlate [LL] -> []\nlate [RR] -> []\nlate [Front1] -> [ Liquid ]\nlate [Front2] -> [ Frozen ]\nlate [From] -> []\nlate [To] -> [Crate]\n\n(check freezing or heating)\nlate [Freezer Liquid] -> [Freezer WantsToFreeze]\nlate [Liquid NO Freezer][WantsToFreeze] -> [Liquid][Liquid]\nlate [WantsToFreeze] -> [Frozen] sfx0\n\nlate [Heater Frozen] -> [Heater WantsToMelt]\nlate [Frozen NO Heater][WantsToMelt] -> [Frozen][Frozen]\nlate [WantsToMelt] -> [Liquid] sfx1\n\n==============\nWINCONDITIONS\n==============\n\nAll Player on Target\nAll Target on Player\n\n=======\nLEVELS\n=======\n\n#########\n#.......#\n#.......#\n#...ooo.#\n#.p.ooo.#\n#...ooo.#\n#.......#\n#.......#\n#########\n\n#########\n####....#\n#.......#\n#.p.....#\n#.......#\n####o####\n####o####\n####o####\n#########\n\n#########\n#########\n#....####\n#.p..####\n#...oo.##\n###.oo.##\n###....##\n#########\n#########\n\n#########\n#.#...#.#\n#.#.p.#.#\n#.#...#.#\n#.#ccc#.#\n#.#ooo#.#\n#.#...#.#\n#.#...#.#\n#########\n\n##########\n#####...##\n#...c...##\n#.......##\n#....p.c##\n##c.o....#\n##.......#\n##...c...#\n##...#####\n##########\n\n#########\n#########\n#hh....k#\n#hh.p..k#\n#......k#\n##o######\n##o######\n##o######\n#########\n\n########\n#...####\n#.p....#\n#oo##..#\n#......#\n#..#.kk#\n####.kk#\n########\n\n############\n####hh######\n####..######\n#.......kk##\n#.p..o..kk##\n#..#.o##..##\n####......##\n############\n\n############\n#kk...#....#\n#kk.p.#.oo.#\n#.....#.oo.#\n#..####....#\n#..hh..hh..#\n#..hh..hh..#\n#hh..hh..hh#\n#hh..hh..hh#\n############\n\n#################\n#kkkkk.kk.kkk#oo#\n#k.kk#k#kkkk.#.##\n#kk#k.k.kkkkkkk.#\n#k...k.kkk#.kkkk#\n#k.p.kkkkkkkkk.k#\n#k...k.kk..kk#kk#\n#kkk#kk#kkk#.k.k#\n#k#.k#kkkk.kkkkk#\n#kkkkk..kkkkkkk.#\n#################\n\n##########\n#........#\n#.p......#\n#...cc...#\n#..cooc..#\n#..cooc..#\n#...cc...#\n#........#\n#........#\n##########\n\nmessage Thank you for playing my game!\n\n",[2,2,3,3,0,3,2,1,0,1,2,3,2,2,2,2,2,1,0,0],"background wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n0,1,1,1,background liquid:2,background liquid target:3,2,background crate:4,0,\n0,1,1,1,2,3,2,4,0,\n0,1,1,1,1,background target:5,1,4,0,\n0,0,0,0,0,0,0,0,0,\n0,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n",3,"1627770093173.774"] + ["title Soliquid\nauthor Anton Klinger\nhomepage www.puzzlescript.net\ncolor_palette 7\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\ndarkgray Gray\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nwhite\n.....\n.000.\n.000.\n.000.\n.....\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nCrate\norange Yellow\n00000\n0...0\n0.1.0\n0...0\n00000\n\nFrom\norange\n.....\n.000.\n.....\n.000.\n.....\n\nTo\norange\n.....\n.0.0.\n.0.0.\n.0.0.\n.....\n\nLiquid\ntransparent Green green\n01110\n12001\n12201\n12221\n01110\n\nFrozen\ntransparent lightblue lightblue\n01110\n12221\n10221\n10021\n01110\n\nWantsToFreeze\nwhite\n.....\n.....\n.0...\n.....\n.....\n\nWantsToMelt\nblack\n.....\n.....\n...0.\n.....\n.....\n\nFreezer\nlightblue lightgray black\n1...1\n.202.\n.000.\n.202.\n1...1\n\nHeater\nyellow darkred black\n1...1\n.020.\n.202.\n.020.\n1...1\n\nFront1\nRed\n00000\n.....\n00000\n.....\n00000\n\nFront2\nblue\n00000\n.....\n00000\n.....\n00000\n\n\nUU\nYellow\n..0..\n..0..\n.....\n.....\n.....\n\nDD\nYellow\n.....\n.....\n.....\n..0..\n..0..\n\nLL\nYellow\n.....\n.....\n00...\n.....\n.....\n\nRR\nYellow\n.....\n.....\n...00\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Liquid\nPlayer = Liquid or Frozen\nO = Target\nC = Crate\nT = Target and Crate\nF = Target and Liquid\nObstacle = Wall or Crate\nK = Freezer\nH = Heater\n\nFront = Front1 or Front2\n\n=======\nSOUNDS\n=======\n\nLiquid MOVE 32774309\nFrozen Move 88300107\nendlevel 58794308\nendgame 37721308\nsfx0 35611100\nsfx1 66706102\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nFreezer, Heater\nLiquid, Wall, Crate, Frozen\nFront1, Front2\nUU,DD,LL,RR\nFrom, To\nWantsToFreeze, WantsToMelt\n\n======\nRULES\n======\n(establish front)\n[ > Player | Crate | NO Obstacle ] -> [ > Player | From | To ]\n[ > Liquid | Obstacle ] -> [ Front1 | Obstacle]\n[ > Frozen | Obstacle ] -> [ Front2 | Obstacle]\n[ UP Player ] -> [ up Player UU ]\n[ down Player ] -> [ down Player DD ]\n[ left Player ] -> [ left Player LL ]\n[ right Player ] -> [ right Player RR ]\n\n[Front] [From] -> [Front] [Crate]\n[Front] [To] -> [Front] []\n[Front] [> Player | NO Player NO Front] -> [Front] [ Front | ]\n\n(move all players)\n\n(create trail for liquid)\nlate UP [UU NO Obstacle | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | ]\nlate UP [UU NO Obstacle | Liquid | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | Liquid | ]\n\nlate down [DD NO Obstacle | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | ]\nlate down [DD NO Obstacle | Liquid | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | Liquid | ]\n\nlate left [LL NO Obstacle | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | ]\nlate left [LL NO Obstacle | Liquid | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | Liquid | ]\n\nlate right [RR NO Obstacle | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | ]\nlate right [RR NO Obstacle | Liquid | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | Liquid | ]\n\n\n(prevent frozen from getting smaller)\nlate UP [UU NO Obstacle | Frozen | Frozen Front| NO Frozen ] -> [Frozen | Frozen | Frozen | ]\nlate UP [UU NO Obstacle | Frozen Front| NO Frozen ] -> [Frozen | Frozen | ]\n\nlate down [DD NO Obstacle | Frozen | Frozen Front| NO Frozen ] -> [Frozen | Frozen | Frozen | ]\nlate down [DD NO Obstacle | Frozen Front| NO Frozen ] -> [Frozen | Frozen | ]\n\nlate left [LL NO Obstacle | Frozen | Frozen Front| NO Frozen ] -> [Frozen | Frozen | Frozen | ]\nlate left [LL NO Obstacle | Frozen Front| NO Frozen ] -> [Frozen | Frozen | ]\n\nlate right [RR NO Obstacle | Frozen | Frozen Front| NO Frozen ] -> [Frozen | Frozen | Frozen | ]\nlate right [RR NO Obstacle | Frozen Front| NO Frozen ] -> [Frozen | Frozen | ]\n\n(cleanup)\nlate [UU] -> []\nlate [DD] -> []\nlate [LL] -> []\nlate [RR] -> []\nlate [Front1] -> [ Liquid ]\nlate [Front2] -> [ Frozen ]\nlate [From] -> []\nlate [To] -> [Crate]\n\n(check freezing or heating)\nlate [Freezer Liquid] -> [Freezer WantsToFreeze]\nlate [Liquid NO Freezer][WantsToFreeze] -> [Liquid][Liquid]\nlate [WantsToFreeze] -> [Frozen] sfx0\n\nlate [Heater Frozen] -> [Heater WantsToMelt]\nlate [Frozen NO Heater][WantsToMelt] -> [Frozen][Frozen]\nlate [WantsToMelt] -> [Liquid] sfx1\n\n==============\nWINCONDITIONS\n==============\n\nAll Player on Target\nAll Target on Player\n\n=======\nLEVELS\n=======\n\n#########\n#.......#\n#.......#\n#...ooo.#\n#.p.ooo.#\n#...ooo.#\n#.......#\n#.......#\n#########\n\n#########\n####....#\n#.......#\n#.p.....#\n#.......#\n####o####\n####o####\n####o####\n#########\n\n#########\n#########\n#....####\n#.p..####\n#...oo.##\n###.oo.##\n###....##\n#########\n#########\n\n#########\n#.#...#.#\n#.#.p.#.#\n#.#...#.#\n#.#ccc#.#\n#.#ooo#.#\n#.#...#.#\n#.#...#.#\n#########\n\n##########\n#####...##\n#...c...##\n#.......##\n#....p.c##\n##c.o....#\n##.......#\n##...c...#\n##...#####\n##########\n\n#########\n#########\n#hh....k#\n#hh.p..k#\n#......k#\n##o######\n##o######\n##o######\n#########\n\n########\n#...####\n#.p....#\n#oo##..#\n#......#\n#..#.kk#\n####.kk#\n########\n\n############\n####hh######\n####..######\n#.......kk##\n#.p..o..kk##\n#..#.o##..##\n####......##\n############\n\n############\n#kk...#....#\n#kk.p.#.oo.#\n#.....#.oo.#\n#..####....#\n#..hh..hh..#\n#..hh..hh..#\n#hh..hh..hh#\n#hh..hh..hh#\n############\n\n#################\n#kkkkk.kk.kkk#oo#\n#k.kk#k#kkkk.#.##\n#kk#k.k.kkkkkkk.#\n#k...k.kkk#.kkkk#\n#k.p.kkkkkkkkk.k#\n#k...k.kk..kk#kk#\n#kkk#kk#kkk#.k.k#\n#k#.k#kkkk.kkkkk#\n#kkkkk..kkkkkkk.#\n#################\n\n##########\n#........#\n#.p......#\n#...cc...#\n#..cooc..#\n#..cooc..#\n#...cc...#\n#........#\n#........#\n##########\n\nmessage Thank you for playing my game!\n\n", [2, 2, 3, 3, 0, 3, 2, 1, 0, 1, 2, 3, 2, 2, 2, 2, 2, 1, 0, 0], "background wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n0,1,1,1,background liquid:2,background liquid target:3,2,background crate:4,0,\n0,1,1,1,2,3,2,4,0,\n0,1,1,1,1,background target:5,1,4,0,\n0,0,0,0,0,0,0,0,0,\n0,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n", 3, "1627770093173.774"] ], [ `gallery game: vexd edit`, - ["title VEXT EDIT\nauthor JACK\n\nrun_rules_on_level_start\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\n#eeeeee\n\nPlayerTarget1mark\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1mark\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nPlayerTarget1\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0Mark\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nWall0 \n#884400 #f00\n00000\n00000\n00000\n00000\n00000\n\nwalll0 \nBrown #f00\n1....\n1....\n1....\n1....\n1....\n\nWallr0 \nBrown #f00\n....1\n....1\n....1\n....1\n....1\n\nWalld0 \nBrown #f00\n.....\n.....\n.....\n.....\n11111\n\nWallu0 \nBrown #f00\n11111\n.....\n.....\n.....\n.....\n\nBlack\nblack\n\nwall0ghost\ntransparent\n\nWall0Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1 \n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall2\n#884400 #00f\n00000\n00000\n00000\n00000\n00000\n\nwalll2\nBrown #00f\n1....\n1....\n1....\n1....\n1....\n\nWallr2 \nBrown #00f\n....1\n....1\n....1\n....1\n....1\n\nWalld2 \nBrown #00f\n.....\n.....\n.....\n.....\n11111\n\nWallu2 \nBrown #00f\n11111\n.....\n.....\n.....\n.....\n\nwalll1 \nBrown #ff0\n1....\n1....\n1....\n1....\n1....\n\nWallr1 \nBrown #ff0\n....1\n....1\n....1\n....1\n....1\n\nWalld1 \nBrown #ff0\n.....\n.....\n.....\n.....\n11111\n\nWallu1 \nBrown #ff0\n11111\n.....\n.....\n.....\n.....\n\nCrate1Mark\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate1\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate01\ntransparent\n\nCrate0\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate0mark\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\ncrate0ghost\ntransparent\n\nPlayer1Mark\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nPlayer1\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nDed1Mark\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nDed1\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nCrated0\n#f80 #f00\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu0\n#f80 #f00\n.010.\n.010.\n.....\n.....\n.....\n\nCratel0\n#f80 #f00\n.....\n00...\n11...\n00...\n.....\n\nCrater0\n#f80 #f00\n.....\n...00\n...11\n...00\n.....\n\nCrated1\n#f80 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu1\n#f80 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nCratel1\n#f80 #ff0\n.....\n00...\n11...\n00...\n.....\n\nCrater1\n#f80 #ff0\n.....\n...00\n...11\n...00\n.....\n\n\nPit1Mark\nblack #bbbb00 white\n.111.\n10001\n10001\n10001\n.111.\n\n\nPit1\nblack #bbbb00 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\npit0ghost\ntransparent\n\nPit0\nblack #bb0000 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\n\npit0u\nblack #bb0000\n10001\n.....\n.....\n.....\n.....\n\npit0d\nblack #bb0000\n.....\n.....\n.....\n.....\n10001\n\npit0l\nblack #bb0000\n1....\n0....\n0....\n0....\n1....\n\npit0r\nblack #bb0000\n....1\n....0\n....0\n....0\n....1\n\npit1u\nblack #bbbb00\n10001\n.....\n.....\n.....\n.....\n\npit1d\nblack #bbbb00\n.....\n.....\n.....\n.....\n10001\n\npit1l\nblack #bbbb00\n1....\n0....\n0....\n0....\n1....\n\npit1r\nblack #bbbb00\n....1\n....0\n....0\n....0\n....1\n\nrim0u\n#b00\n.000.\n.....\n.....\n.....\n.....\n\nrim0l\n#b00\n.....\n0....\n0....\n0....\n.....\n\nrim0r\n#b00\n.....\n....0\n....0\n....0\n.....\n\nrim0d\n#b00\n.....\n.....\n.....\n.....\n.000.\n\nrim1u\n#bb0\n.000.\n.....\n.....\n.....\n.....\n\nrim1l\n#bb0\n.....\n0....\n0....\n0....\n.....\n\nrim1r\n#bb0\n.....\n....0\n....0\n....0\n.....\n\nrim1d\n#bb0\n.....\n.....\n.....\n.....\n.000.\n\nblackul\nblack\n0....\n.....\n.....\n.....\n.....\n\nblackur\nblack\n....0\n.....\n.....\n.....\n.....\n\nblackdl\nblack\n.....\n.....\n.....\n.....\n0....\n\nblackdr\nblack\n.....\n.....\n.....\n.....\n....0\n\nfell0\n#884400 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1mark\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfelld1\n#884400 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nfellu1\n#884400 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nfelll1\n#884400 #ff0\n.....\n00...\n11...\n00...\n.....\n\nfellr1\n#884400 #ff0\n.....\n...00\n...11\n...00\n.....\n\nfell0ghost\ntransparent\n\nsupported\ntransparent\n\nfellcant1\ntransparent\n\ncant1\ntransparent\n\ncant0\ntransparent\n\nfellcant0\ntransparent\n\ndead0a\ndarkred\n.....\n.0.0.\n.....\n.0.0.\n.....\n\ncursor0a\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\ncursor0b\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\n\n\ncursor2a\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\ncursor2b\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\none2mark\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2mark\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2mark\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none2\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0mark\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0mark\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0mark\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\nfour0\n#f00\n.0.0.\n.0.0.\n..00.\n...0.\n...0.\n\nfive0\n#f00\n.000.\n.0...\n.00..\n...0.\n.00..\n\nsix0\n#f00\n..00.\n.0...\n.00..\n.0.0.\n..0..\n\nseven0\n#f00\n.000.\n...0.\n...0.\n..0..\n..0..\n\ninf0\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\ninf0mark\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\n\ndecrement\ntransparent\n\nholding\ntransparent\n\nactiveb\n#f00\n.....\n.0.0.\n.....\n.....\n.....\n\nactive\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\nactivefell\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\npickeda0\ntransparent\n\npickedb0\ntransparent\n\npickeda2\ntransparent\n\npickedb2\ntransparent\n\nchosepink\n#ff22ff\n\nchosecyan\n#22ffff\n\npink\n#ff88ff\n\ncyan\n#88ffff\n\nplacemark\ntransparent\n\nactivecurse0\ntransparent\n\npartb\ntransparent\n\npartc\ntransparent\n\ncursor0mark\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\nwall2ghost\ntransparent\n\ncant2\ntransparent\n\nshowhere\ntransparent\n\nshowthis\ntransparent\n=======\nLEGEND\n=======\n\n` = Background\n& = Wall2 and wall1 and wall0\n# = Wall1\nX = Wall0\n+ = Wall0 and Wall1\nP = Player1 and active\n\nn = crate0 and crate1 and crate01\no = Crate1\n- = crate1 and crater1\n: = crate1 and crateu1\nL = crate1 and crater1 and crateu1\n0 = pit1\n! = crate0\n? = pit0\n/ = pit0 and pit1\n\n@ = one0 and pit0\nz = player1 and pit0\n\n| = black\n\n' = partb\n\" = partc\n\n~ = cursor2a\n_ = cursor2b\n\n1 = one0\n2 = two0\n3 = three0\n4 = four0\n5 = five0\n6 = six0\n7 = seven0\n8 = inf0\n\n[ = one2\n{ = two2\n] = three2\n> = wall2\nactiveab = active or activeb or activefell\npartbc = partb or partc\n\ny = target0\nu = Target1 and pit1\nt = Target1\nq = playertarget1\nr = player1\nb = cursor0a\nc = cursor0a and activecurse0\nk = cursor0b and activecurse0\ncurse0a = cursor0a or dead0a\ncurse0 = curse0a or cursor0b\ncurse2 = cursor2a or cursor2b\ncursor0 = cursor0a or cursor0b\n \nplayer = curse2 or activecurse0 or active or dead0a or activefell\ndead0 = dead0a\nx1 = player1 or crate1 or wall1 or target1 or playertarget1 or pit1\nx0 = crate0 or wall0 or pit0 or fell0\nxx = x0 or x1 or curse0\nx0ghost = crate0ghost or wall0ghost or pit0ghost or fell0ghost\ncratex1 = cratel1 or crater1 or crated1 or crateu1\nwallx2 = walll2 or wallr2 or walld2 or wallu2\nwallx1 = walll1 or wallr1 or walld1 or wallu1\nwallx0 = walll0 or wallr0 or walld0 or wallu0\nfellx1 = felll1 or fellr1 or felld1 or fellu1\npit0x = pit0l or pit0r or pit0d or pit0u\npit1x = pit1l or pit1r or pit1d or pit1u\ncrateorfell1 = crate1 or fell1\nplayerormark1 = player1 or player1mark\n\nx0mark = one0mark or two0mark or three0mark or cursor0mark or wall0mark or target0mark or crate0mark or inf0mark\nx1mark = player1mark or crate1mark or pit1mark or wall1mark or fell1mark or ded1mark or crate1mark or Target1mark or PlayerTarget1mark\nx2mark = one2mark or two2mark or three2mark\nxmark = x0mark or x1mark or x2mark\nnumber0 = one0 or two0 or three0 or four0 or five0 or six0 or seven0 or inf0\nnumber2 = one2 or two2 or three2\npicked = pickeda0 or pickedb0 or pickeda2 or pickedb2\n\npickable = player1 or pit1 or crate1 or number0 or wall1 or number2 or fell1 or ded1 or target0 or PlayerTarget1 or Target1\npickable2 = curse0a or pickable or wall0 or crate0 \n\nblackcorner = blackul or blackdl or blackur or blackdr\nrim0x = rim0l or rim0d or rim0u or rim0r\nrim1x = rim1l or rim1d or rim1u or rim1r \n=======\nSOUNDS\n=======\n\nSFX0 51304502\n\nsfx1 22108304\n\nSFX2 84700307\n\nSFX3 78571302\n\nSFX4 25131906\n\nSFX5 13408901\n\nSFX6 50704903\n\nSFX7 24622504\n\nSFX8 29744504\n\nSFX9 13344503\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\npink, chosepink\ncyan, chosecyan\n\n\nPit1,\npit1r\npit1l\npit1d\npit1u\npit0, pit0ghost\npit0r\npit0l\npit0d\npit0u\nblackul\nblackur\nblackdr\nblackdl\nTarget1, PlayerTarget1, target0\n\nfell1, ded1\nfelll1\nfellr1\nfelld1\nfellu1\n\ndead0a, fell0, fell0ghost\nrim0l \nrim0d \nrim0u \nrim0r\n\nrim1l \nrim1d \nrim1u \nrim1r \nPlayer1, Wall1, Crate1, \npit1mark\nfell1mark, ded1mark, target0mark\nTarget1mark, PlayerTarget1mark\nplayer1mark, crate1mark\nwall1mark\none0mark, two0mark, three0mark, wall0mark, inf0mark\none2mark, two2mark, three2mark\ncursor0mark, crate0mark\nnumber0, number2\ncratel1, walll1, \ncrater1, wallr1, \ncrated1, walld1, \ncrateu1, wallu1, \ncursor0, wall0, crate0, wall0ghost, crate0ghost\n walll0, cratel0\n wallr0, crater0\n walld0, crated0\n wallu0, crateu0\n crate01\n wall2, wall2ghost\n wallr2\n wallu2\n walll2\n walld2\n cursor2a, cursor2b\n \nfellcant1\nfellcant0\ncant0\ncant1\ncant2\nsupported\nactivefell\nactive, activeb\nactivecurse0\nholding\ndecrement\npickeda0, pickeda2\npickedb0, pickedb2\nplacemark\npartb partc\nshowthis\nshowhere\nblack\n\n======\nRULES\n======\n\n(Deal with action-----------------------------------------------------------------------------)\n\n[action activecurse0 curse0] -> [activecurse0 action curse0]\n\n(pick up ready icon)\ndown[action curse0a no holding pickable|number0] -> [curse0a holding pickable|number0 pickeda0] SFX9\ndown[action cursor0b no holding pickable|number0] -> [cursor0b holding pickable|number0 pickedb0] SFX9\ndown[action cursor2a no holding pickable2|number2] -> [cursor2a holding pickable2|number2 pickeda2] SFX9\ndown[action cursor2b no holding pickable2|number2] -> [cursor2b holding pickable2|number2 pickedb2] SFX9\n(switch to new ready icon)\ndown [action curse0a pickable| number0 no pickeda0][pickeda0] -> [curse0a pickable | number0 pickeda0][] SFX9\ndown [action cursor0b pickable| number0 no pickedb0][pickedb0] -> [cursor0b pickable | number0 pickedb0][] SFX9\ndown [action cursor2a pickable2| number2 no pickeda2][pickeda2] -> [cursor2a pickable2 | number2 pickeda2][] SFX9\ndown [action cursor2b pickable2| number2 no pickedb2][pickedb2] -> [cursor2b pickable2 | number2 pickedb2][] SFX9\n\n(put down ready icon)\ndown [action curse0 holding pickable| picked] -> [curse0 pickable|] SFX8\ndown [action cursor2a holding pickable2| pickeda2] -> [cursor2a pickable2|] SFX8\ndown [action cursor2b holding pickable2| pickedb2] -> [cursor2b pickable2|] SFX8\n\n(show mark)\nlate [xmark] -> []\nlate [showthis] -> []\nlate [showhere] -> []\n\nlate down [ | number0 pickeda0][curse0a] -> [showthis | number0 pickeda0][curse0a showhere]\nlate down [ | number0 pickedb0][cursor0b] -> [showthis | number0 pickedb0][cursor0b showhere]\nlate down [ | number2 pickeda2][cursor2a] -> [showthis | number2 pickeda2][cursor2a showhere]\nlate down [ | number2 pickedb2][cursor2b] -> [showthis | number2 pickedb2][cursor2b showhere]\nlate [showthis player1][showhere] -> [showthis player1][showhere player1mark]\nlate [showthis pit1][showhere] -> [showthis pit1][showhere pit1mark]\nlate [showthis crate1][showhere] -> [showthis crate1][showhere crate1mark]\nlate [showthis wall1][showhere] -> [showthis wall1][showhere wall1mark]\nlate [showthis one0][showhere] -> [showthis one0][showhere one0mark]\nlate [showthis two0][showhere] -> [showthis two0][showhere two0mark]\nlate [showthis three0][showhere] -> [showthis three0][showhere three0mark]\nlate [showthis one2][showhere] -> [showthis one2][showhere one2mark]\nlate [showthis two2][showhere] -> [showthis two2][showhere two2mark]\nlate [showthis three2][showhere] -> [showthis three2][showhere three2mark]\nlate [showthis wall0][showhere] -> [showthis wall0][showhere wall0mark]\nlate [showthis fell1][showhere] -> [showthis fell1][showhere fell1mark]\nlate [showthis ded1][showhere] -> [showthis ded1][showhere ded1mark]\nlate [showthis target0][showhere] -> [showthis target0][showhere target0mark]\nlate [showthis crate0][showhere] -> [showthis crate0][showhere crate0mark]\nlate [showthis cursor0][showhere] -> [showthis cursor0][showhere cursor0mark]\nlate [showthis inf0][showhere] -> [showthis inf0][showhere inf0mark]\nlate [showthis Target1][showhere] -> [showthis target1][showhere Target1mark]\nlate [showthis PlayerTarget1][showhere] -> [showthis PlayerTarget1][showhere PlayerTarget1mark]\n(connect cratemark)\nup [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crateu1 | crate1 crated1]\ndown [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crated1 | crate1 crateu1]\nleft [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark cratel1 | crate1 crater1]\nright [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crater1 | crate1 cratel1]\nup [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crateu1 | fell1 felld1]\ndown [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crated1 | fell1 fellu1]\nleft [action curse0 holding fell1mark no xx no number0 no number2| fell1] -> [action curse0 holding fell1mark cratel1 | fell1 fellr1]\nright [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crater1 | fell1 felll1]\n\n(place mark)\n[placemark] -> []\n\ndown [action curse0a holding xmark no x1 no number0][pickeda0 number0] -> [curse0a holding xmark placemark][pickeda0 decrement number0] SFX7\ndown [action cursor0b holding xmark no x1 no number0][pickedb0 number0] -> [cursor0b holding xmark placemark][pickedb0 decrement number0] SFX7\n\ndown [action cursor2a holding xmark no xx no number0 no number2][pickeda2 number2] -> [cursor2a holding xmark placemark][pickeda2 decrement number2] SFX7\ndown [action cursor2b holding xmark no xx no number0 no number2][pickedb2 number2] -> [cursor2b holding xmark placemark][pickedb2 decrement number2] SFX7\n\n\n\n[placemark player1mark] -> [placemark player1 player1mark]\n[placemark pit1mark] -> [placemark pit1 pit1mark]\n[placemark crate1mark] -> [placemark crate1 crate1mark]\n[placemark wall1mark] -> [placemark wall1 wall1mark]\n[placemark one0mark] -> [placemark one0 one0mark]\n[placemark two0mark] -> [placemark two0 two0mark]\n[placemark three0mark] -> [placemark three0 three0mark]\n[placemark one2mark] -> [placemark one2 one2mark]\n[placemark two2mark] -> [placemark two2 two2mark]\n[placemark three2mark] -> [placemark three2 three2mark]\n[placemark wall0mark] -> [placemark wall0 wall0mark]\n[placemark fell1mark] -> [placemark fell1 fell1mark]\n[placemark ded1mark] -> [placemark ded1 ded1mark]\n[placemark target0mark] -> [placemark target0 target0mark]\n[placemark crate0mark] -> [placemark crate0 crate0mark]\n[placemark Target1mark] -> [placemark target1 Target1mark]\n[placemark inf0mark] -> [placemark inf0 inf0mark]\n[placemark PlayerTarget1mark] -> [placemark playertarget1 PlayerTarget1mark]\ndown [placemark cursor0mark][curse0a|no one2] -> [ cursor0b cursor0mark][curse0a|]\n[placemark cursor0mark] -> [placemark cursor0a cursor0mark]\n\n(decrement number of placed item)\ndown [xmark holding cursor2a][pickable2|one2 decrement pickeda2] -> [xmark holding cursor2a][|one2 decrement pickeda2]\ndown [xmark holding cursor2b][pickable2|one2 decrement pickedb2] -> [xmark holding cursor2b][|one2 decrement pickedb2]\ndown [xmark holding curse0a][pickable|one0 decrement pickeda0] -> [xmark holding curse0a][|one0 decrement pickeda0]\ndown [xmark holding cursor0b][pickable|one0 decrement pickedb0] -> [xmark holding cursor0b][|one0 decrement pickedb0]\ndown [xmark holding cursor2a][|one2 decrement pickeda2] -> [cursor2a][|]\ndown [xmark holding cursor2b][|one2 decrement pickedb2] -> [cursor2b][|]\ndown [xmark holding cursor0a][|one0 decrement pickeda0] -> [cursor0a][|]\ndown [xmark holding cursor0b][|one0 decrement pickedb0] -> [cursor0b][|]\n[one0 decrement] -> []\n[two0 decrement] -> [one0]\n[three0 decrement] -> [two0]\n[four0 decrement] -> [three0]\n[five0 decrement] -> [four0]\n[six0 decrement] -> [five0]\n[seven0 decrement] -> [six0]\n[one2 decrement] -> []\n[two2 decrement] -> [one2]\n[three2 decrement] -> [two2]\n\n\n\n(player -> cursor)\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [player1 action active no wall0ghost no crate0ghost][partbc] -> [cursor0a player1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [ded1 action activefell no wall0ghost no crate0ghost][partbc] -> [cursor0a ded1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\n\n(cursor holding -> player)\ndown [action curse0a activecurse0 player1 holding xmark][| number0 pickeda0] -> [active player1][ | number0] SFX6\ndown [action curse0a activecurse0 ded1 holding xmark][| number0 pickeda0] -> [activefell ded1][ | number0] SFX6\ndown [action cursor0b activecurse0 player1 holding xmark][| number0 pickedb0] -> [active player1][ | number0] SFX6\ndown [action cursor0b activecurse0 ded1 holding xmark][| number0 pickedb0] -> [activefell ded1][ | number0] SFX6\n(empty cursor -> player)\n[action curse0 player1 activecurse0 no holding] -> [active player1] SFX6\n[action curse0 ded1 activecurse0 no holding] -> [activefell ded1] SFX6\n(red -> blue)\n[action cursor0a activecurse0 holding xmark][partc][pickeda0] -> [cursor0a cursor2a][partc][] SFX5\n[action cursor0a activecurse0 ][partc] -> [cursor0a cursor2a][partc] SFX5\n[action cursor0b activecurse0 holding xmark][partc][pickedb0] -> [cursor0b cursor2b][partc][] SFX5\n[action cursor0b activecurse0 ][partc] -> [cursor0b cursor2b][partc] SFX5\n(blue holding -> red)\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\nrandom down [action curse2 curse0 holding xmark][| number2 pickeda2] -> [activecurse0 cursor0a][ | number2] SFX6\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\n(empty blue -> red)\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\nrandom [action curse2 curse0 no holding] -> [activecurse0 cursor0a] SFX6\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\n\n\n[action player] -> SFX0\n[action curse0] -> SFX0\n\n(Aesthetic----------------------------------------------------------------------------------------)\n\n\n\n(ghosts)\n[player1 active][pit0] -> [player1 active][pit0ghost]\n[pit0ghost][cursor0] -> [pit0][cursor0]\n[player1 active][wall0] -> [player1 active][wall0ghost]\n[wall0ghost][cursor0] -> [wall0][cursor0]\n[player1 active][crate0] -> [player1 active][crate0ghost]\n[crate0ghost][cursor0] -> [crate0][cursor0]\n[player1 active][fell0] -> [player1 active][fell0ghost]\n[fell0ghost][cursor0] -> [fell0][cursor0]\n[curse0 activecurse0][wall2] -> [curse0 activecurse0][wall2ghost]\n[wall2ghost][curse2] -> [wall2][curse2]\n\n\n(wall boundaries)\n[wallx2] -> []\n[wallx1] -> []\n[wallx0] -> []\nup [wall2 | no wall2] -> [wall2 wallu2 | ]\ndown [wall2 | no wall2] -> [wall2 walld2 | ]\nleft [wall2 | no wall2] -> [wall2 walll2 | ]\nright [wall2 | no wall2] -> [wall2 wallr2 | ]\nup [wall1 | no wall1] -> [wall1 wallu1 | ]\ndown [wall1 | no wall1] -> [wall1 walld1 | ]\nleft [wall1 | no wall1] -> [wall1 walll1 | ]\nright [wall1 | no wall1] -> [wall1 wallr1 | ]\nup [wall0 | no wall0] -> [wall0 wallu0 | ]\ndown [wall0 | no wall0] -> [wall0 walld0 | ]\nleft [wall0 | no wall0] -> [wall0 walll0 | ]\nright [wall0 | no wall0] -> [wall0 wallr0 | ]\n\n(crate connectors)\nup [crateu0|] -> [crateu0 | crated0]\nright [crater0|] -> [crater0 | cratel0]\nup [crateu1|] -> [crateu1 | crated1]\nright [crater1|] -> [crater1 | cratel1]\n(pit connectors)\n[blackcorner] -> []\n[pit0x] -> [] \n[pit1x] -> [] \nup [pit1 | pit1] -> [pit1u pit1|pit1d pit1]\nright [pit1 | pit1] -> [pit1r pit1|pit1l pit1]\nup [pit0 | pit0] -> [pit0u pit0|pit0d pit0]\nright [pit0 | pit0] -> [pit0r pit0|pit0l pit0]\n[pit1u pit1r] -> [pit1u pit1r blackur]\n[pit1u pit1l] -> [pit1u pit1l blackul]\n[pit1d pit1r] -> [pit1d pit1r blackdr]\n[pit1d pit1l] -> [pit1d pit1l blackdl]\n[pit0u pit0r] -> [pit0u pit0r blackur]\n[pit0u pit0l] -> [pit0u pit0l blackul]\n[pit0d pit0r] -> [pit0d pit0r blackdr]\n[pit0d pit0l] -> [pit0d pit0l blackdl]\n[rim1x] -> []\n[rim0x] -> []\nup[pit0|no pit0] -> [pit0 rim0u|]\ndown[pit0|no pit0] -> [pit0 rim0d|]\nleft[pit0|no pit0] -> [pit0 rim0l|]\nright[pit0|no pit0] -> [pit0 rim0r|]\nup[pit1|no pit1] -> [pit1 rim1u|]\ndown[pit1|no pit1] -> [pit1 rim1d|]\nleft[pit1|no pit1] -> [pit1 rim1l|]\nright[pit1|no pit1] -> [pit1 rim1r|]\nlate [pink] -> []\nlate [cyan] -> []\nlate [chosepink] -> []\nlate [chosecyan] -> []\nlate down [pickable |number0] -> [pickable pink | number0 pink]\nlate down [pickable2 |number2] -> [pickable2 cyan | number2 cyan]\nlate up [pink picked|pink] -> [chosepink picked|chosepink ]\nlate up [cyan picked|cyan ] -> [chosecyan picked|chosecyan ]\n\n(Movement----------------------------------------------------------------------------------------)\n\n(move attached items)\n[moving activecurse0 curse0] -> [moving activecurse0 moving curse0]\n[moving active player1] -> [moving active moving player1]\n[moving activefell ded1] -> [moving activefell moving ded1]\n[moving curse0 holding] -> [moving curse0 moving holding]\n[moving curse2 holding] -> [moving curse2 moving holding]\n\n(reset and propogate cant)\n[cant0] -> []\n[cant1] -> []\n[cant2] -> []\n[fellcant0] -> []\n[fellcant1] -> []\n\n[black no cant0 no cant1 no cant2] -> [black cant0 cant1 cant2]\n[wall2 no cant2] -> [wall2 cant2]\n[wall1 no cant1] -> [wall1 cant1]\n[wall0 no cant0] -> [wall0 cant0]\n[number0] -> [number0 cant1]\n[number2] -> [number2 cant1]\n[no pit1 no fellcant1] -> [fellcant1]\n[no pit0 no fellcant0] -> [fellcant0]\n\n[> ded1][fell1|fellcant1] -> [> ded1][fell1 fellcant1 | fellcant1]\n+ [> ded1][ded1|fellcant1] -> [> ded1][ded1 fellcant1 | fellcant1]\n+ up[fellu1|fellcant1] -> [fellu1 fellcant1 | fellcant1]\n+ left[felll1|fellcant1] -> [felll1 fellcant1 | fellcant1]\n+ down[felld1|fellcant1] -> [felld1 fellcant1 | fellcant1]\n+ right[fellr1|fellcant1] -> [fellr1 fellcant1 | fellcant1]\n\n+ [> player1][crate1|cant1] -> [> player1][crate1 cant1 | cant1]\n+ [> player1][player1|cant1] -> [> player1][player1 cant1 | cant1]\n+ up[crateu1|cant1] -> [crateu1 cant1 | cant1]\n+ left[cratel1|cant1] -> [cratel1 cant1 | cant1]\n+ down[crated1|cant1] -> [crated1 cant1 | cant1]\n+ right[crater1|cant1] -> [crater1 cant1 | cant1]\n+ [crate1 crate0 cant0] -> [crate1 crate0 cant0 cant1]\n+ [crate1 crate0 cant1] -> [crate1 crate0 cant0 cant1]\n+ [> dead0][dead0|fellcant0] -> [> dead0][dead0 fellcant0 | fellcant0]\n+ [> cursor0][cursor0|cant0] -> [> cursor0][cursor0 cant0 | cant0]\n+ [> cursor0][crate0 | number0] -> [> cursor0][crate0 cant0| number0]\n+ [> cursor0][crate0|cant0] -> [> cursor0][crate0 cant0 | cant0]\n+ up[crateu0|cant0] -> [crateu0 cant0 | cant0]\n+ left[cratel0|cant0] -> [cratel0 cant0 | cant0]\n+ down[crated0|cant0] -> [crated0 cant0 | cant0]\n+ right[crater0|cant0] -> [crater0 cant0 | cant0]\n\n[> curse2 | wall2] -> [stationary curse2 | wall2]\n[> curse2 | black] -> [stationary curse2 | black]\n[cursor0 cant0] -> [stationary cursor0 cant0]\n[player1 cant1] -> [stationary player1 cant1]\n[ded1 fellcant1] -> [stationary ded1 fellcant1]\n[dead0 fellcant0] -> [stationary dead0 fellcant0]\n\n\n(propagate movement)\n\n[ > Ded1 | Fell1 no fellcant1] -> [ > Ded1 | > Fell1 ]\n\n[ > Cursor0 | Crate0 ] -> [ > Cursor0 | > Crate0 ]\n+ [ > Cursor0 | Cursor0 ] -> [ > Cursor0 | > Cursor0 ]\n+ [ > Crate0 | Crate0 ] -> [ > Crate0 | > Crate0 ]\n\n+ [ > Player1 | Crate1 ] -> [ > Player1 | > Crate1 ]\n+ [ > Player1 | Player1] -> [ > Player1 | > Player1 ]\n+ [ > Crate1 | Player1 ] -> [ > Crate1 | > Player1 ]\n+ [> crate1|crate1] -> [> crate1 | > crate1]\n+ up[moving crate1 crateu1|crate1] -> [moving crate1 crateu1 | moving crate1]\n+ left[moving crate1 cratel1|crate1] -> [moving crate1 cratel1 | moving crate1]\n+ down[moving crate1 crated1|crate1] -> [moving crate1 crated1 | moving crate1]\n+ right[moving crate1 crater1|crate1] -> [moving crate1 crater1 | moving crate1]\n \n\n[> fell1|fell1] -> [> fell1 | > fell1]\n+ up[moving fell1 fellu1|fell1] -> [moving fell1 fellu1 | moving fell1]\n+ left[moving fell1 felll1|fell1] -> [moving fell1 felll1 | moving fell1]\n+ down[moving fell1 felld1|fell1] -> [moving fell1 felld1 | moving fell1]\n+ right[moving fell1 fellr1|fell1] -> [moving fell1 fellr1 | moving fell1]\n\n[moving crate1 cratex1] -> [moving crate1 moving cratex1]\n[moving fell1 fellx1] -> [moving fell1 moving fellx1]\n[moving crate1 crate0ghost] -> [moving crate1 moving crate0ghost]\n\n[active stationary player1] -> [stationary active stationary player1]\n[activecurse0 stationary curse0] -> [stationary activecurse0 stationary curse0]\n[activefell stationary ded1] -> [stationary activefell stationary ded1]\n[stationary cursor0 activecurse0 holding] -> [stationary cursor0 activecurse0 stationary holding]\n[stationary curse2 holding] -> [stationary curse2 stationary holding]\n\n\n(falling)\nlate [supported] -> []\n\nlate [crate1 ded1] -> [crate1 supported ded1]\nlate [crate1 no pit1] -> [crate1 supported]\nlate [crate1 fell1] -> [crate1 fell1 supported]\n\n\nlate up[crateu1|supported] -> [crateu1 supported | supported]\n+ late left[cratel1|supported] -> [cratel1 supported | supported]\n+ late down[crated1|supported] -> [crated1 supported | supported]\n+ late right[crater1|supported] -> [crater1 supported | supported]\n\n\nlate [cursor0 pit0 no fell0] -> [pit0 dead0a]SFX3\nlate [player1 active pit1 no fell1 no ded1] -> [pit1 ded1 activefell]SFX3\nlate [player1 pit1 no fell1 no ded1] -> [pit1 ded1 ]SFX3\nlate [crate0 pit0 no supported] -> [pit0 fell0]SFX3\nlate [crate1 pit1 no supported] -> [pit1 fell1] SFX3\n\n\n\nlate [crateu1 no crate1 fell1] -> [fellu1 fell1]\nlate [cratel1 no crate1 fell1] -> [felll1 fell1]\nlate [crater1 no crate1 fell1] -> [fellr1 fell1]\nlate [crated1 no crate1 fell1] -> [felld1 fell1]\n\nlate [crateu1 no crate1] -> []\nlate [cratel1 no crate1] -> []\nlate [crater1 no crate1] -> []\nlate [crated1 no crate1] -> []\nlate up [crateu1 |no crate1] -> [|]\nlate left [cratel1 |no crate1] -> [|]\nlate right [crater1 |no crate1] -> [|]\nlate down [crated1 |no crate1] -> [|]\nlate [player1 ded1] -> [player1 ded1] SFX0\nlate [player1 ded1] -> cancel \n\n[moving crate0] -> SFX2\n[moving crate1] -> SFX2\n\n==============\nWINCONDITIONS\n==============\n\n\nAll target0 on crate0\nAll Target1 on Crateorfell1\nAll PlayerTarget1 on Playerormark1\nno Cursor0 on target1\nno cursor0 on PlayerTarget1\n\n=======\nLEVELS\n=======\n\nmessage Book 1: BASE\n\nmessage Page 1.1: GOAL\n\n#######\n#`````#\n#`p`t`#\n#`````#\n#`o`q`#\n#`````#\n#######\n\nmessage Page 1.2: TOOL\n\n#######\n#`t`o`#\n#t`-:`#\n#``tlo#\n#p````#\n#######\n\nmessage Page 1.3: HOLE\n\n########\n##``0`##\n#```0``#\n#``o0`t#\n#po:0``#\n#``:0`t#\n#```0``#\n##``0`##\n########\n\nmessage Page 1.4: FALL\n\n########\n#00u``0#\n#00po`0#\n#`000`0#\n#`00```#\n#`000``#\n#`000``#\n########\n\nmessage Book 2: EDIT\n\nmessage Page 2.1: MINI\n\n||||||||||\n|```````'|\n|`######`|\n|`#````#`|\n|`#``t`#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 2.2: FORM\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 2.3: PLUG\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#ro`o`#`|\n|`#####`#`|\n|`###`o`#`|\n|`#``oLo#`|\n|`#````##`|\n|`#`q####`|\n|`#######`|\n|`````````|\n|``c`0````|\n|````8````|\n|`````````|\n|||||||||||\n\nmessage Page 2.4: TRAP\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#``````#`|\n|`#``t```#`|\n|`#`tqt``#`|\n|`#``t```#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````16````|\n|``````````|\n||||||||||||\n\nmessage Book 3: DUAL\n\nmessage Page 3.1: CO-OP\n\n#######\n####qq#\n#po000#\n#`o000#\n###o``#\n###r`'#\n#######\n\nmessage Page 3.2: REST\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#`r00q#`|\n|`#######`|\n|`````````|\n|``c`o````|\n|````2````|\n|`````````|\n|||||||||||\nmessage Page 3.3: SAIL\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#0000q#`|\n|`#00000#`|\n|`#00000#`|\n|`#```00#`|\n|`#```00#`|\n|`#######`|\n|`````````|\n|``c`ro```|\n|````23```|\n|`````````|\n|||||||||||\n\nmessage Page 3.4: TWIN\n\n|||||||||||||||||||||\n|`````````+````````'|\n|`#######`+`#######`|\n|`#`````#`+`#`````#`|\n|`#```q`#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`q```#`|\n|`#`````#`+`#`````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````6````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Book 4: WHAT\n\nmessage Page 4.1: GUIS\n\n\n#######\n#q#``'#\n#``8#`#\n#`#p#`#\n#`#o#`#\n#`#1``#\n#######\n\nmessage Page 4.2: IDEA\n\n||||||||||\n|```````'|\n|`######`|\n|`#```t#`|\n|`#```t#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```31```|\n|````````|\n||||||||||\n\nmessage Page 4.3: FILL\n\n\n######\n#0poq#\n#0`70#\n#'000#\n#0000#\n######\n\nmessage Page 4.4: A LOT\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|``````'|\n|`c3o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Book 5: UHHH\n\nmessage Page 5.1: WALL\n\n||||||||||\n|```````'|\n|`######`|\n|`#t`#`#`|\n|`#````#`|\n|`##`o`#`|\n|x+xxxx+x|\n|`#````#`|\n|`#````#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 5.2: SAFE\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#xxxxx#`|\n|`#x```x#`|\n|`#x`t`x#`|\n|`#x```x#`|\n|`#xxxxx#`|\n|`#######`|\n|`````````|\n|`c`o1r```|\n|```111```|\n|`````````|\n|||||||||||\n\nmessage Page 5.3: LOCK\n\n|||||||||||||\n|o```'`xxxcx|\n|1``x```qx!x|\n|`1!````qx`x|\n|``1?x`xxx?x|\n|r``1````!`x|\n|````2`xxxxx|\n|||||||||||||\n\n\n\nmessage Page 5.4: POST\n\n+++++++++\n+p#```#q+\n+`#``'#3+\n+`#`1`#`+\n+`#`2`#`+\n+`#```#`+\n+`#```#`+\n+++++++++\nmessage Book 6: BLUE\n\nmessage Page 6.1: META\n\n||||||||||||\n|++++++++++|\n|+````\"```+|\n|+`######`+|\n|+`#````#`+|\n|+`#``t`#`+|\n|+`#````#`+|\n|+`######`+|\n|+````````+|\n|+```ro```+|\n|+````````+|\n|+````````+|\n|++++++++++|\n|``````````|\n|``~`1b````|\n|````{[````|\n|``````````|\n||||||||||||\n\nmessage Page 6.2: WILD\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`#######`+|\n|+`#0000q#`+|\n|+`#00000#`+|\n|+`#`0000#`+|\n|+`#`0000#`+|\n|+`#```00#`+|\n|+`#######`+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\nmessage Page 6.3: UH OH\n\n|||||||||||\n|+++++++++|\n|+``````\"+|\n|+`+++++`+|\n|+`+```+`+|\n|+`+`t`+`+|\n|+`+```+`+|\n|+`+```+`+|\n|+`+++++`+|\n|+```````+|\n|+```o```+|\n|+```````+|\n|+```````+|\n|+++++++++|\n|`````````|\n|`````````|\n|`~`1br```|\n|```][[```|\n|`````````|\n|||||||||||\n\nmessage Page 6.4: VARY\n\n|||||||||||||||||||||||\n|++++++++++&++++++++++|\n|+``````\"`x&x````````+|\n|+`######`x&x`######`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`#`qt`#`x&x`#`tq`#`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`######`x&x`######`+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|++++++++++&++++++++++|\n|``````````&``````````|\n|`~`r1ob```&`_`r1ob```|\n|```[{[[```&```[[[[```|\n|``````````&``````````|\n|||||||||||||||||||||||\n\nmessage Book 7: ?!?!\n\nmessage Page 7.1: EACH\n\n+++++++\n+````'+\n+`###`+\n+`#q#`+\n+`#0#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`###`+\n+`````+\n+``c``+\n+`r0o`+\n+``4``+\n+`````+\n+++++++\n\nmessage Page 7.2: HOLD\n\n&&&&&&&&&\n&`8```+`&\n&`{po`+`&\n&`\"```+t&\n&&&&&&&&&\n\nmessage Page 7.3: TRIP\n\n&&&&&&&\n&```\"`&\n&`o`!`&\n&`````&\n&+++++&\n&`r2b`&\n&`[[{~&\n&y```t&\n&&&&&&&\n\nmessage Page 7.4: PLAN\n\n\n|||||||||\n|```t```|\n|```````|\n|+++++++|\n|```````|\n|```````|\n|>>>>>>>|\n|```````|\n|```````|\n|+++++++|\n|```~```|\n|[[`2\"11|\n|[[`[`[[|\n|&&`&&&&|\n|&&bor&&|\n|||||||||\n\n\n\n\n\nmessage Book 8: (RE)STAR(TS)\n\n\nmessage Page 8.1: (IN)FORM(ED)\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 8.2: (EN)TWIN(ED)\n\n|||||||||||||||||||||\n|`````````+`````````|\n|`#######`+`#######`|\n|`#````q#`+`#`````#`|\n|`#`````#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`````#`|\n|`#`````#`+`#q````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````5````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Page 8.3: (ZE)ALOT(RY)\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|```````|\n|`c2o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Page 8.4: (BE)WILD(ER)\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`+++++++`+|\n|+`+0000q+`+|\n|+`+00000+`+|\n|+`+00000+`+|\n|+`+`0000+`+|\n|+`+```00+`+|\n|+`+++++++`+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",[3,3,4,0,0,0,3,4,0,4,3,0,0,4,0,4,1,1,1,2,4,2,4,2,3,0,4,3,3,2,1,1,0,1,0,1,0,3,3,2,3,3,2,2],"background black cant0 cant1 cant2 fellcant0 fellcant1:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background fellcant0 fellcant1:1,1,1,1,1,1,\n1,1,1,1,1,1,0,0,1,background cant1 fellcant0 fellcant1 wall1 walll1 wallu1:2,background cant1 fellcant0 fellcant1 wall1 walll1 wallr1:3,3,3,3,3,background cant1 fellcant0 fellcant1 wall1 walld1 walll1:4,1,1,1,1,0,\n0,1,background cant1 fellcant0 fellcant1 wall1 walld1 wallu1:5,1,1,1,1,1,5,1,1,1,1,0,0,1,5,1,1,1,background cant1 crate1 crated1 fellcant0 fellcant1 supported:6,\nbackground cant1 crate1 crateu1 fellcant0 fellcant1 supported:7,5,1,1,1,1,0,0,1,5,1,1,1,1,1,5,1,1,1,1,0,\n0,1,5,background crate1 fellcant0 fellcant1 supported:8,background fellcant0 fellcant1 playertarget1:9,1,active background fellcant0 fellcant1 player1:10,1,5,1,1,1,1,0,0,1,5,background crate1 crated1 fellcant0 fellcant1 supported:11,background crate1 crateu1 fellcant0 fellcant1 supported:12,1,1,\n1,5,1,1,1,1,0,0,1,background cant1 fellcant0 fellcant1 wall1 wallr1 wallu1:13,3,3,3,3,3,background cant1 fellcant0 fellcant1 wall1 walld1 wallr1:14,1,1,1,1,0,\n0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,background cant1 fellcant0 fellcant1 wall0ghost wall1 walll1 wallr1 wallu1:15,background cant1 fellcant0 fellcant1 wall0ghost wall1 walll1 wallr1:16,16,16,16,16,\n16,16,16,16,16,background cant1 fellcant0 fellcant1 wall0ghost wall1 walld1 walll1 wallr1:17,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,2,3,3,3,3,3,4,1,1,1,1,0,0,1,5,1,11,12,1,\n1,5,1,1,1,1,0,0,1,5,1,1,1,background cant1 crate1 crated1 fellcant0 fellcant1 playertarget1 supported:18,7,5,1,1,1,1,0,\n0,1,5,1,1,1,1,1,5,1,1,1,1,0,0,1,5,1,1,1,10,\n1,5,1,1,1,1,0,0,1,5,11,12,1,1,1,5,1,1,1,1,0,\n0,1,13,3,3,3,3,3,14,1,1,1,1,0,0,background fellcant0 fellcant1 partb:19,1,1,1,1,1,\n1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",26,"1627770125763.7583"] + ["title VEXT EDIT\nauthor JACK\n\nrun_rules_on_level_start\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\n#eeeeee\n\nPlayerTarget1mark\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1mark\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nPlayerTarget1\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0Mark\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nWall0 \n#884400 #f00\n00000\n00000\n00000\n00000\n00000\n\nwalll0 \nBrown #f00\n1....\n1....\n1....\n1....\n1....\n\nWallr0 \nBrown #f00\n....1\n....1\n....1\n....1\n....1\n\nWalld0 \nBrown #f00\n.....\n.....\n.....\n.....\n11111\n\nWallu0 \nBrown #f00\n11111\n.....\n.....\n.....\n.....\n\nBlack\nblack\n\nwall0ghost\ntransparent\n\nWall0Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1 \n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall2\n#884400 #00f\n00000\n00000\n00000\n00000\n00000\n\nwalll2\nBrown #00f\n1....\n1....\n1....\n1....\n1....\n\nWallr2 \nBrown #00f\n....1\n....1\n....1\n....1\n....1\n\nWalld2 \nBrown #00f\n.....\n.....\n.....\n.....\n11111\n\nWallu2 \nBrown #00f\n11111\n.....\n.....\n.....\n.....\n\nwalll1 \nBrown #ff0\n1....\n1....\n1....\n1....\n1....\n\nWallr1 \nBrown #ff0\n....1\n....1\n....1\n....1\n....1\n\nWalld1 \nBrown #ff0\n.....\n.....\n.....\n.....\n11111\n\nWallu1 \nBrown #ff0\n11111\n.....\n.....\n.....\n.....\n\nCrate1Mark\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate1\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate01\ntransparent\n\nCrate0\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate0mark\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\ncrate0ghost\ntransparent\n\nPlayer1Mark\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nPlayer1\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nDed1Mark\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nDed1\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nCrated0\n#f80 #f00\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu0\n#f80 #f00\n.010.\n.010.\n.....\n.....\n.....\n\nCratel0\n#f80 #f00\n.....\n00...\n11...\n00...\n.....\n\nCrater0\n#f80 #f00\n.....\n...00\n...11\n...00\n.....\n\nCrated1\n#f80 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu1\n#f80 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nCratel1\n#f80 #ff0\n.....\n00...\n11...\n00...\n.....\n\nCrater1\n#f80 #ff0\n.....\n...00\n...11\n...00\n.....\n\n\nPit1Mark\nblack #bbbb00 white\n.111.\n10001\n10001\n10001\n.111.\n\n\nPit1\nblack #bbbb00 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\npit0ghost\ntransparent\n\nPit0\nblack #bb0000 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\n\npit0u\nblack #bb0000\n10001\n.....\n.....\n.....\n.....\n\npit0d\nblack #bb0000\n.....\n.....\n.....\n.....\n10001\n\npit0l\nblack #bb0000\n1....\n0....\n0....\n0....\n1....\n\npit0r\nblack #bb0000\n....1\n....0\n....0\n....0\n....1\n\npit1u\nblack #bbbb00\n10001\n.....\n.....\n.....\n.....\n\npit1d\nblack #bbbb00\n.....\n.....\n.....\n.....\n10001\n\npit1l\nblack #bbbb00\n1....\n0....\n0....\n0....\n1....\n\npit1r\nblack #bbbb00\n....1\n....0\n....0\n....0\n....1\n\nrim0u\n#b00\n.000.\n.....\n.....\n.....\n.....\n\nrim0l\n#b00\n.....\n0....\n0....\n0....\n.....\n\nrim0r\n#b00\n.....\n....0\n....0\n....0\n.....\n\nrim0d\n#b00\n.....\n.....\n.....\n.....\n.000.\n\nrim1u\n#bb0\n.000.\n.....\n.....\n.....\n.....\n\nrim1l\n#bb0\n.....\n0....\n0....\n0....\n.....\n\nrim1r\n#bb0\n.....\n....0\n....0\n....0\n.....\n\nrim1d\n#bb0\n.....\n.....\n.....\n.....\n.000.\n\nblackul\nblack\n0....\n.....\n.....\n.....\n.....\n\nblackur\nblack\n....0\n.....\n.....\n.....\n.....\n\nblackdl\nblack\n.....\n.....\n.....\n.....\n0....\n\nblackdr\nblack\n.....\n.....\n.....\n.....\n....0\n\nfell0\n#884400 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1mark\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfelld1\n#884400 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nfellu1\n#884400 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nfelll1\n#884400 #ff0\n.....\n00...\n11...\n00...\n.....\n\nfellr1\n#884400 #ff0\n.....\n...00\n...11\n...00\n.....\n\nfell0ghost\ntransparent\n\nsupported\ntransparent\n\nfellcant1\ntransparent\n\ncant1\ntransparent\n\ncant0\ntransparent\n\nfellcant0\ntransparent\n\ndead0a\ndarkred\n.....\n.0.0.\n.....\n.0.0.\n.....\n\ncursor0a\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\ncursor0b\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\n\n\ncursor2a\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\ncursor2b\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\none2mark\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2mark\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2mark\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none2\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0mark\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0mark\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0mark\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\nfour0\n#f00\n.0.0.\n.0.0.\n..00.\n...0.\n...0.\n\nfive0\n#f00\n.000.\n.0...\n.00..\n...0.\n.00..\n\nsix0\n#f00\n..00.\n.0...\n.00..\n.0.0.\n..0..\n\nseven0\n#f00\n.000.\n...0.\n...0.\n..0..\n..0..\n\ninf0\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\ninf0mark\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\n\ndecrement\ntransparent\n\nholding\ntransparent\n\nactiveb\n#f00\n.....\n.0.0.\n.....\n.....\n.....\n\nactive\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\nactivefell\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\npickeda0\ntransparent\n\npickedb0\ntransparent\n\npickeda2\ntransparent\n\npickedb2\ntransparent\n\nchosepink\n#ff22ff\n\nchosecyan\n#22ffff\n\npink\n#ff88ff\n\ncyan\n#88ffff\n\nplacemark\ntransparent\n\nactivecurse0\ntransparent\n\npartb\ntransparent\n\npartc\ntransparent\n\ncursor0mark\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\nwall2ghost\ntransparent\n\ncant2\ntransparent\n\nshowhere\ntransparent\n\nshowthis\ntransparent\n=======\nLEGEND\n=======\n\n` = Background\n& = Wall2 and wall1 and wall0\n# = Wall1\nX = Wall0\n+ = Wall0 and Wall1\nP = Player1 and active\n\nn = crate0 and crate1 and crate01\no = Crate1\n- = crate1 and crater1\n: = crate1 and crateu1\nL = crate1 and crater1 and crateu1\n0 = pit1\n! = crate0\n? = pit0\n/ = pit0 and pit1\n\n@ = one0 and pit0\nz = player1 and pit0\n\n| = black\n\n' = partb\n\" = partc\n\n~ = cursor2a\n_ = cursor2b\n\n1 = one0\n2 = two0\n3 = three0\n4 = four0\n5 = five0\n6 = six0\n7 = seven0\n8 = inf0\n\n[ = one2\n{ = two2\n] = three2\n> = wall2\nactiveab = active or activeb or activefell\npartbc = partb or partc\n\ny = target0\nu = Target1 and pit1\nt = Target1\nq = playertarget1\nr = player1\nb = cursor0a\nc = cursor0a and activecurse0\nk = cursor0b and activecurse0\ncurse0a = cursor0a or dead0a\ncurse0 = curse0a or cursor0b\ncurse2 = cursor2a or cursor2b\ncursor0 = cursor0a or cursor0b\n \nplayer = curse2 or activecurse0 or active or dead0a or activefell\ndead0 = dead0a\nx1 = player1 or crate1 or wall1 or target1 or playertarget1 or pit1\nx0 = crate0 or wall0 or pit0 or fell0\nxx = x0 or x1 or curse0\nx0ghost = crate0ghost or wall0ghost or pit0ghost or fell0ghost\ncratex1 = cratel1 or crater1 or crated1 or crateu1\nwallx2 = walll2 or wallr2 or walld2 or wallu2\nwallx1 = walll1 or wallr1 or walld1 or wallu1\nwallx0 = walll0 or wallr0 or walld0 or wallu0\nfellx1 = felll1 or fellr1 or felld1 or fellu1\npit0x = pit0l or pit0r or pit0d or pit0u\npit1x = pit1l or pit1r or pit1d or pit1u\ncrateorfell1 = crate1 or fell1\nplayerormark1 = player1 or player1mark\n\nx0mark = one0mark or two0mark or three0mark or cursor0mark or wall0mark or target0mark or crate0mark or inf0mark\nx1mark = player1mark or crate1mark or pit1mark or wall1mark or fell1mark or ded1mark or crate1mark or Target1mark or PlayerTarget1mark\nx2mark = one2mark or two2mark or three2mark\nxmark = x0mark or x1mark or x2mark\nnumber0 = one0 or two0 or three0 or four0 or five0 or six0 or seven0 or inf0\nnumber2 = one2 or two2 or three2\npicked = pickeda0 or pickedb0 or pickeda2 or pickedb2\n\npickable = player1 or pit1 or crate1 or number0 or wall1 or number2 or fell1 or ded1 or target0 or PlayerTarget1 or Target1\npickable2 = curse0a or pickable or wall0 or crate0 \n\nblackcorner = blackul or blackdl or blackur or blackdr\nrim0x = rim0l or rim0d or rim0u or rim0r\nrim1x = rim1l or rim1d or rim1u or rim1r \n=======\nSOUNDS\n=======\n\nSFX0 51304502\n\nsfx1 22108304\n\nSFX2 84700307\n\nSFX3 78571302\n\nSFX4 25131906\n\nSFX5 13408901\n\nSFX6 50704903\n\nSFX7 24622504\n\nSFX8 29744504\n\nSFX9 13344503\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\npink, chosepink\ncyan, chosecyan\n\n\nPit1,\npit1r\npit1l\npit1d\npit1u\npit0, pit0ghost\npit0r\npit0l\npit0d\npit0u\nblackul\nblackur\nblackdr\nblackdl\nTarget1, PlayerTarget1, target0\n\nfell1, ded1\nfelll1\nfellr1\nfelld1\nfellu1\n\ndead0a, fell0, fell0ghost\nrim0l \nrim0d \nrim0u \nrim0r\n\nrim1l \nrim1d \nrim1u \nrim1r \nPlayer1, Wall1, Crate1, \npit1mark\nfell1mark, ded1mark, target0mark\nTarget1mark, PlayerTarget1mark\nplayer1mark, crate1mark\nwall1mark\none0mark, two0mark, three0mark, wall0mark, inf0mark\none2mark, two2mark, three2mark\ncursor0mark, crate0mark\nnumber0, number2\ncratel1, walll1, \ncrater1, wallr1, \ncrated1, walld1, \ncrateu1, wallu1, \ncursor0, wall0, crate0, wall0ghost, crate0ghost\n walll0, cratel0\n wallr0, crater0\n walld0, crated0\n wallu0, crateu0\n crate01\n wall2, wall2ghost\n wallr2\n wallu2\n walll2\n walld2\n cursor2a, cursor2b\n \nfellcant1\nfellcant0\ncant0\ncant1\ncant2\nsupported\nactivefell\nactive, activeb\nactivecurse0\nholding\ndecrement\npickeda0, pickeda2\npickedb0, pickedb2\nplacemark\npartb partc\nshowthis\nshowhere\nblack\n\n======\nRULES\n======\n\n(Deal with action-----------------------------------------------------------------------------)\n\n[action activecurse0 curse0] -> [activecurse0 action curse0]\n\n(pick up ready icon)\ndown[action curse0a no holding pickable|number0] -> [curse0a holding pickable|number0 pickeda0] SFX9\ndown[action cursor0b no holding pickable|number0] -> [cursor0b holding pickable|number0 pickedb0] SFX9\ndown[action cursor2a no holding pickable2|number2] -> [cursor2a holding pickable2|number2 pickeda2] SFX9\ndown[action cursor2b no holding pickable2|number2] -> [cursor2b holding pickable2|number2 pickedb2] SFX9\n(switch to new ready icon)\ndown [action curse0a pickable| number0 no pickeda0][pickeda0] -> [curse0a pickable | number0 pickeda0][] SFX9\ndown [action cursor0b pickable| number0 no pickedb0][pickedb0] -> [cursor0b pickable | number0 pickedb0][] SFX9\ndown [action cursor2a pickable2| number2 no pickeda2][pickeda2] -> [cursor2a pickable2 | number2 pickeda2][] SFX9\ndown [action cursor2b pickable2| number2 no pickedb2][pickedb2] -> [cursor2b pickable2 | number2 pickedb2][] SFX9\n\n(put down ready icon)\ndown [action curse0 holding pickable| picked] -> [curse0 pickable|] SFX8\ndown [action cursor2a holding pickable2| pickeda2] -> [cursor2a pickable2|] SFX8\ndown [action cursor2b holding pickable2| pickedb2] -> [cursor2b pickable2|] SFX8\n\n(show mark)\nlate [xmark] -> []\nlate [showthis] -> []\nlate [showhere] -> []\n\nlate down [ | number0 pickeda0][curse0a] -> [showthis | number0 pickeda0][curse0a showhere]\nlate down [ | number0 pickedb0][cursor0b] -> [showthis | number0 pickedb0][cursor0b showhere]\nlate down [ | number2 pickeda2][cursor2a] -> [showthis | number2 pickeda2][cursor2a showhere]\nlate down [ | number2 pickedb2][cursor2b] -> [showthis | number2 pickedb2][cursor2b showhere]\nlate [showthis player1][showhere] -> [showthis player1][showhere player1mark]\nlate [showthis pit1][showhere] -> [showthis pit1][showhere pit1mark]\nlate [showthis crate1][showhere] -> [showthis crate1][showhere crate1mark]\nlate [showthis wall1][showhere] -> [showthis wall1][showhere wall1mark]\nlate [showthis one0][showhere] -> [showthis one0][showhere one0mark]\nlate [showthis two0][showhere] -> [showthis two0][showhere two0mark]\nlate [showthis three0][showhere] -> [showthis three0][showhere three0mark]\nlate [showthis one2][showhere] -> [showthis one2][showhere one2mark]\nlate [showthis two2][showhere] -> [showthis two2][showhere two2mark]\nlate [showthis three2][showhere] -> [showthis three2][showhere three2mark]\nlate [showthis wall0][showhere] -> [showthis wall0][showhere wall0mark]\nlate [showthis fell1][showhere] -> [showthis fell1][showhere fell1mark]\nlate [showthis ded1][showhere] -> [showthis ded1][showhere ded1mark]\nlate [showthis target0][showhere] -> [showthis target0][showhere target0mark]\nlate [showthis crate0][showhere] -> [showthis crate0][showhere crate0mark]\nlate [showthis cursor0][showhere] -> [showthis cursor0][showhere cursor0mark]\nlate [showthis inf0][showhere] -> [showthis inf0][showhere inf0mark]\nlate [showthis Target1][showhere] -> [showthis target1][showhere Target1mark]\nlate [showthis PlayerTarget1][showhere] -> [showthis PlayerTarget1][showhere PlayerTarget1mark]\n(connect cratemark)\nup [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crateu1 | crate1 crated1]\ndown [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crated1 | crate1 crateu1]\nleft [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark cratel1 | crate1 crater1]\nright [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crater1 | crate1 cratel1]\nup [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crateu1 | fell1 felld1]\ndown [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crated1 | fell1 fellu1]\nleft [action curse0 holding fell1mark no xx no number0 no number2| fell1] -> [action curse0 holding fell1mark cratel1 | fell1 fellr1]\nright [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crater1 | fell1 felll1]\n\n(place mark)\n[placemark] -> []\n\ndown [action curse0a holding xmark no x1 no number0][pickeda0 number0] -> [curse0a holding xmark placemark][pickeda0 decrement number0] SFX7\ndown [action cursor0b holding xmark no x1 no number0][pickedb0 number0] -> [cursor0b holding xmark placemark][pickedb0 decrement number0] SFX7\n\ndown [action cursor2a holding xmark no xx no number0 no number2][pickeda2 number2] -> [cursor2a holding xmark placemark][pickeda2 decrement number2] SFX7\ndown [action cursor2b holding xmark no xx no number0 no number2][pickedb2 number2] -> [cursor2b holding xmark placemark][pickedb2 decrement number2] SFX7\n\n\n\n[placemark player1mark] -> [placemark player1 player1mark]\n[placemark pit1mark] -> [placemark pit1 pit1mark]\n[placemark crate1mark] -> [placemark crate1 crate1mark]\n[placemark wall1mark] -> [placemark wall1 wall1mark]\n[placemark one0mark] -> [placemark one0 one0mark]\n[placemark two0mark] -> [placemark two0 two0mark]\n[placemark three0mark] -> [placemark three0 three0mark]\n[placemark one2mark] -> [placemark one2 one2mark]\n[placemark two2mark] -> [placemark two2 two2mark]\n[placemark three2mark] -> [placemark three2 three2mark]\n[placemark wall0mark] -> [placemark wall0 wall0mark]\n[placemark fell1mark] -> [placemark fell1 fell1mark]\n[placemark ded1mark] -> [placemark ded1 ded1mark]\n[placemark target0mark] -> [placemark target0 target0mark]\n[placemark crate0mark] -> [placemark crate0 crate0mark]\n[placemark Target1mark] -> [placemark target1 Target1mark]\n[placemark inf0mark] -> [placemark inf0 inf0mark]\n[placemark PlayerTarget1mark] -> [placemark playertarget1 PlayerTarget1mark]\ndown [placemark cursor0mark][curse0a|no one2] -> [ cursor0b cursor0mark][curse0a|]\n[placemark cursor0mark] -> [placemark cursor0a cursor0mark]\n\n(decrement number of placed item)\ndown [xmark holding cursor2a][pickable2|one2 decrement pickeda2] -> [xmark holding cursor2a][|one2 decrement pickeda2]\ndown [xmark holding cursor2b][pickable2|one2 decrement pickedb2] -> [xmark holding cursor2b][|one2 decrement pickedb2]\ndown [xmark holding curse0a][pickable|one0 decrement pickeda0] -> [xmark holding curse0a][|one0 decrement pickeda0]\ndown [xmark holding cursor0b][pickable|one0 decrement pickedb0] -> [xmark holding cursor0b][|one0 decrement pickedb0]\ndown [xmark holding cursor2a][|one2 decrement pickeda2] -> [cursor2a][|]\ndown [xmark holding cursor2b][|one2 decrement pickedb2] -> [cursor2b][|]\ndown [xmark holding cursor0a][|one0 decrement pickeda0] -> [cursor0a][|]\ndown [xmark holding cursor0b][|one0 decrement pickedb0] -> [cursor0b][|]\n[one0 decrement] -> []\n[two0 decrement] -> [one0]\n[three0 decrement] -> [two0]\n[four0 decrement] -> [three0]\n[five0 decrement] -> [four0]\n[six0 decrement] -> [five0]\n[seven0 decrement] -> [six0]\n[one2 decrement] -> []\n[two2 decrement] -> [one2]\n[three2 decrement] -> [two2]\n\n\n\n(player -> cursor)\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [player1 action active no wall0ghost no crate0ghost][partbc] -> [cursor0a player1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [ded1 action activefell no wall0ghost no crate0ghost][partbc] -> [cursor0a ded1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\n\n(cursor holding -> player)\ndown [action curse0a activecurse0 player1 holding xmark][| number0 pickeda0] -> [active player1][ | number0] SFX6\ndown [action curse0a activecurse0 ded1 holding xmark][| number0 pickeda0] -> [activefell ded1][ | number0] SFX6\ndown [action cursor0b activecurse0 player1 holding xmark][| number0 pickedb0] -> [active player1][ | number0] SFX6\ndown [action cursor0b activecurse0 ded1 holding xmark][| number0 pickedb0] -> [activefell ded1][ | number0] SFX6\n(empty cursor -> player)\n[action curse0 player1 activecurse0 no holding] -> [active player1] SFX6\n[action curse0 ded1 activecurse0 no holding] -> [activefell ded1] SFX6\n(red -> blue)\n[action cursor0a activecurse0 holding xmark][partc][pickeda0] -> [cursor0a cursor2a][partc][] SFX5\n[action cursor0a activecurse0 ][partc] -> [cursor0a cursor2a][partc] SFX5\n[action cursor0b activecurse0 holding xmark][partc][pickedb0] -> [cursor0b cursor2b][partc][] SFX5\n[action cursor0b activecurse0 ][partc] -> [cursor0b cursor2b][partc] SFX5\n(blue holding -> red)\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\nrandom down [action curse2 curse0 holding xmark][| number2 pickeda2] -> [activecurse0 cursor0a][ | number2] SFX6\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\n(empty blue -> red)\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\nrandom [action curse2 curse0 no holding] -> [activecurse0 cursor0a] SFX6\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\n\n\n[action player] -> SFX0\n[action curse0] -> SFX0\n\n(Aesthetic----------------------------------------------------------------------------------------)\n\n\n\n(ghosts)\n[player1 active][pit0] -> [player1 active][pit0ghost]\n[pit0ghost][cursor0] -> [pit0][cursor0]\n[player1 active][wall0] -> [player1 active][wall0ghost]\n[wall0ghost][cursor0] -> [wall0][cursor0]\n[player1 active][crate0] -> [player1 active][crate0ghost]\n[crate0ghost][cursor0] -> [crate0][cursor0]\n[player1 active][fell0] -> [player1 active][fell0ghost]\n[fell0ghost][cursor0] -> [fell0][cursor0]\n[curse0 activecurse0][wall2] -> [curse0 activecurse0][wall2ghost]\n[wall2ghost][curse2] -> [wall2][curse2]\n\n\n(wall boundaries)\n[wallx2] -> []\n[wallx1] -> []\n[wallx0] -> []\nup [wall2 | no wall2] -> [wall2 wallu2 | ]\ndown [wall2 | no wall2] -> [wall2 walld2 | ]\nleft [wall2 | no wall2] -> [wall2 walll2 | ]\nright [wall2 | no wall2] -> [wall2 wallr2 | ]\nup [wall1 | no wall1] -> [wall1 wallu1 | ]\ndown [wall1 | no wall1] -> [wall1 walld1 | ]\nleft [wall1 | no wall1] -> [wall1 walll1 | ]\nright [wall1 | no wall1] -> [wall1 wallr1 | ]\nup [wall0 | no wall0] -> [wall0 wallu0 | ]\ndown [wall0 | no wall0] -> [wall0 walld0 | ]\nleft [wall0 | no wall0] -> [wall0 walll0 | ]\nright [wall0 | no wall0] -> [wall0 wallr0 | ]\n\n(crate connectors)\nup [crateu0|] -> [crateu0 | crated0]\nright [crater0|] -> [crater0 | cratel0]\nup [crateu1|] -> [crateu1 | crated1]\nright [crater1|] -> [crater1 | cratel1]\n(pit connectors)\n[blackcorner] -> []\n[pit0x] -> [] \n[pit1x] -> [] \nup [pit1 | pit1] -> [pit1u pit1|pit1d pit1]\nright [pit1 | pit1] -> [pit1r pit1|pit1l pit1]\nup [pit0 | pit0] -> [pit0u pit0|pit0d pit0]\nright [pit0 | pit0] -> [pit0r pit0|pit0l pit0]\n[pit1u pit1r] -> [pit1u pit1r blackur]\n[pit1u pit1l] -> [pit1u pit1l blackul]\n[pit1d pit1r] -> [pit1d pit1r blackdr]\n[pit1d pit1l] -> [pit1d pit1l blackdl]\n[pit0u pit0r] -> [pit0u pit0r blackur]\n[pit0u pit0l] -> [pit0u pit0l blackul]\n[pit0d pit0r] -> [pit0d pit0r blackdr]\n[pit0d pit0l] -> [pit0d pit0l blackdl]\n[rim1x] -> []\n[rim0x] -> []\nup[pit0|no pit0] -> [pit0 rim0u|]\ndown[pit0|no pit0] -> [pit0 rim0d|]\nleft[pit0|no pit0] -> [pit0 rim0l|]\nright[pit0|no pit0] -> [pit0 rim0r|]\nup[pit1|no pit1] -> [pit1 rim1u|]\ndown[pit1|no pit1] -> [pit1 rim1d|]\nleft[pit1|no pit1] -> [pit1 rim1l|]\nright[pit1|no pit1] -> [pit1 rim1r|]\nlate [pink] -> []\nlate [cyan] -> []\nlate [chosepink] -> []\nlate [chosecyan] -> []\nlate down [pickable |number0] -> [pickable pink | number0 pink]\nlate down [pickable2 |number2] -> [pickable2 cyan | number2 cyan]\nlate up [pink picked|pink] -> [chosepink picked|chosepink ]\nlate up [cyan picked|cyan ] -> [chosecyan picked|chosecyan ]\n\n(Movement----------------------------------------------------------------------------------------)\n\n(move attached items)\n[moving activecurse0 curse0] -> [moving activecurse0 moving curse0]\n[moving active player1] -> [moving active moving player1]\n[moving activefell ded1] -> [moving activefell moving ded1]\n[moving curse0 holding] -> [moving curse0 moving holding]\n[moving curse2 holding] -> [moving curse2 moving holding]\n\n(reset and propogate cant)\n[cant0] -> []\n[cant1] -> []\n[cant2] -> []\n[fellcant0] -> []\n[fellcant1] -> []\n\n[black no cant0 no cant1 no cant2] -> [black cant0 cant1 cant2]\n[wall2 no cant2] -> [wall2 cant2]\n[wall1 no cant1] -> [wall1 cant1]\n[wall0 no cant0] -> [wall0 cant0]\n[number0] -> [number0 cant1]\n[number2] -> [number2 cant1]\n[no pit1 no fellcant1] -> [fellcant1]\n[no pit0 no fellcant0] -> [fellcant0]\n\n[> ded1][fell1|fellcant1] -> [> ded1][fell1 fellcant1 | fellcant1]\n+ [> ded1][ded1|fellcant1] -> [> ded1][ded1 fellcant1 | fellcant1]\n+ up[fellu1|fellcant1] -> [fellu1 fellcant1 | fellcant1]\n+ left[felll1|fellcant1] -> [felll1 fellcant1 | fellcant1]\n+ down[felld1|fellcant1] -> [felld1 fellcant1 | fellcant1]\n+ right[fellr1|fellcant1] -> [fellr1 fellcant1 | fellcant1]\n\n+ [> player1][crate1|cant1] -> [> player1][crate1 cant1 | cant1]\n+ [> player1][player1|cant1] -> [> player1][player1 cant1 | cant1]\n+ up[crateu1|cant1] -> [crateu1 cant1 | cant1]\n+ left[cratel1|cant1] -> [cratel1 cant1 | cant1]\n+ down[crated1|cant1] -> [crated1 cant1 | cant1]\n+ right[crater1|cant1] -> [crater1 cant1 | cant1]\n+ [crate1 crate0 cant0] -> [crate1 crate0 cant0 cant1]\n+ [crate1 crate0 cant1] -> [crate1 crate0 cant0 cant1]\n+ [> dead0][dead0|fellcant0] -> [> dead0][dead0 fellcant0 | fellcant0]\n+ [> cursor0][cursor0|cant0] -> [> cursor0][cursor0 cant0 | cant0]\n+ [> cursor0][crate0 | number0] -> [> cursor0][crate0 cant0| number0]\n+ [> cursor0][crate0|cant0] -> [> cursor0][crate0 cant0 | cant0]\n+ up[crateu0|cant0] -> [crateu0 cant0 | cant0]\n+ left[cratel0|cant0] -> [cratel0 cant0 | cant0]\n+ down[crated0|cant0] -> [crated0 cant0 | cant0]\n+ right[crater0|cant0] -> [crater0 cant0 | cant0]\n\n[> curse2 | wall2] -> [stationary curse2 | wall2]\n[> curse2 | black] -> [stationary curse2 | black]\n[cursor0 cant0] -> [stationary cursor0 cant0]\n[player1 cant1] -> [stationary player1 cant1]\n[ded1 fellcant1] -> [stationary ded1 fellcant1]\n[dead0 fellcant0] -> [stationary dead0 fellcant0]\n\n\n(propagate movement)\n\n[ > Ded1 | Fell1 no fellcant1] -> [ > Ded1 | > Fell1 ]\n\n[ > Cursor0 | Crate0 ] -> [ > Cursor0 | > Crate0 ]\n+ [ > Cursor0 | Cursor0 ] -> [ > Cursor0 | > Cursor0 ]\n+ [ > Crate0 | Crate0 ] -> [ > Crate0 | > Crate0 ]\n\n+ [ > Player1 | Crate1 ] -> [ > Player1 | > Crate1 ]\n+ [ > Player1 | Player1] -> [ > Player1 | > Player1 ]\n+ [ > Crate1 | Player1 ] -> [ > Crate1 | > Player1 ]\n+ [> crate1|crate1] -> [> crate1 | > crate1]\n+ up[moving crate1 crateu1|crate1] -> [moving crate1 crateu1 | moving crate1]\n+ left[moving crate1 cratel1|crate1] -> [moving crate1 cratel1 | moving crate1]\n+ down[moving crate1 crated1|crate1] -> [moving crate1 crated1 | moving crate1]\n+ right[moving crate1 crater1|crate1] -> [moving crate1 crater1 | moving crate1]\n \n\n[> fell1|fell1] -> [> fell1 | > fell1]\n+ up[moving fell1 fellu1|fell1] -> [moving fell1 fellu1 | moving fell1]\n+ left[moving fell1 felll1|fell1] -> [moving fell1 felll1 | moving fell1]\n+ down[moving fell1 felld1|fell1] -> [moving fell1 felld1 | moving fell1]\n+ right[moving fell1 fellr1|fell1] -> [moving fell1 fellr1 | moving fell1]\n\n[moving crate1 cratex1] -> [moving crate1 moving cratex1]\n[moving fell1 fellx1] -> [moving fell1 moving fellx1]\n[moving crate1 crate0ghost] -> [moving crate1 moving crate0ghost]\n\n[active stationary player1] -> [stationary active stationary player1]\n[activecurse0 stationary curse0] -> [stationary activecurse0 stationary curse0]\n[activefell stationary ded1] -> [stationary activefell stationary ded1]\n[stationary cursor0 activecurse0 holding] -> [stationary cursor0 activecurse0 stationary holding]\n[stationary curse2 holding] -> [stationary curse2 stationary holding]\n\n\n(falling)\nlate [supported] -> []\n\nlate [crate1 ded1] -> [crate1 supported ded1]\nlate [crate1 no pit1] -> [crate1 supported]\nlate [crate1 fell1] -> [crate1 fell1 supported]\n\n\nlate up[crateu1|supported] -> [crateu1 supported | supported]\n+ late left[cratel1|supported] -> [cratel1 supported | supported]\n+ late down[crated1|supported] -> [crated1 supported | supported]\n+ late right[crater1|supported] -> [crater1 supported | supported]\n\n\nlate [cursor0 pit0 no fell0] -> [pit0 dead0a]SFX3\nlate [player1 active pit1 no fell1 no ded1] -> [pit1 ded1 activefell]SFX3\nlate [player1 pit1 no fell1 no ded1] -> [pit1 ded1 ]SFX3\nlate [crate0 pit0 no supported] -> [pit0 fell0]SFX3\nlate [crate1 pit1 no supported] -> [pit1 fell1] SFX3\n\n\n\nlate [crateu1 no crate1 fell1] -> [fellu1 fell1]\nlate [cratel1 no crate1 fell1] -> [felll1 fell1]\nlate [crater1 no crate1 fell1] -> [fellr1 fell1]\nlate [crated1 no crate1 fell1] -> [felld1 fell1]\n\nlate [crateu1 no crate1] -> []\nlate [cratel1 no crate1] -> []\nlate [crater1 no crate1] -> []\nlate [crated1 no crate1] -> []\nlate up [crateu1 |no crate1] -> [|]\nlate left [cratel1 |no crate1] -> [|]\nlate right [crater1 |no crate1] -> [|]\nlate down [crated1 |no crate1] -> [|]\nlate [player1 ded1] -> [player1 ded1] SFX0\nlate [player1 ded1] -> cancel \n\n[moving crate0] -> SFX2\n[moving crate1] -> SFX2\n\n==============\nWINCONDITIONS\n==============\n\n\nAll target0 on crate0\nAll Target1 on Crateorfell1\nAll PlayerTarget1 on Playerormark1\nno Cursor0 on target1\nno cursor0 on PlayerTarget1\n\n=======\nLEVELS\n=======\n\nmessage Book 1: BASE\n\nmessage Page 1.1: GOAL\n\n#######\n#`````#\n#`p`t`#\n#`````#\n#`o`q`#\n#`````#\n#######\n\nmessage Page 1.2: TOOL\n\n#######\n#`t`o`#\n#t`-:`#\n#``tlo#\n#p````#\n#######\n\nmessage Page 1.3: HOLE\n\n########\n##``0`##\n#```0``#\n#``o0`t#\n#po:0``#\n#``:0`t#\n#```0``#\n##``0`##\n########\n\nmessage Page 1.4: FALL\n\n########\n#00u``0#\n#00po`0#\n#`000`0#\n#`00```#\n#`000``#\n#`000``#\n########\n\nmessage Book 2: EDIT\n\nmessage Page 2.1: MINI\n\n||||||||||\n|```````'|\n|`######`|\n|`#````#`|\n|`#``t`#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 2.2: FORM\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 2.3: PLUG\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#ro`o`#`|\n|`#####`#`|\n|`###`o`#`|\n|`#``oLo#`|\n|`#````##`|\n|`#`q####`|\n|`#######`|\n|`````````|\n|``c`0````|\n|````8````|\n|`````````|\n|||||||||||\n\nmessage Page 2.4: TRAP\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#``````#`|\n|`#``t```#`|\n|`#`tqt``#`|\n|`#``t```#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````16````|\n|``````````|\n||||||||||||\n\nmessage Book 3: DUAL\n\nmessage Page 3.1: CO-OP\n\n#######\n####qq#\n#po000#\n#`o000#\n###o``#\n###r`'#\n#######\n\nmessage Page 3.2: REST\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#`r00q#`|\n|`#######`|\n|`````````|\n|``c`o````|\n|````2````|\n|`````````|\n|||||||||||\nmessage Page 3.3: SAIL\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#0000q#`|\n|`#00000#`|\n|`#00000#`|\n|`#```00#`|\n|`#```00#`|\n|`#######`|\n|`````````|\n|``c`ro```|\n|````23```|\n|`````````|\n|||||||||||\n\nmessage Page 3.4: TWIN\n\n|||||||||||||||||||||\n|`````````+````````'|\n|`#######`+`#######`|\n|`#`````#`+`#`````#`|\n|`#```q`#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`q```#`|\n|`#`````#`+`#`````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````6````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Book 4: WHAT\n\nmessage Page 4.1: GUIS\n\n\n#######\n#q#``'#\n#``8#`#\n#`#p#`#\n#`#o#`#\n#`#1``#\n#######\n\nmessage Page 4.2: IDEA\n\n||||||||||\n|```````'|\n|`######`|\n|`#```t#`|\n|`#```t#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```31```|\n|````````|\n||||||||||\n\nmessage Page 4.3: FILL\n\n\n######\n#0poq#\n#0`70#\n#'000#\n#0000#\n######\n\nmessage Page 4.4: A LOT\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|``````'|\n|`c3o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Book 5: UHHH\n\nmessage Page 5.1: WALL\n\n||||||||||\n|```````'|\n|`######`|\n|`#t`#`#`|\n|`#````#`|\n|`##`o`#`|\n|x+xxxx+x|\n|`#````#`|\n|`#````#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 5.2: SAFE\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#xxxxx#`|\n|`#x```x#`|\n|`#x`t`x#`|\n|`#x```x#`|\n|`#xxxxx#`|\n|`#######`|\n|`````````|\n|`c`o1r```|\n|```111```|\n|`````````|\n|||||||||||\n\nmessage Page 5.3: LOCK\n\n|||||||||||||\n|o```'`xxxcx|\n|1``x```qx!x|\n|`1!````qx`x|\n|``1?x`xxx?x|\n|r``1````!`x|\n|````2`xxxxx|\n|||||||||||||\n\n\n\nmessage Page 5.4: POST\n\n+++++++++\n+p#```#q+\n+`#``'#3+\n+`#`1`#`+\n+`#`2`#`+\n+`#```#`+\n+`#```#`+\n+++++++++\nmessage Book 6: BLUE\n\nmessage Page 6.1: META\n\n||||||||||||\n|++++++++++|\n|+````\"```+|\n|+`######`+|\n|+`#````#`+|\n|+`#``t`#`+|\n|+`#````#`+|\n|+`######`+|\n|+````````+|\n|+```ro```+|\n|+````````+|\n|+````````+|\n|++++++++++|\n|``````````|\n|``~`1b````|\n|````{[````|\n|``````````|\n||||||||||||\n\nmessage Page 6.2: WILD\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`#######`+|\n|+`#0000q#`+|\n|+`#00000#`+|\n|+`#`0000#`+|\n|+`#`0000#`+|\n|+`#```00#`+|\n|+`#######`+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\nmessage Page 6.3: UH OH\n\n|||||||||||\n|+++++++++|\n|+``````\"+|\n|+`+++++`+|\n|+`+```+`+|\n|+`+`t`+`+|\n|+`+```+`+|\n|+`+```+`+|\n|+`+++++`+|\n|+```````+|\n|+```o```+|\n|+```````+|\n|+```````+|\n|+++++++++|\n|`````````|\n|`````````|\n|`~`1br```|\n|```][[```|\n|`````````|\n|||||||||||\n\nmessage Page 6.4: VARY\n\n|||||||||||||||||||||||\n|++++++++++&++++++++++|\n|+``````\"`x&x````````+|\n|+`######`x&x`######`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`#`qt`#`x&x`#`tq`#`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`######`x&x`######`+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|++++++++++&++++++++++|\n|``````````&``````````|\n|`~`r1ob```&`_`r1ob```|\n|```[{[[```&```[[[[```|\n|``````````&``````````|\n|||||||||||||||||||||||\n\nmessage Book 7: ?!?!\n\nmessage Page 7.1: EACH\n\n+++++++\n+````'+\n+`###`+\n+`#q#`+\n+`#0#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`###`+\n+`````+\n+``c``+\n+`r0o`+\n+``4``+\n+`````+\n+++++++\n\nmessage Page 7.2: HOLD\n\n&&&&&&&&&\n&`8```+`&\n&`{po`+`&\n&`\"```+t&\n&&&&&&&&&\n\nmessage Page 7.3: TRIP\n\n&&&&&&&\n&```\"`&\n&`o`!`&\n&`````&\n&+++++&\n&`r2b`&\n&`[[{~&\n&y```t&\n&&&&&&&\n\nmessage Page 7.4: PLAN\n\n\n|||||||||\n|```t```|\n|```````|\n|+++++++|\n|```````|\n|```````|\n|>>>>>>>|\n|```````|\n|```````|\n|+++++++|\n|```~```|\n|[[`2\"11|\n|[[`[`[[|\n|&&`&&&&|\n|&&bor&&|\n|||||||||\n\n\n\n\n\nmessage Book 8: (RE)STAR(TS)\n\n\nmessage Page 8.1: (IN)FORM(ED)\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 8.2: (EN)TWIN(ED)\n\n|||||||||||||||||||||\n|`````````+`````````|\n|`#######`+`#######`|\n|`#````q#`+`#`````#`|\n|`#`````#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`````#`|\n|`#`````#`+`#q````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````5````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Page 8.3: (ZE)ALOT(RY)\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|```````|\n|`c2o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Page 8.4: (BE)WILD(ER)\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`+++++++`+|\n|+`+0000q+`+|\n|+`+00000+`+|\n|+`+00000+`+|\n|+`+`0000+`+|\n|+`+```00+`+|\n|+`+++++++`+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", [3, 3, 4, 0, 0, 0, 3, 4, 0, 4, 3, 0, 0, 4, 0, 4, 1, 1, 1, 2, 4, 2, 4, 2, 3, 0, 4, 3, 3, 2, 1, 1, 0, 1, 0, 1, 0, 3, 3, 2, 3, 3, 2, 2], "background black cant0 cant1 cant2 fellcant0 fellcant1:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background fellcant0 fellcant1:1,1,1,1,1,1,\n1,1,1,1,1,1,0,0,1,background cant1 fellcant0 fellcant1 wall1 walll1 wallu1:2,background cant1 fellcant0 fellcant1 wall1 walll1 wallr1:3,3,3,3,3,background cant1 fellcant0 fellcant1 wall1 walld1 walll1:4,1,1,1,1,0,\n0,1,background cant1 fellcant0 fellcant1 wall1 walld1 wallu1:5,1,1,1,1,1,5,1,1,1,1,0,0,1,5,1,1,1,background cant1 crate1 crated1 fellcant0 fellcant1 supported:6,\nbackground cant1 crate1 crateu1 fellcant0 fellcant1 supported:7,5,1,1,1,1,0,0,1,5,1,1,1,1,1,5,1,1,1,1,0,\n0,1,5,background crate1 fellcant0 fellcant1 supported:8,background fellcant0 fellcant1 playertarget1:9,1,active background fellcant0 fellcant1 player1:10,1,5,1,1,1,1,0,0,1,5,background crate1 crated1 fellcant0 fellcant1 supported:11,background crate1 crateu1 fellcant0 fellcant1 supported:12,1,1,\n1,5,1,1,1,1,0,0,1,background cant1 fellcant0 fellcant1 wall1 wallr1 wallu1:13,3,3,3,3,3,background cant1 fellcant0 fellcant1 wall1 walld1 wallr1:14,1,1,1,1,0,\n0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,background cant1 fellcant0 fellcant1 wall0ghost wall1 walll1 wallr1 wallu1:15,background cant1 fellcant0 fellcant1 wall0ghost wall1 walll1 wallr1:16,16,16,16,16,\n16,16,16,16,16,background cant1 fellcant0 fellcant1 wall0ghost wall1 walld1 walll1 wallr1:17,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,2,3,3,3,3,3,4,1,1,1,1,0,0,1,5,1,11,12,1,\n1,5,1,1,1,1,0,0,1,5,1,1,1,background cant1 crate1 crated1 fellcant0 fellcant1 playertarget1 supported:18,7,5,1,1,1,1,0,\n0,1,5,1,1,1,1,1,5,1,1,1,1,0,0,1,5,1,1,1,10,\n1,5,1,1,1,1,0,0,1,5,11,12,1,1,1,5,1,1,1,1,0,\n0,1,13,3,3,3,3,3,14,1,1,1,1,0,0,background fellcant0 fellcant1 partb:19,1,1,1,1,1,\n1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 26, "1627770125763.7583"] ], [ `gallery game: I'm too far gone`, - ["title I'm too far gone\n\n\nzoomscreen 11x11\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground\nwhite\n\nb1\nwhite #dddddd\n00000\n00010\n00000\n10000\n00000\n\nb2\nwhite #dddddd\n00000\n00000\n00100\n00000\n00000\n\nb3\nwhite #dddddd\n01000\n00000\n00000\n00100\n00000\n\nb4\nwhite #dddddd\n00000\n00000\n00000\n00000\n00001\n\nb5\nwhite #dddddd\n00000\n10000\n00000\n00100\n00000\n\nfloor\ndarkgrey\n\nEe\ndarkgrey yellow\n01110\n01000\n01110\n01000\n01110\n\nNn\ndarkgrey yellow\n00000\n01110\n01010\n01010\n00000\n\nDd\ndarkgrey yellow\n01100\n01010\n01010\n01010\n01100\n\nwall\ngrey\n\nredgen\nred lightgrey\n11011\n11011\n01010\n10001\n11011\n\nbluegen\nblue lightgrey\n11011\n10001\n01010\n11011\n11011\n\nred\nlightred red\n.111.\n10001\n10001\n10001\n.111.\n\nblue\nlightblue blue\n.111.\n10001\n10001\n10001\n.111.\n\nred1\nred darkred\n11111\n10001\n10001\n10001\n11111\n\nblue1\nblue darkblue\n11111\n10001\n10001\n10001\n11111\n\nru\nlightred red\n10001\n.....\n.....\n.....\n.....\n\nrd\nlightred red\n.....\n.....\n.....\n.....\n10001\n\nrr\nlightred red\n....1\n....0\n....0\n....0\n....1\n\nrl\nlightred red\n1....\n0....\n0....\n0....\n1....\n\nbu\nlightblue blue\n10001\n.....\n.....\n.....\n.....\n\nbd\nlightblue blue\n.....\n.....\n.....\n.....\n10001\n\nbr\nlightblue blue\n....1\n....0\n....0\n....0\n....1\n\nbl\nlightblue blue\n1....\n0....\n0....\n0....\n1....\n\nded\nbrown\n.....\n.000.\n.000.\n.000.\n.....\n\nru1\nred darkred\n10001\n.....\n.....\n.....\n.....\n\nrd1\nred darkred\n.....\n.....\n.....\n.....\n10001\n\nrr1\nred darkred\n....1\n....0\n....0\n....0\n....1\n\nrl1\nred darkred\n1....\n0....\n0....\n0....\n1....\n\nbu1\nblue darkblue\n10001\n.....\n.....\n.....\n.....\n\nbd1\nblue darkblue\n.....\n.....\n.....\n.....\n10001\n\nbr1\nblue darkblue\n....1\n....0\n....0\n....0\n....1\n\nbl1\nblue darkblue\n1....\n0....\n0....\n0....\n1....\n\n\nplayer\nyellow\n.....\n.000.\n.000.\n.000.\n.....\n\nsupp\ntransparent\n\nmovee\ntransparent\n\nmoven\ntransparent\n\nmoved\ntransparent\n\nmem\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall and floor\nr = redgen and wall\nb = bluegen and wall\n- = floor\np = player and floor\nE = Ee\nN = Nn \nD = Dd \ncol = red or blue\ncol1 = red1 or blue1\nxx = rr or rl or ru or rd or br or bl or bd or bu\nxx1 = rr1 or rl1 or ru1 or rd1 or br1 or bl1 or bd1 or bu1\nend = ee or nn or dd\n! = red and floor\n? = mem\nbx = b1 or b2 or b3 or b4 or b5\n=======\nSOUNDS\n=======\nSFX1 9924503\nSFX2 79825304\nSFX3 17145902\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbx\nfloor, red1, blue1, ded\nrr1\nrl1\nru1\nrd1\nbr1\nbl1\nbd1\nbu1\nPlayer, Wall, red, blue, \nrr\nrl\nru\nrd\nbr\nbl\nbd\nbu\nredgen, bluegen, Ee, Nn, Dd\nsupp\nmovee\nmoven\nmoved\nmem\n======\nRULES\n======\n[background no bx] -> [background random bx]\nlate down [redgen|no player no red no blue] -> [redgen|red movee moven moved] SFX1\nlate up [bluegen|no player no red no blue] -> [bluegen|blue movee moven moved] SFX1\n\nlate right[movee][ee|] -> [][|ee]\nlate right[moven][nn|] -> [][|nn]\nlate right[moved][dd|] -> [][|dd]\n\n[> player | red] -> [> player| > red]\n[> player | blue] -> [> player| > blue]\n\n[moving red | red] -> [moving red | moving red]\n+[moving blue | blue] -> [moving blue | moving blue]\n+[moving red1 | red1] -> [moving red1 | moving red1]\n+[moving blue1 | blue1] -> [moving blue1 | moving blue1]\n+[moving red red1] -> [moving red moving red1]\n+[moving blue blue1] -> [moving blue moving blue1]\n+[ red moving red1] -> [moving red moving red1]\n+[ blue moving blue1] -> [moving blue moving blue1]\n+[> red | blue] -> [> red | > blue]\n+[> blue | red] -> [> blue | > red]\n+[> red1 | blue1] -> [> red1 | > blue1]\n+[> blue1 | red1] -> [> blue1 | > red1]\n\n[player moving col1] -> cancel\n[> col | wall] -> cancel\n[> col1 | floor] -> cancel\n\nlate [supp] -> []\nlate [col floor] -> [col supp floor]\nlate [col col1] -> [col supp col1]\nlate [red supp | red] -> [red supp | red supp]\nlate [blue supp | blue] -> [blue supp | blue supp]\n\nlate [red no supp] -> [red1] SFX2\nlate [blue no supp] -> [blue1] SFX2\nlate [player no col1 no floor] -> [ded] SFX3\n\nlate [xx] -> []\nlate [xx1] -> []\n\nlate up [red | red] -> [red ru | red rd]\nlate left [red | red] -> [red rl | red rr]\nlate up [blue | blue] -> [blue bu | blue bd]\nlate left [blue | blue] -> [blue bl | blue br]\nlate up [red1 | red1] -> [red1 ru1 | red1 rd1]\nlate left [red1 | red1] -> [red1 rl1 | red1 rr1]\nlate up [blue1 | blue1] -> [blue1 bu1 | blue1 bd1]\nlate left [blue1 | blue1] -> [blue1 bl1 | blue1 br1]\n\nlate [nn mem][player] -> [nn mem][ded] message YOU'VE GONE TOO FAR (THIS IS NOT A WIN)\n==============\nWINCONDITIONS\n==============\n\nall player on end\nno ded\n=======\nLEVELS\n=======\n\n\nmessage Level 25 of 25\n\n##########################################################################################################################################################################\n#.........................................................................................................................................................................\n#.-------.................................................................................................................................................................\n#.---r---.................................................................................................................................................................\n#.---!---E................................................................................................................................................................\n#.-----p-N...............................................................................................................................................................?\n#.-------D................................................................................................................................................................\n#.---b---.................................................................................................................................................................\n#.-------.................................................................................................................................................................\n#.........................................................................................................................................................................\n##########################################################################################################################################################################\n\n\n\n",[1,1,1,2,3,1,3,1,3,1,3,1,3,3,3,3,1,1,0,1,1,0,3,3,2,1,1,0,3,1,3,3,0,3,2,1,2,3,3,1,1,1,1,0,3,3,3,0,3,2,1,2,3,1,1,1,1,0,3,3,3,0,3,2,1,2,3,1,1,1,1,0,3,3,3,0,3,"undo","undo","undo",0,3,2,2,1,2,3,3,3,3,3,3,3],"b5 background floor wall:0,b3 background floor wall:1,b1 background floor wall:2,2,1,b2 background floor wall:3,3,1,b4 background floor wall:4,4,4,0,b4 background:5,b1 background:6,6,6,b5 background:7,b2 background:8,6,6,7,3,1,8,b4 background floor:9,b2 background floor:10,b5 background floor:11,9,10,10,b1 background floor:12,8,4,0,b3 background:13,9,11,12,11,11,10,9,13,0,3,8,11,10,12,10,10,10,10,5,3,1,13,b3 background floor:14,b3 background redgen wall:15,b1 background floor red supp:16,14,b1 background blue floor supp:17,b1 background bluegen wall:18,11,5,2,3,5,9,9,9,10,11,12,10,8,1,0,6,12,12,10,10,9,12,11,6,1,2,13,9,11,10,12,11,10,12,7,3,4,7,6,7,5,7,b3 background blue1 br1:19,5,7,6,0,0,7,7,8,13,5,b2 background bl1 blue1 br1:20,13,13,6,4,3,5,7,8,8,7,20,5,8,8,0,0,7,8,7,13,7,b3 background bl1 blue1 br1:21,6,6,6,0,2,6,7,6,6,13,b1 background bl1 blue1 player:22,13,6,7,1,2,8,7,13,13,b1 background rd red rr supp:23,b4 background red ru supp:24,7,7,6,3,1,8,13,13,7,\nb5 background red red1 rl rr1 supp:25,8,13,6,8,4,3,5,6,13,7,b5 background red1 rl1 rr1:26,5,13,8,7,1,2,5,7,6,6,b3 background red1 rl1:27,5,6,6,7,4,4,13,7,8,8,6,7,6,7,5,0,1,8,7,6,5,6,7,6,13,7,3,3,13,8,6,13,8,5,5,8,7,4,4,7,13,13,b2 background ee:28,b5 background nn:29,b5 background dd:30,7,13,13,1,4,5,5,8,13,5,13,13,8,6,1,4,13,5,5,8,6,7,7,8,7,3,3,8,7,8,5,8,13,7,8,5,1,4,6,6,8,8,5,13,13,13,8,0,0,8,5,7,7,13,13,7,8,5,2,2,13,7,6,7,8,13,13,13,13,3,3,5,13,13,6,6,6,6,8,7,4,1,5,8,13,5,5,8,13,6,13,1,4,13,7,8,8,6,7,8,6,6,\n3,1,5,5,13,6,7,8,7,5,13,1,1,7,5,8,13,6,5,7,6,7,0,0,7,7,6,5,13,7,5,8,6,2,0,8,6,5,6,6,5,13,13,7,1,2,7,5,6,6,6,6,5,8,8,0,1,6,5,5,13,7,5,7,13,5,2,4,5,8,5,5,6,7,6,6,8,2,0,5,6,7,5,8,7,7,7,5,3,0,5,7,8,6,5,6,8,5,6,4,1,8,13,8,5,5,5,8,6,5,1,4,5,13,7,8,5,13,13,13,5,3,3,7,5,5,13,8,7,6,5,13,2,3,8,6,13,7,13,8,6,7,8,0,3,5,5,5,8,7,7,5,6,13,3,1,6,5,8,13,7,7,8,8,6,0,4,8,13,7,\n5,13,5,6,13,13,4,3,7,5,5,6,5,6,6,8,5,0,2,7,8,7,7,7,5,13,8,13,3,1,6,5,6,7,8,6,6,6,7,2,4,5,5,6,7,13,13,7,5,5,2,4,6,7,13,13,7,5,8,13,5,3,1,8,6,7,5,5,13,13,6,8,0,1,7,6,7,7,6,8,8,6,5,0,4,5,7,6,13,6,13,13,8,5,2,0,13,13,6,8,6,7,7,6,6,0,4,7,13,8,8,7,8,5,5,13,3,3,5,13,7,5,6,8,13,6,5,0,1,6,6,6,6,7,5,8,8,5,0,1,7,13,7,6,5,7,8,5,8,0,3,6,13,5,8,5,8,5,7,7,3,4,5,6,5,7,13,8,13,5,\n5,4,3,8,5,6,5,13,8,6,6,6,1,2,7,7,8,13,5,6,5,5,7,2,2,13,8,6,8,6,8,13,6,7,0,4,7,7,5,7,8,7,6,8,8,3,4,8,5,13,6,6,13,13,6,6,4,3,6,7,13,5,8,6,7,8,13,0,4,5,13,7,13,6,5,7,13,7,0,4,8,7,8,6,5,13,7,8,13,4,0,5,6,8,7,5,5,13,5,13,2,1,13,13,7,8,8,8,5,8,8,4,1,6,13,8,7,7,7,7,13,13,4,4,7,6,8,8,6,8,6,5,7,4,4,8,13,6,5,8,7,6,7,6,1,2,5,5,5,8,6,6,7,7,6,0,0,8,13,8,6,13,5,5,6,8,2,1,13,5,\n7,6,8,5,13,5,13,0,2,13,5,5,5,7,13,6,5,13,2,4,13,13,7,5,8,7,13,8,6,1,3,8,7,7,8,6,7,13,5,6,1,2,7,8,13,13,6,8,7,5,13,4,2,5,5,6,5,7,6,13,6,5,1,4,8,6,7,13,8,7,8,7,8,4,4,8,13,5,5,5,5,7,13,7,2,0,8,8,5,5,13,8,7,6,13,2,4,7,8,8,8,13,5,13,6,5,1,4,7,5,13,13,8,8,6,5,7,0,1,13,7,8,6,7,5,7,8,6,2,1,8,13,8,7,13,8,7,5,8,1,0,6,13,8,8,13,6,8,13,6,4,0,8,6,5,8,6,8,7,8,8,2,0,7,8,8,6,8,6,7,\n5,6,4,4,5,5,13,5,8,8,5,13,13,3,2,8,7,6,5,7,5,13,6,8,3,4,7,6,7,13,13,13,8,6,13,0,0,7,5,6,13,13,6,6,5,5,0,2,13,7,7,6,5,7,6,8,5,4,4,8,5,7,8,6,5,6,8,7,0,2,8,7,5,8,6,13,5,7,13,0,4,8,8,13,7,5,13,13,5,7,0,3,8,7,7,8,13,8,7,6,6,1,3,6,5,5,5,13,13,13,8,7,1,1,6,7,7,5,6,6,5,6,5,4,0,8,6,6,7,5,8,7,7,6,2,1,13,5,13,8,5,8,6,7,13,3,0,8,5,6,6,13,13,5,8,8,1,3,8,5,7,7,6,7,7,5,8,2,4,6,\n8,7,5,7,7,8,13,5,2,1,13,6,7,7,8,8,8,13,8,1,3,5,13,13,5,6,8,6,7,13,4,0,6,13,6,13,13,13,13,6,5,0,2,13,7,5,5,8,8,6,8,5,4,3,5,6,5,6,13,5,13,6,6,2,2,7,5,13,7,13,5,6,13,8,3,0,13,7,8,13,6,13,7,8,6,4,2,7,8,8,6,13,5,8,7,5,0,2,5,7,13,7,6,8,6,5,6,4,0,6,7,5,6,6,8,8,7,5,2,0,6,6,8,13,5,13,6,6,7,4,0,13,5,7,13,8,13,6,8,13,2,0,7,13,6,5,5,7,6,5,6,2,4,7,13,5,6,5,7,7,6,7,0,0,8,5,6,13,13,6,\n5,13,13,1,1,7,7,13,6,5,8,13,6,8,0,1,6,13,8,13,7,7,8,6,5,3,4,6,8,13,13,5,5,13,13,7,3,3,6,13,6,7,13,8,5,6,5,0,2,8,13,8,5,5,7,13,5,6,2,0,7,7,13,8,6,6,13,13,6,3,4,8,8,5,13,5,13,5,8,5,1,0,5,7,8,8,5,8,7,7,6,2,3,6,6,8,13,13,6,7,5,6,3,1,13,8,8,5,13,8,7,8,7,3,1,8,7,13,13,6,8,8,7,7,2,0,7,13,7,8,7,5,8,8,7,0,0,5,6,13,5,6,5,7,5,13,4,4,5,6,6,7,13,7,7,13,6,2,4,6,8,6,5,13,8,7,8,13,0,0,\n7,6,6,7,8,5,13,7,5,4,4,7,13,7,7,6,13,5,6,8,1,1,7,7,13,6,13,7,5,7,6,0,3,13,7,5,13,5,13,5,7,7,3,1,8,6,8,5,6,5,13,7,5,0,0,8,13,7,6,5,8,6,13,6,4,1,13,13,5,13,5,5,5,6,8,1,2,7,5,13,13,6,13,6,8,6,4,1,13,8,8,13,13,5,8,8,8,0,2,7,6,8,7,8,6,5,6,7,3,1,8,5,7,6,6,6,5,6,5,4,0,8,13,5,5,13,8,6,7,7,2,2,5,5,8,8,8,6,5,6,8,3,4,7,7,7,7,5,6,7,8,8,4,3,8,5,5,13,7,8,7,5,7,2,1,8,13,13,5,6,\n5,13,7,5,2,3,5,8,13,6,8,7,13,13,13,3,3,6,6,13,5,8,6,8,5,6,2,1,7,8,8,5,13,6,7,5,7,2,3,8,7,6,5,6,5,7,6,7,3,0,7,8,13,8,13,5,6,7,8,1,4,6,5,8,6,13,8,7,7,5,4,1,6,13,7,5,7,7,7,7,6,3,1,5,13,5,6,8,6,13,6,13,1,4,6,8,7,6,5,8,7,5,6,3,4,8,8,7,7,8,7,7,8,6,3,1,13,6,13,13,13,7,13,5,6,0,1,5,7,7,5,13,7,13,7,6,4,1,7,8,6,13,13,5,7,13,6,2,0,13,5,7,7,13,8,8,5,6,0,4,7,6,5,6,b2 background mem:31,5,5,5,7,1,\n",1,"1627770159927.0508"] + ["title I'm too far gone\n\n\nzoomscreen 11x11\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground\nwhite\n\nb1\nwhite #dddddd\n00000\n00010\n00000\n10000\n00000\n\nb2\nwhite #dddddd\n00000\n00000\n00100\n00000\n00000\n\nb3\nwhite #dddddd\n01000\n00000\n00000\n00100\n00000\n\nb4\nwhite #dddddd\n00000\n00000\n00000\n00000\n00001\n\nb5\nwhite #dddddd\n00000\n10000\n00000\n00100\n00000\n\nfloor\ndarkgrey\n\nEe\ndarkgrey yellow\n01110\n01000\n01110\n01000\n01110\n\nNn\ndarkgrey yellow\n00000\n01110\n01010\n01010\n00000\n\nDd\ndarkgrey yellow\n01100\n01010\n01010\n01010\n01100\n\nwall\ngrey\n\nredgen\nred lightgrey\n11011\n11011\n01010\n10001\n11011\n\nbluegen\nblue lightgrey\n11011\n10001\n01010\n11011\n11011\n\nred\nlightred red\n.111.\n10001\n10001\n10001\n.111.\n\nblue\nlightblue blue\n.111.\n10001\n10001\n10001\n.111.\n\nred1\nred darkred\n11111\n10001\n10001\n10001\n11111\n\nblue1\nblue darkblue\n11111\n10001\n10001\n10001\n11111\n\nru\nlightred red\n10001\n.....\n.....\n.....\n.....\n\nrd\nlightred red\n.....\n.....\n.....\n.....\n10001\n\nrr\nlightred red\n....1\n....0\n....0\n....0\n....1\n\nrl\nlightred red\n1....\n0....\n0....\n0....\n1....\n\nbu\nlightblue blue\n10001\n.....\n.....\n.....\n.....\n\nbd\nlightblue blue\n.....\n.....\n.....\n.....\n10001\n\nbr\nlightblue blue\n....1\n....0\n....0\n....0\n....1\n\nbl\nlightblue blue\n1....\n0....\n0....\n0....\n1....\n\nded\nbrown\n.....\n.000.\n.000.\n.000.\n.....\n\nru1\nred darkred\n10001\n.....\n.....\n.....\n.....\n\nrd1\nred darkred\n.....\n.....\n.....\n.....\n10001\n\nrr1\nred darkred\n....1\n....0\n....0\n....0\n....1\n\nrl1\nred darkred\n1....\n0....\n0....\n0....\n1....\n\nbu1\nblue darkblue\n10001\n.....\n.....\n.....\n.....\n\nbd1\nblue darkblue\n.....\n.....\n.....\n.....\n10001\n\nbr1\nblue darkblue\n....1\n....0\n....0\n....0\n....1\n\nbl1\nblue darkblue\n1....\n0....\n0....\n0....\n1....\n\n\nplayer\nyellow\n.....\n.000.\n.000.\n.000.\n.....\n\nsupp\ntransparent\n\nmovee\ntransparent\n\nmoven\ntransparent\n\nmoved\ntransparent\n\nmem\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall and floor\nr = redgen and wall\nb = bluegen and wall\n- = floor\np = player and floor\nE = Ee\nN = Nn \nD = Dd \ncol = red or blue\ncol1 = red1 or blue1\nxx = rr or rl or ru or rd or br or bl or bd or bu\nxx1 = rr1 or rl1 or ru1 or rd1 or br1 or bl1 or bd1 or bu1\nend = ee or nn or dd\n! = red and floor\n? = mem\nbx = b1 or b2 or b3 or b4 or b5\n=======\nSOUNDS\n=======\nSFX1 9924503\nSFX2 79825304\nSFX3 17145902\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbx\nfloor, red1, blue1, ded\nrr1\nrl1\nru1\nrd1\nbr1\nbl1\nbd1\nbu1\nPlayer, Wall, red, blue, \nrr\nrl\nru\nrd\nbr\nbl\nbd\nbu\nredgen, bluegen, Ee, Nn, Dd\nsupp\nmovee\nmoven\nmoved\nmem\n======\nRULES\n======\n[background no bx] -> [background random bx]\nlate down [redgen|no player no red no blue] -> [redgen|red movee moven moved] SFX1\nlate up [bluegen|no player no red no blue] -> [bluegen|blue movee moven moved] SFX1\n\nlate right[movee][ee|] -> [][|ee]\nlate right[moven][nn|] -> [][|nn]\nlate right[moved][dd|] -> [][|dd]\n\n[> player | red] -> [> player| > red]\n[> player | blue] -> [> player| > blue]\n\n[moving red | red] -> [moving red | moving red]\n+[moving blue | blue] -> [moving blue | moving blue]\n+[moving red1 | red1] -> [moving red1 | moving red1]\n+[moving blue1 | blue1] -> [moving blue1 | moving blue1]\n+[moving red red1] -> [moving red moving red1]\n+[moving blue blue1] -> [moving blue moving blue1]\n+[ red moving red1] -> [moving red moving red1]\n+[ blue moving blue1] -> [moving blue moving blue1]\n+[> red | blue] -> [> red | > blue]\n+[> blue | red] -> [> blue | > red]\n+[> red1 | blue1] -> [> red1 | > blue1]\n+[> blue1 | red1] -> [> blue1 | > red1]\n\n[player moving col1] -> cancel\n[> col | wall] -> cancel\n[> col1 | floor] -> cancel\n\nlate [supp] -> []\nlate [col floor] -> [col supp floor]\nlate [col col1] -> [col supp col1]\nlate [red supp | red] -> [red supp | red supp]\nlate [blue supp | blue] -> [blue supp | blue supp]\n\nlate [red no supp] -> [red1] SFX2\nlate [blue no supp] -> [blue1] SFX2\nlate [player no col1 no floor] -> [ded] SFX3\n\nlate [xx] -> []\nlate [xx1] -> []\n\nlate up [red | red] -> [red ru | red rd]\nlate left [red | red] -> [red rl | red rr]\nlate up [blue | blue] -> [blue bu | blue bd]\nlate left [blue | blue] -> [blue bl | blue br]\nlate up [red1 | red1] -> [red1 ru1 | red1 rd1]\nlate left [red1 | red1] -> [red1 rl1 | red1 rr1]\nlate up [blue1 | blue1] -> [blue1 bu1 | blue1 bd1]\nlate left [blue1 | blue1] -> [blue1 bl1 | blue1 br1]\n\nlate [nn mem][player] -> [nn mem][ded] message YOU'VE GONE TOO FAR (THIS IS NOT A WIN)\n==============\nWINCONDITIONS\n==============\n\nall player on end\nno ded\n=======\nLEVELS\n=======\n\n\nmessage Level 25 of 25\n\n##########################################################################################################################################################################\n#.........................................................................................................................................................................\n#.-------.................................................................................................................................................................\n#.---r---.................................................................................................................................................................\n#.---!---E................................................................................................................................................................\n#.-----p-N...............................................................................................................................................................?\n#.-------D................................................................................................................................................................\n#.---b---.................................................................................................................................................................\n#.-------.................................................................................................................................................................\n#.........................................................................................................................................................................\n##########################################################################################################################################################################\n\n\n\n", [1, 1, 1, 2, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 3, 1, 1, 0, 1, 1, 0, 3, 3, 2, 1, 1, 0, 3, 1, 3, 3, 0, 3, 2, 1, 2, 3, 3, 1, 1, 1, 1, 0, 3, 3, 3, 0, 3, 2, 1, 2, 3, 1, 1, 1, 1, 0, 3, 3, 3, 0, 3, 2, 1, 2, 3, 1, 1, 1, 1, 0, 3, 3, 3, 0, 3, "undo", "undo", "undo", 0, 3, 2, 2, 1, 2, 3, 3, 3, 3, 3, 3, 3], "b5 background floor wall:0,b3 background floor wall:1,b1 background floor wall:2,2,1,b2 background floor wall:3,3,1,b4 background floor wall:4,4,4,0,b4 background:5,b1 background:6,6,6,b5 background:7,b2 background:8,6,6,7,3,1,8,b4 background floor:9,b2 background floor:10,b5 background floor:11,9,10,10,b1 background floor:12,8,4,0,b3 background:13,9,11,12,11,11,10,9,13,0,3,8,11,10,12,10,10,10,10,5,3,1,13,b3 background floor:14,b3 background redgen wall:15,b1 background floor red supp:16,14,b1 background blue floor supp:17,b1 background bluegen wall:18,11,5,2,3,5,9,9,9,10,11,12,10,8,1,0,6,12,12,10,10,9,12,11,6,1,2,13,9,11,10,12,11,10,12,7,3,4,7,6,7,5,7,b3 background blue1 br1:19,5,7,6,0,0,7,7,8,13,5,b2 background bl1 blue1 br1:20,13,13,6,4,3,5,7,8,8,7,20,5,8,8,0,0,7,8,7,13,7,b3 background bl1 blue1 br1:21,6,6,6,0,2,6,7,6,6,13,b1 background bl1 blue1 player:22,13,6,7,1,2,8,7,13,13,b1 background rd red rr supp:23,b4 background red ru supp:24,7,7,6,3,1,8,13,13,7,\nb5 background red red1 rl rr1 supp:25,8,13,6,8,4,3,5,6,13,7,b5 background red1 rl1 rr1:26,5,13,8,7,1,2,5,7,6,6,b3 background red1 rl1:27,5,6,6,7,4,4,13,7,8,8,6,7,6,7,5,0,1,8,7,6,5,6,7,6,13,7,3,3,13,8,6,13,8,5,5,8,7,4,4,7,13,13,b2 background ee:28,b5 background nn:29,b5 background dd:30,7,13,13,1,4,5,5,8,13,5,13,13,8,6,1,4,13,5,5,8,6,7,7,8,7,3,3,8,7,8,5,8,13,7,8,5,1,4,6,6,8,8,5,13,13,13,8,0,0,8,5,7,7,13,13,7,8,5,2,2,13,7,6,7,8,13,13,13,13,3,3,5,13,13,6,6,6,6,8,7,4,1,5,8,13,5,5,8,13,6,13,1,4,13,7,8,8,6,7,8,6,6,\n3,1,5,5,13,6,7,8,7,5,13,1,1,7,5,8,13,6,5,7,6,7,0,0,7,7,6,5,13,7,5,8,6,2,0,8,6,5,6,6,5,13,13,7,1,2,7,5,6,6,6,6,5,8,8,0,1,6,5,5,13,7,5,7,13,5,2,4,5,8,5,5,6,7,6,6,8,2,0,5,6,7,5,8,7,7,7,5,3,0,5,7,8,6,5,6,8,5,6,4,1,8,13,8,5,5,5,8,6,5,1,4,5,13,7,8,5,13,13,13,5,3,3,7,5,5,13,8,7,6,5,13,2,3,8,6,13,7,13,8,6,7,8,0,3,5,5,5,8,7,7,5,6,13,3,1,6,5,8,13,7,7,8,8,6,0,4,8,13,7,\n5,13,5,6,13,13,4,3,7,5,5,6,5,6,6,8,5,0,2,7,8,7,7,7,5,13,8,13,3,1,6,5,6,7,8,6,6,6,7,2,4,5,5,6,7,13,13,7,5,5,2,4,6,7,13,13,7,5,8,13,5,3,1,8,6,7,5,5,13,13,6,8,0,1,7,6,7,7,6,8,8,6,5,0,4,5,7,6,13,6,13,13,8,5,2,0,13,13,6,8,6,7,7,6,6,0,4,7,13,8,8,7,8,5,5,13,3,3,5,13,7,5,6,8,13,6,5,0,1,6,6,6,6,7,5,8,8,5,0,1,7,13,7,6,5,7,8,5,8,0,3,6,13,5,8,5,8,5,7,7,3,4,5,6,5,7,13,8,13,5,\n5,4,3,8,5,6,5,13,8,6,6,6,1,2,7,7,8,13,5,6,5,5,7,2,2,13,8,6,8,6,8,13,6,7,0,4,7,7,5,7,8,7,6,8,8,3,4,8,5,13,6,6,13,13,6,6,4,3,6,7,13,5,8,6,7,8,13,0,4,5,13,7,13,6,5,7,13,7,0,4,8,7,8,6,5,13,7,8,13,4,0,5,6,8,7,5,5,13,5,13,2,1,13,13,7,8,8,8,5,8,8,4,1,6,13,8,7,7,7,7,13,13,4,4,7,6,8,8,6,8,6,5,7,4,4,8,13,6,5,8,7,6,7,6,1,2,5,5,5,8,6,6,7,7,6,0,0,8,13,8,6,13,5,5,6,8,2,1,13,5,\n7,6,8,5,13,5,13,0,2,13,5,5,5,7,13,6,5,13,2,4,13,13,7,5,8,7,13,8,6,1,3,8,7,7,8,6,7,13,5,6,1,2,7,8,13,13,6,8,7,5,13,4,2,5,5,6,5,7,6,13,6,5,1,4,8,6,7,13,8,7,8,7,8,4,4,8,13,5,5,5,5,7,13,7,2,0,8,8,5,5,13,8,7,6,13,2,4,7,8,8,8,13,5,13,6,5,1,4,7,5,13,13,8,8,6,5,7,0,1,13,7,8,6,7,5,7,8,6,2,1,8,13,8,7,13,8,7,5,8,1,0,6,13,8,8,13,6,8,13,6,4,0,8,6,5,8,6,8,7,8,8,2,0,7,8,8,6,8,6,7,\n5,6,4,4,5,5,13,5,8,8,5,13,13,3,2,8,7,6,5,7,5,13,6,8,3,4,7,6,7,13,13,13,8,6,13,0,0,7,5,6,13,13,6,6,5,5,0,2,13,7,7,6,5,7,6,8,5,4,4,8,5,7,8,6,5,6,8,7,0,2,8,7,5,8,6,13,5,7,13,0,4,8,8,13,7,5,13,13,5,7,0,3,8,7,7,8,13,8,7,6,6,1,3,6,5,5,5,13,13,13,8,7,1,1,6,7,7,5,6,6,5,6,5,4,0,8,6,6,7,5,8,7,7,6,2,1,13,5,13,8,5,8,6,7,13,3,0,8,5,6,6,13,13,5,8,8,1,3,8,5,7,7,6,7,7,5,8,2,4,6,\n8,7,5,7,7,8,13,5,2,1,13,6,7,7,8,8,8,13,8,1,3,5,13,13,5,6,8,6,7,13,4,0,6,13,6,13,13,13,13,6,5,0,2,13,7,5,5,8,8,6,8,5,4,3,5,6,5,6,13,5,13,6,6,2,2,7,5,13,7,13,5,6,13,8,3,0,13,7,8,13,6,13,7,8,6,4,2,7,8,8,6,13,5,8,7,5,0,2,5,7,13,7,6,8,6,5,6,4,0,6,7,5,6,6,8,8,7,5,2,0,6,6,8,13,5,13,6,6,7,4,0,13,5,7,13,8,13,6,8,13,2,0,7,13,6,5,5,7,6,5,6,2,4,7,13,5,6,5,7,7,6,7,0,0,8,5,6,13,13,6,\n5,13,13,1,1,7,7,13,6,5,8,13,6,8,0,1,6,13,8,13,7,7,8,6,5,3,4,6,8,13,13,5,5,13,13,7,3,3,6,13,6,7,13,8,5,6,5,0,2,8,13,8,5,5,7,13,5,6,2,0,7,7,13,8,6,6,13,13,6,3,4,8,8,5,13,5,13,5,8,5,1,0,5,7,8,8,5,8,7,7,6,2,3,6,6,8,13,13,6,7,5,6,3,1,13,8,8,5,13,8,7,8,7,3,1,8,7,13,13,6,8,8,7,7,2,0,7,13,7,8,7,5,8,8,7,0,0,5,6,13,5,6,5,7,5,13,4,4,5,6,6,7,13,7,7,13,6,2,4,6,8,6,5,13,8,7,8,13,0,0,\n7,6,6,7,8,5,13,7,5,4,4,7,13,7,7,6,13,5,6,8,1,1,7,7,13,6,13,7,5,7,6,0,3,13,7,5,13,5,13,5,7,7,3,1,8,6,8,5,6,5,13,7,5,0,0,8,13,7,6,5,8,6,13,6,4,1,13,13,5,13,5,5,5,6,8,1,2,7,5,13,13,6,13,6,8,6,4,1,13,8,8,13,13,5,8,8,8,0,2,7,6,8,7,8,6,5,6,7,3,1,8,5,7,6,6,6,5,6,5,4,0,8,13,5,5,13,8,6,7,7,2,2,5,5,8,8,8,6,5,6,8,3,4,7,7,7,7,5,6,7,8,8,4,3,8,5,5,13,7,8,7,5,7,2,1,8,13,13,5,6,\n5,13,7,5,2,3,5,8,13,6,8,7,13,13,13,3,3,6,6,13,5,8,6,8,5,6,2,1,7,8,8,5,13,6,7,5,7,2,3,8,7,6,5,6,5,7,6,7,3,0,7,8,13,8,13,5,6,7,8,1,4,6,5,8,6,13,8,7,7,5,4,1,6,13,7,5,7,7,7,7,6,3,1,5,13,5,6,8,6,13,6,13,1,4,6,8,7,6,5,8,7,5,6,3,4,8,8,7,7,8,7,7,8,6,3,1,13,6,13,13,13,7,13,5,6,0,1,5,7,7,5,13,7,13,7,6,4,1,7,8,6,13,13,5,7,13,6,2,0,13,5,7,7,13,8,8,5,6,0,4,7,6,5,6,b2 background mem:31,5,5,5,7,1,\n", 1, "1627770159927.0508"] ], [ `gallery game: maera public works`, - ["(version 1.0)\ntitle Maera Public Works\nauthor CHz\nhomepage quiteajolt.com\n\nbackground_color DarkBlue\nrun_rules_on_level_start\nagain_interval 0.25\n\n\n========\nOBJECTS\n========\n\nBackground \nBlack\n\nSurface\n#DDDDDD\n\nWall \n#222222\n\nRomanNumeral1\n#FF0000\n.....\n..0..\n..0..\n..0..\n.....\n\nRomanNumeral2\n#FF0000\n.....\n.0.0.\n.0.0.\n.0.0.\n.....\n\nRomanNumeral3\n#FF0000\n.....\n0.0.0\n0.0.0\n0.0.0\n.....\n\nRomanNumeral4\n#FF0000\n.....\n0.0.0\n0.0.0\n0..0.\n.....\n\nRomanNumeral5\n#FF0000\n.....\n.0.0.\n.0.0.\n..0..\n.....\n\n\nWaterWheelHorizWet\n#555500 #777700 #0080FF\n22022\n00000\n01010\n00000\n22022\n\nWaterWheelHorizDry\n#555500 #777700 #999999\n22022\n00000\n01010\n00000\n22022\n\nWaterWheelVertWet\n#555500 #777700 #0080FF\n20002\n20102\n00000\n20102\n20002\n\nWaterWheelVertDry\n#555500 #777700 #999999\n20002\n20102\n00000\n20102\n20002\n\nWaterSource\nTransparent\n\n\nDitch\n#999999\n\nWater\n#0080FF\n\nSwitchOn\n#222222 #999999\n...1.\n...1.\n..1..\n.000.\n.....\n\nSwitchOff\n#222222 #999999\n.1...\n.1...\n..1..\n.000.\n.....\n\nSwitchToggleToken\nTransparent\n\n\nGateVertOpen\n#444444\n.000.\n.....\n.....\n.....\n.000.\n\nGateVertOpenWet\n#444444 #0080FF\n10001\n11111\n11111\n11111\n10001\n\nGateVertClosed\n#444444\n.000.\n.000.\n.000.\n.000.\n.000.\n\nGateVertClosedLeft\n#444444 #0080FF\n1000.\n1000.\n1000.\n1000.\n1000.\n\nGateVertClosedRight\n#444444 #0080FF\n.0001\n.0001\n.0001\n.0001\n.0001\n\nGateHorizOpen\n#444444\n.....\n0...0\n0...0\n0...0\n.....\n\nGateHorizOpenWet\n#444444 #0080FF\n11111\n01110\n01110\n01110\n11111\n\nGateHorizClosed\n#444444\n.....\n00000\n00000\n00000\n.....\n\nGateHorizClosedUp\n#444444 #0080FF\n11111\n00000\n00000\n00000\n.....\n\nGateHorizClosedDown\n#444444 #0080FF\n.....\n00000\n00000\n00000\n11111\n\n\nCrateDitch\n#F0B030 #D06000\n.....\n.111.\n.101.\n.111.\n.....\n\nCrateSurface\n#F0E060 #F08000 #0080FF\n21112\n10001\n10001\n10001\n21112\n\nBlock\n#555555 #222222\n11111\n10001\n10001\n10001\n11111\n\nBlockSurface\n#555555 #222222\n11111\n10001\n10001\n10001\n11111\n\n\nLadderUpTop\nBrown\n.....\n.....\n.....\n.....\n.000.\n\nLadderUp\nBrown\n..0..\n..0..\n..0..\n..0..\n.....\n\nLadderDown\nBrown\n.....\n..0..\n..0..\n..0..\n..0..\n\nLadderDownTop\nBrown\n.000.\n.....\n.....\n.....\n.....\n\nLadderLeft\nBrown\n.....\n.....\n0000.\n.....\n.....\n\nLadderLeftTop\nBrown\n.....\n....0\n....0\n....0\n.....\n\nLadderRight\nBrown\n.....\n.....\n.0000\n.....\n.....\n\nLadderRightTop\nBrown\n.....\n0....\n0....\n0....\n.....\n\n\nPlayerSurface\n#009020\n..0..\n.000.\n00000\n.000.\n..0..\n\nPlayerDitch\n#007010\n.....\n..0..\n.000.\n..0..\n.....\n\nPlayerDrowned\nDarkBrown\n.....\n..0..\n.000.\n..0..\n.....\n\n\nGoal\nTransparent\n\nDoorClosed\n#444444\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n\n\nTimer9\nTransparent\n\nTimer8\nTransparent\n\nTimer7\nTransparent\n\nTimer6\nTransparent\n\nTimer5\nTransparent\n\nTimer4\nTransparent\n\nTimer3\nTransparent\n\nTimer2\nTransparent\n\nTimer1\nTransparent\n\nTimer0\nTransparent\n\n\nBase1Token\nTransparent\n\nBase2Token\nTransparent\n\nBase3Token\nTransparent\n\nBase4Token\nTransparent\n\nBase5Token\nTransparent\n\nFakeSwitchOff\n#222222 #999999\n.1...\n.1...\n..1..\n.000.\n.....\n\nFakeSwitchOn\n#222222 #999999\n...1.\n...1.\n..1..\n.000.\n.....\n\nFakeWaterWheelVertWet\n#555500 #777700 #0080FF\n20002\n20102\n00000\n20102\n20002\n\nFakeGateHorizOpenWet\n#444444 #0080FF\n11111\n01110\n01110\n01110\n11111\n\nFakeDoorClosed\n#444444\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n\nBaseWheel11\nDarkBrown\n.....\n.....\n...00\n..000\n..000\n\nBaseWheel21\nDarkBrown\n.....\n.....\n.....\n0...0\n00.00\n\nBaseWheel31\nDarkBrown\n.....\n.....\n..000\n00000\n00...\n\nBaseWheel41\nDarkBrown\n.000.\n.000.\n00000\n00000\n.000.\n\nBaseWheel51\nDarkBrown\n.....\n.....\n000..\n00000\n...00\n\nBaseWheel61\nDarkBrown\n.....\n.....\n.....\n0...0\n00.00\n\nBaseWheel71\nDarkBrown\n.....\n.....\n00...\n000..\n000..\n\nBaseWheel71Wet\nDarkBrown #0080FF\n11111\n11111\n00111\n00011\n00011\n\nBaseWheel12\nDarkBrown\n...00\n....0\n.....\n....0\n...00\n\nBaseWheel22\nDarkBrown\n00000\n0000.\n00000\n00000\n0.000\n\nBaseWheel32\nDarkBrown\n.....\n.....\n.....\n0....\n00...\n\nBaseWheel42\nDarkBrown\n.000.\n.000.\n.000.\n.000.\n.000.\n\nBaseWheel52\nDarkBrown\n.....\n.....\n.....\n....0\n...00\n\nBaseWheel62\nDarkBrown\n00000\n.0000\n00000\n00000\n000.0\n\nBaseWheel72\nDarkBrown\n00...\n0....\n.....\n0....\n00...\n\nBaseWheel72Wet\nDarkBrown #0080FF\n00111\n01111\n11111\n01111\n00111\n\nBaseWheel13\nDarkBrown\n...00\n...00\n..00.\n..00.\n..00.\n\nBaseWheel23\nDarkBrown\n...00\n....0\n.....\n.....\n.....\n\nBaseWheel33\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheel43\nDarkBrown\n00000\n00000\n.000.\n00000\n00000\n\nBaseWheel53\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheel63\nDarkBrown\n00...\n0....\n.....\n.....\n.....\n\nBaseWheel73\nDarkBrown\n00...\n00...\n.00..\n.00..\n.00..\n\nBaseWheel73Wet\nDarkBrown #0080FF\n00111\n00111\n.0011\n.0011\n.0011\n\nBaseWheel14\nDarkBrown\n..00.\n00000\n00000\n00000\n..00.\n\nBaseWheel24\nDarkBrown\n.....\n00000\n00000\n00000\n.....\n\nBaseWheel34\nDarkBrown\n00.00\n00000\n00000\n00000\n00.00\n\nBaseWheel44\nDarkBrown DarkGray\n00000\n01110\n01110\n01110\n00000\n\nBaseWheel54\nDarkBrown\n00.00\n00000\n00000\n00000\n00.00\n\nBaseWheel64\nDarkBrown\n.....\n00000\n00000\n00000\n.....\n\nBaseWheel74\nDarkBrown\n.00..\n00000\n00000\n00000\n.00..\n\nBaseWheel74Wet1\nDarkBrown #0080FF\n.0011\n00000\n00000\n00000\n.00..\n\nBaseWheel74Wet2\nDarkBrown #0080FF\n.0011\n00000\n00000\n00000\n.0011\n\nBaseWheel15\nDarkBrown\n..00.\n..00.\n..00.\n...00\n...00\n\nBaseWheel25\nDarkBrown\n.....\n.....\n.....\n....0\n...00\n\nBaseWheel35\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheel45\nDarkBrown\n00000\n00000\n.000.\n00000\n00000\n\nBaseWheel55\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheel65\nDarkBrown\n.....\n.....\n.....\n0....\n00...\n\nBaseWheel75\nDarkBrown\n.00..\n.00..\n.00..\n00...\n00...\n\nBaseWheel75Wet\nDarkBrown #0080FF\n.0011\n.0011\n.0011\n00111\n00111\n\nBaseWheel16\nDarkBrown\n...00\n....0\n.....\n....0\n...00\n\nBaseWheel26\nDarkBrown\n0.000\n00000\n00000\n0000.\n00000\n\nBaseWheel36\nDarkBrown\n00...\n0....\n.....\n.....\n.....\n\nBaseWheel46\nDarkBrown\n.000.\n.000.\n.000.\n.000.\n.000.\n\nBaseWheel56\nDarkBrown\n...00\n....0\n.....\n.....\n.....\n\nBaseWheel66\nDarkBrown\n000.0\n00000\n00000\n.0000\n00000\n\nBaseWheel76\nDarkBrown\n00...\n0....\n.....\n0....\n00...\n\nBaseWheel76Wet\nDarkBrown #0080FF\n00111\n01111\n11111\n01111\n00111\n\nBaseWheel17\nDarkBrown\n..000\n..000\n...00\n.....\n.....\n\nBaseWheel27\nDarkBrown\n00.00\n0...0\n.....\n.....\n.....\n\nBaseWheel37\nDarkBrown\n00...\n00000\n..000\n.....\n.....\n\nBaseWheel47\nDarkBrown\n.000.\n00000\n00000\n.000.\n.000.\n\nBaseWheel57\nDarkBrown\n...00\n00000\n000..\n.....\n.....\n\nBaseWheel67\nDarkBrown\n00.00\n0...0\n.....\n.....\n.....\n\nBaseWheel77\nDarkBrown\n000..\n000..\n00...\n.....\n.....\n\nBaseWheel77Wet\nDarkBrown #0080FF\n00011\n00011\n00111\n11111\n11111\n\nBaseWheelT11\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT21\nDarkBrown\n..000\n...00\n...00\n...00\n...00\n\nBaseWheelT31\nDarkBrown\n.....\n0....\n00000\n00000\n000..\n\nBaseWheelT41\nDarkBrown\n.....\n.....\n00000\n00000\n.....\n\nBaseWheelT51\nDarkBrown\n.....\n....0\n00000\n00000\n..000\n\nBaseWheelT61\nDarkBrown\n000..\n00...\n00...\n00...\n00...\n\nBaseWheelT71\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT71Wet\nDarkBrown #0080FF\n11111\n11111\n11111\n11111\n11111\n\nBaseWheelT12\nDarkBrown\n.....\n.....\n0...0\n00000\n00000\n\nBaseWheelT22\nDarkBrown\n..000\n.000.\n00...\n00...\n0....\n\nBaseWheelT32\nDarkBrown\n000..\n0000.\n.000.\n.0000\n..000\n\nBaseWheelT42\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT52\nDarkBrown\n..000\n.0000\n.000.\n0000.\n000..\n\nBaseWheelT62\nDarkBrown\n000..\n.000.\n...00\n...00\n....0\n\nBaseWheelT72\nDarkBrown\n.....\n.....\n....0\n00000\n00000\n\nBaseWheelT72Wet\nDarkBrown #0080FF\n11111\n11111\n11110\n00000\n00000\n\nBaseWheelT13\nDarkBrown\n.0000\n..000\n..000\n..00.\n..00.\n\nBaseWheelT23\nDarkBrown\n00...\n0000.\n00000\n.0000\n...00\n\nBaseWheelT33\nDarkBrown\n..000\n..000\n00000\n000.0\n00000\n\nBaseWheelT43\nDarkBrown\n00000\n00000\n00.00\n00.00\n00000\n\nBaseWheelT53\nDarkBrown\n000..\n000..\n00000\n0.000\n00000\n\nBaseWheelT63\nDarkBrown\n...00\n.0000\n00000\n0000.\n00...\n\nBaseWheelT73\nDarkBrown\n0000.\n000..\n000..\n.00..\n.00..\n\nBaseWheelT73Wet\nDarkBrown #0080FF\n00001\n00011\n00011\n.0011\n.0011\n\nBaseWheelT14\nDarkBrown\n..00.\n..00.\n..00.\n..00.\n..00.\n\nBaseWheelT24\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT34\nDarkBrown\n00000\n00000\n00..0\n00000\n00000\n\nBaseWheelT44\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheelT54\nDarkBrown\n00000\n00000\n0..00\n00000\n00000\n\nBaseWheelT64\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT74\nDarkBrown\n.00..\n.00..\n.00..\n.00..\n.00..\n\nBaseWheelT74Wet\nDarkBrown #0080FF\n.0011\n.0011\n.0011\n.0011\n.0011\n\nBaseWheelT15\nDarkBrown\n..00.\n..00.\n..000\n..000\n.0000\n\nBaseWheelT25\nDarkBrown\n...00\n.0000\n00000\n0000.\n00...\n\nBaseWheelT35\nDarkBrown\n00000\n000.0\n00000\n..000\n..000\n\nBaseWheelT45\nDarkBrown\n00000\n00.00\n00.00\n00000\n00000\n\nBaseWheelT55\nDarkBrown\n00000\n0.000\n00000\n00...\n00...\n\nBaseWheelT65\nDarkBrown\n00...\n0000.\n00000\n.0000\n...00\n\nBaseWheelT75\nDarkBrown\n.00..\n.00..\n000..\n000..\n0000.\n\nBaseWheelT75Wet\nDarkBrown #0080FF\n.0011\n.0011\n00011\n00011\n00001\n\nBaseWheelT16\nDarkBrown\n00000\n00000\n0....\n.....\n.....\n\nBaseWheelT26\nDarkBrown\n0....\n00...\n00...\n.000.\n..000\n\nBaseWheelT36\nDarkBrown\n..000\n.0000\n.000.\n0000.\n000..\n\nBaseWheelT46\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT56\nDarkBrown\n000..\n0000.\n.000.\n.0000\n..000\n\nBaseWheelT66\nDarkBrown\n....0\n...00\n...00\n.000.\n00...\n\nBaseWheelT76\nDarkBrown\n00000\n00000\n....0\n.....\n.....\n\nBaseWheelT76Wet\nDarkBrown #0080FF\n00000\n00000\n11110\n11111\n11111\n\nBaseWheelT17\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT27\nDarkBrown\n...00\n...00\n...00\n...00\n..000\n\nBaseWheelT37\nDarkBrown\n000..\n00000\n00000\n0....\n.....\n\nBaseWheelT47\nDarkBrown\n.....\n00000\n00000\n.....\n.....\n\nBaseWheelT57\nDarkBrown\n..000\n00000\n00000\n....0\n.....\n\nBaseWheelT67\nDarkBrown\n00...\n00...\n00...\n00...\n000..\n\nBaseWheelT77\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT77Wet\nDarkBrown #0080FF\n11111\n11111\n11111\n11111\n11111\n\n\n\n\n\nCutsceneBackground\nGreen\n\nHouse\nDarkBrown\n\nHouseRoofLeft\nDarkBrown\n.....\n....0\n...00\n..000\n.0000\n\nHouseRoofRight\nDarkBrown\n.....\n0....\n00...\n000..\n0000.\n\nWindow\nLightBlue\n\nDoorClosedTop\nDarkBrown #383020\n11111\n10001\n10001\n10001\n10001\n\nDoorClosedBottom\nDarkBrown #383020\n10001\n10001\n10001\n10001\n10001\n\nRoadLeft\n#E0D010\n....0\n...00\n..000\n.0000\n00000\n\nRoad\n#E0D010\n\nRoadRight\n#E0D010\n.....\n0....\n00...\n000..\n0000.\n\nClockTowerLeft\n#252525\n\nClockTowerRight\n#252525\n0000.\n0000.\n0000.\n0000.\n0000.\n\nClock11\n#252525 White\n.....\n....0\n...00\n..000\n..001\n\nClock21\n#252525 White\n00000\n00000\n01111\n11101\n11101\n\nClock21b\n#252525 White\n00000\n00000\n01111\n11110\n11110\n\nClock31\n#252525 White\n0000.\n00000\n11100\n11110\n11111\n\nClock41\n#252525 White\n.....\n.....\n0....\n00...\n00...\n\nClock12\n#252525 White\n..001\n..001\n..001\n..001\n..001\n\nClock22\n#252525 White\n11110\n11110\n11110\n11111\n11111\n\nClock32\n#252525 White\n11111\n11111\n00011\n11111\n11111\n\nClock42\n#252525 White\n00...\n00...\n00...\n00...\n00...\n\nClock13\n#252525 White\n..001\n..000\n...00\n....0\n.....\n\nClock23\n#252525 White\n11111\n11111\n01111\n00000\n00000\n\nClock33\n#252525 White\n11111\n11110\n11100\n00000\n0000.\n\nClock43\n#252525 White\n00...\n00...\n0....\n.....\n.....\n\nDoorOpen\nBlack\n\nCutsceneWater\n#0080FF\n\nPlayerHead\n#009020 White\n..0..\n.000.\n00000\n.000.\n.101.\n\nPlayerBody\n#009020 White\n.111.\n.111.\n.111.\n.1.1.\n.1.1.\n\n\nSoundTrigger0\nTransparent\n\nSoundTrigger1\nTransparent\n\nSoundTrigger2\nTransparent\n\nSoundTrigger3\nTransparent\n\nSoundTrigger4\nTransparent\n\n\n=======\nLEGEND\n=======\n\n! = Background\n\n. = Surface\n# = Wall\n\nⅠ = Wall AND RomanNumeral1\nⅡ = Wall AND RomanNumeral2\nⅢ = Wall AND RomanNumeral3\nⅣ = Wall AND RomanNumeral4\nⅤ = Wall AND RomanNumeral5\nRomanNumeral = RomanNumeral1 OR RomanNumeral2 OR RomanNumeral3 OR RomanNumeral4 OR RomanNumeral5\n\n5 = WaterWheelHorizWet AND WaterSource\n6 = WaterWheelHorizDry\n7 = WaterWheelVertWet AND WaterSource\n8 = WaterWheelVertDry\nWaterWheel = WaterWheelHorizWet OR WaterWheelHorizDry OR WaterWheelVertWet OR WaterWheelVertDry OR FakeWaterWheelVertWet\nWaterPropagator = Water OR CrateSurface OR WaterSource OR GateVertOpenWet OR GateHorizOpenWet\n\n- = Ditch\n1 = GateVertOpen AND Ditch\n2 = GateVertClosed AND Ditch\n3 = GateHorizOpen AND Ditch\n4 = GateHorizClosed AND Ditch\n\n$ = CrateDitch AND Ditch\nCrate = CrateDitch OR CrateSurface\n% = Block AND Ditch\n\nPushable = CrateDitch OR Block\n\n/ = SwitchOn AND Surface\n\\ = SwitchOff AND Surface\nSwitch = SwitchOn OR SwitchOff OR FakeSwitchOn OR FakeSwitchOff\n\nU = LadderUp AND Ditch\nD = LadderDown AND Ditch\nL = LadderLeft AND Ditch\nR = LadderRight AND Ditch\nLadder = LadderUp OR LadderDown OR LadderLeft OR LadderRight\n\nGate = GateVertOpen OR GateVertOpenWet OR GateVertClosed OR GateVertClosedLeft OR GateVertClosedRight OR GateHorizOpen OR GateHorizOpenWet OR GateHorizClosed OR GateHorizClosedUp OR GateHorizClosedDown OR FakeGateHorizOpenWet\n\n@ = PlayerSurface AND Surface\nPlayer = PlayerSurface OR PlayerDitch\n\nG = Goal AND Surface\n\n一 = Timer1 AND CutsceneBackground\n二 = Timer2 AND CutsceneBackground\n三 = Timer3 AND CutsceneBackground\n四 = Timer4 AND CutsceneBackground\n五 = Timer5 AND CutsceneBackground\n六 = Timer6 AND CutsceneBackground\n七 = Timer7 AND CutsceneBackground\n八 = Timer8 AND CutsceneBackground\n九 = Timer9 AND CutsceneBackground\nTimer = Timer1 OR Timer2 OR Timer3 OR Timer4 OR Timer5 OR Timer6 OR Timer7 OR Timer8 OR Timer9 OR Timer0\n\nⒶ = BaseWheel11 AND Base1Token AND Ditch\nⒷ = BaseWheel11 AND Base2Token AND Ditch\nⒸ = BaseWheelT11 AND Base3Token AND Ditch\nⒹ = BaseWheel11 AND Base4Token AND Ditch\nⒺ = BaseWheelT11 AND Base5Token AND Ditch\nBaseToken = Base1Token OR Base2Token OR Base3Token OR Base4Token OR Base5Token\nBaseWheel = BaseWheel11 OR BaseWheel21 OR BaseWheel31 OR BaseWheel41 OR BaseWheel51 OR BaseWheel61 OR BaseWheel71 OR BaseWheel12 OR BaseWheel22 OR BaseWheel32 OR BaseWheel42 OR BaseWheel52 OR BaseWheel62 OR BaseWheel72 OR BaseWheel13 OR BaseWheel23 OR BaseWheel33 OR BaseWheel43 OR BaseWheel53 OR BaseWheel63 OR BaseWheel73 OR BaseWheel14 OR BaseWheel24 OR BaseWheel34 OR BaseWheel44 OR BaseWheel54 OR BaseWheel64 OR BaseWheel74 OR BaseWheel15 OR BaseWheel25 OR BaseWheel35 OR BaseWheel45 OR BaseWheel55 OR BaseWheel65 OR BaseWheel75 OR BaseWheel16 OR BaseWheel26 OR BaseWheel36 OR BaseWheel46 OR BaseWheel56 OR BaseWheel66 OR BaseWheel76 OR BaseWheel17 OR BaseWheel27 OR BaseWheel37 OR BaseWheel47 OR BaseWheel57 OR BaseWheel67 OR BaseWheel77 OR BaseWheel71Wet OR BaseWheel72Wet OR BaseWheel73Wet OR BaseWheel74Wet1 OR BaseWheel74Wet2 OR BaseWheel75Wet OR BaseWheel76Wet OR BaseWheel77Wet OR BaseWheelT11 OR BaseWheelT21 OR BaseWheelT31 OR BaseWheelT41 OR BaseWheelT51 OR BaseWheelT61 OR BaseWheelT71 OR BaseWheelT12 OR BaseWheelT22 OR BaseWheelT32 OR BaseWheelT42 OR BaseWheelT52 OR BaseWheelT62 OR BaseWheelT72 OR BaseWheelT13 OR BaseWheelT23 OR BaseWheelT33 OR BaseWheelT43 OR BaseWheelT53 OR BaseWheelT63 OR BaseWheelT73 OR BaseWheelT14 OR BaseWheelT24 OR BaseWheelT34 OR BaseWheelT44 OR BaseWheelT54 OR BaseWheelT64 OR BaseWheelT74 OR BaseWheelT15 OR BaseWheelT25 OR BaseWheelT35 OR BaseWheelT45 OR BaseWheelT55 OR BaseWheelT65 OR BaseWheelT75 OR BaseWheelT16 OR BaseWheelT26 OR BaseWheelT36 OR BaseWheelT46 OR BaseWheelT56 OR BaseWheelT66 OR BaseWheelT76 OR BaseWheelT17 OR BaseWheelT27 OR BaseWheelT37 OR BaseWheelT47 OR BaseWheelT57 OR BaseWheelT67 OR BaseWheelT77 OR BaseWheelT71Wet OR BaseWheelT72Wet OR BaseWheelT73Wet OR BaseWheelT74Wet OR BaseWheelT75Wet OR BaseWheelT76Wet OR BaseWheelT77Wet\n\nA = CutsceneBackground\nB = House AND CutsceneBackground\nC = HouseRoofLeft AND CutsceneBackground\nD = HouseRoofRight AND CutsceneBackground\nE = DoorClosedTop AND CutsceneBackground\nF = DoorClosedBottom AND CutsceneBackground\nG = Window AND CutsceneBackground\nH = RoadLeft AND CutsceneBackground\nI = Road AND CutsceneBackground\nJ = RoadRight AND CutsceneBackground\nK = ClockTowerLeft AND CutsceneBackground\nL = ClockTowerRight AND CutsceneBackground\nM = Clock11 AND CutsceneBackground\nN = Clock21 AND CutsceneBackground\nO = Clock31 AND CutsceneBackground\nP = Clock41 AND CutsceneBackground\nQ = Clock12 AND CutsceneBackground\nR = Clock22 AND CutsceneBackground\nS = Clock32 AND CutsceneBackground\nT = Clock42 AND CutsceneBackground\nU = Clock13 AND CutsceneBackground\nV = Clock23 AND CutsceneBackground\nW = Clock33 AND CutsceneBackground\nX = Clock43 AND CutsceneBackground\nY = DoorOpen AND PlayerHead AND CutsceneBackground\nZ = DoorOpen AND PlayerBody AND CutsceneBackground\n0 = DoorOpen AND CutsceneBackground\n1 = House AND PlayerHead AND CutsceneBackground\n2 = House AND PlayerBody AND CutsceneBackground\n3 = Clock21b AND CutsceneBackground\n~ = CutsceneWater AND CutsceneBackground\n\n⓪ = SoundTrigger0 AND CutsceneBackground\n① = SoundTrigger1 AND CutsceneBackground\n② = SoundTrigger2 AND CutsceneBackground\n③ = SoundTrigger3 AND CutsceneBackground\n④ = SoundTrigger4 AND CutsceneBackground\nSoundTrigger = SoundTrigger0 OR SoundTrigger1 OR SoundTrigger2 OR SoundTrigger3 OR SoundTrigger4\n\n=======\nSOUNDS\n=======\n\nPlayerSurface create 48266305 (climb up)\nPlayerDitch create 41817501 (climb down)\n\n(water movement)\nSwitchOn create 36552908\nSwitchOff create 36552908\nSoundTrigger0 destroy 36552908\nsfx1 36552908\n\nPlayerDrowned create 36552908 (play water movement too)\nPlayerDrowned create 66299108 (u ded)\n\nSoundTrigger1 destroy 56950107 (open door)\nSoundTrigger2 destroy 73601104 (close door)\n\nSoundTrigger3 destroy 20889900 (chime)\n\nSoundTrigger4 destroy 25204707 (wheel click)\n\nsfx0 9950900 (finish a puzzle level)\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nCutsceneBackground\nSurface, Ditch\nLadder\nLadderUpTop (tops all on separate layers so more than one can be on one tile)\nLadderDownTop\nLadderLeftTop\nLadderRightTop\nCrateSurface, BlockSurface\nPlayer, Wall, Water, Gate, Switch, CrateDitch, Block, WaterWheel, DoorClosed, FakeDoorClosed, BaseWheel\nGoal\nSwitchToggleToken, BaseToken\nWaterSource\nTimer, RomanNumeral, PlayerDrowned\nHouse, HouseRoofLeft, HouseRoofRight, DoorClosedTop, DoorClosedBottom, Window, RoadLeft, Road, RoadRight, ClockTowerLeft, ClockTowerRight, Clock11, Clock21, Clock21b, Clock31, Clock41, Clock12, Clock22, Clock32, Clock42, Clock13, Clock23, Clock33, Clock43, DoorOpen, CutsceneWater\nPlayerHead, PlayerBody\nSoundTrigger\n\n\n======\nRULES\n======\n\n(================\nLEVEL GENERATION\n================)\n\n(Generate the tops of the ladders.)\nDOWN [ | LadderUp ] -> [ LadderUpTop | LadderUp ]\nDOWN [ LadderDown | ] -> [ LadderDown | LadderDownTop ]\nRIGHT [ | LadderLeft ] -> [ LadderLeftTop | LadderLeft ]\nRIGHT [ LadderRight | ] -> [ LadderRight | LadderRightTop ]\n\n\n(========\nMOVEMENT\n========)\n\n(Convert blocks to and from fake surfaces when the player walks on and off them, because layers.)\n[ > Player Surface | Block Ditch ] -> [ > Player Surface | BlockSurface Surface ]\nLATE [ BlockSurface Surface no Player ] -> [ Block Ditch ]\n\n(Shove crates and blocks. They can never move to the surface.)\n[ > PlayerDitch | Pushable ] -> [ > PlayerDitch | > Pushable ]\n[ > Pushable | Surface ] -> [ Pushable | Surface ]\n\n(Cancel movement if the player walks into the void.)\n[ > Player | no Surface no Ditch ] -> [ Player | ]\n\n(Cancel movement if a player on the surface tries to move into a ditch without using a ladder.)\nDOWN [ > Player Surface | Ditch no LadderUp ] -> [ Player Surface | Ditch ]\nUP [ > Player Surface | Ditch no LadderDown ] -> [ Player Surface | Ditch ]\nLEFT [ > Player Surface | Ditch no LadderRight ] -> [ Player Surface | Ditch ]\nRIGHT [ > Player Surface | Ditch no LadderLeft ] -> [ Player Surface | Ditch ]\n\n(Cancel movement if a player in a ditch tries to move to the surface without using a ladder.)\nDOWN [ > Player Ditch no LadderDown | Surface ] -> [ Player Ditch | Surface ]\nUP [ > Player Ditch no LadderUp | Surface ] -> [ Player Ditch | Surface ]\nLEFT [ > Player Ditch no LadderLeft | Surface ] -> [ Player Ditch | Surface ]\nRIGHT [ > Player Ditch no LadderRight | Surface ] -> [ Player Ditch | Surface ]\n\n(Change the player sprite based on their height.)\nLATE [ PlayerSurface Ditch ] -> [ PlayerDitch Ditch ]\nLATE [ PlayerDitch Surface ] -> [ PlayerSurface Surface ]\n\n(Play a sound when the player finishes a puzzle level. Done like this so it doesn't happen on the cutscene levels.)\nLATE [ Player Goal ] -> sfx0\n\n\n(=============\nSPLISH SPLASH\n=============)\n\n(Get started by marking that we're toggling and clearing current water)\n[ > Player Surface | Switch ] -> [ > Player Surface | Switch SwitchToggleToken ]\n[ SwitchToggleToken ] [ Water ] -> [ SwitchToggleToken ] [ ]\n[ SwitchToggleToken ] [ GateVertOpenWet ] -> [ SwitchToggleToken ] [ GateVertOpen ]\n[ SwitchToggleToken ] [ GateVertClosedLeft ] -> [ SwitchToggleToken ] [ GateVertClosed ]\n[ SwitchToggleToken ] [ GateVertClosedRight ] -> [ SwitchToggleToken ] [ GateVertClosed ]\n[ SwitchToggleToken ] [ GateHorizOpenWet ] -> [ SwitchToggleToken ] [ GateHorizOpen ]\n[ SwitchToggleToken ] [ GateHorizClosedUp ] -> [ SwitchToggleToken ] [ GateHorizClosed ]\n[ SwitchToggleToken ] [ GateHorizClosedDown ] -> [ SwitchToggleToken ] [ GateHorizClosed ]\n[ SwitchToggleToken ] [ WaterWheelVertWet no WaterSource ] -> [ SwitchToggleToken ] [ WaterWheelVertDry ]\n[ SwitchToggleToken ] [ WaterWheelHorizWet no WaterSource ] -> [ SwitchToggleToken ] [ WaterWheelHorizDry ]\n[ SwitchToggleToken ] [ CrateSurface Surface ] -> [ SwitchToggleToken ] [ CrateDitch Ditch ]\n\n(Open the associated gate and send the water along.)\n[ SwitchOff SwitchToggleToken | GateVertClosed ] -> [ SwitchOff SwitchToggleToken | GateVertOpen ]\n[ SwitchOff SwitchToggleToken | GateHorizClosed ] -> [ SwitchOff SwitchToggleToken | GateHorizOpen ]\nstartloop\n\t(This water propagation is bad lmao, don't worry about it)\n\t(We do this LATE so we can propagate after a player moves a block.)\n\tLATE [ WaterPropagator | Ditch no Water no Gate no Crate no Block no Player ] -> [ WaterPropagator | Ditch Water ]\n LATE [ WaterPropagator | PlayerDitch ] -> [ WaterPropagator | PlayerDrowned ]\n\tLATE [ WaterPropagator | CrateDitch Ditch ] -> [ WaterPropagator | CrateSurface Surface ]\n LATE [ WaterPropagator | GateVertOpen ] -> [ WaterPropagator | GateVertOpenWet ]\n LATE RIGHT [ WaterPropagator | GateVertClosed ] -> [ WaterPropagator | GateVertClosedLeft ]\n LATE RIGHT [ GateVertClosed | WaterPropagator ] -> [ GateVertClosedRight | WaterPropagator ]\n LATE [ WaterPropagator | GateHorizOpen ] -> [ WaterPropagator | GateHorizOpenWet ]\n LATE DOWN [ WaterPropagator | GateHorizClosed ] -> [ WaterPropagator | GateHorizClosedUp ]\n LATE DOWN [ GateHorizClosed | WaterPropagator ] -> [ GateHorizClosedDown | WaterPropagator ]\nendloop\nLATE [ WaterPropagator | WaterWheelVertDry ] -> [ WaterPropagator | WaterWheelVertWet ]\nLATE [ WaterPropagator | WaterWheelHorizDry ] -> [ WaterPropagator | WaterWheelHorizWet ]\n[ SwitchOff SwitchToggleToken ] -> [ SwitchOn ]\n\n(Close the associated gate.)\n[ SwitchOn SwitchToggleToken | GateVertOpen ] -> [ SwitchOn SwitchToggleToken | GateVertClosed ]\n[ SwitchOn SwitchToggleToken | GateHorizOpen ] -> [ SwitchOn SwitchToggleToken | GateHorizClosed ]\n[ SwitchOn SwitchToggleToken ] -> [ SwitchOff ]\n\n(Open/close the door depending on whether the water wheel is powered.)\nLATE [ Goal DoorClosed ] -> [ Goal ]\nLATE [ WaterWheelVertDry ] [ Goal ] -> [ WaterWheelVertDry ] [ Goal DoorClosed ]\nLATE [ WaterWheelHorizDry ] [ Goal ] -> [ WaterWheelHorizDry ] [ Goal DoorClosed ]\n\n\n(=========\nCUTSCENES\n=========)\n\n(Wheel generation for the base levels - #1)\nRIGHT [ Base1Token ] [ BaseWheel11 | | | | | | ] -> [ Base1Token ] [ BaseWheel11 | BaseWheel21 | BaseWheel31 | BaseWheel41 | BaseWheel51 | BaseWheel61 | BaseWheel71 ]\nDOWN [ Base1Token ] [ BaseWheel11 | | | | | | ] -> [ Base1Token ] [ BaseWheel11 | BaseWheel12 | BaseWheel13 | BaseWheel14 | BaseWheel15 | BaseWheel16 | BaseWheel17 ]\nDOWN [ Base1Token ] [ BaseWheel21 | | | | | | ] -> [ Base1Token ] [ BaseWheel21 | BaseWheel22 | BaseWheel23 | BaseWheel24 | BaseWheel25 | BaseWheel26 | BaseWheel27 ]\nDOWN [ Base1Token ] [ BaseWheel31 | | | | | | ] -> [ Base1Token ] [ BaseWheel31 | BaseWheel32 | BaseWheel33 | BaseWheel34 | BaseWheel35 | BaseWheel36 | BaseWheel37 ]\nDOWN [ Base1Token ] [ BaseWheel41 | | | | | | ] -> [ Base1Token ] [ BaseWheel41 | BaseWheel42 | BaseWheel43 | BaseWheel44 | BaseWheel45 | BaseWheel46 | BaseWheel47 ]\nDOWN [ Base1Token ] [ BaseWheel51 | | | | | | ] -> [ Base1Token ] [ BaseWheel51 | BaseWheel52 | BaseWheel53 | BaseWheel54 | BaseWheel55 | BaseWheel56 | BaseWheel57 ]\nDOWN [ Base1Token ] [ BaseWheel61 | | | | | | ] -> [ Base1Token ] [ BaseWheel61 | BaseWheel62 | BaseWheel63 | BaseWheel64 | BaseWheel65 | BaseWheel66 | BaseWheel67 ]\nDOWN [ Base1Token ] [ BaseWheel71 | | | | | | ] -> [ Base1Token ] [ BaseWheel71 | BaseWheel72 | BaseWheel73 | BaseWheel74 | BaseWheel75 | BaseWheel76 | BaseWheel77 ]\n\n(Wheel generation for the base levels - #2)\nRIGHT [ Base2Token ] [ BaseWheel11 | | | | | | ] -> [ Base2Token ] [ BaseWheel11 | BaseWheel21 | BaseWheel31 | BaseWheel41 | BaseWheel51 | BaseWheel61 | BaseWheel71Wet ]\nDOWN [ Base2Token ] [ BaseWheel11 | | | | | | ] -> [ Base2Token ] [ BaseWheel11 | BaseWheel12 | BaseWheel13 | BaseWheel14 | BaseWheel15 | BaseWheel16 | BaseWheel17 ]\nDOWN [ Base2Token ] [ BaseWheel21 | | | | | | ] -> [ Base2Token ] [ BaseWheel21 | BaseWheel22 | BaseWheel23 | BaseWheel24 | BaseWheel25 | BaseWheel26 | BaseWheel27 ]\nDOWN [ Base2Token ] [ BaseWheel31 | | | | | | ] -> [ Base2Token ] [ BaseWheel31 | BaseWheel32 | BaseWheel33 | BaseWheel34 | BaseWheel35 | BaseWheel36 | BaseWheel37 ]\nDOWN [ Base2Token ] [ BaseWheel41 | | | | | | ] -> [ Base2Token ] [ BaseWheel41 | BaseWheel42 | BaseWheel43 | BaseWheel44 | BaseWheel45 | BaseWheel46 | BaseWheel47 ]\nDOWN [ Base2Token ] [ BaseWheel51 | | | | | | ] -> [ Base2Token ] [ BaseWheel51 | BaseWheel52 | BaseWheel53 | BaseWheel54 | BaseWheel55 | BaseWheel56 | BaseWheel57 ]\nDOWN [ Base2Token ] [ BaseWheel61 | | | | | | ] -> [ Base2Token ] [ BaseWheel61 | BaseWheel62 | BaseWheel63 | BaseWheel64 | BaseWheel65 | BaseWheel66 | BaseWheel67 ]\nDOWN [ Base2Token ] [ BaseWheel71Wet | | | | | | ] -> [ Base2Token ] [ BaseWheel71Wet | BaseWheel72Wet | BaseWheel73Wet | BaseWheel74Wet1 | BaseWheel75 | BaseWheel76 | BaseWheel77 ]\n\n(Wheel generation for the base levels - #3)\nRIGHT [ Base3Token ] [ BaseWheelT11 | | | | | | ] -> [ Base3Token ] [ BaseWheelT11 | BaseWheelT21 | BaseWheelT31 | BaseWheelT41 | BaseWheelT51 | BaseWheelT61 | BaseWheelT71Wet ]\nDOWN [ Base3Token ] [ BaseWheelT11 | | | | | | ] -> [ Base3Token ] [ BaseWheelT11 | BaseWheelT12 | BaseWheelT13 | BaseWheelT14 | BaseWheelT15 | BaseWheelT16 | BaseWheelT17 ]\nDOWN [ Base3Token ] [ BaseWheelT21 | | | | | | ] -> [ Base3Token ] [ BaseWheelT21 | BaseWheelT22 | BaseWheelT23 | BaseWheelT24 | BaseWheelT25 | BaseWheelT26 | BaseWheelT27 ]\nDOWN [ Base3Token ] [ BaseWheelT31 | | | | | | ] -> [ Base3Token ] [ BaseWheelT31 | BaseWheelT32 | BaseWheelT33 | BaseWheelT34 | BaseWheelT35 | BaseWheelT36 | BaseWheelT37 ]\nDOWN [ Base3Token ] [ BaseWheelT41 | | | | | | ] -> [ Base3Token ] [ BaseWheelT41 | BaseWheelT42 | BaseWheelT43 | BaseWheelT44 | BaseWheelT45 | BaseWheelT46 | BaseWheelT47 ]\nDOWN [ Base3Token ] [ BaseWheelT51 | | | | | | ] -> [ Base3Token ] [ BaseWheelT51 | BaseWheelT52 | BaseWheelT53 | BaseWheelT54 | BaseWheelT55 | BaseWheelT56 | BaseWheelT57 ]\nDOWN [ Base3Token ] [ BaseWheelT61 | | | | | | ] -> [ Base3Token ] [ BaseWheelT61 | BaseWheelT62 | BaseWheelT63 | BaseWheelT64 | BaseWheelT65 | BaseWheelT66 | BaseWheelT67 ]\nDOWN [ Base3Token ] [ BaseWheelT71Wet | | | | | | ] -> [ Base3Token ] [ BaseWheelT71Wet | BaseWheelT72Wet | BaseWheelT73Wet | BaseWheelT74Wet | BaseWheelT75Wet | BaseWheelT76 | BaseWheelT77 ]\n\n(Wheel generation for the base levels - #4)\nRIGHT [ Base4Token ] [ BaseWheel11 | | | | | | ] -> [ Base4Token ] [ BaseWheel11 | BaseWheel21 | BaseWheel31 | BaseWheel41 | BaseWheel51 | BaseWheel61 | BaseWheel71Wet ]\nDOWN [ Base4Token ] [ BaseWheel11 | | | | | | ] -> [ Base4Token ] [ BaseWheel11 | BaseWheel12 | BaseWheel13 | BaseWheel14 | BaseWheel15 | BaseWheel16 | BaseWheel17 ]\nDOWN [ Base4Token ] [ BaseWheel21 | | | | | | ] -> [ Base4Token ] [ BaseWheel21 | BaseWheel22 | BaseWheel23 | BaseWheel24 | BaseWheel25 | BaseWheel26 | BaseWheel27 ]\nDOWN [ Base4Token ] [ BaseWheel31 | | | | | | ] -> [ Base4Token ] [ BaseWheel31 | BaseWheel32 | BaseWheel33 | BaseWheel34 | BaseWheel35 | BaseWheel36 | BaseWheel37 ]\nDOWN [ Base4Token ] [ BaseWheel41 | | | | | | ] -> [ Base4Token ] [ BaseWheel41 | BaseWheel42 | BaseWheel43 | BaseWheel44 | BaseWheel45 | BaseWheel46 | BaseWheel47 ]\nDOWN [ Base4Token ] [ BaseWheel51 | | | | | | ] -> [ Base4Token ] [ BaseWheel51 | BaseWheel52 | BaseWheel53 | BaseWheel54 | BaseWheel55 | BaseWheel56 | BaseWheel57 ]\nDOWN [ Base4Token ] [ BaseWheel61 | | | | | | ] -> [ Base4Token ] [ BaseWheel61 | BaseWheel62 | BaseWheel63 | BaseWheel64 | BaseWheel65 | BaseWheel66 | BaseWheel67 ]\nDOWN [ Base4Token ] [ BaseWheel71Wet | | | | | | ] -> [ Base4Token ] [ BaseWheel71Wet | BaseWheel72Wet | BaseWheel73Wet | BaseWheel74Wet2 | BaseWheel75Wet | BaseWheel76Wet | BaseWheel77Wet ]\n\n(Wheel generation for the base levels - #5)\nRIGHT [ Base5Token ] [ BaseWheelT11 | | | | | | ] -> [ Base5Token ] [ BaseWheelT11 | BaseWheelT21 | BaseWheelT31 | BaseWheelT41 | BaseWheelT51 | BaseWheelT61 | BaseWheelT71Wet ]\nDOWN [ Base5Token ] [ BaseWheelT11 | | | | | | ] -> [ Base5Token ] [ BaseWheelT11 | BaseWheelT12 | BaseWheelT13 | BaseWheelT14 | BaseWheelT15 | BaseWheelT16 | BaseWheelT17 ]\nDOWN [ Base5Token ] [ BaseWheelT21 | | | | | | ] -> [ Base5Token ] [ BaseWheelT21 | BaseWheelT22 | BaseWheelT23 | BaseWheelT24 | BaseWheelT25 | BaseWheelT26 | BaseWheelT27 ]\nDOWN [ Base5Token ] [ BaseWheelT31 | | | | | | ] -> [ Base5Token ] [ BaseWheelT31 | BaseWheelT32 | BaseWheelT33 | BaseWheelT34 | BaseWheelT35 | BaseWheelT36 | BaseWheelT37 ]\nDOWN [ Base5Token ] [ BaseWheelT41 | | | | | | ] -> [ Base5Token ] [ BaseWheelT41 | BaseWheelT42 | BaseWheelT43 | BaseWheelT44 | BaseWheelT45 | BaseWheelT46 | BaseWheelT47 ]\nDOWN [ Base5Token ] [ BaseWheelT51 | | | | | | ] -> [ Base5Token ] [ BaseWheelT51 | BaseWheelT52 | BaseWheelT53 | BaseWheelT54 | BaseWheelT55 | BaseWheelT56 | BaseWheelT57 ]\nDOWN [ Base5Token ] [ BaseWheelT61 | | | | | | ] -> [ Base5Token ] [ BaseWheelT61 | BaseWheelT62 | BaseWheelT63 | BaseWheelT64 | BaseWheelT65 | BaseWheelT66 | BaseWheelT67 ]\nDOWN [ Base5Token ] [ BaseWheelT71Wet | | | | | | ] -> [ Base5Token ] [ BaseWheelT71Wet | BaseWheelT72Wet | BaseWheelT73Wet | BaseWheelT74Wet | BaseWheelT75Wet | BaseWheelT76Wet | BaseWheelT77Wet ]\n\n(Replace objects with fakes that don't do anything.)\n[ BaseToken ] [ CutsceneBackground ] -> [ BaseToken ] [ Wall ]\n[ BaseToken ] [ WaterWheelHorizWet WaterSource ] -> [ BaseToken ] [ FakeWaterWheelVertWet ]\n[ BaseToken ] [ SwitchOff ] -> [ BaseToken ] [ FakeSwitchOff ]\n[ BaseToken ] [ GateHorizOpen ] -> [ BaseToken ] [ FakeGateHorizOpenWet ]\n[ BaseToken ] [ Goal ] -> [ BaseToken ] [ FakeDoorClosed ]\n(Fill spaces with fake water in part 2 and beyond)\nDOWN [ BaseToken no Base1Token ] [ FakeGateHorizOpenWet | Ditch ] -> [ BaseToken ] [ FakeGateHorizOpenWet | Ditch CutsceneWater ]\n(Fill spaces with fake water in part 4 and beyond)\n[ BaseToken no Base1Token no Base2Token no Base3Token ] [ Ditch no BaseWheel ] -> [ BaseToken ] [ Ditch CutsceneWater ]\n[ BaseToken no Base1Token no Base2Token no Base3Token ] [ WaterWheelVertDry ] -> [ BaseToken ] [ FakeWaterWheelVertWet ]\n\n(Start autoplaying)\nRIGHT [ > Player | FakeSwitchOff ] -> [ Player | FakeSwitchOn Timer1 ] sfx1\nRIGHT [ FakeSwitchOn | GateHorizClosed ] -> [ FakeSwitchOn | FakeGateHorizOpenWet ]\nDOWN [ FakeSwitchOn ] [ FakeGateHorizOpenWet | | | | | ] -> [ FakeSwitchOn ] [ FakeGateHorizOpenWet | CutsceneWater | BaseWheel71Wet | BaseWheel72Wet | BaseWheel73Wet | BaseWheel74Wet1 ]\n\n[ BaseToken ] -> [ ]\n\n(Timer countdowns)\n[Timer0] -> win\n[Timer1] -> [Timer0] again\n[Timer2] -> [Timer1] again\n[Timer3] -> [Timer2] again\n[Timer4] -> [Timer3] again\n[Timer5] -> [Timer4] again\n[Timer6] -> [Timer5] again\n[Timer7] -> [Timer6] again\n[Timer8] -> [Timer7] again\n[Timer9] -> [Timer8] again\n\n[SoundTrigger] -> []\n\n\n==============\nWINCONDITIONS\n==============\n\nSome Player on Goal\n\n\n=======\nLEVELS\n=======\n\n(Opening cutscene)\nAAAAAAAAAAAAA六\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\n~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~\n\nAAAAAAAAAAAA⓪一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\n~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~\n\nAAAAAAAAAAAA⓪一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBEBBGBAKLABB\n~~~~~~~~~~~~~~\n\nAAAAAAAAAAAA⓪六\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBEBBGBAKLABB\nABBFBBBBHIIJBB\n\nAAAAAAAAAAAA①一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBYBBGBAKLABB\nABBZBBBBHIIJBB\n\nAAAAAAAAAAAAA一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nA1B0BBGBAKLABB\nA2B0BBBBHIIJBB\n\nAAAAAAAAAAAAA六\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\n\n(tutorial)\n###@######\n#.-......G\n52-......#\n#\\---%D$-6\n#.L.$..#.#\n#...L###.#\n#...-....#\n##########\n\n(1)\n##########Ⅰ\n@....#....#\n#/..U--...#\n51U--%-$D-6\n#...---...#\n#.........G\n###########\n\n(2)\n##################Ⅱ\n51----------------6\n#/...L-%$%$%--....#\n@....---------....G\n#....-#######-....#\n#..-----###-----..#\n#..-----###-----..#\n#..-###-###-###-..#\n#.---#---#---#---.#\n#.---#---#---#---.#\n#.L.-.R.-.-.-.L.R.#\n###################\n\n(3)\n################Ⅲ\n#...$.....-----.#\n#...-#U%---###-.#\n#...-#-$#---#--.#\n#...-#-%-------.#\n#...L#......---.G\n#\\..-#---#####$.#\n51DU%--$%-----$$6\n#/..-#---#####$.#\n@...L#......---.#\n#...-#-%-------.#\n#...-#-$#---#--.#\n#...-#D%---###-.#\n#...$.....-----.#\n#################\n\n(4)\n#############Ⅳ\n#..L--..L--..#\n#.##$#..#$##.#\n#.#---..---#.#\n#..-%-$$-%-..#\n@..-%-..-%-..G\n#/.-%-..-%-..#\n51U---#U-----6\n##############\n\n(5)\n############Ⅴ\n#...L...R...#\n@...-...-...#\n#/..-...-...#\n51U-%---$--U#\n#...-...-...#\n#...-...-...#\n#...-...-...#\n#D--$-U-%---#\n#...L...-...#\n#...-...-...#\n#...R...-...#\n########8#G##\n\n\n(ending cutscene - clocktower base)\n#########7#@#\n#.......\\4..#\n#.......#-..#\n#..Ⓐ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######G#8###\n\n#########7#.一\n#......@/3..④\n#.......#-..#\n#..Ⓒ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######G#8###\n\n#########7#.一\n#......@/3..④\n#.......#-..#\n#..Ⓓ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######.#8###\n\n#########7#.一\n#......@/3..④\n#.......#-..#\n#..Ⓔ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######.#8###\n\n#########7#.一\n#......@/3..④\n#.......#-..#\n#..Ⓓ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######.#8###\n\n\n(ending cutscene - town)\nAAAAAAAAAAAA④一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA④一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA④一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA③一\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA③一\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA③六\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAAA一\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nA1B0BBGBAKLABB\nA2B0BBBBHIIJBB\n\nAAAAAAAAAAAAA一\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBYBBGBAKLABB\nABBZBBBBHIIJBB\n\nAAAAAAAAAAAA②六\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBEBBGBAKLABB\nABBFBBBBHIIJBB\n\n",[3,3,0,1,1,0,0,1,0,3,0,1,1,0,3,3,1,3,2,2,3,3],"background wall:0,0,0,0,0,0,0,background watersource waterwheelhorizwet:1,0,background surface:2,0,0,0,0,0,0,2,\n2,2,2,2,background surface switchon:3,background ditch gatevertopenwet:4,background surface switchoff:5,2,2,2,2,2,0,0,2,2,2,\n2,2,2,background ditch ladderdown water:6,background ladderdowntop surface:7,2,2,2,2,2,0,0,2,2,2,2,background ladderlefttop surface:8,\nbackground ladderuptop surface:9,background ditch ladderup water:10,2,8,2,2,2,2,0,0,background cratesurface surface:11,background ditch water:12,12,12,background ditch ladderleft water:13,12,background ditch playerdrowned water:14,\nbackground block ditch:15,background ditch ladderleft:16,background ditch:17,17,17,background crateditch ditch:18,0,0,2,0,0,0,0,0,12,0,0,\n0,0,0,2,0,0,9,background ditch ladderup:19,17,17,2,12,12,12,2,17,17,\nbackground ditch ladderdown:20,7,0,0,2,15,18,15,2,12,11,12,2,15,18,15,2,\n0,0,2,17,0,17,2,12,15,12,2,17,0,17,2,0,0,\n2,17,17,17,2,0,17,0,2,17,17,17,2,0,0,17,17,\n17,17,2,0,17,0,2,17,17,17,17,0,0,17,0,17,17,\n2,0,17,0,2,17,17,0,17,0,0,17,0,0,17,17,0,\n17,0,17,17,0,0,17,0,0,17,0,17,17,17,0,17,0,\n17,17,17,0,17,0,0,17,17,17,17,17,18,18,18,17,17,\n17,17,17,0,0,2,2,2,2,2,2,18,2,2,2,2,2,\n2,0,background romannumeral3 wall:21,0,0,0,0,background doorclosed goal surface:22,0,background waterwheelhorizdry:23,0,0,0,0,0,0,0,\n",10,"1627770256142.56"] + ["(version 1.0)\ntitle Maera Public Works\nauthor CHz\nhomepage quiteajolt.com\n\nbackground_color DarkBlue\nrun_rules_on_level_start\nagain_interval 0.25\n\n\n========\nOBJECTS\n========\n\nBackground \nBlack\n\nSurface\n#DDDDDD\n\nWall \n#222222\n\nRomanNumeral1\n#FF0000\n.....\n..0..\n..0..\n..0..\n.....\n\nRomanNumeral2\n#FF0000\n.....\n.0.0.\n.0.0.\n.0.0.\n.....\n\nRomanNumeral3\n#FF0000\n.....\n0.0.0\n0.0.0\n0.0.0\n.....\n\nRomanNumeral4\n#FF0000\n.....\n0.0.0\n0.0.0\n0..0.\n.....\n\nRomanNumeral5\n#FF0000\n.....\n.0.0.\n.0.0.\n..0..\n.....\n\n\nWaterWheelHorizWet\n#555500 #777700 #0080FF\n22022\n00000\n01010\n00000\n22022\n\nWaterWheelHorizDry\n#555500 #777700 #999999\n22022\n00000\n01010\n00000\n22022\n\nWaterWheelVertWet\n#555500 #777700 #0080FF\n20002\n20102\n00000\n20102\n20002\n\nWaterWheelVertDry\n#555500 #777700 #999999\n20002\n20102\n00000\n20102\n20002\n\nWaterSource\nTransparent\n\n\nDitch\n#999999\n\nWater\n#0080FF\n\nSwitchOn\n#222222 #999999\n...1.\n...1.\n..1..\n.000.\n.....\n\nSwitchOff\n#222222 #999999\n.1...\n.1...\n..1..\n.000.\n.....\n\nSwitchToggleToken\nTransparent\n\n\nGateVertOpen\n#444444\n.000.\n.....\n.....\n.....\n.000.\n\nGateVertOpenWet\n#444444 #0080FF\n10001\n11111\n11111\n11111\n10001\n\nGateVertClosed\n#444444\n.000.\n.000.\n.000.\n.000.\n.000.\n\nGateVertClosedLeft\n#444444 #0080FF\n1000.\n1000.\n1000.\n1000.\n1000.\n\nGateVertClosedRight\n#444444 #0080FF\n.0001\n.0001\n.0001\n.0001\n.0001\n\nGateHorizOpen\n#444444\n.....\n0...0\n0...0\n0...0\n.....\n\nGateHorizOpenWet\n#444444 #0080FF\n11111\n01110\n01110\n01110\n11111\n\nGateHorizClosed\n#444444\n.....\n00000\n00000\n00000\n.....\n\nGateHorizClosedUp\n#444444 #0080FF\n11111\n00000\n00000\n00000\n.....\n\nGateHorizClosedDown\n#444444 #0080FF\n.....\n00000\n00000\n00000\n11111\n\n\nCrateDitch\n#F0B030 #D06000\n.....\n.111.\n.101.\n.111.\n.....\n\nCrateSurface\n#F0E060 #F08000 #0080FF\n21112\n10001\n10001\n10001\n21112\n\nBlock\n#555555 #222222\n11111\n10001\n10001\n10001\n11111\n\nBlockSurface\n#555555 #222222\n11111\n10001\n10001\n10001\n11111\n\n\nLadderUpTop\nBrown\n.....\n.....\n.....\n.....\n.000.\n\nLadderUp\nBrown\n..0..\n..0..\n..0..\n..0..\n.....\n\nLadderDown\nBrown\n.....\n..0..\n..0..\n..0..\n..0..\n\nLadderDownTop\nBrown\n.000.\n.....\n.....\n.....\n.....\n\nLadderLeft\nBrown\n.....\n.....\n0000.\n.....\n.....\n\nLadderLeftTop\nBrown\n.....\n....0\n....0\n....0\n.....\n\nLadderRight\nBrown\n.....\n.....\n.0000\n.....\n.....\n\nLadderRightTop\nBrown\n.....\n0....\n0....\n0....\n.....\n\n\nPlayerSurface\n#009020\n..0..\n.000.\n00000\n.000.\n..0..\n\nPlayerDitch\n#007010\n.....\n..0..\n.000.\n..0..\n.....\n\nPlayerDrowned\nDarkBrown\n.....\n..0..\n.000.\n..0..\n.....\n\n\nGoal\nTransparent\n\nDoorClosed\n#444444\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n\n\nTimer9\nTransparent\n\nTimer8\nTransparent\n\nTimer7\nTransparent\n\nTimer6\nTransparent\n\nTimer5\nTransparent\n\nTimer4\nTransparent\n\nTimer3\nTransparent\n\nTimer2\nTransparent\n\nTimer1\nTransparent\n\nTimer0\nTransparent\n\n\nBase1Token\nTransparent\n\nBase2Token\nTransparent\n\nBase3Token\nTransparent\n\nBase4Token\nTransparent\n\nBase5Token\nTransparent\n\nFakeSwitchOff\n#222222 #999999\n.1...\n.1...\n..1..\n.000.\n.....\n\nFakeSwitchOn\n#222222 #999999\n...1.\n...1.\n..1..\n.000.\n.....\n\nFakeWaterWheelVertWet\n#555500 #777700 #0080FF\n20002\n20102\n00000\n20102\n20002\n\nFakeGateHorizOpenWet\n#444444 #0080FF\n11111\n01110\n01110\n01110\n11111\n\nFakeDoorClosed\n#444444\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n\nBaseWheel11\nDarkBrown\n.....\n.....\n...00\n..000\n..000\n\nBaseWheel21\nDarkBrown\n.....\n.....\n.....\n0...0\n00.00\n\nBaseWheel31\nDarkBrown\n.....\n.....\n..000\n00000\n00...\n\nBaseWheel41\nDarkBrown\n.000.\n.000.\n00000\n00000\n.000.\n\nBaseWheel51\nDarkBrown\n.....\n.....\n000..\n00000\n...00\n\nBaseWheel61\nDarkBrown\n.....\n.....\n.....\n0...0\n00.00\n\nBaseWheel71\nDarkBrown\n.....\n.....\n00...\n000..\n000..\n\nBaseWheel71Wet\nDarkBrown #0080FF\n11111\n11111\n00111\n00011\n00011\n\nBaseWheel12\nDarkBrown\n...00\n....0\n.....\n....0\n...00\n\nBaseWheel22\nDarkBrown\n00000\n0000.\n00000\n00000\n0.000\n\nBaseWheel32\nDarkBrown\n.....\n.....\n.....\n0....\n00...\n\nBaseWheel42\nDarkBrown\n.000.\n.000.\n.000.\n.000.\n.000.\n\nBaseWheel52\nDarkBrown\n.....\n.....\n.....\n....0\n...00\n\nBaseWheel62\nDarkBrown\n00000\n.0000\n00000\n00000\n000.0\n\nBaseWheel72\nDarkBrown\n00...\n0....\n.....\n0....\n00...\n\nBaseWheel72Wet\nDarkBrown #0080FF\n00111\n01111\n11111\n01111\n00111\n\nBaseWheel13\nDarkBrown\n...00\n...00\n..00.\n..00.\n..00.\n\nBaseWheel23\nDarkBrown\n...00\n....0\n.....\n.....\n.....\n\nBaseWheel33\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheel43\nDarkBrown\n00000\n00000\n.000.\n00000\n00000\n\nBaseWheel53\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheel63\nDarkBrown\n00...\n0....\n.....\n.....\n.....\n\nBaseWheel73\nDarkBrown\n00...\n00...\n.00..\n.00..\n.00..\n\nBaseWheel73Wet\nDarkBrown #0080FF\n00111\n00111\n.0011\n.0011\n.0011\n\nBaseWheel14\nDarkBrown\n..00.\n00000\n00000\n00000\n..00.\n\nBaseWheel24\nDarkBrown\n.....\n00000\n00000\n00000\n.....\n\nBaseWheel34\nDarkBrown\n00.00\n00000\n00000\n00000\n00.00\n\nBaseWheel44\nDarkBrown DarkGray\n00000\n01110\n01110\n01110\n00000\n\nBaseWheel54\nDarkBrown\n00.00\n00000\n00000\n00000\n00.00\n\nBaseWheel64\nDarkBrown\n.....\n00000\n00000\n00000\n.....\n\nBaseWheel74\nDarkBrown\n.00..\n00000\n00000\n00000\n.00..\n\nBaseWheel74Wet1\nDarkBrown #0080FF\n.0011\n00000\n00000\n00000\n.00..\n\nBaseWheel74Wet2\nDarkBrown #0080FF\n.0011\n00000\n00000\n00000\n.0011\n\nBaseWheel15\nDarkBrown\n..00.\n..00.\n..00.\n...00\n...00\n\nBaseWheel25\nDarkBrown\n.....\n.....\n.....\n....0\n...00\n\nBaseWheel35\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheel45\nDarkBrown\n00000\n00000\n.000.\n00000\n00000\n\nBaseWheel55\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheel65\nDarkBrown\n.....\n.....\n.....\n0....\n00...\n\nBaseWheel75\nDarkBrown\n.00..\n.00..\n.00..\n00...\n00...\n\nBaseWheel75Wet\nDarkBrown #0080FF\n.0011\n.0011\n.0011\n00111\n00111\n\nBaseWheel16\nDarkBrown\n...00\n....0\n.....\n....0\n...00\n\nBaseWheel26\nDarkBrown\n0.000\n00000\n00000\n0000.\n00000\n\nBaseWheel36\nDarkBrown\n00...\n0....\n.....\n.....\n.....\n\nBaseWheel46\nDarkBrown\n.000.\n.000.\n.000.\n.000.\n.000.\n\nBaseWheel56\nDarkBrown\n...00\n....0\n.....\n.....\n.....\n\nBaseWheel66\nDarkBrown\n000.0\n00000\n00000\n.0000\n00000\n\nBaseWheel76\nDarkBrown\n00...\n0....\n.....\n0....\n00...\n\nBaseWheel76Wet\nDarkBrown #0080FF\n00111\n01111\n11111\n01111\n00111\n\nBaseWheel17\nDarkBrown\n..000\n..000\n...00\n.....\n.....\n\nBaseWheel27\nDarkBrown\n00.00\n0...0\n.....\n.....\n.....\n\nBaseWheel37\nDarkBrown\n00...\n00000\n..000\n.....\n.....\n\nBaseWheel47\nDarkBrown\n.000.\n00000\n00000\n.000.\n.000.\n\nBaseWheel57\nDarkBrown\n...00\n00000\n000..\n.....\n.....\n\nBaseWheel67\nDarkBrown\n00.00\n0...0\n.....\n.....\n.....\n\nBaseWheel77\nDarkBrown\n000..\n000..\n00...\n.....\n.....\n\nBaseWheel77Wet\nDarkBrown #0080FF\n00011\n00011\n00111\n11111\n11111\n\nBaseWheelT11\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT21\nDarkBrown\n..000\n...00\n...00\n...00\n...00\n\nBaseWheelT31\nDarkBrown\n.....\n0....\n00000\n00000\n000..\n\nBaseWheelT41\nDarkBrown\n.....\n.....\n00000\n00000\n.....\n\nBaseWheelT51\nDarkBrown\n.....\n....0\n00000\n00000\n..000\n\nBaseWheelT61\nDarkBrown\n000..\n00...\n00...\n00...\n00...\n\nBaseWheelT71\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT71Wet\nDarkBrown #0080FF\n11111\n11111\n11111\n11111\n11111\n\nBaseWheelT12\nDarkBrown\n.....\n.....\n0...0\n00000\n00000\n\nBaseWheelT22\nDarkBrown\n..000\n.000.\n00...\n00...\n0....\n\nBaseWheelT32\nDarkBrown\n000..\n0000.\n.000.\n.0000\n..000\n\nBaseWheelT42\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT52\nDarkBrown\n..000\n.0000\n.000.\n0000.\n000..\n\nBaseWheelT62\nDarkBrown\n000..\n.000.\n...00\n...00\n....0\n\nBaseWheelT72\nDarkBrown\n.....\n.....\n....0\n00000\n00000\n\nBaseWheelT72Wet\nDarkBrown #0080FF\n11111\n11111\n11110\n00000\n00000\n\nBaseWheelT13\nDarkBrown\n.0000\n..000\n..000\n..00.\n..00.\n\nBaseWheelT23\nDarkBrown\n00...\n0000.\n00000\n.0000\n...00\n\nBaseWheelT33\nDarkBrown\n..000\n..000\n00000\n000.0\n00000\n\nBaseWheelT43\nDarkBrown\n00000\n00000\n00.00\n00.00\n00000\n\nBaseWheelT53\nDarkBrown\n000..\n000..\n00000\n0.000\n00000\n\nBaseWheelT63\nDarkBrown\n...00\n.0000\n00000\n0000.\n00...\n\nBaseWheelT73\nDarkBrown\n0000.\n000..\n000..\n.00..\n.00..\n\nBaseWheelT73Wet\nDarkBrown #0080FF\n00001\n00011\n00011\n.0011\n.0011\n\nBaseWheelT14\nDarkBrown\n..00.\n..00.\n..00.\n..00.\n..00.\n\nBaseWheelT24\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT34\nDarkBrown\n00000\n00000\n00..0\n00000\n00000\n\nBaseWheelT44\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheelT54\nDarkBrown\n00000\n00000\n0..00\n00000\n00000\n\nBaseWheelT64\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT74\nDarkBrown\n.00..\n.00..\n.00..\n.00..\n.00..\n\nBaseWheelT74Wet\nDarkBrown #0080FF\n.0011\n.0011\n.0011\n.0011\n.0011\n\nBaseWheelT15\nDarkBrown\n..00.\n..00.\n..000\n..000\n.0000\n\nBaseWheelT25\nDarkBrown\n...00\n.0000\n00000\n0000.\n00...\n\nBaseWheelT35\nDarkBrown\n00000\n000.0\n00000\n..000\n..000\n\nBaseWheelT45\nDarkBrown\n00000\n00.00\n00.00\n00000\n00000\n\nBaseWheelT55\nDarkBrown\n00000\n0.000\n00000\n00...\n00...\n\nBaseWheelT65\nDarkBrown\n00...\n0000.\n00000\n.0000\n...00\n\nBaseWheelT75\nDarkBrown\n.00..\n.00..\n000..\n000..\n0000.\n\nBaseWheelT75Wet\nDarkBrown #0080FF\n.0011\n.0011\n00011\n00011\n00001\n\nBaseWheelT16\nDarkBrown\n00000\n00000\n0....\n.....\n.....\n\nBaseWheelT26\nDarkBrown\n0....\n00...\n00...\n.000.\n..000\n\nBaseWheelT36\nDarkBrown\n..000\n.0000\n.000.\n0000.\n000..\n\nBaseWheelT46\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT56\nDarkBrown\n000..\n0000.\n.000.\n.0000\n..000\n\nBaseWheelT66\nDarkBrown\n....0\n...00\n...00\n.000.\n00...\n\nBaseWheelT76\nDarkBrown\n00000\n00000\n....0\n.....\n.....\n\nBaseWheelT76Wet\nDarkBrown #0080FF\n00000\n00000\n11110\n11111\n11111\n\nBaseWheelT17\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT27\nDarkBrown\n...00\n...00\n...00\n...00\n..000\n\nBaseWheelT37\nDarkBrown\n000..\n00000\n00000\n0....\n.....\n\nBaseWheelT47\nDarkBrown\n.....\n00000\n00000\n.....\n.....\n\nBaseWheelT57\nDarkBrown\n..000\n00000\n00000\n....0\n.....\n\nBaseWheelT67\nDarkBrown\n00...\n00...\n00...\n00...\n000..\n\nBaseWheelT77\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT77Wet\nDarkBrown #0080FF\n11111\n11111\n11111\n11111\n11111\n\n\n\n\n\nCutsceneBackground\nGreen\n\nHouse\nDarkBrown\n\nHouseRoofLeft\nDarkBrown\n.....\n....0\n...00\n..000\n.0000\n\nHouseRoofRight\nDarkBrown\n.....\n0....\n00...\n000..\n0000.\n\nWindow\nLightBlue\n\nDoorClosedTop\nDarkBrown #383020\n11111\n10001\n10001\n10001\n10001\n\nDoorClosedBottom\nDarkBrown #383020\n10001\n10001\n10001\n10001\n10001\n\nRoadLeft\n#E0D010\n....0\n...00\n..000\n.0000\n00000\n\nRoad\n#E0D010\n\nRoadRight\n#E0D010\n.....\n0....\n00...\n000..\n0000.\n\nClockTowerLeft\n#252525\n\nClockTowerRight\n#252525\n0000.\n0000.\n0000.\n0000.\n0000.\n\nClock11\n#252525 White\n.....\n....0\n...00\n..000\n..001\n\nClock21\n#252525 White\n00000\n00000\n01111\n11101\n11101\n\nClock21b\n#252525 White\n00000\n00000\n01111\n11110\n11110\n\nClock31\n#252525 White\n0000.\n00000\n11100\n11110\n11111\n\nClock41\n#252525 White\n.....\n.....\n0....\n00...\n00...\n\nClock12\n#252525 White\n..001\n..001\n..001\n..001\n..001\n\nClock22\n#252525 White\n11110\n11110\n11110\n11111\n11111\n\nClock32\n#252525 White\n11111\n11111\n00011\n11111\n11111\n\nClock42\n#252525 White\n00...\n00...\n00...\n00...\n00...\n\nClock13\n#252525 White\n..001\n..000\n...00\n....0\n.....\n\nClock23\n#252525 White\n11111\n11111\n01111\n00000\n00000\n\nClock33\n#252525 White\n11111\n11110\n11100\n00000\n0000.\n\nClock43\n#252525 White\n00...\n00...\n0....\n.....\n.....\n\nDoorOpen\nBlack\n\nCutsceneWater\n#0080FF\n\nPlayerHead\n#009020 White\n..0..\n.000.\n00000\n.000.\n.101.\n\nPlayerBody\n#009020 White\n.111.\n.111.\n.111.\n.1.1.\n.1.1.\n\n\nSoundTrigger0\nTransparent\n\nSoundTrigger1\nTransparent\n\nSoundTrigger2\nTransparent\n\nSoundTrigger3\nTransparent\n\nSoundTrigger4\nTransparent\n\n\n=======\nLEGEND\n=======\n\n! = Background\n\n. = Surface\n# = Wall\n\nⅠ = Wall AND RomanNumeral1\nⅡ = Wall AND RomanNumeral2\nⅢ = Wall AND RomanNumeral3\nⅣ = Wall AND RomanNumeral4\nⅤ = Wall AND RomanNumeral5\nRomanNumeral = RomanNumeral1 OR RomanNumeral2 OR RomanNumeral3 OR RomanNumeral4 OR RomanNumeral5\n\n5 = WaterWheelHorizWet AND WaterSource\n6 = WaterWheelHorizDry\n7 = WaterWheelVertWet AND WaterSource\n8 = WaterWheelVertDry\nWaterWheel = WaterWheelHorizWet OR WaterWheelHorizDry OR WaterWheelVertWet OR WaterWheelVertDry OR FakeWaterWheelVertWet\nWaterPropagator = Water OR CrateSurface OR WaterSource OR GateVertOpenWet OR GateHorizOpenWet\n\n- = Ditch\n1 = GateVertOpen AND Ditch\n2 = GateVertClosed AND Ditch\n3 = GateHorizOpen AND Ditch\n4 = GateHorizClosed AND Ditch\n\n$ = CrateDitch AND Ditch\nCrate = CrateDitch OR CrateSurface\n% = Block AND Ditch\n\nPushable = CrateDitch OR Block\n\n/ = SwitchOn AND Surface\n\\ = SwitchOff AND Surface\nSwitch = SwitchOn OR SwitchOff OR FakeSwitchOn OR FakeSwitchOff\n\nU = LadderUp AND Ditch\nD = LadderDown AND Ditch\nL = LadderLeft AND Ditch\nR = LadderRight AND Ditch\nLadder = LadderUp OR LadderDown OR LadderLeft OR LadderRight\n\nGate = GateVertOpen OR GateVertOpenWet OR GateVertClosed OR GateVertClosedLeft OR GateVertClosedRight OR GateHorizOpen OR GateHorizOpenWet OR GateHorizClosed OR GateHorizClosedUp OR GateHorizClosedDown OR FakeGateHorizOpenWet\n\n@ = PlayerSurface AND Surface\nPlayer = PlayerSurface OR PlayerDitch\n\nG = Goal AND Surface\n\n一 = Timer1 AND CutsceneBackground\n二 = Timer2 AND CutsceneBackground\n三 = Timer3 AND CutsceneBackground\n四 = Timer4 AND CutsceneBackground\n五 = Timer5 AND CutsceneBackground\n六 = Timer6 AND CutsceneBackground\n七 = Timer7 AND CutsceneBackground\n八 = Timer8 AND CutsceneBackground\n九 = Timer9 AND CutsceneBackground\nTimer = Timer1 OR Timer2 OR Timer3 OR Timer4 OR Timer5 OR Timer6 OR Timer7 OR Timer8 OR Timer9 OR Timer0\n\nⒶ = BaseWheel11 AND Base1Token AND Ditch\nⒷ = BaseWheel11 AND Base2Token AND Ditch\nⒸ = BaseWheelT11 AND Base3Token AND Ditch\nⒹ = BaseWheel11 AND Base4Token AND Ditch\nⒺ = BaseWheelT11 AND Base5Token AND Ditch\nBaseToken = Base1Token OR Base2Token OR Base3Token OR Base4Token OR Base5Token\nBaseWheel = BaseWheel11 OR BaseWheel21 OR BaseWheel31 OR BaseWheel41 OR BaseWheel51 OR BaseWheel61 OR BaseWheel71 OR BaseWheel12 OR BaseWheel22 OR BaseWheel32 OR BaseWheel42 OR BaseWheel52 OR BaseWheel62 OR BaseWheel72 OR BaseWheel13 OR BaseWheel23 OR BaseWheel33 OR BaseWheel43 OR BaseWheel53 OR BaseWheel63 OR BaseWheel73 OR BaseWheel14 OR BaseWheel24 OR BaseWheel34 OR BaseWheel44 OR BaseWheel54 OR BaseWheel64 OR BaseWheel74 OR BaseWheel15 OR BaseWheel25 OR BaseWheel35 OR BaseWheel45 OR BaseWheel55 OR BaseWheel65 OR BaseWheel75 OR BaseWheel16 OR BaseWheel26 OR BaseWheel36 OR BaseWheel46 OR BaseWheel56 OR BaseWheel66 OR BaseWheel76 OR BaseWheel17 OR BaseWheel27 OR BaseWheel37 OR BaseWheel47 OR BaseWheel57 OR BaseWheel67 OR BaseWheel77 OR BaseWheel71Wet OR BaseWheel72Wet OR BaseWheel73Wet OR BaseWheel74Wet1 OR BaseWheel74Wet2 OR BaseWheel75Wet OR BaseWheel76Wet OR BaseWheel77Wet OR BaseWheelT11 OR BaseWheelT21 OR BaseWheelT31 OR BaseWheelT41 OR BaseWheelT51 OR BaseWheelT61 OR BaseWheelT71 OR BaseWheelT12 OR BaseWheelT22 OR BaseWheelT32 OR BaseWheelT42 OR BaseWheelT52 OR BaseWheelT62 OR BaseWheelT72 OR BaseWheelT13 OR BaseWheelT23 OR BaseWheelT33 OR BaseWheelT43 OR BaseWheelT53 OR BaseWheelT63 OR BaseWheelT73 OR BaseWheelT14 OR BaseWheelT24 OR BaseWheelT34 OR BaseWheelT44 OR BaseWheelT54 OR BaseWheelT64 OR BaseWheelT74 OR BaseWheelT15 OR BaseWheelT25 OR BaseWheelT35 OR BaseWheelT45 OR BaseWheelT55 OR BaseWheelT65 OR BaseWheelT75 OR BaseWheelT16 OR BaseWheelT26 OR BaseWheelT36 OR BaseWheelT46 OR BaseWheelT56 OR BaseWheelT66 OR BaseWheelT76 OR BaseWheelT17 OR BaseWheelT27 OR BaseWheelT37 OR BaseWheelT47 OR BaseWheelT57 OR BaseWheelT67 OR BaseWheelT77 OR BaseWheelT71Wet OR BaseWheelT72Wet OR BaseWheelT73Wet OR BaseWheelT74Wet OR BaseWheelT75Wet OR BaseWheelT76Wet OR BaseWheelT77Wet\n\nA = CutsceneBackground\nB = House AND CutsceneBackground\nC = HouseRoofLeft AND CutsceneBackground\nD = HouseRoofRight AND CutsceneBackground\nE = DoorClosedTop AND CutsceneBackground\nF = DoorClosedBottom AND CutsceneBackground\nG = Window AND CutsceneBackground\nH = RoadLeft AND CutsceneBackground\nI = Road AND CutsceneBackground\nJ = RoadRight AND CutsceneBackground\nK = ClockTowerLeft AND CutsceneBackground\nL = ClockTowerRight AND CutsceneBackground\nM = Clock11 AND CutsceneBackground\nN = Clock21 AND CutsceneBackground\nO = Clock31 AND CutsceneBackground\nP = Clock41 AND CutsceneBackground\nQ = Clock12 AND CutsceneBackground\nR = Clock22 AND CutsceneBackground\nS = Clock32 AND CutsceneBackground\nT = Clock42 AND CutsceneBackground\nU = Clock13 AND CutsceneBackground\nV = Clock23 AND CutsceneBackground\nW = Clock33 AND CutsceneBackground\nX = Clock43 AND CutsceneBackground\nY = DoorOpen AND PlayerHead AND CutsceneBackground\nZ = DoorOpen AND PlayerBody AND CutsceneBackground\n0 = DoorOpen AND CutsceneBackground\n1 = House AND PlayerHead AND CutsceneBackground\n2 = House AND PlayerBody AND CutsceneBackground\n3 = Clock21b AND CutsceneBackground\n~ = CutsceneWater AND CutsceneBackground\n\n⓪ = SoundTrigger0 AND CutsceneBackground\n① = SoundTrigger1 AND CutsceneBackground\n② = SoundTrigger2 AND CutsceneBackground\n③ = SoundTrigger3 AND CutsceneBackground\n④ = SoundTrigger4 AND CutsceneBackground\nSoundTrigger = SoundTrigger0 OR SoundTrigger1 OR SoundTrigger2 OR SoundTrigger3 OR SoundTrigger4\n\n=======\nSOUNDS\n=======\n\nPlayerSurface create 48266305 (climb up)\nPlayerDitch create 41817501 (climb down)\n\n(water movement)\nSwitchOn create 36552908\nSwitchOff create 36552908\nSoundTrigger0 destroy 36552908\nsfx1 36552908\n\nPlayerDrowned create 36552908 (play water movement too)\nPlayerDrowned create 66299108 (u ded)\n\nSoundTrigger1 destroy 56950107 (open door)\nSoundTrigger2 destroy 73601104 (close door)\n\nSoundTrigger3 destroy 20889900 (chime)\n\nSoundTrigger4 destroy 25204707 (wheel click)\n\nsfx0 9950900 (finish a puzzle level)\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nCutsceneBackground\nSurface, Ditch\nLadder\nLadderUpTop (tops all on separate layers so more than one can be on one tile)\nLadderDownTop\nLadderLeftTop\nLadderRightTop\nCrateSurface, BlockSurface\nPlayer, Wall, Water, Gate, Switch, CrateDitch, Block, WaterWheel, DoorClosed, FakeDoorClosed, BaseWheel\nGoal\nSwitchToggleToken, BaseToken\nWaterSource\nTimer, RomanNumeral, PlayerDrowned\nHouse, HouseRoofLeft, HouseRoofRight, DoorClosedTop, DoorClosedBottom, Window, RoadLeft, Road, RoadRight, ClockTowerLeft, ClockTowerRight, Clock11, Clock21, Clock21b, Clock31, Clock41, Clock12, Clock22, Clock32, Clock42, Clock13, Clock23, Clock33, Clock43, DoorOpen, CutsceneWater\nPlayerHead, PlayerBody\nSoundTrigger\n\n\n======\nRULES\n======\n\n(================\nLEVEL GENERATION\n================)\n\n(Generate the tops of the ladders.)\nDOWN [ | LadderUp ] -> [ LadderUpTop | LadderUp ]\nDOWN [ LadderDown | ] -> [ LadderDown | LadderDownTop ]\nRIGHT [ | LadderLeft ] -> [ LadderLeftTop | LadderLeft ]\nRIGHT [ LadderRight | ] -> [ LadderRight | LadderRightTop ]\n\n\n(========\nMOVEMENT\n========)\n\n(Convert blocks to and from fake surfaces when the player walks on and off them, because layers.)\n[ > Player Surface | Block Ditch ] -> [ > Player Surface | BlockSurface Surface ]\nLATE [ BlockSurface Surface no Player ] -> [ Block Ditch ]\n\n(Shove crates and blocks. They can never move to the surface.)\n[ > PlayerDitch | Pushable ] -> [ > PlayerDitch | > Pushable ]\n[ > Pushable | Surface ] -> [ Pushable | Surface ]\n\n(Cancel movement if the player walks into the void.)\n[ > Player | no Surface no Ditch ] -> [ Player | ]\n\n(Cancel movement if a player on the surface tries to move into a ditch without using a ladder.)\nDOWN [ > Player Surface | Ditch no LadderUp ] -> [ Player Surface | Ditch ]\nUP [ > Player Surface | Ditch no LadderDown ] -> [ Player Surface | Ditch ]\nLEFT [ > Player Surface | Ditch no LadderRight ] -> [ Player Surface | Ditch ]\nRIGHT [ > Player Surface | Ditch no LadderLeft ] -> [ Player Surface | Ditch ]\n\n(Cancel movement if a player in a ditch tries to move to the surface without using a ladder.)\nDOWN [ > Player Ditch no LadderDown | Surface ] -> [ Player Ditch | Surface ]\nUP [ > Player Ditch no LadderUp | Surface ] -> [ Player Ditch | Surface ]\nLEFT [ > Player Ditch no LadderLeft | Surface ] -> [ Player Ditch | Surface ]\nRIGHT [ > Player Ditch no LadderRight | Surface ] -> [ Player Ditch | Surface ]\n\n(Change the player sprite based on their height.)\nLATE [ PlayerSurface Ditch ] -> [ PlayerDitch Ditch ]\nLATE [ PlayerDitch Surface ] -> [ PlayerSurface Surface ]\n\n(Play a sound when the player finishes a puzzle level. Done like this so it doesn't happen on the cutscene levels.)\nLATE [ Player Goal ] -> sfx0\n\n\n(=============\nSPLISH SPLASH\n=============)\n\n(Get started by marking that we're toggling and clearing current water)\n[ > Player Surface | Switch ] -> [ > Player Surface | Switch SwitchToggleToken ]\n[ SwitchToggleToken ] [ Water ] -> [ SwitchToggleToken ] [ ]\n[ SwitchToggleToken ] [ GateVertOpenWet ] -> [ SwitchToggleToken ] [ GateVertOpen ]\n[ SwitchToggleToken ] [ GateVertClosedLeft ] -> [ SwitchToggleToken ] [ GateVertClosed ]\n[ SwitchToggleToken ] [ GateVertClosedRight ] -> [ SwitchToggleToken ] [ GateVertClosed ]\n[ SwitchToggleToken ] [ GateHorizOpenWet ] -> [ SwitchToggleToken ] [ GateHorizOpen ]\n[ SwitchToggleToken ] [ GateHorizClosedUp ] -> [ SwitchToggleToken ] [ GateHorizClosed ]\n[ SwitchToggleToken ] [ GateHorizClosedDown ] -> [ SwitchToggleToken ] [ GateHorizClosed ]\n[ SwitchToggleToken ] [ WaterWheelVertWet no WaterSource ] -> [ SwitchToggleToken ] [ WaterWheelVertDry ]\n[ SwitchToggleToken ] [ WaterWheelHorizWet no WaterSource ] -> [ SwitchToggleToken ] [ WaterWheelHorizDry ]\n[ SwitchToggleToken ] [ CrateSurface Surface ] -> [ SwitchToggleToken ] [ CrateDitch Ditch ]\n\n(Open the associated gate and send the water along.)\n[ SwitchOff SwitchToggleToken | GateVertClosed ] -> [ SwitchOff SwitchToggleToken | GateVertOpen ]\n[ SwitchOff SwitchToggleToken | GateHorizClosed ] -> [ SwitchOff SwitchToggleToken | GateHorizOpen ]\nstartloop\n\t(This water propagation is bad lmao, don't worry about it)\n\t(We do this LATE so we can propagate after a player moves a block.)\n\tLATE [ WaterPropagator | Ditch no Water no Gate no Crate no Block no Player ] -> [ WaterPropagator | Ditch Water ]\n LATE [ WaterPropagator | PlayerDitch ] -> [ WaterPropagator | PlayerDrowned ]\n\tLATE [ WaterPropagator | CrateDitch Ditch ] -> [ WaterPropagator | CrateSurface Surface ]\n LATE [ WaterPropagator | GateVertOpen ] -> [ WaterPropagator | GateVertOpenWet ]\n LATE RIGHT [ WaterPropagator | GateVertClosed ] -> [ WaterPropagator | GateVertClosedLeft ]\n LATE RIGHT [ GateVertClosed | WaterPropagator ] -> [ GateVertClosedRight | WaterPropagator ]\n LATE [ WaterPropagator | GateHorizOpen ] -> [ WaterPropagator | GateHorizOpenWet ]\n LATE DOWN [ WaterPropagator | GateHorizClosed ] -> [ WaterPropagator | GateHorizClosedUp ]\n LATE DOWN [ GateHorizClosed | WaterPropagator ] -> [ GateHorizClosedDown | WaterPropagator ]\nendloop\nLATE [ WaterPropagator | WaterWheelVertDry ] -> [ WaterPropagator | WaterWheelVertWet ]\nLATE [ WaterPropagator | WaterWheelHorizDry ] -> [ WaterPropagator | WaterWheelHorizWet ]\n[ SwitchOff SwitchToggleToken ] -> [ SwitchOn ]\n\n(Close the associated gate.)\n[ SwitchOn SwitchToggleToken | GateVertOpen ] -> [ SwitchOn SwitchToggleToken | GateVertClosed ]\n[ SwitchOn SwitchToggleToken | GateHorizOpen ] -> [ SwitchOn SwitchToggleToken | GateHorizClosed ]\n[ SwitchOn SwitchToggleToken ] -> [ SwitchOff ]\n\n(Open/close the door depending on whether the water wheel is powered.)\nLATE [ Goal DoorClosed ] -> [ Goal ]\nLATE [ WaterWheelVertDry ] [ Goal ] -> [ WaterWheelVertDry ] [ Goal DoorClosed ]\nLATE [ WaterWheelHorizDry ] [ Goal ] -> [ WaterWheelHorizDry ] [ Goal DoorClosed ]\n\n\n(=========\nCUTSCENES\n=========)\n\n(Wheel generation for the base levels - #1)\nRIGHT [ Base1Token ] [ BaseWheel11 | | | | | | ] -> [ Base1Token ] [ BaseWheel11 | BaseWheel21 | BaseWheel31 | BaseWheel41 | BaseWheel51 | BaseWheel61 | BaseWheel71 ]\nDOWN [ Base1Token ] [ BaseWheel11 | | | | | | ] -> [ Base1Token ] [ BaseWheel11 | BaseWheel12 | BaseWheel13 | BaseWheel14 | BaseWheel15 | BaseWheel16 | BaseWheel17 ]\nDOWN [ Base1Token ] [ BaseWheel21 | | | | | | ] -> [ Base1Token ] [ BaseWheel21 | BaseWheel22 | BaseWheel23 | BaseWheel24 | BaseWheel25 | BaseWheel26 | BaseWheel27 ]\nDOWN [ Base1Token ] [ BaseWheel31 | | | | | | ] -> [ Base1Token ] [ BaseWheel31 | BaseWheel32 | BaseWheel33 | BaseWheel34 | BaseWheel35 | BaseWheel36 | BaseWheel37 ]\nDOWN [ Base1Token ] [ BaseWheel41 | | | | | | ] -> [ Base1Token ] [ BaseWheel41 | BaseWheel42 | BaseWheel43 | BaseWheel44 | BaseWheel45 | BaseWheel46 | BaseWheel47 ]\nDOWN [ Base1Token ] [ BaseWheel51 | | | | | | ] -> [ Base1Token ] [ BaseWheel51 | BaseWheel52 | BaseWheel53 | BaseWheel54 | BaseWheel55 | BaseWheel56 | BaseWheel57 ]\nDOWN [ Base1Token ] [ BaseWheel61 | | | | | | ] -> [ Base1Token ] [ BaseWheel61 | BaseWheel62 | BaseWheel63 | BaseWheel64 | BaseWheel65 | BaseWheel66 | BaseWheel67 ]\nDOWN [ Base1Token ] [ BaseWheel71 | | | | | | ] -> [ Base1Token ] [ BaseWheel71 | BaseWheel72 | BaseWheel73 | BaseWheel74 | BaseWheel75 | BaseWheel76 | BaseWheel77 ]\n\n(Wheel generation for the base levels - #2)\nRIGHT [ Base2Token ] [ BaseWheel11 | | | | | | ] -> [ Base2Token ] [ BaseWheel11 | BaseWheel21 | BaseWheel31 | BaseWheel41 | BaseWheel51 | BaseWheel61 | BaseWheel71Wet ]\nDOWN [ Base2Token ] [ BaseWheel11 | | | | | | ] -> [ Base2Token ] [ BaseWheel11 | BaseWheel12 | BaseWheel13 | BaseWheel14 | BaseWheel15 | BaseWheel16 | BaseWheel17 ]\nDOWN [ Base2Token ] [ BaseWheel21 | | | | | | ] -> [ Base2Token ] [ BaseWheel21 | BaseWheel22 | BaseWheel23 | BaseWheel24 | BaseWheel25 | BaseWheel26 | BaseWheel27 ]\nDOWN [ Base2Token ] [ BaseWheel31 | | | | | | ] -> [ Base2Token ] [ BaseWheel31 | BaseWheel32 | BaseWheel33 | BaseWheel34 | BaseWheel35 | BaseWheel36 | BaseWheel37 ]\nDOWN [ Base2Token ] [ BaseWheel41 | | | | | | ] -> [ Base2Token ] [ BaseWheel41 | BaseWheel42 | BaseWheel43 | BaseWheel44 | BaseWheel45 | BaseWheel46 | BaseWheel47 ]\nDOWN [ Base2Token ] [ BaseWheel51 | | | | | | ] -> [ Base2Token ] [ BaseWheel51 | BaseWheel52 | BaseWheel53 | BaseWheel54 | BaseWheel55 | BaseWheel56 | BaseWheel57 ]\nDOWN [ Base2Token ] [ BaseWheel61 | | | | | | ] -> [ Base2Token ] [ BaseWheel61 | BaseWheel62 | BaseWheel63 | BaseWheel64 | BaseWheel65 | BaseWheel66 | BaseWheel67 ]\nDOWN [ Base2Token ] [ BaseWheel71Wet | | | | | | ] -> [ Base2Token ] [ BaseWheel71Wet | BaseWheel72Wet | BaseWheel73Wet | BaseWheel74Wet1 | BaseWheel75 | BaseWheel76 | BaseWheel77 ]\n\n(Wheel generation for the base levels - #3)\nRIGHT [ Base3Token ] [ BaseWheelT11 | | | | | | ] -> [ Base3Token ] [ BaseWheelT11 | BaseWheelT21 | BaseWheelT31 | BaseWheelT41 | BaseWheelT51 | BaseWheelT61 | BaseWheelT71Wet ]\nDOWN [ Base3Token ] [ BaseWheelT11 | | | | | | ] -> [ Base3Token ] [ BaseWheelT11 | BaseWheelT12 | BaseWheelT13 | BaseWheelT14 | BaseWheelT15 | BaseWheelT16 | BaseWheelT17 ]\nDOWN [ Base3Token ] [ BaseWheelT21 | | | | | | ] -> [ Base3Token ] [ BaseWheelT21 | BaseWheelT22 | BaseWheelT23 | BaseWheelT24 | BaseWheelT25 | BaseWheelT26 | BaseWheelT27 ]\nDOWN [ Base3Token ] [ BaseWheelT31 | | | | | | ] -> [ Base3Token ] [ BaseWheelT31 | BaseWheelT32 | BaseWheelT33 | BaseWheelT34 | BaseWheelT35 | BaseWheelT36 | BaseWheelT37 ]\nDOWN [ Base3Token ] [ BaseWheelT41 | | | | | | ] -> [ Base3Token ] [ BaseWheelT41 | BaseWheelT42 | BaseWheelT43 | BaseWheelT44 | BaseWheelT45 | BaseWheelT46 | BaseWheelT47 ]\nDOWN [ Base3Token ] [ BaseWheelT51 | | | | | | ] -> [ Base3Token ] [ BaseWheelT51 | BaseWheelT52 | BaseWheelT53 | BaseWheelT54 | BaseWheelT55 | BaseWheelT56 | BaseWheelT57 ]\nDOWN [ Base3Token ] [ BaseWheelT61 | | | | | | ] -> [ Base3Token ] [ BaseWheelT61 | BaseWheelT62 | BaseWheelT63 | BaseWheelT64 | BaseWheelT65 | BaseWheelT66 | BaseWheelT67 ]\nDOWN [ Base3Token ] [ BaseWheelT71Wet | | | | | | ] -> [ Base3Token ] [ BaseWheelT71Wet | BaseWheelT72Wet | BaseWheelT73Wet | BaseWheelT74Wet | BaseWheelT75Wet | BaseWheelT76 | BaseWheelT77 ]\n\n(Wheel generation for the base levels - #4)\nRIGHT [ Base4Token ] [ BaseWheel11 | | | | | | ] -> [ Base4Token ] [ BaseWheel11 | BaseWheel21 | BaseWheel31 | BaseWheel41 | BaseWheel51 | BaseWheel61 | BaseWheel71Wet ]\nDOWN [ Base4Token ] [ BaseWheel11 | | | | | | ] -> [ Base4Token ] [ BaseWheel11 | BaseWheel12 | BaseWheel13 | BaseWheel14 | BaseWheel15 | BaseWheel16 | BaseWheel17 ]\nDOWN [ Base4Token ] [ BaseWheel21 | | | | | | ] -> [ Base4Token ] [ BaseWheel21 | BaseWheel22 | BaseWheel23 | BaseWheel24 | BaseWheel25 | BaseWheel26 | BaseWheel27 ]\nDOWN [ Base4Token ] [ BaseWheel31 | | | | | | ] -> [ Base4Token ] [ BaseWheel31 | BaseWheel32 | BaseWheel33 | BaseWheel34 | BaseWheel35 | BaseWheel36 | BaseWheel37 ]\nDOWN [ Base4Token ] [ BaseWheel41 | | | | | | ] -> [ Base4Token ] [ BaseWheel41 | BaseWheel42 | BaseWheel43 | BaseWheel44 | BaseWheel45 | BaseWheel46 | BaseWheel47 ]\nDOWN [ Base4Token ] [ BaseWheel51 | | | | | | ] -> [ Base4Token ] [ BaseWheel51 | BaseWheel52 | BaseWheel53 | BaseWheel54 | BaseWheel55 | BaseWheel56 | BaseWheel57 ]\nDOWN [ Base4Token ] [ BaseWheel61 | | | | | | ] -> [ Base4Token ] [ BaseWheel61 | BaseWheel62 | BaseWheel63 | BaseWheel64 | BaseWheel65 | BaseWheel66 | BaseWheel67 ]\nDOWN [ Base4Token ] [ BaseWheel71Wet | | | | | | ] -> [ Base4Token ] [ BaseWheel71Wet | BaseWheel72Wet | BaseWheel73Wet | BaseWheel74Wet2 | BaseWheel75Wet | BaseWheel76Wet | BaseWheel77Wet ]\n\n(Wheel generation for the base levels - #5)\nRIGHT [ Base5Token ] [ BaseWheelT11 | | | | | | ] -> [ Base5Token ] [ BaseWheelT11 | BaseWheelT21 | BaseWheelT31 | BaseWheelT41 | BaseWheelT51 | BaseWheelT61 | BaseWheelT71Wet ]\nDOWN [ Base5Token ] [ BaseWheelT11 | | | | | | ] -> [ Base5Token ] [ BaseWheelT11 | BaseWheelT12 | BaseWheelT13 | BaseWheelT14 | BaseWheelT15 | BaseWheelT16 | BaseWheelT17 ]\nDOWN [ Base5Token ] [ BaseWheelT21 | | | | | | ] -> [ Base5Token ] [ BaseWheelT21 | BaseWheelT22 | BaseWheelT23 | BaseWheelT24 | BaseWheelT25 | BaseWheelT26 | BaseWheelT27 ]\nDOWN [ Base5Token ] [ BaseWheelT31 | | | | | | ] -> [ Base5Token ] [ BaseWheelT31 | BaseWheelT32 | BaseWheelT33 | BaseWheelT34 | BaseWheelT35 | BaseWheelT36 | BaseWheelT37 ]\nDOWN [ Base5Token ] [ BaseWheelT41 | | | | | | ] -> [ Base5Token ] [ BaseWheelT41 | BaseWheelT42 | BaseWheelT43 | BaseWheelT44 | BaseWheelT45 | BaseWheelT46 | BaseWheelT47 ]\nDOWN [ Base5Token ] [ BaseWheelT51 | | | | | | ] -> [ Base5Token ] [ BaseWheelT51 | BaseWheelT52 | BaseWheelT53 | BaseWheelT54 | BaseWheelT55 | BaseWheelT56 | BaseWheelT57 ]\nDOWN [ Base5Token ] [ BaseWheelT61 | | | | | | ] -> [ Base5Token ] [ BaseWheelT61 | BaseWheelT62 | BaseWheelT63 | BaseWheelT64 | BaseWheelT65 | BaseWheelT66 | BaseWheelT67 ]\nDOWN [ Base5Token ] [ BaseWheelT71Wet | | | | | | ] -> [ Base5Token ] [ BaseWheelT71Wet | BaseWheelT72Wet | BaseWheelT73Wet | BaseWheelT74Wet | BaseWheelT75Wet | BaseWheelT76Wet | BaseWheelT77Wet ]\n\n(Replace objects with fakes that don't do anything.)\n[ BaseToken ] [ CutsceneBackground ] -> [ BaseToken ] [ Wall ]\n[ BaseToken ] [ WaterWheelHorizWet WaterSource ] -> [ BaseToken ] [ FakeWaterWheelVertWet ]\n[ BaseToken ] [ SwitchOff ] -> [ BaseToken ] [ FakeSwitchOff ]\n[ BaseToken ] [ GateHorizOpen ] -> [ BaseToken ] [ FakeGateHorizOpenWet ]\n[ BaseToken ] [ Goal ] -> [ BaseToken ] [ FakeDoorClosed ]\n(Fill spaces with fake water in part 2 and beyond)\nDOWN [ BaseToken no Base1Token ] [ FakeGateHorizOpenWet | Ditch ] -> [ BaseToken ] [ FakeGateHorizOpenWet | Ditch CutsceneWater ]\n(Fill spaces with fake water in part 4 and beyond)\n[ BaseToken no Base1Token no Base2Token no Base3Token ] [ Ditch no BaseWheel ] -> [ BaseToken ] [ Ditch CutsceneWater ]\n[ BaseToken no Base1Token no Base2Token no Base3Token ] [ WaterWheelVertDry ] -> [ BaseToken ] [ FakeWaterWheelVertWet ]\n\n(Start autoplaying)\nRIGHT [ > Player | FakeSwitchOff ] -> [ Player | FakeSwitchOn Timer1 ] sfx1\nRIGHT [ FakeSwitchOn | GateHorizClosed ] -> [ FakeSwitchOn | FakeGateHorizOpenWet ]\nDOWN [ FakeSwitchOn ] [ FakeGateHorizOpenWet | | | | | ] -> [ FakeSwitchOn ] [ FakeGateHorizOpenWet | CutsceneWater | BaseWheel71Wet | BaseWheel72Wet | BaseWheel73Wet | BaseWheel74Wet1 ]\n\n[ BaseToken ] -> [ ]\n\n(Timer countdowns)\n[Timer0] -> win\n[Timer1] -> [Timer0] again\n[Timer2] -> [Timer1] again\n[Timer3] -> [Timer2] again\n[Timer4] -> [Timer3] again\n[Timer5] -> [Timer4] again\n[Timer6] -> [Timer5] again\n[Timer7] -> [Timer6] again\n[Timer8] -> [Timer7] again\n[Timer9] -> [Timer8] again\n\n[SoundTrigger] -> []\n\n\n==============\nWINCONDITIONS\n==============\n\nSome Player on Goal\n\n\n=======\nLEVELS\n=======\n\n(Opening cutscene)\nAAAAAAAAAAAAA六\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\n~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~\n\nAAAAAAAAAAAA⓪一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\n~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~\n\nAAAAAAAAAAAA⓪一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBEBBGBAKLABB\n~~~~~~~~~~~~~~\n\nAAAAAAAAAAAA⓪六\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBEBBGBAKLABB\nABBFBBBBHIIJBB\n\nAAAAAAAAAAAA①一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBYBBGBAKLABB\nABBZBBBBHIIJBB\n\nAAAAAAAAAAAAA一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nA1B0BBGBAKLABB\nA2B0BBBBHIIJBB\n\nAAAAAAAAAAAAA六\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\n\n(tutorial)\n###@######\n#.-......G\n52-......#\n#\\---%D$-6\n#.L.$..#.#\n#...L###.#\n#...-....#\n##########\n\n(1)\n##########Ⅰ\n@....#....#\n#/..U--...#\n51U--%-$D-6\n#...---...#\n#.........G\n###########\n\n(2)\n##################Ⅱ\n51----------------6\n#/...L-%$%$%--....#\n@....---------....G\n#....-#######-....#\n#..-----###-----..#\n#..-----###-----..#\n#..-###-###-###-..#\n#.---#---#---#---.#\n#.---#---#---#---.#\n#.L.-.R.-.-.-.L.R.#\n###################\n\n(3)\n################Ⅲ\n#...$.....-----.#\n#...-#U%---###-.#\n#...-#-$#---#--.#\n#...-#-%-------.#\n#...L#......---.G\n#\\..-#---#####$.#\n51DU%--$%-----$$6\n#/..-#---#####$.#\n@...L#......---.#\n#...-#-%-------.#\n#...-#-$#---#--.#\n#...-#D%---###-.#\n#...$.....-----.#\n#################\n\n(4)\n#############Ⅳ\n#..L--..L--..#\n#.##$#..#$##.#\n#.#---..---#.#\n#..-%-$$-%-..#\n@..-%-..-%-..G\n#/.-%-..-%-..#\n51U---#U-----6\n##############\n\n(5)\n############Ⅴ\n#...L...R...#\n@...-...-...#\n#/..-...-...#\n51U-%---$--U#\n#...-...-...#\n#...-...-...#\n#...-...-...#\n#D--$-U-%---#\n#...L...-...#\n#...-...-...#\n#...R...-...#\n########8#G##\n\n\n(ending cutscene - clocktower base)\n#########7#@#\n#.......\\4..#\n#.......#-..#\n#..Ⓐ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######G#8###\n\n#########7#.一\n#......@/3..④\n#.......#-..#\n#..Ⓒ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######G#8###\n\n#########7#.一\n#......@/3..④\n#.......#-..#\n#..Ⓓ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######.#8###\n\n#########7#.一\n#......@/3..④\n#.......#-..#\n#..Ⓔ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######.#8###\n\n#########7#.一\n#......@/3..④\n#.......#-..#\n#..Ⓓ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######.#8###\n\n\n(ending cutscene - town)\nAAAAAAAAAAAA④一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA④一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA④一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA③一\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA③一\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA③六\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAAA一\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nA1B0BBGBAKLABB\nA2B0BBBBHIIJBB\n\nAAAAAAAAAAAAA一\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBYBBGBAKLABB\nABBZBBBBHIIJBB\n\nAAAAAAAAAAAA②六\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBEBBGBAKLABB\nABBFBBBBHIIJBB\n\n", [3, 3, 0, 1, 1, 0, 0, 1, 0, 3, 0, 1, 1, 0, 3, 3, 1, 3, 2, 2, 3, 3], "background wall:0,0,0,0,0,0,0,background watersource waterwheelhorizwet:1,0,background surface:2,0,0,0,0,0,0,2,\n2,2,2,2,background surface switchon:3,background ditch gatevertopenwet:4,background surface switchoff:5,2,2,2,2,2,0,0,2,2,2,\n2,2,2,background ditch ladderdown water:6,background ladderdowntop surface:7,2,2,2,2,2,0,0,2,2,2,2,background ladderlefttop surface:8,\nbackground ladderuptop surface:9,background ditch ladderup water:10,2,8,2,2,2,2,0,0,background cratesurface surface:11,background ditch water:12,12,12,background ditch ladderleft water:13,12,background ditch playerdrowned water:14,\nbackground block ditch:15,background ditch ladderleft:16,background ditch:17,17,17,background crateditch ditch:18,0,0,2,0,0,0,0,0,12,0,0,\n0,0,0,2,0,0,9,background ditch ladderup:19,17,17,2,12,12,12,2,17,17,\nbackground ditch ladderdown:20,7,0,0,2,15,18,15,2,12,11,12,2,15,18,15,2,\n0,0,2,17,0,17,2,12,15,12,2,17,0,17,2,0,0,\n2,17,17,17,2,0,17,0,2,17,17,17,2,0,0,17,17,\n17,17,2,0,17,0,2,17,17,17,17,0,0,17,0,17,17,\n2,0,17,0,2,17,17,0,17,0,0,17,0,0,17,17,0,\n17,0,17,17,0,0,17,0,0,17,0,17,17,17,0,17,0,\n17,17,17,0,17,0,0,17,17,17,17,17,18,18,18,17,17,\n17,17,17,0,0,2,2,2,2,2,2,18,2,2,2,2,2,\n2,0,background romannumeral3 wall:21,0,0,0,0,background doorclosed goal surface:22,0,background waterwheelhorizdry:23,0,0,0,0,0,0,0,\n", 10, "1627770256142.56"] ], [ `gallery game: path lines`, - ["title Path lines\nauthor Rosden Shadow [Mark Signorelli]\nhomepage rosden.itch.io\nrun_rules_on_level_Start\n\nbackground_color #423D39\n\ntext_color #FFD9FC\n\n========\nOBJECTS\n========\n\nBackground\n#423D39 #5B4846\n00000\n01010\n00100\n01010\n00000\n(\n00101\n01110\n11011\n01111\n10110)\n(\n11101\n00101\n11111\n10100\n10111)\n\n\npathline\n#E0AAF2 #FFD9FC\n00000\n01010\n00100\n01010\n00000\n\nTarget\n #847A5C #E5C17E\n.....\n.010.\n.1.1.\n.010.\n.....\n\nWall\n#A87EE5 #E0AAF2 #705C84 #42393C\n20001\n20001\n22220\n23232\n32323\n\noverwall\n #A87EE5 #E0AAF2 #705C84 #42393C\n.....\n.....\n.....\n01111\n20001\n\n\nPlayerright\n#F3FFD9 #BCE57E #A87EE5 #705C84\n.000.\n11202\n11313\n11110\n.1.1.\n\nplayerleft\n#F3FFD9 #BCE57E #A87EE5 #705C84\n.000.\n20211\n31311\n01111\n.1.1.\n\nCrate2\n#82A17C #7EE58D #4F5B46 #394239 \n20011\n20001\n22001\n32223\n.333.\n\novercrate2\n#82A17C #7EE58D #4F5B46 #394239\n.....\n.....\n.....\n.....\n.111.\n\nCrate\n#E5C17E #F2F2AA #847A5C #5B5746\n20011\n20001\n22001\n32223\n.333.\n\novercrate\n#E5C17E #F2F2AA #847A5C #5B5746\n.....\n.....\n.....\n.....\n.111.\n\ncloner\n#E5C17E #DB7F55 #B32D2D #73342E\n.100.\n.210.\n.221.\n.332.\n.....\n\nswapcrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\nswapwall\nblack\n.....\n.....\n.....\n.....\n.....\n\nthefloor\n#423D39\n00000\n00000\n00000\n00000\n00000\n\nstopper\nblack\n.....\n.....\n.....\n.....\n.....\n\nshiftright\nblack\n.....\n.....\n.....\n.....\n.....\n\nshiftup\nblack\n.....\n.....\n.....\n.....\n.....\n\nshiftdown\nblack\n.....\n.....\n.....\n.....\n.....\n\nshiftleft\nblack\n.....\n.....\n.....\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background and stopper\n# = Wall\nP = Playerright\n* = Crate\n@ = Crate and Target\nO = Target\nc=cloner\n-=thefloor\n\nfeel=overwall or overcrate or overcrate2\npushable=crate or cloner or swapcrate or crate2\nwin=crate or wall\n\nplayer=playerright or playerleft\n\nshift=shiftright or shiftup or shiftdown or shiftleft\nmainlayer=player or wall or pushable or swapwall or thefloor\n=======\nSOUNDS\n=======\n\npushable MOVE 36772507\n\n\nsfx0 52836103\nsfx1 6257504\n================\nCOLLISIONLAYERS\n================\n\nBackground\npathline\nTarget\nshiftright\nshiftleft\nshiftup\nshiftdown\nPlayer, Wall, pushable,swapwall,thefloor\nstopper\nfeel\n\n======\nRULES\n======\n\n[feel]->[]\n[shift]->[]\n[stopper]->[]\n\n[Background no mainlayer] -> [background stopper]\n\n\n\n[crate]->[crate shiftright shiftleft shiftup shiftdown]\n\nright [shiftright| ]->[shiftright | shiftright]\n\nup [shiftup| ]->[shiftup | shiftup]\n\ndown [shiftdown| ]->[shiftdown | shiftdown]\n\nleft [shiftleft| ]->[shiftleft | shiftleft]\n\n[shift]->[shift pathline]\n[pathline stopper] -> [pathline]\n\n[ > Player | pushable ] -> [ > Player | > pushable ]\n\n([ > pushable | pushable ] -> [ > pushable | > pushable ])\n\n[> player | stopper] -> [ player | stopper]\n\n[ left Playerright] -> [ left playerleft]\n[ right Playerleft] -> [ right playerright]\n\n(-------------------)\nlate [shift]->[]\nlate [stopper]->[]\nlate [pathline]->[]\nlate [crate]->[crate shiftright shiftleft shiftup shiftdown]\n\nlate right [shiftright| ]->[shiftright | shiftright]\n\nlate up [shiftup| ]->[shiftup | shiftup]\n\nlate down [shiftdown| ]->[shiftdown | shiftdown]\n\nlate left [shiftleft| ]->[shiftleft | shiftleft]\n\nlate [shift]->[shift pathline]\nlate [pathline stopper] -> [pathline]\n\n(------------------)\n\nlate up [wall| ]-> [wall|overwall]\nlate up [crate| ]-> [crate|overcrate]\nlate up [crate2| ]-> [crate2|overcrate2]\n==============\nWINCONDITIONS\n==============\n\nAll Target on win\n\n=======\nLEVELS\n=======\n\nmessage cover up all targets with blocks \n\nmessage level 1 of 4\n--------\n-######-\n##.*..##\n#......#\n#...*..#\n#..O...#\n#......#\n#......#\n#..P...#\n##....##\n-######-\n\nmessage level 2 of 4\n--------\n-######-\n##....##\n#......#\n#......#\n#.O.*..#\n#..*.O.#\n#......#\n#..P...#\n##....##\n-######-\n\nmessage level 3 of 4\n--------\n#######-\n#O....#-\n#.....#-\n#O....#-\n##...##-\n##**###-\n#..*..#-\n#..P.O#-\n##...##-\n-#####--\n\nmessage level 4 of 4\n--------\n#######-\n##...O#-\n#.....#-\n#.*...#-\n#..*..#-\n#...*.#-\n#O.p.O#-\n#.....##\n####..*#\n---#####\n(\n--------\n#######-\n##...O#-\n#.....#-\n#.*...#-\n#..*..#-\n#...*.#-\n#..p..#-\n#O....#-\n#....O#-\n#######-\n)\n\n\n\nmessage The path is now clear\n\n\n(--------\n-######-\n##....##\n#......#\n#.*....#\n#....*.#\n#.O....#\n#.OO.*.#\n#.P....#\n##....##\n-######-)\n\n",[0,1,0,3,3,1,0,0,1,0,3,3,0,1,1,0,1,2,3,1,2,2,3,2,3,3,2,1,1],"background overwall thefloor:0,background overwall wall:1,1,1,background overwall pathline shiftleft wall:2,1,1,2,\n2,background wall:3,background thefloor:4,background overwall pathline shiftup thefloor:5,background pathline shiftup wall:6,background pathline shiftup target:7,background pathline shiftup:8,background overwall pathline shiftleft shiftup target:9,\nbackground overwall pathline shiftup wall:10,6,background overcrate pathline shiftleft shiftup:11,background crate overwall pathline shiftdown shiftleft shiftright shiftup:12,background overwall pathline shiftdown wall:13,background pathline shiftdown wall:14,0,3,\nbackground:15,15,background pathline shiftleft:16,15,15,16,background pathline playerleft shiftright:17,background overwall:18,\n3,0,3,15,15,16,15,15,\n16,background pathline shiftright:19,18,3,0,3,15,15,\n16,18,3,16,19,18,3,5,\n6,8,background overcrate pathline shiftup:20,12,background overwall pathline shiftdown shiftup wall:21,background overcrate pathline shiftdown shiftup wall:22,background crate pathline shiftdown shiftleft shiftright shiftup:23,background overwall pathline shiftdown shiftright target:24,\n13,14,0,1,1,1,background overwall pathline shiftright wall:25,1,\n1,25,25,3,4,4,4,4,\n4,background pathline shiftright thefloor:26,4,4,26,26,4,4,\n",6,"1627770350033.7073"] + ["title Path lines\nauthor Rosden Shadow [Mark Signorelli]\nhomepage rosden.itch.io\nrun_rules_on_level_Start\n\nbackground_color #423D39\n\ntext_color #FFD9FC\n\n========\nOBJECTS\n========\n\nBackground\n#423D39 #5B4846\n00000\n01010\n00100\n01010\n00000\n(\n00101\n01110\n11011\n01111\n10110)\n(\n11101\n00101\n11111\n10100\n10111)\n\n\npathline\n#E0AAF2 #FFD9FC\n00000\n01010\n00100\n01010\n00000\n\nTarget\n #847A5C #E5C17E\n.....\n.010.\n.1.1.\n.010.\n.....\n\nWall\n#A87EE5 #E0AAF2 #705C84 #42393C\n20001\n20001\n22220\n23232\n32323\n\noverwall\n #A87EE5 #E0AAF2 #705C84 #42393C\n.....\n.....\n.....\n01111\n20001\n\n\nPlayerright\n#F3FFD9 #BCE57E #A87EE5 #705C84\n.000.\n11202\n11313\n11110\n.1.1.\n\nplayerleft\n#F3FFD9 #BCE57E #A87EE5 #705C84\n.000.\n20211\n31311\n01111\n.1.1.\n\nCrate2\n#82A17C #7EE58D #4F5B46 #394239 \n20011\n20001\n22001\n32223\n.333.\n\novercrate2\n#82A17C #7EE58D #4F5B46 #394239\n.....\n.....\n.....\n.....\n.111.\n\nCrate\n#E5C17E #F2F2AA #847A5C #5B5746\n20011\n20001\n22001\n32223\n.333.\n\novercrate\n#E5C17E #F2F2AA #847A5C #5B5746\n.....\n.....\n.....\n.....\n.111.\n\ncloner\n#E5C17E #DB7F55 #B32D2D #73342E\n.100.\n.210.\n.221.\n.332.\n.....\n\nswapcrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\nswapwall\nblack\n.....\n.....\n.....\n.....\n.....\n\nthefloor\n#423D39\n00000\n00000\n00000\n00000\n00000\n\nstopper\nblack\n.....\n.....\n.....\n.....\n.....\n\nshiftright\nblack\n.....\n.....\n.....\n.....\n.....\n\nshiftup\nblack\n.....\n.....\n.....\n.....\n.....\n\nshiftdown\nblack\n.....\n.....\n.....\n.....\n.....\n\nshiftleft\nblack\n.....\n.....\n.....\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background and stopper\n# = Wall\nP = Playerright\n* = Crate\n@ = Crate and Target\nO = Target\nc=cloner\n-=thefloor\n\nfeel=overwall or overcrate or overcrate2\npushable=crate or cloner or swapcrate or crate2\nwin=crate or wall\n\nplayer=playerright or playerleft\n\nshift=shiftright or shiftup or shiftdown or shiftleft\nmainlayer=player or wall or pushable or swapwall or thefloor\n=======\nSOUNDS\n=======\n\npushable MOVE 36772507\n\n\nsfx0 52836103\nsfx1 6257504\n================\nCOLLISIONLAYERS\n================\n\nBackground\npathline\nTarget\nshiftright\nshiftleft\nshiftup\nshiftdown\nPlayer, Wall, pushable,swapwall,thefloor\nstopper\nfeel\n\n======\nRULES\n======\n\n[feel]->[]\n[shift]->[]\n[stopper]->[]\n\n[Background no mainlayer] -> [background stopper]\n\n\n\n[crate]->[crate shiftright shiftleft shiftup shiftdown]\n\nright [shiftright| ]->[shiftright | shiftright]\n\nup [shiftup| ]->[shiftup | shiftup]\n\ndown [shiftdown| ]->[shiftdown | shiftdown]\n\nleft [shiftleft| ]->[shiftleft | shiftleft]\n\n[shift]->[shift pathline]\n[pathline stopper] -> [pathline]\n\n[ > Player | pushable ] -> [ > Player | > pushable ]\n\n([ > pushable | pushable ] -> [ > pushable | > pushable ])\n\n[> player | stopper] -> [ player | stopper]\n\n[ left Playerright] -> [ left playerleft]\n[ right Playerleft] -> [ right playerright]\n\n(-------------------)\nlate [shift]->[]\nlate [stopper]->[]\nlate [pathline]->[]\nlate [crate]->[crate shiftright shiftleft shiftup shiftdown]\n\nlate right [shiftright| ]->[shiftright | shiftright]\n\nlate up [shiftup| ]->[shiftup | shiftup]\n\nlate down [shiftdown| ]->[shiftdown | shiftdown]\n\nlate left [shiftleft| ]->[shiftleft | shiftleft]\n\nlate [shift]->[shift pathline]\nlate [pathline stopper] -> [pathline]\n\n(------------------)\n\nlate up [wall| ]-> [wall|overwall]\nlate up [crate| ]-> [crate|overcrate]\nlate up [crate2| ]-> [crate2|overcrate2]\n==============\nWINCONDITIONS\n==============\n\nAll Target on win\n\n=======\nLEVELS\n=======\n\nmessage cover up all targets with blocks \n\nmessage level 1 of 4\n--------\n-######-\n##.*..##\n#......#\n#...*..#\n#..O...#\n#......#\n#......#\n#..P...#\n##....##\n-######-\n\nmessage level 2 of 4\n--------\n-######-\n##....##\n#......#\n#......#\n#.O.*..#\n#..*.O.#\n#......#\n#..P...#\n##....##\n-######-\n\nmessage level 3 of 4\n--------\n#######-\n#O....#-\n#.....#-\n#O....#-\n##...##-\n##**###-\n#..*..#-\n#..P.O#-\n##...##-\n-#####--\n\nmessage level 4 of 4\n--------\n#######-\n##...O#-\n#.....#-\n#.*...#-\n#..*..#-\n#...*.#-\n#O.p.O#-\n#.....##\n####..*#\n---#####\n(\n--------\n#######-\n##...O#-\n#.....#-\n#.*...#-\n#..*..#-\n#...*.#-\n#..p..#-\n#O....#-\n#....O#-\n#######-\n)\n\n\n\nmessage The path is now clear\n\n\n(--------\n-######-\n##....##\n#......#\n#.*....#\n#....*.#\n#.O....#\n#.OO.*.#\n#.P....#\n##....##\n-######-)\n\n", [0, 1, 0, 3, 3, 1, 0, 0, 1, 0, 3, 3, 0, 1, 1, 0, 1, 2, 3, 1, 2, 2, 3, 2, 3, 3, 2, 1, 1], "background overwall thefloor:0,background overwall wall:1,1,1,background overwall pathline shiftleft wall:2,1,1,2,\n2,background wall:3,background thefloor:4,background overwall pathline shiftup thefloor:5,background pathline shiftup wall:6,background pathline shiftup target:7,background pathline shiftup:8,background overwall pathline shiftleft shiftup target:9,\nbackground overwall pathline shiftup wall:10,6,background overcrate pathline shiftleft shiftup:11,background crate overwall pathline shiftdown shiftleft shiftright shiftup:12,background overwall pathline shiftdown wall:13,background pathline shiftdown wall:14,0,3,\nbackground:15,15,background pathline shiftleft:16,15,15,16,background pathline playerleft shiftright:17,background overwall:18,\n3,0,3,15,15,16,15,15,\n16,background pathline shiftright:19,18,3,0,3,15,15,\n16,18,3,16,19,18,3,5,\n6,8,background overcrate pathline shiftup:20,12,background overwall pathline shiftdown shiftup wall:21,background overcrate pathline shiftdown shiftup wall:22,background crate pathline shiftdown shiftleft shiftright shiftup:23,background overwall pathline shiftdown shiftright target:24,\n13,14,0,1,1,1,background overwall pathline shiftright wall:25,1,\n1,25,25,3,4,4,4,4,\n4,background pathline shiftright thefloor:26,4,4,26,26,4,4,\n", 6, "1627770350033.7073"] ], [ `gallery game: interconnection`, - ["title interconnection\nauthor Rosden Shadow [Mark Signorelli]\nhomepage rosden.itch.io\n\nrun_rules_on_level_Start\n\nbackground_color #66CC52\n\ntext_color #845C7A\n========\nOBJECTS\n========\n\nBackground\n#66CC52 #7EE58D #567353\n10001\n00100\n01010\n00100\n10001\n\n\nTarget\n#E57ED5 #FFD9FC #845C7A\n.....\n.011.\n.201.\n.220.\n.....\n\nWall\n#46595B #5C8484 #394240 #1F2026\n10001\n21001\n22120\n33232\n32333\n\noverwall\n#46595B #5C8484 #394240 #1F2026\n.....\n.....\n.....\n01121\n20012\n\n\nPlayerright\n#F3FFD9 #E5C17E #845C7A #423942 #66CC52 #2DB34E\n5000.\n11202\n11313\n11110\n5151.\n\nPlayerleft\n#F3FFD9 #E5C17E #845C7A #423942 #66CC52 #2DB34E\n5000.\n20211\n31311\n01111\n5151.\n\nplayershadowleft\n#2DB34E #66CC52\n.....\n....0\n....0\n....0\n.....\n\nplayershadowtop\n#2DB34E #66CC52\n.....\n.....\n.....\n.....\n.....\n\nplayershadowtopleft\n#2DB34E #66CC52\n.....\n.....\n.....\n.....\n.....\n\nCratey\n#9B7CA1 #423942 #E57ED5 #845C7A\n13220\n11000\n11100\n11000\n.110.\n\nCratex\n#9B7CA1 #423942 #E57ED5 #845C7A\n13220\n11000\n11100\n11000\n.110.\n\ncrateshadow\n#2DB34E #66CC52 #567353\n...01\n...00\n....0\n....0\n.....\n\ncrateshadowtop\n#2DB34E #66CC52 #567353 (#66CC52)(#394239 #567353 )\n.....\n.....\n.....\n....0\n...01\n\nCratetop\n#E57ED5 #845C7A #9B7CA1 #423942 #FFD9FC\n.....\n.....\n..0..\n.140.\n11040\n\nleftshift\nblack\n.....\n.....\n.....\n.....\n.....\n\nrightshift\nblack\n.....\n.....\n.....\n.....\n.....\n\nupshift\nblack\n.....\n.....\n.....\n.....\n.....\n\ndownshift\nblack\n.....\n.....\n.....\n.....\n.....\n\nleftshiftx\nblack\n.....\n.....\n..0..\n.....\n.....\n\nrightshiftx\nblack\n.....\n.....\n..0..\n.....\n.....\n\nupshiftx\nblack\n.....\n.....\n..0..\n.....\n.....\n\ndownshiftx\nblack\n.....\n.....\n..0..\n.....\n.....\n\nnoshift\nblack\n.....\n.....\n.....\n.....\n.....\n\nchan\nblack\n.....\n.....\n.....\n.....\n.....\n\nthefloor\n#66CC52\n00000\n00000\n00000\n00000\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Playerleft\n* = Cratey\n@ = Cratey and Target\nO = Target\nc=chan\n-=thefloor\n\nplayer=Playerright or playerleft\nfeel=cratetop or overwall\n\ncrate= cratey or cratex\n\nblocker=wall or crate\n\nshadow= crateshadow or crateshadowtop or playershadowleft or playershadowtop or playershadowtopleft\n\nshift =leftshiftx or rightshiftx or upshiftx or downshiftx or leftshift or rightshift or upshift or downshift\nshiftx=leftshiftx or rightshiftx or upshiftx or downshiftx\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\nsfx0 10685903\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncrateshadow\ncrateshadowtop\nplayershadowleft\nplayershadowtop\nplayershadowtopleft\nthefloor\nTarget\nPlayer, Wall, Crate\nfeel\nshift,noshift\nchan\n\n\n======\nRULES\n======\n[cratetop]->[]\n[shadow]->[]\n\n[chan]->[up chan]\n\n[chan]->[]\n\n[cratex]->[cratey]\n[ > Player | Cratey ] -> [ > Player | > Cratey]\n\n\n[ left Playerright] -> [ left playerleft]\n[ right Playerleft] -> [ right playerright]\n\n[left cratey] -> [left cratex left leftshiftx]\n[right cratey] -> [right cratex right rightshiftx]\n[up cratey] -> [up cratex up upshiftx]\n[down cratey] -> [down cratex down downshiftx]\n \n [parallel cratex | blocker] ->[parallel cratex noshift |blocker]\n\n[cratex Target] -> [cratex Target] sfx0\n\n[leftshiftx]->[leftshift]\n[rightshiftx]->[rightshift]\n[upshiftx]->[upshift]\n[downshiftx]->[downshift]\n\n\n[leftshift|no leftshift] ->[leftshift|leftshift]\n[upshift|no upshift] ->[upshift|upshift]\n[rightshift|no rightshift] ->[rightshift|rightshift]\n[downshift|no downshift] ->[downshift|downshift]\n\n[cratey |leftshift]->[left cratex | leftshift]\n[cratey |rightshift]->[right cratex | rightshift]\n[cratey |upshift]->[up cratex | upshift]\n[cratey |downshift]->[down cratex | downshift]\n\n\nlate up [crate| ]->[crate| cratetop]\nlate left [crate| ]->[crate| crateshadow]\nlate up [crateshadow| ]->[crateshadow| crateshadowtop]\n\nlate up [player| ]->[player| playershadowtop]\nlate left [player| ]->[player| playershadowleft]\nlate up [playershadowleft| ]->[playershadowleft| playershadowtopleft]\n\nlate up [wall| ]-> [wall|overwall]\n\nlate [leftshift] ->[]\nlate [rightshift] ->[]\nlate [upshift] -> []\nlate [downshift] -> []\n\n[]->again\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage cover up all the buttons\nmessage level 1 of 3\n--------\n########\n#c.....#\n#......#\n#.p..*.#\n#......#\n########\n#.....##\n#O...*.#\n#..#...#\n#.*....#\n#..O...#\n########\n\nmessage level 2 of 3\n--------\n########\n#c...###\n#....#O#\n###p.#.#\n###..#.#\n#...*#.#\n#.*..#.#\n#..**#.#\n#..*.#.#\n#.#.##.#\n#..#*..#\n########\n\nmessage level 3 of 3\n--------\n########\n####O###\n###...##\n##....c#\n#...#..#\n#.*..*.#\n#...p..#\n#.*..*.#\n#.....##\n##...###\n###O####\n########\n\nmessage interconnectivity is key\n",[0,3,3,3,3,2,1,1,1,0,1,1,2,3,3,0,3,2],"background overwall thefloor:0,background overwall wall:1,1,1,1,1,1,1,\n1,1,1,1,background wall:2,0,2,background:3,\n3,3,background overwall:4,2,3,background target:5,3,3,\n4,2,0,2,3,3,3,4,\n2,3,3,3,background crateshadowtop:6,background crateshadow overwall:7,2,0,\n2,3,background playershadowtopleft:8,background crateshadowtop playershadowleft:9,7,2,3,background crateshadowtop overwall:10,\nbackground crateshadow wall:11,background cratetop:12,background cratey overwall target:13,2,0,2,3,background playershadowtop:14,\nbackground cratetop playerright:15,background cratey overwall:16,2,3,12,background cratey:17,3,4,\n2,0,2,3,3,3,4,2,\n3,3,3,3,4,2,0,2,\n3,3,3,4,1,2,3,3,\n3,4,2,0,1,1,1,1,\n1,1,1,1,1,1,1,2,\n",2,"1627770378083.7458"] + ["title interconnection\nauthor Rosden Shadow [Mark Signorelli]\nhomepage rosden.itch.io\n\nrun_rules_on_level_Start\n\nbackground_color #66CC52\n\ntext_color #845C7A\n========\nOBJECTS\n========\n\nBackground\n#66CC52 #7EE58D #567353\n10001\n00100\n01010\n00100\n10001\n\n\nTarget\n#E57ED5 #FFD9FC #845C7A\n.....\n.011.\n.201.\n.220.\n.....\n\nWall\n#46595B #5C8484 #394240 #1F2026\n10001\n21001\n22120\n33232\n32333\n\noverwall\n#46595B #5C8484 #394240 #1F2026\n.....\n.....\n.....\n01121\n20012\n\n\nPlayerright\n#F3FFD9 #E5C17E #845C7A #423942 #66CC52 #2DB34E\n5000.\n11202\n11313\n11110\n5151.\n\nPlayerleft\n#F3FFD9 #E5C17E #845C7A #423942 #66CC52 #2DB34E\n5000.\n20211\n31311\n01111\n5151.\n\nplayershadowleft\n#2DB34E #66CC52\n.....\n....0\n....0\n....0\n.....\n\nplayershadowtop\n#2DB34E #66CC52\n.....\n.....\n.....\n.....\n.....\n\nplayershadowtopleft\n#2DB34E #66CC52\n.....\n.....\n.....\n.....\n.....\n\nCratey\n#9B7CA1 #423942 #E57ED5 #845C7A\n13220\n11000\n11100\n11000\n.110.\n\nCratex\n#9B7CA1 #423942 #E57ED5 #845C7A\n13220\n11000\n11100\n11000\n.110.\n\ncrateshadow\n#2DB34E #66CC52 #567353\n...01\n...00\n....0\n....0\n.....\n\ncrateshadowtop\n#2DB34E #66CC52 #567353 (#66CC52)(#394239 #567353 )\n.....\n.....\n.....\n....0\n...01\n\nCratetop\n#E57ED5 #845C7A #9B7CA1 #423942 #FFD9FC\n.....\n.....\n..0..\n.140.\n11040\n\nleftshift\nblack\n.....\n.....\n.....\n.....\n.....\n\nrightshift\nblack\n.....\n.....\n.....\n.....\n.....\n\nupshift\nblack\n.....\n.....\n.....\n.....\n.....\n\ndownshift\nblack\n.....\n.....\n.....\n.....\n.....\n\nleftshiftx\nblack\n.....\n.....\n..0..\n.....\n.....\n\nrightshiftx\nblack\n.....\n.....\n..0..\n.....\n.....\n\nupshiftx\nblack\n.....\n.....\n..0..\n.....\n.....\n\ndownshiftx\nblack\n.....\n.....\n..0..\n.....\n.....\n\nnoshift\nblack\n.....\n.....\n.....\n.....\n.....\n\nchan\nblack\n.....\n.....\n.....\n.....\n.....\n\nthefloor\n#66CC52\n00000\n00000\n00000\n00000\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Playerleft\n* = Cratey\n@ = Cratey and Target\nO = Target\nc=chan\n-=thefloor\n\nplayer=Playerright or playerleft\nfeel=cratetop or overwall\n\ncrate= cratey or cratex\n\nblocker=wall or crate\n\nshadow= crateshadow or crateshadowtop or playershadowleft or playershadowtop or playershadowtopleft\n\nshift =leftshiftx or rightshiftx or upshiftx or downshiftx or leftshift or rightshift or upshift or downshift\nshiftx=leftshiftx or rightshiftx or upshiftx or downshiftx\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\nsfx0 10685903\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncrateshadow\ncrateshadowtop\nplayershadowleft\nplayershadowtop\nplayershadowtopleft\nthefloor\nTarget\nPlayer, Wall, Crate\nfeel\nshift,noshift\nchan\n\n\n======\nRULES\n======\n[cratetop]->[]\n[shadow]->[]\n\n[chan]->[up chan]\n\n[chan]->[]\n\n[cratex]->[cratey]\n[ > Player | Cratey ] -> [ > Player | > Cratey]\n\n\n[ left Playerright] -> [ left playerleft]\n[ right Playerleft] -> [ right playerright]\n\n[left cratey] -> [left cratex left leftshiftx]\n[right cratey] -> [right cratex right rightshiftx]\n[up cratey] -> [up cratex up upshiftx]\n[down cratey] -> [down cratex down downshiftx]\n \n [parallel cratex | blocker] ->[parallel cratex noshift |blocker]\n\n[cratex Target] -> [cratex Target] sfx0\n\n[leftshiftx]->[leftshift]\n[rightshiftx]->[rightshift]\n[upshiftx]->[upshift]\n[downshiftx]->[downshift]\n\n\n[leftshift|no leftshift] ->[leftshift|leftshift]\n[upshift|no upshift] ->[upshift|upshift]\n[rightshift|no rightshift] ->[rightshift|rightshift]\n[downshift|no downshift] ->[downshift|downshift]\n\n[cratey |leftshift]->[left cratex | leftshift]\n[cratey |rightshift]->[right cratex | rightshift]\n[cratey |upshift]->[up cratex | upshift]\n[cratey |downshift]->[down cratex | downshift]\n\n\nlate up [crate| ]->[crate| cratetop]\nlate left [crate| ]->[crate| crateshadow]\nlate up [crateshadow| ]->[crateshadow| crateshadowtop]\n\nlate up [player| ]->[player| playershadowtop]\nlate left [player| ]->[player| playershadowleft]\nlate up [playershadowleft| ]->[playershadowleft| playershadowtopleft]\n\nlate up [wall| ]-> [wall|overwall]\n\nlate [leftshift] ->[]\nlate [rightshift] ->[]\nlate [upshift] -> []\nlate [downshift] -> []\n\n[]->again\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage cover up all the buttons\nmessage level 1 of 3\n--------\n########\n#c.....#\n#......#\n#.p..*.#\n#......#\n########\n#.....##\n#O...*.#\n#..#...#\n#.*....#\n#..O...#\n########\n\nmessage level 2 of 3\n--------\n########\n#c...###\n#....#O#\n###p.#.#\n###..#.#\n#...*#.#\n#.*..#.#\n#..**#.#\n#..*.#.#\n#.#.##.#\n#..#*..#\n########\n\nmessage level 3 of 3\n--------\n########\n####O###\n###...##\n##....c#\n#...#..#\n#.*..*.#\n#...p..#\n#.*..*.#\n#.....##\n##...###\n###O####\n########\n\nmessage interconnectivity is key\n", [0, 3, 3, 3, 3, 2, 1, 1, 1, 0, 1, 1, 2, 3, 3, 0, 3, 2], "background overwall thefloor:0,background overwall wall:1,1,1,1,1,1,1,\n1,1,1,1,background wall:2,0,2,background:3,\n3,3,background overwall:4,2,3,background target:5,3,3,\n4,2,0,2,3,3,3,4,\n2,3,3,3,background crateshadowtop:6,background crateshadow overwall:7,2,0,\n2,3,background playershadowtopleft:8,background crateshadowtop playershadowleft:9,7,2,3,background crateshadowtop overwall:10,\nbackground crateshadow wall:11,background cratetop:12,background cratey overwall target:13,2,0,2,3,background playershadowtop:14,\nbackground cratetop playerright:15,background cratey overwall:16,2,3,12,background cratey:17,3,4,\n2,0,2,3,3,3,4,2,\n3,3,3,3,4,2,0,2,\n3,3,3,4,1,2,3,3,\n3,4,2,0,1,1,1,1,\n1,1,1,1,1,1,1,2,\n", 2, "1627770378083.7458"] ], [ `gallery game: the art of cloning`, - ["title the art of cloning\nauthor Rosden Shadow [Mark Signorelli]\nhomepage rosden.itch.io\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\n#581AB2 #000000 #291E4C\n11111\n12121\n11211\n12121\n11111\n\n\nTarget\n#FF263B #911A45\n.....\n.0.0.\n..0..\n.0.0.\n.....\n(\n.0.0.\n.101.\n.010.\n.1.1.\n.....\n)\n(.....\n.0.0.\n..0..\n.0.0.\n.....)\n\n\n\n\n\nWall\n#1AB258 #0E664E #CBFF7F\n02222\n10002\n10002\n10002\n11110\n\nPlayer\n#4CB5FF #26FFEA #263BFF\n.000.\n.202.\n01110\n.111.\n.2.2.\n\nCrate\n#FFB37F #993D74 #FFFFFF\n02222\n10002\n10002\n10002\n11110\n\n\n\nCratepos\nred\n00000\n0...0\n0...0\n0...0\n00000\n\n\nCrateneg\nblue\n00000\n0...0\n0...0\n0...0\n00000\n\nfloor\nblack\n.....\n.....\n.....\n.....\n.....\n\nfloor0\nblack\n.....\n.....\n.....\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n+ = cratepos\n- = crateneg\n@ = Crate and Target\nt = Target\n\nObject = Crate or Player or Wall\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nfloor,floor0\nTarget\nPlayer, Wall, Crate,Cratepos,Crateneg\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ player | > Crate ]\n\n[ > crate | crate] -> [ > crate | > crate ]\n\n[ > Player | Cratepos ] -> [ > Player | > Cratepos ]\n\n[ > Player | Crateneg ] -> [ > Player | > Crateneg ]\n\nlate [Floor no Object] -> [no Floor Crate]\n\n[crate no Floor] -> [crate floor]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage the goal is to cover-up all the red crosses\n\nmessage level 1 of 1\n#########\n#ttttttt#\n#t.....t#\n#t.....t#\n#t..*.pt#\n#t.....t#\n#t.....t#\n#ttttttt#\n#########\n\nmessage Good work!\n\n",[1,1,1,0,1,2,2,1,1,2,1,2,2,3,3,3,2,3,3,3,3,3],"background wall:0,0,0,0,0,0,0,0,0,\n0,background target:1,1,1,1,1,1,1,0,\n0,1,background:2,2,background crate floor:3,3,2,1,0,\n0,1,2,2,3,3,background player:4,1,0,\n0,1,2,2,3,3,background crate:5,1,0,\n0,1,2,2,2,3,3,1,0,\n0,1,2,2,2,3,3,1,0,\n0,1,1,1,1,1,background crate target:6,1,0,\n0,0,0,0,0,0,0,0,0,\n",2,"1627770402138.347"] + ["title the art of cloning\nauthor Rosden Shadow [Mark Signorelli]\nhomepage rosden.itch.io\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\n#581AB2 #000000 #291E4C\n11111\n12121\n11211\n12121\n11111\n\n\nTarget\n#FF263B #911A45\n.....\n.0.0.\n..0..\n.0.0.\n.....\n(\n.0.0.\n.101.\n.010.\n.1.1.\n.....\n)\n(.....\n.0.0.\n..0..\n.0.0.\n.....)\n\n\n\n\n\nWall\n#1AB258 #0E664E #CBFF7F\n02222\n10002\n10002\n10002\n11110\n\nPlayer\n#4CB5FF #26FFEA #263BFF\n.000.\n.202.\n01110\n.111.\n.2.2.\n\nCrate\n#FFB37F #993D74 #FFFFFF\n02222\n10002\n10002\n10002\n11110\n\n\n\nCratepos\nred\n00000\n0...0\n0...0\n0...0\n00000\n\n\nCrateneg\nblue\n00000\n0...0\n0...0\n0...0\n00000\n\nfloor\nblack\n.....\n.....\n.....\n.....\n.....\n\nfloor0\nblack\n.....\n.....\n.....\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n+ = cratepos\n- = crateneg\n@ = Crate and Target\nt = Target\n\nObject = Crate or Player or Wall\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nfloor,floor0\nTarget\nPlayer, Wall, Crate,Cratepos,Crateneg\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ player | > Crate ]\n\n[ > crate | crate] -> [ > crate | > crate ]\n\n[ > Player | Cratepos ] -> [ > Player | > Cratepos ]\n\n[ > Player | Crateneg ] -> [ > Player | > Crateneg ]\n\nlate [Floor no Object] -> [no Floor Crate]\n\n[crate no Floor] -> [crate floor]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage the goal is to cover-up all the red crosses\n\nmessage level 1 of 1\n#########\n#ttttttt#\n#t.....t#\n#t.....t#\n#t..*.pt#\n#t.....t#\n#t.....t#\n#ttttttt#\n#########\n\nmessage Good work!\n\n", [1, 1, 1, 0, 1, 2, 2, 1, 1, 2, 1, 2, 2, 3, 3, 3, 2, 3, 3, 3, 3, 3], "background wall:0,0,0,0,0,0,0,0,0,\n0,background target:1,1,1,1,1,1,1,0,\n0,1,background:2,2,background crate floor:3,3,2,1,0,\n0,1,2,2,3,3,background player:4,1,0,\n0,1,2,2,3,3,background crate:5,1,0,\n0,1,2,2,2,3,3,1,0,\n0,1,2,2,2,3,3,1,0,\n0,1,1,1,1,1,background crate target:6,1,0,\n0,0,0,0,0,0,0,0,0,\n", 2, "1627770402138.347"] ], [ `galley game: easy enigma`, - ["title Easy Enigma\n\nrun_rules_on_level_start\nrealtime_interval 0.2\n\nnorepeat_action\n\nbackground_color black\n\nflickscreen 42x19\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nfakeground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\nfakeWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\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\ncapa あ\nblack transparent\n01100\n10010\n11110\n10010\n10010\n\ncapb い\nblack transparent\n11100\n10010\n11100\n10010\n11100\n\ncapc う\nblack transparent\n01110\n10000\n10000\n10000\n01110\n\ncapd え\nblack transparent\n11100\n10010\n10010\n10010\n11100\n\ncape 1\nblack transparent\n11110\n10000\n11100\n10000\n11110\n\ncapf お\nblack transparent\n11110\n10000\n11100\n10000\n10000\n\ncapg か\nblack transparent\n01110\n10000\n10110\n10010\n01100\n\ncaph き\nblack transparent\n10010\n10010\n11110\n10010\n10010\n\ncapi く\nblack transparent\n01110\n00100\n00100\n00100\n01110\n\ncapj け\nblack transparent\n11110\n00100\n00100\n10100\n01000\n\ncapk こ\nblack transparent\n10010\n10010\n11100\n10010\n10010\n\ncapl そ\nblack transparent\n10000\n10000\n10000\n10000\n11110\n\ncapm し\nblack transparent\n01010\n10101\n10101\n10101\n10101\n\ncapn ゐ\nblack transparent\n10010\n11010\n10110\n10010\n10010\n\ncapo る\nblack transparent\n01100\n10010\n10010\n10010\n01100\n\ncapp ら\nblack transparent\n11100\n10010\n11100\n10000\n10000\n\ncapq み\nblack transparent\n01100\n10010\n10010\n10110\n01110\n\ncapr 5\nblack transparent\n11100\n10010\n11100\n10010\n10010\n\ncaps 2\nblack transparent\n01110\n10000\n01100\n00010\n11100\n\ncapt わ\nblack transparent\n01110\n00100\n00100\n00100\n00100\n\ncapu ゆ\nblack transparent\n10010\n10010\n10010\n10010\n01100\n\ncapv を\nblack transparent\n10010\n10010\n10100\n11000\n10000\n\ncapw む\nblack transparent\n10001\n10101\n10101\n10101\n01010\n\ncapx 3\nblack transparent\n10010\n10010\n01100\n10010\n10010\n\ncapy ふ\nblack transparent\n10010\n10010\n01110\n00010\n11100\n\ncapz 4\nblack transparent\n11110\n00010\n00100\n01000\n11110\n\nlhash 6\nblack transparent\n01010\n11111\n01010\n11111\n01010\n\nrhash 0\nblack transparent\n01010\n11111\n01010\n11111\n01010\n\n\na\nblack transparent\n00000\n01110\n10010\n10010\n01110\n\nb\nblack transparent\n10000\n10000\n11100\n10010\n01100\n\nc\nblack transparent\n00000\n01110\n10000\n10000\n01110\n\nd\nblack transparent\n00010\n00010\n01110\n10010\n01100\n\ne\nblack transparent\n01100\n10010\n11100\n10000\n01100\n\nf\nblack transparent\n00000\n00110\n01000\n11100\n01000\n\ng\nblack transparent\n01100\n10010\n01110\n00010\n01100\n\nh\nblack transparent\n10000\n10000\n11100\n10010\n10010\n\ni\nblack transparent\n01000\n00000\n11000\n01000\n11100\n\nj\nblack transparent\n00100\n00000\n00100\n10100\n01000\n\nk\nblack transparent\n10000\n10010\n11100\n10010\n10010\n\nl\nblack transparent\n10000\n10000\n10000\n10010\n01100\n\nm\nblack transparent\n00000\n01010\n10101\n10101\n10101\n\nn\nblack transparent\n00000\n01100\n10010\n10010\n10010\n\no\nblack transparent\n00000\n01100\n10010\n10010\n01100\n\np\nblack transparent\n00000\n01100\n10010\n11100\n10000\n\nq\nblack transparent\n00000\n01100\n10010\n01110\n00010\n\nr\nblack transparent\n00000\n01110\n10000\n10000\n10000\n\ns\nblack transparent\n01110\n10000\n01100\n00010\n11100\n\nt\nblack transparent\n10000\n11000\n10000\n10010\n01100\n\nu\nblack transparent\n00000\n10010\n10010\n10010\n01100\n\nv\nblack transparent\n00000\n10010\n10100\n11000\n10000\n\nw\nblack transparent\n00000\n10001\n10101\n10101\n01010\n\nx\nblack transparent\n00000\n10010\n01100\n01100\n10010\n\ny\nblack transparent\n10010\n10010\n01110\n00010\n11100\n\nz\nblack transparent\n00000\n11110\n00100\n01000\n11110\n\nglitch1\ntransparent\n\nglitch2\ntransparent\n\nwhite\nwhite\n\nblack\nblack\n\nmark\ntransparent\n\nmark2\ntransparent\n\nglitchright1\n#af1239 #2167ee\n00000\n11111\n...1.\n00000\n.....\n\nglitchright2\n#3fa257 #1878ff #ae2629\n.....\n012..\n...20\n22222\n11111\n\nglitchright3\n#c0ffee #3de312 #087a55\n00000\n..00.\n1111.\n....1\n22222\n\n\n\nglitchright4\ntransparent\n\nglitchright5\n#e451b8 #cbff12\n.0...\n0.000\n.00..\n11111\n.....\n\nglitchright6\n#12baef #55efcb #f16743\n.....\n22222\n000.0\n.....\n.1111\n\nroulette1\ntransparent\n\nroulette2\ntransparent\n\nroulette3\ntransparent\n\nroulette4\ntransparent\n\nroulette5\ntransparent\n\nroulette6\ntransparent\n\nglitch3\ntransparent\n\nglitch4\ntransparent\n\nglitch6\ntransparent\n\nback1\n black\n.00.0\n.00.0\n.00.0\n.00.0\n.00.0\n\nback2\n black\n00.0.\n00.0.\n00.0.\n00.0.\n00.0.\n\nback3\n black\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n\nback4\n black\n..0..\n..0..\n..0..\n..0..\n..0..\n\ntimer9\ntransparent\n\ntimer8\ntransparent\n\ntimer7\ntransparent\n\ntimer6\ntransparent\n\ntimer5\ntransparent\n\ntimer4\ntransparent\n\ntimer3\ntransparent\n\ntimer2\ntransparent\n\ntimer1\ntransparent\n\ntimer0\ntransparent\n\npressaction\ntransparent\n\ncover\nblack\n\nplay1\ntransparent\n\nplay2\ntransparent\n\nglitch5\ntransparent\n\ntextgrass\nwhite black\n11111\n11111\n11111\n11011\n11111\n\ntextwall\nwhite black\n11111\n10101\n11011\n10101\n11111\n\ntextsecret\nwhite black\n10001\n11101\n11001\n11111\n11011\n\ntextplayer\nwhite black\n11011\n11011\n11011\n11111\n11011\n\ntextcrate\nwhite black\n11111\n10001\n01111\n01111\n10001\n\ntexttarget\nwhite black\n10001\n01101\n10001\n11101\n10011\n\nplay3\ntransparent\n\nleftbracket ろ\nblack transparent\n01100\n01000\n01000\n01000\n01100\n\nrightbracket ゑ\nblack transparent\n00110\n00010\n00010\n00010\n00110\n\n\ncolon\nblack transparent\n00000\n01000\n00000\n01000\n00000\n\narrow り\nblack transparent\n00100\n00010\n11101\n00010\n00100\n \nvertica や\nblack transparent\n00100\n00100\n00100\n00100\n00100\n\nequals ひ\nblack transparent\n00000\n11110\n00000\n11110\n00000\n\ncaret れ\nblack transparent\n00000\n01000\n00100\n01000\n00000\n\ncomma よ\nblack transparent\n00000\n00000\n00000\n00100\n01000\n\ntmark\ntransparent\n\npmark\ntransparent\n\ncmark\ntransparent\n\nplay4\ntransparent\n\nnott\ntransparent\n\nnota\ntransparent\n\nnotr\ntransparent\n\nnotg\ntransparent\n\nnote\ntransparent\n\nplay5\ntransparent\n\nblackwall に\nblack\n\nsgoal の\ntransparent\n\ntgoal さ\ntransparent\n\nagoal た\ntransparent\n\nrgoal な\ntransparent\n\nggoal は\ntransparent\n\nmgoal ぬ\ntransparent\n\negoal ま\ntransparent\n\nending \"\ntransparent\n\nsf2 |\ntransparent\n\nfakeTarget =\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\ngreen\n#10ae1c\n\npurple\n#a055c0\n\ngrey\n#888888\n\nred\n#c11d16\n\nsfa め\ntransparent\n\nsfb へ\ntransparent\n\n\n=======\nLEGEND\n=======\n\n7 = timer2 and cover\n8 = timer5 and cover\n9 = timer9 and cover\n. = Background\n, = fakeground\n+ = Wall and fakeground\n? = player and fakeground\n- = Crate and fakeground\n~ = target and fakeground\n} = Crate and Target and fakeground\nglitchright = glitchright1 or glitchright2 or glitchright3 or glitchright4 or glitchright5 or glitchright6\nroulette = roulette1 or roulette2 or roulette3 or roulette4 or roulette5 or roulette6\nback = back1 or back2 or back3 or back4\ntimer = timer0 or timer1 or timer2 or timer3 or timer4 or timer5 or timer6 or timer7 or timer8 or timer9\n$ = glitch1\n% = glitch2\n& = glitch3\n* = glitch4\n^ = mark\n` = pressaction\n\\ = cover and player\n/ = play1\n> = play2\n{ = play3\n< = glitch5\n; = glitch6\n[ = textsecret and fakeground\n] = play4 and mark\ntext = textplayer or textgrass or textwall or textcrate or texttarget\n' = play5\nせ = p and pmark\nす = t and tmark\nと = c and cmark\n# = colon\nxmark = pmark or tmark or cmark\nitem = player or crate or wall\ncapxx = capq or capw or cape or capr or capt or capy or capu or capi or capo or capp or capa or caps or capd or capf or capg or caph or capj or capk or capl or capz or capx or capc or capv or capv or capb or capn or capm\nletter = 1 or 2 or 3 or 4 or 5 or q or w or e or r or t or y or u or i or o or p or a or s or d or f or g or h or j or k or l or z or x or c or v or b or n or m or leftbracket or rightbracket or vertica or arrow or equals or comma or caret or capq or capw or cape or capr or capt or capy or capu or capi or capo or capp or capa or caps or capd or capf or capg or caph or capj or capk or capl or capz or capx or capc or capv or capv or capb or capn or capm or colon\n: = fakewall\nxgoal = sgoal or tgoal or agoal or rgoal or ggoal or mgoal or egoal\ncols = grey or purple or green or red\n=======\nSOUNDS\n=======\n\nSFX7 24019108\nSFX8 5183708\nSFX9 32607708\nSFX0 51652308\nSFX1 11432507\nSFX2 10961308\n================\nCOLLISIONLAYERS\n================\n\nBackground\nfakeground, \nblack\nTarget\nsfa\nsfb\nfaketarget\nxgoal\nwhite\nback\nfakewall\nPlayer, Wall, Crate, blackwall\nred, green, purple, grey\nletter\n6, rhash\nending\nglitch1, glitch2, glitch3, glitch4, glitch5, glitch6, play1, play2, play3, play4, play5\nglitchright\nroulette\ntimer\nmark\nmark2\npressaction\ntmark, \ncmark, pmark\nnott, nota,notr,notg,note\ntext, textsecret\ncover\nsf2\n\n======\nRULES\n======\n\n[faketarget] -> [faketarget fakeground]\n\n[sf2] -> SFX2\n[action player][pressaction] -> [player][]\n\n\n[player cover no timer] -> [player cover mark2]\n[player cover mark2][pressaction] -> [player cover ][pressaction]\n\n\nleft [player cover mark2][lhash|] -> [player cover mark2][lhash|lhash]\nright [player cover mark2][rhash|] -> [player cover mark2][rhash|rhash]\n[player cover mark2] -> [player cover]\n\n[timer0] -> []\n[timer1] -> [timer0]\n[timer2] -> [timer1]\n[timer3] -> [timer2]\n[timer4] -> [timer3]\n[timer5] -> [timer4]\n[timer6] -> [timer5]\n[timer7] -> [timer6]\n[timer8] -> [timer7]\n[timer9] -> [timer8]\n\n\n\nlate [letter no white] -> [letter white]\n\n[6 no white] -> [6 white]\n[0 no white] -> [0 white]\n\nup [glitch1][letter ] -> [glitch1][random letter mark]\nleft [glitch1][letter |...| no mark] -> [glitch1][letter mark | ... |letter]\ndown [glitch1][letter |...| no mark] -> [glitch1][letter mark| ... |letter]\n\n\n\n[glitch2][glitchright no roulette] -> [glitch2][glitchright random roulette]\n[glitch2][roulette6 glitchright] -> [glitch2][]\n[glitch2][roulette] -> [glitch2][]\ndown [glitch2][no glitchright|mark] -> [glitch2][random glitchright|mark]\nright [glitch2][glitchright|] -> [glitch2][glitchright|glitchright]\n\n\nleft [glitch3][letter no mark| no letter] -> [glitch3][letter mark|letter ]\nleft [glitch3][letter no mark| mark] -> [glitch3][letter mark|letter mark]\nup [glitch3][letter no mark| no letter] -> [glitch3][letter mark|letter ]\nup [glitch3][letter no mark| mark] -> [glitch3][letter mark|letter mark]\n[glitch3][letter mark] -> [glitch3][letter]\n\n[glitch5][mark] -> [glitch5][]\nright [glitch5][3 no mark | no 3 | ] -> [glitch5][3|3 mark | 3 mark]\n\n[glitch4][letter no mark] -> [glitch4][letter random back mark]\n[glitch4][mark] -> [glitch4][] SFX0\n\n[play1][moving player][wall no roulette] -> [play1][moving player][wall random roulette]\n[play1][moving player][wall roulette6 mark2] -> [play1][moving player][]\n[play1][moving player][wall roulette6 mark] -> [play1][moving player][wall mark2]\n[play1][moving player][wall roulette6] -> [play1][moving player][wall mark]\n[play1][moving player][roulette] -> [play1][moving player][]\n\n\n[play2][no fakeground no black] -> [play2][black]\n[play2][no fakeground] -> [play2][fakeground ]\n[play2][moving player][black] -> [play2][moving player][moving black]\n[play2][moving player][fakeground] -> [play2][moving player][moving fakeground]\n[play2][> fakeground no black no mark| black] -> [play2][> fakeground | mark]\n[play2][moving player] -> [play2][stationary player]\n[play2][> black | wall] -> [play2][> black | > wall]\n[play2][moving wall | wall] -> [play2][moving wall | moving wall]\n[play2][> wall | player] -> [play2][> wall | > player]\n[play2][> wall | crate] -> [play2][> wall | > crate]\n[play2][> player | wall] -> [play2][> player | > wall]\n[play2][> crate | wall] -> [play2][> crate | > wall]\n[play2][> crate | player] -> [play2][> crate | > player]\n[play2][> player | crate] -> [play2][> player | > crate]\n\nlate [play3][text] -> [play3][]\nlate [play3][crate] -> [play3][ textcrate crate]\nlate [play3][player] -> [play3 ][textplayer player]\n[play3][> player | letter no c no g] -> [play3][stationary player | letter]\n \nlate [play3][target no crate no player] -> [play3][ texttarget target]\nlate [play3][fakeground no crate no wall no player no target no textsecret] -> [play3 ][textgrass fakeground]\nlate [play3][wall] -> [play3 ][textwall wall]\n\nright [play4 mark][pmark | letter no comma no vertica] -> [play4 mark][pmark | pmark letter]\nright [play4 mark][tmark | letter] -> [play4 mark][tmark | tmark letter]\nright [play4 mark][cmark | letter no rightbracket no comma] -> [play4 mark][cmark | cmark letter]\n[play4 mark] -> [play4]\n\n[play4][t tmark no nott no nota no notr no notg no note] -> [play4][t tmark nott]\n[play4][a tmark no nott no nota no notr no notg no note] -> [play4][a tmark nota]\n[play4][r tmark no nott no nota no notr no notg no note] -> [play4][r tmark notr]\n[play4][g tmark no nott no nota no notr no notg no note] -> [play4][g tmark notg]\n[play4][e tmark no nott no nota no notr no notg no note] -> [play4][e tmark note]\n\nlate [play4][white no letter] -> [play4][]\n[play4][moving player][pmark letter] -> [play4][moving player][moving pmark moving letter]\n\n[play4][> pmark > letter| stationary letter no cmark no tmark no pmark] -> [play4][stationary pmark stationary letter | letter]\n+ [play4][> cmark > letter| stationary letter no tmark no cmark] -> [play4][stationary cmark stationary letter | letter]\n+ [play4][stationary letter stationary pmark | letter pmark] -> [play4][stationary letter stationary pmark |stationary letter stationary pmark]\n+ [play4][stationary letter stationary cmark | letter cmark] -> [play4][stationary letter stationary cmark |stationary letter stationary cmark]\n\n[play4][> letter > pmark | letter cmark] -> [play4][> letter > pmark |> letter > cmark]\n+ [play4][> letter > cmark | letter cmark] -> [play4][> letter > cmark |> letter > cmark]\n+ [play4][moving letter moving pmark | letter pmark] -> [play4][moving letter moving pmark |moving letter moving pmark]\n+ [play4][moving letter moving cmark | letter cmark] -> [play4][moving letter moving cmark |moving letter moving cmark]\n\n\n[sfa] -> SFX1\n[sfb] -> SFX7\n[sfb] -> SFX9\n\n\n[> letter | letter tmark no pmark no cmark] -> [> letter | tmark]\nlate [tmark no letter nott] -> [tmark t]\nlate [tmark no letter nota] -> [tmark a]\nlate [tmark no letter notg] -> [tmark g]\nlate [tmark no letter note] -> [tmark e]\nlate [tmark no letter notr] -> [tmark r]\n\nlate [play4][letter no white] -> [play4][letter white]\n\n\n[play4][> pmark > letter| stationary letter] -> [play4][stationary pmark stationary letter | letter]\n+ [play4][> cmark > letter| stationary letter] -> [play4][stationary cmark stationary letter | letter]\n+ [play4][stationary letter stationary pmark | letter pmark] -> [play4][stationary letter stationary pmark |stationary letter stationary pmark]\n+ [play4][stationary letter stationary cmark | letter cmark] -> [play4][stationary letter stationary cmark |stationary letter stationary cmark]\n\n\n[cover moving player] -> [cover stationary player]\n\n[> player | crate] -> [> player | > crate] SFX1\n\n\n[play3][> crate | letter] -> [play3][stationary crate |stationary letter]\n[play3][> player | stationary crate] -> [play3][stationary player |stationary crate]\n\n[play5][> player | wall] -> [play5][> player | > wall]\n\n[play5][> wall | letter] -> [play5][stationary wall | letter]\n[play5][> wall | blackwall] -> [play5][stationary wall | blackwall]\n[play5][> wall | lhash] -> [play5][stationary wall | lhash]\n[play5][> wall | rhash] -> [play5][stationary wall | rhash]\n[play5][> wall | wall] -> [play5][stationary wall | wall]\n[play5][> wall | crate] -> [play5][stationary wall | crate]\n\n[play5][> player | letter] -> [play5][> player | > letter]\nlate [play5][white no letter no 6 no 0] -> [play5][]\n\n[play5][> letter | wall] -> [play5][stationary letter | wall]\n[play5][> letter | letter] -> [play5][stationary letter | letter]\n[play5][> letter | blackwall] -> [play5][stationary letter | blackwall]\n[play5][> letter | lhash] -> [play5][stationary letter | lhash]\n[play5][> letter | rhash] -> [play5][stationary letter | rhash]\n[play5][> letter | crate] -> [play5][stationary letter | crate]\n[play5][> player | stationary letter] -> [play5][stationary player | stationary letter]\n[play5][> player | stationary wall] -> [play5][stationary player | stationary wall]\n\n[play5] -> [play5 mark2]\n[play5 mark2][sgoal no s] -> [play5][sgoal]\n[play5 mark2][tgoal no t] -> [play5][tgoal]\n[play5 mark2][agoal no a] -> [play5][agoal]\n[play5 mark2][rgoal no r] -> [play5][rgoal]\n[play5 mark2][ggoal no g] -> [play5][ggoal]\n[play5 mark2][mgoal no m] -> [play5][mgoal]\n[play5 mark2][egoal no e] -> [play5][egoal]\n\n[action player][play5 no mark2] -> [player][play5]\n[play5][action player][pressaction] -> [play5][player][]\n[play5 mark2][pressaction] -> [play5][pressaction]\n\n\n\nleft [play5 mark2][lhash| no target] -> [play5 mark2][lhash|lhash]\n[lhash | target] -> [lhash | target crate]\n[lhash crate] -> [lhash]\nright [play5 mark2][rhash|] -> [play5 mark2][rhash|rhash]\n\n[glitch1][mark] -> [glitch1][]\n\n[crate target][player ending][play5] -> [crate target][player ending][]\n\n[glitch6][item no roulette] -> [glitch6 ][ item random roulette]\n[glitch6][item roulette6] -> [glitch6][random item]\n[glitch6][roulette] -> [glitch6][]\n\n\n\nlate [fakeground][player no fakeground] -> [fakeground][player fakeground]\n\nlate [play4][xmark] -> [play4][xmark green]\nlate [play4][equals] -> [play4][equals grey]\nlate [play4][caret] -> [play4][caret red]\nlate [play4][arrow] -> [play4][arrow red]\nlate [play4][capxx] -> [play4][capxx purple]\nlate right [play4][white a no grey no green no red | ... | green ] -> [play4][white a purple | ... | green ]\nlate right [play4][white l no grey no green no red| ... | green ] -> [play4][white l purple | ... | green ]\nlate right [play4][white o no grey no green no red| ... | green ] -> [play4][white o purple | ... | green ]\nlate right [play4][white n no grey no green no red| ... | green ] -> [play4][white n purple | ... | green ]\nlate [play4][letter no rightbracket no leftbracket no vertica no purple no grey no red] -> [play4][letter green]\n\nlate [green no letter] -> []\nlate [red no letter] -> []\nlate [grey no letter] -> []\nlate [purple no letter] -> []\n==============\nWINCONDITIONS\n==============\nno timer\nall target on crate\nno pressaction\nall notg on cmark\nno play5\n\n\n\n=======\nLEVELS\n=======\n\n\n\n(..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++++,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n.........................................;)\n\n\n\n\n\n\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............,,,,,,,,,,,,,...............\n..............,+++++++++++,...............\n..............,+,?-,,,,~,+,...............\n..............,+++++++++++,...............\n..............,,,,,,,,,,,,,...............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n...you.can.only.push.one.box.at.a.time....\n..........................................\n..........................................\n..........................................\n...........press.3.to.continue............\n..........................................\n..........................................\n..........................................\n.........................................`\n.........................................\\\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++++,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..dont.forget.to.press.5.if.you.get.stuck.\n..........................................\n..........................................\n..........................................\n...........press.3.to.continue............\n..........................................\n..........................................\n.........................................`\n.........................................`\n.........................................\\\n\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,dont7forget.to.press.5.if.you.get.stuck,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,press.3.to.continue,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,????,,,................\n................,???,,???,................\n................,?+~,,~,?,................\n................,?,,--,,?,................\n................,????????,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+,,,,,,+,................\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time...|\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time...8\n...you.can.only.push.one.box.at.a.time....\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............,,,,,,,,,,,,,...............\n..............,+++++++++++,...............\n..dont.forget.to?pr-ss.5~if.you.get.stuck.\n..............,+++++++++++,...............\n..............,,,,,,,,,,,,,...............\n..........................................\n...........press.3.to.continue............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n++++,,++++++++,,++++++++,,++++++++,,++++++\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n++,,,,,,++++,,,,,,++++,,,,,,++++,,,,,,++++\n,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+\n,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n++++,,++++++++,,++++++++,,++++++++,,++++++\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n++,,,,,,++++,,,,,,++++,,,,,,++++,,,,,,++++\n,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+\n,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,9-\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n++++,,++++++++,,++++++++,,++++++++,,++++++\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n++,,,,,,++++,,,,,,++++,,,,,,++++,,,,,,++++\n,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+\n,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,へ-\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n++++,,++++++++,,++++++++,,++++++++,,++++++\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n++,,,,,,++++,,,,,,++++,,,,,,++++,,,,,,++++\n,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+\n,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n\n..........................................\n..........................................\n...............1ゐかくゐ1.155る5...............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.0..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n.........................................`\n.........................................\\\n\n&.........................................\n..........................................\n...............1ゐかくゐ1.155る5.........7.....\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.0..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n..........................................\n..........................................\n\n(..........................................\n..........................................\n...............1ngine.1rror...............\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++++,................\n................,,,,,,,,,,................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n..........................................\n.........................................>)\n\n\n\n\n\n..........................................\n..........................................\n..........................................\n..............2?+,~-}.....................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++++,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n\n%.....................................7...\n.....................^....................\n...............1ゐかくゐ1.155る5...............\n..........................................\n..........................................\n...........^..............................\n..........................................\n..........................................\n..............6.2tart.game.6..............\n.....................^....................\n..........................................\n..........................................\narrow.keys.to.move........................\n...^......................................\n3.to.action...............................\n..................................^.......\n4.to.undo..5.to.restart...................\n..........................................\n..............^...........................\n\nect.canmove.has.been.defined.but.not.assig\n..........................................\nule.matches.object.types.that.cant.overlap\n..........................................\n.name.crtae.referred.to.in.a.rule.does.not\n..........................................\no.indicate.in.which.direction.a.rule.appli\n..........................................\nch.on.the.left.must.have.a.corresponding.p\n..........................................\n.was.looking.for.color.for.object.playerle\n..........................................\ned.an.object.v.but.this.is.a.keyword.dont.\n................\\`````````````............\n...........press.3.to.continue............\n.........................................<\n.arrow.here.consider.reading.up.about.rule\n..........................................\nrors.detected.during.compilation.the.game.\n\n..........................................\n..........................................\n...............1ゐかくゐ1.155る5...............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.0..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undoよ.5.to.restart...................\n.........................................`\n.........................................\\\n\n*....................め....................\n..........................................\n...............1ゐかくゐ1.155る5..........8....\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.0..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n..........................................\n..........................................\n\n\n\n\n\n..........................................\n..........................................\nらrintin~.level.-ontents#..................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++[+,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n.........................................{\n\n$.....................................7...\n.....................^....................\n...............1ゐかくゐ1.155る5...............\n..........................................\n..........................................\n...........^..............................\n..........................................\n..........................................\n..............6.2tart.game.6..............\n.....................^....................\n..........................................\n..........................................\narrow.keys.to.move........................\n...^......................................\n3.to.action...............................\n..................................^.......\n4.to.undo..5.to.restart...................\n..........................................\n..............^...........................\n\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\n.........................................7\n\nひひひひひひひひひひひひひひひひ..........................\nうるそそく2くるゐそあふ152...........................\nひひひひひひひひひひひひひひひひ..........................\nbackground................................\nとrateよ.せlayer.............................\nすarget....................................\n..........................................\nひひひひひひ....................................\n5ゆそ12.....................................\nひひひひひひ....................................\nろれ.せlayerやとrateゑりろれ.せlayerやれ.とrateゑ.......\n..........................................\nひひひひひひひひひひひひひひ............................\nむくゐうるゐえくわくるゐ2.............................\nひひひひひひひひひひひひひひ............................\n..........................................\nall.すarget.on.とrate.......................\n.........................................\\\nひひひひひひひひひ................................]\n\n\n\n......................................\"............................................'\n......................................\".............................................\n......................................\".................1ngine.1rror................\n......................................\".............................................\n......................................\".............................................\n......................................\".............................................\n................,,,,,,,,,,............\".............................................\n................,++++++++,............\".............................................\n................,+?,~,-,+,............\"................6.のさたなさ.はたぬま.0...............\n................,++++++++,............\".............................................\n................,,,,,,,,,,............\".............................................\n......................................\".............................................\n......................................\"..arrow.keys.to.move.........................\n......................................\".............................................\n......................................\"..3.to.action................................\n......................................\".............................................\n......................................\"..4.to.undo..5.to.restart....................\n......................................\"...にににににににににににににににににににににににににににににににににににににににににに\n......................................\"...にににににににににににににににににににににににににににににににににににににににににに\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n(\n\n\n\n..........................................\n..........................................\n...............1ngine.1rror...............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.6..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n..........................................\n..........................................\n",["tick","tick","tick",3,3,"tick",3,"tick","tick",3,"tick",3,"tick","tick",4,"tick","tick","tick","tick",3,"tick",2,"tick",3,"tick",3,0,"tick",1,2,"tick","tick","tick",0,"tick","undo","tick","undo","tick","undo","tick",0,"tick",1,2,"tick",3,2,"tick","tick",3,"tick",3,0,"tick",1,"tick","tick","tick",0,"tick",0,3,"tick",3,"tick",3,2,"tick",3,3,2,"tick",1,"tick",1,"tick","tick",1,"tick",0,"tick",0,3,"tick",2,1,"tick",1,"tick",1,2,3,"tick","tick","tick",4,"tick","tick","tick","tick",4,"tick","tick","tick","tick","tick",2,"tick",2,"tick",2,"tick",2,"tick","tick","tick","tick"],"background: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,\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,\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,\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,\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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background fakeground:1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,background fakeground player:2,\n2,2,2,0,0,0,0,0,0,0,0,0,1,1,2,background fakeground wall:3,1,1,1,1,1,2,0,0,0,0,0,0,0,0,0,1,1,1,background fakeground target:4,1,2,2,1,1,2,0,\n0,0,0,0,0,0,0,0,1,1,1,1,1,2,background crate fakeground:5,1,1,2,0,0,0,0,0,0,0,0,0,1,1,1,1,1,2,5,1,1,2,0,0,0,0,0,\n0,0,0,0,1,1,1,4,1,2,2,1,1,2,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,2,1,1,2,0,0,0,0,0,0,0,0,0,\n1,1,1,1,1,1,2,2,2,2,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,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,\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,\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,\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,\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,\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,\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,\n",0,"1627770452561.3662"] + ["title Easy Enigma\n\nrun_rules_on_level_start\nrealtime_interval 0.2\n\nnorepeat_action\n\nbackground_color black\n\nflickscreen 42x19\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nfakeground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\nfakeWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\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\ncapa あ\nblack transparent\n01100\n10010\n11110\n10010\n10010\n\ncapb い\nblack transparent\n11100\n10010\n11100\n10010\n11100\n\ncapc う\nblack transparent\n01110\n10000\n10000\n10000\n01110\n\ncapd え\nblack transparent\n11100\n10010\n10010\n10010\n11100\n\ncape 1\nblack transparent\n11110\n10000\n11100\n10000\n11110\n\ncapf お\nblack transparent\n11110\n10000\n11100\n10000\n10000\n\ncapg か\nblack transparent\n01110\n10000\n10110\n10010\n01100\n\ncaph き\nblack transparent\n10010\n10010\n11110\n10010\n10010\n\ncapi く\nblack transparent\n01110\n00100\n00100\n00100\n01110\n\ncapj け\nblack transparent\n11110\n00100\n00100\n10100\n01000\n\ncapk こ\nblack transparent\n10010\n10010\n11100\n10010\n10010\n\ncapl そ\nblack transparent\n10000\n10000\n10000\n10000\n11110\n\ncapm し\nblack transparent\n01010\n10101\n10101\n10101\n10101\n\ncapn ゐ\nblack transparent\n10010\n11010\n10110\n10010\n10010\n\ncapo る\nblack transparent\n01100\n10010\n10010\n10010\n01100\n\ncapp ら\nblack transparent\n11100\n10010\n11100\n10000\n10000\n\ncapq み\nblack transparent\n01100\n10010\n10010\n10110\n01110\n\ncapr 5\nblack transparent\n11100\n10010\n11100\n10010\n10010\n\ncaps 2\nblack transparent\n01110\n10000\n01100\n00010\n11100\n\ncapt わ\nblack transparent\n01110\n00100\n00100\n00100\n00100\n\ncapu ゆ\nblack transparent\n10010\n10010\n10010\n10010\n01100\n\ncapv を\nblack transparent\n10010\n10010\n10100\n11000\n10000\n\ncapw む\nblack transparent\n10001\n10101\n10101\n10101\n01010\n\ncapx 3\nblack transparent\n10010\n10010\n01100\n10010\n10010\n\ncapy ふ\nblack transparent\n10010\n10010\n01110\n00010\n11100\n\ncapz 4\nblack transparent\n11110\n00010\n00100\n01000\n11110\n\nlhash 6\nblack transparent\n01010\n11111\n01010\n11111\n01010\n\nrhash 0\nblack transparent\n01010\n11111\n01010\n11111\n01010\n\n\na\nblack transparent\n00000\n01110\n10010\n10010\n01110\n\nb\nblack transparent\n10000\n10000\n11100\n10010\n01100\n\nc\nblack transparent\n00000\n01110\n10000\n10000\n01110\n\nd\nblack transparent\n00010\n00010\n01110\n10010\n01100\n\ne\nblack transparent\n01100\n10010\n11100\n10000\n01100\n\nf\nblack transparent\n00000\n00110\n01000\n11100\n01000\n\ng\nblack transparent\n01100\n10010\n01110\n00010\n01100\n\nh\nblack transparent\n10000\n10000\n11100\n10010\n10010\n\ni\nblack transparent\n01000\n00000\n11000\n01000\n11100\n\nj\nblack transparent\n00100\n00000\n00100\n10100\n01000\n\nk\nblack transparent\n10000\n10010\n11100\n10010\n10010\n\nl\nblack transparent\n10000\n10000\n10000\n10010\n01100\n\nm\nblack transparent\n00000\n01010\n10101\n10101\n10101\n\nn\nblack transparent\n00000\n01100\n10010\n10010\n10010\n\no\nblack transparent\n00000\n01100\n10010\n10010\n01100\n\np\nblack transparent\n00000\n01100\n10010\n11100\n10000\n\nq\nblack transparent\n00000\n01100\n10010\n01110\n00010\n\nr\nblack transparent\n00000\n01110\n10000\n10000\n10000\n\ns\nblack transparent\n01110\n10000\n01100\n00010\n11100\n\nt\nblack transparent\n10000\n11000\n10000\n10010\n01100\n\nu\nblack transparent\n00000\n10010\n10010\n10010\n01100\n\nv\nblack transparent\n00000\n10010\n10100\n11000\n10000\n\nw\nblack transparent\n00000\n10001\n10101\n10101\n01010\n\nx\nblack transparent\n00000\n10010\n01100\n01100\n10010\n\ny\nblack transparent\n10010\n10010\n01110\n00010\n11100\n\nz\nblack transparent\n00000\n11110\n00100\n01000\n11110\n\nglitch1\ntransparent\n\nglitch2\ntransparent\n\nwhite\nwhite\n\nblack\nblack\n\nmark\ntransparent\n\nmark2\ntransparent\n\nglitchright1\n#af1239 #2167ee\n00000\n11111\n...1.\n00000\n.....\n\nglitchright2\n#3fa257 #1878ff #ae2629\n.....\n012..\n...20\n22222\n11111\n\nglitchright3\n#c0ffee #3de312 #087a55\n00000\n..00.\n1111.\n....1\n22222\n\n\n\nglitchright4\ntransparent\n\nglitchright5\n#e451b8 #cbff12\n.0...\n0.000\n.00..\n11111\n.....\n\nglitchright6\n#12baef #55efcb #f16743\n.....\n22222\n000.0\n.....\n.1111\n\nroulette1\ntransparent\n\nroulette2\ntransparent\n\nroulette3\ntransparent\n\nroulette4\ntransparent\n\nroulette5\ntransparent\n\nroulette6\ntransparent\n\nglitch3\ntransparent\n\nglitch4\ntransparent\n\nglitch6\ntransparent\n\nback1\n black\n.00.0\n.00.0\n.00.0\n.00.0\n.00.0\n\nback2\n black\n00.0.\n00.0.\n00.0.\n00.0.\n00.0.\n\nback3\n black\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n\nback4\n black\n..0..\n..0..\n..0..\n..0..\n..0..\n\ntimer9\ntransparent\n\ntimer8\ntransparent\n\ntimer7\ntransparent\n\ntimer6\ntransparent\n\ntimer5\ntransparent\n\ntimer4\ntransparent\n\ntimer3\ntransparent\n\ntimer2\ntransparent\n\ntimer1\ntransparent\n\ntimer0\ntransparent\n\npressaction\ntransparent\n\ncover\nblack\n\nplay1\ntransparent\n\nplay2\ntransparent\n\nglitch5\ntransparent\n\ntextgrass\nwhite black\n11111\n11111\n11111\n11011\n11111\n\ntextwall\nwhite black\n11111\n10101\n11011\n10101\n11111\n\ntextsecret\nwhite black\n10001\n11101\n11001\n11111\n11011\n\ntextplayer\nwhite black\n11011\n11011\n11011\n11111\n11011\n\ntextcrate\nwhite black\n11111\n10001\n01111\n01111\n10001\n\ntexttarget\nwhite black\n10001\n01101\n10001\n11101\n10011\n\nplay3\ntransparent\n\nleftbracket ろ\nblack transparent\n01100\n01000\n01000\n01000\n01100\n\nrightbracket ゑ\nblack transparent\n00110\n00010\n00010\n00010\n00110\n\n\ncolon\nblack transparent\n00000\n01000\n00000\n01000\n00000\n\narrow り\nblack transparent\n00100\n00010\n11101\n00010\n00100\n \nvertica や\nblack transparent\n00100\n00100\n00100\n00100\n00100\n\nequals ひ\nblack transparent\n00000\n11110\n00000\n11110\n00000\n\ncaret れ\nblack transparent\n00000\n01000\n00100\n01000\n00000\n\ncomma よ\nblack transparent\n00000\n00000\n00000\n00100\n01000\n\ntmark\ntransparent\n\npmark\ntransparent\n\ncmark\ntransparent\n\nplay4\ntransparent\n\nnott\ntransparent\n\nnota\ntransparent\n\nnotr\ntransparent\n\nnotg\ntransparent\n\nnote\ntransparent\n\nplay5\ntransparent\n\nblackwall に\nblack\n\nsgoal の\ntransparent\n\ntgoal さ\ntransparent\n\nagoal た\ntransparent\n\nrgoal な\ntransparent\n\nggoal は\ntransparent\n\nmgoal ぬ\ntransparent\n\negoal ま\ntransparent\n\nending \"\ntransparent\n\nsf2 |\ntransparent\n\nfakeTarget =\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\ngreen\n#10ae1c\n\npurple\n#a055c0\n\ngrey\n#888888\n\nred\n#c11d16\n\nsfa め\ntransparent\n\nsfb へ\ntransparent\n\n\n=======\nLEGEND\n=======\n\n7 = timer2 and cover\n8 = timer5 and cover\n9 = timer9 and cover\n. = Background\n, = fakeground\n+ = Wall and fakeground\n? = player and fakeground\n- = Crate and fakeground\n~ = target and fakeground\n} = Crate and Target and fakeground\nglitchright = glitchright1 or glitchright2 or glitchright3 or glitchright4 or glitchright5 or glitchright6\nroulette = roulette1 or roulette2 or roulette3 or roulette4 or roulette5 or roulette6\nback = back1 or back2 or back3 or back4\ntimer = timer0 or timer1 or timer2 or timer3 or timer4 or timer5 or timer6 or timer7 or timer8 or timer9\n$ = glitch1\n% = glitch2\n& = glitch3\n* = glitch4\n^ = mark\n` = pressaction\n\\ = cover and player\n/ = play1\n> = play2\n{ = play3\n< = glitch5\n; = glitch6\n[ = textsecret and fakeground\n] = play4 and mark\ntext = textplayer or textgrass or textwall or textcrate or texttarget\n' = play5\nせ = p and pmark\nす = t and tmark\nと = c and cmark\n# = colon\nxmark = pmark or tmark or cmark\nitem = player or crate or wall\ncapxx = capq or capw or cape or capr or capt or capy or capu or capi or capo or capp or capa or caps or capd or capf or capg or caph or capj or capk or capl or capz or capx or capc or capv or capv or capb or capn or capm\nletter = 1 or 2 or 3 or 4 or 5 or q or w or e or r or t or y or u or i or o or p or a or s or d or f or g or h or j or k or l or z or x or c or v or b or n or m or leftbracket or rightbracket or vertica or arrow or equals or comma or caret or capq or capw or cape or capr or capt or capy or capu or capi or capo or capp or capa or caps or capd or capf or capg or caph or capj or capk or capl or capz or capx or capc or capv or capv or capb or capn or capm or colon\n: = fakewall\nxgoal = sgoal or tgoal or agoal or rgoal or ggoal or mgoal or egoal\ncols = grey or purple or green or red\n=======\nSOUNDS\n=======\n\nSFX7 24019108\nSFX8 5183708\nSFX9 32607708\nSFX0 51652308\nSFX1 11432507\nSFX2 10961308\n================\nCOLLISIONLAYERS\n================\n\nBackground\nfakeground, \nblack\nTarget\nsfa\nsfb\nfaketarget\nxgoal\nwhite\nback\nfakewall\nPlayer, Wall, Crate, blackwall\nred, green, purple, grey\nletter\n6, rhash\nending\nglitch1, glitch2, glitch3, glitch4, glitch5, glitch6, play1, play2, play3, play4, play5\nglitchright\nroulette\ntimer\nmark\nmark2\npressaction\ntmark, \ncmark, pmark\nnott, nota,notr,notg,note\ntext, textsecret\ncover\nsf2\n\n======\nRULES\n======\n\n[faketarget] -> [faketarget fakeground]\n\n[sf2] -> SFX2\n[action player][pressaction] -> [player][]\n\n\n[player cover no timer] -> [player cover mark2]\n[player cover mark2][pressaction] -> [player cover ][pressaction]\n\n\nleft [player cover mark2][lhash|] -> [player cover mark2][lhash|lhash]\nright [player cover mark2][rhash|] -> [player cover mark2][rhash|rhash]\n[player cover mark2] -> [player cover]\n\n[timer0] -> []\n[timer1] -> [timer0]\n[timer2] -> [timer1]\n[timer3] -> [timer2]\n[timer4] -> [timer3]\n[timer5] -> [timer4]\n[timer6] -> [timer5]\n[timer7] -> [timer6]\n[timer8] -> [timer7]\n[timer9] -> [timer8]\n\n\n\nlate [letter no white] -> [letter white]\n\n[6 no white] -> [6 white]\n[0 no white] -> [0 white]\n\nup [glitch1][letter ] -> [glitch1][random letter mark]\nleft [glitch1][letter |...| no mark] -> [glitch1][letter mark | ... |letter]\ndown [glitch1][letter |...| no mark] -> [glitch1][letter mark| ... |letter]\n\n\n\n[glitch2][glitchright no roulette] -> [glitch2][glitchright random roulette]\n[glitch2][roulette6 glitchright] -> [glitch2][]\n[glitch2][roulette] -> [glitch2][]\ndown [glitch2][no glitchright|mark] -> [glitch2][random glitchright|mark]\nright [glitch2][glitchright|] -> [glitch2][glitchright|glitchright]\n\n\nleft [glitch3][letter no mark| no letter] -> [glitch3][letter mark|letter ]\nleft [glitch3][letter no mark| mark] -> [glitch3][letter mark|letter mark]\nup [glitch3][letter no mark| no letter] -> [glitch3][letter mark|letter ]\nup [glitch3][letter no mark| mark] -> [glitch3][letter mark|letter mark]\n[glitch3][letter mark] -> [glitch3][letter]\n\n[glitch5][mark] -> [glitch5][]\nright [glitch5][3 no mark | no 3 | ] -> [glitch5][3|3 mark | 3 mark]\n\n[glitch4][letter no mark] -> [glitch4][letter random back mark]\n[glitch4][mark] -> [glitch4][] SFX0\n\n[play1][moving player][wall no roulette] -> [play1][moving player][wall random roulette]\n[play1][moving player][wall roulette6 mark2] -> [play1][moving player][]\n[play1][moving player][wall roulette6 mark] -> [play1][moving player][wall mark2]\n[play1][moving player][wall roulette6] -> [play1][moving player][wall mark]\n[play1][moving player][roulette] -> [play1][moving player][]\n\n\n[play2][no fakeground no black] -> [play2][black]\n[play2][no fakeground] -> [play2][fakeground ]\n[play2][moving player][black] -> [play2][moving player][moving black]\n[play2][moving player][fakeground] -> [play2][moving player][moving fakeground]\n[play2][> fakeground no black no mark| black] -> [play2][> fakeground | mark]\n[play2][moving player] -> [play2][stationary player]\n[play2][> black | wall] -> [play2][> black | > wall]\n[play2][moving wall | wall] -> [play2][moving wall | moving wall]\n[play2][> wall | player] -> [play2][> wall | > player]\n[play2][> wall | crate] -> [play2][> wall | > crate]\n[play2][> player | wall] -> [play2][> player | > wall]\n[play2][> crate | wall] -> [play2][> crate | > wall]\n[play2][> crate | player] -> [play2][> crate | > player]\n[play2][> player | crate] -> [play2][> player | > crate]\n\nlate [play3][text] -> [play3][]\nlate [play3][crate] -> [play3][ textcrate crate]\nlate [play3][player] -> [play3 ][textplayer player]\n[play3][> player | letter no c no g] -> [play3][stationary player | letter]\n \nlate [play3][target no crate no player] -> [play3][ texttarget target]\nlate [play3][fakeground no crate no wall no player no target no textsecret] -> [play3 ][textgrass fakeground]\nlate [play3][wall] -> [play3 ][textwall wall]\n\nright [play4 mark][pmark | letter no comma no vertica] -> [play4 mark][pmark | pmark letter]\nright [play4 mark][tmark | letter] -> [play4 mark][tmark | tmark letter]\nright [play4 mark][cmark | letter no rightbracket no comma] -> [play4 mark][cmark | cmark letter]\n[play4 mark] -> [play4]\n\n[play4][t tmark no nott no nota no notr no notg no note] -> [play4][t tmark nott]\n[play4][a tmark no nott no nota no notr no notg no note] -> [play4][a tmark nota]\n[play4][r tmark no nott no nota no notr no notg no note] -> [play4][r tmark notr]\n[play4][g tmark no nott no nota no notr no notg no note] -> [play4][g tmark notg]\n[play4][e tmark no nott no nota no notr no notg no note] -> [play4][e tmark note]\n\nlate [play4][white no letter] -> [play4][]\n[play4][moving player][pmark letter] -> [play4][moving player][moving pmark moving letter]\n\n[play4][> pmark > letter| stationary letter no cmark no tmark no pmark] -> [play4][stationary pmark stationary letter | letter]\n+ [play4][> cmark > letter| stationary letter no tmark no cmark] -> [play4][stationary cmark stationary letter | letter]\n+ [play4][stationary letter stationary pmark | letter pmark] -> [play4][stationary letter stationary pmark |stationary letter stationary pmark]\n+ [play4][stationary letter stationary cmark | letter cmark] -> [play4][stationary letter stationary cmark |stationary letter stationary cmark]\n\n[play4][> letter > pmark | letter cmark] -> [play4][> letter > pmark |> letter > cmark]\n+ [play4][> letter > cmark | letter cmark] -> [play4][> letter > cmark |> letter > cmark]\n+ [play4][moving letter moving pmark | letter pmark] -> [play4][moving letter moving pmark |moving letter moving pmark]\n+ [play4][moving letter moving cmark | letter cmark] -> [play4][moving letter moving cmark |moving letter moving cmark]\n\n\n[sfa] -> SFX1\n[sfb] -> SFX7\n[sfb] -> SFX9\n\n\n[> letter | letter tmark no pmark no cmark] -> [> letter | tmark]\nlate [tmark no letter nott] -> [tmark t]\nlate [tmark no letter nota] -> [tmark a]\nlate [tmark no letter notg] -> [tmark g]\nlate [tmark no letter note] -> [tmark e]\nlate [tmark no letter notr] -> [tmark r]\n\nlate [play4][letter no white] -> [play4][letter white]\n\n\n[play4][> pmark > letter| stationary letter] -> [play4][stationary pmark stationary letter | letter]\n+ [play4][> cmark > letter| stationary letter] -> [play4][stationary cmark stationary letter | letter]\n+ [play4][stationary letter stationary pmark | letter pmark] -> [play4][stationary letter stationary pmark |stationary letter stationary pmark]\n+ [play4][stationary letter stationary cmark | letter cmark] -> [play4][stationary letter stationary cmark |stationary letter stationary cmark]\n\n\n[cover moving player] -> [cover stationary player]\n\n[> player | crate] -> [> player | > crate] SFX1\n\n\n[play3][> crate | letter] -> [play3][stationary crate |stationary letter]\n[play3][> player | stationary crate] -> [play3][stationary player |stationary crate]\n\n[play5][> player | wall] -> [play5][> player | > wall]\n\n[play5][> wall | letter] -> [play5][stationary wall | letter]\n[play5][> wall | blackwall] -> [play5][stationary wall | blackwall]\n[play5][> wall | lhash] -> [play5][stationary wall | lhash]\n[play5][> wall | rhash] -> [play5][stationary wall | rhash]\n[play5][> wall | wall] -> [play5][stationary wall | wall]\n[play5][> wall | crate] -> [play5][stationary wall | crate]\n\n[play5][> player | letter] -> [play5][> player | > letter]\nlate [play5][white no letter no 6 no 0] -> [play5][]\n\n[play5][> letter | wall] -> [play5][stationary letter | wall]\n[play5][> letter | letter] -> [play5][stationary letter | letter]\n[play5][> letter | blackwall] -> [play5][stationary letter | blackwall]\n[play5][> letter | lhash] -> [play5][stationary letter | lhash]\n[play5][> letter | rhash] -> [play5][stationary letter | rhash]\n[play5][> letter | crate] -> [play5][stationary letter | crate]\n[play5][> player | stationary letter] -> [play5][stationary player | stationary letter]\n[play5][> player | stationary wall] -> [play5][stationary player | stationary wall]\n\n[play5] -> [play5 mark2]\n[play5 mark2][sgoal no s] -> [play5][sgoal]\n[play5 mark2][tgoal no t] -> [play5][tgoal]\n[play5 mark2][agoal no a] -> [play5][agoal]\n[play5 mark2][rgoal no r] -> [play5][rgoal]\n[play5 mark2][ggoal no g] -> [play5][ggoal]\n[play5 mark2][mgoal no m] -> [play5][mgoal]\n[play5 mark2][egoal no e] -> [play5][egoal]\n\n[action player][play5 no mark2] -> [player][play5]\n[play5][action player][pressaction] -> [play5][player][]\n[play5 mark2][pressaction] -> [play5][pressaction]\n\n\n\nleft [play5 mark2][lhash| no target] -> [play5 mark2][lhash|lhash]\n[lhash | target] -> [lhash | target crate]\n[lhash crate] -> [lhash]\nright [play5 mark2][rhash|] -> [play5 mark2][rhash|rhash]\n\n[glitch1][mark] -> [glitch1][]\n\n[crate target][player ending][play5] -> [crate target][player ending][]\n\n[glitch6][item no roulette] -> [glitch6 ][ item random roulette]\n[glitch6][item roulette6] -> [glitch6][random item]\n[glitch6][roulette] -> [glitch6][]\n\n\n\nlate [fakeground][player no fakeground] -> [fakeground][player fakeground]\n\nlate [play4][xmark] -> [play4][xmark green]\nlate [play4][equals] -> [play4][equals grey]\nlate [play4][caret] -> [play4][caret red]\nlate [play4][arrow] -> [play4][arrow red]\nlate [play4][capxx] -> [play4][capxx purple]\nlate right [play4][white a no grey no green no red | ... | green ] -> [play4][white a purple | ... | green ]\nlate right [play4][white l no grey no green no red| ... | green ] -> [play4][white l purple | ... | green ]\nlate right [play4][white o no grey no green no red| ... | green ] -> [play4][white o purple | ... | green ]\nlate right [play4][white n no grey no green no red| ... | green ] -> [play4][white n purple | ... | green ]\nlate [play4][letter no rightbracket no leftbracket no vertica no purple no grey no red] -> [play4][letter green]\n\nlate [green no letter] -> []\nlate [red no letter] -> []\nlate [grey no letter] -> []\nlate [purple no letter] -> []\n==============\nWINCONDITIONS\n==============\nno timer\nall target on crate\nno pressaction\nall notg on cmark\nno play5\n\n\n\n=======\nLEVELS\n=======\n\n\n\n(..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++++,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n.........................................;)\n\n\n\n\n\n\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............,,,,,,,,,,,,,...............\n..............,+++++++++++,...............\n..............,+,?-,,,,~,+,...............\n..............,+++++++++++,...............\n..............,,,,,,,,,,,,,...............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n...you.can.only.push.one.box.at.a.time....\n..........................................\n..........................................\n..........................................\n...........press.3.to.continue............\n..........................................\n..........................................\n..........................................\n.........................................`\n.........................................\\\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++++,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..dont.forget.to.press.5.if.you.get.stuck.\n..........................................\n..........................................\n..........................................\n...........press.3.to.continue............\n..........................................\n..........................................\n.........................................`\n.........................................`\n.........................................\\\n\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,dont7forget.to.press.5.if.you.get.stuck,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,press.3.to.continue,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,????,,,................\n................,???,,???,................\n................,?+~,,~,?,................\n................,?,,--,,?,................\n................,????????,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+,,,,,,+,................\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time...|\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time...8\n...you.can.only.push.one.box.at.a.time....\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............,,,,,,,,,,,,,...............\n..............,+++++++++++,...............\n..dont.forget.to?pr-ss.5~if.you.get.stuck.\n..............,+++++++++++,...............\n..............,,,,,,,,,,,,,...............\n..........................................\n...........press.3.to.continue............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n++++,,++++++++,,++++++++,,++++++++,,++++++\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n++,,,,,,++++,,,,,,++++,,,,,,++++,,,,,,++++\n,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+\n,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n++++,,++++++++,,++++++++,,++++++++,,++++++\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n++,,,,,,++++,,,,,,++++,,,,,,++++,,,,,,++++\n,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+\n,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,9-\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n++++,,++++++++,,++++++++,,++++++++,,++++++\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n++,,,,,,++++,,,,,,++++,,,,,,++++,,,,,,++++\n,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+\n,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,へ-\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n++++,,++++++++,,++++++++,,++++++++,,++++++\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n++,,,,,,++++,,,,,,++++,,,,,,++++,,,,,,++++\n,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+\n,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n\n..........................................\n..........................................\n...............1ゐかくゐ1.155る5...............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.0..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n.........................................`\n.........................................\\\n\n&.........................................\n..........................................\n...............1ゐかくゐ1.155る5.........7.....\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.0..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n..........................................\n..........................................\n\n(..........................................\n..........................................\n...............1ngine.1rror...............\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++++,................\n................,,,,,,,,,,................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n..........................................\n.........................................>)\n\n\n\n\n\n..........................................\n..........................................\n..........................................\n..............2?+,~-}.....................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++++,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n\n%.....................................7...\n.....................^....................\n...............1ゐかくゐ1.155る5...............\n..........................................\n..........................................\n...........^..............................\n..........................................\n..........................................\n..............6.2tart.game.6..............\n.....................^....................\n..........................................\n..........................................\narrow.keys.to.move........................\n...^......................................\n3.to.action...............................\n..................................^.......\n4.to.undo..5.to.restart...................\n..........................................\n..............^...........................\n\nect.canmove.has.been.defined.but.not.assig\n..........................................\nule.matches.object.types.that.cant.overlap\n..........................................\n.name.crtae.referred.to.in.a.rule.does.not\n..........................................\no.indicate.in.which.direction.a.rule.appli\n..........................................\nch.on.the.left.must.have.a.corresponding.p\n..........................................\n.was.looking.for.color.for.object.playerle\n..........................................\ned.an.object.v.but.this.is.a.keyword.dont.\n................\\`````````````............\n...........press.3.to.continue............\n.........................................<\n.arrow.here.consider.reading.up.about.rule\n..........................................\nrors.detected.during.compilation.the.game.\n\n..........................................\n..........................................\n...............1ゐかくゐ1.155る5...............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.0..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undoよ.5.to.restart...................\n.........................................`\n.........................................\\\n\n*....................め....................\n..........................................\n...............1ゐかくゐ1.155る5..........8....\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.0..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n..........................................\n..........................................\n\n\n\n\n\n..........................................\n..........................................\nらrintin~.level.-ontents#..................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++[+,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n.........................................{\n\n$.....................................7...\n.....................^....................\n...............1ゐかくゐ1.155る5...............\n..........................................\n..........................................\n...........^..............................\n..........................................\n..........................................\n..............6.2tart.game.6..............\n.....................^....................\n..........................................\n..........................................\narrow.keys.to.move........................\n...^......................................\n3.to.action...............................\n..................................^.......\n4.to.undo..5.to.restart...................\n..........................................\n..............^...........................\n\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\n.........................................7\n\nひひひひひひひひひひひひひひひひ..........................\nうるそそく2くるゐそあふ152...........................\nひひひひひひひひひひひひひひひひ..........................\nbackground................................\nとrateよ.せlayer.............................\nすarget....................................\n..........................................\nひひひひひひ....................................\n5ゆそ12.....................................\nひひひひひひ....................................\nろれ.せlayerやとrateゑりろれ.せlayerやれ.とrateゑ.......\n..........................................\nひひひひひひひひひひひひひひ............................\nむくゐうるゐえくわくるゐ2.............................\nひひひひひひひひひひひひひひ............................\n..........................................\nall.すarget.on.とrate.......................\n.........................................\\\nひひひひひひひひひ................................]\n\n\n\n......................................\"............................................'\n......................................\".............................................\n......................................\".................1ngine.1rror................\n......................................\".............................................\n......................................\".............................................\n......................................\".............................................\n................,,,,,,,,,,............\".............................................\n................,++++++++,............\".............................................\n................,+?,~,-,+,............\"................6.のさたなさ.はたぬま.0...............\n................,++++++++,............\".............................................\n................,,,,,,,,,,............\".............................................\n......................................\".............................................\n......................................\"..arrow.keys.to.move.........................\n......................................\".............................................\n......................................\"..3.to.action................................\n......................................\".............................................\n......................................\"..4.to.undo..5.to.restart....................\n......................................\"...にににににににににににににににににににににににににににににににににににににににににに\n......................................\"...にににににににににににににににににににににににににににににににににににににににににに\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n(\n\n\n\n..........................................\n..........................................\n...............1ngine.1rror...............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.6..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n..........................................\n..........................................\n", ["tick", "tick", "tick", 3, 3, "tick", 3, "tick", "tick", 3, "tick", 3, "tick", "tick", 4, "tick", "tick", "tick", "tick", 3, "tick", 2, "tick", 3, "tick", 3, 0, "tick", 1, 2, "tick", "tick", "tick", 0, "tick", "undo", "tick", "undo", "tick", "undo", "tick", 0, "tick", 1, 2, "tick", 3, 2, "tick", "tick", 3, "tick", 3, 0, "tick", 1, "tick", "tick", "tick", 0, "tick", 0, 3, "tick", 3, "tick", 3, 2, "tick", 3, 3, 2, "tick", 1, "tick", 1, "tick", "tick", 1, "tick", 0, "tick", 0, 3, "tick", 2, 1, "tick", 1, "tick", 1, 2, 3, "tick", "tick", "tick", 4, "tick", "tick", "tick", "tick", 4, "tick", "tick", "tick", "tick", "tick", 2, "tick", 2, "tick", 2, "tick", 2, "tick", "tick", "tick", "tick"], "background: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,\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,\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,\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,\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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background fakeground:1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,background fakeground player:2,\n2,2,2,0,0,0,0,0,0,0,0,0,1,1,2,background fakeground wall:3,1,1,1,1,1,2,0,0,0,0,0,0,0,0,0,1,1,1,background fakeground target:4,1,2,2,1,1,2,0,\n0,0,0,0,0,0,0,0,1,1,1,1,1,2,background crate fakeground:5,1,1,2,0,0,0,0,0,0,0,0,0,1,1,1,1,1,2,5,1,1,2,0,0,0,0,0,\n0,0,0,0,1,1,1,4,1,2,2,1,1,2,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,2,1,1,2,0,0,0,0,0,0,0,0,0,\n1,1,1,1,1,1,2,2,2,2,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,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,\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,\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,\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,\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,\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,\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,\n", 0, "1627770452561.3662"] ], [ `gallery game: coin collector`, - ["title Coin Counter\n\nverbose_logging\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground \nlightblue\n\nwall\ndarkbrown\n\nt\ntransparent\n\ntl\ntransparent\n\ntr\ntransparent\n\nm\ntransparent\n\nbl\ntransparent\n\nbr\ntransparent\n\nb\ntransparent\n\ncorner\ntransparent\n\non\nblue\n\noff\ndarkbrown\n\none 1\ntransparent\n\ntwo 2\ntransparent\n\nthree 3\ntransparent\n\nfour 4\ntransparent\n\nfive 5\ntransparent\n\nsix 6\ntransparent\n\nseven 7\ntransparent\n\neight 8\ntransparent\n\nnine 9\ntransparent\n\nzero 0\ntransparent\n\nplayer\ngreen\n\ncoin\n#ff0\n.....\n.000.\n.0.0.\n.000.\n.....\n\nending\ntransparent\n\ntens\ntransparent\n\ncarry\ntransparent\n\nfiver\n#ff0\n..0..\n.000.\n00.00\n.000.\n..0..\n\nstar\n#ff0 yellow orange\n0.0.0\n.121.\n02.20\n.121.\n0.0.0\n\nhund\ntransparent\n\nwon\ntransparent\n\nlast\ntransparent\n\nfakecoin\n#ff0\n.....\n.000.\n.0.0.\n.000.\n.....\n=======\nLEGEND\n=======\n\nc = corner\nl = tl\nr = tr\nw = bl\ne = br\nseg = t or l or r or m or w or e or b\nnum = zero or one or two or three or four or five or six or seven or eight or nine\np = player\nk = coin\n. = background\nx = wall\n\n! = t and coin\n@ = l and coin\n# = r and coin\n$ = m and coin\n% = w and coin\n^ = e and coin\n& = b and coin\n* = c and coin\n\n{ = t and fiver\n} = l and fiver\n; = r and fiver\n: = m and fiver\n' = w and fiver\n\" = e and fiver\n, = b and fiver\n/ = c and fiver\n\nf = fiver\n\n? = tens and wall\n\n- = fakecoin\n\nj = star\n` = hund\nz = ending\n~ = last\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nseg\ncorner\nnum\non\noff\ncoin, fiver\nstar\nplayer, wall\nending\ntens\ncarry\nwon\nhund\nlast\nfakecoin\n======\nRULES \n====== \n\n[last][ action player ]-> win\n[last ][moving player] -> win\nup [tens|no tens] -> [tens | tens]\ndown [tens|no tens] -> [tens | tens]\n\n[> player | off] -> [stationary player | off]\nlate [player off] -> [off]\n\nlate [player coin] -> again\nlate [player fiver] -> again\nlate [player star] -> again\n\n[player coin][zero no tens] -> [player][one]\n[player coin][one no tens] -> [player][two]\n[player coin][two no tens] -> [player][three]\n[player coin][three no tens] -> [player][four]\n[player coin][four no tens] -> [player][five]\n[player coin][five no tens] -> [player][six]\n[player coin][six no tens] -> [player][seven]\n[player coin][seven no tens] -> [player][eight]\n[player coin][eight no tens] -> [player][nine]\n[player coin][nine no tens] -> [player][zero carry]\n\n[player fiver][zero no tens] -> [player][five]\n[player fiver][one no tens] -> [player][six]\n[player fiver][two no tens] -> [player][seven]\n[player fiver][three no tens] -> [player][eight]\n[player fiver][four no tens] -> [player][nine]\n[player fiver][five no tens] -> [player][zero carry]\n[player fiver][six no tens] -> [player][one carry]\n[player fiver][seven no tens] -> [player][two carry]\n[player fiver][eight no tens] -> [player][three carry]\n[player fiver][nine no tens] -> [player][four carry]\n\n[carry no tens][zero tens] -> [][one tens]\n[carry no tens ][one tens] -> [][two tens]\n[carry no tens ][two tens] -> [][three tens]\n[carry no tens ][three tens] -> [][four tens]\n[carry no tens ][four tens] -> [][five tens]\n[carry no tens ][five tens] -> [][six tens]\n[carry no tens ][six tens] -> [][seven tens]\n[carry no tens ][seven tens] -> [][eight tens]\n[carry no tens ][eight tens] -> [][nine tens]\n[carry no tens ][nine tens] -> [][zero tens carry]\n\n\n\n[hund] -> [hund off]\n\n[tens carry][hund off] -> [tens carry][hund on]\n[player won] -> win\n\n[star player][tens carry] -> [player won][tens no carry] again\n\n[carry no tens] -> []\n[seg no on] -> [seg on]\n[seg off] -> [seg]\n\n[m no tens][zero no tens] -> [m off][zero]\n[l no tens][one no tens] -> [l off][one]\n[w no tens][one no tens] -> [w off][one]\n[m no tens][one no tens] -> [m off][one]\n[t no tens][one no tens] -> [t off][one]\n[b no tens][one no tens] -> [b off][one]\n[l no tens][two no tens] -> [l off][two]\n[e no tens][two no tens] -> [e off][two]\n[l no tens][three no tens] -> [l off][three]\n[w no tens][three no tens] -> [w off][three]\n[b no tens][four no tens] -> [b off][four]\n[w no tens][four no tens] -> [w off][four]\n[t no tens][four no tens] -> [t off][four]\n[r no tens][five no tens] -> [r off][five]\n[w no tens][five no tens] -> [w off][five]\n[r no tens][six no tens] -> [r off][six]\n[l no tens][seven no tens] -> [l off][seven]\n[w no tens][seven no tens] -> [w off][seven]\n[m no tens][seven no tens] -> [m off][seven]\n[b no tens][seven no tens] -> [b off][seven]\n[w no tens][nine no tens] -> [w off][nine]\n\n[seg tens][zero tens] -> [seg off tens][zero tens]\n[l tens][one tens] -> [l off tens][one tens]\n[w tens][one tens] -> [w off tens][one tens]\n[m tens][one tens] -> [m off tens][one tens]\n[t tens][one tens] -> [t off tens][one tens]\n[b tens][one tens] -> [b off tens][one tens]\n[l tens][two tens] -> [l off tens][two tens]\n[e tens][two tens] -> [e off tens][two tens]\n[l tens][three tens] -> [l off tens][three tens]\n[w tens][three tens] -> [w off tens][three tens]\n[b tens][four tens] -> [b off tens][four tens]\n[w tens][four tens] -> [w off tens][four tens]\n[t tens][four tens] -> [t off tens][four tens]\n[r tens][five tens] -> [r off tens][five tens]\n[w tens][five tens] -> [w off tens][five tens]\n[r tens][six tens] -> [r off tens][six tens]\n[l tens][seven tens] -> [l off tens][seven tens]\n[w tens][seven tens] -> [w off tens][seven tens]\n[m tens][seven tens] -> [m off tens][seven tens]\n[b tens][seven tens] -> [b off tens][seven tens]\n[w tens][nine tens] -> [w off tens][nine tens]\n\n [hund on][seg off] -> [hund on][seg on]\n [hund on][m on] -> [hund on][m off]\n\n[on off] -> [off]\n\n[corner no off] -> [corner off]\n[corner on] -> [corner]\n\n[corner off|seg on] -> [corner on| seg on]\n\n\n\n\n\n\n\n==============\nWINCONDITIONS\n==============\nno coin\nno fiver\nall ending on player\n======= \nLEVELS\n=======\n\n\n\n\n\n\nx-xxxxxxxxx\nxxxctcxctcx\nxxxlxrxlxrx\nxxxcmcxcmcx\nxxxwxexwxex\nxxxcbcxcbcx\nxjx???xxxxx\nxxxxxxxxxxx\nxp0k0.k..kz\nxxxxxxxxxxx\n\nxxxxxxxxxxxxxxx\nxxxxxxxctc....z\nxxxxxxxlxrxxxxx\nxxxxxxxcmcxxxxx\nxxxxxxxwxexxxxx\np.3k.k.cbcxxxxx\nxxxxxxxxxxxxxxx\n\nxxxxxxzx\nx?xxxx.x\nx......x\nx.xxxxxx\nxckctckx\nxrxlxrxx\nxcxc$cxx\nxexwxexx\nxckcbckx\nxxxxxx.x\np05....x\nxxxxxxxx\n\n\nx?xxxx?zx\nxxxxxxx0x\nxcx*!*x.x\nxrxlxrx.x\nxcx*$*x.x\nxexwxex.x\nxcx*&*1px\nxxxxxxx.x\n\nxx???xxxx?x\nz.ctc.c!c.x\nx.lxrx@x#.x\nx.cmcxc$c.x\nx9wxexwx^1x\nx.cbc.cbc.x\nxxxxxxxxxpx\n\nx????xxxxxx\nz.ctcfctc.p\nx.lxrxlx#.x\nx.cmcxcm*.x\nx2wxexwx^4x\nx.cbcfcbc.x\nxxxxxxxxxxx\n\nx????xxxxx\nxctc3ctcxx\nx@xrx}xrxx\nxc$cxc:c7p\nxwx^xwx\".x\nxc&cxc,c.x\nxxxxxxxxzx\n\nx????xxxpx\nxctc6ctc.x\nx}x;x@x#.x\nxcmcxc$c1x\nx'x\"xwx^.x\nxc,c.c&c.x\nxxxxxxxxzx\n\nxx???xxxxpx\nx..k91.k..x\nx.ctcxctc.x\nxklxrxlxrkx\nx.cmcxcmc.x\nxkwxexwxekx\nx.cbcxcbc.x\nx..k...k..x\nxzxxxxxxxxx\n\n\n\nxpxxxxxxxxx\nxkxxxxxxxxx\nx`xctcxctcx\nx`xlxrxlxrx\nx`xcmcxcmcx\nx`xwxexwxex\nx`xcbcxcbcx\nxjx???xxxxx\nxxxxxxxxxxx\nx.9.9.....z\nxxxxxxxxxxx\n\nxxx???xxxxxxxxxxxxxxxxxxxxxxxxxxxx\nxxx???xxxxxxxxxxxxxxxxxxxxxxxxxxxx\nxxx???.ctcxxxxxxxxxxxxxxxxxxxxxxxx\nxxx???xlxrxxxxxxxxxxxxxxxxxxxxxxxx\nxxx???xcmc..z.xxx.ctc..z.xxx.ctc.x\nxxx???xwxe.xx.xxxxlxr.xx.xxxxlxr.x\nxxx???xcbc.xx.xxxxcmc.xx.xxxxcmc.x\nxxx???xxxxzxx.xxxxwxe.xx.xxxxwxe.x\nxxx???xxxx.xx.xxx.cbc.xx.xxx.cbc.x\nxxxctc.ctc.xxxxxxxxxxzxxxxxxxxxx.x\nxxxl?rxlxr.xxxxxxxxxxxxxxxxxxxxxzx\nxxxcmcxcmc.xxxxxxxxxxxxxxxxxxxxx.x\nxxxw?exwxe.xxxxxx.....xxxxxxctcx.x\nxxxcbc.cbc.xxxx..xxxxx..xxxxlxrx.x\nxxx???xxxxzxxx.xxxxxxxxx.xxxcmcx.x\nxxx???xxxx.xxx.xx.xxx.xx.xxxwxex.x\nx..........xx.xxx.xxx.xxx.xxcbc..x\nx.xxx?xctc.xx.xxx.x.x.xxx.xxxxxx.x\nx.x?x?xlxr.xx.xxxxx~xxxxx.xxxxxxzx\nx.xxx?xcmc.xx.xx..xxx..xx.xxxxxx.x\nx.x?x?xwxe.xx.xx.......xx.x......x\nx.xxx?xcbc.xx..xx.....xx.xx.xxxxxx\nx..........xxx.xxx...xxx.xxx.ctc.x\nxzx???xxxxxxxxx..xxxxx..xxxxxlxrxx\nx.x???xxxxxxxxxxx.....xxxxxxxcmcxx\nxxxctcxctcxxxxxxxxxxxxxxxxxxxwxexx\nxxxl?rxlxrxxxxxxxxxxxxxxxxxx.cbc.x\nxxxcmcxcmcxxxxxxxxxxxxxxxxxxxxxx.x\nxxxw?exwxexxxxxxxxctc....z.......x\nxxxcbcxcbcxxxxxxxxlxrxxxxxxxxxxxxx\nxpx???xxxxxxxxxxxxcmcxxxxxxxxxxxxx\nxxx???xxxxxxxxxxxxwxexxxxxxxxxxxxx\n0...0.....z.......cbcxxxxxxxxxxxxx\nxxx???xxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\n",[2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,1,1,0,0,0,0,0,1,3,3,3,3,1,2,2,2,2,1,1,1,3,3,3,0,0,1],"background wall:0,0,0,0,0,0,0,0,\n0,0,background:1,0,background tens wall:2,2,background tens:3,3,\nbackground corner on tens:4,background on tens tr:5,4,background br on tens:6,4,2,background one tens:7,2,\n0,0,1,0,1,0,0,0,\n1,0,background zero:8,0,0,0,1,0,\nbackground corner on:9,background on tl:10,9,background bl on:11,9,0,1,0,\n0,0,1,0,background on t:12,0,background m off:13,0,\nb background on:14,0,1,0,0,0,1,0,\n9,background on tr:15,9,background br on:16,9,0,1,0,\nbackground ending:17,1,1,0,1,0,0,0,\n1,1,1,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n",0,"1627770506202.4248"] + ["title Coin Counter\n\nverbose_logging\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground \nlightblue\n\nwall\ndarkbrown\n\nt\ntransparent\n\ntl\ntransparent\n\ntr\ntransparent\n\nm\ntransparent\n\nbl\ntransparent\n\nbr\ntransparent\n\nb\ntransparent\n\ncorner\ntransparent\n\non\nblue\n\noff\ndarkbrown\n\none 1\ntransparent\n\ntwo 2\ntransparent\n\nthree 3\ntransparent\n\nfour 4\ntransparent\n\nfive 5\ntransparent\n\nsix 6\ntransparent\n\nseven 7\ntransparent\n\neight 8\ntransparent\n\nnine 9\ntransparent\n\nzero 0\ntransparent\n\nplayer\ngreen\n\ncoin\n#ff0\n.....\n.000.\n.0.0.\n.000.\n.....\n\nending\ntransparent\n\ntens\ntransparent\n\ncarry\ntransparent\n\nfiver\n#ff0\n..0..\n.000.\n00.00\n.000.\n..0..\n\nstar\n#ff0 yellow orange\n0.0.0\n.121.\n02.20\n.121.\n0.0.0\n\nhund\ntransparent\n\nwon\ntransparent\n\nlast\ntransparent\n\nfakecoin\n#ff0\n.....\n.000.\n.0.0.\n.000.\n.....\n=======\nLEGEND\n=======\n\nc = corner\nl = tl\nr = tr\nw = bl\ne = br\nseg = t or l or r or m or w or e or b\nnum = zero or one or two or three or four or five or six or seven or eight or nine\np = player\nk = coin\n. = background\nx = wall\n\n! = t and coin\n@ = l and coin\n# = r and coin\n$ = m and coin\n% = w and coin\n^ = e and coin\n& = b and coin\n* = c and coin\n\n{ = t and fiver\n} = l and fiver\n; = r and fiver\n: = m and fiver\n' = w and fiver\n\" = e and fiver\n, = b and fiver\n/ = c and fiver\n\nf = fiver\n\n? = tens and wall\n\n- = fakecoin\n\nj = star\n` = hund\nz = ending\n~ = last\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nseg\ncorner\nnum\non\noff\ncoin, fiver\nstar\nplayer, wall\nending\ntens\ncarry\nwon\nhund\nlast\nfakecoin\n======\nRULES \n====== \n\n[last][ action player ]-> win\n[last ][moving player] -> win\nup [tens|no tens] -> [tens | tens]\ndown [tens|no tens] -> [tens | tens]\n\n[> player | off] -> [stationary player | off]\nlate [player off] -> [off]\n\nlate [player coin] -> again\nlate [player fiver] -> again\nlate [player star] -> again\n\n[player coin][zero no tens] -> [player][one]\n[player coin][one no tens] -> [player][two]\n[player coin][two no tens] -> [player][three]\n[player coin][three no tens] -> [player][four]\n[player coin][four no tens] -> [player][five]\n[player coin][five no tens] -> [player][six]\n[player coin][six no tens] -> [player][seven]\n[player coin][seven no tens] -> [player][eight]\n[player coin][eight no tens] -> [player][nine]\n[player coin][nine no tens] -> [player][zero carry]\n\n[player fiver][zero no tens] -> [player][five]\n[player fiver][one no tens] -> [player][six]\n[player fiver][two no tens] -> [player][seven]\n[player fiver][three no tens] -> [player][eight]\n[player fiver][four no tens] -> [player][nine]\n[player fiver][five no tens] -> [player][zero carry]\n[player fiver][six no tens] -> [player][one carry]\n[player fiver][seven no tens] -> [player][two carry]\n[player fiver][eight no tens] -> [player][three carry]\n[player fiver][nine no tens] -> [player][four carry]\n\n[carry no tens][zero tens] -> [][one tens]\n[carry no tens ][one tens] -> [][two tens]\n[carry no tens ][two tens] -> [][three tens]\n[carry no tens ][three tens] -> [][four tens]\n[carry no tens ][four tens] -> [][five tens]\n[carry no tens ][five tens] -> [][six tens]\n[carry no tens ][six tens] -> [][seven tens]\n[carry no tens ][seven tens] -> [][eight tens]\n[carry no tens ][eight tens] -> [][nine tens]\n[carry no tens ][nine tens] -> [][zero tens carry]\n\n\n\n[hund] -> [hund off]\n\n[tens carry][hund off] -> [tens carry][hund on]\n[player won] -> win\n\n[star player][tens carry] -> [player won][tens no carry] again\n\n[carry no tens] -> []\n[seg no on] -> [seg on]\n[seg off] -> [seg]\n\n[m no tens][zero no tens] -> [m off][zero]\n[l no tens][one no tens] -> [l off][one]\n[w no tens][one no tens] -> [w off][one]\n[m no tens][one no tens] -> [m off][one]\n[t no tens][one no tens] -> [t off][one]\n[b no tens][one no tens] -> [b off][one]\n[l no tens][two no tens] -> [l off][two]\n[e no tens][two no tens] -> [e off][two]\n[l no tens][three no tens] -> [l off][three]\n[w no tens][three no tens] -> [w off][three]\n[b no tens][four no tens] -> [b off][four]\n[w no tens][four no tens] -> [w off][four]\n[t no tens][four no tens] -> [t off][four]\n[r no tens][five no tens] -> [r off][five]\n[w no tens][five no tens] -> [w off][five]\n[r no tens][six no tens] -> [r off][six]\n[l no tens][seven no tens] -> [l off][seven]\n[w no tens][seven no tens] -> [w off][seven]\n[m no tens][seven no tens] -> [m off][seven]\n[b no tens][seven no tens] -> [b off][seven]\n[w no tens][nine no tens] -> [w off][nine]\n\n[seg tens][zero tens] -> [seg off tens][zero tens]\n[l tens][one tens] -> [l off tens][one tens]\n[w tens][one tens] -> [w off tens][one tens]\n[m tens][one tens] -> [m off tens][one tens]\n[t tens][one tens] -> [t off tens][one tens]\n[b tens][one tens] -> [b off tens][one tens]\n[l tens][two tens] -> [l off tens][two tens]\n[e tens][two tens] -> [e off tens][two tens]\n[l tens][three tens] -> [l off tens][three tens]\n[w tens][three tens] -> [w off tens][three tens]\n[b tens][four tens] -> [b off tens][four tens]\n[w tens][four tens] -> [w off tens][four tens]\n[t tens][four tens] -> [t off tens][four tens]\n[r tens][five tens] -> [r off tens][five tens]\n[w tens][five tens] -> [w off tens][five tens]\n[r tens][six tens] -> [r off tens][six tens]\n[l tens][seven tens] -> [l off tens][seven tens]\n[w tens][seven tens] -> [w off tens][seven tens]\n[m tens][seven tens] -> [m off tens][seven tens]\n[b tens][seven tens] -> [b off tens][seven tens]\n[w tens][nine tens] -> [w off tens][nine tens]\n\n [hund on][seg off] -> [hund on][seg on]\n [hund on][m on] -> [hund on][m off]\n\n[on off] -> [off]\n\n[corner no off] -> [corner off]\n[corner on] -> [corner]\n\n[corner off|seg on] -> [corner on| seg on]\n\n\n\n\n\n\n\n==============\nWINCONDITIONS\n==============\nno coin\nno fiver\nall ending on player\n======= \nLEVELS\n=======\n\n\n\n\n\n\nx-xxxxxxxxx\nxxxctcxctcx\nxxxlxrxlxrx\nxxxcmcxcmcx\nxxxwxexwxex\nxxxcbcxcbcx\nxjx???xxxxx\nxxxxxxxxxxx\nxp0k0.k..kz\nxxxxxxxxxxx\n\nxxxxxxxxxxxxxxx\nxxxxxxxctc....z\nxxxxxxxlxrxxxxx\nxxxxxxxcmcxxxxx\nxxxxxxxwxexxxxx\np.3k.k.cbcxxxxx\nxxxxxxxxxxxxxxx\n\nxxxxxxzx\nx?xxxx.x\nx......x\nx.xxxxxx\nxckctckx\nxrxlxrxx\nxcxc$cxx\nxexwxexx\nxckcbckx\nxxxxxx.x\np05....x\nxxxxxxxx\n\n\nx?xxxx?zx\nxxxxxxx0x\nxcx*!*x.x\nxrxlxrx.x\nxcx*$*x.x\nxexwxex.x\nxcx*&*1px\nxxxxxxx.x\n\nxx???xxxx?x\nz.ctc.c!c.x\nx.lxrx@x#.x\nx.cmcxc$c.x\nx9wxexwx^1x\nx.cbc.cbc.x\nxxxxxxxxxpx\n\nx????xxxxxx\nz.ctcfctc.p\nx.lxrxlx#.x\nx.cmcxcm*.x\nx2wxexwx^4x\nx.cbcfcbc.x\nxxxxxxxxxxx\n\nx????xxxxx\nxctc3ctcxx\nx@xrx}xrxx\nxc$cxc:c7p\nxwx^xwx\".x\nxc&cxc,c.x\nxxxxxxxxzx\n\nx????xxxpx\nxctc6ctc.x\nx}x;x@x#.x\nxcmcxc$c1x\nx'x\"xwx^.x\nxc,c.c&c.x\nxxxxxxxxzx\n\nxx???xxxxpx\nx..k91.k..x\nx.ctcxctc.x\nxklxrxlxrkx\nx.cmcxcmc.x\nxkwxexwxekx\nx.cbcxcbc.x\nx..k...k..x\nxzxxxxxxxxx\n\n\n\nxpxxxxxxxxx\nxkxxxxxxxxx\nx`xctcxctcx\nx`xlxrxlxrx\nx`xcmcxcmcx\nx`xwxexwxex\nx`xcbcxcbcx\nxjx???xxxxx\nxxxxxxxxxxx\nx.9.9.....z\nxxxxxxxxxxx\n\nxxx???xxxxxxxxxxxxxxxxxxxxxxxxxxxx\nxxx???xxxxxxxxxxxxxxxxxxxxxxxxxxxx\nxxx???.ctcxxxxxxxxxxxxxxxxxxxxxxxx\nxxx???xlxrxxxxxxxxxxxxxxxxxxxxxxxx\nxxx???xcmc..z.xxx.ctc..z.xxx.ctc.x\nxxx???xwxe.xx.xxxxlxr.xx.xxxxlxr.x\nxxx???xcbc.xx.xxxxcmc.xx.xxxxcmc.x\nxxx???xxxxzxx.xxxxwxe.xx.xxxxwxe.x\nxxx???xxxx.xx.xxx.cbc.xx.xxx.cbc.x\nxxxctc.ctc.xxxxxxxxxxzxxxxxxxxxx.x\nxxxl?rxlxr.xxxxxxxxxxxxxxxxxxxxxzx\nxxxcmcxcmc.xxxxxxxxxxxxxxxxxxxxx.x\nxxxw?exwxe.xxxxxx.....xxxxxxctcx.x\nxxxcbc.cbc.xxxx..xxxxx..xxxxlxrx.x\nxxx???xxxxzxxx.xxxxxxxxx.xxxcmcx.x\nxxx???xxxx.xxx.xx.xxx.xx.xxxwxex.x\nx..........xx.xxx.xxx.xxx.xxcbc..x\nx.xxx?xctc.xx.xxx.x.x.xxx.xxxxxx.x\nx.x?x?xlxr.xx.xxxxx~xxxxx.xxxxxxzx\nx.xxx?xcmc.xx.xx..xxx..xx.xxxxxx.x\nx.x?x?xwxe.xx.xx.......xx.x......x\nx.xxx?xcbc.xx..xx.....xx.xx.xxxxxx\nx..........xxx.xxx...xxx.xxx.ctc.x\nxzx???xxxxxxxxx..xxxxx..xxxxxlxrxx\nx.x???xxxxxxxxxxx.....xxxxxxxcmcxx\nxxxctcxctcxxxxxxxxxxxxxxxxxxxwxexx\nxxxl?rxlxrxxxxxxxxxxxxxxxxxx.cbc.x\nxxxcmcxcmcxxxxxxxxxxxxxxxxxxxxxx.x\nxxxw?exwxexxxxxxxxctc....z.......x\nxxxcbcxcbcxxxxxxxxlxrxxxxxxxxxxxxx\nxpx???xxxxxxxxxxxxcmcxxxxxxxxxxxxx\nxxx???xxxxxxxxxxxxwxexxxxxxxxxxxxx\n0...0.....z.......cbcxxxxxxxxxxxxx\nxxx???xxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\n", [2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 1, 1, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 3, 3, 3, 3, 1, 2, 2, 2, 2, 1, 1, 1, 3, 3, 3, 0, 0, 1], "background wall:0,0,0,0,0,0,0,0,\n0,0,background:1,0,background tens wall:2,2,background tens:3,3,\nbackground corner on tens:4,background on tens tr:5,4,background br on tens:6,4,2,background one tens:7,2,\n0,0,1,0,1,0,0,0,\n1,0,background zero:8,0,0,0,1,0,\nbackground corner on:9,background on tl:10,9,background bl on:11,9,0,1,0,\n0,0,1,0,background on t:12,0,background m off:13,0,\nb background on:14,0,1,0,0,0,1,0,\n9,background on tr:15,9,background br on:16,9,0,1,0,\nbackground ending:17,1,1,0,1,0,0,0,\n1,1,1,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1627770506202.4248"] ], [ `gallery game: two worlds`, - ["title Two Worlds\nauthor nebu soku\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\nrealtime_interval 0.1\nagain_interval 0.05\nbackground_color #282818\ntext_color #c8c8a8\nflickscreen 19x16\n\n========\nOBJECTS\n========\n\nBackground \n#282818\n\nOutLine\n#282818\n\nBGBlue\n#c8c8a8 #c1e4f0\n\nBGPink\n#282818 #f8cefd\n\nTarget \n#a0a088\n00.00\n00000\n00000\n.000.\n..0..\n\nGhostTarget \n#a0a088\n00.00\n00000\n00000\n.000.\n..0..\n\nWall \n#a0a088 #686850 #282818\n01000\n02010\n00020\n00000\n11111\n\nWallAbove\n#a0a088\n.....\n.....\n.....\n.....\n00000\n\nWallBelow\n#686850\n00000\n.....\n.....\n.....\n.....\n\nZonePurple\n#282818 #a0a088 #3d1e7e\n00000\n00000\n00100\n00000\n00000\n\nZonePurpleBelow\n#686850 #a0a088\n00000\n.....\n.....\n.....\n.....\n\nZonePink\n#c8c8a8 #ef90e3\n\nPlayerBlueRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850 #54b4d5\n.0000\n.0000\n.0121\n5.33.\n..34.\n\nWalkAnimBR1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850(#4fbbdf #608b8c #d5f5f6 #1d7788 #1a6978 #53aecc)\n.0000\n.0000\n.0121\n5.33.\n.....\n\nWalkAnimBR2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n.4..3\n\nWalkAnimBR3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n..3..\n\nPlayerBlueLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.43..\n\nWalkAnimBL1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.....\n\nWalkAnimBL2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n3..4.\n\nWalkAnimBL3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n..3..\n\nStayBlueRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n..34.\n\nStayBlueLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.43..\n\nPlayerPinkRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818(#de4fdd #8a608b #f6d4f5 #871d86 #741978 #cc52c9 #d153d5)\n.5000\n.0000\n.0121\n..33.\n..34.\n\nWalkAnimPR1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.....\n\nWalkAnimPR2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nWalkAnimPR3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n..3..\n\nPlayerPinkLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.43..\n\nWalkAnimPL1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.....\n\nWalkAnimPL2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nWalkAnimPL3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n..3..\n\nStayPinkRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n..34.\n\nStayPinkLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.43..\n\nFallRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nFallLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nClimbRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nClimbLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nGhostPlayer\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAbove\n#c8c8a8\n.....\n.....\n.....\n.....\n.000.\n\nGhostPlayerAnim1\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAnim2\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAnim3\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nGhostPlayerAnim4\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nGhostPlayerAnim5\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nStuckRigid\nblack\n\nStuckCursor\n#282818\n0...0\n0...0\n0...0\n00000\n.....\n\nStuckCursorAbove\n#282818\n.....\n.....\n.....\n.....\n00000\n\nCrate \n#a0a088 #686850 #282818 #c8c8a8\n01110\n02220\n02020\n00000\n11111\n\nCrateAbove\n#a0a088\n.....\n.....\n.....\n.....\n00000\n\nCrateBelow\n#686850\n00000\n.....\n.....\n.....\n.....\n\nCrateLine\n#a0a088\n.....\n.....\n.....\n00000\n.....\n\nRigidCrate\n#a0a088 #282818\n11111\n11111\n11011\n11111\n11111\n\nRigidU\n#686850\n00000\n.....\n.....\n.....\n.....\n\nRigidUL\n#686850\n....0\n.....\n.....\n.....\n.....\n\nRigidUR\n#686850\n0....\n.....\n.....\n.....\n.....\n\nRigidD\n#a0a088 #686850\n.....\n.....\n.....\n00000\n11111\n\nRigidL\n#a0a088\n0....\n0....\n0....\n0....\n0....\n\nRigidR\n#a0a088\n....0\n....0\n....0\n....0\n....0\n\nRigidLR\n#a0a088\n0...0\n0...0\n0...0\n0...0\n0...0\n\nAboveRigidL\n#a0a088\n.....\n.....\n.....\n0....\n0....\n\nAboveRigidR\n#a0a088\n.....\n.....\n.....\n....0\n....0\n\nAboveRigidLR\n#a0a088\n.....\n.....\n.....\n0...0\n0...0\n\nAboveRigidLRwithR\n#a0a088\n....0\n....0\n....0\n0...0\n0...0\n\nAboveRigidLRwithL\n#a0a088\n0....\n0....\n0....\n0...0\n0...0\n\nrigid1\nblack\n\nrigid2\nblack\n\nBlock \n#c8c8a8 #a0a088 #686850\n12222\n21112\n21112\n21112\n22221\n\nGhostBlock\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim1\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim2\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim3\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\nGhostBlockAnim4\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\nGhostBlockAnim5\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\n\nClimbable\npink\n\nColBGPink\nblack\n.....\n.....\n.....\n.....\n.....\n\nFallBlock\nblack\n\nWinable\nblack\n\nAddPinkLUD\n#c8c8a8\n0....\n.....\n.....\n.....\n0....\n\nAddPinkLU\n#c8c8a8\n0....\n.....\n.....\n.....\n.....\n\nAddPinkLD\n#c8c8a8\n.....\n.....\n.....\n.....\n0....\n\nAddPinkRUD\n#c8c8a8\n....0\n.....\n.....\n.....\n....0\n\nAddPinkRU\n#c8c8a8\n....0\n.....\n.....\n.....\n.....\n\nAddPinkRD\n#c8c8a8\n.....\n.....\n.....\n.....\n....0\n\nRemovePinkLUD\n#282818\n0....\n.....\n.....\n.....\n0....\n\nRemovePinkLU\n#282818\n0....\n.....\n.....\n.....\n.....\n\nRemovePinkLD\n#282818\n.....\n.....\n.....\n.....\n0....\n\nRemovePinkRUD\n#282818\n....0\n.....\n.....\n.....\n....0\n\nRemovePinkRU\n#282818\n....0\n.....\n.....\n.....\n.....\n\nRemovePinkRD\n#282818\n.....\n.....\n.....\n.....\n....0\n\nTransition1\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransition2\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransition3\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransition4\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransition5\n#282818\n00000\n00000\n00000\n00000\n00000\n\nTransition6\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransition7\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransition8\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransition9\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransitionR1\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransitionR2\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransitionR3\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransitionR4\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransitionR5\n#282818\n00000\n00000\n00000\n00000\n00000\n\nTransitionR6\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransitionR7\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransitionR8\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransitionR9\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nHide\n#c8c8a8\n\nWinAnim1\n#c8c8a8\n.....\n.0...\n.....\n.....\n.....\n\nWinAnim2\n#c8c8a8\n.....\n.0...\n.....\n.....\n.....\n\nWinAnim3\n#c8c8a8\n.0...\n000..\n.0...\n...0.\n.....\n\nWinAnim4\n#c8c8a8\n.....\n.0...\n...0.\n..000\n...0.\n\nWinAnim5\n#c8c8a8\n.....\n.....\n.....\n...0.\n.....\n\nWinAnim6\n#c8c8a8\n.....\n.....\n.....\n.....\n.....\n\nLevelStart\n#282818\n\nPressX\n#686850 #282818\n0.0.0\n0.0.0\n00.00\n0.0.0\n0.0.0\n\nTCount1\nblack\n\nTCount2\nblack\n\nTCount3\nblack\n\nTCount4\nblack\n\nTCount5\nblack\n\n=======\nLEGEND\n=======\n\nBlueRight = PlayerBlueRight or WalkAnimBR1 or WalkAnimBR2 or WalkAnimBR3\nBlueLeft = PlayerBlueLeft or WalkAnimBL1 or WalkAnimBL2 or WalkAnimBL3\nPlayerBlue = BlueRight or BlueLeft\n\nPinkRight = PlayerPinkRight or WalkAnimPR1 or WalkAnimPR2 or WalkAnimPR3 \nPinkLeft = PlayerPinkLeft or WalkAnimPL1 or WalkAnimPL2 or WalkAnimPL3\nPlayerPink = PinkRight or PinkLeft\nPlayerFall = PlayerPink or FallRight or FallLeft\n\nPlayer = PlayerBlue or PlayerPink or ClimbRight or ClimbLeft\nPlayerMove = PlayerBlue or PlayerPink\n\nGBlock = GhostBlock or GhostBlockAnim1 or GhostBlockAnim2 or GhostBlockAnim3 or GhostBlockAnim4 or GhostBlockAnim5\n\nGPlayer = GhostPlayer or GhostPlayerAnim1 or GhostPlayerAnim2 or GhostPlayerAnim3 or GhostPlayerAnim4 or GhostPlayerAnim5\nGPAboveAnim = GhostPlayerAnim3 or GhostPlayerAnim4 or GhostPlayerAnim5\n\nRidable = BGPink or Block or ColBGPink\n\nRigids = rigid1 or rigid2\n\nAboveDeco = AboveRigidL or AboveRigidR or RigidL or RigidR or RigidLR\nRigidDeco = RigidU or AboveDeco or RigidD or AboveRigidLR or AboveRigidLRwithR or AboveRigidLRwithL or RigidUL or RigidUR\n\nAddPinkL = AddPinkLUD or AddPinkLU or AddPinkLD\nAddPinkR = AddPinkRUD or AddPinkRU or AddPinkRD\n\nRemovePinkL = RemovePinkLUD or RemovePinkLU or RemovePinkLD\nRemovePinkR = RemovePinkRUD or RemovePinkRU or RemovePinkRD\n\nTransition = Transition1 or Transition2 or Transition3 or Transition4 or Transition5 or Transition6 or Transition7 or Transition8 or Transition9\nTransitionR = TransitionR1 or TransitionR2 or TransitionR3 or TransitionR4 or TransitionR5 or TransitionR6 or TransitionR7 or TransitionR8 or TransitionR9\n\nWinAnim = WinAnim1 or WinAnim2 or WinAnim3 or WinAnim4 or WinAnim5 or WinAnim6\nTCount = TCount1 or TCount2 or TCount3 or TCount4\n\n. = Background\n, = BGBlue\n' = BGPink\n# = Wall and BGBlue\nB = PlayerBlueRight and BGBlue\nP = PlayerPinkRight and ZonePink\n* = Crate and BGBlue\n@ = RigidCrate and rigid1 and BGBlue\n2 = RigidCrate and rigid2 and BGBlue\nO = GhostTarget and ZonePurple\nx = ZonePurple and BGBlue\n+ = ZonePink\n\" = GhostBlock and ZonePurple and BGBlue\n! = GhostPlayer and ZonePurple and BGBlue\n($ = StayBlueRight and BGBlue)\n% = StayPinkRight and ZonePink\n石 = Block and ZonePink\n文 = PressX and BGBlue\n\n=======\nSOUNDS\n=======\n\nPlayerMove move 15203103\nCrate move 80987507\nRigidCrate move 80987507\nBlock action 70814309\nStuckCursor action 20002502 (boo)\nZonePurple move 95712903\nZonePink action 52706103\nTransition1 action 54782309\nTransitionR1 action 54782309\n\nsfx0 30806303\nsfx1 91797700 (fall)\nsfx2 99718300\nsfx3 65480100\nsfx4 80396503 (jump1)\nsfx5 80987507 (block)\nsfx6 45846907\nsfx7 28015305 (jump2)\nsfx8 10636903\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPressX\nTCount, TCount5\nLevelStart\nClimbable\nFallBlock\nWinable\nrigids\nStuckRigid\nBGBlue\nZonePink\nBGPink\nWallBelow\nTarget\nHide\nCrateBelow, ZonePurpleBelow\nPlayer, Wall, Crate, ZonePurple, StayBlueRight, StayBlueLeft, StayPinkRight, StayPinkLeft, FallRight, FallLeft, ClimbRight, ClimbLeft, Block, ColBGPink, RigidCrate\nRemovePinkL\nRemovePinkR\nGhostTarget\nRigidU, RigidUL, RigidUR\nGPlayer\nAboveRigidL, AboveRigidR, RigidL, RigidR, RigidLR\nRigidD, AboveRigidLR, AboveRigidLRwithR, AboveRigidLRwithL\nCrateAbove\nStuckCursorAbove\nWallAbove\nGBlock\nGhostPlayerAbove\nCrateLine\nStuckCursor\nAddPinkL\nAddPinkR\nOutLine\nWinAnim\nTransition, TransitionR\n\n======\nRULES \n====== \n[ > Player ] [ FallBlock ] -> cancel (bug?) \n\n(int)\n\n[ > Player Transition ] -> [ Player Transition ]\n[ ColBGPink ] -> [ ]\n[ BGPink ] -> [ BGPink ColBGPink ]\n[ Background no BGBlue no BGPink no ZonePurple no ZonePink ] -> [ Background OutLine ColBGPink ]\n\nright [ GhostTarget | | | | | | | | | | | | | | | | | | | ] -> [ GhostTarget | | | | | | | | | | | | | | | | | | | Target ]\n\ndown [ ZonePurple | no ZonePurple ] -> [ ZonePurple | ZonePurpleBelow ]\n\nup [ Wall | ] -> [ Wall | WallAbove ]\ndown [ Wall | ] -> [ Wall | WallBelow ]\n\n(Crate-ZonePink)\n\n[ CrateAbove ] -> [ ]\n[ CrateBelow ] -> [ ]\n[ CrateLine ] -> [ ]\nlate up [ | Crate | ] -> [ CrateBelow | Crate CrateLine | CrateAbove ]\n(late down [ Crate | ] -> [ Crate | CrateBelow ])\n\nlate right [ no Crate no ZonePurple no RigidCrate | | | | | | | | | | | | | | | | | | | ZonePink ] -> [ | | | | | | | | | | | | | | | | | | | BGPink ]\nlate right [ PlayerPink ] [ Crate | | | | | | | | | | | | | | | | | | | BGPink ] -> [ PlayerPink ] [ Crate | | | | | | | | | | | | | | | | | | | ZonePink ]\nlate right [ PlayerPink ] [ RigidCrate | | | | | | | | | | | | | | | | | | | BGPink ] -> [ PlayerPink ] [ RigidCrate | | | | | | | | | | | | | | | | | | | ZonePink ]\n\n(Block-GhostBlock)\n\n[ PlayerPink ] [ GBlock ] -> [ PlayerPink ] [ ]\nright [ PlayerPink ] [ | | | | | | | | | | | | | | | | | | | Block ] -> [ PlayerPink ] [ GhostBlock | | | | | | | | | | | | | | | | | | | Block ]\n\n[ PlayerBlue ] [ Block ] -> [ PlayerBlue ] [ ]\nright [ PlayerBlue ] [ GBlock | | | | | | | | | | | | | | | | | | | ] -> [ PlayerBlue ] [ GBlock | | | | | | | | | | | | | | | | | | | Block ]\n\n(Player-GhostPlayer)\n\n[ PlayerPink ] [ GPlayer ] -> [ PlayerPink ] [ ]\nright [ PlayerPink ] [ | | | | | | | | | | | | | | | | | | | PlayerPink ] -> [ PlayerPink ] [ GhostPlayer | | | | | | | | | | | | | | | | | | | PlayerPink ]\n\n(Switch)\n\n[ Target LevelStart ] [ action BlueRight ] [ StayPinkRight ] [ Background ] -> [ Target LevelStart ] [ BlueRight ] [ StayPinkRight ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueRight ] [ StayPinkRight ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueRight ] [ PlayerPinkRight ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueRight ] [ StayPinkLeft ] [ Background ] -> [ Target LevelStart ] [ BlueRight ] [ StayPinkLeft ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueRight ] [ StayPinkLeft ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueRight ] [ PlayerPinkLeft ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueLeft ] [ StayPinkRight ] [ Background ] -> [ Target LevelStart ] [ BlueLeft ] [ StayPinkRight ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueLeft ] [ StayPinkRight ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueLeft ] [ PlayerPinkRight ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueLeft ] [ StayPinkLeft ] [ Background ] -> [ Target LevelStart ] [ BlueLeft ] [ StayPinkLeft ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueLeft ] [ StayPinkLeft ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueLeft ] [ PlayerPinkLeft ] [ Transition6 ]\n\n[ action PlayerPinkRight no FallBlock ] [ StayBlueRight ] [ Background ] -> [ PlayerPinkRight ] [ StayBlueRight ] [ Background action TransitionR1 ]\n[ PlayerPinkRight ] [ StayBlueRight ] [ TransitionR6 ] -> [ StayPinkRight ] [ PlayerBlueRight ] [ TransitionR6 ]\n[ action PlayerPinkRight no FallBlock ] [ StayBlueLeft ] [ Background ] -> [ PlayerPinkRight ] [ StayBlueLeft ] [ Background action TransitionR1 ]\n[ PlayerPinkRight ] [ StayBlueLeft ] [ TransitionR6 ] -> [ StayPinkRight ] [ PlayerBlueLeft ] [ TransitionR6 ]\n[ action PlayerPinkLeft no FallBlock ] [ StayBlueRight ] [ Background ] -> [ PlayerPinkLeft ] [ StayBlueRight ] [ Background action TransitionR1 ]\n[ PlayerPinkLeft ] [ StayBlueRight ] [ TransitionR6 ] -> [ StayPinkLeft ] [ PlayerBlueRight ] [ TransitionR6 ]\n[ action PlayerPinkLeft no FallBlock ] [ StayBlueLeft ] [ Background ] -> [ PlayerPinkLeft ] [ StayBlueLeft ] [ Background action TransitionR1 ]\n[ PlayerPinkLeft ] [ StayBlueLeft ] [ TransitionR6 ] -> [ StayPinkLeft ] [ PlayerBlueLeft ] [ TransitionR6 ]\n\n(Climb)\n\n[ Climbable ] -> [ ]\nhorizontal [ BGPink | ZonePink ] -> [ BGPink Climbable | ZonePink ]\nhorizontal [ BGPink | Block ] -> [ BGPink | Block Climbable ]\nhorizontal [ Block | Block ] -> [ Block Climbable | Block Climbable ]\n\ndown [ ClimbRight | BGPink ] -> [ PlayerPinkRight | BGPink ]\ndown [ ClimbRight | Block ] -> [ PlayerPinkRight | Block ]\nright [ ClimbRight | ZonePink ] -> [ > ClimbRight | ZonePink ]\nright [ ClimbRight | Climbable ] -> [ FallRight | Climbable ]\nright [ > PinkRight no FallBlock | Climbable ] -> [ up ClimbRight | Climbable ] sfx7\n\ndown [ ClimbLeft | BGPink ] -> [ PlayerPinkLeft | BGPink ]\ndown [ ClimbLeft | Block ] -> [ PlayerPinkLeft | Block ]\nleft [ ClimbLeft | ZonePink ] -> [ > ClimbLeft | ZonePink ]\nleft [ ClimbLeft | Climbable ] -> [ FallLeft | Climbable ]\nleft [ > PinkLeft no FallBlock | Climbable ] -> [ up ClimbLeft | Climbable ] sfx7\n\n(Push)\n\n[ > Player | Crate no GPlayer no PressX no TCount ] -> [ > Player | > Crate ]\n[ > Player no FallBlock | Block ] -> [ > Player | > Block ] sfx5\n[ > Player | GBlock no rigids no ZonePurple | no Wall no ZonePurple no OutLine no Crate ] -> [ > Player | > GBlock | ]\n\n[ StuckCursor ] -> [ ] (Stuck effect)\n[ StuckCursorAbove ] -> [ ]\nlate up [ StuckCursor | ] -> [ StuckCursor | StuckCursorAbove ]\n[ > PlayerBlueRight | GPlayer Crate ] -> [ WalkAnimBR1 | GPlayer action StuckCursor Crate ]\n[ > PlayerBlueLeft | GPlayer Crate ] -> [ WalkAnimBL1 | GPlayer action StuckCursor Crate ]\n[ > PlayerBlueRight | StuckRigid ] [ GPlayer ] -> [ WalkAnimBR1 | StuckRigid ] [ GPlayer action StuckCursor ]\n[ > PlayerBlueLeft | StuckRigid ] [ GPlayer ] -> [ WalkAnimBL1 | StuckRigid ] [ GPlayer action StuckCursor ]\n\n[ StuckRigid ] -> [ ]\n[ Rigid1 GPlayer ] [ Rigid1 ] -> [ Rigid1 GPlayer StuckRigid ] [ Rigid1 StuckRigid ]\n[ Rigid2 GPlayer ] [ Rigid2 ] -> [ Rigid2 GPlayer StuckRigid ] [ Rigid2 StuckRigid ]\n\nrigid [ > Player | RigidCrate rigid1 no StuckRigid ] -> [ > Player | > RigidCrate > rigid1 ]\n+ rigid [ moving RigidCrate rigid1 | RigidCrate rigid1 ] -> [ moving RigidCrate moving rigid1 | moving RigidCrate moving rigid1 ]\n+ rigid [ moving rigid1 | GBlock rigid1 ] -> [ moving rigid1 | moving GBlock moving rigid1 ]\n\nrigid [ > Player | RigidCrate rigid2 no StuckRigid ] -> [ > Player | > RigidCrate > rigid2 ]\n+ rigid [ moving RigidCrate rigid2 | RigidCrate rigid2 ] -> [ moving RigidCrate moving rigid2 | moving RigidCrate moving rigid2 ]\n+ rigid [ moving rigid2 | GBlock rigid2 ] -> [ moving rigid2 | moving GBlock moving rigid2 ]\n\n(RigidCrate)\n\n[ RigidDeco ] -> [ ]\nlate down [ rigid1 | no rigid1 ] -> [ rigid1 RigidD | CrateBelow ]\nlate up [ rigid1 | no rigid1 ] -> [ rigid1 | CrateAbove ]\nlate left [ rigid1 | no rigid1 ] -> [ rigid1 RigidL | ]\nlate right [ rigid1 RigidL | no rigid1 ] -> [ rigid1 RigidLR | ]\nlate right [ rigid1 no AboveDeco | no rigid1 ] -> [ rigid1 RigidR | ]\n\nlate up [ RigidL rigid1 | rigid1 no AboveDeco ] -> [ RigidL rigid1 | rigid1 AboveRigidL ]\nlate up [ RigidR rigid1 | rigid1 no AboveDeco ] -> [ RigidR rigid1 | rigid1 AboveRigidR ]\nlate up [ RigidLR rigid1 | rigid1 ] -> [ RigidLR rigid1 | rigid1 AboveRigidLR ]\n\nlate up [ RigidL rigid1 | rigid1 RigidR ] -> [ RigidL rigid1 | rigid1 AboveRigidLRwithR ]\nlate up [ RigidR rigid1 | rigid1 RigidL ] -> [ RigidR rigid1 | rigid1 AboveRigidLRwithL ]\n\nlate up [ rigid1 | CrateAbove ] -> [ rigid1 RigidU | CrateAbove ]\n\nlate left [ rigid1 RigidU | rigid1 no RigidU ] -> [ rigid1 RigidU | rigid1 RigidUL ]\nlate right [ rigid1 RigidU | rigid1 no RigidU ] -> [ rigid1 RigidU | rigid1 RigidUR ]\n\n\nlate down [ rigid2 | no rigid2 ] -> [ rigid2 RigidD | CrateBelow ]\nlate up [ rigid2 | no rigid2 ] -> [ rigid2 | CrateAbove ]\nlate left [ rigid2 | no rigid2 ] -> [ rigid2 RigidL | ]\nlate right [ rigid2 RigidL | no rigid2 ] -> [ rigid2 RigidLR | ]\nlate right [ rigid2 no AboveDeco | no rigid2 ] -> [ rigid2 RigidR | ]\n\nlate up [ RigidL rigid2 | rigid2 no AboveDeco ] -> [ RigidL rigid2 | rigid2 AboveRigidL ]\nlate up [ RigidR rigid2 | rigid2 no AboveDeco ] -> [ RigidR rigid2 | rigid2 AboveRigidR ]\nlate up [ RigidLR rigid2 | rigid2 ] -> [ RigidLR rigid2 | rigid2 AboveRigidLR ]\n\nlate up [ RigidL rigid2 | rigid2 RigidR ] -> [ RigidL rigid2 | rigid2 AboveRigidLRwithR ]\nlate up [ RigidR rigid2 | rigid2 RigidL ] -> [ RigidR rigid2 | rigid2 AboveRigidLRwithL ]\n\nlate up [ rigid2 | CrateAbove ] -> [ rigid2 RigidU | CrateAbove ]\n\nlate left [ rigid2 RigidU | rigid2 no RigidU ] -> [ rigid2 RigidU | rigid2 RigidUL ]\nlate right [ rigid2 RigidU | rigid2 no RigidU ] -> [ rigid2 RigidU | rigid2 RigidUR ]\n\n(Fall)\n\ndown [ FallRight | Ridable ] -> [ PlayerPinkRight | Ridable ]\ndown [ FallRight no Transition | no Ridable ] -> [ > FallRight | ]\ndown [ PinkRight no Transition | no Ridable ] -> [ > FallRight | ] sfx7\n\ndown [ FallLeft | BGPink ] -> [ PlayerPinkLeft | BGPink ]\ndown [ FallLeft | Block ] -> [ PlayerPinkLeft | Block ]\ndown [ FallLeft no Transition | no Ridable ] -> [ > FallLeft | ]\ndown [ PinkLeft no Transition | no Ridable ] -> [ > FallLeft | ] sfx7\n\n[ FallBlock ] -> [ ]\ndown [ Block no Transition | no ColBGPink no Block no Player ] [ PlayerFall ] -> [ > Block | ] [ PlayerFall FallBlock ] sfx1\n\n(ZonePink border)\n\n[ AddPinkL ] -> [ ]\n[ RemovePinkL ] -> [ ]\n[ AddPinkR ] -> [ ]\n[ RemovePinkR ] -> [ ]\n\nlate left [ no ZonePink no AddPinkL | ZonePink ] -> [ AddPinkLUD | ZonePink ]\nlate right [ no ZonePink no AddPinkR | ZonePink ] -> [ AddPinkRUD | ZonePink ]\n\nlate up [ AddPinkLUD | no ZonePink ] -> [ AddPinkLD | ]\nlate up [ AddPinkRUD | no ZonePink ] -> [ AddPinkRD | ]\n\nlate down [ AddPinkLUD | no ZonePink ] -> [ AddPinkLU | ]\nlate down [ AddPinkRUD | no ZonePink ] -> [ AddPinkRU | ]\n\nlate down [ AddPinkLD | no ZonePink ] -> [ | ]\nlate down [ AddPinkRD | no ZonePink ] -> [ | ]\n\nlate left [ ZonePink no RemovePinkL | no ZonePink ] -> [ ZonePink RemovePinkLUD | ]\nlate right [ ZonePink no RemovePinkR | no ZonePink ] -> [ ZonePink RemovePinkRUD | ]\n\nlate up [ RemovePinkLUD | ZonePink ] -> [ RemovePinkLD | ZonePink ]\nlate up [ RemovePinkRUD | ZonePink ] -> [ RemovePinkRD | ZonePink ]\n\nlate down [ RemovePinkLUD | ZonePink ] -> [ RemovePinkLU | ZonePink ]\nlate down [ RemovePinkRUD | ZonePink ] -> [ RemovePinkRU | ZonePink ]\n\nlate down [ RemovePinkLD | ZonePink ] -> [ | ZonePink ]\nlate down [ RemovePinkRD | ZonePink ] -> [ | ZonePink ]\n\nlate right [ RemovePinkRU | AddPinkLU ] -> [ RemovePinkRU | ]\nlate right [ RemovePinkRD | AddPinkLD ] -> [ RemovePinkRD | ]\n\nlate right [ RemovePinkRUD | AddPinkLU ] -> [ RemovePinkRUD | ]\nlate right [ RemovePinkRUD | AddPinkLD ] -> [ RemovePinkRUD | ]\n\nlate left [ RemovePinkLU | AddPinkRU ] -> [ RemovePinkLU | ]\nlate left [ RemovePinkLD | AddPinkRD ] -> [ RemovePinkLD | ]\n\nlate left [ RemovePinkLUD | AddPinkRU ] -> [ RemovePinkLUD | ]\nlate left [ RemovePinkLUD | AddPinkRD ] -> [ RemovePinkLUD | ]\n\nlate left [ AddPinkLUD | RemovePinkRUD ] -> [ | RemovePinkRUD ]\nlate right [ AddPinkRUD | RemovePinkLUD ] -> [ | RemovePinkLUD ]\nlate left [ AddPinkLUD | RemovePinkRU ] -> [ AddPinkLD | RemovePinkRU ]\nlate right [ AddPinkRUD | RemovePinkLU ] -> [ AddPinkRD | RemovePinkLU ]\nlate left [ AddPinkLUD | RemovePinkRD ] -> [ AddPinkLU | RemovePinkRD ]\nlate right [ AddPinkRUD | RemovePinkLD ] -> [ AddPinkRU | RemovePinkLD ]\nlate left [ AddPinkLU | RemovePinkRU ] -> [ | RemovePinkRU ]\nlate right [ AddPinkRU | RemovePinkLU ] -> [ | RemovePinkLU ]\nlate left [ AddPinkLD | RemovePinkRD ] -> [ | RemovePinkRD ]\nlate right [ AddPinkRD | RemovePinkLD ] -> [ | RemovePinkLD ]\n\n(Animation)\n\nright [ > PlayerBlueLeft ] -> [ > PlayerBlueRight ]\nright [ > WalkAnimBL1 ] -> [ > WalkAnimBR1 ]\nright [ > WalkAnimBL2 ] -> [ > WalkAnimBR2 ]\nright [ > WalkAnimBL3 ] -> [ > WalkAnimBR3 ]\n\nleft [ > PlayerBlueRight ] -> [ > PlayerBlueLeft ]\nleft [ > WalkAnimBR1 ] -> [ > WalkAnimBL1 ]\nleft [ > WalkAnimBR2 ] -> [ > WalkAnimBL2 ]\nleft [ > WalkAnimBR3 ] -> [ > WalkAnimBL3 ]\n\n[ WalkAnimBR3 ] -> [ PlayerBlueRight ]\n[ WalkAnimBR2 ] -> [ WalkAnimBR3 ]\n[ WalkAnimBR1 ] -> [ WalkAnimBR2 ]\n[ > PlayerBlueRight ] -> [ > WalkAnimBR1 ]\n\n[ WalkAnimBL3 ] -> [ PlayerBlueLeft ]\n[ WalkAnimBL2 ] -> [ WalkAnimBL3 ]\n[ WalkAnimBL1 ] -> [ WalkAnimBL2 ]\n[ > PlayerBlueLeft ] -> [ > WalkAnimBL1 ]\n\nright [ > PlayerPinkLeft ] -> [ > PlayerPinkRight ]\nright [ > WalkAnimPL1 ] -> [ > WalkAnimPR1 ]\nright [ > WalkAnimPL2 ] -> [ > WalkAnimPR2 ]\nright [ > WalkAnimPL3 ] -> [ > WalkAnimPR3 ]\n\nleft [ > PlayerPinkRight ] -> [ > PlayerPinkLeft ]\nleft [ > WalkAnimPR1 ] -> [ > WalkAnimPL1 ]\nleft [ > WalkAnimPR2 ] -> [ > WalkAnimPL2 ]\nleft [ > WalkAnimPR3 ] -> [ > WalkAnimPL3 ]\n\n[ WalkAnimPR3 ] -> [ PlayerPinkRight ]\n[ WalkAnimPR2 ] -> [ WalkAnimPR3 ]\n[ WalkAnimPR1 ] -> [ WalkAnimPR2 ]\n[ > PlayerPinkRight ] -> [ > WalkAnimPR1 ]\n\n[ WalkAnimPL3 ] -> [ PlayerPinkLeft ]\n[ WalkAnimPL2 ] -> [ WalkAnimPL3 ]\n[ WalkAnimPL1 ] -> [ WalkAnimPL2 ]\n[ > PlayerPinkLeft ] -> [ > WalkAnimPL1 ]\n\n[ stationary Player ] [ stationary GhostBlockAnim5 ] -> [ Player ] [ action GhostBlock ]\n[ stationary Player ] [ stationary GhostBlockAnim4 ] -> [ Player ] [ action GhostBlockAnim5 ]\n[ stationary Player ] [ stationary GhostBlockAnim3 ] -> [ Player ] [ action GhostBlockAnim4 ]\n[ stationary Player ] [ stationary GhostBlockAnim2 ] -> [ Player ] [ action GhostBlockAnim3 ]\n[ stationary Player ] [ stationary GhostBlockAnim1 ] -> [ Player ] [ action GhostBlockAnim2 ]\n[ stationary Player ] [ stationary GhostBlock ] -> [ Player ] [ action GhostBlockAnim1 ]\n\n[ GhostPlayerAbove ] -> [ ]\nlate up [ GPAboveAnim | ] -> [ GPAboveAnim | GhostPlayerAbove ]\n\n[ stationary Player ] [ stationary GhostPlayerAnim5 ] -> [ Player ] [ action GhostPlayer ]\n[ stationary Player ] [ stationary GhostPlayerAnim4 ] -> [ Player ] [ action GhostPlayerAnim5 ]\n[ stationary Player ] [ stationary GhostPlayerAnim3 ] -> [ Player ] [ action GhostPlayerAnim4 ]\n[ stationary Player ] [ stationary GhostPlayerAnim2 ] -> [ Player ] [ action GhostPlayerAnim3 ]\n[ stationary Player ] [ stationary GhostPlayerAnim1 ] -> [ Player ] [ action GhostPlayerAnim2 ]\n[ stationary Player ] [ stationary GhostPlayer ] -> [ Player ] [ action GhostPlayerAnim1 ]\n\n[ Background Transition1 ] [ Background no Transition1 ] -> [ Background Transition1 ] [ Background Transition1 ]\n[ stationary Transition9 ] -> [ ] again\n[ stationary Transition8 ] -> [ action Transition9 ] again\n[ stationary Transition7 ] -> [ action Transition8 ] again\n[ stationary Transition6 ] -> [ action Transition7 ] again\n[ stationary Transition5 ] -> [ action Transition6 ] again\n[ stationary Transition4 ] -> [ action Transition5 ] again\n[ stationary Transition3 ] -> [ action Transition4 ] again\n[ stationary Transition2 ] -> [ action Transition3 ] again\n[ stationary Transition1 ] -> [ action Transition2 ] again\n\n[ Background TransitionR1 ] [ Background no TransitionR1 ] -> [ Background TransitionR1 ] [ Background TransitionR1 ]\n[ stationary TransitionR9 ] -> [ ] again\n[ stationary TransitionR8 ] -> [ action TransitionR9 ] again\n[ stationary TransitionR7 ] -> [ action TransitionR8 ] again\n[ stationary TransitionR6 ] -> [ action TransitionR7 ] again\n[ stationary TransitionR5 ] -> [ action TransitionR6 ] again\n[ stationary TransitionR4 ] -> [ action TransitionR5 ] again\n[ stationary TransitionR3 ] -> [ action TransitionR4 ] again\n[ stationary TransitionR2 ] -> [ action TransitionR3 ] again\n[ stationary TransitionR1 ] -> [ action TransitionR2 ] again\n\n(Level start)\n\n[ Target no LevelStart ] [ Background no Transition ] -> [ Target ] [ Background Transition5 ]\n[ Target Transition9 no LevelStart ] -> [ Target LevelStart ]\n\n(Win)\n\ndown [ PlayerPink no WinAnim Target no FallBlock | Ridable ]-> [ PlayerPink WinAnim1 Target | Ridable ] sfx8\n\n[ WinAnim6 ] [ Background no Transition ] -> [ WinAnim6 ] [ Background Transition1 ]\n[ WinAnim5 ] -> [ WinAnim6 ]\n[ WinAnim4 ] -> [ WinAnim5 ]\n[ WinAnim3 ] -> [ WinAnim4 ]\n[ WinAnim2 ] -> [ WinAnim3 ]\n[ WinAnim1 ] -> [ WinAnim2 ]\n\n[ > Player WinAnim ] -> cancel\n[ action Player WinAnim ] -> cancel\n\n[ Target WinAnim6 Transition5 ] -> [ Target WinAnim6 Transition5 Winable ]\n\n(tutorial)\n\n[ Crate PressX no TCount ] [ PressX ] -> [ Crate TCount1 ] [ ]\n\n[ TCount5 ] -> [ ]\n[ TCount4 ] -> [ TCount5 ] message X or spacebar to switch characters.\n[ TCount3 ] -> [ TCount4 ]\n[ TCount2 ] -> [ TCount3 ]\n[ TCount1 ] -> [ TCount2 ]\n\n[ > Player ] [ Crate PressX ] -> [ Player ] [ Crate PressX ]\n[ > Player ] [ Crate TCount ] -> [ Player ] [ Crate TCount ]\n[ PlayerPink ] [ PressX ] -> [ PlayerPink ] [ ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Winable \n\n======= \nLEVELS\n=======\n\n\n(Tutorial)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,!xxxxxxxxxo,,,..'''p++++++++++'''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxxx\"xxxxxx,,,..'''p+①+①++++++'''.\n.,,,,,,x,xxxoxx,,,..''''''+'++++++'''.\n.,,,xxxxxxxx,xx,,,..'''++++++++'++'''.\n.,,,xxxxxxxxxxx,,,..'''+++①+++++++'''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,!xxxxxxxx,,,,..''''p++++++++''''.\n.,,,,,,,xxxxxx,,,,..'''''''++++++''''.\n.,,,,,,xxxxxox,,,,..''''''+++++++''''.\n.,,,,xxxxxx\",x,,,,..''''++++++①'+''''.\n.,,,,xx\"xxx\"xx,,,,..''''++①+++①++''''.\n.,,,,xx\"x,,,,,,,,,..''''++①+'''''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxx!xxxx,,,,..''''++++p++++''''.\n.,,,,xxxx\"xxxx,,,,..''''++++①++++''''.\n.,,,,x,,,,,,,x,,,,..''''+'''''''+''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxx\"xxx,,,,..''''+++++①+++''''.\n.,,,,xxx\"o,\"xx,,,,..''''+++①+'①++''''.\n.,,,,xx\",xx\"xx,,,,..''''++①'++①++''''.\n.,,,,xx\"xx,,,,,,,,..''''++①++''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxox,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xx!xx\"xx,,,,,,..'''++p++①++''''''.\n.,,,,,,,,,,,,$,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(二つでスタックのチュートリアル)\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxx!xxxoxxx,,,..'''+++%+++++++'''.\n.,,,,xx\"x\"xxxx,,,,..''''+++++++++''''.\n.,,,,#########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,b,*,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.xxxxxxxxxxxxxxxxx..+++++++++++++++++.\n.x,,,,,,,,,,,,,,,x..+'''''''''''''''+.\n.x,,,,,,b,*,,,,,,x..+''''''''+''''''+.\n.x,,xxxxxxxxxxx,,x..+''+++++++++++''+.\n.x,,xxx!xxxoxxx,,x..+''+++%+++++++''+.\n.x,,,xx\"x\"xxxx,,,x..+'''+++++++++'''+.\n.x,,,,,,,,,,,,,,,x..+'''''''''''''''+.\n.xxxxxxxxxxxxxxxxx..+++++++++++++++++.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(一個なら押しのけて登れる)\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,xxxxxx,,,,,..''''''++++++'''''.\n.,,,,,,x\",x\"x,,,,,..''''''++'+++'''''.\n.,,,,,,,!,,,x,,,,,..'''''''%'''+'''''.\n.,,,,#b,,,*,x,,,,,..'''''''''''+'''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,oxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,,,,xxxxxx,,,,..'''''''++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage Reach the heart to win.\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,x!xxxxxox,,,,..''''+p+++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage You can climb one square.\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxox,,,,..''''+石+++++++''''.\n.,,,,,!,,,,,,,,,,,..'''''p'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage You can only push one block at a time.\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxox,,,,..''''+++++++++''''.\n.,,,,x!\"xxxx\"x,,,,..''''+p石++++石+''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 1. Two Worlds\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,!xxx,b,xxxxxo,,..''%+++'''++++++''.\n.,,,xxx,,,xxxx,,,,..'''+++'''++++''''.\n.,,,xxx,,,xxxx,,,,..'''+++'''++++''''.\n.,,,xxx,,,xxx,,,,,..'''+++'''+++'''''.\n.,,,xxxx*x\"xx,,,,,..'''++++'++++'''''.\n.,,,xxx,,,,,,,,,,,..'''+++'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,文,,,,,,,,..'''''''''''''''''.\n.,,,!xxx,,,xxxo,,,..'''%+++'''++++'''.\n.,,,,xxxx*xxx,,,,,..''''++++'+++'''''.\n.,,,,xxx,,,xx,,,,,..''''+++'''++'''''.\n.,,,,,,,,文,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 2. Delivery\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,oxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,,xxxxxx,,,,,..''''''++++++'''''.\n.,,,,,,x!x\"xx,,,,,..''''''+%++++'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,b*,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 3. One-way Tickets\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx,,,,,,,,,,,..''''++'''''''''''.\n.,,,,x\",,,b*,,,,,,..''''++'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx########,,,..''''++'''''''''''.\n.,,,,xxxxxxxxxx,,,..''''++++++++++'''.\n.,,,,xxxxxxxxxx,,,..''''++++++++++'''.\n.,,,,xxx!xxxoxx,,,..''''+++%++++++'''.\n.,,,,#xx\"x\"xxxx,,,..'''''+++++++++'''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(message Brain training\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,b*,,x\"x,,,,,,,..'''''''+++'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxx!xxxxxxx,,,..'''+++%+++++++'''.\n.,,,xxx,,,,,xxx,,,..'''+++'''''+++'''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxxxxx\"xxxx,,,..'''+++++++++++'''.\n.,,,xxxx\"o,\"xxx,,,..'''++++++'++++'''.\n.,,,xxx\",xx\"xx,,,,..'''++++'+++++''''.\n.,,,,xx\"xx####,,,,..''''+++++''''''''.\n.,,,,######,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(message 2 x 3\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,##,,,,,##,,,,..'''''''''''''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#,\"x\"x\",#,,,,..''''''+++++''''''.\n.,,,,#,,b,*,,#,,,,..'''''''''''''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,xxxxo,,,,,,..''''''+++++''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,xx!xx,,,,,,..''''''++%++''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,##,,,,,##,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 4. 3 x 6\n\n\n......................................\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,b*,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxo,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,!xxxxx,,,,,,..'''''%+++++''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,##########,,,,..'''''''''''''''''.\n.,,,#,,,,,,,,#,,,,..'''''''''''''''''.\n.,,,#,\"!\"x\"x,#,,,,..'''''+p++++''''''.\n.,,,#b,,,*,,,#,,,,..'''''''''''''''''.\n.,,,#,xxxxxx##,,,,..'''''++++++''''''.\n.,,,#,*,,,,,,o,,,,..''''''''''''+''''.\n.,,,#,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,,,,,,,,#,,,,..'''''''''''''''''.\n.,,,##########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 5. Too Small to Climb\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,ox\"#,,,,,,..'''''''+++'''''''.\n.,,,,,,,,,\"#,,,,,,..'''''''''+'''''''.\n.,,,,,,,x,\"#,,,,,,..'''''''+'+'''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,!b*,,,,,,,..'''''''%'''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,b@,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,@,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,oxxx,,,,,,,..''''''++++'''''''.\n.,,,,,#,xxx,,,,,,,..'''''''+++'''''''.\n.,,,,,!,xxx,,,,,,,..'''''%'+++'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 6. I Hope That's Enough\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,xox,,,,,..''''''''++++'''''.\n.,,,,,,,,,xxx\"xx,,..''''''''+++++++''.\n.,,,,,,,,,,,,\"xx,,..''''''''''''+++''.\n.,,######xxxx\"xx,,..''''''''+++++++''.\n.,,#,,,!#x\",,,,,,,..''''''%'++'''''''.\n.,,#,*,,xx\"x,*,*,,..'''''''++++''''''.\n.,,####,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,##,,,,,,b,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 7. The Larger, the Better\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,#,#,#,#,#,#,..'''''''''''''''''.\n.,,,,,xxxxxo,,,,,,..'''''++++++''''''.\n.,,,,,xx\",,,,,,,,,..'''''+++'''''''''.\n.,,,,,xx\",,,,,,,,,..'''''+++'''''''''.\n.,,,,,!x\",@@@@,,,,..'''''%++'''''''''.\n.,#,#,#,#,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,b,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 8. Cut the Screen\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,oxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,@@@@@@@,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"x#x,,,,,..'''''+++++'+'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,x!x\"xxx,,,,,..'''''+%+++++'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,oxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,2222222,,,,,..'''''''''''''''''.\n.,x,,,xxx\"xxx,,,,,..'+'''+++++++'''''.\n.,,,,,@@@@@@@,,,,,..'''''''''''''''''.\n.,,,,,,xxxx!x,,,,,..''''''++++%+'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 9. Transfer\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.#################..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,xx,,,2b@@@,,o,,..''++''''''''''+''.\n.,,!\",222,@,,,,x,,..''%+''''''''''+''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.#################..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 10. Do You Like Math Puzzles?\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,b,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,\"@#xx#xx#xx#x#..'''+''++++++++'+'.\n.,,\"\"@#xxxxxxxxxx#..''++''++++++++++'.\n.,,\"\"@#xx,xx,xx,o#..''++''++'++'++'+'.\n.,,,,@#!x,xx,xx,x#..''''''%+'++'++'+'.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 11. Haste Makes Waste\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,xxx,,,,,,,..'''''''+++'''''''.\n.,,xxx,,,,,,,xxx,,..''+++'''''''+++''.\n.,,xx\",,@@@,,xox,,..''+++'''''''+++''.\n.,,!x\",,@@@,,xxx,,..''%++'''''''+++''.\n.,,###,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 12. Neither Road Leads to Rome\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,#############,,,..'''''''''''''''''.\n.,#,,,,!\"\"\"x\"x###,..''''''%+++++++++'.\n.,#b@@,,,,,,,,xo#,..'''''''''''''+++'.\n.,#,,,,xxxxxx,xx#,..''''''++++++'+++'.\n.,#,,,,,,,,,,,###,..'''''''''''''''''.\n.,#############,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 13. This Elevator Will Be Taking No Passengers\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,o\"\"\"\"\",,,,,,..'''''++++++''''''.\n.,,b*,,\"\"\"\"\",,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.####xxx,,,xxx####..''''+++'''+++''''.\n.,,,,xxx@@@xxx,,,,..''''+++'''+++''''.\n.,,,,xxx@@@xxx,,,,..''''+++'''+++''''.\n.,,,,xxx,,,xxx,,,,..''''+++'''+++''''.\n.,,,,xxx,,,xxx,,,,..''''+++'''+++''''.\n.,,,,x!x,,,xxx,,,,..''''+%+'''+++''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................)\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx\"\"\"\"\"xx,,,,..''''+++++++++''''.\n.,b*,xx\"\"\"\"\"xx,,,,..''''+++++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#oxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#,xx@@@xxx#,,,..'''''++'''+++''''.\n.,,,#xxx@@@xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#x!x,,,xxx#,,,..''''+%+'''+++''''.\n.,,,###,,,,,###,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,xxxx\"\"\"xx,,,,..''''+++++++++''''.\n.,,,,xxx\"\"\"\"xx,,,,..''''+++++++++''''.\n.,b*,xx,\"\"\"\"xx,,,,..''''++'++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#oxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#,xx@@@xxx#,,,..'''''++'''+++''''.\n.,,,#xxx@@@xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#x!x,,,xxx#,,,..''''+%+'''+++''''.\n.,,,###,,,,,###,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 14. 3 x 21\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,#,,xxx\"\"\"o,,..''''''''+++++++''.\n.,,,,@@@,xxx\"\"\",,,..''''''''++++++'''.\n.,,,,@@@#\"\"\"\"\"\",,,..''''''''++++++'''.\n.,,,#@@@,\"\"\"\"\"\",,,..''''''''++++++'''.\n.,,,,@@@,\"\"\"\"\"\",#,..''''''''++++++'''.\n.,,,,@@@,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#,,,,b,,22,,,,..'''''''''''''''''.\n.,,,x!,,,,,,,2,,,,..'''+%''''''''''''.\n.,,,,#,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,#,#,#,#,#,..'''''''''''''''''.\n.,,,,,#,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\nmessage Thanks for playing!\n\n\n(......................................\n.,,,,,#,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#o,b,#,,,,,,..''''''+''''''''''.\n.,,,,,,,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#,*,*#,,,,,,..'''''''''''''''''.\n.,,,,,#,@@@#,,,,,,..'''''''''''''''''.\n.,,,,,#,@@@##,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,##,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,x,,#,,,,,..''''''''%''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,b,,,,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,o,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,\",,,,,,#,,..'''''''+'''''''''.\n.,*,*,*,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,#,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,@@,@@@#,,,,,,#,,..'''''''''''''''''.\n.,@@,,@@,,,,,,,,,,..'''''''''''''''''.\n.,@@@@@@#,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,#,!,#,#,,..''''''''''%''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,##!######,,,,..''''''%''''''''''.\n.,,,,#,,,,,,o#,,,,..'''''''''''+'''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#,,@b2,,#,,,,..'''''''+'+'''''''.\n.,,,,#,@@,22,#,,,,..''''''++'++''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,x\"\"\"x,,,,,,..''''''+++++''''''.\n.,,,,,,\"\"\"\"\",,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,#,xxx,,,,,oxx,#,..'''+++'''''+++'''.\n.,#,xxx,222,xxx,#,..'''+++'''''+++'''.\n.,#,xxx,,,,,xxx,#,..'''+++'''''+++'''.\n.,#,xxx,@@,,xxx,#,..'''+++'''''+++'''.\n.,#,x!x,,,,,xxx,#,..'''+%+'''''+++'''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,\"o,,#,,,..'''''''''++''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#xxx,,,,xxx#,,,..'''+++''''+++''''.\n.,,#xxx,,,,\"xx#,,,..'''+++''''+++''''.\n.,,#xxx,,,,\"xx#,,,..'''+++''''+++''''.\n.,,#xxx,2@,\"xx#,,,..'''+++''''+++''''.\n.,,#!xx22@@\"xx#,,,..'''%++''''+++''''.\n.,,#,,,2,,@,,,#,,,..'''''''''''''''''.\n.,,#,,,2,,@,,,#,,,..'''''''''''''''''.\n.,,#,b,22@@,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n......................................)\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick",2,"tick","tick",2,"tick",2,"tick","tick","tick",1,"tick","tick","tick","tick",4,"tick","tick","tick","tick"],"background colbgpink outline:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background bgblue:1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,background bgblue ghostplayeranim1 zonepurple:2,background bgblue zonepurplebelow:3,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,background bgblue zonepurple:4,4,4,3,1,1,1,1,0,0,1,1,1,1,1,1,4,4,4,3,1,1,1,1,0,0,1,\n1,1,1,1,1,4,4,4,3,1,1,1,1,0,0,1,1,1,1,1,1,1,4,background bgblue stayblueleft zonepurplebelow:5,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,background bgblue crateabove:6,background bgblue crate crateline:7,background bgblue cratebelow:8,1,1,1,0,0,1,1,1,1,1,1,1,4,3,1,1,1,1,1,0,0,1,1,1,1,1,1,4,4,4,3,1,1,1,\n1,0,0,1,1,1,1,1,1,4,4,4,3,1,1,1,1,0,0,1,1,1,1,1,1,4,3,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,background ghosttarget zonepurple:9,3,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background bgpink colbgpink:10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,\n10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,background bgpink climbable colbgpink:11,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,background playerpinkright removepinklud zonepink:12,addpinkru background bgpink climbable colbgpink:13,11,10,10,\n10,10,10,0,0,10,10,10,10,10,10,background zonepink:14,14,background removepinkld zonepink:15,10,10,10,10,10,0,0,10,10,10,10,10,10,14,14,14,10,10,10,10,10,0,0,10,\n10,10,10,10,10,background removepinkru zonepink:16,14,background removepinkrd zonepink:17,10,10,10,10,10,0,0,10,10,10,10,10,10,addpinkld background bgpink climbable colbgpink:18,background removepinkrud zonepink:19,addpinklu background bgpink climbable colbgpink:20,11,10,10,10,10,0,0,10,10,10,10,10,10,10,\n11,10,background removepinklud removepinkrud zonepink:21,10,10,10,10,0,0,10,10,10,10,10,10,addpinkrd background bgpink climbable colbgpink:22,background removepinklud zonepink:23,13,11,10,10,10,10,0,0,10,10,10,10,10,10,background removepinklu zonepink:24,14,15,10,10,10,10,\n10,0,0,10,10,10,10,10,10,14,14,17,10,10,10,10,10,0,0,10,10,10,10,10,10,14,20,11,10,10,10,10,10,0,0,10,10,10,\n10,10,10,background levelstart removepinkrud target zonepink:25,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,11,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,10,10,10,\n10,10,10,10,10,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n","7","1627770584313.9392"] + ["title Two Worlds\nauthor nebu soku\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\nrealtime_interval 0.1\nagain_interval 0.05\nbackground_color #282818\ntext_color #c8c8a8\nflickscreen 19x16\n\n========\nOBJECTS\n========\n\nBackground \n#282818\n\nOutLine\n#282818\n\nBGBlue\n#c8c8a8 #c1e4f0\n\nBGPink\n#282818 #f8cefd\n\nTarget \n#a0a088\n00.00\n00000\n00000\n.000.\n..0..\n\nGhostTarget \n#a0a088\n00.00\n00000\n00000\n.000.\n..0..\n\nWall \n#a0a088 #686850 #282818\n01000\n02010\n00020\n00000\n11111\n\nWallAbove\n#a0a088\n.....\n.....\n.....\n.....\n00000\n\nWallBelow\n#686850\n00000\n.....\n.....\n.....\n.....\n\nZonePurple\n#282818 #a0a088 #3d1e7e\n00000\n00000\n00100\n00000\n00000\n\nZonePurpleBelow\n#686850 #a0a088\n00000\n.....\n.....\n.....\n.....\n\nZonePink\n#c8c8a8 #ef90e3\n\nPlayerBlueRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850 #54b4d5\n.0000\n.0000\n.0121\n5.33.\n..34.\n\nWalkAnimBR1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850(#4fbbdf #608b8c #d5f5f6 #1d7788 #1a6978 #53aecc)\n.0000\n.0000\n.0121\n5.33.\n.....\n\nWalkAnimBR2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n.4..3\n\nWalkAnimBR3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n..3..\n\nPlayerBlueLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.43..\n\nWalkAnimBL1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.....\n\nWalkAnimBL2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n3..4.\n\nWalkAnimBL3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n..3..\n\nStayBlueRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n..34.\n\nStayBlueLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.43..\n\nPlayerPinkRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818(#de4fdd #8a608b #f6d4f5 #871d86 #741978 #cc52c9 #d153d5)\n.5000\n.0000\n.0121\n..33.\n..34.\n\nWalkAnimPR1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.....\n\nWalkAnimPR2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nWalkAnimPR3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n..3..\n\nPlayerPinkLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.43..\n\nWalkAnimPL1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.....\n\nWalkAnimPL2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nWalkAnimPL3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n..3..\n\nStayPinkRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n..34.\n\nStayPinkLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.43..\n\nFallRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nFallLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nClimbRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nClimbLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nGhostPlayer\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAbove\n#c8c8a8\n.....\n.....\n.....\n.....\n.000.\n\nGhostPlayerAnim1\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAnim2\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAnim3\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nGhostPlayerAnim4\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nGhostPlayerAnim5\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nStuckRigid\nblack\n\nStuckCursor\n#282818\n0...0\n0...0\n0...0\n00000\n.....\n\nStuckCursorAbove\n#282818\n.....\n.....\n.....\n.....\n00000\n\nCrate \n#a0a088 #686850 #282818 #c8c8a8\n01110\n02220\n02020\n00000\n11111\n\nCrateAbove\n#a0a088\n.....\n.....\n.....\n.....\n00000\n\nCrateBelow\n#686850\n00000\n.....\n.....\n.....\n.....\n\nCrateLine\n#a0a088\n.....\n.....\n.....\n00000\n.....\n\nRigidCrate\n#a0a088 #282818\n11111\n11111\n11011\n11111\n11111\n\nRigidU\n#686850\n00000\n.....\n.....\n.....\n.....\n\nRigidUL\n#686850\n....0\n.....\n.....\n.....\n.....\n\nRigidUR\n#686850\n0....\n.....\n.....\n.....\n.....\n\nRigidD\n#a0a088 #686850\n.....\n.....\n.....\n00000\n11111\n\nRigidL\n#a0a088\n0....\n0....\n0....\n0....\n0....\n\nRigidR\n#a0a088\n....0\n....0\n....0\n....0\n....0\n\nRigidLR\n#a0a088\n0...0\n0...0\n0...0\n0...0\n0...0\n\nAboveRigidL\n#a0a088\n.....\n.....\n.....\n0....\n0....\n\nAboveRigidR\n#a0a088\n.....\n.....\n.....\n....0\n....0\n\nAboveRigidLR\n#a0a088\n.....\n.....\n.....\n0...0\n0...0\n\nAboveRigidLRwithR\n#a0a088\n....0\n....0\n....0\n0...0\n0...0\n\nAboveRigidLRwithL\n#a0a088\n0....\n0....\n0....\n0...0\n0...0\n\nrigid1\nblack\n\nrigid2\nblack\n\nBlock \n#c8c8a8 #a0a088 #686850\n12222\n21112\n21112\n21112\n22221\n\nGhostBlock\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim1\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim2\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim3\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\nGhostBlockAnim4\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\nGhostBlockAnim5\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\n\nClimbable\npink\n\nColBGPink\nblack\n.....\n.....\n.....\n.....\n.....\n\nFallBlock\nblack\n\nWinable\nblack\n\nAddPinkLUD\n#c8c8a8\n0....\n.....\n.....\n.....\n0....\n\nAddPinkLU\n#c8c8a8\n0....\n.....\n.....\n.....\n.....\n\nAddPinkLD\n#c8c8a8\n.....\n.....\n.....\n.....\n0....\n\nAddPinkRUD\n#c8c8a8\n....0\n.....\n.....\n.....\n....0\n\nAddPinkRU\n#c8c8a8\n....0\n.....\n.....\n.....\n.....\n\nAddPinkRD\n#c8c8a8\n.....\n.....\n.....\n.....\n....0\n\nRemovePinkLUD\n#282818\n0....\n.....\n.....\n.....\n0....\n\nRemovePinkLU\n#282818\n0....\n.....\n.....\n.....\n.....\n\nRemovePinkLD\n#282818\n.....\n.....\n.....\n.....\n0....\n\nRemovePinkRUD\n#282818\n....0\n.....\n.....\n.....\n....0\n\nRemovePinkRU\n#282818\n....0\n.....\n.....\n.....\n.....\n\nRemovePinkRD\n#282818\n.....\n.....\n.....\n.....\n....0\n\nTransition1\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransition2\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransition3\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransition4\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransition5\n#282818\n00000\n00000\n00000\n00000\n00000\n\nTransition6\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransition7\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransition8\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransition9\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransitionR1\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransitionR2\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransitionR3\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransitionR4\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransitionR5\n#282818\n00000\n00000\n00000\n00000\n00000\n\nTransitionR6\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransitionR7\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransitionR8\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransitionR9\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nHide\n#c8c8a8\n\nWinAnim1\n#c8c8a8\n.....\n.0...\n.....\n.....\n.....\n\nWinAnim2\n#c8c8a8\n.....\n.0...\n.....\n.....\n.....\n\nWinAnim3\n#c8c8a8\n.0...\n000..\n.0...\n...0.\n.....\n\nWinAnim4\n#c8c8a8\n.....\n.0...\n...0.\n..000\n...0.\n\nWinAnim5\n#c8c8a8\n.....\n.....\n.....\n...0.\n.....\n\nWinAnim6\n#c8c8a8\n.....\n.....\n.....\n.....\n.....\n\nLevelStart\n#282818\n\nPressX\n#686850 #282818\n0.0.0\n0.0.0\n00.00\n0.0.0\n0.0.0\n\nTCount1\nblack\n\nTCount2\nblack\n\nTCount3\nblack\n\nTCount4\nblack\n\nTCount5\nblack\n\n=======\nLEGEND\n=======\n\nBlueRight = PlayerBlueRight or WalkAnimBR1 or WalkAnimBR2 or WalkAnimBR3\nBlueLeft = PlayerBlueLeft or WalkAnimBL1 or WalkAnimBL2 or WalkAnimBL3\nPlayerBlue = BlueRight or BlueLeft\n\nPinkRight = PlayerPinkRight or WalkAnimPR1 or WalkAnimPR2 or WalkAnimPR3 \nPinkLeft = PlayerPinkLeft or WalkAnimPL1 or WalkAnimPL2 or WalkAnimPL3\nPlayerPink = PinkRight or PinkLeft\nPlayerFall = PlayerPink or FallRight or FallLeft\n\nPlayer = PlayerBlue or PlayerPink or ClimbRight or ClimbLeft\nPlayerMove = PlayerBlue or PlayerPink\n\nGBlock = GhostBlock or GhostBlockAnim1 or GhostBlockAnim2 or GhostBlockAnim3 or GhostBlockAnim4 or GhostBlockAnim5\n\nGPlayer = GhostPlayer or GhostPlayerAnim1 or GhostPlayerAnim2 or GhostPlayerAnim3 or GhostPlayerAnim4 or GhostPlayerAnim5\nGPAboveAnim = GhostPlayerAnim3 or GhostPlayerAnim4 or GhostPlayerAnim5\n\nRidable = BGPink or Block or ColBGPink\n\nRigids = rigid1 or rigid2\n\nAboveDeco = AboveRigidL or AboveRigidR or RigidL or RigidR or RigidLR\nRigidDeco = RigidU or AboveDeco or RigidD or AboveRigidLR or AboveRigidLRwithR or AboveRigidLRwithL or RigidUL or RigidUR\n\nAddPinkL = AddPinkLUD or AddPinkLU or AddPinkLD\nAddPinkR = AddPinkRUD or AddPinkRU or AddPinkRD\n\nRemovePinkL = RemovePinkLUD or RemovePinkLU or RemovePinkLD\nRemovePinkR = RemovePinkRUD or RemovePinkRU or RemovePinkRD\n\nTransition = Transition1 or Transition2 or Transition3 or Transition4 or Transition5 or Transition6 or Transition7 or Transition8 or Transition9\nTransitionR = TransitionR1 or TransitionR2 or TransitionR3 or TransitionR4 or TransitionR5 or TransitionR6 or TransitionR7 or TransitionR8 or TransitionR9\n\nWinAnim = WinAnim1 or WinAnim2 or WinAnim3 or WinAnim4 or WinAnim5 or WinAnim6\nTCount = TCount1 or TCount2 or TCount3 or TCount4\n\n. = Background\n, = BGBlue\n' = BGPink\n# = Wall and BGBlue\nB = PlayerBlueRight and BGBlue\nP = PlayerPinkRight and ZonePink\n* = Crate and BGBlue\n@ = RigidCrate and rigid1 and BGBlue\n2 = RigidCrate and rigid2 and BGBlue\nO = GhostTarget and ZonePurple\nx = ZonePurple and BGBlue\n+ = ZonePink\n\" = GhostBlock and ZonePurple and BGBlue\n! = GhostPlayer and ZonePurple and BGBlue\n($ = StayBlueRight and BGBlue)\n% = StayPinkRight and ZonePink\n石 = Block and ZonePink\n文 = PressX and BGBlue\n\n=======\nSOUNDS\n=======\n\nPlayerMove move 15203103\nCrate move 80987507\nRigidCrate move 80987507\nBlock action 70814309\nStuckCursor action 20002502 (boo)\nZonePurple move 95712903\nZonePink action 52706103\nTransition1 action 54782309\nTransitionR1 action 54782309\n\nsfx0 30806303\nsfx1 91797700 (fall)\nsfx2 99718300\nsfx3 65480100\nsfx4 80396503 (jump1)\nsfx5 80987507 (block)\nsfx6 45846907\nsfx7 28015305 (jump2)\nsfx8 10636903\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPressX\nTCount, TCount5\nLevelStart\nClimbable\nFallBlock\nWinable\nrigids\nStuckRigid\nBGBlue\nZonePink\nBGPink\nWallBelow\nTarget\nHide\nCrateBelow, ZonePurpleBelow\nPlayer, Wall, Crate, ZonePurple, StayBlueRight, StayBlueLeft, StayPinkRight, StayPinkLeft, FallRight, FallLeft, ClimbRight, ClimbLeft, Block, ColBGPink, RigidCrate\nRemovePinkL\nRemovePinkR\nGhostTarget\nRigidU, RigidUL, RigidUR\nGPlayer\nAboveRigidL, AboveRigidR, RigidL, RigidR, RigidLR\nRigidD, AboveRigidLR, AboveRigidLRwithR, AboveRigidLRwithL\nCrateAbove\nStuckCursorAbove\nWallAbove\nGBlock\nGhostPlayerAbove\nCrateLine\nStuckCursor\nAddPinkL\nAddPinkR\nOutLine\nWinAnim\nTransition, TransitionR\n\n======\nRULES \n====== \n[ > Player ] [ FallBlock ] -> cancel (bug?) \n\n(int)\n\n[ > Player Transition ] -> [ Player Transition ]\n[ ColBGPink ] -> [ ]\n[ BGPink ] -> [ BGPink ColBGPink ]\n[ Background no BGBlue no BGPink no ZonePurple no ZonePink ] -> [ Background OutLine ColBGPink ]\n\nright [ GhostTarget | | | | | | | | | | | | | | | | | | | ] -> [ GhostTarget | | | | | | | | | | | | | | | | | | | Target ]\n\ndown [ ZonePurple | no ZonePurple ] -> [ ZonePurple | ZonePurpleBelow ]\n\nup [ Wall | ] -> [ Wall | WallAbove ]\ndown [ Wall | ] -> [ Wall | WallBelow ]\n\n(Crate-ZonePink)\n\n[ CrateAbove ] -> [ ]\n[ CrateBelow ] -> [ ]\n[ CrateLine ] -> [ ]\nlate up [ | Crate | ] -> [ CrateBelow | Crate CrateLine | CrateAbove ]\n(late down [ Crate | ] -> [ Crate | CrateBelow ])\n\nlate right [ no Crate no ZonePurple no RigidCrate | | | | | | | | | | | | | | | | | | | ZonePink ] -> [ | | | | | | | | | | | | | | | | | | | BGPink ]\nlate right [ PlayerPink ] [ Crate | | | | | | | | | | | | | | | | | | | BGPink ] -> [ PlayerPink ] [ Crate | | | | | | | | | | | | | | | | | | | ZonePink ]\nlate right [ PlayerPink ] [ RigidCrate | | | | | | | | | | | | | | | | | | | BGPink ] -> [ PlayerPink ] [ RigidCrate | | | | | | | | | | | | | | | | | | | ZonePink ]\n\n(Block-GhostBlock)\n\n[ PlayerPink ] [ GBlock ] -> [ PlayerPink ] [ ]\nright [ PlayerPink ] [ | | | | | | | | | | | | | | | | | | | Block ] -> [ PlayerPink ] [ GhostBlock | | | | | | | | | | | | | | | | | | | Block ]\n\n[ PlayerBlue ] [ Block ] -> [ PlayerBlue ] [ ]\nright [ PlayerBlue ] [ GBlock | | | | | | | | | | | | | | | | | | | ] -> [ PlayerBlue ] [ GBlock | | | | | | | | | | | | | | | | | | | Block ]\n\n(Player-GhostPlayer)\n\n[ PlayerPink ] [ GPlayer ] -> [ PlayerPink ] [ ]\nright [ PlayerPink ] [ | | | | | | | | | | | | | | | | | | | PlayerPink ] -> [ PlayerPink ] [ GhostPlayer | | | | | | | | | | | | | | | | | | | PlayerPink ]\n\n(Switch)\n\n[ Target LevelStart ] [ action BlueRight ] [ StayPinkRight ] [ Background ] -> [ Target LevelStart ] [ BlueRight ] [ StayPinkRight ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueRight ] [ StayPinkRight ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueRight ] [ PlayerPinkRight ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueRight ] [ StayPinkLeft ] [ Background ] -> [ Target LevelStart ] [ BlueRight ] [ StayPinkLeft ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueRight ] [ StayPinkLeft ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueRight ] [ PlayerPinkLeft ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueLeft ] [ StayPinkRight ] [ Background ] -> [ Target LevelStart ] [ BlueLeft ] [ StayPinkRight ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueLeft ] [ StayPinkRight ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueLeft ] [ PlayerPinkRight ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueLeft ] [ StayPinkLeft ] [ Background ] -> [ Target LevelStart ] [ BlueLeft ] [ StayPinkLeft ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueLeft ] [ StayPinkLeft ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueLeft ] [ PlayerPinkLeft ] [ Transition6 ]\n\n[ action PlayerPinkRight no FallBlock ] [ StayBlueRight ] [ Background ] -> [ PlayerPinkRight ] [ StayBlueRight ] [ Background action TransitionR1 ]\n[ PlayerPinkRight ] [ StayBlueRight ] [ TransitionR6 ] -> [ StayPinkRight ] [ PlayerBlueRight ] [ TransitionR6 ]\n[ action PlayerPinkRight no FallBlock ] [ StayBlueLeft ] [ Background ] -> [ PlayerPinkRight ] [ StayBlueLeft ] [ Background action TransitionR1 ]\n[ PlayerPinkRight ] [ StayBlueLeft ] [ TransitionR6 ] -> [ StayPinkRight ] [ PlayerBlueLeft ] [ TransitionR6 ]\n[ action PlayerPinkLeft no FallBlock ] [ StayBlueRight ] [ Background ] -> [ PlayerPinkLeft ] [ StayBlueRight ] [ Background action TransitionR1 ]\n[ PlayerPinkLeft ] [ StayBlueRight ] [ TransitionR6 ] -> [ StayPinkLeft ] [ PlayerBlueRight ] [ TransitionR6 ]\n[ action PlayerPinkLeft no FallBlock ] [ StayBlueLeft ] [ Background ] -> [ PlayerPinkLeft ] [ StayBlueLeft ] [ Background action TransitionR1 ]\n[ PlayerPinkLeft ] [ StayBlueLeft ] [ TransitionR6 ] -> [ StayPinkLeft ] [ PlayerBlueLeft ] [ TransitionR6 ]\n\n(Climb)\n\n[ Climbable ] -> [ ]\nhorizontal [ BGPink | ZonePink ] -> [ BGPink Climbable | ZonePink ]\nhorizontal [ BGPink | Block ] -> [ BGPink | Block Climbable ]\nhorizontal [ Block | Block ] -> [ Block Climbable | Block Climbable ]\n\ndown [ ClimbRight | BGPink ] -> [ PlayerPinkRight | BGPink ]\ndown [ ClimbRight | Block ] -> [ PlayerPinkRight | Block ]\nright [ ClimbRight | ZonePink ] -> [ > ClimbRight | ZonePink ]\nright [ ClimbRight | Climbable ] -> [ FallRight | Climbable ]\nright [ > PinkRight no FallBlock | Climbable ] -> [ up ClimbRight | Climbable ] sfx7\n\ndown [ ClimbLeft | BGPink ] -> [ PlayerPinkLeft | BGPink ]\ndown [ ClimbLeft | Block ] -> [ PlayerPinkLeft | Block ]\nleft [ ClimbLeft | ZonePink ] -> [ > ClimbLeft | ZonePink ]\nleft [ ClimbLeft | Climbable ] -> [ FallLeft | Climbable ]\nleft [ > PinkLeft no FallBlock | Climbable ] -> [ up ClimbLeft | Climbable ] sfx7\n\n(Push)\n\n[ > Player | Crate no GPlayer no PressX no TCount ] -> [ > Player | > Crate ]\n[ > Player no FallBlock | Block ] -> [ > Player | > Block ] sfx5\n[ > Player | GBlock no rigids no ZonePurple | no Wall no ZonePurple no OutLine no Crate ] -> [ > Player | > GBlock | ]\n\n[ StuckCursor ] -> [ ] (Stuck effect)\n[ StuckCursorAbove ] -> [ ]\nlate up [ StuckCursor | ] -> [ StuckCursor | StuckCursorAbove ]\n[ > PlayerBlueRight | GPlayer Crate ] -> [ WalkAnimBR1 | GPlayer action StuckCursor Crate ]\n[ > PlayerBlueLeft | GPlayer Crate ] -> [ WalkAnimBL1 | GPlayer action StuckCursor Crate ]\n[ > PlayerBlueRight | StuckRigid ] [ GPlayer ] -> [ WalkAnimBR1 | StuckRigid ] [ GPlayer action StuckCursor ]\n[ > PlayerBlueLeft | StuckRigid ] [ GPlayer ] -> [ WalkAnimBL1 | StuckRigid ] [ GPlayer action StuckCursor ]\n\n[ StuckRigid ] -> [ ]\n[ Rigid1 GPlayer ] [ Rigid1 ] -> [ Rigid1 GPlayer StuckRigid ] [ Rigid1 StuckRigid ]\n[ Rigid2 GPlayer ] [ Rigid2 ] -> [ Rigid2 GPlayer StuckRigid ] [ Rigid2 StuckRigid ]\n\nrigid [ > Player | RigidCrate rigid1 no StuckRigid ] -> [ > Player | > RigidCrate > rigid1 ]\n+ rigid [ moving RigidCrate rigid1 | RigidCrate rigid1 ] -> [ moving RigidCrate moving rigid1 | moving RigidCrate moving rigid1 ]\n+ rigid [ moving rigid1 | GBlock rigid1 ] -> [ moving rigid1 | moving GBlock moving rigid1 ]\n\nrigid [ > Player | RigidCrate rigid2 no StuckRigid ] -> [ > Player | > RigidCrate > rigid2 ]\n+ rigid [ moving RigidCrate rigid2 | RigidCrate rigid2 ] -> [ moving RigidCrate moving rigid2 | moving RigidCrate moving rigid2 ]\n+ rigid [ moving rigid2 | GBlock rigid2 ] -> [ moving rigid2 | moving GBlock moving rigid2 ]\n\n(RigidCrate)\n\n[ RigidDeco ] -> [ ]\nlate down [ rigid1 | no rigid1 ] -> [ rigid1 RigidD | CrateBelow ]\nlate up [ rigid1 | no rigid1 ] -> [ rigid1 | CrateAbove ]\nlate left [ rigid1 | no rigid1 ] -> [ rigid1 RigidL | ]\nlate right [ rigid1 RigidL | no rigid1 ] -> [ rigid1 RigidLR | ]\nlate right [ rigid1 no AboveDeco | no rigid1 ] -> [ rigid1 RigidR | ]\n\nlate up [ RigidL rigid1 | rigid1 no AboveDeco ] -> [ RigidL rigid1 | rigid1 AboveRigidL ]\nlate up [ RigidR rigid1 | rigid1 no AboveDeco ] -> [ RigidR rigid1 | rigid1 AboveRigidR ]\nlate up [ RigidLR rigid1 | rigid1 ] -> [ RigidLR rigid1 | rigid1 AboveRigidLR ]\n\nlate up [ RigidL rigid1 | rigid1 RigidR ] -> [ RigidL rigid1 | rigid1 AboveRigidLRwithR ]\nlate up [ RigidR rigid1 | rigid1 RigidL ] -> [ RigidR rigid1 | rigid1 AboveRigidLRwithL ]\n\nlate up [ rigid1 | CrateAbove ] -> [ rigid1 RigidU | CrateAbove ]\n\nlate left [ rigid1 RigidU | rigid1 no RigidU ] -> [ rigid1 RigidU | rigid1 RigidUL ]\nlate right [ rigid1 RigidU | rigid1 no RigidU ] -> [ rigid1 RigidU | rigid1 RigidUR ]\n\n\nlate down [ rigid2 | no rigid2 ] -> [ rigid2 RigidD | CrateBelow ]\nlate up [ rigid2 | no rigid2 ] -> [ rigid2 | CrateAbove ]\nlate left [ rigid2 | no rigid2 ] -> [ rigid2 RigidL | ]\nlate right [ rigid2 RigidL | no rigid2 ] -> [ rigid2 RigidLR | ]\nlate right [ rigid2 no AboveDeco | no rigid2 ] -> [ rigid2 RigidR | ]\n\nlate up [ RigidL rigid2 | rigid2 no AboveDeco ] -> [ RigidL rigid2 | rigid2 AboveRigidL ]\nlate up [ RigidR rigid2 | rigid2 no AboveDeco ] -> [ RigidR rigid2 | rigid2 AboveRigidR ]\nlate up [ RigidLR rigid2 | rigid2 ] -> [ RigidLR rigid2 | rigid2 AboveRigidLR ]\n\nlate up [ RigidL rigid2 | rigid2 RigidR ] -> [ RigidL rigid2 | rigid2 AboveRigidLRwithR ]\nlate up [ RigidR rigid2 | rigid2 RigidL ] -> [ RigidR rigid2 | rigid2 AboveRigidLRwithL ]\n\nlate up [ rigid2 | CrateAbove ] -> [ rigid2 RigidU | CrateAbove ]\n\nlate left [ rigid2 RigidU | rigid2 no RigidU ] -> [ rigid2 RigidU | rigid2 RigidUL ]\nlate right [ rigid2 RigidU | rigid2 no RigidU ] -> [ rigid2 RigidU | rigid2 RigidUR ]\n\n(Fall)\n\ndown [ FallRight | Ridable ] -> [ PlayerPinkRight | Ridable ]\ndown [ FallRight no Transition | no Ridable ] -> [ > FallRight | ]\ndown [ PinkRight no Transition | no Ridable ] -> [ > FallRight | ] sfx7\n\ndown [ FallLeft | BGPink ] -> [ PlayerPinkLeft | BGPink ]\ndown [ FallLeft | Block ] -> [ PlayerPinkLeft | Block ]\ndown [ FallLeft no Transition | no Ridable ] -> [ > FallLeft | ]\ndown [ PinkLeft no Transition | no Ridable ] -> [ > FallLeft | ] sfx7\n\n[ FallBlock ] -> [ ]\ndown [ Block no Transition | no ColBGPink no Block no Player ] [ PlayerFall ] -> [ > Block | ] [ PlayerFall FallBlock ] sfx1\n\n(ZonePink border)\n\n[ AddPinkL ] -> [ ]\n[ RemovePinkL ] -> [ ]\n[ AddPinkR ] -> [ ]\n[ RemovePinkR ] -> [ ]\n\nlate left [ no ZonePink no AddPinkL | ZonePink ] -> [ AddPinkLUD | ZonePink ]\nlate right [ no ZonePink no AddPinkR | ZonePink ] -> [ AddPinkRUD | ZonePink ]\n\nlate up [ AddPinkLUD | no ZonePink ] -> [ AddPinkLD | ]\nlate up [ AddPinkRUD | no ZonePink ] -> [ AddPinkRD | ]\n\nlate down [ AddPinkLUD | no ZonePink ] -> [ AddPinkLU | ]\nlate down [ AddPinkRUD | no ZonePink ] -> [ AddPinkRU | ]\n\nlate down [ AddPinkLD | no ZonePink ] -> [ | ]\nlate down [ AddPinkRD | no ZonePink ] -> [ | ]\n\nlate left [ ZonePink no RemovePinkL | no ZonePink ] -> [ ZonePink RemovePinkLUD | ]\nlate right [ ZonePink no RemovePinkR | no ZonePink ] -> [ ZonePink RemovePinkRUD | ]\n\nlate up [ RemovePinkLUD | ZonePink ] -> [ RemovePinkLD | ZonePink ]\nlate up [ RemovePinkRUD | ZonePink ] -> [ RemovePinkRD | ZonePink ]\n\nlate down [ RemovePinkLUD | ZonePink ] -> [ RemovePinkLU | ZonePink ]\nlate down [ RemovePinkRUD | ZonePink ] -> [ RemovePinkRU | ZonePink ]\n\nlate down [ RemovePinkLD | ZonePink ] -> [ | ZonePink ]\nlate down [ RemovePinkRD | ZonePink ] -> [ | ZonePink ]\n\nlate right [ RemovePinkRU | AddPinkLU ] -> [ RemovePinkRU | ]\nlate right [ RemovePinkRD | AddPinkLD ] -> [ RemovePinkRD | ]\n\nlate right [ RemovePinkRUD | AddPinkLU ] -> [ RemovePinkRUD | ]\nlate right [ RemovePinkRUD | AddPinkLD ] -> [ RemovePinkRUD | ]\n\nlate left [ RemovePinkLU | AddPinkRU ] -> [ RemovePinkLU | ]\nlate left [ RemovePinkLD | AddPinkRD ] -> [ RemovePinkLD | ]\n\nlate left [ RemovePinkLUD | AddPinkRU ] -> [ RemovePinkLUD | ]\nlate left [ RemovePinkLUD | AddPinkRD ] -> [ RemovePinkLUD | ]\n\nlate left [ AddPinkLUD | RemovePinkRUD ] -> [ | RemovePinkRUD ]\nlate right [ AddPinkRUD | RemovePinkLUD ] -> [ | RemovePinkLUD ]\nlate left [ AddPinkLUD | RemovePinkRU ] -> [ AddPinkLD | RemovePinkRU ]\nlate right [ AddPinkRUD | RemovePinkLU ] -> [ AddPinkRD | RemovePinkLU ]\nlate left [ AddPinkLUD | RemovePinkRD ] -> [ AddPinkLU | RemovePinkRD ]\nlate right [ AddPinkRUD | RemovePinkLD ] -> [ AddPinkRU | RemovePinkLD ]\nlate left [ AddPinkLU | RemovePinkRU ] -> [ | RemovePinkRU ]\nlate right [ AddPinkRU | RemovePinkLU ] -> [ | RemovePinkLU ]\nlate left [ AddPinkLD | RemovePinkRD ] -> [ | RemovePinkRD ]\nlate right [ AddPinkRD | RemovePinkLD ] -> [ | RemovePinkLD ]\n\n(Animation)\n\nright [ > PlayerBlueLeft ] -> [ > PlayerBlueRight ]\nright [ > WalkAnimBL1 ] -> [ > WalkAnimBR1 ]\nright [ > WalkAnimBL2 ] -> [ > WalkAnimBR2 ]\nright [ > WalkAnimBL3 ] -> [ > WalkAnimBR3 ]\n\nleft [ > PlayerBlueRight ] -> [ > PlayerBlueLeft ]\nleft [ > WalkAnimBR1 ] -> [ > WalkAnimBL1 ]\nleft [ > WalkAnimBR2 ] -> [ > WalkAnimBL2 ]\nleft [ > WalkAnimBR3 ] -> [ > WalkAnimBL3 ]\n\n[ WalkAnimBR3 ] -> [ PlayerBlueRight ]\n[ WalkAnimBR2 ] -> [ WalkAnimBR3 ]\n[ WalkAnimBR1 ] -> [ WalkAnimBR2 ]\n[ > PlayerBlueRight ] -> [ > WalkAnimBR1 ]\n\n[ WalkAnimBL3 ] -> [ PlayerBlueLeft ]\n[ WalkAnimBL2 ] -> [ WalkAnimBL3 ]\n[ WalkAnimBL1 ] -> [ WalkAnimBL2 ]\n[ > PlayerBlueLeft ] -> [ > WalkAnimBL1 ]\n\nright [ > PlayerPinkLeft ] -> [ > PlayerPinkRight ]\nright [ > WalkAnimPL1 ] -> [ > WalkAnimPR1 ]\nright [ > WalkAnimPL2 ] -> [ > WalkAnimPR2 ]\nright [ > WalkAnimPL3 ] -> [ > WalkAnimPR3 ]\n\nleft [ > PlayerPinkRight ] -> [ > PlayerPinkLeft ]\nleft [ > WalkAnimPR1 ] -> [ > WalkAnimPL1 ]\nleft [ > WalkAnimPR2 ] -> [ > WalkAnimPL2 ]\nleft [ > WalkAnimPR3 ] -> [ > WalkAnimPL3 ]\n\n[ WalkAnimPR3 ] -> [ PlayerPinkRight ]\n[ WalkAnimPR2 ] -> [ WalkAnimPR3 ]\n[ WalkAnimPR1 ] -> [ WalkAnimPR2 ]\n[ > PlayerPinkRight ] -> [ > WalkAnimPR1 ]\n\n[ WalkAnimPL3 ] -> [ PlayerPinkLeft ]\n[ WalkAnimPL2 ] -> [ WalkAnimPL3 ]\n[ WalkAnimPL1 ] -> [ WalkAnimPL2 ]\n[ > PlayerPinkLeft ] -> [ > WalkAnimPL1 ]\n\n[ stationary Player ] [ stationary GhostBlockAnim5 ] -> [ Player ] [ action GhostBlock ]\n[ stationary Player ] [ stationary GhostBlockAnim4 ] -> [ Player ] [ action GhostBlockAnim5 ]\n[ stationary Player ] [ stationary GhostBlockAnim3 ] -> [ Player ] [ action GhostBlockAnim4 ]\n[ stationary Player ] [ stationary GhostBlockAnim2 ] -> [ Player ] [ action GhostBlockAnim3 ]\n[ stationary Player ] [ stationary GhostBlockAnim1 ] -> [ Player ] [ action GhostBlockAnim2 ]\n[ stationary Player ] [ stationary GhostBlock ] -> [ Player ] [ action GhostBlockAnim1 ]\n\n[ GhostPlayerAbove ] -> [ ]\nlate up [ GPAboveAnim | ] -> [ GPAboveAnim | GhostPlayerAbove ]\n\n[ stationary Player ] [ stationary GhostPlayerAnim5 ] -> [ Player ] [ action GhostPlayer ]\n[ stationary Player ] [ stationary GhostPlayerAnim4 ] -> [ Player ] [ action GhostPlayerAnim5 ]\n[ stationary Player ] [ stationary GhostPlayerAnim3 ] -> [ Player ] [ action GhostPlayerAnim4 ]\n[ stationary Player ] [ stationary GhostPlayerAnim2 ] -> [ Player ] [ action GhostPlayerAnim3 ]\n[ stationary Player ] [ stationary GhostPlayerAnim1 ] -> [ Player ] [ action GhostPlayerAnim2 ]\n[ stationary Player ] [ stationary GhostPlayer ] -> [ Player ] [ action GhostPlayerAnim1 ]\n\n[ Background Transition1 ] [ Background no Transition1 ] -> [ Background Transition1 ] [ Background Transition1 ]\n[ stationary Transition9 ] -> [ ] again\n[ stationary Transition8 ] -> [ action Transition9 ] again\n[ stationary Transition7 ] -> [ action Transition8 ] again\n[ stationary Transition6 ] -> [ action Transition7 ] again\n[ stationary Transition5 ] -> [ action Transition6 ] again\n[ stationary Transition4 ] -> [ action Transition5 ] again\n[ stationary Transition3 ] -> [ action Transition4 ] again\n[ stationary Transition2 ] -> [ action Transition3 ] again\n[ stationary Transition1 ] -> [ action Transition2 ] again\n\n[ Background TransitionR1 ] [ Background no TransitionR1 ] -> [ Background TransitionR1 ] [ Background TransitionR1 ]\n[ stationary TransitionR9 ] -> [ ] again\n[ stationary TransitionR8 ] -> [ action TransitionR9 ] again\n[ stationary TransitionR7 ] -> [ action TransitionR8 ] again\n[ stationary TransitionR6 ] -> [ action TransitionR7 ] again\n[ stationary TransitionR5 ] -> [ action TransitionR6 ] again\n[ stationary TransitionR4 ] -> [ action TransitionR5 ] again\n[ stationary TransitionR3 ] -> [ action TransitionR4 ] again\n[ stationary TransitionR2 ] -> [ action TransitionR3 ] again\n[ stationary TransitionR1 ] -> [ action TransitionR2 ] again\n\n(Level start)\n\n[ Target no LevelStart ] [ Background no Transition ] -> [ Target ] [ Background Transition5 ]\n[ Target Transition9 no LevelStart ] -> [ Target LevelStart ]\n\n(Win)\n\ndown [ PlayerPink no WinAnim Target no FallBlock | Ridable ]-> [ PlayerPink WinAnim1 Target | Ridable ] sfx8\n\n[ WinAnim6 ] [ Background no Transition ] -> [ WinAnim6 ] [ Background Transition1 ]\n[ WinAnim5 ] -> [ WinAnim6 ]\n[ WinAnim4 ] -> [ WinAnim5 ]\n[ WinAnim3 ] -> [ WinAnim4 ]\n[ WinAnim2 ] -> [ WinAnim3 ]\n[ WinAnim1 ] -> [ WinAnim2 ]\n\n[ > Player WinAnim ] -> cancel\n[ action Player WinAnim ] -> cancel\n\n[ Target WinAnim6 Transition5 ] -> [ Target WinAnim6 Transition5 Winable ]\n\n(tutorial)\n\n[ Crate PressX no TCount ] [ PressX ] -> [ Crate TCount1 ] [ ]\n\n[ TCount5 ] -> [ ]\n[ TCount4 ] -> [ TCount5 ] message X or spacebar to switch characters.\n[ TCount3 ] -> [ TCount4 ]\n[ TCount2 ] -> [ TCount3 ]\n[ TCount1 ] -> [ TCount2 ]\n\n[ > Player ] [ Crate PressX ] -> [ Player ] [ Crate PressX ]\n[ > Player ] [ Crate TCount ] -> [ Player ] [ Crate TCount ]\n[ PlayerPink ] [ PressX ] -> [ PlayerPink ] [ ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Winable \n\n======= \nLEVELS\n=======\n\n\n(Tutorial)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,!xxxxxxxxxo,,,..'''p++++++++++'''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxxx\"xxxxxx,,,..'''p+①+①++++++'''.\n.,,,,,,x,xxxoxx,,,..''''''+'++++++'''.\n.,,,xxxxxxxx,xx,,,..'''++++++++'++'''.\n.,,,xxxxxxxxxxx,,,..'''+++①+++++++'''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,!xxxxxxxx,,,,..''''p++++++++''''.\n.,,,,,,,xxxxxx,,,,..'''''''++++++''''.\n.,,,,,,xxxxxox,,,,..''''''+++++++''''.\n.,,,,xxxxxx\",x,,,,..''''++++++①'+''''.\n.,,,,xx\"xxx\"xx,,,,..''''++①+++①++''''.\n.,,,,xx\"x,,,,,,,,,..''''++①+'''''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxx!xxxx,,,,..''''++++p++++''''.\n.,,,,xxxx\"xxxx,,,,..''''++++①++++''''.\n.,,,,x,,,,,,,x,,,,..''''+'''''''+''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxx\"xxx,,,,..''''+++++①+++''''.\n.,,,,xxx\"o,\"xx,,,,..''''+++①+'①++''''.\n.,,,,xx\",xx\"xx,,,,..''''++①'++①++''''.\n.,,,,xx\"xx,,,,,,,,..''''++①++''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxox,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xx!xx\"xx,,,,,,..'''++p++①++''''''.\n.,,,,,,,,,,,,$,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(二つでスタックのチュートリアル)\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxx!xxxoxxx,,,..'''+++%+++++++'''.\n.,,,,xx\"x\"xxxx,,,,..''''+++++++++''''.\n.,,,,#########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,b,*,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.xxxxxxxxxxxxxxxxx..+++++++++++++++++.\n.x,,,,,,,,,,,,,,,x..+'''''''''''''''+.\n.x,,,,,,b,*,,,,,,x..+''''''''+''''''+.\n.x,,xxxxxxxxxxx,,x..+''+++++++++++''+.\n.x,,xxx!xxxoxxx,,x..+''+++%+++++++''+.\n.x,,,xx\"x\"xxxx,,,x..+'''+++++++++'''+.\n.x,,,,,,,,,,,,,,,x..+'''''''''''''''+.\n.xxxxxxxxxxxxxxxxx..+++++++++++++++++.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(一個なら押しのけて登れる)\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,xxxxxx,,,,,..''''''++++++'''''.\n.,,,,,,x\",x\"x,,,,,..''''''++'+++'''''.\n.,,,,,,,!,,,x,,,,,..'''''''%'''+'''''.\n.,,,,#b,,,*,x,,,,,..'''''''''''+'''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,oxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,,,,xxxxxx,,,,..'''''''++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage Reach the heart to win.\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,x!xxxxxox,,,,..''''+p+++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage You can climb one square.\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxox,,,,..''''+石+++++++''''.\n.,,,,,!,,,,,,,,,,,..'''''p'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage You can only push one block at a time.\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxox,,,,..''''+++++++++''''.\n.,,,,x!\"xxxx\"x,,,,..''''+p石++++石+''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 1. Two Worlds\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,!xxx,b,xxxxxo,,..''%+++'''++++++''.\n.,,,xxx,,,xxxx,,,,..'''+++'''++++''''.\n.,,,xxx,,,xxxx,,,,..'''+++'''++++''''.\n.,,,xxx,,,xxx,,,,,..'''+++'''+++'''''.\n.,,,xxxx*x\"xx,,,,,..'''++++'++++'''''.\n.,,,xxx,,,,,,,,,,,..'''+++'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,文,,,,,,,,..'''''''''''''''''.\n.,,,!xxx,,,xxxo,,,..'''%+++'''++++'''.\n.,,,,xxxx*xxx,,,,,..''''++++'+++'''''.\n.,,,,xxx,,,xx,,,,,..''''+++'''++'''''.\n.,,,,,,,,文,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 2. Delivery\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,oxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,,xxxxxx,,,,,..''''''++++++'''''.\n.,,,,,,x!x\"xx,,,,,..''''''+%++++'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,b*,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 3. One-way Tickets\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx,,,,,,,,,,,..''''++'''''''''''.\n.,,,,x\",,,b*,,,,,,..''''++'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx########,,,..''''++'''''''''''.\n.,,,,xxxxxxxxxx,,,..''''++++++++++'''.\n.,,,,xxxxxxxxxx,,,..''''++++++++++'''.\n.,,,,xxx!xxxoxx,,,..''''+++%++++++'''.\n.,,,,#xx\"x\"xxxx,,,..'''''+++++++++'''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(message Brain training\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,b*,,x\"x,,,,,,,..'''''''+++'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxx!xxxxxxx,,,..'''+++%+++++++'''.\n.,,,xxx,,,,,xxx,,,..'''+++'''''+++'''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxxxxx\"xxxx,,,..'''+++++++++++'''.\n.,,,xxxx\"o,\"xxx,,,..'''++++++'++++'''.\n.,,,xxx\",xx\"xx,,,,..'''++++'+++++''''.\n.,,,,xx\"xx####,,,,..''''+++++''''''''.\n.,,,,######,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(message 2 x 3\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,##,,,,,##,,,,..'''''''''''''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#,\"x\"x\",#,,,,..''''''+++++''''''.\n.,,,,#,,b,*,,#,,,,..'''''''''''''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,xxxxo,,,,,,..''''''+++++''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,xx!xx,,,,,,..''''''++%++''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,##,,,,,##,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 4. 3 x 6\n\n\n......................................\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,b*,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxo,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,!xxxxx,,,,,,..'''''%+++++''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,##########,,,,..'''''''''''''''''.\n.,,,#,,,,,,,,#,,,,..'''''''''''''''''.\n.,,,#,\"!\"x\"x,#,,,,..'''''+p++++''''''.\n.,,,#b,,,*,,,#,,,,..'''''''''''''''''.\n.,,,#,xxxxxx##,,,,..'''''++++++''''''.\n.,,,#,*,,,,,,o,,,,..''''''''''''+''''.\n.,,,#,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,,,,,,,,#,,,,..'''''''''''''''''.\n.,,,##########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 5. Too Small to Climb\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,ox\"#,,,,,,..'''''''+++'''''''.\n.,,,,,,,,,\"#,,,,,,..'''''''''+'''''''.\n.,,,,,,,x,\"#,,,,,,..'''''''+'+'''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,!b*,,,,,,,..'''''''%'''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,b@,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,@,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,oxxx,,,,,,,..''''''++++'''''''.\n.,,,,,#,xxx,,,,,,,..'''''''+++'''''''.\n.,,,,,!,xxx,,,,,,,..'''''%'+++'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 6. I Hope That's Enough\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,xox,,,,,..''''''''++++'''''.\n.,,,,,,,,,xxx\"xx,,..''''''''+++++++''.\n.,,,,,,,,,,,,\"xx,,..''''''''''''+++''.\n.,,######xxxx\"xx,,..''''''''+++++++''.\n.,,#,,,!#x\",,,,,,,..''''''%'++'''''''.\n.,,#,*,,xx\"x,*,*,,..'''''''++++''''''.\n.,,####,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,##,,,,,,b,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 7. The Larger, the Better\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,#,#,#,#,#,#,..'''''''''''''''''.\n.,,,,,xxxxxo,,,,,,..'''''++++++''''''.\n.,,,,,xx\",,,,,,,,,..'''''+++'''''''''.\n.,,,,,xx\",,,,,,,,,..'''''+++'''''''''.\n.,,,,,!x\",@@@@,,,,..'''''%++'''''''''.\n.,#,#,#,#,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,b,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 8. Cut the Screen\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,oxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,@@@@@@@,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"x#x,,,,,..'''''+++++'+'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,x!x\"xxx,,,,,..'''''+%+++++'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,oxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,2222222,,,,,..'''''''''''''''''.\n.,x,,,xxx\"xxx,,,,,..'+'''+++++++'''''.\n.,,,,,@@@@@@@,,,,,..'''''''''''''''''.\n.,,,,,,xxxx!x,,,,,..''''''++++%+'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 9. Transfer\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.#################..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,xx,,,2b@@@,,o,,..''++''''''''''+''.\n.,,!\",222,@,,,,x,,..''%+''''''''''+''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.#################..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 10. Do You Like Math Puzzles?\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,b,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,\"@#xx#xx#xx#x#..'''+''++++++++'+'.\n.,,\"\"@#xxxxxxxxxx#..''++''++++++++++'.\n.,,\"\"@#xx,xx,xx,o#..''++''++'++'++'+'.\n.,,,,@#!x,xx,xx,x#..''''''%+'++'++'+'.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 11. Haste Makes Waste\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,xxx,,,,,,,..'''''''+++'''''''.\n.,,xxx,,,,,,,xxx,,..''+++'''''''+++''.\n.,,xx\",,@@@,,xox,,..''+++'''''''+++''.\n.,,!x\",,@@@,,xxx,,..''%++'''''''+++''.\n.,,###,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 12. Neither Road Leads to Rome\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,#############,,,..'''''''''''''''''.\n.,#,,,,!\"\"\"x\"x###,..''''''%+++++++++'.\n.,#b@@,,,,,,,,xo#,..'''''''''''''+++'.\n.,#,,,,xxxxxx,xx#,..''''''++++++'+++'.\n.,#,,,,,,,,,,,###,..'''''''''''''''''.\n.,#############,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 13. This Elevator Will Be Taking No Passengers\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,o\"\"\"\"\",,,,,,..'''''++++++''''''.\n.,,b*,,\"\"\"\"\",,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.####xxx,,,xxx####..''''+++'''+++''''.\n.,,,,xxx@@@xxx,,,,..''''+++'''+++''''.\n.,,,,xxx@@@xxx,,,,..''''+++'''+++''''.\n.,,,,xxx,,,xxx,,,,..''''+++'''+++''''.\n.,,,,xxx,,,xxx,,,,..''''+++'''+++''''.\n.,,,,x!x,,,xxx,,,,..''''+%+'''+++''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................)\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx\"\"\"\"\"xx,,,,..''''+++++++++''''.\n.,b*,xx\"\"\"\"\"xx,,,,..''''+++++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#oxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#,xx@@@xxx#,,,..'''''++'''+++''''.\n.,,,#xxx@@@xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#x!x,,,xxx#,,,..''''+%+'''+++''''.\n.,,,###,,,,,###,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,xxxx\"\"\"xx,,,,..''''+++++++++''''.\n.,,,,xxx\"\"\"\"xx,,,,..''''+++++++++''''.\n.,b*,xx,\"\"\"\"xx,,,,..''''++'++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#oxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#,xx@@@xxx#,,,..'''''++'''+++''''.\n.,,,#xxx@@@xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#x!x,,,xxx#,,,..''''+%+'''+++''''.\n.,,,###,,,,,###,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 14. 3 x 21\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,#,,xxx\"\"\"o,,..''''''''+++++++''.\n.,,,,@@@,xxx\"\"\",,,..''''''''++++++'''.\n.,,,,@@@#\"\"\"\"\"\",,,..''''''''++++++'''.\n.,,,#@@@,\"\"\"\"\"\",,,..''''''''++++++'''.\n.,,,,@@@,\"\"\"\"\"\",#,..''''''''++++++'''.\n.,,,,@@@,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#,,,,b,,22,,,,..'''''''''''''''''.\n.,,,x!,,,,,,,2,,,,..'''+%''''''''''''.\n.,,,,#,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,#,#,#,#,#,..'''''''''''''''''.\n.,,,,,#,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\nmessage Thanks for playing!\n\n\n(......................................\n.,,,,,#,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#o,b,#,,,,,,..''''''+''''''''''.\n.,,,,,,,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#,*,*#,,,,,,..'''''''''''''''''.\n.,,,,,#,@@@#,,,,,,..'''''''''''''''''.\n.,,,,,#,@@@##,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,##,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,x,,#,,,,,..''''''''%''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,b,,,,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,o,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,\",,,,,,#,,..'''''''+'''''''''.\n.,*,*,*,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,#,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,@@,@@@#,,,,,,#,,..'''''''''''''''''.\n.,@@,,@@,,,,,,,,,,..'''''''''''''''''.\n.,@@@@@@#,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,#,!,#,#,,..''''''''''%''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,##!######,,,,..''''''%''''''''''.\n.,,,,#,,,,,,o#,,,,..'''''''''''+'''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#,,@b2,,#,,,,..'''''''+'+'''''''.\n.,,,,#,@@,22,#,,,,..''''''++'++''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,x\"\"\"x,,,,,,..''''''+++++''''''.\n.,,,,,,\"\"\"\"\",,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,#,xxx,,,,,oxx,#,..'''+++'''''+++'''.\n.,#,xxx,222,xxx,#,..'''+++'''''+++'''.\n.,#,xxx,,,,,xxx,#,..'''+++'''''+++'''.\n.,#,xxx,@@,,xxx,#,..'''+++'''''+++'''.\n.,#,x!x,,,,,xxx,#,..'''+%+'''''+++'''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,\"o,,#,,,..'''''''''++''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#xxx,,,,xxx#,,,..'''+++''''+++''''.\n.,,#xxx,,,,\"xx#,,,..'''+++''''+++''''.\n.,,#xxx,,,,\"xx#,,,..'''+++''''+++''''.\n.,,#xxx,2@,\"xx#,,,..'''+++''''+++''''.\n.,,#!xx22@@\"xx#,,,..'''%++''''+++''''.\n.,,#,,,2,,@,,,#,,,..'''''''''''''''''.\n.,,#,,,2,,@,,,#,,,..'''''''''''''''''.\n.,,#,b,22@@,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n......................................)\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", 2, "tick", "tick", 2, "tick", 2, "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 4, "tick", "tick", "tick", "tick"], "background colbgpink outline:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background bgblue:1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,background bgblue ghostplayeranim1 zonepurple:2,background bgblue zonepurplebelow:3,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,background bgblue zonepurple:4,4,4,3,1,1,1,1,0,0,1,1,1,1,1,1,4,4,4,3,1,1,1,1,0,0,1,\n1,1,1,1,1,4,4,4,3,1,1,1,1,0,0,1,1,1,1,1,1,1,4,background bgblue stayblueleft zonepurplebelow:5,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,background bgblue crateabove:6,background bgblue crate crateline:7,background bgblue cratebelow:8,1,1,1,0,0,1,1,1,1,1,1,1,4,3,1,1,1,1,1,0,0,1,1,1,1,1,1,4,4,4,3,1,1,1,\n1,0,0,1,1,1,1,1,1,4,4,4,3,1,1,1,1,0,0,1,1,1,1,1,1,4,3,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,background ghosttarget zonepurple:9,3,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background bgpink colbgpink:10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,\n10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,background bgpink climbable colbgpink:11,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,background playerpinkright removepinklud zonepink:12,addpinkru background bgpink climbable colbgpink:13,11,10,10,\n10,10,10,0,0,10,10,10,10,10,10,background zonepink:14,14,background removepinkld zonepink:15,10,10,10,10,10,0,0,10,10,10,10,10,10,14,14,14,10,10,10,10,10,0,0,10,\n10,10,10,10,10,background removepinkru zonepink:16,14,background removepinkrd zonepink:17,10,10,10,10,10,0,0,10,10,10,10,10,10,addpinkld background bgpink climbable colbgpink:18,background removepinkrud zonepink:19,addpinklu background bgpink climbable colbgpink:20,11,10,10,10,10,0,0,10,10,10,10,10,10,10,\n11,10,background removepinklud removepinkrud zonepink:21,10,10,10,10,0,0,10,10,10,10,10,10,addpinkrd background bgpink climbable colbgpink:22,background removepinklud zonepink:23,13,11,10,10,10,10,0,0,10,10,10,10,10,10,background removepinklu zonepink:24,14,15,10,10,10,10,\n10,0,0,10,10,10,10,10,10,14,14,17,10,10,10,10,10,0,0,10,10,10,10,10,10,14,20,11,10,10,10,10,10,0,0,10,10,10,\n10,10,10,background levelstart removepinkrud target zonepink:25,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,11,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,10,10,10,\n10,10,10,10,10,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", "7", "1627770584313.9392"] ], [ `gallery: multi-word dictionary`, - ["title Multi-word Dictionary Game\nauthor Sarah Northway\nhomepage www.sarahnorthway.com\n\n(included with permission of Sarah Northway)\n\n========\nOBJECTS\n========\n\nBackground \npink \n\nWall \ngrey\n\nPlayer \nBlue \n\nWon\nyellow\n\nLetterC\nwhite black\n.111.\n1....\n1....\n1....\n.111.\n\nLetterA \nwhite black\n.111.\n1...1\n11111\n1...1\n1...1\n\nLetterT\nwhite black\n11111\n..1..\n..1..\n..1..\n..1..\n\n=======\nLEGEND\n=======\n\nLetter = LetterA or LetterC or LetterT\n. = Background\n# = Wall\nP = Player\nW = Won\nC = LetterC\nA = LetterA\nT = LetterT\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWon\nPlayer, Wall, Letter\n\n======\nRULES \n====== \n\n[ > Player | Letter ] -> [ > Player | > Letter ]\n[ < Player | Letter ] -> [ < Player | < Letter ]\n\nlate right [LetterC | LetterA | LetterT ] -> [ Won LetterC | Won LetterA | Won LetterT ] message You spelled CAT!\nlate right [LetterA | LetterC | LetterT] -> [ Won LetterA | Won LetterC | Won LetterT ] message You spelled ACT!\n\n==============\nWINCONDITIONS\n==============\n\nSome Won\n\n======= \nLEVELS\n=======\n\n#########\n#.......#\n#.A..C..#\n#.......#\n#...P...#\n#.T.....#\n#########\n\n",[1,1,1,0,0,3,0,3,2,2,3,3,3,0,1,1,1,1,0,1,2,2,2,3,3],"background wall:0,0,0,0,0,0,0,0,background:1,\n1,1,1,background letterc:2,0,0,1,1,1,\n1,background lettert:3,0,0,1,1,1,background player:4,1,\n0,0,1,1,1,background lettera:5,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,"1627777496017.3152"] + ["title Multi-word Dictionary Game\nauthor Sarah Northway\nhomepage www.sarahnorthway.com\n\n(included with permission of Sarah Northway)\n\n========\nOBJECTS\n========\n\nBackground \npink \n\nWall \ngrey\n\nPlayer \nBlue \n\nWon\nyellow\n\nLetterC\nwhite black\n.111.\n1....\n1....\n1....\n.111.\n\nLetterA \nwhite black\n.111.\n1...1\n11111\n1...1\n1...1\n\nLetterT\nwhite black\n11111\n..1..\n..1..\n..1..\n..1..\n\n=======\nLEGEND\n=======\n\nLetter = LetterA or LetterC or LetterT\n. = Background\n# = Wall\nP = Player\nW = Won\nC = LetterC\nA = LetterA\nT = LetterT\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWon\nPlayer, Wall, Letter\n\n======\nRULES \n====== \n\n[ > Player | Letter ] -> [ > Player | > Letter ]\n[ < Player | Letter ] -> [ < Player | < Letter ]\n\nlate right [LetterC | LetterA | LetterT ] -> [ Won LetterC | Won LetterA | Won LetterT ] message You spelled CAT!\nlate right [LetterA | LetterC | LetterT] -> [ Won LetterA | Won LetterC | Won LetterT ] message You spelled ACT!\n\n==============\nWINCONDITIONS\n==============\n\nSome Won\n\n======= \nLEVELS\n=======\n\n#########\n#.......#\n#.A..C..#\n#.......#\n#...P...#\n#.T.....#\n#########\n\n", [1, 1, 1, 0, 0, 3, 0, 3, 2, 2, 3, 3, 3, 0, 1, 1, 1, 1, 0, 1, 2, 2, 2, 3, 3], "background wall:0,0,0,0,0,0,0,0,background:1,\n1,1,1,background letterc:2,0,0,1,1,1,\n1,background lettert:3,0,0,1,1,1,background player:4,1,\n0,0,1,1,1,background lettera:5,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, "1627777496017.3152"] ], [ `gallery: midas`, - ["title Midas\nauthor wanderlands\nhomepage www.wanderlands.org\n\n(A port of the luxuriant Wanderlands game, Midas, with permission of the authors. It's a bit messy, if you can find a way to tidy it up, let me know :]\n\nthe original is here\nhttp://wanderlands.org/main/midas\n\n)\n\n========\nOBJECTS\n========\n\nBackground\nWHITE\n\nlovebase\nwhite\n\nTarget\nBLACK\n.....\n..0..\n.000.\n..0..\n.0.0.\n\n\nGoldTarget\nORANGE\n.....\n..0..\n.000.\n..0..\n.0.0.\n\nPlayerGround\nBLACK\n.....\n..0..\n.000.\n.000.\n.0.0.\n\nPlayerJump1\nBLACK\n.....\n..0..\n00000\n.000.\n.0.0.\n\nPlayerJump2\nBLACK\n.....\n..0..\n00000\n.000.\n.0.0.\n\nCrown\nOrange\n.000.\n.0.0.\n.....\n.....\n.....\n\n\nGoldBlock\nOrange\n\n\nGoldingBlock\nbrown\n\nWater\nBlue\n\nWall\nGRAY\n\nlove\npink\n.0.0.\n00000\n00000\n.000.\n..0..\n\n=======\nLEGEND\n=======\n\nJumpingPlayer = PlayerJump1 or PlayerJump2\nPlayer = PlayerGround or PlayerJump1 or PlayerJump2\nObstacle = Player or Wall or Water or GoldingBlock or GoldBlock or Target or GoldTarget\nCanFall = GoldBlock or Target or GoldTarget\n. = Background\n# = Wall\nP = PlayerGround and Crown\nT = Target\nW = Water\nG = GoldBlock\nD = GoldingBlock\n\n\n=========\nSOUNDS\n=========\nSFX0 28219707 (touch water)\nSFX1 45545307 (golding)\nSFX2 42491507 (make lady gold :/ )\nStartGame 8892900\nEndLevel 28067900\nEndGame 28067900\nCloseMessage 44855507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nlovebase\nPlayerGround, PlayerJump1,PlayerJump2, Wall, Water, GoldBlock, Target, GoldTarget, GoldingBlock\nCrown\nlove\n\n======\nRULES\n======\n\nUP [ Up PlayerGround | No Obstacle ] -> [ Up PlayerJump2 | ]\nDOWN [ Up JumpingPlayer | no obstacle ] -> [ JumpingPlayer | ]\nDOWN [ Up PlayerJump2 | no obstacle ] -> [ PlayerJump2 | ]\n\n[ Stationary CanFall ] -> [ Down CanFall ]\n\nHORIZONTAL [ > PlayerJump1 | NO obstacle ] -> [ | PlayerGround ]\nHORIZONTAL [ > PlayerJump2 | NO obstacle ] -> [ | PlayerJump1 ]\nLATE DOWN [ PlayerGround | NO obstacle ] -> [ | playerground ]\n\nLATE [ crown no player ] [ player ] -> [ ] [ crown player ]\nLATE [ goldingblock ] -> [goldblock]\nLATE [ crown | wall ] -> [crown | goldingblock] SFX1\nLATE [ crown | water ] -> [ | water ] SFX0\nLATE [ crown | target ] -> [ crown | goldtarget ] SFX2\nLATE DOWN [ JumpingPlayer | Obstacle ] -> [ PlayerGround | Obstacle ]\n\nLATE [ player | target ] -> [ player lovebase | target ]\nLATE UP [ lovebase | ] -> [ | love ]\n\n==============\nWINCONDITIONS\n==============\nsome love (Awwww!)\n\n=======\nLEVELS\n=======\n##############\n#............#\n#............#\n#.P.......T..#\n##G######WWW##\n##############\n\nmessage MIDAS\n\n###############\n#.............#\n#.............#\n#.....#.......#\n#.P..##..#.T..#\n##G#######WWW##\n###############\n\nmessage She waits for me every day\n\n###############\n#.............#\n#.............#\n#.............#\n#.....#.#.....#\n#.P..##.#..T..#\n##G#######WWW##\n###############\n\nmessage This is the price of gold:\n\n##############\n#............#\n#............#\n#.P..........#\n##G###T##WWW##\n##############\n\nmessage A heavy heart\n\n#################\n#...............#\n#...............#\n#......#.#......#\n#.....#####.....#\n#.......#.......#\n#.T.P...#.......#\n####G#######WWW##\n#################\n\nmessage I step in the same river\nmessage again and again\n\n#####################\n#...................#\n#...................#\n#...................#\n#.........#.#.......#\n#..P........#.......#\n#..d##########......#\n#.......######......#\n#...................#\n#.......T...........#\n#....#########WWW...#\n#...................#\n#...................#\n#...................#\n#####################\n\nmessage Just so I can touch her hand.\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#..P................#\n#..d##T########WWW..#\n#.....#.............#\n#...................#\n#...................#\n#####################\n\nmessage I am a prison to Pactolus\n\n#####################\n#...................#\n#........###........#\n#.......#####.......#\n#......##...##......#\n#.....T##.P.##W.....#\n#.....####d####.....#\n#.....#########.....#\n#...................#\n#####################\n\nmessage But I must have her!\n\n#####################\n#...................#\n#...................#\n#..T..#...###..W....#\n#..#####...#####....#\n#.....###...#.......#\n#........P..........#\n#.....###D###.......#\n#.....#######.......#\n#...................#\n#...................#\n#####################\n\nmessage My burden only grows\n\n#####################\n#...................#\n#........G..........#\n#.....W.GGG.T.......#\n#.....#######.......#\n#.....#.....#.......#\n#.....#..P..#.......#\n#.....###D###.......#\n#.....#######.......#\n#...................#\n#...................#\n#...................#\n#####################\n\nmessage My world collapses.\n\n#####################\n#...................#\n#...................#\n#..G....WW..........#\n#..##.####..........#\n#.....####..........#\n#...................#\n#.#...........T.....#\n#.##.......P..#.....#\n#..############.....#\n#...#.....####......#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\nmessage And she feels so distant\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#..P......#.........#\n#..GG...........WW..#\n#..##T############..#\n#....#..............#\n#...................#\n#...................#\n#####################\n\n\nmessage I live on borrowed time\n\n\n#####################\n#...................#\n#...................#\n#..........T........#\n#.........##........#\n#...................#\n#.......P...........#\n#.......D##.........#\n#...........#.......#\n#...................#\n#...................#\n#.......###W#.......#\n#####################\n\n\nmessage Is she still waiting?\n\n\n#####################\n#...................#\n#....###########....#\n#...................#\n#....P.........W....#\n#....###########....#\n#....#.........#....#\n#...................#\n#.........#.........#\n#......#..#..#......#\n#....T.#..#..#......#\n#....###########....#\n#...................#\n#...................#\n#...................#\n#####################\n\nmessage Is love just fool's gold?\n\n\n#####################\n#...................#\n#...................#\n#...........####....#\n#..T##.##..#...#....#\n#..#..#..#.#.P.#....#\n#..#.....#...G#.....#\n#...#...#....#......#\n#....#W#.....#......#\n#.....#.............#\n#............#......#\n#...................#\n#...................#\n#####################\n\n\nmessage Midas\n\n",[3,3,3,0,3,3],"background wall:0,0,0,0,0,0,0,background:1,1,1,0,0,0,1,\n1,1,background goldblock:2,0,0,1,1,1,2,0,0,1,1,1,\n2,0,0,1,1,1,2,0,0,1,1,1,0,0,\n0,1,1,background crown playerground:3,background goldingblock:4,0,0,1,1,1,0,0,0,1,\n1,1,background water:5,0,0,1,1,background target:6,5,0,0,1,1,1,\n5,0,0,1,1,1,0,0,0,0,0,0,0,0,\n",0,"1627777554778.3638"] + ["title Midas\nauthor wanderlands\nhomepage www.wanderlands.org\n\n(A port of the luxuriant Wanderlands game, Midas, with permission of the authors. It's a bit messy, if you can find a way to tidy it up, let me know :]\n\nthe original is here\nhttp://wanderlands.org/main/midas\n\n)\n\n========\nOBJECTS\n========\n\nBackground\nWHITE\n\nlovebase\nwhite\n\nTarget\nBLACK\n.....\n..0..\n.000.\n..0..\n.0.0.\n\n\nGoldTarget\nORANGE\n.....\n..0..\n.000.\n..0..\n.0.0.\n\nPlayerGround\nBLACK\n.....\n..0..\n.000.\n.000.\n.0.0.\n\nPlayerJump1\nBLACK\n.....\n..0..\n00000\n.000.\n.0.0.\n\nPlayerJump2\nBLACK\n.....\n..0..\n00000\n.000.\n.0.0.\n\nCrown\nOrange\n.000.\n.0.0.\n.....\n.....\n.....\n\n\nGoldBlock\nOrange\n\n\nGoldingBlock\nbrown\n\nWater\nBlue\n\nWall\nGRAY\n\nlove\npink\n.0.0.\n00000\n00000\n.000.\n..0..\n\n=======\nLEGEND\n=======\n\nJumpingPlayer = PlayerJump1 or PlayerJump2\nPlayer = PlayerGround or PlayerJump1 or PlayerJump2\nObstacle = Player or Wall or Water or GoldingBlock or GoldBlock or Target or GoldTarget\nCanFall = GoldBlock or Target or GoldTarget\n. = Background\n# = Wall\nP = PlayerGround and Crown\nT = Target\nW = Water\nG = GoldBlock\nD = GoldingBlock\n\n\n=========\nSOUNDS\n=========\nSFX0 28219707 (touch water)\nSFX1 45545307 (golding)\nSFX2 42491507 (make lady gold :/ )\nStartGame 8892900\nEndLevel 28067900\nEndGame 28067900\nCloseMessage 44855507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nlovebase\nPlayerGround, PlayerJump1,PlayerJump2, Wall, Water, GoldBlock, Target, GoldTarget, GoldingBlock\nCrown\nlove\n\n======\nRULES\n======\n\nUP [ Up PlayerGround | No Obstacle ] -> [ Up PlayerJump2 | ]\nDOWN [ Up JumpingPlayer | no obstacle ] -> [ JumpingPlayer | ]\nDOWN [ Up PlayerJump2 | no obstacle ] -> [ PlayerJump2 | ]\n\n[ Stationary CanFall ] -> [ Down CanFall ]\n\nHORIZONTAL [ > PlayerJump1 | NO obstacle ] -> [ | PlayerGround ]\nHORIZONTAL [ > PlayerJump2 | NO obstacle ] -> [ | PlayerJump1 ]\nLATE DOWN [ PlayerGround | NO obstacle ] -> [ | playerground ]\n\nLATE [ crown no player ] [ player ] -> [ ] [ crown player ]\nLATE [ goldingblock ] -> [goldblock]\nLATE [ crown | wall ] -> [crown | goldingblock] SFX1\nLATE [ crown | water ] -> [ | water ] SFX0\nLATE [ crown | target ] -> [ crown | goldtarget ] SFX2\nLATE DOWN [ JumpingPlayer | Obstacle ] -> [ PlayerGround | Obstacle ]\n\nLATE [ player | target ] -> [ player lovebase | target ]\nLATE UP [ lovebase | ] -> [ | love ]\n\n==============\nWINCONDITIONS\n==============\nsome love (Awwww!)\n\n=======\nLEVELS\n=======\n##############\n#............#\n#............#\n#.P.......T..#\n##G######WWW##\n##############\n\nmessage MIDAS\n\n###############\n#.............#\n#.............#\n#.....#.......#\n#.P..##..#.T..#\n##G#######WWW##\n###############\n\nmessage She waits for me every day\n\n###############\n#.............#\n#.............#\n#.............#\n#.....#.#.....#\n#.P..##.#..T..#\n##G#######WWW##\n###############\n\nmessage This is the price of gold:\n\n##############\n#............#\n#............#\n#.P..........#\n##G###T##WWW##\n##############\n\nmessage A heavy heart\n\n#################\n#...............#\n#...............#\n#......#.#......#\n#.....#####.....#\n#.......#.......#\n#.T.P...#.......#\n####G#######WWW##\n#################\n\nmessage I step in the same river\nmessage again and again\n\n#####################\n#...................#\n#...................#\n#...................#\n#.........#.#.......#\n#..P........#.......#\n#..d##########......#\n#.......######......#\n#...................#\n#.......T...........#\n#....#########WWW...#\n#...................#\n#...................#\n#...................#\n#####################\n\nmessage Just so I can touch her hand.\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#..P................#\n#..d##T########WWW..#\n#.....#.............#\n#...................#\n#...................#\n#####################\n\nmessage I am a prison to Pactolus\n\n#####################\n#...................#\n#........###........#\n#.......#####.......#\n#......##...##......#\n#.....T##.P.##W.....#\n#.....####d####.....#\n#.....#########.....#\n#...................#\n#####################\n\nmessage But I must have her!\n\n#####################\n#...................#\n#...................#\n#..T..#...###..W....#\n#..#####...#####....#\n#.....###...#.......#\n#........P..........#\n#.....###D###.......#\n#.....#######.......#\n#...................#\n#...................#\n#####################\n\nmessage My burden only grows\n\n#####################\n#...................#\n#........G..........#\n#.....W.GGG.T.......#\n#.....#######.......#\n#.....#.....#.......#\n#.....#..P..#.......#\n#.....###D###.......#\n#.....#######.......#\n#...................#\n#...................#\n#...................#\n#####################\n\nmessage My world collapses.\n\n#####################\n#...................#\n#...................#\n#..G....WW..........#\n#..##.####..........#\n#.....####..........#\n#...................#\n#.#...........T.....#\n#.##.......P..#.....#\n#..############.....#\n#...#.....####......#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\nmessage And she feels so distant\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#..P......#.........#\n#..GG...........WW..#\n#..##T############..#\n#....#..............#\n#...................#\n#...................#\n#####################\n\n\nmessage I live on borrowed time\n\n\n#####################\n#...................#\n#...................#\n#..........T........#\n#.........##........#\n#...................#\n#.......P...........#\n#.......D##.........#\n#...........#.......#\n#...................#\n#...................#\n#.......###W#.......#\n#####################\n\n\nmessage Is she still waiting?\n\n\n#####################\n#...................#\n#....###########....#\n#...................#\n#....P.........W....#\n#....###########....#\n#....#.........#....#\n#...................#\n#.........#.........#\n#......#..#..#......#\n#....T.#..#..#......#\n#....###########....#\n#...................#\n#...................#\n#...................#\n#####################\n\nmessage Is love just fool's gold?\n\n\n#####################\n#...................#\n#...................#\n#...........####....#\n#..T##.##..#...#....#\n#..#..#..#.#.P.#....#\n#..#.....#...G#.....#\n#...#...#....#......#\n#....#W#.....#......#\n#.....#.............#\n#............#......#\n#...................#\n#...................#\n#####################\n\n\nmessage Midas\n\n", [3, 3, 3, 0, 3, 3], "background wall:0,0,0,0,0,0,0,background:1,1,1,0,0,0,1,\n1,1,background goldblock:2,0,0,1,1,1,2,0,0,1,1,1,\n2,0,0,1,1,1,2,0,0,1,1,1,0,0,\n0,1,1,background crown playerground:3,background goldingblock:4,0,0,1,1,1,0,0,0,1,\n1,1,background water:5,0,0,1,1,background target:6,5,0,0,1,1,1,\n5,0,0,1,1,1,0,0,0,0,0,0,0,0,\n", 0, "1627777554778.3638"] ], [ `gallery: heroes of sokoban`, - ["title Heroes of Sokoban\nauthor Jonah Ostroff\ntext_color yellow\nkey_repeat_interval 0.25\n\n========\nOBJECTS\n========\n\nBackground \n#AAAAAA #DDDDDD\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 \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#00BB00 Pink DarkBrown\n.000.\n.010.\n00000\n.0.0.\n.0.0.\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\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\nTemp\nPink\n\nShadowDoor\nPurple\n\n=======\nLEGEND\n=======\n\nPlayer = Fighter or Wizard or Thief\nSPlayer = Swizard or Sthief or SFighter\nHero = Player or Splayer\nClosedDoor = PurpleDoor or YellowDoor\nOpenDoor = YellowOpen or PurpleOpen\nSwitch = PurpleSwitch or YellowSwitch\nMoveable = Crate or SPlayer\nStatic = Wall or ClosedDoor\nWeighing = Crate or Player or SPlayer\n. = Background\n# = Wall\nF = Fighter\nW = Wizard\nT = Thief\n1 = SFighter\n2 = SThief\n3 = SWizard\n* = Crate\nG = Goal\n[ = YellowDoor\n] = PurpleDoor\n{ = YellowSwitch\n} = PurpleSwitch\n\n=======\nSOUNDS\n=======\n\nMoveable move 82056307\nSfx0 21221308\nEndlevel 36315908\nSfx1 66399906\nSfx2 92172900\nSfx3 15129100\nEndGame 86793500\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTemp\nGoal, Switch, OpenDoor, ShadowDoor\nClosedDoor, Hero, Crate, Wall\n\n======\nRULES \n====== \n\n[ > Fighter | Moveable ] -> [ > Fighter | > Moveable ] \n[ > Moveable | Moveable ] [ Fighter] -> [ > Moveable | > Moveable ] [ Fighter]\n\n[ < Thief | Moveable ] -> [ < Thief | < Moveable ]\n\n[ > Wizard ] -> [ Wizard > Temp]\n[ > Temp | no Moveable no Static] -> [ | > Temp]\n[ > Temp | Static] [Wizard] -> [ | Static ] [> Wizard]\n[ > Temp | Moveable ] [Wizard] -> [ | Wizard Sfx0] [Moveable]\n\nLate [Temp] -> []\n\n[ Action Fighter] [SThief] -> [SFighter] [Thief Sfx1]\n[ Action Thief] [SWizard] -> [SThief] [Wizard Sfx1]\n[ Action Wizard] [SFighter] -> [SWizard] [Fighter Sfx1]\n[ Action Fighter] [no SThief] [SWizard] -> [SFighter] [no SThief] [Wizard Sfx1]\n[ Action Thief] [no Swizard] [SFighter] -> [SThief] [no SWizard] [Fighter Sfx1]\n[ Action Wizard] [no SFighter] [SThief] -> [SWizard] [no SFighter] [Thief Sfx1]\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\n==============\nWINCONDITIONS\n==============\n\nAll Hero on Goal \nAll Goal on Hero\n\n======= \nLEVELS\n=======\n\nMessage Walk to the exit.\n\n#############\n#...........#\n#.F.......G.#\n#...........#\n#############\n\nMessage Red warrior pushes blocks.\n\n#############\n#...#.*.#.*.#\n#.F...*.**G.#\n#...#.*.#.*.#\n#############\n\nMessage Hold down switches to open doors. \n\n#############\n#...#...#...#\n#.F.*.{.#.G.#\n#...#...[...#\n#############\n\nMessage Press multiple switches at once.\n\n#########\n#.....#G#\n#.#*..#[#\n#.**.F..#\n#.......#\n#.{.{.{.#\n#.......#\n#########\n\nMessage Green thief pulls blocks.\n\n#############\n#...#..*#...#\n#.T.*.{.#.G.#\n#...#..*[...#\n#############\n\n#########\n#.....#G#\n#.#*..#[#\n#.**.T..#\n#.......#\n#.{.{.{.#\n#.......#\n#########\n\n#########\n#...##G.#\n#.#..##[#\n#....{..#\n#.#.#.#.#\n#..*.T..#\n#########\n\nMessage Blue wizard teleports to blocks.\n\n#############\n#...*.{.#...#\n#.W.*.{.[.G.#\n#...#...#...#\n#############\n\n#########\n#.....#G# \n#.#*..#[#\n#.**.W..#\n#.......#\n#.{.{.{.#\n#.......#\n#########\n\n#######\n#W#G#*#\n#.#.#.#\n#*...*#\n#.###.#\n#*.*..#\n#######\n\nMessage Press action to switch heroes.\n\n#############\n#...#...#...#\n#.F...}.[.G.#\n#...#...#...#\n#############\n#...#...#...#\n#.3.].{...G.#\n#...#...#...#\n#############\n\nMessage Heroes can move each other.\n\n###########\n#*#..##G.G#\n#.#.2.#...#\n#.....#..##\n#W###.*..*#\n###########\n\n###########\n#F.*.#.*#{#\n#..#...*..#\n####...*.*#\n#..#.##[###\n#2...#*.GG#\n###########\n\n#############\n#.###########\n#*....{....3#\n#.####.######\n#.#..#.###..#\n#.#G....[].G#\n#.#..#.###..#\n#.####.######\n#.....}....T#\n#############\n\n#############\n##G.#F#*#...#\n#*..[.....{.#\n##G.#3###...#\n#############\n\n###########\n#W..{...[*#\n#######.#[#\n#G#G#G#.#2#\n#.......#1#\n###########\n\n#########\n#*......#\n#######.#\n#F23.]#.#\n#..##G#.#\n#..#GG#.#\n##.####.#\n#.......#\n##}####.#\n#########\n\n#############\n#...#G.G#...#\n#.*.#F23#.G.#\n#...#...#...#\n##[###.###[##\n#...#...#...#\n#.{...{...{.#\n#...#...#...#\n#############\n\n#######\n#G***F#\n#*****#\n#G***2#\n#*****#\n#G***3#\n#######\n\n########\n#3..G[*#\n########\n#F**G{{#\n########\n#2.[G..#\n########\n\n#############\n#...#...#...#\n#F#.*.#.*.#3#\n#...#...#...#\n######.######\n#...#...#####\n#2#.*.#...}*#\n#...#...#####\n######.######\n#G..#...#...#\n#G..].#...#.#\n#G..#...#...#\n#############\n\n#############\n#F.........G#\n#############\n#T.........G#\n#############\n#W.........G#\n#############\nMessage Thanks for playing!\n",[2,2,3,2,2,2,1,1,1,1,0,0,2,1,4,2,2,2,1,2,1,1,1,3,3,3,3,4,1,2],"background wall:0,0,0,0,0,0,0,0,0,0,background:1,1,1,\n0,1,1,1,0,0,1,background crate:2,1,background yellowdoor:3,1,background yellowswitch:4,1,\n0,0,1,1,1,0,1,1,1,0,0,0,0,\n0,0,0,1,0,0,0,background goal:5,1,1,0,1,background sfighter:6,\n1,0,0,1,background sthief:7,1,1,1,background wizard yellowswitch:8,1,0,0,5,\n1,1,0,1,1,1,0,0,0,0,0,0,0,\n1,0,0,0,1,1,1,0,1,1,1,0,0,\n1,5,1,3,1,4,1,0,0,1,1,1,0,\n1,1,1,0,0,0,0,0,0,0,0,0,0,\n",25,"1627777591387.1045"] + ["title Heroes of Sokoban\nauthor Jonah Ostroff\ntext_color yellow\nkey_repeat_interval 0.25\n\n========\nOBJECTS\n========\n\nBackground \n#AAAAAA #DDDDDD\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 \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#00BB00 Pink DarkBrown\n.000.\n.010.\n00000\n.0.0.\n.0.0.\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\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\nTemp\nPink\n\nShadowDoor\nPurple\n\n=======\nLEGEND\n=======\n\nPlayer = Fighter or Wizard or Thief\nSPlayer = Swizard or Sthief or SFighter\nHero = Player or Splayer\nClosedDoor = PurpleDoor or YellowDoor\nOpenDoor = YellowOpen or PurpleOpen\nSwitch = PurpleSwitch or YellowSwitch\nMoveable = Crate or SPlayer\nStatic = Wall or ClosedDoor\nWeighing = Crate or Player or SPlayer\n. = Background\n# = Wall\nF = Fighter\nW = Wizard\nT = Thief\n1 = SFighter\n2 = SThief\n3 = SWizard\n* = Crate\nG = Goal\n[ = YellowDoor\n] = PurpleDoor\n{ = YellowSwitch\n} = PurpleSwitch\n\n=======\nSOUNDS\n=======\n\nMoveable move 82056307\nSfx0 21221308\nEndlevel 36315908\nSfx1 66399906\nSfx2 92172900\nSfx3 15129100\nEndGame 86793500\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTemp\nGoal, Switch, OpenDoor, ShadowDoor\nClosedDoor, Hero, Crate, Wall\n\n======\nRULES \n====== \n\n[ > Fighter | Moveable ] -> [ > Fighter | > Moveable ] \n[ > Moveable | Moveable ] [ Fighter] -> [ > Moveable | > Moveable ] [ Fighter]\n\n[ < Thief | Moveable ] -> [ < Thief | < Moveable ]\n\n[ > Wizard ] -> [ Wizard > Temp]\n[ > Temp | no Moveable no Static] -> [ | > Temp]\n[ > Temp | Static] [Wizard] -> [ | Static ] [> Wizard]\n[ > Temp | Moveable ] [Wizard] -> [ | Wizard Sfx0] [Moveable]\n\nLate [Temp] -> []\n\n[ Action Fighter] [SThief] -> [SFighter] [Thief Sfx1]\n[ Action Thief] [SWizard] -> [SThief] [Wizard Sfx1]\n[ Action Wizard] [SFighter] -> [SWizard] [Fighter Sfx1]\n[ Action Fighter] [no SThief] [SWizard] -> [SFighter] [no SThief] [Wizard Sfx1]\n[ Action Thief] [no Swizard] [SFighter] -> [SThief] [no SWizard] [Fighter Sfx1]\n[ Action Wizard] [no SFighter] [SThief] -> [SWizard] [no SFighter] [Thief Sfx1]\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\n==============\nWINCONDITIONS\n==============\n\nAll Hero on Goal \nAll Goal on Hero\n\n======= \nLEVELS\n=======\n\nMessage Walk to the exit.\n\n#############\n#...........#\n#.F.......G.#\n#...........#\n#############\n\nMessage Red warrior pushes blocks.\n\n#############\n#...#.*.#.*.#\n#.F...*.**G.#\n#...#.*.#.*.#\n#############\n\nMessage Hold down switches to open doors. \n\n#############\n#...#...#...#\n#.F.*.{.#.G.#\n#...#...[...#\n#############\n\nMessage Press multiple switches at once.\n\n#########\n#.....#G#\n#.#*..#[#\n#.**.F..#\n#.......#\n#.{.{.{.#\n#.......#\n#########\n\nMessage Green thief pulls blocks.\n\n#############\n#...#..*#...#\n#.T.*.{.#.G.#\n#...#..*[...#\n#############\n\n#########\n#.....#G#\n#.#*..#[#\n#.**.T..#\n#.......#\n#.{.{.{.#\n#.......#\n#########\n\n#########\n#...##G.#\n#.#..##[#\n#....{..#\n#.#.#.#.#\n#..*.T..#\n#########\n\nMessage Blue wizard teleports to blocks.\n\n#############\n#...*.{.#...#\n#.W.*.{.[.G.#\n#...#...#...#\n#############\n\n#########\n#.....#G# \n#.#*..#[#\n#.**.W..#\n#.......#\n#.{.{.{.#\n#.......#\n#########\n\n#######\n#W#G#*#\n#.#.#.#\n#*...*#\n#.###.#\n#*.*..#\n#######\n\nMessage Press action to switch heroes.\n\n#############\n#...#...#...#\n#.F...}.[.G.#\n#...#...#...#\n#############\n#...#...#...#\n#.3.].{...G.#\n#...#...#...#\n#############\n\nMessage Heroes can move each other.\n\n###########\n#*#..##G.G#\n#.#.2.#...#\n#.....#..##\n#W###.*..*#\n###########\n\n###########\n#F.*.#.*#{#\n#..#...*..#\n####...*.*#\n#..#.##[###\n#2...#*.GG#\n###########\n\n#############\n#.###########\n#*....{....3#\n#.####.######\n#.#..#.###..#\n#.#G....[].G#\n#.#..#.###..#\n#.####.######\n#.....}....T#\n#############\n\n#############\n##G.#F#*#...#\n#*..[.....{.#\n##G.#3###...#\n#############\n\n###########\n#W..{...[*#\n#######.#[#\n#G#G#G#.#2#\n#.......#1#\n###########\n\n#########\n#*......#\n#######.#\n#F23.]#.#\n#..##G#.#\n#..#GG#.#\n##.####.#\n#.......#\n##}####.#\n#########\n\n#############\n#...#G.G#...#\n#.*.#F23#.G.#\n#...#...#...#\n##[###.###[##\n#...#...#...#\n#.{...{...{.#\n#...#...#...#\n#############\n\n#######\n#G***F#\n#*****#\n#G***2#\n#*****#\n#G***3#\n#######\n\n########\n#3..G[*#\n########\n#F**G{{#\n########\n#2.[G..#\n########\n\n#############\n#...#...#...#\n#F#.*.#.*.#3#\n#...#...#...#\n######.######\n#...#...#####\n#2#.*.#...}*#\n#...#...#####\n######.######\n#G..#...#...#\n#G..].#...#.#\n#G..#...#...#\n#############\n\n#############\n#F.........G#\n#############\n#T.........G#\n#############\n#W.........G#\n#############\nMessage Thanks for playing!\n", [2, 2, 3, 2, 2, 2, 1, 1, 1, 1, 0, 0, 2, 1, 4, 2, 2, 2, 1, 2, 1, 1, 1, 3, 3, 3, 3, 4, 1, 2], "background wall:0,0,0,0,0,0,0,0,0,0,background:1,1,1,\n0,1,1,1,0,0,1,background crate:2,1,background yellowdoor:3,1,background yellowswitch:4,1,\n0,0,1,1,1,0,1,1,1,0,0,0,0,\n0,0,0,1,0,0,0,background goal:5,1,1,0,1,background sfighter:6,\n1,0,0,1,background sthief:7,1,1,1,background wizard yellowswitch:8,1,0,0,5,\n1,1,0,1,1,1,0,0,0,0,0,0,0,\n1,0,0,0,1,1,1,0,1,1,1,0,0,\n1,5,1,3,1,4,1,0,0,1,1,1,0,\n1,1,1,0,0,0,0,0,0,0,0,0,0,\n", 25, "1627777591387.1045"] ], [ `gallery: cake monsters`, - ["title Cake Monsters\nauthor Matt Rix\nhomepage www.magicule.com\ncolor_palette whitingjp\ntext_color #FF5588\nbackground_color #050A0A\nnoaction\nyoutube Z6ih1aKeETk (tycho!)\n\n========\nOBJECTS\n========\n\n(-----------------------)\n(----MONSTER COLOURS----)\n(-----------------------)\n\nRedMon\n#D8144D #B00F3F BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nYellowMon\n#F3F333 #C7C829 BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nBlueMon\n#0366E3 #0A52BB BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nPurpleMon\n#9E14E2 #800FBA BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nOrangeMon\n#E68A25 #BB711E BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nGreenMon\n#1CED55 #15C346 BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nTrashMon\n#7C6953 #6D5239 BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\n\n(------------------------)\n(------CAKE COLOURS------)\n(------------------------)\n\nRedCake\n#D8144D #B00F3F\n.000.\n00000\n00000\n10001\n.111.\n\nYellowCake\n#F3F333 #C7C829\n.000.\n00000\n00000\n10001\n.111.\n\nBlueCake\n#0366E3 #0A52BB\n.000.\n00000\n00000\n10001\n.111.\n\n\nPurpleCake\n#9E14E2 #800FBA\n.000.\n00000\n00000\n10001\n.111.\n\nOrangeCake\n#E68A25 #BB711E\n.000.\n00000\n00000\n10001\n.111.\n\nGreenCake\n#1CED55 #15C346\n.000.\n00000\n00000\n10001\n.111.\n\nTrashCake\n#7C6953 #6D5239\n.000.\n00000\n00000\n10001\n.111.\n\n(-----------------------)\n(------OTHER STUFF------)\n(-----------------------)\n\nDestroyer\n#001111 #223333 #384949\n.222.\n20202\n12021\n10101\n.111.\n\nBackground\n#152020 #192525\n01101\n10110\n01101\n11010\n01010\n\n\nWall\n#334444 #384949 #445555 #475959 #4A6B6B\n34443\n23332\n12221\n01110\n00000\n\nBlackness\n#050A0A\n\n\n=======\nLEGEND\n=======\n\n\n. = Background\n_ = Blackness\n# = Wall\nX = Destroyer\n\nR = RedMon\nY = YellowMon\nB = BlueMon\nP = PurpleMon\nO = OrangeMon\nG = GreenMon\nT = TrashMon\n\nMonster = RedMon or YellowMon or BlueMon or PurpleMon or OrangeMon or GreenMon or TrashMon\nPlayer = Monster\n\nPrimaryMon = RedMon or YellowMon or BlueMon\nSecondaryMon = PurpleMon or OrangeMon or GreenMon\n\n(each cake char is the next letter in the alphabet after the monster char)\n(except for orange, sadly)\nS = RedCake\nZ = YellowCake\nC = BlueCake\nQ = PurpleCake\nA = OrangeCake\nH = GreenCake\nU = TrashCake\n\nCake = RedCake or YellowCake or BlueCake or PurpleCake or OrangeCake or GreenCake or TrashCake\n\n=======\nSOUNDS\n=======\n\nsfx0 8478107 (move)\nsfx1 18590508 (eat other monster)\nsfx2 61437309 (eat cake)\nsfx3 89161102 (monster destroyed)\nstartlevel 563108\nendlevel 76028308\nundo 82948709\nrestart 22851101\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBlackness, Wall, Destroyer\nMonster,Cake\n\n\n\n======\nRULES \n====== \n\n(------------------------)\n(----MONSTER MOVEMENT----)\n(------------------------)\n\n(movement sound)\n[ > Monster ] -> [ > Monster ] sfx0\n\n(stop the monster if it hits a wall)\n[ > Monster | Wall ] -> [ Monster | Wall] \n\n(if monster hits a destroyer, remove the monster)\n[ > Monster | Destroyer ] -> [ | Destroyer] sfx3\n\n(monster eats cakes of the same color)\n[ > RedMon | RedCake] -> [ | RedMon] sfx2 \n[ > BlueMon | BlueCake] -> [ | BlueMon] sfx2 \n[ > YellowMon | YellowCake] -> [ | YellowMon] sfx2 \n[ > PurpleMon | PurpleCake] -> [ | PurpleMon] sfx2 \n[ > OrangeMon | OrangeCake] -> [ | OrangeMon] sfx2 \n[ > GreenMon | GreenCake] -> [ | GreenMon] sfx2 \n[ > TrashMon | TrashCake] -> [ | TrashMon] sfx2 \n\n(stop the monster if it hits a cake of a different color)\n(note: this is necessary to make sure the monster is marked as stationary)\n[ > RedMon | Cake no RedCake] -> [ RedMon | Cake no RedCake]\n[ > BlueMon | Cake no BlueCake] -> [ BlueMon | Cake no BlueCake]\n[ > YellowMon | Cake no YellowCake] -> [ YellowMon | Cake no YellowCake]\n[ > PurpleMon | Cake no PurpleCake] -> [ PurpleMon | Cake no PurpleCake]\n[ > OrangeMon | Cake no OrangeCake] -> [ OrangeMon | Cake no OrangeCake]\n[ > GreenMon | Cake no GreenCake] -> [ GreenMon | Cake no GreenCake]\n[ > TrashMon | Cake no TrashCake] -> [ TrashMon | Cake no TrashCake]\n\n(--------------------------)\n(---MONSTER COLOR MIXING---)\n(--------------------------)\n\n(red+blue = purple)\n[ > BlueMon | stationary RedMon] -> [ | PurpleMon] sfx1\n[ > RedMon | stationary BlueMon] -> [ | PurpleMon] sfx1\n\n(red+yellow = orange)\n[ > RedMon | stationary YellowMon] -> [ | OrangeMon] sfx1\n[ > YellowMon | stationary RedMon] -> [ | OrangeMon] sfx1\n\n(blue+yellow = green)\n[ > BlueMon | stationary YellowMon] -> [ | GreenMon] sfx1\n[ > YellowMon | stationary BlueMon] -> [ | GreenMon] sfx1\n\n(primary color + secondary color = brown aka trash)\n[ > PrimaryMon | stationary SecondaryMon] -> [ | TrashMon] sfx1\n[ > SecondaryMon | stationary PrimaryMon] -> [ | TrashMon] sfx1\n\n(green+orange = trash)\n[ > GreenMon | stationary OrangeMon] -> [ | TrashMon] sfx1\n[ > OrangeMon | stationary GreenMon] -> [ | TrashMon] sfx1\n\n(purple+orange = trash)\n[ > PurpleMon | stationary OrangeMon] -> [ | TrashMon] sfx1\n[ > OrangeMon | stationary PurpleMon] -> [ | TrashMon] sfx1\n\n(green+purple = trash)\n[ > GreenMon | stationary PurpleMon] -> [ | TrashMon] sfx1\n[ > PurpleMon | stationary GreenMon] -> [ | TrashMon] sfx1\n\n(trash+anything = trash)\n[ > TrashMon | stationary Monster] -> [ | TrashMon] sfx1\n[ > Monster | stationary TrashMon] -> [ | TrashMon] sfx1\n\n(monster + monster of the same color = monster of the same color)\n[ > Monster | stationary Monster] -> [ | Monster] sfx1\n\n \n==============\nWINCONDITIONS\n==============\n \nNo Cake\n\n\n======= \nLEVELS\n======= \n\n\nmessage WELCOME TO CAKE MONSTERS!\nmessage MONSTERS LIKE EATING CAKE\n\n_______\n#######\n#.....#\n#.r...#\n#...s.#\n#.....#\n#######\n_______\n(diff 0)\n\nmessage YOU MOVE ALL OF THE MONSTERS\n\n######_######\n#....#_#z...#\n#.r..#_#....#\n#..s.#_#....#\n#....#_#...y#\n######_######\n_____________\n######_######\n#.c..#_#....#\n#....#_#...h#\n#..b.#_#g...#\n#....#_#....#\n######_######\n(diff 0)\n\nmessage MONSTERS ONLY LIKE THEIR OWN CAKE\nmessage REMEMBER: Z TO UNDO, R TO RESTART\n_________\n#########\n#r.z....#\n#######.#\n#.......#\n#.sy....#\n#########\n_________\n(diff 1)\n\nmessage MONSTERS MIX WHEN THEY GET EATEN\n_________\n#########\n#.......#\n#.#####.#\n#.r.q.b.#\n#.#####.#\n#.......#\n#########\n_________\n(diff 1)\n\n\nmessage BROWN + ANY COLOR = BROWN\n__________\n##########\n#........#\n#.rybpog.#\n#........#\n#........#\n#.szcqah.#\n#........#\n#........#\n#.uuuuuu.#\n#........#\n##########\n__________\n(diff 1)\n\n\nmessage HAVE FUN!\n############\n#y........c#\n#b........z#\n#####..#####\n____#..#____\n____#..#____\n____#hh#____\n____####____\n(diff 1)\n\n(----------------------------)\n\n\n_____\n#####\n#RCQ#\n#.CS#\n#Q.B#\n#####\n_____\n(diff 2)\n\n\n\n\n______\n######\n#R...#\n#B...#\n#Q.QQ#\n#CSCS#\n######\n______\n(diff 2)\n\n_______\n#######\n#R.H.B#\n#.....#\n#.....#\n#Y.Q.B#\n#######\n_______\n(diff 2)\n\n_______\n#######\n#CCHCB#\n#.....#\n#YZHZZ#\n#######\n_______\n(diff 2)\n\n\n______\n######\n#R..B#\n#S.C.#\n#.A.C#\n#Y.C.#\n######\n______\n(diff 2)\n\n\nmessage PIECE OF CAKE, RIGHT?\n\n\n#########\n#ccccccc#\n#bcccccc#\n######cc#\n_____#ch#\n######zz#\n#yzzzzzz#\n#yzzzzzz#\n######zz#\n_____#sa#\n######ss#\n#rssssss#\n#sssssss#\n#########\n(diff 3, fun)\n\n_______\n#######\n#R.B.Y#\n#Y.B.R#\n#R.B.Y#\n#Y.B.R#\n#AHQHA#\n#######\n_______\n(diff 3)\n\n\n_______\n#######\n#AR.BA#\n#.#.#.#\n#H...H#\n##.A.##\n#HY#YH#\n#######\n_______\n(diff 3)\n\n\n\nmessage X TILES DESTROY MONSTERS\n_________\n_###_###_\n#...#...#\n#.q.x.p.#\n#...x...#\n_#..x..#_\n__#...#__\n___#.#___\n____#____\n_________\n(diff 0, destroyerz)\n\n\n_____\n#####\n#RAR#\n#RXY#\n#YAY#\n#####\n_____\n(diff 1, destroyerz)\n\n______\n######\n#BHHB#\n#YXXY#\n#YXXY#\n#BHHB#\n######\n______\n(diff 1 destroyerz)\n\n_______\n#######\n#RQXQR#\n#SQXQS#\n#BQXQB#\n#######\n_______\n(diff 1 destroyerz)\n\n___________\n#####_#####\n#sss#_#qqq#\n#sss###qqq#\n#x.......x#\n##x.rxb.x##\n#x.......x#\n#qqq###ccc#\n#qqq#_#ccc#\n#####_#####\n___________\n(diff 2 destroyerz)\n\n___________\n###########\n#...#q#.b.#\n#sxr#.#xx.#\n#.x.....c.#\n###########\n___________\n(diff 3 destroyerz)\n\n\n\nmessage YOU'RE CAKING THIS LOOK EASY!\n\n______\n######\n#RZSZ#\n#YSZS#\n#..SZ#\n#..ZS#\n######\n______\n(diff 3)\n\n\n#######\n#Y#B#Y#\n#.#R#.#\n#.#.#.#\n#.....#\n#.###.#\n#HHAHH#\n#######\n(diff 3, fun!)\n\n\n\n####__####\n#qc####cb#\n#c......c#\n##.####.##\n_#.#xx#.#_\n_#.c.r#.#_\n##.####.##\n#c......c#\n#qc####cq#\n####__####\n(diff 3)\n\n\n\n\n_#########_\n_#rrr.sss#_\n_#.......#_\n_#yyy.zzz#_\n_#.......#_\n##bbb.ccc##\n#.........#\n#.q..a..h.#\n#.........#\n###########\n\n______\n######\n#RA.Y#\n#....#\n#HH..#\n#SBCY#\n######\n______\n(diff 4)\n\nmessage LET'S CAKE IT TO THE NEXT TIER!\n\n\n#############\n#...#.h.#...#\n#.r.#...#.y.#\n#...c#c#s...#\n###c.....s###\n#..#.#h#.#..#\n#z.h.z.c.s.c#\n#..#.#s#.#..#\n###......z###\n#....#z#z...#\n#.b.#...#.g.#\n#...#.s.#...#\n#############\n(diff 3, easy but fun)\n\n\n_____\n#####\n#B.B#\n#RRY#\n#.Q.#\n#S.S#\n#CHC#\n#####\n_____\n(diff 5 - fun!)\n\n\n______\n######\n#HYBH#\n#YBYB#\n#BBBB#\n#HHHH#\n######\n______\n(diff 4)\n\n\n\n\n______\n######\n#BR.Y#\n#..A.#\n#SCZA#\n#CSZA#\n######\n______\n(diff 4)\n\n\n\n\n______\n######\n#CZG.#\n#ZCR##\n###..#\n#SHY##\n#HSB.#\n######\n______\n(diff 5 - very fun!)\n\n\nmessage YOU'RE GETTING BATTER!\n\n______\n######\n#YYYY#\n#...R#\n#AAAA#\n#ZZZZ#\n######\n______\n(diff 5 - fun but surprisingly hard)\n\n\n_______\n#######\n#Y..YA#\n#.BB.H#\n#R..RQ#\n#Y..YH#\n#######\n_______\n(diff 4)\n\n\nmessage ICING ON THE CAKE!\n\n______\n######\n#ZBBZ#\n#YBYB#\n#....#\n#ZHCZ#\n######\n______\n(diff 5)\n\n\n\n\n_______\n#######\n#A.S.A#\n#.Z.Z.#\n#SYRYS#\n#.ZYZ.#\n#A.S.A#\n#######\n_______\n(diff 5 - not too hard)\n\n\n\nmessage WILL YOU CAKE IT OUT ALIVE?\n______\n######\n#ZZZZ#\n#SSSS#\n#CCCC#\n#YRB.#\n######\n______\n(diff 6 - fun but tricky)\n\n\n\n\nmessage THE FINAL CHALLENGE!\nmessage DOUGH YOU HAVE WHAT IT CAKES?\n_____\n#####\n#AYA#\n#...#\n#CBC#\n#SZY#\n#RZS#\n#CBC#\n#...#\n#HOH#\n#####\n_____\n(diff 8 - a pretty tough one)\n\n\n\nmessage WELL, YOU REALLY TOOK THE CAKE!\nmessage CONGRATS, YOU WIN! :)\n\n\n\n",[1,1,1,1,3,1,2,2,0,1,1,1,1,1,2,2,2,3,1,0,0,0,0,2,1,3,2,2,2,2,2,2,1],"background wall:0,0,0,0,background blackness:1,1,0,0,0,0,\n0,background purplecake:2,background:3,0,0,0,0,background bluecake:4,2,0,\n0,3,3,3,3,3,3,3,background bluemon:5,0,\n0,0,3,0,0,3,0,3,0,0,\n1,0,3,0,background destroyer:6,3,0,3,0,1,\n1,0,3,0,6,3,0,3,0,1,\n0,0,3,0,0,0,0,3,0,0,\n0,3,3,3,3,3,3,3,4,0,\n0,3,4,0,0,0,0,4,2,0,\n0,0,0,0,1,1,0,0,0,0,\n",33,"1627777633918.221"] + ["title Cake Monsters\nauthor Matt Rix\nhomepage www.magicule.com\ncolor_palette whitingjp\ntext_color #FF5588\nbackground_color #050A0A\nnoaction\nyoutube Z6ih1aKeETk (tycho!)\n\n========\nOBJECTS\n========\n\n(-----------------------)\n(----MONSTER COLOURS----)\n(-----------------------)\n\nRedMon\n#D8144D #B00F3F BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nYellowMon\n#F3F333 #C7C829 BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nBlueMon\n#0366E3 #0A52BB BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nPurpleMon\n#9E14E2 #800FBA BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nOrangeMon\n#E68A25 #BB711E BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nGreenMon\n#1CED55 #15C346 BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nTrashMon\n#7C6953 #6D5239 BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\n\n(------------------------)\n(------CAKE COLOURS------)\n(------------------------)\n\nRedCake\n#D8144D #B00F3F\n.000.\n00000\n00000\n10001\n.111.\n\nYellowCake\n#F3F333 #C7C829\n.000.\n00000\n00000\n10001\n.111.\n\nBlueCake\n#0366E3 #0A52BB\n.000.\n00000\n00000\n10001\n.111.\n\n\nPurpleCake\n#9E14E2 #800FBA\n.000.\n00000\n00000\n10001\n.111.\n\nOrangeCake\n#E68A25 #BB711E\n.000.\n00000\n00000\n10001\n.111.\n\nGreenCake\n#1CED55 #15C346\n.000.\n00000\n00000\n10001\n.111.\n\nTrashCake\n#7C6953 #6D5239\n.000.\n00000\n00000\n10001\n.111.\n\n(-----------------------)\n(------OTHER STUFF------)\n(-----------------------)\n\nDestroyer\n#001111 #223333 #384949\n.222.\n20202\n12021\n10101\n.111.\n\nBackground\n#152020 #192525\n01101\n10110\n01101\n11010\n01010\n\n\nWall\n#334444 #384949 #445555 #475959 #4A6B6B\n34443\n23332\n12221\n01110\n00000\n\nBlackness\n#050A0A\n\n\n=======\nLEGEND\n=======\n\n\n. = Background\n_ = Blackness\n# = Wall\nX = Destroyer\n\nR = RedMon\nY = YellowMon\nB = BlueMon\nP = PurpleMon\nO = OrangeMon\nG = GreenMon\nT = TrashMon\n\nMonster = RedMon or YellowMon or BlueMon or PurpleMon or OrangeMon or GreenMon or TrashMon\nPlayer = Monster\n\nPrimaryMon = RedMon or YellowMon or BlueMon\nSecondaryMon = PurpleMon or OrangeMon or GreenMon\n\n(each cake char is the next letter in the alphabet after the monster char)\n(except for orange, sadly)\nS = RedCake\nZ = YellowCake\nC = BlueCake\nQ = PurpleCake\nA = OrangeCake\nH = GreenCake\nU = TrashCake\n\nCake = RedCake or YellowCake or BlueCake or PurpleCake or OrangeCake or GreenCake or TrashCake\n\n=======\nSOUNDS\n=======\n\nsfx0 8478107 (move)\nsfx1 18590508 (eat other monster)\nsfx2 61437309 (eat cake)\nsfx3 89161102 (monster destroyed)\nstartlevel 563108\nendlevel 76028308\nundo 82948709\nrestart 22851101\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBlackness, Wall, Destroyer\nMonster,Cake\n\n\n\n======\nRULES \n====== \n\n(------------------------)\n(----MONSTER MOVEMENT----)\n(------------------------)\n\n(movement sound)\n[ > Monster ] -> [ > Monster ] sfx0\n\n(stop the monster if it hits a wall)\n[ > Monster | Wall ] -> [ Monster | Wall] \n\n(if monster hits a destroyer, remove the monster)\n[ > Monster | Destroyer ] -> [ | Destroyer] sfx3\n\n(monster eats cakes of the same color)\n[ > RedMon | RedCake] -> [ | RedMon] sfx2 \n[ > BlueMon | BlueCake] -> [ | BlueMon] sfx2 \n[ > YellowMon | YellowCake] -> [ | YellowMon] sfx2 \n[ > PurpleMon | PurpleCake] -> [ | PurpleMon] sfx2 \n[ > OrangeMon | OrangeCake] -> [ | OrangeMon] sfx2 \n[ > GreenMon | GreenCake] -> [ | GreenMon] sfx2 \n[ > TrashMon | TrashCake] -> [ | TrashMon] sfx2 \n\n(stop the monster if it hits a cake of a different color)\n(note: this is necessary to make sure the monster is marked as stationary)\n[ > RedMon | Cake no RedCake] -> [ RedMon | Cake no RedCake]\n[ > BlueMon | Cake no BlueCake] -> [ BlueMon | Cake no BlueCake]\n[ > YellowMon | Cake no YellowCake] -> [ YellowMon | Cake no YellowCake]\n[ > PurpleMon | Cake no PurpleCake] -> [ PurpleMon | Cake no PurpleCake]\n[ > OrangeMon | Cake no OrangeCake] -> [ OrangeMon | Cake no OrangeCake]\n[ > GreenMon | Cake no GreenCake] -> [ GreenMon | Cake no GreenCake]\n[ > TrashMon | Cake no TrashCake] -> [ TrashMon | Cake no TrashCake]\n\n(--------------------------)\n(---MONSTER COLOR MIXING---)\n(--------------------------)\n\n(red+blue = purple)\n[ > BlueMon | stationary RedMon] -> [ | PurpleMon] sfx1\n[ > RedMon | stationary BlueMon] -> [ | PurpleMon] sfx1\n\n(red+yellow = orange)\n[ > RedMon | stationary YellowMon] -> [ | OrangeMon] sfx1\n[ > YellowMon | stationary RedMon] -> [ | OrangeMon] sfx1\n\n(blue+yellow = green)\n[ > BlueMon | stationary YellowMon] -> [ | GreenMon] sfx1\n[ > YellowMon | stationary BlueMon] -> [ | GreenMon] sfx1\n\n(primary color + secondary color = brown aka trash)\n[ > PrimaryMon | stationary SecondaryMon] -> [ | TrashMon] sfx1\n[ > SecondaryMon | stationary PrimaryMon] -> [ | TrashMon] sfx1\n\n(green+orange = trash)\n[ > GreenMon | stationary OrangeMon] -> [ | TrashMon] sfx1\n[ > OrangeMon | stationary GreenMon] -> [ | TrashMon] sfx1\n\n(purple+orange = trash)\n[ > PurpleMon | stationary OrangeMon] -> [ | TrashMon] sfx1\n[ > OrangeMon | stationary PurpleMon] -> [ | TrashMon] sfx1\n\n(green+purple = trash)\n[ > GreenMon | stationary PurpleMon] -> [ | TrashMon] sfx1\n[ > PurpleMon | stationary GreenMon] -> [ | TrashMon] sfx1\n\n(trash+anything = trash)\n[ > TrashMon | stationary Monster] -> [ | TrashMon] sfx1\n[ > Monster | stationary TrashMon] -> [ | TrashMon] sfx1\n\n(monster + monster of the same color = monster of the same color)\n[ > Monster | stationary Monster] -> [ | Monster] sfx1\n\n \n==============\nWINCONDITIONS\n==============\n \nNo Cake\n\n\n======= \nLEVELS\n======= \n\n\nmessage WELCOME TO CAKE MONSTERS!\nmessage MONSTERS LIKE EATING CAKE\n\n_______\n#######\n#.....#\n#.r...#\n#...s.#\n#.....#\n#######\n_______\n(diff 0)\n\nmessage YOU MOVE ALL OF THE MONSTERS\n\n######_######\n#....#_#z...#\n#.r..#_#....#\n#..s.#_#....#\n#....#_#...y#\n######_######\n_____________\n######_######\n#.c..#_#....#\n#....#_#...h#\n#..b.#_#g...#\n#....#_#....#\n######_######\n(diff 0)\n\nmessage MONSTERS ONLY LIKE THEIR OWN CAKE\nmessage REMEMBER: Z TO UNDO, R TO RESTART\n_________\n#########\n#r.z....#\n#######.#\n#.......#\n#.sy....#\n#########\n_________\n(diff 1)\n\nmessage MONSTERS MIX WHEN THEY GET EATEN\n_________\n#########\n#.......#\n#.#####.#\n#.r.q.b.#\n#.#####.#\n#.......#\n#########\n_________\n(diff 1)\n\n\nmessage BROWN + ANY COLOR = BROWN\n__________\n##########\n#........#\n#.rybpog.#\n#........#\n#........#\n#.szcqah.#\n#........#\n#........#\n#.uuuuuu.#\n#........#\n##########\n__________\n(diff 1)\n\n\nmessage HAVE FUN!\n############\n#y........c#\n#b........z#\n#####..#####\n____#..#____\n____#..#____\n____#hh#____\n____####____\n(diff 1)\n\n(----------------------------)\n\n\n_____\n#####\n#RCQ#\n#.CS#\n#Q.B#\n#####\n_____\n(diff 2)\n\n\n\n\n______\n######\n#R...#\n#B...#\n#Q.QQ#\n#CSCS#\n######\n______\n(diff 2)\n\n_______\n#######\n#R.H.B#\n#.....#\n#.....#\n#Y.Q.B#\n#######\n_______\n(diff 2)\n\n_______\n#######\n#CCHCB#\n#.....#\n#YZHZZ#\n#######\n_______\n(diff 2)\n\n\n______\n######\n#R..B#\n#S.C.#\n#.A.C#\n#Y.C.#\n######\n______\n(diff 2)\n\n\nmessage PIECE OF CAKE, RIGHT?\n\n\n#########\n#ccccccc#\n#bcccccc#\n######cc#\n_____#ch#\n######zz#\n#yzzzzzz#\n#yzzzzzz#\n######zz#\n_____#sa#\n######ss#\n#rssssss#\n#sssssss#\n#########\n(diff 3, fun)\n\n_______\n#######\n#R.B.Y#\n#Y.B.R#\n#R.B.Y#\n#Y.B.R#\n#AHQHA#\n#######\n_______\n(diff 3)\n\n\n_______\n#######\n#AR.BA#\n#.#.#.#\n#H...H#\n##.A.##\n#HY#YH#\n#######\n_______\n(diff 3)\n\n\n\nmessage X TILES DESTROY MONSTERS\n_________\n_###_###_\n#...#...#\n#.q.x.p.#\n#...x...#\n_#..x..#_\n__#...#__\n___#.#___\n____#____\n_________\n(diff 0, destroyerz)\n\n\n_____\n#####\n#RAR#\n#RXY#\n#YAY#\n#####\n_____\n(diff 1, destroyerz)\n\n______\n######\n#BHHB#\n#YXXY#\n#YXXY#\n#BHHB#\n######\n______\n(diff 1 destroyerz)\n\n_______\n#######\n#RQXQR#\n#SQXQS#\n#BQXQB#\n#######\n_______\n(diff 1 destroyerz)\n\n___________\n#####_#####\n#sss#_#qqq#\n#sss###qqq#\n#x.......x#\n##x.rxb.x##\n#x.......x#\n#qqq###ccc#\n#qqq#_#ccc#\n#####_#####\n___________\n(diff 2 destroyerz)\n\n___________\n###########\n#...#q#.b.#\n#sxr#.#xx.#\n#.x.....c.#\n###########\n___________\n(diff 3 destroyerz)\n\n\n\nmessage YOU'RE CAKING THIS LOOK EASY!\n\n______\n######\n#RZSZ#\n#YSZS#\n#..SZ#\n#..ZS#\n######\n______\n(diff 3)\n\n\n#######\n#Y#B#Y#\n#.#R#.#\n#.#.#.#\n#.....#\n#.###.#\n#HHAHH#\n#######\n(diff 3, fun!)\n\n\n\n####__####\n#qc####cb#\n#c......c#\n##.####.##\n_#.#xx#.#_\n_#.c.r#.#_\n##.####.##\n#c......c#\n#qc####cq#\n####__####\n(diff 3)\n\n\n\n\n_#########_\n_#rrr.sss#_\n_#.......#_\n_#yyy.zzz#_\n_#.......#_\n##bbb.ccc##\n#.........#\n#.q..a..h.#\n#.........#\n###########\n\n______\n######\n#RA.Y#\n#....#\n#HH..#\n#SBCY#\n######\n______\n(diff 4)\n\nmessage LET'S CAKE IT TO THE NEXT TIER!\n\n\n#############\n#...#.h.#...#\n#.r.#...#.y.#\n#...c#c#s...#\n###c.....s###\n#..#.#h#.#..#\n#z.h.z.c.s.c#\n#..#.#s#.#..#\n###......z###\n#....#z#z...#\n#.b.#...#.g.#\n#...#.s.#...#\n#############\n(diff 3, easy but fun)\n\n\n_____\n#####\n#B.B#\n#RRY#\n#.Q.#\n#S.S#\n#CHC#\n#####\n_____\n(diff 5 - fun!)\n\n\n______\n######\n#HYBH#\n#YBYB#\n#BBBB#\n#HHHH#\n######\n______\n(diff 4)\n\n\n\n\n______\n######\n#BR.Y#\n#..A.#\n#SCZA#\n#CSZA#\n######\n______\n(diff 4)\n\n\n\n\n______\n######\n#CZG.#\n#ZCR##\n###..#\n#SHY##\n#HSB.#\n######\n______\n(diff 5 - very fun!)\n\n\nmessage YOU'RE GETTING BATTER!\n\n______\n######\n#YYYY#\n#...R#\n#AAAA#\n#ZZZZ#\n######\n______\n(diff 5 - fun but surprisingly hard)\n\n\n_______\n#######\n#Y..YA#\n#.BB.H#\n#R..RQ#\n#Y..YH#\n#######\n_______\n(diff 4)\n\n\nmessage ICING ON THE CAKE!\n\n______\n######\n#ZBBZ#\n#YBYB#\n#....#\n#ZHCZ#\n######\n______\n(diff 5)\n\n\n\n\n_______\n#######\n#A.S.A#\n#.Z.Z.#\n#SYRYS#\n#.ZYZ.#\n#A.S.A#\n#######\n_______\n(diff 5 - not too hard)\n\n\n\nmessage WILL YOU CAKE IT OUT ALIVE?\n______\n######\n#ZZZZ#\n#SSSS#\n#CCCC#\n#YRB.#\n######\n______\n(diff 6 - fun but tricky)\n\n\n\n\nmessage THE FINAL CHALLENGE!\nmessage DOUGH YOU HAVE WHAT IT CAKES?\n_____\n#####\n#AYA#\n#...#\n#CBC#\n#SZY#\n#RZS#\n#CBC#\n#...#\n#HOH#\n#####\n_____\n(diff 8 - a pretty tough one)\n\n\n\nmessage WELL, YOU REALLY TOOK THE CAKE!\nmessage CONGRATS, YOU WIN! :)\n\n\n\n", [1, 1, 1, 1, 3, 1, 2, 2, 0, 1, 1, 1, 1, 1, 2, 2, 2, 3, 1, 0, 0, 0, 0, 2, 1, 3, 2, 2, 2, 2, 2, 2, 1], "background wall:0,0,0,0,background blackness:1,1,0,0,0,0,\n0,background purplecake:2,background:3,0,0,0,0,background bluecake:4,2,0,\n0,3,3,3,3,3,3,3,background bluemon:5,0,\n0,0,3,0,0,3,0,3,0,0,\n1,0,3,0,background destroyer:6,3,0,3,0,1,\n1,0,3,0,6,3,0,3,0,1,\n0,0,3,0,0,0,0,3,0,0,\n0,3,3,3,3,3,3,3,4,0,\n0,3,4,0,0,0,0,4,2,0,\n0,0,0,0,1,1,0,0,0,0,\n", 33, "1627777633918.221"] ], [ `gallery: you're pulleying my leg`, - ["title You're Pulleying My Leg\nauthor Alan Hazelden\nhomepage www.draknek.org\n\nrun_rules_on_level_start\n\nagain_interval 0.1\n\n(verbose_logging)\n\nzoomscreen 17x13\n\nnoaction\n\n========\nOBJECTS\n========\n\nSky\nblue\n\nWall\n#8a5c23 #805520 #966426\n00001\n01020\n00000\n20100\n00000\n\nBackground\nDarkBrown\n\nGrass1\nGreen\n00000\n.....\n.....\n.....\n.....\n\nGrass2\nGreen\n00000\n....0\n.....\n.....\n.....\n\nGrass3\nGreen\n00000\n0....\n.....\n.....\n.....\n\nPlayerL\n#3c8ee7 #e6e4d5\n..1..\n.00..\n..0..\n.00..\n.0.0.\n\nPlayerR\n#3c8ee7 #e6e4d5\n..1..\n..00.\n..0..\n..00.\n.0.0.\n\nPlayerClimbing\n#3c8ee7 #e6e4d5\n..1..\n.000.\n..0..\n..0..\n.0.0.\n\nPlayerClimbingL\n#3c8ee7 #e6e4d5\n.1...\n00...\n.0...\n00...\n0....\n\nPlayerClimbingR\n#3c8ee7 #e6e4d5\n...1.\n...00\n...0.\n...0.\n....0\n\nLiftCorner\nGrey Yellow\n.000.\n00000\n00100\n00000\n.000.\n\nLiftRope\n#d97d3c #d9903c\n..0..\n..0..\n..1..\n..0..\n..0..\n\nLiftRopeH\n#d97d3c #d9903c\n.....\n.....\n00100\n.....\n.....\n\nLift\ntransparent\n\nLiftGraphic\nBlack\n00000\n.....\n.....\n.....\n.....\n\nShelf\n#8a5c23 #f4c56a\n00000\n..1..\n.....\n.....\n.....\n\nLadder\n#d97d3c #f4c56a\n.0.0.\n.010.\n.0.0.\n.010.\n.0.0.\n\nRopeL\n#d97d3c #d9903c\n0....\n0....\n1....\n0....\n0....\n\nRopeR\n#d97d3c #d9903c\n....0\n....0\n....1\n....0\n....0\n\n(Boulder\n#1b1207 #30200c #2c190a\n.100.\n00200\n00000\n20010\n.000.)\n\nBoulder\n#be2633 #eb8931 #732930\n.000.\n01100\n01000\n00002\n.022.\n\n(Dark0_odd\ntransparent\n\nDark0_even\ntransparent\n\nDark1_odd\ntransparent\n\nDark1_even\ntransparent\n\nDark2_odd\ntransparent\n\nDark2_even\ntransparent\n\nDark3_odd\nblack\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nDark3_even\nblack\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\nDark4_odd\nblack\n\nDark4_even\nblack\n\nDark5\nblack\n\nDarkPending\ntransparent)\n\nLightSource\ntransparent\n\nLightSource2\n#1d57f7 #3164ea #4471dd #587ed0 #6c8bc3\n01234\n01234\n01234\n01234\n01234\n\nLightSource3\n#7f97b6 #93a5aa #a7b19c #bbbf90 #cfcc83\n01234\n01234\n01234\n01234\n01234\n\nLightL\n#f4e46a\n\nLightR\n#f4e46a\n\nLightU\n#f4e46a\n\nLightD\n#f4e46a\n\n(LightBlockedL\n#f4e46a\n...00\n...00\n...00\n...00\n...00\n\nLightBlockedR\n#f4e46a\n00...\n00...\n00...\n00...\n00...\n\nLightBlockedU\n#f4e46a\n.....\n.....\n.....\n00000\n00000\n\nLightBlockedD\n#f4e46a\n00000\n00000\n.....\n.....\n.....)\n\nMirrorUL\n#e6e4d5 #909090 #4e5159\n....0\n...01\n..011\n.0111\n01112\n\nMirrorUR\n#e6e4d5 #909090 #4e5159\n0....\n10...\n110..\n1110.\n21110\n\nMirrorDL\n#e6e4d5 #909090 #4e5159\n01111\n.0111\n..011\n...01\n22222\n\nMirrorDR\n#e6e4d5 #909090 #4e5159\n11110\n1110.\n110..\n10...\n22222\n\nTarget\n#f4e46a #e6e4d5 #909090\n11211\n10001\n20002\n10001\n11211\n\nSeenMirror\ntransparent\n\nSeenTarget\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n~ = Sky\no = LiftCorner\nL = Lift\nU = Ladder\nB = Boulder\n[ = RopeL\n] = RopeR\n/ = MirrorUL\n\\ = MirrorUR\n` = MirrorDL\n' = MirrorDR\n- = Shelf\nT = Shelf and Ladder\n+ = Lift and Shelf\n* = Target\np = PlayerR\n% = Shelf and Target\n\nPlayer = PlayerL or PlayerR or PlayerClimbing or PlayerClimbingL or PlayerClimbingR\n\nGrass = Grass1 or Grass2 or Grass3\n\nLiftChain = LiftRope or LiftRopeH or LiftCorner\n\nMirror = MirrorUL or MirrorUR or MirrorDL or MirrorDR\n\nFalling = Player or Boulder or Mirror\n\nPushable = Boulder or Mirror\n\nSolid = Wall or Boulder or Mirror or Target\n\nFloor = Solid or LiftGraphic or Shelf or Target\n\nClimbable = Ladder or RopeL or RopeR\n\n\n! = LightSource and Sky and SeenMirror and SeenTarget\n(! = LightSource and Dark0_even and Sky\n\nDarkness = Dark0_even or Dark0_odd or Dark1_even or Dark1_odd or Dark2_even or Dark2_odd or Dark3_even or Dark3_odd or Dark4_even or Dark4_odd or Dark5\n\nDark1 = Dark1_even or Dark1_odd\nDark2 = Dark2_even or Dark2_odd)\n\n(LightBlocked = LightBlockedL or LightBlockedR or LightBlockedU or LightBlockedD)\n\nLight = LightSource or LightSource2 or LightSource3 or LightL or LightR or LightU or LightD\n\n\n=======\nSOUNDS\n=======\n\nEndLevel 55891508\nPlayer Move 82426907\nLift Move 47466509\nMirror Move 62036907\nBoulder Move 62036907\nTarget Destroy 38934902\n\n(16126909)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nLight\nSky\nLift, Wall\nShelf\nLiftRope\nClimbable\nBoulder, Mirror, Target\nLiftGraphic\nGrass, LiftCorner, LiftRopeH\nPlayer\nSeenMirror\nSeenTarget\n(Darkness\nDarkPending)\n\n======\nRULES\n======\n\n(Observations)\n\nhorizontal [ Player | MirrorUL ] [ SeenMirror ] -> [ Player | MirrorUL ] [] message A massive angled mirror, sloping towards the cave ceiling\nhorizontal [ Player | MirrorDL ] [ SeenMirror ] -> [ Player | MirrorDL ] [] message A massive angled mirror, sloping towards the cave floor\nhorizontal [ Player | Target ] [ SeenTarget ] -> [ Player | Target ] [] message A large stone block with an engraved image of the sun\n\nlate [ Player | MirrorUL ] [ SeenMirror ] -> again\nlate [ Player | MirrorDL ] [ SeenMirror ] -> again\nlate [ Player | Target ] [ SeenTarget ] -> again\n\n(Init)\n\ndown [ Sky | Wall no Grass ] -> [ Sky | Wall random Grass ]\n\nright [ LiftCorner | no LiftRopeH no Wall | ... | LiftCorner ] -> [ LiftCorner | LiftRopeH | ... | LiftCorner ]\nright [ LiftRopeH | no LiftRopeH no Wall | ... | LiftCorner ] -> [ LiftRopeH | LiftRopeH | ... | LiftCorner ]\n\n(Darkness: can be commented out easily)\n\n([ Darkness no Sky ] -> [])\n\n([ Dark0_even | no Wall no Darkness ] -> [ Dark0_even | Dark0_odd ]\n+ [ Dark0_odd | no Wall no Darkness ] -> [ Dark0_odd | Dark0_even ]\n\n[ Dark0_even | no Darkness ] -> [ Dark0_even | Dark1_odd ]\n[ Dark0_odd | no Darkness ] -> [ Dark0_odd | Dark1_even ]\n\n[ Dark1 | no Darkness no DarkPending ] -> [ Dark1 | DarkPending ]\n\nstartloop\nrandom [ DarkPending no Darkness ] -> [ action DarkPending ]\n\nrandom [ action DarkPending | stationary Dark1 no DarkPending ] -> [ action DarkPending | action Dark1 ]\n\n[ action DarkPending | stationary Dark1_even no DarkPending ] -> [ Dark1_odd DarkPending | Dark1_even ]\n[ action DarkPending | stationary Dark1_odd no DarkPending ] -> [ Dark1_even DarkPending | Dark1_odd ]\n\n[ action DarkPending ] -> []\n[ action Dark1 ] -> [ Dark1 ]\nendloop\n\n[ DarkPending ] -> []\n\n[ Dark1_even | no Darkness ] -> [ Dark1_even | Dark2_odd ]\n[ Dark1_odd | no Darkness ] -> [ Dark1_odd | Dark2_even ]\n\n[ Dark2_even | no Darkness ] -> [ Dark2_even | Dark3_odd ]\n[ Dark2_odd | no Darkness ] -> [ Dark2_odd | Dark3_even ]\n\n[ Dark3_even | no Darkness ] -> [ Dark3_even | Dark4_odd ]\n[ Dark3_odd | no Darkness ] -> [ Dark3_odd | Dark4_even ]\n\n[ Dark4_even | no Darkness ] -> [ Dark4_even | Dark5 ]\n[ Dark4_odd | no Darkness ] -> [ Dark4_odd | Dark5 ]\n\n[ Dark5 | no Darkness ] -> [ Dark5 | Dark5 ])\n\n(Movement)\n\nright [ Solid | < Player | LightSource ] -> [ Solid | Player | LightSource ]\n\ndown [ right PlayerClimbingL | Floor ] -> [ PlayerR | Floor ]\ndown [ left PlayerClimbingR | Floor ] -> [ PlayerL | Floor ]\n\n[ left Player ] -> [ left PlayerL ]\n[ right Player ] -> [ right PlayerR ]\n\nleft [ > Player RopeL | Wall ] -> [ PlayerClimbingL RopeL | Wall ]\nright [ > Player RopeR | Wall ] -> [ PlayerClimbingR RopeR | Wall ]\n\n[ > Player | Wall ] -> cancel\n[ > Player | Target ] -> cancel\n\n[ up Player no Lift no Climbable ] -> [ Player ]\ndown [ > Player no Lift no Climbable | no Climbable ] -> [ Player | ]\ndown [ > Player Climbable | Floor no Climbable ] -> cancel\n\nup [ > Player Climbable no Floor no Lift | no Climbable ] -> [ Player Climbable | ]\n\nhorizontal [ > Player | Pushable ] -> [ > Player | > Pushable ]\nvertical [ > Player | Pushable ] -> cancel\n\n[ > Pushable | Solid ] -> cancel\n\n(Lifts)\n\n[ vertical Player Lift no PlayerClimbing no PlayerClimbingL no PlayerClimbingR ] -> [ Player vertical Lift ]\n\nup [ > Lift Falling | LiftCorner ] -> [ Lift Falling | LiftCorner ]\nup [ > Lift | Wall ] -> [ Lift | Wall ]\ndown [ > Lift | Solid ] -> [ Lift | Solid ]\n\n[ moving Lift | stationary LiftChain ] -> [ moving Lift | moving LiftChain ]\n[ moving LiftChain | stationary LiftChain ] -> [ moving LiftChain | moving LiftChain ]\n\n[ up LiftChain stationary Lift ] -> [ up LiftChain down Lift ]\n[ down LiftChain stationary Lift ] -> [ down LiftChain up Lift ]\n\nup [ > Lift Falling | LiftCorner ] -> [ Lift Falling | LiftCorner ]\nup [ > Lift | Wall ] -> [ Lift | Wall ]\ndown [ > Lift | Solid ] -> [ Lift | Solid ]\n\n[ stationary Lift moving LiftChain ] -> [ Lift action LiftChain ]\n\n[ action LiftChain | LiftChain ] -> [ action LiftChain | action LiftChain ]\n[ action LiftChain moving Lift ] -> [ action LiftChain Lift ]\n\n[ moving LiftChain ] -> [ LiftChain ]\n\n[ moving Lift stationary Falling ] -> [ moving Lift moving Falling ]\n\nup [ > Falling | Falling ] -> cancel\n\n(Update graphics)\n\nlate [ LiftRope ] -> []\nlate [ LiftGraphic ] -> []\nlate down [ Lift | ] -> [ Lift LiftRope | LiftGraphic ]\nlate up [ LiftRope no LiftCorner | no LiftCorner ] -> [ LiftRope | LiftRope ]\n\nlate down [ Player Ladder no Lift | no Floor ] -> [ PlayerClimbing Ladder | ]\nlate down [ Player RopeL no Lift | no Floor ] -> [ PlayerClimbingL RopeL | ]\nlate down [ Player RopeR no Lift | no Floor ] -> [ PlayerClimbingR RopeR | ]\n\nlate [ PlayerClimbingL no Climbable ] -> [ PlayerL ]\nlate [ PlayerClimbingR no Climbable ] -> [ PlayerR ]\n\n( Gravity)\n\nlate down [ Falling no Climbable | no Floor ] -> again\n\ndown [ stationary Falling no Climbable | no Floor ] -> [ > Falling | ]\n\n(Light)\n\nlate [ Light no LightSource ] -> []\n\nlate right [ LightSource no MirrorUL no MirrorDL | no Light no MirrorUR no MirrorDR ] -> [ LightSource | LightSource2 ]\nlate right [ LightSource2 no Solid | no Light no MirrorUR no MirrorDR ] -> [ LightSource2 | LightSource3 ]\n\nlate right [ LightSource2 Boulder | no Light no MirrorUR no MirrorDR ] -> [ LightSource2 Boulder | LightSource3 ]\n\nlate right [ LightSource3 no Solid | no Light no Mirror ] -> [ LightSource3 | LightR ]\nlate right [ LightSource3 no Solid | MirrorUL ] -> [ LightSource3 | MirrorUL LightU ]\nlate right [ LightSource3 no Solid | MirrorDL ] -> [ LightSource3 | MirrorDL LightD ]\n\nlate left [ LightL | no Light no Solid ] -> [ LightL | LightL ]\n+ late right [ LightR | no Light no Solid ] -> [ LightR | LightR ]\n+ late up [ LightU | no Light no Solid ] -> [ LightU | LightU ]\n+ late down [ LightD | no Light no Solid ] -> [ LightD | LightD ]\n\n+ late left [ LightL | MirrorUR ] -> [ LightL | MirrorUR LightU ]\n+ late left [ LightL | MirrorDR ] -> [ LightL | MirrorDR LightD ]\n+ late right [ LightR | MirrorUL ] -> [ LightR | MirrorUL LightU ]\n+ late right [ LightR | MirrorDL ] -> [ LightR | MirrorDL LightD ]\n+ late up [ LightU | MirrorDL ] -> [ LightU | MirrorDL LightL ]\n+ late up [ LightU | MirrorDR ] -> [ LightU | MirrorDR LightR ]\n+ late down [ LightD | MirrorUL ] -> [ LightD | MirrorUL LightL ]\n+ late down [ LightD | MirrorUR ] -> [ LightD | MirrorUR LightR ]\n\n+ late left [ LightL | Boulder ] -> [ LightL | Boulder LightL ]\n+ late right [ LightR | Boulder ] -> [ LightR | Boulder LightL ]\n+ late up [ LightU | Boulder ] -> [ LightU | Boulder LightL ]\n+ late down [ LightD | Boulder ] -> [ LightD | Boulder LightL ]\n\n+ late left [ Boulder Light | no Light no Solid ] -> [ Boulder Light | LightL ]\n+ late right [ Boulder Light | no Light no Solid ] -> [ Boulder Light | LightR ]\n+ late up [ Boulder Light | no Light no Solid ] -> [ Boulder Light | LightU ]\n+ late down [ Boulder Light | no Light no Solid ] -> [ Boulder Light | LightD ]\n\nlate [ Boulder Light | Target ] -> [ Boulder Light | ] again\n\nlate left [ LightL | Target ] -> [ LightL | Target Sky ]\nlate right [ LightR | Target ] -> [ LightR | Target Sky ]\nlate up [ LightU | Target ] -> [ LightU | Target Sky ]\nlate down [ LightD | Target ] -> [ LightD | Target Sky ]\n\nlate down [ Target Sky | no Target ] -> checkpoint\nlate [ Target Sky ] -> [] again\n\n==============\nWINCONDITIONS\n==============\n\nall boulder on sky\nall player on sky\n\n=======\nLEVELS\n=======\n\n(~~~~~~~~~~~~~~~~\n~~~~##########~~\n~~~###o..o#####~\n~~~###....######\n~~~!p.l...######\n####-t----##o.o#\n###..u..`l.*l..#\n###--t----t----#\n#u*..u./..u....#\n#u##########---#\n#u##########...#\n#u.............#\n#u............l#\n#u.............#\n################)\n\n~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###....#######\n~~!..pl...#######\n#####t----###o.o#\n####.u..`l......#\n###..t----t-%---#\n#u*..u./..u.*l..#\n#u#--#######--t-#\n#uo..o###.....u.#\n#ul...`.....\\.ul#\n#t--t--t--t---t.#\n#u**u..u..u...u.#\n##-t--###########\n##.u...##o...o###\n#..u............#\n#..u'l.t-+-t....#\n#########*###-t##\n####.....*....u.#\n####..b..*...lu.#\n####.t-t.*....u.#\n#################\n\n(~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###....#######\n~~~!p.l...#######\n#####t----###o.o#\n####.u..`l......#\n###..t----t-----#\n#u*..u./..u.*l..#\n#u#--#######--t-#\n#uo..o###.....u.#\n#ul...`.....\\.ul#\n#t--t--t--t---t.#\n#u**u..u..u...u.#\n##-t--###########\n##.u...##########\n#..u.l..........#\n#..u....b..'..\\.#\n#################\n\n\n~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###....#######\n~~~!..l.`.#######\n#####t----###o.o#\n####.u..\\l..`.pl#\n###..t----t-----#\n#u...u../.u.....#\n#u#--#######--t-#\n#uo..o###.....u.#\n#ul...........u.#\n#t--t--t--t---t.#\n#u**u..u..u..lu.#\n##-t--###########\n##.u...##o....o##\n#..u.....l......#\n#..u'l.t---t....#\n#########*###t-##\n######...*...u..#\n######...*...u..#\n######.b.*...ul.#\n#################\n\n~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###....#######\n~~~!..l.`.#######\n#####t----###o.o#\n####.u..\\l..`...#\n###..t----t-----#\n#u...u....u..l..#\n#u#--#######--t-#\n#uo..o###.....u.#\n#ul...........ul#\n#t--t--t--t---t.#\n#u..u..u..u./.u.#\n##-t--###########\n##.u...##o....o##\n#..u.....l......#\n#..u'l.t---t....#\n#########*###t-##\n######...*...u..#\n######...*...u..#\n######.b.*...ul.#\n#################\n\n~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###l...#######\n~~~!....`.#######\n#####t----###o.o#\n####.u.........l#\n###..t---+t-----#\n#u..'u../.u.....#\n#u#--#######--t-#\n#uo..o###.....u.#\n#u...l........u.#\n#t--t--t--t---t.#\n#u..u..u..u..lu.#\n##-t--###########\n##.u...##o...o###\n#..u............#\n#.lu\\..t-+-t...`#\n#########.###-t##\n####..........u.#\n####..b......lu.#\n####.t-t...p..u.#\n#################)\n\n\n\n(````````````````\n````````````````\n`````!``````````\n#####[##########\n#####[#o..o#####\n#####[#...bu####\n####.[ul--lu####\n####.pu.\\..u####\n################)\n\nmessage Congrats! Thanks for playing :)\n\n",[2,2,2,3,3,3,3,3,0,0,3,3,3,2,2,3,3,2,1,1,1,1,1,1,0,0,1,1,1,2,3,3,3,2,2,1,1,3,3,0,0,0,2,1,1,1,3,3,3,0,0,1,1,1,2,2,1,2,2,3,1],"background sky:0,0,0,0,0,background grass3 wall:1,background wall:2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,0,0,0,0,0,1,2,2,background ladder:3,3,3,\n3,background ladder shelf:4,3,2,2,background:5,5,2,2,2,2,2,0,0,0,0,background lightsource seentarget sky:6,\n1,2,2,background target:7,2,background liftcorner:8,background lift liftrope:9,background liftgraphic shelf:10,7,background shelf:11,5,5,5,2,2,2,2,\n2,0,0,1,2,background lightsource2:12,2,2,5,5,11,background liftropeh:13,5,11,7,4,3,\n3,3,2,2,2,2,2,0,background grass2 wall:14,2,2,background lightsource3:15,2,5,5,background mirrordl:16,11,\n13,5,4,3,11,5,5,background mirrordr:17,2,5,5,5,2,0,14,2,2,\nbackground lightr:18,4,background ladder playerl:19,4,3,2,8,background liftrope:20,background liftrope shelf:21,20,21,20,20,9,background liftgraphic wall:22,5,5,\n4,2,0,background grass1 wall:23,8,20,background liftrope lightr:24,21,9,10,5,2,2,16,11,5,2,\n5,5,5,2,5,background boulder:25,11,2,0,14,13,5,18,11,5,11,5,\n2,2,5,4,3,2,2,5,4,2,5,5,4,2,0,23,13,\n5,18,11,5,11,5,2,2,5,11,5,2,2,5,11,2,5,\n5,5,2,0,1,8,20,background lift liftrope lightr:26,10,5,11,5,2,5,5,11,5,\n2,8,20,background lift liftrope shelf:27,background liftgraphic target:28,7,7,7,2,0,14,2,2,2,2,5,4,\n3,2,5,5,4,3,2,13,5,11,2,5,5,5,2,0,23,\n2,2,2,2,5,11,background mirrorul:29,2,5,5,11,5,2,13,5,4,2,\n5,5,5,2,0,1,2,2,2,2,5,background shelf target:30,7,11,5,background mirrorur:31,11,\n5,2,13,5,5,2,5,5,5,2,0,23,2,2,2,8,20,\n21,9,10,5,5,11,5,2,8,20,20,21,20,9,background liftgraphic:32,2,0,\n0,1,2,2,13,5,11,5,4,3,3,4,3,2,2,5,5,\n4,3,3,3,2,0,0,0,23,2,8,20,21,20,21,20,9,\n32,5,2,2,5,5,2,5,5,5,2,0,0,0,1,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n",0,"1627777767719.7332"] + ["title You're Pulleying My Leg\nauthor Alan Hazelden\nhomepage www.draknek.org\n\nrun_rules_on_level_start\n\nagain_interval 0.1\n\n(verbose_logging)\n\nzoomscreen 17x13\n\nnoaction\n\n========\nOBJECTS\n========\n\nSky\nblue\n\nWall\n#8a5c23 #805520 #966426\n00001\n01020\n00000\n20100\n00000\n\nBackground\nDarkBrown\n\nGrass1\nGreen\n00000\n.....\n.....\n.....\n.....\n\nGrass2\nGreen\n00000\n....0\n.....\n.....\n.....\n\nGrass3\nGreen\n00000\n0....\n.....\n.....\n.....\n\nPlayerL\n#3c8ee7 #e6e4d5\n..1..\n.00..\n..0..\n.00..\n.0.0.\n\nPlayerR\n#3c8ee7 #e6e4d5\n..1..\n..00.\n..0..\n..00.\n.0.0.\n\nPlayerClimbing\n#3c8ee7 #e6e4d5\n..1..\n.000.\n..0..\n..0..\n.0.0.\n\nPlayerClimbingL\n#3c8ee7 #e6e4d5\n.1...\n00...\n.0...\n00...\n0....\n\nPlayerClimbingR\n#3c8ee7 #e6e4d5\n...1.\n...00\n...0.\n...0.\n....0\n\nLiftCorner\nGrey Yellow\n.000.\n00000\n00100\n00000\n.000.\n\nLiftRope\n#d97d3c #d9903c\n..0..\n..0..\n..1..\n..0..\n..0..\n\nLiftRopeH\n#d97d3c #d9903c\n.....\n.....\n00100\n.....\n.....\n\nLift\ntransparent\n\nLiftGraphic\nBlack\n00000\n.....\n.....\n.....\n.....\n\nShelf\n#8a5c23 #f4c56a\n00000\n..1..\n.....\n.....\n.....\n\nLadder\n#d97d3c #f4c56a\n.0.0.\n.010.\n.0.0.\n.010.\n.0.0.\n\nRopeL\n#d97d3c #d9903c\n0....\n0....\n1....\n0....\n0....\n\nRopeR\n#d97d3c #d9903c\n....0\n....0\n....1\n....0\n....0\n\n(Boulder\n#1b1207 #30200c #2c190a\n.100.\n00200\n00000\n20010\n.000.)\n\nBoulder\n#be2633 #eb8931 #732930\n.000.\n01100\n01000\n00002\n.022.\n\n(Dark0_odd\ntransparent\n\nDark0_even\ntransparent\n\nDark1_odd\ntransparent\n\nDark1_even\ntransparent\n\nDark2_odd\ntransparent\n\nDark2_even\ntransparent\n\nDark3_odd\nblack\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nDark3_even\nblack\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\nDark4_odd\nblack\n\nDark4_even\nblack\n\nDark5\nblack\n\nDarkPending\ntransparent)\n\nLightSource\ntransparent\n\nLightSource2\n#1d57f7 #3164ea #4471dd #587ed0 #6c8bc3\n01234\n01234\n01234\n01234\n01234\n\nLightSource3\n#7f97b6 #93a5aa #a7b19c #bbbf90 #cfcc83\n01234\n01234\n01234\n01234\n01234\n\nLightL\n#f4e46a\n\nLightR\n#f4e46a\n\nLightU\n#f4e46a\n\nLightD\n#f4e46a\n\n(LightBlockedL\n#f4e46a\n...00\n...00\n...00\n...00\n...00\n\nLightBlockedR\n#f4e46a\n00...\n00...\n00...\n00...\n00...\n\nLightBlockedU\n#f4e46a\n.....\n.....\n.....\n00000\n00000\n\nLightBlockedD\n#f4e46a\n00000\n00000\n.....\n.....\n.....)\n\nMirrorUL\n#e6e4d5 #909090 #4e5159\n....0\n...01\n..011\n.0111\n01112\n\nMirrorUR\n#e6e4d5 #909090 #4e5159\n0....\n10...\n110..\n1110.\n21110\n\nMirrorDL\n#e6e4d5 #909090 #4e5159\n01111\n.0111\n..011\n...01\n22222\n\nMirrorDR\n#e6e4d5 #909090 #4e5159\n11110\n1110.\n110..\n10...\n22222\n\nTarget\n#f4e46a #e6e4d5 #909090\n11211\n10001\n20002\n10001\n11211\n\nSeenMirror\ntransparent\n\nSeenTarget\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n~ = Sky\no = LiftCorner\nL = Lift\nU = Ladder\nB = Boulder\n[ = RopeL\n] = RopeR\n/ = MirrorUL\n\\ = MirrorUR\n` = MirrorDL\n' = MirrorDR\n- = Shelf\nT = Shelf and Ladder\n+ = Lift and Shelf\n* = Target\np = PlayerR\n% = Shelf and Target\n\nPlayer = PlayerL or PlayerR or PlayerClimbing or PlayerClimbingL or PlayerClimbingR\n\nGrass = Grass1 or Grass2 or Grass3\n\nLiftChain = LiftRope or LiftRopeH or LiftCorner\n\nMirror = MirrorUL or MirrorUR or MirrorDL or MirrorDR\n\nFalling = Player or Boulder or Mirror\n\nPushable = Boulder or Mirror\n\nSolid = Wall or Boulder or Mirror or Target\n\nFloor = Solid or LiftGraphic or Shelf or Target\n\nClimbable = Ladder or RopeL or RopeR\n\n\n! = LightSource and Sky and SeenMirror and SeenTarget\n(! = LightSource and Dark0_even and Sky\n\nDarkness = Dark0_even or Dark0_odd or Dark1_even or Dark1_odd or Dark2_even or Dark2_odd or Dark3_even or Dark3_odd or Dark4_even or Dark4_odd or Dark5\n\nDark1 = Dark1_even or Dark1_odd\nDark2 = Dark2_even or Dark2_odd)\n\n(LightBlocked = LightBlockedL or LightBlockedR or LightBlockedU or LightBlockedD)\n\nLight = LightSource or LightSource2 or LightSource3 or LightL or LightR or LightU or LightD\n\n\n=======\nSOUNDS\n=======\n\nEndLevel 55891508\nPlayer Move 82426907\nLift Move 47466509\nMirror Move 62036907\nBoulder Move 62036907\nTarget Destroy 38934902\n\n(16126909)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nLight\nSky\nLift, Wall\nShelf\nLiftRope\nClimbable\nBoulder, Mirror, Target\nLiftGraphic\nGrass, LiftCorner, LiftRopeH\nPlayer\nSeenMirror\nSeenTarget\n(Darkness\nDarkPending)\n\n======\nRULES\n======\n\n(Observations)\n\nhorizontal [ Player | MirrorUL ] [ SeenMirror ] -> [ Player | MirrorUL ] [] message A massive angled mirror, sloping towards the cave ceiling\nhorizontal [ Player | MirrorDL ] [ SeenMirror ] -> [ Player | MirrorDL ] [] message A massive angled mirror, sloping towards the cave floor\nhorizontal [ Player | Target ] [ SeenTarget ] -> [ Player | Target ] [] message A large stone block with an engraved image of the sun\n\nlate [ Player | MirrorUL ] [ SeenMirror ] -> again\nlate [ Player | MirrorDL ] [ SeenMirror ] -> again\nlate [ Player | Target ] [ SeenTarget ] -> again\n\n(Init)\n\ndown [ Sky | Wall no Grass ] -> [ Sky | Wall random Grass ]\n\nright [ LiftCorner | no LiftRopeH no Wall | ... | LiftCorner ] -> [ LiftCorner | LiftRopeH | ... | LiftCorner ]\nright [ LiftRopeH | no LiftRopeH no Wall | ... | LiftCorner ] -> [ LiftRopeH | LiftRopeH | ... | LiftCorner ]\n\n(Darkness: can be commented out easily)\n\n([ Darkness no Sky ] -> [])\n\n([ Dark0_even | no Wall no Darkness ] -> [ Dark0_even | Dark0_odd ]\n+ [ Dark0_odd | no Wall no Darkness ] -> [ Dark0_odd | Dark0_even ]\n\n[ Dark0_even | no Darkness ] -> [ Dark0_even | Dark1_odd ]\n[ Dark0_odd | no Darkness ] -> [ Dark0_odd | Dark1_even ]\n\n[ Dark1 | no Darkness no DarkPending ] -> [ Dark1 | DarkPending ]\n\nstartloop\nrandom [ DarkPending no Darkness ] -> [ action DarkPending ]\n\nrandom [ action DarkPending | stationary Dark1 no DarkPending ] -> [ action DarkPending | action Dark1 ]\n\n[ action DarkPending | stationary Dark1_even no DarkPending ] -> [ Dark1_odd DarkPending | Dark1_even ]\n[ action DarkPending | stationary Dark1_odd no DarkPending ] -> [ Dark1_even DarkPending | Dark1_odd ]\n\n[ action DarkPending ] -> []\n[ action Dark1 ] -> [ Dark1 ]\nendloop\n\n[ DarkPending ] -> []\n\n[ Dark1_even | no Darkness ] -> [ Dark1_even | Dark2_odd ]\n[ Dark1_odd | no Darkness ] -> [ Dark1_odd | Dark2_even ]\n\n[ Dark2_even | no Darkness ] -> [ Dark2_even | Dark3_odd ]\n[ Dark2_odd | no Darkness ] -> [ Dark2_odd | Dark3_even ]\n\n[ Dark3_even | no Darkness ] -> [ Dark3_even | Dark4_odd ]\n[ Dark3_odd | no Darkness ] -> [ Dark3_odd | Dark4_even ]\n\n[ Dark4_even | no Darkness ] -> [ Dark4_even | Dark5 ]\n[ Dark4_odd | no Darkness ] -> [ Dark4_odd | Dark5 ]\n\n[ Dark5 | no Darkness ] -> [ Dark5 | Dark5 ])\n\n(Movement)\n\nright [ Solid | < Player | LightSource ] -> [ Solid | Player | LightSource ]\n\ndown [ right PlayerClimbingL | Floor ] -> [ PlayerR | Floor ]\ndown [ left PlayerClimbingR | Floor ] -> [ PlayerL | Floor ]\n\n[ left Player ] -> [ left PlayerL ]\n[ right Player ] -> [ right PlayerR ]\n\nleft [ > Player RopeL | Wall ] -> [ PlayerClimbingL RopeL | Wall ]\nright [ > Player RopeR | Wall ] -> [ PlayerClimbingR RopeR | Wall ]\n\n[ > Player | Wall ] -> cancel\n[ > Player | Target ] -> cancel\n\n[ up Player no Lift no Climbable ] -> [ Player ]\ndown [ > Player no Lift no Climbable | no Climbable ] -> [ Player | ]\ndown [ > Player Climbable | Floor no Climbable ] -> cancel\n\nup [ > Player Climbable no Floor no Lift | no Climbable ] -> [ Player Climbable | ]\n\nhorizontal [ > Player | Pushable ] -> [ > Player | > Pushable ]\nvertical [ > Player | Pushable ] -> cancel\n\n[ > Pushable | Solid ] -> cancel\n\n(Lifts)\n\n[ vertical Player Lift no PlayerClimbing no PlayerClimbingL no PlayerClimbingR ] -> [ Player vertical Lift ]\n\nup [ > Lift Falling | LiftCorner ] -> [ Lift Falling | LiftCorner ]\nup [ > Lift | Wall ] -> [ Lift | Wall ]\ndown [ > Lift | Solid ] -> [ Lift | Solid ]\n\n[ moving Lift | stationary LiftChain ] -> [ moving Lift | moving LiftChain ]\n[ moving LiftChain | stationary LiftChain ] -> [ moving LiftChain | moving LiftChain ]\n\n[ up LiftChain stationary Lift ] -> [ up LiftChain down Lift ]\n[ down LiftChain stationary Lift ] -> [ down LiftChain up Lift ]\n\nup [ > Lift Falling | LiftCorner ] -> [ Lift Falling | LiftCorner ]\nup [ > Lift | Wall ] -> [ Lift | Wall ]\ndown [ > Lift | Solid ] -> [ Lift | Solid ]\n\n[ stationary Lift moving LiftChain ] -> [ Lift action LiftChain ]\n\n[ action LiftChain | LiftChain ] -> [ action LiftChain | action LiftChain ]\n[ action LiftChain moving Lift ] -> [ action LiftChain Lift ]\n\n[ moving LiftChain ] -> [ LiftChain ]\n\n[ moving Lift stationary Falling ] -> [ moving Lift moving Falling ]\n\nup [ > Falling | Falling ] -> cancel\n\n(Update graphics)\n\nlate [ LiftRope ] -> []\nlate [ LiftGraphic ] -> []\nlate down [ Lift | ] -> [ Lift LiftRope | LiftGraphic ]\nlate up [ LiftRope no LiftCorner | no LiftCorner ] -> [ LiftRope | LiftRope ]\n\nlate down [ Player Ladder no Lift | no Floor ] -> [ PlayerClimbing Ladder | ]\nlate down [ Player RopeL no Lift | no Floor ] -> [ PlayerClimbingL RopeL | ]\nlate down [ Player RopeR no Lift | no Floor ] -> [ PlayerClimbingR RopeR | ]\n\nlate [ PlayerClimbingL no Climbable ] -> [ PlayerL ]\nlate [ PlayerClimbingR no Climbable ] -> [ PlayerR ]\n\n( Gravity)\n\nlate down [ Falling no Climbable | no Floor ] -> again\n\ndown [ stationary Falling no Climbable | no Floor ] -> [ > Falling | ]\n\n(Light)\n\nlate [ Light no LightSource ] -> []\n\nlate right [ LightSource no MirrorUL no MirrorDL | no Light no MirrorUR no MirrorDR ] -> [ LightSource | LightSource2 ]\nlate right [ LightSource2 no Solid | no Light no MirrorUR no MirrorDR ] -> [ LightSource2 | LightSource3 ]\n\nlate right [ LightSource2 Boulder | no Light no MirrorUR no MirrorDR ] -> [ LightSource2 Boulder | LightSource3 ]\n\nlate right [ LightSource3 no Solid | no Light no Mirror ] -> [ LightSource3 | LightR ]\nlate right [ LightSource3 no Solid | MirrorUL ] -> [ LightSource3 | MirrorUL LightU ]\nlate right [ LightSource3 no Solid | MirrorDL ] -> [ LightSource3 | MirrorDL LightD ]\n\nlate left [ LightL | no Light no Solid ] -> [ LightL | LightL ]\n+ late right [ LightR | no Light no Solid ] -> [ LightR | LightR ]\n+ late up [ LightU | no Light no Solid ] -> [ LightU | LightU ]\n+ late down [ LightD | no Light no Solid ] -> [ LightD | LightD ]\n\n+ late left [ LightL | MirrorUR ] -> [ LightL | MirrorUR LightU ]\n+ late left [ LightL | MirrorDR ] -> [ LightL | MirrorDR LightD ]\n+ late right [ LightR | MirrorUL ] -> [ LightR | MirrorUL LightU ]\n+ late right [ LightR | MirrorDL ] -> [ LightR | MirrorDL LightD ]\n+ late up [ LightU | MirrorDL ] -> [ LightU | MirrorDL LightL ]\n+ late up [ LightU | MirrorDR ] -> [ LightU | MirrorDR LightR ]\n+ late down [ LightD | MirrorUL ] -> [ LightD | MirrorUL LightL ]\n+ late down [ LightD | MirrorUR ] -> [ LightD | MirrorUR LightR ]\n\n+ late left [ LightL | Boulder ] -> [ LightL | Boulder LightL ]\n+ late right [ LightR | Boulder ] -> [ LightR | Boulder LightL ]\n+ late up [ LightU | Boulder ] -> [ LightU | Boulder LightL ]\n+ late down [ LightD | Boulder ] -> [ LightD | Boulder LightL ]\n\n+ late left [ Boulder Light | no Light no Solid ] -> [ Boulder Light | LightL ]\n+ late right [ Boulder Light | no Light no Solid ] -> [ Boulder Light | LightR ]\n+ late up [ Boulder Light | no Light no Solid ] -> [ Boulder Light | LightU ]\n+ late down [ Boulder Light | no Light no Solid ] -> [ Boulder Light | LightD ]\n\nlate [ Boulder Light | Target ] -> [ Boulder Light | ] again\n\nlate left [ LightL | Target ] -> [ LightL | Target Sky ]\nlate right [ LightR | Target ] -> [ LightR | Target Sky ]\nlate up [ LightU | Target ] -> [ LightU | Target Sky ]\nlate down [ LightD | Target ] -> [ LightD | Target Sky ]\n\nlate down [ Target Sky | no Target ] -> checkpoint\nlate [ Target Sky ] -> [] again\n\n==============\nWINCONDITIONS\n==============\n\nall boulder on sky\nall player on sky\n\n=======\nLEVELS\n=======\n\n(~~~~~~~~~~~~~~~~\n~~~~##########~~\n~~~###o..o#####~\n~~~###....######\n~~~!p.l...######\n####-t----##o.o#\n###..u..`l.*l..#\n###--t----t----#\n#u*..u./..u....#\n#u##########---#\n#u##########...#\n#u.............#\n#u............l#\n#u.............#\n################)\n\n~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###....#######\n~~!..pl...#######\n#####t----###o.o#\n####.u..`l......#\n###..t----t-%---#\n#u*..u./..u.*l..#\n#u#--#######--t-#\n#uo..o###.....u.#\n#ul...`.....\\.ul#\n#t--t--t--t---t.#\n#u**u..u..u...u.#\n##-t--###########\n##.u...##o...o###\n#..u............#\n#..u'l.t-+-t....#\n#########*###-t##\n####.....*....u.#\n####..b..*...lu.#\n####.t-t.*....u.#\n#################\n\n(~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###....#######\n~~~!p.l...#######\n#####t----###o.o#\n####.u..`l......#\n###..t----t-----#\n#u*..u./..u.*l..#\n#u#--#######--t-#\n#uo..o###.....u.#\n#ul...`.....\\.ul#\n#t--t--t--t---t.#\n#u**u..u..u...u.#\n##-t--###########\n##.u...##########\n#..u.l..........#\n#..u....b..'..\\.#\n#################\n\n\n~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###....#######\n~~~!..l.`.#######\n#####t----###o.o#\n####.u..\\l..`.pl#\n###..t----t-----#\n#u...u../.u.....#\n#u#--#######--t-#\n#uo..o###.....u.#\n#ul...........u.#\n#t--t--t--t---t.#\n#u**u..u..u..lu.#\n##-t--###########\n##.u...##o....o##\n#..u.....l......#\n#..u'l.t---t....#\n#########*###t-##\n######...*...u..#\n######...*...u..#\n######.b.*...ul.#\n#################\n\n~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###....#######\n~~~!..l.`.#######\n#####t----###o.o#\n####.u..\\l..`...#\n###..t----t-----#\n#u...u....u..l..#\n#u#--#######--t-#\n#uo..o###.....u.#\n#ul...........ul#\n#t--t--t--t---t.#\n#u..u..u..u./.u.#\n##-t--###########\n##.u...##o....o##\n#..u.....l......#\n#..u'l.t---t....#\n#########*###t-##\n######...*...u..#\n######...*...u..#\n######.b.*...ul.#\n#################\n\n~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###l...#######\n~~~!....`.#######\n#####t----###o.o#\n####.u.........l#\n###..t---+t-----#\n#u..'u../.u.....#\n#u#--#######--t-#\n#uo..o###.....u.#\n#u...l........u.#\n#t--t--t--t---t.#\n#u..u..u..u..lu.#\n##-t--###########\n##.u...##o...o###\n#..u............#\n#.lu\\..t-+-t...`#\n#########.###-t##\n####..........u.#\n####..b......lu.#\n####.t-t...p..u.#\n#################)\n\n\n\n(````````````````\n````````````````\n`````!``````````\n#####[##########\n#####[#o..o#####\n#####[#...bu####\n####.[ul--lu####\n####.pu.\\..u####\n################)\n\nmessage Congrats! Thanks for playing :)\n\n", [2, 2, 2, 3, 3, 3, 3, 3, 0, 0, 3, 3, 3, 2, 2, 3, 3, 2, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 2, 3, 3, 3, 2, 2, 1, 1, 3, 3, 0, 0, 0, 2, 1, 1, 1, 3, 3, 3, 0, 0, 1, 1, 1, 2, 2, 1, 2, 2, 3, 1], "background sky:0,0,0,0,0,background grass3 wall:1,background wall:2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,0,0,0,0,0,1,2,2,background ladder:3,3,3,\n3,background ladder shelf:4,3,2,2,background:5,5,2,2,2,2,2,0,0,0,0,background lightsource seentarget sky:6,\n1,2,2,background target:7,2,background liftcorner:8,background lift liftrope:9,background liftgraphic shelf:10,7,background shelf:11,5,5,5,2,2,2,2,\n2,0,0,1,2,background lightsource2:12,2,2,5,5,11,background liftropeh:13,5,11,7,4,3,\n3,3,2,2,2,2,2,0,background grass2 wall:14,2,2,background lightsource3:15,2,5,5,background mirrordl:16,11,\n13,5,4,3,11,5,5,background mirrordr:17,2,5,5,5,2,0,14,2,2,\nbackground lightr:18,4,background ladder playerl:19,4,3,2,8,background liftrope:20,background liftrope shelf:21,20,21,20,20,9,background liftgraphic wall:22,5,5,\n4,2,0,background grass1 wall:23,8,20,background liftrope lightr:24,21,9,10,5,2,2,16,11,5,2,\n5,5,5,2,5,background boulder:25,11,2,0,14,13,5,18,11,5,11,5,\n2,2,5,4,3,2,2,5,4,2,5,5,4,2,0,23,13,\n5,18,11,5,11,5,2,2,5,11,5,2,2,5,11,2,5,\n5,5,2,0,1,8,20,background lift liftrope lightr:26,10,5,11,5,2,5,5,11,5,\n2,8,20,background lift liftrope shelf:27,background liftgraphic target:28,7,7,7,2,0,14,2,2,2,2,5,4,\n3,2,5,5,4,3,2,13,5,11,2,5,5,5,2,0,23,\n2,2,2,2,5,11,background mirrorul:29,2,5,5,11,5,2,13,5,4,2,\n5,5,5,2,0,1,2,2,2,2,5,background shelf target:30,7,11,5,background mirrorur:31,11,\n5,2,13,5,5,2,5,5,5,2,0,23,2,2,2,8,20,\n21,9,10,5,5,11,5,2,8,20,20,21,20,9,background liftgraphic:32,2,0,\n0,1,2,2,13,5,11,5,4,3,3,4,3,2,2,5,5,\n4,3,3,3,2,0,0,0,23,2,8,20,21,20,21,20,9,\n32,5,2,2,5,5,2,5,5,5,2,0,0,0,1,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n", 0, "1627777767719.7332"] ], [ `gallery: beam islands`, - ["title Beam Islands\nauthor mjau\nhomepage http://twitter.com/kamjau\nrun_rules_on_level_start\nrealtime_interval 0.3\ntext_color #f197e9\n(debug)\n\n( for ludum dare 29 )\n\n=========\n OBJECTS\n=========\n\n(\n\t#000000 Black\n\t#df2619 Inactive border \n\t#078ffd Active border\n\t#a27d5b Bridge\n\t#6719ac Dark water\n\t#a13cb7 Light water\n\t#f197e9 Beam water\n\t#606060 Beam under\n\t#f7e26b Player\n\t#ffffff White\n)\n\nAnimate\nTransparent\n\nBgNW1 .\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNE1\n#6719ac #a13cb7\n00000\n00000\n00100\n00000\n00000\n\nBgSW1\n#6719ac #a13cb7\n00000\n00000\n00000\n01000\n00000\n\nBgSE1\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNW2\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNE2\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgSW2\n#6719ac #a13cb7\n00000\n00000\n00000\n01100\n00000\n\nBgSE2\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNW3\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNE3\n#6719ac #a13cb7\n00000\n00000\n01000\n00000\n00000\n\nBgSW3\n#6719ac #a13cb7\n00000\n00000\n00000\n00100\n00000\n\nBgSE3\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNW4\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNE4\n#6719ac #a13cb7\n00000\n00000\n01100\n00000\n00000\n\nBgSW4\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgSE4\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nPlayerTop\n#f7e26b\n.....\n.....\n.....\n.0.0.\n.000.\n\nPlayer\n#f7e26b #000000\n01010\n.000.\n.0.0.\n.....\n.....\n\nIsland #\n#000000\n\nFromBlockIsland\nTransparent\n\nIslandEdgeDetect\nTransparent\n\nIslandInterior\nTransparent\n\nIslandSide\n#000000\n00000\n.....\n.....\n.....\n.....\n\nBeamTop1\n#ffffff #f197e9 #a13cb7\n..2..\n..1..\n..0..\n..1..\n..0..\n\nBeamTop2\n#ffffff #f197e9 #a13cb7\n.....\n..2..\n..1..\n..0..\n..0..\n\nBeam o\n#ffffff #f197e9 #a13cb7\n.101.\n.000.\n.000.\n.000.\n.212.\n\nBeamReflect\n#a13cb7\n..0..\n.....\n.....\n.....\n.....\n\nBridge -\n#000000 #a27d5b\n.....\n.111.\n.101.\n.111.\n.000.\n\nBeamUnder\n#606060\n.....\n..0..\n.000.\n.000.\n.....\n\nPlayerIsland\nTransparent #078ffd\n.....\n.....\n..0..\n.....\n.....\n\nBlockIsland\nTransparent #df2619\n.....\n.....\n..0..\n.....\n.....\n\nIslandEdgeN\nTransparent #df2619\n11111\n.....\n.....\n.....\n.....\n\nPlayerIslandEdgeN\nTransparent #078ffd\n11111\n.....\n.....\n.....\n.....\n\nIslandEdgeS\nTransparent #df2619\n.....\n.....\n.....\n.....\n11111\n\nPlayerIslandEdgeS\nTransparent #078ffd\n.....\n.....\n.....\n.....\n11111\n\nIslandEdgeE\nTransparent #df2619\n....1\n....1\n....1\n....1\n....1\n\nPlayerIslandEdgeE\nTransparent #078ffd\n....1\n....1\n....1\n....1\n....1\n\nIslandEdgeW\nTransparent #df2619\n1....\n1....\n1....\n1....\n1....\n\nPlayerIslandEdgeW\nTransparent #078ffd\n1....\n1....\n1....\n1....\n1....\n\n\nIslandInnerEdgeNW\nTransparent #df2619\n1....\n.....\n.....\n.....\n.....\n\nPlayerIslandInnerEdgeNW\nTransparent #078ffd\n1....\n.....\n.....\n.....\n.....\n\nIslandInnerEdgeNE\nTransparent #df2619\n....1\n.....\n.....\n.....\n.....\n\nPlayerIslandInnerEdgeNE\nTransparent #078ffd\n....1\n.....\n.....\n.....\n.....\n\nIslandInnerEdgeSW\nTransparent #df2619\n.....\n.....\n.....\n.....\n1....\n\nPlayerIslandInnerEdgeSW\nTransparent #078ffd\n.....\n.....\n.....\n.....\n1....\n\nIslandInnerEdgeSE\nTransparent #df2619\n.....\n.....\n.....\n.....\n....1\n\nPlayerIslandInnerEdgeSE\nTransparent #078ffd\n.....\n.....\n.....\n.....\n....1\n\n========\n LEGEND\n========\n\n@ = Player and Island\n\nBackground = BgNW1 or BgNE1 or BgSW1 or BgSE1 or BgNW2 or BgNE2 or BgSW2 or BgSE2 or BgNW3 or BgNE3 or BgSW3 or BgSE3 or BgNW4 or BgNE4 or BgSW4 or BgSE4\n\nIslandEdgeV = IslandEdgeN or IslandEdgeS\nIslandEdgeH = IslandEdgeE or IslandEdgeW\nIslandInnerEdge = IslandInnerEdgeNW or IslandInnerEdgeNE or IslandInnerEdgeSW or IslandInnerEdgeSE\nIslandEdge = IslandEdgeH or IslandEdgeV or IslandInnerEdge or IslandEdgeDetect or IslandInterior\nMovable = Player or Island or IslandEdge or PlayerIsland\nMoveBlock = Island or Bridge\nWalkable = Island or Bridge\nBeamTop = BeamTop1 or BeamTop2\n\nIslandEdgeDetectN = IslandEdgeN or IslandEdgeDetect\nIslandEdgeDetectS = IslandEdgeS or IslandEdgeDetect\nIslandEdgeDetectE = IslandEdgeE or IslandEdgeDetect\nIslandEdgeDetectW = IslandEdgeW or IslandEdgeDetect\n\nCleanup = IslandInnerEdge or BeamTop or BeamUnder or IslandSide or PlayerTop or BeamReflect\n\nFrame2 = BgNW2 or BgNW4\n\n========\n SOUNDS\n========\n\nSFX0 57465701 ( beam )\nSFX1 45881509 ( merge )\nSFX2 70148904 ( can't move )\nSFX3 3171908 ( move )\nEndLevel 94824903\n\n=================\n COLLISIONLAYERS\n=================\n\nBackground\nAnimate\nIslandSide, BeamReflect\nBeam\nIsland, Bridge\nIslandEdgeN, PlayerIslandEdgeN\nIslandEdgeS, PlayerIslandEdgeS\nIslandEdgeE, PlayerIslandEdgeE\nIslandEdgeW, PlayerIslandEdgeW\nIslandInnerEdgeNW, PlayerIslandInnerEdgeNW\nIslandInnerEdgeNE, PlayerIslandInnerEdgeNE\nIslandInnerEdgeSW, PlayerIslandInnerEdgeSW\nIslandInnerEdgeSE, PlayerIslandInnerEdgeSE\nIslandInterior, IslandEdgeDetect\nBeamUnder\nPlayer\nPlayerIsland, BlockIsland, FromBlockIsland\nBeamTop\nPlayerTop\n\n=======\n RULES\n=======\n\n[ no Background ] -> [ BgNW1 ]\ndown [ BgNW1 | BgNW1 ] -> [ BgNW1 | BgSW1 ]\nright [ BgNW1 | BgNW1 ] -> [ BgNW1 | BgNE1 ]\nright [ BgSW1 | BgSW1 ] -> [ BgSW1 | BgSE1 ]\n\n[ stationary Player ][ Background ] -> [ Player ][ Background Animate ]\n[ BgNW1 Animate ] -> [ BgNW2 ]\n[ BgNE1 Animate ] -> [ BgNE2 ]\n[ BgSW1 Animate ] -> [ BgSW2 ]\n[ BgSE1 Animate ] -> [ BgSE2 ]\n[ BgNW2 Animate ] -> [ BgNW3 ]\n[ BgNE2 Animate ] -> [ BgNE3 ]\n[ BgSW2 Animate ] -> [ BgSW3 ]\n[ BgSE2 Animate ] -> [ BgSE3 ]\n[ BgNW3 Animate ] -> [ BgNW4 ]\n[ BgNE3 Animate ] -> [ BgNE4 ]\n[ BgSW3 Animate ] -> [ BgSW4 ]\n[ BgSE3 Animate ] -> [ BgSE4 ]\n[ BgNW4 Animate ] -> [ BgNW1 ]\n[ BgNE4 Animate ] -> [ BgNE1 ]\n[ BgSW4 Animate ] -> [ BgSW1 ]\n[ BgSE4 Animate ] -> [ BgSE1 ]\n\n[ Cleanup ] -> []\n\n( reset player island edges )\n[ PlayerIslandEdgeN ] -> [ IslandEdgeN ]\n[ PlayerIslandEdgeS ] -> [ IslandEdgeS ]\n[ PlayerIslandEdgeE ] -> [ IslandEdgeE ]\n[ PlayerIslandEdgeW ] -> [ IslandEdgeW ]\n[ PlayerIslandInnerEdgeNE ] -> [ IslandInnerEdgeNE ]\n[ PlayerIslandInnerEdgeNW ] -> [ IslandInnerEdgeNW ]\n[ PlayerIslandInnerEdgeSE ] -> [ IslandInnerEdgeSE ]\n[ PlayerIslandInnerEdgeSW ] -> [ IslandInnerEdgeSW ]\n\n( merge )\n[ action Player ][ IslandEdge ] -> [ action Player ][]\n[ action Player ] -> [ Player ] SFX1\n\n( simple movement )\n[ > Player | Walkable ] -> [ | Player Walkable ]\n[ > Player Bridge | no Walkable ] -> [ Player Bridge | ]\n\n( swap island types if player changed islands )\n[ Player Bridge ][ PlayerIsland ] -> [ Player Bridge ][ BlockIsland ]\n[ Player BlockIsland ] -> [ Player FromBlockIsland ]\n[ Player FromBlockIsland ][ BlockIsland ] -> [ Player FromBlockIsland ][ FromBlockIsland ]\n[ Player FromBlockIsland ][ PlayerIsland ] -> [ Player FromBlockIsland ][ BlockIsland ]\n[ FromBlockIsland ] -> []\n\n( beam holes in unoccupied islands )\n[ Beam Island BlockIsland IslandEdge ] -> [ Beam Island BlockIsland ]\n[ Beam Island BlockIsland ] -> [ up Beam ] SFX0\nup [ up Beam | BlockIsland ] -> [ up Beam | BlockIsland IslandEdgeS ]\ndown [ up Beam | BlockIsland ] -> [ up Beam | BlockIsland IslandEdgeN ]\nright [ up Beam | BlockIsland ] -> [ up Beam | BlockIsland IslandEdgeW ]\nleft [ up Beam | BlockIsland ] -> [ up Beam | BlockIsland IslandEdgeE ]\n[ up Beam ] -> [ Beam ]\n\n( edge detection )\n[ Island no IslandEdge ] -> [ Island IslandEdgeN IslandEdgeS IslandEdgeE IslandEdgeW IslandEdgeDetect ]\nup [ IslandEdgeDetect IslandEdgeN | IslandEdgeDetect ] -> [ IslandEdgeDetect | IslandEdgeDetect ]\ndown [ IslandEdgeDetect IslandEdgeS | IslandEdgeDetect ] -> [ IslandEdgeDetect | IslandEdgeDetect ]\nright [ IslandEdgeDetect IslandEdgeE | IslandEdgeDetect ] -> [ IslandEdgeDetect | IslandEdgeDetect ]\nleft [ IslandEdgeDetect IslandEdgeW | IslandEdgeDetect ] -> [ IslandEdgeDetect | IslandEdgeDetect ]\n[ IslandEdgeDetect ] -> [ IslandInterior ]\n\nright [ IslandEdgeN no IslandEdgeE | no IslandEdgeN ] -> [ IslandEdgeN | IslandInnerEdgeNW ]\nleft [ IslandEdgeN no IslandEdgeW | no IslandEdgeN ] -> [ IslandEdgeN | IslandInnerEdgeNE ]\nright [ IslandEdgeS no IslandEdgeE | no IslandEdgeS ] -> [ IslandEdgeS | IslandInnerEdgeSW ]\nleft [ IslandEdgeS no IslandEdgeW | no IslandEdgeS ] -> [ IslandEdgeS | IslandInnerEdgeSE ]\n\n( player island )\n[ Player Island ] -> [ Player Island PlayerIsland ]\n up [ PlayerIsland no IslandEdgeN | Island ] -> [ PlayerIsland | Island PlayerIsland ]\n+ down [ PlayerIsland no IslandEdgeS | Island ] -> [ PlayerIsland | Island PlayerIsland ]\n+ right [ PlayerIsland no IslandEdgeE | Island ] -> [ PlayerIsland | Island PlayerIsland ]\n+ left [ PlayerIsland no IslandEdgeW | Island ] -> [ PlayerIsland | Island PlayerIsland ]\n[ Island no PlayerIsland ] -> [ Island BlockIsland ]\n\n( rigid movement )\n[ > Player ][ PlayerIsland ] -> [ > Player ][ > PlayerIsland ]\n[ > PlayerIsland Island | no MoveBlock ] -> [ > PlayerIsland > Island | ]\n[ < Island | Island no BlockIsland ] -> [ < Island | < Island ]\n[ stationary Island PlayerIsland ][ moving Player ] -> [ Island PlayerIsland ][ stationary Player ] SFX2\n[ stationary Island PlayerIsland ][ moving Movable ] -> [ Island stationary PlayerIsland ][ stationary Movable ]\n\n[ > PlayerIsland IslandEdge ] -> [ > PlayerIsland > IslandEdge ]\n\n( highlight player island edges )\n[ PlayerIsland IslandEdgeN ] -> [ PlayerIsland PlayerIslandEdgeN ]\n[ PlayerIsland IslandEdgeS ] -> [ PlayerIsland PlayerIslandEdgeS ]\n[ PlayerIsland IslandEdgeE ] -> [ PlayerIsland PlayerIslandEdgeE ]\n[ PlayerIsland IslandEdgeW ] -> [ PlayerIsland PlayerIslandEdgeW ]\n[ PlayerIsland IslandInnerEdgeNE ] -> [ PlayerIsland PlayerIslandInnerEdgeNE ]\n[ PlayerIsland IslandInnerEdgeNW ] -> [ PlayerIsland PlayerIslandInnerEdgeNW ]\n[ PlayerIsland IslandInnerEdgeSE ] -> [ PlayerIsland PlayerIslandInnerEdgeSE ]\n[ PlayerIsland IslandInnerEdgeSW ] -> [ PlayerIsland PlayerIslandInnerEdgeSW ]\n\n( fx )\n[ > Island | no Island ] -> [ | Island ] SFX3\nup [ Beam no Island | ] -> [ Beam | BeamTop1 ]\ndown [ Beam | ] -> [ Beam | BeamReflect ]\n[ Beam Island ] -> [ Beam Island BeamUnder ]\ndown [ Island | ] -> [ Island | IslandSide ]\n[ > Player | Walkable ] -> [ | Player Walkable ]\nup [ Player | ] -> [ Player | PlayerTop ]\n[ BeamTop1 ][ Frame2 ] -> [ BeamTop2 ][ Frame2 ]\n\n===============\n WINCONDITIONS\n===============\n\nall Beam on BeamUnder\n\n======== \n LEVELS\n========\n\nmessage cover all beams\n\n(ok)\n...........\n...........\n...........\n......o....\n...##..o...\n...@#......\n...........\n...........\n\nmessage unattended beams are dangerous\n\n(ok)\n..............\n.......###....\n......#####...\n......#..##...\n.........##...\n...#####.##...\n..-#@#o#.##...\n...#####.##...\n.........##...\n.......###o...\n..............\n..............\n.........o....\n..............\n\nmessage merge adjacent platforms with X\n\n(ok)\n.............\n.............\n......o......\n...o...#.o...\n.......#.....\n...#..@#.....\n...##..#..#..\n.......-###..\n.............\n.............\n\nmessage good luck!\n\n(ok)\n...........\n...........\n.....-.....\n....###....\n...o.@.o...\n....###....\n.....-.....\n...........\n...........\n\n(ok)\n...............\n...............\n.......-.......\n..o............\n......###......\n....-.#o#.-....\n......##@......\n...........##..\n.......-.......\n...............\n...............\n\n(ok)\n..................\n..............###.\n....o...........#.\n.-..........##..#.\n............##..#.\n........#@......#.\n......#######.....\n.....-..#....-....\n...o..............\n.....-............\n..................\n\n(ok)\n...-.....-...\n.....o.o.....\n....-.-.-....\n.............\n.............\n........###..\n..###.o..##..\n..#@#........\n..###........\n.............\n\n(ok)\n............\n.....#......\n...o###.o...\n...#-#.-.#..\n..###.#.###.\n...#.#@#.#..\n....-.#-....\n...o.#..o...\n....###.....\n.....#......\n............\n\nmessage congratulations! you win!\n\n",["tick","tick","tick",3,"tick",3,"tick",1,"tick",0,"tick",3,"tick",3,"tick",2,"tick",2,"tick","tick",1,"tick","tick","tick",1,"tick","tick",2,"tick","tick",3,"tick",0,"tick",0,0,"tick",0,0,"tick",1,"tick",1,1,"tick",1,1,"tick",1,2,"tick",3,"tick",3,3,"tick",2,"tick",2,"tick","tick","tick","tick","tick",3,"tick",3,"tick","tick",2,1,"tick",1,"tick","tick","tick","tick","tick",0,"tick",0,"tick",0,0,"tick","tick","tick"],"bgnw3:0,bgsw3:1,0,1,0,1,0,1,0,1,bgne3:2,bgse3:3,2,\n3,2,3,2,3,2,3,0,1,0,1,0,1,\n0,1,0,1,2,3,beamtop1 bgne3:4,beam bgse3:5,beamreflect bgne3:6,bgse3 blockisland island islandedgee islandedgen islandedgew islandinterior:7,bgne3 blockisland island islandedges islandedgew islandinneredgene islandinterior islandside:8,bgse3 islandside:9,2,\n3,0,1,bgnw3 island islandinterior playerisland playerislandedgen playerislandedges playerislandedgew:10,bgsw3 islandside:11,0,1,bgnw3 blockisland island islandedgee islandedgen islandedges islandinterior:12,11,0,1,2,3,\nbgne3 island islandinterior playerisland playerislandedgen playerislandedges:13,9,2,3,2,3,2,3,bgnw3 playertop:14,bgsw3 island islandinterior player playerisland playerislandedgee playerislandedgen playerislandedgew:15,beam beamunder bgnw3 island islandinterior islandside playerisland playerislandedgee playerislandedges playerislandinneredgenw:16,11,0,\nbgsw3 blockisland island islandedgen islandedges islandedgew islandinterior:17,bgnw3 islandside:18,1,0,1,2,3,2,7,bgne3 blockisland island islandedgee islandedgew islandinterior islandside:19,bgse3 blockisland island islandedgee islandinneredgenw islandinneredgesw islandinterior islandside:20,bgne3 blockisland island islandedgee islandedges islandedgew islandinterior islandside:21,bgse3 bridge islandside:22,\n2,3,0,1,0,1,0,1,0,1,0,1,2,\n3,4,5,6,3,2,3,2,3,0,1,0,1,\n0,1,0,1,0,1,2,3,2,3,2,3,2,\n3,2,3,0,1,0,1,0,1,0,1,0,1,\n",5,"1627777817083.2576"] + ["title Beam Islands\nauthor mjau\nhomepage http://twitter.com/kamjau\nrun_rules_on_level_start\nrealtime_interval 0.3\ntext_color #f197e9\n(debug)\n\n( for ludum dare 29 )\n\n=========\n OBJECTS\n=========\n\n(\n\t#000000 Black\n\t#df2619 Inactive border \n\t#078ffd Active border\n\t#a27d5b Bridge\n\t#6719ac Dark water\n\t#a13cb7 Light water\n\t#f197e9 Beam water\n\t#606060 Beam under\n\t#f7e26b Player\n\t#ffffff White\n)\n\nAnimate\nTransparent\n\nBgNW1 .\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNE1\n#6719ac #a13cb7\n00000\n00000\n00100\n00000\n00000\n\nBgSW1\n#6719ac #a13cb7\n00000\n00000\n00000\n01000\n00000\n\nBgSE1\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNW2\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNE2\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgSW2\n#6719ac #a13cb7\n00000\n00000\n00000\n01100\n00000\n\nBgSE2\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNW3\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNE3\n#6719ac #a13cb7\n00000\n00000\n01000\n00000\n00000\n\nBgSW3\n#6719ac #a13cb7\n00000\n00000\n00000\n00100\n00000\n\nBgSE3\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNW4\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNE4\n#6719ac #a13cb7\n00000\n00000\n01100\n00000\n00000\n\nBgSW4\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgSE4\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nPlayerTop\n#f7e26b\n.....\n.....\n.....\n.0.0.\n.000.\n\nPlayer\n#f7e26b #000000\n01010\n.000.\n.0.0.\n.....\n.....\n\nIsland #\n#000000\n\nFromBlockIsland\nTransparent\n\nIslandEdgeDetect\nTransparent\n\nIslandInterior\nTransparent\n\nIslandSide\n#000000\n00000\n.....\n.....\n.....\n.....\n\nBeamTop1\n#ffffff #f197e9 #a13cb7\n..2..\n..1..\n..0..\n..1..\n..0..\n\nBeamTop2\n#ffffff #f197e9 #a13cb7\n.....\n..2..\n..1..\n..0..\n..0..\n\nBeam o\n#ffffff #f197e9 #a13cb7\n.101.\n.000.\n.000.\n.000.\n.212.\n\nBeamReflect\n#a13cb7\n..0..\n.....\n.....\n.....\n.....\n\nBridge -\n#000000 #a27d5b\n.....\n.111.\n.101.\n.111.\n.000.\n\nBeamUnder\n#606060\n.....\n..0..\n.000.\n.000.\n.....\n\nPlayerIsland\nTransparent #078ffd\n.....\n.....\n..0..\n.....\n.....\n\nBlockIsland\nTransparent #df2619\n.....\n.....\n..0..\n.....\n.....\n\nIslandEdgeN\nTransparent #df2619\n11111\n.....\n.....\n.....\n.....\n\nPlayerIslandEdgeN\nTransparent #078ffd\n11111\n.....\n.....\n.....\n.....\n\nIslandEdgeS\nTransparent #df2619\n.....\n.....\n.....\n.....\n11111\n\nPlayerIslandEdgeS\nTransparent #078ffd\n.....\n.....\n.....\n.....\n11111\n\nIslandEdgeE\nTransparent #df2619\n....1\n....1\n....1\n....1\n....1\n\nPlayerIslandEdgeE\nTransparent #078ffd\n....1\n....1\n....1\n....1\n....1\n\nIslandEdgeW\nTransparent #df2619\n1....\n1....\n1....\n1....\n1....\n\nPlayerIslandEdgeW\nTransparent #078ffd\n1....\n1....\n1....\n1....\n1....\n\n\nIslandInnerEdgeNW\nTransparent #df2619\n1....\n.....\n.....\n.....\n.....\n\nPlayerIslandInnerEdgeNW\nTransparent #078ffd\n1....\n.....\n.....\n.....\n.....\n\nIslandInnerEdgeNE\nTransparent #df2619\n....1\n.....\n.....\n.....\n.....\n\nPlayerIslandInnerEdgeNE\nTransparent #078ffd\n....1\n.....\n.....\n.....\n.....\n\nIslandInnerEdgeSW\nTransparent #df2619\n.....\n.....\n.....\n.....\n1....\n\nPlayerIslandInnerEdgeSW\nTransparent #078ffd\n.....\n.....\n.....\n.....\n1....\n\nIslandInnerEdgeSE\nTransparent #df2619\n.....\n.....\n.....\n.....\n....1\n\nPlayerIslandInnerEdgeSE\nTransparent #078ffd\n.....\n.....\n.....\n.....\n....1\n\n========\n LEGEND\n========\n\n@ = Player and Island\n\nBackground = BgNW1 or BgNE1 or BgSW1 or BgSE1 or BgNW2 or BgNE2 or BgSW2 or BgSE2 or BgNW3 or BgNE3 or BgSW3 or BgSE3 or BgNW4 or BgNE4 or BgSW4 or BgSE4\n\nIslandEdgeV = IslandEdgeN or IslandEdgeS\nIslandEdgeH = IslandEdgeE or IslandEdgeW\nIslandInnerEdge = IslandInnerEdgeNW or IslandInnerEdgeNE or IslandInnerEdgeSW or IslandInnerEdgeSE\nIslandEdge = IslandEdgeH or IslandEdgeV or IslandInnerEdge or IslandEdgeDetect or IslandInterior\nMovable = Player or Island or IslandEdge or PlayerIsland\nMoveBlock = Island or Bridge\nWalkable = Island or Bridge\nBeamTop = BeamTop1 or BeamTop2\n\nIslandEdgeDetectN = IslandEdgeN or IslandEdgeDetect\nIslandEdgeDetectS = IslandEdgeS or IslandEdgeDetect\nIslandEdgeDetectE = IslandEdgeE or IslandEdgeDetect\nIslandEdgeDetectW = IslandEdgeW or IslandEdgeDetect\n\nCleanup = IslandInnerEdge or BeamTop or BeamUnder or IslandSide or PlayerTop or BeamReflect\n\nFrame2 = BgNW2 or BgNW4\n\n========\n SOUNDS\n========\n\nSFX0 57465701 ( beam )\nSFX1 45881509 ( merge )\nSFX2 70148904 ( can't move )\nSFX3 3171908 ( move )\nEndLevel 94824903\n\n=================\n COLLISIONLAYERS\n=================\n\nBackground\nAnimate\nIslandSide, BeamReflect\nBeam\nIsland, Bridge\nIslandEdgeN, PlayerIslandEdgeN\nIslandEdgeS, PlayerIslandEdgeS\nIslandEdgeE, PlayerIslandEdgeE\nIslandEdgeW, PlayerIslandEdgeW\nIslandInnerEdgeNW, PlayerIslandInnerEdgeNW\nIslandInnerEdgeNE, PlayerIslandInnerEdgeNE\nIslandInnerEdgeSW, PlayerIslandInnerEdgeSW\nIslandInnerEdgeSE, PlayerIslandInnerEdgeSE\nIslandInterior, IslandEdgeDetect\nBeamUnder\nPlayer\nPlayerIsland, BlockIsland, FromBlockIsland\nBeamTop\nPlayerTop\n\n=======\n RULES\n=======\n\n[ no Background ] -> [ BgNW1 ]\ndown [ BgNW1 | BgNW1 ] -> [ BgNW1 | BgSW1 ]\nright [ BgNW1 | BgNW1 ] -> [ BgNW1 | BgNE1 ]\nright [ BgSW1 | BgSW1 ] -> [ BgSW1 | BgSE1 ]\n\n[ stationary Player ][ Background ] -> [ Player ][ Background Animate ]\n[ BgNW1 Animate ] -> [ BgNW2 ]\n[ BgNE1 Animate ] -> [ BgNE2 ]\n[ BgSW1 Animate ] -> [ BgSW2 ]\n[ BgSE1 Animate ] -> [ BgSE2 ]\n[ BgNW2 Animate ] -> [ BgNW3 ]\n[ BgNE2 Animate ] -> [ BgNE3 ]\n[ BgSW2 Animate ] -> [ BgSW3 ]\n[ BgSE2 Animate ] -> [ BgSE3 ]\n[ BgNW3 Animate ] -> [ BgNW4 ]\n[ BgNE3 Animate ] -> [ BgNE4 ]\n[ BgSW3 Animate ] -> [ BgSW4 ]\n[ BgSE3 Animate ] -> [ BgSE4 ]\n[ BgNW4 Animate ] -> [ BgNW1 ]\n[ BgNE4 Animate ] -> [ BgNE1 ]\n[ BgSW4 Animate ] -> [ BgSW1 ]\n[ BgSE4 Animate ] -> [ BgSE1 ]\n\n[ Cleanup ] -> []\n\n( reset player island edges )\n[ PlayerIslandEdgeN ] -> [ IslandEdgeN ]\n[ PlayerIslandEdgeS ] -> [ IslandEdgeS ]\n[ PlayerIslandEdgeE ] -> [ IslandEdgeE ]\n[ PlayerIslandEdgeW ] -> [ IslandEdgeW ]\n[ PlayerIslandInnerEdgeNE ] -> [ IslandInnerEdgeNE ]\n[ PlayerIslandInnerEdgeNW ] -> [ IslandInnerEdgeNW ]\n[ PlayerIslandInnerEdgeSE ] -> [ IslandInnerEdgeSE ]\n[ PlayerIslandInnerEdgeSW ] -> [ IslandInnerEdgeSW ]\n\n( merge )\n[ action Player ][ IslandEdge ] -> [ action Player ][]\n[ action Player ] -> [ Player ] SFX1\n\n( simple movement )\n[ > Player | Walkable ] -> [ | Player Walkable ]\n[ > Player Bridge | no Walkable ] -> [ Player Bridge | ]\n\n( swap island types if player changed islands )\n[ Player Bridge ][ PlayerIsland ] -> [ Player Bridge ][ BlockIsland ]\n[ Player BlockIsland ] -> [ Player FromBlockIsland ]\n[ Player FromBlockIsland ][ BlockIsland ] -> [ Player FromBlockIsland ][ FromBlockIsland ]\n[ Player FromBlockIsland ][ PlayerIsland ] -> [ Player FromBlockIsland ][ BlockIsland ]\n[ FromBlockIsland ] -> []\n\n( beam holes in unoccupied islands )\n[ Beam Island BlockIsland IslandEdge ] -> [ Beam Island BlockIsland ]\n[ Beam Island BlockIsland ] -> [ up Beam ] SFX0\nup [ up Beam | BlockIsland ] -> [ up Beam | BlockIsland IslandEdgeS ]\ndown [ up Beam | BlockIsland ] -> [ up Beam | BlockIsland IslandEdgeN ]\nright [ up Beam | BlockIsland ] -> [ up Beam | BlockIsland IslandEdgeW ]\nleft [ up Beam | BlockIsland ] -> [ up Beam | BlockIsland IslandEdgeE ]\n[ up Beam ] -> [ Beam ]\n\n( edge detection )\n[ Island no IslandEdge ] -> [ Island IslandEdgeN IslandEdgeS IslandEdgeE IslandEdgeW IslandEdgeDetect ]\nup [ IslandEdgeDetect IslandEdgeN | IslandEdgeDetect ] -> [ IslandEdgeDetect | IslandEdgeDetect ]\ndown [ IslandEdgeDetect IslandEdgeS | IslandEdgeDetect ] -> [ IslandEdgeDetect | IslandEdgeDetect ]\nright [ IslandEdgeDetect IslandEdgeE | IslandEdgeDetect ] -> [ IslandEdgeDetect | IslandEdgeDetect ]\nleft [ IslandEdgeDetect IslandEdgeW | IslandEdgeDetect ] -> [ IslandEdgeDetect | IslandEdgeDetect ]\n[ IslandEdgeDetect ] -> [ IslandInterior ]\n\nright [ IslandEdgeN no IslandEdgeE | no IslandEdgeN ] -> [ IslandEdgeN | IslandInnerEdgeNW ]\nleft [ IslandEdgeN no IslandEdgeW | no IslandEdgeN ] -> [ IslandEdgeN | IslandInnerEdgeNE ]\nright [ IslandEdgeS no IslandEdgeE | no IslandEdgeS ] -> [ IslandEdgeS | IslandInnerEdgeSW ]\nleft [ IslandEdgeS no IslandEdgeW | no IslandEdgeS ] -> [ IslandEdgeS | IslandInnerEdgeSE ]\n\n( player island )\n[ Player Island ] -> [ Player Island PlayerIsland ]\n up [ PlayerIsland no IslandEdgeN | Island ] -> [ PlayerIsland | Island PlayerIsland ]\n+ down [ PlayerIsland no IslandEdgeS | Island ] -> [ PlayerIsland | Island PlayerIsland ]\n+ right [ PlayerIsland no IslandEdgeE | Island ] -> [ PlayerIsland | Island PlayerIsland ]\n+ left [ PlayerIsland no IslandEdgeW | Island ] -> [ PlayerIsland | Island PlayerIsland ]\n[ Island no PlayerIsland ] -> [ Island BlockIsland ]\n\n( rigid movement )\n[ > Player ][ PlayerIsland ] -> [ > Player ][ > PlayerIsland ]\n[ > PlayerIsland Island | no MoveBlock ] -> [ > PlayerIsland > Island | ]\n[ < Island | Island no BlockIsland ] -> [ < Island | < Island ]\n[ stationary Island PlayerIsland ][ moving Player ] -> [ Island PlayerIsland ][ stationary Player ] SFX2\n[ stationary Island PlayerIsland ][ moving Movable ] -> [ Island stationary PlayerIsland ][ stationary Movable ]\n\n[ > PlayerIsland IslandEdge ] -> [ > PlayerIsland > IslandEdge ]\n\n( highlight player island edges )\n[ PlayerIsland IslandEdgeN ] -> [ PlayerIsland PlayerIslandEdgeN ]\n[ PlayerIsland IslandEdgeS ] -> [ PlayerIsland PlayerIslandEdgeS ]\n[ PlayerIsland IslandEdgeE ] -> [ PlayerIsland PlayerIslandEdgeE ]\n[ PlayerIsland IslandEdgeW ] -> [ PlayerIsland PlayerIslandEdgeW ]\n[ PlayerIsland IslandInnerEdgeNE ] -> [ PlayerIsland PlayerIslandInnerEdgeNE ]\n[ PlayerIsland IslandInnerEdgeNW ] -> [ PlayerIsland PlayerIslandInnerEdgeNW ]\n[ PlayerIsland IslandInnerEdgeSE ] -> [ PlayerIsland PlayerIslandInnerEdgeSE ]\n[ PlayerIsland IslandInnerEdgeSW ] -> [ PlayerIsland PlayerIslandInnerEdgeSW ]\n\n( fx )\n[ > Island | no Island ] -> [ | Island ] SFX3\nup [ Beam no Island | ] -> [ Beam | BeamTop1 ]\ndown [ Beam | ] -> [ Beam | BeamReflect ]\n[ Beam Island ] -> [ Beam Island BeamUnder ]\ndown [ Island | ] -> [ Island | IslandSide ]\n[ > Player | Walkable ] -> [ | Player Walkable ]\nup [ Player | ] -> [ Player | PlayerTop ]\n[ BeamTop1 ][ Frame2 ] -> [ BeamTop2 ][ Frame2 ]\n\n===============\n WINCONDITIONS\n===============\n\nall Beam on BeamUnder\n\n======== \n LEVELS\n========\n\nmessage cover all beams\n\n(ok)\n...........\n...........\n...........\n......o....\n...##..o...\n...@#......\n...........\n...........\n\nmessage unattended beams are dangerous\n\n(ok)\n..............\n.......###....\n......#####...\n......#..##...\n.........##...\n...#####.##...\n..-#@#o#.##...\n...#####.##...\n.........##...\n.......###o...\n..............\n..............\n.........o....\n..............\n\nmessage merge adjacent platforms with X\n\n(ok)\n.............\n.............\n......o......\n...o...#.o...\n.......#.....\n...#..@#.....\n...##..#..#..\n.......-###..\n.............\n.............\n\nmessage good luck!\n\n(ok)\n...........\n...........\n.....-.....\n....###....\n...o.@.o...\n....###....\n.....-.....\n...........\n...........\n\n(ok)\n...............\n...............\n.......-.......\n..o............\n......###......\n....-.#o#.-....\n......##@......\n...........##..\n.......-.......\n...............\n...............\n\n(ok)\n..................\n..............###.\n....o...........#.\n.-..........##..#.\n............##..#.\n........#@......#.\n......#######.....\n.....-..#....-....\n...o..............\n.....-............\n..................\n\n(ok)\n...-.....-...\n.....o.o.....\n....-.-.-....\n.............\n.............\n........###..\n..###.o..##..\n..#@#........\n..###........\n.............\n\n(ok)\n............\n.....#......\n...o###.o...\n...#-#.-.#..\n..###.#.###.\n...#.#@#.#..\n....-.#-....\n...o.#..o...\n....###.....\n.....#......\n............\n\nmessage congratulations! you win!\n\n", ["tick", "tick", "tick", 3, "tick", 3, "tick", 1, "tick", 0, "tick", 3, "tick", 3, "tick", 2, "tick", 2, "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", 2, "tick", "tick", 3, "tick", 0, "tick", 0, 0, "tick", 0, 0, "tick", 1, "tick", 1, 1, "tick", 1, 1, "tick", 1, 2, "tick", 3, "tick", 3, 3, "tick", 2, "tick", 2, "tick", "tick", "tick", "tick", "tick", 3, "tick", 3, "tick", "tick", 2, 1, "tick", 1, "tick", "tick", "tick", "tick", "tick", 0, "tick", 0, "tick", 0, 0, "tick", "tick", "tick"], "bgnw3:0,bgsw3:1,0,1,0,1,0,1,0,1,bgne3:2,bgse3:3,2,\n3,2,3,2,3,2,3,0,1,0,1,0,1,\n0,1,0,1,2,3,beamtop1 bgne3:4,beam bgse3:5,beamreflect bgne3:6,bgse3 blockisland island islandedgee islandedgen islandedgew islandinterior:7,bgne3 blockisland island islandedges islandedgew islandinneredgene islandinterior islandside:8,bgse3 islandside:9,2,\n3,0,1,bgnw3 island islandinterior playerisland playerislandedgen playerislandedges playerislandedgew:10,bgsw3 islandside:11,0,1,bgnw3 blockisland island islandedgee islandedgen islandedges islandinterior:12,11,0,1,2,3,\nbgne3 island islandinterior playerisland playerislandedgen playerislandedges:13,9,2,3,2,3,2,3,bgnw3 playertop:14,bgsw3 island islandinterior player playerisland playerislandedgee playerislandedgen playerislandedgew:15,beam beamunder bgnw3 island islandinterior islandside playerisland playerislandedgee playerislandedges playerislandinneredgenw:16,11,0,\nbgsw3 blockisland island islandedgen islandedges islandedgew islandinterior:17,bgnw3 islandside:18,1,0,1,2,3,2,7,bgne3 blockisland island islandedgee islandedgew islandinterior islandside:19,bgse3 blockisland island islandedgee islandinneredgenw islandinneredgesw islandinterior islandside:20,bgne3 blockisland island islandedgee islandedges islandedgew islandinterior islandside:21,bgse3 bridge islandside:22,\n2,3,0,1,0,1,0,1,0,1,0,1,2,\n3,4,5,6,3,2,3,2,3,0,1,0,1,\n0,1,0,1,0,1,2,3,2,3,2,3,2,\n3,2,3,0,1,0,1,0,1,0,1,0,1,\n", 5, "1627777817083.2576"] ], [ `gallery: singleton traffic`, - ["title Singleton Traffic\nauthor Toph Wells\nhomepage www.tophwells.com\nnoaction\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nPlayer\nWhite #ff0 #ff4\n22222\n21112\n21012\n21112\n22222\n\nBackground\nBlack\n\nIndicatorH\n#fa0\n.....\n0...0\n00.00\n0...0\n.....\n\nIndicatorV\n#f80\n.000.\n..0..\n.....\n..0..\n.000.\n\n=======\nLEGEND\n=======\n\n. = Background\no = Player\nIndicator = IndicatorH or IndicatorV\n\n=======\nSOUNDS\n=======\nEndLevel 93613502\nUndo 10562106\nSFX0 11806907\n\n================\nCOLLISIONLAYERS\n================\nBackground\nPlayer\nIndicatorH\nIndicatorV\n\n======\nRULES\n======\n\n[Perpendicular Player|Player] -> [Player|Player]\n\n[> Player|No Player] -> [|Player] SFX0\n\n[No Player|Player|No Player] -> [|Action Player|]\n[Player|Action Player|Player] -> [Player|Player|Player]\n[Action Player][Player] -> [Action Player][Action Player]\n[Stationary Player] -> Win\n[Action Player] -> [Stationary Player] \n\n[Indicator] -> []\nVertical [Player no IndicatorV|Player] -> [Player IndicatorV|Player]\nHorizontal [Player no IndicatorH|Player] -> [Player IndicatorH|Player]\n==============\nWINCONDITIONS\n==============\n=======\nLEVELS\n=======\n\nMessage Tiles can't move horizontally if there's something vertically adjacent.\nMessage Tiles can't move vertically if there's something horizontally adjacent.\nMessage You win when nothing can move.\nMessage 1 OF 3\n\nooooooooooo\no.........o\no.........o\no...ooo...o\no...ooo.o.o\no...ooo...o\no....o....o\no..o.o....o\nooooooooooo\n\nMessage 2 OF 3\n\noooooooooo\no........o\no.oo..o..o\no.....o..o\no........o\no........o\no........o\no........o\no........o\noooooooooo\n\nMessage 3 OF 3\n\noooooooo\no......o\no.o....o\no.o....o\no......o\no....o.o\no.....oo\noooooooo\nMessage 4 OF 3\n\noooooooo\no..o...o\no..o...o\nooo..ooo\no......o\no...o..o\no...o..o\noooooooo\n\nMessage 5 OF 3\n\nooooooooo\no.......o\no.ooooo.o\no.......o\no...o...o\no.......o\nooooooooo\no.......o\no.o.o...o\no.o.....o\no.o.....o\no.......o\nooooooooo\n\nMessage LAST OF 3\n\nooooooooooooo\no......oo...o\no......oo.o.o\no.o.oo..o...o\no.o.....o...o\no.o.........o\no...........o\nooooooooooooo\n",[3,2,2,1,1,3,3,3,3,0,1,2,2,2,2,2,2],"background indicatorh indicatorv player:0,background indicatorv player:1,1,1,1,1,1,1,1,0,\nbackground indicatorh player:2,background:3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,1,0,\n2,3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,1,1,1,0,\n2,3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,3,2,\n0,1,1,1,1,1,1,1,1,0,\n",6,"1627777857936.9624"] + ["title Singleton Traffic\nauthor Toph Wells\nhomepage www.tophwells.com\nnoaction\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nPlayer\nWhite #ff0 #ff4\n22222\n21112\n21012\n21112\n22222\n\nBackground\nBlack\n\nIndicatorH\n#fa0\n.....\n0...0\n00.00\n0...0\n.....\n\nIndicatorV\n#f80\n.000.\n..0..\n.....\n..0..\n.000.\n\n=======\nLEGEND\n=======\n\n. = Background\no = Player\nIndicator = IndicatorH or IndicatorV\n\n=======\nSOUNDS\n=======\nEndLevel 93613502\nUndo 10562106\nSFX0 11806907\n\n================\nCOLLISIONLAYERS\n================\nBackground\nPlayer\nIndicatorH\nIndicatorV\n\n======\nRULES\n======\n\n[Perpendicular Player|Player] -> [Player|Player]\n\n[> Player|No Player] -> [|Player] SFX0\n\n[No Player|Player|No Player] -> [|Action Player|]\n[Player|Action Player|Player] -> [Player|Player|Player]\n[Action Player][Player] -> [Action Player][Action Player]\n[Stationary Player] -> Win\n[Action Player] -> [Stationary Player] \n\n[Indicator] -> []\nVertical [Player no IndicatorV|Player] -> [Player IndicatorV|Player]\nHorizontal [Player no IndicatorH|Player] -> [Player IndicatorH|Player]\n==============\nWINCONDITIONS\n==============\n=======\nLEVELS\n=======\n\nMessage Tiles can't move horizontally if there's something vertically adjacent.\nMessage Tiles can't move vertically if there's something horizontally adjacent.\nMessage You win when nothing can move.\nMessage 1 OF 3\n\nooooooooooo\no.........o\no.........o\no...ooo...o\no...ooo.o.o\no...ooo...o\no....o....o\no..o.o....o\nooooooooooo\n\nMessage 2 OF 3\n\noooooooooo\no........o\no.oo..o..o\no.....o..o\no........o\no........o\no........o\no........o\no........o\noooooooooo\n\nMessage 3 OF 3\n\noooooooo\no......o\no.o....o\no.o....o\no......o\no....o.o\no.....oo\noooooooo\nMessage 4 OF 3\n\noooooooo\no..o...o\no..o...o\nooo..ooo\no......o\no...o..o\no...o..o\noooooooo\n\nMessage 5 OF 3\n\nooooooooo\no.......o\no.ooooo.o\no.......o\no...o...o\no.......o\nooooooooo\no.......o\no.o.o...o\no.o.....o\no.o.....o\no.......o\nooooooooo\n\nMessage LAST OF 3\n\nooooooooooooo\no......oo...o\no......oo.o.o\no.o.oo..o...o\no.o.....o...o\no.o.........o\no...........o\nooooooooooooo\n", [3, 2, 2, 1, 1, 3, 3, 3, 3, 0, 1, 2, 2, 2, 2, 2, 2], "background indicatorh indicatorv player:0,background indicatorv player:1,1,1,1,1,1,1,1,0,\nbackground indicatorh player:2,background:3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,1,0,\n2,3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,1,1,1,0,\n2,3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,3,2,\n0,1,1,1,1,1,1,1,1,0,\n", 6, "1627777857936.9624"] ], [ `gallery: aa I'm being attacked by a giant tentacle`, - ["title Aaaah! I'm Being Attacked by a Giant Tentacle!\nauthor Ricky Liu\nhomepage www.puzzlescript.net\n\nnoaction\nrealtime_interval 0.6\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\n#ccc #ddd #bee\n10000\n12220\n12220\n12220\n11110\n\nWall\n#555 #444 #333 #222\n00220\n11001\n02220\n00011\n31113\n\n\nFire\nOrange Yellow DarkBrown\n.0.0.\n000..\n0100.\n.010.\n2.2.2\n\nFire2\nOrange Yellow DarkBrown\n0..0.\n..000\n.0010\n.010.\n2.2.2\n\nPlayer\nBrown #fda Purple pink black\n.000.\n.111.\n22222\n22222\n.434.\n\n\nSweatR\n#6af\n.....\n0....\n.0...\n.....\n.....\n\nSweatL\n#6af\n.....\n....0\n...0.\n.....\n.....\n\nDeadPlayer\nBlack\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nLivePlayer\nBrown #fda Red Blue Black\n.000.\n.111.\n22222\n.333.\n.4.4.\n\nAsh\nDarkGray\n...0.\n.0...\n..0..\n.000.\n00000\n\nPrev\ntransparent\n\nPrevU\npurple pink\n.000.\n.000.\n.000.\n.....\n.....\n\nPrevD\npurple pink\n.....\n.....\n.000.\n.000.\n.000.\n\nPrevL\npurple pink\n.....\n000..\n000..\n000..\n.....\n\nPrevR\npurple pink\n.....\n..000\n..000\n..000\n.....\n\nNextU\npurple pink\n.001.\n.001.\n.000.\n.....\n.....\n\nNextD\npurple pink\n.....\n.....\n.000.\n.100.\n.100.\n\nNextL\npurple pink\n.....\n110..\n000..\n000..\n.....\n\nNextR\npurple pink\n.....\n..000\n..000\n..011\n.....\n\nNextU2\npurple pink\n..001\n..001\n..00.\n.....\n.....\n\nNextD2\npurple pink\n.....\n.....\n.00..\n100..\n100..\n\nNextL2\npurple pink\n11...\n000..\n000..\n.....\n.....\n\nNextR2\npurple pink\n.....\n.....\n..000\n..000\n...11\n\nTemp\ntransparent\n\nRNG1\ntransparent\n\nRNG2\ntransparent\n\nTick\ntransparent\n\n=======\nLEGEND\n=======\n. = Background\nP = Player and PrevL\nF = Fire\n# = Wall\nu = PrevU\nd = PrevD\nl = PrevL\nr = PrevR\n\nObstacle = Wall or Prev\nNext = NextU or NextD or NextL or NextR or NextU2 or NextD2 or NextL2 or NextR2\nRNG = RNG1 or RNG2\nSweats = SweatL or SweatR\n\n=======\nSOUNDS\n=======\n\nSFX0 8062509\nDeadPlayer create 73802302\nEndLevel 70964300\nStartGame 70964300\n(SFX1 94383907)\n\n================\nCOLLISIONLAYERS\n================\nBackground\nRNG1, RNG2\nTick\nTemp\nPrev\nPrevU, PrevD, PrevL, PrevR\nNext\nFire, Fire2, Ash\nPlayer, DeadPlayer, LivePlayer, Wall\nSweats\n\n\n======\nRULES \n======\n\n[stationary Player] -> [Player Tick]\n\n(simplify)\n[PrevU] -> [Up Prev]\n[PrevD] -> [Down Prev]\n[PrevL] -> [Left Prev]\n[PrevR] -> [Right Prev]\n[Next] -> []\n[Fire2] -> [Fire]\n[Sweats] -> []\n\n(calculate movement)\n[> Player > Prev | Prev] -> [ | Player Prev] (SFX1)\n[> Player | Obstacle] -> cancel\n[ | < Player > Prev] -> [Player > Prev| > Prev] (SFX1)\n[Moving Player] -> [Moving Player Moving Temp] (SFX1)\n\n[Perpendicular Temp > Prev | ] -> [Perpendicular Temp > Prev | Perpendicular Temp]\n[> Temp > Prev | ] -> [> Temp > Prev | Temp]\n[> Temp | Obstacle no Temp] [Player Temp] -> [ | Obstacle] [Player no Temp]\n[Player no Temp] [Temp] -> [Player] [no Temp]\n[> Player no Temp | ] -> [ | Player < Prev]\n[> Player > Temp Perpendicular Prev | ] -> [ | Player Perpendicular Prev]\n[> Temp Perpendicular Prev | ] -> [ | Perpendicular Prev]\n[> Temp > Prev | Temp] -> [ | ]\n[ | < Temp > Prev ] -> [> Prev | > Prev]\n[Temp] -> []\n\n(check fire)\n[Player Prev Fire] -> [DeadPlayer Prev Fire]\n[Player Prev] [Prev Fire] -> [LivePlayer Ash] [Prev Fire]\n[Prev Fire] [Prev no Fire] -> [Prev Fire] [Ash]\n[Prev Fire] -> [Ash]\n\n(draw)\n[Up Prev] -> [PrevU]\n[Down Prev] -> [PrevD]\n[Left Prev] -> [PrevL]\n[Right Prev] -> [PrevR]\nUp [PrevU | ] -> [PrevU | NextD]\nDown [PrevD | ] -> [PrevD | NextU]\nLeft [PrevL | ] -> [PrevL | NextR]\nRight [PrevR | ] -> [PrevR | NextL]\n\n(animation)\n[Tick] [RNG] -> [Tick] []\n\n[Tick] [Fire no RNG] -> [Tick] [Fire random RNG]\n[Fire RNG2] -> [Fire2 RNG2]\n\n[Tick] [Player no RNG] -> [Tick] [Player random RNG]\n[Tick] [Player RNG2] -> [Tick] [Player]\n[Tick] [Player no RNG] -> [Tick] [Player random RNG]\nright [Player RNG2 | ] -> [Player | SweatR]\n[Tick] [Player no RNG] -> [Tick] [Player random RNG]\nleft [Player RNG2 | ] -> [Player | SweatL] SFX0\n\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[Tick] [Next RNG2] -> [Tick] [Next]\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[Tick] [Next RNG2] -> [Tick] [Next]\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[Tick] [Next RNG2] -> [Tick] [Next]\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[NextU RNG2] -> [NextU2 RNG2]\n[NextD RNG2] -> [NextD2 RNG2]\n[NextL RNG2] -> [NextL2 RNG2]\n[NextR RNG2] -> [NextR2 RNG2]\n\n[Tick] -> []\n\n\n\n==============\nWINCONDITIONS\n==============\nSome LivePlayer\n\n======= \nLEVELS\n=======\n\nMessage Level 1: Aaaah!\n\n############\n#..........#\n#..........#\nlllp.......#\n#..........#\n#........#.#\n#..........#\n#..........#\n#....f.....#\n#....#.....#\n#..........#\n############\n\nMessage Level 2: Aaaaah!\n\n############\nlllp.......#\n#..........#\n#..........#\n#...##.##..#\n#.......#..#\n#...#f.....#\n#...##.##..#\n#..........#\n#..........#\n############\n\n\nMessage Level 3: Aaaaaah!\n\n###################\n##...............##\n#.................#\n#.................#\n#......######.....#\n#.......####......#\n#....#...##.......#\nlllp.##......#....#\n#.....##....##....#\n#......#.f.##.....#\n#......#####......#\n#.................#\n#.................#\n##................#\n###################\n\n\nMessage Level 4: Aaaaaaah!\n\n##############\n#............#\n#............#\nlllp.........#\n#............#\n#.....#......#\n#............#\n#........#...#\n#............#\n#...........f#\n##############\n\nMessage Level 5: Aaaaaaaah!\n\n#################\nlllp........#####\n#...........#####\n#...........#####\n#...........#####\n#...........#####\n#..#..#..#..##..#\n#...........#..f#\n#..............##\n#.............###\n#################\n\nMessage Level 6: Aaaaaaaaah!\n\n##################\n#................#\n#................#\nlllp.............#\n#................#\n#....#..#..#.....#\n#................#\n#................#\n#....#..#..#.....#\n#................#\n#................#\n#................#\n#................#\n#...............f#\n##################\n\n\nMessage Level 7: Aaaaaaaaaah!\n\n###################\nlllp......#########\n#.........#########\n#.........#########\n#.........#########\n#.#.#.#.#.#########\n#.........#########\n#.........#########\n##.........########\n###.........#######\n#####.......#######\n######.......######\n#######.......#####\n#########.....#####\n##########.....####\n###########.....###\n#############...###\n##############...##\n###############...#\n################f.#\n###################\n\nMessage Level 8: Aaaaaaaaaaah!\n\n####################\n#..................#\n#.#................#\n#..................#\nlllp...............#\n#..................#\n#..................#\n#..................#\n#..................#\n#....######........#\n#.........#........#\n#.......#.#........#\n#.........#........#\n#.........#........#\n#.......#.#........#\n#..................#\n#..................#\n#..................#\n#..............#...#\n#..................#\n#..................#\n#..................#\n#..................#\n#f.................#\n####################\n\nMessage Level 9: Aaaaaaaaaaaah!\n\n##################\nlllp.............#\n#................#\n#.......#.#.#.#..#\n#..#.............#\n#.......#.#.#.#..#\n#..#.#...........#\n#.........#.#.#..#\n#..#.#.#.........#\n#...........#.#..#\n#..#.#.#.#.......#\n#.............#..#\n#..#.#.#.#.#f.#..#\n#...........###..#\n#................#\n#................#\n##################\n\nMessage Level 10: Aaaaaaaaaaaaah!\n\n###################\nlllp..#.....#.....#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.....#..f..#.....#\n###################\n\nMessage Ahhhh! Thanks for playing!\n",["tick",0,0,"tick",3,3,"tick",3,3,"tick",2,2,3,2,"tick",2,3,"tick",3,"tick",0,"tick"],"background wall:0,0,0,0,0,0,0,ash background rng1:1,0,0,0,0,0,0,0,0,0,background:2,2,\n2,2,2,1,2,2,2,2,2,0,0,0,2,2,2,2,2,2,1,\n2,2,2,2,2,2,0,0,2,2,2,2,2,2,1,2,2,2,2,\n2,2,0,0,2,2,2,2,1,1,1,2,2,2,2,2,2,0,0,\n2,2,2,2,1,0,0,2,2,2,2,2,2,0,0,2,2,2,2,\n1,2,0,0,2,2,2,2,2,0,0,2,2,2,0,1,1,1,0,\n0,0,2,2,2,0,0,2,2,2,0,0,2,1,background rng1:3,2,0,2,2,\n2,0,0,2,2,2,0,0,0,ash background:4,4,ash background deadplayer rng1:5,0,2,2,2,0,0,2,\n2,2,0,0,0,2,2,2,0,2,2,2,0,0,2,2,2,0,0,\n2,2,2,0,0,2,2,2,0,0,2,2,2,0,2,2,2,0,0,\n2,2,2,2,0,0,2,2,2,2,2,2,0,0,2,2,2,2,2,\n0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,2,2,\n2,2,2,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,\n2,2,2,2,2,2,2,0,0,0,2,2,2,2,2,2,2,2,2,\n2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",5,"1627777889846.471"] + ["title Aaaah! I'm Being Attacked by a Giant Tentacle!\nauthor Ricky Liu\nhomepage www.puzzlescript.net\n\nnoaction\nrealtime_interval 0.6\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\n#ccc #ddd #bee\n10000\n12220\n12220\n12220\n11110\n\nWall\n#555 #444 #333 #222\n00220\n11001\n02220\n00011\n31113\n\n\nFire\nOrange Yellow DarkBrown\n.0.0.\n000..\n0100.\n.010.\n2.2.2\n\nFire2\nOrange Yellow DarkBrown\n0..0.\n..000\n.0010\n.010.\n2.2.2\n\nPlayer\nBrown #fda Purple pink black\n.000.\n.111.\n22222\n22222\n.434.\n\n\nSweatR\n#6af\n.....\n0....\n.0...\n.....\n.....\n\nSweatL\n#6af\n.....\n....0\n...0.\n.....\n.....\n\nDeadPlayer\nBlack\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nLivePlayer\nBrown #fda Red Blue Black\n.000.\n.111.\n22222\n.333.\n.4.4.\n\nAsh\nDarkGray\n...0.\n.0...\n..0..\n.000.\n00000\n\nPrev\ntransparent\n\nPrevU\npurple pink\n.000.\n.000.\n.000.\n.....\n.....\n\nPrevD\npurple pink\n.....\n.....\n.000.\n.000.\n.000.\n\nPrevL\npurple pink\n.....\n000..\n000..\n000..\n.....\n\nPrevR\npurple pink\n.....\n..000\n..000\n..000\n.....\n\nNextU\npurple pink\n.001.\n.001.\n.000.\n.....\n.....\n\nNextD\npurple pink\n.....\n.....\n.000.\n.100.\n.100.\n\nNextL\npurple pink\n.....\n110..\n000..\n000..\n.....\n\nNextR\npurple pink\n.....\n..000\n..000\n..011\n.....\n\nNextU2\npurple pink\n..001\n..001\n..00.\n.....\n.....\n\nNextD2\npurple pink\n.....\n.....\n.00..\n100..\n100..\n\nNextL2\npurple pink\n11...\n000..\n000..\n.....\n.....\n\nNextR2\npurple pink\n.....\n.....\n..000\n..000\n...11\n\nTemp\ntransparent\n\nRNG1\ntransparent\n\nRNG2\ntransparent\n\nTick\ntransparent\n\n=======\nLEGEND\n=======\n. = Background\nP = Player and PrevL\nF = Fire\n# = Wall\nu = PrevU\nd = PrevD\nl = PrevL\nr = PrevR\n\nObstacle = Wall or Prev\nNext = NextU or NextD or NextL or NextR or NextU2 or NextD2 or NextL2 or NextR2\nRNG = RNG1 or RNG2\nSweats = SweatL or SweatR\n\n=======\nSOUNDS\n=======\n\nSFX0 8062509\nDeadPlayer create 73802302\nEndLevel 70964300\nStartGame 70964300\n(SFX1 94383907)\n\n================\nCOLLISIONLAYERS\n================\nBackground\nRNG1, RNG2\nTick\nTemp\nPrev\nPrevU, PrevD, PrevL, PrevR\nNext\nFire, Fire2, Ash\nPlayer, DeadPlayer, LivePlayer, Wall\nSweats\n\n\n======\nRULES \n======\n\n[stationary Player] -> [Player Tick]\n\n(simplify)\n[PrevU] -> [Up Prev]\n[PrevD] -> [Down Prev]\n[PrevL] -> [Left Prev]\n[PrevR] -> [Right Prev]\n[Next] -> []\n[Fire2] -> [Fire]\n[Sweats] -> []\n\n(calculate movement)\n[> Player > Prev | Prev] -> [ | Player Prev] (SFX1)\n[> Player | Obstacle] -> cancel\n[ | < Player > Prev] -> [Player > Prev| > Prev] (SFX1)\n[Moving Player] -> [Moving Player Moving Temp] (SFX1)\n\n[Perpendicular Temp > Prev | ] -> [Perpendicular Temp > Prev | Perpendicular Temp]\n[> Temp > Prev | ] -> [> Temp > Prev | Temp]\n[> Temp | Obstacle no Temp] [Player Temp] -> [ | Obstacle] [Player no Temp]\n[Player no Temp] [Temp] -> [Player] [no Temp]\n[> Player no Temp | ] -> [ | Player < Prev]\n[> Player > Temp Perpendicular Prev | ] -> [ | Player Perpendicular Prev]\n[> Temp Perpendicular Prev | ] -> [ | Perpendicular Prev]\n[> Temp > Prev | Temp] -> [ | ]\n[ | < Temp > Prev ] -> [> Prev | > Prev]\n[Temp] -> []\n\n(check fire)\n[Player Prev Fire] -> [DeadPlayer Prev Fire]\n[Player Prev] [Prev Fire] -> [LivePlayer Ash] [Prev Fire]\n[Prev Fire] [Prev no Fire] -> [Prev Fire] [Ash]\n[Prev Fire] -> [Ash]\n\n(draw)\n[Up Prev] -> [PrevU]\n[Down Prev] -> [PrevD]\n[Left Prev] -> [PrevL]\n[Right Prev] -> [PrevR]\nUp [PrevU | ] -> [PrevU | NextD]\nDown [PrevD | ] -> [PrevD | NextU]\nLeft [PrevL | ] -> [PrevL | NextR]\nRight [PrevR | ] -> [PrevR | NextL]\n\n(animation)\n[Tick] [RNG] -> [Tick] []\n\n[Tick] [Fire no RNG] -> [Tick] [Fire random RNG]\n[Fire RNG2] -> [Fire2 RNG2]\n\n[Tick] [Player no RNG] -> [Tick] [Player random RNG]\n[Tick] [Player RNG2] -> [Tick] [Player]\n[Tick] [Player no RNG] -> [Tick] [Player random RNG]\nright [Player RNG2 | ] -> [Player | SweatR]\n[Tick] [Player no RNG] -> [Tick] [Player random RNG]\nleft [Player RNG2 | ] -> [Player | SweatL] SFX0\n\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[Tick] [Next RNG2] -> [Tick] [Next]\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[Tick] [Next RNG2] -> [Tick] [Next]\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[Tick] [Next RNG2] -> [Tick] [Next]\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[NextU RNG2] -> [NextU2 RNG2]\n[NextD RNG2] -> [NextD2 RNG2]\n[NextL RNG2] -> [NextL2 RNG2]\n[NextR RNG2] -> [NextR2 RNG2]\n\n[Tick] -> []\n\n\n\n==============\nWINCONDITIONS\n==============\nSome LivePlayer\n\n======= \nLEVELS\n=======\n\nMessage Level 1: Aaaah!\n\n############\n#..........#\n#..........#\nlllp.......#\n#..........#\n#........#.#\n#..........#\n#..........#\n#....f.....#\n#....#.....#\n#..........#\n############\n\nMessage Level 2: Aaaaah!\n\n############\nlllp.......#\n#..........#\n#..........#\n#...##.##..#\n#.......#..#\n#...#f.....#\n#...##.##..#\n#..........#\n#..........#\n############\n\n\nMessage Level 3: Aaaaaah!\n\n###################\n##...............##\n#.................#\n#.................#\n#......######.....#\n#.......####......#\n#....#...##.......#\nlllp.##......#....#\n#.....##....##....#\n#......#.f.##.....#\n#......#####......#\n#.................#\n#.................#\n##................#\n###################\n\n\nMessage Level 4: Aaaaaaah!\n\n##############\n#............#\n#............#\nlllp.........#\n#............#\n#.....#......#\n#............#\n#........#...#\n#............#\n#...........f#\n##############\n\nMessage Level 5: Aaaaaaaah!\n\n#################\nlllp........#####\n#...........#####\n#...........#####\n#...........#####\n#...........#####\n#..#..#..#..##..#\n#...........#..f#\n#..............##\n#.............###\n#################\n\nMessage Level 6: Aaaaaaaaah!\n\n##################\n#................#\n#................#\nlllp.............#\n#................#\n#....#..#..#.....#\n#................#\n#................#\n#....#..#..#.....#\n#................#\n#................#\n#................#\n#................#\n#...............f#\n##################\n\n\nMessage Level 7: Aaaaaaaaaah!\n\n###################\nlllp......#########\n#.........#########\n#.........#########\n#.........#########\n#.#.#.#.#.#########\n#.........#########\n#.........#########\n##.........########\n###.........#######\n#####.......#######\n######.......######\n#######.......#####\n#########.....#####\n##########.....####\n###########.....###\n#############...###\n##############...##\n###############...#\n################f.#\n###################\n\nMessage Level 8: Aaaaaaaaaaah!\n\n####################\n#..................#\n#.#................#\n#..................#\nlllp...............#\n#..................#\n#..................#\n#..................#\n#..................#\n#....######........#\n#.........#........#\n#.......#.#........#\n#.........#........#\n#.........#........#\n#.......#.#........#\n#..................#\n#..................#\n#..................#\n#..............#...#\n#..................#\n#..................#\n#..................#\n#..................#\n#f.................#\n####################\n\nMessage Level 9: Aaaaaaaaaaaah!\n\n##################\nlllp.............#\n#................#\n#.......#.#.#.#..#\n#..#.............#\n#.......#.#.#.#..#\n#..#.#...........#\n#.........#.#.#..#\n#..#.#.#.........#\n#...........#.#..#\n#..#.#.#.#.......#\n#.............#..#\n#..#.#.#.#.#f.#..#\n#...........###..#\n#................#\n#................#\n##################\n\nMessage Level 10: Aaaaaaaaaaaaah!\n\n###################\nlllp..#.....#.....#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.....#..f..#.....#\n###################\n\nMessage Ahhhh! Thanks for playing!\n", ["tick", 0, 0, "tick", 3, 3, "tick", 3, 3, "tick", 2, 2, 3, 2, "tick", 2, 3, "tick", 3, "tick", 0, "tick"], "background wall:0,0,0,0,0,0,0,ash background rng1:1,0,0,0,0,0,0,0,0,0,background:2,2,\n2,2,2,1,2,2,2,2,2,0,0,0,2,2,2,2,2,2,1,\n2,2,2,2,2,2,0,0,2,2,2,2,2,2,1,2,2,2,2,\n2,2,0,0,2,2,2,2,1,1,1,2,2,2,2,2,2,0,0,\n2,2,2,2,1,0,0,2,2,2,2,2,2,0,0,2,2,2,2,\n1,2,0,0,2,2,2,2,2,0,0,2,2,2,0,1,1,1,0,\n0,0,2,2,2,0,0,2,2,2,0,0,2,1,background rng1:3,2,0,2,2,\n2,0,0,2,2,2,0,0,0,ash background:4,4,ash background deadplayer rng1:5,0,2,2,2,0,0,2,\n2,2,0,0,0,2,2,2,0,2,2,2,0,0,2,2,2,0,0,\n2,2,2,0,0,2,2,2,0,0,2,2,2,0,2,2,2,0,0,\n2,2,2,2,0,0,2,2,2,2,2,2,0,0,2,2,2,2,2,\n0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,2,2,\n2,2,2,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,\n2,2,2,2,2,2,2,0,0,0,2,2,2,2,2,2,2,2,2,\n2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 5, "1627777889846.471"] ], [ - `gallery: censored version of NSFW game pornography for beginners`, - ["title censored version of NSFW game by Holly Gramazio\nauthor Holly\nhomepage hollygramazio.net\n\nyoutube K5Yd1iOAzBA\ntext_color red\nbackground_color gray\n\n========\nOBJECTS\n========\n\nPlayer\nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nAAAApedPlayer\nblack black black black black black\n00005\n55150\n12525\n05530\n01050\n\nAAAApedPlayer2\nblack black black black black black\n00005\n55150\n12525\n05530\n01050\n\n\nAAAApedPlayer3\nblack black black black black black\n00000\n55140\n12521\n05530\n01050\n\nAAAApedPlayer4\nblack black black black black black\n00000\n55140\n12521\n05530\n01050\n\nAAAApedPlayer5\nblack black black black black black\n00000\n55140\n12555\n03330\n01010\n\nAAAApedPlayer6\nblack black black black black black\n00000\n55140\n12555\n03330\n01010\n\n\nBBBNNNplayer \nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nBBBNNNplayer2 \nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nBBBNNNplayer3 \nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nBBBNNNplayer4 \nblack black black black black\n00000\n04040\n10201\n03030\n.....\n\n\n(Backgrounds)\n\nBackground\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nFlowertrigger\ngreen black\n00010\n00100\n10000\n00001\n01000\n\n\nFlowertrigger2\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoors\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage1\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage2\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage3\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nScoring\nblack black\n00100\n00100\n11111\n00100\n00100\n\nIntro\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nIntro2\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nIntro3\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nIntro4\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nTarget\nblack black\n00100\n00100\n11111\n00100\n00100\n\nOutdoortarget\ngreen black\n00010\n00100\n10000\n00001\n01000\n\n(CCCCCes)\n\nCCCCC\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCCa\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCCb\nblack black black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCCc\nblack black black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCCd\nblack green black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCCe\nblack black black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCC2\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC3\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC4\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC5\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC6\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC7\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC8\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC9\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC10\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nBBBNNNCCCCC\nblack black black \n.000.\n.020.\n.020.\n00200\n00000\n\nBBBNNNCCCCC2\nblack black black \n.....\n.010.\n.020.\n00200\n00000\n\nBBBNNNCCCCC3\nblack black black \n.....\n.....\n.010.\n11211\n01010\n\nBBBNNNCCCCC4\nblack black black \n.....\n.....\n.010.\n01210\n.....\n\n(DDDDs)\n\nDDDD\nblack black black black\n03310\n31111\n31012\n11112\n01220\n\nDDDD2\nblack black black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD2\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD3\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD4\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nDDDDularity\nblack black black black \n03310\n31111\n31012\n11112\n01220\n\nDDDDularity2\nblack black black black \n03310\n31111\n31012\n11112\n01220\n\nDDDDularity3\nblack black black black \n03310\n31111\n31012\n11112\n01220\n\n\n(tutorial EEEEparts) \n\nTuteFFFFFF\nblack black\n00100\n01010\n01010\n01010\n00100\n\nTuteGGG\nblack black black black black\n40000\n40040\n40240\n00200\n01010\n\nTuteface\nblack black black black\n00000\n02120\n01110\n01310\n00100\n\n\n(FFFFFFs)\n\nFFFFFF\nblack black\n00100\n01010\n01010\n01010\n00100\n\nFFFFFF2\nblack black\n00100\n01010\n01010\n01010\n00100\n\nFFFFFF3\nblack black black\n00100\n01210\n01210\n01210\n00100\n\nFFFFFF4\nblack black black\n00100\n01210\n01210\n01210\n00100\n\nFFFFFF5\nblack black black\n00200\n02120\n02120\n02120\n00200\n\n(YYYYYYYs)\nOOOOe\nblack black black black\n.020.\n02000\n20001\n20011\n01130\n\nTuteOOOOe\nblack black black black\n.020.\n02000\n20001\n20011\n01130\n\nTuteSSSSQQQQQQQQion\nblack black black black black\n01010\n.010.\n.020.\n.000.\n02020\n\nSSSSQQQQQQQQion\nblack black black black black\n01010\n.010.\n.020.\n.000.\n02020\n\nTuteRRRRRRQQQQQQQQion\nblack black black black\n.010.\n01010\n01010\n.030.\n02020\n\nRRRRRRQQQQQQQQion\nblack black black black\n.010.\n01010\n01010\n.030.\n02020\n\n\n(TTTTopalypse)\nd123d12d12derTTTT\nblack black black black black\n01010\n.010.\n.020.\n.000.\n02020\n\nd123d12d12derZZZZZZ1\nblack\n.000.\n00000\n00000\n.0000\n00000\n\nd123d12d12derZZZZZZ2\nblack\n00000\n00000\n00000\n00000\n00000\n\nd123d12d12derZZZZZZ3\nblack\n00000\n00000\n00000\n00000\n00000\n\n(k33k3k23s)\n\nk33k3k23\nblack black \n01010\n01010\n01010\n00000\n00000\n\nVVVV\nblack black \n01010\n00000\n00000\n00000\n00000\n\n(GGGs)\n\nGGG\nblack black black black black\n40000\n40040\n40240\n00200\n01010\n\nblackGGG\nblack black black black black green green \n05005\n56056\n56256\n05250\n01010\n\npinkGGG\nblack black black black black green green \n55556\n56556\n56256\n06261\n01010\n\nHHHHHHdGGG\nblack black black black green green green \n44446\n46446\n56256\n66256\n01010\n\nblackGGG2\nblack black black black black green green \n05005\n56056\n56256\n05250\n01010\n\npinkGGG2\nblack black black black black green green \n55556\n56556\n56256\n06261\n01010\n\nHHHHHHdGGG2\nblack black black black green green green \n44446\n46446\n56256\n66256\n01010\n\nUUUUU\nblack black\n.010.\n.000.\n.000.\n01010\n.....\n\nSAAAAon\nblack black black black black \n22422\n22422\n33433\n22022\n22022\n\n(faces)\n\nFace\nblack black black black\n00000\n02120\n01110\n01310\n00100\n\nif90345if0934i90f34\nblack black black black green \n00000\n02120\n04140\n04340\n00100\n\nif90345if0934i90f342\nblack black black black green \n00000\n02120\n04140\n04340\n00100\n\nif90345if0934i90f343\nblack black black black green \n00000\n02120\n04140\n04340\n00100\n\nSidefaceleft\nblack black black black\n00000\n01210\n01111\n01113\n0010.\n\nSidefaceright\nblack black black black\n00000\n01210\n11110\n31110\n.0100\n\nSidefaceup\nblack black black black\n.0130.\n0111\n02111\n01110\n00000\n\nSidefaceup2\nblack black black black\n.0130.\n0111\n02111\n01110\n00000\n\nSidefacedown\nblack black black black\n00000\n01110\n02111\n01110\n.0130\n\n(scoring)\n\nMMMM\nblack black black black black\n40304\n00311\n00212\n00123\n33333\n\nLLLLL\nblack black black\n00112\n00112\n00112\n00112\n00112\n\nLeftJJJJ\nblack black black black black black\n44542\n11221\n52135\n42143\n41223\n\nMidJJJJ\nblack black black black black\n44001\n14031\n41332\n43021\n33122\n\nRightJJJJ\nblack black black black black black\n42544\n24512\n55215\n31124\n13524\n\n(stuff)\n\nMess\nblack black black black black\n01234\n34021\n23140\n12403\n40312\n\n\nSocket\nblack black black\n00100\n00100\n00000\n11011\n00000\n\ng5432g5glass\ngreen black black black\n02220\n03330\n00100\n.000.\n00000\n\nZZZZZZglass\ngreen black black black\n00000\n01120\n00200\n.000.\n00000\n\nXXXXglass\ngreen black black \n00000\n02220\n00100\n.000.\n00000\n\nPhone\nblack black black\n00000\n02200\n00000\n01010\n10100\n\nWWWW\nblack black\n100..\n01010\n10001\n10001\n01110\n\nWWWW2\nblack black\n100..\n01010\n10101\n10001\n01110\n\nWWWWwarning\nblack \n.....\n.....\n.....\n.....\n.....\n\nWWWWwarning2\nblack\n.....\n.....\n.....\n.....\n.....\n\n(admin)\n\nKKKK\nblack black\n00001\n00010\n00100\n10100\n01000\n\nKKKK2\nblack black\n00001\n00010\n00100\n10100\n01000\n\nKKKK3\nblack black\n00001\n00010\n00100\n10100\n01000\n\nKKKK4\nblack black\n00000\n00000\n00000\n10100\n01000\n\nWall\nblack black\n01110\n01110\n01110\n01110\n01110\n\nBadKKKK\nblack black\n10001\n01010\n00100\n01010\n10001\n\nBadKKKK2\nblack black \n10001\n01010\n00100\n01010\n10001\n\nBadKKKK3\nblack black \n10001\n01010\n00100\n01010\n10001\n\nBadKKKK4\nblack black \n10001\n01010\n00100\n01010\n10001\n\n(architecture)\n\nDoor\nblack black\n00000\n00000\n00010\n00000\n00000\n\nHousewalltop\ngreen green green black green\n33333\n44444\n01210\n01210\n01210\n\nHousewallIIIII\ngreen green green green black\n01210\n01210\n01210\n01210\n01210\n\nFlowers\ngreen black green black black black\n30035\n02103\n24200\n02001\n01003\n\nPath\nblack black\n00001\n00000\n01000\n00010\n00000\n\nPathmessage1\nblack black\n00001\n00000\n01000\n00010\n00000\n\nPathmessage2\nblack black\n00001\n00000\n01000\n00010\n00000\n\nFakeOutdoors\ngreen black\n00010\n00100\n10000\n00001\n01000\n\n=======\nLEGEND\n=======\n\n, = Outdoors \n! = LLLLL\n. = Background\n[ = Intro\n] = Intro2\n- = intro3\n_ = intro4\n* = Player\n# = Wall\n+ = MMMM\n0 = Face\n1 = LeftJJJJ\n2 = MidJJJJ\n3 = RightJJJJ\n4 = VVVV\n5 = k33k3k23\n6 = SAAAAon\n7 = UUUUU\nA = FFFFFF\nB = GGG\ne = Scoring\nF = RRRRRRQQQQQQQQion\nI = XXXXglass\nL = WWWW\nM = SSSSQQQQQQQQion\nO = DDDD\nP = CCCCC\nQ = Target\nT = Socket\nU = OOOOe \nX = KKKK\nY = Phone \nZ = Outdoortarget\n9 = tuteGGG\n& = tuteFFFFFF \n£ = tuteface\n$ = WWWWwarning\n\" = flowertrigger\n' = flowertrigger2\n% = tuteOOOOe\n{ = tuteSSSSQQQQQQQQion\n} = tuteRRRRRRQQQQQQQQion\n(outdoors)\nG = Door \nJ = Flowers\nR = Path\nK = HousewallIIIII\nN = Housewalltop\nC = pathmessage1\nD = Pathmessage2\n8 = Outdoormessage1\nS = Outdoormessage2\nW = Outdoormessage3\n\ngap = background or outdoors or path or outdoormessage2 or outdoormessage1 or outdoormessage3\n\nDDDDularities = DDDDularity or DDDDularity2 or DDDDularity3\nDDDDs = DDDD or DDDD2 or blackDDDD or blackDDDD2 or blackDDDD3 or blackDDDD4 \n\nTTTTopalypse = d123d12d12derTTTT or d123d12d12derZZZZZZ1 or d123d12d12derZZZZZZ2 or d123d12d12derZZZZZZ3\nblackGGGs = blackGGG or blackGGG2\npinkGGGs = pinkGGG or pinkGGG2\nFFFFFFs = FFFFFF or FFFFFF2 or FFFFFF3 or FFFFFF4 or FFFFFF5\nHHHHHHdGGGs = HHHHHHdGGG or HHHHHHdGGG2\nif90345if0934i90f34s = if90345if0934i90f34 or if90345if0934i90f342 or if90345if0934i90f343\nslappedGGGs = pinkGGGs or pinkGGGs or HHHHHHdGGGs\nfaces = Face or Sidefaceleft or Sidefaceright or Sidefaceup or sidefacedown or if90345if0934i90f34s or sidefaceup2\nGGGs = GGG or blackGGGs or pinkGGGs or HHHHHHdGGGs\nTTTTs = CCCCC or CCCCC2 or CCCCC3 or CCCCC4 or CCCCC5 or CCCCC6 or CCCCC7 or CCCCC8 or CCCCC9 or CCCCC10 or CCCCCa or CCCCCb or CCCCCc or CCCCCd or CCCCCe\nWWWWs = WWWW or WWWW2\n\nResults = KKKK or badKKKK or KKKK2 or badKKKK2 or KKKK2 or badKKKK2 or KKKK3 or badKKKK3 or KKKK4 or badKKKK4\nStuff = UUUUU or sAAAAon or XXXXglass or phone or socket or g5432g5glass or ZZZZZZglass or WWWWs or mess\nArchitecture = wall or door \nYYYYYYYs = OOOOe or SSSSQQQQQQQQion or RRRRRRQQQQQQQQion or g5432g5glass or ZZZZZZglass or tuteRRRRRRQQQQQQQQion or tuteSSSSQQQQQQQQion or tuteOOOOe\nscoretrack = scoring or MMMM or LLLLL or leftJJJJ or midJJJJ or rightJJJJ or target or outdoortarget\n\nEEEE = TTTTs or k33k3k23 or GGGs or DDDDs or Faces or VVVV or FFFFFFs or BBBNNNCCCCC or BBBNNNCCCCC2 or BBBNNNCCCCC3 or BBBNNNCCCCC4 or BBBNNNplayer or BBBNNNplayer2 or BBBNNNplayer3 or BBBNNNplayer4 or tuteGGG or tuteFFFFFF or tuteface \n\nAAAApedplayers = AAAApedplayer or AAAApedplayer2 or AAAApedplayer3 or AAAApedplayer4 or AAAApedplayer5 or AAAApedplayer6\n\nStudio = flowers or housewalltop or housewallIIIII \nPaths = path or pathmessage1 or pathmessage2 \n\nEverything = YYYYYYYs or stuff or architecture or studio or paths or EEEE or results or outdoors or scoretrack or player \n\n=======\nSOUNDS\n=======\n\nTTTTs move 81432307\nFFFFFFs move 30911708\nGGGs move 76441308\nDDDDs move 59578908\nk33k3k23 move 83753708\nVVVV move 88751108\nFaces move 46152509\nEEEE move 53209307\n\nAAAApedplayers move 62896704\n\nplayer cantmove 77916504\nKKKK create 97214303\nbadKKKK create 11123702\n\nSSSSQQQQQQQQion move 51210708\nRRRRRRQQQQQQQQion move 30863108\nOOOOe move 80548907\n\nstuff move 34367907\n\nEndlevel 48242503\nEndgame 9005308\nclosemessage 71913507\nstartlevel 13337700\n\n================\nCOLLISIONLAYERS\n================\nBackground, \nOutdoors, Intro, Intro2, intro3, intro4, outdoormessage1, outdoormessage2, outdoormessage3 \nPaths\nPlayer, EEEE, YYYYYYYs, Results, stuff, architecture, studio, AAAApedplayers, \nScoretrack\nDDDDularities, BBBNNNplayer, TTTTopalypse, fakeoutdoors, WWWWwarning, WWWWwarning2, flowertrigger, flowertrigger2\n======\nRULES\n======\n\n(everything that moves)\n[ > Player | EEEE ] -> [ > Player | > EEEE ]\n[ > Player | YYYYYYYs ] -> [ > Player | > YYYYYYYs ]\n[ > Player | Stuff ] -> [ > Player | > Stuff ]\n\n(disasters )\n[ DDDDularities ] -> [ randomdir DDDDularities ]\n[ everything | ... | DDDDularities ] -> [ > everything | ... | DDDDularities ]\n\n[ > everything | DDDDularity ] -> [ background | DDDDularity2 ] Message THIS IS A MESSAGE\n[ > everything | DDDDularity2 ] -> [ | DDDDularity3 ]\n[ > everything | DDDDularity3 ] -> [ > everything | DDDDularity2 ]\n\n(facesitting)\n[ > FFFFFFs | faces ] -> [ background | badKKKK ] Message THIS IS A MESSAGE\n[ > GGGs | faces ] -> [ | badKKKK ] Message THIS IS A MESSAGE\n\n(one-offs)\n[ > DDDDs | XXXXglass ] -> [ DDDDs | XXXXglass ] Message THIS IS A MESSAGE\n[ > XXXXglass | DDDD ] -> Message DISPLAY MESSAGE\n\n[ > VVVV | k33k3k23 ] -> [ | badKKKK ] Message THIS IS A MESSAGE\n[ > k33k3k23 | VVVV ] -> [ k33k3k23 | VVVV ] Message THIS IS A MESSAGE\n\n\n(CCCCC level) \n\n[ > CCCCC | tuteGGG ] -> [ | KKKK ] Message THIS IS A MESSAGE\n[ > CCCCC | tuteFFFFFF ] -> [ | KKKK ] Message THIS IS A MESSAGE\n[ > CCCCC | tuteface ] -> [ | KKKK ] Message THIS IS A MESSAGE\n\n\n(scoring)\n\n[ KKKK4 ] -> [ ]\n[ KKKK3 ] -> [ KKKK4 ]\n[ KKKK2 ] -> [ KKKK3 ]\n\n[ BadKKKK4 ] -> [ ]\n[ BadKKKK3 ] -> [ BadKKKK4 ]\n[ BadKKKK2 ] -> [ BadKKKK3 ]\n\n[ KKKK ] [ LLLLL | MMMM | Scoring ] -> [ KKKK2 ] [ LLLLL | LLLLL | MMMM ]\n[ KKKK ] [ LLLLL | MMMM | Target ] -> [ KKKK2 ] [ LLLLL | LLLLL | MMMM ]\n[ BadKKKK ] [ LLLLL | LLLLL | MMMM ] -> [BadKKKK2] [ LLLLL | MMMM | Scoring ]\n\n(dead things crumble to dust)\n[ BBBNNNCCCCC4 ] -> [ ]\n[ BBBNNNCCCCC3 ] -> [ BBBNNNCCCCC4 ]\n[ BBBNNNCCCCC2 ] -> [ BBBNNNCCCCC3 ]\n[ BBBNNNCCCCC ] -> [ BBBNNNCCCCC2 ]\n\n[ BBBNNNplayer4 ] -> [ ]\n[ BBBNNNplayer3 ] -> [ BBBNNNplayer4 ]\n[ BBBNNNplayer2 ] -> [ BBBNNNplayer3 ]\n[ BBBNNNplayer ] -> [ BBBNNNplayer2 ]\n\n\n( special PPPPP instructions for level 2 )\n\nright [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 1\nleft [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 2\nup [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 3\ndown [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 4\n\nright [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 5\nleft [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 6\nup [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 7\ndown [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 8\n\nright [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ] \nleft [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ]\nup [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ]\ndown [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ]\n\nright [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 9\nleft [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 10\nup [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 11\ndown [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 12\n\nright [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 13\nleft [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 14\nup [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 15\ndown [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 16\n\nright [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 17\nleft [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 18\nup [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 19\ndown [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 20\n\n\n(objects)\n\n[ > phone | OOOOe ] -> [ > phone | OOOOe ] Message THIS IS A MESSAGE 21\n\n\n[ > phone | RRRRRRQQQQQQQQion ] -> [ | KKKK ] Message THIS IS A MESSAGE 22\n\n[ > phone | SSSSQQQQQQQQion ] -> [ | KKKK ] Message THIS IS A MESSAGE 23\n[ > phone | DDDDs ] -> [ | KKKK ] Message THIS IS A MESSAGE 24\n\n[ > phone | TTTTs ] -> [ phone | TTTTs ] Message THIS IS A MESSAGE 25\n\n[> UUUUU | XXXXglass ] -> [ UUUUU | XXXXglass ] Message THIS IS A MESSAGE 26\n[> SAAAAon | XXXXglass ] -> [ SAAAAon | XXXXglass ] Message THIS IS A MESSAGE 27\n\n[> XXXXglass | socket ] -> [ | socket ] Message THIS IS A MESSAGE 28 \n[> g5432g5glass | socket ] -> [ | socket ] Message THIS IS A MESSAGE 29\n[> ZZZZZZglass | socket ] -> [ | socket ] Message THIS IS A MESSAGE 30\n\n[ > YYYYYYYs | phone ] -> [ | phone ] Message THIS IS A MESSAGE 31\n[ > phone | XXXXglass ] -> [ | XXXXglass ] Message THIS IS A MESSAGE 32\n\n[> TTTTs | Socket ] -> [ BBBNNNCCCCC | Socket ] Message THIS IS A MESSAGE 33\n[> TTTTs | Phone ] -> [ TTTTs | Phone ] Message THIS IS A MESSAGE 34 \n[ > TTTTs | XXXXglass ] -> [ TTTTs | XXXXglass ] Message THIS IS A MESSAGE 35\n\n[> player | k33k3k23 | socket ] -> [ | BBBNNNplayer | socket ] Message THIS IS A MESSAGE 36\n[> player | VVVV | socket ] -> [ player | VVVV | socket ] Message THIS IS A MESSAGE 37\n[> EEEE | Socket ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 38\n[> Socket | EEEE ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 39\n\n[ > player | YYYYYYYs | socket ] -> [ | BBBNNNplayer | socket ] Message THIS IS A MESSAGE 40\n\n[> Phone | FFFFFFs ] -> [ Background | FFFFFFs ] Message THIS IS A MESSAGE 41\n[> Phone | GGGs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 42\n\n[ > g5432g5glass | face ] -> [ | badKKKK ] Message THIS IS A MESSAGE 43\n[ > g5432g5glass | EEEE ] -> [ | badKKKK ] Message THIS IS A MESSAGE 44\n\n[ > ZZZZZZglass | face ] -> [ | KKKK ] Message THIS IS A MESSAGE 45\n[ > face | ZZZZZZglass ] -> [ | KKKK ] Message THIS IS A MESSAGE 46\n[ > ZZZZZZglass | FFFFFF ] -> [ | FFFFFF ] Message THIS IS A MESSAGE 47\n[ > ZZZZZZglass | GGG ] -> [ | badKKKK ] Message THIS IS A MESSAGE 48\n\n[ > XXXXglass | faces ] -> [ | faces ] Message THIS IS A MESSAGE 49\n[ > faces | XXXXglass ] -> [ faces | ] Message THIS IS A MESSAGE 50\n\nup down [ > phone | stuff ] -> [ phone | stuff ] Message THIS IS A MESSAGE 51\nleft right [ > phone | stuff ] -> [ phone | stuff ] Message THIS IS A MESSAGE 52\n\n\n\n[ > phone | face ] -> [ phone | face ] Message THIS IS A MESSAGE 53\n[ > GGGs | phone ] -> [ GGGs | phone ] Message THIS IS A MESSAGE 54\n[ > face | phone ] -> [ face | phone ] Message THIS IS A MESSAGE 55\n\n[ > UUUUU | socket ] -> [ UUUUU | socket ] Message THIS IS A MESSAGE 56\n\n\n[ > stuff | XXXXglass ] -> [ | XXXXglass ]\n[ > stuff | g5432g5glass ] -> [ | g5432g5glass ]\n[ > stuff | ZZZZZZglass ] -> [ | ZZZZZZglass ]\n\n\n( WWWW )\n\n[ AAAApedplayer6 ] -> [ player ] Message THIS IS A MESSAGE 57\n[ AAAApedplayer5 ] -> [ AAAApedplayer6 ]\n[ AAAApedplayer4 ] -> [ AAAApedplayer5 ]\n[ AAAApedplayer3 ] -> [ AAAApedplayer4 ] \n[ AAAApedplayer2 ] -> [ AAAApedplayer3 ]\n[ AAAApedplayer ] -> [ AAAApedplayer2 ] Message THIS IS A MESSAGE 58\n[ > player | WWWWs ] -> [ | < AAAApedplayer ] Message THIS IS A MESSAGE 59\n\n[ WWWWwarning ] [ WWWWwarning2 ] -> [ WWWWwarning2 ] [ WWWWwarning2 ]\n[ > player | WWWWwarning ] -> [ > player | WWWWwarning2 ] Message THIS IS A MESSAGE 60\n\nup [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 61\ndown [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 62\nup [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 63\nup [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 64\n\n[ > DDDDs | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 65\n[ > CCCCC | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 66\n[ > FFFFFFs | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 67\n[ > GGGs | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 68\n[ > k33k3k23 | WWWWs ] -> [ | badKKKK ] Message THIS IS A MESSAGE 69\n[ > VVVV | WWWWs ] -> [ | badKKKK ] Message THIS IS A MESSAGE 70\n\n\n(basic sex acts)\n\nup down [ > TTTTs | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE 71\nleft right [ > TTTTs | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE 72\n\nup [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 73\nleft [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 74\ndown [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 75\nright [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 76\n\nleft [ > FFFFFF | TTTTs ] -> [ | KKKK ] Message THIS IS A MESSAGE 77\nright [ > FFFFFF | TTTTs ] -> [ | KKKK ] \nup [ > FFFFFF | TTTTs ] -> [ | KKKK ] Message THIS IS A MESSAGE 78\ndown [ > FFFFFF | TTTTs ] -> [ | KKKK ] \n[ > TTTTs | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE 79\nright [ > FFFFFF | FFFFFF ] -> [ FFFFFF2 | FFFFFF2 ] Message THIS IS A MESSAGE 80\nleft up down [ > FFFFFF | FFFFFF ] -> [ FFFFFF2 | FFFFFF2 ]\ndown [ > FFFFFF2 | FFFFFF2 ] -> [ | KKKK ] Message THIS IS A MESSAGE 81\nleft up right [ > FFFFFF2 | FFFFFF2 ] -> [ | KKKK ]\n\n(UUUUUs) \n[ > FFFFFF3 | UUUUU ] -> [ background | KKKK ] \n[ > FFFFFFs | UUUUU ] -> [ FFFFFF3 | UUUUU ] Message THIS IS A MESSAGE 82\n\n[ > UUUUU | FFFFFFs ] -> [ background | sAAAAon ] Message THIS IS A MESSAGE 83\n\n\n[ > UUUUU | face ] -> [ UUUUU | face ] Message THIS IS A MESSAGE 84\n[ > sAAAAon | face ] -> [ | KKKK ] Message THIS IS A MESSAGE 85\n\n(sAAAAons) \n[ > sAAAAon | FFFFFFs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 86\n[ > sAAAAon | GGGs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 87\n[ > sAAAAon | DDDDs ] -> [ sAAAAon | DDDDs ] Message THIS IS A MESSAGE 88\n[ > sAAAAon | faces ] -> [ background | KKKK ] \n\n[ > FFFFFFs | sAAAAon ] -> [ background | KKKK ] \n[ > GGGs | sAAAAon ] -> [ background | KKKK ]\n[ > EEEE | sAAAAon ] -> [ EEEE | sAAAAon ]\n[ > faces | sAAAAon ] -> [ faces | sAAAAon ] Message THIS IS A MESSAGE 89\n\nup down [ > UUUUU | GGGs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 90\nleft right [ > UUUUU | GGGs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 91 \n\n[ > stuff | stuff | stuff | stuff ] -> [ stuff| stuff | stuff | stuff ] Message THIS IS A MESSAGE 92\n\n\n(the k33k3k23's jobs)\n\n[ > k33k3k23 | FFFFFF ] -> [ k33k3k23 | FFFFFF2 ] Message THIS IS A MESSAGE 93\n[ > k33k3k23 | FFFFFF2 ] -> [ k33k3k23 | FFFFFF3 ] \n[ > k33k3k23 | FFFFFF3 ] -> [ k33k3k23 | FFFFFF4 ] \n[ > k33k3k23 | FFFFFF4 ] -> [ k33k3k23 | FFFFFF5 ]\nup [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 94\ndown [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 95\nleft [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 96\nright [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 97\n\n[ > k33k3k23 | k33k3k23 ] -> [ k33k3k23 | k33k3k23 ] Message THIS IS A MESSAGE 98\nleft down [ > VVVV | VVVV ] -> [ VVVV | VVVV ] Message THIS IS A MESSAGE 99\nup right [ > VVVV | VVVV ] -> [ VVVV | VVVV ]\n\n(FFFFFFs)\n\n[ > FFFFFFs | GGG ] -> [ FFFFFFs | GGG ] Message THIS IS A MESSAGE 100\n[ > FFFFFFs | DDDD ] -> [ FFFFFFs | DDDD ] Message THIS IS A MESSAGE q1\n\n(piss)\n\n[ > OOOOe | TTTTs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q2\n[ > OOOOe | FFFFFFs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q3\n[ > OOOOe | SSSSQQQQQQQQion ] -> [ Background | BadKKKK ] \n[ > OOOOe | RRRRRRQQQQQQQQion ] -> [ Background | OOOOe ] Message THIS IS A MESSAGE q4\n[ > OOOOe | Face ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q5\n[ > OOOOe | k33k3k23 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q6\n[ > OOOOe | VVVV ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q7\n[ > OOOOe | GGGs ] -> [ Background | BadKKKK ]\n\n[ > OOOOe | OOOOe ] -> [ | OOOOe ] \n\n[ > OOOOe | EEEE ] -> [ Background | BadKKKK ]\n[ > RRRRRRQQQQQQQQion | EEEE ] -> [ Background | BadKKKK ]\n\n[ > RRRRRRQQQQQQQQion | SSSSQQQQQQQQion ] -> [ | BadKKKK ] Message THIS IS A MESSAGE q8\n[ > SSSSQQQQQQQQion | RRRRRRQQQQQQQQion ] -> [ | KKKK ] Message THIS IS A MESSAGE q9\n\n[ > TTTTs | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q10\n[ > FFFFFFs | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q11\n[ > SSSSQQQQQQQQion | OOOOe ] -> [ Background | OOOOe ] Message THIS IS A MESSAGE q12\n[ > RRRRRRQQQQQQQQion | OOOOe ] -> [ Background | OOOOe ] Message THIS IS A MESSAGE q13\n[ > Face | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q14\n[ > k33k3k23 | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q15\n[ > VVVV | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q16\n[ > GGG | OOOOe ] -> [ Background | BadKKKK ] \n\n(complicated things with glasses) \n\n[ > OOOOe | XXXXglass ] -> [ | g5432g5glass ]\n[ > RRRRRRQQQQQQQQion | XXXXglass ] -> [ | g5432g5glass ]\n[ > SSSSQQQQQQQQion | XXXXglass ] -> [ | ZZZZZZglass ]\n\n[ > OOOOe | ZZZZZZglass ] -> [ | g5432g5glass ]\n[ > RRRRRRQQQQQQQQion | ZZZZZZglass ] -> [ | g5432g5glass ]\n\n[ > SSSSQQQQQQQQion | g5432g5glass ] -> [ | ZZZZZZglass ]\n\n\n(DDDDs)\n\n[ > DDDDs | TTTTs ] -> [ DDDDs | TTTTs ] Message THIS IS A MESSAGE q17\n\n[ > DDDDs | FFFFFFs ] -> [ DDDDs | FFFFFF ] Message THIS IS A MESSAGE q18\n[ > DDDDs | SSSSQQQQQQQQion ] -> [ DDDD | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q19\n[ > DDDDs | Face ] -> [ DDDDs | Face ] Message THIS IS A MESSAGE q20\n[ > DDDDs | k33k3k23 ] -> [ DDDDs | k33k3k23 ] Message THIS IS A MESSAGE q21\n[ > DDDDs | GGG ] -> [ DDDDs | GGG ] Message THIS IS A MESSAGE q22\n\n[ > FFFFFFs | DDDDs ] -> [ FFFFFFs | DDDD ]\n[ > SSSSQQQQQQQQion | DDDDs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q23\n[ > SSSSQQQQQQQQion | Face ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q24\n\n[ > Face | DDDDs ] -> [ Face | DDDDs ] Message THIS IS A MESSAGE q25\n[ > DDDDs | Face | DDDDs ] -> [ DDDDs | Face | DDDDs ] Message THIS IS A MESSAGE q26\n\n[ > VVVV | DDDDs ] -> [ Background | BadKKKK ]\n[ > GGG | DDDDs ] -> [ GGG | DDDDs ] Message THIS IS A MESSAGE q27\n\n[ DDDDs | DDDDs | DDDDS | DDDDs | DDDDs | DDDDs | DDDDs ] -> [ Background | Background | Background | DDDDularity | Background | Background | Background ] Message THIS IS A MESSAGE q29 \n[ > DDDDs | DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q29\n[ > DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q30\n[ > DDDDs | DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q31\n[ > DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q32\n[ > DDDDs | DDDDs ] -> [ DDDDs | DDDDs ] Message THIS IS A MESSAGE q33\n\n(kissing)\nright [ > Faces | Faces ] -> [ Sidefaceleft | Sidefaceright ] Message THIS IS A MESSAGE q34\nleft [ > Faces | Faces ] -> [ Sidefaceright | Sidefaceleft ] Message THIS IS A MESSAGE q35\nup [ > Faces | Faces ] -> [ Sidefaceup | Sidefacedown ] Message THIS IS A MESSAGE q36\ndown [ > Faces | Faces ] -> [ Sidefacedown | Sidefaceup ] Message\n\n[ > GGGs | Outdoors ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q38\n\nup down [ > TTTTs | GGGs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q39\nleft [ > TTTTs | GGGs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q40\nright [ > TTTTs | GGGs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q41\n[ > GGGs | TTTTs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q42\n\n\n[ > k33k3k23 | Outdoors ] -> [ > k33k3k23 | > Outdoors ]\n[ > FFFFFFs | Outdoors ] -> [ Background | BadKKKK ]\n[ > TTTTs | Outdoors ] -> [ Background | BadKKKK ]\n[ > SSSSQQQQQQQQion | Outdoors ] -> [ Background | BadKKKK ]\n[ > RRRRRRQQQQQQQQion | Outdoors ] -> [ Background | BadKKKK ]\n[ > OOOOe | Outdoors ] -> [ | Outdoors ] Message THIS IS A MESSAGE q43\n\n[ > FFFFFFs | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q44\n[ > TTTTs | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q45\n[ > SSSSQQQQQQQQion | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q46\n[ > RRRRRRQQQQQQQQion | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q47\n[ > OOOOe | Path | Path | Path ] -> [ > OOOOe | Path | Path | Path ] Message THIS IS A MESSAGE q48\n\n\n[ > Outdoors | Faces | Faces ] -> [ Outdoors | Faces | Faces ] Message THIS IS A MESSAGE q49\n\n\n(smacks and slaps)\nup down [ > k33k3k23 | GGG ] -> [ k33k3k23 | blackGGG ] Message THIS IS A MESSAGE q50\nleft right [ > k33k3k23 | GGG ] -> [ k33k3k23 | blackGGG ] Message THIS IS A MESSAGE q51\n[ > k33k3k23 | blackGGGs ] -> [k33k3k23 | blackGGG ] Message THIS IS A MESSAGE q52\n[ > k33k3k23 | blackGGGs ] -> [k33k3k23 | HHHHHHdGGG ] Message THIS IS A MESSAGE q53\n[ > k33k3k23 | HHHHHHdGGGs ] -> [Background | BadKKKK ] Message THIS IS A MESSAGE q54\n\n[> k33k3k23 | if90345if0934i90f34s ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q55\n[ > k33k3k23 | Faces ] -> [ k33k3k23 | if90345if0934i90f34 ] Message THIS IS A MESSAGE q56\n\n[> Faces | k33k3k23 ] -> [ Face | k33k3k23 ] Message THIS IS A MESSAGE q57\n\n[ > k33k3k23 | DDDD ] -> [ k33k3k23 | DDDD2 ] Message THIS IS A MESSAGE q58\n[ > k33k3k23 | DDDD2 ] -> [ k33k3k23 | blackDDDD4 ] Message THIS IS A MESSAGE q59\n[ > k33k3k23 | blackDDDD ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q60\n[ > k33k3k23 | blackDDDD2 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q61\n[ > k33k3k23 | blackDDDD3 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q62\n[ > k33k3k23 | blackDDDD4 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q63\n\n(VVVVing and punching)\n\n[> VVVV | Faces ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q64\n[ > VVVV | FFFFFFs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q65\n[ > VVVV | GGGs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q66\n\n[ > EEEE | VVVV ] -> [ EEEE | VVVV ] \n\n(remaining CCCCCes)\n[ > CCCCCA | CCCCCA ] -> [ CCCCCB | CCCCCB ]\n[ > CCCCCB | CCCCCB ] -> [ CCCCCC | CCCCCC ]\n[ > CCCCCC | CCCCCC ] -> [ CCCCCD | CCCCCD ]\n[ > CCCCCD | CCCCCD ] -> [ CCCCCE | CCCCCE ]\n[ > CCCCCE | CCCCCE ] -> [ | KKKK ]\n[ > TTTTs | TTTTs ] -> [ CCCCCA | CCCCCA ] Message THIS IS A MESSAGE q77\n\n[ > k33k3k23 | CCCCC ] -> [ k33k3k23 | CCCCC3 ] Message THIS IS A MESSAGE q78\n[ > k33k3k23 | CCCCC2 ] -> [ k33k3k23 | CCCCC5 ] Message THIS IS A MESSAGE q79\n[ > k33k3k23 | CCCCC3 ] -> [ k33k3k23 | CCCCC5 ] Message THIS IS A MESSAGE q80\n[ > k33k3k23 | CCCCC4 ] -> [ k33k3k23 | CCCCC7 ] Message THIS IS A MESSAGE q81\n[ > k33k3k23 | CCCCC5 ] -> [ k33k3k23 | CCCCC7 ] Message THIS IS A MESSAGE q82\n[ > k33k3k23 | CCCCC6 ] -> [ k33k3k23 | CCCCC9 ] Message THIS IS A MESSAGE q83\n[ > k33k3k23 | CCCCC7 ] -> [ k33k3k23 | CCCCC9 ] Message THIS IS A MESSAGE q84\n[ > k33k3k23 | CCCCC8 ] -> [ k33k3k23 | CCCCC10 ]\n[ > k33k3k23 | CCCCC9 ] -> [ background | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q85\n[ > k33k3k23 | CCCCC10 ] -> [ background | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q86\n\n[ > TTTTs | k33k3k23 ] -> [ Background | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q87\n\nright [ > Faces | FFFFFF ] -> [ sidefaceleft | FFFFFF2 ] Message THIS IS A MESSAGE q88\nleft [ > Faces | FFFFFF ] -> [ sidefaceright | FFFFFF2 ] Message THIS IS A MESSAGE q89\nup [ > faces | FFFFFF ] -> [ sidefaceup | FFFFFF2 ] Message THIS IS A MESSAGE q90\ndown [ > faces | FFFFFF ] -> [ sidefacedown | FFFFFF2 ] Message THIS IS A MESSAGE q91\n\n\n[ > Faces | FFFFFF2 ] -> [ Faces | FFFFFF3 ] \n[ > Faces | FFFFFF3 ] -> [ Faces | FFFFFF4 ]\n[ > Faces | FFFFFFs ] -> [ | KKKK ] \n[ > Faces | SSSSQQQQQQQQion ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 101\n\n[ > VVVV | GGG ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 102\n\n[ > CCCCC | DDDDs ] -> [ CCCCC | DDDDs ] Message THIS IS A MESSAGE\n[ > DDDDs | CCCCC | DDDDs ] -> [ DDDDs | SSSSQQQQQQQQion | DDDDs ] Message THIS IS A MESSAGE 103\n[ > CCCCC | DDDDs | DDDDs ] -> [ KKKK | | ] Message THIS IS A MESSAGE.104\n\n[ > CCCCC | EEEE ] -> [ CCCCC | EEEE ] Message THIS IS A MESSAGE.105\n[ > CCCCC | stuff ] -> [ CCCCC | stuff ] Message THIS IS A MESSAGE.106\n[ > stuff | CCCCC ] -> [ stuff | CCCCC ] Message THIS IS A MESSAGE.107\n\n( slaps fade )\n[ if90345if0934i90f343 ] -> [ face ]\n[ if90345if0934i90f342 ] -> [ if90345if0934i90f343 ]\n[ if90345if0934i90f34 ] -> [ if90345if0934i90f342 ]\n\n[ blackGGG2 ] -> [ GGG ]\n[ blackGGG ] -> [ blackGGG2 ]\n\n[ blackGGG2 ] -> [ blackGGG ]\n[ blackGGG ] -> [ blackGGG2 ]\n\n[ HHHHHHdGGG2 ] -> [ blackGGG ]\n[ HHHHHHdGGG ] -> [ HHHHHHdGGG2 ]\n\n[ blackDDDD2 ] -> [ DDDD ]\n[ blackDDDD3 ] -> [ blackDDDD2 ]\n[ blackDDDD4 ] -> [ blackDDDD3 ] \n\n(erections too)\n[ CCCCC2 ] -> [ CCCCC ]\n[ CCCCC3 ] -> [ CCCCC2 ]\n[ CCCCC4 ] -> [ CCCCC3 ]\n[ CCCCC5 ] -> [ CCCCC4 ]\n[ CCCCC6 ] -> [ CCCCC5 ]\n[ CCCCC7 ] -> [ CCCCC6 ]\n[ CCCCC8 ] -> [ CCCCC7 ]\n[ CCCCC9 ] -> [ CCCCC8 ]\n[ CCCCC10 ] -> [ CCCCC9 ]\n\n\n( faces and EEEE parts )\nright [ > Faces | GGGs ] -> [ Sidefaceleft | GGGs ]\nleft [ > Faces | GGGs ] -> [ Sidefaceright | GGGs ]\nup [ > sidefaceup2 | GGGs ] -> [ | KKKK ] Message THIS IS A MESSAGE.108\nup [ > Faces | GGGs ] -> [ Sidefaceup2 | GGGs ] Message THIS IS A MESSAGE.109\ndown [ > Faces | GGGs ] -> [ Sidefacedown | GGGs ] \n\n\nright [ > Faces | DDDDs ] -> [ Sidefaceleft | DDDDs ]\nleft [ > Faces | DDDDs ] -> [ Sidefaceright | DDDDs ]\nup [ > Faces | DDDDs ] -> [ Sidefaceup | DDDDs ] \ndown [ > Faces | DDDDs ] -> [ Sidefacedown | DDDDs ]\n\n[ > DDDDs | faces | DDDDs ] -> [ DDDDs | faces | DDDDs ] Message THIS IS A MESSAGE.110\n\nright [ > Faces | TTTTs ] -> [ Sidefaceleft | TTTTs ]\nleft [ > Faces | TTTTs ] -> [ Sidefaceright | TTTTs ]\nup [ > Faces | TTTTs ] -> [ Sidefaceup | TTTTs ] Message THIS IS A MESSAGE.111\ndown [ > Faces | TTTTs ] -> [ Sidefacedown | TTTTs ] Message THIS IS A MESSAGE.112\n\n[ > Sidefacedown | TTTTs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE.113\n\n(intro level)\nright [ > player | housewalltop ] -> [ player | housewalltop ] Message THIS IS A MESSAGE.114\nleft [ > player | housewalltop ] -> [ player | housewalltop ] Message THIS IS A MESSAGE.115\nright [ > player | housewallIIIII ] -> [ player | housewallIIIII ] Message THIS IS A MESSAGE.116\nleft [ > player | housewallIIIII ] -> [ player | housewallIIIII ] Message THIS IS A MESSAGE.117\n\n[ flowertrigger ] [> player | flowers ] -> [flowertrigger2] [ player | flowers ] Message THIS IS A MESSAGE.118\n[ flowertrigger2 ] [> player | flowers ] -> [ ] [ player | flowers ] Message THIS IS A MESSAGE.119\n\n[ > player | pathmessage1 ] -> [ > player | path ] Message THIS IS A MESSAGE.120\n[ > player | pathmessage2 ] -> [ > player | path ] Message THIS IS A MESSAGE.121\n\n[ outdoortarget ] [ > player | door ] -> [ outdoors ] [ > player | door ]\n\n(explanations)\n[ > player | intro ] -> [ > player | background ] Message THIS IS A MESSAGE.122\n[ > player | intro2 ] -> [ > player | background ] Message THIS IS A MESSAGE.123\n[ > player | intro3 ] -> [ > player | background ] Message THIS IS A MESSAGE.124\n[ > player | intro4 ] -> [ > player | background ] Message THIS IS A MESSAGE.125\n\n[ > player | outdoormessage1 ] -> [ > player | outdoors ] Message THIS IS A MESSAGE.126\n[ > player | outdoormessage2 ] -> [ > player | outdoors ] Message THIS IS A MESSAGE.127\n[ > player | outdoormessage3 ] -> [ > player | outdoors ] Message THIS IS A MESSAGE.128\n\n\n\n( ZZZZZZ, wanking, CCCCCes otherwise unaddressed ) \n[ > SSSSQQQQQQQQion | GGGs ] -> [ | KKKK ] Message THIS IS A MESSAGE.129\n[ > SSSSQQQQQQQQion | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE.130\nup down [ > SSSSQQQQQQQQion | faces ] -> [ | KKKK ] Message THIS IS A MESSAGE.131\nleft right [ > SSSSQQQQQQQQion | faces ] -> [ | KKKK ] Message THIS IS A MESSAGE.132\n[ > SSSSQQQQQQQQion | EEEE ] -> [ SSSSQQQQQQQQion | EEEE ] Message THIS IS A MESSAGE.133\n\n[ > CCCCC | VVVV ] -> [ | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.134\n[ > VVVV | CCCCC ] -> [ | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.135\n\n\n( TTTTopalypse )\n[ SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion ] -> [ d123d12d12derTTTT | d123d12d12derTTTT | d123d12d12derTTTT | d123d12d12derTTTT ] Message THIS IS A MESSAGE.136\n[ > SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion ] -> [ SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.137\n[ > SSSSQQQQQQQQion | SSSSQQQQQQQQion ] -> [ SSSSQQQQQQQQion | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.138\n\n[ d123d12d12derZZZZZZ2 ] -> [ d123d12d12derZZZZZZ3 ]\n[ d123d12d12derZZZZZZ1 ] -> [ d123d12d12derZZZZZZ2 ]\n\n[ | d123d12d12derZZZZZZ3 ] -> [ d123d12d12derZZZZZZ1 | d123d12d12derZZZZZZ3 ] \n[ | d123d12d12derZZZZZZ2 ] -> [ d123d12d12derZZZZZZ1 | d123d12d12derZZZZZZ2 ]\n[ | d123d12d12derTTTT ] -> [ d123d12d12derZZZZZZ1 | d123d12d12derTTTT ]\n\n[ d123d12d12derTTTT | ] -> [ d123d12d12derTTTT | d123d12d12derZZZZZZ1 ] \n\n(tuteYYYYYYYs) \n\n[ RRRRRRQQQQQQQQion ] [ tuteRRRRRRQQQQQQQQion ] -> [ RRRRRRQQQQQQQQion ] [ RRRRRRQQQQQQQQion] \n[ SSSSQQQQQQQQion ] [ tuteSSSSQQQQQQQQion ] -> [ SSSSQQQQQQQQion ] [ SSSSQQQQQQQQion ]\n[ OOOOe ] [ tuteOOOOe ] -> [ OOOOe ] [ OOOOe ]\n\n[ > player | tuteOOOOe ] -> [ > player | OOOOe ] Message THIS IS A MESSAGE.139\n[ > player | tuteSSSSQQQQQQQQion ] -> [ > player | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.140\n[ > player | tuteRRRRRRQQQQQQQQion ] -> [ > player | RRRRRRQQQQQQQQion ] Message THIS IS A MESSAGE.141\n \n[ > XXXXglass | YYYYYYYs ] -> [ XXXXglass | YYYYYYYs ] Message THIS IS A MESSAGE.142\n\n[ > YYYYYYYs | WWWW ] -> [ | WWWW ] Message THIS IS A MESSAGE.143\n\n[ > phone | EEEE ] -> [ > phone | EEEE ] Message THIS IS A MESSAGE.144\n\n[ > GGGs | GGGs ] -> [ GGGs | GGGs ] Message THIS IS A MESSAGE.145\n[ > GGGs | GGGs | GGGs ] -> [ GGGs | GGGs | GGGs ] Message THIS IS A MESSAGE.146\n[ > GGGs | GGGs | GGGs| GGGs ] -> [ GGGs | GGGs | GGGs | GGGs ] Message THIS IS A MESSAGE.147\n[ > GGGs | GGGs | GGGs | GGGs| GGGs ] -> [ GGGs | GGGs | GGGs | GGGs | GGGs ] Message THIS IS A MESSAGE.148\n\n==============\nWINCONDITIONS\n==============\n\nNo Target \nno outdoortarget \n\n=======\nLEVELS\n=======\n\nMessage AAAw1\n\nZJJ,NNNNNNNNN,JJJ\nJ,,,KKKKGKKKK,,,,\nJ,,,,,,JRJ,,,,,,,\nJ,,,,,,JRJJJ,,,,,\n,,,,,,,JDRRRJ,,,,\n,,,8,,,,JJJCRJ,,J\n,,,,,,,,,,JJRJ,,J\n,,,JJ,,,,,,,RJ*,J\n\",,,JJ,,,,,,R,,,,\n\n\nMessage AAAw2\n\n#eQe##I#T#9#Y#£#&#\n#eee#.............\n#eee#......P......\n#e+e#...P.....P...\n#e!e#......[......\n#e!e#######*######\n#123#,,,,J,R,,,,,,\n\nMessage AAAw3\n#eQe#..O...OO...O.\n#eee#..O.O..O..O..\n#e+e#.............\n#e!e#.I..%...}..{.\n#e!e#.............\n#e!e#.Y..%...}..{.\n#e!e#......]......\n#e!e#######*######\n#123#,,,,J,R,,,,,,\n\n\n\nMessage AAAw4\n\n#eQe#.....B.B.....\n#eee#.0.P.....A.A.\n#eee#.....5.5.....\n#eee#.O.4..5..5.P.\n#e+e#.............\n#e!e#..5..4.4..5..\n#e!e#......-......\n#e!e#######*######\n#e!e#,,,,J,R,,,,,,\n#123#,,S,,,R,J,J,,\n\n\nMessage AAAw5\n\n#eQe#.............\n#eee#.0..T...7..5.\n#eee#......M.$....\n#e+e#.B..I..$L$.A.\n#e!e#......F.$....\n#e!e#.O..Y...4..P.\n#e!e#.............\n#e!e#######*######\n#e!e#,,,,J,R,,,,,,\n#123#,,S,,,R,J,J,,\n\nMessage AAAw6\n\n#eQe#.....A.O...P.B.....\n#eee#.M.5..I..T..B..A.P.\n#eee#..U.....5.P.....A..\n#eee#.0.O..M..F..4..0.5.\n#eee#..I..L.......P..O..\n#eee#.A.U..7..O..P..0.T.\n#eee#..7.....4.5.....B..\n#eee#.P.Y..P..B..0..O.I.\n#e+e#........._.........\n#e!e##########*#########\n#e!e#,,,,,,,J,R,,,,,,,,,\n#e!e#,,,W,,,,,R,J,J,,,,,\n#123#,,,,,,,,JRRRRJ,,,,,\n\nMessage AAAw7\n\n\n",[0,0,0,3,0,1,1,1,2,2,2,1,0,0,3,3,3,3,2,3,3,0,0,3,0,1,1,1,1,1,1,2,1,1,2,1,1,0,3,3,2,3,0,0,1,1,1,0,0,3,3],"background wall:0,0,0,0,0,0,0,background scoring:1,1,1,1,1,1,background leftjjjj:2,background target:3,1,1,background mmmm:4,\nbackground lllll:5,5,background midjjjj:6,1,1,1,1,1,1,background rightjjjj:7,0,0,0,0,0,0,0,0,\nbackground:8,8,8,8,0,background outdoors:9,background xxxxglass:10,8,8,8,8,0,9,0,background player:11,8,8,8,\n0,9,background socket:12,background ccccca:13,8,8,8,0,9,0,13,background cccccc:14,8,8,0,background flowers:15,background tuteggg:16,8,\n8,8,8,0,9,0,8,8,8,8,8,background path:17,background phone:18,8,8,8,8,0,\n9,0,8,8,8,8,0,9,background tuteface:19,8,8,8,8,0,9,0,8,8,\n8,8,0,9,background tuteffffff:20,8,8,8,8,0,9,0,8,8,8,8,0,9,\n",3,"1645471800404.333"] + `gallery: censored version of NSFW game pornography for beginners`, + ["title censored version of NSFW game by Holly Gramazio\nauthor Holly\nhomepage hollygramazio.net\n\nyoutube K5Yd1iOAzBA\ntext_color red\nbackground_color gray\n\n========\nOBJECTS\n========\n\nPlayer\nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nAAAApedPlayer\nblack black black black black black\n00005\n55150\n12525\n05530\n01050\n\nAAAApedPlayer2\nblack black black black black black\n00005\n55150\n12525\n05530\n01050\n\n\nAAAApedPlayer3\nblack black black black black black\n00000\n55140\n12521\n05530\n01050\n\nAAAApedPlayer4\nblack black black black black black\n00000\n55140\n12521\n05530\n01050\n\nAAAApedPlayer5\nblack black black black black black\n00000\n55140\n12555\n03330\n01010\n\nAAAApedPlayer6\nblack black black black black black\n00000\n55140\n12555\n03330\n01010\n\n\nBBBNNNplayer \nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nBBBNNNplayer2 \nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nBBBNNNplayer3 \nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nBBBNNNplayer4 \nblack black black black black\n00000\n04040\n10201\n03030\n.....\n\n\n(Backgrounds)\n\nBackground\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nFlowertrigger\ngreen black\n00010\n00100\n10000\n00001\n01000\n\n\nFlowertrigger2\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoors\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage1\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage2\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage3\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nScoring\nblack black\n00100\n00100\n11111\n00100\n00100\n\nIntro\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nIntro2\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nIntro3\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nIntro4\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nTarget\nblack black\n00100\n00100\n11111\n00100\n00100\n\nOutdoortarget\ngreen black\n00010\n00100\n10000\n00001\n01000\n\n(CCCCCes)\n\nCCCCC\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCCa\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCCb\nblack black black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCCc\nblack black black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCCd\nblack green black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCCe\nblack black black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCC2\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC3\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC4\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC5\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC6\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC7\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC8\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC9\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC10\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nBBBNNNCCCCC\nblack black black \n.000.\n.020.\n.020.\n00200\n00000\n\nBBBNNNCCCCC2\nblack black black \n.....\n.010.\n.020.\n00200\n00000\n\nBBBNNNCCCCC3\nblack black black \n.....\n.....\n.010.\n11211\n01010\n\nBBBNNNCCCCC4\nblack black black \n.....\n.....\n.010.\n01210\n.....\n\n(DDDDs)\n\nDDDD\nblack black black black\n03310\n31111\n31012\n11112\n01220\n\nDDDD2\nblack black black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD2\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD3\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD4\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nDDDDularity\nblack black black black \n03310\n31111\n31012\n11112\n01220\n\nDDDDularity2\nblack black black black \n03310\n31111\n31012\n11112\n01220\n\nDDDDularity3\nblack black black black \n03310\n31111\n31012\n11112\n01220\n\n\n(tutorial EEEEparts) \n\nTuteFFFFFF\nblack black\n00100\n01010\n01010\n01010\n00100\n\nTuteGGG\nblack black black black black\n40000\n40040\n40240\n00200\n01010\n\nTuteface\nblack black black black\n00000\n02120\n01110\n01310\n00100\n\n\n(FFFFFFs)\n\nFFFFFF\nblack black\n00100\n01010\n01010\n01010\n00100\n\nFFFFFF2\nblack black\n00100\n01010\n01010\n01010\n00100\n\nFFFFFF3\nblack black black\n00100\n01210\n01210\n01210\n00100\n\nFFFFFF4\nblack black black\n00100\n01210\n01210\n01210\n00100\n\nFFFFFF5\nblack black black\n00200\n02120\n02120\n02120\n00200\n\n(YYYYYYYs)\nOOOOe\nblack black black black\n.020.\n02000\n20001\n20011\n01130\n\nTuteOOOOe\nblack black black black\n.020.\n02000\n20001\n20011\n01130\n\nTuteSSSSQQQQQQQQion\nblack black black black black\n01010\n.010.\n.020.\n.000.\n02020\n\nSSSSQQQQQQQQion\nblack black black black black\n01010\n.010.\n.020.\n.000.\n02020\n\nTuteRRRRRRQQQQQQQQion\nblack black black black\n.010.\n01010\n01010\n.030.\n02020\n\nRRRRRRQQQQQQQQion\nblack black black black\n.010.\n01010\n01010\n.030.\n02020\n\n\n(TTTTopalypse)\nd123d12d12derTTTT\nblack black black black black\n01010\n.010.\n.020.\n.000.\n02020\n\nd123d12d12derZZZZZZ1\nblack\n.000.\n00000\n00000\n.0000\n00000\n\nd123d12d12derZZZZZZ2\nblack\n00000\n00000\n00000\n00000\n00000\n\nd123d12d12derZZZZZZ3\nblack\n00000\n00000\n00000\n00000\n00000\n\n(k33k3k23s)\n\nk33k3k23\nblack black \n01010\n01010\n01010\n00000\n00000\n\nVVVV\nblack black \n01010\n00000\n00000\n00000\n00000\n\n(GGGs)\n\nGGG\nblack black black black black\n40000\n40040\n40240\n00200\n01010\n\nblackGGG\nblack black black black black green green \n05005\n56056\n56256\n05250\n01010\n\npinkGGG\nblack black black black black green green \n55556\n56556\n56256\n06261\n01010\n\nHHHHHHdGGG\nblack black black black green green green \n44446\n46446\n56256\n66256\n01010\n\nblackGGG2\nblack black black black black green green \n05005\n56056\n56256\n05250\n01010\n\npinkGGG2\nblack black black black black green green \n55556\n56556\n56256\n06261\n01010\n\nHHHHHHdGGG2\nblack black black black green green green \n44446\n46446\n56256\n66256\n01010\n\nUUUUU\nblack black\n.010.\n.000.\n.000.\n01010\n.....\n\nSAAAAon\nblack black black black black \n22422\n22422\n33433\n22022\n22022\n\n(faces)\n\nFace\nblack black black black\n00000\n02120\n01110\n01310\n00100\n\nif90345if0934i90f34\nblack black black black green \n00000\n02120\n04140\n04340\n00100\n\nif90345if0934i90f342\nblack black black black green \n00000\n02120\n04140\n04340\n00100\n\nif90345if0934i90f343\nblack black black black green \n00000\n02120\n04140\n04340\n00100\n\nSidefaceleft\nblack black black black\n00000\n01210\n01111\n01113\n0010.\n\nSidefaceright\nblack black black black\n00000\n01210\n11110\n31110\n.0100\n\nSidefaceup\nblack black black black\n.0130.\n0111\n02111\n01110\n00000\n\nSidefaceup2\nblack black black black\n.0130.\n0111\n02111\n01110\n00000\n\nSidefacedown\nblack black black black\n00000\n01110\n02111\n01110\n.0130\n\n(scoring)\n\nMMMM\nblack black black black black\n40304\n00311\n00212\n00123\n33333\n\nLLLLL\nblack black black\n00112\n00112\n00112\n00112\n00112\n\nLeftJJJJ\nblack black black black black black\n44542\n11221\n52135\n42143\n41223\n\nMidJJJJ\nblack black black black black\n44001\n14031\n41332\n43021\n33122\n\nRightJJJJ\nblack black black black black black\n42544\n24512\n55215\n31124\n13524\n\n(stuff)\n\nMess\nblack black black black black\n01234\n34021\n23140\n12403\n40312\n\n\nSocket\nblack black black\n00100\n00100\n00000\n11011\n00000\n\ng5432g5glass\ngreen black black black\n02220\n03330\n00100\n.000.\n00000\n\nZZZZZZglass\ngreen black black black\n00000\n01120\n00200\n.000.\n00000\n\nXXXXglass\ngreen black black \n00000\n02220\n00100\n.000.\n00000\n\nPhone\nblack black black\n00000\n02200\n00000\n01010\n10100\n\nWWWW\nblack black\n100..\n01010\n10001\n10001\n01110\n\nWWWW2\nblack black\n100..\n01010\n10101\n10001\n01110\n\nWWWWwarning\nblack \n.....\n.....\n.....\n.....\n.....\n\nWWWWwarning2\nblack\n.....\n.....\n.....\n.....\n.....\n\n(admin)\n\nKKKK\nblack black\n00001\n00010\n00100\n10100\n01000\n\nKKKK2\nblack black\n00001\n00010\n00100\n10100\n01000\n\nKKKK3\nblack black\n00001\n00010\n00100\n10100\n01000\n\nKKKK4\nblack black\n00000\n00000\n00000\n10100\n01000\n\nWall\nblack black\n01110\n01110\n01110\n01110\n01110\n\nBadKKKK\nblack black\n10001\n01010\n00100\n01010\n10001\n\nBadKKKK2\nblack black \n10001\n01010\n00100\n01010\n10001\n\nBadKKKK3\nblack black \n10001\n01010\n00100\n01010\n10001\n\nBadKKKK4\nblack black \n10001\n01010\n00100\n01010\n10001\n\n(architecture)\n\nDoor\nblack black\n00000\n00000\n00010\n00000\n00000\n\nHousewalltop\ngreen green green black green\n33333\n44444\n01210\n01210\n01210\n\nHousewallIIIII\ngreen green green green black\n01210\n01210\n01210\n01210\n01210\n\nFlowers\ngreen black green black black black\n30035\n02103\n24200\n02001\n01003\n\nPath\nblack black\n00001\n00000\n01000\n00010\n00000\n\nPathmessage1\nblack black\n00001\n00000\n01000\n00010\n00000\n\nPathmessage2\nblack black\n00001\n00000\n01000\n00010\n00000\n\nFakeOutdoors\ngreen black\n00010\n00100\n10000\n00001\n01000\n\n=======\nLEGEND\n=======\n\n, = Outdoors \n! = LLLLL\n. = Background\n[ = Intro\n] = Intro2\n- = intro3\n_ = intro4\n* = Player\n# = Wall\n+ = MMMM\n0 = Face\n1 = LeftJJJJ\n2 = MidJJJJ\n3 = RightJJJJ\n4 = VVVV\n5 = k33k3k23\n6 = SAAAAon\n7 = UUUUU\nA = FFFFFF\nB = GGG\ne = Scoring\nF = RRRRRRQQQQQQQQion\nI = XXXXglass\nL = WWWW\nM = SSSSQQQQQQQQion\nO = DDDD\nP = CCCCC\nQ = Target\nT = Socket\nU = OOOOe \nX = KKKK\nY = Phone \nZ = Outdoortarget\n9 = tuteGGG\n& = tuteFFFFFF \n£ = tuteface\n$ = WWWWwarning\n\" = flowertrigger\n' = flowertrigger2\n% = tuteOOOOe\n{ = tuteSSSSQQQQQQQQion\n} = tuteRRRRRRQQQQQQQQion\n(outdoors)\nG = Door \nJ = Flowers\nR = Path\nK = HousewallIIIII\nN = Housewalltop\nC = pathmessage1\nD = Pathmessage2\n8 = Outdoormessage1\nS = Outdoormessage2\nW = Outdoormessage3\n\ngap = background or outdoors or path or outdoormessage2 or outdoormessage1 or outdoormessage3\n\nDDDDularities = DDDDularity or DDDDularity2 or DDDDularity3\nDDDDs = DDDD or DDDD2 or blackDDDD or blackDDDD2 or blackDDDD3 or blackDDDD4 \n\nTTTTopalypse = d123d12d12derTTTT or d123d12d12derZZZZZZ1 or d123d12d12derZZZZZZ2 or d123d12d12derZZZZZZ3\nblackGGGs = blackGGG or blackGGG2\npinkGGGs = pinkGGG or pinkGGG2\nFFFFFFs = FFFFFF or FFFFFF2 or FFFFFF3 or FFFFFF4 or FFFFFF5\nHHHHHHdGGGs = HHHHHHdGGG or HHHHHHdGGG2\nif90345if0934i90f34s = if90345if0934i90f34 or if90345if0934i90f342 or if90345if0934i90f343\nslappedGGGs = pinkGGGs or pinkGGGs or HHHHHHdGGGs\nfaces = Face or Sidefaceleft or Sidefaceright or Sidefaceup or sidefacedown or if90345if0934i90f34s or sidefaceup2\nGGGs = GGG or blackGGGs or pinkGGGs or HHHHHHdGGGs\nTTTTs = CCCCC or CCCCC2 or CCCCC3 or CCCCC4 or CCCCC5 or CCCCC6 or CCCCC7 or CCCCC8 or CCCCC9 or CCCCC10 or CCCCCa or CCCCCb or CCCCCc or CCCCCd or CCCCCe\nWWWWs = WWWW or WWWW2\n\nResults = KKKK or badKKKK or KKKK2 or badKKKK2 or KKKK2 or badKKKK2 or KKKK3 or badKKKK3 or KKKK4 or badKKKK4\nStuff = UUUUU or sAAAAon or XXXXglass or phone or socket or g5432g5glass or ZZZZZZglass or WWWWs or mess\nArchitecture = wall or door \nYYYYYYYs = OOOOe or SSSSQQQQQQQQion or RRRRRRQQQQQQQQion or g5432g5glass or ZZZZZZglass or tuteRRRRRRQQQQQQQQion or tuteSSSSQQQQQQQQion or tuteOOOOe\nscoretrack = scoring or MMMM or LLLLL or leftJJJJ or midJJJJ or rightJJJJ or target or outdoortarget\n\nEEEE = TTTTs or k33k3k23 or GGGs or DDDDs or Faces or VVVV or FFFFFFs or BBBNNNCCCCC or BBBNNNCCCCC2 or BBBNNNCCCCC3 or BBBNNNCCCCC4 or BBBNNNplayer or BBBNNNplayer2 or BBBNNNplayer3 or BBBNNNplayer4 or tuteGGG or tuteFFFFFF or tuteface \n\nAAAApedplayers = AAAApedplayer or AAAApedplayer2 or AAAApedplayer3 or AAAApedplayer4 or AAAApedplayer5 or AAAApedplayer6\n\nStudio = flowers or housewalltop or housewallIIIII \nPaths = path or pathmessage1 or pathmessage2 \n\nEverything = YYYYYYYs or stuff or architecture or studio or paths or EEEE or results or outdoors or scoretrack or player \n\n=======\nSOUNDS\n=======\n\nTTTTs move 81432307\nFFFFFFs move 30911708\nGGGs move 76441308\nDDDDs move 59578908\nk33k3k23 move 83753708\nVVVV move 88751108\nFaces move 46152509\nEEEE move 53209307\n\nAAAApedplayers move 62896704\n\nplayer cantmove 77916504\nKKKK create 97214303\nbadKKKK create 11123702\n\nSSSSQQQQQQQQion move 51210708\nRRRRRRQQQQQQQQion move 30863108\nOOOOe move 80548907\n\nstuff move 34367907\n\nEndlevel 48242503\nEndgame 9005308\nclosemessage 71913507\nstartlevel 13337700\n\n================\nCOLLISIONLAYERS\n================\nBackground, \nOutdoors, Intro, Intro2, intro3, intro4, outdoormessage1, outdoormessage2, outdoormessage3 \nPaths\nPlayer, EEEE, YYYYYYYs, Results, stuff, architecture, studio, AAAApedplayers, \nScoretrack\nDDDDularities, BBBNNNplayer, TTTTopalypse, fakeoutdoors, WWWWwarning, WWWWwarning2, flowertrigger, flowertrigger2\n======\nRULES\n======\n\n(everything that moves)\n[ > Player | EEEE ] -> [ > Player | > EEEE ]\n[ > Player | YYYYYYYs ] -> [ > Player | > YYYYYYYs ]\n[ > Player | Stuff ] -> [ > Player | > Stuff ]\n\n(disasters )\n[ DDDDularities ] -> [ randomdir DDDDularities ]\n[ everything | ... | DDDDularities ] -> [ > everything | ... | DDDDularities ]\n\n[ > everything | DDDDularity ] -> [ background | DDDDularity2 ] Message THIS IS A MESSAGE\n[ > everything | DDDDularity2 ] -> [ | DDDDularity3 ]\n[ > everything | DDDDularity3 ] -> [ > everything | DDDDularity2 ]\n\n(facesitting)\n[ > FFFFFFs | faces ] -> [ background | badKKKK ] Message THIS IS A MESSAGE\n[ > GGGs | faces ] -> [ | badKKKK ] Message THIS IS A MESSAGE\n\n(one-offs)\n[ > DDDDs | XXXXglass ] -> [ DDDDs | XXXXglass ] Message THIS IS A MESSAGE\n[ > XXXXglass | DDDD ] -> Message DISPLAY MESSAGE\n\n[ > VVVV | k33k3k23 ] -> [ | badKKKK ] Message THIS IS A MESSAGE\n[ > k33k3k23 | VVVV ] -> [ k33k3k23 | VVVV ] Message THIS IS A MESSAGE\n\n\n(CCCCC level) \n\n[ > CCCCC | tuteGGG ] -> [ | KKKK ] Message THIS IS A MESSAGE\n[ > CCCCC | tuteFFFFFF ] -> [ | KKKK ] Message THIS IS A MESSAGE\n[ > CCCCC | tuteface ] -> [ | KKKK ] Message THIS IS A MESSAGE\n\n\n(scoring)\n\n[ KKKK4 ] -> [ ]\n[ KKKK3 ] -> [ KKKK4 ]\n[ KKKK2 ] -> [ KKKK3 ]\n\n[ BadKKKK4 ] -> [ ]\n[ BadKKKK3 ] -> [ BadKKKK4 ]\n[ BadKKKK2 ] -> [ BadKKKK3 ]\n\n[ KKKK ] [ LLLLL | MMMM | Scoring ] -> [ KKKK2 ] [ LLLLL | LLLLL | MMMM ]\n[ KKKK ] [ LLLLL | MMMM | Target ] -> [ KKKK2 ] [ LLLLL | LLLLL | MMMM ]\n[ BadKKKK ] [ LLLLL | LLLLL | MMMM ] -> [BadKKKK2] [ LLLLL | MMMM | Scoring ]\n\n(dead things crumble to dust)\n[ BBBNNNCCCCC4 ] -> [ ]\n[ BBBNNNCCCCC3 ] -> [ BBBNNNCCCCC4 ]\n[ BBBNNNCCCCC2 ] -> [ BBBNNNCCCCC3 ]\n[ BBBNNNCCCCC ] -> [ BBBNNNCCCCC2 ]\n\n[ BBBNNNplayer4 ] -> [ ]\n[ BBBNNNplayer3 ] -> [ BBBNNNplayer4 ]\n[ BBBNNNplayer2 ] -> [ BBBNNNplayer3 ]\n[ BBBNNNplayer ] -> [ BBBNNNplayer2 ]\n\n\n( special PPPPP instructions for level 2 )\n\nright [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 1\nleft [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 2\nup [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 3\ndown [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 4\n\nright [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 5\nleft [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 6\nup [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 7\ndown [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 8\n\nright [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ] \nleft [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ]\nup [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ]\ndown [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ]\n\nright [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 9\nleft [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 10\nup [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 11\ndown [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 12\n\nright [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 13\nleft [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 14\nup [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 15\ndown [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 16\n\nright [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 17\nleft [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 18\nup [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 19\ndown [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 20\n\n\n(objects)\n\n[ > phone | OOOOe ] -> [ > phone | OOOOe ] Message THIS IS A MESSAGE 21\n\n\n[ > phone | RRRRRRQQQQQQQQion ] -> [ | KKKK ] Message THIS IS A MESSAGE 22\n\n[ > phone | SSSSQQQQQQQQion ] -> [ | KKKK ] Message THIS IS A MESSAGE 23\n[ > phone | DDDDs ] -> [ | KKKK ] Message THIS IS A MESSAGE 24\n\n[ > phone | TTTTs ] -> [ phone | TTTTs ] Message THIS IS A MESSAGE 25\n\n[> UUUUU | XXXXglass ] -> [ UUUUU | XXXXglass ] Message THIS IS A MESSAGE 26\n[> SAAAAon | XXXXglass ] -> [ SAAAAon | XXXXglass ] Message THIS IS A MESSAGE 27\n\n[> XXXXglass | socket ] -> [ | socket ] Message THIS IS A MESSAGE 28 \n[> g5432g5glass | socket ] -> [ | socket ] Message THIS IS A MESSAGE 29\n[> ZZZZZZglass | socket ] -> [ | socket ] Message THIS IS A MESSAGE 30\n\n[ > YYYYYYYs | phone ] -> [ | phone ] Message THIS IS A MESSAGE 31\n[ > phone | XXXXglass ] -> [ | XXXXglass ] Message THIS IS A MESSAGE 32\n\n[> TTTTs | Socket ] -> [ BBBNNNCCCCC | Socket ] Message THIS IS A MESSAGE 33\n[> TTTTs | Phone ] -> [ TTTTs | Phone ] Message THIS IS A MESSAGE 34 \n[ > TTTTs | XXXXglass ] -> [ TTTTs | XXXXglass ] Message THIS IS A MESSAGE 35\n\n[> player | k33k3k23 | socket ] -> [ | BBBNNNplayer | socket ] Message THIS IS A MESSAGE 36\n[> player | VVVV | socket ] -> [ player | VVVV | socket ] Message THIS IS A MESSAGE 37\n[> EEEE | Socket ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 38\n[> Socket | EEEE ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 39\n\n[ > player | YYYYYYYs | socket ] -> [ | BBBNNNplayer | socket ] Message THIS IS A MESSAGE 40\n\n[> Phone | FFFFFFs ] -> [ Background | FFFFFFs ] Message THIS IS A MESSAGE 41\n[> Phone | GGGs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 42\n\n[ > g5432g5glass | face ] -> [ | badKKKK ] Message THIS IS A MESSAGE 43\n[ > g5432g5glass | EEEE ] -> [ | badKKKK ] Message THIS IS A MESSAGE 44\n\n[ > ZZZZZZglass | face ] -> [ | KKKK ] Message THIS IS A MESSAGE 45\n[ > face | ZZZZZZglass ] -> [ | KKKK ] Message THIS IS A MESSAGE 46\n[ > ZZZZZZglass | FFFFFF ] -> [ | FFFFFF ] Message THIS IS A MESSAGE 47\n[ > ZZZZZZglass | GGG ] -> [ | badKKKK ] Message THIS IS A MESSAGE 48\n\n[ > XXXXglass | faces ] -> [ | faces ] Message THIS IS A MESSAGE 49\n[ > faces | XXXXglass ] -> [ faces | ] Message THIS IS A MESSAGE 50\n\nup down [ > phone | stuff ] -> [ phone | stuff ] Message THIS IS A MESSAGE 51\nleft right [ > phone | stuff ] -> [ phone | stuff ] Message THIS IS A MESSAGE 52\n\n\n\n[ > phone | face ] -> [ phone | face ] Message THIS IS A MESSAGE 53\n[ > GGGs | phone ] -> [ GGGs | phone ] Message THIS IS A MESSAGE 54\n[ > face | phone ] -> [ face | phone ] Message THIS IS A MESSAGE 55\n\n[ > UUUUU | socket ] -> [ UUUUU | socket ] Message THIS IS A MESSAGE 56\n\n\n[ > stuff | XXXXglass ] -> [ | XXXXglass ]\n[ > stuff | g5432g5glass ] -> [ | g5432g5glass ]\n[ > stuff | ZZZZZZglass ] -> [ | ZZZZZZglass ]\n\n\n( WWWW )\n\n[ AAAApedplayer6 ] -> [ player ] Message THIS IS A MESSAGE 57\n[ AAAApedplayer5 ] -> [ AAAApedplayer6 ]\n[ AAAApedplayer4 ] -> [ AAAApedplayer5 ]\n[ AAAApedplayer3 ] -> [ AAAApedplayer4 ] \n[ AAAApedplayer2 ] -> [ AAAApedplayer3 ]\n[ AAAApedplayer ] -> [ AAAApedplayer2 ] Message THIS IS A MESSAGE 58\n[ > player | WWWWs ] -> [ | < AAAApedplayer ] Message THIS IS A MESSAGE 59\n\n[ WWWWwarning ] [ WWWWwarning2 ] -> [ WWWWwarning2 ] [ WWWWwarning2 ]\n[ > player | WWWWwarning ] -> [ > player | WWWWwarning2 ] Message THIS IS A MESSAGE 60\n\nup [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 61\ndown [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 62\nup [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 63\nup [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 64\n\n[ > DDDDs | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 65\n[ > CCCCC | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 66\n[ > FFFFFFs | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 67\n[ > GGGs | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 68\n[ > k33k3k23 | WWWWs ] -> [ | badKKKK ] Message THIS IS A MESSAGE 69\n[ > VVVV | WWWWs ] -> [ | badKKKK ] Message THIS IS A MESSAGE 70\n\n\n(basic sex acts)\n\nup down [ > TTTTs | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE 71\nleft right [ > TTTTs | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE 72\n\nup [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 73\nleft [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 74\ndown [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 75\nright [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 76\n\nleft [ > FFFFFF | TTTTs ] -> [ | KKKK ] Message THIS IS A MESSAGE 77\nright [ > FFFFFF | TTTTs ] -> [ | KKKK ] \nup [ > FFFFFF | TTTTs ] -> [ | KKKK ] Message THIS IS A MESSAGE 78\ndown [ > FFFFFF | TTTTs ] -> [ | KKKK ] \n[ > TTTTs | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE 79\nright [ > FFFFFF | FFFFFF ] -> [ FFFFFF2 | FFFFFF2 ] Message THIS IS A MESSAGE 80\nleft up down [ > FFFFFF | FFFFFF ] -> [ FFFFFF2 | FFFFFF2 ]\ndown [ > FFFFFF2 | FFFFFF2 ] -> [ | KKKK ] Message THIS IS A MESSAGE 81\nleft up right [ > FFFFFF2 | FFFFFF2 ] -> [ | KKKK ]\n\n(UUUUUs) \n[ > FFFFFF3 | UUUUU ] -> [ background | KKKK ] \n[ > FFFFFFs | UUUUU ] -> [ FFFFFF3 | UUUUU ] Message THIS IS A MESSAGE 82\n\n[ > UUUUU | FFFFFFs ] -> [ background | sAAAAon ] Message THIS IS A MESSAGE 83\n\n\n[ > UUUUU | face ] -> [ UUUUU | face ] Message THIS IS A MESSAGE 84\n[ > sAAAAon | face ] -> [ | KKKK ] Message THIS IS A MESSAGE 85\n\n(sAAAAons) \n[ > sAAAAon | FFFFFFs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 86\n[ > sAAAAon | GGGs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 87\n[ > sAAAAon | DDDDs ] -> [ sAAAAon | DDDDs ] Message THIS IS A MESSAGE 88\n[ > sAAAAon | faces ] -> [ background | KKKK ] \n\n[ > FFFFFFs | sAAAAon ] -> [ background | KKKK ] \n[ > GGGs | sAAAAon ] -> [ background | KKKK ]\n[ > EEEE | sAAAAon ] -> [ EEEE | sAAAAon ]\n[ > faces | sAAAAon ] -> [ faces | sAAAAon ] Message THIS IS A MESSAGE 89\n\nup down [ > UUUUU | GGGs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 90\nleft right [ > UUUUU | GGGs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 91 \n\n[ > stuff | stuff | stuff | stuff ] -> [ stuff| stuff | stuff | stuff ] Message THIS IS A MESSAGE 92\n\n\n(the k33k3k23's jobs)\n\n[ > k33k3k23 | FFFFFF ] -> [ k33k3k23 | FFFFFF2 ] Message THIS IS A MESSAGE 93\n[ > k33k3k23 | FFFFFF2 ] -> [ k33k3k23 | FFFFFF3 ] \n[ > k33k3k23 | FFFFFF3 ] -> [ k33k3k23 | FFFFFF4 ] \n[ > k33k3k23 | FFFFFF4 ] -> [ k33k3k23 | FFFFFF5 ]\nup [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 94\ndown [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 95\nleft [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 96\nright [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 97\n\n[ > k33k3k23 | k33k3k23 ] -> [ k33k3k23 | k33k3k23 ] Message THIS IS A MESSAGE 98\nleft down [ > VVVV | VVVV ] -> [ VVVV | VVVV ] Message THIS IS A MESSAGE 99\nup right [ > VVVV | VVVV ] -> [ VVVV | VVVV ]\n\n(FFFFFFs)\n\n[ > FFFFFFs | GGG ] -> [ FFFFFFs | GGG ] Message THIS IS A MESSAGE 100\n[ > FFFFFFs | DDDD ] -> [ FFFFFFs | DDDD ] Message THIS IS A MESSAGE q1\n\n(piss)\n\n[ > OOOOe | TTTTs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q2\n[ > OOOOe | FFFFFFs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q3\n[ > OOOOe | SSSSQQQQQQQQion ] -> [ Background | BadKKKK ] \n[ > OOOOe | RRRRRRQQQQQQQQion ] -> [ Background | OOOOe ] Message THIS IS A MESSAGE q4\n[ > OOOOe | Face ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q5\n[ > OOOOe | k33k3k23 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q6\n[ > OOOOe | VVVV ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q7\n[ > OOOOe | GGGs ] -> [ Background | BadKKKK ]\n\n[ > OOOOe | OOOOe ] -> [ | OOOOe ] \n\n[ > OOOOe | EEEE ] -> [ Background | BadKKKK ]\n[ > RRRRRRQQQQQQQQion | EEEE ] -> [ Background | BadKKKK ]\n\n[ > RRRRRRQQQQQQQQion | SSSSQQQQQQQQion ] -> [ | BadKKKK ] Message THIS IS A MESSAGE q8\n[ > SSSSQQQQQQQQion | RRRRRRQQQQQQQQion ] -> [ | KKKK ] Message THIS IS A MESSAGE q9\n\n[ > TTTTs | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q10\n[ > FFFFFFs | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q11\n[ > SSSSQQQQQQQQion | OOOOe ] -> [ Background | OOOOe ] Message THIS IS A MESSAGE q12\n[ > RRRRRRQQQQQQQQion | OOOOe ] -> [ Background | OOOOe ] Message THIS IS A MESSAGE q13\n[ > Face | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q14\n[ > k33k3k23 | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q15\n[ > VVVV | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q16\n[ > GGG | OOOOe ] -> [ Background | BadKKKK ] \n\n(complicated things with glasses) \n\n[ > OOOOe | XXXXglass ] -> [ | g5432g5glass ]\n[ > RRRRRRQQQQQQQQion | XXXXglass ] -> [ | g5432g5glass ]\n[ > SSSSQQQQQQQQion | XXXXglass ] -> [ | ZZZZZZglass ]\n\n[ > OOOOe | ZZZZZZglass ] -> [ | g5432g5glass ]\n[ > RRRRRRQQQQQQQQion | ZZZZZZglass ] -> [ | g5432g5glass ]\n\n[ > SSSSQQQQQQQQion | g5432g5glass ] -> [ | ZZZZZZglass ]\n\n\n(DDDDs)\n\n[ > DDDDs | TTTTs ] -> [ DDDDs | TTTTs ] Message THIS IS A MESSAGE q17\n\n[ > DDDDs | FFFFFFs ] -> [ DDDDs | FFFFFF ] Message THIS IS A MESSAGE q18\n[ > DDDDs | SSSSQQQQQQQQion ] -> [ DDDD | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q19\n[ > DDDDs | Face ] -> [ DDDDs | Face ] Message THIS IS A MESSAGE q20\n[ > DDDDs | k33k3k23 ] -> [ DDDDs | k33k3k23 ] Message THIS IS A MESSAGE q21\n[ > DDDDs | GGG ] -> [ DDDDs | GGG ] Message THIS IS A MESSAGE q22\n\n[ > FFFFFFs | DDDDs ] -> [ FFFFFFs | DDDD ]\n[ > SSSSQQQQQQQQion | DDDDs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q23\n[ > SSSSQQQQQQQQion | Face ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q24\n\n[ > Face | DDDDs ] -> [ Face | DDDDs ] Message THIS IS A MESSAGE q25\n[ > DDDDs | Face | DDDDs ] -> [ DDDDs | Face | DDDDs ] Message THIS IS A MESSAGE q26\n\n[ > VVVV | DDDDs ] -> [ Background | BadKKKK ]\n[ > GGG | DDDDs ] -> [ GGG | DDDDs ] Message THIS IS A MESSAGE q27\n\n[ DDDDs | DDDDs | DDDDS | DDDDs | DDDDs | DDDDs | DDDDs ] -> [ Background | Background | Background | DDDDularity | Background | Background | Background ] Message THIS IS A MESSAGE q29 \n[ > DDDDs | DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q29\n[ > DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q30\n[ > DDDDs | DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q31\n[ > DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q32\n[ > DDDDs | DDDDs ] -> [ DDDDs | DDDDs ] Message THIS IS A MESSAGE q33\n\n(kissing)\nright [ > Faces | Faces ] -> [ Sidefaceleft | Sidefaceright ] Message THIS IS A MESSAGE q34\nleft [ > Faces | Faces ] -> [ Sidefaceright | Sidefaceleft ] Message THIS IS A MESSAGE q35\nup [ > Faces | Faces ] -> [ Sidefaceup | Sidefacedown ] Message THIS IS A MESSAGE q36\ndown [ > Faces | Faces ] -> [ Sidefacedown | Sidefaceup ] Message\n\n[ > GGGs | Outdoors ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q38\n\nup down [ > TTTTs | GGGs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q39\nleft [ > TTTTs | GGGs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q40\nright [ > TTTTs | GGGs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q41\n[ > GGGs | TTTTs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q42\n\n\n[ > k33k3k23 | Outdoors ] -> [ > k33k3k23 | > Outdoors ]\n[ > FFFFFFs | Outdoors ] -> [ Background | BadKKKK ]\n[ > TTTTs | Outdoors ] -> [ Background | BadKKKK ]\n[ > SSSSQQQQQQQQion | Outdoors ] -> [ Background | BadKKKK ]\n[ > RRRRRRQQQQQQQQion | Outdoors ] -> [ Background | BadKKKK ]\n[ > OOOOe | Outdoors ] -> [ | Outdoors ] Message THIS IS A MESSAGE q43\n\n[ > FFFFFFs | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q44\n[ > TTTTs | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q45\n[ > SSSSQQQQQQQQion | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q46\n[ > RRRRRRQQQQQQQQion | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q47\n[ > OOOOe | Path | Path | Path ] -> [ > OOOOe | Path | Path | Path ] Message THIS IS A MESSAGE q48\n\n\n[ > Outdoors | Faces | Faces ] -> [ Outdoors | Faces | Faces ] Message THIS IS A MESSAGE q49\n\n\n(smacks and slaps)\nup down [ > k33k3k23 | GGG ] -> [ k33k3k23 | blackGGG ] Message THIS IS A MESSAGE q50\nleft right [ > k33k3k23 | GGG ] -> [ k33k3k23 | blackGGG ] Message THIS IS A MESSAGE q51\n[ > k33k3k23 | blackGGGs ] -> [k33k3k23 | blackGGG ] Message THIS IS A MESSAGE q52\n[ > k33k3k23 | blackGGGs ] -> [k33k3k23 | HHHHHHdGGG ] Message THIS IS A MESSAGE q53\n[ > k33k3k23 | HHHHHHdGGGs ] -> [Background | BadKKKK ] Message THIS IS A MESSAGE q54\n\n[> k33k3k23 | if90345if0934i90f34s ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q55\n[ > k33k3k23 | Faces ] -> [ k33k3k23 | if90345if0934i90f34 ] Message THIS IS A MESSAGE q56\n\n[> Faces | k33k3k23 ] -> [ Face | k33k3k23 ] Message THIS IS A MESSAGE q57\n\n[ > k33k3k23 | DDDD ] -> [ k33k3k23 | DDDD2 ] Message THIS IS A MESSAGE q58\n[ > k33k3k23 | DDDD2 ] -> [ k33k3k23 | blackDDDD4 ] Message THIS IS A MESSAGE q59\n[ > k33k3k23 | blackDDDD ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q60\n[ > k33k3k23 | blackDDDD2 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q61\n[ > k33k3k23 | blackDDDD3 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q62\n[ > k33k3k23 | blackDDDD4 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q63\n\n(VVVVing and punching)\n\n[> VVVV | Faces ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q64\n[ > VVVV | FFFFFFs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q65\n[ > VVVV | GGGs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q66\n\n[ > EEEE | VVVV ] -> [ EEEE | VVVV ] \n\n(remaining CCCCCes)\n[ > CCCCCA | CCCCCA ] -> [ CCCCCB | CCCCCB ]\n[ > CCCCCB | CCCCCB ] -> [ CCCCCC | CCCCCC ]\n[ > CCCCCC | CCCCCC ] -> [ CCCCCD | CCCCCD ]\n[ > CCCCCD | CCCCCD ] -> [ CCCCCE | CCCCCE ]\n[ > CCCCCE | CCCCCE ] -> [ | KKKK ]\n[ > TTTTs | TTTTs ] -> [ CCCCCA | CCCCCA ] Message THIS IS A MESSAGE q77\n\n[ > k33k3k23 | CCCCC ] -> [ k33k3k23 | CCCCC3 ] Message THIS IS A MESSAGE q78\n[ > k33k3k23 | CCCCC2 ] -> [ k33k3k23 | CCCCC5 ] Message THIS IS A MESSAGE q79\n[ > k33k3k23 | CCCCC3 ] -> [ k33k3k23 | CCCCC5 ] Message THIS IS A MESSAGE q80\n[ > k33k3k23 | CCCCC4 ] -> [ k33k3k23 | CCCCC7 ] Message THIS IS A MESSAGE q81\n[ > k33k3k23 | CCCCC5 ] -> [ k33k3k23 | CCCCC7 ] Message THIS IS A MESSAGE q82\n[ > k33k3k23 | CCCCC6 ] -> [ k33k3k23 | CCCCC9 ] Message THIS IS A MESSAGE q83\n[ > k33k3k23 | CCCCC7 ] -> [ k33k3k23 | CCCCC9 ] Message THIS IS A MESSAGE q84\n[ > k33k3k23 | CCCCC8 ] -> [ k33k3k23 | CCCCC10 ]\n[ > k33k3k23 | CCCCC9 ] -> [ background | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q85\n[ > k33k3k23 | CCCCC10 ] -> [ background | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q86\n\n[ > TTTTs | k33k3k23 ] -> [ Background | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q87\n\nright [ > Faces | FFFFFF ] -> [ sidefaceleft | FFFFFF2 ] Message THIS IS A MESSAGE q88\nleft [ > Faces | FFFFFF ] -> [ sidefaceright | FFFFFF2 ] Message THIS IS A MESSAGE q89\nup [ > faces | FFFFFF ] -> [ sidefaceup | FFFFFF2 ] Message THIS IS A MESSAGE q90\ndown [ > faces | FFFFFF ] -> [ sidefacedown | FFFFFF2 ] Message THIS IS A MESSAGE q91\n\n\n[ > Faces | FFFFFF2 ] -> [ Faces | FFFFFF3 ] \n[ > Faces | FFFFFF3 ] -> [ Faces | FFFFFF4 ]\n[ > Faces | FFFFFFs ] -> [ | KKKK ] \n[ > Faces | SSSSQQQQQQQQion ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 101\n\n[ > VVVV | GGG ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 102\n\n[ > CCCCC | DDDDs ] -> [ CCCCC | DDDDs ] Message THIS IS A MESSAGE\n[ > DDDDs | CCCCC | DDDDs ] -> [ DDDDs | SSSSQQQQQQQQion | DDDDs ] Message THIS IS A MESSAGE 103\n[ > CCCCC | DDDDs | DDDDs ] -> [ KKKK | | ] Message THIS IS A MESSAGE.104\n\n[ > CCCCC | EEEE ] -> [ CCCCC | EEEE ] Message THIS IS A MESSAGE.105\n[ > CCCCC | stuff ] -> [ CCCCC | stuff ] Message THIS IS A MESSAGE.106\n[ > stuff | CCCCC ] -> [ stuff | CCCCC ] Message THIS IS A MESSAGE.107\n\n( slaps fade )\n[ if90345if0934i90f343 ] -> [ face ]\n[ if90345if0934i90f342 ] -> [ if90345if0934i90f343 ]\n[ if90345if0934i90f34 ] -> [ if90345if0934i90f342 ]\n\n[ blackGGG2 ] -> [ GGG ]\n[ blackGGG ] -> [ blackGGG2 ]\n\n[ blackGGG2 ] -> [ blackGGG ]\n[ blackGGG ] -> [ blackGGG2 ]\n\n[ HHHHHHdGGG2 ] -> [ blackGGG ]\n[ HHHHHHdGGG ] -> [ HHHHHHdGGG2 ]\n\n[ blackDDDD2 ] -> [ DDDD ]\n[ blackDDDD3 ] -> [ blackDDDD2 ]\n[ blackDDDD4 ] -> [ blackDDDD3 ] \n\n(erections too)\n[ CCCCC2 ] -> [ CCCCC ]\n[ CCCCC3 ] -> [ CCCCC2 ]\n[ CCCCC4 ] -> [ CCCCC3 ]\n[ CCCCC5 ] -> [ CCCCC4 ]\n[ CCCCC6 ] -> [ CCCCC5 ]\n[ CCCCC7 ] -> [ CCCCC6 ]\n[ CCCCC8 ] -> [ CCCCC7 ]\n[ CCCCC9 ] -> [ CCCCC8 ]\n[ CCCCC10 ] -> [ CCCCC9 ]\n\n\n( faces and EEEE parts )\nright [ > Faces | GGGs ] -> [ Sidefaceleft | GGGs ]\nleft [ > Faces | GGGs ] -> [ Sidefaceright | GGGs ]\nup [ > sidefaceup2 | GGGs ] -> [ | KKKK ] Message THIS IS A MESSAGE.108\nup [ > Faces | GGGs ] -> [ Sidefaceup2 | GGGs ] Message THIS IS A MESSAGE.109\ndown [ > Faces | GGGs ] -> [ Sidefacedown | GGGs ] \n\n\nright [ > Faces | DDDDs ] -> [ Sidefaceleft | DDDDs ]\nleft [ > Faces | DDDDs ] -> [ Sidefaceright | DDDDs ]\nup [ > Faces | DDDDs ] -> [ Sidefaceup | DDDDs ] \ndown [ > Faces | DDDDs ] -> [ Sidefacedown | DDDDs ]\n\n[ > DDDDs | faces | DDDDs ] -> [ DDDDs | faces | DDDDs ] Message THIS IS A MESSAGE.110\n\nright [ > Faces | TTTTs ] -> [ Sidefaceleft | TTTTs ]\nleft [ > Faces | TTTTs ] -> [ Sidefaceright | TTTTs ]\nup [ > Faces | TTTTs ] -> [ Sidefaceup | TTTTs ] Message THIS IS A MESSAGE.111\ndown [ > Faces | TTTTs ] -> [ Sidefacedown | TTTTs ] Message THIS IS A MESSAGE.112\n\n[ > Sidefacedown | TTTTs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE.113\n\n(intro level)\nright [ > player | housewalltop ] -> [ player | housewalltop ] Message THIS IS A MESSAGE.114\nleft [ > player | housewalltop ] -> [ player | housewalltop ] Message THIS IS A MESSAGE.115\nright [ > player | housewallIIIII ] -> [ player | housewallIIIII ] Message THIS IS A MESSAGE.116\nleft [ > player | housewallIIIII ] -> [ player | housewallIIIII ] Message THIS IS A MESSAGE.117\n\n[ flowertrigger ] [> player | flowers ] -> [flowertrigger2] [ player | flowers ] Message THIS IS A MESSAGE.118\n[ flowertrigger2 ] [> player | flowers ] -> [ ] [ player | flowers ] Message THIS IS A MESSAGE.119\n\n[ > player | pathmessage1 ] -> [ > player | path ] Message THIS IS A MESSAGE.120\n[ > player | pathmessage2 ] -> [ > player | path ] Message THIS IS A MESSAGE.121\n\n[ outdoortarget ] [ > player | door ] -> [ outdoors ] [ > player | door ]\n\n(explanations)\n[ > player | intro ] -> [ > player | background ] Message THIS IS A MESSAGE.122\n[ > player | intro2 ] -> [ > player | background ] Message THIS IS A MESSAGE.123\n[ > player | intro3 ] -> [ > player | background ] Message THIS IS A MESSAGE.124\n[ > player | intro4 ] -> [ > player | background ] Message THIS IS A MESSAGE.125\n\n[ > player | outdoormessage1 ] -> [ > player | outdoors ] Message THIS IS A MESSAGE.126\n[ > player | outdoormessage2 ] -> [ > player | outdoors ] Message THIS IS A MESSAGE.127\n[ > player | outdoormessage3 ] -> [ > player | outdoors ] Message THIS IS A MESSAGE.128\n\n\n\n( ZZZZZZ, wanking, CCCCCes otherwise unaddressed ) \n[ > SSSSQQQQQQQQion | GGGs ] -> [ | KKKK ] Message THIS IS A MESSAGE.129\n[ > SSSSQQQQQQQQion | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE.130\nup down [ > SSSSQQQQQQQQion | faces ] -> [ | KKKK ] Message THIS IS A MESSAGE.131\nleft right [ > SSSSQQQQQQQQion | faces ] -> [ | KKKK ] Message THIS IS A MESSAGE.132\n[ > SSSSQQQQQQQQion | EEEE ] -> [ SSSSQQQQQQQQion | EEEE ] Message THIS IS A MESSAGE.133\n\n[ > CCCCC | VVVV ] -> [ | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.134\n[ > VVVV | CCCCC ] -> [ | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.135\n\n\n( TTTTopalypse )\n[ SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion ] -> [ d123d12d12derTTTT | d123d12d12derTTTT | d123d12d12derTTTT | d123d12d12derTTTT ] Message THIS IS A MESSAGE.136\n[ > SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion ] -> [ SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.137\n[ > SSSSQQQQQQQQion | SSSSQQQQQQQQion ] -> [ SSSSQQQQQQQQion | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.138\n\n[ d123d12d12derZZZZZZ2 ] -> [ d123d12d12derZZZZZZ3 ]\n[ d123d12d12derZZZZZZ1 ] -> [ d123d12d12derZZZZZZ2 ]\n\n[ | d123d12d12derZZZZZZ3 ] -> [ d123d12d12derZZZZZZ1 | d123d12d12derZZZZZZ3 ] \n[ | d123d12d12derZZZZZZ2 ] -> [ d123d12d12derZZZZZZ1 | d123d12d12derZZZZZZ2 ]\n[ | d123d12d12derTTTT ] -> [ d123d12d12derZZZZZZ1 | d123d12d12derTTTT ]\n\n[ d123d12d12derTTTT | ] -> [ d123d12d12derTTTT | d123d12d12derZZZZZZ1 ] \n\n(tuteYYYYYYYs) \n\n[ RRRRRRQQQQQQQQion ] [ tuteRRRRRRQQQQQQQQion ] -> [ RRRRRRQQQQQQQQion ] [ RRRRRRQQQQQQQQion] \n[ SSSSQQQQQQQQion ] [ tuteSSSSQQQQQQQQion ] -> [ SSSSQQQQQQQQion ] [ SSSSQQQQQQQQion ]\n[ OOOOe ] [ tuteOOOOe ] -> [ OOOOe ] [ OOOOe ]\n\n[ > player | tuteOOOOe ] -> [ > player | OOOOe ] Message THIS IS A MESSAGE.139\n[ > player | tuteSSSSQQQQQQQQion ] -> [ > player | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.140\n[ > player | tuteRRRRRRQQQQQQQQion ] -> [ > player | RRRRRRQQQQQQQQion ] Message THIS IS A MESSAGE.141\n \n[ > XXXXglass | YYYYYYYs ] -> [ XXXXglass | YYYYYYYs ] Message THIS IS A MESSAGE.142\n\n[ > YYYYYYYs | WWWW ] -> [ | WWWW ] Message THIS IS A MESSAGE.143\n\n[ > phone | EEEE ] -> [ > phone | EEEE ] Message THIS IS A MESSAGE.144\n\n[ > GGGs | GGGs ] -> [ GGGs | GGGs ] Message THIS IS A MESSAGE.145\n[ > GGGs | GGGs | GGGs ] -> [ GGGs | GGGs | GGGs ] Message THIS IS A MESSAGE.146\n[ > GGGs | GGGs | GGGs| GGGs ] -> [ GGGs | GGGs | GGGs | GGGs ] Message THIS IS A MESSAGE.147\n[ > GGGs | GGGs | GGGs | GGGs| GGGs ] -> [ GGGs | GGGs | GGGs | GGGs | GGGs ] Message THIS IS A MESSAGE.148\n\n==============\nWINCONDITIONS\n==============\n\nNo Target \nno outdoortarget \n\n=======\nLEVELS\n=======\n\nMessage AAAw1\n\nZJJ,NNNNNNNNN,JJJ\nJ,,,KKKKGKKKK,,,,\nJ,,,,,,JRJ,,,,,,,\nJ,,,,,,JRJJJ,,,,,\n,,,,,,,JDRRRJ,,,,\n,,,8,,,,JJJCRJ,,J\n,,,,,,,,,,JJRJ,,J\n,,,JJ,,,,,,,RJ*,J\n\",,,JJ,,,,,,R,,,,\n\n\nMessage AAAw2\n\n#eQe##I#T#9#Y#£#&#\n#eee#.............\n#eee#......P......\n#e+e#...P.....P...\n#e!e#......[......\n#e!e#######*######\n#123#,,,,J,R,,,,,,\n\nMessage AAAw3\n#eQe#..O...OO...O.\n#eee#..O.O..O..O..\n#e+e#.............\n#e!e#.I..%...}..{.\n#e!e#.............\n#e!e#.Y..%...}..{.\n#e!e#......]......\n#e!e#######*######\n#123#,,,,J,R,,,,,,\n\n\n\nMessage AAAw4\n\n#eQe#.....B.B.....\n#eee#.0.P.....A.A.\n#eee#.....5.5.....\n#eee#.O.4..5..5.P.\n#e+e#.............\n#e!e#..5..4.4..5..\n#e!e#......-......\n#e!e#######*######\n#e!e#,,,,J,R,,,,,,\n#123#,,S,,,R,J,J,,\n\n\nMessage AAAw5\n\n#eQe#.............\n#eee#.0..T...7..5.\n#eee#......M.$....\n#e+e#.B..I..$L$.A.\n#e!e#......F.$....\n#e!e#.O..Y...4..P.\n#e!e#.............\n#e!e#######*######\n#e!e#,,,,J,R,,,,,,\n#123#,,S,,,R,J,J,,\n\nMessage AAAw6\n\n#eQe#.....A.O...P.B.....\n#eee#.M.5..I..T..B..A.P.\n#eee#..U.....5.P.....A..\n#eee#.0.O..M..F..4..0.5.\n#eee#..I..L.......P..O..\n#eee#.A.U..7..O..P..0.T.\n#eee#..7.....4.5.....B..\n#eee#.P.Y..P..B..0..O.I.\n#e+e#........._.........\n#e!e##########*#########\n#e!e#,,,,,,,J,R,,,,,,,,,\n#e!e#,,,W,,,,,R,J,J,,,,,\n#123#,,,,,,,,JRRRRJ,,,,,\n\nMessage AAAw7\n\n\n", [0, 0, 0, 3, 0, 1, 1, 1, 2, 2, 2, 1, 0, 0, 3, 3, 3, 3, 2, 3, 3, 0, 0, 3, 0, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 0, 3, 3, 2, 3, 0, 0, 1, 1, 1, 0, 0, 3, 3], "background wall:0,0,0,0,0,0,0,background scoring:1,1,1,1,1,1,background leftjjjj:2,background target:3,1,1,background mmmm:4,\nbackground lllll:5,5,background midjjjj:6,1,1,1,1,1,1,background rightjjjj:7,0,0,0,0,0,0,0,0,\nbackground:8,8,8,8,0,background outdoors:9,background xxxxglass:10,8,8,8,8,0,9,0,background player:11,8,8,8,\n0,9,background socket:12,background ccccca:13,8,8,8,0,9,0,13,background cccccc:14,8,8,0,background flowers:15,background tuteggg:16,8,\n8,8,8,0,9,0,8,8,8,8,8,background path:17,background phone:18,8,8,8,8,0,\n9,0,8,8,8,8,0,9,background tuteface:19,8,8,8,8,0,9,0,8,8,\n8,8,0,9,background tuteffffff:20,8,8,8,8,0,9,0,8,8,8,8,0,9,\n", 3, "1645471800404.333"] ], [ `gallery: swap bot`, - ["title SwapBot\nauthor John M. Williams\nhomepage gate.itch.io\n\nrun_rules_on_level_start\nnorepeat_action\nagain_interval 0.05\n\n========\nOBJECTS\n========\n\nBackground\nGreen\n\nTrapDoor\nGreen Black\n00000\n01010\n00000\n01010\n00000\n\nHoleNormal\nBlack\n \nHoleTop\nBlack #282117\n11111\n00000\n00000\n00000\n00000\n\nSelected\nYellow\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\nCollectable\nYellow White\n.....\n..0..\n.000.\n..0..\n.....\n\nPasteTarget\nBlack\n\nDoor1\nRed DarkRed\n00000\n01010\n00000\n01010\n00000\n\nDoor1Down\nRed\n00000\n0...0\n0...0\n0...0\n00000\n\nDoor2\nBlue DarkBlue\n00000\n01010\n00000\n01010\n00000\n\nDoor2Down\nBlue\n00000\n0...0\n0...0\n0...0\n00000\n\nDoor3\nOrange Brown\n00000\n01010\n00000\n01010\n00000\n\nDoor3Down\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\nKey1\nRed Grey\n.....\n.100.\n.100.\n.100.\n.....\n\nKey2\nBlue Grey\n.....\n.100.\n.100.\n.100.\n.....\n\nKey3\nOrange Grey\n.....\n.100.\n.100.\n.100.\n.....\n\nKeyNoneMan\nWhite DarkGrey Yellow\n.000.\n0.2.0\n0...0\n10001\n.111.\n\nKey1Man\nRed DarkRed\n.000.\n0.0.0\n0...0\n10001\n.111.\n\nKey2Man\nBlue DarkBlue\n.000.\n0.0.0\n0...0\n10001\n.111.\n\nKey3Man\nOrange Brown\n.000.\n0.0.0\n0...0\n10001\n.111.\n\nUpMan\nGray White DarkGrey Yellow\n.111.\n00.00\n00200\n20002\n.222.\n\nDownMan\nGray White DarkGrey Yellow\n.000.\n00.00\n00200\n21112\n.222.\n\nLeftMan\nGray White DarkGrey Yellow\n.000.\n10.00\n10200\n20002\n.222.\n\nRightMan\nGray White DarkGrey Yellow\n.000.\n00.01\n00201\n20002\n.222.\n\nTeleportMan\nPurple\n.000.\n00000\n00000\n00000\n.000.\n\nTeleportMan2\nPurple\n.000.\n00000\n00000\n00000\n.000.\n\nTeleportMan3\nPurple\n.000.\n00000\n00000\n00000\n.000.\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTargetTest\nBlack\n\nTargetOn\nYellow\n.....\n.000.\n.0.0.\n.000.\n.....\n\nMagic\nPurple Grey DarkGrey\n.....\n.1.1.\n.222.\n.000.\n.000.\n\nMagicBar\nPurple\n.....\n...0.\n..0..\n...0.\n..0..\n\nMagicReplace\nPurple\n\nSwapAnim1\nPurple\n\nSwapAnim2\nPurple\n00000\n00000\n00.00\n00000\n00000\n\nSwapAnim3\nPurple\n00000\n00.00\n0...0\n00.00\n00000\n\nSwapAnim4\nPurple\n00.00\n0...0\n.....\n0...0\n00.00\n\nSwapAnim5\nPurple\n0...0\n.....\n.....\n.....\n0...0\n\nTeleportBeamTop\nPurple\n.....\n..0..\n.000.\n.000.\n.000.\n\nTeleportBeam\nPurple\n.000.\n.000.\n.000.\n.000.\n.000.\n\nTeleportBeamBottom\nPurple\n.000.\n.000.\n.000.\n..0..\n.....\n\nInfinitePower\nTransparent\n\nTempAnim\nTransparent\n\nMagicEnd\nTransparent\n\nCastPaste\nBlack\n\nNoSelected\nBlack\n\nDidNotMove\nBlack\n\nWallNormal\nDarkGreen Darkblue\n00000\n00000\n00000\n00000\n00000\n \nWallBottom\nDarkGreen Darkblue\n00000\n00000\n00000\n00000\n11111\n\nOne\nDarkblue\n...0.\n..00.\n...0.\n...0.\n..000\n\nTwo\nDarkblue\n.000.\n....0\n..00.\n.0...\n.0000\n\nThree\nDarkblue\n.000.\n....0\n..000\n....0\n.000.\n\nFour\nDarkblue\n.0..0\n.0..0\n.0000\n....0\n....0\n\nFive\nDarkblue\n.0000\n.0...\n.000.\n....0\n.000.\n\nSix\nDarkblue\n..00.\n.0...\n.000.\n.0..0\n..00.\n\nSeven\nDarkblue\n.0000\n....0\n...0.\n..0..\n.0...\n\nEight\nDarkblue\n..00.\n.0..0\n..00.\n.0..0\n..00.\n\nNine\nDarkblue\n..00.\n.0..0\n..000\n....0\n..00.\n\nZero\nDarkblue\n..00.\n.0..0\n.0..0\n.0..0\n..00.\n\n=======\nLEGEND\n=======\n\nWall = WallNormal or WallBottom\nBlackBackground = HoleNormal or HoleTop\nHole = BlackBackground\n\n. = Background\n# = WallNormal\nT = Target\nP = DownMan and KeyNoneMan\n* = Collectable\nM = Magic\nE = MagicReplace and HoleNormal\nB = HoleNormal\nF = TrapDoor\n\nU = InfinitePower and E\n\nQ = Key1\nW = Door1\n\nA = Key2\nS = Door2\n\nZ = Key3\nX = Door3\n\n1 = One and WallNormal\n2 = Two and WallNormal\n3 = Three and WallNormal\n4 = Four and WallNormal\n5 = Five and WallNormal\n6 = Six and WallNormal\n7 = Seven and WallNormal\n8 = Eight and WallNormal\n9 = Nine and WallNormal\n0 = Zero and WallNormal\n\nPlayer = UpMan or DownMan or LeftMan or RightMan\nMan = UpMan or DownMan or LeftMan or RightMan\nBlock = BlackBackground\n\nKeyMan = Key1Man or Key2Man or Key3Man or KeyNoneMan\nKey = Key1 or Key2 or Key3\nKeyDoor = Door1 or Door2 or Door3\nDoorDown = Door1Down or Door2Down or Door3Down\n\nNumbers = Zero or One or Two or Three or Four or Five or Six or Seven or Eight or Nine\n\nCopyable = Wall or Target or TargetOn or Magic or Player or Collectable or Key or KeyDoor or TrapDoor or Numbers or DoorDown\n\nSwapAnim = SwapAnim1 or SwapAnim2 or SwapAnim3 or SwapAnim4 or SwapAnim5\n\nTeleportAnim = TeleportBeamTop or TeleportBeam or TeleportBeamBottom or TeleportMan or TeleportMan2 or TeleportMan3\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBlackBackground\nTarget, TargetTest, TargetOn, KeyDoor, DoorDown, Key, Trapdoor\nKeyMan\nPlayer, Wall\nMagic, Collectable, Numbers\nMagicEnd, MagicReplace\nMagicBar, InfinitePower\nCastPaste\nNoSelected, PasteTarget\nDidNotMove\nSelected\nSwapAnim, TeleportAnim, TempAnim\n\n======\nRULES\n======\n\n(SetupSpellIcons)\n\n[Player] -> [Player DidNotMove]\n[MagicReplace] -> [MagicEnd]\n\n(Player Orientation)\n[ up Man no UpMan ] -> [ up UpMan ]\n[ down Man no DownMan ] -> [ down DownMan ]\n[ left Man no LeftMan ] -> [ left LeftMan ]\n[ right Man no RightMan ] -> [ right RightMan ]\n\n(Move crates)\n[ > Man | Block] -> [Man | Block]\n\n(Door collision)\n[ > Man no Key1Man | Door1 ] -> [ Man | Door1]\n[ > Man no Key2Man | Door2 ] -> [ Man | Door2]\n[ > Man no Key3Man | Door3 ] -> [ Man | Door3]\n\n(Put spell on player based on magic)\n\nup [action UpMan | Selected] -> [UpMan | ]\ndown [action DownMan | Selected] -> [DownMan | ]\nleft [action LeftMan | Selected] -> [LeftMan | ]\nright [action RightMan | Selected] -> [RightMan | ]\n\n[Man] -> [Man noSelected]\n[Selected] [NoSelected] -> [Selected] []\n\nup [action UpMan noSelected|no BlackBackground] -> [UpMan | Selected]\ndown [action DownMan noSelected|no BlackBackground] -> [DownMan | Selected]\nleft [action LeftMan noSelected|no BlackBackground] -> [LeftMan | Selected]\nright [action RightMan noSelected|no BlackBackground] -> [RightMan | Selected]\n\n[NoSelected] -> []\n\nup [action Man] [InfinitePower] [Selected] -> [Man CastPaste] [InfinitePower] [Selected]\nup [action Man] [MagicBar | no MagicBar] [Selected] -> [Man CastPaste] [|] [Selected]\n\n(Swap Anim)\n[SwapAnim5] -> [] again\n[SwapAnim4] -> [SwapAnim5] again\n[SwapAnim3] -> [SwapAnim4] again\n[SwapAnim2] -> [SwapAnim3] again\n[SwapAnim1] -> [SwapAnim2] again\n\n(Cast Paste)\n\nup [UpMan CastPaste | no BlackBackground] -> [UpMan | PasteTarget]\ndown [DownMan CastPaste | no BlackBackground] -> [DownMan | PasteTarget]\nleft [LeftMan CastPaste | no BlackBackground] -> [LeftMan | PasteTarget]\nright [RightMan CastPaste | no BlackBackground] -> [RightMan | PasteTarget]\n\n[Man CastPaste] -> cancel\n\n[PasteTarget Copyable] [MagicEnd] -> [PasteTarget] [MagicEnd Copyable]\n[PasteTarget] [Selected Copyable] -> [PasteTarget Copyable] [Selected]\n[MagicEnd Copyable] [Selected] -> [MagicEnd] [Selected Copyable]\n[PasteTarget] [Selected] [DidNotMove] -> [SwapAnim1] [SwapAnim1] [] again\n\n(Handle picking up magic and magic bar)\nlate [Player Collectable] -> [Player]\nlate [Player Magic] [MagicEnd no MagicBar] -> [Player] [MagicEnd MagicBar]\nlate up [Player Magic] [MagicBar | no MagicBar] -> [Player] [MagicBar | MagicBar]\n\n(Handle holding Keys)\n\nlate [Player no KeyMan] [KeyMan] -> [Player KeyMan] []\n\nlate [Player Key1] -> [Player Key1Man]\nlate [Player Key2] -> [Player Key2Man]\nlate [Player Key3] -> [Player Key3Man]\n\n(Trapdoor)\nlate [TrapDoor DidNotMove no Player] -> [HoleNormal DidNotMove]\nlate [Blackbackground Selected] -> [BlackBackground]\n\n(Target)\nlate [Collectable] [Target] -> [Collectable] [TargetTest]\nlate [Target] -> [TargetOn]\nlate [TargetTest] -> [Target]\n\n(clean up)\nlate [DidNotMove] -> []\n\n(Pretty Doors)\nlate [Door1 Player] -> [Door1Down Player]\nlate [Door2 Player] -> [Door2Down Player]\nlate [Door3 Player] -> [Door3Down Player]\n\nlate [Door1Down no Player] -> [Door1]\nlate [Door2Down no Player] -> [Door2]\nlate [Door3Down no Player] -> [Door3]\n\n(Pretty Walls)\nlate Down [ WallNormal | no Wall ] -> [ WallBottom | ]\nlate Down [ WallBottom | Wall ] -> [ WallNormal | Wall ]\n\n(PrettyHoles)\n \nlate Up [ HoleNormal | no Hole ] -> [ HoleTop | ]\nlate Up [ HoleTop | Hole ] -> [ HoleNormal | Hole ]\n\n(Teleport Anim)\nlate [TeleportMan3] -> [TeleportBeamBottom] again\nlate [TeleportBeamBottom] -> [TempAnim] again\nlate up [TempAnim | TeleportBeam] -> [ | TeleportBeamBottom] again\nlate up [TeleportBeamBottom | ] -> [TeleportBeamBottom | TeleportBeam] again\nlate up [TeleportBeam | ] -> [TeleportBeam | TeleportBeamTop] again\n\nlate [TeleportMan2] -> [TeleportMan3] again\nlate up [TeleportMan3|] -> [TeleportMan3 | TeleportBeam] again\nlate up [TeleportBeam|] -> [TeleportBeam| TeleportBeamTop] again\n\nlate [TeleportMan] -> [TeleportMan2] again\nlate up [TeleportMan2|] -> [Teleportman2|TeleportBeamTop] again\n\nlate [Player KeyMan TargetOn] -> [ TeleportMan TargetOn] again\n\nlate [TempAnim] -> []\n\n==============\nWINCONDITIONS\n==============\n\nNo Player\nNo TeleportAnim\n\n=======\nLEVELS\n=======\n\nMessage Collect '+' to activate teleporter\n\n#####b\n#***#b\n#*.*#b\n#.t.#b\n##p##b\n###01e\n\nMessage Press 'x' to select a tile\nMessage Press 'x' on another tile to swap\n\n#####b\n#*p*#b\n#...#b\n#.#.#b\n##t##b\n###02u\n\nMessage Swapping uses batteries\n\n#########b\n#*#####*#b\n#m##*##m#b\n#########b\n#########b\n#########b\n###mmm###b\n###mmm###b\n###.p.###b\n#########b\n####t####b\n#######03e\n\n#########b\n#*##m##*#b\n#########b\n#########b\n#########b\n###mmm###b\n###mp####b\n###mmm###b\n#########b\n####t####b\n#######04e\n\nMessage Collect key cards to access security tiles\n\n#######b\n#*#*#*#b\n#s###w#b\n#w#t#s#b\n#..x.z#b\n#a...q#b\n##...##b\n#p..mm#b\n#####05e\n\n##########b\n#*#*#*##t#b\n#w#s#w####b\n#.#.#.#..#b\n#s#w#s#..#b\n#m.m.m...#b\n###s#s####b\n#*wp..asq#b\n########06e\n\nMessage SwapBot cannot swap holes\n\nbbbbbbbbb\nbtwwwwwsb\nbbbbbbbsb\nbbbbbbbsb\nbbbbbbbsb\nb.xzpaxsb\nb..xxx..b\nb.bmmmb.b\nb.#mmm#.b\nb#*#b#q#b\nb#######b\nb#####07e\n\nb#######bb\n##..a..##b\nx..xws..sb\nmbbwsxbb*b\nbbbsxwbbbb\n*bbxwsbbtb\ns..wsx..xb\n##..m..##b\nb#qmmmz#bb\nb##.p.##bb\nbb###08bbe\n\nMessage Trapdoors create holes\n\n#######bbbbbb\n#####*#bbbbbb\n#####.#bbbbbb\n#####f#bbbtbb\n#*#q#m#bbbxbb\n#fz.spmazw#bb\n#..f#m#bbbbbb\n#####f#bbbbbb\n#####*#bbbbbb\n#####09bbbbeb\n\nbbbbbb###bbbbbbb\n#######*#######b\n#*s..#.z.#..f*#b\n#fb..w...w..bf#b\n#xbf###f###fbx#b\n#fbw#b#s#b#xbf#b\n#xbw###s###xbx#b\n#fb.........bf#b\n#tbbq.mmm.abb*#b\n#fxw...p...sxf#b\n#############10e\n\n##########bbbbbb\n####mfffz#bbbbbb\n##*qx###.######b\n####x###msssst#b\n####x##.m######b\n##########bbbbbb\n#a##x##m##bbbbbb\n##.#z##m##bbbbbb\n#..#pm#.##bbbbbb\n########11bbbbbe\n\n###############b\n#baffmbbbqffmb#b\n#b*fx*#.#*ff*b#b\n#bbxfbbbbbssbb#b\n#bbffffmffffbb#b\n#bbfff.pffffbb#b\n#bbbbbbwbbzfbb#b\n#bbbbbbfbbbbbb#b\n#bbbbbbtbbbbbb#b\n#############12e\n\nMessage SwapBot has swapped everything!\nMessage Congratulations!\n",[0,0,3,3,3,2,2,4,1,1,4,3,4,1,4,3,3,1,4,4,2,1,1,3,1,1,2,2,3,3,3,0,0,3,3,2,2,3,3,0,0,3,3,3,4,2,2,1,4,1,1,3,2,2,0,1,0],"background holenormal:0,0,0,0,0,0,0,0,0,\n0,0,0,0,background target:1,background holetop:2,0,0,background:3,\n3,3,3,background wallnormal:4,4,4,0,background door1:5,2,\n0,0,background door3:6,3,2,background wallbottom:7,background collectable:8,4,4,\n0,5,2,0,0,3,6,3,3,\n4,4,4,0,5,2,0,0,3,\n6,background magic:9,3,2,4,4,0,5,2,\n0,0,3,7,3,3,4,4,4,\n0,5,2,0,0,6,3,2,6,\nbackground key1man upman:10,4,background wallnormal zero:11,0,background door2:12,12,12,12,12,\n3,3,3,4,4,background seven wallnormal:13,0,0,0,\n0,0,0,0,0,background holenormal magicbar:14,14,14,background holenormal magicbar magicend:15,\n",12,"1627778061578.234"] + ["title SwapBot\nauthor John M. Williams\nhomepage gate.itch.io\n\nrun_rules_on_level_start\nnorepeat_action\nagain_interval 0.05\n\n========\nOBJECTS\n========\n\nBackground\nGreen\n\nTrapDoor\nGreen Black\n00000\n01010\n00000\n01010\n00000\n\nHoleNormal\nBlack\n \nHoleTop\nBlack #282117\n11111\n00000\n00000\n00000\n00000\n\nSelected\nYellow\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\nCollectable\nYellow White\n.....\n..0..\n.000.\n..0..\n.....\n\nPasteTarget\nBlack\n\nDoor1\nRed DarkRed\n00000\n01010\n00000\n01010\n00000\n\nDoor1Down\nRed\n00000\n0...0\n0...0\n0...0\n00000\n\nDoor2\nBlue DarkBlue\n00000\n01010\n00000\n01010\n00000\n\nDoor2Down\nBlue\n00000\n0...0\n0...0\n0...0\n00000\n\nDoor3\nOrange Brown\n00000\n01010\n00000\n01010\n00000\n\nDoor3Down\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\nKey1\nRed Grey\n.....\n.100.\n.100.\n.100.\n.....\n\nKey2\nBlue Grey\n.....\n.100.\n.100.\n.100.\n.....\n\nKey3\nOrange Grey\n.....\n.100.\n.100.\n.100.\n.....\n\nKeyNoneMan\nWhite DarkGrey Yellow\n.000.\n0.2.0\n0...0\n10001\n.111.\n\nKey1Man\nRed DarkRed\n.000.\n0.0.0\n0...0\n10001\n.111.\n\nKey2Man\nBlue DarkBlue\n.000.\n0.0.0\n0...0\n10001\n.111.\n\nKey3Man\nOrange Brown\n.000.\n0.0.0\n0...0\n10001\n.111.\n\nUpMan\nGray White DarkGrey Yellow\n.111.\n00.00\n00200\n20002\n.222.\n\nDownMan\nGray White DarkGrey Yellow\n.000.\n00.00\n00200\n21112\n.222.\n\nLeftMan\nGray White DarkGrey Yellow\n.000.\n10.00\n10200\n20002\n.222.\n\nRightMan\nGray White DarkGrey Yellow\n.000.\n00.01\n00201\n20002\n.222.\n\nTeleportMan\nPurple\n.000.\n00000\n00000\n00000\n.000.\n\nTeleportMan2\nPurple\n.000.\n00000\n00000\n00000\n.000.\n\nTeleportMan3\nPurple\n.000.\n00000\n00000\n00000\n.000.\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTargetTest\nBlack\n\nTargetOn\nYellow\n.....\n.000.\n.0.0.\n.000.\n.....\n\nMagic\nPurple Grey DarkGrey\n.....\n.1.1.\n.222.\n.000.\n.000.\n\nMagicBar\nPurple\n.....\n...0.\n..0..\n...0.\n..0..\n\nMagicReplace\nPurple\n\nSwapAnim1\nPurple\n\nSwapAnim2\nPurple\n00000\n00000\n00.00\n00000\n00000\n\nSwapAnim3\nPurple\n00000\n00.00\n0...0\n00.00\n00000\n\nSwapAnim4\nPurple\n00.00\n0...0\n.....\n0...0\n00.00\n\nSwapAnim5\nPurple\n0...0\n.....\n.....\n.....\n0...0\n\nTeleportBeamTop\nPurple\n.....\n..0..\n.000.\n.000.\n.000.\n\nTeleportBeam\nPurple\n.000.\n.000.\n.000.\n.000.\n.000.\n\nTeleportBeamBottom\nPurple\n.000.\n.000.\n.000.\n..0..\n.....\n\nInfinitePower\nTransparent\n\nTempAnim\nTransparent\n\nMagicEnd\nTransparent\n\nCastPaste\nBlack\n\nNoSelected\nBlack\n\nDidNotMove\nBlack\n\nWallNormal\nDarkGreen Darkblue\n00000\n00000\n00000\n00000\n00000\n \nWallBottom\nDarkGreen Darkblue\n00000\n00000\n00000\n00000\n11111\n\nOne\nDarkblue\n...0.\n..00.\n...0.\n...0.\n..000\n\nTwo\nDarkblue\n.000.\n....0\n..00.\n.0...\n.0000\n\nThree\nDarkblue\n.000.\n....0\n..000\n....0\n.000.\n\nFour\nDarkblue\n.0..0\n.0..0\n.0000\n....0\n....0\n\nFive\nDarkblue\n.0000\n.0...\n.000.\n....0\n.000.\n\nSix\nDarkblue\n..00.\n.0...\n.000.\n.0..0\n..00.\n\nSeven\nDarkblue\n.0000\n....0\n...0.\n..0..\n.0...\n\nEight\nDarkblue\n..00.\n.0..0\n..00.\n.0..0\n..00.\n\nNine\nDarkblue\n..00.\n.0..0\n..000\n....0\n..00.\n\nZero\nDarkblue\n..00.\n.0..0\n.0..0\n.0..0\n..00.\n\n=======\nLEGEND\n=======\n\nWall = WallNormal or WallBottom\nBlackBackground = HoleNormal or HoleTop\nHole = BlackBackground\n\n. = Background\n# = WallNormal\nT = Target\nP = DownMan and KeyNoneMan\n* = Collectable\nM = Magic\nE = MagicReplace and HoleNormal\nB = HoleNormal\nF = TrapDoor\n\nU = InfinitePower and E\n\nQ = Key1\nW = Door1\n\nA = Key2\nS = Door2\n\nZ = Key3\nX = Door3\n\n1 = One and WallNormal\n2 = Two and WallNormal\n3 = Three and WallNormal\n4 = Four and WallNormal\n5 = Five and WallNormal\n6 = Six and WallNormal\n7 = Seven and WallNormal\n8 = Eight and WallNormal\n9 = Nine and WallNormal\n0 = Zero and WallNormal\n\nPlayer = UpMan or DownMan or LeftMan or RightMan\nMan = UpMan or DownMan or LeftMan or RightMan\nBlock = BlackBackground\n\nKeyMan = Key1Man or Key2Man or Key3Man or KeyNoneMan\nKey = Key1 or Key2 or Key3\nKeyDoor = Door1 or Door2 or Door3\nDoorDown = Door1Down or Door2Down or Door3Down\n\nNumbers = Zero or One or Two or Three or Four or Five or Six or Seven or Eight or Nine\n\nCopyable = Wall or Target or TargetOn or Magic or Player or Collectable or Key or KeyDoor or TrapDoor or Numbers or DoorDown\n\nSwapAnim = SwapAnim1 or SwapAnim2 or SwapAnim3 or SwapAnim4 or SwapAnim5\n\nTeleportAnim = TeleportBeamTop or TeleportBeam or TeleportBeamBottom or TeleportMan or TeleportMan2 or TeleportMan3\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBlackBackground\nTarget, TargetTest, TargetOn, KeyDoor, DoorDown, Key, Trapdoor\nKeyMan\nPlayer, Wall\nMagic, Collectable, Numbers\nMagicEnd, MagicReplace\nMagicBar, InfinitePower\nCastPaste\nNoSelected, PasteTarget\nDidNotMove\nSelected\nSwapAnim, TeleportAnim, TempAnim\n\n======\nRULES\n======\n\n(SetupSpellIcons)\n\n[Player] -> [Player DidNotMove]\n[MagicReplace] -> [MagicEnd]\n\n(Player Orientation)\n[ up Man no UpMan ] -> [ up UpMan ]\n[ down Man no DownMan ] -> [ down DownMan ]\n[ left Man no LeftMan ] -> [ left LeftMan ]\n[ right Man no RightMan ] -> [ right RightMan ]\n\n(Move crates)\n[ > Man | Block] -> [Man | Block]\n\n(Door collision)\n[ > Man no Key1Man | Door1 ] -> [ Man | Door1]\n[ > Man no Key2Man | Door2 ] -> [ Man | Door2]\n[ > Man no Key3Man | Door3 ] -> [ Man | Door3]\n\n(Put spell on player based on magic)\n\nup [action UpMan | Selected] -> [UpMan | ]\ndown [action DownMan | Selected] -> [DownMan | ]\nleft [action LeftMan | Selected] -> [LeftMan | ]\nright [action RightMan | Selected] -> [RightMan | ]\n\n[Man] -> [Man noSelected]\n[Selected] [NoSelected] -> [Selected] []\n\nup [action UpMan noSelected|no BlackBackground] -> [UpMan | Selected]\ndown [action DownMan noSelected|no BlackBackground] -> [DownMan | Selected]\nleft [action LeftMan noSelected|no BlackBackground] -> [LeftMan | Selected]\nright [action RightMan noSelected|no BlackBackground] -> [RightMan | Selected]\n\n[NoSelected] -> []\n\nup [action Man] [InfinitePower] [Selected] -> [Man CastPaste] [InfinitePower] [Selected]\nup [action Man] [MagicBar | no MagicBar] [Selected] -> [Man CastPaste] [|] [Selected]\n\n(Swap Anim)\n[SwapAnim5] -> [] again\n[SwapAnim4] -> [SwapAnim5] again\n[SwapAnim3] -> [SwapAnim4] again\n[SwapAnim2] -> [SwapAnim3] again\n[SwapAnim1] -> [SwapAnim2] again\n\n(Cast Paste)\n\nup [UpMan CastPaste | no BlackBackground] -> [UpMan | PasteTarget]\ndown [DownMan CastPaste | no BlackBackground] -> [DownMan | PasteTarget]\nleft [LeftMan CastPaste | no BlackBackground] -> [LeftMan | PasteTarget]\nright [RightMan CastPaste | no BlackBackground] -> [RightMan | PasteTarget]\n\n[Man CastPaste] -> cancel\n\n[PasteTarget Copyable] [MagicEnd] -> [PasteTarget] [MagicEnd Copyable]\n[PasteTarget] [Selected Copyable] -> [PasteTarget Copyable] [Selected]\n[MagicEnd Copyable] [Selected] -> [MagicEnd] [Selected Copyable]\n[PasteTarget] [Selected] [DidNotMove] -> [SwapAnim1] [SwapAnim1] [] again\n\n(Handle picking up magic and magic bar)\nlate [Player Collectable] -> [Player]\nlate [Player Magic] [MagicEnd no MagicBar] -> [Player] [MagicEnd MagicBar]\nlate up [Player Magic] [MagicBar | no MagicBar] -> [Player] [MagicBar | MagicBar]\n\n(Handle holding Keys)\n\nlate [Player no KeyMan] [KeyMan] -> [Player KeyMan] []\n\nlate [Player Key1] -> [Player Key1Man]\nlate [Player Key2] -> [Player Key2Man]\nlate [Player Key3] -> [Player Key3Man]\n\n(Trapdoor)\nlate [TrapDoor DidNotMove no Player] -> [HoleNormal DidNotMove]\nlate [Blackbackground Selected] -> [BlackBackground]\n\n(Target)\nlate [Collectable] [Target] -> [Collectable] [TargetTest]\nlate [Target] -> [TargetOn]\nlate [TargetTest] -> [Target]\n\n(clean up)\nlate [DidNotMove] -> []\n\n(Pretty Doors)\nlate [Door1 Player] -> [Door1Down Player]\nlate [Door2 Player] -> [Door2Down Player]\nlate [Door3 Player] -> [Door3Down Player]\n\nlate [Door1Down no Player] -> [Door1]\nlate [Door2Down no Player] -> [Door2]\nlate [Door3Down no Player] -> [Door3]\n\n(Pretty Walls)\nlate Down [ WallNormal | no Wall ] -> [ WallBottom | ]\nlate Down [ WallBottom | Wall ] -> [ WallNormal | Wall ]\n\n(PrettyHoles)\n \nlate Up [ HoleNormal | no Hole ] -> [ HoleTop | ]\nlate Up [ HoleTop | Hole ] -> [ HoleNormal | Hole ]\n\n(Teleport Anim)\nlate [TeleportMan3] -> [TeleportBeamBottom] again\nlate [TeleportBeamBottom] -> [TempAnim] again\nlate up [TempAnim | TeleportBeam] -> [ | TeleportBeamBottom] again\nlate up [TeleportBeamBottom | ] -> [TeleportBeamBottom | TeleportBeam] again\nlate up [TeleportBeam | ] -> [TeleportBeam | TeleportBeamTop] again\n\nlate [TeleportMan2] -> [TeleportMan3] again\nlate up [TeleportMan3|] -> [TeleportMan3 | TeleportBeam] again\nlate up [TeleportBeam|] -> [TeleportBeam| TeleportBeamTop] again\n\nlate [TeleportMan] -> [TeleportMan2] again\nlate up [TeleportMan2|] -> [Teleportman2|TeleportBeamTop] again\n\nlate [Player KeyMan TargetOn] -> [ TeleportMan TargetOn] again\n\nlate [TempAnim] -> []\n\n==============\nWINCONDITIONS\n==============\n\nNo Player\nNo TeleportAnim\n\n=======\nLEVELS\n=======\n\nMessage Collect '+' to activate teleporter\n\n#####b\n#***#b\n#*.*#b\n#.t.#b\n##p##b\n###01e\n\nMessage Press 'x' to select a tile\nMessage Press 'x' on another tile to swap\n\n#####b\n#*p*#b\n#...#b\n#.#.#b\n##t##b\n###02u\n\nMessage Swapping uses batteries\n\n#########b\n#*#####*#b\n#m##*##m#b\n#########b\n#########b\n#########b\n###mmm###b\n###mmm###b\n###.p.###b\n#########b\n####t####b\n#######03e\n\n#########b\n#*##m##*#b\n#########b\n#########b\n#########b\n###mmm###b\n###mp####b\n###mmm###b\n#########b\n####t####b\n#######04e\n\nMessage Collect key cards to access security tiles\n\n#######b\n#*#*#*#b\n#s###w#b\n#w#t#s#b\n#..x.z#b\n#a...q#b\n##...##b\n#p..mm#b\n#####05e\n\n##########b\n#*#*#*##t#b\n#w#s#w####b\n#.#.#.#..#b\n#s#w#s#..#b\n#m.m.m...#b\n###s#s####b\n#*wp..asq#b\n########06e\n\nMessage SwapBot cannot swap holes\n\nbbbbbbbbb\nbtwwwwwsb\nbbbbbbbsb\nbbbbbbbsb\nbbbbbbbsb\nb.xzpaxsb\nb..xxx..b\nb.bmmmb.b\nb.#mmm#.b\nb#*#b#q#b\nb#######b\nb#####07e\n\nb#######bb\n##..a..##b\nx..xws..sb\nmbbwsxbb*b\nbbbsxwbbbb\n*bbxwsbbtb\ns..wsx..xb\n##..m..##b\nb#qmmmz#bb\nb##.p.##bb\nbb###08bbe\n\nMessage Trapdoors create holes\n\n#######bbbbbb\n#####*#bbbbbb\n#####.#bbbbbb\n#####f#bbbtbb\n#*#q#m#bbbxbb\n#fz.spmazw#bb\n#..f#m#bbbbbb\n#####f#bbbbbb\n#####*#bbbbbb\n#####09bbbbeb\n\nbbbbbb###bbbbbbb\n#######*#######b\n#*s..#.z.#..f*#b\n#fb..w...w..bf#b\n#xbf###f###fbx#b\n#fbw#b#s#b#xbf#b\n#xbw###s###xbx#b\n#fb.........bf#b\n#tbbq.mmm.abb*#b\n#fxw...p...sxf#b\n#############10e\n\n##########bbbbbb\n####mfffz#bbbbbb\n##*qx###.######b\n####x###msssst#b\n####x##.m######b\n##########bbbbbb\n#a##x##m##bbbbbb\n##.#z##m##bbbbbb\n#..#pm#.##bbbbbb\n########11bbbbbe\n\n###############b\n#baffmbbbqffmb#b\n#b*fx*#.#*ff*b#b\n#bbxfbbbbbssbb#b\n#bbffffmffffbb#b\n#bbfff.pffffbb#b\n#bbbbbbwbbzfbb#b\n#bbbbbbfbbbbbb#b\n#bbbbbbtbbbbbb#b\n#############12e\n\nMessage SwapBot has swapped everything!\nMessage Congratulations!\n", [0, 0, 3, 3, 3, 2, 2, 4, 1, 1, 4, 3, 4, 1, 4, 3, 3, 1, 4, 4, 2, 1, 1, 3, 1, 1, 2, 2, 3, 3, 3, 0, 0, 3, 3, 2, 2, 3, 3, 0, 0, 3, 3, 3, 4, 2, 2, 1, 4, 1, 1, 3, 2, 2, 0, 1, 0], "background holenormal:0,0,0,0,0,0,0,0,0,\n0,0,0,0,background target:1,background holetop:2,0,0,background:3,\n3,3,3,background wallnormal:4,4,4,0,background door1:5,2,\n0,0,background door3:6,3,2,background wallbottom:7,background collectable:8,4,4,\n0,5,2,0,0,3,6,3,3,\n4,4,4,0,5,2,0,0,3,\n6,background magic:9,3,2,4,4,0,5,2,\n0,0,3,7,3,3,4,4,4,\n0,5,2,0,0,6,3,2,6,\nbackground key1man upman:10,4,background wallnormal zero:11,0,background door2:12,12,12,12,12,\n3,3,3,4,4,background seven wallnormal:13,0,0,0,\n0,0,0,0,0,background holenormal magicbar:14,14,14,background holenormal magicbar magicend:15,\n", 12, "1627778061578.234"] ], [ `gallery: spaceokoban`, - ["Title Spacekoban\nAuthor Connorses [Loneship Games]\nbackground_color #00001F\nagain_interval 0.12\n========\nOBJECTS\n========\nbackground\ngrey lightgrey\n10001\n00000\n00000\n00000\n10001\n\nplayer\nwhite darkbrown\n.000.\n.010.\n00000\n.000.\n.0.0.\n\nwall\nblack\n\ncrate\nred pink\n.....\n.000.\n.010.\n.000.\n.....\n\ntarget\nred\n00.00\n0...0\n.....\n0...0\n00.00\n\nladder\ndarkgrey\n.....\n00000\n.....\n00000\n.....\n\nbeam\nblue\n.....\n..0..\n.0.0.\n..0..\n.....\n\nexit\nyellow\n00000\n0...0\n0...0\n0...0\n00000\n\ncover\nblack darkgrey\n.....\n.000.\n.010.\n.000.\n.....\n\nu\ntransparent\n.....\n..0..\n.....\n.....\n.....\nd\ntransparent\n.....\n.....\n.....\n..0..\n.....\nl\ntransparent\n.....\n.....\n.0...\n.....\n.....\nr\ntransparent\n.....\n.....\n...0.\n.....\n.....\n=======\nLEGEND\n=======\n. = background\np = player and background\n# = wall\n* = crate\n\" = ladder\n: = player and ladder\no = target\n@ = crate and target\n% = beam\n& = crate and beam\n! = beam and target\n$ = crate and ladder\n] = player and target\ne = exit and cover\n\nobj = player or crate\ndir = U or D or L or R\nsolid = wall or cover\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\nbackground\ntarget\nladder, exit\nplayer, wall, crate, cover\nbeam\nu,d,l,r\n======\nRULES\n======\n[cover] -> [ ]\n[exit] [crate no target] -> [exit cover] [crate]\n\n[< player no ladder|no solid no crate] -> [player| ]\n\nup [< player|solid] -> [player D|solid] again\ndown [< player|solid] -> [player U|solid] again\nleft [< player|solid] -> [player R|solid] again\nright [< player|solid] -> [player L|solid] again\n\n[up player ladder] -> [player U ladder]\n[down player ladder] -> [player D ladder]\n[left player ladder] -> [player L ladder]\n[right player ladder] -> [player R ladder]\n\nup [< player|crate] -> [player D|crate U] again\ndown [< player|crate] -> [player U|crate D] again\nleft [< player|crate] -> [player R|crate L] again\nright [< player|crate] -> [player L|crate R] again\n\nup [obj U|obj] -> [obj U|obj U]\ndown [obj D|obj] -> [obj D|obj D]\nleft [obj L|obj] -> [obj L|obj L]\nright [obj R|obj] -> [obj R|obj R]\n\n[obj U] -> [up obj up U] again\n[obj D] -> [down obj down D] again\n[obj L] -> [left obj left L] again\n[obj R] -> [right obj right R] again\n\n[> dir|solid] -> [ |solid]\n\nlate [player dir ladder] -> [player ladder]\nlate [obj dir beam] -> [obj beam]\n==============\nWINCONDITIONS\n==============\nall crate on target\nall exit on player\nno dir\n=======\nLEVELS\n=======\n###########\n###########\n#######.###\n#........##\n#p....*..o#\n#........##\n#######.###\n###########\n###########\n\n#########\n####o####\n###...###\n##..*..##\n#.......#\n##.....##\n##..p..##\n##..*..##\n##.....##\n##.....##\n##.....##\n##..o..##\n#########\n\n############\n###..#.....#\n###........#\n###........#\n#oo@.*p*...#\n############\n###.......##\n############\n\n#########\n##.o#####\n#...#####\n#*#.#####\n#o#.*.###\n###p..###\n#########\n#########\n\n########\n#o.*p..#\n#......#\n#......#\n#.#o***#\n#.....o#\n#...o.##\n########\n\n#########(*U_2)\n#...#####\n#..*#####\n#..*#...#\n#p.....o#\n######.o#\n#########\n#########\n\n###########(*U_2)\n#o.......##\n#.....o..##\n#o.......##\n#.....@.###\n#....#*..##\n#ooo@@***.#\n#.....*...#\n#.....*...#\n#.........#\n######...p#\n#######..##\n###########\n\n##########(*U_1)\n###o*..###\n##.....###\n##...#*###\n####*#..##\n####]*..##\n######oo##\n##########\n##########\n\n##:############################\n##\"\"\"##########################\n####\"##########################\n#..............................\n#o.**.......................\"..\n#...o..........................\n###############################\n###############################\n###############################\n\n###########\n##..o....##\n#.........#\n#...*.....#\n#o.*\"$.\".o#\n#.........#\n#...p.....#\n#...*..\"..#\n#......*..#\n##o.....o##\n###########\n\n##########\n#..#o@p..#\n#........#\n#...*....#\n#o*.....*#\n#...\".\".o#\n##########\n\n##########(*U_2)\n##oo..*..#\n##o*...#.#\n###.*....#\n###...\".p#\n###.\"..###\n##########\n\n#############\n#############\n#...........#\n#...........#\n#.!..*p...%.#\n#...........#\n#...........#\n#############\n#############\n\n###########\n###########\n#.........#\n#.........#\n#.!.*p*\"!.#\n#.........#\n#.........#\n###########\n###########\n\n########\n#.o...\"#\n##.#..\"#\n#..#.#\"#\n#o.%.$:#\n##.#..\"#\n#.....\"#\n#....$\"#\n#\"\"\"\"\"\"#\n########\n\n#############\n#############\n#############\n#############\n#p....*.%%!.#\n#############\n#############\n#############\n#############\n\n##########\n##.....o##\n#.......o#\n#..:\"\"\"..#\n#..\"**\"..#\n#..\"**\"..#\n#..\"\"\"\"..#\n#o...%...#\n##o.....##\n##########\n\n###########\n#.*.*.!..o#\n#.....%...#\n#\".:..%...#\n#.....%...#\n#.*.*.!..o#\n###########\n\n############\n#####o######\n#...\"\"*..o##\n#.........##\n#....*.#####\n#o...%....##\n#..#*..:\"\"##\n#.%.o..*$\".#\n##..#o..%#.#\n########...#\n############\n\n###########\n#######\"\"\"#\n#\"\"\"\"\"\"\"\"\"#\n#:...*..\"\"#\n#\"....#...#\n#\"..*##*..#\n#\"...#....#\n#\"..$...oo#\n########!!#\n########..#\n###########\n",[1,0,3,2],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,\nbackground crate target:1,0,0,0,0,0,0,0,1,0,0,0,\n0,background:2,2,2,background target:3,0,2,0,0,2,2,2,\nbackground player:4,0,2,0,0,0,2,2,2,0,2,0,\n0,2,2,2,2,0,2,0,0,2,2,2,\n2,0,2,0,0,2,2,2,2,0,2,0,\n0,2,2,2,2,0,2,0,0,2,2,2,\nbackground crate:5,0,0,0,0,0,0,0,0,0,0,0,\n",2,"1627778099494.4666"] + ["Title Spacekoban\nAuthor Connorses [Loneship Games]\nbackground_color #00001F\nagain_interval 0.12\n========\nOBJECTS\n========\nbackground\ngrey lightgrey\n10001\n00000\n00000\n00000\n10001\n\nplayer\nwhite darkbrown\n.000.\n.010.\n00000\n.000.\n.0.0.\n\nwall\nblack\n\ncrate\nred pink\n.....\n.000.\n.010.\n.000.\n.....\n\ntarget\nred\n00.00\n0...0\n.....\n0...0\n00.00\n\nladder\ndarkgrey\n.....\n00000\n.....\n00000\n.....\n\nbeam\nblue\n.....\n..0..\n.0.0.\n..0..\n.....\n\nexit\nyellow\n00000\n0...0\n0...0\n0...0\n00000\n\ncover\nblack darkgrey\n.....\n.000.\n.010.\n.000.\n.....\n\nu\ntransparent\n.....\n..0..\n.....\n.....\n.....\nd\ntransparent\n.....\n.....\n.....\n..0..\n.....\nl\ntransparent\n.....\n.....\n.0...\n.....\n.....\nr\ntransparent\n.....\n.....\n...0.\n.....\n.....\n=======\nLEGEND\n=======\n. = background\np = player and background\n# = wall\n* = crate\n\" = ladder\n: = player and ladder\no = target\n@ = crate and target\n% = beam\n& = crate and beam\n! = beam and target\n$ = crate and ladder\n] = player and target\ne = exit and cover\n\nobj = player or crate\ndir = U or D or L or R\nsolid = wall or cover\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\nbackground\ntarget\nladder, exit\nplayer, wall, crate, cover\nbeam\nu,d,l,r\n======\nRULES\n======\n[cover] -> [ ]\n[exit] [crate no target] -> [exit cover] [crate]\n\n[< player no ladder|no solid no crate] -> [player| ]\n\nup [< player|solid] -> [player D|solid] again\ndown [< player|solid] -> [player U|solid] again\nleft [< player|solid] -> [player R|solid] again\nright [< player|solid] -> [player L|solid] again\n\n[up player ladder] -> [player U ladder]\n[down player ladder] -> [player D ladder]\n[left player ladder] -> [player L ladder]\n[right player ladder] -> [player R ladder]\n\nup [< player|crate] -> [player D|crate U] again\ndown [< player|crate] -> [player U|crate D] again\nleft [< player|crate] -> [player R|crate L] again\nright [< player|crate] -> [player L|crate R] again\n\nup [obj U|obj] -> [obj U|obj U]\ndown [obj D|obj] -> [obj D|obj D]\nleft [obj L|obj] -> [obj L|obj L]\nright [obj R|obj] -> [obj R|obj R]\n\n[obj U] -> [up obj up U] again\n[obj D] -> [down obj down D] again\n[obj L] -> [left obj left L] again\n[obj R] -> [right obj right R] again\n\n[> dir|solid] -> [ |solid]\n\nlate [player dir ladder] -> [player ladder]\nlate [obj dir beam] -> [obj beam]\n==============\nWINCONDITIONS\n==============\nall crate on target\nall exit on player\nno dir\n=======\nLEVELS\n=======\n###########\n###########\n#######.###\n#........##\n#p....*..o#\n#........##\n#######.###\n###########\n###########\n\n#########\n####o####\n###...###\n##..*..##\n#.......#\n##.....##\n##..p..##\n##..*..##\n##.....##\n##.....##\n##.....##\n##..o..##\n#########\n\n############\n###..#.....#\n###........#\n###........#\n#oo@.*p*...#\n############\n###.......##\n############\n\n#########\n##.o#####\n#...#####\n#*#.#####\n#o#.*.###\n###p..###\n#########\n#########\n\n########\n#o.*p..#\n#......#\n#......#\n#.#o***#\n#.....o#\n#...o.##\n########\n\n#########(*U_2)\n#...#####\n#..*#####\n#..*#...#\n#p.....o#\n######.o#\n#########\n#########\n\n###########(*U_2)\n#o.......##\n#.....o..##\n#o.......##\n#.....@.###\n#....#*..##\n#ooo@@***.#\n#.....*...#\n#.....*...#\n#.........#\n######...p#\n#######..##\n###########\n\n##########(*U_1)\n###o*..###\n##.....###\n##...#*###\n####*#..##\n####]*..##\n######oo##\n##########\n##########\n\n##:############################\n##\"\"\"##########################\n####\"##########################\n#..............................\n#o.**.......................\"..\n#...o..........................\n###############################\n###############################\n###############################\n\n###########\n##..o....##\n#.........#\n#...*.....#\n#o.*\"$.\".o#\n#.........#\n#...p.....#\n#...*..\"..#\n#......*..#\n##o.....o##\n###########\n\n##########\n#..#o@p..#\n#........#\n#...*....#\n#o*.....*#\n#...\".\".o#\n##########\n\n##########(*U_2)\n##oo..*..#\n##o*...#.#\n###.*....#\n###...\".p#\n###.\"..###\n##########\n\n#############\n#############\n#...........#\n#...........#\n#.!..*p...%.#\n#...........#\n#...........#\n#############\n#############\n\n###########\n###########\n#.........#\n#.........#\n#.!.*p*\"!.#\n#.........#\n#.........#\n###########\n###########\n\n########\n#.o...\"#\n##.#..\"#\n#..#.#\"#\n#o.%.$:#\n##.#..\"#\n#.....\"#\n#....$\"#\n#\"\"\"\"\"\"#\n########\n\n#############\n#############\n#############\n#############\n#p....*.%%!.#\n#############\n#############\n#############\n#############\n\n##########\n##.....o##\n#.......o#\n#..:\"\"\"..#\n#..\"**\"..#\n#..\"**\"..#\n#..\"\"\"\"..#\n#o...%...#\n##o.....##\n##########\n\n###########\n#.*.*.!..o#\n#.....%...#\n#\".:..%...#\n#.....%...#\n#.*.*.!..o#\n###########\n\n############\n#####o######\n#...\"\"*..o##\n#.........##\n#....*.#####\n#o...%....##\n#..#*..:\"\"##\n#.%.o..*$\".#\n##..#o..%#.#\n########...#\n############\n\n###########\n#######\"\"\"#\n#\"\"\"\"\"\"\"\"\"#\n#:...*..\"\"#\n#\"....#...#\n#\"..*##*..#\n#\"...#....#\n#\"..$...oo#\n########!!#\n########..#\n###########\n", [1, 0, 3, 2], "background wall:0,0,0,0,0,0,0,0,0,0,0,0,\nbackground crate target:1,0,0,0,0,0,0,0,1,0,0,0,\n0,background:2,2,2,background target:3,0,2,0,0,2,2,2,\nbackground player:4,0,2,0,0,0,2,2,2,0,2,0,\n0,2,2,2,2,0,2,0,0,2,2,2,\n2,0,2,0,0,2,2,2,2,0,2,0,\n0,2,2,2,2,0,2,0,0,2,2,2,\nbackground crate:5,0,0,0,0,0,0,0,0,0,0,0,\n", 2, "1627778099494.4666"] ], [ `gallery: pretender to the crown`, - ["title pretender to the crown\nauthor colin thil\nhomepage http://pretendertothecrown.wordpress.com/\nrun_rules_on_level_start\nbackground_color #d7dbef\ntext_color #69729f\nyoutube dasz1sSax2k\n\nrealtime_interval 0.1\nthrottle_movement \n\n========\nOBJECTS\n========\nExit\nred\n..0..\n..0..\n00000\n.000.\n..0..\n\nsnow1\n#d7dbef\n....0\n.....\n.....\n.....\n.....\n\nsnow2\n#d7dbef\n.....\n...0.\n.....\n.....\n.....\n\nsnow3\n#d7dbef\n.....\n.....\n...0.\n.....\n.....\n\nsnow4\n#d7dbef\n.....\n.....\n.....\n...0.\n.....\n\nsnow5\n#d7dbef\n.....\n.....\n.....\n.....\n....0\n\nsnow6\n#d7dbef\n.....\n.....\n.....\n.....\n....0\n\nBackground\n#d7dbef #e4e6f4\n00100\n00000\n10000\n00000\n00001\n\nplant1\n#2c5a42 #225039\n..0..\n.001.\n.011.\n00111\n01111\n\nplant2\n#14796c #0c6358\n..0..\n.001.\n.011.\n00111\n01111\n\nplant3\n#2e6549 #225039 #0c6358\n22022\n20012\n20112\n00111\n01111\n\nplant4\n#14796c #0c6358 #225039\n22022\n20012\n20112\n00111\n01111\n\ncrate\nLIGHTBROWN BROWN DARKBROWN\n00000\n01102\n01112\n02112\n22222\n\nplayer\n#ead5a8 #e1c99b #69729f #454b69 #f2c835 #ecbc16\n4.4.5\n.445.\n.011.\n.223.\n.333.\n\nsoldier\n#ead5a8 #e1c99b #69729f #454b69 #343b5f #c5c5c4\n5.3..\n5223.\n10044\n.0044\n.1.1.\n\nprisoner\n#ead5a8 #e1c99b #69729f #454b69\n..3..\n.223.\n.000.\n.000.\n.1.1.\n\nenemy\n#ead5a8 #e1c99b #c56c57 #bc5e48 #a7523e #c5c5c4\n5.3..\n5223.\n10044\n.0044\n.1.1.\n\nUpMarker\nRED\n\nLeftMarker\nRED\n\nRightMarker\nRED\n\nDownMarker\nRED\n\n\n=======\nLEGEND\n=======\n. = Background\np = prisoner\ny = plant1\nt = plant2\nz = plant3\nr = plant4\ne = enemy\nc = crate\nx = exit \na = player\n\nMarker = UpMarker or LeftMarker or RightMarker or DownMarker\ncrew = Player or soldier or prisoner\nplant = plant1 or plant2 or plant3 or plant4\nsnow = snow1 or snow2 or snow3 or snow4 or snow5 or snow6\n\n=======\nSOUNDS\n=======\n\nSFX0 52755904 (hit)\nSFX1 150500 (rescue)\nSFX2 6007707 (push)\nSFX3 13396704 (crush)\nEndLevel 83714500\n\n================\nCOLLISIONLAYERS\n================\n\nMarker,exit\n\nBackground\n\nplayer,soldier,enemy,prisoner,plant,crate\n\nsnow\n\n======\nRULES \n====== \n\nrandom down [no snow|no snow|no snow|no snow|no snow] -> [snow1||||]\n\n[ snow4 ] -> [ snow5 ]\n[ snow3 ] -> [ snow4 ]\n[ snow2 ] -> [ snow3 ]\n[ snow1 ] -> [ snow2 ]\ndown [ snow6|] -> [ |snow1 ]\n[ snow6] -> [ ]\n[ snow5 ] -> [ snow6 ]\n\n[ > player | crate] -> [ > player | > crate ] SFX2\n[ > crate | crate] -> [ > crate | > crate ] SFX2\n\nleft [ > Player | enemy | prisoner ] -> [ player | soldier Rightmarker | ] SFX0\nright [ > Player | enemy | prisoner ] -> [ player | soldier Leftmarker | ] SFX0\nup [ > Player | enemy | prisoner ] -> [ player | soldier Downmarker | ] SFX0\ndown [ > Player | enemy | prisoner ] -> [ player | soldier Upmarker | ] SFX0\n\n[ > Player | enemy | soldier ] -> [ player | | soldier ] SFX0\n\n[ left player ] -> [ left player Leftmarker ]\n[ right player ] -> [ right player Rightmarker ]\n[ up player ] -> [ up player Upmarker ]\n[ down player ] -> [ down player Downmarker ]\n\nstartloop\nlate left [ soldier Leftmarker | No crew ] -> [ Leftmarker | soldier ]\nlate right [ soldier Rightmarker | No crew ] -> [ Rightmarker | soldier ]\nlate up [ soldier Upmarker | No crew ] -> [ Upmarker | soldier ]\nlate down [ soldier Downmarker | No crew ] -> [ Downmarker | soldier ]\nendloop\n\n==============\nWINCONDITIONS\n==============\n\nno prisoner \nsome player on exit\n\n======= \nLEVELS\n=======\n\nmessage je suis fatigue, mortellement fatigue\nmessage mais chaque nuit, quand j arrive a dormir, je suis roi de norvege\n\nzrzrzrzrzrz\nrzrzrzrzrzr\nzrzrz.eperz\nrzpzr.tet.r\nzre.....z.z\nr....a....r\nz.y.....etz\nr..et.typzr\nztepe.zryrz\nrztyt.rzrzr\nzrzrzxzrzrz\n\nmessage depuis ma plus lointaine jeunesse un mal me ronge\nmessage il me faut etre roi, il m’est impossible de vivre autrement!\n\nzrzrzrzrzrz\nrzrzrzrzrzr\nzrzrprprzrz\nrzrzeaezrzr\nzrze...ezrz\nrzepecepezr\nzrye...eyrz\nrzryt.tyrzr\nzrzrz.zrzrz\nrzrzr.rzrzr\nzrzrzxzrzrz\n\nmessage le ciel m a fait pour que je gouverne, il n y a pas d autres remede pour moi\nmessage toi, le tout-puissant, qui m’as mis dans cette situation, il faut que tu assumes les consequences!\n\nzrzrzrzrzrz\nrzrz...zrzr\nzrze.p.ezrz\nrzepeeepezr\nzr.ey.ye.rz\na.........x\nyt.ey.ye.ty\nrzepe.epezr\nzrye...eyrz\nrzry...yrzr\nzrzrytyrzrz\n\nmessage j’ai vaincu\nmessage d'un coup d'epee, j’ai fait sauter la couronne du roi\n\nzrzrzazrzrz\nrzrzr.rzrzr\nzrzrz.zrzrz\nrprpr.rprpr\nzezez.zezez\nr.........r\nz.yt.e.ty.z\nr....e....r\nztyty.ytytz\nrzrzr.rzrzr\nzrzrzxzrzrz\n\nmessage Les boucliers etaient enfonces dans la neige mais il n’y avais personnes derriere eux\n\nzrzrzazrzrz\nrzrzr.rzrzr\nzreez.zeerz\nrz..e....zr\nzpe.tet.epz\nry..zpz..yr\nzpe.rer.epz\nrye.....eyr\nzreey.yeerz\nrztpr.rptzr\nzrztzxztzrz\n\nmessage ils se sont enfuis dans la foret, par les plateux et les marais, et les coteaux\nmessage aussi loin que leurs jambes voulaient les porter\n\nzrzrzazrzrz\nrzrzr.rzrzr\nzrpe...rzrz\nrzty...epzr\nzrpe.c.tyrz\nrztycycepzr\nzrpe.c.tyrz\nrzty...epzr\nzrzrt.ttyrz\nrzrzr.rzrzr\nzrzrzxzrzrz\n\nmessage j’ai defendu l’oeuvre de ma vie et le salut de mon ame\n\nzrzrzazrzrz\nrzrzr.rzrzr\nzpe.z.z.epz\nretyr.r.ter\nz..c...c..z\nr.t.tyt.t.r\nz.z.zrz.z.z\nr..c...c..r\nzet.y.ytyez\nrpe.r.r.epr\nztytzxztttz\n\nmessage ai-je l’air d un roi maintenant?\n\nrzrzrarzrzr\nzpe...zpzpz\nryt..yrerer\nzrz..r....z\nrzpe...y..r\nzry..t..yez\nrpr.tpt.rpr\nzez.zez.ztz\nr...r.r..zr\nz..tz...yzz\nrzrzrxtyrzr\n\nmessage chaque jour je doit regarder l’avenir en souriant\nmessage comme si j’etait sur de mon droit, de ma victoire et de mon succes\n\nzrzrzazrzrz\nr.........r\nz.e.e.e.e.z\nrypypypypyr\nzryryr.ryrz\nrppzpe.epzr\nzeeryt..yrz\nr...rzt...r\nz.y..pe.y.z\nr...t.t...r\nztytzxztytz \n\nmessage n’y a t’il donc la haut aucune loi certaine sur laquelle tout doit se regler?\n\nzrzrzazrzrz\nrprzr.rzrzr\nzezpe.epzrz\nr..e...erzr\nz.y..t..zpz\nr...tzt..er\nzty.zrz.e.z\nrz..r.r...r\nzre.....etz\nrzptt.ttpzr\nzryrzxzryrz\n\nmessage il y a une peur secrete dans cette victoire\n\nrzrzrarzrzr\nz.........z\nr..ctyte..r\nz.epepepc.z\nrytet.tetyr\nzpzpz.zpzpz\nreryr.ryrer\nz..c...c..z\nr..y.y.y..r\nz..c...c..z\nrytztxtztyr\n\nmessage si j’essaie de me voir comme le juste roi, il faut que je le fasse par artifice,\nmessage par une construction astucieuse, une oeuvre audacieuse\n\nrzrzrarzrzr\nzrzrz.zrzrz\nrpe.....epr\nztyt.ty.ytz\nrpe..c..epr\nztycy.ycytz\nrpe..c..epr\nzty.y.y.ytz\nrzr..cc.rzr\nzrztyxytzrz\nrzrzrxrzrzr\n\nmessage le roi etait-il d une autre etoffe que moi?\nmessage serait-il parmis ceux qui ont de la chance?\n\nrzrzrarzrzr\nz.....zpe.z\nr.t.tcryt.r\nz.c.....z.z\nr.tytetcr.r\nz...cpz...z\nretctyr.t.r\nzpz.....c.z\nryrctyt.tyr\nz...c...epz\nrytytxtytyr\n\nmessage mon royaume?\nmessage il est sombre, comme celui de l’ange qui se dressa contre dieu.\n\nrzrzrarzrzr\nzrzr...rzrz\nrzpe....epr\nzrytccccytz\nrpe.....epr\nzty.yt.tytz\nrpe....epzr\nztycccctyrz\nrzpe...epzr\nzryt...tyrz\nrzrztxtzrrr\n\nmessage que n ai-je sacrifie pour ce trone ou je ne suis pas parvenu?\n\nrzrzrarzrzr\nzrz.....zpz\nrz..tct..er\nz..t.c.t..z\nr.tpecept.r\nz.zpecepz.z\nr..y.c.y..r\nz...ycy..tz\nret.....tzr\nzpzty.ytzrz\nryrzrxrzrzr\n\nmessage je voulais etre le plus grand dans ce pays\nmessage seigneur voyez, je m’humilie devant vous, je suis le plus minable de tous!\n\nrzrzrarzrzr\nzrz....rprz\nrz...y..ezr\nzt.e.r..epz\nrpe...ty.yr\nzt.ty...epz\nrpe..y.e.yr\nzte..r...rz\nrzpy....tzr\nzrzry.ytzrz\nrzrzrxrzrzr\n\nmessage je suis un pauvre homme, je n’ais que ma vie a donner\nmessage prennez la et sauvez la pensee royale\nmessage -vous avez perdu-\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick","tick",2,"tick","tick",2,"tick",3,"tick","tick",3,"tick",2,"tick","tick",2,"tick","tick",2,"tick",2,"tick","tick",2,"tick",1,"tick","tick",1,"tick","tick","tick","tick","tick","tick",1,"tick",1,"tick","tick",1,"tick","tick","tick",0,"tick","tick",0,"tick","tick","tick","tick","tick","tick","tick"],"background plant3:0,background plant4 snow3:1,0,background plant4:2,0,2,background plant3 snow4:3,2,0,2,0,\n2,0,background plant4 snow4:4,0,background prisoner:5,background plant1:6,5,6,background plant4 snow1:7,0,7,\n0,1,background enemy:8,background:9,8,9,8,background enemy snow3:10,8,background plant2:11,0,\n2,0,8,9,9,background player snow6:12,background soldier upmarker:13,background upmarker:14,8,5,11,\n0,2,0,8,11,background plant3 snow2:15,2,background leftmarker:16,6,2,background plant3 snow3:17,\nbackground downmarker:18,background downmarker snow2:19,background downmarker snow4:20,background rightmarker:21,8,5,8,16,background snow1:22,9,background exit:23,\n0,2,15,background rightmarker snow4:24,11,0,2,16,background plant1 snow6:25,2,0,\n2,0,8,18,18,20,18,16,14,9,11,\n0,2,8,background snow3:26,8,9,8,8,8,background plant2 snow1:27,15,\n2,0,background plant4 snow6:28,0,5,6,5,6,background plant4 snow2:29,0,2,\n0,2,0,4,15,2,0,2,0,29,17,\n",13,"1627778178860.0981"] + ["title pretender to the crown\nauthor colin thil\nhomepage http://pretendertothecrown.wordpress.com/\nrun_rules_on_level_start\nbackground_color #d7dbef\ntext_color #69729f\nyoutube dasz1sSax2k\n\nrealtime_interval 0.1\nthrottle_movement \n\n========\nOBJECTS\n========\nExit\nred\n..0..\n..0..\n00000\n.000.\n..0..\n\nsnow1\n#d7dbef\n....0\n.....\n.....\n.....\n.....\n\nsnow2\n#d7dbef\n.....\n...0.\n.....\n.....\n.....\n\nsnow3\n#d7dbef\n.....\n.....\n...0.\n.....\n.....\n\nsnow4\n#d7dbef\n.....\n.....\n.....\n...0.\n.....\n\nsnow5\n#d7dbef\n.....\n.....\n.....\n.....\n....0\n\nsnow6\n#d7dbef\n.....\n.....\n.....\n.....\n....0\n\nBackground\n#d7dbef #e4e6f4\n00100\n00000\n10000\n00000\n00001\n\nplant1\n#2c5a42 #225039\n..0..\n.001.\n.011.\n00111\n01111\n\nplant2\n#14796c #0c6358\n..0..\n.001.\n.011.\n00111\n01111\n\nplant3\n#2e6549 #225039 #0c6358\n22022\n20012\n20112\n00111\n01111\n\nplant4\n#14796c #0c6358 #225039\n22022\n20012\n20112\n00111\n01111\n\ncrate\nLIGHTBROWN BROWN DARKBROWN\n00000\n01102\n01112\n02112\n22222\n\nplayer\n#ead5a8 #e1c99b #69729f #454b69 #f2c835 #ecbc16\n4.4.5\n.445.\n.011.\n.223.\n.333.\n\nsoldier\n#ead5a8 #e1c99b #69729f #454b69 #343b5f #c5c5c4\n5.3..\n5223.\n10044\n.0044\n.1.1.\n\nprisoner\n#ead5a8 #e1c99b #69729f #454b69\n..3..\n.223.\n.000.\n.000.\n.1.1.\n\nenemy\n#ead5a8 #e1c99b #c56c57 #bc5e48 #a7523e #c5c5c4\n5.3..\n5223.\n10044\n.0044\n.1.1.\n\nUpMarker\nRED\n\nLeftMarker\nRED\n\nRightMarker\nRED\n\nDownMarker\nRED\n\n\n=======\nLEGEND\n=======\n. = Background\np = prisoner\ny = plant1\nt = plant2\nz = plant3\nr = plant4\ne = enemy\nc = crate\nx = exit \na = player\n\nMarker = UpMarker or LeftMarker or RightMarker or DownMarker\ncrew = Player or soldier or prisoner\nplant = plant1 or plant2 or plant3 or plant4\nsnow = snow1 or snow2 or snow3 or snow4 or snow5 or snow6\n\n=======\nSOUNDS\n=======\n\nSFX0 52755904 (hit)\nSFX1 150500 (rescue)\nSFX2 6007707 (push)\nSFX3 13396704 (crush)\nEndLevel 83714500\n\n================\nCOLLISIONLAYERS\n================\n\nMarker,exit\n\nBackground\n\nplayer,soldier,enemy,prisoner,plant,crate\n\nsnow\n\n======\nRULES \n====== \n\nrandom down [no snow|no snow|no snow|no snow|no snow] -> [snow1||||]\n\n[ snow4 ] -> [ snow5 ]\n[ snow3 ] -> [ snow4 ]\n[ snow2 ] -> [ snow3 ]\n[ snow1 ] -> [ snow2 ]\ndown [ snow6|] -> [ |snow1 ]\n[ snow6] -> [ ]\n[ snow5 ] -> [ snow6 ]\n\n[ > player | crate] -> [ > player | > crate ] SFX2\n[ > crate | crate] -> [ > crate | > crate ] SFX2\n\nleft [ > Player | enemy | prisoner ] -> [ player | soldier Rightmarker | ] SFX0\nright [ > Player | enemy | prisoner ] -> [ player | soldier Leftmarker | ] SFX0\nup [ > Player | enemy | prisoner ] -> [ player | soldier Downmarker | ] SFX0\ndown [ > Player | enemy | prisoner ] -> [ player | soldier Upmarker | ] SFX0\n\n[ > Player | enemy | soldier ] -> [ player | | soldier ] SFX0\n\n[ left player ] -> [ left player Leftmarker ]\n[ right player ] -> [ right player Rightmarker ]\n[ up player ] -> [ up player Upmarker ]\n[ down player ] -> [ down player Downmarker ]\n\nstartloop\nlate left [ soldier Leftmarker | No crew ] -> [ Leftmarker | soldier ]\nlate right [ soldier Rightmarker | No crew ] -> [ Rightmarker | soldier ]\nlate up [ soldier Upmarker | No crew ] -> [ Upmarker | soldier ]\nlate down [ soldier Downmarker | No crew ] -> [ Downmarker | soldier ]\nendloop\n\n==============\nWINCONDITIONS\n==============\n\nno prisoner \nsome player on exit\n\n======= \nLEVELS\n=======\n\nmessage je suis fatigue, mortellement fatigue\nmessage mais chaque nuit, quand j arrive a dormir, je suis roi de norvege\n\nzrzrzrzrzrz\nrzrzrzrzrzr\nzrzrz.eperz\nrzpzr.tet.r\nzre.....z.z\nr....a....r\nz.y.....etz\nr..et.typzr\nztepe.zryrz\nrztyt.rzrzr\nzrzrzxzrzrz\n\nmessage depuis ma plus lointaine jeunesse un mal me ronge\nmessage il me faut etre roi, il m’est impossible de vivre autrement!\n\nzrzrzrzrzrz\nrzrzrzrzrzr\nzrzrprprzrz\nrzrzeaezrzr\nzrze...ezrz\nrzepecepezr\nzrye...eyrz\nrzryt.tyrzr\nzrzrz.zrzrz\nrzrzr.rzrzr\nzrzrzxzrzrz\n\nmessage le ciel m a fait pour que je gouverne, il n y a pas d autres remede pour moi\nmessage toi, le tout-puissant, qui m’as mis dans cette situation, il faut que tu assumes les consequences!\n\nzrzrzrzrzrz\nrzrz...zrzr\nzrze.p.ezrz\nrzepeeepezr\nzr.ey.ye.rz\na.........x\nyt.ey.ye.ty\nrzepe.epezr\nzrye...eyrz\nrzry...yrzr\nzrzrytyrzrz\n\nmessage j’ai vaincu\nmessage d'un coup d'epee, j’ai fait sauter la couronne du roi\n\nzrzrzazrzrz\nrzrzr.rzrzr\nzrzrz.zrzrz\nrprpr.rprpr\nzezez.zezez\nr.........r\nz.yt.e.ty.z\nr....e....r\nztyty.ytytz\nrzrzr.rzrzr\nzrzrzxzrzrz\n\nmessage Les boucliers etaient enfonces dans la neige mais il n’y avais personnes derriere eux\n\nzrzrzazrzrz\nrzrzr.rzrzr\nzreez.zeerz\nrz..e....zr\nzpe.tet.epz\nry..zpz..yr\nzpe.rer.epz\nrye.....eyr\nzreey.yeerz\nrztpr.rptzr\nzrztzxztzrz\n\nmessage ils se sont enfuis dans la foret, par les plateux et les marais, et les coteaux\nmessage aussi loin que leurs jambes voulaient les porter\n\nzrzrzazrzrz\nrzrzr.rzrzr\nzrpe...rzrz\nrzty...epzr\nzrpe.c.tyrz\nrztycycepzr\nzrpe.c.tyrz\nrzty...epzr\nzrzrt.ttyrz\nrzrzr.rzrzr\nzrzrzxzrzrz\n\nmessage j’ai defendu l’oeuvre de ma vie et le salut de mon ame\n\nzrzrzazrzrz\nrzrzr.rzrzr\nzpe.z.z.epz\nretyr.r.ter\nz..c...c..z\nr.t.tyt.t.r\nz.z.zrz.z.z\nr..c...c..r\nzet.y.ytyez\nrpe.r.r.epr\nztytzxztttz\n\nmessage ai-je l’air d un roi maintenant?\n\nrzrzrarzrzr\nzpe...zpzpz\nryt..yrerer\nzrz..r....z\nrzpe...y..r\nzry..t..yez\nrpr.tpt.rpr\nzez.zez.ztz\nr...r.r..zr\nz..tz...yzz\nrzrzrxtyrzr\n\nmessage chaque jour je doit regarder l’avenir en souriant\nmessage comme si j’etait sur de mon droit, de ma victoire et de mon succes\n\nzrzrzazrzrz\nr.........r\nz.e.e.e.e.z\nrypypypypyr\nzryryr.ryrz\nrppzpe.epzr\nzeeryt..yrz\nr...rzt...r\nz.y..pe.y.z\nr...t.t...r\nztytzxztytz \n\nmessage n’y a t’il donc la haut aucune loi certaine sur laquelle tout doit se regler?\n\nzrzrzazrzrz\nrprzr.rzrzr\nzezpe.epzrz\nr..e...erzr\nz.y..t..zpz\nr...tzt..er\nzty.zrz.e.z\nrz..r.r...r\nzre.....etz\nrzptt.ttpzr\nzryrzxzryrz\n\nmessage il y a une peur secrete dans cette victoire\n\nrzrzrarzrzr\nz.........z\nr..ctyte..r\nz.epepepc.z\nrytet.tetyr\nzpzpz.zpzpz\nreryr.ryrer\nz..c...c..z\nr..y.y.y..r\nz..c...c..z\nrytztxtztyr\n\nmessage si j’essaie de me voir comme le juste roi, il faut que je le fasse par artifice,\nmessage par une construction astucieuse, une oeuvre audacieuse\n\nrzrzrarzrzr\nzrzrz.zrzrz\nrpe.....epr\nztyt.ty.ytz\nrpe..c..epr\nztycy.ycytz\nrpe..c..epr\nzty.y.y.ytz\nrzr..cc.rzr\nzrztyxytzrz\nrzrzrxrzrzr\n\nmessage le roi etait-il d une autre etoffe que moi?\nmessage serait-il parmis ceux qui ont de la chance?\n\nrzrzrarzrzr\nz.....zpe.z\nr.t.tcryt.r\nz.c.....z.z\nr.tytetcr.r\nz...cpz...z\nretctyr.t.r\nzpz.....c.z\nryrctyt.tyr\nz...c...epz\nrytytxtytyr\n\nmessage mon royaume?\nmessage il est sombre, comme celui de l’ange qui se dressa contre dieu.\n\nrzrzrarzrzr\nzrzr...rzrz\nrzpe....epr\nzrytccccytz\nrpe.....epr\nzty.yt.tytz\nrpe....epzr\nztycccctyrz\nrzpe...epzr\nzryt...tyrz\nrzrztxtzrrr\n\nmessage que n ai-je sacrifie pour ce trone ou je ne suis pas parvenu?\n\nrzrzrarzrzr\nzrz.....zpz\nrz..tct..er\nz..t.c.t..z\nr.tpecept.r\nz.zpecepz.z\nr..y.c.y..r\nz...ycy..tz\nret.....tzr\nzpzty.ytzrz\nryrzrxrzrzr\n\nmessage je voulais etre le plus grand dans ce pays\nmessage seigneur voyez, je m’humilie devant vous, je suis le plus minable de tous!\n\nrzrzrarzrzr\nzrz....rprz\nrz...y..ezr\nzt.e.r..epz\nrpe...ty.yr\nzt.ty...epz\nrpe..y.e.yr\nzte..r...rz\nrzpy....tzr\nzrzry.ytzrz\nrzrzrxrzrzr\n\nmessage je suis un pauvre homme, je n’ais que ma vie a donner\nmessage prennez la et sauvez la pensee royale\nmessage -vous avez perdu-\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", 2, "tick", "tick", 2, "tick", 3, "tick", "tick", 3, "tick", 2, "tick", "tick", 2, "tick", "tick", 2, "tick", 2, "tick", "tick", 2, "tick", 1, "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", 1, "tick", "tick", 1, "tick", "tick", "tick", 0, "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background plant3:0,background plant4 snow3:1,0,background plant4:2,0,2,background plant3 snow4:3,2,0,2,0,\n2,0,background plant4 snow4:4,0,background prisoner:5,background plant1:6,5,6,background plant4 snow1:7,0,7,\n0,1,background enemy:8,background:9,8,9,8,background enemy snow3:10,8,background plant2:11,0,\n2,0,8,9,9,background player snow6:12,background soldier upmarker:13,background upmarker:14,8,5,11,\n0,2,0,8,11,background plant3 snow2:15,2,background leftmarker:16,6,2,background plant3 snow3:17,\nbackground downmarker:18,background downmarker snow2:19,background downmarker snow4:20,background rightmarker:21,8,5,8,16,background snow1:22,9,background exit:23,\n0,2,15,background rightmarker snow4:24,11,0,2,16,background plant1 snow6:25,2,0,\n2,0,8,18,18,20,18,16,14,9,11,\n0,2,8,background snow3:26,8,9,8,8,8,background plant2 snow1:27,15,\n2,0,background plant4 snow6:28,0,5,6,5,6,background plant4 snow2:29,0,2,\n0,2,0,4,15,2,0,2,0,29,17,\n", 13, "1627778178860.0981"] ], [ `gallery: boxes & balloons`, - ["title Boxes & Balloons\nauthor Ben Reilly\nhomepage ben-reilly.com\ncolor_palette amiga\nrealtime_interval 0.1\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\nLightGrey LightGrey\n00010\n11111\n01000\n11111\n00010\n\nExit\nYellow Brown\n.111.\n11111\n11111\n10111\n11111\n\nWall\nDarkGrey DarkGrey\n00010\n11111\n01000\n11111\n00010\n\nPlayer\ndarkbrown LightBrown orange\n.000.\n.111.\n22222\n.222.\n.0.0.\n\nDeadPlayer\ndarkred lightred red darkred\n.000.\n.111.\n22222\n.222.\n.3.3.\n\nCrate\nOrange Lightbrown\n00000\n01110\n01110\n01110\n00000\n\nStuckCrate\nDarkGrey Grey\n00000\n01110\n01110\n01110\n00000\n\nBalloon\nBlue Grey\n.000.\n00000\n.000.\n..1..\n.11..\n\nPoppingBalloon\nBlue Grey\n.0.0.\n0...0\n.0.0.\n..1.\n.1...\n\nLadderMain\nBrown\n.0.0.\n.000.\n.0.0.\n.000.\n.0.0.\n\nLadderTop\nBrown\n.....\n.....\n.0.0.\n.000.\n.0.0.\n\nLadderBottom\nBrown\n.0.0.\n.000.\n.0.0.\n.....\n.....\n\nDownSpike\ndarkgrey red\n..0..\n..0..\n..1..\n.....\n.....\n\nUpSpike\ndarkgrey red\n.....\n.....\n..1..\n..0..\n..0..\n\nRightSpike\nDarkgrey red\n.....\n.....\n001..\n.....\n.....\n\nLeftSpike\nDarkgrey red\n.....\n.....\n..100\n.....\n.....\n\n(Weights/forces acting on objects; Wx, where x is the amount of downward pushing force applied to an object. Note that there is only one negative one, since we do top-down force calculations, so we only need to know if an object is moving up, not with how much force.)\nFreeBody\nWhite\n\nWn1\nGrey\n\nW0\nGrey\n\nW1\nGrey\n\nW2\nGrey\n\nW3\nGrey\n\nW4\nGrey\n\nW5\nGrey\n\nFinal\nBlack\n\nTimeTick\nBlue\n\nAllowMove\nRed\n\nShadow\nBlack\n\nSound\nGrey\n\n\n=======\nLEGEND\n=======\nLadder = LadderMain or LadderTop or LadderBottom\n\nStatus = TimeTick or AllowMove or Sound\n\n. = Background\n# = Wall and Background\nP = Player\nC = Crate\nB = Balloon\n\nt = LadderTop\nL = LadderMain\nm = LadderBottom\n\n- = Crate and LadderMain\n+ = Balloon and LadderMain\n* = Player and LadderMain\n\n/ = Crate and LadderTop\n\n0 = upspike\n1 = rightspike\n2 = downspike\n3 = leftspike\n\nX = Exit\n\nW = Wn1 or W0 or W1 or W2 or W3 or W4 or W5\nFB = FreeBody\n\nUpper = Balloon\nDowner = Crate or Player\nObj = Upper or Downer\n\nSpike = Upspike or Downspike or Leftspike or Rightspike\nvertspike = upspike or downspike\nhorizspike = leftspike or rightspike\n\nGround = Obj or StuckCrate or Wall or Ladder\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 53548707\nBalloon MOVE 798907\n\nsfx5 15551704\nsfx6 12412104\nsfx7 50943104\n\n================\nCOLLISIONLAYERS\n================\n\nStatus\nFB\nW, Final\nShadow\nBackground\nLadder, Exit\nPlayer, Wall, Crate, Balloon, StuckCrate, PoppingBalloon, DeadPlayer\nSpike\n\n======\nRULES\n======\n\n(Mark if player is moving or not.)\n[orthogonal Player] [Exit no AllowMove] -> CANCEL\n[orthogonal Player] [timetick] -> [orthogonal Player] [no timetick]\n[stationary Player] [Exit no timetick] -> [Player] [Exit TimeTick]\n\n(If player moves, resolve gravity on the player before allowing another move.)\n[Player no Shadow] -> [Player Shadow]\nlate [Exit no AllowMove] -> [Exit AllowMove]\nlate [Player no Shadow] [AllowMove] -> [Player] []\nlate [Shadow] -> []\n\n(**********************************************************)\n(***PLAYER-CAUSED MOTION***)\n(**********************************************************)\n\n(Player cannot move vertically, except on ladders, and to exit a ladder from below.)\n[Exit no TimeTick] [vertical Player no Ladder] -> [Exit] [Player]\nup [Exit no TimeTick] [> Player Ladder | no Ladder] -> [Exit] [ Player Ladder | ]\n\n(Player cannot move horizontally mid-air)\ndown [Exit no TimeTick] [horizontal Player no Ladder | no Ground] -> [Exit] [Player |]\n\n(Player pushes things, things push things. Includes vertical movement because players are strong and grip ladders really tightly.)\n[Exit no TimeTick] [> Obj | Obj] -> [Exit] [> Obj | > Obj]\n\n(**********************************************************)\n(***GRAVITY***)\n(**********************************************************)\n(Idea: Apply gravitational forces to objects that are not being moved by the player. Process them from the top of a stack of objects downward, balancing the sum of positive (downward) and negative (upward) forces.\n\nSince we're processing downward, any object determined to be moving upwards is definitely moving upwards. Such an object indicates the bottom of a sub-stack, and the next object in the stack starts the calculation over.\n\nWhen we reach the bottom of a (sub-)stack, the movement of the final, lowest object tells us how the whole (sub-)stack will move, so we apply that movement iteratively upwards.\n\nNOTE: Players can grip ladders really tightly, so they are only affected by stack gravity when the player is not on a ladder.\n)\n\n(***STEP 1: Mark the bodies that the player is not affecting.***)\n[TimeTick] [stationary Balloon no FB] -> [TimeTick] [Balloon FB]\n[TimeTick] [stationary Crate no FB] -> [TimeTick] [Crate FB]\n[TimeTick] [stationary Player no Ladder no FB] -> [TimeTick] [Player FB]\n\n(***STEP 2: Begin the gravity calc at top of each stack.***)\ndown [no FB | Upper FB] -> [ | < Upper FB Wn1]\ndown [no FB | Downer FB] -> [ | > Downer FB W1]\n\n(***STEP 3: Iteratively apply gravity downward on stack.***)\n(1. DOWNWARD MOTION)\n down [> Obj W1 | Upper FB] -> [ Obj | Upper FB W0]\n + down [> Obj W2 | Upper FB] -> [> Obj | > Upper FB W1]\n + down [> Obj W3 | Upper FB] -> [> Obj | > Upper FB W2]\n + down [> Obj W4 | Upper FB] -> [> Obj | > Upper FB W3]\n + down [> Obj W5 | Upper FB] -> [> Obj | > Upper FB W4]\n\n + down [> Obj W1 | Downer FB] -> [> Obj | > Downer FB W2]\n + down [> Obj W2 | Downer FB] -> [> Obj | > Downer FB W3]\n + down [> Obj W3 | Downer FB] -> [> Obj | > Downer FB W4]\n + down [> Obj W4 | Downer FB] -> [> Obj | > Downer FB W5]\n + down [> Obj W5 | Downer FB] -> [> Obj | > Downer FB W5](!!)\n(2. UPWARD MOTION)\n (doesn't affect next; re-apply top-of-stack rules)\n + down [< Obj W | Upper FB] -> [< Obj Final | < Upper FB Wn1]\n + down [< Obj W | Downer FB] -> [< Obj Final | > Downer FB W1]\n(3. NO MOTION)\n (possibly subject to next obj; re-apply top-of-stack rules)\n + down [stationary Obj W | Upper FB] -> [< Obj Final | < Upper FB Wn1]\n + down [stationary Obj W | Downer FB] -> [ Obj | > Downer FB W1]\n\n(***Step 4: Stop at bottom of stack.***)\n(As with beginning a stack, if the stack is pushing into a non-free object, the stack remains still or else it might interrupt the other object's motion.)\ndown [Obj W | no FB] -> [Obj Final | ]\n\n(***Step 5: Apply bottom-of-sub-stack motion to whole sub-stack.)\n(1. UPWARD MOTION)\n up [> Obj Final | Obj FB no Final] -> [> Obj Final| > Obj Final]\n(2. DOWNWARD MOTION)\n + up [< Obj Final | Obj FB no Final] -> [< Obj Final | Obj Final]\n(3. NO MOTION)\n + up [stationary Obj Final | Obj FB no Final] -> [Obj Final | Obj Final]\n\n(**********************************************************)\n(***Cleanup***)\nlate [W] -> []\nlate [Final] -> []\nlate [FreeBody] -> []\n\n(\n(Horizontal motion has the right-of-way.)\nvertical [> Obj | horizontal Obj] -> [Obj | horizontal Obj]\n)\n\n(Spikes)\n[poppingballoon] -> []\nvertical [> balloon | vertspike] -> [> poppingballoon | vertspike]\nhorizontal [> balloon | horizspike] -> [> poppingballoon | horizspike]\nlate [poppingballoon no spike] -> [balloon]\nlate [poppingballoon] -> sfx5\n\nvertical [> Crate | vertspike] -> [> stuckcrate | vertspike]\nhorizontal [> Crate | horizspike] -> [> stuckcrate | horizspike]\nlate [stuckcrate no spike] -> [Crate]\nlate [stuckcrate no Sound] -> [StuckCrate Sound] sfx6\n\nvertical [> Player | vertspike] -> [> DeadPlayer | vertspike]\nhorizontal [> Player | horizspike] -> [> DeadPlayer | horizspike]\nlate [DeadPlayer no spike] -> [Player]\nlate [DeadPlayer no Sound] -> [DeadPlayer Sound] sfx7\n\n==============\nWINCONDITIONS\n==============\n\nAny Exit on Player\n\n=======\nLEVELS\n=======\n\nMessage Version 1.2\n\nMessage Level 1\n\n##########\n##tcc.####\n##l##.####\n##l#..####\n##l#..####\n#pl#....x#\n#######.##\n#######.##\n##########\n\nMessage Level 2\n\n#########\n##..tp..#\n##..l#c.#\n##..l.c.#\n##t.l.c.#\n#.l######\n#.l....x#\n####...##\n#########\n\nMessage Level 3\n\n##########\n##tc....##\n##lc....##\n##lc....##\n##l#....##\n##l.....##\n##lp..#.##\n#.l####.x#\n#.l.....##\n##########\n\nMessage Level 4\n\n##############\n#t...........#\n#l#####......#\n#lc..........#\n#l####.......#\n#lc..........#\n#l###........#\n#lc..........#\n#l##.........#\n#lc..........#\n#l#.........x#\n#l...p....#.##\n##############\n\nMessage Level 5\n\n##########\n##########\n#p.tb..x.#\n###l#.####\n###lb.####\n##########\n##########\n\nMessage Level 6\n\n###############\n#..x.b.......t#\n#####.###.###l#\n#####.###.###l#\n#....p.b.....l#\n#######b#######\n#######b#######\n#######b#######\n###############\n\nMessage Level 7\n\n###############\n#t.......b.x..#\n#l###.###.#####\n#l###.###.#####\n#l...p.b......#\n#######b#######\n#######b#######\n#######b#######\n###############\n\nMessage Level 8\n\n####################\n##.#################\n##t...........x.####\n##l######.#######.##\n##l..............t##\n#######.###.#####l##\n#.#####.###.#####l##\n#t...............l##\n#l###.###.###.######\n#l###.###.###.######\n#l###.###.###.######\n#l.b...b...b...b..p#\n###b###b###b###b####\n###b###b###b###b####\n###b###b###b########\n####################\n\nMessage Level 9\n\n###########\n#####t...##\n#####l##.##\n#x.pclb..##\n##.###b####\n######.####\n###########\n###########\n\nMessage Level 10\n\n#############\n#...........#\n#.x...pt....#\n####c##l##c.#\n#...b..l..b.#\n#......l..b.#\n#############\n\nMessage Level 11\n\n############\n####.#######\n#.p.t.....##\n####lc###.##\n####lc....##\n####lc###.##\n####lb....##\n####lb....##\n####lb.....#\n####l.....x#\n######..#.##\n######..#.##\n############\n############\n\nMessage Level 12\n\n############\n#......c...#\n#t.p.t.b.x.#\n#l###-#b####\n#l...+..####\n#l...l..####\n############\n\nMessage Level 13\n\n###############\n#..cbc......t.#\n#..#.#######l##\n#..#.#.....cl.#\n#..#.#.....bl.#\n#..#.b..c..bl.#\n#..#.#..###.l.#\n#..#.#######l##\n#.t.........l.#\n##l############\n#.l...........#\n#.l.p.....x...#\n#######c#######\n#######b#######\n#######b#######\n###############\n\nMessage Level 14\n\n#############\n##########.##\n##########.##\n##########.##\n#t../..b.p.x#\n#l##+##b##.##\n#l..+...#####\n####+########\n####l########\n####l########\n#############\n\nMessage Level 15\n\n###########\n####ttt####\n####l-l####\n###pl-l.###\n####l+l####\n####l+l####\n#####m#####\n#####.#####\n#####.#####\n#####.#####\n####.....x#\n#####.#.###\n#######.###\n###########\n\nMessage Level 16\n\n###############\n#t.t.p.t.b..x3#\n#l#l###l#.#####\n#l#m###l#.#####\n#l#..bbm#.#####\n#l#####.b.#####\n#l#####.#######\n#l......#######\n###############\n\nMessage Level 17\n\n################\n#############.##\n#t..p.........x#\n#l######.##.#.##\n#l###t.t.##c####\n#l###l#l...c.###\n#l###l#l###b####\n#l###l#l###b####\n#l###l#l###.####\n#l###l.l########\n#l#####l########\n#lbbbbbl########\n#######l########\n#######0########\n################\n\nMessage Level 18\n\n#################\n####c############\n####c############\n####c############\n##t.c...........#\n##l####.........#\n##l.............#\n##l......p.t....#\n##l.....###l....#\n#.l........l....#\n#.l....0...l...x#\n#############.###\n#############.###\n#############.###\n#############.###\n#################\n\nMessage Level 19\n\n############\n#########2##\n#t........##\n#l###.###.##\n#l#tc3#t.t##\n#l#lb.#l#l##\n#l#lb3#l#l.#\n#l.l...l.l.#\n#l###.###-##\n#l###..x#+##\n#l###.###l##\n#l.p.0...l##\n############\n\nMessage Level 20\n\n############\n#t.p.....x.#\n#l#####.####\n#l#2#2#.####\n#l.t....####\n#l#l#c#.####\n#l.-.c..####\n#l#+#b..####\n#l.l###.####\n###l..b3####\n############\n\nMessage Level 21\n\n##########\n####2#####\n#tp..2.x3#\n#l##tt####\n#l..ll...#\n####--####\n#tb.++.bt#\n#l##ll##l#\n#l##ll##l#\n#l##ll##l#\n#l..ll..l#\n##########\n\nMessage Level 22\n\n#####################\n###...........t.#####\n###.##########l..####\n###.#####.....l...###\n#.t.t...2..c..l....##\n#.m#l###.#####l.....#\n##cbl#x.......l.....#\n##b.l###1.....l.p..t#\n##.#l###.##########l#\n##.bl###....2......l#\n##..l#######.###.##l#\n##0.l.........b....l#\n##############b######\n##############b######\n##############b######\n##############b######\n#####################\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick",1,"tick",1,"tick","tick",1,"tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick",1,"tick","tick",1,"tick",3,"tick","tick",3,"tick","tick",3,"tick","tick","tick","tick","tick",3,"tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","restart","tick","tick",1,"tick","tick",1,"tick",1,"tick","tick",1,"tick",1,"tick","tick",1,"tick",1,"tick","tick",1,"tick",1,"tick","tick",1,"tick","tick","tick",1,"tick","tick","tick","tick",1,"tick","tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick",1,"tick","tick","tick","tick",0,"tick","tick",0,"tick","tick","tick","tick",0,"tick",0,"tick","tick",0,"tick",3,"tick","tick",3,"tick","tick",3,"tick",3,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background balloon:1,background laddertop:2,background laddermain:3,3,3,3,0,0,0,0,0,background:4,2,3,3,0,0,4,\n0,0,0,4,0,0,0,0,0,0,4,0,4,0,0,4,0,0,0,1,\n1,1,4,0,0,0,4,0,4,0,0,4,0,0,0,4,0,0,0,0,\n0,0,4,0,4,0,0,4,4,4,4,background player:5,0,0,0,0,0,0,4,0,\n4,0,0,1,0,0,0,4,0,0,0,0,0,0,4,0,4,4,4,4,\n0,0,0,1,1,1,4,0,0,0,4,0,4,0,0,4,0,0,0,4,\n0,0,0,0,0,0,4,4,4,0,0,1,4,4,4,4,0,0,0,0,\n0,0,4,0,4,0,0,4,0,0,0,4,0,0,0,0,0,0,4,0,\n4,4,4,4,0,0,0,1,1,1,4,0,0,0,4,0,4,0,0,4,\n0,0,0,4,0,0,0,0,0,0,4,0,4,0,0,1,4,4,4,4,\n0,0,0,0,0,0,allowmove background exit:6,0,4,0,0,4,0,0,0,4,0,0,0,0,\n0,0,4,0,4,0,0,4,0,0,0,1,1,4,0,0,0,0,0,0,\n4,0,0,4,0,0,0,4,0,0,0,0,0,0,0,4,2,3,3,3,\n0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",16,"1627778214486.7048"] + ["title Boxes & Balloons\nauthor Ben Reilly\nhomepage ben-reilly.com\ncolor_palette amiga\nrealtime_interval 0.1\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\nLightGrey LightGrey\n00010\n11111\n01000\n11111\n00010\n\nExit\nYellow Brown\n.111.\n11111\n11111\n10111\n11111\n\nWall\nDarkGrey DarkGrey\n00010\n11111\n01000\n11111\n00010\n\nPlayer\ndarkbrown LightBrown orange\n.000.\n.111.\n22222\n.222.\n.0.0.\n\nDeadPlayer\ndarkred lightred red darkred\n.000.\n.111.\n22222\n.222.\n.3.3.\n\nCrate\nOrange Lightbrown\n00000\n01110\n01110\n01110\n00000\n\nStuckCrate\nDarkGrey Grey\n00000\n01110\n01110\n01110\n00000\n\nBalloon\nBlue Grey\n.000.\n00000\n.000.\n..1..\n.11..\n\nPoppingBalloon\nBlue Grey\n.0.0.\n0...0\n.0.0.\n..1.\n.1...\n\nLadderMain\nBrown\n.0.0.\n.000.\n.0.0.\n.000.\n.0.0.\n\nLadderTop\nBrown\n.....\n.....\n.0.0.\n.000.\n.0.0.\n\nLadderBottom\nBrown\n.0.0.\n.000.\n.0.0.\n.....\n.....\n\nDownSpike\ndarkgrey red\n..0..\n..0..\n..1..\n.....\n.....\n\nUpSpike\ndarkgrey red\n.....\n.....\n..1..\n..0..\n..0..\n\nRightSpike\nDarkgrey red\n.....\n.....\n001..\n.....\n.....\n\nLeftSpike\nDarkgrey red\n.....\n.....\n..100\n.....\n.....\n\n(Weights/forces acting on objects; Wx, where x is the amount of downward pushing force applied to an object. Note that there is only one negative one, since we do top-down force calculations, so we only need to know if an object is moving up, not with how much force.)\nFreeBody\nWhite\n\nWn1\nGrey\n\nW0\nGrey\n\nW1\nGrey\n\nW2\nGrey\n\nW3\nGrey\n\nW4\nGrey\n\nW5\nGrey\n\nFinal\nBlack\n\nTimeTick\nBlue\n\nAllowMove\nRed\n\nShadow\nBlack\n\nSound\nGrey\n\n\n=======\nLEGEND\n=======\nLadder = LadderMain or LadderTop or LadderBottom\n\nStatus = TimeTick or AllowMove or Sound\n\n. = Background\n# = Wall and Background\nP = Player\nC = Crate\nB = Balloon\n\nt = LadderTop\nL = LadderMain\nm = LadderBottom\n\n- = Crate and LadderMain\n+ = Balloon and LadderMain\n* = Player and LadderMain\n\n/ = Crate and LadderTop\n\n0 = upspike\n1 = rightspike\n2 = downspike\n3 = leftspike\n\nX = Exit\n\nW = Wn1 or W0 or W1 or W2 or W3 or W4 or W5\nFB = FreeBody\n\nUpper = Balloon\nDowner = Crate or Player\nObj = Upper or Downer\n\nSpike = Upspike or Downspike or Leftspike or Rightspike\nvertspike = upspike or downspike\nhorizspike = leftspike or rightspike\n\nGround = Obj or StuckCrate or Wall or Ladder\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 53548707\nBalloon MOVE 798907\n\nsfx5 15551704\nsfx6 12412104\nsfx7 50943104\n\n================\nCOLLISIONLAYERS\n================\n\nStatus\nFB\nW, Final\nShadow\nBackground\nLadder, Exit\nPlayer, Wall, Crate, Balloon, StuckCrate, PoppingBalloon, DeadPlayer\nSpike\n\n======\nRULES\n======\n\n(Mark if player is moving or not.)\n[orthogonal Player] [Exit no AllowMove] -> CANCEL\n[orthogonal Player] [timetick] -> [orthogonal Player] [no timetick]\n[stationary Player] [Exit no timetick] -> [Player] [Exit TimeTick]\n\n(If player moves, resolve gravity on the player before allowing another move.)\n[Player no Shadow] -> [Player Shadow]\nlate [Exit no AllowMove] -> [Exit AllowMove]\nlate [Player no Shadow] [AllowMove] -> [Player] []\nlate [Shadow] -> []\n\n(**********************************************************)\n(***PLAYER-CAUSED MOTION***)\n(**********************************************************)\n\n(Player cannot move vertically, except on ladders, and to exit a ladder from below.)\n[Exit no TimeTick] [vertical Player no Ladder] -> [Exit] [Player]\nup [Exit no TimeTick] [> Player Ladder | no Ladder] -> [Exit] [ Player Ladder | ]\n\n(Player cannot move horizontally mid-air)\ndown [Exit no TimeTick] [horizontal Player no Ladder | no Ground] -> [Exit] [Player |]\n\n(Player pushes things, things push things. Includes vertical movement because players are strong and grip ladders really tightly.)\n[Exit no TimeTick] [> Obj | Obj] -> [Exit] [> Obj | > Obj]\n\n(**********************************************************)\n(***GRAVITY***)\n(**********************************************************)\n(Idea: Apply gravitational forces to objects that are not being moved by the player. Process them from the top of a stack of objects downward, balancing the sum of positive (downward) and negative (upward) forces.\n\nSince we're processing downward, any object determined to be moving upwards is definitely moving upwards. Such an object indicates the bottom of a sub-stack, and the next object in the stack starts the calculation over.\n\nWhen we reach the bottom of a (sub-)stack, the movement of the final, lowest object tells us how the whole (sub-)stack will move, so we apply that movement iteratively upwards.\n\nNOTE: Players can grip ladders really tightly, so they are only affected by stack gravity when the player is not on a ladder.\n)\n\n(***STEP 1: Mark the bodies that the player is not affecting.***)\n[TimeTick] [stationary Balloon no FB] -> [TimeTick] [Balloon FB]\n[TimeTick] [stationary Crate no FB] -> [TimeTick] [Crate FB]\n[TimeTick] [stationary Player no Ladder no FB] -> [TimeTick] [Player FB]\n\n(***STEP 2: Begin the gravity calc at top of each stack.***)\ndown [no FB | Upper FB] -> [ | < Upper FB Wn1]\ndown [no FB | Downer FB] -> [ | > Downer FB W1]\n\n(***STEP 3: Iteratively apply gravity downward on stack.***)\n(1. DOWNWARD MOTION)\n down [> Obj W1 | Upper FB] -> [ Obj | Upper FB W0]\n + down [> Obj W2 | Upper FB] -> [> Obj | > Upper FB W1]\n + down [> Obj W3 | Upper FB] -> [> Obj | > Upper FB W2]\n + down [> Obj W4 | Upper FB] -> [> Obj | > Upper FB W3]\n + down [> Obj W5 | Upper FB] -> [> Obj | > Upper FB W4]\n\n + down [> Obj W1 | Downer FB] -> [> Obj | > Downer FB W2]\n + down [> Obj W2 | Downer FB] -> [> Obj | > Downer FB W3]\n + down [> Obj W3 | Downer FB] -> [> Obj | > Downer FB W4]\n + down [> Obj W4 | Downer FB] -> [> Obj | > Downer FB W5]\n + down [> Obj W5 | Downer FB] -> [> Obj | > Downer FB W5](!!)\n(2. UPWARD MOTION)\n (doesn't affect next; re-apply top-of-stack rules)\n + down [< Obj W | Upper FB] -> [< Obj Final | < Upper FB Wn1]\n + down [< Obj W | Downer FB] -> [< Obj Final | > Downer FB W1]\n(3. NO MOTION)\n (possibly subject to next obj; re-apply top-of-stack rules)\n + down [stationary Obj W | Upper FB] -> [< Obj Final | < Upper FB Wn1]\n + down [stationary Obj W | Downer FB] -> [ Obj | > Downer FB W1]\n\n(***Step 4: Stop at bottom of stack.***)\n(As with beginning a stack, if the stack is pushing into a non-free object, the stack remains still or else it might interrupt the other object's motion.)\ndown [Obj W | no FB] -> [Obj Final | ]\n\n(***Step 5: Apply bottom-of-sub-stack motion to whole sub-stack.)\n(1. UPWARD MOTION)\n up [> Obj Final | Obj FB no Final] -> [> Obj Final| > Obj Final]\n(2. DOWNWARD MOTION)\n + up [< Obj Final | Obj FB no Final] -> [< Obj Final | Obj Final]\n(3. NO MOTION)\n + up [stationary Obj Final | Obj FB no Final] -> [Obj Final | Obj Final]\n\n(**********************************************************)\n(***Cleanup***)\nlate [W] -> []\nlate [Final] -> []\nlate [FreeBody] -> []\n\n(\n(Horizontal motion has the right-of-way.)\nvertical [> Obj | horizontal Obj] -> [Obj | horizontal Obj]\n)\n\n(Spikes)\n[poppingballoon] -> []\nvertical [> balloon | vertspike] -> [> poppingballoon | vertspike]\nhorizontal [> balloon | horizspike] -> [> poppingballoon | horizspike]\nlate [poppingballoon no spike] -> [balloon]\nlate [poppingballoon] -> sfx5\n\nvertical [> Crate | vertspike] -> [> stuckcrate | vertspike]\nhorizontal [> Crate | horizspike] -> [> stuckcrate | horizspike]\nlate [stuckcrate no spike] -> [Crate]\nlate [stuckcrate no Sound] -> [StuckCrate Sound] sfx6\n\nvertical [> Player | vertspike] -> [> DeadPlayer | vertspike]\nhorizontal [> Player | horizspike] -> [> DeadPlayer | horizspike]\nlate [DeadPlayer no spike] -> [Player]\nlate [DeadPlayer no Sound] -> [DeadPlayer Sound] sfx7\n\n==============\nWINCONDITIONS\n==============\n\nAny Exit on Player\n\n=======\nLEVELS\n=======\n\nMessage Version 1.2\n\nMessage Level 1\n\n##########\n##tcc.####\n##l##.####\n##l#..####\n##l#..####\n#pl#....x#\n#######.##\n#######.##\n##########\n\nMessage Level 2\n\n#########\n##..tp..#\n##..l#c.#\n##..l.c.#\n##t.l.c.#\n#.l######\n#.l....x#\n####...##\n#########\n\nMessage Level 3\n\n##########\n##tc....##\n##lc....##\n##lc....##\n##l#....##\n##l.....##\n##lp..#.##\n#.l####.x#\n#.l.....##\n##########\n\nMessage Level 4\n\n##############\n#t...........#\n#l#####......#\n#lc..........#\n#l####.......#\n#lc..........#\n#l###........#\n#lc..........#\n#l##.........#\n#lc..........#\n#l#.........x#\n#l...p....#.##\n##############\n\nMessage Level 5\n\n##########\n##########\n#p.tb..x.#\n###l#.####\n###lb.####\n##########\n##########\n\nMessage Level 6\n\n###############\n#..x.b.......t#\n#####.###.###l#\n#####.###.###l#\n#....p.b.....l#\n#######b#######\n#######b#######\n#######b#######\n###############\n\nMessage Level 7\n\n###############\n#t.......b.x..#\n#l###.###.#####\n#l###.###.#####\n#l...p.b......#\n#######b#######\n#######b#######\n#######b#######\n###############\n\nMessage Level 8\n\n####################\n##.#################\n##t...........x.####\n##l######.#######.##\n##l..............t##\n#######.###.#####l##\n#.#####.###.#####l##\n#t...............l##\n#l###.###.###.######\n#l###.###.###.######\n#l###.###.###.######\n#l.b...b...b...b..p#\n###b###b###b###b####\n###b###b###b###b####\n###b###b###b########\n####################\n\nMessage Level 9\n\n###########\n#####t...##\n#####l##.##\n#x.pclb..##\n##.###b####\n######.####\n###########\n###########\n\nMessage Level 10\n\n#############\n#...........#\n#.x...pt....#\n####c##l##c.#\n#...b..l..b.#\n#......l..b.#\n#############\n\nMessage Level 11\n\n############\n####.#######\n#.p.t.....##\n####lc###.##\n####lc....##\n####lc###.##\n####lb....##\n####lb....##\n####lb.....#\n####l.....x#\n######..#.##\n######..#.##\n############\n############\n\nMessage Level 12\n\n############\n#......c...#\n#t.p.t.b.x.#\n#l###-#b####\n#l...+..####\n#l...l..####\n############\n\nMessage Level 13\n\n###############\n#..cbc......t.#\n#..#.#######l##\n#..#.#.....cl.#\n#..#.#.....bl.#\n#..#.b..c..bl.#\n#..#.#..###.l.#\n#..#.#######l##\n#.t.........l.#\n##l############\n#.l...........#\n#.l.p.....x...#\n#######c#######\n#######b#######\n#######b#######\n###############\n\nMessage Level 14\n\n#############\n##########.##\n##########.##\n##########.##\n#t../..b.p.x#\n#l##+##b##.##\n#l..+...#####\n####+########\n####l########\n####l########\n#############\n\nMessage Level 15\n\n###########\n####ttt####\n####l-l####\n###pl-l.###\n####l+l####\n####l+l####\n#####m#####\n#####.#####\n#####.#####\n#####.#####\n####.....x#\n#####.#.###\n#######.###\n###########\n\nMessage Level 16\n\n###############\n#t.t.p.t.b..x3#\n#l#l###l#.#####\n#l#m###l#.#####\n#l#..bbm#.#####\n#l#####.b.#####\n#l#####.#######\n#l......#######\n###############\n\nMessage Level 17\n\n################\n#############.##\n#t..p.........x#\n#l######.##.#.##\n#l###t.t.##c####\n#l###l#l...c.###\n#l###l#l###b####\n#l###l#l###b####\n#l###l#l###.####\n#l###l.l########\n#l#####l########\n#lbbbbbl########\n#######l########\n#######0########\n################\n\nMessage Level 18\n\n#################\n####c############\n####c############\n####c############\n##t.c...........#\n##l####.........#\n##l.............#\n##l......p.t....#\n##l.....###l....#\n#.l........l....#\n#.l....0...l...x#\n#############.###\n#############.###\n#############.###\n#############.###\n#################\n\nMessage Level 19\n\n############\n#########2##\n#t........##\n#l###.###.##\n#l#tc3#t.t##\n#l#lb.#l#l##\n#l#lb3#l#l.#\n#l.l...l.l.#\n#l###.###-##\n#l###..x#+##\n#l###.###l##\n#l.p.0...l##\n############\n\nMessage Level 20\n\n############\n#t.p.....x.#\n#l#####.####\n#l#2#2#.####\n#l.t....####\n#l#l#c#.####\n#l.-.c..####\n#l#+#b..####\n#l.l###.####\n###l..b3####\n############\n\nMessage Level 21\n\n##########\n####2#####\n#tp..2.x3#\n#l##tt####\n#l..ll...#\n####--####\n#tb.++.bt#\n#l##ll##l#\n#l##ll##l#\n#l##ll##l#\n#l..ll..l#\n##########\n\nMessage Level 22\n\n#####################\n###...........t.#####\n###.##########l..####\n###.#####.....l...###\n#.t.t...2..c..l....##\n#.m#l###.#####l.....#\n##cbl#x.......l.....#\n##b.l###1.....l.p..t#\n##.#l###.##########l#\n##.bl###....2......l#\n##..l#######.###.##l#\n##0.l.........b....l#\n##############b######\n##############b######\n##############b######\n##############b######\n#####################\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", 1, "tick", "tick", 1, "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", 1, "tick", 3, "tick", "tick", 3, "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "restart", "tick", "tick", 1, "tick", "tick", 1, "tick", 1, "tick", "tick", 1, "tick", 1, "tick", "tick", 1, "tick", 1, "tick", "tick", 1, "tick", 1, "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 0, "tick", "tick", 0, "tick", "tick", "tick", "tick", 0, "tick", 0, "tick", "tick", 0, "tick", 3, "tick", "tick", 3, "tick", "tick", 3, "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background balloon:1,background laddertop:2,background laddermain:3,3,3,3,0,0,0,0,0,background:4,2,3,3,0,0,4,\n0,0,0,4,0,0,0,0,0,0,4,0,4,0,0,4,0,0,0,1,\n1,1,4,0,0,0,4,0,4,0,0,4,0,0,0,4,0,0,0,0,\n0,0,4,0,4,0,0,4,4,4,4,background player:5,0,0,0,0,0,0,4,0,\n4,0,0,1,0,0,0,4,0,0,0,0,0,0,4,0,4,4,4,4,\n0,0,0,1,1,1,4,0,0,0,4,0,4,0,0,4,0,0,0,4,\n0,0,0,0,0,0,4,4,4,0,0,1,4,4,4,4,0,0,0,0,\n0,0,4,0,4,0,0,4,0,0,0,4,0,0,0,0,0,0,4,0,\n4,4,4,4,0,0,0,1,1,1,4,0,0,0,4,0,4,0,0,4,\n0,0,0,4,0,0,0,0,0,0,4,0,4,0,0,1,4,4,4,4,\n0,0,0,0,0,0,allowmove background exit:6,0,4,0,0,4,0,0,0,4,0,0,0,0,\n0,0,4,0,4,0,0,4,0,0,0,1,1,4,0,0,0,0,0,0,\n4,0,0,4,0,0,0,4,0,0,0,0,0,0,0,4,2,3,3,3,\n0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 16, "1627778214486.7048"] ], [ `gallery: pushcat junior`, - ["title Pushcat Jr\nauthor Zut!\nhomepage zutgames.com/pushcat\nrealtime_interval 0.3\n\n\n========\nOBJECTS\n========\n\nBackground \n#150f28 #320f45 #200f2e\n20000\n00100\n00002\n10000\n00020\n\nEarth\n #511d37 #1b1132 #9a5971\n20000\n00100\n00002\n10000\n00020\n\nWall \n#584a4e #70a169 #b4d157 \n11111\n12221\n12221\n11111\n00000\n\nPlayer \n#F4D0B4 #9746b2 White DarkBlue\n1...1\n11011\n13031\n12221\n.101.\n\n\nGem1\n#feeba0 #feb704 #ae1a0f\n..0..\n.011.\n01012\n.112.\n..2..\n\nGem2\n#aeddfe #43a9f7 #1f37be\n.001.\n00111\n01012\n01122\n.222.\n\n\n\nBoulder\n#94b4a6 #7d9282 #556a64\n.000.\n00001\n00012\n00122\n.122.\n\nCoin\nWhite\n.....\n..0..\n.000.\n..0..\n.....\n\nExp\nWhite\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nWarn\nBlack\n.....\n.....\n.....\n.....\n.....\n\nVoid\nBlack\n.....\n.....\n.....\n.....\n.....\n\n\nLost\nRed\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nGen\n#b2b2b2 #736c6c #4d4040 black\n.122.\n13232\n12222\n10002\n1...2\n\n\nBomb\n#94b4a6 #7d9282 #556a64 Green\n.000.\n03031\n00012\n03332\n.122.\n\nBoom1\n#94b4a6 #7d9282 #556a64 Red\n.000.\n03031\n00012\n03332\n.122.\n\nBoom2\n#94b4a6 #7d9282 #556a64 Red\n.000.\n03031\n00012\n03332\n.122.\n\n\nBoom3\n#94b4a6 #7d9282 #556a64 Red\n.000.\n03031\n00012\n03332\n.122.\n\nBoom4\nRed\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nBoom5\nRed\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\n+ = Earth\n# = Wall\nP = Player\n0 = Boulder\n1 = Gem1\n2 = Gem2\nC = Coin\nX = Exp\n- = Void\nG = Gen\nW = Warn\nB = Bomb\n\nPushable = Gem1 or Gem2 or 0 or C or B\nFallable = Pushable or C or B\nObstacle = Pushable or Wall or P or C or Earth or Exp \nScorer = Gem1 or Gem2 or C or Exp\nExplodes=Fallable or P or Obstacle or Pushable \n\n\n\n=======\nSOUNDS\n=======\nplayer move 99217507\nsfx0 53304307\nsfx1 35514907\nsfx2 80864700\nsfx3 19899703\n\nEndLevel 96487708\nRestart 32376701\n================\nCOLLISIONLAYERS\n================\n\nBackground\nVoid, Lost, Warn\nPlayer, Wall, Gem1, Gem2, Boulder, Coin, Exp, Gen, Earth, Bomb, Boom1, Boom2, Boom3, Boom4, Boom5\n\n\n======\nRULES \n====== \n\n\n\ndown [ stationary Fallable | no Obstacle] -> [ | down Fallable ] \n\n\n \n\n\n [ > P | C ] -> [ > P | ] SFX2\n [ > P | Earth ] -> [ > P | ] SFX1 \n [ Exp ] -> [ Coin ]\n\nHorizontal [ > P | Pushable ] -> [ > P | > Pushable ] SFX0\nHorizontal [ moving Pushable | Pushable ] -> [moving Pushable| moving Pushable]\n \n[Boom4 ]->[]\n[Explodes | Boom3 ] -> [ Boom4 | Boom3]\n[Explodes | Boom3 ] -> [ Boom4 | Boom4]\n[Boom2] -> [Boom3]\n[Boom1] -> [Boom2] \n\n\nlate [Scorer Warn] -> [Scorer Warn] message Don't lose any gems or coins!\n[Scorer Void] -> Restart\n[0 Void] -> [ Void ]\n[0 Warn] -> [ Warn ]\n\n\n\n\nlate [ Gem1 | Gem1 | Gem1 ] -> [ Exp | Exp | Exp ] SFX3\nlate [ Gem2 | Gem2 | Gem2 ] -> [ Exp | Exp | Exp ] SFX3\n\n\nlate [ Bomb | Bomb | Bomb ] -> [ Boom1 | Boom1 | Boom1 ] \nlate [Boom5]->[Boom4]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nNo Scorer \nNo Lost\n\n\n======= \nLEVELS\n=======\n\n\nMESSAGE Cave 1: School of Push\n\n############\n#p..1.1....#\n##########.#\n#...2..2.#.#\n#.###..#.#.#\n#........#1#\n#.0...2..#+#\n#++#######+#\n#++0+++++0+#\n#+++++0++++#\n############\n\n\nMESSAGE Cave 2: Dirty Paws\n\n........0.....\n.p........1...\n..........0.2.\n............0.\n+++++1++++++++\n+++2+++2+++++2\n++++++2++1++++\n11++2++++++++1\n+++++++1+++2++\n++2++++++++12+\n+1+++1++2+++++\n+++++++++++2++\n+++1++2++1++++\n##############\n\n\nMessage Cave 3: Block Party \n\n..0..000...0++0+++\n.#############+##0\n.#..............#+\n.#.p.......200..#+\n.#....001..010..#+\n0#....010..012..#+\n0#....100..###..#0\n0#....###.......#+\n+#........000...#+\n+#..201...102...#0\n+#..000...###...#+\n0#..000.........#+\n+#..###.....000.#0\n+#..........000.#0\n+#.000..010.020.#0\n+#.002..000.###.#+\n0#.###..100.....#0\n+#WWWWWW###WWWWW#+\n+#WWWWWWWWWWWWWW#+\n+#--------------#+\n\n\nMessage Cave 4: Transport Dept.\n\n.#################.\n##.......0.......##\n#.......00........#\n#....10.000.....0.#\n#..0000000000...0.#\n########+++########\np...............1..\n................#..\n#1................#\n##0............++##\n##+...........00+##\n#+++000+..0.0+0+++#\n#+0000+0.+0.000+++#\n##00++++0+0++0+++##\n.#################.\n\nMESSAGE Cave 5: Rocky One\n\n##############\n#++0+0+++0+0C#\n#+0C++0++01++#\n#++++2++++0++#\n#00+0++0+++0+#\n#0++10+++0+2+#\n#+0++++p++00+#\n#+000+++++++C#\n#+++++0+0+01+#\n#+2+++0++++0+#\n#+00++0+0+0+0#\n#C+0++0++++0+#\n##############\n\n\nMESSAGE Cave 6: Snoop Drop\n\n...............\n..200.020.001..\n..001.010.100..\n..020.000.002..\n..###.###.###..\n...............\n.......p.......\n...............\n...............\n...............\n...............\n...............\n.1...1...2...2.\nW#WWW#WWW#WWW#W\nW#WWW#WWW#WWW#W\n-#---#---#---#-\n\n\nMESSAGE Cave 7: Blockopolis\n\n##############\n#p...........#\n#..00121202..#\n#..12121011..#\n#..11200120..#\n#..22001010..#\n#..10121200..#\n#..02200212..#\n#..01020120..#\n#..10001201..#\n#..00000000..#\n#..########..#\n#WW.######.WW#\n#WW..####..WW#\n#--..####..--#\n\nMESSAGE Cave 8: Scramble\n\n#################\n#+++000+++000+++#\n#+++000+++000+++#\n#000+++000+++000#\n#020+++010+++020#\n#+++000+++000+++#\n#+++010+++010+++#\n#000+++000+++000#\n#000+++020+++000#\n#+++000+++000+++#\n#+++000+++000+++#\n#000+++000+++000#\n#000+++000+++000#\n#+++++++++++++++#\n#...............#\n#.......p.......#\n#WWWWWWWWWWWWWWW#\n#WWWWWWWWWWWWWWW#\n#---------------#\n\nMESSAGE You did it! *HIGH FIVES*\n",["tick","tick","tick",2,2,"tick",2,2,"tick",3,"tick",3,2,"tick",3,"tick",3,3,"tick","tick",0,"tick",0,"tick",3,"tick",0,"tick",1,2,"tick",2,"tick",2,"tick",3,3,"tick",0,"tick",3,3,"tick",2,"tick",3,1,"tick","tick",1,"tick",3,"tick"],"background:0,0,0,0,background earth:1,1,1,background gem1:2,1,1,1,1,1,background wall:3,\n0,0,0,0,0,0,1,2,1,1,2,1,1,3,\n0,0,0,0,1,0,0,1,1,background gem2:4,1,1,1,3,\n0,0,0,0,1,0,4,1,1,1,1,1,2,3,\n0,0,0,0,1,1,0,4,1,1,1,1,1,3,\n0,0,0,0,0,4,2,1,1,1,2,1,1,3,\n0,0,0,0,0,background boulder:5,4,1,1,1,1,1,4,3,\n0,0,0,0,0,0,1,1,2,1,1,1,1,3,\n0,0,0,0,0,background player:6,1,1,1,1,4,1,1,3,\n0,0,0,0,1,0,2,1,1,1,1,1,2,3,\n0,0,2,5,1,1,1,1,1,1,1,1,1,3,\n0,0,0,0,1,1,1,1,4,2,1,4,1,3,\n0,0,4,5,1,1,1,1,1,4,1,1,1,3,\n0,0,0,0,1,4,1,2,1,1,1,1,1,3,\n",3,"1627778261438.5264"] + ["title Pushcat Jr\nauthor Zut!\nhomepage zutgames.com/pushcat\nrealtime_interval 0.3\n\n\n========\nOBJECTS\n========\n\nBackground \n#150f28 #320f45 #200f2e\n20000\n00100\n00002\n10000\n00020\n\nEarth\n #511d37 #1b1132 #9a5971\n20000\n00100\n00002\n10000\n00020\n\nWall \n#584a4e #70a169 #b4d157 \n11111\n12221\n12221\n11111\n00000\n\nPlayer \n#F4D0B4 #9746b2 White DarkBlue\n1...1\n11011\n13031\n12221\n.101.\n\n\nGem1\n#feeba0 #feb704 #ae1a0f\n..0..\n.011.\n01012\n.112.\n..2..\n\nGem2\n#aeddfe #43a9f7 #1f37be\n.001.\n00111\n01012\n01122\n.222.\n\n\n\nBoulder\n#94b4a6 #7d9282 #556a64\n.000.\n00001\n00012\n00122\n.122.\n\nCoin\nWhite\n.....\n..0..\n.000.\n..0..\n.....\n\nExp\nWhite\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nWarn\nBlack\n.....\n.....\n.....\n.....\n.....\n\nVoid\nBlack\n.....\n.....\n.....\n.....\n.....\n\n\nLost\nRed\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nGen\n#b2b2b2 #736c6c #4d4040 black\n.122.\n13232\n12222\n10002\n1...2\n\n\nBomb\n#94b4a6 #7d9282 #556a64 Green\n.000.\n03031\n00012\n03332\n.122.\n\nBoom1\n#94b4a6 #7d9282 #556a64 Red\n.000.\n03031\n00012\n03332\n.122.\n\nBoom2\n#94b4a6 #7d9282 #556a64 Red\n.000.\n03031\n00012\n03332\n.122.\n\n\nBoom3\n#94b4a6 #7d9282 #556a64 Red\n.000.\n03031\n00012\n03332\n.122.\n\nBoom4\nRed\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nBoom5\nRed\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\n+ = Earth\n# = Wall\nP = Player\n0 = Boulder\n1 = Gem1\n2 = Gem2\nC = Coin\nX = Exp\n- = Void\nG = Gen\nW = Warn\nB = Bomb\n\nPushable = Gem1 or Gem2 or 0 or C or B\nFallable = Pushable or C or B\nObstacle = Pushable or Wall or P or C or Earth or Exp \nScorer = Gem1 or Gem2 or C or Exp\nExplodes=Fallable or P or Obstacle or Pushable \n\n\n\n=======\nSOUNDS\n=======\nplayer move 99217507\nsfx0 53304307\nsfx1 35514907\nsfx2 80864700\nsfx3 19899703\n\nEndLevel 96487708\nRestart 32376701\n================\nCOLLISIONLAYERS\n================\n\nBackground\nVoid, Lost, Warn\nPlayer, Wall, Gem1, Gem2, Boulder, Coin, Exp, Gen, Earth, Bomb, Boom1, Boom2, Boom3, Boom4, Boom5\n\n\n======\nRULES \n====== \n\n\n\ndown [ stationary Fallable | no Obstacle] -> [ | down Fallable ] \n\n\n \n\n\n [ > P | C ] -> [ > P | ] SFX2\n [ > P | Earth ] -> [ > P | ] SFX1 \n [ Exp ] -> [ Coin ]\n\nHorizontal [ > P | Pushable ] -> [ > P | > Pushable ] SFX0\nHorizontal [ moving Pushable | Pushable ] -> [moving Pushable| moving Pushable]\n \n[Boom4 ]->[]\n[Explodes | Boom3 ] -> [ Boom4 | Boom3]\n[Explodes | Boom3 ] -> [ Boom4 | Boom4]\n[Boom2] -> [Boom3]\n[Boom1] -> [Boom2] \n\n\nlate [Scorer Warn] -> [Scorer Warn] message Don't lose any gems or coins!\n[Scorer Void] -> Restart\n[0 Void] -> [ Void ]\n[0 Warn] -> [ Warn ]\n\n\n\n\nlate [ Gem1 | Gem1 | Gem1 ] -> [ Exp | Exp | Exp ] SFX3\nlate [ Gem2 | Gem2 | Gem2 ] -> [ Exp | Exp | Exp ] SFX3\n\n\nlate [ Bomb | Bomb | Bomb ] -> [ Boom1 | Boom1 | Boom1 ] \nlate [Boom5]->[Boom4]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nNo Scorer \nNo Lost\n\n\n======= \nLEVELS\n=======\n\n\nMESSAGE Cave 1: School of Push\n\n############\n#p..1.1....#\n##########.#\n#...2..2.#.#\n#.###..#.#.#\n#........#1#\n#.0...2..#+#\n#++#######+#\n#++0+++++0+#\n#+++++0++++#\n############\n\n\nMESSAGE Cave 2: Dirty Paws\n\n........0.....\n.p........1...\n..........0.2.\n............0.\n+++++1++++++++\n+++2+++2+++++2\n++++++2++1++++\n11++2++++++++1\n+++++++1+++2++\n++2++++++++12+\n+1+++1++2+++++\n+++++++++++2++\n+++1++2++1++++\n##############\n\n\nMessage Cave 3: Block Party \n\n..0..000...0++0+++\n.#############+##0\n.#..............#+\n.#.p.......200..#+\n.#....001..010..#+\n0#....010..012..#+\n0#....100..###..#0\n0#....###.......#+\n+#........000...#+\n+#..201...102...#0\n+#..000...###...#+\n0#..000.........#+\n+#..###.....000.#0\n+#..........000.#0\n+#.000..010.020.#0\n+#.002..000.###.#+\n0#.###..100.....#0\n+#WWWWWW###WWWWW#+\n+#WWWWWWWWWWWWWW#+\n+#--------------#+\n\n\nMessage Cave 4: Transport Dept.\n\n.#################.\n##.......0.......##\n#.......00........#\n#....10.000.....0.#\n#..0000000000...0.#\n########+++########\np...............1..\n................#..\n#1................#\n##0............++##\n##+...........00+##\n#+++000+..0.0+0+++#\n#+0000+0.+0.000+++#\n##00++++0+0++0+++##\n.#################.\n\nMESSAGE Cave 5: Rocky One\n\n##############\n#++0+0+++0+0C#\n#+0C++0++01++#\n#++++2++++0++#\n#00+0++0+++0+#\n#0++10+++0+2+#\n#+0++++p++00+#\n#+000+++++++C#\n#+++++0+0+01+#\n#+2+++0++++0+#\n#+00++0+0+0+0#\n#C+0++0++++0+#\n##############\n\n\nMESSAGE Cave 6: Snoop Drop\n\n...............\n..200.020.001..\n..001.010.100..\n..020.000.002..\n..###.###.###..\n...............\n.......p.......\n...............\n...............\n...............\n...............\n...............\n.1...1...2...2.\nW#WWW#WWW#WWW#W\nW#WWW#WWW#WWW#W\n-#---#---#---#-\n\n\nMESSAGE Cave 7: Blockopolis\n\n##############\n#p...........#\n#..00121202..#\n#..12121011..#\n#..11200120..#\n#..22001010..#\n#..10121200..#\n#..02200212..#\n#..01020120..#\n#..10001201..#\n#..00000000..#\n#..########..#\n#WW.######.WW#\n#WW..####..WW#\n#--..####..--#\n\nMESSAGE Cave 8: Scramble\n\n#################\n#+++000+++000+++#\n#+++000+++000+++#\n#000+++000+++000#\n#020+++010+++020#\n#+++000+++000+++#\n#+++010+++010+++#\n#000+++000+++000#\n#000+++020+++000#\n#+++000+++000+++#\n#+++000+++000+++#\n#000+++000+++000#\n#000+++000+++000#\n#+++++++++++++++#\n#...............#\n#.......p.......#\n#WWWWWWWWWWWWWWW#\n#WWWWWWWWWWWWWWW#\n#---------------#\n\nMESSAGE You did it! *HIGH FIVES*\n", ["tick", "tick", "tick", 2, 2, "tick", 2, 2, "tick", 3, "tick", 3, 2, "tick", 3, "tick", 3, 3, "tick", "tick", 0, "tick", 0, "tick", 3, "tick", 0, "tick", 1, 2, "tick", 2, "tick", 2, "tick", 3, 3, "tick", 0, "tick", 3, 3, "tick", 2, "tick", 3, 1, "tick", "tick", 1, "tick", 3, "tick"], "background:0,0,0,0,background earth:1,1,1,background gem1:2,1,1,1,1,1,background wall:3,\n0,0,0,0,0,0,1,2,1,1,2,1,1,3,\n0,0,0,0,1,0,0,1,1,background gem2:4,1,1,1,3,\n0,0,0,0,1,0,4,1,1,1,1,1,2,3,\n0,0,0,0,1,1,0,4,1,1,1,1,1,3,\n0,0,0,0,0,4,2,1,1,1,2,1,1,3,\n0,0,0,0,0,background boulder:5,4,1,1,1,1,1,4,3,\n0,0,0,0,0,0,1,1,2,1,1,1,1,3,\n0,0,0,0,0,background player:6,1,1,1,1,4,1,1,3,\n0,0,0,0,1,0,2,1,1,1,1,1,2,3,\n0,0,2,5,1,1,1,1,1,1,1,1,1,3,\n0,0,0,0,1,1,1,1,4,2,1,4,1,3,\n0,0,4,5,1,1,1,1,1,4,1,1,1,3,\n0,0,0,0,1,4,1,2,1,1,1,1,1,3,\n", 3, "1627778261438.5264"] ], [ `gallery: sokoboros`, -["title Sokoboros\nauthor Trevor Newton\nhomepage https://twitter.com/trevnewt\n\nflickscreen 13x13\nnoaction\nbackground_color #22170B\ntext_color lightgreen\n(youtube wPqwxBnNxWU)\n\n========\nOBJECTS\n========\n\nBackground \nDarkBrown DarkGrey\n00000\n00000\n00000\n00000\n00000\n\nMetal\n#333333\n00000\n00000\n00000\n00000\n00000\n\nEgg\nWhite\n..0..\n.000.\n00000\n00000\n.000.\n\nEggBottom\nLightGrey\n.....\n0....\n000.0\n00000\n.000.\n\nEggShell_1\nLightGrey\n.....\n.0...\n...0.\n..00.\n.....\n\nEggShell_2\nLightGrey\n.....\n.....\n.0...\n.....\n..0..\n\nButton\nRed DarkRed LightGrey\n11111\n11111\n11011\n11111\n11111\n\nPressed\nRed Grey\n00000\n00000\n00000\n00000\n00000\n\nYellowApple\nYellow Green Blue\n..1..\n.000.\n00000\n00000\n.000.\n\nBlueApple\nLightBlue Green Blue\n..1..\n.000.\n00000\n00000\n.000.\n\nNot_Just_Pressed\ntransparent\n\nKey\ntransparent\n\nCheckpoint_Marker\n#333333 #232323\n00000\n01010\n00100\n01010\n00000\n\nDoor1\nLightGrey #333333 LightRed\n00000\n00000\n00100\n00000\n00000\n\nDoor2\nLightGrey #333333 LightRed\n00000\n00000\n01010\n00000\n00000\n\nDoor2_1\nLightGrey #333333 LightRed\n00000\n00000\n02010\n00000\n00000\n\nDoor3\nLightGrey #333333 LightRed\n00000\n01010\n00000\n00100\n00000\n\nDoor3_1\nLightGrey #333333 LightRed\n00000\n02010\n00000\n00100\n00000\n\nDoor3_2\nLightGrey #333333 LightRed\n00000\n02020\n00000\n00100\n00000\n\nDoor4\nLightGrey #333333 LightRed\n00000\n01010\n00000\n01010\n00000\n\nDoor4_1\nLightGrey #333333 LightRed\n00000\n02010\n00000\n01010\n00000\n\nDoor4_2\nLightGrey #333333 LightRed\n00000\n02020\n00000\n01010\n00000\n\nDoor4_3\nLightGrey #333333 LightRed\n00000\n02020\n00000\n02010\n00000\n\n\nDoorXL\nLightGrey #333333\n00000\n00010\n00000\n00010\n00000\n\nDoorXL_1\nLightGrey #333333 LightRed\n00000\n00020\n00000\n00010\n00000\n\nDoorXL_6\nLightGrey #333333 LightRed\n00000\n00020\n00000\n00020\n00000\n\nDoorXM\nLightGrey #333333\n00000\n10101\n00000\n10101\n00000\n\nDoorXM_1\nLightGrey #333333\n00000\n10101\n00000\n10101\n00000\n\nDoorXM_2\nLightGrey #333333 LightRed\n00000\n20101\n00000\n10101\n00000\n\nDoorXM_3\nLightGrey #333333 LightRed\n00000\n20201\n00000\n10101\n00000\n\nDoorXM_4\nLightGrey #333333 LightRed\n00000\n20202\n00000\n10101\n00000\n\nDoorXM_5\nLightGrey #333333 LightRed\n00000\n20202\n00000\n10101\n00000\n\nDoorXM_6\nLightGrey #333333 LightRed\n00000\n20202\n00000\n10101\n00000\n\nDoorXM_7\nLightGrey #333333 LightRed\n00000\n20202\n00000\n20101\n00000\n\nDoorXM_8\nLightGrey #333333 LightRed\n00000\n20202\n00000\n20201\n00000\n\nDoorXM_9\nLightGrey #333333 LightRed\n00000\n20202\n00000\n20202\n00000\n\nDoorXM_10\ntransparent\n\nDoorXR\nLightGrey #333333\n00000\n01000\n00000\n01000\n00000\n\nDoorXR_5\nLightGrey #333333 LightRed\n00000\n02000\n00000\n01000\n00000\n\n\n\nWall \nOrange Brown\n1111.\n10111\n11111\n11101\n.1111\n\nWall_Metal_R\nGrey DarkGrey\n00001\n00001\n00001\n00001\n00001\n\nWall_Metal_L\nGrey DarkGrey\n10000\n10000\n10000\n10000\n10000\n\nWall_metal_U\nGrey DarkGrey\n11111\n00000\n00000\n00000\n00000\n\nWall_metal_D\nGrey DarkGrey\n00000\n00000\n00000\n00000\n11111\n\nWall_metal_DRC\nGrey DarkGrey\n00001\n00001\n00001\n00001\n11111\n\nWall_metal_DLC\nGrey DarkGrey\n10000\n10000\n10000\n10000\n11111\n\nWall_metal_URC\nGrey DarkGrey\n11111\n00001\n00001\n00001\n00001\n\nWall_metal_ULC\nGrey DarkGrey\n11111\n10000\n10000\n10000\n10000\n\nWall_metal_DR\nGrey DarkGrey\n00000\n00000\n00000\n00000\n00001\n\nWall_Metal_UR\nGrey DarkGrey\n00001\n00000\n00000\n00000\n00000\n\nWall_metal_DL\nGrey DarkGrey\n00000\n00000\n00000\n00000\n10000\n\nWall_metal_UL\nGrey DarkGrey\n10000\n00000\n00000\n00000\n00000\n\nPlayerLeft\nGreen Red\n0000.\n.0100\n..000\n.0000\n0000.\n\nPlayerAteLeft\nGreen Red LightGreen\n.000.\n00100\n20000\n00000\n.000.\n\nPlayerRight\nGreen Red\n.0000\n0010.\n000..\n0000.\n.0000\n\nPlayerAteRight\nGreen Red LightGreen\n.000.\n00100\n00002\n00000\n.000.\n\nPlayerUp\nGreen Red\n0...0\n00.00\n01000\n00000\n.000.\n\nPlayerAteUp\nGreen Red LightGreen\n.020.\n00000\n01000\n00000\n.000.\n\nPlayerDown\nGreen Red\n.000.\n00000\n00010\n00.00\n0...0\n\nPlayerAteDown\nGreen Red LightGreen\n.000.\n00000\n00010\n00000\n.020.\n\nBodyHorizontal\nGreen LightGreen\n.....\n00100\n00100\n00100\n.....\n\nBodyVertical\nGreen LightGreen\n.000.\n.000.\n.111.\n.000.\n.000.\n\n(BodyBend_1\nGreen LightGreen\n.....\n..000\n.0111\n.0100\n.010.)\n\nBodyBend_1\nGreen LightGreen\n.....\n..000\n.0100\n.0010\n.000.\n\nBodyBend_2\nGreen LightGreen\n.....\n000..\n0010.\n0100.\n.000.\n\nBodyBend_3\nGreen LightGreen\n.000.\n.0010\n.0100\n..000\n.....\n\nBodyBend_4\nGreen LightGreen\n.000.\n0100.\n0010.\n000..\n.....\n\nTail_1\nGreen LightGreen\n.....\n000..\n0000.\n000..\n.....\n\nTail_2\nGreen LightGreen\n.....\n..000\n.0000\n..000\n.....\n\nTail_3\nGreen LightGreen\n.000.\n.000.\n.000.\n..0..\n.....\n\nTail_4\nGreen LightGreen\n.....\n..0..\n.000.\n.000.\n.000.\n\nTowardsUp\nRED\n..0..\n.000.\n0.0.0\n..0..\n..0..\n\nTowardsLeft\nRED\n..0..\n.0...\n00000\n.0...\n..0..\n\nTowardsRight\nRED\n..0..\n...0.\n00000\n...0.\n..0..\n\nTowardsDown\nRED\n..0..\n..0..\n0.0.0\n.000.\n..0..\n\n=======\nLEGEND\n=======\n\n< = BodyHorizontal and TowardsLeft\n> = BodyBend_1 and TowardsRight and EggShell_2\n^ = BodyVertical and TowardsUp\nv = BodyVertical and TowardsDown\n\n(L = Tail and TowardsLeft\nR = Tail and TowardsRight)\nU = Tail_3 and TowardsUp and EggBottom\n(D = Tail and TowardsDown)\n\n. = Background\n- = Metal\n\n# = Wall\n% = Wall_Metal_R\n| = Wall_Metal_L\n' = Wall_Metal_U\n\" = Wall_Metal_D\n7 = Wall_Metal_UR\n6 = Wall_Metal_UL\n9 = Wall_Metal_DL\n8 = Wall_Metal_DR\n~ = Wall_Metal_URC\n@ = Wall_Metal_ULC\n_ = Wall_Metal_DRC\n! = Wall_Metal_DLC\n\nP = PlayerRight and TowardsRight\n1 = Door1 and Checkpoint_Marker\n2 = Door2 and Checkpoint_Marker\n3 = Door3 and Checkpoint_Marker\n4 = Door4 and Checkpoint_Marker\n+ = DoorXL and Checkpoint_Marker\nX = DoorXM and Checkpoint_Marker\n? = DoorXR and Checkpoint_Marker\nO = Button and Not_Just_Pressed\nA = YellowApple\nH = BlueApple\n\n\nE = EggShell_1\nB = EggBottom\nW = Egg\n\n\n\nMarker = TowardsLeft or TowardsRight or TowardsUp or TowardsDown\nPlayer = PlayerLeft or PlayerRight or PlayerUp or PlayerDown or PlayerAteLeft or PlayerAteRight or PlayerAteUp or PlayerAteDown\nTail = Tail_1 or Tail_2 or Tail_3 or Tail_4\nBodyBends = BodyBend_1 or BodyBend_2 or BodyBend_3 or BodyBend_4\nBodyPart = BodyHorizontal or BodyVertical or BodyBend_1 or BodyBend_2 or BodyBend_3 or BodyBend_4\nPlayerPart = Player or BodyPart or Tail\n\nDoorX = DoorXM or DoorXM_1 or DoorXM_2 or DoorXM_3 or DoorXM_4 or DoorXM_5 or DoorXM_6 or DoorXM_7 or DoorXM_8 or DoorXM_9 or DoorXM_10\n\nDoor = Door1 or Door2 or Door2_1 or Door3 or Door3_1 or Door3_2 or Door4 or Door4_1 or Door4_2 or Door4_3 or DoorXL or DoorXL_1 or DoorXL_6 or DoorXR or DoorXR_5 or DoorX\n\nWalls = Wall or Wall_Metal_U or Wall_Metal_L or Wall_Metal_R or Wall_Metal_D or Wall_Metal_UR or Wall_Metal_DR or Wall_Metal_DL or Wall_Metal_UL or Wall_Metal_URC or Wall_Metal_ULC or Wall_Metal_DRC or Wall_Metal_DLC\nObstacle = Walls or PlayerPart or Door\nApple = YellowApple or BlueApple or Egg\n\n=======\nSOUNDS\n=======\n\nUndo 50721302\n\nTitleScreen 46639909\nSFX0 66467307 (Walk on metal)\nSFX1 41037702 (Eat food)\nSFX2 78277102 (Press Button)\nSFX3 47230702 (Unpress Button)\nSFX4 44928302 (Open Door)\nSFX5 6466307 (Walk on dirt)\nSFX6 72511108 (Forboding...)\n\n================\nCOLLISIONLAYERS\n================\n\nNot_Just_Pressed\nKey\nMarker\nBackground\nMetal, Checkpoint_Marker\nEggShell_1, EggShell_2, EggBottom\nButton\nPressed\nPlayer, BodyPart, Door, Tail, Apple, Walls, Egg\n\n======\nRULES \n======\n\nleft [ > Player TowardsLeft | Apple ] -> [ BodyHorizontal TowardsLeft | PlayerAteLeft TowardsLeft ] SFX1\nleft [ > Player TowardsUp | Apple ] -> [ BodyBend_2 TowardsLeft | PlayerAteLeft TowardsLeft ] SFX1\nleft [ > Player TowardsDown | Apple ] -> [ BodyBend_4 TowardsLeft | PlayerAteLeft TowardsLeft ] SFX1\n\nright [ > Player TowardsRight | Apple ] -> [ BodyHorizontal TowardsRight | PlayerAteRight TowardsRight ] SFX1\nright [ > Player TowardsUp | Apple ] -> [ BodyBend_1 TowardsRight | PlayerAteRight TowardsRight ] SFX1\nright [ > Player TowardsDown | Apple ] -> [ BodyBend_3 TowardsRight | PlayerAteRight TowardsRight ] SFX1 \n\nup [ > Player TowardsUp | Apple ] -> [ BodyVertical TowardsUp | PlayerAteUp TowardsUp ] SFX1\nup [ > Player TowardsLeft | Apple ] -> [ BodyBend_3 TowardsUp | PlayerAteUp TowardsUp ] SFX1\nup [ > Player TowardsRight | Apple ] -> [ BodyBend_4 TowardsUp | PlayerAteUp TowardsUp ] SFX1\n\ndown [ > Player TowardsDown | Apple ] -> [ BodyVertical TowardsDown | PlayerAteDown TowardsDown ] SFX1\ndown [ > Player TowardsLeft | Apple ] -> [ BodyBend_1 TowardsDown | PlayerAteDown TowardsDown ] SFX1\ndown [ > Player TowardsRight | Apple ] -> [ BodyBend_2 TowardsDown | PlayerAteDown TowardsDown ] SFX1\n\n(If the player is NOT about to move onto a button, move the player normally.\nThis is actually somewhat complicated. When the snake head moves, we put a direction marker behind it, indicating which direction it went -- this gives the body parts directions to follow. But we ALSO put a direction marker, of the same direction, on the head's new space. This gets deleted on the next move and replaced with whatever move you make next. The purpose of the marker on top of the head is so that the game can keep in mind which direction you've come from. This is useful for creating new bodyparts when eating apples.)\n\nleft [ > player Marker | No Obstacle No Metal | ] -> [ TowardsLeft | PlayerLeft TowardsLeft | SFX5]\nright [ > player Marker | No Obstacle No Metal | ] -> [ TowardsRight | PlayerRight TowardsRight | SFX5]\nup [ > player Marker | No Obstacle No Metal | ] -> [ TowardsUp | PlayerUp TowardsUp | SFX5]\ndown [ > player Marker | No Obstacle No Metal | ] -> [ TowardsDown | PlayerDown TowardsDown | SFX5]\n\n(Moving on metal.)\n\nleft [ > player Marker | No Obstacle Metal | ] -> [ TowardsLeft | PlayerLeft Metal TowardsLeft | SFX0]\nright [ > player Marker | No Obstacle Metal | ] -> [ TowardsRight | PlayerRight Metal TowardsRight | SFX0]\nup [ > player Marker | No Obstacle Metal | ] -> [ TowardsUp | PlayerUp Metal TowardsUp | SFX0]\ndown [ > player Marker | No Obstacle Metal | ] -> [ TowardsDown | PlayerDown Metal TowardsDown | SFX0]\n\n\nstartloop\nlate left [ BodyPart TowardsLeft | No PlayerPart TowardsLeft ] -> [ TowardsLeft | BodyHorizontal TowardsLeft]\nlate left [ BodyPart TowardsLeft | No PlayerPart TowardsUp ] -> [ TowardsLeft | BodyBend_3 TowardsUp]\nlate left [ BodyPart TowardsLeft | No PlayerPart TowardsDown ] -> [ TowardsLeft | BodyBend_1 TowardsDown]\n\nlate right [ BodyPart TowardsRight | No PlayerPart TowardsRight] -> [ TowardsRight | BodyHorizontal TowardsRight]\nlate right [ BodyPart TowardsRight | No PlayerPart TowardsUp] -> [ TowardsRight | BodyBend_4 TowardsUp]\nlate right [ BodyPart TowardsRight | No PlayerPart TowardsDown] -> [ TowardsRight | BodyBend_2 TowardsDown ]\n\nlate up [ BodyPart TowardsUp | No PlayerPart TowardsUp] -> [ TowardsUp | BodyVertical TowardsUp]\nlate up [ BodyPart TowardsUp | No PlayerPart TowardsLeft] -> [ TowardsUp | BodyBend_2 TowardsLeft]\nlate up [ BodyPart TowardsUp | No PlayerPart TowardsRight] -> [ TowardsUp | BodyBend_1 TowardsRight]\n\nlate down [ BodyPart TowardsDown | No PlayerPart TowardsDown] -> [ TowardsDown | BodyVertical TowardsDown]\nlate down [ BodyPart TowardsDown | No PlayerPart TowardsLeft] -> [ TowardsDown | BodyBend_4 TowardsLeft]\nlate down [ BodyPart TowardsDown | No PlayerPart TowardsRight] -> [ TowardsDown | BodyBend_3 TowardsRight]\nendloop\n\n(If Tail is on button, move it off and handle that.)\n\nlate left [ Tail TowardsLeft Button Pressed | No PlayerPart ] -> [ Button Pressed | Tail_1 ] SFX3\nlate right [ Tail TowardsRight Button Pressed | No PlayerPart ] -> [ Button Pressed | Tail_2 ] SFX3\nlate up [ Tail TowardsUp Button Pressed | No PlayerPart ] -> [ Button Pressed | Tail_3 ] SFX3\nlate down [ Tail TowardsDown Button Pressed| No PlayerPart ] -> [ Button Pressed | Tail_4 ] SFX3\n\n(If Tail is not on button, just move it.)\n\nlate left [ Tail TowardsLeft No Button | No PlayerPart ] -> [ | Tail_1 ]\nlate right [ Tail TowardsRight No Button| No PlayerPart ] -> [ | Tail_2 ]\nlate up [ Tail TowardsUp No Button| No PlayerPart ] -> [ | Tail_3 ]\nlate down [ Tail TowardsDown No Button| No PlayerPart ] -> [ | Tail_4 ]\n\nlate [Tail TowardsRight] -> [Tail_2 TowardsRight]\nlate [Tail TowardsDown] -> [Tail_4 TowardsDown]\nlate [Tail TowardsUp] -> [Tail_3 TowardsUp]\nlate [Tail TowardsLeft] -> [Tail_1 TowardsLeft]\n\n\n\n\nlate [ Player Button No Pressed ] -> [ Player Button Pressed ] SFX2\n\nstartloop\nlate [ Player Button Not_Just_Pressed] [ Door No Key ] -> [ Player Button Not_Just_Pressed] [ Door Key ]\nendloop\n\nstartloop\nlate [ Player Button Not_Just_Pressed ] -> [ Player Button ]\nendloop\n\n\nlate [ Button Pressed No PlayerPart ] [ Door2_1 ] -> [ Button Pressed ] [ Door2 ]\n\nlate [ Button Pressed No PlayerPart ] [ Door3_1 ] -> [ Button Pressed ] [ Door3 ]\nlate [ Button Pressed No PlayerPart ] [ Door3_2 ] -> [ Button Pressed ] [ Door3_1 ]\n\nlate [ Button Pressed No PlayerPart ] [ Door4_1 ] -> [ Button Pressed ] [ Door4 ]\nlate [ Button Pressed No PlayerPart ] [ Door4_2 ] -> [ Button Pressed ] [ Door4_1 ]\nlate [ Button Pressed No PlayerPart ] [ Door4_3 ] -> [ Button Pressed ] [ Door4_2 ]\n\nlate [ Button Pressed No PlayerPart ] [ DoorXM_1 ] -> [ Button Pressed ] [ DoorXM ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_2 ] -> [ Button Pressed ] [ DoorXM_1 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_3 ] -> [ Button Pressed ] [ DoorXM_2 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_4 ] -> [ Button Pressed ] [ DoorXM_3 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_5 ] -> [ Button Pressed ] [ DoorXM_4 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_6 ] -> [ Button Pressed ] [ DoorXM_5 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_7 ] -> [ Button Pressed ] [ DoorXM_6 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_8 ] -> [ Button Pressed ] [ DoorXM_7 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_9 ] -> [ Button Pressed ] [ DoorXM_8 ]\n\n\n\nlate [ DoorXM_9 Key ] -> [ DoorXM_10] SFX6 checkpoint\nlate [ DoorXM_8 Key ] -> [ DoorXM_9 ]\nlate [ DoorXM_7 Key ] -> [ DoorXM_8 ]\nlate [ DoorXM_6 Key ] -> [ DoorXM_7 ]\nlate [ DoorXM_5 Key ] -> [ DoorXM_6 ]\nlate [ DoorXM_4 Key ] -> [ DoorXM_5 ]\nlate [ DoorXM_3 Key ] -> [ DoorXM_4 ]\nlate [ DoorXM_2 Key ] -> [ DoorXM_3 ]\nlate [ DoorXM_1 Key ] -> [ DoorXM_2 ]\nlate [ DoorXM Key ] -> [ DoorXM_1 ]\n\nlate [ Door4_3 Key ] -> [ ] SFX4 checkpoint\nlate [ Door4_2 Key ] -> [ Door4_3 ]\nlate [ Door4_1 Key ] -> [ Door4_2 ]\nlate [ Door4 Key ] -> [ Door4_1 ]\n\nlate [ Door3_2 Key ] -> [ ] SFX4 checkpoint\nlate [ Door3_1 Key ] -> [ Door3_2 ]\nlate [ Door3 Key ] -> [ Door3_1 ]\n\nlate [ Door2_1 Key ] -> [ ] SFX4 checkpoint\nlate [ Door2 Key ] -> [ Door2_1 ]\n\nlate [ Door1 Key ] -> [ ] SFX4 checkpoint\n\nlate [ DoorXM_1] [ DoorXL ] -> [ DoorXM_1 ] [ DoorXL_1 ]\nlate [ DoorXM] [ DoorXL_1 ] -> [ DoorXM ] [ DoorXL ]\nlate [ DoorXM_6] [ DoorXL_1 ] -> [ DoorXM_6 ] [ DoorXL_6 ]\nlate [ DoorXM_5] [ DoorXL_6 ] -> [ DoorXM ] [ DoorXL_1 ]\n\nlate [ DoorXM_5] [ DoorXR ] -> [ DoorXM_5 ] [ DoorXR_5 ]\nlate [ DoorXM_4] [ DoorXR_5 ] -> [ DoorXM ] [ DoorXR ]\n\nlate [ DoorXM_10 ] [ DoorXL_6 ] [ DoorXR_5 ] -> [ ] [ ] [ ]\n\n\nlate [ Button Pressed No PlayerPart ] -> [ Button Not_Just_Pressed ]\n\n(late [ Player Checkpoint_Marker ] -> [ Player Checkpoint_Marker] checkpoint)\n\n(Alternative solution: have a different key for each button, each on different layers. but unite them under a \"key\" word. Then do the multiple keys on doors method)\n\n==============\nWINCONDITIONS\n==============\n\nNo Egg \n\n======= \nLEVELS\n=======\n\nMessage Oh! A baby is born...\n\n#######################################.............\n#............#8\"\"\"\"\"\"\"\"\"9########haaha#.............\n#............#%---------|########aa.aa#.............\n#............#%-o-----o-|########aaaha#.............\n#............#%---------|####...#hhhaa#.............\n#............#%---------!####....hhaaa#.............\n#............#%---------4.......#haaha#.............\n#............#%---------@####....aaa.h#.............\n#............#%---------|####...#aahah#.............\n#............#%---o---o-|########ha.aa#.............\n#............#%---------|########ahaha#.............\n#............#7'''~-@'''6########haaah#.............\n###################.###################.............\n###################.################################\n###################.################################\n##...##########8\"\"_3!\"\"9############################\n##.a.#....#####_-------|####8\"\"\"\"\"\"\"9###############\n###..#..#......--o-o---|####%-------|#####...#######\n####.##.#######~-------|####%-----o-!###......#..###\n###..#...######%-------!####_--------.......#...a###\n##..##.h.######_-o------....2-------@####..####..###\n##.########....--------@####~-----o-|###############\n##...#####..###~-------|####%-------|###############\n##.#........###7''~3@''6####7''~-@''6###############\n##...##############.############.###################\n###################.############.###################\n###################.############.######.......######\n#...................############.######.............\n#.###########################8\"_1!\"9###.............\n#.#######...######.....######%-----|###.............\n#.........h.#####..###.######%-----|###.............\n###########.####..####.######%-----|###.............\n#h..........####.##>p..######%--o--|###.............\n#.#a#.......####.##ue########_-----|###.............\n#a#.#h##########.######......------|###.............\n#....h.#...h####..####..#####~-----|###.............\n#.####....aa#####......######7~+x?@6###.............\n#......#...a##################%---|####.............\n##############################%---|####.............\n..........................####%---|####.............\n..........................#8\"\"_---!\"\"9#.............\n..........................#%---------|#.............\n..........................#%-@'''''~-|#.............\n..........................#%-|#####%-|#.............\n..........................#%-|#...#%-|#.............\n..........................#%-|#.w.#%-|#.............\n..........................#%-|#...#%-|#.............\n..........................#%-|#.-.#%-|#.............\n..........................#%-!_---!_-|#.............\n..........................#%---------|#.............\n..........................#7'''''''''6#.............\n..........................#############.............\n\n(#######################################.............\n#............#8\"\"\"\"\"\"\"\"\"9#########aah##.............\n#............#%---------|########ahaaa#.............\n#............#%-o-----o-|########aaaha#.............\n#............#%---------|###....#hhhha#.............\n#............#%---------!###.....hhaaa#.............\n#............#%---------4.......#haaha#.............\n#............#%---------@###.....aaaah#.............\n#............#%---------|###....#aahah#.............\n#............#%--o----o-|########haaaa#.............\n#............#%---------|########ahaha#.............\n#............#7'''~-@'''6#########aaa##.............\n###################.###################.............\n###################.################################\n###################.################################\n##...##########8\"\"_3!\"\"9############################\n##.a.#....#####_-------|####8\"\"\"\"\"\"\"9###############\n###..#..#......---o----|####%-------|#####...#######\n####.##.#######~-------|####%-----o-!###......#..###\n###..#...######%-------!####_--------.......#...a###\n##..##.h.######_--o-o---....2-------@####..####..###\n##.########....--------@####~-----o-|###############\n##...#####..###~-------|####%-------|###############\n##.#........###7''~3@''6####7''~-@''6###############\n##...##############.############.###################\n###################.############.###################\n###################.############.######.......######\n#...................############.######.............\n#.###########################8\"_1!\"9###.............\n#.....a.....######.....######%-----|###.............\n#...a...h...#####..###.######%-----|###.............\n###########.####..####.######%-----|###.............\n#ha.........####.##>p..######%--o--|###.............\n#.#a#......a####.##uE########_-----|###.............\n#a#.#h##########.######......------|###.............\n#..h.ha.#..#####..####..#####~-----|###.............\n#.####....h.#####......######7~+X?@6###.............\n#......#....##################%---|####.............\n##############################%---|####.............\n..........................####%---|####.............\n..........................#8\"\"_---!\"\"9#.............\n..........................#%---------|#.............\n..........................#%-@'''''~-|#.............\n..........................#%-|#####%-|#.............\n..........................#%-|#...#%-|#.............\n..........................#%-|#.w.#%-|#.............\n..........................#%-|#...#%-|#.............\n..........................#%-|#.-.#%-|#.............\n..........................#%-!_---!_-|#.............\n..........................#%---------|#.............\n..........................#7'''''''''6#.............\n..........................#############.............)\n\nMessage Thank you for playing.\n\n(#######################################.............\n#............#8\"\"\"\"\"\"\"\"\"9#######aaaa###.............\n#............#%---------|#####...aaa###.............\n#............#%-o-----o-|####......####.............\n#............#%---------|####......####.............\n#............#%---------|#####.......##.............\n#............#%---------4........aaa.##.............\n#............#%---------|#####...aaa.##.............\n#............#%---------|#####...aaa.##.............\n#............#%--o---o--|#######.....##.............\n#............#%---------|#######....###.............\n#............#7''''-''''6########..####.............\n###################.###################.............\n###################.################################\n###################.################################\n##...##########8\"\"\"3\"\"\"9############################\n##.a.#....#####%-------|####8\"\"\"\"\"\"\"9###############\n###..#..#......---o----|####%-------|#####...#######\n####.##.#######%-------|####%-----o-|###......#..###\n###..#...######%-------|####%--------.......#...a###\n##..##.a.######%--o-o---....2-------|####..####..###\n##.########....--------|####%-----o-|###############\n##...#####..###%-------|####%-------|###############\n##.#........###7'''3'''6####7'''-'''6###############\n##...##############.############.###################\n###################.############.###################\n###################.############.######.......######\n###############.....############.######.............\n##..............#############8\"\"-\"\"9###.............\n##.###############.....######%-----|###.............\n##..a...a...#####..###.######%-----|###.............\n###...a...a.####..####.######%-----|###.............\n########a##.####.##>p..######%--o--|###.............\n##..a.......####.##u.########%-----|###.............\n##....a.########.######......------|###.............\n##.######...####..####..#####%-----|###.............\n##.........a#####......######7''4''6###.............\n#########...####################.######.............\n###############################...#####.............\n\n.............##########################.............\n.............#8\"\"\"\"\"\"\"\"\"9#######aaaa###.............\n.............#%---------|#####...aaa###.............\n.............#%-o-----o-|####......####.............\n.............#%---------|####......####.............\n.............#%---------|#####.......##.............\n.............#%---------4........aaa.##.............\n.............#%---------|#####...aaa.##.............\n.............#%---------|#####...aaa.##.............\n.............#%-o-----o-|#######.....##.............\n.............#%---------|#######....###.............\n.............#7''''-''''6########..####.............\n.............######.###################.............\n###################.################################\n###################.################################\n##...##########8\"\"\"3\"\"\"9############################\n##.a.#....#####%-------|####8\"\"\"\"\"\"\"9###############\n###..#..#......---o----|####%-------|#####...#######\n####.##.#######%-------|####%-----o-|###......#..###\n###..#...######%-------|####%--------.......#...a###\n##..##.a.######%--o-o---....2-------|####..####..###\n##.########....--------|####%-----o-|###############\n##...#####..###%-------|####%-------|###############\n##.#........###7'''3'''6####7'''-'''6###############\n##...##############.############.###################\n###################.############.###################\n###################.############.######.......######\n###############.....############.######.............\n##..............#####..######8\"\"-\"\"9###.............\n##.##a###########......######%-----|###.............\n##.##.#########....###.######%-----|###.............\n##.##.....#####..####..######%-----|###.............\n##.##.a...#####.##>p..#######%--o--|###.............\n##....###.#####.##u.#########%-----|###.............\n#######....####.######.......------|###.............\n#######a.a.####...####.######%-----|###.............\n#######a.a.######......######7''4''6###.............\n################################.######.............\n###############################...#####.............\n\n####################################################\n#..........###...........###########################\n#...........##...........###8\"\"\"\"\"\"\"9###############\n#...........##...........###%-------|###############\n#..#####.##.##...........###%-----o-|######..#######\n#..##..###..##...........###%-------|###.....##..###\n#.....#####.##..............2--------....##.....a###\n#..#..########...........###%-------|##########..###\n#..###.####.##...........###%-----o-|###############\n#.##..#####.##...........###%-------|###############\n#.#########.##...........###7'''-'''6###############\n#...........##...........#######.###################\n################################.###################\n################################.######.......######\n#...........####################.######.............\n#..########.#####......######8\"\"-\"\"9###.............\n#..########.#####.####.######%-----|###.............\n#..########.###...####.######%-----|###.............\n#..#######..###.#####..######%-----|###.............\n#..#######..###.##.P..#######%--o--|###.............\n#.########..###.##..#########%-----|###.............\n#.########..###.######.......------|###.............\n#.########..###...####.######%-----|###.............\n#.########..#####......######7''4''6###.............\n#...........####################.######.............\n###############################...#####.............\n\n#######################################\n#..........###...........##...........#\n#...........##...........##...........#\n#...........##...........##...........#\n#..#####.##.##...........##...........#\n#..##..###..##...........##...........#\n#.....#####.##...........##...o...o...#\n#..#..########...........##...........#\n#..###.####.##...........##...........#\n#.##..#####.##...........##...........#\n#.#########.##...........##...........#\n#...........##...........##...........#\n################################.######\n################################.######\n#...........####################.######\n#..########.#####......######8\"\"1\"\"9###\n#..########.#####.####.######%-----|###\n#..########.###...####.######%-----|###\n#..#######..###.#####..######%-----|###\n#..#######..###.##.p..#######%--o--|###\n#.########..###.##..#########%-----|###\n#.########..###.######.......------|###\n#.########..###...####.######%-----|###\n#.########..#####......######7''4''6###\n#...........####################.######\n###############################...#####\n\n############################################\n############.........#8\"\"\"\"\"\"\"\"\"##....##...#\n#.........###......o.#%---------...#..##.a.#\n#.........####.......#%-------o-####.###..##\n#.........##........##%---------###...##.###\n#..........3.o........2--o------###.aa##..##\n#.........##.........#%---------#########.##\n#.........####.....o.#%-------o-....###...##\n#.........#####......#%---------###.....#.##\n#.........#####..#####7'''---'''#######...##\n###############.###########.################\n###############.###########.################\n#############....######8\"\"\".\"\"\"9############\n#................######%-------|############\n#.#a###################%-------|############\n#.#......#####....#####%-------|############\n#.#.a....#####.....####%---o---|############\n#...####.#####...p.....--------|############\n######...#####.....####%-------|############\n######a.a.####b.e.#####%-------|############\n######a.a.#############7'''4'''6############\n##########################...###############\n\n#######################8\"\"\"\"\"\"\"\"\"\"\"#########\n############.........#8%----------....##...#\n#.........###......o.#%-------o---.#..##.a.#\n#.........####.......#%---------|'##.###..##\n#.........##........##%--------|6##...##.###\n#..........3.o........2--o-----####.aa##..##\n#.........##.........#%---------|\"#######.##\n#.........####.....o.#%-------o---..###...##\n#.........#####......#7%-----------.....#.##\n#.........#####..######7''---''''''####...##\n###############.###########.################\n###############.###########.################\n#############....######8\"\"\"1\"\"\"9############\n#................######%-------|############\n#.#a###################%-------|############\n#.#......#####....#####%-------|############\n#.#.a....#####.....####%---o---|############\n#...####.#####...p.....--------|############\n######...#####.....####%-------|############\n######a.a.####b.e.#####%-------|############\n######a.a.#############7'''4'''6############\n##########################...###############\n\n#########\n#.......#\n#..1..O.#\n#.P.1.O.#\n#.......#\n#.......#\n#########)\n\n",[3,3,0,0,0,1,1,1,3,1,1,2,2,1,2,1,2,1,2,2,2,3,2,3,2,3,3,3,3,0,3,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,0,3,3,3,3,3,3,3,3,3,0,3,3,2,3,3,3,0,1,2,2,"undo","undo","undo","undo",3,2,3,0,0,1,2,1,1,0,1,1,1,1,2,1,1,1,1,1,1,1,1,1,0,3,3,2,2,2],"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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,background blueapple:2,1,background yellowapple:3,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,0,0,0,1,1,1,1,1,0,0,1,0,0,1,0,1,0,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,3,1,0,1,1,0,1,0,1,0,0,1,0,0,1,0,1,3,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,0,0,1,1,1,0,0,1,0,0,1,0,1,0,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,2,2,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,1,1,0,0,1,0,0,0,1,0,0,1,0,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,2,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,1,0,1,1,0,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,1,0,1,2,0,1,1,0,1,3,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,1,0,1,1,1,1,1,0,2,3,3,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,background wall_metal_dr:4,background wall_metal_r:5,5,5,5,5,5,5,5,5,background wall_metal_ur:6,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,background wall_metal_d:7,background metal:8,8,8,8,8,8,8,8,8,background wall_metal_u:9,0,0,0,4,background wall_metal_drc:10,8,background wall_metal_urc:11,5,10,8,11,6,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,background button not_just_pressed:12,8,8,8,8,8,8,8,9,0,0,0,7,8,8,8,8,8,8,8,9,0,0,0,1,0,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,9,0,0,0,7,8,12,8,8,12,8,8,9,0,0,0,1,0,0,1,1,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,12,8,11,0,0,0,10,8,8,8,8,8,8,8,11,0,0,0,1,0,1,1,0,0,0,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,8,1,1,1,background checkpoint_marker door3_2:13,8,12,8,8,8,8,8,13,1,1,1,1,0,1,0,0,background eggshell_2:14,background eggbottom:15,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,background wall_metal_ulc:16,0,0,0,background wall_metal_dlc:17,8,8,8,8,8,8,8,16,0,0,0,0,0,1,0,0,1,background eggshell_1:18,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,9,0,0,0,7,8,8,8,8,8,8,8,9,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,12,8,8,8,8,8,12,8,9,0,0,0,7,8,8,8,8,8,8,8,9,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,9,0,0,0,background wall_metal_dl:19,background wall_metal_l:20,20,20,17,8,16,20,background wall_metal_ul:21,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,19,20,20,20,17,background checkpoint_marker door4_2:22,16,20,20,20,21,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,4,5,5,5,5,5,5,5,5,5,6,0,\n0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,4,5,5,10,background checkpoint_marker:23,11,5,6,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,7,8,8,8,8,8,8,8,8,8,9,0,\n0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,7,8,8,8,8,8,8,9,0,0,0,0,4,5,5,5,5,10,8,11,6,0,0,0,7,8,16,20,20,20,20,20,17,8,9,0,\n0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,7,8,8,8,8,8,8,9,0,0,0,0,7,8,8,8,8,8,8,8,11,5,5,5,10,8,9,0,0,0,0,0,10,8,9,0,\n0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,7,8,8,8,8,8,8,11,0,0,0,0,10,8,8,8,8,8,8,8,background checkpoint_marker doorxl_1 key:24,8,8,8,8,8,9,0,1,1,1,1,8,8,9,0,\n0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,7,8,8,8,8,8,8,8,1,1,1,1,23,8,8,8,12,8,8,8,background checkpoint_marker doorxm_2:25,8,8,8,8,8,9,0,1,background egg:26,1,8,8,8,9,0,\n0,2,3,3,2,2,2,3,3,2,3,2,0,0,0,0,7,8,8,8,8,8,8,16,0,0,0,0,17,8,8,8,8,8,8,8,background checkpoint_marker doorxr key:27,8,8,8,8,8,9,0,1,1,1,1,8,8,9,0,\n0,3,3,3,2,2,3,3,3,3,2,3,0,0,0,0,7,8,background button pressed tail_4 towardsdown:28,background bodyvertical metal towardsdown:29,29,background button playerdown pressed towardsdown:30,8,9,0,0,0,0,7,8,8,8,8,8,8,8,16,20,20,20,17,8,9,0,0,0,0,0,17,8,9,0,\n0,3,1,3,2,3,3,3,2,1,3,3,0,0,0,0,7,8,8,8,8,8,8,9,0,0,0,0,19,20,20,20,20,20,20,20,21,0,0,0,7,8,11,5,5,5,5,5,10,8,9,0,\n0,2,3,2,3,3,2,1,3,3,2,3,0,0,0,0,19,20,17,8,16,20,20,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8,8,8,8,8,8,8,8,9,0,\n0,3,3,3,3,3,3,2,2,3,3,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,20,20,20,20,20,20,20,20,20,21,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n",1,"1627778292986.5747"] + ["title Sokoboros\nauthor Trevor Newton\nhomepage https://twitter.com/trevnewt\n\nflickscreen 13x13\nnoaction\nbackground_color #22170B\ntext_color lightgreen\n(youtube wPqwxBnNxWU)\n\n========\nOBJECTS\n========\n\nBackground \nDarkBrown DarkGrey\n00000\n00000\n00000\n00000\n00000\n\nMetal\n#333333\n00000\n00000\n00000\n00000\n00000\n\nEgg\nWhite\n..0..\n.000.\n00000\n00000\n.000.\n\nEggBottom\nLightGrey\n.....\n0....\n000.0\n00000\n.000.\n\nEggShell_1\nLightGrey\n.....\n.0...\n...0.\n..00.\n.....\n\nEggShell_2\nLightGrey\n.....\n.....\n.0...\n.....\n..0..\n\nButton\nRed DarkRed LightGrey\n11111\n11111\n11011\n11111\n11111\n\nPressed\nRed Grey\n00000\n00000\n00000\n00000\n00000\n\nYellowApple\nYellow Green Blue\n..1..\n.000.\n00000\n00000\n.000.\n\nBlueApple\nLightBlue Green Blue\n..1..\n.000.\n00000\n00000\n.000.\n\nNot_Just_Pressed\ntransparent\n\nKey\ntransparent\n\nCheckpoint_Marker\n#333333 #232323\n00000\n01010\n00100\n01010\n00000\n\nDoor1\nLightGrey #333333 LightRed\n00000\n00000\n00100\n00000\n00000\n\nDoor2\nLightGrey #333333 LightRed\n00000\n00000\n01010\n00000\n00000\n\nDoor2_1\nLightGrey #333333 LightRed\n00000\n00000\n02010\n00000\n00000\n\nDoor3\nLightGrey #333333 LightRed\n00000\n01010\n00000\n00100\n00000\n\nDoor3_1\nLightGrey #333333 LightRed\n00000\n02010\n00000\n00100\n00000\n\nDoor3_2\nLightGrey #333333 LightRed\n00000\n02020\n00000\n00100\n00000\n\nDoor4\nLightGrey #333333 LightRed\n00000\n01010\n00000\n01010\n00000\n\nDoor4_1\nLightGrey #333333 LightRed\n00000\n02010\n00000\n01010\n00000\n\nDoor4_2\nLightGrey #333333 LightRed\n00000\n02020\n00000\n01010\n00000\n\nDoor4_3\nLightGrey #333333 LightRed\n00000\n02020\n00000\n02010\n00000\n\n\nDoorXL\nLightGrey #333333\n00000\n00010\n00000\n00010\n00000\n\nDoorXL_1\nLightGrey #333333 LightRed\n00000\n00020\n00000\n00010\n00000\n\nDoorXL_6\nLightGrey #333333 LightRed\n00000\n00020\n00000\n00020\n00000\n\nDoorXM\nLightGrey #333333\n00000\n10101\n00000\n10101\n00000\n\nDoorXM_1\nLightGrey #333333\n00000\n10101\n00000\n10101\n00000\n\nDoorXM_2\nLightGrey #333333 LightRed\n00000\n20101\n00000\n10101\n00000\n\nDoorXM_3\nLightGrey #333333 LightRed\n00000\n20201\n00000\n10101\n00000\n\nDoorXM_4\nLightGrey #333333 LightRed\n00000\n20202\n00000\n10101\n00000\n\nDoorXM_5\nLightGrey #333333 LightRed\n00000\n20202\n00000\n10101\n00000\n\nDoorXM_6\nLightGrey #333333 LightRed\n00000\n20202\n00000\n10101\n00000\n\nDoorXM_7\nLightGrey #333333 LightRed\n00000\n20202\n00000\n20101\n00000\n\nDoorXM_8\nLightGrey #333333 LightRed\n00000\n20202\n00000\n20201\n00000\n\nDoorXM_9\nLightGrey #333333 LightRed\n00000\n20202\n00000\n20202\n00000\n\nDoorXM_10\ntransparent\n\nDoorXR\nLightGrey #333333\n00000\n01000\n00000\n01000\n00000\n\nDoorXR_5\nLightGrey #333333 LightRed\n00000\n02000\n00000\n01000\n00000\n\n\n\nWall \nOrange Brown\n1111.\n10111\n11111\n11101\n.1111\n\nWall_Metal_R\nGrey DarkGrey\n00001\n00001\n00001\n00001\n00001\n\nWall_Metal_L\nGrey DarkGrey\n10000\n10000\n10000\n10000\n10000\n\nWall_metal_U\nGrey DarkGrey\n11111\n00000\n00000\n00000\n00000\n\nWall_metal_D\nGrey DarkGrey\n00000\n00000\n00000\n00000\n11111\n\nWall_metal_DRC\nGrey DarkGrey\n00001\n00001\n00001\n00001\n11111\n\nWall_metal_DLC\nGrey DarkGrey\n10000\n10000\n10000\n10000\n11111\n\nWall_metal_URC\nGrey DarkGrey\n11111\n00001\n00001\n00001\n00001\n\nWall_metal_ULC\nGrey DarkGrey\n11111\n10000\n10000\n10000\n10000\n\nWall_metal_DR\nGrey DarkGrey\n00000\n00000\n00000\n00000\n00001\n\nWall_Metal_UR\nGrey DarkGrey\n00001\n00000\n00000\n00000\n00000\n\nWall_metal_DL\nGrey DarkGrey\n00000\n00000\n00000\n00000\n10000\n\nWall_metal_UL\nGrey DarkGrey\n10000\n00000\n00000\n00000\n00000\n\nPlayerLeft\nGreen Red\n0000.\n.0100\n..000\n.0000\n0000.\n\nPlayerAteLeft\nGreen Red LightGreen\n.000.\n00100\n20000\n00000\n.000.\n\nPlayerRight\nGreen Red\n.0000\n0010.\n000..\n0000.\n.0000\n\nPlayerAteRight\nGreen Red LightGreen\n.000.\n00100\n00002\n00000\n.000.\n\nPlayerUp\nGreen Red\n0...0\n00.00\n01000\n00000\n.000.\n\nPlayerAteUp\nGreen Red LightGreen\n.020.\n00000\n01000\n00000\n.000.\n\nPlayerDown\nGreen Red\n.000.\n00000\n00010\n00.00\n0...0\n\nPlayerAteDown\nGreen Red LightGreen\n.000.\n00000\n00010\n00000\n.020.\n\nBodyHorizontal\nGreen LightGreen\n.....\n00100\n00100\n00100\n.....\n\nBodyVertical\nGreen LightGreen\n.000.\n.000.\n.111.\n.000.\n.000.\n\n(BodyBend_1\nGreen LightGreen\n.....\n..000\n.0111\n.0100\n.010.)\n\nBodyBend_1\nGreen LightGreen\n.....\n..000\n.0100\n.0010\n.000.\n\nBodyBend_2\nGreen LightGreen\n.....\n000..\n0010.\n0100.\n.000.\n\nBodyBend_3\nGreen LightGreen\n.000.\n.0010\n.0100\n..000\n.....\n\nBodyBend_4\nGreen LightGreen\n.000.\n0100.\n0010.\n000..\n.....\n\nTail_1\nGreen LightGreen\n.....\n000..\n0000.\n000..\n.....\n\nTail_2\nGreen LightGreen\n.....\n..000\n.0000\n..000\n.....\n\nTail_3\nGreen LightGreen\n.000.\n.000.\n.000.\n..0..\n.....\n\nTail_4\nGreen LightGreen\n.....\n..0..\n.000.\n.000.\n.000.\n\nTowardsUp\nRED\n..0..\n.000.\n0.0.0\n..0..\n..0..\n\nTowardsLeft\nRED\n..0..\n.0...\n00000\n.0...\n..0..\n\nTowardsRight\nRED\n..0..\n...0.\n00000\n...0.\n..0..\n\nTowardsDown\nRED\n..0..\n..0..\n0.0.0\n.000.\n..0..\n\n=======\nLEGEND\n=======\n\n< = BodyHorizontal and TowardsLeft\n> = BodyBend_1 and TowardsRight and EggShell_2\n^ = BodyVertical and TowardsUp\nv = BodyVertical and TowardsDown\n\n(L = Tail and TowardsLeft\nR = Tail and TowardsRight)\nU = Tail_3 and TowardsUp and EggBottom\n(D = Tail and TowardsDown)\n\n. = Background\n- = Metal\n\n# = Wall\n% = Wall_Metal_R\n| = Wall_Metal_L\n' = Wall_Metal_U\n\" = Wall_Metal_D\n7 = Wall_Metal_UR\n6 = Wall_Metal_UL\n9 = Wall_Metal_DL\n8 = Wall_Metal_DR\n~ = Wall_Metal_URC\n@ = Wall_Metal_ULC\n_ = Wall_Metal_DRC\n! = Wall_Metal_DLC\n\nP = PlayerRight and TowardsRight\n1 = Door1 and Checkpoint_Marker\n2 = Door2 and Checkpoint_Marker\n3 = Door3 and Checkpoint_Marker\n4 = Door4 and Checkpoint_Marker\n+ = DoorXL and Checkpoint_Marker\nX = DoorXM and Checkpoint_Marker\n? = DoorXR and Checkpoint_Marker\nO = Button and Not_Just_Pressed\nA = YellowApple\nH = BlueApple\n\n\nE = EggShell_1\nB = EggBottom\nW = Egg\n\n\n\nMarker = TowardsLeft or TowardsRight or TowardsUp or TowardsDown\nPlayer = PlayerLeft or PlayerRight or PlayerUp or PlayerDown or PlayerAteLeft or PlayerAteRight or PlayerAteUp or PlayerAteDown\nTail = Tail_1 or Tail_2 or Tail_3 or Tail_4\nBodyBends = BodyBend_1 or BodyBend_2 or BodyBend_3 or BodyBend_4\nBodyPart = BodyHorizontal or BodyVertical or BodyBend_1 or BodyBend_2 or BodyBend_3 or BodyBend_4\nPlayerPart = Player or BodyPart or Tail\n\nDoorX = DoorXM or DoorXM_1 or DoorXM_2 or DoorXM_3 or DoorXM_4 or DoorXM_5 or DoorXM_6 or DoorXM_7 or DoorXM_8 or DoorXM_9 or DoorXM_10\n\nDoor = Door1 or Door2 or Door2_1 or Door3 or Door3_1 or Door3_2 or Door4 or Door4_1 or Door4_2 or Door4_3 or DoorXL or DoorXL_1 or DoorXL_6 or DoorXR or DoorXR_5 or DoorX\n\nWalls = Wall or Wall_Metal_U or Wall_Metal_L or Wall_Metal_R or Wall_Metal_D or Wall_Metal_UR or Wall_Metal_DR or Wall_Metal_DL or Wall_Metal_UL or Wall_Metal_URC or Wall_Metal_ULC or Wall_Metal_DRC or Wall_Metal_DLC\nObstacle = Walls or PlayerPart or Door\nApple = YellowApple or BlueApple or Egg\n\n=======\nSOUNDS\n=======\n\nUndo 50721302\n\nTitleScreen 46639909\nSFX0 66467307 (Walk on metal)\nSFX1 41037702 (Eat food)\nSFX2 78277102 (Press Button)\nSFX3 47230702 (Unpress Button)\nSFX4 44928302 (Open Door)\nSFX5 6466307 (Walk on dirt)\nSFX6 72511108 (Forboding...)\n\n================\nCOLLISIONLAYERS\n================\n\nNot_Just_Pressed\nKey\nMarker\nBackground\nMetal, Checkpoint_Marker\nEggShell_1, EggShell_2, EggBottom\nButton\nPressed\nPlayer, BodyPart, Door, Tail, Apple, Walls, Egg\n\n======\nRULES \n======\n\nleft [ > Player TowardsLeft | Apple ] -> [ BodyHorizontal TowardsLeft | PlayerAteLeft TowardsLeft ] SFX1\nleft [ > Player TowardsUp | Apple ] -> [ BodyBend_2 TowardsLeft | PlayerAteLeft TowardsLeft ] SFX1\nleft [ > Player TowardsDown | Apple ] -> [ BodyBend_4 TowardsLeft | PlayerAteLeft TowardsLeft ] SFX1\n\nright [ > Player TowardsRight | Apple ] -> [ BodyHorizontal TowardsRight | PlayerAteRight TowardsRight ] SFX1\nright [ > Player TowardsUp | Apple ] -> [ BodyBend_1 TowardsRight | PlayerAteRight TowardsRight ] SFX1\nright [ > Player TowardsDown | Apple ] -> [ BodyBend_3 TowardsRight | PlayerAteRight TowardsRight ] SFX1 \n\nup [ > Player TowardsUp | Apple ] -> [ BodyVertical TowardsUp | PlayerAteUp TowardsUp ] SFX1\nup [ > Player TowardsLeft | Apple ] -> [ BodyBend_3 TowardsUp | PlayerAteUp TowardsUp ] SFX1\nup [ > Player TowardsRight | Apple ] -> [ BodyBend_4 TowardsUp | PlayerAteUp TowardsUp ] SFX1\n\ndown [ > Player TowardsDown | Apple ] -> [ BodyVertical TowardsDown | PlayerAteDown TowardsDown ] SFX1\ndown [ > Player TowardsLeft | Apple ] -> [ BodyBend_1 TowardsDown | PlayerAteDown TowardsDown ] SFX1\ndown [ > Player TowardsRight | Apple ] -> [ BodyBend_2 TowardsDown | PlayerAteDown TowardsDown ] SFX1\n\n(If the player is NOT about to move onto a button, move the player normally.\nThis is actually somewhat complicated. When the snake head moves, we put a direction marker behind it, indicating which direction it went -- this gives the body parts directions to follow. But we ALSO put a direction marker, of the same direction, on the head's new space. This gets deleted on the next move and replaced with whatever move you make next. The purpose of the marker on top of the head is so that the game can keep in mind which direction you've come from. This is useful for creating new bodyparts when eating apples.)\n\nleft [ > player Marker | No Obstacle No Metal | ] -> [ TowardsLeft | PlayerLeft TowardsLeft | SFX5]\nright [ > player Marker | No Obstacle No Metal | ] -> [ TowardsRight | PlayerRight TowardsRight | SFX5]\nup [ > player Marker | No Obstacle No Metal | ] -> [ TowardsUp | PlayerUp TowardsUp | SFX5]\ndown [ > player Marker | No Obstacle No Metal | ] -> [ TowardsDown | PlayerDown TowardsDown | SFX5]\n\n(Moving on metal.)\n\nleft [ > player Marker | No Obstacle Metal | ] -> [ TowardsLeft | PlayerLeft Metal TowardsLeft | SFX0]\nright [ > player Marker | No Obstacle Metal | ] -> [ TowardsRight | PlayerRight Metal TowardsRight | SFX0]\nup [ > player Marker | No Obstacle Metal | ] -> [ TowardsUp | PlayerUp Metal TowardsUp | SFX0]\ndown [ > player Marker | No Obstacle Metal | ] -> [ TowardsDown | PlayerDown Metal TowardsDown | SFX0]\n\n\nstartloop\nlate left [ BodyPart TowardsLeft | No PlayerPart TowardsLeft ] -> [ TowardsLeft | BodyHorizontal TowardsLeft]\nlate left [ BodyPart TowardsLeft | No PlayerPart TowardsUp ] -> [ TowardsLeft | BodyBend_3 TowardsUp]\nlate left [ BodyPart TowardsLeft | No PlayerPart TowardsDown ] -> [ TowardsLeft | BodyBend_1 TowardsDown]\n\nlate right [ BodyPart TowardsRight | No PlayerPart TowardsRight] -> [ TowardsRight | BodyHorizontal TowardsRight]\nlate right [ BodyPart TowardsRight | No PlayerPart TowardsUp] -> [ TowardsRight | BodyBend_4 TowardsUp]\nlate right [ BodyPart TowardsRight | No PlayerPart TowardsDown] -> [ TowardsRight | BodyBend_2 TowardsDown ]\n\nlate up [ BodyPart TowardsUp | No PlayerPart TowardsUp] -> [ TowardsUp | BodyVertical TowardsUp]\nlate up [ BodyPart TowardsUp | No PlayerPart TowardsLeft] -> [ TowardsUp | BodyBend_2 TowardsLeft]\nlate up [ BodyPart TowardsUp | No PlayerPart TowardsRight] -> [ TowardsUp | BodyBend_1 TowardsRight]\n\nlate down [ BodyPart TowardsDown | No PlayerPart TowardsDown] -> [ TowardsDown | BodyVertical TowardsDown]\nlate down [ BodyPart TowardsDown | No PlayerPart TowardsLeft] -> [ TowardsDown | BodyBend_4 TowardsLeft]\nlate down [ BodyPart TowardsDown | No PlayerPart TowardsRight] -> [ TowardsDown | BodyBend_3 TowardsRight]\nendloop\n\n(If Tail is on button, move it off and handle that.)\n\nlate left [ Tail TowardsLeft Button Pressed | No PlayerPart ] -> [ Button Pressed | Tail_1 ] SFX3\nlate right [ Tail TowardsRight Button Pressed | No PlayerPart ] -> [ Button Pressed | Tail_2 ] SFX3\nlate up [ Tail TowardsUp Button Pressed | No PlayerPart ] -> [ Button Pressed | Tail_3 ] SFX3\nlate down [ Tail TowardsDown Button Pressed| No PlayerPart ] -> [ Button Pressed | Tail_4 ] SFX3\n\n(If Tail is not on button, just move it.)\n\nlate left [ Tail TowardsLeft No Button | No PlayerPart ] -> [ | Tail_1 ]\nlate right [ Tail TowardsRight No Button| No PlayerPart ] -> [ | Tail_2 ]\nlate up [ Tail TowardsUp No Button| No PlayerPart ] -> [ | Tail_3 ]\nlate down [ Tail TowardsDown No Button| No PlayerPart ] -> [ | Tail_4 ]\n\nlate [Tail TowardsRight] -> [Tail_2 TowardsRight]\nlate [Tail TowardsDown] -> [Tail_4 TowardsDown]\nlate [Tail TowardsUp] -> [Tail_3 TowardsUp]\nlate [Tail TowardsLeft] -> [Tail_1 TowardsLeft]\n\n\n\n\nlate [ Player Button No Pressed ] -> [ Player Button Pressed ] SFX2\n\nstartloop\nlate [ Player Button Not_Just_Pressed] [ Door No Key ] -> [ Player Button Not_Just_Pressed] [ Door Key ]\nendloop\n\nstartloop\nlate [ Player Button Not_Just_Pressed ] -> [ Player Button ]\nendloop\n\n\nlate [ Button Pressed No PlayerPart ] [ Door2_1 ] -> [ Button Pressed ] [ Door2 ]\n\nlate [ Button Pressed No PlayerPart ] [ Door3_1 ] -> [ Button Pressed ] [ Door3 ]\nlate [ Button Pressed No PlayerPart ] [ Door3_2 ] -> [ Button Pressed ] [ Door3_1 ]\n\nlate [ Button Pressed No PlayerPart ] [ Door4_1 ] -> [ Button Pressed ] [ Door4 ]\nlate [ Button Pressed No PlayerPart ] [ Door4_2 ] -> [ Button Pressed ] [ Door4_1 ]\nlate [ Button Pressed No PlayerPart ] [ Door4_3 ] -> [ Button Pressed ] [ Door4_2 ]\n\nlate [ Button Pressed No PlayerPart ] [ DoorXM_1 ] -> [ Button Pressed ] [ DoorXM ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_2 ] -> [ Button Pressed ] [ DoorXM_1 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_3 ] -> [ Button Pressed ] [ DoorXM_2 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_4 ] -> [ Button Pressed ] [ DoorXM_3 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_5 ] -> [ Button Pressed ] [ DoorXM_4 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_6 ] -> [ Button Pressed ] [ DoorXM_5 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_7 ] -> [ Button Pressed ] [ DoorXM_6 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_8 ] -> [ Button Pressed ] [ DoorXM_7 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_9 ] -> [ Button Pressed ] [ DoorXM_8 ]\n\n\n\nlate [ DoorXM_9 Key ] -> [ DoorXM_10] SFX6 checkpoint\nlate [ DoorXM_8 Key ] -> [ DoorXM_9 ]\nlate [ DoorXM_7 Key ] -> [ DoorXM_8 ]\nlate [ DoorXM_6 Key ] -> [ DoorXM_7 ]\nlate [ DoorXM_5 Key ] -> [ DoorXM_6 ]\nlate [ DoorXM_4 Key ] -> [ DoorXM_5 ]\nlate [ DoorXM_3 Key ] -> [ DoorXM_4 ]\nlate [ DoorXM_2 Key ] -> [ DoorXM_3 ]\nlate [ DoorXM_1 Key ] -> [ DoorXM_2 ]\nlate [ DoorXM Key ] -> [ DoorXM_1 ]\n\nlate [ Door4_3 Key ] -> [ ] SFX4 checkpoint\nlate [ Door4_2 Key ] -> [ Door4_3 ]\nlate [ Door4_1 Key ] -> [ Door4_2 ]\nlate [ Door4 Key ] -> [ Door4_1 ]\n\nlate [ Door3_2 Key ] -> [ ] SFX4 checkpoint\nlate [ Door3_1 Key ] -> [ Door3_2 ]\nlate [ Door3 Key ] -> [ Door3_1 ]\n\nlate [ Door2_1 Key ] -> [ ] SFX4 checkpoint\nlate [ Door2 Key ] -> [ Door2_1 ]\n\nlate [ Door1 Key ] -> [ ] SFX4 checkpoint\n\nlate [ DoorXM_1] [ DoorXL ] -> [ DoorXM_1 ] [ DoorXL_1 ]\nlate [ DoorXM] [ DoorXL_1 ] -> [ DoorXM ] [ DoorXL ]\nlate [ DoorXM_6] [ DoorXL_1 ] -> [ DoorXM_6 ] [ DoorXL_6 ]\nlate [ DoorXM_5] [ DoorXL_6 ] -> [ DoorXM ] [ DoorXL_1 ]\n\nlate [ DoorXM_5] [ DoorXR ] -> [ DoorXM_5 ] [ DoorXR_5 ]\nlate [ DoorXM_4] [ DoorXR_5 ] -> [ DoorXM ] [ DoorXR ]\n\nlate [ DoorXM_10 ] [ DoorXL_6 ] [ DoorXR_5 ] -> [ ] [ ] [ ]\n\n\nlate [ Button Pressed No PlayerPart ] -> [ Button Not_Just_Pressed ]\n\n(late [ Player Checkpoint_Marker ] -> [ Player Checkpoint_Marker] checkpoint)\n\n(Alternative solution: have a different key for each button, each on different layers. but unite them under a \"key\" word. Then do the multiple keys on doors method)\n\n==============\nWINCONDITIONS\n==============\n\nNo Egg \n\n======= \nLEVELS\n=======\n\nMessage Oh! A baby is born...\n\n#######################################.............\n#............#8\"\"\"\"\"\"\"\"\"9########haaha#.............\n#............#%---------|########aa.aa#.............\n#............#%-o-----o-|########aaaha#.............\n#............#%---------|####...#hhhaa#.............\n#............#%---------!####....hhaaa#.............\n#............#%---------4.......#haaha#.............\n#............#%---------@####....aaa.h#.............\n#............#%---------|####...#aahah#.............\n#............#%---o---o-|########ha.aa#.............\n#............#%---------|########ahaha#.............\n#............#7'''~-@'''6########haaah#.............\n###################.###################.............\n###################.################################\n###################.################################\n##...##########8\"\"_3!\"\"9############################\n##.a.#....#####_-------|####8\"\"\"\"\"\"\"9###############\n###..#..#......--o-o---|####%-------|#####...#######\n####.##.#######~-------|####%-----o-!###......#..###\n###..#...######%-------!####_--------.......#...a###\n##..##.h.######_-o------....2-------@####..####..###\n##.########....--------@####~-----o-|###############\n##...#####..###~-------|####%-------|###############\n##.#........###7''~3@''6####7''~-@''6###############\n##...##############.############.###################\n###################.############.###################\n###################.############.######.......######\n#...................############.######.............\n#.###########################8\"_1!\"9###.............\n#.#######...######.....######%-----|###.............\n#.........h.#####..###.######%-----|###.............\n###########.####..####.######%-----|###.............\n#h..........####.##>p..######%--o--|###.............\n#.#a#.......####.##ue########_-----|###.............\n#a#.#h##########.######......------|###.............\n#....h.#...h####..####..#####~-----|###.............\n#.####....aa#####......######7~+x?@6###.............\n#......#...a##################%---|####.............\n##############################%---|####.............\n..........................####%---|####.............\n..........................#8\"\"_---!\"\"9#.............\n..........................#%---------|#.............\n..........................#%-@'''''~-|#.............\n..........................#%-|#####%-|#.............\n..........................#%-|#...#%-|#.............\n..........................#%-|#.w.#%-|#.............\n..........................#%-|#...#%-|#.............\n..........................#%-|#.-.#%-|#.............\n..........................#%-!_---!_-|#.............\n..........................#%---------|#.............\n..........................#7'''''''''6#.............\n..........................#############.............\n\n(#######################################.............\n#............#8\"\"\"\"\"\"\"\"\"9#########aah##.............\n#............#%---------|########ahaaa#.............\n#............#%-o-----o-|########aaaha#.............\n#............#%---------|###....#hhhha#.............\n#............#%---------!###.....hhaaa#.............\n#............#%---------4.......#haaha#.............\n#............#%---------@###.....aaaah#.............\n#............#%---------|###....#aahah#.............\n#............#%--o----o-|########haaaa#.............\n#............#%---------|########ahaha#.............\n#............#7'''~-@'''6#########aaa##.............\n###################.###################.............\n###################.################################\n###################.################################\n##...##########8\"\"_3!\"\"9############################\n##.a.#....#####_-------|####8\"\"\"\"\"\"\"9###############\n###..#..#......---o----|####%-------|#####...#######\n####.##.#######~-------|####%-----o-!###......#..###\n###..#...######%-------!####_--------.......#...a###\n##..##.h.######_--o-o---....2-------@####..####..###\n##.########....--------@####~-----o-|###############\n##...#####..###~-------|####%-------|###############\n##.#........###7''~3@''6####7''~-@''6###############\n##...##############.############.###################\n###################.############.###################\n###################.############.######.......######\n#...................############.######.............\n#.###########################8\"_1!\"9###.............\n#.....a.....######.....######%-----|###.............\n#...a...h...#####..###.######%-----|###.............\n###########.####..####.######%-----|###.............\n#ha.........####.##>p..######%--o--|###.............\n#.#a#......a####.##uE########_-----|###.............\n#a#.#h##########.######......------|###.............\n#..h.ha.#..#####..####..#####~-----|###.............\n#.####....h.#####......######7~+X?@6###.............\n#......#....##################%---|####.............\n##############################%---|####.............\n..........................####%---|####.............\n..........................#8\"\"_---!\"\"9#.............\n..........................#%---------|#.............\n..........................#%-@'''''~-|#.............\n..........................#%-|#####%-|#.............\n..........................#%-|#...#%-|#.............\n..........................#%-|#.w.#%-|#.............\n..........................#%-|#...#%-|#.............\n..........................#%-|#.-.#%-|#.............\n..........................#%-!_---!_-|#.............\n..........................#%---------|#.............\n..........................#7'''''''''6#.............\n..........................#############.............)\n\nMessage Thank you for playing.\n\n(#######################################.............\n#............#8\"\"\"\"\"\"\"\"\"9#######aaaa###.............\n#............#%---------|#####...aaa###.............\n#............#%-o-----o-|####......####.............\n#............#%---------|####......####.............\n#............#%---------|#####.......##.............\n#............#%---------4........aaa.##.............\n#............#%---------|#####...aaa.##.............\n#............#%---------|#####...aaa.##.............\n#............#%--o---o--|#######.....##.............\n#............#%---------|#######....###.............\n#............#7''''-''''6########..####.............\n###################.###################.............\n###################.################################\n###################.################################\n##...##########8\"\"\"3\"\"\"9############################\n##.a.#....#####%-------|####8\"\"\"\"\"\"\"9###############\n###..#..#......---o----|####%-------|#####...#######\n####.##.#######%-------|####%-----o-|###......#..###\n###..#...######%-------|####%--------.......#...a###\n##..##.a.######%--o-o---....2-------|####..####..###\n##.########....--------|####%-----o-|###############\n##...#####..###%-------|####%-------|###############\n##.#........###7'''3'''6####7'''-'''6###############\n##...##############.############.###################\n###################.############.###################\n###################.############.######.......######\n###############.....############.######.............\n##..............#############8\"\"-\"\"9###.............\n##.###############.....######%-----|###.............\n##..a...a...#####..###.######%-----|###.............\n###...a...a.####..####.######%-----|###.............\n########a##.####.##>p..######%--o--|###.............\n##..a.......####.##u.########%-----|###.............\n##....a.########.######......------|###.............\n##.######...####..####..#####%-----|###.............\n##.........a#####......######7''4''6###.............\n#########...####################.######.............\n###############################...#####.............\n\n.............##########################.............\n.............#8\"\"\"\"\"\"\"\"\"9#######aaaa###.............\n.............#%---------|#####...aaa###.............\n.............#%-o-----o-|####......####.............\n.............#%---------|####......####.............\n.............#%---------|#####.......##.............\n.............#%---------4........aaa.##.............\n.............#%---------|#####...aaa.##.............\n.............#%---------|#####...aaa.##.............\n.............#%-o-----o-|#######.....##.............\n.............#%---------|#######....###.............\n.............#7''''-''''6########..####.............\n.............######.###################.............\n###################.################################\n###################.################################\n##...##########8\"\"\"3\"\"\"9############################\n##.a.#....#####%-------|####8\"\"\"\"\"\"\"9###############\n###..#..#......---o----|####%-------|#####...#######\n####.##.#######%-------|####%-----o-|###......#..###\n###..#...######%-------|####%--------.......#...a###\n##..##.a.######%--o-o---....2-------|####..####..###\n##.########....--------|####%-----o-|###############\n##...#####..###%-------|####%-------|###############\n##.#........###7'''3'''6####7'''-'''6###############\n##...##############.############.###################\n###################.############.###################\n###################.############.######.......######\n###############.....############.######.............\n##..............#####..######8\"\"-\"\"9###.............\n##.##a###########......######%-----|###.............\n##.##.#########....###.######%-----|###.............\n##.##.....#####..####..######%-----|###.............\n##.##.a...#####.##>p..#######%--o--|###.............\n##....###.#####.##u.#########%-----|###.............\n#######....####.######.......------|###.............\n#######a.a.####...####.######%-----|###.............\n#######a.a.######......######7''4''6###.............\n################################.######.............\n###############################...#####.............\n\n####################################################\n#..........###...........###########################\n#...........##...........###8\"\"\"\"\"\"\"9###############\n#...........##...........###%-------|###############\n#..#####.##.##...........###%-----o-|######..#######\n#..##..###..##...........###%-------|###.....##..###\n#.....#####.##..............2--------....##.....a###\n#..#..########...........###%-------|##########..###\n#..###.####.##...........###%-----o-|###############\n#.##..#####.##...........###%-------|###############\n#.#########.##...........###7'''-'''6###############\n#...........##...........#######.###################\n################################.###################\n################################.######.......######\n#...........####################.######.............\n#..########.#####......######8\"\"-\"\"9###.............\n#..########.#####.####.######%-----|###.............\n#..########.###...####.######%-----|###.............\n#..#######..###.#####..######%-----|###.............\n#..#######..###.##.P..#######%--o--|###.............\n#.########..###.##..#########%-----|###.............\n#.########..###.######.......------|###.............\n#.########..###...####.######%-----|###.............\n#.########..#####......######7''4''6###.............\n#...........####################.######.............\n###############################...#####.............\n\n#######################################\n#..........###...........##...........#\n#...........##...........##...........#\n#...........##...........##...........#\n#..#####.##.##...........##...........#\n#..##..###..##...........##...........#\n#.....#####.##...........##...o...o...#\n#..#..########...........##...........#\n#..###.####.##...........##...........#\n#.##..#####.##...........##...........#\n#.#########.##...........##...........#\n#...........##...........##...........#\n################################.######\n################################.######\n#...........####################.######\n#..########.#####......######8\"\"1\"\"9###\n#..########.#####.####.######%-----|###\n#..########.###...####.######%-----|###\n#..#######..###.#####..######%-----|###\n#..#######..###.##.p..#######%--o--|###\n#.########..###.##..#########%-----|###\n#.########..###.######.......------|###\n#.########..###...####.######%-----|###\n#.########..#####......######7''4''6###\n#...........####################.######\n###############################...#####\n\n############################################\n############.........#8\"\"\"\"\"\"\"\"\"##....##...#\n#.........###......o.#%---------...#..##.a.#\n#.........####.......#%-------o-####.###..##\n#.........##........##%---------###...##.###\n#..........3.o........2--o------###.aa##..##\n#.........##.........#%---------#########.##\n#.........####.....o.#%-------o-....###...##\n#.........#####......#%---------###.....#.##\n#.........#####..#####7'''---'''#######...##\n###############.###########.################\n###############.###########.################\n#############....######8\"\"\".\"\"\"9############\n#................######%-------|############\n#.#a###################%-------|############\n#.#......#####....#####%-------|############\n#.#.a....#####.....####%---o---|############\n#...####.#####...p.....--------|############\n######...#####.....####%-------|############\n######a.a.####b.e.#####%-------|############\n######a.a.#############7'''4'''6############\n##########################...###############\n\n#######################8\"\"\"\"\"\"\"\"\"\"\"#########\n############.........#8%----------....##...#\n#.........###......o.#%-------o---.#..##.a.#\n#.........####.......#%---------|'##.###..##\n#.........##........##%--------|6##...##.###\n#..........3.o........2--o-----####.aa##..##\n#.........##.........#%---------|\"#######.##\n#.........####.....o.#%-------o---..###...##\n#.........#####......#7%-----------.....#.##\n#.........#####..######7''---''''''####...##\n###############.###########.################\n###############.###########.################\n#############....######8\"\"\"1\"\"\"9############\n#................######%-------|############\n#.#a###################%-------|############\n#.#......#####....#####%-------|############\n#.#.a....#####.....####%---o---|############\n#...####.#####...p.....--------|############\n######...#####.....####%-------|############\n######a.a.####b.e.#####%-------|############\n######a.a.#############7'''4'''6############\n##########################...###############\n\n#########\n#.......#\n#..1..O.#\n#.P.1.O.#\n#.......#\n#.......#\n#########)\n\n", [3, 3, 0, 0, 0, 1, 1, 1, 3, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 3, 2, 3, 2, 3, 3, 3, 3, 0, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 2, 3, 3, 3, 0, 1, 2, 2, "undo", "undo", "undo", "undo", 3, 2, 3, 0, 0, 1, 2, 1, 1, 0, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 3, 3, 2, 2, 2], "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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,background blueapple:2,1,background yellowapple:3,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,0,0,0,1,1,1,1,1,0,0,1,0,0,1,0,1,0,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,3,1,0,1,1,0,1,0,1,0,0,1,0,0,1,0,1,3,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,0,0,1,1,1,0,0,1,0,0,1,0,1,0,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,2,2,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,1,1,0,0,1,0,0,0,1,0,0,1,0,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,2,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,1,0,1,1,0,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,1,0,1,2,0,1,1,0,1,3,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,1,0,1,1,1,1,1,0,2,3,3,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,background wall_metal_dr:4,background wall_metal_r:5,5,5,5,5,5,5,5,5,background wall_metal_ur:6,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,background wall_metal_d:7,background metal:8,8,8,8,8,8,8,8,8,background wall_metal_u:9,0,0,0,4,background wall_metal_drc:10,8,background wall_metal_urc:11,5,10,8,11,6,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,background button not_just_pressed:12,8,8,8,8,8,8,8,9,0,0,0,7,8,8,8,8,8,8,8,9,0,0,0,1,0,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,9,0,0,0,7,8,12,8,8,12,8,8,9,0,0,0,1,0,0,1,1,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,12,8,11,0,0,0,10,8,8,8,8,8,8,8,11,0,0,0,1,0,1,1,0,0,0,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,8,1,1,1,background checkpoint_marker door3_2:13,8,12,8,8,8,8,8,13,1,1,1,1,0,1,0,0,background eggshell_2:14,background eggbottom:15,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,background wall_metal_ulc:16,0,0,0,background wall_metal_dlc:17,8,8,8,8,8,8,8,16,0,0,0,0,0,1,0,0,1,background eggshell_1:18,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,9,0,0,0,7,8,8,8,8,8,8,8,9,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,12,8,8,8,8,8,12,8,9,0,0,0,7,8,8,8,8,8,8,8,9,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,9,0,0,0,background wall_metal_dl:19,background wall_metal_l:20,20,20,17,8,16,20,background wall_metal_ul:21,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,19,20,20,20,17,background checkpoint_marker door4_2:22,16,20,20,20,21,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,4,5,5,5,5,5,5,5,5,5,6,0,\n0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,4,5,5,10,background checkpoint_marker:23,11,5,6,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,7,8,8,8,8,8,8,8,8,8,9,0,\n0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,7,8,8,8,8,8,8,9,0,0,0,0,4,5,5,5,5,10,8,11,6,0,0,0,7,8,16,20,20,20,20,20,17,8,9,0,\n0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,7,8,8,8,8,8,8,9,0,0,0,0,7,8,8,8,8,8,8,8,11,5,5,5,10,8,9,0,0,0,0,0,10,8,9,0,\n0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,7,8,8,8,8,8,8,11,0,0,0,0,10,8,8,8,8,8,8,8,background checkpoint_marker doorxl_1 key:24,8,8,8,8,8,9,0,1,1,1,1,8,8,9,0,\n0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,7,8,8,8,8,8,8,8,1,1,1,1,23,8,8,8,12,8,8,8,background checkpoint_marker doorxm_2:25,8,8,8,8,8,9,0,1,background egg:26,1,8,8,8,9,0,\n0,2,3,3,2,2,2,3,3,2,3,2,0,0,0,0,7,8,8,8,8,8,8,16,0,0,0,0,17,8,8,8,8,8,8,8,background checkpoint_marker doorxr key:27,8,8,8,8,8,9,0,1,1,1,1,8,8,9,0,\n0,3,3,3,2,2,3,3,3,3,2,3,0,0,0,0,7,8,background button pressed tail_4 towardsdown:28,background bodyvertical metal towardsdown:29,29,background button playerdown pressed towardsdown:30,8,9,0,0,0,0,7,8,8,8,8,8,8,8,16,20,20,20,17,8,9,0,0,0,0,0,17,8,9,0,\n0,3,1,3,2,3,3,3,2,1,3,3,0,0,0,0,7,8,8,8,8,8,8,9,0,0,0,0,19,20,20,20,20,20,20,20,21,0,0,0,7,8,11,5,5,5,5,5,10,8,9,0,\n0,2,3,2,3,3,2,1,3,3,2,3,0,0,0,0,19,20,17,8,16,20,20,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8,8,8,8,8,8,8,8,9,0,\n0,3,3,3,3,3,3,2,2,3,3,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,20,20,20,20,20,20,20,20,20,21,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n", 1, "1627778292986.5747"] ], [ `gallery: marble shot`, - ["title Marble Shoot\nauthor Stuart Burfield\nhomepage www.thepixelshelf.com\n\n========\nOBJECTS\n========\n\nBackground \n#CCFFCC\n\nPit\nBlack\n\nGoal \nBlack grey\n.000.\n00000\n00000\n00000\n.000.\n\nWall \nBlack #434f7b Blue #2ebdf5 #99CCFF darkblue #4DDBFF #B2F0FF\n13366\n12226\n52223\n52223\n55511\n\nHBlock\nBlack #293D3D #527A7A #85ADAD #99CCFF #0A0F0F #D1E0E0 white yellow #FF6600\n13367\n12226\n59993\n52223\n55511\n\nVBlock\nBlack #293D3D #527A7A #85ADAD #99CCFF #0A0F0F #D1E0E0 white #FFFF00 orange\n13367\n12826\n52823\n52823\n55511\n\nPlayerStill \nred Green orange Black grey darkred \n.333.\n.222.\n.121.\n20002\n.5.5.\n\nPlayerRight\nred Green orange Black grey\n.333.\n.222.\n.222.\n.0002\n.0.0.\n\nPlayerLeft\nred Green orange Black grey\n.333.\n.222.\n.222.\n2000.\n.0.0.\n\nPlayerDown\nred Green orange Black grey\n.333.\n.222.\n.121.\n20002\n.0.0.\n\nPlayerUp \nred Green orange Black grey\n.333.\n.222.\n22222\n.000.\n.0.0.\n\nGMarbStill\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbRight\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbLeft\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbDown\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbUp\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbGo1\n#001A00 Darkgreen green #b5e622 white\n.....\n.334.\n12234\n01223\n.011.\n\nGMarbGo2\n#001A00 Darkgreen green #b5e622 white\n.....\n.....\n.334.\n12234\n.122.\n\nGMarbGo3\nBlack Darkgreen green #b5e622 white\n.....\n.....\n.....\n.334.\n.223.\n\nGMarbGo4\nBlack Darkgreen green #b5e622 white\n.....\n.....\n.....\n.....\n.334.\n\nGMarbGo5\nBlack Darkgreen green #b5e622 white\n.....\n.....\n.....\n.....\n.....\n\nRMarbStill\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbRight\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbLeft\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbDown\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbUp\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbGo1\n#2E0000 DarkRed red orange yellow\n.....\n.334.\n12234\n01223\n.011.\n\nRMarbGo2\n#2E0000 DarkRed red orange yellow\n.....\n.....\n.334.\n12234\n.122.\n\nRMarbGo3\nBlack DarkRed red orange yellow\n.....\n.....\n.....\n.334.\n.223.\n\nRMarbGo4\nBlack DarkRed red orange yellow\n.....\n.....\n.....\n.....\n.334.\n\nRightArrow\n#2EB82E #FF3300#330000 #FFCC00\n21222\n21122\n21112\n21122\n21222\n\nRightArrowUsed\n#008AE6 #CCEBFF #001F7A #80CCFF \n21222\n21122\n21112\n21122\n21222\n\nLeftArrow\n#2EB82E #FF3300 #330000 #FFCC00 \n22212\n22112\n21112\n22112\n22212\n\nLeftArrowUsed\n#008AE6 #CCEBFF #001F7A #80CCFF \n22212\n22112\n21112\n22112\n22212\n\nUpArrow\n#2EB82E #FF3300 #330000 #FFCC00 \n22222\n22122\n21112\n11111\n22222\n\nUpArrowUsed\n#008AE6 #CCEBFF #001F7A #80CCFF \n22222\n22122\n21112\n11111\n22222\n\nDownArrow\n#2EB82E #FF3300 #330000 #FFCC00 \n22222\n11111\n21112\n22122\n22222\n\nDownArrowUsed\n#008AE6 #CCEBFF #001F7A #80CCFF \n22222\n11111\n21112\n22122\n22222\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = PlayerStill\nG = GMarbStill\nR = RMarbStill\nO = Goal\nH = RightArrow\nJ = LeftArrow\nK = UpArrow\nL = DownArrow\nX = Pit\nB = HBlock\nC = VBlock\n\nPlayer = PlayerStill or PlayerRight or PlayerLeft or PlayerDown or PlayerUp\nGreenMarble = GMarbStill or GMarbRight or GMarbLeft or GMarbDown or GMarbUp\nRedMarble = RMarbStill or RMarbRight or RMarbLeft or RMarbDown or RMarbUp or RMarbGo1 or RMarbGo2 or RMarbGo3 or RMarbGo4\nGreenDisappear = GMarbGo1 or GMarbGo2 or GMarbGo3 or GMarbGo4 or GMarbgo5\nObject = Player or wall or GreenMarble or RedMarble or Hblock or VBlock\nArrow = RightArrow or LeftArrow or DownArrow or UpArrow \nArrowUsed = RightArrowUsed or LeftArrowUsed or DownArrowUsed or UpArrowUsed\n\n\n=======\nSOUNDS\n=======\nsfx0 48153307 (push marble)\nsfx1 87174707 (marble hit)\nsfx2 41179907 (marble stopped)\nsfx3 72781708 (red marble in hole)\nsfx4 50556508 (green marble in hole)\nsfx5 91492107 (marble hit arrow)\nsfx6 90173307 (push arrow)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground \nGoal, RightArrow, LeftArrow, DownArrow, UpArrow, Pit, Arrow, ArrowUsed\nPlayer, Wall, GMarbStill, RMarbStill, Object, GreenDisappear\n\n======\nRULES \n======\n(Marble Disappear)\n[GMarbGo5] -> Restart\n[RMarbGo4] -> []\n[RMarbGo3] -> [RMarbGo4] again\n[RMarbGo2] -> [RMarbGo3] again\n[RMarbGo1] -> [RMarbGo2] again\n[GMarbGo4] -> [GMarbGo5] again\n[GMarbGo3] -> [GMarbGo4] again\n[GMarbGo2] -> [GMarbGo3] again\n[GMarbGo1] -> [GMarbGo2] again\n\n(Player Directions)\nright [ right Player ] -> [ right PlayerRight ]\nleft [ left Player ] -> [ left PlayerLeft ] \nup [ up Player ] -> [ up PlayerUp ] \ndown [ down Player ] -> [ down PlayerDown]\n\n(Block Push)\nHorizontal [ > Player | HBlock ] -> [ > Player | > HBlock ] \nVertical [ > Player | VBlock ] -> [ > Player | > VBlock ]\n\n(Can't Push)\n[ > Player | Goal ] -> [ Player | Goal ]\n\n(Arrow Push)\n[ > Player | Arrow | No Object ] -> [ > Player | > Arrow | No Object ] sfx6\n[ > Player | Arrow | Object ] -> [ Player | Arrow | Object ] sfx6\n[ > Player | Arrow | Arrow ] -> [ Player | Arrow | Arrow ] sfx6\n[ > Player | Arrow | ArrowUsed ] -> [ Player | Arrow | ArrowUsed ] sfx6\n\n[ > Player | ArrowUsed | No Object ] -> [ Player | ArrowUsed | No Object ] sfx6\n[ > Player | ArrowUsed | Object ] -> [ Player | ArrowUsed | Object ] sfx6\n[ > Player | ArrowUsed | Arrow ] -> [ Player | ArrowUsed | Arrow ] sfx6\n[ > Player | ArrowUsed | ArrowUsed ] -> [ Player | ArrowUsed | ArrowUsed ] sfx6\n\n(Marble Pushed)\n[ > PlayerRight | GMarbStill ] -> [ > PlayerStill | > GMarbRight ] sfx0\n[ > PlayerLeft | GMarbStill ] -> [ > PlayerStill | > GMarbLeft ] sfx0\n[ > PlayerDown | GMarbStill ] -> [ > PlayerStill | > GMarbDown ] sfx0\n[ > PlayerUp | GMarbStill ] -> [ > PlayerStill | > GMarbUp ] sfx0\n(Marble collision check)\nright [ GMarbRight | RMarbStill ] -> [ GMarbStill | > RMarbRight ] sfx1\nright [ RMarbRight | RMarbStill ] -> [ RMarbStill | > RMarbRight ] sfx1\nleft [ GMarbLeft | RMarbStill ] -> [ GMarbStill | > RMarbLeft ] sfx1\nleft [ RMarbLeft | RMarbStill ] -> [ RMarbStill | > RMarbLeft ] sfx1\nup [ GMarbUp | RMarbStill ] -> [ GMarbStill | > RMarbUp ] sfx1\nup [ RMarbUp | RMarbStill ] -> [ RMarbStill | > RMarbUp ] sfx1\ndown [ GMarbDown | RMarbStill ] -> [ GMarbStill | > RMarbDown ] sfx1\ndown [ RMarbDown | RMarbStill ] -> [ RMarbStill | > RMarbDown ] sfx1\n(MarblesOnArrows)\n[ RedMarble LeftArrow ] -> [ LEFT RMarbLeft LeftArrowUsed ] again sfx5\n[ RedMarble RightArrow ] -> [ RIGHT RMarbRight RightArrowUsed ] again sfx5\n[ RedMarble DownArrow ] -> [ DOWN RMarbDown DownArrowUsed ] again sfx5\n[ RedMarble UpArrow ] -> [ UP RMarbUp UpArrowUsed ] again sfx5\n[ GreenMarble LeftArrow ] -> [ LEFT GMarbLeft LeftArrowUsed ] again sfx5\n[ GreenMarble RightArrow ] -> [ RIGHT GMarbRight RightArrowUsed ] again sfx5\n[ GreenMarble DownArrow ] -> [ DOWN GMarbDown DownArrowUsed ] again sfx5\n[ GreenMarble UpArrow ] -> [ UP GMarbUp UpArrowUsed ] again sfx5\n\n[ RedMarble LeftArrowUsed ] -> [ LEFT RMarbLeft LeftArrowUsed ] again sfx5\n[ RedMarble RightArrowUsed ] -> [ RIGHT RMarbRight RightArrowUsed ] again sfx5\n[ RedMarble DownArrowUsed ] -> [ DOWN RMarbDown DownArrowUsed ] again sfx5\n[ RedMarble UpArrowUsed ] -> [ UP RMarbUp UpArrowUsed ] again sfx5\n[ GreenMarble LeftArrowUsed ] -> [ LEFT GMarbLeft LeftArrowUsed ] again sfx5\n[ GreenMarble RightArrowUsed ] -> [ RIGHT GMarbRight RightArrowUsed ] again sfx5\n[ GreenMarble DownArrowUsed ] -> [ DOWN GMarbDown DownArrowUsed ] again sfx5\n[ GreenMarble UpArrowUsed ] -> [ UP GMarbUp UpArrowUsed ] again sfx5\n(Marble In Hole)\nright [ RMarbRight | Goal ] -> [ > RMarbGo1 | Goal ] again sfx4\nleft [ RMarbLeft | Goal ] -> [ > RMarbGo1 | Goal ] again sfx4\nup [ RMarbUp | Goal ] -> [ > RMarbGo1 | Goal ] again sfx4\ndown [ RMarbDown | Goal ] -> [ > RMarbGo1 | Goal ] again sfx4\nright [ GMarbRight | Goal ] -> [ > GMarbGo1 | Goal ] again sfx3\nleft [ GMarbLeft | Goal ] -> [ > GMarbGo1 | Goal ] again sfx3\nup [ GMarbUp | Goal ] -> [ > GMarbGo1 | Goal ] again sfx3\ndown [ GMarbDown | Goal ] -> [ > GMarbGo1 | Goal ] again sfx3\n(Marble Move Loop)\nrandom left [ GMarbLeft | No Object ] -> [ | GMarbLeft ] again\nrandom left [ RMarbLeft | No Object ] -> [ | RMarbLeft ] again\nrandom right [ GMarbRight | No Object ] -> [ | GMarbRight ] again\nrandom right [ RMarbRight | No Object ] -> [ | RMarbRight ] again\nrandom down [ RMarbDown | No Object ] -> [ | RMarbDown ] again\nrandom down [ GMarbDown | No Object ] -> [ | GMarbDown ] again\nrandom up [ RMarbUp | No Object ] -> [ | RMarbUp ] again\nrandom up [ GMarbUp | No Object ] -> [ | GMarbUp ] again\n\n(Green Marble Stop)\nright [ GMarbRight | Wall ] -> [ GMarbStill | Wall ] sfx2\nleft [ GMarbLeft | Wall ] -> [ GMarbStill | Wall ] sfx2\ndown [ GMarbDown | Wall ] -> [ GMarbStill | Wall ] sfx2\nup [ GMarbUp | Wall ] -> [ GMarbStill | Wall ] sfx2\nright [ GMarbRight | HBlock ] -> [ GMarbStill | HBlock ] sfx2\nleft [ GMarbLeft | HBlock ] -> [ GMarbStill | HBlock ] sfx2\ndown [ GMarbDown | HBlock ] -> [ GMarbStill | HBlock ] sfx2\nup [ GMarbUp | HBlock ] -> [ GMarbStill | HBlock ] sfx2\n\n(Red Marble Stop)\nright [ RMarbRight | Wall ] -> [ RMarbStill | Wall ] sfx2\nleft [ RMarbLeft | Wall ] -> [ RMarbStill | Wall ] sfx2\ndown [ RMarbDown | Wall ] -> [ RMarbStill | Wall ] sfx2\nup [ RMarbUp | Wall ] -> [ RMarbStill | Wall ] sfx2\nright [ RMarbRight | HBlock ] -> [ RMarbStill | HBlock ] sfx2\nleft [ RMarbLeft | HBlock ] -> [ RMarbStill | HBlock ] sfx2\ndown [ RMarbDown | HBlock ] -> [ RMarbStill | HBlock ] sfx2\nup [ RMarbUp | HBlock ] -> [ RMarbStill | HBlock ] sfx2\n\n(Player Change Back)\nlate [ Player ] -> [ PlayerStill ]\n\n(cheat)\n([ action Player ] -> win)\n\n==============\nWINCONDITIONS\n==============\n\nNo RedMarble \n\n======= \nLEVELS\n=======\nMessage 1\n\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxx##########xx\n##############\n###........###\n##..#.......##\n##p.g..r..r.o#\n##..#.......##\n###........###\n##############\nxx##########xx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\n\nMessage 2\n\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\nx#######xx\n#########x\n###....##x\n#......##x\n#.......#x\n#..###..#x\n#p.###..#x\n#..###r.#x\n#.g.....#x\n#..###r.#x\nx#####o.#x\nxxxx####xx\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\n\nMessage 3\n\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxx#########xx\nxxx##......##xx\nx####.####..##x\n#p..#.......##x\n#...#..##...##x\n#.g.##....#r.#x\n#...#....##..#x\n#........##r.#x\n#######....o.#x\n##############x\nx########xxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n\nMessage 4\n\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxx#########xx\nx#############x\n#o...r........#\n######..#...#.#\n######..##....#\n#..g...r...####\n#p.........####\n#####.###....##\nx####......###x\nxxx##########xx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n\nMessage 5\n\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxx###x\nxxxxxxxxx##o#x\nx#####xxx##.#x\n##...######.##\n##.#.g..r...##\n##...........#\n##p....r....##\n##..#.......##\n###.......#.##\nx########...##\nxxxxxxx######x\nxxxxxxxxxx##xx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\n\nMessage 6\n\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\n###########\n##p......##\n###.g....##\n##....r..o#\n##.r....###\n##...r....#\n#o........#\n####...####\n#####o#####\n###########\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\n\nMessage 7\n\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nx###########x\n##.p#o..#####\n##.g#..r..###\n###.#.....###\n#o..r.....ro#\n##........###\n#####...r..##\n#####....#.##\n#####.##.#.##\nx####......#x\nxx#########xx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\n\nMessage 8\n\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nx#####xxxxxxx\nx#...#####xxx\n##.#.##..####\n##...##.....#\n###......#..#\n###....r....#\n###..r......#\n###.....#.g.#\n###.##...r.p#\n###o......#.#\nxx###########\nxx###########\nxx###########\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\n\nMessage 9\n\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxx##########x\n######......#\n######.####.#\n#o..........#\n###.###...r.#\n###r####....#\n#.....r.....#\n#.#.....r#..#\n#.#..g.#....#\n#..p......#o#\n#############\nxxxxxxxxxxx##\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\n\nMessage 10\n\nxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxx\nxxxxxxx######xxxx\nxx#######...#xxxx\nxx#....##.g.#xxxx\n###.##.##..####xx\n###........######\n#...#...p....####\n#.#.#.####.#.####\n#.....r....#.####\n###r#.##.......##\nxx#...##.....#.##\nxx#o...r.......##\nxxx#####..#####xx\nxxxxxxx####xxxxxx\nxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxx\n\nMessage 11\n\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\nxxxx#####x\nxxx#...###\nxxx#g..###\nxxx#..####\nx###.h..##\nx#####..##\nx######l##\n###..#..##\n#o.rpj..##\n###..#####\n##########\nxxx#######\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\n\nMessage 12\n\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxx####x\n######..##\n##h.....##\n##.####l##\n##g####.##\n##.p....##\n##o..##.##\n##..#l.j##\n##r.#.####\n##..#h.l##\n##.k.##..#\n##.......#\n######.#.#\nxxx###...#\nxxxxx####x\nxxxxxxxxxx\nxxxxxxxxxx\n\nMessage 13\n\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxx#####\nxxxxxxxxxx#...##\nx##########.g.##\n#.............##\n#.l##..##.##h##x\n#..#..........#x\n#...p...r.r...o#\n###############x\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\n\nMessage 14\n\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxx#####\nxxxxxx#...#\nxxxxxx#.#.#\nx######...#\n#.g.l....##\n#........##\n##....r.###\n###r....###\n###.ph.o###\nx##########\nx##########\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\n\nMessage 15\n\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n##########xxxxx\n##############x\n##..........o#x\n##.g..##...###x\n###.#.##.....#x\nx##.#...h....##\nx##.###...#...#\nx##.##...r#...#\nx##....k....###\nx#######.p...##\nx#########.#.##\nxx########...##\nxxxxxxxx######x\nxxxxxxxxxxx##xx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n\nMessage 16\n\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nx##############\nx##...p......o#\nx##.#...r.###.#\nx##.k..#..###.#\nx##.k....####.#\nx##...r.......#\nx##.###.#######\nx##.......k..##\nx##.g...##.#.##\nxx########...##\nxxxxxxxx######x\nxxxxxxxxxxx##xx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n\nMessage Congratulations! You won!\n",[0,3,3,3,2,3,3,0,3,0,0,0,0,1],"background pit:0,0,0,0,0,0,background wall:1,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,1,background goal:2,1,1,background:3,3,1,\n1,0,0,0,0,0,0,0,0,0,0,1,3,1,1,\n3,3,1,1,0,0,0,0,0,0,0,0,0,0,1,\n3,1,1,3,3,1,1,1,0,0,0,0,0,0,0,\n0,1,1,3,1,1,3,3,1,1,1,0,0,0,0,\n0,0,0,0,1,1,background gmarbstill:4,1,1,3,3,3,3,1,0,\n0,0,0,0,0,0,0,1,1,background playerstill:5,3,3,3,3,1,\n3,1,0,0,0,0,0,0,0,0,1,1,3,3,3,\n3,3,1,3,1,0,0,0,0,0,0,0,0,1,1,\n3,1,1,3,3,1,3,1,0,0,0,0,0,0,0,\n0,1,1,3,3,1,3,3,3,3,1,0,0,0,0,\n0,0,0,0,1,1,3,3,3,background rmarbstill:6,3,3,3,1,0,\n0,0,0,0,0,0,0,1,1,3,3,3,1,1,3,\n1,1,0,0,0,0,0,0,0,0,1,1,3,1,3,\n1,1,3,1,1,0,0,0,0,0,0,0,0,0,1,\n3,3,3,1,1,1,1,0,0,0,0,0,0,0,0,\n0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,\n",7,"1627778376637.0903"] + ["title Marble Shoot\nauthor Stuart Burfield\nhomepage www.thepixelshelf.com\n\n========\nOBJECTS\n========\n\nBackground \n#CCFFCC\n\nPit\nBlack\n\nGoal \nBlack grey\n.000.\n00000\n00000\n00000\n.000.\n\nWall \nBlack #434f7b Blue #2ebdf5 #99CCFF darkblue #4DDBFF #B2F0FF\n13366\n12226\n52223\n52223\n55511\n\nHBlock\nBlack #293D3D #527A7A #85ADAD #99CCFF #0A0F0F #D1E0E0 white yellow #FF6600\n13367\n12226\n59993\n52223\n55511\n\nVBlock\nBlack #293D3D #527A7A #85ADAD #99CCFF #0A0F0F #D1E0E0 white #FFFF00 orange\n13367\n12826\n52823\n52823\n55511\n\nPlayerStill \nred Green orange Black grey darkred \n.333.\n.222.\n.121.\n20002\n.5.5.\n\nPlayerRight\nred Green orange Black grey\n.333.\n.222.\n.222.\n.0002\n.0.0.\n\nPlayerLeft\nred Green orange Black grey\n.333.\n.222.\n.222.\n2000.\n.0.0.\n\nPlayerDown\nred Green orange Black grey\n.333.\n.222.\n.121.\n20002\n.0.0.\n\nPlayerUp \nred Green orange Black grey\n.333.\n.222.\n22222\n.000.\n.0.0.\n\nGMarbStill\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbRight\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbLeft\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbDown\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbUp\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbGo1\n#001A00 Darkgreen green #b5e622 white\n.....\n.334.\n12234\n01223\n.011.\n\nGMarbGo2\n#001A00 Darkgreen green #b5e622 white\n.....\n.....\n.334.\n12234\n.122.\n\nGMarbGo3\nBlack Darkgreen green #b5e622 white\n.....\n.....\n.....\n.334.\n.223.\n\nGMarbGo4\nBlack Darkgreen green #b5e622 white\n.....\n.....\n.....\n.....\n.334.\n\nGMarbGo5\nBlack Darkgreen green #b5e622 white\n.....\n.....\n.....\n.....\n.....\n\nRMarbStill\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbRight\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbLeft\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbDown\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbUp\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbGo1\n#2E0000 DarkRed red orange yellow\n.....\n.334.\n12234\n01223\n.011.\n\nRMarbGo2\n#2E0000 DarkRed red orange yellow\n.....\n.....\n.334.\n12234\n.122.\n\nRMarbGo3\nBlack DarkRed red orange yellow\n.....\n.....\n.....\n.334.\n.223.\n\nRMarbGo4\nBlack DarkRed red orange yellow\n.....\n.....\n.....\n.....\n.334.\n\nRightArrow\n#2EB82E #FF3300#330000 #FFCC00\n21222\n21122\n21112\n21122\n21222\n\nRightArrowUsed\n#008AE6 #CCEBFF #001F7A #80CCFF \n21222\n21122\n21112\n21122\n21222\n\nLeftArrow\n#2EB82E #FF3300 #330000 #FFCC00 \n22212\n22112\n21112\n22112\n22212\n\nLeftArrowUsed\n#008AE6 #CCEBFF #001F7A #80CCFF \n22212\n22112\n21112\n22112\n22212\n\nUpArrow\n#2EB82E #FF3300 #330000 #FFCC00 \n22222\n22122\n21112\n11111\n22222\n\nUpArrowUsed\n#008AE6 #CCEBFF #001F7A #80CCFF \n22222\n22122\n21112\n11111\n22222\n\nDownArrow\n#2EB82E #FF3300 #330000 #FFCC00 \n22222\n11111\n21112\n22122\n22222\n\nDownArrowUsed\n#008AE6 #CCEBFF #001F7A #80CCFF \n22222\n11111\n21112\n22122\n22222\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = PlayerStill\nG = GMarbStill\nR = RMarbStill\nO = Goal\nH = RightArrow\nJ = LeftArrow\nK = UpArrow\nL = DownArrow\nX = Pit\nB = HBlock\nC = VBlock\n\nPlayer = PlayerStill or PlayerRight or PlayerLeft or PlayerDown or PlayerUp\nGreenMarble = GMarbStill or GMarbRight or GMarbLeft or GMarbDown or GMarbUp\nRedMarble = RMarbStill or RMarbRight or RMarbLeft or RMarbDown or RMarbUp or RMarbGo1 or RMarbGo2 or RMarbGo3 or RMarbGo4\nGreenDisappear = GMarbGo1 or GMarbGo2 or GMarbGo3 or GMarbGo4 or GMarbgo5\nObject = Player or wall or GreenMarble or RedMarble or Hblock or VBlock\nArrow = RightArrow or LeftArrow or DownArrow or UpArrow \nArrowUsed = RightArrowUsed or LeftArrowUsed or DownArrowUsed or UpArrowUsed\n\n\n=======\nSOUNDS\n=======\nsfx0 48153307 (push marble)\nsfx1 87174707 (marble hit)\nsfx2 41179907 (marble stopped)\nsfx3 72781708 (red marble in hole)\nsfx4 50556508 (green marble in hole)\nsfx5 91492107 (marble hit arrow)\nsfx6 90173307 (push arrow)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground \nGoal, RightArrow, LeftArrow, DownArrow, UpArrow, Pit, Arrow, ArrowUsed\nPlayer, Wall, GMarbStill, RMarbStill, Object, GreenDisappear\n\n======\nRULES \n======\n(Marble Disappear)\n[GMarbGo5] -> Restart\n[RMarbGo4] -> []\n[RMarbGo3] -> [RMarbGo4] again\n[RMarbGo2] -> [RMarbGo3] again\n[RMarbGo1] -> [RMarbGo2] again\n[GMarbGo4] -> [GMarbGo5] again\n[GMarbGo3] -> [GMarbGo4] again\n[GMarbGo2] -> [GMarbGo3] again\n[GMarbGo1] -> [GMarbGo2] again\n\n(Player Directions)\nright [ right Player ] -> [ right PlayerRight ]\nleft [ left Player ] -> [ left PlayerLeft ] \nup [ up Player ] -> [ up PlayerUp ] \ndown [ down Player ] -> [ down PlayerDown]\n\n(Block Push)\nHorizontal [ > Player | HBlock ] -> [ > Player | > HBlock ] \nVertical [ > Player | VBlock ] -> [ > Player | > VBlock ]\n\n(Can't Push)\n[ > Player | Goal ] -> [ Player | Goal ]\n\n(Arrow Push)\n[ > Player | Arrow | No Object ] -> [ > Player | > Arrow | No Object ] sfx6\n[ > Player | Arrow | Object ] -> [ Player | Arrow | Object ] sfx6\n[ > Player | Arrow | Arrow ] -> [ Player | Arrow | Arrow ] sfx6\n[ > Player | Arrow | ArrowUsed ] -> [ Player | Arrow | ArrowUsed ] sfx6\n\n[ > Player | ArrowUsed | No Object ] -> [ Player | ArrowUsed | No Object ] sfx6\n[ > Player | ArrowUsed | Object ] -> [ Player | ArrowUsed | Object ] sfx6\n[ > Player | ArrowUsed | Arrow ] -> [ Player | ArrowUsed | Arrow ] sfx6\n[ > Player | ArrowUsed | ArrowUsed ] -> [ Player | ArrowUsed | ArrowUsed ] sfx6\n\n(Marble Pushed)\n[ > PlayerRight | GMarbStill ] -> [ > PlayerStill | > GMarbRight ] sfx0\n[ > PlayerLeft | GMarbStill ] -> [ > PlayerStill | > GMarbLeft ] sfx0\n[ > PlayerDown | GMarbStill ] -> [ > PlayerStill | > GMarbDown ] sfx0\n[ > PlayerUp | GMarbStill ] -> [ > PlayerStill | > GMarbUp ] sfx0\n(Marble collision check)\nright [ GMarbRight | RMarbStill ] -> [ GMarbStill | > RMarbRight ] sfx1\nright [ RMarbRight | RMarbStill ] -> [ RMarbStill | > RMarbRight ] sfx1\nleft [ GMarbLeft | RMarbStill ] -> [ GMarbStill | > RMarbLeft ] sfx1\nleft [ RMarbLeft | RMarbStill ] -> [ RMarbStill | > RMarbLeft ] sfx1\nup [ GMarbUp | RMarbStill ] -> [ GMarbStill | > RMarbUp ] sfx1\nup [ RMarbUp | RMarbStill ] -> [ RMarbStill | > RMarbUp ] sfx1\ndown [ GMarbDown | RMarbStill ] -> [ GMarbStill | > RMarbDown ] sfx1\ndown [ RMarbDown | RMarbStill ] -> [ RMarbStill | > RMarbDown ] sfx1\n(MarblesOnArrows)\n[ RedMarble LeftArrow ] -> [ LEFT RMarbLeft LeftArrowUsed ] again sfx5\n[ RedMarble RightArrow ] -> [ RIGHT RMarbRight RightArrowUsed ] again sfx5\n[ RedMarble DownArrow ] -> [ DOWN RMarbDown DownArrowUsed ] again sfx5\n[ RedMarble UpArrow ] -> [ UP RMarbUp UpArrowUsed ] again sfx5\n[ GreenMarble LeftArrow ] -> [ LEFT GMarbLeft LeftArrowUsed ] again sfx5\n[ GreenMarble RightArrow ] -> [ RIGHT GMarbRight RightArrowUsed ] again sfx5\n[ GreenMarble DownArrow ] -> [ DOWN GMarbDown DownArrowUsed ] again sfx5\n[ GreenMarble UpArrow ] -> [ UP GMarbUp UpArrowUsed ] again sfx5\n\n[ RedMarble LeftArrowUsed ] -> [ LEFT RMarbLeft LeftArrowUsed ] again sfx5\n[ RedMarble RightArrowUsed ] -> [ RIGHT RMarbRight RightArrowUsed ] again sfx5\n[ RedMarble DownArrowUsed ] -> [ DOWN RMarbDown DownArrowUsed ] again sfx5\n[ RedMarble UpArrowUsed ] -> [ UP RMarbUp UpArrowUsed ] again sfx5\n[ GreenMarble LeftArrowUsed ] -> [ LEFT GMarbLeft LeftArrowUsed ] again sfx5\n[ GreenMarble RightArrowUsed ] -> [ RIGHT GMarbRight RightArrowUsed ] again sfx5\n[ GreenMarble DownArrowUsed ] -> [ DOWN GMarbDown DownArrowUsed ] again sfx5\n[ GreenMarble UpArrowUsed ] -> [ UP GMarbUp UpArrowUsed ] again sfx5\n(Marble In Hole)\nright [ RMarbRight | Goal ] -> [ > RMarbGo1 | Goal ] again sfx4\nleft [ RMarbLeft | Goal ] -> [ > RMarbGo1 | Goal ] again sfx4\nup [ RMarbUp | Goal ] -> [ > RMarbGo1 | Goal ] again sfx4\ndown [ RMarbDown | Goal ] -> [ > RMarbGo1 | Goal ] again sfx4\nright [ GMarbRight | Goal ] -> [ > GMarbGo1 | Goal ] again sfx3\nleft [ GMarbLeft | Goal ] -> [ > GMarbGo1 | Goal ] again sfx3\nup [ GMarbUp | Goal ] -> [ > GMarbGo1 | Goal ] again sfx3\ndown [ GMarbDown | Goal ] -> [ > GMarbGo1 | Goal ] again sfx3\n(Marble Move Loop)\nrandom left [ GMarbLeft | No Object ] -> [ | GMarbLeft ] again\nrandom left [ RMarbLeft | No Object ] -> [ | RMarbLeft ] again\nrandom right [ GMarbRight | No Object ] -> [ | GMarbRight ] again\nrandom right [ RMarbRight | No Object ] -> [ | RMarbRight ] again\nrandom down [ RMarbDown | No Object ] -> [ | RMarbDown ] again\nrandom down [ GMarbDown | No Object ] -> [ | GMarbDown ] again\nrandom up [ RMarbUp | No Object ] -> [ | RMarbUp ] again\nrandom up [ GMarbUp | No Object ] -> [ | GMarbUp ] again\n\n(Green Marble Stop)\nright [ GMarbRight | Wall ] -> [ GMarbStill | Wall ] sfx2\nleft [ GMarbLeft | Wall ] -> [ GMarbStill | Wall ] sfx2\ndown [ GMarbDown | Wall ] -> [ GMarbStill | Wall ] sfx2\nup [ GMarbUp | Wall ] -> [ GMarbStill | Wall ] sfx2\nright [ GMarbRight | HBlock ] -> [ GMarbStill | HBlock ] sfx2\nleft [ GMarbLeft | HBlock ] -> [ GMarbStill | HBlock ] sfx2\ndown [ GMarbDown | HBlock ] -> [ GMarbStill | HBlock ] sfx2\nup [ GMarbUp | HBlock ] -> [ GMarbStill | HBlock ] sfx2\n\n(Red Marble Stop)\nright [ RMarbRight | Wall ] -> [ RMarbStill | Wall ] sfx2\nleft [ RMarbLeft | Wall ] -> [ RMarbStill | Wall ] sfx2\ndown [ RMarbDown | Wall ] -> [ RMarbStill | Wall ] sfx2\nup [ RMarbUp | Wall ] -> [ RMarbStill | Wall ] sfx2\nright [ RMarbRight | HBlock ] -> [ RMarbStill | HBlock ] sfx2\nleft [ RMarbLeft | HBlock ] -> [ RMarbStill | HBlock ] sfx2\ndown [ RMarbDown | HBlock ] -> [ RMarbStill | HBlock ] sfx2\nup [ RMarbUp | HBlock ] -> [ RMarbStill | HBlock ] sfx2\n\n(Player Change Back)\nlate [ Player ] -> [ PlayerStill ]\n\n(cheat)\n([ action Player ] -> win)\n\n==============\nWINCONDITIONS\n==============\n\nNo RedMarble \n\n======= \nLEVELS\n=======\nMessage 1\n\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxx##########xx\n##############\n###........###\n##..#.......##\n##p.g..r..r.o#\n##..#.......##\n###........###\n##############\nxx##########xx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\n\nMessage 2\n\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\nx#######xx\n#########x\n###....##x\n#......##x\n#.......#x\n#..###..#x\n#p.###..#x\n#..###r.#x\n#.g.....#x\n#..###r.#x\nx#####o.#x\nxxxx####xx\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\n\nMessage 3\n\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxx#########xx\nxxx##......##xx\nx####.####..##x\n#p..#.......##x\n#...#..##...##x\n#.g.##....#r.#x\n#...#....##..#x\n#........##r.#x\n#######....o.#x\n##############x\nx########xxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n\nMessage 4\n\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxx#########xx\nx#############x\n#o...r........#\n######..#...#.#\n######..##....#\n#..g...r...####\n#p.........####\n#####.###....##\nx####......###x\nxxx##########xx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n\nMessage 5\n\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxx###x\nxxxxxxxxx##o#x\nx#####xxx##.#x\n##...######.##\n##.#.g..r...##\n##...........#\n##p....r....##\n##..#.......##\n###.......#.##\nx########...##\nxxxxxxx######x\nxxxxxxxxxx##xx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\n\nMessage 6\n\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\n###########\n##p......##\n###.g....##\n##....r..o#\n##.r....###\n##...r....#\n#o........#\n####...####\n#####o#####\n###########\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\n\nMessage 7\n\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nx###########x\n##.p#o..#####\n##.g#..r..###\n###.#.....###\n#o..r.....ro#\n##........###\n#####...r..##\n#####....#.##\n#####.##.#.##\nx####......#x\nxx#########xx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\n\nMessage 8\n\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nx#####xxxxxxx\nx#...#####xxx\n##.#.##..####\n##...##.....#\n###......#..#\n###....r....#\n###..r......#\n###.....#.g.#\n###.##...r.p#\n###o......#.#\nxx###########\nxx###########\nxx###########\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\n\nMessage 9\n\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxx##########x\n######......#\n######.####.#\n#o..........#\n###.###...r.#\n###r####....#\n#.....r.....#\n#.#.....r#..#\n#.#..g.#....#\n#..p......#o#\n#############\nxxxxxxxxxxx##\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\n\nMessage 10\n\nxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxx\nxxxxxxx######xxxx\nxx#######...#xxxx\nxx#....##.g.#xxxx\n###.##.##..####xx\n###........######\n#...#...p....####\n#.#.#.####.#.####\n#.....r....#.####\n###r#.##.......##\nxx#...##.....#.##\nxx#o...r.......##\nxxx#####..#####xx\nxxxxxxx####xxxxxx\nxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxx\n\nMessage 11\n\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\nxxxx#####x\nxxx#...###\nxxx#g..###\nxxx#..####\nx###.h..##\nx#####..##\nx######l##\n###..#..##\n#o.rpj..##\n###..#####\n##########\nxxx#######\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\n\nMessage 12\n\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxx####x\n######..##\n##h.....##\n##.####l##\n##g####.##\n##.p....##\n##o..##.##\n##..#l.j##\n##r.#.####\n##..#h.l##\n##.k.##..#\n##.......#\n######.#.#\nxxx###...#\nxxxxx####x\nxxxxxxxxxx\nxxxxxxxxxx\n\nMessage 13\n\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxx#####\nxxxxxxxxxx#...##\nx##########.g.##\n#.............##\n#.l##..##.##h##x\n#..#..........#x\n#...p...r.r...o#\n###############x\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\n\nMessage 14\n\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxx#####\nxxxxxx#...#\nxxxxxx#.#.#\nx######...#\n#.g.l....##\n#........##\n##....r.###\n###r....###\n###.ph.o###\nx##########\nx##########\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\n\nMessage 15\n\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n##########xxxxx\n##############x\n##..........o#x\n##.g..##...###x\n###.#.##.....#x\nx##.#...h....##\nx##.###...#...#\nx##.##...r#...#\nx##....k....###\nx#######.p...##\nx#########.#.##\nxx########...##\nxxxxxxxx######x\nxxxxxxxxxxx##xx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n\nMessage 16\n\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nx##############\nx##...p......o#\nx##.#...r.###.#\nx##.k..#..###.#\nx##.k....####.#\nx##...r.......#\nx##.###.#######\nx##.......k..##\nx##.g...##.#.##\nxx########...##\nxxxxxxxx######x\nxxxxxxxxxxx##xx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n\nMessage Congratulations! You won!\n", [0, 3, 3, 3, 2, 3, 3, 0, 3, 0, 0, 0, 0, 1], "background pit:0,0,0,0,0,0,background wall:1,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,1,background goal:2,1,1,background:3,3,1,\n1,0,0,0,0,0,0,0,0,0,0,1,3,1,1,\n3,3,1,1,0,0,0,0,0,0,0,0,0,0,1,\n3,1,1,3,3,1,1,1,0,0,0,0,0,0,0,\n0,1,1,3,1,1,3,3,1,1,1,0,0,0,0,\n0,0,0,0,1,1,background gmarbstill:4,1,1,3,3,3,3,1,0,\n0,0,0,0,0,0,0,1,1,background playerstill:5,3,3,3,3,1,\n3,1,0,0,0,0,0,0,0,0,1,1,3,3,3,\n3,3,1,3,1,0,0,0,0,0,0,0,0,1,1,\n3,1,1,3,3,1,3,1,0,0,0,0,0,0,0,\n0,1,1,3,3,1,3,3,3,3,1,0,0,0,0,\n0,0,0,0,1,1,3,3,3,background rmarbstill:6,3,3,3,1,0,\n0,0,0,0,0,0,0,1,1,3,3,3,1,1,3,\n1,1,0,0,0,0,0,0,0,0,1,1,3,1,3,\n1,1,3,1,1,0,0,0,0,0,0,0,0,0,1,\n3,3,3,1,1,1,1,0,0,0,0,0,0,0,0,\n0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,\n", 7, "1627778376637.0903"] ], [ `gallery:cyber-lasso`, - ["title Cyber-Lasso\nauthor Alan Hazelden\nhomepage www.draknek.org\n\nnorepeat_action\n\nagain_interval 0.05\nrealtime_interval 0.05\n\n(verbose_logging)\n\nflickscreen 11x11\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\n#dddddd #ffffff\n11111\n10001\n10001\n10001\n11111\n\nElectricFloor\nLightBlue White\n00001\n00010\n00100\n01000\n10000\n\nElectricFloor1\nLightBlue White\n00001\n00010\n00100\n01000\n10000\n\nElectricFloor2\nLightBlue\n\nPowered\nLightBlue\n\nUnpowered\nWhite\n\nWasPowered\ntransparent\n\nHole\nBlack\n\nButton\nRed Grey\n10001\n00000\n00000\n00000\n10001\n\nCrate\nDarkGreen Green\n.....\n.111.\n.101.\n.111.\n.....\n\nElectricCrate1\nYellow\n.....\n.....\n..0..\n.....\n.....\n\n(ElectricCrate2\nOrange\n.....\n.....\n..0..\n.....\n.....)\n\nElectrifyingL\nYellow\n.....\n.....\n0....\n.....\n.....\n\nElectrifyingR\nYellow\n.....\n.....\n....0\n.....\n.....\n\nElectrifyingU\nYellow\n..0..\n.....\n.....\n.....\n.....\n\nElectrifyingD\nYellow\n.....\n.....\n.....\n.....\n..0..\n\nDisappearingCrate\nGreen\n.....\n.....\n..0..\n.....\n.....\n\nDisappearingPlayer\n#a46422\n.....\n.....\n..0..\n.....\n.....\n\nSquashedPlayer\n#a46422 #493c2b #000000 red\n....3\n.30..\n01110\n.2.2.\n3..3.\n\nWallNormal\nDarkGrey\n\nDoorUp\nDarkGrey #5a7bb6\n11111\n10001\n10001\n10001\n11111\n\nDoorDown\n#ffffff #dddddd\n11111\n1...1\n1.0.1\n1...1\n11111\n\nUpWhenPowered\ntransparent\n\nWalkway\n#dddddd #9d9e9e\n11111\n10001\n10001\n10001\n11111\n\nWalkwayStartL\n#9d9e9e\n....0\n....0\n....0\n....0\n....0\n\nWalkwayStartR\n#9d9e9e\n0....\n0....\n0....\n0....\n0....\n\nWalkwayStartU\n#9d9e9e\n.....\n.....\n.....\n.....\n00000\n\nWalkwayStartD\n#9d9e9e\n00000\n.....\n.....\n.....\n.....\n\nPlayerNormal\n#a46422 #493c2b #000000\n..0..\n.111.\n01110\n02220\n.2.2.\n\nPlayerHoldL\n#a46422 #493c2b #000000 orange\n..0..\n.111.\n3330.\n0222.\n.2.2.\n\nPlayerHoldR\n#a46422 #493c2b #000000 orange\n..0..\n.111.\n01110\n0222.\n.2.2.\n\nPlayerHoldU\n#a46422 #493c2b #000000 orange\n..00.\n.110.\n0111.\n0222.\n.2.2.\n\nPlayerHoldD\n#a46422 #493c2b #000000 orange\n..0..\n.111.\n0110.\n0232.\n.232.\n\n(RopeNextToPlayerR\n#a46422\n.....\n.....\n0....\n.....\n.....)\n\nPlayerAiming\n#a46422 #493c2b #000000\n..0.0\n.1110\n0111.\n0222.\n.2.2.\n\nPlayerDying\nyellow yellow yellow\n..0..\n.111.\n01110\n02220\n.2.2.\n\nLassoAboveHead1\nbrown orange\n.....\n..00.\n.0..0\n..001\n....1\n\nLassoAboveHead2\nbrown orange\n.....\n.000.\n0...0\n.0001\n....1\n\nLassoAboveHead3\nbrown orange\n.....\n.00..\n0..0.\n.00..\n...1.\n\nLassoAboveHead4\nbrown orange\n.00..\n0..0.\n0..0.\n.00..\n...1.\n\nLassoAboveHead5\nbrown orange\n.00..\n0..0.\n.00..\n..1..\n...1.\n\nLassoAboveHead6\nbrown orange\n.000.\n0...0\n.000.\n..1..\n...1.\n\nLassoAboveHead7\nbrown orange\n..00.\n.0..0\n..00.\n...1.\n...1.\n\nLassoAboveHead8\nbrown orange\n..00.\n.0..0\n.0..0\n..00.\n...1.\n\nLassoThrownL\nbrown orange\n.00..\n0..0.\n0..01\n0..0.\n.00..\n\nLassoThrownR\nbrown orange\n..00.\n.0..0\n10..0\n.0..0\n..00.\n\nLassoThrownU\nbrown orange\n.000.\n0...0\n0...0\n.000.\n..1..\n\nLassoThrownD\nbrown orange\n..1..\n.000.\n0...0\n0...0\n.000.\n\nLassoReturn\nbrown orange\n.000.\n0...0\n0...0\n0...0\n.000.\n\nLassoCaught\nbrown\n.000.\n0...0\n0...0\n0...0\n.000.\n\nRopeH\norange\n.....\n.....\n00000\n.....\n.....\n\nRopeV\norange\n..0..\n..0..\n..0..\n..0..\n..0..\n\nRopeUL\norange\n..0..\n..0..\n000..\n.....\n.....\n\nRopeUR\norange\n..0..\n..0..\n..000\n.....\n.....\n\nRopeDL\norange\n.....\n.....\n000..\n..0..\n..0..\n\nRopeDR\norange\n.....\n.....\n..000\n..0..\n..0..\n\nWireLR\n#ffffff #dddddd\n00000\n11111\n.....\n11111\n00000\n\nWireUD\n#ffffff #dddddd\n01.10\n01.10\n01.10\n01.10\n01.10\n\nWireUL\n#ffffff #dddddd\n01.10\n11.10\n...10\n11110\n00000\n\nWireUR\n#ffffff #dddddd\n01.10\n01.11\n01...\n01111\n00000\n\nWireDL\n#ffffff #dddddd\n00000\n11110\n...10\n11.10\n01.10\n\nWireDR\n#ffffff #dddddd\n00000\n01111\n01...\n01.11\n01.10\n\nWireULR\n#ffffff #dddddd\n01.10\n11.11\n.....\n11111\n00000\n\nWireDLR\n#ffffff #dddddd\n00000\n11111\n.....\n11.11\n01.10\n\nWireUDL\n#ffffff #dddddd\n01.10\n11.10\n...10\n11.10\n01.10\n\nWireUDR\n#ffffff #dddddd\n01.10\n01.11\n01...\n01.11\n01.10\n\nAndGate\nGrey Grey Red\n.000.\n00000\n02020\n00000\n.000.\n\nPower1\nYellow\n.....\n.....\n.0...\n.....\n.....\n\nPower2\nYellow\n.....\n.....\n.0.0.\n.....\n.....\n\nDone\ntransparent\n\nHere\ntransparent\n\nClaimed\ntransparent\n\nChanged\nred\n\nExit\ntransparent\n\nCheckpointTrigger\ntransparent\n\nReactorTrigger\ntransparent\n\nU\nred\n..0..\n.0.0.\n.....\n.....\n.....\n\nD\nred\n.....\n.....\n.....\n.0.0.\n..0..\n\nL\nred\n.....\n.0...\n0....\n.0...\n.....\n\nR\nred\n.....\n...0.\n....0\n...0.\n.....\n\nWallL\nDarkRed\n0....\n0....\n0....\n0....\n0....\n\nWallR\nDarkRed\n....0\n....0\n....0\n....0\n....0\n\nWallU\nDarkRed\n00000\n.....\n.....\n.....\n.....\n\nWallD\nDarkRed\n.....\n.....\n.....\n.....\n00000\n\nWallLR\nDarkRed\n0...0\n0...0\n0...0\n0...0\n0...0\n\nWallUD\nDarkRed\n00000\n.....\n.....\n.....\n00000\n\nWallUL\nDarkRed\n0....\n.....\n.....\n.....\n.....\n\nWallUR\nDarkRed\n....0\n.....\n.....\n.....\n.....\n\nWallDL\nDarkRed\n.....\n.....\n.....\n.....\n0....\n\nWallDR\nDarkRed\n.....\n.....\n.....\n.....\n....0\n\nWallDLR\nDarkRed\n.....\n.....\n.....\n.....\n0...0\n\nWallULR\nDarkRed\n0...0\n.....\n.....\n.....\n.....\n\nWallLUD\nDarkRed\n0....\n.....\n.....\n.....\n0....\n\nWallWireLR\nDarkGrey #61686c\n00000\n00000\n00000\n00000\n00000\n\nDangerL\n#be656d\n0....\n0....\n0....\n0....\n0....\n\nDangerR\n#be656d\n....0\n....0\n....0\n....0\n....0\n\nDangerU\n#be656d\n00000\n.....\n.....\n.....\n.....\n\nDangerD\n#be656d\n.....\n.....\n.....\n.....\n00000\n\nDangerLR\n#be656d\n0...0\n0...0\n0...0\n0...0\n0...0\n\nDangerUD\n#be656d\n00000\n.....\n.....\n.....\n00000\n\nReactor\n#ffffff #dddddd\n01.10\n11.11\n.....\n11.11\n01.10\n\nWarning1\nWhite Black\n01100\n01010\n01100\n01010\n01010\n\nWarning2\nWhite Black\n11100\n10001\n11001\n10001\n11101\n\nWarning3\nWhite Black\n10001\n01010\n11010\n01010\n01001\n\nWarning4\nWhite Black\n10111\n00010\n00010\n00010\n10010\n\nWarning5\nWhite Black\n00110\n01001\n01001\n01001\n00110\n\nWarning6\nWhite Black\n01100\n01010\n01100\n01010\n01010\n\n\n=======\nLEGEND\n=======\n\nPlayerHold = PlayerHoldL or PlayerHoldR or PlayerHoldU or PlayerHoldD\nPlayer = PlayerNormal or PlayerAiming or PlayerHold or DisappearingPlayer or PlayerDying\nDirection = U or D or L or R\nRope = RopeH or RopeV or RopeUL or RopeUR or RopeDL or RopeDR\nRopePullsL = RopeH or RopeUR or RopeDR\nRopePullsR = RopeH or RopeUL or RopeDL\nRopePullsU = RopeV or RopeDL or RopeDR\nRopePullsD = RopeV or RopeUL or RopeUR\n\n(RopeNextToPlayer = RopeNextToPlayerR)\n\nLassoAboveHead = LassoAboveHead1 or LassoAboveHead2 or LassoAboveHead3 or LassoAboveHead4 or LassoAboveHead5 or LassoAboveHead6 or LassoAboveHead7 or LassoAboveHead8\n\nWallWire = WallWireLR\nWall = WallNormal or WallWire\n\nSolid = Wall or Crate or DoorUp\nSolidUncatchable = Wall or DoorUp\nChain = Rope or LassoCaught or Player\nLassoThrown = LassoThrownL or LassoThrownR or LassoThrownU or LassoThrownD or LassoReturn\n\nWallCoverLR = WallL or WallR or WallLR\nWallCoverUD = WallU or WallD or WallUD\nWallCoverCorner = WallUL or WallUR or WallDL or WallDR or WallDLR or WallLUD or WallULR\n\nWallCover = WallCoverLR or WallCoverUD or WallCoverCorner\n\nDangerBorderLR = DangerL or DangerR or DangerLR\nDangerBorderUD = DangerU or DangerD or DangerUD\nDangerBorder = DangerBorderLR or DangerBorderUD\n\nWireL = WireLR or WireUL or WireDL or WireUDL or WireULR or WireDLR or WallWireLR\nWireR = WireLR or WireUR or WireDR or WireUDR or WireULR or WireDLR or WallWireLR\nWireU = WireUD or WireUL or WireUR or WireUDL or WireUDR or WireULR\nWireD = WireUD or WireDL or WireDR or WireUDL or WireUDR or WireDLR\nWire = WireL or WireR or WireU or WireD\n\nDoor = DoorUp or DoorDown\n\nWalkwayStart = WalkwayStartL or WalkwayStartR or WalkwayStartU or WalkwayStartD\n\nPowerTransfer = Button or ElectricFloor or Door or Walkway or WalkwayStart or Reactor\n\nElectrified = ElectricCrate1\n\nElectrifiable = Player or Crate\n\nElectrifyingDir = ElectrifyingL or ElectrifyingR or ElectrifyingU or ElectrifyingD\n\nChainUnder = Wire or PowerTransfer or AndGate\nChainUnderOver = Button or ElectricFloor\nChainOver = Electrifiable or ChainUnderOver\n\nDisappearing = DisappearingCrate or DisappearingPlayer\nSquashed = SquashedPlayer\n\nPowerLevel = Power1 or Power2\n\nElectricFloorCover = ElectricFloor1 or ElectricFloor2\n\nWarning = Warning1 or Warning2 or Warning3 or Warning4 or Warning5 or Warning6\n\n. = Background\n# = WallNormal\nP = PlayerNormal and DoorUp\n* = Crate\n! = ElectricFloor\no = Hole\n@ = Button\n_ = DoorDown\nn = DoorUp\n% = Button and Crate\n2 = AndGate\n& = Crate and ElectricFloor\n═ = WallWireLR\n$ = Reactor\nW = Warning1\nX = Exit and DoorUp\nz = ReactorTrigger and WireUD\n\n\n(ref http://unicode-search.net/unicode-namesearch.pl?term=box%20drawings)\n\n- = WireLR\n| = WireUD\n┐ = WireDL\n┤ = WireUDL\n┘ = WireUL\n┌ = WireDR\n├ = WireUDR\n└ = WireUR\n┬ = WireDLR\n┴ = WireULR\n\n← = WalkwayStartL and Hole\n→ = WalkwayStartR and Hole\n↑ = WalkwayStartU and Hole\n↓ = WalkwayStartD and Hole\n\n\n=======\nSOUNDS\n=======\n\nLassoAboveHead create 86845907\nPlayerAiming destroy 19629107\nsfx0 81428909 (throw lasso)\nLassoCaught create 1688102\nLassoCaught destroy 11489509\nPlayer move 75749507\nsfx1 12358709 (bending rope)\nWasPowered create 56141902 (power on)\nWasPowered destroy 25196302 (power off)\nDisappearing create 96367909\nPlayerDying create 9797709\nPlayerDying destroy 82870709\n\nUndo 77836307\nRestart 41565108\n\nEndLevel 42704508\nEndGame 10304308\n\n(\nTodo:\ntweak electrocution\ngetting crushed\npower on/off triggers too much\nending sound triggers too late\n)\n\n\n================\nCOLLISIONLAYERS\n================\n\nCheckpointTrigger, ReactorTrigger\nDirection, Done, Here\nClaimed\nBackground\nElectricFloor, UpWhenPowered\nWasPowered\nPowered, Unpowered\nElectricFloorCover, Warning, Exit\nHole, Button, Wire, Door, AndGate, Reactor\nDangerBorderLR, WalkwayStart, PowerLevel\nDangerBorderUD, Walkway\nPlayer, PlayerDying, Wall, Crate, Disappearing, Squashed\nWallCoverLR, Electrified\nWallCoverUD, WallCoverCorner\nLassoAboveHead\nLassoThrown, LassoCaught, Rope\nElectrifyingL\nElectrifyingR\nElectrifyingU\nElectrifyingD\nChanged\n\n======\nRULES\n======\n\n([ Changed ] -> [])\n\n([ RopeNextToPlayer ] -> [])\n\n(Lasso aiming animation)\n\n[ up Player Exit ] -> [ Player Exit ] win\n\nright [ Warning1 | | | | | ] -> [ Warning1 | Warning2 | Warning3 | Warning4 | Warning5 | Warning6 ]\n\nlate up [ PlayerAiming | no LassoAboveHead ] -> [ PlayerAiming | LassoAboveHead1 ]\nlate up [ no PlayerAiming | LassoAboveHead ] -> [ | ]\n\nup [ moving Player | LassoAboveHead ] -> [ moving Player | action LassoAboveHead ]\n\n[ stationary LassoAboveHead1 ] -> [ action LassoAboveHead2 ]\n[ stationary LassoAboveHead2 ] -> [ action LassoAboveHead3 ]\n[ stationary LassoAboveHead3 ] -> [ action LassoAboveHead4 ]\n[ stationary LassoAboveHead4 ] -> [ action LassoAboveHead5 ]\n[ stationary LassoAboveHead5 ] -> [ action LassoAboveHead6 ]\n[ stationary LassoAboveHead6 ] -> [ action LassoAboveHead7 ]\n[ stationary LassoAboveHead7 ] -> [ action LassoAboveHead8 ]\n[ stationary LassoAboveHead8 ] -> [ action LassoAboveHead1 ]\n\n(Pressing action)\n\n[ action PlayerHold ] [ LassoCaught Crate ] -> [ PlayerHold ] [ LassoReturn action Crate Changed ] again\n\n[ action PlayerAiming ] -> [ PlayerNormal ]\n[ action PlayerNormal ] -> [ PlayerAiming ]\n\n(Throwing lasso)\n\nleft [ > PlayerAiming | no SolidUncatchable ] -> [ PlayerHoldL | L action LassoThrownL ] sfx0 again\nright [ > PlayerAiming | no SolidUncatchable ] -> [ PlayerHoldR | R action LassoThrownR ] sfx0 again\nup [ > PlayerAiming | no SolidUncatchable ] -> [ PlayerHoldU | U action LassoThrownU ] sfx0 again\ndown [ > PlayerAiming | no SolidUncatchable ] -> [ PlayerHoldD | D action LassoThrownD ] sfx0 again\n\nleft [ L stationary LassoThrownL | no SolidUncatchable ] -> [ RopeH | L action LassoThrownL ] again\nright [ R stationary LassoThrownR | no SolidUncatchable ] -> [ RopeH | R action LassoThrownR ] again\nup [ U stationary LassoThrownU | no SolidUncatchable ] -> [ RopeV | U action LassoThrownU ] again\ndown [ D stationary LassoThrownD | no SolidUncatchable ] -> [ RopeV | D action LassoThrownD ] again\n\n[ LassoThrown stationary Crate no LassoReturn ] -> [ action LassoCaught Crate no Direction ]\n\n[ Player | | | | | LassoThrown Direction ] -> [ Player | | | | | action LassoThrown ]\n\n([ Player | | | | | | | | LassoThrown Direction ] -> [ Player | | | | | | | | action LassoThrown ])\n\n(Moving while attached)\n\n[ > Player | Hole no Walkway ] -> cancel\n\n[ > Player Hole no Walkway ] -> cancel\n\n[ moving Player ] [ LassoCaught Crate ] [ Rope ] -> [ moving Player action Done ] [ moving LassoCaught action Crate ] [ moving Rope ]\n\n[ moving Player | LassoCaught Crate ] -> [ moving Player action Done | moving LassoCaught action Crate ]\n\n[ > Player | stationary Solid ] -> cancel\n\nstartloop\n\n(Start loop)\n\nleft [ action Done | RopePullsL no Done ] -> [ < Done | RopePullsL Here ]\nright [ action Done | RopePullsR no Done ] -> [ < Done | RopePullsR Here ]\nup [ action Done | RopePullsU no Done ] -> [ < Done | RopePullsU Here ]\ndown [ action Done | RopePullsD no Done ] -> [ < Done | RopePullsD Here ]\n[ action Done | LassoCaught no Done ] -> [ < Done | LassoCaught Here ]\n\n(Check for collisions)\n\n[ stationary Here > Chain | stationary Solid ] -> [ action Here > Chain | Solid ] sfx1 (set 'action Here' on collision)\n\n[ < Done | action Here > Chain ] -> cancel\n\n[ action Here ] [ Done > Chain | moving Done ] -> cancel\n\n[ action Here ] [ moving Done ] [ Chain no Done ] -> [ action Here ] [ moving Done ] [ moving Chain ] (update movement of future parts of the chain)\n\n(Handle movement)\n\nleft [ moving Done down RopeUL | action Here ] -> cancel\nleft [ moving Done up RopeDL | action Here ] -> cancel\n\nleft [ moving Done down RopeH | action Here ] -> [ moving Done down RopeUR | action Here ]\nleft [ moving Done down RopeDL | action Here ] -> [ moving Done down RopeV | action Here ]\nleft [ moving Done up RopeH | action Here ] -> [ moving Done up RopeDR | action Here ]\nleft [ moving Done up RopeUL | action Here ] -> [ moving Done up RopeV | action Here ]\n\nleft [ moving Done down Chain | action Here < RopeH ] -> [ moving Done down Chain | action Here < RopeDL ]\nleft [ moving Done down Chain | action Here < RopeUR ] -> [ moving Done down Chain | action Here < RopeV ]\nleft [ moving Done up Chain | action Here < RopeH ] -> [ moving Done up Chain | action Here < RopeUL ]\nleft [ moving Done up Chain | action Here < RopeDR ] -> [ moving Done up Chain | action Here < RopeV ]\n\nright [ moving Done down RopeUR | action Here ] -> cancel\nright [ moving Done up RopeDR | action Here ] -> cancel\n\nright [ moving Done down RopeH | action Here ] -> [ moving Done down RopeUL | action Here ]\nright [ moving Done down RopeDR | action Here ] -> [ moving Done down RopeV | action Here ]\nright [ moving Done up RopeH | action Here ] -> [ moving Done up RopeDL | action Here ]\nright [ moving Done up RopeUR | action Here ] -> [ moving Done up RopeV | action Here ]\n\nright [ moving Done down Chain | action Here < RopeH ] -> [ moving Done down Chain | action Here < RopeDR ]\nright [ moving Done down Chain | action Here < RopeUL ] -> [ moving Done down Chain | action Here < RopeV ]\nright [ moving Done up Chain | action Here < RopeH ] -> [ moving Done up Chain | action Here < RopeUR ]\nright [ moving Done up Chain | action Here < RopeDL ] -> [ moving Done up Chain | action Here < RopeV ]\n\nup [ moving Done left RopeUR | action Here ] -> cancel\nup [ moving Done right RopeUL | action Here ] -> cancel\n\nup [ moving Done left RopeV | action Here ] -> [ moving Done left RopeDR | action Here ]\nup [ moving Done left RopeUL | action Here ] -> [ moving Done left RopeH | action Here ]\nup [ moving Done right RopeV | action Here ] -> [ moving Done right RopeDL | action Here ]\nup [ moving Done right RopeUR | action Here ] -> [ moving Done right RopeH | action Here ]\n\nup [ moving Done left Chain | action Here < RopeV ] -> [ moving Done left Chain | action Here < RopeUL ]\nup [ moving Done left Chain | action Here < RopeDR ] -> [ moving Done left Chain | action Here < RopeH ]\nup [ moving Done right Chain | action Here < RopeV ] -> [ moving Done right Chain | action Here < RopeUR ]\nup [ moving Done right Chain | action Here < RopeDL ] -> [ moving Done right Chain | action Here < RopeH ]\n\ndown [ moving Done left RopeDR | action Here ] -> cancel\ndown [ moving Done right RopeDL | action Here ] -> cancel\n\ndown [ moving Done left RopeV | action Here ] -> [ moving Done left RopeUR | action Here ]\ndown [ moving Done left RopeDL | action Here ] -> [ moving Done left RopeH | action Here ]\ndown [ moving Done right RopeV | action Here ] -> [ moving Done right RopeUL | action Here ]\ndown [ moving Done right RopeDR | action Here ] -> [ moving Done right RopeH | action Here ]\n\ndown [ moving Done left Chain | action Here < RopeV ] -> [ moving Done left Chain | action Here < RopeDL ]\ndown [ moving Done left Chain | action Here < RopeUR ] -> [ moving Done left Chain | action Here < RopeH ]\ndown [ moving Done right Chain | action Here < RopeV ] -> [ moving Done right Chain | action Here < RopeDR ]\ndown [ moving Done right Chain | action Here < RopeUL ] -> [ moving Done right Chain | action Here < RopeH ]\n\n[ Here > Chain | Claimed ] -> cancel\n[ Here > Chain | ] -> [ Here > Chain | Claimed ]\n\n[ moving Done ] -> [ Done ]\n\n[ Here ] -> [ action Done ]\n\n(End loop)\n\nendloop\n\n[ Claimed ] -> []\n[ Here ] -> []\n[ Done ] -> []\n\nlate [ Player Rope ] -> cancel\nlate [ Player LassoCaught ] -> cancel\n\n([ left Chain ] -> [ L action Chain ]\n[ right Chain ] -> [ R action Chain ]\n[ up Chain ] -> [ U action Chain ]\n[ down Chain ] -> [ D action Chain ]\n[ Direction moving Crate ] -> [ Direction Crate ])\n\n[ moving LassoCaught Crate ] -> [ moving LassoCaught moving Crate ]\n\n(Pull the end of the lasso towards the player by one tile)\n\n[ stationary LassoThrown Direction ] -> [ LassoThrown ] again\n\nleft [ stationary LassoThrown | RopePullsL ] -> [ > LassoThrown | ] again\nright [ stationary LassoThrown | RopePullsR ] -> [ > LassoThrown | ] again\nup [ stationary LassoThrown | RopePullsU ] -> [ > LassoThrown | ] again\ndown [ stationary LassoThrown | RopePullsD ] -> [ > LassoThrown | ] again\n\n[ stationary LassoThrown | Player ] -> [ | PlayerNormal no Direction ]\n\n[ LassoThrown Player ] -> [ PlayerNormal ]\n\n[ > Player | ] -> [ > Player Changed | Changed ]\n[ > LassoCaught | ] -> [ > LassoCaught Changed | Changed ]\n\n(Holes)\n\nlate [ Disappearing ] -> [] again\n\nlate [ Crate Hole no Walkway no LassoCaught ] -> [ DisappearingCrate Hole ] again\nlate [ DisappearingCrate ] [ LassoReturn ] -> [ Crate ] [ LassoReturn ]\n\nlate [ Player Hole no Walkway no PlayerHold ] -> [ DisappearingPlayer Hole ]\n\n(Squashing)\n\nlate [ Player DoorUp Changed ] -> [ SquashedPlayer DoorUp ]\n\n(Add graphics)\n\nlate left [ PlayerHold | RopePullsL ] -> [ Claimed PlayerHoldL | RopePullsL ]\nlate right [ PlayerHold | RopePullsR ] -> [ Claimed PlayerHoldR | RopePullsR ]\nlate up [ PlayerHold | RopePullsU ] -> [ Claimed PlayerHoldU | RopePullsU ]\nlate down [ PlayerHold | RopePullsD ] -> [ Claimed PlayerHoldD | RopePullsD ]\n\nlate left [ PlayerHold no Claimed | LassoCaught ] -> [ PlayerHoldL | LassoCaught ]\nlate right [ PlayerHold no Claimed | LassoCaught ] -> [ PlayerHoldR | LassoCaught ]\nlate up [ PlayerHold no Claimed | LassoCaught ] -> [ PlayerHoldU | LassoCaught ]\nlate down [ PlayerHold no Claimed | LassoCaught ] -> [ PlayerHoldD | LassoCaught ]\n\nlate [ Claimed ] -> []\n\n(Draw wall edges)\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\nleft [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallLUD | WallUD ]\nup [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallULR | WallLR ]\n\nright [ WallD | Wall no WallCover ] -> [ WallD | Wall WallDL ]\nleft [ WallD | Wall no WallCover ] -> [ WallD | Wall WallDR ]\n\nright [ WallU | Wall no WallCover ] -> [ WallU | Wall WallUL ]\nleft [ WallU | Wall no WallCover ] -> [ WallU | Wall WallUR ]\n\n(Draw electric floor)\n\nleft [ ElectricFloor no DangerBorderLR | no ElectricFloor ] -> [ ElectricFloor DangerL | ]\nright [ ElectricFloor no DangerBorderLR | no ElectricFloor ] -> [ ElectricFloor DangerR | ]\nright [ ElectricFloor DangerL | no ElectricFloor ] -> [ ElectricFloor DangerLR | ]\n\nup [ ElectricFloor no DangerBorderUD | no ElectricFloor ] -> [ ElectricFloor DangerU | ]\ndown [ ElectricFloor no DangerBorderUD | no ElectricFloor ] -> [ ElectricFloor DangerD | ]\ndown [ ElectricFloor DangerU | no ElectricFloor ] -> [ ElectricFloor DangerUD | ]\n\n[ ElectricFloor no Powered ] -> [ ElectricFloor no ElectricFloorCover ]\n\n[ Player no Changed ] [ ElectricFloor Powered no ElectricFloorCover no Claimed ] -> [ Player ] [ ElectricFloor Powered ElectricFloor1 Claimed ]\n[ Player no Changed ][ ElectricFloor Powered ElectricFloor1 no Claimed ] -> [ Player ] [ ElectricFloor Powered ElectricFloor2 Claimed ]\n[ Player no Changed ][ ElectricFloor Powered ElectricFloor2 no Claimed ] ->[ Player ] [ ElectricFloor Powered no ElectricFloor Claimed ]\n\nlate [ Claimed ] -> []\n\n(Power flow)\n\nlate [ Changed no ChainUnderOver ] -> []\n\nlate [ Changed Electrifiable | no Changed Electrifiable ] -> [ Changed Electrifiable | Changed Electrifiable ]\n+ late [ Changed ChainUnder | no Changed ChainUnder ] -> [ Changed ChainUnder | Changed ChainUnder ]\n\nlate [ Changed Powered ] -> [ Changed ]\nlate [ Changed Walkway ] -> [ Changed ]\nlate [ PowerLevel ] -> []\nlate [ Changed Electrified ] -> [ Changed ]\nlate [ Changed ElectrifyingDir ] -> [ Changed ]\n\nlate [ Button Crate ] -> [ Button Crate Powered ]\nlate [ Button Player ] -> [ Button Player Powered ]\n\nstartloop\n\nlate left [ WireL no Powered | Powered ] -> [ WireL Powered | Powered ]\nlate right [ WireR no Powered | Powered ] -> [ WireR Powered | Powered ]\nlate up [ WireU no Powered | Powered ] -> [ WireU Powered | Powered ]\nlate down [ WireD no Powered | Powered ] -> [ WireD Powered | Powered ]\n\nlate left [ WireL Powered no Claimed | AndGate no Claimed ] -> [ WireL Powered Claimed | AndGate Claimed ]\nlate right [ WireR Powered no Claimed | AndGate no Claimed ] -> [ WireR Powered Claimed | AndGate Claimed ]\nlate up [ WireU Powered no Claimed | AndGate no Claimed ] -> [ WireU Powered Claimed | AndGate Claimed ]\nlate down [ WireD Powered no Claimed | AndGate no Claimed ] -> [ WireD Powered Claimed | AndGate Claimed ]\n\nlate left [ WireL Powered | no Powered no AndGate ] -> [ WireL Powered | Powered ]\nlate right [ WireR Powered | no Powered no AndGate ] -> [ WireR Powered | Powered ]\nlate up [ WireU Powered | no Powered no AndGate ] -> [ WireU Powered | Powered ]\nlate down [ WireD Powered | no Powered no AndGate ] -> [ WireD Powered | Powered ]\n\nlate [ AndGate Power1 Claimed ] -> [ AndGate Power2 Powered ]\nlate [ AndGate no PowerLevel Claimed ] -> [ AndGate Power1 no Powered ]\nlate [ AndGate Claimed ] -> [ AndGate no Powered ]\n\nlate [ PowerTransfer Powered | PowerTransfer no Powered ] -> [ PowerTransfer Powered | PowerTransfer Powered ]\n\nlate left [ WalkwayStartL Powered | Hole no WalkwayStart ] -> [ WalkwayStartL Powered | WalkwayStartL Hole ]\nlate right [ WalkwayStartR Powered | Hole no WalkwayStart ] -> [ WalkwayStartR Powered | WalkwayStartR Hole ]\nlate up [ WalkwayStartU Powered | Hole no WalkwayStart ] -> [ WalkwayStartU Powered | WalkwayStartU Hole ]\nlate down [ WalkwayStartD Powered | Hole no WalkwayStart ] -> [ WalkwayStartD Powered | WalkwayStartD Hole ]\n\nlate [ WalkwayStart Powered ] -> [ WalkwayStart Walkway Powered ]\n\nlate [ Electrifiable no Electrified ElectricFloor Powered ] -> [ Electrifiable Electrified ElectricFloor Powered ]\n\nlate [ Electrifiable Electrified | Electrifiable no Electrified ] -> [ Electrifiable Electrified | Electrifiable Electrified ]\n\nlate [ Electrifiable Electrified ElectricFloor no Powered ] -> [ Electrifiable Electrified ElectricFloor Powered ]\n\nlate [ Electrified LassoCaught ] [ Player ] -> [ Electrified LassoCaught ] [ Player Electrified ]\nlate [ LassoCaught ] [ Electrified Player ] -> [ Electrified LassoCaught ] [ Player Electrified ]\n\nendloop\n\nlate [ Claimed ] -> []\n\nlate [ Door Powered no UpWhenPowered no CheckpointTrigger ] [ Player no Button no PlayerHold ] -> [ Door Powered CheckpointTrigger ] [ Player ] checkpoint\n\nlate [ WalkwayStart Powered no CheckpointTrigger ] [ Player no Button no PlayerHold ] -> [ WalkwayStart Powered CheckpointTrigger ] [ Player ] checkpoint\n\nlate left [ Hole | WalkwayStartL ] -> [ Hole | ]\nlate right [ Hole | WalkwayStartR ] -> [ Hole | ]\nlate up [ Hole | WalkwayStartU ] -> [ Hole | ]\nlate down [ Hole | WalkwayStartD ] -> [ Hole | ]\n\nlate [ Wire no Powered ] -> [ Wire Unpowered ]\nlate [ PowerTransfer no Powered ] -> [ PowerTransfer Unpowered ]\n\nlate [ Door Powered UpWhenPowered ] -> [ DoorUp Powered UpWhenPowered ]\nlate [ Door no Powered UpWhenPowered ] -> [ DoorDown UpWhenPowered ]\nlate [ Door Powered no UpWhenPowered ] -> [ DoorDown Powered ]\nlate [ Door no Powered no UpWhenPowered ] -> [ DoorUp ]\n\n(Electrocute)\n\nlate left [ Electrified | Electrified ] -> [ Electrified ElectrifyingL | Electrified ElectrifyingR ]\nlate up [ Electrified | Electrified ] -> [ Electrified ElectrifyingU | Electrified ElectrifyingD ]\n\nlate [ PlayerDying Electrified no Claimed ] -> [ PlayerNormal Electrified Claimed ]\nlate [ Player Electrified no Claimed ] -> [ PlayerDying Electrified Claimed ]\n\nlate [ Player Electrified ] -> [ Player ]\n\nlate [ Player Claimed ] -> again\n\nlate [ Claimed ] -> []\n\nlate [ Player DoorUp no Changed no SquashedPlayer ] -> [ Player DoorDown ]\n\nlate [ Changed ] -> []\n\nlate [ Powered Reactor ] -> win\n\nlate [ ReactorTrigger Player ] [ ReactorTrigger ] -> checkpoint\nlate [ ReactorTrigger Player ] [ ReactorTrigger ] -> message The reactor core! I have to take it down by any means necessary.\nlate [ ReactorTrigger Player ] [ ReactorTrigger no Player ] -> [ ReactorTrigger Player ] []\n\nlate [ ReactorTrigger Player ] -> [ Player ]\n\nlate [ Powered no WasPowered ] -> [ Powered WasPowered ]\nlate [ no Powered WasPowered ] -> []\n\n==============\nWINCONDITIONS\n==============\n\n(all button on Crate\nno LassoCaught\nno Rope\nno LassoReturn)\n\n=======\nLEVELS\n=======\n\n(############################################\n#.........##.........##..!......##.........#\n#...!!!!..##.......┌-----!......##.........#\n#....*|...##.......|.##..!......##.........#\n#.!.!!!!!!##!!!!!!!!!##.........##.........#\n#.!--┘.|..##.|..|....##.!!!.....##.........#\n#.&...!!!!##.!..|....##..|...!!!##.........#\n#.*.....└----!..├-@..##..|...!..##.........#\n#!&!......##.!..|....##..└-┐.!..##.........#\n#.........##....|....##....|.!..##.........#\n################n##########n#!..############\n################n##########n#!..############\n############....|....##....|.!......oo.....#\n############@---2---@##.@..|.!-----┐oo.....#\n############.........##.|..|.!.....└!!--%..#\n############@---┬---@##.2--┘.!!!##..oo..|..#\n############...o↓o...##.|.......##..oo..|..#\n############ooooooooooo.|.oo#...##..oooo↓oo#\n############oo.....oooo.|.oo#!!!##..ooooooo#\n############oo.....oooo.|.oo#.|.##.........#\n############oo.....ooooo↓ooo#.|.##.........#\n################.ooooooooooo##|##########.##\n################.ooooooooooo##|##########.##\n#....@----------┐oooooooooooo.|.##┌----!...#\n#.oooooooooooooo↓oooooo...ooo.├---┘...o!...#\n#.ooooooooooooooooooooo.@.ooo!&!##....o!┐..#\n#.oo...oooooooo...ooooo.|.ooo...####..oo|###\n#*oo.#.ooooooo←-@.oooooo|oooo...####..oo|###\n#.oo...oooooooo...ooo##o|o##########..oo|###\n#.oooooooooooooo.oooo##.|.......##....o!┘..#\n#.oooooooooooooo.....nn-┴-------nn┐...o!.*.#\n#.ooooooooooooooooooo##.........##└----!-┐.#\n###########################n#############n##\n###########################n#############n##\n#.........##.........##....|....##w........#\n#.......*.##.........##..@-2-@..##.........#\n#.........##......┌--nn-┐.......##o!!!o!!!o#\n#.........##...%..|..##.|.......##o!%ooo%!o#\n#p...┌--@.##...|..|..##!!!!#!!!!##o!!!!!!!o#\n#....|....##!!!!!!!!!##....#.|..##.........#\n#....|....##.........##.%--═-┘..##.!!!-!!!.#\n#....|....##.........##....#..*.##.!%!-!%!.#\n#....|....##.........##....#....##.!!!-!!!.#\n#####n########n##############..###.|||.|||.#\n#####n########n##############..###.|||.|||.#\n#.........##..|..oo..##...ooo...##.!!!-!!!.#\n#....*....##..|..oo..##...ooo...##.!%!-!%!.#\n#.........##..└@.oo..##...ooo...##.!!!-!!!.#\n#.........##.....oo..##...ooo.@.##.|||.|||.#\n#.........##.....oo..##...ooo.|.##.|||.|||.#\n#oooooooooooooooooo.......oo←-┘.##.!!!-!!!.#\n#oooooo↑oooooo↑oooo.......oo←...##.!%!-!%!.#\n#..@---┘......|..oo..##...ooo...##.!!!┬!!!.#\n#.............@..oo..##...ooo...##...|||...#\n#################oo##################|||####\n#####################################|||####\n#.........##.........##.........##@%!┴┴┘...#\n#.........##.........##.........##%@!......#\n#.........##.........##.........##@%!.*.*..#\n#.........##.........##.........##!!!......#\n#.........##.........##.........##ooooooooo#\n#.........##.........##.........##ooooooooo#\n#.........##.........##.........##oo!!!!!oo#\n#.........##.........##.........##oo!┴┬┴!oo#\n#.........##.........##.........##oo!┬$┬!oo#\n##################################oo!┤|├!oo#)\n\n###########################x#####\n#.........##.........##....|....#\n#.......*.##.........##..@-2-@..#\n#.........##......┌--nn-┐.......#\n#.........##...%..|..##.|.......#\np....┌--@.##...|..|..##!!!!#!!!!#\n#....|....##!!!!!!!!!##....#.|..#\n#....|....##.........##.%--═-┘..#\n#....|....##.........##....#..*.#\n#....|....##.........##....#....#\n#####n########n##############..##\n#####n########n##############..##\n#.........##..|..oo..##...ooo...#\n#....*....##..|..oo..##...ooo...#\n#.........##..└@.oo..##...ooo...#\n#.........##.....oo..##...ooo.@.#\n#.........##.....oo..##...ooo.|.#\n#oooooooooooooooooo.......oo←-┘.#\n#oooooo↑oooooo↑oooo.......oo←...#\n#..@---┘......|..oo..##...ooo...#\n#.............@..oo..##...ooo...#\n#################oo##############\n\n#######################################################\n#.........##.........##..!......##.........##.........#\n#...!!!!!.##.......┌-----!......##.........##.........#\n#....*|...##.......|.##..!......##.........##.........#\n#.!.!!!!!!##!!!!!!!!!##.........##.........##.........#\n#.!--┘.|..##.|..|....##.!!!.....##.........##.........#\n#.&..!!!!!##.!..|....##..|...!!!##.........##.........#\n#.*.....├----!..├-@..##..|...!..##.........##.........#\n#!&!..!!!!##.!..|....##..└-┐.!..##.........##.........#\n#.........##....|....##....|.!..##.........##.........#\n################n##########n#!..#######################\n################n##########n#!..#######################\n############....|....##....|.!......oo.....##.........#\n############@---2---@##.@..|.!-----┐oo.....##.........#\n############.........##.|..|.!.....└!!--%..##.........#\n############@---┬---@##.2--┘.!!!##..oo..|..##.........#\n############...o↓o...##.|.......##..oo..|..##.........#\n############ooooooooooo.|.oo#...##..oooo↓oo#═.........#\n############oo.....oooo.|.oo#!!!##..ooooooo##.........#\n############oo.....oooo.|.oo#.|.##.........##.........#\n############oo.....ooooo↓ooo#.|.##.........##.........#\n################.ooooooooooo##|##########.#######n#####\n################.ooooooooooo##|##########.#######x#####\n#....@----------┐oooooooooooo.|.##┌----!...##%!--┘..!%#\n#.oooooooooooooo↓oooooo...ooo.├---┘...o!...##!!!!!..!!#\n#.ooooooooooooooooooooo.@.ooo!&!##....o!┐..##!.|.!..|.#\n#.oo...oooooooo...ooooo.|.ooo...####..oo|####!.!.!.!|.#\n#*oo.#.ooooooo←-@.oooooo|oooo...####..oo|####!.!.!-!!!#\n#.oo...oooooooo...ooo##o|o##########..oo|####!.!.!.!..#\n#.oooooooooooooo.oooo##.|.......##....o!┘..##!.!...|..#\n#.oooooooooooooo.....nn-┴-------nn┐...o!.*┌nn..!!!!!!!#\n#.ooooooooooooooooooo##.........##└----!--┘##!!!....!%#\n###########################p###########################\n\n######################\n#....................#\n#....................#\n#oooooooooooo!!!o!!!oo\n#ooo↑oooooooo!%ooo%!oo\n#oo.|.ooooooo!!!!!!!oo\n#oo.|.oooo##.........#\n#o!!!!!!!o##.!!!-!!!.#\n#o!....@!o##.!%!-!%!.#\n#o!!!!!!!o##.!!!-!!!.#\n#oooo...oo##.|||.|||.#\n#oooo...oo##.|||.|||.#\n#oo┌--┐...##.!!!-!!!.#\n#oo@..|...##.!%!-!%!.#\n#oo###n#####.!!!-!!!.#\n#oo.......##.|||.|||.#\n#oo.......##.|||.|||.#\n#oo..*.*..##.!!!-!!!.#\n#oo.......##.!%!-!%!.#\n#oo.......##.!!!┬!!!.#\n#oo.......##...|||...#\n######p########|||####\n######n########zzz####\n#%!---┘.!%##@%!┴┴┘...#\n#!!!!!..!!##%@!......#\n#!.|.!..|.##@%!.*.*..#\n#!.!.!.!|.##!!!......#\n#!.!.!-!!!##ooooooooo#\n#!.!.!.!..##ooooooooo#\n#!.!...|..##oo!!!!!oo#\nn..!!!!!!!##oo!┴┬┴!oo#\n#!!!....!%##oo!┬$┬!oo#\n############oo!┤|├!oo#\n\n(#######################################################\n#.........##.....!...##.........##...#.....##.........#\n#...!!!!!.##.....!-┬-nn.........##...#.....##.........#\n#....*|...##...┌-!.|.##.........##.*.#...@.##.........#\n#.!.!!!!!!##...|.##|.##.........##...#...|.##.........#\n#.!-┬┘.|..##...@.##|.##.!!!.....##.@-n-@.2.##.........#\n#.&.|!!!!!##.!...##|.##..|...!!!##...#...|.##.........#\n#.*.|...├----!...!.|.##..|...!..##.*.#...@.##.........#\n#!!!┘.!!!!##.!--┐!-┘.##..└┐..!..##...#.....##.........#\n#.........##....|!...##...|..!..##...#.....##.........#\n################n#########n##!..#######################)\n\n\nmessage BOOM\nmessage You will be remembered as a hero\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",0,"tick","tick","tick",0,"tick","tick","tick","tick","tick","tick",0,"tick","tick","tick",4,"tick","tick","tick","tick","tick","tick","tick","tick","tick",0,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick",0,"tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick",2,"tick","tick","tick",3,"tick","tick","tick",4,"tick","tick",0,"tick","tick","tick","tick","tick","tick",3,"tick","tick","tick","tick","tick",0,"tick","tick","tick","tick",3,"tick","tick","tick","tick","tick","tick","tick","tick",3,"tick","tick","tick","tick","tick","tick",0,"tick","tick","tick","tick",0,"tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",4,"tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background walldr wallnormal:0,background wallnormal wallr:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background wallnormal wallur:2,\n0,1,1,1,1,1,1,background walld wallnormal wallr:3,background doorup unpowered:4,background wallnormal wallr wallu:5,2,background walld wallnormal:6,background:7,7,background hole:8,8,8,8,8,8,8,8,\n8,8,8,8,8,8,8,8,8,8,background wallnormal wallu:9,6,background button crate powered waspowered:10,background dangerl dangeru electricfloor powered waspowered:11,background dangerlr electricfloor powered waspowered:12,12,12,12,background dangerd dangerlr electricfloor powered waspowered:13,7,background dangerl dangerud electricfloor powered waspowered:14,9,\n6,7,7,8,8,8,8,background dangerl dangeru electricfloor unpowered:15,background dangerlr electricfloor unpowered:16,background dangerd dangerl electricfloor unpowered:17,8,8,8,8,8,8,8,8,8,8,8,9,\n6,background dangerlr dangeru electricfloor powered waspowered:18,background dangerd electricfloor powered waspowered:19,7,7,7,7,7,7,background dangerud electricfloor powered waspowered:20,9,6,7,7,8,8,7,7,background dangerud electricfloor unpowered:21,7,21,8,\n8,background unpowered wiredr:22,background button unpowered:23,background walll wallnormal wallud:24,7,7,7,7,7,7,9,6,background powered waspowered wirelr:25,20,background powered waspowered wireud:26,18,12,12,12,background dangerl electricfloor powered waspowered:27,background dangerd dangerr electricfloor powered waspowered:28,9,\n6,7,7,8,background hole unpowered walkwaystartu:29,background unpowered wireud:30,30,21,7,21,8,8,background unpowered wirelr:31,7,background wallnormal wallud:32,7,7,7,7,7,7,9,\n6,25,20,7,7,7,7,7,20,7,9,6,7,7,8,8,7,7,21,7,21,7,\n7,31,7,background wallnormal wallr wallud:33,7,background playernormal:34,7,7,7,7,5,3,25,background dangerr dangeru electricfloor powered waspowered:35,12,12,12,13,7,20,7,9,\n6,7,7,8,8,8,8,21,7,21,7,7,background unpowered wiredl:36,30,4,7,7,7,7,7,7,background checkpointtrigger doordown powered waspowered:37,\n37,background powered waspowered wireul:38,7,7,7,25,7,7,20,7,9,6,7,7,8,8,8,8,21,23,21,7,\n7,7,7,24,7,7,background crate:39,7,7,7,background walll wallnormal wallu:40,background walld walll wallnormal:41,7,7,7,18,27,13,26,20,7,9,\n6,7,7,8,8,8,8,background dangerr dangeru electricfloor unpowered:42,16,background dangerd dangerr electricfloor unpowered:43,8,8,7,7,32,7,7,39,7,7,7,9,\n6,18,background dangerd dangerl electricfloor powered waspowered:44,26,26,20,7,7,background dangeru electricfloor powered waspowered:45,13,9,6,7,7,8,8,8,8,8,8,8,8,\n8,7,7,32,7,7,7,7,7,7,9,6,10,background dangerr dangerud electricfloor powered waspowered:46,7,7,46,7,7,46,10,9,\n6,7,7,8,8,8,40,background walll wallnormal:47,47,47,47,47,47,47,background walllud wallnormal:48,47,47,47,47,47,47,background wallnormal wallul:49,\nbackground walldl wallnormal:50,47,47,47,47,47,47,47,47,47,49,6,7,7,8,8,8,5,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,\n6,7,7,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,\n6,background button powered waspowered:51,10,51,14,8,8,8,8,8,8,6,7,7,11,12,44,7,11,12,44,26,\n26,11,12,44,26,26,11,12,44,7,9,6,10,51,10,20,8,8,8,8,8,8,\n6,7,7,20,10,20,7,20,10,20,26,26,20,10,20,26,26,20,10,20,7,5,\n3,18,12,12,28,8,8,15,16,16,16,6,7,7,46,8,20,7,35,12,28,26,\n26,35,12,28,26,26,35,12,28,26,26,background powered reactortrigger waspowered wireud:52,background powered waspowered wireulr:53,7,7,7,8,8,21,background unpowered wireulr:54,background unpowered wiredlr:55,background unpowered wireudl:56,\n6,7,7,8,8,20,7,25,25,25,7,7,25,25,25,7,7,25,25,background powered waspowered wiredlr:57,26,26,\n52,53,7,39,7,8,8,21,55,background reactor unpowered:58,30,6,7,7,14,8,20,7,11,12,44,26,\n26,11,12,44,26,26,11,12,44,26,26,52,38,7,7,7,8,8,21,54,55,background unpowered wireudr:59,\n6,7,7,20,10,20,7,20,10,20,26,26,20,10,20,26,26,20,10,20,7,40,\n41,7,7,39,7,8,8,42,16,16,16,6,7,7,35,12,28,7,35,12,28,26,\n26,35,12,28,26,26,35,12,28,7,9,6,7,7,7,7,8,8,8,8,8,8,\n6,7,7,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,\n6,7,7,7,7,8,8,8,8,8,8,50,47,41,8,8,8,40,47,47,47,47,\n47,47,47,47,47,47,47,47,47,47,49,50,47,47,47,47,47,47,47,47,47,47,\n",2,"1627778403808.806"] + ["title Cyber-Lasso\nauthor Alan Hazelden\nhomepage www.draknek.org\n\nnorepeat_action\n\nagain_interval 0.05\nrealtime_interval 0.05\n\n(verbose_logging)\n\nflickscreen 11x11\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\n#dddddd #ffffff\n11111\n10001\n10001\n10001\n11111\n\nElectricFloor\nLightBlue White\n00001\n00010\n00100\n01000\n10000\n\nElectricFloor1\nLightBlue White\n00001\n00010\n00100\n01000\n10000\n\nElectricFloor2\nLightBlue\n\nPowered\nLightBlue\n\nUnpowered\nWhite\n\nWasPowered\ntransparent\n\nHole\nBlack\n\nButton\nRed Grey\n10001\n00000\n00000\n00000\n10001\n\nCrate\nDarkGreen Green\n.....\n.111.\n.101.\n.111.\n.....\n\nElectricCrate1\nYellow\n.....\n.....\n..0..\n.....\n.....\n\n(ElectricCrate2\nOrange\n.....\n.....\n..0..\n.....\n.....)\n\nElectrifyingL\nYellow\n.....\n.....\n0....\n.....\n.....\n\nElectrifyingR\nYellow\n.....\n.....\n....0\n.....\n.....\n\nElectrifyingU\nYellow\n..0..\n.....\n.....\n.....\n.....\n\nElectrifyingD\nYellow\n.....\n.....\n.....\n.....\n..0..\n\nDisappearingCrate\nGreen\n.....\n.....\n..0..\n.....\n.....\n\nDisappearingPlayer\n#a46422\n.....\n.....\n..0..\n.....\n.....\n\nSquashedPlayer\n#a46422 #493c2b #000000 red\n....3\n.30..\n01110\n.2.2.\n3..3.\n\nWallNormal\nDarkGrey\n\nDoorUp\nDarkGrey #5a7bb6\n11111\n10001\n10001\n10001\n11111\n\nDoorDown\n#ffffff #dddddd\n11111\n1...1\n1.0.1\n1...1\n11111\n\nUpWhenPowered\ntransparent\n\nWalkway\n#dddddd #9d9e9e\n11111\n10001\n10001\n10001\n11111\n\nWalkwayStartL\n#9d9e9e\n....0\n....0\n....0\n....0\n....0\n\nWalkwayStartR\n#9d9e9e\n0....\n0....\n0....\n0....\n0....\n\nWalkwayStartU\n#9d9e9e\n.....\n.....\n.....\n.....\n00000\n\nWalkwayStartD\n#9d9e9e\n00000\n.....\n.....\n.....\n.....\n\nPlayerNormal\n#a46422 #493c2b #000000\n..0..\n.111.\n01110\n02220\n.2.2.\n\nPlayerHoldL\n#a46422 #493c2b #000000 orange\n..0..\n.111.\n3330.\n0222.\n.2.2.\n\nPlayerHoldR\n#a46422 #493c2b #000000 orange\n..0..\n.111.\n01110\n0222.\n.2.2.\n\nPlayerHoldU\n#a46422 #493c2b #000000 orange\n..00.\n.110.\n0111.\n0222.\n.2.2.\n\nPlayerHoldD\n#a46422 #493c2b #000000 orange\n..0..\n.111.\n0110.\n0232.\n.232.\n\n(RopeNextToPlayerR\n#a46422\n.....\n.....\n0....\n.....\n.....)\n\nPlayerAiming\n#a46422 #493c2b #000000\n..0.0\n.1110\n0111.\n0222.\n.2.2.\n\nPlayerDying\nyellow yellow yellow\n..0..\n.111.\n01110\n02220\n.2.2.\n\nLassoAboveHead1\nbrown orange\n.....\n..00.\n.0..0\n..001\n....1\n\nLassoAboveHead2\nbrown orange\n.....\n.000.\n0...0\n.0001\n....1\n\nLassoAboveHead3\nbrown orange\n.....\n.00..\n0..0.\n.00..\n...1.\n\nLassoAboveHead4\nbrown orange\n.00..\n0..0.\n0..0.\n.00..\n...1.\n\nLassoAboveHead5\nbrown orange\n.00..\n0..0.\n.00..\n..1..\n...1.\n\nLassoAboveHead6\nbrown orange\n.000.\n0...0\n.000.\n..1..\n...1.\n\nLassoAboveHead7\nbrown orange\n..00.\n.0..0\n..00.\n...1.\n...1.\n\nLassoAboveHead8\nbrown orange\n..00.\n.0..0\n.0..0\n..00.\n...1.\n\nLassoThrownL\nbrown orange\n.00..\n0..0.\n0..01\n0..0.\n.00..\n\nLassoThrownR\nbrown orange\n..00.\n.0..0\n10..0\n.0..0\n..00.\n\nLassoThrownU\nbrown orange\n.000.\n0...0\n0...0\n.000.\n..1..\n\nLassoThrownD\nbrown orange\n..1..\n.000.\n0...0\n0...0\n.000.\n\nLassoReturn\nbrown orange\n.000.\n0...0\n0...0\n0...0\n.000.\n\nLassoCaught\nbrown\n.000.\n0...0\n0...0\n0...0\n.000.\n\nRopeH\norange\n.....\n.....\n00000\n.....\n.....\n\nRopeV\norange\n..0..\n..0..\n..0..\n..0..\n..0..\n\nRopeUL\norange\n..0..\n..0..\n000..\n.....\n.....\n\nRopeUR\norange\n..0..\n..0..\n..000\n.....\n.....\n\nRopeDL\norange\n.....\n.....\n000..\n..0..\n..0..\n\nRopeDR\norange\n.....\n.....\n..000\n..0..\n..0..\n\nWireLR\n#ffffff #dddddd\n00000\n11111\n.....\n11111\n00000\n\nWireUD\n#ffffff #dddddd\n01.10\n01.10\n01.10\n01.10\n01.10\n\nWireUL\n#ffffff #dddddd\n01.10\n11.10\n...10\n11110\n00000\n\nWireUR\n#ffffff #dddddd\n01.10\n01.11\n01...\n01111\n00000\n\nWireDL\n#ffffff #dddddd\n00000\n11110\n...10\n11.10\n01.10\n\nWireDR\n#ffffff #dddddd\n00000\n01111\n01...\n01.11\n01.10\n\nWireULR\n#ffffff #dddddd\n01.10\n11.11\n.....\n11111\n00000\n\nWireDLR\n#ffffff #dddddd\n00000\n11111\n.....\n11.11\n01.10\n\nWireUDL\n#ffffff #dddddd\n01.10\n11.10\n...10\n11.10\n01.10\n\nWireUDR\n#ffffff #dddddd\n01.10\n01.11\n01...\n01.11\n01.10\n\nAndGate\nGrey Grey Red\n.000.\n00000\n02020\n00000\n.000.\n\nPower1\nYellow\n.....\n.....\n.0...\n.....\n.....\n\nPower2\nYellow\n.....\n.....\n.0.0.\n.....\n.....\n\nDone\ntransparent\n\nHere\ntransparent\n\nClaimed\ntransparent\n\nChanged\nred\n\nExit\ntransparent\n\nCheckpointTrigger\ntransparent\n\nReactorTrigger\ntransparent\n\nU\nred\n..0..\n.0.0.\n.....\n.....\n.....\n\nD\nred\n.....\n.....\n.....\n.0.0.\n..0..\n\nL\nred\n.....\n.0...\n0....\n.0...\n.....\n\nR\nred\n.....\n...0.\n....0\n...0.\n.....\n\nWallL\nDarkRed\n0....\n0....\n0....\n0....\n0....\n\nWallR\nDarkRed\n....0\n....0\n....0\n....0\n....0\n\nWallU\nDarkRed\n00000\n.....\n.....\n.....\n.....\n\nWallD\nDarkRed\n.....\n.....\n.....\n.....\n00000\n\nWallLR\nDarkRed\n0...0\n0...0\n0...0\n0...0\n0...0\n\nWallUD\nDarkRed\n00000\n.....\n.....\n.....\n00000\n\nWallUL\nDarkRed\n0....\n.....\n.....\n.....\n.....\n\nWallUR\nDarkRed\n....0\n.....\n.....\n.....\n.....\n\nWallDL\nDarkRed\n.....\n.....\n.....\n.....\n0....\n\nWallDR\nDarkRed\n.....\n.....\n.....\n.....\n....0\n\nWallDLR\nDarkRed\n.....\n.....\n.....\n.....\n0...0\n\nWallULR\nDarkRed\n0...0\n.....\n.....\n.....\n.....\n\nWallLUD\nDarkRed\n0....\n.....\n.....\n.....\n0....\n\nWallWireLR\nDarkGrey #61686c\n00000\n00000\n00000\n00000\n00000\n\nDangerL\n#be656d\n0....\n0....\n0....\n0....\n0....\n\nDangerR\n#be656d\n....0\n....0\n....0\n....0\n....0\n\nDangerU\n#be656d\n00000\n.....\n.....\n.....\n.....\n\nDangerD\n#be656d\n.....\n.....\n.....\n.....\n00000\n\nDangerLR\n#be656d\n0...0\n0...0\n0...0\n0...0\n0...0\n\nDangerUD\n#be656d\n00000\n.....\n.....\n.....\n00000\n\nReactor\n#ffffff #dddddd\n01.10\n11.11\n.....\n11.11\n01.10\n\nWarning1\nWhite Black\n01100\n01010\n01100\n01010\n01010\n\nWarning2\nWhite Black\n11100\n10001\n11001\n10001\n11101\n\nWarning3\nWhite Black\n10001\n01010\n11010\n01010\n01001\n\nWarning4\nWhite Black\n10111\n00010\n00010\n00010\n10010\n\nWarning5\nWhite Black\n00110\n01001\n01001\n01001\n00110\n\nWarning6\nWhite Black\n01100\n01010\n01100\n01010\n01010\n\n\n=======\nLEGEND\n=======\n\nPlayerHold = PlayerHoldL or PlayerHoldR or PlayerHoldU or PlayerHoldD\nPlayer = PlayerNormal or PlayerAiming or PlayerHold or DisappearingPlayer or PlayerDying\nDirection = U or D or L or R\nRope = RopeH or RopeV or RopeUL or RopeUR or RopeDL or RopeDR\nRopePullsL = RopeH or RopeUR or RopeDR\nRopePullsR = RopeH or RopeUL or RopeDL\nRopePullsU = RopeV or RopeDL or RopeDR\nRopePullsD = RopeV or RopeUL or RopeUR\n\n(RopeNextToPlayer = RopeNextToPlayerR)\n\nLassoAboveHead = LassoAboveHead1 or LassoAboveHead2 or LassoAboveHead3 or LassoAboveHead4 or LassoAboveHead5 or LassoAboveHead6 or LassoAboveHead7 or LassoAboveHead8\n\nWallWire = WallWireLR\nWall = WallNormal or WallWire\n\nSolid = Wall or Crate or DoorUp\nSolidUncatchable = Wall or DoorUp\nChain = Rope or LassoCaught or Player\nLassoThrown = LassoThrownL or LassoThrownR or LassoThrownU or LassoThrownD or LassoReturn\n\nWallCoverLR = WallL or WallR or WallLR\nWallCoverUD = WallU or WallD or WallUD\nWallCoverCorner = WallUL or WallUR or WallDL or WallDR or WallDLR or WallLUD or WallULR\n\nWallCover = WallCoverLR or WallCoverUD or WallCoverCorner\n\nDangerBorderLR = DangerL or DangerR or DangerLR\nDangerBorderUD = DangerU or DangerD or DangerUD\nDangerBorder = DangerBorderLR or DangerBorderUD\n\nWireL = WireLR or WireUL or WireDL or WireUDL or WireULR or WireDLR or WallWireLR\nWireR = WireLR or WireUR or WireDR or WireUDR or WireULR or WireDLR or WallWireLR\nWireU = WireUD or WireUL or WireUR or WireUDL or WireUDR or WireULR\nWireD = WireUD or WireDL or WireDR or WireUDL or WireUDR or WireDLR\nWire = WireL or WireR or WireU or WireD\n\nDoor = DoorUp or DoorDown\n\nWalkwayStart = WalkwayStartL or WalkwayStartR or WalkwayStartU or WalkwayStartD\n\nPowerTransfer = Button or ElectricFloor or Door or Walkway or WalkwayStart or Reactor\n\nElectrified = ElectricCrate1\n\nElectrifiable = Player or Crate\n\nElectrifyingDir = ElectrifyingL or ElectrifyingR or ElectrifyingU or ElectrifyingD\n\nChainUnder = Wire or PowerTransfer or AndGate\nChainUnderOver = Button or ElectricFloor\nChainOver = Electrifiable or ChainUnderOver\n\nDisappearing = DisappearingCrate or DisappearingPlayer\nSquashed = SquashedPlayer\n\nPowerLevel = Power1 or Power2\n\nElectricFloorCover = ElectricFloor1 or ElectricFloor2\n\nWarning = Warning1 or Warning2 or Warning3 or Warning4 or Warning5 or Warning6\n\n. = Background\n# = WallNormal\nP = PlayerNormal and DoorUp\n* = Crate\n! = ElectricFloor\no = Hole\n@ = Button\n_ = DoorDown\nn = DoorUp\n% = Button and Crate\n2 = AndGate\n& = Crate and ElectricFloor\n═ = WallWireLR\n$ = Reactor\nW = Warning1\nX = Exit and DoorUp\nz = ReactorTrigger and WireUD\n\n\n(ref http://unicode-search.net/unicode-namesearch.pl?term=box%20drawings)\n\n- = WireLR\n| = WireUD\n┐ = WireDL\n┤ = WireUDL\n┘ = WireUL\n┌ = WireDR\n├ = WireUDR\n└ = WireUR\n┬ = WireDLR\n┴ = WireULR\n\n← = WalkwayStartL and Hole\n→ = WalkwayStartR and Hole\n↑ = WalkwayStartU and Hole\n↓ = WalkwayStartD and Hole\n\n\n=======\nSOUNDS\n=======\n\nLassoAboveHead create 86845907\nPlayerAiming destroy 19629107\nsfx0 81428909 (throw lasso)\nLassoCaught create 1688102\nLassoCaught destroy 11489509\nPlayer move 75749507\nsfx1 12358709 (bending rope)\nWasPowered create 56141902 (power on)\nWasPowered destroy 25196302 (power off)\nDisappearing create 96367909\nPlayerDying create 9797709\nPlayerDying destroy 82870709\n\nUndo 77836307\nRestart 41565108\n\nEndLevel 42704508\nEndGame 10304308\n\n(\nTodo:\ntweak electrocution\ngetting crushed\npower on/off triggers too much\nending sound triggers too late\n)\n\n\n================\nCOLLISIONLAYERS\n================\n\nCheckpointTrigger, ReactorTrigger\nDirection, Done, Here\nClaimed\nBackground\nElectricFloor, UpWhenPowered\nWasPowered\nPowered, Unpowered\nElectricFloorCover, Warning, Exit\nHole, Button, Wire, Door, AndGate, Reactor\nDangerBorderLR, WalkwayStart, PowerLevel\nDangerBorderUD, Walkway\nPlayer, PlayerDying, Wall, Crate, Disappearing, Squashed\nWallCoverLR, Electrified\nWallCoverUD, WallCoverCorner\nLassoAboveHead\nLassoThrown, LassoCaught, Rope\nElectrifyingL\nElectrifyingR\nElectrifyingU\nElectrifyingD\nChanged\n\n======\nRULES\n======\n\n([ Changed ] -> [])\n\n([ RopeNextToPlayer ] -> [])\n\n(Lasso aiming animation)\n\n[ up Player Exit ] -> [ Player Exit ] win\n\nright [ Warning1 | | | | | ] -> [ Warning1 | Warning2 | Warning3 | Warning4 | Warning5 | Warning6 ]\n\nlate up [ PlayerAiming | no LassoAboveHead ] -> [ PlayerAiming | LassoAboveHead1 ]\nlate up [ no PlayerAiming | LassoAboveHead ] -> [ | ]\n\nup [ moving Player | LassoAboveHead ] -> [ moving Player | action LassoAboveHead ]\n\n[ stationary LassoAboveHead1 ] -> [ action LassoAboveHead2 ]\n[ stationary LassoAboveHead2 ] -> [ action LassoAboveHead3 ]\n[ stationary LassoAboveHead3 ] -> [ action LassoAboveHead4 ]\n[ stationary LassoAboveHead4 ] -> [ action LassoAboveHead5 ]\n[ stationary LassoAboveHead5 ] -> [ action LassoAboveHead6 ]\n[ stationary LassoAboveHead6 ] -> [ action LassoAboveHead7 ]\n[ stationary LassoAboveHead7 ] -> [ action LassoAboveHead8 ]\n[ stationary LassoAboveHead8 ] -> [ action LassoAboveHead1 ]\n\n(Pressing action)\n\n[ action PlayerHold ] [ LassoCaught Crate ] -> [ PlayerHold ] [ LassoReturn action Crate Changed ] again\n\n[ action PlayerAiming ] -> [ PlayerNormal ]\n[ action PlayerNormal ] -> [ PlayerAiming ]\n\n(Throwing lasso)\n\nleft [ > PlayerAiming | no SolidUncatchable ] -> [ PlayerHoldL | L action LassoThrownL ] sfx0 again\nright [ > PlayerAiming | no SolidUncatchable ] -> [ PlayerHoldR | R action LassoThrownR ] sfx0 again\nup [ > PlayerAiming | no SolidUncatchable ] -> [ PlayerHoldU | U action LassoThrownU ] sfx0 again\ndown [ > PlayerAiming | no SolidUncatchable ] -> [ PlayerHoldD | D action LassoThrownD ] sfx0 again\n\nleft [ L stationary LassoThrownL | no SolidUncatchable ] -> [ RopeH | L action LassoThrownL ] again\nright [ R stationary LassoThrownR | no SolidUncatchable ] -> [ RopeH | R action LassoThrownR ] again\nup [ U stationary LassoThrownU | no SolidUncatchable ] -> [ RopeV | U action LassoThrownU ] again\ndown [ D stationary LassoThrownD | no SolidUncatchable ] -> [ RopeV | D action LassoThrownD ] again\n\n[ LassoThrown stationary Crate no LassoReturn ] -> [ action LassoCaught Crate no Direction ]\n\n[ Player | | | | | LassoThrown Direction ] -> [ Player | | | | | action LassoThrown ]\n\n([ Player | | | | | | | | LassoThrown Direction ] -> [ Player | | | | | | | | action LassoThrown ])\n\n(Moving while attached)\n\n[ > Player | Hole no Walkway ] -> cancel\n\n[ > Player Hole no Walkway ] -> cancel\n\n[ moving Player ] [ LassoCaught Crate ] [ Rope ] -> [ moving Player action Done ] [ moving LassoCaught action Crate ] [ moving Rope ]\n\n[ moving Player | LassoCaught Crate ] -> [ moving Player action Done | moving LassoCaught action Crate ]\n\n[ > Player | stationary Solid ] -> cancel\n\nstartloop\n\n(Start loop)\n\nleft [ action Done | RopePullsL no Done ] -> [ < Done | RopePullsL Here ]\nright [ action Done | RopePullsR no Done ] -> [ < Done | RopePullsR Here ]\nup [ action Done | RopePullsU no Done ] -> [ < Done | RopePullsU Here ]\ndown [ action Done | RopePullsD no Done ] -> [ < Done | RopePullsD Here ]\n[ action Done | LassoCaught no Done ] -> [ < Done | LassoCaught Here ]\n\n(Check for collisions)\n\n[ stationary Here > Chain | stationary Solid ] -> [ action Here > Chain | Solid ] sfx1 (set 'action Here' on collision)\n\n[ < Done | action Here > Chain ] -> cancel\n\n[ action Here ] [ Done > Chain | moving Done ] -> cancel\n\n[ action Here ] [ moving Done ] [ Chain no Done ] -> [ action Here ] [ moving Done ] [ moving Chain ] (update movement of future parts of the chain)\n\n(Handle movement)\n\nleft [ moving Done down RopeUL | action Here ] -> cancel\nleft [ moving Done up RopeDL | action Here ] -> cancel\n\nleft [ moving Done down RopeH | action Here ] -> [ moving Done down RopeUR | action Here ]\nleft [ moving Done down RopeDL | action Here ] -> [ moving Done down RopeV | action Here ]\nleft [ moving Done up RopeH | action Here ] -> [ moving Done up RopeDR | action Here ]\nleft [ moving Done up RopeUL | action Here ] -> [ moving Done up RopeV | action Here ]\n\nleft [ moving Done down Chain | action Here < RopeH ] -> [ moving Done down Chain | action Here < RopeDL ]\nleft [ moving Done down Chain | action Here < RopeUR ] -> [ moving Done down Chain | action Here < RopeV ]\nleft [ moving Done up Chain | action Here < RopeH ] -> [ moving Done up Chain | action Here < RopeUL ]\nleft [ moving Done up Chain | action Here < RopeDR ] -> [ moving Done up Chain | action Here < RopeV ]\n\nright [ moving Done down RopeUR | action Here ] -> cancel\nright [ moving Done up RopeDR | action Here ] -> cancel\n\nright [ moving Done down RopeH | action Here ] -> [ moving Done down RopeUL | action Here ]\nright [ moving Done down RopeDR | action Here ] -> [ moving Done down RopeV | action Here ]\nright [ moving Done up RopeH | action Here ] -> [ moving Done up RopeDL | action Here ]\nright [ moving Done up RopeUR | action Here ] -> [ moving Done up RopeV | action Here ]\n\nright [ moving Done down Chain | action Here < RopeH ] -> [ moving Done down Chain | action Here < RopeDR ]\nright [ moving Done down Chain | action Here < RopeUL ] -> [ moving Done down Chain | action Here < RopeV ]\nright [ moving Done up Chain | action Here < RopeH ] -> [ moving Done up Chain | action Here < RopeUR ]\nright [ moving Done up Chain | action Here < RopeDL ] -> [ moving Done up Chain | action Here < RopeV ]\n\nup [ moving Done left RopeUR | action Here ] -> cancel\nup [ moving Done right RopeUL | action Here ] -> cancel\n\nup [ moving Done left RopeV | action Here ] -> [ moving Done left RopeDR | action Here ]\nup [ moving Done left RopeUL | action Here ] -> [ moving Done left RopeH | action Here ]\nup [ moving Done right RopeV | action Here ] -> [ moving Done right RopeDL | action Here ]\nup [ moving Done right RopeUR | action Here ] -> [ moving Done right RopeH | action Here ]\n\nup [ moving Done left Chain | action Here < RopeV ] -> [ moving Done left Chain | action Here < RopeUL ]\nup [ moving Done left Chain | action Here < RopeDR ] -> [ moving Done left Chain | action Here < RopeH ]\nup [ moving Done right Chain | action Here < RopeV ] -> [ moving Done right Chain | action Here < RopeUR ]\nup [ moving Done right Chain | action Here < RopeDL ] -> [ moving Done right Chain | action Here < RopeH ]\n\ndown [ moving Done left RopeDR | action Here ] -> cancel\ndown [ moving Done right RopeDL | action Here ] -> cancel\n\ndown [ moving Done left RopeV | action Here ] -> [ moving Done left RopeUR | action Here ]\ndown [ moving Done left RopeDL | action Here ] -> [ moving Done left RopeH | action Here ]\ndown [ moving Done right RopeV | action Here ] -> [ moving Done right RopeUL | action Here ]\ndown [ moving Done right RopeDR | action Here ] -> [ moving Done right RopeH | action Here ]\n\ndown [ moving Done left Chain | action Here < RopeV ] -> [ moving Done left Chain | action Here < RopeDL ]\ndown [ moving Done left Chain | action Here < RopeUR ] -> [ moving Done left Chain | action Here < RopeH ]\ndown [ moving Done right Chain | action Here < RopeV ] -> [ moving Done right Chain | action Here < RopeDR ]\ndown [ moving Done right Chain | action Here < RopeUL ] -> [ moving Done right Chain | action Here < RopeH ]\n\n[ Here > Chain | Claimed ] -> cancel\n[ Here > Chain | ] -> [ Here > Chain | Claimed ]\n\n[ moving Done ] -> [ Done ]\n\n[ Here ] -> [ action Done ]\n\n(End loop)\n\nendloop\n\n[ Claimed ] -> []\n[ Here ] -> []\n[ Done ] -> []\n\nlate [ Player Rope ] -> cancel\nlate [ Player LassoCaught ] -> cancel\n\n([ left Chain ] -> [ L action Chain ]\n[ right Chain ] -> [ R action Chain ]\n[ up Chain ] -> [ U action Chain ]\n[ down Chain ] -> [ D action Chain ]\n[ Direction moving Crate ] -> [ Direction Crate ])\n\n[ moving LassoCaught Crate ] -> [ moving LassoCaught moving Crate ]\n\n(Pull the end of the lasso towards the player by one tile)\n\n[ stationary LassoThrown Direction ] -> [ LassoThrown ] again\n\nleft [ stationary LassoThrown | RopePullsL ] -> [ > LassoThrown | ] again\nright [ stationary LassoThrown | RopePullsR ] -> [ > LassoThrown | ] again\nup [ stationary LassoThrown | RopePullsU ] -> [ > LassoThrown | ] again\ndown [ stationary LassoThrown | RopePullsD ] -> [ > LassoThrown | ] again\n\n[ stationary LassoThrown | Player ] -> [ | PlayerNormal no Direction ]\n\n[ LassoThrown Player ] -> [ PlayerNormal ]\n\n[ > Player | ] -> [ > Player Changed | Changed ]\n[ > LassoCaught | ] -> [ > LassoCaught Changed | Changed ]\n\n(Holes)\n\nlate [ Disappearing ] -> [] again\n\nlate [ Crate Hole no Walkway no LassoCaught ] -> [ DisappearingCrate Hole ] again\nlate [ DisappearingCrate ] [ LassoReturn ] -> [ Crate ] [ LassoReturn ]\n\nlate [ Player Hole no Walkway no PlayerHold ] -> [ DisappearingPlayer Hole ]\n\n(Squashing)\n\nlate [ Player DoorUp Changed ] -> [ SquashedPlayer DoorUp ]\n\n(Add graphics)\n\nlate left [ PlayerHold | RopePullsL ] -> [ Claimed PlayerHoldL | RopePullsL ]\nlate right [ PlayerHold | RopePullsR ] -> [ Claimed PlayerHoldR | RopePullsR ]\nlate up [ PlayerHold | RopePullsU ] -> [ Claimed PlayerHoldU | RopePullsU ]\nlate down [ PlayerHold | RopePullsD ] -> [ Claimed PlayerHoldD | RopePullsD ]\n\nlate left [ PlayerHold no Claimed | LassoCaught ] -> [ PlayerHoldL | LassoCaught ]\nlate right [ PlayerHold no Claimed | LassoCaught ] -> [ PlayerHoldR | LassoCaught ]\nlate up [ PlayerHold no Claimed | LassoCaught ] -> [ PlayerHoldU | LassoCaught ]\nlate down [ PlayerHold no Claimed | LassoCaught ] -> [ PlayerHoldD | LassoCaught ]\n\nlate [ Claimed ] -> []\n\n(Draw wall edges)\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\nleft [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallLUD | WallUD ]\nup [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallULR | WallLR ]\n\nright [ WallD | Wall no WallCover ] -> [ WallD | Wall WallDL ]\nleft [ WallD | Wall no WallCover ] -> [ WallD | Wall WallDR ]\n\nright [ WallU | Wall no WallCover ] -> [ WallU | Wall WallUL ]\nleft [ WallU | Wall no WallCover ] -> [ WallU | Wall WallUR ]\n\n(Draw electric floor)\n\nleft [ ElectricFloor no DangerBorderLR | no ElectricFloor ] -> [ ElectricFloor DangerL | ]\nright [ ElectricFloor no DangerBorderLR | no ElectricFloor ] -> [ ElectricFloor DangerR | ]\nright [ ElectricFloor DangerL | no ElectricFloor ] -> [ ElectricFloor DangerLR | ]\n\nup [ ElectricFloor no DangerBorderUD | no ElectricFloor ] -> [ ElectricFloor DangerU | ]\ndown [ ElectricFloor no DangerBorderUD | no ElectricFloor ] -> [ ElectricFloor DangerD | ]\ndown [ ElectricFloor DangerU | no ElectricFloor ] -> [ ElectricFloor DangerUD | ]\n\n[ ElectricFloor no Powered ] -> [ ElectricFloor no ElectricFloorCover ]\n\n[ Player no Changed ] [ ElectricFloor Powered no ElectricFloorCover no Claimed ] -> [ Player ] [ ElectricFloor Powered ElectricFloor1 Claimed ]\n[ Player no Changed ][ ElectricFloor Powered ElectricFloor1 no Claimed ] -> [ Player ] [ ElectricFloor Powered ElectricFloor2 Claimed ]\n[ Player no Changed ][ ElectricFloor Powered ElectricFloor2 no Claimed ] ->[ Player ] [ ElectricFloor Powered no ElectricFloor Claimed ]\n\nlate [ Claimed ] -> []\n\n(Power flow)\n\nlate [ Changed no ChainUnderOver ] -> []\n\nlate [ Changed Electrifiable | no Changed Electrifiable ] -> [ Changed Electrifiable | Changed Electrifiable ]\n+ late [ Changed ChainUnder | no Changed ChainUnder ] -> [ Changed ChainUnder | Changed ChainUnder ]\n\nlate [ Changed Powered ] -> [ Changed ]\nlate [ Changed Walkway ] -> [ Changed ]\nlate [ PowerLevel ] -> []\nlate [ Changed Electrified ] -> [ Changed ]\nlate [ Changed ElectrifyingDir ] -> [ Changed ]\n\nlate [ Button Crate ] -> [ Button Crate Powered ]\nlate [ Button Player ] -> [ Button Player Powered ]\n\nstartloop\n\nlate left [ WireL no Powered | Powered ] -> [ WireL Powered | Powered ]\nlate right [ WireR no Powered | Powered ] -> [ WireR Powered | Powered ]\nlate up [ WireU no Powered | Powered ] -> [ WireU Powered | Powered ]\nlate down [ WireD no Powered | Powered ] -> [ WireD Powered | Powered ]\n\nlate left [ WireL Powered no Claimed | AndGate no Claimed ] -> [ WireL Powered Claimed | AndGate Claimed ]\nlate right [ WireR Powered no Claimed | AndGate no Claimed ] -> [ WireR Powered Claimed | AndGate Claimed ]\nlate up [ WireU Powered no Claimed | AndGate no Claimed ] -> [ WireU Powered Claimed | AndGate Claimed ]\nlate down [ WireD Powered no Claimed | AndGate no Claimed ] -> [ WireD Powered Claimed | AndGate Claimed ]\n\nlate left [ WireL Powered | no Powered no AndGate ] -> [ WireL Powered | Powered ]\nlate right [ WireR Powered | no Powered no AndGate ] -> [ WireR Powered | Powered ]\nlate up [ WireU Powered | no Powered no AndGate ] -> [ WireU Powered | Powered ]\nlate down [ WireD Powered | no Powered no AndGate ] -> [ WireD Powered | Powered ]\n\nlate [ AndGate Power1 Claimed ] -> [ AndGate Power2 Powered ]\nlate [ AndGate no PowerLevel Claimed ] -> [ AndGate Power1 no Powered ]\nlate [ AndGate Claimed ] -> [ AndGate no Powered ]\n\nlate [ PowerTransfer Powered | PowerTransfer no Powered ] -> [ PowerTransfer Powered | PowerTransfer Powered ]\n\nlate left [ WalkwayStartL Powered | Hole no WalkwayStart ] -> [ WalkwayStartL Powered | WalkwayStartL Hole ]\nlate right [ WalkwayStartR Powered | Hole no WalkwayStart ] -> [ WalkwayStartR Powered | WalkwayStartR Hole ]\nlate up [ WalkwayStartU Powered | Hole no WalkwayStart ] -> [ WalkwayStartU Powered | WalkwayStartU Hole ]\nlate down [ WalkwayStartD Powered | Hole no WalkwayStart ] -> [ WalkwayStartD Powered | WalkwayStartD Hole ]\n\nlate [ WalkwayStart Powered ] -> [ WalkwayStart Walkway Powered ]\n\nlate [ Electrifiable no Electrified ElectricFloor Powered ] -> [ Electrifiable Electrified ElectricFloor Powered ]\n\nlate [ Electrifiable Electrified | Electrifiable no Electrified ] -> [ Electrifiable Electrified | Electrifiable Electrified ]\n\nlate [ Electrifiable Electrified ElectricFloor no Powered ] -> [ Electrifiable Electrified ElectricFloor Powered ]\n\nlate [ Electrified LassoCaught ] [ Player ] -> [ Electrified LassoCaught ] [ Player Electrified ]\nlate [ LassoCaught ] [ Electrified Player ] -> [ Electrified LassoCaught ] [ Player Electrified ]\n\nendloop\n\nlate [ Claimed ] -> []\n\nlate [ Door Powered no UpWhenPowered no CheckpointTrigger ] [ Player no Button no PlayerHold ] -> [ Door Powered CheckpointTrigger ] [ Player ] checkpoint\n\nlate [ WalkwayStart Powered no CheckpointTrigger ] [ Player no Button no PlayerHold ] -> [ WalkwayStart Powered CheckpointTrigger ] [ Player ] checkpoint\n\nlate left [ Hole | WalkwayStartL ] -> [ Hole | ]\nlate right [ Hole | WalkwayStartR ] -> [ Hole | ]\nlate up [ Hole | WalkwayStartU ] -> [ Hole | ]\nlate down [ Hole | WalkwayStartD ] -> [ Hole | ]\n\nlate [ Wire no Powered ] -> [ Wire Unpowered ]\nlate [ PowerTransfer no Powered ] -> [ PowerTransfer Unpowered ]\n\nlate [ Door Powered UpWhenPowered ] -> [ DoorUp Powered UpWhenPowered ]\nlate [ Door no Powered UpWhenPowered ] -> [ DoorDown UpWhenPowered ]\nlate [ Door Powered no UpWhenPowered ] -> [ DoorDown Powered ]\nlate [ Door no Powered no UpWhenPowered ] -> [ DoorUp ]\n\n(Electrocute)\n\nlate left [ Electrified | Electrified ] -> [ Electrified ElectrifyingL | Electrified ElectrifyingR ]\nlate up [ Electrified | Electrified ] -> [ Electrified ElectrifyingU | Electrified ElectrifyingD ]\n\nlate [ PlayerDying Electrified no Claimed ] -> [ PlayerNormal Electrified Claimed ]\nlate [ Player Electrified no Claimed ] -> [ PlayerDying Electrified Claimed ]\n\nlate [ Player Electrified ] -> [ Player ]\n\nlate [ Player Claimed ] -> again\n\nlate [ Claimed ] -> []\n\nlate [ Player DoorUp no Changed no SquashedPlayer ] -> [ Player DoorDown ]\n\nlate [ Changed ] -> []\n\nlate [ Powered Reactor ] -> win\n\nlate [ ReactorTrigger Player ] [ ReactorTrigger ] -> checkpoint\nlate [ ReactorTrigger Player ] [ ReactorTrigger ] -> message The reactor core! I have to take it down by any means necessary.\nlate [ ReactorTrigger Player ] [ ReactorTrigger no Player ] -> [ ReactorTrigger Player ] []\n\nlate [ ReactorTrigger Player ] -> [ Player ]\n\nlate [ Powered no WasPowered ] -> [ Powered WasPowered ]\nlate [ no Powered WasPowered ] -> []\n\n==============\nWINCONDITIONS\n==============\n\n(all button on Crate\nno LassoCaught\nno Rope\nno LassoReturn)\n\n=======\nLEVELS\n=======\n\n(############################################\n#.........##.........##..!......##.........#\n#...!!!!..##.......┌-----!......##.........#\n#....*|...##.......|.##..!......##.........#\n#.!.!!!!!!##!!!!!!!!!##.........##.........#\n#.!--┘.|..##.|..|....##.!!!.....##.........#\n#.&...!!!!##.!..|....##..|...!!!##.........#\n#.*.....└----!..├-@..##..|...!..##.........#\n#!&!......##.!..|....##..└-┐.!..##.........#\n#.........##....|....##....|.!..##.........#\n################n##########n#!..############\n################n##########n#!..############\n############....|....##....|.!......oo.....#\n############@---2---@##.@..|.!-----┐oo.....#\n############.........##.|..|.!.....└!!--%..#\n############@---┬---@##.2--┘.!!!##..oo..|..#\n############...o↓o...##.|.......##..oo..|..#\n############ooooooooooo.|.oo#...##..oooo↓oo#\n############oo.....oooo.|.oo#!!!##..ooooooo#\n############oo.....oooo.|.oo#.|.##.........#\n############oo.....ooooo↓ooo#.|.##.........#\n################.ooooooooooo##|##########.##\n################.ooooooooooo##|##########.##\n#....@----------┐oooooooooooo.|.##┌----!...#\n#.oooooooooooooo↓oooooo...ooo.├---┘...o!...#\n#.ooooooooooooooooooooo.@.ooo!&!##....o!┐..#\n#.oo...oooooooo...ooooo.|.ooo...####..oo|###\n#*oo.#.ooooooo←-@.oooooo|oooo...####..oo|###\n#.oo...oooooooo...ooo##o|o##########..oo|###\n#.oooooooooooooo.oooo##.|.......##....o!┘..#\n#.oooooooooooooo.....nn-┴-------nn┐...o!.*.#\n#.ooooooooooooooooooo##.........##└----!-┐.#\n###########################n#############n##\n###########################n#############n##\n#.........##.........##....|....##w........#\n#.......*.##.........##..@-2-@..##.........#\n#.........##......┌--nn-┐.......##o!!!o!!!o#\n#.........##...%..|..##.|.......##o!%ooo%!o#\n#p...┌--@.##...|..|..##!!!!#!!!!##o!!!!!!!o#\n#....|....##!!!!!!!!!##....#.|..##.........#\n#....|....##.........##.%--═-┘..##.!!!-!!!.#\n#....|....##.........##....#..*.##.!%!-!%!.#\n#....|....##.........##....#....##.!!!-!!!.#\n#####n########n##############..###.|||.|||.#\n#####n########n##############..###.|||.|||.#\n#.........##..|..oo..##...ooo...##.!!!-!!!.#\n#....*....##..|..oo..##...ooo...##.!%!-!%!.#\n#.........##..└@.oo..##...ooo...##.!!!-!!!.#\n#.........##.....oo..##...ooo.@.##.|||.|||.#\n#.........##.....oo..##...ooo.|.##.|||.|||.#\n#oooooooooooooooooo.......oo←-┘.##.!!!-!!!.#\n#oooooo↑oooooo↑oooo.......oo←...##.!%!-!%!.#\n#..@---┘......|..oo..##...ooo...##.!!!┬!!!.#\n#.............@..oo..##...ooo...##...|||...#\n#################oo##################|||####\n#####################################|||####\n#.........##.........##.........##@%!┴┴┘...#\n#.........##.........##.........##%@!......#\n#.........##.........##.........##@%!.*.*..#\n#.........##.........##.........##!!!......#\n#.........##.........##.........##ooooooooo#\n#.........##.........##.........##ooooooooo#\n#.........##.........##.........##oo!!!!!oo#\n#.........##.........##.........##oo!┴┬┴!oo#\n#.........##.........##.........##oo!┬$┬!oo#\n##################################oo!┤|├!oo#)\n\n###########################x#####\n#.........##.........##....|....#\n#.......*.##.........##..@-2-@..#\n#.........##......┌--nn-┐.......#\n#.........##...%..|..##.|.......#\np....┌--@.##...|..|..##!!!!#!!!!#\n#....|....##!!!!!!!!!##....#.|..#\n#....|....##.........##.%--═-┘..#\n#....|....##.........##....#..*.#\n#....|....##.........##....#....#\n#####n########n##############..##\n#####n########n##############..##\n#.........##..|..oo..##...ooo...#\n#....*....##..|..oo..##...ooo...#\n#.........##..└@.oo..##...ooo...#\n#.........##.....oo..##...ooo.@.#\n#.........##.....oo..##...ooo.|.#\n#oooooooooooooooooo.......oo←-┘.#\n#oooooo↑oooooo↑oooo.......oo←...#\n#..@---┘......|..oo..##...ooo...#\n#.............@..oo..##...ooo...#\n#################oo##############\n\n#######################################################\n#.........##.........##..!......##.........##.........#\n#...!!!!!.##.......┌-----!......##.........##.........#\n#....*|...##.......|.##..!......##.........##.........#\n#.!.!!!!!!##!!!!!!!!!##.........##.........##.........#\n#.!--┘.|..##.|..|....##.!!!.....##.........##.........#\n#.&..!!!!!##.!..|....##..|...!!!##.........##.........#\n#.*.....├----!..├-@..##..|...!..##.........##.........#\n#!&!..!!!!##.!..|....##..└-┐.!..##.........##.........#\n#.........##....|....##....|.!..##.........##.........#\n################n##########n#!..#######################\n################n##########n#!..#######################\n############....|....##....|.!......oo.....##.........#\n############@---2---@##.@..|.!-----┐oo.....##.........#\n############.........##.|..|.!.....└!!--%..##.........#\n############@---┬---@##.2--┘.!!!##..oo..|..##.........#\n############...o↓o...##.|.......##..oo..|..##.........#\n############ooooooooooo.|.oo#...##..oooo↓oo#═.........#\n############oo.....oooo.|.oo#!!!##..ooooooo##.........#\n############oo.....oooo.|.oo#.|.##.........##.........#\n############oo.....ooooo↓ooo#.|.##.........##.........#\n################.ooooooooooo##|##########.#######n#####\n################.ooooooooooo##|##########.#######x#####\n#....@----------┐oooooooooooo.|.##┌----!...##%!--┘..!%#\n#.oooooooooooooo↓oooooo...ooo.├---┘...o!...##!!!!!..!!#\n#.ooooooooooooooooooooo.@.ooo!&!##....o!┐..##!.|.!..|.#\n#.oo...oooooooo...ooooo.|.ooo...####..oo|####!.!.!.!|.#\n#*oo.#.ooooooo←-@.oooooo|oooo...####..oo|####!.!.!-!!!#\n#.oo...oooooooo...ooo##o|o##########..oo|####!.!.!.!..#\n#.oooooooooooooo.oooo##.|.......##....o!┘..##!.!...|..#\n#.oooooooooooooo.....nn-┴-------nn┐...o!.*┌nn..!!!!!!!#\n#.ooooooooooooooooooo##.........##└----!--┘##!!!....!%#\n###########################p###########################\n\n######################\n#....................#\n#....................#\n#oooooooooooo!!!o!!!oo\n#ooo↑oooooooo!%ooo%!oo\n#oo.|.ooooooo!!!!!!!oo\n#oo.|.oooo##.........#\n#o!!!!!!!o##.!!!-!!!.#\n#o!....@!o##.!%!-!%!.#\n#o!!!!!!!o##.!!!-!!!.#\n#oooo...oo##.|||.|||.#\n#oooo...oo##.|||.|||.#\n#oo┌--┐...##.!!!-!!!.#\n#oo@..|...##.!%!-!%!.#\n#oo###n#####.!!!-!!!.#\n#oo.......##.|||.|||.#\n#oo.......##.|||.|||.#\n#oo..*.*..##.!!!-!!!.#\n#oo.......##.!%!-!%!.#\n#oo.......##.!!!┬!!!.#\n#oo.......##...|||...#\n######p########|||####\n######n########zzz####\n#%!---┘.!%##@%!┴┴┘...#\n#!!!!!..!!##%@!......#\n#!.|.!..|.##@%!.*.*..#\n#!.!.!.!|.##!!!......#\n#!.!.!-!!!##ooooooooo#\n#!.!.!.!..##ooooooooo#\n#!.!...|..##oo!!!!!oo#\nn..!!!!!!!##oo!┴┬┴!oo#\n#!!!....!%##oo!┬$┬!oo#\n############oo!┤|├!oo#\n\n(#######################################################\n#.........##.....!...##.........##...#.....##.........#\n#...!!!!!.##.....!-┬-nn.........##...#.....##.........#\n#....*|...##...┌-!.|.##.........##.*.#...@.##.........#\n#.!.!!!!!!##...|.##|.##.........##...#...|.##.........#\n#.!-┬┘.|..##...@.##|.##.!!!.....##.@-n-@.2.##.........#\n#.&.|!!!!!##.!...##|.##..|...!!!##...#...|.##.........#\n#.*.|...├----!...!.|.##..|...!..##.*.#...@.##.........#\n#!!!┘.!!!!##.!--┐!-┘.##..└┐..!..##...#.....##.........#\n#.........##....|!...##...|..!..##...#.....##.........#\n################n#########n##!..#######################)\n\n\nmessage BOOM\nmessage You will be remembered as a hero\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", 4, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", 3, "tick", "tick", "tick", 4, "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 4, "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background walldr wallnormal:0,background wallnormal wallr:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background wallnormal wallur:2,\n0,1,1,1,1,1,1,background walld wallnormal wallr:3,background doorup unpowered:4,background wallnormal wallr wallu:5,2,background walld wallnormal:6,background:7,7,background hole:8,8,8,8,8,8,8,8,\n8,8,8,8,8,8,8,8,8,8,background wallnormal wallu:9,6,background button crate powered waspowered:10,background dangerl dangeru electricfloor powered waspowered:11,background dangerlr electricfloor powered waspowered:12,12,12,12,background dangerd dangerlr electricfloor powered waspowered:13,7,background dangerl dangerud electricfloor powered waspowered:14,9,\n6,7,7,8,8,8,8,background dangerl dangeru electricfloor unpowered:15,background dangerlr electricfloor unpowered:16,background dangerd dangerl electricfloor unpowered:17,8,8,8,8,8,8,8,8,8,8,8,9,\n6,background dangerlr dangeru electricfloor powered waspowered:18,background dangerd electricfloor powered waspowered:19,7,7,7,7,7,7,background dangerud electricfloor powered waspowered:20,9,6,7,7,8,8,7,7,background dangerud electricfloor unpowered:21,7,21,8,\n8,background unpowered wiredr:22,background button unpowered:23,background walll wallnormal wallud:24,7,7,7,7,7,7,9,6,background powered waspowered wirelr:25,20,background powered waspowered wireud:26,18,12,12,12,background dangerl electricfloor powered waspowered:27,background dangerd dangerr electricfloor powered waspowered:28,9,\n6,7,7,8,background hole unpowered walkwaystartu:29,background unpowered wireud:30,30,21,7,21,8,8,background unpowered wirelr:31,7,background wallnormal wallud:32,7,7,7,7,7,7,9,\n6,25,20,7,7,7,7,7,20,7,9,6,7,7,8,8,7,7,21,7,21,7,\n7,31,7,background wallnormal wallr wallud:33,7,background playernormal:34,7,7,7,7,5,3,25,background dangerr dangeru electricfloor powered waspowered:35,12,12,12,13,7,20,7,9,\n6,7,7,8,8,8,8,21,7,21,7,7,background unpowered wiredl:36,30,4,7,7,7,7,7,7,background checkpointtrigger doordown powered waspowered:37,\n37,background powered waspowered wireul:38,7,7,7,25,7,7,20,7,9,6,7,7,8,8,8,8,21,23,21,7,\n7,7,7,24,7,7,background crate:39,7,7,7,background walll wallnormal wallu:40,background walld walll wallnormal:41,7,7,7,18,27,13,26,20,7,9,\n6,7,7,8,8,8,8,background dangerr dangeru electricfloor unpowered:42,16,background dangerd dangerr electricfloor unpowered:43,8,8,7,7,32,7,7,39,7,7,7,9,\n6,18,background dangerd dangerl electricfloor powered waspowered:44,26,26,20,7,7,background dangeru electricfloor powered waspowered:45,13,9,6,7,7,8,8,8,8,8,8,8,8,\n8,7,7,32,7,7,7,7,7,7,9,6,10,background dangerr dangerud electricfloor powered waspowered:46,7,7,46,7,7,46,10,9,\n6,7,7,8,8,8,40,background walll wallnormal:47,47,47,47,47,47,47,background walllud wallnormal:48,47,47,47,47,47,47,background wallnormal wallul:49,\nbackground walldl wallnormal:50,47,47,47,47,47,47,47,47,47,49,6,7,7,8,8,8,5,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,\n6,7,7,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,\n6,background button powered waspowered:51,10,51,14,8,8,8,8,8,8,6,7,7,11,12,44,7,11,12,44,26,\n26,11,12,44,26,26,11,12,44,7,9,6,10,51,10,20,8,8,8,8,8,8,\n6,7,7,20,10,20,7,20,10,20,26,26,20,10,20,26,26,20,10,20,7,5,\n3,18,12,12,28,8,8,15,16,16,16,6,7,7,46,8,20,7,35,12,28,26,\n26,35,12,28,26,26,35,12,28,26,26,background powered reactortrigger waspowered wireud:52,background powered waspowered wireulr:53,7,7,7,8,8,21,background unpowered wireulr:54,background unpowered wiredlr:55,background unpowered wireudl:56,\n6,7,7,8,8,20,7,25,25,25,7,7,25,25,25,7,7,25,25,background powered waspowered wiredlr:57,26,26,\n52,53,7,39,7,8,8,21,55,background reactor unpowered:58,30,6,7,7,14,8,20,7,11,12,44,26,\n26,11,12,44,26,26,11,12,44,26,26,52,38,7,7,7,8,8,21,54,55,background unpowered wireudr:59,\n6,7,7,20,10,20,7,20,10,20,26,26,20,10,20,26,26,20,10,20,7,40,\n41,7,7,39,7,8,8,42,16,16,16,6,7,7,35,12,28,7,35,12,28,26,\n26,35,12,28,26,26,35,12,28,7,9,6,7,7,7,7,8,8,8,8,8,8,\n6,7,7,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,\n6,7,7,7,7,8,8,8,8,8,8,50,47,41,8,8,8,40,47,47,47,47,\n47,47,47,47,47,47,47,47,47,47,49,50,47,47,47,47,47,47,47,47,47,47,\n", 2, "1627778403808.806"] ], [ `gallery: train braining`, - ["title Train Braining\nauthor Alan Hazelden\nhomepage http://www.draknek.org\n\ncolor_palette pastel\n\nnoaction\n\nagain_interval 0.08\nkey_repeat_interval 0.16\n\n(verbose_logging)\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nStart\ntransparent\n\nDelay\ntransparent\n\nMoveTrigger\ntransparent\n\nTutorial\ntransparent\n\nBackground\nlightgreen green\n01000\n00110\n10010\n10100\n01001\n\nPickupBG\nlightgrey lightgreen\n00000\n01110\n01110\n01110\n00000\n\nWater1\nblue white lightblue\n20010\n02002\n12020\n00220\n02002\n\nWater2\nblue white lightblue\n02000\n20210\n00202\n01022\n20200\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\n(Player\nyellow black\n.000.\n01010\n10001\n01110\n.000.)\n\nFromD\ngrey darkbrown\n.....\n.....\n1...1\n0...0\n0...0\n\nFromU\ngrey darkbrown\n0...0\n0...0\n1...1\n.....\n.....\n\nFromL\ngrey darkbrown\n001..\n.....\n.....\n.....\n001..\n\nFromR\ngrey darkbrown\n..100\n.....\n.....\n.....\n..100\n\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\nCrossing\ngrey grey\n01110\n1...1\n1...1\n1...1\n01110\n(01010\n1...1\n0...0\n1...1\n01010)\n\nDRTrack\ngrey darkbrown\n...00\n..0..\n.01..\n0..1.\n0...1\n\nDLTrack\ngrey darkbrown\n00...\n..0..\n..10.\n.1..0\n1...0\n\nULTrack\ngrey darkbrown\n1...0\n.1..0\n..10.\n..0..\n00...\n\nURTrack\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\n(Smoke1\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\nBluePassengerWaiting\nDarkBrown Blue DarkBrown DarkBlue\n..0..\n.111.\n21112\n23332\n.3.3.\n\nBluePassengerOnCart\nDarkBrown Blue DarkBrown DarkBlue\n.....\n..0..\n.111.\n.111.\n.....\n\nBlueTarget\nlightblue darkbrown\n00000\n01110\n01110\n01110\n00000\n\nRedPassengerWaiting\nDarkBrown Red DarkBrown DarkRed\n..0..\n.111.\n21112\n23332\n.3.3.\n\nRedPassengerOnCart\nDarkBrown Red DarkBrown DarkRed\n.....\n..0..\n.111.\n.111.\n.....\n\nRedTarget\nlightRed darkbrown\n00000\n01110\n01110\n01110\n00000\n\nZero 0\nWhite Black\n10011\n01101\n01101\n01101\n10011\n\nOne 1\nWhite Black\n10011\n11011\n11011\n11011\n10001\n\nTwo 2\nWhite Black\n10011\n11101\n11011\n10111\n10001\n\nThree 3\nWhite Black\n10011\n11101\n11011\n11101\n10011\n\nFour 4\nWhite Black\n10101\n10101\n10001\n11101\n11101\n\nFive 5\nWhite Black\n10001\n10111\n10011\n11101\n10011\n\nSix 6\nWhite Black\n11001\n10111\n10001\n10110\n11001\n\nSeven 7\nWhite Black\n10001\n11101\n11011\n11011\n11011\n\nEight 8\nWhite Black\n11001\n10110\n11001\n10110\n11001\n\nNine 9\nWhite Black\n11001\n10110\n11000\n11110\n11001\n\nBlack\nblack\n\n=======\nLEGEND\n=======\n\n. = Background\nM = Mountain\n% = Forest\n~ = Water1\n, = Beach\n? = Tutorial\n\n| = VTrack\n- = HTrack\n+ = Crossing\n\n# = Black\n\nConnectsL = DLTrack or ULTrack or HTrack\nConnectsR = DRTrack or URTrack or HTrack\nConnectsU = ULTrack or URTrack or VTrack\nConnectsD = DLTrack or DRTrack or VTrack\n\nU = FromD and Start\nD = FromU and Start\nL = FromR and Start\nR = FromL and Start\n\n* = BluePassengerWaiting and PickupBG\nO = BlueTarget\n\n@ = RedPassengerWaiting and PickupBG\n! = RedTarget\n\nPlayer = FromD or FromU or FromL or FromR\n\nWater = Water1 or Water2\n\nTrack = VTrack or HTrack or URTrack or ULTrack or DRTrack or DLTrack or Crossing\n\nTrain = UTrain or DTrain or LTrain or RTrain\n\nTarget = BlueTarget or RedTarget\n\nPassengerWaiting = BluePassengerWaiting or RedPassengerWaiting\nPassengerOnCart = BluePassengerOnCart or RedPassengerOnCart\n\nPassenger = PassengerWaiting or PassengerOnCart\n\nNumber = 0 or 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9\n\nSolid = Mountain or Forest or Water or Black or Number\n\n=======\nSOUNDS\n=======\n\nSFX0 91301709\nSFX1 53409305\nSFX2 38557307\nSFX3 99431502\n\nEndLevel 78709508\n\nTrain Move 88405308\n\nTrack Create 24611507\n\nUndo 77031907\nTrack Destroy 77031907\n\nPassengerOnCart Create 77365107\nPassengerWaiting Create 18891907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Beach, Number, Black\nTrack, Solid\nTrain, Cart, PickupBG\nStart, Delay, MoveTrigger, Target\nTutorial\nPassenger\n\n======\nRULES\n======\n\n(spawn train)\n\nleft [ Track | Start Player ] -> [ LTrain Track Start | Player ]\nright [ Track | Start Player ] -> [ RTrain Track Start | Player ]\nup [ Track | Start Player ] -> [ UTrain Track Start | Player ]\ndown [ Track | Start Player ] -> [ DTrain Track Start | Player ]\n\n[ Start | Track no Train no Cart ] -> [ Start | Track Cart Start ]\n\n[ Start ] -> []\n\n(lay track)\n\n[ > Player | Passenger ] -> cancel\n[ > Player | Target ] -> cancel\n[ > Player | Solid ] -> cancel\n[ > Player | Train ] -> cancel\n\nleft [ left FromL | ConnectsL no Train ] -> [ | FromL ]\nleft [ left FromL | ConnectsU no Train ] -> [ | FromU ]\nleft [ left FromL | ConnectsD no Train ] -> [ | FromD ]\n\nright [ right FromR | ConnectsR no Train ] -> [ | FromR ]\nright [ right FromR | ConnectsU no Train ] -> [ | FromU ]\nright [ right FromR | ConnectsD no Train ] -> [ | FromD ]\n\nup [ up FromU | ConnectsL no Train ] -> [ | FromL ]\nup [ up FromU | ConnectsR no Train ] -> [ | FromR ]\nup [ up FromU | ConnectsU no Train ] -> [ | FromU ]\n\ndown [ down FromD | ConnectsL no Train ] -> [ | FromL ]\ndown [ down FromD | ConnectsR no Train ] -> [ | FromR ]\ndown [ down FromD | ConnectsD no Train ] -> [ | FromD ]\n\n[ left FromU no Track ] -> [ left FromR ULTrack ]\n[ right FromU no Track ] -> [ right FromL URTrack ]\n[ down FromU no Track ] -> [ down FromU VTrack ]\n\n[ left FromD no Track ] -> [ left FromR DLTrack ]\n[ right FromD no Track ] -> [ right FromL DRTrack ]\n[ up FromD no Track ] -> [ up FromD VTrack ]\n\n[ up FromL no Track ] -> [ up FromD ULTrack ]\n[ down FromL no Track ] -> [ down FromU DLTrack ]\n[ right FromL no Track ] -> [ right FromL HTrack ]\n\n[ up FromR no Track ] -> [ up FromD URTrack ]\n[ down FromR no Track ] -> [ down FromU DRTrack ]\n[ left FromR no Track ] -> [ left FromR HTrack ]\n\nleft [ ConnectsL | < Player ] -> [ ConnectsL MoveTrigger | ]\nright [ ConnectsR | < Player ] -> [ ConnectsR MoveTrigger | ]\nup [ ConnectsU | < Player ] -> [ ConnectsU MoveTrigger | ]\ndown [ ConnectsD | < Player ] -> [ ConnectsD MoveTrigger | ]\n\nlate [ Player Track ] -> cancel\n\n(start train)\n\n[ MoveTrigger ] [ UTrain ] -> [ MoveTrigger ] [ up UTrain ]\n[ MoveTrigger ] [ DTrain ] -> [ MoveTrigger ] [ down DTrain ]\n[ MoveTrigger ] [ LTrain ] -> [ MoveTrigger ] [ left LTrain ]\n[ MoveTrigger ] [ RTrain ] -> [ MoveTrigger ] [ right RTrain ]\n\n[ Delay ] [ moving Train ] -> [ Delay ] [ Train ]\n\n[ Delay ] [ MoveTrigger ] -> [ Delay ] [ action MoveTrigger ]\n\n[ > Train | Solid ] -> cancel\n[ > Train | Passenger ] -> cancel\n\n(cart follows train)\n\nleft [ MoveTrigger Cart ConnectsL | Cart ] -> [ MoveTrigger < Cart ConnectsL | Cart ]\nright [ MoveTrigger Cart ConnectsR | Cart ] -> [ MoveTrigger < Cart ConnectsR | Cart ]\nup [ MoveTrigger Cart ConnectsU | Cart ] -> [ MoveTrigger < Cart ConnectsU | Cart ]\ndown [ MoveTrigger Cart ConnectsD | Cart ] -> [ MoveTrigger < Cart ConnectsD | Cart ]\n\n[ stationary Cart | moving Train ] -> [ > Cart | moving Train ] again\n[ stationary Cart | moving Cart ] -> [ > Cart | moving Cart ]\n\n[ PassengerOnCart moving Cart ] -> [ moving PassengerOnCart moving Cart ]\n\n(train turns when entering corners)\nup [ > UTrain | DRTrack ] -> [ > RTrain | DRTrack ]\nup [ > UTrain | DLTrack ] -> [ > LTrain | DLTrack ]\n\nright [ > RTrain | DLTrack ] -> [ > DTrain | DLTrack ]\nright [ > RTrain | ULTrack ] -> [ > UTrain | ULTrack ]\n\ndown [ > DTrain | URTrack ] -> [ > RTrain | URTrack ]\ndown [ > DTrain | ULTrack ] -> [ > LTrain | ULTrack ]\n\nleft [ > LTrain | DRTrack ] -> [ > DTrain | DRTrack ]\nleft [ > LTrain | URTrack ] -> [ > UTrain | URTrack ]\n\n(Passengers get on/off)\n\nlate [ Delay no PassengerWaiting no PassengerOnCart ] -> [] again\n\nlate [ BluePassengerWaiting Delay no Cart no Target | Cart no PassengerOnCart ] -> [ Delay | Cart BluePassengerOnCart ] again\nlate [ RedPassengerWaiting Delay no Cart no Target | Cart no PassengerOnCart ] -> [ Delay | Cart RedPassengerOnCart ] again\n\nlate [ PassengerWaiting Delay no Cart no Target | Cart PassengerOnCart ] -> [ PassengerWaiting | Cart PassengerOnCart ] again\nlate [ PassengerWaiting no Cart no Delay no Target | Cart no PassengerOnCart ] -> [ PassengerWaiting Delay | Cart ] again\n\nlate [ BluePassengerOnCart Delay Cart | no PassengerWaiting BlueTarget ] -> [ Delay Cart | BluePassengerWaiting BlueTarget ] again\nlate [ RedPassengerOnCart Delay Cart | no PassengerWaiting RedTarget ] -> [ Delay Cart | RedPassengerWaiting RedTarget ] again\n\nlate [ BluePassengerOnCart Cart no Delay | no PassengerWaiting BlueTarget ] -> [ BluePassengerOnCart Cart Delay | BlueTarget ] again\nlate [ RedPassengerOnCart Cart no Delay | no PassengerWaiting RedTarget ] -> [ RedPassengerOnCart Cart Delay | RedTarget ] again\n\n(Train leaves world)\n\n[ stationary MoveTrigger Train ] [ Tutorial ] [ Passenger no Target ] -> message You have to take all the passengers to the blue station\n\n[ stationary MoveTrigger Train ] -> [ MoveTrigger ] again\n[ MoveTrigger Cart ] -> [ MoveTrigger ] again\n[ MoveTrigger PassengerOnCart ] -> [ MoveTrigger ] again\n\n==============\nWINCONDITIONS\n==============\n\nNo train\nNo cart\nall target on passengerWaiting\n\n======= \nLEVELS\n=======\n\nmessage Being a train route planner is very satisfying\n\n.......|.....\n.............\n.............\n....%........\n..........%..\n---r.........\n.............\n......%......\n.............\n.............\n\nmessage Until you have to deal with passengers\n\n.............\n.............\n..o......*...\n..o......*...\n..o......*..-\n..o......*...\n......U......\n......|......\n.?....|......\n......|......\n1############\n\n.............\n..o......*...\n..o......*...\n%.o......*...\n..o......*..-\n..o......*...\n..o.....%*...\n.............\n---r.........\n.............\n2############\n\n.....|....\n..%.......\n..oo...*..\n..oo%..*..\n..........\n...%...*..\n.......*..\n..........\n---r......\n..........\n3#########\n\n............\n.....%......\n....@..!....\n....@..!.%..\n...........-\n.u..*..o.%..\n.|..*..o....\n.|....%.....\n.|..........\n4###########\n\n(............\n-...........\n........**..\n........**..\n.!..........\n.!..........\n.!.....o....\n.!.....o....\n.......o..u.\n...@@..o..|.\n...@@.....|.\n..........|.)\n\n............\n............\n-......o..*.\n.......o.%*.\n.......o..*.\n..@@@.......\n............\n...%........\n............\n..!!!...l---\n............\n5###########\n\n..............\n..............\n....!!!.**....\n..............\n.....@........\n---r.........-\n.....*........\n..............\n....ooo.@@....\n..............\n..............\n6#############\n\n...........%........\n....................\n....*.*.*..%..ooo...\n....................\n...........%........\n---r...............-\n...........%........\n....................\n....@.@.@..%..!!!...\n....................\n...........%........\n7###################\n\n............\n............\n....@...!...\n....@...!...\n....@%.%!...\n...........-\n....*%.%o...\n.u..*...o...\n.|..*...o...\n.|..........\n.|..........\n8###########\n\n..............\n.............-\n...@.......*..\n......!.o.....\n...*..!.o..@..\n.u....!.o.....\n.|.@.......*..\n.|............\n.|............\n9#############\n\n...........\n...........\n.o.....*...\n.o...%.*...\n.o.....*..-\n.o.%...*...\n.o.....*...\n...........\n...........\n---r.......\n...........\n10#########\n\n................\n................\n...@@@..........\n........ooo.....\n................\n---r...........-\n................\n........!!!.....\n...***..........\n................\n................\n11##############\n\nmessage Thanks for playing!\n\n",[3,3,3,0,0,0,0,0,0,1,0,0],"background:0,0,0,0,0,0,0,0,background htrack:1,0,\nbackground three:2,0,0,0,0,0,0,0,0,1,\n0,background black:3,0,background forest:4,background bluetarget:5,5,0,0,0,0,\n1,0,3,0,0,5,5,0,4,0,\n0,1,0,3,0,0,0,4,0,0,\n0,0,1,0,3,background movetrigger vtrack:6,background vtrack:7,background urtrack:8,0,0,\n0,0,0,1,0,3,0,0,background dltrack:9,7,\n7,7,7,7,background ultrack:10,0,3,0,0,background bluepassengerwaiting pickupbg:11,\n11,0,background pickupbg:12,12,0,0,0,3,0,0,\n0,0,0,0,0,0,0,0,3,0,\n0,0,0,0,0,0,0,0,0,3,\n",5,"1627778440298.4922"] + ["title Train Braining\nauthor Alan Hazelden\nhomepage http://www.draknek.org\n\ncolor_palette pastel\n\nnoaction\n\nagain_interval 0.08\nkey_repeat_interval 0.16\n\n(verbose_logging)\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nStart\ntransparent\n\nDelay\ntransparent\n\nMoveTrigger\ntransparent\n\nTutorial\ntransparent\n\nBackground\nlightgreen green\n01000\n00110\n10010\n10100\n01001\n\nPickupBG\nlightgrey lightgreen\n00000\n01110\n01110\n01110\n00000\n\nWater1\nblue white lightblue\n20010\n02002\n12020\n00220\n02002\n\nWater2\nblue white lightblue\n02000\n20210\n00202\n01022\n20200\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\n(Player\nyellow black\n.000.\n01010\n10001\n01110\n.000.)\n\nFromD\ngrey darkbrown\n.....\n.....\n1...1\n0...0\n0...0\n\nFromU\ngrey darkbrown\n0...0\n0...0\n1...1\n.....\n.....\n\nFromL\ngrey darkbrown\n001..\n.....\n.....\n.....\n001..\n\nFromR\ngrey darkbrown\n..100\n.....\n.....\n.....\n..100\n\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\nCrossing\ngrey grey\n01110\n1...1\n1...1\n1...1\n01110\n(01010\n1...1\n0...0\n1...1\n01010)\n\nDRTrack\ngrey darkbrown\n...00\n..0..\n.01..\n0..1.\n0...1\n\nDLTrack\ngrey darkbrown\n00...\n..0..\n..10.\n.1..0\n1...0\n\nULTrack\ngrey darkbrown\n1...0\n.1..0\n..10.\n..0..\n00...\n\nURTrack\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\n(Smoke1\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\nBluePassengerWaiting\nDarkBrown Blue DarkBrown DarkBlue\n..0..\n.111.\n21112\n23332\n.3.3.\n\nBluePassengerOnCart\nDarkBrown Blue DarkBrown DarkBlue\n.....\n..0..\n.111.\n.111.\n.....\n\nBlueTarget\nlightblue darkbrown\n00000\n01110\n01110\n01110\n00000\n\nRedPassengerWaiting\nDarkBrown Red DarkBrown DarkRed\n..0..\n.111.\n21112\n23332\n.3.3.\n\nRedPassengerOnCart\nDarkBrown Red DarkBrown DarkRed\n.....\n..0..\n.111.\n.111.\n.....\n\nRedTarget\nlightRed darkbrown\n00000\n01110\n01110\n01110\n00000\n\nZero 0\nWhite Black\n10011\n01101\n01101\n01101\n10011\n\nOne 1\nWhite Black\n10011\n11011\n11011\n11011\n10001\n\nTwo 2\nWhite Black\n10011\n11101\n11011\n10111\n10001\n\nThree 3\nWhite Black\n10011\n11101\n11011\n11101\n10011\n\nFour 4\nWhite Black\n10101\n10101\n10001\n11101\n11101\n\nFive 5\nWhite Black\n10001\n10111\n10011\n11101\n10011\n\nSix 6\nWhite Black\n11001\n10111\n10001\n10110\n11001\n\nSeven 7\nWhite Black\n10001\n11101\n11011\n11011\n11011\n\nEight 8\nWhite Black\n11001\n10110\n11001\n10110\n11001\n\nNine 9\nWhite Black\n11001\n10110\n11000\n11110\n11001\n\nBlack\nblack\n\n=======\nLEGEND\n=======\n\n. = Background\nM = Mountain\n% = Forest\n~ = Water1\n, = Beach\n? = Tutorial\n\n| = VTrack\n- = HTrack\n+ = Crossing\n\n# = Black\n\nConnectsL = DLTrack or ULTrack or HTrack\nConnectsR = DRTrack or URTrack or HTrack\nConnectsU = ULTrack or URTrack or VTrack\nConnectsD = DLTrack or DRTrack or VTrack\n\nU = FromD and Start\nD = FromU and Start\nL = FromR and Start\nR = FromL and Start\n\n* = BluePassengerWaiting and PickupBG\nO = BlueTarget\n\n@ = RedPassengerWaiting and PickupBG\n! = RedTarget\n\nPlayer = FromD or FromU or FromL or FromR\n\nWater = Water1 or Water2\n\nTrack = VTrack or HTrack or URTrack or ULTrack or DRTrack or DLTrack or Crossing\n\nTrain = UTrain or DTrain or LTrain or RTrain\n\nTarget = BlueTarget or RedTarget\n\nPassengerWaiting = BluePassengerWaiting or RedPassengerWaiting\nPassengerOnCart = BluePassengerOnCart or RedPassengerOnCart\n\nPassenger = PassengerWaiting or PassengerOnCart\n\nNumber = 0 or 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9\n\nSolid = Mountain or Forest or Water or Black or Number\n\n=======\nSOUNDS\n=======\n\nSFX0 91301709\nSFX1 53409305\nSFX2 38557307\nSFX3 99431502\n\nEndLevel 78709508\n\nTrain Move 88405308\n\nTrack Create 24611507\n\nUndo 77031907\nTrack Destroy 77031907\n\nPassengerOnCart Create 77365107\nPassengerWaiting Create 18891907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Beach, Number, Black\nTrack, Solid\nTrain, Cart, PickupBG\nStart, Delay, MoveTrigger, Target\nTutorial\nPassenger\n\n======\nRULES\n======\n\n(spawn train)\n\nleft [ Track | Start Player ] -> [ LTrain Track Start | Player ]\nright [ Track | Start Player ] -> [ RTrain Track Start | Player ]\nup [ Track | Start Player ] -> [ UTrain Track Start | Player ]\ndown [ Track | Start Player ] -> [ DTrain Track Start | Player ]\n\n[ Start | Track no Train no Cart ] -> [ Start | Track Cart Start ]\n\n[ Start ] -> []\n\n(lay track)\n\n[ > Player | Passenger ] -> cancel\n[ > Player | Target ] -> cancel\n[ > Player | Solid ] -> cancel\n[ > Player | Train ] -> cancel\n\nleft [ left FromL | ConnectsL no Train ] -> [ | FromL ]\nleft [ left FromL | ConnectsU no Train ] -> [ | FromU ]\nleft [ left FromL | ConnectsD no Train ] -> [ | FromD ]\n\nright [ right FromR | ConnectsR no Train ] -> [ | FromR ]\nright [ right FromR | ConnectsU no Train ] -> [ | FromU ]\nright [ right FromR | ConnectsD no Train ] -> [ | FromD ]\n\nup [ up FromU | ConnectsL no Train ] -> [ | FromL ]\nup [ up FromU | ConnectsR no Train ] -> [ | FromR ]\nup [ up FromU | ConnectsU no Train ] -> [ | FromU ]\n\ndown [ down FromD | ConnectsL no Train ] -> [ | FromL ]\ndown [ down FromD | ConnectsR no Train ] -> [ | FromR ]\ndown [ down FromD | ConnectsD no Train ] -> [ | FromD ]\n\n[ left FromU no Track ] -> [ left FromR ULTrack ]\n[ right FromU no Track ] -> [ right FromL URTrack ]\n[ down FromU no Track ] -> [ down FromU VTrack ]\n\n[ left FromD no Track ] -> [ left FromR DLTrack ]\n[ right FromD no Track ] -> [ right FromL DRTrack ]\n[ up FromD no Track ] -> [ up FromD VTrack ]\n\n[ up FromL no Track ] -> [ up FromD ULTrack ]\n[ down FromL no Track ] -> [ down FromU DLTrack ]\n[ right FromL no Track ] -> [ right FromL HTrack ]\n\n[ up FromR no Track ] -> [ up FromD URTrack ]\n[ down FromR no Track ] -> [ down FromU DRTrack ]\n[ left FromR no Track ] -> [ left FromR HTrack ]\n\nleft [ ConnectsL | < Player ] -> [ ConnectsL MoveTrigger | ]\nright [ ConnectsR | < Player ] -> [ ConnectsR MoveTrigger | ]\nup [ ConnectsU | < Player ] -> [ ConnectsU MoveTrigger | ]\ndown [ ConnectsD | < Player ] -> [ ConnectsD MoveTrigger | ]\n\nlate [ Player Track ] -> cancel\n\n(start train)\n\n[ MoveTrigger ] [ UTrain ] -> [ MoveTrigger ] [ up UTrain ]\n[ MoveTrigger ] [ DTrain ] -> [ MoveTrigger ] [ down DTrain ]\n[ MoveTrigger ] [ LTrain ] -> [ MoveTrigger ] [ left LTrain ]\n[ MoveTrigger ] [ RTrain ] -> [ MoveTrigger ] [ right RTrain ]\n\n[ Delay ] [ moving Train ] -> [ Delay ] [ Train ]\n\n[ Delay ] [ MoveTrigger ] -> [ Delay ] [ action MoveTrigger ]\n\n[ > Train | Solid ] -> cancel\n[ > Train | Passenger ] -> cancel\n\n(cart follows train)\n\nleft [ MoveTrigger Cart ConnectsL | Cart ] -> [ MoveTrigger < Cart ConnectsL | Cart ]\nright [ MoveTrigger Cart ConnectsR | Cart ] -> [ MoveTrigger < Cart ConnectsR | Cart ]\nup [ MoveTrigger Cart ConnectsU | Cart ] -> [ MoveTrigger < Cart ConnectsU | Cart ]\ndown [ MoveTrigger Cart ConnectsD | Cart ] -> [ MoveTrigger < Cart ConnectsD | Cart ]\n\n[ stationary Cart | moving Train ] -> [ > Cart | moving Train ] again\n[ stationary Cart | moving Cart ] -> [ > Cart | moving Cart ]\n\n[ PassengerOnCart moving Cart ] -> [ moving PassengerOnCart moving Cart ]\n\n(train turns when entering corners)\nup [ > UTrain | DRTrack ] -> [ > RTrain | DRTrack ]\nup [ > UTrain | DLTrack ] -> [ > LTrain | DLTrack ]\n\nright [ > RTrain | DLTrack ] -> [ > DTrain | DLTrack ]\nright [ > RTrain | ULTrack ] -> [ > UTrain | ULTrack ]\n\ndown [ > DTrain | URTrack ] -> [ > RTrain | URTrack ]\ndown [ > DTrain | ULTrack ] -> [ > LTrain | ULTrack ]\n\nleft [ > LTrain | DRTrack ] -> [ > DTrain | DRTrack ]\nleft [ > LTrain | URTrack ] -> [ > UTrain | URTrack ]\n\n(Passengers get on/off)\n\nlate [ Delay no PassengerWaiting no PassengerOnCart ] -> [] again\n\nlate [ BluePassengerWaiting Delay no Cart no Target | Cart no PassengerOnCart ] -> [ Delay | Cart BluePassengerOnCart ] again\nlate [ RedPassengerWaiting Delay no Cart no Target | Cart no PassengerOnCart ] -> [ Delay | Cart RedPassengerOnCart ] again\n\nlate [ PassengerWaiting Delay no Cart no Target | Cart PassengerOnCart ] -> [ PassengerWaiting | Cart PassengerOnCart ] again\nlate [ PassengerWaiting no Cart no Delay no Target | Cart no PassengerOnCart ] -> [ PassengerWaiting Delay | Cart ] again\n\nlate [ BluePassengerOnCart Delay Cart | no PassengerWaiting BlueTarget ] -> [ Delay Cart | BluePassengerWaiting BlueTarget ] again\nlate [ RedPassengerOnCart Delay Cart | no PassengerWaiting RedTarget ] -> [ Delay Cart | RedPassengerWaiting RedTarget ] again\n\nlate [ BluePassengerOnCart Cart no Delay | no PassengerWaiting BlueTarget ] -> [ BluePassengerOnCart Cart Delay | BlueTarget ] again\nlate [ RedPassengerOnCart Cart no Delay | no PassengerWaiting RedTarget ] -> [ RedPassengerOnCart Cart Delay | RedTarget ] again\n\n(Train leaves world)\n\n[ stationary MoveTrigger Train ] [ Tutorial ] [ Passenger no Target ] -> message You have to take all the passengers to the blue station\n\n[ stationary MoveTrigger Train ] -> [ MoveTrigger ] again\n[ MoveTrigger Cart ] -> [ MoveTrigger ] again\n[ MoveTrigger PassengerOnCart ] -> [ MoveTrigger ] again\n\n==============\nWINCONDITIONS\n==============\n\nNo train\nNo cart\nall target on passengerWaiting\n\n======= \nLEVELS\n=======\n\nmessage Being a train route planner is very satisfying\n\n.......|.....\n.............\n.............\n....%........\n..........%..\n---r.........\n.............\n......%......\n.............\n.............\n\nmessage Until you have to deal with passengers\n\n.............\n.............\n..o......*...\n..o......*...\n..o......*..-\n..o......*...\n......U......\n......|......\n.?....|......\n......|......\n1############\n\n.............\n..o......*...\n..o......*...\n%.o......*...\n..o......*..-\n..o......*...\n..o.....%*...\n.............\n---r.........\n.............\n2############\n\n.....|....\n..%.......\n..oo...*..\n..oo%..*..\n..........\n...%...*..\n.......*..\n..........\n---r......\n..........\n3#########\n\n............\n.....%......\n....@..!....\n....@..!.%..\n...........-\n.u..*..o.%..\n.|..*..o....\n.|....%.....\n.|..........\n4###########\n\n(............\n-...........\n........**..\n........**..\n.!..........\n.!..........\n.!.....o....\n.!.....o....\n.......o..u.\n...@@..o..|.\n...@@.....|.\n..........|.)\n\n............\n............\n-......o..*.\n.......o.%*.\n.......o..*.\n..@@@.......\n............\n...%........\n............\n..!!!...l---\n............\n5###########\n\n..............\n..............\n....!!!.**....\n..............\n.....@........\n---r.........-\n.....*........\n..............\n....ooo.@@....\n..............\n..............\n6#############\n\n...........%........\n....................\n....*.*.*..%..ooo...\n....................\n...........%........\n---r...............-\n...........%........\n....................\n....@.@.@..%..!!!...\n....................\n...........%........\n7###################\n\n............\n............\n....@...!...\n....@...!...\n....@%.%!...\n...........-\n....*%.%o...\n.u..*...o...\n.|..*...o...\n.|..........\n.|..........\n8###########\n\n..............\n.............-\n...@.......*..\n......!.o.....\n...*..!.o..@..\n.u....!.o.....\n.|.@.......*..\n.|............\n.|............\n9#############\n\n...........\n...........\n.o.....*...\n.o...%.*...\n.o.....*..-\n.o.%...*...\n.o.....*...\n...........\n...........\n---r.......\n...........\n10#########\n\n................\n................\n...@@@..........\n........ooo.....\n................\n---r...........-\n................\n........!!!.....\n...***..........\n................\n................\n11##############\n\nmessage Thanks for playing!\n\n", [3, 3, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0], "background:0,0,0,0,0,0,0,0,background htrack:1,0,\nbackground three:2,0,0,0,0,0,0,0,0,1,\n0,background black:3,0,background forest:4,background bluetarget:5,5,0,0,0,0,\n1,0,3,0,0,5,5,0,4,0,\n0,1,0,3,0,0,0,4,0,0,\n0,0,1,0,3,background movetrigger vtrack:6,background vtrack:7,background urtrack:8,0,0,\n0,0,0,1,0,3,0,0,background dltrack:9,7,\n7,7,7,7,background ultrack:10,0,3,0,0,background bluepassengerwaiting pickupbg:11,\n11,0,background pickupbg:12,12,0,0,0,3,0,0,\n0,0,0,0,0,0,0,0,3,0,\n0,0,0,0,0,0,0,0,0,3,\n", 5, "1627778440298.4922"] ], [ `gallery: enqueue`, - ["title Enqueue\nauthor Allen Webster\nhomepage www.pushthegame.com\n\nnorepeat_action\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground .\nBLACK\n\nWall #\nDARKGRAY\n00.00\n0.0.0\n.000.\n0.0.0\n00.00\n\nPlayer S\nTRANSPARENT\n\nSelector\nWHITE\n00.00\n0...0\n.....\n0...0\n00.00\n\nRedBlock R\n#990000\n\nBlueBlock B\n#000099\n\nGreenBlock G\n#009900\n\nYellowBlock Y\n#888800\n\nPurpleBlock P\n#660066\n\nOrangeBlock O\n#994400\n\nPinkBlock I\nPINK\n\nBrownBlock W\n#222200\n\nRedPad\n#990000\n.....\n..0..\n.000.\n..0..\n.....\n\nBluePad \n#000099\n.....\n..0..\n.000.\n..0..\n.....\n\nGreenPad\n#009900\n.....\n..0..\n.000.\n..0..\n.....\n\nYellowPad\n#888800\n.....\n..0..\n.000.\n..0..\n.....\n\nPurplePad\n#660066\n.....\n..0..\n.000.\n..0..\n.....\n\nOrangePad\n#994400\n.....\n..0..\n.000.\n..0..\n.....\n\nPinkPad\nPINK\n.....\n..0..\n.000.\n..0..\n.....\n\nBrownPad\n#222200\n.....\n..0..\n.000.\n..0..\n.....\n\nQueueLocation\nTRANSPARENT\n\nQueueHead\nTRANSPARENT\n\nEnqueueHead\nTRANSPARENT\n\nTaker\nTRANSPARENT\n\nFiller\nTRANSPARENT\n\nWaitingFiller\nTRANSPARENT\n\nFillerTakerLocation\nTRANSPARENT\n\nModeGen\nTRANSPARENT\n\nWaitingGen\nTRANSPARENT\n\nSendMode\nTRANSPARENT\n\nSendModePerm\nTRANSPARENT\n\nReceiveMode\nTRANSPARENT\n\nReceiveModePerm\nTRANSPARENT\n\n=======\nLEGEND\n=======\n\n@ = Wall and Player and QueueLocation\nH = Wall and QueueLocation\nx = SendMode and Wall\nz = ReceiveMode and ModeGen and Wall\n? = WaitingGen and Wall\n+ = SendModePerm\n- = ReceiveModePerm\n\nBlock = RedBlock or BlueBlock or GreenBlock or YellowBlock or OrangeBlock or PurpleBlock or PinkBlock or BrownBlock\nPad = RedPad or BluePad or GreenPad or YellowPad or OrangePad or PurplePad or PinkPad or BrownPad\nHead = QueueHead or EnqueueHead\n\nF = Filler and Wall\n! = Taker and Wall\na = Filler and FillerTakerLocation and Wall\n\n[ = RedPad\n{ = BluePad\n] = GreenPad\n} = YellowPad\n: = PurplePad\n; = OrangePad\n' = PinkPad\n\" = BrownPad\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nQueueHead\nEnqueueHead\nQueueLocation\nWall\nRedBlock, BlueBlock, GreenBlock, YellowBlock, PurpleBlock, OrangeBlock, PinkBlock, BrownBlock\nRedPad, BluePad, GreenPad, YellowPad, PurplePad, OrangePad, PinkPad, BrownPad\nSelector\nFiller\nWaitingFiller\nTaker\nFillerTakerLocation\nModeGen\nWaitingGen\nSendMode\nReceiveMode\nSendModePerm\nReceiveModePerm\nPlayer\n\n====== \nRULES \n====== \n\nvertical [ > Player ] -> [ Player ]\n[ > Player | ... | Head ] -> [ | ... | Player Head ]\n[ > Player | ... | No Head ] -> [ Player | ... | ]\n\n[SendModePerm][ action Player ][ Selector Block ][ Filler ] -> [SendModePerm][ action Player ][ Wall Selector ][ RIGHT Filler Block ]\n\n[ReceiveModePerm][ action Player ][ Selector ][ Taker Block ] -> [ReceiveModePerm][ action Player ][ Selector Block ][ RIGHT Taker Wall ]\n\n(kill pads)\n[RedBlock RedPad] -> [RedBlock]\n[BlueBlock BluePad] -> [BlueBlock]\n[GreenBlock GreenPad] -> [GreenBlock]\n[YellowBlock YellowPad] -> [YellowBlock]\n[PurpleBlock PurplePad] -> [PurpleBlock]\n[OrangeBlock OrangePad] -> [OrangeBlock]\n[PinkBlock PinkPad] -> [PinkBlock]\n[BrownBlock BrownPad] -> [BrownBlock]\n\n(queue locations generating appropriate management types)\nhorizontal [QueueLocation | ... | SendMode] -> [QueueLocation QueueHead | ... | SendMode]\n[SendMode][Player No Head][QueueLocation] -> [SendMode][][QueueLocation Player]\n[SendMode] [ReceiveModePerm] -> [] [SendModePerm]\n[SendMode] -> []\n\nhorizontal [QueueLocation | ... | ReceiveMode] -> [QueueLocation EnqueueHead | ... | ReceiveMode]\n[ReceiveMode][Player No Head][QueueLocation] -> [ReceiveMode][][QueueLocation Player]\n[ReceiveMode] [SendModePerm] -> [] [ReceiveModePerm]\n[ReceiveMode] -> []\n\n(moving the player, queuehead and selector upon an action)\n[ action Player Head ] -> [ RIGHT Player RIGHT Head ]\nlate down [ QueueHead | No Block ] -> [ | ]\nlate down [ EnqueueHead | Wall ] -> [ | Wall ]\nlate horizontal [ Player No Head | ... | Head ] -> [ | ... | Player Head ]\n\n(selector always goes with player)\nlate down [ Player | No Selector ] -> [ Player | Selector ]\nlate down [ No Player | Selector ] -> [ | ]\nlate [Selector Wall] -> [Wall]\n\n(fix filler/taker advance mode hack)\nlate up [ Filler Wall | No Wall ] -> [ Wall | Filler ]\nlate down [ Filler | ... | Filler ] -> [ Filler | ... | WaitingFiller ]\nlate up [ Taker Wall | No Taker ] -> [ Wall | Taker ]\n\n(killing the filler/taker when it is finished)\nlate [ Taker No Block ][ModeGen] -> [][SendMode] again\nlate up [ Filler Wall | Wall ][WaitingGen] up [FillerTakerLocation | Block ][WaitingFiller] -> [ Wall | Wall ][ModeGen ReceiveMode][ | Block Taker][Filler] again\n\n==============\nWINCONDITIONS\n==============\n\nNo Pad\n\n======= \nLEVELS\n=======\n\n(level 1)\n#@###H#x\n#RR##BB#\n########\n+.......\n########\n##{[{[##\n##F#####\n\n(level 2)\n#@###H#x\n#RB##GR#\n########\n+.......\n########\n##[]{[##\n##F#####\n\nMessage The problem grows\n\n(level 3)\n########\n##RBRB##\n##!#####\n-.......\n#@###H#z\n#..##..#\n########\n........\n########\n##{[{[##\n##F#####\n\n(level 4)\n########\n##RGBY##\n##!#####\n-.......\n#@###H#z\n#..##..#\n########\n........\n########\n##][}{##\n##F#####\n\n(level 5)\n##########\n##RGRROR##\n##!#######\n-.........\n#@####H##z\n#...##...#\n##########\n..........\n##########\n##[;[[][##\n##F#######\n\n(level 6)\n##########\n##RRGORR##\n##!#######\n-.........\n#@####H##z\n#...##...#\n##########\n..........\n##########\n##[;[[][##\n##F#######\n\nMessage Mind the subsequences\n\n(level 7)\n##########\n##RGBYOP##\n##!#######\n-.........\n#@####H##z\n#...##...#\n##########\n..........\n##########\n##[;]{}:##\n##F#######\n\n(level 8)\n##########\n##RGBYOP##\n##!#######\n-.........\n#@####H##z\n#...##...#\n##########\n..........\n##########\n##[];:{}##\n##F#######\n\nMessage One shall not be enough\n\n(level 9)\n############\n##RGGBBYYR##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##]][[}}{{##\n##F#########\n \n(level 10)\n############\n##RRGGBBYY##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##[}[}]{]{##\n##F#########\n\n(level 11)\n############\n##GRRRRRRB##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##{[[[[[[]##\n##F#########\n\n(level 13)\n############\n##RGBYOPIW##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##\";:']{}[##\n##F#########\n\n(level 14)\n############\n##RGBYOPIW##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##\"]{};:'[##\n##F#########\n\n(level 15)\n############\n##RGBYOPIW##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##\";:]'{}[##\n##F#########\n\nMessage Thanks for playing!\n",[3,0,4,1,1,4,3,4,1,4,2,4,3,4,4,4],"background wall:0,0,0,background sendmodeperm:1,0,0,0,background:2,\n0,0,0,0,0,0,2,background queuelocation wall:3,\n0,0,2,0,0,0,0,0,\n0,2,0,0,0,2,0,background greenblock:4,\n0,0,0,0,2,background player wall:5,0,0,\n2,0,background redblock:6,0,0,0,0,2,\n0,0,0,2,0,background blueblock yellowpad:7,0,0,\n0,0,2,3,0,0,2,0,\nbackground bluepad yellowblock:8,0,0,0,0,2,0,0,\n0,2,0,background filler wall:9,0,0,0,0,\n2,0,0,0,2,0,0,0,\n",4,"1627778464558.232"] + ["title Enqueue\nauthor Allen Webster\nhomepage www.pushthegame.com\n\nnorepeat_action\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground .\nBLACK\n\nWall #\nDARKGRAY\n00.00\n0.0.0\n.000.\n0.0.0\n00.00\n\nPlayer S\nTRANSPARENT\n\nSelector\nWHITE\n00.00\n0...0\n.....\n0...0\n00.00\n\nRedBlock R\n#990000\n\nBlueBlock B\n#000099\n\nGreenBlock G\n#009900\n\nYellowBlock Y\n#888800\n\nPurpleBlock P\n#660066\n\nOrangeBlock O\n#994400\n\nPinkBlock I\nPINK\n\nBrownBlock W\n#222200\n\nRedPad\n#990000\n.....\n..0..\n.000.\n..0..\n.....\n\nBluePad \n#000099\n.....\n..0..\n.000.\n..0..\n.....\n\nGreenPad\n#009900\n.....\n..0..\n.000.\n..0..\n.....\n\nYellowPad\n#888800\n.....\n..0..\n.000.\n..0..\n.....\n\nPurplePad\n#660066\n.....\n..0..\n.000.\n..0..\n.....\n\nOrangePad\n#994400\n.....\n..0..\n.000.\n..0..\n.....\n\nPinkPad\nPINK\n.....\n..0..\n.000.\n..0..\n.....\n\nBrownPad\n#222200\n.....\n..0..\n.000.\n..0..\n.....\n\nQueueLocation\nTRANSPARENT\n\nQueueHead\nTRANSPARENT\n\nEnqueueHead\nTRANSPARENT\n\nTaker\nTRANSPARENT\n\nFiller\nTRANSPARENT\n\nWaitingFiller\nTRANSPARENT\n\nFillerTakerLocation\nTRANSPARENT\n\nModeGen\nTRANSPARENT\n\nWaitingGen\nTRANSPARENT\n\nSendMode\nTRANSPARENT\n\nSendModePerm\nTRANSPARENT\n\nReceiveMode\nTRANSPARENT\n\nReceiveModePerm\nTRANSPARENT\n\n=======\nLEGEND\n=======\n\n@ = Wall and Player and QueueLocation\nH = Wall and QueueLocation\nx = SendMode and Wall\nz = ReceiveMode and ModeGen and Wall\n? = WaitingGen and Wall\n+ = SendModePerm\n- = ReceiveModePerm\n\nBlock = RedBlock or BlueBlock or GreenBlock or YellowBlock or OrangeBlock or PurpleBlock or PinkBlock or BrownBlock\nPad = RedPad or BluePad or GreenPad or YellowPad or OrangePad or PurplePad or PinkPad or BrownPad\nHead = QueueHead or EnqueueHead\n\nF = Filler and Wall\n! = Taker and Wall\na = Filler and FillerTakerLocation and Wall\n\n[ = RedPad\n{ = BluePad\n] = GreenPad\n} = YellowPad\n: = PurplePad\n; = OrangePad\n' = PinkPad\n\" = BrownPad\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nQueueHead\nEnqueueHead\nQueueLocation\nWall\nRedBlock, BlueBlock, GreenBlock, YellowBlock, PurpleBlock, OrangeBlock, PinkBlock, BrownBlock\nRedPad, BluePad, GreenPad, YellowPad, PurplePad, OrangePad, PinkPad, BrownPad\nSelector\nFiller\nWaitingFiller\nTaker\nFillerTakerLocation\nModeGen\nWaitingGen\nSendMode\nReceiveMode\nSendModePerm\nReceiveModePerm\nPlayer\n\n====== \nRULES \n====== \n\nvertical [ > Player ] -> [ Player ]\n[ > Player | ... | Head ] -> [ | ... | Player Head ]\n[ > Player | ... | No Head ] -> [ Player | ... | ]\n\n[SendModePerm][ action Player ][ Selector Block ][ Filler ] -> [SendModePerm][ action Player ][ Wall Selector ][ RIGHT Filler Block ]\n\n[ReceiveModePerm][ action Player ][ Selector ][ Taker Block ] -> [ReceiveModePerm][ action Player ][ Selector Block ][ RIGHT Taker Wall ]\n\n(kill pads)\n[RedBlock RedPad] -> [RedBlock]\n[BlueBlock BluePad] -> [BlueBlock]\n[GreenBlock GreenPad] -> [GreenBlock]\n[YellowBlock YellowPad] -> [YellowBlock]\n[PurpleBlock PurplePad] -> [PurpleBlock]\n[OrangeBlock OrangePad] -> [OrangeBlock]\n[PinkBlock PinkPad] -> [PinkBlock]\n[BrownBlock BrownPad] -> [BrownBlock]\n\n(queue locations generating appropriate management types)\nhorizontal [QueueLocation | ... | SendMode] -> [QueueLocation QueueHead | ... | SendMode]\n[SendMode][Player No Head][QueueLocation] -> [SendMode][][QueueLocation Player]\n[SendMode] [ReceiveModePerm] -> [] [SendModePerm]\n[SendMode] -> []\n\nhorizontal [QueueLocation | ... | ReceiveMode] -> [QueueLocation EnqueueHead | ... | ReceiveMode]\n[ReceiveMode][Player No Head][QueueLocation] -> [ReceiveMode][][QueueLocation Player]\n[ReceiveMode] [SendModePerm] -> [] [ReceiveModePerm]\n[ReceiveMode] -> []\n\n(moving the player, queuehead and selector upon an action)\n[ action Player Head ] -> [ RIGHT Player RIGHT Head ]\nlate down [ QueueHead | No Block ] -> [ | ]\nlate down [ EnqueueHead | Wall ] -> [ | Wall ]\nlate horizontal [ Player No Head | ... | Head ] -> [ | ... | Player Head ]\n\n(selector always goes with player)\nlate down [ Player | No Selector ] -> [ Player | Selector ]\nlate down [ No Player | Selector ] -> [ | ]\nlate [Selector Wall] -> [Wall]\n\n(fix filler/taker advance mode hack)\nlate up [ Filler Wall | No Wall ] -> [ Wall | Filler ]\nlate down [ Filler | ... | Filler ] -> [ Filler | ... | WaitingFiller ]\nlate up [ Taker Wall | No Taker ] -> [ Wall | Taker ]\n\n(killing the filler/taker when it is finished)\nlate [ Taker No Block ][ModeGen] -> [][SendMode] again\nlate up [ Filler Wall | Wall ][WaitingGen] up [FillerTakerLocation | Block ][WaitingFiller] -> [ Wall | Wall ][ModeGen ReceiveMode][ | Block Taker][Filler] again\n\n==============\nWINCONDITIONS\n==============\n\nNo Pad\n\n======= \nLEVELS\n=======\n\n(level 1)\n#@###H#x\n#RR##BB#\n########\n+.......\n########\n##{[{[##\n##F#####\n\n(level 2)\n#@###H#x\n#RB##GR#\n########\n+.......\n########\n##[]{[##\n##F#####\n\nMessage The problem grows\n\n(level 3)\n########\n##RBRB##\n##!#####\n-.......\n#@###H#z\n#..##..#\n########\n........\n########\n##{[{[##\n##F#####\n\n(level 4)\n########\n##RGBY##\n##!#####\n-.......\n#@###H#z\n#..##..#\n########\n........\n########\n##][}{##\n##F#####\n\n(level 5)\n##########\n##RGRROR##\n##!#######\n-.........\n#@####H##z\n#...##...#\n##########\n..........\n##########\n##[;[[][##\n##F#######\n\n(level 6)\n##########\n##RRGORR##\n##!#######\n-.........\n#@####H##z\n#...##...#\n##########\n..........\n##########\n##[;[[][##\n##F#######\n\nMessage Mind the subsequences\n\n(level 7)\n##########\n##RGBYOP##\n##!#######\n-.........\n#@####H##z\n#...##...#\n##########\n..........\n##########\n##[;]{}:##\n##F#######\n\n(level 8)\n##########\n##RGBYOP##\n##!#######\n-.........\n#@####H##z\n#...##...#\n##########\n..........\n##########\n##[];:{}##\n##F#######\n\nMessage One shall not be enough\n\n(level 9)\n############\n##RGGBBYYR##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##]][[}}{{##\n##F#########\n \n(level 10)\n############\n##RRGGBBYY##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##[}[}]{]{##\n##F#########\n\n(level 11)\n############\n##GRRRRRRB##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##{[[[[[[]##\n##F#########\n\n(level 13)\n############\n##RGBYOPIW##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##\";:']{}[##\n##F#########\n\n(level 14)\n############\n##RGBYOPIW##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##\"]{};:'[##\n##F#########\n\n(level 15)\n############\n##RGBYOPIW##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##\";:]'{}[##\n##F#########\n\nMessage Thanks for playing!\n", [3, 0, 4, 1, 1, 4, 3, 4, 1, 4, 2, 4, 3, 4, 4, 4], "background wall:0,0,0,background sendmodeperm:1,0,0,0,background:2,\n0,0,0,0,0,0,2,background queuelocation wall:3,\n0,0,2,0,0,0,0,0,\n0,2,0,0,0,2,0,background greenblock:4,\n0,0,0,0,2,background player wall:5,0,0,\n2,0,background redblock:6,0,0,0,0,2,\n0,0,0,2,0,background blueblock yellowpad:7,0,0,\n0,0,2,3,0,0,2,0,\nbackground bluepad yellowblock:8,0,0,0,0,2,0,0,\n0,2,0,background filler wall:9,0,0,0,0,\n2,0,0,0,2,0,0,0,\n", 4, "1627778464558.232"] ], [ `gallery: tidy the cafe`, - ["title Tidy the Cafe!\nauthor Sally Bridgwater\nhomepage http://sallyanne.itch.io\n\nrealtime_interval 0.1\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground \nGrey DarkGrey\n00000\n01110\n01010\n01110\n00000\n\nTable\nYellow Red White\n(12121\n21212\n12121\n21212\n0...0)\n.....\n.121.\n.212.\n.121.\n.0.0.\n\nChairRightLoose\nYellow Red\n.....\n...0.\n.110.\n.110.\n.0.0.\n\nChairRightTuckedIn\nYellow Red\n.....\n..0..\n110..\n110..\n0.0..\n\nChairLeftLoose\nYellow Red\n.....\n.0...\n.011.\n.011.\n.0.0.\n\nChairLeftTuckedIn\nYellow Red\n.....\n..0..\n..011\n..011\n..0.0\n\nChairUpLoose\nYellow Red\n.....\n.000.\n.111.\n.111.\n.0.0.\n\nChairUpTuckedIn\nYellow Red\n.....\n.....\n.000.\n.111.\n.111.\n\nChairUpTuckedInOverlay\nYellow Red\n.0.0.\n.....\n.....\n.....\n.....\n\nChairDownLoose\nYellow Red\n.....\n.000.\n.000.\n.000.\n.0.0.\n\nChairDownTuckedIn\nYellow Red\n.000.\n.000.\n.000.\n.0.0.\n.....\n\nPlayer \nBlack White Brown Red\n..2..\n21312\n.111.\n.000.\n.0.0.\n\nTidy\nPink\n.....\n.....\n.....\n.....\n.....\n\n\nPlant\nGreen Orange\n.000.\n.000.\n11111\n.111.\n.111.\n\n\n\nCandleStick1\nBlack yellow white orange\n3.1.1\n2.2.2\n00000\n..0..\n.000.\n\nCandleStick2\nBlack yellow white orange\n1.3.1\n2.2.2\n00000\n..0..\n.000.\n\nCandleStick3\nBlack yellow white orange\n1.1.3\n2.2.2\n00000\n..0..\n.000.\n\nCandleStick4\nBlack yellow white orange\n1.1.1\n2.2.2\n00000\n..0..\n.000.\n\n\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Table\n@ = Player\nP = Plant\nC = CandleStick1\nL = ChairLeftLoose\nR = ChairRightLoose\nU = ChairUpLoose\nD = ChairDownLoose\n\nChairUp = ChairUpLoose or ChairUpTuckedIn\nChairDown = ChairDownLoose or ChairDownTuckedIn\nChairLeft = ChairLeftLoose or ChairLeftTuckedIn\nChairRight = ChairRightLoose or ChairRightTuckedIn\n\nChair = ChairUp or ChairDown or ChairLeft or ChairRight\nPushable = Chair or Table\nCandle = CandleStick1 or CandleStick2 or CandleStick3 or CandleStick4\n\nObstacle = Table or Candle or Plant\n\nTidyLeft = Obstacle or ChairLeft\nTidyRight = Obstacle or ChairRight\nTidyUp = Obstacle or ChairUp\nTidyDown = Obstacle or ChairDown\n\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTidy\nTable,Chair,Player,Plant,Candle\nChairUpTuckedInOverlay\n\n\n\n======\nRULES \n====== \n\n[ > Player | Pushable ] -> [ > Player | > Pushable ] again\n\n[ Candle ] -> [ action Candle ]\n[ action Candle ] -> [ random Candle ]\n\n[Tidy] -> [ ]\n[Table] ->[ Tidy Table]\n\nLeft [ Tidy Table | No TidyLeft] -> [ Table | ]\nRight[ Tidy Table | No TidyRight] -> [ Table | ]\nUp [ Tidy Table | No TidyUp] -> [Table | ]\nDown [ Tidy Table | No TidyDown] -> [Table | ]\n\nLeft [ Tidy Table | ChairLeft] -> [ Tidy Table | ChairLeft Tidy]\nRight[ Tidy Table | ChairRight] -> [ Tidy Table | ChairRight Tidy]\nUp [ Tidy Table | ChairUp] -> [ Tidy Table | ChairUp Tidy]\nDown [ Tidy Table | ChairDown] -> [ Tidy Table | ChairDown Tidy]\n\n[ ChairUp ] -> [ ChairUpLoose ]\n[ ChairDown ] -> [ ChairDownLoose ]\n[ ChairLeft ] -> [ ChairLeftLoose ]\n[ ChairRight ] -> [ ChairRightLoose ]\n\n[ Tidy ChairUp ] -> [ Tidy ChairUpTuckedIn ]\n[ Tidy ChairDown ] -> [ Tidy ChairDownTuckedIn ]\n[ Tidy ChairLeft ] -> [ Tidy ChairLeftTuckedIn ]\n[ Tidy ChairRight ] -> [ Tidy ChairRightTuckedIn ]\n\nLate [ ChairUpTuckedInOverlay ] -> [ ]\nLate Down [ ChairUpTuckedIn | ] -> [ ChairUpTuckedIn | ChairUpTuckedInOverlay ]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Table on Tidy \nAll Chair on Tidy\nsome Table\nsome Chair\n\n======= \nLEVELS\n=======\n\n(...u.\n...#r\n.l.d.\n....@)\n\n(....U.\n.#.D.R\n.L.@..\n......)\n\nc.up\n@l.r\n.d#.\n....\n\n(....\n@.ur\n..#.\npl#.\nl.dr\n....)\n\n#...#\n.drd.\n.r@l.\n.ulu.\n#...#\n\n...c...\n.u.c.u.\nl#r.l.r\n.#.@.d.\n.d.c...\n...c...\n\n.......\n..u#u..\n.l#@#r.\n..d#d..\n.......\n\n(...@...\n..#u#..\n.l.c.r.\n..dud..\n.......)\n\nc..c..c\n...u...\nc@r#l.c\n...d...\nc..c..c\n\n..u..\n.l#r.\n..d..\n.l#r.\n..@..\n.....\n\n\n\n(........\n....D.R.\n.#.P....\n@.L..#.R\n.DUU.L..\n........)\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",0,"tick","tick",1,"tick",0,"tick","tick",3,"tick","tick",0,"tick","tick",3,"tick","tick",3,0,"tick",3,"tick",2,2,1,"tick",1,"tick","tick",2,"tick","tick","tick","tick","tick","tick"],"background:0,0,background chairlefttuckedin tidy:1,0,0,0,0,\nbackground chairuptuckedin tidy:2,background chairuptuckedinoverlay table tidy:3,background table:4,background chairdownloose:5,0,0,0,\nbackground chairrighttuckedin tidy:6,0,0,0,background candlestick1:7,background candlestick3:8,0,\n0,background candlestick2:9,8,0,background player:10,0,0,\n0,0,0,0,background chairleftloose:11,5,0,\n0,0,background chairuploose:12,background chairrightloose:13,0,0,0,\n",2,"1627778539761.4514"] + ["title Tidy the Cafe!\nauthor Sally Bridgwater\nhomepage http://sallyanne.itch.io\n\nrealtime_interval 0.1\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground \nGrey DarkGrey\n00000\n01110\n01010\n01110\n00000\n\nTable\nYellow Red White\n(12121\n21212\n12121\n21212\n0...0)\n.....\n.121.\n.212.\n.121.\n.0.0.\n\nChairRightLoose\nYellow Red\n.....\n...0.\n.110.\n.110.\n.0.0.\n\nChairRightTuckedIn\nYellow Red\n.....\n..0..\n110..\n110..\n0.0..\n\nChairLeftLoose\nYellow Red\n.....\n.0...\n.011.\n.011.\n.0.0.\n\nChairLeftTuckedIn\nYellow Red\n.....\n..0..\n..011\n..011\n..0.0\n\nChairUpLoose\nYellow Red\n.....\n.000.\n.111.\n.111.\n.0.0.\n\nChairUpTuckedIn\nYellow Red\n.....\n.....\n.000.\n.111.\n.111.\n\nChairUpTuckedInOverlay\nYellow Red\n.0.0.\n.....\n.....\n.....\n.....\n\nChairDownLoose\nYellow Red\n.....\n.000.\n.000.\n.000.\n.0.0.\n\nChairDownTuckedIn\nYellow Red\n.000.\n.000.\n.000.\n.0.0.\n.....\n\nPlayer \nBlack White Brown Red\n..2..\n21312\n.111.\n.000.\n.0.0.\n\nTidy\nPink\n.....\n.....\n.....\n.....\n.....\n\n\nPlant\nGreen Orange\n.000.\n.000.\n11111\n.111.\n.111.\n\n\n\nCandleStick1\nBlack yellow white orange\n3.1.1\n2.2.2\n00000\n..0..\n.000.\n\nCandleStick2\nBlack yellow white orange\n1.3.1\n2.2.2\n00000\n..0..\n.000.\n\nCandleStick3\nBlack yellow white orange\n1.1.3\n2.2.2\n00000\n..0..\n.000.\n\nCandleStick4\nBlack yellow white orange\n1.1.1\n2.2.2\n00000\n..0..\n.000.\n\n\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Table\n@ = Player\nP = Plant\nC = CandleStick1\nL = ChairLeftLoose\nR = ChairRightLoose\nU = ChairUpLoose\nD = ChairDownLoose\n\nChairUp = ChairUpLoose or ChairUpTuckedIn\nChairDown = ChairDownLoose or ChairDownTuckedIn\nChairLeft = ChairLeftLoose or ChairLeftTuckedIn\nChairRight = ChairRightLoose or ChairRightTuckedIn\n\nChair = ChairUp or ChairDown or ChairLeft or ChairRight\nPushable = Chair or Table\nCandle = CandleStick1 or CandleStick2 or CandleStick3 or CandleStick4\n\nObstacle = Table or Candle or Plant\n\nTidyLeft = Obstacle or ChairLeft\nTidyRight = Obstacle or ChairRight\nTidyUp = Obstacle or ChairUp\nTidyDown = Obstacle or ChairDown\n\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTidy\nTable,Chair,Player,Plant,Candle\nChairUpTuckedInOverlay\n\n\n\n======\nRULES \n====== \n\n[ > Player | Pushable ] -> [ > Player | > Pushable ] again\n\n[ Candle ] -> [ action Candle ]\n[ action Candle ] -> [ random Candle ]\n\n[Tidy] -> [ ]\n[Table] ->[ Tidy Table]\n\nLeft [ Tidy Table | No TidyLeft] -> [ Table | ]\nRight[ Tidy Table | No TidyRight] -> [ Table | ]\nUp [ Tidy Table | No TidyUp] -> [Table | ]\nDown [ Tidy Table | No TidyDown] -> [Table | ]\n\nLeft [ Tidy Table | ChairLeft] -> [ Tidy Table | ChairLeft Tidy]\nRight[ Tidy Table | ChairRight] -> [ Tidy Table | ChairRight Tidy]\nUp [ Tidy Table | ChairUp] -> [ Tidy Table | ChairUp Tidy]\nDown [ Tidy Table | ChairDown] -> [ Tidy Table | ChairDown Tidy]\n\n[ ChairUp ] -> [ ChairUpLoose ]\n[ ChairDown ] -> [ ChairDownLoose ]\n[ ChairLeft ] -> [ ChairLeftLoose ]\n[ ChairRight ] -> [ ChairRightLoose ]\n\n[ Tidy ChairUp ] -> [ Tidy ChairUpTuckedIn ]\n[ Tidy ChairDown ] -> [ Tidy ChairDownTuckedIn ]\n[ Tidy ChairLeft ] -> [ Tidy ChairLeftTuckedIn ]\n[ Tidy ChairRight ] -> [ Tidy ChairRightTuckedIn ]\n\nLate [ ChairUpTuckedInOverlay ] -> [ ]\nLate Down [ ChairUpTuckedIn | ] -> [ ChairUpTuckedIn | ChairUpTuckedInOverlay ]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Table on Tidy \nAll Chair on Tidy\nsome Table\nsome Chair\n\n======= \nLEVELS\n=======\n\n(...u.\n...#r\n.l.d.\n....@)\n\n(....U.\n.#.D.R\n.L.@..\n......)\n\nc.up\n@l.r\n.d#.\n....\n\n(....\n@.ur\n..#.\npl#.\nl.dr\n....)\n\n#...#\n.drd.\n.r@l.\n.ulu.\n#...#\n\n...c...\n.u.c.u.\nl#r.l.r\n.#.@.d.\n.d.c...\n...c...\n\n.......\n..u#u..\n.l#@#r.\n..d#d..\n.......\n\n(...@...\n..#u#..\n.l.c.r.\n..dud..\n.......)\n\nc..c..c\n...u...\nc@r#l.c\n...d...\nc..c..c\n\n..u..\n.l#r.\n..d..\n.l#r.\n..@..\n.....\n\n\n\n(........\n....D.R.\n.#.P....\n@.L..#.R\n.DUU.L..\n........)\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", 1, "tick", 0, "tick", "tick", 3, "tick", "tick", 0, "tick", "tick", 3, "tick", "tick", 3, 0, "tick", 3, "tick", 2, 2, 1, "tick", 1, "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick"], "background:0,0,background chairlefttuckedin tidy:1,0,0,0,0,\nbackground chairuptuckedin tidy:2,background chairuptuckedinoverlay table tidy:3,background table:4,background chairdownloose:5,0,0,0,\nbackground chairrighttuckedin tidy:6,0,0,0,background candlestick1:7,background candlestick3:8,0,\n0,background candlestick2:9,8,0,background player:10,0,0,\n0,0,0,0,background chairleftloose:11,5,0,\n0,0,background chairuploose:12,background chairrightloose:13,0,0,0,\n", 2, "1627778539761.4514"] ], [ `gallery: flower dance`, - ["title Flower Dance\nauthor quat\nbackground_color lightbrown\ntext_color darkbrown\n\nrequire_player_movement\n\ncolor_palette 14\n\nagain_interval 0.1\n\nnoaction\n\n========\nOBJECTS\n========\n\nBackground .\nlightbrown\n\nPlayer\nred lightred\n.110.\n10000\n00000\n00000\n.000.\n\nMarker\ntransparent\n\nCheck &\nbrown\n.....\n.000.\n.0...\n.000.\n.....\n\nBud\nred green lightgreen\n.....\n.....\n...2.\n...1.\n...1.\n\nPlant\nred green lightgreen\n..0..\n.020.\n..01.\n..11.\n...1.\n\nWall #\ndarkgrey\n(darkgrey grey\n00000\n00100\n01110\n00100\n00000)\n\nEnd W\nbrown\n.....\n.000.\n.0.0.\n.000.\n.....\n\n=======\nLEGEND\n=======\n\nCollidable = Wall or Plant\n\nP = Player and Marker\n\n=======\nSOUNDS\n=======\n\nsfx7 34533704\nsfx1 78722500\nsfx2 38016702\nEndLevel 82634105\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nEnd\nCheck\nMarker\nBud\nPlayer, Wall, Plant\n\n\n======\nRULES\n======\n\n[> Player | No Collidable] -> [ | > Player] sfx7\n\n[Player] -> [Marker Player]\n\n[Bud Player] -> sfx2\n\n[Bud] -> [Plant]\n[Marker no Player] -> [Bud]\n\n[Player Check] -> [Player] checkpoint sfx1\n\n==============\nWINCONDITIONS\n==============\n\nSome Player\nAll Player on End\n\n=======\nLEVELS\n=======\n\nMessage Arrow keys to run across the garden.\nMessage Plant flowers in the dirt.\nMessage Don't land on the flower buds...\n\n......................#............#.............\n............#......#..#..#...#...................\n...........###..##...#...#....#....#.............\n...........##.##....#.#..#.#..#...#....#.........\n....##....#..##...##..#..#....#..#.#...##........\n........###..######....##.##..##.#.#.##..........\n...#######.#.###.#######.######..##..##.#........\n...#.#.###############.#####.##..##.#......#.....\n.....#.######.####.############.#####.###.#......\n.....#####.#..#..#..#.########..#.#######..#.....\n.......##.###########.#...#..###########.##......\n......######......###.#...#..##.....###.##.......\n..##.####.#........####...#####.###.###..#....#..\n.....#..###.........###...#####.###.#####.####...\n.#...######&....................###.########.....\n..#..##.###.........###...#####..&..###.###......\n...#.#.####........####...######....#####.....#..\n...#.#######......#####...#######.#######..#...##\n...#.#.#######.########...#######.#####.##.###...\n....#.####...#.#######.....##...#.##.###.#.#.....\n..###.#.#.####.##...#.......#...#.####.####.#....\n....#####.#..#.##.P.....w......##.##..#.###...#.#\n....#.###.#..#.##...#.......#...#.####...###.#...\n......########.#######.....##...#.#######........\n..##.##.######.########...###...#.###...###......\n.....##.##..........####.####.#.#.#######.#......\n.....#.##...........####.####...#.....#.#####....\n.....###............####.####...###...##..##...#.\n...#####................&####...###...####..##...\n.....###............#########.........####...#...\n.......##...........#########.........#.#.#......\n.##....#.#....&.....####################.#..#....\n....####.#############..##.####.#.####.##.#......\n.......###...#.##.##...####.###.#.###......#.#...\n..#.#.##.##.####.#####.##.#.#.#.##.#.##.##.#.....\n......#####......####.##.#.##.#####...#.####.....\n.....############.####.#..#...#.#.#.......#......\n.....####.##...#..#..........#...##...#..........\n.....#...#.....##.#..####...#...#..#....#........\n........#...#.#...##.....#.#.........#...........\n...........#..#...#.......#.....#................\n..............#....##....##.....#....#...........\n\n",[3,3,0,1,2,2,3,3,0,1],"background: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,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,background wall:1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,\n0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,1,1,0,1,\n0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,\n1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,1,0,0,1,1,1,1,1,1,0,0,1,0,0,\n0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,0,1,0,1,1,1,1,0,0,0,0,\n0,0,0,0,0,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0,0,1,0,1,1,1,0,1,0,0,0,0,0,0,0,1,1,1,1,1,0,1,0,1,\n1,1,1,1,1,1,0,0,0,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,0,1,\n1,1,1,1,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,0,0,background check:2,0,0,1,1,0,1,0,0,1,1,0,0,0,\n0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,1,1,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,1,\n0,1,0,0,1,0,0,0,0,1,0,1,1,1,1,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,\n0,0,0,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,0,0,0,2,1,0,1,0,1,0,0,1,1,1,0,0,0,1,0,1,1,\n1,1,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,1,1,0,1,0,0,0,\n0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,0,0,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,\n0,0,1,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,0,0,0,1,1,1,0,background plant:3,0,1,1,0,0,0,\n0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,1,0,0,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,\n1,1,0,0,1,0,1,0,0,0,1,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,0,0,0,0,1,\n0,0,1,0,0,0,1,1,1,0,0,0,1,1,0,1,1,1,1,1,0,0,0,1,1,1,1,1,0,1,1,1,1,0,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,\n0,1,1,1,1,1,1,0,1,1,1,1,0,0,0,0,0,1,1,1,1,0,1,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,1,1,1,1,0,1,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,\nbackground end:4,0,0,0,0,0,0,2,1,1,1,1,1,1,0,0,0,1,0,0,0,0,1,1,1,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,\n1,1,1,1,1,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,0,1,1,\n0,1,0,0,0,1,1,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,1,0,0,\n0,0,0,0,0,0,1,0,1,1,0,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,0,1,0,0,0,0,1,\n1,1,1,1,1,1,1,0,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,3,1,1,1,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,\n0,1,1,1,1,3,0,3,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,\n1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,0,1,0,1,1,0,0,0,0,1,1,1,1,1,0,1,0,1,1,1,2,0,0,0,0,0,0,0,0,0,0,background marker player:5,1,1,0,0,1,0,0,1,\n1,0,1,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,1,1,0,0,0,0,\n1,0,1,0,1,1,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,\n1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,0,1,1,0,1,background bud:6,0,0,0,3,1,1,0,1,0,0,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,\n1,0,1,0,1,1,1,1,1,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,0,0,1,1,0,1,1,0,1,1,0,0,1,0,1,0,1,\n1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,0,1,1,1,0,1,0,1,\n1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,0,1,1,1,1,1,0,1,0,1,0,1,1,0,1,0,0,1,1,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,1,0,0,0,0,1,1,1,0,1,1,1,1,0,0,1,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,\n1,0,1,0,0,0,1,1,0,0,1,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,\n0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,\n0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,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,1,0,0,0,0,0,0,0,0,0,1,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,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",3,"1627778570211.9675"] + ["title Flower Dance\nauthor quat\nbackground_color lightbrown\ntext_color darkbrown\n\nrequire_player_movement\n\ncolor_palette 14\n\nagain_interval 0.1\n\nnoaction\n\n========\nOBJECTS\n========\n\nBackground .\nlightbrown\n\nPlayer\nred lightred\n.110.\n10000\n00000\n00000\n.000.\n\nMarker\ntransparent\n\nCheck &\nbrown\n.....\n.000.\n.0...\n.000.\n.....\n\nBud\nred green lightgreen\n.....\n.....\n...2.\n...1.\n...1.\n\nPlant\nred green lightgreen\n..0..\n.020.\n..01.\n..11.\n...1.\n\nWall #\ndarkgrey\n(darkgrey grey\n00000\n00100\n01110\n00100\n00000)\n\nEnd W\nbrown\n.....\n.000.\n.0.0.\n.000.\n.....\n\n=======\nLEGEND\n=======\n\nCollidable = Wall or Plant\n\nP = Player and Marker\n\n=======\nSOUNDS\n=======\n\nsfx7 34533704\nsfx1 78722500\nsfx2 38016702\nEndLevel 82634105\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nEnd\nCheck\nMarker\nBud\nPlayer, Wall, Plant\n\n\n======\nRULES\n======\n\n[> Player | No Collidable] -> [ | > Player] sfx7\n\n[Player] -> [Marker Player]\n\n[Bud Player] -> sfx2\n\n[Bud] -> [Plant]\n[Marker no Player] -> [Bud]\n\n[Player Check] -> [Player] checkpoint sfx1\n\n==============\nWINCONDITIONS\n==============\n\nSome Player\nAll Player on End\n\n=======\nLEVELS\n=======\n\nMessage Arrow keys to run across the garden.\nMessage Plant flowers in the dirt.\nMessage Don't land on the flower buds...\n\n......................#............#.............\n............#......#..#..#...#...................\n...........###..##...#...#....#....#.............\n...........##.##....#.#..#.#..#...#....#.........\n....##....#..##...##..#..#....#..#.#...##........\n........###..######....##.##..##.#.#.##..........\n...#######.#.###.#######.######..##..##.#........\n...#.#.###############.#####.##..##.#......#.....\n.....#.######.####.############.#####.###.#......\n.....#####.#..#..#..#.########..#.#######..#.....\n.......##.###########.#...#..###########.##......\n......######......###.#...#..##.....###.##.......\n..##.####.#........####...#####.###.###..#....#..\n.....#..###.........###...#####.###.#####.####...\n.#...######&....................###.########.....\n..#..##.###.........###...#####..&..###.###......\n...#.#.####........####...######....#####.....#..\n...#.#######......#####...#######.#######..#...##\n...#.#.#######.########...#######.#####.##.###...\n....#.####...#.#######.....##...#.##.###.#.#.....\n..###.#.#.####.##...#.......#...#.####.####.#....\n....#####.#..#.##.P.....w......##.##..#.###...#.#\n....#.###.#..#.##...#.......#...#.####...###.#...\n......########.#######.....##...#.#######........\n..##.##.######.########...###...#.###...###......\n.....##.##..........####.####.#.#.#######.#......\n.....#.##...........####.####...#.....#.#####....\n.....###............####.####...###...##..##...#.\n...#####................&####...###...####..##...\n.....###............#########.........####...#...\n.......##...........#########.........#.#.#......\n.##....#.#....&.....####################.#..#....\n....####.#############..##.####.#.####.##.#......\n.......###...#.##.##...####.###.#.###......#.#...\n..#.#.##.##.####.#####.##.#.#.#.##.#.##.##.#.....\n......#####......####.##.#.##.#####...#.####.....\n.....############.####.#..#...#.#.#.......#......\n.....####.##...#..#..........#...##...#..........\n.....#...#.....##.#..####...#...#..#....#........\n........#...#.#...##.....#.#.........#...........\n...........#..#...#.......#.....#................\n..............#....##....##.....#....#...........\n\n", [3, 3, 0, 1, 2, 2, 3, 3, 0, 1], "background: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,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,background wall:1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,\n0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,1,1,0,1,\n0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,\n1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,1,0,0,1,1,1,1,1,1,0,0,1,0,0,\n0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,0,1,0,1,1,1,1,0,0,0,0,\n0,0,0,0,0,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0,0,1,0,1,1,1,0,1,0,0,0,0,0,0,0,1,1,1,1,1,0,1,0,1,\n1,1,1,1,1,1,0,0,0,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,0,1,\n1,1,1,1,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,0,0,background check:2,0,0,1,1,0,1,0,0,1,1,0,0,0,\n0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,1,1,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,1,\n0,1,0,0,1,0,0,0,0,1,0,1,1,1,1,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,\n0,0,0,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,0,0,0,2,1,0,1,0,1,0,0,1,1,1,0,0,0,1,0,1,1,\n1,1,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,1,1,0,1,0,0,0,\n0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,0,0,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,\n0,0,1,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,0,0,0,1,1,1,0,background plant:3,0,1,1,0,0,0,\n0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,1,0,0,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,\n1,1,0,0,1,0,1,0,0,0,1,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,0,0,0,0,1,\n0,0,1,0,0,0,1,1,1,0,0,0,1,1,0,1,1,1,1,1,0,0,0,1,1,1,1,1,0,1,1,1,1,0,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,\n0,1,1,1,1,1,1,0,1,1,1,1,0,0,0,0,0,1,1,1,1,0,1,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,1,1,1,1,0,1,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,\nbackground end:4,0,0,0,0,0,0,2,1,1,1,1,1,1,0,0,0,1,0,0,0,0,1,1,1,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,\n1,1,1,1,1,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,0,1,1,\n0,1,0,0,0,1,1,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,1,0,0,\n0,0,0,0,0,0,1,0,1,1,0,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,0,1,0,0,0,0,1,\n1,1,1,1,1,1,1,0,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,3,1,1,1,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,\n0,1,1,1,1,3,0,3,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,\n1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,0,1,0,1,1,0,0,0,0,1,1,1,1,1,0,1,0,1,1,1,2,0,0,0,0,0,0,0,0,0,0,background marker player:5,1,1,0,0,1,0,0,1,\n1,0,1,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,1,1,0,0,0,0,\n1,0,1,0,1,1,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,\n1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,0,1,1,0,1,background bud:6,0,0,0,3,1,1,0,1,0,0,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,\n1,0,1,0,1,1,1,1,1,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,0,0,1,1,0,1,1,0,1,1,0,0,1,0,1,0,1,\n1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,0,1,1,1,0,1,0,1,\n1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,0,1,1,1,1,1,0,1,0,1,0,1,1,0,1,0,0,1,1,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,1,0,0,0,0,1,1,1,0,1,1,1,1,0,0,1,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,\n1,0,1,0,0,0,1,1,0,0,1,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,\n0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,\n0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,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,1,0,0,0,0,0,0,0,0,0,1,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,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 3, "1627778570211.9675"] ], [ `gallery: stairways`, - ["title Stairways\nauthor Franklin P. Dyer\n\n========\nOBJECTS\n========\n\nBackground .\nLightgray\n\nWall x\nDarkgray Gray\n00000\n01110\n01010\n01110\n00000\n\nBlock o\nDarkbrown Brown\n00000\n01110\n01010\n01110\n00000\n\nPlayer p\nBlack Brown #d2b48c Blue\n.000.\n00000\n.121.\n.333.\n.3.3.\n\nStairs s\nLightgray Gray Darkgray Black\n00000\n01110\n02220\n03330\n00000\n\n=======\nLEGEND\n=======\n\n@ = Block and Stairs\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nStairs\nPlayer, Wall, Block\n\n======\nRULES\n======\n\n[> Player|Block No Stairs] -> [> Player|> Block No Stairs]\n[> Player|Block Stairs] -> [Player|> Block Stairs]\n[> Block|...|Block|Wall] -> [Block|...|Block|Wall]\n[Wall|< Block|...|Block] -> [Wall|Block|...|Block]\n[Background|< Block|...|Block] -> [Background|< Block|...|< Block]\n[> Block|...|Block|Background] -> [> Block|...|> Block|Background]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Player on Stairs\n\n=======\nLEVELS\n=======\n\nmessage Find the stairs, and go down them.\nmessage All of the boxes in a row or column move together.\n\nxxxxxx\nx.po.x\nx.oo.x\nx....x\nx@o..x\nxxxxxx\n\nxxxxxxx\nx...oxx\nxoo.@xx\nxopoo.x\nx.o.oxx\nx.xxxxx\nxxxxxxx\n\nxxxxxxx\nxoooo.x\nxo@...x\nx.opo.x\nx...o.x\nx.o...x\nxxxxxxx\n\nmessage You win!\n\n\n",[0,3,3,0,2,1,3,2,2,1,0,0,3,1,3,2,2,3,0],"background wall:0,0,0,0,0,0,0,\n0,background:1,background block:2,1,1,1,0,\n0,2,1,2,1,0,0,\n0,1,1,2,2,0,0,\n0,2,background block stairs:3,background player:4,2,0,0,\n0,0,0,2,0,0,0,\n0,0,0,0,0,0,0,\n",3,"1627778592073.838"] + ["title Stairways\nauthor Franklin P. Dyer\n\n========\nOBJECTS\n========\n\nBackground .\nLightgray\n\nWall x\nDarkgray Gray\n00000\n01110\n01010\n01110\n00000\n\nBlock o\nDarkbrown Brown\n00000\n01110\n01010\n01110\n00000\n\nPlayer p\nBlack Brown #d2b48c Blue\n.000.\n00000\n.121.\n.333.\n.3.3.\n\nStairs s\nLightgray Gray Darkgray Black\n00000\n01110\n02220\n03330\n00000\n\n=======\nLEGEND\n=======\n\n@ = Block and Stairs\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nStairs\nPlayer, Wall, Block\n\n======\nRULES\n======\n\n[> Player|Block No Stairs] -> [> Player|> Block No Stairs]\n[> Player|Block Stairs] -> [Player|> Block Stairs]\n[> Block|...|Block|Wall] -> [Block|...|Block|Wall]\n[Wall|< Block|...|Block] -> [Wall|Block|...|Block]\n[Background|< Block|...|Block] -> [Background|< Block|...|< Block]\n[> Block|...|Block|Background] -> [> Block|...|> Block|Background]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Player on Stairs\n\n=======\nLEVELS\n=======\n\nmessage Find the stairs, and go down them.\nmessage All of the boxes in a row or column move together.\n\nxxxxxx\nx.po.x\nx.oo.x\nx....x\nx@o..x\nxxxxxx\n\nxxxxxxx\nx...oxx\nxoo.@xx\nxopoo.x\nx.o.oxx\nx.xxxxx\nxxxxxxx\n\nxxxxxxx\nxoooo.x\nxo@...x\nx.opo.x\nx...o.x\nx.o...x\nxxxxxxx\n\nmessage You win!\n\n\n", [0, 3, 3, 0, 2, 1, 3, 2, 2, 1, 0, 0, 3, 1, 3, 2, 2, 3, 0], "background wall:0,0,0,0,0,0,0,\n0,background:1,background block:2,1,1,1,0,\n0,2,1,2,1,0,0,\n0,1,1,2,2,0,0,\n0,2,background block stairs:3,background player:4,2,0,0,\n0,0,0,2,0,0,0,\n0,0,0,0,0,0,0,\n", 3, "1627778592073.838"] ], [ `gallery: rock, paper, scissors`, - ["title Rock, Paper, Scissors (v0.90 = v1.alpha)\nauthor chaotic_iak\nhomepage chaosatthesky.wordpress.com\n\nagain_interval 0.15\nkey_repeat_interval 0.2\nrun_rules_on_level_start\nverbose_logging\n\n(\n\"Rock, Paper, Scissors\" by chaotic_iak\nThe popular game can't be that hard, right?\n\nChangelog:\n09-Jul-2015 v0.10: Original mechanics\n10-Jul-2015 : Gems, sticky paper\n10-Jul-2015 v0.20: Add 1-8\n11-Jul-2015 : Skip level\n11-Jul-2015 v0.50: Add 9,10\n12-Jul-2015 v0.51: Change 3,5,6\n13-Jul-2015 v0.52: Change 7,8,9\n14-Jul-2015 v0.60: Move 10>12, add 10,11\n15-Jul-2015 v0.61: Change 9,11\n17-Jul-2015 v0.70: Move 11>12, add 11,13,14\n01-Aug-2015 v1.00: Move a lot, change 14, add 10,13,17\n)\n\n=======\nOBJECTS\n=======\nbackground\nlightgreen yellow\n00000\n00010\n00000\n01000\n00000\n\nwall\ndarkgreen green\n01110\n10001\n01110\n10001\n00000\n\nlevel0\ndarkgreen green\n01100\n10010\n10010\n10010\n01100\n\nlevel1\ndarkgreen green\n00100\n01100\n00100\n00100\n01110\n\nlevel2\ndarkgreen green\n01100\n10010\n00100\n01000\n11110\n\nlevel3\ndarkgreen green\n11100\n00010\n01100\n00010\n11100\n\nlevel4\ndarkgreen green\n00100\n01100\n10100\n11110\n00100\n\nlevel5\ndarkgreen green\n11110\n10000\n11100\n00010\n11100\n\nlevel6\ndarkgreen green\n01100\n10000\n11100\n10010\n01100\n\nlevel7\ndarkgreen green\n11110\n00010\n00100\n01000\n01000\n\nlevel8\ndarkgreen green\n01100\n10010\n01100\n10010\n01100\n\nlevel9\ndarkgreen green\n01100\n10010\n01110\n00010\n11100\n\nplayer\nblack orange red blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nrock\ndarkbrown brown orange\n.112.\n01112\n01112\n01111\n.000.\n\npaper\nlightgray gray\n0001.\n00001\n00000\n00000\n00000\n\npaperborderl\nwhite\n0....\n0....\n0....\n0....\n0....\n\npaperborderd\nwhite\n.....\n.....\n.....\n.....\n00000\n\npaperborderld\nwhite\n.....\n.....\n.....\n.....\n0....\n\npapernexttoborderl\ntransparent\n\npapernexttoborderd\ntransparent\n\npapernofold\nlightgray\n...00\n....0\n.....\n.....\n.....\n\nscissorsu\ndarkgray gray red darkred\n1...1\n01.10\n.010.\n22.22\n23.23\n\nscissorsl\ndarkgray gray red darkred\n10.22\n.1023\n..1..\n.1022\n10.23\n\nscissorsd\ndarkgray gray red darkred\n22.22\n23.23\n.010.\n01.10\n1...1\n\nscissorsr\ndarkgray gray red darkred\n22.01\n2301.\n..1..\n2201.\n23.01\n\ngem\nblue lightblue\n.....\n.011.\n00001\n.000.\n..0..\n\nstar\ndarkred red\n.....\n.011.\n00001\n.000.\n..0..\n\nnostar\ndarkgreen green\n00000\n01110\n11111\n01110\n00100\n\nstarcover\ndarkred red\n.....\n.011.\n00001\n.000.\n..0..\n\nexit\nblue lightblue\n.001.\n01011\n00011\n00101\n.011.\n\nexitholder\ntransparent\n\nstartlevel\ntransparent\n\nskipcheck\ntransparent\n\nnextstar\ntransparent\n\nprocessedstar\ntransparent\n\n======\nLEGEND\n======\n. = background\n# = wall\no = player and startlevel\ng = gem\ne = exit and exitholder\nr = rock\np = paper\nw = scissorsu\na = scissorsl\ns = scissorsd\nd = scissorsr\n0 = wall and level0\n1 = wall and level1\n2 = wall and level2\n3 = wall and level3\n4 = wall and level4\n5 = wall and level5\n6 = wall and level6\n7 = wall and level7\n8 = wall and level8\n9 = wall and level9\n* = star\n\nscissors = scissorsu or scissorsl or scissorsd or scissorsr\nobject = wall or player or rock or paper or scissors or gem or star or exitholder\nlvnum = level0 or level1 or level2 or level3 or level4 or level5 or level6 or level7 or level8 or level9\npaperborder = paperborderl or paperborderd or paperborderld or papernofold or papernexttoborderl or papernexttoborderd\nsprites = lvnum or paperborder\n\n======\nSOUNDS\n======\nplayer cantmove 88720304\n\nrock move 12612307\npaper move 96873507\nscissors move 93218507\n\nrock destroy 98086501\npaper destroy 41726709\nscissors destroy 5523702\ngem destroy 73128500\nstar destroy 64247508\n\nundo 28911504\nsfx0 13629103\nsfx9 31899108 (skip check)\nendlevel 18800703\n\n===============\nCOLLISIONLAYERS\n===============\nprocessedstar, nextstar, startlevel, skipcheck\npapernexttoborderd\npapernexttoborderl\nbackground\nexit\nobject\nlvnum, nostar\nstarcover\npaperborderl\npaperborderd\npaperborderld\npapernofold\n\n=====\nRULES\n=====\n(LEVEL START)\nright [startlevel][lvnum|no lvnum] -> [startlevel][lvnum|nextstar]\nright [startlevel][star no processedstar][nextstar|] -> [startlevel][star processedstar][nostar|nextstar]\n[startlevel][nextstar] -> [startlevel][]\n[startlevel][processedstar] -> [startlevel][]\nright [startlevel][lvnum|nostar] -> [startlevel][lvnum|nostar nextstar]\n[startlevel] -> []\n\n(STUFF)\n[action player skipcheck] -> [player] win\n[orthogonal player skipcheck] -> [orthogonal player]\n[action player no skipcheck] -> [player skipcheck] sfx9\n[skipcheck] -> message ********** SKIP LEVEL? *********** * - ACTION TWICE to CONFIRM * * - ACTION then MOVE to CANCEL *\n\n(MOVEMENT)\nstartloop\n(rock)\n[> player|rock] -> [> player|> rock]\n(scissors)\ndown [> object|scissors no scissorsu] -> [> object|> scissors]\ndown [> scissors|scissorsu] -> [> scissors|> scissorsu]\ndown [> gem|scissorsu] -> [> gem|> scissorsu]\nright [> object|scissors no scissorsl] -> [> object|> scissors]\nright [> scissors|scissorsl] -> [> scissors|> scissorsl]\nright [> gem|scissorsl] -> [> gem|> scissorsl]\nup [> object|scissors no scissorsd] -> [> object|> scissors]\nup [> scissors|scissorsd] -> [> scissors|> scissorsd]\nup [> gem|scissorsd] -> [> gem|> scissorsd]\nleft [> object|scissors no scissorsr] -> [> object|> scissors]\nleft [> scissors|scissorsr] -> [> scissors|> scissorsr]\nleft [> gem|scissorsr] -> [> gem|> scissorsr]\n(paper)\n rigid down [> object no rock no scissorsd|paper] -> [> object|> paper]\n+ rigid right [> object no rock no scissorsr|paper] -> [> object|> paper]\n+ rigid up [> object no rock no scissorsu|paper] -> [> object|> paper]\n+ rigid left [> object no rock no scissorsl|paper] -> [> object|> paper]\n+ rigid [orthogonal paper|paper] -> [orthogonal paper|orthogonal paper]\n(gem/star)\n[> player|gem] -> [> player|]\n[> player|star] -> [> player|processedstar]\n[> object|gem] -> [> object|> gem]\n[> object|star] -> [> object|> star]\nendloop\n(exit)\n[> player|exitholder] -> [> player|]\n\n(INTERACTION)\n(rock/paper)\n[> rock|stationary paper] -> [|paper]\n[> paper|stationary rock] -> [> paper|]\n(paper/scissors)\ndown [> paper|stationary scissorsu] -> [|scissorsu]\ndown [> scissorsd|stationary paper] -> [> scissorsd|]\nright [> paper|stationary scissorsl] -> [|scissorsl]\nright [> scissorsr|stationary paper] -> [> scissorsr|]\nup [> paper|stationary scissorsd] -> [|scissorsd]\nup [> scissorsu|stationary paper] -> [> scissorsu|]\nleft [> paper|stationary scissorsr] -> [|scissorsr]\nleft [> scissorsl|stationary paper] -> [> scissorsl|]\n(scissors/rock)\ndown [> scissorsd|stationary rock] -> [|rock]\ndown [> rock|stationary scissorsu] -> [> rock|]\nright [> scissorsr|stationary rock] -> [|rock]\nright [> rock|stationary scissorsl] -> [> rock|]\nup [> scissorsu|stationary rock] -> [|rock]\nup [> rock|stationary scissorsd] -> [> rock|]\nleft [> scissorsl|stationary rock] -> [|rock]\nleft [> rock|stationary scissorsr] -> [> rock|]\n\n(FINISH)\n(paper border)\nlate [paperborder] -> []\nlate left [paper|no paper] -> [paper paperborderl|]\nlate down [paper|no paper] -> [paper paperborderd|]\nlate up [paperborderl|paper] -> [paperborderl|paper papernexttoborderl]\nlate right [paperborderd|paper] -> [paperborderd|paper papernexttoborderd]\nlate [papernexttoborderl papernexttoborderd] -> [paperborderld]\nlate up [paper|paper] -> [paper papernofold|paper]\nlate right [paper|paper] -> [paper papernofold|paper]\n(star check)\nlate right [processedstar][nextstar|] -> [][starcover|nextstar]\n(exit check)\nlate [player exit][gem] -> sfx0\nlate [exit no player] -> [exit exitholder]\n\n=============\nWINCONDITIONS\n=============\nno gem\nall player on exit\n\n======\nLEVELS\n======\n(and unofficial titles!)\n\nmessage ROCKS are HEAVY\n\n(Rockfall)\n############\n#......#...#\n#.....rr...#\n##r##..#r.r#\n#...####rr.#\n#...##.r..r#\n#.o.#e..rr.#\n#...##..r..#\n01##########\n\nmessage BLUE GEMS are IMPORTANT\n\nmessage RED GEMS are DIFFICULT\n\n(Excavation)\n############\n#..........#\n#.g...r.rr.#\n##.##.rr.r.#\n#.e.##..rr.#\n#...#grr..##\n#.o.##.r.rg#\n#...##.*r.##\n02##########\n\nmessage GEMS are LIGHT\n\n(Gems in a Rock Pile)\n############\n#...#......#\n#.g..ergr..#\n#...##.#####\n##r##.grgr.#\n#...#.rgr*.#\n#.o.#.grgr.#\n#...#.rgrg.#\n03##########\n\nmessage PAPER is STICKY\n\n(Think Before You Stick)\n############\n#......*#e##\n#......#pp.#\n#ppp#..p..p#\n#p.p#.p.p.p#\n#...#.p..p.#\n#.o.#..pp..#\n#...#......#\n04##########\n\nmessage SCISSORS have SHARP BLADES\n\n(Ouch)\n############\n#..a.....###\n#..ag....###\n##d##...we.#\n#...#.a.s#.#\n#...#.s..#*#\n#.o.#....w.#\n#...#...#..#\n05##########\n\nmessage ROCK crushes SCISSORS\n\n(Demolition Derby)\n############\n#...#..#..##\n#.r.ad....##\n#...#..#.w*#\n##w##....w##\n#...##...w##\n#.o.#ew....#\n#...##w....#\n06##########\n\nmessage PAPER covers ROCK\n\n(One Versus Twenty-Two)\n############\n#.p.prrre#*#\n#...prr.r#r#\n##r##r.r.r.#\n#...#.r.r.r#\n#...#r.r.r.#\n#.o.#.rpr.r#\n#...#r.r.r.#\n07##########\n\nmessage SCISSORS cut PAPER\n\n(Big Paper is Useless)\n############\n#...p..e##*#\n#.p.p.a###p#\n#...p......#\n##w##...pp.#\n#...#.d.pp.#\n#.o.#...pp.#\n#...#......#\n08##########\n\nmessage ROCK must be PUSHED DIRECTLY\n\nmessage EVERYTHING ELSE can PUSH EACH OTHER\n\n(Light and Heavy)\n############\n#....r*..r.#\n#...g#r.#.e#\n#.dpp#g.ppp#\n##p###w.#..#\n#...#...#..#\n#.o.#......#\n#...#......#\n09##########\n\nmessage DISCOVER other SECRETS\n\nmessage GOOD LUCK\n\n(More Gems, More Rock Piles)\n#############\n#o...e#.....#\n#rgrgr#*rgrg#\n#grgrg#rgrgr#\n#ggrgrggrgrg#\n#rggrg#rgrgr#\n#grggr#gggrg#\n#.....#.....#\n10###########\n\n(Scissors Field)\n################\n#....#.....#e..#\n#.*.#.s..#a.#..#\n#...#.#.....#..#\n#s#s#...#...#..#\n#.........#.#s##\n#......#.....o.#\n#..............#\n11##############\n\n(Littered Boulders)\n############\n#...#...a..#\n#..g..#.#.e#\n#.rrr.rr##s#\n#..r.#....o#\n#.#r..rr##w#\n#..r..#.#..#\n#..r....a*.#\n12##########\n\n(Cleaning Job)\n###########\n#.....o#e.#\n#......#..#\n#..######s#\n#grggrgggr#\n#grrggrrrg#\n#rrgrrrggr#\n#.prrggrr*#\n#.rggrggrr#\n13#########\n\n(Clearing the Path)\n##############\n#p.........rr#\n#p...ss.aa.rr#\n#p...ss.aa.#r#\n#ppp...r...#*#\n#pop.dd.ww.###\n#p...dd.ww##e#\n#ppppp...rrrr#\n14############\n\n(A-maze-ing Paper)\n#################\n#..............r#\n#.ppppppppp.###.#\n#.p.....prp.#...#\n#.p.ppp...p.#.*.#\n#.p...pp..p.#...#\n#.ppp.ppppp.#####\n#.p...p...p.#...#\n#.pp.pp.p.p.#.e.#\n#.p.....p.o.a...#\n#.ppppppppp.#.w.#\n#...........#...#\n15###############\n\n(Exercising Into Shape)\n#############\n###.......#e#\n#....ppp..#r#\n#....ppp..o.#\n#....ppp....#\n#.#.........#\n#r#..w.a..###\n#*#.......###\n16###########\n\n(Surrounded)\n#######################\n#ppp....p....ppp......#\n#p.............p......#\n#p.............p......#\n#...p...p...p.........#\n#.....................#\n#...............#.....#\n#...............#.....#\n#p..p...p...p..p#.....#\n#...............#.....#\n#...............#..w..#\n#...............#..e..#\n#...p...p...p...#######\n#ppp...........p...ppp#\n#pop...........p...p*p#\n#ppp....p....ppp...ppp#\n17#####################\n\n(The Killer)\n##########\n#........#\n#.ppp....#\n#.prp.g..#\n#.ppp....#\n#....a...#\n###....aa#\n#ero.##*##\n18########\n\nmessage CONGRATULATIONS\n",[0,0,0,0,3,3,3,3,2,2,2,2,2,3,3,3,3,0,0,0,0,2,1,1,3,3,2,2,1,0,3,0,1,2,1,0],"background wall:0,0,0,0,0,0,0,0,background level0 wall:1,0,background:2,2,\n2,2,2,2,2,background level4 wall:3,0,2,2,2,2,2,\n2,2,background nextstar nostar wall:4,0,2,2,2,2,2,2,2,0,\n0,background paper paperborderl papernexttoborderl papernofold:5,background paper paperborderd paperborderl papernofold:6,0,0,0,0,0,0,0,background paper paperborderd papernofold:7,2,\nbackground paper paperborderl papernexttoborderl:8,6,2,2,2,0,0,background paper paperborderld:9,6,2,background paper paperborderd papernexttoborderd papernofold:10,2,\n2,2,0,0,background star:11,0,background paper paperborderl papernofold:12,10,background player:13,2,2,0,\n0,0,12,7,2,2,2,2,0,0,background exit exitholder:14,background paper papernofold:15,\n10,2,2,2,2,0,0,0,background paper:16,10,2,2,\n2,2,0,0,0,0,0,0,0,0,0,0,\n",8,"1627778623784.798"] + ["title Rock, Paper, Scissors (v0.90 = v1.alpha)\nauthor chaotic_iak\nhomepage chaosatthesky.wordpress.com\n\nagain_interval 0.15\nkey_repeat_interval 0.2\nrun_rules_on_level_start\nverbose_logging\n\n(\n\"Rock, Paper, Scissors\" by chaotic_iak\nThe popular game can't be that hard, right?\n\nChangelog:\n09-Jul-2015 v0.10: Original mechanics\n10-Jul-2015 : Gems, sticky paper\n10-Jul-2015 v0.20: Add 1-8\n11-Jul-2015 : Skip level\n11-Jul-2015 v0.50: Add 9,10\n12-Jul-2015 v0.51: Change 3,5,6\n13-Jul-2015 v0.52: Change 7,8,9\n14-Jul-2015 v0.60: Move 10>12, add 10,11\n15-Jul-2015 v0.61: Change 9,11\n17-Jul-2015 v0.70: Move 11>12, add 11,13,14\n01-Aug-2015 v1.00: Move a lot, change 14, add 10,13,17\n)\n\n=======\nOBJECTS\n=======\nbackground\nlightgreen yellow\n00000\n00010\n00000\n01000\n00000\n\nwall\ndarkgreen green\n01110\n10001\n01110\n10001\n00000\n\nlevel0\ndarkgreen green\n01100\n10010\n10010\n10010\n01100\n\nlevel1\ndarkgreen green\n00100\n01100\n00100\n00100\n01110\n\nlevel2\ndarkgreen green\n01100\n10010\n00100\n01000\n11110\n\nlevel3\ndarkgreen green\n11100\n00010\n01100\n00010\n11100\n\nlevel4\ndarkgreen green\n00100\n01100\n10100\n11110\n00100\n\nlevel5\ndarkgreen green\n11110\n10000\n11100\n00010\n11100\n\nlevel6\ndarkgreen green\n01100\n10000\n11100\n10010\n01100\n\nlevel7\ndarkgreen green\n11110\n00010\n00100\n01000\n01000\n\nlevel8\ndarkgreen green\n01100\n10010\n01100\n10010\n01100\n\nlevel9\ndarkgreen green\n01100\n10010\n01110\n00010\n11100\n\nplayer\nblack orange red blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nrock\ndarkbrown brown orange\n.112.\n01112\n01112\n01111\n.000.\n\npaper\nlightgray gray\n0001.\n00001\n00000\n00000\n00000\n\npaperborderl\nwhite\n0....\n0....\n0....\n0....\n0....\n\npaperborderd\nwhite\n.....\n.....\n.....\n.....\n00000\n\npaperborderld\nwhite\n.....\n.....\n.....\n.....\n0....\n\npapernexttoborderl\ntransparent\n\npapernexttoborderd\ntransparent\n\npapernofold\nlightgray\n...00\n....0\n.....\n.....\n.....\n\nscissorsu\ndarkgray gray red darkred\n1...1\n01.10\n.010.\n22.22\n23.23\n\nscissorsl\ndarkgray gray red darkred\n10.22\n.1023\n..1..\n.1022\n10.23\n\nscissorsd\ndarkgray gray red darkred\n22.22\n23.23\n.010.\n01.10\n1...1\n\nscissorsr\ndarkgray gray red darkred\n22.01\n2301.\n..1..\n2201.\n23.01\n\ngem\nblue lightblue\n.....\n.011.\n00001\n.000.\n..0..\n\nstar\ndarkred red\n.....\n.011.\n00001\n.000.\n..0..\n\nnostar\ndarkgreen green\n00000\n01110\n11111\n01110\n00100\n\nstarcover\ndarkred red\n.....\n.011.\n00001\n.000.\n..0..\n\nexit\nblue lightblue\n.001.\n01011\n00011\n00101\n.011.\n\nexitholder\ntransparent\n\nstartlevel\ntransparent\n\nskipcheck\ntransparent\n\nnextstar\ntransparent\n\nprocessedstar\ntransparent\n\n======\nLEGEND\n======\n. = background\n# = wall\no = player and startlevel\ng = gem\ne = exit and exitholder\nr = rock\np = paper\nw = scissorsu\na = scissorsl\ns = scissorsd\nd = scissorsr\n0 = wall and level0\n1 = wall and level1\n2 = wall and level2\n3 = wall and level3\n4 = wall and level4\n5 = wall and level5\n6 = wall and level6\n7 = wall and level7\n8 = wall and level8\n9 = wall and level9\n* = star\n\nscissors = scissorsu or scissorsl or scissorsd or scissorsr\nobject = wall or player or rock or paper or scissors or gem or star or exitholder\nlvnum = level0 or level1 or level2 or level3 or level4 or level5 or level6 or level7 or level8 or level9\npaperborder = paperborderl or paperborderd or paperborderld or papernofold or papernexttoborderl or papernexttoborderd\nsprites = lvnum or paperborder\n\n======\nSOUNDS\n======\nplayer cantmove 88720304\n\nrock move 12612307\npaper move 96873507\nscissors move 93218507\n\nrock destroy 98086501\npaper destroy 41726709\nscissors destroy 5523702\ngem destroy 73128500\nstar destroy 64247508\n\nundo 28911504\nsfx0 13629103\nsfx9 31899108 (skip check)\nendlevel 18800703\n\n===============\nCOLLISIONLAYERS\n===============\nprocessedstar, nextstar, startlevel, skipcheck\npapernexttoborderd\npapernexttoborderl\nbackground\nexit\nobject\nlvnum, nostar\nstarcover\npaperborderl\npaperborderd\npaperborderld\npapernofold\n\n=====\nRULES\n=====\n(LEVEL START)\nright [startlevel][lvnum|no lvnum] -> [startlevel][lvnum|nextstar]\nright [startlevel][star no processedstar][nextstar|] -> [startlevel][star processedstar][nostar|nextstar]\n[startlevel][nextstar] -> [startlevel][]\n[startlevel][processedstar] -> [startlevel][]\nright [startlevel][lvnum|nostar] -> [startlevel][lvnum|nostar nextstar]\n[startlevel] -> []\n\n(STUFF)\n[action player skipcheck] -> [player] win\n[orthogonal player skipcheck] -> [orthogonal player]\n[action player no skipcheck] -> [player skipcheck] sfx9\n[skipcheck] -> message ********** SKIP LEVEL? *********** * - ACTION TWICE to CONFIRM * * - ACTION then MOVE to CANCEL *\n\n(MOVEMENT)\nstartloop\n(rock)\n[> player|rock] -> [> player|> rock]\n(scissors)\ndown [> object|scissors no scissorsu] -> [> object|> scissors]\ndown [> scissors|scissorsu] -> [> scissors|> scissorsu]\ndown [> gem|scissorsu] -> [> gem|> scissorsu]\nright [> object|scissors no scissorsl] -> [> object|> scissors]\nright [> scissors|scissorsl] -> [> scissors|> scissorsl]\nright [> gem|scissorsl] -> [> gem|> scissorsl]\nup [> object|scissors no scissorsd] -> [> object|> scissors]\nup [> scissors|scissorsd] -> [> scissors|> scissorsd]\nup [> gem|scissorsd] -> [> gem|> scissorsd]\nleft [> object|scissors no scissorsr] -> [> object|> scissors]\nleft [> scissors|scissorsr] -> [> scissors|> scissorsr]\nleft [> gem|scissorsr] -> [> gem|> scissorsr]\n(paper)\n rigid down [> object no rock no scissorsd|paper] -> [> object|> paper]\n+ rigid right [> object no rock no scissorsr|paper] -> [> object|> paper]\n+ rigid up [> object no rock no scissorsu|paper] -> [> object|> paper]\n+ rigid left [> object no rock no scissorsl|paper] -> [> object|> paper]\n+ rigid [orthogonal paper|paper] -> [orthogonal paper|orthogonal paper]\n(gem/star)\n[> player|gem] -> [> player|]\n[> player|star] -> [> player|processedstar]\n[> object|gem] -> [> object|> gem]\n[> object|star] -> [> object|> star]\nendloop\n(exit)\n[> player|exitholder] -> [> player|]\n\n(INTERACTION)\n(rock/paper)\n[> rock|stationary paper] -> [|paper]\n[> paper|stationary rock] -> [> paper|]\n(paper/scissors)\ndown [> paper|stationary scissorsu] -> [|scissorsu]\ndown [> scissorsd|stationary paper] -> [> scissorsd|]\nright [> paper|stationary scissorsl] -> [|scissorsl]\nright [> scissorsr|stationary paper] -> [> scissorsr|]\nup [> paper|stationary scissorsd] -> [|scissorsd]\nup [> scissorsu|stationary paper] -> [> scissorsu|]\nleft [> paper|stationary scissorsr] -> [|scissorsr]\nleft [> scissorsl|stationary paper] -> [> scissorsl|]\n(scissors/rock)\ndown [> scissorsd|stationary rock] -> [|rock]\ndown [> rock|stationary scissorsu] -> [> rock|]\nright [> scissorsr|stationary rock] -> [|rock]\nright [> rock|stationary scissorsl] -> [> rock|]\nup [> scissorsu|stationary rock] -> [|rock]\nup [> rock|stationary scissorsd] -> [> rock|]\nleft [> scissorsl|stationary rock] -> [|rock]\nleft [> rock|stationary scissorsr] -> [> rock|]\n\n(FINISH)\n(paper border)\nlate [paperborder] -> []\nlate left [paper|no paper] -> [paper paperborderl|]\nlate down [paper|no paper] -> [paper paperborderd|]\nlate up [paperborderl|paper] -> [paperborderl|paper papernexttoborderl]\nlate right [paperborderd|paper] -> [paperborderd|paper papernexttoborderd]\nlate [papernexttoborderl papernexttoborderd] -> [paperborderld]\nlate up [paper|paper] -> [paper papernofold|paper]\nlate right [paper|paper] -> [paper papernofold|paper]\n(star check)\nlate right [processedstar][nextstar|] -> [][starcover|nextstar]\n(exit check)\nlate [player exit][gem] -> sfx0\nlate [exit no player] -> [exit exitholder]\n\n=============\nWINCONDITIONS\n=============\nno gem\nall player on exit\n\n======\nLEVELS\n======\n(and unofficial titles!)\n\nmessage ROCKS are HEAVY\n\n(Rockfall)\n############\n#......#...#\n#.....rr...#\n##r##..#r.r#\n#...####rr.#\n#...##.r..r#\n#.o.#e..rr.#\n#...##..r..#\n01##########\n\nmessage BLUE GEMS are IMPORTANT\n\nmessage RED GEMS are DIFFICULT\n\n(Excavation)\n############\n#..........#\n#.g...r.rr.#\n##.##.rr.r.#\n#.e.##..rr.#\n#...#grr..##\n#.o.##.r.rg#\n#...##.*r.##\n02##########\n\nmessage GEMS are LIGHT\n\n(Gems in a Rock Pile)\n############\n#...#......#\n#.g..ergr..#\n#...##.#####\n##r##.grgr.#\n#...#.rgr*.#\n#.o.#.grgr.#\n#...#.rgrg.#\n03##########\n\nmessage PAPER is STICKY\n\n(Think Before You Stick)\n############\n#......*#e##\n#......#pp.#\n#ppp#..p..p#\n#p.p#.p.p.p#\n#...#.p..p.#\n#.o.#..pp..#\n#...#......#\n04##########\n\nmessage SCISSORS have SHARP BLADES\n\n(Ouch)\n############\n#..a.....###\n#..ag....###\n##d##...we.#\n#...#.a.s#.#\n#...#.s..#*#\n#.o.#....w.#\n#...#...#..#\n05##########\n\nmessage ROCK crushes SCISSORS\n\n(Demolition Derby)\n############\n#...#..#..##\n#.r.ad....##\n#...#..#.w*#\n##w##....w##\n#...##...w##\n#.o.#ew....#\n#...##w....#\n06##########\n\nmessage PAPER covers ROCK\n\n(One Versus Twenty-Two)\n############\n#.p.prrre#*#\n#...prr.r#r#\n##r##r.r.r.#\n#...#.r.r.r#\n#...#r.r.r.#\n#.o.#.rpr.r#\n#...#r.r.r.#\n07##########\n\nmessage SCISSORS cut PAPER\n\n(Big Paper is Useless)\n############\n#...p..e##*#\n#.p.p.a###p#\n#...p......#\n##w##...pp.#\n#...#.d.pp.#\n#.o.#...pp.#\n#...#......#\n08##########\n\nmessage ROCK must be PUSHED DIRECTLY\n\nmessage EVERYTHING ELSE can PUSH EACH OTHER\n\n(Light and Heavy)\n############\n#....r*..r.#\n#...g#r.#.e#\n#.dpp#g.ppp#\n##p###w.#..#\n#...#...#..#\n#.o.#......#\n#...#......#\n09##########\n\nmessage DISCOVER other SECRETS\n\nmessage GOOD LUCK\n\n(More Gems, More Rock Piles)\n#############\n#o...e#.....#\n#rgrgr#*rgrg#\n#grgrg#rgrgr#\n#ggrgrggrgrg#\n#rggrg#rgrgr#\n#grggr#gggrg#\n#.....#.....#\n10###########\n\n(Scissors Field)\n################\n#....#.....#e..#\n#.*.#.s..#a.#..#\n#...#.#.....#..#\n#s#s#...#...#..#\n#.........#.#s##\n#......#.....o.#\n#..............#\n11##############\n\n(Littered Boulders)\n############\n#...#...a..#\n#..g..#.#.e#\n#.rrr.rr##s#\n#..r.#....o#\n#.#r..rr##w#\n#..r..#.#..#\n#..r....a*.#\n12##########\n\n(Cleaning Job)\n###########\n#.....o#e.#\n#......#..#\n#..######s#\n#grggrgggr#\n#grrggrrrg#\n#rrgrrrggr#\n#.prrggrr*#\n#.rggrggrr#\n13#########\n\n(Clearing the Path)\n##############\n#p.........rr#\n#p...ss.aa.rr#\n#p...ss.aa.#r#\n#ppp...r...#*#\n#pop.dd.ww.###\n#p...dd.ww##e#\n#ppppp...rrrr#\n14############\n\n(A-maze-ing Paper)\n#################\n#..............r#\n#.ppppppppp.###.#\n#.p.....prp.#...#\n#.p.ppp...p.#.*.#\n#.p...pp..p.#...#\n#.ppp.ppppp.#####\n#.p...p...p.#...#\n#.pp.pp.p.p.#.e.#\n#.p.....p.o.a...#\n#.ppppppppp.#.w.#\n#...........#...#\n15###############\n\n(Exercising Into Shape)\n#############\n###.......#e#\n#....ppp..#r#\n#....ppp..o.#\n#....ppp....#\n#.#.........#\n#r#..w.a..###\n#*#.......###\n16###########\n\n(Surrounded)\n#######################\n#ppp....p....ppp......#\n#p.............p......#\n#p.............p......#\n#...p...p...p.........#\n#.....................#\n#...............#.....#\n#...............#.....#\n#p..p...p...p..p#.....#\n#...............#.....#\n#...............#..w..#\n#...............#..e..#\n#...p...p...p...#######\n#ppp...........p...ppp#\n#pop...........p...p*p#\n#ppp....p....ppp...ppp#\n17#####################\n\n(The Killer)\n##########\n#........#\n#.ppp....#\n#.prp.g..#\n#.ppp....#\n#....a...#\n###....aa#\n#ero.##*##\n18########\n\nmessage CONGRATULATIONS\n", [0, 0, 0, 0, 3, 3, 3, 3, 2, 2, 2, 2, 2, 3, 3, 3, 3, 0, 0, 0, 0, 2, 1, 1, 3, 3, 2, 2, 1, 0, 3, 0, 1, 2, 1, 0], "background wall:0,0,0,0,0,0,0,0,background level0 wall:1,0,background:2,2,\n2,2,2,2,2,background level4 wall:3,0,2,2,2,2,2,\n2,2,background nextstar nostar wall:4,0,2,2,2,2,2,2,2,0,\n0,background paper paperborderl papernexttoborderl papernofold:5,background paper paperborderd paperborderl papernofold:6,0,0,0,0,0,0,0,background paper paperborderd papernofold:7,2,\nbackground paper paperborderl papernexttoborderl:8,6,2,2,2,0,0,background paper paperborderld:9,6,2,background paper paperborderd papernexttoborderd papernofold:10,2,\n2,2,0,0,background star:11,0,background paper paperborderl papernofold:12,10,background player:13,2,2,0,\n0,0,12,7,2,2,2,2,0,0,background exit exitholder:14,background paper papernofold:15,\n10,2,2,2,2,0,0,0,background paper:16,10,2,2,\n2,2,0,0,0,0,0,0,0,0,0,0,\n", 8, "1627778623784.798"] ], [ `gallery: hazard golf`, - ["title Hazard Golf\nauthor Mark Richardson\nagain_interval 0.1\nrun_rules_on_level_start\nzoomscreen 14x13\n(verbose_logging)\n\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nHud\nBlack\n\nStroke\nLightGray Gray DarkGray\n...0.\n...0.\n..02.\n111..\n.12..\n\nOverPar\n#F22 #D00 #800\n...0.\n...0.\n..02.\n111..\n.12..\n\nPlayer\nWhite Pink DarkBlue Red LightGray\n.00..\n.11..\n22224\n.03.4\n.30.4\n\nBall\nWhite\n.....\n.....\n..0..\n.....\n.....\n\nAirBall\nWhite\n.....\n.00..\n.00..\n.....\n.....\n\nTee\nRed #A00\n.....\n.....\n0...0\n..1..\n.....\n\nHole\nBlack White\n..1..\n..1..\n..0..\n.....\n.....\n\nPin\nRed White\n..0..\n..00.\n..000\n..1..\n..1..\n\nGreen\n#6F6\n\nFairway\n#2F2\n\nRough\n#0D0\n\nWater\nBlue\n\nBridgeV\n#C83 #D94 #B72 #A61\n01110\n02220\n03330\n01110\n02220\n\nBridgeH\n#C83 #D94 #B72 #A61\n00000\n21321\n21321\n21321\n00000\n\nSand\n#FF4 #FF0 #DD0\n00022\n12110\n22120\n00121\n21001\n\nTree\nBrown #7F7 #3F3 #0B0\n.111.\n32221\n32221\n.333.\n..0..\n\nConcrete\n#AAA #999\n10000\n10000\n10000\n10000\n01111\n\nIce\n#FF8\n\nCrack\n#FFD\n....0\n0.00.\n.0.0.\n..0..\n..0..\n\nBrokenGlass\n#FFF #BBF #77F\n11020\n01100\n20202\n11001\n20110\n\nDuck\nWhite Yellow Gray\n.....\n...0.\n02001\n.000.\n.....\n\nAirDuck\nWhite Yellow Gray\n.....\n22.0.\n02201\n.000.\n.....\n\nBear\nRed Black #B72 #A61\n.....\n.222.\n22221\n22220\n3..3.\n\nAimH\nWhite\n.....\n.....\n.000.\n.....\n.....\n\nAimV\nWhite\n.....\n..0..\n..0..\n..0..\n.....\n\nCursor1\nTransparent Yellow\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nCursor2\nWhite\n.....\n..0..\n.000.\n..0..\n.....\n\nCursor3\nTransparent Yellow\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nCheatMessage\nTransparent\n\nBrokenGlassMessage\nTransparent\n\nHole12Message\nTransparent\n\nBlood\nRed\n0...0\n.0...\n00000\n0..0.\n...0.\n\nOutOfBounds\n#F88\n0...0\n.....\n.....\n.....\n0...0\n\nInit\nTransparent\n\n\n=======\nLEGEND\n=======\n\n/ = Stroke and Hud and Rough\n_ = Hud and Rough\n@ = Player and Rough\nY = Fairway and Tee and Ball and CheatMessage and Init\nW = Rough and BrokenGlassMessage\nZ = Rough and Duck and Hole12Message\nP = Hole and Green\n: = Green\n, = Fairway\n. = Rough\n~ = Water\n# = BridgeV\nH = BridgeH\n- = Sand\nT = Tree and Rough\nQ = Tree and Fairway\n+ = Concrete\n% = Ice\n\" = BrokenGlass\nd = Duck and Rough\ne = Duck and Fairway\nf = Duck and Green\ng = Duck and Water\nA = Bear and Rough\nB = Bear and Fairway\n* = Blood and Fairway\n(Hole planning)\nx = Rough\nc = Rough\n\nDeadly = Bear\nEdible = Player or Duck\nHitable = Ball or Duck or Bear\nAirHitable = AirBall or AirDuck\nSinkable = Ball or Player\nSwimable = Duck\nWalkStop = Water or Tree or BrokenGlass or OutOfBounds\nAirStop = Tree or OutOfBounds\nRollGo = Green or BridgeV or BridgeH or Concrete or Ice\nRollStop = AirStop or Duck or Player or Bear\nScore = Stroke or OverPar\nAim = AimH or AimV\nHit2 = Green or Fairway or Concrete or Ice or Rough or BridgeV or BridgeH or Water or Sand or BrokenGlass\nHit3 = Green or Fairway or Concrete or Ice or Rough or BridgeV or BridgeH or Water\nHit5 = Green or Fairway or Concrete or Ice\nAirDeco = Pin or OutOfBounds or CheatMessage or BrokenGlassMessage or Hole12Message\n\n\n=======\nSOUNDS\n=======\n\nAirBall Create 58489507\nAirDuck Create 60653709\nBlood Create 50259908\nCrack Create 93556707\nWater Create 48152908\nEndLevel 26251903\nsfx1 26251903 (Sink ball)\nsfx2 96277908 (Splash)\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground (I don't need this layer)\nRollGo, Hit2 (Surfaces)\nTee, Hole, Crack, Blood (Ground decoration)\nHitable (Ground objects)\nPlayer, Tree, Bear (Obstacles)\nAirHitable (Airborne objects)\nAirDeco (Air decoration)\nCursor1, Cursor2, Cursor3, Init (Cursors)\nHud (Hud underlay)\nAim, Stroke, OverPar (Hud overlay)\n\n\n======\nRULES\n======\n\n(Decoration)\nup[Init][Hole|no Pin]->[Init][Hole|Pin]\n[Init][no AirDeco]->[Init][left OutOfBounds]\nleft[Init][||||||left OutOfBounds|||||||]->[Init][||||||down OutOfBounds|||||||]\ndown[Init][||||||down OutOfBounds||||||]->[Init][||||||||||||]\n[Init][moving OutOfBounds]->[Init][OutOfBounds]\n[Init]->[]\n\n(Cheat)\nup[moving Player][OverPar|OverPar][CheatMessage]->[moving Player][OverPar|OverPar][]message Psst... If you want to cheat, just walk up the hole and press X.\n[action Player Hole][OverPar]->[action Player Hole][]\n[action Player Hole][Ball]->[Player Hole Ball][]again message ♪ Nobody's watching, and... Hooray! I scored par!\n\n(Dead)\n[Edible|Deadly]->[Blood|Deadly]\n\n(Adjust aim)\n[moving Player][Cursor2]->[Player][moving Cursor2]\n[> Cursor2|Cursor1][Aim]->[> Cursor2|Cursor1][]\n[> Cursor2|Cursor1]->[|]\n[action Cursor2 Hitable]->cancel\n\n(Ready swing)\n[> Player|Hitable]->[Player|^ Hitable action Cursor1]\n[> Hitable Hit2 action Cursor1 |no AirStop no AimH]->[> Hitable Hit2 Cursor1|AimH Cursor2]\n[> Hitable Hit2|AimH |no AirStop no AimH]->[> Hitable Hit2|AimH|AimH]\n[> Hitable Hit3|AimH|AimH |no AirStop no AimH]->[> Hitable Hit3|AimH|AimH|AimH]\n[> Hitable Hit5|AimH|AimH|AimH |no AirStop no AimH]->[> Hitable Hit5|AimH|AimH|AimH|AimH]\n[> Hitable Hit5|AimH|AimH|AimH|AimH|no AirStop no AimH]->[> Hitable Hit5|AimH|AimH|AimH|AimH|AimH]\n[vertical Hitable][AimH]->[vertical Hitable][AimV]\n[action Cursor1]->[] \n[> Hitable]->[Hitable]\n\n(Swim)\n[moving Player][stationary Swimable Water]->[moving Player][randomdir Swimable Water]\n[Cursor1][moving Swimable]->[Cursor1][Swimable]\n[> Swimable|no Water]->[Swimable|]\n\n(Cancel aim)\n[Player|Cursor1 Ball][> Cursor2][Aim]->[> Player|Cursor1 Ball][> Cursor2][]\n[Player|Cursor1][< Cursor2][Aim]->[< Player|Cursor1][< Cursor2][]\n[Player|Cursor1 Ball][> Cursor2]->[> Player|Ball][]\n[Player|Cursor1][< Cursor2]->[< Player|][]\n[> Cursor2|no Aim]->[Cursor2|]\n\n(Move ball)\n[Cursor1|stationary Cursor3 stationary Ball RollGo|no RollStop]->[> Cursor1|> Cursor3 > Ball RollGo|]again\n[Cursor1|stationary Cursor3 stationary Ball]->[|Ball]\nlate[Cursor1 AirBall|Cursor3 Ice]->[Cursor1|Cursor3 Ice Crack]\nlate[Cursor1 AirBall|Cursor3]->[Cursor1|Cursor3 Ball]again\nlate[Cursor1 AirDuck|Cursor3]->[|Duck]\n[Cursor1 AirHitable|...|Cursor3]->[> Cursor1 > AirHitable|...|Cursor3]again\n\n(Sink)\nlate[Player Ice Crack]->[Player Water]again\n[Water Sinkable]->[Water]sfx2\n\n(Hit ball)\n[action Cursor2][Aim]->[action Cursor2][]\nup[Cursor1 Ball][action Cursor2][Stroke|no Stroke]->[Cursor1 AirBall][Cursor3][|]again\nup[Cursor1 Ball][action Cursor2][OverPar|Hud no OverPar]->[Cursor1 AirBall][Cursor3][OverPar|Hud OverPar]again\nup[Cursor1 Ball][action Cursor2][Hud||||||||||||Hud]->[Cursor1 AirBall][Cursor3][Hud OverPar||||||||||||Hud]again\n[Cursor1 Duck][action Cursor2]->[Cursor1 AirDuck][Cursor3]again\n\n(Walk)\n[> Player|BrokenGlass][BrokenGlassMessage]->[Player|BrokenGlass][]message Ouch! That's broken glass!\n[> Player|WalkStop]->cancel\n[> Player][stationary Score]->[> Player][> Score]\n[> Player][stationary Hud]->[> Player][> Hud]\nlate[Player|Deadly]->again\n\n(Start Hole 12)\nlate down[Player Hole12Message][Hud||||||||||||Hud]->[Player][Hud|||||||||Stroke|Stroke|Stroke|Hud Stroke]message Hole 12, Par 4\n\n(Fail)\nlate [Ball Hole][OverPar]->[Ball Hole][OverPar]again sfx1 message I'm over par. Let's pretend that never happened and try again.\n[Ball Hole][OverPar]->restart\n\n\n==============\nWINCONDITIONS\n==============\n\nsome Player\nall Hole on Ball\nno OverPar\n\n\n=======\nLEVELS\n=======\n\nmessage What a lovely day to play a round of golf.\nmessage Hole 1, Par 3\n\n.......................\n.......................\n.......................\n..T....................\n...................T...\n.......................\n.........T.............\n..........,,,,,........\n......T..,,:::,,.......\n.........,:::::,.......\n........,,::P::,..+++++\n........,,,::::,.......\n.T......,,,,::,,.......\n.._.....,,,,,,,........\n.._.....,,,,,..........\n.._.....,,,,,.T........\n.._.T....,,,...........\n.._....................\n.._....................\n.._......@Y...T........\n.._T...................\n.._....................\n.._.......+.......T....\n../.......+............\n../..T....+............\n../.......+............\n..........+............\n\nmessage Hole 2, Par 4\n\n.....T................\n......................\n............T.........\n......................\n.......T.........T....\n......................\n...............T......\n..........,,,.........\n..T......,,:,,....T...\n.........,:P:,........\n.........,,:,,........\n.........,,,,,...T....\n........,,,,,--.......\n.....T..,,,----.......\n........,,,---........\n.........,,,,,........\n..T......,,,,,........\n..........,,,,,.......\n..........,,,,,...T...\n..........,,,,,.......\n......T..,,,,,........\n.........,,,,,........\n..._.....---,,,.......\nT.._....----,,,.......\n..._....--,,,,........\n..._.....,,,,.........\n..._T.................\n..._............T.....\n..._......@Y..........\n..._..................\n..._..T..............T\n.../.......+..........\n.../.......+..........\n.../.......+....T.....\n.T./.......+..........\n...........+..........\n\nmessage Hole 3, Par 5\n\n.....+.T..T..T..T........\n...T.+............T......\n.....+++++++++++.........\n...............+.........\n...T..T..T..T..+..T......\n.........................\n.........................\n..............,,,....T...\n..T..........,,:,,.......\n.............,:P:,.......\n.............,,:,,.......\n.............,,,,,.....T.\n.............,,,,,.......\n.........T...,,,,,.......\n...T.........,,,,,..T....\n.............,,,,........\n............,,,,.........\n............,,,,......T..\n.....T.....,,,,,.........\n._.........,,,,...T......\nT_........,,,,...........\n._......,,,,,............\n._......,,,,..........T..\n._.............T.........\n._.......................\n._T.....@Y...............\n._...............T.......\n./.......................\n./.......+.T...........T.\n./.......+...............\n./.......+.........T.....\n./...T...+...............\n.........+...............\n\nmessage Hole 4, Par 4\n\n..............T..+..........\n.................+..........\n.........T.......+..........\n.................+.....T..T.\n.....T...........+..T.......\n.................+......~~~~\n......T.....T.T..+.~~g~~~~~~\n..........T.....~#~~~~g~~~..\n..T.....T....~~~~#~~~~......\n...........~~~~~.,,,....T.T.\n......T..~~~~~.,,,:,,.T.....\n....T...~~~~.,,,,:P:,.......\n......~~~~.,,,,,,,:,,...T...\n._T..~~~~~,,,,,,,,,,........\n._..~~~~~,,,,,,,............\n._T.~~~.,,,,,,........T.....\n._..~~~.,,,.................\n._.~~~~.........T...........\n._.~g~~.....................\n._.~~~..@Y..................\n._.~~~......T.......T.......\n._~~~~......................\n./~~~~...+..................\n./~~~~...+........T.........\n./~~~....+.....T............\n./~~~....+..................\n..~~~....+..................\n\nmessage There's ducks on the fairway! Why am I paying green fees?\nmessage Hole 5, Par 3\n\n~~~~...T.................\n~~~~~~...T......T........\n++~~~~~~...T..........T..\n.++++~~~~~...T...........\n....++++~~~~...T...T.....\n.......+..~~~~...........\n............~~~..T.......\n.........,,,.~~~.........\n........,,:,,.~~~..T.....\n........,:P:,.~~~~....T..\n........,,:,,..~~~..T....\n......_.,,,,,...~~~......\n......_.,,e,,,,,~~~~.T...\n......_.,e,,,,,,,~~~.....\n......_..,,e,,,,,~~~.T...\n......_.......d..~~~.....\n......_..........~~~.T...\n......_......@Y..~~~.....\n......_.........~g~~.T...\n......_.........~~~......\n......_.......+~~~~.T....\n....../......++~~~.......\n....../......+~~~~.T..T..\n....../.....++~~~........\n............+~~~~.T......\n\nmessage What's that sparkly stuff?\nmessage Hole 6, Par 4\n\n........................\n...T....................\n..................T.....\n........................\n............T...........\n.......T................\n.....................T..\n....T....,,,...T........\n........,,:,,...........\n++++++..,:P:,.....T.....\n........,,:,,...........\n..T......,,,,,..........\n......._.,,,,,,.......T.\n......._\"\",,,,,\"\".......\n......._\"\",,,,,\"\".......\n...T..._....,,,.........\n......._............T...\n......._.T..............\n......._......@YW.++++++\n......._................\n.T....._................\n......./...T........T...\n......./................\n......./........T.......\n......./................\n.....T..................\n\nmessage Hole 7, Par 5\n\n...T.....T.......T.......T...\n.T...T.......T......T........\n........T........T.....T.....\n...T........T...T........T...\n.T....T...T..........T.......\n....T........T....T.....T....\n.T.....T........T..........T.\n....T......T..T...,,,.T......\n..T......T......T,,:,,....T..\n......T.....T....,:P:,..T....\n...T....\"\"...T.T.,,:,,..+++++\n._...T..\"\",,,,,..T,,,...T....\n._T.....,,,,,,,,T.,,,T....T..\n._...T..,,,,,\"\",.T,,,........\nT_.....T,,,T.,,,,,,,,.T...T..\n._..T.......T,,,,,\"\",...T....\n._T........T..,,,,\"\".........\n._....T.@Y......T....T.....T.\n._............T....T...T.....\n./.T.....T.....T.............\nT/....T.+...T....T...T...T...\n./......+T....T.......T....T.\n./..T...+....T....T......T...\n./....T.+..T..........T......\n.T......+T......T........T...\n\nmessage That's a bear sleeping there. I'd better not disturb him.\nmessage Hole 8, Par 5\n\n..............................\n..............................\n..............................\n..............................\n..............................\n..............................\n.T.T..........................\n.....T.T...........--.........\n+++......T.........---........\n~~+++++....T......,,---.......\n~~~~~~++++...T...,,:,--.......\n~~~~~~~~~+++.....,:P:,........\n~~~~~~~~~~~++++..,,:,,...T....\n...T~~~~~~~~#~~~~~,,,......T.T\nT........~~~#~~~g~~~~~~~~.....\n..T...---.....~~~~~~~~~~~~~~~~\nT.....----.........~~g~~~~~~~~\n.T.....---,,,,,,,,,,,...~~~~~~\n._.....,,,,,,,,,,,B,,,..T....T\n._T....,,,,,,,,,,,,,,,....T...\nT_.....,,,,,,,,,,,,---..T....T\n._.T....,,,,,,,,,,,----....T..\n._..................---..T....\n._..T......................T..\nT_......@Y..............T.....\n._.T.............T...T....T.T.\n./....T......T.....T....T.....\nT/..T....+.....T......T....T..\n./.T...T.+..T.T......T..T....T\n./...T...+.......T........T...\n./T......+.....T...T...T......\nT.....T..+...T...T.........T..\n\nmessage Oh. Now I see why the course isn't being maintained...\nmessage Hole 9, Par 5\n\n....T...T...T.......T....T.\n.T..T..........T.......T...\n.........T...T....T........\n......T............T....T..\n..T............T...........\n......T..T.T..T..........T.\n.T..T......................\n........T..T....,,,........\n....T..........,,:,,.......\n.T........T....,:P:,..+++++\n...T..T.....T..,,:,,.......\n........T.....,,,,,........\n..T..........,,,,,,........\n......T....,,,B,,,.........\n...T.....,,,,,,,,,.........\n........,,,B*,,--,.........\n.....T..,,,,,,,----........\n..T.....,,,,,,,.---........\n........,,,,,..............\n.._.T...,,,,,..............\n.._.....,,,,,..............\n.._.....,,,,,............T.\n.._......,,,.........T.T...\n.._................T....+++\n.._............T.T...++++~~\n.._......@Y..T....++++~~~~~\n.._............++++~~~g~~~.\n../....T....++++~~~~~~~....\n../T.T.......~~~~~~~....T.T\n.T/.......~g~~~~~.....T....\n../....~~~~~~~....T.T......\n../.~~~~~~~.....T..........\n.~~~~~~~....T.T............\n\nmessage Maybe I'll take up lawn bowls instead.\n\n",[2,3,4,0,3,1,3,0,0,0,0,2,2,3,3,3,1,4,2,3,3,3,0,0,4],"background outofbounds rough:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background outofbounds rough tree:1,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,\n1,0,0,1,0,0,0,0,0,0,0,0,0,1,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,\n0,background hud outofbounds rough:2,2,2,2,2,2,2,2,2,2,background hud outofbounds rough stroke:3,3,3,0,background concrete outofbounds:4,4,4,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,\n4,0,1,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,1,0,4,0,0,0,background rough:5,5,5,5,5,5,5,5,5,5,5,5,5,\n5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,4,0,0,0,5,5,5,5,5,\n5,5,5,5,5,5,5,5,5,5,background fairway:6,6,5,5,5,5,0,0,0,0,0,0,0,0,4,\n0,1,0,5,5,5,5,5,5,5,background rough tree:7,5,5,5,5,5,5,5,6,6,5,5,background cheatmessage fairway tee:8,5,0,\n4,4,4,4,4,1,0,4,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,\n6,6,6,5,5,5,5,0,0,0,0,0,0,0,0,4,0,0,0,5,5,5,5,5,5,\n5,5,5,5,5,5,6,6,6,6,6,5,5,background player rough:9,5,0,1,0,0,0,0,0,0,4,0,\n1,0,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,background ball rough:10,5,5,5,5,0,0,\n0,0,0,0,1,0,4,0,0,0,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,\n5,5,5,5,5,5,0,0,0,0,0,0,0,0,4,0,0,0,5,6,6,background green:11,6,6,6,\n6,6,6,6,6,6,6,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,4,4,4,\n0,5,6,background green pin:12,background green hole:13,11,6,6,6,6,6,6,6,6,5,5,5,5,7,5,5,5,0,0,0,\n0,0,0,1,0,0,0,0,0,5,6,6,11,6,6,6,6,6,6,5,5,5,5,5,5,\n5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,5,5,6,6,6,6,6,6,\n6,5,5,5,5,5,5,5,5,5,5,5,7,0,0,0,0,0,0,0,1,0,0,1,0,\n5,5,5,5,5,5,5,5,5,5,5,5,5,7,5,5,5,5,5,5,5,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,\n0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,\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,\n1,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,1,0,0,0,0,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,1,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,\n",6,"1627778649364.9995"] + ["title Hazard Golf\nauthor Mark Richardson\nagain_interval 0.1\nrun_rules_on_level_start\nzoomscreen 14x13\n(verbose_logging)\n\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nHud\nBlack\n\nStroke\nLightGray Gray DarkGray\n...0.\n...0.\n..02.\n111..\n.12..\n\nOverPar\n#F22 #D00 #800\n...0.\n...0.\n..02.\n111..\n.12..\n\nPlayer\nWhite Pink DarkBlue Red LightGray\n.00..\n.11..\n22224\n.03.4\n.30.4\n\nBall\nWhite\n.....\n.....\n..0..\n.....\n.....\n\nAirBall\nWhite\n.....\n.00..\n.00..\n.....\n.....\n\nTee\nRed #A00\n.....\n.....\n0...0\n..1..\n.....\n\nHole\nBlack White\n..1..\n..1..\n..0..\n.....\n.....\n\nPin\nRed White\n..0..\n..00.\n..000\n..1..\n..1..\n\nGreen\n#6F6\n\nFairway\n#2F2\n\nRough\n#0D0\n\nWater\nBlue\n\nBridgeV\n#C83 #D94 #B72 #A61\n01110\n02220\n03330\n01110\n02220\n\nBridgeH\n#C83 #D94 #B72 #A61\n00000\n21321\n21321\n21321\n00000\n\nSand\n#FF4 #FF0 #DD0\n00022\n12110\n22120\n00121\n21001\n\nTree\nBrown #7F7 #3F3 #0B0\n.111.\n32221\n32221\n.333.\n..0..\n\nConcrete\n#AAA #999\n10000\n10000\n10000\n10000\n01111\n\nIce\n#FF8\n\nCrack\n#FFD\n....0\n0.00.\n.0.0.\n..0..\n..0..\n\nBrokenGlass\n#FFF #BBF #77F\n11020\n01100\n20202\n11001\n20110\n\nDuck\nWhite Yellow Gray\n.....\n...0.\n02001\n.000.\n.....\n\nAirDuck\nWhite Yellow Gray\n.....\n22.0.\n02201\n.000.\n.....\n\nBear\nRed Black #B72 #A61\n.....\n.222.\n22221\n22220\n3..3.\n\nAimH\nWhite\n.....\n.....\n.000.\n.....\n.....\n\nAimV\nWhite\n.....\n..0..\n..0..\n..0..\n.....\n\nCursor1\nTransparent Yellow\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nCursor2\nWhite\n.....\n..0..\n.000.\n..0..\n.....\n\nCursor3\nTransparent Yellow\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nCheatMessage\nTransparent\n\nBrokenGlassMessage\nTransparent\n\nHole12Message\nTransparent\n\nBlood\nRed\n0...0\n.0...\n00000\n0..0.\n...0.\n\nOutOfBounds\n#F88\n0...0\n.....\n.....\n.....\n0...0\n\nInit\nTransparent\n\n\n=======\nLEGEND\n=======\n\n/ = Stroke and Hud and Rough\n_ = Hud and Rough\n@ = Player and Rough\nY = Fairway and Tee and Ball and CheatMessage and Init\nW = Rough and BrokenGlassMessage\nZ = Rough and Duck and Hole12Message\nP = Hole and Green\n: = Green\n, = Fairway\n. = Rough\n~ = Water\n# = BridgeV\nH = BridgeH\n- = Sand\nT = Tree and Rough\nQ = Tree and Fairway\n+ = Concrete\n% = Ice\n\" = BrokenGlass\nd = Duck and Rough\ne = Duck and Fairway\nf = Duck and Green\ng = Duck and Water\nA = Bear and Rough\nB = Bear and Fairway\n* = Blood and Fairway\n(Hole planning)\nx = Rough\nc = Rough\n\nDeadly = Bear\nEdible = Player or Duck\nHitable = Ball or Duck or Bear\nAirHitable = AirBall or AirDuck\nSinkable = Ball or Player\nSwimable = Duck\nWalkStop = Water or Tree or BrokenGlass or OutOfBounds\nAirStop = Tree or OutOfBounds\nRollGo = Green or BridgeV or BridgeH or Concrete or Ice\nRollStop = AirStop or Duck or Player or Bear\nScore = Stroke or OverPar\nAim = AimH or AimV\nHit2 = Green or Fairway or Concrete or Ice or Rough or BridgeV or BridgeH or Water or Sand or BrokenGlass\nHit3 = Green or Fairway or Concrete or Ice or Rough or BridgeV or BridgeH or Water\nHit5 = Green or Fairway or Concrete or Ice\nAirDeco = Pin or OutOfBounds or CheatMessage or BrokenGlassMessage or Hole12Message\n\n\n=======\nSOUNDS\n=======\n\nAirBall Create 58489507\nAirDuck Create 60653709\nBlood Create 50259908\nCrack Create 93556707\nWater Create 48152908\nEndLevel 26251903\nsfx1 26251903 (Sink ball)\nsfx2 96277908 (Splash)\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground (I don't need this layer)\nRollGo, Hit2 (Surfaces)\nTee, Hole, Crack, Blood (Ground decoration)\nHitable (Ground objects)\nPlayer, Tree, Bear (Obstacles)\nAirHitable (Airborne objects)\nAirDeco (Air decoration)\nCursor1, Cursor2, Cursor3, Init (Cursors)\nHud (Hud underlay)\nAim, Stroke, OverPar (Hud overlay)\n\n\n======\nRULES\n======\n\n(Decoration)\nup[Init][Hole|no Pin]->[Init][Hole|Pin]\n[Init][no AirDeco]->[Init][left OutOfBounds]\nleft[Init][||||||left OutOfBounds|||||||]->[Init][||||||down OutOfBounds|||||||]\ndown[Init][||||||down OutOfBounds||||||]->[Init][||||||||||||]\n[Init][moving OutOfBounds]->[Init][OutOfBounds]\n[Init]->[]\n\n(Cheat)\nup[moving Player][OverPar|OverPar][CheatMessage]->[moving Player][OverPar|OverPar][]message Psst... If you want to cheat, just walk up the hole and press X.\n[action Player Hole][OverPar]->[action Player Hole][]\n[action Player Hole][Ball]->[Player Hole Ball][]again message ♪ Nobody's watching, and... Hooray! I scored par!\n\n(Dead)\n[Edible|Deadly]->[Blood|Deadly]\n\n(Adjust aim)\n[moving Player][Cursor2]->[Player][moving Cursor2]\n[> Cursor2|Cursor1][Aim]->[> Cursor2|Cursor1][]\n[> Cursor2|Cursor1]->[|]\n[action Cursor2 Hitable]->cancel\n\n(Ready swing)\n[> Player|Hitable]->[Player|^ Hitable action Cursor1]\n[> Hitable Hit2 action Cursor1 |no AirStop no AimH]->[> Hitable Hit2 Cursor1|AimH Cursor2]\n[> Hitable Hit2|AimH |no AirStop no AimH]->[> Hitable Hit2|AimH|AimH]\n[> Hitable Hit3|AimH|AimH |no AirStop no AimH]->[> Hitable Hit3|AimH|AimH|AimH]\n[> Hitable Hit5|AimH|AimH|AimH |no AirStop no AimH]->[> Hitable Hit5|AimH|AimH|AimH|AimH]\n[> Hitable Hit5|AimH|AimH|AimH|AimH|no AirStop no AimH]->[> Hitable Hit5|AimH|AimH|AimH|AimH|AimH]\n[vertical Hitable][AimH]->[vertical Hitable][AimV]\n[action Cursor1]->[] \n[> Hitable]->[Hitable]\n\n(Swim)\n[moving Player][stationary Swimable Water]->[moving Player][randomdir Swimable Water]\n[Cursor1][moving Swimable]->[Cursor1][Swimable]\n[> Swimable|no Water]->[Swimable|]\n\n(Cancel aim)\n[Player|Cursor1 Ball][> Cursor2][Aim]->[> Player|Cursor1 Ball][> Cursor2][]\n[Player|Cursor1][< Cursor2][Aim]->[< Player|Cursor1][< Cursor2][]\n[Player|Cursor1 Ball][> Cursor2]->[> Player|Ball][]\n[Player|Cursor1][< Cursor2]->[< Player|][]\n[> Cursor2|no Aim]->[Cursor2|]\n\n(Move ball)\n[Cursor1|stationary Cursor3 stationary Ball RollGo|no RollStop]->[> Cursor1|> Cursor3 > Ball RollGo|]again\n[Cursor1|stationary Cursor3 stationary Ball]->[|Ball]\nlate[Cursor1 AirBall|Cursor3 Ice]->[Cursor1|Cursor3 Ice Crack]\nlate[Cursor1 AirBall|Cursor3]->[Cursor1|Cursor3 Ball]again\nlate[Cursor1 AirDuck|Cursor3]->[|Duck]\n[Cursor1 AirHitable|...|Cursor3]->[> Cursor1 > AirHitable|...|Cursor3]again\n\n(Sink)\nlate[Player Ice Crack]->[Player Water]again\n[Water Sinkable]->[Water]sfx2\n\n(Hit ball)\n[action Cursor2][Aim]->[action Cursor2][]\nup[Cursor1 Ball][action Cursor2][Stroke|no Stroke]->[Cursor1 AirBall][Cursor3][|]again\nup[Cursor1 Ball][action Cursor2][OverPar|Hud no OverPar]->[Cursor1 AirBall][Cursor3][OverPar|Hud OverPar]again\nup[Cursor1 Ball][action Cursor2][Hud||||||||||||Hud]->[Cursor1 AirBall][Cursor3][Hud OverPar||||||||||||Hud]again\n[Cursor1 Duck][action Cursor2]->[Cursor1 AirDuck][Cursor3]again\n\n(Walk)\n[> Player|BrokenGlass][BrokenGlassMessage]->[Player|BrokenGlass][]message Ouch! That's broken glass!\n[> Player|WalkStop]->cancel\n[> Player][stationary Score]->[> Player][> Score]\n[> Player][stationary Hud]->[> Player][> Hud]\nlate[Player|Deadly]->again\n\n(Start Hole 12)\nlate down[Player Hole12Message][Hud||||||||||||Hud]->[Player][Hud|||||||||Stroke|Stroke|Stroke|Hud Stroke]message Hole 12, Par 4\n\n(Fail)\nlate [Ball Hole][OverPar]->[Ball Hole][OverPar]again sfx1 message I'm over par. Let's pretend that never happened and try again.\n[Ball Hole][OverPar]->restart\n\n\n==============\nWINCONDITIONS\n==============\n\nsome Player\nall Hole on Ball\nno OverPar\n\n\n=======\nLEVELS\n=======\n\nmessage What a lovely day to play a round of golf.\nmessage Hole 1, Par 3\n\n.......................\n.......................\n.......................\n..T....................\n...................T...\n.......................\n.........T.............\n..........,,,,,........\n......T..,,:::,,.......\n.........,:::::,.......\n........,,::P::,..+++++\n........,,,::::,.......\n.T......,,,,::,,.......\n.._.....,,,,,,,........\n.._.....,,,,,..........\n.._.....,,,,,.T........\n.._.T....,,,...........\n.._....................\n.._....................\n.._......@Y...T........\n.._T...................\n.._....................\n.._.......+.......T....\n../.......+............\n../..T....+............\n../.......+............\n..........+............\n\nmessage Hole 2, Par 4\n\n.....T................\n......................\n............T.........\n......................\n.......T.........T....\n......................\n...............T......\n..........,,,.........\n..T......,,:,,....T...\n.........,:P:,........\n.........,,:,,........\n.........,,,,,...T....\n........,,,,,--.......\n.....T..,,,----.......\n........,,,---........\n.........,,,,,........\n..T......,,,,,........\n..........,,,,,.......\n..........,,,,,...T...\n..........,,,,,.......\n......T..,,,,,........\n.........,,,,,........\n..._.....---,,,.......\nT.._....----,,,.......\n..._....--,,,,........\n..._.....,,,,.........\n..._T.................\n..._............T.....\n..._......@Y..........\n..._..................\n..._..T..............T\n.../.......+..........\n.../.......+..........\n.../.......+....T.....\n.T./.......+..........\n...........+..........\n\nmessage Hole 3, Par 5\n\n.....+.T..T..T..T........\n...T.+............T......\n.....+++++++++++.........\n...............+.........\n...T..T..T..T..+..T......\n.........................\n.........................\n..............,,,....T...\n..T..........,,:,,.......\n.............,:P:,.......\n.............,,:,,.......\n.............,,,,,.....T.\n.............,,,,,.......\n.........T...,,,,,.......\n...T.........,,,,,..T....\n.............,,,,........\n............,,,,.........\n............,,,,......T..\n.....T.....,,,,,.........\n._.........,,,,...T......\nT_........,,,,...........\n._......,,,,,............\n._......,,,,..........T..\n._.............T.........\n._.......................\n._T.....@Y...............\n._...............T.......\n./.......................\n./.......+.T...........T.\n./.......+...............\n./.......+.........T.....\n./...T...+...............\n.........+...............\n\nmessage Hole 4, Par 4\n\n..............T..+..........\n.................+..........\n.........T.......+..........\n.................+.....T..T.\n.....T...........+..T.......\n.................+......~~~~\n......T.....T.T..+.~~g~~~~~~\n..........T.....~#~~~~g~~~..\n..T.....T....~~~~#~~~~......\n...........~~~~~.,,,....T.T.\n......T..~~~~~.,,,:,,.T.....\n....T...~~~~.,,,,:P:,.......\n......~~~~.,,,,,,,:,,...T...\n._T..~~~~~,,,,,,,,,,........\n._..~~~~~,,,,,,,............\n._T.~~~.,,,,,,........T.....\n._..~~~.,,,.................\n._.~~~~.........T...........\n._.~g~~.....................\n._.~~~..@Y..................\n._.~~~......T.......T.......\n._~~~~......................\n./~~~~...+..................\n./~~~~...+........T.........\n./~~~....+.....T............\n./~~~....+..................\n..~~~....+..................\n\nmessage There's ducks on the fairway! Why am I paying green fees?\nmessage Hole 5, Par 3\n\n~~~~...T.................\n~~~~~~...T......T........\n++~~~~~~...T..........T..\n.++++~~~~~...T...........\n....++++~~~~...T...T.....\n.......+..~~~~...........\n............~~~..T.......\n.........,,,.~~~.........\n........,,:,,.~~~..T.....\n........,:P:,.~~~~....T..\n........,,:,,..~~~..T....\n......_.,,,,,...~~~......\n......_.,,e,,,,,~~~~.T...\n......_.,e,,,,,,,~~~.....\n......_..,,e,,,,,~~~.T...\n......_.......d..~~~.....\n......_..........~~~.T...\n......_......@Y..~~~.....\n......_.........~g~~.T...\n......_.........~~~......\n......_.......+~~~~.T....\n....../......++~~~.......\n....../......+~~~~.T..T..\n....../.....++~~~........\n............+~~~~.T......\n\nmessage What's that sparkly stuff?\nmessage Hole 6, Par 4\n\n........................\n...T....................\n..................T.....\n........................\n............T...........\n.......T................\n.....................T..\n....T....,,,...T........\n........,,:,,...........\n++++++..,:P:,.....T.....\n........,,:,,...........\n..T......,,,,,..........\n......._.,,,,,,.......T.\n......._\"\",,,,,\"\".......\n......._\"\",,,,,\"\".......\n...T..._....,,,.........\n......._............T...\n......._.T..............\n......._......@YW.++++++\n......._................\n.T....._................\n......./...T........T...\n......./................\n......./........T.......\n......./................\n.....T..................\n\nmessage Hole 7, Par 5\n\n...T.....T.......T.......T...\n.T...T.......T......T........\n........T........T.....T.....\n...T........T...T........T...\n.T....T...T..........T.......\n....T........T....T.....T....\n.T.....T........T..........T.\n....T......T..T...,,,.T......\n..T......T......T,,:,,....T..\n......T.....T....,:P:,..T....\n...T....\"\"...T.T.,,:,,..+++++\n._...T..\"\",,,,,..T,,,...T....\n._T.....,,,,,,,,T.,,,T....T..\n._...T..,,,,,\"\",.T,,,........\nT_.....T,,,T.,,,,,,,,.T...T..\n._..T.......T,,,,,\"\",...T....\n._T........T..,,,,\"\".........\n._....T.@Y......T....T.....T.\n._............T....T...T.....\n./.T.....T.....T.............\nT/....T.+...T....T...T...T...\n./......+T....T.......T....T.\n./..T...+....T....T......T...\n./....T.+..T..........T......\n.T......+T......T........T...\n\nmessage That's a bear sleeping there. I'd better not disturb him.\nmessage Hole 8, Par 5\n\n..............................\n..............................\n..............................\n..............................\n..............................\n..............................\n.T.T..........................\n.....T.T...........--.........\n+++......T.........---........\n~~+++++....T......,,---.......\n~~~~~~++++...T...,,:,--.......\n~~~~~~~~~+++.....,:P:,........\n~~~~~~~~~~~++++..,,:,,...T....\n...T~~~~~~~~#~~~~~,,,......T.T\nT........~~~#~~~g~~~~~~~~.....\n..T...---.....~~~~~~~~~~~~~~~~\nT.....----.........~~g~~~~~~~~\n.T.....---,,,,,,,,,,,...~~~~~~\n._.....,,,,,,,,,,,B,,,..T....T\n._T....,,,,,,,,,,,,,,,....T...\nT_.....,,,,,,,,,,,,---..T....T\n._.T....,,,,,,,,,,,----....T..\n._..................---..T....\n._..T......................T..\nT_......@Y..............T.....\n._.T.............T...T....T.T.\n./....T......T.....T....T.....\nT/..T....+.....T......T....T..\n./.T...T.+..T.T......T..T....T\n./...T...+.......T........T...\n./T......+.....T...T...T......\nT.....T..+...T...T.........T..\n\nmessage Oh. Now I see why the course isn't being maintained...\nmessage Hole 9, Par 5\n\n....T...T...T.......T....T.\n.T..T..........T.......T...\n.........T...T....T........\n......T............T....T..\n..T............T...........\n......T..T.T..T..........T.\n.T..T......................\n........T..T....,,,........\n....T..........,,:,,.......\n.T........T....,:P:,..+++++\n...T..T.....T..,,:,,.......\n........T.....,,,,,........\n..T..........,,,,,,........\n......T....,,,B,,,.........\n...T.....,,,,,,,,,.........\n........,,,B*,,--,.........\n.....T..,,,,,,,----........\n..T.....,,,,,,,.---........\n........,,,,,..............\n.._.T...,,,,,..............\n.._.....,,,,,..............\n.._.....,,,,,............T.\n.._......,,,.........T.T...\n.._................T....+++\n.._............T.T...++++~~\n.._......@Y..T....++++~~~~~\n.._............++++~~~g~~~.\n../....T....++++~~~~~~~....\n../T.T.......~~~~~~~....T.T\n.T/.......~g~~~~~.....T....\n../....~~~~~~~....T.T......\n../.~~~~~~~.....T..........\n.~~~~~~~....T.T............\n\nmessage Maybe I'll take up lawn bowls instead.\n\n", [2, 3, 4, 0, 3, 1, 3, 0, 0, 0, 0, 2, 2, 3, 3, 3, 1, 4, 2, 3, 3, 3, 0, 0, 4], "background outofbounds rough:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background outofbounds rough tree:1,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,\n1,0,0,1,0,0,0,0,0,0,0,0,0,1,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,\n0,background hud outofbounds rough:2,2,2,2,2,2,2,2,2,2,background hud outofbounds rough stroke:3,3,3,0,background concrete outofbounds:4,4,4,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,\n4,0,1,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,1,0,4,0,0,0,background rough:5,5,5,5,5,5,5,5,5,5,5,5,5,\n5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,4,0,0,0,5,5,5,5,5,\n5,5,5,5,5,5,5,5,5,5,background fairway:6,6,5,5,5,5,0,0,0,0,0,0,0,0,4,\n0,1,0,5,5,5,5,5,5,5,background rough tree:7,5,5,5,5,5,5,5,6,6,5,5,background cheatmessage fairway tee:8,5,0,\n4,4,4,4,4,1,0,4,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,\n6,6,6,5,5,5,5,0,0,0,0,0,0,0,0,4,0,0,0,5,5,5,5,5,5,\n5,5,5,5,5,5,6,6,6,6,6,5,5,background player rough:9,5,0,1,0,0,0,0,0,0,4,0,\n1,0,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,background ball rough:10,5,5,5,5,0,0,\n0,0,0,0,1,0,4,0,0,0,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,\n5,5,5,5,5,5,0,0,0,0,0,0,0,0,4,0,0,0,5,6,6,background green:11,6,6,6,\n6,6,6,6,6,6,6,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,4,4,4,\n0,5,6,background green pin:12,background green hole:13,11,6,6,6,6,6,6,6,6,5,5,5,5,7,5,5,5,0,0,0,\n0,0,0,1,0,0,0,0,0,5,6,6,11,6,6,6,6,6,6,5,5,5,5,5,5,\n5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,5,5,6,6,6,6,6,6,\n6,5,5,5,5,5,5,5,5,5,5,5,7,0,0,0,0,0,0,0,1,0,0,1,0,\n5,5,5,5,5,5,5,5,5,5,5,5,5,7,5,5,5,5,5,5,5,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,\n0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,\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,\n1,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,1,0,0,0,0,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,1,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,\n", 6, "1627778649364.9995"] ], [ `gallery: collapsable sokoban`, - ["title Collapsable Sokoban\nauthor Franklin P. Dyer\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\n@ = Player\no = Crate\n& = Crate and Target\n+ = 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[Wall|...|Player] -> [> Wall|...|Player]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 3\n\n..........\n.////////.\n./....../.\n./....@./.\n./..+.../.\n./..o.../.\n./....../.\n./....../.\n.////////.\n..........\n\nmessage Level 2 of 3\n\n..........\n......+o..\n..........\n///////...\n....../...\n.@..../...\n....../...\n....../...\n///////...\n..........\n\nmessage Level 3 of 3\n\n.........@\n......./..\n./..o.....\n...../....\n......../.\n../.+..o..\n....+.....\n......./..\n..../.....\n..........\n\n\nmessage Congratulations! You win!\n",[3,3,3,0,0,1,2,3,3,2,1,2,2,3,3,3,3],"background:0,0,0,background wall:1,0,0,0,0,0,0,\n0,0,0,0,1,0,0,0,1,0,\n0,0,0,0,1,1,0,1,0,0,\n0,0,0,0,0,0,1,1,1,0,\n0,0,0,0,0,1,1,1,1,0,\n0,0,0,0,1,0,0,0,1,0,\n0,background target:2,0,0,1,1,0,0,0,1,\n0,background crate:3,0,0,0,0,0,0,0,background player:4,\n0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,\n",3,"1627778695403.4497"] + ["title Collapsable Sokoban\nauthor Franklin P. Dyer\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\n@ = Player\no = Crate\n& = Crate and Target\n+ = 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[Wall|...|Player] -> [> Wall|...|Player]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 3\n\n..........\n.////////.\n./....../.\n./....@./.\n./..+.../.\n./..o.../.\n./....../.\n./....../.\n.////////.\n..........\n\nmessage Level 2 of 3\n\n..........\n......+o..\n..........\n///////...\n....../...\n.@..../...\n....../...\n....../...\n///////...\n..........\n\nmessage Level 3 of 3\n\n.........@\n......./..\n./..o.....\n...../....\n......../.\n../.+..o..\n....+.....\n......./..\n..../.....\n..........\n\n\nmessage Congratulations! You win!\n", [3, 3, 3, 0, 0, 1, 2, 3, 3, 2, 1, 2, 2, 3, 3, 3, 3], "background:0,0,0,background wall:1,0,0,0,0,0,0,\n0,0,0,0,1,0,0,0,1,0,\n0,0,0,0,1,1,0,1,0,0,\n0,0,0,0,0,0,1,1,1,0,\n0,0,0,0,0,1,1,1,1,0,\n0,0,0,0,1,0,0,0,1,0,\n0,background target:2,0,0,1,1,0,0,0,1,\n0,background crate:3,0,0,0,0,0,0,0,background player:4,\n0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,\n", 3, "1627778695403.4497"] ], [ `gallery: skipping stones to lonely homes`, - ["title Skipping Stones to Lonely Homes\nauthor Alan Hazelden\nhomepage www.draknek.org\n\n(verbose_logging)\n\nrun_rules_on_level_start\n\nrealtime_interval 0.1\nagain_interval 0.1\n(key_repeat_interval 0.2)\n\nflickscreen 19x14\n\nnoaction\n\n(youtube UuKbLbC1zw0)\n\n========\nOBJECTS\n========\n\nBackground\nLightBlue Blue\n11111\n11101\n11111\n10111\n11111\n\nSand .\n#dfcc4f yellow\n11111\n01111\n11101\n11111\n10111\n\nTree\nBrown Green\n..11.\n111..\n1.011\n..0.1\n..0..\n\n(Hole\n#c5b446 #dfcc4f\n11111\n01111\n11101\n11111\n10111\n\nCrate\nBrown Orange\n00000\n01110\n01110\n01110\n00000)\n\nLily\nGreen LightGreen\n.111.\n10001\n10001\n10001\n.111.\n\n\nRipple1\nBlue LightBlue\n00000\n01110\n01010\n01110\n00000\n\nRipple2\nBlue LightBlue\n01110\n10001\n10001\n10001\n01110\n\nRippleH\nBlue LightBlue\n00000\n00000\n01110\n00000\n00000\n\nRippleH2\nBlue LightBlue\n00000\n01110\n01010\n01110\n00000\n\nRippleH3\ntransparent\n\nRippleH4\ntransparent\n\nRippleH5\ntransparent\n\nRippleV\nBlue LightBlue\n00000\n00100\n00100\n00100\n00000\n\nRippleV2\nBlue LightBlue\n00000\n01110\n01010\n01110\n00000\n\nRippleV3\ntransparent\n\nRippleV4\ntransparent\n\nRippleV5\ntransparent\n\n(WaterNew\nwhite LightBlue\n11111\n01111\n11101\n11111\n10111)\n\n\nTreasure\n#d0be4a Yellow Yellow\n.111.\n10201\n12021\n10201\n.111.\n\nTreasure2\n#dfcc4f yellow\n1111.\n01111\n11101\n11111\n10111\n\nTreasure3\n#dfcc4f yellow #d0be4a orange white\n1111.\n11111\n12211\n10011\n11111\n\nTreasure4\n#dfcc4f yellow #d0be4a orange white\n1111.\n12221\n10001\n10001\n11111\n\nTreasure5\n#dfcc4f yellow #d0be4a orange white\n1111.\n22222\n00000\n00000\n11111\n\nTreasure6\n#dfcc4f yellow #d0be4a orange white\n1222.\n20002\n00300\n00000\n10001\n\nTreasure7\n#dfcc4f yellow #d0be4a orange white\n1222.\n20002\n03430\n03330\n10001\n\nTreasureTaken\n#dfcc4f yellow #d0be4a\n1222.\n20002\n00000\n00000\n10001\n\n\n\nTarget\ntransparent\n\nTarget2\ntransparent\n\nRemoveTarget\ntransparent\n\n(\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTarget2\nRed\n.....\n.000.\n.0.0.\n.000.\n.....\n\nRemoveTarget\nRed\n.....\n.....\n..0..\n.....\n.....\n)\n\nPlayerNormal\nDarkRed #493c2b #000000\n..0..\n.111.\n01110\n02220\n.2.2.\n\nPlayerInWater\nDarkRed #493c2b #000000\n..0..\n.111.\n01110\n02220\n.....\n\nPebble\nGrey DarkGrey LightGrey\n.....\n..00.\n.0001\n.0111\n...1.\n\nSubmergedPebble\nDarkGrey #263546 Blue LightBlue\n22222\n22232\n20022\n00012\n01112\n\nU\ntransparent\n\nD\ntransparent\n\nL\ntransparent\n\nR\ntransparent\n\n\nAddLandLUD\nYellow\n0....\n.....\n.....\n.....\n0....\n\nAddLandLU\nYellow\n0....\n.....\n.....\n.....\n.....\n\nAddLandLD\nYellow\n.....\n.....\n.....\n.....\n0....\n\nAddLandRUD\nYellow\n....0\n.....\n.....\n.....\n....0\n\nAddLandRU\nYellow\n....0\n.....\n.....\n.....\n.....\n\nAddLandRD\nYellow\n.....\n.....\n.....\n.....\n....0\n\nRemoveLandLUD\nBlue\n0....\n.....\n.....\n.....\n0....\n\nRemoveLandLU\nBlue\n0....\n.....\n.....\n.....\n.....\n\nRemoveLandLD\nBlue\n.....\n.....\n.....\n.....\n0....\n\nRemoveLandRUD\nBlue\n....0\n.....\n.....\n.....\n....0\n\nRemoveLandRU\nBlue\n....0\n.....\n.....\n.....\n.....\n\nRemoveLandRD\nBlue\n.....\n.....\n.....\n.....\n....0\n\n\nFlowL1 ←\n#3166f7 #cbe4ef\n00100\n00000\n00001\n00000\n01000\n\nFlowL2\n#3166f7 #cbe4ef\n01000\n00000\n00010\n00000\n10000\n\nFlowL3\n#3166f7 #cbe4ef\n10000\n00000\n00100\n00000\n00001\n\nFlowL4\n#3166f7 #cbe4ef\n00001\n00000\n01000\n00000\n00010\n\nFlowL5\n#3166f7 #cbe4ef\n00010\n00000\n10000\n00000\n00100\n\nFlowR1 →\n#3166f7 #cbe4ef\n10000\n00000\n00100\n00000\n00001\n\nFlowR2\n#3166f7 #cbe4ef\n01000\n00000\n00010\n00000\n10000\n\nFlowR3\n#3166f7 #cbe4ef\n00100\n00000\n00001\n00000\n01000\n\nFlowR4\n#3166f7 #cbe4ef\n00010\n00000\n10000\n00000\n00100\n\nFlowR5\n#3166f7 #cbe4ef\n00001\n00000\n01000\n00000\n00010\n\nFlowU1 ↑\n#3166f7 #cbe4ef\n10000\n00001\n00000\n00100\n00000\n\nFlowU2\n#3166f7 #cbe4ef\n00001\n00000\n00100\n00000\n10000\n\nFlowU3\n#3166f7 #cbe4ef\n00000\n00100\n00000\n10000\n00001\n\nFlowU4\n#3166f7 #cbe4ef\n00100\n00000\n10000\n00001\n00000\n\nFlowU5\n#3166f7 #cbe4ef\n00000\n10000\n00001\n00000\n00100\n\nFlowD1 ↓\n#3166f7 #cbe4ef\n10000\n00001\n00000\n00100\n00000\n\nFlowD2\n#3166f7 #cbe4ef\n00000\n10000\n00001\n00000\n00100\n\nFlowD3\n#3166f7 #cbe4ef\n00100\n00000\n10000\n00001\n00000\n\nFlowD4\n#3166f7 #cbe4ef\n00000\n00100\n00000\n10000\n00001\n\nFlowD5\n#3166f7 #cbe4ef\n00001\n00000\n00100\n00000\n10000\n\nStopFlow\ntransparent\n\nShip_Left\n#eb8931 #732930 #2f2416 #ffffff\n..030\n.0331\n01121\n.0111\n..000\n\nShip_Right1\n#eb8931 #732930 #2f2416 #ffffff\n3330.\n12110\n12110\n11110\n0000.\n\nShip_Right2\n#eb8931 #732930 #2f2416 #ffffff\n3330.\n12110\n12110\n11110\n0000.\n\nShip_Sails\n#ffffff\n.....\n.....\n.....\n.00..\n00...\n\nDarkness\nblack\n\nDeath\nLightBlue Blue\n11111\n11101\n11111\n10111\n11111\n\nSpeedup\ntransparent\n\nLight_trigger\ntransparent\n\nLight\nwhite\n\nMyMistake\ntransparent\n\n=======\nLEGEND\n=======\n\nw = Background\n\nDirection = U or D or L or R\n\nPlayer = PlayerNormal or PlayerInWater\n\nRipple = Ripple1 or Ripple2 or RippleH or RippleV or RippleH2 or RippleV2 or RippleH3 or RippleV3 or RippleH4 or RippleV4 or RippleH5 or RippleV5\n\nFloor = Lily or Sand or SubmergedPebble or Ship_Left or Ship_Right1 or Ship_Right2\n\nFlowL = FlowL1 or FlowL2 or FlowL3 or FlowL4 or FlowL5\nFlowR = FlowR1 or FlowR2 or FlowR3 or FlowR4 or FlowR5\nFlowU = FlowU1 or FlowU2 or FlowU3 or FlowU4 or FlowU5\nFlowD = FlowD1 or FlowD2 or FlowD3 or FlowD4 or FlowD5\n\nFlow = FlowL or FlowR or FlowU or FlowD\n\nFlow5 = FlowL5 or FlowR5 or FlowU5 or FlowD5\n\nP = PlayerNormal and Sand\n* = Pebble and Sand\nO = Lily\n@ = Target and Sand and Light_trigger\nx = Target2 and Sand and Light_trigger\n% = RemoveTarget and Sand\n! = Target and Light_trigger\n? = RemoveTarget\nn = SubmergedPebble\nT = Treasure and Sand\nS = Ship_Left\n1 = Ship_Right1 and TreasureTaken\n2 = Ship_Right2\n/ = Ship_Sails\n$ = Tree and Sand\n[ = FlowR1 and Speedup\n] = FlowD1 and Speedup\n{ = FlowU1 and Speedup\n} = FlowL1 and Speedup\nY = Death\n\nAddLandL = AddLandLUD or AddLandLU or AddLandLD\nAddLandR = AddLandRUD or AddLandRU or AddLandRD\n\nRemoveLandL = RemoveLandLUD or RemoveLandLU or RemoveLandLD\nRemoveLandR = RemoveLandRUD or RemoveLandRU or RemoveLandRD\n\nShip = Ship_Left or Ship_Right1 or Ship_Right2\n\n\n=======\nSOUNDS\n=======\n\nsfx1 60997509 ( 13158309) (bounce pebble)\nsfx2 53480307 (push pebble)\nsfx3 45570309 (rock submerging)\nsfx4 73166102 (rock landing on ground)\nsfx5 56148307 (player move)\nsfx6 14433907 (player can't move)\nsfx7 58358104 (rock hits rock)\nsfx8 97863107 (dig 1)\nsfx9 75661907 (dig 2)\nsfx0 23172308 (whirlpool death)\n\n(63191902)\n\nEndLevel 32481708\n\nUndo 8098307\nRestart 7235102\n\n(Treasure3 Create 97863107\nTreasure6 Create 75661907)\n\n(Treasure2 Create 55366107)\n(Treasure3 Create 47174507)\n(Treasure4 Create 71981107)\n(Treasure5 Create 40321302)\n(Treasure6 Create 33433507)\n(Treasure7 Create 97863107)\n\nTreasureTaken Create 2479500\nLight Create 71916703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSand, FlowL, FlowR, FlowU, FlowD\nSubmergedPebble, StopFlow\nAddLandL, RemoveLandL\nAddLandR, RemoveLandR\nRipple, Tree\nLily\nTarget, Target2, RemoveTarget, Treasure, Treasure2, Treasure3, Treasure4, Treasure5, Treasure6, Treasure7, TreasureTaken\nPlayer, Pebble\nDirection\nShip_Left, Ship_Right1, Ship_Right2, Ship_Sails, Light_trigger\nMyMistake\nSpeedup, Death, Darkness, Light\n\n\n======\nRULES\n======\n\n(oops)\n\n[ MyMistake ] -> [ MyMistake Death ]\n\ndown [ MyMistake ] [ no Sand | . no Target|.|.|.|.|.|.|.|. no Target|.|.|no Sand|.|.|.|no Sand|no Sand|no Sand|.|.|no Sand ] -> [] [no Sand | . no Target|.|.|.|.|.|.|.|. no Target|.|.|no Sand|.|.|.|no Sand|no Sand|no Sand|.|.|no Sand] message Sorry but I screwed up and this puzzle might not be possible. Please start over? My fault not yours :( :( :(\n\n(Island border)\n\nleft [ no Sand no AddLandL | Sand ] -> [ no Sand AddLandLUD | Sand ]\nright [ no Sand no AddLandR | Sand ] -> [ no Sand AddLandRUD | Sand ]\n\nup [ AddLandLUD | no Sand ] -> [ AddLandLD | no Sand ]\nup [ AddLandRUD | no Sand ] -> [ AddLandRD | no Sand ]\n\ndown [ AddLandLUD | no Sand ] -> [ AddLandLU | no Sand ]\ndown [ AddLandRUD | no Sand ] -> [ AddLandRU | no Sand ]\n\ndown [ AddLandLD | no Sand ] -> [ | no Sand ]\ndown [ AddLandRD | no Sand ] -> [ | no Sand ]\n\nleft [ Sand no RemoveLandL | no Sand ] -> [ Sand RemoveLandLUD | no Sand ]\nright [ Sand no RemoveLandR | no Sand ] -> [ Sand RemoveLandRUD | no Sand ]\n\nup [ RemoveLandLUD | Sand ] -> [ RemoveLandLD | Sand ]\nup [ RemoveLandRUD | Sand ] -> [ RemoveLandRD | Sand ]\n\ndown [ RemoveLandLUD | Sand ] -> [ RemoveLandLU | Sand ]\ndown [ RemoveLandRUD | Sand ] -> [ RemoveLandRU | Sand ]\n\ndown [ RemoveLandLD | Sand ] -> [ | Sand ]\ndown [ RemoveLandRD | Sand ] -> [ | Sand ]\n\nright [ RemoveLandRU | AddLandLU ] -> [ RemoveLandRU | ]\nright [ RemoveLandRD | AddLandLD ] -> [ RemoveLandRD | ]\n\nright [ RemoveLandRUD | AddLandLU ] -> [ RemoveLandRUD | ]\nright [ RemoveLandRUD | AddLandLD ] -> [ RemoveLandRUD | ]\n\nleft [ RemoveLandLU | AddLandRU ] -> [ RemoveLandLU | ]\nleft [ RemoveLandLD | AddLandRD ] -> [ RemoveLandLD | ]\n\nleft [ RemoveLandLUD | AddLandRU ] -> [ RemoveLandLUD | ]\nleft [ RemoveLandLUD | AddLandRD ] -> [ RemoveLandLUD | ]\n\n(water redirection)\n\nleft [ stationary FlowL5 | no Flow no Sand no SubmergedPebble ] -> [ FlowL5 | action FlowL5 ]\nright [ stationary FlowR5 | no Flow no Sand no SubmergedPebble ] -> [ FlowR5 | action FlowR5 ]\nup [ stationary FlowU5 | no Flow no Sand no SubmergedPebble ] -> [ FlowU5 | action FlowU5 ]\ndown [ stationary FlowD5 | no Flow no Sand no SubmergedPebble ] -> [ FlowD5 | action FlowD5 ]\n\n[ action Flow ] -> [ Flow ]\n\nleft [ FlowL | Flow SubmergedPebble no Ripple ] -> [ action FlowL | Flow action SubmergedPebble ]\nright [ FlowR | Flow SubmergedPebble no Ripple ] -> [ action FlowR | Flow action SubmergedPebble ]\nup [ FlowU | Flow SubmergedPebble no Ripple ] -> [ action FlowU | Flow action SubmergedPebble ]\ndown [ FlowD | Flow SubmergedPebble no Ripple ] -> [ action FlowD | Flow action SubmergedPebble ]\n\n[ Flow5 StopFlow ] -> [ Flow5 action StopFlow ]\n\nleft [ action StopFlow FlowL | Flow ] -> [ | Flow StopFlow ]\nright [ action StopFlow FlowR | Flow ] -> [ | Flow StopFlow ]\nup [ action StopFlow FlowU | Flow ] -> [ | Flow StopFlow ]\ndown [ action StopFlow FlowD | Flow ] -> [ | Flow StopFlow ]\n\n[ action StopFlow Flow ] -> []\n\n[ StopFlow RemoveTarget Flow ] -> [ RemoveTarget ]\n\nleft [ action SubmergedPebble FlowL | Flow ] -> [ action SubmergedPebble FlowL | Flow StopFlow ]\nright [ action SubmergedPebble FlowR | Flow ] -> [ action SubmergedPebble FlowR | Flow StopFlow ]\nup [ action SubmergedPebble FlowU | Flow ] -> [ action SubmergedPebble FlowU | Flow StopFlow ]\ndown [ action SubmergedPebble FlowD | Flow ] -> [ action SubmergedPebble FlowD | Flow StopFlow ]\n\ndown [ FlowD action SubmergedPebble ] [ action FlowL | no Floor ] -> [ FlowD action SubmergedPebble ] [ FlowD1 | FlowD ]\nup [ Flow action SubmergedPebble ] [ action FlowL | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowU1 | Flow ]\ndown [ Flow action SubmergedPebble ] [ action FlowL | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowD1 | Flow ]\n\nup [ FlowU action SubmergedPebble ] [ action FlowR | no Floor ] -> [ FlowU action SubmergedPebble ] [ FlowU1 | FlowU ]\ndown [ Flow action SubmergedPebble ] [ action FlowR | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowD1 | Flow ]\nup [ Flow action SubmergedPebble ] [ action FlowR | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowU1 | Flow ]\n\nright [ FlowR action SubmergedPebble ] [ action FlowD | no Floor ] -> [ FlowR action SubmergedPebble ] [ FlowR1 | FlowR ]\nleft [ Flow action SubmergedPebble ] [ action FlowD | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowL1 | Flow ]\nright [ Flow action SubmergedPebble ] [ action FlowD | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowR1 | Flow ]\n\nleft [ FlowL action SubmergedPebble ] [ action FlowU | no Floor ] -> [ FlowL action SubmergedPebble ] [ FlowL1 | FlowL ]\nright [ Flow action SubmergedPebble ] [ action FlowU | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowR1 | Flow ]\nleft [ Flow action SubmergedPebble ] [ action FlowU | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowL1 | Flow ]\n\n[ action SubmergedPebble Flow ] -> [ SubmergedPebble ]\n\n(Currents anim)\n\n[ stationary Player ] [ stationary FlowL5 ] -> [Player] [ action FlowL1 ]\n[ stationary Player ] [ stationary FlowL4 ] -> [Player] [ action FlowL5 ]\n[ stationary Player ] [ stationary FlowL3 ] -> [Player] [ action FlowL4 ]\n[ stationary Player ] [ stationary FlowL2 ] -> [Player] [ action FlowL3 ]\n[ stationary Player ] [ stationary FlowL1 ] -> [Player] [ action FlowL2 ]\n\n[ stationary Player ] [ stationary FlowR5 ] -> [Player] [ action FlowR1 ]\n[ stationary Player ] [ stationary FlowR4 ] -> [Player] [ action FlowR5 ]\n[ stationary Player ] [ stationary FlowR3 ] -> [Player] [ action FlowR4 ]\n[ stationary Player ] [ stationary FlowR2 ] -> [Player] [ action FlowR3 ]\n[ stationary Player ] [ stationary FlowR1 ] -> [Player] [ action FlowR2 ]\n\n[ stationary Player ] [ stationary FlowU5 ] -> [Player] [ action FlowU1 ]\n[ stationary Player ] [ stationary FlowU4 ] -> [Player] [ action FlowU5 ]\n[ stationary Player ] [ stationary FlowU3 ] -> [Player] [ action FlowU4 ]\n[ stationary Player ] [ stationary FlowU2 ] -> [Player] [ action FlowU3 ]\n[ stationary Player ] [ stationary FlowU1 ] -> [Player] [ action FlowU2 ]\n\n[ stationary Player ] [ stationary FlowD5 ] -> [Player] [ action FlowD1 ]\n[ stationary Player ] [ stationary FlowD4 ] -> [Player] [ action FlowD5 ]\n[ stationary Player ] [ stationary FlowD3 ] -> [Player] [ action FlowD4 ]\n[ stationary Player ] [ stationary FlowD2 ] -> [Player] [ action FlowD3 ]\n[ stationary Player ] [ stationary FlowD1 ] -> [Player] [ action FlowD2 ]\n\n[ stationary Player Speedup action FlowL4 ] -> [ Player Speedup stationary FlowL5 ]\n[ stationary Player Speedup action FlowL3 ] -> [ Player Speedup stationary FlowL4 ]\n[ stationary Player Speedup action FlowL2 ] -> [ Player Speedup stationary FlowL3 ]\n[ stationary Player Speedup action FlowL1 ] -> [ Player Speedup stationary FlowL2 ]\n\n[ stationary Player Speedup action FlowR4 ] -> [ Player Speedup stationary FlowR5 ]\n[ stationary Player Speedup action FlowR3 ] -> [ Player Speedup stationary FlowR4 ]\n[ stationary Player Speedup action FlowR2 ] -> [ Player Speedup stationary FlowR3 ]\n[ stationary Player Speedup action FlowR1 ] -> [ Player Speedup stationary FlowR2 ]\n\n[ stationary Player Speedup action FlowU4 ] -> [ Player Speedup stationary FlowU5 ]\n[ stationary Player Speedup action FlowU3 ] -> [ Player Speedup stationary FlowU4 ]\n[ stationary Player Speedup action FlowU2 ] -> [ Player Speedup stationary FlowU3 ]\n[ stationary Player Speedup action FlowU1 ] -> [ Player Speedup stationary FlowU2 ]\n\n[ stationary Player Speedup action FlowD4 ] -> [ Player Speedup stationary FlowD5 ]\n[ stationary Player Speedup action FlowD3 ] -> [ Player Speedup stationary FlowD4 ]\n[ stationary Player Speedup action FlowD2 ] -> [ Player Speedup stationary FlowD3 ]\n[ stationary Player Speedup action FlowD1 ] -> [ Player Speedup stationary FlowD2 ]\n\n[ stationary Player Speedup FlowD5 ] [ stationary Death ] -> [ Player Speedup FlowD5 ] [ right Death ]\n\n[ > Death | ] -> [ | Death ]\n\n[ moving Death ] [ Player ] -> [ Death Player ] [ no Lily ] sfx0\n\n[ Lily no Player Speedup FlowD5 ] -> [ Speedup FlowD5 no Pebble ]\n\n(Gameplay)\n\n[ stationary Player ] [ FlowL5 Lily ] -> [Player] [ FlowL5 left Lily ]\n[ stationary Player ] [ FlowR5 Lily ] -> [Player] [ FlowR5 right Lily ]\n[ stationary Player ] [ FlowU5 Lily ] -> [Player] [ FlowU5 up Lily ]\n[ stationary Player ] [ FlowD5 Lily ] -> [Player] [ FlowD5 down Lily ]\n\n[ Ripple1 | moving Lily ] -> [ Ripple1 | Lily ] (makes sure that we don't miss any when skimming past a current)\n\n[ Ripple2 no SubmergedPebble | Lily | no Floor ] -> [ Ripple2 | > Lily | ]\nhorizontal [ RippleH4 | stationary Lily no Flow ] -> [ RippleH4 | > Lily ]\nvertical [ RippleV4 | stationary Lily no Flow ] -> [ RippleV4 | > Lily ]\n\n[ Ripple1 | moving Lily | no Floor ] -> [ Ripple1 | Lily | ] (makes sure that we don't miss any when skimming past an already moving lily)\n\n([ > Lily | stationary Lily ] -> [ > Lily | > Lily ])\n\n[ stationary Player ] [ RippleH4 ] -> [Player] []\n[ stationary Player ] [ RippleV4 ] -> [Player] []\n[ stationary Player ] [ RippleH3 ] -> [Player] [ RippleH4 ]\n[ stationary Player ] [ RippleV3 ] -> [Player] [ RippleV4 ]\n[ stationary Player ] [ RippleH2 ] -> [Player] [ RippleH3 ]\n[ stationary Player ] [ RippleV2 ] -> [Player] [ RippleV3 ]\n[ stationary Player ] [ RippleH ] -> [Player] [ RippleH2 ]\n[ stationary Player ] [ RippleV ] -> [Player] [ RippleV2 ]\n\n(horizontal [ Lily | RippleH | no Ripple2 ] -> [ Lily | | ]\nvertical [ Lily | RippleV | no Ripple2 ] -> [ Lily | | ])\n\n[ stationary Player ] [ Ripple2 ] -> [Player] []\n[ stationary Player ] [ Ripple1 ] -> [Player] [ Ripple2 ]\n\nhorizontal [ > Lily Pebble | no Floor no Flow ] -> [ RippleH | Lily Pebble ]\nhorizontal [ > Lily Player | no Floor no Flow ] -> [ RippleH | Lily Player ]\nhorizontal [ > Lily | no Floor no Flow ] -> [ RippleH | Lily ]\nvertical [ > Lily Pebble | no Floor no Flow ] -> [ RippleV | Lily Pebble ]\nvertical [ > Lily Player | no Floor no Flow ] -> [ RippleV | Lily Player ]\nvertical [ > Lily | no Floor no Flow ] -> [ RippleV | Lily ]\n\n[ > Lily Pebble | no Floor no Pebble ] -> [ | Lily Pebble ]\n+ [ > Lily Player | no Floor no Pebble ] -> [ | Lily Player ]\n+ [ > Lily no Pebble no Player | no Floor ] -> [ | Lily ]\n\n[ > Lily Pebble | no Floor Pebble ] -> [ Lily Pebble | Pebble ]\n[ > Lily Player | no Floor Pebble ] -> [ Lily Player | Pebble ]\n\n[ > Lily | no Floor ] -> [ | Lily ]\n\n[ > Lily | Floor ] -> [ Lily | Floor ]\n\n[ stationary Player ] [ U Pebble ] -> [Player] [ U up Pebble ]\n[ stationary Player ] [ D Pebble ] -> [Player] [ D down Pebble ]\n[ stationary Player ] [ L Pebble ] -> [Player] [ L left Pebble ]\n[ stationary Player ] [ R Pebble ] -> [Player] [ R right Pebble ]\n\n[ Pebble Direction Floor ] -> [ stationary Pebble Floor ] sfx4 (pebble moves onto moving lily)\n\n[ > Player | no Floor ] -> [ Player | ] (sfx6)\n\n[ stationary Pebble no Floor no Direction ] -> [ SubmergedPebble Ripple1 ] sfx3\n\n[ > Pebble Floor | stationary Pebble ] -> [ Pebble Floor | Pebble ]\n[ > Pebble | stationary Pebble ] -> [ stationary Pebble no Direction | Pebble ] sfx7\n\n[ > Player | Pebble Treasure | Floor no Pebble ] -> [ | Treasure Player | Pebble Floor ] sfx2\n[ > Player | Pebble | Floor no Pebble no Treasure7 no Ship no Tree ] -> [ > Player | | Pebble Floor ] sfx2\n[ > Player | Pebble | no Floor no Pebble ] -> [ > Player | > Pebble | ]\n\n[ > Pebble | Ship ] -> [ Pebble no Direction | Ship ]\n\n[ left Pebble ] -> [ L left Pebble ]\n[ right Pebble ] -> [ R right Pebble ]\n[ up Pebble ] -> [ U up Pebble ]\n[ down Pebble ] -> [ D down Pebble ]\n\n[ moving Pebble no Floor ] -> [ moving Pebble Ripple1 ] sfx1\n\n[ > Pebble Direction | ] -> [ | Pebble Direction ]\n\n[ stationary Pebble Direction Floor ] -> [ Pebble Floor ] sfx4 (landing on floor)\n\n[ moving Pebble ] -> []\n\n[ moving Lily Pebble ] -> []\n[ moving Lily ] -> []\n\n(late [ Player Water ] -> [ PlayerInWater Water ]\nlate [ Player no Water ] -> [ PlayerNormal no Water ])\n\n(victory)\n\n[ > Player | Tree no Ship ] [ Ship_Right1 ] -> [ Player | TreasureTaken ] [ Ship_Right1 Tree ] message A palm tree! You can repair your ship with this.\n\n[ > Player | Ship_Right1 no Tree ] -> [ Player | Ship_Right1 ] message Your ship is damaged. You need to find some WOOD to repair it.\n\n[ Lily Ship_Right1 ] -> win\n[ Lily Ship_Right2 ] -> win\n\n[ > Player | Ship_Right1 Tree ] -> [ | Player action Ship_Right1 Tree Darkness ]\n[ > Player | Ship_Right2 ] -> [ | Player action Ship_Right2 Darkness ]\n\n[ Player Ship_Right1 ] -> again\n[ Player Ship_Right2 ] -> again\n\n[ Darkness | no Darkness ] -> [ Darkness | Darkness ]\n\n[ action Ship_Right1 TreasureTaken ] -> [ Ship_Right1 Lily TreasureTaken ] message You repair your ship and sail away to your next adventure!\n\n[ Ship_Right1 StopFlow Treasure ] -> [ Ship_Right1 Lily ] message Treasures found: 1/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure2 ] -> [ Ship_Right1 Lily ] message Treasures found: 2/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure3 ] -> [ Ship_Right1 Lily ] message Treasures found: 3/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure4 ] -> [ Ship_Right1 Lily ] message Treasures found: 4/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure5 ] -> [ Ship_Right1 Lily ] message Treasures found: 5/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure6 ] -> [ Ship_Right1 Lily ] message Treasures found: 6/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure7 ] -> [ Ship_Right1 Lily ] message Treasures found: 7/7, Kept: 0/7\n\n[ Ship_Right1 SubmergedPebble ] -> [ Ship_Right1 StopFlow ] message You reluctantly leave your spoils behind. Later you try to return, but you never manage to find the mysterious islands again.\n\n[ action Ship_Right1 no TreasureTaken ] -> [ Ship_Right1 SubmergedPebble ] message You repair it as best you can, but your battered ship isn't seaworthy enough to carry heavy treasure!\n\n[ Ship_Right2 StopFlow ] [ Ship_right1 TreasureTaken ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 0/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 1/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure2 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 2/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure3 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 3/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure4 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 4/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure5 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 5/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure6 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 6/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure7 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 7/7\n\n[ Ship_Right2 SubmergedPebble ] -> [ Ship_Right2 StopFlow ] message You sail away on your new ship, onwards to your next adventure!\n\n[ action Ship_Right2 ] -> [ Ship_Right2 SubmergedPebble ] message You find a strange ship, conveniently unguarded. It's probably haunted, but it seems seaworthy enough to carry you and your treasure.\n\n(treasure)\n\n[ TreasureTaken Lily | RemoveTarget ] -> message But are you stuck here with it?\n\n[ TreasureTaken Lily no Ship ] -> [ TreasureTaken ]\n\n[ > Player | Treasure no Pebble ] -> [ Player | action Treasure ]\n\n[ Treasure6 Sand ] -> [ Treasure7 Sand ] sfx8 again\n[ Treasure5 Sand ] -> [ Treasure6 Sand ] again\n[ Treasure4 Sand ] -> [ Treasure5 Sand ] again\n[ Treasure3 Sand ] -> [ Treasure4 Sand ] again\n[ Treasure2 Sand ] -> [ Treasure3 Sand ] sfx9 again\n\n[ action Treasure Sand ] -> [ Treasure2 Sand ] again\n\n[ > Player | Treasure7 ] -> [ Player | action TreasureTaken Lily ]\n\n[ action TreasureTaken ] [ no Sand TreasureTaken ] -> [ TreasureTaken ] [ Treasure ] message Found treasure! (1/7)\n[ action TreasureTaken ] [ no Sand Treasure ] -> [ TreasureTaken ] [ Treasure2 ] message Found treasure! (2/7)\n[ action TreasureTaken ] [ no Sand Treasure2 ] -> [ TreasureTaken ] [ Treasure3 ] message Found treasure! (3/7)\n[ action TreasureTaken ] [ no Sand Treasure3 ] -> [ TreasureTaken ] [ Treasure4 ] message Found treasure! (4/7)\n[ action TreasureTaken ] [ no Sand Treasure4 ] -> [ TreasureTaken ] [ Treasure5 ] message Found treasure! (5/7)\n[ action TreasureTaken ] [ no Sand Treasure5 ] -> [ TreasureTaken ] [ Treasure6 ] message Found treasure! (6/7)\n[ action TreasureTaken ] [ no Sand Treasure6 ] -> [ TreasureTaken ] [ Treasure7 ] message Found treasure! (7/7)\n([ action TreasureTaken ] [ no Sand Treasure7 ] -> [ TreasureTaken ] [ SubmergedPebble Lily ] message Found treasure! (8/8))\n\n(checkpoints)\n\n[ > Player | no Pebble ] -> [ | Player ] sfx5\n\n([ > Player | Pebble ] -> sfx6) (can't move)\n\n\n[ Player Target ] -> [ Player action Target ]\n[ action Target | stationary Target ] -> [ action Target | action Target ]\n[ action Target | RemoveTarget ] -> [ action Target | action RemoveTarget ]\n[ action Target Light_trigger ] -> [ action Target action Light_trigger ]\n[ action Target ] -> [] checkpoint\n\n\n[ Pebble Target2 ] -> [ Pebble action Target2 ]\n[ action Target2 | stationary Target2 ] -> [ action Target2 | action Target2 ]\n[ Player stationary Target2 ] -> [ Player Target2 StopFlow ]\n[ Target2 StopFlow | Target2 ] -> [ Target2 StopFlow | Target2 StopFlow ]\n[ Target2 StopFlow ] -> [ no Light_trigger ]\n[ action Target2 | RemoveTarget ] -> [ action Target2 | action RemoveTarget ]\n[ action Target2 Light_trigger ] -> [ action Target2 action Light_trigger ]\n[ action Target2 ] -> [] checkpoint\n\n\n[ action RemoveTarget | stationary RemoveTarget ] -> [ action RemoveTarget | action RemoveTarget ]\n[ action RemoveTarget ] -> []\n\n\n[ Pebble RemoveTarget ] -> [ Pebble action RemoveTarget ]\n[ action RemoveTarget | stationary RemoveTarget ] -> [ action RemoveTarget | action RemoveTarget ]\n[ action RemoveTarget | Target ] -> [ action RemoveTarget | no Light_trigger ]\n[ action RemoveTarget | Target2 ] -> [ action RemoveTarget | no Light_trigger ]\n\n\n[ Light ] -> [] checkpoint\n\n\n[ Player Light_trigger ] -> [ Player action Light_trigger ]\n\n[ action Light_trigger | Sand ] -> [ action Light_trigger | action Light_trigger Sand ]\n\n[ Player action Light_trigger | Sand ] -> [ Player action Light_trigger | action Sand Light ]\n\n[ action Sand Light | stationary Sand ] -> [ action Sand Light | action Sand Light no Light_trigger ]\n\n[ Light | no Light no Death no Speedup ] -> [ Light | Light ] again\n\n[ Light action Light_trigger ] -> [ Light ]\n\n\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww↓wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nwww/wwwwwwwwwwwwwwwwwwwwwwwwwwww↓wwwwwwwwwww...wwwwwwwn@wwwwwwwwwwwwwwwwwwww\nwws2w..wwwwwwwwwwwww...wwwwwwwwo↓wwwwwwwwww.....w..ww.w%%%.wwwwww.wwwwwwwwww\nwww......wwwwwwwwwwww....wwwowww↓wwwwwww.ww....↑wx....ww.%@.www...wwwwwwwwww\nwww......wwww.wwwwwww....wwwwwww↓ww..ww..www.ww↑xx...wwww?..........wwwwwwww\nww....@@wwwww...wwww....ww/wwwww↓....ww..w...ww↑....wwwoww.......*...wwwwwww\nww....@wwwww.....www....ws1..www↓@@w...@....www↑www.wowwwwww...t...wwwwwwwww\nwww..wwwww...t%...www..www.pww.w↓www...@.*.wwww↑w.*.wwwwwwwww....wwwwwwwwwww\nwwwwwwwwww....%%.wwwww.www...*....www..@....www↑w..←←←←←←←←←←←←←←←←←←←←←←←←←\nwwwwwwww.....w.%%w..ww..www....w*..ww..@.wwwwow↑wwww@wwwwwwwwwwwwwwwwwwwwwww\nwwwwwwwww..wwwww%%%x*w....ww..ww...wwww.wwwowww↑www..wwwwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwww.....ww..wwwwwwww..wwwwwwwwwwww↑www...wwwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwww...wwwwwwwwwwwww.→→→→→→→→→→→→→↑nwww...wwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwwwww..wwwwwwwwwwwwwwwwwwwwwwwwwww...wwwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwwwww.x?wwwwwwwwwwwwwwwwwwwwwwwwww...wwwwwwwwwwwwwwwwwwwwww\nwww..w.wwwwwwwwwwwwwwww%wwwwwwwwwwwwwwwnwwwwwwwww..@..wwwwwwwwwwwww...wwwwww\nww....@wwwwwwwwwwwwwwww..wwwwwwwwwwwwwwwwwwww.....*.wwww..wwwwwwwww....wwwww\nww.*..wwwwwww..wwwwww....wwwwwwww...wwwwwwwww...wwwwwww....?wwwwwwww....wwww\nwww...wwwwww...wwwwwww...wwwwwww..*..wwwwwwww.*.wwwwwww....x.wwwwowwn...wwww\nwwww.wwwwwww..wwowwwwww...wwwww......wwwwwww...wowwwwwww...x*.wwwwwww.....ww\nwwwwwwwwwwww..wwwwwwww....wwwww..t.....wnwww..wwwowwwwww...x..wwwwwwww....ww\nwwwwwwwwwwwww..wwwwww.....wwwwww.......!owww↑wwwwww.ww.....x..wwwwwoww...www\nwwwwwwwwwwwww.....ww....wwwwwwwww.w....??wwn↑←←←←←........wx.wwww.www...wwww\nwwwwwwwwwwwwww.........wwwwwwwwwwwww...w?www@..www........w...w...ww@.....ww\nwwwwwwwwwwwwwwww.....wwwwwwwwwwwowwwwwww?ww!..ww....ww..wwww...*...www...www\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww?????...@..www..wwwwww......ww..wwww\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww.....wwwww.wwwwwwwww..wwwww!wwww\nwwwwwwwwwwwwwwwwnwwwwwwwwwwwwwwwwwwwwwwwwnwwwwwwwwwwwwwwwwwwwwwwwwwwwww...ww\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww@@@ww\nww...wwwwwwwwwwwwwwwww.wwwwwwwwwwwwwwwwwwwww....w..wwwwwwwwwwwwwwwwwww..*.ww\nw...*.wwwwowwwwwwwwwnr...wwwwww..wwwwwwwwww.*.....*.w??...wwwwwwwwwwwww..www\nw.*...wwwwwww....nwwww..@wwwwwww...wwwwwww....w.*.%x.%x....wwwww.....ww..www\nw..w.→→→→→→→*....wwnwww.@wwwwowww....wwwww..wwwww.%x.%x.....www..*....wwnwww\nww.w→↑.*w.ww....wwnwww..@@wwwwwww.*..wwwwwwwwwwwww%x.wwwww..www.wwww..wwnwww\nwwww↑....@@www..wnwwn...@@wwwwww...*xwwwwwwwwowwwww.wwwwww....wwwwwww.w.wwww\nwwww↑..*.@←←←←←←←←!←←.w@@ww..www....xwwwwwwwwwwwwwwww..www.....!wwoww..@wwww\nwwow↑w...wwnw....www↑nw@@ww.....*.xxx...wwwwwwwwwwww...www.......wwww....www\nwwww↑wwwwwww.xxx.wnw↑wwwwwwwwww...xw...%%%ww...wwwwwww..www......wwww....www\nwwww↑wwowwwww...wwwn↑wwowwwwwww.w..wwww%xx.w....ww.@ww.wwwww.w...wwwww..wwww\nwwww↑wwwwwwww..wwwww↑wnwwwwwwwwww.wwwww%x.w..........wwwwwwwww...wwwwwwwwwww\nwwww↑wwwwnwww..→→→→→↑nwwwwwwwwwww.wwwwww..www..www...wwwwwwww...wwwwwwwwwnww\nwwww↑wwwwwww...wwwwwwwwwwwwwnwwwwwwnwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwnwwwwwwww\nwwww↑wwwwwww...wwnwwwwwwwwwwwwwwwwwnwwwwwwwwwwwwwwwwwwwnwwwwwwwwwwwwwwnwwwww\nwwww↑..wwwwww.x.wwwwww...wwww*.w...@.wwnwwwwww..wwwwwwwwwwwwwwwnwwwnwwwwnwww\nwwww...wwwwwww...wwww....wwww..*.t...wwwnwwww....w..wwwwwnwwnnwwwnwwwwwnwwww\nwww...wwwwowww....www.t..wwwww.....wwwnwwwwwww......wwwwnwnwwwnww↓↓↓↓wwwwwnw\nwww.....wwwwww....ww...wwwwwwwwwwwwwwwwwwwwwwww*...wnwwwwwwwwwww→→→→→↓wwnwww\nwwww....@↓←?←.....ww..wwwnwwwwwwwwwwwwwww→→→→→→→→→→→→→→→→→→→→→?→↑↓←←←↓←wwwww\nwww.*..ww?ww↑w....ww@@wwn→→→→→→→→→→→→→→→→↑n@@wwwwwwwwwwwwwwwww?→↑↓[]↑←←wwnww\nwwww..wwn↓ww?ww..wwwwwwww↑wwwwwwwwwwwwwwwww..%wwwwww@@wnwwnwwwn→↑↓{}←↓←wwwwn\nwwwww.wow→?→↑wwwwwww...ww!wwwnwwwwwwwwwwww.*x%...ww...wwwnwwwww→↑→→→↑↓←wnwwn\nwwwww↑wwwwowww@wwwww.....↑wwwwnww.w.wwwwww.xx%*.www....wwwwwwnww↑←←←←←wnwwww\nwwwww↑wwwwwwww@@@w....*.w↑wwwwww.....wwwwww%%%..www....wwwwnwwwww↑↑↑↑nwwwwnw\nwwwww↑wwwwwww@@.......www↑wwwwww.....wwwowwww..wwwww..wwwwwwnwwnw↑nwwwwwywww\nwwwww↑wwowwww...ww...wwow↑wwww......wwwwwwww..wwww...wwwnwnwwwwww↑wwnwwwnwww\nwwwww↑wwwwwwwwwwwwwwwwnww↑www.......wwwwwnwwwwwww.....wwwwwwwwwwn↑wwwwwwwwww\nwwwww↑wwwnwwwwwwwwwwwwwww↑www.......wnwwwwwwwwwww.....wwwwwwwwwww↑wwwwwwwwww\nwwwww↑wwwwwwnwww..wwww...↑ww..$....wwwwwwww......@@@@@.wwwwwwwwww↑wwwwwwwwww\nwwwww↑wwww..www.x.nnww...↑w......wwwwwwww...*..wwww.....wwwwwwwww↑www...wwww\nwwwww↑wnww..*.....wwn...w↑w....wwwww.www..*.wwwwnwwww.*.www..wwww↑ww...wwwww\nwwwww↑www.....*..www...ww↑www..www...www..wwwwowwnwww..www.....ww↑nw.t.wwwww\nnwwww↑www.t.ww..wwww...ww↑wwwwwww....wwww.wwwwwwwwww...wwwww.*...↑w.....wwww\nwwwww↑ww...*wwwwwwwww....↑wwwwwww..←←←←←←←←←←←←←←←←←..wwwww...*..↑.*...wwwww\nwwwww↑www....wwwwwww.....↑wwwwwwww.wwwwwwww......www...wnn@.....w↑ww.wwwwwww\nwwwnw↑wwwww..wwwwwwww....↑wwwwwwwwwww..www.x%%%*.wwww..wwww....ww↑wwwwwwwwww\nwwwww↑wwwwwwwwwwwwwwwwn.w↑wwww..w*...%x.ww.%w...wwoww..wwwwww...w↑wwwwwwwwww\nwwwww↑wwnwwwwwwwwowwwwwww↑wwow..*..*.%x..w..ww..wwwww..wwwwwwwwww↑wwwwwwwwww\nwwwww↑wwwwwwwwwwwwwwwwwww↑wwwww...w....wwwwwwwwwwww....wwnwwowwww↑wwwwwwwwww\nwwnww↑wwwwwwwwwwwwwwnwwww↑wwwwwwwwwwwwwwwwwwwowwww....wwwwnwwwwow↑wwwwwwwwww\nwwwww↑wwwwwwwwwwwwwwwwwww↑wwwwwwwwwwwwwwwwwwwwwwwwwwwwwnwwwwwwwww↑wwwwwwwwww\n\n\n(\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwww..ww.wwwwww\nwwwww.......w..wwwww\nwwww...........wwwww\nwww..*.www....wwwwww\nww....wwwwwwwwwww..w\nw..*wwwwowwwwwww...w\nw..p.wwwwwwwww.w.t.w\nw.*..wwwwwwwww.....w\nww..wwwwwwwwww....ww\nwww.wwwwwwwwwwww.www\nwwwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwwww\nwww...ww.....wwwwww\nwwww....w.....wwwww\nwwwww..wwww*.wwwwow\nwwwww.wwoww..wwwwww\nwww...wwwww..wwwoww\nw...*.wwww..←←←←←←←\nw.p..wwwwwwww.wwwww\nww..wwwwwwww..wwwww\nwwwwwwwwwww..@..www\nwwwwwwwwwwww...wwww\nwwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwww\nwwwwwww...ww\nwww.....*.ww\nwww.*.wwwwww\nwww.p.wwwwww\nww...wowwwww\nww..wwwowwww\nww↑wwwwww..w\nww↑←←←←←.@.w\nww...www...w\nw...ww....ww\nw........www\nwww....wwwww\nwwwwwwwwwwww\n\nwwwwwwwwwwwwwwww\nwwwwwwwwww...www\nwwwwwwwwwww...ww\nw...wwwwwww....w\nw.*.wwwwoww....w\nw..*.wwwwwww.@.w\nww..wwwwwwww...w\nw...wwwwwwoww..w\nww..wwww.www..ww\nww.p.w...ww...ww\nwww...*...www.ww\nwwwww......wwwww\nwwwwwww..wwwwwww\nwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwww\nwwwwwww.....wwwwww\nwwww.w....*..wwwww\nwwww....wwww.wwwww\nwww....wwwwwwwwwww\nwww....wwowww..www\nwww....wwww......w\nwww....wwww..@..ww\nwwww.*wwwww....www\nwwwwwwwwwww...wwww\nwww.....wwww..wwww\nwww...*.wwwwwwwwww\nww...p..wwwwwwwwww\nwwwww...wwwwwwwwww\nwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwww\nwwwwww..w....www\nwwwww.*.....*.ww\nwwww....*.w....w\nwwww..p.wwwww..w\nwwww.*.wwwwww.ww\nwwww...wwwwwwwww\nwwwww.wwwwwowwww\nw...wwwwwwwwwwww\nww...wwwwwwwwwww\nww.wwwwwww..wwww\nwwwww.www.@.wwww\nwwww.........www\nwwww...www.wwwww\nwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwww\nwwwww..wwwwww..wrw\nwww...wwwwwww...ww\nw...pwwwowww...wrw\nw..*.wwwwwww.@..ww\nw.*...wwwwww.....w\nww..*.www..ww..w.w\nwww..*.....www.www\nwwww...wwwwwwwwwww\nwwwwww.wwwwwwwwwww\nwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwww...ww\nwwwwwwwwowwww.*...w\nww....wwwwwww...*.w\nww....*←←←←←←←.w..w\nww.....ww.w*.↑←w.ww\nwww..wwww..p..↑wwww\nwwwwwwwww..*..↑wwww\nww....wwww...w↑woww\nww.@...wwwwwww↑wwww\nwww...wwwwwoww↑wwww\nwwwwwwwwwwwwww↑wwww\n\nwwwwwwwwwwwwwwwww\nwwwwwwwwwwww..www\nwww..wwwwwww...ww\nww...wwwwowww...w\nw.p.*wwwwww.*...w\nw.....→→→↓.....ww\nw.*..w↑ww↓ww....w\nww..ww↑ww↓www..ww\nwwwwww↑←←←wow.www\nwwww.wwwowwww↑www\nww...wwwwwwww↑www\nww.@..wwwwwww↑www\nwwww..wwwwoww↑www\nwwwwwwwwwwwww↑www\n\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwww..wwww\nwww...wwwwww..wwrow\nww....wwwww.....www\nww..@.wwwww.*.p..ww\nwww...wwww.....*.ww\nwww..wwwwwwww.*.www\nwwwwwwwwwwwwww..www\n←←←←←←←←←←←←←←←←←←←\nwwwwwwww....wwwwwww\nwwwwwww......wwwwww\nwwwwwww..w...wwwwww\nwwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwwww\nwwwww...ww.ww.wwwww\nwww........w...wwww\nwww...*.........www\nww..*.wwww.......ww\nw...w.wwowwww.*...w\nww..wwwwwwwwww..p.w\n←←←←←←←←←←←←←←....w\nwwwww.ww...www....←\nwwww.......wwww...w\nwww...w.@.wwoww...w\nwwww.www..wwwww..ww\nwwwwwwwwwwwwww...ww\nwwwwwwwwwwwwwwwwwww\n)\n\n(wwwwwwwwwwwwwwwwwww\nw...wwwwwwwwwwwwwww\nw.*..wwwwwwwwwwwwww\nw...wwwwowwwwwwwwww\nwp*.wwwwwwwwwwwwwww\nw.*.wwwoooooooooooo\nw..←←←←←←←←←←←←←←←←\nwwww.wwwwwwwwwwwwww\nwww..wwwwwwwwwwwwww\nww..@..wwwwwwwwwwww\nwww...wwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww)\n\n(wwwwwwwwwww\nw....ww..ww\nw...*.....w\nww..ww.p..w\nwwwwww...ww\nwwwowww.www\nwwwwwwwwwww\n\nwwwwwww\nww...ww\nww.p..w\nwww.*.w\nwow..ww\nww...ww\nwwwwwww)\n\n",["tick","tick","tick","tick","tick","tick","tick","tick",0,"tick","tick",1,"tick","tick","tick",1,"tick","tick","tick","tick",2,"tick","tick",2,"tick",3,"tick","tick",3,"tick","tick","tick",2,"tick",3,"tick",0,"tick","tick",0,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick","tick","tick","tick",3,"tick","tick",3,"tick","tick","tick","tick",0,"tick",0,"tick","tick","tick",3,"tick","tick","tick","tick","tick","tick","tick"],"background: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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background submergedpebble:1,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,addlandrd background:2,background removelandlu sand:3,background sand:4,background removelandld sand:5,addlandru background:6,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,background ship_left:7,0,2,3,5,6,0,0,0,0,\n0,0,0,2,3,5,6,0,0,0,0,0,0,0,0,0,0,3,4,background pebble sand:8,4,background removelandld removelandrd sand:9,0,0,background lily:10,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,1,0,0,background ship_sails:11,background ship_right2:12,3,4,4,4,5,0,0,0,0,0,0,0,3,4,8,\n5,6,0,0,0,0,0,0,0,0,0,4,4,4,addlandlu addlandru background:13,0,0,0,0,0,0,0,0,0,0,0,2,3,5,addlandrud background:14,background removelandlud sand:15,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,4,4,4,4,background removelandrd sand:16,0,0,0,0,0,0,0,background removelandru sand:17,4,4,4,9,0,0,0,0,\n0,0,0,0,0,17,8,4,9,background flowr4:18,background flowu4:19,19,19,19,19,19,19,19,19,addlandrd background flowu4:20,3,4,4,4,8,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,4,4,4,4,addlandlu background:21,0,0,0,0,0,0,0,addlandld addlandrd background:22,4,4,16,21,0,0,0,0,0,0,0,0,0,addlandld background:23,\n17,16,addlandlu background flowr4:24,20,3,5,6,0,0,0,0,0,0,3,4,4,4,4,4,4,9,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,0,0,17,4,4,background light_trigger sand target:25,background light_trigger removelandrd sand target:26,0,0,0,0,0,0,0,0,background removelandlu removelandru sand:27,26,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,3,4,4,\n5,0,0,0,0,0,0,17,16,addlandlud background:28,4,4,16,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,4,4,26,21,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,18,background pebble removelandru sand:29,4,8,4,0,10,0,0,0,\n0,0,0,0,17,4,21,0,10,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,17,16,21,0,0,0,15,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,22,4,4,16,0,0,0,0,0,0,0,0,0,23,background light_trigger removelandrud sand target:30,\n0,1,0,0,0,0,10,0,0,0,0,0,0,2,15,6,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,27,25,26,21,0,0,0,1,0,0,0,0,0,0,background flowd4:31,background flowd4 removetarget:32,31,18,0,0,0,\n0,0,1,0,0,2,3,4,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,3,4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,18,23,30,addlandlu background flowl4:33,0,0,0,0,0,0,0,0,0,10,0,background flowl4:34,0,0,background flowr4 removetarget:35,10,0,0,0,0,0,0,3,4,\n4,background sand treasure:36,4,4,6,0,0,0,0,0,0,0,0,0,0,0,2,4,4,4,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,34,1,0,0,0,0,0,0,0,0,0,0,background flowl4 removetarget:37,0,0,18,0,0,0,0,0,0,0,17,4,4,4,8,4,5,0,\n0,0,0,0,0,0,0,0,0,2,3,4,4,16,0,0,0,0,0,0,0,2,3,4,5,6,0,0,0,0,0,0,0,0,0,2,background pebble removelandlu sand:38,5,0,34,2,15,6,0,2,3,5,6,0,0,0,34,19,background flowu4 removetarget:39,19,0,0,0,0,0,0,1,23,8,4,21,23,17,16,0,0,0,0,0,0,0,\n0,0,27,4,4,36,4,13,0,0,0,0,0,0,0,3,4,4,4,4,5,6,0,0,0,0,0,0,0,3,4,4,6,34,3,background light_trigger sand target2:40,4,4,4,4,4,5,6,0,2,15,6,0,0,0,2,background light_trigger removelandlu sand target:41,5,0,0,0,0,4,4,6,0,0,0,0,0,0,0,0,0,0,0,0,23,4,4,background removetarget sand:42,\n42,5,0,0,0,0,0,0,0,17,16,21,23,17,4,5,0,0,0,0,0,0,0,4,4,4,5,34,4,40,4,4,4,4,4,40,4,4,4,4,5,6,0,background light_trigger removelandlu removelandru sand target:43,25,25,4,0,0,0,2,4,8,5,0,0,0,0,0,0,0,0,0,0,0,0,0,17,4,4,42,42,6,0,0,0,\n0,0,0,0,0,0,0,23,4,4,6,0,0,0,0,0,0,4,4,4,16,34,4,40,16,21,18,0,23,17,4,4,4,4,4,5,0,23,25,4,16,0,0,2,3,4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,23,17,4,4,42,42,5,6,0,0,0,0,0,0,10,\n0,0,4,4,5,0,0,1,0,0,0,17,16,21,0,34,17,16,21,0,18,0,0,23,17,4,4,4,4,16,0,0,background light_trigger removelandru sand target:44,4,21,0,0,3,40,4,16,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,background removelandrud sand:45,21,22,42,4,5,0,0,0,0,0,0,0,0,0,17,4,4,0,\n0,0,0,0,0,1,0,0,1,34,0,0,0,0,18,0,1,0,23,17,4,4,16,21,0,0,22,4,6,0,0,17,4,16,21,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,3,42,4,4,0,0,0,0,0,0,0,0,0,23,4,4,0,0,0,0,0,0,0,\n0,1,0,background flowl4 light_trigger target:46,0,1,0,0,18,0,0,0,0,0,0,0,0,0,0,0,3,4,5,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,40,4,16,0,0,0,0,0,0,0,0,0,2,4,4,0,0,0,0,0,0,0,1,0,0,34,0,0,\n1,0,18,0,0,0,0,0,0,0,0,0,0,2,4,4,4,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,15,6,2,3,5,6,0,23,29,16,21,0,0,0,0,0,0,0,0,2,3,4,16,0,0,0,0,0,1,0,0,0,1,34,19,19,19,19,19,0,0,0,\n0,2,3,4,background light_trigger removelandld sand target:47,0,3,4,4,4,16,0,0,0,0,addlandrd background submergedpebble:48,3,5,14,15,6,0,0,0,1,0,0,0,4,4,4,4,4,5,6,0,0,0,0,0,0,0,0,15,6,0,2,3,4,4,21,0,0,0,0,0,background r:49,0,0,2,3,9,1,0,0,0,1,0,0,2,3,4,4,4,26,0,\n4,4,4,16,21,0,0,0,2,3,4,4,4,4,5,0,0,0,0,0,0,0,17,4,4,4,4,4,4,4,5,6,0,3,5,6,2,4,5,14,3,4,4,16,0,0,0,0,0,27,4,5,14,3,4,13,0,0,0,1,0,0,0,3,4,36,16,21,0,0,17,4,8,21,0,1,\n0,3,4,4,4,4,4,4,4,addlandru background submergedpebble:50,0,0,0,0,0,0,23,4,4,4,16,21,23,17,4,5,0,17,40,42,4,4,4,4,4,4,16,21,0,0,0,0,0,23,4,4,4,4,4,25,47,0,10,0,0,0,0,4,4,4,21,0,0,0,23,4,16,0,10,0,0,4,4,16,21,23,\n4,4,4,9,0,0,0,0,0,0,0,17,16,21,0,0,0,23,4,16,0,0,background removetarget:51,23,17,4,4,4,4,4,21,0,0,0,0,0,0,0,17,25,25,25,25,25,26,0,0,0,0,0,0,17,4,16,0,0,1,0,0,45,21,0,0,0,0,17,16,21,0,0,17,4,16,21,0,0,\n0,0,0,0,0,0,0,0,7,0,0,0,45,21,0,0,0,0,0,0,23,17,4,16,0,0,0,0,0,0,0,0,0,0,23,44,26,21,0,0,0,0,0,0,0,0,0,0,0,1,18,19,background flowu4 light_trigger target:52,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,0,0,0,0,\n0,11,addlandrd background ship_right1 treasuretaken:53,3,5,6,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,18,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,3,4,4,5,\n6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,5,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,0,2,3,5,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,45,28,4,4,5,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,4,0,0,0,0,1,0,0,0,0,0,0,18,0,0,0,0,0,0,0,2,3,4,4,6,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,2,4,4,16,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,10,0,0,23,4,0,0,0,0,0,0,38,5,6,0,0,18,0,1,0,0,0,2,3,4,4,4,4,5,0,0,0,0,0,0,0,0,0,background u:54,0,0,0,0,0,0,27,4,16,21,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,4,6,0,0,0,0,0,17,4,5,0,0,18,0,0,1,0,0,3,4,4,background sand tree:55,4,4,16,0,0,0,0,3,5,6,0,0,0,0,0,0,0,0,0,23,4,13,0,0,0,0,0,0,0,0,2,3,5,6,0,0,0,0,0,0,0,0,15,6,0,0,\n0,2,4,4,9,0,0,0,0,22,8,4,0,0,18,0,0,0,0,2,4,4,4,4,4,21,0,0,0,0,0,17,4,5,0,0,31,31,31,31,31,31,31,background flowd4 lily playernormal:56,4,8,5,6,0,0,0,0,0,2,3,4,4,5,6,0,10,0,0,0,0,0,17,5,6,2,3,4,8,4,13,0,\n0,0,0,3,4,4,0,0,18,0,0,2,3,4,4,4,4,4,16,0,0,0,0,0,0,22,8,4,0,0,0,0,0,0,0,3,47,0,17,4,4,4,9,0,0,0,0,3,4,4,36,4,9,0,0,0,0,0,0,0,23,4,4,4,4,4,4,4,4,4,9,0,0,4,36,4,\n0,0,18,0,0,27,4,4,4,4,4,4,21,0,2,3,5,6,0,38,4,16,0,0,0,0,0,0,2,4,26,0,23,17,4,16,24,0,0,0,0,4,8,4,4,4,13,0,0,0,0,0,0,0,0,17,4,8,4,4,40,40,16,21,0,0,0,4,4,16,0,0,18,0,0,22,\n4,4,4,4,4,16,0,0,3,4,4,9,0,4,4,13,0,0,0,0,0,0,3,4,13,0,0,0,0,0,18,0,0,0,0,17,4,4,4,4,5,6,0,0,0,0,0,0,0,23,4,4,8,4,40,13,0,0,0,1,1,25,4,21,0,0,18,0,0,27,4,4,4,4,16,21,\n0,2,4,4,33,0,0,4,8,5,0,0,0,0,0,0,17,4,4,5,6,0,0,0,18,0,0,0,0,23,17,4,4,4,4,5,0,0,0,0,0,0,0,0,17,4,40,40,40,5,0,0,0,0,0,17,16,0,0,0,18,0,0,23,17,16,21,0,0,0,0,27,4,16,34,0,\n2,4,4,4,0,0,0,0,0,0,0,23,4,4,4,5,0,0,18,0,0,0,0,0,0,23,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,23,4,4,0,0,0,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,1,0,0,0,0,0,34,0,3,42,42,4,0,0,\n0,0,0,0,0,2,4,4,4,4,6,0,18,0,0,0,0,0,0,0,17,4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,4,4,6,0,0,0,0,0,0,1,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,17,40,40,16,0,0,0,0,0,2,3,4,\n25,25,25,25,9,0,18,0,0,1,0,0,0,0,0,background light_trigger target:57,51,0,0,0,0,0,0,0,0,0,0,0,0,0,17,42,42,background removelandld removetarget sand:58,6,0,0,1,0,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,23,17,4,21,0,0,0,0,0,27,4,4,4,4,4,16,21,0,\n18,0,0,0,0,0,0,0,1,10,51,51,51,51,0,0,0,0,0,0,0,0,0,0,23,42,40,40,5,0,0,0,1,0,0,0,18,0,0,0,0,10,0,0,0,0,2,3,5,6,34,0,0,23,45,0,0,0,0,0,0,0,0,22,4,8,4,21,0,0,18,0,0,0,0,0,\n0,0,0,0,0,0,0,51,0,1,0,0,0,0,0,0,0,0,0,background removelandru removetarget sand:59,40,4,16,0,0,0,0,0,0,18,19,0,0,0,0,0,0,1,0,0,3,4,4,9,34,0,0,0,0,0,0,0,0,0,0,0,0,3,4,4,4,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,\n0,51,0,0,0,0,2,3,5,0,0,0,0,23,45,21,0,0,0,0,0,0,0,18,1,2,3,5,6,0,0,0,0,2,4,8,21,0,34,2,3,4,5,0,0,0,0,2,3,5,14,4,16,28,45,0,10,0,18,0,0,0,0,0,0,0,0,0,1,0,57,51,0,0,0,2,\n3,4,16,0,0,0,0,0,2,15,0,0,0,0,0,0,0,18,41,4,8,40,58,0,0,0,0,3,4,16,0,0,34,3,40,42,16,0,0,0,0,3,4,4,4,16,21,0,0,0,0,0,18,0,0,0,0,0,2,3,5,19,19,41,5,addlandrud background removetarget:60,15,0,0,3,8,4,21,0,0,0,\n0,3,4,4,6,0,0,0,0,0,0,18,44,4,40,40,42,14,15,0,0,4,8,21,0,0,34,4,42,13,0,0,0,0,0,4,4,4,21,0,0,0,0,10,0,0,18,0,0,0,3,4,4,4,16,0,34,4,4,4,4,0,0,4,4,16,0,0,10,0,0,4,4,4,5,0,\n0,2,15,6,0,18,23,59,42,42,42,4,16,0,0,4,4,0,0,0,34,4,42,5,6,0,10,0,0,17,4,16,0,0,0,0,0,0,0,0,18,0,0,0,4,4,8,16,21,0,34,45,28,4,4,0,0,4,4,13,0,0,0,0,0,17,4,4,16,0,0,3,4,5,6,18,\n0,23,4,8,4,16,21,0,0,4,16,0,10,0,34,4,42,4,5,0,0,0,0,23,45,addlandlu background flowu4:61,19,19,19,19,19,19,19,19,19,0,0,0,4,4,16,21,0,0,34,0,2,4,4,0,0,17,4,5,0,0,0,0,0,23,17,4,21,0,0,17,4,4,background pebble removelandld sand:62,18,0,0,4,4,16,21,\n0,0,0,4,21,0,0,0,34,4,8,4,16,0,0,0,0,0,0,2,background light_trigger removelandlu sand target2:63,5,0,0,0,0,0,0,1,0,0,2,4,21,0,10,0,0,34,0,3,25,16,0,0,22,4,8,6,0,0,0,0,0,23,4,0,0,0,23,17,4,4,18,0,0,45,21,0,0,0,0,2,4,0,1,\n0,0,34,17,16,21,0,0,0,0,0,0,3,40,40,4,0,3,5,0,0,0,0,0,0,3,4,0,0,0,10,0,34,2,4,4,21,0,0,3,4,4,5,6,0,0,0,0,2,4,6,0,0,0,22,4,4,18,0,0,0,0,0,0,2,3,4,25,0,0,1,0,34,0,0,0,\n0,0,0,0,0,0,17,4,4,4,14,8,16,0,0,0,0,0,2,4,8,0,0,0,0,2,3,4,4,16,0,0,0,17,8,42,42,58,6,0,0,0,3,4,5,0,0,0,3,4,16,18,0,0,0,0,0,0,3,4,4,25,6,0,0,0,34,0,0,10,0,2,15,0,0,0,\n23,4,4,4,4,16,33,2,3,5,14,3,4,25,16,0,0,0,0,27,4,4,16,21,0,0,0,23,17,40,40,40,9,0,0,0,44,4,4,0,0,0,17,16,21,18,0,2,3,4,5,14,4,4,4,25,5,0,0,0,34,0,0,0,0,3,4,0,0,0,2,4,16,21,0,0,\n34,43,4,4,4,4,4,4,21,0,0,0,0,23,4,4,21,0,0,0,0,0,23,4,4,16,21,2,15,0,23,17,16,0,0,0,0,0,1,18,0,41,4,4,4,4,4,4,4,25,4,6,2,3,4,5,6,0,2,4,4,0,0,0,27,16,21,0,10,0,34,0,23,17,4,4,\n4,16,0,0,0,0,0,2,4,4,6,0,0,0,0,0,51,42,42,21,0,3,4,6,0,0,0,0,0,0,0,0,0,18,0,44,4,4,4,16,28,17,4,25,4,4,4,4,4,4,4,4,4,4,16,0,0,1,0,0,0,0,0,0,34,0,0,23,45,21,0,0,0,0,0,0,\n0,3,4,4,4,4,9,0,0,0,addlandrd background removetarget:64,40,40,0,0,17,4,4,9,0,0,0,0,0,0,0,0,18,0,0,23,17,16,21,0,0,23,17,4,8,4,16,28,17,4,4,4,16,21,0,0,43,58,6,0,10,0,0,34,0,0,0,0,0,0,0,2,3,5,6,2,4,4,4,4,16,\n21,0,0,0,3,4,4,0,0,0,23,45,21,0,0,0,1,0,0,0,0,18,0,1,0,0,0,0,0,0,0,23,17,16,21,0,0,0,0,0,0,0,0,1,0,23,42,5,0,0,0,0,34,0,0,0,0,0,0,0,3,4,4,4,4,4,4,4,21,0,0,0,0,0,4,4,\n4,0,0,0,0,0,0,0,0,0,0,0,0,1,0,18,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,42,42,addlandru background removetarget:65,0,0,0,34,0,0,0,0,0,0,0,17,4,4,4,4,4,4,16,0,0,0,0,0,0,17,4,4,6,0,0,0,0,\n0,0,0,0,0,0,1,0,0,18,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,17,25,4,5,0,0,34,0,0,0,0,0,0,0,23,17,4,4,4,4,13,0,0,0,0,0,0,0,23,17,4,4,4,4,5,6,0,0,0,0,0,0,\n0,1,0,18,0,1,0,0,0,0,1,0,0,0,0,2,15,0,2,background light_trigger removelandlud sand target:66,6,0,0,0,1,0,0,0,23,17,4,4,6,0,34,0,0,0,0,0,0,0,0,addlandld background removetarget:67,40,40,40,40,40,5,6,0,0,0,0,0,0,23,17,4,4,4,4,5,6,0,0,0,0,0,0,0,0,18,0,0,\n0,0,1,0,0,0,0,0,0,3,4,14,3,4,5,0,0,0,0,0,0,0,0,23,4,4,5,6,34,0,0,0,0,0,0,0,0,0,17,8,4,4,4,4,5,0,0,0,0,0,0,0,0,23,4,4,4,4,9,0,0,0,0,0,1,0,0,18,0,0,0,0,0,1,0,0,\n0,0,0,17,4,4,4,4,4,6,0,10,0,0,0,0,0,0,4,4,4,5,34,0,0,0,0,0,0,0,0,0,23,17,4,16,28,17,4,6,0,0,0,0,0,0,0,0,17,4,4,4,13,2,15,0,0,0,1,0,0,18,0,0,0,1,0,0,0,0,0,0,0,23,4,8,\n4,4,4,5,0,0,0,0,0,0,0,2,4,4,4,4,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,22,4,5,0,0,0,0,0,0,0,0,23,17,4,4,4,4,4,0,0,0,0,1,0,35,51,1,0,0,0,0,0,0,0,0,0,0,17,4,8,4,4,4,0,0,\n0,0,0,0,0,3,4,4,36,4,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,8,4,6,0,0,0,0,2,3,9,0,addlandld background light_trigger target:68,4,4,4,4,16,0,0,1,0,0,0,18,18,18,18,0,0,1,0,0,0,0,0,0,23,4,4,16,28,45,0,0,10,0,0,0,2,4,\n4,4,4,16,34,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,4,4,5,0,0,0,0,3,4,21,0,0,17,4,4,16,21,0,0,0,0,0,18,19,19,19,19,19,0,0,0,1,0,0,0,0,0,17,16,21,0,0,0,0,0,0,0,0,27,4,4,8,4,21,34,0,\n0,0,0,0,0,0,0,0,10,0,0,0,27,4,4,4,16,0,0,0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,1,31,18,31,31,31,18,34,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,0,0,0,23,4,4,16,0,34,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,23,17,4,21,0,0,0,0,4,4,0,0,10,0,0,0,0,0,0,0,0,0,31,18,34,background flowr4 speedup:69,background flowu4 speedup:70,18,34,19,1,0,0,0,0,0,0,1,2,15,0,0,0,0,0,0,0,0,0,0,0,17,4,21,0,34,0,0,0,0,0,0,3,5,6,0,0,0,10,\n0,0,23,45,0,0,0,0,0,4,4,6,0,0,0,0,0,0,0,1,0,1,0,31,18,34,background flowd4 speedup:71,background flowl4 speedup:72,18,34,19,0,0,0,0,0,0,0,2,3,8,6,0,0,0,0,0,0,0,0,0,0,23,45,0,0,34,0,0,0,0,0,0,4,4,5,50,0,0,0,2,66,0,0,0,0,\n0,0,0,17,4,5,6,0,0,0,0,0,0,0,0,0,0,31,18,34,19,34,19,34,19,0,1,0,0,0,2,3,4,4,4,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,17,4,4,4,5,6,2,3,4,6,0,0,0,0,0,0,23,17,4,\n4,4,4,5,6,0,0,0,0,0,0,0,31,31,34,31,31,34,1,0,0,0,0,0,3,4,36,4,4,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,23,17,4,4,4,4,4,4,4,4,5,0,0,2,15,6,0,0,0,22,4,4,4,5,0,\n0,0,1,0,0,0,0,34,34,34,34,0,0,0,0,0,0,0,4,4,4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,23,17,4,4,4,4,4,4,4,16,57,3,25,4,4,5,0,0,27,25,4,4,16,0,0,0,0,0,1,0,\n0,0,0,0,0,1,0,0,0,0,0,0,45,21,23,45,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,0,0,23,4,4,16,28,4,16,21,0,4,25,8,4,16,1,1,0,23,17,16,21,0,0,0,0,1,0,0,1,0,0,0,1,0,\n0,background death:73,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,0,0,0,17,16,21,0,45,21,0,0,17,25,16,21,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,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,34,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,1,0,0,0,0,0,0,1,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,34,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,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",0,"1627778728427.8804"] + ["title Skipping Stones to Lonely Homes\nauthor Alan Hazelden\nhomepage www.draknek.org\n\n(verbose_logging)\n\nrun_rules_on_level_start\n\nrealtime_interval 0.1\nagain_interval 0.1\n(key_repeat_interval 0.2)\n\nflickscreen 19x14\n\nnoaction\n\n(youtube UuKbLbC1zw0)\n\n========\nOBJECTS\n========\n\nBackground\nLightBlue Blue\n11111\n11101\n11111\n10111\n11111\n\nSand .\n#dfcc4f yellow\n11111\n01111\n11101\n11111\n10111\n\nTree\nBrown Green\n..11.\n111..\n1.011\n..0.1\n..0..\n\n(Hole\n#c5b446 #dfcc4f\n11111\n01111\n11101\n11111\n10111\n\nCrate\nBrown Orange\n00000\n01110\n01110\n01110\n00000)\n\nLily\nGreen LightGreen\n.111.\n10001\n10001\n10001\n.111.\n\n\nRipple1\nBlue LightBlue\n00000\n01110\n01010\n01110\n00000\n\nRipple2\nBlue LightBlue\n01110\n10001\n10001\n10001\n01110\n\nRippleH\nBlue LightBlue\n00000\n00000\n01110\n00000\n00000\n\nRippleH2\nBlue LightBlue\n00000\n01110\n01010\n01110\n00000\n\nRippleH3\ntransparent\n\nRippleH4\ntransparent\n\nRippleH5\ntransparent\n\nRippleV\nBlue LightBlue\n00000\n00100\n00100\n00100\n00000\n\nRippleV2\nBlue LightBlue\n00000\n01110\n01010\n01110\n00000\n\nRippleV3\ntransparent\n\nRippleV4\ntransparent\n\nRippleV5\ntransparent\n\n(WaterNew\nwhite LightBlue\n11111\n01111\n11101\n11111\n10111)\n\n\nTreasure\n#d0be4a Yellow Yellow\n.111.\n10201\n12021\n10201\n.111.\n\nTreasure2\n#dfcc4f yellow\n1111.\n01111\n11101\n11111\n10111\n\nTreasure3\n#dfcc4f yellow #d0be4a orange white\n1111.\n11111\n12211\n10011\n11111\n\nTreasure4\n#dfcc4f yellow #d0be4a orange white\n1111.\n12221\n10001\n10001\n11111\n\nTreasure5\n#dfcc4f yellow #d0be4a orange white\n1111.\n22222\n00000\n00000\n11111\n\nTreasure6\n#dfcc4f yellow #d0be4a orange white\n1222.\n20002\n00300\n00000\n10001\n\nTreasure7\n#dfcc4f yellow #d0be4a orange white\n1222.\n20002\n03430\n03330\n10001\n\nTreasureTaken\n#dfcc4f yellow #d0be4a\n1222.\n20002\n00000\n00000\n10001\n\n\n\nTarget\ntransparent\n\nTarget2\ntransparent\n\nRemoveTarget\ntransparent\n\n(\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTarget2\nRed\n.....\n.000.\n.0.0.\n.000.\n.....\n\nRemoveTarget\nRed\n.....\n.....\n..0..\n.....\n.....\n)\n\nPlayerNormal\nDarkRed #493c2b #000000\n..0..\n.111.\n01110\n02220\n.2.2.\n\nPlayerInWater\nDarkRed #493c2b #000000\n..0..\n.111.\n01110\n02220\n.....\n\nPebble\nGrey DarkGrey LightGrey\n.....\n..00.\n.0001\n.0111\n...1.\n\nSubmergedPebble\nDarkGrey #263546 Blue LightBlue\n22222\n22232\n20022\n00012\n01112\n\nU\ntransparent\n\nD\ntransparent\n\nL\ntransparent\n\nR\ntransparent\n\n\nAddLandLUD\nYellow\n0....\n.....\n.....\n.....\n0....\n\nAddLandLU\nYellow\n0....\n.....\n.....\n.....\n.....\n\nAddLandLD\nYellow\n.....\n.....\n.....\n.....\n0....\n\nAddLandRUD\nYellow\n....0\n.....\n.....\n.....\n....0\n\nAddLandRU\nYellow\n....0\n.....\n.....\n.....\n.....\n\nAddLandRD\nYellow\n.....\n.....\n.....\n.....\n....0\n\nRemoveLandLUD\nBlue\n0....\n.....\n.....\n.....\n0....\n\nRemoveLandLU\nBlue\n0....\n.....\n.....\n.....\n.....\n\nRemoveLandLD\nBlue\n.....\n.....\n.....\n.....\n0....\n\nRemoveLandRUD\nBlue\n....0\n.....\n.....\n.....\n....0\n\nRemoveLandRU\nBlue\n....0\n.....\n.....\n.....\n.....\n\nRemoveLandRD\nBlue\n.....\n.....\n.....\n.....\n....0\n\n\nFlowL1 ←\n#3166f7 #cbe4ef\n00100\n00000\n00001\n00000\n01000\n\nFlowL2\n#3166f7 #cbe4ef\n01000\n00000\n00010\n00000\n10000\n\nFlowL3\n#3166f7 #cbe4ef\n10000\n00000\n00100\n00000\n00001\n\nFlowL4\n#3166f7 #cbe4ef\n00001\n00000\n01000\n00000\n00010\n\nFlowL5\n#3166f7 #cbe4ef\n00010\n00000\n10000\n00000\n00100\n\nFlowR1 →\n#3166f7 #cbe4ef\n10000\n00000\n00100\n00000\n00001\n\nFlowR2\n#3166f7 #cbe4ef\n01000\n00000\n00010\n00000\n10000\n\nFlowR3\n#3166f7 #cbe4ef\n00100\n00000\n00001\n00000\n01000\n\nFlowR4\n#3166f7 #cbe4ef\n00010\n00000\n10000\n00000\n00100\n\nFlowR5\n#3166f7 #cbe4ef\n00001\n00000\n01000\n00000\n00010\n\nFlowU1 ↑\n#3166f7 #cbe4ef\n10000\n00001\n00000\n00100\n00000\n\nFlowU2\n#3166f7 #cbe4ef\n00001\n00000\n00100\n00000\n10000\n\nFlowU3\n#3166f7 #cbe4ef\n00000\n00100\n00000\n10000\n00001\n\nFlowU4\n#3166f7 #cbe4ef\n00100\n00000\n10000\n00001\n00000\n\nFlowU5\n#3166f7 #cbe4ef\n00000\n10000\n00001\n00000\n00100\n\nFlowD1 ↓\n#3166f7 #cbe4ef\n10000\n00001\n00000\n00100\n00000\n\nFlowD2\n#3166f7 #cbe4ef\n00000\n10000\n00001\n00000\n00100\n\nFlowD3\n#3166f7 #cbe4ef\n00100\n00000\n10000\n00001\n00000\n\nFlowD4\n#3166f7 #cbe4ef\n00000\n00100\n00000\n10000\n00001\n\nFlowD5\n#3166f7 #cbe4ef\n00001\n00000\n00100\n00000\n10000\n\nStopFlow\ntransparent\n\nShip_Left\n#eb8931 #732930 #2f2416 #ffffff\n..030\n.0331\n01121\n.0111\n..000\n\nShip_Right1\n#eb8931 #732930 #2f2416 #ffffff\n3330.\n12110\n12110\n11110\n0000.\n\nShip_Right2\n#eb8931 #732930 #2f2416 #ffffff\n3330.\n12110\n12110\n11110\n0000.\n\nShip_Sails\n#ffffff\n.....\n.....\n.....\n.00..\n00...\n\nDarkness\nblack\n\nDeath\nLightBlue Blue\n11111\n11101\n11111\n10111\n11111\n\nSpeedup\ntransparent\n\nLight_trigger\ntransparent\n\nLight\nwhite\n\nMyMistake\ntransparent\n\n=======\nLEGEND\n=======\n\nw = Background\n\nDirection = U or D or L or R\n\nPlayer = PlayerNormal or PlayerInWater\n\nRipple = Ripple1 or Ripple2 or RippleH or RippleV or RippleH2 or RippleV2 or RippleH3 or RippleV3 or RippleH4 or RippleV4 or RippleH5 or RippleV5\n\nFloor = Lily or Sand or SubmergedPebble or Ship_Left or Ship_Right1 or Ship_Right2\n\nFlowL = FlowL1 or FlowL2 or FlowL3 or FlowL4 or FlowL5\nFlowR = FlowR1 or FlowR2 or FlowR3 or FlowR4 or FlowR5\nFlowU = FlowU1 or FlowU2 or FlowU3 or FlowU4 or FlowU5\nFlowD = FlowD1 or FlowD2 or FlowD3 or FlowD4 or FlowD5\n\nFlow = FlowL or FlowR or FlowU or FlowD\n\nFlow5 = FlowL5 or FlowR5 or FlowU5 or FlowD5\n\nP = PlayerNormal and Sand\n* = Pebble and Sand\nO = Lily\n@ = Target and Sand and Light_trigger\nx = Target2 and Sand and Light_trigger\n% = RemoveTarget and Sand\n! = Target and Light_trigger\n? = RemoveTarget\nn = SubmergedPebble\nT = Treasure and Sand\nS = Ship_Left\n1 = Ship_Right1 and TreasureTaken\n2 = Ship_Right2\n/ = Ship_Sails\n$ = Tree and Sand\n[ = FlowR1 and Speedup\n] = FlowD1 and Speedup\n{ = FlowU1 and Speedup\n} = FlowL1 and Speedup\nY = Death\n\nAddLandL = AddLandLUD or AddLandLU or AddLandLD\nAddLandR = AddLandRUD or AddLandRU or AddLandRD\n\nRemoveLandL = RemoveLandLUD or RemoveLandLU or RemoveLandLD\nRemoveLandR = RemoveLandRUD or RemoveLandRU or RemoveLandRD\n\nShip = Ship_Left or Ship_Right1 or Ship_Right2\n\n\n=======\nSOUNDS\n=======\n\nsfx1 60997509 ( 13158309) (bounce pebble)\nsfx2 53480307 (push pebble)\nsfx3 45570309 (rock submerging)\nsfx4 73166102 (rock landing on ground)\nsfx5 56148307 (player move)\nsfx6 14433907 (player can't move)\nsfx7 58358104 (rock hits rock)\nsfx8 97863107 (dig 1)\nsfx9 75661907 (dig 2)\nsfx0 23172308 (whirlpool death)\n\n(63191902)\n\nEndLevel 32481708\n\nUndo 8098307\nRestart 7235102\n\n(Treasure3 Create 97863107\nTreasure6 Create 75661907)\n\n(Treasure2 Create 55366107)\n(Treasure3 Create 47174507)\n(Treasure4 Create 71981107)\n(Treasure5 Create 40321302)\n(Treasure6 Create 33433507)\n(Treasure7 Create 97863107)\n\nTreasureTaken Create 2479500\nLight Create 71916703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSand, FlowL, FlowR, FlowU, FlowD\nSubmergedPebble, StopFlow\nAddLandL, RemoveLandL\nAddLandR, RemoveLandR\nRipple, Tree\nLily\nTarget, Target2, RemoveTarget, Treasure, Treasure2, Treasure3, Treasure4, Treasure5, Treasure6, Treasure7, TreasureTaken\nPlayer, Pebble\nDirection\nShip_Left, Ship_Right1, Ship_Right2, Ship_Sails, Light_trigger\nMyMistake\nSpeedup, Death, Darkness, Light\n\n\n======\nRULES\n======\n\n(oops)\n\n[ MyMistake ] -> [ MyMistake Death ]\n\ndown [ MyMistake ] [ no Sand | . no Target|.|.|.|.|.|.|.|. no Target|.|.|no Sand|.|.|.|no Sand|no Sand|no Sand|.|.|no Sand ] -> [] [no Sand | . no Target|.|.|.|.|.|.|.|. no Target|.|.|no Sand|.|.|.|no Sand|no Sand|no Sand|.|.|no Sand] message Sorry but I screwed up and this puzzle might not be possible. Please start over? My fault not yours :( :( :(\n\n(Island border)\n\nleft [ no Sand no AddLandL | Sand ] -> [ no Sand AddLandLUD | Sand ]\nright [ no Sand no AddLandR | Sand ] -> [ no Sand AddLandRUD | Sand ]\n\nup [ AddLandLUD | no Sand ] -> [ AddLandLD | no Sand ]\nup [ AddLandRUD | no Sand ] -> [ AddLandRD | no Sand ]\n\ndown [ AddLandLUD | no Sand ] -> [ AddLandLU | no Sand ]\ndown [ AddLandRUD | no Sand ] -> [ AddLandRU | no Sand ]\n\ndown [ AddLandLD | no Sand ] -> [ | no Sand ]\ndown [ AddLandRD | no Sand ] -> [ | no Sand ]\n\nleft [ Sand no RemoveLandL | no Sand ] -> [ Sand RemoveLandLUD | no Sand ]\nright [ Sand no RemoveLandR | no Sand ] -> [ Sand RemoveLandRUD | no Sand ]\n\nup [ RemoveLandLUD | Sand ] -> [ RemoveLandLD | Sand ]\nup [ RemoveLandRUD | Sand ] -> [ RemoveLandRD | Sand ]\n\ndown [ RemoveLandLUD | Sand ] -> [ RemoveLandLU | Sand ]\ndown [ RemoveLandRUD | Sand ] -> [ RemoveLandRU | Sand ]\n\ndown [ RemoveLandLD | Sand ] -> [ | Sand ]\ndown [ RemoveLandRD | Sand ] -> [ | Sand ]\n\nright [ RemoveLandRU | AddLandLU ] -> [ RemoveLandRU | ]\nright [ RemoveLandRD | AddLandLD ] -> [ RemoveLandRD | ]\n\nright [ RemoveLandRUD | AddLandLU ] -> [ RemoveLandRUD | ]\nright [ RemoveLandRUD | AddLandLD ] -> [ RemoveLandRUD | ]\n\nleft [ RemoveLandLU | AddLandRU ] -> [ RemoveLandLU | ]\nleft [ RemoveLandLD | AddLandRD ] -> [ RemoveLandLD | ]\n\nleft [ RemoveLandLUD | AddLandRU ] -> [ RemoveLandLUD | ]\nleft [ RemoveLandLUD | AddLandRD ] -> [ RemoveLandLUD | ]\n\n(water redirection)\n\nleft [ stationary FlowL5 | no Flow no Sand no SubmergedPebble ] -> [ FlowL5 | action FlowL5 ]\nright [ stationary FlowR5 | no Flow no Sand no SubmergedPebble ] -> [ FlowR5 | action FlowR5 ]\nup [ stationary FlowU5 | no Flow no Sand no SubmergedPebble ] -> [ FlowU5 | action FlowU5 ]\ndown [ stationary FlowD5 | no Flow no Sand no SubmergedPebble ] -> [ FlowD5 | action FlowD5 ]\n\n[ action Flow ] -> [ Flow ]\n\nleft [ FlowL | Flow SubmergedPebble no Ripple ] -> [ action FlowL | Flow action SubmergedPebble ]\nright [ FlowR | Flow SubmergedPebble no Ripple ] -> [ action FlowR | Flow action SubmergedPebble ]\nup [ FlowU | Flow SubmergedPebble no Ripple ] -> [ action FlowU | Flow action SubmergedPebble ]\ndown [ FlowD | Flow SubmergedPebble no Ripple ] -> [ action FlowD | Flow action SubmergedPebble ]\n\n[ Flow5 StopFlow ] -> [ Flow5 action StopFlow ]\n\nleft [ action StopFlow FlowL | Flow ] -> [ | Flow StopFlow ]\nright [ action StopFlow FlowR | Flow ] -> [ | Flow StopFlow ]\nup [ action StopFlow FlowU | Flow ] -> [ | Flow StopFlow ]\ndown [ action StopFlow FlowD | Flow ] -> [ | Flow StopFlow ]\n\n[ action StopFlow Flow ] -> []\n\n[ StopFlow RemoveTarget Flow ] -> [ RemoveTarget ]\n\nleft [ action SubmergedPebble FlowL | Flow ] -> [ action SubmergedPebble FlowL | Flow StopFlow ]\nright [ action SubmergedPebble FlowR | Flow ] -> [ action SubmergedPebble FlowR | Flow StopFlow ]\nup [ action SubmergedPebble FlowU | Flow ] -> [ action SubmergedPebble FlowU | Flow StopFlow ]\ndown [ action SubmergedPebble FlowD | Flow ] -> [ action SubmergedPebble FlowD | Flow StopFlow ]\n\ndown [ FlowD action SubmergedPebble ] [ action FlowL | no Floor ] -> [ FlowD action SubmergedPebble ] [ FlowD1 | FlowD ]\nup [ Flow action SubmergedPebble ] [ action FlowL | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowU1 | Flow ]\ndown [ Flow action SubmergedPebble ] [ action FlowL | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowD1 | Flow ]\n\nup [ FlowU action SubmergedPebble ] [ action FlowR | no Floor ] -> [ FlowU action SubmergedPebble ] [ FlowU1 | FlowU ]\ndown [ Flow action SubmergedPebble ] [ action FlowR | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowD1 | Flow ]\nup [ Flow action SubmergedPebble ] [ action FlowR | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowU1 | Flow ]\n\nright [ FlowR action SubmergedPebble ] [ action FlowD | no Floor ] -> [ FlowR action SubmergedPebble ] [ FlowR1 | FlowR ]\nleft [ Flow action SubmergedPebble ] [ action FlowD | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowL1 | Flow ]\nright [ Flow action SubmergedPebble ] [ action FlowD | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowR1 | Flow ]\n\nleft [ FlowL action SubmergedPebble ] [ action FlowU | no Floor ] -> [ FlowL action SubmergedPebble ] [ FlowL1 | FlowL ]\nright [ Flow action SubmergedPebble ] [ action FlowU | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowR1 | Flow ]\nleft [ Flow action SubmergedPebble ] [ action FlowU | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowL1 | Flow ]\n\n[ action SubmergedPebble Flow ] -> [ SubmergedPebble ]\n\n(Currents anim)\n\n[ stationary Player ] [ stationary FlowL5 ] -> [Player] [ action FlowL1 ]\n[ stationary Player ] [ stationary FlowL4 ] -> [Player] [ action FlowL5 ]\n[ stationary Player ] [ stationary FlowL3 ] -> [Player] [ action FlowL4 ]\n[ stationary Player ] [ stationary FlowL2 ] -> [Player] [ action FlowL3 ]\n[ stationary Player ] [ stationary FlowL1 ] -> [Player] [ action FlowL2 ]\n\n[ stationary Player ] [ stationary FlowR5 ] -> [Player] [ action FlowR1 ]\n[ stationary Player ] [ stationary FlowR4 ] -> [Player] [ action FlowR5 ]\n[ stationary Player ] [ stationary FlowR3 ] -> [Player] [ action FlowR4 ]\n[ stationary Player ] [ stationary FlowR2 ] -> [Player] [ action FlowR3 ]\n[ stationary Player ] [ stationary FlowR1 ] -> [Player] [ action FlowR2 ]\n\n[ stationary Player ] [ stationary FlowU5 ] -> [Player] [ action FlowU1 ]\n[ stationary Player ] [ stationary FlowU4 ] -> [Player] [ action FlowU5 ]\n[ stationary Player ] [ stationary FlowU3 ] -> [Player] [ action FlowU4 ]\n[ stationary Player ] [ stationary FlowU2 ] -> [Player] [ action FlowU3 ]\n[ stationary Player ] [ stationary FlowU1 ] -> [Player] [ action FlowU2 ]\n\n[ stationary Player ] [ stationary FlowD5 ] -> [Player] [ action FlowD1 ]\n[ stationary Player ] [ stationary FlowD4 ] -> [Player] [ action FlowD5 ]\n[ stationary Player ] [ stationary FlowD3 ] -> [Player] [ action FlowD4 ]\n[ stationary Player ] [ stationary FlowD2 ] -> [Player] [ action FlowD3 ]\n[ stationary Player ] [ stationary FlowD1 ] -> [Player] [ action FlowD2 ]\n\n[ stationary Player Speedup action FlowL4 ] -> [ Player Speedup stationary FlowL5 ]\n[ stationary Player Speedup action FlowL3 ] -> [ Player Speedup stationary FlowL4 ]\n[ stationary Player Speedup action FlowL2 ] -> [ Player Speedup stationary FlowL3 ]\n[ stationary Player Speedup action FlowL1 ] -> [ Player Speedup stationary FlowL2 ]\n\n[ stationary Player Speedup action FlowR4 ] -> [ Player Speedup stationary FlowR5 ]\n[ stationary Player Speedup action FlowR3 ] -> [ Player Speedup stationary FlowR4 ]\n[ stationary Player Speedup action FlowR2 ] -> [ Player Speedup stationary FlowR3 ]\n[ stationary Player Speedup action FlowR1 ] -> [ Player Speedup stationary FlowR2 ]\n\n[ stationary Player Speedup action FlowU4 ] -> [ Player Speedup stationary FlowU5 ]\n[ stationary Player Speedup action FlowU3 ] -> [ Player Speedup stationary FlowU4 ]\n[ stationary Player Speedup action FlowU2 ] -> [ Player Speedup stationary FlowU3 ]\n[ stationary Player Speedup action FlowU1 ] -> [ Player Speedup stationary FlowU2 ]\n\n[ stationary Player Speedup action FlowD4 ] -> [ Player Speedup stationary FlowD5 ]\n[ stationary Player Speedup action FlowD3 ] -> [ Player Speedup stationary FlowD4 ]\n[ stationary Player Speedup action FlowD2 ] -> [ Player Speedup stationary FlowD3 ]\n[ stationary Player Speedup action FlowD1 ] -> [ Player Speedup stationary FlowD2 ]\n\n[ stationary Player Speedup FlowD5 ] [ stationary Death ] -> [ Player Speedup FlowD5 ] [ right Death ]\n\n[ > Death | ] -> [ | Death ]\n\n[ moving Death ] [ Player ] -> [ Death Player ] [ no Lily ] sfx0\n\n[ Lily no Player Speedup FlowD5 ] -> [ Speedup FlowD5 no Pebble ]\n\n(Gameplay)\n\n[ stationary Player ] [ FlowL5 Lily ] -> [Player] [ FlowL5 left Lily ]\n[ stationary Player ] [ FlowR5 Lily ] -> [Player] [ FlowR5 right Lily ]\n[ stationary Player ] [ FlowU5 Lily ] -> [Player] [ FlowU5 up Lily ]\n[ stationary Player ] [ FlowD5 Lily ] -> [Player] [ FlowD5 down Lily ]\n\n[ Ripple1 | moving Lily ] -> [ Ripple1 | Lily ] (makes sure that we don't miss any when skimming past a current)\n\n[ Ripple2 no SubmergedPebble | Lily | no Floor ] -> [ Ripple2 | > Lily | ]\nhorizontal [ RippleH4 | stationary Lily no Flow ] -> [ RippleH4 | > Lily ]\nvertical [ RippleV4 | stationary Lily no Flow ] -> [ RippleV4 | > Lily ]\n\n[ Ripple1 | moving Lily | no Floor ] -> [ Ripple1 | Lily | ] (makes sure that we don't miss any when skimming past an already moving lily)\n\n([ > Lily | stationary Lily ] -> [ > Lily | > Lily ])\n\n[ stationary Player ] [ RippleH4 ] -> [Player] []\n[ stationary Player ] [ RippleV4 ] -> [Player] []\n[ stationary Player ] [ RippleH3 ] -> [Player] [ RippleH4 ]\n[ stationary Player ] [ RippleV3 ] -> [Player] [ RippleV4 ]\n[ stationary Player ] [ RippleH2 ] -> [Player] [ RippleH3 ]\n[ stationary Player ] [ RippleV2 ] -> [Player] [ RippleV3 ]\n[ stationary Player ] [ RippleH ] -> [Player] [ RippleH2 ]\n[ stationary Player ] [ RippleV ] -> [Player] [ RippleV2 ]\n\n(horizontal [ Lily | RippleH | no Ripple2 ] -> [ Lily | | ]\nvertical [ Lily | RippleV | no Ripple2 ] -> [ Lily | | ])\n\n[ stationary Player ] [ Ripple2 ] -> [Player] []\n[ stationary Player ] [ Ripple1 ] -> [Player] [ Ripple2 ]\n\nhorizontal [ > Lily Pebble | no Floor no Flow ] -> [ RippleH | Lily Pebble ]\nhorizontal [ > Lily Player | no Floor no Flow ] -> [ RippleH | Lily Player ]\nhorizontal [ > Lily | no Floor no Flow ] -> [ RippleH | Lily ]\nvertical [ > Lily Pebble | no Floor no Flow ] -> [ RippleV | Lily Pebble ]\nvertical [ > Lily Player | no Floor no Flow ] -> [ RippleV | Lily Player ]\nvertical [ > Lily | no Floor no Flow ] -> [ RippleV | Lily ]\n\n[ > Lily Pebble | no Floor no Pebble ] -> [ | Lily Pebble ]\n+ [ > Lily Player | no Floor no Pebble ] -> [ | Lily Player ]\n+ [ > Lily no Pebble no Player | no Floor ] -> [ | Lily ]\n\n[ > Lily Pebble | no Floor Pebble ] -> [ Lily Pebble | Pebble ]\n[ > Lily Player | no Floor Pebble ] -> [ Lily Player | Pebble ]\n\n[ > Lily | no Floor ] -> [ | Lily ]\n\n[ > Lily | Floor ] -> [ Lily | Floor ]\n\n[ stationary Player ] [ U Pebble ] -> [Player] [ U up Pebble ]\n[ stationary Player ] [ D Pebble ] -> [Player] [ D down Pebble ]\n[ stationary Player ] [ L Pebble ] -> [Player] [ L left Pebble ]\n[ stationary Player ] [ R Pebble ] -> [Player] [ R right Pebble ]\n\n[ Pebble Direction Floor ] -> [ stationary Pebble Floor ] sfx4 (pebble moves onto moving lily)\n\n[ > Player | no Floor ] -> [ Player | ] (sfx6)\n\n[ stationary Pebble no Floor no Direction ] -> [ SubmergedPebble Ripple1 ] sfx3\n\n[ > Pebble Floor | stationary Pebble ] -> [ Pebble Floor | Pebble ]\n[ > Pebble | stationary Pebble ] -> [ stationary Pebble no Direction | Pebble ] sfx7\n\n[ > Player | Pebble Treasure | Floor no Pebble ] -> [ | Treasure Player | Pebble Floor ] sfx2\n[ > Player | Pebble | Floor no Pebble no Treasure7 no Ship no Tree ] -> [ > Player | | Pebble Floor ] sfx2\n[ > Player | Pebble | no Floor no Pebble ] -> [ > Player | > Pebble | ]\n\n[ > Pebble | Ship ] -> [ Pebble no Direction | Ship ]\n\n[ left Pebble ] -> [ L left Pebble ]\n[ right Pebble ] -> [ R right Pebble ]\n[ up Pebble ] -> [ U up Pebble ]\n[ down Pebble ] -> [ D down Pebble ]\n\n[ moving Pebble no Floor ] -> [ moving Pebble Ripple1 ] sfx1\n\n[ > Pebble Direction | ] -> [ | Pebble Direction ]\n\n[ stationary Pebble Direction Floor ] -> [ Pebble Floor ] sfx4 (landing on floor)\n\n[ moving Pebble ] -> []\n\n[ moving Lily Pebble ] -> []\n[ moving Lily ] -> []\n\n(late [ Player Water ] -> [ PlayerInWater Water ]\nlate [ Player no Water ] -> [ PlayerNormal no Water ])\n\n(victory)\n\n[ > Player | Tree no Ship ] [ Ship_Right1 ] -> [ Player | TreasureTaken ] [ Ship_Right1 Tree ] message A palm tree! You can repair your ship with this.\n\n[ > Player | Ship_Right1 no Tree ] -> [ Player | Ship_Right1 ] message Your ship is damaged. You need to find some WOOD to repair it.\n\n[ Lily Ship_Right1 ] -> win\n[ Lily Ship_Right2 ] -> win\n\n[ > Player | Ship_Right1 Tree ] -> [ | Player action Ship_Right1 Tree Darkness ]\n[ > Player | Ship_Right2 ] -> [ | Player action Ship_Right2 Darkness ]\n\n[ Player Ship_Right1 ] -> again\n[ Player Ship_Right2 ] -> again\n\n[ Darkness | no Darkness ] -> [ Darkness | Darkness ]\n\n[ action Ship_Right1 TreasureTaken ] -> [ Ship_Right1 Lily TreasureTaken ] message You repair your ship and sail away to your next adventure!\n\n[ Ship_Right1 StopFlow Treasure ] -> [ Ship_Right1 Lily ] message Treasures found: 1/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure2 ] -> [ Ship_Right1 Lily ] message Treasures found: 2/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure3 ] -> [ Ship_Right1 Lily ] message Treasures found: 3/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure4 ] -> [ Ship_Right1 Lily ] message Treasures found: 4/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure5 ] -> [ Ship_Right1 Lily ] message Treasures found: 5/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure6 ] -> [ Ship_Right1 Lily ] message Treasures found: 6/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure7 ] -> [ Ship_Right1 Lily ] message Treasures found: 7/7, Kept: 0/7\n\n[ Ship_Right1 SubmergedPebble ] -> [ Ship_Right1 StopFlow ] message You reluctantly leave your spoils behind. Later you try to return, but you never manage to find the mysterious islands again.\n\n[ action Ship_Right1 no TreasureTaken ] -> [ Ship_Right1 SubmergedPebble ] message You repair it as best you can, but your battered ship isn't seaworthy enough to carry heavy treasure!\n\n[ Ship_Right2 StopFlow ] [ Ship_right1 TreasureTaken ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 0/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 1/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure2 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 2/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure3 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 3/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure4 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 4/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure5 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 5/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure6 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 6/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure7 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 7/7\n\n[ Ship_Right2 SubmergedPebble ] -> [ Ship_Right2 StopFlow ] message You sail away on your new ship, onwards to your next adventure!\n\n[ action Ship_Right2 ] -> [ Ship_Right2 SubmergedPebble ] message You find a strange ship, conveniently unguarded. It's probably haunted, but it seems seaworthy enough to carry you and your treasure.\n\n(treasure)\n\n[ TreasureTaken Lily | RemoveTarget ] -> message But are you stuck here with it?\n\n[ TreasureTaken Lily no Ship ] -> [ TreasureTaken ]\n\n[ > Player | Treasure no Pebble ] -> [ Player | action Treasure ]\n\n[ Treasure6 Sand ] -> [ Treasure7 Sand ] sfx8 again\n[ Treasure5 Sand ] -> [ Treasure6 Sand ] again\n[ Treasure4 Sand ] -> [ Treasure5 Sand ] again\n[ Treasure3 Sand ] -> [ Treasure4 Sand ] again\n[ Treasure2 Sand ] -> [ Treasure3 Sand ] sfx9 again\n\n[ action Treasure Sand ] -> [ Treasure2 Sand ] again\n\n[ > Player | Treasure7 ] -> [ Player | action TreasureTaken Lily ]\n\n[ action TreasureTaken ] [ no Sand TreasureTaken ] -> [ TreasureTaken ] [ Treasure ] message Found treasure! (1/7)\n[ action TreasureTaken ] [ no Sand Treasure ] -> [ TreasureTaken ] [ Treasure2 ] message Found treasure! (2/7)\n[ action TreasureTaken ] [ no Sand Treasure2 ] -> [ TreasureTaken ] [ Treasure3 ] message Found treasure! (3/7)\n[ action TreasureTaken ] [ no Sand Treasure3 ] -> [ TreasureTaken ] [ Treasure4 ] message Found treasure! (4/7)\n[ action TreasureTaken ] [ no Sand Treasure4 ] -> [ TreasureTaken ] [ Treasure5 ] message Found treasure! (5/7)\n[ action TreasureTaken ] [ no Sand Treasure5 ] -> [ TreasureTaken ] [ Treasure6 ] message Found treasure! (6/7)\n[ action TreasureTaken ] [ no Sand Treasure6 ] -> [ TreasureTaken ] [ Treasure7 ] message Found treasure! (7/7)\n([ action TreasureTaken ] [ no Sand Treasure7 ] -> [ TreasureTaken ] [ SubmergedPebble Lily ] message Found treasure! (8/8))\n\n(checkpoints)\n\n[ > Player | no Pebble ] -> [ | Player ] sfx5\n\n([ > Player | Pebble ] -> sfx6) (can't move)\n\n\n[ Player Target ] -> [ Player action Target ]\n[ action Target | stationary Target ] -> [ action Target | action Target ]\n[ action Target | RemoveTarget ] -> [ action Target | action RemoveTarget ]\n[ action Target Light_trigger ] -> [ action Target action Light_trigger ]\n[ action Target ] -> [] checkpoint\n\n\n[ Pebble Target2 ] -> [ Pebble action Target2 ]\n[ action Target2 | stationary Target2 ] -> [ action Target2 | action Target2 ]\n[ Player stationary Target2 ] -> [ Player Target2 StopFlow ]\n[ Target2 StopFlow | Target2 ] -> [ Target2 StopFlow | Target2 StopFlow ]\n[ Target2 StopFlow ] -> [ no Light_trigger ]\n[ action Target2 | RemoveTarget ] -> [ action Target2 | action RemoveTarget ]\n[ action Target2 Light_trigger ] -> [ action Target2 action Light_trigger ]\n[ action Target2 ] -> [] checkpoint\n\n\n[ action RemoveTarget | stationary RemoveTarget ] -> [ action RemoveTarget | action RemoveTarget ]\n[ action RemoveTarget ] -> []\n\n\n[ Pebble RemoveTarget ] -> [ Pebble action RemoveTarget ]\n[ action RemoveTarget | stationary RemoveTarget ] -> [ action RemoveTarget | action RemoveTarget ]\n[ action RemoveTarget | Target ] -> [ action RemoveTarget | no Light_trigger ]\n[ action RemoveTarget | Target2 ] -> [ action RemoveTarget | no Light_trigger ]\n\n\n[ Light ] -> [] checkpoint\n\n\n[ Player Light_trigger ] -> [ Player action Light_trigger ]\n\n[ action Light_trigger | Sand ] -> [ action Light_trigger | action Light_trigger Sand ]\n\n[ Player action Light_trigger | Sand ] -> [ Player action Light_trigger | action Sand Light ]\n\n[ action Sand Light | stationary Sand ] -> [ action Sand Light | action Sand Light no Light_trigger ]\n\n[ Light | no Light no Death no Speedup ] -> [ Light | Light ] again\n\n[ Light action Light_trigger ] -> [ Light ]\n\n\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww↓wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nwww/wwwwwwwwwwwwwwwwwwwwwwwwwwww↓wwwwwwwwwww...wwwwwwwn@wwwwwwwwwwwwwwwwwwww\nwws2w..wwwwwwwwwwwww...wwwwwwwwo↓wwwwwwwwww.....w..ww.w%%%.wwwwww.wwwwwwwwww\nwww......wwwwwwwwwwww....wwwowww↓wwwwwww.ww....↑wx....ww.%@.www...wwwwwwwwww\nwww......wwww.wwwwwww....wwwwwww↓ww..ww..www.ww↑xx...wwww?..........wwwwwwww\nww....@@wwwww...wwww....ww/wwwww↓....ww..w...ww↑....wwwoww.......*...wwwwwww\nww....@wwwww.....www....ws1..www↓@@w...@....www↑www.wowwwwww...t...wwwwwwwww\nwww..wwwww...t%...www..www.pww.w↓www...@.*.wwww↑w.*.wwwwwwwww....wwwwwwwwwww\nwwwwwwwwww....%%.wwwww.www...*....www..@....www↑w..←←←←←←←←←←←←←←←←←←←←←←←←←\nwwwwwwww.....w.%%w..ww..www....w*..ww..@.wwwwow↑wwww@wwwwwwwwwwwwwwwwwwwwwww\nwwwwwwwww..wwwww%%%x*w....ww..ww...wwww.wwwowww↑www..wwwwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwww.....ww..wwwwwwww..wwwwwwwwwwww↑www...wwwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwww...wwwwwwwwwwwww.→→→→→→→→→→→→→↑nwww...wwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwwwww..wwwwwwwwwwwwwwwwwwwwwwwwwww...wwwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwwwww.x?wwwwwwwwwwwwwwwwwwwwwwwwww...wwwwwwwwwwwwwwwwwwwwww\nwww..w.wwwwwwwwwwwwwwww%wwwwwwwwwwwwwwwnwwwwwwwww..@..wwwwwwwwwwwww...wwwwww\nww....@wwwwwwwwwwwwwwww..wwwwwwwwwwwwwwwwwwww.....*.wwww..wwwwwwwww....wwwww\nww.*..wwwwwww..wwwwww....wwwwwwww...wwwwwwwww...wwwwwww....?wwwwwwww....wwww\nwww...wwwwww...wwwwwww...wwwwwww..*..wwwwwwww.*.wwwwwww....x.wwwwowwn...wwww\nwwww.wwwwwww..wwowwwwww...wwwww......wwwwwww...wowwwwwww...x*.wwwwwww.....ww\nwwwwwwwwwwww..wwwwwwww....wwwww..t.....wnwww..wwwowwwwww...x..wwwwwwww....ww\nwwwwwwwwwwwww..wwwwww.....wwwwww.......!owww↑wwwwww.ww.....x..wwwwwoww...www\nwwwwwwwwwwwww.....ww....wwwwwwwww.w....??wwn↑←←←←←........wx.wwww.www...wwww\nwwwwwwwwwwwwww.........wwwwwwwwwwwww...w?www@..www........w...w...ww@.....ww\nwwwwwwwwwwwwwwww.....wwwwwwwwwwwowwwwwww?ww!..ww....ww..wwww...*...www...www\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww?????...@..www..wwwwww......ww..wwww\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww.....wwwww.wwwwwwwww..wwwww!wwww\nwwwwwwwwwwwwwwwwnwwwwwwwwwwwwwwwwwwwwwwwwnwwwwwwwwwwwwwwwwwwwwwwwwwwwww...ww\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww@@@ww\nww...wwwwwwwwwwwwwwwww.wwwwwwwwwwwwwwwwwwwww....w..wwwwwwwwwwwwwwwwwww..*.ww\nw...*.wwwwowwwwwwwwwnr...wwwwww..wwwwwwwwww.*.....*.w??...wwwwwwwwwwwww..www\nw.*...wwwwwww....nwwww..@wwwwwww...wwwwwww....w.*.%x.%x....wwwww.....ww..www\nw..w.→→→→→→→*....wwnwww.@wwwwowww....wwwww..wwwww.%x.%x.....www..*....wwnwww\nww.w→↑.*w.ww....wwnwww..@@wwwwwww.*..wwwwwwwwwwwww%x.wwwww..www.wwww..wwnwww\nwwww↑....@@www..wnwwn...@@wwwwww...*xwwwwwwwwowwwww.wwwwww....wwwwwww.w.wwww\nwwww↑..*.@←←←←←←←←!←←.w@@ww..www....xwwwwwwwwwwwwwwww..www.....!wwoww..@wwww\nwwow↑w...wwnw....www↑nw@@ww.....*.xxx...wwwwwwwwwwww...www.......wwww....www\nwwww↑wwwwwww.xxx.wnw↑wwwwwwwwww...xw...%%%ww...wwwwwww..www......wwww....www\nwwww↑wwowwwww...wwwn↑wwowwwwwww.w..wwww%xx.w....ww.@ww.wwwww.w...wwwww..wwww\nwwww↑wwwwwwww..wwwww↑wnwwwwwwwwww.wwwww%x.w..........wwwwwwwww...wwwwwwwwwww\nwwww↑wwwwnwww..→→→→→↑nwwwwwwwwwww.wwwwww..www..www...wwwwwwww...wwwwwwwwwnww\nwwww↑wwwwwww...wwwwwwwwwwwwwnwwwwwwnwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwnwwwwwwww\nwwww↑wwwwwww...wwnwwwwwwwwwwwwwwwwwnwwwwwwwwwwwwwwwwwwwnwwwwwwwwwwwwwwnwwwww\nwwww↑..wwwwww.x.wwwwww...wwww*.w...@.wwnwwwwww..wwwwwwwwwwwwwwwnwwwnwwwwnwww\nwwww...wwwwwww...wwww....wwww..*.t...wwwnwwww....w..wwwwwnwwnnwwwnwwwwwnwwww\nwww...wwwwowww....www.t..wwwww.....wwwnwwwwwww......wwwwnwnwwwnww↓↓↓↓wwwwwnw\nwww.....wwwwww....ww...wwwwwwwwwwwwwwwwwwwwwwww*...wnwwwwwwwwwww→→→→→↓wwnwww\nwwww....@↓←?←.....ww..wwwnwwwwwwwwwwwwwww→→→→→→→→→→→→→→→→→→→→→?→↑↓←←←↓←wwwww\nwww.*..ww?ww↑w....ww@@wwn→→→→→→→→→→→→→→→→↑n@@wwwwwwwwwwwwwwwww?→↑↓[]↑←←wwnww\nwwww..wwn↓ww?ww..wwwwwwww↑wwwwwwwwwwwwwwwww..%wwwwww@@wnwwnwwwn→↑↓{}←↓←wwwwn\nwwwww.wow→?→↑wwwwwww...ww!wwwnwwwwwwwwwwww.*x%...ww...wwwnwwwww→↑→→→↑↓←wnwwn\nwwwww↑wwwwowww@wwwww.....↑wwwwnww.w.wwwwww.xx%*.www....wwwwwwnww↑←←←←←wnwwww\nwwwww↑wwwwwwww@@@w....*.w↑wwwwww.....wwwwww%%%..www....wwwwnwwwww↑↑↑↑nwwwwnw\nwwwww↑wwwwwww@@.......www↑wwwwww.....wwwowwww..wwwww..wwwwwwnwwnw↑nwwwwwywww\nwwwww↑wwowwww...ww...wwow↑wwww......wwwwwwww..wwww...wwwnwnwwwwww↑wwnwwwnwww\nwwwww↑wwwwwwwwwwwwwwwwnww↑www.......wwwwwnwwwwwww.....wwwwwwwwwwn↑wwwwwwwwww\nwwwww↑wwwnwwwwwwwwwwwwwww↑www.......wnwwwwwwwwwww.....wwwwwwwwwww↑wwwwwwwwww\nwwwww↑wwwwwwnwww..wwww...↑ww..$....wwwwwwww......@@@@@.wwwwwwwwww↑wwwwwwwwww\nwwwww↑wwww..www.x.nnww...↑w......wwwwwwww...*..wwww.....wwwwwwwww↑www...wwww\nwwwww↑wnww..*.....wwn...w↑w....wwwww.www..*.wwwwnwwww.*.www..wwww↑ww...wwwww\nwwwww↑www.....*..www...ww↑www..www...www..wwwwowwnwww..www.....ww↑nw.t.wwwww\nnwwww↑www.t.ww..wwww...ww↑wwwwwww....wwww.wwwwwwwwww...wwwww.*...↑w.....wwww\nwwwww↑ww...*wwwwwwwww....↑wwwwwww..←←←←←←←←←←←←←←←←←..wwwww...*..↑.*...wwwww\nwwwww↑www....wwwwwww.....↑wwwwwwww.wwwwwwww......www...wnn@.....w↑ww.wwwwwww\nwwwnw↑wwwww..wwwwwwww....↑wwwwwwwwwww..www.x%%%*.wwww..wwww....ww↑wwwwwwwwww\nwwwww↑wwwwwwwwwwwwwwwwn.w↑wwww..w*...%x.ww.%w...wwoww..wwwwww...w↑wwwwwwwwww\nwwwww↑wwnwwwwwwwwowwwwwww↑wwow..*..*.%x..w..ww..wwwww..wwwwwwwwww↑wwwwwwwwww\nwwwww↑wwwwwwwwwwwwwwwwwww↑wwwww...w....wwwwwwwwwwww....wwnwwowwww↑wwwwwwwwww\nwwnww↑wwwwwwwwwwwwwwnwwww↑wwwwwwwwwwwwwwwwwwwowwww....wwwwnwwwwow↑wwwwwwwwww\nwwwww↑wwwwwwwwwwwwwwwwwww↑wwwwwwwwwwwwwwwwwwwwwwwwwwwwwnwwwwwwwww↑wwwwwwwwww\n\n\n(\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwww..ww.wwwwww\nwwwww.......w..wwwww\nwwww...........wwwww\nwww..*.www....wwwwww\nww....wwwwwwwwwww..w\nw..*wwwwowwwwwww...w\nw..p.wwwwwwwww.w.t.w\nw.*..wwwwwwwww.....w\nww..wwwwwwwwww....ww\nwww.wwwwwwwwwwww.www\nwwwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwwww\nwww...ww.....wwwwww\nwwww....w.....wwwww\nwwwww..wwww*.wwwwow\nwwwww.wwoww..wwwwww\nwww...wwwww..wwwoww\nw...*.wwww..←←←←←←←\nw.p..wwwwwwww.wwwww\nww..wwwwwwww..wwwww\nwwwwwwwwwww..@..www\nwwwwwwwwwwww...wwww\nwwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwww\nwwwwwww...ww\nwww.....*.ww\nwww.*.wwwwww\nwww.p.wwwwww\nww...wowwwww\nww..wwwowwww\nww↑wwwwww..w\nww↑←←←←←.@.w\nww...www...w\nw...ww....ww\nw........www\nwww....wwwww\nwwwwwwwwwwww\n\nwwwwwwwwwwwwwwww\nwwwwwwwwww...www\nwwwwwwwwwww...ww\nw...wwwwwww....w\nw.*.wwwwoww....w\nw..*.wwwwwww.@.w\nww..wwwwwwww...w\nw...wwwwwwoww..w\nww..wwww.www..ww\nww.p.w...ww...ww\nwww...*...www.ww\nwwwww......wwwww\nwwwwwww..wwwwwww\nwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwww\nwwwwwww.....wwwwww\nwwww.w....*..wwwww\nwwww....wwww.wwwww\nwww....wwwwwwwwwww\nwww....wwowww..www\nwww....wwww......w\nwww....wwww..@..ww\nwwww.*wwwww....www\nwwwwwwwwwww...wwww\nwww.....wwww..wwww\nwww...*.wwwwwwwwww\nww...p..wwwwwwwwww\nwwwww...wwwwwwwwww\nwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwww\nwwwwww..w....www\nwwwww.*.....*.ww\nwwww....*.w....w\nwwww..p.wwwww..w\nwwww.*.wwwwww.ww\nwwww...wwwwwwwww\nwwwww.wwwwwowwww\nw...wwwwwwwwwwww\nww...wwwwwwwwwww\nww.wwwwwww..wwww\nwwwww.www.@.wwww\nwwww.........www\nwwww...www.wwwww\nwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwww\nwwwww..wwwwww..wrw\nwww...wwwwwww...ww\nw...pwwwowww...wrw\nw..*.wwwwwww.@..ww\nw.*...wwwwww.....w\nww..*.www..ww..w.w\nwww..*.....www.www\nwwww...wwwwwwwwwww\nwwwwww.wwwwwwwwwww\nwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwww...ww\nwwwwwwwwowwww.*...w\nww....wwwwwww...*.w\nww....*←←←←←←←.w..w\nww.....ww.w*.↑←w.ww\nwww..wwww..p..↑wwww\nwwwwwwwww..*..↑wwww\nww....wwww...w↑woww\nww.@...wwwwwww↑wwww\nwww...wwwwwoww↑wwww\nwwwwwwwwwwwwww↑wwww\n\nwwwwwwwwwwwwwwwww\nwwwwwwwwwwww..www\nwww..wwwwwww...ww\nww...wwwwowww...w\nw.p.*wwwwww.*...w\nw.....→→→↓.....ww\nw.*..w↑ww↓ww....w\nww..ww↑ww↓www..ww\nwwwwww↑←←←wow.www\nwwww.wwwowwww↑www\nww...wwwwwwww↑www\nww.@..wwwwwww↑www\nwwww..wwwwoww↑www\nwwwwwwwwwwwww↑www\n\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwww..wwww\nwww...wwwwww..wwrow\nww....wwwww.....www\nww..@.wwwww.*.p..ww\nwww...wwww.....*.ww\nwww..wwwwwwww.*.www\nwwwwwwwwwwwwww..www\n←←←←←←←←←←←←←←←←←←←\nwwwwwwww....wwwwwww\nwwwwwww......wwwwww\nwwwwwww..w...wwwwww\nwwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwwww\nwwwww...ww.ww.wwwww\nwww........w...wwww\nwww...*.........www\nww..*.wwww.......ww\nw...w.wwowwww.*...w\nww..wwwwwwwwww..p.w\n←←←←←←←←←←←←←←....w\nwwwww.ww...www....←\nwwww.......wwww...w\nwww...w.@.wwoww...w\nwwww.www..wwwww..ww\nwwwwwwwwwwwwww...ww\nwwwwwwwwwwwwwwwwwww\n)\n\n(wwwwwwwwwwwwwwwwwww\nw...wwwwwwwwwwwwwww\nw.*..wwwwwwwwwwwwww\nw...wwwwowwwwwwwwww\nwp*.wwwwwwwwwwwwwww\nw.*.wwwoooooooooooo\nw..←←←←←←←←←←←←←←←←\nwwww.wwwwwwwwwwwwww\nwww..wwwwwwwwwwwwww\nww..@..wwwwwwwwwwww\nwww...wwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww)\n\n(wwwwwwwwwww\nw....ww..ww\nw...*.....w\nww..ww.p..w\nwwwwww...ww\nwwwowww.www\nwwwwwwwwwww\n\nwwwwwww\nww...ww\nww.p..w\nwww.*.w\nwow..ww\nww...ww\nwwwwwww)\n\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 2, "tick", "tick", 2, "tick", 3, "tick", "tick", 3, "tick", "tick", "tick", 2, "tick", 3, "tick", 0, "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", 3, "tick", "tick", 3, "tick", "tick", "tick", "tick", 0, "tick", 0, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background: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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background submergedpebble:1,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,addlandrd background:2,background removelandlu sand:3,background sand:4,background removelandld sand:5,addlandru background:6,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,background ship_left:7,0,2,3,5,6,0,0,0,0,\n0,0,0,2,3,5,6,0,0,0,0,0,0,0,0,0,0,3,4,background pebble sand:8,4,background removelandld removelandrd sand:9,0,0,background lily:10,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,1,0,0,background ship_sails:11,background ship_right2:12,3,4,4,4,5,0,0,0,0,0,0,0,3,4,8,\n5,6,0,0,0,0,0,0,0,0,0,4,4,4,addlandlu addlandru background:13,0,0,0,0,0,0,0,0,0,0,0,2,3,5,addlandrud background:14,background removelandlud sand:15,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,4,4,4,4,background removelandrd sand:16,0,0,0,0,0,0,0,background removelandru sand:17,4,4,4,9,0,0,0,0,\n0,0,0,0,0,17,8,4,9,background flowr4:18,background flowu4:19,19,19,19,19,19,19,19,19,addlandrd background flowu4:20,3,4,4,4,8,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,4,4,4,4,addlandlu background:21,0,0,0,0,0,0,0,addlandld addlandrd background:22,4,4,16,21,0,0,0,0,0,0,0,0,0,addlandld background:23,\n17,16,addlandlu background flowr4:24,20,3,5,6,0,0,0,0,0,0,3,4,4,4,4,4,4,9,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,0,0,17,4,4,background light_trigger sand target:25,background light_trigger removelandrd sand target:26,0,0,0,0,0,0,0,0,background removelandlu removelandru sand:27,26,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,3,4,4,\n5,0,0,0,0,0,0,17,16,addlandlud background:28,4,4,16,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,4,4,26,21,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,18,background pebble removelandru sand:29,4,8,4,0,10,0,0,0,\n0,0,0,0,17,4,21,0,10,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,17,16,21,0,0,0,15,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,22,4,4,16,0,0,0,0,0,0,0,0,0,23,background light_trigger removelandrud sand target:30,\n0,1,0,0,0,0,10,0,0,0,0,0,0,2,15,6,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,27,25,26,21,0,0,0,1,0,0,0,0,0,0,background flowd4:31,background flowd4 removetarget:32,31,18,0,0,0,\n0,0,1,0,0,2,3,4,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,3,4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,18,23,30,addlandlu background flowl4:33,0,0,0,0,0,0,0,0,0,10,0,background flowl4:34,0,0,background flowr4 removetarget:35,10,0,0,0,0,0,0,3,4,\n4,background sand treasure:36,4,4,6,0,0,0,0,0,0,0,0,0,0,0,2,4,4,4,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,34,1,0,0,0,0,0,0,0,0,0,0,background flowl4 removetarget:37,0,0,18,0,0,0,0,0,0,0,17,4,4,4,8,4,5,0,\n0,0,0,0,0,0,0,0,0,2,3,4,4,16,0,0,0,0,0,0,0,2,3,4,5,6,0,0,0,0,0,0,0,0,0,2,background pebble removelandlu sand:38,5,0,34,2,15,6,0,2,3,5,6,0,0,0,34,19,background flowu4 removetarget:39,19,0,0,0,0,0,0,1,23,8,4,21,23,17,16,0,0,0,0,0,0,0,\n0,0,27,4,4,36,4,13,0,0,0,0,0,0,0,3,4,4,4,4,5,6,0,0,0,0,0,0,0,3,4,4,6,34,3,background light_trigger sand target2:40,4,4,4,4,4,5,6,0,2,15,6,0,0,0,2,background light_trigger removelandlu sand target:41,5,0,0,0,0,4,4,6,0,0,0,0,0,0,0,0,0,0,0,0,23,4,4,background removetarget sand:42,\n42,5,0,0,0,0,0,0,0,17,16,21,23,17,4,5,0,0,0,0,0,0,0,4,4,4,5,34,4,40,4,4,4,4,4,40,4,4,4,4,5,6,0,background light_trigger removelandlu removelandru sand target:43,25,25,4,0,0,0,2,4,8,5,0,0,0,0,0,0,0,0,0,0,0,0,0,17,4,4,42,42,6,0,0,0,\n0,0,0,0,0,0,0,23,4,4,6,0,0,0,0,0,0,4,4,4,16,34,4,40,16,21,18,0,23,17,4,4,4,4,4,5,0,23,25,4,16,0,0,2,3,4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,23,17,4,4,42,42,5,6,0,0,0,0,0,0,10,\n0,0,4,4,5,0,0,1,0,0,0,17,16,21,0,34,17,16,21,0,18,0,0,23,17,4,4,4,4,16,0,0,background light_trigger removelandru sand target:44,4,21,0,0,3,40,4,16,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,background removelandrud sand:45,21,22,42,4,5,0,0,0,0,0,0,0,0,0,17,4,4,0,\n0,0,0,0,0,1,0,0,1,34,0,0,0,0,18,0,1,0,23,17,4,4,16,21,0,0,22,4,6,0,0,17,4,16,21,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,3,42,4,4,0,0,0,0,0,0,0,0,0,23,4,4,0,0,0,0,0,0,0,\n0,1,0,background flowl4 light_trigger target:46,0,1,0,0,18,0,0,0,0,0,0,0,0,0,0,0,3,4,5,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,40,4,16,0,0,0,0,0,0,0,0,0,2,4,4,0,0,0,0,0,0,0,1,0,0,34,0,0,\n1,0,18,0,0,0,0,0,0,0,0,0,0,2,4,4,4,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,15,6,2,3,5,6,0,23,29,16,21,0,0,0,0,0,0,0,0,2,3,4,16,0,0,0,0,0,1,0,0,0,1,34,19,19,19,19,19,0,0,0,\n0,2,3,4,background light_trigger removelandld sand target:47,0,3,4,4,4,16,0,0,0,0,addlandrd background submergedpebble:48,3,5,14,15,6,0,0,0,1,0,0,0,4,4,4,4,4,5,6,0,0,0,0,0,0,0,0,15,6,0,2,3,4,4,21,0,0,0,0,0,background r:49,0,0,2,3,9,1,0,0,0,1,0,0,2,3,4,4,4,26,0,\n4,4,4,16,21,0,0,0,2,3,4,4,4,4,5,0,0,0,0,0,0,0,17,4,4,4,4,4,4,4,5,6,0,3,5,6,2,4,5,14,3,4,4,16,0,0,0,0,0,27,4,5,14,3,4,13,0,0,0,1,0,0,0,3,4,36,16,21,0,0,17,4,8,21,0,1,\n0,3,4,4,4,4,4,4,4,addlandru background submergedpebble:50,0,0,0,0,0,0,23,4,4,4,16,21,23,17,4,5,0,17,40,42,4,4,4,4,4,4,16,21,0,0,0,0,0,23,4,4,4,4,4,25,47,0,10,0,0,0,0,4,4,4,21,0,0,0,23,4,16,0,10,0,0,4,4,16,21,23,\n4,4,4,9,0,0,0,0,0,0,0,17,16,21,0,0,0,23,4,16,0,0,background removetarget:51,23,17,4,4,4,4,4,21,0,0,0,0,0,0,0,17,25,25,25,25,25,26,0,0,0,0,0,0,17,4,16,0,0,1,0,0,45,21,0,0,0,0,17,16,21,0,0,17,4,16,21,0,0,\n0,0,0,0,0,0,0,0,7,0,0,0,45,21,0,0,0,0,0,0,23,17,4,16,0,0,0,0,0,0,0,0,0,0,23,44,26,21,0,0,0,0,0,0,0,0,0,0,0,1,18,19,background flowu4 light_trigger target:52,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,0,0,0,0,\n0,11,addlandrd background ship_right1 treasuretaken:53,3,5,6,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,18,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,3,4,4,5,\n6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,5,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,0,2,3,5,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,45,28,4,4,5,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,4,0,0,0,0,1,0,0,0,0,0,0,18,0,0,0,0,0,0,0,2,3,4,4,6,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,2,4,4,16,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,10,0,0,23,4,0,0,0,0,0,0,38,5,6,0,0,18,0,1,0,0,0,2,3,4,4,4,4,5,0,0,0,0,0,0,0,0,0,background u:54,0,0,0,0,0,0,27,4,16,21,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,4,6,0,0,0,0,0,17,4,5,0,0,18,0,0,1,0,0,3,4,4,background sand tree:55,4,4,16,0,0,0,0,3,5,6,0,0,0,0,0,0,0,0,0,23,4,13,0,0,0,0,0,0,0,0,2,3,5,6,0,0,0,0,0,0,0,0,15,6,0,0,\n0,2,4,4,9,0,0,0,0,22,8,4,0,0,18,0,0,0,0,2,4,4,4,4,4,21,0,0,0,0,0,17,4,5,0,0,31,31,31,31,31,31,31,background flowd4 lily playernormal:56,4,8,5,6,0,0,0,0,0,2,3,4,4,5,6,0,10,0,0,0,0,0,17,5,6,2,3,4,8,4,13,0,\n0,0,0,3,4,4,0,0,18,0,0,2,3,4,4,4,4,4,16,0,0,0,0,0,0,22,8,4,0,0,0,0,0,0,0,3,47,0,17,4,4,4,9,0,0,0,0,3,4,4,36,4,9,0,0,0,0,0,0,0,23,4,4,4,4,4,4,4,4,4,9,0,0,4,36,4,\n0,0,18,0,0,27,4,4,4,4,4,4,21,0,2,3,5,6,0,38,4,16,0,0,0,0,0,0,2,4,26,0,23,17,4,16,24,0,0,0,0,4,8,4,4,4,13,0,0,0,0,0,0,0,0,17,4,8,4,4,40,40,16,21,0,0,0,4,4,16,0,0,18,0,0,22,\n4,4,4,4,4,16,0,0,3,4,4,9,0,4,4,13,0,0,0,0,0,0,3,4,13,0,0,0,0,0,18,0,0,0,0,17,4,4,4,4,5,6,0,0,0,0,0,0,0,23,4,4,8,4,40,13,0,0,0,1,1,25,4,21,0,0,18,0,0,27,4,4,4,4,16,21,\n0,2,4,4,33,0,0,4,8,5,0,0,0,0,0,0,17,4,4,5,6,0,0,0,18,0,0,0,0,23,17,4,4,4,4,5,0,0,0,0,0,0,0,0,17,4,40,40,40,5,0,0,0,0,0,17,16,0,0,0,18,0,0,23,17,16,21,0,0,0,0,27,4,16,34,0,\n2,4,4,4,0,0,0,0,0,0,0,23,4,4,4,5,0,0,18,0,0,0,0,0,0,23,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,23,4,4,0,0,0,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,1,0,0,0,0,0,34,0,3,42,42,4,0,0,\n0,0,0,0,0,2,4,4,4,4,6,0,18,0,0,0,0,0,0,0,17,4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,4,4,6,0,0,0,0,0,0,1,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,17,40,40,16,0,0,0,0,0,2,3,4,\n25,25,25,25,9,0,18,0,0,1,0,0,0,0,0,background light_trigger target:57,51,0,0,0,0,0,0,0,0,0,0,0,0,0,17,42,42,background removelandld removetarget sand:58,6,0,0,1,0,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,23,17,4,21,0,0,0,0,0,27,4,4,4,4,4,16,21,0,\n18,0,0,0,0,0,0,0,1,10,51,51,51,51,0,0,0,0,0,0,0,0,0,0,23,42,40,40,5,0,0,0,1,0,0,0,18,0,0,0,0,10,0,0,0,0,2,3,5,6,34,0,0,23,45,0,0,0,0,0,0,0,0,22,4,8,4,21,0,0,18,0,0,0,0,0,\n0,0,0,0,0,0,0,51,0,1,0,0,0,0,0,0,0,0,0,background removelandru removetarget sand:59,40,4,16,0,0,0,0,0,0,18,19,0,0,0,0,0,0,1,0,0,3,4,4,9,34,0,0,0,0,0,0,0,0,0,0,0,0,3,4,4,4,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,\n0,51,0,0,0,0,2,3,5,0,0,0,0,23,45,21,0,0,0,0,0,0,0,18,1,2,3,5,6,0,0,0,0,2,4,8,21,0,34,2,3,4,5,0,0,0,0,2,3,5,14,4,16,28,45,0,10,0,18,0,0,0,0,0,0,0,0,0,1,0,57,51,0,0,0,2,\n3,4,16,0,0,0,0,0,2,15,0,0,0,0,0,0,0,18,41,4,8,40,58,0,0,0,0,3,4,16,0,0,34,3,40,42,16,0,0,0,0,3,4,4,4,16,21,0,0,0,0,0,18,0,0,0,0,0,2,3,5,19,19,41,5,addlandrud background removetarget:60,15,0,0,3,8,4,21,0,0,0,\n0,3,4,4,6,0,0,0,0,0,0,18,44,4,40,40,42,14,15,0,0,4,8,21,0,0,34,4,42,13,0,0,0,0,0,4,4,4,21,0,0,0,0,10,0,0,18,0,0,0,3,4,4,4,16,0,34,4,4,4,4,0,0,4,4,16,0,0,10,0,0,4,4,4,5,0,\n0,2,15,6,0,18,23,59,42,42,42,4,16,0,0,4,4,0,0,0,34,4,42,5,6,0,10,0,0,17,4,16,0,0,0,0,0,0,0,0,18,0,0,0,4,4,8,16,21,0,34,45,28,4,4,0,0,4,4,13,0,0,0,0,0,17,4,4,16,0,0,3,4,5,6,18,\n0,23,4,8,4,16,21,0,0,4,16,0,10,0,34,4,42,4,5,0,0,0,0,23,45,addlandlu background flowu4:61,19,19,19,19,19,19,19,19,19,0,0,0,4,4,16,21,0,0,34,0,2,4,4,0,0,17,4,5,0,0,0,0,0,23,17,4,21,0,0,17,4,4,background pebble removelandld sand:62,18,0,0,4,4,16,21,\n0,0,0,4,21,0,0,0,34,4,8,4,16,0,0,0,0,0,0,2,background light_trigger removelandlu sand target2:63,5,0,0,0,0,0,0,1,0,0,2,4,21,0,10,0,0,34,0,3,25,16,0,0,22,4,8,6,0,0,0,0,0,23,4,0,0,0,23,17,4,4,18,0,0,45,21,0,0,0,0,2,4,0,1,\n0,0,34,17,16,21,0,0,0,0,0,0,3,40,40,4,0,3,5,0,0,0,0,0,0,3,4,0,0,0,10,0,34,2,4,4,21,0,0,3,4,4,5,6,0,0,0,0,2,4,6,0,0,0,22,4,4,18,0,0,0,0,0,0,2,3,4,25,0,0,1,0,34,0,0,0,\n0,0,0,0,0,0,17,4,4,4,14,8,16,0,0,0,0,0,2,4,8,0,0,0,0,2,3,4,4,16,0,0,0,17,8,42,42,58,6,0,0,0,3,4,5,0,0,0,3,4,16,18,0,0,0,0,0,0,3,4,4,25,6,0,0,0,34,0,0,10,0,2,15,0,0,0,\n23,4,4,4,4,16,33,2,3,5,14,3,4,25,16,0,0,0,0,27,4,4,16,21,0,0,0,23,17,40,40,40,9,0,0,0,44,4,4,0,0,0,17,16,21,18,0,2,3,4,5,14,4,4,4,25,5,0,0,0,34,0,0,0,0,3,4,0,0,0,2,4,16,21,0,0,\n34,43,4,4,4,4,4,4,21,0,0,0,0,23,4,4,21,0,0,0,0,0,23,4,4,16,21,2,15,0,23,17,16,0,0,0,0,0,1,18,0,41,4,4,4,4,4,4,4,25,4,6,2,3,4,5,6,0,2,4,4,0,0,0,27,16,21,0,10,0,34,0,23,17,4,4,\n4,16,0,0,0,0,0,2,4,4,6,0,0,0,0,0,51,42,42,21,0,3,4,6,0,0,0,0,0,0,0,0,0,18,0,44,4,4,4,16,28,17,4,25,4,4,4,4,4,4,4,4,4,4,16,0,0,1,0,0,0,0,0,0,34,0,0,23,45,21,0,0,0,0,0,0,\n0,3,4,4,4,4,9,0,0,0,addlandrd background removetarget:64,40,40,0,0,17,4,4,9,0,0,0,0,0,0,0,0,18,0,0,23,17,16,21,0,0,23,17,4,8,4,16,28,17,4,4,4,16,21,0,0,43,58,6,0,10,0,0,34,0,0,0,0,0,0,0,2,3,5,6,2,4,4,4,4,16,\n21,0,0,0,3,4,4,0,0,0,23,45,21,0,0,0,1,0,0,0,0,18,0,1,0,0,0,0,0,0,0,23,17,16,21,0,0,0,0,0,0,0,0,1,0,23,42,5,0,0,0,0,34,0,0,0,0,0,0,0,3,4,4,4,4,4,4,4,21,0,0,0,0,0,4,4,\n4,0,0,0,0,0,0,0,0,0,0,0,0,1,0,18,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,42,42,addlandru background removetarget:65,0,0,0,34,0,0,0,0,0,0,0,17,4,4,4,4,4,4,16,0,0,0,0,0,0,17,4,4,6,0,0,0,0,\n0,0,0,0,0,0,1,0,0,18,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,17,25,4,5,0,0,34,0,0,0,0,0,0,0,23,17,4,4,4,4,13,0,0,0,0,0,0,0,23,17,4,4,4,4,5,6,0,0,0,0,0,0,\n0,1,0,18,0,1,0,0,0,0,1,0,0,0,0,2,15,0,2,background light_trigger removelandlud sand target:66,6,0,0,0,1,0,0,0,23,17,4,4,6,0,34,0,0,0,0,0,0,0,0,addlandld background removetarget:67,40,40,40,40,40,5,6,0,0,0,0,0,0,23,17,4,4,4,4,5,6,0,0,0,0,0,0,0,0,18,0,0,\n0,0,1,0,0,0,0,0,0,3,4,14,3,4,5,0,0,0,0,0,0,0,0,23,4,4,5,6,34,0,0,0,0,0,0,0,0,0,17,8,4,4,4,4,5,0,0,0,0,0,0,0,0,23,4,4,4,4,9,0,0,0,0,0,1,0,0,18,0,0,0,0,0,1,0,0,\n0,0,0,17,4,4,4,4,4,6,0,10,0,0,0,0,0,0,4,4,4,5,34,0,0,0,0,0,0,0,0,0,23,17,4,16,28,17,4,6,0,0,0,0,0,0,0,0,17,4,4,4,13,2,15,0,0,0,1,0,0,18,0,0,0,1,0,0,0,0,0,0,0,23,4,8,\n4,4,4,5,0,0,0,0,0,0,0,2,4,4,4,4,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,22,4,5,0,0,0,0,0,0,0,0,23,17,4,4,4,4,4,0,0,0,0,1,0,35,51,1,0,0,0,0,0,0,0,0,0,0,17,4,8,4,4,4,0,0,\n0,0,0,0,0,3,4,4,36,4,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,8,4,6,0,0,0,0,2,3,9,0,addlandld background light_trigger target:68,4,4,4,4,16,0,0,1,0,0,0,18,18,18,18,0,0,1,0,0,0,0,0,0,23,4,4,16,28,45,0,0,10,0,0,0,2,4,\n4,4,4,16,34,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,4,4,5,0,0,0,0,3,4,21,0,0,17,4,4,16,21,0,0,0,0,0,18,19,19,19,19,19,0,0,0,1,0,0,0,0,0,17,16,21,0,0,0,0,0,0,0,0,27,4,4,8,4,21,34,0,\n0,0,0,0,0,0,0,0,10,0,0,0,27,4,4,4,16,0,0,0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,1,31,18,31,31,31,18,34,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,0,0,0,23,4,4,16,0,34,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,23,17,4,21,0,0,0,0,4,4,0,0,10,0,0,0,0,0,0,0,0,0,31,18,34,background flowr4 speedup:69,background flowu4 speedup:70,18,34,19,1,0,0,0,0,0,0,1,2,15,0,0,0,0,0,0,0,0,0,0,0,17,4,21,0,34,0,0,0,0,0,0,3,5,6,0,0,0,10,\n0,0,23,45,0,0,0,0,0,4,4,6,0,0,0,0,0,0,0,1,0,1,0,31,18,34,background flowd4 speedup:71,background flowl4 speedup:72,18,34,19,0,0,0,0,0,0,0,2,3,8,6,0,0,0,0,0,0,0,0,0,0,23,45,0,0,34,0,0,0,0,0,0,4,4,5,50,0,0,0,2,66,0,0,0,0,\n0,0,0,17,4,5,6,0,0,0,0,0,0,0,0,0,0,31,18,34,19,34,19,34,19,0,1,0,0,0,2,3,4,4,4,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,17,4,4,4,5,6,2,3,4,6,0,0,0,0,0,0,23,17,4,\n4,4,4,5,6,0,0,0,0,0,0,0,31,31,34,31,31,34,1,0,0,0,0,0,3,4,36,4,4,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,23,17,4,4,4,4,4,4,4,4,5,0,0,2,15,6,0,0,0,22,4,4,4,5,0,\n0,0,1,0,0,0,0,34,34,34,34,0,0,0,0,0,0,0,4,4,4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,23,17,4,4,4,4,4,4,4,16,57,3,25,4,4,5,0,0,27,25,4,4,16,0,0,0,0,0,1,0,\n0,0,0,0,0,1,0,0,0,0,0,0,45,21,23,45,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,0,0,23,4,4,16,28,4,16,21,0,4,25,8,4,16,1,1,0,23,17,16,21,0,0,0,0,1,0,0,1,0,0,0,1,0,\n0,background death:73,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,0,0,0,17,16,21,0,45,21,0,0,17,25,16,21,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,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,34,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,1,0,0,0,0,0,0,1,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,34,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,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 0, "1627778728427.8804"] ], [ `gallery: the undertaking`, - ["title the undertaking\nauthor anna anthropy\nhomepage www.auntiepixelante.com\nnoaction\nnoundo\nnorestart\nrun_rules_on_level_start\nrealtime_interval 0.01\n\n========\nOBJECTS\n========\n\nBackground \nBlack\n\nExit \nTransparent\n\nWall \nWhite\n\nPlayer\nWhite\n..0..\n.000.\n00000\n.000.\n.0.0.\n\nAutoplayer\nGrey\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\np = Player\nq = Autoplayer\nE = Exit\n\n=======\nSOUNDS\n=======\n\nPlayer Move 20440307\nPlayer CantMove 24953107\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nExit\nPlayer, Autoplayer, Wall\n\n======\nRULES \n====== \n\n[ Autoplayer ] -> [ Player Exit ]\n\n==============\nWINCONDITIONS\n==============\n\nall Player on Exit\n\n======= \nLEVELS\n=======\n\nmessage the void\n\nEEEEEEEEEEE\nE.........E\nE.........E\nE.........E\nE.........E\nE....p....E\nE.........E\nE.........E\nE.........E\nE.........E\nEEEEEEEEEEE\n\nmessage deep in the woods\n\n###.EE.##..\n####..####.\n.#......#.#\n#.........#\n##.......##\n###.p...#.#\n#......##..\n.#....####.\n###..#..#..\n####.##...#\n.#..####.##\n\nmessage an ancient temple\n\n####EEE####\n#..#...#..#\n#.##...##.#\n#.........#\n#.........#\n#.#.....#.#\n#.........#\n#.........#\n#.##...##.#\n#..#.p.#..#\n####...####\n\nmessage the crumbling ruins\n\n......###EE\n#..#.##...E\n.##.#.#...#\n#.........#\n.#.#......#\n#...#....#.\n#.........#\n#.......#..\n#...#.....#\n....#.#...#\n.p.########\n\nmessage a lonely shoreline\n\n###########\n###.#######\n#.#####..##\n.##...####.\n#..###...##\n.##...###..\n#........##\n..........E\n.....####.E\np.########E\n###########\n\nmessage a forbidding cave\n\n##..#####EE\n..#.##.#..E\n##...#....E\n..#..#....#\n#.........#\n.........##\n.......####\np........##\n......#....\n#.#...#.#.#\n.#.#.#.#.#.\n\nmessage a rocky tunnel\n\n###########\n###.#####.#\n#.####.#..#\n#.#.#..#..E\n..#.......E\np.........E\n......#...E\n#.......#.E\n#.#.#..##.#\n###.##.####\n###########\n\nmessage a deserted cavern\n\n######EE###\n###..#....#\n#.........#\n...#.....##\n.........##\np.........#\n..........#\n..#......##\n#......#..#\n##.#....###\n###########\n\nmessage a huge mushroom\n\n...#.#..#.#\n.#.#....#.#\n.#.#.###..#\n###.#####.#\n#.#...#...#\n#....##..##\n.#...##...E\n#.........E\n#..#......E\n##.#....#.#\n####.p.####\n\nmessage a collapsed passage\n\n#######.EE#\n###...##..#\n##..#..##.#\n#.#..#.#..#\n#....#.#.##\n##.##..#..#\n#...#.....#\n#.#..#.#..#\n####.#...##\np.....#####\n###########\n\nmessage a mysterious house\n\n####...####\n#.#......##\n....#####.#\n#####...#.#\n#E#.#...#..\n#.#.....#.#\n#...#...#..\n######.##..\n...........\n##...#....#\n#######.p.#\n\nmessage a secret passage\n\n.####......\n.####......\n###########\n.#p#.......\n.#.##..#..#\n.#..##.....\n.##..######\n..##......#\n...######.#\n.#...#..#.#\n...#....#E#\n\nmessage standing stones\n\n..###.###..\n.#...p...#.\n#...#.#...#\n#.#.#.#.#.E\n#.#.....#.E\n#.........E\n#.#..#....E\n#.#.....#.E\n#...#.#.#.#\n.#..#.#..#.\n..#######..\n\nmessage high technology\n\n###########\n#....#....#\n#.##.######\n#....#....E\n..........E\np.........E\n..........E\n#....#....E\n#.##.######\n#....#....#\n###########\n\nmessage a strange factory\n\n###########\n..#.#.#.#.#\np.........#\n..........#\n#.#.#.###.#\n#######.#.#\n#.#.#.###.#\n#.........#\n#.........#\n#.#.#.#.#.#\n#E#########\n\nmessage the vestibule\n\n#####p#####\n#...#.#...#\n##.......##\n#.........#\n###.....###\n#.#.....#.#\n####...####\n#..#...#..#\n#####.#####\n#...#.#...#\n#####E#####\n\nmessage the device\n\n###########\n#....p....#\n#.........#\n#.........#\n#.###.###.#\n#..#...#..#\n####EEE####\n#..#...#..#\n#.###.###.#\n#.........#\n###########\n\nmessage the void\n\nEEEEEEEEEEE\nE.........E\nE.........E\nE.........E\nE.........E\nE....p....E\nE.........E\nE.........E\nE.........E\nE.........E\nEEEEEEEEEEE\n\nmessage a glimmer\n\n.......E...\n......E#E..\n.....E###E.\n....E##.##E\n.....E###E.\n......E#E..\n.......E...\n...........\n...........\n..p........\n...........\n\nmessage a flash\n\n.....#.....\n.....#.....\n.....#.....\n.....#.....\n.....#.....\n#####q#####\n.....#.....\n.....#.....\n.....#.....\n.....#.....\n.....#.....\n\n.....#.....\n....#.#....\n...#...#...\n..#..#..#..\n.#..#.#..#.\n#..#.q.#..#\n.#..#.#..#.\n..#..#..#..\n...#...#...\n....#.#....\n.....#.....\n\n###########\n#.........#\n#.#######.#\n#.#.....#.#\n#.#.###.#.#\n#.#.#q#.#.#\n#.#...#.#.#\n#.#####.#.#\n#.......#.#\n#########.#\n..........#\n\n...........\n...###.....\n.###....#..\n###...#####\n###....###.\n###..q.#.#.\n###........\n###.....#..\n####...##..\n.#######...\n..#####....\n\n....#......\n.....#.....\n......#....\n.....#.....\n....#......\n...#.q.....\n..#.#......\n.#...#.....\n..#..#.....\n.#########.\n###########\n\n#######.###\n#.....#...#\n#.#.#####.#\n#.#.#...#.#\n###.#.#.#.#\n#...#q#...#\n#.###.#.#.#\n#.....#.#.#\n#.###.###.#\n#...#..#..#\n###.#######\n\n\n..#...#...#\n.#.#.#.#.#.\n#...#...#..\n...........\n..#...#...#\n.#.#.q.#.#.\n#...#...#..\n...........\n..#...#...#\n.#.#.#.#.#.\n#...#...#..\n\n....###....\n..##.#.##..\n.#..#.#..#.\n.#..#.#..#.\n#..#...#..#\n#..#.q.#..#\n#.#.....#.#\n.#########.\n.#.......#.\n..##...##..\n....###....\n\n###########\n#.........#\n#.#######.#\n#.#.....#.#\n#.#.###.#.#\n#.#.#q#.#.#\n#.#.###.#.#\n#.#.....#.#\n#.#######.#\n#.........#\n###########\n\n...#####...\n..#..#..#..\n.#...#...#.\n.#...#...#.\n.#..#.#..#.\n..###q###..\n..#######..\n...#.#.#...\n...........\n...#.#.#...\n....###....\n\n.....#.....\n.....#.....\n..#######..\n..#..#..#..\n..#.....#..\n####.q.####\n..#.....#..\n..#..#..#..\n..#######..\n.....#.....\n.....#.....\n\n....###....\n..#######..\n.#########.\n.##..#..##.\n##..#.#..##\n#..#.q.#..#\n##..#.#..##\n.##..#..##.\n.#########.\n..#######..\n....###....\n\n#####.#####\n####.#.####\n###.###.###\n##.##.##.##\n#.##.#.##.#\n.##.#q#.##.\n#.##.#.##.#\n##.##.##.##\n###.###.###\n####.#.####\n#####.#####\n\n#..........\n#.#########\n#.#.......#\n#.#.#####.#\n#.#.#...#.#\n#.#.#q#.#.#\n#.#.###.#.#\n#.#.....#.#\n#.#######.#\n#.........#\n###########\n\n#####.#####\n#####.#####\n#####.#####\n#####.#####\n#####.#####\n.....q.....\n#####.#####\n#####.#####\n#####.#####\n#####.#####\n#####.#####\n\n###########\n###########\n###########\n###########\n###########\n#####q#####\n###########\n###########\n###########\n###########\n###########\n\nmessage the undertaking\n\n.....#.....\n....#.#....\n...#...#...\n###.....###\n#.........#\n.#...q...#.\n..#.....#..\n..#.....#..\n..#..#..#..\n..#.#.#.#..\n..##...##..\n\n.....#.....\n....#.#....\n...#...#...\n###.....###\n#.........#\n.#...q...#.\n..#.....#..\n..#.....#..\n..#..#..#..\n..#.#.#.#..\n..##...##..\n\n.....#.....\n....#.#....\n...#...#...\n###.....###\n#.........#\n.#...q...#.\n..#.....#..\n..#.....#..\n..#..#..#..\n..#.#.#.#..\n..##...##..\n\nmessage end\n\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background wall:0,0,0,0,0,0,0,0,0,0,0,\n0,background:1,0,1,0,1,0,1,0,1,0,\n0,1,1,1,0,0,0,1,0,1,0,\n0,1,1,1,1,1,0,0,0,1,0,\n0,0,1,background player:2,1,1,1,1,0,0,0,\n1,1,1,1,1,1,1,1,1,1,background exit:3,\n0,0,1,1,1,1,1,1,0,0,0,\n0,1,1,1,1,1,0,0,0,1,0,\n0,1,1,1,0,0,0,1,0,1,0,\n0,1,0,1,0,1,0,1,0,1,0,\n0,0,0,0,0,0,0,0,0,0,0,\n",31,"1627778765711.7197"] + ["title the undertaking\nauthor anna anthropy\nhomepage www.auntiepixelante.com\nnoaction\nnoundo\nnorestart\nrun_rules_on_level_start\nrealtime_interval 0.01\n\n========\nOBJECTS\n========\n\nBackground \nBlack\n\nExit \nTransparent\n\nWall \nWhite\n\nPlayer\nWhite\n..0..\n.000.\n00000\n.000.\n.0.0.\n\nAutoplayer\nGrey\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\np = Player\nq = Autoplayer\nE = Exit\n\n=======\nSOUNDS\n=======\n\nPlayer Move 20440307\nPlayer CantMove 24953107\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nExit\nPlayer, Autoplayer, Wall\n\n======\nRULES \n====== \n\n[ Autoplayer ] -> [ Player Exit ]\n\n==============\nWINCONDITIONS\n==============\n\nall Player on Exit\n\n======= \nLEVELS\n=======\n\nmessage the void\n\nEEEEEEEEEEE\nE.........E\nE.........E\nE.........E\nE.........E\nE....p....E\nE.........E\nE.........E\nE.........E\nE.........E\nEEEEEEEEEEE\n\nmessage deep in the woods\n\n###.EE.##..\n####..####.\n.#......#.#\n#.........#\n##.......##\n###.p...#.#\n#......##..\n.#....####.\n###..#..#..\n####.##...#\n.#..####.##\n\nmessage an ancient temple\n\n####EEE####\n#..#...#..#\n#.##...##.#\n#.........#\n#.........#\n#.#.....#.#\n#.........#\n#.........#\n#.##...##.#\n#..#.p.#..#\n####...####\n\nmessage the crumbling ruins\n\n......###EE\n#..#.##...E\n.##.#.#...#\n#.........#\n.#.#......#\n#...#....#.\n#.........#\n#.......#..\n#...#.....#\n....#.#...#\n.p.########\n\nmessage a lonely shoreline\n\n###########\n###.#######\n#.#####..##\n.##...####.\n#..###...##\n.##...###..\n#........##\n..........E\n.....####.E\np.########E\n###########\n\nmessage a forbidding cave\n\n##..#####EE\n..#.##.#..E\n##...#....E\n..#..#....#\n#.........#\n.........##\n.......####\np........##\n......#....\n#.#...#.#.#\n.#.#.#.#.#.\n\nmessage a rocky tunnel\n\n###########\n###.#####.#\n#.####.#..#\n#.#.#..#..E\n..#.......E\np.........E\n......#...E\n#.......#.E\n#.#.#..##.#\n###.##.####\n###########\n\nmessage a deserted cavern\n\n######EE###\n###..#....#\n#.........#\n...#.....##\n.........##\np.........#\n..........#\n..#......##\n#......#..#\n##.#....###\n###########\n\nmessage a huge mushroom\n\n...#.#..#.#\n.#.#....#.#\n.#.#.###..#\n###.#####.#\n#.#...#...#\n#....##..##\n.#...##...E\n#.........E\n#..#......E\n##.#....#.#\n####.p.####\n\nmessage a collapsed passage\n\n#######.EE#\n###...##..#\n##..#..##.#\n#.#..#.#..#\n#....#.#.##\n##.##..#..#\n#...#.....#\n#.#..#.#..#\n####.#...##\np.....#####\n###########\n\nmessage a mysterious house\n\n####...####\n#.#......##\n....#####.#\n#####...#.#\n#E#.#...#..\n#.#.....#.#\n#...#...#..\n######.##..\n...........\n##...#....#\n#######.p.#\n\nmessage a secret passage\n\n.####......\n.####......\n###########\n.#p#.......\n.#.##..#..#\n.#..##.....\n.##..######\n..##......#\n...######.#\n.#...#..#.#\n...#....#E#\n\nmessage standing stones\n\n..###.###..\n.#...p...#.\n#...#.#...#\n#.#.#.#.#.E\n#.#.....#.E\n#.........E\n#.#..#....E\n#.#.....#.E\n#...#.#.#.#\n.#..#.#..#.\n..#######..\n\nmessage high technology\n\n###########\n#....#....#\n#.##.######\n#....#....E\n..........E\np.........E\n..........E\n#....#....E\n#.##.######\n#....#....#\n###########\n\nmessage a strange factory\n\n###########\n..#.#.#.#.#\np.........#\n..........#\n#.#.#.###.#\n#######.#.#\n#.#.#.###.#\n#.........#\n#.........#\n#.#.#.#.#.#\n#E#########\n\nmessage the vestibule\n\n#####p#####\n#...#.#...#\n##.......##\n#.........#\n###.....###\n#.#.....#.#\n####...####\n#..#...#..#\n#####.#####\n#...#.#...#\n#####E#####\n\nmessage the device\n\n###########\n#....p....#\n#.........#\n#.........#\n#.###.###.#\n#..#...#..#\n####EEE####\n#..#...#..#\n#.###.###.#\n#.........#\n###########\n\nmessage the void\n\nEEEEEEEEEEE\nE.........E\nE.........E\nE.........E\nE.........E\nE....p....E\nE.........E\nE.........E\nE.........E\nE.........E\nEEEEEEEEEEE\n\nmessage a glimmer\n\n.......E...\n......E#E..\n.....E###E.\n....E##.##E\n.....E###E.\n......E#E..\n.......E...\n...........\n...........\n..p........\n...........\n\nmessage a flash\n\n.....#.....\n.....#.....\n.....#.....\n.....#.....\n.....#.....\n#####q#####\n.....#.....\n.....#.....\n.....#.....\n.....#.....\n.....#.....\n\n.....#.....\n....#.#....\n...#...#...\n..#..#..#..\n.#..#.#..#.\n#..#.q.#..#\n.#..#.#..#.\n..#..#..#..\n...#...#...\n....#.#....\n.....#.....\n\n###########\n#.........#\n#.#######.#\n#.#.....#.#\n#.#.###.#.#\n#.#.#q#.#.#\n#.#...#.#.#\n#.#####.#.#\n#.......#.#\n#########.#\n..........#\n\n...........\n...###.....\n.###....#..\n###...#####\n###....###.\n###..q.#.#.\n###........\n###.....#..\n####...##..\n.#######...\n..#####....\n\n....#......\n.....#.....\n......#....\n.....#.....\n....#......\n...#.q.....\n..#.#......\n.#...#.....\n..#..#.....\n.#########.\n###########\n\n#######.###\n#.....#...#\n#.#.#####.#\n#.#.#...#.#\n###.#.#.#.#\n#...#q#...#\n#.###.#.#.#\n#.....#.#.#\n#.###.###.#\n#...#..#..#\n###.#######\n\n\n..#...#...#\n.#.#.#.#.#.\n#...#...#..\n...........\n..#...#...#\n.#.#.q.#.#.\n#...#...#..\n...........\n..#...#...#\n.#.#.#.#.#.\n#...#...#..\n\n....###....\n..##.#.##..\n.#..#.#..#.\n.#..#.#..#.\n#..#...#..#\n#..#.q.#..#\n#.#.....#.#\n.#########.\n.#.......#.\n..##...##..\n....###....\n\n###########\n#.........#\n#.#######.#\n#.#.....#.#\n#.#.###.#.#\n#.#.#q#.#.#\n#.#.###.#.#\n#.#.....#.#\n#.#######.#\n#.........#\n###########\n\n...#####...\n..#..#..#..\n.#...#...#.\n.#...#...#.\n.#..#.#..#.\n..###q###..\n..#######..\n...#.#.#...\n...........\n...#.#.#...\n....###....\n\n.....#.....\n.....#.....\n..#######..\n..#..#..#..\n..#.....#..\n####.q.####\n..#.....#..\n..#..#..#..\n..#######..\n.....#.....\n.....#.....\n\n....###....\n..#######..\n.#########.\n.##..#..##.\n##..#.#..##\n#..#.q.#..#\n##..#.#..##\n.##..#..##.\n.#########.\n..#######..\n....###....\n\n#####.#####\n####.#.####\n###.###.###\n##.##.##.##\n#.##.#.##.#\n.##.#q#.##.\n#.##.#.##.#\n##.##.##.##\n###.###.###\n####.#.####\n#####.#####\n\n#..........\n#.#########\n#.#.......#\n#.#.#####.#\n#.#.#...#.#\n#.#.#q#.#.#\n#.#.###.#.#\n#.#.....#.#\n#.#######.#\n#.........#\n###########\n\n#####.#####\n#####.#####\n#####.#####\n#####.#####\n#####.#####\n.....q.....\n#####.#####\n#####.#####\n#####.#####\n#####.#####\n#####.#####\n\n###########\n###########\n###########\n###########\n###########\n#####q#####\n###########\n###########\n###########\n###########\n###########\n\nmessage the undertaking\n\n.....#.....\n....#.#....\n...#...#...\n###.....###\n#.........#\n.#...q...#.\n..#.....#..\n..#.....#..\n..#..#..#..\n..#.#.#.#..\n..##...##..\n\n.....#.....\n....#.#....\n...#...#...\n###.....###\n#.........#\n.#...q...#.\n..#.....#..\n..#.....#..\n..#..#..#..\n..#.#.#.#..\n..##...##..\n\n.....#.....\n....#.#....\n...#...#...\n###.....###\n#.........#\n.#...q...#.\n..#.....#..\n..#.....#..\n..#..#..#..\n..#.#.#.#..\n..##...##..\n\nmessage end\n\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background wall:0,0,0,0,0,0,0,0,0,0,0,\n0,background:1,0,1,0,1,0,1,0,1,0,\n0,1,1,1,0,0,0,1,0,1,0,\n0,1,1,1,1,1,0,0,0,1,0,\n0,0,1,background player:2,1,1,1,1,0,0,0,\n1,1,1,1,1,1,1,1,1,1,background exit:3,\n0,0,1,1,1,1,1,1,0,0,0,\n0,1,1,1,1,1,0,0,0,1,0,\n0,1,1,1,0,0,0,1,0,1,0,\n0,1,0,1,0,1,0,1,0,1,0,\n0,0,0,0,0,0,0,0,0,0,0,\n", 31, "1627778765711.7197"] ], [ `gallery: JAM3 Game`, - ["title JAM3 Game\nauthor chaotic_iak\n\nagain_interval 0.07\nkey_repeat_interval 0.2\nrun_rules_on_level_start\nverbose_logging\n\n========\nOBJECTS\n========\n(need better sprites)\n\nbackground\nwhite\n\ntarget\n#9ff\n\nplayer\nblack\n.....\n..0..\n.000.\n..0..\n.....\n\ngem1\n#c00 #f33\n.....\n.001.\n.000.\n.000.\n.....\n\ngem2\n#990 #cc3\n.....\n.001.\n.000.\n.000.\n.....\n\ngem3\n#0c0 #3f3\n.....\n.001.\n.000.\n.000.\n.....\n\ngem4\n#00c #33f\n.....\n.001.\n.000.\n.000.\n.....\n\ngem5\n#909 #c3c\n.....\n.001.\n.000.\n.000.\n.....\n\ngem1pop\n#c00\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\ngem2pop\n#990\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\ngem3pop\n#0c0\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\ngem4pop\n#00c\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\ngem5pop\n#909\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\nwall0\n#333 white\n00000\n00000\n00000\n00000\n00100\n\nwall1\n#333 #f33\n00000\n00000\n00000\n00000\n00100\n\nwall2\n#333 #cc3\n00000\n00000\n00000\n00000\n00100\n\nwall3\n#333 #3f3\n00000\n00000\n00000\n00000\n00100\n\nwall4\n#333 #33f\n00000\n00000\n00000\n00000\n00100\n\nwall5\n#333 #c3c\n00000\n00000\n00000\n00000\n00100\n\nwalls\n#333\n\nlv1\nwhite\n.00..\n..0..\n..0..\n..0..\n.000.\n\nlv2\nwhite\n.000.\n...0.\n.000.\n.0...\n.000.\n\nlv3\nwhite\n.000.\n...0.\n.000.\n...0.\n.000.\n\nlv4\nwhite\n.0.0.\n.0.0.\n.000.\n...0.\n...0.\n\nlv5\nwhite\n.000.\n.0...\n.000.\n...0.\n.000.\n\nlv6\nwhite\n.000.\n.0...\n.000.\n.0.0.\n.000.\n\nlv7\nwhite\n.000.\n...0.\n..0..\n..0..\n..0..\n\nlv8\nwhite\n.000.\n.0.0.\n.000.\n.0.0.\n.000.\n\nlv9\nwhite\n.000.\n.0.0.\n.000.\n...0.\n.000.\n\nlv10\nwhite\n0.000\n0.0.0\n0.0.0\n0.0.0\n0.000\n\nlv11\nwhite\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n\nlv12\nwhite\n0.000\n0...0\n0.000\n0.0..\n0.000\n\nlv13\nwhite\n0.000\n0...0\n0.000\n0...0\n0.000\n\nlv14\nwhite\n0.0.0\n0.0.0\n0.000\n0...0\n0...0\n\nlv15\nwhite\n0.000\n0.0..\n0.000\n0...0\n0.000\n\nlvbin0\nred\n\nlvbin1\nblue\n\nstartlevel\nblack\n\npop\nblack\n\nremnant\nblack\n\nresume\nblack\n\nwinmarker\nblack\n\n=======\nLEGEND\n=======\n. = background\n* = target\n# = walls\np = wall0\nq = wall1\nw = wall2\ne = wall3\nr = wall4\nt = wall5\n& = player and startlevel\n0 = walls and lvbin0\n1 = walls and lvbin1\n\ngem = gem1 or gem2 or gem3 or gem4 or gem5\ngempop = gem1pop or gem2pop or gem3pop or gem4pop or gem5pop\nmovable = player or gem\nwall = walls or wall0 or wall1 or wall2 or wall3 or wall4 or wall5\nobject = player or gem or gempop or wall\nmarker = startlevel or pop or remnant or winmarker\nlv = lv1 or lv2 or lv3 or lv4 or lv5 or lv6 or lv7 or lv8 or lv9 or lv10 or lv11 or lv12 or lv13 or lv14 or lv15\n\n=======\nSOUNDS\n=======\ngempop create 66716500\nendlevel 54419303\n\n================\nCOLLISIONLAYERS\n================\nresume\nmarker\nbackground\ntarget\nwall, player\ngem, gempop\nlv, lvbin0, lvbin1\n\n======\nRULES\n======\n(start level: generate gems)\n[startlevel][no wall no player no gem] -> [startlevel][random gem]\nstartloop\n [startlevel][gem1|gem1|gem1] -> [startlevel][random gem|random gem|random gem]\n+[startlevel][gem2|gem2|gem2] -> [startlevel][random gem|random gem|random gem]\n+[startlevel][gem3|gem3|gem3] -> [startlevel][random gem|random gem|random gem]\n+[startlevel][gem4|gem4|gem4] -> [startlevel][random gem|random gem|random gem]\n+[startlevel][gem5|gem5|gem5] -> [startlevel][random gem|random gem|random gem]\ndown [startlevel][wall1|gem no gem1] -> [startlevel][wall1|gem1]\n+ [startlevel][wall2|gem no gem2] -> [startlevel][wall2|gem2]\n+ [startlevel][wall3|gem no gem3] -> [startlevel][wall3|gem3]\n+ [startlevel][wall4|gem no gem4] -> [startlevel][wall4|gem4]\n+ [startlevel][wall5|gem no gem5] -> [startlevel][wall5|gem5]\nendloop\n\n(start level: generate level number)\nright [startlevel][lvbin0|lvbin0|lvbin0|lvbin1] -> [startlevel][lv1|||]\nright [startlevel][lvbin0|lvbin0|lvbin1|lvbin0] -> [startlevel][lv2|||]\nright [startlevel][lvbin0|lvbin0|lvbin1|lvbin1] -> [startlevel][lv3|||]\nright [startlevel][lvbin0|lvbin1|lvbin0|lvbin0] -> [startlevel][lv4|||]\nright [startlevel][lvbin0|lvbin1|lvbin0|lvbin1] -> [startlevel][lv5|||]\nright [startlevel][lvbin0|lvbin1|lvbin1|lvbin0] -> [startlevel][lv6|||]\nright [startlevel][lvbin0|lvbin1|lvbin1|lvbin1] -> [startlevel][lv7|||]\nright [startlevel][lvbin1|lvbin0|lvbin0|lvbin0] -> [startlevel][lv8|||]\nright [startlevel][lvbin1|lvbin0|lvbin0|lvbin1] -> [startlevel][lv9|||]\nright [startlevel][lvbin1|lvbin0|lvbin1|lvbin0] -> [startlevel][lv10|||]\nright [startlevel][lvbin1|lvbin0|lvbin1|lvbin1] -> [startlevel][lv11|||]\nright [startlevel][lvbin1|lvbin1|lvbin0|lvbin0] -> [startlevel][lv12|||]\nright [startlevel][lvbin1|lvbin1|lvbin0|lvbin1] -> [startlevel][lv13|||]\nright [startlevel][lvbin1|lvbin1|lvbin1|lvbin0] -> [startlevel][lv14|||]\nright [startlevel][lvbin1|lvbin1|lvbin1|lvbin1] -> [startlevel][lv15|||]\n[startlevel] -> []\n\n(move)\n[> player|gem] -> [gem|player]\n\n(drop gems)\n[resume] -> []\n[lv][remnant] -> [lv resume][]\ndown [movable|no object][lv] -> [> movable|][lv resume]\ndown [movable|> movable][lv] -> [> movable|> movable][lv resume]\nlate down [resume][wall0|no object] -> [resume][wall0|random gem] again\nlate down [resume][wall1|no object] -> [resume][wall1|gem1] again\nlate down [resume][wall2|no object] -> [resume][wall2|gem2] again\nlate down [resume][wall3|no object] -> [resume][wall3|gem3] again\nlate down [resume][wall4|no object] -> [resume][wall4|gem4] again\nlate down [resume][wall5|no object] -> [resume][wall5|gem5] again\n\n(pop, with animation)\n[gempop] -> [remnant] again\n[gem1 pop] -> [gem1pop]\n[gem2 pop] -> [gem2pop]\n[gem3 pop] -> [gem3pop]\n[gem4 pop] -> [gem4pop]\n[gem5 pop] -> [gem5pop]\n[gempop] -> again\n\n(win check)\nlate [lv] -> [lv winmarker]\nlate [winmarker][target player] -> [][target player]\nlate [winmarker][target gem] -> [][target gem]\nlate [winmarker][target gem1pop][target gem2pop] -> [][target gem1pop][target gem2pop]\nlate [winmarker][target gem1pop][target gem3pop] -> [][target gem1pop][target gem3pop]\nlate [winmarker][target gem1pop][target gem4pop] -> [][target gem1pop][target gem4pop]\nlate [winmarker][target gem1pop][target gem5pop] -> [][target gem1pop][target gem5pop]\nlate [winmarker][target gem2pop][target gem3pop] -> [][target gem2pop][target gem3pop]\nlate [winmarker][target gem2pop][target gem4pop] -> [][target gem2pop][target gem4pop]\nlate [winmarker][target gem2pop][target gem5pop] -> [][target gem2pop][target gem5pop]\nlate [winmarker][target gem3pop][target gem4pop] -> [][target gem3pop][target gem4pop]\nlate [winmarker][target gem3pop][target gem5pop] -> [][target gem3pop][target gem5pop]\nlate [winmarker][target gem4pop][target gem5pop] -> [][target gem4pop][target gem5pop]\n\n(prepare popping)\nlate [lv no resume][gem1|gem1|gem1] -> [lv][gem1 pop|gem1 pop|gem1 pop]\nlate [lv no resume][gem2|gem2|gem2] -> [lv][gem2 pop|gem2 pop|gem2 pop]\nlate [lv no resume][gem3|gem3|gem3] -> [lv][gem3 pop|gem3 pop|gem3 pop]\nlate [lv no resume][gem4|gem4|gem4] -> [lv][gem4 pop|gem4 pop|gem4 pop]\nlate [lv no resume][gem5|gem5|gem5] -> [lv][gem5 pop|gem5 pop|gem5 pop]\nlate [gem pop] -> again\n\n==============\nWINCONDITIONS\n==============\nsome winmarker\n\n=======\nLEVELS\n=======\nmessage JUST ANOTHER MATCH 3 GAME\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#.....&....#\n#..........#\n#..........#\n#...****...#\n#..........#\n#..........#\n#..........#\n0001########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#....*.....#\n#...****...#\n#....*.....#\n#....*.&...#\n#..........#\n#..........#\n#..........#\n0010########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#.....&....#\n#..........#\n#..........#\n#..******..#\n#..........#\n#..........#\n#..........#\n0011########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#...#*#....#\n#...#*#....#\n#...#*#....#\n#...ppp&...#\n#..........#\n#..........#\n#..........#\n0100########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#.....&....#\n#....qr#...#\n#...***#...#\n#....ppp...#\n#..........#\n#..........#\n#..........#\n0101########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#....***...#\n#..........#\n#......&...#\n#...***....#\n#..........#\n#..........#\n#..........#\n0110########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#...***....#\n#...*&*....#\n#...***....#\n#..........#\n#..........#\n#..........#\n0111########\n\n",[0,1,1,2,2,3,3,0,0,0,0,3,0],"background walls:0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background lv3 walls:1,background wall0:2,background gem1:3,background gem4:4,background gem3:5,background gem2:6,6,3,6,\n6,5,background gem5:7,5,6,4,5,0,2,6,3,5,\n7,6,4,3,7,5,4,5,5,6,5,0,\n2,3,5,7,5,4,6,7,6,7,3,background gem4 target:8,\n6,7,6,0,2,4,7,3,4,4,3,3,\n4,3,7,background gem2 target:9,5,6,6,0,2,4,4,5,\n7,5,4,7,4,6,6,background gem5 target:10,3,4,3,0,\n2,5,7,3,3,6,7,4,3,3,4,9,\n6,4,4,0,2,6,4,4,5,4,background player:11,5,\n3,4,7,8,5,7,7,0,2,5,4,7,\n5,6,5,3,7,7,3,background gem3 target:12,3,4,6,0,\n2,4,5,7,3,4,6,5,4,6,6,4,\n3,7,5,0,2,3,6,6,4,6,6,3,\n7,7,4,5,5,7,3,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,\n",3,"1627778784846.1284"] + ["title JAM3 Game\nauthor chaotic_iak\n\nagain_interval 0.07\nkey_repeat_interval 0.2\nrun_rules_on_level_start\nverbose_logging\n\n========\nOBJECTS\n========\n(need better sprites)\n\nbackground\nwhite\n\ntarget\n#9ff\n\nplayer\nblack\n.....\n..0..\n.000.\n..0..\n.....\n\ngem1\n#c00 #f33\n.....\n.001.\n.000.\n.000.\n.....\n\ngem2\n#990 #cc3\n.....\n.001.\n.000.\n.000.\n.....\n\ngem3\n#0c0 #3f3\n.....\n.001.\n.000.\n.000.\n.....\n\ngem4\n#00c #33f\n.....\n.001.\n.000.\n.000.\n.....\n\ngem5\n#909 #c3c\n.....\n.001.\n.000.\n.000.\n.....\n\ngem1pop\n#c00\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\ngem2pop\n#990\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\ngem3pop\n#0c0\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\ngem4pop\n#00c\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\ngem5pop\n#909\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\nwall0\n#333 white\n00000\n00000\n00000\n00000\n00100\n\nwall1\n#333 #f33\n00000\n00000\n00000\n00000\n00100\n\nwall2\n#333 #cc3\n00000\n00000\n00000\n00000\n00100\n\nwall3\n#333 #3f3\n00000\n00000\n00000\n00000\n00100\n\nwall4\n#333 #33f\n00000\n00000\n00000\n00000\n00100\n\nwall5\n#333 #c3c\n00000\n00000\n00000\n00000\n00100\n\nwalls\n#333\n\nlv1\nwhite\n.00..\n..0..\n..0..\n..0..\n.000.\n\nlv2\nwhite\n.000.\n...0.\n.000.\n.0...\n.000.\n\nlv3\nwhite\n.000.\n...0.\n.000.\n...0.\n.000.\n\nlv4\nwhite\n.0.0.\n.0.0.\n.000.\n...0.\n...0.\n\nlv5\nwhite\n.000.\n.0...\n.000.\n...0.\n.000.\n\nlv6\nwhite\n.000.\n.0...\n.000.\n.0.0.\n.000.\n\nlv7\nwhite\n.000.\n...0.\n..0..\n..0..\n..0..\n\nlv8\nwhite\n.000.\n.0.0.\n.000.\n.0.0.\n.000.\n\nlv9\nwhite\n.000.\n.0.0.\n.000.\n...0.\n.000.\n\nlv10\nwhite\n0.000\n0.0.0\n0.0.0\n0.0.0\n0.000\n\nlv11\nwhite\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n\nlv12\nwhite\n0.000\n0...0\n0.000\n0.0..\n0.000\n\nlv13\nwhite\n0.000\n0...0\n0.000\n0...0\n0.000\n\nlv14\nwhite\n0.0.0\n0.0.0\n0.000\n0...0\n0...0\n\nlv15\nwhite\n0.000\n0.0..\n0.000\n0...0\n0.000\n\nlvbin0\nred\n\nlvbin1\nblue\n\nstartlevel\nblack\n\npop\nblack\n\nremnant\nblack\n\nresume\nblack\n\nwinmarker\nblack\n\n=======\nLEGEND\n=======\n. = background\n* = target\n# = walls\np = wall0\nq = wall1\nw = wall2\ne = wall3\nr = wall4\nt = wall5\n& = player and startlevel\n0 = walls and lvbin0\n1 = walls and lvbin1\n\ngem = gem1 or gem2 or gem3 or gem4 or gem5\ngempop = gem1pop or gem2pop or gem3pop or gem4pop or gem5pop\nmovable = player or gem\nwall = walls or wall0 or wall1 or wall2 or wall3 or wall4 or wall5\nobject = player or gem or gempop or wall\nmarker = startlevel or pop or remnant or winmarker\nlv = lv1 or lv2 or lv3 or lv4 or lv5 or lv6 or lv7 or lv8 or lv9 or lv10 or lv11 or lv12 or lv13 or lv14 or lv15\n\n=======\nSOUNDS\n=======\ngempop create 66716500\nendlevel 54419303\n\n================\nCOLLISIONLAYERS\n================\nresume\nmarker\nbackground\ntarget\nwall, player\ngem, gempop\nlv, lvbin0, lvbin1\n\n======\nRULES\n======\n(start level: generate gems)\n[startlevel][no wall no player no gem] -> [startlevel][random gem]\nstartloop\n [startlevel][gem1|gem1|gem1] -> [startlevel][random gem|random gem|random gem]\n+[startlevel][gem2|gem2|gem2] -> [startlevel][random gem|random gem|random gem]\n+[startlevel][gem3|gem3|gem3] -> [startlevel][random gem|random gem|random gem]\n+[startlevel][gem4|gem4|gem4] -> [startlevel][random gem|random gem|random gem]\n+[startlevel][gem5|gem5|gem5] -> [startlevel][random gem|random gem|random gem]\ndown [startlevel][wall1|gem no gem1] -> [startlevel][wall1|gem1]\n+ [startlevel][wall2|gem no gem2] -> [startlevel][wall2|gem2]\n+ [startlevel][wall3|gem no gem3] -> [startlevel][wall3|gem3]\n+ [startlevel][wall4|gem no gem4] -> [startlevel][wall4|gem4]\n+ [startlevel][wall5|gem no gem5] -> [startlevel][wall5|gem5]\nendloop\n\n(start level: generate level number)\nright [startlevel][lvbin0|lvbin0|lvbin0|lvbin1] -> [startlevel][lv1|||]\nright [startlevel][lvbin0|lvbin0|lvbin1|lvbin0] -> [startlevel][lv2|||]\nright [startlevel][lvbin0|lvbin0|lvbin1|lvbin1] -> [startlevel][lv3|||]\nright [startlevel][lvbin0|lvbin1|lvbin0|lvbin0] -> [startlevel][lv4|||]\nright [startlevel][lvbin0|lvbin1|lvbin0|lvbin1] -> [startlevel][lv5|||]\nright [startlevel][lvbin0|lvbin1|lvbin1|lvbin0] -> [startlevel][lv6|||]\nright [startlevel][lvbin0|lvbin1|lvbin1|lvbin1] -> [startlevel][lv7|||]\nright [startlevel][lvbin1|lvbin0|lvbin0|lvbin0] -> [startlevel][lv8|||]\nright [startlevel][lvbin1|lvbin0|lvbin0|lvbin1] -> [startlevel][lv9|||]\nright [startlevel][lvbin1|lvbin0|lvbin1|lvbin0] -> [startlevel][lv10|||]\nright [startlevel][lvbin1|lvbin0|lvbin1|lvbin1] -> [startlevel][lv11|||]\nright [startlevel][lvbin1|lvbin1|lvbin0|lvbin0] -> [startlevel][lv12|||]\nright [startlevel][lvbin1|lvbin1|lvbin0|lvbin1] -> [startlevel][lv13|||]\nright [startlevel][lvbin1|lvbin1|lvbin1|lvbin0] -> [startlevel][lv14|||]\nright [startlevel][lvbin1|lvbin1|lvbin1|lvbin1] -> [startlevel][lv15|||]\n[startlevel] -> []\n\n(move)\n[> player|gem] -> [gem|player]\n\n(drop gems)\n[resume] -> []\n[lv][remnant] -> [lv resume][]\ndown [movable|no object][lv] -> [> movable|][lv resume]\ndown [movable|> movable][lv] -> [> movable|> movable][lv resume]\nlate down [resume][wall0|no object] -> [resume][wall0|random gem] again\nlate down [resume][wall1|no object] -> [resume][wall1|gem1] again\nlate down [resume][wall2|no object] -> [resume][wall2|gem2] again\nlate down [resume][wall3|no object] -> [resume][wall3|gem3] again\nlate down [resume][wall4|no object] -> [resume][wall4|gem4] again\nlate down [resume][wall5|no object] -> [resume][wall5|gem5] again\n\n(pop, with animation)\n[gempop] -> [remnant] again\n[gem1 pop] -> [gem1pop]\n[gem2 pop] -> [gem2pop]\n[gem3 pop] -> [gem3pop]\n[gem4 pop] -> [gem4pop]\n[gem5 pop] -> [gem5pop]\n[gempop] -> again\n\n(win check)\nlate [lv] -> [lv winmarker]\nlate [winmarker][target player] -> [][target player]\nlate [winmarker][target gem] -> [][target gem]\nlate [winmarker][target gem1pop][target gem2pop] -> [][target gem1pop][target gem2pop]\nlate [winmarker][target gem1pop][target gem3pop] -> [][target gem1pop][target gem3pop]\nlate [winmarker][target gem1pop][target gem4pop] -> [][target gem1pop][target gem4pop]\nlate [winmarker][target gem1pop][target gem5pop] -> [][target gem1pop][target gem5pop]\nlate [winmarker][target gem2pop][target gem3pop] -> [][target gem2pop][target gem3pop]\nlate [winmarker][target gem2pop][target gem4pop] -> [][target gem2pop][target gem4pop]\nlate [winmarker][target gem2pop][target gem5pop] -> [][target gem2pop][target gem5pop]\nlate [winmarker][target gem3pop][target gem4pop] -> [][target gem3pop][target gem4pop]\nlate [winmarker][target gem3pop][target gem5pop] -> [][target gem3pop][target gem5pop]\nlate [winmarker][target gem4pop][target gem5pop] -> [][target gem4pop][target gem5pop]\n\n(prepare popping)\nlate [lv no resume][gem1|gem1|gem1] -> [lv][gem1 pop|gem1 pop|gem1 pop]\nlate [lv no resume][gem2|gem2|gem2] -> [lv][gem2 pop|gem2 pop|gem2 pop]\nlate [lv no resume][gem3|gem3|gem3] -> [lv][gem3 pop|gem3 pop|gem3 pop]\nlate [lv no resume][gem4|gem4|gem4] -> [lv][gem4 pop|gem4 pop|gem4 pop]\nlate [lv no resume][gem5|gem5|gem5] -> [lv][gem5 pop|gem5 pop|gem5 pop]\nlate [gem pop] -> again\n\n==============\nWINCONDITIONS\n==============\nsome winmarker\n\n=======\nLEVELS\n=======\nmessage JUST ANOTHER MATCH 3 GAME\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#.....&....#\n#..........#\n#..........#\n#...****...#\n#..........#\n#..........#\n#..........#\n0001########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#....*.....#\n#...****...#\n#....*.....#\n#....*.&...#\n#..........#\n#..........#\n#..........#\n0010########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#.....&....#\n#..........#\n#..........#\n#..******..#\n#..........#\n#..........#\n#..........#\n0011########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#...#*#....#\n#...#*#....#\n#...#*#....#\n#...ppp&...#\n#..........#\n#..........#\n#..........#\n0100########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#.....&....#\n#....qr#...#\n#...***#...#\n#....ppp...#\n#..........#\n#..........#\n#..........#\n0101########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#....***...#\n#..........#\n#......&...#\n#...***....#\n#..........#\n#..........#\n#..........#\n0110########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#...***....#\n#...*&*....#\n#...***....#\n#..........#\n#..........#\n#..........#\n0111########\n\n", [0, 1, 1, 2, 2, 3, 3, 0, 0, 0, 0, 3, 0], "background walls:0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background lv3 walls:1,background wall0:2,background gem1:3,background gem4:4,background gem3:5,background gem2:6,6,3,6,\n6,5,background gem5:7,5,6,4,5,0,2,6,3,5,\n7,6,4,3,7,5,4,5,5,6,5,0,\n2,3,5,7,5,4,6,7,6,7,3,background gem4 target:8,\n6,7,6,0,2,4,7,3,4,4,3,3,\n4,3,7,background gem2 target:9,5,6,6,0,2,4,4,5,\n7,5,4,7,4,6,6,background gem5 target:10,3,4,3,0,\n2,5,7,3,3,6,7,4,3,3,4,9,\n6,4,4,0,2,6,4,4,5,4,background player:11,5,\n3,4,7,8,5,7,7,0,2,5,4,7,\n5,6,5,3,7,7,3,background gem3 target:12,3,4,6,0,\n2,4,5,7,3,4,6,5,4,6,6,4,\n3,7,5,0,2,3,6,6,4,6,6,3,\n7,7,4,5,5,7,3,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,\n", 3, "1627778784846.1284"] ], [ `gallery: dharma dojo demake`, - ["(version 1.2.1)\ntitle Dharma Dojo demake\nauthor Metro [cloned by CHz]\nhomepage quiteajolt.com\n\nagain_interval 0.03\nrun_rules_on_level_start\n\n\n========\nOBJECTS\n========\n\nBackground \nGreen \n\nWall \nBrown\n\nCeiling\nBrown\n\n\nPlayer\nBlack\n...00\n..000\n..000\n..0..\n.0...\n\nDeadPlayer\nBlack\n...00\n..000\n..000\n..0..\n.0...\n\nPlayerSmacking\nBlack\n000..\n0000.\n000..\n.0...\n.0...\n\n\nBlock1\nRed\n.000.\n00000\n00000\n00000\n.000.\n\nBlock2\nBlue\n..0..\n.000.\n00000\n.000.\n..0..\n\nBlock3\nYellow\n..0..\n.000.\n.000.\n00000\n00000\n\nBlock4\nWhite\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nBlock5\nDarkBrown\n..0..\n..0..\n00000\n..0..\n..0..\n\nBlock6\nLightBlue\n00000\n00000\n.....\n00000\n00000\n\nBlock7\nOrange\n00.00\n00.00\n00.00\n00.00\n00.00\n\n\nChute\nGray Black\n01110\n01110\n01110\n01110\n01110\n\nFeeder\nGray Black\n01110\n01111\n01111\n01111\n00000\n\nHopper\nGray Black\n00000\n11111\n11111\n11111\n00000\n\n\nSetsToken1\nTransparent\n\nSetsToken2\nTransparent\n\nSetsToken3\nTransparent\n\nSetsToken4\nTransparent\n\nSetsToken5\nTransparent\n\nSetsToken6\nTransparent\n\nSetsToken7\nTransparent\n\nBlockToken\nTransparent\n\nField\nTransparent\n\n\nAssertGravityToken\nTransparent\n\nMatchTokenPositive\nTransparent\n\nMatchTokenNegative\nTransparent\n\nCheckMatchToken\nTransparent\n\n\nDeathCoverSeed1\nTransparent\n\nDeathCoverSeed2\nTransparent\n\nDeathCover1\nRed\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\nDeathCover1Token\nTransparent\n\nDeathCover2\nRed\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nDeathCover2Token\nTransparent\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nx = Ceiling\n\nP = Player\n\n| = Chute\n- = Hopper\n1 = Feeder and SetsToken1\n2 = Feeder and SetsToken1 and SetsToken2\n3 = Feeder and SetsToken1 and SetsToken2 and SetsToken3\n4 = Feeder and SetsToken1 and SetsToken2 and SetsToken3 and SetsToken4\n5 = Feeder and SetsToken1 and SetsToken2 and SetsToken3 and SetsToken4 and SetsToken5\n6 = Feeder and SetsToken1 and SetsToken2 and SetsToken3 and SetsToken4 and SetsToken5 and SetsToken6\n7 = Feeder and SetsToken1 and SetsToken2 and SetsToken3 and SetsToken4 and SetsToken5 and SetsToken6 and SetsToken7\nSetsToken = SetsToken1 or SetsToken2 or SetsToken3 or SetsToken4 or SetsToken5 or SetsToken6 or SetsToken7\n\nF = Field\n\nBlock = Block1 or Block2 or Block3 or Block4 or Block5 or Block6 or Block7\n\nMatchToken = MatchTokenPositive or MatchTokenNegative\n\nDeathCover = DeathCoverSeed1 or DeathCoverSeed2 or DeathCover1 or DeathCover2\nDeathCoverToken = DeathCover1Token or DeathCover2Token\n\n\n=======\nSOUNDS\n=======\n\nsfx0 23301902 (death)\nsfx1 79689507 (smack)\nsfx2 69201902 (clear)\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nCeiling Chute Feeder Hopper\nWall Block Field\nPlayer DeadPlayer PlayerSmacking\nBlockToken AssertGravityToken MatchToken CheckMatchToken DeathCover DeathCoverToken\nSetsToken1\nSetsToken2\nSetsToken3\nSetsToken4\nSetsToken5\nSetsToken6\nSetsToken7\n\n\n======\nRULES \n====== \n\n(================\n LEVEL GENERATION\n ================)\n\n(Randomly splat down N blocks for each requested color, where N is the length of the hopper.)\n[SetsToken1] [Hopper] -> [SetsToken1] [Hopper BlockToken]\nstartloop\nrandom [Field] [BlockToken] [SetsToken1] -> [Block1] [BlockToken] [SetsToken1]\nrandom [Field] [BlockToken] [SetsToken2] -> [Block2] [BlockToken] [SetsToken2]\nrandom [Field] [BlockToken] [SetsToken3] -> [Block3] [BlockToken] [SetsToken3]\nrandom [Field] [BlockToken] [SetsToken4] -> [Block4] [BlockToken] [SetsToken4]\nrandom [Field] [BlockToken] [SetsToken5] -> [Block5] [BlockToken] [SetsToken5]\nrandom [Field] [BlockToken] [SetsToken6] -> [Block6] [BlockToken] [SetsToken6]\nrandom [Field] [BlockToken] [SetsToken7] -> [Block7] [BlockToken] [SetsToken7]\nrandom [BlockToken] -> []\nendloop\n[SetsToken] -> [no SetsToken]\n\n(Shove all the blocks down and then to the left.)\nDOWN [Block | Field] -> [Field | Block]\nRIGHT [Field | Block] -> [Block | Field]\n[Field] -> []\n\n\n(===============\n PLAYER MOVEMENT\n ===============)\n\n(Player can only move up and down, and they'll automatically snap to the end of the row. If the player tries to move into the frame, then cancel the move.)\n[Left Player] -> [Action Player]\nlate RIGHT [no Block no Chute | Player] -> [Player | ]\nlate RIGHT [Player Block | ] -> [Block | Player]\nlate [Player Feeder] -> cancel\nlate [Player Wall] -> cancel\nlate [Player Ceiling] -> cancel\n\n\n(============\n ROW SMACKING\n ============)\n\n(These rules are listed in reverse order so that they can happen sequentially with again statements for animation.)\n\n(4. When the receptacle is full, clear it if it's all the same color or push the stack up if it's mixed.)\nRIGHT [Feeder | MatchToken] [PlayerSmacking] -> [Feeder | MatchToken] [PlayerSmacking CheckMatchToken]\n[MatchTokenNegative] [PlayerSmacking CheckMatchToken] -> [MatchTokenNegative] [PlayerSmacking]\n[PlayerSmacking CheckMatchToken] [Block MatchToken] -> [PlayerSmacking CheckMatchToken] [] sfx2\n[PlayerSmacking CheckMatchToken] -> [Player]\nRIGHT [Feeder | Block MatchToken] -> [Feeder | ^ Block MatchToken]\nRIGHT [^ Block Hopper | Block] -> [^ Block Hopper | ^ Block]\nDOWN [Block | < Block] -> [< Block | < Block]\nDOWN [PlayerSmacking | < Block] -> [< PlayerSmacking | < Block]\nlate [MatchToken no Block] [PlayerSmacking] -> [] [Player] again\nlate [MatchToken no Block] -> [] \n\n(3. Pull the block in the chute to the right when it's at the bottom and check if its color matches the block it's next to.)\nRIGHT [Block no MatchToken | Hopper] -> [> Block no MatchToken | Hopper] again\nlate RIGHT [PlayerSmacking] [Block no MatchToken | Wall] -> [Player] [Block MatchTokenPositive | Wall]\nlate RIGHT [PlayerSmacking] [Block1 no MatchToken | Block1 MatchTokenPositive] -> [Player] [Block1 MatchTokenPositive | Block1 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block2 no MatchToken | Block2 MatchTokenPositive] -> [Player] [Block2 MatchTokenPositive | Block2 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block3 no MatchToken | Block3 MatchTokenPositive] -> [Player] [Block3 MatchTokenPositive | Block3 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block4 no MatchToken | Block4 MatchTokenPositive] -> [Player] [Block4 MatchTokenPositive | Block4 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block5 no MatchToken | Block5 MatchTokenPositive] -> [Player] [Block5 MatchTokenPositive | Block5 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block6 no MatchToken | Block6 MatchTokenPositive] -> [Player] [Block6 MatchTokenPositive | Block6 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block7 no MatchToken | Block7 MatchTokenPositive] -> [Player] [Block7 MatchTokenPositive | Block7 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block no MatchToken | Block MatchToken] -> [Player] [Block MatchTokenNegative | Block MatchToken]\n(When the block is moved into position, control is returned to the player above. But when the hopper is full, we still have stuff to do, so we'll cancel that.)\nlate RIGHT [Player] [Feeder | Block] -> [PlayerSmacking] [Feeder | Block]\n\n(2. Assert gravity: pull the stack and the block in the chute down.)\nDOWN [AssertGravityToken] [Block | no Wall no Hopper] -> [AssertGravityToken] [> Block | ] again\n[AssertGravityToken] -> []\n(The AssertGravityToken rule in the step 1 block below will continue to trigger until the block reaches the bottom left corner, repeating this block.)\n\n(1. Push the row to the left.)\nRIGHT [Block | Action Player] -> [Block | Action PlayerSmacking] sfx1\nRIGHT [Block | Action PlayerSmacking] -> [< Block | Action PlayerSmacking]\nRIGHT [Block | < Block] -> [< Block | < Block]\nlate [Block Chute] [PlayerSmacking] -> [Block Chute] [PlayerSmacking AssertGravityToken] again\n\n\n(=========\n GAME OVER\n =========)\n\n(If a block hits the kill zone at the top, cover the screen with the death overlay and kill the player.)\nrandom [Block Ceiling no DeathCover] -> [Block Ceiling DeathCoverSeed1]\nstartloop\n[Block Ceiling DeathCoverSeed1 | Block Ceiling no DeathCover] -> [Block Ceiling DeathCoverSeed1 | Block Ceiling DeathCoverSeed2]\n[Block Ceiling DeathCoverSeed2 | Block Ceiling no DeathCover] -> [Block Ceiling DeathCoverSeed2 | Block Ceiling DeathCoverSeed1]\nendloop\n[DeathCoverSeed1 | no DeathCover] -> [DeathCoverSeed1 | DeathCover1Token]\n[DeathCoverSeed2 | no DeathCover] -> [DeathCoverSeed2 | DeathCover2Token]\n\n[Player] [DeathCoverToken] -> [DeadPlayer] [DeathCoverToken] sfx0\n[DeathCover1 | no DeathCover] -> [DeathCover1 | DeathCover2Token]\n[DeathCover2 | no DeathCover] -> [DeathCover2 | DeathCover1Token]\nlate [DeathCover1Token] -> [DeathCover1 no DeathCover1Token] again\nlate [DeathCover2Token] -> [DeathCover2 no DeathCover2Token] again\n \n\n==============\nWINCONDITIONS\n==============\n\nNo Block\n\n\n======= \nLEVELS\n=======\n\nmessage Move up and down with the arrows and hammer a row with X.\nmessage Fill the hopper with blocks of the same color to clear them. A mismatched row will be pushed back up into the stack.\nmessage Clear all the blocks to proceed.\n\nxxxxxxx\n|.....#\n|.....#\n|.....#\n|.....#\n|.....#\n|.....#\n|FFFF.#\n|FFFF.#\n|FFFF.#\n|FFFFP#\n4---###\n\nmessage Don't let blocks hit the ceiling!\nmessage Z undoes moves. R will reset with a new puzzle.\n\nxxxxxxxx\n|......#\n|......#\n|FFFFF.#\n|FFFFF.#\n|FFFFF.#\n|FFFFF.#\n|FFFFFP#\n5----###\n\nxxxxxxxxx\n|.......#\n|.......#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFFP#\n6-----###\n\nxxxxxxxxxx\n|........#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFFP#\n7------###\n\nxxxxxxxxx\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFFP#\n4------##\n\nmessage :)\n",[0,1,0,1,1,2,1,2,1,1,2,1,0,0,1,1],"background ceiling:0,background chute:1,1,1,1,1,1,\n1,1,1,1,background feeder:2,0,background:3,\n3,3,3,3,3,background block2:4,background block1:5,\n4,background block4:6,background hopper:7,0,3,3,3,\n3,3,3,background player:8,6,6,5,\n7,0,3,3,3,3,3,\n3,3,3,3,5,7,0,\n3,3,3,3,3,3,3,\n3,3,4,background wall:9,0,3,3,\n3,3,3,3,3,3,3,\n3,9,0,9,9,9,9,\n9,9,9,9,9,9,9,\n",3,"1627778809256.5396"] + ["(version 1.2.1)\ntitle Dharma Dojo demake\nauthor Metro [cloned by CHz]\nhomepage quiteajolt.com\n\nagain_interval 0.03\nrun_rules_on_level_start\n\n\n========\nOBJECTS\n========\n\nBackground \nGreen \n\nWall \nBrown\n\nCeiling\nBrown\n\n\nPlayer\nBlack\n...00\n..000\n..000\n..0..\n.0...\n\nDeadPlayer\nBlack\n...00\n..000\n..000\n..0..\n.0...\n\nPlayerSmacking\nBlack\n000..\n0000.\n000..\n.0...\n.0...\n\n\nBlock1\nRed\n.000.\n00000\n00000\n00000\n.000.\n\nBlock2\nBlue\n..0..\n.000.\n00000\n.000.\n..0..\n\nBlock3\nYellow\n..0..\n.000.\n.000.\n00000\n00000\n\nBlock4\nWhite\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nBlock5\nDarkBrown\n..0..\n..0..\n00000\n..0..\n..0..\n\nBlock6\nLightBlue\n00000\n00000\n.....\n00000\n00000\n\nBlock7\nOrange\n00.00\n00.00\n00.00\n00.00\n00.00\n\n\nChute\nGray Black\n01110\n01110\n01110\n01110\n01110\n\nFeeder\nGray Black\n01110\n01111\n01111\n01111\n00000\n\nHopper\nGray Black\n00000\n11111\n11111\n11111\n00000\n\n\nSetsToken1\nTransparent\n\nSetsToken2\nTransparent\n\nSetsToken3\nTransparent\n\nSetsToken4\nTransparent\n\nSetsToken5\nTransparent\n\nSetsToken6\nTransparent\n\nSetsToken7\nTransparent\n\nBlockToken\nTransparent\n\nField\nTransparent\n\n\nAssertGravityToken\nTransparent\n\nMatchTokenPositive\nTransparent\n\nMatchTokenNegative\nTransparent\n\nCheckMatchToken\nTransparent\n\n\nDeathCoverSeed1\nTransparent\n\nDeathCoverSeed2\nTransparent\n\nDeathCover1\nRed\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\nDeathCover1Token\nTransparent\n\nDeathCover2\nRed\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nDeathCover2Token\nTransparent\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nx = Ceiling\n\nP = Player\n\n| = Chute\n- = Hopper\n1 = Feeder and SetsToken1\n2 = Feeder and SetsToken1 and SetsToken2\n3 = Feeder and SetsToken1 and SetsToken2 and SetsToken3\n4 = Feeder and SetsToken1 and SetsToken2 and SetsToken3 and SetsToken4\n5 = Feeder and SetsToken1 and SetsToken2 and SetsToken3 and SetsToken4 and SetsToken5\n6 = Feeder and SetsToken1 and SetsToken2 and SetsToken3 and SetsToken4 and SetsToken5 and SetsToken6\n7 = Feeder and SetsToken1 and SetsToken2 and SetsToken3 and SetsToken4 and SetsToken5 and SetsToken6 and SetsToken7\nSetsToken = SetsToken1 or SetsToken2 or SetsToken3 or SetsToken4 or SetsToken5 or SetsToken6 or SetsToken7\n\nF = Field\n\nBlock = Block1 or Block2 or Block3 or Block4 or Block5 or Block6 or Block7\n\nMatchToken = MatchTokenPositive or MatchTokenNegative\n\nDeathCover = DeathCoverSeed1 or DeathCoverSeed2 or DeathCover1 or DeathCover2\nDeathCoverToken = DeathCover1Token or DeathCover2Token\n\n\n=======\nSOUNDS\n=======\n\nsfx0 23301902 (death)\nsfx1 79689507 (smack)\nsfx2 69201902 (clear)\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nCeiling Chute Feeder Hopper\nWall Block Field\nPlayer DeadPlayer PlayerSmacking\nBlockToken AssertGravityToken MatchToken CheckMatchToken DeathCover DeathCoverToken\nSetsToken1\nSetsToken2\nSetsToken3\nSetsToken4\nSetsToken5\nSetsToken6\nSetsToken7\n\n\n======\nRULES \n====== \n\n(================\n LEVEL GENERATION\n ================)\n\n(Randomly splat down N blocks for each requested color, where N is the length of the hopper.)\n[SetsToken1] [Hopper] -> [SetsToken1] [Hopper BlockToken]\nstartloop\nrandom [Field] [BlockToken] [SetsToken1] -> [Block1] [BlockToken] [SetsToken1]\nrandom [Field] [BlockToken] [SetsToken2] -> [Block2] [BlockToken] [SetsToken2]\nrandom [Field] [BlockToken] [SetsToken3] -> [Block3] [BlockToken] [SetsToken3]\nrandom [Field] [BlockToken] [SetsToken4] -> [Block4] [BlockToken] [SetsToken4]\nrandom [Field] [BlockToken] [SetsToken5] -> [Block5] [BlockToken] [SetsToken5]\nrandom [Field] [BlockToken] [SetsToken6] -> [Block6] [BlockToken] [SetsToken6]\nrandom [Field] [BlockToken] [SetsToken7] -> [Block7] [BlockToken] [SetsToken7]\nrandom [BlockToken] -> []\nendloop\n[SetsToken] -> [no SetsToken]\n\n(Shove all the blocks down and then to the left.)\nDOWN [Block | Field] -> [Field | Block]\nRIGHT [Field | Block] -> [Block | Field]\n[Field] -> []\n\n\n(===============\n PLAYER MOVEMENT\n ===============)\n\n(Player can only move up and down, and they'll automatically snap to the end of the row. If the player tries to move into the frame, then cancel the move.)\n[Left Player] -> [Action Player]\nlate RIGHT [no Block no Chute | Player] -> [Player | ]\nlate RIGHT [Player Block | ] -> [Block | Player]\nlate [Player Feeder] -> cancel\nlate [Player Wall] -> cancel\nlate [Player Ceiling] -> cancel\n\n\n(============\n ROW SMACKING\n ============)\n\n(These rules are listed in reverse order so that they can happen sequentially with again statements for animation.)\n\n(4. When the receptacle is full, clear it if it's all the same color or push the stack up if it's mixed.)\nRIGHT [Feeder | MatchToken] [PlayerSmacking] -> [Feeder | MatchToken] [PlayerSmacking CheckMatchToken]\n[MatchTokenNegative] [PlayerSmacking CheckMatchToken] -> [MatchTokenNegative] [PlayerSmacking]\n[PlayerSmacking CheckMatchToken] [Block MatchToken] -> [PlayerSmacking CheckMatchToken] [] sfx2\n[PlayerSmacking CheckMatchToken] -> [Player]\nRIGHT [Feeder | Block MatchToken] -> [Feeder | ^ Block MatchToken]\nRIGHT [^ Block Hopper | Block] -> [^ Block Hopper | ^ Block]\nDOWN [Block | < Block] -> [< Block | < Block]\nDOWN [PlayerSmacking | < Block] -> [< PlayerSmacking | < Block]\nlate [MatchToken no Block] [PlayerSmacking] -> [] [Player] again\nlate [MatchToken no Block] -> [] \n\n(3. Pull the block in the chute to the right when it's at the bottom and check if its color matches the block it's next to.)\nRIGHT [Block no MatchToken | Hopper] -> [> Block no MatchToken | Hopper] again\nlate RIGHT [PlayerSmacking] [Block no MatchToken | Wall] -> [Player] [Block MatchTokenPositive | Wall]\nlate RIGHT [PlayerSmacking] [Block1 no MatchToken | Block1 MatchTokenPositive] -> [Player] [Block1 MatchTokenPositive | Block1 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block2 no MatchToken | Block2 MatchTokenPositive] -> [Player] [Block2 MatchTokenPositive | Block2 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block3 no MatchToken | Block3 MatchTokenPositive] -> [Player] [Block3 MatchTokenPositive | Block3 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block4 no MatchToken | Block4 MatchTokenPositive] -> [Player] [Block4 MatchTokenPositive | Block4 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block5 no MatchToken | Block5 MatchTokenPositive] -> [Player] [Block5 MatchTokenPositive | Block5 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block6 no MatchToken | Block6 MatchTokenPositive] -> [Player] [Block6 MatchTokenPositive | Block6 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block7 no MatchToken | Block7 MatchTokenPositive] -> [Player] [Block7 MatchTokenPositive | Block7 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block no MatchToken | Block MatchToken] -> [Player] [Block MatchTokenNegative | Block MatchToken]\n(When the block is moved into position, control is returned to the player above. But when the hopper is full, we still have stuff to do, so we'll cancel that.)\nlate RIGHT [Player] [Feeder | Block] -> [PlayerSmacking] [Feeder | Block]\n\n(2. Assert gravity: pull the stack and the block in the chute down.)\nDOWN [AssertGravityToken] [Block | no Wall no Hopper] -> [AssertGravityToken] [> Block | ] again\n[AssertGravityToken] -> []\n(The AssertGravityToken rule in the step 1 block below will continue to trigger until the block reaches the bottom left corner, repeating this block.)\n\n(1. Push the row to the left.)\nRIGHT [Block | Action Player] -> [Block | Action PlayerSmacking] sfx1\nRIGHT [Block | Action PlayerSmacking] -> [< Block | Action PlayerSmacking]\nRIGHT [Block | < Block] -> [< Block | < Block]\nlate [Block Chute] [PlayerSmacking] -> [Block Chute] [PlayerSmacking AssertGravityToken] again\n\n\n(=========\n GAME OVER\n =========)\n\n(If a block hits the kill zone at the top, cover the screen with the death overlay and kill the player.)\nrandom [Block Ceiling no DeathCover] -> [Block Ceiling DeathCoverSeed1]\nstartloop\n[Block Ceiling DeathCoverSeed1 | Block Ceiling no DeathCover] -> [Block Ceiling DeathCoverSeed1 | Block Ceiling DeathCoverSeed2]\n[Block Ceiling DeathCoverSeed2 | Block Ceiling no DeathCover] -> [Block Ceiling DeathCoverSeed2 | Block Ceiling DeathCoverSeed1]\nendloop\n[DeathCoverSeed1 | no DeathCover] -> [DeathCoverSeed1 | DeathCover1Token]\n[DeathCoverSeed2 | no DeathCover] -> [DeathCoverSeed2 | DeathCover2Token]\n\n[Player] [DeathCoverToken] -> [DeadPlayer] [DeathCoverToken] sfx0\n[DeathCover1 | no DeathCover] -> [DeathCover1 | DeathCover2Token]\n[DeathCover2 | no DeathCover] -> [DeathCover2 | DeathCover1Token]\nlate [DeathCover1Token] -> [DeathCover1 no DeathCover1Token] again\nlate [DeathCover2Token] -> [DeathCover2 no DeathCover2Token] again\n \n\n==============\nWINCONDITIONS\n==============\n\nNo Block\n\n\n======= \nLEVELS\n=======\n\nmessage Move up and down with the arrows and hammer a row with X.\nmessage Fill the hopper with blocks of the same color to clear them. A mismatched row will be pushed back up into the stack.\nmessage Clear all the blocks to proceed.\n\nxxxxxxx\n|.....#\n|.....#\n|.....#\n|.....#\n|.....#\n|.....#\n|FFFF.#\n|FFFF.#\n|FFFF.#\n|FFFFP#\n4---###\n\nmessage Don't let blocks hit the ceiling!\nmessage Z undoes moves. R will reset with a new puzzle.\n\nxxxxxxxx\n|......#\n|......#\n|FFFFF.#\n|FFFFF.#\n|FFFFF.#\n|FFFFF.#\n|FFFFFP#\n5----###\n\nxxxxxxxxx\n|.......#\n|.......#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFFP#\n6-----###\n\nxxxxxxxxxx\n|........#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFFP#\n7------###\n\nxxxxxxxxx\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFFP#\n4------##\n\nmessage :)\n", [0, 1, 0, 1, 1, 2, 1, 2, 1, 1, 2, 1, 0, 0, 1, 1], "background ceiling:0,background chute:1,1,1,1,1,1,\n1,1,1,1,background feeder:2,0,background:3,\n3,3,3,3,3,background block2:4,background block1:5,\n4,background block4:6,background hopper:7,0,3,3,3,\n3,3,3,background player:8,6,6,5,\n7,0,3,3,3,3,3,\n3,3,3,3,5,7,0,\n3,3,3,3,3,3,3,\n3,3,4,background wall:9,0,3,3,\n3,3,3,3,3,3,3,\n3,9,0,9,9,9,9,\n9,9,9,9,9,9,9,\n", 3, "1627778809256.5396"] ], [ `gallery: vines`, - ["title Vines\nauthor Stefan Peeters\n\nrealtime_interval .1\n\nzoomscreen 11x9\n\n(verbose_logging)\nrun_rules_on_level_start\nnoaction\n\n========\nOBJECTS\n========\n\nBackground \n#404040\n\nTarget\ntransparent\n\nVineUpEnd\nGreen darkgreen\n.....\n..1..\n.10..\n..1..\n..01.\n\nVineLeftEnd\nGreen darkgreen\n.....\n...0.\n..111\n.....\n.....\n\nVineRightEnd\nGreen darkgreen\n.....\n.0...\n011..\n.....\n.....\n\nVineLeftUp\nGreen darkgreen\n..1..\n.10..\n..011\n..1..\n.....\n\nVineRightUp\nGreen darkgreen\n..1..\n..1..\n1101.\n.1...\n.....\n\nVineUpUp\nGreen darkgreen\n.11..\n..01.\n..1..\n.10..\n..1..\n\nVineUpLeft\nGreen darkgreen\n.....\n.1...\n101..\n..01.\n..1..\n\nVineUpRight\nGreen darkgreen\n.....\n...1.\n..101\n.10.0\n..1..\n\nLadder\nlightbrown brown\n0...0\n0...0\n01110\n0...0\n01110\n\nPlatform\nBROWN\n00000\n.....\n.....\n.....\n.....\n\nWall\n#4d2700 #663300 #804100\n00000\n11111\n22222\n00000\n11111\n\nGlass\nWhite LightBlue\n00010\n1...0\n0...1\n0...0\n00101\n\nPlayer \nRed Brown Blue\n.000.\n.111.\n12021\n.222.\n.2.2.\n\nBox\nBROWN darkbrown lightBrown\n00000\n02110\n01210\n01120\n00000\n\nDirt\nBrown\n\nlightSource\ntransparent\n\nLightRight\nyellow\n00000\n.0000\n..000\n...00\n....0\n\nLightRightDown\nyellow\n0....\n00...\n000..\n0000.\n00000\n\nLightLeft\nyellow\n00000\n0000.\n000..\n00...\n0....\n\nLightLeftDown\nyellow\n....0\n...00\n..000\n.0000\n00000\n\nPot\nbrown\n00000\n00000\n.000.\n.000.\n.000.\n\nCheck\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n| = VineUpEnd\nH = Ladder\nT = Ladder and Platform\n_ = platform\nW = Wall\nD = Dirt\nB = Box\nP = Player\nO = Target\nG = Glass\nL = lightSource\nE = Glass and LightSource\nU = Pot\nC = Check\n\nVineEnd = VineLeftEnd or VineRightEnd or VineUpEnd\nVine = VineEnd or VineLeftUp or VineRightUp or VineUpUp or VineUpLeft or VineUpRight\n\nLight = LightRight or LightRightDown or LightLeft or LightLeftDown\nLightBlocker = Box or Wall\nVineBlocker = Box or Wall or Glass or Vine\n\nPushAble = Box\nClimable = Vine or Ladder\nFallAble = Box\nFloor = Wall or Platform or Player or Box\n\n=======\nSOUNDS\n=======\n\nBox move 67547707\nPlayer move horizontal 5015507\nplayer move vertical 54490507\n\nSfx0 85068307\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nLightSource\nLightRight\nLightRightDown\nLightLeft\nLightLeftDown\nTarget\nVine\nLadder\nPlatform\nCheck\nPlayer,Box, Wall, Glass, Dirt, Pot\n\n======\nRULES \n======\n\n[Player Check] -> [Player] checkpoint\n\n(Movement)\n[up Player no Climable] -> [Player]\nup [> Player Climable no Floor|no Climable] -> [Player Climable|]\ndown [> Player|Floor no Climable] -> [Player|Floor]\n\nhorizontal [> Player | PushAble] -> [> Player|> PushAble]\n\n(Gravity)\ndown [stationary Player no Climable | no Floor] -> [> Player|]\ndown [stationary FallAble | no Floor] -> [> FallAble|]\nlate down [Player no Climable | no Floor] -> again\nlate down [FallAble | no Floor] -> again\n\n(Light creation)\nlate right [LightSource no LightBlocker no LightRightDown] -> [LightSource LightRightDown]\n+ late right [LightRight|no LightRightDown no LightBlocker] -> [LightRight|LightRightDown] again\n+ late down [LightRightDown|no LightRight no LightBlocker] -> [LightRightDown|LightRight] again\n+ late left [LightLeft|no LightLeftDown no LightBlocker] -> [LightLeft|LightLeftDown] again\n+ late down [LightLeftDown|no LightLeft no LightBlocker] -> [LightLeftDown|LightLeft] again\n\n(Light removal)\nlate right [LightBlocker Light] -> [LightBlocker]\n+ late right [no LightRight|LightRightDown no lightSource] -> [|]\n+ late down [no LightRightDown|LightRight] -> [|]\n+ late left [no LightLeft|LightLeftDown] -> [|]\n+ late down [no LightLeftDown|LightLeft] -> [|]\n\n(Vine growth)\n\nup [VineEnd|Light no VineBlocker] -> [> VineEnd|Light] again Sfx0\nhorizontal [stationary VineUpEnd|Light no VineBlocker] -> [> VineUpEnd|Light] again Sfx0\n\nup [> VineUpEnd|] -> [VineUpUp | VineUpEnd]\nup [> VineLeftEnd|] -> [VineLeftUp | VineUpEnd]\nup [> VineRightEnd|] -> [VineRightUp| VineUpEnd]\n\nright [> VineUpEnd|] -> [VineUpRight| VineRightEnd]\nleft [> VineUpEnd|] -> [VineUpLeft | VineLeftEnd]\n\n==============\nWINCONDITIONS\n==============\n\nAll Player on Target\n\n======= \nLEVELS\n=======\n\nlllllllllll\nl..........\nl..........\nl..........\nl..........\nl..........\nl..........\nlooo.......\nl...ooooooo\nl...______w\nw.........g\ne..b......g\ne_________g\ne..b......g\ne__gt.....w\ne...h.....w\ne...h.w__ww\ne...h.g...g\ne...h.g..|g\ne...h....uw\ne.b.h.wwwww\nw.b.h.....w\nww__t.....g\nww..h.....g\ne...h.....g\ne.c.h.....w\ne_________w\ne.........w\ne.b......|w\ne.____twwdw\ne..gc.h.www\nw..g___.www\nw___.....ww\nww........w\nwww..b....w\nwww_t_____w\nwwwwh.|.p.w\nwwwwwddddww\n\nMessage \"Finally, out of the factory\"\n\n\n",["tick","tick","tick","tick","tick","tick","tick",1,"tick","tick",1,"tick","tick","tick",1,"tick","tick",3,"tick","tick",0,"tick","tick","tick","tick","tick","tick",1,"tick",1,"tick","tick",0,"tick","tick",0,"tick","tick",3,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background lightrightdown lightsource:0,background lightright lightrightdown lightsource:1,1,1,1,1,1,1,1,1,background wall:2,\nbackground glass lightrightdown lightsource:3,background glass lightright lightrightdown lightsource:4,4,4,4,4,4,4,4,4,2,\n2,2,3,4,4,4,4,4,4,2,2,\n2,2,2,2,2,0,background lightright lightrightdown:5,5,5,5,5,\n5,background lightright lightrightdown target:6,5,5,background lightright:7,background:8,background lightrightdown platform:9,5,background lightright lightrightdown platform:10,5,5,\n5,5,5,5,7,2,2,8,background lightrightdown:11,10,5,\n5,5,5,7,background platform:12,2,2,2,2,2,0,\n5,5,5,5,5,5,6,5,5,5,7,\n12,11,10,5,5,5,5,5,background box:13,13,12,\n8,8,background check:14,9,5,13,9,5,5,background lightright platform:15,8,\n2,2,2,2,0,5,5,5,5,5,5,\n6,5,5,5,13,12,13,background glass lightrightdown:16,5,5,5,\n5,5,7,8,12,8,8,8,12,11,7,\n12,16,background glass lightright lightrightdown:17,10,7,8,12,2,2,0,5,\n5,5,5,5,5,5,6,10,5,7,12,\n8,background ladder platform:18,background ladder lightrightdown:19,background ladder lightright lightrightdown:20,20,20,20,20,background ladder lightright:21,18,background ladder:22,\n22,22,12,8,11,15,14,background lightrightdown platform vineupend:23,background lightright lightrightdown vineleftup:24,5,7,\n18,22,2,0,5,5,5,5,5,5,5,\n6,10,5,5,15,8,8,8,11,5,5,\n5,5,5,7,8,8,8,12,8,8,9,\n7,12,background lightrightdown vineupleft:25,background lightright lightrightdown vineupup:26,background lightright lightrightdown player vineupup:27,background lightright platform vineleftup:28,8,background dirt:29,0,5,5,\n5,5,5,5,5,6,10,5,5,10,7,\n8,8,2,16,17,5,2,11,5,7,8,\n8,12,8,8,18,19,15,8,11,13,background lightrightdown platform vineupleft:30,\nbackground lightright vineupup:31,29,0,5,5,5,5,5,5,5,6,\n10,5,5,10,5,7,8,12,8,11,5,\n2,8,11,5,7,8,12,8,8,2,8,\n11,7,8,8,12,11,background dirt lightright:32,0,5,5,5,\n5,5,5,5,6,10,5,5,10,5,5,\n7,12,8,8,11,2,8,8,11,5,7,\n12,8,8,2,2,2,11,7,8,12,8,\nbackground dirt lightrightdown:33,0,5,5,5,5,5,5,5,6,10,\n5,5,10,5,5,5,2,8,background vineupend:34,background pot:35,2,\n8,8,8,11,5,15,8,34,29,2,2,\n2,11,7,12,8,2,0,5,5,5,5,\n5,5,5,6,2,16,17,17,17,2,2,\n2,background glass:36,36,2,2,2,36,36,36,2,2,\n2,2,2,2,2,2,2,2,2,2,2,\n",0,"1627778846524.428"] + ["title Vines\nauthor Stefan Peeters\n\nrealtime_interval .1\n\nzoomscreen 11x9\n\n(verbose_logging)\nrun_rules_on_level_start\nnoaction\n\n========\nOBJECTS\n========\n\nBackground \n#404040\n\nTarget\ntransparent\n\nVineUpEnd\nGreen darkgreen\n.....\n..1..\n.10..\n..1..\n..01.\n\nVineLeftEnd\nGreen darkgreen\n.....\n...0.\n..111\n.....\n.....\n\nVineRightEnd\nGreen darkgreen\n.....\n.0...\n011..\n.....\n.....\n\nVineLeftUp\nGreen darkgreen\n..1..\n.10..\n..011\n..1..\n.....\n\nVineRightUp\nGreen darkgreen\n..1..\n..1..\n1101.\n.1...\n.....\n\nVineUpUp\nGreen darkgreen\n.11..\n..01.\n..1..\n.10..\n..1..\n\nVineUpLeft\nGreen darkgreen\n.....\n.1...\n101..\n..01.\n..1..\n\nVineUpRight\nGreen darkgreen\n.....\n...1.\n..101\n.10.0\n..1..\n\nLadder\nlightbrown brown\n0...0\n0...0\n01110\n0...0\n01110\n\nPlatform\nBROWN\n00000\n.....\n.....\n.....\n.....\n\nWall\n#4d2700 #663300 #804100\n00000\n11111\n22222\n00000\n11111\n\nGlass\nWhite LightBlue\n00010\n1...0\n0...1\n0...0\n00101\n\nPlayer \nRed Brown Blue\n.000.\n.111.\n12021\n.222.\n.2.2.\n\nBox\nBROWN darkbrown lightBrown\n00000\n02110\n01210\n01120\n00000\n\nDirt\nBrown\n\nlightSource\ntransparent\n\nLightRight\nyellow\n00000\n.0000\n..000\n...00\n....0\n\nLightRightDown\nyellow\n0....\n00...\n000..\n0000.\n00000\n\nLightLeft\nyellow\n00000\n0000.\n000..\n00...\n0....\n\nLightLeftDown\nyellow\n....0\n...00\n..000\n.0000\n00000\n\nPot\nbrown\n00000\n00000\n.000.\n.000.\n.000.\n\nCheck\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n| = VineUpEnd\nH = Ladder\nT = Ladder and Platform\n_ = platform\nW = Wall\nD = Dirt\nB = Box\nP = Player\nO = Target\nG = Glass\nL = lightSource\nE = Glass and LightSource\nU = Pot\nC = Check\n\nVineEnd = VineLeftEnd or VineRightEnd or VineUpEnd\nVine = VineEnd or VineLeftUp or VineRightUp or VineUpUp or VineUpLeft or VineUpRight\n\nLight = LightRight or LightRightDown or LightLeft or LightLeftDown\nLightBlocker = Box or Wall\nVineBlocker = Box or Wall or Glass or Vine\n\nPushAble = Box\nClimable = Vine or Ladder\nFallAble = Box\nFloor = Wall or Platform or Player or Box\n\n=======\nSOUNDS\n=======\n\nBox move 67547707\nPlayer move horizontal 5015507\nplayer move vertical 54490507\n\nSfx0 85068307\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nLightSource\nLightRight\nLightRightDown\nLightLeft\nLightLeftDown\nTarget\nVine\nLadder\nPlatform\nCheck\nPlayer,Box, Wall, Glass, Dirt, Pot\n\n======\nRULES \n======\n\n[Player Check] -> [Player] checkpoint\n\n(Movement)\n[up Player no Climable] -> [Player]\nup [> Player Climable no Floor|no Climable] -> [Player Climable|]\ndown [> Player|Floor no Climable] -> [Player|Floor]\n\nhorizontal [> Player | PushAble] -> [> Player|> PushAble]\n\n(Gravity)\ndown [stationary Player no Climable | no Floor] -> [> Player|]\ndown [stationary FallAble | no Floor] -> [> FallAble|]\nlate down [Player no Climable | no Floor] -> again\nlate down [FallAble | no Floor] -> again\n\n(Light creation)\nlate right [LightSource no LightBlocker no LightRightDown] -> [LightSource LightRightDown]\n+ late right [LightRight|no LightRightDown no LightBlocker] -> [LightRight|LightRightDown] again\n+ late down [LightRightDown|no LightRight no LightBlocker] -> [LightRightDown|LightRight] again\n+ late left [LightLeft|no LightLeftDown no LightBlocker] -> [LightLeft|LightLeftDown] again\n+ late down [LightLeftDown|no LightLeft no LightBlocker] -> [LightLeftDown|LightLeft] again\n\n(Light removal)\nlate right [LightBlocker Light] -> [LightBlocker]\n+ late right [no LightRight|LightRightDown no lightSource] -> [|]\n+ late down [no LightRightDown|LightRight] -> [|]\n+ late left [no LightLeft|LightLeftDown] -> [|]\n+ late down [no LightLeftDown|LightLeft] -> [|]\n\n(Vine growth)\n\nup [VineEnd|Light no VineBlocker] -> [> VineEnd|Light] again Sfx0\nhorizontal [stationary VineUpEnd|Light no VineBlocker] -> [> VineUpEnd|Light] again Sfx0\n\nup [> VineUpEnd|] -> [VineUpUp | VineUpEnd]\nup [> VineLeftEnd|] -> [VineLeftUp | VineUpEnd]\nup [> VineRightEnd|] -> [VineRightUp| VineUpEnd]\n\nright [> VineUpEnd|] -> [VineUpRight| VineRightEnd]\nleft [> VineUpEnd|] -> [VineUpLeft | VineLeftEnd]\n\n==============\nWINCONDITIONS\n==============\n\nAll Player on Target\n\n======= \nLEVELS\n=======\n\nlllllllllll\nl..........\nl..........\nl..........\nl..........\nl..........\nl..........\nlooo.......\nl...ooooooo\nl...______w\nw.........g\ne..b......g\ne_________g\ne..b......g\ne__gt.....w\ne...h.....w\ne...h.w__ww\ne...h.g...g\ne...h.g..|g\ne...h....uw\ne.b.h.wwwww\nw.b.h.....w\nww__t.....g\nww..h.....g\ne...h.....g\ne.c.h.....w\ne_________w\ne.........w\ne.b......|w\ne.____twwdw\ne..gc.h.www\nw..g___.www\nw___.....ww\nww........w\nwww..b....w\nwww_t_____w\nwwwwh.|.p.w\nwwwwwddddww\n\nMessage \"Finally, out of the factory\"\n\n\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", 3, "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", 1, "tick", "tick", 0, "tick", "tick", 0, "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background lightrightdown lightsource:0,background lightright lightrightdown lightsource:1,1,1,1,1,1,1,1,1,background wall:2,\nbackground glass lightrightdown lightsource:3,background glass lightright lightrightdown lightsource:4,4,4,4,4,4,4,4,4,2,\n2,2,3,4,4,4,4,4,4,2,2,\n2,2,2,2,2,0,background lightright lightrightdown:5,5,5,5,5,\n5,background lightright lightrightdown target:6,5,5,background lightright:7,background:8,background lightrightdown platform:9,5,background lightright lightrightdown platform:10,5,5,\n5,5,5,5,7,2,2,8,background lightrightdown:11,10,5,\n5,5,5,7,background platform:12,2,2,2,2,2,0,\n5,5,5,5,5,5,6,5,5,5,7,\n12,11,10,5,5,5,5,5,background box:13,13,12,\n8,8,background check:14,9,5,13,9,5,5,background lightright platform:15,8,\n2,2,2,2,0,5,5,5,5,5,5,\n6,5,5,5,13,12,13,background glass lightrightdown:16,5,5,5,\n5,5,7,8,12,8,8,8,12,11,7,\n12,16,background glass lightright lightrightdown:17,10,7,8,12,2,2,0,5,\n5,5,5,5,5,5,6,10,5,7,12,\n8,background ladder platform:18,background ladder lightrightdown:19,background ladder lightright lightrightdown:20,20,20,20,20,background ladder lightright:21,18,background ladder:22,\n22,22,12,8,11,15,14,background lightrightdown platform vineupend:23,background lightright lightrightdown vineleftup:24,5,7,\n18,22,2,0,5,5,5,5,5,5,5,\n6,10,5,5,15,8,8,8,11,5,5,\n5,5,5,7,8,8,8,12,8,8,9,\n7,12,background lightrightdown vineupleft:25,background lightright lightrightdown vineupup:26,background lightright lightrightdown player vineupup:27,background lightright platform vineleftup:28,8,background dirt:29,0,5,5,\n5,5,5,5,5,6,10,5,5,10,7,\n8,8,2,16,17,5,2,11,5,7,8,\n8,12,8,8,18,19,15,8,11,13,background lightrightdown platform vineupleft:30,\nbackground lightright vineupup:31,29,0,5,5,5,5,5,5,5,6,\n10,5,5,10,5,7,8,12,8,11,5,\n2,8,11,5,7,8,12,8,8,2,8,\n11,7,8,8,12,11,background dirt lightright:32,0,5,5,5,\n5,5,5,5,6,10,5,5,10,5,5,\n7,12,8,8,11,2,8,8,11,5,7,\n12,8,8,2,2,2,11,7,8,12,8,\nbackground dirt lightrightdown:33,0,5,5,5,5,5,5,5,6,10,\n5,5,10,5,5,5,2,8,background vineupend:34,background pot:35,2,\n8,8,8,11,5,15,8,34,29,2,2,\n2,11,7,12,8,2,0,5,5,5,5,\n5,5,5,6,2,16,17,17,17,2,2,\n2,background glass:36,36,2,2,2,36,36,36,2,2,\n2,2,2,2,2,2,2,2,2,2,2,\n", 0, "1627778846524.428"] ], [ `gallery: unconventional guns`, - ["title Unconventional Guns\nauthor rectangular Tim\n\n(run_rules_on_level_start)\nbackground_color darkblue\nagain_interval 0.07\nkey_repeat_interval 0.15\n(verbose_logging)\n\nhomepage http://ludumdare.com/compo/ludum-dare-32/?action=preview&uid=39396\n\n========\nOBJECTS\n========\n\nBackground\nlightGray\n\nGun\nBlack\n.....\n.....\n.000.\n.0...\n.....\n\nPlayerU\nBlue LightRed Brown White\n.222.\n.222.\n10001\n.000.\n.2.2.\n\nPlayerD\nBlue LightRed Brown White\n.222.\n.313.\n10001\n.000.\n.2.2.\n\nPlayerL\nBlue LightRed Brown White\n.222.\n.312.\n.010.\n.000.\n..22.\n\nPlayerR\nBlue LightRed Brown White\n.222.\n.213.\n.010.\n.000.\n.22..\n\nZombiePlayerU\nBlue Green Brown Red\n.222.\n.222.\n10001\n.000.\n.2.2.\n\nZombiePlayerD\nBlue Green Brown Red\n.222.\n.313.\n10001\n.000.\n.2.2.\n\nZombiePlayerL\nBlue Green Brown Red\n.222.\n.312.\n.010.\n.000.\n..22.\n\nZombiePlayerR\nBlue Green Brown Red\n.222.\n.213.\n.010.\n.000.\n.22..\n\nZombieAsleep\nDarkRed Green Black Red\n.222.\n.111.\n10001\n.000.\n.2.2.\n\nZombieAwake\nDarkRed Green Black Red\n.222.\n.313.\n10001\n.000.\n.2.2.\n\nWerewolf\nBrown Black\n.000.\n.101.\n00000\n.000.\n.0.0.\n\nSnakeHeadU\nLightGreen Green White\n.000.\n12021\n11011\n11011\n.101.\n\nSnakeHeadD\nLightGreen Green White Black\n.101.\n12021\n10001\n13331\n.111.\n\nSnakeHeadL\nLightGreen Green White\n000..\n.1200\n..111\n.1111\n111..\n\nSnakeHeadR\nLightGreen Green White\n..000\n0021.\n111..\n1111.\n..111\n\nSnakeU\nLightGreen Green\n.101.\n.101.\n.....\n.....\n.....\n\nSnakeD\nLightGreen Green\n.....\n.....\n.101.\n.101.\n.101.\n\nSnakeL\nLightGreen Green\n.....\n000..\n111..\n111..\n.....\n\nSnakeR\nLightGreen Green\n.....\n..000\n..111\n..111\n.....\n\nWater\nBlue lightBlue\n10000\n00000\n00010\n00000\n00100\n\nFloodingR\nBlue lightBlue\n100..\n000..\n000..\n000..\n001..\n\nFloodingL\nBlue lightBlue\n..000\n..000\n..010\n..000\n..100\n\nFloodingU\nBlue lightBlue\n.....\n.....\n00010\n00000\n00100\n\nFloodingD\nBlue lightBlue\n10000\n00000\n00010\n.....\n.....\n\nWaterDrown0\nBlue #000033 lightBlue\n21110\n01110\n11111\n01110\n01210\n\nWaterDrown1\nBlue #000066 lightBlue\n21110\n01110\n11111\n01110\n01210\n\nWaterSinking0\n#000044 lightBlue\n10000\n00000\n00010\n00000\n00100\n\nWaterSinking1\n#000088 lightBlue\n10000\n00000\n00010\n00000\n00100\n\nWaterSinking2\nBlue lightBlue #000088\n10000\n02220\n02210\n02220\n00100\n\nWaterSinking3\nBlue lightBlue #0000BB\n10000\n02220\n02210\n02220\n00100\n\nWaterSinking4\nBlue lightBlue #0000BB\n10000\n00000\n00210\n00000\n00100\n\nCrate\nBrown Orange LightBrown\n12221\n20002\n20002\n20002\n12221\n\nWall\ndarkblue\n\nWallL\nBlack\n0....\n0....\n0....\n0....\n0....\n\nWallR\nBlack\n....0\n....0\n....0\n....0\n....0\n\nWallU\nBlack\n00000\n.....\n.....\n.....\n.....\n\nWallD\nBlack\n.....\n.....\n.....\n.....\n00000\n\nDigit0\nWhite\n..00.\n.0..0\n.0..0\n.0..0\n..00.\n\nDigit1\nWhite\n...0.\n..00.\n...0.\n...0.\n..000\n\nDigit2\nWhite\n..00.\n.0..0\n...0.\n..0..\n.0000\n\nDigit3\nWhite\n.000.\n....0\n..00.\n....0\n.000.\n\nDigit4\nWhite\n...0.\n..0..\n.0.0.\n.0000\n...0.\n\nDigit5\nWhite\n.0000\n.0...\n.000.\n....0\n.000.\n\nDigit6\nWhite\n..00.\n.0...\n.000.\n.0..0\n..00.\n\nDigit7\nWhite\n.0000\n....0\n...0.\n..0..\n.0...\n\nDigit8\nWhite\n..00.\n.0..0\n..00.\n.0..0\n..00.\n\nDigit9\nWhite\n..00.\n.0..0\n..000\n....0\n..00.\n\npreviousHead\ntransparent\n\npreviousCollision\ntransparent\n\nCollider\ntransparent\n\nGoU\ntransparent\n\nGoD\ntransparent\n\nGoL\ntransparent\n\nGoR\ntransparent\n\nVision\ntransparent\n\nLoLevelTarget\ntransparent\n\nHiLevelTarget\ntransparent\n\nSnakeGun\ntransparent\n\nWaterGun\ntransparent\n\ncanMove\ntransparent\n\nrecoil\ntransparent\n\npreviousPosition\ntransparent\n\nWinning\ntransparent\n\nCover\ndarkblue\n\nq\nBlack\n0....\n0....\n.0...\n..0..\n...00\n\ni\nBlack\n00...\n..0..\n...0.\n....0\n....0\n\ne\nBlack\n00000\n.....\n.....\n.....\n.....\n\nr\nBlack\n0....\n0....\n0....\n0....\n0....\n\nt\nBlack\n...00\n.00..\n.0...\n0....\n0....\n\ny\nBlack\n....0\n....0\n...0.\n..00.\n00...\n\nx\nGray\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nu\nGray\n.....\n..0..\n.000.\n0.0.0\n..0..\n\nl\nGray\n...0.\n..0..\n.0000\n..0..\n...0.\n\n=======\nLEGEND\n=======\n\nWallOutline = WallU or WallD or WallL or WallR\n\nAnyDigit = Digit0 or Digit1 or Digit2 or Digit3 or Digit4 or Digit5 or Digit6 or Digit7 or Digit8 or Digit9\n\nPlayer = PlayerU or PlayerD or PlayerL or PlayerR\nZombiePlayer = ZombiePlayerU or ZombiePlayerD or ZombiePlayerL or ZombiePlayerR\nAnyPlayer = Player or ZombiePlayer\nZombie = ZombieAwake or ZombieAsleep or ZombiePlayer\nMonster = Zombie or Werewolf\n\nSnakeHead = SnakeHeadU or SnakeHeadD or SnakeHeadL or SnakeHeadR\nSnakeBody = SnakeU or SnakeD or SnakeL or SnakeR\nSnake = SnakeHead or SnakeBody\n\nSnakeFood = AnyPlayer or Zombie or Werewolf\nWerewolfFood = AnyPlayer or Zombie\n\nWaterBlocker = Snake or Wall\nDrownable = Player or Werewolf\nSinking = WaterDrown0 or WaterDrown1 or WaterSinking0 or WaterSinking1 or WaterSinking2 or WaterSinking3 or WaterSinking4\nFlooding = FloodingU or FloodingD or FloodingL or FloodingR\nAnyWater = Water or Sinking\n\nAnimation = Flooding or Sinking\n\nNoSnakeBody = AnyPlayer or Zombie or Werewolf or Crate or Wall or SnakeHead\nObstacle = AnyPlayer or Zombie or Werewolf or Crate or Wall or SnakeHead or Collider\nDirection = GoU or GoD or GoL or GoR\n\nPushable = Crate or Zombie\nPusher = Player or SnakeHead or Pushable\n\nLines = q or i or e or r or t or y\nDecoration = Gun or Lines or x or u or l\n\nTarget = LoLevelTarget or HiLevelTarget\n\n. = Background\n# = Wall\n~ = Water\np = PlayerD and canMove\ns = PlayerD and SnakeGun and canMove\no = PlayerD and WaterGun and canMove\nz = ZombieAsleep\nw = Werewolf\ng = Gun\nc = Crate\n\" = PlayerD and Cover\n\n0 = Wall and Digit0\n1 = Wall and Digit1\n2 = Wall and Digit2\n3 = Wall and Digit3\n4 = Wall and Digit4\n5 = Wall and Digit5\n6 = Wall and Digit6\n7 = Wall and Digit7\n8 = Wall and Digit8\n9 = Wall and Digit9\n\n=======\nSOUNDS\n=======\n\nPlayer Move 23783707\nPlayer Create 23783707\nWerewolf Move 23783707\nsfx1 84569108 (death)\nsfx2 27012908 (snake shot)\nsfx3 17311702 (collide)\nsfx4 55941902 (eat)\nsfx5 59606702 (bat)\nsfx6 52112502 (impossible)\nsfx7 89706502 (crowbar)\nsfx8 1782108 (water shot)\nsfx9 59937708 (drown)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nAnyWater Flooding\nSnakeU Decoration\nSnakeL Direction\nSnakeR\nObstacle\nSnakeD\nWallL Vision Target\nWallR SnakeGun WaterGun\nWallU previousCollision previousPosition\nWallD recoil\nAnyDigit canMove previousHead Cover\nWinning\n\n======\nRULES\n======\n\n(Editing convenience: Automatically add outlines to walls)\n([ WallOutline ] -> [ ]\nup [ Wall | No Wall ] -> [ Wall WallU | ]\ndown [ Wall | No Wall ] -> [ Wall WallD | ]\nleft [ Wall | No Wall ] -> [ Wall WallL | ]\nright[ Wall | No Wall ] -> [ Wall WallR | ])\n\n(player faces a certain direction)\n[ up Player no PlayerU ] [ canMove ] -> [ PlayerU ] [ canMove ]\n[ down Player no PlayerD ] [ canMove ] -> [ PlayerD ] [ canMove ]\n[ left Player no PlayerL ] [ canMove ] -> [ PlayerL ] [ canMove ]\n[ right Player no PlayerR ] [ canMove ] -> [ PlayerR ] [ canMove ]\n\n(shoot the Snake Gun)\nup [ action PlayerU | no Wall no Crate ] [ canMove SnakeGun ] -> [ PlayerU recoil | SnakeHeadU ] [ SnakeGun ] sfx2\ndown [ action PlayerD | no Wall no Crate ] [ canMove SnakeGun ] -> [ PlayerD recoil | SnakeHeadD ] [ SnakeGun ] sfx2\nleft [ action PlayerL | no Wall no Crate ] [ canMove SnakeGun ] -> [ PlayerL recoil | SnakeHeadL ] [ SnakeGun ] sfx2\nright [ action PlayerR | no Wall no Crate ] [ canMove SnakeGun ] -> [ PlayerR recoil | SnakeHeadR ] [ SnakeGun ] sfx2\n[ action Player ] [ canMove SnakeGun ] -> [ Player ] [ canMove SnakeGun ] sfx6\n(choose snake direction, when it can't move anymore)\n[ moving Player ] [ SnakeHead previousHead ] -> [ stationary Player ] [ moving SnakeHead previousHead ]\n(snake head moves forwards)\nup [ stationary SnakeHeadU ] -> [ > SnakeHeadU ]\ndown [ stationary SnakeHeadD ] -> [ > SnakeHeadD ]\nleft [ stationary SnakeHeadL ] -> [ > SnakeHeadL ]\nright [ stationary SnakeHeadR ] -> [ > SnakeHeadR ]\n(BONK!)\nlate [ SnakeHead previousHead no previousCollision ] -> [ SnakeHead previousHead previousCollision] sfx3\nlate [ SnakeHead no previousHead ] [ previousCollision ] -> [ SnakeHead no previousHead ] [ ]\n(snakes eat things)\nup [ > SnakeHead | SnakeFood ] -> [ > SnakeHead | no SnakeBody ] sfx4\ndown [ > SnakeHead | SnakeFood ] -> [ > SnakeHead | no SnakeBody ] sfx4\nleft [ > SnakeHead | SnakeFood ] -> [ > SnakeHead | no SnakeBody ] sfx4\nright [ > SnakeHead | SnakeFood ] -> [ > SnakeHead | no SnakeBody ] sfx4\n(remember previous position of snake head)\n[ previousHead ] -> [ ]\n[ SnakeHead ] -> [ SnakeHead previousHead ]\n(set the snake head orientation)\nlate up [ previousHead | SnakeHead ] -> [ previousHead | SnakeHeadU ]\nlate down [ previousHead | SnakeHead ] -> [ previousHead | SnakeHeadD ]\nlate left [ previousHead | SnakeHead ] -> [ previousHead | SnakeHeadL ]\nlate right [ previousHead | SnakeHead ] -> [ previousHead | SnakeHeadR ]\n(create the snake body)\nup [ PlayerU no SnakeU ] [ Snake ] [ SnakeGun ] -> [ PlayerU SnakeU ] [ Snake ] [ SnakeGun ]\ndown [ PlayerD no SnakeD ] [ Snake ] [ SnakeGun ] -> [ PlayerD SnakeD ] [ Snake ] [ SnakeGun ]\nleft [ PlayerL no SnakeL ] [ Snake ] [ SnakeGun ] -> [ PlayerL SnakeL ] [ Snake ] [ SnakeGun ]\nright [ PlayerR no SnakeR ] [ Snake ] [ SnakeGun ] -> [ PlayerR SnakeR ] [ Snake ] [ SnakeGun ]\nlate up [ no SnakeU no AnyPlayer | SnakeHeadU ] -> [ SnakeU | SnakeHeadU ]\nlate down [ no SnakeD no AnyPlayer | SnakeHeadD ] -> [ SnakeD | SnakeHeadD ]\nlate left [ no SnakeL no AnyPlayer | SnakeHeadL ] -> [ SnakeL | SnakeHeadL ]\nlate right [ no SnakeR no AnyPlayer | SnakeHeadR ] -> [ SnakeR | SnakeHeadR ]\n(connect the snake body)\nlate up [ SnakeU | no SnakeD no NoSnakeBody ] -> [ SnakeU | SnakeD ]\nlate down [ SnakeD | no SnakeU no NoSnakeBody ] -> [ SnakeD | SnakeU ]\nlate left [ SnakeL | no SnakeR no NoSnakeBody ] -> [ SnakeL | SnakeR ]\nlate right [ SnakeR | no SnakeL no NoSnakeBody ] -> [ SnakeR | SnakeL ]\n(make the snake body impassable)\nlate [ SnakeBody no Obstacle ] -> [ SnakeBody Collider ]\n\n(recoil)\n[ previousPosition ] -> [ ]\n[ Player ] -> [ Player previousPosition ]\nup [ stationary PlayerU ] [ recoil ] -> [ < PlayerU ] [ recoil ]\ndown [ stationary PlayerD ] [ recoil ] -> [ < PlayerD ] [ recoil ]\nleft [ stationary PlayerL ] [ recoil ] -> [ < PlayerL ] [ recoil ]\nright [ stationary PlayerR ] [ recoil ] -> [ < PlayerR ] [ recoil ]\nlate [ Player previousPosition ] [ recoil ] -> [ Player previousPosition ] [ ]\n\n(flooding animation)\n[ Flooding ] -> [ Water ]\n(shoot the water gun)\n[ action Player ] [ canMove WaterGun ] -> [ action Player ] [ WaterGun ]\nup [ action PlayerU | no Water ] [ WaterGun ] -> [ PlayerU | FloodingU ] [ WaterGun ] sfx8\ndown [ action PlayerD | no Water ] [ WaterGun ] -> [ PlayerD | FloodingD ] [ WaterGun ] sfx8\nleft [ action PlayerL | no Water ] [ WaterGun ] -> [ PlayerL | FloodingL ] [ WaterGun ] sfx8\nright [ action PlayerR | no Water ] [ WaterGun ] -> [ PlayerR | FloodingR ] [ WaterGun ] sfx8\nup [ action PlayerU | Water ] [ WaterGun ] -> [ PlayerU | > FloodingU ] [ WaterGun ] sfx8\ndown [ action PlayerD | Water ] [ WaterGun ] -> [ PlayerD | > FloodingD ] [ WaterGun ] sfx8\nleft [ action PlayerL | Water ] [ WaterGun ] -> [ PlayerL | > FloodingL ] [ WaterGun ] sfx8\nright [ action PlayerR | Water ] [ WaterGun ] -> [ PlayerR | > FloodingR ] [ WaterGun ] sfx8\n[ action Player ] [ canMove WaterGun ] -> [ Player ] [ canMove WaterGun ] sfx6\nlate up [ PlayerU | no Flooding ] [ WaterGun no canMove ] -> [ PlayerU | Water ] [ WaterGun ] sfx8\nlate down [ PlayerD | no Flooding ] [ WaterGun no canMove ] -> [ PlayerD | Water ] [ WaterGun ] sfx8\nlate left [ PlayerL | no Flooding ] [ WaterGun no canMove ] -> [ PlayerL | Water ] [ WaterGun ] sfx8\nlate right [ PlayerR | no Flooding ] [ WaterGun no canMove ] -> [ PlayerR | Water ] [ WaterGun ] sfx8\nlate [ Player ] [ no canMove WaterGun ] -> [ Player ] [ canMove WaterGun ]\n[ > Flooding | WaterBlocker ] -> [ Flooding | WaterBlocker ]\n[ > Flooding | stationary Water ] -> [ > Water | > Flooding ]\n(sinking animation)\n[ WaterSinking4 ] -> [ Water ]\n[ WaterSinking3 ] -> [ WaterSinking4 ]\n[ WaterSinking2 ] -> [ WaterSinking3 ]\n[ WaterSinking1 ] -> [ WaterSinking2 ]\n[ WaterDrown1 ] -> [ WaterSinking2 ]\n[ WaterSinking0 ] -> [ WaterSinking1 ]\n[ WaterDrown0 ] -> [ WaterDrown1 ]\n(water interacts with stuff)\nlate [ AnyWater Crate ] -> [ WaterSinking0 ] sfx9\nlate [ AnyWater Drownable ] -> [ WaterDrown0 ] sfx9\nlate [ AnyWater WaterBlocker ] -> [ WaterBlocker ]\n[ > Water | stationary Zombie ] -> [ > Water | > Zombie ]\n[ > Flooding | stationary Zombie ] -> [ > Flooding | > Zombie ]\n\n(move crates)\n[ > Pusher | stationary Pushable ] -> [ > Pusher | > Pushable ]\n\n(zombies)\n[ PlayerU | ZombieAsleep ] -> [ stationary ZombiePlayerU | ZombieAwake ] sfx1\n[ PlayerD | ZombieAsleep ] -> [ stationary ZombiePlayerD | ZombieAwake ] sfx1\n[ PlayerL | ZombieAsleep ] -> [ stationary ZombiePlayerL | ZombieAwake ] sfx1\n[ PlayerR | ZombieAsleep ] -> [ stationary ZombiePlayerR | ZombieAwake ] sfx1\n\n(werewolves)\nup [ stationary Werewolf GoU | no Direction ] -> [ > Werewolf | GoU ]\ndown [ stationary Werewolf GoD | no Direction ] -> [ > Werewolf | GoD ]\nleft [ stationary Werewolf GoL | no Direction ] -> [ > Werewolf | GoL ]\nright [ stationary Werewolf GoR | no Direction ] -> [ > Werewolf | GoR ]\nup [ stationary Werewolf | GoU WerewolfFood ] -> [ > Werewolf | ] sfx1\ndown [ stationary Werewolf | GoD WerewolfFood ] -> [ > Werewolf | ] sfx1\nleft [ stationary Werewolf | GoL WerewolfFood ] -> [ > Werewolf | ] sfx1\nright [ stationary Werewolf | GoR WerewolfFood ] -> [ > Werewolf | ] sfx1\n[ Vision ] -> [ ]\n[ Target ] -> [ ]\n[ stationary Werewolf no Direction | no Obstacle no Vision | ... | WerewolfFood ] -> [ Werewolf | > Vision | ... | WerewolfFood ]\n[ > Vision | no Obstacle no Vision ] -> [ | > Vision ]\n[ > Vision | Zombie ] -> [ > HiLevelTarget | Zombie ]\n[ > Vision | Player ] -> [ > LoLevelTarget | Player ]\n[ no Werewolf | > Target ] -> [ > Target | ]\nup [ stationary Werewolf | > HiLevelTarget ] -> [ > Werewolf | GoU ]\ndown [ stationary Werewolf | > HiLevelTarget ] -> [ > Werewolf | GoD ]\nleft [ stationary Werewolf | > HiLevelTarget ] -> [ > Werewolf | GoL ]\nright [ stationary Werewolf | > HiLevelTarget ] -> [ > Werewolf | GoR ]\n[ stationary Werewolf no Direction | WerewolfFood ] -> [ > Werewolf | no Direction ] sfx1\nup [ stationary Werewolf | > LoLevelTarget ] -> [ > Werewolf | GoU ]\ndown [ stationary Werewolf | > LoLevelTarget ] -> [ > Werewolf | GoD ]\nleft [ stationary Werewolf | > LoLevelTarget ] -> [ > Werewolf | GoL ]\nright [ stationary Werewolf | > LoLevelTarget ] -> [ > Werewolf | GoR ]\n\nlate [ Player ] -> [ Player Winning ]\nlate [ Monster ] [ Winning ] -> [ Monster ] [ ]\nlate [ Animation ] [ Winning ] -> [ Animation ] [ ]\nlate [ SnakeHead no previousHead ] [ Winning ] -> [ SnakeHead ] [ ]\nlate [ Player Gun ] -> Win\nlate [ Lines ] -> Win\n\n[]->[] again (let's hope there's no infinite loop)\n\n==============\nWINCONDITIONS\n==============\n\nSome Winning\n\n=======\nLEVELS\n=======\n\nmessage Oh no. Zombies!\n\n1######\n#zl...#\n#..z..#\n#p...g#\n#..z..#\n#..u..#\n#..x..#\n#######\n\nmessage What's this?\n\n............\n.......tq...\n......y.ti..\n.....t.y.t..\n....y.t.y...\n...t.y.t....\n..y.t.yi....\n..qyyeqy....\n...eq..q....\n.....q..r...\n......qy....\n............\n\nmessage A snake gun! Just what I needed.\n\n1######\n#zl...#\n#..z..#\n#....s#\n#..z..#\n#..u..#\n#..x..#\n#######\n\nmessage Take that, zombie scum!\n\n2########\n#.......#\n#.#.z.#.#\n#..z.z..#\n#.......#\n#.......#\n#.s.#...#\n#.......#\n#...z...#\n#########\n\nmessage Victory, thy name is snake gun!\n\n3######\n#z..#z#\n#...z.#\n#.s...#\n#.....#\n#.c...#\n#..#..#\n#######\n\nmessage Oh no. Werewolves!\n\n4######\n#..w.w#\n#z....#\n#c#...#\n#sc...#\n#######\n\nmessage I'm almost out of snake bullets!\n\n5######\n#..w..#\n#....z#\n#w....#\n##s..##\n#.....#\n#.c...#\n#.....#\n#######\n\nmessage There's only one snake left.\n\n6############\n#.c....w....#\n#z#.....w.w.#\n#.c.cz......#\n#...........#\n#...........#\n#.#...w.....#\n#s..........#\n#############\n\nmessage What do I do now? Without snakes?\n\n7#######\n#g.....#\n#..w...#\n#.c....#\n#..~...#\n#..~..w#\n#p.#...#\n########\n\nmessage What's this? Another snake gun?\n\n............\n......tq....\n......rtq...\n...tqy.r.r..\n...r..y.y...\n..y.te.t....\n.t.y..yi....\n.qt.teqy....\n..eeq..i....\n.....i..r...\n......qy....\n............\n\n(water gun, snake gun gun, snake rocket launcher, crowbar, explosive werewolf food gun...)\nmessage No, it's an ocean gun!\n\n7#######\n#o.....#\n#.cw...#\n#......#\n#..~...#\n#..~...#\n#..#...#\n########\n\nmessage I wonder if zombies can swim.\n\n8########\n#....o..#\n#.......#\n#.z.....#\n#.....z.#\n#w......#\n#......w#\n#########\n\nmessage Take that, werewolf scum!\n\n9#########\n##.....w##\n#w.......#\n#........#\n#...z....#\n#.z.....z#\n#...cc...#\n##...o..##\n##########\n\nmessage I'm almost out of water!\n\n10########\n#....o...#\n#........#\n#.z.....z#\n#...z....#\n#........#\n#w.......#\n##########\n\nmessage Only a few monsters are left.\nmessage But I ran out of bullets.\nmessage What shall I do?\n\n11##########\n#\"##......w#\n###..p.....#\n##....c....#\n#..........#\n#..z..z....#\n#z......z..#\n#z.z.......#\n#.........~#\n#........~~#\n#.....z.~~~#\n############\n\nmessage A noble sacrifice.\nmessage Thanks for playing!\nmessage THE END\n",[2,0,4,0,3,2,3,0,1],"background digit6 wall:0,background wall:1,1,1,1,1,1,1,1,1,background collider snaked snaker:2,background collider snaked snakeu:3,3,\n3,3,3,background playeru previousposition snakegun snakeu:4,1,1,background collider snakel snaker:5,1,background crate:6,background:7,7,1,7,\n1,1,5,7,7,7,7,7,7,1,1,5,7,\n6,7,7,7,7,1,1,background collider snaked snakel:8,3,3,3,3,3,\nbackground collider snaker snakeu:9,1,1,6,7,7,7,7,background werewolf:10,5,1,1,background previouscollision previoushead snakeheadl:11,\n7,7,7,7,7,5,1,1,5,10,7,7,7,\n7,5,1,1,5,7,7,7,7,7,5,1,1,\n5,10,7,7,7,7,5,1,1,8,3,3,3,\n3,3,background collider snakel snakeu:12,1,1,1,1,1,1,1,1,1,1,\n",15,"1627778871030.2454"] + ["title Unconventional Guns\nauthor rectangular Tim\n\n(run_rules_on_level_start)\nbackground_color darkblue\nagain_interval 0.07\nkey_repeat_interval 0.15\n(verbose_logging)\n\nhomepage http://ludumdare.com/compo/ludum-dare-32/?action=preview&uid=39396\n\n========\nOBJECTS\n========\n\nBackground\nlightGray\n\nGun\nBlack\n.....\n.....\n.000.\n.0...\n.....\n\nPlayerU\nBlue LightRed Brown White\n.222.\n.222.\n10001\n.000.\n.2.2.\n\nPlayerD\nBlue LightRed Brown White\n.222.\n.313.\n10001\n.000.\n.2.2.\n\nPlayerL\nBlue LightRed Brown White\n.222.\n.312.\n.010.\n.000.\n..22.\n\nPlayerR\nBlue LightRed Brown White\n.222.\n.213.\n.010.\n.000.\n.22..\n\nZombiePlayerU\nBlue Green Brown Red\n.222.\n.222.\n10001\n.000.\n.2.2.\n\nZombiePlayerD\nBlue Green Brown Red\n.222.\n.313.\n10001\n.000.\n.2.2.\n\nZombiePlayerL\nBlue Green Brown Red\n.222.\n.312.\n.010.\n.000.\n..22.\n\nZombiePlayerR\nBlue Green Brown Red\n.222.\n.213.\n.010.\n.000.\n.22..\n\nZombieAsleep\nDarkRed Green Black Red\n.222.\n.111.\n10001\n.000.\n.2.2.\n\nZombieAwake\nDarkRed Green Black Red\n.222.\n.313.\n10001\n.000.\n.2.2.\n\nWerewolf\nBrown Black\n.000.\n.101.\n00000\n.000.\n.0.0.\n\nSnakeHeadU\nLightGreen Green White\n.000.\n12021\n11011\n11011\n.101.\n\nSnakeHeadD\nLightGreen Green White Black\n.101.\n12021\n10001\n13331\n.111.\n\nSnakeHeadL\nLightGreen Green White\n000..\n.1200\n..111\n.1111\n111..\n\nSnakeHeadR\nLightGreen Green White\n..000\n0021.\n111..\n1111.\n..111\n\nSnakeU\nLightGreen Green\n.101.\n.101.\n.....\n.....\n.....\n\nSnakeD\nLightGreen Green\n.....\n.....\n.101.\n.101.\n.101.\n\nSnakeL\nLightGreen Green\n.....\n000..\n111..\n111..\n.....\n\nSnakeR\nLightGreen Green\n.....\n..000\n..111\n..111\n.....\n\nWater\nBlue lightBlue\n10000\n00000\n00010\n00000\n00100\n\nFloodingR\nBlue lightBlue\n100..\n000..\n000..\n000..\n001..\n\nFloodingL\nBlue lightBlue\n..000\n..000\n..010\n..000\n..100\n\nFloodingU\nBlue lightBlue\n.....\n.....\n00010\n00000\n00100\n\nFloodingD\nBlue lightBlue\n10000\n00000\n00010\n.....\n.....\n\nWaterDrown0\nBlue #000033 lightBlue\n21110\n01110\n11111\n01110\n01210\n\nWaterDrown1\nBlue #000066 lightBlue\n21110\n01110\n11111\n01110\n01210\n\nWaterSinking0\n#000044 lightBlue\n10000\n00000\n00010\n00000\n00100\n\nWaterSinking1\n#000088 lightBlue\n10000\n00000\n00010\n00000\n00100\n\nWaterSinking2\nBlue lightBlue #000088\n10000\n02220\n02210\n02220\n00100\n\nWaterSinking3\nBlue lightBlue #0000BB\n10000\n02220\n02210\n02220\n00100\n\nWaterSinking4\nBlue lightBlue #0000BB\n10000\n00000\n00210\n00000\n00100\n\nCrate\nBrown Orange LightBrown\n12221\n20002\n20002\n20002\n12221\n\nWall\ndarkblue\n\nWallL\nBlack\n0....\n0....\n0....\n0....\n0....\n\nWallR\nBlack\n....0\n....0\n....0\n....0\n....0\n\nWallU\nBlack\n00000\n.....\n.....\n.....\n.....\n\nWallD\nBlack\n.....\n.....\n.....\n.....\n00000\n\nDigit0\nWhite\n..00.\n.0..0\n.0..0\n.0..0\n..00.\n\nDigit1\nWhite\n...0.\n..00.\n...0.\n...0.\n..000\n\nDigit2\nWhite\n..00.\n.0..0\n...0.\n..0..\n.0000\n\nDigit3\nWhite\n.000.\n....0\n..00.\n....0\n.000.\n\nDigit4\nWhite\n...0.\n..0..\n.0.0.\n.0000\n...0.\n\nDigit5\nWhite\n.0000\n.0...\n.000.\n....0\n.000.\n\nDigit6\nWhite\n..00.\n.0...\n.000.\n.0..0\n..00.\n\nDigit7\nWhite\n.0000\n....0\n...0.\n..0..\n.0...\n\nDigit8\nWhite\n..00.\n.0..0\n..00.\n.0..0\n..00.\n\nDigit9\nWhite\n..00.\n.0..0\n..000\n....0\n..00.\n\npreviousHead\ntransparent\n\npreviousCollision\ntransparent\n\nCollider\ntransparent\n\nGoU\ntransparent\n\nGoD\ntransparent\n\nGoL\ntransparent\n\nGoR\ntransparent\n\nVision\ntransparent\n\nLoLevelTarget\ntransparent\n\nHiLevelTarget\ntransparent\n\nSnakeGun\ntransparent\n\nWaterGun\ntransparent\n\ncanMove\ntransparent\n\nrecoil\ntransparent\n\npreviousPosition\ntransparent\n\nWinning\ntransparent\n\nCover\ndarkblue\n\nq\nBlack\n0....\n0....\n.0...\n..0..\n...00\n\ni\nBlack\n00...\n..0..\n...0.\n....0\n....0\n\ne\nBlack\n00000\n.....\n.....\n.....\n.....\n\nr\nBlack\n0....\n0....\n0....\n0....\n0....\n\nt\nBlack\n...00\n.00..\n.0...\n0....\n0....\n\ny\nBlack\n....0\n....0\n...0.\n..00.\n00...\n\nx\nGray\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nu\nGray\n.....\n..0..\n.000.\n0.0.0\n..0..\n\nl\nGray\n...0.\n..0..\n.0000\n..0..\n...0.\n\n=======\nLEGEND\n=======\n\nWallOutline = WallU or WallD or WallL or WallR\n\nAnyDigit = Digit0 or Digit1 or Digit2 or Digit3 or Digit4 or Digit5 or Digit6 or Digit7 or Digit8 or Digit9\n\nPlayer = PlayerU or PlayerD or PlayerL or PlayerR\nZombiePlayer = ZombiePlayerU or ZombiePlayerD or ZombiePlayerL or ZombiePlayerR\nAnyPlayer = Player or ZombiePlayer\nZombie = ZombieAwake or ZombieAsleep or ZombiePlayer\nMonster = Zombie or Werewolf\n\nSnakeHead = SnakeHeadU or SnakeHeadD or SnakeHeadL or SnakeHeadR\nSnakeBody = SnakeU or SnakeD or SnakeL or SnakeR\nSnake = SnakeHead or SnakeBody\n\nSnakeFood = AnyPlayer or Zombie or Werewolf\nWerewolfFood = AnyPlayer or Zombie\n\nWaterBlocker = Snake or Wall\nDrownable = Player or Werewolf\nSinking = WaterDrown0 or WaterDrown1 or WaterSinking0 or WaterSinking1 or WaterSinking2 or WaterSinking3 or WaterSinking4\nFlooding = FloodingU or FloodingD or FloodingL or FloodingR\nAnyWater = Water or Sinking\n\nAnimation = Flooding or Sinking\n\nNoSnakeBody = AnyPlayer or Zombie or Werewolf or Crate or Wall or SnakeHead\nObstacle = AnyPlayer or Zombie or Werewolf or Crate or Wall or SnakeHead or Collider\nDirection = GoU or GoD or GoL or GoR\n\nPushable = Crate or Zombie\nPusher = Player or SnakeHead or Pushable\n\nLines = q or i or e or r or t or y\nDecoration = Gun or Lines or x or u or l\n\nTarget = LoLevelTarget or HiLevelTarget\n\n. = Background\n# = Wall\n~ = Water\np = PlayerD and canMove\ns = PlayerD and SnakeGun and canMove\no = PlayerD and WaterGun and canMove\nz = ZombieAsleep\nw = Werewolf\ng = Gun\nc = Crate\n\" = PlayerD and Cover\n\n0 = Wall and Digit0\n1 = Wall and Digit1\n2 = Wall and Digit2\n3 = Wall and Digit3\n4 = Wall and Digit4\n5 = Wall and Digit5\n6 = Wall and Digit6\n7 = Wall and Digit7\n8 = Wall and Digit8\n9 = Wall and Digit9\n\n=======\nSOUNDS\n=======\n\nPlayer Move 23783707\nPlayer Create 23783707\nWerewolf Move 23783707\nsfx1 84569108 (death)\nsfx2 27012908 (snake shot)\nsfx3 17311702 (collide)\nsfx4 55941902 (eat)\nsfx5 59606702 (bat)\nsfx6 52112502 (impossible)\nsfx7 89706502 (crowbar)\nsfx8 1782108 (water shot)\nsfx9 59937708 (drown)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nAnyWater Flooding\nSnakeU Decoration\nSnakeL Direction\nSnakeR\nObstacle\nSnakeD\nWallL Vision Target\nWallR SnakeGun WaterGun\nWallU previousCollision previousPosition\nWallD recoil\nAnyDigit canMove previousHead Cover\nWinning\n\n======\nRULES\n======\n\n(Editing convenience: Automatically add outlines to walls)\n([ WallOutline ] -> [ ]\nup [ Wall | No Wall ] -> [ Wall WallU | ]\ndown [ Wall | No Wall ] -> [ Wall WallD | ]\nleft [ Wall | No Wall ] -> [ Wall WallL | ]\nright[ Wall | No Wall ] -> [ Wall WallR | ])\n\n(player faces a certain direction)\n[ up Player no PlayerU ] [ canMove ] -> [ PlayerU ] [ canMove ]\n[ down Player no PlayerD ] [ canMove ] -> [ PlayerD ] [ canMove ]\n[ left Player no PlayerL ] [ canMove ] -> [ PlayerL ] [ canMove ]\n[ right Player no PlayerR ] [ canMove ] -> [ PlayerR ] [ canMove ]\n\n(shoot the Snake Gun)\nup [ action PlayerU | no Wall no Crate ] [ canMove SnakeGun ] -> [ PlayerU recoil | SnakeHeadU ] [ SnakeGun ] sfx2\ndown [ action PlayerD | no Wall no Crate ] [ canMove SnakeGun ] -> [ PlayerD recoil | SnakeHeadD ] [ SnakeGun ] sfx2\nleft [ action PlayerL | no Wall no Crate ] [ canMove SnakeGun ] -> [ PlayerL recoil | SnakeHeadL ] [ SnakeGun ] sfx2\nright [ action PlayerR | no Wall no Crate ] [ canMove SnakeGun ] -> [ PlayerR recoil | SnakeHeadR ] [ SnakeGun ] sfx2\n[ action Player ] [ canMove SnakeGun ] -> [ Player ] [ canMove SnakeGun ] sfx6\n(choose snake direction, when it can't move anymore)\n[ moving Player ] [ SnakeHead previousHead ] -> [ stationary Player ] [ moving SnakeHead previousHead ]\n(snake head moves forwards)\nup [ stationary SnakeHeadU ] -> [ > SnakeHeadU ]\ndown [ stationary SnakeHeadD ] -> [ > SnakeHeadD ]\nleft [ stationary SnakeHeadL ] -> [ > SnakeHeadL ]\nright [ stationary SnakeHeadR ] -> [ > SnakeHeadR ]\n(BONK!)\nlate [ SnakeHead previousHead no previousCollision ] -> [ SnakeHead previousHead previousCollision] sfx3\nlate [ SnakeHead no previousHead ] [ previousCollision ] -> [ SnakeHead no previousHead ] [ ]\n(snakes eat things)\nup [ > SnakeHead | SnakeFood ] -> [ > SnakeHead | no SnakeBody ] sfx4\ndown [ > SnakeHead | SnakeFood ] -> [ > SnakeHead | no SnakeBody ] sfx4\nleft [ > SnakeHead | SnakeFood ] -> [ > SnakeHead | no SnakeBody ] sfx4\nright [ > SnakeHead | SnakeFood ] -> [ > SnakeHead | no SnakeBody ] sfx4\n(remember previous position of snake head)\n[ previousHead ] -> [ ]\n[ SnakeHead ] -> [ SnakeHead previousHead ]\n(set the snake head orientation)\nlate up [ previousHead | SnakeHead ] -> [ previousHead | SnakeHeadU ]\nlate down [ previousHead | SnakeHead ] -> [ previousHead | SnakeHeadD ]\nlate left [ previousHead | SnakeHead ] -> [ previousHead | SnakeHeadL ]\nlate right [ previousHead | SnakeHead ] -> [ previousHead | SnakeHeadR ]\n(create the snake body)\nup [ PlayerU no SnakeU ] [ Snake ] [ SnakeGun ] -> [ PlayerU SnakeU ] [ Snake ] [ SnakeGun ]\ndown [ PlayerD no SnakeD ] [ Snake ] [ SnakeGun ] -> [ PlayerD SnakeD ] [ Snake ] [ SnakeGun ]\nleft [ PlayerL no SnakeL ] [ Snake ] [ SnakeGun ] -> [ PlayerL SnakeL ] [ Snake ] [ SnakeGun ]\nright [ PlayerR no SnakeR ] [ Snake ] [ SnakeGun ] -> [ PlayerR SnakeR ] [ Snake ] [ SnakeGun ]\nlate up [ no SnakeU no AnyPlayer | SnakeHeadU ] -> [ SnakeU | SnakeHeadU ]\nlate down [ no SnakeD no AnyPlayer | SnakeHeadD ] -> [ SnakeD | SnakeHeadD ]\nlate left [ no SnakeL no AnyPlayer | SnakeHeadL ] -> [ SnakeL | SnakeHeadL ]\nlate right [ no SnakeR no AnyPlayer | SnakeHeadR ] -> [ SnakeR | SnakeHeadR ]\n(connect the snake body)\nlate up [ SnakeU | no SnakeD no NoSnakeBody ] -> [ SnakeU | SnakeD ]\nlate down [ SnakeD | no SnakeU no NoSnakeBody ] -> [ SnakeD | SnakeU ]\nlate left [ SnakeL | no SnakeR no NoSnakeBody ] -> [ SnakeL | SnakeR ]\nlate right [ SnakeR | no SnakeL no NoSnakeBody ] -> [ SnakeR | SnakeL ]\n(make the snake body impassable)\nlate [ SnakeBody no Obstacle ] -> [ SnakeBody Collider ]\n\n(recoil)\n[ previousPosition ] -> [ ]\n[ Player ] -> [ Player previousPosition ]\nup [ stationary PlayerU ] [ recoil ] -> [ < PlayerU ] [ recoil ]\ndown [ stationary PlayerD ] [ recoil ] -> [ < PlayerD ] [ recoil ]\nleft [ stationary PlayerL ] [ recoil ] -> [ < PlayerL ] [ recoil ]\nright [ stationary PlayerR ] [ recoil ] -> [ < PlayerR ] [ recoil ]\nlate [ Player previousPosition ] [ recoil ] -> [ Player previousPosition ] [ ]\n\n(flooding animation)\n[ Flooding ] -> [ Water ]\n(shoot the water gun)\n[ action Player ] [ canMove WaterGun ] -> [ action Player ] [ WaterGun ]\nup [ action PlayerU | no Water ] [ WaterGun ] -> [ PlayerU | FloodingU ] [ WaterGun ] sfx8\ndown [ action PlayerD | no Water ] [ WaterGun ] -> [ PlayerD | FloodingD ] [ WaterGun ] sfx8\nleft [ action PlayerL | no Water ] [ WaterGun ] -> [ PlayerL | FloodingL ] [ WaterGun ] sfx8\nright [ action PlayerR | no Water ] [ WaterGun ] -> [ PlayerR | FloodingR ] [ WaterGun ] sfx8\nup [ action PlayerU | Water ] [ WaterGun ] -> [ PlayerU | > FloodingU ] [ WaterGun ] sfx8\ndown [ action PlayerD | Water ] [ WaterGun ] -> [ PlayerD | > FloodingD ] [ WaterGun ] sfx8\nleft [ action PlayerL | Water ] [ WaterGun ] -> [ PlayerL | > FloodingL ] [ WaterGun ] sfx8\nright [ action PlayerR | Water ] [ WaterGun ] -> [ PlayerR | > FloodingR ] [ WaterGun ] sfx8\n[ action Player ] [ canMove WaterGun ] -> [ Player ] [ canMove WaterGun ] sfx6\nlate up [ PlayerU | no Flooding ] [ WaterGun no canMove ] -> [ PlayerU | Water ] [ WaterGun ] sfx8\nlate down [ PlayerD | no Flooding ] [ WaterGun no canMove ] -> [ PlayerD | Water ] [ WaterGun ] sfx8\nlate left [ PlayerL | no Flooding ] [ WaterGun no canMove ] -> [ PlayerL | Water ] [ WaterGun ] sfx8\nlate right [ PlayerR | no Flooding ] [ WaterGun no canMove ] -> [ PlayerR | Water ] [ WaterGun ] sfx8\nlate [ Player ] [ no canMove WaterGun ] -> [ Player ] [ canMove WaterGun ]\n[ > Flooding | WaterBlocker ] -> [ Flooding | WaterBlocker ]\n[ > Flooding | stationary Water ] -> [ > Water | > Flooding ]\n(sinking animation)\n[ WaterSinking4 ] -> [ Water ]\n[ WaterSinking3 ] -> [ WaterSinking4 ]\n[ WaterSinking2 ] -> [ WaterSinking3 ]\n[ WaterSinking1 ] -> [ WaterSinking2 ]\n[ WaterDrown1 ] -> [ WaterSinking2 ]\n[ WaterSinking0 ] -> [ WaterSinking1 ]\n[ WaterDrown0 ] -> [ WaterDrown1 ]\n(water interacts with stuff)\nlate [ AnyWater Crate ] -> [ WaterSinking0 ] sfx9\nlate [ AnyWater Drownable ] -> [ WaterDrown0 ] sfx9\nlate [ AnyWater WaterBlocker ] -> [ WaterBlocker ]\n[ > Water | stationary Zombie ] -> [ > Water | > Zombie ]\n[ > Flooding | stationary Zombie ] -> [ > Flooding | > Zombie ]\n\n(move crates)\n[ > Pusher | stationary Pushable ] -> [ > Pusher | > Pushable ]\n\n(zombies)\n[ PlayerU | ZombieAsleep ] -> [ stationary ZombiePlayerU | ZombieAwake ] sfx1\n[ PlayerD | ZombieAsleep ] -> [ stationary ZombiePlayerD | ZombieAwake ] sfx1\n[ PlayerL | ZombieAsleep ] -> [ stationary ZombiePlayerL | ZombieAwake ] sfx1\n[ PlayerR | ZombieAsleep ] -> [ stationary ZombiePlayerR | ZombieAwake ] sfx1\n\n(werewolves)\nup [ stationary Werewolf GoU | no Direction ] -> [ > Werewolf | GoU ]\ndown [ stationary Werewolf GoD | no Direction ] -> [ > Werewolf | GoD ]\nleft [ stationary Werewolf GoL | no Direction ] -> [ > Werewolf | GoL ]\nright [ stationary Werewolf GoR | no Direction ] -> [ > Werewolf | GoR ]\nup [ stationary Werewolf | GoU WerewolfFood ] -> [ > Werewolf | ] sfx1\ndown [ stationary Werewolf | GoD WerewolfFood ] -> [ > Werewolf | ] sfx1\nleft [ stationary Werewolf | GoL WerewolfFood ] -> [ > Werewolf | ] sfx1\nright [ stationary Werewolf | GoR WerewolfFood ] -> [ > Werewolf | ] sfx1\n[ Vision ] -> [ ]\n[ Target ] -> [ ]\n[ stationary Werewolf no Direction | no Obstacle no Vision | ... | WerewolfFood ] -> [ Werewolf | > Vision | ... | WerewolfFood ]\n[ > Vision | no Obstacle no Vision ] -> [ | > Vision ]\n[ > Vision | Zombie ] -> [ > HiLevelTarget | Zombie ]\n[ > Vision | Player ] -> [ > LoLevelTarget | Player ]\n[ no Werewolf | > Target ] -> [ > Target | ]\nup [ stationary Werewolf | > HiLevelTarget ] -> [ > Werewolf | GoU ]\ndown [ stationary Werewolf | > HiLevelTarget ] -> [ > Werewolf | GoD ]\nleft [ stationary Werewolf | > HiLevelTarget ] -> [ > Werewolf | GoL ]\nright [ stationary Werewolf | > HiLevelTarget ] -> [ > Werewolf | GoR ]\n[ stationary Werewolf no Direction | WerewolfFood ] -> [ > Werewolf | no Direction ] sfx1\nup [ stationary Werewolf | > LoLevelTarget ] -> [ > Werewolf | GoU ]\ndown [ stationary Werewolf | > LoLevelTarget ] -> [ > Werewolf | GoD ]\nleft [ stationary Werewolf | > LoLevelTarget ] -> [ > Werewolf | GoL ]\nright [ stationary Werewolf | > LoLevelTarget ] -> [ > Werewolf | GoR ]\n\nlate [ Player ] -> [ Player Winning ]\nlate [ Monster ] [ Winning ] -> [ Monster ] [ ]\nlate [ Animation ] [ Winning ] -> [ Animation ] [ ]\nlate [ SnakeHead no previousHead ] [ Winning ] -> [ SnakeHead ] [ ]\nlate [ Player Gun ] -> Win\nlate [ Lines ] -> Win\n\n[]->[] again (let's hope there's no infinite loop)\n\n==============\nWINCONDITIONS\n==============\n\nSome Winning\n\n=======\nLEVELS\n=======\n\nmessage Oh no. Zombies!\n\n1######\n#zl...#\n#..z..#\n#p...g#\n#..z..#\n#..u..#\n#..x..#\n#######\n\nmessage What's this?\n\n............\n.......tq...\n......y.ti..\n.....t.y.t..\n....y.t.y...\n...t.y.t....\n..y.t.yi....\n..qyyeqy....\n...eq..q....\n.....q..r...\n......qy....\n............\n\nmessage A snake gun! Just what I needed.\n\n1######\n#zl...#\n#..z..#\n#....s#\n#..z..#\n#..u..#\n#..x..#\n#######\n\nmessage Take that, zombie scum!\n\n2########\n#.......#\n#.#.z.#.#\n#..z.z..#\n#.......#\n#.......#\n#.s.#...#\n#.......#\n#...z...#\n#########\n\nmessage Victory, thy name is snake gun!\n\n3######\n#z..#z#\n#...z.#\n#.s...#\n#.....#\n#.c...#\n#..#..#\n#######\n\nmessage Oh no. Werewolves!\n\n4######\n#..w.w#\n#z....#\n#c#...#\n#sc...#\n#######\n\nmessage I'm almost out of snake bullets!\n\n5######\n#..w..#\n#....z#\n#w....#\n##s..##\n#.....#\n#.c...#\n#.....#\n#######\n\nmessage There's only one snake left.\n\n6############\n#.c....w....#\n#z#.....w.w.#\n#.c.cz......#\n#...........#\n#...........#\n#.#...w.....#\n#s..........#\n#############\n\nmessage What do I do now? Without snakes?\n\n7#######\n#g.....#\n#..w...#\n#.c....#\n#..~...#\n#..~..w#\n#p.#...#\n########\n\nmessage What's this? Another snake gun?\n\n............\n......tq....\n......rtq...\n...tqy.r.r..\n...r..y.y...\n..y.te.t....\n.t.y..yi....\n.qt.teqy....\n..eeq..i....\n.....i..r...\n......qy....\n............\n\n(water gun, snake gun gun, snake rocket launcher, crowbar, explosive werewolf food gun...)\nmessage No, it's an ocean gun!\n\n7#######\n#o.....#\n#.cw...#\n#......#\n#..~...#\n#..~...#\n#..#...#\n########\n\nmessage I wonder if zombies can swim.\n\n8########\n#....o..#\n#.......#\n#.z.....#\n#.....z.#\n#w......#\n#......w#\n#########\n\nmessage Take that, werewolf scum!\n\n9#########\n##.....w##\n#w.......#\n#........#\n#...z....#\n#.z.....z#\n#...cc...#\n##...o..##\n##########\n\nmessage I'm almost out of water!\n\n10########\n#....o...#\n#........#\n#.z.....z#\n#...z....#\n#........#\n#w.......#\n##########\n\nmessage Only a few monsters are left.\nmessage But I ran out of bullets.\nmessage What shall I do?\n\n11##########\n#\"##......w#\n###..p.....#\n##....c....#\n#..........#\n#..z..z....#\n#z......z..#\n#z.z.......#\n#.........~#\n#........~~#\n#.....z.~~~#\n############\n\nmessage A noble sacrifice.\nmessage Thanks for playing!\nmessage THE END\n", [2, 0, 4, 0, 3, 2, 3, 0, 1], "background digit6 wall:0,background wall:1,1,1,1,1,1,1,1,1,background collider snaked snaker:2,background collider snaked snakeu:3,3,\n3,3,3,background playeru previousposition snakegun snakeu:4,1,1,background collider snakel snaker:5,1,background crate:6,background:7,7,1,7,\n1,1,5,7,7,7,7,7,7,1,1,5,7,\n6,7,7,7,7,1,1,background collider snaked snakel:8,3,3,3,3,3,\nbackground collider snaker snakeu:9,1,1,6,7,7,7,7,background werewolf:10,5,1,1,background previouscollision previoushead snakeheadl:11,\n7,7,7,7,7,5,1,1,5,10,7,7,7,\n7,5,1,1,5,7,7,7,7,7,5,1,1,\n5,10,7,7,7,7,5,1,1,8,3,3,3,\n3,3,background collider snakel snakeu:12,1,1,1,1,1,1,1,1,1,1,\n", 15, "1627778871030.2454"] ], [ `gallery: newton's crates`, - ["title Newton's Crates\nauthor Andrey Shevchuk\nhomepage shevchuk.net\n\nbackground_color darkbrown\ntext_color lightgrey\nnoaction\n\nagain_interval 0.1\n\n========\nOBJECTS\n========\n\nBackground\nlightgrey\n00000\n00000\n00000\n00000\n00000\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nBROWN darkbrown\n11111\n11111\n11111\n11111\n11111\n\nPlayer\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nCrate\norange Yellow\n00000\n00000\n00000\n00000\n00000\n\nFinalist0\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nFinalist1\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nFinalist2\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nGenius\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner001\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner002\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner003\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.433.\n...4.\n\nWinner004\nGrey Orange White Brown Black\n.000.\n3010.\n.0303\n.334.\n.4...\n\nWinner005\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.433.\n...4.\n\nWinner006\nGrey Orange White Brown Black\n.000.\n3010.\n.0303\n.334.\n.4...\n\nWinner007\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.433.\n...4.\n\nWinner008\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nm1\ntransparent\n\nm2\ntransparent\n\nm3\ntransparent\n\nm4\ntransparent\n\nm5\ntransparent\n\nm6\ntransparent\n\n\nWinner101\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner102\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner103\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner104\nGrey Orange White Brown Black\n.000.\n.013.\n3033.\n.333.\n.4.4.\n\nWinner105\nGrey Orange White Brown Black\n.000.\n.030.\n3033.\n.333.\n.4.4.\n\nWinner106\nGrey Orange White Brown Black\n.000.\n.013.\n3033.\n.333.\n.4.4.\n\nWinner107\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner108\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner109\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner201\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner202\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner203\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner204\nGrey Orange White Brown Black\n.....\n.0003\n3000.\n.030.\n.4.4.\n\nWinner205\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner206\nGrey Orange White Brown Black\n.....\n.0003\n3000.\n.030.\n.4.4.\n\nWinner207\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner208\nGrey Orange White Brown Black\n.....\n.0003\n3000.\n.030.\n.4.4.\n\nWinner209\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner210\nGrey Orange White Brown Black\n.....\n.0003\n3000.\n.030.\n.4.4.\n\nWinner211\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner301\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner302\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner303\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.343.\n.4...\n\nWinner304\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.334.\n.4...\n\n\nWinner305\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4..4\n\nWinner306\nGrey Orange White Brown Black\n.000.\n3010.\n.0303\n.333.\n.4..4\n\nWinner307\nGrey Orange White Brown Black\n.000.\n30103\n.030.\n.333.\n.4..4\n\nWinner308\nGrey Orange White Brown Black DarkBrown\n.000.\n3010.\n.030.\n.3335\n.4..4\n\nWinner309\nGrey Orange White Brown Black DarkBrown\n.000.\n3010.\n.030.\n.3335\n.4..4\n\n(Hiding amongst the winners, a fruit)\n\nApple\nGreen Red Transparent DarkRed\n22200\n21032\n11133\n11133\n21332\n\nAppleCore\nGreen Red Transparent DarkRed White\n22200\n21032\n22422\n22342\n21332\n\nWinner401\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner402\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner403\nGrey Orange White Brown Black\n.000.\n30103\n.030.\n.333.\n.4.4.\n\nWinner404\nGrey Orange White Brown Black\n.000.\n.313.\n.333.\n.333.\n.4.4.\n\nWinner405\nGrey Orange White Brown Black\n.000.\n30103\n.030.\n.333.\n.4.4.\n\nWinner406\nGrey Orange White Brown Black\n.000.\n.313.\n.333.\n.333.\n.4.4.\n\nWinner407\nGrey Orange White Brown Black\n.000.\n30103\n.030.\n.333.\n.4.4.\n\nWinner408\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner409\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner501\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner502\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner503\nGrey Orange White Brown Black\n.....\n.000.\n30103\n.030.\n.4.4.\n\nWinner504\nGrey Orange White Brown Black DarkGrey\n.....\n.000.\n30003\n.030.\n.5.5.\n\nWinner505\nGrey Orange White Brown Black DarkGrey\n.....\n.000.\n30003\n.000.\n.5.5.\n\nWinner506\nGrey Orange White Brown Black DarkGrey\n.....\n30003\n.000.\n.000.\n.5.5.\n\nWinner507\nGrey Orange White Brown Black DarkGrey\n.....\n30003\n.000.\n.000.\n.5.5.\n\nWinner508\nGrey Orange White Brown Black DarkGrey\n.....\n30003\n.000.\n.000.\n.5.5.\n\nWinner509\nGrey Orange White Brown Black DarkGrey\n.....\n30003\n.000.\n.000.\n.5.5.\n\nwait0\ntransparent\n\nwait1\ntransparent\n\nwait2\ntransparent\n\nwait3\ntransparent\n\nwait4\ntransparent\n\nwait5\ntransparent\n\nCloud\ngreen (as usual)\n.....\n.....\n.....\n.....\n.....\n\nclearsky1\ntransparent yellow\n\nclearsky2\ntransparent yellow\n\nclearsky3\ntransparent yellow\n\nfapple0\nGreen #9a1f2a Transparent DarkRed\n22200\n21032\n11133\n11133\n21332\n\nfapple1\n#2a6308 DarkRed Transparent DarkRed\n22002\n21100\n11113\n11133\n23332\n\nfapple2\n#59a72a Red Transparent Red\n22202\n21032\n11133\n11333\n21332\n\nfapple3\n#32720C #9a1f2a Transparent #9a1f2a\n00222\n21032\n11133\n11133\n23332\n\nsquashUL\nGreen Red Transparent DarkRed\n11122\n12222\n22222\n22222\n22222\n\nsquashUR\nGreen Red Transparent Red\n22333\n22223\n22222\n22222\n22222\n\nsquashDL\nGreen Red Transparent DarkRed\n22222\n22222\n22222\n22222\n12222\n\nsquashDR\nGreen Red Transparent Red\n22222\n22222\n22222\n22223\n22233\n\nfappleg\n#29580d #71ae4c Transparent #50723b\n22200\n21032\n11133\n11133\n21332\n\nsquashgU\n#50723b Red Transparent DarkRed\n20022\n22222\n22222\n22222\n22222\n\nsquashgR\n#29580d #71ae4c Transparent #50723b\n22222\n22222\n22222\n22222\n22223\n\nsquashgL\n#29580d #71ae4c Transparent #50723b\n22222\n22222\n22222\n22222\n32222\n\nsquashgD\n#29580d #71ae4c Transparent #50723b\n22222\n22222\n22222\n22222\n32222\n\nsquashU\ntransparent\n\nsquashR\ntransparent\n\nsquashL\ntransparent\n\nsquashD\ntransparent\n\nspaace\nblue\n.....\n.....\n.....\n.....\n.....\n\nzCrate\nOrange Yellow\n00000\n0...0\n0.0.0\n0...0\n00000\n\nlastCrateOnTarget\nRed Yellow\n00000\n00000\n00000\n00000\n00000\n\nlastTarget\ntransparent\n\nyeaCrate\nOrange Yellow\n00000\n0...0\n0.0.0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\nz = zCrate\n0 = Crate and Target\n@ = zCrate and Target\no = Target\na = Apple\nc = AppleCore\n1 = m1 and Apple and Crate\n2 = m2 and Apple\n3 = m3 and Apple and Crate\n4 = m4 and Apple and Crate\n5 = m5 and Apple and Crate\n6 = m6 and Apple and Crate\ny = cloud\n, = spaace\ng = lastTarget\nh = lastTarget and Crate\n\nInertial = Crate or zCrate or Wall or lastCrateOnTarget\n\nMumbling = m1 or m2 or m3 or m4 or m5 or m6\n\nClearsky = clearsky1 or clearsky2 or clearsky3\nFapple = fapple0 or fapple1 or fapple2 or fapple3\nFapples = Fapple or fappleg\nFinalists = Finalist0 or Finalist1 or Finalist2\nPlayers = Player or Finalists or Genius\nSquashing = fapple or Wall or fappleg or lastCrateOnTarget\n\nWaitFrames = wait0 or wait1 or wait2 or wait3 or wait4 or wait5\n\nWinAnimationStartFrame = Winner001 or Winner101 or Winner201 or Winner301 or Winner401 or Winner501\n\nWinnerFrames = Winner001 or Winner002 or Winner003 or Winner004 or Winner005 or Winner006 or Winner007 or Winner008 or Winner101 or Winner102 or Winner103 or Winner104 or Winner105 or Winner106 or Winner107 or Winner108 or Winner109 or Winner201 or Winner202 or Winner203 or Winner204 or Winner205 or Winner206 or Winner207 or Winner208 or Winner209 or Winner210 or Winner211 or Winner301 or Winner302 or Winner303 or Winner304 or Winner305 or Winner306 or Winner307 or Winner308 or Winner309 or Winner401 or Winner402 or Winner403 or Winner404 or Winner405 or Winner406 or Winner407 or Winner408 or Winner409 or Winner501 or Winner502 or Winner503 or Winner504 or Winner505 or Winner506 or Winner507 or Winner508 or Winner509\n\n=======\nSOUNDS\n=======\n\nInertial MOVE 62522307 (66976107) (36772507) (36718107)\n(Player Move 61661707) (too repetitive on long runs)\nsfx0 60497100 (zCrate moves on target)\n(sfx1 (58358104) (16763304) (bumping into a wall))\n\nsfx1 17123907 (green)\nsfx2 74112904\nsfx3 60342907\nsfx5 47189907\nsfx6 68393107\nsfx4 21039704 (wall)\nsfx10 70198308\nsfx7 65707900 (Level Complete)\nUndo 54083907\nRestart 5315306\nsfx9 94701308 (30980508) (16825502) (apple!)\nsfx8 67172908 (eurika)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nsquashUL \nsquashUR\nsquashDL\nsquashDR\nsquashgU\nsquashgD\nsquashgL\nsquashgR\nsquashU\nsquashL\nsquashD\nsquashR, WaitFrames, Mumbling\nTarget, Apple, AppleCore, cloud, Clearsky, spaace, lastTarget\nPlayers, Inertial, yeaCrate, WinnerFrames, fapples\n\n======\nRULES\n======\n\n(The actual rules of the game)\n\n[ > Player | Inertial ] -> [ > Player | > Inertial ]\n[ > Inertial | Inertial ] -> [ Inertial | > Inertial ]\n[ > Wall ] -> [ Wall ]\n[ > zCrate | Target ] -> [ > zCrate | Target ] sfx0\n\n\n(Win conditions, convoluted for the purposes of animation)\n\nlate [ zCrate Target ] -> [ yeaCrate Target ]\nlate [ yeaCrate ][ zCrate ] -> [ zCrate ][ zCrate ]\nlate [ yeaCrate ][Player] -> [yeaCrate][ wait0 random WinAnimationStartFrame ] sfx7\n\n\n(Win animations)\n\nlate [wait4] -> [wait5] again\nlate [wait3] -> [wait4] again\nlate [wait2] -> [wait3] again\nlate [wait1] -> [wait2] again\nlate [wait0] -> [wait1] again\n\nlate [ Winner509 ] -> Win\nlate [ Winner508 ][wait3] -> [ Winner509 ][wait0] again\nlate [ Winner507 ][wait3] -> [ Winner508 ][wait0] again\nlate [ Winner506 ][wait3] -> [ Winner507 ][wait0] again\nlate [ Winner505 ][wait3] -> [ Winner506 ][wait0] again\nlate [ Winner504 ][wait3] -> [ Winner505 ][wait0] again\nlate [ Winner503 ][wait3] -> [ Winner504 ][wait0] again\nlate [ Winner502 ][wait3] -> [ Winner503 ][wait0] again\nlate [ Winner501 ][wait3] -> [ Winner502 ][wait0] again\n\nlate [ Winner409 ] -> Win\nlate [ Winner408 ][wait3] -> [ Winner409 ][wait0] again\nlate [ Winner407 ][wait3] -> [ Winner408 ][wait0] again\nlate [ Winner406 ][wait3] -> [ Winner407 ][wait0] again\nlate [ Winner405 ][wait3] -> [ Winner406 ][wait0] again\nlate [ Winner404 ][wait3] -> [ Winner405 ][wait0] again\nlate [ Winner403 ][wait3] -> [ Winner404 ][wait0] again\nlate [ Winner402 ][wait3] -> [ Winner403 ][wait0] again\nlate [ Winner401 ][wait3] -> [ Winner402 ][wait0] again\n\nlate [ Winner309 ] -> Win\nlate [ Winner308 ][wait3] -> [ Winner309 ][wait0] again\nlate [ Winner307 ][wait3] -> [ Winner308 ][wait0] again\nlate [ Winner306 ][wait3] -> [ Winner307 ][wait0] again\nlate [ Winner305 ][wait3] -> [ Winner306 ][wait0] again\nlate [ Winner304 ][wait3] -> [ Winner305 ][wait0] again\nlate [ Winner303 ][wait3] -> [ Winner304 ][wait0] again\nlate [ Winner302 ][wait3] -> [ Winner303 ][wait0] again\nlate [ Winner301 ][wait3] -> [ Winner302 ][wait0] again\n\nlate [ Winner211 ] -> Win\nlate [ Winner210 ][wait3] -> [ Winner211 ][wait0] again\nlate [ Winner209 ][wait3] -> [ Winner210 ][wait0] again\nlate [ Winner208 ][wait3] -> [ Winner209 ][wait0] again\nlate [ Winner207 ][wait3] -> [ Winner208 ][wait0] again\nlate [ Winner206 ][wait3] -> [ Winner207 ][wait0] again\nlate [ Winner205 ][wait3] -> [ Winner206 ][wait0] again\nlate [ Winner204 ][wait3] -> [ Winner205 ][wait0] again\nlate [ Winner203 ][wait3] -> [ Winner204 ][wait0] again\nlate [ Winner202 ][wait3] -> [ Winner203 ][wait0] again\nlate [ Winner201 ][wait3] -> [ Winner202 ][wait0] again\n\nlate [ Winner109 ] -> Win\nlate [ Winner108 ][wait3] -> [ Winner109 ][wait0] again\nlate [ Winner107 ][wait3] -> [ Winner108 ][wait0] again\nlate [ Winner106 ][wait3] -> [ Winner107 ][wait0] again\nlate [ Winner105 ][wait3] -> [ Winner106 ][wait0] again\nlate [ Winner104 ][wait3] -> [ Winner105 ][wait0] again\nlate [ Winner103 ][wait3] -> [ Winner104 ][wait0] again\nlate [ Winner102 ][wait3] -> [ Winner103 ][wait0] again\nlate [ Winner101 ][wait3] -> [ Winner102 ][wait0] again\n\nlate [ Winner008 ] -> Win\nlate [ Winner007 ][wait3] -> [ Winner008 ][wait0] again\nlate [ Winner006 ][wait3] -> [ Winner007 ][wait0] again\nlate [ Winner005 ][wait3] -> [ Winner006 ][wait0] again\nlate [ Winner004 ][wait3] -> [ Winner005 ][wait0] again\nlate [ Winner003 ][wait3] -> [ Winner004 ][wait0] again\nlate [ Winner002 ][wait3] -> [ Winner003 ][wait0] again\nlate [ Winner001 ][wait3] -> [ Winner002 ][wait0] again\n\n\n(Apples and Mumblings)\n\nlate [ Player Apple ] -> [ Player AppleCore] sfx9\n\nlate [ Player m1 ] -> [ Player ] message Doesn't make much sense to put easter eggs into an open source game, does it? :)\nlate [ Player m2 ] -> [ Player ] message Ooooo! An apple!\nlate [ Player m3 ] -> [ Player ] message Who even builds warehouses like this!?\nlate [ Player m4 ] -> [ Player ] message Boy, has science funding in this country seen better days...\nlate [ Player m5 ] -> [ Player ] message You've gained +3 health!\nlate [ Player m6 ] -> [ Player ] message Wait... how was I supposed to find this one!?\n\n\n\n(The cutscene ;)\n\nlate [ Crate lastTarget ] -> [ yeaCrate lastTarget ]\nlate [lastTarget][ Crate ][ yeaCrate ] -> [lastTarget][ Crate ][ Crate ]\nlate down [yeaCrate][cloud | ... | Player] -> [lastCrateOnTarget][cloud fapple0 | ... | Player] sfx10 (the aimed apple spawn)\n\ndown [ fapple | Player ] -> [ fapple | Finalist0 wait0 ] sfx8 again\n\n(The intriguing pause)\n[Finalist2 wait5] -> [Genius] again\n[Finalist1 wait5] -> [Finalist2 wait0] again\n[Finalist0 wait5] -> [Finalist1 wait0] again\n\nrandom [cloud no fapple][Genius] -> [cloud random fapple][Genius]\ndown [ cloud fapple | ... | spaace no fapples | fapples] -> [ cloud fappleg | ... | spaace | fapples]\ndown [ fapples | no wall no players no fapples no lastCrateOnTarget] -> [> fapples |] again\ndown [fapples | ... | moving fapples] -> [ | ... | moving fapples]\n\n(These are only for sfx)\n[> fapples | | wall] -> [ | fapples | wall] sfx4\n[> fapples | | lastCrateOnTarget] -> [ | fapples | lastCrateOnTarget] sfx4\n[> fappleg | | fapples] -> [ | fappleg | fapples] sfx1\n[> fapple0 | | fapples] -> [ | fapple0 | fapples] sfx2\n[> fapple1 | | fapples] -> [ | fapple1 | fapples] sfx3\n[> fapple2 | | fapples] -> [ | fapple2 | fapples] sfx5\n[> fapple3 | | fapples] -> [ | fapple3 | fapples] sfx6\n\n(Randomize clouds for the next iteration)\n[Clearsky] -> [cloud]\n[moving fapple][cloud] -> [moving fapple][random Clearsky]\n[clearsky1] -> [cloud]\n[cloud] -> [cloud] again\n\n(Squashing)\nleft [stationary fapples | stationary squashing] -> [fapples squashL | squashing]\nright [stationary fapples | stationary squashing] -> [fapples squashR | squashing]\ndown [stationary fapples | stationary squashing] -> [fapples squashD | squashing]\nup [stationary fapples | stationary squashing] -> [fapples squashU | squashing]\n[squashU squashL] -> [squashU squashL squashUL]\n[squashU squashR] -> [squashU squashR squashUR]\n[squashD squashL] -> [squashD squashL squashDL]\n[squashD squashR] -> [squashD squashR squashDR]\n[squashD squashU squashL squashR] -> []\n\nright [stationary fappleg | stationary fappleg] -> [fappleg squashgR | squashgL fappleg]\ndown [stationary fappleg | stationary fappleg] -> [fappleg squashgD | squashgU fappleg]\n\n==============\nWINCONDITIONS\n==============\n\n(All zCrate on Target)\n\n=======\nLEVELS\n=======\n\n#####################\n#####################\n#####################\n#####################\n#######o#############\n#######.......#######\n#######.####1.#######\n#######z#...#.#######\n#######.#.p.#.#######\n#######.#...#.#######\n#######.##.##.#######\n#######......z#######\n#############o#######\n#####################\n#####################\n#####################\n#####################\n\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n###...............###\n###.......p.......###\n###..###########..###\n###o.z..*...*..z.o###\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n###...............###\n###.......p.......###\n##########*#####..###\n###o.z*********z.o###\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n\n####################\n####################\n####################\n####################\n######........######\n######....*...######\n######..####..######\n######..#..#..######\n######....z#..######\n######...###..######\n######.o......######\n######...p....######\n####################\n####################\n####################\n####################\n####################\n\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n########.....########\n###########..########\n########..z*.########\n########.p###########\n########....o########\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n\n#####################\n######.........######\n#####...........#####\n#####....p.z....#####\n#####...##.##...#####\n#####...#...#...#####\n#####...#.#.#...#####\n#####...#.@.#...#####\n#####...#.o.#...#####\n#####...#####...#####\n#####...#####...#####\n#####....####...#####\n#####...#####...#####\n#####....####...#####\n#####..2..####..#####\n#####..########.#####\n#####################\n\n####################\n####################\n####################\n####################\n##................##\n##....p...........##\n##..#####..#####..##\n##..#z**#..#zzz#..##\n##..#*#*#..#*.*#..##\n##..#**o#..#000#..##\n##..#####..#####..##\n##................##\n##................##\n####################\n####################\n####################\n####################\n\n#####################\n#####################\n#####################\n####.............####\n####.***********.####\n####.*.........*.####\n####.*.#######.*.####\n####.*.#######.*.####\n####.*.##.*.##.3.####\n####.*.##.*.##.*.####\n####.*.##.*.##.*.####\n####.*.##.*....*.####\n####.*p##.******.####\n####.zo##........####\n#####################\n#####################\n#####################\n\n#####################\n#####################\n#####..........######\n#####..........######\n#####........p.######\n#####...####*########\n#####...#***#....####\n#####...#*..*....####\n#####...#*..*....####\n#####...*#**z...o####\n#####...#........####\n#####...#...z....####\n#########...o....####\n#########........####\n#####################\n#####################\n#####################\n\n#####################\n#####################\n#####################\n##.............#...##\n##.............#...##\n##.............#...##\n##......z......#...##\n##...#####*##..#...##\n##...#..#o*.#..#...##\n##...#..###.####...##\n##...#....*........##\n##...#....*.p......##\n##...#.............##\n##...#.............##\n#####################\n#####################\n#####################\n\n####################\n######....##########\n######.#############\n###o##.......#######\n###z########.#######\n###.##******.#...###\n###......***.#.#.###\n######***.**.#.#.###\n######***.**.#.#.###\n####......***#.#.###\n####.#*******#.#####\n####.#*******..#####\n####.###############\n####.....p...#######\n############.#######\n#########....#######\n####################\n\n#####################\n#####################\n###.......p.......###\n###.#z##.###.#.##.###\n###.#*##.###.#.##.###\n###.#*##.###.#z##.###\n###.#*##.###*#*##.###\n###..*..*...*.*oo.###\n#####*##*###*#*######\n#####*##6###*#*######\n#####*##*###*#.######\n#####*##*###*#.######\n########.###.########\n############.########\n#####################\n#####################\n#####################\n\n#####################\n#####################\n###.######.######.###\n###..####...####..###\n###...##.....##...###\n###...#4******#...###\n###...#***z***#...###\n###...#***#***#...###\n###...#*******#...###\n###...#*******#...###\n###...####.####...###\n###...............###\n###...o.......p...###\n###...............###\n#####################\n#####################\n#####################\n\n#####################\n#####################\n####*#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*..*.####\n####p#*..*.#*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n####o.*.#*..*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#z.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n#####################\n#####################\n\n#####################\n#####################\n#####################\n############..#######\n#####.........#######\n#####..######.#######\n#####.p****5#.#######\n#####.##***##.#######\n#####.#.***.#.#######\n#####.#.****#########\n#####.#****....######\n#####.#######.z.#####\n#####.......#..o#####\n#####################\n#####################\n#####################\n#####################\n\nmessage No more than one more...\n\n##########.....########.o###########\n###........###...........###########\n###.######.#.z..####z#z#z###########\n###.######.#...#####...#o###########\n###.######.o.####.##.###.###########\n###.#######..#######.#...#####..####\n#.o.**#####.########.###o.####..z...\n#.###.#####.########......####.##o..\n....z.#####....#####....######*###.#\n..###.########.##############..o##.#\n#.....########.##############.p.z..#\n##############.###############.##..#\n############...##########.####.#####\n############z.o#########.#####.#####\n###########.*...##############.#####\n###########..#.................#####\n###########..#..####################\n\nmessage That's it!\nmessage I'm done!\nmessage I quit!\nmessage I'm going back to my calculus!\n\n#################################################\n#yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy#\n#...............................................#\n#..................................,............#\n#.....,,,,,,.......................,,...........#\n#.....,....,...................,,,,,,,..........#\n#.....,.........................................#\n#.....,................,,,.,,....,,,,...........#\n#.....,,,,.....,,,,,...,..,..,..,...,...........#\n#.....,................,..,..,..,...,...........#\n#.....,........,,,,,...,..,..,..,...,...........#\n#.....,................,..,..,..,...,..,,.......#\n#.....,................,..,..,...,,,,..,,.......#\n#.......................................,.......#\n#......................................,........#\n#...............................................#\n#.........,.............,.......................#\n#.........,.............,.......................#\n#.........,.............,.......................#\n#.........,.............,...............,.......#\n#......,,,,..,...,...,,,,...,,,.....,,...,......#\n#.....,...,..,...,..,...,..,...,....,,...,,.....#\n#.....,...,..,...,..,...,..,,,,,.........,,.....#\n#.....,...,..,...,..,...,..,........,,...,,.....#\n#.....,...,..,...,..,...,..,........,,...,,.....#\n#......,,,,...,,,,...,,,,...,,,......,...,......#\n#...................................,...,.......#\n#...............................................#\n#..................*........*...................#\n#.................***.......*..**...............#\n#................#####ggggg#####*...............#\n#................#####g###g#####*...............#\n#................#####g#h#g#####................#\n#.......p........#####h###g#####................#\n######################hhhhh######################\n\n",[1,1,1,1,1,3,0,0,0,0,0,2,0,1,2,1,0,0,1,1,1,1,0,0,3,3,0,3,0,0,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,\n0,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,background:1,1,1,1,1,1,1,1,1,1,\n1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,\n0,0,0,0,0,1,1,background player:2,1,1,1,1,1,1,1,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,1,background target:3,1,0,0,0,0,0,0,0,0,apple background crate m4:4,1,\nbackground crate:5,5,5,0,1,1,1,0,0,0,0,0,0,0,1,5,5,5,5,5,0,\n1,1,1,0,0,0,0,0,0,1,5,5,5,5,5,5,0,1,1,1,0,\n0,0,0,0,1,1,5,background zcrate:6,1,0,5,5,1,1,1,1,0,0,0,0,0,\n0,1,1,5,5,5,5,5,0,1,1,1,0,0,0,0,0,0,0,1,5,\n5,5,5,5,0,1,1,1,0,0,0,0,0,0,0,0,5,5,5,5,5,\n0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,\n0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,\n0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",12,"1627778916845.6555"] + ["title Newton's Crates\nauthor Andrey Shevchuk\nhomepage shevchuk.net\n\nbackground_color darkbrown\ntext_color lightgrey\nnoaction\n\nagain_interval 0.1\n\n========\nOBJECTS\n========\n\nBackground\nlightgrey\n00000\n00000\n00000\n00000\n00000\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nBROWN darkbrown\n11111\n11111\n11111\n11111\n11111\n\nPlayer\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nCrate\norange Yellow\n00000\n00000\n00000\n00000\n00000\n\nFinalist0\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nFinalist1\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nFinalist2\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nGenius\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner001\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner002\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner003\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.433.\n...4.\n\nWinner004\nGrey Orange White Brown Black\n.000.\n3010.\n.0303\n.334.\n.4...\n\nWinner005\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.433.\n...4.\n\nWinner006\nGrey Orange White Brown Black\n.000.\n3010.\n.0303\n.334.\n.4...\n\nWinner007\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.433.\n...4.\n\nWinner008\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nm1\ntransparent\n\nm2\ntransparent\n\nm3\ntransparent\n\nm4\ntransparent\n\nm5\ntransparent\n\nm6\ntransparent\n\n\nWinner101\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner102\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner103\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner104\nGrey Orange White Brown Black\n.000.\n.013.\n3033.\n.333.\n.4.4.\n\nWinner105\nGrey Orange White Brown Black\n.000.\n.030.\n3033.\n.333.\n.4.4.\n\nWinner106\nGrey Orange White Brown Black\n.000.\n.013.\n3033.\n.333.\n.4.4.\n\nWinner107\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner108\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner109\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner201\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner202\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner203\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner204\nGrey Orange White Brown Black\n.....\n.0003\n3000.\n.030.\n.4.4.\n\nWinner205\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner206\nGrey Orange White Brown Black\n.....\n.0003\n3000.\n.030.\n.4.4.\n\nWinner207\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner208\nGrey Orange White Brown Black\n.....\n.0003\n3000.\n.030.\n.4.4.\n\nWinner209\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner210\nGrey Orange White Brown Black\n.....\n.0003\n3000.\n.030.\n.4.4.\n\nWinner211\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner301\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner302\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner303\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.343.\n.4...\n\nWinner304\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.334.\n.4...\n\n\nWinner305\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4..4\n\nWinner306\nGrey Orange White Brown Black\n.000.\n3010.\n.0303\n.333.\n.4..4\n\nWinner307\nGrey Orange White Brown Black\n.000.\n30103\n.030.\n.333.\n.4..4\n\nWinner308\nGrey Orange White Brown Black DarkBrown\n.000.\n3010.\n.030.\n.3335\n.4..4\n\nWinner309\nGrey Orange White Brown Black DarkBrown\n.000.\n3010.\n.030.\n.3335\n.4..4\n\n(Hiding amongst the winners, a fruit)\n\nApple\nGreen Red Transparent DarkRed\n22200\n21032\n11133\n11133\n21332\n\nAppleCore\nGreen Red Transparent DarkRed White\n22200\n21032\n22422\n22342\n21332\n\nWinner401\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner402\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner403\nGrey Orange White Brown Black\n.000.\n30103\n.030.\n.333.\n.4.4.\n\nWinner404\nGrey Orange White Brown Black\n.000.\n.313.\n.333.\n.333.\n.4.4.\n\nWinner405\nGrey Orange White Brown Black\n.000.\n30103\n.030.\n.333.\n.4.4.\n\nWinner406\nGrey Orange White Brown Black\n.000.\n.313.\n.333.\n.333.\n.4.4.\n\nWinner407\nGrey Orange White Brown Black\n.000.\n30103\n.030.\n.333.\n.4.4.\n\nWinner408\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner409\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner501\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner502\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner503\nGrey Orange White Brown Black\n.....\n.000.\n30103\n.030.\n.4.4.\n\nWinner504\nGrey Orange White Brown Black DarkGrey\n.....\n.000.\n30003\n.030.\n.5.5.\n\nWinner505\nGrey Orange White Brown Black DarkGrey\n.....\n.000.\n30003\n.000.\n.5.5.\n\nWinner506\nGrey Orange White Brown Black DarkGrey\n.....\n30003\n.000.\n.000.\n.5.5.\n\nWinner507\nGrey Orange White Brown Black DarkGrey\n.....\n30003\n.000.\n.000.\n.5.5.\n\nWinner508\nGrey Orange White Brown Black DarkGrey\n.....\n30003\n.000.\n.000.\n.5.5.\n\nWinner509\nGrey Orange White Brown Black DarkGrey\n.....\n30003\n.000.\n.000.\n.5.5.\n\nwait0\ntransparent\n\nwait1\ntransparent\n\nwait2\ntransparent\n\nwait3\ntransparent\n\nwait4\ntransparent\n\nwait5\ntransparent\n\nCloud\ngreen (as usual)\n.....\n.....\n.....\n.....\n.....\n\nclearsky1\ntransparent yellow\n\nclearsky2\ntransparent yellow\n\nclearsky3\ntransparent yellow\n\nfapple0\nGreen #9a1f2a Transparent DarkRed\n22200\n21032\n11133\n11133\n21332\n\nfapple1\n#2a6308 DarkRed Transparent DarkRed\n22002\n21100\n11113\n11133\n23332\n\nfapple2\n#59a72a Red Transparent Red\n22202\n21032\n11133\n11333\n21332\n\nfapple3\n#32720C #9a1f2a Transparent #9a1f2a\n00222\n21032\n11133\n11133\n23332\n\nsquashUL\nGreen Red Transparent DarkRed\n11122\n12222\n22222\n22222\n22222\n\nsquashUR\nGreen Red Transparent Red\n22333\n22223\n22222\n22222\n22222\n\nsquashDL\nGreen Red Transparent DarkRed\n22222\n22222\n22222\n22222\n12222\n\nsquashDR\nGreen Red Transparent Red\n22222\n22222\n22222\n22223\n22233\n\nfappleg\n#29580d #71ae4c Transparent #50723b\n22200\n21032\n11133\n11133\n21332\n\nsquashgU\n#50723b Red Transparent DarkRed\n20022\n22222\n22222\n22222\n22222\n\nsquashgR\n#29580d #71ae4c Transparent #50723b\n22222\n22222\n22222\n22222\n22223\n\nsquashgL\n#29580d #71ae4c Transparent #50723b\n22222\n22222\n22222\n22222\n32222\n\nsquashgD\n#29580d #71ae4c Transparent #50723b\n22222\n22222\n22222\n22222\n32222\n\nsquashU\ntransparent\n\nsquashR\ntransparent\n\nsquashL\ntransparent\n\nsquashD\ntransparent\n\nspaace\nblue\n.....\n.....\n.....\n.....\n.....\n\nzCrate\nOrange Yellow\n00000\n0...0\n0.0.0\n0...0\n00000\n\nlastCrateOnTarget\nRed Yellow\n00000\n00000\n00000\n00000\n00000\n\nlastTarget\ntransparent\n\nyeaCrate\nOrange Yellow\n00000\n0...0\n0.0.0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\nz = zCrate\n0 = Crate and Target\n@ = zCrate and Target\no = Target\na = Apple\nc = AppleCore\n1 = m1 and Apple and Crate\n2 = m2 and Apple\n3 = m3 and Apple and Crate\n4 = m4 and Apple and Crate\n5 = m5 and Apple and Crate\n6 = m6 and Apple and Crate\ny = cloud\n, = spaace\ng = lastTarget\nh = lastTarget and Crate\n\nInertial = Crate or zCrate or Wall or lastCrateOnTarget\n\nMumbling = m1 or m2 or m3 or m4 or m5 or m6\n\nClearsky = clearsky1 or clearsky2 or clearsky3\nFapple = fapple0 or fapple1 or fapple2 or fapple3\nFapples = Fapple or fappleg\nFinalists = Finalist0 or Finalist1 or Finalist2\nPlayers = Player or Finalists or Genius\nSquashing = fapple or Wall or fappleg or lastCrateOnTarget\n\nWaitFrames = wait0 or wait1 or wait2 or wait3 or wait4 or wait5\n\nWinAnimationStartFrame = Winner001 or Winner101 or Winner201 or Winner301 or Winner401 or Winner501\n\nWinnerFrames = Winner001 or Winner002 or Winner003 or Winner004 or Winner005 or Winner006 or Winner007 or Winner008 or Winner101 or Winner102 or Winner103 or Winner104 or Winner105 or Winner106 or Winner107 or Winner108 or Winner109 or Winner201 or Winner202 or Winner203 or Winner204 or Winner205 or Winner206 or Winner207 or Winner208 or Winner209 or Winner210 or Winner211 or Winner301 or Winner302 or Winner303 or Winner304 or Winner305 or Winner306 or Winner307 or Winner308 or Winner309 or Winner401 or Winner402 or Winner403 or Winner404 or Winner405 or Winner406 or Winner407 or Winner408 or Winner409 or Winner501 or Winner502 or Winner503 or Winner504 or Winner505 or Winner506 or Winner507 or Winner508 or Winner509\n\n=======\nSOUNDS\n=======\n\nInertial MOVE 62522307 (66976107) (36772507) (36718107)\n(Player Move 61661707) (too repetitive on long runs)\nsfx0 60497100 (zCrate moves on target)\n(sfx1 (58358104) (16763304) (bumping into a wall))\n\nsfx1 17123907 (green)\nsfx2 74112904\nsfx3 60342907\nsfx5 47189907\nsfx6 68393107\nsfx4 21039704 (wall)\nsfx10 70198308\nsfx7 65707900 (Level Complete)\nUndo 54083907\nRestart 5315306\nsfx9 94701308 (30980508) (16825502) (apple!)\nsfx8 67172908 (eurika)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nsquashUL \nsquashUR\nsquashDL\nsquashDR\nsquashgU\nsquashgD\nsquashgL\nsquashgR\nsquashU\nsquashL\nsquashD\nsquashR, WaitFrames, Mumbling\nTarget, Apple, AppleCore, cloud, Clearsky, spaace, lastTarget\nPlayers, Inertial, yeaCrate, WinnerFrames, fapples\n\n======\nRULES\n======\n\n(The actual rules of the game)\n\n[ > Player | Inertial ] -> [ > Player | > Inertial ]\n[ > Inertial | Inertial ] -> [ Inertial | > Inertial ]\n[ > Wall ] -> [ Wall ]\n[ > zCrate | Target ] -> [ > zCrate | Target ] sfx0\n\n\n(Win conditions, convoluted for the purposes of animation)\n\nlate [ zCrate Target ] -> [ yeaCrate Target ]\nlate [ yeaCrate ][ zCrate ] -> [ zCrate ][ zCrate ]\nlate [ yeaCrate ][Player] -> [yeaCrate][ wait0 random WinAnimationStartFrame ] sfx7\n\n\n(Win animations)\n\nlate [wait4] -> [wait5] again\nlate [wait3] -> [wait4] again\nlate [wait2] -> [wait3] again\nlate [wait1] -> [wait2] again\nlate [wait0] -> [wait1] again\n\nlate [ Winner509 ] -> Win\nlate [ Winner508 ][wait3] -> [ Winner509 ][wait0] again\nlate [ Winner507 ][wait3] -> [ Winner508 ][wait0] again\nlate [ Winner506 ][wait3] -> [ Winner507 ][wait0] again\nlate [ Winner505 ][wait3] -> [ Winner506 ][wait0] again\nlate [ Winner504 ][wait3] -> [ Winner505 ][wait0] again\nlate [ Winner503 ][wait3] -> [ Winner504 ][wait0] again\nlate [ Winner502 ][wait3] -> [ Winner503 ][wait0] again\nlate [ Winner501 ][wait3] -> [ Winner502 ][wait0] again\n\nlate [ Winner409 ] -> Win\nlate [ Winner408 ][wait3] -> [ Winner409 ][wait0] again\nlate [ Winner407 ][wait3] -> [ Winner408 ][wait0] again\nlate [ Winner406 ][wait3] -> [ Winner407 ][wait0] again\nlate [ Winner405 ][wait3] -> [ Winner406 ][wait0] again\nlate [ Winner404 ][wait3] -> [ Winner405 ][wait0] again\nlate [ Winner403 ][wait3] -> [ Winner404 ][wait0] again\nlate [ Winner402 ][wait3] -> [ Winner403 ][wait0] again\nlate [ Winner401 ][wait3] -> [ Winner402 ][wait0] again\n\nlate [ Winner309 ] -> Win\nlate [ Winner308 ][wait3] -> [ Winner309 ][wait0] again\nlate [ Winner307 ][wait3] -> [ Winner308 ][wait0] again\nlate [ Winner306 ][wait3] -> [ Winner307 ][wait0] again\nlate [ Winner305 ][wait3] -> [ Winner306 ][wait0] again\nlate [ Winner304 ][wait3] -> [ Winner305 ][wait0] again\nlate [ Winner303 ][wait3] -> [ Winner304 ][wait0] again\nlate [ Winner302 ][wait3] -> [ Winner303 ][wait0] again\nlate [ Winner301 ][wait3] -> [ Winner302 ][wait0] again\n\nlate [ Winner211 ] -> Win\nlate [ Winner210 ][wait3] -> [ Winner211 ][wait0] again\nlate [ Winner209 ][wait3] -> [ Winner210 ][wait0] again\nlate [ Winner208 ][wait3] -> [ Winner209 ][wait0] again\nlate [ Winner207 ][wait3] -> [ Winner208 ][wait0] again\nlate [ Winner206 ][wait3] -> [ Winner207 ][wait0] again\nlate [ Winner205 ][wait3] -> [ Winner206 ][wait0] again\nlate [ Winner204 ][wait3] -> [ Winner205 ][wait0] again\nlate [ Winner203 ][wait3] -> [ Winner204 ][wait0] again\nlate [ Winner202 ][wait3] -> [ Winner203 ][wait0] again\nlate [ Winner201 ][wait3] -> [ Winner202 ][wait0] again\n\nlate [ Winner109 ] -> Win\nlate [ Winner108 ][wait3] -> [ Winner109 ][wait0] again\nlate [ Winner107 ][wait3] -> [ Winner108 ][wait0] again\nlate [ Winner106 ][wait3] -> [ Winner107 ][wait0] again\nlate [ Winner105 ][wait3] -> [ Winner106 ][wait0] again\nlate [ Winner104 ][wait3] -> [ Winner105 ][wait0] again\nlate [ Winner103 ][wait3] -> [ Winner104 ][wait0] again\nlate [ Winner102 ][wait3] -> [ Winner103 ][wait0] again\nlate [ Winner101 ][wait3] -> [ Winner102 ][wait0] again\n\nlate [ Winner008 ] -> Win\nlate [ Winner007 ][wait3] -> [ Winner008 ][wait0] again\nlate [ Winner006 ][wait3] -> [ Winner007 ][wait0] again\nlate [ Winner005 ][wait3] -> [ Winner006 ][wait0] again\nlate [ Winner004 ][wait3] -> [ Winner005 ][wait0] again\nlate [ Winner003 ][wait3] -> [ Winner004 ][wait0] again\nlate [ Winner002 ][wait3] -> [ Winner003 ][wait0] again\nlate [ Winner001 ][wait3] -> [ Winner002 ][wait0] again\n\n\n(Apples and Mumblings)\n\nlate [ Player Apple ] -> [ Player AppleCore] sfx9\n\nlate [ Player m1 ] -> [ Player ] message Doesn't make much sense to put easter eggs into an open source game, does it? :)\nlate [ Player m2 ] -> [ Player ] message Ooooo! An apple!\nlate [ Player m3 ] -> [ Player ] message Who even builds warehouses like this!?\nlate [ Player m4 ] -> [ Player ] message Boy, has science funding in this country seen better days...\nlate [ Player m5 ] -> [ Player ] message You've gained +3 health!\nlate [ Player m6 ] -> [ Player ] message Wait... how was I supposed to find this one!?\n\n\n\n(The cutscene ;)\n\nlate [ Crate lastTarget ] -> [ yeaCrate lastTarget ]\nlate [lastTarget][ Crate ][ yeaCrate ] -> [lastTarget][ Crate ][ Crate ]\nlate down [yeaCrate][cloud | ... | Player] -> [lastCrateOnTarget][cloud fapple0 | ... | Player] sfx10 (the aimed apple spawn)\n\ndown [ fapple | Player ] -> [ fapple | Finalist0 wait0 ] sfx8 again\n\n(The intriguing pause)\n[Finalist2 wait5] -> [Genius] again\n[Finalist1 wait5] -> [Finalist2 wait0] again\n[Finalist0 wait5] -> [Finalist1 wait0] again\n\nrandom [cloud no fapple][Genius] -> [cloud random fapple][Genius]\ndown [ cloud fapple | ... | spaace no fapples | fapples] -> [ cloud fappleg | ... | spaace | fapples]\ndown [ fapples | no wall no players no fapples no lastCrateOnTarget] -> [> fapples |] again\ndown [fapples | ... | moving fapples] -> [ | ... | moving fapples]\n\n(These are only for sfx)\n[> fapples | | wall] -> [ | fapples | wall] sfx4\n[> fapples | | lastCrateOnTarget] -> [ | fapples | lastCrateOnTarget] sfx4\n[> fappleg | | fapples] -> [ | fappleg | fapples] sfx1\n[> fapple0 | | fapples] -> [ | fapple0 | fapples] sfx2\n[> fapple1 | | fapples] -> [ | fapple1 | fapples] sfx3\n[> fapple2 | | fapples] -> [ | fapple2 | fapples] sfx5\n[> fapple3 | | fapples] -> [ | fapple3 | fapples] sfx6\n\n(Randomize clouds for the next iteration)\n[Clearsky] -> [cloud]\n[moving fapple][cloud] -> [moving fapple][random Clearsky]\n[clearsky1] -> [cloud]\n[cloud] -> [cloud] again\n\n(Squashing)\nleft [stationary fapples | stationary squashing] -> [fapples squashL | squashing]\nright [stationary fapples | stationary squashing] -> [fapples squashR | squashing]\ndown [stationary fapples | stationary squashing] -> [fapples squashD | squashing]\nup [stationary fapples | stationary squashing] -> [fapples squashU | squashing]\n[squashU squashL] -> [squashU squashL squashUL]\n[squashU squashR] -> [squashU squashR squashUR]\n[squashD squashL] -> [squashD squashL squashDL]\n[squashD squashR] -> [squashD squashR squashDR]\n[squashD squashU squashL squashR] -> []\n\nright [stationary fappleg | stationary fappleg] -> [fappleg squashgR | squashgL fappleg]\ndown [stationary fappleg | stationary fappleg] -> [fappleg squashgD | squashgU fappleg]\n\n==============\nWINCONDITIONS\n==============\n\n(All zCrate on Target)\n\n=======\nLEVELS\n=======\n\n#####################\n#####################\n#####################\n#####################\n#######o#############\n#######.......#######\n#######.####1.#######\n#######z#...#.#######\n#######.#.p.#.#######\n#######.#...#.#######\n#######.##.##.#######\n#######......z#######\n#############o#######\n#####################\n#####################\n#####################\n#####################\n\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n###...............###\n###.......p.......###\n###..###########..###\n###o.z..*...*..z.o###\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n###...............###\n###.......p.......###\n##########*#####..###\n###o.z*********z.o###\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n\n####################\n####################\n####################\n####################\n######........######\n######....*...######\n######..####..######\n######..#..#..######\n######....z#..######\n######...###..######\n######.o......######\n######...p....######\n####################\n####################\n####################\n####################\n####################\n\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n########.....########\n###########..########\n########..z*.########\n########.p###########\n########....o########\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n\n#####################\n######.........######\n#####...........#####\n#####....p.z....#####\n#####...##.##...#####\n#####...#...#...#####\n#####...#.#.#...#####\n#####...#.@.#...#####\n#####...#.o.#...#####\n#####...#####...#####\n#####...#####...#####\n#####....####...#####\n#####...#####...#####\n#####....####...#####\n#####..2..####..#####\n#####..########.#####\n#####################\n\n####################\n####################\n####################\n####################\n##................##\n##....p...........##\n##..#####..#####..##\n##..#z**#..#zzz#..##\n##..#*#*#..#*.*#..##\n##..#**o#..#000#..##\n##..#####..#####..##\n##................##\n##................##\n####################\n####################\n####################\n####################\n\n#####################\n#####################\n#####################\n####.............####\n####.***********.####\n####.*.........*.####\n####.*.#######.*.####\n####.*.#######.*.####\n####.*.##.*.##.3.####\n####.*.##.*.##.*.####\n####.*.##.*.##.*.####\n####.*.##.*....*.####\n####.*p##.******.####\n####.zo##........####\n#####################\n#####################\n#####################\n\n#####################\n#####################\n#####..........######\n#####..........######\n#####........p.######\n#####...####*########\n#####...#***#....####\n#####...#*..*....####\n#####...#*..*....####\n#####...*#**z...o####\n#####...#........####\n#####...#...z....####\n#########...o....####\n#########........####\n#####################\n#####################\n#####################\n\n#####################\n#####################\n#####################\n##.............#...##\n##.............#...##\n##.............#...##\n##......z......#...##\n##...#####*##..#...##\n##...#..#o*.#..#...##\n##...#..###.####...##\n##...#....*........##\n##...#....*.p......##\n##...#.............##\n##...#.............##\n#####################\n#####################\n#####################\n\n####################\n######....##########\n######.#############\n###o##.......#######\n###z########.#######\n###.##******.#...###\n###......***.#.#.###\n######***.**.#.#.###\n######***.**.#.#.###\n####......***#.#.###\n####.#*******#.#####\n####.#*******..#####\n####.###############\n####.....p...#######\n############.#######\n#########....#######\n####################\n\n#####################\n#####################\n###.......p.......###\n###.#z##.###.#.##.###\n###.#*##.###.#.##.###\n###.#*##.###.#z##.###\n###.#*##.###*#*##.###\n###..*..*...*.*oo.###\n#####*##*###*#*######\n#####*##6###*#*######\n#####*##*###*#.######\n#####*##*###*#.######\n########.###.########\n############.########\n#####################\n#####################\n#####################\n\n#####################\n#####################\n###.######.######.###\n###..####...####..###\n###...##.....##...###\n###...#4******#...###\n###...#***z***#...###\n###...#***#***#...###\n###...#*******#...###\n###...#*******#...###\n###...####.####...###\n###...............###\n###...o.......p...###\n###...............###\n#####################\n#####################\n#####################\n\n#####################\n#####################\n####*#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*..*.####\n####p#*..*.#*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n####o.*.#*..*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#z.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n#####################\n#####################\n\n#####################\n#####################\n#####################\n############..#######\n#####.........#######\n#####..######.#######\n#####.p****5#.#######\n#####.##***##.#######\n#####.#.***.#.#######\n#####.#.****#########\n#####.#****....######\n#####.#######.z.#####\n#####.......#..o#####\n#####################\n#####################\n#####################\n#####################\n\nmessage No more than one more...\n\n##########.....########.o###########\n###........###...........###########\n###.######.#.z..####z#z#z###########\n###.######.#...#####...#o###########\n###.######.o.####.##.###.###########\n###.#######..#######.#...#####..####\n#.o.**#####.########.###o.####..z...\n#.###.#####.########......####.##o..\n....z.#####....#####....######*###.#\n..###.########.##############..o##.#\n#.....########.##############.p.z..#\n##############.###############.##..#\n############...##########.####.#####\n############z.o#########.#####.#####\n###########.*...##############.#####\n###########..#.................#####\n###########..#..####################\n\nmessage That's it!\nmessage I'm done!\nmessage I quit!\nmessage I'm going back to my calculus!\n\n#################################################\n#yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy#\n#...............................................#\n#..................................,............#\n#.....,,,,,,.......................,,...........#\n#.....,....,...................,,,,,,,..........#\n#.....,.........................................#\n#.....,................,,,.,,....,,,,...........#\n#.....,,,,.....,,,,,...,..,..,..,...,...........#\n#.....,................,..,..,..,...,...........#\n#.....,........,,,,,...,..,..,..,...,...........#\n#.....,................,..,..,..,...,..,,.......#\n#.....,................,..,..,...,,,,..,,.......#\n#.......................................,.......#\n#......................................,........#\n#...............................................#\n#.........,.............,.......................#\n#.........,.............,.......................#\n#.........,.............,.......................#\n#.........,.............,...............,.......#\n#......,,,,..,...,...,,,,...,,,.....,,...,......#\n#.....,...,..,...,..,...,..,...,....,,...,,.....#\n#.....,...,..,...,..,...,..,,,,,.........,,.....#\n#.....,...,..,...,..,...,..,........,,...,,.....#\n#.....,...,..,...,..,...,..,........,,...,,.....#\n#......,,,,...,,,,...,,,,...,,,......,...,......#\n#...................................,...,.......#\n#...............................................#\n#..................*........*...................#\n#.................***.......*..**...............#\n#................#####ggggg#####*...............#\n#................#####g###g#####*...............#\n#................#####g#h#g#####................#\n#.......p........#####h###g#####................#\n######################hhhhh######################\n\n", [1, 1, 1, 1, 1, 3, 0, 0, 0, 0, 0, 2, 0, 1, 2, 1, 0, 0, 1, 1, 1, 1, 0, 0, 3, 3, 0, 3, 0, 0, 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,\n0,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,background:1,1,1,1,1,1,1,1,1,1,\n1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,\n0,0,0,0,0,1,1,background player:2,1,1,1,1,1,1,1,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,1,background target:3,1,0,0,0,0,0,0,0,0,apple background crate m4:4,1,\nbackground crate:5,5,5,0,1,1,1,0,0,0,0,0,0,0,1,5,5,5,5,5,0,\n1,1,1,0,0,0,0,0,0,1,5,5,5,5,5,5,0,1,1,1,0,\n0,0,0,0,1,1,5,background zcrate:6,1,0,5,5,1,1,1,1,0,0,0,0,0,\n0,1,1,5,5,5,5,5,0,1,1,1,0,0,0,0,0,0,0,1,5,\n5,5,5,5,0,1,1,1,0,0,0,0,0,0,0,0,5,5,5,5,5,\n0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,\n0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,\n0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 12, "1627778916845.6555"] ], [ `gallery: count mover`, - ["title Count Mover\nauthor Jonah Ostroff\nrun_rules_on_level_start\nkey_repeat_interval .5\nagain_interval 1\n\n========\nOBJECTS\n========\nBackground\n#AAA #EEE\n00000\n00010\n00000\n00100\n00000\n\nWall\n#842 #420\n01000\n11111\n00010\n11111\n01000\n\nPlayer\n#222 #57F #111\n.111.\n.111.\n00100\n.000.\n00.00\n\nGoal\nRed Yellow\n.000.\n01110\n01010\n01110\n.000.\n\nCrate\n#630 #951\n.....\n.000.\n.010.\n.000.\n.....\n\nN1\nWhite\n...0.\n..00.\n...0.\n...0.\n...0.\n\nN2\nWhite\n..00.\n.0..0\n...0.\n..0..\n.0000\n\nN3\nWhite\n..00.\n.0..0\n...0.\n.0..0\n..00.\n\nN4\nWhite\n.0..0\n.0..0\n.0000\n....0\n....0\n\nN5\nWhite\n.0000\n.0...\n.000.\n....0\n.000.\n\nN6\nWhite\n..00.\n.0...\n.000.\n.0..0\n..00.\n\nN7\nWhite\n.0000\n....0\n...0.\n..0..\n..0..\n\nN8\nWhite\n..00.\n.0..0\n..00.\n.0..0\n..00.\n\nN9\nWhite\n..00.\n.0..0\n..000\n....0\n..00.\n\nN0\nWhite\n..00.\n.0..0\n.0..0\n.0..0\n..00.\n\nPlus\nTransparent\n\nMinus\nTransparent\n\nNback\nBlack\n\nCountstart\nTransparent\n\nOnes\nTransparent\n\nStep1\nWhite\n.....\n....0\n.....\n.....\n....0\n\nStep2\nWhite\n00.00\n....0\n0...0\n.0..0\n0...0\n\nStep3\nWhite\n0.000\n..0..\n..00.\n..0..\n..000\n\nStep4\nWhite\n.00..\n.0.0.\n.00..\n.0...\n.0...\n\nStep5\nWhite\n.00..\n0...0\n.0...\n..0.0\n00...\n\nMin1\nWhite\n...00\n..0..\n..0.0\n..0..\n...00\n\nMin2\nWhite\n...0.\n..0.0\n0.0.0\n0.0.0\n...0.\n\nMin3\nWhite\n..0..\n.0.0.\n.000.\n.0.0.\n.0.0.\n\nMin4\nWhite\n0....\n0...0\n0....\n0...0\n000..\n\nDone\nTransparent\n\nResultBox\n#BBB\n.....\n.000.\n.0.0.\n.000.\n.....\n\nCheckBox\n#22F\n....0\n....0\n0..0.\n.0.0.\n..0..\n\nXBox\n#F00\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\n\nEnding1\nTransparent\n\nEnding2\nTransparent\n\nEnding3\nTransparent\n\nEnding4\nTransparent\n\n=======\nLEGEND\n=======\nMin = Min1 or Min2 or Min3 or Min4\nSteps = Step1 or Step2 or Step3 or Step4 or Step5\nNumber = N0 or N1 or N2 or N3 or N4 or N5 or N6 or N7 or N8 or N9\n\nEnding = Ending1 or Ending2 or Ending3 or Ending4\n\n# = Wall\n. = Background\n@ = Player\n* = Crate\nG = Goal\n0 = N0 and Nback\n! = N0 and Ones and Nback\n~ = Nback\n5 = Step5 and NBack\nR = Resultbox and NBack\n\n=======\nSOUNDS\n=======\nSfx1 97503900 (Done)\nSfx2 96982503 (See goal)\nSfx3 62353502 (Fail)\nSfx4 25691300 (Success!)\nPlayer CantMove 74490707\nCrate Move 76468107\n================\nCOLLISIONLAYERS\n================\nBackground\nNBack\nGoal ResultBox\nWall Player Crate Number Steps Min XBox Checkbox\nOnes Done Ending\nPlus Minus\nCountstart\n======\nRULES\n======\nRight[||||Step5] -> [Step1|Step2|Step3|Step4|Step5]\n\n[Player] -> [Player Countstart]\n\n[> Player|Crate] -> [> Player|> Crate]\n\nlate [Player no Countstart][Ones] -> [Player][Ones Plus]\n\n(Are we done?)\nlate [Player no Ending] -> [Player Done]\nlate [Done][Goal no Crate] -> [][Goal]\nlate [Ending3] -> [Ending4]\nlate [Ending2] -> [Ending3]\nlate [Ending1] -> [Ending2] Sfx2\nlate [Done] -> [Ending1] Sfx1\n\nlate [Ending4][Checkbox] -> [Ending4][Checkbox] Message Very efficient!\n\nlate [Ending4][XBox] -> [Ending4][XBox] Message I solved the puzzle! But I wasn't very efficient.\n\nlate RIGHT [Ending3][Step5|N0|N0][ResultBox] -> [Ending3][Step5|N0|N0][Resultbox Checkbox] Sfx4\nlate RIGHT [Ending3][ResultBox no CheckBox] -> [Ending3][ResultBox XBox] Sfx3\n\n\nstartloop\nlate [Plus N0] -> [N1]\nlate [Plus N1] -> [N2]\nlate [Plus N2] -> [N3]\nlate [Plus N3] -> [N4]\nlate [Plus N4] -> [N5]\nlate [Plus N5] -> [N6]\nlate [Plus N6] -> [N7]\nlate [Plus N7] -> [N8]\nlate [Plus N8] -> [N9]\nlate LEFT [Plus N9|] -> [N0|Plus]\nendloop\n\nlate [Plus] -> []\n\nlate UP [Ending2][Number||no Number] -> [Ending2][Number||Number]\nlate UP [Ending2][Ones||][Step5||] -> [Ending2][||Minus][Step5||Min4]\nlate Right [||||Min4] -> [ResultBox|Min1|Min2|Min3|Min4]\n\nstartloop\nlate [Minus N1] -> [N0]\nlate [Minus N2] -> [N1]\nlate [Minus N3] -> [N2]\nlate [Minus N4] -> [N3]\nlate [Minus N5] -> [N4]\nlate [Minus N6] -> [N5]\nlate [Minus N7] -> [N6]\nlate [Minus N8] -> [N7]\nlate [Minus N9] -> [N8]\nlate LEFT [Minus N0|] -> [N9|Minus]\nendloop\n\nlate [Minus] -> []\n\nlate [Countstart] -> []\n\nlate [Ending] -> [Ending] again\n\n==============\nWINCONDITIONS\n==============\nAll Crate on Goal\nSome Ending4\n=======\nLEVELS\n=======\nMessage Here at Count Mover's Moving Company, you can count on me to move your boxes as efficiently as possible.\n\n~~~~~~~~~\n~~~~~~~~~\n~~~~~~50!\n#########\n#...#...#\n#.G.#.@.#\n#.*.#...#\n#.G*##.##\n#.*GGG*.#\n#.G***G.#\n#.......#\n#########\n\n\n",[0,2,2,2,2,3,2,1,1,0,1,1,1,1,1,0,1,0,0,3,2],"background nback:0,0,0,background wall:1,1,1,1,1,1,\n1,1,1,0,0,0,1,background:2,2,\n2,2,background crate:3,2,2,1,0,0,background nback step1:4,\n1,2,background goal:5,background player:6,background crate goal:7,2,5,2,1,\n0,0,background nback step2:8,1,2,2,2,3,5,\n3,2,1,0,0,background nback step3:9,1,1,1,\n1,1,5,3,2,1,0,0,background nback step4:10,\n1,2,2,2,1,5,3,2,1,\n0,0,background nback step5:11,1,2,2,2,2,2,\n7,2,1,0,0,background n1 nback:12,1,2,2,\n2,1,2,2,2,1,0,0,background n9 nback ones:13,\n1,1,1,1,1,1,1,1,1,\n",1,"1627778943492.7725"] + ["title Count Mover\nauthor Jonah Ostroff\nrun_rules_on_level_start\nkey_repeat_interval .5\nagain_interval 1\n\n========\nOBJECTS\n========\nBackground\n#AAA #EEE\n00000\n00010\n00000\n00100\n00000\n\nWall\n#842 #420\n01000\n11111\n00010\n11111\n01000\n\nPlayer\n#222 #57F #111\n.111.\n.111.\n00100\n.000.\n00.00\n\nGoal\nRed Yellow\n.000.\n01110\n01010\n01110\n.000.\n\nCrate\n#630 #951\n.....\n.000.\n.010.\n.000.\n.....\n\nN1\nWhite\n...0.\n..00.\n...0.\n...0.\n...0.\n\nN2\nWhite\n..00.\n.0..0\n...0.\n..0..\n.0000\n\nN3\nWhite\n..00.\n.0..0\n...0.\n.0..0\n..00.\n\nN4\nWhite\n.0..0\n.0..0\n.0000\n....0\n....0\n\nN5\nWhite\n.0000\n.0...\n.000.\n....0\n.000.\n\nN6\nWhite\n..00.\n.0...\n.000.\n.0..0\n..00.\n\nN7\nWhite\n.0000\n....0\n...0.\n..0..\n..0..\n\nN8\nWhite\n..00.\n.0..0\n..00.\n.0..0\n..00.\n\nN9\nWhite\n..00.\n.0..0\n..000\n....0\n..00.\n\nN0\nWhite\n..00.\n.0..0\n.0..0\n.0..0\n..00.\n\nPlus\nTransparent\n\nMinus\nTransparent\n\nNback\nBlack\n\nCountstart\nTransparent\n\nOnes\nTransparent\n\nStep1\nWhite\n.....\n....0\n.....\n.....\n....0\n\nStep2\nWhite\n00.00\n....0\n0...0\n.0..0\n0...0\n\nStep3\nWhite\n0.000\n..0..\n..00.\n..0..\n..000\n\nStep4\nWhite\n.00..\n.0.0.\n.00..\n.0...\n.0...\n\nStep5\nWhite\n.00..\n0...0\n.0...\n..0.0\n00...\n\nMin1\nWhite\n...00\n..0..\n..0.0\n..0..\n...00\n\nMin2\nWhite\n...0.\n..0.0\n0.0.0\n0.0.0\n...0.\n\nMin3\nWhite\n..0..\n.0.0.\n.000.\n.0.0.\n.0.0.\n\nMin4\nWhite\n0....\n0...0\n0....\n0...0\n000..\n\nDone\nTransparent\n\nResultBox\n#BBB\n.....\n.000.\n.0.0.\n.000.\n.....\n\nCheckBox\n#22F\n....0\n....0\n0..0.\n.0.0.\n..0..\n\nXBox\n#F00\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\n\nEnding1\nTransparent\n\nEnding2\nTransparent\n\nEnding3\nTransparent\n\nEnding4\nTransparent\n\n=======\nLEGEND\n=======\nMin = Min1 or Min2 or Min3 or Min4\nSteps = Step1 or Step2 or Step3 or Step4 or Step5\nNumber = N0 or N1 or N2 or N3 or N4 or N5 or N6 or N7 or N8 or N9\n\nEnding = Ending1 or Ending2 or Ending3 or Ending4\n\n# = Wall\n. = Background\n@ = Player\n* = Crate\nG = Goal\n0 = N0 and Nback\n! = N0 and Ones and Nback\n~ = Nback\n5 = Step5 and NBack\nR = Resultbox and NBack\n\n=======\nSOUNDS\n=======\nSfx1 97503900 (Done)\nSfx2 96982503 (See goal)\nSfx3 62353502 (Fail)\nSfx4 25691300 (Success!)\nPlayer CantMove 74490707\nCrate Move 76468107\n================\nCOLLISIONLAYERS\n================\nBackground\nNBack\nGoal ResultBox\nWall Player Crate Number Steps Min XBox Checkbox\nOnes Done Ending\nPlus Minus\nCountstart\n======\nRULES\n======\nRight[||||Step5] -> [Step1|Step2|Step3|Step4|Step5]\n\n[Player] -> [Player Countstart]\n\n[> Player|Crate] -> [> Player|> Crate]\n\nlate [Player no Countstart][Ones] -> [Player][Ones Plus]\n\n(Are we done?)\nlate [Player no Ending] -> [Player Done]\nlate [Done][Goal no Crate] -> [][Goal]\nlate [Ending3] -> [Ending4]\nlate [Ending2] -> [Ending3]\nlate [Ending1] -> [Ending2] Sfx2\nlate [Done] -> [Ending1] Sfx1\n\nlate [Ending4][Checkbox] -> [Ending4][Checkbox] Message Very efficient!\n\nlate [Ending4][XBox] -> [Ending4][XBox] Message I solved the puzzle! But I wasn't very efficient.\n\nlate RIGHT [Ending3][Step5|N0|N0][ResultBox] -> [Ending3][Step5|N0|N0][Resultbox Checkbox] Sfx4\nlate RIGHT [Ending3][ResultBox no CheckBox] -> [Ending3][ResultBox XBox] Sfx3\n\n\nstartloop\nlate [Plus N0] -> [N1]\nlate [Plus N1] -> [N2]\nlate [Plus N2] -> [N3]\nlate [Plus N3] -> [N4]\nlate [Plus N4] -> [N5]\nlate [Plus N5] -> [N6]\nlate [Plus N6] -> [N7]\nlate [Plus N7] -> [N8]\nlate [Plus N8] -> [N9]\nlate LEFT [Plus N9|] -> [N0|Plus]\nendloop\n\nlate [Plus] -> []\n\nlate UP [Ending2][Number||no Number] -> [Ending2][Number||Number]\nlate UP [Ending2][Ones||][Step5||] -> [Ending2][||Minus][Step5||Min4]\nlate Right [||||Min4] -> [ResultBox|Min1|Min2|Min3|Min4]\n\nstartloop\nlate [Minus N1] -> [N0]\nlate [Minus N2] -> [N1]\nlate [Minus N3] -> [N2]\nlate [Minus N4] -> [N3]\nlate [Minus N5] -> [N4]\nlate [Minus N6] -> [N5]\nlate [Minus N7] -> [N6]\nlate [Minus N8] -> [N7]\nlate [Minus N9] -> [N8]\nlate LEFT [Minus N0|] -> [N9|Minus]\nendloop\n\nlate [Minus] -> []\n\nlate [Countstart] -> []\n\nlate [Ending] -> [Ending] again\n\n==============\nWINCONDITIONS\n==============\nAll Crate on Goal\nSome Ending4\n=======\nLEVELS\n=======\nMessage Here at Count Mover's Moving Company, you can count on me to move your boxes as efficiently as possible.\n\n~~~~~~~~~\n~~~~~~~~~\n~~~~~~50!\n#########\n#...#...#\n#.G.#.@.#\n#.*.#...#\n#.G*##.##\n#.*GGG*.#\n#.G***G.#\n#.......#\n#########\n\n\n", [0, 2, 2, 2, 2, 3, 2, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 3, 2], "background nback:0,0,0,background wall:1,1,1,1,1,1,\n1,1,1,0,0,0,1,background:2,2,\n2,2,background crate:3,2,2,1,0,0,background nback step1:4,\n1,2,background goal:5,background player:6,background crate goal:7,2,5,2,1,\n0,0,background nback step2:8,1,2,2,2,3,5,\n3,2,1,0,0,background nback step3:9,1,1,1,\n1,1,5,3,2,1,0,0,background nback step4:10,\n1,2,2,2,1,5,3,2,1,\n0,0,background nback step5:11,1,2,2,2,2,2,\n7,2,1,0,0,background n1 nback:12,1,2,2,\n2,1,2,2,2,1,0,0,background n9 nback ones:13,\n1,1,1,1,1,1,1,1,1,\n", 1, "1627778943492.7725"] ], [ `gallery: boxes love boxing gloves`, - ["title Boxes Love Boxing Gloves\nauthor Alan Hazelden\nhomepage www.draknek.org\n\nkey_repeat_interval 0.16\nagain_interval 0.16\nrealtime_interval 0.16\n\n(verbose_logging)\n\nnoaction\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\nBlack DarkBlue\n00000\n01110\n01110\n01110\n00000\n\n\nTarget\nWhite\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nGrey\n\nPlayer\n#a46422 #495e2b #493c2b #000000\n..0..\n.111.\n01110\n02220\n.2.2.\n\nBoxL L\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #d9c554\n01234\n92345\n93456\n94567\n45678\n\nBoxR R\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #edd964\n01234\n12349\n23459\n34569\n45678\n\nBoxU U\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #d9c554\n09994\n12345\n23456\n34567\n45678\n\nBoxD D\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #edd964\n01234\n12345\n23456\n34567\n49998\n\nSplatL\nred\n0....\n0....\n0....\n0....\n0....\n\nSplatR\nred\n....0\n....0\n....0\n....0\n....0\n\nSplatU\nred\n00000\n.....\n.....\n.....\n.....\n\nSplatD\nred\n.....\n.....\n.....\n.....\n00000\n\nSplatL2\nred\n0....\n0.0..\n00...\n0.0..\n0....\n\nSplatR2\nred\n....0\n..0.0\n...00\n..0.0\n....0\n\nSplatU2\nred\n00000\n..0..\n.0.0.\n.....\n.....\n\nSplatD2\nred\n.....\n.....\n.0.0.\n..0..\n00000\n\nGloveL\n#f2de68 #edd964 #e9d460 #e4cf5b #dfca57 #d9c554 #d5c14f #e5842d\n.012.\n01734\n12777\n23756\n.456.\n\nGloveR\n#f2de68 #edd964 #e9d460 #e4cf5b #dfca57 #d9c554 #d5c14f #d37521\n.012.\n01734\n77745\n23756\n.456.\n\nGloveU\n#f2de68 #edd964 #e9d460 #e4cf5b #dfca57 #d9c554 #d5c14f #e5842d\n.012.\n01234\n17775\n23756\n.476.\n\nGloveD\n#f2de68 #edd964 #e9d460 #e4cf5b #dfca57 #d9c554 #d5c14f #d37521\n.072.\n01734\n17775\n23456\n.456.\n\nCantTrigger\ntransparent\n\nTriggeredTemp\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #d9c554\n..2..\n.234.\n23456\n.456.\n..6..\n\nTriggeredFinal\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 Brown White\n..2..\n.777.\n27876\n.777.\n..6..\n\nPriority0\ntransparent\n\nPriority1\ntransparent\n\nPriority2\ntransparent\n\nPriority3\ntransparent\n\nPriority4\ntransparent\n\nTriggerCheck\ntransparent\n\nMoveHere\ntransparent\n\nPreventMove\ntransparent\n\nWallL\nDarkGrey\n0....\n0....\n0....\n0....\n0....\n\nWallR\nDarkGrey\n....0\n....0\n....0\n....0\n....0\n\nWallU\nDarkGrey\n00000\n.....\n.....\n.....\n.....\n\nWallD\nDarkGrey\n.....\n.....\n.....\n.....\n00000\n\nWallLR\nDarkGrey\n0...0\n0...0\n0...0\n0...0\n0...0\n\nWallUD\nDarkGrey\n00000\n.....\n.....\n.....\n00000\n \nWallUL\nDarkGrey\n0....\n.....\n.....\n.....\n.....\n \nWallUR\nDarkGrey\n....0\n.....\n.....\n.....\n.....\n \nWallDL\nDarkGrey\n.....\n.....\n.....\n.....\n0....\n \nWallDR\nDarkGrey\n.....\n.....\n.....\n.....\n....0\n \nWallDLR\nDarkGrey\n.....\n.....\n.....\n.....\n0...0\n \nWallULR\nDarkGrey\n0...0\n.....\n.....\n.....\n.....\n \nWallLUD\nDarkGrey\n0....\n.....\n.....\n.....\n0....\n \nWallRUD\nDarkGrey\n....0\n.....\n.....\n.....\n....0\n\nZero\nDarkGreen\n.000.\n.0.0.\n.0.0.\n.0.0.\n.000.\n\nOne\nDarkGreen\n.00..\n..0..\n..0..\n..0..\n.000.\n\nTwo\nDarkGreen\n.000.\n...0.\n.000.\n.0...\n.000.\n\nThree\nDarkGreen\n.000.\n...0.\n.000.\n...0.\n.000.\n\nFour\nDarkGreen\n.0.0.\n.0.0.\n.000.\n...0.\n...0.\n\nFive\nDarkGreen\n.000.\n.0...\n.000.\n...0.\n.000.\n\nSix\nDarkGreen\n.000.\n.0...\n.000.\n.0.0.\n.000.\n\nSeven\nDarkGreen\n.000.\n...0.\n...0.\n...0.\n...0.\n\nEight\nDarkGreen\n.000.\n.0.0.\n.000.\n.0.0.\n.000.\n\nNine\nDarkGreen\n.000.\n.0.0.\n.000.\n...0.\n.000.\n\nOnce\nBrown #dddddd\n.....\n.000.\n.010.\n.000.\n.....\n\n\n=======\nLEGEND\n=======\n\nCounter = Once\n\nCrate = BoxL or BoxR or BoxU or BoxD\n\nGlove = GloveL or GloveR or GloveU or GloveD\n\nHittable = Crate or Player or Glove\n\nPushable = Crate or Glove\n\nSolid = Crate or Wall or Glove\n\nSplat1 = SplatL or SplatR or SplatU or SplatD\nSplat2 = SplatL2 or SplatR2 or SplatU2 or SplatD2\n\nPriority = Priority1 or Priority2 or Priority3 or Priority4\n\nTriggered = TriggeredTemp or TriggeredFinal\n\n. = Background\n# = Wall\nP = Player\n* = Target\n! = Priority0\n? = Priority0 and BoxD\n$ = Priority0 and BoxU\n\nA = BoxL and Once\nB = BoxR and Once\nC = BoxU and Once\nE = BoxD and Once\n\nWallCoverLR = WallL or WallR or WallLR\nWallCoverUD = WallU or WallD or WallUD\nWallCoverCorner = WallUL or WallUR or WallDL or WallDR or WallDLR or WallLUD or WallRUD or WallULR\nWallCover = WallCoverLR or WallCoverUD or WallCoverCorner\n\nCoverLR = WallCoverLR\nCoverUD = WallCoverUD\n\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\n\n=======\nSOUNDS\n=======\n\nrestart 26040109\nundo 54997907\n\nendlevel 7293908\n\nPlayer move 88095307\nCrate move 5814507\n\nGlove create 55998304\nSplat1 create 2968302\n(67932504)\n\nsfx1 32201704 ( can't move )\nsfx2 5814507 ( crate move )\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget, Priority0\nPlayer, Wall, Crate, Glove\nTriggered, CantTrigger, Priority\nTriggerCheck, MoveHere\nWallCoverUD, Number, PreventMove\nWallCoverCorner, Counter\nWallCoverLR\nSplat1, Splat2\n\n\n======\nRULES\n======\n\n( Splat )\n\n[ SplatL ] -> [ SplatL2 ]\n[ SplatR ] -> [ SplatR2 ]\n[ SplatU ] -> [ SplatU2 ]\n[ SplatD ] -> [ SplatD2 ]\n\n( Set up temporary info we use for choosing a box )\n\n[ BoxL ] -> [ left BoxL ]\n[ BoxR ] -> [ right BoxR ]\n[ BoxU ] -> [ up BoxU ]\n[ BoxD ] -> [ down BoxD ]\n\n[ stationary Player ] -> [ action Player ]\n\n[ action Player Priority1 ] [ BoxL no Triggered no CantTrigger ] -> [ action Player Priority1 ] [ BoxL Priority1 ]\n[ action Player Priority1 ] [ BoxR no Triggered no CantTrigger ] -> [ action Player Priority1 ] [ BoxR Priority2 ]\n[ action Player Priority1 ] [ BoxU no Triggered no CantTrigger ] -> [ action Player Priority1 ] [ BoxU Priority4 ]\n[ action Player Priority1 ] [ BoxD no Triggered no CantTrigger ] -> [ action Player Priority1 ] [ BoxD Priority3 ]\n\n[ action Player Priority2 ] [ BoxL no Triggered no CantTrigger ] -> [ action Player Priority2 ] [ BoxL Priority2 ]\n[ action Player Priority2 ] [ BoxR no Triggered no CantTrigger ] -> [ action Player Priority2 ] [ BoxR Priority1 ]\n[ action Player Priority2 ] [ BoxU no Triggered no CantTrigger ] -> [ action Player Priority2 ] [ BoxU Priority4 ]\n[ action Player Priority2 ] [ BoxD no Triggered no CantTrigger ] -> [ action Player Priority2 ] [ BoxD Priority3 ]\n\n[ action Player Priority3 ] [ BoxL no Triggered no CantTrigger ] -> [ action Player Priority3 ] [ BoxL Priority3 ]\n[ action Player Priority3 ] [ BoxR no Triggered no CantTrigger ] -> [ action Player Priority3 ] [ BoxR Priority4 ]\n[ action Player Priority3 ] [ BoxU no Triggered no CantTrigger ] -> [ action Player Priority3 ] [ BoxU Priority1 ]\n[ action Player Priority3 ] [ BoxD no Triggered no CantTrigger ] -> [ action Player Priority3 ] [ BoxD Priority2 ]\n\n[ action Player Priority4 ] [ BoxL no Triggered no CantTrigger ] -> [ action Player Priority4 ] [ BoxL Priority3 ]\n[ action Player Priority4 ] [ BoxR no Triggered no CantTrigger ] -> [ action Player Priority4 ] [ BoxR Priority4 ]\n[ action Player Priority4 ] [ BoxU no Triggered no CantTrigger ] -> [ action Player Priority4 ] [ BoxU Priority2 ]\n[ action Player Priority4 ] [ BoxD no Triggered no CantTrigger ] -> [ action Player Priority4 ] [ BoxD Priority1 ]\n\n( Loop until we've chosen a box to trigger )\n\nstartloop\n\n( Choose a box )\n\nrandom [ action Player ] [ > Crate Priority0 Priority no Counter | Hittable ] -> [ Player ] [ > Crate Priority0 action TriggeredTemp | Hittable ]\n\nrandom [ action Player ] [ > Crate Priority1 no Counter | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority2 no Counter | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority3 no Counter | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority4 no Counter | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\n\nrandom [ action Player ] [ > Crate Priority1 | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority2 | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority3 | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority4 | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\n\n( Once we've chosen a box, choose the box behind it if that can also trigger )\n\n[ > Crate Priority | > Crate action Triggered ] -> [ > Crate action Triggered | > Crate Priority ]\n\n( Check if this box has space to push things forwards )\n( N.B. we use stationary TriggerCheck on the active box to prevent this loop thinking things are always going on )\n\n[ > Crate action Triggered no TriggerCheck | ] -> [ > Crate action Triggered TriggerCheck | > TriggerCheck ]\n\n[ > TriggerCheck Pushable | no MoveHere ] -> [ > TriggerCheck Pushable | > TriggerCheck ]\n+ [ perpendicular TriggerCheck Glove | no TriggerCheck < Crate Triggered ] -> [ perpendicular TriggerCheck Glove | perpendicular TriggerCheck < Crate Triggered ]\n+ [ perpendicular TriggerCheck > Crate Triggered | no TriggerCheck Glove ] -> [ perpendicular TriggerCheck > Crate Triggered | perpendicular TriggerCheck Glove ]\n\n( If can't move forwards )\n\n[ TriggerCheck Wall ] [ > TriggerCheck no Wall ] -> [ TriggerCheck Wall ] []\n[ TriggerCheck Wall ] -> [ action Wall ]\n\n( If can move forwards )\n\n[ > TriggerCheck no Solid ] -> [ > MoveHere ]\n\n( If can't move forwards, check if this box has space to push things backwards )\n\nrandom [ action Wall ] [ | > Crate action Triggered ] -> [ Wall ] [ < TriggerCheck | > Crate action Triggered ]\n\n[ action Wall ] -> [ Wall ]\n\n[ > TriggerCheck Pushable | no MoveHere ] -> [ > TriggerCheck Pushable | > TriggerCheck ]\n+ [ perpendicular TriggerCheck Glove | no TriggerCheck < Crate Triggered ] -> [ perpendicular TriggerCheck Glove | perpendicular TriggerCheck < Crate Triggered ]\n+ [ perpendicular TriggerCheck > Crate Triggered | no TriggerCheck Glove ] -> [ perpendicular TriggerCheck > Crate Triggered | perpendicular TriggerCheck Glove ]\n\n( If can't move backwards )\n\n[ TriggerCheck Wall ] [ Crate action Triggered ] -> [ TriggerCheck Wall ] [ Crate CantTrigger ]\n\n[ TriggerCheck Wall ] [ TriggerCheck no Wall ] -> [ TriggerCheck Wall ] []\n\n[ TriggerCheck Wall ] [ stationary Player ] -> [ Wall ] [ action Player ]\n\n[ TriggerCheck Wall ] -> [ Wall ]\n\n( If can move backwards )\n\n[ > TriggerCheck no Solid ] [ Crate action Triggered ] -> [ > MoveHere ] [ Crate > Triggered ]\n\n[ > TriggerCheck no Solid ] -> [ > MoveHere ]\n\nendloop\n\n[ moving TriggeredTemp Once ] -> [ moving TriggeredFinal ]\n\n[ > Crate TriggeredFinal | Glove ] -> [ > Crate TriggeredFinal | action Glove ]\n\n( now we've chosen a box or there's no suitable boxes )\n\n[ Priority no Player ] -> []\n\n[ moving Crate ] -> [ Crate ]\n\n( If all boxes triggered, remove all boxing gloves )\n\n[ action Player ] [ stationary Glove ] -> [ action Player ] []\n[ action Player ] [ TriggeredTemp ] -> [ action Player ] []\n[ action Player ] [ PreventMove ] -> [ action Player ] []\n[ CantTrigger ] -> []\n\n[ action Glove ] -> [ Glove ]\n\n( Push player - push untriggered boxes )\n\n[ MoveHere Player ] -> [ MoveHere Player PreventMove ]\n\n[ > MoveHere Player | BoxL Counter | no Solid ] -> [ > MoveHere no Priority | Player Priority1 | BoxL Counter ]\n[ > MoveHere Player | BoxR Counter | no Solid ] -> [ > MoveHere no Priority | Player Priority2 | BoxR Counter ]\n[ > MoveHere Player | BoxU Counter | no Solid ] -> [ > MoveHere no Priority | Player Priority3 | BoxU Counter ]\n[ > MoveHere Player | BoxD Counter | no Solid ] -> [ > MoveHere no Priority | Player Priority4 | BoxD Counter ]\n\n[ > MoveHere Player | BoxL no Triggered | no Solid ] -> [ > MoveHere no Priority | Player Priority1 | BoxL ]\n[ > MoveHere Player | BoxR no Triggered | no Solid ] -> [ > MoveHere no Priority | Player Priority2 | BoxR ]\n[ > MoveHere Player | BoxU no Triggered | no Solid ] -> [ > MoveHere no Priority | Player Priority3 | BoxU ]\n[ > MoveHere Player | BoxD no Triggered | no Solid ] -> [ > MoveHere no Priority | Player Priority4 | BoxD ]\n\n( Push player - push triggered boxes )\n\n[ > MoveHere Player | Crate Triggered ] -> [ > MoveHere Player | > Crate Triggered ]\n\n[ > MoveHere Player | Glove ] -> [ > MoveHere Player | > Glove ]\n\nleft [ GloveR | moving Crate Triggered ] -> [ moving GloveR | moving Crate Triggered ]\nright [ GloveL | moving Crate Triggered ] -> [ moving GloveL | moving Crate Triggered ]\nup [ GloveD | moving Crate Triggered ] -> [ moving GloveD | moving Crate Triggered ]\ndown [ GloveU | moving Crate Triggered ] -> [ moving GloveU | moving Crate Triggered ]\n\nleft [ moving GloveR | Crate Triggered ] -> [ moving GloveR | moving Crate Triggered ]\nright [ moving GloveL | Crate Triggered ] -> [ moving GloveL | moving Crate Triggered ]\nup [ moving GloveD | Crate Triggered ] -> [ moving GloveD | moving Crate Triggered ]\ndown [ moving GloveU | Crate Triggered ] -> [ moving GloveU | moving Crate Triggered ]\n\n[ > Crate | stationary Solid ] [ > Glove ] -> [ Crate | Solid ] [ Glove ]\n[ > Glove | stationary Solid ] [ > Crate ] -> [ Glove | Solid ] [ Crate ]\n\n[ > Crate Triggered | no Solid ] -> [ | Crate Triggered ]\n+ [ > Glove | no Solid ] -> [ | Glove ]\n\n[ > Pushable ] -> [ Pushable ]\n\n( Push player - push triggered box backwards )\n\n[ no Solid | Crate action Triggered | > MoveHere Player | Solid ] -> [ action Crate action Triggered | | Player | Solid ]\n\nleft [ action BoxL action Triggered | no Solid ] -> [ BoxL Triggered | GloveL ]\nright [ action BoxR action Triggered | no Solid ] -> [ BoxR Triggered | GloveR ]\nup [ action BoxU action Triggered | no Solid ] -> [ BoxU Triggered | GloveU ]\ndown [ action BoxD action Triggered | no Solid ] -> [ BoxD Triggered | GloveD ]\n\n( Push player - splat )\n\nleft [ > MoveHere Player | Solid ] -> [ > MoveHere SplatL | Solid SplatR ]\nright [ > MoveHere Player | Solid ] -> [ > MoveHere SplatR | Solid SplatL ]\nup [ > MoveHere Player | Solid ] -> [ > MoveHere SplatU | Solid SplatD ]\ndown [ > MoveHere Player | Solid ] -> [ > MoveHere SplatD | Solid SplatU ]\n\n( Push player - move safely )\n\nright [ > MoveHere Player | no Solid ] -> [ > MoveHere no Priority | Player Priority1 ]\nleft [ > MoveHere Player | no Solid ] -> [ > MoveHere no Priority | Player Priority2 ]\nup [ > MoveHere Player | no Solid ] -> [ > MoveHere no Priority | Player Priority3 ]\ndown [ > MoveHere Player | no Solid ] -> [ > MoveHere no Priority | Player Priority4 ]\n\n( Push boxes )\n\n[ > TriggerCheck Counter ] -> [ > TriggerCheck > Counter ]\n\n[ < MoveHere | < TriggerCheck Pushable no Triggered ] -> [ Pushable | < MoveHere ]\n+ [ < MoveHere | < TriggerCheck Pushable stationary Triggered ] -> [ Pushable Triggered | < MoveHere ]\n\nleft [ < MoveHere | Pushable < Triggered ] -> [ Pushable Triggered | GloveL ]\nright [ < MoveHere | Pushable < Triggered ] -> [ Pushable Triggered | GloveR ]\nup [ < MoveHere | Pushable < Triggered ] -> [ Pushable Triggered | GloveU ]\ndown [ < MoveHere | Pushable < Triggered ] -> [ Pushable Triggered | GloveD ]\n\nleft [ < MoveHere | Pushable action Triggered ] -> [ GloveR | Pushable Triggered ]\nright [ < MoveHere | Pushable action Triggered ] -> [ GloveL | Pushable Triggered ]\nup [ < MoveHere | Pushable action Triggered ] -> [ GloveD | Pushable Triggered ]\ndown [ < MoveHere | Pushable action Triggered ] -> [ GloveU | Pushable Triggered ]\n\n( Player movement - set trigger priority and mark which things to push )\n\n[ > Player | BoxL no Triggered ] -> [ > Player Priority1 | > BoxL ]\n[ > Player | BoxR no Triggered ] -> [ > Player Priority2 | > BoxR ]\n[ > Player | BoxU no Triggered ] -> [ > Player Priority3 | > BoxU ]\n[ > Player | BoxD no Triggered ] -> [ > Player Priority4 | > BoxD ]\n\n[ > Player | Glove ] -> [ > Player | > Glove ]\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nright [ > Player | no Crate ] -> [ > Player Priority1 | ]\nleft [ > Player | no Crate ] -> [ > Player Priority2 | ]\ndown [ > Player | no Crate ] -> [ > Player Priority3 | ]\nup [ > Player | no Crate ] -> [ > Player Priority4 | ]\n\nright [ > Player | Crate Triggered ] -> [ > Player Priority1 | Crate Triggered ]\nleft [ > Player | Crate Triggered ] -> [ > Player Priority2 | Crate Triggered ]\ndown [ > Player | Crate Triggered ] -> [ > Player Priority3 | Crate Triggered ]\nup [ > Player | Crate Triggered ] -> [ > Player Priority4 | Crate Triggered ]\n\n( Player movement - if part of a 2x1 box is moving, set the other part too )\n\nleft [ GloveR | moving Crate Triggered ] -> [ moving GloveR | moving Crate moving Triggered ]\nright [ GloveL | moving Crate Triggered ] -> [ moving GloveL | moving Crate moving Triggered ]\nup [ GloveD | moving Crate Triggered ] -> [ moving GloveD | moving Crate moving Triggered ]\ndown [ GloveU | moving Crate Triggered ] -> [ moving GloveU | moving Crate moving Triggered ]\n\nleft [ moving GloveR | Crate Triggered ] -> [ moving GloveR | moving Crate moving Triggered ]\nright [ moving GloveL | Crate Triggered ] -> [ moving GloveL | moving Crate moving Triggered ]\nup [ moving GloveD | Crate Triggered ] -> [ moving GloveD | moving Crate moving Triggered ]\ndown [ moving GloveU | Crate Triggered ] -> [ moving GloveU | moving Crate moving Triggered ]\n\n( Player movement - mark boxes which can't move )\n\n[ > Pushable | stationary Solid ] -> [ action Pushable | Solid ]\n\n[ action Crate | moving Glove ] -> [ Crate | Glove ]\n[ moving Crate | action Glove ] -> [ Crate | Glove ]\n\n[ action Pushable ] -> [ Pushable ]\n\n[ > Player | stationary Solid ] -> [ Player | Solid ] sfx1 ( can't move )\n\n[ stationary Crate moving Triggered ] -> [ Crate Triggered ]\n\n( Player movement - actually move )\n\n[ > Player Priority ] -> [ > Player > Priority ]\n[ > Crate Counter ] -> [ > Crate > Counter ]\n\n[ > Crate > Triggered | no Solid ] -> [ | action Crate Triggered ] sfx2\n+ [ > Crate | no Solid ] -> [ | action Crate ] sfx2\n+ [ > Glove | no Solid ] -> [ | action Glove ]\n\n( Cleanup and prevent player movement sometimes )\n\n[ > Glove ] -> cancel\n[ > Crate ] -> cancel\n\n[ TriggerCheck ] -> []\n[ MoveHere ] -> []\n\nleft [ stationary BoxL | action Pushable ] -> [ BoxL | Pushable PreventMove ]\nright [ stationary BoxR | action Pushable ] -> [ BoxR | Pushable PreventMove ]\nup [ stationary BoxU | action Pushable ] -> [ BoxU | Pushable PreventMove ]\ndown [ stationary BoxD | action Pushable ] -> [ BoxD | Pushable PreventMove ]\n\nleft [ action BoxL | stationary Pushable ] -> [ BoxL | Pushable PreventMove ]\nright [ action BoxR | stationary Pushable ] -> [ BoxR | Pushable PreventMove ]\nup [ action BoxU | stationary Pushable ] -> [ BoxU | Pushable PreventMove ]\ndown [ action BoxD | stationary Pushable ] -> [ BoxD | Pushable PreventMove ]\n\nlate left [ BoxL | Player ] -> [ BoxL | Player PreventMove ]\nlate right [ BoxR | Player ] -> [ BoxR | Player PreventMove ]\nlate up [ BoxU | Player ] -> [ BoxU | Player PreventMove ]\nlate down [ BoxD | Player ] -> [ BoxD | Player PreventMove ]\n\nlate [ PreventMove ] -> again\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\nleft [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallLUD | WallUD ]\nright [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallRUD | WallUD ]\nup [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallULR | WallLR ]\ndown [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallDLR | WallLR ]\n\nright [ WallD | Wall no WallCoverCorner no WallCoverUD ] -> [ WallD | Wall WallDL ]\nleft [ WallD | Wall no WallCoverCorner no WallCoverUD ] -> [ WallD | Wall WallDR ]\n \nright [ WallU | Wall no WallCoverCorner no WallCoverUD ] -> [ WallU | Wall WallUL ]\nleft [ WallU | Wall no WallCoverCorner no WallCoverUD ] -> [ WallU | Wall WallUR ]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll target on player\nAll player on target\n\n=======\nLEVELS\n=======\n\n##########\n#....d...#\n#..u.....#\n#.###.##.#\n#.....##.*\n###p######\n\n#####*##\n#.....##\n#.#.####\n#d..l..#\n#...#..#\n#r.....#\n#.!.u..#\n##p#####\n\n############\n#..r......##\n#..d..#uu.l#\np.....#...##\n#..u..#...##\n#r...l#....*\n############\n\n###########\n#r..#.....#\n*...#..u..#\n##?##..#..#\n#...#..#..#\n#.r....l..#\n#...#..#..#\n##p########\n\n##########p########\n######.........####\n######r#######.####\n#..dd...#####...l.#\n*........d......#.#\n#..........u....#.#\n#..uu...#####.....#\n###################\n\n############*##\n#.....#.#..#.##\n#.r.d......#.##\np.....#u#r....#\n#.r.u.###.lu..#\n#..........####\n###############\n\n###########\n#.....#####\n#.r.l..d.##\n#.........*\n#..u..u..##\n#.....#..l#\n###p#######\n\n####p######\n#......####\n#.u.#..####\n#.d.#..####\n#......####\n#.##...#..#\n#....l.#..*\n#......#r.#\n#....l.#d.#\n#.........#\n###########\n\n#############\n#....##d#.###\n#.r.........*\np.....a.u...#\n#.r..####.###\n#....####.###\n#############\n\n################\n#...####......##\n#.eu#......#..##\n#..........#..##\n#.......####.u.*\n##...#######..l#\n##p#############\n\n##############\n###..........#\n###....e.....#\n#.#..r...l..##\n#.#...###..u##\n*d#...###...a#\n#.....###...##\n#.#######...##\n##########p###\n\n##################\n#..............###\n#.e.......l.#..###\np.....#u#......###\n#.r.#########r.###\n#.b.#########r...#\n#...#########....#\n###############*##\n\n###############\n#............##\n#.r#......#...#\n#..#......!...#\n#..#......#u.##\n#..#...e..#r.##\n#..u......#..##\n#.........#...*\n#######p#######\n\n###########\n#####.....#\n###.......#\n*.#.e.r...#\n#.........#\n#!!$$.l...#\n#####.....#\n#######p###\n\n##############\n#########...##\n#########.u.##\n*.....##b...##\n#..u#........#\n#..d#.r.#..l.p\n#.......#....#\n##############\n\n#####*#########\n#####..####.d.#\n#...#.........#\n#.r.#.uu..#...#\n#.r.####..#.#.#\np.r.#.....#.#.#\n#.d.#.........#\n#...........a##\n#########uu####\n###############\n\n############\n#####...#..*\n#####.u.#..#\n#####.l.#d.#\np.#........#\n#.r.#.....l#\n#........###\n#####u######\n############\n\n#####p####\n#b.e....##\n#......a.#\n#..#..c..#\n*..#....##\n##########\n\n#################\n#.....###########\n#.e.e......a#####\np.....####.######\n#.b.b.d###.######\n#......d##.######\n####r...d#.######\n#####r.......#..*\n######r......#..#\n#######.........#\n#######....uu...#\n#################\n\n####################\n##...###.###########\n#..c.............###\n#..e........l.#..###\n#.....#u#u#.a....###\n#..b..#####...#r.###\n#..r..#####.c.#r...#\n#.............#....#\n########p########*##\n\n###*#########\n##..#..#..###\n##.lr..l..###\n##d##.##..###\n#..#........#\np..r..#.u...#\n#..#..#.d...#\n#..#........#\n#..r..u.#...#\n#..##########\n#############\n\n\n(alt levels)\n\n(###*######12#\n##..#..#..###\n##.lr..l..###\n##d##.##..###\n#..#........#\np..d..#.u...#\n#..#..#.d...#\n#..#........#\n#..r.u.###..#\n#..##########\n#############)\n\n\n(trashed levels)\n\n(############\n#####d######\n#.dd.......p\n#......r...#\n#..#.......#\n*..#...lu###\n####...#####\n####...#####\n############\n\n############\n####.......#\n####....#u##\n#.......#..*\n#.a#d#b.#d##\n#..........#\n###...######\n####p#######)\n\n\n(wip levels)\n\n(\n\n########\n####r..#\n####...*\n###d...#\n#....###\n#...u###\n#..#.###\n#......#\n#.r..l.p\n#......#\n########\n\n)\n\nmessage Thanks for playing :)\n\n( debug levels\n\n##############\n#.........##*#\n#....dr.r.####\n#...d.....####\n#........d...#\n#pr.r.r.u....#\n#........#####\n##############\n\n##############\n#...#.....##*#\n#....dr.r.####\n#...u.....####\n#........d...#\n#pr.r.r.u....#\n#........#####\n##############\n\n###########\n#.....#####\n#.p......##\n#........#*\n#.r......##\n#r.l#######\n###########\n\n############\n############\n####..######\n####..##d.##\n####..#...r#\n#.....#r..r#\n#...*.##ur##\n#.....###.##\n#########p##\n############\n\n\n###########\n#.....###*#\n#.p.r.d####\n#......d###\n####r...d##\n#####r....#\n######r...#\n#######...#\n###########\n\n)\n\n(11x7 screenshot)\n\n(###########\n####d###d##\n#r...r...##\n##.#.p.#.##\n##...l...l#\n##u###u####\n###########)\n\n",["tick","tick","tick","tick",3,"tick",2,"tick",2,"tick",3,"tick",3,"tick",0,"tick","tick",0,"tick",3,"tick",3,"tick",0,"tick","tick","tick","tick","tick",2,"tick",3,"tick",3,0,"tick","tick","tick"],"background wall:0,0,0,background wall walld:1,background:2,background wall wallr wallu:3,background wall wallr:4,background wall wallur:5,0,0,0,0,\n1,2,background boxr:6,2,background wall wallu:7,0,0,0,0,background wall walldlr:8,background wall walld walllr:9,2,\n2,7,0,0,0,0,1,2,2,2,7,0,\nbackground wall walldr:10,4,4,background wall walld wallr:11,2,background wall walllr wallud:12,2,3,5,1,2,background boxu:13,\n2,2,2,2,13,7,1,2,2,2,2,2,\n2,background wall walll wallu:14,background wall wallul:15,1,2,background boxl:16,background player priority1:17,2,2,2,7,0,\n8,background wall walllr:18,18,9,2,2,2,7,0,1,2,2,\nbackground boxd:19,2,2,14,15,0,1,2,2,2,2,16,\n7,0,0,1,background target:20,14,background wall walll:21,21,21,15,0,0,\n",16,"1627778966225.3145"] + ["title Boxes Love Boxing Gloves\nauthor Alan Hazelden\nhomepage www.draknek.org\n\nkey_repeat_interval 0.16\nagain_interval 0.16\nrealtime_interval 0.16\n\n(verbose_logging)\n\nnoaction\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\nBlack DarkBlue\n00000\n01110\n01110\n01110\n00000\n\n\nTarget\nWhite\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nGrey\n\nPlayer\n#a46422 #495e2b #493c2b #000000\n..0..\n.111.\n01110\n02220\n.2.2.\n\nBoxL L\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #d9c554\n01234\n92345\n93456\n94567\n45678\n\nBoxR R\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #edd964\n01234\n12349\n23459\n34569\n45678\n\nBoxU U\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #d9c554\n09994\n12345\n23456\n34567\n45678\n\nBoxD D\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #edd964\n01234\n12345\n23456\n34567\n49998\n\nSplatL\nred\n0....\n0....\n0....\n0....\n0....\n\nSplatR\nred\n....0\n....0\n....0\n....0\n....0\n\nSplatU\nred\n00000\n.....\n.....\n.....\n.....\n\nSplatD\nred\n.....\n.....\n.....\n.....\n00000\n\nSplatL2\nred\n0....\n0.0..\n00...\n0.0..\n0....\n\nSplatR2\nred\n....0\n..0.0\n...00\n..0.0\n....0\n\nSplatU2\nred\n00000\n..0..\n.0.0.\n.....\n.....\n\nSplatD2\nred\n.....\n.....\n.0.0.\n..0..\n00000\n\nGloveL\n#f2de68 #edd964 #e9d460 #e4cf5b #dfca57 #d9c554 #d5c14f #e5842d\n.012.\n01734\n12777\n23756\n.456.\n\nGloveR\n#f2de68 #edd964 #e9d460 #e4cf5b #dfca57 #d9c554 #d5c14f #d37521\n.012.\n01734\n77745\n23756\n.456.\n\nGloveU\n#f2de68 #edd964 #e9d460 #e4cf5b #dfca57 #d9c554 #d5c14f #e5842d\n.012.\n01234\n17775\n23756\n.476.\n\nGloveD\n#f2de68 #edd964 #e9d460 #e4cf5b #dfca57 #d9c554 #d5c14f #d37521\n.072.\n01734\n17775\n23456\n.456.\n\nCantTrigger\ntransparent\n\nTriggeredTemp\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #d9c554\n..2..\n.234.\n23456\n.456.\n..6..\n\nTriggeredFinal\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 Brown White\n..2..\n.777.\n27876\n.777.\n..6..\n\nPriority0\ntransparent\n\nPriority1\ntransparent\n\nPriority2\ntransparent\n\nPriority3\ntransparent\n\nPriority4\ntransparent\n\nTriggerCheck\ntransparent\n\nMoveHere\ntransparent\n\nPreventMove\ntransparent\n\nWallL\nDarkGrey\n0....\n0....\n0....\n0....\n0....\n\nWallR\nDarkGrey\n....0\n....0\n....0\n....0\n....0\n\nWallU\nDarkGrey\n00000\n.....\n.....\n.....\n.....\n\nWallD\nDarkGrey\n.....\n.....\n.....\n.....\n00000\n\nWallLR\nDarkGrey\n0...0\n0...0\n0...0\n0...0\n0...0\n\nWallUD\nDarkGrey\n00000\n.....\n.....\n.....\n00000\n \nWallUL\nDarkGrey\n0....\n.....\n.....\n.....\n.....\n \nWallUR\nDarkGrey\n....0\n.....\n.....\n.....\n.....\n \nWallDL\nDarkGrey\n.....\n.....\n.....\n.....\n0....\n \nWallDR\nDarkGrey\n.....\n.....\n.....\n.....\n....0\n \nWallDLR\nDarkGrey\n.....\n.....\n.....\n.....\n0...0\n \nWallULR\nDarkGrey\n0...0\n.....\n.....\n.....\n.....\n \nWallLUD\nDarkGrey\n0....\n.....\n.....\n.....\n0....\n \nWallRUD\nDarkGrey\n....0\n.....\n.....\n.....\n....0\n\nZero\nDarkGreen\n.000.\n.0.0.\n.0.0.\n.0.0.\n.000.\n\nOne\nDarkGreen\n.00..\n..0..\n..0..\n..0..\n.000.\n\nTwo\nDarkGreen\n.000.\n...0.\n.000.\n.0...\n.000.\n\nThree\nDarkGreen\n.000.\n...0.\n.000.\n...0.\n.000.\n\nFour\nDarkGreen\n.0.0.\n.0.0.\n.000.\n...0.\n...0.\n\nFive\nDarkGreen\n.000.\n.0...\n.000.\n...0.\n.000.\n\nSix\nDarkGreen\n.000.\n.0...\n.000.\n.0.0.\n.000.\n\nSeven\nDarkGreen\n.000.\n...0.\n...0.\n...0.\n...0.\n\nEight\nDarkGreen\n.000.\n.0.0.\n.000.\n.0.0.\n.000.\n\nNine\nDarkGreen\n.000.\n.0.0.\n.000.\n...0.\n.000.\n\nOnce\nBrown #dddddd\n.....\n.000.\n.010.\n.000.\n.....\n\n\n=======\nLEGEND\n=======\n\nCounter = Once\n\nCrate = BoxL or BoxR or BoxU or BoxD\n\nGlove = GloveL or GloveR or GloveU or GloveD\n\nHittable = Crate or Player or Glove\n\nPushable = Crate or Glove\n\nSolid = Crate or Wall or Glove\n\nSplat1 = SplatL or SplatR or SplatU or SplatD\nSplat2 = SplatL2 or SplatR2 or SplatU2 or SplatD2\n\nPriority = Priority1 or Priority2 or Priority3 or Priority4\n\nTriggered = TriggeredTemp or TriggeredFinal\n\n. = Background\n# = Wall\nP = Player\n* = Target\n! = Priority0\n? = Priority0 and BoxD\n$ = Priority0 and BoxU\n\nA = BoxL and Once\nB = BoxR and Once\nC = BoxU and Once\nE = BoxD and Once\n\nWallCoverLR = WallL or WallR or WallLR\nWallCoverUD = WallU or WallD or WallUD\nWallCoverCorner = WallUL or WallUR or WallDL or WallDR or WallDLR or WallLUD or WallRUD or WallULR\nWallCover = WallCoverLR or WallCoverUD or WallCoverCorner\n\nCoverLR = WallCoverLR\nCoverUD = WallCoverUD\n\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\n\n=======\nSOUNDS\n=======\n\nrestart 26040109\nundo 54997907\n\nendlevel 7293908\n\nPlayer move 88095307\nCrate move 5814507\n\nGlove create 55998304\nSplat1 create 2968302\n(67932504)\n\nsfx1 32201704 ( can't move )\nsfx2 5814507 ( crate move )\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget, Priority0\nPlayer, Wall, Crate, Glove\nTriggered, CantTrigger, Priority\nTriggerCheck, MoveHere\nWallCoverUD, Number, PreventMove\nWallCoverCorner, Counter\nWallCoverLR\nSplat1, Splat2\n\n\n======\nRULES\n======\n\n( Splat )\n\n[ SplatL ] -> [ SplatL2 ]\n[ SplatR ] -> [ SplatR2 ]\n[ SplatU ] -> [ SplatU2 ]\n[ SplatD ] -> [ SplatD2 ]\n\n( Set up temporary info we use for choosing a box )\n\n[ BoxL ] -> [ left BoxL ]\n[ BoxR ] -> [ right BoxR ]\n[ BoxU ] -> [ up BoxU ]\n[ BoxD ] -> [ down BoxD ]\n\n[ stationary Player ] -> [ action Player ]\n\n[ action Player Priority1 ] [ BoxL no Triggered no CantTrigger ] -> [ action Player Priority1 ] [ BoxL Priority1 ]\n[ action Player Priority1 ] [ BoxR no Triggered no CantTrigger ] -> [ action Player Priority1 ] [ BoxR Priority2 ]\n[ action Player Priority1 ] [ BoxU no Triggered no CantTrigger ] -> [ action Player Priority1 ] [ BoxU Priority4 ]\n[ action Player Priority1 ] [ BoxD no Triggered no CantTrigger ] -> [ action Player Priority1 ] [ BoxD Priority3 ]\n\n[ action Player Priority2 ] [ BoxL no Triggered no CantTrigger ] -> [ action Player Priority2 ] [ BoxL Priority2 ]\n[ action Player Priority2 ] [ BoxR no Triggered no CantTrigger ] -> [ action Player Priority2 ] [ BoxR Priority1 ]\n[ action Player Priority2 ] [ BoxU no Triggered no CantTrigger ] -> [ action Player Priority2 ] [ BoxU Priority4 ]\n[ action Player Priority2 ] [ BoxD no Triggered no CantTrigger ] -> [ action Player Priority2 ] [ BoxD Priority3 ]\n\n[ action Player Priority3 ] [ BoxL no Triggered no CantTrigger ] -> [ action Player Priority3 ] [ BoxL Priority3 ]\n[ action Player Priority3 ] [ BoxR no Triggered no CantTrigger ] -> [ action Player Priority3 ] [ BoxR Priority4 ]\n[ action Player Priority3 ] [ BoxU no Triggered no CantTrigger ] -> [ action Player Priority3 ] [ BoxU Priority1 ]\n[ action Player Priority3 ] [ BoxD no Triggered no CantTrigger ] -> [ action Player Priority3 ] [ BoxD Priority2 ]\n\n[ action Player Priority4 ] [ BoxL no Triggered no CantTrigger ] -> [ action Player Priority4 ] [ BoxL Priority3 ]\n[ action Player Priority4 ] [ BoxR no Triggered no CantTrigger ] -> [ action Player Priority4 ] [ BoxR Priority4 ]\n[ action Player Priority4 ] [ BoxU no Triggered no CantTrigger ] -> [ action Player Priority4 ] [ BoxU Priority2 ]\n[ action Player Priority4 ] [ BoxD no Triggered no CantTrigger ] -> [ action Player Priority4 ] [ BoxD Priority1 ]\n\n( Loop until we've chosen a box to trigger )\n\nstartloop\n\n( Choose a box )\n\nrandom [ action Player ] [ > Crate Priority0 Priority no Counter | Hittable ] -> [ Player ] [ > Crate Priority0 action TriggeredTemp | Hittable ]\n\nrandom [ action Player ] [ > Crate Priority1 no Counter | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority2 no Counter | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority3 no Counter | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority4 no Counter | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\n\nrandom [ action Player ] [ > Crate Priority1 | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority2 | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority3 | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority4 | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\n\n( Once we've chosen a box, choose the box behind it if that can also trigger )\n\n[ > Crate Priority | > Crate action Triggered ] -> [ > Crate action Triggered | > Crate Priority ]\n\n( Check if this box has space to push things forwards )\n( N.B. we use stationary TriggerCheck on the active box to prevent this loop thinking things are always going on )\n\n[ > Crate action Triggered no TriggerCheck | ] -> [ > Crate action Triggered TriggerCheck | > TriggerCheck ]\n\n[ > TriggerCheck Pushable | no MoveHere ] -> [ > TriggerCheck Pushable | > TriggerCheck ]\n+ [ perpendicular TriggerCheck Glove | no TriggerCheck < Crate Triggered ] -> [ perpendicular TriggerCheck Glove | perpendicular TriggerCheck < Crate Triggered ]\n+ [ perpendicular TriggerCheck > Crate Triggered | no TriggerCheck Glove ] -> [ perpendicular TriggerCheck > Crate Triggered | perpendicular TriggerCheck Glove ]\n\n( If can't move forwards )\n\n[ TriggerCheck Wall ] [ > TriggerCheck no Wall ] -> [ TriggerCheck Wall ] []\n[ TriggerCheck Wall ] -> [ action Wall ]\n\n( If can move forwards )\n\n[ > TriggerCheck no Solid ] -> [ > MoveHere ]\n\n( If can't move forwards, check if this box has space to push things backwards )\n\nrandom [ action Wall ] [ | > Crate action Triggered ] -> [ Wall ] [ < TriggerCheck | > Crate action Triggered ]\n\n[ action Wall ] -> [ Wall ]\n\n[ > TriggerCheck Pushable | no MoveHere ] -> [ > TriggerCheck Pushable | > TriggerCheck ]\n+ [ perpendicular TriggerCheck Glove | no TriggerCheck < Crate Triggered ] -> [ perpendicular TriggerCheck Glove | perpendicular TriggerCheck < Crate Triggered ]\n+ [ perpendicular TriggerCheck > Crate Triggered | no TriggerCheck Glove ] -> [ perpendicular TriggerCheck > Crate Triggered | perpendicular TriggerCheck Glove ]\n\n( If can't move backwards )\n\n[ TriggerCheck Wall ] [ Crate action Triggered ] -> [ TriggerCheck Wall ] [ Crate CantTrigger ]\n\n[ TriggerCheck Wall ] [ TriggerCheck no Wall ] -> [ TriggerCheck Wall ] []\n\n[ TriggerCheck Wall ] [ stationary Player ] -> [ Wall ] [ action Player ]\n\n[ TriggerCheck Wall ] -> [ Wall ]\n\n( If can move backwards )\n\n[ > TriggerCheck no Solid ] [ Crate action Triggered ] -> [ > MoveHere ] [ Crate > Triggered ]\n\n[ > TriggerCheck no Solid ] -> [ > MoveHere ]\n\nendloop\n\n[ moving TriggeredTemp Once ] -> [ moving TriggeredFinal ]\n\n[ > Crate TriggeredFinal | Glove ] -> [ > Crate TriggeredFinal | action Glove ]\n\n( now we've chosen a box or there's no suitable boxes )\n\n[ Priority no Player ] -> []\n\n[ moving Crate ] -> [ Crate ]\n\n( If all boxes triggered, remove all boxing gloves )\n\n[ action Player ] [ stationary Glove ] -> [ action Player ] []\n[ action Player ] [ TriggeredTemp ] -> [ action Player ] []\n[ action Player ] [ PreventMove ] -> [ action Player ] []\n[ CantTrigger ] -> []\n\n[ action Glove ] -> [ Glove ]\n\n( Push player - push untriggered boxes )\n\n[ MoveHere Player ] -> [ MoveHere Player PreventMove ]\n\n[ > MoveHere Player | BoxL Counter | no Solid ] -> [ > MoveHere no Priority | Player Priority1 | BoxL Counter ]\n[ > MoveHere Player | BoxR Counter | no Solid ] -> [ > MoveHere no Priority | Player Priority2 | BoxR Counter ]\n[ > MoveHere Player | BoxU Counter | no Solid ] -> [ > MoveHere no Priority | Player Priority3 | BoxU Counter ]\n[ > MoveHere Player | BoxD Counter | no Solid ] -> [ > MoveHere no Priority | Player Priority4 | BoxD Counter ]\n\n[ > MoveHere Player | BoxL no Triggered | no Solid ] -> [ > MoveHere no Priority | Player Priority1 | BoxL ]\n[ > MoveHere Player | BoxR no Triggered | no Solid ] -> [ > MoveHere no Priority | Player Priority2 | BoxR ]\n[ > MoveHere Player | BoxU no Triggered | no Solid ] -> [ > MoveHere no Priority | Player Priority3 | BoxU ]\n[ > MoveHere Player | BoxD no Triggered | no Solid ] -> [ > MoveHere no Priority | Player Priority4 | BoxD ]\n\n( Push player - push triggered boxes )\n\n[ > MoveHere Player | Crate Triggered ] -> [ > MoveHere Player | > Crate Triggered ]\n\n[ > MoveHere Player | Glove ] -> [ > MoveHere Player | > Glove ]\n\nleft [ GloveR | moving Crate Triggered ] -> [ moving GloveR | moving Crate Triggered ]\nright [ GloveL | moving Crate Triggered ] -> [ moving GloveL | moving Crate Triggered ]\nup [ GloveD | moving Crate Triggered ] -> [ moving GloveD | moving Crate Triggered ]\ndown [ GloveU | moving Crate Triggered ] -> [ moving GloveU | moving Crate Triggered ]\n\nleft [ moving GloveR | Crate Triggered ] -> [ moving GloveR | moving Crate Triggered ]\nright [ moving GloveL | Crate Triggered ] -> [ moving GloveL | moving Crate Triggered ]\nup [ moving GloveD | Crate Triggered ] -> [ moving GloveD | moving Crate Triggered ]\ndown [ moving GloveU | Crate Triggered ] -> [ moving GloveU | moving Crate Triggered ]\n\n[ > Crate | stationary Solid ] [ > Glove ] -> [ Crate | Solid ] [ Glove ]\n[ > Glove | stationary Solid ] [ > Crate ] -> [ Glove | Solid ] [ Crate ]\n\n[ > Crate Triggered | no Solid ] -> [ | Crate Triggered ]\n+ [ > Glove | no Solid ] -> [ | Glove ]\n\n[ > Pushable ] -> [ Pushable ]\n\n( Push player - push triggered box backwards )\n\n[ no Solid | Crate action Triggered | > MoveHere Player | Solid ] -> [ action Crate action Triggered | | Player | Solid ]\n\nleft [ action BoxL action Triggered | no Solid ] -> [ BoxL Triggered | GloveL ]\nright [ action BoxR action Triggered | no Solid ] -> [ BoxR Triggered | GloveR ]\nup [ action BoxU action Triggered | no Solid ] -> [ BoxU Triggered | GloveU ]\ndown [ action BoxD action Triggered | no Solid ] -> [ BoxD Triggered | GloveD ]\n\n( Push player - splat )\n\nleft [ > MoveHere Player | Solid ] -> [ > MoveHere SplatL | Solid SplatR ]\nright [ > MoveHere Player | Solid ] -> [ > MoveHere SplatR | Solid SplatL ]\nup [ > MoveHere Player | Solid ] -> [ > MoveHere SplatU | Solid SplatD ]\ndown [ > MoveHere Player | Solid ] -> [ > MoveHere SplatD | Solid SplatU ]\n\n( Push player - move safely )\n\nright [ > MoveHere Player | no Solid ] -> [ > MoveHere no Priority | Player Priority1 ]\nleft [ > MoveHere Player | no Solid ] -> [ > MoveHere no Priority | Player Priority2 ]\nup [ > MoveHere Player | no Solid ] -> [ > MoveHere no Priority | Player Priority3 ]\ndown [ > MoveHere Player | no Solid ] -> [ > MoveHere no Priority | Player Priority4 ]\n\n( Push boxes )\n\n[ > TriggerCheck Counter ] -> [ > TriggerCheck > Counter ]\n\n[ < MoveHere | < TriggerCheck Pushable no Triggered ] -> [ Pushable | < MoveHere ]\n+ [ < MoveHere | < TriggerCheck Pushable stationary Triggered ] -> [ Pushable Triggered | < MoveHere ]\n\nleft [ < MoveHere | Pushable < Triggered ] -> [ Pushable Triggered | GloveL ]\nright [ < MoveHere | Pushable < Triggered ] -> [ Pushable Triggered | GloveR ]\nup [ < MoveHere | Pushable < Triggered ] -> [ Pushable Triggered | GloveU ]\ndown [ < MoveHere | Pushable < Triggered ] -> [ Pushable Triggered | GloveD ]\n\nleft [ < MoveHere | Pushable action Triggered ] -> [ GloveR | Pushable Triggered ]\nright [ < MoveHere | Pushable action Triggered ] -> [ GloveL | Pushable Triggered ]\nup [ < MoveHere | Pushable action Triggered ] -> [ GloveD | Pushable Triggered ]\ndown [ < MoveHere | Pushable action Triggered ] -> [ GloveU | Pushable Triggered ]\n\n( Player movement - set trigger priority and mark which things to push )\n\n[ > Player | BoxL no Triggered ] -> [ > Player Priority1 | > BoxL ]\n[ > Player | BoxR no Triggered ] -> [ > Player Priority2 | > BoxR ]\n[ > Player | BoxU no Triggered ] -> [ > Player Priority3 | > BoxU ]\n[ > Player | BoxD no Triggered ] -> [ > Player Priority4 | > BoxD ]\n\n[ > Player | Glove ] -> [ > Player | > Glove ]\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nright [ > Player | no Crate ] -> [ > Player Priority1 | ]\nleft [ > Player | no Crate ] -> [ > Player Priority2 | ]\ndown [ > Player | no Crate ] -> [ > Player Priority3 | ]\nup [ > Player | no Crate ] -> [ > Player Priority4 | ]\n\nright [ > Player | Crate Triggered ] -> [ > Player Priority1 | Crate Triggered ]\nleft [ > Player | Crate Triggered ] -> [ > Player Priority2 | Crate Triggered ]\ndown [ > Player | Crate Triggered ] -> [ > Player Priority3 | Crate Triggered ]\nup [ > Player | Crate Triggered ] -> [ > Player Priority4 | Crate Triggered ]\n\n( Player movement - if part of a 2x1 box is moving, set the other part too )\n\nleft [ GloveR | moving Crate Triggered ] -> [ moving GloveR | moving Crate moving Triggered ]\nright [ GloveL | moving Crate Triggered ] -> [ moving GloveL | moving Crate moving Triggered ]\nup [ GloveD | moving Crate Triggered ] -> [ moving GloveD | moving Crate moving Triggered ]\ndown [ GloveU | moving Crate Triggered ] -> [ moving GloveU | moving Crate moving Triggered ]\n\nleft [ moving GloveR | Crate Triggered ] -> [ moving GloveR | moving Crate moving Triggered ]\nright [ moving GloveL | Crate Triggered ] -> [ moving GloveL | moving Crate moving Triggered ]\nup [ moving GloveD | Crate Triggered ] -> [ moving GloveD | moving Crate moving Triggered ]\ndown [ moving GloveU | Crate Triggered ] -> [ moving GloveU | moving Crate moving Triggered ]\n\n( Player movement - mark boxes which can't move )\n\n[ > Pushable | stationary Solid ] -> [ action Pushable | Solid ]\n\n[ action Crate | moving Glove ] -> [ Crate | Glove ]\n[ moving Crate | action Glove ] -> [ Crate | Glove ]\n\n[ action Pushable ] -> [ Pushable ]\n\n[ > Player | stationary Solid ] -> [ Player | Solid ] sfx1 ( can't move )\n\n[ stationary Crate moving Triggered ] -> [ Crate Triggered ]\n\n( Player movement - actually move )\n\n[ > Player Priority ] -> [ > Player > Priority ]\n[ > Crate Counter ] -> [ > Crate > Counter ]\n\n[ > Crate > Triggered | no Solid ] -> [ | action Crate Triggered ] sfx2\n+ [ > Crate | no Solid ] -> [ | action Crate ] sfx2\n+ [ > Glove | no Solid ] -> [ | action Glove ]\n\n( Cleanup and prevent player movement sometimes )\n\n[ > Glove ] -> cancel\n[ > Crate ] -> cancel\n\n[ TriggerCheck ] -> []\n[ MoveHere ] -> []\n\nleft [ stationary BoxL | action Pushable ] -> [ BoxL | Pushable PreventMove ]\nright [ stationary BoxR | action Pushable ] -> [ BoxR | Pushable PreventMove ]\nup [ stationary BoxU | action Pushable ] -> [ BoxU | Pushable PreventMove ]\ndown [ stationary BoxD | action Pushable ] -> [ BoxD | Pushable PreventMove ]\n\nleft [ action BoxL | stationary Pushable ] -> [ BoxL | Pushable PreventMove ]\nright [ action BoxR | stationary Pushable ] -> [ BoxR | Pushable PreventMove ]\nup [ action BoxU | stationary Pushable ] -> [ BoxU | Pushable PreventMove ]\ndown [ action BoxD | stationary Pushable ] -> [ BoxD | Pushable PreventMove ]\n\nlate left [ BoxL | Player ] -> [ BoxL | Player PreventMove ]\nlate right [ BoxR | Player ] -> [ BoxR | Player PreventMove ]\nlate up [ BoxU | Player ] -> [ BoxU | Player PreventMove ]\nlate down [ BoxD | Player ] -> [ BoxD | Player PreventMove ]\n\nlate [ PreventMove ] -> again\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\nleft [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallLUD | WallUD ]\nright [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallRUD | WallUD ]\nup [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallULR | WallLR ]\ndown [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallDLR | WallLR ]\n\nright [ WallD | Wall no WallCoverCorner no WallCoverUD ] -> [ WallD | Wall WallDL ]\nleft [ WallD | Wall no WallCoverCorner no WallCoverUD ] -> [ WallD | Wall WallDR ]\n \nright [ WallU | Wall no WallCoverCorner no WallCoverUD ] -> [ WallU | Wall WallUL ]\nleft [ WallU | Wall no WallCoverCorner no WallCoverUD ] -> [ WallU | Wall WallUR ]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll target on player\nAll player on target\n\n=======\nLEVELS\n=======\n\n##########\n#....d...#\n#..u.....#\n#.###.##.#\n#.....##.*\n###p######\n\n#####*##\n#.....##\n#.#.####\n#d..l..#\n#...#..#\n#r.....#\n#.!.u..#\n##p#####\n\n############\n#..r......##\n#..d..#uu.l#\np.....#...##\n#..u..#...##\n#r...l#....*\n############\n\n###########\n#r..#.....#\n*...#..u..#\n##?##..#..#\n#...#..#..#\n#.r....l..#\n#...#..#..#\n##p########\n\n##########p########\n######.........####\n######r#######.####\n#..dd...#####...l.#\n*........d......#.#\n#..........u....#.#\n#..uu...#####.....#\n###################\n\n############*##\n#.....#.#..#.##\n#.r.d......#.##\np.....#u#r....#\n#.r.u.###.lu..#\n#..........####\n###############\n\n###########\n#.....#####\n#.r.l..d.##\n#.........*\n#..u..u..##\n#.....#..l#\n###p#######\n\n####p######\n#......####\n#.u.#..####\n#.d.#..####\n#......####\n#.##...#..#\n#....l.#..*\n#......#r.#\n#....l.#d.#\n#.........#\n###########\n\n#############\n#....##d#.###\n#.r.........*\np.....a.u...#\n#.r..####.###\n#....####.###\n#############\n\n################\n#...####......##\n#.eu#......#..##\n#..........#..##\n#.......####.u.*\n##...#######..l#\n##p#############\n\n##############\n###..........#\n###....e.....#\n#.#..r...l..##\n#.#...###..u##\n*d#...###...a#\n#.....###...##\n#.#######...##\n##########p###\n\n##################\n#..............###\n#.e.......l.#..###\np.....#u#......###\n#.r.#########r.###\n#.b.#########r...#\n#...#########....#\n###############*##\n\n###############\n#............##\n#.r#......#...#\n#..#......!...#\n#..#......#u.##\n#..#...e..#r.##\n#..u......#..##\n#.........#...*\n#######p#######\n\n###########\n#####.....#\n###.......#\n*.#.e.r...#\n#.........#\n#!!$$.l...#\n#####.....#\n#######p###\n\n##############\n#########...##\n#########.u.##\n*.....##b...##\n#..u#........#\n#..d#.r.#..l.p\n#.......#....#\n##############\n\n#####*#########\n#####..####.d.#\n#...#.........#\n#.r.#.uu..#...#\n#.r.####..#.#.#\np.r.#.....#.#.#\n#.d.#.........#\n#...........a##\n#########uu####\n###############\n\n############\n#####...#..*\n#####.u.#..#\n#####.l.#d.#\np.#........#\n#.r.#.....l#\n#........###\n#####u######\n############\n\n#####p####\n#b.e....##\n#......a.#\n#..#..c..#\n*..#....##\n##########\n\n#################\n#.....###########\n#.e.e......a#####\np.....####.######\n#.b.b.d###.######\n#......d##.######\n####r...d#.######\n#####r.......#..*\n######r......#..#\n#######.........#\n#######....uu...#\n#################\n\n####################\n##...###.###########\n#..c.............###\n#..e........l.#..###\n#.....#u#u#.a....###\n#..b..#####...#r.###\n#..r..#####.c.#r...#\n#.............#....#\n########p########*##\n\n###*#########\n##..#..#..###\n##.lr..l..###\n##d##.##..###\n#..#........#\np..r..#.u...#\n#..#..#.d...#\n#..#........#\n#..r..u.#...#\n#..##########\n#############\n\n\n(alt levels)\n\n(###*######12#\n##..#..#..###\n##.lr..l..###\n##d##.##..###\n#..#........#\np..d..#.u...#\n#..#..#.d...#\n#..#........#\n#..r.u.###..#\n#..##########\n#############)\n\n\n(trashed levels)\n\n(############\n#####d######\n#.dd.......p\n#......r...#\n#..#.......#\n*..#...lu###\n####...#####\n####...#####\n############\n\n############\n####.......#\n####....#u##\n#.......#..*\n#.a#d#b.#d##\n#..........#\n###...######\n####p#######)\n\n\n(wip levels)\n\n(\n\n########\n####r..#\n####...*\n###d...#\n#....###\n#...u###\n#..#.###\n#......#\n#.r..l.p\n#......#\n########\n\n)\n\nmessage Thanks for playing :)\n\n( debug levels\n\n##############\n#.........##*#\n#....dr.r.####\n#...d.....####\n#........d...#\n#pr.r.r.u....#\n#........#####\n##############\n\n##############\n#...#.....##*#\n#....dr.r.####\n#...u.....####\n#........d...#\n#pr.r.r.u....#\n#........#####\n##############\n\n###########\n#.....#####\n#.p......##\n#........#*\n#.r......##\n#r.l#######\n###########\n\n############\n############\n####..######\n####..##d.##\n####..#...r#\n#.....#r..r#\n#...*.##ur##\n#.....###.##\n#########p##\n############\n\n\n###########\n#.....###*#\n#.p.r.d####\n#......d###\n####r...d##\n#####r....#\n######r...#\n#######...#\n###########\n\n)\n\n(11x7 screenshot)\n\n(###########\n####d###d##\n#r...r...##\n##.#.p.#.##\n##...l...l#\n##u###u####\n###########)\n\n", ["tick", "tick", "tick", "tick", 3, "tick", 2, "tick", 2, "tick", 3, "tick", 3, "tick", 0, "tick", "tick", 0, "tick", 3, "tick", 3, "tick", 0, "tick", "tick", "tick", "tick", "tick", 2, "tick", 3, "tick", 3, 0, "tick", "tick", "tick"], "background wall:0,0,0,background wall walld:1,background:2,background wall wallr wallu:3,background wall wallr:4,background wall wallur:5,0,0,0,0,\n1,2,background boxr:6,2,background wall wallu:7,0,0,0,0,background wall walldlr:8,background wall walld walllr:9,2,\n2,7,0,0,0,0,1,2,2,2,7,0,\nbackground wall walldr:10,4,4,background wall walld wallr:11,2,background wall walllr wallud:12,2,3,5,1,2,background boxu:13,\n2,2,2,2,13,7,1,2,2,2,2,2,\n2,background wall walll wallu:14,background wall wallul:15,1,2,background boxl:16,background player priority1:17,2,2,2,7,0,\n8,background wall walllr:18,18,9,2,2,2,7,0,1,2,2,\nbackground boxd:19,2,2,14,15,0,1,2,2,2,2,16,\n7,0,0,1,background target:20,14,background wall walll:21,21,21,15,0,0,\n", 16, "1627778966225.3145"] ], [ `gallery: vacuum`, - ["title Vacuum\nauthor Mark Richardson\nagain_interval 0.3\nflickscreen 9x9\nkey_repeat_interval 0.15\nnoaction\n(verbose_logging)\n\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nSpacemanD\nWhite Black\n.000.\n.010.\n00000\n.000.\n00.00\n\nSpacemanL\nWhite Black\n0.0..\n00000\n.0010\n00000\n0.0..\n\nSpacemanR\nWhite Black\n..0.0\n00000\n0100.\n00000\n..0.0\n\nSpacemanU\nWhite Black\n00.00\n.000.\n00000\n.010.\n.000.\n\nCorpse\nWhite Black\n.....\n.....\n000..\n01000\n00000\n\nDoorwaySpace\nTransparent\n\nDoorwayGrate\n#333 #222\n.....\n.001.\n.0...\n.1...\n.....\n\nGrate\n#333 #222\n.....\n.001.\n.0...\n.1...\n.....\n\nSpace\nBlack\n\nAir7\n#003870\n\nAir6\n#003060\n\nAir5\n#002850\n\nAir4\n#002040\n\nAir3\n#001830\n\nAir2\n#001020\n\nAir1\n#000810\n\nAir0\n#000000\n\nWall\nWhite\n\nCracks\nWhite #AAA #888\n02000\n01000\n20102\n00010\n00020\n\nWindow\n#8EF #0DE\n00000\n01111\n01111\n01111\n01111\n\nCrateS\n#AAA #888 #666 #444 #222\n10001\n02420\n04230\n02320\n10001\n\nCrateL\n#AAA #888 #666 #444 #222\n10000\n02444\n04222\n02333\n10000\n\nCrateR\n#AAA #888 #666 #444 #222\n00001\n44420\n22230\n33320\n00001\n\nCrateU\n#AAA #888 #666 #444 #222\n10001\n02420\n04230\n04230\n04230\n\nCrateD\n#AAA #888 #666 #444 #222\n04230\n04230\n04230\n02320\n10001\n\nCrateUL\n#AAA #888 #666 #444 #222\n10000\n02444\n04222\n04222\n04222\n\nCrateUR\n#AAA #888 #666 #444 #222\n00001\n44420\n22230\n22230\n22230\n\nCrateDL\n#AAA #888 #666 #444 #222\n04222\n04222\n04222\n02333\n10000\n\nCrateDR\n#AAA #888 #666 #444 #222\n22230\n22230\n22230\n33320\n00001\n\nDoorD\n#AAA #555\n..1..\n.101.\n.101.\n.101.\n.101.\n\nDoorL\n#AAA #555\n.....\n1111.\n00001\n1111.\n.....\n\nDoorR\n#AAA #555\n.....\n.1111\n10000\n.1111\n.....\n\nDoorU\n#AAA #555\n.101.\n.101.\n.101.\n.101.\n..1..\n\nDoorDR\n#AAA #555\n.....\n.11..\n.101.\n..101\n...10\n\nDoorDL\n#AAA #555\n.....\n..11.\n.101.\n101..\n01...\n\nDoorUR\n#AAA #555\n...10\n..101\n.101.\n.11..\n.....\n\nDoorUL\n#AAA #555\n01...\n101..\n.101.\n..11.\n.....\n\nAirlockO\n#AAA White\n.....\n....0\n....0\n....0\n.....\n\nAirlockC\n#AAA #A50\n.....\n00000\n01110\n00000\n.....\n\nAirlockG\n#AAA #0A0\n.....\n00000\n01110\n00000\n.....\n\nAirlockL\n#AAA #A00\n.....\n00000\n01110\n00000\n.....\n\nLog\nWhite Green Black\n00000\n12121\n21212\n12121\n00000\n\nLogAction\nWhite Black Green\n00000\n12121\n21212\n12121\n00000\n\nAirlockOn\nWhite #0A0\n00100\n01100\n01110\n00110\n00100\n\nAirlockOff\nWhite #A00\n00000\n00000\n01110\n00000\n00000\n\nClampOnL\nWhite #0A0\n01100\n00100\n01110\n00100\n01100\n\nClampOnR\nWhite #0A0\n00110\n00100\n01110\n00100\n00110\n\nClampOffL\nWhite #A00\n00100\n00100\n00110\n00100\n00100\n\nClampOffR\nWhite #A00\n00100\n00100\n01100\n00100\n00100\n\nNumber0\n#0A0\n.00..\n0..0.\n0..0.\n0..0.\n.00..\n\nNumber1\n#0A0\n..0..\n.00..\n..0..\n..0..\n.000.\n\nNumber2\n#0A0\n000..\n...0.\n.00..\n0....\n0000.\n\nNumber3\n#0A0\n000..\n...0.\n.00..\n...0.\n000..\n\nNumber4\n#0A0\n0....\n0..0.\n0000.\n...0.\n...0.\n\nNumber5\n#0A0\n0000.\n0....\n000..\n...0.\n000..\n\nNumber6\n#0A0\n.00..\n0....\n000..\n0..0.\n.00..\n\nNumber7\n#0A0\n0000.\n...0.\n..0..\n.0...\n0....\n\nNumber8\n#0A0\n.00..\n0..0.\n.00..\n0..0.\n.00..\n\nNumber9\n#0A0\n.00..\n0..0.\n.000.\n...0.\n.00..\n\nClampArm\n#AAA #888 #555\n.....\n00000\n11111\n22222\n.....\n\nClampL\n#AAA #888 #555 Yellow Black\n...33\n00034\n11133\n22234\n...33\n\nClampR\n#AAA #888 #555 Yellow Black\n33...\n43000\n33111\n43222\n33...\n\nPlayer\nTransparent\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nStory1\nTransparent\n\nStory2\nTransparent\n\nStory3\nTransparent\n\nStory4\nTransparent\n\nStory5\nTransparent\n\nStory6\nTransparent\n\nStory7\nTransparent\n\nStory8\nTransparent\n\nStory9\nTransparent\n\nDockU\nTransparent\n\nDockD\nTransparent\n\nGoal\nTransparent\n\nFlip\nTransparent\n\nBreech\nTransparent\n\nThrusterL [\n#AAA #999 #888 #777\n00123\n01223\n01223\n01223\n00123\n\nThrusterR ]\n#777 #666 #555 #444\n01233\n01123\n01123\n01123\n01233\n\nWingUR `\n#FFF #EEE #DDD #BBB\n32100\n.2100\n..100\n...00\n....0\n\nWingUL '\n#FFF #EEE #DDD #BBB\n00123\n0012.\n001..\n00...\n0....\n\nWingDR /\n#FFF #EEE #DDD #BBB\n....0\n...00\n..100\n.2100\n32100\n\nWingDL \\\n#FFF #EEE #DDD #BBB\n0....\n00...\n001..\n0012.\n00123\n\nShuttleL {\n#FFF #EEE #DDD #BBB\n32100\n32100\n32100\n32100\n32100\n\nShuttleR }\n#FFF #EEE #DDD #BBB\n00123\n00123\n00123\n00123\n00123\n\nWall1 α\nWhite #AAA\n00000\n00001\n11111\n01001\n00000\n\nWall2 β\nWhite #AAA\n00000\n01001\n10101\n10101\n10011\n\nWall3 γ\nWhite #AAA\n00000\n01010\n10101\n10101\n10001\n\nWall4 δ\nWhite #AAA\n00000\n01111\n00100\n00100\n11100\n\nWall5 ε\nWhite #AAA\n00000\n10010\n10101\n10101\n11101\n\nPlanetUL ┌\n#F60 #A40 #520\n..221\n.2110\n21110\n21100\n21100\n\nPlanetUR ┐\n#F60 #A40 #520\n112..\n0011.\n00012\n00001\n00001\n\nPlanetDL └\n#F60 #A40 #520\n21100\n21100\n21110\n.2110\n..221\n\nPlanetDR ┘\n#F60 #A40 #520\n00001\n00001\n00012\n0011.\n112..\n\nStar\n#FFA #FF5 #AA0 #550\n...3.\n3212.\n.101.\n.2123\n.3...\n\n\n=======\nLEGEND\n=======\n\n. = Air0\n░ = Space\n, = Air0 and DoorwaySpace\n* = Air0 and Grate\n\" = Air0 and Flip\n¤ = Air0 and Star\n█ = Wall\n▒ = Window\n▓ = Cracks\n! = Wall and Number9\n$ = Air0 and Number9\n~ = Air7\n↓ = DoorD and DoorwayGrate and Air0\n← = DoorL and DoorwayGrate and Air0\n→ = DoorR and DoorwayGrate and Air0\n↑ = DoorU and DoorwayGrate and Air0\n□ = Air0 and CrateS\n╞ = Air0 and CrateL\n╡ = Air0 and CrateR\n╥ = Air0 and CrateU\n╨ = Air0 and CrateD\n╔ = Air0 and CrateUL\n╗ = Air0 and CrateUR\n╚ = Air0 and CrateDL\n╝ = Air0 and CrateDR\na = Player and SpacemanD and Air7\nb = Story1 and Log\nc = DockU and AirlockG and Air7\ne = DockU and AirlockC and Air0 and DoorwayGrate\nf = DockU and AirlockOn\ng = DockU and ClampOnL\nh = DockU and ClampL and Air0\ni = DockU and ClampR and Air0\nj = DockU and ClampArm and Air0\nm = Player and SpacemanD and Air0\nn = Air0 and DoorwayGrate and Breech\no = DockD and ClampArm and Air0\np = DockD and ClampL and Air0\nq = DockD and ClampR and Air0\ns = DockD and AirlockOff\nt = DockD and ClampOnR\nw = DockD and AirlockL and Air0 and DoorwayGrate\nx = DockD and AirlockL and Air7\ny = Story9 and Log\nz = Goal and Air7\n2 = Story2 and Air0\n3 = Story3 and Air0\n4 = Story4 and Air0\n5 = Story5 and Air0\n6 = Story6 and Air0\n7 = Story7 and Air0\n8 = Story8 and Air0\n\nAirT = Air1 or Air2 or Air3 or Air4 or Air5 or Air6\nAirlockA = AirlockC or AirlockG or AirlockO or AirlockL\nAirlockU = AirlockC or AirlockG or AirlockO\nAirlockControl = AirlockOn or AirlockOff\nClamp = ClampL or ClampR\nClampOn = ClampOnL or ClampOnR\nClampOff = ClampOffL or ClampOffR\nClampControl = ClampOn or ClampOff\nCrate = CrateS or CrateD or CrateL or CrateR or CrateU or CrateDL or CrateDR or CrateUL or CrateUR\nCrateDX = CrateD or CrateDL or CrateDR\nCrateLX = CrateL or CrateDL or CrateUL\nCrateRX = CrateR or CrateDR or CrateUR\nCrateUX = CrateU or CrateUL or CrateUR\nDock = DockU or DockD\nDoor = DoorD or DoorL or DoorR or DoorU or DoorDL or DoorDR or DoorUL or DoorUR\nDoorH = DoorL or DoorR\nDoorV = DoorD or DoorU\nDoorS = DoorDL or DoorDR or DoorUL or DoorUR\nDoorway = DoorwayGrate or DoorwaySpace\nNumber = Number0 or Number1 or Number2 or Number3 or Number4 or Number5 or Number6 or Number7 or Number8 or Number9\nPlanet = PlanetDL or PlanetDR or PlanetUL or PlanetUR\nShuttle = ThrusterL or ThrusterR or WingDL or WingDR or WingUL or WingUR or ShuttleL or ShuttleR\nSpaceman = SpacemanD or SpacemanL or SpacemanR or SpacemanU or Corpse\nStory = Story1 or Story2 or Story3 or Story4 or Story5 or Story6 or Story7 or Story8 or Story9\nImmovable = Wall or Window or Cracks or Space or AirlockL or ClampArm or Shuttle or Wall1 or Wall2 or Wall3 or Wall4 or Wall5\nObstruction = Immovable or Crate or Door or AirlockC or AirlockG or Log or LogAction or AirlockControl or ClampControl\nPushObstruction = Obstruction or Grate or DoorwayGrate\n\n\n=======\nSOUNDS\n=======\n\nsfx0 92775908 (Depressrisaion)\nsfx1 28333308 (Repressrisaion)\nsfx3 5427908 (Power down airlock)\nsfx4 68678908 (Power up airlock)\nLogAction Create 35901509 (Checkpoint)\nClampL Move 95348908 (Engage/release clamp)\nAirlockO Create 12359908 (Open airlock)\nAirlockO Destroy 12359908 (Close airlock)\nDoor Destroy 12359908 (Open door)\nCrate Move 58179108 (Crate pushed)\nEndLevel 63640708 (Start of win)\nEndGame 87777508 (Finished win!)\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nAir0, AirT, Air7\nDoorwaySpace, DoorwayGrate, Grate, Goal, Flip, Planet, Star\nPlayer, Obstruction\nDock\nSpaceman\nAirlockO, Clamp, Number, Story, Breech\n\n\n======\nRULES\n======\n\n[> Player Corpse]->cancel\n[> Player|Immovable]->cancel\n\n(Crates)\n[> Player|Crate]->[> Player|> Crate]\nup [moving CrateDX|stationary CrateUX]->[moving CrateDX|moving CrateUX]\ndown [moving CrateUX|stationary CrateDX]->[moving CrateUX|moving CrateDX]\nleft [moving CrateRX|stationary CrateLX]->[moving CrateRX|moving CrateLX]\nright[moving CrateLX|stationary CrateRX]->[moving CrateLX|moving CrateRX]\n[> Crate|stationary PushObstruction]->cancel\n\n(Doors)\nvertical [> Player|DoorH]->[> Player|> DoorH]\nhorizontal[> Player|DoorV]->[> Player|> DoorV]\n[> Player|DoorS]->[> Player|> DoorS]\n[> Door|Door]->[|> Door]\n[horizontal DoorH]->cancel\n[vertical DoorV]->cancel\n[up DoorDL]->[left DoorDL]\n[right DoorDL]->[down DoorDL]\n[up DoorDR]->[right DoorDR]\n[left DoorDR]->[down DoorDR]\n[down DoorUL]->[left DoorUL]\n[right DoorUL]->[up DoorUL]\n[down DoorUR]->[right DoorUR]\n[left DoorUR]->[up DoorUR]\nup [> DoorL|no Obstruction]->[|DoorDL]\ndown [> DoorL|no Obstruction]->[|DoorUL]\nup [> DoorR|no Obstruction]->[|DoorDR]\ndown [> DoorR|no Obstruction]->[|DoorUR]\nleft [> DoorU|no Obstruction]->[|DoorUR]\nright[> DoorU|no Obstruction]->[|DoorUL]\nleft [> DoorD|no Obstruction]->[|DoorDR]\nright[> DoorD|no Obstruction]->[|DoorDL]\ndown [> DoorDL|no Obstruction]->[|DoorL]\nleft [> DoorDL|no Obstruction]->[|DoorD]\ndown [> DoorDR|no Obstruction]->[|DoorR]\nright[> DoorDR|no Obstruction]->[|DoorD]\nup [> DoorUL|no Obstruction]->[|DoorL]\nleft [> DoorUL|no Obstruction]->[|DoorU]\nup [> DoorUR|no Obstruction]->[|DoorR]\nright[> DoorUR|no Obstruction]->[|DoorU]\n[Door DoorwayGrate|no Door DoorwayGrate]->[Door DoorwayGrate|Door DoorwayGrate]\n[> Door|Obstruction]->cancel\n\n(Airlock)\n[> Player|AirlockG]->[Player|AirlockO]\n[AirlockO|AirlockU]->[AirlockO|AirlockO]\n\n(Repressurisation)\n[Air7|Spaceman Air6|]->[Air7|Spaceman Air7|Air7]\n[Air7|Spaceman Air5|]->[Air7|Spaceman Air6|Air6]again\n[Air7|Spaceman Air4|]->[Air7|Spaceman Air5|Air5]again\n[Air7|Spaceman Air3|]->[Air7|Spaceman Air4|Air4]again\n[Air7|Spaceman Air2|]->[Air7|Spaceman Air3|Air3]again\n[Air7|Spaceman Air1|]->[Air7|Spaceman Air2|Air2]again\n[AirlockC Air7|< Player||AirlockU Air0]->[AirlockC Air7|Player Air1|Air1|AirlockC Air0]sfx1 again\n\n(Oxygen)\nright[Number0|Number0][Player Spaceman]->[Number0|Number0][Player Corpse]\nright[Number|Number]->[Number|down Number]\n[Corpse][down Number]->[Corpse][Number]\n[stationary Player AirT][down Number]->[stationary Player AirT][Number]\n[> Player Doorway|Doorway][down Number]->[> Player Doorway|Doorway][Number]\nright[Number|down Number0]->[down Number|Number9]\nright[no Number|down Number0|Number9]->[|Number0|Number0]\n[down Number1]->[Number0]\n[down Number2]->[Number1]\n[down Number3]->[Number2]\n[down Number4]->[Number3]\n[down Number5]->[Number4]\n[down Number6]->[Number5]\n[down Number7]->[Number6]\n[down Number8]->[Number7]\n[down Number9]->[Number8]\n[Spaceman Air7][Number]->[SpacemanD Air7][Number9]\n\n(Depressurisation)\n[Air0|Spaceman Air1|]->[Air0|Spaceman Air0|Air0]\n[Air0|Spaceman Air2|]->[Air0|Spaceman Air1|Air1]again\n[Air0|Spaceman Air3|]->[Air0|Spaceman Air2|Air2]again\n[Air0|Spaceman Air4|]->[Air0|Spaceman Air3|Air3]again\n[Air0|Spaceman Air5|]->[Air0|Spaceman Air4|Air4]again\n[Air0|Spaceman Air6|]->[Air0|Spaceman Air5|Air5]again\n[AirlockC Air0|< Player||AirlockU Air7]->[AirlockC Air0|Player Air6|Air6|AirlockC Air7]sfx0 again\n\n(Airlock link)\n[Air7|AirlockC Air7|Air7]->[Air7|AirlockG Air7|Air7]\n[Air0|AirlockC Air0|Air0]->[Air0|AirlockG Air0|Air0]\n[AirlockC|AirlockO]->[AirlockC|AirlockC]\n\n(Log)\n[LogAction]->[Log]checkpoint\n[> Player|Log no Story]->[> Player|LogAction]again\n[Player Air6|Log Story1]->[Player Air6|Log]again checkpoint message Press [R] to rewind to your last log entry. If you really stuff up, start a new game.\n[> Player Air7|Log Story1]->[Player Air5|Log Story1]again message I record a log of my experiences. It may be useful if I need to retrace my steps.\n\n(Story)\nlate[Player|Story2]->[Player|]message The station is devoid of air. The micro-meteors must have hit here too.\nlate[Player|Story3]->[Player|]message I'll have to find the other shuttle quickly.\nlate[Player|Story4]->[Player|]message These are typical zero-G crates that clamp to the floor when not being moved.\nlate[Player|Story5]->[Player|]message Let's see what useful stuff they're full of...\nlate[Player|Story6]->[Player|]message They're full of vacuum cleaners!\nlate[Player|Story7]->[Player|]message This looks promising!\nlate[Player|Story8]->[Player|]message They just don't make space stations like they used to.\nlate[Player|Story9]->[Player|]message Now I just need to release the docking clamps.\n\n(Power up/down airlock)\n[> Player|AirlockOff][AirlockOn]->[Player|AirlockOff][AirlockOn]message ERROR: Only one airlock may be powered at a time.\n[> Player|AirlockControl DockU][AirlockA DockU]->[> Player|AirlockControl DockU][action AirlockA DockU]\n[> Player|AirlockControl DockD][AirlockA DockD]->[> Player|AirlockControl DockD][action AirlockA DockD]\n[action AirlockU]->[AirlockL]\n[action AirlockL]->[AirlockC]\n[Air0|Air0 AirlockC|Air0]->[Air0|Air0 AirlockG|Air0]\n[> Player|AirlockOn]->[Player|AirlockOff]sfx3\n[> Player|AirlockOff]->[Player|AirlockOn]sfx4\n\n(Clamp/release new shuttle)\n[> Player|ClampOn DockU]->[Player|ClampOn DockU]message No, I'm not releasing the docking clamp on my shuttle. That's my only life line right now.\n[> Player|ClampOn DockD][ClampL DockD][ClampR DockD]->[Player|action ClampOn DockD][left ClampL DockD][right ClampR DockD]\n[> Player|ClampOff DockD][ClampL DockD][ClampR DockD]->[Player|action ClampOff DockD][right ClampL DockD][left ClampR DockD]\n[action ClampOnL ]->[ClampOffL]\n[action ClampOnR ]->[ClampOffR]\n[action ClampOffL]->[ClampOnL ]\n[action ClampOffR]->[ClampOnR ]\n\n(Space walking)\nright[> Player SpacemanR Breech|Breech]->[Breech|Player SpacemanD Breech]\nright[Breech|< Player SpacemanD Breech]->[Player SpacemanR Breech|Breech]\ndown [> Player SpacemanD Breech|Breech]->[Breech|Player SpacemanU Breech]\ndown [Breech|< Player SpacemanU Breech]->[Player SpacemanD Breech|Breech]\nleft [> Player SpacemanD|Flip]->[|Flip down Player down SpacemanR]\nright[> Player SpacemanD|Flip]->[|Flip down Player down SpacemanL]\ndown [> Player SpacemanL|Flip]->[|Flip left Player left SpacemanU]\nup [> Player SpacemanL|Flip]->[|Flip left Player left SpacemanD]\ndown [> Player SpacemanR|Flip]->[|Flip right Player right SpacemanU]\nup [> Player SpacemanR|Flip]->[|Flip right Player right SpacemanD]\nleft [> Player SpacemanU|Flip]->[|Flip up Player up SpacemanR]\nright[> Player SpacemanU|Flip]->[|Flip up Player up SpacemanL]\n\n(Move spaceman)\nlate[Spaceman][no Spaceman Player]->[][Spaceman Player]\n\n\n==============\nWINCONDITIONS\n==============\n\nall Goal on Player\nno ClampOn on DockD\n\n\n=======\nLEVELS\n=======\n\nmessage That micro-meteor storm came out of nowhere!\nmessage My shuttle is badly damaged. My engines are stuttering. My comms are out. I need help fast.\nmessage There's a space station with another shuttle docked there. I have to dock there.\nmessage The station's docking clamps automatically guide me in and affix me to the airlock.\n\n...............................................................\n...............................................................\n...............................................................\n...............................................................\n...............................................................\n.¤........¤........¤........¤........¤........¤........¤.......\n......░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░......\n......░\",,.......,,.......,,\".....\".,,......,,.......,,\"░......\n...┌┐.░$!██▒███▒!!██▒███▒!!█,[]█[]$!██▒███▒!!██▒███▒!!█,░....$$\n......░,█α█▒███▒██β█▒███▒██γ,[]█[],█δ█▒███▒██ε█▒███▒███,░......\n......░.█α╞╡...*.█α╥......█α.`{b}'.█α...□...█α.....□.██.░......\n......░.▒▒.╞╡.╞╡.██╨...╔╗.██.░{a}░.██.╞╡....██□..□.□.▒▒.░......\n......░.██...╥...██╔╗╥.╚╝.██jh{~}ij██.....□*██...□...██.░......\n......░.██.□.╨╞╡*↑↑╚╝╨..╥.██▒▒{~}▒▒██□╞╡╞╡╞╡↑↑5□.□□..██.░......\n.¤....░.██.╥╔╗.□.██.╞╡□.╨*██.▒`c'▒.██.□...╥.██□╞╡.□.□██¤░......\n......░.▒▒*╨╚╝.╞╡██......□↓↓.f/~\\g.↓↓.╥...╨.██.□..□..▒▒.░......\n...┌┐.░.██......□██╞╡.....██.▒{~}▒.██.╨.4...██.□□....██.░......\n...└┘.░$!████→██!!████←██!!████e██!!████←██!!████→██!!█,░....$$\n......░,█α███→████β███←████γ███e████δ███←████ε███→█████,░......\n......░.█β□.□...□█β....□..█β..*2*..█β.......█β.╥.6...██.░......\n......░.▒▒.□.□.□.██..╥.╥..██..*.*..██□□□□□□□██*╨..╔╗*▒▒.░......\n......░.██□.□.□.□██╞╡╨.╨╞╡██.╥..□..██.......██..╞╡╚╝.██.░......\n......░.██.□.□.□.↓↓..□.□..↓↓.╨╔╗...↓↓3╞╡.╞╡.↓↓.╞╡╥...██.░......\n.¤....░.██□.□.□.□██╞╡╥.╥╞╡██**╚╝.**██.╞╡.╞╡.██╞╡.╨...██¤░......\n...┌┐.░.▒▒.□.□.□.██..╨.╨..██..*╞╡..██□□□□□□.██.╞╡.□□□▒▒.░......\n...└┘.░.██□.□.□.□██....□..██..*....██.......██.......██.░......\n......░$!████→██!!████←██!!████→██!!████←██!!████→██!!█,░....$$\n......░,█α███→████β███←████γ███→████δ███←████ε███→█████,░......\n......░.█γ.....╞╡█γ*.*.*.*█γ..╥..╞╡█γ╥.□....█γ.......██.░......\n......░.▒▒╞╡.....██.╥.╞╡╥□██.*╨╔╗.□██╨╥.....██.╔╗.╔╗.▒▒.░......\n......░.██.╞╡╞╡╔╗██*╨*.*╨*██..*╚╝..██.╨╥...□██.╚╝.╚╝.██.░......\n......░.██.....╚╝↑↑...╥╞╡.↑↑...*╞╡.↑↑..╨╥...↑↑.╔╗.╔╗.██.░......\n.¤.┌┐.░.██.╞╡╔╗..██*□*╨*╥*██....*..██╔╗.╨╥..██.╚╝.╚╝.██¤░......\n...└┘.░.▒▒...╚╝..██..╞╡.╨.██.....*.██╚╝..╨╔╗██.╔╗.╔╗.▒▒.░......\n......░.██╞╡....□██*□*.*.*██.......██.....╚╝██.╚╝.╚╝.██.░......\n......░$!████→██!!████←██!!████w██!!████←██!!████→██!!█,░....$$\n......░,█α███→████β███←████γ███w████δ███←████ε███→█████,░......\n......░.█δ□..8..□█δ╥..╞╡..█δ.▒{.}▒.█δ.╔╗.╔╗.█δ..╥....██.░......\n......░.▒▒╔╗.*...██╨╞╡....↑↑.t`.'s7↑↑.╚╝.╚╝.██.╥╨╞╡╥.▒▒.░......\n......░.██╚╝╞╡□╔╗██╥......██.▒/x\\▒.██.╥.╥...██.╨...╨.██.░......\n...┌┐.░.██...*.╚╝↓↓╨......██▒▒{~}▒▒██.╨.╨╔╗.↓↓.╞╡.╥╞╡██.░......\n.¤.└┘.░.▓▓..╞╡□..██.......██op{~}qo██.╥..╚╝.██.□..╨..██¤░......\n......░.nn...*...██.......██.░{z}░.██.╨...╔╗██...╥...▒▒.░......\n......░.▓▓□.╞╡..□██.......██./{y}\\.██...□.╚╝██..□╨...██.░......\n......░$!██▒███▒!!█▓n▓██▒!!█,[]█[]$!██▒███▒!!██▒███▒!!█,░....$$\n......░,███▒███▒███▓n▓██▒███,[]█[],███▒███▒████▒███▒███,░......\n......░\",,.......,,.......,,\".....\",,.......,,.......,,\"░......\n......░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░......\n...┌┐......┌┐......┌┐......┌┐.......┐..........................\n...└┘......└┘......└┘......└┘.......┘..........................\n.¤........¤........¤........¤........¤........¤........¤.......\n...............................................................\n...............................................................\n.......$$.......$$.......$$.......$$.......$$.......$$.......$$\n\nmessage Life support: CHECK\nmessage Clamp released: CHECK\nmessage Airlock disengaged: CHECK\nmessage Engine power: CHECK\nmessage Still alive: ...\nmessage CHECK!\n\n",[2,2,2,2,2,2,2,2,2,2,2,2,2,3,0,3,2,2,3,2,3,3,3,3],"air0 background: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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,air0 background star:1,0,0,0,\n0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,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,0,background planetul:2,0,0,0,0,0,0,0,2,background planetdl:3,0,0,0,0,0,0,2,3,0,\n0,0,0,0,0,2,3,0,0,0,0,0,0,2,3,0,0,0,0,0,0,2,3,0,0,0,0,0,0,0,0,0,0,0,0,background planetur:4,0,0,0,0,0,0,0,4,background planetdr:5,0,0,0,0,0,0,4,5,0,0,0,0,0,0,4,5,0,0,\n0,0,0,0,4,5,0,0,0,0,0,0,4,5,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,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background space:6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,\n0,0,0,0,0,0,6,air0 background flip:7,air0 background number8:8,air0 background doorwayspace:9,0,0,0,0,0,0,0,8,9,0,0,0,0,0,0,0,8,9,0,0,0,0,0,0,0,8,9,0,0,0,0,0,0,0,8,9,7,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,background number5 wall:10,\nbackground wall:11,11,background window:12,11,11,11,12,11,10,11,11,12,11,11,11,12,11,10,11,11,12,11,11,11,12,11,10,11,11,12,11,11,background cracks:13,air0 background breech doorwaygrate:14,13,10,11,9,6,0,0,0,0,0,air0 background number5:15,0,0,0,0,0,0,6,9,11,background wall1:16,16,12,11,11,11,12,11,11,\n16,background wall2:17,12,11,11,11,12,11,11,16,background wall3:18,12,11,11,11,12,11,11,16,background wall4:19,12,11,11,13,14,13,11,11,9,6,0,0,0,0,0,0,0,0,0,0,0,1,6,0,11,11,air0 background cratel:20,0,0,0,0,air0 background grate:21,0,11,11,air0 background crates:22,0,22,0,22,0,22,11,\n11,0,20,0,0,0,0,20,11,11,22,air0 background crateul:23,air0 background cratedl:24,0,0,0,22,11,11,0,6,0,0,1,0,0,0,0,0,0,0,0,0,6,0,12,12,air0 background crater:25,20,0,22,air0 background crateu:26,air0 background crated:27,0,11,11,0,22,0,22,0,22,0,11,11,0,25,20,0,20,0,25,11,\n11,0,air0 background crateur:28,air0 background cratedr:29,0,0,0,0,12,12,0,6,2,3,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,25,0,0,23,24,0,11,11,22,0,22,0,22,0,22,11,11,0,0,25,0,25,0,0,11,11,0,0,20,0,20,0,20,11,\n11,0,6,4,5,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,0,26,27,28,29,0,air0 background doorr doorwaygrate:30,30,0,22,0,22,0,22,0,30,30,0,0,20,0,23,24,0,30,30,air0 background story8:31,21,25,21,25,21,25,11,11,0,6,0,0,0,0,0,0,\n0,0,0,0,0,0,6,0,11,11,0,20,0,20,0,0,0,11,11,0,0,22,0,22,0,22,11,11,0,0,25,0,28,29,0,11,11,0,0,22,0,22,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,12,\n12,21,25,0,25,22,20,0,11,11,0,22,0,22,0,22,0,11,11,20,0,23,24,0,0,0,11,11,0,0,23,24,0,0,0,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,background number8 wall:32,11,0,0,0,21,0,25,22,32,\n11,22,0,22,0,22,0,22,32,11,25,0,28,29,0,0,22,32,11,22,0,28,29,0,0,22,32,11,0,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,10,11,11,11,11,air0 background dooru doorwaygrate:33,11,11,11,10,11,11,11,11,air0 background doord doorwaygrate:34,11,11,11,10,\n11,11,11,11,33,11,11,11,10,11,11,11,11,34,11,11,11,10,11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,17,16,11,11,33,11,11,11,11,17,17,11,11,34,11,11,11,11,17,18,11,11,33,11,11,11,11,\n17,19,11,11,34,11,11,11,11,11,9,6,0,0,0,0,0,0,0,0,0,0,0,1,6,0,11,11,26,27,23,24,0,0,20,11,11,0,0,20,0,20,0,0,11,11,21,0,21,0,21,0,21,11,11,26,27,26,27,0,0,0,13,\n13,0,6,2,3,1,0,0,0,0,0,0,0,0,0,6,0,12,12,0,0,28,29,20,0,25,11,11,0,0,25,0,25,0,0,11,11,0,26,27,0,22,0,22,11,11,0,20,0,0,0,0,0,14,14,0,6,4,5,0,0,0,0,\n0,0,0,0,0,0,6,0,11,11,0,0,26,27,25,0,0,11,11,0,26,27,22,26,27,0,11,11,21,0,21,0,21,20,21,11,11,0,25,0,0,0,0,0,13,13,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,\n11,0,0,0,0,22,0,0,air0 background doorl doorwaygrate:35,35,0,0,0,0,0,0,0,35,35,0,20,0,26,27,25,0,35,35,20,0,0,0,0,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,23,24,0,0,0,0,11,\n11,22,26,27,22,26,27,22,11,11,21,25,21,20,21,0,21,11,11,25,0,0,0,0,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,12,12,0,28,29,26,27,0,0,11,11,0,0,20,0,20,0,0,11,\n11,0,26,27,25,26,27,0,11,11,0,0,0,0,0,0,0,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,32,11,0,0,0,0,21,22,0,32,11,0,0,25,0,25,0,0,32,11,21,22,21,0,21,0,21,32,\n11,0,0,0,0,0,0,0,32,11,0,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,10,11,11,11,11,11,11,34,11,10,11,11,11,11,34,11,11,11,10,11,11,11,11,33,11,11,11,10,11,11,33,11,11,11,11,11,10,\n11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,18,16,11,11,11,11,34,11,11,18,17,11,11,34,11,11,11,11,18,18,11,11,33,11,11,11,11,18,19,33,11,11,11,11,11,11,11,9,6,2,3,0,0,0,0,\n0,0,0,0,0,1,6,7,9,9,0,0,air0 background clamparm docku:36,12,0,0,0,11,11,0,0,0,0,21,0,0,11,11,0,0,0,0,0,0,0,11,11,0,0,0,12,air0 background clamparm dockd:37,0,0,9,9,7,6,4,5,1,0,0,0,0,0,0,0,0,0,6,0,background thrusterl:38,\n38,background wingur:39,6,air0 background clampl docku:40,12,12,airlockon background docku:41,12,11,11,0,0,26,27,21,0,0,11,11,0,21,0,0,0,0,0,11,11,12,background clamponr dockd:42,12,12,air0 background clampl dockd:43,6,background wingdr:44,38,38,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,background thrusterr:45,45,background shuttlel:46,46,46,46,39,44,46,11,\n11,21,21,0,23,24,21,21,11,11,26,27,21,0,0,0,0,11,11,46,39,44,46,46,46,46,45,45,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,background log story1:47,air7 background:48,48,48,air7 airlockc background docku:49,0,0,air0 airlocko background docku doorwaygrate:50,50,0,0,0,28,29,20,0,30,\n30,0,23,24,21,0,0,0,air0 airlockl background dockd doorwaygrate:51,51,0,0,air7 airlockl background dockd:52,48,48,air7 background goal:53,background log story9:54,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,38,38,background shuttler:55,55,55,55,background wingul:56,background wingdl:57,55,11,11,21,21,0,0,0,25,0,11,11,0,28,29,20,21,0,0,11,\n11,55,56,57,55,55,55,55,38,38,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,45,45,56,6,air0 background clampr docku:58,12,12,background clamponl docku:59,12,11,11,0,0,0,22,21,0,0,11,11,20,0,0,25,0,21,0,11,11,12,airlockoff background dockd:60,12,12,air0 background clampr dockd:61,6,57,45,\n45,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,7,8,9,0,0,36,12,0,0,0,32,11,0,0,0,0,21,0,0,32,11,25,22,0,0,0,0,0,32,11,0,air0 background story7:62,0,12,37,0,0,8,9,7,6,0,0,0,0,0,8,\n0,0,0,0,0,0,6,0,10,11,11,11,11,11,11,34,11,10,11,11,11,11,air0 background doorwaygrate:63,11,11,11,10,11,11,11,11,33,11,11,11,10,11,11,33,11,11,11,11,11,10,11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,\n19,16,11,11,11,11,34,11,11,19,17,11,11,63,11,11,11,11,19,18,11,11,33,11,11,11,11,19,19,33,11,11,11,11,11,11,11,9,6,4,5,0,0,0,0,0,0,0,0,0,1,6,9,11,11,0,0,0,22,0,0,0,11,\n11,0,22,0,0,air0 background doorl:64,22,0,11,11,26,27,0,0,23,24,0,11,11,0,0,0,0,0,0,0,11,11,0,6,0,0,1,0,0,0,0,0,0,0,0,0,6,0,12,12,0,20,0,20,22,26,27,11,11,0,22,0,air0 background player spacemand:65,20,22,0,11,\n11,0,26,27,0,28,29,0,11,11,23,24,26,27,26,27,0,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,25,0,25,0,0,0,11,11,0,22,0,20,25,22,0,11,11,22,0,26,27,0,0,0,11,\n11,28,29,0,0,0,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,22,0,0,20,0,0,air0 background story4:66,35,35,0,22,0,25,0,22,0,35,35,0,0,0,26,27,0,0,35,35,0,0,26,27,0,0,22,11,\n11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,0,0,25,0,0,0,11,11,0,22,0,20,20,22,0,11,11,0,0,0,0,26,27,0,11,11,23,24,0,23,24,0,0,11,11,0,6,0,0,0,0,0,0,\n0,0,0,0,0,0,6,0,12,12,0,0,22,20,26,27,0,11,11,0,22,0,25,25,22,0,11,11,0,0,0,0,0,23,24,11,11,28,29,0,28,29,23,24,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,32,\n11,0,0,21,25,0,0,0,32,11,0,22,0,0,0,0,0,32,11,0,0,22,0,0,28,29,32,11,0,0,0,0,0,28,29,32,11,0,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,10,11,11,11,11,33,11,11,11,10,\n11,11,11,11,34,11,11,11,10,11,11,11,11,33,11,11,11,10,11,11,11,11,34,11,11,11,10,11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,background wall5:67,16,11,11,33,11,11,11,11,67,17,11,11,34,11,11,11,11,\n67,18,11,11,33,11,11,11,11,67,19,11,11,34,11,11,11,11,11,9,6,0,0,0,0,0,0,0,0,0,0,0,1,6,0,11,11,0,22,0,air0 background story5:68,22,0,0,11,11,0,21,0,0,20,0,0,11,11,0,0,0,0,0,0,0,11,\n11,0,0,0,0,0,0,0,11,11,0,6,0,0,1,0,0,0,0,0,0,0,0,0,6,0,12,12,0,0,0,22,20,22,22,11,11,26,27,0,20,25,20,0,11,11,0,23,24,23,24,23,24,11,11,0,26,27,20,22,0,0,12,\n12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,0,0,0,25,0,22,11,11,0,0,20,25,0,25,0,11,11,0,28,29,28,29,28,29,11,11,26,27,0,25,0,0,22,11,11,0,6,0,0,0,0,0,0,\n0,0,0,0,0,0,6,0,11,11,0,22,22,22,0,0,0,30,30,air0 background story6:69,0,25,26,27,0,0,30,30,0,0,0,0,0,0,0,30,30,0,20,0,0,0,26,27,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,\n11,0,0,0,22,22,22,0,11,11,0,23,24,0,0,22,0,11,11,0,23,24,23,24,23,24,11,11,0,25,0,26,27,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,12,12,22,22,0,0,0,0,0,11,\n11,0,28,29,0,0,22,0,11,11,0,28,29,28,29,28,29,11,11,0,26,27,20,0,0,0,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,32,11,0,0,0,0,22,0,0,32,11,0,21,0,0,0,22,0,32,\n11,0,0,0,0,0,0,0,32,11,0,0,0,25,0,0,0,32,11,0,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,10,11,11,12,11,11,11,12,11,10,11,11,12,11,11,11,12,11,10,11,11,12,11,11,11,12,11,10,\n11,11,12,11,11,11,12,11,10,11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,11,11,12,11,11,11,12,11,11,11,11,12,11,11,11,12,11,11,11,11,12,11,11,11,12,11,11,11,11,12,11,11,11,12,11,11,\n11,9,6,0,0,0,0,0,0,0,0,0,0,0,1,6,7,9,9,0,0,0,0,1,0,0,9,9,0,0,0,0,1,0,0,9,9,0,0,0,0,1,0,0,9,9,0,0,0,0,1,0,0,9,9,7,6,0,0,1,0,0,0,\n0,0,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,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,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,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,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,8,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,8,\n0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,\n",4,"1627779001776.2905"] + ["title Vacuum\nauthor Mark Richardson\nagain_interval 0.3\nflickscreen 9x9\nkey_repeat_interval 0.15\nnoaction\n(verbose_logging)\n\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nSpacemanD\nWhite Black\n.000.\n.010.\n00000\n.000.\n00.00\n\nSpacemanL\nWhite Black\n0.0..\n00000\n.0010\n00000\n0.0..\n\nSpacemanR\nWhite Black\n..0.0\n00000\n0100.\n00000\n..0.0\n\nSpacemanU\nWhite Black\n00.00\n.000.\n00000\n.010.\n.000.\n\nCorpse\nWhite Black\n.....\n.....\n000..\n01000\n00000\n\nDoorwaySpace\nTransparent\n\nDoorwayGrate\n#333 #222\n.....\n.001.\n.0...\n.1...\n.....\n\nGrate\n#333 #222\n.....\n.001.\n.0...\n.1...\n.....\n\nSpace\nBlack\n\nAir7\n#003870\n\nAir6\n#003060\n\nAir5\n#002850\n\nAir4\n#002040\n\nAir3\n#001830\n\nAir2\n#001020\n\nAir1\n#000810\n\nAir0\n#000000\n\nWall\nWhite\n\nCracks\nWhite #AAA #888\n02000\n01000\n20102\n00010\n00020\n\nWindow\n#8EF #0DE\n00000\n01111\n01111\n01111\n01111\n\nCrateS\n#AAA #888 #666 #444 #222\n10001\n02420\n04230\n02320\n10001\n\nCrateL\n#AAA #888 #666 #444 #222\n10000\n02444\n04222\n02333\n10000\n\nCrateR\n#AAA #888 #666 #444 #222\n00001\n44420\n22230\n33320\n00001\n\nCrateU\n#AAA #888 #666 #444 #222\n10001\n02420\n04230\n04230\n04230\n\nCrateD\n#AAA #888 #666 #444 #222\n04230\n04230\n04230\n02320\n10001\n\nCrateUL\n#AAA #888 #666 #444 #222\n10000\n02444\n04222\n04222\n04222\n\nCrateUR\n#AAA #888 #666 #444 #222\n00001\n44420\n22230\n22230\n22230\n\nCrateDL\n#AAA #888 #666 #444 #222\n04222\n04222\n04222\n02333\n10000\n\nCrateDR\n#AAA #888 #666 #444 #222\n22230\n22230\n22230\n33320\n00001\n\nDoorD\n#AAA #555\n..1..\n.101.\n.101.\n.101.\n.101.\n\nDoorL\n#AAA #555\n.....\n1111.\n00001\n1111.\n.....\n\nDoorR\n#AAA #555\n.....\n.1111\n10000\n.1111\n.....\n\nDoorU\n#AAA #555\n.101.\n.101.\n.101.\n.101.\n..1..\n\nDoorDR\n#AAA #555\n.....\n.11..\n.101.\n..101\n...10\n\nDoorDL\n#AAA #555\n.....\n..11.\n.101.\n101..\n01...\n\nDoorUR\n#AAA #555\n...10\n..101\n.101.\n.11..\n.....\n\nDoorUL\n#AAA #555\n01...\n101..\n.101.\n..11.\n.....\n\nAirlockO\n#AAA White\n.....\n....0\n....0\n....0\n.....\n\nAirlockC\n#AAA #A50\n.....\n00000\n01110\n00000\n.....\n\nAirlockG\n#AAA #0A0\n.....\n00000\n01110\n00000\n.....\n\nAirlockL\n#AAA #A00\n.....\n00000\n01110\n00000\n.....\n\nLog\nWhite Green Black\n00000\n12121\n21212\n12121\n00000\n\nLogAction\nWhite Black Green\n00000\n12121\n21212\n12121\n00000\n\nAirlockOn\nWhite #0A0\n00100\n01100\n01110\n00110\n00100\n\nAirlockOff\nWhite #A00\n00000\n00000\n01110\n00000\n00000\n\nClampOnL\nWhite #0A0\n01100\n00100\n01110\n00100\n01100\n\nClampOnR\nWhite #0A0\n00110\n00100\n01110\n00100\n00110\n\nClampOffL\nWhite #A00\n00100\n00100\n00110\n00100\n00100\n\nClampOffR\nWhite #A00\n00100\n00100\n01100\n00100\n00100\n\nNumber0\n#0A0\n.00..\n0..0.\n0..0.\n0..0.\n.00..\n\nNumber1\n#0A0\n..0..\n.00..\n..0..\n..0..\n.000.\n\nNumber2\n#0A0\n000..\n...0.\n.00..\n0....\n0000.\n\nNumber3\n#0A0\n000..\n...0.\n.00..\n...0.\n000..\n\nNumber4\n#0A0\n0....\n0..0.\n0000.\n...0.\n...0.\n\nNumber5\n#0A0\n0000.\n0....\n000..\n...0.\n000..\n\nNumber6\n#0A0\n.00..\n0....\n000..\n0..0.\n.00..\n\nNumber7\n#0A0\n0000.\n...0.\n..0..\n.0...\n0....\n\nNumber8\n#0A0\n.00..\n0..0.\n.00..\n0..0.\n.00..\n\nNumber9\n#0A0\n.00..\n0..0.\n.000.\n...0.\n.00..\n\nClampArm\n#AAA #888 #555\n.....\n00000\n11111\n22222\n.....\n\nClampL\n#AAA #888 #555 Yellow Black\n...33\n00034\n11133\n22234\n...33\n\nClampR\n#AAA #888 #555 Yellow Black\n33...\n43000\n33111\n43222\n33...\n\nPlayer\nTransparent\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nStory1\nTransparent\n\nStory2\nTransparent\n\nStory3\nTransparent\n\nStory4\nTransparent\n\nStory5\nTransparent\n\nStory6\nTransparent\n\nStory7\nTransparent\n\nStory8\nTransparent\n\nStory9\nTransparent\n\nDockU\nTransparent\n\nDockD\nTransparent\n\nGoal\nTransparent\n\nFlip\nTransparent\n\nBreech\nTransparent\n\nThrusterL [\n#AAA #999 #888 #777\n00123\n01223\n01223\n01223\n00123\n\nThrusterR ]\n#777 #666 #555 #444\n01233\n01123\n01123\n01123\n01233\n\nWingUR `\n#FFF #EEE #DDD #BBB\n32100\n.2100\n..100\n...00\n....0\n\nWingUL '\n#FFF #EEE #DDD #BBB\n00123\n0012.\n001..\n00...\n0....\n\nWingDR /\n#FFF #EEE #DDD #BBB\n....0\n...00\n..100\n.2100\n32100\n\nWingDL \\\n#FFF #EEE #DDD #BBB\n0....\n00...\n001..\n0012.\n00123\n\nShuttleL {\n#FFF #EEE #DDD #BBB\n32100\n32100\n32100\n32100\n32100\n\nShuttleR }\n#FFF #EEE #DDD #BBB\n00123\n00123\n00123\n00123\n00123\n\nWall1 α\nWhite #AAA\n00000\n00001\n11111\n01001\n00000\n\nWall2 β\nWhite #AAA\n00000\n01001\n10101\n10101\n10011\n\nWall3 γ\nWhite #AAA\n00000\n01010\n10101\n10101\n10001\n\nWall4 δ\nWhite #AAA\n00000\n01111\n00100\n00100\n11100\n\nWall5 ε\nWhite #AAA\n00000\n10010\n10101\n10101\n11101\n\nPlanetUL ┌\n#F60 #A40 #520\n..221\n.2110\n21110\n21100\n21100\n\nPlanetUR ┐\n#F60 #A40 #520\n112..\n0011.\n00012\n00001\n00001\n\nPlanetDL └\n#F60 #A40 #520\n21100\n21100\n21110\n.2110\n..221\n\nPlanetDR ┘\n#F60 #A40 #520\n00001\n00001\n00012\n0011.\n112..\n\nStar\n#FFA #FF5 #AA0 #550\n...3.\n3212.\n.101.\n.2123\n.3...\n\n\n=======\nLEGEND\n=======\n\n. = Air0\n░ = Space\n, = Air0 and DoorwaySpace\n* = Air0 and Grate\n\" = Air0 and Flip\n¤ = Air0 and Star\n█ = Wall\n▒ = Window\n▓ = Cracks\n! = Wall and Number9\n$ = Air0 and Number9\n~ = Air7\n↓ = DoorD and DoorwayGrate and Air0\n← = DoorL and DoorwayGrate and Air0\n→ = DoorR and DoorwayGrate and Air0\n↑ = DoorU and DoorwayGrate and Air0\n□ = Air0 and CrateS\n╞ = Air0 and CrateL\n╡ = Air0 and CrateR\n╥ = Air0 and CrateU\n╨ = Air0 and CrateD\n╔ = Air0 and CrateUL\n╗ = Air0 and CrateUR\n╚ = Air0 and CrateDL\n╝ = Air0 and CrateDR\na = Player and SpacemanD and Air7\nb = Story1 and Log\nc = DockU and AirlockG and Air7\ne = DockU and AirlockC and Air0 and DoorwayGrate\nf = DockU and AirlockOn\ng = DockU and ClampOnL\nh = DockU and ClampL and Air0\ni = DockU and ClampR and Air0\nj = DockU and ClampArm and Air0\nm = Player and SpacemanD and Air0\nn = Air0 and DoorwayGrate and Breech\no = DockD and ClampArm and Air0\np = DockD and ClampL and Air0\nq = DockD and ClampR and Air0\ns = DockD and AirlockOff\nt = DockD and ClampOnR\nw = DockD and AirlockL and Air0 and DoorwayGrate\nx = DockD and AirlockL and Air7\ny = Story9 and Log\nz = Goal and Air7\n2 = Story2 and Air0\n3 = Story3 and Air0\n4 = Story4 and Air0\n5 = Story5 and Air0\n6 = Story6 and Air0\n7 = Story7 and Air0\n8 = Story8 and Air0\n\nAirT = Air1 or Air2 or Air3 or Air4 or Air5 or Air6\nAirlockA = AirlockC or AirlockG or AirlockO or AirlockL\nAirlockU = AirlockC or AirlockG or AirlockO\nAirlockControl = AirlockOn or AirlockOff\nClamp = ClampL or ClampR\nClampOn = ClampOnL or ClampOnR\nClampOff = ClampOffL or ClampOffR\nClampControl = ClampOn or ClampOff\nCrate = CrateS or CrateD or CrateL or CrateR or CrateU or CrateDL or CrateDR or CrateUL or CrateUR\nCrateDX = CrateD or CrateDL or CrateDR\nCrateLX = CrateL or CrateDL or CrateUL\nCrateRX = CrateR or CrateDR or CrateUR\nCrateUX = CrateU or CrateUL or CrateUR\nDock = DockU or DockD\nDoor = DoorD or DoorL or DoorR or DoorU or DoorDL or DoorDR or DoorUL or DoorUR\nDoorH = DoorL or DoorR\nDoorV = DoorD or DoorU\nDoorS = DoorDL or DoorDR or DoorUL or DoorUR\nDoorway = DoorwayGrate or DoorwaySpace\nNumber = Number0 or Number1 or Number2 or Number3 or Number4 or Number5 or Number6 or Number7 or Number8 or Number9\nPlanet = PlanetDL or PlanetDR or PlanetUL or PlanetUR\nShuttle = ThrusterL or ThrusterR or WingDL or WingDR or WingUL or WingUR or ShuttleL or ShuttleR\nSpaceman = SpacemanD or SpacemanL or SpacemanR or SpacemanU or Corpse\nStory = Story1 or Story2 or Story3 or Story4 or Story5 or Story6 or Story7 or Story8 or Story9\nImmovable = Wall or Window or Cracks or Space or AirlockL or ClampArm or Shuttle or Wall1 or Wall2 or Wall3 or Wall4 or Wall5\nObstruction = Immovable or Crate or Door or AirlockC or AirlockG or Log or LogAction or AirlockControl or ClampControl\nPushObstruction = Obstruction or Grate or DoorwayGrate\n\n\n=======\nSOUNDS\n=======\n\nsfx0 92775908 (Depressrisaion)\nsfx1 28333308 (Repressrisaion)\nsfx3 5427908 (Power down airlock)\nsfx4 68678908 (Power up airlock)\nLogAction Create 35901509 (Checkpoint)\nClampL Move 95348908 (Engage/release clamp)\nAirlockO Create 12359908 (Open airlock)\nAirlockO Destroy 12359908 (Close airlock)\nDoor Destroy 12359908 (Open door)\nCrate Move 58179108 (Crate pushed)\nEndLevel 63640708 (Start of win)\nEndGame 87777508 (Finished win!)\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nAir0, AirT, Air7\nDoorwaySpace, DoorwayGrate, Grate, Goal, Flip, Planet, Star\nPlayer, Obstruction\nDock\nSpaceman\nAirlockO, Clamp, Number, Story, Breech\n\n\n======\nRULES\n======\n\n[> Player Corpse]->cancel\n[> Player|Immovable]->cancel\n\n(Crates)\n[> Player|Crate]->[> Player|> Crate]\nup [moving CrateDX|stationary CrateUX]->[moving CrateDX|moving CrateUX]\ndown [moving CrateUX|stationary CrateDX]->[moving CrateUX|moving CrateDX]\nleft [moving CrateRX|stationary CrateLX]->[moving CrateRX|moving CrateLX]\nright[moving CrateLX|stationary CrateRX]->[moving CrateLX|moving CrateRX]\n[> Crate|stationary PushObstruction]->cancel\n\n(Doors)\nvertical [> Player|DoorH]->[> Player|> DoorH]\nhorizontal[> Player|DoorV]->[> Player|> DoorV]\n[> Player|DoorS]->[> Player|> DoorS]\n[> Door|Door]->[|> Door]\n[horizontal DoorH]->cancel\n[vertical DoorV]->cancel\n[up DoorDL]->[left DoorDL]\n[right DoorDL]->[down DoorDL]\n[up DoorDR]->[right DoorDR]\n[left DoorDR]->[down DoorDR]\n[down DoorUL]->[left DoorUL]\n[right DoorUL]->[up DoorUL]\n[down DoorUR]->[right DoorUR]\n[left DoorUR]->[up DoorUR]\nup [> DoorL|no Obstruction]->[|DoorDL]\ndown [> DoorL|no Obstruction]->[|DoorUL]\nup [> DoorR|no Obstruction]->[|DoorDR]\ndown [> DoorR|no Obstruction]->[|DoorUR]\nleft [> DoorU|no Obstruction]->[|DoorUR]\nright[> DoorU|no Obstruction]->[|DoorUL]\nleft [> DoorD|no Obstruction]->[|DoorDR]\nright[> DoorD|no Obstruction]->[|DoorDL]\ndown [> DoorDL|no Obstruction]->[|DoorL]\nleft [> DoorDL|no Obstruction]->[|DoorD]\ndown [> DoorDR|no Obstruction]->[|DoorR]\nright[> DoorDR|no Obstruction]->[|DoorD]\nup [> DoorUL|no Obstruction]->[|DoorL]\nleft [> DoorUL|no Obstruction]->[|DoorU]\nup [> DoorUR|no Obstruction]->[|DoorR]\nright[> DoorUR|no Obstruction]->[|DoorU]\n[Door DoorwayGrate|no Door DoorwayGrate]->[Door DoorwayGrate|Door DoorwayGrate]\n[> Door|Obstruction]->cancel\n\n(Airlock)\n[> Player|AirlockG]->[Player|AirlockO]\n[AirlockO|AirlockU]->[AirlockO|AirlockO]\n\n(Repressurisation)\n[Air7|Spaceman Air6|]->[Air7|Spaceman Air7|Air7]\n[Air7|Spaceman Air5|]->[Air7|Spaceman Air6|Air6]again\n[Air7|Spaceman Air4|]->[Air7|Spaceman Air5|Air5]again\n[Air7|Spaceman Air3|]->[Air7|Spaceman Air4|Air4]again\n[Air7|Spaceman Air2|]->[Air7|Spaceman Air3|Air3]again\n[Air7|Spaceman Air1|]->[Air7|Spaceman Air2|Air2]again\n[AirlockC Air7|< Player||AirlockU Air0]->[AirlockC Air7|Player Air1|Air1|AirlockC Air0]sfx1 again\n\n(Oxygen)\nright[Number0|Number0][Player Spaceman]->[Number0|Number0][Player Corpse]\nright[Number|Number]->[Number|down Number]\n[Corpse][down Number]->[Corpse][Number]\n[stationary Player AirT][down Number]->[stationary Player AirT][Number]\n[> Player Doorway|Doorway][down Number]->[> Player Doorway|Doorway][Number]\nright[Number|down Number0]->[down Number|Number9]\nright[no Number|down Number0|Number9]->[|Number0|Number0]\n[down Number1]->[Number0]\n[down Number2]->[Number1]\n[down Number3]->[Number2]\n[down Number4]->[Number3]\n[down Number5]->[Number4]\n[down Number6]->[Number5]\n[down Number7]->[Number6]\n[down Number8]->[Number7]\n[down Number9]->[Number8]\n[Spaceman Air7][Number]->[SpacemanD Air7][Number9]\n\n(Depressurisation)\n[Air0|Spaceman Air1|]->[Air0|Spaceman Air0|Air0]\n[Air0|Spaceman Air2|]->[Air0|Spaceman Air1|Air1]again\n[Air0|Spaceman Air3|]->[Air0|Spaceman Air2|Air2]again\n[Air0|Spaceman Air4|]->[Air0|Spaceman Air3|Air3]again\n[Air0|Spaceman Air5|]->[Air0|Spaceman Air4|Air4]again\n[Air0|Spaceman Air6|]->[Air0|Spaceman Air5|Air5]again\n[AirlockC Air0|< Player||AirlockU Air7]->[AirlockC Air0|Player Air6|Air6|AirlockC Air7]sfx0 again\n\n(Airlock link)\n[Air7|AirlockC Air7|Air7]->[Air7|AirlockG Air7|Air7]\n[Air0|AirlockC Air0|Air0]->[Air0|AirlockG Air0|Air0]\n[AirlockC|AirlockO]->[AirlockC|AirlockC]\n\n(Log)\n[LogAction]->[Log]checkpoint\n[> Player|Log no Story]->[> Player|LogAction]again\n[Player Air6|Log Story1]->[Player Air6|Log]again checkpoint message Press [R] to rewind to your last log entry. If you really stuff up, start a new game.\n[> Player Air7|Log Story1]->[Player Air5|Log Story1]again message I record a log of my experiences. It may be useful if I need to retrace my steps.\n\n(Story)\nlate[Player|Story2]->[Player|]message The station is devoid of air. The micro-meteors must have hit here too.\nlate[Player|Story3]->[Player|]message I'll have to find the other shuttle quickly.\nlate[Player|Story4]->[Player|]message These are typical zero-G crates that clamp to the floor when not being moved.\nlate[Player|Story5]->[Player|]message Let's see what useful stuff they're full of...\nlate[Player|Story6]->[Player|]message They're full of vacuum cleaners!\nlate[Player|Story7]->[Player|]message This looks promising!\nlate[Player|Story8]->[Player|]message They just don't make space stations like they used to.\nlate[Player|Story9]->[Player|]message Now I just need to release the docking clamps.\n\n(Power up/down airlock)\n[> Player|AirlockOff][AirlockOn]->[Player|AirlockOff][AirlockOn]message ERROR: Only one airlock may be powered at a time.\n[> Player|AirlockControl DockU][AirlockA DockU]->[> Player|AirlockControl DockU][action AirlockA DockU]\n[> Player|AirlockControl DockD][AirlockA DockD]->[> Player|AirlockControl DockD][action AirlockA DockD]\n[action AirlockU]->[AirlockL]\n[action AirlockL]->[AirlockC]\n[Air0|Air0 AirlockC|Air0]->[Air0|Air0 AirlockG|Air0]\n[> Player|AirlockOn]->[Player|AirlockOff]sfx3\n[> Player|AirlockOff]->[Player|AirlockOn]sfx4\n\n(Clamp/release new shuttle)\n[> Player|ClampOn DockU]->[Player|ClampOn DockU]message No, I'm not releasing the docking clamp on my shuttle. That's my only life line right now.\n[> Player|ClampOn DockD][ClampL DockD][ClampR DockD]->[Player|action ClampOn DockD][left ClampL DockD][right ClampR DockD]\n[> Player|ClampOff DockD][ClampL DockD][ClampR DockD]->[Player|action ClampOff DockD][right ClampL DockD][left ClampR DockD]\n[action ClampOnL ]->[ClampOffL]\n[action ClampOnR ]->[ClampOffR]\n[action ClampOffL]->[ClampOnL ]\n[action ClampOffR]->[ClampOnR ]\n\n(Space walking)\nright[> Player SpacemanR Breech|Breech]->[Breech|Player SpacemanD Breech]\nright[Breech|< Player SpacemanD Breech]->[Player SpacemanR Breech|Breech]\ndown [> Player SpacemanD Breech|Breech]->[Breech|Player SpacemanU Breech]\ndown [Breech|< Player SpacemanU Breech]->[Player SpacemanD Breech|Breech]\nleft [> Player SpacemanD|Flip]->[|Flip down Player down SpacemanR]\nright[> Player SpacemanD|Flip]->[|Flip down Player down SpacemanL]\ndown [> Player SpacemanL|Flip]->[|Flip left Player left SpacemanU]\nup [> Player SpacemanL|Flip]->[|Flip left Player left SpacemanD]\ndown [> Player SpacemanR|Flip]->[|Flip right Player right SpacemanU]\nup [> Player SpacemanR|Flip]->[|Flip right Player right SpacemanD]\nleft [> Player SpacemanU|Flip]->[|Flip up Player up SpacemanR]\nright[> Player SpacemanU|Flip]->[|Flip up Player up SpacemanL]\n\n(Move spaceman)\nlate[Spaceman][no Spaceman Player]->[][Spaceman Player]\n\n\n==============\nWINCONDITIONS\n==============\n\nall Goal on Player\nno ClampOn on DockD\n\n\n=======\nLEVELS\n=======\n\nmessage That micro-meteor storm came out of nowhere!\nmessage My shuttle is badly damaged. My engines are stuttering. My comms are out. I need help fast.\nmessage There's a space station with another shuttle docked there. I have to dock there.\nmessage The station's docking clamps automatically guide me in and affix me to the airlock.\n\n...............................................................\n...............................................................\n...............................................................\n...............................................................\n...............................................................\n.¤........¤........¤........¤........¤........¤........¤.......\n......░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░......\n......░\",,.......,,.......,,\".....\".,,......,,.......,,\"░......\n...┌┐.░$!██▒███▒!!██▒███▒!!█,[]█[]$!██▒███▒!!██▒███▒!!█,░....$$\n......░,█α█▒███▒██β█▒███▒██γ,[]█[],█δ█▒███▒██ε█▒███▒███,░......\n......░.█α╞╡...*.█α╥......█α.`{b}'.█α...□...█α.....□.██.░......\n......░.▒▒.╞╡.╞╡.██╨...╔╗.██.░{a}░.██.╞╡....██□..□.□.▒▒.░......\n......░.██...╥...██╔╗╥.╚╝.██jh{~}ij██.....□*██...□...██.░......\n......░.██.□.╨╞╡*↑↑╚╝╨..╥.██▒▒{~}▒▒██□╞╡╞╡╞╡↑↑5□.□□..██.░......\n.¤....░.██.╥╔╗.□.██.╞╡□.╨*██.▒`c'▒.██.□...╥.██□╞╡.□.□██¤░......\n......░.▒▒*╨╚╝.╞╡██......□↓↓.f/~\\g.↓↓.╥...╨.██.□..□..▒▒.░......\n...┌┐.░.██......□██╞╡.....██.▒{~}▒.██.╨.4...██.□□....██.░......\n...└┘.░$!████→██!!████←██!!████e██!!████←██!!████→██!!█,░....$$\n......░,█α███→████β███←████γ███e████δ███←████ε███→█████,░......\n......░.█β□.□...□█β....□..█β..*2*..█β.......█β.╥.6...██.░......\n......░.▒▒.□.□.□.██..╥.╥..██..*.*..██□□□□□□□██*╨..╔╗*▒▒.░......\n......░.██□.□.□.□██╞╡╨.╨╞╡██.╥..□..██.......██..╞╡╚╝.██.░......\n......░.██.□.□.□.↓↓..□.□..↓↓.╨╔╗...↓↓3╞╡.╞╡.↓↓.╞╡╥...██.░......\n.¤....░.██□.□.□.□██╞╡╥.╥╞╡██**╚╝.**██.╞╡.╞╡.██╞╡.╨...██¤░......\n...┌┐.░.▒▒.□.□.□.██..╨.╨..██..*╞╡..██□□□□□□.██.╞╡.□□□▒▒.░......\n...└┘.░.██□.□.□.□██....□..██..*....██.......██.......██.░......\n......░$!████→██!!████←██!!████→██!!████←██!!████→██!!█,░....$$\n......░,█α███→████β███←████γ███→████δ███←████ε███→█████,░......\n......░.█γ.....╞╡█γ*.*.*.*█γ..╥..╞╡█γ╥.□....█γ.......██.░......\n......░.▒▒╞╡.....██.╥.╞╡╥□██.*╨╔╗.□██╨╥.....██.╔╗.╔╗.▒▒.░......\n......░.██.╞╡╞╡╔╗██*╨*.*╨*██..*╚╝..██.╨╥...□██.╚╝.╚╝.██.░......\n......░.██.....╚╝↑↑...╥╞╡.↑↑...*╞╡.↑↑..╨╥...↑↑.╔╗.╔╗.██.░......\n.¤.┌┐.░.██.╞╡╔╗..██*□*╨*╥*██....*..██╔╗.╨╥..██.╚╝.╚╝.██¤░......\n...└┘.░.▒▒...╚╝..██..╞╡.╨.██.....*.██╚╝..╨╔╗██.╔╗.╔╗.▒▒.░......\n......░.██╞╡....□██*□*.*.*██.......██.....╚╝██.╚╝.╚╝.██.░......\n......░$!████→██!!████←██!!████w██!!████←██!!████→██!!█,░....$$\n......░,█α███→████β███←████γ███w████δ███←████ε███→█████,░......\n......░.█δ□..8..□█δ╥..╞╡..█δ.▒{.}▒.█δ.╔╗.╔╗.█δ..╥....██.░......\n......░.▒▒╔╗.*...██╨╞╡....↑↑.t`.'s7↑↑.╚╝.╚╝.██.╥╨╞╡╥.▒▒.░......\n......░.██╚╝╞╡□╔╗██╥......██.▒/x\\▒.██.╥.╥...██.╨...╨.██.░......\n...┌┐.░.██...*.╚╝↓↓╨......██▒▒{~}▒▒██.╨.╨╔╗.↓↓.╞╡.╥╞╡██.░......\n.¤.└┘.░.▓▓..╞╡□..██.......██op{~}qo██.╥..╚╝.██.□..╨..██¤░......\n......░.nn...*...██.......██.░{z}░.██.╨...╔╗██...╥...▒▒.░......\n......░.▓▓□.╞╡..□██.......██./{y}\\.██...□.╚╝██..□╨...██.░......\n......░$!██▒███▒!!█▓n▓██▒!!█,[]█[]$!██▒███▒!!██▒███▒!!█,░....$$\n......░,███▒███▒███▓n▓██▒███,[]█[],███▒███▒████▒███▒███,░......\n......░\",,.......,,.......,,\".....\",,.......,,.......,,\"░......\n......░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░......\n...┌┐......┌┐......┌┐......┌┐.......┐..........................\n...└┘......└┘......└┘......└┘.......┘..........................\n.¤........¤........¤........¤........¤........¤........¤.......\n...............................................................\n...............................................................\n.......$$.......$$.......$$.......$$.......$$.......$$.......$$\n\nmessage Life support: CHECK\nmessage Clamp released: CHECK\nmessage Airlock disengaged: CHECK\nmessage Engine power: CHECK\nmessage Still alive: ...\nmessage CHECK!\n\n", [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 0, 3, 2, 2, 3, 2, 3, 3, 3, 3], "air0 background: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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,air0 background star:1,0,0,0,\n0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,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,0,background planetul:2,0,0,0,0,0,0,0,2,background planetdl:3,0,0,0,0,0,0,2,3,0,\n0,0,0,0,0,2,3,0,0,0,0,0,0,2,3,0,0,0,0,0,0,2,3,0,0,0,0,0,0,0,0,0,0,0,0,background planetur:4,0,0,0,0,0,0,0,4,background planetdr:5,0,0,0,0,0,0,4,5,0,0,0,0,0,0,4,5,0,0,\n0,0,0,0,4,5,0,0,0,0,0,0,4,5,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,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background space:6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,\n0,0,0,0,0,0,6,air0 background flip:7,air0 background number8:8,air0 background doorwayspace:9,0,0,0,0,0,0,0,8,9,0,0,0,0,0,0,0,8,9,0,0,0,0,0,0,0,8,9,0,0,0,0,0,0,0,8,9,7,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,background number5 wall:10,\nbackground wall:11,11,background window:12,11,11,11,12,11,10,11,11,12,11,11,11,12,11,10,11,11,12,11,11,11,12,11,10,11,11,12,11,11,background cracks:13,air0 background breech doorwaygrate:14,13,10,11,9,6,0,0,0,0,0,air0 background number5:15,0,0,0,0,0,0,6,9,11,background wall1:16,16,12,11,11,11,12,11,11,\n16,background wall2:17,12,11,11,11,12,11,11,16,background wall3:18,12,11,11,11,12,11,11,16,background wall4:19,12,11,11,13,14,13,11,11,9,6,0,0,0,0,0,0,0,0,0,0,0,1,6,0,11,11,air0 background cratel:20,0,0,0,0,air0 background grate:21,0,11,11,air0 background crates:22,0,22,0,22,0,22,11,\n11,0,20,0,0,0,0,20,11,11,22,air0 background crateul:23,air0 background cratedl:24,0,0,0,22,11,11,0,6,0,0,1,0,0,0,0,0,0,0,0,0,6,0,12,12,air0 background crater:25,20,0,22,air0 background crateu:26,air0 background crated:27,0,11,11,0,22,0,22,0,22,0,11,11,0,25,20,0,20,0,25,11,\n11,0,air0 background crateur:28,air0 background cratedr:29,0,0,0,0,12,12,0,6,2,3,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,25,0,0,23,24,0,11,11,22,0,22,0,22,0,22,11,11,0,0,25,0,25,0,0,11,11,0,0,20,0,20,0,20,11,\n11,0,6,4,5,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,0,26,27,28,29,0,air0 background doorr doorwaygrate:30,30,0,22,0,22,0,22,0,30,30,0,0,20,0,23,24,0,30,30,air0 background story8:31,21,25,21,25,21,25,11,11,0,6,0,0,0,0,0,0,\n0,0,0,0,0,0,6,0,11,11,0,20,0,20,0,0,0,11,11,0,0,22,0,22,0,22,11,11,0,0,25,0,28,29,0,11,11,0,0,22,0,22,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,12,\n12,21,25,0,25,22,20,0,11,11,0,22,0,22,0,22,0,11,11,20,0,23,24,0,0,0,11,11,0,0,23,24,0,0,0,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,background number8 wall:32,11,0,0,0,21,0,25,22,32,\n11,22,0,22,0,22,0,22,32,11,25,0,28,29,0,0,22,32,11,22,0,28,29,0,0,22,32,11,0,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,10,11,11,11,11,air0 background dooru doorwaygrate:33,11,11,11,10,11,11,11,11,air0 background doord doorwaygrate:34,11,11,11,10,\n11,11,11,11,33,11,11,11,10,11,11,11,11,34,11,11,11,10,11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,17,16,11,11,33,11,11,11,11,17,17,11,11,34,11,11,11,11,17,18,11,11,33,11,11,11,11,\n17,19,11,11,34,11,11,11,11,11,9,6,0,0,0,0,0,0,0,0,0,0,0,1,6,0,11,11,26,27,23,24,0,0,20,11,11,0,0,20,0,20,0,0,11,11,21,0,21,0,21,0,21,11,11,26,27,26,27,0,0,0,13,\n13,0,6,2,3,1,0,0,0,0,0,0,0,0,0,6,0,12,12,0,0,28,29,20,0,25,11,11,0,0,25,0,25,0,0,11,11,0,26,27,0,22,0,22,11,11,0,20,0,0,0,0,0,14,14,0,6,4,5,0,0,0,0,\n0,0,0,0,0,0,6,0,11,11,0,0,26,27,25,0,0,11,11,0,26,27,22,26,27,0,11,11,21,0,21,0,21,20,21,11,11,0,25,0,0,0,0,0,13,13,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,\n11,0,0,0,0,22,0,0,air0 background doorl doorwaygrate:35,35,0,0,0,0,0,0,0,35,35,0,20,0,26,27,25,0,35,35,20,0,0,0,0,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,23,24,0,0,0,0,11,\n11,22,26,27,22,26,27,22,11,11,21,25,21,20,21,0,21,11,11,25,0,0,0,0,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,12,12,0,28,29,26,27,0,0,11,11,0,0,20,0,20,0,0,11,\n11,0,26,27,25,26,27,0,11,11,0,0,0,0,0,0,0,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,32,11,0,0,0,0,21,22,0,32,11,0,0,25,0,25,0,0,32,11,21,22,21,0,21,0,21,32,\n11,0,0,0,0,0,0,0,32,11,0,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,10,11,11,11,11,11,11,34,11,10,11,11,11,11,34,11,11,11,10,11,11,11,11,33,11,11,11,10,11,11,33,11,11,11,11,11,10,\n11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,18,16,11,11,11,11,34,11,11,18,17,11,11,34,11,11,11,11,18,18,11,11,33,11,11,11,11,18,19,33,11,11,11,11,11,11,11,9,6,2,3,0,0,0,0,\n0,0,0,0,0,1,6,7,9,9,0,0,air0 background clamparm docku:36,12,0,0,0,11,11,0,0,0,0,21,0,0,11,11,0,0,0,0,0,0,0,11,11,0,0,0,12,air0 background clamparm dockd:37,0,0,9,9,7,6,4,5,1,0,0,0,0,0,0,0,0,0,6,0,background thrusterl:38,\n38,background wingur:39,6,air0 background clampl docku:40,12,12,airlockon background docku:41,12,11,11,0,0,26,27,21,0,0,11,11,0,21,0,0,0,0,0,11,11,12,background clamponr dockd:42,12,12,air0 background clampl dockd:43,6,background wingdr:44,38,38,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,background thrusterr:45,45,background shuttlel:46,46,46,46,39,44,46,11,\n11,21,21,0,23,24,21,21,11,11,26,27,21,0,0,0,0,11,11,46,39,44,46,46,46,46,45,45,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,background log story1:47,air7 background:48,48,48,air7 airlockc background docku:49,0,0,air0 airlocko background docku doorwaygrate:50,50,0,0,0,28,29,20,0,30,\n30,0,23,24,21,0,0,0,air0 airlockl background dockd doorwaygrate:51,51,0,0,air7 airlockl background dockd:52,48,48,air7 background goal:53,background log story9:54,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,38,38,background shuttler:55,55,55,55,background wingul:56,background wingdl:57,55,11,11,21,21,0,0,0,25,0,11,11,0,28,29,20,21,0,0,11,\n11,55,56,57,55,55,55,55,38,38,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,45,45,56,6,air0 background clampr docku:58,12,12,background clamponl docku:59,12,11,11,0,0,0,22,21,0,0,11,11,20,0,0,25,0,21,0,11,11,12,airlockoff background dockd:60,12,12,air0 background clampr dockd:61,6,57,45,\n45,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,7,8,9,0,0,36,12,0,0,0,32,11,0,0,0,0,21,0,0,32,11,25,22,0,0,0,0,0,32,11,0,air0 background story7:62,0,12,37,0,0,8,9,7,6,0,0,0,0,0,8,\n0,0,0,0,0,0,6,0,10,11,11,11,11,11,11,34,11,10,11,11,11,11,air0 background doorwaygrate:63,11,11,11,10,11,11,11,11,33,11,11,11,10,11,11,33,11,11,11,11,11,10,11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,\n19,16,11,11,11,11,34,11,11,19,17,11,11,63,11,11,11,11,19,18,11,11,33,11,11,11,11,19,19,33,11,11,11,11,11,11,11,9,6,4,5,0,0,0,0,0,0,0,0,0,1,6,9,11,11,0,0,0,22,0,0,0,11,\n11,0,22,0,0,air0 background doorl:64,22,0,11,11,26,27,0,0,23,24,0,11,11,0,0,0,0,0,0,0,11,11,0,6,0,0,1,0,0,0,0,0,0,0,0,0,6,0,12,12,0,20,0,20,22,26,27,11,11,0,22,0,air0 background player spacemand:65,20,22,0,11,\n11,0,26,27,0,28,29,0,11,11,23,24,26,27,26,27,0,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,25,0,25,0,0,0,11,11,0,22,0,20,25,22,0,11,11,22,0,26,27,0,0,0,11,\n11,28,29,0,0,0,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,22,0,0,20,0,0,air0 background story4:66,35,35,0,22,0,25,0,22,0,35,35,0,0,0,26,27,0,0,35,35,0,0,26,27,0,0,22,11,\n11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,0,0,25,0,0,0,11,11,0,22,0,20,20,22,0,11,11,0,0,0,0,26,27,0,11,11,23,24,0,23,24,0,0,11,11,0,6,0,0,0,0,0,0,\n0,0,0,0,0,0,6,0,12,12,0,0,22,20,26,27,0,11,11,0,22,0,25,25,22,0,11,11,0,0,0,0,0,23,24,11,11,28,29,0,28,29,23,24,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,32,\n11,0,0,21,25,0,0,0,32,11,0,22,0,0,0,0,0,32,11,0,0,22,0,0,28,29,32,11,0,0,0,0,0,28,29,32,11,0,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,10,11,11,11,11,33,11,11,11,10,\n11,11,11,11,34,11,11,11,10,11,11,11,11,33,11,11,11,10,11,11,11,11,34,11,11,11,10,11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,background wall5:67,16,11,11,33,11,11,11,11,67,17,11,11,34,11,11,11,11,\n67,18,11,11,33,11,11,11,11,67,19,11,11,34,11,11,11,11,11,9,6,0,0,0,0,0,0,0,0,0,0,0,1,6,0,11,11,0,22,0,air0 background story5:68,22,0,0,11,11,0,21,0,0,20,0,0,11,11,0,0,0,0,0,0,0,11,\n11,0,0,0,0,0,0,0,11,11,0,6,0,0,1,0,0,0,0,0,0,0,0,0,6,0,12,12,0,0,0,22,20,22,22,11,11,26,27,0,20,25,20,0,11,11,0,23,24,23,24,23,24,11,11,0,26,27,20,22,0,0,12,\n12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,0,0,0,25,0,22,11,11,0,0,20,25,0,25,0,11,11,0,28,29,28,29,28,29,11,11,26,27,0,25,0,0,22,11,11,0,6,0,0,0,0,0,0,\n0,0,0,0,0,0,6,0,11,11,0,22,22,22,0,0,0,30,30,air0 background story6:69,0,25,26,27,0,0,30,30,0,0,0,0,0,0,0,30,30,0,20,0,0,0,26,27,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,\n11,0,0,0,22,22,22,0,11,11,0,23,24,0,0,22,0,11,11,0,23,24,23,24,23,24,11,11,0,25,0,26,27,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,12,12,22,22,0,0,0,0,0,11,\n11,0,28,29,0,0,22,0,11,11,0,28,29,28,29,28,29,11,11,0,26,27,20,0,0,0,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,32,11,0,0,0,0,22,0,0,32,11,0,21,0,0,0,22,0,32,\n11,0,0,0,0,0,0,0,32,11,0,0,0,25,0,0,0,32,11,0,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,10,11,11,12,11,11,11,12,11,10,11,11,12,11,11,11,12,11,10,11,11,12,11,11,11,12,11,10,\n11,11,12,11,11,11,12,11,10,11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,11,11,12,11,11,11,12,11,11,11,11,12,11,11,11,12,11,11,11,11,12,11,11,11,12,11,11,11,11,12,11,11,11,12,11,11,\n11,9,6,0,0,0,0,0,0,0,0,0,0,0,1,6,7,9,9,0,0,0,0,1,0,0,9,9,0,0,0,0,1,0,0,9,9,0,0,0,0,1,0,0,9,9,0,0,0,0,1,0,0,9,9,7,6,0,0,1,0,0,0,\n0,0,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,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,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,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,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,8,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,8,\n0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,\n", 4, "1627779001776.2905"] ], [ `gallery: paralands`, - ["title ParaLands\nauthor Lukas\nrun_rules_on_level_start\nagain_interval 0.05\nnorepeat_action\n\n========\nOBJECTS\n========\n\n\nBackground\ndarkgray\n\nFloor1\ndarkgray\n\nFloor2\n#444444\n\nWall\ngray #444444 #bbbbbb\n.222.\n20001\n20001\n20001\n.111.\n\nWallConnectorN\ngray #444444 #bbbbbb\n20001\n.....\n.....\n.....\n.....\n\nWallConnectorS\ngray #444444 #bbbbbb\n.....\n.....\n.....\n.....\n20001\n\nWallConnectorE\ngray #444444 #bbbbbb\n....2\n....0\n....0\n....0\n....1\n\nWallConnectorW\ngray #444444 #bbbbbb\n2....\n0....\n0....\n0....\n1....\n\nWallConnectorNE\ngray\n....0\n.....\n.....\n.....\n.....\n\nWallConnectorNW\ngray\n0....\n.....\n.....\n.....\n.....\n\nWallConnectorSE\ngray\n.....\n.....\n.....\n.....\n....0\n\nWallConnectorSW\ngray\n.....\n.....\n.....\n.....\n0....\n\nPit\nblack\n\nPlayerOrange\norange blue\n.000.\n.101.\n00000\n.000.\n.0.0.\n\nPlayerBlue\nblue orange\n.000.\n.101.\n00000\n.000.\n.0.0.\n\nPlayerTrans1\norange blue black\n.....\n.000.\n.101.\n22222\n.222.\n\nPlayerTrans2\nblack\n.....\n.....\n.000.\n00000\n.000.\n\nPlayerTrans3\nblue orange black\n.....\n.000.\n.101.\n22222\n.222.\n\nCrateOrange\norange #ffbb88 #bb6600\n11112\n10002\n10002\n10002\n22222\n\nCrateBlue\nblue #8888ff #0000bb\n11112\n10002\n10002\n10002\n22222\n\nCrateOmni\norange #ffbb88 #bb6600 blue #8888ff #0000bb\n11145\n10035\n10035\n10335\n22555\n\nBallOrange\norange #ffbb88 #bb6600\n.002.\n01002\n00002\n20002\n.222.\n\nBallBlue\nblue #8888ff #0000bb\n.002.\n01002\n00002\n20002\n.222.\n\nBallOmni\norange #ffbb88 #bb6600 blue #0000bb\n.004.\n01034\n00034\n20334\n.244.\n\nDoorOrange\norange #bb6600\n.000.\n00000\n10001\n11111\n.111.\n\nDoorOpenOrange\norange\n.....\n.....\n.000.\n00000\n.000.\n\nDoorBlue\nblue #0000bb\n.000.\n00000\n10001\n11111\n.111.\n\nDoorOpenBlue\nblue\n.....\n.....\n.000.\n00000\n.000.\n\nDoorOmni\norange #bb6600 blue #0000bb\n.002.\n00022\n10223\n11333\n.133.\n\nDoorOpenOmni\norange blue\n.....\n.....\n.001.\n00011\n.011.\n\nSwitchOrange\norange\n.....\n..0..\n.000.\n..0..\n.....\n\nSwitchBlue\nblue\n.....\n..0..\n.000.\n..0..\n.....\n\nSwitchOmni\norange blue\n.....\n..0..\n.001.\n..1..\n.....\n\nTrapdoorOrange\norange #ffbb88\n.000.\n01010\n00000\n01010\n.000.\n\nTrapdoorBlue\nblue #8888ff\n.000.\n01010\n00000\n01010\n.000.\n\nTrapdoorOmni\norange #ffbb88 blue #8888ff\n.002.\n01032\n00022\n01232\n.022.\n\nEnemyOrangeIdle\norange #ffbb88\n.....\n..0..\n.101.\n.0.0.\n.0.0.\n\nEnemyOrangeActive\norange #ffbb88\n.....\n.....\n..0..\n.101.\n.0.0.\n\nEnemyBlueIdle\nblue #8888ff\n.....\n..0..\n.101.\n.0.0.\n.0.0.\n\nEnemyBlueActive\nblue #8888ff\n.....\n.....\n..0..\n.101.\n.0.0.\n\nEnemyOmniIdle\norange #ffbb88 blue #8888ff\n.....\n..0..\n.123.\n.0.2.\n.0.2.\n\nEnemyOmniActive\norange #ffbb88 blue #8888ff\n.....\n.....\n..0..\n.123.\n.0.2.\n\nPlatformOrange\n#bb6600\n.....\n.000.\n.000.\n.000.\n.....\n\nPlatformBlue\n#0000bb\n.....\n.000.\n.000.\n.000.\n.....\n\nPlatformOmni\n#bb6600 #0000bb\n.....\n.001.\n.001.\n.011.\n.....\n\nGoalFr1\ngray lightgray\n.000.\n00111\n01001\n00011\n.111.\n\nGoalFr2\ngray lightgray\n.111.\n01011\n01001\n00101\n.000.\n\nGoalFr3\ngray lightgray \n.111.\n11000\n10010\n11100\n.000.\n\nGoalFr4\ngray lightgray\n.000.\n10100\n10010\n11010\n.111.\n\nBlood\nred\n\nInactiveCrate\nwhite\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\nInactiveBall\nwhite\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nInactivePlatform\nwhite\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nInactiveDoor\nwhite\n.0.0.\n0...0\n.0.0.\n.....\n.....\n\nInactiveDoorOpen\nwhite\n.....\n.....\n.0.0.\n0...0\n.0.0.\n\nInactiveSwitch\ntransparent\n\nInactiveTrapdoor\nwhite\n0...0\n.....\n.....\n.....\n0...0\n\nInactiveEnemy\nwhite\n.....\n..0..\n.0.0.\n.....\n.0.0.\n\nTempCrate\ntransparent\n\nTempBall\ntransparent\n\nTempPlatform\ntransparent\n\ntempDoor\ntransparent\n\ntempDoorOpen\ntransparent\n\ntempSwitch\ntransparent\n\nTempTrapdoor\ntransparent\n\nTempEnemy\ntransparent\n\nInit\ntransparent\n\nEnemyTurn\ntransparent\n\nBuffer\ntransparent\n\nAnimate\ntransparent\n\nPlayerShadow\ntransparent\n\nOrangeToBlue\ntransparent\n\nBlueToOrange\ntransparent\n\nJumpNow\ntransparent\n\nPlayerCrosshair\ntransparent\n\nTrapdoorTriggered\ntransparent\n\nInactiveTrapdoorTriggered\ntransparent\n\nTempTrapdoorTriggered\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n@ = PlayerOrange and Init\n! = GoalFr1\n1 = CrateOrange and InactiveCrate\na = CrateOmni\n2 = BallOrange and InactiveBall\nb = BallOmni\n3 = EnemyOrangeIdle and InactiveEnemy\nc = EnemyOmniIdle\n4 = DoorOrange and InactiveDoor\nd = DoorOmni\n5 = SwitchOrange and InactiveSwitch\ne = SwitchOmni\n6 = Pit and TrapdoorOrange and InactiveTrapdoor\nf = Pit and TrapdoorOmni\n* = Pit\n\n(main game objects)\nFloor = Floor1 or Floor2\nPlayer = PlayerOrange or PlayerBlue or PlayerTrans1 or PlayerTrans2 or PlayerTrans3\nGoal = GoalFr1 or GoalFr2 or GoalFr3 or GoalFr4\n\n(PU game objects)\nMonoCrate = CrateOrange or CrateBlue\nCrate = MonoCrate or CrateOmni\nMonoBall = BallOrange or BallBlue\nBall = MonoBall or BallOmni\nMonoPlatform = PlatformOrange or PlatformBlue\nPlatform = MonoPlatform or PlatformOmni\nMonoDoor = DoorOrange or DoorBlue\nDoor = DoorOmni or MonoDoor\nMonoDoorOpen = DoorOpenOrange or DoorOpenBlue\nDoorOpen = DoorOpenOmni or MonoDoorOpen\nMonoSwitch = SwitchOrange or SwitchBlue\nSwitch = SwitchOmni or MonoSwitch\nMonoTrapdoor = TrapdoorOrange or TrapdoorBlue\nTrapdoor = MonoTrapdoor or TrapdoorOmni\n\nPushable = Ball or Crate\nInactivePushable = InactiveBall or InactiveCrate\nPushableOmni = BallOmni or CrateOmni\n\nEnemyOrange = EnemyOrangeIdle or EnemyOrangeActive\nEnemyBlue = EnemyBlueIdle or EnemyBlueActive\nEnemyOmni = EnemyOmniIdle or EnemyOmniActive\nMonoEnemy = EnemyOrange or EnemyBlue\nEnemy = MonoEnemy or EnemyOmni\nMonoEnemyActive = EnemyBlueActive or EnemyOrangeActive\nEnemyActive = MonoEnemyActive or EnemyOmniActive\n\n(general obstacles)\nObstacle = Wall or Player or Crate or Ball or Enemy or Door\n\n(inactive obstacles)\nInactiveObstacle = InactiveCrate or InactiveBall or InactiveEnemy or InactiveDoor\n\n(obstacles for inactive objects)\nObstacleForInactive = InactiveObstacle or Wall or CrateOmni or BallOmni or EnemyOmni\n\n(obstacles for active enemy)\nObstacleForMonoEnemy = Wall or Enemy or Door\n\n(obstacles for omni enemy)\nObstacleForOmniEnemy = ObstacleForMonoEnemy or InactiveEnemy or InactiveDoor\n\n(Have 4 different Pitfillers, so the correct platform is built)\nPitFillerOrange = CrateOrange or BallOrange\nPitFillerBlue = CrateBlue or BallBlue\nPitFillerOmni = CrateOmni or BallOmni\nPitFillerInactive = InactiveCrate or InactiveBall\n\n(Fillings)\nFilling = Platform or Trapdoor\nInactiveFilling = InactivePlatform or InactiveTrapdoor or PlatformOmni or TrapdoorOmni\n\n(Weights for doors)\nWeight = Player or Crate or Ball or Enemy\nInactiveWeight = InactiveCrate or InactiveBall or InactiveEnemy or CrateOmni or BallOmni or EnemyOmni\n\n(Trapdoor triggers)\nTrigger = Player or Enemy\nInactiveTrigger = InactiveEnemy or EnemyOmni\nOmniTrigger = Trigger or InactiveTrigger\n\n(Temporary objects, eg buffers, flags, ...)\nTempAnimTurn = Init or Buffer or EnemyTurn or Animate or PlayerCrosshair\nTempInputTurn = PlayerShadow\n\n=======\nSOUNDS\n=======\n\nsfx1 27102304\nsfx2 11336309\nPushable move 69429507\nsfx3 47602107\nsfx4 91878702\nTrapdoor Destroy 77067304\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFloor1, Floor2\nGoal, Pit, Switch, DoorOpen\nPlatform, Trapdoor\nInactivePlatform, InactiveTrapdoor\nTempPlatform, TempTrapdoor\nInactiveTrapdoorTriggered\nTempTrapdoorTriggered\nTrapdoorTriggered\nPlayer, Wall, Crate, Ball, Enemy, Door\nInactiveSwitch, InactiveDoorOpen\nTempSwitch, TempDoorOpen\nInactiveCrate, InactiveBall, InactiveEnemy, InactiveDoor\nTempCrate, TempBall, TempEnemy, TempDoor\n\n(Some flags. Just to be sure, might as well use a seperate layer for each)\nAnimate\nBuffer\nInit\nEnemyTurn\nPlayerShadow\nOrangeToBlue, BlueToOrange\nJumpNow\nPlayerCrosshair\n\n(wall connector sprites. Unfortunately, each one needs its own layer)\nWallConnectorN\nWallConnectorE\nWallConnectorS\nWallConnectorW\nWallConnectorNE\nWallConnectorNW\nWallConnectorSE\nWallConnectorSW\n\n(DEATH)\nBlood\n\n======\nRULES \n======\n\n(INIT TURN)\n(Rules in this section are only run once on level start)\n\n(init floor)\n[Init][Player] -> [Init][Player Floor1]\n[Floor1|no Floor] -> [Floor1|Floor2]\n+[Floor2|no Floor] -> [Floor2|Floor1]\n\n(init walls)\nright [Init][Wall|Wall] -> [Init][Wall WallConnectorE|Wall WallConnectorW]\ndown [Init][Wall|Wall] -> [Init][Wall WallConnectorS|Wall WallConnectorN]\n[Init][WallConnectorN WallConnectorE] -> [Init][WallConnectorN WallConnectorE WallConnectorNE]\n[Init][WallConnectorN WallConnectorW] -> [Init][WallConnectorN WallConnectorW WallConnectorNW]\n[Init][WallConnectorS WallConnectorE] -> [Init][WallConnectorS WallConnectorE WallConnectorSE]\n[Init][WallConnectorS WallConnectorW] -> [Init][WallConnectorS WallConnectorW WallConnectorSW]\n\n\n(UNIVERSE HOPPING)\n\n[PlayerTrans3 OrangeToBlue] -> [PlayerBlue]\n[PlayerTrans2 OrangeToBlue JumpNow] -> [PlayerTrans3 OrangeToBlue Animate] again\n[PlayerTrans2 OrangeToBlue no JumpNow] -> [PlayerTrans2 OrangeToBlue JumpNow Animate] again\n[PlayerTrans1 OrangeToBlue] -> [PlayerTrans2 OrangeToBlue Animate] again\n[action PlayerOrange no InactiveObstacle no Pit] -> [PlayerTrans1 OrangeToBlue Animate] again sfx2\n\n[PlayerTrans1 BlueToOrange] -> [PlayerOrange]\n[PlayerTrans2 BlueToOrange JumpNow] -> [PlayerTrans1 BlueToOrange Animate] again\n[PlayerTrans2 BlueToOrange no JumpNow] -> [PlayerTrans2 BlueToOrange JumpNow Animate] again\n[PlayerTrans3 BlueToOrange] -> [PlayerTrans2 BlueToOrange Animate] again\n[action PlayerBlue no InactiveObstacle no Pit] -> [PlayerTrans3 BlueToOrange Animate] again sfx2\n\n[action Player] -> sfx1\n\n\n(PARALLEL UNIVERSE OBJECTS)\n(lots of very similiar code, but no way to avoid that I guess)\n\n(buffer inactive objects)\n[JumpNow][InactiveCrate] -> [JumpNow][TempCrate]\n[JumpNow][InactiveBall] -> [JumpNow][TempBall]\n[JumpNow][InactivePlatform] -> [JumpNow][TempPlatform]\n[JumpNow][InactiveDoor] -> [JumpNow][TempDoor]\n[JumpNow][InactiveDoorOpen] -> [JumpNow][TempDoorOpen]\n[JumpNow][InactiveSwitch] -> [JumpNow][TempSwitch]\n[JumpNow][InactiveTrapdoor] -> [JumpNow][TempTrapdoor]\n[JumpNow][InactiveTrapdoorTriggered] -> [JumpNow][TempTrapdoorTriggered]\n[JumpNow][InactiveEnemy] -> [JumpNow][TempEnemy]\n\n(toggle active objects)\n[JumpNow][MonoCrate] -> [JumpNow][InactiveCrate]\n[JumpNow][MonoBall] -> [JumpNow][InactiveBall]\n[JumpNow][MonoPlatform] -> [JumpNow][InactivePlatform]\n[JumpNow][MonoDoor] -> [JumpNow][InactiveDoor]\n[JumpNow][MonoDoorOpen] -> [JumpNow][InactiveDoorOpen]\n[JumpNow][MonoSwitch] -> [JumpNow][InactiveSwitch]\n[JumpNow][MonoTrapdoor] -> [JumpNow][InactiveTrapdoor]\n[JumpNow][TrapdoorTriggered] -> [JumpNow][InactiveTrapdoorTriggered]\n[JumpNow][MonoEnemy] -> [JumpNow][InactiveEnemy]\n\n(\"load\" inactive objects)\n[TempCrate][OrangeToBlue] -> [CrateBlue][OrangeToBlue]\n[TempCrate][BlueToOrange] -> [CrateOrange][BlueToOrange]\n\n[TempBall][OrangeToBlue] -> [BallBlue][OrangeToBlue]\n[TempBall][BlueToOrange] -> [BallOrange][BlueToOrange]\n\n[TempPlatform][OrangeToBlue] -> [PlatformBlue][OrangeToBlue]\n[TempPlatform][BlueToOrange] -> [PlatformOrange][BlueToOrange]\n\n[TempDoor][OrangeToBlue] -> [DoorBlue][OrangeToBlue]\n[TempDoor][BlueToOrange] -> [DoorOrange][BlueToOrange]\n\n[TempDoorOpen][OrangeToBlue] -> [DoorOpenBlue][OrangeToBlue]\n[TempDoorOpen][BlueToOrange] -> [DoorOpenOrange][BlueToOrange]\n\n[TempSwitch][OrangeToBlue] -> [SwitchBlue][OrangeToBlue]\n[TempSwitch][BlueToOrange] -> [SwitchOrange][BlueToOrange]\n\n[TempTrapdoor][OrangeToBlue] -> [TrapdoorBlue][OrangeToBlue]\n[TempTrapdoor][BlueToOrange] -> [TrapdoorOrange][BlueToOrange]\n\n[TempTrapdoorTriggered] -> [TrapdoorTriggered]\n\n[TempEnemy][OrangeToBlue] -> [EnemyBlueIdle][OrangeToBlue]\n[TempEnemy][BlueToOrange] -> [EnemyOrangeIdle][BlueToOrange]\n\n\n(ENEMY TURN - Kinda nasty)\n\n(Vertical preference, of course - DROD rules!)\nvertical [stationary EnemyActive|...|Player] -> [> EnemyActive|...|Player]\nvertical [stationary EnemyActive|...|PlayerCrosshair] -> [> EnemyActive|...|PlayerCrosshair]\n\n(Do some basic checks if the move is possible)\n[> EnemyActive|ObstacleForMonoEnemy] -> [EnemyActive|ObstacleForMonoEnemy]\n[> EnemyActive|Pushable|Obstacle] -> [EnemyActive|Pushable|Obstacle]\n[> EnemyActive|Pit no Filling] -> [EnemyActive|Pit]\n\n(of course, an omni pushable can't be pushed if the inactive universe blocks it)\n[> EnemyActive|PushableOmni|ObstacleForInactive] -> [EnemyActive|PushableOmni|ObstacleForInactive]\n\n(Special attention to an omni enemy)\n[> EnemyOmniActive|ObstacleForOmniEnemy] -> [EnemyOmniActive|ObstacleForOmniEnemy]\n[> EnemyOmniActive|InactivePushable|ObstacleForInactive] -> [EnemyOmniActive|InactivePushable|ObstacleForInactive]\n[> EnemyOmniActive|Pit no InactiveFilling] -> [EnemyOmniActive|Pit]\n\n(Don't think this is possible without some code duplication)\nhorizontal [stationary EnemyActive|...|Player] -> [> EnemyActive|...|Player]\nhorizontal [stationary EnemyActive|...|PlayerCrosshair] -> [> EnemyActive|...|PlayerCrosshair]\n\n[> EnemyActive|ObstacleForMonoEnemy] -> [EnemyActive|ObstacleForMonoEnemy]\n[> EnemyActive|Pushable|Obstacle] -> [EnemyActive|Pushable|Obstacle]\n[> EnemyActive|Pit no Filling] -> [EnemyActive|Pit]\n\n[> EnemyActive|PushableOmni|ObstacleForInactive] -> [EnemyActive|PushableOmni|ObstacleForInactive]\n\n[> EnemyOmniActive|ObstacleForOmniEnemy] -> [EnemyOmniActive|ObstacleForOmniEnemy]\n[> EnemyOmniActive|InactivePushable|ObstacleForInactive] -> [EnemyOmniActive|InactivePushable|ObstacleForInactive]\n[> EnemyOmniActive|Pit no InactiveFilling] -> [EnemyOmniActive|Pit]\n\n(Move balls - special attention to \"double balls\")\n(do this check first so you might save the player from an unfair death)\n[> EnemyOmniActive|Ball InactiveBall] -> [EnemyOmniActive|> Ball > InactiveBall]\n[> EnemyActive|Ball] -> [EnemyActive|> Ball]\n[> EnemyOmniActive|InactiveBall] -> [EnemyOmniActive|> InactiveBall]\n\n(if able to move into the player, do so)\n[> EnemyActive|Player] -> [|Blood] sfx4\n\n(Move crates)\n[> EnemyActive|Crate] -> [> EnemyActive|> Crate]\n[> EnemyOmniActive|InactiveCrate] -> [> EnemyOmniActive|> InactiveCrate]\n\n\n(ANIMATION TURN)\n\n(Goal animation)\n[Animate][GoalFr4] -> [Animate][GoalFr1 Buffer]\n[Animate][GoalFr3] -> [Animate][GoalFr4]\n[Animate][GoalFr2] -> [Animate][GoalFr3]\n[Animate][GoalFr1 no Buffer] -> [Animate][GoalFr2]\n\n(Turn active monsters back into idle ones)\n[EnemyOrangeActive] -> [EnemyOrangeIdle]\n[EnemyBlueActive] -> [EnemyBlueIdle]\n[EnemyOmniActive] -> [EnemyOmniIdle]\n\n(Death animation)\n[Blood Buffer|] -> [Blood Buffer|Blood]\n\n(kill all temporary objects used by the Anim Turn)\n[TempAnimTurn] -> []\n\n(mark blood tiles)\n[Blood] -> [Blood Buffer] again\n\n\n(PLAYER TURN)\n\n(init player Shadow)\n[Player] -> [Player PlayerShadow]\n\n(don't move into pits)\n[> Player|Pit no Filling] -> [Player|Pit]\n\n(push stuff)\n[> Player|Crate] -> [> Player|> Crate]\n[> CrateOmni|InactiveObstacle] -> [CrateOmni|InactiveObstacle]\n\n[> Player|MonoBall|no Obstacle] -> [Player Animate EnemyTurn|> MonoBall|] again\n[> Player|BallOmni|no Obstacle no InactiveObstacle] -> [Player Animate EnemyTurn|> BallOmni|] again\n\n(move balls)\n[> BallOmni|InactiveObstacle] -> [BallOmni|InactiveObstacle]\n+[> Ball|no Obstacle] -> [|> Ball] sfx3\n+[> MonoBall Pit no Filling] -> [MonoBall Pit]\n+[> BallOmni Pit no Filling no InactiveFilling] -> [BallOmni Pit]\n\n(inactive ones, too)\n[> InactiveBall|ObstacleForInactive] -> [InactiveBall|ObstacleForInactive]\n+[> InactiveBall|no ObstacleForInactive] -> [|> InactiveBall]\n+[> InactiveBall Pit no InactiveFilling] -> [InactiveBall Pit]\n\n(LATE TURN)\n\n(is a trapdoor triggered?)\nlate [MonoTrapdoor Trigger] -> [MonoTrapdoor Trigger TrapdoorTriggered]\nlate [InactiveTrapdoor InactiveTrigger] -> [InactiveTrapdoor InactiveTrigger InactiveTrapdoorTriggered]\nlate [TrapdoorOmni OmniTrigger] -> [TrapdoorOmni OmniTrigger TrapdoorTriggered]\n\n(make triggered trapdoors fall if there's no more weight on top of them)\nlate [MonoTrapdoor TrapdoorTriggered no Weight] -> []\nlate [InactiveTrapdoor InactiveTrapdoorTriggered no InactiveWeight] -> []\nlate [TrapdoorOmni TrapdoorTriggered no Weight no InactiveWeight] -> []\n\n(if something is on top of a pit that can fill it, build a platform)\nlate [Pit no Filling PitFillerOrange] -> [Pit PlatformOrange]\nlate [Pit no Filling PitFillerBlue] -> [Pit PlatformBlue]\nlate [Pit no Filling no InactiveFilling PitFillerOmni] -> [Pit PlatformOmni]\nlate [Pit no InactiveFilling PitFillerInactive] -> [Pit InactivePlatform]\n\n(check door states)\n(start by pretending the doors ar open)\nlate [DoorOrange] -> [DoorOpenOrange]\nlate [DoorBlue] -> [DoorOpenBlue]\nlate [DoorOmni] -> [DoorOpenOmni]\nlate [InactiveDoor] -> [InactiveDoorOpen]\n\n(if there's nothing on top of the door and there's a switch without a weight, close the door)\n(again, this requires a lot of similiar code, but I don't know how to improve that)\nlate [DoorOpenOrange no Obstacle][MonoSwitch no Weight] -> [DoorOrange][MonoSwitch]\nlate [DoorOpenBlue no Obstacle][MonoSwitch no Weight] -> [DoorBlue][MonoSwitch]\nlate [DoorOpenOmni no Obstacle][MonoSwitch no Weight] -> [DoorOmni][MonoSwitch]\nlate [InactiveDoorOpen no ObstacleForInactive][InactiveSwitch no InactiveWeight] -> [InactiveDoor][InactiveSwitch]\n\n(an omni door additionaly needs inactive switches to be held down)\nlate [DoorOpenOmni no Obstacle][InactiveSwitch no InactiveWeight] -> [DoorOmni][InactiveSwitch]\n\n(note that omni switches can be held down in either dimension)\nlate [DoorOpenOrange no Obstacle][SwitchOmni no Weight no InactiveWeight] -> [DoorOrange][SwitchOmni]\nlate [DoorOpenBlue no Obstacle][SwitchOmni no Weight no InactiveWeight] -> [DoorBlue][SwitchOmni]\nlate [DoorOpenOmni no Obstacle][SwitchOmni no Weight no InactiveWeight] -> [DoorOmni][SwitchOmni]\nlate [InactiveDoorOpen no ObstacleForInactive][SwitchOmni no Weight no InactiveWeight] -> [InactiveDoor][SwitchOmni]\n\n(if the player has actually moved, it's the game's turn)\nlate [Player no PlayerShadow] -> [Player Animate EnemyTurn] again\n\n(is an enemy turn coming up? Turn idle monsters into active ones)\nlate [EnemyTurn][EnemyOrangeIdle] -> [EnemyTurn][EnemyOrangeActive]\nlate [EnemyTurn][EnemyBlueIdle] -> [EnemyTurn][EnemyBlueActive]\nlate [EnemyTurn][EnemyOmniIdle] -> [EnemyTurn][EnemyOmniActive]\n\n(also do that crosshair thing)\nlate [EnemyTurn][Player|...|] -> [EnemyTurn][Player|...|PlayerCrosshair]\n\n(kill all temporary objects used by the Player Turn)\nlate [TempInputTurn] -> []\n\n\n==============\nWINCONDITIONS\n==============\n\nsome Player on Goal\n\n======= \nLEVELS\n=======\n\n\nmessage Have you ever wondered ...\nmessage ... if you weren't there ...\nmessage ... would the universe really care?\n\n\nmessage I - Nothing New Under the Sun\n\n#####****###\n#@..#*####c#\n#.a.###d##.#\n#.####d!d#.#\n#*#..##d##.#\n#.#.b#.e.#.#\n#.f..#.e.#.#\n####.#...#.#\n**#..##f##.#\n###..*..##.#\n#.a..#..##.#\n#....#####.#\n######***###\n\n\nmessage II - Universe Hopper\n\n########*\n#..1.1.##\n#..1.1.!#\n#..1.1.##\n#.#######\n#.#*****#\n#.#*1*1*#\n#.#**1**#\n#.#*1*1*#\n#.#*****#\n#.#######\n#*.@.1..#\n#########\n\n\nmessage III - The Best of Both Worlds\n\n****#########****\n#####.......#****\n#...#.#.#.#.#####\n#.1.........*.*!#\n#####.#.#.#.#####\n#.b............@#\n#...#.#.#.#.#####\n#####.......#****\n****#########****\n\n\nmessage IV - Two Times Two\n\n*##########\n##...*#.*!#\n#.11....#*#\n##..#*#.#.#\n*#.##.*...#\n*########@#\n********###\n\nmessage V - Dimensional Prelude\n\n*####****\n*#d!#****\n##*###***\n#*.*.#***\n#@.#*###*\n#....4.##\n#.1#5#a.#\n#.1.....#\n#..######\n####*****\n\n\nmessage VI - Dimensional Gateways\n\n******#####******\n******#...#******\n#######.5.#######\n#...#...@...#...#\n#!.*d.1.e.a.4.1.#\n#...#.......#...#\n#######.5.#######\n******#...#******\n******#####******\n\n\nmessage VII - Two Times Four\n\n****###******\n**###.#######\n###..1..#eee#\n#!d@1.1..ee##\n###..1..#eee#\n**###.#######\n****###******\n\n\nmessage VIII - Game of Marbles\n\n#########**\n#.......#**\n#.2...2.#**\n#.@.....###\n#...5...d!#\n#.b.....###\n#.2...2.#**\n#.......#**\n#########**\n\n\nmessage IX - Fixing a Hole\n\n#######*********\n#..**!#*********\n#..####*********\n##6##########***\n##..........###*\n*#.##d##d##d#.##\n*#.##.##.##....#\n*#@..6..6...2.##\n*#.##.##.##...#*\n*#d##d##d##...#*\n*#............#*\n*####.1.b.....##\n*#**5..........#\n*###############\n\n\nmessage X - Half Time\n\n*****###*******\n*#####*#*******\n*#!..#*###*****\n*#.#d#.a.#*****\n*#.d5...5#*****\n####.....#####*\n#**...5..6...#*\n###a.....#...#*\n**#.5...5#...#*\n**####6###...#*\n*****#....2.2##\n*****#.....2..#\n*****#....2.b.#\n*****######..@#\n**********#####\n\n\nmessage XI - Nemesis\n\n#########******\n#.......#******\n#.#####.#***###\n#.#c#@#.#***#c#\n#.#a#.#.#####d#\n#.#*....b..f.e#\n#.#######b###.#\n###*#..3#f#*#.#\n****#.###.###.#\n****#....*...*#\n****#########d#\n************#!#\n************###\n\n\nmessage XII - Every Breath You Take\n\n****######***\n****#....#***\n****#.##.#***\n****#....#***\n****##c######\n****#*@*****#\n****#*.....*#\n****#*.b...*#\n****#*.....*#\n****#*...b.*#\n****#*.....*#\n****#*****.*#\n##########.##\n#!*b*b*b....#\n########.##.#\n*******#....#\n*******######\n\n\nmessage XIII - Stalking Across Universes\n\n**#########***\n**#.......#***\n**#.#...#.#***\n###.......####\n#c@...1...b*!#\n###.......####\n**#.#...#.#***\n**#.......#***\n**#########***\n\n\nmessage XIV - A Little Help From My Friends\n\n********######\n#########....#\n#.........##3#\n#.#####.b.####\n#.#.####..#***\n#.#..*!#.##***\n#.##.###..#***\n#..#......#***\n##.#.######***\n*#@#.#********\n*#####********\n\n\nmessage XV - Hope Spot\n\n***#####*###\n***#...#*#!#\n***#.1.#*#*#\n####.#####.#\n#.c#.e.2d..#\n#.##.#.###.#\n#.#@...#*#.#\n#.##.#.###.#\n#....#.....#\n############\n\n\nmessage XVI - Hope for the Hopeless\n\n***######*****\n***#*##*#####*\n***#....#*#*##\n***#.**.....*#\n***#.**.*.*.##\n####....*...##\n#!*b.e1..4.@c#\n####....*...##\n***#.**.*.*.##\n***#.**.....*#\n***#....#*#*##\n***#*##*#####*\n***######*****\n\n\nmessage XVII - Blockade\n\n**###\n**#!#\n###*#\n#.#.#\n#.b.#\n#.b.#\n#3#@#\n#####\n\n\n\nmessage XVIII - Pas de Trois\n\n###########\n#.........#\n#.........#\n#....3....#\n#.........#\n#..e...e..#\n#.........#\n#.........#\n#####@#####\n****#d#****\n****#!#****\n****###****\n\n\nmessage XIX - Orange Blues\n\n********###**\n********#!###\n#########6.3#\n#...c...d.###\n#.......#f#**\n#..#.#..#.#**\n#..#5#..###**\n#..###..#****\n#.......#****\n#.1...1.#****\n#.##@##.#****\n#.......#****\n#########****\n\n\nmessage XX - The Last Waltz\n\n**********###****\n**#########3#****\n**#c.##...#d#****\n**##.##.#2#.#****\n**#..#......#****\n###.##.#..#.#****\n#...*.......#****\n#.#a##......#****\n#.#6##.#..1.#****\n#.#6#.......#****\n#...#e#b##b####**\n###f#f#d##d##.#**\n**#@#e.*..*.#.###\n**#########..bb.#\n**********#!#.#f#\n**********###..3#\n************#####\n\n\nmessage Congratulations! Thanks for playing, hope you enjoyed.\n\nmessage Encore\nmessage [Might be a bit too much trial-and-error for an \"official\" level]\n\n###*###**********\n#c#*#e#*########*\n#d###a#*#......#*\n#...#@###....#.#*\n#.#b#........d3#*\n###.#.###..a.####\n###.#.#*#....dbc#\n#!.*f*###....####\n###f#..##....#***\n**#.##f#######***\n**####.#*********\n***#cd.#*********\n***#####*********\n",[3,0,3,3,2,3,3,3,1,1,1,0,1,2,1,2,1,1,4,3,0,3,3,2,3,3,3,1,1,1,1,0,1,1,2,3,3,3,3,3,3,4],"background floor1 pit:0,background floor2 pit:1,background floor1 wall wallconnectore wallconnectors wallconnectorse:2,background floor2 wall wallconnectorn wallconnectors:3,background floor1 wall wallconnectore wallconnectorn wallconnectorne:4,1,0,1,0,background floor2 wall wallconnectore wallconnectorw:5,background floor1 goalfr3:6,5,0,\n1,0,background floor2 wall wallconnectore wallconnectors wallconnectorse:7,background floor1 wall wallconnectorn wallconnectornw wallconnectorw:8,background dooromni floor2:9,background floor1 wall wallconnectors wallconnectorsw wallconnectorw:10,background floor2 wall wallconnectore wallconnectorn wallconnectorne:11,0,1,background floor1 wall wallconnectore wallconnectorw:12,background floor2:13,background floor1:14,13,\n12,1,2,background floor2 wall wallconnectorn wallconnectornw wallconnectorw:15,14,13,14,background floor2 wall wallconnectors wallconnectorsw wallconnectorw:16,4,5,14,13,background crateorange floor1:17,\nbackground crateorange floor2 inactivecrate:18,14,5,10,11,14,13,background crateorange floor1 inactivecrate:19,7,8,1,12,18,\n14,13,12,1,0,background floor2 wall wallconnectore wallconnectors wallconnectorse wallconnectorsw wallconnectorw:20,background floor1 wall wallconnectorn:21,13,background floor1 wall wallconnectors:22,background floor2 wall wallconnectore wallconnectorn wallconnectorne wallconnectornw wallconnectorw:23,0,1,12,\nbackground floor2 switchomni:24,background floor1 playerorange switchomni:25,24,12,1,0,5,background floor1 switchomni:26,background floor2 inactivecrate switchomni:27,26,5,0,1,\n12,24,background floor1 wall wallconnectore:28,24,12,1,0,16,background floor1 wall wallconnectorn wallconnectors:29,background floor2 wall wallconnectorn wallconnectornw wallconnectors wallconnectorsw wallconnectorw:30,29,15,0,\n",16,"1627779079985.3457"] + ["title ParaLands\nauthor Lukas\nrun_rules_on_level_start\nagain_interval 0.05\nnorepeat_action\n\n========\nOBJECTS\n========\n\n\nBackground\ndarkgray\n\nFloor1\ndarkgray\n\nFloor2\n#444444\n\nWall\ngray #444444 #bbbbbb\n.222.\n20001\n20001\n20001\n.111.\n\nWallConnectorN\ngray #444444 #bbbbbb\n20001\n.....\n.....\n.....\n.....\n\nWallConnectorS\ngray #444444 #bbbbbb\n.....\n.....\n.....\n.....\n20001\n\nWallConnectorE\ngray #444444 #bbbbbb\n....2\n....0\n....0\n....0\n....1\n\nWallConnectorW\ngray #444444 #bbbbbb\n2....\n0....\n0....\n0....\n1....\n\nWallConnectorNE\ngray\n....0\n.....\n.....\n.....\n.....\n\nWallConnectorNW\ngray\n0....\n.....\n.....\n.....\n.....\n\nWallConnectorSE\ngray\n.....\n.....\n.....\n.....\n....0\n\nWallConnectorSW\ngray\n.....\n.....\n.....\n.....\n0....\n\nPit\nblack\n\nPlayerOrange\norange blue\n.000.\n.101.\n00000\n.000.\n.0.0.\n\nPlayerBlue\nblue orange\n.000.\n.101.\n00000\n.000.\n.0.0.\n\nPlayerTrans1\norange blue black\n.....\n.000.\n.101.\n22222\n.222.\n\nPlayerTrans2\nblack\n.....\n.....\n.000.\n00000\n.000.\n\nPlayerTrans3\nblue orange black\n.....\n.000.\n.101.\n22222\n.222.\n\nCrateOrange\norange #ffbb88 #bb6600\n11112\n10002\n10002\n10002\n22222\n\nCrateBlue\nblue #8888ff #0000bb\n11112\n10002\n10002\n10002\n22222\n\nCrateOmni\norange #ffbb88 #bb6600 blue #8888ff #0000bb\n11145\n10035\n10035\n10335\n22555\n\nBallOrange\norange #ffbb88 #bb6600\n.002.\n01002\n00002\n20002\n.222.\n\nBallBlue\nblue #8888ff #0000bb\n.002.\n01002\n00002\n20002\n.222.\n\nBallOmni\norange #ffbb88 #bb6600 blue #0000bb\n.004.\n01034\n00034\n20334\n.244.\n\nDoorOrange\norange #bb6600\n.000.\n00000\n10001\n11111\n.111.\n\nDoorOpenOrange\norange\n.....\n.....\n.000.\n00000\n.000.\n\nDoorBlue\nblue #0000bb\n.000.\n00000\n10001\n11111\n.111.\n\nDoorOpenBlue\nblue\n.....\n.....\n.000.\n00000\n.000.\n\nDoorOmni\norange #bb6600 blue #0000bb\n.002.\n00022\n10223\n11333\n.133.\n\nDoorOpenOmni\norange blue\n.....\n.....\n.001.\n00011\n.011.\n\nSwitchOrange\norange\n.....\n..0..\n.000.\n..0..\n.....\n\nSwitchBlue\nblue\n.....\n..0..\n.000.\n..0..\n.....\n\nSwitchOmni\norange blue\n.....\n..0..\n.001.\n..1..\n.....\n\nTrapdoorOrange\norange #ffbb88\n.000.\n01010\n00000\n01010\n.000.\n\nTrapdoorBlue\nblue #8888ff\n.000.\n01010\n00000\n01010\n.000.\n\nTrapdoorOmni\norange #ffbb88 blue #8888ff\n.002.\n01032\n00022\n01232\n.022.\n\nEnemyOrangeIdle\norange #ffbb88\n.....\n..0..\n.101.\n.0.0.\n.0.0.\n\nEnemyOrangeActive\norange #ffbb88\n.....\n.....\n..0..\n.101.\n.0.0.\n\nEnemyBlueIdle\nblue #8888ff\n.....\n..0..\n.101.\n.0.0.\n.0.0.\n\nEnemyBlueActive\nblue #8888ff\n.....\n.....\n..0..\n.101.\n.0.0.\n\nEnemyOmniIdle\norange #ffbb88 blue #8888ff\n.....\n..0..\n.123.\n.0.2.\n.0.2.\n\nEnemyOmniActive\norange #ffbb88 blue #8888ff\n.....\n.....\n..0..\n.123.\n.0.2.\n\nPlatformOrange\n#bb6600\n.....\n.000.\n.000.\n.000.\n.....\n\nPlatformBlue\n#0000bb\n.....\n.000.\n.000.\n.000.\n.....\n\nPlatformOmni\n#bb6600 #0000bb\n.....\n.001.\n.001.\n.011.\n.....\n\nGoalFr1\ngray lightgray\n.000.\n00111\n01001\n00011\n.111.\n\nGoalFr2\ngray lightgray\n.111.\n01011\n01001\n00101\n.000.\n\nGoalFr3\ngray lightgray \n.111.\n11000\n10010\n11100\n.000.\n\nGoalFr4\ngray lightgray\n.000.\n10100\n10010\n11010\n.111.\n\nBlood\nred\n\nInactiveCrate\nwhite\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\nInactiveBall\nwhite\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nInactivePlatform\nwhite\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nInactiveDoor\nwhite\n.0.0.\n0...0\n.0.0.\n.....\n.....\n\nInactiveDoorOpen\nwhite\n.....\n.....\n.0.0.\n0...0\n.0.0.\n\nInactiveSwitch\ntransparent\n\nInactiveTrapdoor\nwhite\n0...0\n.....\n.....\n.....\n0...0\n\nInactiveEnemy\nwhite\n.....\n..0..\n.0.0.\n.....\n.0.0.\n\nTempCrate\ntransparent\n\nTempBall\ntransparent\n\nTempPlatform\ntransparent\n\ntempDoor\ntransparent\n\ntempDoorOpen\ntransparent\n\ntempSwitch\ntransparent\n\nTempTrapdoor\ntransparent\n\nTempEnemy\ntransparent\n\nInit\ntransparent\n\nEnemyTurn\ntransparent\n\nBuffer\ntransparent\n\nAnimate\ntransparent\n\nPlayerShadow\ntransparent\n\nOrangeToBlue\ntransparent\n\nBlueToOrange\ntransparent\n\nJumpNow\ntransparent\n\nPlayerCrosshair\ntransparent\n\nTrapdoorTriggered\ntransparent\n\nInactiveTrapdoorTriggered\ntransparent\n\nTempTrapdoorTriggered\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n@ = PlayerOrange and Init\n! = GoalFr1\n1 = CrateOrange and InactiveCrate\na = CrateOmni\n2 = BallOrange and InactiveBall\nb = BallOmni\n3 = EnemyOrangeIdle and InactiveEnemy\nc = EnemyOmniIdle\n4 = DoorOrange and InactiveDoor\nd = DoorOmni\n5 = SwitchOrange and InactiveSwitch\ne = SwitchOmni\n6 = Pit and TrapdoorOrange and InactiveTrapdoor\nf = Pit and TrapdoorOmni\n* = Pit\n\n(main game objects)\nFloor = Floor1 or Floor2\nPlayer = PlayerOrange or PlayerBlue or PlayerTrans1 or PlayerTrans2 or PlayerTrans3\nGoal = GoalFr1 or GoalFr2 or GoalFr3 or GoalFr4\n\n(PU game objects)\nMonoCrate = CrateOrange or CrateBlue\nCrate = MonoCrate or CrateOmni\nMonoBall = BallOrange or BallBlue\nBall = MonoBall or BallOmni\nMonoPlatform = PlatformOrange or PlatformBlue\nPlatform = MonoPlatform or PlatformOmni\nMonoDoor = DoorOrange or DoorBlue\nDoor = DoorOmni or MonoDoor\nMonoDoorOpen = DoorOpenOrange or DoorOpenBlue\nDoorOpen = DoorOpenOmni or MonoDoorOpen\nMonoSwitch = SwitchOrange or SwitchBlue\nSwitch = SwitchOmni or MonoSwitch\nMonoTrapdoor = TrapdoorOrange or TrapdoorBlue\nTrapdoor = MonoTrapdoor or TrapdoorOmni\n\nPushable = Ball or Crate\nInactivePushable = InactiveBall or InactiveCrate\nPushableOmni = BallOmni or CrateOmni\n\nEnemyOrange = EnemyOrangeIdle or EnemyOrangeActive\nEnemyBlue = EnemyBlueIdle or EnemyBlueActive\nEnemyOmni = EnemyOmniIdle or EnemyOmniActive\nMonoEnemy = EnemyOrange or EnemyBlue\nEnemy = MonoEnemy or EnemyOmni\nMonoEnemyActive = EnemyBlueActive or EnemyOrangeActive\nEnemyActive = MonoEnemyActive or EnemyOmniActive\n\n(general obstacles)\nObstacle = Wall or Player or Crate or Ball or Enemy or Door\n\n(inactive obstacles)\nInactiveObstacle = InactiveCrate or InactiveBall or InactiveEnemy or InactiveDoor\n\n(obstacles for inactive objects)\nObstacleForInactive = InactiveObstacle or Wall or CrateOmni or BallOmni or EnemyOmni\n\n(obstacles for active enemy)\nObstacleForMonoEnemy = Wall or Enemy or Door\n\n(obstacles for omni enemy)\nObstacleForOmniEnemy = ObstacleForMonoEnemy or InactiveEnemy or InactiveDoor\n\n(Have 4 different Pitfillers, so the correct platform is built)\nPitFillerOrange = CrateOrange or BallOrange\nPitFillerBlue = CrateBlue or BallBlue\nPitFillerOmni = CrateOmni or BallOmni\nPitFillerInactive = InactiveCrate or InactiveBall\n\n(Fillings)\nFilling = Platform or Trapdoor\nInactiveFilling = InactivePlatform or InactiveTrapdoor or PlatformOmni or TrapdoorOmni\n\n(Weights for doors)\nWeight = Player or Crate or Ball or Enemy\nInactiveWeight = InactiveCrate or InactiveBall or InactiveEnemy or CrateOmni or BallOmni or EnemyOmni\n\n(Trapdoor triggers)\nTrigger = Player or Enemy\nInactiveTrigger = InactiveEnemy or EnemyOmni\nOmniTrigger = Trigger or InactiveTrigger\n\n(Temporary objects, eg buffers, flags, ...)\nTempAnimTurn = Init or Buffer or EnemyTurn or Animate or PlayerCrosshair\nTempInputTurn = PlayerShadow\n\n=======\nSOUNDS\n=======\n\nsfx1 27102304\nsfx2 11336309\nPushable move 69429507\nsfx3 47602107\nsfx4 91878702\nTrapdoor Destroy 77067304\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFloor1, Floor2\nGoal, Pit, Switch, DoorOpen\nPlatform, Trapdoor\nInactivePlatform, InactiveTrapdoor\nTempPlatform, TempTrapdoor\nInactiveTrapdoorTriggered\nTempTrapdoorTriggered\nTrapdoorTriggered\nPlayer, Wall, Crate, Ball, Enemy, Door\nInactiveSwitch, InactiveDoorOpen\nTempSwitch, TempDoorOpen\nInactiveCrate, InactiveBall, InactiveEnemy, InactiveDoor\nTempCrate, TempBall, TempEnemy, TempDoor\n\n(Some flags. Just to be sure, might as well use a seperate layer for each)\nAnimate\nBuffer\nInit\nEnemyTurn\nPlayerShadow\nOrangeToBlue, BlueToOrange\nJumpNow\nPlayerCrosshair\n\n(wall connector sprites. Unfortunately, each one needs its own layer)\nWallConnectorN\nWallConnectorE\nWallConnectorS\nWallConnectorW\nWallConnectorNE\nWallConnectorNW\nWallConnectorSE\nWallConnectorSW\n\n(DEATH)\nBlood\n\n======\nRULES \n======\n\n(INIT TURN)\n(Rules in this section are only run once on level start)\n\n(init floor)\n[Init][Player] -> [Init][Player Floor1]\n[Floor1|no Floor] -> [Floor1|Floor2]\n+[Floor2|no Floor] -> [Floor2|Floor1]\n\n(init walls)\nright [Init][Wall|Wall] -> [Init][Wall WallConnectorE|Wall WallConnectorW]\ndown [Init][Wall|Wall] -> [Init][Wall WallConnectorS|Wall WallConnectorN]\n[Init][WallConnectorN WallConnectorE] -> [Init][WallConnectorN WallConnectorE WallConnectorNE]\n[Init][WallConnectorN WallConnectorW] -> [Init][WallConnectorN WallConnectorW WallConnectorNW]\n[Init][WallConnectorS WallConnectorE] -> [Init][WallConnectorS WallConnectorE WallConnectorSE]\n[Init][WallConnectorS WallConnectorW] -> [Init][WallConnectorS WallConnectorW WallConnectorSW]\n\n\n(UNIVERSE HOPPING)\n\n[PlayerTrans3 OrangeToBlue] -> [PlayerBlue]\n[PlayerTrans2 OrangeToBlue JumpNow] -> [PlayerTrans3 OrangeToBlue Animate] again\n[PlayerTrans2 OrangeToBlue no JumpNow] -> [PlayerTrans2 OrangeToBlue JumpNow Animate] again\n[PlayerTrans1 OrangeToBlue] -> [PlayerTrans2 OrangeToBlue Animate] again\n[action PlayerOrange no InactiveObstacle no Pit] -> [PlayerTrans1 OrangeToBlue Animate] again sfx2\n\n[PlayerTrans1 BlueToOrange] -> [PlayerOrange]\n[PlayerTrans2 BlueToOrange JumpNow] -> [PlayerTrans1 BlueToOrange Animate] again\n[PlayerTrans2 BlueToOrange no JumpNow] -> [PlayerTrans2 BlueToOrange JumpNow Animate] again\n[PlayerTrans3 BlueToOrange] -> [PlayerTrans2 BlueToOrange Animate] again\n[action PlayerBlue no InactiveObstacle no Pit] -> [PlayerTrans3 BlueToOrange Animate] again sfx2\n\n[action Player] -> sfx1\n\n\n(PARALLEL UNIVERSE OBJECTS)\n(lots of very similiar code, but no way to avoid that I guess)\n\n(buffer inactive objects)\n[JumpNow][InactiveCrate] -> [JumpNow][TempCrate]\n[JumpNow][InactiveBall] -> [JumpNow][TempBall]\n[JumpNow][InactivePlatform] -> [JumpNow][TempPlatform]\n[JumpNow][InactiveDoor] -> [JumpNow][TempDoor]\n[JumpNow][InactiveDoorOpen] -> [JumpNow][TempDoorOpen]\n[JumpNow][InactiveSwitch] -> [JumpNow][TempSwitch]\n[JumpNow][InactiveTrapdoor] -> [JumpNow][TempTrapdoor]\n[JumpNow][InactiveTrapdoorTriggered] -> [JumpNow][TempTrapdoorTriggered]\n[JumpNow][InactiveEnemy] -> [JumpNow][TempEnemy]\n\n(toggle active objects)\n[JumpNow][MonoCrate] -> [JumpNow][InactiveCrate]\n[JumpNow][MonoBall] -> [JumpNow][InactiveBall]\n[JumpNow][MonoPlatform] -> [JumpNow][InactivePlatform]\n[JumpNow][MonoDoor] -> [JumpNow][InactiveDoor]\n[JumpNow][MonoDoorOpen] -> [JumpNow][InactiveDoorOpen]\n[JumpNow][MonoSwitch] -> [JumpNow][InactiveSwitch]\n[JumpNow][MonoTrapdoor] -> [JumpNow][InactiveTrapdoor]\n[JumpNow][TrapdoorTriggered] -> [JumpNow][InactiveTrapdoorTriggered]\n[JumpNow][MonoEnemy] -> [JumpNow][InactiveEnemy]\n\n(\"load\" inactive objects)\n[TempCrate][OrangeToBlue] -> [CrateBlue][OrangeToBlue]\n[TempCrate][BlueToOrange] -> [CrateOrange][BlueToOrange]\n\n[TempBall][OrangeToBlue] -> [BallBlue][OrangeToBlue]\n[TempBall][BlueToOrange] -> [BallOrange][BlueToOrange]\n\n[TempPlatform][OrangeToBlue] -> [PlatformBlue][OrangeToBlue]\n[TempPlatform][BlueToOrange] -> [PlatformOrange][BlueToOrange]\n\n[TempDoor][OrangeToBlue] -> [DoorBlue][OrangeToBlue]\n[TempDoor][BlueToOrange] -> [DoorOrange][BlueToOrange]\n\n[TempDoorOpen][OrangeToBlue] -> [DoorOpenBlue][OrangeToBlue]\n[TempDoorOpen][BlueToOrange] -> [DoorOpenOrange][BlueToOrange]\n\n[TempSwitch][OrangeToBlue] -> [SwitchBlue][OrangeToBlue]\n[TempSwitch][BlueToOrange] -> [SwitchOrange][BlueToOrange]\n\n[TempTrapdoor][OrangeToBlue] -> [TrapdoorBlue][OrangeToBlue]\n[TempTrapdoor][BlueToOrange] -> [TrapdoorOrange][BlueToOrange]\n\n[TempTrapdoorTriggered] -> [TrapdoorTriggered]\n\n[TempEnemy][OrangeToBlue] -> [EnemyBlueIdle][OrangeToBlue]\n[TempEnemy][BlueToOrange] -> [EnemyOrangeIdle][BlueToOrange]\n\n\n(ENEMY TURN - Kinda nasty)\n\n(Vertical preference, of course - DROD rules!)\nvertical [stationary EnemyActive|...|Player] -> [> EnemyActive|...|Player]\nvertical [stationary EnemyActive|...|PlayerCrosshair] -> [> EnemyActive|...|PlayerCrosshair]\n\n(Do some basic checks if the move is possible)\n[> EnemyActive|ObstacleForMonoEnemy] -> [EnemyActive|ObstacleForMonoEnemy]\n[> EnemyActive|Pushable|Obstacle] -> [EnemyActive|Pushable|Obstacle]\n[> EnemyActive|Pit no Filling] -> [EnemyActive|Pit]\n\n(of course, an omni pushable can't be pushed if the inactive universe blocks it)\n[> EnemyActive|PushableOmni|ObstacleForInactive] -> [EnemyActive|PushableOmni|ObstacleForInactive]\n\n(Special attention to an omni enemy)\n[> EnemyOmniActive|ObstacleForOmniEnemy] -> [EnemyOmniActive|ObstacleForOmniEnemy]\n[> EnemyOmniActive|InactivePushable|ObstacleForInactive] -> [EnemyOmniActive|InactivePushable|ObstacleForInactive]\n[> EnemyOmniActive|Pit no InactiveFilling] -> [EnemyOmniActive|Pit]\n\n(Don't think this is possible without some code duplication)\nhorizontal [stationary EnemyActive|...|Player] -> [> EnemyActive|...|Player]\nhorizontal [stationary EnemyActive|...|PlayerCrosshair] -> [> EnemyActive|...|PlayerCrosshair]\n\n[> EnemyActive|ObstacleForMonoEnemy] -> [EnemyActive|ObstacleForMonoEnemy]\n[> EnemyActive|Pushable|Obstacle] -> [EnemyActive|Pushable|Obstacle]\n[> EnemyActive|Pit no Filling] -> [EnemyActive|Pit]\n\n[> EnemyActive|PushableOmni|ObstacleForInactive] -> [EnemyActive|PushableOmni|ObstacleForInactive]\n\n[> EnemyOmniActive|ObstacleForOmniEnemy] -> [EnemyOmniActive|ObstacleForOmniEnemy]\n[> EnemyOmniActive|InactivePushable|ObstacleForInactive] -> [EnemyOmniActive|InactivePushable|ObstacleForInactive]\n[> EnemyOmniActive|Pit no InactiveFilling] -> [EnemyOmniActive|Pit]\n\n(Move balls - special attention to \"double balls\")\n(do this check first so you might save the player from an unfair death)\n[> EnemyOmniActive|Ball InactiveBall] -> [EnemyOmniActive|> Ball > InactiveBall]\n[> EnemyActive|Ball] -> [EnemyActive|> Ball]\n[> EnemyOmniActive|InactiveBall] -> [EnemyOmniActive|> InactiveBall]\n\n(if able to move into the player, do so)\n[> EnemyActive|Player] -> [|Blood] sfx4\n\n(Move crates)\n[> EnemyActive|Crate] -> [> EnemyActive|> Crate]\n[> EnemyOmniActive|InactiveCrate] -> [> EnemyOmniActive|> InactiveCrate]\n\n\n(ANIMATION TURN)\n\n(Goal animation)\n[Animate][GoalFr4] -> [Animate][GoalFr1 Buffer]\n[Animate][GoalFr3] -> [Animate][GoalFr4]\n[Animate][GoalFr2] -> [Animate][GoalFr3]\n[Animate][GoalFr1 no Buffer] -> [Animate][GoalFr2]\n\n(Turn active monsters back into idle ones)\n[EnemyOrangeActive] -> [EnemyOrangeIdle]\n[EnemyBlueActive] -> [EnemyBlueIdle]\n[EnemyOmniActive] -> [EnemyOmniIdle]\n\n(Death animation)\n[Blood Buffer|] -> [Blood Buffer|Blood]\n\n(kill all temporary objects used by the Anim Turn)\n[TempAnimTurn] -> []\n\n(mark blood tiles)\n[Blood] -> [Blood Buffer] again\n\n\n(PLAYER TURN)\n\n(init player Shadow)\n[Player] -> [Player PlayerShadow]\n\n(don't move into pits)\n[> Player|Pit no Filling] -> [Player|Pit]\n\n(push stuff)\n[> Player|Crate] -> [> Player|> Crate]\n[> CrateOmni|InactiveObstacle] -> [CrateOmni|InactiveObstacle]\n\n[> Player|MonoBall|no Obstacle] -> [Player Animate EnemyTurn|> MonoBall|] again\n[> Player|BallOmni|no Obstacle no InactiveObstacle] -> [Player Animate EnemyTurn|> BallOmni|] again\n\n(move balls)\n[> BallOmni|InactiveObstacle] -> [BallOmni|InactiveObstacle]\n+[> Ball|no Obstacle] -> [|> Ball] sfx3\n+[> MonoBall Pit no Filling] -> [MonoBall Pit]\n+[> BallOmni Pit no Filling no InactiveFilling] -> [BallOmni Pit]\n\n(inactive ones, too)\n[> InactiveBall|ObstacleForInactive] -> [InactiveBall|ObstacleForInactive]\n+[> InactiveBall|no ObstacleForInactive] -> [|> InactiveBall]\n+[> InactiveBall Pit no InactiveFilling] -> [InactiveBall Pit]\n\n(LATE TURN)\n\n(is a trapdoor triggered?)\nlate [MonoTrapdoor Trigger] -> [MonoTrapdoor Trigger TrapdoorTriggered]\nlate [InactiveTrapdoor InactiveTrigger] -> [InactiveTrapdoor InactiveTrigger InactiveTrapdoorTriggered]\nlate [TrapdoorOmni OmniTrigger] -> [TrapdoorOmni OmniTrigger TrapdoorTriggered]\n\n(make triggered trapdoors fall if there's no more weight on top of them)\nlate [MonoTrapdoor TrapdoorTriggered no Weight] -> []\nlate [InactiveTrapdoor InactiveTrapdoorTriggered no InactiveWeight] -> []\nlate [TrapdoorOmni TrapdoorTriggered no Weight no InactiveWeight] -> []\n\n(if something is on top of a pit that can fill it, build a platform)\nlate [Pit no Filling PitFillerOrange] -> [Pit PlatformOrange]\nlate [Pit no Filling PitFillerBlue] -> [Pit PlatformBlue]\nlate [Pit no Filling no InactiveFilling PitFillerOmni] -> [Pit PlatformOmni]\nlate [Pit no InactiveFilling PitFillerInactive] -> [Pit InactivePlatform]\n\n(check door states)\n(start by pretending the doors ar open)\nlate [DoorOrange] -> [DoorOpenOrange]\nlate [DoorBlue] -> [DoorOpenBlue]\nlate [DoorOmni] -> [DoorOpenOmni]\nlate [InactiveDoor] -> [InactiveDoorOpen]\n\n(if there's nothing on top of the door and there's a switch without a weight, close the door)\n(again, this requires a lot of similiar code, but I don't know how to improve that)\nlate [DoorOpenOrange no Obstacle][MonoSwitch no Weight] -> [DoorOrange][MonoSwitch]\nlate [DoorOpenBlue no Obstacle][MonoSwitch no Weight] -> [DoorBlue][MonoSwitch]\nlate [DoorOpenOmni no Obstacle][MonoSwitch no Weight] -> [DoorOmni][MonoSwitch]\nlate [InactiveDoorOpen no ObstacleForInactive][InactiveSwitch no InactiveWeight] -> [InactiveDoor][InactiveSwitch]\n\n(an omni door additionaly needs inactive switches to be held down)\nlate [DoorOpenOmni no Obstacle][InactiveSwitch no InactiveWeight] -> [DoorOmni][InactiveSwitch]\n\n(note that omni switches can be held down in either dimension)\nlate [DoorOpenOrange no Obstacle][SwitchOmni no Weight no InactiveWeight] -> [DoorOrange][SwitchOmni]\nlate [DoorOpenBlue no Obstacle][SwitchOmni no Weight no InactiveWeight] -> [DoorBlue][SwitchOmni]\nlate [DoorOpenOmni no Obstacle][SwitchOmni no Weight no InactiveWeight] -> [DoorOmni][SwitchOmni]\nlate [InactiveDoorOpen no ObstacleForInactive][SwitchOmni no Weight no InactiveWeight] -> [InactiveDoor][SwitchOmni]\n\n(if the player has actually moved, it's the game's turn)\nlate [Player no PlayerShadow] -> [Player Animate EnemyTurn] again\n\n(is an enemy turn coming up? Turn idle monsters into active ones)\nlate [EnemyTurn][EnemyOrangeIdle] -> [EnemyTurn][EnemyOrangeActive]\nlate [EnemyTurn][EnemyBlueIdle] -> [EnemyTurn][EnemyBlueActive]\nlate [EnemyTurn][EnemyOmniIdle] -> [EnemyTurn][EnemyOmniActive]\n\n(also do that crosshair thing)\nlate [EnemyTurn][Player|...|] -> [EnemyTurn][Player|...|PlayerCrosshair]\n\n(kill all temporary objects used by the Player Turn)\nlate [TempInputTurn] -> []\n\n\n==============\nWINCONDITIONS\n==============\n\nsome Player on Goal\n\n======= \nLEVELS\n=======\n\n\nmessage Have you ever wondered ...\nmessage ... if you weren't there ...\nmessage ... would the universe really care?\n\n\nmessage I - Nothing New Under the Sun\n\n#####****###\n#@..#*####c#\n#.a.###d##.#\n#.####d!d#.#\n#*#..##d##.#\n#.#.b#.e.#.#\n#.f..#.e.#.#\n####.#...#.#\n**#..##f##.#\n###..*..##.#\n#.a..#..##.#\n#....#####.#\n######***###\n\n\nmessage II - Universe Hopper\n\n########*\n#..1.1.##\n#..1.1.!#\n#..1.1.##\n#.#######\n#.#*****#\n#.#*1*1*#\n#.#**1**#\n#.#*1*1*#\n#.#*****#\n#.#######\n#*.@.1..#\n#########\n\n\nmessage III - The Best of Both Worlds\n\n****#########****\n#####.......#****\n#...#.#.#.#.#####\n#.1.........*.*!#\n#####.#.#.#.#####\n#.b............@#\n#...#.#.#.#.#####\n#####.......#****\n****#########****\n\n\nmessage IV - Two Times Two\n\n*##########\n##...*#.*!#\n#.11....#*#\n##..#*#.#.#\n*#.##.*...#\n*########@#\n********###\n\nmessage V - Dimensional Prelude\n\n*####****\n*#d!#****\n##*###***\n#*.*.#***\n#@.#*###*\n#....4.##\n#.1#5#a.#\n#.1.....#\n#..######\n####*****\n\n\nmessage VI - Dimensional Gateways\n\n******#####******\n******#...#******\n#######.5.#######\n#...#...@...#...#\n#!.*d.1.e.a.4.1.#\n#...#.......#...#\n#######.5.#######\n******#...#******\n******#####******\n\n\nmessage VII - Two Times Four\n\n****###******\n**###.#######\n###..1..#eee#\n#!d@1.1..ee##\n###..1..#eee#\n**###.#######\n****###******\n\n\nmessage VIII - Game of Marbles\n\n#########**\n#.......#**\n#.2...2.#**\n#.@.....###\n#...5...d!#\n#.b.....###\n#.2...2.#**\n#.......#**\n#########**\n\n\nmessage IX - Fixing a Hole\n\n#######*********\n#..**!#*********\n#..####*********\n##6##########***\n##..........###*\n*#.##d##d##d#.##\n*#.##.##.##....#\n*#@..6..6...2.##\n*#.##.##.##...#*\n*#d##d##d##...#*\n*#............#*\n*####.1.b.....##\n*#**5..........#\n*###############\n\n\nmessage X - Half Time\n\n*****###*******\n*#####*#*******\n*#!..#*###*****\n*#.#d#.a.#*****\n*#.d5...5#*****\n####.....#####*\n#**...5..6...#*\n###a.....#...#*\n**#.5...5#...#*\n**####6###...#*\n*****#....2.2##\n*****#.....2..#\n*****#....2.b.#\n*****######..@#\n**********#####\n\n\nmessage XI - Nemesis\n\n#########******\n#.......#******\n#.#####.#***###\n#.#c#@#.#***#c#\n#.#a#.#.#####d#\n#.#*....b..f.e#\n#.#######b###.#\n###*#..3#f#*#.#\n****#.###.###.#\n****#....*...*#\n****#########d#\n************#!#\n************###\n\n\nmessage XII - Every Breath You Take\n\n****######***\n****#....#***\n****#.##.#***\n****#....#***\n****##c######\n****#*@*****#\n****#*.....*#\n****#*.b...*#\n****#*.....*#\n****#*...b.*#\n****#*.....*#\n****#*****.*#\n##########.##\n#!*b*b*b....#\n########.##.#\n*******#....#\n*******######\n\n\nmessage XIII - Stalking Across Universes\n\n**#########***\n**#.......#***\n**#.#...#.#***\n###.......####\n#c@...1...b*!#\n###.......####\n**#.#...#.#***\n**#.......#***\n**#########***\n\n\nmessage XIV - A Little Help From My Friends\n\n********######\n#########....#\n#.........##3#\n#.#####.b.####\n#.#.####..#***\n#.#..*!#.##***\n#.##.###..#***\n#..#......#***\n##.#.######***\n*#@#.#********\n*#####********\n\n\nmessage XV - Hope Spot\n\n***#####*###\n***#...#*#!#\n***#.1.#*#*#\n####.#####.#\n#.c#.e.2d..#\n#.##.#.###.#\n#.#@...#*#.#\n#.##.#.###.#\n#....#.....#\n############\n\n\nmessage XVI - Hope for the Hopeless\n\n***######*****\n***#*##*#####*\n***#....#*#*##\n***#.**.....*#\n***#.**.*.*.##\n####....*...##\n#!*b.e1..4.@c#\n####....*...##\n***#.**.*.*.##\n***#.**.....*#\n***#....#*#*##\n***#*##*#####*\n***######*****\n\n\nmessage XVII - Blockade\n\n**###\n**#!#\n###*#\n#.#.#\n#.b.#\n#.b.#\n#3#@#\n#####\n\n\n\nmessage XVIII - Pas de Trois\n\n###########\n#.........#\n#.........#\n#....3....#\n#.........#\n#..e...e..#\n#.........#\n#.........#\n#####@#####\n****#d#****\n****#!#****\n****###****\n\n\nmessage XIX - Orange Blues\n\n********###**\n********#!###\n#########6.3#\n#...c...d.###\n#.......#f#**\n#..#.#..#.#**\n#..#5#..###**\n#..###..#****\n#.......#****\n#.1...1.#****\n#.##@##.#****\n#.......#****\n#########****\n\n\nmessage XX - The Last Waltz\n\n**********###****\n**#########3#****\n**#c.##...#d#****\n**##.##.#2#.#****\n**#..#......#****\n###.##.#..#.#****\n#...*.......#****\n#.#a##......#****\n#.#6##.#..1.#****\n#.#6#.......#****\n#...#e#b##b####**\n###f#f#d##d##.#**\n**#@#e.*..*.#.###\n**#########..bb.#\n**********#!#.#f#\n**********###..3#\n************#####\n\n\nmessage Congratulations! Thanks for playing, hope you enjoyed.\n\nmessage Encore\nmessage [Might be a bit too much trial-and-error for an \"official\" level]\n\n###*###**********\n#c#*#e#*########*\n#d###a#*#......#*\n#...#@###....#.#*\n#.#b#........d3#*\n###.#.###..a.####\n###.#.#*#....dbc#\n#!.*f*###....####\n###f#..##....#***\n**#.##f#######***\n**####.#*********\n***#cd.#*********\n***#####*********\n", [3, 0, 3, 3, 2, 3, 3, 3, 1, 1, 1, 0, 1, 2, 1, 2, 1, 1, 4, 3, 0, 3, 3, 2, 3, 3, 3, 1, 1, 1, 1, 0, 1, 1, 2, 3, 3, 3, 3, 3, 3, 4], "background floor1 pit:0,background floor2 pit:1,background floor1 wall wallconnectore wallconnectors wallconnectorse:2,background floor2 wall wallconnectorn wallconnectors:3,background floor1 wall wallconnectore wallconnectorn wallconnectorne:4,1,0,1,0,background floor2 wall wallconnectore wallconnectorw:5,background floor1 goalfr3:6,5,0,\n1,0,background floor2 wall wallconnectore wallconnectors wallconnectorse:7,background floor1 wall wallconnectorn wallconnectornw wallconnectorw:8,background dooromni floor2:9,background floor1 wall wallconnectors wallconnectorsw wallconnectorw:10,background floor2 wall wallconnectore wallconnectorn wallconnectorne:11,0,1,background floor1 wall wallconnectore wallconnectorw:12,background floor2:13,background floor1:14,13,\n12,1,2,background floor2 wall wallconnectorn wallconnectornw wallconnectorw:15,14,13,14,background floor2 wall wallconnectors wallconnectorsw wallconnectorw:16,4,5,14,13,background crateorange floor1:17,\nbackground crateorange floor2 inactivecrate:18,14,5,10,11,14,13,background crateorange floor1 inactivecrate:19,7,8,1,12,18,\n14,13,12,1,0,background floor2 wall wallconnectore wallconnectors wallconnectorse wallconnectorsw wallconnectorw:20,background floor1 wall wallconnectorn:21,13,background floor1 wall wallconnectors:22,background floor2 wall wallconnectore wallconnectorn wallconnectorne wallconnectornw wallconnectorw:23,0,1,12,\nbackground floor2 switchomni:24,background floor1 playerorange switchomni:25,24,12,1,0,5,background floor1 switchomni:26,background floor2 inactivecrate switchomni:27,26,5,0,1,\n12,24,background floor1 wall wallconnectore:28,24,12,1,0,16,background floor1 wall wallconnectorn wallconnectors:29,background floor2 wall wallconnectorn wallconnectornw wallconnectors wallconnectorsw wallconnectorw:30,29,15,0,\n", 16, "1627779079985.3457"] ], [ `gallery: Some lines were meant to be crossed`, - ["title Some lines were meant to be crossed\nauthor Frpzzd\nagain_interval 0.08\nrealtime_interval 0.06\nkey_repeat_interval 0.12\nrequire_player_movement off\nbackground_color darkblue\ntext_color red\n\n========\nOBJECTS\n========\n\nBackground .\nDarkblue\n\nPlayer\nDarkred\n\nTail\nDarkred\n.....\n.....\n..0..\n.....\n.....\n\nPathvert |\nBlue\n.000.\n.000.\n.000.\n.000.\n.000.\n\nPathhoriz -\nBlue\n.....\n00000\n00000\n00000\n.....\n\nWallvert\nRed\n.000.\n.000.\n.000.\n.000.\n.000.\n\nWallhoriz\nred\n.....\n00000\n00000\n00000\n.....\n\nStart\nlightblue\n\n=======\nLEGEND\n=======\n\n@ = player and start\n+ = pathvert and pathhoriz\n\nPath = pathvert or pathhoriz\nWall = wallvert or wallhoriz\n\n=========\nSOUNDS\n=========\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ntail\nstart\npathvert, wallvert\npathhoriz, wallhoriz\nPlayer\n\n======\nRULES\n======\n\n[> player|wall]->cancel\n[> player|tail]->cancel\n[player pathvert]->[player wallvert]\n[player pathhoriz]->[player wallhoriz]\nLATE VERTICAL[ wallvert|pathvert]->[wallvert|wallvert]again\nLATE HORIZONTAL[ wallhoriz|pathhoriz]->[wallhoriz|wallhoriz]again\n\nLATE[player no start]->[player tail]\n\n==============\nWINCONDITIONS\n==============\n\nno path\nall player on start\n\n=======\nLEVELS\n=======\n\nmessage Cross all of the lines, then come back to where you began.\n\n.......\n.+---+.\n.|...|.\n.|.@.|.\n.|...|.\n.+---+.\n.......\n\n...............\n.+---+---+---+.\n.|...|...|...|.\n.|.@.|...|...|.\n.|...|...|...|.\n.+---+---+---+.\n...............\n\n...............\n.+---+---+---+.\n.|...|...|...|.\n.|.@.+---+...|.\n.|...|...|...|.\n.+---+---+---+.\n...............\n\n...........\n...+---+...\n...|...|...\n...|...|...\n...|...|...\n.+-+-+-+-+.\n.|...|...|.\n.|.@.|...|.\n.|...|...|.\n.+---+---+.\n...........\n\n...........\n...+---+...\n...|...|...\n...|.@.|...\n...|...|...\n.+-+-+-+-+.\n.|...|...|.\n.|...|...|.\n.|...|...|.\n.+---+---+.\n...........\n\n...........\n.....+---+.\n.....|...|.\n.....|.@.|.\n.....|...|.\n.+---+---+.\n.|...|.....\n.|...|.....\n.|...|.....\n.+---+.....\n...........\n\n...............\n.+---+...+---+.\n.|...|...|...|.\n.|...+---+...|.\n.|...|...|...|.\n.+-+-+...+-+-+.\n...|.......|...\n...|...@...|...\n...|.......|...\n.+-+-+...+-+-+.\n.|...|...|...|.\n.|...+---+...|.\n.|...|...|...|.\n.+---+...+---+.\n...............\n\n\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick",1,"tick","tick",2,"tick","tick","tick",2,"tick",2,"tick","tick",3,"tick","tick",2,"tick","tick","tick","tick","tick","tick",1,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick",3,"tick","tick","tick",3,"tick","tick",3,"tick","tick","tick",3,"tick","tick","tick","tick","tick",2,"tick","tick",3,"tick","tick",3,"tick","tick","tick","tick",2,"tick","tick",1,"tick","tick",0,"tick","tick","tick","tick",2,"tick","tick",2,"tick",2,"tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",3,"tick",3,"tick",0,"tick","tick","tick",0,"tick","tick",0,"tick","tick","tick",0,"tick","tick",0,"tick","tick","tick","tick",0,"tick","tick",1,"tick","tick","tick",1,"tick","tick","tick",1,"tick","tick",0,"tick","tick","tick",0,"tick","tick","tick",1,"tick",0,"tick","tick","tick",0,"tick","tick","tick",0,"tick",0,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background:0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background pathvert wallhoriz:1,background pathvert:2,2,2,1,0,\n0,0,0,background tail:3,3,background tail wallhoriz:4,3,0,0,background wallhoriz:5,0,\n0,background wallhoriz wallvert:6,background wallvert:7,background tail wallvert:8,7,6,3,0,0,5,0,\n0,5,0,3,0,5,3,0,0,5,0,\n0,5,0,background start:9,0,6,8,7,7,6,0,\nbackground player tail:10,4,3,3,3,5,3,3,0,5,0,\n0,6,7,7,8,6,0,3,3,4,3,\n0,0,0,0,3,5,0,3,3,5,3,\n0,0,0,0,3,1,2,2,2,1,3,\n0,0,0,0,3,3,3,3,3,3,3,\n",5,"1627779102633.4878"] + ["title Some lines were meant to be crossed\nauthor Frpzzd\nagain_interval 0.08\nrealtime_interval 0.06\nkey_repeat_interval 0.12\nrequire_player_movement off\nbackground_color darkblue\ntext_color red\n\n========\nOBJECTS\n========\n\nBackground .\nDarkblue\n\nPlayer\nDarkred\n\nTail\nDarkred\n.....\n.....\n..0..\n.....\n.....\n\nPathvert |\nBlue\n.000.\n.000.\n.000.\n.000.\n.000.\n\nPathhoriz -\nBlue\n.....\n00000\n00000\n00000\n.....\n\nWallvert\nRed\n.000.\n.000.\n.000.\n.000.\n.000.\n\nWallhoriz\nred\n.....\n00000\n00000\n00000\n.....\n\nStart\nlightblue\n\n=======\nLEGEND\n=======\n\n@ = player and start\n+ = pathvert and pathhoriz\n\nPath = pathvert or pathhoriz\nWall = wallvert or wallhoriz\n\n=========\nSOUNDS\n=========\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ntail\nstart\npathvert, wallvert\npathhoriz, wallhoriz\nPlayer\n\n======\nRULES\n======\n\n[> player|wall]->cancel\n[> player|tail]->cancel\n[player pathvert]->[player wallvert]\n[player pathhoriz]->[player wallhoriz]\nLATE VERTICAL[ wallvert|pathvert]->[wallvert|wallvert]again\nLATE HORIZONTAL[ wallhoriz|pathhoriz]->[wallhoriz|wallhoriz]again\n\nLATE[player no start]->[player tail]\n\n==============\nWINCONDITIONS\n==============\n\nno path\nall player on start\n\n=======\nLEVELS\n=======\n\nmessage Cross all of the lines, then come back to where you began.\n\n.......\n.+---+.\n.|...|.\n.|.@.|.\n.|...|.\n.+---+.\n.......\n\n...............\n.+---+---+---+.\n.|...|...|...|.\n.|.@.|...|...|.\n.|...|...|...|.\n.+---+---+---+.\n...............\n\n...............\n.+---+---+---+.\n.|...|...|...|.\n.|.@.+---+...|.\n.|...|...|...|.\n.+---+---+---+.\n...............\n\n...........\n...+---+...\n...|...|...\n...|...|...\n...|...|...\n.+-+-+-+-+.\n.|...|...|.\n.|.@.|...|.\n.|...|...|.\n.+---+---+.\n...........\n\n...........\n...+---+...\n...|...|...\n...|.@.|...\n...|...|...\n.+-+-+-+-+.\n.|...|...|.\n.|...|...|.\n.|...|...|.\n.+---+---+.\n...........\n\n...........\n.....+---+.\n.....|...|.\n.....|.@.|.\n.....|...|.\n.+---+---+.\n.|...|.....\n.|...|.....\n.|...|.....\n.+---+.....\n...........\n\n...............\n.+---+...+---+.\n.|...|...|...|.\n.|...+---+...|.\n.|...|...|...|.\n.+-+-+...+-+-+.\n...|.......|...\n...|...@...|...\n...|.......|...\n.+-+-+...+-+-+.\n.|...|...|...|.\n.|...+---+...|.\n.|...|...|...|.\n.+---+...+---+.\n...............\n\n\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", 2, "tick", "tick", 3, "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", 3, "tick", "tick", 3, "tick", "tick", "tick", "tick", 2, "tick", "tick", 1, "tick", "tick", 0, "tick", "tick", "tick", "tick", 2, "tick", "tick", 2, "tick", 2, "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", 3, "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", 0, "tick", "tick", "tick", "tick", 0, "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", 1, "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background:0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background pathvert wallhoriz:1,background pathvert:2,2,2,1,0,\n0,0,0,background tail:3,3,background tail wallhoriz:4,3,0,0,background wallhoriz:5,0,\n0,background wallhoriz wallvert:6,background wallvert:7,background tail wallvert:8,7,6,3,0,0,5,0,\n0,5,0,3,0,5,3,0,0,5,0,\n0,5,0,background start:9,0,6,8,7,7,6,0,\nbackground player tail:10,4,3,3,3,5,3,3,0,5,0,\n0,6,7,7,8,6,0,3,3,4,3,\n0,0,0,0,3,5,0,3,3,5,3,\n0,0,0,0,3,1,2,2,2,1,3,\n0,0,0,0,3,3,3,3,3,3,3,\n", 5, "1627779102633.4878"] ], [ `gallery: Stand Off`, - ["title Stand Off\nauthor Mark Richardson\nagain_interval 0.05\nnorepeat_action\n(verbose_logging)\n\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nWall\n#555 #444\n01110\n10001\n10001\n10001\n01110\n\nWindow\n#555 #444 #cff\n01110\n12221\n12221\n12221\n01110\n\nBrokenWindow\n#555 #444 #cff #9bb #000\n01110\n12321\n13431\n12321\n01110\n\nExit\n#555 #444\n01110\n1...1\n1...1\n1...1\n0...0\n\nPlayer\n#642 #963\n.000.\n01110\n01010\n00100\n.000.\n\nGunMode\n#963 #c84\n.000.\n01110\n01010\n00100\n.000.\n\nBadGuy\n#b31 #f00\n.000.\n01110\n01010\n00100\n.000.\n\nCrate\n#642 #963\n.....\n.111.\n.100.\n.100.\n.....\n\nGunU\n#963 #fd9 #aaa\n.....\n..2..\n..2..\n..1..\n..0..\n\nGunD\n#963 #fd9 #aaa\n..0..\n..1..\n..2..\n..2..\n.....\n\nGunL\n#963 #fd9 #aaa\n.....\n.....\n.2210\n.....\n.....\n\nGunR\n#963 #fd9 #aaa\n.....\n.....\n0122.\n.....\n.....\n\nBullet\n#888 #444\n.....\n..1..\n.101.\n..1..\n.....\n\nCorpse\n#f00 #a00\n.1...\n..01.\n1000.\n..0.1\n1.1..\n\nLoS\nTransparent\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n+ = Window\nP = Player\nB = BadGuy\nC = Crate\nX = Exit\n\nGun = GunU or GunD or GunL or GunR\nObstacle = Wall or Window or BrokenWindow or BadGuy or Crate\nShroud = Wall or BadGuy or Crate or Gun or Exit or Bullet\n\n\n=======\nSOUNDS\n=======\n\nGun Create 80432507\nGun Destroy 74204901\nCrate Move 58388907\nBullet Create 38215704\nBrokenWindow Create 99929700\nCorpse Create 95969308\nEndLevel 44184703\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWall, Window, BrokenWindow, Player, BadGuy, Crate, Gun, Corpse\nExit, GunMode, LoS, Bullet\n\n\n======\nRULES\n======\n\n(Move bullet)\n[stationary Bullet|...|Player]->[> Bullet|...|Player]again\n[stationary Bullet|...|Corpse]->[> Bullet|...|Corpse]again\n[> Bullet|Player]->[|Corpse]\n[> Bullet|Corpse]->[|Corpse]\n\n(Toggle mode)\n[action Player GunMode]->[Player]\n[action Player]->[Player GunMode]\n\n(Holster gun)\n[> Player GunMode|Gun]->[Player|]\n\n(Draw gun)\n [> Player GunMode| Obstacle]->cancel\nup [> Player GunMode|no Obstacle]->[Player|GunU]\ndown [> Player GunMode|no Obstacle]->[Player|GunD]\nleft [> Player GunMode|no Obstacle]->[Player|GunL]\nright [> Player GunMode|no Obstacle]->[Player|GunR]\n\n(Validate number of guns)\nrandom [stationary Gun]->[up Gun]\nrandom [stationary Gun]->[down Gun]\nrandom [stationary Gun]->cancel\n[moving Gun]->[Gun]\n\n(Move player)\n[> Player|Crate|Obstacle]->cancel\n[> Player|Crate]->[> Player|> Crate]\n[> Player|stationary Obstacle]->cancel\n[> Player][stationary Gun]->[> Player][> Gun]\n[> Gun|Obstacle]->[|Obstacle]\n\n(Remove gun from exit)\nlate[Gun Exit]->[Exit]\n\n(Bad guys shoot)\nlate[Player|BadGuy]->[Player Bullet|BadGuy]\nlate[Player Bullet]->[Corpse]\nlate[Corpse Bullet]->[Corpse]\nlate[Player|no Shroud]->[Player|LoS]\nlate[Player|...|LoS|no Shroud]->[Player|...|LoS|LoS]\nlate[Player|...|LoS|BadGuy]->[Player|...|Bullet|BadGuy]again\nlate[LoS]->[]\nlate[Bullet Window]->[Bullet BrokenWindow]\nlate[Corpse GunMode]->[Corpse]\n\n\n==============\nWINCONDITIONS\n==============\n\nany Exit on Player\n\n\n=======\nLEVELS\n=======\n\nmessage Don't let them varmints point a gun at ya unless yer pointin' one at them too.\nmessage Press X 'n' an arrow to draw or holster one o' yer two guns.\n\n##########\n#...#.+..#\n#.P.#.#..#\n#...#.+..#\n#...#.#..#\n#...#B+..X\n#...#.#..#\n#........#\n#........#\n#...#....#\n##########\n\n#############\n#......B....#\nX...........#\n#...........#\n#...#B..#...#\n#........B..#\n#B..........#\n#...B.......#\n#...#...#..B#\n#...........#\n#.P.........#\n#.......B...#\n#############\n\n.##########X##.\n.#....#B#....#.\n.#.CC.#.#....#.\n.#....#.#....#.\n##...##.##...##\n#....#...#....#\n#B...........B#\n#....#...#....#\n##...##.##...##\n.#....#.#....#.\n.#.P..#.#....#.\n.#....#B#....#.\n.#############.\n\n#############\n#.B....#.B..#\n#......#....#\n#......#...P#\n#......#....#\n#...#..#....#\n#B..#.......#\n#...#.......#\n###C###...###\n#.....+.....#\n#.....+.....#\n#.....+B...B#\n#########X###\n\n#################\n#B..B...#B......#\n#.......#.......#\n#+......#.......#\nX..............B#\n#+......#.......#\n#.....C.#B.....B#\n#B......#.......#\n####.#######.####\n#.......#......B#\n#...C...#.......#\n#.......#.......#\n#...............#\n#.......#.....C.#\n#.P.....#.......#\n#......B#...B...#\n#################\n\n#####X#X#####\n#...#B#B#...#\n#...#+#+#...X\n#...C....C..#\n###C..C.C.###\nXB+....C..+BX\n###.C...C.###\nXB+..C....+BX\n###C..C..C###\n#...C...C...#\n#.P.#+#+#...#\n#...#B#B#...#\n#####X#X#####\n\n#####X#####\n#B.......B#\n#B........#\n#........B#\n#B........#\n#..C...C.B#\n#...P.....#\n#.........#\n#..B.B.B..#\n###########\n\n#################\n#......#.#......#\n#.....B#.#B.....#\n#B....++.++.....#\n#...##+...+##...#\n#...#.......#.#.#\n#...C...P...C...#\n#.#.#.......#.#.#\n#...##+...+##...#\n#B....++.++....B#\n#.....B#.#B..C..#\n#......#.#......#\n########X########\n\n+++++++X+++++++\n+B...+...+...B+\n+B...+...+...B+\n+B...+...+...B+\n+B...+...+...B+\n+B...+...+...B+\n+++..+...+..+++\n.+.....+.....+.\n.+.C.+...+.C.+.\n.+.C.+...+.C.+.\n.+.C.+...+.C.+.\n.+.C.+...+.C.+.\n.+.P.+...+...+.\n.++++++B++++++.\n\n.....#######.....\n...###..B..###...\n..##.........##..\n.##..B.....B..##.\n.#.............#.\n##.B.........B.##\n#.....P...C.....#\n#...............#\n#B......B......B#\n#...............#\n#.....C.....#...#\n##.B..........B##\n.#........#.X..#.\n.##..B.......B##.\n..##.......B.##..\n...###..B..###...\n.....#######.....\n\nmessage Man, am I glad to be outta that town.\n\n",[3,4,1,0,0,0,0],"background:0,0,0,0,background wall:1,1,1,1,1,0,0,0,0,1,1,\n1,1,1,0,background badguy:2,0,1,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,1,1,0,background crate:3,0,0,0,\nbackground gunl:4,0,0,0,0,0,1,1,0,3,0,0,0,background corpse:5,0,\n0,0,0,0,1,1,0,0,0,1,1,0,1,1,0,\n0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,\n1,1,2,0,0,0,0,0,0,0,0,0,2,1,1,\n1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,\n0,1,1,0,1,1,0,0,0,1,1,0,0,0,0,\n0,0,0,0,0,0,0,1,background exit:6,0,0,0,0,0,0,\n0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,\n0,0,0,1,1,1,1,1,1,0,2,0,1,1,1,\n1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,\n",4,"1627779129731.5793"] + ["title Stand Off\nauthor Mark Richardson\nagain_interval 0.05\nnorepeat_action\n(verbose_logging)\n\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nWall\n#555 #444\n01110\n10001\n10001\n10001\n01110\n\nWindow\n#555 #444 #cff\n01110\n12221\n12221\n12221\n01110\n\nBrokenWindow\n#555 #444 #cff #9bb #000\n01110\n12321\n13431\n12321\n01110\n\nExit\n#555 #444\n01110\n1...1\n1...1\n1...1\n0...0\n\nPlayer\n#642 #963\n.000.\n01110\n01010\n00100\n.000.\n\nGunMode\n#963 #c84\n.000.\n01110\n01010\n00100\n.000.\n\nBadGuy\n#b31 #f00\n.000.\n01110\n01010\n00100\n.000.\n\nCrate\n#642 #963\n.....\n.111.\n.100.\n.100.\n.....\n\nGunU\n#963 #fd9 #aaa\n.....\n..2..\n..2..\n..1..\n..0..\n\nGunD\n#963 #fd9 #aaa\n..0..\n..1..\n..2..\n..2..\n.....\n\nGunL\n#963 #fd9 #aaa\n.....\n.....\n.2210\n.....\n.....\n\nGunR\n#963 #fd9 #aaa\n.....\n.....\n0122.\n.....\n.....\n\nBullet\n#888 #444\n.....\n..1..\n.101.\n..1..\n.....\n\nCorpse\n#f00 #a00\n.1...\n..01.\n1000.\n..0.1\n1.1..\n\nLoS\nTransparent\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n+ = Window\nP = Player\nB = BadGuy\nC = Crate\nX = Exit\n\nGun = GunU or GunD or GunL or GunR\nObstacle = Wall or Window or BrokenWindow or BadGuy or Crate\nShroud = Wall or BadGuy or Crate or Gun or Exit or Bullet\n\n\n=======\nSOUNDS\n=======\n\nGun Create 80432507\nGun Destroy 74204901\nCrate Move 58388907\nBullet Create 38215704\nBrokenWindow Create 99929700\nCorpse Create 95969308\nEndLevel 44184703\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWall, Window, BrokenWindow, Player, BadGuy, Crate, Gun, Corpse\nExit, GunMode, LoS, Bullet\n\n\n======\nRULES\n======\n\n(Move bullet)\n[stationary Bullet|...|Player]->[> Bullet|...|Player]again\n[stationary Bullet|...|Corpse]->[> Bullet|...|Corpse]again\n[> Bullet|Player]->[|Corpse]\n[> Bullet|Corpse]->[|Corpse]\n\n(Toggle mode)\n[action Player GunMode]->[Player]\n[action Player]->[Player GunMode]\n\n(Holster gun)\n[> Player GunMode|Gun]->[Player|]\n\n(Draw gun)\n [> Player GunMode| Obstacle]->cancel\nup [> Player GunMode|no Obstacle]->[Player|GunU]\ndown [> Player GunMode|no Obstacle]->[Player|GunD]\nleft [> Player GunMode|no Obstacle]->[Player|GunL]\nright [> Player GunMode|no Obstacle]->[Player|GunR]\n\n(Validate number of guns)\nrandom [stationary Gun]->[up Gun]\nrandom [stationary Gun]->[down Gun]\nrandom [stationary Gun]->cancel\n[moving Gun]->[Gun]\n\n(Move player)\n[> Player|Crate|Obstacle]->cancel\n[> Player|Crate]->[> Player|> Crate]\n[> Player|stationary Obstacle]->cancel\n[> Player][stationary Gun]->[> Player][> Gun]\n[> Gun|Obstacle]->[|Obstacle]\n\n(Remove gun from exit)\nlate[Gun Exit]->[Exit]\n\n(Bad guys shoot)\nlate[Player|BadGuy]->[Player Bullet|BadGuy]\nlate[Player Bullet]->[Corpse]\nlate[Corpse Bullet]->[Corpse]\nlate[Player|no Shroud]->[Player|LoS]\nlate[Player|...|LoS|no Shroud]->[Player|...|LoS|LoS]\nlate[Player|...|LoS|BadGuy]->[Player|...|Bullet|BadGuy]again\nlate[LoS]->[]\nlate[Bullet Window]->[Bullet BrokenWindow]\nlate[Corpse GunMode]->[Corpse]\n\n\n==============\nWINCONDITIONS\n==============\n\nany Exit on Player\n\n\n=======\nLEVELS\n=======\n\nmessage Don't let them varmints point a gun at ya unless yer pointin' one at them too.\nmessage Press X 'n' an arrow to draw or holster one o' yer two guns.\n\n##########\n#...#.+..#\n#.P.#.#..#\n#...#.+..#\n#...#.#..#\n#...#B+..X\n#...#.#..#\n#........#\n#........#\n#...#....#\n##########\n\n#############\n#......B....#\nX...........#\n#...........#\n#...#B..#...#\n#........B..#\n#B..........#\n#...B.......#\n#...#...#..B#\n#...........#\n#.P.........#\n#.......B...#\n#############\n\n.##########X##.\n.#....#B#....#.\n.#.CC.#.#....#.\n.#....#.#....#.\n##...##.##...##\n#....#...#....#\n#B...........B#\n#....#...#....#\n##...##.##...##\n.#....#.#....#.\n.#.P..#.#....#.\n.#....#B#....#.\n.#############.\n\n#############\n#.B....#.B..#\n#......#....#\n#......#...P#\n#......#....#\n#...#..#....#\n#B..#.......#\n#...#.......#\n###C###...###\n#.....+.....#\n#.....+.....#\n#.....+B...B#\n#########X###\n\n#################\n#B..B...#B......#\n#.......#.......#\n#+......#.......#\nX..............B#\n#+......#.......#\n#.....C.#B.....B#\n#B......#.......#\n####.#######.####\n#.......#......B#\n#...C...#.......#\n#.......#.......#\n#...............#\n#.......#.....C.#\n#.P.....#.......#\n#......B#...B...#\n#################\n\n#####X#X#####\n#...#B#B#...#\n#...#+#+#...X\n#...C....C..#\n###C..C.C.###\nXB+....C..+BX\n###.C...C.###\nXB+..C....+BX\n###C..C..C###\n#...C...C...#\n#.P.#+#+#...#\n#...#B#B#...#\n#####X#X#####\n\n#####X#####\n#B.......B#\n#B........#\n#........B#\n#B........#\n#..C...C.B#\n#...P.....#\n#.........#\n#..B.B.B..#\n###########\n\n#################\n#......#.#......#\n#.....B#.#B.....#\n#B....++.++.....#\n#...##+...+##...#\n#...#.......#.#.#\n#...C...P...C...#\n#.#.#.......#.#.#\n#...##+...+##...#\n#B....++.++....B#\n#.....B#.#B..C..#\n#......#.#......#\n########X########\n\n+++++++X+++++++\n+B...+...+...B+\n+B...+...+...B+\n+B...+...+...B+\n+B...+...+...B+\n+B...+...+...B+\n+++..+...+..+++\n.+.....+.....+.\n.+.C.+...+.C.+.\n.+.C.+...+.C.+.\n.+.C.+...+.C.+.\n.+.C.+...+.C.+.\n.+.P.+...+...+.\n.++++++B++++++.\n\n.....#######.....\n...###..B..###...\n..##.........##..\n.##..B.....B..##.\n.#.............#.\n##.B.........B.##\n#.....P...C.....#\n#...............#\n#B......B......B#\n#...............#\n#.....C.....#...#\n##.B..........B##\n.#........#.X..#.\n.##..B.......B##.\n..##.......B.##..\n...###..B..###...\n.....#######.....\n\nmessage Man, am I glad to be outta that town.\n\n", [3, 4, 1, 0, 0, 0, 0], "background:0,0,0,0,background wall:1,1,1,1,1,0,0,0,0,1,1,\n1,1,1,0,background badguy:2,0,1,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,1,1,0,background crate:3,0,0,0,\nbackground gunl:4,0,0,0,0,0,1,1,0,3,0,0,0,background corpse:5,0,\n0,0,0,0,1,1,0,0,0,1,1,0,1,1,0,\n0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,\n1,1,2,0,0,0,0,0,0,0,0,0,2,1,1,\n1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,\n0,1,1,0,1,1,0,0,0,1,1,0,0,0,0,\n0,0,0,0,0,0,0,1,background exit:6,0,0,0,0,0,0,\n0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,\n0,0,0,1,1,1,1,1,1,0,2,0,1,1,1,\n1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,\n", 4, "1627779129731.5793"] ], [ `gallery: 🍡 -ooo- 🍡`, - ["title 🍡 -ooo- 🍡\nauthor Baku\nhomepage http://baku89.com\n\n========\nOBJECTS\n========\n\nDark +\nBlack\n00000\n00000\n00000\n00000\n00000\n\nBackgroundSolid .\n#EEEEEE\n00000\n00000\n00000\n00000\n00000\n\nInstructionT T\n#EEEEEE #dce2e5\n00100\n01110\n10101\n00100\n00100\n\nInstructionK K\n#EEEEEE #dce2e5\n00100\n01000\n11110\n01000\n00100\n\nInstructionD D\n#EEEEEE #dce2e5\n00100\n00010\n01111\n00010\n00100\n\nInstructionI I\n#EEEEEE #dce2e5\n00100\n00100\n00100\n00100\n00100\n\n\nInstruction1 1\n#EEEEEE #dce2e5\n01100\n00100\n00100\n00100\n01110\n\n\nInstruction2 2\n#EEEEEE #dce2e5\n11110\n00001\n01110\n10000\n11111\n\n\nInstruction3 3\n#EEEEEE #dce2e5\n01110\n10001\n00111\n10001\n01110\n\nWall #\n#d7b7a2\n00000\n00000\n00000\n00000\n00000\n\nPlayerV $\n#d5bd7d\n..0..\n..0..\n..0..\n..0..\n..0..\n\nStickV |\n#e3cc8e\n..0..\n..0..\n..0..\n..0..\n..0..\n\nPlayerH ~\n#d5bd7d\n.....\n.....\n00000\n.....\n.....\n\nStickH -\n#e3cc8e\n.....\n.....\n00000\n.....\n.....\n\nFloatA A\n#ffb1c5\n.000.\n00000\n00000\n00000\n.000.\n\nFloatB B\nWHITE\n.000.\n00000\n00000\n00000\n.000.\n\nFloatC C\n#d0dc6e\n.000.\n00000\n00000\n00000\n.000.\n\nFixedA X\n#ffb1c5\n.000.\n00000\n00000\n00000\n.000.\n\nFixedB Y\nWHITE\n.000.\n00000\n00000\n00000\n.000.\n\nFixedC Z\n#d0dc6e\n.000.\n00000\n00000\n00000\n.000.\n\n\n=======\nLEGEND\n=======\n\nBackground = BackgroundSolid or InstructionT or InstructionI or InstructionK or InstructionD or Instruction1 or Instruction2 or Instruction3\n\nStick = StickV or StickH\nPlayer = PlayerV or PlayerH\n\nFloat \t= FloatA or FloatB or FloatC\nFloatAB = FloatA or FloatB\nFloatAC = FloatA or FloatC\nFloatBC = FloatB or FloatC\n\nFixed = FixedA or FixedB or FixedC\n\nDango = Float or Fixed\n\nBody = Player or Fixed\n\nAxisV = PlayerV or StickV\nAxisH = PlayerH or StickH\nAxis = Player or Stick\n\n\n=======\nSOUNDS\n=======\n\nSFX0 17033707\n\nSFX1 63191907\n\nSFX2 83893307\n\nEndLevel 28146300\nEndGame 78733301\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nStick\nPlayer, Wall, Dango, Fixed, Dark\n\n======\nRULES\n======\n\n(-------------MOVING PROPAGATION-------------)\n\n(Not to break apart body)\n[ Moving Player ] [ Stick ] -> [ Moving Player ] [ Moving Stick ]\n[ Moving Player ] [ Fixed ] -> [ Moving Player ] [ Moving Fixed ]\n\n\n(Translate Dango by stick)\n(|)\n[ Horizontal StickV Dango ] -> [ Horizontal StickV Horizontal Dango ]\n(-)\n[ Vertical StickH Dango ] -> [ Vertical StickH Vertical Dango ]\n\n(Push by player)\n(|)\n(\nVertical [ > PlayerV | Dango StickV ] -> [ > PlayerV | > Dango StickV ]\nVertical [ > Dango StickV | Dango StickV ] -> [ > Dango StickV | > Dango StickV ]\n(-)\nHorizontal [ > PlayerH | Dango StickH ] -> [ > PlayerH | > Dango StickH ]\nHorizontal [ > Dango StickH | Dango StickH ] -> [ > Dango StickH | > Dango StickH ]\n)\n\n(-------------CAN'T MOVE-------------)\n\n(Wall Collision)\n[ > Axis | Wall ] -> Cancel\n\n(Cannot push Float in incorrect ways)\n(|)\nHorizontal [ > AxisV | Stationary Float ] -> Cancel \t(push by side)\nVertical [ > PlayerV | Stationary Float ] -> Cancel \t(push by root)\n(-)\nVertical [ > AxisH | Stationary Float ] -> Cancel \t(push by side)\nHorizontal [ > PlayerH | Stationary Float ] -> Cancel \t(push by root)\n\n(Too heavy)\n[ > Dango | > Dango | > Dango | Dango ] -> cancel\n\n(-------------CONVERT-------------)\n\n(Convert Dango to Fixed)\n(|)\nlate Vertical [PlayerV | FloatC StickV ] -> [ PlayerV | FixedC StickV ]\nlate Vertical [FixedC | FloatB StickV ] -> [ FixedC | FixedB StickV ]\nlate Vertical [FixedB | FloatA StickV ] -> [ FixedB | FixedA StickV ]\n(-)\nlate Horizontal [PlayerH | FloatC StickH ] -> [ PlayerH | FixedC StickH ]\nlate Horizontal [FixedC | FloatB StickH ] -> [ FixedC | FixedB StickH ]\nlate Horizontal [FixedB | FloatA StickH ] -> [ FixedB | FixedA StickH ]\n\n\n(-------------SOUND-------------)\n\n(Incorrect order SFX)\n(|)\nVertical [ > PlayerV | StickV | Stationary FloatAB ] -> SFX1\nVertical [ > FixedC | StickV | Stationary FloatAC ] -> SFX1\nVertical [ > FixedB | StickV | Stationary FloatBC ] -> SFX1\n(-)\nHorizontal [ > PlayerH | StickH | Stationary FloatAB ] -> SFX1\nHorizontal [ > FixedC | StickH | Stationary FloatAC ] -> SFX1\nHorizontal [ > FixedB | StickH | Stationary FloatBC ] -> SFX1\n\n(Stik SFX)\n(|)\nVertical [ > Player | StickV | StickV | StickV | Stationary Float ] -> SFX2\n(-)\nHorizontal [ > Player | StickH | StickH | StickH | Stationary Float ] -> SFX2\n\n(Glue SFX)\n(|)\nVertical [ > PlayerV | StickV | FloatC ] -> SFX0\nVertical [ > FixedC | StickV | FloatB ] -> SFX0\nVertical [ > FixedB | StickV | FloatA ] -> SFX0\n(-)\nHorizontal [ > PlayerH | StickH | FloatC ] -> SFX0\nHorizontal [ > FixedC | StickH | FloatB ] -> SFX0\nHorizontal [ > FixedB | StickH | FloatA ] -> SFX0\n\n\n==============\nWINCONDITIONS\n==============\n\nNo Float\n\n=======\nLEVELS\n=======\n\n\n###############\n#.............#\n#......a.1....#\n#.............#\n#....T........#\n#....I.b.2....#\n#....I........#\n#.............#\n#......c.3....#\n#.............#\n#......|K1....#\n#....2D|......#\n#......|K3....#\n#......$......#\n#.............#\n###############\n\n\n###############\n#.............#\n#.............#\n#.........cK3.#\n#.............#\n#......bK2....#\n#.............#\n#...aK1.......#\n#.............#\n#.............#\n#......|K1....#\n#....2D|......#\n#......|K3....#\n#......$......#\n#.............#\n###############\n\n\n+++++++++++++++\n+++++#####+++++\n+++++#...#+++++\n+++++#.#.#+++++\n+++++#.c.#+++++\n+++++#...#+++++\n+++++#.b.#+++++\n+++++#...#+++++\n+++++#.a.#+++++\n+++++#.|.#+++++\n+++++#.|.#+++++\n+++++##|.#+++++\n++++++#$.#+++++\n++++++####+++++\n+++++++++++++++\n+++++++++++++++\n\n\n+++++++++++++++\n+++#########+++\n+++##.#.#.##+++\n+++#b.....b#+++\n+++#.......#+++\n+++#..|.|..#+++\n+++#..|c|..#+++\n+++#..|c|..#+++\n+++#..$.$..#+++\n+++#.a...a.#+++\n+++#.......#+++\n+++#.......#+++\n+++#.......#+++\n+++#.......#+++\n+++#########+++\n+++++++++++++++\n\n\n\n++###########++\n++#.........#++\n++#.........#++\n++#...bac...#++\n++#...acb...#++\n###...cba...###\n#.............#\n#.............#\n#.............#\n#.....|||.....#\n###...|||...###\n++#...|||...#++\n++#...$$$...#++\n++#.........#++\n++#.........#++\n++###########++\n\n\n+++++#####+++++\n+++###..a###+++\n++##.......##++\n+##...c.....##+\n+#......|....#+\n##......|b...##\n#.......|.....#\n#.......$.....#\n#.....$.......#\n#.....|.......#\n##...b|......##\n+#....|......#+\n+##.....c...##+\n++##.......##++\n+++###a..###+++\n+++++#####+++++\n\n\n+++++++++++++++\n+#############+\n+#...........#+\n+#.....|.....#+\n+#..#..|..b.##+\n+#.....|.....#+\n+#.....$....b#+\n+#.---~......#+\n+#...........#+\n+#...........#+\n+#..c.c......#+\n+#...........#+\n+#..a.a......#+\n+#############+\n+++++++++++++++\n\n\n##############+\n#............##\n#........a....#\n#.............#\n#......|c.....#\n#...a..|.b....#\n#..b...|......#\n#..c...$......#\n#..---~.~---..#\n#......$...c..#\n#......|..b.a.#\n#......|......#\n#....c.|......#\n#.....b.......#\n##...a........#\n+##############\n\n\n\n\n",[2,2,2,1,3,0,0,0,0,1,1,0,0,3,2,2,2,2,3,1,1,2,2,2,0,0,0,0,0,1,2,2,2,2,0,0,0,0,2,2,2,2,2,3,2,2,3,3,0,0,0,0,3,3,3,0,1,1],"backgroundsolid dark:0,0,0,0,0,backgroundsolid wall:1,1,1,1,1,1,0,0,0,0,\n0,0,0,0,1,1,1,backgroundsolid:2,2,2,2,1,1,1,0,\n0,0,0,0,1,1,2,2,2,2,2,2,2,2,1,\n1,0,0,0,1,1,2,2,2,2,2,2,2,2,2,\n2,1,1,0,0,1,2,2,2,2,2,2,2,2,2,\n2,2,2,1,0,1,1,2,2,2,backgroundsolid playerv:3,backgroundsolid stickv:4,4,4,2,\n2,2,2,2,1,1,1,2,2,backgroundsolid floatc:5,2,2,2,2,2,\n2,backgroundsolid floatb:6,2,2,2,backgroundsolid floata:7,1,1,backgroundsolid floata stickv:8,4,4,3,2,2,2,\n2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,\n2,2,2,2,2,5,2,2,1,1,1,2,2,2,6,\n2,2,2,2,2,2,2,2,1,1,0,1,2,2,2,\n2,2,2,2,2,2,2,2,2,1,0,0,1,1,2,\n2,2,2,2,2,2,2,2,2,1,1,0,0,0,1,\n1,2,2,2,2,2,2,2,2,1,1,0,0,0,0,\n0,1,1,1,2,2,2,2,1,1,1,0,0,0,0,\n0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,\n",5,"1627779151924.9846"] + ["title 🍡 -ooo- 🍡\nauthor Baku\nhomepage http://baku89.com\n\n========\nOBJECTS\n========\n\nDark +\nBlack\n00000\n00000\n00000\n00000\n00000\n\nBackgroundSolid .\n#EEEEEE\n00000\n00000\n00000\n00000\n00000\n\nInstructionT T\n#EEEEEE #dce2e5\n00100\n01110\n10101\n00100\n00100\n\nInstructionK K\n#EEEEEE #dce2e5\n00100\n01000\n11110\n01000\n00100\n\nInstructionD D\n#EEEEEE #dce2e5\n00100\n00010\n01111\n00010\n00100\n\nInstructionI I\n#EEEEEE #dce2e5\n00100\n00100\n00100\n00100\n00100\n\n\nInstruction1 1\n#EEEEEE #dce2e5\n01100\n00100\n00100\n00100\n01110\n\n\nInstruction2 2\n#EEEEEE #dce2e5\n11110\n00001\n01110\n10000\n11111\n\n\nInstruction3 3\n#EEEEEE #dce2e5\n01110\n10001\n00111\n10001\n01110\n\nWall #\n#d7b7a2\n00000\n00000\n00000\n00000\n00000\n\nPlayerV $\n#d5bd7d\n..0..\n..0..\n..0..\n..0..\n..0..\n\nStickV |\n#e3cc8e\n..0..\n..0..\n..0..\n..0..\n..0..\n\nPlayerH ~\n#d5bd7d\n.....\n.....\n00000\n.....\n.....\n\nStickH -\n#e3cc8e\n.....\n.....\n00000\n.....\n.....\n\nFloatA A\n#ffb1c5\n.000.\n00000\n00000\n00000\n.000.\n\nFloatB B\nWHITE\n.000.\n00000\n00000\n00000\n.000.\n\nFloatC C\n#d0dc6e\n.000.\n00000\n00000\n00000\n.000.\n\nFixedA X\n#ffb1c5\n.000.\n00000\n00000\n00000\n.000.\n\nFixedB Y\nWHITE\n.000.\n00000\n00000\n00000\n.000.\n\nFixedC Z\n#d0dc6e\n.000.\n00000\n00000\n00000\n.000.\n\n\n=======\nLEGEND\n=======\n\nBackground = BackgroundSolid or InstructionT or InstructionI or InstructionK or InstructionD or Instruction1 or Instruction2 or Instruction3\n\nStick = StickV or StickH\nPlayer = PlayerV or PlayerH\n\nFloat \t= FloatA or FloatB or FloatC\nFloatAB = FloatA or FloatB\nFloatAC = FloatA or FloatC\nFloatBC = FloatB or FloatC\n\nFixed = FixedA or FixedB or FixedC\n\nDango = Float or Fixed\n\nBody = Player or Fixed\n\nAxisV = PlayerV or StickV\nAxisH = PlayerH or StickH\nAxis = Player or Stick\n\n\n=======\nSOUNDS\n=======\n\nSFX0 17033707\n\nSFX1 63191907\n\nSFX2 83893307\n\nEndLevel 28146300\nEndGame 78733301\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nStick\nPlayer, Wall, Dango, Fixed, Dark\n\n======\nRULES\n======\n\n(-------------MOVING PROPAGATION-------------)\n\n(Not to break apart body)\n[ Moving Player ] [ Stick ] -> [ Moving Player ] [ Moving Stick ]\n[ Moving Player ] [ Fixed ] -> [ Moving Player ] [ Moving Fixed ]\n\n\n(Translate Dango by stick)\n(|)\n[ Horizontal StickV Dango ] -> [ Horizontal StickV Horizontal Dango ]\n(-)\n[ Vertical StickH Dango ] -> [ Vertical StickH Vertical Dango ]\n\n(Push by player)\n(|)\n(\nVertical [ > PlayerV | Dango StickV ] -> [ > PlayerV | > Dango StickV ]\nVertical [ > Dango StickV | Dango StickV ] -> [ > Dango StickV | > Dango StickV ]\n(-)\nHorizontal [ > PlayerH | Dango StickH ] -> [ > PlayerH | > Dango StickH ]\nHorizontal [ > Dango StickH | Dango StickH ] -> [ > Dango StickH | > Dango StickH ]\n)\n\n(-------------CAN'T MOVE-------------)\n\n(Wall Collision)\n[ > Axis | Wall ] -> Cancel\n\n(Cannot push Float in incorrect ways)\n(|)\nHorizontal [ > AxisV | Stationary Float ] -> Cancel \t(push by side)\nVertical [ > PlayerV | Stationary Float ] -> Cancel \t(push by root)\n(-)\nVertical [ > AxisH | Stationary Float ] -> Cancel \t(push by side)\nHorizontal [ > PlayerH | Stationary Float ] -> Cancel \t(push by root)\n\n(Too heavy)\n[ > Dango | > Dango | > Dango | Dango ] -> cancel\n\n(-------------CONVERT-------------)\n\n(Convert Dango to Fixed)\n(|)\nlate Vertical [PlayerV | FloatC StickV ] -> [ PlayerV | FixedC StickV ]\nlate Vertical [FixedC | FloatB StickV ] -> [ FixedC | FixedB StickV ]\nlate Vertical [FixedB | FloatA StickV ] -> [ FixedB | FixedA StickV ]\n(-)\nlate Horizontal [PlayerH | FloatC StickH ] -> [ PlayerH | FixedC StickH ]\nlate Horizontal [FixedC | FloatB StickH ] -> [ FixedC | FixedB StickH ]\nlate Horizontal [FixedB | FloatA StickH ] -> [ FixedB | FixedA StickH ]\n\n\n(-------------SOUND-------------)\n\n(Incorrect order SFX)\n(|)\nVertical [ > PlayerV | StickV | Stationary FloatAB ] -> SFX1\nVertical [ > FixedC | StickV | Stationary FloatAC ] -> SFX1\nVertical [ > FixedB | StickV | Stationary FloatBC ] -> SFX1\n(-)\nHorizontal [ > PlayerH | StickH | Stationary FloatAB ] -> SFX1\nHorizontal [ > FixedC | StickH | Stationary FloatAC ] -> SFX1\nHorizontal [ > FixedB | StickH | Stationary FloatBC ] -> SFX1\n\n(Stik SFX)\n(|)\nVertical [ > Player | StickV | StickV | StickV | Stationary Float ] -> SFX2\n(-)\nHorizontal [ > Player | StickH | StickH | StickH | Stationary Float ] -> SFX2\n\n(Glue SFX)\n(|)\nVertical [ > PlayerV | StickV | FloatC ] -> SFX0\nVertical [ > FixedC | StickV | FloatB ] -> SFX0\nVertical [ > FixedB | StickV | FloatA ] -> SFX0\n(-)\nHorizontal [ > PlayerH | StickH | FloatC ] -> SFX0\nHorizontal [ > FixedC | StickH | FloatB ] -> SFX0\nHorizontal [ > FixedB | StickH | FloatA ] -> SFX0\n\n\n==============\nWINCONDITIONS\n==============\n\nNo Float\n\n=======\nLEVELS\n=======\n\n\n###############\n#.............#\n#......a.1....#\n#.............#\n#....T........#\n#....I.b.2....#\n#....I........#\n#.............#\n#......c.3....#\n#.............#\n#......|K1....#\n#....2D|......#\n#......|K3....#\n#......$......#\n#.............#\n###############\n\n\n###############\n#.............#\n#.............#\n#.........cK3.#\n#.............#\n#......bK2....#\n#.............#\n#...aK1.......#\n#.............#\n#.............#\n#......|K1....#\n#....2D|......#\n#......|K3....#\n#......$......#\n#.............#\n###############\n\n\n+++++++++++++++\n+++++#####+++++\n+++++#...#+++++\n+++++#.#.#+++++\n+++++#.c.#+++++\n+++++#...#+++++\n+++++#.b.#+++++\n+++++#...#+++++\n+++++#.a.#+++++\n+++++#.|.#+++++\n+++++#.|.#+++++\n+++++##|.#+++++\n++++++#$.#+++++\n++++++####+++++\n+++++++++++++++\n+++++++++++++++\n\n\n+++++++++++++++\n+++#########+++\n+++##.#.#.##+++\n+++#b.....b#+++\n+++#.......#+++\n+++#..|.|..#+++\n+++#..|c|..#+++\n+++#..|c|..#+++\n+++#..$.$..#+++\n+++#.a...a.#+++\n+++#.......#+++\n+++#.......#+++\n+++#.......#+++\n+++#.......#+++\n+++#########+++\n+++++++++++++++\n\n\n\n++###########++\n++#.........#++\n++#.........#++\n++#...bac...#++\n++#...acb...#++\n###...cba...###\n#.............#\n#.............#\n#.............#\n#.....|||.....#\n###...|||...###\n++#...|||...#++\n++#...$$$...#++\n++#.........#++\n++#.........#++\n++###########++\n\n\n+++++#####+++++\n+++###..a###+++\n++##.......##++\n+##...c.....##+\n+#......|....#+\n##......|b...##\n#.......|.....#\n#.......$.....#\n#.....$.......#\n#.....|.......#\n##...b|......##\n+#....|......#+\n+##.....c...##+\n++##.......##++\n+++###a..###+++\n+++++#####+++++\n\n\n+++++++++++++++\n+#############+\n+#...........#+\n+#.....|.....#+\n+#..#..|..b.##+\n+#.....|.....#+\n+#.....$....b#+\n+#.---~......#+\n+#...........#+\n+#...........#+\n+#..c.c......#+\n+#...........#+\n+#..a.a......#+\n+#############+\n+++++++++++++++\n\n\n##############+\n#............##\n#........a....#\n#.............#\n#......|c.....#\n#...a..|.b....#\n#..b...|......#\n#..c...$......#\n#..---~.~---..#\n#......$...c..#\n#......|..b.a.#\n#......|......#\n#....c.|......#\n#.....b.......#\n##...a........#\n+##############\n\n\n\n\n", [2, 2, 2, 1, 3, 0, 0, 0, 0, 1, 1, 0, 0, 3, 2, 2, 2, 2, 3, 1, 1, 2, 2, 2, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 3, 2, 2, 3, 3, 0, 0, 0, 0, 3, 3, 3, 0, 1, 1], "backgroundsolid dark:0,0,0,0,0,backgroundsolid wall:1,1,1,1,1,1,0,0,0,0,\n0,0,0,0,1,1,1,backgroundsolid:2,2,2,2,1,1,1,0,\n0,0,0,0,1,1,2,2,2,2,2,2,2,2,1,\n1,0,0,0,1,1,2,2,2,2,2,2,2,2,2,\n2,1,1,0,0,1,2,2,2,2,2,2,2,2,2,\n2,2,2,1,0,1,1,2,2,2,backgroundsolid playerv:3,backgroundsolid stickv:4,4,4,2,\n2,2,2,2,1,1,1,2,2,backgroundsolid floatc:5,2,2,2,2,2,\n2,backgroundsolid floatb:6,2,2,2,backgroundsolid floata:7,1,1,backgroundsolid floata stickv:8,4,4,3,2,2,2,\n2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,\n2,2,2,2,2,5,2,2,1,1,1,2,2,2,6,\n2,2,2,2,2,2,2,2,1,1,0,1,2,2,2,\n2,2,2,2,2,2,2,2,2,1,0,0,1,1,2,\n2,2,2,2,2,2,2,2,2,1,1,0,0,0,1,\n1,2,2,2,2,2,2,2,2,1,1,0,0,0,0,\n0,1,1,1,2,2,2,2,1,1,1,0,0,0,0,\n0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,\n", 5, "1627779151924.9846"] ], [ `gallery: Rose`, - ["title Rose\nhomepage www.puzzlescript.net\nnorepeat_action\nverbose_logging\nflickscreen 11x11\ntext_color #be2633\n\nagain_interval 1\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\n\nBackground\ngrey\n\nPhysicalWall \n#1a2d38\n00000\n00000\n00000\n00000\n00000\n\nWall\n#d4ca8e \n\nmanleft\n#ff7245 #2f2f3c #3d2c29 #ff8058\n.100.\n.300.\n0222.\n.300.\n.300.\n\nmanup\n#ff7245 #2f2f3c #3d2c29 #ff8058\n.300.\n.300.\n02220\n.300.\n.300.\n\nmanright\n#ff7245 #2f2f3c #3d2c29 #ff8058\n.301.\n.300.\n.2220\n.300.\n.300.\n\nmandown\n#ff7245 #2f2f3c #3d2c29 #ff8058\n.101.\n.300.\n02220\n.300.\n.300.\n\nrosetilestart\ntransparent\n\nrosetile1\n#88b32f #be2633 \n10000\n01000\n00010\n00101\n00010\n\nrosetile2\n#88b32f #be2633 \n00000\n01000\n10100\n01000\n00000\n\nrosetile3\n#88b32f #be2633 \n00000\n00100\n01010\n00100\n00000\n\ndirttile \n#a46422 #83501b #be2633\n10100\n01010\n00101\n10010\n02021\n\nrose1\n#fce6ad #dfe989\n00000\n00000\n00000\n00001\n00001\n\nrose2\n#fce6ad #dfe989 #a3ce27\n00000\n00000\n00000\n00010\n22222\n\nrose3\n#fce6ad #dfe989 #a3ce27\n00000\n00000\n00000\n00000\n00012\n\nrose4\n#fce6ad #dfe989 #a3ce27 #be2633 #9f2436\n00000\n03334\n33343\n33433\n24333\n\nrose5\n#fce6ad #dfe989 #a3ce27 #be2633 #9f2436\n00000\n40000\n30300\n33300\n34300\n\nrose6\n#fce6ad #dfe989 #a3ce27 #88b32f\n00002\n00022\n02333\n03330\n00000\n\nrose7\n#fce6ad #dfe989 #a3ce27 #88b32f\n23332\n30003\n00000\n00000\n00000\n\nrose8\n#fce6ad #dfe989 #a3ce27 #88b32f\n20012\n22223\n13330\n10000\n00000\n\nrose9\n#fce6ad #dfe989 #a3ce27 #88b32f #be2633 #9f2436\n33445\n00554\n00000\n00000\n00000\n\nrose10\n#fce6ad #dfe989 #a3ce27 #88b32f #be2633 #9f2436\n54004\n40040\n00000\n00000\n00000\n\n(scenery - tower exterior)\npathstart\ngrey\n\npathhoriz\n#d1ccb2 #dad6c3\n11111\n00000\n00000\n00000\n11111\n\npathvert\n#d1ccb2 #dad6c3\n10001\n10001\n10001\n10001\n10001\n\npathend\n#d1ccb2 #dad6c3\n..1..\n.111.\n.101.\n10001\n10001\n\npathtri\n#d1ccb2 #dad6c3\n10001\n00000\n00000\n00000\n11111\n\npathrightbend\n#d1ccb2 #dad6c3\n..111\n.1000\n10000\n10000\n10001\n\npathupbend\n#d1ccb2 #dad6c3\n10001\n00001\n00001\n0001.\n111..\n\ngroundstart\n#c5c4be #eaeae8\n00000\n00000\n00000\n00000\n00000\n\nground1\n#c5c4be #eaeae8\n00000\n00000\n00000\n01000\n00000\n\nground2\n#c5c4be #eaeae8\n00000\n00000\n00000\n00000\n00000\n\nground3\n#c5c4be #eaeae8\n00100\n00000\n00000\n00000\n00000\n\npuddlecenter\n#b8d9e9 #d4e8f2 #c5c4be\n10101\n01010\n00000\n10101\n01010\n\npuddleleft\n#b8d9e9 #d4e8f2 #c5c4be\n.1101\n.1010\n.1000\n.1101\n.1010\n\npuddleright\n#b8d9e9 #d4e8f2 #c5c4be\n1011.\n0101.\n001..\n101..\n0101.\n\npuddletop\n#b8d9e9 #d4e8f2 #c5c4be\n.....\n11111\n00000\n10101\n01010\n\npuddlebottom\n#b8d9e9 #d4e8f2 #c5c4be\n10101\n01010\n00000\n11111\n.....\n\npuddlecornertr\n#b8d9e9 #d4e8f2 #c5c4be\n.....\n111..\n0011.\n1011.\n0101.\n\npuddlecornertl\n#b8d9e9 #d4e8f2 #c5c4be\n.....\n...11\n..100\n..101\n.1010\n\npuddlecornerbl\n#b8d9e9 #d4e8f2 #c5c4be\n..101\n...10\n...10\n....1\n.....\n\npuddlecornerbr\n#b8d9e9 #d4e8f2 #c5c4be\n1011.\n0101.\n0011.\n111..\n.....\n\nhousewall\n#fbdf98\n\nhousewallcrack\n#fbdf98 #e2d4b1\n01000\n00100\n01000\n00000\n00000\n\nhousewallside\n#fbdf98 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\nhouseroof\n#b4865a #2d303f\n00100\n01000\n10000\n00001\n00010\n\nhouseroofside\n#b4865a #bc926b #2d303f\n....1\n...10\n..110\n.1002\n11020\n\nhouseentrance\n#41555f black\n00000\n01110\n01110\n01110\n01110\n\nhousewindow\n#b7ab69 #41555f #5c7787 #4f6774\n11012\n11023\n00000\n12011\n23011\n\ntowerwall1\n#1a2d38 #86858d\n01000\n01000\n01000\n11111\n00010\n\ntowerwall2\n#1a2d38 #86858d\n00010\n00010\n00010\n11111\n01000\n\ntowerbase \n#1a2d38 #86858d \n01010\n01010\n01010\n11111\n00100\n\ntowerwall1left\n#1a2d38 #86858d #365e6b #9e9da4\n23000\n23000\n23000\n33111\n22010\n\ntowerwall2left\n#1a2d38 #86858d #365e6b #9e9da4\n22010\n22010\n22010\n33111\n23000\n\ntowerbaseleft\n#1a2d38 #86858d #365e6b #9e9da4\n23010\n23010\n23010\n33111\n22100\n\ntowerwall1right\n#1a2d38 #86858d #15242d #6b6a71\n01022\n01022\n01022\n11133\n00032\n\ntowerwall2right\n#1a2d38 #86858d #15242d #6b6a71\n00032\n00032\n00032\n11133\n01022\n\ntowerbaseright\n#1a2d38 #86858d #15242d #6b6a71\n01032\n01032\n01032\n11133\n00122\n\ntowerentrance\nblack\n\ntowerentrancefront\nblack\n\n(scenery - house interior)\n\nhousefloornorm\n#dfaa18 #c99916\n10001\n10001\n10001\n10001\n10001\n\nhousefloor1\n#dfaa18 #c99916\n10001\n10001\n11111\n10001\n10001\n\nhousefloor2\n#dfaa18 #c99916\n10001\n10001\n10001\n10001\n11111\n\nhousewallinttop\n#fce6ad\n\nhousewallintright\n#f9d371 #fce6ad\n00001\n00001\n00001\n00001\n00001\n\nhousewallintleft\n#f9d371 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\nhousewallintdown\n#f9d371\n\nhousefloorstart\ntransparent\n\nhiddendoor\n#dfaa18 #c99916\n10001\n10001\n10001\n10001\n10001\n\nhiddendoortemp\ntransparent\n\n(scenery - tower interior)\n\ntowertile\n#587ba2 #4f6e92 #7895b6 #354961 #425a78\n21111\n20003\n20003\n20003\n44443\n\ntowertilecrack\n#587ba2 #4f6e92 #7895b6 #354961 #425a78\n21111\n20003\n20003\n20003\n44443\n\ntowertilecrack1\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #a6b0bc\n21111\n20003\n20553\n25003\n44443\n\ntowertilecrack2\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #a6b0bc\n21111\n50005\n50003\n25003\n45443\n\ntowertilecrack3\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #a6b0bc\n25111\n55003\n20005\n20053\n44453\n\ntowerwallbottomleft\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #1a2d38\n51111\n55003\n55503\n55553\n55555\n\ntowerwallbottomright\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #1a2d38 #354961\n21116\n20065\n20655\n26555\n65555\n\ntowerwallinttop\n#354961 #0f1b2d\n11111\n11111\n00000\n00000\n00000\n\ntowerwallinttoppermanent\n#354961 #0f1b2d\n11111\n11111\n00000\n00000\n00000\n\ntowerwallintbottom\n#1a2d38 #354961\n11111\n00000\n00000\n00000\n00000\n\ntowerwallintleft\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #354961 #0f1b2d\n65551\n55503\n55003\n50003\n44443\n\ntowerwallintleftmid\n#354961 #0f1b2d\n00011\n00111\n01110\n11100\n11000\n\ntowerwallintlefttop\n#354961 #0f1b2d\n....0\n...00\n..000\n.0000\n00001\n\ntowerwallintright\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #354961 #0f1b2d\n25556\n20555\n20055\n20005\n44443\n\ntowerwallintrightmid\n#354961 #0f1b2d\n11000\n11100\n01110\n00111\n00011\n\ntowerwallintrighttop\n#354961 #0f1b2d\n0....\n00...\n000..\n0000.\n10000\n\ntowerpillar1\n#1d304b #b7c5c4 #8da3a2 #7c9594 #28814b #be2633\n00230\n01530\n01240\n01230\n00000\n\ntowerpillartop1\n#7c9594 \n.....\n.....\n.....\n.....\n...0.\n\ntowerpillar2\n#1d304b #b7c5c4 #8da3a2 #7c9594 #28814b\n01230\n01240\n01430\n04230\n00000\n\ntowerpillartop2\n#7baab2 #b7c5c4 #8da3a2 #7c9594 #28814b\n.....\n.1...\n.12..\n.143.\n.423.\n\ntowerpillar2special\n#1d304b #b7c5c4 #2ff5d6 #7c9594 #28814b\n01230\n01230\n01230\n01230\n00000\n\ntowerpillartop2special\n#7baab2 #b7c5c4 #2ff5d6 #7c9594 #28814b\n.....\n.1...\n.12..\n.123.\n.123.\n\ntowerpillar3\n#1d304b #b7c5c4 #2ff5d6 #7c9594 #28814b\n01230\n01230\n01230\n01230\n00000\n\ntowerpillarmid3\n#7baab2 #b7c5c4 #2ff5d6 #7c9594 #28814b\n.123.\n.123.\n.123.\n.123.\n.123.\n\ntowerpillartop3\n#7baab2 #b7c5c4 #2ff5d6 #7c9594 #6f8c82 #6e98a1\n45554\n44444\n.123.\n.123.\n.123.\n\ntowerstairsup\n#d4dcdc #a4b5b5 #b5c4c3\n....1\n...22\n..110\n.2200\n11000\n\ntowerstairsdown1\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\ntowerstairsuptemp\n#d4dcdc #a4b5b5 #b5c4c3\n....1\n...22\n..110\n.2200\n11000\n\ntowerstairsdowntemp\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\ntowerwallint\ntransparent\n\n(tower balcony)\n\ntowertilehalflight\n#829d97 #b6c6b0 #94aba6 #66827d #7693a4 #91a8b6 #526b7c #354961\n10000\n12223\n52226\n54446\n66667\n\n\ntowertileoutside\n#94aba6 #829d97 #a9bcb8 #72908a #66827d\n21111\n20004\n20004\n20004\n33334\n\ntowerbalconyleft\n#94aba6 #829d97 #72908a #66827d #deddd1 #617978 #415150\n45611\n45603\n45603\n45603\n45623\n\ntowerbalconyright\n#94aba6 #829d97 #72908a #a9bcb8 #deddd1 #617978 #415150\n31654\n30654\n30654\n30654\n22654\n\ntowerbalconytop\n#415150 #deddd1 #617978 #94aba6 #a9bcb8 #72908a #66827d\n00000\n00000\n12011\n43336\n55556\n\ntowerbalconytopright\n#415150 #deddd1 #617978 #a9bcb8 #72908a\n21111\n02111\n00211\n30021\n44021\n\ntowerbalconytopleft\n#415150 #deddd1 #617978 #66827d #72908a\n11112\n11120\n11200\n12003\n12043\n\nhighgroundstart\n#deddd1\n\nhighground1\n#deddd1 #b8d9e9\n00000\n00000\n00000\n01000\n00000\n\nhighground2\n#deddd1 #d4e8f2 #b8d9e9\n00000\n01000\n00000\n00000\n00120\n\nhighground3\n#deddd1 #d4e8f2\n00010\n00000\n10000\n00001\n00000\n\nhighpuddletopleft1\n#deddd1 #d4e8f2 #b8d9e9\n00000\n00000\n00011\n00122\n00122\n\nhighpuddletopleft2\n#deddd1 #d4e8f2 #b8d9e9\n00000\n00000\n01111\n01222\n01122\n\nhighpuddletopright1\n#deddd1 #d4e8f2 #b8d9e9\n00000\n00000\n11000\n21000\n21000\n\nhighpuddletopright2\n#deddd1 #d4e8f2 #b8d9e9\n00000\n01110\n12221\n22221\n21110\n\nhighpuddlebottomleft1\n#deddd1 #d4e8f2 #b8d9e9\n00122\n01222\n01222\n00111\n00000\n\nhighpuddlebottomleft2\n#deddd1 #d4e8f2 #b8d9e9\n00122\n00111\n00001\n00001\n00000\n\nhighpuddlebottomright\n#deddd1 #d4e8f2 #b8d9e9\n21000\n21000\n10000\n10000\n00000\n\n(tower roof)\n\nroofpattern\ntransparent\n\nroofleft\n#829d97 #99b0ab\n.....\n.....\n100..\n.....\n.....\n\nroofup\n#829d97 #72908a\n..1..\n..0..\n..0..\n.....\n.....\n\nroofright\n#829d97 #5c7571\n.....\n.....\n..001\n.....\n.....\n\nroofdown\n#829d97 #66827d\n.....\n.....\n..0..\n..0..\n..1..\n\nbasementpattern\ntransparent\n\nbaseleft\n#2e5648 #376759\n.....\n.....\n100..\n.....\n.....\n\nbaseup\n#2e5648 #294d41\n..1..\n..0..\n..0..\n.....\n.....\n\nbaseright\n#2e5648 #1c332c\n.....\n.....\n..001\n.....\n.....\n\nbasedown\n#2e5648 #233e37\n.....\n.....\n..0..\n..0..\n..1..\n\nhalftilebottomright\n#94aba6 #829d97 #a9bcb8 #8aa47f #66827d\n21111\n2000.\n200..\n20...\n3....\n\nhalftilebottomleft\n#94aba6 #829d97 #a9bcb8 #72908a #66827d\n21111\n.0004\n..004\n...04\n....4\n\nhalftiletopright\n#94aba6 #829d97 #a9bcb8 #72908a #66827d\n211..\n2000.\n20004\n20004\n33334\n\nhalftiletopleft\n#94aba6 #829d97 #a9bcb8 #72908a #66827d\n..111\n.0004\n20004\n20004\n33334\n\ntowerbalconytoprightroof\n#415150 #deddd1 #617978 #a9bcb8 #72908a\n21111\n02111\n00211\n30021\n44002\n\ntowerbalconytopleftroof\n#415150 #deddd1 #617978 #66827d #72908a\n11112\n11120\n11200\n12003\n20043\n\ntowerbalconyrightroof\n#6f90bc #6388b7 #8da9cb #5077ab #466998 #415150\n21.55\n200.5\n2000.\n20004\n33334\n\ntowerbalconyleftroof\n#6f90bc #6388b7 #8da9cb #5077ab #466998 #415150\n55.11\n5.004\n.0004\n20004\n33334\n\n(tower basement)\n\nbasemententrance\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\nbasemententrance1\n#b7c5c4 #8da3a2 #98acab #335f50 #396959 #447f6c\n33331\n54422\n54110\n52200\n11000\n\nbasemententrance2\n#a7c7c4 #91b9b5 #6ba093 #b8d2d0 #7daca8\n11112\n30002\n30002\n30002\n34444\n\nbasementstairsdown\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\nbasementstairsdowntemp\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\nbasementtile\n#396959 #335f50 #223f36 #447f6c #2b4d43\n11112\n30002\n30002\n30002\n34444\n\nbasementstairsdownblocked\n#396959 #335f50 #223f36 #447f6c #2b4d43\n11112\n30002\n30002\n30002\n34444\n\ntowerstairsdown2\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\nbasementlinetile\n#a7c7c4 #91b9b5 #6ba093 #b8d2d0 #7daca8\n11112\n30002\n30002\n30002\n34444\n\nbasementblocktile\n#396959 #335f50 #223f36 #447f6c #2b4d43\n11112\n30002\n30002\n30002\n34444\n\nbasementlineblocktile\n#a7c7c4 #91b9b5 #6ba093 #b8d2d0 #7daca8\n11112\n30002\n30002\n30002\n34444\n\nbasementwallright\n#396959 #335f50 #46826c #447f6c #2b4d43 #78b6a0\n12225\n30222\n30022\n30002\n34444\n\nbasementwallrightmid\n#46826c #78b6a0\n11000\n11100\n01110\n00111\n00011\n\nbasementwallrighttop\n#46826c #78b6a0 #12261b\n02222\n00222\n00022\n00002\n10000 \n\nbasementwallleft\n#396959 #46826c #223f36 #447f6c #2b4d43 #78b6a0\n51112\n11102\n11002\n10002\n44444\n\nbasementwallleftmid\n#46826c #78b6a0\n00011\n00111\n01110\n11100\n11000\n\nbasementwalllefttop\n#46826c #78b6a0 #12261b\n22220\n22200\n22000\n20000\n00001\n\nbasementwallbottomleft\n#396959 #335f50 #223f36 #12261b\n31112\n33002\n33302\n33332\n33333\n\nbasementwallbottomright\n#396959 #335f50 #12261b #447f6c\n11112\n30022\n30222\n32222\n22222\n\nbasementwall\ngrey\n\nbasementphysicalwall\n#12261b\n\nbasementphysicalwallperm\n#12261b\n\nbasementpillar1\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.1...\n.1...\n.12..\n.123.\n00000\n\nbasementpillar2\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n00000\n\nbasementpillartop2\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.....\n...3.\n..23.\n.123.\n.123.\n\nbasementpillar3\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n00000\n\nbasementpillarmid3\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n.123.\n\nbasementpillartop3\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.....\n.....\n.1.3.\n.123.\n.123.\n\nbasementpillar4\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n00000\n\nbasementpillartop4\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.....\n.1...\n.12..\n.123.\n.123.\n\nbasementpillar5\n#6f8c82 #d77e57 #d16b3f #c55d2f\n...3.\n...3.\n..23.\n.123.\n00000\n\nbasementpillar6\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n00000\n\nbasementpillarmid6\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n.123.\n\nbasementpillartop6\n#6f8c82 #d77e57 #d16b3f #c55d2f #6f8c82 #6e98a1\n54445\n55555\n.123.\n.123.\n.123.\n\nend\n#123456\n000..\n.000.\n..000\n...00\n....0\n\n(Drawing)\n\ndrawingboardcenter\n#ffffb3\n\ndrawingboardleft\n#ffffb3 #f7f7bb\n10000\n10000\n10000\n10000\n10000\n\ndrawingboardtop\n#ffffb3 #f7f7bb\n11111\n00000\n00000\n00000\n00000\n\ndrawingboardright\n#ffffb3 #f7f7bb\n00001\n00001\n00001\n00001\n00001\n\ndrawingboarddown\n#ffffb3 #f7f7bb\n00000\n00000\n00000\n00000\n11111\n\ndrawingboardtopleft\n#ffffb3 #f7f7bb\n11111\n10000\n10000\n10000\n10000\n\ndrawingboarddownleft\n#ffffb3 #f7f7bb\n10000\n10000\n10000\n10000\n11111\n\ndrawingboardtopright\n#ffffb3 #f7f7bb\n11111\n00001\n00001\n00001\n00001\n\ndrawingboarddownright\n#ffffb3 #f7f7bb\n00001\n00001\n00001\n00001\n11111\n\ndrawleft\n#281904\n.....\n.....\n000..\n.....\n.....\n\ndrawup\n#281904\n..0..\n..0..\n..0..\n.....\n.....\n\ndrawright\n#281904\n.....\n.....\n..000\n.....\n.....\n\ndrawdown\n#281904\n.....\n.....\n..0..\n..0..\n..0..\n\ndrawgoal0\ntransparent\n\ndrawgoal1\ntransparent\n\ndrawgoal2\ntransparent\n\ndrawgoal3\ntransparent\n\ndrawgoal4\ntransparent\n\ndrawchange\ntransparent\n\ndrawgood\ntransparent\n\ndrawwrong\ntransparent\n\n(Earth Puzzle)\n\npuzzletilewrongnorm\n#2ff5d6\n0...0\n.0.0.\n.....\n.0.0.\n0...0\n\npuzzletilewrongend\n#2ff5d6\n0...0\n.0.0.\n.....\n.0.0.\n0...0\n\npuzzletilegoodnorm\n#39f52f\n0...0\n.0.0.\n.....\n.0.0.\n0...0\n\npuzzletilewronghidden\n#3d7162 #3a6b5a #2b5146 #478572 #335c50\n31111\n30002\n30002\n30002\n44442\n\npuzzletilegoodhidden\n#386759 #3a6b5a #2b5146 #478572 #335c50\n31111\n30002\n30002\n30002\n44442\n\npuzzletilehidden\ntransparent\n\npuzzlepanel\n#d4ca8e #e5dfbb #c0b25b #27a0fc\n.....\n10002\n10302\n10002\n.....\n\npuzzlestartbadnorm\n#2ff5d6\n\npuzzlestartbadend\n#2ff5d6\n\npuzzlestartgood\n#39f52f\n\nbalancespace\n#c4cbc3\n00000\n00000\n00000\n00000\n00000\n\nnodrawspace\n#c4cbc3\n00000\n00000\n00000\n00000\n00000\n\nimbalancespace\n#c4cbc3\n00000\n00000\n00000\n00000\n00000\n\nimbalancespacerandom\n#c4cbc3\n00000\n00000\n00000\n00000\n00000\n\nclearspace\n#c4cbc3 #d11320\n10001\n01010\n00100\n01010\n10001\n\nclear\ntransparent\n\nnodraw\ntransparent\n\nimbalance\ntransparent\n\nimbalancerandom\ntransparent\n.....\n.....\n.....\n.....\n.....\n\n1left\n#71806f\n.....\n.....\n00...\n.....\n.....\n\n1up\n#71806f\n..0..\n..0..\n.....\n.....\n.....\n\n1right\n#71806f\n.....\n.....\n...00\n.....\n.....\n\n1down\n#71806f\n.....\n.....\n.....\n..0..\n..0..\n\n(Earth - selectors)\n\nselector\n#da7c7c\n00.00\n0...0\n.....\n0...0\n00.00\n\nredselector\nred\n00.00\n0...0\n.....\n0...0\n00.00\n\nnumber1\n#15ae85\n.....\n.0...\n.....\n.....\n.....\n\nnumber2\n#157bae\n.....\n.0.0.\n.....\n.....\n.....\n\nnumber3\n#1520ae\n.....\n.0.0.\n.....\n.0...\n.....\n\nnumber4\n#6615ae\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nnumberQ\n#fdfe10\n.....\n.....\n..0..\n.....\n.....\n\nnumberE\n#0fb209\n.....\n.000.\n.0.0.\n.000.\n.....\n\nnumberEwrong\n#a70f17\n.....\n.000.\n.0.0.\n.000.\n.....\n\nnumberO\n#0fb209\n.....\n.000.\n.0.0.\n.000.\n.....\n\nnumberOwrong\n#a70f17\n.....\n.000.\n.0.0.\n.000.\n.....\n\nnumber0\ntransparent\n\nGood\n#39f52f\n.....\n.....\n..0..\n.....\n.....\n\ngoodtemp\ntransparent\n\nWrong\n#d11320\n.....\n.....\n..0..\n.....\n.....\n\nblocker\nblack\n.....\n.....\n..0..\n.....\n.....\n\nwrongtemp\ntransparent\n\nchange\ntransparent\n\n(Earth - count)\n\ncount0\ntransparent\n\ncount1\ntransparent\n\ncount2\ntransparent\n\ncount3\ntransparent\n\ncount4\ntransparent\n\ncountup\ntransparent\n\ncountdown\ntransparent\n\n(Earth - goals)\n\ngoal0\ntransparent\n\ngoal1\ntransparent\n\ngoal2\ntransparent\n\ngoal3\ntransparent\n\ngoal4\ntransparent\n\ngoale\ntransparent\n\ngoalo\ntransparent\n\nchain\ntransparent\n\nchainstart\ntransparent\n\nchaingoal\ntransparent\n\nchaingoaltemp\ntransparent\n\nchainstarttemp\ntransparent\n\nleftmark\ntransparent\n\nrightmark\ntransparent\n\nupmark\ntransparent\n\ndownmark\ntransparent\n\ndrawsetup1\ntransparent\n\ndrawsetup2\ntransparent\n\ndrawsetup3\ntransparent\n\ndrawsetup4\ntransparent\n\ndrawsetup5\ntransparent\n\nhousewallsecret\ntransparent\n\n(Darkness)\n\nDark\n#d4ca8e\n\nLight\ntransparent\n\nDarkbarrier\ntransparent\n\nlightout\ntransparent\n\nmark\ntransparent\n\nsecret\n#f9d371 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\nsecret2\n#f9d371 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\nsecretsetup\n#f9d371 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\ndrawmark\ntransparent\n\ndrawmarknegative\ntransparent\n\nbasementprogressmark\ntransparent\n\ntowerprogressmark\ntransparent\n\ntowerstairsupblocked\n#587ba2 #4f6e92 #7895b6 #354961 #425a78\n21111\n20003\n20003\n20003\n44443\n\n(messages)\n\nfloor0mesage\ntransparent\n\nfloor1mesage\ntransparent\n\nfloor2mesage\ntransparent\n\nfloor3mesage\ntransparent\n\nfloor4mesage\ntransparent\n\nfloor5mesage\ntransparent\n\nfloor6mesage\ntransparent\n\nfloor7mesage\ntransparent\n\nfloor8mesage\ntransparent\n\nfloor9mesage\ntransparent\n\nbfloor1mesage\ntransparent\n\nbfloor2mesage\ntransparent\n\nbfloor3mesage\ntransparent\n\nbfloor4mesage\ntransparent\n\nbfloor5mesage\ntransparent\n\nbfloor6mesage\ntransparent\n\nbfloor7mesage\ntransparent\n\nbfloor8mesage\ntransparent\n\nbfloor9mesage\ntransparent\n\nmessagemarkup\ntransparent\n\nmessagemarkdown\ntransparent\n\nentrancemesage\ntransparent\n\npuzzle1mesage1\ntransparent\n\npuzzle1mesage2\ntransparent\n\npuzzle2mesage1\ntransparent\n\npuzzle2mesage2\ntransparent\n\npuzzle3mesage1\ntransparent\n\npuzzle3mesage2\ntransparent\n\npuzzle4mesage1\ntransparent\n\npuzzle4mesage2\ntransparent\n\npuzzle5mesage1\ntransparent\n\npuzzle5mesage2\ntransparent\n\npuzzle6mesage1\ntransparent\n\npuzzle6mesage2\ntransparent\n\npuzzle8mesage1\ntransparent\n\npuzzle8mesage2\ntransparent\n\nbpuzzle1mesage\ntransparent\n\nbpuzzle2mesage\ntransparent\n\nbpuzzle3mesage\ntransparent\n\nbpuzzle4mesage\ntransparent\n\nbpuzzle5mesage\ntransparent\n\nbpuzzle6mesage\ntransparent\n\nbpuzzle7mesage\ntransparent\n\nbpuzzle8mesage\ntransparent\n\nbpuzzle9mesage\ntransparent\n\nimbalancemesage1\ntransparent\n\nimbalancemesage2\ntransparent\n\nbalancemesagefinal\ntransparent\n\nbalancemesagefinal2\ntransparent\n\nhiddenmesage\ntransparent\n\nbloomstart\ntransparent\n\nbloom1\n#d94148 #be2633 #96222d\n.....\n.....\n....1\n..012\n00222\n\nbloom2\n#d94148 #be2633 #96222d #ab222c\n.....\n.....\n1...3\n21332\n22122\n\nbloom3\n#be2633 #96222d #ab222c #d52c37\n.....\n2....\n2000.\n2220.\n13310\n\nbloom4\n#d94148 #b12833 #96222d\n....0\n....0\n....0\n..001\n..012\n\nbloom5\n#d94148 #b12833 #96222d #d52c37\n12233\n10323\n01223\n01232\n02322\n\nbloom6\n#96222d #d52c37 #be2633\n00200\n01102\n10010\n00010\n00001\n\nbloom7\n#96222d #d52c37 #be2633 #b5242a\n00100\n20101\n02001\n00111\n00131\n\nbloom8\n#871f27 #9a1f26 #be2633\n2....\n02...\n012..\n012..\n012..\n\nbloom9\n#d94148 #b12833 #96222d\n..010\n..012\n..012\n.0112\n..012\n\nbloom10\n#d94148 #b12833 #96222d #d52c37 #ac2322\n23234\n03234\n03234\n02232\n01232\n\nbloom11\n#d52c37 #5b1111 #7d1717 #ab222c\n00010\n02112\n01001\n31021\n32110\n\nbloom12\n#96222d #d52c37 #871f27 #b5242a\n00131\n01001\n01111\n11002\n00002\n\nbloom13\n#871f27 #9a1f26 #be2633 #d52c37\n0012.\n0012.\n013..\n013..\n03...\n\nbloom14\n#d94148 #b12833 #96222d\n..010\n..012\n.0012\n..000\n....0\n\nbloom15\n#d94148 #b12833 #96222d #d52c37\n01233\n02323\n02323\n32322\n32332\n\nbloom16\n#96222d #d52c37 #ab222c\n22222\n00000\n10001\n11111\n10000\n\nbloom17\n#96222d #d52c37 #b5242a #871f27 #9a1f26\n10001\n11113\n00213\n00113\n01134\n\nbloom18\n#d52c37 #9a1f26\n00...\n10...\n10...\n10...\n0....\n\nbloom19\n#96222d #d52c37\n11010\n.1110\n...10\n.....\n.....\n\nbloom20\n#96222d #d52c37\n11011\n01100\n10111\n.1...\n.....\n\nbloom21\n#96222d #d52c37\n11001\n0111.\n1....\n.....\n.....\n\nfinalleft\n#71806f\n.....\n.....\n00...\n.....\n.....\n\nfinalup\n#71806f\n..0..\n..0..\n.....\n.....\n.....\n\nfinalright\n#71806f\n.....\n.....\n...00\n.....\n.....\n\nfinaldown\n#71806f\n.....\n.....\n.....\n..0..\n..0..\n\nfinalpattern\ntransparent\n\nbloomend\ntransparent\n\nbloomend1\ntransparent\n\ntarget\ngreen\n\n=======\nLEGEND\n=======\n\nman = manup or mandown or manright or manleft\nPlayer = man or selector or redselector or bloomend1\nground = ground1 or ground2 or ground3\npuddle = puddlecenter or puddleleft or puddleright or puddletop or puddlebottom or puddlecornertr or puddlecornertl or puddlecornerbr or puddlecornerbl\nhighpuddletopleft = highpuddletopleft1 or highpuddletopleft2\nhighpuddletopright = highpuddletopright1 or highpuddletopright2 \nhighpuddlebottomleft = highpuddlebottomleft1 or highpuddlebottomleft2\nhighpuddle = highpuddletopleft1 or highpuddletopleft2 or highpuddletopright1 or highpuddletopright2 or highpuddlebottomleft1 or highpuddlebottomleft2 or highpuddlebottomright\nhighground = highground1 or highground2 or highground3\npuzzletilewrong = puzzletilewronghidden or puzzletilewrongnorm\npuzzletilegood = puzzletilegoodhidden or puzzletilegoodnorm\npuzzletile = puzzletilewrong or puzzletilegood or puzzletilehidden\ndirection = leftmark or rightmark or upmark or downmark\npuzzlespace = balancespace or imbalancespace or imbalancespacerandom\ndrawingboard = drawingboardcenter or drawingboardleft or drawingboardright or drawingboardtop or drawingboarddown or drawingboardtopleft or drawingboardtopright or drawingboarddownright or drawingboarddownleft\nhousefloor = housefloornorm or housefloor1 or housefloor2\nhousefloorcrease = housefloor1 or housefloor2\nrose = rose1 or rose2 or rose3 or rose4 or rose5 or rose6 or rose7 or rose8 or rose9 or rose10 \ntowertilepick = towertilecrack1 or towertilecrack2 or towertilecrack3\nblocktile = basementblocktile or basementlineblocktile\ntowerstairsdown = towerstairsdown1 or towerstairsdown2\ntowerstairs = towerstairsdown1 or towerstairsdown2 or towerstairsup\npath = pathupbend or pathrightbend or pathhoriz or pathvert or pathend or pathtri or pathstart\nfloormesage = floor1mesage or floor2mesage or floor3mesage or floor4mesage or floor5mesage or floor6mesage or floor7mesage or floor8mesage or floor9mesage or bfloor1mesage or bfloor2mesage or bfloor3mesage or bfloor4mesage or bfloor5mesage or bfloor6mesage or bfloor7mesage or bfloor8mesage or bfloor9mesage or floor0mesage\nrosetile = rosetile1 or rosetile2 or rosetile3\npuzzlestartbad = puzzlestartbadnorm or puzzlestartbadend\npuzzlestart = puzzlestartbad or puzzlestartgood\n\n# = Darkbarrier and Wall\n* = Wall and chainstarttemp\n@ = Wall and chaingoaltemp\n_ = PhysicalWall\n! = imbalance and wall\n: = imbalancerandom and wall\n⸝ = nodraw and wall\n£ = clearspace\n\n(outside)\nP = manright and pathvert and floor0mesage\n. = groundstart\n- = puddlecenter\nz = pathstart and groundstart\n` = housewall\n~ = houseroof\nh = houseentrance\n꠸ = housewindow\nq = towerwall1\nw = towerwall2\n$ = towerbase\nt = towerentrance\n(inside)\n, = towertile\nl = towertilecrack\n/ = towerpillar2 and towertile\n[ = towerpillar1 and towertile\n{ = towerpillar3 and towertile\n⥁ = towerpillar2special and towertile\n↥ = towerstairsup and towertile\nx = puzzletilewrongnorm and towertile\nᵽ = puzzletilewrongend and housefloornorm and balancemesagefinal\n¥ = puzzletilewrongnorm and towertileoutside and imbalancemesage1\nᵶ = puzzletilewrongnorm and towertile and imbalancemesage2\nᶍ = puzzletilewrongnorm and towertileoutside\n☌ = puzzletilehidden and towertile\ny = puzzlestartbadnorm and dark\nᵯ = puzzlestartbadend and dark and balancemesagefinal2 and end\n↓ = towerstairsdown1\n% = towerwallint\nc = towerwallinttoppermanent\n⏙ = towerstairsupblocked and towertile\n\n(balcony)\n& = highgroundstart\n+ = highpuddlebottomright\n' = towertileoutside\n⤫ = towertileoutside and rosetilestart\n\n\n(roof)\nk = roofpattern and towertileoutside\n\n(basement)\n\" = basementtile\n; = basementlinetile\nb = basemententrance1\nn = basemententrance2 and bpuzzle1mesage\n\\ = basementpillar4 and basementtile\n] = basementpillar5 and basementtile\n} = basementpillar6 and basementtile\n| = basementblocktile\n⚎ = basementphysicalwallperm\nᵹ = puzzletilewronghidden and basementtile\n\n\n(puzzle tiles/ messages)\n\n⅕ = puzzletilewrongnorm and towertile and puzzle2mesage1\n⅙ = puzzletilewrongnorm and towertileoutside and puzzle2mesage2\n⅛ = puzzletilewrongnorm and towertile and puzzle3mesage1\n⅔ = puzzletilewrongnorm and towertile and puzzle3mesage2\n⅖ = puzzletilewrongnorm and towertile and puzzle4mesage1\n⅗ = puzzletilewrongnorm and towertile and puzzle4mesage2\n⅘ = puzzletilewrongnorm and towertile and puzzle5mesage1\n⅜ = puzzletilewrongnorm and towertile and puzzle5mesage2\n⅚ = puzzletilewrongnorm and towertile and puzzle6mesage1\n⅐ = puzzletilewrongnorm and towertileoutside and puzzle6mesage2\n⅝ = puzzletilewrongnorm and towertile and puzzle8mesage1\n↉ = puzzletilewrongnorm and towertile and puzzle8mesage2\n⅑ = towerstairsdown1 and bpuzzle2mesage\n⅒ = towerstairsdown2 and bpuzzle3mesage\n⅞ = towerstairsdown2 and bpuzzle4mesage\n⥊ = towerstairsdown2 and bpuzzle5mesage\n⥋ = towerstairsdown2 and bpuzzle6mesage\n⥌ = towerstairsdown2 and bpuzzle7mesage\n⥍ = towerstairsdown2 and bpuzzle8mesage\n⥎ = towerstairsdown2 and bpuzzle9mesage\n⥏ = towerentrance and puzzle1mesage1\n¢ = puzzletilehidden and puzzle1mesage2 and towertile\n\n\n\n(earth)\n(s = selector and goal1 and count0 and number1 and wrongtemp and puzzlespace)\n0 = balancespace and goal0 and count0 and number0 and goodtemp and dark\n1 = balancespace and goal1 and count0 and number1 and wrongtemp and dark\n2 = balancespace and goal2 and count0 and number2 and wrongtemp and dark\n3 = balancespace and goal3 and count0 and number3 and wrongtemp and dark\n4 = balancespace and goal4 and count0 and number4 and wrongtemp and dark\n? = balancespace and count0 and numberQ and goodtemp and dark\ne = balancespace and goale and count0 and numbere and goodtemp and dark\no = balancespace and goalo and count0 and numberowrong and wrongtemp and dark\n(goals with blocker and no number)\n5 = balancespace and goal0 and count0 and goodtemp and dark and blocker\n6 = balancespace and goal1 and count0 and wrongtemp and dark and blocker\n7 = balancespace and goal2 and count0 and wrongtemp and dark and blocker\n8 = balancespace and goal3 and count0 and wrongtemp and dark and blocker\n9 = balancespace and goal4 and count0 and wrongtemp and dark and blocker\n\n(drawing)\na = secret\ns = drawingboardcenter and count0 and drawgoal0\nd = drawingboardcenter and count0 and drawgoal1\nf = drawingboardcenter and count0 and drawgoal2\ng = drawingboardcenter and count0 and drawgoal3\nj = drawingboardcenter and count0 and drawgoal4\nm = housewallintdown\nu = housefloornorm\ni = housefloorstart\nr = rose1\nÐ = housewallintleft and housewallsecret\nᶃ = hiddendoor and hiddenmesage\n\nᶊ = end\n\n► = bloomstart and balancespace and blocker\n◄ = target and balancespace and blocker\n¤ = balancespace and goal0 and count0 and goodtemp and blocker and finalpattern\n┰ = balancespace and goal0 and count0 and goodtemp and blocker\n\n\n=======\nSOUNDS\n=======\n\nsfx1 50548908\nsfx2 70091308\nsfx3 2038108\nsfx4 55009308\nsfx5 88082508\nsfx6 59276308\nsfx7 68756908\nsfx8 20891708\nsfx9 71493108\nsfx10 34050308\n\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ndrawgood, drawwrong, target, bloomstart\nmark, drawmark, drawmarknegative, housefloorstart\nground1, ground2, ground3, groundstart, towertile, towertilecrack1, towertilecrack2, towertilecrack,towertilehalflight,towertileoutside,towertilecrack3,end, balancespace, drawingboardcenter, drawingboardleft, drawingboardright, drawingboardtop, drawingboarddown, drawingboardtopleft, drawingboardtopright, drawingboarddownright, drawingboarddownleft, imbalancespace, imbalancespacerandom, housefloor, blocktile, nodrawspace, clearspace\npath, pathstart, messagemarkup, messagemarkdown\nbasementtile, basementlinetile, puddlecenter, puddleleft, puddleright, puddletop, puddlebottom, puddlecornertr, puddlecornertl, puddlecornerbr, puddlecornerbl\ngood, wrong, goodtemp, wrongtemp puzzletilewrong, puzzletilegood, puzzlestartbad, puzzlestartgood, puzzletilehidden, puzzletilewrongend\nLight, Darkbarrier, number1, number2, number3, number4, number0, numberQ, numbere, numbero, numberewrong, numberowrong, chainstart, chaingoal, chaingoaltemp, chainstarttemp, imbalance, imbalancerandom, nodraw, floormesage, balancemesagefinal2\nchain, leftmark, rightmark, upmark, downmark, countup, countdown, roofpattern,imbalancemesage1, imbalancemesage2, balancemesagefinal, basementpattern, finalpattern\n1Left, drawleft, roofleft, baseleft, finalleft,clear\n1right, drawright, roofright, baseright, finalright\n1up, drawup, roofup, baseup, finalup,towerwallint, Physicalwall, basementwall, basementphysicalwall, basementphysicalwallperm\n1down, drawdown, roofdown, basedown, finaldown\ncount0, count1, count2, count3, count4, drawsetup1, drawsetup2, drawsetup3, drawsetup4, drawsetup5, highgroundstart,highground1, highground2, highground3, highpuddletopright1,highpuddletopright2,highpuddletopleft1,highpuddletopleft2, highpuddlebottomleft1,highpuddlebottomleft2, highpuddlebottomright, towerbalconytopleft, towerbalconytopright\nchange, drawchange, houseentrance, towerentrance, towerentrancefront, towerstairsup, towerstairsdown1, towerstairsuptemp, towerstairsdowntemp,towerwallintleftmid, towerwallintlefttop,towerwallintrightmid, towerwallintrighttop, towerwallinttoppermanent, basementstairsdown, basementstairsdowntemp, secret, secret2, hiddendoortemp, hiddendoor,basementwallrightmid, basementwallrighttop, basementwallleftmid, basementwalllefttop, towerbalconytoprightroof, towerbalconytopleftroof, basemententrance, basemententrance1, basemententrance2, basementstairsdownblocked, towerstairsdown2, towerstairsupblocked, dirttile\nPlayer, Wall, housewall, housewallcrack, housewallside,houseroof, houseroofside, housewindow, towerbase, towerbaseleft, towerbaseright, towerpillar1, towerpillar2, towerpillar2special, towerpillar3,towerwallintleft, towerwallintright, towerwallbottomleft, towerwallbottomright, towerwallinttop, towerwallintbottom,towerwallinttoppermanent, towerbalconyleft, towerbalconyright, towerbalconytop, housewallinttop, housewallintright, housewallintleft, housewallintdown, rose, basementwallbottomleft, basementwallbottomright, basementwallleft, basementwallright, towerwall1, towerwall2, towerbalconyrightroof, towerbalconyleftroof, basementpillar1, basementpillar2, basementpillar3, basementpillar4, basementpillar5, basementpillar6, bloomend, rosetile, rosetilestart, towerwall1right, towerwall1left, towerwall2right, towerwall2left\ngoal0, goal1, goal2, goal3, goal4, goale, goalo, drawgoal0, drawgoal1, drawgoal2, drawgoal3, drawgoal4, puzzlepanel,towerpillartop2, towerpillartop2special, towerpillarmid3, towerpillartop3, basementpillartop2, basementpillarmid3, basementpillartop3, basementpillartop4, basementpillarmid6, basementpillartop6, towerpillartop1\nDark, light, lightout, halftiletopright, halftiletopleft, halftilebottomright, halftilebottomleft\nblocker, basementprogressmark, towerprogressmark, bloom1, bloom2, bloom3, bloom4, bloom5, bloom6, bloom7, bloom8, bloom9, bloom10, bloom11, bloom12, bloom13,bloom14, bloom15, bloom16, bloom17, bloom18, bloom19, bloom20, bloom21\npuzzle1mesage1, puzzle1mesage2, puzzle2mesage1, puzzle2mesage2, puzzle3mesage1, puzzle3mesage2, puzzle4mesage1, puzzle4mesage2, puzzle5mesage1, puzzle5mesage2, puzzle6mesage1, puzzle6mesage2, puzzle8mesage1, puzzle8mesage2, bpuzzle1mesage, bpuzzle2mesage, bpuzzle3mesage, bpuzzle4mesage, bpuzzle5mesage, bpuzzle6mesage, bpuzzle7mesage, bpuzzle8mesage, bpuzzle9mesage, entrancemesage, hiddenmesage, housewallsecret,secretsetup\n\n======\nRULES \n====== \n\n(World Creation)\n\n[groundstart] -> [random ground]\n\n[rosetilestart] -> [random rosetile]\n\n[basementtile| towertileoutside roofpattern] -> [basementtile| basementtile basementpattern]\n\nvertical[pathvert | pathstart] -> [pathvert|pathvert]\nhorizontal[pathvert|pathstart] -> [pathrightbend|pathhoriz]\nhorizontal[pathhoriz|pathstart] -> [pathhoriz|pathhoriz]\nup[pathhoriz|pathstart] -> [pathtri|pathvert]\nright[pathtri|no path] -> [pathupbend|no path]\nup[pathvert|no path] -> [pathend|no path]\n\nright [puddlecenter| no puddle] -> [puddlecenter| puddleright]\nleft [puddlecenter| no puddle] -> [puddlecenter| puddleleft]\nup [puddlecenter| no puddle] -> [puddlecenter| puddletop]\ndown [puddlecenter| no puddle] -> [puddlecenter| puddlebottom]\n\nup[puddleright| no puddle] -> [puddleright| puddlecornertr]\ndown[puddleright| no puddle] -> [puddleright| puddlecornerbr]\nup[puddleleft| no puddle] -> [puddleleft| puddlecornertl]\ndown[puddleleft| no puddle] -> [puddleleft| puddlecornerbl]\n\nleft[houseroof| no houseroof] -> [houseroof| houseroofside]\nleft[housewall|ground] -> [housewallside| ground]\n\nleft[housewindow|]-> [housewindow|housewallcrack]\n\ndown[towerentrance | ground] -> [towerentrance | towerentrancefront]\n\nleft[towerwall1|ground] -> [towerwall1left|ground]\nleft[towerwall2|ground] -> [towerwall2left|ground]\nleft[towerbase|ground] -> [towerbaseleft|ground]\n\nright[towerwall1|ground] -> [towerwall1right|ground]\nright[towerwall2|ground] -> [towerwall2right|ground]\nright[towerbase|ground] -> [towerbaseright|ground]\n\ndown[towertileoutside|towertile] -> [towertileoutside|towertilehalflight]\n\n[towerwallint|basementtile] -> [basementwall|basementtile]\n[basementwall|physicalwall] -> [basementwall|basementphysicalwall]\n[basementtile|physicalwall] -> [basementtile|basementphysicalwall]\n[basementphysicalwall|physicalwall] -> [basementphysicalwall|basementphysicalwall]\n\n[towertile|basementtile] -> [basementtile|basementtile]\n\n[towertile|basementlinetile] -> [basementlinetile|basementlinetile]\n\n[towerpillar1|basementtile] -> [basementpillar1|basementtile]\n[towerpillar2|basementtile] -> [basementpillar2|basementtile]\n[towerpillar3|basementtile] -> [basementpillar3|basementtile]\n\nup[towerpillar1|] -> [towerpillar1|towerpillartop1]\nup[towerpillar2|] -> [towerpillar2|towerpillartop2]\nup[towerpillar2special|] -> [towerpillar2special|towerpillartop2special]\nup[towerpillar3||] ->[towerpillar3|towerpillarmid3|towerpillartop3]\nup[basementpillar2|] -> [basementpillar2|basementpillartop2]\nup[basementpillar3||] -> [basementpillar3|basementpillarmid3|basementpillartop3]\nup[basementpillar4|] -> [basementpillar4|basementpillartop4]\nup[basementpillar6||] -> [basementpillar6|basementpillarmid6|basementpillartop6]\n\ndown[towerwallint|towertile] -> [towerwallinttop|towertile]\nup[towerwallint|towertile] -> [towerwallintbottom|towertile]\nleft[towerwallinttop|towertile] -> [towerwallintright|towertile]\nright[towerwallinttop|towertile] -> [towerwallintleft|towertile]\nleft[towerwallintbottom|towertile] -> [towerwallbottomright|towertile]\nright[towerwallintbottom|towertile] -> [towerwallbottomleft|towertile]\nup[towerwallintleft|]-> [towerwallintleft|towerwallintleftmid]\nup[towerwallintright|]-> [towerwallintright|towerwallintrightmid]\nleft[towerwallintleftmid|] -> [towerwallintleftmid|towerwallintlefttop]\nright[towerwallintrightmid|] -> [towerwallintrightmid|towerwallintrighttop]\n\n\ndown[towertileoutside|towerwallint|towerwall1] -> [towertileoutside|halftilebottomleft towerwall2left|towerwall1]\ndown[towertileoutside|towerwallint|towerwall2] -> [towertileoutside|halftilebottomleft towerwall1left|towerwall2]\nleft[halftilebottomleft towerwall1left|towertileoutside] -> [halftilebottomright towerwall1right|towertileoutside]\nleft[halftilebottomleft towerwall2left|towertileoutside] -> [halftilebottomright towerwall2right|towertileoutside]\nup[towerwallint|towertileoutside] -> [towerwall1|towertileoutside]\n\nup[towertileoutside|towerwallint|highgroundstart]->[towertileoutside|halftiletopleft highgroundstart|highgroundstart]\nleft[halftiletopleft|towertileoutside]->[halftiletopright |towertileoutside]\nup[towertileoutside|towerwallint]->[towertileoutside|highgroundstart]\n\nup[towerbaseleft|towerwall1] -> [towerbaseleft|towerwall1left]\nup[towerbaseleft|towerwall2] -> [towerbaseleft|towerwall2left]\nup[towerbaseright|towerwall1] -> [towerbaseright|towerwall1right]\nup[towerbaseright|towerwall2] -> [towerbaseright|towerwall2right]\nvertical[towerwall1right|towerwall2] -> [towerwall1right|towerwall2right]\nvertical[towerwall2right|towerwall1] -> [towerwall2right|towerwall1right]\nvertical[towerwall1left|towerwall2] -> [towerwall1left|towerwall2left]\nvertical[towerwall2left|towerwall1] -> [towerwall2left|towerwall1left]\n\nup [towertileoutside | towertile] -> [towertileoutside| towertileoutside]\n\n[highgroundstart] -> [random highground]\n\nleft [highpuddlebottomright| no highpuddle] -> [highpuddlebottomright|random highpuddlebottomleft]\nup [highpuddlebottomright| no highpuddle ] -> [highpuddlebottomright|random highpuddletopright]\nup [highpuddlebottomleft| no highpuddle ] -> [highpuddlebottomleft|random highpuddletopleft]\n\nleft[towertileoutside | no halftiletopleft highground] -> [towertileoutside|no halftiletopleft towerbalconyleft]\nright[towertileoutside |no halftiletopright highground] -> [towertileoutside|no halftiletopright towerbalconyright]\nup[towertileoutside | highground] -> [towertileoutside|towerbalconytop]\nup[towerbalconyleft | highground] -> [towerbalconyleft|towerbalconytopleft]\nup[towerbalconyright | highground] -> [towerbalconyright|towerbalconytopright]\n\nleft[towerbalconytop | highground] -> [towerbalconytop|towerbalconytopleftroof]\nright[towerbalconytop | highground] -> [towerbalconytop|towerbalconytoprightroof]\ndown[towerbalconytopleftroof|towerbalconytop] -> [towerbalconytopleftroof| towerbalconyleftroof]\ndown[towerbalconytoprightroof|towerbalconytop] -> [towerbalconytoprightroof|towerbalconyrightroof]\n\nleft[roofpattern|roofpattern] -> [roofpattern roofleft| roofpattern roofright]\nup[roofpattern|roofpattern] -> [roofpattern roofup| roofpattern roofdown]\n\nleft[finalpattern|finalpattern] -> [finalpattern finalleft| finalpattern finalright]\nup[finalpattern|finalpattern] -> [finalpattern finalup| finalpattern finaldown]\n\nleft[basementpattern|basementpattern] -> [basementpattern baseleft| basementpattern baseright]\nup[basementpattern|basementpattern] -> [basementpattern baseup| basementpattern basedown]\n\nup[puzzletilewrong no basementtile no basementlinetile | no puzzlepanel] -> [puzzletilewrong|puzzlepanel]\n\n[imbalance | balancespace] -> [imbalance | imbalancespace]\n[imbalancerandom | balancespace] -> [imbalancerandom | imbalancespacerandom]\n[imbalancespace | balancespace] -> [imbalancespace | imbalancespace]\n[imbalancespacerandom | balancespace] -> [imbalancespacerandom | imbalancespacerandom]\n[nodraw | balancespace] -> [nodraw|nodrawspace blocker]\n[nodrawspace|balancespace] -> [nodrawspace|nodrawspace blocker]\n\nleft[drawingboardcenter|housefloor] -> [drawingboardleft|housefloor]\nright[drawingboardcenter|housefloor] -> [drawingboardright|housefloor]\nup[drawingboardcenter|housefloor] -> [drawingboardtop|housefloor]\ndown[drawingboardcenter|housefloor] -> [drawingboarddown|housefloor]\nup[drawingboardleft|housefloor] -> [drawingboardtopleft|housefloor]\nup[drawingboardright|housefloor] -> [drawingboardtopright|housefloor]\ndown[drawingboardleft|housefloor] -> [drawingboarddownleft|housefloor]\ndown[drawingboardright|housefloor] -> [drawingboarddownright|housefloor]\n\n[housefloorstart] -> [random housefloorcrease]\nright [housewallintdown|housefloor] -> [housewallintright|housefloor]\nleft[housewallintdown|housefloor]-> [housewallintleft|housefloor]\ndown [housewallintdown|housewallintdown|housefloor] -> [housewallinttop|housewallinttop|housefloor]\nleft [housewallinttop|housewallintdown] -> [housewallinttop|housewallintright]\nright [housewallinttop|housewallintdown] -> [housewallinttop|housewallintleft]\n\nright[rose1||||] -> [rose1|rose2|rose3|rose4|rose5]\ndown[rose1|] -> [rose1|rose6]\nright[rose6||||] -> [rose6|rose7|rose8|rose9|rose10]\n\nup[basementtile|basementwall] -> [basementtile|basementwallleft]\nleft[basementwallleft|basementtile] -> [basementwallright|basementtile]\nleft[basementwallleft|basementblocktile] -> [basementwallright|basementblocktile]\nup[basementwallleft|basementphysicalwall]->[basementwallleft|basementwallleftmid]\nup[basementwallright|basementphysicalwall]->[basementwallright|basementwallrightmid]\nup[basementwallleftmid|no basementphysicalwallperm basementphysicalwall]->[basementwallleftmid|basementwalllefttop]\nup[basementwallrightmid|no basementphysicalwallperm basementphysicalwall]->[basementwallrightmid|basementwallrighttop]\ndown[basementtile|basementwall] -> [basementtile|basementwallbottomleft]\nleft[basementwallbottomleft|basementtile] -> [basementwallbottomright|basementtile]\nleft[basementwallbottomleft|basementblocktile] -> [basementwallbottomright|basementblocktile]\n\nvertical [ basementlinetile|basementblocktile] -> [basementlinetile|basementlineblocktile]\n[basementlinetile|basementtile puzzletilewrong] -> [basementlinetile| basementlinetile puzzletilewrong]\n\n[basementtile|towerstairsdown1] -> [basementtile|basementstairsdownblocked]\n\n[towertilecrack] -> [random towertilepick]\n\nhorizontal[towerentrance no puzzle1mesage1|puzzle1mesage1] -> [towerentrance no puzzle1mesage1| no puzzle1mesage1]\n\nup[rosetile| |rosetile] -> [rosetile| dirttile| rosetile]\n\ndown [basemententrance|||||||housewallsecret] -> [basemententrance|||||||secretsetup]\n\n[secretsetup] up [houseentrance||drawgoal0||||] -> [secretsetup] up [houseentrance||drawsetup1|drawsetup2|drawsetup3|drawsetup4|drawsetup5]\n\nright[drawsetup1||||||] -> [drawgoal2 count0|drawgoal1|drawgoal0|drawgoal0|drawgoal0|drawgoal0|drawgoal0]\nright[drawsetup2||||||] -> [drawgoal1 count0|drawgoal0|drawgoal0|drawgoal0|drawgoal2|drawgoal2|drawgoal0]\nright[drawsetup3||||||] -> [drawgoal0 count2|drawgoal2|drawgoal2|drawgoal0|drawgoal2|drawgoal2|drawgoal0]\nright[drawsetup4||||||] -> [drawgoal0 count3|drawgoal2|drawgoal2|drawgoal0|drawgoal0|drawgoal0|drawgoal1]\nright[drawsetup5||||||] -> [drawgoal0 count2|drawgoal0|drawgoal0|drawgoal0|drawgoal0|drawgoal1|drawgoal2]\n\n[secretsetup housewallintleft] -> [secret2 no housewallintleft]\n\n\n(Transportation Messages)\n[action man puzzle2mesage1] -> [action man] sfx1 message I've been watching you\n[action man puzzle2mesage2] -> [action man] sfx4 message Every connection draws us closer\n[action man puzzle3mesage1] -> [action man] sfx7 message If you don't want to, its ok\n[action man puzzle3mesage2] -> [action man] sfx4 message All you need to do is be here \n[action man puzzle4mesage1] -> [action man] sfx5 message I'll be waiting at the top\n[action man puzzle4mesage2] -> [action man] sfx6 message Take as much time as you need\n[action man puzzle5mesage1] -> [action man] sfx2 message My mind is above and heart below\n[action man puzzle5mesage2] -> [action man] sfx2 message Both parts equally important\n[action man puzzle6mesage1] -> [action man] sfx7 message I so enjoy you being here\n[action man puzzle6mesage2] -> [action man] sfx1 message Can you see it in my eyes?\n[action man puzzle8mesage1] -> [action man] sfx8 message I'd like it if you stay\n[action man puzzle8mesage2] -> [action man] sfx10 message I trust you feel the same\n[action man bpuzzle2mesage] -> [action man] sfx5 message I'll be waiting at the bottom\n[action man bpuzzle3mesage] -> [action man] sfx6 message I can't wait till you're here\n[action man bpuzzle4mesage] -> [action man] sfx10 message I know you feel the same\n[action man bpuzzle5mesage] -> [action man] sfx8 message I can't solve your problems\n[action man bpuzzle6mesage] -> [action man] sfx2 message But I will see them through with you\n[action man bpuzzle7mesage] -> [action man] sfx9 message I see you\n[action man bpuzzle8mesage] -> [action man] sfx9 message And you see me\n[action man bpuzzle9mesage] -> [action man] sfx3 message Where have you been?\n[action man puzzle1mesage2] -> [action man] sfx6 message Heart and mind together as one\n\n\n[action man imbalancemesage1] -> [action man imbalancemesage1] sfx9 message You can only do so much\n[action man imbalancemesage2] -> [action man imbalancemesage2] sfx9 message You can leave it if you want to\n[action man balancemesagefinal] -> [action man balancemesagefinal] sfx1 message I've been watching you... From thee empty floor\n[action selector balancemesagefinal2] -> [action selector balancemesagefinal2] sfx4 message Look me in the eyes\n\n(Transportation)\n\n[> man floormesage | puzzlepanel] -> [man floormesage| puzzlepanel]\n\n\nup [towerentrance man floormesage puzzle1mesage1 | | | towerentrance | ] -> [towerentrance | | | towerentrance | man floormesage messagemarkup] sfx3 message Where have you been?\nup [towerentrance man floormesage | | | towerentrance | ] -> [towerentrance | || towerentrance | man floormesage messagemarkup]\ndown [towerentrance man floormesage | | | towerentrance | ] -> [towerentrance | | | towerentrance | man floormesage messagemarkdown]\n\n [action man puzzletilewrongend] [puzzlestartbadend] -> [puzzletilewrongend] [selector puzzlestartbadend light] checkpoint\n [action selector puzzlestartbadend] [puzzletilewrongend] -> [puzzlestartbadend lightout] [mandown puzzletilewrongend] checkpoint\n\nhorizontal [action man puzzletile| ... | puzzlestart] -> [puzzletile|...| puzzlestart selector light] checkpoint\n\nhorizontal [action selector puzzlestart|...| puzzletile] -> [puzzlestart lightout|...|puzzletile mandown] checkpoint\n\n up [action man floormesage towerstairsup|...|towerstairsdown] -> [towerstairsup|...|towerstairsdown messagemarkup man floormesage ]\ndown [action man floormesage towerstairsdown|...|towerstairsup] -> [towerstairsdown|...|towerstairsup messagemarkdown man floormesage]\n[towerstairsuptemp no man] -> [towerstairsup]\n[towerstairsdowntemp no man] -> [towerstairsdown2]\n\n[houseentrance man floormesage no mark] [houseentrance no man] -> [houseentrance] [ houseentrance man floormesage mark]\n\n[hiddendoor man floormesage no mark hiddenmesage] [hiddendoor no man] -> [hiddendoor] [ hiddendoor man floormesage mark] sfx6 message My heart is yours\n[hiddendoor man floormesage no mark] [hiddendoor no man] -> [hiddendoor] [ hiddendoor man floormesage mark]\n\n[basemententrance man floormesage no mark] [basemententrance1 no man] -> [basemententrance] [basemententrance1 man floormesage mark messagemarkdown]\n[basemententrance1 man floormesage no mark] [basemententrance no man] -> [basemententrance1] [basemententrance man floormesage mark messagemarkup]\n[basemententrance2 man floormesage no mark bpuzzle1mesage] [basemententrance2 no man bpuzzle1mesage] -> [basemententrance2] [basemententrance2 man floormesage mark] sfx6 message My mind is yours\n[basemententrance2 man floormesage no mark] [basemententrance2 no man] -> [basemententrance2] [basemententrance2 man floormesage mark]\n\ndown [down man blocktile floormesage | blocktile] -> [man blocktile floormesage | blocktile]\nup [up man blocktile floormesage | blocktile] -> [man blocktile floormesage | blocktile]\n\n [ > man floormesage] -> [> man > floormesage]\n late [man] [floormesage no man] -> [man floormesage] []\n \n \n [> bloomend1] -> [bloomend1]\n(darkness)\n\n[light | dark] -> [light|light]\n\n[lightout | light] -> [lightout | lightout]\n\n[lightout] -> [dark]\n\n(man movement)\n[left man] -> [left manleft]\n[right man] -> [right manright]\n[up man] -> [up manup]\n[down man] -> [down mandown]\n\n(drawing)\n\nleft [left man drawingboard no drawleft | drawingboard] -> [drawingboard drawleft drawmark | drawingboard drawright man drawmark]\nright [right man drawingboard no drawright | drawingboard] -> [drawingboard drawright drawmark | drawingboard drawleft man drawmark]\nup [up man drawingboard no drawup | drawingboard] -> [drawingboard drawup drawmark| drawingboard drawdown man drawmark]\ndown [down man drawingboard no drawdown | drawingboard] -> [drawingboard drawdown drawmark| drawingboard drawup man drawmark]\n\nleft [left man drawingboard drawleft | drawingboard drawright] -> [drawingboard no drawleft drawmarknegative| drawingboard no drawright man drawmarknegative]\nright [right man drawingboard drawright | drawingboard drawleft] -> [drawingboard no drawright drawmarknegative| drawingboard no drawleft man drawmarknegative]\nup [up man drawingboard drawup | drawingboard drawdown] -> [drawingboard no drawup drawmarknegative| drawingboard no drawdown man drawmarknegative]\ndown [down man drawingboard drawdown | drawingboard drawup] -> [drawingboard no drawdown drawmarknegative| drawingboard no drawup man drawmarknegative]\n\n[count0 drawmark] -> [count1 drawchange]\n[count1 drawmark] -> [count2 drawchange]\n[count2 drawmark] -> [count3 drawchange]\n[count3 drawmark] -> [count4 drawchange]\n\n[count4 drawmarknegative] -> [count3 drawchange]\n[count3 drawmarknegative] -> [count2 drawchange]\n[count2 drawmarknegative] -> [count1 drawchange]\n[count1 drawmarknegative] -> [count0 drawchange]\n\n[count4 drawgoal4] [drawchange] -> [count4 drawgoal4 drawgood] [drawchange]\n[count3 drawgoal3] [drawchange] -> [count3 drawgoal3 drawgood] [drawchange]\n[count2 drawgoal2] [drawchange] -> [count2 drawgoal2 drawgood] [drawchange]\n[count1 drawgoal1] [drawchange] -> [count1 drawgoal1 drawgood] [drawchange]\n[count0 drawgoal0] [drawchange] -> [count0 drawgoal0 drawgood] [drawchange]\n\n[drawingboard no drawgood] [drawchange] -> [drawingboard drawwrong] [drawchange]\n\n[secret] -> [basementstairsdowntemp]\n[secret2] -> [hiddendoortemp]\n\n[basementstairsdowntemp] [drawingboard drawwrong]-> [secret] [drawingboard drawwrong]\n[basementstairsdowntemp] [drawchange]-> [basemententrance] [drawchange]\n[basementstairsdowntemp] -> [secret]\n[hiddendoortemp] [drawingboard drawwrong]-> [secret2] [drawingboard drawwrong]\n[hiddendoortemp] [drawchange]-> [hiddendoor] [drawchange]\n[hiddendoortemp] -> [secret2]\n\n\n[drawingboard drawgood] -> [drawingboard]\n[ > man | secret] -> [ man | secret]\n[ > man | secret2] -> [ man | secret2]\n[ > man | basementphysicalwall] -> [man | basementphysicalwall]\n\n(Earth)\n\n(clearing)\n[action selector clearspace| balancespace] -> [selector clearspace | clear balancespace]\n\nstartloop\n\n[clear 1right] -> [clear]\n[clear 1down] -> [clear]\n[clear 1up] -> [clear]\n[clear | balancespace] -> [clear |balancespace clear]\n\nendloop\n\n[clear] -> [count0 wrong change]\n\n(selector controls)\n\n[Action selector] -> [redselector]\n[Action redselector] -> [selector]\n\n[> redselector | puzzlestart] -> [redselector | puzzlestart]\n[> redselector nodrawspace] -> [redselector nodrawspace]\n[> redselector | clearspace] -> [redselector | clearspace]\n\n[wrongtemp light] -> [wrong light]\n[goodtemp light] -> [good light]\n[good dark] -> [goodtemp dark]\n[wrong dark] -> [wrongtemp dark]\n\n(marking for connection)\nright [right redselector balancespace | balancespace] -> right[redselector balancespace rightmark|balancespace leftmark]\nleft [left redselector balancespace | balancespace] -> left[redselector balancespace leftmark|balancespace rightmark]\nup [up redselector balancespace | balancespace] -> up[redselector balancespace upmark|balancespace downmark]\ndown [down redselector balancespace | balancespace] -> down[redselector balancespace downmark|balancespace upmark]\n\n(marking for connection in imbalance)\nright [right redselector imbalancespace | imbalancespace] -> right[redselector imbalancespace rightmark|imbalancespace rightmark]\nleft [left redselector imbalancespace | imbalancespace] -> left[redselector imbalancespace leftmark|imbalancespace leftmark]\nup [up redselector imbalancespace | imbalancespace] -> up[redselector imbalancespace upmark|imbalancespace upmark]\ndown [down redselector imbalancespace | imbalancespace] -> down[redselector imbalancespace downmark|imbalancespace downmark]\n\n(marking for connection in imbalance random)\nright [right redselector imbalancespacerandom | imbalancespacerandom] -> right[redselector imbalancespacerandom rightmark|imbalancespacerandom random direction]\nleft [left redselector imbalancespacerandom | imbalancespacerandom] -> left[redselector imbalancespacerandom leftmark|imbalancespacerandom random direction]\nup [up redselector imbalancespacerandom | imbalancespacerandom] -> up[redselector imbalancespacerandom upmark|imbalancespacerandom random direction]\ndown [down redselector imbalancespacerandom | imbalancespacerandom] -> down[redselector imbalancespacerandom downmark|imbalancespacerandom random direction]\n\n\n(making connection)\n[puzzlespace leftmark no 1left] -> [puzzlespace 1left countup]\n[puzzlespace leftmark 1left] -> [puzzlespace no 1left countdown]\n[puzzlespace rightmark no 1right] -> [puzzlespace 1right countup]\n[puzzlespace rightmark 1right] -> [puzzlespace no 1right countdown]\n[puzzlespace upmark no 1up] -> [puzzlespace 1up countup]\n[puzzlespace upmark 1up] -> [puzzlespace no 1up countdown]\n[puzzlespace downmark no 1down] -> [puzzlespace 1down countup]\n[puzzlespace downmark 1down] -> [puzzlespace no 1down countdown]\n\n(changing the count)\n[count0 countup] -> [count1 change]\n[count1 countup] -> [count2 change]\n[count2 countup] -> [count3 change]\n[count3 countup] -> [count4 change]\n[count4 countdown] -> [count3 change]\n[count3 countdown] -> [count2 change]\n[count2 countdown] -> [count1 change]\n[count1 countdown] -> [count0 change]\n\n(good and bad)\n\n[change numbere] -> [change numberewrong]\n[change numbero] -> [change numberowrong]\n[change good] -> [wrong]\n\n\n[count1 goal1 no goodtemp] -> [count1 goal1 good]\n[count2 goal2 no goodtemp] -> [count2 goal2 good]\n[count3 goal3 no goodtemp] -> [count3 goal3 good]\n[count4 goal4 no goodtemp] -> [count4 goal4 good]\n[count0 goal0 no goodtemp] -> [count0 goal0 good]\n[numberQ no goodtemp] -> [numberQ good]\n\n[count1 goalo no goodtemp numberowrong] -> [count1 goalo good numbero]\n[count2 goale no goodtemp numberewrong] -> [count2 goale good numbere]\n[count3 goalo no goodtemp numberowrong] -> [count3 goalo good numbero]\n[count4 goale no goodtemp numberewrong] -> [count4 goale good numbere]\n[count0 goale no goodtemp numberewrong] -> [count0 goale good numbere]\n\n\n(Chain)\n[chain] -> []\n\n[chainstarttemp | light] -> [chainstart | light]\n[chainstart | dark] -> [chainstarttemp | dark]\n[chaingoaltemp | light] -> [chaingoal | light]\n[chaingoal | dark] -> [chaingoaltemp | dark]\n\n[chainstart | puzzlespace] -> [chainstart | puzzlespace chain]\n[chainstart | imbalancespace] -> [chainstart | imbalancespace chain]\n[chainstart | imbalancespacerandom] -> [chainstart | imbalancespacerandom chain]\n\nstartloop\n\nright [chain 1right | ] -> [chain 1right | chain]\nleft [chain 1left | ] -> [chain 1left | chain]\nup [chain 1up | ] -> [chain 1up | chain]\ndown [chain 1down | ] -> [chain 1down | chain]\n\nendloop\n\n[chain | chaingoal] -> [chain | chaingoal chain]\n\n[mark no man] -> []\n[drawmark] -> []\n[drawmarknegative] -> []\n[drawchange] -> []\n\n(chacking for solution)\nhorizontal[puzzlestartbad|dark|...|puzzletilewrong] -> [puzzlestartbad|dark|...|puzzletilewrong mark]\nhorizontal[puzzlestartbad|...|puzzletilewrong] [chaingoal no chain] -> [puzzlestartbad|...|puzzletilewrong mark] [chaingoal no chain] \nhorizontal[puzzlestartbad|...|puzzletilewrong] [wrong] -> [puzzlestartbad|...|puzzletilewrong mark] [wrong]\n\nhorizontal[puzzletilewrongnorm no mark|...|puzzlestartbad] -> [puzzletilegoodnorm|...|puzzlestartgood]\nhorizontal[puzzletilewronghidden no mark|...|puzzlestartbad] -> [puzzletilegoodhidden|...|puzzlestartgood]\n\nup [puzzletilegood||||] -> [puzzletilegood||||basementprogressmark]\nleft [puzzletilegood||] -> [puzzletilegood||basementprogressmark]\n[basementprogressmark|basementstairsdownblocked] -> [basementprogressmark|towerstairsdown2]\n\n(messages)\n[man floor1mesage messagemarkup] -> [man floor2mesage] message Floor 2\n[man floor2mesage messagemarkup] -> [man floor3mesage] message Floor 3\n[man floor3mesage messagemarkup] -> [man floor4mesage] message Floor 4\n[man floor4mesage messagemarkup] -> [man floor5mesage] message Floor 5\n[man floor5mesage messagemarkup] -> [man floor6mesage] message Floor 6\n[man floor6mesage messagemarkup] -> [man floor7mesage] message Floor 7\n[man floor7mesage messagemarkup] -> [man floor8mesage] message Floor 8\n[man floor8mesage messagemarkup] -> [man floor9mesage] message Rooftop Garden\n[man floor9mesage messagemarkdown] -> [man floor8mesage] message Floor 8\n[man floor8mesage messagemarkdown] -> [man floor7mesage] message Floor 7\n[man floor7mesage messagemarkdown] -> [man floor6mesage] message Floor 6\n[man floor6mesage messagemarkdown] -> [man floor5mesage] message Floor 5\n[man floor5mesage messagemarkdown] -> [man floor4mesage] message Floor 4\n[man floor4mesage messagemarkdown] -> [man floor3mesage] message Floor 3\n[man floor3mesage messagemarkdown] -> [man floor2mesage] message Floor 2\n[man floor2mesage messagemarkdown] -> [man floor1mesage] message Floor 1\n[man floor1mesage messagemarkdown] -> [man floor0mesage]\n[man floor0mesage messagemarkdown] -> [man bfloor1mesage] message Basement Floor 1\n[man bfloor1mesage messagemarkdown] -> [man bfloor2mesage] message Basement Floor 2\n[man bfloor2mesage messagemarkdown] -> [man bfloor3mesage] message Basement Floor 3\n[man bfloor3mesage messagemarkdown] -> [man bfloor4mesage] message Basement Floor 4\n[man bfloor4mesage messagemarkdown] -> [man bfloor5mesage] message Basement Floor 5\n[man bfloor5mesage messagemarkdown] -> [man bfloor6mesage] message Basement Floor 6\n[man bfloor6mesage messagemarkdown] -> [man bfloor7mesage] message Basement Floor 7\n[man bfloor7mesage messagemarkdown] -> [man bfloor8mesage] message Basement Floor 8\n[man bfloor8mesage messagemarkdown] [drawingboard] -> [man bfloor9mesage] [drawingboard clear]\n[man bfloor9mesage messagemarkup] -> [man bfloor8mesage] message Basement Floor 8\n[man bfloor8mesage messagemarkup] -> [man bfloor7mesage] message Basement Floor 7\n[man bfloor7mesage messagemarkup] -> [man bfloor6mesage] message Basement Floor 6\n[man bfloor6mesage messagemarkup] -> [man bfloor5mesage] message Basement Floor 5\n[man bfloor5mesage messagemarkup] -> [man bfloor4mesage] message Basement Floor 4\n[man bfloor4mesage messagemarkup] -> [man bfloor3mesage] message Basement Floor 3\n[man bfloor3mesage messagemarkup] -> [man bfloor2mesage] message Basement Floor 2\n[man bfloor2mesage messagemarkup] -> [man bfloor1mesage] message Basement Floor 1\n[man bfloor1mesage messagemarkup] -> [man floor0mesage]\n[man floor0mesage messagemarkup] -> [man floor1mesage] message Floor 1\n\n[drawingboard clear| drawingboard] -> [drawingboard clear| drawingboard clear]\n\n[drawright clear] -> [clear]\n[drawup clear] -> [clear]\n[drawdown clear] -> [clear]\n[clear] -> [count0]\n\n(end)\nright[bloom21|] -> [bloom21|bloomend1]\n\nright[bloom17|] -> [bloom17|bloom18]\nright[bloom20|] -> [bloom20|bloom21] again\n\nright[bloom12|] -> [bloom12|bloom13]\nright[bloom16|] -> [bloom16|bloom17]\nright[bloom19|] -> [bloom19|bloom20] again\n\nright[bloom7|] -> [bloom7|bloom8]\nright[bloom11|] -> [bloom11|bloom12]\nright[bloom15|] -> [bloom15|bloom16]\ndown[bloom15|] -> [bloom15|bloom19 again]\n\nright[bloom6|] -> [bloom6|bloom7]\nright[bloom10|] -> [bloom10|bloom11]\nright[bloom14|] -> [bloom14|bloom15] again\n\nright[bloom2|] -> [bloom2|bloom3]\nright[bloom5|] -> [bloom5|bloom6]\nright[bloom9|] -> [bloom9|bloom10]\ndown[bloom9|] -> [bloom9|bloom14] again\n\nright[bloom1|] -> [bloom1|bloom2]\nright[bloom4|] -> [bloom4|bloom5]\ndown[bloom4|] -> [bloom4|bloom9] again\n\nright[bloomstart|] -> [bloomstart|bloom1]\ndown[bloomstart|] -> [bloomstart|bloom4] again\n\n[action bloomend1] -> [bloomend]\n\n\n==============\nWINCONDITIONS\n==============\n\n\nAll end on puzzlestartgood\n\nAll target on bloomend\n\n======= \nLEVELS\n=======\n\n###########&&&%%%%%&&&###########\n###########&&%⤫⤫⤫⤫⤫%&&###########\n###########&%kk'''kk%&###########\n###########%⤫kkk'kkk⤫%###########\n###########'⤫kkk'kkk⤫'###########\n###########'⤫'k''/k'⤫'###########\n###########'⤫'kkkkk'⤫'###########\n###########%⤫'/'''''⤫%###########\n###########q%''''↓''%q###########\n###########ww%⤫⤫⤫⤫⤫%ww###########\n###########qqq%%%%%qqq###########\n###########___%%%%%___###########\n##@###@####__%,,,,,%__###@###@###\n##221222###_%,[,{,,[%_##1221122##\n#y222222@##%[⅝,,[,,,[%##2302221@#\n#£122132###,[,[[[l,,,,#*2323121##\n##221212###,{,,,[[↉,{,##1241222y#\n#*222222@##,[[[,[[[[,,##13202?3£#\n##222232###%,,[↓/,,,,%##12?3222##\n##233212###_%,{[[↥,,%_#@2202232@#\n######@####__%,[,,[%__##2??2321##\n###########___%%%%%___###@###@###\n###########___%%%%%___###########\n###########__%,,,,,%__###########\n###########_%,,,l,,,%_######⸝####\n###########%,,⥁,,,{,,%###02110###\n###########,,,,{,{,,l,###22032###\n###########,,,,,¢,,,,,###23140y##\n###########,,,,{,{,,,,###10211###\n###########%,,{↥,↓{,,%###02100###\n###########_%,,,l,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########&&&&&&&&&&&###########\n###########&&&&&&&&&&&#####@#####\n###########&&+&&+&&+&&##22?2212@#\n###########&&&&&&&&&&&#@2101222##\n###########&&&&&&&&&&&##2222222##\n###########&&&&&&&&&&&##2212422*#\n###########&&&'''''&&&#@2220202£#\n###########&&&''⅐''&&&##222?222y#\n###########&&&'''''&&&#######@###\n###########&&&'''''&&&###########\n###########___c'''c___###########\n###########___c'''c___###########\n###########__%,,,,,%__###########\n#####*#####_%,l,,,,,%_###########\n##y13121###%,,,,⅚,,,,%###0220:###\n##£23232@##[[[,,,,,[[[###2222####\n###o3?33###,l,,,,,,,,ᵶ##@2222y###\n###12222###///,,l,,///###0220####\n###12121@##%,,,↓[↥,,,%#####*#####\n###@#######_%,l,,,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########___%%%%%___#######@###\n###########__%,⅜,[,%__###21?22y##\n###########_%,,,/l,,%_##@21022£##\n#####@#####%,,,,,,,,,%###23?22###\n###y11?####,,,,[,⅘,,,,###23023@##\n###*223####,,,,,/,,,,,##*12?11###\n####?32####,l,,,,,,,,,###########\n###########%,,,↥,↓,,,%###########\n###########_%,,l/,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########&&&&&&&&&&&###########\n###########&+&&&&&&&&&###########\n###########&&&&&&&&&&&###########\n###########&&&&&+&&&&&###@#!#####\n###########&&&&&&&&&&&###2221@###\n###########&&&&&&&&&&&###3221####\n###########&&&'''''&&&###3221####\n###########+&&''¥''&&&##@2221y###\n###########&&&'''''&&&#####*#####\n###########&&&'''''&&&###########\n###########___c'''c___###########\n###########___c'''c___###########\n#######@###__%,,,,,%__###########\n###*e2o1###_%,,,/,,,%_####@######\n####2o3o###%,,/,,,/,,%###e1321*##\n###yo1e1###,,⅗,,,,,,,,###2e232###\n###£2e3o@##,l,,,,,,⅖,,###21oe1y##\n####o3e2###,,,,,,,,l,,###1e3oo£##\n####@######%,,,↓/↥,,,%##@2o112###\n###########_%,,,l,,,%_#######@###\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########___%%%%%___###########\n###########__%/,,,,%__######@####\n###########_%/,,,,l,%_####e211@##\n######@####%,[⅔,,,/,,%####2432y##\n###@2oe####,,,[,,,,/,,###@133e£##\n###yee3####,,,,,l,⅛[,,####1212###\n####12o@###,l,,,,,[l,,#####*#####\n####*######%,,,↥,↓,,,%###########\n###########_%,,,,,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########&&&&&&&&&&&###########\n####@##@###&&&&&&&&+&&###########\n###122221##&&+&&&&&&&&###########\n###112132@#&&&&&&&&&&&###########\n##*222022##&&&&&&&&&&&###########\n###230232##&&&&&&&&&&&###########\n##£232331@#&&&'''''&&+###########\n##y222121##&&&''⅙''&&&###########\n####@##@###&&&'''''&&&###########\n###########&&&'''''&&&###########\n###########___c'''c___###########\n###########___c'''c___###########\n###########__%,,,,,%__###########\n####*######_%,,l,,,,%_###########\n##y22221@##%,⅕[,,,,,,%###1222####\n##£23232###,,,,,,l,,,,##@2331####\n###12212###,,l,,,,,,,,###2332£###\n###22421###,,,,,x,,,,,###1212y###\n###12221@##%,,,↓/↥,l,%####*######\n###@##@####_%,,,,,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########___%%%%%___###########\n###########__%,,,,,%__###########\n#####*#####_%,,l,,,,%_###########\n###12321###%x/,,,,,/,%##@22200y##\n##y12321###,,,,,,x,,l,###20201£##\n###@###@###,l,,,,,,,,,###22323###\n###########,,,,,,,,,,,###02101###\n###########%,,,↥/,,,,%###02100###\n###y121####_%xl,,,,,%_####*######\n###########__%,,,,,%__###########\n###########___%ttt%___###########\n.......$qqqqqqqqqqqqqqqqq$...~~~~\n..---...$$wwwwwwwwwwwww$$...~~~~~\n..-.......$$$qq⥏⥏⥏qq$$$....``````\n.............$$...$$.......```꠸``\n................z..........`h````\n................z...........z....\n............-...z...........z....\n...zzzzzzzzzzzzzzzzzzzzzzzzzz....\n...p....--............---........\n...z.........................--..\n...---...........................\nmmmmmmmmmmmmmmrmmmmmmm___________\nmmmmmmmmmmmmmmmmmmmmmm___________\nmmmmmmmmmmmmuiuuiuuuua___________\nmmmmmmmmmmmmuuiuuiuuum___________\nmiuiuᵽmmmmmmiffsssffim_\"\"\"\"\"\"____\nᶃuiuuummmmmmugjfsfjgumn;;;;;;____\nmmmmmmmmmmmmifjfsfjfum_\"\"\"\"\"\"____\nmmmmmmmmmmmmusfsssfsum____\"\"\"____\nmmmmmmmmmmmmusfffffsum____\"\"\"____\nmmmmmmmmmmmmuuuiuuiuiÐ____\"\"\"____\nmmmmmmmmmmmmmhmmmmmmmm____\"b\"____\n###########__%\"\";\"\"%__###########\n###########_%\"[⅑;\"]\"%_###@#######\n####@######%\"\"\"\"x\"\"\"\"%###2167y###\n###2167####\"/\"\"\";\"\"\"\\\"###3278£###\n##@3388*###\"\"\"\"\";\"\"\"\"\"###1276@###\n##y8888####;;;;;x;;;;n#####*#####\n##£7667####\"\"\"\"\";\"\"\"\"\"###########\n#####@#####\"/\"\"\";\"\"\"\\\"###########\n###########%\"\"\"\";\"\"\"\"%###########\n###########_%\"[\";\"]\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"↥;⅒\"\"%_###########\n###########%/\"\"\";\"\"\"{%######@####\n###########\"\"\"\"\";\"\"\"\"\"##@1232####\n###########\"\"\"]\";\"\\\"\"\"###3232*###\n###########\"\"\"\"\"x\"\"\"\"\"###2332y###\n###########\"\"\"/\";\"[\"\"\"##@7878£###\n###########\"\"\"\"\";\"\"\"\"\"###7876####\n###########%{\"\"\";\"\"\"\\%######@####\n###########_%\"\"\";\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"[⅞\"↥/\"%_###########\n###########%\"\"\"\"\"\"\"\"\"%###@###*###\n###########\"/\"\"\"\"\"\"\"\\\"###28677###\n###########\"\"\"\"\"\"\"\"\"\"\"###33892###\n###########\"\"\"\"\"x\"\"\"\"\"##@20731y##\n###########\"\"\"\"\"\"\"\"\"\"\"###37533£##\n###########\"[\"\"\"\"\"\"\"]\"###78782###\n###########%\"\"\"\"\"\"\"\"\"%###@###@###\n###########_%\"]\"\"\"\\\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"↥\"⥊\"\"%_###########\n###########%/\"]\"\"\"/\"/%###@#######\n###########\"\"\"\"\"\"\"\"\"\"\"###6866@###\n###########\"/\"\"\"\"\"\"\"]\"###6383####\n###########\"\"\"\"\"x\"\"\"\"\"##*8886y###\n###########\"]\"\"\"\"\"\"\"/\"###6181£###\n###########\"\"\"\"\"\"\"\"\"\"\"#####@#####\n###########%/\"/\"\"\"]\"/%###########\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"⥋\"↥\"\"%_###########\n###########%\"\"/\"\"\"{\"\"%###@#######\n###########\"[\"\"\"{\"\"\"/\"###2332@###\n###########\"\"\"\"\"\"\"\"\"\"\"###2222####\n###########;;;;;x;;;;;###7777y###\n###########\"\"\"\"\"\"\"\"\"\"\"##*7667£###\n###########\"{\"\"\"[\"\"\"/\"######@####\n###########%\"\"/\"\"\"[\"\"%###########\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"↥\"⥌\"\"%_#####@#####\n###########%\"\"\"\"\"\"\"\"\"%##222777###\n###########\"\"/[\"\"\"{\\\"\"#@343656###\n###########\"\"\"\"{\"]\"\"\"\"##222777###\n###########\"\"\"\"\"x\"\"\"\"\"##777777y##\n###########\"\"\"\"[\"{\"\"\"\"##656898£##\n###########\"\"/{\"\"\"]\\\"\"##777777###\n###########%\"\"\"\"\"\"\"\"\"%##*####@###\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"⥍\"↥\"\"%_###########\n###########%\"\"\"\"\"\"\"\"\"%######⸝####\n###########\"\"\"}\"\"\"}\"\"\"###00220###\n###########\"\"\"\"}\"}\"\"\"\"###14231###\n###########\"\"\"\"\"¢\"\"\"\"\"###11303y##\n###########\"\"\"\"}\"}\"\"\"\"###02410###\n###########\"\"\"{\"\"\"}\"\"\"###00210###\n###########%\"\"\"\"\"\"\"\"\"%###########\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\\↥\"⥎]\"%_###########\n##y6866*###%\"\"\"\"\"\"\"ᵹ\"%###########\n##£7777####\"/\"\"\"\"\"\"\"]\"###########\n###8687####\"\"\"\"\"\"\"\"\"\"\"######⸝####\n##@8797####\"\"\"\"\"\"\"\"\"\"\"###12332###\n###7676####\"\"\"\"\"\"\"\"\"\"\"###32121###\n###########\"[\"\"\"\"\"\"\"\\\"###12342###\n###########%\"x\"\"\"\"\"\"\"%###12221y##\n###########_%\"[\"\"\"/\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"\"\"↥\"\"%_###########\n###########%{\"\"\"\"\"\"\"{%###########\n###########\"\"\"\"\"\"\"kk\"\"###57875###\n###########\"\"\"kk\"\"\"k\"\"###79997###\n########ᵹ##\"\"\"kk\"kk\"\"\"###89998ᵯ##\n###########\"\"k\"\"\"kk\"\"\"###79997£##\n###########\"\"kk\"\"\"\"\"\"\"###57875###\n###########%{\"\"\"\"\"\"\"{%###########\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n\n\n###########\n###########\n###########\n###►¤¤¤┰###\n###¤¤¤¤¤###\n###¤¤¤¤¤###\n###¤¤¤¤¤###\n###┰¤¤¤◄###\n###########\n###########\n###########\n\nmessage Rose\nmessage By Jared Piers\n\n\n",[0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,1,1,4,3,3,4,1,4,3,1,4,3,1,1,1,1,4,1,1,4,3],"background darkbarrier 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,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,\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,\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,\nbackground ground1:1,background ground3:2,1,background ground2:3,1,1,1,2,1,3,2,background housewallintdown:4,4,background housewallintright:5,5,5,background hiddendoor hiddenmesage:6,4,4,4,4,4,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,\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,\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,\n0,0,0,background dark puzzlestartbadnorm:7,background clearspace:8,0,background chainstarttemp wall:9,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background ground3 puddlecornertl:10,background ground1 puddleleft:11,11,background ground1 puddlecornerbl:12,1,2,1,2,2,3,3,\n4,4,background housewallinttop:13,13,background housefloor1:14,background housefloornorm:15,4,4,4,4,4,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background chaingoaltemp wall:16,background balancespace count0 dark goal2 number2 wrongtemp:17,17,background balancespace count0 dark goal1 number1 wrongtemp:18,17,17,17,17,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,7,8,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,8,7,0,0,0,0,0,0,7,8,0,0,0,0,0,0,\n0,0,0,0,7,0,0,0,0,0,0,background ground1 puddletop:19,background puddlecenter:20,20,background ground1 puddlebottom:21,1,3,3,2,2,background ground2 puddlecornertl:22,11,background housewallintdown puddlecornerbl:23,4,13,13,15,background housefloor2:24,4,4,4,4,4,\n0,0,0,0,16,7,8,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,0,16,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,17,17,17,17,17,17,background balancespace count0 dark goal3 number3 wrongtemp:25,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,18,17,background balancespace count0 dark goalo numberowrong wrongtemp:26,18,18,16,0,0,0,0,0,0,7,9,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,7,8,0,0,0,0,0,0,0,0,0,16,7,0,0,0,0,0,\n0,0,18,18,17,17,17,17,0,0,0,0,0,0,17,17,18,17,18,16,0,0,0,0,0,18,18,16,0,0,background dark puzzlestartgood:27,0,0,\n19,20,background ground3 puddleright:28,background ground1 puddlecornerbr:29,3,3,2,background ground2 pathrightbend:30,background pathvert:31,background ground3 pathvert puddletop:32,20,background housewallintdown puddlebottom:33,4,13,13,14,15,4,4,4,4,4,0,0,0,17,25,background balancespace blocker count0 dark goal3 wrongtemp:34,background balancespace blocker count0 dark goal2 wrongtemp:35,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,\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,\n0,0,background balancespace blocker count0 dark goal1 wrongtemp:36,35,34,34,35,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,18,17,17,18,17,17,25,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,25,25,25,17,17,0,0,0,0,0,0,0,18,17,background balancespace count0 dark goodtemp numberq:37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background balancespace count0 dark goale goodtemp numbere:38,17,26,17,26,16,0,0,0,0,0,0,0,17,38,18,9,0,0,0,0,16,17,18,17,25,25,17,16,0,0,\n0,0,9,17,25,17,17,17,0,0,0,0,0,0,17,17,0,0,0,1right background balancespace count1 dark goal1 goodtemp number1:39,0,0,19,20,background ground2 puddlebottom:40,1,1,1,2,background ground1 pathhoriz:41,3,background ground3 puddletop:42,20,\n33,4,13,13,15,15,4,4,4,4,4,0,0,16,18,25,34,36,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,35,36,35,36,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,17,17,18,17,17,17,17,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,9,18,17,37,17,18,0,0,0,\n0,0,0,16,18,17,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,26,18,38,25,0,0,0,0,\n0,0,0,0,26,38,17,0,0,0,0,0,0,17,17,17,background balancespace count0 dark goal0 goodtemp number0:43,17,17,0,0,0,0,0,0,17,17,17,background balancespace count0 dark goal4 number4 wrongtemp:44,17,0,0,0,\n0,0,9,25,25,0,0,0,1left 1right background balancespace count2 dark goal2 goodtemp number2:45,0,0,background ground2 puddlecornertr:46,background ground2 puddleright:47,background ground3 puddlecornerbr:48,1,2,1,2,background ground3 pathhoriz:49,3,42,20,33,4,13,13,background balancemesagefinal housefloornorm puzzletilewrongend:50,15,4,4,4,4,4,\n0,0,0,36,34,34,36,16,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,36,35,34,background balancespace blocker count0 dark goal4 wrongtemp:51,35,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,16,17,17,25,18,17,25,18,16,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,17,25,25,17,17,0,0,0,0,0,0,0,37,25,17,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,26,25,38,25,38,0,0,0,0,0,0,0,16,38,25,26,0,0,0,0,\n0,0,17,18,43,17,25,18,0,0,0,0,0,0,17,25,18,17,17,16,0,0,0,0,0,17,17,0,0,0,1left background balancespace count1 dark goal1 goodtemp number1:52,0,0,\n3,3,1,3,2,2,2,41,2,background ground3 puddlecornertr:53,47,background housewallintdown puddlecornerbr:54,4,background housewallintleft:55,55,55,55,4,4,4,4,4,0,0,0,35,34,34,35,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,\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,\n0,0,36,35,35,35,36,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,17,17,17,17,17,17,17,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,18,17,25,17,18,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,16,18,26,18,26,17,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,16,17,25,17,25,25,17,16,0,0,\n0,0,0,18,17,17,18,18,0,0,0,0,0,0,18,18,16,0,0,0,0,0,background towerbaseleft:56,1,2,3,3,1,2,background ground1 pathhoriz puddlecornertl:57,background ground3 puddleleft:58,12,2,\n4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,9,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,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,16,0,0,16,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,16,0,0,16,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,16,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,18,17,17,17,18,18,0,0,0,0,0,0,16,0,0,0,16,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,background towerwall1left:59,56,1,1,1,1,3,background ground3 pathhoriz puddletop:60,20,background ground3 puddlebottom:61,3,4,4,4,4,4,4,4,4,4,4,4,\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,\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,\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,background basementtile mark puzzletilewronghidden:62,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,\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,\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,\n0,0,0,16,0,0,16,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,\nbackground towerwall1:63,background towerbase:64,3,2,2,3,3,60,20,61,3,4,4,4,4,4,4,4,4,4,4,4,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,\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,\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,\n0,0,background darkbarrier towerwallintlefttop wall:65,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,65,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background darkbarrier highpuddletopleft2 wall:66,background darkbarrier highpuddlebottomleft1 wall:67,0,0,0,\n0,0,65,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,65,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,0,0,0,59,background towerwall2left:68,56,2,3,2,1,background ground3 pathhoriz puddlecornertr:69,28,48,3,\n4,4,4,4,4,4,4,4,4,4,4,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,background highground3:70,background highground1:71,background towerbalconytopleftroof:72,background halftiletopleft towerbalconyleftroof:73,background towertileoutside:74,74,74,background halftilebottomleft towerwall2left:75,59,68,59,background physicalwall:76,background physicalwall towerwallintlefttop:77,background physicalwall towerwallintleftmid:78,background towerwallintleft:79,background towertile:80,80,80,background towerwallbottomleft:81,76,76,76,\n76,77,78,79,80,80,80,81,76,76,76,70,background highground2:82,71,71,70,71,71,70,82,82,76,76,77,78,background towerpillartop1 towerwallintleft:83,background towerpillar1 towertile:84,background towerpillartop2 towertile:85,background towerpillar2 towertile:86,81,76,76,76,\n76,77,78,79,80,80,80,81,76,76,76,background highpuddletopleft2:87,background highpuddlebottomleft2:88,71,82,71,71,background highpuddletopright1:89,background highpuddlebottomright:90,82,82,76,76,77,78,79,80,80,80,81,76,76,76,\n76,77,78,79,80,80,80,81,76,76,76,82,82,70,82,70,70,70,82,71,82,76,76,77,78,79,80,80,80,81,76,76,76,\n76,77,78,79,80,80,80,81,background basementprogressmark physicalwall:91,76,76,63,background towerwall2:92,64,1,1,10,background ground2 puddleleft:93,background ground1 pathhoriz puddlecornerbl:94,1,3,1,5,5,5,5,5,5,5,5,5,5,4,\nbackground basementwalllefttop:95,background basementwallleftmid:96,background basementwallleft:97,background basementtile:98,98,background basementlinetile:99,98,98,background basementwallbottomleft:100,background basementphysicalwall:101,101,95,96,97,98,98,98,98,98,100,101,101,95,96,97,98,98,98,98,98,100,101,101,\n95,96,97,98,98,98,98,98,100,101,101,95,96,97,98,98,99,98,98,100,101,101,95,96,97,98,98,98,98,98,100,101,101,\n95,96,97,98,98,98,98,98,100,101,101,95,96,97,98,98,98,98,98,100,101,101,95,96,97,98,98,98,98,98,100,101,101,\n82,72,73,background rosetile1 towertileoutside:102,background dirttile rosetile1 towertileoutside:103,103,background dirttile rosetile2 towertileoutside:104,102,background halftilebottomleft towerwall1left:105,68,59,77,78,83,background towerpillar1 towerpillartop3 towertile:106,background towerpillar1 towerpillarmid3 towertile:107,background towerpillar3 towerpillartop1 towertile:108,84,80,81,76,76,77,78,79,80,80,80,80,80,81,76,76,\n71,87,88,82,82,70,82,71,71,71,76,77,78,79,background towerpillartop1 towertile:109,84,background towerpillartop2 towertilecrack3:110,86,80,81,76,76,77,78,79,80,80,80,background towertilecrack2:111,80,81,76,76,\n89,90,82,71,82,82,70,82,82,82,76,77,78,79,80,80,111,80,80,81,76,76,77,78,79,80,80,80,111,80,81,76,76,\n82,background highpuddletopleft1:112,88,71,71,70,70,71,70,71,76,77,78,79,80,80,80,80,80,81,76,76,77,78,background puzzlepanel towerwallintleft:113,background mark puzzletilewrongnorm towertile:114,80,111,80,80,81,76,76,\n63,92,64,1,1,background ground2 puddletop:115,20,background ground1 pathhoriz puddlebottom:116,2,3,3,13,13,15,15,24,15,24,15,15,15,4,96,97,background basementpillartop2 basementtile:117,background basementpillar2 basementtile:118,98,99,117,118,98,100,background basementphysicalwallperm:119,\n96,background basementpillartop2 basementwallleft:120,118,98,98,98,background basementpillartop3 basementtile:121,background basementpillarmid3 basementtile:122,background basementpillar3 basementtile:123,100,119,96,97,117,118,98,98,98,background basementpillar1 basementtile:124,98,100,119,96,120,118,117,118,98,background basementpillar5 basementtile:125,117,118,100,119,\n96,97,98,124,98,background basementlinetile basementpillartop3:126,122,123,98,100,119,96,97,98,98,98,98,98,98,98,100,119,96,97,98,98,98,98,98,98,98,100,119,\n96,97,117,118,98,98,98,124,98,100,119,background basementpillartop3 basementwallleftmid:127,background basementpillarmid3 basementwallleft:128,123,98,98,98,121,122,123,100,119,72,73,background roofdown roofpattern roofright towertileoutside:129,background roofdown roofpattern roofright roofup towertileoutside:130,background roofpattern roofright roofup towertileoutside:131,74,74,74,74,75,59,\n78,79,background puzzlepanel towertile:132,background mark puzzle8mesage1 puzzletilewrongnorm towertile:133,80,109,84,80,80,81,76,78,79,80,80,80,80,80,80,80,81,76,82,background highpuddletopright2:134,90,82,82,background towerbalconytopleft:135,background towerbalconyleft:136,136,136,136,76,\n78,79,80,109,84,85,86,80,80,81,76,78,79,80,80,80,80,80,80,80,81,76,70,82,70,71,71,135,136,136,136,136,76,\n78,79,80,132,background mark puzzle4mesage2 puzzletilewrongnorm towertile:137,80,80,80,80,81,76,78,background towerpillartop2 towerwallintleft:138,background towerpillar2 towerpillartop1 towertile:139,84,80,80,80,80,80,81,76,82,89,90,70,71,135,136,136,136,136,76,\n78,79,132,background mark puzzle2mesage1 puzzletilewrongnorm towertile:140,80,background towertilecrack1:141,80,80,80,81,76,78,79,85,86,background basementprogressmark towertile:142,80,80,132,background puzzletilegoodnorm towertile:143,81,76,59,68,59,56,1,46,47,background ground1 pathhoriz puddlecornerbr:144,1,1,2,\n13,13,14,15,background count0 drawgoal2 drawingboardtop:145,background count0 drawgoal3 drawingboardleft:146,background count0 drawgoal2 drawingboardleft:147,background count0 drawgoal0 drawingboardleft:148,background count0 drawgoal0 drawingboarddownleft:149,15,background houseentrance:150,97,98,98,98,98,99,98,98,98,98,100,97,98,98,98,98,98,98,98,98,98,100,\n97,98,98,98,98,98,98,98,98,98,100,97,98,98,98,98,98,98,98,98,98,100,97,98,98,98,98,99,98,98,98,98,100,\n97,98,117,118,98,98,117,118,98,98,100,97,98,98,98,98,98,98,98,98,98,100,97,98,98,98,98,98,98,98,background basementtile mark puzzletilewrongnorm:151,98,100,\n97,98,98,98,98,98,background basedown basementpattern basementtile:152,background basementpattern basementtile baseright baseup:153,98,98,100,background towerbalconytop:154,background rosetile2 towertileoutside:155,background roofdown roofleft roofpattern towertileoutside:156,background roofdown roofleft roofpattern roofright roofup towertileoutside:157,157,background roofdown roofpattern roofup towertileoutside:158,background roofpattern roofright roofup towerpillartop2 towertileoutside:159,background towerpillar2 towertilehalflight:160,74,155,63,background towerwallinttop:161,109,84,109,84,109,106,107,background towerpillar3 towertile:162,80,background towerwallintbottom:163,\n161,80,background towerpillartop2special towertile:164,background towerpillar2special towertile:165,80,background towerpillartop3 towertile:166,background towerpillarmid3 towertile:167,162,80,80,163,70,82,82,70,82,154,74,74,74,74,background towerwallinttoppermanent:168,168,80,background towertilecrack3:169,80,80,80,80,80,141,80,163,\n161,80,80,80,80,80,80,80,80,80,163,82,71,70,82,70,154,74,74,74,74,168,168,80,85,86,80,80,80,80,80,80,163,\nbackground towerpillartop2 towerwallinttop:170,86,132,background mark puzzle3mesage2 puzzletilewrongnorm towerpillartop1 towertile:171,84,80,80,80,80,80,163,70,70,70,71,71,154,74,74,74,74,168,168,80,109,84,80,80,80,80,80,80,163,\n161,80,80,80,80,80,80,80,background floor1mesage manright towertilecrack2:172,80,163,63,92,63,64,1,1,3,41,3,2,1,background rose1:173,background rose6:174,15,14,145,background count0 drawgoal4 drawingboardcenter:175,175,background count0 drawgoal2 drawingboardcenter:176,background count0 drawgoal2 drawingboarddown:177,15,4,\n98,124,98,98,98,99,98,98,98,124,background basementblocktile:178,178,98,98,98,125,117,118,98,98,98,178,178,124,98,98,98,98,98,98,98,125,178,\n178,98,125,98,98,98,98,117,118,98,178,178,117,118,98,98,99,98,117,118,98,178,178,98,98,124,98,121,122,123,98,98,178,\n178,background basementpillartop6 basementtile:179,background basementpillarmid6 basementtile:180,background basementpillar6 basementtile:181,98,121,122,123,98,98,178,background basementblocktile basementpillartop4:182,background basementpillar4 basementtile:183,98,98,98,98,98,98,98,124,178,178,98,98,98,background basedown basementpattern basementtile baseright:184,153,98,background baseleft basementpattern basementtile:185,98,98,178,\n154,background rosetile3 towertileoutside:186,74,156,background roofleft roofpattern roofup towertileoutside:187,74,background roofleft roofpattern roofright towertileoutside:188,74,74,155,63,161,80,80,109,84,80,80,background towerpillartop1 towerstairsdown1:189,background towerpillar1 towerpillartop1 towertile:190,84,163,161,80,166,167,background towerpillar3 towerpillartop3 towertile:191,167,162,background towerstairsup towertile:192,80,80,163,\n71,87,88,82,71,154,74,74,74,74,74,74,background towertilehalflight:193,80,80,80,80,80,background towerstairsdown1:194,80,80,163,background puzzlepanel towerwallinttop:195,background mark puzzle5mesage2 puzzletilewrongnorm towertile:196,80,109,84,80,80,192,111,80,163,\n71,71,112,background highpuddlebottomleft1:197,82,154,74,74,74,74,74,74,193,80,80,80,80,80,194,80,80,163,161,80,80,80,80,80,80,192,80,80,163,\n82,71,70,71,70,154,74,74,74,74,74,74,193,111,80,80,80,80,194,80,80,163,161,80,141,80,80,80,80,192,80,80,background towerentrance:198,\n63,92,198,background towerentrancefront:199,1,3,1,41,1,2,3,background rose2:200,background rose7:201,15,15,background count0 drawgoal0 drawingboardtop:202,176,176,background count0 drawgoal0 drawingboardcenter:203,177,24,4,98,background basementstairsdownblocked bpuzzle2mesage:204,98,98,98,99,98,98,98,98,178,\n178,background basementtile towerstairsup:205,98,98,98,98,98,98,98,98,178,178,background bpuzzle4mesage towerstairsdown2:206,98,98,98,98,98,98,98,98,178,178,205,98,98,98,98,98,98,98,98,178,\n178,background bpuzzle6mesage towerstairsdown2:207,98,98,98,99,98,98,98,98,178,178,205,121,122,123,98,124,98,98,98,178,178,background bpuzzle8mesage towerstairsdown2:208,179,180,background basementpillar6 basementpillartop6 basementtile:209,180,181,98,98,98,178,\n178,205,98,98,98,98,98,98,98,98,178,178,98,98,98,background basedown baseleft basementpattern basementtile:210,background baseleft basementpattern basementtile baseup:211,98,98,98,98,178,154,102,74,74,74,74,188,74,74,186,63,\nbackground towerpillartop3 towerwallinttop:212,167,108,190,190,190,background towerpillar1 towerpillartop2 towertile:213,139,84,80,163,161,80,141,80,80,background puzzle1mesage2 puzzletilehidden towertile:214,80,80,169,80,163,70,134,90,71,71,154,background puzzlepanel towertileoutside:215,background mark puzzle6mesage2 puzzletilewrongnorm towertileoutside:216,74,74,74,\n74,193,132,background mark puzzle6mesage1 puzzletilewrongnorm towertile:217,80,80,background towerpillartop1 towertilecrack1:218,84,80,80,163,161,85,86,80,85,86,80,85,86,80,163,71,82,89,90,82,154,215,background imbalancemesage1 mark puzzletilewrongnorm towertileoutside:219,74,74,74,\n74,background towerpillartop2 towertilehalflight:220,86,80,80,80,85,86,111,80,163,161,80,80,80,80,141,80,80,80,80,163,71,82,71,82,70,154,215,background mark puzzle2mesage2 puzzletilewrongnorm towertileoutside:221,74,74,74,\n74,193,80,80,80,132,background mark puzzletilewrongnorm towerpillartop2 towertile:222,86,80,80,163,161,80,80,80,80,80,85,86,80,80,198,63,92,198,199,background ground1 pathend:223,background ground3 pathvert:224,background ground1 pathvert:225,background ground2 pathtri:226,2,3,3,\nbackground rose3:227,background rose8:228,24,15,202,203,203,203,177,15,4,99,99,background basementlinetile mark puzzletilewrongnorm:229,99,99,229,99,99,99,99,background basementlineblocktile:230,230,99,99,99,99,229,99,99,99,99,230,\n178,98,98,98,98,151,98,98,98,98,178,178,98,98,98,98,151,98,98,98,98,178,178,121,122,123,98,229,98,124,98,98,178,\n178,98,98,98,98,151,98,98,98,98,178,178,98,98,98,98,background basementtile puzzle1mesage2 puzzletilehidden:231,98,98,98,98,178,178,98,98,98,98,98,98,98,98,98,178,\n178,98,98,98,98,98,98,98,98,98,178,154,155,74,129,159,160,188,74,194,102,63,161,80,80,80,218,190,84,80,192,80,163,\n161,80,166,167,191,167,162,194,80,80,163,70,82,82,71,71,154,74,74,74,74,74,74,193,80,80,80,80,80,192,80,80,163,\nbackground towerpillartop1 towerwallinttop:232,84,169,132,background mark puzzle5mesage1 puzzletilewrongnorm towertile:233,80,80,194,80,80,163,71,82,71,82,71,154,74,74,74,74,74,74,193,80,80,80,80,80,192,80,80,163,\n161,80,80,80,80,80,80,194,80,80,163,70,71,71,82,70,154,74,74,74,74,74,74,193,80,80,141,80,80,192,80,80,163,\n161,80,80,132,114,80,80,80,80,80,198,63,92,198,199,1,3,1,41,3,3,1,background rose4:234,background rose9:235,15,24,202,176,176,203,177,15,4,\n98,98,98,98,98,99,98,98,98,98,178,178,background bpuzzle3mesage towerstairsdown2:236,98,98,98,98,98,98,98,98,178,178,205,98,98,98,98,98,98,98,98,178,\n178,background bpuzzle5mesage towerstairsdown2:237,98,98,98,98,98,98,98,98,178,178,205,98,98,98,99,98,98,98,98,178,178,background bpuzzle7mesage towerstairsdown2:238,98,98,background basementpillar5 basementpillartop3 basementtile:239,122,123,98,98,98,178,\n178,205,179,180,209,180,181,98,98,98,178,178,background bpuzzle9mesage towerstairsdown2:240,98,98,98,98,98,98,98,98,178,178,205,98,98,98,184,153,98,98,98,178,\n154,155,129,157,157,158,187,74,74,102,63,161,80,80,80,132,background mark puzzle8mesage2 puzzletilewrongnorm towerpillartop1 towertile:241,84,80,109,84,163,161,166,167,162,80,166,167,162,80,80,163,\n71,87,88,70,70,154,74,74,74,74,168,168,80,80,80,80,80,80,80,80,80,163,161,80,80,80,80,80,80,80,80,80,163,\n71,71,82,82,82,154,74,74,74,74,168,168,80,85,86,80,80,80,80,80,80,163,161,80,background towerpillartop2 towertilecrack2:242,86,132,background mark puzzle3mesage1 puzzletilewrongnorm towerpillartop1 towertile:243,84,80,80,80,163,\n112,88,70,71,82,154,74,74,74,74,168,168,80,80,80,80,80,80,80,80,80,163,161,80,80,80,80,80,80,80,80,80,163,\n63,92,63,64,1,1,3,49,3,2,1,background rose5:244,background rose10:245,15,15,145,175,175,176,177,24,4,98,125,98,98,98,99,98,98,98,125,178,\n178,98,98,background basementpillartop4 basementtile:246,183,98,124,98,98,98,178,background basementblocktile basementpillartop2:247,118,98,98,98,98,98,98,246,183,178,178,117,118,98,98,98,98,98,125,98,178,\nbackground basementblocktile basementpillartop3:248,122,123,98,98,99,98,98,124,98,178,178,121,122,123,98,98,98,125,98,98,178,178,179,180,181,98,179,180,181,98,98,178,\n178,125,98,98,98,98,98,98,117,118,178,178,98,98,background basementpattern basementtile baseright:249,98,210,211,98,98,98,178,background towerbalconytoprightroof:250,background halftiletopright towerbalconyrightroof:251,156,background roofdown roofleft roofpattern roofup towertileoutside:252,187,74,74,74,74,background halftilebottomright towerwall2right:253,background towerwall1right:254,\nbackground physicalwall towerwallintrightmid:255,background towerpillartop1 towerwallintright:256,84,80,80,109,84,80,80,background towerwallbottomright:257,76,255,background towerwallintright:258,80,80,80,80,80,80,80,257,76,70,89,90,70,70,background towerbalconytopright:259,background towerbalconyright:260,260,260,260,76,\n255,258,80,109,84,85,86,80,80,257,76,255,258,80,80,80,80,80,80,80,257,76,71,71,82,82,70,259,260,260,260,260,76,\n255,258,80,80,132,background mark puzzle4mesage1 puzzletilewrongnorm towertile:261,141,80,80,257,76,255,258,80,85,139,84,169,80,80,257,76,89,90,71,70,70,259,260,260,260,260,76,\n255,258,80,80,80,80,80,111,80,257,76,255,258,85,86,80,80,80,80,80,257,76,254,background towerwall2right:262,254,background towerbaseright:263,2,3,2,41,2,3,1,\n13,13,15,15,145,background count0 drawgoal3 drawingboardright:264,background count0 drawgoal2 drawingboardright:265,background count0 drawgoal0 drawingboardright:266,background count0 drawgoal0 drawingboarddownright:267,15,4,background basementwallright:268,98,98,98,98,99,98,98,98,98,background basementwallbottomright:269,268,98,98,98,98,98,98,98,98,98,269,\n268,98,98,98,98,98,98,98,98,98,269,268,98,98,98,98,98,98,98,98,98,269,268,98,98,98,98,99,98,98,98,98,269,\n268,98,246,183,98,98,246,183,98,98,269,268,98,98,98,98,98,98,98,98,98,269,268,98,62,98,98,98,98,98,98,98,269,\n268,98,98,210,background basementpattern basementtile baseup:270,98,98,98,98,98,269,71,250,251,102,background dirttile rosetile3 towertileoutside:271,104,271,186,background halftilebottomright towerwall1right:272,262,254,background physicalwall towerwallintrighttop:273,255,256,106,167,162,80,80,257,76,76,\n273,255,258,80,111,80,80,80,257,76,76,71,82,82,71,70,71,70,82,71,82,76,273,255,258,109,84,85,86,80,257,76,76,\n273,255,258,80,80,80,80,80,257,76,76,70,82,82,70,71,71,70,71,82,71,76,273,255,258,80,80,80,80,80,257,76,76,\n273,255,258,80,80,80,80,80,257,76,76,82,71,70,70,70,87,197,82,70,70,76,273,255,258,80,80,80,80,80,257,76,76,\n273,255,258,80,169,80,80,80,257,76,76,63,92,64,3,1,3,2,41,1,2,2,13,13,15,15,14,15,15,15,15,24,4,\nbackground basementwallrightmid:274,268,246,183,98,99,246,183,98,269,119,background basementpillartop3 basementwallrightmid:275,background basementpillarmid3 basementwallright:276,123,98,98,98,98,246,183,269,119,274,268,246,183,98,98,98,125,98,269,119,\n274,background basementpillartop2 basementwallright:277,118,98,125,117,118,117,118,269,119,274,268,117,118,98,99,117,118,98,269,119,274,268,98,98,98,98,98,98,98,269,119,\n274,268,98,98,98,98,98,98,98,269,119,274,268,98,125,98,98,246,183,98,269,119,275,276,123,98,98,98,121,122,123,269,119,\n71,82,250,251,74,74,74,253,254,262,254,76,273,255,258,80,80,80,257,76,76,76,76,273,255,258,80,80,80,257,76,76,76,\n82,82,82,82,82,82,71,82,70,82,76,76,273,255,256,background puzzlepanel towerpillar1 towertile:278,background imbalancemesage2 mark puzzletilewrongnorm towerpillartop2 towertile:279,86,257,76,76,76,76,273,255,258,80,80,80,257,76,76,76,\n82,82,71,71,71,70,70,70,71,70,76,76,273,255,258,80,80,80,257,76,76,76,76,273,255,258,80,80,80,257,76,76,76,\n70,70,71,82,70,134,90,82,70,71,76,76,273,255,258,80,80,80,257,76,76,76,76,273,255,258,80,80,80,257,76,76,76,\n63,92,64,3,1,2,3,background ground3 pathhoriz puddlecornertl:280,93,background ground2 puddlecornerbl:281,2,55,55,background secret:282,55,55,55,55,55,55,background housewallintleft housewallsecret:283,4,background basementwallrighttop:284,274,268,98,98,background basemententrance2 bpuzzle1mesage:285,98,98,269,101,101,\n284,274,268,98,98,98,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,\n284,274,268,98,98,99,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,\n284,274,268,98,98,98,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background darkbarrier towerwallintrighttop wall:286,0,0,0,0,0,0,0,0,0,0,286,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,286,0,0,0,0,0,0,0,0,0,0,286,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,286,0,0,0,0,0,0,0,0,0,0,286,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,286,0,0,0,0,0,0,0,0,0,0,286,0,0,0,0,0,0,0,0,254,262,263,2,2,2,3,background ground2 pathhoriz puddletop:287,20,40,1,\n101,101,101,101,101,285,101,101,101,101,101,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,\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,\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,9,0,0,0,16,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,16,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,63,64,3,3,3,1,3,287,20,40,1,101,101,101,101,98,99,98,101,101,101,101,\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,\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,16,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,18,17,17,18,18,18,17,17,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,17,17,17,17,17,17,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,16,0,0,9,0,0,0,0,0,\n0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,16,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,16,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,\n254,263,2,3,1,3,3,background ground1 pathhoriz puddletop:288,20,61,1,101,101,101,101,98,99,98,101,101,101,101,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,16,0,0,16,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,\n0,0,0,0,0,0,9,0,0,0,0,0,0,17,25,17,35,36,35,9,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,\n0,16,17,25,25,17,25,17,17,37,16,0,0,0,background blocker count0 dark goal0 goodtemp nodrawspace number0:289,background blocker count0 dark goal2 nodrawspace number2 wrongtemp:290,290,background blocker count0 dark goal1 nodrawspace number1 wrongtemp:291,289,0,0,0,0,0,17,18,17,17,17,17,0,0,0,\n0,0,0,background count0 dark goal0 goodtemp imbalancespacerandom number0:292,background count0 dark goal2 imbalancespacerandom number2 wrongtemp:293,293,292,0,0,0,0,0,17,17,17,17,18,0,0,0,0,0,0,0,0,16,background count0 dark goal2 imbalancespace number2 wrongtemp:294,background count0 dark goal3 imbalancespace number3 wrongtemp:295,295,294,0,0,0,\n0,0,0,38,17,17,18,17,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,18,17,17,18,0,0,0,0,0,0,0,17,17,17,43,43,0,0,0,263,2,3,2,3,3,3,background ground1 pathhoriz puddlecornertr:296,47,29,3,\n101,101,101,101,98,99,98,101,101,101,101,0,16,17,25,18,0,0,0,0,0,0,0,0,0,18,25,17,35,35,0,0,0,\n0,0,16,17,25,17,25,35,16,0,0,0,0,16,36,36,34,36,0,0,0,0,0,0,16,17,17,35,35,0,0,0,0,\n0,0,17,44,17,35,background balancespace blocker count0 dark goal0 goodtemp:297,35,0,0,0,0,0,0,289,291,291,289,289,0,0,0,0,0,0,0,0,291,background blocker count0 dark goal3 nodrawspace number3 wrongtemp:298,291,291,0,0,\n0,0,0,297,35,34,35,297,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,43,17,44,17,37,43,37,0,\n0,0,0,290,290,298,289,290,0,0,0,0,0,37,43,17,18,17,17,0,0,0,0,0,0,293,293,293,293,0,0,0,0,\n0,18,18,25,25,17,0,0,0,0,0,0,0,0,0,294,294,294,294,0,0,0,0,0,16,18,38,18,38,26,0,0,0,\n0,0,38,17,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,25,25,17,9,0,0,0,\n0,0,0,17,43,17,17,17,9,0,0,3,2,1,1,3,1,2,41,2,2,3,101,101,101,101,98,99,98,98,98,98,98,\n0,0,18,17,17,0,0,0,0,0,0,0,0,0,17,17,25,34,34,0,0,0,0,0,0,34,25,43,35,34,0,0,0,\n0,0,0,34,25,34,18,0,0,0,0,0,0,0,25,17,35,36,0,0,0,0,0,0,17,25,17,35,36,35,0,0,0,\n0,0,0,289,background blocker count0 dark goal4 nodrawspace number4 wrongtemp:299,291,290,289,0,0,0,0,0,0,0,0,290,290,290,290,0,0,0,0,0,35,51,51,51,35,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,18,17,25,18,43,25,17,17,0,0,0,0,291,289,291,290,291,0,0,0,\n0,16,17,18,17,17,43,37,0,0,0,0,0,0,293,293,293,293,9,0,0,0,0,37,43,37,43,37,0,0,0,0,0,\n0,0,0,background imbalance wall:300,294,294,294,294,9,0,0,0,0,0,25,17,26,25,18,0,0,0,0,0,17,44,25,17,9,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,25,25,18,0,0,0,0,0,0,0,17,17,25,18,18,0,0,0,\n2,background ground3 houseroofside:301,background housewallside:302,302,302,3,2,41,2,1,3,101,101,101,101,98,99,98,98,98,98,background basemententrance1:303,0,0,36,35,35,9,0,0,0,0,0,\n0,0,0,25,25,25,35,35,0,0,0,0,0,0,36,34,35,297,35,0,0,0,0,0,0,36,34,34,34,16,0,0,0,\n0,0,0,25,17,35,36,0,0,0,0,0,16,35,36,35,35,34,35,0,0,0,0,0,0,290,290,298,299,290,0,0,0,\n0,0,0,0,0,298,291,298,290,0,0,0,0,0,34,51,51,51,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,18,17,18,17,17,17,17,25,0,0,0,background nodraw wall:304,291,298,299,291,289,0,0,0,0,0,17,17,17,44,17,17,0,0,0,\n0,0,0,292,293,293,292,0,0,0,0,0,17,17,17,17,18,0,0,0,0,0,0,0,0,0,background count0 dark goal1 imbalancespace number1 wrongtemp:305,305,305,305,0,0,0,\n0,0,0,17,25,38,26,18,0,0,0,0,16,18,25,25,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,17,18,17,17,0,0,0,0,0,0,0,43,43,17,43,43,0,0,0,301,background houseroof:306,background housewall:307,307,150,background ground3 pathend:308,background ground2 pathvert:309,background ground1 pathupbend:310,background ground1 puddlecornertl:311,58,12,\n101,101,101,101,98,99,98,98,98,98,98,0,0,35,34,36,0,0,0,0,0,0,0,0,16,17,17,17,34,36,16,0,0,\n0,0,0,35,51,25,25,34,0,0,0,0,0,0,36,25,36,18,0,0,0,0,0,0,0,17,17,35,35,16,0,0,0,\n0,0,35,297,35,35,51,35,0,0,0,0,0,304,290,298,289,291,291,0,0,0,0,0,0,0,304,298,290,299,290,0,0,\n0,0,0,35,51,51,51,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,17,17,17,17,37,17,25,17,16,\n0,0,0,289,290,289,291,289,0,0,0,0,0,18,17,17,17,43,17,16,0,0,0,0,0,background imbalancerandom wall:312,0,7,0,0,0,0,0,\n16,17,17,17,25,18,0,0,0,0,0,0,0,0,0,16,0,0,7,0,0,0,0,0,0,18,17,18,26,17,16,0,0,\n0,0,18,17,38,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,7,0,0,0,0,\n0,0,0,43,18,25,18,43,0,0,0,306,306,307,background housewallcrack:313,307,2,1,1,42,20,40,101,101,101,101,101,101,101,101,101,101,101,\n0,0,7,8,16,0,0,0,0,0,0,0,0,0,0,9,7,8,0,0,0,0,0,0,9,35,17,18,25,17,16,0,0,\n0,0,0,16,0,7,8,0,0,0,0,0,0,0,16,0,7,8,0,0,0,0,0,0,35,36,35,35,34,35,16,0,0,\n0,0,0,289,291,298,289,289,0,0,0,0,0,0,0,0,290,291,290,291,0,0,0,0,0,297,35,34,35,297,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,17,18,18,17,25,17,17,18,0,0,0,0,0,0,7,0,0,0,0,0,\n0,0,17,17,17,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,0,16,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,7,8,0,0,0,0,0,0,16,7,8,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,7,8,0,0,0,0,0,0,\n306,306,307,background housewindow:314,307,2,2,3,42,20,21,101,101,101,101,101,101,101,101,101,101,101,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,7,8,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,7,8,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,\n0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,background balancemesagefinal2 dark end puzzlestartbadend:315,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,16,0,7,8,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,9,8,7,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,306,306,307,307,307,2,2,1,background ground1 puddlecornertr:316,47,background ground2 puddlecornerbr:317,\n101,101,101,101,101,101,101,101,101,101,101,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,\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,\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,\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,\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,\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,\n0,0,0,0,0,0,0,0,0,0,0,306,306,307,307,307,1,1,2,3,2,1,101,101,101,101,101,101,101,101,101,101,101,\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,\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,\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,\n",0,"1627779185736.9275"] + ["title Rose\nhomepage www.puzzlescript.net\nnorepeat_action\nverbose_logging\nflickscreen 11x11\ntext_color #be2633\n\nagain_interval 1\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\n\nBackground\ngrey\n\nPhysicalWall \n#1a2d38\n00000\n00000\n00000\n00000\n00000\n\nWall\n#d4ca8e \n\nmanleft\n#ff7245 #2f2f3c #3d2c29 #ff8058\n.100.\n.300.\n0222.\n.300.\n.300.\n\nmanup\n#ff7245 #2f2f3c #3d2c29 #ff8058\n.300.\n.300.\n02220\n.300.\n.300.\n\nmanright\n#ff7245 #2f2f3c #3d2c29 #ff8058\n.301.\n.300.\n.2220\n.300.\n.300.\n\nmandown\n#ff7245 #2f2f3c #3d2c29 #ff8058\n.101.\n.300.\n02220\n.300.\n.300.\n\nrosetilestart\ntransparent\n\nrosetile1\n#88b32f #be2633 \n10000\n01000\n00010\n00101\n00010\n\nrosetile2\n#88b32f #be2633 \n00000\n01000\n10100\n01000\n00000\n\nrosetile3\n#88b32f #be2633 \n00000\n00100\n01010\n00100\n00000\n\ndirttile \n#a46422 #83501b #be2633\n10100\n01010\n00101\n10010\n02021\n\nrose1\n#fce6ad #dfe989\n00000\n00000\n00000\n00001\n00001\n\nrose2\n#fce6ad #dfe989 #a3ce27\n00000\n00000\n00000\n00010\n22222\n\nrose3\n#fce6ad #dfe989 #a3ce27\n00000\n00000\n00000\n00000\n00012\n\nrose4\n#fce6ad #dfe989 #a3ce27 #be2633 #9f2436\n00000\n03334\n33343\n33433\n24333\n\nrose5\n#fce6ad #dfe989 #a3ce27 #be2633 #9f2436\n00000\n40000\n30300\n33300\n34300\n\nrose6\n#fce6ad #dfe989 #a3ce27 #88b32f\n00002\n00022\n02333\n03330\n00000\n\nrose7\n#fce6ad #dfe989 #a3ce27 #88b32f\n23332\n30003\n00000\n00000\n00000\n\nrose8\n#fce6ad #dfe989 #a3ce27 #88b32f\n20012\n22223\n13330\n10000\n00000\n\nrose9\n#fce6ad #dfe989 #a3ce27 #88b32f #be2633 #9f2436\n33445\n00554\n00000\n00000\n00000\n\nrose10\n#fce6ad #dfe989 #a3ce27 #88b32f #be2633 #9f2436\n54004\n40040\n00000\n00000\n00000\n\n(scenery - tower exterior)\npathstart\ngrey\n\npathhoriz\n#d1ccb2 #dad6c3\n11111\n00000\n00000\n00000\n11111\n\npathvert\n#d1ccb2 #dad6c3\n10001\n10001\n10001\n10001\n10001\n\npathend\n#d1ccb2 #dad6c3\n..1..\n.111.\n.101.\n10001\n10001\n\npathtri\n#d1ccb2 #dad6c3\n10001\n00000\n00000\n00000\n11111\n\npathrightbend\n#d1ccb2 #dad6c3\n..111\n.1000\n10000\n10000\n10001\n\npathupbend\n#d1ccb2 #dad6c3\n10001\n00001\n00001\n0001.\n111..\n\ngroundstart\n#c5c4be #eaeae8\n00000\n00000\n00000\n00000\n00000\n\nground1\n#c5c4be #eaeae8\n00000\n00000\n00000\n01000\n00000\n\nground2\n#c5c4be #eaeae8\n00000\n00000\n00000\n00000\n00000\n\nground3\n#c5c4be #eaeae8\n00100\n00000\n00000\n00000\n00000\n\npuddlecenter\n#b8d9e9 #d4e8f2 #c5c4be\n10101\n01010\n00000\n10101\n01010\n\npuddleleft\n#b8d9e9 #d4e8f2 #c5c4be\n.1101\n.1010\n.1000\n.1101\n.1010\n\npuddleright\n#b8d9e9 #d4e8f2 #c5c4be\n1011.\n0101.\n001..\n101..\n0101.\n\npuddletop\n#b8d9e9 #d4e8f2 #c5c4be\n.....\n11111\n00000\n10101\n01010\n\npuddlebottom\n#b8d9e9 #d4e8f2 #c5c4be\n10101\n01010\n00000\n11111\n.....\n\npuddlecornertr\n#b8d9e9 #d4e8f2 #c5c4be\n.....\n111..\n0011.\n1011.\n0101.\n\npuddlecornertl\n#b8d9e9 #d4e8f2 #c5c4be\n.....\n...11\n..100\n..101\n.1010\n\npuddlecornerbl\n#b8d9e9 #d4e8f2 #c5c4be\n..101\n...10\n...10\n....1\n.....\n\npuddlecornerbr\n#b8d9e9 #d4e8f2 #c5c4be\n1011.\n0101.\n0011.\n111..\n.....\n\nhousewall\n#fbdf98\n\nhousewallcrack\n#fbdf98 #e2d4b1\n01000\n00100\n01000\n00000\n00000\n\nhousewallside\n#fbdf98 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\nhouseroof\n#b4865a #2d303f\n00100\n01000\n10000\n00001\n00010\n\nhouseroofside\n#b4865a #bc926b #2d303f\n....1\n...10\n..110\n.1002\n11020\n\nhouseentrance\n#41555f black\n00000\n01110\n01110\n01110\n01110\n\nhousewindow\n#b7ab69 #41555f #5c7787 #4f6774\n11012\n11023\n00000\n12011\n23011\n\ntowerwall1\n#1a2d38 #86858d\n01000\n01000\n01000\n11111\n00010\n\ntowerwall2\n#1a2d38 #86858d\n00010\n00010\n00010\n11111\n01000\n\ntowerbase \n#1a2d38 #86858d \n01010\n01010\n01010\n11111\n00100\n\ntowerwall1left\n#1a2d38 #86858d #365e6b #9e9da4\n23000\n23000\n23000\n33111\n22010\n\ntowerwall2left\n#1a2d38 #86858d #365e6b #9e9da4\n22010\n22010\n22010\n33111\n23000\n\ntowerbaseleft\n#1a2d38 #86858d #365e6b #9e9da4\n23010\n23010\n23010\n33111\n22100\n\ntowerwall1right\n#1a2d38 #86858d #15242d #6b6a71\n01022\n01022\n01022\n11133\n00032\n\ntowerwall2right\n#1a2d38 #86858d #15242d #6b6a71\n00032\n00032\n00032\n11133\n01022\n\ntowerbaseright\n#1a2d38 #86858d #15242d #6b6a71\n01032\n01032\n01032\n11133\n00122\n\ntowerentrance\nblack\n\ntowerentrancefront\nblack\n\n(scenery - house interior)\n\nhousefloornorm\n#dfaa18 #c99916\n10001\n10001\n10001\n10001\n10001\n\nhousefloor1\n#dfaa18 #c99916\n10001\n10001\n11111\n10001\n10001\n\nhousefloor2\n#dfaa18 #c99916\n10001\n10001\n10001\n10001\n11111\n\nhousewallinttop\n#fce6ad\n\nhousewallintright\n#f9d371 #fce6ad\n00001\n00001\n00001\n00001\n00001\n\nhousewallintleft\n#f9d371 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\nhousewallintdown\n#f9d371\n\nhousefloorstart\ntransparent\n\nhiddendoor\n#dfaa18 #c99916\n10001\n10001\n10001\n10001\n10001\n\nhiddendoortemp\ntransparent\n\n(scenery - tower interior)\n\ntowertile\n#587ba2 #4f6e92 #7895b6 #354961 #425a78\n21111\n20003\n20003\n20003\n44443\n\ntowertilecrack\n#587ba2 #4f6e92 #7895b6 #354961 #425a78\n21111\n20003\n20003\n20003\n44443\n\ntowertilecrack1\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #a6b0bc\n21111\n20003\n20553\n25003\n44443\n\ntowertilecrack2\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #a6b0bc\n21111\n50005\n50003\n25003\n45443\n\ntowertilecrack3\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #a6b0bc\n25111\n55003\n20005\n20053\n44453\n\ntowerwallbottomleft\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #1a2d38\n51111\n55003\n55503\n55553\n55555\n\ntowerwallbottomright\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #1a2d38 #354961\n21116\n20065\n20655\n26555\n65555\n\ntowerwallinttop\n#354961 #0f1b2d\n11111\n11111\n00000\n00000\n00000\n\ntowerwallinttoppermanent\n#354961 #0f1b2d\n11111\n11111\n00000\n00000\n00000\n\ntowerwallintbottom\n#1a2d38 #354961\n11111\n00000\n00000\n00000\n00000\n\ntowerwallintleft\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #354961 #0f1b2d\n65551\n55503\n55003\n50003\n44443\n\ntowerwallintleftmid\n#354961 #0f1b2d\n00011\n00111\n01110\n11100\n11000\n\ntowerwallintlefttop\n#354961 #0f1b2d\n....0\n...00\n..000\n.0000\n00001\n\ntowerwallintright\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #354961 #0f1b2d\n25556\n20555\n20055\n20005\n44443\n\ntowerwallintrightmid\n#354961 #0f1b2d\n11000\n11100\n01110\n00111\n00011\n\ntowerwallintrighttop\n#354961 #0f1b2d\n0....\n00...\n000..\n0000.\n10000\n\ntowerpillar1\n#1d304b #b7c5c4 #8da3a2 #7c9594 #28814b #be2633\n00230\n01530\n01240\n01230\n00000\n\ntowerpillartop1\n#7c9594 \n.....\n.....\n.....\n.....\n...0.\n\ntowerpillar2\n#1d304b #b7c5c4 #8da3a2 #7c9594 #28814b\n01230\n01240\n01430\n04230\n00000\n\ntowerpillartop2\n#7baab2 #b7c5c4 #8da3a2 #7c9594 #28814b\n.....\n.1...\n.12..\n.143.\n.423.\n\ntowerpillar2special\n#1d304b #b7c5c4 #2ff5d6 #7c9594 #28814b\n01230\n01230\n01230\n01230\n00000\n\ntowerpillartop2special\n#7baab2 #b7c5c4 #2ff5d6 #7c9594 #28814b\n.....\n.1...\n.12..\n.123.\n.123.\n\ntowerpillar3\n#1d304b #b7c5c4 #2ff5d6 #7c9594 #28814b\n01230\n01230\n01230\n01230\n00000\n\ntowerpillarmid3\n#7baab2 #b7c5c4 #2ff5d6 #7c9594 #28814b\n.123.\n.123.\n.123.\n.123.\n.123.\n\ntowerpillartop3\n#7baab2 #b7c5c4 #2ff5d6 #7c9594 #6f8c82 #6e98a1\n45554\n44444\n.123.\n.123.\n.123.\n\ntowerstairsup\n#d4dcdc #a4b5b5 #b5c4c3\n....1\n...22\n..110\n.2200\n11000\n\ntowerstairsdown1\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\ntowerstairsuptemp\n#d4dcdc #a4b5b5 #b5c4c3\n....1\n...22\n..110\n.2200\n11000\n\ntowerstairsdowntemp\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\ntowerwallint\ntransparent\n\n(tower balcony)\n\ntowertilehalflight\n#829d97 #b6c6b0 #94aba6 #66827d #7693a4 #91a8b6 #526b7c #354961\n10000\n12223\n52226\n54446\n66667\n\n\ntowertileoutside\n#94aba6 #829d97 #a9bcb8 #72908a #66827d\n21111\n20004\n20004\n20004\n33334\n\ntowerbalconyleft\n#94aba6 #829d97 #72908a #66827d #deddd1 #617978 #415150\n45611\n45603\n45603\n45603\n45623\n\ntowerbalconyright\n#94aba6 #829d97 #72908a #a9bcb8 #deddd1 #617978 #415150\n31654\n30654\n30654\n30654\n22654\n\ntowerbalconytop\n#415150 #deddd1 #617978 #94aba6 #a9bcb8 #72908a #66827d\n00000\n00000\n12011\n43336\n55556\n\ntowerbalconytopright\n#415150 #deddd1 #617978 #a9bcb8 #72908a\n21111\n02111\n00211\n30021\n44021\n\ntowerbalconytopleft\n#415150 #deddd1 #617978 #66827d #72908a\n11112\n11120\n11200\n12003\n12043\n\nhighgroundstart\n#deddd1\n\nhighground1\n#deddd1 #b8d9e9\n00000\n00000\n00000\n01000\n00000\n\nhighground2\n#deddd1 #d4e8f2 #b8d9e9\n00000\n01000\n00000\n00000\n00120\n\nhighground3\n#deddd1 #d4e8f2\n00010\n00000\n10000\n00001\n00000\n\nhighpuddletopleft1\n#deddd1 #d4e8f2 #b8d9e9\n00000\n00000\n00011\n00122\n00122\n\nhighpuddletopleft2\n#deddd1 #d4e8f2 #b8d9e9\n00000\n00000\n01111\n01222\n01122\n\nhighpuddletopright1\n#deddd1 #d4e8f2 #b8d9e9\n00000\n00000\n11000\n21000\n21000\n\nhighpuddletopright2\n#deddd1 #d4e8f2 #b8d9e9\n00000\n01110\n12221\n22221\n21110\n\nhighpuddlebottomleft1\n#deddd1 #d4e8f2 #b8d9e9\n00122\n01222\n01222\n00111\n00000\n\nhighpuddlebottomleft2\n#deddd1 #d4e8f2 #b8d9e9\n00122\n00111\n00001\n00001\n00000\n\nhighpuddlebottomright\n#deddd1 #d4e8f2 #b8d9e9\n21000\n21000\n10000\n10000\n00000\n\n(tower roof)\n\nroofpattern\ntransparent\n\nroofleft\n#829d97 #99b0ab\n.....\n.....\n100..\n.....\n.....\n\nroofup\n#829d97 #72908a\n..1..\n..0..\n..0..\n.....\n.....\n\nroofright\n#829d97 #5c7571\n.....\n.....\n..001\n.....\n.....\n\nroofdown\n#829d97 #66827d\n.....\n.....\n..0..\n..0..\n..1..\n\nbasementpattern\ntransparent\n\nbaseleft\n#2e5648 #376759\n.....\n.....\n100..\n.....\n.....\n\nbaseup\n#2e5648 #294d41\n..1..\n..0..\n..0..\n.....\n.....\n\nbaseright\n#2e5648 #1c332c\n.....\n.....\n..001\n.....\n.....\n\nbasedown\n#2e5648 #233e37\n.....\n.....\n..0..\n..0..\n..1..\n\nhalftilebottomright\n#94aba6 #829d97 #a9bcb8 #8aa47f #66827d\n21111\n2000.\n200..\n20...\n3....\n\nhalftilebottomleft\n#94aba6 #829d97 #a9bcb8 #72908a #66827d\n21111\n.0004\n..004\n...04\n....4\n\nhalftiletopright\n#94aba6 #829d97 #a9bcb8 #72908a #66827d\n211..\n2000.\n20004\n20004\n33334\n\nhalftiletopleft\n#94aba6 #829d97 #a9bcb8 #72908a #66827d\n..111\n.0004\n20004\n20004\n33334\n\ntowerbalconytoprightroof\n#415150 #deddd1 #617978 #a9bcb8 #72908a\n21111\n02111\n00211\n30021\n44002\n\ntowerbalconytopleftroof\n#415150 #deddd1 #617978 #66827d #72908a\n11112\n11120\n11200\n12003\n20043\n\ntowerbalconyrightroof\n#6f90bc #6388b7 #8da9cb #5077ab #466998 #415150\n21.55\n200.5\n2000.\n20004\n33334\n\ntowerbalconyleftroof\n#6f90bc #6388b7 #8da9cb #5077ab #466998 #415150\n55.11\n5.004\n.0004\n20004\n33334\n\n(tower basement)\n\nbasemententrance\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\nbasemententrance1\n#b7c5c4 #8da3a2 #98acab #335f50 #396959 #447f6c\n33331\n54422\n54110\n52200\n11000\n\nbasemententrance2\n#a7c7c4 #91b9b5 #6ba093 #b8d2d0 #7daca8\n11112\n30002\n30002\n30002\n34444\n\nbasementstairsdown\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\nbasementstairsdowntemp\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\nbasementtile\n#396959 #335f50 #223f36 #447f6c #2b4d43\n11112\n30002\n30002\n30002\n34444\n\nbasementstairsdownblocked\n#396959 #335f50 #223f36 #447f6c #2b4d43\n11112\n30002\n30002\n30002\n34444\n\ntowerstairsdown2\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\nbasementlinetile\n#a7c7c4 #91b9b5 #6ba093 #b8d2d0 #7daca8\n11112\n30002\n30002\n30002\n34444\n\nbasementblocktile\n#396959 #335f50 #223f36 #447f6c #2b4d43\n11112\n30002\n30002\n30002\n34444\n\nbasementlineblocktile\n#a7c7c4 #91b9b5 #6ba093 #b8d2d0 #7daca8\n11112\n30002\n30002\n30002\n34444\n\nbasementwallright\n#396959 #335f50 #46826c #447f6c #2b4d43 #78b6a0\n12225\n30222\n30022\n30002\n34444\n\nbasementwallrightmid\n#46826c #78b6a0\n11000\n11100\n01110\n00111\n00011\n\nbasementwallrighttop\n#46826c #78b6a0 #12261b\n02222\n00222\n00022\n00002\n10000 \n\nbasementwallleft\n#396959 #46826c #223f36 #447f6c #2b4d43 #78b6a0\n51112\n11102\n11002\n10002\n44444\n\nbasementwallleftmid\n#46826c #78b6a0\n00011\n00111\n01110\n11100\n11000\n\nbasementwalllefttop\n#46826c #78b6a0 #12261b\n22220\n22200\n22000\n20000\n00001\n\nbasementwallbottomleft\n#396959 #335f50 #223f36 #12261b\n31112\n33002\n33302\n33332\n33333\n\nbasementwallbottomright\n#396959 #335f50 #12261b #447f6c\n11112\n30022\n30222\n32222\n22222\n\nbasementwall\ngrey\n\nbasementphysicalwall\n#12261b\n\nbasementphysicalwallperm\n#12261b\n\nbasementpillar1\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.1...\n.1...\n.12..\n.123.\n00000\n\nbasementpillar2\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n00000\n\nbasementpillartop2\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.....\n...3.\n..23.\n.123.\n.123.\n\nbasementpillar3\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n00000\n\nbasementpillarmid3\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n.123.\n\nbasementpillartop3\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.....\n.....\n.1.3.\n.123.\n.123.\n\nbasementpillar4\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n00000\n\nbasementpillartop4\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.....\n.1...\n.12..\n.123.\n.123.\n\nbasementpillar5\n#6f8c82 #d77e57 #d16b3f #c55d2f\n...3.\n...3.\n..23.\n.123.\n00000\n\nbasementpillar6\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n00000\n\nbasementpillarmid6\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n.123.\n\nbasementpillartop6\n#6f8c82 #d77e57 #d16b3f #c55d2f #6f8c82 #6e98a1\n54445\n55555\n.123.\n.123.\n.123.\n\nend\n#123456\n000..\n.000.\n..000\n...00\n....0\n\n(Drawing)\n\ndrawingboardcenter\n#ffffb3\n\ndrawingboardleft\n#ffffb3 #f7f7bb\n10000\n10000\n10000\n10000\n10000\n\ndrawingboardtop\n#ffffb3 #f7f7bb\n11111\n00000\n00000\n00000\n00000\n\ndrawingboardright\n#ffffb3 #f7f7bb\n00001\n00001\n00001\n00001\n00001\n\ndrawingboarddown\n#ffffb3 #f7f7bb\n00000\n00000\n00000\n00000\n11111\n\ndrawingboardtopleft\n#ffffb3 #f7f7bb\n11111\n10000\n10000\n10000\n10000\n\ndrawingboarddownleft\n#ffffb3 #f7f7bb\n10000\n10000\n10000\n10000\n11111\n\ndrawingboardtopright\n#ffffb3 #f7f7bb\n11111\n00001\n00001\n00001\n00001\n\ndrawingboarddownright\n#ffffb3 #f7f7bb\n00001\n00001\n00001\n00001\n11111\n\ndrawleft\n#281904\n.....\n.....\n000..\n.....\n.....\n\ndrawup\n#281904\n..0..\n..0..\n..0..\n.....\n.....\n\ndrawright\n#281904\n.....\n.....\n..000\n.....\n.....\n\ndrawdown\n#281904\n.....\n.....\n..0..\n..0..\n..0..\n\ndrawgoal0\ntransparent\n\ndrawgoal1\ntransparent\n\ndrawgoal2\ntransparent\n\ndrawgoal3\ntransparent\n\ndrawgoal4\ntransparent\n\ndrawchange\ntransparent\n\ndrawgood\ntransparent\n\ndrawwrong\ntransparent\n\n(Earth Puzzle)\n\npuzzletilewrongnorm\n#2ff5d6\n0...0\n.0.0.\n.....\n.0.0.\n0...0\n\npuzzletilewrongend\n#2ff5d6\n0...0\n.0.0.\n.....\n.0.0.\n0...0\n\npuzzletilegoodnorm\n#39f52f\n0...0\n.0.0.\n.....\n.0.0.\n0...0\n\npuzzletilewronghidden\n#3d7162 #3a6b5a #2b5146 #478572 #335c50\n31111\n30002\n30002\n30002\n44442\n\npuzzletilegoodhidden\n#386759 #3a6b5a #2b5146 #478572 #335c50\n31111\n30002\n30002\n30002\n44442\n\npuzzletilehidden\ntransparent\n\npuzzlepanel\n#d4ca8e #e5dfbb #c0b25b #27a0fc\n.....\n10002\n10302\n10002\n.....\n\npuzzlestartbadnorm\n#2ff5d6\n\npuzzlestartbadend\n#2ff5d6\n\npuzzlestartgood\n#39f52f\n\nbalancespace\n#c4cbc3\n00000\n00000\n00000\n00000\n00000\n\nnodrawspace\n#c4cbc3\n00000\n00000\n00000\n00000\n00000\n\nimbalancespace\n#c4cbc3\n00000\n00000\n00000\n00000\n00000\n\nimbalancespacerandom\n#c4cbc3\n00000\n00000\n00000\n00000\n00000\n\nclearspace\n#c4cbc3 #d11320\n10001\n01010\n00100\n01010\n10001\n\nclear\ntransparent\n\nnodraw\ntransparent\n\nimbalance\ntransparent\n\nimbalancerandom\ntransparent\n.....\n.....\n.....\n.....\n.....\n\n1left\n#71806f\n.....\n.....\n00...\n.....\n.....\n\n1up\n#71806f\n..0..\n..0..\n.....\n.....\n.....\n\n1right\n#71806f\n.....\n.....\n...00\n.....\n.....\n\n1down\n#71806f\n.....\n.....\n.....\n..0..\n..0..\n\n(Earth - selectors)\n\nselector\n#da7c7c\n00.00\n0...0\n.....\n0...0\n00.00\n\nredselector\nred\n00.00\n0...0\n.....\n0...0\n00.00\n\nnumber1\n#15ae85\n.....\n.0...\n.....\n.....\n.....\n\nnumber2\n#157bae\n.....\n.0.0.\n.....\n.....\n.....\n\nnumber3\n#1520ae\n.....\n.0.0.\n.....\n.0...\n.....\n\nnumber4\n#6615ae\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nnumberQ\n#fdfe10\n.....\n.....\n..0..\n.....\n.....\n\nnumberE\n#0fb209\n.....\n.000.\n.0.0.\n.000.\n.....\n\nnumberEwrong\n#a70f17\n.....\n.000.\n.0.0.\n.000.\n.....\n\nnumberO\n#0fb209\n.....\n.000.\n.0.0.\n.000.\n.....\n\nnumberOwrong\n#a70f17\n.....\n.000.\n.0.0.\n.000.\n.....\n\nnumber0\ntransparent\n\nGood\n#39f52f\n.....\n.....\n..0..\n.....\n.....\n\ngoodtemp\ntransparent\n\nWrong\n#d11320\n.....\n.....\n..0..\n.....\n.....\n\nblocker\nblack\n.....\n.....\n..0..\n.....\n.....\n\nwrongtemp\ntransparent\n\nchange\ntransparent\n\n(Earth - count)\n\ncount0\ntransparent\n\ncount1\ntransparent\n\ncount2\ntransparent\n\ncount3\ntransparent\n\ncount4\ntransparent\n\ncountup\ntransparent\n\ncountdown\ntransparent\n\n(Earth - goals)\n\ngoal0\ntransparent\n\ngoal1\ntransparent\n\ngoal2\ntransparent\n\ngoal3\ntransparent\n\ngoal4\ntransparent\n\ngoale\ntransparent\n\ngoalo\ntransparent\n\nchain\ntransparent\n\nchainstart\ntransparent\n\nchaingoal\ntransparent\n\nchaingoaltemp\ntransparent\n\nchainstarttemp\ntransparent\n\nleftmark\ntransparent\n\nrightmark\ntransparent\n\nupmark\ntransparent\n\ndownmark\ntransparent\n\ndrawsetup1\ntransparent\n\ndrawsetup2\ntransparent\n\ndrawsetup3\ntransparent\n\ndrawsetup4\ntransparent\n\ndrawsetup5\ntransparent\n\nhousewallsecret\ntransparent\n\n(Darkness)\n\nDark\n#d4ca8e\n\nLight\ntransparent\n\nDarkbarrier\ntransparent\n\nlightout\ntransparent\n\nmark\ntransparent\n\nsecret\n#f9d371 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\nsecret2\n#f9d371 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\nsecretsetup\n#f9d371 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\ndrawmark\ntransparent\n\ndrawmarknegative\ntransparent\n\nbasementprogressmark\ntransparent\n\ntowerprogressmark\ntransparent\n\ntowerstairsupblocked\n#587ba2 #4f6e92 #7895b6 #354961 #425a78\n21111\n20003\n20003\n20003\n44443\n\n(messages)\n\nfloor0mesage\ntransparent\n\nfloor1mesage\ntransparent\n\nfloor2mesage\ntransparent\n\nfloor3mesage\ntransparent\n\nfloor4mesage\ntransparent\n\nfloor5mesage\ntransparent\n\nfloor6mesage\ntransparent\n\nfloor7mesage\ntransparent\n\nfloor8mesage\ntransparent\n\nfloor9mesage\ntransparent\n\nbfloor1mesage\ntransparent\n\nbfloor2mesage\ntransparent\n\nbfloor3mesage\ntransparent\n\nbfloor4mesage\ntransparent\n\nbfloor5mesage\ntransparent\n\nbfloor6mesage\ntransparent\n\nbfloor7mesage\ntransparent\n\nbfloor8mesage\ntransparent\n\nbfloor9mesage\ntransparent\n\nmessagemarkup\ntransparent\n\nmessagemarkdown\ntransparent\n\nentrancemesage\ntransparent\n\npuzzle1mesage1\ntransparent\n\npuzzle1mesage2\ntransparent\n\npuzzle2mesage1\ntransparent\n\npuzzle2mesage2\ntransparent\n\npuzzle3mesage1\ntransparent\n\npuzzle3mesage2\ntransparent\n\npuzzle4mesage1\ntransparent\n\npuzzle4mesage2\ntransparent\n\npuzzle5mesage1\ntransparent\n\npuzzle5mesage2\ntransparent\n\npuzzle6mesage1\ntransparent\n\npuzzle6mesage2\ntransparent\n\npuzzle8mesage1\ntransparent\n\npuzzle8mesage2\ntransparent\n\nbpuzzle1mesage\ntransparent\n\nbpuzzle2mesage\ntransparent\n\nbpuzzle3mesage\ntransparent\n\nbpuzzle4mesage\ntransparent\n\nbpuzzle5mesage\ntransparent\n\nbpuzzle6mesage\ntransparent\n\nbpuzzle7mesage\ntransparent\n\nbpuzzle8mesage\ntransparent\n\nbpuzzle9mesage\ntransparent\n\nimbalancemesage1\ntransparent\n\nimbalancemesage2\ntransparent\n\nbalancemesagefinal\ntransparent\n\nbalancemesagefinal2\ntransparent\n\nhiddenmesage\ntransparent\n\nbloomstart\ntransparent\n\nbloom1\n#d94148 #be2633 #96222d\n.....\n.....\n....1\n..012\n00222\n\nbloom2\n#d94148 #be2633 #96222d #ab222c\n.....\n.....\n1...3\n21332\n22122\n\nbloom3\n#be2633 #96222d #ab222c #d52c37\n.....\n2....\n2000.\n2220.\n13310\n\nbloom4\n#d94148 #b12833 #96222d\n....0\n....0\n....0\n..001\n..012\n\nbloom5\n#d94148 #b12833 #96222d #d52c37\n12233\n10323\n01223\n01232\n02322\n\nbloom6\n#96222d #d52c37 #be2633\n00200\n01102\n10010\n00010\n00001\n\nbloom7\n#96222d #d52c37 #be2633 #b5242a\n00100\n20101\n02001\n00111\n00131\n\nbloom8\n#871f27 #9a1f26 #be2633\n2....\n02...\n012..\n012..\n012..\n\nbloom9\n#d94148 #b12833 #96222d\n..010\n..012\n..012\n.0112\n..012\n\nbloom10\n#d94148 #b12833 #96222d #d52c37 #ac2322\n23234\n03234\n03234\n02232\n01232\n\nbloom11\n#d52c37 #5b1111 #7d1717 #ab222c\n00010\n02112\n01001\n31021\n32110\n\nbloom12\n#96222d #d52c37 #871f27 #b5242a\n00131\n01001\n01111\n11002\n00002\n\nbloom13\n#871f27 #9a1f26 #be2633 #d52c37\n0012.\n0012.\n013..\n013..\n03...\n\nbloom14\n#d94148 #b12833 #96222d\n..010\n..012\n.0012\n..000\n....0\n\nbloom15\n#d94148 #b12833 #96222d #d52c37\n01233\n02323\n02323\n32322\n32332\n\nbloom16\n#96222d #d52c37 #ab222c\n22222\n00000\n10001\n11111\n10000\n\nbloom17\n#96222d #d52c37 #b5242a #871f27 #9a1f26\n10001\n11113\n00213\n00113\n01134\n\nbloom18\n#d52c37 #9a1f26\n00...\n10...\n10...\n10...\n0....\n\nbloom19\n#96222d #d52c37\n11010\n.1110\n...10\n.....\n.....\n\nbloom20\n#96222d #d52c37\n11011\n01100\n10111\n.1...\n.....\n\nbloom21\n#96222d #d52c37\n11001\n0111.\n1....\n.....\n.....\n\nfinalleft\n#71806f\n.....\n.....\n00...\n.....\n.....\n\nfinalup\n#71806f\n..0..\n..0..\n.....\n.....\n.....\n\nfinalright\n#71806f\n.....\n.....\n...00\n.....\n.....\n\nfinaldown\n#71806f\n.....\n.....\n.....\n..0..\n..0..\n\nfinalpattern\ntransparent\n\nbloomend\ntransparent\n\nbloomend1\ntransparent\n\ntarget\ngreen\n\n=======\nLEGEND\n=======\n\nman = manup or mandown or manright or manleft\nPlayer = man or selector or redselector or bloomend1\nground = ground1 or ground2 or ground3\npuddle = puddlecenter or puddleleft or puddleright or puddletop or puddlebottom or puddlecornertr or puddlecornertl or puddlecornerbr or puddlecornerbl\nhighpuddletopleft = highpuddletopleft1 or highpuddletopleft2\nhighpuddletopright = highpuddletopright1 or highpuddletopright2 \nhighpuddlebottomleft = highpuddlebottomleft1 or highpuddlebottomleft2\nhighpuddle = highpuddletopleft1 or highpuddletopleft2 or highpuddletopright1 or highpuddletopright2 or highpuddlebottomleft1 or highpuddlebottomleft2 or highpuddlebottomright\nhighground = highground1 or highground2 or highground3\npuzzletilewrong = puzzletilewronghidden or puzzletilewrongnorm\npuzzletilegood = puzzletilegoodhidden or puzzletilegoodnorm\npuzzletile = puzzletilewrong or puzzletilegood or puzzletilehidden\ndirection = leftmark or rightmark or upmark or downmark\npuzzlespace = balancespace or imbalancespace or imbalancespacerandom\ndrawingboard = drawingboardcenter or drawingboardleft or drawingboardright or drawingboardtop or drawingboarddown or drawingboardtopleft or drawingboardtopright or drawingboarddownright or drawingboarddownleft\nhousefloor = housefloornorm or housefloor1 or housefloor2\nhousefloorcrease = housefloor1 or housefloor2\nrose = rose1 or rose2 or rose3 or rose4 or rose5 or rose6 or rose7 or rose8 or rose9 or rose10 \ntowertilepick = towertilecrack1 or towertilecrack2 or towertilecrack3\nblocktile = basementblocktile or basementlineblocktile\ntowerstairsdown = towerstairsdown1 or towerstairsdown2\ntowerstairs = towerstairsdown1 or towerstairsdown2 or towerstairsup\npath = pathupbend or pathrightbend or pathhoriz or pathvert or pathend or pathtri or pathstart\nfloormesage = floor1mesage or floor2mesage or floor3mesage or floor4mesage or floor5mesage or floor6mesage or floor7mesage or floor8mesage or floor9mesage or bfloor1mesage or bfloor2mesage or bfloor3mesage or bfloor4mesage or bfloor5mesage or bfloor6mesage or bfloor7mesage or bfloor8mesage or bfloor9mesage or floor0mesage\nrosetile = rosetile1 or rosetile2 or rosetile3\npuzzlestartbad = puzzlestartbadnorm or puzzlestartbadend\npuzzlestart = puzzlestartbad or puzzlestartgood\n\n# = Darkbarrier and Wall\n* = Wall and chainstarttemp\n@ = Wall and chaingoaltemp\n_ = PhysicalWall\n! = imbalance and wall\n: = imbalancerandom and wall\n⸝ = nodraw and wall\n£ = clearspace\n\n(outside)\nP = manright and pathvert and floor0mesage\n. = groundstart\n- = puddlecenter\nz = pathstart and groundstart\n` = housewall\n~ = houseroof\nh = houseentrance\n꠸ = housewindow\nq = towerwall1\nw = towerwall2\n$ = towerbase\nt = towerentrance\n(inside)\n, = towertile\nl = towertilecrack\n/ = towerpillar2 and towertile\n[ = towerpillar1 and towertile\n{ = towerpillar3 and towertile\n⥁ = towerpillar2special and towertile\n↥ = towerstairsup and towertile\nx = puzzletilewrongnorm and towertile\nᵽ = puzzletilewrongend and housefloornorm and balancemesagefinal\n¥ = puzzletilewrongnorm and towertileoutside and imbalancemesage1\nᵶ = puzzletilewrongnorm and towertile and imbalancemesage2\nᶍ = puzzletilewrongnorm and towertileoutside\n☌ = puzzletilehidden and towertile\ny = puzzlestartbadnorm and dark\nᵯ = puzzlestartbadend and dark and balancemesagefinal2 and end\n↓ = towerstairsdown1\n% = towerwallint\nc = towerwallinttoppermanent\n⏙ = towerstairsupblocked and towertile\n\n(balcony)\n& = highgroundstart\n+ = highpuddlebottomright\n' = towertileoutside\n⤫ = towertileoutside and rosetilestart\n\n\n(roof)\nk = roofpattern and towertileoutside\n\n(basement)\n\" = basementtile\n; = basementlinetile\nb = basemententrance1\nn = basemententrance2 and bpuzzle1mesage\n\\ = basementpillar4 and basementtile\n] = basementpillar5 and basementtile\n} = basementpillar6 and basementtile\n| = basementblocktile\n⚎ = basementphysicalwallperm\nᵹ = puzzletilewronghidden and basementtile\n\n\n(puzzle tiles/ messages)\n\n⅕ = puzzletilewrongnorm and towertile and puzzle2mesage1\n⅙ = puzzletilewrongnorm and towertileoutside and puzzle2mesage2\n⅛ = puzzletilewrongnorm and towertile and puzzle3mesage1\n⅔ = puzzletilewrongnorm and towertile and puzzle3mesage2\n⅖ = puzzletilewrongnorm and towertile and puzzle4mesage1\n⅗ = puzzletilewrongnorm and towertile and puzzle4mesage2\n⅘ = puzzletilewrongnorm and towertile and puzzle5mesage1\n⅜ = puzzletilewrongnorm and towertile and puzzle5mesage2\n⅚ = puzzletilewrongnorm and towertile and puzzle6mesage1\n⅐ = puzzletilewrongnorm and towertileoutside and puzzle6mesage2\n⅝ = puzzletilewrongnorm and towertile and puzzle8mesage1\n↉ = puzzletilewrongnorm and towertile and puzzle8mesage2\n⅑ = towerstairsdown1 and bpuzzle2mesage\n⅒ = towerstairsdown2 and bpuzzle3mesage\n⅞ = towerstairsdown2 and bpuzzle4mesage\n⥊ = towerstairsdown2 and bpuzzle5mesage\n⥋ = towerstairsdown2 and bpuzzle6mesage\n⥌ = towerstairsdown2 and bpuzzle7mesage\n⥍ = towerstairsdown2 and bpuzzle8mesage\n⥎ = towerstairsdown2 and bpuzzle9mesage\n⥏ = towerentrance and puzzle1mesage1\n¢ = puzzletilehidden and puzzle1mesage2 and towertile\n\n\n\n(earth)\n(s = selector and goal1 and count0 and number1 and wrongtemp and puzzlespace)\n0 = balancespace and goal0 and count0 and number0 and goodtemp and dark\n1 = balancespace and goal1 and count0 and number1 and wrongtemp and dark\n2 = balancespace and goal2 and count0 and number2 and wrongtemp and dark\n3 = balancespace and goal3 and count0 and number3 and wrongtemp and dark\n4 = balancespace and goal4 and count0 and number4 and wrongtemp and dark\n? = balancespace and count0 and numberQ and goodtemp and dark\ne = balancespace and goale and count0 and numbere and goodtemp and dark\no = balancespace and goalo and count0 and numberowrong and wrongtemp and dark\n(goals with blocker and no number)\n5 = balancespace and goal0 and count0 and goodtemp and dark and blocker\n6 = balancespace and goal1 and count0 and wrongtemp and dark and blocker\n7 = balancespace and goal2 and count0 and wrongtemp and dark and blocker\n8 = balancespace and goal3 and count0 and wrongtemp and dark and blocker\n9 = balancespace and goal4 and count0 and wrongtemp and dark and blocker\n\n(drawing)\na = secret\ns = drawingboardcenter and count0 and drawgoal0\nd = drawingboardcenter and count0 and drawgoal1\nf = drawingboardcenter and count0 and drawgoal2\ng = drawingboardcenter and count0 and drawgoal3\nj = drawingboardcenter and count0 and drawgoal4\nm = housewallintdown\nu = housefloornorm\ni = housefloorstart\nr = rose1\nÐ = housewallintleft and housewallsecret\nᶃ = hiddendoor and hiddenmesage\n\nᶊ = end\n\n► = bloomstart and balancespace and blocker\n◄ = target and balancespace and blocker\n¤ = balancespace and goal0 and count0 and goodtemp and blocker and finalpattern\n┰ = balancespace and goal0 and count0 and goodtemp and blocker\n\n\n=======\nSOUNDS\n=======\n\nsfx1 50548908\nsfx2 70091308\nsfx3 2038108\nsfx4 55009308\nsfx5 88082508\nsfx6 59276308\nsfx7 68756908\nsfx8 20891708\nsfx9 71493108\nsfx10 34050308\n\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ndrawgood, drawwrong, target, bloomstart\nmark, drawmark, drawmarknegative, housefloorstart\nground1, ground2, ground3, groundstart, towertile, towertilecrack1, towertilecrack2, towertilecrack,towertilehalflight,towertileoutside,towertilecrack3,end, balancespace, drawingboardcenter, drawingboardleft, drawingboardright, drawingboardtop, drawingboarddown, drawingboardtopleft, drawingboardtopright, drawingboarddownright, drawingboarddownleft, imbalancespace, imbalancespacerandom, housefloor, blocktile, nodrawspace, clearspace\npath, pathstart, messagemarkup, messagemarkdown\nbasementtile, basementlinetile, puddlecenter, puddleleft, puddleright, puddletop, puddlebottom, puddlecornertr, puddlecornertl, puddlecornerbr, puddlecornerbl\ngood, wrong, goodtemp, wrongtemp puzzletilewrong, puzzletilegood, puzzlestartbad, puzzlestartgood, puzzletilehidden, puzzletilewrongend\nLight, Darkbarrier, number1, number2, number3, number4, number0, numberQ, numbere, numbero, numberewrong, numberowrong, chainstart, chaingoal, chaingoaltemp, chainstarttemp, imbalance, imbalancerandom, nodraw, floormesage, balancemesagefinal2\nchain, leftmark, rightmark, upmark, downmark, countup, countdown, roofpattern,imbalancemesage1, imbalancemesage2, balancemesagefinal, basementpattern, finalpattern\n1Left, drawleft, roofleft, baseleft, finalleft,clear\n1right, drawright, roofright, baseright, finalright\n1up, drawup, roofup, baseup, finalup,towerwallint, Physicalwall, basementwall, basementphysicalwall, basementphysicalwallperm\n1down, drawdown, roofdown, basedown, finaldown\ncount0, count1, count2, count3, count4, drawsetup1, drawsetup2, drawsetup3, drawsetup4, drawsetup5, highgroundstart,highground1, highground2, highground3, highpuddletopright1,highpuddletopright2,highpuddletopleft1,highpuddletopleft2, highpuddlebottomleft1,highpuddlebottomleft2, highpuddlebottomright, towerbalconytopleft, towerbalconytopright\nchange, drawchange, houseentrance, towerentrance, towerentrancefront, towerstairsup, towerstairsdown1, towerstairsuptemp, towerstairsdowntemp,towerwallintleftmid, towerwallintlefttop,towerwallintrightmid, towerwallintrighttop, towerwallinttoppermanent, basementstairsdown, basementstairsdowntemp, secret, secret2, hiddendoortemp, hiddendoor,basementwallrightmid, basementwallrighttop, basementwallleftmid, basementwalllefttop, towerbalconytoprightroof, towerbalconytopleftroof, basemententrance, basemententrance1, basemententrance2, basementstairsdownblocked, towerstairsdown2, towerstairsupblocked, dirttile\nPlayer, Wall, housewall, housewallcrack, housewallside,houseroof, houseroofside, housewindow, towerbase, towerbaseleft, towerbaseright, towerpillar1, towerpillar2, towerpillar2special, towerpillar3,towerwallintleft, towerwallintright, towerwallbottomleft, towerwallbottomright, towerwallinttop, towerwallintbottom,towerwallinttoppermanent, towerbalconyleft, towerbalconyright, towerbalconytop, housewallinttop, housewallintright, housewallintleft, housewallintdown, rose, basementwallbottomleft, basementwallbottomright, basementwallleft, basementwallright, towerwall1, towerwall2, towerbalconyrightroof, towerbalconyleftroof, basementpillar1, basementpillar2, basementpillar3, basementpillar4, basementpillar5, basementpillar6, bloomend, rosetile, rosetilestart, towerwall1right, towerwall1left, towerwall2right, towerwall2left\ngoal0, goal1, goal2, goal3, goal4, goale, goalo, drawgoal0, drawgoal1, drawgoal2, drawgoal3, drawgoal4, puzzlepanel,towerpillartop2, towerpillartop2special, towerpillarmid3, towerpillartop3, basementpillartop2, basementpillarmid3, basementpillartop3, basementpillartop4, basementpillarmid6, basementpillartop6, towerpillartop1\nDark, light, lightout, halftiletopright, halftiletopleft, halftilebottomright, halftilebottomleft\nblocker, basementprogressmark, towerprogressmark, bloom1, bloom2, bloom3, bloom4, bloom5, bloom6, bloom7, bloom8, bloom9, bloom10, bloom11, bloom12, bloom13,bloom14, bloom15, bloom16, bloom17, bloom18, bloom19, bloom20, bloom21\npuzzle1mesage1, puzzle1mesage2, puzzle2mesage1, puzzle2mesage2, puzzle3mesage1, puzzle3mesage2, puzzle4mesage1, puzzle4mesage2, puzzle5mesage1, puzzle5mesage2, puzzle6mesage1, puzzle6mesage2, puzzle8mesage1, puzzle8mesage2, bpuzzle1mesage, bpuzzle2mesage, bpuzzle3mesage, bpuzzle4mesage, bpuzzle5mesage, bpuzzle6mesage, bpuzzle7mesage, bpuzzle8mesage, bpuzzle9mesage, entrancemesage, hiddenmesage, housewallsecret,secretsetup\n\n======\nRULES \n====== \n\n(World Creation)\n\n[groundstart] -> [random ground]\n\n[rosetilestart] -> [random rosetile]\n\n[basementtile| towertileoutside roofpattern] -> [basementtile| basementtile basementpattern]\n\nvertical[pathvert | pathstart] -> [pathvert|pathvert]\nhorizontal[pathvert|pathstart] -> [pathrightbend|pathhoriz]\nhorizontal[pathhoriz|pathstart] -> [pathhoriz|pathhoriz]\nup[pathhoriz|pathstart] -> [pathtri|pathvert]\nright[pathtri|no path] -> [pathupbend|no path]\nup[pathvert|no path] -> [pathend|no path]\n\nright [puddlecenter| no puddle] -> [puddlecenter| puddleright]\nleft [puddlecenter| no puddle] -> [puddlecenter| puddleleft]\nup [puddlecenter| no puddle] -> [puddlecenter| puddletop]\ndown [puddlecenter| no puddle] -> [puddlecenter| puddlebottom]\n\nup[puddleright| no puddle] -> [puddleright| puddlecornertr]\ndown[puddleright| no puddle] -> [puddleright| puddlecornerbr]\nup[puddleleft| no puddle] -> [puddleleft| puddlecornertl]\ndown[puddleleft| no puddle] -> [puddleleft| puddlecornerbl]\n\nleft[houseroof| no houseroof] -> [houseroof| houseroofside]\nleft[housewall|ground] -> [housewallside| ground]\n\nleft[housewindow|]-> [housewindow|housewallcrack]\n\ndown[towerentrance | ground] -> [towerentrance | towerentrancefront]\n\nleft[towerwall1|ground] -> [towerwall1left|ground]\nleft[towerwall2|ground] -> [towerwall2left|ground]\nleft[towerbase|ground] -> [towerbaseleft|ground]\n\nright[towerwall1|ground] -> [towerwall1right|ground]\nright[towerwall2|ground] -> [towerwall2right|ground]\nright[towerbase|ground] -> [towerbaseright|ground]\n\ndown[towertileoutside|towertile] -> [towertileoutside|towertilehalflight]\n\n[towerwallint|basementtile] -> [basementwall|basementtile]\n[basementwall|physicalwall] -> [basementwall|basementphysicalwall]\n[basementtile|physicalwall] -> [basementtile|basementphysicalwall]\n[basementphysicalwall|physicalwall] -> [basementphysicalwall|basementphysicalwall]\n\n[towertile|basementtile] -> [basementtile|basementtile]\n\n[towertile|basementlinetile] -> [basementlinetile|basementlinetile]\n\n[towerpillar1|basementtile] -> [basementpillar1|basementtile]\n[towerpillar2|basementtile] -> [basementpillar2|basementtile]\n[towerpillar3|basementtile] -> [basementpillar3|basementtile]\n\nup[towerpillar1|] -> [towerpillar1|towerpillartop1]\nup[towerpillar2|] -> [towerpillar2|towerpillartop2]\nup[towerpillar2special|] -> [towerpillar2special|towerpillartop2special]\nup[towerpillar3||] ->[towerpillar3|towerpillarmid3|towerpillartop3]\nup[basementpillar2|] -> [basementpillar2|basementpillartop2]\nup[basementpillar3||] -> [basementpillar3|basementpillarmid3|basementpillartop3]\nup[basementpillar4|] -> [basementpillar4|basementpillartop4]\nup[basementpillar6||] -> [basementpillar6|basementpillarmid6|basementpillartop6]\n\ndown[towerwallint|towertile] -> [towerwallinttop|towertile]\nup[towerwallint|towertile] -> [towerwallintbottom|towertile]\nleft[towerwallinttop|towertile] -> [towerwallintright|towertile]\nright[towerwallinttop|towertile] -> [towerwallintleft|towertile]\nleft[towerwallintbottom|towertile] -> [towerwallbottomright|towertile]\nright[towerwallintbottom|towertile] -> [towerwallbottomleft|towertile]\nup[towerwallintleft|]-> [towerwallintleft|towerwallintleftmid]\nup[towerwallintright|]-> [towerwallintright|towerwallintrightmid]\nleft[towerwallintleftmid|] -> [towerwallintleftmid|towerwallintlefttop]\nright[towerwallintrightmid|] -> [towerwallintrightmid|towerwallintrighttop]\n\n\ndown[towertileoutside|towerwallint|towerwall1] -> [towertileoutside|halftilebottomleft towerwall2left|towerwall1]\ndown[towertileoutside|towerwallint|towerwall2] -> [towertileoutside|halftilebottomleft towerwall1left|towerwall2]\nleft[halftilebottomleft towerwall1left|towertileoutside] -> [halftilebottomright towerwall1right|towertileoutside]\nleft[halftilebottomleft towerwall2left|towertileoutside] -> [halftilebottomright towerwall2right|towertileoutside]\nup[towerwallint|towertileoutside] -> [towerwall1|towertileoutside]\n\nup[towertileoutside|towerwallint|highgroundstart]->[towertileoutside|halftiletopleft highgroundstart|highgroundstart]\nleft[halftiletopleft|towertileoutside]->[halftiletopright |towertileoutside]\nup[towertileoutside|towerwallint]->[towertileoutside|highgroundstart]\n\nup[towerbaseleft|towerwall1] -> [towerbaseleft|towerwall1left]\nup[towerbaseleft|towerwall2] -> [towerbaseleft|towerwall2left]\nup[towerbaseright|towerwall1] -> [towerbaseright|towerwall1right]\nup[towerbaseright|towerwall2] -> [towerbaseright|towerwall2right]\nvertical[towerwall1right|towerwall2] -> [towerwall1right|towerwall2right]\nvertical[towerwall2right|towerwall1] -> [towerwall2right|towerwall1right]\nvertical[towerwall1left|towerwall2] -> [towerwall1left|towerwall2left]\nvertical[towerwall2left|towerwall1] -> [towerwall2left|towerwall1left]\n\nup [towertileoutside | towertile] -> [towertileoutside| towertileoutside]\n\n[highgroundstart] -> [random highground]\n\nleft [highpuddlebottomright| no highpuddle] -> [highpuddlebottomright|random highpuddlebottomleft]\nup [highpuddlebottomright| no highpuddle ] -> [highpuddlebottomright|random highpuddletopright]\nup [highpuddlebottomleft| no highpuddle ] -> [highpuddlebottomleft|random highpuddletopleft]\n\nleft[towertileoutside | no halftiletopleft highground] -> [towertileoutside|no halftiletopleft towerbalconyleft]\nright[towertileoutside |no halftiletopright highground] -> [towertileoutside|no halftiletopright towerbalconyright]\nup[towertileoutside | highground] -> [towertileoutside|towerbalconytop]\nup[towerbalconyleft | highground] -> [towerbalconyleft|towerbalconytopleft]\nup[towerbalconyright | highground] -> [towerbalconyright|towerbalconytopright]\n\nleft[towerbalconytop | highground] -> [towerbalconytop|towerbalconytopleftroof]\nright[towerbalconytop | highground] -> [towerbalconytop|towerbalconytoprightroof]\ndown[towerbalconytopleftroof|towerbalconytop] -> [towerbalconytopleftroof| towerbalconyleftroof]\ndown[towerbalconytoprightroof|towerbalconytop] -> [towerbalconytoprightroof|towerbalconyrightroof]\n\nleft[roofpattern|roofpattern] -> [roofpattern roofleft| roofpattern roofright]\nup[roofpattern|roofpattern] -> [roofpattern roofup| roofpattern roofdown]\n\nleft[finalpattern|finalpattern] -> [finalpattern finalleft| finalpattern finalright]\nup[finalpattern|finalpattern] -> [finalpattern finalup| finalpattern finaldown]\n\nleft[basementpattern|basementpattern] -> [basementpattern baseleft| basementpattern baseright]\nup[basementpattern|basementpattern] -> [basementpattern baseup| basementpattern basedown]\n\nup[puzzletilewrong no basementtile no basementlinetile | no puzzlepanel] -> [puzzletilewrong|puzzlepanel]\n\n[imbalance | balancespace] -> [imbalance | imbalancespace]\n[imbalancerandom | balancespace] -> [imbalancerandom | imbalancespacerandom]\n[imbalancespace | balancespace] -> [imbalancespace | imbalancespace]\n[imbalancespacerandom | balancespace] -> [imbalancespacerandom | imbalancespacerandom]\n[nodraw | balancespace] -> [nodraw|nodrawspace blocker]\n[nodrawspace|balancespace] -> [nodrawspace|nodrawspace blocker]\n\nleft[drawingboardcenter|housefloor] -> [drawingboardleft|housefloor]\nright[drawingboardcenter|housefloor] -> [drawingboardright|housefloor]\nup[drawingboardcenter|housefloor] -> [drawingboardtop|housefloor]\ndown[drawingboardcenter|housefloor] -> [drawingboarddown|housefloor]\nup[drawingboardleft|housefloor] -> [drawingboardtopleft|housefloor]\nup[drawingboardright|housefloor] -> [drawingboardtopright|housefloor]\ndown[drawingboardleft|housefloor] -> [drawingboarddownleft|housefloor]\ndown[drawingboardright|housefloor] -> [drawingboarddownright|housefloor]\n\n[housefloorstart] -> [random housefloorcrease]\nright [housewallintdown|housefloor] -> [housewallintright|housefloor]\nleft[housewallintdown|housefloor]-> [housewallintleft|housefloor]\ndown [housewallintdown|housewallintdown|housefloor] -> [housewallinttop|housewallinttop|housefloor]\nleft [housewallinttop|housewallintdown] -> [housewallinttop|housewallintright]\nright [housewallinttop|housewallintdown] -> [housewallinttop|housewallintleft]\n\nright[rose1||||] -> [rose1|rose2|rose3|rose4|rose5]\ndown[rose1|] -> [rose1|rose6]\nright[rose6||||] -> [rose6|rose7|rose8|rose9|rose10]\n\nup[basementtile|basementwall] -> [basementtile|basementwallleft]\nleft[basementwallleft|basementtile] -> [basementwallright|basementtile]\nleft[basementwallleft|basementblocktile] -> [basementwallright|basementblocktile]\nup[basementwallleft|basementphysicalwall]->[basementwallleft|basementwallleftmid]\nup[basementwallright|basementphysicalwall]->[basementwallright|basementwallrightmid]\nup[basementwallleftmid|no basementphysicalwallperm basementphysicalwall]->[basementwallleftmid|basementwalllefttop]\nup[basementwallrightmid|no basementphysicalwallperm basementphysicalwall]->[basementwallrightmid|basementwallrighttop]\ndown[basementtile|basementwall] -> [basementtile|basementwallbottomleft]\nleft[basementwallbottomleft|basementtile] -> [basementwallbottomright|basementtile]\nleft[basementwallbottomleft|basementblocktile] -> [basementwallbottomright|basementblocktile]\n\nvertical [ basementlinetile|basementblocktile] -> [basementlinetile|basementlineblocktile]\n[basementlinetile|basementtile puzzletilewrong] -> [basementlinetile| basementlinetile puzzletilewrong]\n\n[basementtile|towerstairsdown1] -> [basementtile|basementstairsdownblocked]\n\n[towertilecrack] -> [random towertilepick]\n\nhorizontal[towerentrance no puzzle1mesage1|puzzle1mesage1] -> [towerentrance no puzzle1mesage1| no puzzle1mesage1]\n\nup[rosetile| |rosetile] -> [rosetile| dirttile| rosetile]\n\ndown [basemententrance|||||||housewallsecret] -> [basemententrance|||||||secretsetup]\n\n[secretsetup] up [houseentrance||drawgoal0||||] -> [secretsetup] up [houseentrance||drawsetup1|drawsetup2|drawsetup3|drawsetup4|drawsetup5]\n\nright[drawsetup1||||||] -> [drawgoal2 count0|drawgoal1|drawgoal0|drawgoal0|drawgoal0|drawgoal0|drawgoal0]\nright[drawsetup2||||||] -> [drawgoal1 count0|drawgoal0|drawgoal0|drawgoal0|drawgoal2|drawgoal2|drawgoal0]\nright[drawsetup3||||||] -> [drawgoal0 count2|drawgoal2|drawgoal2|drawgoal0|drawgoal2|drawgoal2|drawgoal0]\nright[drawsetup4||||||] -> [drawgoal0 count3|drawgoal2|drawgoal2|drawgoal0|drawgoal0|drawgoal0|drawgoal1]\nright[drawsetup5||||||] -> [drawgoal0 count2|drawgoal0|drawgoal0|drawgoal0|drawgoal0|drawgoal1|drawgoal2]\n\n[secretsetup housewallintleft] -> [secret2 no housewallintleft]\n\n\n(Transportation Messages)\n[action man puzzle2mesage1] -> [action man] sfx1 message I've been watching you\n[action man puzzle2mesage2] -> [action man] sfx4 message Every connection draws us closer\n[action man puzzle3mesage1] -> [action man] sfx7 message If you don't want to, its ok\n[action man puzzle3mesage2] -> [action man] sfx4 message All you need to do is be here \n[action man puzzle4mesage1] -> [action man] sfx5 message I'll be waiting at the top\n[action man puzzle4mesage2] -> [action man] sfx6 message Take as much time as you need\n[action man puzzle5mesage1] -> [action man] sfx2 message My mind is above and heart below\n[action man puzzle5mesage2] -> [action man] sfx2 message Both parts equally important\n[action man puzzle6mesage1] -> [action man] sfx7 message I so enjoy you being here\n[action man puzzle6mesage2] -> [action man] sfx1 message Can you see it in my eyes?\n[action man puzzle8mesage1] -> [action man] sfx8 message I'd like it if you stay\n[action man puzzle8mesage2] -> [action man] sfx10 message I trust you feel the same\n[action man bpuzzle2mesage] -> [action man] sfx5 message I'll be waiting at the bottom\n[action man bpuzzle3mesage] -> [action man] sfx6 message I can't wait till you're here\n[action man bpuzzle4mesage] -> [action man] sfx10 message I know you feel the same\n[action man bpuzzle5mesage] -> [action man] sfx8 message I can't solve your problems\n[action man bpuzzle6mesage] -> [action man] sfx2 message But I will see them through with you\n[action man bpuzzle7mesage] -> [action man] sfx9 message I see you\n[action man bpuzzle8mesage] -> [action man] sfx9 message And you see me\n[action man bpuzzle9mesage] -> [action man] sfx3 message Where have you been?\n[action man puzzle1mesage2] -> [action man] sfx6 message Heart and mind together as one\n\n\n[action man imbalancemesage1] -> [action man imbalancemesage1] sfx9 message You can only do so much\n[action man imbalancemesage2] -> [action man imbalancemesage2] sfx9 message You can leave it if you want to\n[action man balancemesagefinal] -> [action man balancemesagefinal] sfx1 message I've been watching you... From thee empty floor\n[action selector balancemesagefinal2] -> [action selector balancemesagefinal2] sfx4 message Look me in the eyes\n\n(Transportation)\n\n[> man floormesage | puzzlepanel] -> [man floormesage| puzzlepanel]\n\n\nup [towerentrance man floormesage puzzle1mesage1 | | | towerentrance | ] -> [towerentrance | | | towerentrance | man floormesage messagemarkup] sfx3 message Where have you been?\nup [towerentrance man floormesage | | | towerentrance | ] -> [towerentrance | || towerentrance | man floormesage messagemarkup]\ndown [towerentrance man floormesage | | | towerentrance | ] -> [towerentrance | | | towerentrance | man floormesage messagemarkdown]\n\n [action man puzzletilewrongend] [puzzlestartbadend] -> [puzzletilewrongend] [selector puzzlestartbadend light] checkpoint\n [action selector puzzlestartbadend] [puzzletilewrongend] -> [puzzlestartbadend lightout] [mandown puzzletilewrongend] checkpoint\n\nhorizontal [action man puzzletile| ... | puzzlestart] -> [puzzletile|...| puzzlestart selector light] checkpoint\n\nhorizontal [action selector puzzlestart|...| puzzletile] -> [puzzlestart lightout|...|puzzletile mandown] checkpoint\n\n up [action man floormesage towerstairsup|...|towerstairsdown] -> [towerstairsup|...|towerstairsdown messagemarkup man floormesage ]\ndown [action man floormesage towerstairsdown|...|towerstairsup] -> [towerstairsdown|...|towerstairsup messagemarkdown man floormesage]\n[towerstairsuptemp no man] -> [towerstairsup]\n[towerstairsdowntemp no man] -> [towerstairsdown2]\n\n[houseentrance man floormesage no mark] [houseentrance no man] -> [houseentrance] [ houseentrance man floormesage mark]\n\n[hiddendoor man floormesage no mark hiddenmesage] [hiddendoor no man] -> [hiddendoor] [ hiddendoor man floormesage mark] sfx6 message My heart is yours\n[hiddendoor man floormesage no mark] [hiddendoor no man] -> [hiddendoor] [ hiddendoor man floormesage mark]\n\n[basemententrance man floormesage no mark] [basemententrance1 no man] -> [basemententrance] [basemententrance1 man floormesage mark messagemarkdown]\n[basemententrance1 man floormesage no mark] [basemententrance no man] -> [basemententrance1] [basemententrance man floormesage mark messagemarkup]\n[basemententrance2 man floormesage no mark bpuzzle1mesage] [basemententrance2 no man bpuzzle1mesage] -> [basemententrance2] [basemententrance2 man floormesage mark] sfx6 message My mind is yours\n[basemententrance2 man floormesage no mark] [basemententrance2 no man] -> [basemententrance2] [basemententrance2 man floormesage mark]\n\ndown [down man blocktile floormesage | blocktile] -> [man blocktile floormesage | blocktile]\nup [up man blocktile floormesage | blocktile] -> [man blocktile floormesage | blocktile]\n\n [ > man floormesage] -> [> man > floormesage]\n late [man] [floormesage no man] -> [man floormesage] []\n \n \n [> bloomend1] -> [bloomend1]\n(darkness)\n\n[light | dark] -> [light|light]\n\n[lightout | light] -> [lightout | lightout]\n\n[lightout] -> [dark]\n\n(man movement)\n[left man] -> [left manleft]\n[right man] -> [right manright]\n[up man] -> [up manup]\n[down man] -> [down mandown]\n\n(drawing)\n\nleft [left man drawingboard no drawleft | drawingboard] -> [drawingboard drawleft drawmark | drawingboard drawright man drawmark]\nright [right man drawingboard no drawright | drawingboard] -> [drawingboard drawright drawmark | drawingboard drawleft man drawmark]\nup [up man drawingboard no drawup | drawingboard] -> [drawingboard drawup drawmark| drawingboard drawdown man drawmark]\ndown [down man drawingboard no drawdown | drawingboard] -> [drawingboard drawdown drawmark| drawingboard drawup man drawmark]\n\nleft [left man drawingboard drawleft | drawingboard drawright] -> [drawingboard no drawleft drawmarknegative| drawingboard no drawright man drawmarknegative]\nright [right man drawingboard drawright | drawingboard drawleft] -> [drawingboard no drawright drawmarknegative| drawingboard no drawleft man drawmarknegative]\nup [up man drawingboard drawup | drawingboard drawdown] -> [drawingboard no drawup drawmarknegative| drawingboard no drawdown man drawmarknegative]\ndown [down man drawingboard drawdown | drawingboard drawup] -> [drawingboard no drawdown drawmarknegative| drawingboard no drawup man drawmarknegative]\n\n[count0 drawmark] -> [count1 drawchange]\n[count1 drawmark] -> [count2 drawchange]\n[count2 drawmark] -> [count3 drawchange]\n[count3 drawmark] -> [count4 drawchange]\n\n[count4 drawmarknegative] -> [count3 drawchange]\n[count3 drawmarknegative] -> [count2 drawchange]\n[count2 drawmarknegative] -> [count1 drawchange]\n[count1 drawmarknegative] -> [count0 drawchange]\n\n[count4 drawgoal4] [drawchange] -> [count4 drawgoal4 drawgood] [drawchange]\n[count3 drawgoal3] [drawchange] -> [count3 drawgoal3 drawgood] [drawchange]\n[count2 drawgoal2] [drawchange] -> [count2 drawgoal2 drawgood] [drawchange]\n[count1 drawgoal1] [drawchange] -> [count1 drawgoal1 drawgood] [drawchange]\n[count0 drawgoal0] [drawchange] -> [count0 drawgoal0 drawgood] [drawchange]\n\n[drawingboard no drawgood] [drawchange] -> [drawingboard drawwrong] [drawchange]\n\n[secret] -> [basementstairsdowntemp]\n[secret2] -> [hiddendoortemp]\n\n[basementstairsdowntemp] [drawingboard drawwrong]-> [secret] [drawingboard drawwrong]\n[basementstairsdowntemp] [drawchange]-> [basemententrance] [drawchange]\n[basementstairsdowntemp] -> [secret]\n[hiddendoortemp] [drawingboard drawwrong]-> [secret2] [drawingboard drawwrong]\n[hiddendoortemp] [drawchange]-> [hiddendoor] [drawchange]\n[hiddendoortemp] -> [secret2]\n\n\n[drawingboard drawgood] -> [drawingboard]\n[ > man | secret] -> [ man | secret]\n[ > man | secret2] -> [ man | secret2]\n[ > man | basementphysicalwall] -> [man | basementphysicalwall]\n\n(Earth)\n\n(clearing)\n[action selector clearspace| balancespace] -> [selector clearspace | clear balancespace]\n\nstartloop\n\n[clear 1right] -> [clear]\n[clear 1down] -> [clear]\n[clear 1up] -> [clear]\n[clear | balancespace] -> [clear |balancespace clear]\n\nendloop\n\n[clear] -> [count0 wrong change]\n\n(selector controls)\n\n[Action selector] -> [redselector]\n[Action redselector] -> [selector]\n\n[> redselector | puzzlestart] -> [redselector | puzzlestart]\n[> redselector nodrawspace] -> [redselector nodrawspace]\n[> redselector | clearspace] -> [redselector | clearspace]\n\n[wrongtemp light] -> [wrong light]\n[goodtemp light] -> [good light]\n[good dark] -> [goodtemp dark]\n[wrong dark] -> [wrongtemp dark]\n\n(marking for connection)\nright [right redselector balancespace | balancespace] -> right[redselector balancespace rightmark|balancespace leftmark]\nleft [left redselector balancespace | balancespace] -> left[redselector balancespace leftmark|balancespace rightmark]\nup [up redselector balancespace | balancespace] -> up[redselector balancespace upmark|balancespace downmark]\ndown [down redselector balancespace | balancespace] -> down[redselector balancespace downmark|balancespace upmark]\n\n(marking for connection in imbalance)\nright [right redselector imbalancespace | imbalancespace] -> right[redselector imbalancespace rightmark|imbalancespace rightmark]\nleft [left redselector imbalancespace | imbalancespace] -> left[redselector imbalancespace leftmark|imbalancespace leftmark]\nup [up redselector imbalancespace | imbalancespace] -> up[redselector imbalancespace upmark|imbalancespace upmark]\ndown [down redselector imbalancespace | imbalancespace] -> down[redselector imbalancespace downmark|imbalancespace downmark]\n\n(marking for connection in imbalance random)\nright [right redselector imbalancespacerandom | imbalancespacerandom] -> right[redselector imbalancespacerandom rightmark|imbalancespacerandom random direction]\nleft [left redselector imbalancespacerandom | imbalancespacerandom] -> left[redselector imbalancespacerandom leftmark|imbalancespacerandom random direction]\nup [up redselector imbalancespacerandom | imbalancespacerandom] -> up[redselector imbalancespacerandom upmark|imbalancespacerandom random direction]\ndown [down redselector imbalancespacerandom | imbalancespacerandom] -> down[redselector imbalancespacerandom downmark|imbalancespacerandom random direction]\n\n\n(making connection)\n[puzzlespace leftmark no 1left] -> [puzzlespace 1left countup]\n[puzzlespace leftmark 1left] -> [puzzlespace no 1left countdown]\n[puzzlespace rightmark no 1right] -> [puzzlespace 1right countup]\n[puzzlespace rightmark 1right] -> [puzzlespace no 1right countdown]\n[puzzlespace upmark no 1up] -> [puzzlespace 1up countup]\n[puzzlespace upmark 1up] -> [puzzlespace no 1up countdown]\n[puzzlespace downmark no 1down] -> [puzzlespace 1down countup]\n[puzzlespace downmark 1down] -> [puzzlespace no 1down countdown]\n\n(changing the count)\n[count0 countup] -> [count1 change]\n[count1 countup] -> [count2 change]\n[count2 countup] -> [count3 change]\n[count3 countup] -> [count4 change]\n[count4 countdown] -> [count3 change]\n[count3 countdown] -> [count2 change]\n[count2 countdown] -> [count1 change]\n[count1 countdown] -> [count0 change]\n\n(good and bad)\n\n[change numbere] -> [change numberewrong]\n[change numbero] -> [change numberowrong]\n[change good] -> [wrong]\n\n\n[count1 goal1 no goodtemp] -> [count1 goal1 good]\n[count2 goal2 no goodtemp] -> [count2 goal2 good]\n[count3 goal3 no goodtemp] -> [count3 goal3 good]\n[count4 goal4 no goodtemp] -> [count4 goal4 good]\n[count0 goal0 no goodtemp] -> [count0 goal0 good]\n[numberQ no goodtemp] -> [numberQ good]\n\n[count1 goalo no goodtemp numberowrong] -> [count1 goalo good numbero]\n[count2 goale no goodtemp numberewrong] -> [count2 goale good numbere]\n[count3 goalo no goodtemp numberowrong] -> [count3 goalo good numbero]\n[count4 goale no goodtemp numberewrong] -> [count4 goale good numbere]\n[count0 goale no goodtemp numberewrong] -> [count0 goale good numbere]\n\n\n(Chain)\n[chain] -> []\n\n[chainstarttemp | light] -> [chainstart | light]\n[chainstart | dark] -> [chainstarttemp | dark]\n[chaingoaltemp | light] -> [chaingoal | light]\n[chaingoal | dark] -> [chaingoaltemp | dark]\n\n[chainstart | puzzlespace] -> [chainstart | puzzlespace chain]\n[chainstart | imbalancespace] -> [chainstart | imbalancespace chain]\n[chainstart | imbalancespacerandom] -> [chainstart | imbalancespacerandom chain]\n\nstartloop\n\nright [chain 1right | ] -> [chain 1right | chain]\nleft [chain 1left | ] -> [chain 1left | chain]\nup [chain 1up | ] -> [chain 1up | chain]\ndown [chain 1down | ] -> [chain 1down | chain]\n\nendloop\n\n[chain | chaingoal] -> [chain | chaingoal chain]\n\n[mark no man] -> []\n[drawmark] -> []\n[drawmarknegative] -> []\n[drawchange] -> []\n\n(chacking for solution)\nhorizontal[puzzlestartbad|dark|...|puzzletilewrong] -> [puzzlestartbad|dark|...|puzzletilewrong mark]\nhorizontal[puzzlestartbad|...|puzzletilewrong] [chaingoal no chain] -> [puzzlestartbad|...|puzzletilewrong mark] [chaingoal no chain] \nhorizontal[puzzlestartbad|...|puzzletilewrong] [wrong] -> [puzzlestartbad|...|puzzletilewrong mark] [wrong]\n\nhorizontal[puzzletilewrongnorm no mark|...|puzzlestartbad] -> [puzzletilegoodnorm|...|puzzlestartgood]\nhorizontal[puzzletilewronghidden no mark|...|puzzlestartbad] -> [puzzletilegoodhidden|...|puzzlestartgood]\n\nup [puzzletilegood||||] -> [puzzletilegood||||basementprogressmark]\nleft [puzzletilegood||] -> [puzzletilegood||basementprogressmark]\n[basementprogressmark|basementstairsdownblocked] -> [basementprogressmark|towerstairsdown2]\n\n(messages)\n[man floor1mesage messagemarkup] -> [man floor2mesage] message Floor 2\n[man floor2mesage messagemarkup] -> [man floor3mesage] message Floor 3\n[man floor3mesage messagemarkup] -> [man floor4mesage] message Floor 4\n[man floor4mesage messagemarkup] -> [man floor5mesage] message Floor 5\n[man floor5mesage messagemarkup] -> [man floor6mesage] message Floor 6\n[man floor6mesage messagemarkup] -> [man floor7mesage] message Floor 7\n[man floor7mesage messagemarkup] -> [man floor8mesage] message Floor 8\n[man floor8mesage messagemarkup] -> [man floor9mesage] message Rooftop Garden\n[man floor9mesage messagemarkdown] -> [man floor8mesage] message Floor 8\n[man floor8mesage messagemarkdown] -> [man floor7mesage] message Floor 7\n[man floor7mesage messagemarkdown] -> [man floor6mesage] message Floor 6\n[man floor6mesage messagemarkdown] -> [man floor5mesage] message Floor 5\n[man floor5mesage messagemarkdown] -> [man floor4mesage] message Floor 4\n[man floor4mesage messagemarkdown] -> [man floor3mesage] message Floor 3\n[man floor3mesage messagemarkdown] -> [man floor2mesage] message Floor 2\n[man floor2mesage messagemarkdown] -> [man floor1mesage] message Floor 1\n[man floor1mesage messagemarkdown] -> [man floor0mesage]\n[man floor0mesage messagemarkdown] -> [man bfloor1mesage] message Basement Floor 1\n[man bfloor1mesage messagemarkdown] -> [man bfloor2mesage] message Basement Floor 2\n[man bfloor2mesage messagemarkdown] -> [man bfloor3mesage] message Basement Floor 3\n[man bfloor3mesage messagemarkdown] -> [man bfloor4mesage] message Basement Floor 4\n[man bfloor4mesage messagemarkdown] -> [man bfloor5mesage] message Basement Floor 5\n[man bfloor5mesage messagemarkdown] -> [man bfloor6mesage] message Basement Floor 6\n[man bfloor6mesage messagemarkdown] -> [man bfloor7mesage] message Basement Floor 7\n[man bfloor7mesage messagemarkdown] -> [man bfloor8mesage] message Basement Floor 8\n[man bfloor8mesage messagemarkdown] [drawingboard] -> [man bfloor9mesage] [drawingboard clear]\n[man bfloor9mesage messagemarkup] -> [man bfloor8mesage] message Basement Floor 8\n[man bfloor8mesage messagemarkup] -> [man bfloor7mesage] message Basement Floor 7\n[man bfloor7mesage messagemarkup] -> [man bfloor6mesage] message Basement Floor 6\n[man bfloor6mesage messagemarkup] -> [man bfloor5mesage] message Basement Floor 5\n[man bfloor5mesage messagemarkup] -> [man bfloor4mesage] message Basement Floor 4\n[man bfloor4mesage messagemarkup] -> [man bfloor3mesage] message Basement Floor 3\n[man bfloor3mesage messagemarkup] -> [man bfloor2mesage] message Basement Floor 2\n[man bfloor2mesage messagemarkup] -> [man bfloor1mesage] message Basement Floor 1\n[man bfloor1mesage messagemarkup] -> [man floor0mesage]\n[man floor0mesage messagemarkup] -> [man floor1mesage] message Floor 1\n\n[drawingboard clear| drawingboard] -> [drawingboard clear| drawingboard clear]\n\n[drawright clear] -> [clear]\n[drawup clear] -> [clear]\n[drawdown clear] -> [clear]\n[clear] -> [count0]\n\n(end)\nright[bloom21|] -> [bloom21|bloomend1]\n\nright[bloom17|] -> [bloom17|bloom18]\nright[bloom20|] -> [bloom20|bloom21] again\n\nright[bloom12|] -> [bloom12|bloom13]\nright[bloom16|] -> [bloom16|bloom17]\nright[bloom19|] -> [bloom19|bloom20] again\n\nright[bloom7|] -> [bloom7|bloom8]\nright[bloom11|] -> [bloom11|bloom12]\nright[bloom15|] -> [bloom15|bloom16]\ndown[bloom15|] -> [bloom15|bloom19 again]\n\nright[bloom6|] -> [bloom6|bloom7]\nright[bloom10|] -> [bloom10|bloom11]\nright[bloom14|] -> [bloom14|bloom15] again\n\nright[bloom2|] -> [bloom2|bloom3]\nright[bloom5|] -> [bloom5|bloom6]\nright[bloom9|] -> [bloom9|bloom10]\ndown[bloom9|] -> [bloom9|bloom14] again\n\nright[bloom1|] -> [bloom1|bloom2]\nright[bloom4|] -> [bloom4|bloom5]\ndown[bloom4|] -> [bloom4|bloom9] again\n\nright[bloomstart|] -> [bloomstart|bloom1]\ndown[bloomstart|] -> [bloomstart|bloom4] again\n\n[action bloomend1] -> [bloomend]\n\n\n==============\nWINCONDITIONS\n==============\n\n\nAll end on puzzlestartgood\n\nAll target on bloomend\n\n======= \nLEVELS\n=======\n\n###########&&&%%%%%&&&###########\n###########&&%⤫⤫⤫⤫⤫%&&###########\n###########&%kk'''kk%&###########\n###########%⤫kkk'kkk⤫%###########\n###########'⤫kkk'kkk⤫'###########\n###########'⤫'k''/k'⤫'###########\n###########'⤫'kkkkk'⤫'###########\n###########%⤫'/'''''⤫%###########\n###########q%''''↓''%q###########\n###########ww%⤫⤫⤫⤫⤫%ww###########\n###########qqq%%%%%qqq###########\n###########___%%%%%___###########\n##@###@####__%,,,,,%__###@###@###\n##221222###_%,[,{,,[%_##1221122##\n#y222222@##%[⅝,,[,,,[%##2302221@#\n#£122132###,[,[[[l,,,,#*2323121##\n##221212###,{,,,[[↉,{,##1241222y#\n#*222222@##,[[[,[[[[,,##13202?3£#\n##222232###%,,[↓/,,,,%##12?3222##\n##233212###_%,{[[↥,,%_#@2202232@#\n######@####__%,[,,[%__##2??2321##\n###########___%%%%%___###@###@###\n###########___%%%%%___###########\n###########__%,,,,,%__###########\n###########_%,,,l,,,%_######⸝####\n###########%,,⥁,,,{,,%###02110###\n###########,,,,{,{,,l,###22032###\n###########,,,,,¢,,,,,###23140y##\n###########,,,,{,{,,,,###10211###\n###########%,,{↥,↓{,,%###02100###\n###########_%,,,l,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########&&&&&&&&&&&###########\n###########&&&&&&&&&&&#####@#####\n###########&&+&&+&&+&&##22?2212@#\n###########&&&&&&&&&&&#@2101222##\n###########&&&&&&&&&&&##2222222##\n###########&&&&&&&&&&&##2212422*#\n###########&&&'''''&&&#@2220202£#\n###########&&&''⅐''&&&##222?222y#\n###########&&&'''''&&&#######@###\n###########&&&'''''&&&###########\n###########___c'''c___###########\n###########___c'''c___###########\n###########__%,,,,,%__###########\n#####*#####_%,l,,,,,%_###########\n##y13121###%,,,,⅚,,,,%###0220:###\n##£23232@##[[[,,,,,[[[###2222####\n###o3?33###,l,,,,,,,,ᵶ##@2222y###\n###12222###///,,l,,///###0220####\n###12121@##%,,,↓[↥,,,%#####*#####\n###@#######_%,l,,,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########___%%%%%___#######@###\n###########__%,⅜,[,%__###21?22y##\n###########_%,,,/l,,%_##@21022£##\n#####@#####%,,,,,,,,,%###23?22###\n###y11?####,,,,[,⅘,,,,###23023@##\n###*223####,,,,,/,,,,,##*12?11###\n####?32####,l,,,,,,,,,###########\n###########%,,,↥,↓,,,%###########\n###########_%,,l/,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########&&&&&&&&&&&###########\n###########&+&&&&&&&&&###########\n###########&&&&&&&&&&&###########\n###########&&&&&+&&&&&###@#!#####\n###########&&&&&&&&&&&###2221@###\n###########&&&&&&&&&&&###3221####\n###########&&&'''''&&&###3221####\n###########+&&''¥''&&&##@2221y###\n###########&&&'''''&&&#####*#####\n###########&&&'''''&&&###########\n###########___c'''c___###########\n###########___c'''c___###########\n#######@###__%,,,,,%__###########\n###*e2o1###_%,,,/,,,%_####@######\n####2o3o###%,,/,,,/,,%###e1321*##\n###yo1e1###,,⅗,,,,,,,,###2e232###\n###£2e3o@##,l,,,,,,⅖,,###21oe1y##\n####o3e2###,,,,,,,,l,,###1e3oo£##\n####@######%,,,↓/↥,,,%##@2o112###\n###########_%,,,l,,,%_#######@###\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########___%%%%%___###########\n###########__%/,,,,%__######@####\n###########_%/,,,,l,%_####e211@##\n######@####%,[⅔,,,/,,%####2432y##\n###@2oe####,,,[,,,,/,,###@133e£##\n###yee3####,,,,,l,⅛[,,####1212###\n####12o@###,l,,,,,[l,,#####*#####\n####*######%,,,↥,↓,,,%###########\n###########_%,,,,,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########&&&&&&&&&&&###########\n####@##@###&&&&&&&&+&&###########\n###122221##&&+&&&&&&&&###########\n###112132@#&&&&&&&&&&&###########\n##*222022##&&&&&&&&&&&###########\n###230232##&&&&&&&&&&&###########\n##£232331@#&&&'''''&&+###########\n##y222121##&&&''⅙''&&&###########\n####@##@###&&&'''''&&&###########\n###########&&&'''''&&&###########\n###########___c'''c___###########\n###########___c'''c___###########\n###########__%,,,,,%__###########\n####*######_%,,l,,,,%_###########\n##y22221@##%,⅕[,,,,,,%###1222####\n##£23232###,,,,,,l,,,,##@2331####\n###12212###,,l,,,,,,,,###2332£###\n###22421###,,,,,x,,,,,###1212y###\n###12221@##%,,,↓/↥,l,%####*######\n###@##@####_%,,,,,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########___%%%%%___###########\n###########__%,,,,,%__###########\n#####*#####_%,,l,,,,%_###########\n###12321###%x/,,,,,/,%##@22200y##\n##y12321###,,,,,,x,,l,###20201£##\n###@###@###,l,,,,,,,,,###22323###\n###########,,,,,,,,,,,###02101###\n###########%,,,↥/,,,,%###02100###\n###y121####_%xl,,,,,%_####*######\n###########__%,,,,,%__###########\n###########___%ttt%___###########\n.......$qqqqqqqqqqqqqqqqq$...~~~~\n..---...$$wwwwwwwwwwwww$$...~~~~~\n..-.......$$$qq⥏⥏⥏qq$$$....``````\n.............$$...$$.......```꠸``\n................z..........`h````\n................z...........z....\n............-...z...........z....\n...zzzzzzzzzzzzzzzzzzzzzzzzzz....\n...p....--............---........\n...z.........................--..\n...---...........................\nmmmmmmmmmmmmmmrmmmmmmm___________\nmmmmmmmmmmmmmmmmmmmmmm___________\nmmmmmmmmmmmmuiuuiuuuua___________\nmmmmmmmmmmmmuuiuuiuuum___________\nmiuiuᵽmmmmmmiffsssffim_\"\"\"\"\"\"____\nᶃuiuuummmmmmugjfsfjgumn;;;;;;____\nmmmmmmmmmmmmifjfsfjfum_\"\"\"\"\"\"____\nmmmmmmmmmmmmusfsssfsum____\"\"\"____\nmmmmmmmmmmmmusfffffsum____\"\"\"____\nmmmmmmmmmmmmuuuiuuiuiÐ____\"\"\"____\nmmmmmmmmmmmmmhmmmmmmmm____\"b\"____\n###########__%\"\";\"\"%__###########\n###########_%\"[⅑;\"]\"%_###@#######\n####@######%\"\"\"\"x\"\"\"\"%###2167y###\n###2167####\"/\"\"\";\"\"\"\\\"###3278£###\n##@3388*###\"\"\"\"\";\"\"\"\"\"###1276@###\n##y8888####;;;;;x;;;;n#####*#####\n##£7667####\"\"\"\"\";\"\"\"\"\"###########\n#####@#####\"/\"\"\";\"\"\"\\\"###########\n###########%\"\"\"\";\"\"\"\"%###########\n###########_%\"[\";\"]\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"↥;⅒\"\"%_###########\n###########%/\"\"\";\"\"\"{%######@####\n###########\"\"\"\"\";\"\"\"\"\"##@1232####\n###########\"\"\"]\";\"\\\"\"\"###3232*###\n###########\"\"\"\"\"x\"\"\"\"\"###2332y###\n###########\"\"\"/\";\"[\"\"\"##@7878£###\n###########\"\"\"\"\";\"\"\"\"\"###7876####\n###########%{\"\"\";\"\"\"\\%######@####\n###########_%\"\"\";\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"[⅞\"↥/\"%_###########\n###########%\"\"\"\"\"\"\"\"\"%###@###*###\n###########\"/\"\"\"\"\"\"\"\\\"###28677###\n###########\"\"\"\"\"\"\"\"\"\"\"###33892###\n###########\"\"\"\"\"x\"\"\"\"\"##@20731y##\n###########\"\"\"\"\"\"\"\"\"\"\"###37533£##\n###########\"[\"\"\"\"\"\"\"]\"###78782###\n###########%\"\"\"\"\"\"\"\"\"%###@###@###\n###########_%\"]\"\"\"\\\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"↥\"⥊\"\"%_###########\n###########%/\"]\"\"\"/\"/%###@#######\n###########\"\"\"\"\"\"\"\"\"\"\"###6866@###\n###########\"/\"\"\"\"\"\"\"]\"###6383####\n###########\"\"\"\"\"x\"\"\"\"\"##*8886y###\n###########\"]\"\"\"\"\"\"\"/\"###6181£###\n###########\"\"\"\"\"\"\"\"\"\"\"#####@#####\n###########%/\"/\"\"\"]\"/%###########\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"⥋\"↥\"\"%_###########\n###########%\"\"/\"\"\"{\"\"%###@#######\n###########\"[\"\"\"{\"\"\"/\"###2332@###\n###########\"\"\"\"\"\"\"\"\"\"\"###2222####\n###########;;;;;x;;;;;###7777y###\n###########\"\"\"\"\"\"\"\"\"\"\"##*7667£###\n###########\"{\"\"\"[\"\"\"/\"######@####\n###########%\"\"/\"\"\"[\"\"%###########\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"↥\"⥌\"\"%_#####@#####\n###########%\"\"\"\"\"\"\"\"\"%##222777###\n###########\"\"/[\"\"\"{\\\"\"#@343656###\n###########\"\"\"\"{\"]\"\"\"\"##222777###\n###########\"\"\"\"\"x\"\"\"\"\"##777777y##\n###########\"\"\"\"[\"{\"\"\"\"##656898£##\n###########\"\"/{\"\"\"]\\\"\"##777777###\n###########%\"\"\"\"\"\"\"\"\"%##*####@###\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"⥍\"↥\"\"%_###########\n###########%\"\"\"\"\"\"\"\"\"%######⸝####\n###########\"\"\"}\"\"\"}\"\"\"###00220###\n###########\"\"\"\"}\"}\"\"\"\"###14231###\n###########\"\"\"\"\"¢\"\"\"\"\"###11303y##\n###########\"\"\"\"}\"}\"\"\"\"###02410###\n###########\"\"\"{\"\"\"}\"\"\"###00210###\n###########%\"\"\"\"\"\"\"\"\"%###########\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\\↥\"⥎]\"%_###########\n##y6866*###%\"\"\"\"\"\"\"ᵹ\"%###########\n##£7777####\"/\"\"\"\"\"\"\"]\"###########\n###8687####\"\"\"\"\"\"\"\"\"\"\"######⸝####\n##@8797####\"\"\"\"\"\"\"\"\"\"\"###12332###\n###7676####\"\"\"\"\"\"\"\"\"\"\"###32121###\n###########\"[\"\"\"\"\"\"\"\\\"###12342###\n###########%\"x\"\"\"\"\"\"\"%###12221y##\n###########_%\"[\"\"\"/\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"\"\"↥\"\"%_###########\n###########%{\"\"\"\"\"\"\"{%###########\n###########\"\"\"\"\"\"\"kk\"\"###57875###\n###########\"\"\"kk\"\"\"k\"\"###79997###\n########ᵹ##\"\"\"kk\"kk\"\"\"###89998ᵯ##\n###########\"\"k\"\"\"kk\"\"\"###79997£##\n###########\"\"kk\"\"\"\"\"\"\"###57875###\n###########%{\"\"\"\"\"\"\"{%###########\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n\n\n###########\n###########\n###########\n###►¤¤¤┰###\n###¤¤¤¤¤###\n###¤¤¤¤¤###\n###¤¤¤¤¤###\n###┰¤¤¤◄###\n###########\n###########\n###########\n\nmessage Rose\nmessage By Jared Piers\n\n\n", [0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 1, 1, 4, 3, 3, 4, 1, 4, 3, 1, 4, 3, 1, 1, 1, 1, 4, 1, 1, 4, 3], "background darkbarrier 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,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,\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,\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,\nbackground ground1:1,background ground3:2,1,background ground2:3,1,1,1,2,1,3,2,background housewallintdown:4,4,background housewallintright:5,5,5,background hiddendoor hiddenmesage:6,4,4,4,4,4,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,\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,\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,\n0,0,0,background dark puzzlestartbadnorm:7,background clearspace:8,0,background chainstarttemp wall:9,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background ground3 puddlecornertl:10,background ground1 puddleleft:11,11,background ground1 puddlecornerbl:12,1,2,1,2,2,3,3,\n4,4,background housewallinttop:13,13,background housefloor1:14,background housefloornorm:15,4,4,4,4,4,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background chaingoaltemp wall:16,background balancespace count0 dark goal2 number2 wrongtemp:17,17,background balancespace count0 dark goal1 number1 wrongtemp:18,17,17,17,17,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,7,8,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,8,7,0,0,0,0,0,0,7,8,0,0,0,0,0,0,\n0,0,0,0,7,0,0,0,0,0,0,background ground1 puddletop:19,background puddlecenter:20,20,background ground1 puddlebottom:21,1,3,3,2,2,background ground2 puddlecornertl:22,11,background housewallintdown puddlecornerbl:23,4,13,13,15,background housefloor2:24,4,4,4,4,4,\n0,0,0,0,16,7,8,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,0,16,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,17,17,17,17,17,17,background balancespace count0 dark goal3 number3 wrongtemp:25,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,18,17,background balancespace count0 dark goalo numberowrong wrongtemp:26,18,18,16,0,0,0,0,0,0,7,9,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,7,8,0,0,0,0,0,0,0,0,0,16,7,0,0,0,0,0,\n0,0,18,18,17,17,17,17,0,0,0,0,0,0,17,17,18,17,18,16,0,0,0,0,0,18,18,16,0,0,background dark puzzlestartgood:27,0,0,\n19,20,background ground3 puddleright:28,background ground1 puddlecornerbr:29,3,3,2,background ground2 pathrightbend:30,background pathvert:31,background ground3 pathvert puddletop:32,20,background housewallintdown puddlebottom:33,4,13,13,14,15,4,4,4,4,4,0,0,0,17,25,background balancespace blocker count0 dark goal3 wrongtemp:34,background balancespace blocker count0 dark goal2 wrongtemp:35,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,\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,\n0,0,background balancespace blocker count0 dark goal1 wrongtemp:36,35,34,34,35,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,18,17,17,18,17,17,25,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,25,25,25,17,17,0,0,0,0,0,0,0,18,17,background balancespace count0 dark goodtemp numberq:37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background balancespace count0 dark goale goodtemp numbere:38,17,26,17,26,16,0,0,0,0,0,0,0,17,38,18,9,0,0,0,0,16,17,18,17,25,25,17,16,0,0,\n0,0,9,17,25,17,17,17,0,0,0,0,0,0,17,17,0,0,0,1right background balancespace count1 dark goal1 goodtemp number1:39,0,0,19,20,background ground2 puddlebottom:40,1,1,1,2,background ground1 pathhoriz:41,3,background ground3 puddletop:42,20,\n33,4,13,13,15,15,4,4,4,4,4,0,0,16,18,25,34,36,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,35,36,35,36,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,17,17,18,17,17,17,17,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,9,18,17,37,17,18,0,0,0,\n0,0,0,16,18,17,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,26,18,38,25,0,0,0,0,\n0,0,0,0,26,38,17,0,0,0,0,0,0,17,17,17,background balancespace count0 dark goal0 goodtemp number0:43,17,17,0,0,0,0,0,0,17,17,17,background balancespace count0 dark goal4 number4 wrongtemp:44,17,0,0,0,\n0,0,9,25,25,0,0,0,1left 1right background balancespace count2 dark goal2 goodtemp number2:45,0,0,background ground2 puddlecornertr:46,background ground2 puddleright:47,background ground3 puddlecornerbr:48,1,2,1,2,background ground3 pathhoriz:49,3,42,20,33,4,13,13,background balancemesagefinal housefloornorm puzzletilewrongend:50,15,4,4,4,4,4,\n0,0,0,36,34,34,36,16,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,36,35,34,background balancespace blocker count0 dark goal4 wrongtemp:51,35,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,16,17,17,25,18,17,25,18,16,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,17,25,25,17,17,0,0,0,0,0,0,0,37,25,17,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,26,25,38,25,38,0,0,0,0,0,0,0,16,38,25,26,0,0,0,0,\n0,0,17,18,43,17,25,18,0,0,0,0,0,0,17,25,18,17,17,16,0,0,0,0,0,17,17,0,0,0,1left background balancespace count1 dark goal1 goodtemp number1:52,0,0,\n3,3,1,3,2,2,2,41,2,background ground3 puddlecornertr:53,47,background housewallintdown puddlecornerbr:54,4,background housewallintleft:55,55,55,55,4,4,4,4,4,0,0,0,35,34,34,35,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,\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,\n0,0,36,35,35,35,36,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,17,17,17,17,17,17,17,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,18,17,25,17,18,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,16,18,26,18,26,17,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,16,17,25,17,25,25,17,16,0,0,\n0,0,0,18,17,17,18,18,0,0,0,0,0,0,18,18,16,0,0,0,0,0,background towerbaseleft:56,1,2,3,3,1,2,background ground1 pathhoriz puddlecornertl:57,background ground3 puddleleft:58,12,2,\n4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,9,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,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,16,0,0,16,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,16,0,0,16,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,16,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,18,17,17,17,18,18,0,0,0,0,0,0,16,0,0,0,16,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,background towerwall1left:59,56,1,1,1,1,3,background ground3 pathhoriz puddletop:60,20,background ground3 puddlebottom:61,3,4,4,4,4,4,4,4,4,4,4,4,\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,\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,\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,background basementtile mark puzzletilewronghidden:62,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,\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,\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,\n0,0,0,16,0,0,16,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,\nbackground towerwall1:63,background towerbase:64,3,2,2,3,3,60,20,61,3,4,4,4,4,4,4,4,4,4,4,4,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,\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,\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,\n0,0,background darkbarrier towerwallintlefttop wall:65,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,65,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background darkbarrier highpuddletopleft2 wall:66,background darkbarrier highpuddlebottomleft1 wall:67,0,0,0,\n0,0,65,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,65,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,0,0,0,59,background towerwall2left:68,56,2,3,2,1,background ground3 pathhoriz puddlecornertr:69,28,48,3,\n4,4,4,4,4,4,4,4,4,4,4,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,background highground3:70,background highground1:71,background towerbalconytopleftroof:72,background halftiletopleft towerbalconyleftroof:73,background towertileoutside:74,74,74,background halftilebottomleft towerwall2left:75,59,68,59,background physicalwall:76,background physicalwall towerwallintlefttop:77,background physicalwall towerwallintleftmid:78,background towerwallintleft:79,background towertile:80,80,80,background towerwallbottomleft:81,76,76,76,\n76,77,78,79,80,80,80,81,76,76,76,70,background highground2:82,71,71,70,71,71,70,82,82,76,76,77,78,background towerpillartop1 towerwallintleft:83,background towerpillar1 towertile:84,background towerpillartop2 towertile:85,background towerpillar2 towertile:86,81,76,76,76,\n76,77,78,79,80,80,80,81,76,76,76,background highpuddletopleft2:87,background highpuddlebottomleft2:88,71,82,71,71,background highpuddletopright1:89,background highpuddlebottomright:90,82,82,76,76,77,78,79,80,80,80,81,76,76,76,\n76,77,78,79,80,80,80,81,76,76,76,82,82,70,82,70,70,70,82,71,82,76,76,77,78,79,80,80,80,81,76,76,76,\n76,77,78,79,80,80,80,81,background basementprogressmark physicalwall:91,76,76,63,background towerwall2:92,64,1,1,10,background ground2 puddleleft:93,background ground1 pathhoriz puddlecornerbl:94,1,3,1,5,5,5,5,5,5,5,5,5,5,4,\nbackground basementwalllefttop:95,background basementwallleftmid:96,background basementwallleft:97,background basementtile:98,98,background basementlinetile:99,98,98,background basementwallbottomleft:100,background basementphysicalwall:101,101,95,96,97,98,98,98,98,98,100,101,101,95,96,97,98,98,98,98,98,100,101,101,\n95,96,97,98,98,98,98,98,100,101,101,95,96,97,98,98,99,98,98,100,101,101,95,96,97,98,98,98,98,98,100,101,101,\n95,96,97,98,98,98,98,98,100,101,101,95,96,97,98,98,98,98,98,100,101,101,95,96,97,98,98,98,98,98,100,101,101,\n82,72,73,background rosetile1 towertileoutside:102,background dirttile rosetile1 towertileoutside:103,103,background dirttile rosetile2 towertileoutside:104,102,background halftilebottomleft towerwall1left:105,68,59,77,78,83,background towerpillar1 towerpillartop3 towertile:106,background towerpillar1 towerpillarmid3 towertile:107,background towerpillar3 towerpillartop1 towertile:108,84,80,81,76,76,77,78,79,80,80,80,80,80,81,76,76,\n71,87,88,82,82,70,82,71,71,71,76,77,78,79,background towerpillartop1 towertile:109,84,background towerpillartop2 towertilecrack3:110,86,80,81,76,76,77,78,79,80,80,80,background towertilecrack2:111,80,81,76,76,\n89,90,82,71,82,82,70,82,82,82,76,77,78,79,80,80,111,80,80,81,76,76,77,78,79,80,80,80,111,80,81,76,76,\n82,background highpuddletopleft1:112,88,71,71,70,70,71,70,71,76,77,78,79,80,80,80,80,80,81,76,76,77,78,background puzzlepanel towerwallintleft:113,background mark puzzletilewrongnorm towertile:114,80,111,80,80,81,76,76,\n63,92,64,1,1,background ground2 puddletop:115,20,background ground1 pathhoriz puddlebottom:116,2,3,3,13,13,15,15,24,15,24,15,15,15,4,96,97,background basementpillartop2 basementtile:117,background basementpillar2 basementtile:118,98,99,117,118,98,100,background basementphysicalwallperm:119,\n96,background basementpillartop2 basementwallleft:120,118,98,98,98,background basementpillartop3 basementtile:121,background basementpillarmid3 basementtile:122,background basementpillar3 basementtile:123,100,119,96,97,117,118,98,98,98,background basementpillar1 basementtile:124,98,100,119,96,120,118,117,118,98,background basementpillar5 basementtile:125,117,118,100,119,\n96,97,98,124,98,background basementlinetile basementpillartop3:126,122,123,98,100,119,96,97,98,98,98,98,98,98,98,100,119,96,97,98,98,98,98,98,98,98,100,119,\n96,97,117,118,98,98,98,124,98,100,119,background basementpillartop3 basementwallleftmid:127,background basementpillarmid3 basementwallleft:128,123,98,98,98,121,122,123,100,119,72,73,background roofdown roofpattern roofright towertileoutside:129,background roofdown roofpattern roofright roofup towertileoutside:130,background roofpattern roofright roofup towertileoutside:131,74,74,74,74,75,59,\n78,79,background puzzlepanel towertile:132,background mark puzzle8mesage1 puzzletilewrongnorm towertile:133,80,109,84,80,80,81,76,78,79,80,80,80,80,80,80,80,81,76,82,background highpuddletopright2:134,90,82,82,background towerbalconytopleft:135,background towerbalconyleft:136,136,136,136,76,\n78,79,80,109,84,85,86,80,80,81,76,78,79,80,80,80,80,80,80,80,81,76,70,82,70,71,71,135,136,136,136,136,76,\n78,79,80,132,background mark puzzle4mesage2 puzzletilewrongnorm towertile:137,80,80,80,80,81,76,78,background towerpillartop2 towerwallintleft:138,background towerpillar2 towerpillartop1 towertile:139,84,80,80,80,80,80,81,76,82,89,90,70,71,135,136,136,136,136,76,\n78,79,132,background mark puzzle2mesage1 puzzletilewrongnorm towertile:140,80,background towertilecrack1:141,80,80,80,81,76,78,79,85,86,background basementprogressmark towertile:142,80,80,132,background puzzletilegoodnorm towertile:143,81,76,59,68,59,56,1,46,47,background ground1 pathhoriz puddlecornerbr:144,1,1,2,\n13,13,14,15,background count0 drawgoal2 drawingboardtop:145,background count0 drawgoal3 drawingboardleft:146,background count0 drawgoal2 drawingboardleft:147,background count0 drawgoal0 drawingboardleft:148,background count0 drawgoal0 drawingboarddownleft:149,15,background houseentrance:150,97,98,98,98,98,99,98,98,98,98,100,97,98,98,98,98,98,98,98,98,98,100,\n97,98,98,98,98,98,98,98,98,98,100,97,98,98,98,98,98,98,98,98,98,100,97,98,98,98,98,99,98,98,98,98,100,\n97,98,117,118,98,98,117,118,98,98,100,97,98,98,98,98,98,98,98,98,98,100,97,98,98,98,98,98,98,98,background basementtile mark puzzletilewrongnorm:151,98,100,\n97,98,98,98,98,98,background basedown basementpattern basementtile:152,background basementpattern basementtile baseright baseup:153,98,98,100,background towerbalconytop:154,background rosetile2 towertileoutside:155,background roofdown roofleft roofpattern towertileoutside:156,background roofdown roofleft roofpattern roofright roofup towertileoutside:157,157,background roofdown roofpattern roofup towertileoutside:158,background roofpattern roofright roofup towerpillartop2 towertileoutside:159,background towerpillar2 towertilehalflight:160,74,155,63,background towerwallinttop:161,109,84,109,84,109,106,107,background towerpillar3 towertile:162,80,background towerwallintbottom:163,\n161,80,background towerpillartop2special towertile:164,background towerpillar2special towertile:165,80,background towerpillartop3 towertile:166,background towerpillarmid3 towertile:167,162,80,80,163,70,82,82,70,82,154,74,74,74,74,background towerwallinttoppermanent:168,168,80,background towertilecrack3:169,80,80,80,80,80,141,80,163,\n161,80,80,80,80,80,80,80,80,80,163,82,71,70,82,70,154,74,74,74,74,168,168,80,85,86,80,80,80,80,80,80,163,\nbackground towerpillartop2 towerwallinttop:170,86,132,background mark puzzle3mesage2 puzzletilewrongnorm towerpillartop1 towertile:171,84,80,80,80,80,80,163,70,70,70,71,71,154,74,74,74,74,168,168,80,109,84,80,80,80,80,80,80,163,\n161,80,80,80,80,80,80,80,background floor1mesage manright towertilecrack2:172,80,163,63,92,63,64,1,1,3,41,3,2,1,background rose1:173,background rose6:174,15,14,145,background count0 drawgoal4 drawingboardcenter:175,175,background count0 drawgoal2 drawingboardcenter:176,background count0 drawgoal2 drawingboarddown:177,15,4,\n98,124,98,98,98,99,98,98,98,124,background basementblocktile:178,178,98,98,98,125,117,118,98,98,98,178,178,124,98,98,98,98,98,98,98,125,178,\n178,98,125,98,98,98,98,117,118,98,178,178,117,118,98,98,99,98,117,118,98,178,178,98,98,124,98,121,122,123,98,98,178,\n178,background basementpillartop6 basementtile:179,background basementpillarmid6 basementtile:180,background basementpillar6 basementtile:181,98,121,122,123,98,98,178,background basementblocktile basementpillartop4:182,background basementpillar4 basementtile:183,98,98,98,98,98,98,98,124,178,178,98,98,98,background basedown basementpattern basementtile baseright:184,153,98,background baseleft basementpattern basementtile:185,98,98,178,\n154,background rosetile3 towertileoutside:186,74,156,background roofleft roofpattern roofup towertileoutside:187,74,background roofleft roofpattern roofright towertileoutside:188,74,74,155,63,161,80,80,109,84,80,80,background towerpillartop1 towerstairsdown1:189,background towerpillar1 towerpillartop1 towertile:190,84,163,161,80,166,167,background towerpillar3 towerpillartop3 towertile:191,167,162,background towerstairsup towertile:192,80,80,163,\n71,87,88,82,71,154,74,74,74,74,74,74,background towertilehalflight:193,80,80,80,80,80,background towerstairsdown1:194,80,80,163,background puzzlepanel towerwallinttop:195,background mark puzzle5mesage2 puzzletilewrongnorm towertile:196,80,109,84,80,80,192,111,80,163,\n71,71,112,background highpuddlebottomleft1:197,82,154,74,74,74,74,74,74,193,80,80,80,80,80,194,80,80,163,161,80,80,80,80,80,80,192,80,80,163,\n82,71,70,71,70,154,74,74,74,74,74,74,193,111,80,80,80,80,194,80,80,163,161,80,141,80,80,80,80,192,80,80,background towerentrance:198,\n63,92,198,background towerentrancefront:199,1,3,1,41,1,2,3,background rose2:200,background rose7:201,15,15,background count0 drawgoal0 drawingboardtop:202,176,176,background count0 drawgoal0 drawingboardcenter:203,177,24,4,98,background basementstairsdownblocked bpuzzle2mesage:204,98,98,98,99,98,98,98,98,178,\n178,background basementtile towerstairsup:205,98,98,98,98,98,98,98,98,178,178,background bpuzzle4mesage towerstairsdown2:206,98,98,98,98,98,98,98,98,178,178,205,98,98,98,98,98,98,98,98,178,\n178,background bpuzzle6mesage towerstairsdown2:207,98,98,98,99,98,98,98,98,178,178,205,121,122,123,98,124,98,98,98,178,178,background bpuzzle8mesage towerstairsdown2:208,179,180,background basementpillar6 basementpillartop6 basementtile:209,180,181,98,98,98,178,\n178,205,98,98,98,98,98,98,98,98,178,178,98,98,98,background basedown baseleft basementpattern basementtile:210,background baseleft basementpattern basementtile baseup:211,98,98,98,98,178,154,102,74,74,74,74,188,74,74,186,63,\nbackground towerpillartop3 towerwallinttop:212,167,108,190,190,190,background towerpillar1 towerpillartop2 towertile:213,139,84,80,163,161,80,141,80,80,background puzzle1mesage2 puzzletilehidden towertile:214,80,80,169,80,163,70,134,90,71,71,154,background puzzlepanel towertileoutside:215,background mark puzzle6mesage2 puzzletilewrongnorm towertileoutside:216,74,74,74,\n74,193,132,background mark puzzle6mesage1 puzzletilewrongnorm towertile:217,80,80,background towerpillartop1 towertilecrack1:218,84,80,80,163,161,85,86,80,85,86,80,85,86,80,163,71,82,89,90,82,154,215,background imbalancemesage1 mark puzzletilewrongnorm towertileoutside:219,74,74,74,\n74,background towerpillartop2 towertilehalflight:220,86,80,80,80,85,86,111,80,163,161,80,80,80,80,141,80,80,80,80,163,71,82,71,82,70,154,215,background mark puzzle2mesage2 puzzletilewrongnorm towertileoutside:221,74,74,74,\n74,193,80,80,80,132,background mark puzzletilewrongnorm towerpillartop2 towertile:222,86,80,80,163,161,80,80,80,80,80,85,86,80,80,198,63,92,198,199,background ground1 pathend:223,background ground3 pathvert:224,background ground1 pathvert:225,background ground2 pathtri:226,2,3,3,\nbackground rose3:227,background rose8:228,24,15,202,203,203,203,177,15,4,99,99,background basementlinetile mark puzzletilewrongnorm:229,99,99,229,99,99,99,99,background basementlineblocktile:230,230,99,99,99,99,229,99,99,99,99,230,\n178,98,98,98,98,151,98,98,98,98,178,178,98,98,98,98,151,98,98,98,98,178,178,121,122,123,98,229,98,124,98,98,178,\n178,98,98,98,98,151,98,98,98,98,178,178,98,98,98,98,background basementtile puzzle1mesage2 puzzletilehidden:231,98,98,98,98,178,178,98,98,98,98,98,98,98,98,98,178,\n178,98,98,98,98,98,98,98,98,98,178,154,155,74,129,159,160,188,74,194,102,63,161,80,80,80,218,190,84,80,192,80,163,\n161,80,166,167,191,167,162,194,80,80,163,70,82,82,71,71,154,74,74,74,74,74,74,193,80,80,80,80,80,192,80,80,163,\nbackground towerpillartop1 towerwallinttop:232,84,169,132,background mark puzzle5mesage1 puzzletilewrongnorm towertile:233,80,80,194,80,80,163,71,82,71,82,71,154,74,74,74,74,74,74,193,80,80,80,80,80,192,80,80,163,\n161,80,80,80,80,80,80,194,80,80,163,70,71,71,82,70,154,74,74,74,74,74,74,193,80,80,141,80,80,192,80,80,163,\n161,80,80,132,114,80,80,80,80,80,198,63,92,198,199,1,3,1,41,3,3,1,background rose4:234,background rose9:235,15,24,202,176,176,203,177,15,4,\n98,98,98,98,98,99,98,98,98,98,178,178,background bpuzzle3mesage towerstairsdown2:236,98,98,98,98,98,98,98,98,178,178,205,98,98,98,98,98,98,98,98,178,\n178,background bpuzzle5mesage towerstairsdown2:237,98,98,98,98,98,98,98,98,178,178,205,98,98,98,99,98,98,98,98,178,178,background bpuzzle7mesage towerstairsdown2:238,98,98,background basementpillar5 basementpillartop3 basementtile:239,122,123,98,98,98,178,\n178,205,179,180,209,180,181,98,98,98,178,178,background bpuzzle9mesage towerstairsdown2:240,98,98,98,98,98,98,98,98,178,178,205,98,98,98,184,153,98,98,98,178,\n154,155,129,157,157,158,187,74,74,102,63,161,80,80,80,132,background mark puzzle8mesage2 puzzletilewrongnorm towerpillartop1 towertile:241,84,80,109,84,163,161,166,167,162,80,166,167,162,80,80,163,\n71,87,88,70,70,154,74,74,74,74,168,168,80,80,80,80,80,80,80,80,80,163,161,80,80,80,80,80,80,80,80,80,163,\n71,71,82,82,82,154,74,74,74,74,168,168,80,85,86,80,80,80,80,80,80,163,161,80,background towerpillartop2 towertilecrack2:242,86,132,background mark puzzle3mesage1 puzzletilewrongnorm towerpillartop1 towertile:243,84,80,80,80,163,\n112,88,70,71,82,154,74,74,74,74,168,168,80,80,80,80,80,80,80,80,80,163,161,80,80,80,80,80,80,80,80,80,163,\n63,92,63,64,1,1,3,49,3,2,1,background rose5:244,background rose10:245,15,15,145,175,175,176,177,24,4,98,125,98,98,98,99,98,98,98,125,178,\n178,98,98,background basementpillartop4 basementtile:246,183,98,124,98,98,98,178,background basementblocktile basementpillartop2:247,118,98,98,98,98,98,98,246,183,178,178,117,118,98,98,98,98,98,125,98,178,\nbackground basementblocktile basementpillartop3:248,122,123,98,98,99,98,98,124,98,178,178,121,122,123,98,98,98,125,98,98,178,178,179,180,181,98,179,180,181,98,98,178,\n178,125,98,98,98,98,98,98,117,118,178,178,98,98,background basementpattern basementtile baseright:249,98,210,211,98,98,98,178,background towerbalconytoprightroof:250,background halftiletopright towerbalconyrightroof:251,156,background roofdown roofleft roofpattern roofup towertileoutside:252,187,74,74,74,74,background halftilebottomright towerwall2right:253,background towerwall1right:254,\nbackground physicalwall towerwallintrightmid:255,background towerpillartop1 towerwallintright:256,84,80,80,109,84,80,80,background towerwallbottomright:257,76,255,background towerwallintright:258,80,80,80,80,80,80,80,257,76,70,89,90,70,70,background towerbalconytopright:259,background towerbalconyright:260,260,260,260,76,\n255,258,80,109,84,85,86,80,80,257,76,255,258,80,80,80,80,80,80,80,257,76,71,71,82,82,70,259,260,260,260,260,76,\n255,258,80,80,132,background mark puzzle4mesage1 puzzletilewrongnorm towertile:261,141,80,80,257,76,255,258,80,85,139,84,169,80,80,257,76,89,90,71,70,70,259,260,260,260,260,76,\n255,258,80,80,80,80,80,111,80,257,76,255,258,85,86,80,80,80,80,80,257,76,254,background towerwall2right:262,254,background towerbaseright:263,2,3,2,41,2,3,1,\n13,13,15,15,145,background count0 drawgoal3 drawingboardright:264,background count0 drawgoal2 drawingboardright:265,background count0 drawgoal0 drawingboardright:266,background count0 drawgoal0 drawingboarddownright:267,15,4,background basementwallright:268,98,98,98,98,99,98,98,98,98,background basementwallbottomright:269,268,98,98,98,98,98,98,98,98,98,269,\n268,98,98,98,98,98,98,98,98,98,269,268,98,98,98,98,98,98,98,98,98,269,268,98,98,98,98,99,98,98,98,98,269,\n268,98,246,183,98,98,246,183,98,98,269,268,98,98,98,98,98,98,98,98,98,269,268,98,62,98,98,98,98,98,98,98,269,\n268,98,98,210,background basementpattern basementtile baseup:270,98,98,98,98,98,269,71,250,251,102,background dirttile rosetile3 towertileoutside:271,104,271,186,background halftilebottomright towerwall1right:272,262,254,background physicalwall towerwallintrighttop:273,255,256,106,167,162,80,80,257,76,76,\n273,255,258,80,111,80,80,80,257,76,76,71,82,82,71,70,71,70,82,71,82,76,273,255,258,109,84,85,86,80,257,76,76,\n273,255,258,80,80,80,80,80,257,76,76,70,82,82,70,71,71,70,71,82,71,76,273,255,258,80,80,80,80,80,257,76,76,\n273,255,258,80,80,80,80,80,257,76,76,82,71,70,70,70,87,197,82,70,70,76,273,255,258,80,80,80,80,80,257,76,76,\n273,255,258,80,169,80,80,80,257,76,76,63,92,64,3,1,3,2,41,1,2,2,13,13,15,15,14,15,15,15,15,24,4,\nbackground basementwallrightmid:274,268,246,183,98,99,246,183,98,269,119,background basementpillartop3 basementwallrightmid:275,background basementpillarmid3 basementwallright:276,123,98,98,98,98,246,183,269,119,274,268,246,183,98,98,98,125,98,269,119,\n274,background basementpillartop2 basementwallright:277,118,98,125,117,118,117,118,269,119,274,268,117,118,98,99,117,118,98,269,119,274,268,98,98,98,98,98,98,98,269,119,\n274,268,98,98,98,98,98,98,98,269,119,274,268,98,125,98,98,246,183,98,269,119,275,276,123,98,98,98,121,122,123,269,119,\n71,82,250,251,74,74,74,253,254,262,254,76,273,255,258,80,80,80,257,76,76,76,76,273,255,258,80,80,80,257,76,76,76,\n82,82,82,82,82,82,71,82,70,82,76,76,273,255,256,background puzzlepanel towerpillar1 towertile:278,background imbalancemesage2 mark puzzletilewrongnorm towerpillartop2 towertile:279,86,257,76,76,76,76,273,255,258,80,80,80,257,76,76,76,\n82,82,71,71,71,70,70,70,71,70,76,76,273,255,258,80,80,80,257,76,76,76,76,273,255,258,80,80,80,257,76,76,76,\n70,70,71,82,70,134,90,82,70,71,76,76,273,255,258,80,80,80,257,76,76,76,76,273,255,258,80,80,80,257,76,76,76,\n63,92,64,3,1,2,3,background ground3 pathhoriz puddlecornertl:280,93,background ground2 puddlecornerbl:281,2,55,55,background secret:282,55,55,55,55,55,55,background housewallintleft housewallsecret:283,4,background basementwallrighttop:284,274,268,98,98,background basemententrance2 bpuzzle1mesage:285,98,98,269,101,101,\n284,274,268,98,98,98,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,\n284,274,268,98,98,99,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,\n284,274,268,98,98,98,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background darkbarrier towerwallintrighttop wall:286,0,0,0,0,0,0,0,0,0,0,286,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,286,0,0,0,0,0,0,0,0,0,0,286,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,286,0,0,0,0,0,0,0,0,0,0,286,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,286,0,0,0,0,0,0,0,0,0,0,286,0,0,0,0,0,0,0,0,254,262,263,2,2,2,3,background ground2 pathhoriz puddletop:287,20,40,1,\n101,101,101,101,101,285,101,101,101,101,101,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,\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,\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,9,0,0,0,16,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,16,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,63,64,3,3,3,1,3,287,20,40,1,101,101,101,101,98,99,98,101,101,101,101,\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,\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,16,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,18,17,17,18,18,18,17,17,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,17,17,17,17,17,17,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,16,0,0,9,0,0,0,0,0,\n0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,16,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,16,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,\n254,263,2,3,1,3,3,background ground1 pathhoriz puddletop:288,20,61,1,101,101,101,101,98,99,98,101,101,101,101,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,16,0,0,16,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,\n0,0,0,0,0,0,9,0,0,0,0,0,0,17,25,17,35,36,35,9,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,\n0,16,17,25,25,17,25,17,17,37,16,0,0,0,background blocker count0 dark goal0 goodtemp nodrawspace number0:289,background blocker count0 dark goal2 nodrawspace number2 wrongtemp:290,290,background blocker count0 dark goal1 nodrawspace number1 wrongtemp:291,289,0,0,0,0,0,17,18,17,17,17,17,0,0,0,\n0,0,0,background count0 dark goal0 goodtemp imbalancespacerandom number0:292,background count0 dark goal2 imbalancespacerandom number2 wrongtemp:293,293,292,0,0,0,0,0,17,17,17,17,18,0,0,0,0,0,0,0,0,16,background count0 dark goal2 imbalancespace number2 wrongtemp:294,background count0 dark goal3 imbalancespace number3 wrongtemp:295,295,294,0,0,0,\n0,0,0,38,17,17,18,17,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,18,17,17,18,0,0,0,0,0,0,0,17,17,17,43,43,0,0,0,263,2,3,2,3,3,3,background ground1 pathhoriz puddlecornertr:296,47,29,3,\n101,101,101,101,98,99,98,101,101,101,101,0,16,17,25,18,0,0,0,0,0,0,0,0,0,18,25,17,35,35,0,0,0,\n0,0,16,17,25,17,25,35,16,0,0,0,0,16,36,36,34,36,0,0,0,0,0,0,16,17,17,35,35,0,0,0,0,\n0,0,17,44,17,35,background balancespace blocker count0 dark goal0 goodtemp:297,35,0,0,0,0,0,0,289,291,291,289,289,0,0,0,0,0,0,0,0,291,background blocker count0 dark goal3 nodrawspace number3 wrongtemp:298,291,291,0,0,\n0,0,0,297,35,34,35,297,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,43,17,44,17,37,43,37,0,\n0,0,0,290,290,298,289,290,0,0,0,0,0,37,43,17,18,17,17,0,0,0,0,0,0,293,293,293,293,0,0,0,0,\n0,18,18,25,25,17,0,0,0,0,0,0,0,0,0,294,294,294,294,0,0,0,0,0,16,18,38,18,38,26,0,0,0,\n0,0,38,17,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,25,25,17,9,0,0,0,\n0,0,0,17,43,17,17,17,9,0,0,3,2,1,1,3,1,2,41,2,2,3,101,101,101,101,98,99,98,98,98,98,98,\n0,0,18,17,17,0,0,0,0,0,0,0,0,0,17,17,25,34,34,0,0,0,0,0,0,34,25,43,35,34,0,0,0,\n0,0,0,34,25,34,18,0,0,0,0,0,0,0,25,17,35,36,0,0,0,0,0,0,17,25,17,35,36,35,0,0,0,\n0,0,0,289,background blocker count0 dark goal4 nodrawspace number4 wrongtemp:299,291,290,289,0,0,0,0,0,0,0,0,290,290,290,290,0,0,0,0,0,35,51,51,51,35,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,18,17,25,18,43,25,17,17,0,0,0,0,291,289,291,290,291,0,0,0,\n0,16,17,18,17,17,43,37,0,0,0,0,0,0,293,293,293,293,9,0,0,0,0,37,43,37,43,37,0,0,0,0,0,\n0,0,0,background imbalance wall:300,294,294,294,294,9,0,0,0,0,0,25,17,26,25,18,0,0,0,0,0,17,44,25,17,9,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,25,25,18,0,0,0,0,0,0,0,17,17,25,18,18,0,0,0,\n2,background ground3 houseroofside:301,background housewallside:302,302,302,3,2,41,2,1,3,101,101,101,101,98,99,98,98,98,98,background basemententrance1:303,0,0,36,35,35,9,0,0,0,0,0,\n0,0,0,25,25,25,35,35,0,0,0,0,0,0,36,34,35,297,35,0,0,0,0,0,0,36,34,34,34,16,0,0,0,\n0,0,0,25,17,35,36,0,0,0,0,0,16,35,36,35,35,34,35,0,0,0,0,0,0,290,290,298,299,290,0,0,0,\n0,0,0,0,0,298,291,298,290,0,0,0,0,0,34,51,51,51,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,18,17,18,17,17,17,17,25,0,0,0,background nodraw wall:304,291,298,299,291,289,0,0,0,0,0,17,17,17,44,17,17,0,0,0,\n0,0,0,292,293,293,292,0,0,0,0,0,17,17,17,17,18,0,0,0,0,0,0,0,0,0,background count0 dark goal1 imbalancespace number1 wrongtemp:305,305,305,305,0,0,0,\n0,0,0,17,25,38,26,18,0,0,0,0,16,18,25,25,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,17,18,17,17,0,0,0,0,0,0,0,43,43,17,43,43,0,0,0,301,background houseroof:306,background housewall:307,307,150,background ground3 pathend:308,background ground2 pathvert:309,background ground1 pathupbend:310,background ground1 puddlecornertl:311,58,12,\n101,101,101,101,98,99,98,98,98,98,98,0,0,35,34,36,0,0,0,0,0,0,0,0,16,17,17,17,34,36,16,0,0,\n0,0,0,35,51,25,25,34,0,0,0,0,0,0,36,25,36,18,0,0,0,0,0,0,0,17,17,35,35,16,0,0,0,\n0,0,35,297,35,35,51,35,0,0,0,0,0,304,290,298,289,291,291,0,0,0,0,0,0,0,304,298,290,299,290,0,0,\n0,0,0,35,51,51,51,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,17,17,17,17,37,17,25,17,16,\n0,0,0,289,290,289,291,289,0,0,0,0,0,18,17,17,17,43,17,16,0,0,0,0,0,background imbalancerandom wall:312,0,7,0,0,0,0,0,\n16,17,17,17,25,18,0,0,0,0,0,0,0,0,0,16,0,0,7,0,0,0,0,0,0,18,17,18,26,17,16,0,0,\n0,0,18,17,38,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,7,0,0,0,0,\n0,0,0,43,18,25,18,43,0,0,0,306,306,307,background housewallcrack:313,307,2,1,1,42,20,40,101,101,101,101,101,101,101,101,101,101,101,\n0,0,7,8,16,0,0,0,0,0,0,0,0,0,0,9,7,8,0,0,0,0,0,0,9,35,17,18,25,17,16,0,0,\n0,0,0,16,0,7,8,0,0,0,0,0,0,0,16,0,7,8,0,0,0,0,0,0,35,36,35,35,34,35,16,0,0,\n0,0,0,289,291,298,289,289,0,0,0,0,0,0,0,0,290,291,290,291,0,0,0,0,0,297,35,34,35,297,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,17,18,18,17,25,17,17,18,0,0,0,0,0,0,7,0,0,0,0,0,\n0,0,17,17,17,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,0,16,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,7,8,0,0,0,0,0,0,16,7,8,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,7,8,0,0,0,0,0,0,\n306,306,307,background housewindow:314,307,2,2,3,42,20,21,101,101,101,101,101,101,101,101,101,101,101,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,7,8,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,7,8,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,\n0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,background balancemesagefinal2 dark end puzzlestartbadend:315,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,16,0,7,8,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,9,8,7,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,306,306,307,307,307,2,2,1,background ground1 puddlecornertr:316,47,background ground2 puddlecornerbr:317,\n101,101,101,101,101,101,101,101,101,101,101,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,\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,\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,\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,\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,\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,\n0,0,0,0,0,0,0,0,0,0,0,306,306,307,307,307,1,1,2,3,2,1,101,101,101,101,101,101,101,101,101,101,101,\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,\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,\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,\n", 0, "1627779185736.9275"] ], [ `gallery: season finale`, - ["title Season Finale\nrun_rules_on_level_start\nbackground_color #222\ntext_color #DDD\nagain_interval 0\n\n========\nOBJECTS\n========\n\nBackground 1\nblack\n\nsunlit \n#78D448\n\nmunlit\n#70F044\n\nsnlit \n#58BBE0\n\nwnlit\n#C0FFEE\n\nait\n#FEB047\n\nwit \n#EFC040\n\nmlit \n#FBFB68\n\nalit\n#FFFB66\n\nablock\n#C84202\n\nsblock w\n#043804\n\nmblock\n#14D0D0\n\nwblock\n#6094B2\n\nwdoor\n#6094B2 #5074A2\n11100\n11110\n11111\n11110\n11100\n\nadoor \n#FD712D #C84202\n00011\n00001\n00000\n00001\n00011\n\nsdoor e\n#109010 #043804\n00011\n00001\n00000\n00001\n00011\n\nmdoor\n#80F4F4 #14D0D0\n00011\n00001\n00000\n00001\n00011\n\nspring\n#109010 #041904\n.000.\n00000\n01010\n00000\n.000.\n\nbunnyd ,\n#745004 black pink white\n..3..\n.000.\n.000.\n.101.\n..2..\n\nbunnyl <\n#745004 black pink white \n.....\n.100.\n20003\n.100.\n.....\n\nbunnyu .\n#745004 black pink white\n..2..\n.101.\n.000.\n.000.\n..3..\n\nbunnyr >\n#745004 black pink white\n.....\n.001.\n30002\n.001.\n.....\n\n\n\ncrat 7\n#745004 #C47004\n.000.\n01110\n01110\n01110\n.000.\n\nglass q\n#745004 #C47004 white\n.000.\n02110\n02120\n01120\n.000.\n\nflower\n#043804 #109010\n.....\n..1..\n.101.\n..1..\n.....\n\nwater o\n#1040E0 \n\nice p\nlightblue\n\n\n\ndrowned\n#1040E0 #745004 \n00000\n00100\n01110\n00100\n00000\n\nnodoor\ntransparent\n\nstart\ntransparent\n\nvert\ntransparent\n\nmoved\ntransparent\n\nnomoved\ntransparent\n\n\n\neaten\ntransparent\n\nwatermark\ntransparent\n\n\n\n\n\nsummer\n#f41010 #600404 #FFB008\n.000.\n00000\n01010\n00000\n.000.\n\n\n\nlightu \n#FFC008\n.....\n..0..\n.0.0.\n.....\n.....\n\n\n\nlightr \n#FFC008\n.....\n..0..\n...0.\n..0..\n.....\n\nlightl \n#FFC008\n.....\n..0..\n.0...\n..0..\n.....\n\nlightd \n#FFC008\n.....\n.....\n.0.0.\n..0..\n.....\n\n\nu1\n#FF5800\n.....\n..0..\n.0.0.\n.....\n.....\n\nr1\n#FF5800\n.....\n..0..\n...0.\n..0..\n.....\n\nl1\n#FF5800\n.....\n..0..\n.0...\n..0..\n.....\n\nd1\n#FF5800\n.....\n.....\n.0.0.\n..0..\n.....\n\nu2\n#FF7800\n.....\n..0..\n.0.0.\n.....\n.....\n\nr2\n#FF7800\n.....\n..0..\n...0.\n..0..\n.....\n\nl2\n#FF7800\n.....\n..0..\n.0...\n..0..\n.....\n\nd2\n#FF7800\n.....\n.....\n.0.0.\n..0..\n.....\n\nu3\n#FF9800\n.....\n..0..\n.0.0.\n.....\n.....\n\nr3\n#FF9800\n.....\n..0..\n...0.\n..0..\n.....\n\nl3\n#FF9800\n.....\n..0..\n.0...\n..0..\n.....\n\nd3\n#FF9800\n.....\n.....\n.0.0.\n..0..\n.....\n\nu4\n#FFA800\n.....\n..0..\n.0.0.\n.....\n.....\n\nr4\n#FFA800\n.....\n..0..\n...0.\n..0..\n.....\n\nl4\n#FFA800\n.....\n..0..\n.0...\n..0..\n.....\n\nd4\n#FFA800\n.....\n.....\n.0.0.\n..0..\n.....\n\nx0\ntransparent\n\nx1\ntransparent\n\nx2\ntransparent\n\nx3\ntransparent\n\nx4\ntransparent\n\nx5\ntransparent\n\nplusone\ntransparent\n\n\nver\n#1040E0 #A07004\n01110\n01110\n01110\n01110\n01110\n\nhor\n#1040E0 #A07004\n00000\n11111\n11111\n11111\n00000\n\nwver\nlightblue #A07004\n01110\n01110\n01110\n01110\n01110\n\nwhor\nlightblue #A07004\n00000\n11111\n11111\n11111\n00000\n\nbloomed\n#209A00\n.000.\n00000\n00000\n00000\n.000.\n\n\n\n\nbad\n#985000 white #ff5064\n..2..\n.000.\n.000.\n.000.\n..1..\n\n\n\n\nlose\n#985000 white #ff5064 black\n..2..\n.303.\n.000.\n.000.\n..1..\n\nnemir z\n#985000 #14D0D0\n0....\n00...\n0.0..\n0..0.\n00000\n\nsemir x\n#985000 #14D0D0\n00000\n0..0.\n0.0..\n00...\n0....\n\nnwmir c\n#985000 #14D0D0\n....0\n...00\n..0.0\n.0..0\n00000\nswmir v\n#985000 #14D0D0\n00000\n.0..0\n..0.0\n...00\n....0\n\ndiag b\n#985000 #14D0D0\n00000\n00..0\n0.0.0\n0..00\n00000\n\ndiago n\n#985000 #14D0D0\n00000\n0..00\n0.0.0\n00..0\n00000\n\n\nwins\ntransparent\n\nnew\ntransparent\n\nmore\ntransparent\n\n\n\nautumn \n#F45305 #6A2402\n.000.\n00000\n01010\n00000\n.000.\n\n\nbird m\ndarkblue blue lightblue black\n..1..\n2.1.2\n11111\n.010.\n..1..\n\n\n\nfella\n#7E2D00\n.000.\n00000\n00000\n00000\n.000.\n\nfellb\n#9A0501\n.000.\n00000\n00000\n00000\n.000.\n\nfellc\n#CD0601\n.000.\n00000\n00000\n00000\n.000.\n\nfelld\n#CCC926\n.000.\n00000\n00000\n00000\n.000.\n\nfelle\n#F7C709\n.000.\n00000\n00000\n00000\n.000.\n\nfellf\n#F45305\n.000.\n00000\n00000\n00000\n.000.\n\nfellg\n#DA4528\n.000.\n00000\n00000\n00000\n.000.\n\nfellh\n#FD712D\n.000.\n00000\n00000\n00000\n.000.\n\nconnected\ntransparent\n\nfirst\ntransparent\n\nnotfirst\ntransparent\n\n\nwinter\n#1010B0 #101030\n.000.\n00000\n01010\n00000\n.000.\n\n\ndead\nbrown\n..0..\n..0..\n00000\n..0..\n..0..\n\ntemp\ntransparent\n\ntemp2\ntransparent\n\nlef\ntransparent\n\nrigh\ntransparent\n\ndow\ntransparent\n\nuq\ntransparent\n\nbunn\ntransparent\n\niffy \ntransparent\n\nwinner1\ntransparent\n\nwinner2\ntransparent\n\nwinner3\ntransparent\n=======\nLEGEND\n=======\n\nbunny = bunnyl or bunnyr or bunnyd or bunnyu\naqua = water or ice\n\nfell = fella or fellb or fellc or felld or felle or fellh or fellg or fellf\nflow = flower or bloomed or dead\n\ni = spring and start\n\nplayer = spring or summer or autumn or winter\n\nmirror = swmir or semir or nwmir or nemir\n\ndiags = diag or diago\nlight = lightu or lightd or lightr or lightl \nblock = sblock or ablock or wblock or mblock\nlit = alit or mlit\nunlit = munlit or sunlit\nnlit = snlit or wnlit\nit = wit or ait\nfloor = unlit or nlit or lit or it\nl= snlit\na = flower and snlit\nwinner = winner1 or winner2 or winner3\ndoor = sdoor or adoor or mdoor or wdoor\ncra = crat or block or mirror or diags or fell or dead or bunny\ncratd = crat or block or fell or dead\ncred = crat or diags or mirror or fell\ncre = spring or block or crat or glass or door or bunny or ice or mirror or diags\ncrae = block or glass or bad or flow\ncrate = crat or block or glass or aqua\ncrated = block or glass or mirror or bad or diags or summer or flow\npush = mirror or diags\nt = bad and mlit\nfir = u1 or d1 or l1 or r1\nsec = u2 or d2 or l2 or r2\nthi = u3 or d3 or l3 or r3\nfou = u4 or d4 or l4 or r4\nxs = x0 or x1 or x2 or x3 or x4 or x5\n2 = summer and start\n\nk= water \n\n\n\n\n\n=======\nSOUNDS\n=======\nSFX1 80425104\nSFX2 16467501\nSFX3 80127507\nSFX4 71317504\nSFX5 25216505\nSFX6 16917301\nSFX7 92204307\nSFX8 54283103\nSFX9 32265107\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nvert\nnodoor,wins, lose\nwatermark, connected\nfloor\nice\nmoved, nomoved\nflow, eaten\nwater,\nhor, ver, whor, wver\nlightu, first, notfirst\nlightr\nlightd\nlightl\nmore\nbad\nstart, new\ntemp, temp2\nplayer, glass, crat, block, door, bunny, mirror, diags, fell, bird,\nwinner\nlef, righ, dow, uq\nbunn\niffy\nstart, drowned\nplusone\nx0\nx1\nx2\nx3\nx4\nx5\nu1, u2, u3, u4\nd1, d2, d3, d4\nl1, l2, l3, l4\nr1, r2, r3, r4\n\n\n\n======\nRULES\n======\n\n\n\n[spring][start watermark] -> restart\n[spring][drowned][start] -> [spring][drowned][start watermark]\n\n[action spring no unlit no flower no aqua] -> [spring flower] SFX1\n[action spring flower] -> [spring eaten]\n\n[spring][floor] -> [spring][]\n[> spring| water] -> [spring|water]\n[> spring | crat| no cre no aqua flower] -> [|spring|crat] SFX3\n[> spring | crat| no cre no aqua] -> [|spring|crat] SFX7\n[> spring | mirror| no cre no aqua flower] -> [|spring|mirror] SFX3\n[> spring | mirror| no cre no aqua] -> [|spring|mirror] SFX7\n[spring][vert] ->[spring][]\n[spring][eaten]->[spring][]\n[spring][nomoved] -> [spring][]\n[spring][moved] -> [spring][]\n\nlate [spring ice] -> [spring ice watermark]\nlate [spring][no spring ice watermark] -> [spring][water watermark] SFX2\n\nlate [spring][bunny watermark] -> [spring][drowned] SFX6\n\nlate up [spring][bunnyu no moved |no cre flower] ->[spring] [|bunnyu moved eaten] SFX3 \nlate left [spring][bunnyl no moved |no cre flower] -> [spring][|bunnyl moved eaten] SFX3 \nlate right [spring][bunnyr no moved |no cre flower] -> [spring][|bunnyr moved eaten] SFX3 \nlate down [spring][bunnyd no moved |no cre flower] -> [spring][|bunnyd moved eaten] SFX3\n\n\nlate up [spring][bunnyu no moved |no cre no flower] ->[spring] [|bunnyu moved] \nlate left [spring][bunnyl no moved |no cre no flower] -> [spring][|bunnyl moved] \nlate right [spring][bunnyr no moved |no cre no flower] -> [spring][|bunnyr moved] \nlate down [spring][bunnyd no moved |no cre no flower] -> [spring][|bunnyd moved] \n\nlate right [|nodoor spring][eaten] -> [spring|sdoor][eaten]\nlate [spring][nodoor][eaten] -> [spring][sdoor][eaten]\n\nlate [spring] -> [spring nomoved]\nlate [nomoved spring][moved] -> [spring][moved]\nlate [spring][moved no spring]->[spring moved][] again\n\n\nlate [spring][no block no aqua] -> [spring][snlit]\nlate [spring][nodoor floor] -> [spring][nodoor sunlit]\nlate [spring][start floor] -> [spring][start sunlit]\n\nlate [spring][flow nlit] -> [spring][flow sunlit]\nlate [spring][flow |nlit] -> [spring][flow|sunlit]\nlate [spring][flow |ice] -> [spring][flow |water watermark]\nlate vertical [spring][flower|] -> [spring][flower|vert]\nlate horizontal [spring][vert|nlit] -> [spring][vert|sunlit]\nlate horizontal [spring][vert|ice] -> [spring][vert|water watermark]\n\nlate up [spring][nomoved][bunnyu | cre] -> [spring][nomoved][bunnyr|cre]\nlate right [spring][nomoved][bunnyr|cre] -> [spring][nomoved][bunnyd| cre]\nlate down [spring][nomoved][bunnyd| cre] -> [spring][nomoved][bunnyl| cre]\nlate left [spring][nomoved][bunnyl| cre] -> [spring][nomoved][bunnyu| cre]\nlate up [spring][nomoved][bunnyu | cre] -> [spring][nomoved][bunnyr|cre]\nlate right [spring][nomoved][bunnyr|cre] -> [spring][nomoved][bunnyd| cre]\nlate down [spring][nomoved][bunnyd| cre] -> [spring][nomoved][bunnyl| cre]\nlate left [spring][nomoved][bunnyl| cre] -> [spring][nomoved][bunnyu| cre]\nlate up [spring][nomoved][bunnyu | cre] -> [spring][nomoved][bunnyr|cre]\nlate right [spring][nomoved][bunnyr|cre] -> [spring][nomoved][bunnyd| cre]\nlate down [spring][nomoved][bunnyd| cre] -> [spring][nomoved][bunnyl| cre]\nlate left [spring][nomoved][bunnyl| cre] -> [spring][nomoved][bunnyu| cre]\nlate up [spring][nomoved][bunnyu | cre] -> [spring][nomoved][bunnyr|cre]\nlate right [spring][nomoved][bunnyr|cre] -> [spring][nomoved][bunnyd| cre]\nlate down [spring][nomoved][bunnyd| cre] -> [spring][nomoved][bunnyl| cre]\nlate left [spring][nomoved][bunnyl| cre] -> [spring][nomoved][bunnyu| cre]\n\nlate [spring][door] -> [spring][nodoor vert sunlit]\nlate [spring][nodoor vert floor no player][nlit] -> [spring][sdoor][snlit]\nlate [spring][nodoor vert floor no player][ice] -> [spring][sdoor][ice]\nlate [spring][nodoor floor no player][snlit] -> [spring][sdoor][snlit]\nlate [spring][nodoor floor no player][ice] -> [spring][sdoor][ice]\nlate [spring][nodoor vert] -> [spring][nodoor] SFX8\n\nlate [drowned][spring nodoor] -> [drowned][spring nodoor watermark]\n\n\n\n\n\n\nlate [start summer][bunny] -> [start summer][mlit bad]\nlate [summer][sunlit] -> [summer][munlit]\nlate [summer][sblock] -> [summer][mblock]\n\n[xs] -> []\n[fir] -> []\n[sec] -> []\n[thi] -> []\n[fou] -> []\n\n\n[summer][no floor no door no nodoor no block] -> [summer][munlit]\n\n\n[summer][new] -> [summer][]\n[light]->[]\n\n\n\n\n\n\n[> summer| water] -> cancel\n[> summer| flow] -> cancel\n[> summer| push| no crae no water] -> [> summer|> push|] SFX3\nstartloop\nright [summer][> nemir| swmir] -> [summer][|stationary diag]\nup [summer][> nemir| swmir] -> [summer][|stationary diag]\ndown [summer][> swmir| nemir] -> [summer][|stationary diag]\nleft [summer][> swmir| nemir] -> [summer][|stationary diag]\nleft [summer][> nwmir| semir] -> [summer][|stationary diago]\nup [summer][> nwmir| semir] -> [summer][|stationary diago]\ndown [summer][> semir| nwmir] -> [summer][|stationary diago]\nright [summer][> semir| nwmir] -> [summer][|stationary diago]\n\n[summer][> push|push| no crae no water] -> [summer][> push|> push|]\nendloop\n[summer][> push| stationary push] -> cancel\n[> summer| stationary push] -> cancel\n\nlate [summer] -> [summer lightu lightr lightd lightl x0]\n\n\n\nstartloop \n\nlate [light more] -> [light]\n\nlate up [lightu xs no flow no more|no lightu no cre no door ] -> [lightu xs| lightu more xs plusone]\nlate down [lightd xs no flow no more|no lightd no cre no door ] -> [lightd xs| lightd more xs plusone]\nlate left [lightl xs no flow no more|no lightl no cre no door ] -> [lightl xs| lightl more xs plusone]\nlate right [lightr xs no flow no more|no lightr no cre no door ] -> [lightr xs| lightr more xs plusone]\n\n\nlate up[lightu no more no flow xs|semir no lightr] -> [lightu xs|lightr more semir xs plusone]\nlate up[lightu no more no flow xs|swmir no lightl] -> [lightu xs|lightl more swmir xs plusone]\nlate down[lightd no more no flow xs|nemir no lightr] -> [lightd xs|lightr more nemir xs plusone]\nlate down[lightd no more no flow xs|nwmir no lightl] -> [lightd xs|lightl more nwmir xs plusone]\nlate left[lightl no more no flow xs|semir no lightd] -> [lightl xs|lightd more semir xs plusone]\nlate left[lightl no more no flow xs|nemir no lightu] -> [lightl xs|lightu more nemir xs plusone]\nlate right[lightr no more no flow xs|swmir no lightd] -> [lightr xs|lightd more swmir xs plusone]\nlate right[lightr no more no flow xs|nwmir no lightu] -> [lightr xs|lightu more nwmir xs plusone]\n\n\nlate up [lightu no crae mirror|flow no new] -> [lightu mirror|bloomed new] \nlate down [lightd no crae mirror|flow no new] -> [lightd mirror|bloomed new] \nlate left [lightl no crae mirror|flow no new] -> [lightl mirror| bloomed new] \nlate right [lightr no crae mirror|flow no new] -> [lightr mirror|bloomed new] \n\nlate up [lightu no crae summer|flow no new] -> [lightu summer|bloomed new] \nlate down [lightd no crae summer|flow no new] -> [lightd summer|bloomed new] \nlate left [lightl no crae summer|flow no new] -> [lightl summer| bloomed new] \nlate right [lightr no crae summer|flow no new] -> [lightr summer|bloomed new]\n\n\nlate up [lightu no crated water|flow no new floor] -> [ver|mlit] SFX4 again\nlate down [lightd no crated water|flow no new floor] -> [ver|mlit] SFX4 again\nlate left [lightl no crated water|flow no new floor] -> [hor|mlit] SFX4 again\nlate right [lightr no crated water|flow no new floor] -> [hor|mlit] SFX4 again\n\n\nlate up [lightu no crated no water no hor no ver|flow no new floor] -> [bloomed new|mlit] again SFX9\nlate down [lightd no crated no water no hor no ver|flow no new floor] -> [bloomed new|mlit] again SFX9\nlate left [lightl no crated no water no hor no ver|flow no new floor] -> [bloomed new|mlit] again SFX9\nlate right [lightr no crated no water no hor no ver|flow no new floor] -> [bloomed new|mlit] again SFX9\n\nlate [x0 plusone] -> [x1]\nlate [x1 plusone] -> [x2]\nlate [x2 plusone] -> [x3]\nlate [x3 plusone] -> [x4]\nlate [x4 plusone] -> [x5]\n\n\nendloop\n\n\nlate [summer unlit] -> [summer mlit]\nlate [light unlit] -> [light mlit]\nlate [summer|flower] -> [summer| bloomed]\nlate [light flow] -> [bloomed]\n\nlate up [lightu|crat floor] -> [lightu|glass mlit]\nlate down [lightd|crat floor] -> [lightd|glass mlit]\nlate right [lightr|crat floor] -> [lightr|glass mlit]\nlate left [lightl|crat floor] -> [lightl|glass mlit]\nlate up [lightu|glass floor] -> [lightu|glass mlit]\nlate down [lightd|glass floor] -> [lightd|glass mlit]\nlate right [lightr|glass floor] -> [lightr|glass mlit]\nlate left [lightl|glass floor] -> [lightl|glass mlit]\n\n\nlate [lightu x4] -> [lightu u4 x4]\nlate [lightd x4] -> [lightd d4 x4]\nlate [lightl x4] -> [lightl l4 x4]\nlate [lightr x4] -> [lightr r4 x4]\nlate [lightu x3] -> [lightu u3 x3]\nlate [lightd x3] -> [lightd d3 x3]\nlate [lightl x3] -> [lightl l3 x3]\nlate [lightr x3] -> [lightr r3 x3]\nlate [lightu x2] -> [lightu u2 x2]\nlate [lightd x2] -> [lightd d2 x2]\nlate [lightl x2] -> [lightl l2 x2]\nlate [lightr x2] -> [lightr r2 x2]\n\nlate [lightu x1] -> [lightu u1 x1]\nlate [lightd x1] -> [lightd d1 x1]\nlate [lightl x1] -> [lightl l1 x1]\nlate [lightr x1] -> [lightr r1 x1]\n\n\n\n\n\nlate [summer][door] -> [summer][nodoor new mlit]\n\nlate [summer][nodoor new lit][unlit] -> [summer][mdoor][munlit]\nlate [summer][lose]->restart\nlate [light bad] -> [light lose] SFX5\nlate [summer][nodoor new] -> [summer][nodoor] SFX8\nlate [summer nodoor] -> [wins summer]\n\n\n\n\nlate [autumn][xs] -> [autumn][]\nlate [autumn][fir] -> [autumn][]\nlate [autumn][sec] -> [autumn][]\nlate [autumn][thi] -> [autumn][]\nlate [autumn][fou] -> [autumn][]\nlate [autumn][mlit] -> [autumn][alit]\nlate [autumn][mblock] -> [autumn][ablock]\n\n\n[> autumn | crat| no cre no aqua] -> [| autumn |crat] SFX7\n[> autumn | mirror| no cre no aqua] -> [| autumn |mirror] SFX7\n\nlate [autumn][bad] -> [autumn][bunnyr]\n\n[first][autumn] -> [][autumn notfirst]\n\n\n[> autumn|crat|no block no bunny no bird no flow no door no crat no glass] -> [|autumn|crat]\n[> autumn|water] -> [autumn|water]\n\n[autumn][water floor] -> [autumn][water]\n[autumn][hor floor] -> [autumn][hor]\n[autumn][ver floor] -> [autumn][ver]\n[autumn][no floor no door no nodoor no block no water no hor no ver] -> [autumn][alit]\nlate [autumn][glass floor] -> [autumn][glass ait]\n[autumn][no vert] -> [autumn][vert]\ndown[autumn][vert|...|no block] -> [autumn][|...|]\nhorizontal[autumn][vert|...|no vert] -> [autumn][|...|]\n\nlate down [autumn][glass|no bloomed no player no bunny no bad no ablock] -> [autumn][crat|bird moved]\n\n[> autumn | bird|no bloomed no door no crate no fell no bird ] -> [> autumn| > bird|]\n\n\n[> autumn|bloomed|no bloomed no door no crate no fell no bird no bunny] -> [> autumn|random fell start|]\nhorizontal [> autumn|bloomed|no bloomed no door water no fell no bird no bunny] -> [|autumn|hor]\nvertical [> autumn|bloomed|no bloomed no door water no fell no bird no bunny] -> [|autumn|ver]\n[> autumn|start fell] -> [> autumn|> fell]\n[> autumn|bloomed] -> cancel\n\n\nlate [autumn][fell floor] -> [autumn][fell ait]\nlate [autumn floor] -> [autumn ait]\n\n\n\nlate [autumn][drowned] -> restart\nlate [autumn][moved no crat no bird] -> [autumn][]\nlate right [notfirst][autumn|...|no bloomed no bird no bunny no block no fell water|bunny no moved] -> [notfirst][autumn|...|drowned|]\nlate left [notfirst][autumn|...|no bloomed no bird no bunny no block no fell water|bunny no moved] -> [notfirst][autumn|...|drowned|]\nlate right [notfirst][autumn|...|no bloomed no bird no bunny no block no fell|bunny no moved] -> [notfirst][autumn|...|bunnyl moved|]\nlate left [][autumn|...|no bloomed no bird no bunny no block no fell|bunny no moved] -> [notfirst][autumn|...|bunnyr moved|]\n\nlate down [autumn][bird no moved|no door no fell no block no bloomed no player no bird no bunny] -> [autumn][|bird moved]\nlate [autumn][bird vert] -> [autumn][] \n\nlate [autumn][connected] -> [autumn][]\nlate [autumn no connected] -> [autumn connected]\n\n+ late [autumn][connected|no connected no fell no bird no crate no door no bloomed no bunny no ver no hor] -> [autumn][connected|connected]\n\nlate [autumn][floor connected] -> [autumn][ait connected]\n\nlate [autumn][bird moved] -> [autumn][bird] again\n\n\nlate [autumn][door] -> [autumn][nodoor ait]\nlate [autumn][nodoor it][lit] -> [autumn][adoor][alit]\nlate [autumn][nodoor it][bird] -> [autumn][adoor][bird]\nlate [autumn][nodoor it][glass] -> [autumn][adoor][glass]\n\nlate [autumn nodoor] -> [wins autumn]\n\n\nlate [winter][ait] -> [winter][wit]\nlate [winter][ablock] -> [winter][wblock]\n\n[winter][no floor no door no nodoor no block no flow] -> [winter][ait]\n\n([> player | crat|no flower] -> [> player| > crat|]\n[> player | diags|no flower] -> [> player| > diags|])\n[> winter][ lose] -> restart\n[uq] [winter] -> [] [up winter]\n[dow] [winter] -> [] [down winter]\n[righ] [winter] -> [] [right winter]\n[lef] [winter] -> [] [left winter]\n\n[moved] [winter] -> [] [winter] \n[bunn] [winter] -> [] [winter] \n[bunny] [winter] -> [bunny bunn] [winter] \n\n\n\n[> winter floor no moved|no flow no door no cra ] -> [wnlit |> winter moved] \n\n\n\nright [> winter floor no moved| stationary swmir] -> [> temp2 wnlit|v temp swmir]\nup [> winter floor no moved| stationary swmir] -> [> temp2 wnlit|^ temp swmir]\ndown [> winter floor no moved| stationary nwmir] -> [> temp2 wnlit|v temp nwmir]\nright [> winter floor no moved| stationary nwmir] -> [> temp2 wnlit|^ temp nwmir]\nleft [> winter floor no moved| stationary nemir] -> [> temp2 wnlit|v temp nemir]\ndown [> winter floor no moved| stationary nemir] -> [> temp2 wnlit|^ temp nemir]\nup [> winter floor no moved| stationary semir] -> [> temp2 wnlit|v temp semir]\nleft [> winter floor no moved| stationary semir] -> [> temp2 wnlit|^ temp semir]\n\nstartloop \nright [> temp floor no moved| stationary swmir] -> [ wnlit iffy|v temp swmir]\nup [> temp floor no moved| stationary swmir] -> [ wnlit iffy|^ temp swmir]\ndown [> temp floor no moved| stationary nwmir] -> [ wnlit iffy|v temp nwmir]\nright [> temp floor no moved| stationary nwmir] -> [ wnlit iffy|^ temp nwmir]\nleft [> temp floor no moved| stationary nemir] -> [ wnlit iffy|v temp nemir]\ndown [> temp floor no moved| stationary nemir] -> [ wnlit iffy|^ temp nemir]\nup [> temp floor no moved| stationary semir] -> [ wnlit iffy|v temp semir]\nleft [> temp floor no moved| stationary semir] -> [ wnlit iffy |^ temp semir]\n\nendloop\n\n[> temp floor|no flow no door no cra ] -> [wnlit|> winter moved] SFX1\n[temp][temp2][nlit iffy] -> [temp][temp2][wit]\n[temp][> temp2] -> [][> winter]\n[temp] -> []\n[temp2] -> []\n\n[iffy] -> []\n\n[> winter floor no moved|cred|no flow no door no block ] -> [wnlit > winter| > cred|]\n\n[winter it] -> [winter wnlit]\n[> winter no moved| door] -> [winter moved| temp door] \n[temp door] [winter] [it] -> [door] [winter] [it]\n[temp door][winter] -> [winter nodoor wnlit][]\n\n\n[ winter| bunny] -> [winter|> bunny] \n [winter] [> bunny| bunny] -> [winter] [> bunny| > bunny]\n [winter] [left bunny] -> [winter] [left bunnyl]\n [winter] [right bunny] -> [winter] [right bunnyr]\n [winter] [down bunny] -> [winter] [down bunnyd]\n [winter] [up bunny] -> [winter] [up bunnyu]\n\n [winter] [> bunny|water] -> [winter][|lose]\n [winter] [> bunny|ice] -> [winter][bunny|ice]\n\nlate [winter hor] -> [winter whor]\nlate [winter ver] -> [winter wver]\n\nlate [winter][bunny no bunn] -> SFX3\n\n\n[left winter moved] -> [lef winter] again\n[right winter moved] -> [righ winter] again\n[down winter moved] -> [dow winter] again\n[up winter moved] -> [uq winter] again\n\n[winter water uq] -> [winter ice]\n[winter water lef] -> [winter ice]\n[winter water dow] -> [winter ice]\n[winter water righ] -> [winter ice]\n[winter water] -> [winter ice]\n\n[winter][moved] -> [winter][] again\n\n\n\n\n\nright [winter][> nemir| swmir] -> [winter][|diag]\nup [winter][> nemir| swmir] -> [winter][|diag]\ndown [winter][> swmir| nemir] -> [winter][|diag]\nleft [winter][> swmir| nemir] -> [winter][|diag]\nleft [winter][> nwmir| semir] -> [winter][|diago]\nup [winter][> nwmir| semir] -> [winter][|diago]\ndown [winter][> semir| nwmir] -> [winter][|diago]\nright [winter][> semir| nwmir] -> [winter][|diago]\n[winter][> cre| cre| no flow no door no block] -> [winter][> cre| > cre| ]\n\n[winter][> cre|stationary cra] -> [winter][cre|cra]\n[> winter| fell floor] -> [winter|dead wnlit] SFX3\n[> winter|stationary cra] -> [winter|cra]\n\nlate [winter it] -> [winter wnlit]\nlate [winter][door] -> [winter][nodoor new wnlit]\nlate [winter][nodoor new nlit][it] -> [winter][wdoor][wit]\nlate [winter][nodoor new] -> [winter][nodoor] SFX8\nlate [winter nodoor] -> [wins winter]\nlate [start][winter wins floor] -> win\n\nlate [fell hor] -> cancel\nlate [fell ver] -> cancel\n\nlate [spring no moved nodoor] -> [winner1]\nlate [summer wins ] -> [winner2]\nlate [autumn wins] -> [winner3]\n\nlate [ winner1 no watermark no moved no first][start][sblock] -> [winner1 first][start][mblock] again\nlate [ winner1 no watermark no moved no first][start][mblock] -> [mdoor ][start summer][mblock] again\nlate [ winner2 no watermark no moved no first][start][mblock] -> [winner2 first][start][ablock] again\n\nlate [winner2 no watermark no moved no first][start][ablock] -> [adoor ][start first autumn][ablock] again\nlate [ winner3 no watermark no moved no first][start][ablock] -> [winner3 first][start][wblock] again\n\nlate [winner3 no watermark no moved no first][start][wblock] -> [adoor ][start first winter][wblock] again\n\nlate [winner first] -> [winner no first]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n\nmessage Spring: \"Wow, I can't believe that it's only been 82 thousand years! It feels like I've known about all of you for such a long time! \"\n\nmessage Summer: \"What I can't believe is that I've been able to put up with you for that long!\"\n\nmessage Autumn: \"Come on, there's no reason to be mean.\"\n\nmessage Winter: \"I assume that you are being hyperbolic again, Summer.”\nmessage Winter: \"I do not see what other option you would have had, as there is no other place that you could go.\"\n\nwwwwww\ni1111w\nw1111w\nw1111e\nwwwwww\n\nmessage Spring: \"I still remember it as if it were only a decade ago.\"\nmessage Spring: \"Oh! Autumn, you might be able to see one of my favorite comets soon!\n\nmessage Summer: \"Argh! Why do these things always seem to just miss me?\"\n\nmessage Autumn: \"I just saw it. The view was marvelous! Thanks for the heads up.\"\n\nmessage Winter: \"Speaking of our initial introductions, I have a question for you, Spring.\"\nmessage Winter: \"Did you actually think that I was an animal? Do I look more distinct from the rest of you than I had previously believed?\"\n\n\n\nwwwwwww\nwl1p11w\nwl1pppw\ni11p11e\nwwwwwww\nmessage Spring: \"Nope, You look just like us!\"\nmessage Spring: \"Even though now it's hard for me to even imagine life without knowing all of you friends,\"\nmessage Spring: \"At the time, I had no idea there was anything else like me!\"\nmessage Spring: \"You also slid by so fast, so that's why I assumed I must have seen an animal.\"\n\nmessage Summer: \"I guess none of us can blame you for making a wrong assumption Spring, 'cause we all did the same.\"\nmessage Summer: \"I still say that my guess was better than all of yours though!\"\n\nmessage Autumn: \"I can also hardly remember not knowing about you too, Spring.\"\nmessage Autumn: \"The intermediate time, when I only knew Summer, was a hard time for me, but your optimism and enthusiasm never ceases to inspire me.\"\n\nmessage Winter: \"Yes, I can imagine that the interim went...\"\nmessage Winter: \"...well...\"\nmessage Winter: \"...poorly, to say the least.\"\n\n\n\nwwwwwww\nw11q11w\nw11l11w\ni11l1le\nwwwwwww\n\nmessage Spring: \"This year is going to be the best year ever!\"\n\nmessage Summer: \"We GET IT already!\"\nmessage Summer: \"Do you have to say that EVERY SINGLE TIME?\"\n\nmessage Autumn: \"I agree with Spring.\"\nmessage Autumn: \"I think we should strive to make every year better than the last.\"\n\nmessage Winter: \"But I do not see any evidence that this year would be any different.\"\nmessage Winter: \"It will most likely not have any major improvements or regression.\"\n\nwwwwwww\nw1ppp1w\nw1ppp1e\nwp111pw\nwp111pw\nw1ppp1w\nip111pw\nwp111pw\nwwwwwww\n\nmessage Spring: \"Autumn, I wish that one day I could finally meet you, instead of having to leave these messages.\"\nmessage Spring: \"You sound so beautiful!\"\nmessage Spring: \"Summer or Winter, can you please describe how Autumn looks again for me?\"\n\nmessage Summer: \"He's orange.\"\n\nmessage Autumn: \"Quite the way with words as always, Summer.\"\n\nmessage Winter: \"I believe his skin looks closer to that of a tangerine than an orange.\"\nmessage Winter: \"And his eyes have a similar color to the seed coat of a peanut.\"\n\n\n\nwwwwwww\nwww1eww\nwwi1www\nwww1www\nwwl1l1w\nw111llw\nw111llw\nw111www\nwwwwwww\n\nmessage Spring: \"You must look so gorgeous Autumn!\"\nmessage Spring: \"I'd also wish that I could see you change the leaves' color sometime too, it seems so magical!\"\n\nmessage Spring: \"Hey Summer and Winter, what about you two? Do you ever think about wanting to meet each other?\"\n\nmessage Summer: \"Definitely not! It sounds like he's FREEZING!\"\n\nmessage Autumn: \"Awwww, Spring. I would be blushing if I could.\"\n\nmessage Winter: \"I will not lie and say that I am not curious about Summer's brightness\"\nmessage Winter: \"But I worry that your head may be full of dangerous thoughts, Spring\"\n\n\n\nwwwwwww\nwx11lle\nw1l1l1w\nwll111w\nil111cw\nwwwwwww\n\nmessage Spring: \"What?\"\nmessage Spring: \"What do you mean?\"\n\nmessage Summer: \"He's trying to say you're SCARING US!\"\nmessage Summer: \"All this talk about meeting our counterparts!\"\n\nmessage Autumn: \"I think you're overreacting a bit.\"\n\nmessage Winter: \"I do not believe she is.\"\nmessage Winter: \"We have no idea what could happen if one of us were to ignore our purpose.\"\n\n\n\nwwwwwwww\nilql11ww\nwllll11w\nwlllll1w\nwwwwlllw\nwwww11le\nwwwwww1w\n\nmessage Spring: \"I'm...\"\nmessage Spring: \"I'm so sorry Winter! I never meant to upset you!\"\nmessage Spring: \"I'll never mention it again!\"\n\nmessage Summer: \"GOOD!\"\nmessage Summer: \"I was getting sick of hearing you rambling on about it.\"\n\nmessage Autumn: \"Hey, don't talk to her that way!\"\nmessage Autumn: \"Winter, I agree that we have no idea what could happen.\"\nmessage Autumn: \"But that might just mean that it could be nothing!\"\nmessage Autumn: \"None of us can remember a time before our purposes, so none of us can know why we are doing it.\"\nmessage Autumn: \"It could all just be arbitrary and meaningless.\"\n\nmessage Winter: \"Autumn, please do not make any rash decisions because of your emotions.\"\nmessage Winter: \"Although it is true none of us know the meaning of the cycle, something must have set the chain in motion.\"\nmessage Winter: \"I do not believe that it all could lack meaning.\"\n\n\n\n\nwwwwwww\nw1111lw\nw111wlw\nw111wle\nw1111lw\nwl1lllw\nil1lllw\nwwwwwww\n\nmessage Spring: \"Please stop fighting you guys! I hate seeing when you argue!\"\n\nmessage Summer: \"Do like Spring said, and just stop being stupid about this Autumn!\"\n\nmessage Autumn: \"Spring didn't say I was being stupid.\"\nmessage Autumn: \"And I don't mean to start an argument, but I think that it's important to sort out what should be believed.\"\nmessage Autumn: \"We don't actually have any reason to believe that we even have a purpose.\"\nmessage Autumn: \"We'll never know unless we break the chain, and I don't think I want to live an eternity without you, Spring.\"\n\nmessage Winter: \"Be reasonable Autumn! This could affect the entire balance of the planet.\"\nmessage Winter: \"And it is not true that my claims are based on no evidence.\"\nmessage Winter: \"Do you think it is just coincidence that, with no knowledge of each other,\"\nmessage Winter: \"We all began to travel around the Earth along the same path, in the same direction, and with the same interval?\"\n\n\n\nwwwwwwww\nwllpllww\nwl1p11ww\nwppwppww\nw11pl1ww\ni1lpllww\nwppwppww\nwllpllww\nwl1p11ew\nwwwwwwww\n\nmessage Spring: \"Autumn...\"\nmessage Spring: \"Winter...\"\nmessage Spring: \"I...\"\nmessage Spring: \"I don't know what to do!\"\nmessage Spring: \"I don't know who to believe!\"\nmessage Spring: \"Can't we all just go back to being friends again?\"\n\nmessage Summer: \"UGHHHH\"\nmessage Summer: \"This is getting ridiculous.\"\nmessage Summer: \"If you two are going to abandon everything we know and meet each other, just DO IT already!\"\nmessage Summer: \"Otherwise...\"\nmessage Summer: \"SHUT THE HELL UP ABOUT IT ALREADY!\"\n\nmessage Autumn: \"I'm willing to meet you if you are, Spring\"\nmessage Autumn: \"If anything goes wrong, I just need you to know...\"\nmessage Autumn: \"I love you!\"\n\nmessage Winter: \"You must not!\"\nmessage Winter: \"You are putting us all at risk for nothing!\"\n\n\n\n\n\nwwwwwwwww\nwi1>1wwww\nww111l1ww\nwww11l1ew\nww111l1ww\nww1l1lwww\nwwwwwwwww\nwwwwwwwww\n\nmessage Spring: \"I...\"\nmessage Spring: \"I love you too!\"\nmessage Spring: \"I'm so excited to finally get to talk to you face to face!\"\nmessage Spring: \"Nothing will go wrong Autumn! I believe that love can conquer anything!\"\n\nmessage Summer: \"HEY!\"\nmessage Summer: \"Why should I have to keep working if they're going to stop!?\"\nmessage Summer: \"If they're going to quit, then I QUIT TOO!\"\n\nmessage Autumn: \"I sure hope you're right, Spring.\"\n\nmessage Winter: \"I should try to minimize the risk of catastrophe.\"\nmessage Winter: \"I will try to take up the purposes of all of us,\"\nmessage Winter: \"Although there are things I already am aware I will not be able to do as well.\"\n\n\nwwwwwwwwww\nwwwwwwwwww\nw111wwwwww\ni111ewwwww\nw111wwwwww\nw1l1wwwwww\nwlllwwwwww\nwlll1lll1w\nwlllwwwwww\nwwwwwwwwww\n\nmessage Winter: \"I do hope they return some day, but until then...\"\nmessage Winter: \"...I suppose that it is the beginning of an Age of Ice.\"\n\n\n\n\n\nwwwwww\nwww1ww\nww11ww\nw111ww\ni1llww\nw1llww\nww1lww\nww1llw\nww1lle\nww111w\nww11ww\nww1www\nwwwwww\n\nmessage END OF PART 5\n\n\n\n",[3,3,2,2,2,3,3,3,0,3,3,1,1,0,1,4,2,2,4,3,3,0,4,2,1,1,1,4,3,2,3,4,1,1,0,4,3,3,3,3,1,1,1,1,4,4,3,1,1,1,1,3,1,1,3,3,2,1,4,3,3,4,0,"undo",1,1,1,3,3,0,0,3,1,3,4,3,3,3,3,3,2,2,2,1,"undo",2,"undo",0,"undo",2,"undo","undo","undo","undo",2,2,2,2,2,"undo","undo","undo",0,3,"undo","undo","undo","undo","undo","undo",3,2,3,2,2,1,2,"undo",2,"undo",0,3,3,"undo","undo"],"background mblock:0,0,0,0,0,0,0,0,0,\nbackground mlit start:1,0,0,0,0,0,0,0,background mlit:2,\n2,0,background munlit:3,3,0,0,0,background mlit vert:4,2,\n4,background munlit vert:5,background flower munlit:6,background mblock vert:7,0,0,2,background bloomed mlit new x1:8,2,\n2,2,0,0,0,0,background lightd lightl lightr lightu mlit summer vert x0:9,8,5,\n6,7,0,0,0,background lightr mlit r1 x1:10,3,background bad mlit:11,0,\n0,0,0,0,0,background mdoor nomoved:12,0,0,0,\n0,0,0,0,0,0,0,0,0,\n",98,"1627779217716.8293"] + ["title Season Finale\nrun_rules_on_level_start\nbackground_color #222\ntext_color #DDD\nagain_interval 0\n\n========\nOBJECTS\n========\n\nBackground 1\nblack\n\nsunlit \n#78D448\n\nmunlit\n#70F044\n\nsnlit \n#58BBE0\n\nwnlit\n#C0FFEE\n\nait\n#FEB047\n\nwit \n#EFC040\n\nmlit \n#FBFB68\n\nalit\n#FFFB66\n\nablock\n#C84202\n\nsblock w\n#043804\n\nmblock\n#14D0D0\n\nwblock\n#6094B2\n\nwdoor\n#6094B2 #5074A2\n11100\n11110\n11111\n11110\n11100\n\nadoor \n#FD712D #C84202\n00011\n00001\n00000\n00001\n00011\n\nsdoor e\n#109010 #043804\n00011\n00001\n00000\n00001\n00011\n\nmdoor\n#80F4F4 #14D0D0\n00011\n00001\n00000\n00001\n00011\n\nspring\n#109010 #041904\n.000.\n00000\n01010\n00000\n.000.\n\nbunnyd ,\n#745004 black pink white\n..3..\n.000.\n.000.\n.101.\n..2..\n\nbunnyl <\n#745004 black pink white \n.....\n.100.\n20003\n.100.\n.....\n\nbunnyu .\n#745004 black pink white\n..2..\n.101.\n.000.\n.000.\n..3..\n\nbunnyr >\n#745004 black pink white\n.....\n.001.\n30002\n.001.\n.....\n\n\n\ncrat 7\n#745004 #C47004\n.000.\n01110\n01110\n01110\n.000.\n\nglass q\n#745004 #C47004 white\n.000.\n02110\n02120\n01120\n.000.\n\nflower\n#043804 #109010\n.....\n..1..\n.101.\n..1..\n.....\n\nwater o\n#1040E0 \n\nice p\nlightblue\n\n\n\ndrowned\n#1040E0 #745004 \n00000\n00100\n01110\n00100\n00000\n\nnodoor\ntransparent\n\nstart\ntransparent\n\nvert\ntransparent\n\nmoved\ntransparent\n\nnomoved\ntransparent\n\n\n\neaten\ntransparent\n\nwatermark\ntransparent\n\n\n\n\n\nsummer\n#f41010 #600404 #FFB008\n.000.\n00000\n01010\n00000\n.000.\n\n\n\nlightu \n#FFC008\n.....\n..0..\n.0.0.\n.....\n.....\n\n\n\nlightr \n#FFC008\n.....\n..0..\n...0.\n..0..\n.....\n\nlightl \n#FFC008\n.....\n..0..\n.0...\n..0..\n.....\n\nlightd \n#FFC008\n.....\n.....\n.0.0.\n..0..\n.....\n\n\nu1\n#FF5800\n.....\n..0..\n.0.0.\n.....\n.....\n\nr1\n#FF5800\n.....\n..0..\n...0.\n..0..\n.....\n\nl1\n#FF5800\n.....\n..0..\n.0...\n..0..\n.....\n\nd1\n#FF5800\n.....\n.....\n.0.0.\n..0..\n.....\n\nu2\n#FF7800\n.....\n..0..\n.0.0.\n.....\n.....\n\nr2\n#FF7800\n.....\n..0..\n...0.\n..0..\n.....\n\nl2\n#FF7800\n.....\n..0..\n.0...\n..0..\n.....\n\nd2\n#FF7800\n.....\n.....\n.0.0.\n..0..\n.....\n\nu3\n#FF9800\n.....\n..0..\n.0.0.\n.....\n.....\n\nr3\n#FF9800\n.....\n..0..\n...0.\n..0..\n.....\n\nl3\n#FF9800\n.....\n..0..\n.0...\n..0..\n.....\n\nd3\n#FF9800\n.....\n.....\n.0.0.\n..0..\n.....\n\nu4\n#FFA800\n.....\n..0..\n.0.0.\n.....\n.....\n\nr4\n#FFA800\n.....\n..0..\n...0.\n..0..\n.....\n\nl4\n#FFA800\n.....\n..0..\n.0...\n..0..\n.....\n\nd4\n#FFA800\n.....\n.....\n.0.0.\n..0..\n.....\n\nx0\ntransparent\n\nx1\ntransparent\n\nx2\ntransparent\n\nx3\ntransparent\n\nx4\ntransparent\n\nx5\ntransparent\n\nplusone\ntransparent\n\n\nver\n#1040E0 #A07004\n01110\n01110\n01110\n01110\n01110\n\nhor\n#1040E0 #A07004\n00000\n11111\n11111\n11111\n00000\n\nwver\nlightblue #A07004\n01110\n01110\n01110\n01110\n01110\n\nwhor\nlightblue #A07004\n00000\n11111\n11111\n11111\n00000\n\nbloomed\n#209A00\n.000.\n00000\n00000\n00000\n.000.\n\n\n\n\nbad\n#985000 white #ff5064\n..2..\n.000.\n.000.\n.000.\n..1..\n\n\n\n\nlose\n#985000 white #ff5064 black\n..2..\n.303.\n.000.\n.000.\n..1..\n\nnemir z\n#985000 #14D0D0\n0....\n00...\n0.0..\n0..0.\n00000\n\nsemir x\n#985000 #14D0D0\n00000\n0..0.\n0.0..\n00...\n0....\n\nnwmir c\n#985000 #14D0D0\n....0\n...00\n..0.0\n.0..0\n00000\nswmir v\n#985000 #14D0D0\n00000\n.0..0\n..0.0\n...00\n....0\n\ndiag b\n#985000 #14D0D0\n00000\n00..0\n0.0.0\n0..00\n00000\n\ndiago n\n#985000 #14D0D0\n00000\n0..00\n0.0.0\n00..0\n00000\n\n\nwins\ntransparent\n\nnew\ntransparent\n\nmore\ntransparent\n\n\n\nautumn \n#F45305 #6A2402\n.000.\n00000\n01010\n00000\n.000.\n\n\nbird m\ndarkblue blue lightblue black\n..1..\n2.1.2\n11111\n.010.\n..1..\n\n\n\nfella\n#7E2D00\n.000.\n00000\n00000\n00000\n.000.\n\nfellb\n#9A0501\n.000.\n00000\n00000\n00000\n.000.\n\nfellc\n#CD0601\n.000.\n00000\n00000\n00000\n.000.\n\nfelld\n#CCC926\n.000.\n00000\n00000\n00000\n.000.\n\nfelle\n#F7C709\n.000.\n00000\n00000\n00000\n.000.\n\nfellf\n#F45305\n.000.\n00000\n00000\n00000\n.000.\n\nfellg\n#DA4528\n.000.\n00000\n00000\n00000\n.000.\n\nfellh\n#FD712D\n.000.\n00000\n00000\n00000\n.000.\n\nconnected\ntransparent\n\nfirst\ntransparent\n\nnotfirst\ntransparent\n\n\nwinter\n#1010B0 #101030\n.000.\n00000\n01010\n00000\n.000.\n\n\ndead\nbrown\n..0..\n..0..\n00000\n..0..\n..0..\n\ntemp\ntransparent\n\ntemp2\ntransparent\n\nlef\ntransparent\n\nrigh\ntransparent\n\ndow\ntransparent\n\nuq\ntransparent\n\nbunn\ntransparent\n\niffy \ntransparent\n\nwinner1\ntransparent\n\nwinner2\ntransparent\n\nwinner3\ntransparent\n=======\nLEGEND\n=======\n\nbunny = bunnyl or bunnyr or bunnyd or bunnyu\naqua = water or ice\n\nfell = fella or fellb or fellc or felld or felle or fellh or fellg or fellf\nflow = flower or bloomed or dead\n\ni = spring and start\n\nplayer = spring or summer or autumn or winter\n\nmirror = swmir or semir or nwmir or nemir\n\ndiags = diag or diago\nlight = lightu or lightd or lightr or lightl \nblock = sblock or ablock or wblock or mblock\nlit = alit or mlit\nunlit = munlit or sunlit\nnlit = snlit or wnlit\nit = wit or ait\nfloor = unlit or nlit or lit or it\nl= snlit\na = flower and snlit\nwinner = winner1 or winner2 or winner3\ndoor = sdoor or adoor or mdoor or wdoor\ncra = crat or block or mirror or diags or fell or dead or bunny\ncratd = crat or block or fell or dead\ncred = crat or diags or mirror or fell\ncre = spring or block or crat or glass or door or bunny or ice or mirror or diags\ncrae = block or glass or bad or flow\ncrate = crat or block or glass or aqua\ncrated = block or glass or mirror or bad or diags or summer or flow\npush = mirror or diags\nt = bad and mlit\nfir = u1 or d1 or l1 or r1\nsec = u2 or d2 or l2 or r2\nthi = u3 or d3 or l3 or r3\nfou = u4 or d4 or l4 or r4\nxs = x0 or x1 or x2 or x3 or x4 or x5\n2 = summer and start\n\nk= water \n\n\n\n\n\n=======\nSOUNDS\n=======\nSFX1 80425104\nSFX2 16467501\nSFX3 80127507\nSFX4 71317504\nSFX5 25216505\nSFX6 16917301\nSFX7 92204307\nSFX8 54283103\nSFX9 32265107\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nvert\nnodoor,wins, lose\nwatermark, connected\nfloor\nice\nmoved, nomoved\nflow, eaten\nwater,\nhor, ver, whor, wver\nlightu, first, notfirst\nlightr\nlightd\nlightl\nmore\nbad\nstart, new\ntemp, temp2\nplayer, glass, crat, block, door, bunny, mirror, diags, fell, bird,\nwinner\nlef, righ, dow, uq\nbunn\niffy\nstart, drowned\nplusone\nx0\nx1\nx2\nx3\nx4\nx5\nu1, u2, u3, u4\nd1, d2, d3, d4\nl1, l2, l3, l4\nr1, r2, r3, r4\n\n\n\n======\nRULES\n======\n\n\n\n[spring][start watermark] -> restart\n[spring][drowned][start] -> [spring][drowned][start watermark]\n\n[action spring no unlit no flower no aqua] -> [spring flower] SFX1\n[action spring flower] -> [spring eaten]\n\n[spring][floor] -> [spring][]\n[> spring| water] -> [spring|water]\n[> spring | crat| no cre no aqua flower] -> [|spring|crat] SFX3\n[> spring | crat| no cre no aqua] -> [|spring|crat] SFX7\n[> spring | mirror| no cre no aqua flower] -> [|spring|mirror] SFX3\n[> spring | mirror| no cre no aqua] -> [|spring|mirror] SFX7\n[spring][vert] ->[spring][]\n[spring][eaten]->[spring][]\n[spring][nomoved] -> [spring][]\n[spring][moved] -> [spring][]\n\nlate [spring ice] -> [spring ice watermark]\nlate [spring][no spring ice watermark] -> [spring][water watermark] SFX2\n\nlate [spring][bunny watermark] -> [spring][drowned] SFX6\n\nlate up [spring][bunnyu no moved |no cre flower] ->[spring] [|bunnyu moved eaten] SFX3 \nlate left [spring][bunnyl no moved |no cre flower] -> [spring][|bunnyl moved eaten] SFX3 \nlate right [spring][bunnyr no moved |no cre flower] -> [spring][|bunnyr moved eaten] SFX3 \nlate down [spring][bunnyd no moved |no cre flower] -> [spring][|bunnyd moved eaten] SFX3\n\n\nlate up [spring][bunnyu no moved |no cre no flower] ->[spring] [|bunnyu moved] \nlate left [spring][bunnyl no moved |no cre no flower] -> [spring][|bunnyl moved] \nlate right [spring][bunnyr no moved |no cre no flower] -> [spring][|bunnyr moved] \nlate down [spring][bunnyd no moved |no cre no flower] -> [spring][|bunnyd moved] \n\nlate right [|nodoor spring][eaten] -> [spring|sdoor][eaten]\nlate [spring][nodoor][eaten] -> [spring][sdoor][eaten]\n\nlate [spring] -> [spring nomoved]\nlate [nomoved spring][moved] -> [spring][moved]\nlate [spring][moved no spring]->[spring moved][] again\n\n\nlate [spring][no block no aqua] -> [spring][snlit]\nlate [spring][nodoor floor] -> [spring][nodoor sunlit]\nlate [spring][start floor] -> [spring][start sunlit]\n\nlate [spring][flow nlit] -> [spring][flow sunlit]\nlate [spring][flow |nlit] -> [spring][flow|sunlit]\nlate [spring][flow |ice] -> [spring][flow |water watermark]\nlate vertical [spring][flower|] -> [spring][flower|vert]\nlate horizontal [spring][vert|nlit] -> [spring][vert|sunlit]\nlate horizontal [spring][vert|ice] -> [spring][vert|water watermark]\n\nlate up [spring][nomoved][bunnyu | cre] -> [spring][nomoved][bunnyr|cre]\nlate right [spring][nomoved][bunnyr|cre] -> [spring][nomoved][bunnyd| cre]\nlate down [spring][nomoved][bunnyd| cre] -> [spring][nomoved][bunnyl| cre]\nlate left [spring][nomoved][bunnyl| cre] -> [spring][nomoved][bunnyu| cre]\nlate up [spring][nomoved][bunnyu | cre] -> [spring][nomoved][bunnyr|cre]\nlate right [spring][nomoved][bunnyr|cre] -> [spring][nomoved][bunnyd| cre]\nlate down [spring][nomoved][bunnyd| cre] -> [spring][nomoved][bunnyl| cre]\nlate left [spring][nomoved][bunnyl| cre] -> [spring][nomoved][bunnyu| cre]\nlate up [spring][nomoved][bunnyu | cre] -> [spring][nomoved][bunnyr|cre]\nlate right [spring][nomoved][bunnyr|cre] -> [spring][nomoved][bunnyd| cre]\nlate down [spring][nomoved][bunnyd| cre] -> [spring][nomoved][bunnyl| cre]\nlate left [spring][nomoved][bunnyl| cre] -> [spring][nomoved][bunnyu| cre]\nlate up [spring][nomoved][bunnyu | cre] -> [spring][nomoved][bunnyr|cre]\nlate right [spring][nomoved][bunnyr|cre] -> [spring][nomoved][bunnyd| cre]\nlate down [spring][nomoved][bunnyd| cre] -> [spring][nomoved][bunnyl| cre]\nlate left [spring][nomoved][bunnyl| cre] -> [spring][nomoved][bunnyu| cre]\n\nlate [spring][door] -> [spring][nodoor vert sunlit]\nlate [spring][nodoor vert floor no player][nlit] -> [spring][sdoor][snlit]\nlate [spring][nodoor vert floor no player][ice] -> [spring][sdoor][ice]\nlate [spring][nodoor floor no player][snlit] -> [spring][sdoor][snlit]\nlate [spring][nodoor floor no player][ice] -> [spring][sdoor][ice]\nlate [spring][nodoor vert] -> [spring][nodoor] SFX8\n\nlate [drowned][spring nodoor] -> [drowned][spring nodoor watermark]\n\n\n\n\n\n\nlate [start summer][bunny] -> [start summer][mlit bad]\nlate [summer][sunlit] -> [summer][munlit]\nlate [summer][sblock] -> [summer][mblock]\n\n[xs] -> []\n[fir] -> []\n[sec] -> []\n[thi] -> []\n[fou] -> []\n\n\n[summer][no floor no door no nodoor no block] -> [summer][munlit]\n\n\n[summer][new] -> [summer][]\n[light]->[]\n\n\n\n\n\n\n[> summer| water] -> cancel\n[> summer| flow] -> cancel\n[> summer| push| no crae no water] -> [> summer|> push|] SFX3\nstartloop\nright [summer][> nemir| swmir] -> [summer][|stationary diag]\nup [summer][> nemir| swmir] -> [summer][|stationary diag]\ndown [summer][> swmir| nemir] -> [summer][|stationary diag]\nleft [summer][> swmir| nemir] -> [summer][|stationary diag]\nleft [summer][> nwmir| semir] -> [summer][|stationary diago]\nup [summer][> nwmir| semir] -> [summer][|stationary diago]\ndown [summer][> semir| nwmir] -> [summer][|stationary diago]\nright [summer][> semir| nwmir] -> [summer][|stationary diago]\n\n[summer][> push|push| no crae no water] -> [summer][> push|> push|]\nendloop\n[summer][> push| stationary push] -> cancel\n[> summer| stationary push] -> cancel\n\nlate [summer] -> [summer lightu lightr lightd lightl x0]\n\n\n\nstartloop \n\nlate [light more] -> [light]\n\nlate up [lightu xs no flow no more|no lightu no cre no door ] -> [lightu xs| lightu more xs plusone]\nlate down [lightd xs no flow no more|no lightd no cre no door ] -> [lightd xs| lightd more xs plusone]\nlate left [lightl xs no flow no more|no lightl no cre no door ] -> [lightl xs| lightl more xs plusone]\nlate right [lightr xs no flow no more|no lightr no cre no door ] -> [lightr xs| lightr more xs plusone]\n\n\nlate up[lightu no more no flow xs|semir no lightr] -> [lightu xs|lightr more semir xs plusone]\nlate up[lightu no more no flow xs|swmir no lightl] -> [lightu xs|lightl more swmir xs plusone]\nlate down[lightd no more no flow xs|nemir no lightr] -> [lightd xs|lightr more nemir xs plusone]\nlate down[lightd no more no flow xs|nwmir no lightl] -> [lightd xs|lightl more nwmir xs plusone]\nlate left[lightl no more no flow xs|semir no lightd] -> [lightl xs|lightd more semir xs plusone]\nlate left[lightl no more no flow xs|nemir no lightu] -> [lightl xs|lightu more nemir xs plusone]\nlate right[lightr no more no flow xs|swmir no lightd] -> [lightr xs|lightd more swmir xs plusone]\nlate right[lightr no more no flow xs|nwmir no lightu] -> [lightr xs|lightu more nwmir xs plusone]\n\n\nlate up [lightu no crae mirror|flow no new] -> [lightu mirror|bloomed new] \nlate down [lightd no crae mirror|flow no new] -> [lightd mirror|bloomed new] \nlate left [lightl no crae mirror|flow no new] -> [lightl mirror| bloomed new] \nlate right [lightr no crae mirror|flow no new] -> [lightr mirror|bloomed new] \n\nlate up [lightu no crae summer|flow no new] -> [lightu summer|bloomed new] \nlate down [lightd no crae summer|flow no new] -> [lightd summer|bloomed new] \nlate left [lightl no crae summer|flow no new] -> [lightl summer| bloomed new] \nlate right [lightr no crae summer|flow no new] -> [lightr summer|bloomed new]\n\n\nlate up [lightu no crated water|flow no new floor] -> [ver|mlit] SFX4 again\nlate down [lightd no crated water|flow no new floor] -> [ver|mlit] SFX4 again\nlate left [lightl no crated water|flow no new floor] -> [hor|mlit] SFX4 again\nlate right [lightr no crated water|flow no new floor] -> [hor|mlit] SFX4 again\n\n\nlate up [lightu no crated no water no hor no ver|flow no new floor] -> [bloomed new|mlit] again SFX9\nlate down [lightd no crated no water no hor no ver|flow no new floor] -> [bloomed new|mlit] again SFX9\nlate left [lightl no crated no water no hor no ver|flow no new floor] -> [bloomed new|mlit] again SFX9\nlate right [lightr no crated no water no hor no ver|flow no new floor] -> [bloomed new|mlit] again SFX9\n\nlate [x0 plusone] -> [x1]\nlate [x1 plusone] -> [x2]\nlate [x2 plusone] -> [x3]\nlate [x3 plusone] -> [x4]\nlate [x4 plusone] -> [x5]\n\n\nendloop\n\n\nlate [summer unlit] -> [summer mlit]\nlate [light unlit] -> [light mlit]\nlate [summer|flower] -> [summer| bloomed]\nlate [light flow] -> [bloomed]\n\nlate up [lightu|crat floor] -> [lightu|glass mlit]\nlate down [lightd|crat floor] -> [lightd|glass mlit]\nlate right [lightr|crat floor] -> [lightr|glass mlit]\nlate left [lightl|crat floor] -> [lightl|glass mlit]\nlate up [lightu|glass floor] -> [lightu|glass mlit]\nlate down [lightd|glass floor] -> [lightd|glass mlit]\nlate right [lightr|glass floor] -> [lightr|glass mlit]\nlate left [lightl|glass floor] -> [lightl|glass mlit]\n\n\nlate [lightu x4] -> [lightu u4 x4]\nlate [lightd x4] -> [lightd d4 x4]\nlate [lightl x4] -> [lightl l4 x4]\nlate [lightr x4] -> [lightr r4 x4]\nlate [lightu x3] -> [lightu u3 x3]\nlate [lightd x3] -> [lightd d3 x3]\nlate [lightl x3] -> [lightl l3 x3]\nlate [lightr x3] -> [lightr r3 x3]\nlate [lightu x2] -> [lightu u2 x2]\nlate [lightd x2] -> [lightd d2 x2]\nlate [lightl x2] -> [lightl l2 x2]\nlate [lightr x2] -> [lightr r2 x2]\n\nlate [lightu x1] -> [lightu u1 x1]\nlate [lightd x1] -> [lightd d1 x1]\nlate [lightl x1] -> [lightl l1 x1]\nlate [lightr x1] -> [lightr r1 x1]\n\n\n\n\n\nlate [summer][door] -> [summer][nodoor new mlit]\n\nlate [summer][nodoor new lit][unlit] -> [summer][mdoor][munlit]\nlate [summer][lose]->restart\nlate [light bad] -> [light lose] SFX5\nlate [summer][nodoor new] -> [summer][nodoor] SFX8\nlate [summer nodoor] -> [wins summer]\n\n\n\n\nlate [autumn][xs] -> [autumn][]\nlate [autumn][fir] -> [autumn][]\nlate [autumn][sec] -> [autumn][]\nlate [autumn][thi] -> [autumn][]\nlate [autumn][fou] -> [autumn][]\nlate [autumn][mlit] -> [autumn][alit]\nlate [autumn][mblock] -> [autumn][ablock]\n\n\n[> autumn | crat| no cre no aqua] -> [| autumn |crat] SFX7\n[> autumn | mirror| no cre no aqua] -> [| autumn |mirror] SFX7\n\nlate [autumn][bad] -> [autumn][bunnyr]\n\n[first][autumn] -> [][autumn notfirst]\n\n\n[> autumn|crat|no block no bunny no bird no flow no door no crat no glass] -> [|autumn|crat]\n[> autumn|water] -> [autumn|water]\n\n[autumn][water floor] -> [autumn][water]\n[autumn][hor floor] -> [autumn][hor]\n[autumn][ver floor] -> [autumn][ver]\n[autumn][no floor no door no nodoor no block no water no hor no ver] -> [autumn][alit]\nlate [autumn][glass floor] -> [autumn][glass ait]\n[autumn][no vert] -> [autumn][vert]\ndown[autumn][vert|...|no block] -> [autumn][|...|]\nhorizontal[autumn][vert|...|no vert] -> [autumn][|...|]\n\nlate down [autumn][glass|no bloomed no player no bunny no bad no ablock] -> [autumn][crat|bird moved]\n\n[> autumn | bird|no bloomed no door no crate no fell no bird ] -> [> autumn| > bird|]\n\n\n[> autumn|bloomed|no bloomed no door no crate no fell no bird no bunny] -> [> autumn|random fell start|]\nhorizontal [> autumn|bloomed|no bloomed no door water no fell no bird no bunny] -> [|autumn|hor]\nvertical [> autumn|bloomed|no bloomed no door water no fell no bird no bunny] -> [|autumn|ver]\n[> autumn|start fell] -> [> autumn|> fell]\n[> autumn|bloomed] -> cancel\n\n\nlate [autumn][fell floor] -> [autumn][fell ait]\nlate [autumn floor] -> [autumn ait]\n\n\n\nlate [autumn][drowned] -> restart\nlate [autumn][moved no crat no bird] -> [autumn][]\nlate right [notfirst][autumn|...|no bloomed no bird no bunny no block no fell water|bunny no moved] -> [notfirst][autumn|...|drowned|]\nlate left [notfirst][autumn|...|no bloomed no bird no bunny no block no fell water|bunny no moved] -> [notfirst][autumn|...|drowned|]\nlate right [notfirst][autumn|...|no bloomed no bird no bunny no block no fell|bunny no moved] -> [notfirst][autumn|...|bunnyl moved|]\nlate left [][autumn|...|no bloomed no bird no bunny no block no fell|bunny no moved] -> [notfirst][autumn|...|bunnyr moved|]\n\nlate down [autumn][bird no moved|no door no fell no block no bloomed no player no bird no bunny] -> [autumn][|bird moved]\nlate [autumn][bird vert] -> [autumn][] \n\nlate [autumn][connected] -> [autumn][]\nlate [autumn no connected] -> [autumn connected]\n\n+ late [autumn][connected|no connected no fell no bird no crate no door no bloomed no bunny no ver no hor] -> [autumn][connected|connected]\n\nlate [autumn][floor connected] -> [autumn][ait connected]\n\nlate [autumn][bird moved] -> [autumn][bird] again\n\n\nlate [autumn][door] -> [autumn][nodoor ait]\nlate [autumn][nodoor it][lit] -> [autumn][adoor][alit]\nlate [autumn][nodoor it][bird] -> [autumn][adoor][bird]\nlate [autumn][nodoor it][glass] -> [autumn][adoor][glass]\n\nlate [autumn nodoor] -> [wins autumn]\n\n\nlate [winter][ait] -> [winter][wit]\nlate [winter][ablock] -> [winter][wblock]\n\n[winter][no floor no door no nodoor no block no flow] -> [winter][ait]\n\n([> player | crat|no flower] -> [> player| > crat|]\n[> player | diags|no flower] -> [> player| > diags|])\n[> winter][ lose] -> restart\n[uq] [winter] -> [] [up winter]\n[dow] [winter] -> [] [down winter]\n[righ] [winter] -> [] [right winter]\n[lef] [winter] -> [] [left winter]\n\n[moved] [winter] -> [] [winter] \n[bunn] [winter] -> [] [winter] \n[bunny] [winter] -> [bunny bunn] [winter] \n\n\n\n[> winter floor no moved|no flow no door no cra ] -> [wnlit |> winter moved] \n\n\n\nright [> winter floor no moved| stationary swmir] -> [> temp2 wnlit|v temp swmir]\nup [> winter floor no moved| stationary swmir] -> [> temp2 wnlit|^ temp swmir]\ndown [> winter floor no moved| stationary nwmir] -> [> temp2 wnlit|v temp nwmir]\nright [> winter floor no moved| stationary nwmir] -> [> temp2 wnlit|^ temp nwmir]\nleft [> winter floor no moved| stationary nemir] -> [> temp2 wnlit|v temp nemir]\ndown [> winter floor no moved| stationary nemir] -> [> temp2 wnlit|^ temp nemir]\nup [> winter floor no moved| stationary semir] -> [> temp2 wnlit|v temp semir]\nleft [> winter floor no moved| stationary semir] -> [> temp2 wnlit|^ temp semir]\n\nstartloop \nright [> temp floor no moved| stationary swmir] -> [ wnlit iffy|v temp swmir]\nup [> temp floor no moved| stationary swmir] -> [ wnlit iffy|^ temp swmir]\ndown [> temp floor no moved| stationary nwmir] -> [ wnlit iffy|v temp nwmir]\nright [> temp floor no moved| stationary nwmir] -> [ wnlit iffy|^ temp nwmir]\nleft [> temp floor no moved| stationary nemir] -> [ wnlit iffy|v temp nemir]\ndown [> temp floor no moved| stationary nemir] -> [ wnlit iffy|^ temp nemir]\nup [> temp floor no moved| stationary semir] -> [ wnlit iffy|v temp semir]\nleft [> temp floor no moved| stationary semir] -> [ wnlit iffy |^ temp semir]\n\nendloop\n\n[> temp floor|no flow no door no cra ] -> [wnlit|> winter moved] SFX1\n[temp][temp2][nlit iffy] -> [temp][temp2][wit]\n[temp][> temp2] -> [][> winter]\n[temp] -> []\n[temp2] -> []\n\n[iffy] -> []\n\n[> winter floor no moved|cred|no flow no door no block ] -> [wnlit > winter| > cred|]\n\n[winter it] -> [winter wnlit]\n[> winter no moved| door] -> [winter moved| temp door] \n[temp door] [winter] [it] -> [door] [winter] [it]\n[temp door][winter] -> [winter nodoor wnlit][]\n\n\n[ winter| bunny] -> [winter|> bunny] \n [winter] [> bunny| bunny] -> [winter] [> bunny| > bunny]\n [winter] [left bunny] -> [winter] [left bunnyl]\n [winter] [right bunny] -> [winter] [right bunnyr]\n [winter] [down bunny] -> [winter] [down bunnyd]\n [winter] [up bunny] -> [winter] [up bunnyu]\n\n [winter] [> bunny|water] -> [winter][|lose]\n [winter] [> bunny|ice] -> [winter][bunny|ice]\n\nlate [winter hor] -> [winter whor]\nlate [winter ver] -> [winter wver]\n\nlate [winter][bunny no bunn] -> SFX3\n\n\n[left winter moved] -> [lef winter] again\n[right winter moved] -> [righ winter] again\n[down winter moved] -> [dow winter] again\n[up winter moved] -> [uq winter] again\n\n[winter water uq] -> [winter ice]\n[winter water lef] -> [winter ice]\n[winter water dow] -> [winter ice]\n[winter water righ] -> [winter ice]\n[winter water] -> [winter ice]\n\n[winter][moved] -> [winter][] again\n\n\n\n\n\nright [winter][> nemir| swmir] -> [winter][|diag]\nup [winter][> nemir| swmir] -> [winter][|diag]\ndown [winter][> swmir| nemir] -> [winter][|diag]\nleft [winter][> swmir| nemir] -> [winter][|diag]\nleft [winter][> nwmir| semir] -> [winter][|diago]\nup [winter][> nwmir| semir] -> [winter][|diago]\ndown [winter][> semir| nwmir] -> [winter][|diago]\nright [winter][> semir| nwmir] -> [winter][|diago]\n[winter][> cre| cre| no flow no door no block] -> [winter][> cre| > cre| ]\n\n[winter][> cre|stationary cra] -> [winter][cre|cra]\n[> winter| fell floor] -> [winter|dead wnlit] SFX3\n[> winter|stationary cra] -> [winter|cra]\n\nlate [winter it] -> [winter wnlit]\nlate [winter][door] -> [winter][nodoor new wnlit]\nlate [winter][nodoor new nlit][it] -> [winter][wdoor][wit]\nlate [winter][nodoor new] -> [winter][nodoor] SFX8\nlate [winter nodoor] -> [wins winter]\nlate [start][winter wins floor] -> win\n\nlate [fell hor] -> cancel\nlate [fell ver] -> cancel\n\nlate [spring no moved nodoor] -> [winner1]\nlate [summer wins ] -> [winner2]\nlate [autumn wins] -> [winner3]\n\nlate [ winner1 no watermark no moved no first][start][sblock] -> [winner1 first][start][mblock] again\nlate [ winner1 no watermark no moved no first][start][mblock] -> [mdoor ][start summer][mblock] again\nlate [ winner2 no watermark no moved no first][start][mblock] -> [winner2 first][start][ablock] again\n\nlate [winner2 no watermark no moved no first][start][ablock] -> [adoor ][start first autumn][ablock] again\nlate [ winner3 no watermark no moved no first][start][ablock] -> [winner3 first][start][wblock] again\n\nlate [winner3 no watermark no moved no first][start][wblock] -> [adoor ][start first winter][wblock] again\n\nlate [winner first] -> [winner no first]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n\nmessage Spring: \"Wow, I can't believe that it's only been 82 thousand years! It feels like I've known about all of you for such a long time! \"\n\nmessage Summer: \"What I can't believe is that I've been able to put up with you for that long!\"\n\nmessage Autumn: \"Come on, there's no reason to be mean.\"\n\nmessage Winter: \"I assume that you are being hyperbolic again, Summer.”\nmessage Winter: \"I do not see what other option you would have had, as there is no other place that you could go.\"\n\nwwwwww\ni1111w\nw1111w\nw1111e\nwwwwww\n\nmessage Spring: \"I still remember it as if it were only a decade ago.\"\nmessage Spring: \"Oh! Autumn, you might be able to see one of my favorite comets soon!\n\nmessage Summer: \"Argh! Why do these things always seem to just miss me?\"\n\nmessage Autumn: \"I just saw it. The view was marvelous! Thanks for the heads up.\"\n\nmessage Winter: \"Speaking of our initial introductions, I have a question for you, Spring.\"\nmessage Winter: \"Did you actually think that I was an animal? Do I look more distinct from the rest of you than I had previously believed?\"\n\n\n\nwwwwwww\nwl1p11w\nwl1pppw\ni11p11e\nwwwwwww\nmessage Spring: \"Nope, You look just like us!\"\nmessage Spring: \"Even though now it's hard for me to even imagine life without knowing all of you friends,\"\nmessage Spring: \"At the time, I had no idea there was anything else like me!\"\nmessage Spring: \"You also slid by so fast, so that's why I assumed I must have seen an animal.\"\n\nmessage Summer: \"I guess none of us can blame you for making a wrong assumption Spring, 'cause we all did the same.\"\nmessage Summer: \"I still say that my guess was better than all of yours though!\"\n\nmessage Autumn: \"I can also hardly remember not knowing about you too, Spring.\"\nmessage Autumn: \"The intermediate time, when I only knew Summer, was a hard time for me, but your optimism and enthusiasm never ceases to inspire me.\"\n\nmessage Winter: \"Yes, I can imagine that the interim went...\"\nmessage Winter: \"...well...\"\nmessage Winter: \"...poorly, to say the least.\"\n\n\n\nwwwwwww\nw11q11w\nw11l11w\ni11l1le\nwwwwwww\n\nmessage Spring: \"This year is going to be the best year ever!\"\n\nmessage Summer: \"We GET IT already!\"\nmessage Summer: \"Do you have to say that EVERY SINGLE TIME?\"\n\nmessage Autumn: \"I agree with Spring.\"\nmessage Autumn: \"I think we should strive to make every year better than the last.\"\n\nmessage Winter: \"But I do not see any evidence that this year would be any different.\"\nmessage Winter: \"It will most likely not have any major improvements or regression.\"\n\nwwwwwww\nw1ppp1w\nw1ppp1e\nwp111pw\nwp111pw\nw1ppp1w\nip111pw\nwp111pw\nwwwwwww\n\nmessage Spring: \"Autumn, I wish that one day I could finally meet you, instead of having to leave these messages.\"\nmessage Spring: \"You sound so beautiful!\"\nmessage Spring: \"Summer or Winter, can you please describe how Autumn looks again for me?\"\n\nmessage Summer: \"He's orange.\"\n\nmessage Autumn: \"Quite the way with words as always, Summer.\"\n\nmessage Winter: \"I believe his skin looks closer to that of a tangerine than an orange.\"\nmessage Winter: \"And his eyes have a similar color to the seed coat of a peanut.\"\n\n\n\nwwwwwww\nwww1eww\nwwi1www\nwww1www\nwwl1l1w\nw111llw\nw111llw\nw111www\nwwwwwww\n\nmessage Spring: \"You must look so gorgeous Autumn!\"\nmessage Spring: \"I'd also wish that I could see you change the leaves' color sometime too, it seems so magical!\"\n\nmessage Spring: \"Hey Summer and Winter, what about you two? Do you ever think about wanting to meet each other?\"\n\nmessage Summer: \"Definitely not! It sounds like he's FREEZING!\"\n\nmessage Autumn: \"Awwww, Spring. I would be blushing if I could.\"\n\nmessage Winter: \"I will not lie and say that I am not curious about Summer's brightness\"\nmessage Winter: \"But I worry that your head may be full of dangerous thoughts, Spring\"\n\n\n\nwwwwwww\nwx11lle\nw1l1l1w\nwll111w\nil111cw\nwwwwwww\n\nmessage Spring: \"What?\"\nmessage Spring: \"What do you mean?\"\n\nmessage Summer: \"He's trying to say you're SCARING US!\"\nmessage Summer: \"All this talk about meeting our counterparts!\"\n\nmessage Autumn: \"I think you're overreacting a bit.\"\n\nmessage Winter: \"I do not believe she is.\"\nmessage Winter: \"We have no idea what could happen if one of us were to ignore our purpose.\"\n\n\n\nwwwwwwww\nilql11ww\nwllll11w\nwlllll1w\nwwwwlllw\nwwww11le\nwwwwww1w\n\nmessage Spring: \"I'm...\"\nmessage Spring: \"I'm so sorry Winter! I never meant to upset you!\"\nmessage Spring: \"I'll never mention it again!\"\n\nmessage Summer: \"GOOD!\"\nmessage Summer: \"I was getting sick of hearing you rambling on about it.\"\n\nmessage Autumn: \"Hey, don't talk to her that way!\"\nmessage Autumn: \"Winter, I agree that we have no idea what could happen.\"\nmessage Autumn: \"But that might just mean that it could be nothing!\"\nmessage Autumn: \"None of us can remember a time before our purposes, so none of us can know why we are doing it.\"\nmessage Autumn: \"It could all just be arbitrary and meaningless.\"\n\nmessage Winter: \"Autumn, please do not make any rash decisions because of your emotions.\"\nmessage Winter: \"Although it is true none of us know the meaning of the cycle, something must have set the chain in motion.\"\nmessage Winter: \"I do not believe that it all could lack meaning.\"\n\n\n\n\nwwwwwww\nw1111lw\nw111wlw\nw111wle\nw1111lw\nwl1lllw\nil1lllw\nwwwwwww\n\nmessage Spring: \"Please stop fighting you guys! I hate seeing when you argue!\"\n\nmessage Summer: \"Do like Spring said, and just stop being stupid about this Autumn!\"\n\nmessage Autumn: \"Spring didn't say I was being stupid.\"\nmessage Autumn: \"And I don't mean to start an argument, but I think that it's important to sort out what should be believed.\"\nmessage Autumn: \"We don't actually have any reason to believe that we even have a purpose.\"\nmessage Autumn: \"We'll never know unless we break the chain, and I don't think I want to live an eternity without you, Spring.\"\n\nmessage Winter: \"Be reasonable Autumn! This could affect the entire balance of the planet.\"\nmessage Winter: \"And it is not true that my claims are based on no evidence.\"\nmessage Winter: \"Do you think it is just coincidence that, with no knowledge of each other,\"\nmessage Winter: \"We all began to travel around the Earth along the same path, in the same direction, and with the same interval?\"\n\n\n\nwwwwwwww\nwllpllww\nwl1p11ww\nwppwppww\nw11pl1ww\ni1lpllww\nwppwppww\nwllpllww\nwl1p11ew\nwwwwwwww\n\nmessage Spring: \"Autumn...\"\nmessage Spring: \"Winter...\"\nmessage Spring: \"I...\"\nmessage Spring: \"I don't know what to do!\"\nmessage Spring: \"I don't know who to believe!\"\nmessage Spring: \"Can't we all just go back to being friends again?\"\n\nmessage Summer: \"UGHHHH\"\nmessage Summer: \"This is getting ridiculous.\"\nmessage Summer: \"If you two are going to abandon everything we know and meet each other, just DO IT already!\"\nmessage Summer: \"Otherwise...\"\nmessage Summer: \"SHUT THE HELL UP ABOUT IT ALREADY!\"\n\nmessage Autumn: \"I'm willing to meet you if you are, Spring\"\nmessage Autumn: \"If anything goes wrong, I just need you to know...\"\nmessage Autumn: \"I love you!\"\n\nmessage Winter: \"You must not!\"\nmessage Winter: \"You are putting us all at risk for nothing!\"\n\n\n\n\n\nwwwwwwwww\nwi1>1wwww\nww111l1ww\nwww11l1ew\nww111l1ww\nww1l1lwww\nwwwwwwwww\nwwwwwwwww\n\nmessage Spring: \"I...\"\nmessage Spring: \"I love you too!\"\nmessage Spring: \"I'm so excited to finally get to talk to you face to face!\"\nmessage Spring: \"Nothing will go wrong Autumn! I believe that love can conquer anything!\"\n\nmessage Summer: \"HEY!\"\nmessage Summer: \"Why should I have to keep working if they're going to stop!?\"\nmessage Summer: \"If they're going to quit, then I QUIT TOO!\"\n\nmessage Autumn: \"I sure hope you're right, Spring.\"\n\nmessage Winter: \"I should try to minimize the risk of catastrophe.\"\nmessage Winter: \"I will try to take up the purposes of all of us,\"\nmessage Winter: \"Although there are things I already am aware I will not be able to do as well.\"\n\n\nwwwwwwwwww\nwwwwwwwwww\nw111wwwwww\ni111ewwwww\nw111wwwwww\nw1l1wwwwww\nwlllwwwwww\nwlll1lll1w\nwlllwwwwww\nwwwwwwwwww\n\nmessage Winter: \"I do hope they return some day, but until then...\"\nmessage Winter: \"...I suppose that it is the beginning of an Age of Ice.\"\n\n\n\n\n\nwwwwww\nwww1ww\nww11ww\nw111ww\ni1llww\nw1llww\nww1lww\nww1llw\nww1lle\nww111w\nww11ww\nww1www\nwwwwww\n\nmessage END OF PART 5\n\n\n\n", [3, 3, 2, 2, 2, 3, 3, 3, 0, 3, 3, 1, 1, 0, 1, 4, 2, 2, 4, 3, 3, 0, 4, 2, 1, 1, 1, 4, 3, 2, 3, 4, 1, 1, 0, 4, 3, 3, 3, 3, 1, 1, 1, 1, 4, 4, 3, 1, 1, 1, 1, 3, 1, 1, 3, 3, 2, 1, 4, 3, 3, 4, 0, "undo", 1, 1, 1, 3, 3, 0, 0, 3, 1, 3, 4, 3, 3, 3, 3, 3, 2, 2, 2, 1, "undo", 2, "undo", 0, "undo", 2, "undo", "undo", "undo", "undo", 2, 2, 2, 2, 2, "undo", "undo", "undo", 0, 3, "undo", "undo", "undo", "undo", "undo", "undo", 3, 2, 3, 2, 2, 1, 2, "undo", 2, "undo", 0, 3, 3, "undo", "undo"], "background mblock:0,0,0,0,0,0,0,0,0,\nbackground mlit start:1,0,0,0,0,0,0,0,background mlit:2,\n2,0,background munlit:3,3,0,0,0,background mlit vert:4,2,\n4,background munlit vert:5,background flower munlit:6,background mblock vert:7,0,0,2,background bloomed mlit new x1:8,2,\n2,2,0,0,0,0,background lightd lightl lightr lightu mlit summer vert x0:9,8,5,\n6,7,0,0,0,background lightr mlit r1 x1:10,3,background bad mlit:11,0,\n0,0,0,0,0,background mdoor nomoved:12,0,0,0,\n0,0,0,0,0,0,0,0,0,\n", 98, "1627779217716.8293"] ], [ `gallery: Spider's Hollow`, - ["title Spider's Hollow\nauthor John Thyer\nagain_interval 0.1\n\n========\nOBJECTS\n========\n\n( Background objects )\n\nBackground\nBrown #8b5d2e\n00100 \n00001\n01000\n00100\n10000\n\nEntrance\nBrown #ad7438\n00100 \n00001\n01000\n00100\n10000\n\n\nBackgroundBlack\nBlack\n00000\n00000\n00000\n00000\n00000\n\nBackgroundRed\nRed\n00000\n00000\n00000\n00000\n00000\n\nSky1\n#8fc2fc \n00000\n00000\n00000\n00000\n00000\n\nSky2\n#afd4ff\n00000\n00000\n00000\n00000\n00000\n\nSky3\n#9ecbff\n00000\n00000\n00000\n00000\n00000\n\nWood\n#52361b #3f2a14 #654321\n00000\n11111\n00000\n22222\n11111\n\nBackgroundWeb\n#a8a8a8 #bdbdbd\n00000\n00000\n00000\n00000\n00000\n\nLeaf1\n#3f7f18 #5db724\n..0..\n.010.\n.100.\n.110.\n..11.\n\nLeaf2\n#3f7f18 #5db724\n.11..\n.110.\n.100.\n.010.\n..0..\n\n( Collision-detecting objects )\n\nPlayer\n#28A9C9 #d180fc (#f49ade) (#7DA012) #C3C3C3 #ebcb99 #2873c9\n.111.\n21312\n20002\n.000.\n.4.4.\n\nFairy\n#fc6f86 #7DA012 #C3C3C3 #ebcb99 #ff3f5f\n.111.\n21312\n20002\n.000.\n.4.4.\n\nTrappedFairy\n#828282 #7DA012 #C3C3C3 #ebcb99 #8e8e8e\n.111.\n41314\n44444\n00000\n.444.\n\n\nWall\n#52361b #3f2a14 #654321\n00000\n11111\n00000\n22222\n11111\n\nHole\nBrown #8b5d2e Black DarkGrey\n.222.\n22222\n22222\n22222\n.222.\n\nBlock\n#52361b #3f2a14 #654321\n.121.\n10001\n02102\n10021\n.101.\n\nWeb1\n#a8a8a8 #bdbdbd\n.001. \n0..01\n.01.0\n1.010\n.1.0.\n\nWeb2\n#a8a8a8 #bdbdbd\n.001. \n0..01\n.01.0\n1.010\n.1.0.\n\nWeb3\n#a8a8a8 #bdbdbd\n.001. \n0..01\n.01.0\n1.010\n.1.0.\n\nSpider\nBlack DarkRed\n.....\n.000.\n01010\n.000.\n0...0\n\nSpiderRed\nBlack Red\n.....\n.000.\n01010\n.000.\n0...0\n\n( Invisible control objects )\n\nSpiderSleep\nBlack\n.....\n.....\n.....\n.....\n.....\n\nPath1\n#FFAAAA\n00000\n0...0\n0...0\n0...0\n00000\n\nPath2\n#55FF55\n00000\n0...0\n0...0\n0...0\n00000\n\nPath3\n#0000FF\n00000\n0...0\n0...0\n0...0\n00000\n\nRightPath \nBlue\n.....\n.....\n..0..\n.....\n.....\n\nTimer\nRed\n.....\n.....\n.....\n.....\n.....\n\nTimerAlarm\nGreen\n.....\n.....\n.....\n.....\n.....\n\nTimer2\nYellow\n.....\n.....\n.....\n.....\n.....\n\nTimerSleep\nLightRed\n.....\n.....\n.....\n.....\n.....\n\n=======\nLEGEND\n=======\n\n( Legend icons are largely arbitrary, next project I'll work out a better system )\n\n. = Background\n, = BackgroundBlack\n; = Sky1\n: = Sky2\n\" = Sky3\n' = Wood\n# = Wall\nP = Player and Entrance\nW = Spider\nB = Block\nS = Web1 and Background\nD = Web1 and BackgroundWeb\nH = Hole and Background\nE = Hole and Wood\nQ = Web1 and Block\n$ = Wood and Fairy\n[ = Player and Wood\nL = Leaf1 and Sky1\nU = Leaf2 and Sky3\nI = Leaf2 and Sky1\nY = Leaf1 and Sky3\nT = TrappedFairy and Web1 and BackgroundWeb\nG = Player and Web1 and BackgroundWeb and SpiderSleep\n! = Timer and BackgroundBlack\n@ = TimerAlarm and BackgroundBlack\n% = Player and SpiderSleep and Entrance\n& = TimerAlarm and Wall\n2 = Timer2 and BackgroundBlack\n* = TimerSleep and BackgroundBlack\n\n( Shortcut catch-all terms for defining rules and collisions )\n\nPath = Path1 or Path2 or Path3\nObstacle = Wall or Block\nLeaf = Leaf1 or Leaf2\nSky = Sky1 or Sky2 or Sky3\nStickyWeb = Web1 or Web2\n\n=======\nSOUNDS\n=======\n\nPlayer MOVE 36772507\nBlock MOVE 57485107\nWeb2 Create 72977302\nWeb3 Create 72977302\nSfx0 83744503\nstartgame 92244503\nSpiderRed Create 76932302\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBackgroundBlack, BackgroundWeb, BackgroundRed, Sky, Wood, Entrance\nWeb1, Web2, Web3, Hole, Leaf\nWall,Player,Block, Fairy, TrappedFairy, Spider\nSpiderRed, SpiderSleep\nPath1,Path2,Path3\nRightPath\nTimer, TimerAlarm, Timer2, TimerSleep\n\n======\nRULES\n======\n\n ( Pushing blocks if you're stuck in a web )\n\n [ > Player no StickyWeb | Block ] -> [ > Player | > Block ]\n\n ( Defines web behavior )\n\n [ Player | Web2 ] -> [ Player | Web1 ]\n [ Player | Web3 ] -> [ Player | Web1 ]\n [ > Player Web1 ] -> [ Player Web2 ]\n [ > Player Web2 ] -> [ Player Web3 ]\n \n ( Keeps player and spider from swapping places )\n \n [ > Player | Spider ] -> [ Player | Spider ]\n \n ( Spider can be pushed )\n \n [ > Block | Spider ] -> [ > Block | > Spider]\n \n ( Define fairy behavior during intro cutscene)\n \n [ Stationary Fairy ] -> [randomDir Fairy] \n\n ( Win state )\n\n [ > Player | Hole no Block ] -> [ | Player Hole ] Sfx0 Win \n \n( Tweaked version of Maadball's pathfinding algorithm -- many thanks! )\n( Source: https://groups.google.com/forum/#!topic/puzzlescript/lHy9O4DuWhk )\n\n [ Player ][ Spider | no Obstacle ] -> [ Player ][ Spider | Path1 ]\n \nstartloop\n [ Player Path1 ] -> [ Player Path1 ]\n [ Player ][ Path1 | no Obstacle no Spider no Path3 ] -> [ Player ][ Path1 | Path2 ]\n [ Player ][ Path2 | no Obstacle no Path1 ] -> [ Player ][ Path2 | Path3 ]\n [ Player Path3 ] -> [ Player Path3 ]\n [ Player ][ Path3 | no Obstacle no Path2 ] -> [ Player ][ Path3 | Path1 ]\nendloop\n\n[ Player Path ] -> [ Player Path RightPath ]\n\nstartloop\n [ Path3 RightPath | Path2 ] -> [ RightPath | Path2 RightPath ]\n [ Path2 RightPath | Path1 ] -> [ RightPath | Path1 RightPath ]\n [ Path1 RightPath | Path3 ] -> [ RightPath | Path3 RightPath ]\nendloop\n\n[ Path ] -> [ ]\n[ Player ] -> [ Player ]\n[ Spider | RightPath no Block] -> [ > Spider | ] \n[ RightPath ] -> [ ]\n\n( Ends last room )\n\n late[ TrappedFairy ][ SpiderRed ] -> [ TrappedFairy ][ SpiderRed] Win\n\n( Death animation) \n\n [ > Spider | Player ] -> [ | SpiderRed ]\n late [ SpiderRed ][ BackgroundBlack ] -> [ SpiderRed ][ BackgroundRed ]\n \n( Spider Spawning )\n\n [ Timer ] -> [ Right Timer ]\n [ Timer2 ] -> [ Right Timer2]\n [ Timer2 | TimerAlarm ][ TimerSleep ] -> [ | ][ Timer ]\n \n late [ Timer | TimerAlarm ][ SpiderSleep ] -> [ | ][Spider] \n\n==============\nWINCONDITIONS\n==============\n\n( Defined in rules )\n\n=======\nLEVELS\n=======\n\nmessage Once upon a time, five tiny adorable fairies happened upon a hollow in a great old tree.\n\n::'''''''::\n::''$''''::\n::'''''$'::\nU\"'''E'''\"\"\n''''''''$\"\"\n\"Y$''''''\"\"\n;;'''''''I;\n;;'''['''''\n;;''''''';L\n\nmessage The smallest and most fearful of the fairies peered inside, but was too afraid to go in.\n\nmessage The other four, who were more curious and adventurous, entered the tree. This left the little fairy all alone. \n\n::'''''''::\n::'''''''::\n::'''''''::\nU\"'''E'''\"\"\n'''''''''\"\"\n\"Y'''''''\"\"\n;;'''''''I;\n;;'''['''''\n;;''''''';L\n\nmessage She waited and waited, but her friends didn't return. Mustering her courage, she ventured in after them.\n\n,###,,,,,,,\n,#H#,,,,,,,\n,#.#,###,,,\n,#S###.#,,,\n,#SSS..#,,,\n######B##,,\n#P....B.#,,\n#####..##,,\n,,,,####,,,\n\nmessage This was unwise.\n\n,#######,,,\n,#P....##,,\n,#......#,,\n,###BBB##,,\n,,,#...#,,,\n#####S##,,,\n#H.SSS#,,,,\n#######,,,,\n,,,,,,,,,,,\n\nmessage You see, the brave little fairy didn't know about -me-.\n\n,###,,,,,,,\n,#.########\n,#.....SSS#\n,#.#####S.#\n,#B....##.#\n##.###.#..#\n#P.#SS.#H##\n##.#WS.###,\n,#######,,,\n\nmessage Watch out for my web little fairy. It's easy to get stuck.\n\n!,,#######,\n####.....#@\n#HS#..##.#,\n##S#...#.#,\n,#S##..#.#,\n,#SS..B#.#,\n,###....%#,\n,,,##B.###,\n,,,,####,,,\n\n!,,,,,,,@,,\n########,,,\n#%ssb..##,,\n#...b...##,\n######b..##\n,,####.bss#\n,,#hs.b.ss#\n,,####.b.##\n,,,,,#####,\n\n!,,,,,,,,,@\n,,#####,,,,\n###.b.###,,\n#s......#,,\n#.###ss.#,,\n#.h#ssb.#,,\n#bb%.b#.#,,\n###.....#,,\n,,#######,,\n\n!,,,,,#&##,\n,,,####SH#,\n,,,#..SS##,\n,,,#..BS.#,\n,###..B..#,\n,#%#SBBBS#,\n,#.......#,\n,#########,\n,,,,,,,,,,,\n\nmessage Don't worry. Like all the best fairy tales, this one has a happy ending.\n\n,#########,\n##...bb.%#,\n#.s#s...##,\n#.########,\n#s.s##ssh#,\n#bb.##s#s#,\n###ssssss#,\n,,########,\n,,,,,,,,,,,\n\nmessage The brave little fairy finds her friends.\n\n*,,,,,,,,,,\n,#########@\n,#DDTDDDD#,\n,#DDDDTDD#,\n,#DDDDDDG#,\n,#TDDDDDD#,\n,#DDDTDDD#,\n,#########@\n2,,,,,,,,,,\n\nmessage And she'll never be apart from them again.\n\n( End of code )\n",[3,0,0,0,0,3,3,3,3,3,3,3,3,3,3,2,2,3,2],"background backgroundblack:0,0,0,0,0,background wall:1,1,1,0,1,1,\n1,1,1,1,background entrance:2,1,1,1,background block:3,background:4,4,\n4,4,4,4,1,1,1,4,1,4,1,\n1,1,1,0,1,4,1,4,1,background web1:5,4,\n1,0,1,4,1,4,1,5,5,1,0,\n1,4,1,4,4,4,4,1,0,1,background spider web1:6,\n1,1,1,1,1,1,0,1,5,background player web3:7,1,\n4,background hole:8,1,0,0,1,5,4,4,4,1,\n1,0,0,1,1,1,1,1,1,0,0,\n",10,"1627779381588.6055"] + ["title Spider's Hollow\nauthor John Thyer\nagain_interval 0.1\n\n========\nOBJECTS\n========\n\n( Background objects )\n\nBackground\nBrown #8b5d2e\n00100 \n00001\n01000\n00100\n10000\n\nEntrance\nBrown #ad7438\n00100 \n00001\n01000\n00100\n10000\n\n\nBackgroundBlack\nBlack\n00000\n00000\n00000\n00000\n00000\n\nBackgroundRed\nRed\n00000\n00000\n00000\n00000\n00000\n\nSky1\n#8fc2fc \n00000\n00000\n00000\n00000\n00000\n\nSky2\n#afd4ff\n00000\n00000\n00000\n00000\n00000\n\nSky3\n#9ecbff\n00000\n00000\n00000\n00000\n00000\n\nWood\n#52361b #3f2a14 #654321\n00000\n11111\n00000\n22222\n11111\n\nBackgroundWeb\n#a8a8a8 #bdbdbd\n00000\n00000\n00000\n00000\n00000\n\nLeaf1\n#3f7f18 #5db724\n..0..\n.010.\n.100.\n.110.\n..11.\n\nLeaf2\n#3f7f18 #5db724\n.11..\n.110.\n.100.\n.010.\n..0..\n\n( Collision-detecting objects )\n\nPlayer\n#28A9C9 #d180fc (#f49ade) (#7DA012) #C3C3C3 #ebcb99 #2873c9\n.111.\n21312\n20002\n.000.\n.4.4.\n\nFairy\n#fc6f86 #7DA012 #C3C3C3 #ebcb99 #ff3f5f\n.111.\n21312\n20002\n.000.\n.4.4.\n\nTrappedFairy\n#828282 #7DA012 #C3C3C3 #ebcb99 #8e8e8e\n.111.\n41314\n44444\n00000\n.444.\n\n\nWall\n#52361b #3f2a14 #654321\n00000\n11111\n00000\n22222\n11111\n\nHole\nBrown #8b5d2e Black DarkGrey\n.222.\n22222\n22222\n22222\n.222.\n\nBlock\n#52361b #3f2a14 #654321\n.121.\n10001\n02102\n10021\n.101.\n\nWeb1\n#a8a8a8 #bdbdbd\n.001. \n0..01\n.01.0\n1.010\n.1.0.\n\nWeb2\n#a8a8a8 #bdbdbd\n.001. \n0..01\n.01.0\n1.010\n.1.0.\n\nWeb3\n#a8a8a8 #bdbdbd\n.001. \n0..01\n.01.0\n1.010\n.1.0.\n\nSpider\nBlack DarkRed\n.....\n.000.\n01010\n.000.\n0...0\n\nSpiderRed\nBlack Red\n.....\n.000.\n01010\n.000.\n0...0\n\n( Invisible control objects )\n\nSpiderSleep\nBlack\n.....\n.....\n.....\n.....\n.....\n\nPath1\n#FFAAAA\n00000\n0...0\n0...0\n0...0\n00000\n\nPath2\n#55FF55\n00000\n0...0\n0...0\n0...0\n00000\n\nPath3\n#0000FF\n00000\n0...0\n0...0\n0...0\n00000\n\nRightPath \nBlue\n.....\n.....\n..0..\n.....\n.....\n\nTimer\nRed\n.....\n.....\n.....\n.....\n.....\n\nTimerAlarm\nGreen\n.....\n.....\n.....\n.....\n.....\n\nTimer2\nYellow\n.....\n.....\n.....\n.....\n.....\n\nTimerSleep\nLightRed\n.....\n.....\n.....\n.....\n.....\n\n=======\nLEGEND\n=======\n\n( Legend icons are largely arbitrary, next project I'll work out a better system )\n\n. = Background\n, = BackgroundBlack\n; = Sky1\n: = Sky2\n\" = Sky3\n' = Wood\n# = Wall\nP = Player and Entrance\nW = Spider\nB = Block\nS = Web1 and Background\nD = Web1 and BackgroundWeb\nH = Hole and Background\nE = Hole and Wood\nQ = Web1 and Block\n$ = Wood and Fairy\n[ = Player and Wood\nL = Leaf1 and Sky1\nU = Leaf2 and Sky3\nI = Leaf2 and Sky1\nY = Leaf1 and Sky3\nT = TrappedFairy and Web1 and BackgroundWeb\nG = Player and Web1 and BackgroundWeb and SpiderSleep\n! = Timer and BackgroundBlack\n@ = TimerAlarm and BackgroundBlack\n% = Player and SpiderSleep and Entrance\n& = TimerAlarm and Wall\n2 = Timer2 and BackgroundBlack\n* = TimerSleep and BackgroundBlack\n\n( Shortcut catch-all terms for defining rules and collisions )\n\nPath = Path1 or Path2 or Path3\nObstacle = Wall or Block\nLeaf = Leaf1 or Leaf2\nSky = Sky1 or Sky2 or Sky3\nStickyWeb = Web1 or Web2\n\n=======\nSOUNDS\n=======\n\nPlayer MOVE 36772507\nBlock MOVE 57485107\nWeb2 Create 72977302\nWeb3 Create 72977302\nSfx0 83744503\nstartgame 92244503\nSpiderRed Create 76932302\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBackgroundBlack, BackgroundWeb, BackgroundRed, Sky, Wood, Entrance\nWeb1, Web2, Web3, Hole, Leaf\nWall,Player,Block, Fairy, TrappedFairy, Spider\nSpiderRed, SpiderSleep\nPath1,Path2,Path3\nRightPath\nTimer, TimerAlarm, Timer2, TimerSleep\n\n======\nRULES\n======\n\n ( Pushing blocks if you're stuck in a web )\n\n [ > Player no StickyWeb | Block ] -> [ > Player | > Block ]\n\n ( Defines web behavior )\n\n [ Player | Web2 ] -> [ Player | Web1 ]\n [ Player | Web3 ] -> [ Player | Web1 ]\n [ > Player Web1 ] -> [ Player Web2 ]\n [ > Player Web2 ] -> [ Player Web3 ]\n \n ( Keeps player and spider from swapping places )\n \n [ > Player | Spider ] -> [ Player | Spider ]\n \n ( Spider can be pushed )\n \n [ > Block | Spider ] -> [ > Block | > Spider]\n \n ( Define fairy behavior during intro cutscene)\n \n [ Stationary Fairy ] -> [randomDir Fairy] \n\n ( Win state )\n\n [ > Player | Hole no Block ] -> [ | Player Hole ] Sfx0 Win \n \n( Tweaked version of Maadball's pathfinding algorithm -- many thanks! )\n( Source: https://groups.google.com/forum/#!topic/puzzlescript/lHy9O4DuWhk )\n\n [ Player ][ Spider | no Obstacle ] -> [ Player ][ Spider | Path1 ]\n \nstartloop\n [ Player Path1 ] -> [ Player Path1 ]\n [ Player ][ Path1 | no Obstacle no Spider no Path3 ] -> [ Player ][ Path1 | Path2 ]\n [ Player ][ Path2 | no Obstacle no Path1 ] -> [ Player ][ Path2 | Path3 ]\n [ Player Path3 ] -> [ Player Path3 ]\n [ Player ][ Path3 | no Obstacle no Path2 ] -> [ Player ][ Path3 | Path1 ]\nendloop\n\n[ Player Path ] -> [ Player Path RightPath ]\n\nstartloop\n [ Path3 RightPath | Path2 ] -> [ RightPath | Path2 RightPath ]\n [ Path2 RightPath | Path1 ] -> [ RightPath | Path1 RightPath ]\n [ Path1 RightPath | Path3 ] -> [ RightPath | Path3 RightPath ]\nendloop\n\n[ Path ] -> [ ]\n[ Player ] -> [ Player ]\n[ Spider | RightPath no Block] -> [ > Spider | ] \n[ RightPath ] -> [ ]\n\n( Ends last room )\n\n late[ TrappedFairy ][ SpiderRed ] -> [ TrappedFairy ][ SpiderRed] Win\n\n( Death animation) \n\n [ > Spider | Player ] -> [ | SpiderRed ]\n late [ SpiderRed ][ BackgroundBlack ] -> [ SpiderRed ][ BackgroundRed ]\n \n( Spider Spawning )\n\n [ Timer ] -> [ Right Timer ]\n [ Timer2 ] -> [ Right Timer2]\n [ Timer2 | TimerAlarm ][ TimerSleep ] -> [ | ][ Timer ]\n \n late [ Timer | TimerAlarm ][ SpiderSleep ] -> [ | ][Spider] \n\n==============\nWINCONDITIONS\n==============\n\n( Defined in rules )\n\n=======\nLEVELS\n=======\n\nmessage Once upon a time, five tiny adorable fairies happened upon a hollow in a great old tree.\n\n::'''''''::\n::''$''''::\n::'''''$'::\nU\"'''E'''\"\"\n''''''''$\"\"\n\"Y$''''''\"\"\n;;'''''''I;\n;;'''['''''\n;;''''''';L\n\nmessage The smallest and most fearful of the fairies peered inside, but was too afraid to go in.\n\nmessage The other four, who were more curious and adventurous, entered the tree. This left the little fairy all alone. \n\n::'''''''::\n::'''''''::\n::'''''''::\nU\"'''E'''\"\"\n'''''''''\"\"\n\"Y'''''''\"\"\n;;'''''''I;\n;;'''['''''\n;;''''''';L\n\nmessage She waited and waited, but her friends didn't return. Mustering her courage, she ventured in after them.\n\n,###,,,,,,,\n,#H#,,,,,,,\n,#.#,###,,,\n,#S###.#,,,\n,#SSS..#,,,\n######B##,,\n#P....B.#,,\n#####..##,,\n,,,,####,,,\n\nmessage This was unwise.\n\n,#######,,,\n,#P....##,,\n,#......#,,\n,###BBB##,,\n,,,#...#,,,\n#####S##,,,\n#H.SSS#,,,,\n#######,,,,\n,,,,,,,,,,,\n\nmessage You see, the brave little fairy didn't know about -me-.\n\n,###,,,,,,,\n,#.########\n,#.....SSS#\n,#.#####S.#\n,#B....##.#\n##.###.#..#\n#P.#SS.#H##\n##.#WS.###,\n,#######,,,\n\nmessage Watch out for my web little fairy. It's easy to get stuck.\n\n!,,#######,\n####.....#@\n#HS#..##.#,\n##S#...#.#,\n,#S##..#.#,\n,#SS..B#.#,\n,###....%#,\n,,,##B.###,\n,,,,####,,,\n\n!,,,,,,,@,,\n########,,,\n#%ssb..##,,\n#...b...##,\n######b..##\n,,####.bss#\n,,#hs.b.ss#\n,,####.b.##\n,,,,,#####,\n\n!,,,,,,,,,@\n,,#####,,,,\n###.b.###,,\n#s......#,,\n#.###ss.#,,\n#.h#ssb.#,,\n#bb%.b#.#,,\n###.....#,,\n,,#######,,\n\n!,,,,,#&##,\n,,,####SH#,\n,,,#..SS##,\n,,,#..BS.#,\n,###..B..#,\n,#%#SBBBS#,\n,#.......#,\n,#########,\n,,,,,,,,,,,\n\nmessage Don't worry. Like all the best fairy tales, this one has a happy ending.\n\n,#########,\n##...bb.%#,\n#.s#s...##,\n#.########,\n#s.s##ssh#,\n#bb.##s#s#,\n###ssssss#,\n,,########,\n,,,,,,,,,,,\n\nmessage The brave little fairy finds her friends.\n\n*,,,,,,,,,,\n,#########@\n,#DDTDDDD#,\n,#DDDDTDD#,\n,#DDDDDDG#,\n,#TDDDDDD#,\n,#DDDTDDD#,\n,#########@\n2,,,,,,,,,,\n\nmessage And she'll never be apart from them again.\n\n( End of code )\n", [3, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 3, 2], "background backgroundblack:0,0,0,0,0,background wall:1,1,1,0,1,1,\n1,1,1,1,background entrance:2,1,1,1,background block:3,background:4,4,\n4,4,4,4,1,1,1,4,1,4,1,\n1,1,1,0,1,4,1,4,1,background web1:5,4,\n1,0,1,4,1,4,1,5,5,1,0,\n1,4,1,4,4,4,4,1,0,1,background spider web1:6,\n1,1,1,1,1,1,0,1,5,background player web3:7,1,\n4,background hole:8,1,0,0,1,5,4,4,4,1,\n1,0,0,1,1,1,1,1,1,0,0,\n", 10, "1627779381588.6055"] ], [ `gallery: i herd u liek water templs`, - ["title i herd u liek water templs \nauthor Denis Prause\nhomepage https://twitter.com/zejety\nrealtime_interval 0.22\nkey_repeat_interval 0.22\nnoaction\nthrottle_movement\nnoundo\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\npurple\n\nTarget \nyellow transparent\n11111\n11011\n10001\n11011\n11111\n\nWall \ndarkgrey\n\nDirWallUp\ngrey transparent\n00000\n01110\n11111\n11111\n11111\n\nDirWallDown\ngrey transparent\n11111\n11111\n11111\n01110\n00000\n\nDirWallLeft\ngrey transparent\n00111\n01111\n01111\n01111\n00111\n\nDirWallRight\ngrey transparent\n11100\n11110\n11110\n11110\n11100\n\nAmplitudeTop \nwhite transparent\n11111\n11111\n11011\n10001\n11111\n\nAmplitudeBottom\nwhite transparent\n11111\n11111\n11111\n10001\n11011\n\nWaveLimitTop\nlightgrey transparent\n11111\n11111\n00100\n11111\n11111\n\nWaveLimitBottom\nlightgrey transparent\n11111\n11111\n11111\n11111\n00100\n\nWaveLimitLocked\nlightgrey transparent\n11111\n11111\n00100\n01110\n00100\n\nEdgeV\ndarkgrey\n\nPlayer\nlightgreen transparent lightred white\n21212\n10001\n10001\n13331\n13131\n\n\nWaterTop\nLightBlue Transparent\n11111\n11111\n11111\n00000\n11111\n\nWaterTopBG\nblue Transparent\n11111\n11111\n11111\n11111\n00000\n\nWater\nBlue\n\nWaterTarget \ntransparent\n\nWaveGenEditor\nlightblue transparent\n11111\n11111\n11111\n11011\n11111\n\nWaveGenDown\ntransparent\n\nWaveGenUp\ntransparent\n\nInitialize\ntransparent\n\nAuto\ntransparent\n\nManual\ntransparent\n\nCrate \norange brown darkbrown\n00001\n01112\n01112\n01112\n22222\n\nTempBool\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n| = EdgeV and Wall\n_ = WaveLimitLocked and Wall\n+ = WaveGenEditor and Wall\nX = WaveGenEditor and Wall and WaveLimitLocked\n# = Wall\nP = Player\n* = Crate\nM = DirWallUp and Target\n@ = Crate and Target\nO = Target\nI = Initialize\nn = DirWallUp\nu = DirWallDown\nü = DirWallDown and Crate\n{ = DirWallLeft\n} = DirWallRight\n\nWaveGen = WaveGenEditor OR WaveGenUp OR WaveGenDown\nWaveLimit = WaveLimitTop OR WaveLimitBottom OR WaveLimitLocked\nAmplitude = AmplitudeTop OR AmplitudeBottom\nTickType = Auto OR Manual\nFalls = Player OR Crate\nFloats = Player OR Crate\nDirWall = DirWallUp OR DirWallDown OR DirWallLeft OR DirWallRight\nFooting = Crate OR Wall OR DirWallUp\n\n=======\nSOUNDS\n=======\n\nAmplitudeTop move up 15514706\nAmplitudeTop move down 11511507\nRestart 7460308\nShowMessage 84284103\nEndLevel 48691700\nCloseMessage 50465106\nCrate move horizontal 35598907\nsfx0 96204907 (steps)\nsfx1 56311707 (swim) \nEndGame 19886503\n(old swim sound 84033708)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWater\nWaterTopBG\nPlayer, Wall, Crate\nDirWall\nWaveLimit\nWaterTop\nWaterTarget\nEdgeV\nWaveGen\nAmplitudeTop\nAmplitudeBottom\nTarget\nInitialize\nTempBool\nAuto Manual\n\n\n======\nRULES \n====== \n\n(Iitialization)\n\tup [Initialize][WaveLimit | ... | WaveLimit] -> [Initialize][WaveLimitBottom | ... | WaveLimitTop]\n\t[Initialize] [WaveGen] -> [Initialize] [WaveGenUp AmplitudeTop AmplitudeBottom WaterTop]\n \tHorizontal [Initialize] [WaveGen |...| ] -> [Initialize] [WaveGen |...| WaterTop]\n UP [Initialize][no Water | ... | WaterTop] -> [Initialize][Water | ... | WaterTop] \n \t[Initialize][WaterTop no WaterTopBG] -> [Initialize][WaterTop WaterTopBG]\n \n random [] -> [Tempbool]\n \t[Initialize] -> []\n\n[TickType] -> []\nrandom [] -> [Manual]\n[ stationary Player ][Manual] -> [ stationary Player ][Auto] \n\n\n(player input)\n\t(vertical input)\n \t[Manual][up Player][AmplitudeBottom no WaveLimit][no WaveLimit AmplitudeTop] -> [Manual][up Player][down AmplitudeBottom no WaveLimit][no WaveLimit up AmplitudeTop]\n \t[Manual][down Player][AmplitudeBottom no AmplitudeTop][AmplitudeTop] -> [Manual][down Player][up AmplitudeBottom][down AmplitudeTop] \n \t[vertical Player] -> [Player]\n \n (horizontal input)\n \t[TempBool][horizontal Player] -> [up TempBool][horizontal Player]\n \tdown [TempBool][player no WaterTop | no Footing ] -> [down TempBool][player no WaterTop | no Footing]\n \tdown [down TempBool][WaterTop | ... | player] -> down [up TempBool][WaterTop | ... | player]\n \t[down TempBool][Player] -> [TempBool][stationary Player]\n \tright [right Player | Floats no DirWallLeft] -> [right Player | right Floats no DirWallLeft]\n \tleft [left Player | Floats no DirWallRight] -> [left Player | left Floats no DirWallRight]\n [TempBool] -> [stationary TempBool ]\n [TempBool][horizontal Player] -> [up TempBool][horizontal Player]\n down [TempBool][horizontal Player No Water | Footing ]->[stationary TempBool][horizontal Player | Footing ] SFX0 \n [up TempBool] -> [stationary TempBool] SFX1\n \n\n(timed events)\n [Auto][WaveGen] -> [Auto][WaveGen WaterTarget] \n\tVertical [Auto][ stationary WaterTop |...| WaterTarget ] -> [Auto][ > WaterTop |...| WaterTarget ]\n\t[Auto][WaterTarget] -> [Auto][right WaterTarget]\n (update Water)\n [moving WaterTop stationary WaterTopBG ] -> [moving WaterTop moving WaterTopBG]\n [up WaterTop no Water ] -> [up WaterTop stationary Water]\n down [> WaterTop | Water ] -> [> WaterTop | ]\n\n\t(WaveGen oscillerates between amplitude points)\n \tUp [Auto][WaveGenUp | ... | AmplitudeTop] -> [Auto][ > WaveGenUp | ... | AmplitudeTop]\n \tDown [Auto][WaveGenDown | ... | AmplitudeBottom] -> [Auto][ > WaveGenDown | ... | AmplitudeBottom]\n \t[Auto][WaveGenUp AmplitudeTop] -> [Auto][WaveGenDown AmplitudeTop]\n \t[Auto][WaveGenDown AmplitudeBottom] -> [Auto][WaveGenUp AmplitudeBottom]\n down [Auto][WaveGenUp |...| AmplitudeTop] -> [Auto][WaveGenDown |...| AmplitudeTop]\n up [Auto][WaveGenDown |...| AmplitudeBottom] -> [Auto][WaveGenUp |...| AmplitudeBottom]\n late [WaterTarget EdgeV] -> [EdgeV]\n \n\t(Floating/Falling objects)\n [Auto][vertical WaterTop Floats] -> [Auto][vertical WaterTop vertical Floats]\n UP[Auto][stationary Floats |...| WaterTop] -> [Auto][up Floats |...| WaterTop] \n up[Auto][up Floats | down WaterTop] -> [Auto][Floats | down WaterTop]\n down[Auto][stationary Falls no WaterTop no Water | no Water] -> [Auto][down Falls | ]\n\n(any tick)\ndown [> Floats | DirWallUp ] -> [ Floats | DirWallUp ]\nup [> Floats | DirWallDown ] -> [ Floats | DirWallDown ]\nleft [> Floats | DirWallRight ] -> [ Floats | DirWallRight ]\nright [> Floats | DirWallLeft ] -> [ Floats | DirWallLeft ]\nup [> Floats | Floats ] -> vertical [> Floats | > Floats]\ndown [> Floats | DirWallUp ] -> [ Floats | DirWallUp ]\nup [> Floats | DirWallDown ] -> [ Floats | DirWallDown ]\nleft [> Floats | DirWallRight ] -> [ Floats | DirWallRight ]\nright [> Floats | DirWallLeft ] -> [ Floats | DirWallLeft ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate \n\n======= \nLEVELS\n=======\nMessage Level 1 - Push a crate onto the yellow plus to complete a level!\n\n#################|\n#...............I|\n#P.*.............|\n######...........|\n#................|\n#...######.......|\nX............O...|\n#................|\n#################|\n\n\nMessage Level 2 - Use the up and down arrow keys to remote control the wave machine! \n#################|\n#I...............|\n#P...............|\n###..............|\n#................|\n_...............O|\n+....###*........|\n_................|\n#################|\n\n\nMessage Level 3 - With good timing, you can push crates while you and it are at a wave's peak or valley.\n#################|\n#I..#..*.P.......|\n#...#.#####......|\n#...#............|\n#................|\n_..####.........O|\n+..####.......###|\n_.............#..|\n#################|\n\n\nMessage Level 4: Cue Roundabout\n#################|\n#I.....#.........|\n#.....P}..O*.....|\n_....####n###u#..|\n#.#n*###..##.....|\n+...###..........|\n#................|\n_................|\n#################|\n\nMessage Level 5: Give Me a Lift\n#################|\n#I...............|\n#..O.............|\n_.........##.#.#.|\n#........*##.#.#.|\n+..P.....###.#.*.|\n#....#######.#.*.|\n_.....*......#.*.|\n#################|\n\nMessage Level 6: Stop Motion\n#################|\n#I...............|\n#................|\n#.O..u.u......*.P|\n_####ü#ü#.#.#####|\n+....*.*#n.n#....|\n_........*.*.....|\n#................|\n#################|\n\nMessage Level 7: Build Bridges, Not Walls\n#################|\n#I...............|\n#................|\n##.......P.u.....|\n_##uu*#####n#.*..|\n+#..}u#....n..**.|\n_mnnnn*.#..*.....|\n#................|\n#################|\n\nMessage Congratulations! You've managed to escape the dungeon!\n\n(\n#################|\n#I...............|\n#................|\n#................|\n#................|\n#................|\n#................|\n#................|\n#################|\n)\n\n\n",["tick","tick","tick",1,"tick","tick",1,"tick",1,"tick",0,"tick","tick","tick","tick","tick","tick",2,"tick","tick",3,"tick","tick",2,"tick",1,"tick","tick",0,"tick",1,"tick",1,"tick","tick","tick","tick","tick"],"background wall:0,background tempbool wall:1,0,background wall wavelimittop:2,amplitudetop background wall wavegenup:3,background wall watertop watertopbg:4,amplitudebottom background tempbool wall water:5,background wall water wavelimitbottom:6,background wall water:7,0,background:8,8,8,8,background watertarget:9,background player watertop watertopbg:10,background water:11,7,\n0,background tempbool:12,8,8,1,8,background watertarget watertop watertopbg:13,11,background tempbool wall water:14,auto background tempbool wall:15,8,8,8,background dirwallup:16,background watertop watertopbg:17,background water watertarget:18,11,7,\n1,12,8,12,background crate watertop watertopbg:19,background wall water watertarget:20,11,background tempbool water:21,14,0,8,12,0,background wall watertarget watertop watertopbg:22,7,11,21,7,\n1,8,8,1,background wall watertarget:23,4,11,11,7,0,1,background dirwallright:24,1,0,13,11,11,7,\n0,8,8,0,8,background tempbool watertarget watertop watertopbg:25,11,11,14,1,8,12,16,8,13,11,11,7,\n0,8,background target:26,0,0,13,21,11,14,0,12,background crate:27,0,1,25,21,11,14,\n0,8,8,0,8,13,21,11,7,0,8,8,background dirwalldown:28,8,25,11,21,7,\n0,8,8,0,8,9,17,21,7,0,8,8,8,8,8,13,21,7,\n0,8,8,8,8,17,18,21,7,background edgev wall:29,29,29,29,29,background edgev wall watertop watertopbg:30,background edgev wall water:31,31,31,\n",7,"1627779397370.8157"] + ["title i herd u liek water templs \nauthor Denis Prause\nhomepage https://twitter.com/zejety\nrealtime_interval 0.22\nkey_repeat_interval 0.22\nnoaction\nthrottle_movement\nnoundo\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\npurple\n\nTarget \nyellow transparent\n11111\n11011\n10001\n11011\n11111\n\nWall \ndarkgrey\n\nDirWallUp\ngrey transparent\n00000\n01110\n11111\n11111\n11111\n\nDirWallDown\ngrey transparent\n11111\n11111\n11111\n01110\n00000\n\nDirWallLeft\ngrey transparent\n00111\n01111\n01111\n01111\n00111\n\nDirWallRight\ngrey transparent\n11100\n11110\n11110\n11110\n11100\n\nAmplitudeTop \nwhite transparent\n11111\n11111\n11011\n10001\n11111\n\nAmplitudeBottom\nwhite transparent\n11111\n11111\n11111\n10001\n11011\n\nWaveLimitTop\nlightgrey transparent\n11111\n11111\n00100\n11111\n11111\n\nWaveLimitBottom\nlightgrey transparent\n11111\n11111\n11111\n11111\n00100\n\nWaveLimitLocked\nlightgrey transparent\n11111\n11111\n00100\n01110\n00100\n\nEdgeV\ndarkgrey\n\nPlayer\nlightgreen transparent lightred white\n21212\n10001\n10001\n13331\n13131\n\n\nWaterTop\nLightBlue Transparent\n11111\n11111\n11111\n00000\n11111\n\nWaterTopBG\nblue Transparent\n11111\n11111\n11111\n11111\n00000\n\nWater\nBlue\n\nWaterTarget \ntransparent\n\nWaveGenEditor\nlightblue transparent\n11111\n11111\n11111\n11011\n11111\n\nWaveGenDown\ntransparent\n\nWaveGenUp\ntransparent\n\nInitialize\ntransparent\n\nAuto\ntransparent\n\nManual\ntransparent\n\nCrate \norange brown darkbrown\n00001\n01112\n01112\n01112\n22222\n\nTempBool\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n| = EdgeV and Wall\n_ = WaveLimitLocked and Wall\n+ = WaveGenEditor and Wall\nX = WaveGenEditor and Wall and WaveLimitLocked\n# = Wall\nP = Player\n* = Crate\nM = DirWallUp and Target\n@ = Crate and Target\nO = Target\nI = Initialize\nn = DirWallUp\nu = DirWallDown\nü = DirWallDown and Crate\n{ = DirWallLeft\n} = DirWallRight\n\nWaveGen = WaveGenEditor OR WaveGenUp OR WaveGenDown\nWaveLimit = WaveLimitTop OR WaveLimitBottom OR WaveLimitLocked\nAmplitude = AmplitudeTop OR AmplitudeBottom\nTickType = Auto OR Manual\nFalls = Player OR Crate\nFloats = Player OR Crate\nDirWall = DirWallUp OR DirWallDown OR DirWallLeft OR DirWallRight\nFooting = Crate OR Wall OR DirWallUp\n\n=======\nSOUNDS\n=======\n\nAmplitudeTop move up 15514706\nAmplitudeTop move down 11511507\nRestart 7460308\nShowMessage 84284103\nEndLevel 48691700\nCloseMessage 50465106\nCrate move horizontal 35598907\nsfx0 96204907 (steps)\nsfx1 56311707 (swim) \nEndGame 19886503\n(old swim sound 84033708)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWater\nWaterTopBG\nPlayer, Wall, Crate\nDirWall\nWaveLimit\nWaterTop\nWaterTarget\nEdgeV\nWaveGen\nAmplitudeTop\nAmplitudeBottom\nTarget\nInitialize\nTempBool\nAuto Manual\n\n\n======\nRULES \n====== \n\n(Iitialization)\n\tup [Initialize][WaveLimit | ... | WaveLimit] -> [Initialize][WaveLimitBottom | ... | WaveLimitTop]\n\t[Initialize] [WaveGen] -> [Initialize] [WaveGenUp AmplitudeTop AmplitudeBottom WaterTop]\n \tHorizontal [Initialize] [WaveGen |...| ] -> [Initialize] [WaveGen |...| WaterTop]\n UP [Initialize][no Water | ... | WaterTop] -> [Initialize][Water | ... | WaterTop] \n \t[Initialize][WaterTop no WaterTopBG] -> [Initialize][WaterTop WaterTopBG]\n \n random [] -> [Tempbool]\n \t[Initialize] -> []\n\n[TickType] -> []\nrandom [] -> [Manual]\n[ stationary Player ][Manual] -> [ stationary Player ][Auto] \n\n\n(player input)\n\t(vertical input)\n \t[Manual][up Player][AmplitudeBottom no WaveLimit][no WaveLimit AmplitudeTop] -> [Manual][up Player][down AmplitudeBottom no WaveLimit][no WaveLimit up AmplitudeTop]\n \t[Manual][down Player][AmplitudeBottom no AmplitudeTop][AmplitudeTop] -> [Manual][down Player][up AmplitudeBottom][down AmplitudeTop] \n \t[vertical Player] -> [Player]\n \n (horizontal input)\n \t[TempBool][horizontal Player] -> [up TempBool][horizontal Player]\n \tdown [TempBool][player no WaterTop | no Footing ] -> [down TempBool][player no WaterTop | no Footing]\n \tdown [down TempBool][WaterTop | ... | player] -> down [up TempBool][WaterTop | ... | player]\n \t[down TempBool][Player] -> [TempBool][stationary Player]\n \tright [right Player | Floats no DirWallLeft] -> [right Player | right Floats no DirWallLeft]\n \tleft [left Player | Floats no DirWallRight] -> [left Player | left Floats no DirWallRight]\n [TempBool] -> [stationary TempBool ]\n [TempBool][horizontal Player] -> [up TempBool][horizontal Player]\n down [TempBool][horizontal Player No Water | Footing ]->[stationary TempBool][horizontal Player | Footing ] SFX0 \n [up TempBool] -> [stationary TempBool] SFX1\n \n\n(timed events)\n [Auto][WaveGen] -> [Auto][WaveGen WaterTarget] \n\tVertical [Auto][ stationary WaterTop |...| WaterTarget ] -> [Auto][ > WaterTop |...| WaterTarget ]\n\t[Auto][WaterTarget] -> [Auto][right WaterTarget]\n (update Water)\n [moving WaterTop stationary WaterTopBG ] -> [moving WaterTop moving WaterTopBG]\n [up WaterTop no Water ] -> [up WaterTop stationary Water]\n down [> WaterTop | Water ] -> [> WaterTop | ]\n\n\t(WaveGen oscillerates between amplitude points)\n \tUp [Auto][WaveGenUp | ... | AmplitudeTop] -> [Auto][ > WaveGenUp | ... | AmplitudeTop]\n \tDown [Auto][WaveGenDown | ... | AmplitudeBottom] -> [Auto][ > WaveGenDown | ... | AmplitudeBottom]\n \t[Auto][WaveGenUp AmplitudeTop] -> [Auto][WaveGenDown AmplitudeTop]\n \t[Auto][WaveGenDown AmplitudeBottom] -> [Auto][WaveGenUp AmplitudeBottom]\n down [Auto][WaveGenUp |...| AmplitudeTop] -> [Auto][WaveGenDown |...| AmplitudeTop]\n up [Auto][WaveGenDown |...| AmplitudeBottom] -> [Auto][WaveGenUp |...| AmplitudeBottom]\n late [WaterTarget EdgeV] -> [EdgeV]\n \n\t(Floating/Falling objects)\n [Auto][vertical WaterTop Floats] -> [Auto][vertical WaterTop vertical Floats]\n UP[Auto][stationary Floats |...| WaterTop] -> [Auto][up Floats |...| WaterTop] \n up[Auto][up Floats | down WaterTop] -> [Auto][Floats | down WaterTop]\n down[Auto][stationary Falls no WaterTop no Water | no Water] -> [Auto][down Falls | ]\n\n(any tick)\ndown [> Floats | DirWallUp ] -> [ Floats | DirWallUp ]\nup [> Floats | DirWallDown ] -> [ Floats | DirWallDown ]\nleft [> Floats | DirWallRight ] -> [ Floats | DirWallRight ]\nright [> Floats | DirWallLeft ] -> [ Floats | DirWallLeft ]\nup [> Floats | Floats ] -> vertical [> Floats | > Floats]\ndown [> Floats | DirWallUp ] -> [ Floats | DirWallUp ]\nup [> Floats | DirWallDown ] -> [ Floats | DirWallDown ]\nleft [> Floats | DirWallRight ] -> [ Floats | DirWallRight ]\nright [> Floats | DirWallLeft ] -> [ Floats | DirWallLeft ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate \n\n======= \nLEVELS\n=======\nMessage Level 1 - Push a crate onto the yellow plus to complete a level!\n\n#################|\n#...............I|\n#P.*.............|\n######...........|\n#................|\n#...######.......|\nX............O...|\n#................|\n#################|\n\n\nMessage Level 2 - Use the up and down arrow keys to remote control the wave machine! \n#################|\n#I...............|\n#P...............|\n###..............|\n#................|\n_...............O|\n+....###*........|\n_................|\n#################|\n\n\nMessage Level 3 - With good timing, you can push crates while you and it are at a wave's peak or valley.\n#################|\n#I..#..*.P.......|\n#...#.#####......|\n#...#............|\n#................|\n_..####.........O|\n+..####.......###|\n_.............#..|\n#################|\n\n\nMessage Level 4: Cue Roundabout\n#################|\n#I.....#.........|\n#.....P}..O*.....|\n_....####n###u#..|\n#.#n*###..##.....|\n+...###..........|\n#................|\n_................|\n#################|\n\nMessage Level 5: Give Me a Lift\n#################|\n#I...............|\n#..O.............|\n_.........##.#.#.|\n#........*##.#.#.|\n+..P.....###.#.*.|\n#....#######.#.*.|\n_.....*......#.*.|\n#################|\n\nMessage Level 6: Stop Motion\n#################|\n#I...............|\n#................|\n#.O..u.u......*.P|\n_####ü#ü#.#.#####|\n+....*.*#n.n#....|\n_........*.*.....|\n#................|\n#################|\n\nMessage Level 7: Build Bridges, Not Walls\n#################|\n#I...............|\n#................|\n##.......P.u.....|\n_##uu*#####n#.*..|\n+#..}u#....n..**.|\n_mnnnn*.#..*.....|\n#................|\n#################|\n\nMessage Congratulations! You've managed to escape the dungeon!\n\n(\n#################|\n#I...............|\n#................|\n#................|\n#................|\n#................|\n#................|\n#................|\n#################|\n)\n\n\n", ["tick", "tick", "tick", 1, "tick", "tick", 1, "tick", 1, "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", 3, "tick", "tick", 2, "tick", 1, "tick", "tick", 0, "tick", 1, "tick", 1, "tick", "tick", "tick", "tick", "tick"], "background wall:0,background tempbool wall:1,0,background wall wavelimittop:2,amplitudetop background wall wavegenup:3,background wall watertop watertopbg:4,amplitudebottom background tempbool wall water:5,background wall water wavelimitbottom:6,background wall water:7,0,background:8,8,8,8,background watertarget:9,background player watertop watertopbg:10,background water:11,7,\n0,background tempbool:12,8,8,1,8,background watertarget watertop watertopbg:13,11,background tempbool wall water:14,auto background tempbool wall:15,8,8,8,background dirwallup:16,background watertop watertopbg:17,background water watertarget:18,11,7,\n1,12,8,12,background crate watertop watertopbg:19,background wall water watertarget:20,11,background tempbool water:21,14,0,8,12,0,background wall watertarget watertop watertopbg:22,7,11,21,7,\n1,8,8,1,background wall watertarget:23,4,11,11,7,0,1,background dirwallright:24,1,0,13,11,11,7,\n0,8,8,0,8,background tempbool watertarget watertop watertopbg:25,11,11,14,1,8,12,16,8,13,11,11,7,\n0,8,background target:26,0,0,13,21,11,14,0,12,background crate:27,0,1,25,21,11,14,\n0,8,8,0,8,13,21,11,7,0,8,8,background dirwalldown:28,8,25,11,21,7,\n0,8,8,0,8,9,17,21,7,0,8,8,8,8,8,13,21,7,\n0,8,8,8,8,17,18,21,7,background edgev wall:29,29,29,29,29,background edgev wall watertop watertopbg:30,background edgev wall water:31,31,31,\n", 7, "1627779397370.8157"] ], [ `gallery: PrograMaze`, - ["title PrograMaze\nauthor Adam Gashlin\nhomepage gashlin.net\n\nagain_interval 0.25\nkey_repeat_interval 0.25\n\n========\nOBJECTS\n========\n\nZeroEven\nWhite\n.....\n.000.\n.0.0.\n.000.\n.....\n\nZeroOdd\nWhite\n.....\n000..\n0.0..\n000..\n.....\n\nOneEven\nWhite\n.....\n..0..\n..0..\n..0..\n.....\n\nOneOdd\nWhite\n.....\n.0...\n.0...\n.0...\n.....\n\nBackground\nBlack\n\nPlayerDigit\nYellow\n.....\n.....\n.....\n.....\n00000\n\nPlayerGuyRun\nOrange\n\nPlayerGuyRunStart\nOrange\n\nPlayerGuyStep\nOrange\n\nPlayerGuyPause\nOrange\n\nPlayerGuyDisabled\nOrange\n\nPCL\nRed\n00...\n0....\n.....\n0....\n00...\n\nPCR\nRed\n...00\n....0\n.....\n....0\n...00\n\nPCStart\nTransparent\n\nPCStartRow\nTransparent\n\nPCEndRow\nTransparent\n\nShadow\nTransparent\n\nGoal\nBlue\n\nLetterR\nGrey DarkGrey\n11111\n10011\n01111\n01111\n11111\n\nLetterU\nGrey DarkGrey\n11111\n01101\n01101\n00011\n11111\n\nLetterN\nGrey DarkGrey\n11111\n10011\n01101\n01101\n11111\n\nLetterS\nGrey DarkGrey\n10001\n01111\n10011\n11101\n00011\n\nLetterT\nGrey DarkGrey\n10111\n00011\n10111\n10111\n10111\n\nLetterE\nGrey DarkGrey\n10011\n01101\n00011\n01111\n10011\n\nLetterP\nGrey DarkGrey\n00111\n01011\n00111\n01111\n01111\n\nLeftArrow\nGrey DarkGrey\n11111\n11001\n10011\n11001\n11111\n\nRightArrow\nGrey DarkGrey\n11111\n10011\n11001\n10011\n11111\n\nUpArrow\nGrey DarkGrey\n11111\n11011\n10001\n10101\n11111\n\nDownArrow\nGrey DarkGrey\n11111\n10101\n10001\n11011\n11111\n\nEqual\nGrey DarkGrey\n11111\n10001\n11111\n10001\n11111\n\nShowZero\nGrey DarkGrey\n11111\n10001\n10101\n10001\n11111\n\nShowOne\nGrey DarkGrey\n11111\n11011\n11011\n11011\n11111\n\nWall\nDarkGrey\n\n=======\nLEGEND\n=======\n\n_ = Background\n. = ZeroOdd\n, = ZeroEven\nS = ZeroEven and PCStartRow and PCStart\nB = ZeroEven and PCStartRow\nE = ZeroOdd and PCEndRow\nJ = OneEven and PCStartRow\nI = OneOdd\nR = LetterR\nU = LetterU\nN = LetterN\nL = LeftArrow\nT = RightArrow\nP = UpArrow\nD = DownArrow\n0 = ShowZero\n1 = ShowOne\n\nQ = Equal\n\nZero = ZeroOdd or ZeroEven\nOne = OneOdd or OneEven\n\nC = PlayerDigit and Wall\nPlayer = PlayerDigit or PlayerGuyRun or PlayerGuyPause\nRUNLetter = LetterR or LetterU or LetterN\nSTEPLetter = LetterS or LetterT or LetterE or LetterP\nCmdLetter = RUNLetter or STEPLetter\nPlayerGuy = PlayerGuyRun or PlayerGuyStep\nWinnerGuy = PlayerGuy or PlayerGuyPause\n\n@ = PlayerGuyDisabled and ZeroOdd\n* = PlayerGuyDisabled and ZeroEven\nG = Goal and ZeroOdd\nH = Goal and ZeroEven\n\n# = Wall\n2 = LetterS\n3 = LetterT\n4 = LetterE\n5 = LetterP\n\nZ = Wall\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nGoal\nShadow\nRUNLetter, STEPLetter, Wall, PlayerGuyRun, PlayerGuyRunStart, PlayerGuyStep, PlayerGuyPause, PlayerGuyDisabled, UpArrow, DownArrow, LeftArrow, RightArrow, Equal, ShowZero, ShowOne\nZeroOdd, ZeroEven, OneOdd, OneEven\nPlayerDigit\nPCL, PCR\nPCStart\nPCStartRow, PCEndRow\n\n======\nRULES\n======\n\n[ PCL ] [ PlayerGuyRunStart ] -> [ PCL ] [ PlayerGuyRun ]\n[ moving PlayerGuy ] -> [ PlayerGuyStep ]\n[ action PlayerGuyPause ] -> [ PlayerGuyStep ]\n[ moving PlayerGuyPause ] -> [ PlayerGuyPause ]\n\n( 00 = left )\n[ PCL no Wall ] [ PCR no Wall ] [ PlayerGuy ] -> [ PCL ] [ PCR ] [ left PlayerGuy ]\n( 01 = right )\n[ PCL no Wall ] [ PCR Wall ] [ PlayerGuy ] -> [ PCL ] [ PCR Wall ] [ right PlayerGuy ]\n( 10 = up )\n[ PCL Wall ] [ PCR no Wall ] [ PlayerGuy ] -> [ PCL Wall ] [ PCR ] [ up PlayerGuy ]\n( 11 = down )\n[ PCL Wall ] [ PCR Wall ] [ PlayerGuy ] -> [ PCL Wall ] [ PCR Wall ] [ down PlayerGuy ]\n\n[ PlayerGuyRun ] [ PCL ] -> [ PlayerGuyRun ] [ right PCL ]\n[ PlayerGuyStep ] [ PCL ] -> [ PlayerGuyStep ] [ right PCL ]\n\n( advance PC )\nright [ right PCL | PCR | | ] -> [ | | PCL | PCR ] again\n( CRLF PC )\nright [ PCStartRow | | ... | right PCL | PCR PCEndRow ] -> [ PCStartRow down PCL | PCR | ... | | PCEndRow ]\ndown [ PCStartRow down PCL | PCStartRow ] [ PCR | ] -> [ PCStartRow | PCStartRow PCL ] [ | PCR ] again\n[ moving PCL ] -> [ PCL ]\n\n[ Action PlayerDigit OneOdd ] -> [PlayerDigit ZeroOdd ]\n[ Action PlayerDigit OneEven ] -> [ PlayerDigit ZeroEven ]\n[ Action PlayerDigit ZeroOdd ] -> [ PlayerDigit OneOdd ]\n[ Action PlayerDigit ZeroEven ] -> [ PlayerDigit OneEven ]\n\n(turn to stone)\n[ Action PlayerDigit CmdLetter ] [ Zero ] -> [ Action PlayerDigit CmdLetter ] [ ]\n[ Action PlayerDigit CmdLetter ] [ One ] -> [ Action PlayerDigit CmdLetter ] [ Wall ]\n[ Action PlayerDigit CmdLetter ] [ ShowZero ] -> [ Action PlayerDigit CmdLetter ] [ ]\n[ Action PlayerDigit CmdLetter ] [ ShowOne ] -> [ Action PlayerDigit CmdLetter ] [ Wall ]\n\n(run!)\nright [ Action PlayerDigit RUNLetter ] [ PCStart | ] [ PlayerGuyDisabled ] -> [ RUNLetter ] [ PCStart PCL | PCR ] [ PlayerGuyRunStart ] again\nright [ Action PlayerDigit STEPLetter ] [ PCStart | ] [ PlayerGuyDisabled ] -> [ STEPLetter ] [ PCStart PCL | PCR ] [ PlayerGuyPause ] again\n\n( in case the PlayerGuy gets wiped out by a wall )\n[ Action PlayerDigit CmdLetter ] -> [ CmdLetter ]\n\n[ PlayerGuy ] -> [ Shadow PlayerGuy ]\n\nlate [ PlayerGuy Shadow ] -> cancel\nlate [ Shadow ] -> []\nlate [ PlayerGuyStep ] -> [ PlayerGuyPause ]\n\n==============\nWINCONDITIONS\n==============\n\nSome WinnerGuy\nAll WinnerGuy on Goal\n\n=======\nLEVELS\n=======\n\nmessage Get the orange block to the blue goal, by moving the yellow cursor to \"step\" and using Action repeatedly to run the program.\n#############\n####S.,.,.*E#\n####JIH.,.,E#\n00QLB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n####C#2345###\n\nmessage You can edit the bits of the program with the cursor and Action.\n\n#############\n####S.,.,.,E#\n####B.,.,.,E#\n00QLB.*.,.,E#\n01QTB.,.,.HE#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n####C#2345###\n\nmessage \"run\" will run the program automatically.\n\n####C##RUN###\n####S.,.,.*E#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTBG,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n######2345###\n\n####C##RUN###\n####SG,.,.,E#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,@,E#\n######2345###\n\n####C##RUN###\n####S.,@,.,E#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,G,.,E#\n######2345###\n\n####C##RUN###\n####S.,.H.,E#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.*.,E#\n######2345###\n\nmessage Boss puzzle!\n\n####C##RUN###\n####S.,.,.HE#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B@,.,.,E#\n######2345###\n\n\nmessage Final phase!\n\n####C##RUN###\n####S@,.,.HE#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n######2345###\n\nmessage Thanks for playing!\n",[1,1,3,3,2,4,3,4,3,4,2,4,3,4,0,3,3,4,3,0,1,4],"background wall:0,0,0,background:1,1,0,0,0,0,0,0,0,0,\n1,0,1,0,0,0,0,0,0,0,background equal:2,2,2,\n2,0,0,0,0,0,0,background leftarrow:3,background rightarrow:4,background uparrow:5,background downarrow:6,0,0,\n0,0,background pcstart pcstartrow wall:7,background pcl pcstartrow:8,background pcstartrow:9,9,9,9,9,9,0,0,0,\nbackground pcr:10,1,background goal:11,1,1,1,1,0,0,0,0,1,1,\n1,1,1,1,background letters:12,background letterr:13,1,0,1,1,1,1,1,\n1,background lettert:14,background letteru:15,1,1,1,1,1,1,1,1,background lettere:16,background lettern:17,\n0,1,1,1,1,1,1,1,background letterp:18,0,background playerguyrun:19,1,1,\n1,1,1,1,1,0,0,background pcendrow:20,20,20,20,20,20,\n20,20,0,0,0,0,0,0,0,0,0,0,0,\n",5,"1627779463747.9348"] + ["title PrograMaze\nauthor Adam Gashlin\nhomepage gashlin.net\n\nagain_interval 0.25\nkey_repeat_interval 0.25\n\n========\nOBJECTS\n========\n\nZeroEven\nWhite\n.....\n.000.\n.0.0.\n.000.\n.....\n\nZeroOdd\nWhite\n.....\n000..\n0.0..\n000..\n.....\n\nOneEven\nWhite\n.....\n..0..\n..0..\n..0..\n.....\n\nOneOdd\nWhite\n.....\n.0...\n.0...\n.0...\n.....\n\nBackground\nBlack\n\nPlayerDigit\nYellow\n.....\n.....\n.....\n.....\n00000\n\nPlayerGuyRun\nOrange\n\nPlayerGuyRunStart\nOrange\n\nPlayerGuyStep\nOrange\n\nPlayerGuyPause\nOrange\n\nPlayerGuyDisabled\nOrange\n\nPCL\nRed\n00...\n0....\n.....\n0....\n00...\n\nPCR\nRed\n...00\n....0\n.....\n....0\n...00\n\nPCStart\nTransparent\n\nPCStartRow\nTransparent\n\nPCEndRow\nTransparent\n\nShadow\nTransparent\n\nGoal\nBlue\n\nLetterR\nGrey DarkGrey\n11111\n10011\n01111\n01111\n11111\n\nLetterU\nGrey DarkGrey\n11111\n01101\n01101\n00011\n11111\n\nLetterN\nGrey DarkGrey\n11111\n10011\n01101\n01101\n11111\n\nLetterS\nGrey DarkGrey\n10001\n01111\n10011\n11101\n00011\n\nLetterT\nGrey DarkGrey\n10111\n00011\n10111\n10111\n10111\n\nLetterE\nGrey DarkGrey\n10011\n01101\n00011\n01111\n10011\n\nLetterP\nGrey DarkGrey\n00111\n01011\n00111\n01111\n01111\n\nLeftArrow\nGrey DarkGrey\n11111\n11001\n10011\n11001\n11111\n\nRightArrow\nGrey DarkGrey\n11111\n10011\n11001\n10011\n11111\n\nUpArrow\nGrey DarkGrey\n11111\n11011\n10001\n10101\n11111\n\nDownArrow\nGrey DarkGrey\n11111\n10101\n10001\n11011\n11111\n\nEqual\nGrey DarkGrey\n11111\n10001\n11111\n10001\n11111\n\nShowZero\nGrey DarkGrey\n11111\n10001\n10101\n10001\n11111\n\nShowOne\nGrey DarkGrey\n11111\n11011\n11011\n11011\n11111\n\nWall\nDarkGrey\n\n=======\nLEGEND\n=======\n\n_ = Background\n. = ZeroOdd\n, = ZeroEven\nS = ZeroEven and PCStartRow and PCStart\nB = ZeroEven and PCStartRow\nE = ZeroOdd and PCEndRow\nJ = OneEven and PCStartRow\nI = OneOdd\nR = LetterR\nU = LetterU\nN = LetterN\nL = LeftArrow\nT = RightArrow\nP = UpArrow\nD = DownArrow\n0 = ShowZero\n1 = ShowOne\n\nQ = Equal\n\nZero = ZeroOdd or ZeroEven\nOne = OneOdd or OneEven\n\nC = PlayerDigit and Wall\nPlayer = PlayerDigit or PlayerGuyRun or PlayerGuyPause\nRUNLetter = LetterR or LetterU or LetterN\nSTEPLetter = LetterS or LetterT or LetterE or LetterP\nCmdLetter = RUNLetter or STEPLetter\nPlayerGuy = PlayerGuyRun or PlayerGuyStep\nWinnerGuy = PlayerGuy or PlayerGuyPause\n\n@ = PlayerGuyDisabled and ZeroOdd\n* = PlayerGuyDisabled and ZeroEven\nG = Goal and ZeroOdd\nH = Goal and ZeroEven\n\n# = Wall\n2 = LetterS\n3 = LetterT\n4 = LetterE\n5 = LetterP\n\nZ = Wall\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nGoal\nShadow\nRUNLetter, STEPLetter, Wall, PlayerGuyRun, PlayerGuyRunStart, PlayerGuyStep, PlayerGuyPause, PlayerGuyDisabled, UpArrow, DownArrow, LeftArrow, RightArrow, Equal, ShowZero, ShowOne\nZeroOdd, ZeroEven, OneOdd, OneEven\nPlayerDigit\nPCL, PCR\nPCStart\nPCStartRow, PCEndRow\n\n======\nRULES\n======\n\n[ PCL ] [ PlayerGuyRunStart ] -> [ PCL ] [ PlayerGuyRun ]\n[ moving PlayerGuy ] -> [ PlayerGuyStep ]\n[ action PlayerGuyPause ] -> [ PlayerGuyStep ]\n[ moving PlayerGuyPause ] -> [ PlayerGuyPause ]\n\n( 00 = left )\n[ PCL no Wall ] [ PCR no Wall ] [ PlayerGuy ] -> [ PCL ] [ PCR ] [ left PlayerGuy ]\n( 01 = right )\n[ PCL no Wall ] [ PCR Wall ] [ PlayerGuy ] -> [ PCL ] [ PCR Wall ] [ right PlayerGuy ]\n( 10 = up )\n[ PCL Wall ] [ PCR no Wall ] [ PlayerGuy ] -> [ PCL Wall ] [ PCR ] [ up PlayerGuy ]\n( 11 = down )\n[ PCL Wall ] [ PCR Wall ] [ PlayerGuy ] -> [ PCL Wall ] [ PCR Wall ] [ down PlayerGuy ]\n\n[ PlayerGuyRun ] [ PCL ] -> [ PlayerGuyRun ] [ right PCL ]\n[ PlayerGuyStep ] [ PCL ] -> [ PlayerGuyStep ] [ right PCL ]\n\n( advance PC )\nright [ right PCL | PCR | | ] -> [ | | PCL | PCR ] again\n( CRLF PC )\nright [ PCStartRow | | ... | right PCL | PCR PCEndRow ] -> [ PCStartRow down PCL | PCR | ... | | PCEndRow ]\ndown [ PCStartRow down PCL | PCStartRow ] [ PCR | ] -> [ PCStartRow | PCStartRow PCL ] [ | PCR ] again\n[ moving PCL ] -> [ PCL ]\n\n[ Action PlayerDigit OneOdd ] -> [PlayerDigit ZeroOdd ]\n[ Action PlayerDigit OneEven ] -> [ PlayerDigit ZeroEven ]\n[ Action PlayerDigit ZeroOdd ] -> [ PlayerDigit OneOdd ]\n[ Action PlayerDigit ZeroEven ] -> [ PlayerDigit OneEven ]\n\n(turn to stone)\n[ Action PlayerDigit CmdLetter ] [ Zero ] -> [ Action PlayerDigit CmdLetter ] [ ]\n[ Action PlayerDigit CmdLetter ] [ One ] -> [ Action PlayerDigit CmdLetter ] [ Wall ]\n[ Action PlayerDigit CmdLetter ] [ ShowZero ] -> [ Action PlayerDigit CmdLetter ] [ ]\n[ Action PlayerDigit CmdLetter ] [ ShowOne ] -> [ Action PlayerDigit CmdLetter ] [ Wall ]\n\n(run!)\nright [ Action PlayerDigit RUNLetter ] [ PCStart | ] [ PlayerGuyDisabled ] -> [ RUNLetter ] [ PCStart PCL | PCR ] [ PlayerGuyRunStart ] again\nright [ Action PlayerDigit STEPLetter ] [ PCStart | ] [ PlayerGuyDisabled ] -> [ STEPLetter ] [ PCStart PCL | PCR ] [ PlayerGuyPause ] again\n\n( in case the PlayerGuy gets wiped out by a wall )\n[ Action PlayerDigit CmdLetter ] -> [ CmdLetter ]\n\n[ PlayerGuy ] -> [ Shadow PlayerGuy ]\n\nlate [ PlayerGuy Shadow ] -> cancel\nlate [ Shadow ] -> []\nlate [ PlayerGuyStep ] -> [ PlayerGuyPause ]\n\n==============\nWINCONDITIONS\n==============\n\nSome WinnerGuy\nAll WinnerGuy on Goal\n\n=======\nLEVELS\n=======\n\nmessage Get the orange block to the blue goal, by moving the yellow cursor to \"step\" and using Action repeatedly to run the program.\n#############\n####S.,.,.*E#\n####JIH.,.,E#\n00QLB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n####C#2345###\n\nmessage You can edit the bits of the program with the cursor and Action.\n\n#############\n####S.,.,.,E#\n####B.,.,.,E#\n00QLB.*.,.,E#\n01QTB.,.,.HE#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n####C#2345###\n\nmessage \"run\" will run the program automatically.\n\n####C##RUN###\n####S.,.,.*E#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTBG,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n######2345###\n\n####C##RUN###\n####SG,.,.,E#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,@,E#\n######2345###\n\n####C##RUN###\n####S.,@,.,E#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,G,.,E#\n######2345###\n\n####C##RUN###\n####S.,.H.,E#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.*.,E#\n######2345###\n\nmessage Boss puzzle!\n\n####C##RUN###\n####S.,.,.HE#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B@,.,.,E#\n######2345###\n\n\nmessage Final phase!\n\n####C##RUN###\n####S@,.,.HE#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n######2345###\n\nmessage Thanks for playing!\n", [1, 1, 3, 3, 2, 4, 3, 4, 3, 4, 2, 4, 3, 4, 0, 3, 3, 4, 3, 0, 1, 4], "background wall:0,0,0,background:1,1,0,0,0,0,0,0,0,0,\n1,0,1,0,0,0,0,0,0,0,background equal:2,2,2,\n2,0,0,0,0,0,0,background leftarrow:3,background rightarrow:4,background uparrow:5,background downarrow:6,0,0,\n0,0,background pcstart pcstartrow wall:7,background pcl pcstartrow:8,background pcstartrow:9,9,9,9,9,9,0,0,0,\nbackground pcr:10,1,background goal:11,1,1,1,1,0,0,0,0,1,1,\n1,1,1,1,background letters:12,background letterr:13,1,0,1,1,1,1,1,\n1,background lettert:14,background letteru:15,1,1,1,1,1,1,1,1,background lettere:16,background lettern:17,\n0,1,1,1,1,1,1,1,background letterp:18,0,background playerguyrun:19,1,1,\n1,1,1,1,1,0,0,background pcendrow:20,20,20,20,20,20,\n20,20,0,0,0,0,0,0,0,0,0,0,0,\n", 5, "1627779463747.9348"] ], [ `gallery: Symbolism`, - ["title Symbolism\nauthor Richard Locke\nhomepage www.richardlocke.co.uk\nbackground_color #303030\ntext_color #a0a0a0\nagain_interval 0.5\nrealtime_interval 1.0\nkey_repeat_interval 0.2\nnorepeat_action\nrun_rules_on_level_start\n(verbose_logging)\n(debug)\n\n========\nOBJECTS\n========\n(These aren't in a particularly logical order. Oh well.)\n\nvoid\nTransparent\n\nrockInert\n#303040\n\nrockActive\n#303060\n \nboundary\n#808080 #303030\n00000\n00000\n00000\n11111\n11111\n\nbuttonInert\n#808080 #8050f0 #303030\n00000\n11111\n00000\n22222\n22222\n\nbuttonHover\n#808080 #c050f0 #303030\n00000\n11111\n00000\n22222\n22222\n\nbuttonActive\n#808080 #f050f0 #303030\n00000\n11111\n00000\n22222\n22222\n\nplayMode\ntransparent\n\nplayModeOff\ntransparent\n\ntimeRemaining\ntransparent\n\ntoolbox\n#304030\n\nborderTop\n#808080\n.....\n.....\n.....\n.....\n00000\n\nborderLeft\n#808080\n....0\n....0\n....0\n....0\n....0\n\nborderRight\n#808080\n0....\n0....\n0....\n0....\n0....\n\nborderBottom\n#808080\n00000\n.....\n.....\n.....\n.....\n\nborderTopLeft\n#808080\n.....\n.....\n.....\n.....\n....0\n\nborderTopRight\n#808080\n.....\n.....\n.....\n.....\n0....\n\nborderButtonBL\n#808080\n....0\n....0\n....0\n.....\n.....\n\nborderButtonBR\n#808080\n0....\n0....\n0....\n.....\n.....\n\nborderBL\n#808080\n....0\n.....\n.....\n.....\n.....\n\nborderBR\n#808080\n0....\n.....\n.....\n.....\n.....\n\nborderInsideTL\n#808080\n00000\n0....\n0....\n0....\n0....\n\nborderInsideTR\n#808080\n00000\n....0\n....0\n....0\n....0\n\nborderInsideBL\n#808080\n0....\n0....\n0....\n0....\n00000\n\nborderInsideBR\n#808080\n....0\n....0\n....0\n....0\n00000\n\nselect\n#e0e0e0\n00.00\n0...0\n.....\n0...0\n00.00\n\ninvisiplayer\nTransparent\n\nshield\n#505060\n\nshadow\ntransparent\n\nremoveShadow\nTransparent\n\nnoWin\ntransparent\n\nomega\n#ff9070\n...0.\n...0.\n0000.\n.0...\n.0...\n\nomegaShadow\ntransparent\n\nomegaRevert\ntransparent\n\nsquare\n#70d070\n..0..\n.000.\n.0.0.\n.000.\n.....\n\nsquareShadow\ntransparent\n\nsquareRevert\ntransparent\n\nviolet\n#90c0f0\n.000.\n.0.0.\n00.00\n...0.\n...0.\n\nvioletShadow\ntransparent\n\nvioletRevert\ntransparent\n\ndecayedViolet\ntransparent\n\ndecayedVioletShadow\ntransparent\n\ndecayedVioletRevert\ntransparent\n\nchariot\n#d0d080\n....0\n000.0\n0.0.0\n0.000\n0....\n\nchariotShadow\ntransparent\n\nchariotRevert\ntransparent\n\nhorse\n#f05050\n.....\n.0000\n00.0.\n..00.\n.00..\n\nhorseShadow\ntransparent\n\nhorseRevert\ntransparent\n\nslash\n#808080\n.....\n...0.\n..0..\n.0...\n0....\n\ntick\n#80a080\n.....\n.....\n...0.\n0.0..\n.0...\n\ncross\n#b08080\n.....\n.....\n0.0..\n.0...\n0.0..\n\nzero\n#808080\n0000.\n0..0.\n0..0.\n0..0.\n0000.\n\none\n#808080\n000..\n..0..\n..0..\n..0..\n0000.\n\ntwo\n#808080\n0000.\n...0.\n0000.\n0....\n0000.\n\nthree\n#808080\n000..\n...0.\n.00..\n...0.\n000..\n\nfour\n#808080\n0....\n0....\n0.0..\n0000.\n..0..\n\nfive\n#808080\n0000.\n0....\n000..\n...0.\n000..\n\nsix\n#808080\n.000.\n0....\n000..\n0..0.\n.00..\n\nseven\n#808080\n0000.\n...0.\n..0..\n.0...\n0....\n\neight\n#808080\n.00..\n0..0.\n.00..\n0..0.\n.00..\n\nnine\n#808080\n.00..\n0..0.\n.000.\n...0.\n000..\n\noneRevert\ntransparent\n\ntwoRevert\ntransparent\n\nthreeRevert\ntransparent\n\nfourRevert\ntransparent\n\nfiveRevert\ntransparent\n\nsixRevert\ntransparent\n\nsevenRevert\ntransparent\n\neightRevert\ntransparent\n\nnineRevert\ntransparent\n\nnumberCover\n#303030\n\nwall\n#b0b0b0\n00000\n00.00\n.0.0.\n00.00\n00000\n\nplayIcon\n#60c0a9\n.0...\n.00..\n.000.\n.00..\n.0...\n\npauseIcon\n#b08080\n00.00\n00.00\n00.00\n00.00\n00.00\n\nsolved\ntransparent\n\ntime\n#60c0a9\n00000\n.000.\n..0..\n.000.\n00000\n\ntimeShadow\ntransparent\n\ntimeRevert\ntransparent\n\napplyRules\ntransparent\n\nerror\n#603030\n\ninfo1\n#5080e0 #50c0c0\n.....\n..01.\n.00..\n..00.\n.....\n\ninfo2\n#5080e0 #50c0c0\n.....\n..10.\n..00.\n.10..\n.....\n\ninfo3\n#5080e0 #50c0c0\n.....\n.10..\n..01.\n.01..\n.....\n\ninfo4\n#5080e0 #50c0c0\n.....\n.100.\n..1..\n.11..\n.....\n\nplus\n#808080\n.....\n..0..\n.000.\n..0..\n.....\n\ntimebox\ntransparent\n\n=======\nLEGEND\n=======\n\n' = void\n. = rockInert\n$ = shield\n# = boundary and rockInert\nP = select and rockInert\nπ = select and shield\nS = square and void\nW = violet and void\nh = horse and void\n˙ = horse and shield\nO = omega and shield\nC = chariot and shield\nç = chariot and void\n√ = decayedViolet and shield\n/ = slash\n÷ = plus\n0 = zero\n1 = one\n2 = two\n3 = three\n4 = four\n5 = five\n6 = six\n7 = seven\n8 = eight\n9 = nine\n- = borderTop and void\n_ = borderBottom and void\n: = borderLeft and void\n; = borderRight and void\n{ = borderTopLeft and void\n} = borderTopRight and void\n` = borderButtonBL and void\n~ = borderButtonBR and void\nœ = borderInsideTL and void\n∑ = borderInsideTR and void\n´ = borderInsideBL and void\n® = borderInsideBR and void\n† = borderBL and void\n¥ = borderBR and void\nx = buttonInert and rockInert\nq = square and toolbox\nu = square and shield\ni = violet and shield\nm = omega\n§ = zero and numberCover\n! = one and numberCover\n@ = two and numberCover\n£ = three and numberCover\n± = four and numberCover\n% = five and numberCover\n\" = six and numberCover\n& = seven and numberCover\n* = eight and numberCover\n™ = nine and numberCover\n? = wall and shield\nt = time and shield\ne = time\nl = toolbox\n¬ = timebox\n¡ = info1 and shield\n¢ = info2 and shield\n∞ = info3 and shield\n¶ = info4 and shield\n\n\n\nrock = rockInert or rockActive\nbackground = rock or shield or void\nbutton = buttonInert or buttonHover or buttonActive\nborder = boundary or borderLeft or borderRight or borderTop or borderBottom or borderTopLeft or borderTopRight or borderButtonBL or borderButtonBR or borderInsideTL or borderInsideTR or borderInsideBL or borderInsideBR or borderBL or borderBR or button\nrevert = oneRevert or twoRevert or threeRevert or fourRevert or fiveRevert or sixRevert or sevenRevert or eightRevert or nineRevert or omegaRevert or squareRevert or violetRevert or chariotRevert or horseRevert or timeRevert or decayedVioletRevert\nnoop = border or shield or wall\nplayer = select or invisiplayer\nplayArea = rock or shield\n\nnumber = zero or one or two or three or four or five or six or seven or eight or nine\n\n(All symbols need to be added to this list)\nsymbol = omega or square or violet or chariot or horse or time or info1 or info2 or info3 or info4\n\n(Occupied spaces are important for symbol rules)\noccupied = symbol or border or button or wall\n\nicon = tick or cross or playIcon or pauseIcon\n\n=======\nSOUNDS\n=======\n\n(Draw symbol)\nsfx0 94979106\n\n(Erase symbol)\nsfx1 65786906\n\n(Draw fail)\nsfx2 90767506\n\n(Change symbol)\nsfx3 64174703\n\n(Timer tick)\nsfx4 54851300\n\n(Timer tick 2)\nsfx5 44900907\n\n(Empty toolbox)\nsfx6 3749704\n\nsfx7 39598503\n\n(atmosphere)\nsfx8 38051508\nsfx9 81574108\nsfx10 4497708\n\ntitleScreen 38051508\nstartGame 81574108\nundo 74844306\nrestart 4497708\nendGame 96315108\n\n================\nCOLLISIONLAYERS\n================\n\nrock, shield, void, toolbox, timebox\nerror\nborder, symbol, wall\ndecayedViolet\nslash, plus, icon, player\nnumber\nnumberCover\nrevert\nshadow, noWin, applyRules\nsolved\nomegaShadow\nsquareShadow\nvioletShadow\nchariotShadow\nhorseShadow\ntimeShadow\ndecayedVioletShadow\nremoveShadow\nplayMode, playModeOff\ntimeRemaining\n\n\n\n======\nRULES\n======\n\n(Info messages)\n[ > player | info1 ][ nine ] -> [ > player | info1 ][ nine ] message Species' biggest challenge: Data processing\n[ > player | info2 ][ nine ] -> [ > player | info2 ][ nine ] message Species' biggest challenge: War\n[ > player | info3 ][ nine ] -> [ > player | info3 ][ nine ] message Species' biggest challenge: Food/energy production\n[ > player | info4 ][ nine ] -> [ > player | info4 ][ nine ] message Species' biggest challenge: Spacetime manipulation\n\n[ > player | info1 ][ eight ] -> [ > player | info1 ][ eight ] message Purpose: The acquisition of knowledge\n[ > player | info2 ][ eight ] -> [ > player | info2 ][ eight ] message Purpose: The acquisition of resources\n[ > player | info3 ][ eight ] -> [ > player | info3 ][ eight ] message Purpose: The hegemony of your race\n[ > player | info4 ][ eight ] -> [ > player | info4 ][ eight ] message Purpose: The survival of your race\n\n[ > player | info1 ][ seven ] -> [ > player | info1 ][ seven ] message Decision: Sacrifice freedoms and submit to our control\n[ > player | info2 ][ seven ] -> [ > player | info2 ][ seven ] message Decision: Face annihilation\n\n\n(If the level is solved, don't allow normal rules to execute)\n[ action player solved ] -> [ player solved ] win\n[ > player solved ] -> [ player solved ] win\n\n(Stop the player from leaving the level bounds)\n[ > player | void ] -> cancel\n\n(Draw or remove a square when the action key is pressed and there are some in the toolbox. Put a shadow where the last item was in the toolbox so we can refill it in the right order.)\n(Can't draw on noop)\n[ action player noop no button ] -> [ player noop ] sfx2\n\n(Drawing a square)\n[ action player no square no noop ] -> [ player squareShadow ]\ndown [ squareShadow ][ square toolbox ] -> [ square ][ toolbox ] sfx0\n\n(Clean up error flags from last time)\n[ toolbox error ] -> [ toolbox ]\n\n(Nothing in the toolbox if the squareShadow is still present at this point)\n[ squareShadow ][ toolbox no error ] -> [ squareShadow ][ toolbox error ] sfx6\n[ squareShadow ] -> []\n\n(Erasing a square)\ndown [ action player square no noop ][ toolbox no symbol | toolbox symbol ] -> [ action player ][ square toolbox | toolbox symbol ] sfx1\n[ action player square no noop ][ toolbox no symbol ] -> [ action player ][ square toolbox ] sfx1\nright down [ action player ][ square toolbox | toolbox no square ] -> [ action player ][ toolbox no square | square toolbox ] sfx1\n\n\n\n(Play Mode)\n\n(Deactivate play mode when the player moves or presses action again)\n[ > player ][ playMode ] -> [ > player ][ playModeOff no timeRemaining ]\n[ action player ][ playMode ] -> [ player ][ playModeOff no timeRemaining ] (consume action)\n\n(When deactivating play mode, revert to the initial state)\n[ playModeOff ][ symbol decayedVioletRevert ] -> [ playModeOff ][ decayedVioletRevert ]\n[ playModeOff ][ decayedViolet no decayedVioletRevert ] -> [ playModeOff ][]\n[ playModeOff ][ symbol no revert ] -> [ playModeOff ][ ]\n[ playModeOff ][ nineRevert ] -> [ playModeOff ][ nine ]\n[ playModeOff ][ eightRevert ] -> [ playModeOff ][ eight ]\n[ playModeOff ][ sevenRevert ] -> [ playModeOff ][ seven ]\n[ playModeOff ][ sixRevert ] -> [ playModeOff ][ six ]\n[ playModeOff ][ fiveRevert ] -> [ playModeOff ][ five ]\n[ playModeOff ][ fourRevert ] -> [ playModeOff ][ four ]\n[ playModeOff ][ threeRevert ] -> [ playModeOff ][ three ]\n[ playModeOff ][ twoRevert ] -> [ playModeOff ][ two ]\n[ playModeOff ][ oneRevert ] -> [ playModeOff ][ one ]\n[ playModeOff ][ omegaRevert ] -> [ playModeOff ][ omega ]\n[ playModeOff ][ squareRevert ] -> [ playModeOff ][ square ]\n[ playModeOff ][ violetRevert ] -> [ playModeOff ][ violet ]\n[ playModeOff ][ chariotRevert ] -> [ playModeOff ][ chariot ]\n[ playModeOff ][ horseRevert ] -> [ playModeOff ][ horse ]\n[ playModeOff ][ timeRevert ] -> [ playModeOff ][ time ]\n[ playModeOff ][ decayedVioletRevert ] -> [ playModeOff ][ decayedViolet ]\n[ playModeOff ][ plus ] -> [ playModeOff ][ void ]\n\n(Remove the play or pause icon)\n[ playModeOff ][ | | number | time ] -> [ playModeOff ][ no icon | | number | time ]\n\n(Take the button out of active mode)\n[ playModeOff ][ player button ][ button ] -> [ playModeOff ][ player buttonHover ][ buttonHover ]\n[ playModeOff ][ player no button ][ button ] -> [ playModeOff ][ player ][ buttonInert ]\n\n(Reset the play area's appearance)\n[ playModeOff ][ rockActive ] -> [ playModeOff ][ rockInert ]\n\n[ playModeOff ] -> []\n\n(Activate play mode when the action key is pressed on the play button)\n(If the action is omitted from the RHS, it is consumed)\n[ action player button ][ button ][ | | number | time ] -> [ action player buttonActive playMode timeRemaining ][ buttonActive ][ playIcon | | number | time ]\n\n(Change the play area's appearance)\n[ action player button ][ rockInert ] -> [ action player button ][ rockActive ]\n\n(Save the state before play mode begins so we can revert to it afterwards)\n[ action player button ][ nine | time ] -> [ action player button ][ nine nineRevert | time ]\n[ action player button ][ eight | time ] -> [ action player button ][ eight eightRevert | time ]\n[ action player button ][ seven | time ] -> [ action player button ][ seven sevenRevert | time ]\n[ action player button ][ six | time ] -> [ action player button ][ six sixRevert | time ]\n[ action player button ][ five | time ] -> [ action player button ][ five fiveRevert | time ]\n[ action player button ][ four | time ] -> [ action player button ][ four fourRevert | time ]\n[ action player button ][ three | time ] -> [ action player button ][ three threeRevert | time ]\n[ action player button ][ two | time ] -> [ action player button ][ two twoRevert | time ]\n[ action player button ][ one | time ] -> [ action player button ][ one oneRevert | time ]\n[ action player button ][ omega ] -> [ action player button ][ omega omegaRevert ]\n[ action player button ][ square ] -> [ action player button ][ square squareRevert ]\n[ action player button ][ violet ] -> [ action player button ][ violet violetRevert ]\n[ action player button ][ chariot ] -> [ action player button ][ chariot chariotRevert ]\n[ action player button ][ horse ] -> [ action player button ][ horse horseRevert ]\n[ action player button ][ time ] -> [ action player button ][ time timeRevert ]\n[ action player button ][ decayedViolet ] -> [ action player button ][ decayedViolet decayedVioletRevert ]\n\n(Don't allow symbol interations once time gets to zero)\n[ timeRemaining ][ zero | time ] -> [][ zero | time ]\n\n(If there are hourglasses, however, we still have time remaining)\n[ playMode no timeRemaining ][ time playArea ] -> [ playMode timeRemaining ][ time playArea ]\n[ playMode no timeRemaining ][ time timebox ] -> [ playMode timeRemaining ][ time timebox ]\n\n\n(Change the button appearance when the player's on it)\n[ > player | button ][ buttonInert ] -> [ > invisiplayer | buttonHover ][ buttonHover ]\n[ no button | < player button ][ buttonHover ] -> [ | < select buttonInert ][ buttonInert ]\n\n\n(SYMBOL RULES)\n(These all apply to real-time moves only, and only when in play mode)\n(Set a marker to say we're okay to apply the symbol rules)\n[ stationary player ][ timeRemaining no solved ] -> [ stationary player ][ timeRemaining applyRules ]\n\n(Omega next to a square: remove square, replace omega with violet)\n[ applyRules ][ omega playArea | square playArea ] -> [ applyRules ][ omega violetShadow playArea | square removeShadow playArea ]\n\n(Chariot next to square: remove chariot, replace square with Omega)\n[ applyRules ][ chariot playArea | square playArea ] -> [ applyRules ][ chariot removeShadow playArea | square omegaShadow playArea ]\n\n(Three squares in a row produce a horse)\n[ applyRules ][ square playArea | square playArea | square playArea ] -> [ applyRules ][ square removeShadow playArea | square removeShadow horseShadow playArea | square removeShadow playArea ]\n\n(A square next to a horse will walk in the direction of the square)\n[ applyRules ][ square playArea | horse playArea | no occupied ] -> [ applyRules ][ square removeShadow playArea | horse removeShadow squareShadow playArea | horseShadow ]\n\n(A chariot next to a horse does the same thing)\n[ applyRules ][ chariot playArea | horse playArea | no occupied ] -> [ applyRules ][ chariot removeShadow playArea | horse removeShadow chariotShadow playArea | horseShadow ]\n\n(Two or more horses next to a violet become hourglasses)\n[ applyRules ] -> [ applyRules zero ]\n+ [ applyRules zero ][ violet playArea no zero no shadow ] -> [ applyRules ][ violet playArea zero ]\n+ [ applyRules ][ horse no shadow | violet zero no shadow ] -> [ applyRules ][ horse shadow | violet zero shadow ]\n+ [ applyRules ][ horse no shadow | violet zero shadow ] -> [ applyRules ][ horse timeShadow | violet zero shadow decayedVioletShadow ]\n+ [ applyRules ][ horse shadow | violet decayedVioletShadow ] -> [ applyRules ][ horse timeShadow no shadow | violet decayedVioletShadow ]\n+ [ applyRules ][ violet zero ] -> [ applyRules ][ violet shadow no zero ]\n+ [ applyRules ][ horse shadow ] -> [ applyRules ][ horse no shadow ]\n(Clean up - not part of rule group)\n[ applyRules ][ symbol shadow ] -> [ applyRules ][ symbol ]\n[ applyRules ][ violet zero ] -> [ applyRules ][ violet ]\n[ applyRules zero ] -> [ applyRules ]\n[ applyRules ][ violet decayedVioletShadow ] -> [ applyRules ][ decayedVioletShadow ]\n\n(An hourglass decays into a chariot, providing an extra second)\n(First, the indication that time needs to tick down)\n[ stationary player ][ playMode ] -> [ player ][ down playMode ]\n(Each separate group of hourglasses can tick independently. For each, the order is clockwise from 3 o' clock)\nleft [ applyRules ][ time playArea | decayedViolet no shadow ] -> [ applyRules ][ time chariotShadow playArea | decayedViolet shadow ] sfx4\nup [ applyRules ][ time playArea | decayedViolet no shadow ] -> [ applyRules ][ time chariotShadow playArea | decayedViolet shadow ] sfx4\nright [ applyRules ][ time playArea | decayedViolet no shadow ] -> [ applyRules ][ time chariotShadow playArea | decayedViolet shadow ] sfx4\ndown [ applyRules ][ time playArea | decayedViolet no shadow ] -> [ applyRules ][ time chariotShadow playArea | decayedViolet shadow ] sfx4\n(Put hourglasses in the timebox. Need a few rules to make sure they go in in the right order)\nright [ decayedViolet shadow ][ timebox time | timebox no time ] -> [ decayedViolet ][ timebox time | timebox time ]\ndown [ decayedViolet shadow ][ no timebox | timebox no time ] -> [ decayedViolet ][ no timebox | timebox time ]\ndown [ decayedViolet shadow ][ timebox time | timebox no time ] -> [ decayedViolet ][ timebox time | timebox time ]\nright [ decayedViolet shadow ][ timebox no time ] -> [ decayedViolet ][ timebox time]\n[ decayedViolet shadow ] -> [ decayedViolet ]\n\n(A decayed violet with no hourglasses next to it disappears)\nright [ applyRules ][ no time | decayedViolet | no time ] -> [ applyRules ][ no time | decayedViolet shadow | no time ]\ndown [ applyRules ][ no time | decayedViolet shadow | no time ] -> [ applyRules ][ no time | no decayedViolet | no time ]\n[ decayedViolet shadow ] -> [ decayedViolet no shadow]\n\n(Remove applyRules)\n[ applyRules ] -> [ no applyRules ]\n\n\n\n(Remove an hourglass from the timebox if there is one, then shuffle them to the top-left)\nright [ down playMode ][ plus | timebox time | timebox no time ] -> [ stationary playMode ][ void | timebox | timebox ] sfx4\n[ down playMode ][ timebox time ] -> [ stationary playMode ][ timebox ] sfx4\nup [ timebox time | timebox no time ] -> [ timebox | timebox time ]\nleft [ timebox time | timebox no time ] -> [ timebox | timebox time ]\nright [ void | timebox time ] -> [ plus | timebox time ]\n\n(Count the timer down)\nright [ down playMode ][ one | time ] -> [ playMode ][ zero | time] sfx4\nright [ down playMode ][ two | time ] -> [ playMode ][ one | time] sfx4\nright [ down playMode ][ three | time ] -> [ playMode ][ two | time] sfx4\nright [ down playMode ][ four | time ] -> [ playMode ][ three | time] sfx4\nright [ down playMode ][ five | time ] -> [ playMode ][ four | time] sfx4\nright [ down playMode ][ six | time ] -> [ playMode ][ five | time] sfx4\nright [ down playMode ][ seven | time ] -> [ playMode ][ six | time] sfx4\nright [ down playMode ][ eight | time ] -> [ playMode ][ seven | time] sfx4\nright [ down playMode ][ nine | time ] -> [ playMode ][ eight | time] sfx4\n\n[ down playMode ] -> [ playMode ]\n\n(Switch to a pause icon after the timer reaches zero)\nright [ playMode no timeRemaining][ playIcon | | zero ] -> [ playMode ][ pauseIcon | | zero ]\n\n\n(POST-SYMBOL RULES)\n(Remove any RemoveShadows and the symbol in that space)\n[ removeShadow symbol ] -> []\n\n(Replace symbol shadows with their real symbols)\n[ violetShadow ] -> [ violet ]\n[ omegaShadow ] -> [ omega ]\n[ squareShadow ] -> [ square ]\n[ chariotShadow ] -> [ chariot ]\n[ horseShadow ] -> [ horse ]\n[ timeShadow ] -> [ time ]\n[ decayedVioletShadow ] -> [ decayedViolet ]\n\n\n\n(Count up the number of target symbols by putting shadows on them then counting up as we remove them by shifting a shadow along the number line. Don't forget to set the count to zero first.)\n\n(violets)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | violet ][ violet No void ] -> [ number | violet ][ violet shadow ]\nright [ violet shadow ][ number shadow | number ] -> [ violet ][ number | number shadow ]\nright [ number shadow ][ | slash | | violet ] -> [ number ][ number | slash | | violet ]\n\n(omegas)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | omega ][ omega no void ] -> [ number | omega ][ omega shadow ]\nright [ omega shadow ][ number shadow | number ] -> [ omega ][ number | number shadow ]\nright [ number shadow ][ | slash | | omega ] -> [ number ][ number | slash | | omega ]\n\n(horses)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | horse ][ horse no void ] -> [ number | horse ][ horse shadow ]\nright [ horse shadow ][ number shadow | number ] -> [ horse ][ number | number shadow ]\nright [ number shadow ][ | slash | | horse ] -> [ number ][ number | slash | | horse ]\n\n(squares)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | square ][ square no void no toolbox ] -> [ number | square ][ square shadow ]\nright [ square shadow ][ number shadow | number ] -> [ square ][ number | number shadow ]\nright [ number shadow ][ | slash | | square ] -> [ number ][ number | slash | | square ]\n\n(chariots)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | chariot ][ chariot no void ] -> [ number | chariot ][ chariot shadow ]\nright [ chariot shadow ][ number shadow | number ] -> [ chariot ][ number | number shadow ]\nright [ number shadow ][ | slash | | chariot ] -> [ number ][ number | slash | | chariot ]\n\n(Clean up e.g. where there are more than 9 of a given symbol)\n[ symbol shadow ] -> [ symbol ]\n\n\n(Work out if the level is solved)\n(First, put crosses by all the counters)\nright [ | number | slash ] -> [ cross no tick | number | slash ]\n(Next, replace crosses with ticks where the targets are met)\nright [ cross | zero | slash | zero ] -> [ tick | zero | slash | zero ]\nright [ cross | one | slash | one ] -> [ tick | one | slash | one ]\nright [ cross | two | slash | two ] -> [ tick | two | slash | two ]\nright [ cross | three | slash | three ] -> [ tick | three | slash | three ]\nright [ cross | four | slash | four ] -> [ tick | four | slash | four ]\nright [ cross | five | slash | five ] -> [ tick | five | slash | five ]\nright [ cross | six | slash | six ] -> [ tick | six | slash | six ]\nright [ cross | seven | slash | seven ] -> [ tick | seven | slash | seven ]\nright [ cross | eight | slash | eight ] -> [ tick | eight | slash | eight ]\nright [ cross | nine | slash | nine ] -> [ tick | nine | slash | nine ]\n(Next, put a noWin on the player for any cross we find)\n[ cross ][ player ] -> [ cross ][ player noWin ]\n(If there's not a noWin on the player, the level is solved!)\n[ player no noWin no solved ] -> [ player solved no playMode ] sfx7\ndown [ solved ][ button | ] -> [ solved ][ button | tick ]\n[ playIcon ][ solved ] -> [ tick ][ solved ]\n[ pauseIcon ][ solved ] -> [ tick ][ solved ]\n[ player noWin ] -> [ player ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\n(There are a few features each level must have in order to work correctly:)\n(1. A row of hidden numbers 0-9 as this is used for counting)\n(2. At least one target symbol counter in the form 0/yZ where y is the required number and Z is the target symbol)\n(3. There must be a column to the left of the target counter so that ticks and crosses can be placed there by the rules)\n(4. An optional time limit in the form xe where x is the number of seconds allowed, up to a maximum of 9)\n(5. If a time limit is in place, it must have two columns to the left of it to allow the play and pause icons to be placed there by the rules)\n(6. At least one button sprite, x. By convention, these are put at the bottom of the play area.)\n(7. Levels with hourglasses need at least one timebox space)\n(7. Hourglasses tick down in groups around the violet they were produced by. If more than one of these groups may exist in the level, you'll need one timebox space per violet group to hold extra hourglasses)\n\nmessage Let it be known that proceeding may lead to the annihilation of your species.\nmessage X = draw/erase symbol, activate button\n\n§!@£±%\"&*™\n'''''{-}''\n'''4e:P;q'\n''''':O;''\n'0/1w:.;''\n'''''`x~''\n''''''''''\n\nmessage Acceptance confirmed. Analysis of species MW3022 commencing. Recognition of 'Hindu-Arabic' numerals likely.\n\n§!@£±%\"&*™'\n'''''{---}'\n'''4e:P.o;q\n''''':...;'\n'0/1w:o..;'\n'''''`xxx~'\n'''''''''''\n\nmessage Normalised threat rating: **\n\n§!@£±%\"&*™''''\n'''''{------}'\n'''4e:P.O$..;q\n''''':.$.$$O;q\n'0/4w:$O..$$;q\n''''':.$$..O;q\n'''''`xxxxxx~'\n''''''''''''''\n\nmessage Chance of accidental completion rated at 0.16% based on factorial analysis. Subject's comprehension is considered highly probable.\n\n§!@£±%\"&*™''''''\n'''''{-------}''\n'''4e:p.o$..$;lq\n''''':..$.o..;qq\n''''':$o..o$.;qq\n'0/4w:.o.$..$;qq\n''''':.$$..o$;qq\n'0/9s:o..$$..;qq\n''''':..o..$.;qq\n'''''`xxxxxxx~''\n''''''''''''''''\n\nmessage Normalised threat rating: ****\n\n§!@£±%\"&*™''''''\n'''''{--------}'\n'''4e:p.o$..o.;q\n''''':o..$.o.o;q\n'0/7w:.$..$..$;q\n''''':..o.o.o$;'\n''''':o..$.$..;'\n''''':.$o..$.o;'\n'''''`xxxxxxxx~'\n''''''''''''''''\n\nmessage Normalised threat rating: *****\n\n§!@£±%\"&*™'''\n'''''{-----}'\n'''4e:P.$.O;q\n''''':$.$$.;q\n'0/4w:.$C..;q\n''''':$..$$;q\n''''':.C$..;q\n''''':.$.O$;q\n'''''`xxxxx~'\n'''''''''''''\n\nmessage Normalised threat rating: *******\n\n§!@£±%\"&*™'''''\n'''''{-----}'''\n'''4e:P$..$;lqq\n''''':$..C.;lqq\n'0/8w:..$..;lqq\n''''':.C..$;qqq\n''''':$..$.;qqq\n'''''`xxxxx~'''\n'''''''''''''''\n\nmessage Normalised threat rating: *********\n\n§!@£±%\"&*™''''''''\n'''''{---------}''\n'''4e:p.c.o$..c;lq\n''''':$o$..$.$.;lq\n'0/7w:$..o$c$.o;lq\n''''':.o$.$..c.;lq\n'0/3m:c.c.o.o$$;qq\n'''''`xxxxxxxxx~''\n''''''''''''''''''\n\nmessage Normalised threat rating: ************\n\n§!''''{-}''\n'''4e{®p´}q\n''''':...;q\n'0/1h†∑.œ¥q\n''''''`x~''\n\nmessage Normalised threat rating: **************\n\n§!@£±%\"&*™'''''''''\n'''''{---------}'''\n'''4e:p$...$$$o;qqq\n''''':$$.$.o...;qqq\n'0/4h:$.o.$.$o$;qqq\n''''':o.$$.$.$.;qqq\n'0/6w:$.o..$$..;qqq\n''''':.$..$...$;'''\n'''''`xxxxxxxxx~'''\n'''''''''''''''''''\n\nmessage What is your species' biggest challenge? 1) Data processing, 2) War, 3) Food/energy production, 4) Spacetime manipulation\n\n§!''™{--}'\n'0/1s:¡p;q\n''''':¢.;'\n''''':∞.;'\n''''':¶.;'\n'''''†__¥'\n\nmessage Your response will be taken into consideration.\n\n§!@£±%\"&*™'{----}'\n'''9e'''''':$$$$;q\n''''''''''':$o$$;q\n''''''''''':$$$$;q\n''''''''''':$$$$;q\n'''''{-----®.$$.;q\n'0/2h:π$$...$$.$;q\n''''':$$$$...$$.;q\n'0/2w:$o$$.$$...;q\n''''':$$$$$.$..$;q\n'''''`xxxxxxxxxx~'\n''''''''''''''''''\n\nmessage Normalised threat rating: ****************\n\n§!@£±%\"&*™'''''''''\n'''''{----------}''\n'''9e:π...$..$..;''\n''''':$$..$$?.$.;lq\n'0/1w:$?$.$$...$;lq\n'''''†___∑.$$$$?;lq\n'''''{--}†∑?$o$.;lq\n''''':..´-®$$$$.;qq\n''''':...$$$$?$.;qq\n''''':?.$$$$.$.$;''\n'''''`xxxxxxxxxx~''\n'''''''''''''''''''\n\nmessage Normalised threat rating: *********************\n\n§!@£±%\"&*™'''''''''\n'''''{---------}'''\n'''4e:p.$..$..$;qqq\n''''':$$$.$.$..;qqq\n'0/9h:$..$...$.;qqq\n''''':...$...$.;qqq\n''''':...$$$$..;qqq\n''''':$$$...$..;'''\n''''':....$..$.;'''\n''''':..$...$$$;'''\n''''':.$..$$...;'''\n''''':$.$$.$...;'''\n''''':.$...$$..;'''\n'''''`xxxxxxxxx~'''\n'''''''''''''''''''\n\nmessage Normalised threat rating: ************************\n\n§!@£±%\"&*™'''''''\n'''''{---}'''''''\n'''1e:p..´}'''qqq\n''''':.$t$´}''qqq\n'¬¬¬¬:$t√.$´}'qqq\n'¬¬¬¬:..t...´}'''\n''''':$..$$..;'''\n''''':.t$.t√t;'''\n''''':t√t..tœ¥'''\n'0/9m:$..$.œ¥''''\n'''''`xxxxx~'''''\n'''''''''''''''''\n\nmessage Normalised threat rating: ***************************\n\n§!@£±%\"&*™'''''''''\n'''''{----}''''''''\n'''9e:p..$;'qqqqq''\n''''':$...;'qqqqq''\n'0/8m:....;{-----}'\n'''{-®$$$$;:o....;'\n'¬¬:o.t$$?´®.....;'\n''':$t√t$$$$$$$$$;'\n''':o.t$?...œ____¥'\n'''`xxxxxxxx~''''''\n'''''''''''''''''''\n\nmessage Normalised threat rating: ******************************\n\n§!@£±%\"&*™''''''\n'''''{----}'''''\n'''9e:p...;'''''\n''''':....;'''''\n'''¬¬:....;'qqq'\n'''¬¬:....;'qqq'\n'0/2m:$$$.;'qqq'\n{---}:.$$$;'''''\n:t√$´®$$$$´----}\n:$t$$$$$$$$$$$$;\n:$$$$$$$$$$$$t√;\n†____∑$$$$œ∑$$t;\n''{--®$...;†___¥\n'':$......´--}''\n'':$.......$$;''\n'':.$.......$;''\n''`xxxxxxxxxx~''\n''''''''''''''''\n\nmessage What is your purpose? 1) The acquisition of knowledge, 2) The acquisition of resources, 3) The hegemony of your race, 4) The survival of your race\n\n§!''*{--}'\n'0/1s:¡p;q\n''''':¢.;'\n''''':∞.;'\n''''':¶.;'\n'''''†__¥'\n\nmessage Your response will be taken into consideration.\n\n§!@£±%\"&*™'''\n'''''{---}'''\n'''2e:p..;lqq\n'¬¬¬¬:.i.;qqq\n'0/2ç:...;qqq\n'''''`xxx~'''\n'''''''''''''\n\nmessage Normalised threat rating: *************************************\n\n§!@£±%\"&*™''''''''\n'''''''{------}'''\n'''9e'':$$$$$c;lqq\n'''''''†∑uœ∑$œ¥qqq\n'¬¬¬¬'''†_¥:$;'qqq\n'''''{-----®$´}qqq\n''''':p......$;'''\n''''':.i......;'''\n'1/0s:........;'''\n'''''`xxxxxxxx~'''\n''''''''''''''''''\n\nmessage Normalised threat rating: *********************************************************\n\n§!@£±%\"&*™''''''''''''\n'''''{-----}{-----}'''\n'''2e:p...$;:.$...;qqq\n''''':$i...´®..$i.;qqq\n'''¬¬:$.$$.$$.$.$.;qqq\n'''¬¬:....$..i.$$$;qqq\n'''¬¬:...i.$....i.;qqq\n'''¬¬:$.$$$$.$.$..;qqq\n''''':$$...$$$$...;qqq\n''''':$....$$$$$i$;qqq\n'0/4m:.....$$$$$$$;'''\n'''''`xxxxxxxxxxxx~'''\n''''''''''''''''''''''\n\nmessage We come now to the final test. Consider your actions carefully, sapient one.\n\n'''''''''''''''''''''''{--}''''\n''''''''''''''''''''''':u$;''''\n'§!@£±%\"&*™'''''''''''':$$;qqq'\n'''''{------------}'''':$o;qqq'\n'''9e:p.....√.....´}''':u$;qqq'\n''''':˙.˙.˙.t.˙.˙.˙´--}:$$;qqq'\n'¬¬¬¬:.˙.˙.˙.˙.˙.˙....´®$o;qqq'\n'¬¬¬¬†__________∑........œ¥qqq'\n'¬¬¬¬{----------®........´}qqq'\n'¬¬¬¬:...˙...˙...˙....œ∑$o;qqq'\n''''':˙.˙.˙.t.˙.˙.˙œ__¥:$$;qqq'\n'4/0m:.˙...˙√..˙..œ¥''':u$;qqq'\n'''''`xxxxxxxxxxxx~'''':$o;qqq'\n''''''''''''''''''''''':$$;''''\n'''''''''''''''''''''''`xx~''''\n\nmessage Testing is now complete. Your risk rating has been calculated as...\nmessage CRITICAL\nmessage Dangerously intelligent life cannot be permitted to propagate unchecked within the galaxy. You must now decide on behalf of your civilisation whether to 1) Sacrifice your freedoms and submit to our direct control, or 2) Face annihilation.\n\n§!''&{--}'\n'0/1s:¡p;q\n''''':¢.;'\n'''''†__¥'\n\nmessage ERROR: Species designated 'homo sapiens' came under supervision 2500 years ago. Access to this system should not have been allowed. Our physical agents in the region may have been compromised.\nmessage Dispatching scout party to Orion Spur, Sol system.\nmessage ETA: 5 years\nmessage Shutting down...\n\n",["tick",3,3,4,2,2,"tick",4,3,3,4,3,"tick",0,4,3,4,2,4,"tick",1,0,4,0,4,1,4,"tick",2,4,1,4,0,4,1,"tick",1,4,1,2,2,2,1,"tick",2,3,2,4,"tick","tick","tick","tick","tick"],"numbercover shadow void zero:0,void:1,1,1,cross void:2,1,2,1,1,numbercover one void:3,1,pauseicon void:4,1,three void:5,1,six void:6,1,1,\nnumbercover two void:7,1,1,1,slash void:8,1,8,1,1,numbercover three void:9,1,fourrevert void zero:10,1,seven void:11,1,5,1,1,\nfour numbercover void:12,1,time timerevert void:13,1,violet violetrevert void:14,1,omega omegarevert void:15,1,1,five numbercover void:16,bordertopleft void:17,borderleft void:18,18,18,18,18,borderbuttonbl void:19,1,\nnumbercover six void:20,bordertop void:21,rockactive:22,shield:23,23,22,chariot chariotrevert shield:24,buttonactive rockactive:25,1,numbercover seven void:26,21,omega rockactive squarerevert:27,omegarevert shield violet:28,22,omega omegarevert shield:29,22,buttonactive invisiplayer playmode rockactive:30,1,\neight numbercover void:31,21,chariotrevert shield:32,23,rockactive squarerevert:33,23,24,25,1,nine numbercover void:34,21,27,33,28,22,22,25,1,\n1,21,28,33,23,23,29,25,1,1,21,23,23,24,22,22,25,1,\n1,21,22,rockactive square squarerevert:35,23,22,29,25,1,1,21,22,23,22,24,23,25,1,\n1,21,24,22,29,22,23,25,1,1,bordertopright void:36,borderright void:37,37,37,37,37,borderbuttonbr void:38,1,\n1,1,toolbox:39,39,39,39,39,1,1,1,1,39,39,39,39,39,1,1,\n",16,"1627779484111.158"] + ["title Symbolism\nauthor Richard Locke\nhomepage www.richardlocke.co.uk\nbackground_color #303030\ntext_color #a0a0a0\nagain_interval 0.5\nrealtime_interval 1.0\nkey_repeat_interval 0.2\nnorepeat_action\nrun_rules_on_level_start\n(verbose_logging)\n(debug)\n\n========\nOBJECTS\n========\n(These aren't in a particularly logical order. Oh well.)\n\nvoid\nTransparent\n\nrockInert\n#303040\n\nrockActive\n#303060\n \nboundary\n#808080 #303030\n00000\n00000\n00000\n11111\n11111\n\nbuttonInert\n#808080 #8050f0 #303030\n00000\n11111\n00000\n22222\n22222\n\nbuttonHover\n#808080 #c050f0 #303030\n00000\n11111\n00000\n22222\n22222\n\nbuttonActive\n#808080 #f050f0 #303030\n00000\n11111\n00000\n22222\n22222\n\nplayMode\ntransparent\n\nplayModeOff\ntransparent\n\ntimeRemaining\ntransparent\n\ntoolbox\n#304030\n\nborderTop\n#808080\n.....\n.....\n.....\n.....\n00000\n\nborderLeft\n#808080\n....0\n....0\n....0\n....0\n....0\n\nborderRight\n#808080\n0....\n0....\n0....\n0....\n0....\n\nborderBottom\n#808080\n00000\n.....\n.....\n.....\n.....\n\nborderTopLeft\n#808080\n.....\n.....\n.....\n.....\n....0\n\nborderTopRight\n#808080\n.....\n.....\n.....\n.....\n0....\n\nborderButtonBL\n#808080\n....0\n....0\n....0\n.....\n.....\n\nborderButtonBR\n#808080\n0....\n0....\n0....\n.....\n.....\n\nborderBL\n#808080\n....0\n.....\n.....\n.....\n.....\n\nborderBR\n#808080\n0....\n.....\n.....\n.....\n.....\n\nborderInsideTL\n#808080\n00000\n0....\n0....\n0....\n0....\n\nborderInsideTR\n#808080\n00000\n....0\n....0\n....0\n....0\n\nborderInsideBL\n#808080\n0....\n0....\n0....\n0....\n00000\n\nborderInsideBR\n#808080\n....0\n....0\n....0\n....0\n00000\n\nselect\n#e0e0e0\n00.00\n0...0\n.....\n0...0\n00.00\n\ninvisiplayer\nTransparent\n\nshield\n#505060\n\nshadow\ntransparent\n\nremoveShadow\nTransparent\n\nnoWin\ntransparent\n\nomega\n#ff9070\n...0.\n...0.\n0000.\n.0...\n.0...\n\nomegaShadow\ntransparent\n\nomegaRevert\ntransparent\n\nsquare\n#70d070\n..0..\n.000.\n.0.0.\n.000.\n.....\n\nsquareShadow\ntransparent\n\nsquareRevert\ntransparent\n\nviolet\n#90c0f0\n.000.\n.0.0.\n00.00\n...0.\n...0.\n\nvioletShadow\ntransparent\n\nvioletRevert\ntransparent\n\ndecayedViolet\ntransparent\n\ndecayedVioletShadow\ntransparent\n\ndecayedVioletRevert\ntransparent\n\nchariot\n#d0d080\n....0\n000.0\n0.0.0\n0.000\n0....\n\nchariotShadow\ntransparent\n\nchariotRevert\ntransparent\n\nhorse\n#f05050\n.....\n.0000\n00.0.\n..00.\n.00..\n\nhorseShadow\ntransparent\n\nhorseRevert\ntransparent\n\nslash\n#808080\n.....\n...0.\n..0..\n.0...\n0....\n\ntick\n#80a080\n.....\n.....\n...0.\n0.0..\n.0...\n\ncross\n#b08080\n.....\n.....\n0.0..\n.0...\n0.0..\n\nzero\n#808080\n0000.\n0..0.\n0..0.\n0..0.\n0000.\n\none\n#808080\n000..\n..0..\n..0..\n..0..\n0000.\n\ntwo\n#808080\n0000.\n...0.\n0000.\n0....\n0000.\n\nthree\n#808080\n000..\n...0.\n.00..\n...0.\n000..\n\nfour\n#808080\n0....\n0....\n0.0..\n0000.\n..0..\n\nfive\n#808080\n0000.\n0....\n000..\n...0.\n000..\n\nsix\n#808080\n.000.\n0....\n000..\n0..0.\n.00..\n\nseven\n#808080\n0000.\n...0.\n..0..\n.0...\n0....\n\neight\n#808080\n.00..\n0..0.\n.00..\n0..0.\n.00..\n\nnine\n#808080\n.00..\n0..0.\n.000.\n...0.\n000..\n\noneRevert\ntransparent\n\ntwoRevert\ntransparent\n\nthreeRevert\ntransparent\n\nfourRevert\ntransparent\n\nfiveRevert\ntransparent\n\nsixRevert\ntransparent\n\nsevenRevert\ntransparent\n\neightRevert\ntransparent\n\nnineRevert\ntransparent\n\nnumberCover\n#303030\n\nwall\n#b0b0b0\n00000\n00.00\n.0.0.\n00.00\n00000\n\nplayIcon\n#60c0a9\n.0...\n.00..\n.000.\n.00..\n.0...\n\npauseIcon\n#b08080\n00.00\n00.00\n00.00\n00.00\n00.00\n\nsolved\ntransparent\n\ntime\n#60c0a9\n00000\n.000.\n..0..\n.000.\n00000\n\ntimeShadow\ntransparent\n\ntimeRevert\ntransparent\n\napplyRules\ntransparent\n\nerror\n#603030\n\ninfo1\n#5080e0 #50c0c0\n.....\n..01.\n.00..\n..00.\n.....\n\ninfo2\n#5080e0 #50c0c0\n.....\n..10.\n..00.\n.10..\n.....\n\ninfo3\n#5080e0 #50c0c0\n.....\n.10..\n..01.\n.01..\n.....\n\ninfo4\n#5080e0 #50c0c0\n.....\n.100.\n..1..\n.11..\n.....\n\nplus\n#808080\n.....\n..0..\n.000.\n..0..\n.....\n\ntimebox\ntransparent\n\n=======\nLEGEND\n=======\n\n' = void\n. = rockInert\n$ = shield\n# = boundary and rockInert\nP = select and rockInert\nπ = select and shield\nS = square and void\nW = violet and void\nh = horse and void\n˙ = horse and shield\nO = omega and shield\nC = chariot and shield\nç = chariot and void\n√ = decayedViolet and shield\n/ = slash\n÷ = plus\n0 = zero\n1 = one\n2 = two\n3 = three\n4 = four\n5 = five\n6 = six\n7 = seven\n8 = eight\n9 = nine\n- = borderTop and void\n_ = borderBottom and void\n: = borderLeft and void\n; = borderRight and void\n{ = borderTopLeft and void\n} = borderTopRight and void\n` = borderButtonBL and void\n~ = borderButtonBR and void\nœ = borderInsideTL and void\n∑ = borderInsideTR and void\n´ = borderInsideBL and void\n® = borderInsideBR and void\n† = borderBL and void\n¥ = borderBR and void\nx = buttonInert and rockInert\nq = square and toolbox\nu = square and shield\ni = violet and shield\nm = omega\n§ = zero and numberCover\n! = one and numberCover\n@ = two and numberCover\n£ = three and numberCover\n± = four and numberCover\n% = five and numberCover\n\" = six and numberCover\n& = seven and numberCover\n* = eight and numberCover\n™ = nine and numberCover\n? = wall and shield\nt = time and shield\ne = time\nl = toolbox\n¬ = timebox\n¡ = info1 and shield\n¢ = info2 and shield\n∞ = info3 and shield\n¶ = info4 and shield\n\n\n\nrock = rockInert or rockActive\nbackground = rock or shield or void\nbutton = buttonInert or buttonHover or buttonActive\nborder = boundary or borderLeft or borderRight or borderTop or borderBottom or borderTopLeft or borderTopRight or borderButtonBL or borderButtonBR or borderInsideTL or borderInsideTR or borderInsideBL or borderInsideBR or borderBL or borderBR or button\nrevert = oneRevert or twoRevert or threeRevert or fourRevert or fiveRevert or sixRevert or sevenRevert or eightRevert or nineRevert or omegaRevert or squareRevert or violetRevert or chariotRevert or horseRevert or timeRevert or decayedVioletRevert\nnoop = border or shield or wall\nplayer = select or invisiplayer\nplayArea = rock or shield\n\nnumber = zero or one or two or three or four or five or six or seven or eight or nine\n\n(All symbols need to be added to this list)\nsymbol = omega or square or violet or chariot or horse or time or info1 or info2 or info3 or info4\n\n(Occupied spaces are important for symbol rules)\noccupied = symbol or border or button or wall\n\nicon = tick or cross or playIcon or pauseIcon\n\n=======\nSOUNDS\n=======\n\n(Draw symbol)\nsfx0 94979106\n\n(Erase symbol)\nsfx1 65786906\n\n(Draw fail)\nsfx2 90767506\n\n(Change symbol)\nsfx3 64174703\n\n(Timer tick)\nsfx4 54851300\n\n(Timer tick 2)\nsfx5 44900907\n\n(Empty toolbox)\nsfx6 3749704\n\nsfx7 39598503\n\n(atmosphere)\nsfx8 38051508\nsfx9 81574108\nsfx10 4497708\n\ntitleScreen 38051508\nstartGame 81574108\nundo 74844306\nrestart 4497708\nendGame 96315108\n\n================\nCOLLISIONLAYERS\n================\n\nrock, shield, void, toolbox, timebox\nerror\nborder, symbol, wall\ndecayedViolet\nslash, plus, icon, player\nnumber\nnumberCover\nrevert\nshadow, noWin, applyRules\nsolved\nomegaShadow\nsquareShadow\nvioletShadow\nchariotShadow\nhorseShadow\ntimeShadow\ndecayedVioletShadow\nremoveShadow\nplayMode, playModeOff\ntimeRemaining\n\n\n\n======\nRULES\n======\n\n(Info messages)\n[ > player | info1 ][ nine ] -> [ > player | info1 ][ nine ] message Species' biggest challenge: Data processing\n[ > player | info2 ][ nine ] -> [ > player | info2 ][ nine ] message Species' biggest challenge: War\n[ > player | info3 ][ nine ] -> [ > player | info3 ][ nine ] message Species' biggest challenge: Food/energy production\n[ > player | info4 ][ nine ] -> [ > player | info4 ][ nine ] message Species' biggest challenge: Spacetime manipulation\n\n[ > player | info1 ][ eight ] -> [ > player | info1 ][ eight ] message Purpose: The acquisition of knowledge\n[ > player | info2 ][ eight ] -> [ > player | info2 ][ eight ] message Purpose: The acquisition of resources\n[ > player | info3 ][ eight ] -> [ > player | info3 ][ eight ] message Purpose: The hegemony of your race\n[ > player | info4 ][ eight ] -> [ > player | info4 ][ eight ] message Purpose: The survival of your race\n\n[ > player | info1 ][ seven ] -> [ > player | info1 ][ seven ] message Decision: Sacrifice freedoms and submit to our control\n[ > player | info2 ][ seven ] -> [ > player | info2 ][ seven ] message Decision: Face annihilation\n\n\n(If the level is solved, don't allow normal rules to execute)\n[ action player solved ] -> [ player solved ] win\n[ > player solved ] -> [ player solved ] win\n\n(Stop the player from leaving the level bounds)\n[ > player | void ] -> cancel\n\n(Draw or remove a square when the action key is pressed and there are some in the toolbox. Put a shadow where the last item was in the toolbox so we can refill it in the right order.)\n(Can't draw on noop)\n[ action player noop no button ] -> [ player noop ] sfx2\n\n(Drawing a square)\n[ action player no square no noop ] -> [ player squareShadow ]\ndown [ squareShadow ][ square toolbox ] -> [ square ][ toolbox ] sfx0\n\n(Clean up error flags from last time)\n[ toolbox error ] -> [ toolbox ]\n\n(Nothing in the toolbox if the squareShadow is still present at this point)\n[ squareShadow ][ toolbox no error ] -> [ squareShadow ][ toolbox error ] sfx6\n[ squareShadow ] -> []\n\n(Erasing a square)\ndown [ action player square no noop ][ toolbox no symbol | toolbox symbol ] -> [ action player ][ square toolbox | toolbox symbol ] sfx1\n[ action player square no noop ][ toolbox no symbol ] -> [ action player ][ square toolbox ] sfx1\nright down [ action player ][ square toolbox | toolbox no square ] -> [ action player ][ toolbox no square | square toolbox ] sfx1\n\n\n\n(Play Mode)\n\n(Deactivate play mode when the player moves or presses action again)\n[ > player ][ playMode ] -> [ > player ][ playModeOff no timeRemaining ]\n[ action player ][ playMode ] -> [ player ][ playModeOff no timeRemaining ] (consume action)\n\n(When deactivating play mode, revert to the initial state)\n[ playModeOff ][ symbol decayedVioletRevert ] -> [ playModeOff ][ decayedVioletRevert ]\n[ playModeOff ][ decayedViolet no decayedVioletRevert ] -> [ playModeOff ][]\n[ playModeOff ][ symbol no revert ] -> [ playModeOff ][ ]\n[ playModeOff ][ nineRevert ] -> [ playModeOff ][ nine ]\n[ playModeOff ][ eightRevert ] -> [ playModeOff ][ eight ]\n[ playModeOff ][ sevenRevert ] -> [ playModeOff ][ seven ]\n[ playModeOff ][ sixRevert ] -> [ playModeOff ][ six ]\n[ playModeOff ][ fiveRevert ] -> [ playModeOff ][ five ]\n[ playModeOff ][ fourRevert ] -> [ playModeOff ][ four ]\n[ playModeOff ][ threeRevert ] -> [ playModeOff ][ three ]\n[ playModeOff ][ twoRevert ] -> [ playModeOff ][ two ]\n[ playModeOff ][ oneRevert ] -> [ playModeOff ][ one ]\n[ playModeOff ][ omegaRevert ] -> [ playModeOff ][ omega ]\n[ playModeOff ][ squareRevert ] -> [ playModeOff ][ square ]\n[ playModeOff ][ violetRevert ] -> [ playModeOff ][ violet ]\n[ playModeOff ][ chariotRevert ] -> [ playModeOff ][ chariot ]\n[ playModeOff ][ horseRevert ] -> [ playModeOff ][ horse ]\n[ playModeOff ][ timeRevert ] -> [ playModeOff ][ time ]\n[ playModeOff ][ decayedVioletRevert ] -> [ playModeOff ][ decayedViolet ]\n[ playModeOff ][ plus ] -> [ playModeOff ][ void ]\n\n(Remove the play or pause icon)\n[ playModeOff ][ | | number | time ] -> [ playModeOff ][ no icon | | number | time ]\n\n(Take the button out of active mode)\n[ playModeOff ][ player button ][ button ] -> [ playModeOff ][ player buttonHover ][ buttonHover ]\n[ playModeOff ][ player no button ][ button ] -> [ playModeOff ][ player ][ buttonInert ]\n\n(Reset the play area's appearance)\n[ playModeOff ][ rockActive ] -> [ playModeOff ][ rockInert ]\n\n[ playModeOff ] -> []\n\n(Activate play mode when the action key is pressed on the play button)\n(If the action is omitted from the RHS, it is consumed)\n[ action player button ][ button ][ | | number | time ] -> [ action player buttonActive playMode timeRemaining ][ buttonActive ][ playIcon | | number | time ]\n\n(Change the play area's appearance)\n[ action player button ][ rockInert ] -> [ action player button ][ rockActive ]\n\n(Save the state before play mode begins so we can revert to it afterwards)\n[ action player button ][ nine | time ] -> [ action player button ][ nine nineRevert | time ]\n[ action player button ][ eight | time ] -> [ action player button ][ eight eightRevert | time ]\n[ action player button ][ seven | time ] -> [ action player button ][ seven sevenRevert | time ]\n[ action player button ][ six | time ] -> [ action player button ][ six sixRevert | time ]\n[ action player button ][ five | time ] -> [ action player button ][ five fiveRevert | time ]\n[ action player button ][ four | time ] -> [ action player button ][ four fourRevert | time ]\n[ action player button ][ three | time ] -> [ action player button ][ three threeRevert | time ]\n[ action player button ][ two | time ] -> [ action player button ][ two twoRevert | time ]\n[ action player button ][ one | time ] -> [ action player button ][ one oneRevert | time ]\n[ action player button ][ omega ] -> [ action player button ][ omega omegaRevert ]\n[ action player button ][ square ] -> [ action player button ][ square squareRevert ]\n[ action player button ][ violet ] -> [ action player button ][ violet violetRevert ]\n[ action player button ][ chariot ] -> [ action player button ][ chariot chariotRevert ]\n[ action player button ][ horse ] -> [ action player button ][ horse horseRevert ]\n[ action player button ][ time ] -> [ action player button ][ time timeRevert ]\n[ action player button ][ decayedViolet ] -> [ action player button ][ decayedViolet decayedVioletRevert ]\n\n(Don't allow symbol interations once time gets to zero)\n[ timeRemaining ][ zero | time ] -> [][ zero | time ]\n\n(If there are hourglasses, however, we still have time remaining)\n[ playMode no timeRemaining ][ time playArea ] -> [ playMode timeRemaining ][ time playArea ]\n[ playMode no timeRemaining ][ time timebox ] -> [ playMode timeRemaining ][ time timebox ]\n\n\n(Change the button appearance when the player's on it)\n[ > player | button ][ buttonInert ] -> [ > invisiplayer | buttonHover ][ buttonHover ]\n[ no button | < player button ][ buttonHover ] -> [ | < select buttonInert ][ buttonInert ]\n\n\n(SYMBOL RULES)\n(These all apply to real-time moves only, and only when in play mode)\n(Set a marker to say we're okay to apply the symbol rules)\n[ stationary player ][ timeRemaining no solved ] -> [ stationary player ][ timeRemaining applyRules ]\n\n(Omega next to a square: remove square, replace omega with violet)\n[ applyRules ][ omega playArea | square playArea ] -> [ applyRules ][ omega violetShadow playArea | square removeShadow playArea ]\n\n(Chariot next to square: remove chariot, replace square with Omega)\n[ applyRules ][ chariot playArea | square playArea ] -> [ applyRules ][ chariot removeShadow playArea | square omegaShadow playArea ]\n\n(Three squares in a row produce a horse)\n[ applyRules ][ square playArea | square playArea | square playArea ] -> [ applyRules ][ square removeShadow playArea | square removeShadow horseShadow playArea | square removeShadow playArea ]\n\n(A square next to a horse will walk in the direction of the square)\n[ applyRules ][ square playArea | horse playArea | no occupied ] -> [ applyRules ][ square removeShadow playArea | horse removeShadow squareShadow playArea | horseShadow ]\n\n(A chariot next to a horse does the same thing)\n[ applyRules ][ chariot playArea | horse playArea | no occupied ] -> [ applyRules ][ chariot removeShadow playArea | horse removeShadow chariotShadow playArea | horseShadow ]\n\n(Two or more horses next to a violet become hourglasses)\n[ applyRules ] -> [ applyRules zero ]\n+ [ applyRules zero ][ violet playArea no zero no shadow ] -> [ applyRules ][ violet playArea zero ]\n+ [ applyRules ][ horse no shadow | violet zero no shadow ] -> [ applyRules ][ horse shadow | violet zero shadow ]\n+ [ applyRules ][ horse no shadow | violet zero shadow ] -> [ applyRules ][ horse timeShadow | violet zero shadow decayedVioletShadow ]\n+ [ applyRules ][ horse shadow | violet decayedVioletShadow ] -> [ applyRules ][ horse timeShadow no shadow | violet decayedVioletShadow ]\n+ [ applyRules ][ violet zero ] -> [ applyRules ][ violet shadow no zero ]\n+ [ applyRules ][ horse shadow ] -> [ applyRules ][ horse no shadow ]\n(Clean up - not part of rule group)\n[ applyRules ][ symbol shadow ] -> [ applyRules ][ symbol ]\n[ applyRules ][ violet zero ] -> [ applyRules ][ violet ]\n[ applyRules zero ] -> [ applyRules ]\n[ applyRules ][ violet decayedVioletShadow ] -> [ applyRules ][ decayedVioletShadow ]\n\n(An hourglass decays into a chariot, providing an extra second)\n(First, the indication that time needs to tick down)\n[ stationary player ][ playMode ] -> [ player ][ down playMode ]\n(Each separate group of hourglasses can tick independently. For each, the order is clockwise from 3 o' clock)\nleft [ applyRules ][ time playArea | decayedViolet no shadow ] -> [ applyRules ][ time chariotShadow playArea | decayedViolet shadow ] sfx4\nup [ applyRules ][ time playArea | decayedViolet no shadow ] -> [ applyRules ][ time chariotShadow playArea | decayedViolet shadow ] sfx4\nright [ applyRules ][ time playArea | decayedViolet no shadow ] -> [ applyRules ][ time chariotShadow playArea | decayedViolet shadow ] sfx4\ndown [ applyRules ][ time playArea | decayedViolet no shadow ] -> [ applyRules ][ time chariotShadow playArea | decayedViolet shadow ] sfx4\n(Put hourglasses in the timebox. Need a few rules to make sure they go in in the right order)\nright [ decayedViolet shadow ][ timebox time | timebox no time ] -> [ decayedViolet ][ timebox time | timebox time ]\ndown [ decayedViolet shadow ][ no timebox | timebox no time ] -> [ decayedViolet ][ no timebox | timebox time ]\ndown [ decayedViolet shadow ][ timebox time | timebox no time ] -> [ decayedViolet ][ timebox time | timebox time ]\nright [ decayedViolet shadow ][ timebox no time ] -> [ decayedViolet ][ timebox time]\n[ decayedViolet shadow ] -> [ decayedViolet ]\n\n(A decayed violet with no hourglasses next to it disappears)\nright [ applyRules ][ no time | decayedViolet | no time ] -> [ applyRules ][ no time | decayedViolet shadow | no time ]\ndown [ applyRules ][ no time | decayedViolet shadow | no time ] -> [ applyRules ][ no time | no decayedViolet | no time ]\n[ decayedViolet shadow ] -> [ decayedViolet no shadow]\n\n(Remove applyRules)\n[ applyRules ] -> [ no applyRules ]\n\n\n\n(Remove an hourglass from the timebox if there is one, then shuffle them to the top-left)\nright [ down playMode ][ plus | timebox time | timebox no time ] -> [ stationary playMode ][ void | timebox | timebox ] sfx4\n[ down playMode ][ timebox time ] -> [ stationary playMode ][ timebox ] sfx4\nup [ timebox time | timebox no time ] -> [ timebox | timebox time ]\nleft [ timebox time | timebox no time ] -> [ timebox | timebox time ]\nright [ void | timebox time ] -> [ plus | timebox time ]\n\n(Count the timer down)\nright [ down playMode ][ one | time ] -> [ playMode ][ zero | time] sfx4\nright [ down playMode ][ two | time ] -> [ playMode ][ one | time] sfx4\nright [ down playMode ][ three | time ] -> [ playMode ][ two | time] sfx4\nright [ down playMode ][ four | time ] -> [ playMode ][ three | time] sfx4\nright [ down playMode ][ five | time ] -> [ playMode ][ four | time] sfx4\nright [ down playMode ][ six | time ] -> [ playMode ][ five | time] sfx4\nright [ down playMode ][ seven | time ] -> [ playMode ][ six | time] sfx4\nright [ down playMode ][ eight | time ] -> [ playMode ][ seven | time] sfx4\nright [ down playMode ][ nine | time ] -> [ playMode ][ eight | time] sfx4\n\n[ down playMode ] -> [ playMode ]\n\n(Switch to a pause icon after the timer reaches zero)\nright [ playMode no timeRemaining][ playIcon | | zero ] -> [ playMode ][ pauseIcon | | zero ]\n\n\n(POST-SYMBOL RULES)\n(Remove any RemoveShadows and the symbol in that space)\n[ removeShadow symbol ] -> []\n\n(Replace symbol shadows with their real symbols)\n[ violetShadow ] -> [ violet ]\n[ omegaShadow ] -> [ omega ]\n[ squareShadow ] -> [ square ]\n[ chariotShadow ] -> [ chariot ]\n[ horseShadow ] -> [ horse ]\n[ timeShadow ] -> [ time ]\n[ decayedVioletShadow ] -> [ decayedViolet ]\n\n\n\n(Count up the number of target symbols by putting shadows on them then counting up as we remove them by shifting a shadow along the number line. Don't forget to set the count to zero first.)\n\n(violets)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | violet ][ violet No void ] -> [ number | violet ][ violet shadow ]\nright [ violet shadow ][ number shadow | number ] -> [ violet ][ number | number shadow ]\nright [ number shadow ][ | slash | | violet ] -> [ number ][ number | slash | | violet ]\n\n(omegas)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | omega ][ omega no void ] -> [ number | omega ][ omega shadow ]\nright [ omega shadow ][ number shadow | number ] -> [ omega ][ number | number shadow ]\nright [ number shadow ][ | slash | | omega ] -> [ number ][ number | slash | | omega ]\n\n(horses)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | horse ][ horse no void ] -> [ number | horse ][ horse shadow ]\nright [ horse shadow ][ number shadow | number ] -> [ horse ][ number | number shadow ]\nright [ number shadow ][ | slash | | horse ] -> [ number ][ number | slash | | horse ]\n\n(squares)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | square ][ square no void no toolbox ] -> [ number | square ][ square shadow ]\nright [ square shadow ][ number shadow | number ] -> [ square ][ number | number shadow ]\nright [ number shadow ][ | slash | | square ] -> [ number ][ number | slash | | square ]\n\n(chariots)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | chariot ][ chariot no void ] -> [ number | chariot ][ chariot shadow ]\nright [ chariot shadow ][ number shadow | number ] -> [ chariot ][ number | number shadow ]\nright [ number shadow ][ | slash | | chariot ] -> [ number ][ number | slash | | chariot ]\n\n(Clean up e.g. where there are more than 9 of a given symbol)\n[ symbol shadow ] -> [ symbol ]\n\n\n(Work out if the level is solved)\n(First, put crosses by all the counters)\nright [ | number | slash ] -> [ cross no tick | number | slash ]\n(Next, replace crosses with ticks where the targets are met)\nright [ cross | zero | slash | zero ] -> [ tick | zero | slash | zero ]\nright [ cross | one | slash | one ] -> [ tick | one | slash | one ]\nright [ cross | two | slash | two ] -> [ tick | two | slash | two ]\nright [ cross | three | slash | three ] -> [ tick | three | slash | three ]\nright [ cross | four | slash | four ] -> [ tick | four | slash | four ]\nright [ cross | five | slash | five ] -> [ tick | five | slash | five ]\nright [ cross | six | slash | six ] -> [ tick | six | slash | six ]\nright [ cross | seven | slash | seven ] -> [ tick | seven | slash | seven ]\nright [ cross | eight | slash | eight ] -> [ tick | eight | slash | eight ]\nright [ cross | nine | slash | nine ] -> [ tick | nine | slash | nine ]\n(Next, put a noWin on the player for any cross we find)\n[ cross ][ player ] -> [ cross ][ player noWin ]\n(If there's not a noWin on the player, the level is solved!)\n[ player no noWin no solved ] -> [ player solved no playMode ] sfx7\ndown [ solved ][ button | ] -> [ solved ][ button | tick ]\n[ playIcon ][ solved ] -> [ tick ][ solved ]\n[ pauseIcon ][ solved ] -> [ tick ][ solved ]\n[ player noWin ] -> [ player ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\n(There are a few features each level must have in order to work correctly:)\n(1. A row of hidden numbers 0-9 as this is used for counting)\n(2. At least one target symbol counter in the form 0/yZ where y is the required number and Z is the target symbol)\n(3. There must be a column to the left of the target counter so that ticks and crosses can be placed there by the rules)\n(4. An optional time limit in the form xe where x is the number of seconds allowed, up to a maximum of 9)\n(5. If a time limit is in place, it must have two columns to the left of it to allow the play and pause icons to be placed there by the rules)\n(6. At least one button sprite, x. By convention, these are put at the bottom of the play area.)\n(7. Levels with hourglasses need at least one timebox space)\n(7. Hourglasses tick down in groups around the violet they were produced by. If more than one of these groups may exist in the level, you'll need one timebox space per violet group to hold extra hourglasses)\n\nmessage Let it be known that proceeding may lead to the annihilation of your species.\nmessage X = draw/erase symbol, activate button\n\n§!@£±%\"&*™\n'''''{-}''\n'''4e:P;q'\n''''':O;''\n'0/1w:.;''\n'''''`x~''\n''''''''''\n\nmessage Acceptance confirmed. Analysis of species MW3022 commencing. Recognition of 'Hindu-Arabic' numerals likely.\n\n§!@£±%\"&*™'\n'''''{---}'\n'''4e:P.o;q\n''''':...;'\n'0/1w:o..;'\n'''''`xxx~'\n'''''''''''\n\nmessage Normalised threat rating: **\n\n§!@£±%\"&*™''''\n'''''{------}'\n'''4e:P.O$..;q\n''''':.$.$$O;q\n'0/4w:$O..$$;q\n''''':.$$..O;q\n'''''`xxxxxx~'\n''''''''''''''\n\nmessage Chance of accidental completion rated at 0.16% based on factorial analysis. Subject's comprehension is considered highly probable.\n\n§!@£±%\"&*™''''''\n'''''{-------}''\n'''4e:p.o$..$;lq\n''''':..$.o..;qq\n''''':$o..o$.;qq\n'0/4w:.o.$..$;qq\n''''':.$$..o$;qq\n'0/9s:o..$$..;qq\n''''':..o..$.;qq\n'''''`xxxxxxx~''\n''''''''''''''''\n\nmessage Normalised threat rating: ****\n\n§!@£±%\"&*™''''''\n'''''{--------}'\n'''4e:p.o$..o.;q\n''''':o..$.o.o;q\n'0/7w:.$..$..$;q\n''''':..o.o.o$;'\n''''':o..$.$..;'\n''''':.$o..$.o;'\n'''''`xxxxxxxx~'\n''''''''''''''''\n\nmessage Normalised threat rating: *****\n\n§!@£±%\"&*™'''\n'''''{-----}'\n'''4e:P.$.O;q\n''''':$.$$.;q\n'0/4w:.$C..;q\n''''':$..$$;q\n''''':.C$..;q\n''''':.$.O$;q\n'''''`xxxxx~'\n'''''''''''''\n\nmessage Normalised threat rating: *******\n\n§!@£±%\"&*™'''''\n'''''{-----}'''\n'''4e:P$..$;lqq\n''''':$..C.;lqq\n'0/8w:..$..;lqq\n''''':.C..$;qqq\n''''':$..$.;qqq\n'''''`xxxxx~'''\n'''''''''''''''\n\nmessage Normalised threat rating: *********\n\n§!@£±%\"&*™''''''''\n'''''{---------}''\n'''4e:p.c.o$..c;lq\n''''':$o$..$.$.;lq\n'0/7w:$..o$c$.o;lq\n''''':.o$.$..c.;lq\n'0/3m:c.c.o.o$$;qq\n'''''`xxxxxxxxx~''\n''''''''''''''''''\n\nmessage Normalised threat rating: ************\n\n§!''''{-}''\n'''4e{®p´}q\n''''':...;q\n'0/1h†∑.œ¥q\n''''''`x~''\n\nmessage Normalised threat rating: **************\n\n§!@£±%\"&*™'''''''''\n'''''{---------}'''\n'''4e:p$...$$$o;qqq\n''''':$$.$.o...;qqq\n'0/4h:$.o.$.$o$;qqq\n''''':o.$$.$.$.;qqq\n'0/6w:$.o..$$..;qqq\n''''':.$..$...$;'''\n'''''`xxxxxxxxx~'''\n'''''''''''''''''''\n\nmessage What is your species' biggest challenge? 1) Data processing, 2) War, 3) Food/energy production, 4) Spacetime manipulation\n\n§!''™{--}'\n'0/1s:¡p;q\n''''':¢.;'\n''''':∞.;'\n''''':¶.;'\n'''''†__¥'\n\nmessage Your response will be taken into consideration.\n\n§!@£±%\"&*™'{----}'\n'''9e'''''':$$$$;q\n''''''''''':$o$$;q\n''''''''''':$$$$;q\n''''''''''':$$$$;q\n'''''{-----®.$$.;q\n'0/2h:π$$...$$.$;q\n''''':$$$$...$$.;q\n'0/2w:$o$$.$$...;q\n''''':$$$$$.$..$;q\n'''''`xxxxxxxxxx~'\n''''''''''''''''''\n\nmessage Normalised threat rating: ****************\n\n§!@£±%\"&*™'''''''''\n'''''{----------}''\n'''9e:π...$..$..;''\n''''':$$..$$?.$.;lq\n'0/1w:$?$.$$...$;lq\n'''''†___∑.$$$$?;lq\n'''''{--}†∑?$o$.;lq\n''''':..´-®$$$$.;qq\n''''':...$$$$?$.;qq\n''''':?.$$$$.$.$;''\n'''''`xxxxxxxxxx~''\n'''''''''''''''''''\n\nmessage Normalised threat rating: *********************\n\n§!@£±%\"&*™'''''''''\n'''''{---------}'''\n'''4e:p.$..$..$;qqq\n''''':$$$.$.$..;qqq\n'0/9h:$..$...$.;qqq\n''''':...$...$.;qqq\n''''':...$$$$..;qqq\n''''':$$$...$..;'''\n''''':....$..$.;'''\n''''':..$...$$$;'''\n''''':.$..$$...;'''\n''''':$.$$.$...;'''\n''''':.$...$$..;'''\n'''''`xxxxxxxxx~'''\n'''''''''''''''''''\n\nmessage Normalised threat rating: ************************\n\n§!@£±%\"&*™'''''''\n'''''{---}'''''''\n'''1e:p..´}'''qqq\n''''':.$t$´}''qqq\n'¬¬¬¬:$t√.$´}'qqq\n'¬¬¬¬:..t...´}'''\n''''':$..$$..;'''\n''''':.t$.t√t;'''\n''''':t√t..tœ¥'''\n'0/9m:$..$.œ¥''''\n'''''`xxxxx~'''''\n'''''''''''''''''\n\nmessage Normalised threat rating: ***************************\n\n§!@£±%\"&*™'''''''''\n'''''{----}''''''''\n'''9e:p..$;'qqqqq''\n''''':$...;'qqqqq''\n'0/8m:....;{-----}'\n'''{-®$$$$;:o....;'\n'¬¬:o.t$$?´®.....;'\n''':$t√t$$$$$$$$$;'\n''':o.t$?...œ____¥'\n'''`xxxxxxxx~''''''\n'''''''''''''''''''\n\nmessage Normalised threat rating: ******************************\n\n§!@£±%\"&*™''''''\n'''''{----}'''''\n'''9e:p...;'''''\n''''':....;'''''\n'''¬¬:....;'qqq'\n'''¬¬:....;'qqq'\n'0/2m:$$$.;'qqq'\n{---}:.$$$;'''''\n:t√$´®$$$$´----}\n:$t$$$$$$$$$$$$;\n:$$$$$$$$$$$$t√;\n†____∑$$$$œ∑$$t;\n''{--®$...;†___¥\n'':$......´--}''\n'':$.......$$;''\n'':.$.......$;''\n''`xxxxxxxxxx~''\n''''''''''''''''\n\nmessage What is your purpose? 1) The acquisition of knowledge, 2) The acquisition of resources, 3) The hegemony of your race, 4) The survival of your race\n\n§!''*{--}'\n'0/1s:¡p;q\n''''':¢.;'\n''''':∞.;'\n''''':¶.;'\n'''''†__¥'\n\nmessage Your response will be taken into consideration.\n\n§!@£±%\"&*™'''\n'''''{---}'''\n'''2e:p..;lqq\n'¬¬¬¬:.i.;qqq\n'0/2ç:...;qqq\n'''''`xxx~'''\n'''''''''''''\n\nmessage Normalised threat rating: *************************************\n\n§!@£±%\"&*™''''''''\n'''''''{------}'''\n'''9e'':$$$$$c;lqq\n'''''''†∑uœ∑$œ¥qqq\n'¬¬¬¬'''†_¥:$;'qqq\n'''''{-----®$´}qqq\n''''':p......$;'''\n''''':.i......;'''\n'1/0s:........;'''\n'''''`xxxxxxxx~'''\n''''''''''''''''''\n\nmessage Normalised threat rating: *********************************************************\n\n§!@£±%\"&*™''''''''''''\n'''''{-----}{-----}'''\n'''2e:p...$;:.$...;qqq\n''''':$i...´®..$i.;qqq\n'''¬¬:$.$$.$$.$.$.;qqq\n'''¬¬:....$..i.$$$;qqq\n'''¬¬:...i.$....i.;qqq\n'''¬¬:$.$$$$.$.$..;qqq\n''''':$$...$$$$...;qqq\n''''':$....$$$$$i$;qqq\n'0/4m:.....$$$$$$$;'''\n'''''`xxxxxxxxxxxx~'''\n''''''''''''''''''''''\n\nmessage We come now to the final test. Consider your actions carefully, sapient one.\n\n'''''''''''''''''''''''{--}''''\n''''''''''''''''''''''':u$;''''\n'§!@£±%\"&*™'''''''''''':$$;qqq'\n'''''{------------}'''':$o;qqq'\n'''9e:p.....√.....´}''':u$;qqq'\n''''':˙.˙.˙.t.˙.˙.˙´--}:$$;qqq'\n'¬¬¬¬:.˙.˙.˙.˙.˙.˙....´®$o;qqq'\n'¬¬¬¬†__________∑........œ¥qqq'\n'¬¬¬¬{----------®........´}qqq'\n'¬¬¬¬:...˙...˙...˙....œ∑$o;qqq'\n''''':˙.˙.˙.t.˙.˙.˙œ__¥:$$;qqq'\n'4/0m:.˙...˙√..˙..œ¥''':u$;qqq'\n'''''`xxxxxxxxxxxx~'''':$o;qqq'\n''''''''''''''''''''''':$$;''''\n'''''''''''''''''''''''`xx~''''\n\nmessage Testing is now complete. Your risk rating has been calculated as...\nmessage CRITICAL\nmessage Dangerously intelligent life cannot be permitted to propagate unchecked within the galaxy. You must now decide on behalf of your civilisation whether to 1) Sacrifice your freedoms and submit to our direct control, or 2) Face annihilation.\n\n§!''&{--}'\n'0/1s:¡p;q\n''''':¢.;'\n'''''†__¥'\n\nmessage ERROR: Species designated 'homo sapiens' came under supervision 2500 years ago. Access to this system should not have been allowed. Our physical agents in the region may have been compromised.\nmessage Dispatching scout party to Orion Spur, Sol system.\nmessage ETA: 5 years\nmessage Shutting down...\n\n", ["tick", 3, 3, 4, 2, 2, "tick", 4, 3, 3, 4, 3, "tick", 0, 4, 3, 4, 2, 4, "tick", 1, 0, 4, 0, 4, 1, 4, "tick", 2, 4, 1, 4, 0, 4, 1, "tick", 1, 4, 1, 2, 2, 2, 1, "tick", 2, 3, 2, 4, "tick", "tick", "tick", "tick", "tick"], "numbercover shadow void zero:0,void:1,1,1,cross void:2,1,2,1,1,numbercover one void:3,1,pauseicon void:4,1,three void:5,1,six void:6,1,1,\nnumbercover two void:7,1,1,1,slash void:8,1,8,1,1,numbercover three void:9,1,fourrevert void zero:10,1,seven void:11,1,5,1,1,\nfour numbercover void:12,1,time timerevert void:13,1,violet violetrevert void:14,1,omega omegarevert void:15,1,1,five numbercover void:16,bordertopleft void:17,borderleft void:18,18,18,18,18,borderbuttonbl void:19,1,\nnumbercover six void:20,bordertop void:21,rockactive:22,shield:23,23,22,chariot chariotrevert shield:24,buttonactive rockactive:25,1,numbercover seven void:26,21,omega rockactive squarerevert:27,omegarevert shield violet:28,22,omega omegarevert shield:29,22,buttonactive invisiplayer playmode rockactive:30,1,\neight numbercover void:31,21,chariotrevert shield:32,23,rockactive squarerevert:33,23,24,25,1,nine numbercover void:34,21,27,33,28,22,22,25,1,\n1,21,28,33,23,23,29,25,1,1,21,23,23,24,22,22,25,1,\n1,21,22,rockactive square squarerevert:35,23,22,29,25,1,1,21,22,23,22,24,23,25,1,\n1,21,24,22,29,22,23,25,1,1,bordertopright void:36,borderright void:37,37,37,37,37,borderbuttonbr void:38,1,\n1,1,toolbox:39,39,39,39,39,1,1,1,1,39,39,39,39,39,1,1,\n", 16, "1627779484111.158"] ], [ `gallery: The Flames`, - ["title The Flames\nauthor Rosden Shadow [Mark Signorelli]\nhomepage rosden.itch.io\n\n========\nOBJECTS\n========\n\nBackground\n#5BB205 #34960A #18820A\n11010\n20101\n02010\n20201\n02022\n\nfilledground\n#AD6A06 #7F370B #59160A \n11010\n20101\n02010\n20201\n02022\n\nTarget\nDarkBlue\n(\n.....\n.000.\n.0.0.\n.000.\n.....\n)\n.....\n.....\n.....\n.....\n.....\n\nWall\n#787878 #444444 #a7a6a6\n02222\n10002\n10002\n10002\n11110\n\nwoodWall\n#7F370B #59160A #C67B09\n02222\n10002\n10002\n10002\n11110\n\nwoodWallx\n#7F370B #59160A #C67B09\n02222\n10002\n10002\n10002\n11110\n\nPlayer\n#EE1C24 white blue\n.011.\n.012.\n.011.\n.000.\n.0.0.\n(\n#62199E #A91ABF\n.011.\n01111\n01111\n01.01\n...01)\n\nPlayer1\n#62199E #A91ABF\n.011.\n01111\n01111\n01.01\n01...\nPlayerx1\n#62199E #A91ABF\n.011.\n01111\n01111\n01.01\n01...\n\nPlayerx2\n#62199E #A91ABF\n.011.\n01111\n01111\n01.01\n01...\n\n\n\nCrate\n#BA4D0E #91290D #F99807\n.222.\n10022\n10002\n11002\n.111.\n\nfireCrate1\n#BA4D0E #91290D #F99807 red yellow\n.3.3.\n10022\n10002\n11002\n.111.\n\nfireCrate2\n#BA4D0E #91290D #F99807 red yellow\n..3..\n.343.\n10002\n11002\n.111.\n\nfireCrate3\n#BA4D0E #91290D #F99807 red yellow\n.3.3.\n34343\n43434\n11002\n.111.\n\nfireCrate4\n#BA4D0E #91290D #F99807 red yellow\n..3..\n.343.\n34343\n43434\n.111.\n\n\n(\nfireper1\nred yellow\n.0.0.\n01010\n10101\n01010\n.010.\n\nfireper2\nred yellow\n..0..\n.010.\n01010\n10101\n.101.\n)\n\nfireper1\nred yellow\n00000\n01110\n01010\n01110\n00000\n\nfireper2\nred yellow\n00000\n00000\n00100\n00000\n00000\n\nfireper1x\nred yellow\n00000\n01110\n01010\n01110\n00000\n\nfireper2x\nred yellow\n00000\n00000\n00100\n00000\n00000\n\nfireper1xx\nred yellow\n00000\n01110\n01010\n01110\n00000\n\nfireper2xx\nred yellow\n00000\n00000\n00100\n00000\n00000\n\nfirex1\nred \n\n\nfirex2\nred\n\nfirex3\nred \n\n\nfirex4\nred\n\nfirex5\nred \n\nfirex6\nred\n\nash\nblack #333333\n.....\n.....\n..1..\n.011.\n00001\n\npit\nblack #7F370B\n11111\n11111\n00000\n00000\n00000\n\n\nbarrel\nred #444444 black yellow\n.0.0.\n.303.\n.211.\n.211.\n.222.\n\nbarrel1\nred #444444 black yellow\n..0..\n.030.\n.211.\n.211.\n.222.\n\nbarrelx1\nred \n\n\nbarrelx2\nred \n\nendflame\nblack \n.....\n.....\n.....\n.....\n.....\n\nflametrigger\nblack \n.....\n.....\n.....\n.....\n.....\n\nend1\nblack \n.....\n.....\n.....\n.....\n.....\n\nend2\nblack \n.....\n.....\n.....\n.....\n.....\n\nend3\nblack \n.....\n.....\n.....\n.....\n.....\n\nsrs\nblack \n.....\n.....\n.....\n.....\n.....\n\nbedup\nwhite #D7D7D7 #99122D #EE1C24 \n00000\n00000\n11111\n23333\n23333\n\nbeddown\nwhite #D7D7D7 #99122D #EE1C24 \n23333\n23333\n23333\n23333\n22222\n\ntable \n#FFC300 #BA6803 #FFF465\n22222\n00000\n0...0\n0...0\n0...0\n\nchair\n #BA6803 #FFC300 #FFF465\n.2...\n.2...\n.2...\n.211.\n.2.1.\n\nchair2\n #BA6803 #FFC300 #FFF465\n...2.\n...2.\n...2.\n.112.\n.1.2.\n\ncupboard\n#FFC300 #BA6803 black #FFF465\n.333.\n10003\n10003\n11110\n0...0\n=======\nLEGEND\n=======\n\n(Player = Player1 or fireper1x)\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\n(O = endarea)\ne = Target\n\nf = fireper1\nk = fireper2\n\nw = woodwall\nr=woodwallx\nd = pit\nj= filledground\nl = filledground and player\ng = pit and Target\nb=barrel\nx=barrel1\nt=barrel1 and target\na=ash\no=ash and player\n\ny=endflame and filledground\n%=endflame and filledground and end1 and flametrigger and srs\ni=endflame and filledground and flametrigger\nq=filledground and endflame and player\nu=filledground and target\n\nn=bedup\nm=beddown\nz=table and filledground\nc=chair and filledground\nh=chair2 and filledground\n&=cupboard and filledground\n\n\n=======\nSOUNDS\n=======\n\nplayer MOVE 35431509(97509308)\nbarrel MOVE 61477902\nbarrel1 MOVE 61477902\n\n\nCrate MOVE 36772507\n\nsfx1 2322302 (flame)\nsfx2 78713302(5964902) (woodwall flame)\nsfx3 47353904 (pit fill)\n\nsfx4 77411903 (test sound)\n\nshowmessage 42200307\nclosemessage 42200307\n\nstartgame 9611309\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nfilledground\nTarget(, endarea)\nflametrigger\nash,endflame\nPlayer,player1, Wall, woodwall,woodwallx, Crate, fireper1,fireper2,firex3,firex4,firex1,firex2,playerx1,playerx2,pit,barrel,barrel1,barrelx1,barrelx2,firecrate1,firecrate2,firecrate3,firecrate4,bedup,beddown,table,chair,chair2,cupboard\nend1,end2,end3\nfireper1x,fireper2x,fireper1xx,fireper2xx,firex5,firex6\nsrs\n\n======\nRULES\n======\n\n\n([> player][ player1] -> [> player] [> player1])\n\n(Horizontal [< player] -> [< player1]))\n\n[flametrigger|player] [ woodwallx] ->[flametrigger|player] [fireper1x]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n([ > Player1 | Crate ] -> [ > Player1 | > Crate ])\n\n[ > Player | barrel ] -> [ > Player | > barrel ]\n[ > Player | barrel1 ] -> [ > Player | > barrel1 ]\n\n[ > Player | firecrate1 ] -> [ > Player | > firecrate1 ] \n[ > Player | firecrate2 ] -> [ > Player | > firecrate2 ] \n[ > Player | firecrate3 ] -> [ > Player | > firecrate3 ] \n[ > Player | firecrate4 ] -> [ > Player | > firecrate4 ]\n\n[> crate | pit]-> [|filledground] sfx3\n[> firecrate1 | pit]-> [|filledground]sfx3\n[> firecrate2 | pit]-> [|filledground]sfx3\n[> firecrate3 | pit]-> [|filledground]sfx3\n[> firecrate4 | pit]-> [|filledground]sfx3\n\n(ee\n[> crate | pitx]-> [|filledground] sfx3\n[> firecrate1 | pitx]-> [|filledground]sfx3\n[> firecrate2 | pitx]-> [|filledground]sfx3\n[> firecrate3 | pitx]-> [|filledground]sfx3\n[> firecrate4 | pitx]-> [|filledground]sfx3\n)\n[player|fireper1x]->[|fireper1x]\n[player|fireper2x]->[|fireper2x]\n\n\n[barrel | woodwall] ->[barrel|fireper1]\n[barrel1 | woodwall] ->[barrel1|fireper1]\n\n\n\n[fireper2 | woodwall] ->[fireper2|fireper1]\n[fireper2x | woodwall] ->[fireper2x|fireper1x]\n\n[fireper2x | endflame] ->[fireper2x|fireper1x]\n\n([firecrate1 | woodwall] ->[firecrate1|fireper1])\n([firecrate1 |crate] -> [firecrate1|firecrate1])\n\n[firecrate2 | woodwall] ->[firecrate2|fireper1]\n[firecrate2 |crate] -> [firecrate2|firecrate1]\n\n[firecrate3 | woodwall] ->[firecrate3|fireper1]\n[firecrate3 |crate] -> [firecrate3|firecrate1]\n\n[firecrate4 | woodwall] ->[firecrate4|fireper1]\n[firecrate4 |crate] -> [firecrate4|firecrate1]\n\n(\n[Action Player | crate] -> [Action Player |fire]\n[Action Player1 | crate] -> [Action Player1 |fire])\n\n\n\nlate [end3|fireper1x]-> [target|player]\nlate [srs|target] -> [fireper1xx|target]\n\nlate [end2] -> [end3]\nlate [end1|fireper2x]->[end2|fireper2x]\n\nlate [firecrate4] -> [ash] sfx1\nlate [firecrate3] -> [firecrate4] sfx1\nlate [firecrate2] -> [firecrate3] sfx1\nlate [firecrate1] -> [firecrate2] sfx1\n\nlate [barrel|crate] -> [barrel|firecrate1] sfx1\nlate [barrel1|crate] -> [barrel1|firecrate1] sfx1\n\nlate [fireper2 |crate] -> [fireper2|firecrate1] sfx1\nlate [fireper1 |crate] -> [fireper1|firecrate1] sfx1\n\nlate [fireper1] -> [firex1]\nlate [fireper2] -> [firex2]\nlate [firex1] -> [fireper2] \nlate [firex2] -> [fireper1] \n\nlate [fireper1x] -> [firex3]\nlate [fireper2x] -> [firex4]\nlate [firex3] -> [fireper2x] \nlate [firex4] -> [fireper1x] \n\nlate [fireper1xx] -> [firex5]\nlate [fireper2xx] -> [firex6]\nlate [firex5] -> [fireper2xx] \nlate [firex6] -> [fireper1xx] \n\nlate [barrel] -> [barrelx1]\nlate [barrel1] -> [barrelx2]\nlate [barrelx1] -> [barrel1]\nlate [barrelx2] -> [barrel]\n(\nlate [player] -> [playerx1]\nlate [player1] -> [playerx2]\nlate [playerx1] -> [player1]\nlate [playerx2] -> [player])\n\n==============\nWINCONDITIONS\n==============\n\nsome Player on target\n\n(some Player1 on target)\n(All Player on endarea)\n\n=======\nLEVELS\n=======\n\nmessage zzz..z.zz\n\nmessage z.zzzz.z.z\n\nmessage zz.zz..z.z\n\nmessage z....(blink) (blink)\n\n..........\n.wwwwwwww.\n.wnjjj&jw.\n.wmljjjjw#\n.wjjjjjjje\n.wjczhjjw#\n.wjjjjjjw.\n.wwwwwwww.\n..........\n\n..........\nwwwwwww...\nnjjj&jw..e\nmjjjjjw###\njjjjjjle..\njczhjjw###\njjjjjjw...\nwwwwwww...\n..........\n\n..........\nwwwww.....\njj&jw..e..\njjjjw#####\njjjjjpe...\nzhjjw#####\njjjjw.....\nwwwww.....\n..........\n\n........##\nwww.....#.\n&jw.....#.\njjw######.\njjj.pe....\njjw######b\njjw.....#.\nwww.....#.\n........##\n\n......####\nw.....#...\nw.....#...\nw######...\nj..pee....\nw######x.*\nw.....#...\nw.....#.##\n......####\n\nmessage so I am on a journey to ignite the flames\n\n....######\n....#...##\n....#....#\n#####....*\n..pe.....#\n#####b.*.#\n....#...##\n....#.####\n....######\n\n..########\n..#...####\n..#....###\n###....**#\n.pe....#..\n###x.*.#..\n..#...##..\n..#.####..\n..########\n\n##########\n#...######\n#....#####\n#....**###\npe...#...#\n#b.*.#...#\n#...##...e\n#.####...#\n##########\n\nmessage 1 of 10\n\n##########\n#...######\n#....#####\n#....**###\n.p...#...#\n#b.*.#...#\n#...##...e\n#.####...#\n##########\n\n(move)\n########..\n..######..\n...#####..\n..aaa###..\n...#...#..\n...#...###\n..##...pe.\n####...##.\n##########\n\n######....\n######....\n.#####....\naaa###....\n.#...#....\n.#...####.\n##....pe##\n##...##...\n##########\n\n####......\n####......\n####......\na###......\n...#......\n...####...\n.....p####\n...##.e...\n##########\n\n##......##\n##......#w\n##......#w\n##......#.\n.#......#.\n.####...#.\n....######\n.##.pe....\n##########\n\nmessage even though the fire fills me with terror\n\n......####\n......#www\n......#www\n......#...\n......#..*\n###...#...\n..######..\n#..pe....#\n##########\n\n....######\n....#www##\n....#wwwww\n....#.....\n....#..*..\n#...#...x.\n######..##\n..pe...###\n##########\n\n..########\n..#www##.*\n..#wwwwwdw\n..#.....b.\n..#..*....\n..#...b..#\n####..####\n.pe..#####\n##########\n\n##########\n#www##.*d.\n#wwwwwdw##\n#.....x.##\n#..*....##\n#...x..###\n##..######\npe.#######\n##########\n\nmessage 2 of 10\n##########\n#www##.*de\n#wwwwwdw##\n#.....b.##\n#..*....##\n#...b..###\n##..######\n.p.#######\n##########\n\n(move)\n\n##########\nkf##..jpe.\nfkfkjw####\n......##..\n......##..\n.....###..\n.x######..\n.#######..\n########..\n\n##########\n##..j.pe..\nkfjw#####.\n....##..#.\n....##..#.\n...###..#.\n######..#.\n######..#.\n######..##\n\n#########.\n..j..pe.#.\njw#####.#.\n..##..#.#.\n..##..#.#.\n.###..#.#.\n####..#.##\n####..#...\n####..####\n\n#######.#w\nj...pe#.#w\n#####.#.ww\n##..#.#.ww\n##..#.#.ww\n##..#.#.ww\n##..#.##w.\n##..#.....\n##..######\n\n\nmessage I was scared by what the fire could seem to claim\n\n#####.#www\n...p#.#w..\n###.#.ww.w\n..#.#.ww..\n..#.#.ww.w\n..#.#.ww.w\n..#.##w.*w\n..#.e.....\n..########\n\n\n###.#wwwww\n..#.#w....\n#.#.ww.www\n#.#.ww....\n#.#.ww.www\n#.#.ww.w..\n#.##w.*www\n#.pee.....\n##########\n\n\n#.#wwwwwww\n#.#w....*.\n#.ww.wwww.\n#.ww....w.\n#.ww.wwww.\n#.ww.w....\n##w.*www..\n.pe.......\n##########\n\n#wwwwwww##\n#w....*..g\nww.wwww..#\nww....w..#\nww.wwww..#\nww.w.....#\nw.*www.b.#\npe.......#\n##########\n\nmessage 3 of 10\n#wwwwwww##\n#w....*..g\nww.wwww..#\nww....w..#\nww.wwww..#\nww.w.....#\nw.*www.b.#\n.p.......#\n##########\n\n(move)\nfkfkfk####\n.......le.\n.kfkf..###\na...k..#..\n.kfkf..#..\n.f.....#..\n.kfk...#..\n.......#..\n########..\n\nkfkf######\n.....jpe..\nkfk..#####\n..f..#...#\nkfk..#....\n.....#....\nkf...#....\n.....#....\n######....\n\nfk########\n...j.pe..#\nf..#####..\nk..#...###\nf..#......\n...#......\n...#......\n...#......\n####......\n\n##########\n.j..pe.##.\n.#####....\n.#...####.\n.#......#.\n.#......#.\n.#......#.\n.#......#.\n##......##\n\nmessage all my excuses made the fire seem scarier\n\n##########\n...pe##...\n####.....w\n...####...\n......#..w\n......#.**\n......#..w\n......#..w\n......####\n\n##########\n..p##.....\n##.e...www\n.####.....\n....#..w.#\n....#.**..\n....#..w..\n....#..ww.\n....######\n\n##########\n.##.......\n.pe..wwww.\n###.......\n..#..w.###\n..#.**..##\n..#..w..b.\n..#..ww...\n..########\n\n##########\n#.......##\npe.wwww.*e\n#........#\n#..w.###.#\n#.**..##.#\n#..w..b..#\n#..ww....#\n##########\n\nmessage 4 of 10\n##########\n#.......##\n.p.wwww.*e\n#........#\n#..w.###.#\n#.**..##.#\n#..w..b..#\n#..ww...##\n##########\n\n(move)\n########..\n......####\n.kfkf..pe.\n..a...a###\n.k.###.#..\n...b##.#..\n.w.....#..\n.ww...##..\n########..\n\n\n######....\n....######\nkfk..ape..\na...a#####\n.###.#...#\n.x##.#...#\n.....#...#\nw...##....\n######....\n\n\n####......\n..########\nf..a.pe..#\n..a#####.#\n##.#...#.#\n##.#...#..\n...#...###\n..##......\n####......\n\n\n##......##\n##########\n.a..pe.###\na#####.##.\n.#...#.##.\n.#...#....\n.#...#####\n##......##\n##......##\n\nmessage I avoided the flames until it was too much to bear\n\n......###w\n########*.\n...pe###..\n####.##...\n...#.##.*.\n...#......\n...######.\n......###.\n......####\n\n....###www\n######*...\n..p###..ww\n##.##....w\n.#.##.*.*w\n.#.e......\n.######.*.\n....###...\n....######\n\n..###wwwww\n####*...d.\n.###..wwww\n.##....www\n.##.*.*www\n.pe......w\n#####.*.b.\n..###.....\n..########\n\n###wwwwww#\n##*...d..g\n##..wwwwww\n#....wwww#\n#.*.*wwww#\npe.....ww#\n###.*.x.w#\n###.....w#\n##########\n\nmessage 5 of 10\n###wwwwww#\n##*...d..g\n##..wwwwww\n#....wwww#\n#.*.*wwww#\n.P.....ww#\n###.*.b.w#\n###.....w#\n##########\n(move)\n\n#wwwwww###\na...j..le.\na.wwwwww##\n...wwww#..\n...wwww#..\n.....ww#..\n#.....w#..\n#.....w#..\n########..\n\nwwwww#####\n..j..jpe..\nwwwwww####\n.wwww#...#\n.wwww#...#\n...ww#...#\n....w#...#\n....w#...#\n######....\n\nwww#######\nj..j.pe..#\nwwww####.#\nwww#...#.#\nwww#...#.#\n.ww#...#.#\n..w#...#..\n..w#...###\n####......\n\nw#########\n.j..pe.###\nww####.##.\nw#...#.##.\nw#...#.##.\nw#...#.##.\nw#...#....\nw#...####.\n##......##\n\nmessage now its time to start controlling the fire\n\n##########\n...pe###..\n####.##...\n...#.##...\n...#.##...\n...#.##...\n...#......\n...####.b.\n......####\n\n##########\n..p###....\n##.##.....\n.#.##.....\n.#.##...##\n.#.##...##\n.#.e.....#\n.####.x..#\n....######\n\n##########\n.###......\n.##.....*.\n.##......*\n.##...##*.\n.##...##.*\n.pe....#*.\n###.b..#..\n..########\n\n##########\n##......##\n#.....*..#\n#......*.#\n#...##*..#\n#...##.*.#\npe...#*..#\n#.x..#..*e\n##########\n\nmessage 6 of 10\n##########\n##......##\n#.....*..#\n#......*.#\n#...##*..#\n#...##.*.#\n.p...#*..#\n#.b..#..*e\n##########\n\n(move)\n########..\n.a....##..\n.....a.#..\n.......#..\na.##...#..\n..##a..#..\n...#...###\n...#.a.oe.\n##########\n\n######....\n....##....\n...a.#....\n.....#....\n##...#...#\n##a..#...#\n.#...#####\n.#.a.ape..\n##########\n\n####......\n..##......\n.a.#......\n...#......\n...#...###\na..#...#..\n...#####.#\n.a.a.pe..#\n##########\n\n##......##\n##......##\n.#......##\n.#......##\n.#...####.\n.#...#....\n.#####.##.\n.a..pe.###\n##########\n\nmessage now its time to get ready and prepare\n\n......####\n......####\n......####\n......##..\n...####...\n...#....b.\n####.##...\n...pe###..\n##########\n\n....######\n....#####*\n....####..\n....##..*.\n.####...w.\n.#.e..x.*.\n##.##...w.\n..p###....\n##########\n\n..########\n..#####*.d\n..####...#\n..##..*...\n###...w...\n.pe.b.*.*.\n.##...w...\n.###.....#\n##########\n\n##########\n#####*.ddg\n####...###\n##..*...##\n#...w...##\npex.*.*.##\n#...w...##\n##.....###\n##########\n\nmessage 7 of 10\n##########\n#####*.ddg\n####...###\n##..*...##\n#...w...##\n.pb.*.*.##\n#...w...##\n##.....###\n##########\n(move)\n\n##########\n###a.jjle.\n##b..#####\n......##..\n..f...##..\n......##..\n..w...##..\n.....###..\n########..\n\n##########\n#a.jjjpe..\nx..#######\n....##...#\nk...##...#\n....##...#\nw...##...#\n...###....\n######....\n\n##########\n.jjj.pee.#\n.#######.#\n..##...#.#\n..##...#.#\n..##...#..\n..##...###\n.###......\n####......\n\n########ww\njj..pe.#w#\n######.#w#\n##...#.#ww\n##...#.###\n##...#....\n##...####.\n##......##\n##......##\n\nmessage the time is gone to just aspire\n\n######wwww\n...pe#w##.\n####.#w##.\n...#.#www.\n...#.###w.\n...#...b..\n...####...\n......##..\n......####\n\n####wwwwww\n..p#w##...\n##.#w##...\n.#.#www.*.\n.#.###w...\n.#.e.x....\n.####.....\n....##....\n....######\n\n##wwwwwwww\n.#w##.....\n.#w##.....\n.#www.*.*.\n.###w.....\n.peb......\n###......d\n..##....dd\n..########\n\nwwwwwwwwww\nw##......w\nw##......w\nwww.*.*..w\n##w......w\npt.......w\n#......dww\n##....dd*g\n##########\n\nmessage 8 of 10\nwwwwwwwwww\nw##......w\nw##......w\nwww.*.*..w\n##w......w\n.pb......w\n#......dww\n##....dd*g\n##########\n\n(move)\n\nfkfkfkfk..\n#......f..\n#......k..\nk......f..\nf......k..\n.b.....f..\n.....jfk##\n....dj.le.\n##########\n\nkfkfkf....\n.....k....\n.....f....\n.....k...#\n.....f...#\n.....k...#\n...jkf####\n..dj.jpe..\n##########\n\nfkfk......\n...f......\n...k......\n...f...###\n...k...#..\n...f...#.#\n.jfk####.#\ndj.j.pe..#\n##########\n\nkf......##\n.k......##\n.f......##\n.k...####.\n.f...#....\n.k...#.##.\nkf####.###\n.j..pe.###\n##########\n\nmessage no more excuses for playing unnecessary games\n\n......####\n......###b\n......###.\n...####...\n...#......\n...#.##...\n####.####.\n...pe####.\n##########\n\n....######\n....###b#.\n....###...\n.####.....\n.#.e.....*\n.#.##...**\n##.####..*\n..p####...\n##########\n\n..########\n..###b#..#\n..###.....\n###.......\n.pe....***\n.##...**.*\n.####..***\n.####...wd\n########ww\n\n##########\n###b#..###\n###.....##\n#........#\npe...***.#\n#...**.*.#\n###..***w#\n###...wd*e\n######www#\n\nmessage 9 of 10\n##########\n###b#..###\n###.....##\n#........#\n.p...***.#\n#...**.*.#\n###..***w#\n###...wd*e\n######www#\n\n(move)\n\n########..\n#b#..###..\n#aa...##..\n.....a.#..\n....aa.#..\n....a..#..\n#...a.f###\n#...kj.oe.\n####fkf###\n\n######....\n#..###....\na...##....\n...a.#....\n..aa.#....\n..a..#...#\n..a.k#####\n..fj.ape..\n##kfk#####\n\n####......\n.###......\n..##......\n.a.#......\naa.#......\na..#...###\na.f#####..\nkj.a.pe..#\nfkf#######\n\n##......##\n##......##\n##......##\n.#......##\n.#......#.\n.#...####.\nk#####....\n.a..pe.###\nk#########\n\nmessage I will avoid my fears\n\n......####\n......####\n......####\n......###.\n......#...\n...####...\n####....*.\n...pe###..\n##########\n\n....######\n....####bb\n....####bb\n....###.bb\n....#....b\n.####...b.\n##.e..*..b\n..p###..bb\n##########\n\n..########\n..####xx..\n..####xx.x\n..###.xx.x\n..#....x..\n###...x.xx\n.pe.*..x..\n.###..xx##\n##########\n\n##########\n####bb..de\n####bb.b.w\n###.bb.b.w\n#....b...w\n#...b.bb.w\npe*..b...w\n##..bb####\n##########\n\nmessage 10 of 10\n##########\n####bb..de\n####bb.b.w\n###.bb.b.w\n#....b...w\n#...b.bb.w\n.p*..b...w\n##..bb####\n##########\n\n(move)\n##########\n##xx..jpe.\n##xx..xk##\n#xxx...f.#\nx......k.#\n......xf.#\n.....xxk.#\n..xx####.#\n########.#\n\n##########\nbb..j.pe.#\nbb..bf##.#\nbb...k.#.#\n.....f.#.#\n....bk.#.#\n...bbf.#.#\nbb####.#.#\n######.#.#\n\n########..\n..j..pe#..\n..xk##.#..\n...f.#.#..\n...k.#.#..\n..xf.#.#..\n.xxk.#.#..\n####.#.#..\n####.#.#..\n\n\n######....\nj...p#....\nbf##e#....\n.k.#.#....\n.f.#.#....\nbk.#.#....\nbf.#.#....\n##.#.#....\n##.#.#....\n\nxk##p#....\n.f.#e#....\n.k.#.#....\nxf.#.#....\nxk.#.#....\n##.#.#....\n##.#.#....\n...#.#....\nwwwwywwwww\n\n.k.#p#....\n.f.#e#....\nbk.#.#....\nbf.#.#....\n##.#.#....\n##.#.#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\n \n message I will be consumed by these flames\n \n.k.#p#....\nxf.#e#....\nxk.#.#....\n##.#.#....\n##.#.#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\n\n\nbk.#p#....\nbf.#e#....\n##.#.#....\n##.#.#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\n\nxk.#p#....\n##.#e#....\n##.#.#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\n\n##.#p#....\n##.#e#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\n##.#p#....\n...#e#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\n...#p#....\nwwwwuwwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\nrwwwqwwwwr\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwiii%%iiiw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nrwwwwwwwwr\n\n\n message I will become more than I am\nmessage THE END\n(\n#www######\n#*.wwwwww#\n#.d...d.de\n#p.###b.b#\n#...##...#\n#.b....*.#\n##..*.*..#\n#####...##\n##########)\n(\n##########\n##.*.....@\n#..wwww.##\n#p.ww...##\n#.....*.##\n#.*.www.##\n#...###w##\n##.b.www##\n####www###)\n\n\n\n\n\n",[3,0,0,3,3,0,3,3,2,2],"background wall:0,0,0,0,0,background:1,0,0,0,0,\n0,0,0,1,1,1,0,0,0,0,\n0,1,1,1,1,1,0,0,0,0,\n1,1,background barrel:2,1,1,0,0,0,1,1,\nbackground fireper1:3,ash background:4,3,1,0,0,background crate:5,1,4,1,\n1,1,1,0,0,1,1,1,background player:6,5,\n1,1,0,0,background pit:7,0,1,1,1,1,\n0,0,0,7,0,0,0,0,0,0,\n0,0,background pit target:8,0,0,0,0,0,0,0,\n",80,"1627779570245.4102"] + ["title The Flames\nauthor Rosden Shadow [Mark Signorelli]\nhomepage rosden.itch.io\n\n========\nOBJECTS\n========\n\nBackground\n#5BB205 #34960A #18820A\n11010\n20101\n02010\n20201\n02022\n\nfilledground\n#AD6A06 #7F370B #59160A \n11010\n20101\n02010\n20201\n02022\n\nTarget\nDarkBlue\n(\n.....\n.000.\n.0.0.\n.000.\n.....\n)\n.....\n.....\n.....\n.....\n.....\n\nWall\n#787878 #444444 #a7a6a6\n02222\n10002\n10002\n10002\n11110\n\nwoodWall\n#7F370B #59160A #C67B09\n02222\n10002\n10002\n10002\n11110\n\nwoodWallx\n#7F370B #59160A #C67B09\n02222\n10002\n10002\n10002\n11110\n\nPlayer\n#EE1C24 white blue\n.011.\n.012.\n.011.\n.000.\n.0.0.\n(\n#62199E #A91ABF\n.011.\n01111\n01111\n01.01\n...01)\n\nPlayer1\n#62199E #A91ABF\n.011.\n01111\n01111\n01.01\n01...\nPlayerx1\n#62199E #A91ABF\n.011.\n01111\n01111\n01.01\n01...\n\nPlayerx2\n#62199E #A91ABF\n.011.\n01111\n01111\n01.01\n01...\n\n\n\nCrate\n#BA4D0E #91290D #F99807\n.222.\n10022\n10002\n11002\n.111.\n\nfireCrate1\n#BA4D0E #91290D #F99807 red yellow\n.3.3.\n10022\n10002\n11002\n.111.\n\nfireCrate2\n#BA4D0E #91290D #F99807 red yellow\n..3..\n.343.\n10002\n11002\n.111.\n\nfireCrate3\n#BA4D0E #91290D #F99807 red yellow\n.3.3.\n34343\n43434\n11002\n.111.\n\nfireCrate4\n#BA4D0E #91290D #F99807 red yellow\n..3..\n.343.\n34343\n43434\n.111.\n\n\n(\nfireper1\nred yellow\n.0.0.\n01010\n10101\n01010\n.010.\n\nfireper2\nred yellow\n..0..\n.010.\n01010\n10101\n.101.\n)\n\nfireper1\nred yellow\n00000\n01110\n01010\n01110\n00000\n\nfireper2\nred yellow\n00000\n00000\n00100\n00000\n00000\n\nfireper1x\nred yellow\n00000\n01110\n01010\n01110\n00000\n\nfireper2x\nred yellow\n00000\n00000\n00100\n00000\n00000\n\nfireper1xx\nred yellow\n00000\n01110\n01010\n01110\n00000\n\nfireper2xx\nred yellow\n00000\n00000\n00100\n00000\n00000\n\nfirex1\nred \n\n\nfirex2\nred\n\nfirex3\nred \n\n\nfirex4\nred\n\nfirex5\nred \n\nfirex6\nred\n\nash\nblack #333333\n.....\n.....\n..1..\n.011.\n00001\n\npit\nblack #7F370B\n11111\n11111\n00000\n00000\n00000\n\n\nbarrel\nred #444444 black yellow\n.0.0.\n.303.\n.211.\n.211.\n.222.\n\nbarrel1\nred #444444 black yellow\n..0..\n.030.\n.211.\n.211.\n.222.\n\nbarrelx1\nred \n\n\nbarrelx2\nred \n\nendflame\nblack \n.....\n.....\n.....\n.....\n.....\n\nflametrigger\nblack \n.....\n.....\n.....\n.....\n.....\n\nend1\nblack \n.....\n.....\n.....\n.....\n.....\n\nend2\nblack \n.....\n.....\n.....\n.....\n.....\n\nend3\nblack \n.....\n.....\n.....\n.....\n.....\n\nsrs\nblack \n.....\n.....\n.....\n.....\n.....\n\nbedup\nwhite #D7D7D7 #99122D #EE1C24 \n00000\n00000\n11111\n23333\n23333\n\nbeddown\nwhite #D7D7D7 #99122D #EE1C24 \n23333\n23333\n23333\n23333\n22222\n\ntable \n#FFC300 #BA6803 #FFF465\n22222\n00000\n0...0\n0...0\n0...0\n\nchair\n #BA6803 #FFC300 #FFF465\n.2...\n.2...\n.2...\n.211.\n.2.1.\n\nchair2\n #BA6803 #FFC300 #FFF465\n...2.\n...2.\n...2.\n.112.\n.1.2.\n\ncupboard\n#FFC300 #BA6803 black #FFF465\n.333.\n10003\n10003\n11110\n0...0\n=======\nLEGEND\n=======\n\n(Player = Player1 or fireper1x)\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\n(O = endarea)\ne = Target\n\nf = fireper1\nk = fireper2\n\nw = woodwall\nr=woodwallx\nd = pit\nj= filledground\nl = filledground and player\ng = pit and Target\nb=barrel\nx=barrel1\nt=barrel1 and target\na=ash\no=ash and player\n\ny=endflame and filledground\n%=endflame and filledground and end1 and flametrigger and srs\ni=endflame and filledground and flametrigger\nq=filledground and endflame and player\nu=filledground and target\n\nn=bedup\nm=beddown\nz=table and filledground\nc=chair and filledground\nh=chair2 and filledground\n&=cupboard and filledground\n\n\n=======\nSOUNDS\n=======\n\nplayer MOVE 35431509(97509308)\nbarrel MOVE 61477902\nbarrel1 MOVE 61477902\n\n\nCrate MOVE 36772507\n\nsfx1 2322302 (flame)\nsfx2 78713302(5964902) (woodwall flame)\nsfx3 47353904 (pit fill)\n\nsfx4 77411903 (test sound)\n\nshowmessage 42200307\nclosemessage 42200307\n\nstartgame 9611309\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nfilledground\nTarget(, endarea)\nflametrigger\nash,endflame\nPlayer,player1, Wall, woodwall,woodwallx, Crate, fireper1,fireper2,firex3,firex4,firex1,firex2,playerx1,playerx2,pit,barrel,barrel1,barrelx1,barrelx2,firecrate1,firecrate2,firecrate3,firecrate4,bedup,beddown,table,chair,chair2,cupboard\nend1,end2,end3\nfireper1x,fireper2x,fireper1xx,fireper2xx,firex5,firex6\nsrs\n\n======\nRULES\n======\n\n\n([> player][ player1] -> [> player] [> player1])\n\n(Horizontal [< player] -> [< player1]))\n\n[flametrigger|player] [ woodwallx] ->[flametrigger|player] [fireper1x]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n([ > Player1 | Crate ] -> [ > Player1 | > Crate ])\n\n[ > Player | barrel ] -> [ > Player | > barrel ]\n[ > Player | barrel1 ] -> [ > Player | > barrel1 ]\n\n[ > Player | firecrate1 ] -> [ > Player | > firecrate1 ] \n[ > Player | firecrate2 ] -> [ > Player | > firecrate2 ] \n[ > Player | firecrate3 ] -> [ > Player | > firecrate3 ] \n[ > Player | firecrate4 ] -> [ > Player | > firecrate4 ]\n\n[> crate | pit]-> [|filledground] sfx3\n[> firecrate1 | pit]-> [|filledground]sfx3\n[> firecrate2 | pit]-> [|filledground]sfx3\n[> firecrate3 | pit]-> [|filledground]sfx3\n[> firecrate4 | pit]-> [|filledground]sfx3\n\n(ee\n[> crate | pitx]-> [|filledground] sfx3\n[> firecrate1 | pitx]-> [|filledground]sfx3\n[> firecrate2 | pitx]-> [|filledground]sfx3\n[> firecrate3 | pitx]-> [|filledground]sfx3\n[> firecrate4 | pitx]-> [|filledground]sfx3\n)\n[player|fireper1x]->[|fireper1x]\n[player|fireper2x]->[|fireper2x]\n\n\n[barrel | woodwall] ->[barrel|fireper1]\n[barrel1 | woodwall] ->[barrel1|fireper1]\n\n\n\n[fireper2 | woodwall] ->[fireper2|fireper1]\n[fireper2x | woodwall] ->[fireper2x|fireper1x]\n\n[fireper2x | endflame] ->[fireper2x|fireper1x]\n\n([firecrate1 | woodwall] ->[firecrate1|fireper1])\n([firecrate1 |crate] -> [firecrate1|firecrate1])\n\n[firecrate2 | woodwall] ->[firecrate2|fireper1]\n[firecrate2 |crate] -> [firecrate2|firecrate1]\n\n[firecrate3 | woodwall] ->[firecrate3|fireper1]\n[firecrate3 |crate] -> [firecrate3|firecrate1]\n\n[firecrate4 | woodwall] ->[firecrate4|fireper1]\n[firecrate4 |crate] -> [firecrate4|firecrate1]\n\n(\n[Action Player | crate] -> [Action Player |fire]\n[Action Player1 | crate] -> [Action Player1 |fire])\n\n\n\nlate [end3|fireper1x]-> [target|player]\nlate [srs|target] -> [fireper1xx|target]\n\nlate [end2] -> [end3]\nlate [end1|fireper2x]->[end2|fireper2x]\n\nlate [firecrate4] -> [ash] sfx1\nlate [firecrate3] -> [firecrate4] sfx1\nlate [firecrate2] -> [firecrate3] sfx1\nlate [firecrate1] -> [firecrate2] sfx1\n\nlate [barrel|crate] -> [barrel|firecrate1] sfx1\nlate [barrel1|crate] -> [barrel1|firecrate1] sfx1\n\nlate [fireper2 |crate] -> [fireper2|firecrate1] sfx1\nlate [fireper1 |crate] -> [fireper1|firecrate1] sfx1\n\nlate [fireper1] -> [firex1]\nlate [fireper2] -> [firex2]\nlate [firex1] -> [fireper2] \nlate [firex2] -> [fireper1] \n\nlate [fireper1x] -> [firex3]\nlate [fireper2x] -> [firex4]\nlate [firex3] -> [fireper2x] \nlate [firex4] -> [fireper1x] \n\nlate [fireper1xx] -> [firex5]\nlate [fireper2xx] -> [firex6]\nlate [firex5] -> [fireper2xx] \nlate [firex6] -> [fireper1xx] \n\nlate [barrel] -> [barrelx1]\nlate [barrel1] -> [barrelx2]\nlate [barrelx1] -> [barrel1]\nlate [barrelx2] -> [barrel]\n(\nlate [player] -> [playerx1]\nlate [player1] -> [playerx2]\nlate [playerx1] -> [player1]\nlate [playerx2] -> [player])\n\n==============\nWINCONDITIONS\n==============\n\nsome Player on target\n\n(some Player1 on target)\n(All Player on endarea)\n\n=======\nLEVELS\n=======\n\nmessage zzz..z.zz\n\nmessage z.zzzz.z.z\n\nmessage zz.zz..z.z\n\nmessage z....(blink) (blink)\n\n..........\n.wwwwwwww.\n.wnjjj&jw.\n.wmljjjjw#\n.wjjjjjjje\n.wjczhjjw#\n.wjjjjjjw.\n.wwwwwwww.\n..........\n\n..........\nwwwwwww...\nnjjj&jw..e\nmjjjjjw###\njjjjjjle..\njczhjjw###\njjjjjjw...\nwwwwwww...\n..........\n\n..........\nwwwww.....\njj&jw..e..\njjjjw#####\njjjjjpe...\nzhjjw#####\njjjjw.....\nwwwww.....\n..........\n\n........##\nwww.....#.\n&jw.....#.\njjw######.\njjj.pe....\njjw######b\njjw.....#.\nwww.....#.\n........##\n\n......####\nw.....#...\nw.....#...\nw######...\nj..pee....\nw######x.*\nw.....#...\nw.....#.##\n......####\n\nmessage so I am on a journey to ignite the flames\n\n....######\n....#...##\n....#....#\n#####....*\n..pe.....#\n#####b.*.#\n....#...##\n....#.####\n....######\n\n..########\n..#...####\n..#....###\n###....**#\n.pe....#..\n###x.*.#..\n..#...##..\n..#.####..\n..########\n\n##########\n#...######\n#....#####\n#....**###\npe...#...#\n#b.*.#...#\n#...##...e\n#.####...#\n##########\n\nmessage 1 of 10\n\n##########\n#...######\n#....#####\n#....**###\n.p...#...#\n#b.*.#...#\n#...##...e\n#.####...#\n##########\n\n(move)\n########..\n..######..\n...#####..\n..aaa###..\n...#...#..\n...#...###\n..##...pe.\n####...##.\n##########\n\n######....\n######....\n.#####....\naaa###....\n.#...#....\n.#...####.\n##....pe##\n##...##...\n##########\n\n####......\n####......\n####......\na###......\n...#......\n...####...\n.....p####\n...##.e...\n##########\n\n##......##\n##......#w\n##......#w\n##......#.\n.#......#.\n.####...#.\n....######\n.##.pe....\n##########\n\nmessage even though the fire fills me with terror\n\n......####\n......#www\n......#www\n......#...\n......#..*\n###...#...\n..######..\n#..pe....#\n##########\n\n....######\n....#www##\n....#wwwww\n....#.....\n....#..*..\n#...#...x.\n######..##\n..pe...###\n##########\n\n..########\n..#www##.*\n..#wwwwwdw\n..#.....b.\n..#..*....\n..#...b..#\n####..####\n.pe..#####\n##########\n\n##########\n#www##.*d.\n#wwwwwdw##\n#.....x.##\n#..*....##\n#...x..###\n##..######\npe.#######\n##########\n\nmessage 2 of 10\n##########\n#www##.*de\n#wwwwwdw##\n#.....b.##\n#..*....##\n#...b..###\n##..######\n.p.#######\n##########\n\n(move)\n\n##########\nkf##..jpe.\nfkfkjw####\n......##..\n......##..\n.....###..\n.x######..\n.#######..\n########..\n\n##########\n##..j.pe..\nkfjw#####.\n....##..#.\n....##..#.\n...###..#.\n######..#.\n######..#.\n######..##\n\n#########.\n..j..pe.#.\njw#####.#.\n..##..#.#.\n..##..#.#.\n.###..#.#.\n####..#.##\n####..#...\n####..####\n\n#######.#w\nj...pe#.#w\n#####.#.ww\n##..#.#.ww\n##..#.#.ww\n##..#.#.ww\n##..#.##w.\n##..#.....\n##..######\n\n\nmessage I was scared by what the fire could seem to claim\n\n#####.#www\n...p#.#w..\n###.#.ww.w\n..#.#.ww..\n..#.#.ww.w\n..#.#.ww.w\n..#.##w.*w\n..#.e.....\n..########\n\n\n###.#wwwww\n..#.#w....\n#.#.ww.www\n#.#.ww....\n#.#.ww.www\n#.#.ww.w..\n#.##w.*www\n#.pee.....\n##########\n\n\n#.#wwwwwww\n#.#w....*.\n#.ww.wwww.\n#.ww....w.\n#.ww.wwww.\n#.ww.w....\n##w.*www..\n.pe.......\n##########\n\n#wwwwwww##\n#w....*..g\nww.wwww..#\nww....w..#\nww.wwww..#\nww.w.....#\nw.*www.b.#\npe.......#\n##########\n\nmessage 3 of 10\n#wwwwwww##\n#w....*..g\nww.wwww..#\nww....w..#\nww.wwww..#\nww.w.....#\nw.*www.b.#\n.p.......#\n##########\n\n(move)\nfkfkfk####\n.......le.\n.kfkf..###\na...k..#..\n.kfkf..#..\n.f.....#..\n.kfk...#..\n.......#..\n########..\n\nkfkf######\n.....jpe..\nkfk..#####\n..f..#...#\nkfk..#....\n.....#....\nkf...#....\n.....#....\n######....\n\nfk########\n...j.pe..#\nf..#####..\nk..#...###\nf..#......\n...#......\n...#......\n...#......\n####......\n\n##########\n.j..pe.##.\n.#####....\n.#...####.\n.#......#.\n.#......#.\n.#......#.\n.#......#.\n##......##\n\nmessage all my excuses made the fire seem scarier\n\n##########\n...pe##...\n####.....w\n...####...\n......#..w\n......#.**\n......#..w\n......#..w\n......####\n\n##########\n..p##.....\n##.e...www\n.####.....\n....#..w.#\n....#.**..\n....#..w..\n....#..ww.\n....######\n\n##########\n.##.......\n.pe..wwww.\n###.......\n..#..w.###\n..#.**..##\n..#..w..b.\n..#..ww...\n..########\n\n##########\n#.......##\npe.wwww.*e\n#........#\n#..w.###.#\n#.**..##.#\n#..w..b..#\n#..ww....#\n##########\n\nmessage 4 of 10\n##########\n#.......##\n.p.wwww.*e\n#........#\n#..w.###.#\n#.**..##.#\n#..w..b..#\n#..ww...##\n##########\n\n(move)\n########..\n......####\n.kfkf..pe.\n..a...a###\n.k.###.#..\n...b##.#..\n.w.....#..\n.ww...##..\n########..\n\n\n######....\n....######\nkfk..ape..\na...a#####\n.###.#...#\n.x##.#...#\n.....#...#\nw...##....\n######....\n\n\n####......\n..########\nf..a.pe..#\n..a#####.#\n##.#...#.#\n##.#...#..\n...#...###\n..##......\n####......\n\n\n##......##\n##########\n.a..pe.###\na#####.##.\n.#...#.##.\n.#...#....\n.#...#####\n##......##\n##......##\n\nmessage I avoided the flames until it was too much to bear\n\n......###w\n########*.\n...pe###..\n####.##...\n...#.##.*.\n...#......\n...######.\n......###.\n......####\n\n....###www\n######*...\n..p###..ww\n##.##....w\n.#.##.*.*w\n.#.e......\n.######.*.\n....###...\n....######\n\n..###wwwww\n####*...d.\n.###..wwww\n.##....www\n.##.*.*www\n.pe......w\n#####.*.b.\n..###.....\n..########\n\n###wwwwww#\n##*...d..g\n##..wwwwww\n#....wwww#\n#.*.*wwww#\npe.....ww#\n###.*.x.w#\n###.....w#\n##########\n\nmessage 5 of 10\n###wwwwww#\n##*...d..g\n##..wwwwww\n#....wwww#\n#.*.*wwww#\n.P.....ww#\n###.*.b.w#\n###.....w#\n##########\n(move)\n\n#wwwwww###\na...j..le.\na.wwwwww##\n...wwww#..\n...wwww#..\n.....ww#..\n#.....w#..\n#.....w#..\n########..\n\nwwwww#####\n..j..jpe..\nwwwwww####\n.wwww#...#\n.wwww#...#\n...ww#...#\n....w#...#\n....w#...#\n######....\n\nwww#######\nj..j.pe..#\nwwww####.#\nwww#...#.#\nwww#...#.#\n.ww#...#.#\n..w#...#..\n..w#...###\n####......\n\nw#########\n.j..pe.###\nww####.##.\nw#...#.##.\nw#...#.##.\nw#...#.##.\nw#...#....\nw#...####.\n##......##\n\nmessage now its time to start controlling the fire\n\n##########\n...pe###..\n####.##...\n...#.##...\n...#.##...\n...#.##...\n...#......\n...####.b.\n......####\n\n##########\n..p###....\n##.##.....\n.#.##.....\n.#.##...##\n.#.##...##\n.#.e.....#\n.####.x..#\n....######\n\n##########\n.###......\n.##.....*.\n.##......*\n.##...##*.\n.##...##.*\n.pe....#*.\n###.b..#..\n..########\n\n##########\n##......##\n#.....*..#\n#......*.#\n#...##*..#\n#...##.*.#\npe...#*..#\n#.x..#..*e\n##########\n\nmessage 6 of 10\n##########\n##......##\n#.....*..#\n#......*.#\n#...##*..#\n#...##.*.#\n.p...#*..#\n#.b..#..*e\n##########\n\n(move)\n########..\n.a....##..\n.....a.#..\n.......#..\na.##...#..\n..##a..#..\n...#...###\n...#.a.oe.\n##########\n\n######....\n....##....\n...a.#....\n.....#....\n##...#...#\n##a..#...#\n.#...#####\n.#.a.ape..\n##########\n\n####......\n..##......\n.a.#......\n...#......\n...#...###\na..#...#..\n...#####.#\n.a.a.pe..#\n##########\n\n##......##\n##......##\n.#......##\n.#......##\n.#...####.\n.#...#....\n.#####.##.\n.a..pe.###\n##########\n\nmessage now its time to get ready and prepare\n\n......####\n......####\n......####\n......##..\n...####...\n...#....b.\n####.##...\n...pe###..\n##########\n\n....######\n....#####*\n....####..\n....##..*.\n.####...w.\n.#.e..x.*.\n##.##...w.\n..p###....\n##########\n\n..########\n..#####*.d\n..####...#\n..##..*...\n###...w...\n.pe.b.*.*.\n.##...w...\n.###.....#\n##########\n\n##########\n#####*.ddg\n####...###\n##..*...##\n#...w...##\npex.*.*.##\n#...w...##\n##.....###\n##########\n\nmessage 7 of 10\n##########\n#####*.ddg\n####...###\n##..*...##\n#...w...##\n.pb.*.*.##\n#...w...##\n##.....###\n##########\n(move)\n\n##########\n###a.jjle.\n##b..#####\n......##..\n..f...##..\n......##..\n..w...##..\n.....###..\n########..\n\n##########\n#a.jjjpe..\nx..#######\n....##...#\nk...##...#\n....##...#\nw...##...#\n...###....\n######....\n\n##########\n.jjj.pee.#\n.#######.#\n..##...#.#\n..##...#.#\n..##...#..\n..##...###\n.###......\n####......\n\n########ww\njj..pe.#w#\n######.#w#\n##...#.#ww\n##...#.###\n##...#....\n##...####.\n##......##\n##......##\n\nmessage the time is gone to just aspire\n\n######wwww\n...pe#w##.\n####.#w##.\n...#.#www.\n...#.###w.\n...#...b..\n...####...\n......##..\n......####\n\n####wwwwww\n..p#w##...\n##.#w##...\n.#.#www.*.\n.#.###w...\n.#.e.x....\n.####.....\n....##....\n....######\n\n##wwwwwwww\n.#w##.....\n.#w##.....\n.#www.*.*.\n.###w.....\n.peb......\n###......d\n..##....dd\n..########\n\nwwwwwwwwww\nw##......w\nw##......w\nwww.*.*..w\n##w......w\npt.......w\n#......dww\n##....dd*g\n##########\n\nmessage 8 of 10\nwwwwwwwwww\nw##......w\nw##......w\nwww.*.*..w\n##w......w\n.pb......w\n#......dww\n##....dd*g\n##########\n\n(move)\n\nfkfkfkfk..\n#......f..\n#......k..\nk......f..\nf......k..\n.b.....f..\n.....jfk##\n....dj.le.\n##########\n\nkfkfkf....\n.....k....\n.....f....\n.....k...#\n.....f...#\n.....k...#\n...jkf####\n..dj.jpe..\n##########\n\nfkfk......\n...f......\n...k......\n...f...###\n...k...#..\n...f...#.#\n.jfk####.#\ndj.j.pe..#\n##########\n\nkf......##\n.k......##\n.f......##\n.k...####.\n.f...#....\n.k...#.##.\nkf####.###\n.j..pe.###\n##########\n\nmessage no more excuses for playing unnecessary games\n\n......####\n......###b\n......###.\n...####...\n...#......\n...#.##...\n####.####.\n...pe####.\n##########\n\n....######\n....###b#.\n....###...\n.####.....\n.#.e.....*\n.#.##...**\n##.####..*\n..p####...\n##########\n\n..########\n..###b#..#\n..###.....\n###.......\n.pe....***\n.##...**.*\n.####..***\n.####...wd\n########ww\n\n##########\n###b#..###\n###.....##\n#........#\npe...***.#\n#...**.*.#\n###..***w#\n###...wd*e\n######www#\n\nmessage 9 of 10\n##########\n###b#..###\n###.....##\n#........#\n.p...***.#\n#...**.*.#\n###..***w#\n###...wd*e\n######www#\n\n(move)\n\n########..\n#b#..###..\n#aa...##..\n.....a.#..\n....aa.#..\n....a..#..\n#...a.f###\n#...kj.oe.\n####fkf###\n\n######....\n#..###....\na...##....\n...a.#....\n..aa.#....\n..a..#...#\n..a.k#####\n..fj.ape..\n##kfk#####\n\n####......\n.###......\n..##......\n.a.#......\naa.#......\na..#...###\na.f#####..\nkj.a.pe..#\nfkf#######\n\n##......##\n##......##\n##......##\n.#......##\n.#......#.\n.#...####.\nk#####....\n.a..pe.###\nk#########\n\nmessage I will avoid my fears\n\n......####\n......####\n......####\n......###.\n......#...\n...####...\n####....*.\n...pe###..\n##########\n\n....######\n....####bb\n....####bb\n....###.bb\n....#....b\n.####...b.\n##.e..*..b\n..p###..bb\n##########\n\n..########\n..####xx..\n..####xx.x\n..###.xx.x\n..#....x..\n###...x.xx\n.pe.*..x..\n.###..xx##\n##########\n\n##########\n####bb..de\n####bb.b.w\n###.bb.b.w\n#....b...w\n#...b.bb.w\npe*..b...w\n##..bb####\n##########\n\nmessage 10 of 10\n##########\n####bb..de\n####bb.b.w\n###.bb.b.w\n#....b...w\n#...b.bb.w\n.p*..b...w\n##..bb####\n##########\n\n(move)\n##########\n##xx..jpe.\n##xx..xk##\n#xxx...f.#\nx......k.#\n......xf.#\n.....xxk.#\n..xx####.#\n########.#\n\n##########\nbb..j.pe.#\nbb..bf##.#\nbb...k.#.#\n.....f.#.#\n....bk.#.#\n...bbf.#.#\nbb####.#.#\n######.#.#\n\n########..\n..j..pe#..\n..xk##.#..\n...f.#.#..\n...k.#.#..\n..xf.#.#..\n.xxk.#.#..\n####.#.#..\n####.#.#..\n\n\n######....\nj...p#....\nbf##e#....\n.k.#.#....\n.f.#.#....\nbk.#.#....\nbf.#.#....\n##.#.#....\n##.#.#....\n\nxk##p#....\n.f.#e#....\n.k.#.#....\nxf.#.#....\nxk.#.#....\n##.#.#....\n##.#.#....\n...#.#....\nwwwwywwwww\n\n.k.#p#....\n.f.#e#....\nbk.#.#....\nbf.#.#....\n##.#.#....\n##.#.#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\n \n message I will be consumed by these flames\n \n.k.#p#....\nxf.#e#....\nxk.#.#....\n##.#.#....\n##.#.#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\n\n\nbk.#p#....\nbf.#e#....\n##.#.#....\n##.#.#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\n\nxk.#p#....\n##.#e#....\n##.#.#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\n\n##.#p#....\n##.#e#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\n##.#p#....\n...#e#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\n...#p#....\nwwwwuwwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\nrwwwqwwwwr\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwiii%%iiiw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nrwwwwwwwwr\n\n\n message I will become more than I am\nmessage THE END\n(\n#www######\n#*.wwwwww#\n#.d...d.de\n#p.###b.b#\n#...##...#\n#.b....*.#\n##..*.*..#\n#####...##\n##########)\n(\n##########\n##.*.....@\n#..wwww.##\n#p.ww...##\n#.....*.##\n#.*.www.##\n#...###w##\n##.b.www##\n####www###)\n\n\n\n\n\n", [3, 0, 0, 3, 3, 0, 3, 3, 2, 2], "background wall:0,0,0,0,0,background:1,0,0,0,0,\n0,0,0,1,1,1,0,0,0,0,\n0,1,1,1,1,1,0,0,0,0,\n1,1,background barrel:2,1,1,0,0,0,1,1,\nbackground fireper1:3,ash background:4,3,1,0,0,background crate:5,1,4,1,\n1,1,1,0,0,1,1,1,background player:6,5,\n1,1,0,0,background pit:7,0,1,1,1,1,\n0,0,0,7,0,0,0,0,0,0,\n0,0,background pit target:8,0,0,0,0,0,0,0,\n", 80, "1627779570245.4102"] ], [ `gallery: Watch Your Step`, - ["title Watch Your Step\nauthor Aaron Steed\nhomepage www.puzzlescript.net\nrequire_player_movement\n\n========\nOBJECTS\n========\n\nBackground\n#2c2c2c #4f4f4f #ff0000 #ff0000 \n11110\n11111\n11111\n11110\n11100\n\nFloor0\n#ff0202 #ffc680 #ff952b #400040 \n.....\n..2..\n..0..\n.....\n.....\n\nFloor1\n#ff0202 #ffc680 #ff952b #400040 \n.2...\n.0...\n...2.\n...0.\n.....\n\nFloor2\n#ff0202 #ffc680 #ff952b #400040 \n.2...\n.01..\n..02.\n...0.\n.....\n\nFloor3\n#ff0202 #ffc680 #ff952b #400040 \n.2.2.\n.0.0.\n.2.2.\n.0.0.\n.....\n\nFloor4\n#ff0202 #ffc680 #ff952b #400040 \n.2.2.\n.010.\n.202.\n.0.0.\n.....\n\nTarget \n#2c2c2c #000000 #000040 #ff0000 \n02112\n21111\n11111\n11111\n21112\n\nWall \n#808080 #c0c0c0 #ff0000 #ff0000 \n11110\n11111\n11110\n11110\n01000\n\nPlayer\n#ffffff #c0c0c0 #000000 #ff0000 \n.000.\n00000\n02020\n00001\n11111\n\nCrate0\n#ff0202 #ffc680 #ff952b #000000 \n11111\n12220\n12320\n12220\n00000\n\nCrate1\n#ff0202 #ffc680 #ff952b #000000 \n11111\n13220\n12220\n12230\n00000\n\nCrate2\n#ff0202 #ffc680 #ff952b #000000 \n11111\n13220\n12320\n12230\n00000\n\nCrate3\n#ff0202 #ffc680 #ff952b #000000 \n11111\n13230\n12220\n13230\n00000\n\nCrate4\n#ff0202 #ffc680 #ff952b #000000 \n11111\n13230\n12320\n13230\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n0 = Crate0\n1 = Crate1\n2 = Crate2\n3 = Crate3\n4 = Crate4\n* = Target\n\nCrate = Crate0 or Crate1 or Crate2 or Crate3 or Crate4\nFloor = Floor0 or Floor1 or Floor2 or Floor3 or Floor4\nObject = Crate or Player or Wall\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFloor\nTarget\nPlayer, Wall, Crate \n\n======\nRULES \n====== \n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Crate0 | Crate0 ] -> [ | Crate1 ]\n[ > Crate1 | Crate1 ] -> [ | Crate2 ]\n[ > Crate2 | Crate2 ] -> [ | Crate3 ]\n[ > Crate3 | Crate3 ] -> [ | Crate4 ]\n\nlate [Floor4 no Object] -> [no Floor Crate0]\n\nlate [Floor3 no Object] -> [Floor4 no Object]\n[Floor2 no Object] -> [Floor3 no Object]\n[Floor1 no Object] -> [Floor2 no Object]\n[Floor0 no Object] -> [Floor1 no Object]\n[Player no Floor] -> [Player Floor0]\n\n==============\nWINCONDITIONS\n==============\n\nAny Crate4\n\n======= \nLEVELS\n=======\n\nmessage each step you take leaves a seed that grows into a no 1 crate\n\nmessage push two crates of the same number together to make a higher number crate\n\nmessage make a no 5 crate\n\n#########\n#.......#\n#.......#\n#.......#\n#...p...#\n#.......#\n#.......#\n#.......#\n#########\n\nmessage well done, I couldn't be bothered to find out myself, do let me know\n",[3,3,2,1,1,0,0,3,3],"background wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,0,\n0,1,background crate0:2,background floor1:3,background floor2:4,background floor4:5,1,1,0,\n0,1,1,background floor0:6,2,2,1,1,0,\n0,1,1,background player:7,2,2,1,1,0,\n0,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n",3,"1627779589660.2917"] + ["title Watch Your Step\nauthor Aaron Steed\nhomepage www.puzzlescript.net\nrequire_player_movement\n\n========\nOBJECTS\n========\n\nBackground\n#2c2c2c #4f4f4f #ff0000 #ff0000 \n11110\n11111\n11111\n11110\n11100\n\nFloor0\n#ff0202 #ffc680 #ff952b #400040 \n.....\n..2..\n..0..\n.....\n.....\n\nFloor1\n#ff0202 #ffc680 #ff952b #400040 \n.2...\n.0...\n...2.\n...0.\n.....\n\nFloor2\n#ff0202 #ffc680 #ff952b #400040 \n.2...\n.01..\n..02.\n...0.\n.....\n\nFloor3\n#ff0202 #ffc680 #ff952b #400040 \n.2.2.\n.0.0.\n.2.2.\n.0.0.\n.....\n\nFloor4\n#ff0202 #ffc680 #ff952b #400040 \n.2.2.\n.010.\n.202.\n.0.0.\n.....\n\nTarget \n#2c2c2c #000000 #000040 #ff0000 \n02112\n21111\n11111\n11111\n21112\n\nWall \n#808080 #c0c0c0 #ff0000 #ff0000 \n11110\n11111\n11110\n11110\n01000\n\nPlayer\n#ffffff #c0c0c0 #000000 #ff0000 \n.000.\n00000\n02020\n00001\n11111\n\nCrate0\n#ff0202 #ffc680 #ff952b #000000 \n11111\n12220\n12320\n12220\n00000\n\nCrate1\n#ff0202 #ffc680 #ff952b #000000 \n11111\n13220\n12220\n12230\n00000\n\nCrate2\n#ff0202 #ffc680 #ff952b #000000 \n11111\n13220\n12320\n12230\n00000\n\nCrate3\n#ff0202 #ffc680 #ff952b #000000 \n11111\n13230\n12220\n13230\n00000\n\nCrate4\n#ff0202 #ffc680 #ff952b #000000 \n11111\n13230\n12320\n13230\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n0 = Crate0\n1 = Crate1\n2 = Crate2\n3 = Crate3\n4 = Crate4\n* = Target\n\nCrate = Crate0 or Crate1 or Crate2 or Crate3 or Crate4\nFloor = Floor0 or Floor1 or Floor2 or Floor3 or Floor4\nObject = Crate or Player or Wall\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFloor\nTarget\nPlayer, Wall, Crate \n\n======\nRULES \n====== \n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Crate0 | Crate0 ] -> [ | Crate1 ]\n[ > Crate1 | Crate1 ] -> [ | Crate2 ]\n[ > Crate2 | Crate2 ] -> [ | Crate3 ]\n[ > Crate3 | Crate3 ] -> [ | Crate4 ]\n\nlate [Floor4 no Object] -> [no Floor Crate0]\n\nlate [Floor3 no Object] -> [Floor4 no Object]\n[Floor2 no Object] -> [Floor3 no Object]\n[Floor1 no Object] -> [Floor2 no Object]\n[Floor0 no Object] -> [Floor1 no Object]\n[Player no Floor] -> [Player Floor0]\n\n==============\nWINCONDITIONS\n==============\n\nAny Crate4\n\n======= \nLEVELS\n=======\n\nmessage each step you take leaves a seed that grows into a no 1 crate\n\nmessage push two crates of the same number together to make a higher number crate\n\nmessage make a no 5 crate\n\n#########\n#.......#\n#.......#\n#.......#\n#...p...#\n#.......#\n#.......#\n#.......#\n#########\n\nmessage well done, I couldn't be bothered to find out myself, do let me know\n", [3, 3, 2, 1, 1, 0, 0, 3, 3], "background wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,0,\n0,1,background crate0:2,background floor1:3,background floor2:4,background floor4:5,1,1,0,\n0,1,1,background floor0:6,2,2,1,1,0,\n0,1,1,background player:7,2,2,1,1,0,\n0,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n", 3, "1627779589660.2917"] ], [ `gallery: Spikes 'n' Stuff`, - ["title Spikes 'n' Stuff\n\nauthor Alan Hazelden\n\n(verbose_logging)\n\nagain_interval 0.05\nrealtime_interval 0.05\n\nflickscreen 11x11\n\nnoaction\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\n\nBackground\nDARKBLUE BLACK\n11111\n01111\n11101\n11111\n10111\n\nWall\n#767d80 #697175\n00111\n11101\n01001\n11110\n10011\n\nTarget\ntransparent\n(DarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....)\n\nExit\ntransparent\n\nArrowTrapUpReady\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n.123.\n0.2.4\n..2..\n..2..\n\nArrowTrapUpArmed\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n.153.\n0.5.4\n..5..\n..2..\n\nArrowTrapUpFired\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n01234\n..2..\n..2..\n..2..\n\nArrowTrapUpFired2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n.123.\n0.2.4\n..2..\n..2..\n\nArrowTrapUpFired3\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.....\n..2..\n.123.\n0.2.4\n..2..\n\nArrowTrapUpRearming\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.....\n.....\n..2..\n.123.\n0.2.4\n\nArrowTrapUpRearming2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.....\n..2..\n.123.\n0.2.4\n..2..\n\nArrowTrapDownReady\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n..2..\n0.2.4\n.123.\n..2..\n\nArrowTrapDownArmed\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n..5..\n0.5.4\n.153.\n..2..\n\nArrowTrapDownFired\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n..2..\n..2..\n01234\n..2..\n\nArrowTrapDownFired2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n..2..\n0.2.4\n.123.\n..2..\n\nArrowTrapDownFired3\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n0.2.4\n.123.\n..2..\n.....\n\nArrowTrapDownRearming\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n0.2.4\n.123.\n..2..\n.....\n.....\n\nArrowTrapDownRearming2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n0.2.4\n.123.\n..2..\n.....\n\nArrowTrapLeftReady\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n.1...\n22222\n.3...\n..4..\n\nArrowTrapLeftArmed\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n.1...\n25552\n.3...\n..4..\n\nArrowTrapLeftFired\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.0...\n.1...\n22222\n.3...\n.4...\n\nArrowTrapLeftFired2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n.1...\n22222\n.3...\n..4..\n\nArrowTrapLeftFired3\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n...0.\n..1..\n.2222\n..3..\n...4.\n\nArrowTrapLeftRearming\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n....0\n...1.\n..222\n...3.\n....4\n\nArrowTrapLeftRearming2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n...0.\n..1..\n.2222\n..3..\n...4.\n\nArrowTrapRightReady\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n...1.\n22222\n...3.\n..4..\n\nArrowTrapRightArmed\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n...1.\n25552\n...3.\n..4..\n\nArrowTrapRightFired\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n...0.\n...1.\n22222\n...3.\n...4.\n\nArrowTrapRightFired2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n...1.\n22222\n...3.\n..4..\n\nArrowTrapRightFired3\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.0...\n..1..\n2220.\n..3..\n.4...\n\nArrowTrapRightRearming\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n0....\n.1...\n222..\n.3...\n4....\n\nArrowTrapRightRearming2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.0...\n..1..\n2220.\n..3..\n.4...\n\n(#524432 #4d4030 #4a3c2c #443929 #403527)\n\nPlayer\n#a46422 #495e2b #493c2b #000000\n..0..\n.111.\n01110\n02220\n.2.2.\n\nPlayerDead\n#a46422 #495e2b #493c2b black white\n..00.\n.1122\n0112.\n.1122\n..00.\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\nGem\nYellow White Orange\n.000.\n01100\n01000\n00002\n.022.\n\nGemBroken\nYellow White Orange black\n.000.\n.313.\n01.0.\n03002\n..22.\n\nNoPattern\nblack\n\nSpikeTrap\ntransparent darkgreen black\n00000\n01210\n02220\n01210\n00000\n\nSpikeTrapArmed\ntransparent white transparent grey\n00000\n01210\n02220\n01210\n00000\n\nSpikeTrapDeadly\ntransparent white transparent grey\n01010\n03230\n01210\n03230\n00000\n\nArrowUp\nwhite\n.....\n..0..\n..0..\n..0..\n.....\n\nArrowDown\nwhite\n.....\n..0..\n..0..\n..0..\n.....\n\nArrowLeft\nwhite\n.....\n.....\n.000.\n.....\n.....\n\nArrowRight\nwhite\n.....\n.....\n.000.\n.....\n.....\n\nArrowCollision\nwhite\n.....\n..0..\n.000.\n..0..\n.....\n\nArrowCollision2\nwhite\n...0.\n.....\n.0...\n....0\n.....\n\nLOS\nwhite\n\nWallL\n#373c3f\n0....\n0....\n0....\n0....\n0....\n\nWallR\n#373c3f\n....0\n....0\n....0\n....0\n....0\n\nWallU\n#373c3f\n00000\n.....\n.....\n.....\n.....\n\nWallD\n#373c3f\n.....\n.....\n.....\n.....\n00000\n\nWallLR\n#373c3f\n0...0\n0...0\n0...0\n0...0\n0...0\n\nWallUD\n#373c3f\n00000\n.....\n.....\n.....\n00000\n \nWallUL\n#373c3f\n0....\n.....\n.....\n.....\n.....\n \nWallUR\n#373c3f\n....0\n.....\n.....\n.....\n.....\n \nWallDL\n#373c3f\n.....\n.....\n.....\n.....\n0....\n \nWallDR\n#373c3f\n.....\n.....\n.....\n.....\n....0\n \nWallDLR\n#373c3f\n.....\n.....\n.....\n.....\n0...0\n \nWallULR\n#373c3f\n0...0\n.....\n.....\n.....\n.....\n \nWallLUD\n#373c3f\n0....\n.....\n.....\n.....\n0....\n \nWallRUD\n#373c3f\n....0\n.....\n.....\n.....\n....0\n\nBloodL1\nred\n.....\n.....\n....0\n.....\n.....\n\nBloodL2\nred\n.....\n....0\n....0\n....0\n.....\n\nBloodL3\nred\n....0\n....0\n....0\n....0\n....0\n\nBloodL4_1\nred\n....0\n....0\n...00\n...00\n....0\n\nBloodL4_2\nred\n....0\n...00\n...00\n....0\n....0\n\nBloodR1\nred\n.....\n.....\n0....\n.....\n.....\n\nBloodR2\nred\n.....\n0....\n0....\n0....\n.....\n\nBloodR3\nred\n0....\n0....\n0....\n0....\n0....\n\nBloodR4_1\nred\n0....\n0....\n00...\n00...\n0....\n\nBloodR4_2\nred\n0....\n0....\n00...\n00...\n0....\n\nBloodU1\nred\n.....\n.....\n.....\n.....\n..0..\n\nBloodU2\nred\n.....\n.....\n.....\n.....\n.000.\n\nBloodU3\nred\n.....\n.....\n.....\n.....\n00000\n\nBloodU4_1\nred\n.....\n.....\n.....\n.00..\n00000\n\nBloodU4_2\nred\n.....\n.....\n.....\n..00.\n00000\n\nBloodD1\nred\n..0..\n.....\n.....\n.....\n.....\n\nBloodD2\nred\n.000.\n.....\n.....\n.....\n.....\n\nBloodD3\nred\n00000\n.....\n.....\n.....\n.....\n\nBloodD4_1\nred\n00000\n..00.\n.....\n.....\n.....\n\nBloodD4_2\nred\n00000\n.00..\n.....\n.....\n.....\n\nBloodD4_3\nred\n00000\n.....\n.....\n.....\n.....\n\nGemMarker\ntransparent\n\n\n=======\nLEGEND\n=======\n\n\n\nArrow = ArrowLeft or ArrowRight or ArrowUp or ArrowDown\nSpikeTrapAny = SpikeTrap or SpikeTrapArmed or SpikeTrapDeadly\n\nArrowTrapReady = ArrowTrapUpReady or ArrowTrapDownReady or ArrowTrapLeftReady or ArrowTrapRightReady\nArrowTrapArmed = ArrowTrapLeftArmed or ArrowTrapRightArmed or ArrowTrapUpArmed or ArrowTrapDownArmed\nArrowTrapRearming = ArrowTrapLeftRearming or ArrowTrapRightRearming or ArrowTrapUpRearming or ArrowTrapDownRearming\nArrowTrapRearming2 = ArrowTrapLeftRearming2 or ArrowTrapRightRearming2 or ArrowTrapUpRearming2 or ArrowTrapDownRearming2\n\nArrowTrapLeftFiredAny = ArrowTrapLeftFired or ArrowTrapLeftFired2 or ArrowTrapLeftFired3\nArrowTrapRightFiredAny = ArrowTrapRightFired or ArrowTrapRightFired2 or ArrowTrapRightFired3\nArrowTrapUpFiredAny = ArrowTrapUpFired or ArrowTrapUpFired2 or ArrowTrapUpFired3\nArrowTrapDownFiredAny = ArrowTrapDownFired or ArrowTrapDownFired2 or ArrowTrapDownFired3\n\nArrowTrapFiredAnim = ArrowTrapLeftFired or ArrowTrapLeftFired2 or ArrowTrapLeftFired3 or ArrowTrapRightFired or ArrowTrapRightFired2 or ArrowTrapRightFired3 or ArrowTrapUpFired or ArrowTrapUpFired2 or ArrowTrapUpFired3 or ArrowTrapDownFired or ArrowTrapDownFired2 or ArrowTrapDownFired3\n\nArrowTrapAny = ArrowTrapReady or ArrowTrapArmed or ArrowTrapRearming or ArrowTrapRearming2 or ArrowTrapFiredAnim\n\nTriggersSpikes = Crate or Gem or Player\nTriggersArrow = Player\nKillable = Player\nNeedsTick = SpikeTrap or SpikeTrapArmed or SpikeTrapDeadly or ArrowTrapAny\n\n\nSolid = Wall or Crate or Gem or ArrowTrapAny\n\n. = Background\n# = Wall\nP = Player and exit\nq = exit\n* = Crate\n(@ = SwitchOff)\nO = Target\n% = SpikeTrap and NoPattern\n~ = Gem and GemMarker\n\ni = ArrowTrapUpReady and NoPattern\n! = ArrowTrapDownReady and NoPattern\n{ = ArrowTrapLeftReady and NoPattern\n} = ArrowTrapRightReady and NoPattern\n\nBloodLeft = BloodL1 or BloodL2 or BloodL3 or BloodL4_1 or BloodL4_2\nBloodRight = BloodR1 or BloodR2 or BloodR3 or BloodR4_1 or BloodR4_2\nBloodUp = BloodU1 or BloodU2 or BloodU3 or BloodU4_1 or BloodU4_2\nBloodDown = BloodD1 or BloodD2 or BloodD3 or BloodD4_1 or BloodD4_2 or BloodD4_3\n\nBloodL4 = BloodL4_1 or BloodL4_2\nBloodR4 = BloodR4_1 or BloodR4_2\nBloodU4 = BloodU4_1 or BloodU4_2\nBloodD4 = BloodD4_1 or BloodD4_2 or BloodD4_3\n\nBloodFinal = BloodL4 or BloodR4 or BloodU4 or BloodD4\n\nBlood = BloodLeft or BloodRight or BloodUp or BloodDown\n\nWallCoverLR = WallL or WallR or WallLR\nWallCoverUD = WallU or WallD or WallUD\nWallCoverCorner = WallUL or WallUR or WallDL or WallDR or WallDLR or WallLUD or WallRUD or WallULR\nWallCover = WallCoverLR or WallCoverUD or WallCoverCorner\n\nCoverLR = WallCoverLR\nCoverUD = WallCoverUD\n\n\n=======\nSOUNDS\n=======\n\n(Player Create 1326707)\n\nSpikeTrapDeadly Create 85964907\nArrowTrapArmed Create 9956307\nArrowTrapRearming Create 95334907\n\n(Arrow Create 3367509)\n\nArrowCollision Create 3790700\nPlayerDead Create 97930904\nGemBroken Create 48343102\n\n(sfx1 76483702) (arrow hits wall)\nsfx2 13478508 (pick up gem for first time)\n\nUndo 8748307\n(Cancel 1326707)\nRestart 28758302\n\nEndLevel 73821303\nStartGame 47020108\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nNoPattern\nBloodLeft\nBloodRight\nBloodUp\nBloodDown\nTarget, SpikeTrap, SpikeTrapArmed, SpikeTrapDeadly, Exit, GemMarker\nGemBroken\nPlayer, Wall, Crate, Gem, PlayerDead\nWallCoverUD\nWallCoverCorner\nWallCoverLR, LOS\nArrowTrapAny\nArrow, ArrowCollision, ArrowCollision2\n\n======\nRULES\n======\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\nleft [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallLUD | WallUD ]\nright [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallRUD | WallUD ]\nup [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallULR | WallLR ]\ndown [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallDLR | WallLR ]\n\nright [ WallD | Wall no WallCoverCorner no WallCoverUD ] -> [ WallD | Wall WallDL ]\nleft [ WallD | Wall no WallCoverCorner no WallCoverUD ] -> [ WallD | Wall WallDR ]\n \nright [ WallU | Wall no WallCoverCorner no WallCoverUD ] -> [ WallU | Wall WallUL ]\nleft [ WallU | Wall no WallCoverCorner no WallCoverUD ] -> [ WallU | Wall WallUR ]\n\n(Blood)\n\n[ PlayerDead Blood ] -> [ PlayerDead action Blood ] again\n\nrandom [ PlayerDead | no Blood ] -> [ > PlayerDead no SpikeTrapAny | ]\n\n[ left PlayerDead no BloodRight ] -> [ PlayerDead BloodR1 ] again\n[ right PlayerDead no BloodLeft ] -> [ PlayerDead BloodL1 ] again\n[ up PlayerDead no BloodDown ] -> [ PlayerDead BloodD1 ] again\n[ down PlayerDead no BloodUp ] -> [ PlayerDead BloodU1 ] again\n\nrandom [ PlayerDead | no Blood ] -> [ > PlayerDead no SpikeTrapDeadly | ]\n\n[ left PlayerDead no BloodRight ] -> [ PlayerDead BloodR1 ] again\n[ right PlayerDead no BloodLeft ] -> [ PlayerDead BloodL1 ] again\n[ up PlayerDead no BloodDown ] -> [ PlayerDead BloodD1 ] again\n[ down PlayerDead no BloodUp ] -> [ PlayerDead BloodU1 ] again\n\n[ PlayerDead ] -> [ stationary PlayerDead ]\n\n[ action BloodL3 ] -> [ random BloodL4 ] again\n[ action BloodL2 ] -> [ BloodL3 ] again\n[ action BloodL1 ] -> [ BloodL2 ] again\n\n[ action BloodR3 ] -> [ random BloodR4 ] again\n[ action BloodR2 ] -> [ BloodR3 ] again\n[ action BloodR1 ] -> [ BloodR2 ] again\n\n[ action BloodU3 ] -> [ random BloodU4 ] again\n[ action BloodU2 ] -> [ BloodU3 ] again\n[ action BloodU1 ] -> [ BloodU2 ] again\n\n[ action BloodD3 ] -> [ random BloodD4 ] again\n[ action BloodD2 ] -> [ BloodD3 ] again\n[ action BloodD1 ] -> [ BloodD2 ] again\n\n[ BloodL3 no PlayerDead ] -> [ random BloodL4 ] again\n[ BloodL2 no PlayerDead ] -> [ BloodL3 ] again\n[ BloodL1 no PlayerDead ] -> [ BloodL2 ] again\n\n[ BloodR3 no PlayerDead ] -> [ random BloodR4 ] again\n[ BloodR2 no PlayerDead ] -> [ BloodR3 ] again\n[ BloodR1 no PlayerDead ] -> [ BloodR2 ] again\n\n[ BloodU3 no PlayerDead ] -> [ random BloodU4 ] again\n[ BloodU2 no PlayerDead ] -> [ BloodU3 ] again\n[ BloodU1 no PlayerDead ] -> [ BloodU2 ] again\n\n[ BloodD3 no PlayerDead ] -> [ random BloodD4 ] again\n[ BloodD2 no PlayerDead ] -> [ BloodD3 ] again\n[ BloodD1 no PlayerDead ] -> [ BloodD2 ] again\n\nleft [ action BloodR4 | no Blood ] -> [ BloodR4 | BloodL1 ] again\nright [ action BloodL4 | no Blood ] -> [ BloodL4 | BloodR1 ] again\nup [ action BloodD4 | no Blood ] -> [ BloodD4 | BloodU1 ] again\ndown [ action BloodU4 | no Blood ] -> [ BloodU4 | BloodD1 ] again\n\n[ Blood no BloodFinal ] -> again\n\n(arrow firing anim)\n\n[ stationary Player ] [ ArrowTrapFiredAnim ] -> [ Player ] [ action ArrowTrapFiredAnim ]\n[ PlayerDead ] [ ArrowTrapFiredAnim ] -> [ PlayerDead ] [ action ArrowTrapFiredAnim ]\n\n[ ArrowTrapAny no ArrowTrapFiredAnim Target ] -> [ ArrowTrapAny ]\n\n[ action ArrowTrapUpFired3 ] -> [ ArrowTrapUpRearming ]\n[ action ArrowTrapUpFired2 Target ] -> [ ArrowTrapUpFired3 ]\n[ action ArrowTrapUpFired2 no Target ] -> [ ArrowTrapUpFired2 Target ]\n[ action ArrowTrapUpFired Target ] -> [ ArrowTrapUpFired2 ]\n[ action ArrowTrapUpFired no Target ] -> [ ArrowTrapUpFired Target ]\n\n[ action ArrowTrapDownFired3 ] -> [ ArrowTrapDownRearming ]\n[ action ArrowTrapDownFired2 Target ] -> [ ArrowTrapDownFired3 ]\n[ action ArrowTrapDownFired2 no Target ] -> [ ArrowTrapDownFired2 Target ]\n[ action ArrowTrapDownFired Target ] -> [ ArrowTrapDownFired2 ]\n[ action ArrowTrapDownFired no Target ] -> [ ArrowTrapDownFired Target ]\n\n[ action ArrowTrapLeftFired3 ] -> [ ArrowTrapLeftRearming ]\n[ action ArrowTrapLeftFired2 Target ] -> [ ArrowTrapLeftFired3 ]\n[ action ArrowTrapLeftFired2 no Target ] -> [ ArrowTrapLeftFired2 Target ]\n[ action ArrowTrapLeftFired Target ] -> [ ArrowTrapLeftFired2 ]\n[ action ArrowTrapLeftFired no Target ] -> [ ArrowTrapLeftFired Target ]\n\n[ action ArrowTrapRightFired3 ] -> [ ArrowTrapRightRearming ]\n[ action ArrowTrapRightFired2 Target ] -> [ ArrowTrapRightFired3 ]\n[ action ArrowTrapRightFired2 no Target ] -> [ ArrowTrapRightFired2 Target ]\n[ action ArrowTrapRightFired Target ] -> [ ArrowTrapRightFired2 ]\n[ action ArrowTrapRightFired no Target ] -> [ ArrowTrapRightFired Target ]\n\n(Start of turn)\n\n[ Gem | moving Player ] -> [ > Gem | moving Player ]\n\n[ ArrowCollision2 ] -> []\n[ ArrowCollision ] -> [ ArrowCollision2 ] again\n\n[ moving Player ] [ NeedsTick ] -> [ moving Player ] [ action NeedsTick ]\n\n[ TriggersSpikes action SpikeTrapArmed ] -> [ TriggersSpikes SpikeTrapArmed ]\n\n[ action SpikeTrapDeadly ] -> [ SpikeTrap ]\n\n[ action SpikeTrapArmed ] -> [ SpikeTrapDeadly ]\n\n[ TriggersSpikes action SpikeTrap ] -> [ TriggersSpikes SpikeTrapArmed ]\n\n(prevent player moving out of path of arrow)\nleft [ ArrowLeft | ... | moving Player ] -> cancel\nright [ ArrowRight | ... | moving Player ] -> cancel\nup [ ArrowUp | ... | moving Player ] -> cancel\ndown [ ArrowDown | ... | moving Player ] -> cancel\n\nleft [ ArrowLeft | ... | moving Gem ] -> cancel\nright [ ArrowRight | ... | moving Gem ] -> cancel\nup [ ArrowUp | ... | moving Gem ] -> cancel\ndown [ ArrowDown | ... | moving Gem ] -> cancel\n\n[ moving Player ] [ Arrow ] -> [ moving Player ] [ action Arrow ]\n\n(movement)\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Player | Gem ] -> [ > Player | > Gem ]\n\n[ > Gem | Solid ] -> cancel\n[ > Crate | Solid ] -> cancel\n[ > Player | stationary Solid ] -> cancel\n[ > Player | ArrowTrapAny ] -> cancel\n\n[ > Player | no Solid ] -> [ | Player ]\n[ > Crate | no Solid ] -> [ | Crate ]\n[ > Gem | no Solid ] -> [ | Gem ]\n[ > Player | no Solid ] -> [ | Player ]\n\n( death )\n\n[ Player SpikeTrapDeadly ] -> [ PlayerDead SpikeTrapDeadly ] again\n\n\n( end of turn )\n\n[ action ArrowTrapUpReady ] -> [ ArrowTrapUpReady up LOS ]\n[ action ArrowTrapDownReady ] -> [ ArrowTrapDownReady down LOS ]\n[ action ArrowTrapLeftReady ] -> [ ArrowTrapLeftReady left LOS ]\n[ action ArrowTrapRightReady ] -> [ ArrowTrapRightReady right LOS ]\n\n[ > LOS | Solid ] -> [ | Solid ]\n+ [ > LOS | no Solid no LOS no TriggersArrow ] -> [ | > LOS ]\n\n[ > LOS | TriggersArrow ] -> [ < LOS | TriggersArrow ]\n\n[ > LOS no ArrowTrapReady | no Solid no LOS ] -> [ | > LOS ]\n[ > LOS no ArrowTrapReady | ArrowTrapReady ] -> [ | LOS ArrowTrapReady ]\n\n[ LOS ArrowTrapUpReady ] -> [ ArrowTrapUpArmed ]\n[ LOS ArrowTrapDownReady ] -> [ ArrowTrapDownArmed ]\n[ LOS ArrowTrapLeftReady ] -> [ ArrowTrapLeftArmed ]\n[ LOS ArrowTrapRightReady ] -> [ ArrowTrapRightArmed ]\n\n[ LOS ] -> []\n\n[ action ArrowTrapUpArmed ] -> [ ArrowTrapUpFired ArrowUp ]\n[ action ArrowTrapDownArmed ] -> [ ArrowTrapDownFired ArrowDown ]\n[ action ArrowTrapLeftArmed ] -> [ ArrowTrapLeftFired ArrowLeft ]\n[ action ArrowTrapRightArmed ] -> [ ArrowTrapRightFired ArrowRight ]\n\n[ action ArrowTrapUpFiredAny ] -> [ ArrowTrapUpRearming2 ]\n[ action ArrowTrapDownFiredAny ] -> [ ArrowTrapDownRearming2 ]\n[ action ArrowTrapLeftFiredAny ] -> [ ArrowTrapLeftRearming2 ]\n[ action ArrowTrapRightFiredAny ] -> [ ArrowTrapRightRearming2 ]\n\n[ action ArrowTrapUpRearming ] -> [ ArrowTrapUpRearming2 ]\n[ action ArrowTrapDownRearming ] -> [ ArrowTrapDownRearming2 ]\n[ action ArrowTrapLeftRearming ] -> [ ArrowTrapLeftRearming2 ]\n[ action ArrowTrapRightRearming ] -> [ ArrowTrapRightRearming2 ]\n\n[ action ArrowTrapUpRearming2 ] -> [ ArrowTrapUpReady ]\n[ action ArrowTrapDownRearming2 ] -> [ ArrowTrapDownReady ]\n[ action ArrowTrapLeftRearming2 ] -> [ ArrowTrapLeftReady ]\n[ action ArrowTrapRightRearming2 ] -> [ ArrowTrapRightReady ]\n\n(arrows)\n\n[ stationary ArrowUp ] -> [ up ArrowUp ]\n[ stationary ArrowDown ] -> [ down ArrowDown ]\n[ stationary ArrowLeft ] -> [ left ArrowLeft ]\n[ stationary ArrowRight ] -> [ right ArrowRight ]\n\n[ > Arrow | Player ] -> [ | PlayerDead ] again\n[ > Arrow | no Solid no Arrow ] -> [ | Arrow ] (again)\n[ > Arrow | Gem ] -> [ | GemBroken no SpikeTrapAny ]\n[ > Arrow | Solid ] -> [ | Solid ] sfx1\n[ > Arrow | no Solid no Arrow ] -> [ | Arrow ] (again)\n+ [ > Arrow | stationary Arrow ] -> [ | ArrowCollision ] (again)\n[ > Arrow | Gem ] -> [ | GemBroken no SpikeTrapAny ]\n[ > Arrow | Solid ] -> [ | Solid ] sfx1\n\n([ Arrow SpikeTrapArmed ] -> [ SpikeTrapArmed ]\n[ Arrow SpikeTrapDeadly ] -> [ SpikeTrapDeadly ])\n\n(checkpoints)\n\n[ Player Target ] -> [ Player action Target ]\n[ Gem Target ] -> [ Gem action Target ]\n\n[ Gem ] [ action Target ] -> checkpoint\n\n[ Player | GemMarker ] -> [ Player | ] sfx2\n\n\n==============\nWINCONDITIONS\n==============\n\nall player on exit\nall gem on exit\nsome player\nsome gem\n\n=======\nLEVELS\n=======\n\n(###p##################\n###q##############!###\n##...############...o.\n##....###########...##\n##...%.#!########..###\n###.%..%..##........##\n####..~%.o..o.......##\n#####..%..##........##\n##############i#######\n######################\n\n#####!!!!##\n#####%%%.##\n#....%.%.##\n#o###%%%###\n..#..%%%###\n###.....###\n###..#...##\n###..##...o\n##}......##\n###########)\n\n(###p###################################################\n###q##############!####################################\n###.#############...#############################!#####\n##...############...o..o...%%########....o..o.#!#%#!###\n##....###########...######%%%########.%%##..o...%.%.###\n##...%.###########.#####}%%%%#########%%#######.#%#.###\n###.%..%..##........#####%%%%######}%%%%#####...#.%.###\n####...%.o..o.......######%....#####.%#######....%#..##\n#####..%..##........######....o....o..###########.....o\n##############i########################################\n#######################################################\n\n#######################################################\n################!!!!#############################!#####\n####!!##########%%%.#########...o.o.############...####\n##.......###....%.%.#########...o.o.######...o.....####\n##......o###o###%%%#####}.....#####....###o#####....{##\n####..##.....#..%%%######.....#####..%.##..#####...####\n####%%########.....#####}.....####}.%......######.#####\n####..########..#...#####.....#####..%.##..##}......###\n.o....########..##...o.o..#i#i#####....########......o.\n#############}......#################i#########.....###\n#######################################################\n\n#######################################################\n###########################!########!###!##############\n######..o....o..!#!#######%.%#####...%.%...###.......##\n######...#####.....#######%.%#####...%.%...###.......##\n##}..%%#######}..%%#####..%.%..{###..###..####.......##\n##}.%%.%#######..%%#####..%.%%%{##}..###..####...~...##\n####..%%######}....#####..###%%###}..###..####.......##\n##..%.%%##########...o.o..###..####..###...o.o.......##\n..o##ii###########...o.o..###..o..o..###...o.o.......##\n#############################........##################\n#######################################################)\n\n###p#################################################################################################################################################################\n###q##############!####################################################!!!!#############################!################################!########!###!##############\n###.#############...#############################!#########!!##########%%%.#########...o.o.############...##########..o....o..!#!#######%.%#####...%.%...###.......##\n##...############...o..o...%%########....o..o.#!#%#!#####.......###....%.%.#########...o.o.######...o.....##########...#####.....#######%.%#####...%.%...###.......##\n##....###########...######%%%########.%%##..o...%.%.#####......o###o###%%%#####}.....#####....###o#####....{####}..%%#######}..%%#####..%.%..{###..###..####.......##\n##...%.###########.#####}%%%%#########%%#######.#%#.#######..##.....#..%%%######.....#####..%.##..#####...######}.%%.%#######..%%#####..%.%%%{##}..###..####...~...##\n###.%..%..##........#####%%%%######}%%%%#####...#.%.#######%%########.....#####}.....####}.%......######.#########..%%######}....#####..###%%###}..###..####.......##\n####...%.o..o.......######%....#####.%#######....%#..######..########..#...#####.....#####..%.##..##}......#####..%.%%##########...o.o..###..####..###...o.o.......##\n#####..%..##........######....o....o..###########.....o.o....########..##...o.o..#i#i#####....########......o...o##ii###########...o.o..###..o..o..###...o.o.......##\n##############i#####################################################}......#################i#########.....################################........##################\n#####################################################################################################################################################################\n\n\nmessage Thanks for playing :)\n\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",0,"tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick","tick",3,"tick","tick","tick",2,"tick","tick","tick","tick",2,3,"tick","tick","tick","tick",3,"tick","tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick","tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick","tick",3,"tick","tick","tick","tick","tick",3,"tick","tick","tick","tick",0,"tick","tick","tick",1,"tick","tick","tick","tick","tick",0,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick","tick","tick","tick","undo","tick","tick","tick","undo","tick","tick","tick","tick","tick","tick",3,"tick","tick","tick","tick",1,"tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick",3,"tick","tick","tick","tick","tick",0,"tick","tick","tick","tick","tick",0,"tick","tick",3,"tick","tick","tick","tick","tick",0,"tick","tick","tick",3,"tick","tick","tick","tick",3,"tick","tick","tick","tick",3,"tick","tick","tick","tick","tick","tick",3,"tick","tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick","tick",2,"tick","tick","tick","tick","tick",2,"tick","tick","tick","tick",2,"tick","tick","tick","tick",2,"tick","tick","tick","tick","tick","tick",3,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,background wall walldr:1,background wall wallr:2,2,2,background wall wallur:3,0,0,0,0,2,2,background wall walld wallr:4,background:5,5,5,background wall wallr wallu:6,3,0,0,0,background exit:7,7,5,5,5,5,5,6,3,0,0,background wall walll:8,8,background wall walld walll:9,5,5,5,background nopattern spiketrap:10,5,6,3,0,0,0,background wall walldl:11,9,5,10,5,5,5,background wall wallu:12,0,0,0,0,11,9,5,5,5,5,12,0,0,0,0,0,11,9,10,10,10,12,0,0,0,0,0,0,background wall walld:13,5,5,5,12,0,0,0,0,0,0,13,5,background target:14,5,12,0,0,0,0,0,0,11,9,5,background wall walll wallu:15,background wall wallul:16,0,0,0,0,0,0,1,4,5,6,3,0,0,0,0,0,0,13,5,14,5,12,0,0,0,0,0,0,13,5,5,5,6,3,0,0,0,0,0,13,5,5,5,arrowtrapupready background nopattern:17,12,\n0,0,0,0,0,13,5,5,5,15,16,0,1,2,2,2,background wall walld wallrud:18,5,5,5,12,0,1,4,5,5,5,background wall wallr wallud:19,5,5,5,12,0,13,arrowtrapdownready background nopattern:20,5,5,5,5,5,5,5,12,0,11,9,5,5,5,background wall walll wallud:21,5,5,5,12,0,0,11,9,14,15,background wall walllud:22,8,8,8,16,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,14,background wall wallrud wallu:23,2,3,0,0,0,0,0,0,13,5,background wall wallud:24,arrowtraprightready background nopattern:25,6,3,0,0,0,0,0,13,5,19,10,10,6,2,3,0,0,0,13,5,10,10,background nopattern spiketrapdeadly:26,background nopattern spiketraparmed:27,5,12,0,0,0,13,10,10,10,10,background player:28,5,12,0,0,0,13,10,10,10,10,5,5,12,0,0,0,11,8,8,8,9,5,5,12,0,\n0,0,0,0,0,0,13,5,14,12,0,0,0,0,0,0,0,11,9,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,1,2,18,5,12,0,0,0,0,0,0,13,25,19,14,12,0,0,0,1,2,2,18,10,5,5,12,0,0,0,13,5,5,19,10,10,5,12,0,0,0,13,5,10,10,10,15,8,16,0,0,0,13,5,10,10,10,12,0,0,0,0,0,13,5,15,8,8,16,0,0,0,0,0,13,14,6,3,0,0,0,0,0,0,0,13,5,5,12,0,0,0,0,0,0,0,13,5,5,12,0,0,0,0,0,0,0,13,14,14,23,2,2,3,0,0,\n0,0,13,5,5,24,5,5,12,0,0,0,0,background wall walldlr:29,background wall walld walllr:30,5,19,5,5,12,0,0,0,0,13,20,5,5,5,5,12,0,0,0,1,background wall walldlr wallr:31,30,10,background wall walllr wallu:32,30,5,6,3,0,0,13,20,10,5,10,5,10,5,12,0,0,11,background wall walldlr walll:33,30,10,background wall walllr wallud:34,10,34,5,12,0,0,0,13,20,5,5,5,5,5,12,0,0,0,11,8,8,8,9,5,5,12,0,0,0,0,0,0,0,11,9,5,12,0,0,0,0,0,0,0,0,13,14,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,1,2,2,3,0,13,14,12,0,0,0,13,5,5,12,0,13,5,12,0,0,1,4,5,5,6,2,4,5,12,0,0,13,20,5,5,5,10,5,5,12,0,\n0,13,20,5,5,5,10,5,5,12,0,0,11,9,5,5,15,8,8,8,16,0,0,0,13,5,5,6,3,0,0,0,0,0,0,13,5,14,5,12,0,0,0,0,0,0,11,8,9,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,1,2,4,5,12,0,0,0,0,0,0,13,5,14,5,12,0,1,2,3,0,0,13,5,background wall walll wallrud wallu:35,background wall walllr:36,background wall wallr wallulr:37,2,4,25,12,0,0,13,5,24,5,5,5,5,5,12,1,2,4,5,19,5,5,5,5,5,12,13,20,10,10,10,10,5,32,background wall walld walll wallrud:38,5,12,13,20,10,5,10,10,5,5,19,5,12,13,20,10,10,10,10,5,5,5,5,12,13,20,5,5,15,8,9,5,5,5,12,\n11,8,8,8,16,0,11,9,5,15,16,0,0,0,0,0,0,0,13,14,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,1,2,background wall wallrud:39,2,18,14,12,0,0,0,0,13,25,19,25,19,5,12,0,0,0,0,13,5,5,5,5,5,12,0,0,0,0,13,5,5,5,5,32,background wall wallulr:40,0,0,0,0,13,5,5,5,5,17,12,0,0,1,2,4,5,5,5,5,32,40,0,0,13,5,5,5,5,5,5,17,12,0,0,13,5,5,15,8,8,8,8,16,0,0,13,5,5,12,0,0,0,0,0,0,0,13,14,14,12,0,0,0,0,0,0,0,13,5,5,12,1,2,3,0,0,0,0,13,14,14,6,4,25,6,2,3,0,\n0,13,5,5,5,5,5,5,5,12,0,0,11,8,9,5,5,10,5,5,6,3,0,0,0,13,5,10,5,10,5,17,12,0,0,0,13,5,5,5,5,5,15,16,0,0,0,11,8,9,5,15,8,16,0,0,0,0,0,1,4,5,6,3,0,0,0,0,1,2,4,5,5,5,12,0,0,0,0,13,5,14,5,5,5,12,0,0,0,0,13,5,15,8,8,8,16,0,0,0,0,13,5,12,0,1,2,3,0,0,0,0,13,14,12,0,13,25,12,0,0,0,0,13,5,12,0,13,5,6,2,3,0,1,4,5,6,2,18,5,5,5,12,1,4,5,5,5,5,19,5,5,5,12,13,20,5,5,5,5,5,5,5,5,12,\n11,9,5,5,5,5,21,5,5,5,12,0,11,8,9,5,15,background wall walld walllud:41,5,5,5,12,0,0,0,13,arrowtrapleftready background nopattern:42,12,11,9,5,15,16,0,0,0,11,8,16,0,13,14,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,1,2,2,39,4,5,12,0,0,0,0,13,25,25,24,5,14,12,0,0,0,0,13,5,5,19,5,15,16,0,0,0,0,13,5,10,5,10,6,3,0,0,1,2,4,10,10,5,5,17,12,0,0,13,5,5,10,5,10,10,17,12,0,0,13,5,5,21,10,10,10,15,16,0,0,13,14,5,background wall walllud wallu:43,8,8,8,16,0,0,0,13,5,15,16,0,0,0,0,0,0,\n0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,14,6,2,39,2,3,0,0,0,0,13,5,5,25,19,25,12,0,0,0,0,13,5,5,5,5,5,12,0,0,0,0,13,20,5,5,5,5,12,0,0,0,0,29,30,5,10,10,5,6,2,3,0,0,13,20,5,10,10,5,5,5,12,0,0,11,8,8,8,8,9,5,5,12,0,0,0,0,0,0,0,13,5,5,12,0,0,0,0,0,0,0,13,14,14,12,0,0,0,0,0,0,0,13,5,5,12,0,0,0,0,1,2,2,4,14,14,12,0,0,0,0,13,5,5,5,5,5,12,0,\n0,1,2,4,5,5,5,5,5,12,0,1,4,10,10,10,10,15,8,8,16,0,13,20,5,5,5,5,12,0,0,0,0,11,9,10,10,10,10,6,2,2,2,3,0,11,8,9,5,10,10,5,5,5,12,0,0,0,13,5,10,10,5,5,5,12,0,0,0,13,42,42,15,9,14,5,12,0,0,0,11,8,8,16,13,5,5,12,0,1,2,2,39,2,2,18,5,5,12,0,13,5,5,19,25,25,19,14,5,12,1,4,5,5,5,5,5,5,5,5,12,13,20,5,5,5,5,5,5,5,5,12,11,9,10,10,15,8,8,8,8,8,16,0,13,5,5,12,0,0,0,0,0,0,1,4,10,10,6,2,2,2,2,3,0,\n13,20,5,5,5,5,5,5,5,12,0,11,9,5,5,5,5,5,5,5,12,0,0,13,5,5,15,8,9,5,5,12,0,0,11,8,8,16,0,13,14,14,12,0,0,0,0,0,0,0,13,5,5,12,0,0,1,2,2,2,2,4,14,14,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,background gem gemmarker:44,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,11,8,8,8,8,8,8,8,16,0,0,0,0,0,0,0,0,0,0,0,0,\n",0,"1627779607469.4893"] + ["title Spikes 'n' Stuff\n\nauthor Alan Hazelden\n\n(verbose_logging)\n\nagain_interval 0.05\nrealtime_interval 0.05\n\nflickscreen 11x11\n\nnoaction\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\n\nBackground\nDARKBLUE BLACK\n11111\n01111\n11101\n11111\n10111\n\nWall\n#767d80 #697175\n00111\n11101\n01001\n11110\n10011\n\nTarget\ntransparent\n(DarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....)\n\nExit\ntransparent\n\nArrowTrapUpReady\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n.123.\n0.2.4\n..2..\n..2..\n\nArrowTrapUpArmed\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n.153.\n0.5.4\n..5..\n..2..\n\nArrowTrapUpFired\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n01234\n..2..\n..2..\n..2..\n\nArrowTrapUpFired2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n.123.\n0.2.4\n..2..\n..2..\n\nArrowTrapUpFired3\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.....\n..2..\n.123.\n0.2.4\n..2..\n\nArrowTrapUpRearming\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.....\n.....\n..2..\n.123.\n0.2.4\n\nArrowTrapUpRearming2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.....\n..2..\n.123.\n0.2.4\n..2..\n\nArrowTrapDownReady\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n..2..\n0.2.4\n.123.\n..2..\n\nArrowTrapDownArmed\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n..5..\n0.5.4\n.153.\n..2..\n\nArrowTrapDownFired\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n..2..\n..2..\n01234\n..2..\n\nArrowTrapDownFired2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n..2..\n0.2.4\n.123.\n..2..\n\nArrowTrapDownFired3\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n0.2.4\n.123.\n..2..\n.....\n\nArrowTrapDownRearming\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n0.2.4\n.123.\n..2..\n.....\n.....\n\nArrowTrapDownRearming2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n0.2.4\n.123.\n..2..\n.....\n\nArrowTrapLeftReady\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n.1...\n22222\n.3...\n..4..\n\nArrowTrapLeftArmed\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n.1...\n25552\n.3...\n..4..\n\nArrowTrapLeftFired\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.0...\n.1...\n22222\n.3...\n.4...\n\nArrowTrapLeftFired2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n.1...\n22222\n.3...\n..4..\n\nArrowTrapLeftFired3\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n...0.\n..1..\n.2222\n..3..\n...4.\n\nArrowTrapLeftRearming\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n....0\n...1.\n..222\n...3.\n....4\n\nArrowTrapLeftRearming2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n...0.\n..1..\n.2222\n..3..\n...4.\n\nArrowTrapRightReady\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n...1.\n22222\n...3.\n..4..\n\nArrowTrapRightArmed\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n...1.\n25552\n...3.\n..4..\n\nArrowTrapRightFired\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n...0.\n...1.\n22222\n...3.\n...4.\n\nArrowTrapRightFired2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n...1.\n22222\n...3.\n..4..\n\nArrowTrapRightFired3\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.0...\n..1..\n2220.\n..3..\n.4...\n\nArrowTrapRightRearming\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n0....\n.1...\n222..\n.3...\n4....\n\nArrowTrapRightRearming2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.0...\n..1..\n2220.\n..3..\n.4...\n\n(#524432 #4d4030 #4a3c2c #443929 #403527)\n\nPlayer\n#a46422 #495e2b #493c2b #000000\n..0..\n.111.\n01110\n02220\n.2.2.\n\nPlayerDead\n#a46422 #495e2b #493c2b black white\n..00.\n.1122\n0112.\n.1122\n..00.\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\nGem\nYellow White Orange\n.000.\n01100\n01000\n00002\n.022.\n\nGemBroken\nYellow White Orange black\n.000.\n.313.\n01.0.\n03002\n..22.\n\nNoPattern\nblack\n\nSpikeTrap\ntransparent darkgreen black\n00000\n01210\n02220\n01210\n00000\n\nSpikeTrapArmed\ntransparent white transparent grey\n00000\n01210\n02220\n01210\n00000\n\nSpikeTrapDeadly\ntransparent white transparent grey\n01010\n03230\n01210\n03230\n00000\n\nArrowUp\nwhite\n.....\n..0..\n..0..\n..0..\n.....\n\nArrowDown\nwhite\n.....\n..0..\n..0..\n..0..\n.....\n\nArrowLeft\nwhite\n.....\n.....\n.000.\n.....\n.....\n\nArrowRight\nwhite\n.....\n.....\n.000.\n.....\n.....\n\nArrowCollision\nwhite\n.....\n..0..\n.000.\n..0..\n.....\n\nArrowCollision2\nwhite\n...0.\n.....\n.0...\n....0\n.....\n\nLOS\nwhite\n\nWallL\n#373c3f\n0....\n0....\n0....\n0....\n0....\n\nWallR\n#373c3f\n....0\n....0\n....0\n....0\n....0\n\nWallU\n#373c3f\n00000\n.....\n.....\n.....\n.....\n\nWallD\n#373c3f\n.....\n.....\n.....\n.....\n00000\n\nWallLR\n#373c3f\n0...0\n0...0\n0...0\n0...0\n0...0\n\nWallUD\n#373c3f\n00000\n.....\n.....\n.....\n00000\n \nWallUL\n#373c3f\n0....\n.....\n.....\n.....\n.....\n \nWallUR\n#373c3f\n....0\n.....\n.....\n.....\n.....\n \nWallDL\n#373c3f\n.....\n.....\n.....\n.....\n0....\n \nWallDR\n#373c3f\n.....\n.....\n.....\n.....\n....0\n \nWallDLR\n#373c3f\n.....\n.....\n.....\n.....\n0...0\n \nWallULR\n#373c3f\n0...0\n.....\n.....\n.....\n.....\n \nWallLUD\n#373c3f\n0....\n.....\n.....\n.....\n0....\n \nWallRUD\n#373c3f\n....0\n.....\n.....\n.....\n....0\n\nBloodL1\nred\n.....\n.....\n....0\n.....\n.....\n\nBloodL2\nred\n.....\n....0\n....0\n....0\n.....\n\nBloodL3\nred\n....0\n....0\n....0\n....0\n....0\n\nBloodL4_1\nred\n....0\n....0\n...00\n...00\n....0\n\nBloodL4_2\nred\n....0\n...00\n...00\n....0\n....0\n\nBloodR1\nred\n.....\n.....\n0....\n.....\n.....\n\nBloodR2\nred\n.....\n0....\n0....\n0....\n.....\n\nBloodR3\nred\n0....\n0....\n0....\n0....\n0....\n\nBloodR4_1\nred\n0....\n0....\n00...\n00...\n0....\n\nBloodR4_2\nred\n0....\n0....\n00...\n00...\n0....\n\nBloodU1\nred\n.....\n.....\n.....\n.....\n..0..\n\nBloodU2\nred\n.....\n.....\n.....\n.....\n.000.\n\nBloodU3\nred\n.....\n.....\n.....\n.....\n00000\n\nBloodU4_1\nred\n.....\n.....\n.....\n.00..\n00000\n\nBloodU4_2\nred\n.....\n.....\n.....\n..00.\n00000\n\nBloodD1\nred\n..0..\n.....\n.....\n.....\n.....\n\nBloodD2\nred\n.000.\n.....\n.....\n.....\n.....\n\nBloodD3\nred\n00000\n.....\n.....\n.....\n.....\n\nBloodD4_1\nred\n00000\n..00.\n.....\n.....\n.....\n\nBloodD4_2\nred\n00000\n.00..\n.....\n.....\n.....\n\nBloodD4_3\nred\n00000\n.....\n.....\n.....\n.....\n\nGemMarker\ntransparent\n\n\n=======\nLEGEND\n=======\n\n\n\nArrow = ArrowLeft or ArrowRight or ArrowUp or ArrowDown\nSpikeTrapAny = SpikeTrap or SpikeTrapArmed or SpikeTrapDeadly\n\nArrowTrapReady = ArrowTrapUpReady or ArrowTrapDownReady or ArrowTrapLeftReady or ArrowTrapRightReady\nArrowTrapArmed = ArrowTrapLeftArmed or ArrowTrapRightArmed or ArrowTrapUpArmed or ArrowTrapDownArmed\nArrowTrapRearming = ArrowTrapLeftRearming or ArrowTrapRightRearming or ArrowTrapUpRearming or ArrowTrapDownRearming\nArrowTrapRearming2 = ArrowTrapLeftRearming2 or ArrowTrapRightRearming2 or ArrowTrapUpRearming2 or ArrowTrapDownRearming2\n\nArrowTrapLeftFiredAny = ArrowTrapLeftFired or ArrowTrapLeftFired2 or ArrowTrapLeftFired3\nArrowTrapRightFiredAny = ArrowTrapRightFired or ArrowTrapRightFired2 or ArrowTrapRightFired3\nArrowTrapUpFiredAny = ArrowTrapUpFired or ArrowTrapUpFired2 or ArrowTrapUpFired3\nArrowTrapDownFiredAny = ArrowTrapDownFired or ArrowTrapDownFired2 or ArrowTrapDownFired3\n\nArrowTrapFiredAnim = ArrowTrapLeftFired or ArrowTrapLeftFired2 or ArrowTrapLeftFired3 or ArrowTrapRightFired or ArrowTrapRightFired2 or ArrowTrapRightFired3 or ArrowTrapUpFired or ArrowTrapUpFired2 or ArrowTrapUpFired3 or ArrowTrapDownFired or ArrowTrapDownFired2 or ArrowTrapDownFired3\n\nArrowTrapAny = ArrowTrapReady or ArrowTrapArmed or ArrowTrapRearming or ArrowTrapRearming2 or ArrowTrapFiredAnim\n\nTriggersSpikes = Crate or Gem or Player\nTriggersArrow = Player\nKillable = Player\nNeedsTick = SpikeTrap or SpikeTrapArmed or SpikeTrapDeadly or ArrowTrapAny\n\n\nSolid = Wall or Crate or Gem or ArrowTrapAny\n\n. = Background\n# = Wall\nP = Player and exit\nq = exit\n* = Crate\n(@ = SwitchOff)\nO = Target\n% = SpikeTrap and NoPattern\n~ = Gem and GemMarker\n\ni = ArrowTrapUpReady and NoPattern\n! = ArrowTrapDownReady and NoPattern\n{ = ArrowTrapLeftReady and NoPattern\n} = ArrowTrapRightReady and NoPattern\n\nBloodLeft = BloodL1 or BloodL2 or BloodL3 or BloodL4_1 or BloodL4_2\nBloodRight = BloodR1 or BloodR2 or BloodR3 or BloodR4_1 or BloodR4_2\nBloodUp = BloodU1 or BloodU2 or BloodU3 or BloodU4_1 or BloodU4_2\nBloodDown = BloodD1 or BloodD2 or BloodD3 or BloodD4_1 or BloodD4_2 or BloodD4_3\n\nBloodL4 = BloodL4_1 or BloodL4_2\nBloodR4 = BloodR4_1 or BloodR4_2\nBloodU4 = BloodU4_1 or BloodU4_2\nBloodD4 = BloodD4_1 or BloodD4_2 or BloodD4_3\n\nBloodFinal = BloodL4 or BloodR4 or BloodU4 or BloodD4\n\nBlood = BloodLeft or BloodRight or BloodUp or BloodDown\n\nWallCoverLR = WallL or WallR or WallLR\nWallCoverUD = WallU or WallD or WallUD\nWallCoverCorner = WallUL or WallUR or WallDL or WallDR or WallDLR or WallLUD or WallRUD or WallULR\nWallCover = WallCoverLR or WallCoverUD or WallCoverCorner\n\nCoverLR = WallCoverLR\nCoverUD = WallCoverUD\n\n\n=======\nSOUNDS\n=======\n\n(Player Create 1326707)\n\nSpikeTrapDeadly Create 85964907\nArrowTrapArmed Create 9956307\nArrowTrapRearming Create 95334907\n\n(Arrow Create 3367509)\n\nArrowCollision Create 3790700\nPlayerDead Create 97930904\nGemBroken Create 48343102\n\n(sfx1 76483702) (arrow hits wall)\nsfx2 13478508 (pick up gem for first time)\n\nUndo 8748307\n(Cancel 1326707)\nRestart 28758302\n\nEndLevel 73821303\nStartGame 47020108\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nNoPattern\nBloodLeft\nBloodRight\nBloodUp\nBloodDown\nTarget, SpikeTrap, SpikeTrapArmed, SpikeTrapDeadly, Exit, GemMarker\nGemBroken\nPlayer, Wall, Crate, Gem, PlayerDead\nWallCoverUD\nWallCoverCorner\nWallCoverLR, LOS\nArrowTrapAny\nArrow, ArrowCollision, ArrowCollision2\n\n======\nRULES\n======\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\nleft [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallLUD | WallUD ]\nright [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallRUD | WallUD ]\nup [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallULR | WallLR ]\ndown [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallDLR | WallLR ]\n\nright [ WallD | Wall no WallCoverCorner no WallCoverUD ] -> [ WallD | Wall WallDL ]\nleft [ WallD | Wall no WallCoverCorner no WallCoverUD ] -> [ WallD | Wall WallDR ]\n \nright [ WallU | Wall no WallCoverCorner no WallCoverUD ] -> [ WallU | Wall WallUL ]\nleft [ WallU | Wall no WallCoverCorner no WallCoverUD ] -> [ WallU | Wall WallUR ]\n\n(Blood)\n\n[ PlayerDead Blood ] -> [ PlayerDead action Blood ] again\n\nrandom [ PlayerDead | no Blood ] -> [ > PlayerDead no SpikeTrapAny | ]\n\n[ left PlayerDead no BloodRight ] -> [ PlayerDead BloodR1 ] again\n[ right PlayerDead no BloodLeft ] -> [ PlayerDead BloodL1 ] again\n[ up PlayerDead no BloodDown ] -> [ PlayerDead BloodD1 ] again\n[ down PlayerDead no BloodUp ] -> [ PlayerDead BloodU1 ] again\n\nrandom [ PlayerDead | no Blood ] -> [ > PlayerDead no SpikeTrapDeadly | ]\n\n[ left PlayerDead no BloodRight ] -> [ PlayerDead BloodR1 ] again\n[ right PlayerDead no BloodLeft ] -> [ PlayerDead BloodL1 ] again\n[ up PlayerDead no BloodDown ] -> [ PlayerDead BloodD1 ] again\n[ down PlayerDead no BloodUp ] -> [ PlayerDead BloodU1 ] again\n\n[ PlayerDead ] -> [ stationary PlayerDead ]\n\n[ action BloodL3 ] -> [ random BloodL4 ] again\n[ action BloodL2 ] -> [ BloodL3 ] again\n[ action BloodL1 ] -> [ BloodL2 ] again\n\n[ action BloodR3 ] -> [ random BloodR4 ] again\n[ action BloodR2 ] -> [ BloodR3 ] again\n[ action BloodR1 ] -> [ BloodR2 ] again\n\n[ action BloodU3 ] -> [ random BloodU4 ] again\n[ action BloodU2 ] -> [ BloodU3 ] again\n[ action BloodU1 ] -> [ BloodU2 ] again\n\n[ action BloodD3 ] -> [ random BloodD4 ] again\n[ action BloodD2 ] -> [ BloodD3 ] again\n[ action BloodD1 ] -> [ BloodD2 ] again\n\n[ BloodL3 no PlayerDead ] -> [ random BloodL4 ] again\n[ BloodL2 no PlayerDead ] -> [ BloodL3 ] again\n[ BloodL1 no PlayerDead ] -> [ BloodL2 ] again\n\n[ BloodR3 no PlayerDead ] -> [ random BloodR4 ] again\n[ BloodR2 no PlayerDead ] -> [ BloodR3 ] again\n[ BloodR1 no PlayerDead ] -> [ BloodR2 ] again\n\n[ BloodU3 no PlayerDead ] -> [ random BloodU4 ] again\n[ BloodU2 no PlayerDead ] -> [ BloodU3 ] again\n[ BloodU1 no PlayerDead ] -> [ BloodU2 ] again\n\n[ BloodD3 no PlayerDead ] -> [ random BloodD4 ] again\n[ BloodD2 no PlayerDead ] -> [ BloodD3 ] again\n[ BloodD1 no PlayerDead ] -> [ BloodD2 ] again\n\nleft [ action BloodR4 | no Blood ] -> [ BloodR4 | BloodL1 ] again\nright [ action BloodL4 | no Blood ] -> [ BloodL4 | BloodR1 ] again\nup [ action BloodD4 | no Blood ] -> [ BloodD4 | BloodU1 ] again\ndown [ action BloodU4 | no Blood ] -> [ BloodU4 | BloodD1 ] again\n\n[ Blood no BloodFinal ] -> again\n\n(arrow firing anim)\n\n[ stationary Player ] [ ArrowTrapFiredAnim ] -> [ Player ] [ action ArrowTrapFiredAnim ]\n[ PlayerDead ] [ ArrowTrapFiredAnim ] -> [ PlayerDead ] [ action ArrowTrapFiredAnim ]\n\n[ ArrowTrapAny no ArrowTrapFiredAnim Target ] -> [ ArrowTrapAny ]\n\n[ action ArrowTrapUpFired3 ] -> [ ArrowTrapUpRearming ]\n[ action ArrowTrapUpFired2 Target ] -> [ ArrowTrapUpFired3 ]\n[ action ArrowTrapUpFired2 no Target ] -> [ ArrowTrapUpFired2 Target ]\n[ action ArrowTrapUpFired Target ] -> [ ArrowTrapUpFired2 ]\n[ action ArrowTrapUpFired no Target ] -> [ ArrowTrapUpFired Target ]\n\n[ action ArrowTrapDownFired3 ] -> [ ArrowTrapDownRearming ]\n[ action ArrowTrapDownFired2 Target ] -> [ ArrowTrapDownFired3 ]\n[ action ArrowTrapDownFired2 no Target ] -> [ ArrowTrapDownFired2 Target ]\n[ action ArrowTrapDownFired Target ] -> [ ArrowTrapDownFired2 ]\n[ action ArrowTrapDownFired no Target ] -> [ ArrowTrapDownFired Target ]\n\n[ action ArrowTrapLeftFired3 ] -> [ ArrowTrapLeftRearming ]\n[ action ArrowTrapLeftFired2 Target ] -> [ ArrowTrapLeftFired3 ]\n[ action ArrowTrapLeftFired2 no Target ] -> [ ArrowTrapLeftFired2 Target ]\n[ action ArrowTrapLeftFired Target ] -> [ ArrowTrapLeftFired2 ]\n[ action ArrowTrapLeftFired no Target ] -> [ ArrowTrapLeftFired Target ]\n\n[ action ArrowTrapRightFired3 ] -> [ ArrowTrapRightRearming ]\n[ action ArrowTrapRightFired2 Target ] -> [ ArrowTrapRightFired3 ]\n[ action ArrowTrapRightFired2 no Target ] -> [ ArrowTrapRightFired2 Target ]\n[ action ArrowTrapRightFired Target ] -> [ ArrowTrapRightFired2 ]\n[ action ArrowTrapRightFired no Target ] -> [ ArrowTrapRightFired Target ]\n\n(Start of turn)\n\n[ Gem | moving Player ] -> [ > Gem | moving Player ]\n\n[ ArrowCollision2 ] -> []\n[ ArrowCollision ] -> [ ArrowCollision2 ] again\n\n[ moving Player ] [ NeedsTick ] -> [ moving Player ] [ action NeedsTick ]\n\n[ TriggersSpikes action SpikeTrapArmed ] -> [ TriggersSpikes SpikeTrapArmed ]\n\n[ action SpikeTrapDeadly ] -> [ SpikeTrap ]\n\n[ action SpikeTrapArmed ] -> [ SpikeTrapDeadly ]\n\n[ TriggersSpikes action SpikeTrap ] -> [ TriggersSpikes SpikeTrapArmed ]\n\n(prevent player moving out of path of arrow)\nleft [ ArrowLeft | ... | moving Player ] -> cancel\nright [ ArrowRight | ... | moving Player ] -> cancel\nup [ ArrowUp | ... | moving Player ] -> cancel\ndown [ ArrowDown | ... | moving Player ] -> cancel\n\nleft [ ArrowLeft | ... | moving Gem ] -> cancel\nright [ ArrowRight | ... | moving Gem ] -> cancel\nup [ ArrowUp | ... | moving Gem ] -> cancel\ndown [ ArrowDown | ... | moving Gem ] -> cancel\n\n[ moving Player ] [ Arrow ] -> [ moving Player ] [ action Arrow ]\n\n(movement)\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Player | Gem ] -> [ > Player | > Gem ]\n\n[ > Gem | Solid ] -> cancel\n[ > Crate | Solid ] -> cancel\n[ > Player | stationary Solid ] -> cancel\n[ > Player | ArrowTrapAny ] -> cancel\n\n[ > Player | no Solid ] -> [ | Player ]\n[ > Crate | no Solid ] -> [ | Crate ]\n[ > Gem | no Solid ] -> [ | Gem ]\n[ > Player | no Solid ] -> [ | Player ]\n\n( death )\n\n[ Player SpikeTrapDeadly ] -> [ PlayerDead SpikeTrapDeadly ] again\n\n\n( end of turn )\n\n[ action ArrowTrapUpReady ] -> [ ArrowTrapUpReady up LOS ]\n[ action ArrowTrapDownReady ] -> [ ArrowTrapDownReady down LOS ]\n[ action ArrowTrapLeftReady ] -> [ ArrowTrapLeftReady left LOS ]\n[ action ArrowTrapRightReady ] -> [ ArrowTrapRightReady right LOS ]\n\n[ > LOS | Solid ] -> [ | Solid ]\n+ [ > LOS | no Solid no LOS no TriggersArrow ] -> [ | > LOS ]\n\n[ > LOS | TriggersArrow ] -> [ < LOS | TriggersArrow ]\n\n[ > LOS no ArrowTrapReady | no Solid no LOS ] -> [ | > LOS ]\n[ > LOS no ArrowTrapReady | ArrowTrapReady ] -> [ | LOS ArrowTrapReady ]\n\n[ LOS ArrowTrapUpReady ] -> [ ArrowTrapUpArmed ]\n[ LOS ArrowTrapDownReady ] -> [ ArrowTrapDownArmed ]\n[ LOS ArrowTrapLeftReady ] -> [ ArrowTrapLeftArmed ]\n[ LOS ArrowTrapRightReady ] -> [ ArrowTrapRightArmed ]\n\n[ LOS ] -> []\n\n[ action ArrowTrapUpArmed ] -> [ ArrowTrapUpFired ArrowUp ]\n[ action ArrowTrapDownArmed ] -> [ ArrowTrapDownFired ArrowDown ]\n[ action ArrowTrapLeftArmed ] -> [ ArrowTrapLeftFired ArrowLeft ]\n[ action ArrowTrapRightArmed ] -> [ ArrowTrapRightFired ArrowRight ]\n\n[ action ArrowTrapUpFiredAny ] -> [ ArrowTrapUpRearming2 ]\n[ action ArrowTrapDownFiredAny ] -> [ ArrowTrapDownRearming2 ]\n[ action ArrowTrapLeftFiredAny ] -> [ ArrowTrapLeftRearming2 ]\n[ action ArrowTrapRightFiredAny ] -> [ ArrowTrapRightRearming2 ]\n\n[ action ArrowTrapUpRearming ] -> [ ArrowTrapUpRearming2 ]\n[ action ArrowTrapDownRearming ] -> [ ArrowTrapDownRearming2 ]\n[ action ArrowTrapLeftRearming ] -> [ ArrowTrapLeftRearming2 ]\n[ action ArrowTrapRightRearming ] -> [ ArrowTrapRightRearming2 ]\n\n[ action ArrowTrapUpRearming2 ] -> [ ArrowTrapUpReady ]\n[ action ArrowTrapDownRearming2 ] -> [ ArrowTrapDownReady ]\n[ action ArrowTrapLeftRearming2 ] -> [ ArrowTrapLeftReady ]\n[ action ArrowTrapRightRearming2 ] -> [ ArrowTrapRightReady ]\n\n(arrows)\n\n[ stationary ArrowUp ] -> [ up ArrowUp ]\n[ stationary ArrowDown ] -> [ down ArrowDown ]\n[ stationary ArrowLeft ] -> [ left ArrowLeft ]\n[ stationary ArrowRight ] -> [ right ArrowRight ]\n\n[ > Arrow | Player ] -> [ | PlayerDead ] again\n[ > Arrow | no Solid no Arrow ] -> [ | Arrow ] (again)\n[ > Arrow | Gem ] -> [ | GemBroken no SpikeTrapAny ]\n[ > Arrow | Solid ] -> [ | Solid ] sfx1\n[ > Arrow | no Solid no Arrow ] -> [ | Arrow ] (again)\n+ [ > Arrow | stationary Arrow ] -> [ | ArrowCollision ] (again)\n[ > Arrow | Gem ] -> [ | GemBroken no SpikeTrapAny ]\n[ > Arrow | Solid ] -> [ | Solid ] sfx1\n\n([ Arrow SpikeTrapArmed ] -> [ SpikeTrapArmed ]\n[ Arrow SpikeTrapDeadly ] -> [ SpikeTrapDeadly ])\n\n(checkpoints)\n\n[ Player Target ] -> [ Player action Target ]\n[ Gem Target ] -> [ Gem action Target ]\n\n[ Gem ] [ action Target ] -> checkpoint\n\n[ Player | GemMarker ] -> [ Player | ] sfx2\n\n\n==============\nWINCONDITIONS\n==============\n\nall player on exit\nall gem on exit\nsome player\nsome gem\n\n=======\nLEVELS\n=======\n\n(###p##################\n###q##############!###\n##...############...o.\n##....###########...##\n##...%.#!########..###\n###.%..%..##........##\n####..~%.o..o.......##\n#####..%..##........##\n##############i#######\n######################\n\n#####!!!!##\n#####%%%.##\n#....%.%.##\n#o###%%%###\n..#..%%%###\n###.....###\n###..#...##\n###..##...o\n##}......##\n###########)\n\n(###p###################################################\n###q##############!####################################\n###.#############...#############################!#####\n##...############...o..o...%%########....o..o.#!#%#!###\n##....###########...######%%%########.%%##..o...%.%.###\n##...%.###########.#####}%%%%#########%%#######.#%#.###\n###.%..%..##........#####%%%%######}%%%%#####...#.%.###\n####...%.o..o.......######%....#####.%#######....%#..##\n#####..%..##........######....o....o..###########.....o\n##############i########################################\n#######################################################\n\n#######################################################\n################!!!!#############################!#####\n####!!##########%%%.#########...o.o.############...####\n##.......###....%.%.#########...o.o.######...o.....####\n##......o###o###%%%#####}.....#####....###o#####....{##\n####..##.....#..%%%######.....#####..%.##..#####...####\n####%%########.....#####}.....####}.%......######.#####\n####..########..#...#####.....#####..%.##..##}......###\n.o....########..##...o.o..#i#i#####....########......o.\n#############}......#################i#########.....###\n#######################################################\n\n#######################################################\n###########################!########!###!##############\n######..o....o..!#!#######%.%#####...%.%...###.......##\n######...#####.....#######%.%#####...%.%...###.......##\n##}..%%#######}..%%#####..%.%..{###..###..####.......##\n##}.%%.%#######..%%#####..%.%%%{##}..###..####...~...##\n####..%%######}....#####..###%%###}..###..####.......##\n##..%.%%##########...o.o..###..####..###...o.o.......##\n..o##ii###########...o.o..###..o..o..###...o.o.......##\n#############################........##################\n#######################################################)\n\n###p#################################################################################################################################################################\n###q##############!####################################################!!!!#############################!################################!########!###!##############\n###.#############...#############################!#########!!##########%%%.#########...o.o.############...##########..o....o..!#!#######%.%#####...%.%...###.......##\n##...############...o..o...%%########....o..o.#!#%#!#####.......###....%.%.#########...o.o.######...o.....##########...#####.....#######%.%#####...%.%...###.......##\n##....###########...######%%%########.%%##..o...%.%.#####......o###o###%%%#####}.....#####....###o#####....{####}..%%#######}..%%#####..%.%..{###..###..####.......##\n##...%.###########.#####}%%%%#########%%#######.#%#.#######..##.....#..%%%######.....#####..%.##..#####...######}.%%.%#######..%%#####..%.%%%{##}..###..####...~...##\n###.%..%..##........#####%%%%######}%%%%#####...#.%.#######%%########.....#####}.....####}.%......######.#########..%%######}....#####..###%%###}..###..####.......##\n####...%.o..o.......######%....#####.%#######....%#..######..########..#...#####.....#####..%.##..##}......#####..%.%%##########...o.o..###..####..###...o.o.......##\n#####..%..##........######....o....o..###########.....o.o....########..##...o.o..#i#i#####....########......o...o##ii###########...o.o..###..o..o..###...o.o.......##\n##############i#####################################################}......#################i#########.....################################........##################\n#####################################################################################################################################################################\n\n\nmessage Thanks for playing :)\n\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", 2, 3, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "undo", "tick", "tick", "tick", "undo", "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,background wall walldr:1,background wall wallr:2,2,2,background wall wallur:3,0,0,0,0,2,2,background wall walld wallr:4,background:5,5,5,background wall wallr wallu:6,3,0,0,0,background exit:7,7,5,5,5,5,5,6,3,0,0,background wall walll:8,8,background wall walld walll:9,5,5,5,background nopattern spiketrap:10,5,6,3,0,0,0,background wall walldl:11,9,5,10,5,5,5,background wall wallu:12,0,0,0,0,11,9,5,5,5,5,12,0,0,0,0,0,11,9,10,10,10,12,0,0,0,0,0,0,background wall walld:13,5,5,5,12,0,0,0,0,0,0,13,5,background target:14,5,12,0,0,0,0,0,0,11,9,5,background wall walll wallu:15,background wall wallul:16,0,0,0,0,0,0,1,4,5,6,3,0,0,0,0,0,0,13,5,14,5,12,0,0,0,0,0,0,13,5,5,5,6,3,0,0,0,0,0,13,5,5,5,arrowtrapupready background nopattern:17,12,\n0,0,0,0,0,13,5,5,5,15,16,0,1,2,2,2,background wall walld wallrud:18,5,5,5,12,0,1,4,5,5,5,background wall wallr wallud:19,5,5,5,12,0,13,arrowtrapdownready background nopattern:20,5,5,5,5,5,5,5,12,0,11,9,5,5,5,background wall walll wallud:21,5,5,5,12,0,0,11,9,14,15,background wall walllud:22,8,8,8,16,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,14,background wall wallrud wallu:23,2,3,0,0,0,0,0,0,13,5,background wall wallud:24,arrowtraprightready background nopattern:25,6,3,0,0,0,0,0,13,5,19,10,10,6,2,3,0,0,0,13,5,10,10,background nopattern spiketrapdeadly:26,background nopattern spiketraparmed:27,5,12,0,0,0,13,10,10,10,10,background player:28,5,12,0,0,0,13,10,10,10,10,5,5,12,0,0,0,11,8,8,8,9,5,5,12,0,\n0,0,0,0,0,0,13,5,14,12,0,0,0,0,0,0,0,11,9,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,1,2,18,5,12,0,0,0,0,0,0,13,25,19,14,12,0,0,0,1,2,2,18,10,5,5,12,0,0,0,13,5,5,19,10,10,5,12,0,0,0,13,5,10,10,10,15,8,16,0,0,0,13,5,10,10,10,12,0,0,0,0,0,13,5,15,8,8,16,0,0,0,0,0,13,14,6,3,0,0,0,0,0,0,0,13,5,5,12,0,0,0,0,0,0,0,13,5,5,12,0,0,0,0,0,0,0,13,14,14,23,2,2,3,0,0,\n0,0,13,5,5,24,5,5,12,0,0,0,0,background wall walldlr:29,background wall walld walllr:30,5,19,5,5,12,0,0,0,0,13,20,5,5,5,5,12,0,0,0,1,background wall walldlr wallr:31,30,10,background wall walllr wallu:32,30,5,6,3,0,0,13,20,10,5,10,5,10,5,12,0,0,11,background wall walldlr walll:33,30,10,background wall walllr wallud:34,10,34,5,12,0,0,0,13,20,5,5,5,5,5,12,0,0,0,11,8,8,8,9,5,5,12,0,0,0,0,0,0,0,11,9,5,12,0,0,0,0,0,0,0,0,13,14,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,1,2,2,3,0,13,14,12,0,0,0,13,5,5,12,0,13,5,12,0,0,1,4,5,5,6,2,4,5,12,0,0,13,20,5,5,5,10,5,5,12,0,\n0,13,20,5,5,5,10,5,5,12,0,0,11,9,5,5,15,8,8,8,16,0,0,0,13,5,5,6,3,0,0,0,0,0,0,13,5,14,5,12,0,0,0,0,0,0,11,8,9,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,1,2,4,5,12,0,0,0,0,0,0,13,5,14,5,12,0,1,2,3,0,0,13,5,background wall walll wallrud wallu:35,background wall walllr:36,background wall wallr wallulr:37,2,4,25,12,0,0,13,5,24,5,5,5,5,5,12,1,2,4,5,19,5,5,5,5,5,12,13,20,10,10,10,10,5,32,background wall walld walll wallrud:38,5,12,13,20,10,5,10,10,5,5,19,5,12,13,20,10,10,10,10,5,5,5,5,12,13,20,5,5,15,8,9,5,5,5,12,\n11,8,8,8,16,0,11,9,5,15,16,0,0,0,0,0,0,0,13,14,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,1,2,background wall wallrud:39,2,18,14,12,0,0,0,0,13,25,19,25,19,5,12,0,0,0,0,13,5,5,5,5,5,12,0,0,0,0,13,5,5,5,5,32,background wall wallulr:40,0,0,0,0,13,5,5,5,5,17,12,0,0,1,2,4,5,5,5,5,32,40,0,0,13,5,5,5,5,5,5,17,12,0,0,13,5,5,15,8,8,8,8,16,0,0,13,5,5,12,0,0,0,0,0,0,0,13,14,14,12,0,0,0,0,0,0,0,13,5,5,12,1,2,3,0,0,0,0,13,14,14,6,4,25,6,2,3,0,\n0,13,5,5,5,5,5,5,5,12,0,0,11,8,9,5,5,10,5,5,6,3,0,0,0,13,5,10,5,10,5,17,12,0,0,0,13,5,5,5,5,5,15,16,0,0,0,11,8,9,5,15,8,16,0,0,0,0,0,1,4,5,6,3,0,0,0,0,1,2,4,5,5,5,12,0,0,0,0,13,5,14,5,5,5,12,0,0,0,0,13,5,15,8,8,8,16,0,0,0,0,13,5,12,0,1,2,3,0,0,0,0,13,14,12,0,13,25,12,0,0,0,0,13,5,12,0,13,5,6,2,3,0,1,4,5,6,2,18,5,5,5,12,1,4,5,5,5,5,19,5,5,5,12,13,20,5,5,5,5,5,5,5,5,12,\n11,9,5,5,5,5,21,5,5,5,12,0,11,8,9,5,15,background wall walld walllud:41,5,5,5,12,0,0,0,13,arrowtrapleftready background nopattern:42,12,11,9,5,15,16,0,0,0,11,8,16,0,13,14,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,1,2,2,39,4,5,12,0,0,0,0,13,25,25,24,5,14,12,0,0,0,0,13,5,5,19,5,15,16,0,0,0,0,13,5,10,5,10,6,3,0,0,1,2,4,10,10,5,5,17,12,0,0,13,5,5,10,5,10,10,17,12,0,0,13,5,5,21,10,10,10,15,16,0,0,13,14,5,background wall walllud wallu:43,8,8,8,16,0,0,0,13,5,15,16,0,0,0,0,0,0,\n0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,14,6,2,39,2,3,0,0,0,0,13,5,5,25,19,25,12,0,0,0,0,13,5,5,5,5,5,12,0,0,0,0,13,20,5,5,5,5,12,0,0,0,0,29,30,5,10,10,5,6,2,3,0,0,13,20,5,10,10,5,5,5,12,0,0,11,8,8,8,8,9,5,5,12,0,0,0,0,0,0,0,13,5,5,12,0,0,0,0,0,0,0,13,14,14,12,0,0,0,0,0,0,0,13,5,5,12,0,0,0,0,1,2,2,4,14,14,12,0,0,0,0,13,5,5,5,5,5,12,0,\n0,1,2,4,5,5,5,5,5,12,0,1,4,10,10,10,10,15,8,8,16,0,13,20,5,5,5,5,12,0,0,0,0,11,9,10,10,10,10,6,2,2,2,3,0,11,8,9,5,10,10,5,5,5,12,0,0,0,13,5,10,10,5,5,5,12,0,0,0,13,42,42,15,9,14,5,12,0,0,0,11,8,8,16,13,5,5,12,0,1,2,2,39,2,2,18,5,5,12,0,13,5,5,19,25,25,19,14,5,12,1,4,5,5,5,5,5,5,5,5,12,13,20,5,5,5,5,5,5,5,5,12,11,9,10,10,15,8,8,8,8,8,16,0,13,5,5,12,0,0,0,0,0,0,1,4,10,10,6,2,2,2,2,3,0,\n13,20,5,5,5,5,5,5,5,12,0,11,9,5,5,5,5,5,5,5,12,0,0,13,5,5,15,8,9,5,5,12,0,0,11,8,8,16,0,13,14,14,12,0,0,0,0,0,0,0,13,5,5,12,0,0,1,2,2,2,2,4,14,14,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,background gem gemmarker:44,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,11,8,8,8,8,8,8,8,16,0,0,0,0,0,0,0,0,0,0,0,0,\n", 0, "1627779607469.4893"] ], [ `gallery: XL-Plan`, - ["title XL-Plan\nauthor Mark Richardson\nflickscreen 9x11\nkey_repeat_interval 0.5\nnoaction\nrequire_player_movement\nrun_rules_on_level_start\n(verbose_logging)\n\n\n========\nOBJECTS\n========\n\nBackground .\nBlack\n\nPlayer\n#800\n\nNext $\n#008\n\nRefill &\nTransparent (#066)\n\nGoal {\n#660\n\nCursor1\n#080\n\nCursor2\n#080\n\nCursor3\n#080\n\nWall #\n#222\n\nZ\nWhite\n.....\n.....\n..0..\n.....\n.....\n\nI\nWhite\n.....\n..0..\n..0..\n..0..\n.....\n\nU\nWhite\n.....\n.0.0.\n.0.0.\n..0..\n.....\n\nX\nWhite\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nL\nWhite\n.....\n.0...\n.0...\n.000.\n.....\n\nC\nWhite\n.....\n..00.\n.0...\n..00.\n.....\n\nD\nWhite\n.....\n.00..\n.0.0.\n.00..\n.....\n\nM\nWhite Gray\n.....\n.000.\n.010.\n.0.0.\n.....\n\nHyphen -\nWhite\n.....\n.....\n00000\n.....\n.....\n\nP\nWhite\n.00..\n.0.0.\n.00..\n.0...\n.....\n\nA\nWhite\n.....\n..00.\n.0.0.\n..00.\n.....\n\nN\nWhite\n.....\n.00..\n.0.0.\n.0.0.\n.....\n\n\n=======\nLEGEND\n=======\n\n@ = Player and Z\n1 = Cursor1 and Z\n2 = Cursor2 and Z\n3 = Cursor3 and Z\n\nNumeral = I or U or X or L or C or D or M or Z\nNotI = U or X or L or C or D or M or Z\nNotU = I or X or L or C or D or M or Z\nNotX = I or U or L or C or D or M or Z\nNotL = I or U or X or C or D or M or Z\nNotC = I or U or X or L or D or M or Z\nNotD = I or U or X or L or C or M or Z\nNotM = I or U or X or L or C or D or Z\nNotZ = I or U or X or L or C or D or M\nText = P or A or N or Hyphen\nCursor = Cursor1 or Cursor2 or Cursor3\n\n=======\nSOUNDS\n=======\n\nPlayer Move 73969707\nCancel 87888304\nUndo 87888304\nRestart 38699508\nEndLevel 16741708\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Next, Refill, Cursor1, Cursor2, Cursor3\nNumeral, Text, Goal\n\n\n======\nRULES\n======\n\n[Next I][> Player|NotI]->cancel\n[Next U][> Player|NotU]->cancel\n[Next X][> Player|NotX]->cancel\n[Next L][> Player|NotL]->cancel\n[Next C][> Player|NotC]->cancel\n[Next D][> Player|NotD]->cancel\n[Next M][> Player|NotM]->cancel\n[Next Z][> Player|NotZ]->cancel\n\nlate[Next Numeral][Player]->[Next][Player Numeral]\nlate right[Next no Numeral|Numeral]->[Next Numeral|]\nlate right[Next|...|no Numeral|Numeral]->[Next|...|Numeral|]\n\nstartloop\nlate random down[Refill no Numeral][Cursor1|]->[Refill][|Cursor1]\nlate down[||||||||||Cursor1][Cursor2|]->[Cursor1||||||||||][|Cursor2]\nlate down[||||||||||Cursor2][Cursor3|]->[Cursor2||||||||||][|Cursor3]\nlate down[||||||||||Cursor3]->win\nlate right[Refill no Numeral|...|no Numeral][Cursor3 Numeral|]->[Refill|...|Numeral][Numeral|Cursor3]\nlate right[Refill no Numeral|...|no Numeral][Cursor2 Numeral|]->[Refill|...|Numeral][Numeral|Cursor2]\nlate right[Refill no Numeral|...|no Numeral][Cursor1 Numeral|]->[Refill|...|Numeral][Numeral|Cursor1]\nlate right[Numeral|Cursor]->[Numeral Cursor|]\nlate right[Refill no Numeral|...|Z]->[Refill|...|]\nlate right[Refill no Numeral|...|no Numeral|Numeral]->[Refill no Numeral|...|Numeral|]\nlate random right[Refill no Numeral|...|no Numeral]->[Refill|...|Z]\n late right[Next no Numeral|Numeral]->[Next Numeral|]\n+ late right[Next|...|no Numeral|Numeral]->[Next|...|Numeral|]\nendloop\n\nlate right[Goal|Cursor1][Goal|Cursor2][Goal|Cursor3][Refill]->[|][|][|][]\nlate[Next no Numeral]->win\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\nmessage XL-Plan is a variant of the XL-Up maze.\nmessage The goal of XL-Plan is to build and walk through a grid of figures, writing out roman numerals in ascending order.\nmessage The final roman numeral is shown at the top of the screen. The next figures are shown at the bottom of the screen.\nmessage Each step you take must be on to a space showing the next figure, or an empty space that will become the next figure.\n\nUII--PLAN{3ZZZ{2ZZZ.1ZZZ.\n..........CZZZ.XZZZ.IZZZ.\n..........CCZZ.XXZZ.IIZZ.\n..#####...CCCZ.XXXZ.IIIZ.\n..#...#...CDZZ.XLZZ.IUZZ.\n..#.@.#...DZZZ.LZZZ.UZZZ.\n..#...#...DCZZ.LXZZ.UIZZ.\n..#####...DCCZ.LXXZ{UIIZ.\n..........DCCC.LXXX.UIII.\n..........CMZZ.XCZZ.IXZZ.\n$.......&................\n\nXXI--PLAN{3ZZZ.2ZZZ.1ZZZ.\n..........CZZZ{XZZZ.IZZZ.\n.#######..CCZZ.XXZZ.IIZZ.\n.#.....#..CCCZ.XXXZ.IIIZ.\n.#.....#..CDZZ.XLZZ.IUZZ.\n.#..@..#..DZZZ.LZZZ.UZZZ.\n.#.....#..DCZZ.LXZZ.UIZZ.\n.#######..DCCZ.LXXZ.UIIZ.\n..........DCCC.LXXX.UIII.\n..........CMZZ.XCZZ{IXZZ.\n$.......&................\n\nXXU--PLAN{3ZZZ.2ZZZ.1ZZZ.\n..........CZZZ.XZZZ.IZZZ.\n.#######..CCZZ{XXZZ.IIZZ.\n.#.....#..CCCZ.XXXZ.IIIZ.\n.#.....#..CDZZ.XLZZ.IUZZ.\n.#..@..#..DZZZ.LZZZ{UZZZ.\n.#.....#..DCZZ.LXZZ.UIZZ.\n.#.....#..DCCZ.LXXZ.UIIZ.\n.#######..DCCC.LXXX.UIII.\n..........CMZZ.XCZZ.IXZZ.\n$.......&................\n\n.L--PLAN.{3ZZZ.2ZZZ{1ZZZ.\n#########.CZZZ.XZZZ.IZZZ.\n#.......#.CCZZ.XXZZ.IIZZ.\n#.......#.CCCZ.XXXZ.IIIZ.\n#.......#.CDZZ.XLZZ.IUZZ.\n#...@...#.DZZZ{LZZZ.UZZZ.\n#.......#.DCZZ.LXZZ.UIZZ.\n#.......#.DCCZ.LXXZ.UIIZ.\n#.......#.DCCC.LXXX.UIII.\n#########.CMZZ.XCZZ.IXZZ.\n$.......&................\n\n",[3,0,1,1,2,2,3,1,0,0,0,3,1,3,1,2,1,0,2],"background x:0,background:1,1,1,1,1,1,1,1,1,background i next:2,0,1,background wall:3,3,3,3,3,3,3,1,background i:4,background u:5,1,3,\nbackground player u:6,background z:7,1,1,1,3,1,7,background hyphen:8,1,3,5,4,7,4,1,3,1,5,8,1,3,7,4,7,\n4,1,3,1,4,background p:9,1,3,1,7,4,1,1,3,1,4,background l:10,1,3,1,1,1,1,1,3,\n1,4,a background:11,1,3,3,3,3,3,3,3,1,7,background n:12,1,1,1,1,1,1,1,1,1,background i refill:13,background goal:14,\n1,1,1,1,1,1,1,1,1,0,background cursor3 z:15,background c:16,16,16,16,background d:17,17,17,17,16,7,7,7,16,16,\n17,7,16,16,16,background m:18,1,7,7,7,16,7,7,7,16,16,7,1,7,7,7,7,7,7,7,\n7,16,7,1,1,1,14,1,1,1,1,1,1,1,1,background cursor2 z:19,0,0,0,0,10,10,10,10,0,\n1,7,7,0,0,10,7,0,0,0,16,1,7,7,7,0,7,7,7,0,0,7,1,7,7,\n7,7,7,7,7,7,0,7,1,1,1,1,1,1,14,1,1,1,1,1,7,4,4,4,4,\n5,5,5,5,background cursor1 i:20,1,7,7,4,4,5,7,4,4,4,0,1,7,7,7,4,7,7,7,4,\n4,7,1,7,7,7,7,7,7,7,7,4,7,1,1,1,1,1,1,1,1,1,1,1,1,\n",6,"1627779632918.6895"] + ["title XL-Plan\nauthor Mark Richardson\nflickscreen 9x11\nkey_repeat_interval 0.5\nnoaction\nrequire_player_movement\nrun_rules_on_level_start\n(verbose_logging)\n\n\n========\nOBJECTS\n========\n\nBackground .\nBlack\n\nPlayer\n#800\n\nNext $\n#008\n\nRefill &\nTransparent (#066)\n\nGoal {\n#660\n\nCursor1\n#080\n\nCursor2\n#080\n\nCursor3\n#080\n\nWall #\n#222\n\nZ\nWhite\n.....\n.....\n..0..\n.....\n.....\n\nI\nWhite\n.....\n..0..\n..0..\n..0..\n.....\n\nU\nWhite\n.....\n.0.0.\n.0.0.\n..0..\n.....\n\nX\nWhite\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nL\nWhite\n.....\n.0...\n.0...\n.000.\n.....\n\nC\nWhite\n.....\n..00.\n.0...\n..00.\n.....\n\nD\nWhite\n.....\n.00..\n.0.0.\n.00..\n.....\n\nM\nWhite Gray\n.....\n.000.\n.010.\n.0.0.\n.....\n\nHyphen -\nWhite\n.....\n.....\n00000\n.....\n.....\n\nP\nWhite\n.00..\n.0.0.\n.00..\n.0...\n.....\n\nA\nWhite\n.....\n..00.\n.0.0.\n..00.\n.....\n\nN\nWhite\n.....\n.00..\n.0.0.\n.0.0.\n.....\n\n\n=======\nLEGEND\n=======\n\n@ = Player and Z\n1 = Cursor1 and Z\n2 = Cursor2 and Z\n3 = Cursor3 and Z\n\nNumeral = I or U or X or L or C or D or M or Z\nNotI = U or X or L or C or D or M or Z\nNotU = I or X or L or C or D or M or Z\nNotX = I or U or L or C or D or M or Z\nNotL = I or U or X or C or D or M or Z\nNotC = I or U or X or L or D or M or Z\nNotD = I or U or X or L or C or M or Z\nNotM = I or U or X or L or C or D or Z\nNotZ = I or U or X or L or C or D or M\nText = P or A or N or Hyphen\nCursor = Cursor1 or Cursor2 or Cursor3\n\n=======\nSOUNDS\n=======\n\nPlayer Move 73969707\nCancel 87888304\nUndo 87888304\nRestart 38699508\nEndLevel 16741708\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Next, Refill, Cursor1, Cursor2, Cursor3\nNumeral, Text, Goal\n\n\n======\nRULES\n======\n\n[Next I][> Player|NotI]->cancel\n[Next U][> Player|NotU]->cancel\n[Next X][> Player|NotX]->cancel\n[Next L][> Player|NotL]->cancel\n[Next C][> Player|NotC]->cancel\n[Next D][> Player|NotD]->cancel\n[Next M][> Player|NotM]->cancel\n[Next Z][> Player|NotZ]->cancel\n\nlate[Next Numeral][Player]->[Next][Player Numeral]\nlate right[Next no Numeral|Numeral]->[Next Numeral|]\nlate right[Next|...|no Numeral|Numeral]->[Next|...|Numeral|]\n\nstartloop\nlate random down[Refill no Numeral][Cursor1|]->[Refill][|Cursor1]\nlate down[||||||||||Cursor1][Cursor2|]->[Cursor1||||||||||][|Cursor2]\nlate down[||||||||||Cursor2][Cursor3|]->[Cursor2||||||||||][|Cursor3]\nlate down[||||||||||Cursor3]->win\nlate right[Refill no Numeral|...|no Numeral][Cursor3 Numeral|]->[Refill|...|Numeral][Numeral|Cursor3]\nlate right[Refill no Numeral|...|no Numeral][Cursor2 Numeral|]->[Refill|...|Numeral][Numeral|Cursor2]\nlate right[Refill no Numeral|...|no Numeral][Cursor1 Numeral|]->[Refill|...|Numeral][Numeral|Cursor1]\nlate right[Numeral|Cursor]->[Numeral Cursor|]\nlate right[Refill no Numeral|...|Z]->[Refill|...|]\nlate right[Refill no Numeral|...|no Numeral|Numeral]->[Refill no Numeral|...|Numeral|]\nlate random right[Refill no Numeral|...|no Numeral]->[Refill|...|Z]\n late right[Next no Numeral|Numeral]->[Next Numeral|]\n+ late right[Next|...|no Numeral|Numeral]->[Next|...|Numeral|]\nendloop\n\nlate right[Goal|Cursor1][Goal|Cursor2][Goal|Cursor3][Refill]->[|][|][|][]\nlate[Next no Numeral]->win\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\nmessage XL-Plan is a variant of the XL-Up maze.\nmessage The goal of XL-Plan is to build and walk through a grid of figures, writing out roman numerals in ascending order.\nmessage The final roman numeral is shown at the top of the screen. The next figures are shown at the bottom of the screen.\nmessage Each step you take must be on to a space showing the next figure, or an empty space that will become the next figure.\n\nUII--PLAN{3ZZZ{2ZZZ.1ZZZ.\n..........CZZZ.XZZZ.IZZZ.\n..........CCZZ.XXZZ.IIZZ.\n..#####...CCCZ.XXXZ.IIIZ.\n..#...#...CDZZ.XLZZ.IUZZ.\n..#.@.#...DZZZ.LZZZ.UZZZ.\n..#...#...DCZZ.LXZZ.UIZZ.\n..#####...DCCZ.LXXZ{UIIZ.\n..........DCCC.LXXX.UIII.\n..........CMZZ.XCZZ.IXZZ.\n$.......&................\n\nXXI--PLAN{3ZZZ.2ZZZ.1ZZZ.\n..........CZZZ{XZZZ.IZZZ.\n.#######..CCZZ.XXZZ.IIZZ.\n.#.....#..CCCZ.XXXZ.IIIZ.\n.#.....#..CDZZ.XLZZ.IUZZ.\n.#..@..#..DZZZ.LZZZ.UZZZ.\n.#.....#..DCZZ.LXZZ.UIZZ.\n.#######..DCCZ.LXXZ.UIIZ.\n..........DCCC.LXXX.UIII.\n..........CMZZ.XCZZ{IXZZ.\n$.......&................\n\nXXU--PLAN{3ZZZ.2ZZZ.1ZZZ.\n..........CZZZ.XZZZ.IZZZ.\n.#######..CCZZ{XXZZ.IIZZ.\n.#.....#..CCCZ.XXXZ.IIIZ.\n.#.....#..CDZZ.XLZZ.IUZZ.\n.#..@..#..DZZZ.LZZZ{UZZZ.\n.#.....#..DCZZ.LXZZ.UIZZ.\n.#.....#..DCCZ.LXXZ.UIIZ.\n.#######..DCCC.LXXX.UIII.\n..........CMZZ.XCZZ.IXZZ.\n$.......&................\n\n.L--PLAN.{3ZZZ.2ZZZ{1ZZZ.\n#########.CZZZ.XZZZ.IZZZ.\n#.......#.CCZZ.XXZZ.IIZZ.\n#.......#.CCCZ.XXXZ.IIIZ.\n#.......#.CDZZ.XLZZ.IUZZ.\n#...@...#.DZZZ{LZZZ.UZZZ.\n#.......#.DCZZ.LXZZ.UIZZ.\n#.......#.DCCZ.LXXZ.UIIZ.\n#.......#.DCCC.LXXX.UIII.\n#########.CMZZ.XCZZ.IXZZ.\n$.......&................\n\n", [3, 0, 1, 1, 2, 2, 3, 1, 0, 0, 0, 3, 1, 3, 1, 2, 1, 0, 2], "background x:0,background:1,1,1,1,1,1,1,1,1,background i next:2,0,1,background wall:3,3,3,3,3,3,3,1,background i:4,background u:5,1,3,\nbackground player u:6,background z:7,1,1,1,3,1,7,background hyphen:8,1,3,5,4,7,4,1,3,1,5,8,1,3,7,4,7,\n4,1,3,1,4,background p:9,1,3,1,7,4,1,1,3,1,4,background l:10,1,3,1,1,1,1,1,3,\n1,4,a background:11,1,3,3,3,3,3,3,3,1,7,background n:12,1,1,1,1,1,1,1,1,1,background i refill:13,background goal:14,\n1,1,1,1,1,1,1,1,1,0,background cursor3 z:15,background c:16,16,16,16,background d:17,17,17,17,16,7,7,7,16,16,\n17,7,16,16,16,background m:18,1,7,7,7,16,7,7,7,16,16,7,1,7,7,7,7,7,7,7,\n7,16,7,1,1,1,14,1,1,1,1,1,1,1,1,background cursor2 z:19,0,0,0,0,10,10,10,10,0,\n1,7,7,0,0,10,7,0,0,0,16,1,7,7,7,0,7,7,7,0,0,7,1,7,7,\n7,7,7,7,7,7,0,7,1,1,1,1,1,1,14,1,1,1,1,1,7,4,4,4,4,\n5,5,5,5,background cursor1 i:20,1,7,7,4,4,5,7,4,4,4,0,1,7,7,7,4,7,7,7,4,\n4,7,1,7,7,7,7,7,7,7,7,4,7,1,1,1,1,1,1,1,1,1,1,1,1,\n", 6, "1627779632918.6895"] ], [ `gallery: Play Mini Gemini Replay (PMGRP)`, - ["title Play Mini Gemini Replay PMGRP\nauthor Pedro PSI\nhomepage pedropsi.github.io\n(License: Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0))\n\n(last updated 20/06/2018)\n\nbackground_color #044700 (darkest green)\ntext_color #FFFF2C (yellow)\n\nyoutube Qelelnc1NKg (Space Flight by Tim Beek)\n\nrealtime_interval 0.166\nkey_repeat_interval 0.166\nthrottle_movement\n\nrun_rules_on_level_start\n\n(Palette\n-----------------\n#044700 (darkest green)\n#087102 (dark green)\n#FFFF2C (yellow)\n\n#FF9703 (player orange)\n#FF8403 (pdayer orange)\n)\n========\nOBJECTS\n========\n\nBackground\n#044700 (darkest green)\n\nWall\n#087102 (dark green)\n\ncUL\n#044700 (darkest green)\n..0..\n..0..\n000..\n.....\n.....\n\ncUR\n#044700 (darkest green)\n..0..\n..0..\n..000\n.....\n.....\n\ncDL\n#044700 (darkest green)\n.....\n.....\n000..\n..0..\n..0..\n\ncDR\n#044700 (darkest green)\n.....\n.....\n..000\n..0..\n..0..\n\n\ncH\n#044700 (darkest green)\n.....\n.....\n00000\n.....\n.....\n\ncV\n#044700 (darkest green)\n..0..\n..0..\n..0..\n..0..\n..0..\n\ncDot\n#044700 (darkest green)\n.....\n.000.\n.0.0.\n.000.\n.....\n\ncl\n#044700 (darkest green)\n.....\n.....\n0....\n.....\n.....\n\ncu\n#044700 (darkest green)\n..0..\n.....\n.....\n.....\n.....\n\ncr\n#044700 (darkest green)\n.....\n.....\n....0\n.....\n.....\n\ncd\n#044700 (darkest green)\n.....\n.....\n.....\n.....\n..0..\n\n\ntrycD\ntransparent\ntrycU\ntransparent\ntrycL\ntransparent\ntrycR\ntransparent\n\nHubDotL\n#087102 (dark green) #044700 (darkest green)\n.....\n0...0\n0111.\n0....\n.....\n\nHubDotR\n#087102 (dark green) #044700 (darkest green)\n.....\n0...0\n.1110\n....0\n.....\n\n\nHubUp\n#044700 (darkest green)\n.....\n00000\n00.00\n.....\n.....\n\nHubUp2\n#044700 (darkest green)\n.....\n.0.0.\n00000\n.....\n.....\n\nHubDown\n#044700 (darkest green)\n.....\n.....\n00.00\n00000\n.....\n\nHubDown2\n#044700 (darkest green)\n.....\n.....\n00000\n.000.\n.....\n\n\nThrownLeft1\n#FFFF2C (yellow)\n.....\n..000\n.000.\n..000\n.....\n\nThrownLeft2\n#FFFF2C (yellow)\n.....\n..00.\n.00..\n..00.\n.....\n\nThrownLeft3\n#FFFF2C (yellow)\n.....\n..0..\n.0...\n..0..\n.....\n\nThrownRight1\n#FFFF2C (yellow)\n.....\n000..\n.000.\n000..\n.....\n\nThrownRight2\n#FFFF2C (yellow)\n.....\n.00..\n..00.\n.00..\n.....\n\nThrownRight3\n#FFFF2C (yellow)\n.....\n..0..\n...0.\n..0..\n.....\n\nGoal\ntransparent \n\nGoal1\n#FFFF2C (yellow)\n.....\n...0.\n.....\n.....\n.....\n\nGoal2\n#FFFF2C (yellow)\n.....\n...0.\n..0..\n.....\n.....\n\nGoal3\n#FFFF2C (yellow)\n.....\n...0.\n..0..\n.0...\n.....\n\nGoal4\n#FFFF2C (yellow)\n.....\n.0.0.\n..0..\n.0...\n.....\n\nGoal5\n#FFFF2C (yellow)\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nGoal6\ntransparent\n\nDeco5\n#FFFF2C (yellow)\n.....\n00000\n.....\n.....\n.....\n\nDeco4\n#FFFF2C (yellow)\n.000.\n.....\n.....\n.....\n.....\n\nDeco3\n#FFFF2C (yellow)\n.....\n.....\n.....\n.....\n.0.0.\n\nDeco2\n#FFFF2C (yellow)\n.....\n.....\n.....\n.000.\n.....\n\nDeco1\n#FFFF2C (yellow)\n.....\n.....\n00000\n.....\n.....\n\nOver10\n#044700 (darkest green)\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n\nOver9\n#044700 (darkest green)\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n.....\n\nOver8\n#044700 (darkest green)\n.0.0.\n.0.0.\n.0.0.\n.....\n.....\n\nOver7\n#044700 (darkest green)\n.0.0.\n.0.0.\n.....\n.....\n.....\n\nOver6\n#044700 (darkest green)\n.0.0.\n.....\n.....\n.....\n.....\n\nOver5\n#044700 (darkest green)\n.000.\n00000\n00000\n.000.\n.0.0.\n\nOver4\n#044700 (darkest green)\n.000.\n00000\n00000\n.000.\n.....\n\nOver3\n#044700 (darkest green)\n.000.\n00000\n00000\n.....\n.....\n\nOver2\n#044700 (darkest green)\n.000.\n00000\n.....\n.....\n.....\n\nOver1\n#044700 (darkest green)\n.000.\n.....\n.....\n.....\n.....\n\n\n\nO\n#FFFF2C (yellow) #087102 (dark green) \n.....\n.000.\n.010.\n.000.\n.....\n\n\nAr\n#FFFF2C (yellow) #044700 (darkest green)\n11111\n10011\n11001\n10011\n11111\n\nAl\n#FFFF2C (yellow) #044700 (darkest green)\n11111\n11001\n10011\n11001\n11111\n\nAd\n#FFFF2C (yellow) #044700 (darkest green)\n11111\n10101\n10001\n11011\n11111\n\nAu\n#FFFF2C (yellow) #044700 (darkest green)\n11111\n11011\n10001\n10101\n11111\n\nArI\n#044700 (darkest green) #FFFF2C (yellow)\n11111\n10011\n11001\n10011\n11111\n\nAlI\n#044700 (darkest green) #FFFF2C (yellow)\n11111\n11001\n10011\n11001\n11111\n\nAdI\n#044700 (darkest green) #FFFF2C (yellow)\n11111\n10101\n10001\n11011\n11111\n\nAuI\n#044700 (darkest green) #FFFF2C (yellow)\n11111\n11011\n10001\n10101\n11111\n\n\nStorageTick T\n#FFFF2C (yellow)\n0...0\n.....\n..0..\n.....\n0...0\n\nStorage -\n#087102 (dark green)\n.....\n.....\n..0..\n.....\n.....\n\nReplay »\ntransparent\n(white \n.0...\n.000.\n.0.0.\n.000.\n...0.)\n\nFreePlay !\ntransparent\n(white \n.....\n0000.\n.0000\n0000.\n.....\n)\n\nStopPlay _\ntransparent (white \n.0...\n.0.0.\n.....\n.0.0.\n...0.\n)\nOnce\ntransparent\nRead\ntransparent\nTry\ntransparent\n\nRegisterSymbol &\nred\n\nPlayer\n#FF9703 (player orange) #FF8403 (pdayer orange)\n.000.\n00000\n10001\n.111.\n.1.1.\n\nPlayerLegs\n#FF9703 (pdayer orange) #FF8403 (player orange)\n.1.1.\n.1.1.\n.1.1.\n.1.1.\n.0.0.\n\nPlayer2\n#FF9703 (player orange) #FF8403 (pdayer orange)\n.000.\n00000\n10001\n.111.\n.1.1.\n\nPlayerLegs2\n#FF9703 (pdayer orange) #FF8403 (player orange)\n.1.1.\n.1.1.\n.1.1.\n.1.1.\n.0.0.\n\nPlayer2Cover\n#FFFF2C (yellow)\n.000.\n00000\n00000\n.000.\n.0.0.\n\nPlayerLegs2Cover\n#FFFF2C (yellow)\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n\nThrArmR\n#044700 (darkest green) #FF8403 (pdayer orange)\n1....\n.....\n0....\n.....\n.....\n\nThrArmL\n#044700 (darkest green) #FF8403 (pdayer orange)\n....1\n.....\n....0\n.....\n.....\n\nThrArmRCover\n#044700 (darkest green) #FFFF2C (yellow)\n1....\n.....\n0....\n.....\n.....\n\nThrArmLCover\n#044700 (darkest green) #FFFF2C (yellow)\n....1\n.....\n....0\n.....\n.....\n\nNextLegs\ntransparent\n\nPlayerDrop\ntransparent\n\nGravity G\ntransparent\n\nWait\ntransparent\n\nAnimate A\ntransparent\n\nStorageFull\ntransparent\n\nHint1\ntransparent\n\nAniReplay\n#FFFF2C (yellow)\n.....\n.....\n.000.\n.....\n.....\n\nReplayDelay1\ntransparent\n\nReplayDelay2\ntransparent\n\nReplayDelay3\ntransparent\n\nReplayNow\ntransparent\n\nWinNow\ntransparent\n\nFixed\ntransparent\n\n=======\nLEGEND\n=======\n\n# = Wall\n. = Background\n$ = Goal\nD = PlayerDrop\n\nP = Player and D\n\n\nAs = Ar or Al or Au or Ad\nAsi= ArI or AlI or AuI or AdI \n\nBlock = O\n\nPlayers = Player or Player2\n\nPlayerBody = Player or Playerlegs\nPlayerBody2 = Player2 or Playerlegs2\n\nPlayerLegsAny = Playerlegs or Playerlegs2\n\nPlayerBodies = PlayerBody or PlayerBody2\nSymbol = Block or PlayerBodies\nItem = Symbol or Wall\n\nconnectionUnDot = cUL or cUR or cDL or CDR or CV or CH\nconnection = connectionUnDot or CDot\noverdot = cl or cu or cu or cr or cd \n\nHub = HubUp or HubUp2 or HubDown or HubDown2\n\nc_R = cDR or cUR or cH or cDot\nc_U = cUL or cUR or cV or cDot\nc_L = cDL or cUL or cH or cDot\nc_D = cDL or cDR or cV or cDot\n\ncOR = c_R or Hub or cDot\ncOU = c_U or cDot\ncOL = c_L or Hub or cDot\ncOD = c_D or cDot\n\ncXL = cDR or cUR or cV \ncXD = cUL or cUR or cH or HubUp or HubUp2\ncXR = cDL or cUL or cV\ncXU = cDL or cDR or cH or HubDown or HubDown2\n\ntryc = trycr or trycd or trycl or trycu\n\ntrycall = trycr and trycd and trycl and trycu\n\ntrycnor = trycd and trycl and trycu\ntrycnol = trycd and trycr and trycu\ntrycnou = trycd and trycr and trycl\ntrycnod = trycu and trycr and trycl\n\n\nPlay = Freeplay or Replay or StopPlay \n\n(anima)\nDeco = Deco1 or Deco2 or Deco3 or Deco4 or Deco5\nGDeco = Goal1 or Goal2 or Goal3 or Goal4 or Goal5 or Goal6\nWinDeco = Over1 or Over2 or Over3 or Over4 or Over5 or Over6 or Over7 or Over8 or Over9 or Over10\n\nThrownDeco = ThrownRight1 or ThrownRight2 or ThrownRight3 or ThrownLeft1 or ThrownLeft2 or ThrownLeft3\nThrownDeco1 = ThrownRight1 or ThrownLeft1\nThrownDeco3 = ThrownRight3 or ThrownLeft3\n\nPlayerThrownDeco = ThrArmL or ThrArmR\n\nPlayerCover = Player2Cover or Playerlegs2Cover\nPlayerThrArmCover = ThrArmLCover or ThrArmRCover\n\n? = FreePlay and Hint1\n\nAniDot = Storage\n\nReplayDelay = ReplayDelay1 or ReplayDelay2 or ReplayDelay3\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\nbackground\nGoal, PlayerDrop\nDeco, GDeco\nThrownDeco\nGravity, Wait\nPlay\nOnce\nTry\nStorage\nAniReplay\nRead\nStorageTick\n\nAs\nAsi\nItem\nPlayerCover\nNextlegs\n\ntrycr\ntrycd\ntrycl\ntrycu\nConnection\nHub\ncd\ncu\ncr, hubdotr\ncl, hubdotl\n\nPlayerThrownDeco\nPlayerThrArmCover\n\nFixed\n\nWinDeco\nwinNow\nRegisterSymbol\nAnimate\n\nStorageFull\nHint1\n\nReplayDelay, ReplayNow\n\n======\nRULES\n======\n\n[Animate]->[]\n[stationary Player no Animate]->[stationary Player Animate]\n\n(Decoration)\n(---------------------------------------------------)\n[Play no wall]->[Play Wall]\n\n(circuit hubs)\nup [wall no Hub|Goal]-> [wall HubUp|Goal]\nup [wall no Hub|D ]-> [wall HubUp2|D ]\n\ndown [wall no Hub|Goal]-> [wall HubDown|Goal]\ndown [wall no Hub|D ]-> [wall HubDown2|D ]\n\nright[Hub|no wall]->[Hub hubdotr|]\nleft [Hub|no wall]->[Hub hubdotl|]\n\n(circuit connection borders)\n\n(prolong)\n[tryc]->[]\nright [cOR|wall no hub no connection no tryc][A]->[cOR|wall trycall][A]\nup [cOU|wall no hub no connection no tryc][A]->[cOU|wall trycall][A]\nleft [cOL|wall no hub no connection no tryc][A]->[cOL|wall trycall][A]\ndown [cOD|wall no hub no connection no tryc][A]->[cOD|wall trycall][A]\n\n(remove dead ends)\nright [trycr|no wall]->[|]\nup [trycu|no wall]->[|]\nleft [trycl|no wall]->[|]\ndown [trycd|no wall]->[|]\n\nright [trycr|cXL]->[|cXL]\nup [trycu|cXD]->[|cXD]\nleft [trycl|cXR]->[|cXR]\ndown [trycd|cXU]->[|cXU]\n\n[. tryc ]->[tryc random connectionUnDot no .]\n\n[no . ch no trycl]->[.]\n[no . ch no trycr]->[.]\n[no . cv no trycu]->[.]\n[no . cv no trycd]->[.]\n\n[no . cul no trycu]->[.]\n[no . cul no trycl]->[.]\n\n[no . cur no trycr]->[.]\n[no . cur no trycu]->[.]\n\n[no . cdr no trycd]->[.]\n[no . cdr no trycr]->[.]\n\n[no . cdl no trycl]->[.]\n[no . cdl no trycd]->[.]\n\nright [no . CXR|COL]->[.|COL]\nup [no . CXU|COD]->[.|COD]\nleft [no . CXL|COR]->[.|COR]\ndown [no . CXD|COU]->[.|COU]\n\n[tryc]->[no tryc]\n\nrandom [A][wall no hub no connection no tryc]->[A][wall cDot]\n\n[no .]->[.]\n\nleft [cDot no cL|COR]->[cDot cL|COR]\nup [cDot no cU|COD]->[cDot cU|COD]\nright [cDot no cR|COL]->[cDot cR|COL]\ndown [cDot no cD|COU]->[cDot cD|COU]\n\n\n(animated)\n[A][D no Deco]->[A][D Deco5]\n[A][Deco1]->[A][Deco5 no .]\n[A][Deco2]->[A][Deco1]\n[A][Deco3]->[A][Deco2]\n[A][Deco4]->[A][Deco3]\n[A][Deco5 .]->[A][Deco4 .]\n[A][Deco5 no .]->[A][Deco5 .]\n\nlate [A][Deco][player][player2]->[A][][player][player2]\nlate [A][Deco no D]->[A][]\n\n[A][Goal no GDeco]->[A][Goal Goal1]\n[A][Goal6]->[A][Goal1 no .]\n[A][Goal5]->[A][Goal6]\n[A][Goal4]->[A][Goal5]\n[A][Goal3]->[A][Goal4]\n[A][Goal2]->[A][Goal3]\n[A][Goal1 .]->[A][Goal2]\n[A][Goal1 no .]->[A][Goal1 .]\n\n[A][Players Goal no WinDeco]->[A][Players Goal Over1]\n\n(winning animation)\n[A][Over9]->[A][Over10 winNow]\n[A][Over8] ->[A][Over9]\n[A][Over7] ->[A][Over8]\n[A][Over6] ->[A][Over7]\ndown [Over5 |PlayerLegsAny no WinDeco][A]->[Over5|Over6 PlayerLegsAny][A]\n\n[A][Over4]->[A][Over5 winNow]\ndown [Over5 winNow|PlayerLegsAny no WinDeco][A]->[Over5| PlayerLegsAny][A]\n\n[A][Over3]->[A][Over4]\n[A][Over2]->[A][Over3]\n[A][Over1 .]->[A][Over2]\n[A][Over1 no .]->[A][Over1 .]\n\n\n[ThrownDeco3][PlayerThrownDeco]->[ThrownDeco3][] (put down raised arm)\n[PlayerThrownDeco no Player]->[]\n\n[ThrownRight3]->[]\n[ThrownRight2]->[ThrownRight3]\n[ThrownRight1]->[ThrownRight2]\n[ThrownLeft3]->[]\n[ThrownLeft2]->[ThrownLeft3]\n[ThrownLeft1]->[ThrownLeft2]\n[throwndeco symbol]->[symbol]\n\n(animate replay)\n[AniReplay]->[]\n[»][AniDot no AniReplay]->[»][AniDot AniReplay]\n\n\n(Switch Read/Write Phases & Gravity)\n(---------------------------------------------------)\n(Manage Player Spawn)\n[Player D][no Player D]->[Player][D](avoid overspawn)\n\n(RePlay)\n[Wait]->[]\n[ThrownDeco][Player no Wait]->[ThrownDeco][Player Wait] (pause until after thrown)\n[!][action player][D Item no Playerlegs] ->[!][Player][D item] (prevent respawn if blocked)\n[!][action player D] ->[!][Player D] \n[!][action player][D] ->[»][Player2][D Player Wait]\n[Player2][D]->[Player2][] (remove after spawning)\n\n[!][action player][player2]->[»][Player2][Player Wait]\n\n(StopPlay)\n[_][moving player]->[_][player]\n[_][action player]->[_][player]\n\n(clean read moves after stopping)\n[_][Read]->[_][]\n\n(GravityPlay)\n[G]->[]\ndown [Symbol |no Item][Play]-> [Symbol|][Play G]\n\n\n(Delay in Replay Mode)\n(---------------------------------------------------)\n[ReplayNow]->[]\n[ReplayDelay3]->[ReplayNow]\n[ReplayDelay2]->[ReplayDelay3]\n[ReplayDelay1]->[ReplayDelay2]\n\n[» no ReplayDelay no ReplayNow]->[» ReplayDelay1]\n[» ReplayDelay no ReplayNow][Player]->[» ReplayDelay Once][stationary Player Wait]\n\n(Action Storage)\n(---------------------------------------------------)\n(initialise or respawn ticker)\n[!][T]->[!][]\nrandom [!][- no As]->[!][- T]\n[!][G][T]->[!][G][] (don't register gravity)\n\n(place ticker at first emply position)\ndown [- T |- no T][!]->[-|- T][!]\nright[- T |- no T][!]->[-|- T][!]\n\nup [- T| - no T no As][!]->[-|- T][!]\nleft [- T| - no T no As][!]->[-|- T][!]\n\n(register player moves once, and keep ticker)\n[left Player][T][! no Once]->[left Player][T Al][! Once]\n[up Player][T][! no Once]->[up Player][T Au][! Once]\n[right Player][T][! no Once]->[right Player][T Ar][! Once]\n[down Player][T][! no Once]->[down Player][T Ad][! Once]\n[!][Try]->[!][]\n[! Once]->[! Try]\n\n(block action if no more space is available)\n[!]->[! Once]\n[T][! Once]->[T][!]\n[! Once][moving player]->[!][stationary player]\n[! Once]->[!]\n\n\n(Action Readage)\n(---------------------------------------------------)\n(initialise or respawn ticker)\n[»][T]->[»][]\nrandom [»][-]->[»][- T]\n[»][G][T]->[»][G][] (don't register gravity)\n\n(place ticker at last unread position)\ndown [- T |- no T][»]->[-|- T][»]\nright[- T |- no T][»]->[-|- T][»]\n[»][T Read]->[_ Once][Read StorageFull] (exit if no more unread moves)\n\nup [- T |- no T no Read][»]->[-|- T][»]\nleft [- T |- no T no Read][»]->[-|- T][»]\n\n(replay player moves once, and keep ticker)\n[Player no Wait][T Al][» no Once]->[left Player][T Al Read][» Once]\n[Player no Wait][T Au][» no Once]->[up Player][T Au Read][» Once]\n[Player no Wait][T Ar][» no Once]->[right Player][T Ar Read][» Once]\n[Player no Wait][T Ad][» no Once]->[down Player][T Ad Read][» Once]\n[» Once]->[»]\n\n(end after no more available moves and switch player)\n[»][T no As]->[! Once][]\n\n[! Once][Player][Player2]->[!][stationary Player2][stationary Player]\n[_ Once][Player][Player2]->[_][stationary Player2][stationary Player]\n[! Once]->[!]\n[_ Once]->[!]\n\n(embellish read arrows)\n[Al Read]->[Al Ali Read]\n[Au Read]->[Au Aui Read]\n[Ar Read]->[Ar Ari Read]\n[Ad Read]->[Ad Adi Read]\n\n\n(Player picks Blocks)\n(---------------------------------------------------)\n(Drop)\n(up [no playerlegs|down player|Symbol|Symbol] ->[|player|Symbol|Symbol])\nup [ playerlegs|down player|Symbol][no &]->[ |player|Symbol][&] (register)\nup [no playerlegs|down player|Symbol][no &]->[ |Symbol|player][&] (register)\n\n(Pick)\ndown [down player|Symbol no playerlegs][no &]->[Symbol|player][&]\n\n\n(Gravity)\n(---------------------------------------------------)\n\n(symbols fall, walls don't)\n[G][symbol]->[G][down symbol]\n[G][wall]->[G][stationary wall]\n\n(stationary items support other items on top)\ndown [G][down symbol | stationary Item]->[G][stationary symbol| stationary Item]\n\n\n(Player's Long Legs)\n(---------------------------------------------------)\n(swap legs)\nup [playerlegs|player2 ]->[playerlegs2| player2]\nup [playerlegs2|player ]->[playerlegs | player ]\n\n(remove legs on down press or horizonal movement)\nup [playerlegs |down player ][no &]->[stationary player |][&] \nup [playerlegs2|down player2]->[stationary player2|] \nup [playerlegs |up player ]->[playerlegs |stationary player ] \nup [playerlegs2|up player2]->[playerlegs2|stationary player2] \n\n(remove orphan legs)\nlate up [playerlegs |no player ]->[|]\nlate up [playerlegs2|no player2]->[|]\n\n(Rise )\n[up Player]->[up Player Nextlegs]\n[up Player2]->[up Player2 Nextlegs]\nlate [Nextlegs no Item]->[playerlegs] (player 2 is irrelevant)\nlate [Nextlegs]->[]\n\n[Fixed]->[]\nstartloop\n(Transport)\n(---------------------------------------------------)\nup [moving Symbol|Symbol no Fixed]->[moving Symbol|moving Symbol]\n\n(Player Push)\n(---------------------------------------------------)\n[> Player | Symbol]->[> Player|> Symbol]\n\n(Collision)\n(---------------------------------------------------)\nhorizontal [playerlegs2|< symbol ]->[ |< symbol ]\nhorizontal [playerlegs |< symbol ]->[ |< symbol]\n[> Symbol | stationary Symbol]->[> symbol |> symbol]\n\n(De-register Phase: deregister unacomplished moves)\n(---------------------------------------------------)\n[> Symbol | stationary Item]->[stationary Symbol Fixed|stationary Item]\nendloop\n\n(animate throw)\nup [stationary player |...|left Symbol]->[stationary player ThrArmL|...|left Symbol ThrownLeft1 ]\nup [stationary player |...|right Symbol]->[stationary player ThrArmR|...|right Symbol ThrownRight1]\n\n\n[!]->[! Once]\n[moving Symbol][! Once]->[moving Symbol][!]\n [&][! Once]->[][!]\n[! Once][T As]->[!][T no As]\n[! Once]->[!]\n[&]->[]\n\n(Don't move player after win)\n(---------------------------------------------------)\n[player][WinDeco]->[stationary player][WinDeco]\n\n\n(display hint in tutorial level)\n(---------------------------------------------------)\n[Windeco][StorageFull]->[Windeco][]\n[StorageFull][Hint1]->[][] message No more moves. Retry (R)?\n\n(highlight player)\nlate [PlayerCover]->[]\nlate [Player2 no Player2Cover]->[Player2 Player2Cover]\nlate [PlayerLegs2 no PlayerLegs2Cover]->[PlayerLegs2 PlayerLegs2Cover]\n\n\nlate [»][PlayerCover]->[»][]\nlate [»][Player no Player2Cover]->[»][Player Player2Cover]\nlate [»][PlayerLegs no PlayerLegs2Cover]->[»][PlayerLegs PlayerLegs2Cover]\n\n[PlayerThrArmCover]->[]\nlate [ThrArmL Player2Cover]->[ThrArmL ThrarmLCover Player2Cover]\nlate [ThrArmR Player2Cover]->[ThrArmR ThrarmRCover Player2Cover]\n\n==============\nWINCONDITIONS\n==============\nAny WinNow\n\n=======\nLEVELS\n=======\n\nmessage \"So you want to reach your goals?\"\nmessage \"Well, start by helping yourself!\" \nmessage Lesson 1 of 11\nmessage Arrows to play a move...\nmessage ...X to replay moves!\n\n(introduce game mechanics)\n############\n#P..D..#####\n######.#####\n######...$.#\n############\n#----?######\n############\n\n(introduce carrying)\nmessage \"You seem to have some potential.\" \nmessage Lesson 2 * \nmessage \"Carry on...\" \n\n##########\n#.......P#\n#.....####\n#$..######\n##########\n##########\n##-----!##\n##########\n\n(introduce go up)\nmessage Lesson 3 * \nmessage \"..through ups and downs.\" \n##########\n#P......$#\n##..#..###\n##########\n##########\n##------!#\n##########\n\n(introduce push over)\nmessage Lesson 4 * \nmessage \"If you push yourself over the edge...\"\n##########\n#$......P#\n#####...##\n#####...##\n##########\n##!-----##\n##########\n\n(introduce floating respawn spot)\nmessage Lesson 5 *\nmessage \"... do lift yourself up.\"\n##########\n#.d......#\n#........#\n#.......$#\n#.....####\n#.....####\n#.P...####\n##########\n##########\n##-----!##\n##########\n\n(fun: force carrying, great distance and height)\nmessage Lesson 6 **\nmessage \"Never give up,...\"\n############\n#$.........#\n###........#\n#####......#\n#####......#\n#######....#\n#########.P#\n############\n############\n#!--------##\n############\n\n(fun reverse directions, move blockade)\nmessage Lesson 7 **\nmessage \"...but change direction instead.\" \n#######\n#$#####\n#..D..#\n#.###.#\n#P....#\n#######\n#-----#\n#-----!\n#######\n\n\n(introduce blocks and under leg respawn)\nmessage Lesson 8 **\nmessage \"For every block...\"\n########\n#..O..##\n#.##..##\n#.....$#\n#P##.###\n####.###\n##!#####\n########\n#------#\n########\n\n(push and carry at same time)\nmessage Lesson 9 ***\nmessage \"... is a stepping stone...\"\n#########\n#......$#\n#......##\n#P.....##\n##o....##\n###....##\n#########\n#########\n#!#----##\n###----##\n#########\n\n(fun: five storey, so close but so far)\nmessage Lesson 10 ***\nmessage \"... to greater heights!\"\n#######\n#...D$#\n#...###\n#...#!#\n#...###\n#O.P###\n#######\n#######\n#-----#\n#-----#\n#######\n\n(fun: double block constraint)\nmessage Lesson 11 ****\nmessage \"Barriers... are to be knocked!\"\n#########\n##..##.$#\n##..o..##\n##P.o..##\n#########\n#########\n##-----!#\n#########\n\nmessage \"Congratulations, pupil...\"\nmessage \"...you've learned all...\"\nmessage \"... and became your own master.\"\n\nmessage \"So what are you waiting for?\"\nmessage \"Go and chase your dreams!\"\n \nmessage > Play Mini Gemini Replay PMGRP < > > > > > Pedro PSI 2018 < < < < < \nmessage > > > > > > > Music < < < < < < < > Space Flight > < < < Tim Beek < \n\n",["tick","tick","tick","tick","tick","tick","tick",0,"tick",1,"tick","tick",0,"tick","tick",1,"tick","tick","tick",3,"tick",2,"tick",1,"tick",3,"tick","tick","tick",3,"tick","tick",0,4,"tick",4,"tick",4,"tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background ch wall:0,background cdl wall:1,background cd cdot cu wall:2,2,2,background cul wall:3,background cdr wall:4,\nbackground cur wall:5,1,2,3,background cdot cl cr wall:6,background:7,7,\n7,7,background o:8,background cdot cl wall:9,0,au aui background read storage:10,ar ari background read storage:11,\nbackground cdot cr wall:12,3,7,7,7,7,7,\n4,3,al ali background read storage:13,10,9,12,7,\n7,animate background player:14,background player2 player2cover:15,background playerlegs2 playerlegs2cover:16,background hubup2 wall:17,12,10,\nbackground storage storagetick:18,4,background hubdown2 wall:19,7,background hubdotl hubup2 wall:20,4,background cv wall:21,\nbackground cdot cr cu wall:22,0,6,13,background storage:23,0,background hubdown wall:24,\nbackground goal goal3:25,background hubup wall:26,background ch freeplay wall:27,background cdot wall:28,0,1,3,\n11,23,6,0,4,3,1,\n21,background cd cdot cl cu wall:29,2,21,2,5,1,\n",33,"1627779684110.5146"] + ["title Play Mini Gemini Replay PMGRP\nauthor Pedro PSI\nhomepage pedropsi.github.io\n(License: Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0))\n\n(last updated 20/06/2018)\n\nbackground_color #044700 (darkest green)\ntext_color #FFFF2C (yellow)\n\nyoutube Qelelnc1NKg (Space Flight by Tim Beek)\n\nrealtime_interval 0.166\nkey_repeat_interval 0.166\nthrottle_movement\n\nrun_rules_on_level_start\n\n(Palette\n-----------------\n#044700 (darkest green)\n#087102 (dark green)\n#FFFF2C (yellow)\n\n#FF9703 (player orange)\n#FF8403 (pdayer orange)\n)\n========\nOBJECTS\n========\n\nBackground\n#044700 (darkest green)\n\nWall\n#087102 (dark green)\n\ncUL\n#044700 (darkest green)\n..0..\n..0..\n000..\n.....\n.....\n\ncUR\n#044700 (darkest green)\n..0..\n..0..\n..000\n.....\n.....\n\ncDL\n#044700 (darkest green)\n.....\n.....\n000..\n..0..\n..0..\n\ncDR\n#044700 (darkest green)\n.....\n.....\n..000\n..0..\n..0..\n\n\ncH\n#044700 (darkest green)\n.....\n.....\n00000\n.....\n.....\n\ncV\n#044700 (darkest green)\n..0..\n..0..\n..0..\n..0..\n..0..\n\ncDot\n#044700 (darkest green)\n.....\n.000.\n.0.0.\n.000.\n.....\n\ncl\n#044700 (darkest green)\n.....\n.....\n0....\n.....\n.....\n\ncu\n#044700 (darkest green)\n..0..\n.....\n.....\n.....\n.....\n\ncr\n#044700 (darkest green)\n.....\n.....\n....0\n.....\n.....\n\ncd\n#044700 (darkest green)\n.....\n.....\n.....\n.....\n..0..\n\n\ntrycD\ntransparent\ntrycU\ntransparent\ntrycL\ntransparent\ntrycR\ntransparent\n\nHubDotL\n#087102 (dark green) #044700 (darkest green)\n.....\n0...0\n0111.\n0....\n.....\n\nHubDotR\n#087102 (dark green) #044700 (darkest green)\n.....\n0...0\n.1110\n....0\n.....\n\n\nHubUp\n#044700 (darkest green)\n.....\n00000\n00.00\n.....\n.....\n\nHubUp2\n#044700 (darkest green)\n.....\n.0.0.\n00000\n.....\n.....\n\nHubDown\n#044700 (darkest green)\n.....\n.....\n00.00\n00000\n.....\n\nHubDown2\n#044700 (darkest green)\n.....\n.....\n00000\n.000.\n.....\n\n\nThrownLeft1\n#FFFF2C (yellow)\n.....\n..000\n.000.\n..000\n.....\n\nThrownLeft2\n#FFFF2C (yellow)\n.....\n..00.\n.00..\n..00.\n.....\n\nThrownLeft3\n#FFFF2C (yellow)\n.....\n..0..\n.0...\n..0..\n.....\n\nThrownRight1\n#FFFF2C (yellow)\n.....\n000..\n.000.\n000..\n.....\n\nThrownRight2\n#FFFF2C (yellow)\n.....\n.00..\n..00.\n.00..\n.....\n\nThrownRight3\n#FFFF2C (yellow)\n.....\n..0..\n...0.\n..0..\n.....\n\nGoal\ntransparent \n\nGoal1\n#FFFF2C (yellow)\n.....\n...0.\n.....\n.....\n.....\n\nGoal2\n#FFFF2C (yellow)\n.....\n...0.\n..0..\n.....\n.....\n\nGoal3\n#FFFF2C (yellow)\n.....\n...0.\n..0..\n.0...\n.....\n\nGoal4\n#FFFF2C (yellow)\n.....\n.0.0.\n..0..\n.0...\n.....\n\nGoal5\n#FFFF2C (yellow)\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nGoal6\ntransparent\n\nDeco5\n#FFFF2C (yellow)\n.....\n00000\n.....\n.....\n.....\n\nDeco4\n#FFFF2C (yellow)\n.000.\n.....\n.....\n.....\n.....\n\nDeco3\n#FFFF2C (yellow)\n.....\n.....\n.....\n.....\n.0.0.\n\nDeco2\n#FFFF2C (yellow)\n.....\n.....\n.....\n.000.\n.....\n\nDeco1\n#FFFF2C (yellow)\n.....\n.....\n00000\n.....\n.....\n\nOver10\n#044700 (darkest green)\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n\nOver9\n#044700 (darkest green)\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n.....\n\nOver8\n#044700 (darkest green)\n.0.0.\n.0.0.\n.0.0.\n.....\n.....\n\nOver7\n#044700 (darkest green)\n.0.0.\n.0.0.\n.....\n.....\n.....\n\nOver6\n#044700 (darkest green)\n.0.0.\n.....\n.....\n.....\n.....\n\nOver5\n#044700 (darkest green)\n.000.\n00000\n00000\n.000.\n.0.0.\n\nOver4\n#044700 (darkest green)\n.000.\n00000\n00000\n.000.\n.....\n\nOver3\n#044700 (darkest green)\n.000.\n00000\n00000\n.....\n.....\n\nOver2\n#044700 (darkest green)\n.000.\n00000\n.....\n.....\n.....\n\nOver1\n#044700 (darkest green)\n.000.\n.....\n.....\n.....\n.....\n\n\n\nO\n#FFFF2C (yellow) #087102 (dark green) \n.....\n.000.\n.010.\n.000.\n.....\n\n\nAr\n#FFFF2C (yellow) #044700 (darkest green)\n11111\n10011\n11001\n10011\n11111\n\nAl\n#FFFF2C (yellow) #044700 (darkest green)\n11111\n11001\n10011\n11001\n11111\n\nAd\n#FFFF2C (yellow) #044700 (darkest green)\n11111\n10101\n10001\n11011\n11111\n\nAu\n#FFFF2C (yellow) #044700 (darkest green)\n11111\n11011\n10001\n10101\n11111\n\nArI\n#044700 (darkest green) #FFFF2C (yellow)\n11111\n10011\n11001\n10011\n11111\n\nAlI\n#044700 (darkest green) #FFFF2C (yellow)\n11111\n11001\n10011\n11001\n11111\n\nAdI\n#044700 (darkest green) #FFFF2C (yellow)\n11111\n10101\n10001\n11011\n11111\n\nAuI\n#044700 (darkest green) #FFFF2C (yellow)\n11111\n11011\n10001\n10101\n11111\n\n\nStorageTick T\n#FFFF2C (yellow)\n0...0\n.....\n..0..\n.....\n0...0\n\nStorage -\n#087102 (dark green)\n.....\n.....\n..0..\n.....\n.....\n\nReplay »\ntransparent\n(white \n.0...\n.000.\n.0.0.\n.000.\n...0.)\n\nFreePlay !\ntransparent\n(white \n.....\n0000.\n.0000\n0000.\n.....\n)\n\nStopPlay _\ntransparent (white \n.0...\n.0.0.\n.....\n.0.0.\n...0.\n)\nOnce\ntransparent\nRead\ntransparent\nTry\ntransparent\n\nRegisterSymbol &\nred\n\nPlayer\n#FF9703 (player orange) #FF8403 (pdayer orange)\n.000.\n00000\n10001\n.111.\n.1.1.\n\nPlayerLegs\n#FF9703 (pdayer orange) #FF8403 (player orange)\n.1.1.\n.1.1.\n.1.1.\n.1.1.\n.0.0.\n\nPlayer2\n#FF9703 (player orange) #FF8403 (pdayer orange)\n.000.\n00000\n10001\n.111.\n.1.1.\n\nPlayerLegs2\n#FF9703 (pdayer orange) #FF8403 (player orange)\n.1.1.\n.1.1.\n.1.1.\n.1.1.\n.0.0.\n\nPlayer2Cover\n#FFFF2C (yellow)\n.000.\n00000\n00000\n.000.\n.0.0.\n\nPlayerLegs2Cover\n#FFFF2C (yellow)\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n\nThrArmR\n#044700 (darkest green) #FF8403 (pdayer orange)\n1....\n.....\n0....\n.....\n.....\n\nThrArmL\n#044700 (darkest green) #FF8403 (pdayer orange)\n....1\n.....\n....0\n.....\n.....\n\nThrArmRCover\n#044700 (darkest green) #FFFF2C (yellow)\n1....\n.....\n0....\n.....\n.....\n\nThrArmLCover\n#044700 (darkest green) #FFFF2C (yellow)\n....1\n.....\n....0\n.....\n.....\n\nNextLegs\ntransparent\n\nPlayerDrop\ntransparent\n\nGravity G\ntransparent\n\nWait\ntransparent\n\nAnimate A\ntransparent\n\nStorageFull\ntransparent\n\nHint1\ntransparent\n\nAniReplay\n#FFFF2C (yellow)\n.....\n.....\n.000.\n.....\n.....\n\nReplayDelay1\ntransparent\n\nReplayDelay2\ntransparent\n\nReplayDelay3\ntransparent\n\nReplayNow\ntransparent\n\nWinNow\ntransparent\n\nFixed\ntransparent\n\n=======\nLEGEND\n=======\n\n# = Wall\n. = Background\n$ = Goal\nD = PlayerDrop\n\nP = Player and D\n\n\nAs = Ar or Al or Au or Ad\nAsi= ArI or AlI or AuI or AdI \n\nBlock = O\n\nPlayers = Player or Player2\n\nPlayerBody = Player or Playerlegs\nPlayerBody2 = Player2 or Playerlegs2\n\nPlayerLegsAny = Playerlegs or Playerlegs2\n\nPlayerBodies = PlayerBody or PlayerBody2\nSymbol = Block or PlayerBodies\nItem = Symbol or Wall\n\nconnectionUnDot = cUL or cUR or cDL or CDR or CV or CH\nconnection = connectionUnDot or CDot\noverdot = cl or cu or cu or cr or cd \n\nHub = HubUp or HubUp2 or HubDown or HubDown2\n\nc_R = cDR or cUR or cH or cDot\nc_U = cUL or cUR or cV or cDot\nc_L = cDL or cUL or cH or cDot\nc_D = cDL or cDR or cV or cDot\n\ncOR = c_R or Hub or cDot\ncOU = c_U or cDot\ncOL = c_L or Hub or cDot\ncOD = c_D or cDot\n\ncXL = cDR or cUR or cV \ncXD = cUL or cUR or cH or HubUp or HubUp2\ncXR = cDL or cUL or cV\ncXU = cDL or cDR or cH or HubDown or HubDown2\n\ntryc = trycr or trycd or trycl or trycu\n\ntrycall = trycr and trycd and trycl and trycu\n\ntrycnor = trycd and trycl and trycu\ntrycnol = trycd and trycr and trycu\ntrycnou = trycd and trycr and trycl\ntrycnod = trycu and trycr and trycl\n\n\nPlay = Freeplay or Replay or StopPlay \n\n(anima)\nDeco = Deco1 or Deco2 or Deco3 or Deco4 or Deco5\nGDeco = Goal1 or Goal2 or Goal3 or Goal4 or Goal5 or Goal6\nWinDeco = Over1 or Over2 or Over3 or Over4 or Over5 or Over6 or Over7 or Over8 or Over9 or Over10\n\nThrownDeco = ThrownRight1 or ThrownRight2 or ThrownRight3 or ThrownLeft1 or ThrownLeft2 or ThrownLeft3\nThrownDeco1 = ThrownRight1 or ThrownLeft1\nThrownDeco3 = ThrownRight3 or ThrownLeft3\n\nPlayerThrownDeco = ThrArmL or ThrArmR\n\nPlayerCover = Player2Cover or Playerlegs2Cover\nPlayerThrArmCover = ThrArmLCover or ThrArmRCover\n\n? = FreePlay and Hint1\n\nAniDot = Storage\n\nReplayDelay = ReplayDelay1 or ReplayDelay2 or ReplayDelay3\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\nbackground\nGoal, PlayerDrop\nDeco, GDeco\nThrownDeco\nGravity, Wait\nPlay\nOnce\nTry\nStorage\nAniReplay\nRead\nStorageTick\n\nAs\nAsi\nItem\nPlayerCover\nNextlegs\n\ntrycr\ntrycd\ntrycl\ntrycu\nConnection\nHub\ncd\ncu\ncr, hubdotr\ncl, hubdotl\n\nPlayerThrownDeco\nPlayerThrArmCover\n\nFixed\n\nWinDeco\nwinNow\nRegisterSymbol\nAnimate\n\nStorageFull\nHint1\n\nReplayDelay, ReplayNow\n\n======\nRULES\n======\n\n[Animate]->[]\n[stationary Player no Animate]->[stationary Player Animate]\n\n(Decoration)\n(---------------------------------------------------)\n[Play no wall]->[Play Wall]\n\n(circuit hubs)\nup [wall no Hub|Goal]-> [wall HubUp|Goal]\nup [wall no Hub|D ]-> [wall HubUp2|D ]\n\ndown [wall no Hub|Goal]-> [wall HubDown|Goal]\ndown [wall no Hub|D ]-> [wall HubDown2|D ]\n\nright[Hub|no wall]->[Hub hubdotr|]\nleft [Hub|no wall]->[Hub hubdotl|]\n\n(circuit connection borders)\n\n(prolong)\n[tryc]->[]\nright [cOR|wall no hub no connection no tryc][A]->[cOR|wall trycall][A]\nup [cOU|wall no hub no connection no tryc][A]->[cOU|wall trycall][A]\nleft [cOL|wall no hub no connection no tryc][A]->[cOL|wall trycall][A]\ndown [cOD|wall no hub no connection no tryc][A]->[cOD|wall trycall][A]\n\n(remove dead ends)\nright [trycr|no wall]->[|]\nup [trycu|no wall]->[|]\nleft [trycl|no wall]->[|]\ndown [trycd|no wall]->[|]\n\nright [trycr|cXL]->[|cXL]\nup [trycu|cXD]->[|cXD]\nleft [trycl|cXR]->[|cXR]\ndown [trycd|cXU]->[|cXU]\n\n[. tryc ]->[tryc random connectionUnDot no .]\n\n[no . ch no trycl]->[.]\n[no . ch no trycr]->[.]\n[no . cv no trycu]->[.]\n[no . cv no trycd]->[.]\n\n[no . cul no trycu]->[.]\n[no . cul no trycl]->[.]\n\n[no . cur no trycr]->[.]\n[no . cur no trycu]->[.]\n\n[no . cdr no trycd]->[.]\n[no . cdr no trycr]->[.]\n\n[no . cdl no trycl]->[.]\n[no . cdl no trycd]->[.]\n\nright [no . CXR|COL]->[.|COL]\nup [no . CXU|COD]->[.|COD]\nleft [no . CXL|COR]->[.|COR]\ndown [no . CXD|COU]->[.|COU]\n\n[tryc]->[no tryc]\n\nrandom [A][wall no hub no connection no tryc]->[A][wall cDot]\n\n[no .]->[.]\n\nleft [cDot no cL|COR]->[cDot cL|COR]\nup [cDot no cU|COD]->[cDot cU|COD]\nright [cDot no cR|COL]->[cDot cR|COL]\ndown [cDot no cD|COU]->[cDot cD|COU]\n\n\n(animated)\n[A][D no Deco]->[A][D Deco5]\n[A][Deco1]->[A][Deco5 no .]\n[A][Deco2]->[A][Deco1]\n[A][Deco3]->[A][Deco2]\n[A][Deco4]->[A][Deco3]\n[A][Deco5 .]->[A][Deco4 .]\n[A][Deco5 no .]->[A][Deco5 .]\n\nlate [A][Deco][player][player2]->[A][][player][player2]\nlate [A][Deco no D]->[A][]\n\n[A][Goal no GDeco]->[A][Goal Goal1]\n[A][Goal6]->[A][Goal1 no .]\n[A][Goal5]->[A][Goal6]\n[A][Goal4]->[A][Goal5]\n[A][Goal3]->[A][Goal4]\n[A][Goal2]->[A][Goal3]\n[A][Goal1 .]->[A][Goal2]\n[A][Goal1 no .]->[A][Goal1 .]\n\n[A][Players Goal no WinDeco]->[A][Players Goal Over1]\n\n(winning animation)\n[A][Over9]->[A][Over10 winNow]\n[A][Over8] ->[A][Over9]\n[A][Over7] ->[A][Over8]\n[A][Over6] ->[A][Over7]\ndown [Over5 |PlayerLegsAny no WinDeco][A]->[Over5|Over6 PlayerLegsAny][A]\n\n[A][Over4]->[A][Over5 winNow]\ndown [Over5 winNow|PlayerLegsAny no WinDeco][A]->[Over5| PlayerLegsAny][A]\n\n[A][Over3]->[A][Over4]\n[A][Over2]->[A][Over3]\n[A][Over1 .]->[A][Over2]\n[A][Over1 no .]->[A][Over1 .]\n\n\n[ThrownDeco3][PlayerThrownDeco]->[ThrownDeco3][] (put down raised arm)\n[PlayerThrownDeco no Player]->[]\n\n[ThrownRight3]->[]\n[ThrownRight2]->[ThrownRight3]\n[ThrownRight1]->[ThrownRight2]\n[ThrownLeft3]->[]\n[ThrownLeft2]->[ThrownLeft3]\n[ThrownLeft1]->[ThrownLeft2]\n[throwndeco symbol]->[symbol]\n\n(animate replay)\n[AniReplay]->[]\n[»][AniDot no AniReplay]->[»][AniDot AniReplay]\n\n\n(Switch Read/Write Phases & Gravity)\n(---------------------------------------------------)\n(Manage Player Spawn)\n[Player D][no Player D]->[Player][D](avoid overspawn)\n\n(RePlay)\n[Wait]->[]\n[ThrownDeco][Player no Wait]->[ThrownDeco][Player Wait] (pause until after thrown)\n[!][action player][D Item no Playerlegs] ->[!][Player][D item] (prevent respawn if blocked)\n[!][action player D] ->[!][Player D] \n[!][action player][D] ->[»][Player2][D Player Wait]\n[Player2][D]->[Player2][] (remove after spawning)\n\n[!][action player][player2]->[»][Player2][Player Wait]\n\n(StopPlay)\n[_][moving player]->[_][player]\n[_][action player]->[_][player]\n\n(clean read moves after stopping)\n[_][Read]->[_][]\n\n(GravityPlay)\n[G]->[]\ndown [Symbol |no Item][Play]-> [Symbol|][Play G]\n\n\n(Delay in Replay Mode)\n(---------------------------------------------------)\n[ReplayNow]->[]\n[ReplayDelay3]->[ReplayNow]\n[ReplayDelay2]->[ReplayDelay3]\n[ReplayDelay1]->[ReplayDelay2]\n\n[» no ReplayDelay no ReplayNow]->[» ReplayDelay1]\n[» ReplayDelay no ReplayNow][Player]->[» ReplayDelay Once][stationary Player Wait]\n\n(Action Storage)\n(---------------------------------------------------)\n(initialise or respawn ticker)\n[!][T]->[!][]\nrandom [!][- no As]->[!][- T]\n[!][G][T]->[!][G][] (don't register gravity)\n\n(place ticker at first emply position)\ndown [- T |- no T][!]->[-|- T][!]\nright[- T |- no T][!]->[-|- T][!]\n\nup [- T| - no T no As][!]->[-|- T][!]\nleft [- T| - no T no As][!]->[-|- T][!]\n\n(register player moves once, and keep ticker)\n[left Player][T][! no Once]->[left Player][T Al][! Once]\n[up Player][T][! no Once]->[up Player][T Au][! Once]\n[right Player][T][! no Once]->[right Player][T Ar][! Once]\n[down Player][T][! no Once]->[down Player][T Ad][! Once]\n[!][Try]->[!][]\n[! Once]->[! Try]\n\n(block action if no more space is available)\n[!]->[! Once]\n[T][! Once]->[T][!]\n[! Once][moving player]->[!][stationary player]\n[! Once]->[!]\n\n\n(Action Readage)\n(---------------------------------------------------)\n(initialise or respawn ticker)\n[»][T]->[»][]\nrandom [»][-]->[»][- T]\n[»][G][T]->[»][G][] (don't register gravity)\n\n(place ticker at last unread position)\ndown [- T |- no T][»]->[-|- T][»]\nright[- T |- no T][»]->[-|- T][»]\n[»][T Read]->[_ Once][Read StorageFull] (exit if no more unread moves)\n\nup [- T |- no T no Read][»]->[-|- T][»]\nleft [- T |- no T no Read][»]->[-|- T][»]\n\n(replay player moves once, and keep ticker)\n[Player no Wait][T Al][» no Once]->[left Player][T Al Read][» Once]\n[Player no Wait][T Au][» no Once]->[up Player][T Au Read][» Once]\n[Player no Wait][T Ar][» no Once]->[right Player][T Ar Read][» Once]\n[Player no Wait][T Ad][» no Once]->[down Player][T Ad Read][» Once]\n[» Once]->[»]\n\n(end after no more available moves and switch player)\n[»][T no As]->[! Once][]\n\n[! Once][Player][Player2]->[!][stationary Player2][stationary Player]\n[_ Once][Player][Player2]->[_][stationary Player2][stationary Player]\n[! Once]->[!]\n[_ Once]->[!]\n\n(embellish read arrows)\n[Al Read]->[Al Ali Read]\n[Au Read]->[Au Aui Read]\n[Ar Read]->[Ar Ari Read]\n[Ad Read]->[Ad Adi Read]\n\n\n(Player picks Blocks)\n(---------------------------------------------------)\n(Drop)\n(up [no playerlegs|down player|Symbol|Symbol] ->[|player|Symbol|Symbol])\nup [ playerlegs|down player|Symbol][no &]->[ |player|Symbol][&] (register)\nup [no playerlegs|down player|Symbol][no &]->[ |Symbol|player][&] (register)\n\n(Pick)\ndown [down player|Symbol no playerlegs][no &]->[Symbol|player][&]\n\n\n(Gravity)\n(---------------------------------------------------)\n\n(symbols fall, walls don't)\n[G][symbol]->[G][down symbol]\n[G][wall]->[G][stationary wall]\n\n(stationary items support other items on top)\ndown [G][down symbol | stationary Item]->[G][stationary symbol| stationary Item]\n\n\n(Player's Long Legs)\n(---------------------------------------------------)\n(swap legs)\nup [playerlegs|player2 ]->[playerlegs2| player2]\nup [playerlegs2|player ]->[playerlegs | player ]\n\n(remove legs on down press or horizonal movement)\nup [playerlegs |down player ][no &]->[stationary player |][&] \nup [playerlegs2|down player2]->[stationary player2|] \nup [playerlegs |up player ]->[playerlegs |stationary player ] \nup [playerlegs2|up player2]->[playerlegs2|stationary player2] \n\n(remove orphan legs)\nlate up [playerlegs |no player ]->[|]\nlate up [playerlegs2|no player2]->[|]\n\n(Rise )\n[up Player]->[up Player Nextlegs]\n[up Player2]->[up Player2 Nextlegs]\nlate [Nextlegs no Item]->[playerlegs] (player 2 is irrelevant)\nlate [Nextlegs]->[]\n\n[Fixed]->[]\nstartloop\n(Transport)\n(---------------------------------------------------)\nup [moving Symbol|Symbol no Fixed]->[moving Symbol|moving Symbol]\n\n(Player Push)\n(---------------------------------------------------)\n[> Player | Symbol]->[> Player|> Symbol]\n\n(Collision)\n(---------------------------------------------------)\nhorizontal [playerlegs2|< symbol ]->[ |< symbol ]\nhorizontal [playerlegs |< symbol ]->[ |< symbol]\n[> Symbol | stationary Symbol]->[> symbol |> symbol]\n\n(De-register Phase: deregister unacomplished moves)\n(---------------------------------------------------)\n[> Symbol | stationary Item]->[stationary Symbol Fixed|stationary Item]\nendloop\n\n(animate throw)\nup [stationary player |...|left Symbol]->[stationary player ThrArmL|...|left Symbol ThrownLeft1 ]\nup [stationary player |...|right Symbol]->[stationary player ThrArmR|...|right Symbol ThrownRight1]\n\n\n[!]->[! Once]\n[moving Symbol][! Once]->[moving Symbol][!]\n [&][! Once]->[][!]\n[! Once][T As]->[!][T no As]\n[! Once]->[!]\n[&]->[]\n\n(Don't move player after win)\n(---------------------------------------------------)\n[player][WinDeco]->[stationary player][WinDeco]\n\n\n(display hint in tutorial level)\n(---------------------------------------------------)\n[Windeco][StorageFull]->[Windeco][]\n[StorageFull][Hint1]->[][] message No more moves. Retry (R)?\n\n(highlight player)\nlate [PlayerCover]->[]\nlate [Player2 no Player2Cover]->[Player2 Player2Cover]\nlate [PlayerLegs2 no PlayerLegs2Cover]->[PlayerLegs2 PlayerLegs2Cover]\n\n\nlate [»][PlayerCover]->[»][]\nlate [»][Player no Player2Cover]->[»][Player Player2Cover]\nlate [»][PlayerLegs no PlayerLegs2Cover]->[»][PlayerLegs PlayerLegs2Cover]\n\n[PlayerThrArmCover]->[]\nlate [ThrArmL Player2Cover]->[ThrArmL ThrarmLCover Player2Cover]\nlate [ThrArmR Player2Cover]->[ThrArmR ThrarmRCover Player2Cover]\n\n==============\nWINCONDITIONS\n==============\nAny WinNow\n\n=======\nLEVELS\n=======\n\nmessage \"So you want to reach your goals?\"\nmessage \"Well, start by helping yourself!\" \nmessage Lesson 1 of 11\nmessage Arrows to play a move...\nmessage ...X to replay moves!\n\n(introduce game mechanics)\n############\n#P..D..#####\n######.#####\n######...$.#\n############\n#----?######\n############\n\n(introduce carrying)\nmessage \"You seem to have some potential.\" \nmessage Lesson 2 * \nmessage \"Carry on...\" \n\n##########\n#.......P#\n#.....####\n#$..######\n##########\n##########\n##-----!##\n##########\n\n(introduce go up)\nmessage Lesson 3 * \nmessage \"..through ups and downs.\" \n##########\n#P......$#\n##..#..###\n##########\n##########\n##------!#\n##########\n\n(introduce push over)\nmessage Lesson 4 * \nmessage \"If you push yourself over the edge...\"\n##########\n#$......P#\n#####...##\n#####...##\n##########\n##!-----##\n##########\n\n(introduce floating respawn spot)\nmessage Lesson 5 *\nmessage \"... do lift yourself up.\"\n##########\n#.d......#\n#........#\n#.......$#\n#.....####\n#.....####\n#.P...####\n##########\n##########\n##-----!##\n##########\n\n(fun: force carrying, great distance and height)\nmessage Lesson 6 **\nmessage \"Never give up,...\"\n############\n#$.........#\n###........#\n#####......#\n#####......#\n#######....#\n#########.P#\n############\n############\n#!--------##\n############\n\n(fun reverse directions, move blockade)\nmessage Lesson 7 **\nmessage \"...but change direction instead.\" \n#######\n#$#####\n#..D..#\n#.###.#\n#P....#\n#######\n#-----#\n#-----!\n#######\n\n\n(introduce blocks and under leg respawn)\nmessage Lesson 8 **\nmessage \"For every block...\"\n########\n#..O..##\n#.##..##\n#.....$#\n#P##.###\n####.###\n##!#####\n########\n#------#\n########\n\n(push and carry at same time)\nmessage Lesson 9 ***\nmessage \"... is a stepping stone...\"\n#########\n#......$#\n#......##\n#P.....##\n##o....##\n###....##\n#########\n#########\n#!#----##\n###----##\n#########\n\n(fun: five storey, so close but so far)\nmessage Lesson 10 ***\nmessage \"... to greater heights!\"\n#######\n#...D$#\n#...###\n#...#!#\n#...###\n#O.P###\n#######\n#######\n#-----#\n#-----#\n#######\n\n(fun: double block constraint)\nmessage Lesson 11 ****\nmessage \"Barriers... are to be knocked!\"\n#########\n##..##.$#\n##..o..##\n##P.o..##\n#########\n#########\n##-----!#\n#########\n\nmessage \"Congratulations, pupil...\"\nmessage \"...you've learned all...\"\nmessage \"... and became your own master.\"\n\nmessage \"So what are you waiting for?\"\nmessage \"Go and chase your dreams!\"\n \nmessage > Play Mini Gemini Replay PMGRP < > > > > > Pedro PSI 2018 < < < < < \nmessage > > > > > > > Music < < < < < < < > Space Flight > < < < Tim Beek < \n\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", 1, "tick", "tick", 0, "tick", "tick", 1, "tick", "tick", "tick", 3, "tick", 2, "tick", 1, "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", 0, 4, "tick", 4, "tick", 4, "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background ch wall:0,background cdl wall:1,background cd cdot cu wall:2,2,2,background cul wall:3,background cdr wall:4,\nbackground cur wall:5,1,2,3,background cdot cl cr wall:6,background:7,7,\n7,7,background o:8,background cdot cl wall:9,0,au aui background read storage:10,ar ari background read storage:11,\nbackground cdot cr wall:12,3,7,7,7,7,7,\n4,3,al ali background read storage:13,10,9,12,7,\n7,animate background player:14,background player2 player2cover:15,background playerlegs2 playerlegs2cover:16,background hubup2 wall:17,12,10,\nbackground storage storagetick:18,4,background hubdown2 wall:19,7,background hubdotl hubup2 wall:20,4,background cv wall:21,\nbackground cdot cr cu wall:22,0,6,13,background storage:23,0,background hubdown wall:24,\nbackground goal goal3:25,background hubup wall:26,background ch freeplay wall:27,background cdot wall:28,0,1,3,\n11,23,6,0,4,3,1,\n21,background cd cdot cl cu wall:29,2,21,2,5,1,\n", 33, "1627779684110.5146"] ], [ `vertebrae`, - ["title Vertebrae\nauthor Ali Nikkhah\n\nnoaction\nbackground_color #000000\ntext_color #a98c47\nyoutube No3kOKsgIXE (dpndP-cBE60)\nrun_rules_on_level_start\nagain_interval 0.05\nkey_repeat_interval 0.12\n\n========\nOBJECTS\n========\n\nBackground\nWhite\n.....\n.....\n..0..\n.....\n.....\n\nGround \n#ac9071\n00000\n00000\n00000\n00000\n00000\n\nGroundCornerTRG\n#a99b8c #ac9071\n....0\n.....\n.....\n.....\n.....\n\nGroundCornerTRW\n#a99b8c #246894\n.11..\n...1.\n....1\n....1\n.....\n\nGroundCornerTLG\n#a99b8c #ac9071\n0....\n.....\n.....\n.....\n.....\n\nGroundCornerTLW\n#a99b8c #246894\n..11.\n.1...\n1....\n1....\n.....\n\nGroundCornerBRG\n#a99b8c #ac9071\n.....\n.....\n.....\n.....\n....0\n\nGroundCornerBRW\n#a99b8c #246894\n.....\n....1\n....1\n...1.\n.11..\n\nGroundCornerBLG\n#a99b8c #ac9071\n.....\n.....\n.....\n.....\n0....\n\nGroundCornerBLW\n#a99b8c #246894\n.....\n1....\n1....\n.1...\n..11.\n\nGroundEdgeUG\n#a99b8c #246894\n00000\n.....\n.....\n.....\n.....\n\nGroundEdgeUW\n#a99b8c #246894\n11111\n.....\n.....\n.....\n.....\n\nGroundEdgeRG\n#a99b8c #246894\n....0\n....0\n....0\n....0\n....0\n\nGroundEdgeRW\n#a99b8c #246894\n....1\n....1\n....1\n....1\n....1\n\nGroundEdgeDG\n#a99b8c #246894\n.....\n.....\n.....\n.....\n00000\n\nGroundEdgeDW\n#a99b8c #246894\n.....\n.....\n.....\n.....\n11111\n\nGroundEdgeLG\n#a99b8c #246894\n0....\n0....\n0....\n0....\n0....\n\nGroundEdgeLW\n#a99b8c #246894\n1....\n1....\n1....\n1....\n1....\n\nDirtWall \n#392800 #5a4000 #5e412b #433021 #4f3622 #744d2e #8b5a33\n.655.\n65122\n15243\n21443\n24433\n\nDoorVertical\n#d89005\n.000.\n.000.\n.000.\n.000.\n.000.\n\nOpenDoorVertical\n#d68708\n.0.0.\n.....\n.....\n.....\n.0.0.\n\nDoorHorizontal\n#d89005\n.....\n00000\n00000\n00000\n.....\n\nOpenDoorHorizontal\n#d68708\n.....\n0...0\n.....\n0...0\n.....\n\nGoal\nDarkBlue\n.....\n.....\n.....\n.....\n.....\n\nTrigger\nDarkBlue\n.....\n.....\n.....\n.....\n.....\n\nopen\ntransparent\n\nclose\ntransparent\n\nWater\n#1780c5 LightBlue\n10000\n00010\n01000\n00001\n00000\n\nWaterCornerTR\n#246894 #a99b8c\n.1110\n...11\n....1\n....1\n.....\n\nWaterCornerTL\n#246894 #a99b8c\n0111.\n11...\n1....\n1....\n.....\n\nWaterCornerBR\n#246894 #a99b8c\n.....\n....1\n....1\n...11\n.1110\n\nWaterCornerBL\n#246894 #a99b8c\n.....\n1....\n1....\n11...\n0111.\n\nLava\n#dd4e00 #ea5d00\n10000\n00010\n01000\n00001\n00000\n\nblood\nDarkred\n.000.\n00000\n00000\n00000\n.000.\n\nPlayerL\nBlack Brown Pink\n.....\n...2.\n2101.\n.1111\n11111\n\nPlayerU\nBlack Brown Pink\n..2..\n.010.\n21112\n11111\n.111.\n\nPlayerR\nBlack Brown Pink\n.....\n.2...\n.1012\n1111.\n11111\n\nPlayerD\nBlack Brown Pink\n.111.\n11111\n21112\n.010.\n..2..\n\nHeadL\nWhite\n.000.\n0.000\n...00\n..00.\n000..\n\nHeadD\nWhite\n.000.\n00000\n0.0.0\n0.0.0\n.000.\n\nHeadU\nWhite\n.000.\n0.0.0\n0.0.0\n00000\n.000.\n\nHeadR\nWhite\n.000.\n000.0\n00...\n.00..\n..000\n\nBodyRL\nWhite LightGrey\n.....\n..1..\n00000\n..1..\n.....\n\nBodyUD\nWhite LightGrey\n..0..\n..0..\n.101.\n..0..\n..0..\n\nBodyDR\nWhite LightGrey\n.....\n.1...\n..000\n..01.\n..0..\n\nBodyDL\nWhite LightGrey\n.....\n...1.\n000..\n.10..\n..0..\n\nBodyUR\nWhite LightGrey\n..0..\n..01.\n..000\n.1...\n.....\n\nBodyUL\nWhite LightGrey\n..0..\n.10..\n000..\n...1.\n.....\n\nTailL\nWhite LightGrey\n.....\n..1..\n0000.\n..1..\n.....\n\nTailR\nWhite LightGrey\n.....\n..1..\n.0000\n..1..\n.....\n\nTailU\nWhite LightGrey\n..0..\n..0..\n.101.\n..0..\n.....\n\nTailD\nWhite LightGrey\n.....\n..0..\n.101.\n..0..\n..0..\n\nDetachedTail\nWhite LightGray\n.....\n..0..\n.101.\n..0..\n.....\n\nBox\n#694632 #7c543d #563428\n.....\n.212.\n.101.\n.212.\n.....\n\nBoxBondU\n#766846\n..0..\n.....\n.....\n.....\n.....\n\nBoxBondR\n#766846\n.....\n.....\n....0\n.....\n.....\n\nBoxBondD\n#766846\n.....\n.....\n.....\n.....\n..0..\n\nBoxBondL\n#766846\n.....\n.....\n0....\n.....\n.....\n\nStep\n#9f835d #927051\n.111.\n10001\n10001\n10001\n.111.\n\nButton\n#7157df #360d8b Gray\n00011\n02221\n12221\n12220\n11000\n\nDartWallU\nBlack DarkGray Gray\n.....\n.112.\n12111\n11212\n11112\n\nDartWallL\nBlack DarkGray Gray\n.....\n.111.\n12112\n10112\n10111\n\nDartWallR\nBlack DarkGray Gray\n.....\n.111.\n21121\n21101\n11101\n\nDartWallD\nBlack DarkGray Gray\n.....\n.112.\n12111\n11012\n11012\n\nDartU\nLightGray\n.....\n..0..\n..0..\n.....\n.....\n\nDartR\nLightGray\n.....\n.....\n..00.\n.....\n.....\n\nDartD\nLightGray\n.....\n.....\n..0..\n..0..\n.....\n\nDartL\nLightGray\n.....\n.....\n.00..\n.....\n.....\n\nN1\nBlack\n..0..\n.00..\n..0..\n..0..\n.000.\n\nN2\nBlack\n000..\n...0.\n.00..\n0....\n0000.\n\nN3\nBlack\n000..\n...0.\n.00..\n...0.\n000..\n\nN4\nBlack\n...0.\n..00.\n.0.0.\n00000\n...0.\n\nN5\nBlack\n0000.\n0....\n000..\n...0.\n000..\n\nN6\nBlack\n.00..\n0....\n000..\n0..0.\n.00..\n\nN7\nBlack\n0000.\n...0.\n..0..\n.0...\n0....\n\nN8\nBlack\n.00..\n0..0.\n.00..\n0..0.\n.00..\n\nN9\nBlack\n.00..\n0..0.\n.000.\n...0.\n.00..\n\nN0\nBlack\n.00..\n0..0.\n0..0.\n0..0.\n.00..\n\nAttachR\ntransparent\n\nAttachL\ntransparent\n\nAttachD\ntransparent\n\nAttachU\ntransparent\n\nArrowU\ntransparent\n\nArrowL\ntransparent\n\nArrowR\ntransparent\n\nArrowD\ntransparent\n\nbreak\ntransparent\n\nclear\ntransparent\n\ncontinue\ntransparent\n\npull\ntransparent\n\nonGround\ntransparent\n\nblockedU\ntransparent\n\nblockedR\ntransparent\n\nblockedD\ntransparent\n\nblockedL\ntransparent\n\nstopU\ntransparent\n\nstopR\ntransparent\n\nstopD\ntransparent\n\nstopL\ntransparent\n\ntailit\ntransparent\n\npink\ntransparent\n\ngreen\ntransparent\n\nstart\ntransparent\n\nrayU\ntransparent\n\nrayR\ntransparent\n\nrayD\ntransparent\n\nrayL\ntransparent\n\nrayreturnU\ntransparent\n\nrayreturnR\ntransparent\n\nrayreturnD\ntransparent\n\nrayreturnL\ntransparent\n\n\nmessage0\ntransparent\n\nmessage1\ntransparent\n\nmessage2\ntransparent\n\nmessage3\ntransparent\n\nsavepoint\ntransparent\n\n\nedgeU\ntransparent\n\nedgeR\ntransparent\n\nedgeD\ntransparent\n\nedgeL\ntransparent\n\nfree\ntransparent\n\nredDot\nRed\n.....\n.....\n..0..\n.....\n.....\n\nblueDot\nblue\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n! = HeadL and ground\n& = HeadR and Water\n¤ = DetachedTail and Water\n\nw = water\nl = Lava\n. = ground\n# = DirtWall and ground\np = PlayerR and start and ground\n> = PlayerR and HeadR and start and ground\n^ = PlayerU and HeadU and start and ground\nv = PlayerD and HeadD and start and ground\n< = PlayerL and HeadL and start and ground\nd = DetachedTail and ground\n? = DetachedTail and Step and Water\n\" = DetachedTail and Box and Button and ground\nj = DetachedTail and Box and ground\ni = DetachedTail and Box and Step and Water\nb = box and ground\nn = box and button and ground\nm = box and water\nu = box and Step and water\nx = button and ground\ng = Step and Water\n$ = box and button and OpenDoorHorizontal and ground\n\nt = DoorVertical and ground\nz = DoorHorizontal and ground\n1 = DoorVertical and Step and Water\n2 = DoorHorizontal and Step and Water\n\no = Goal and ground\n0 = Goal and Step and Water\n- = Trigger and ground\n_ = trigger and water\n/ = trigger and DirtWall and ground\n: = Trigger and Step and Water\n\nA = DartWallU and ground\nY = DartWallR and ground\nK = DartWallD and ground\n7 = DartWallL and ground\n\n۱ = N1 and Water\n۲ = N2 and Water\n۳ = N3 and Water\n۴ = N4 and Water\n۵ = N5 and Water\n۶ = N6 and Water\n۷ = N7 and Water\n۸ = N8 and Water\n۹ = N9 and Water\n۰ = N0 and Water\n\nMarker = ArrowL or ArrowR or ArrowU or ArrowD\nAttachMarker = AttachU or AttachR or AttachD or AttachL\nBlockMarker = blockedU or blockedR or blockedD or blockedL\n\nBoxBondMarker = BoxBondU or BoxBondR or BoxBondD or BoxBondL\n\nPlayer = PlayerL or PlayerR or PlayerU or PlayerD\nTail = TailD or TailU or TailL or TailR\nHead = HeadL or HeadD or HeadR or HeadU\nVertebra = BodyRL or BodyUD or BodyUL or BodyDL or BodyUR or BodyDR or Tail\nMoveable = Vertebra or Head or DetachedTail or Box\n\nVertebraU = TailU or BodyUL or BodyUR or BodyUD\nVertebraR = TailR or BodyUR or BodyDR or BodyRL\nVertebraD = TailD or BodyDL or BodyDR or BodyUD\nVertebraL = TailL or BodyUL or BodyDL or BodyRL\n\nAttachable = Tail or DetachedTail\n\nDoor = DoorHorizontal or DoorVertical\nOpenDoor = OpenDoorHorizontal or OpenDoorVertical\n\nDartWall = DartWallU or DartWallR or DartWallD or DartWallL\nDart = DartU or DartR or DartD or DartL\n\nWall = DirtWall or Door or DartWall\nRayBlocker = Wall or Box or Vertebra or Dart or DetachedTail\nRay = rayU or rayR or rayD or rayL or rayreturnU or rayreturnR or rayreturnD or rayreturnL\n\nMapBackground = Water or Ground\nWalkable = Step or Ground\nNoGround = Button or DirtWall or Step\n\nWaterCorner = WaterCornerTR or WaterCornerTL or WaterCornerBR or WaterCornerBL\nGroundCorner = GroundCornerTRG or GroundCornerTLG or GroundCornerBRG or GroundCornerBLG or GroundCornerTRW or GroundCornerTLW or GroundCornerBRW or GroundCornerBLW\nGroundCornerU = GroundCornerTRG or GroundCornerTLG\nGroundCornerR = GroundCornerTRG or GroundCornerBRG\nGroundCornerD = GroundCornerBRG or GroundCornerBLG\nGroundCornerL = GroundCornerBLG or GroundCornerBRG\n\nedge = edgeU or edgeR or edgeD or edgeL\n=======\nSOUNDS\n=======\n\nUndo 33805504\n\nTitleScreen 92220309\n\nsfx1 98765764\nsfx2 74917107 (30004904)\nsfx3 3004904\nsfx4 32969702\nsfx5 75918304\nsfx6 88800304\nsfx7 1729107\nsfx8 30678307\n\n================\nCOLLISIONLAYERS\n================\n\nAttachU\nAttachD\nAttachL\nAttachR\n\nblockedU\nblockedR\nblockedD\nblockedL\n\nstopU\nstopR\nstopD\nstopL\n\nArrowU\nArrowR\nArrowD\nArrowL\n\nbreak\nclear\ncontinue\npull\nstart\nonground\n\ntailit\n\npink \ngreen\n\nBackground\nWater\nLava\nGround\n\nGroundCornerTRW\nGroundCornerTLW\nGroundCornerBRW\nGroundCornerBLW\nGroundEdgeUW\nGroundEdgeRW\nGroundEdgeDW\nGroundEdgeLW\n\nGroundCornerTRG\nGroundCornerTLG\nGroundCornerBRG\nGroundCornerBLG\nGroundEdgeUG\nGroundEdgeRG\nGroundEdgeDG\nGroundEdgeLG\n\nWaterCornerTR\nWaterCornerTL\nWaterCornerBR\nWaterCornerBL\n\nN0,N1,N2,N3,N4,N5,N6,N7,N8,N9\n\nStep\ngoal\nButton\nBlood\nOpenDoor\nPlayer\nWall, BodyRL, BodyUD, BodyUL, BodyDL, BodyUR, BodyDR, Head, DetachedTail \nTail\nBox\n\nBoxBondU\nBoxBondR\nBoxBondD\nBoxBondL\n\nDart\n\ntrigger\nopen\nclose\n\nray\n\nredDot\nbluedot\n\nmessage0\nmessage1\nmessage2\nmessage3\nsavepoint\n\nedgeU\nedgeR\nedgeD\nedgeL\n\nfree\n\n======\nRULES \n======\n\nup [ start ] [ Wall | Water no Wall ] -> [ start ] [ Wall WaterCornerTR WaterCornerTL | Water no GroundCornerBRG GroundCornerBLG ]\n\n[ start ] [ ] -> [ start ] [ edgeU edgeR edgeD edgeL ]\n\nup [ start ] [ edgeU | MapBackground ] -> [ start ] [ | MapBackground ]\nright [ start ] [ edgeR | MapBackground ] -> [ start ] [ | MapBackground ]\ndown [ start ] [ edgeD | MapBackground ] -> [ start ] [ | MapBackground ]\nleft [ start ] [ edgeL | MapBackground ] -> [ start ] [ | MapBackground ]\n\n[ start ] [ Step | Ground no NoGround | Step ] -> [ start ] [ Step | Step Water | Step ]\n\nup [ start ] [ DirtWall | Water no clear ] -> [ start ] [ Dirtwall no Ground | Water clear ]\n[ Water clear ] -> [ Water ]\n\n[ start ] [ Ground ] -> [ start ] [ Ground WaterCornerTR WaterCornerTL WaterCornerBR WaterCornerBL ]\n[ start ] [ Water ] -> [ start ] [ Water GroundCornerTRG GroundCornerTLG GroundCornerBRG GroundCornerBLG ]\n\nup [ start ] [ Ground | Ground ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerTR | Ground no WaterCornerBL no WaterCornerBR ]\nright [ start ] [ Ground | Ground ] -> [ start ] [ Ground no WaterCornerTR no WaterCornerBR | Ground no WaterCornerBL no WaterCornerTL ]\n\nup [ start ] [ Water | Water ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerTRG | Water no GroundCornerBLG no GroundCornerBRG ]\nright [ start ] [ Water | Water ] -> [ start ] [ Water no GroundCornerTRG no GroundCornerBRG | Water no GroundCornerBLG no GroundCornerTLG ]\n\nup [ start ] [ Water | DirtWall ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerTRG | DirtWall ]\nright [ start ] [ Water | DirtWall ] -> [ start ] [ Water no GroundCornerTRG no GroundCornerBRG | DirtWall ]\ndown [ start ] [ Water | DirtWall ] -> [ start ] [ Water no GroundCornerBLG no GroundCornerBRG | DirtWall ]\nleft [ start ] [ Water | DirtWall ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerBLG | DirtWall ]\n\nup [ start ] [ Ground | NoGround ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerTR | NoGround ]\nright [ start ] [ Ground | NoGround ] -> [ start ] [ Ground no WaterCornerTR no WaterCornerBR | NoGround ]\ndown [ start ] [ Ground | NoGround ] -> [ start ] [ Ground no WaterCornerBL no WaterCornerBR | NoGround ]\nleft [ start ] [ Ground | NoGround ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerBL | NoGround ]\n\n[ start ] [ Step WaterCorner ] -> [ start ] [ Step ]\n\n[ start ] [ Ground edgeD ] -> [ start ] [ Ground no WaterCornerBL no WaterCornerBR edgeD ]\n[ start ] [ Ground edgeL ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerBL edgeL ]\n[ start ] [ Ground edgeU ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerTR edgeU ]\n[ start ] [ Ground edgeR ] -> [ start ] [ Ground no WaterCornerTR no WaterCornerBR edgeR ]\n\n[ start ] [ Water edgeD ] -> [ start ] [ Water no GroundCornerBLG no GroundCornerBRG edgeD ]\n[ start ] [ Water edgeL ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerBLG edgeL ]\n[ start ] [ Water edgeU ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerTRG edgeU ]\n[ start ] [ Water edgeR ] -> [ start ] [ Water no GroundCornerTRG no GroundCornerBRG edgeR ]\n\nup [ start ] [ Water | Ground ] -> [ start ] [ Water GroundEdgeUW | Ground GroundEdgeDG ]\nright [ start ] [ Water | Ground ] -> [ start ] [ Water GroundEdgeRW | Ground GroundEdgeLG ]\ndown [ start ] [ Water | Ground ] -> [ start ] [ Water GroundEdgeDW | Ground GroundEdgeUG ]\nleft [ start ] [ Water | Ground ] -> [ start ] [ Water GroundEdgeLW | Ground GroundEdgeRG ]\n\n[ start ] [ GroundCornerTRG ] -> [ start ] [ GroundCornerTRG GroundCornerTRW ]\n[ start ] [ GroundCornerTLG ] -> [ start ] [ GroundCornerTLG GroundCornerTLW ]\n[ start ] [ GroundCornerBRG ] -> [ start ] [ GroundCornerBRG GroundCornerBRW ]\n[ start ] [ GroundCornerBLG ] -> [ start ] [ GroundCornerBLG GroundCornerBLW ]\n\n[ start ] [ GroundEdgeUG ] -> [ start ] [ GroundEdgeUG GroundEdgeUW ]\n[ start ] [ GroundEdgeRG ] -> [ start ] [ GroundEdgeRG GroundEdgeRW ]\n[ start ] [ GroundEdgeDG ] -> [ start ] [ GroundEdgeDG GroundEdgeDW ]\n[ start ] [ GroundEdgeLG ] -> [ start ] [ GroundEdgeLG GroundEdgeLW ]\n\n[ start ] [ GroundCorner | Button ] -> [ start ] [ | Button ]\n[ start ] [ | Button ] -> [ start ] [ | Button ]\n\n[ start ] [ no Ground ] -> [ start ] [ Water ]\n\n[ Player ] -> [ free Player ]\n\nup [ HeadU edgeU ] [ > Player ] -> [ HeadU edgeU ] [ no free > Player ]\nright [ HeadR edgeR ] [ > Player ] -> [ HeadR edgeR ] [ no free > Player ]\ndown [ HeadD edgeD ] [ > Player ] -> [ HeadD edgeD ] [ no free > Player ]\nleft [ HeadL edgeL ] [ > Player ] -> [ HeadL edgeL ] [ no free > Player ]\n\nup [ > Player no ArrowD ] -> [ free > Player ]\nright [ > Player no ArrowL ] -> [ free > Player ]\ndown [ > Player no ArrowU ] -> [ free > Player ]\nleft [ > Player no ArrowR ] -> [ free > Player ] \n\nlate [ Player Head savepoint ] -> [ Player Head ] checkpoint\n[ > Player Head message3 ] -> [ > Player Head > savepoint ] message \"Let's see what else is around here...\"\n[ Player Head message2 ] -> [ Player Head message3 ] message \"It's a bit too big, but I can use it if I fit my whole body into it.\"\n[ > Player message1 | Head ] -> [ > Player | Head message2 ] again message \"Oh, this skull seems like a fine helmet to wear.\"\n[ > Player no message0 | | Head ] -> [ > Player message0 | message1 | Head ] again message A predator! But no worry, it seems to have been dead for a long time!\n\nup [ Head start | DetachedTail no start ] -> [ Head start | start AttachD DetachedTail ]\nright [ Head start | DetachedTail no start ] -> [ Head start | start AttachL DetachedTail ]\ndown [ Head start | DetachedTail no start ] -> [ Head start | start AttachU DetachedTail ]\nleft [ Head start | DetachedTail no start ] -> [ Head start | start AttachR DetachedTail ]\n\n(Change player moving direction on corners)\n[ up Player HeadU WaterCornerTR no WaterCornerTL ] -> [ left Player HeadU WaterCornerTR ]\n[ up Player HeadU WaterCornerTL no WaterCornerTR ] -> [ right Player HeadU WaterCornerTL ]\n\n[ right Player HeadR WaterCornerTR no WaterCornerBR ] -> [ down Player HeadR WaterCornerTR ]\n[ right Player HeadR WaterCornerBR no WaterCornerTR ] -> [ up Player HeadR WaterCornerBR ]\n\n[ down Player HeadD WaterCornerBR no WaterCornerBL ] -> [ left Player HeadD WaterCornerBR ]\n[ down Player HeadD WaterCornerBL no WaterCornerBR ] -> [ right Player HeadD WaterCornerBL ]\n\n[ left Player HeadL WaterCornerTL no WaterCornerBL ] -> [ down Player HeadL WaterCornerTL ]\n[ left Player HeadL WaterCornerBL no WaterCornerTL ] -> [ up Player HeadL WaterCornerBL ]\n\n(Change sprite direction based on moving direction)\nup [ > Player ] -> [ > PlayerU ]\nright [ > Player ] -> [ > PlayerR ]\ndown [ > Player ] -> [ > PlayerD ]\nleft [ > Player ] -> [ > PlayerL ]\n\n(Stop player when moving toward water or leading the skeleton out of the map)\n[ > Player | no Walkable ] -> [ stationary Player | ]\n[ > Player no free ] -> [ stationary Player ]\n[ free ] -> []\n\n[ DartU ] -> [ up DartU ] again\n[ DartR ] -> [ right DartR ] again\n[ DartD ] -> [ down DartD ] again\n[ DartL ] -> [ left DartL ] again\n\n[ Dart Player ] -> [ Blood clear ] sfx6 again (Shot)\n\nup [ DartU | RayBlocker ] -> [ | Rayblocker ]\nright [ DartR | RayBlocker ] -> [ | Rayblocker ]\ndown [ DartD | RayBlocker ] -> [ | Rayblocker ]\nleft [ DartL | RayBlocker ] -> [ | Rayblocker ]\n\n[ > Player | Wall ] -> [ stationary Player | Wall ]\n[ > Player Head ] -> [ > Player > Head ]\n\nlate [ BlockMarker ] -> [ ]\n\n(Remove the direction and tail markers from the skeleton if the player is pushing, and not pulling, the skelleton)\nup [ > Head | VertebraD ] -> [ > Head clear | clear VertebraD ]\nright [ > Head | VertebraL ] -> [ > Head clear | clear VertebraL ] \ndown [ > Head | VertebraU ] -> [ > Head clear | clear VertebraU ]\nleft [ > Head | VertebraR ] -> [ > Head clear | clear VertebraR ]\n\nstartloop\n\nup [ clear VertebraU | VertebraD ] -> [ clear VertebraU | clear VertebraD ]\nright [ clear VertebraR | VertebraL ] -> [ clear VertebraR | clear VertebraL ]\ndown [ clear VertebraD | VertebraU ] -> [ clear VertebraD | clear VertebraU ]\nleft [ clear VertebraL | VertebraR ] -> [ clear VertebraL | clear VertebraR ]\n\nendloop\n\n[ clear Marker ] -> []\n[ clear break ] -> [] (break is also a marker for the tail)\n\n(Determine in which direction which objects represent an obstacle)\nstartloop\n\nup [ Moveable no break no Marker | Wall ] -> [ Moveable blockedD | Wall ]\nright [ Moveable no break no Marker | Wall ] -> [ Moveable blockedL | Wall ]\ndown [ Moveable no break no Marker | Wall ] -> [ Moveable blockedU | Wall ]\nleft [ Moveable no break no Marker | Wall ] -> [ Moveable blockedR | Wall ]\n\nup [ Moveable no break | Head Marker ] -> [ Moveable blockedD | Head Marker ] \nright [ Moveable no break | Head Marker ] -> [ Moveable blockedL | Head Marker ]\ndown [ Moveable no break | Head Marker ] -> [ Moveable blockedU | Head Marker ]\nleft [ Moveable no break | Head Marker ] -> [ Moveable blockedR | Head Marker]\n\nup [ Moveable no break | blockedD ] -> [ Moveable blockedD | blockedD ]\nright [ Moveable no break | blockedL ] -> [ Moveable blockedL | blockedL ]\ndown [ Moveable no break | blockedU ] -> [ Moveable blockedU | blockedU ]\nleft [ Moveable no break | blockedR ] -> [ Moveable blockedR | blockedR ]\n\nup [ ArrowD | Tail break | Wall ] -> [ ArrowD | Tail break blockedD | Wall ]\nright [ ArrowL | Tail break | Wall ] -> [ ArrowL | Tail break blockedL | Wall ]\ndown [ ArrowU | Tail break | Wall ] -> [ ArrowU | Tail break blockedU | Wall ]\nleft [ ArrowR | Tail break | Wall ] -> [ ArrowR | Tail break blockedR | Wall ] \n\nup [ ArrowD | Tail break | Head Marker ] -> [ ArrowD | Tail break blockedD | Head Marker ]\nright [ ArrowL | Tail break | Head Marker ] -> [ ArrowL | Tail break blockedL | Head Marker ]\ndown [ ArrowU | Tail break | Head Marker ] -> [ ArrowU | Tail break blockedU | Head Marker ]\nleft [ ArrowR | Tail break | Head Marker ] -> [ ArrowR | Tail break blockedR | Head Marker ] \n\nup [ ArrowD | Tail break | blockedD ] -> [ ArrowD | Tail break blockedD | blockedD ]\nright [ ArrowL | Tail break | blockedL ] -> [ ArrowL | Tail break blockedL | blockedL ]\ndown [ ArrowU | Tail break | blockedU ] -> [ ArrowU | Tail break blockedU | blockedU ]\nleft [ ArrowR | Tail break | blockedR ] -> [ ArrowR | Tail break blockedR | blockedR ] \n\nendloop\n\n(If head moves onto a vertebra directly, break the spine at that location)\nup [ > Head | Vertebra Marker no break ] -> [ > Head | break Marker ] sfx3\nright [ > Head | Vertebra Marker no break ] -> [ > Head | break Marker ] sfx3\ndown [ > Head | Vertebra Marker no break ] -> [ > Head | break Marker ] sfx3\nleft [ > Head | Vertebra Marker no break ] -> [ > Head | break Marker ] sfx3\n\n(Determine what object moves onto a moving vertebra indirectly)\nstartloop\n\n[ > Moveable | Moveable no Marker no break ] -> [ > Moveable | > Moveable ]\n\nup [ left VertebraU no blockedR | VertebraD no blockedR ] -> [ left VertebraU | left VertebraD ]\nup [ right VertebraU no blockedL | VertebraD no blockedL] -> [ right VertebraU | right VertebraD ]\n\nright [ up VertebraR no blockedD | VertebraL no blockedD] -> [ up VertebraR | up VertebraL ]\nright [ down VertebraR no blockedU | VertebraL no blockedU] -> [ down VertebraR | down VertebraL ]\n\ndown [ left VertebraD no blockedR | VertebraU no blockedR] -> [ left VertebraD | left VertebraU ]\ndown [ right VertebraD no blockedL | VertebraU no blockedL] -> [ right VertebraD | right VertebraU ]\n\nleft [ up VertebraL no BlockedD | VertebraR no blockedD] -> [ up VertebraL | up VertebraR ]\nleft [ down VertebraL no blockedU | VertebraR no blockedU] -> [ down VertebraL | down VertebraR ]\n\nup [ down VertebraU | VertebraD ] -> [ down VertebraU | down VertebraD ]\nright [ left VertebraR | VertebraL ] -> [ left VertebraR | left VertebraL ]\ndown [ up VertebraD | VertebraU ] -> [ up VertebraD | up VertebraU ]\nleft [ right VertebraL | VertebraR ] -> [ right VertebraL | right VertebraR ]\n\nendloop\n\n(Break the spine indirectly) \nup [ > Moveable no break | Marker no break ] -> [ > Moveable | break Marker ] sfx3\nright [ > Moveable no break | Marker no break ] -> [ > Moveable | break Marker ] sfx3\ndown [ > Moveable no break | Marker no break ] -> [ > Moveable | break Marker ] sfx3\nleft [ > Moveable no break | Marker no break ] -> [ > Moveable | break Marker ] sfx3\n\n(Removing the tail marker so that it doesn't interfere with the breaking process, it's add back later)\n[ Tail break ] -> [ Tail ]\n\n(Finding the broken spot nearest to the head to determine what chunk of the tail/body to cut off)\nstartloop\n\nup [ break VertebraU ArrowD | ] -> [ break VertebraU ArrowD | break ]\nright [ break VertebraR ArrowL | ] -> [ break VertebraR ArrowL | break ]\ndown [ break VertebraD ArrowU | ] -> [ break VertebraD ArrowU | break ]\nleft [ break VertebraL ArrowR | ] -> [ break VertebraL ArrowR | break ]\n\nendloop\n\n[ Tail break ] -> [ Tail break clear ]\n\nstartloop\n\nup [ break clear | break ArrowU ] -> [ | clear break ArrowU ]\nright [ break clear | break ArrowR ] -> [ | clear break ArrowR ]\ndown [ break clear | break ArrowD ] -> [ | clear break ArrowD ]\nleft [ break clear | break ArrowL ] -> [ | clear break ArrowL ]\n\nendloop\n\n[ break ] -> [ break bluedot ]\n[ no break ] -> [ no bluedot ]\n\n(Doing all the work again in case we break off a part that was actually supposed to block us from moving, thus also from breaking anything in the first place)\n[ > Moveable ] -> [ stationary Moveable ] \n[ > Player Head ] -> [ > Player > Head ] \n\nstartloop\n\nup [ Moveable no break | Wall ] -> [ Moveable blockedD | Wall ]\nright [ Moveable no break | Wall ] -> [ Moveable blockedL | Wall ]\ndown [ Moveable no break | Wall ] -> [ Moveable blockedU | Wall ]\nleft [ Moveable no break | Wall ] -> [ Moveable blockedR | Wall ]\n\nup [ Moveable no break | Head Marker ] -> [ Moveable blockedD | Head Marker ] \nright [ Moveable no break | Head Marker ] -> [ Moveable blockedL | Head Marker ]\ndown [ Moveable no break | Head Marker ] -> [ Moveable blockedU | Head Marker ]\nleft [ Moveable no break | Head Marker ] -> [ Moveable blockedR | Head Marker]\n\nup [ Moveable no break | blockedD ] -> [ Moveable blockedD | blockedD ]\nright [ Moveable no break | blockedL ] -> [ Moveable blockedL | blockedL ]\ndown [ Moveable no break | blockedU ] -> [ Moveable blockedU | blockedU ]\nleft [ Moveable no break | blockedR ] -> [ Moveable blockedR | blockedR ]\n\nup [ ArrowD | Tail break | Wall ] -> [ ArrowD | Tail break blockedD | Wall ]\nright [ ArrowL | Tail break | Wall ] -> [ ArrowL | Tail break blockedL | Wall ]\ndown [ ArrowU | Tail break | Wall ] -> [ ArrowU | Tail break blockedU | Wall ]\nleft [ ArrowR | Tail break | Wall ] -> [ ArrowR | Tail break blockedR | Wall ] \n\nup [ ArrowD | Tail break | Head Marker ] -> [ ArrowD | Tail break blockedD | Head Marker ]\nright [ ArrowL | Tail break | Head Marker ] -> [ ArrowL | Tail break blockedL | Head Marker ]\ndown [ ArrowU | Tail break | Head Marker ] -> [ ArrowU | Tail break blockedU | Head Marker ]\nleft [ ArrowR | Tail break | Head Marker ] -> [ ArrowR | Tail break blockedR | Head Marker ] \n\nup [ ArrowD | Tail break | blockedD ] -> [ ArrowD | Tail break blockedD | blockedD ]\nright [ ArrowL | Tail break | blockedL ] -> [ ArrowL | Tail break blockedL | blockedL ]\ndown [ ArrowU | Tail break | blockedU ] -> [ ArrowU | Tail break blockedU | blockedU ]\nleft [ ArrowR | Tail break | blockedR ] -> [ ArrowR | Tail break blockedR | blockedR ] \n\nendloop\n\nstartloop\n\n[ > Moveable | Moveable no Marker no break ] -> [ > Moveable | > Moveable ]\n\nup [ left VertebraU no blockedR | VertebraD no blockedR ] -> [ left VertebraU | left VertebraD ]\nup [ right VertebraU no blockedL | VertebraD no blockedL] -> [ right VertebraU | right VertebraD ]\n\nright [ up VertebraR no blockedD | VertebraL no blockedD] -> [ up VertebraR | up VertebraL ]\nright [ down VertebraR no blockedU | VertebraL no blockedU] -> [ down VertebraR | down VertebraL ]\n\ndown [ left VertebraD no blockedR | VertebraU no blockedR] -> [ left VertebraD | left VertebraU ]\ndown [ right VertebraD no blockedL | VertebraU no blockedL] -> [ right VertebraD | right VertebraU ]\n\nleft [ up VertebraL no BlockedD | VertebraR no blockedD] -> [ up VertebraL | up VertebraR ]\nleft [ down VertebraL no blockedU | VertebraR no blockedU] -> [ down VertebraL | down VertebraR ]\n\nup [ down VertebraU | VertebraD ] -> [ down VertebraU | down VertebraD ]\nright [ left VertebraR | VertebraL ] -> [ left VertebraR | left VertebraL ]\ndown [ up VertebraD | VertebraU ] -> [ up VertebraD | up VertebraU ]\nleft [ right VertebraL | VertebraR ] -> [ right VertebraL | right VertebraR ]\n\nendloop\n\n(Cancel the breaking in case we weren't supposed to break)\n[ > Head ] [ stationary Moveable | break ] -> [ > Head ] [ Moveable | ]\n\n(Find the spot that needs to be separated and do the action)\n[ > Vertebra ] -> [ stationary Vertebra ]\n[ > Attachable ] -> [ stationary Attachable ]\n[ > Box ] -> [ stationary Box ]\n[ Tail break ] -> [ Tail ]\n[ Vertebra break ] -> [ break ]\n\nrandom up [ break | ArrowU ] -> [ break TailU | ArrowU ]\n+right [ break | ArrowR ] -> [ break TailR | ArrowR ]\n+down [ break | ArrowD ] -> [ break TailD | ArrowD ]\n+left [ break | ArrowL ] -> [ break TailL | ArrowL ]\n\nrandom up [ Tail | ArrowU break ] -> [ DetachedTail | break ]\n+right [ Tail | ArrowR break ] -> [ DetachedTail | break ]\n+down [ Tail | ArrowD break ] -> [ DetachedTail | break ]\n+left [ Tail | ArrowL break ] -> [ DetachedTail | break ]\n\nrandom up [ Vertebra | ArrowU break ] -> [ break Vertebra | break ] \n+right [ Vertebra | ArrowR break ] -> [ break Vertebra | break ]\n+down [ Vertebra | ArrowD break ] -> [ break Vertebra | break ]\n+left [ Vertebra | ArrowL break ] -> [ break Vertebra | break ]\n\n[ Vertebra ArrowU break ] -> [ TailD clear ]\n[ Vertebra ArrowR break ] -> [ TailL clear ]\n[ Vertebra ArrowD break ] -> [ TailU clear ]\n[ Vertebra ArrowL break ] -> [ TailR clear ]\n\nup [ break TailU | no ArrowU ] -> [ TailU |]\nright [ break TailR | no ArrowR ] -> [ TailR |]\ndown [ break TailD | no ArrowD ] -> [ TailD |]\nleft [ break TailL | no ArrowL ] -> [ TailL |]\n\n(Clearing markers on the detached rest)\nstartloop\n\nup [ VertebraU clear | VertebraD Marker ] -> [ VertebraU | VertebraD clear ]\nright [ VertebraR clear | VertebraL Marker ] -> [ VertebraR | VertebraL clear ]\ndown [ VertebraD clear | VertebraU Marker ] -> [ VertebraD | VertebraU clear ]\nleft [ VertebraL clear | VertebraR Marker ] -> [ VertebraL | VertebraR clear ]\n\nendloop\n\n[ clear ] -> []\n\n(Marking the new tail)\nup [ TailU | ArrowU ] -> [ break TailU | ArrowU ]\nright [ TailR | ArrowR ] -> [ break TailR | ArrowR ]\ndown [ TailD | ArrowD ] -> [ break TailD | ArrowD ]\nleft [ TailL | ArrowL ] -> [ break TailL | ArrowL ]\n\n[ blockMarker ] -> []\n\n(Determine in which direction which objects represent an obstacle, this time if we are to block movement/break other sections)\nstartloop\n\nup [ Moveable no break no Marker | Wall ] -> [ Moveable blockedD | Wall ]\nright [ Moveable no break no Marker | Wall ] -> [ Moveable blockedL | Wall ]\ndown [ Moveable no break no Marker | Wall ] -> [ Moveable blockedU | Wall ]\nleft [ Moveable no break no Marker | Wall ] -> [ Moveable blockedR | Wall ]\n\nup [ Moveable no break | Head Marker ] -> [ Moveable blockedD | Head Marker ] \nright [ Moveable no break | Head Marker ] -> [ Moveable blockedL | Head Marker ]\ndown [ Moveable no break | Head Marker ] -> [ Moveable blockedU | Head Marker ]\nleft [ Moveable no break | Head Marker ] -> [ Moveable blockedR | Head Marker ]\n\nup [ Moveable no break | blockedD ] -> [ Moveable blockedD | blockedD ]\nright [ Moveable no break | blockedL ] -> [ Moveable blockedL | blockedL ]\ndown [ Moveable no break | blockedU ] -> [ Moveable blockedU | blockedU ]\nleft [ Moveable no break | blockedR ] -> [ Moveable blockedR | blockedR ]\n\nup [ ArrowD | Tail break | Wall ] -> [ ArrowD | Tail break blockedD | Wall ]\nright [ ArrowL | Tail break | Wall ] -> [ ArrowL | Tail break blockedL | Wall ]\ndown [ ArrowU | Tail break | Wall ] -> [ ArrowU | Tail break blockedU | Wall ]\nleft [ ArrowR | Tail break | Wall ] -> [ ArrowR | Tail break blockedR | Wall ] \n\nup [ ArrowD | Tail break | Head Marker ] -> [ ArrowD | Tail break blockedD | Head Marker ]\nright [ ArrowL | Tail break | Head Marker ] -> [ ArrowL | Tail break blockedL | Head Marker ]\ndown [ ArrowU | Tail break | Head Marker ] -> [ ArrowU | Tail break blockedU | Head Marker ]\nleft [ ArrowR | Tail break | Head Marker ] -> [ ArrowR | Tail break blockedR | Head Marker ] \n\nup [ ArrowD | Tail break | blockedD ] -> [ ArrowD | Tail break blockedD | blockedD ]\nright [ ArrowL | Tail break | blockedL ] -> [ ArrowL | Tail break blockedL | blockedL ]\ndown [ ArrowU | Tail break | blockedU ] -> [ ArrowU | Tail break blockedU | blockedU ]\nleft [ ArrowR | Tail break | blockedR ] -> [ ArrowR | Tail break blockedR | blockedR ]\n\nendloop\n\n(Determining which spots are supposed to break and which spots are supposed to be connected)\nstartloop\n\n[ > Moveable | Moveable no Marker no break ] -> [ > Moveable | > Moveable ]\n\n[ up Moveable Marker blockedD ] -> [ stationary Moveable Marker blockedD ]\n[ right Moveable Marker blockedL ] -> [ stationary Moveable Marker blockedL ]\n[ down Moveable Marker blockedU ] -> [ stationary Moveable Marker blockedU ]\n[ left Moveable Marker blockedR ] -> [ stationary Moveable Marker blockedR ]\n\nup [ left VertebraU no blockedR | VertebraD blockedR ] -> [ left VertebraU tailit | VertebraD tailit blockedR ]\nup [ right VertebraU no blockedL | VertebraD blockedL ] -> [ right VertebraU tailit | VertebraD tailit blockedL ]\n\nright [ up VertebraR no blockedD | VertebraL blockedD ] -> [ up VertebraR tailit | VertebraL tailit blockedD ]\nright [ down VertebraR no blockedU | VertebraL blockedU ] -> [ down VertebraR tailit | VertebraL tailit blockedU ]\n\ndown [ left VertebraD no blockedR | VertebraU blockedR ] -> [ left VertebraD tailit | VertebraU tailit blockedR ]\ndown [ right VertebraD no blockedL | VertebraU blockedL ] -> [ right VertebraD tailit | VertebraU tailit blockedL ]\n\nleft [ up VertebraL no blockedD | VertebraR blockedD ] -> [ up VertebraL tailit | VertebraR tailit blockedD ]\nleft [ down VertebraL no blockedU | VertebraR blockedU ] -> [ down VertebraL tailit | VertebraR tailit blockedU ]\n\nup [ left VertebraU no blockedR | VertebraD ] -> [ left VertebraU | left VertebraD ]\nup [ right VertebraU no blockedL | VertebraD ] -> [ right VertebraU | right VertebraD ]\n\nright [ up VertebraR no blockedD | VertebraL ] -> [ up VertebraR | up VertebraL ]\nright [ down VertebraR no blockedU | VertebraL ] -> [ down VertebraR | down VertebraL ]\n\ndown [ left VertebraD no blockedR | VertebraU ] -> [ left VertebraD | left VertebraU ]\ndown [ right VertebraD no blockedL | VertebraU ] -> [ right VertebraD | right VertebraU ]\n\nleft [ up VertebraL no BlockedD | VertebraR ] -> [ up VertebraL | up VertebraR ]\nleft [ down VertebraL no blockedU | VertebraR ] -> [ down VertebraL | down VertebraR ]\n\nup [ down VertebraU | VertebraD ] -> [ down VertebraU | down VertebraD ]\nright [ left VertebraR | VertebraL ] -> [ left VertebraR | left VertebraL ]\ndown [ up VertebraD | VertebraU ] -> [ up VertebraD | up VertebraU ]\nleft [ right VertebraL | VertebraR ] -> [ right VertebraL | right VertebraR ]\n\nup [ > Vertebra tailit | Vertebra tailit no break ] -> [ > Vertebra tailit AttachU | > Vertebra tailit AttachD ]\nright [ > Vertebra tailit | Vertebra tailit no break ] -> [ > Vertebra tailit AttachR | > Vertebra tailit AttachL ]\ndown [ > Vertebra tailit | Vertebra tailit no break ] -> [ > Vertebra tailit AttachD | > Vertebra tailit AttachU ]\nleft [ > Vertebra tailit | Vertebra tailit no break ] -> [ > Vertebra tailit AttachL | > Vertebra tailit AttachR ]\n\nup [ > Vertebra tailit | Attachable no break ] -> [ > Vertebra tailit AttachU | > Attachable AttachD ]\nright [ > Vertebra tailit | Attachable no break ] -> [ > Vertebra tailit AttachR | > Attachable AttachL ]\ndown [ > Vertebra tailit | Attachable no break ] -> [ > Vertebra tailit AttachD | > Attachable AttachU ]\nleft [ > Vertebra tailit | Attachable no break ] -> [ > Vertebra tailit AttachL | > Attachable AttachR ]\n\nup [ > Attachable | Vertebra tailit ] -> [ > Attachable AttachU | > Vertebra tailit AttachD ]\nright [ > Attachable | Vertebra tailit ] -> [ > Attachable AttachR | > Vertebra tailit AttachL ]\ndown [ > Attachable | Vertebra tailit ] -> [ > Attachable AttachD | > Vertebra tailit AttachU ]\nleft [ > Attachable | Vertebra tailit ] -> [ > Attachable AttachL | > Vertebra tailit AttachR ]\n\nendloop\n\n(Cancel movement if pushed against the edge of the map)\nup [ > Moveable edgeU ] [ > Player ] -> cancel\nright [ > Moveable edgeR ] [ > Player ] -> cancel\ndown [ > Moveable edgeD ] [ > Player ] -> cancel\nleft [ > Moveable edgeL ] [ > Player ] -> cancel\n\nup [ > Head edgeU ] [ > Player ] -> cancel\nright [ > Head edgeR ] [ > Player ] -> cancel\ndown [ > Head edgeD ] [ > Player ] -> cancel\nleft [ > Head edgeL ] [ > Player ] -> cancel\n\nup [ TailU AttachU ] -> [ TailU ]\nright [ TailR AttachR ] -> [ TailR ]\ndown [ TailD AttachD ] -> [ TailD ]\nleft [ TailL AttachL ] -> [ TailL ]\n\n()()()()\n\n[ tailit | perpendicular Vertebra tailit | tailit ] -> [ tailit | perpendicular DetachedTail | tailit ] sfx3\n[ perpendicular tailit | stationary Vertebra tailit | perpendicular tailit ] -> [ perpendicular tailit | DetachedTail | perpendicular tailit ] sfx3\n\nup [ moving Vertebra tailit | VertebraD no tailit ] -> [ moving TailU | VertebraD ] sfx3\nright [ moving Vertebra tailit | VertebraL no tailit ] -> [ moving TailR | VertebraL ] sfx3\ndown [ moving Vertebra tailit | VertebraU no tailit ] -> [ moving TailD | VertebraU ] sfx3\nleft [ moving Vertebra tailit | VertebraR no tailit ] -> [ moving TailL | VertebraR ] sfx3\n\nup [ stationary VertebraU tailit | stationary VertebraD tailit ] -> [ TailU | TailD ] sfx3\nright [ stationary VertebraR tailit | stationary VertebraL tailit ] -> [ TailR | TailL ] sfx3\ndown [ stationary VertebraD tailit | stationary VertebraU tailit ] -> [ TailD | TailU ] sfx3\nleft [ stationary VertebraL tailit | stationary VertebraR tailit ] -> [ TailL | TailR ] sfx3\n\nup [ > VertebraU tailit | > VertebraD tailit ] -> [ > TailU | > TailD ] sfx3\nright [ > VertebraR tailit | > VertebraL tailit ] -> [ > TailR | > TailL ] sfx3\ndown [ > VertebraD tailit | > VertebraU tailit ] -> [ > TailD | > TailU ] sfx3\nleft [ > VertebraL tailit | > VertebraR tailit ] -> [ > TailL | > TailR ] sfx3\n\nup [ moving Vertebra tailit | HeadU no tailit ] -> [ moving TailU | HeadU ] sfx3\nright [ moving Vertebra tailit | HeadR no tailit ] -> [ moving TailR | HeadR ] sfx3\ndown [ moving Vertebra tailit | HeadD no tailit ] -> [ moving TailD | HeadD ] sfx3\nleft [ moving Vertebra tailit | HeadL no tailit ] -> [ moving TailL | HeadL ] sfx3\n\nup [ stationary Vertebra tailit | VertebraD no tailit ] -> [ TailU | VertebraD ] sfx3\nright [ stationary Vertebra tailit | VertebraL no tailit ] -> [ TailR | VertebraL ] sfx3\ndown [ stationary Vertebra tailit | VertebraU no tailit ] -> [ TailD | VertebraU ] sfx3\nleft [ stationary Vertebra tailit | VertebraR no tailit ] -> [ TailL | VertebraR ] sfx3\n\n[ stationary Tail tailit ] -> [ DetachedTail ] sfx3\n[ > Tail tailit ] -> [ > DetachedTail ] sfx3\n\nup [ > Attachable | Attachable no break ] -> [ > Attachable AttachU | AttachD > Attachable ]\nright [ > Attachable | Attachable no break ] -> [ > Attachable AttachR | AttachL > Attachable ]\ndown [ > Attachable | Attachable no break ] -> [ > Attachable AttachD | AttachU > Attachable ]\nleft [ > Attachable | Attachable no break ] -> [ > Attachable AttachL | AttachR > Attachable ]\n\nup [ TailU AttachU ] -> [ TailU ]\nright [ TailR AttachR ] -> [ TailR ]\ndown [ TailD AttachD ] -> [ TailD ]\nleft [ TailL AttachL ] -> [ TailL ]\n\n(A clever trick to stop loop formation when two ends of one piece come to gether.)\nstartloop \n\n[ > Head | no pink Moveable ] -> [ > Head | pink Moveable ]\nup [ pink VertebraU | no pink VertebraD ] -> [ pink VertebraU | pink VertebraD ]\nright [ pink VertebraR | no pink VertebraL ] -> [ pink VertebraR | pink VertebraL ]\ndown [ pink VertebraD | no pink VertebraU ] -> [ pink VertebraD | pink VertebraU ]\nleft [ pink VertebraL | no pink VertebraR ] -> [ pink VertebraL | pink VertebraR ]\n\ndown [ > Head ] [ pink | no pink no AttachU Moveable ] -> [ > Head ] [ pink | pink Moveable ]\nleft [ > Head ] [ pink | no pink no AttachR Moveable ] -> [ > Head ] [ pink | pink Moveable ]\nup [ > Head ] [ pink | no pink no AttachD Moveable ] -> [ > Head ] [ pink | pink Moveable ]\nright [ > Head ] [ pink | no pink no AttachL Moveable ] -> [ > Head ] [ pink | pink Moveable ]\n\ndown [ > Head ] [ AttachD | pink AttachU ] -> [ > Head ] [ green AttachD | pink AttachU ]\nleft [ > Head ] [ AttachL | pink AttachR ] -> [ > Head ] [ green AttachL | pink AttachR ]\nup [ > Head ] [ AttachU | pink AttachD ] -> [ > Head ] [ green AttachU | pink AttachD ]\nright [ > Head ] [ AttachR | pink AttachL ] -> [ > Head ] [ green AttachR | pink AttachL ] \n\nup [ green VertebraU | no green no pink VertebraD ] -> [ green VertebraU | green VertebraD ]\nright [ green VertebraR | no green no pink VertebraL ] -> [ green VertebraR | green VertebraL ]\ndown [ green VertebraD | no green no pink VertebraU ] -> [ green VertebraD | green VertebraU ]\nleft [ green VertebraL | no green no pink VertebraR ] -> [ green VertebraL | green VertebraR ]\n\ndown [ > Head ] [ pink AttachD | green AttachU ] -> [ > Head ] [ pink AttachD | pink green AttachU ]\nleft [ > Head ] [ pink AttachL | green AttachR ] -> [ > Head ] [ pink AttachL | pink green AttachR ]\nup [ > Head ] [ pink AttachU | green AttachD ] -> [ > Head ] [ pink AttachU | pink green AttachD ]\nright [ > Head ] [ pink AttachR | green AttachL ] -> [ > Head ] [ pink AttachR | pink green AttachL ]\n\nendloop\n\ndown [ pink green AttachD | pink no green AttachU ] -> [ pink green | pink ]\nleft [ pink green AttachL | pink no green AttachR ] -> [ pink green | pink ]\nup [ pink green AttachU | pink no green AttachD ] -> [ pink green | pink ]\nright [ pink green AttachR | pink no green AttachL ] -> [ pink green | pink ] \n\n[ pink ] -> []\n[ green ] -> []\n\n(Prevent many attachables in a row to all attach together, if one in a row is already attached the attachment between it and the next one should be canceled)\nstartloop\n\nup [ no AttachU | > Tail AttachU | Tail AttachU | ] -> [ | > Tail AttachU | Tail AttachD | no AttachD ]\nright [ no AttachR | > Tail AttachR | Tail AttachR | ] -> [ | > Tail AttachR | Tail AttachL | no AttachL ]\ndown [ no AttachD | > Tail AttachD | Tail AttachD | ] -> [ | > Tail AttachD | Tail AttachU | no AttachU ]\nleft [ no AttachL | > Tail AttachL | Tail AttachL | ] -> [ | > Tail AttachL | Tail AttachR | no AttachR ]\n\nup [ | > DetachedTail AttachU | Tail AttachU | ] -> [ | > DetachedTail AttachU | Tail AttachD | no AttachD ]\nright [ | > DetachedTail AttachR | Tail AttachR | ] -> [ | > DetachedTail AttachR | Tail AttachL | no AttachL ]\ndown [ | > DetachedTail AttachD | Tail AttachD | ] -> [ | > DetachedTail AttachD | Tail AttachU | no AttachU ]\nleft [ | > DetachedTail AttachL | Tail AttachL | ] -> [ | > DetachedTail AttachL | Tail AttachR | no AttachR ]\n\nup [ > Head no Marker | no TailD Tail AttachU | ] -> [ > Head | Tail AttachD | no AttachD ]\nright [ > Head no Marker | no TailL Tail AttachR | ] -> [ > Head | Tail AttachL | no AttachL ]\ndown [ > Head no Marker | no TailU Tail AttachD | ] -> [ > Head | Tail AttachU | no AttachU ]\nleft [ > Head no Marker | no TailR Tail AttachL | ] -> [ > Head | Tail AttachR | no AttachR ]\n\nendloop\n\n(Boxes can't reattach once they are detached)\nup [ Box AttachU | AttachD ] -> [ Box | ]\nright [ Box AttachR | AttachL ] -> [ Box | ]\ndown [ Box AttachD | AttachU ] -> [ Box | ]\nleft [ Box AttachL | AttachR ] -> [ Box | ]\nlate [ Box DetachedTail ] -> [ Box ]\n\n(Attach all separated vertebrae at the start to make up the skeleton)\n[ start ] [ DetachedTail ] -> [ start ] [ start DetachedTail ]\n\nup [ DetachedTail start | DetachedTail start ] -> [ DetachedTail AttachU start | start AttachD DetachedTail ]\nright [ DetachedTail start | DetachedTail start ] -> [ DetachedTail AttachR start | start AttachL DetachedTail ]\ndown [ DetachedTail start | DetachedTail start ] -> [ DetachedTail AttachD start | start AttachU DetachedTail ]\nleft [ DetachedTail start | DetachedTail start ] -> [ DetachedTail AttachL start | start AttachR DetachedTail ]\n\n[ start ] -> []\n\n(Attach head to vertebra / spine)\nup [ > Head no Marker | Attachable no Box ] -> [ > HeadD | AttachD Attachable ] sfx1\nright [ > Head no Marker | Attachable no Box ] -> [ > HeadL | AttachL Attachable ] sfx1\ndown [ > Head no Marker | Attachable no Box ] -> [ > HeadU | AttachU Attachable ] sfx1\nleft [ > Head no Marker | Attachable no Box ] -> [ > HeadR | AttachR Attachable ] sfx1\n\n()\n\n[ > TailU ] -> [ > TailU AttachU ]\n[ > TailR ] -> [ > TailR AttachR ]\n[ > TailD ] -> [ > TailD AttachD ]\n[ > TailL ] -> [ > TailL AttachL ]\n\n(The process of attaching tails and vertebrae)\n\n[ > Attachable AttachU AttachR ] -> [ > BodyUR AttachU AttachR ] sfx1\n[ > Attachable AttachU AttachL ] -> [ > BodyUL AttachU AttachL ] sfx1\n[ > Attachable AttachD AttachR ] -> [ > BodyDR AttachD AttachR ] sfx1\n[ > Attachable AttachD AttachL ] -> [ > BodyDL AttachD AttachL ] sfx1\n[ > Attachable AttachL AttachR ] -> [ > BodyRL AttachL AttachR ] sfx1\n[ > Attachable AttachU AttachD ] -> [ > BodyUD AttachU AttachD ] sfx1\n\n[ > Attachable AttachU ] -> [ > TailU AttachU ] sfx1\n[ > Attachable AttachR ] -> [ > TailR AttachR ] sfx1\n[ > Attachable AttachD ] -> [ > TailD AttachD ] sfx1\n[ > Attachable AttachL ] -> [ > TailL AttachL ] sfx1\n\n[ Attachable AttachU AttachR ] -> [ BodyUR AttachU AttachR ] sfx1\n[ Attachable AttachU AttachL ] -> [ BodyUL AttachU AttachL ] sfx1\n[ Attachable AttachD AttachR ] -> [ BodyDR AttachD AttachR ] sfx1\n[ Attachable AttachD AttachL ] -> [ BodyDL AttachD AttachL ] sfx1\n[ Attachable AttachL AttachR ] -> [ BodyRL AttachL AttachR ] sfx1\n[ Attachable AttachU AttachD ] -> [ BodyUD AttachU AttachD ] sfx1\n\n[ Attachable AttachU ] -> [ TailU AttachU ] sfx1\n[ Attachable AttachR ] -> [ TailR AttachR ] sfx1\n[ Attachable AttachD ] -> [ TailD AttachD ] sfx1\n[ Attachable AttachL ] -> [ TailL AttachL ] sfx1\n\nup [ Attachable AttachU | no Attachable no VertebraD ] -> [ Attachable | ] sfx1\nright [ Attachable AttachR | no Attachable no VertebraL ] -> [ Attachable | ] sfx1\ndown [ Attachable AttachD | no Attachable no VertebraU ] -> [ Attachable | ] sfx1\nleft [ Attachable AttachL | no Attachable no VertebraR ] -> [ Attachable | ] sfx1\n\n()()()()\n\n[ AttachMarker ] -> []\n\n[ up Moveable blockedD ] -> [ stationary Moveable blockedD ]\n[ right Moveable blockedL ] -> [ stationary Moveable blockedL ]\n[ down Moveable blockedU ] -> [ stationary Moveable blockedU ]\n[ left Moveable blockedR ] -> [ stationary Moveable blockedR ]\n\nup [ > Head | no VertebraD ] -> [ > HeadU | ]\nright [ > Head | no VertebraL ] -> [ > HeadR | ]\ndown [ > Head | no VertebraU ] -> [ > HeadD | ]\nleft [ > Head | no VertebraR ] -> [ > HeadL | ]\n\n[ Marker ] -> [ no Marker ]\n\n(Marking the body, each part points in the reverse direction of the next part relative to itself (that means the direction the body is \"moving\" at that point))\nstartloop\n\nup [ Head no Marker | VertebraD ] -> [ Head ArrowD | VertebraD continue ]\nright [ Head no Marker | VertebraL ] -> [ Head ArrowL | VertebraL continue ]\ndown [ Head no Marker | VertebraU ] -> [ Head ArrowU | VertebraU continue ]\nleft [ Head no Marker | VertebraR ] -> [ Head ArrowR | VertebraR continue ]\n\nup [ Vertebra continue | VertebraD no Marker ] -> [ Vertebra ArrowD | VertebraD continue ]\nright [ Vertebra continue | VertebraL no Marker ] -> [ Vertebra ArrowL | VertebraL continue ]\ndown [ Vertebra continue | VertebraU no Marker ] -> [ Vertebra ArrowU | VertebraU continue ]\nleft [ Vertebra continue | VertebraR no Marker ] -> [ Vertebra ArrowR | VertebraR continue ]\n\n[ Tail continue ] -> [ break Tail ]\n\nendloop\n\n[ continue ] -> []\n\n(If the head is pulling the body and not pushing it)\nup [ > Head no ArrowD ] -> [ > Head pull] sfx2\nright [ > Head no ArrowL ] -> [ > Head pull] sfx2\ndown [ > Head no ArrowU ] -> [ > Head pull] sfx2\nleft [ > Head no ArrowR ] -> [ > Head pull] sfx2\n\n(Pull the spine)\nstartloop\n\nup [ stationary Vertebra | moving Moveable ArrowU pull ] -> [ > Vertebra pull | moving Moveable ArrowU pull ]\nright [ stationary Vertebra | moving Moveable ArrowR pull ] -> [ > Vertebra pull | moving Moveable ArrowR pull ]\ndown [ stationary Vertebra | moving Moveable ArrowD pull ] -> [ > Vertebra pull | moving Moveable ArrowD pull ]\nleft [ stationary Vertebra | moving Moveable ArrowL pull ] -> [ > Vertebra pull | moving Moveable ArrowL pull ]\n\nendloop\n\n(New markers for the new positions)\nstartloop\n\n[ up Moveable Marker pull ] -> [ up Moveable ArrowU pull ]\n[ right Moveable Marker pull ] -> [ right Moveable ArrowR pull ]\n[ down Moveable Marker pull ] -> [ down Moveable ArrowD pull ]\n[ left Moveable Marker pull ] -> [ left Moveable ArrowL pull ]\n\nendloop\n\n[ Head pull ] -> [ Head ]\n\n[ > Vertebra Box ] -> [ > Vertebra > Box ]\n[ > Moveable Marker ] -> [ > Moveable > Marker ]\n\n[ > Moveable pull ] -> [ > Moveable > pull ]\n[ > Tail break ] -> [ > Tail > break ]\n\n[ Player stationary Head ] -> [ stationary Player stationary Head ]\n\n[ > Box ground ] -> [ > Box ground ] sfx8\n[ > Box water no Step ] -> [ > Box water ] sfx7\n\n(Creating the new skeleton)\nstartloop\n\nlate up [ Vertebra ArrowU pull | ArrowU no pull ] -> [ BodyUD ArrowU | ArrowU ]\nlate up [ Vertebra ArrowR pull | ArrowU no pull ] -> [ BodyUL ArrowR | ArrowU ]\nlate up [ Vertebra ArrowL pull | ArrowU no pull ] -> [ BodyUR ArrowL | ArrowU ]\n\nlate right [ Vertebra ArrowR pull | ArrowR no pull ] -> [ BodyRL ArrowR | ArrowR ]\nlate right [ Vertebra ArrowU pull | ArrowR no pull ] -> [ BodyDR ArrowU | ArrowR ]\nlate right [ Vertebra ArrowD pull | ArrowR no pull ] -> [ BodyUR ArrowD | ArrowR ]\n\nlate down [ Vertebra ArrowD pull | ArrowD no pull ] -> [ BodyUD ArrowD | ArrowD ]\nlate down [ Vertebra ArrowR pull | ArrowD no pull ] -> [ BodyDL ArrowR | ArrowD ]\nlate down [ Vertebra ArrowL pull | ArrowD no pull ] -> [ BodyDR ArrowL | ArrowD ]\n\nlate left [ Vertebra ArrowL pull | ArrowL no pull ] -> [ BodyRL ArrowL | ArrowL ]\nlate left [ Vertebra ArrowU pull | ArrowL no pull ] -> [ BodyDL ArrowU | ArrowL ]\nlate left [ Vertebra ArrowD pull | ArrowL no pull ] -> [ BodyUL ArrowD | ArrowL ]\n\nlate up [ Tail pull | ArrowU no pull ] -> [ TailU | ArrowU ]\nlate right [ Tail pull | ArrowR no pull ] -> [ TailR | ArrowR ]\nlate down [ Tail pull | ArrowD no pull ] -> [ TailD | ArrowD ]\nlate left [ Tail pull | ArrowL no pull ] -> [ TailL | ArrowL ]\n\nendloop\n\n(Marking attached boxes' bonds to their neighboring attached boxes)\nlate [ BoxBondMarker ] -> []\nlate [ Box VertebraU ] -> [ Box BoxBondU VertebraU ]\nlate [ Box VertebraR ] -> [ Box BoxBondR VertebraR ]\nlate [ Box VertebraD ] -> [ Box BoxBondD VertebraD ]\nlate [ Box VertebraL ] -> [ Box BoxBondL VertebraL ] \n\n(Door/Button action)\nlate [ Head Button ] -> [ Head open Button ]\nlate [ Box Button ] -> [ Box open Button ]\n\nstartloop\n\nlate [ Button open | Trigger ] -> [ Button | Trigger open ]\nlate [ Trigger open | Trigger ] -> [ Trigger open | Trigger open ]\nlate [ Trigger open | DoorVertical ] -> [ Trigger | OpenDoorVertical ]\nlate [ Trigger open | DoorHorizontal ] -> [ Trigger | OpenDoorHorizontal ]\n\nendloop\n\nlate [ Button no Head no Box ] -> [ Button close ]\n\nstartloop\n\nlate [ Button close | Trigger ] -> [ Button close | Trigger close ]\nlate [ Trigger close | Trigger ] -> [ Trigger close | Trigger close ]\nlate [ Trigger close | OpenDoor no close ] -> [ Trigger close | OpenDoor close ]\n\nendloop\n\nlate [ close OpenDoor Box ] -> [ OpenDoor Box ]\n\nlate up [ VertebraU | close OpenDoor ] -> [ tailit VertebraU | close OpenDoor ]\nlate right [ VertebraR | close OpenDoor ] -> [ tailit VertebraR | close OpenDoor ]\nlate down [ VertebraD | close OpenDoor ] -> [ tailit VertebraD | close OpenDoor ]\nlate left [ VertebraL | close OpenDoor ] -> [ tailit VertebraL | close OpenDoor ]\n\nlate up [ HeadD | close OpenDoor ] -> [ no Marker HeadD | close OpenDoor ]\nlate right [ HeadL | close OpenDoor ] -> [ no Marker HeadL | close OpenDoor ]\nlate down [ HeadU | close OpenDoor ] -> [ no Marker HeadU | close OpenDoor ]\nlate left [ HeadR | close OpenDoor ] -> [ no Marker HeadR | close OpenDoor ]\n\nlate [ close OpenDoor Player ] -> [ close OpenDoor no Player Blood ] sfx5 message Crushed!\nlate [ close OpenDoor Moveable ] -> [ close OpenDoor no break no Marker ] sfx3\n\nlate [ close OpenDoorVertical ] -> [ DoorVertical ]\nlate [ close OpenDoorHorizontal ] -> [ DoorHorizontal ] \n\nlate [ open ] -> []\nlate [ close ] -> []\n\n(Breaking the spots that broke by closing doors)\nlate up [ VertebraU | Vertebra tailit ] -> [ VertebraU | TailD ]\nlate right [ VertebraR | Vertebra tailit ] -> [ VertebraR | TailL ]\nlate down [ VertebraD | Vertebra tailit ] -> [ VertebraD | TailU ]\nlate left [ VertebraL | Vertebra tailit ] -> [ VertebraL | TailR ]\n\nlate up [ HeadD | Vertebra tailit ] -> [ HeadD | TailD ]\nlate right [ HeadL | Vertebra tailit ] -> [ HeadL | TailL ]\nlate down [ HeadU | Vertebra tailit ] -> [ HeadU | TailU ]\nlate left [ HeadR | Vertebra tailit ] -> [ HeadR | TailR ]\n\n[tailit ] -> []\n[ break no Tail ] -> [ no break ]\n\nlate [ Tail tailit ] -> [ DetachedTail ]\n\n(Lava action (not used in the game))\nlate [ Head ] -> [ onGround Head ]\nlate [ Vertebra Ground ] -> [ Vertebra onGround Ground ]\nlate up [ onGround | VertebraD ] -> [ onGround | VertebraD onGround ]\nlate right [ onGround | VertebraL ] -> [ onGround | VertebraL onGround ]\nlate down [ onGround | VertebraU ] -> [ onGround | VertebraU onGround ]\nlate left [ onGround | VertebraR ] -> [ onGround | VertebraR onGround ]\n\nlate [ Vertebra Lava no onGround ] -> [ Lava ] sfx4\nlate [ DetachedTail Lava ] -> [ Lava ] sfx4\n\nlate [ onGround ] -> []\n\nlate up [ DartWallU ] -> [ DartWallU rayU ]\nlate right [ DartWallR ] -> [ DartWallR rayR ]\nlate down [ DartWallD ] -> [ DartWallD rayD ]\nlate left [ DartWallL ] -> [ DartWallL rayL ]\n\n(Dart shooting action (not used in the game))\nstartloop\n\nlate up [ rayU | no RayBlocker no Player ] -> [ | rayU ]\nlate right [ rayR | no RayBlocker no Player ] -> [ | rayR ]\nlate down [ rayD | no RayBlocker no Player ] -> [ | rayD ]\nlate left [ rayL | no RayBlocker no Player ] -> [ | rayL ] \n\nlate up [ rayU | rayBlocker no DartWallD ] -> [ | rayBlocker ]\nlate right [ rayR | rayBlocker no DartWallL ] -> [ | rayBlocker ]\nlate down [ rayD | rayBlocker no DartWallU ] -> [ | rayBlocker ]\nlate left [ rayL | rayBlocker no DartWallR ] -> [ | rayBlocker ] \n\nlate up [ rayU | Player ] -> [ | rayreturnD Player ]\nlate right [ rayR | Player ] -> [ | rayreturnL Player ]\nlate down [ rayD | Player ] -> [ | rayreturnU Player ]\nlate left [ rayL | Player ] -> [ | rayreturnR Player ] \n\nlate up [ rayreturnU | no rayBlocker no DartWallD ] -> [ | rayreturnU ]\nlate right [ rayreturnR | no rayBlocker no DartWallL ] -> [ | rayreturnR ]\nlate down [ rayreturnD | no rayBlocker no DartWallU ] -> [ | rayreturnD ]\nlate left [ rayreturnL | no rayBlocker no DartWallR ] -> [ | rayreturnL ] \n\nendloop\n\nlate up [ rayreturnU | DartWall ] -> [ | DartD DartWall ] again\nlate right [ rayreturnR | DartWall ] -> [ DartL | DartWall ] again\nlate down [ rayreturnD | DartWall ] -> [ DartU | DartWall ] again\nlate left [ rayreturnL | DartWall ] -> [ DartR | DartWall ] again\n\n==============\nWINCONDITIONS\n==============\n\nall Player on Goal\nno Blood\n\n======= \nLEVELS\n=======\n\n(4 - 3)\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwww..wwwwwww\nwwwwwwwww...gwwwwww\nwwwwww.....wggwwww#\nwwwwgg..#wwwgwww###\nwwwwgwwwwm#wggg:tto\ng???>gww#wwwwww_w/#\nwwwww...wwwwx___w_#\nwwwww..b.wwxwwwww_w\nwwwwww...ww_______w\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\nw۴wwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\n\n",[3,2,2,1,0,0,1,1,3,0,0,3,3,3,0,3,3,3,0,0,1,2,2,1],"background edgel edgeu water:0,background edgel water:1,1,1,1,1,1,1,1,background edgel step water:2,1,1,1,1,1,1,background edged edgel water:3,background edgeu water:4,background water:5,\n5,5,5,5,5,5,5,background step water:6,5,5,5,5,5,background n4 water:7,background edged water:8,4,5,5,5,\n5,5,5,5,5,6,5,5,5,5,5,5,8,4,5,5,5,5,5,\n5,5,5,6,5,5,5,5,5,5,8,4,5,5,5,5,5,5,6,\n6,6,background groundedgerw water:9,9,5,5,5,5,8,4,5,5,5,5,5,9,background groundedgerw step water:10,5,background groundedgedw step water:11,\nbackground ground groundedgelg groundedgelw groundedgeug groundedgeuw:12,background ground groundedgedg groundedgedw groundedgelg groundedgelw watercornerbl:13,background groundcornertrg groundcornertrw groundedgerw groundedgeuw water:14,5,5,5,8,4,5,5,5,5,background groundedgedw water:15,background ground groundedgelg groundedgelw groundedgeug groundedgeuw watercornertl:16,background ground groundedgedg groundedgedw groundedgelg groundedgelw:17,background groundedgeuw water:18,15,background ground groundedgeug groundedgeuw:19,background ground:20,\n13,18,5,5,8,4,5,5,5,5,15,19,background ground groundedgedg groundedgedw:21,18,15,background ground groundedgerg groundedgerw groundedgeug groundedgeuw watercornertr:22,background box ground:23,21,18,\n5,5,8,4,5,5,5,5,background groundcornerbrg groundcornerbrw groundedgedw groundedgerw water:24,19,background dirtwall ground groundedgedg groundedgedw groundedgerg groundedgerw watercornerbr:25,18,background dirtwall water watercornertl watercornertr:26,background groundcornerblg groundcornerblw groundedgedw groundedgelw water:27,22,background ground groundedgedg groundedgedw groundedgerg groundedgerw watercornerbr:28,18,5,5,\n8,4,5,5,5,24,arrowl background ground groundedgelg groundedgelw groundedgeug groundedgeuw headl playerl watercornertl:29,21,background groundedgelw groundedgeuw water:30,background box water:31,5,5,background groundedgelw water:32,32,5,5,5,8,4,\n5,5,15,16,arrowu background bodydl ground:33,arrowu background bodyud ground groundedgedg groundedgedw groundedgerg groundedgerw watercornerbr:34,background break groundedgeuw tailu water:35,26,5,5,9,5,5,5,5,8,4,5,5,\n15,22,background ground groundedgedg groundedgedw groundedgerg groundedgerw:36,background groundcornertlg groundcornertlw groundedgelw groundedgeuw water:37,5,5,5,background groundedgedw groundedgerw water:38,background button ground groundedgedg groundedgedw groundedgelg groundedgelw groundedgerg groundedgerw groundedgeug groundedgeuw watercornerbl watercornerbr watercornertl watercornertr:39,background groundedgeuw trigger water:40,5,5,5,8,4,5,5,5,32,\nbackground groundedgelw step water:41,6,6,6,15,39,30,background trigger water:42,5,5,5,8,4,5,5,5,5,5,6,\n5,6,5,background groundedgelw trigger water:43,5,42,5,5,5,8,4,5,5,5,5,5,5,5,6,\n5,42,5,42,5,5,5,8,4,5,5,5,5,5,5,5,background groundedgerw step trigger water:44,42,42,\n5,42,5,5,5,8,4,5,5,5,5,5,5,26,background doorvertical ground groundedgedg groundedgedw groundedgelg groundedgelw:45,background groundedgerw groundedgeuw water:46,5,5,42,\n5,5,5,8,4,5,5,5,5,5,5,26,background doorvertical ground:47,background dirtwall ground groundedgedg groundedgedw groundedgelg groundedgelw trigger watercornerbl:48,background groundedgerw groundedgeuw trigger water:49,42,42,5,5,\n5,8,background edger edgeu water:50,background edger water:51,51,51,51,51,background dirtwall edger water watercornertl watercornertr:52,background dirtwall edger ground:53,background edger goal ground:54,53,background dirtwall edger ground groundedgedg groundedgedw groundedgelg groundedgelw watercornerbl:55,background edger groundedgeuw water:56,51,51,51,51,background edged edger water:57,\n",0,"1627779869171.2134"] + ["title Vertebrae\nauthor Ali Nikkhah\n\nnoaction\nbackground_color #000000\ntext_color #a98c47\nyoutube No3kOKsgIXE (dpndP-cBE60)\nrun_rules_on_level_start\nagain_interval 0.05\nkey_repeat_interval 0.12\n\n========\nOBJECTS\n========\n\nBackground\nWhite\n.....\n.....\n..0..\n.....\n.....\n\nGround \n#ac9071\n00000\n00000\n00000\n00000\n00000\n\nGroundCornerTRG\n#a99b8c #ac9071\n....0\n.....\n.....\n.....\n.....\n\nGroundCornerTRW\n#a99b8c #246894\n.11..\n...1.\n....1\n....1\n.....\n\nGroundCornerTLG\n#a99b8c #ac9071\n0....\n.....\n.....\n.....\n.....\n\nGroundCornerTLW\n#a99b8c #246894\n..11.\n.1...\n1....\n1....\n.....\n\nGroundCornerBRG\n#a99b8c #ac9071\n.....\n.....\n.....\n.....\n....0\n\nGroundCornerBRW\n#a99b8c #246894\n.....\n....1\n....1\n...1.\n.11..\n\nGroundCornerBLG\n#a99b8c #ac9071\n.....\n.....\n.....\n.....\n0....\n\nGroundCornerBLW\n#a99b8c #246894\n.....\n1....\n1....\n.1...\n..11.\n\nGroundEdgeUG\n#a99b8c #246894\n00000\n.....\n.....\n.....\n.....\n\nGroundEdgeUW\n#a99b8c #246894\n11111\n.....\n.....\n.....\n.....\n\nGroundEdgeRG\n#a99b8c #246894\n....0\n....0\n....0\n....0\n....0\n\nGroundEdgeRW\n#a99b8c #246894\n....1\n....1\n....1\n....1\n....1\n\nGroundEdgeDG\n#a99b8c #246894\n.....\n.....\n.....\n.....\n00000\n\nGroundEdgeDW\n#a99b8c #246894\n.....\n.....\n.....\n.....\n11111\n\nGroundEdgeLG\n#a99b8c #246894\n0....\n0....\n0....\n0....\n0....\n\nGroundEdgeLW\n#a99b8c #246894\n1....\n1....\n1....\n1....\n1....\n\nDirtWall \n#392800 #5a4000 #5e412b #433021 #4f3622 #744d2e #8b5a33\n.655.\n65122\n15243\n21443\n24433\n\nDoorVertical\n#d89005\n.000.\n.000.\n.000.\n.000.\n.000.\n\nOpenDoorVertical\n#d68708\n.0.0.\n.....\n.....\n.....\n.0.0.\n\nDoorHorizontal\n#d89005\n.....\n00000\n00000\n00000\n.....\n\nOpenDoorHorizontal\n#d68708\n.....\n0...0\n.....\n0...0\n.....\n\nGoal\nDarkBlue\n.....\n.....\n.....\n.....\n.....\n\nTrigger\nDarkBlue\n.....\n.....\n.....\n.....\n.....\n\nopen\ntransparent\n\nclose\ntransparent\n\nWater\n#1780c5 LightBlue\n10000\n00010\n01000\n00001\n00000\n\nWaterCornerTR\n#246894 #a99b8c\n.1110\n...11\n....1\n....1\n.....\n\nWaterCornerTL\n#246894 #a99b8c\n0111.\n11...\n1....\n1....\n.....\n\nWaterCornerBR\n#246894 #a99b8c\n.....\n....1\n....1\n...11\n.1110\n\nWaterCornerBL\n#246894 #a99b8c\n.....\n1....\n1....\n11...\n0111.\n\nLava\n#dd4e00 #ea5d00\n10000\n00010\n01000\n00001\n00000\n\nblood\nDarkred\n.000.\n00000\n00000\n00000\n.000.\n\nPlayerL\nBlack Brown Pink\n.....\n...2.\n2101.\n.1111\n11111\n\nPlayerU\nBlack Brown Pink\n..2..\n.010.\n21112\n11111\n.111.\n\nPlayerR\nBlack Brown Pink\n.....\n.2...\n.1012\n1111.\n11111\n\nPlayerD\nBlack Brown Pink\n.111.\n11111\n21112\n.010.\n..2..\n\nHeadL\nWhite\n.000.\n0.000\n...00\n..00.\n000..\n\nHeadD\nWhite\n.000.\n00000\n0.0.0\n0.0.0\n.000.\n\nHeadU\nWhite\n.000.\n0.0.0\n0.0.0\n00000\n.000.\n\nHeadR\nWhite\n.000.\n000.0\n00...\n.00..\n..000\n\nBodyRL\nWhite LightGrey\n.....\n..1..\n00000\n..1..\n.....\n\nBodyUD\nWhite LightGrey\n..0..\n..0..\n.101.\n..0..\n..0..\n\nBodyDR\nWhite LightGrey\n.....\n.1...\n..000\n..01.\n..0..\n\nBodyDL\nWhite LightGrey\n.....\n...1.\n000..\n.10..\n..0..\n\nBodyUR\nWhite LightGrey\n..0..\n..01.\n..000\n.1...\n.....\n\nBodyUL\nWhite LightGrey\n..0..\n.10..\n000..\n...1.\n.....\n\nTailL\nWhite LightGrey\n.....\n..1..\n0000.\n..1..\n.....\n\nTailR\nWhite LightGrey\n.....\n..1..\n.0000\n..1..\n.....\n\nTailU\nWhite LightGrey\n..0..\n..0..\n.101.\n..0..\n.....\n\nTailD\nWhite LightGrey\n.....\n..0..\n.101.\n..0..\n..0..\n\nDetachedTail\nWhite LightGray\n.....\n..0..\n.101.\n..0..\n.....\n\nBox\n#694632 #7c543d #563428\n.....\n.212.\n.101.\n.212.\n.....\n\nBoxBondU\n#766846\n..0..\n.....\n.....\n.....\n.....\n\nBoxBondR\n#766846\n.....\n.....\n....0\n.....\n.....\n\nBoxBondD\n#766846\n.....\n.....\n.....\n.....\n..0..\n\nBoxBondL\n#766846\n.....\n.....\n0....\n.....\n.....\n\nStep\n#9f835d #927051\n.111.\n10001\n10001\n10001\n.111.\n\nButton\n#7157df #360d8b Gray\n00011\n02221\n12221\n12220\n11000\n\nDartWallU\nBlack DarkGray Gray\n.....\n.112.\n12111\n11212\n11112\n\nDartWallL\nBlack DarkGray Gray\n.....\n.111.\n12112\n10112\n10111\n\nDartWallR\nBlack DarkGray Gray\n.....\n.111.\n21121\n21101\n11101\n\nDartWallD\nBlack DarkGray Gray\n.....\n.112.\n12111\n11012\n11012\n\nDartU\nLightGray\n.....\n..0..\n..0..\n.....\n.....\n\nDartR\nLightGray\n.....\n.....\n..00.\n.....\n.....\n\nDartD\nLightGray\n.....\n.....\n..0..\n..0..\n.....\n\nDartL\nLightGray\n.....\n.....\n.00..\n.....\n.....\n\nN1\nBlack\n..0..\n.00..\n..0..\n..0..\n.000.\n\nN2\nBlack\n000..\n...0.\n.00..\n0....\n0000.\n\nN3\nBlack\n000..\n...0.\n.00..\n...0.\n000..\n\nN4\nBlack\n...0.\n..00.\n.0.0.\n00000\n...0.\n\nN5\nBlack\n0000.\n0....\n000..\n...0.\n000..\n\nN6\nBlack\n.00..\n0....\n000..\n0..0.\n.00..\n\nN7\nBlack\n0000.\n...0.\n..0..\n.0...\n0....\n\nN8\nBlack\n.00..\n0..0.\n.00..\n0..0.\n.00..\n\nN9\nBlack\n.00..\n0..0.\n.000.\n...0.\n.00..\n\nN0\nBlack\n.00..\n0..0.\n0..0.\n0..0.\n.00..\n\nAttachR\ntransparent\n\nAttachL\ntransparent\n\nAttachD\ntransparent\n\nAttachU\ntransparent\n\nArrowU\ntransparent\n\nArrowL\ntransparent\n\nArrowR\ntransparent\n\nArrowD\ntransparent\n\nbreak\ntransparent\n\nclear\ntransparent\n\ncontinue\ntransparent\n\npull\ntransparent\n\nonGround\ntransparent\n\nblockedU\ntransparent\n\nblockedR\ntransparent\n\nblockedD\ntransparent\n\nblockedL\ntransparent\n\nstopU\ntransparent\n\nstopR\ntransparent\n\nstopD\ntransparent\n\nstopL\ntransparent\n\ntailit\ntransparent\n\npink\ntransparent\n\ngreen\ntransparent\n\nstart\ntransparent\n\nrayU\ntransparent\n\nrayR\ntransparent\n\nrayD\ntransparent\n\nrayL\ntransparent\n\nrayreturnU\ntransparent\n\nrayreturnR\ntransparent\n\nrayreturnD\ntransparent\n\nrayreturnL\ntransparent\n\n\nmessage0\ntransparent\n\nmessage1\ntransparent\n\nmessage2\ntransparent\n\nmessage3\ntransparent\n\nsavepoint\ntransparent\n\n\nedgeU\ntransparent\n\nedgeR\ntransparent\n\nedgeD\ntransparent\n\nedgeL\ntransparent\n\nfree\ntransparent\n\nredDot\nRed\n.....\n.....\n..0..\n.....\n.....\n\nblueDot\nblue\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n! = HeadL and ground\n& = HeadR and Water\n¤ = DetachedTail and Water\n\nw = water\nl = Lava\n. = ground\n# = DirtWall and ground\np = PlayerR and start and ground\n> = PlayerR and HeadR and start and ground\n^ = PlayerU and HeadU and start and ground\nv = PlayerD and HeadD and start and ground\n< = PlayerL and HeadL and start and ground\nd = DetachedTail and ground\n? = DetachedTail and Step and Water\n\" = DetachedTail and Box and Button and ground\nj = DetachedTail and Box and ground\ni = DetachedTail and Box and Step and Water\nb = box and ground\nn = box and button and ground\nm = box and water\nu = box and Step and water\nx = button and ground\ng = Step and Water\n$ = box and button and OpenDoorHorizontal and ground\n\nt = DoorVertical and ground\nz = DoorHorizontal and ground\n1 = DoorVertical and Step and Water\n2 = DoorHorizontal and Step and Water\n\no = Goal and ground\n0 = Goal and Step and Water\n- = Trigger and ground\n_ = trigger and water\n/ = trigger and DirtWall and ground\n: = Trigger and Step and Water\n\nA = DartWallU and ground\nY = DartWallR and ground\nK = DartWallD and ground\n7 = DartWallL and ground\n\n۱ = N1 and Water\n۲ = N2 and Water\n۳ = N3 and Water\n۴ = N4 and Water\n۵ = N5 and Water\n۶ = N6 and Water\n۷ = N7 and Water\n۸ = N8 and Water\n۹ = N9 and Water\n۰ = N0 and Water\n\nMarker = ArrowL or ArrowR or ArrowU or ArrowD\nAttachMarker = AttachU or AttachR or AttachD or AttachL\nBlockMarker = blockedU or blockedR or blockedD or blockedL\n\nBoxBondMarker = BoxBondU or BoxBondR or BoxBondD or BoxBondL\n\nPlayer = PlayerL or PlayerR or PlayerU or PlayerD\nTail = TailD or TailU or TailL or TailR\nHead = HeadL or HeadD or HeadR or HeadU\nVertebra = BodyRL or BodyUD or BodyUL or BodyDL or BodyUR or BodyDR or Tail\nMoveable = Vertebra or Head or DetachedTail or Box\n\nVertebraU = TailU or BodyUL or BodyUR or BodyUD\nVertebraR = TailR or BodyUR or BodyDR or BodyRL\nVertebraD = TailD or BodyDL or BodyDR or BodyUD\nVertebraL = TailL or BodyUL or BodyDL or BodyRL\n\nAttachable = Tail or DetachedTail\n\nDoor = DoorHorizontal or DoorVertical\nOpenDoor = OpenDoorHorizontal or OpenDoorVertical\n\nDartWall = DartWallU or DartWallR or DartWallD or DartWallL\nDart = DartU or DartR or DartD or DartL\n\nWall = DirtWall or Door or DartWall\nRayBlocker = Wall or Box or Vertebra or Dart or DetachedTail\nRay = rayU or rayR or rayD or rayL or rayreturnU or rayreturnR or rayreturnD or rayreturnL\n\nMapBackground = Water or Ground\nWalkable = Step or Ground\nNoGround = Button or DirtWall or Step\n\nWaterCorner = WaterCornerTR or WaterCornerTL or WaterCornerBR or WaterCornerBL\nGroundCorner = GroundCornerTRG or GroundCornerTLG or GroundCornerBRG or GroundCornerBLG or GroundCornerTRW or GroundCornerTLW or GroundCornerBRW or GroundCornerBLW\nGroundCornerU = GroundCornerTRG or GroundCornerTLG\nGroundCornerR = GroundCornerTRG or GroundCornerBRG\nGroundCornerD = GroundCornerBRG or GroundCornerBLG\nGroundCornerL = GroundCornerBLG or GroundCornerBRG\n\nedge = edgeU or edgeR or edgeD or edgeL\n=======\nSOUNDS\n=======\n\nUndo 33805504\n\nTitleScreen 92220309\n\nsfx1 98765764\nsfx2 74917107 (30004904)\nsfx3 3004904\nsfx4 32969702\nsfx5 75918304\nsfx6 88800304\nsfx7 1729107\nsfx8 30678307\n\n================\nCOLLISIONLAYERS\n================\n\nAttachU\nAttachD\nAttachL\nAttachR\n\nblockedU\nblockedR\nblockedD\nblockedL\n\nstopU\nstopR\nstopD\nstopL\n\nArrowU\nArrowR\nArrowD\nArrowL\n\nbreak\nclear\ncontinue\npull\nstart\nonground\n\ntailit\n\npink \ngreen\n\nBackground\nWater\nLava\nGround\n\nGroundCornerTRW\nGroundCornerTLW\nGroundCornerBRW\nGroundCornerBLW\nGroundEdgeUW\nGroundEdgeRW\nGroundEdgeDW\nGroundEdgeLW\n\nGroundCornerTRG\nGroundCornerTLG\nGroundCornerBRG\nGroundCornerBLG\nGroundEdgeUG\nGroundEdgeRG\nGroundEdgeDG\nGroundEdgeLG\n\nWaterCornerTR\nWaterCornerTL\nWaterCornerBR\nWaterCornerBL\n\nN0,N1,N2,N3,N4,N5,N6,N7,N8,N9\n\nStep\ngoal\nButton\nBlood\nOpenDoor\nPlayer\nWall, BodyRL, BodyUD, BodyUL, BodyDL, BodyUR, BodyDR, Head, DetachedTail \nTail\nBox\n\nBoxBondU\nBoxBondR\nBoxBondD\nBoxBondL\n\nDart\n\ntrigger\nopen\nclose\n\nray\n\nredDot\nbluedot\n\nmessage0\nmessage1\nmessage2\nmessage3\nsavepoint\n\nedgeU\nedgeR\nedgeD\nedgeL\n\nfree\n\n======\nRULES \n======\n\nup [ start ] [ Wall | Water no Wall ] -> [ start ] [ Wall WaterCornerTR WaterCornerTL | Water no GroundCornerBRG GroundCornerBLG ]\n\n[ start ] [ ] -> [ start ] [ edgeU edgeR edgeD edgeL ]\n\nup [ start ] [ edgeU | MapBackground ] -> [ start ] [ | MapBackground ]\nright [ start ] [ edgeR | MapBackground ] -> [ start ] [ | MapBackground ]\ndown [ start ] [ edgeD | MapBackground ] -> [ start ] [ | MapBackground ]\nleft [ start ] [ edgeL | MapBackground ] -> [ start ] [ | MapBackground ]\n\n[ start ] [ Step | Ground no NoGround | Step ] -> [ start ] [ Step | Step Water | Step ]\n\nup [ start ] [ DirtWall | Water no clear ] -> [ start ] [ Dirtwall no Ground | Water clear ]\n[ Water clear ] -> [ Water ]\n\n[ start ] [ Ground ] -> [ start ] [ Ground WaterCornerTR WaterCornerTL WaterCornerBR WaterCornerBL ]\n[ start ] [ Water ] -> [ start ] [ Water GroundCornerTRG GroundCornerTLG GroundCornerBRG GroundCornerBLG ]\n\nup [ start ] [ Ground | Ground ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerTR | Ground no WaterCornerBL no WaterCornerBR ]\nright [ start ] [ Ground | Ground ] -> [ start ] [ Ground no WaterCornerTR no WaterCornerBR | Ground no WaterCornerBL no WaterCornerTL ]\n\nup [ start ] [ Water | Water ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerTRG | Water no GroundCornerBLG no GroundCornerBRG ]\nright [ start ] [ Water | Water ] -> [ start ] [ Water no GroundCornerTRG no GroundCornerBRG | Water no GroundCornerBLG no GroundCornerTLG ]\n\nup [ start ] [ Water | DirtWall ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerTRG | DirtWall ]\nright [ start ] [ Water | DirtWall ] -> [ start ] [ Water no GroundCornerTRG no GroundCornerBRG | DirtWall ]\ndown [ start ] [ Water | DirtWall ] -> [ start ] [ Water no GroundCornerBLG no GroundCornerBRG | DirtWall ]\nleft [ start ] [ Water | DirtWall ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerBLG | DirtWall ]\n\nup [ start ] [ Ground | NoGround ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerTR | NoGround ]\nright [ start ] [ Ground | NoGround ] -> [ start ] [ Ground no WaterCornerTR no WaterCornerBR | NoGround ]\ndown [ start ] [ Ground | NoGround ] -> [ start ] [ Ground no WaterCornerBL no WaterCornerBR | NoGround ]\nleft [ start ] [ Ground | NoGround ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerBL | NoGround ]\n\n[ start ] [ Step WaterCorner ] -> [ start ] [ Step ]\n\n[ start ] [ Ground edgeD ] -> [ start ] [ Ground no WaterCornerBL no WaterCornerBR edgeD ]\n[ start ] [ Ground edgeL ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerBL edgeL ]\n[ start ] [ Ground edgeU ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerTR edgeU ]\n[ start ] [ Ground edgeR ] -> [ start ] [ Ground no WaterCornerTR no WaterCornerBR edgeR ]\n\n[ start ] [ Water edgeD ] -> [ start ] [ Water no GroundCornerBLG no GroundCornerBRG edgeD ]\n[ start ] [ Water edgeL ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerBLG edgeL ]\n[ start ] [ Water edgeU ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerTRG edgeU ]\n[ start ] [ Water edgeR ] -> [ start ] [ Water no GroundCornerTRG no GroundCornerBRG edgeR ]\n\nup [ start ] [ Water | Ground ] -> [ start ] [ Water GroundEdgeUW | Ground GroundEdgeDG ]\nright [ start ] [ Water | Ground ] -> [ start ] [ Water GroundEdgeRW | Ground GroundEdgeLG ]\ndown [ start ] [ Water | Ground ] -> [ start ] [ Water GroundEdgeDW | Ground GroundEdgeUG ]\nleft [ start ] [ Water | Ground ] -> [ start ] [ Water GroundEdgeLW | Ground GroundEdgeRG ]\n\n[ start ] [ GroundCornerTRG ] -> [ start ] [ GroundCornerTRG GroundCornerTRW ]\n[ start ] [ GroundCornerTLG ] -> [ start ] [ GroundCornerTLG GroundCornerTLW ]\n[ start ] [ GroundCornerBRG ] -> [ start ] [ GroundCornerBRG GroundCornerBRW ]\n[ start ] [ GroundCornerBLG ] -> [ start ] [ GroundCornerBLG GroundCornerBLW ]\n\n[ start ] [ GroundEdgeUG ] -> [ start ] [ GroundEdgeUG GroundEdgeUW ]\n[ start ] [ GroundEdgeRG ] -> [ start ] [ GroundEdgeRG GroundEdgeRW ]\n[ start ] [ GroundEdgeDG ] -> [ start ] [ GroundEdgeDG GroundEdgeDW ]\n[ start ] [ GroundEdgeLG ] -> [ start ] [ GroundEdgeLG GroundEdgeLW ]\n\n[ start ] [ GroundCorner | Button ] -> [ start ] [ | Button ]\n[ start ] [ | Button ] -> [ start ] [ | Button ]\n\n[ start ] [ no Ground ] -> [ start ] [ Water ]\n\n[ Player ] -> [ free Player ]\n\nup [ HeadU edgeU ] [ > Player ] -> [ HeadU edgeU ] [ no free > Player ]\nright [ HeadR edgeR ] [ > Player ] -> [ HeadR edgeR ] [ no free > Player ]\ndown [ HeadD edgeD ] [ > Player ] -> [ HeadD edgeD ] [ no free > Player ]\nleft [ HeadL edgeL ] [ > Player ] -> [ HeadL edgeL ] [ no free > Player ]\n\nup [ > Player no ArrowD ] -> [ free > Player ]\nright [ > Player no ArrowL ] -> [ free > Player ]\ndown [ > Player no ArrowU ] -> [ free > Player ]\nleft [ > Player no ArrowR ] -> [ free > Player ] \n\nlate [ Player Head savepoint ] -> [ Player Head ] checkpoint\n[ > Player Head message3 ] -> [ > Player Head > savepoint ] message \"Let's see what else is around here...\"\n[ Player Head message2 ] -> [ Player Head message3 ] message \"It's a bit too big, but I can use it if I fit my whole body into it.\"\n[ > Player message1 | Head ] -> [ > Player | Head message2 ] again message \"Oh, this skull seems like a fine helmet to wear.\"\n[ > Player no message0 | | Head ] -> [ > Player message0 | message1 | Head ] again message A predator! But no worry, it seems to have been dead for a long time!\n\nup [ Head start | DetachedTail no start ] -> [ Head start | start AttachD DetachedTail ]\nright [ Head start | DetachedTail no start ] -> [ Head start | start AttachL DetachedTail ]\ndown [ Head start | DetachedTail no start ] -> [ Head start | start AttachU DetachedTail ]\nleft [ Head start | DetachedTail no start ] -> [ Head start | start AttachR DetachedTail ]\n\n(Change player moving direction on corners)\n[ up Player HeadU WaterCornerTR no WaterCornerTL ] -> [ left Player HeadU WaterCornerTR ]\n[ up Player HeadU WaterCornerTL no WaterCornerTR ] -> [ right Player HeadU WaterCornerTL ]\n\n[ right Player HeadR WaterCornerTR no WaterCornerBR ] -> [ down Player HeadR WaterCornerTR ]\n[ right Player HeadR WaterCornerBR no WaterCornerTR ] -> [ up Player HeadR WaterCornerBR ]\n\n[ down Player HeadD WaterCornerBR no WaterCornerBL ] -> [ left Player HeadD WaterCornerBR ]\n[ down Player HeadD WaterCornerBL no WaterCornerBR ] -> [ right Player HeadD WaterCornerBL ]\n\n[ left Player HeadL WaterCornerTL no WaterCornerBL ] -> [ down Player HeadL WaterCornerTL ]\n[ left Player HeadL WaterCornerBL no WaterCornerTL ] -> [ up Player HeadL WaterCornerBL ]\n\n(Change sprite direction based on moving direction)\nup [ > Player ] -> [ > PlayerU ]\nright [ > Player ] -> [ > PlayerR ]\ndown [ > Player ] -> [ > PlayerD ]\nleft [ > Player ] -> [ > PlayerL ]\n\n(Stop player when moving toward water or leading the skeleton out of the map)\n[ > Player | no Walkable ] -> [ stationary Player | ]\n[ > Player no free ] -> [ stationary Player ]\n[ free ] -> []\n\n[ DartU ] -> [ up DartU ] again\n[ DartR ] -> [ right DartR ] again\n[ DartD ] -> [ down DartD ] again\n[ DartL ] -> [ left DartL ] again\n\n[ Dart Player ] -> [ Blood clear ] sfx6 again (Shot)\n\nup [ DartU | RayBlocker ] -> [ | Rayblocker ]\nright [ DartR | RayBlocker ] -> [ | Rayblocker ]\ndown [ DartD | RayBlocker ] -> [ | Rayblocker ]\nleft [ DartL | RayBlocker ] -> [ | Rayblocker ]\n\n[ > Player | Wall ] -> [ stationary Player | Wall ]\n[ > Player Head ] -> [ > Player > Head ]\n\nlate [ BlockMarker ] -> [ ]\n\n(Remove the direction and tail markers from the skeleton if the player is pushing, and not pulling, the skelleton)\nup [ > Head | VertebraD ] -> [ > Head clear | clear VertebraD ]\nright [ > Head | VertebraL ] -> [ > Head clear | clear VertebraL ] \ndown [ > Head | VertebraU ] -> [ > Head clear | clear VertebraU ]\nleft [ > Head | VertebraR ] -> [ > Head clear | clear VertebraR ]\n\nstartloop\n\nup [ clear VertebraU | VertebraD ] -> [ clear VertebraU | clear VertebraD ]\nright [ clear VertebraR | VertebraL ] -> [ clear VertebraR | clear VertebraL ]\ndown [ clear VertebraD | VertebraU ] -> [ clear VertebraD | clear VertebraU ]\nleft [ clear VertebraL | VertebraR ] -> [ clear VertebraL | clear VertebraR ]\n\nendloop\n\n[ clear Marker ] -> []\n[ clear break ] -> [] (break is also a marker for the tail)\n\n(Determine in which direction which objects represent an obstacle)\nstartloop\n\nup [ Moveable no break no Marker | Wall ] -> [ Moveable blockedD | Wall ]\nright [ Moveable no break no Marker | Wall ] -> [ Moveable blockedL | Wall ]\ndown [ Moveable no break no Marker | Wall ] -> [ Moveable blockedU | Wall ]\nleft [ Moveable no break no Marker | Wall ] -> [ Moveable blockedR | Wall ]\n\nup [ Moveable no break | Head Marker ] -> [ Moveable blockedD | Head Marker ] \nright [ Moveable no break | Head Marker ] -> [ Moveable blockedL | Head Marker ]\ndown [ Moveable no break | Head Marker ] -> [ Moveable blockedU | Head Marker ]\nleft [ Moveable no break | Head Marker ] -> [ Moveable blockedR | Head Marker]\n\nup [ Moveable no break | blockedD ] -> [ Moveable blockedD | blockedD ]\nright [ Moveable no break | blockedL ] -> [ Moveable blockedL | blockedL ]\ndown [ Moveable no break | blockedU ] -> [ Moveable blockedU | blockedU ]\nleft [ Moveable no break | blockedR ] -> [ Moveable blockedR | blockedR ]\n\nup [ ArrowD | Tail break | Wall ] -> [ ArrowD | Tail break blockedD | Wall ]\nright [ ArrowL | Tail break | Wall ] -> [ ArrowL | Tail break blockedL | Wall ]\ndown [ ArrowU | Tail break | Wall ] -> [ ArrowU | Tail break blockedU | Wall ]\nleft [ ArrowR | Tail break | Wall ] -> [ ArrowR | Tail break blockedR | Wall ] \n\nup [ ArrowD | Tail break | Head Marker ] -> [ ArrowD | Tail break blockedD | Head Marker ]\nright [ ArrowL | Tail break | Head Marker ] -> [ ArrowL | Tail break blockedL | Head Marker ]\ndown [ ArrowU | Tail break | Head Marker ] -> [ ArrowU | Tail break blockedU | Head Marker ]\nleft [ ArrowR | Tail break | Head Marker ] -> [ ArrowR | Tail break blockedR | Head Marker ] \n\nup [ ArrowD | Tail break | blockedD ] -> [ ArrowD | Tail break blockedD | blockedD ]\nright [ ArrowL | Tail break | blockedL ] -> [ ArrowL | Tail break blockedL | blockedL ]\ndown [ ArrowU | Tail break | blockedU ] -> [ ArrowU | Tail break blockedU | blockedU ]\nleft [ ArrowR | Tail break | blockedR ] -> [ ArrowR | Tail break blockedR | blockedR ] \n\nendloop\n\n(If head moves onto a vertebra directly, break the spine at that location)\nup [ > Head | Vertebra Marker no break ] -> [ > Head | break Marker ] sfx3\nright [ > Head | Vertebra Marker no break ] -> [ > Head | break Marker ] sfx3\ndown [ > Head | Vertebra Marker no break ] -> [ > Head | break Marker ] sfx3\nleft [ > Head | Vertebra Marker no break ] -> [ > Head | break Marker ] sfx3\n\n(Determine what object moves onto a moving vertebra indirectly)\nstartloop\n\n[ > Moveable | Moveable no Marker no break ] -> [ > Moveable | > Moveable ]\n\nup [ left VertebraU no blockedR | VertebraD no blockedR ] -> [ left VertebraU | left VertebraD ]\nup [ right VertebraU no blockedL | VertebraD no blockedL] -> [ right VertebraU | right VertebraD ]\n\nright [ up VertebraR no blockedD | VertebraL no blockedD] -> [ up VertebraR | up VertebraL ]\nright [ down VertebraR no blockedU | VertebraL no blockedU] -> [ down VertebraR | down VertebraL ]\n\ndown [ left VertebraD no blockedR | VertebraU no blockedR] -> [ left VertebraD | left VertebraU ]\ndown [ right VertebraD no blockedL | VertebraU no blockedL] -> [ right VertebraD | right VertebraU ]\n\nleft [ up VertebraL no BlockedD | VertebraR no blockedD] -> [ up VertebraL | up VertebraR ]\nleft [ down VertebraL no blockedU | VertebraR no blockedU] -> [ down VertebraL | down VertebraR ]\n\nup [ down VertebraU | VertebraD ] -> [ down VertebraU | down VertebraD ]\nright [ left VertebraR | VertebraL ] -> [ left VertebraR | left VertebraL ]\ndown [ up VertebraD | VertebraU ] -> [ up VertebraD | up VertebraU ]\nleft [ right VertebraL | VertebraR ] -> [ right VertebraL | right VertebraR ]\n\nendloop\n\n(Break the spine indirectly) \nup [ > Moveable no break | Marker no break ] -> [ > Moveable | break Marker ] sfx3\nright [ > Moveable no break | Marker no break ] -> [ > Moveable | break Marker ] sfx3\ndown [ > Moveable no break | Marker no break ] -> [ > Moveable | break Marker ] sfx3\nleft [ > Moveable no break | Marker no break ] -> [ > Moveable | break Marker ] sfx3\n\n(Removing the tail marker so that it doesn't interfere with the breaking process, it's add back later)\n[ Tail break ] -> [ Tail ]\n\n(Finding the broken spot nearest to the head to determine what chunk of the tail/body to cut off)\nstartloop\n\nup [ break VertebraU ArrowD | ] -> [ break VertebraU ArrowD | break ]\nright [ break VertebraR ArrowL | ] -> [ break VertebraR ArrowL | break ]\ndown [ break VertebraD ArrowU | ] -> [ break VertebraD ArrowU | break ]\nleft [ break VertebraL ArrowR | ] -> [ break VertebraL ArrowR | break ]\n\nendloop\n\n[ Tail break ] -> [ Tail break clear ]\n\nstartloop\n\nup [ break clear | break ArrowU ] -> [ | clear break ArrowU ]\nright [ break clear | break ArrowR ] -> [ | clear break ArrowR ]\ndown [ break clear | break ArrowD ] -> [ | clear break ArrowD ]\nleft [ break clear | break ArrowL ] -> [ | clear break ArrowL ]\n\nendloop\n\n[ break ] -> [ break bluedot ]\n[ no break ] -> [ no bluedot ]\n\n(Doing all the work again in case we break off a part that was actually supposed to block us from moving, thus also from breaking anything in the first place)\n[ > Moveable ] -> [ stationary Moveable ] \n[ > Player Head ] -> [ > Player > Head ] \n\nstartloop\n\nup [ Moveable no break | Wall ] -> [ Moveable blockedD | Wall ]\nright [ Moveable no break | Wall ] -> [ Moveable blockedL | Wall ]\ndown [ Moveable no break | Wall ] -> [ Moveable blockedU | Wall ]\nleft [ Moveable no break | Wall ] -> [ Moveable blockedR | Wall ]\n\nup [ Moveable no break | Head Marker ] -> [ Moveable blockedD | Head Marker ] \nright [ Moveable no break | Head Marker ] -> [ Moveable blockedL | Head Marker ]\ndown [ Moveable no break | Head Marker ] -> [ Moveable blockedU | Head Marker ]\nleft [ Moveable no break | Head Marker ] -> [ Moveable blockedR | Head Marker]\n\nup [ Moveable no break | blockedD ] -> [ Moveable blockedD | blockedD ]\nright [ Moveable no break | blockedL ] -> [ Moveable blockedL | blockedL ]\ndown [ Moveable no break | blockedU ] -> [ Moveable blockedU | blockedU ]\nleft [ Moveable no break | blockedR ] -> [ Moveable blockedR | blockedR ]\n\nup [ ArrowD | Tail break | Wall ] -> [ ArrowD | Tail break blockedD | Wall ]\nright [ ArrowL | Tail break | Wall ] -> [ ArrowL | Tail break blockedL | Wall ]\ndown [ ArrowU | Tail break | Wall ] -> [ ArrowU | Tail break blockedU | Wall ]\nleft [ ArrowR | Tail break | Wall ] -> [ ArrowR | Tail break blockedR | Wall ] \n\nup [ ArrowD | Tail break | Head Marker ] -> [ ArrowD | Tail break blockedD | Head Marker ]\nright [ ArrowL | Tail break | Head Marker ] -> [ ArrowL | Tail break blockedL | Head Marker ]\ndown [ ArrowU | Tail break | Head Marker ] -> [ ArrowU | Tail break blockedU | Head Marker ]\nleft [ ArrowR | Tail break | Head Marker ] -> [ ArrowR | Tail break blockedR | Head Marker ] \n\nup [ ArrowD | Tail break | blockedD ] -> [ ArrowD | Tail break blockedD | blockedD ]\nright [ ArrowL | Tail break | blockedL ] -> [ ArrowL | Tail break blockedL | blockedL ]\ndown [ ArrowU | Tail break | blockedU ] -> [ ArrowU | Tail break blockedU | blockedU ]\nleft [ ArrowR | Tail break | blockedR ] -> [ ArrowR | Tail break blockedR | blockedR ] \n\nendloop\n\nstartloop\n\n[ > Moveable | Moveable no Marker no break ] -> [ > Moveable | > Moveable ]\n\nup [ left VertebraU no blockedR | VertebraD no blockedR ] -> [ left VertebraU | left VertebraD ]\nup [ right VertebraU no blockedL | VertebraD no blockedL] -> [ right VertebraU | right VertebraD ]\n\nright [ up VertebraR no blockedD | VertebraL no blockedD] -> [ up VertebraR | up VertebraL ]\nright [ down VertebraR no blockedU | VertebraL no blockedU] -> [ down VertebraR | down VertebraL ]\n\ndown [ left VertebraD no blockedR | VertebraU no blockedR] -> [ left VertebraD | left VertebraU ]\ndown [ right VertebraD no blockedL | VertebraU no blockedL] -> [ right VertebraD | right VertebraU ]\n\nleft [ up VertebraL no BlockedD | VertebraR no blockedD] -> [ up VertebraL | up VertebraR ]\nleft [ down VertebraL no blockedU | VertebraR no blockedU] -> [ down VertebraL | down VertebraR ]\n\nup [ down VertebraU | VertebraD ] -> [ down VertebraU | down VertebraD ]\nright [ left VertebraR | VertebraL ] -> [ left VertebraR | left VertebraL ]\ndown [ up VertebraD | VertebraU ] -> [ up VertebraD | up VertebraU ]\nleft [ right VertebraL | VertebraR ] -> [ right VertebraL | right VertebraR ]\n\nendloop\n\n(Cancel the breaking in case we weren't supposed to break)\n[ > Head ] [ stationary Moveable | break ] -> [ > Head ] [ Moveable | ]\n\n(Find the spot that needs to be separated and do the action)\n[ > Vertebra ] -> [ stationary Vertebra ]\n[ > Attachable ] -> [ stationary Attachable ]\n[ > Box ] -> [ stationary Box ]\n[ Tail break ] -> [ Tail ]\n[ Vertebra break ] -> [ break ]\n\nrandom up [ break | ArrowU ] -> [ break TailU | ArrowU ]\n+right [ break | ArrowR ] -> [ break TailR | ArrowR ]\n+down [ break | ArrowD ] -> [ break TailD | ArrowD ]\n+left [ break | ArrowL ] -> [ break TailL | ArrowL ]\n\nrandom up [ Tail | ArrowU break ] -> [ DetachedTail | break ]\n+right [ Tail | ArrowR break ] -> [ DetachedTail | break ]\n+down [ Tail | ArrowD break ] -> [ DetachedTail | break ]\n+left [ Tail | ArrowL break ] -> [ DetachedTail | break ]\n\nrandom up [ Vertebra | ArrowU break ] -> [ break Vertebra | break ] \n+right [ Vertebra | ArrowR break ] -> [ break Vertebra | break ]\n+down [ Vertebra | ArrowD break ] -> [ break Vertebra | break ]\n+left [ Vertebra | ArrowL break ] -> [ break Vertebra | break ]\n\n[ Vertebra ArrowU break ] -> [ TailD clear ]\n[ Vertebra ArrowR break ] -> [ TailL clear ]\n[ Vertebra ArrowD break ] -> [ TailU clear ]\n[ Vertebra ArrowL break ] -> [ TailR clear ]\n\nup [ break TailU | no ArrowU ] -> [ TailU |]\nright [ break TailR | no ArrowR ] -> [ TailR |]\ndown [ break TailD | no ArrowD ] -> [ TailD |]\nleft [ break TailL | no ArrowL ] -> [ TailL |]\n\n(Clearing markers on the detached rest)\nstartloop\n\nup [ VertebraU clear | VertebraD Marker ] -> [ VertebraU | VertebraD clear ]\nright [ VertebraR clear | VertebraL Marker ] -> [ VertebraR | VertebraL clear ]\ndown [ VertebraD clear | VertebraU Marker ] -> [ VertebraD | VertebraU clear ]\nleft [ VertebraL clear | VertebraR Marker ] -> [ VertebraL | VertebraR clear ]\n\nendloop\n\n[ clear ] -> []\n\n(Marking the new tail)\nup [ TailU | ArrowU ] -> [ break TailU | ArrowU ]\nright [ TailR | ArrowR ] -> [ break TailR | ArrowR ]\ndown [ TailD | ArrowD ] -> [ break TailD | ArrowD ]\nleft [ TailL | ArrowL ] -> [ break TailL | ArrowL ]\n\n[ blockMarker ] -> []\n\n(Determine in which direction which objects represent an obstacle, this time if we are to block movement/break other sections)\nstartloop\n\nup [ Moveable no break no Marker | Wall ] -> [ Moveable blockedD | Wall ]\nright [ Moveable no break no Marker | Wall ] -> [ Moveable blockedL | Wall ]\ndown [ Moveable no break no Marker | Wall ] -> [ Moveable blockedU | Wall ]\nleft [ Moveable no break no Marker | Wall ] -> [ Moveable blockedR | Wall ]\n\nup [ Moveable no break | Head Marker ] -> [ Moveable blockedD | Head Marker ] \nright [ Moveable no break | Head Marker ] -> [ Moveable blockedL | Head Marker ]\ndown [ Moveable no break | Head Marker ] -> [ Moveable blockedU | Head Marker ]\nleft [ Moveable no break | Head Marker ] -> [ Moveable blockedR | Head Marker ]\n\nup [ Moveable no break | blockedD ] -> [ Moveable blockedD | blockedD ]\nright [ Moveable no break | blockedL ] -> [ Moveable blockedL | blockedL ]\ndown [ Moveable no break | blockedU ] -> [ Moveable blockedU | blockedU ]\nleft [ Moveable no break | blockedR ] -> [ Moveable blockedR | blockedR ]\n\nup [ ArrowD | Tail break | Wall ] -> [ ArrowD | Tail break blockedD | Wall ]\nright [ ArrowL | Tail break | Wall ] -> [ ArrowL | Tail break blockedL | Wall ]\ndown [ ArrowU | Tail break | Wall ] -> [ ArrowU | Tail break blockedU | Wall ]\nleft [ ArrowR | Tail break | Wall ] -> [ ArrowR | Tail break blockedR | Wall ] \n\nup [ ArrowD | Tail break | Head Marker ] -> [ ArrowD | Tail break blockedD | Head Marker ]\nright [ ArrowL | Tail break | Head Marker ] -> [ ArrowL | Tail break blockedL | Head Marker ]\ndown [ ArrowU | Tail break | Head Marker ] -> [ ArrowU | Tail break blockedU | Head Marker ]\nleft [ ArrowR | Tail break | Head Marker ] -> [ ArrowR | Tail break blockedR | Head Marker ] \n\nup [ ArrowD | Tail break | blockedD ] -> [ ArrowD | Tail break blockedD | blockedD ]\nright [ ArrowL | Tail break | blockedL ] -> [ ArrowL | Tail break blockedL | blockedL ]\ndown [ ArrowU | Tail break | blockedU ] -> [ ArrowU | Tail break blockedU | blockedU ]\nleft [ ArrowR | Tail break | blockedR ] -> [ ArrowR | Tail break blockedR | blockedR ]\n\nendloop\n\n(Determining which spots are supposed to break and which spots are supposed to be connected)\nstartloop\n\n[ > Moveable | Moveable no Marker no break ] -> [ > Moveable | > Moveable ]\n\n[ up Moveable Marker blockedD ] -> [ stationary Moveable Marker blockedD ]\n[ right Moveable Marker blockedL ] -> [ stationary Moveable Marker blockedL ]\n[ down Moveable Marker blockedU ] -> [ stationary Moveable Marker blockedU ]\n[ left Moveable Marker blockedR ] -> [ stationary Moveable Marker blockedR ]\n\nup [ left VertebraU no blockedR | VertebraD blockedR ] -> [ left VertebraU tailit | VertebraD tailit blockedR ]\nup [ right VertebraU no blockedL | VertebraD blockedL ] -> [ right VertebraU tailit | VertebraD tailit blockedL ]\n\nright [ up VertebraR no blockedD | VertebraL blockedD ] -> [ up VertebraR tailit | VertebraL tailit blockedD ]\nright [ down VertebraR no blockedU | VertebraL blockedU ] -> [ down VertebraR tailit | VertebraL tailit blockedU ]\n\ndown [ left VertebraD no blockedR | VertebraU blockedR ] -> [ left VertebraD tailit | VertebraU tailit blockedR ]\ndown [ right VertebraD no blockedL | VertebraU blockedL ] -> [ right VertebraD tailit | VertebraU tailit blockedL ]\n\nleft [ up VertebraL no blockedD | VertebraR blockedD ] -> [ up VertebraL tailit | VertebraR tailit blockedD ]\nleft [ down VertebraL no blockedU | VertebraR blockedU ] -> [ down VertebraL tailit | VertebraR tailit blockedU ]\n\nup [ left VertebraU no blockedR | VertebraD ] -> [ left VertebraU | left VertebraD ]\nup [ right VertebraU no blockedL | VertebraD ] -> [ right VertebraU | right VertebraD ]\n\nright [ up VertebraR no blockedD | VertebraL ] -> [ up VertebraR | up VertebraL ]\nright [ down VertebraR no blockedU | VertebraL ] -> [ down VertebraR | down VertebraL ]\n\ndown [ left VertebraD no blockedR | VertebraU ] -> [ left VertebraD | left VertebraU ]\ndown [ right VertebraD no blockedL | VertebraU ] -> [ right VertebraD | right VertebraU ]\n\nleft [ up VertebraL no BlockedD | VertebraR ] -> [ up VertebraL | up VertebraR ]\nleft [ down VertebraL no blockedU | VertebraR ] -> [ down VertebraL | down VertebraR ]\n\nup [ down VertebraU | VertebraD ] -> [ down VertebraU | down VertebraD ]\nright [ left VertebraR | VertebraL ] -> [ left VertebraR | left VertebraL ]\ndown [ up VertebraD | VertebraU ] -> [ up VertebraD | up VertebraU ]\nleft [ right VertebraL | VertebraR ] -> [ right VertebraL | right VertebraR ]\n\nup [ > Vertebra tailit | Vertebra tailit no break ] -> [ > Vertebra tailit AttachU | > Vertebra tailit AttachD ]\nright [ > Vertebra tailit | Vertebra tailit no break ] -> [ > Vertebra tailit AttachR | > Vertebra tailit AttachL ]\ndown [ > Vertebra tailit | Vertebra tailit no break ] -> [ > Vertebra tailit AttachD | > Vertebra tailit AttachU ]\nleft [ > Vertebra tailit | Vertebra tailit no break ] -> [ > Vertebra tailit AttachL | > Vertebra tailit AttachR ]\n\nup [ > Vertebra tailit | Attachable no break ] -> [ > Vertebra tailit AttachU | > Attachable AttachD ]\nright [ > Vertebra tailit | Attachable no break ] -> [ > Vertebra tailit AttachR | > Attachable AttachL ]\ndown [ > Vertebra tailit | Attachable no break ] -> [ > Vertebra tailit AttachD | > Attachable AttachU ]\nleft [ > Vertebra tailit | Attachable no break ] -> [ > Vertebra tailit AttachL | > Attachable AttachR ]\n\nup [ > Attachable | Vertebra tailit ] -> [ > Attachable AttachU | > Vertebra tailit AttachD ]\nright [ > Attachable | Vertebra tailit ] -> [ > Attachable AttachR | > Vertebra tailit AttachL ]\ndown [ > Attachable | Vertebra tailit ] -> [ > Attachable AttachD | > Vertebra tailit AttachU ]\nleft [ > Attachable | Vertebra tailit ] -> [ > Attachable AttachL | > Vertebra tailit AttachR ]\n\nendloop\n\n(Cancel movement if pushed against the edge of the map)\nup [ > Moveable edgeU ] [ > Player ] -> cancel\nright [ > Moveable edgeR ] [ > Player ] -> cancel\ndown [ > Moveable edgeD ] [ > Player ] -> cancel\nleft [ > Moveable edgeL ] [ > Player ] -> cancel\n\nup [ > Head edgeU ] [ > Player ] -> cancel\nright [ > Head edgeR ] [ > Player ] -> cancel\ndown [ > Head edgeD ] [ > Player ] -> cancel\nleft [ > Head edgeL ] [ > Player ] -> cancel\n\nup [ TailU AttachU ] -> [ TailU ]\nright [ TailR AttachR ] -> [ TailR ]\ndown [ TailD AttachD ] -> [ TailD ]\nleft [ TailL AttachL ] -> [ TailL ]\n\n()()()()\n\n[ tailit | perpendicular Vertebra tailit | tailit ] -> [ tailit | perpendicular DetachedTail | tailit ] sfx3\n[ perpendicular tailit | stationary Vertebra tailit | perpendicular tailit ] -> [ perpendicular tailit | DetachedTail | perpendicular tailit ] sfx3\n\nup [ moving Vertebra tailit | VertebraD no tailit ] -> [ moving TailU | VertebraD ] sfx3\nright [ moving Vertebra tailit | VertebraL no tailit ] -> [ moving TailR | VertebraL ] sfx3\ndown [ moving Vertebra tailit | VertebraU no tailit ] -> [ moving TailD | VertebraU ] sfx3\nleft [ moving Vertebra tailit | VertebraR no tailit ] -> [ moving TailL | VertebraR ] sfx3\n\nup [ stationary VertebraU tailit | stationary VertebraD tailit ] -> [ TailU | TailD ] sfx3\nright [ stationary VertebraR tailit | stationary VertebraL tailit ] -> [ TailR | TailL ] sfx3\ndown [ stationary VertebraD tailit | stationary VertebraU tailit ] -> [ TailD | TailU ] sfx3\nleft [ stationary VertebraL tailit | stationary VertebraR tailit ] -> [ TailL | TailR ] sfx3\n\nup [ > VertebraU tailit | > VertebraD tailit ] -> [ > TailU | > TailD ] sfx3\nright [ > VertebraR tailit | > VertebraL tailit ] -> [ > TailR | > TailL ] sfx3\ndown [ > VertebraD tailit | > VertebraU tailit ] -> [ > TailD | > TailU ] sfx3\nleft [ > VertebraL tailit | > VertebraR tailit ] -> [ > TailL | > TailR ] sfx3\n\nup [ moving Vertebra tailit | HeadU no tailit ] -> [ moving TailU | HeadU ] sfx3\nright [ moving Vertebra tailit | HeadR no tailit ] -> [ moving TailR | HeadR ] sfx3\ndown [ moving Vertebra tailit | HeadD no tailit ] -> [ moving TailD | HeadD ] sfx3\nleft [ moving Vertebra tailit | HeadL no tailit ] -> [ moving TailL | HeadL ] sfx3\n\nup [ stationary Vertebra tailit | VertebraD no tailit ] -> [ TailU | VertebraD ] sfx3\nright [ stationary Vertebra tailit | VertebraL no tailit ] -> [ TailR | VertebraL ] sfx3\ndown [ stationary Vertebra tailit | VertebraU no tailit ] -> [ TailD | VertebraU ] sfx3\nleft [ stationary Vertebra tailit | VertebraR no tailit ] -> [ TailL | VertebraR ] sfx3\n\n[ stationary Tail tailit ] -> [ DetachedTail ] sfx3\n[ > Tail tailit ] -> [ > DetachedTail ] sfx3\n\nup [ > Attachable | Attachable no break ] -> [ > Attachable AttachU | AttachD > Attachable ]\nright [ > Attachable | Attachable no break ] -> [ > Attachable AttachR | AttachL > Attachable ]\ndown [ > Attachable | Attachable no break ] -> [ > Attachable AttachD | AttachU > Attachable ]\nleft [ > Attachable | Attachable no break ] -> [ > Attachable AttachL | AttachR > Attachable ]\n\nup [ TailU AttachU ] -> [ TailU ]\nright [ TailR AttachR ] -> [ TailR ]\ndown [ TailD AttachD ] -> [ TailD ]\nleft [ TailL AttachL ] -> [ TailL ]\n\n(A clever trick to stop loop formation when two ends of one piece come to gether.)\nstartloop \n\n[ > Head | no pink Moveable ] -> [ > Head | pink Moveable ]\nup [ pink VertebraU | no pink VertebraD ] -> [ pink VertebraU | pink VertebraD ]\nright [ pink VertebraR | no pink VertebraL ] -> [ pink VertebraR | pink VertebraL ]\ndown [ pink VertebraD | no pink VertebraU ] -> [ pink VertebraD | pink VertebraU ]\nleft [ pink VertebraL | no pink VertebraR ] -> [ pink VertebraL | pink VertebraR ]\n\ndown [ > Head ] [ pink | no pink no AttachU Moveable ] -> [ > Head ] [ pink | pink Moveable ]\nleft [ > Head ] [ pink | no pink no AttachR Moveable ] -> [ > Head ] [ pink | pink Moveable ]\nup [ > Head ] [ pink | no pink no AttachD Moveable ] -> [ > Head ] [ pink | pink Moveable ]\nright [ > Head ] [ pink | no pink no AttachL Moveable ] -> [ > Head ] [ pink | pink Moveable ]\n\ndown [ > Head ] [ AttachD | pink AttachU ] -> [ > Head ] [ green AttachD | pink AttachU ]\nleft [ > Head ] [ AttachL | pink AttachR ] -> [ > Head ] [ green AttachL | pink AttachR ]\nup [ > Head ] [ AttachU | pink AttachD ] -> [ > Head ] [ green AttachU | pink AttachD ]\nright [ > Head ] [ AttachR | pink AttachL ] -> [ > Head ] [ green AttachR | pink AttachL ] \n\nup [ green VertebraU | no green no pink VertebraD ] -> [ green VertebraU | green VertebraD ]\nright [ green VertebraR | no green no pink VertebraL ] -> [ green VertebraR | green VertebraL ]\ndown [ green VertebraD | no green no pink VertebraU ] -> [ green VertebraD | green VertebraU ]\nleft [ green VertebraL | no green no pink VertebraR ] -> [ green VertebraL | green VertebraR ]\n\ndown [ > Head ] [ pink AttachD | green AttachU ] -> [ > Head ] [ pink AttachD | pink green AttachU ]\nleft [ > Head ] [ pink AttachL | green AttachR ] -> [ > Head ] [ pink AttachL | pink green AttachR ]\nup [ > Head ] [ pink AttachU | green AttachD ] -> [ > Head ] [ pink AttachU | pink green AttachD ]\nright [ > Head ] [ pink AttachR | green AttachL ] -> [ > Head ] [ pink AttachR | pink green AttachL ]\n\nendloop\n\ndown [ pink green AttachD | pink no green AttachU ] -> [ pink green | pink ]\nleft [ pink green AttachL | pink no green AttachR ] -> [ pink green | pink ]\nup [ pink green AttachU | pink no green AttachD ] -> [ pink green | pink ]\nright [ pink green AttachR | pink no green AttachL ] -> [ pink green | pink ] \n\n[ pink ] -> []\n[ green ] -> []\n\n(Prevent many attachables in a row to all attach together, if one in a row is already attached the attachment between it and the next one should be canceled)\nstartloop\n\nup [ no AttachU | > Tail AttachU | Tail AttachU | ] -> [ | > Tail AttachU | Tail AttachD | no AttachD ]\nright [ no AttachR | > Tail AttachR | Tail AttachR | ] -> [ | > Tail AttachR | Tail AttachL | no AttachL ]\ndown [ no AttachD | > Tail AttachD | Tail AttachD | ] -> [ | > Tail AttachD | Tail AttachU | no AttachU ]\nleft [ no AttachL | > Tail AttachL | Tail AttachL | ] -> [ | > Tail AttachL | Tail AttachR | no AttachR ]\n\nup [ | > DetachedTail AttachU | Tail AttachU | ] -> [ | > DetachedTail AttachU | Tail AttachD | no AttachD ]\nright [ | > DetachedTail AttachR | Tail AttachR | ] -> [ | > DetachedTail AttachR | Tail AttachL | no AttachL ]\ndown [ | > DetachedTail AttachD | Tail AttachD | ] -> [ | > DetachedTail AttachD | Tail AttachU | no AttachU ]\nleft [ | > DetachedTail AttachL | Tail AttachL | ] -> [ | > DetachedTail AttachL | Tail AttachR | no AttachR ]\n\nup [ > Head no Marker | no TailD Tail AttachU | ] -> [ > Head | Tail AttachD | no AttachD ]\nright [ > Head no Marker | no TailL Tail AttachR | ] -> [ > Head | Tail AttachL | no AttachL ]\ndown [ > Head no Marker | no TailU Tail AttachD | ] -> [ > Head | Tail AttachU | no AttachU ]\nleft [ > Head no Marker | no TailR Tail AttachL | ] -> [ > Head | Tail AttachR | no AttachR ]\n\nendloop\n\n(Boxes can't reattach once they are detached)\nup [ Box AttachU | AttachD ] -> [ Box | ]\nright [ Box AttachR | AttachL ] -> [ Box | ]\ndown [ Box AttachD | AttachU ] -> [ Box | ]\nleft [ Box AttachL | AttachR ] -> [ Box | ]\nlate [ Box DetachedTail ] -> [ Box ]\n\n(Attach all separated vertebrae at the start to make up the skeleton)\n[ start ] [ DetachedTail ] -> [ start ] [ start DetachedTail ]\n\nup [ DetachedTail start | DetachedTail start ] -> [ DetachedTail AttachU start | start AttachD DetachedTail ]\nright [ DetachedTail start | DetachedTail start ] -> [ DetachedTail AttachR start | start AttachL DetachedTail ]\ndown [ DetachedTail start | DetachedTail start ] -> [ DetachedTail AttachD start | start AttachU DetachedTail ]\nleft [ DetachedTail start | DetachedTail start ] -> [ DetachedTail AttachL start | start AttachR DetachedTail ]\n\n[ start ] -> []\n\n(Attach head to vertebra / spine)\nup [ > Head no Marker | Attachable no Box ] -> [ > HeadD | AttachD Attachable ] sfx1\nright [ > Head no Marker | Attachable no Box ] -> [ > HeadL | AttachL Attachable ] sfx1\ndown [ > Head no Marker | Attachable no Box ] -> [ > HeadU | AttachU Attachable ] sfx1\nleft [ > Head no Marker | Attachable no Box ] -> [ > HeadR | AttachR Attachable ] sfx1\n\n()\n\n[ > TailU ] -> [ > TailU AttachU ]\n[ > TailR ] -> [ > TailR AttachR ]\n[ > TailD ] -> [ > TailD AttachD ]\n[ > TailL ] -> [ > TailL AttachL ]\n\n(The process of attaching tails and vertebrae)\n\n[ > Attachable AttachU AttachR ] -> [ > BodyUR AttachU AttachR ] sfx1\n[ > Attachable AttachU AttachL ] -> [ > BodyUL AttachU AttachL ] sfx1\n[ > Attachable AttachD AttachR ] -> [ > BodyDR AttachD AttachR ] sfx1\n[ > Attachable AttachD AttachL ] -> [ > BodyDL AttachD AttachL ] sfx1\n[ > Attachable AttachL AttachR ] -> [ > BodyRL AttachL AttachR ] sfx1\n[ > Attachable AttachU AttachD ] -> [ > BodyUD AttachU AttachD ] sfx1\n\n[ > Attachable AttachU ] -> [ > TailU AttachU ] sfx1\n[ > Attachable AttachR ] -> [ > TailR AttachR ] sfx1\n[ > Attachable AttachD ] -> [ > TailD AttachD ] sfx1\n[ > Attachable AttachL ] -> [ > TailL AttachL ] sfx1\n\n[ Attachable AttachU AttachR ] -> [ BodyUR AttachU AttachR ] sfx1\n[ Attachable AttachU AttachL ] -> [ BodyUL AttachU AttachL ] sfx1\n[ Attachable AttachD AttachR ] -> [ BodyDR AttachD AttachR ] sfx1\n[ Attachable AttachD AttachL ] -> [ BodyDL AttachD AttachL ] sfx1\n[ Attachable AttachL AttachR ] -> [ BodyRL AttachL AttachR ] sfx1\n[ Attachable AttachU AttachD ] -> [ BodyUD AttachU AttachD ] sfx1\n\n[ Attachable AttachU ] -> [ TailU AttachU ] sfx1\n[ Attachable AttachR ] -> [ TailR AttachR ] sfx1\n[ Attachable AttachD ] -> [ TailD AttachD ] sfx1\n[ Attachable AttachL ] -> [ TailL AttachL ] sfx1\n\nup [ Attachable AttachU | no Attachable no VertebraD ] -> [ Attachable | ] sfx1\nright [ Attachable AttachR | no Attachable no VertebraL ] -> [ Attachable | ] sfx1\ndown [ Attachable AttachD | no Attachable no VertebraU ] -> [ Attachable | ] sfx1\nleft [ Attachable AttachL | no Attachable no VertebraR ] -> [ Attachable | ] sfx1\n\n()()()()\n\n[ AttachMarker ] -> []\n\n[ up Moveable blockedD ] -> [ stationary Moveable blockedD ]\n[ right Moveable blockedL ] -> [ stationary Moveable blockedL ]\n[ down Moveable blockedU ] -> [ stationary Moveable blockedU ]\n[ left Moveable blockedR ] -> [ stationary Moveable blockedR ]\n\nup [ > Head | no VertebraD ] -> [ > HeadU | ]\nright [ > Head | no VertebraL ] -> [ > HeadR | ]\ndown [ > Head | no VertebraU ] -> [ > HeadD | ]\nleft [ > Head | no VertebraR ] -> [ > HeadL | ]\n\n[ Marker ] -> [ no Marker ]\n\n(Marking the body, each part points in the reverse direction of the next part relative to itself (that means the direction the body is \"moving\" at that point))\nstartloop\n\nup [ Head no Marker | VertebraD ] -> [ Head ArrowD | VertebraD continue ]\nright [ Head no Marker | VertebraL ] -> [ Head ArrowL | VertebraL continue ]\ndown [ Head no Marker | VertebraU ] -> [ Head ArrowU | VertebraU continue ]\nleft [ Head no Marker | VertebraR ] -> [ Head ArrowR | VertebraR continue ]\n\nup [ Vertebra continue | VertebraD no Marker ] -> [ Vertebra ArrowD | VertebraD continue ]\nright [ Vertebra continue | VertebraL no Marker ] -> [ Vertebra ArrowL | VertebraL continue ]\ndown [ Vertebra continue | VertebraU no Marker ] -> [ Vertebra ArrowU | VertebraU continue ]\nleft [ Vertebra continue | VertebraR no Marker ] -> [ Vertebra ArrowR | VertebraR continue ]\n\n[ Tail continue ] -> [ break Tail ]\n\nendloop\n\n[ continue ] -> []\n\n(If the head is pulling the body and not pushing it)\nup [ > Head no ArrowD ] -> [ > Head pull] sfx2\nright [ > Head no ArrowL ] -> [ > Head pull] sfx2\ndown [ > Head no ArrowU ] -> [ > Head pull] sfx2\nleft [ > Head no ArrowR ] -> [ > Head pull] sfx2\n\n(Pull the spine)\nstartloop\n\nup [ stationary Vertebra | moving Moveable ArrowU pull ] -> [ > Vertebra pull | moving Moveable ArrowU pull ]\nright [ stationary Vertebra | moving Moveable ArrowR pull ] -> [ > Vertebra pull | moving Moveable ArrowR pull ]\ndown [ stationary Vertebra | moving Moveable ArrowD pull ] -> [ > Vertebra pull | moving Moveable ArrowD pull ]\nleft [ stationary Vertebra | moving Moveable ArrowL pull ] -> [ > Vertebra pull | moving Moveable ArrowL pull ]\n\nendloop\n\n(New markers for the new positions)\nstartloop\n\n[ up Moveable Marker pull ] -> [ up Moveable ArrowU pull ]\n[ right Moveable Marker pull ] -> [ right Moveable ArrowR pull ]\n[ down Moveable Marker pull ] -> [ down Moveable ArrowD pull ]\n[ left Moveable Marker pull ] -> [ left Moveable ArrowL pull ]\n\nendloop\n\n[ Head pull ] -> [ Head ]\n\n[ > Vertebra Box ] -> [ > Vertebra > Box ]\n[ > Moveable Marker ] -> [ > Moveable > Marker ]\n\n[ > Moveable pull ] -> [ > Moveable > pull ]\n[ > Tail break ] -> [ > Tail > break ]\n\n[ Player stationary Head ] -> [ stationary Player stationary Head ]\n\n[ > Box ground ] -> [ > Box ground ] sfx8\n[ > Box water no Step ] -> [ > Box water ] sfx7\n\n(Creating the new skeleton)\nstartloop\n\nlate up [ Vertebra ArrowU pull | ArrowU no pull ] -> [ BodyUD ArrowU | ArrowU ]\nlate up [ Vertebra ArrowR pull | ArrowU no pull ] -> [ BodyUL ArrowR | ArrowU ]\nlate up [ Vertebra ArrowL pull | ArrowU no pull ] -> [ BodyUR ArrowL | ArrowU ]\n\nlate right [ Vertebra ArrowR pull | ArrowR no pull ] -> [ BodyRL ArrowR | ArrowR ]\nlate right [ Vertebra ArrowU pull | ArrowR no pull ] -> [ BodyDR ArrowU | ArrowR ]\nlate right [ Vertebra ArrowD pull | ArrowR no pull ] -> [ BodyUR ArrowD | ArrowR ]\n\nlate down [ Vertebra ArrowD pull | ArrowD no pull ] -> [ BodyUD ArrowD | ArrowD ]\nlate down [ Vertebra ArrowR pull | ArrowD no pull ] -> [ BodyDL ArrowR | ArrowD ]\nlate down [ Vertebra ArrowL pull | ArrowD no pull ] -> [ BodyDR ArrowL | ArrowD ]\n\nlate left [ Vertebra ArrowL pull | ArrowL no pull ] -> [ BodyRL ArrowL | ArrowL ]\nlate left [ Vertebra ArrowU pull | ArrowL no pull ] -> [ BodyDL ArrowU | ArrowL ]\nlate left [ Vertebra ArrowD pull | ArrowL no pull ] -> [ BodyUL ArrowD | ArrowL ]\n\nlate up [ Tail pull | ArrowU no pull ] -> [ TailU | ArrowU ]\nlate right [ Tail pull | ArrowR no pull ] -> [ TailR | ArrowR ]\nlate down [ Tail pull | ArrowD no pull ] -> [ TailD | ArrowD ]\nlate left [ Tail pull | ArrowL no pull ] -> [ TailL | ArrowL ]\n\nendloop\n\n(Marking attached boxes' bonds to their neighboring attached boxes)\nlate [ BoxBondMarker ] -> []\nlate [ Box VertebraU ] -> [ Box BoxBondU VertebraU ]\nlate [ Box VertebraR ] -> [ Box BoxBondR VertebraR ]\nlate [ Box VertebraD ] -> [ Box BoxBondD VertebraD ]\nlate [ Box VertebraL ] -> [ Box BoxBondL VertebraL ] \n\n(Door/Button action)\nlate [ Head Button ] -> [ Head open Button ]\nlate [ Box Button ] -> [ Box open Button ]\n\nstartloop\n\nlate [ Button open | Trigger ] -> [ Button | Trigger open ]\nlate [ Trigger open | Trigger ] -> [ Trigger open | Trigger open ]\nlate [ Trigger open | DoorVertical ] -> [ Trigger | OpenDoorVertical ]\nlate [ Trigger open | DoorHorizontal ] -> [ Trigger | OpenDoorHorizontal ]\n\nendloop\n\nlate [ Button no Head no Box ] -> [ Button close ]\n\nstartloop\n\nlate [ Button close | Trigger ] -> [ Button close | Trigger close ]\nlate [ Trigger close | Trigger ] -> [ Trigger close | Trigger close ]\nlate [ Trigger close | OpenDoor no close ] -> [ Trigger close | OpenDoor close ]\n\nendloop\n\nlate [ close OpenDoor Box ] -> [ OpenDoor Box ]\n\nlate up [ VertebraU | close OpenDoor ] -> [ tailit VertebraU | close OpenDoor ]\nlate right [ VertebraR | close OpenDoor ] -> [ tailit VertebraR | close OpenDoor ]\nlate down [ VertebraD | close OpenDoor ] -> [ tailit VertebraD | close OpenDoor ]\nlate left [ VertebraL | close OpenDoor ] -> [ tailit VertebraL | close OpenDoor ]\n\nlate up [ HeadD | close OpenDoor ] -> [ no Marker HeadD | close OpenDoor ]\nlate right [ HeadL | close OpenDoor ] -> [ no Marker HeadL | close OpenDoor ]\nlate down [ HeadU | close OpenDoor ] -> [ no Marker HeadU | close OpenDoor ]\nlate left [ HeadR | close OpenDoor ] -> [ no Marker HeadR | close OpenDoor ]\n\nlate [ close OpenDoor Player ] -> [ close OpenDoor no Player Blood ] sfx5 message Crushed!\nlate [ close OpenDoor Moveable ] -> [ close OpenDoor no break no Marker ] sfx3\n\nlate [ close OpenDoorVertical ] -> [ DoorVertical ]\nlate [ close OpenDoorHorizontal ] -> [ DoorHorizontal ] \n\nlate [ open ] -> []\nlate [ close ] -> []\n\n(Breaking the spots that broke by closing doors)\nlate up [ VertebraU | Vertebra tailit ] -> [ VertebraU | TailD ]\nlate right [ VertebraR | Vertebra tailit ] -> [ VertebraR | TailL ]\nlate down [ VertebraD | Vertebra tailit ] -> [ VertebraD | TailU ]\nlate left [ VertebraL | Vertebra tailit ] -> [ VertebraL | TailR ]\n\nlate up [ HeadD | Vertebra tailit ] -> [ HeadD | TailD ]\nlate right [ HeadL | Vertebra tailit ] -> [ HeadL | TailL ]\nlate down [ HeadU | Vertebra tailit ] -> [ HeadU | TailU ]\nlate left [ HeadR | Vertebra tailit ] -> [ HeadR | TailR ]\n\n[tailit ] -> []\n[ break no Tail ] -> [ no break ]\n\nlate [ Tail tailit ] -> [ DetachedTail ]\n\n(Lava action (not used in the game))\nlate [ Head ] -> [ onGround Head ]\nlate [ Vertebra Ground ] -> [ Vertebra onGround Ground ]\nlate up [ onGround | VertebraD ] -> [ onGround | VertebraD onGround ]\nlate right [ onGround | VertebraL ] -> [ onGround | VertebraL onGround ]\nlate down [ onGround | VertebraU ] -> [ onGround | VertebraU onGround ]\nlate left [ onGround | VertebraR ] -> [ onGround | VertebraR onGround ]\n\nlate [ Vertebra Lava no onGround ] -> [ Lava ] sfx4\nlate [ DetachedTail Lava ] -> [ Lava ] sfx4\n\nlate [ onGround ] -> []\n\nlate up [ DartWallU ] -> [ DartWallU rayU ]\nlate right [ DartWallR ] -> [ DartWallR rayR ]\nlate down [ DartWallD ] -> [ DartWallD rayD ]\nlate left [ DartWallL ] -> [ DartWallL rayL ]\n\n(Dart shooting action (not used in the game))\nstartloop\n\nlate up [ rayU | no RayBlocker no Player ] -> [ | rayU ]\nlate right [ rayR | no RayBlocker no Player ] -> [ | rayR ]\nlate down [ rayD | no RayBlocker no Player ] -> [ | rayD ]\nlate left [ rayL | no RayBlocker no Player ] -> [ | rayL ] \n\nlate up [ rayU | rayBlocker no DartWallD ] -> [ | rayBlocker ]\nlate right [ rayR | rayBlocker no DartWallL ] -> [ | rayBlocker ]\nlate down [ rayD | rayBlocker no DartWallU ] -> [ | rayBlocker ]\nlate left [ rayL | rayBlocker no DartWallR ] -> [ | rayBlocker ] \n\nlate up [ rayU | Player ] -> [ | rayreturnD Player ]\nlate right [ rayR | Player ] -> [ | rayreturnL Player ]\nlate down [ rayD | Player ] -> [ | rayreturnU Player ]\nlate left [ rayL | Player ] -> [ | rayreturnR Player ] \n\nlate up [ rayreturnU | no rayBlocker no DartWallD ] -> [ | rayreturnU ]\nlate right [ rayreturnR | no rayBlocker no DartWallL ] -> [ | rayreturnR ]\nlate down [ rayreturnD | no rayBlocker no DartWallU ] -> [ | rayreturnD ]\nlate left [ rayreturnL | no rayBlocker no DartWallR ] -> [ | rayreturnL ] \n\nendloop\n\nlate up [ rayreturnU | DartWall ] -> [ | DartD DartWall ] again\nlate right [ rayreturnR | DartWall ] -> [ DartL | DartWall ] again\nlate down [ rayreturnD | DartWall ] -> [ DartU | DartWall ] again\nlate left [ rayreturnL | DartWall ] -> [ DartR | DartWall ] again\n\n==============\nWINCONDITIONS\n==============\n\nall Player on Goal\nno Blood\n\n======= \nLEVELS\n=======\n\n(4 - 3)\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwww..wwwwwww\nwwwwwwwww...gwwwwww\nwwwwww.....wggwwww#\nwwwwgg..#wwwgwww###\nwwwwgwwwwm#wggg:tto\ng???>gww#wwwwww_w/#\nwwwww...wwwwx___w_#\nwwwww..b.wwxwwwww_w\nwwwwww...ww_______w\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\nw۴wwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\n\n", [3, 2, 2, 1, 0, 0, 1, 1, 3, 0, 0, 3, 3, 3, 0, 3, 3, 3, 0, 0, 1, 2, 2, 1], "background edgel edgeu water:0,background edgel water:1,1,1,1,1,1,1,1,background edgel step water:2,1,1,1,1,1,1,background edged edgel water:3,background edgeu water:4,background water:5,\n5,5,5,5,5,5,5,background step water:6,5,5,5,5,5,background n4 water:7,background edged water:8,4,5,5,5,\n5,5,5,5,5,6,5,5,5,5,5,5,8,4,5,5,5,5,5,\n5,5,5,6,5,5,5,5,5,5,8,4,5,5,5,5,5,5,6,\n6,6,background groundedgerw water:9,9,5,5,5,5,8,4,5,5,5,5,5,9,background groundedgerw step water:10,5,background groundedgedw step water:11,\nbackground ground groundedgelg groundedgelw groundedgeug groundedgeuw:12,background ground groundedgedg groundedgedw groundedgelg groundedgelw watercornerbl:13,background groundcornertrg groundcornertrw groundedgerw groundedgeuw water:14,5,5,5,8,4,5,5,5,5,background groundedgedw water:15,background ground groundedgelg groundedgelw groundedgeug groundedgeuw watercornertl:16,background ground groundedgedg groundedgedw groundedgelg groundedgelw:17,background groundedgeuw water:18,15,background ground groundedgeug groundedgeuw:19,background ground:20,\n13,18,5,5,8,4,5,5,5,5,15,19,background ground groundedgedg groundedgedw:21,18,15,background ground groundedgerg groundedgerw groundedgeug groundedgeuw watercornertr:22,background box ground:23,21,18,\n5,5,8,4,5,5,5,5,background groundcornerbrg groundcornerbrw groundedgedw groundedgerw water:24,19,background dirtwall ground groundedgedg groundedgedw groundedgerg groundedgerw watercornerbr:25,18,background dirtwall water watercornertl watercornertr:26,background groundcornerblg groundcornerblw groundedgedw groundedgelw water:27,22,background ground groundedgedg groundedgedw groundedgerg groundedgerw watercornerbr:28,18,5,5,\n8,4,5,5,5,24,arrowl background ground groundedgelg groundedgelw groundedgeug groundedgeuw headl playerl watercornertl:29,21,background groundedgelw groundedgeuw water:30,background box water:31,5,5,background groundedgelw water:32,32,5,5,5,8,4,\n5,5,15,16,arrowu background bodydl ground:33,arrowu background bodyud ground groundedgedg groundedgedw groundedgerg groundedgerw watercornerbr:34,background break groundedgeuw tailu water:35,26,5,5,9,5,5,5,5,8,4,5,5,\n15,22,background ground groundedgedg groundedgedw groundedgerg groundedgerw:36,background groundcornertlg groundcornertlw groundedgelw groundedgeuw water:37,5,5,5,background groundedgedw groundedgerw water:38,background button ground groundedgedg groundedgedw groundedgelg groundedgelw groundedgerg groundedgerw groundedgeug groundedgeuw watercornerbl watercornerbr watercornertl watercornertr:39,background groundedgeuw trigger water:40,5,5,5,8,4,5,5,5,32,\nbackground groundedgelw step water:41,6,6,6,15,39,30,background trigger water:42,5,5,5,8,4,5,5,5,5,5,6,\n5,6,5,background groundedgelw trigger water:43,5,42,5,5,5,8,4,5,5,5,5,5,5,5,6,\n5,42,5,42,5,5,5,8,4,5,5,5,5,5,5,5,background groundedgerw step trigger water:44,42,42,\n5,42,5,5,5,8,4,5,5,5,5,5,5,26,background doorvertical ground groundedgedg groundedgedw groundedgelg groundedgelw:45,background groundedgerw groundedgeuw water:46,5,5,42,\n5,5,5,8,4,5,5,5,5,5,5,26,background doorvertical ground:47,background dirtwall ground groundedgedg groundedgedw groundedgelg groundedgelw trigger watercornerbl:48,background groundedgerw groundedgeuw trigger water:49,42,42,5,5,\n5,8,background edger edgeu water:50,background edger water:51,51,51,51,51,background dirtwall edger water watercornertl watercornertr:52,background dirtwall edger ground:53,background edger goal ground:54,53,background dirtwall edger ground groundedgedg groundedgedw groundedgelg groundedgelw watercornerbl:55,background edger groundedgeuw water:56,51,51,51,51,background edged edger water:57,\n", 0, "1627779869171.2134"] ], [ `increpare game: cooperacing`, - ["title Cooperacing\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start \n\ncolor_palette amstrad \n\nyoutube ZdvPF9KQfXk\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\ngrey lightgrey\n01000\n00000\n00001\n00100\n00000\n\n\nWall\ngreen darkgreen\n11010\n01111\n10101\n11100\n01011\n\nWallV |\ndarkblue darkgreen green \n20202\n20202\n20202\n20202\n20202\n\nWallH -\ndarkblue darkgreen green\n22222\n00000\n22222\n00000\n22222\n\nRedCar\nred \n\nBlueCar \nblue\n\nActiveSeat\ndarkgrey yellow\n.....\n.101.\n.000.\n.101.\n.....\n\nInactiveSeat\ndarkgrey\n.....\n.000.\n.000.\n.000.\n.....\n\nNoWinRed\nDarkRed\n.....\n.000.\n.000.\n.000.\n.....\n\nWinRed\nBrown Red\n1111.\n1111.\n1111.\n0....\n0....\n\n\nNoWinBlue\nDarkBlue\n.....\n.000.\n.000.\n.000.\n.....\n\nWinBlue\nBrown Blue\n1111.\n1111.\n1111.\n0....\n0....\n\nCrate 0\nblack\n.000.\n00000\n00.00\n00000\n.000.\n\nFlag\nBlack White\n10101\n01010\n10101\n01010\n10101\n\n\n(decorative stuff BEGIN)\n\n\n\nRedCarFrontUp\ngrey red black\n..1..\n.111.\n21112\n21112\n.111.\n\nRedCarFrontDown\ngrey red black\n.111.\n21112\n21112\n.111.\n..1..\n\nRedCarFrontLeft\ngrey red black\n..22.\n.1111\n11111\n.1111\n..22.\n\nRedCarFrontRight\ngrey red black\n.22..\n1111.\n11111\n1111.\n.22..\n\n\nRedCarBackUp\ngrey red black\n.111.\n11111\n21112\n21112\n11111\n\nRedCarBackDown\ngrey red black\n11111\n21112\n21112\n11111\n.111.\n\nRedCarBackLeft\ngrey red black\n.1221\n11111\n11111\n11111\n.1221\n\nRedCarBackRight\ngrey red black\n.1221\n11111\n11111\n11111\n.1221\n\n\n\n\nBlueCarFrontUp\ngrey blue black\n..1..\n.111.\n21112\n21112\n.111.\n\nBlueCarFrontDown\ngrey blue black\n.111.\n21112\n21112\n.111.\n..1..\n\nBlueCarFrontLeft\ngrey blue black\n..22.\n.1111\n11111\n.1111\n..22.\n\nBlueCarFrontRight\ngrey blue black\n.22..\n1111.\n11111\n1111.\n.22..\n\n\nBlueCarBackUp\ngrey blue black\n.111.\n11111\n21112\n21112\n11111\n\nBlueCarBackDown\ngrey blue black\n11111\n21112\n21112\n11111\n.111.\n\nBlueCarBackLeft\ngrey blue black\n.1221\n11111\n11111\n11111\n.1221\n\nBlueCarBackRight\ngrey blue black\n.1221\n11111\n11111\n11111\n.1221\n\nHStreaks\ndarkgrey\n.....\n.000.\n.....\n.000.\n.....\n\nVStreaks\ndarkgrey\n.....\n.0.0.\n.0.0.\n.0.0.\n.....\n\n\n\n=======\nLEGEND\n=======\n\nRedCarDecorationFront = RedCarFrontUp or RedCarFrontDown or RedCarFrontLeft or RedCarFrontRight\nRedCarDecorationBack = RedCarBackUp or RedCarBackDown or RedCarBackLeft or RedCarBackRight\nRedCarDecoration = RedCarDecorationFront or RedCarDecorationBack\n\n\nBlueCarDecorationFront = BlueCarFrontUp or BlueCarFrontDown or BlueCarFrontLeft or BlueCarFrontRight\nBlueCarDecorationBack = BlueCarBackUp or BlueCarBackDown or BlueCarBackLeft or BlueCarBackRight\nBlueCarDecoration = BlueCarDecorationFront or BlueCarDecorationBack\n\n\nDecoration = RedCarDecoration or BlueCarDecoration \n\nVFX = HStreaks or VStreaks\n\nCar = RedCar or BlueCar\nSeat = ActiveSeat or InactiveSeat\nPushable = Car or Crate\nAnyWall = Wall or WallH or WallV\nObstacle = Wall or Car or Crate or WallH or WallV\nGUI = WinRed or WinBlue or NoWinRed or NoWinBlue\n\nPlayer = ActiveSeat \n\n# = Wall\n. = Background\na = RedCar and ActiveSeat\n1 = RedCar\nb = BlueCar and InactiveSeat\n2 = BlueCar\nx = NoWinRed and Wall\ny = NoWinBlue and Wall\n\nf = Flag\n\n=======\nSOUNDS\n=======\n\nSFX0 1367907 \nactiveseat move 76769307 (regular move)\nSFX2 47151508 (switchcar)\nSFX3 5892308 (touch flag)\nSFX4 36923307 (turn car)\nendlevel 84491108\nendgame 57925708\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nVFX\nFlag\nWall, Car, Crate, Decoration, WallH, WallV\nSeat\nGUI\n\n======\nRULES\n======\n\n[ RedCarDecoration ] -> [ RedCar ]\n[ BlueCarDecoration ] -> [ BlueCar ]\n\n[ Action ActiveSeat ] [ InactiveSeat ] -> [ InactiveSeat ] [ ActiveSeat ]\n\n(no reversing)\n[ < ActiveSeat RedCar | RedCar ] -> cancel\n[ < ActiveSeat BlueCar | BlueCar ] -> cancel\n\n(no turning towards foreign objects)\n[ > ActiveSeat BlueCar | RedCar ] -> cancel\n[ > ActiveSeat RedCar | BlueCar ] -> cancel\n[ > ActiveSeat BlueCar | Crate ] -> cancel\n[ > ActiveSeat RedCar | Crate ] -> cancel\n\n\n(turning)\n\n\n[ > ActiveSeat BlueCar | no Obstacle ] [ no ActiveSeat BlueCar ] -> [ ActiveSeat BlueCar | BlueCar ] [ ] sfx4\n\n\n[ > ActiveSeat RedCar | no Obstacle ] [ no ActiveSeat RedCar ] -> [ ActiveSeat RedCar | RedCar ] [ ] sfx4\n\n[ > ActiveSeat Car ] -> [ > ActiveSeat > Car ]\n\nstartLoop\n\n[ > Pushable | Pushable ] -> [ > Pushable | > Pushable ]\n\n[ moving RedCar | RedCar ] -> [ moving RedCar | moving RedCar ]\n[ moving BlueCar | BlueCar ] -> [ moving BlueCar | moving BlueCar ]\n\nendLoop\n\n[ moving Car Seat ] -> [ moving Car moving Seat ]\n\n[ > Pushable | AnyWall ] -> cancel\n\nhorizontal [ ^ RedCar | ^ RedCar ] -> [ VStreaks ^ RedCar | VStreaks ^ RedCar ] sfx0\nvertical [ ^ RedCar | ^ RedCar ] -> [ HStreaks ^ RedCar | HStreaks ^ RedCar ] sfx0\n\nhorizontal [ ^ BlueCar | ^ BlueCar ] -> [ VStreaks ^ BlueCar | VStreaks ^ BlueCar ] sfx0\nvertical [ ^ BlueCar | ^ BlueCar ] -> [ HStreaks ^ BlueCar | HStreaks ^ BlueCar ] sfx0\n\n\nlate [ BlueCar Flag ] [ NoWinBlue ] -> [ BlueCar Flag ] [ WinBlue ] sfx3\nlate [ RedCar Flag ] [ NoWinRed ] -> [ RedCar Flag ] [ WinRed ] sfx3\n\nlate up [ RedCar Seat | RedCar ] -> [ RedCarBackUp Seat | RedCarFrontUp ]\nlate down [ RedCar Seat | RedCar ] -> [ RedCarBackDown Seat | RedCarFrontDown ]\nlate left [ RedCar Seat | RedCar ] -> [ RedCarBackLeft Seat | RedCarFrontLeft ]\nlate right [ RedCar Seat | RedCar ] -> [ RedCarBackRight Seat | RedCarFrontRight ]\n\nlate up [ BlueCar Seat | BlueCar ] -> [ BlueCarBackUp Seat | BlueCarFrontUp ]\nlate down [ BlueCar Seat | BlueCar ] -> [ BlueCarBackDown Seat | BlueCarFrontDown ]\nlate left [ BlueCar Seat | BlueCar ] -> [ BlueCarBackLeft Seat | BlueCarFrontLeft ]\nlate right [ BlueCar Seat | BlueCar ] -> [ BlueCarBackRight Seat | BlueCarFrontRight ]\n\n==============\nWINCONDITIONS\n==============\n\nno NoWinRed\nno NoWinBlue\n\n=======\nLEVELS\n=======\n\nmessage RED appears to be in the lead, but what REALLY is important is everyone finishing the race\n\nmessage X to switch car, ARROWS to do turn or move forward. NO REVERSE\n\nmessage WARM UP LAP\n\n#############\n##---------##\n#|.........|#\n#|.....a1..|#\n#|..b2.....|#\n#|.........|#\n#|...#-#...|#\n#|...|#|...|#\n#|...|#|...|#\n#|...#-#...|#\n#|....f....|#\n#|....f....|#\n#|....f....|#\n#|....f....|#\n##---------##\n##xy#########\n\nmessage LAP 1\n\n###########\n##-------##\n#|.......|#\n#|.......|#\n###.----.|#\n##|..b2..|#\n##|..a1..|#\n###.----.|#\n#|...f...|#\n#|...f...|#\n##-------##\n###xy######\n\nmessage LAP 2\n\nmessage Watch out, tires on the track!\n\n###########\n#.....a1..#\n#...b2....#\n#...###...#\n#000###000#\n#...###...#\n#000###000#\n#....f....#\n#....f....#\n###xy######\n\nmessage Final Lap!\n\n##############\n##############\n#.......###.##\n#..a1.......##\n#..b2...###.##\n#.......###.##\n#####.#####.##\n#####...f....#\n###########.##\n#xy###########\n\nmessage RACE OVER\nmessage Race Results: \nmessage Teamwork is Victorious!\nmessage thanks for playing\n\n",[0,0,4,1,3,3,2,4,0,3,3,0,1,1,1,0,3,1,0,3,2,2,0,3,1,1,1,0,1,0,3,3,0,1,1,4,0,0,0,2,2,2,1,1,1,1,1,1,2,3,3,3,3,2,1,1,1],"background wall:0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background wallv:1,1,0,0,0,0,1,1,\n0,0,0,background wallh:2,background:3,3,0,1,1,0,3,\n3,2,0,0,2,3,3,3,3,background redcarfrontleft:4,3,\nbackground bluecarfrontleft:5,3,2,background nowinred wall:6,0,2,3,3,2,3,background inactiveseat redcarbackleft:7,\n2,activeseat background bluecarbackleft:8,3,2,background wall winblue:9,0,2,3,3,2,3,\n3,2,background flag:10,10,2,0,0,2,3,3,2,\n3,3,2,3,3,2,0,0,2,3,3,\n2,background hstreaks:11,11,2,3,3,2,0,0,2,3,\n3,3,3,3,3,3,3,2,0,0,0,\n1,1,1,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n",5,"1627888788733.95"] + ["title Cooperacing\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start \n\ncolor_palette amstrad \n\nyoutube ZdvPF9KQfXk\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\ngrey lightgrey\n01000\n00000\n00001\n00100\n00000\n\n\nWall\ngreen darkgreen\n11010\n01111\n10101\n11100\n01011\n\nWallV |\ndarkblue darkgreen green \n20202\n20202\n20202\n20202\n20202\n\nWallH -\ndarkblue darkgreen green\n22222\n00000\n22222\n00000\n22222\n\nRedCar\nred \n\nBlueCar \nblue\n\nActiveSeat\ndarkgrey yellow\n.....\n.101.\n.000.\n.101.\n.....\n\nInactiveSeat\ndarkgrey\n.....\n.000.\n.000.\n.000.\n.....\n\nNoWinRed\nDarkRed\n.....\n.000.\n.000.\n.000.\n.....\n\nWinRed\nBrown Red\n1111.\n1111.\n1111.\n0....\n0....\n\n\nNoWinBlue\nDarkBlue\n.....\n.000.\n.000.\n.000.\n.....\n\nWinBlue\nBrown Blue\n1111.\n1111.\n1111.\n0....\n0....\n\nCrate 0\nblack\n.000.\n00000\n00.00\n00000\n.000.\n\nFlag\nBlack White\n10101\n01010\n10101\n01010\n10101\n\n\n(decorative stuff BEGIN)\n\n\n\nRedCarFrontUp\ngrey red black\n..1..\n.111.\n21112\n21112\n.111.\n\nRedCarFrontDown\ngrey red black\n.111.\n21112\n21112\n.111.\n..1..\n\nRedCarFrontLeft\ngrey red black\n..22.\n.1111\n11111\n.1111\n..22.\n\nRedCarFrontRight\ngrey red black\n.22..\n1111.\n11111\n1111.\n.22..\n\n\nRedCarBackUp\ngrey red black\n.111.\n11111\n21112\n21112\n11111\n\nRedCarBackDown\ngrey red black\n11111\n21112\n21112\n11111\n.111.\n\nRedCarBackLeft\ngrey red black\n.1221\n11111\n11111\n11111\n.1221\n\nRedCarBackRight\ngrey red black\n.1221\n11111\n11111\n11111\n.1221\n\n\n\n\nBlueCarFrontUp\ngrey blue black\n..1..\n.111.\n21112\n21112\n.111.\n\nBlueCarFrontDown\ngrey blue black\n.111.\n21112\n21112\n.111.\n..1..\n\nBlueCarFrontLeft\ngrey blue black\n..22.\n.1111\n11111\n.1111\n..22.\n\nBlueCarFrontRight\ngrey blue black\n.22..\n1111.\n11111\n1111.\n.22..\n\n\nBlueCarBackUp\ngrey blue black\n.111.\n11111\n21112\n21112\n11111\n\nBlueCarBackDown\ngrey blue black\n11111\n21112\n21112\n11111\n.111.\n\nBlueCarBackLeft\ngrey blue black\n.1221\n11111\n11111\n11111\n.1221\n\nBlueCarBackRight\ngrey blue black\n.1221\n11111\n11111\n11111\n.1221\n\nHStreaks\ndarkgrey\n.....\n.000.\n.....\n.000.\n.....\n\nVStreaks\ndarkgrey\n.....\n.0.0.\n.0.0.\n.0.0.\n.....\n\n\n\n=======\nLEGEND\n=======\n\nRedCarDecorationFront = RedCarFrontUp or RedCarFrontDown or RedCarFrontLeft or RedCarFrontRight\nRedCarDecorationBack = RedCarBackUp or RedCarBackDown or RedCarBackLeft or RedCarBackRight\nRedCarDecoration = RedCarDecorationFront or RedCarDecorationBack\n\n\nBlueCarDecorationFront = BlueCarFrontUp or BlueCarFrontDown or BlueCarFrontLeft or BlueCarFrontRight\nBlueCarDecorationBack = BlueCarBackUp or BlueCarBackDown or BlueCarBackLeft or BlueCarBackRight\nBlueCarDecoration = BlueCarDecorationFront or BlueCarDecorationBack\n\n\nDecoration = RedCarDecoration or BlueCarDecoration \n\nVFX = HStreaks or VStreaks\n\nCar = RedCar or BlueCar\nSeat = ActiveSeat or InactiveSeat\nPushable = Car or Crate\nAnyWall = Wall or WallH or WallV\nObstacle = Wall or Car or Crate or WallH or WallV\nGUI = WinRed or WinBlue or NoWinRed or NoWinBlue\n\nPlayer = ActiveSeat \n\n# = Wall\n. = Background\na = RedCar and ActiveSeat\n1 = RedCar\nb = BlueCar and InactiveSeat\n2 = BlueCar\nx = NoWinRed and Wall\ny = NoWinBlue and Wall\n\nf = Flag\n\n=======\nSOUNDS\n=======\n\nSFX0 1367907 \nactiveseat move 76769307 (regular move)\nSFX2 47151508 (switchcar)\nSFX3 5892308 (touch flag)\nSFX4 36923307 (turn car)\nendlevel 84491108\nendgame 57925708\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nVFX\nFlag\nWall, Car, Crate, Decoration, WallH, WallV\nSeat\nGUI\n\n======\nRULES\n======\n\n[ RedCarDecoration ] -> [ RedCar ]\n[ BlueCarDecoration ] -> [ BlueCar ]\n\n[ Action ActiveSeat ] [ InactiveSeat ] -> [ InactiveSeat ] [ ActiveSeat ]\n\n(no reversing)\n[ < ActiveSeat RedCar | RedCar ] -> cancel\n[ < ActiveSeat BlueCar | BlueCar ] -> cancel\n\n(no turning towards foreign objects)\n[ > ActiveSeat BlueCar | RedCar ] -> cancel\n[ > ActiveSeat RedCar | BlueCar ] -> cancel\n[ > ActiveSeat BlueCar | Crate ] -> cancel\n[ > ActiveSeat RedCar | Crate ] -> cancel\n\n\n(turning)\n\n\n[ > ActiveSeat BlueCar | no Obstacle ] [ no ActiveSeat BlueCar ] -> [ ActiveSeat BlueCar | BlueCar ] [ ] sfx4\n\n\n[ > ActiveSeat RedCar | no Obstacle ] [ no ActiveSeat RedCar ] -> [ ActiveSeat RedCar | RedCar ] [ ] sfx4\n\n[ > ActiveSeat Car ] -> [ > ActiveSeat > Car ]\n\nstartLoop\n\n[ > Pushable | Pushable ] -> [ > Pushable | > Pushable ]\n\n[ moving RedCar | RedCar ] -> [ moving RedCar | moving RedCar ]\n[ moving BlueCar | BlueCar ] -> [ moving BlueCar | moving BlueCar ]\n\nendLoop\n\n[ moving Car Seat ] -> [ moving Car moving Seat ]\n\n[ > Pushable | AnyWall ] -> cancel\n\nhorizontal [ ^ RedCar | ^ RedCar ] -> [ VStreaks ^ RedCar | VStreaks ^ RedCar ] sfx0\nvertical [ ^ RedCar | ^ RedCar ] -> [ HStreaks ^ RedCar | HStreaks ^ RedCar ] sfx0\n\nhorizontal [ ^ BlueCar | ^ BlueCar ] -> [ VStreaks ^ BlueCar | VStreaks ^ BlueCar ] sfx0\nvertical [ ^ BlueCar | ^ BlueCar ] -> [ HStreaks ^ BlueCar | HStreaks ^ BlueCar ] sfx0\n\n\nlate [ BlueCar Flag ] [ NoWinBlue ] -> [ BlueCar Flag ] [ WinBlue ] sfx3\nlate [ RedCar Flag ] [ NoWinRed ] -> [ RedCar Flag ] [ WinRed ] sfx3\n\nlate up [ RedCar Seat | RedCar ] -> [ RedCarBackUp Seat | RedCarFrontUp ]\nlate down [ RedCar Seat | RedCar ] -> [ RedCarBackDown Seat | RedCarFrontDown ]\nlate left [ RedCar Seat | RedCar ] -> [ RedCarBackLeft Seat | RedCarFrontLeft ]\nlate right [ RedCar Seat | RedCar ] -> [ RedCarBackRight Seat | RedCarFrontRight ]\n\nlate up [ BlueCar Seat | BlueCar ] -> [ BlueCarBackUp Seat | BlueCarFrontUp ]\nlate down [ BlueCar Seat | BlueCar ] -> [ BlueCarBackDown Seat | BlueCarFrontDown ]\nlate left [ BlueCar Seat | BlueCar ] -> [ BlueCarBackLeft Seat | BlueCarFrontLeft ]\nlate right [ BlueCar Seat | BlueCar ] -> [ BlueCarBackRight Seat | BlueCarFrontRight ]\n\n==============\nWINCONDITIONS\n==============\n\nno NoWinRed\nno NoWinBlue\n\n=======\nLEVELS\n=======\n\nmessage RED appears to be in the lead, but what REALLY is important is everyone finishing the race\n\nmessage X to switch car, ARROWS to do turn or move forward. NO REVERSE\n\nmessage WARM UP LAP\n\n#############\n##---------##\n#|.........|#\n#|.....a1..|#\n#|..b2.....|#\n#|.........|#\n#|...#-#...|#\n#|...|#|...|#\n#|...|#|...|#\n#|...#-#...|#\n#|....f....|#\n#|....f....|#\n#|....f....|#\n#|....f....|#\n##---------##\n##xy#########\n\nmessage LAP 1\n\n###########\n##-------##\n#|.......|#\n#|.......|#\n###.----.|#\n##|..b2..|#\n##|..a1..|#\n###.----.|#\n#|...f...|#\n#|...f...|#\n##-------##\n###xy######\n\nmessage LAP 2\n\nmessage Watch out, tires on the track!\n\n###########\n#.....a1..#\n#...b2....#\n#...###...#\n#000###000#\n#...###...#\n#000###000#\n#....f....#\n#....f....#\n###xy######\n\nmessage Final Lap!\n\n##############\n##############\n#.......###.##\n#..a1.......##\n#..b2...###.##\n#.......###.##\n#####.#####.##\n#####...f....#\n###########.##\n#xy###########\n\nmessage RACE OVER\nmessage Race Results: \nmessage Teamwork is Victorious!\nmessage thanks for playing\n\n", [0, 0, 4, 1, 3, 3, 2, 4, 0, 3, 3, 0, 1, 1, 1, 0, 3, 1, 0, 3, 2, 2, 0, 3, 1, 1, 1, 0, 1, 0, 3, 3, 0, 1, 1, 4, 0, 0, 0, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 3, 3, 3, 3, 2, 1, 1, 1], "background wall:0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background wallv:1,1,0,0,0,0,1,1,\n0,0,0,background wallh:2,background:3,3,0,1,1,0,3,\n3,2,0,0,2,3,3,3,3,background redcarfrontleft:4,3,\nbackground bluecarfrontleft:5,3,2,background nowinred wall:6,0,2,3,3,2,3,background inactiveseat redcarbackleft:7,\n2,activeseat background bluecarbackleft:8,3,2,background wall winblue:9,0,2,3,3,2,3,\n3,2,background flag:10,10,2,0,0,2,3,3,2,\n3,3,2,3,3,2,0,0,2,3,3,\n2,background hstreaks:11,11,2,3,3,2,0,0,2,3,\n3,3,3,3,3,3,3,2,0,0,0,\n1,1,1,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n", 5, "1627888788733.95"] ], [ `increpare game: LED Challenge`, - ["(\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,"undo",3,3,3,3,2,3,0,0,"undo","undo",3,0,0,0,0,0,1,2,3,2,1,1,1,1,1,3,3,3,3,3,2,1,1,1,1,0,1,0,1,1,1,"undo",0,1,1,1,1,2,2,2,3,3,2,3,3,0,2,1,1,1,"undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","restart",3,3,3,3,0,3,3,0,0,1,2,3,2,2,2,1,1,0,3,1,0,0,3,2,3,3,3,2,1,1,2,1,0,1,1,1,0,1,0,1,1,1,1,2,2,2,2,3,3,3,3,0,0,3,0,"undo","undo",3,0,1,2,2,1,0],"background:0,0,0,0,0,0,0,0,0,0,0,0,\nbackground battery_h light light_left light_right:1,0,0,0,background red_on:2,background cable_ul light light_left light_up:3,background player:4,0,0,0,0,0,\n0,background wall:5,5,0,0,5,5,5,0,0,5,0,\n0,0,0,0,0,0,background green_off:6,0,0,0,0,0,\n0,0,0,background cable_ur:7,0,0,0,0,0,0,0,0,\n",3,"1627888832451.9211"] + ["(\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, "undo", 3, 3, 3, 3, 2, 3, 0, 0, "undo", "undo", 3, 0, 0, 0, 0, 0, 1, 2, 3, 2, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, "undo", 0, 1, 1, 1, 1, 2, 2, 2, 3, 3, 2, 3, 3, 0, 2, 1, 1, 1, "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "restart", 3, 3, 3, 3, 0, 3, 3, 0, 0, 1, 2, 3, 2, 2, 2, 1, 1, 0, 3, 1, 0, 0, 3, 2, 3, 3, 3, 2, 1, 1, 2, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 0, 0, 3, 0, "undo", "undo", 3, 0, 1, 2, 2, 1, 0], "background:0,0,0,0,0,0,0,0,0,0,0,0,\nbackground battery_h light light_left light_right:1,0,0,0,background red_on:2,background cable_ul light light_left light_up:3,background player:4,0,0,0,0,0,\n0,background wall:5,5,0,0,5,5,5,0,0,5,0,\n0,0,0,0,0,0,background green_off:6,0,0,0,0,0,\n0,0,0,background cable_ur:7,0,0,0,0,0,0,0,0,\n", 3, "1627888832451.9211"] ], [ `increpare game: robot arm`, -["(\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 Robot Arm\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\ncolor_palette c64\n\nrun_rules_on_level_start\n\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground .\ndarkblue\n\nPlayer P\nBlack orange grey Blue\n.111.\n.111.\n22222\n13331\n.3.3.\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.010.\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 #\ndarkgrey grey lightgrey\n00000\n01110\n01010\n01110\n00000\n\nwater ,\nblue lightblue\n00000\n00010\n00000\n00000\n01000\n\nFruit F\nRed Green LightRed\n..1..\n.000.\n00020\n00000\n.000.\n\n\nFruitPicked G\nRed Green LightRed grey grey\n..4..\n.030.\n43334\n00300\n.040.\n\nDeadFruit \nblack black black black black\n..4..\n.030.\n43334\n00300\n.040.\n\nEndPoint E\ndarkgreen Yellow black green\n30003\n02220\n02220\n02220\n30003\n\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\nsfx0 43004308 (explosion)\nsfx1 69392707\nsfx2 57370907 (push machine)\nsfx3 62083508 (rotate machine)\nsfx4 90419908 (grab)\nsfx5 50782902 (drop in hole)\nsfx6 76878101 (empty grab)\nsfx7 13941101 (dead fruit)\nsfx8 42541302 (release)\nPlayer move 88476108\nstartgame 30513908\nendlevel 5524308\nendgame 5524308\nshowmessage 41852908\nclosemessage 41852908\n\n================\nCOLLISIONLAYERS\n================\nBackground\nwater\nEndPoint\nPlayer\nMoved\nFruit\nFRUITPICKED\ndeadfruit\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 | fruit ] -> cancel\n\n[ > player | water ] -> cancel\n\n[ > player | ] -> [ > player | > force ]\n\n[ > player | robotpiece | wall ] -> cancel\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] sfx2\n\n[ > force moving R1 perpendicular parent ] [ R0 ] -> [ moving R1 perpendicular parent ] [ > R0 ] sfx3\n[ > force moving R2 perpendicular parent ] [ R1 ] -> [ moving R2 perpendicular parent ] [ > R1 ] sfx3\n[ > force \t\tR3 perpendicular parent ] [ R2 ] -> [ R3 perpendicular parent ] [ > R2 ] sfx3\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 ] sfx0\n\n[ R0 R2 no explosion no explosion2] -> [ R0 R2 explosion ] sfx0\n[ R0 R3 no explosion no explosion2 ] -> [ R0 r3 explosion ] sfx0 \n[ R1 R3 no explosion no explosion2 ] -> [ R1 R3 explosion ] sfx0\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] sfx4\n[ action player ] [ R3 fruitpicked no fruit ] -> [ player ] [ r3 fruit ] sfx8\n\n[action player ] [ r3 no fruit no fruitpicked ] -> sfx6\n\n\n[ fruit endpoint ] -> [endpoint] sfx5\n[ fruit water ] -> [ deadfruit water ] sfx7\nlate [R0 water ] -> cancel\n[R0 fruit ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nno fruit\nno fruitpicked\nno deadfruit\n\n=======\nLEVELS\n=======\n\nmessage press x to grip and ungrip the mechanical arm\nmessage put fruit in hole\n\nmessage Level 1 of 3\n\n###################\n###################\n###################\n###..,........,.###\n###..,...3....,.###\n###..,...2....,.###\n###.F,.E.1.,,,F,###\n###..,...0....,.###\n###..,..P.....,.###\n###..,........,.###\n###################\n###################\n###################\n\nmessage Level 2 of 3\n\n##############\n##############\n##############\n###..3.....###\n###..2.....###\n###..1.,,,,###\n###.E0.,...###\n###....,FF.###\n###.P..,...###\n##############\n##############\n##############\n\nmessage Level 3 of 3 \n\n###################\n###################\n###################\n########........###\n###..3.#...##.f.###\n###..2..........###\n###..1...#....#.###\n###.e0..........###\n###..p..#...#.f.###\n#########.......###\n###################\n###################\n###################\n\nmessage congratulations\n\n",[3,2,3,1,1,0,0,0,3,1,2,3,3,2,3,0,3,3,0,2,1,1,1,0,0,0,0,3,3,2,1,1,2,2,2,3,3,1,4],"background wall: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,\n0,0,0,0,background:1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,\n1,background fruit:2,1,1,1,0,0,0,0,0,0,background water:3,3,3,3,3,3,3,0,\n0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,1,\n1,1,background endpoint force:4,1,1,background force:5,0,0,0,0,0,0,1,1,5,1,1,5,1,\n0,0,0,0,0,0,1,1,5,1,1,5,1,background force wall:6,0,0,0,0,0,\n5,1,1,1,1,5,5,0,0,0,0,0,0,1,1,1,3,1,background force player:7,\n5,0,0,0,0,0,0,1,1,1,3,1,1,1,0,0,0,0,0,\n0,1,5,1,3,1,background connector_right r0_right:8,5,0,0,0,0,0,0,3,3,3,background connector_down fruitpicked r3:9,background connector_down connector_up r2_up water:10,\nbackground connector_left connector_up force r1_up water:11,3,0,0,0,0,0,0,1,1,1,3,1,1,1,0,0,0,0,\n0,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,\n",3,"1627890876560.982"] + ["(\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 Robot Arm\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\ncolor_palette c64\n\nrun_rules_on_level_start\n\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground .\ndarkblue\n\nPlayer P\nBlack orange grey Blue\n.111.\n.111.\n22222\n13331\n.3.3.\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.010.\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 #\ndarkgrey grey lightgrey\n00000\n01110\n01010\n01110\n00000\n\nwater ,\nblue lightblue\n00000\n00010\n00000\n00000\n01000\n\nFruit F\nRed Green LightRed\n..1..\n.000.\n00020\n00000\n.000.\n\n\nFruitPicked G\nRed Green LightRed grey grey\n..4..\n.030.\n43334\n00300\n.040.\n\nDeadFruit \nblack black black black black\n..4..\n.030.\n43334\n00300\n.040.\n\nEndPoint E\ndarkgreen Yellow black green\n30003\n02220\n02220\n02220\n30003\n\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\nsfx0 43004308 (explosion)\nsfx1 69392707\nsfx2 57370907 (push machine)\nsfx3 62083508 (rotate machine)\nsfx4 90419908 (grab)\nsfx5 50782902 (drop in hole)\nsfx6 76878101 (empty grab)\nsfx7 13941101 (dead fruit)\nsfx8 42541302 (release)\nPlayer move 88476108\nstartgame 30513908\nendlevel 5524308\nendgame 5524308\nshowmessage 41852908\nclosemessage 41852908\n\n================\nCOLLISIONLAYERS\n================\nBackground\nwater\nEndPoint\nPlayer\nMoved\nFruit\nFRUITPICKED\ndeadfruit\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 | fruit ] -> cancel\n\n[ > player | water ] -> cancel\n\n[ > player | ] -> [ > player | > force ]\n\n[ > player | robotpiece | wall ] -> cancel\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] sfx2\n\n[ > force moving R1 perpendicular parent ] [ R0 ] -> [ moving R1 perpendicular parent ] [ > R0 ] sfx3\n[ > force moving R2 perpendicular parent ] [ R1 ] -> [ moving R2 perpendicular parent ] [ > R1 ] sfx3\n[ > force \t\tR3 perpendicular parent ] [ R2 ] -> [ R3 perpendicular parent ] [ > R2 ] sfx3\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 ] sfx0\n\n[ R0 R2 no explosion no explosion2] -> [ R0 R2 explosion ] sfx0\n[ R0 R3 no explosion no explosion2 ] -> [ R0 r3 explosion ] sfx0 \n[ R1 R3 no explosion no explosion2 ] -> [ R1 R3 explosion ] sfx0\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] sfx4\n[ action player ] [ R3 fruitpicked no fruit ] -> [ player ] [ r3 fruit ] sfx8\n\n[action player ] [ r3 no fruit no fruitpicked ] -> sfx6\n\n\n[ fruit endpoint ] -> [endpoint] sfx5\n[ fruit water ] -> [ deadfruit water ] sfx7\nlate [R0 water ] -> cancel\n[R0 fruit ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nno fruit\nno fruitpicked\nno deadfruit\n\n=======\nLEVELS\n=======\n\nmessage press x to grip and ungrip the mechanical arm\nmessage put fruit in hole\n\nmessage Level 1 of 3\n\n###################\n###################\n###################\n###..,........,.###\n###..,...3....,.###\n###..,...2....,.###\n###.F,.E.1.,,,F,###\n###..,...0....,.###\n###..,..P.....,.###\n###..,........,.###\n###################\n###################\n###################\n\nmessage Level 2 of 3\n\n##############\n##############\n##############\n###..3.....###\n###..2.....###\n###..1.,,,,###\n###.E0.,...###\n###....,FF.###\n###.P..,...###\n##############\n##############\n##############\n\nmessage Level 3 of 3 \n\n###################\n###################\n###################\n########........###\n###..3.#...##.f.###\n###..2..........###\n###..1...#....#.###\n###.e0..........###\n###..p..#...#.f.###\n#########.......###\n###################\n###################\n###################\n\nmessage congratulations\n\n", [3, 2, 3, 1, 1, 0, 0, 0, 3, 1, 2, 3, 3, 2, 3, 0, 3, 3, 0, 2, 1, 1, 1, 0, 0, 0, 0, 3, 3, 2, 1, 1, 2, 2, 2, 3, 3, 1, 4], "background wall: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,\n0,0,0,0,background:1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,\n1,background fruit:2,1,1,1,0,0,0,0,0,0,background water:3,3,3,3,3,3,3,0,\n0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,1,\n1,1,background endpoint force:4,1,1,background force:5,0,0,0,0,0,0,1,1,5,1,1,5,1,\n0,0,0,0,0,0,1,1,5,1,1,5,1,background force wall:6,0,0,0,0,0,\n5,1,1,1,1,5,5,0,0,0,0,0,0,1,1,1,3,1,background force player:7,\n5,0,0,0,0,0,0,1,1,1,3,1,1,1,0,0,0,0,0,\n0,1,5,1,3,1,background connector_right r0_right:8,5,0,0,0,0,0,0,3,3,3,background connector_down fruitpicked r3:9,background connector_down connector_up r2_up water:10,\nbackground connector_left connector_up force r1_up water:11,3,0,0,0,0,0,0,1,1,1,3,1,1,1,0,0,0,0,\n0,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,\n", 3, "1627890876560.982"] ], [ `increpare game: snortal`, -["title Snortal\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nnorepeat_action\n\nverbose_logging\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground \nbrown\n\ncounter ,\ngrey black\n11111\n10101\n11111\n10101\n11111\n\nportalmade\nred blue black\n20212\n20012\n20212\n20112\n20212\n\n\nfloor .\nbrown\n\nwall #\ngrey\n\nSnakeBod *\ngreen\n.000.\n00000\n00000\n00000\n.000.\n\nSnakeUp U\ngreen \n.000.\n0.0.0\n00000\n00000\n.000.\n\nSnakeDown D\ngreen \n.000.\n00000\n00000\n0.0.0\n.000.\n\nSnakeLeft L\ngreen \n.000.\n0.000\n00000\n0.000\n.000.\n\n\nSnakeRight R\ngreen \n.000.\n000.0\n00000\n000.0\n.000.\n\n\n\nPortalUpR\nred \n.000.\n.....\n.....\n.....\n.....\n\nPortalDownR\nred \n.....\n.....\n.....\n.....\n.000.\n\nPortalLeftR\nred \n.....\n0....\n0....\n0....\n.....\n\nPortalRightR\nred \n.....\n....0\n....0\n....0\n.....\n\nPortalUpB\nblue \n.000.\n.....\n.....\n.....\n.....\n\nPortalDownB\nblue \n.....\n.....\n.....\n.....\n.000.\n\nPortalLeftB\nblue \n.....\n0....\n0....\n0....\n.....\n\nPortalRightB\nblue \n.....\n....0\n....0\n....0\n.....\n\nRed\nred\n.000.\n00000\n00000\n00000\n.000.\n\nBlue\nblue\n.000.\n00000\n00000\n00000\n.000.\n\n\nold\nblack\n\nexit\norange\n\nenter\nyellow\n\nportaltarget\npink\n\ntemp \nblack\n\n=======\nLEGEND\n=======\n\n\nPlayer = SnakeUp or SnakeDown or SnakeLeft or SnakeRight\nObstacle = SnakeBod or Wall\nColor = red or blue\nsnaketotality = player or snakebod\n\nPortalUp = PortalUpR or PortalUpB\nPortalDown = PortalDownR or PortalDownB\nPortalLeft = PortalLeftR or PortalLeftB\nPortalRight = PortalRightR or PortalRightB\n\nPortalR = PortalUpR or PortalDownR or PortalLeftR or PortalRightR\nPortalB = PortalUpB or PortalDownB or PortalLeftB or PortalRightB\n\nPortal = PortalUp or PortalDown or PortalLeft or PortalRight\n\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nCounter\nPortalmade\nFloor\nWall \nColor\nPlayer, SnakeBod\nPortal\nOld\nExit, Enter\nportaltarget\ntemp\n\n======\nRULES\n======\n\n[ player no color ] -> [player red]\n\n\n[portal ] -> [old portal]\n\n\n[portalleft]->[left portalleft]\n[portalright]->[right portalright]\n[portalup]->[up portalup]\n[portaldown]->[down portaldown]\n\n[player ] -> [ player temp]\nup [ action snakeup temp | ... | obstacle ] -> [ action snakeup | ... | obstacle portaltarget ] \ndown [ action snakedown temp | ... | obstacle ] -> [ action snakedown | ... | obstacle portaltarget ] \nleft [ action snakeleft temp | ... | obstacle ] -> [ action snakeleft | ... | obstacle portaltarget ] \nright [ action snakeright temp | ... | obstacle ] -> [ action snakeright | ... | obstacle portaltarget ] \n[temp]->[]\n[portaltarget portal ] -> cancel\n\n[ > player | < portal ] -> [ > player | < portal enter ]\n\n[ > portal no enter | no obstacle no player ] [enter] [player] [counter] -> [ > portal | exit ] [ enter ] [ snakebod ] [portalmade] \n\n\n[ up portal | exit ] -> [ up portal | snakeup ]\n[ down portal | exit ] -> [ down portal | snakedown ]\n[ left portal | exit ] -> [ left portal | snakeleft ]\n[ right portal | exit ] -> [ right portal | snakeright ]\n[color no player ] [ player ] -> [] [color player]\n\n[ up player exit ] -> [ snakeup ]\n[ down player exit ] -> [ snakedown ]\n[ left player exit ] -> [ snakeleft ]\n[ right player exit ] -> [ snakeright ]\n\n[ > snakebod ] -> [snakebod]\n\n[ > portal ] -> [ portal ]\n\n[ > Player | Obstacle ] -> [ Player | Obstacle ]\nup [ up Player Color | No Obstacle ] -> [ SnakeBod | SnakeUp Color ] \ndown [ down Player Color | No Obstacle ] -> [ SnakeBod | SnakeDown Color ] \nleft [ left Player Color | No Obstacle ] -> [ SnakeBod | SnakeLeft Color ] \nright [ right Player Color | No Obstacle ] -> [ SnakeBod | SnakeRight Color ] \n\nright [ action snakeright Red | ... | Obstacle No Portal ] -> [snakeright Blue | ... | Obstacle PortalLeftR ]\nright [ action snakeright Blue | ... | Obstacle No Portal ] -> [snakeright Red | ... | Obstacle PortalLeftB ]\n\nleft [ action snakeleft Red | ... | Obstacle No Portal ] -> [snakeleft Blue | ... | Obstacle PortalRightR ]\nleft [ action snakeleft Blue | ... | Obstacle No Portal ] -> [snakeleft Red | ... | Obstacle PortalRightB ]\n\nup [ action snakeup Red | ... | Obstacle No Portal ] -> [snakeup Blue | ... | Obstacle PortalDownR ]\nup [ action snakeup Blue | ... | Obstacle No Portal ] -> [snakeup Red | ... | Obstacle PortalDownB ]\n\ndown [ action snakedown Red | ... | Obstacle No Portal ] -> [snakedown Blue | ... | Obstacle PortalupR ]\ndown [ action snakedown Blue | ... | Obstacle No Portal ] -> [snakedown Red | ... | Obstacle PortalupB ]\n\n\n\n[old portalB] [no old portalB] -> [] [portalB]\n[old portalR] [no old portalR] -> [] [portalR]\n[old] -> []\n\n[enter] -> []\n[exit] -> []\n\n[portaltarget]->[]\n\n==============\nWINCONDITIONS\n==============\nno counter\n\n=======\nLEVELS\n=======\n\n\n,,,,,,,\n#######\n#.....#\n#.....#\n#..U..#\n#.....#\n#.....#\n#######\n\n",[1,1,2,2,3,0,4,3,3,"restart",4,3,4,3,3,3,1,"undo","undo",3,0,2,1,1,2,4,2,3,4,3,3,3,3],"background portalmade:0,background wall:1,1,1,1,1,1,\n1,0,1,background floor:2,background floor snakebod:3,3,3,\nbackground floor red snakeup:4,background portalupr wall:5,background counter:6,1,2,3,2,\n3,2,1,6,1,3,3,\nbackground snakebod:7,3,2,1,6,1,2,\n2,3,3,2,1,6,1,\n2,2,3,3,2,1,6,\n1,1,1,1,background portalleftb wall:8,1,1,\n",0,"1627888906100.3608"] + ["title Snortal\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nnorepeat_action\n\nverbose_logging\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground \nbrown\n\ncounter ,\ngrey black\n11111\n10101\n11111\n10101\n11111\n\nportalmade\nred blue black\n20212\n20012\n20212\n20112\n20212\n\n\nfloor .\nbrown\n\nwall #\ngrey\n\nSnakeBod *\ngreen\n.000.\n00000\n00000\n00000\n.000.\n\nSnakeUp U\ngreen \n.000.\n0.0.0\n00000\n00000\n.000.\n\nSnakeDown D\ngreen \n.000.\n00000\n00000\n0.0.0\n.000.\n\nSnakeLeft L\ngreen \n.000.\n0.000\n00000\n0.000\n.000.\n\n\nSnakeRight R\ngreen \n.000.\n000.0\n00000\n000.0\n.000.\n\n\n\nPortalUpR\nred \n.000.\n.....\n.....\n.....\n.....\n\nPortalDownR\nred \n.....\n.....\n.....\n.....\n.000.\n\nPortalLeftR\nred \n.....\n0....\n0....\n0....\n.....\n\nPortalRightR\nred \n.....\n....0\n....0\n....0\n.....\n\nPortalUpB\nblue \n.000.\n.....\n.....\n.....\n.....\n\nPortalDownB\nblue \n.....\n.....\n.....\n.....\n.000.\n\nPortalLeftB\nblue \n.....\n0....\n0....\n0....\n.....\n\nPortalRightB\nblue \n.....\n....0\n....0\n....0\n.....\n\nRed\nred\n.000.\n00000\n00000\n00000\n.000.\n\nBlue\nblue\n.000.\n00000\n00000\n00000\n.000.\n\n\nold\nblack\n\nexit\norange\n\nenter\nyellow\n\nportaltarget\npink\n\ntemp \nblack\n\n=======\nLEGEND\n=======\n\n\nPlayer = SnakeUp or SnakeDown or SnakeLeft or SnakeRight\nObstacle = SnakeBod or Wall\nColor = red or blue\nsnaketotality = player or snakebod\n\nPortalUp = PortalUpR or PortalUpB\nPortalDown = PortalDownR or PortalDownB\nPortalLeft = PortalLeftR or PortalLeftB\nPortalRight = PortalRightR or PortalRightB\n\nPortalR = PortalUpR or PortalDownR or PortalLeftR or PortalRightR\nPortalB = PortalUpB or PortalDownB or PortalLeftB or PortalRightB\n\nPortal = PortalUp or PortalDown or PortalLeft or PortalRight\n\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nCounter\nPortalmade\nFloor\nWall \nColor\nPlayer, SnakeBod\nPortal\nOld\nExit, Enter\nportaltarget\ntemp\n\n======\nRULES\n======\n\n[ player no color ] -> [player red]\n\n\n[portal ] -> [old portal]\n\n\n[portalleft]->[left portalleft]\n[portalright]->[right portalright]\n[portalup]->[up portalup]\n[portaldown]->[down portaldown]\n\n[player ] -> [ player temp]\nup [ action snakeup temp | ... | obstacle ] -> [ action snakeup | ... | obstacle portaltarget ] \ndown [ action snakedown temp | ... | obstacle ] -> [ action snakedown | ... | obstacle portaltarget ] \nleft [ action snakeleft temp | ... | obstacle ] -> [ action snakeleft | ... | obstacle portaltarget ] \nright [ action snakeright temp | ... | obstacle ] -> [ action snakeright | ... | obstacle portaltarget ] \n[temp]->[]\n[portaltarget portal ] -> cancel\n\n[ > player | < portal ] -> [ > player | < portal enter ]\n\n[ > portal no enter | no obstacle no player ] [enter] [player] [counter] -> [ > portal | exit ] [ enter ] [ snakebod ] [portalmade] \n\n\n[ up portal | exit ] -> [ up portal | snakeup ]\n[ down portal | exit ] -> [ down portal | snakedown ]\n[ left portal | exit ] -> [ left portal | snakeleft ]\n[ right portal | exit ] -> [ right portal | snakeright ]\n[color no player ] [ player ] -> [] [color player]\n\n[ up player exit ] -> [ snakeup ]\n[ down player exit ] -> [ snakedown ]\n[ left player exit ] -> [ snakeleft ]\n[ right player exit ] -> [ snakeright ]\n\n[ > snakebod ] -> [snakebod]\n\n[ > portal ] -> [ portal ]\n\n[ > Player | Obstacle ] -> [ Player | Obstacle ]\nup [ up Player Color | No Obstacle ] -> [ SnakeBod | SnakeUp Color ] \ndown [ down Player Color | No Obstacle ] -> [ SnakeBod | SnakeDown Color ] \nleft [ left Player Color | No Obstacle ] -> [ SnakeBod | SnakeLeft Color ] \nright [ right Player Color | No Obstacle ] -> [ SnakeBod | SnakeRight Color ] \n\nright [ action snakeright Red | ... | Obstacle No Portal ] -> [snakeright Blue | ... | Obstacle PortalLeftR ]\nright [ action snakeright Blue | ... | Obstacle No Portal ] -> [snakeright Red | ... | Obstacle PortalLeftB ]\n\nleft [ action snakeleft Red | ... | Obstacle No Portal ] -> [snakeleft Blue | ... | Obstacle PortalRightR ]\nleft [ action snakeleft Blue | ... | Obstacle No Portal ] -> [snakeleft Red | ... | Obstacle PortalRightB ]\n\nup [ action snakeup Red | ... | Obstacle No Portal ] -> [snakeup Blue | ... | Obstacle PortalDownR ]\nup [ action snakeup Blue | ... | Obstacle No Portal ] -> [snakeup Red | ... | Obstacle PortalDownB ]\n\ndown [ action snakedown Red | ... | Obstacle No Portal ] -> [snakedown Blue | ... | Obstacle PortalupR ]\ndown [ action snakedown Blue | ... | Obstacle No Portal ] -> [snakedown Red | ... | Obstacle PortalupB ]\n\n\n\n[old portalB] [no old portalB] -> [] [portalB]\n[old portalR] [no old portalR] -> [] [portalR]\n[old] -> []\n\n[enter] -> []\n[exit] -> []\n\n[portaltarget]->[]\n\n==============\nWINCONDITIONS\n==============\nno counter\n\n=======\nLEVELS\n=======\n\n\n,,,,,,,\n#######\n#.....#\n#.....#\n#..U..#\n#.....#\n#.....#\n#######\n\n", [1, 1, 2, 2, 3, 0, 4, 3, 3, "restart", 4, 3, 4, 3, 3, 3, 1, "undo", "undo", 3, 0, 2, 1, 1, 2, 4, 2, 3, 4, 3, 3, 3, 3], "background portalmade:0,background wall:1,1,1,1,1,1,\n1,0,1,background floor:2,background floor snakebod:3,3,3,\nbackground floor red snakeup:4,background portalupr wall:5,background counter:6,1,2,3,2,\n3,2,1,6,1,3,3,\nbackground snakebod:7,3,2,1,6,1,2,\n2,3,3,2,1,6,1,\n2,2,3,3,2,1,6,\n1,1,1,1,background portalleftb wall:8,1,1,\n", 0, "1627888906100.3608"] ], [ `increpare game: you complete me`, -["title You Complete Me\nauthor Stephen Lavelle\nhomepage www.increpare.com\nrun_rules_on_level_start\n\nverbose_logging\nnoaction \n\n========\nOBJECTS\n========\n\nBackground \nGREEN \n\nTarget \nDarkBlue \n\nWall \nBROWN\n\nPlayer \nred \n.....\n.000.\n.000.\n.000.\n.....\n\nCrate \nOrange \n\nSUP \ntransparent\n\nSDOWN\ntransparent\n\nSLEFT\ntransparent\n\nSRIGHT\ntransparent\n\nice \nlightblue\n\nfreshice\nblue\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\ni = ice\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nmarker = SUP or SDOWN or SLEFT or SRIGHT\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nice, freshice\nTarget\nPlayer, Wall, Crate\nSUP, SDOWN, SLEFT, SRIGHT\n\n======\nRULES \n====== \n\n[> player | wall] -> cancel\nlate up [SUP] [|player] -> [SUP] [ice|player]\nlate down [SDOWN] [|player] -> [SDOWN] [ice|player]\nlate left [SLEFT] [|player] -> [SLEFT] [ice|player]\nlate right [SRIGHT] [|player] -> [SRIGHT] [ice|player]\n\nup [SUP] [Player ice | no wall ] -> [SUP] [ > Player ice | ] again\ndown [SDOWN] [Player ice | no wall ] -> [SDOWN] [ > Player ice | ] again\nleft [SLEFT] [Player ice | no wall ] -> [SLEFT] [ > Player ice | ] again\nright [SRIGHT] [Player ice | no wall ] -> [SRIGHT] [ > Player ice | ] again\n\n\n[marker]->[]\n\n\n[ > player ] -> [ > player ] again\nup [ > player ] -> [ > player sup ]\ndown [ > player ] -> [ > player sdown ]\nleft [ > player ] -> [ > player sleft ]\nright [ > player ] -> [ > player sright ]\n\n[ stationary player ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\n\n======= \nLEVELS\n=======\n\n###############\n##.#.#.#.#.#.##\n#.............#\n##.#.#.#.#.#.##\n#.............#\n##.#.#.#.#.#.##\n#.............#\n##.#.#.#.#.#.##\n#.............#\n##.#.#.#.#.#.##\n#......p......#\n##.#.#.#.#.#.##\n###############\n",[3,3,3,0,0,1,1,1,1,2,2,3,3,0,0,1,1],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\nbackground:1,0,1,0,1,0,1,0,1,0,0,0,1,1,1,\n1,1,1,1,1,1,1,1,0,0,0,1,0,1,0,\n1,0,1,0,1,0,0,0,1,1,1,1,1,1,1,\n1,1,1,1,0,0,0,1,0,1,0,1,0,background player:2,0,\n1,0,0,0,1,1,1,1,1,1,1,background ice sleft:3,background ice:4,4,1,\n0,0,0,1,0,1,0,1,0,4,0,4,0,0,0,\n1,1,1,1,1,1,1,4,1,4,1,0,0,0,1,\n0,1,0,1,0,4,0,4,0,0,0,1,1,1,1,\n1,1,1,4,4,4,1,0,0,0,1,0,1,0,1,\n0,4,0,4,0,0,0,1,1,1,1,1,1,1,4,\n4,4,1,0,0,0,1,0,1,0,1,0,1,0,1,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",0,"1627888927321.9932"] + ["title You Complete Me\nauthor Stephen Lavelle\nhomepage www.increpare.com\nrun_rules_on_level_start\n\nverbose_logging\nnoaction \n\n========\nOBJECTS\n========\n\nBackground \nGREEN \n\nTarget \nDarkBlue \n\nWall \nBROWN\n\nPlayer \nred \n.....\n.000.\n.000.\n.000.\n.....\n\nCrate \nOrange \n\nSUP \ntransparent\n\nSDOWN\ntransparent\n\nSLEFT\ntransparent\n\nSRIGHT\ntransparent\n\nice \nlightblue\n\nfreshice\nblue\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\ni = ice\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nmarker = SUP or SDOWN or SLEFT or SRIGHT\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nice, freshice\nTarget\nPlayer, Wall, Crate\nSUP, SDOWN, SLEFT, SRIGHT\n\n======\nRULES \n====== \n\n[> player | wall] -> cancel\nlate up [SUP] [|player] -> [SUP] [ice|player]\nlate down [SDOWN] [|player] -> [SDOWN] [ice|player]\nlate left [SLEFT] [|player] -> [SLEFT] [ice|player]\nlate right [SRIGHT] [|player] -> [SRIGHT] [ice|player]\n\nup [SUP] [Player ice | no wall ] -> [SUP] [ > Player ice | ] again\ndown [SDOWN] [Player ice | no wall ] -> [SDOWN] [ > Player ice | ] again\nleft [SLEFT] [Player ice | no wall ] -> [SLEFT] [ > Player ice | ] again\nright [SRIGHT] [Player ice | no wall ] -> [SRIGHT] [ > Player ice | ] again\n\n\n[marker]->[]\n\n\n[ > player ] -> [ > player ] again\nup [ > player ] -> [ > player sup ]\ndown [ > player ] -> [ > player sdown ]\nleft [ > player ] -> [ > player sleft ]\nright [ > player ] -> [ > player sright ]\n\n[ stationary player ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\n\n======= \nLEVELS\n=======\n\n###############\n##.#.#.#.#.#.##\n#.............#\n##.#.#.#.#.#.##\n#.............#\n##.#.#.#.#.#.##\n#.............#\n##.#.#.#.#.#.##\n#.............#\n##.#.#.#.#.#.##\n#......p......#\n##.#.#.#.#.#.##\n###############\n", [3, 3, 3, 0, 0, 1, 1, 1, 1, 2, 2, 3, 3, 0, 0, 1, 1], "background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\nbackground:1,0,1,0,1,0,1,0,1,0,0,0,1,1,1,\n1,1,1,1,1,1,1,1,0,0,0,1,0,1,0,\n1,0,1,0,1,0,0,0,1,1,1,1,1,1,1,\n1,1,1,1,0,0,0,1,0,1,0,1,0,background player:2,0,\n1,0,0,0,1,1,1,1,1,1,1,background ice sleft:3,background ice:4,4,1,\n0,0,0,1,0,1,0,1,0,4,0,4,0,0,0,\n1,1,1,1,1,1,1,4,1,4,1,0,0,0,1,\n0,1,0,1,0,4,0,4,0,0,0,1,1,1,1,\n1,1,1,4,4,4,1,0,0,0,1,0,1,0,1,\n0,4,0,4,0,0,0,1,1,1,1,1,1,1,4,\n4,4,1,0,0,0,1,0,1,0,1,0,1,0,1,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 0, "1627888927321.9932"] ], [ `increpare game: `, -["(\n\tescape snake\n)\n\ntitle 8 Happy Snakes\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nverbose_logging\n\ncolor_palette 1\n\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\ndarkblue\n\nHead\nLightGreen\n\nBody\nGreen\n\nWall\nblue\n\nT\npink\n\ngoodtarget\nwhite\n.....\n.....\n..0..\n.....\n.....\n\ntarget /\nyellow\n.....\n.....\n..0..\n.....\n.....\n\nbadtarget \ngray\n.....\n.....\n..0..\n.....\n.....\n\nVBarrier |\nred\n..0..\n.....\n..0..\n.....\n..0..\n\nHBarrier -\nred\n.....\n.....\n0.0.0\n.....\n.....\n\nHVBarrier +\nred\n..0..\n.....\n0.0.0\n.....\n..0..\n\nCollectable *\norange\n.....\n..0..\n.000.\n..0..\n.....\n\nStarSpawn S\ngray\n.....\n..0..\n.000.\n..0..\n.....\n\n=======\nLEGEND\n=======\n\nBarrier = HBarrier or VBarrier or HVBarrier\n\nPlayer = Head\n\n. = Background\n# = Wall\nP = Player\n\n@ = Player and Target\n\nThing = Wall or Player or Body\n\nworm = head or body\n\n=======\nSOUNDS\n=======\n\ncancel 95340304\nsfx1 78274500\nsfx2 14526700\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nHead, Wall, Body\nstarspawn\nTarget\nT, Barrier, Collectable\ngoodtarget\nbadtarget\n======\nRULES\n======\n\n[badtarget]->[]\n[goodtarget]->[]\n[ > Head | Barrier ] -> cancel\n\n[ > Head | No Thing ] -> [ Body | Head ]\n\n[ > Head | Wall ] [ Body ] -> [ > Head | Wall ] [ < Body ]\n\n[ > Body | Wall ] -> cancel\n\n[ Wall | > Head | Wall ] -> cancel\n\n[ | > Head | Wall ] -> [ T | Head | Wall ]\n\nlate [ T Body ] -> cancel\nlate [ T ] -> [ Body ]\n\nlate [ Collectable Worm ] -> [ Worm ] Sfx1\n\nlate [Starspawn] -> [Starspawn Collectable]\nlate [ worm no target ] [Starspawn Collectable] -> [ worm] [Starspawn]\nlate [ target no worm ] [Starspawn Collectable] -> [ target ] [Starspawn]\n\nlate [starspawn collectable ]->[collectable] sfx2\n\nlate [collectable] [target]->[collectable] []\nlate [collectable] [goodtarget]->[collectable] []\nlate [collectable] [badtarget]->[collectable] []\n\nlate [ worm target ] -> [ worm target goodtarget ]\nlate [ worm no target ] [ target] -> [worm] [target badtarget]\n\n==============\nWINCONDITIONS\n==============\n\nNo Collectable\nno starspawn\n\n=======\nLEVELS\n=======\n\nMessage 1 of 8\n\n#################\n#...............#\n#...............#\n#.......P.......#\n#...............#\n#...............#\n#......*.*......#\n#...............#\n#......*.*......#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\nMessage 2 of 8\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#......@//......#\n#....../S/......#\n#......///......#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\nMessage 3 of 8\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#...../.P.......#\n#...../S........#\n#.....///#......#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\nMessage 4 of 8\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#.......P.///...#\n#........./S/...#\n#........#///...#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\n\nMessage 5 of 8\n\n#################\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.*.......#\n#.....|....P....#\n#.....|.........#\n#..*..|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#################\n\nMessage 6 of 8\n\n#################\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|....P....#\n#.....|.........#\n#..*..|#........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#################\n\nMessage 7 of 8\n###################\n#+---------------+#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.p.......|#\n#|.....|.........|#\n#|..*.#|....#....|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#+---------------+#\n###################\n\n\nMessage 8 of 8\n\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#.......S.......#\n#.....///...#...#\n#...../.@////...#\n#.....///..//...#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n",[3,0,1,1,1,1,2,2,2,1,1,2,3,3,0,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,background:1,1,\n1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,background collectable:2,\n1,1,1,1,0,0,1,1,1,1,1,1,1,background body:3,3,1,1,\n1,0,0,1,1,1,1,3,3,3,3,3,1,1,1,0,0,\nbackground vbarrier:4,4,4,4,background body vbarrier:5,4,4,5,5,4,4,4,0,0,1,1,1,\n1,3,1,1,3,1,1,1,1,0,0,1,1,1,1,3,3,\n1,3,1,1,1,1,0,0,1,1,1,1,3,3,1,3,1,\n1,1,1,0,0,1,1,1,1,1,1,1,3,1,1,1,1,\n0,0,1,1,1,1,1,1,1,3,1,1,1,1,0,0,1,\n1,1,1,1,1,1,3,1,1,1,1,0,0,1,1,1,1,\n1,1,1,3,1,1,1,1,0,0,1,1,1,1,1,1,1,\n3,1,1,1,1,0,0,1,1,1,1,1,1,1,background head:6,1,1,\n1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",9,"1627888950120.6284"] + ["(\n\tescape snake\n)\n\ntitle 8 Happy Snakes\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nverbose_logging\n\ncolor_palette 1\n\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\ndarkblue\n\nHead\nLightGreen\n\nBody\nGreen\n\nWall\nblue\n\nT\npink\n\ngoodtarget\nwhite\n.....\n.....\n..0..\n.....\n.....\n\ntarget /\nyellow\n.....\n.....\n..0..\n.....\n.....\n\nbadtarget \ngray\n.....\n.....\n..0..\n.....\n.....\n\nVBarrier |\nred\n..0..\n.....\n..0..\n.....\n..0..\n\nHBarrier -\nred\n.....\n.....\n0.0.0\n.....\n.....\n\nHVBarrier +\nred\n..0..\n.....\n0.0.0\n.....\n..0..\n\nCollectable *\norange\n.....\n..0..\n.000.\n..0..\n.....\n\nStarSpawn S\ngray\n.....\n..0..\n.000.\n..0..\n.....\n\n=======\nLEGEND\n=======\n\nBarrier = HBarrier or VBarrier or HVBarrier\n\nPlayer = Head\n\n. = Background\n# = Wall\nP = Player\n\n@ = Player and Target\n\nThing = Wall or Player or Body\n\nworm = head or body\n\n=======\nSOUNDS\n=======\n\ncancel 95340304\nsfx1 78274500\nsfx2 14526700\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nHead, Wall, Body\nstarspawn\nTarget\nT, Barrier, Collectable\ngoodtarget\nbadtarget\n======\nRULES\n======\n\n[badtarget]->[]\n[goodtarget]->[]\n[ > Head | Barrier ] -> cancel\n\n[ > Head | No Thing ] -> [ Body | Head ]\n\n[ > Head | Wall ] [ Body ] -> [ > Head | Wall ] [ < Body ]\n\n[ > Body | Wall ] -> cancel\n\n[ Wall | > Head | Wall ] -> cancel\n\n[ | > Head | Wall ] -> [ T | Head | Wall ]\n\nlate [ T Body ] -> cancel\nlate [ T ] -> [ Body ]\n\nlate [ Collectable Worm ] -> [ Worm ] Sfx1\n\nlate [Starspawn] -> [Starspawn Collectable]\nlate [ worm no target ] [Starspawn Collectable] -> [ worm] [Starspawn]\nlate [ target no worm ] [Starspawn Collectable] -> [ target ] [Starspawn]\n\nlate [starspawn collectable ]->[collectable] sfx2\n\nlate [collectable] [target]->[collectable] []\nlate [collectable] [goodtarget]->[collectable] []\nlate [collectable] [badtarget]->[collectable] []\n\nlate [ worm target ] -> [ worm target goodtarget ]\nlate [ worm no target ] [ target] -> [worm] [target badtarget]\n\n==============\nWINCONDITIONS\n==============\n\nNo Collectable\nno starspawn\n\n=======\nLEVELS\n=======\n\nMessage 1 of 8\n\n#################\n#...............#\n#...............#\n#.......P.......#\n#...............#\n#...............#\n#......*.*......#\n#...............#\n#......*.*......#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\nMessage 2 of 8\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#......@//......#\n#....../S/......#\n#......///......#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\nMessage 3 of 8\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#...../.P.......#\n#...../S........#\n#.....///#......#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\nMessage 4 of 8\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#.......P.///...#\n#........./S/...#\n#........#///...#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\n\nMessage 5 of 8\n\n#################\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.*.......#\n#.....|....P....#\n#.....|.........#\n#..*..|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#################\n\nMessage 6 of 8\n\n#################\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|....P....#\n#.....|.........#\n#..*..|#........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#################\n\nMessage 7 of 8\n###################\n#+---------------+#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.p.......|#\n#|.....|.........|#\n#|..*.#|....#....|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#+---------------+#\n###################\n\n\nMessage 8 of 8\n\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#.......S.......#\n#.....///...#...#\n#...../.@////...#\n#.....///..//...#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n", [3, 0, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 3, 3, 0, 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,background:1,1,\n1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,background collectable:2,\n1,1,1,1,0,0,1,1,1,1,1,1,1,background body:3,3,1,1,\n1,0,0,1,1,1,1,3,3,3,3,3,1,1,1,0,0,\nbackground vbarrier:4,4,4,4,background body vbarrier:5,4,4,5,5,4,4,4,0,0,1,1,1,\n1,3,1,1,3,1,1,1,1,0,0,1,1,1,1,3,3,\n1,3,1,1,1,1,0,0,1,1,1,1,3,3,1,3,1,\n1,1,1,0,0,1,1,1,1,1,1,1,3,1,1,1,1,\n0,0,1,1,1,1,1,1,1,3,1,1,1,1,0,0,1,\n1,1,1,1,1,1,3,1,1,1,1,0,0,1,1,1,1,\n1,1,1,3,1,1,1,1,0,0,1,1,1,1,1,1,1,\n3,1,1,1,1,0,0,1,1,1,1,1,1,1,background head:6,1,1,\n1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 9, "1627888950120.6284"] ], [ `increpare game: happy kraken`, -["\n(\n\tSteps: \n \t- correctly draw selected hand\n \t- move selected hand and \n - move hand and create correct snake behind it\n \t- propagate power along arms at the start of each turn (as a late evaluation?)\n\t\t- action to select hand\n)\n\ntitle Hungry Kraken\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnorepeat_action\n\nverbose_logging\n\n========\nOBJECTS\n========\n\ndarkbrown 1\ndarkbrown\n\nbrown 2\nbrown\n\nwhite 3\nwhite\n\nred 4\nred\n\ngray 5\ngray\n\ndarkgray 6\ndarkgray\n\nblue 7\nblue\n\nblack 8\nblack\n\nBackground \ndarkblue black\n00000\n00000\n00000\n00000\n00000\n\nblackwall +\nblack\n\ntopbrownWall =\ndarkbrown brown\n11111\n01000\n00000\n00010\n00000\n\n\nbrownWall \ndarkBROWN brown\n00000\n01000\n00000\n00010\n00000\n\nSelected\nred\n\nActivate\npurple\n\nNutrient E\ngreen\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nPlant P\ngray darkgray\n.000.\n01010\n01010\n.000.\n.111.\n\nFish *\ngray blue\n.....\n..0.0\n.010.\n..0.0\n.....\n\nMouth M\nred grey\n.....\n.....\n..0..\n.000.\n.000.\n\nBody \ngray white red red gray\n02120\n02120\n04440\n01310\n00000\n\nSHandU\nwhite yellow black\n.111.\n10001\n10101\n10101\n10101\n\nSHandD\nwhite yellow black\n10101\n10101\n10101\n10001\n.111.\n\nSHandL\nwhite yellow black\n.1111\n10000\n10111\n10000\n.1111\n\nSHandR\nwhite yellow black\n1111.\n00001\n11101\n00001\n1111.\n\n\n\nHandU\nwhite gray black\n.111.\n10001\n10101\n10101\n10101\n\nHandD\nwhite gray black\n10101\n10101\n10101\n10001\n.111.\n\nHandL\nwhite gray black\n.1111\n10000\n10111\n10000\n.1111\n\nHandR\nwhite gray black\n1111.\n00001\n11101\n00001\n1111.\n\n\n\nIHandU\ntransparent yellow black\n.111.\n10001\n10101\n10101\n22222\n\nIHandD\ntransparent yellow black\n22222\n10101\n10101\n10001\n.111.\n\nIHandL\ntransparent yellow black\n.1112\n10002\n10112\n10002\n.1112\n\nIHandR\ntransparent yellow black\n2111.\n20001\n21101\n20001\n2111.\n\n\n\nArmH \ngray white\n.....\n00000\n11111\n00000\n.....\n\nArmV \ngray white\n.010.\n.010.\n.010.\n.010.\n.010.\n\nArmDR\ngray white\n.....\n...00\n..011\n.0100\n.010.\n\nArmDL\ngray white\n.....\n00...\n110..\n0010.\n.010.\n\nArmUR\ngray white\n.010.\n.0100\n..011\n...00\n.....\n\nArmUL\ngray white\n.010.\n0010.\n110..\n00...\n.....\n\n\n\n\nIArmH \nblack transparent\n.....\n00000\n11111\n00000\n.....\n\nIArmV \nblack transparent\n.010.\n.010.\n.010.\n.010.\n.010.\n\nIArmDR\nblack transparent\n.....\n.0000\n.0111\n.0100\n.010.\n\nIArmDL\nblack transparent\n.....\n0000.\n1110.\n0010.\n.010.\n\nIArmUR\nblack transparent\n.010.\n.0100\n.0111\n.0000\n.....\n\nIArmUL\nblack transparent\n.010.\n0010.\n1110.\n0000.\n.....\n\nT1\nred\n\nT_Slurp\nblue\n\nT_Grow\nyellow\n\nT_HandExtendToken\ngray\n\nT_Nutrient\npurple\n\nMARKER\nyellow yellow\n11111\n1...1\n1...1\n1...1\n11111\n\n=======\nLEGEND\n=======\n\nFood = Fish or Plant \nSelectedHand = SHandU or SHandD or SHandL or SHandR\nActiveHand = HandU or HandD or HandL or HandR\nInactiveHand = IHandU or IHandD or IHandL or IHandR\n\nOtherHand = ActiveHand\n\nHand = ActiveHand or InactiveHand or SelectedHand\n\nActiveArm = ArmH or ArmV or ArmDR or ArmDL or ArmUR or ArmUL or ArmDR or ArmDL\nInactiveArm = IArmH or IArmV or IArmDR or IArmDL or IArmUR or IArmUL or IArmDR or IArmDL\nArm = ActiveArm or InactiveArm\n\n\nNBArmOpening_U = ArmV or ArmUR or ArmUL\nNBArmOpening_D = ArmV or ArmDR or ArmDL\nNBArmOpening_R = ArmH or ArmDR or ArmUR \nNBArmOpening_L = ArmH or ArmDL or ArmUL \n\nArmOpening_U = ArmV or ArmUR or ArmUL\nArmOpening_D = ArmV or ArmDR or ArmDL\nArmOpening_R = ArmH or ArmDR or ArmUR or Body\nArmOpening_L = ArmH or ArmDL or ArmUL or Body\n\nOpening_D = HandD or ArmV or ArmDR or ArmDL\nOpening_U = HandU or ArmV or ArmUR or ArmUL\nOpening_L = HandR or ArmH or ArmDL or ArmUL or BODY\nOpening_R = HandL or ArmH or ArmDR or ArmUR or Body\n\nLimb = Hand or Arm or Body\n\n. = Background\n# = brownWall\n\nB = Body\nU = HandU\nD = HandD\nL = HandL\nR = HandR\n\n| = ArmV\n- = ArmH\n┌ = ArmDR \n┐ = ArmDL\n└ = ArmUR\n┘ = ArmUL\n\n_ = IArmH\n\nS = SHandL\n\nwall = brownwall or blackwall or topbrownwall\n\nPlayer = SHandU or SHandD or SHandL or SHandR \n\nPushable = Hand or Arm or Food or Plant or Nutrient\n\nObstacle = Body or Wall\n\nOtherhandAction = T_Slurp or T_Grow\n\nFallable = Plant\n\nthing = limb or wall or plant or fish or Nutrient\n\n=======\nSOUNDS\n=======\n\nsfx1 63819707\nsfx2 63819707\nsfx3 68238307\ncancel 20601507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSelected\nActivate \nM\nWall, blackwall, Limb, Food, Plant\nNutrient\nT1\nT_Slurp\nT_Grow\nT_HandExtendToken\nT_Nutrient\nMarker\n1,2,3,4,5,6,7,8\n\n======\nRULES \n====== \n\ndown [ no wall | wall ] -> [ | topbrownwall ] \n(nutrient gobbling with selected hand)\n\nUp [ > SHandU | Nutrient ] -> [ ArmV | SHandU ]\nUp [ > SHandR | Nutrient ] -> [ ArmUL | SHandU ]\nUp [ > SHandL | Nutrient ] -> [ ArmUR | SHandU ]\n\nDown [ > SHandD | Nutrient ] -> [ ArmV | SHandD ]\nDown [ > SHandR | Nutrient ] -> [ ArmDL | SHandD ]\nDown [ > SHandL | Nutrient ] -> [ ArmDR | SHandD ]\n\nRight [ > SHandR | Nutrient ] -> [ ArmH | SHandR ]\nRight [ > SHandU | Nutrient ] -> [ ArmDR | SHandR ]\nRight [ > SHandD | Nutrient ] -> [ ArmUR | SHandR ]\n\nLeft [ > SHandL | Nutrient ] -> [ ArmH | SHandL ]\nLeft [ > SHandU | Nutrient ] -> [ ArmDL | SHandL ]\nLeft [ > SHandD | Nutrient ] -> [ ArmUL | SHandL ]\n\n\nup [ food mouth ] [ HandU | thing ] -> [ mouth ] [ HandU | > thing ]\ndown [ food mouth ] [ HandD | thing ] -> [ mouth ] [ HandD | > thing ]\nleft [ food mouth ] [ HandL | thing ] -> [ mouth ] [ HandL | > thing ]\nright [ food mouth ] [ HandR | thing ] -> [ mouth ] [ HandR | > thing ]\n\nup [ food mouth ] [ HandU | no thing ] -> [ mouth ] [ ArmV | HandU ] sfx2\ndown [ food mouth ] [ HandD | no thing ] -> [ mouth ] [ ArmV | HandD ] sfx2\nleft [ food mouth ] [ HandL | no thing ] -> [ mouth ] [ ArmH | HandL ] sfx2\nright [ food mouth ] [ HandR | no thing ] -> [ mouth ] [ ArmH | HandR ] sfx2\n\n\n(tell other hand whether to slurp or grow)\n\n[ moving SHandU ] [ stationary Hand ] -> [ moving SHandU ] [ T_Slurp Hand ]\n(override above)\n[ down SHandU ] [ Stationary Hand ] -> [ down SHandU ] [ T_Grow no T_Slurp Hand ]\n\n[ moving SHandD ] [ stationary Hand ] -> [ moving SHandD ] [ T_Slurp Hand ]\n(override above)\n[ up SHandD ] [ Stationary Hand ] -> [ up SHandD ] [ T_Grow no T_Slurp Hand ]\n\n[ moving SHandL ] [ stationary Hand ] -> [ moving SHandL ] [ T_Slurp Hand ]\n(override above)\n [ right SHandL ] [ Stationary Hand ] -> [ right SHandL ] [ T_Grow no T_Slurp Hand ]\n\n[ moving SHandR ] [ stationary Hand ] -> [ moving SHandR ] [ T_Slurp Hand ]\n(override above)\n[ left SHandR ] [ Stationary Hand ] -> [ left SHandR ] [ T_Grow no T_Slurp Hand ]\n\n[ T_Slurp ] [ SelectedHand ] -> [ T_Slurp ] [ SelectedHand T_HandExtendToken ]\n[ > SelectedHand T_HandExtendToken ] -> [ > SelectedHand > T_HandExtendToken ]\n\n(nutrient gobbling with off-hand)\n\nUp [T_Grow] [ HandU | Nutrient ] [moving player] -> [] [ ArmV | HandU ] [player]\n\nDown [T_Grow] [ HandD | Nutrient ] [moving player] -> [] [ ArmV | HandD ] [player]\n\nRight [T_Grow] [ HandR | Nutrient ] [moving player] -> [] [ ArmH | HandR ] [player]\n\nLeft [T_Grow] [ HandL | Nutrient ] [moving player] -> [] [ ArmH | HandL ] [player]\n\n(mark hand action with direction hand moved from here)\n[ moving OtherHand OtherHandAction ] -> [ moving OtherHand moving OtherHandAction ]\n\n(swap hands)\n[ action SHandU ] [ stationary Hand ] -> [ HandU ] [ T1 Hand] \n[ action SHandD ] [ stationary Hand ] -> [ HandD ] [ T1 Hand] \n[ action SHandL ] [ stationary Hand ] -> [ HandL ] [ T1 Hand] \n[ action SHandR ] [ stationary Hand ] -> [ HandR ] [ T1 Hand] \n\n[T1 HandU] -> [ SHandU]\n[T1 HandD] -> [ SHandD]\n[T1 HandL] -> [ SHandL]\n[T1 HandR] -> [ SHandR]\n\n\n[T_Slurp] [ up SelectedHand ] -> [T_Slurp] [ up SHandU ]\n[T_Slurp] [ down SelectedHand ] -> [T_Slurp] [ down SHandD ]\n[T_Slurp] [ left SelectedHand ] -> [T_Slurp] [ left SHandL ]\n[T_Slurp] [ right SelectedHand ] -> [T_Slurp] [ right SHandR ]\n\n\n(you can't retract into your body)\nup [T_Grow] [ up SelectedHand | Body ] -> cancel\ndown [T_Grow] [ down SelectedHand | Body ] -> cancel\nleft [T_Grow] [ left SelectedHand | Body ] -> cancel\nright [T_Grow] [ right SelectedHand | Body ] -> cancel\n\n(you can't grow if the other hand is beside the body)\nright [ T_Slurp HandL | Body ] -> cancel\nleft [ T_Slurp HandR | Body ] -> cancel\n\n(retracting the active hand)\n\nup [T_Grow] [ up SelectedHand | Opening_L ] -> [T_Grow] [ | SHandR]\nup [T_Grow] [ up SelectedHand | Opening_U ] -> [T_Grow] [ | SHandD]\nup [T_Grow] [ up SelectedHand | Opening_R ] -> [T_Grow] [ | SHandL]\n\ndown [T_Grow] [ down SelectedHand | Opening_L ] -> [T_Grow] [ | SHandR]\ndown [T_Grow] [ down SelectedHand | Opening_R ] -> [T_Grow] [ | SHandL]\ndown [T_Grow] [ down SelectedHand | Opening_D ] -> [T_Grow] [ | SHandU]\n\nleft [T_Grow] [ left SelectedHand | Opening_L ] -> [T_Grow] [ | SHandR]\nleft [T_Grow] [ left SelectedHand | Opening_U ] -> [T_Grow] [ | SHandD]\nleft [T_Grow] [ left SelectedHand | Opening_D ] -> [T_Grow] [ | SHandU]\n\nright [T_Grow] [ right SelectedHand | Opening_U ] -> [T_Grow] [ | SHandD]\nright [T_Grow] [ right SelectedHand | Opening_R ] -> [T_Grow] [ | SHandL]\nright [T_Grow] [ right SelectedHand | Opening_D ] -> [T_Grow] [ | SHandU]\n\nup [ T_Grow HandU ] -> [ T_Grow up HandU ]\nup [ T_Grow HandD ] -> [ T_Grow down HandD ]\nup [ T_Grow HandL ] -> [ T_Grow left HandL ]\nup [ T_Grow HandR ] -> [ T_Grow right HandR ]\n\n(slurp other hand)\n\ndown [T_Slurp HandU | ] -> [ | up T_Slurp ]\nup [T_Slurp HandD | ] -> [ | down T_Slurp ]\nleft [T_Slurp HandR | ] -> [ | right T_Slurp ]\nright [T_Slurp HandL | ] -> [ | left T_Slurp ]\n\ndown [ up T_slurp | ArmOpening_U ] -> [ HandU | ArmOpening_U ]\nleft [ up T_Slurp | ArmOpening_R ] -> [ HandR | ArmOpening_R ]\nright [ up T_Slurp | ArmOpening_L ] -> [ HandL | ArmOpening_L ]\n\nup [ down T_slurp | ArmOpening_D ] -> [ HandD | ArmOpening_D ]\nleft [ down T_Slurp | ArmOpening_R ] -> [ HandR | ArmOpening_R ]\nright [ down T_Slurp | ArmOpening_L ] -> [ HandL | ArmOpening_L ]\n\nleft [ right T_slurp | ArmOpening_r ] -> [ HandR | ArmOpening_R ]\nup [ right T_slurp | ArmOpening_D ] -> [ HandD | ArmOpening_D ]\ndown [ right T_slurp | ArmOpening_U ] -> [ HandU | ArmOpening_U ]\n\n\nright [ left T_slurp | ArmOpening_l ] -> [ HandL | ArmOpening_L ]\nup [ left T_slurp | ArmOpening_D ] -> [ HandD | ArmOpening_D ]\ndown [ left T_slurp | ArmOpening_U ] -> [ HandU | ArmOpening_U ]\n\n(propagate movements)\n\n\n[ > Pushable | Pushable ] -> [ > Pushable | > Pushable ]\n\n[ > Pushable | Limb ] -> cancel\n\n[ > Pushable | Obstacle ] -> cancel\n\n[ > fish ] -> [ > fish] sfx3\n[ > plant ] -> [ > plant] sfx3\n\n[ no T_Grow > Pushable | no Pushable ] -> [ | Pushable ]\n+ right [ T_Grow right Pushable | no Pushable ] -> [ ArmH | Pushable ]\n+ left [ T_Grow left Pushable | no Pushable ] -> [ ArmH | Pushable ]\n+ up [ T_Grow up Pushable | no Pushable ] -> [ ArmV | Pushable ]\n+ down [ T_Grow down Pushable | no Pushable ] -> [ ArmV | Pushable ]\n\n\n(growing the selected hand, getting arm to match up)\n\nright [ up T_HandExtendToken | ArmOpening_L ] -> [ ArmUR | ArmOpening_L ]\nleft [ up T_HandExtendToken | ArmOpening_R ] -> [ ArmUL | ArmOpening_R ]\ndown [ up T_HandExtendToken | ArmOpening_U ] -> [ ArmV | ArmOpening_U ]\n\nright [ down T_HandExtendToken | ArmOpening_L ] -> [ ArmDR | ArmOpening_L ]\nleft [ down T_HandExtendToken | ArmOpening_R ] -> [ ArmDL | ArmOpening_R ]\nup [ down T_HandExtendToken | ArmOpening_D ] -> [ ArmV | ArmOpening_D ]\n\nright [ left T_HandExtendToken | ArmOpening_L ] -> [ ArmH | ArmOpening_L ]\nup [ left T_HandExtendToken | ArmOpening_D ] -> [ ArmUL | ArmOpening_D ]\ndown [ left T_HandExtendToken | ArmOpening_U ] -> [ ArmDL | ArmOpening_U ]\n\nup [ right T_HandExtendToken | ArmOpening_D ] -> [ ArmUR | ArmOpening_D ]\nleft [ right T_HandExtendToken | ArmOpening_R ] -> [ ArmH | ArmOpening_R ]\ndown [ right T_HandExtendToken | ArmOpening_U ] -> [ ArmDR | ArmOpening_U ]\n\n\nrandom down [ Fallable | no thing ] -> [ | Fallable ] sfx1 again\n\n\n[ moving Pushable ] -> [ Pushable ]\n[T_Slurp]->[]\n[T_Grow]->[]\n[T_HandExtendToken]->[]\n[ Food Mouth ] -> again\n\n==============\nWINCONDITIONS\n==============\n\nno Food \nsome body\n\n======= \nLEVELS\n=======\n\nMessage press X to switch tentacles\n\n++++++++++++++++++++++++\n+.........P............+\n+.........P............+\n+.........P............+\n+.........P............+\n+.........P............+\n+.........P............+\n+.........P............+\n+.........#............+\n+......................+\n+...P..................+\n+...#.......*..........+\n+...#..P....#..........+\n+...##.#.*.M#..........+\n+.......S--B--R........+\n+..........*...........+\n+......................+\n+.........#*#..........+\n+......................+\n+....................*.+\n+......................+\n+................P.....+\n+................#.....+\n+................#.....+\n+######################+\n\nMessage NOM NOM NOM\n\n...........................\n.....55..555...............\n....555.55555..............\n...5....55555........555...\n...5.....555...6...555.55..\n..5......666.6666.55....55.\n..5..........676..55.....5.\n..5...........66.........5.\n..5........44............5.\n..5........444..........55.\n..5.........44..........5..\n...5........44..........5..\n...55.....54445.......55...\n....55...5544455....555....\n.....5...55444555..55......\n......5555555555555........\n.........55355355..........\n.........55555555.....1111.\n111........5555.......11111\n111111.........1.1111111111\n1111111111...11111111111111\n111888181818811881881188111\n111181188818111811818181811\n111181181818811881818188111\n111111111111111111111111111\n",[0,3,3,1,2,3,0,3,0,0,3,2,2,1,1,0,1,3,2,3,2],"background blackwall: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,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,background topbrownwall:2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,2,0,1,1,1,1,1,1,1,1,1,background plant:3,2,background brownwall:4,4,1,1,1,1,1,1,\n1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,\n1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,3,2,0,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,\n1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,background shandl:5,\n1,1,1,1,1,1,1,1,1,2,0,3,3,3,3,3,3,3,2,1,1,1,1,1,\narmh background:6,1,1,2,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,\nbackground mouth:7,background body:8,background fish:9,1,9,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,9,\n2,4,6,1,1,2,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,\n1,1,1,6,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,6,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,background handr:10,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,4,4,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,1,1,1,1,2,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,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,\n",1,"1627888997152.3042"] + ["\n(\n\tSteps: \n \t- correctly draw selected hand\n \t- move selected hand and \n - move hand and create correct snake behind it\n \t- propagate power along arms at the start of each turn (as a late evaluation?)\n\t\t- action to select hand\n)\n\ntitle Hungry Kraken\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnorepeat_action\n\nverbose_logging\n\n========\nOBJECTS\n========\n\ndarkbrown 1\ndarkbrown\n\nbrown 2\nbrown\n\nwhite 3\nwhite\n\nred 4\nred\n\ngray 5\ngray\n\ndarkgray 6\ndarkgray\n\nblue 7\nblue\n\nblack 8\nblack\n\nBackground \ndarkblue black\n00000\n00000\n00000\n00000\n00000\n\nblackwall +\nblack\n\ntopbrownWall =\ndarkbrown brown\n11111\n01000\n00000\n00010\n00000\n\n\nbrownWall \ndarkBROWN brown\n00000\n01000\n00000\n00010\n00000\n\nSelected\nred\n\nActivate\npurple\n\nNutrient E\ngreen\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nPlant P\ngray darkgray\n.000.\n01010\n01010\n.000.\n.111.\n\nFish *\ngray blue\n.....\n..0.0\n.010.\n..0.0\n.....\n\nMouth M\nred grey\n.....\n.....\n..0..\n.000.\n.000.\n\nBody \ngray white red red gray\n02120\n02120\n04440\n01310\n00000\n\nSHandU\nwhite yellow black\n.111.\n10001\n10101\n10101\n10101\n\nSHandD\nwhite yellow black\n10101\n10101\n10101\n10001\n.111.\n\nSHandL\nwhite yellow black\n.1111\n10000\n10111\n10000\n.1111\n\nSHandR\nwhite yellow black\n1111.\n00001\n11101\n00001\n1111.\n\n\n\nHandU\nwhite gray black\n.111.\n10001\n10101\n10101\n10101\n\nHandD\nwhite gray black\n10101\n10101\n10101\n10001\n.111.\n\nHandL\nwhite gray black\n.1111\n10000\n10111\n10000\n.1111\n\nHandR\nwhite gray black\n1111.\n00001\n11101\n00001\n1111.\n\n\n\nIHandU\ntransparent yellow black\n.111.\n10001\n10101\n10101\n22222\n\nIHandD\ntransparent yellow black\n22222\n10101\n10101\n10001\n.111.\n\nIHandL\ntransparent yellow black\n.1112\n10002\n10112\n10002\n.1112\n\nIHandR\ntransparent yellow black\n2111.\n20001\n21101\n20001\n2111.\n\n\n\nArmH \ngray white\n.....\n00000\n11111\n00000\n.....\n\nArmV \ngray white\n.010.\n.010.\n.010.\n.010.\n.010.\n\nArmDR\ngray white\n.....\n...00\n..011\n.0100\n.010.\n\nArmDL\ngray white\n.....\n00...\n110..\n0010.\n.010.\n\nArmUR\ngray white\n.010.\n.0100\n..011\n...00\n.....\n\nArmUL\ngray white\n.010.\n0010.\n110..\n00...\n.....\n\n\n\n\nIArmH \nblack transparent\n.....\n00000\n11111\n00000\n.....\n\nIArmV \nblack transparent\n.010.\n.010.\n.010.\n.010.\n.010.\n\nIArmDR\nblack transparent\n.....\n.0000\n.0111\n.0100\n.010.\n\nIArmDL\nblack transparent\n.....\n0000.\n1110.\n0010.\n.010.\n\nIArmUR\nblack transparent\n.010.\n.0100\n.0111\n.0000\n.....\n\nIArmUL\nblack transparent\n.010.\n0010.\n1110.\n0000.\n.....\n\nT1\nred\n\nT_Slurp\nblue\n\nT_Grow\nyellow\n\nT_HandExtendToken\ngray\n\nT_Nutrient\npurple\n\nMARKER\nyellow yellow\n11111\n1...1\n1...1\n1...1\n11111\n\n=======\nLEGEND\n=======\n\nFood = Fish or Plant \nSelectedHand = SHandU or SHandD or SHandL or SHandR\nActiveHand = HandU or HandD or HandL or HandR\nInactiveHand = IHandU or IHandD or IHandL or IHandR\n\nOtherHand = ActiveHand\n\nHand = ActiveHand or InactiveHand or SelectedHand\n\nActiveArm = ArmH or ArmV or ArmDR or ArmDL or ArmUR or ArmUL or ArmDR or ArmDL\nInactiveArm = IArmH or IArmV or IArmDR or IArmDL or IArmUR or IArmUL or IArmDR or IArmDL\nArm = ActiveArm or InactiveArm\n\n\nNBArmOpening_U = ArmV or ArmUR or ArmUL\nNBArmOpening_D = ArmV or ArmDR or ArmDL\nNBArmOpening_R = ArmH or ArmDR or ArmUR \nNBArmOpening_L = ArmH or ArmDL or ArmUL \n\nArmOpening_U = ArmV or ArmUR or ArmUL\nArmOpening_D = ArmV or ArmDR or ArmDL\nArmOpening_R = ArmH or ArmDR or ArmUR or Body\nArmOpening_L = ArmH or ArmDL or ArmUL or Body\n\nOpening_D = HandD or ArmV or ArmDR or ArmDL\nOpening_U = HandU or ArmV or ArmUR or ArmUL\nOpening_L = HandR or ArmH or ArmDL or ArmUL or BODY\nOpening_R = HandL or ArmH or ArmDR or ArmUR or Body\n\nLimb = Hand or Arm or Body\n\n. = Background\n# = brownWall\n\nB = Body\nU = HandU\nD = HandD\nL = HandL\nR = HandR\n\n| = ArmV\n- = ArmH\n┌ = ArmDR \n┐ = ArmDL\n└ = ArmUR\n┘ = ArmUL\n\n_ = IArmH\n\nS = SHandL\n\nwall = brownwall or blackwall or topbrownwall\n\nPlayer = SHandU or SHandD or SHandL or SHandR \n\nPushable = Hand or Arm or Food or Plant or Nutrient\n\nObstacle = Body or Wall\n\nOtherhandAction = T_Slurp or T_Grow\n\nFallable = Plant\n\nthing = limb or wall or plant or fish or Nutrient\n\n=======\nSOUNDS\n=======\n\nsfx1 63819707\nsfx2 63819707\nsfx3 68238307\ncancel 20601507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSelected\nActivate \nM\nWall, blackwall, Limb, Food, Plant\nNutrient\nT1\nT_Slurp\nT_Grow\nT_HandExtendToken\nT_Nutrient\nMarker\n1,2,3,4,5,6,7,8\n\n======\nRULES \n====== \n\ndown [ no wall | wall ] -> [ | topbrownwall ] \n(nutrient gobbling with selected hand)\n\nUp [ > SHandU | Nutrient ] -> [ ArmV | SHandU ]\nUp [ > SHandR | Nutrient ] -> [ ArmUL | SHandU ]\nUp [ > SHandL | Nutrient ] -> [ ArmUR | SHandU ]\n\nDown [ > SHandD | Nutrient ] -> [ ArmV | SHandD ]\nDown [ > SHandR | Nutrient ] -> [ ArmDL | SHandD ]\nDown [ > SHandL | Nutrient ] -> [ ArmDR | SHandD ]\n\nRight [ > SHandR | Nutrient ] -> [ ArmH | SHandR ]\nRight [ > SHandU | Nutrient ] -> [ ArmDR | SHandR ]\nRight [ > SHandD | Nutrient ] -> [ ArmUR | SHandR ]\n\nLeft [ > SHandL | Nutrient ] -> [ ArmH | SHandL ]\nLeft [ > SHandU | Nutrient ] -> [ ArmDL | SHandL ]\nLeft [ > SHandD | Nutrient ] -> [ ArmUL | SHandL ]\n\n\nup [ food mouth ] [ HandU | thing ] -> [ mouth ] [ HandU | > thing ]\ndown [ food mouth ] [ HandD | thing ] -> [ mouth ] [ HandD | > thing ]\nleft [ food mouth ] [ HandL | thing ] -> [ mouth ] [ HandL | > thing ]\nright [ food mouth ] [ HandR | thing ] -> [ mouth ] [ HandR | > thing ]\n\nup [ food mouth ] [ HandU | no thing ] -> [ mouth ] [ ArmV | HandU ] sfx2\ndown [ food mouth ] [ HandD | no thing ] -> [ mouth ] [ ArmV | HandD ] sfx2\nleft [ food mouth ] [ HandL | no thing ] -> [ mouth ] [ ArmH | HandL ] sfx2\nright [ food mouth ] [ HandR | no thing ] -> [ mouth ] [ ArmH | HandR ] sfx2\n\n\n(tell other hand whether to slurp or grow)\n\n[ moving SHandU ] [ stationary Hand ] -> [ moving SHandU ] [ T_Slurp Hand ]\n(override above)\n[ down SHandU ] [ Stationary Hand ] -> [ down SHandU ] [ T_Grow no T_Slurp Hand ]\n\n[ moving SHandD ] [ stationary Hand ] -> [ moving SHandD ] [ T_Slurp Hand ]\n(override above)\n[ up SHandD ] [ Stationary Hand ] -> [ up SHandD ] [ T_Grow no T_Slurp Hand ]\n\n[ moving SHandL ] [ stationary Hand ] -> [ moving SHandL ] [ T_Slurp Hand ]\n(override above)\n [ right SHandL ] [ Stationary Hand ] -> [ right SHandL ] [ T_Grow no T_Slurp Hand ]\n\n[ moving SHandR ] [ stationary Hand ] -> [ moving SHandR ] [ T_Slurp Hand ]\n(override above)\n[ left SHandR ] [ Stationary Hand ] -> [ left SHandR ] [ T_Grow no T_Slurp Hand ]\n\n[ T_Slurp ] [ SelectedHand ] -> [ T_Slurp ] [ SelectedHand T_HandExtendToken ]\n[ > SelectedHand T_HandExtendToken ] -> [ > SelectedHand > T_HandExtendToken ]\n\n(nutrient gobbling with off-hand)\n\nUp [T_Grow] [ HandU | Nutrient ] [moving player] -> [] [ ArmV | HandU ] [player]\n\nDown [T_Grow] [ HandD | Nutrient ] [moving player] -> [] [ ArmV | HandD ] [player]\n\nRight [T_Grow] [ HandR | Nutrient ] [moving player] -> [] [ ArmH | HandR ] [player]\n\nLeft [T_Grow] [ HandL | Nutrient ] [moving player] -> [] [ ArmH | HandL ] [player]\n\n(mark hand action with direction hand moved from here)\n[ moving OtherHand OtherHandAction ] -> [ moving OtherHand moving OtherHandAction ]\n\n(swap hands)\n[ action SHandU ] [ stationary Hand ] -> [ HandU ] [ T1 Hand] \n[ action SHandD ] [ stationary Hand ] -> [ HandD ] [ T1 Hand] \n[ action SHandL ] [ stationary Hand ] -> [ HandL ] [ T1 Hand] \n[ action SHandR ] [ stationary Hand ] -> [ HandR ] [ T1 Hand] \n\n[T1 HandU] -> [ SHandU]\n[T1 HandD] -> [ SHandD]\n[T1 HandL] -> [ SHandL]\n[T1 HandR] -> [ SHandR]\n\n\n[T_Slurp] [ up SelectedHand ] -> [T_Slurp] [ up SHandU ]\n[T_Slurp] [ down SelectedHand ] -> [T_Slurp] [ down SHandD ]\n[T_Slurp] [ left SelectedHand ] -> [T_Slurp] [ left SHandL ]\n[T_Slurp] [ right SelectedHand ] -> [T_Slurp] [ right SHandR ]\n\n\n(you can't retract into your body)\nup [T_Grow] [ up SelectedHand | Body ] -> cancel\ndown [T_Grow] [ down SelectedHand | Body ] -> cancel\nleft [T_Grow] [ left SelectedHand | Body ] -> cancel\nright [T_Grow] [ right SelectedHand | Body ] -> cancel\n\n(you can't grow if the other hand is beside the body)\nright [ T_Slurp HandL | Body ] -> cancel\nleft [ T_Slurp HandR | Body ] -> cancel\n\n(retracting the active hand)\n\nup [T_Grow] [ up SelectedHand | Opening_L ] -> [T_Grow] [ | SHandR]\nup [T_Grow] [ up SelectedHand | Opening_U ] -> [T_Grow] [ | SHandD]\nup [T_Grow] [ up SelectedHand | Opening_R ] -> [T_Grow] [ | SHandL]\n\ndown [T_Grow] [ down SelectedHand | Opening_L ] -> [T_Grow] [ | SHandR]\ndown [T_Grow] [ down SelectedHand | Opening_R ] -> [T_Grow] [ | SHandL]\ndown [T_Grow] [ down SelectedHand | Opening_D ] -> [T_Grow] [ | SHandU]\n\nleft [T_Grow] [ left SelectedHand | Opening_L ] -> [T_Grow] [ | SHandR]\nleft [T_Grow] [ left SelectedHand | Opening_U ] -> [T_Grow] [ | SHandD]\nleft [T_Grow] [ left SelectedHand | Opening_D ] -> [T_Grow] [ | SHandU]\n\nright [T_Grow] [ right SelectedHand | Opening_U ] -> [T_Grow] [ | SHandD]\nright [T_Grow] [ right SelectedHand | Opening_R ] -> [T_Grow] [ | SHandL]\nright [T_Grow] [ right SelectedHand | Opening_D ] -> [T_Grow] [ | SHandU]\n\nup [ T_Grow HandU ] -> [ T_Grow up HandU ]\nup [ T_Grow HandD ] -> [ T_Grow down HandD ]\nup [ T_Grow HandL ] -> [ T_Grow left HandL ]\nup [ T_Grow HandR ] -> [ T_Grow right HandR ]\n\n(slurp other hand)\n\ndown [T_Slurp HandU | ] -> [ | up T_Slurp ]\nup [T_Slurp HandD | ] -> [ | down T_Slurp ]\nleft [T_Slurp HandR | ] -> [ | right T_Slurp ]\nright [T_Slurp HandL | ] -> [ | left T_Slurp ]\n\ndown [ up T_slurp | ArmOpening_U ] -> [ HandU | ArmOpening_U ]\nleft [ up T_Slurp | ArmOpening_R ] -> [ HandR | ArmOpening_R ]\nright [ up T_Slurp | ArmOpening_L ] -> [ HandL | ArmOpening_L ]\n\nup [ down T_slurp | ArmOpening_D ] -> [ HandD | ArmOpening_D ]\nleft [ down T_Slurp | ArmOpening_R ] -> [ HandR | ArmOpening_R ]\nright [ down T_Slurp | ArmOpening_L ] -> [ HandL | ArmOpening_L ]\n\nleft [ right T_slurp | ArmOpening_r ] -> [ HandR | ArmOpening_R ]\nup [ right T_slurp | ArmOpening_D ] -> [ HandD | ArmOpening_D ]\ndown [ right T_slurp | ArmOpening_U ] -> [ HandU | ArmOpening_U ]\n\n\nright [ left T_slurp | ArmOpening_l ] -> [ HandL | ArmOpening_L ]\nup [ left T_slurp | ArmOpening_D ] -> [ HandD | ArmOpening_D ]\ndown [ left T_slurp | ArmOpening_U ] -> [ HandU | ArmOpening_U ]\n\n(propagate movements)\n\n\n[ > Pushable | Pushable ] -> [ > Pushable | > Pushable ]\n\n[ > Pushable | Limb ] -> cancel\n\n[ > Pushable | Obstacle ] -> cancel\n\n[ > fish ] -> [ > fish] sfx3\n[ > plant ] -> [ > plant] sfx3\n\n[ no T_Grow > Pushable | no Pushable ] -> [ | Pushable ]\n+ right [ T_Grow right Pushable | no Pushable ] -> [ ArmH | Pushable ]\n+ left [ T_Grow left Pushable | no Pushable ] -> [ ArmH | Pushable ]\n+ up [ T_Grow up Pushable | no Pushable ] -> [ ArmV | Pushable ]\n+ down [ T_Grow down Pushable | no Pushable ] -> [ ArmV | Pushable ]\n\n\n(growing the selected hand, getting arm to match up)\n\nright [ up T_HandExtendToken | ArmOpening_L ] -> [ ArmUR | ArmOpening_L ]\nleft [ up T_HandExtendToken | ArmOpening_R ] -> [ ArmUL | ArmOpening_R ]\ndown [ up T_HandExtendToken | ArmOpening_U ] -> [ ArmV | ArmOpening_U ]\n\nright [ down T_HandExtendToken | ArmOpening_L ] -> [ ArmDR | ArmOpening_L ]\nleft [ down T_HandExtendToken | ArmOpening_R ] -> [ ArmDL | ArmOpening_R ]\nup [ down T_HandExtendToken | ArmOpening_D ] -> [ ArmV | ArmOpening_D ]\n\nright [ left T_HandExtendToken | ArmOpening_L ] -> [ ArmH | ArmOpening_L ]\nup [ left T_HandExtendToken | ArmOpening_D ] -> [ ArmUL | ArmOpening_D ]\ndown [ left T_HandExtendToken | ArmOpening_U ] -> [ ArmDL | ArmOpening_U ]\n\nup [ right T_HandExtendToken | ArmOpening_D ] -> [ ArmUR | ArmOpening_D ]\nleft [ right T_HandExtendToken | ArmOpening_R ] -> [ ArmH | ArmOpening_R ]\ndown [ right T_HandExtendToken | ArmOpening_U ] -> [ ArmDR | ArmOpening_U ]\n\n\nrandom down [ Fallable | no thing ] -> [ | Fallable ] sfx1 again\n\n\n[ moving Pushable ] -> [ Pushable ]\n[T_Slurp]->[]\n[T_Grow]->[]\n[T_HandExtendToken]->[]\n[ Food Mouth ] -> again\n\n==============\nWINCONDITIONS\n==============\n\nno Food \nsome body\n\n======= \nLEVELS\n=======\n\nMessage press X to switch tentacles\n\n++++++++++++++++++++++++\n+.........P............+\n+.........P............+\n+.........P............+\n+.........P............+\n+.........P............+\n+.........P............+\n+.........P............+\n+.........#............+\n+......................+\n+...P..................+\n+...#.......*..........+\n+...#..P....#..........+\n+...##.#.*.M#..........+\n+.......S--B--R........+\n+..........*...........+\n+......................+\n+.........#*#..........+\n+......................+\n+....................*.+\n+......................+\n+................P.....+\n+................#.....+\n+................#.....+\n+######################+\n\nMessage NOM NOM NOM\n\n...........................\n.....55..555...............\n....555.55555..............\n...5....55555........555...\n...5.....555...6...555.55..\n..5......666.6666.55....55.\n..5..........676..55.....5.\n..5...........66.........5.\n..5........44............5.\n..5........444..........55.\n..5.........44..........5..\n...5........44..........5..\n...55.....54445.......55...\n....55...5544455....555....\n.....5...55444555..55......\n......5555555555555........\n.........55355355..........\n.........55555555.....1111.\n111........5555.......11111\n111111.........1.1111111111\n1111111111...11111111111111\n111888181818811881881188111\n111181188818111811818181811\n111181181818811881818188111\n111111111111111111111111111\n", [0, 3, 3, 1, 2, 3, 0, 3, 0, 0, 3, 2, 2, 1, 1, 0, 1, 3, 2, 3, 2], "background blackwall: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,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,background topbrownwall:2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,2,0,1,1,1,1,1,1,1,1,1,background plant:3,2,background brownwall:4,4,1,1,1,1,1,1,\n1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,\n1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,3,2,0,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,\n1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,background shandl:5,\n1,1,1,1,1,1,1,1,1,2,0,3,3,3,3,3,3,3,2,1,1,1,1,1,\narmh background:6,1,1,2,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,\nbackground mouth:7,background body:8,background fish:9,1,9,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,9,\n2,4,6,1,1,2,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,\n1,1,1,6,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,6,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,background handr:10,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,4,4,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,1,1,1,1,2,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,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,\n", 1, "1627888997152.3042"] ], [ `increpare game: match three billiards`, -["title match three billiards \nauthor increpare\nhomepage www.increpare.com\n\n\nrun_rules_on_level_start\n\ncolor_palette 7\n\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\nhole\nblack\n\ntarget\nlightgreen black\n00000\n01110\n01110\n01110\n00000\n\n\nwallul E\nbrown\n00000\n0000.\n000..\n00...\n0....\n\nwallur R\nbrown\n00000\n.0000\n..000\n...00\n....0\n\nwalldl D\ntransparent brown brown\n20000\n12000\n11200\n11120\n11112\n\nwalldr F\ntransparent brown brown\n00002\n00021\n00211\n02111\n21111\n\nWall\nbrown\n\n\nplayer p\nwhite lightblue lightgray lightgray Blue\n.111.\n.000.\n22222\n.222.\n.1.1.\n\nBody\ndarkbrown\n.000.\n.000.\n.000.\n.000.\n.000.\n\nball\ndarkred darkred darkred\n.000.\n02220\n02220\n02220\n.000.\n\nAU \nred red red\n.000.\n02220\n02220\n02220\n.000.\n\nAD\nred red red\n.000.\n02220\n02220\n02220\n.000.\n\n\nAL\nred red red\n.000.\n02220\n02220\n02220\n.000.\n\n\nAR\nred red red\n.000.\n02220\n02220\n02220\n.000.\n\n\ngood\nyellow yellow yellow\n.000.\n02220\n02220\n02220\n.000.\n\n\n\n\nT\ntransparent\n\n=======\nLEGEND\n=======\n\nwalls = wall or wallul or wallur or walldl or walldr\n. = Background\n# = Wall\nC = ball\n@ = ball and target\nO = target\nArrow = AU or AD or AL or AR \nObstacle = ball or Wall\nblock = T or wall\nh = hole\n$ = ball and hole\ng = target and hole\nk = ball and hole and target\nanyball = ball or arrow\nanyballorgood = anyball or good\n\n=======\nSOUNDS\n=======\n\nsfx0 36772507 (ballmove)\nsfx1 20806902 (action)\nsfx2 44778100 (clink)\nsfx3 17355302 (win)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget\nWall, walls, ball, player\nbody\narrow\nT\nGood\n\n======\nRULES\n======\n\nup [ > player | ball ] -> [ player | AU ] sfx0\ndown [ > player | ball ] -> [ player | AD ] sfx0\nleft [ > player | ball ] -> [ player | AL ] sfx0\nright [ > player | ball ] -> [ player | AR ] sfx0\n \n\nup [ AU | Ball ] -> [ Ball | AU ] sfx2\n+ down [ AD | Ball ] -> [ Ball | AD ] sfx2\n+ left [ AL | Ball ] -> [ Ball | AL ] sfx2\n+ right [ AR | Ball ] -> [ Ball | AR ] sfx2\n \n\nup [ no T AU | WALLUL ] -> [ T AR | WALLUL ] again\nup [ no T AU | WALLUR ] -> [ T AL | WALLUR ] again\n\ndown [ no T AD | WALLDL ] -> [ T AR | WALLDL ] again\ndown [ no T AD | WALLDR ] -> [ T AL | WALLDR ] again\n\nleft [ no T AL | WALLUL ] -> [ T AD | WALLUL ] again\nleft [ no T AL | WALLDL ] -> [ T AU | WALLDL ] again\n\nright [ no T AR | WALLUR ] -> [ T AD | WALLUR ] again\nright [ no T AR | WALLDR ] -> [ T AU | WALLDR ] again\n\nright [ no T AR | wall ] -> [ T AL | wall ] again\nleft [ no T AL | wall ] -> [ T AR | wall ] again\nup [ no T AU | wall ] -> [ T AD | wall ] again\ndown [ no T AD | wall ] -> [ T AU | wall ] again\n\n[T]->[]\n\n\nup [ AU | player ] -> [ ball | player ] \ndown [ AD | player ] -> [ ball | player ] \nleft [ AL | player ] -> [ ball | player ] \nright [ AR | player ] -> [ ball | player ] \n\nup [ no T AU | no obstacle ] -> [ | T AU ] again\ndown [ no T AD | no obstacle ] -> [ | T AD ] again\nleft [ no T AL | no obstacle ] -> [ | T AL ] again\nright [ no T AR | no obstacle ] -> [ | T AR ] again\n\n[T]->[]\n\n(\nright [ no T AR | wall ] -> [ T AL | wall ] again\nleft [ no T AL | wall ] -> [ T AR | wall ] again\nup [ no T AU | wall ] -> [ T AD | wall ] again\ndown [ no T AD | wall ] -> [ T AU | wall ] again\n[t]->[]\n\nright [ no T AR | no obstacle ] -> [ | T AR ] again\nleft [ no T AL | no obstacle ] -> [ | T AL ] again\nup [ no T AU | no obstacle ] -> [ | T AU ] again\ndown [ no T AD | no obstacle ] -> [ | T AD ] again\n[T]->[]\n)\n\n[good] -> []\n\n[anyballorgood | anyballorgood | anyballorgood ] -> [ good | good | good ] again sfx3\n\n==============\nWINCONDITIONS\n==============\nno anyball\nno good\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 3\n\n##########er####\n..p..c......r###\n########e....r##\n#######e......r#\n######e........r\n#####e.........f\n#####d.....c..f#\n######d......f##\n#######d...cf###\n########d..f####\n#########df#####\n\nmessage level 2 of 3\n\n####er####\n###e..r###\n##e....r##\n#e.c..c.r#\ne........r\nd........f\n#d.p..c.f#\n##d....f##\n###d..f###\n####df####\n\nmessage level 3 of 3\n\n####er####\n###e..r###\n##e....r##\n#e.c.c..r#\ne........r\nd..c.c...f\n#d....p.f#\n##d....f##\n###d..f###\n####df####\n\n(\n\nmessage optional final level\n\n#####er####\n####e..r###\n###e....r##\n##e.c.c..r#\n#e........r\ne...c.c...f\nd........f#\n#d...p..f##\n##d....f###\n###d..f####\n####df#####\n\n######er#######\n#####e..r######\n####e....r#####\n###e......r####\n##e........r###\n#e...c..p...r##\ne............r#\nd..........c..r\n#d............f\n##d..........f#\n###d........f##\n####d..c...f###\n#####d....f####\n######d..f#####\n#######df######\n\n\n#####er####\n####e..r###\n###e....r##\n##e.c.c..r#\n#e........r\ne...c.c...f\nd........f#\n#d...p..f##\n##d....f###\n###d..f####\n####df####.\n\n\n##########er####\n..p..c......r###\n########e....r##\n#######e......r#\n######e........r\n#####e.....c...f\n#####d........f#\n######d....c.f##\n#######d....f###\n########d..f####\n#########df#####\n\n####er####\n###e..r###\n##e....r##\n#e......r#\ne........r\nd..p.....f\n#d......f#\n##d....f##\n###d..f###\n####df####\n\n####er####\n###e..r###\n##e....r##\n#e.c.c..r#\ne........r\nd..p.c...f\n#d......f#\n##d....f##\n###d..f###\n####df####\n\n#####er#####\n####e..r####\n###e....r###\n##e......r##\n#e..c.c...r#\ne..........r\nd....c.c...f\n#d........f#\n##d...p..f##\n###d....f###\n####d..f####\n#####df#####\n\n####er####\n###e..r###\n##e....r##\n#e.c.c..r#\ne........r\nd..p.c...f\n#d......f#\n##d....f##\n###d..f###\n####df####\n\n######er#######\n#####e..r######\n####e....r#####\n###e......r####\n##e........r###\n#e...c..p...r##\ne............r#\nd..........c..r\n#d............f\n##d..........f#\n###d........f##\n####d..c...f###\n#####d....f####\n######d..f#####\n#######df######\n\n######er#######\n#####e..r######\n####e....r#####\n###e......r####\n##e........r###\n#e...c......r##\ne.......#....r#\nd....c.....c..r\n#d...p........f\n##d..........f#\n###d........f##\n####d..c...f###\n#####d....f####\n######d..f#####\n#######df######\n\n##########er####\n....pc......r###\n########e....r##\n#######e......r#\n######e........r\n#####e.........f\n#####d........f#\n######d......f##\n#######d....f###\n########d..f####\n#########df#####\n\n##########er####\n..p..c......r###\n########e....r##\n#######e......r#\n######e........r\n#####e.....c...f\n#####d........f#\n######d....c.f##\n#######d....f###\n########d..f####\n#########df#####\n\n)\n",[3,3,3],"background wall:0,0,0,0,background wallul:1,background walldl:2,0,0,0,0,\n0,0,0,1,background:3,3,2,0,0,0,\n0,0,1,3,3,3,3,2,0,0,\n0,1,3,3,3,3,3,3,2,0,\n1,3,3,background ball:4,3,3,4,3,3,2,\nbackground wallur:5,3,3,3,3,3,background player:6,3,3,background walldr:7,\n0,5,3,3,3,3,3,3,7,0,\n0,0,5,4,3,3,3,7,0,0,\n0,0,0,5,3,3,7,0,0,0,\n0,0,0,0,5,7,0,0,0,0,\n",3,"1627889017355.2273"] + ["title match three billiards \nauthor increpare\nhomepage www.increpare.com\n\n\nrun_rules_on_level_start\n\ncolor_palette 7\n\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\nhole\nblack\n\ntarget\nlightgreen black\n00000\n01110\n01110\n01110\n00000\n\n\nwallul E\nbrown\n00000\n0000.\n000..\n00...\n0....\n\nwallur R\nbrown\n00000\n.0000\n..000\n...00\n....0\n\nwalldl D\ntransparent brown brown\n20000\n12000\n11200\n11120\n11112\n\nwalldr F\ntransparent brown brown\n00002\n00021\n00211\n02111\n21111\n\nWall\nbrown\n\n\nplayer p\nwhite lightblue lightgray lightgray Blue\n.111.\n.000.\n22222\n.222.\n.1.1.\n\nBody\ndarkbrown\n.000.\n.000.\n.000.\n.000.\n.000.\n\nball\ndarkred darkred darkred\n.000.\n02220\n02220\n02220\n.000.\n\nAU \nred red red\n.000.\n02220\n02220\n02220\n.000.\n\nAD\nred red red\n.000.\n02220\n02220\n02220\n.000.\n\n\nAL\nred red red\n.000.\n02220\n02220\n02220\n.000.\n\n\nAR\nred red red\n.000.\n02220\n02220\n02220\n.000.\n\n\ngood\nyellow yellow yellow\n.000.\n02220\n02220\n02220\n.000.\n\n\n\n\nT\ntransparent\n\n=======\nLEGEND\n=======\n\nwalls = wall or wallul or wallur or walldl or walldr\n. = Background\n# = Wall\nC = ball\n@ = ball and target\nO = target\nArrow = AU or AD or AL or AR \nObstacle = ball or Wall\nblock = T or wall\nh = hole\n$ = ball and hole\ng = target and hole\nk = ball and hole and target\nanyball = ball or arrow\nanyballorgood = anyball or good\n\n=======\nSOUNDS\n=======\n\nsfx0 36772507 (ballmove)\nsfx1 20806902 (action)\nsfx2 44778100 (clink)\nsfx3 17355302 (win)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget\nWall, walls, ball, player\nbody\narrow\nT\nGood\n\n======\nRULES\n======\n\nup [ > player | ball ] -> [ player | AU ] sfx0\ndown [ > player | ball ] -> [ player | AD ] sfx0\nleft [ > player | ball ] -> [ player | AL ] sfx0\nright [ > player | ball ] -> [ player | AR ] sfx0\n \n\nup [ AU | Ball ] -> [ Ball | AU ] sfx2\n+ down [ AD | Ball ] -> [ Ball | AD ] sfx2\n+ left [ AL | Ball ] -> [ Ball | AL ] sfx2\n+ right [ AR | Ball ] -> [ Ball | AR ] sfx2\n \n\nup [ no T AU | WALLUL ] -> [ T AR | WALLUL ] again\nup [ no T AU | WALLUR ] -> [ T AL | WALLUR ] again\n\ndown [ no T AD | WALLDL ] -> [ T AR | WALLDL ] again\ndown [ no T AD | WALLDR ] -> [ T AL | WALLDR ] again\n\nleft [ no T AL | WALLUL ] -> [ T AD | WALLUL ] again\nleft [ no T AL | WALLDL ] -> [ T AU | WALLDL ] again\n\nright [ no T AR | WALLUR ] -> [ T AD | WALLUR ] again\nright [ no T AR | WALLDR ] -> [ T AU | WALLDR ] again\n\nright [ no T AR | wall ] -> [ T AL | wall ] again\nleft [ no T AL | wall ] -> [ T AR | wall ] again\nup [ no T AU | wall ] -> [ T AD | wall ] again\ndown [ no T AD | wall ] -> [ T AU | wall ] again\n\n[T]->[]\n\n\nup [ AU | player ] -> [ ball | player ] \ndown [ AD | player ] -> [ ball | player ] \nleft [ AL | player ] -> [ ball | player ] \nright [ AR | player ] -> [ ball | player ] \n\nup [ no T AU | no obstacle ] -> [ | T AU ] again\ndown [ no T AD | no obstacle ] -> [ | T AD ] again\nleft [ no T AL | no obstacle ] -> [ | T AL ] again\nright [ no T AR | no obstacle ] -> [ | T AR ] again\n\n[T]->[]\n\n(\nright [ no T AR | wall ] -> [ T AL | wall ] again\nleft [ no T AL | wall ] -> [ T AR | wall ] again\nup [ no T AU | wall ] -> [ T AD | wall ] again\ndown [ no T AD | wall ] -> [ T AU | wall ] again\n[t]->[]\n\nright [ no T AR | no obstacle ] -> [ | T AR ] again\nleft [ no T AL | no obstacle ] -> [ | T AL ] again\nup [ no T AU | no obstacle ] -> [ | T AU ] again\ndown [ no T AD | no obstacle ] -> [ | T AD ] again\n[T]->[]\n)\n\n[good] -> []\n\n[anyballorgood | anyballorgood | anyballorgood ] -> [ good | good | good ] again sfx3\n\n==============\nWINCONDITIONS\n==============\nno anyball\nno good\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 3\n\n##########er####\n..p..c......r###\n########e....r##\n#######e......r#\n######e........r\n#####e.........f\n#####d.....c..f#\n######d......f##\n#######d...cf###\n########d..f####\n#########df#####\n\nmessage level 2 of 3\n\n####er####\n###e..r###\n##e....r##\n#e.c..c.r#\ne........r\nd........f\n#d.p..c.f#\n##d....f##\n###d..f###\n####df####\n\nmessage level 3 of 3\n\n####er####\n###e..r###\n##e....r##\n#e.c.c..r#\ne........r\nd..c.c...f\n#d....p.f#\n##d....f##\n###d..f###\n####df####\n\n(\n\nmessage optional final level\n\n#####er####\n####e..r###\n###e....r##\n##e.c.c..r#\n#e........r\ne...c.c...f\nd........f#\n#d...p..f##\n##d....f###\n###d..f####\n####df#####\n\n######er#######\n#####e..r######\n####e....r#####\n###e......r####\n##e........r###\n#e...c..p...r##\ne............r#\nd..........c..r\n#d............f\n##d..........f#\n###d........f##\n####d..c...f###\n#####d....f####\n######d..f#####\n#######df######\n\n\n#####er####\n####e..r###\n###e....r##\n##e.c.c..r#\n#e........r\ne...c.c...f\nd........f#\n#d...p..f##\n##d....f###\n###d..f####\n####df####.\n\n\n##########er####\n..p..c......r###\n########e....r##\n#######e......r#\n######e........r\n#####e.....c...f\n#####d........f#\n######d....c.f##\n#######d....f###\n########d..f####\n#########df#####\n\n####er####\n###e..r###\n##e....r##\n#e......r#\ne........r\nd..p.....f\n#d......f#\n##d....f##\n###d..f###\n####df####\n\n####er####\n###e..r###\n##e....r##\n#e.c.c..r#\ne........r\nd..p.c...f\n#d......f#\n##d....f##\n###d..f###\n####df####\n\n#####er#####\n####e..r####\n###e....r###\n##e......r##\n#e..c.c...r#\ne..........r\nd....c.c...f\n#d........f#\n##d...p..f##\n###d....f###\n####d..f####\n#####df#####\n\n####er####\n###e..r###\n##e....r##\n#e.c.c..r#\ne........r\nd..p.c...f\n#d......f#\n##d....f##\n###d..f###\n####df####\n\n######er#######\n#####e..r######\n####e....r#####\n###e......r####\n##e........r###\n#e...c..p...r##\ne............r#\nd..........c..r\n#d............f\n##d..........f#\n###d........f##\n####d..c...f###\n#####d....f####\n######d..f#####\n#######df######\n\n######er#######\n#####e..r######\n####e....r#####\n###e......r####\n##e........r###\n#e...c......r##\ne.......#....r#\nd....c.....c..r\n#d...p........f\n##d..........f#\n###d........f##\n####d..c...f###\n#####d....f####\n######d..f#####\n#######df######\n\n##########er####\n....pc......r###\n########e....r##\n#######e......r#\n######e........r\n#####e.........f\n#####d........f#\n######d......f##\n#######d....f###\n########d..f####\n#########df#####\n\n##########er####\n..p..c......r###\n########e....r##\n#######e......r#\n######e........r\n#####e.....c...f\n#####d........f#\n######d....c.f##\n#######d....f###\n########d..f####\n#########df#####\n\n)\n", [3, 3, 3], "background wall:0,0,0,0,background wallul:1,background walldl:2,0,0,0,0,\n0,0,0,1,background:3,3,2,0,0,0,\n0,0,1,3,3,3,3,2,0,0,\n0,1,3,3,3,3,3,3,2,0,\n1,3,3,background ball:4,3,3,4,3,3,2,\nbackground wallur:5,3,3,3,3,3,background player:6,3,3,background walldr:7,\n0,5,3,3,3,3,3,3,7,0,\n0,0,5,4,3,3,3,7,0,0,\n0,0,0,5,3,3,7,0,0,0,\n0,0,0,0,5,7,0,0,0,0,\n", 3, "1627889017355.2273"] ], [ - "newton", - ["title newton \nauthor increpare\nhomepage www.increpare.com\nnoaction\n\ncolor_palette 8\n\n========\nOBJECTS\n========\n\nBackground\nlightgray lightgray \n11111\n01111\n11101\n11111\n10111\n\nhole\nblack\n\ntarget\norange black\n00000\n0...0\n0...0\n0...0\n00000\n\nWall\ndarkred black \n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nball\nlightblue white\n.000.\n0...0\n0...0\n01..0\n.000.\n\nAU \ntransparent\n\nAD\ntransparent\n\nAL\ntransparent\n\nAR\ntransparent\n\nT\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nC = ball\n@ = ball and target\nO = target\nArrow = AU or AD or AL or AR\nObstacle = ball or Wall\nblock = T or wall\nh = hole\n$ = ball and hole\nf = target and hole\n\n=======\nSOUNDS\n=======\n\nsfx0 36772507 (ballmove)\nsfx1 20806902 (action)\nsfx2 44778100 (clink)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget\nPlayer, Wall, ball\nArrow\nT\n\n======\nRULES\n======\n\n\n[ > player | hole ] -> cancel\n\n[ arrow ] [ player ] -> [arrow] [ action player ]\n[ AU ball ] -> [ up ball ]\n[ AD ball ] -> [ down ball ]\n[ AL ball ] -> [ left ball ]\n[ AR ball ] -> [ right ball ]\n\n[ > ball | stationary ball ] -> [ stationary ball | > ball ] \n\n[ > ball | wall ] -> [ T ball | wall ]\n[ > ball | T ] -> [ T ball | ]\n[t]->[]\n\n[ stationary ball | > ball ] -> sfx2\n\n[ > Player | ball ] -> [ > Player | > ball ] sfx0 \n[ > ball | ball ] -> [ > ball | > ball ]\n\nup \t\t[ > ball | no obstacle ] -> [ | ball AU ] again\ndown [ > ball | no obstacle ] -> [ | ball AD ] again\nleft \t[ > ball | no obstacle ] -> [ | ball AL ] again\nright \t[ > ball | no obstacle ] -> [ | ball AR ] again\n\n==============\nWINCONDITIONS\n==============\n\nall ball on target\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 3\n\n###############\n#hhhhhhfhhhhhh#\n#hhhhhhfhhhhhh#\n#hhhhhhfhhhhhh#\n#hhh.......hhh#\n#hhh..ccc..hhh#\n#ffh..ccc..hff#\n#hhh..ccc..hhh#\n#hhh.......hhh#\n#hhh...p...hhh#\n#hhh.......hhh#\n#hhhhhhhhhhhhh#\n#hhhhhhhhhhhhh#\n#hhhhhfhfhhhhh#\n###############\n\nmessage level 2 of 3\n\n###############\n#hhhhfffffhhhh#\n#hhhhhhhhhhhhh#\n#hhhhhhhhhhhhh#\n#hhh.......hhh#\n#hhh.c.c.c.hhh#\n#hhh.......hhh#\n#fhh.c.c.c.hhf#\n#hhh...p...hhh#\n#fhh.c.c.c.hhf#\n#hhh.......hhh#\n#hhhhhhhhhhhhh#\n#hhhhhhhhhhhhh#\n#hhhhhhhhhhhhh#\n###############\n\nmessage level 3 of 3\n\n#############\n#hhhfffffhhh#\n#hhhhhfhhhhh#\n#hhhhhhhhhhh#\n#hh.......hh#\n#hh.ccccc.hh#\n#fh.c...c.hf#\n#fh.c...c.hf#\n#fh.ccccc.hf#\n#fh.ccccc.hf#\n#hh...p...hh#\n#hhhhhhhhhhh#\n#hhhfffffhhh#\n#############\n",[0,3,3,3,0,1],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background hole:1,1,1,1,1,background hole target:2,2,background ball hole target:3,2,1,1,\n1,0,0,1,1,1,1,1,1,1,background ball hole:4,1,1,\n1,1,0,0,1,1,1,background:5,5,5,5,5,5,\n5,1,1,0,0,2,1,1,5,background ball:6,6,6,5,\n6,5,1,2,0,0,2,1,1,5,6,5,5,\n5,6,5,1,2,0,0,3,3,1,5,5,5,\n6,6,5,5,1,2,0,0,2,1,1,5,6,\n5,5,6,5,5,1,2,0,0,2,1,1,5,\n6,6,6,background player:7,5,5,1,2,0,0,1,1,1,\n5,5,5,5,5,5,5,1,1,0,0,1,1,\n1,1,1,1,1,1,4,1,1,1,0,0,1,\n1,1,1,1,2,2,2,3,1,1,1,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n",5,"1627891250265.7375"] + "newton", + ["title newton \nauthor increpare\nhomepage www.increpare.com\nnoaction\n\ncolor_palette 8\n\n========\nOBJECTS\n========\n\nBackground\nlightgray lightgray \n11111\n01111\n11101\n11111\n10111\n\nhole\nblack\n\ntarget\norange black\n00000\n0...0\n0...0\n0...0\n00000\n\nWall\ndarkred black \n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nball\nlightblue white\n.000.\n0...0\n0...0\n01..0\n.000.\n\nAU \ntransparent\n\nAD\ntransparent\n\nAL\ntransparent\n\nAR\ntransparent\n\nT\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nC = ball\n@ = ball and target\nO = target\nArrow = AU or AD or AL or AR\nObstacle = ball or Wall\nblock = T or wall\nh = hole\n$ = ball and hole\nf = target and hole\n\n=======\nSOUNDS\n=======\n\nsfx0 36772507 (ballmove)\nsfx1 20806902 (action)\nsfx2 44778100 (clink)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget\nPlayer, Wall, ball\nArrow\nT\n\n======\nRULES\n======\n\n\n[ > player | hole ] -> cancel\n\n[ arrow ] [ player ] -> [arrow] [ action player ]\n[ AU ball ] -> [ up ball ]\n[ AD ball ] -> [ down ball ]\n[ AL ball ] -> [ left ball ]\n[ AR ball ] -> [ right ball ]\n\n[ > ball | stationary ball ] -> [ stationary ball | > ball ] \n\n[ > ball | wall ] -> [ T ball | wall ]\n[ > ball | T ] -> [ T ball | ]\n[t]->[]\n\n[ stationary ball | > ball ] -> sfx2\n\n[ > Player | ball ] -> [ > Player | > ball ] sfx0 \n[ > ball | ball ] -> [ > ball | > ball ]\n\nup \t\t[ > ball | no obstacle ] -> [ | ball AU ] again\ndown [ > ball | no obstacle ] -> [ | ball AD ] again\nleft \t[ > ball | no obstacle ] -> [ | ball AL ] again\nright \t[ > ball | no obstacle ] -> [ | ball AR ] again\n\n==============\nWINCONDITIONS\n==============\n\nall ball on target\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 3\n\n###############\n#hhhhhhfhhhhhh#\n#hhhhhhfhhhhhh#\n#hhhhhhfhhhhhh#\n#hhh.......hhh#\n#hhh..ccc..hhh#\n#ffh..ccc..hff#\n#hhh..ccc..hhh#\n#hhh.......hhh#\n#hhh...p...hhh#\n#hhh.......hhh#\n#hhhhhhhhhhhhh#\n#hhhhhhhhhhhhh#\n#hhhhhfhfhhhhh#\n###############\n\nmessage level 2 of 3\n\n###############\n#hhhhfffffhhhh#\n#hhhhhhhhhhhhh#\n#hhhhhhhhhhhhh#\n#hhh.......hhh#\n#hhh.c.c.c.hhh#\n#hhh.......hhh#\n#fhh.c.c.c.hhf#\n#hhh...p...hhh#\n#fhh.c.c.c.hhf#\n#hhh.......hhh#\n#hhhhhhhhhhhhh#\n#hhhhhhhhhhhhh#\n#hhhhhhhhhhhhh#\n###############\n\nmessage level 3 of 3\n\n#############\n#hhhfffffhhh#\n#hhhhhfhhhhh#\n#hhhhhhhhhhh#\n#hh.......hh#\n#hh.ccccc.hh#\n#fh.c...c.hf#\n#fh.c...c.hf#\n#fh.ccccc.hf#\n#fh.ccccc.hf#\n#hh...p...hh#\n#hhhhhhhhhhh#\n#hhhfffffhhh#\n#############\n", [0, 3, 3, 3, 0, 1], "background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background hole:1,1,1,1,1,background hole target:2,2,background ball hole target:3,2,1,1,\n1,0,0,1,1,1,1,1,1,1,background ball hole:4,1,1,\n1,1,0,0,1,1,1,background:5,5,5,5,5,5,\n5,1,1,0,0,2,1,1,5,background ball:6,6,6,5,\n6,5,1,2,0,0,2,1,1,5,6,5,5,\n5,6,5,1,2,0,0,3,3,1,5,5,5,\n6,6,5,5,1,2,0,0,2,1,1,5,6,\n5,5,6,5,5,1,2,0,0,2,1,1,5,\n6,6,6,background player:7,5,5,1,2,0,0,1,1,1,\n5,5,5,5,5,5,5,1,1,0,0,1,1,\n1,1,1,1,1,1,4,1,1,1,0,0,1,\n1,1,1,1,2,2,2,3,1,1,1,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 5, "1627891250265.7375"] ], [ - "unewton", - ["title unewton \nauthor increpare\nhomepage www.increpare.com\n\n\ncolor_palette 7\n\n========\nOBJECTS\n========\n\nBackground\ngreen lightgreen\n11111\n01111\n11101\n11111\n10111\n\nhole\nblack\n\ntarget\norange black\n00000\n0...0\n0...0\n0...0\n00000\n\n\nWall\ndarkred black \n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nball\ndarkblue white blue\n.000.\n02220\n02220\n02220\n.000.\n\nAU \nblue white lightblue\n.000.\n02220\n02220\n02220\n.000.\n\nAD\nblue white lightblue\n.000.\n02220\n02220\n02220\n.000.\n\n\nAL\nblue white lightblue\n.000.\n02220\n02220\n02220\n.000.\n\n\nAR\nblue white lightblue\n.000.\n02220\n02220\n02220\n.000.\n\n\nT\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nC = ball\n@ = ball and target\nO = target\nArrow = AU or AD or AL or AR\nObstacle = ball or Wall\nblock = T or wall\nh = hole\n$ = ball and hole\nf = target and hole\nk = ball and hole and target\n\n=======\nSOUNDS\n=======\n\nsfx0 36772507 (ballmove)\nsfx1 20806902 (action)\nsfx2 44778100 (clink)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget\nPlayer, Wall, ball\nArrow\nT\n\n======\nRULES\n======\n\n\n[ > player | hole ] -> cancel\n\n[ arrow ] [ player ] -> [arrow] [ action player ]\n[ AU ball ] -> [ AU up ball ]\n[ AD ball ] -> [ AD down ball ]\n[ AL ball ] -> [ AL left ball ]\n[ AR ball ] -> [ AR right ball ]\n\n[ > ball | ball ] -> [ > ball | > ball ] \n\n[moving ball arrow] [ moving ball no arrow ] -> [ stationary ball ] [ moving ball no arrow ]\n\n[arrow]->[]\n\n[ > ball | wall ] -> [ T ball | wall ]\n[ > ball | T ] -> [ T ball | ]\n[t]->[]\n\n[ stationary ball | > ball ] -> sfx2\n\n[ action Player | ball ] -> [ action Player | > ball ] sfx0 \n\n[ > Player | ball ] -> [ > Player | > ball ] sfx0 \n[ > ball | ball ] -> [ > ball | > ball ]\n\nup \t\t[ action player ] [ > ball | no obstacle ] -> [ action player ] [ | ball AU ] again\ndown [ action player ] [ > ball | no obstacle ] -> [ action player ] [ | ball AD ] again\nleft \t[ action player ] [ > ball | no obstacle ] -> [ action player ] [ | ball AL ] again\nright \t[ action player ] [ > ball | no obstacle ] -> [ action player ] [ | ball AR ] again\n\n==============\nWINCONDITIONS\n==============\n\nall ball on target\nno arrow\n\n=======\nLEVELS\n=======\n\nmessage you can press X to kick balls!\n\nmessage level 1 of 4\n\n#########################\n#.......hhhhhhhhhhhhhhhh#\n#.c.c.c.hhhhhhhhhhhhhhhh#\n#.......hfhh$fhh$fhh$fff#\n#.c.c.c.hffh$hfh$hfh$hff#\n#....p..hfff$hhf$hhf$hhf#\n#.c.c.c.hhhhhhhhhhhhhhhh#\n#.......hhhhhhhhhhhhhhhh#\n#########################\n\nmessage level 2 of 4\n\n############\n#......fhhf#\n#.c.c..fh$f#\n#......fhhf#\n#.p.c..hhhh#\n#..........#\n#.c.c......#\n#..........#\n############\n\nmessage level 3 of 4\n\n\n#####################\n#.........o.........#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.cc.hfhkhfh.c..#.#\n#.#....hhhhhhh....#.#\n#....p..............#\n#...................#\n#####################\n\n\nmessage level 4 of 4\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$..o...#\n#.............#\n#.....hfh.....#\n#.#.$.f$f.$.#.#\n#.....hfh.....#\n#.............#\n#...p..$......#\n#.............#\n#......#......#\n#.............#\n###############\n\n(\n\nmessage level 4 of 5\n\n\n###########\n#hhhfhhhhh#\n#hhhfhh...#\n#fh$hfh.c.#\n#hhh$hh.c.#\n#.......c.#\n#hhh$hh...#\n#fh$hhh.p.#\n#hhhfhh...#\n#hhhfhhhhh#\n###########\n\n################\n#hhhhfffhhhhhhh#\n#hhhhfffhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhccccchhhff#\n#hhhhccccchhhff#\n#ffhhccpcchhhff#\n#ffhhccccchhhhh#\n#ffhhccccchhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhfffhhhhh#\n#hhhhhhfffhhhhh#\n################\n\n################\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhccccchhhhh#\n#hhhhccccchhhhh#\n#hhhhccpcchhhhh#\n#hhhhccccchhhhh#\n#hhhhccccchhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n################\n\n################\n#hhhhhhfhhhhhhh#\n#hhhhhhfhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhh.....hhhhh#\n#hhhh..c..hhhhh#\n#hhhh..p..hhhhh#\n#hhhh..c..hhhhh#\n#hhhh.....hhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n################\n\n\n################\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhh.....hhhhh#\n#hhhh.....hhhhh#\n#hhhh..p..hhhhh#\n#hhhh.....hhhhh#\n#hhhh.....hhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n################\n\n#################\n#...............#\n#.....c.c.c.....#\n#..cccccccc.....#\n#...hhhhhhhhh...#\n#..phhhhhhhhhc..#\n#...hhhhhhhhhcc.#\n#.cchhhhhhhhhcc.#\n#.cchhhh$hhhhcc.#\n#..chhhhhhhhhcc.#\n#...hhhhhhhhhc..#\n#...hhhhhhhhh...#\n#...hhhhhhhhh...#\n#....cccccc.....#\n#....ccccc......#\n#...............#\n#################\n\n\n#####################\n#...................#\n#........###........#\n#...................#\n#.......c.c.c.......#\n#....cccccccc.......#\n#.....hhhhhhhhh.....#\n#.....hhhhhhhhhc....#\n#...c.hhhhhhhhhcc...#\n#.#.cchhhhhhhhhcc.#.#\n#.#.pchhhh$hhhhcc.#.#\n#.#..chhhhhhhhhcc.#.#\n#.....hhhhhhhhhc....#\n#.....hhhhhhhhh.....#\n#.....hhhhhhhhh.....#\n#......cccccc.......#\n#......ccccc........#\n#...................#\n#........###........#\n#...................#\n#####################\n\n#####################\n#...................#\n#........###........#\n#...................#\n#.......c.c.c.......#\n#....cccccccc.......#\n#.....hhhhhhhhh.....#\n#.....hhhhhhhhhc....#\n#...c.hhhhfhhhhcc...#\n#.#.cchhhhhhhhhcc.#.#\n#.#.pchhfh$hfhhcc.#.#\n#.#..chhhhhhhhhcc.#.#\n#.....hhhhfhhhhc....#\n#.....hhhhhhhhh.....#\n#.....hhhhhhhhh.....#\n#......cccccc.......#\n#......ccccc........#\n#...................#\n#........###........#\n#...................#\n#####################\n\n#####################\n#...................#\n#........###........#\n#...................#\n#.......c.c.c.......#\n#....cccccccc.......#\n#...................#\n#...................#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.pc.hfh$hfh.c..#.#\n#.#....hhhhhhh....#.#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#........###........#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.pc.hfhkhfh.c..#.#\n#.#....hhhhhhh....#.#\n#...................#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.cc.hfhkhfh.c..#.#\n#.#....hhhhhhh....#.#\n#....p..............#\n#...................#\n#####################\n\n#####################\n#.........o.........#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.cc.hfhkhfh.c..#.#\n#.#....hhhhhhh....#.#\n#....p..............#\n#...................#\n#####################\n\nhhhhhhhhhhhh\nhhhhhhhhhhhh\nhhhhhhhh....\nh#fh$hfh.c..\nhhhhhhhh..c.\nh.......p...\nhhhhhhhh..c.\nh#hh$hhh.c..\nhhhhhhhh....\n\n############\n#hhhfhhhhhh#\n#hhhfhh....#\n#fh$hfh.c..#\n#hhh$hh....#\n#.......c.p#\n#hhh$hh....#\n#fh$hhh.c..#\n#hhhfhh....#\n#hhhfhhhhhh#\n############\n\n..........\n..........\n....$.....\n..........\n..........\n.$..$..$..\n....p.....\n..........\n....$.....\n..........\n..........\n\n##############\n#............#\n#............#\n#............#\n#.....$......#\n#............#\n#............#\n#..$..$..$...#\n#.....p......#\n#............#\n#.....$......#\n#............#\n#............#\n#............#\n##############\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$......#\n#.............#\n#.............#\n#.#.$..$..$.#.#\n#......p......#\n#.............#\n#......$......#\n#.............#\n#......#......#\n#.............#\n###############\n\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$......#\n#.............#\n#......h......#\n#.#.$.h$h.$.#.#\n#.p....h......#\n#.............#\n#......$......#\n#.............#\n#......#......#\n#.............#\n###############\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$......#\n#.............#\n#.....hfh.....#\n#.#.$.f@f.$.#.#\n#.p...hfh.....#\n#.............#\n#......$......#\n#.............#\n#......#......#\n#.............#\n###############\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$......#\n#.............#\n#.....hfh.....#\n#.#.$.fkf.$.#.#\n#.p...hfh.....#\n#.............#\n#......$......#\n#.............#\n#......#......#\n#.............#\n###############\n)\n",[1,1,0,0,3,3,0,3,2,3,1,2,2,3,1,0,4,"restart",1,1,0,0,0,2,3,4,0,0,3,3,3,3,3,3,3,3,3,3,2,4],"background wall:0,0,0,0,0,0,0,0,0,0,background:1,1,1,1,1,1,1,0,0,1,1,\n0,0,0,1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,\n0,1,1,background hole:2,2,2,1,1,0,0,1,1,2,background ball hole target:3,2,1,1,0,0,1,1,\n2,background ball hole:4,2,1,1,0,0,background target:5,1,2,background hole target:6,2,1,1,0,0,1,1,2,2,2,\n1,1,0,0,1,1,2,6,2,1,1,0,0,1,1,2,2,2,1,1,0,\n0,1,1,background player:7,1,1,1,background ball:8,0,0,1,1,1,1,1,1,1,0,0,1,1,\n1,1,1,1,1,0,0,1,1,1,8,1,1,1,0,0,1,1,0,0,0,\n1,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,\n",6,"1627891297042.881"] + "unewton", + ["title unewton \nauthor increpare\nhomepage www.increpare.com\n\n\ncolor_palette 7\n\n========\nOBJECTS\n========\n\nBackground\ngreen lightgreen\n11111\n01111\n11101\n11111\n10111\n\nhole\nblack\n\ntarget\norange black\n00000\n0...0\n0...0\n0...0\n00000\n\n\nWall\ndarkred black \n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nball\ndarkblue white blue\n.000.\n02220\n02220\n02220\n.000.\n\nAU \nblue white lightblue\n.000.\n02220\n02220\n02220\n.000.\n\nAD\nblue white lightblue\n.000.\n02220\n02220\n02220\n.000.\n\n\nAL\nblue white lightblue\n.000.\n02220\n02220\n02220\n.000.\n\n\nAR\nblue white lightblue\n.000.\n02220\n02220\n02220\n.000.\n\n\nT\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nC = ball\n@ = ball and target\nO = target\nArrow = AU or AD or AL or AR\nObstacle = ball or Wall\nblock = T or wall\nh = hole\n$ = ball and hole\nf = target and hole\nk = ball and hole and target\n\n=======\nSOUNDS\n=======\n\nsfx0 36772507 (ballmove)\nsfx1 20806902 (action)\nsfx2 44778100 (clink)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget\nPlayer, Wall, ball\nArrow\nT\n\n======\nRULES\n======\n\n\n[ > player | hole ] -> cancel\n\n[ arrow ] [ player ] -> [arrow] [ action player ]\n[ AU ball ] -> [ AU up ball ]\n[ AD ball ] -> [ AD down ball ]\n[ AL ball ] -> [ AL left ball ]\n[ AR ball ] -> [ AR right ball ]\n\n[ > ball | ball ] -> [ > ball | > ball ] \n\n[moving ball arrow] [ moving ball no arrow ] -> [ stationary ball ] [ moving ball no arrow ]\n\n[arrow]->[]\n\n[ > ball | wall ] -> [ T ball | wall ]\n[ > ball | T ] -> [ T ball | ]\n[t]->[]\n\n[ stationary ball | > ball ] -> sfx2\n\n[ action Player | ball ] -> [ action Player | > ball ] sfx0 \n\n[ > Player | ball ] -> [ > Player | > ball ] sfx0 \n[ > ball | ball ] -> [ > ball | > ball ]\n\nup \t\t[ action player ] [ > ball | no obstacle ] -> [ action player ] [ | ball AU ] again\ndown [ action player ] [ > ball | no obstacle ] -> [ action player ] [ | ball AD ] again\nleft \t[ action player ] [ > ball | no obstacle ] -> [ action player ] [ | ball AL ] again\nright \t[ action player ] [ > ball | no obstacle ] -> [ action player ] [ | ball AR ] again\n\n==============\nWINCONDITIONS\n==============\n\nall ball on target\nno arrow\n\n=======\nLEVELS\n=======\n\nmessage you can press X to kick balls!\n\nmessage level 1 of 4\n\n#########################\n#.......hhhhhhhhhhhhhhhh#\n#.c.c.c.hhhhhhhhhhhhhhhh#\n#.......hfhh$fhh$fhh$fff#\n#.c.c.c.hffh$hfh$hfh$hff#\n#....p..hfff$hhf$hhf$hhf#\n#.c.c.c.hhhhhhhhhhhhhhhh#\n#.......hhhhhhhhhhhhhhhh#\n#########################\n\nmessage level 2 of 4\n\n############\n#......fhhf#\n#.c.c..fh$f#\n#......fhhf#\n#.p.c..hhhh#\n#..........#\n#.c.c......#\n#..........#\n############\n\nmessage level 3 of 4\n\n\n#####################\n#.........o.........#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.cc.hfhkhfh.c..#.#\n#.#....hhhhhhh....#.#\n#....p..............#\n#...................#\n#####################\n\n\nmessage level 4 of 4\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$..o...#\n#.............#\n#.....hfh.....#\n#.#.$.f$f.$.#.#\n#.....hfh.....#\n#.............#\n#...p..$......#\n#.............#\n#......#......#\n#.............#\n###############\n\n(\n\nmessage level 4 of 5\n\n\n###########\n#hhhfhhhhh#\n#hhhfhh...#\n#fh$hfh.c.#\n#hhh$hh.c.#\n#.......c.#\n#hhh$hh...#\n#fh$hhh.p.#\n#hhhfhh...#\n#hhhfhhhhh#\n###########\n\n################\n#hhhhfffhhhhhhh#\n#hhhhfffhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhccccchhhff#\n#hhhhccccchhhff#\n#ffhhccpcchhhff#\n#ffhhccccchhhhh#\n#ffhhccccchhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhfffhhhhh#\n#hhhhhhfffhhhhh#\n################\n\n################\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhccccchhhhh#\n#hhhhccccchhhhh#\n#hhhhccpcchhhhh#\n#hhhhccccchhhhh#\n#hhhhccccchhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n################\n\n################\n#hhhhhhfhhhhhhh#\n#hhhhhhfhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhh.....hhhhh#\n#hhhh..c..hhhhh#\n#hhhh..p..hhhhh#\n#hhhh..c..hhhhh#\n#hhhh.....hhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n################\n\n\n################\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhh.....hhhhh#\n#hhhh.....hhhhh#\n#hhhh..p..hhhhh#\n#hhhh.....hhhhh#\n#hhhh.....hhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n################\n\n#################\n#...............#\n#.....c.c.c.....#\n#..cccccccc.....#\n#...hhhhhhhhh...#\n#..phhhhhhhhhc..#\n#...hhhhhhhhhcc.#\n#.cchhhhhhhhhcc.#\n#.cchhhh$hhhhcc.#\n#..chhhhhhhhhcc.#\n#...hhhhhhhhhc..#\n#...hhhhhhhhh...#\n#...hhhhhhhhh...#\n#....cccccc.....#\n#....ccccc......#\n#...............#\n#################\n\n\n#####################\n#...................#\n#........###........#\n#...................#\n#.......c.c.c.......#\n#....cccccccc.......#\n#.....hhhhhhhhh.....#\n#.....hhhhhhhhhc....#\n#...c.hhhhhhhhhcc...#\n#.#.cchhhhhhhhhcc.#.#\n#.#.pchhhh$hhhhcc.#.#\n#.#..chhhhhhhhhcc.#.#\n#.....hhhhhhhhhc....#\n#.....hhhhhhhhh.....#\n#.....hhhhhhhhh.....#\n#......cccccc.......#\n#......ccccc........#\n#...................#\n#........###........#\n#...................#\n#####################\n\n#####################\n#...................#\n#........###........#\n#...................#\n#.......c.c.c.......#\n#....cccccccc.......#\n#.....hhhhhhhhh.....#\n#.....hhhhhhhhhc....#\n#...c.hhhhfhhhhcc...#\n#.#.cchhhhhhhhhcc.#.#\n#.#.pchhfh$hfhhcc.#.#\n#.#..chhhhhhhhhcc.#.#\n#.....hhhhfhhhhc....#\n#.....hhhhhhhhh.....#\n#.....hhhhhhhhh.....#\n#......cccccc.......#\n#......ccccc........#\n#...................#\n#........###........#\n#...................#\n#####################\n\n#####################\n#...................#\n#........###........#\n#...................#\n#.......c.c.c.......#\n#....cccccccc.......#\n#...................#\n#...................#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.pc.hfh$hfh.c..#.#\n#.#....hhhhhhh....#.#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#........###........#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.pc.hfhkhfh.c..#.#\n#.#....hhhhhhh....#.#\n#...................#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.cc.hfhkhfh.c..#.#\n#.#....hhhhhhh....#.#\n#....p..............#\n#...................#\n#####################\n\n#####################\n#.........o.........#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.cc.hfhkhfh.c..#.#\n#.#....hhhhhhh....#.#\n#....p..............#\n#...................#\n#####################\n\nhhhhhhhhhhhh\nhhhhhhhhhhhh\nhhhhhhhh....\nh#fh$hfh.c..\nhhhhhhhh..c.\nh.......p...\nhhhhhhhh..c.\nh#hh$hhh.c..\nhhhhhhhh....\n\n############\n#hhhfhhhhhh#\n#hhhfhh....#\n#fh$hfh.c..#\n#hhh$hh....#\n#.......c.p#\n#hhh$hh....#\n#fh$hhh.c..#\n#hhhfhh....#\n#hhhfhhhhhh#\n############\n\n..........\n..........\n....$.....\n..........\n..........\n.$..$..$..\n....p.....\n..........\n....$.....\n..........\n..........\n\n##############\n#............#\n#............#\n#............#\n#.....$......#\n#............#\n#............#\n#..$..$..$...#\n#.....p......#\n#............#\n#.....$......#\n#............#\n#............#\n#............#\n##############\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$......#\n#.............#\n#.............#\n#.#.$..$..$.#.#\n#......p......#\n#.............#\n#......$......#\n#.............#\n#......#......#\n#.............#\n###############\n\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$......#\n#.............#\n#......h......#\n#.#.$.h$h.$.#.#\n#.p....h......#\n#.............#\n#......$......#\n#.............#\n#......#......#\n#.............#\n###############\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$......#\n#.............#\n#.....hfh.....#\n#.#.$.f@f.$.#.#\n#.p...hfh.....#\n#.............#\n#......$......#\n#.............#\n#......#......#\n#.............#\n###############\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$......#\n#.............#\n#.....hfh.....#\n#.#.$.fkf.$.#.#\n#.p...hfh.....#\n#.............#\n#......$......#\n#.............#\n#......#......#\n#.............#\n###############\n)\n", [1, 1, 0, 0, 3, 3, 0, 3, 2, 3, 1, 2, 2, 3, 1, 0, 4, "restart", 1, 1, 0, 0, 0, 2, 3, 4, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 4], "background wall:0,0,0,0,0,0,0,0,0,0,background:1,1,1,1,1,1,1,0,0,1,1,\n0,0,0,1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,\n0,1,1,background hole:2,2,2,1,1,0,0,1,1,2,background ball hole target:3,2,1,1,0,0,1,1,\n2,background ball hole:4,2,1,1,0,0,background target:5,1,2,background hole target:6,2,1,1,0,0,1,1,2,2,2,\n1,1,0,0,1,1,2,6,2,1,1,0,0,1,1,2,2,2,1,1,0,\n0,1,1,background player:7,1,1,1,background ball:8,0,0,1,1,1,1,1,1,1,0,0,1,1,\n1,1,1,1,1,0,0,1,1,1,8,1,1,1,0,0,1,1,0,0,0,\n1,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,\n", 6, "1627891297042.881"] ], [ - "Match two two by twos", - ["title Match two two by twos\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\nnorepeat_Action\n\n========\nOBJECTS\n========\n\nBackground\nblack black\n11111\n01111\n11101\n11111\n10111\n\n\nWall\ngray black\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nwhite \n00.00\n0...0\n.....\n0...0\n00.00\n\nRed R\nRed \n00000\n00.00\n0...0\n00.00\n00000\n\nGreen G\nGreen\n00000\n0.0.0\n00000\n0.0.0\n00000\n\nBlue B\nBlue \n00000\n0.000\n00.00\n000.0\n00000\n\nYellow Y\nyellow\n00000\n0...0\n00000\n0...0\n00000\n\nfunnel F\ngray black\n00010\n11111\n01000\n11111\n00010\n\ntodestroy\ntransparent white transparent transparent \n20002\n02.20\n0.1.0\n02.20\n20002\n\nMTL\ntransparent\n\nMTR\ntransparent\n\nMBL\ntransparent\n\nMBR\ntransparent\n\nMT\ntransparent\n\nMT2\ntransparent\n\n\nMTa\ntransparent\n\nMT2a\ntransparent\n\n\nMTb\ntransparent\n\nMT2b\ntransparent\n\nMb\ntransparent\n\nML\ntransparent\n\nMR\ntransparent\n\nmatch m\ntransparent\n\ntodelete D\ntransparent\n\ngobble\ntransparent\n.....\n.....\n..0..\n.....\n.....\n\nmidgobble\ntransparent\n.....\n.....\n..0..\n.....\n.....\n\nmoved\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n\n1 = gobble and blue\n2 = gobble and green\n3 = gobble and red\n4 = gobble and yellow\n5 = midgobble and blue\n6 = midgobble and green\n7 = midgobble and red\n8 = midgobble and yellow\n\nColor = red or green or blue or yellow\n\nanymatch = mtl or mtr or mbl or mbr or mt or mb or match or ml or mr or mt2 or mt or mta or mtb or mt2a or mt2b\n\npushable = color or player\n\n=======\nSOUNDS\n=======\n\nsfx0 30674702 (placement)\nsfx1 37302105 (remove)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncolor\nWall,player, Funnel\nmtl\nmtr\nmbl\nmbr\nmt\nmt2\nmta\nmt2a\nmtb\nmt2b\nmb\nml\nmr\nm\ntodelete\ntodestroy\ngobble\nmidgobble\nmoved\n\n======\nRULES\n======\n\n\n\n[todestroy]->[]\n\n(need to repeat this for down direction)\nright [ red \t| | red ] \t\t-> [ ml red \t| | mr red ]\nright [ green \t| | green ] \t-> [ ml green \t| | mr green ]\nright [ blue\t| | blue ] \t\t-> [ ml blue \t| | mr blue ]\nright [ yellow \t| | yellow ] \t-> [ ml yellow \t| | mr yellow ]\n\nright [ ml | ml | mr | mr ] -> [ ml mta | ml mtb | mr mta | mr mtb ]\n\n[ml]->[]\n[mr]->[]\n\n\ndown [ red \t| | red ] \t\t-> [ ml red \t| | mr red ]\ndown [ green \t| | green ] \t-> [ ml green \t| | mr green ]\ndown [ blue\t| | blue ] \t\t-> [ ml blue \t| | mr blue ]\ndown [ yellow \t| | yellow ] \t-> [ ml yellow \t| | mr yellow ]\n\ndown [ ml | ml | mr | mr ] -> [ ml mt2a | ml mt2b | mr mt2a | mr mt2b ]\n\n\ndown [ mta | mta ] -> [ mta no color todestroy | mta no color todestroy] sfx1 again\ndown [ mtb | mtb ] -> [ mtb no color todestroy | mtb no color todestroy ] sfx1 again\nright [ mt2a | mt2a ] -> [ mt2a no color todestroy | mt2a no color todestroy ] sfx1 again\nright [ mt2b | mt2b ] -> [ mt2b no color todestroy | mt2b no color todestroy ] sfx1 again\n\n[anymatch]->[]\n\n\nright [ midgobble | ... | color | no color ] -> [ midgobble | ... | | color ]\nright [ midgobble color | no color ] -> [ midgobble | color ]\n\nup [ gobble | ... | color | no color ] -> [ gobble | ... | | color ]\nup [ gobble color | no color ] -> [ gobble | color ]\n\n\n\n[action player color ] [gobble ] -> [ player moved] [ gobble color] again\n\n\ndown [ color | gobble no color ] -> [ | gobble color ]\ndown [ color | no color | ... | gobble ] -> [ | color | ... | gobble ]\n\n\nleft [ color | midgobble no color ] -> [ | midgobble color ]\nleft [ color | no color | ... | midgobble ] -> [ | color | ... | midgobble ]\n\n[action player no color ] [gobble color] -> [ action player color] [ gobble] sfx0 again\n\ndown [ color | gobble no color ] -> [ | gobble color ]\ndown [ color | no color | ... | gobble ] -> [ | color | ... | gobble ]\n\n\nleft [ color | midgobble no color ] -> [ | midgobble color ]\nleft [ color | no color | ... | midgobble ] -> [ | color | ... | midgobble ]\n\n==============\nWINCONDITIONS\n==============\n\nno color\n\n=======\nLEVELS\n=======\nmessage Level 1 of 3\n\nmessage create two identical 2x2 sections side by side to make them vanish\n\n#########\n#8yy.....\n#y#######\n#b#.....#\n#b#.....#\n#b#..p..#\n#1#.....#\n#F#######\n\nmessage Level 2 of 3\n\n#########\n#6bbbyyy.\n#g#######\n#g#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n\nmessage Level 3 of 3\n\n#########\n#7ryyyyyy\n#r#######\n#r#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\nmessage my congratulations\n\n(\n\n\n#########\n#7yyyyyyy\n#r#######\n#r#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n\n#########\n#6ggbbbyy\n#g#######\n#r#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n\n##############\n#............#\n#............#\n#............#\n#...RR.......#\n#p.R.R.......#\n#...RR.......#\n#...RR.......#\n#............#\n#............#\n#............#\n#............#\n##############\n\n\n#########\n#6gbbbyy#\n#g#######\n#r#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n#########\n#6bbbyyy#\n#g#######\n#g#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n\n###############\n#y#...........#\n#y#...........#\n#y#...........#\n#y#...........#\n#g#...........#\n#g#...........#\n#g#.....p.....#\n#g#...........#\n#r#...........#\n#r#...........#\n#b#...........#\n#b#...........#\n#1#...........#\n###############\n\n\n#############\n#8y.........#\n#y###########\n#b#.........#\n#b#.........#\n#b#.........#\n#g#.........#\n#g#....p....#\n#g#.........#\n#r#.........#\n#r#.........#\n#3#.........#\n#############\n\n#############\n#.#.........#\n#y#.........#\n#y#.........#\n#y#.........#\n#y#....p....#\n#b#.........#\n#b#.........#\n#b#.........#\n#1#.........#\n#############\n\n###############\n#.#...........#\n#y#...........#\n#y#...........#\n#y#...........#\n#g#...........#\n#g#...........#\n#g#.....p.....#\n#r#...........#\n#r#...........#\n#r#...........#\n#b#...........#\n#b#...........#\n#1#...........#\n###############\n\n\n#############\n#.#.........#\n#y#.........#\n#y#.........#\n#y#.........#\n#y#....p....#\n#b#.........#\n#b#.........#\n#b#.........#\n#1#.........#\n#############\n\n###########\n#.........#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.........#\n#....p....#\n#.........#\n###########\n###########\n#.........#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.......y.#\n#....p....#\n#.........#\n###########\n\n\n###########\n#.........#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.........#\n#....p....#\n#.........#\n###########\n\n\n##########\n#........#\n#...yb...#\n#..rgrg..#\n#p.byby..#\n#...gr...#\n#........#\n##########\n\n##########\n#........#\n#...gg...#\n#.p.gg...#\n#...gg...#\n#...gg...#\n#........#\n##########\n\n\n##########\n#........#\n#...yb...#\n#..rgrg..#\n#.byby...#\n#p..gr...#\n#........#\n##########\n\n\n\n##########\n#........#\n#........#\n#..rbbr..#\n#..gyyg..#\n#.p......#\n#........#\n##########\n\n########\n#......#\n#...p..#\n###....#\n#rgbr..#\n#bygy..#\n###....#\n########\n\n\n#############\n#...........#\n#...........#\n#...rrrrr...#\n#..r.rrr.r..#\n#...........#\n#.....p.....#\n#...........#\n#############\n\n\n###########\n#.........#\n#.........#\n#..rr.gg..#\n#..rr.gg..#\n#..rr.gg..#\n#.........#\n#....p....#\n#.........#\n###########\n\n\n\n\n##############\n#............#\n#.....P......#\n#.....R......#\n#...RR.RR....#\n#...RRRRR....#\n#.....RR.....#\n#.....RR.....#\n#............#\n#............#\n#............#\n#............#\n##############\n\n\n\n##############\n#............#\n#............#\n#............#\n#...RR.......#\n#p.R.R.......#\n#...RR.......#\n#...RR.......#\n#............#\n#............#\n#............#\n#............#\n##############\n\n##############\n#............#\n#............#\n#............#\n#...RRGG.....#\n#p.R.RGG.....#\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\n)\n",[3,0,1,4,3,4,3,4,2,4,1,4,1,4,1,4,0,4,0,4,3,4,3,4,3,4,3,2,1,4,1,4,1,4,1,1,4,0,4,3,1,1,3,4,3,4,3,4,2,1,1,1,2,4,3,4,3,4,3,1,1,0,0,3,3,2,2,4,1,1,1,2,4,3,3,4,0,0,3,3,4,1,1,1,1,2,4,3,3,1,1,3,3,3,2,4,1,1,4,0,3,3,3,4,1,1,4,3,4,1,1,4,3,3,4,0,4,2,4],"background wall:0,0,0,0,0,0,0,0,0,\nbackground midgobble:1,background:2,2,2,2,background gobble red:3,0,0,2,\n0,0,0,0,0,0,0,2,0,\nbackground moved:4,4,4,2,0,0,2,0,4,\n4,4,2,0,0,2,0,4,4,\n4,2,0,0,2,0,4,background blue moved:5,background moved player:6,\n2,0,0,2,0,2,background green:7,background yellow:8,2,\n0,0,2,0,0,0,0,0,0,\n",4,"1627891318219.0203"] + "Match two two by twos", + ["title Match two two by twos\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\nnorepeat_Action\n\n========\nOBJECTS\n========\n\nBackground\nblack black\n11111\n01111\n11101\n11111\n10111\n\n\nWall\ngray black\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nwhite \n00.00\n0...0\n.....\n0...0\n00.00\n\nRed R\nRed \n00000\n00.00\n0...0\n00.00\n00000\n\nGreen G\nGreen\n00000\n0.0.0\n00000\n0.0.0\n00000\n\nBlue B\nBlue \n00000\n0.000\n00.00\n000.0\n00000\n\nYellow Y\nyellow\n00000\n0...0\n00000\n0...0\n00000\n\nfunnel F\ngray black\n00010\n11111\n01000\n11111\n00010\n\ntodestroy\ntransparent white transparent transparent \n20002\n02.20\n0.1.0\n02.20\n20002\n\nMTL\ntransparent\n\nMTR\ntransparent\n\nMBL\ntransparent\n\nMBR\ntransparent\n\nMT\ntransparent\n\nMT2\ntransparent\n\n\nMTa\ntransparent\n\nMT2a\ntransparent\n\n\nMTb\ntransparent\n\nMT2b\ntransparent\n\nMb\ntransparent\n\nML\ntransparent\n\nMR\ntransparent\n\nmatch m\ntransparent\n\ntodelete D\ntransparent\n\ngobble\ntransparent\n.....\n.....\n..0..\n.....\n.....\n\nmidgobble\ntransparent\n.....\n.....\n..0..\n.....\n.....\n\nmoved\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n\n1 = gobble and blue\n2 = gobble and green\n3 = gobble and red\n4 = gobble and yellow\n5 = midgobble and blue\n6 = midgobble and green\n7 = midgobble and red\n8 = midgobble and yellow\n\nColor = red or green or blue or yellow\n\nanymatch = mtl or mtr or mbl or mbr or mt or mb or match or ml or mr or mt2 or mt or mta or mtb or mt2a or mt2b\n\npushable = color or player\n\n=======\nSOUNDS\n=======\n\nsfx0 30674702 (placement)\nsfx1 37302105 (remove)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncolor\nWall,player, Funnel\nmtl\nmtr\nmbl\nmbr\nmt\nmt2\nmta\nmt2a\nmtb\nmt2b\nmb\nml\nmr\nm\ntodelete\ntodestroy\ngobble\nmidgobble\nmoved\n\n======\nRULES\n======\n\n\n\n[todestroy]->[]\n\n(need to repeat this for down direction)\nright [ red \t| | red ] \t\t-> [ ml red \t| | mr red ]\nright [ green \t| | green ] \t-> [ ml green \t| | mr green ]\nright [ blue\t| | blue ] \t\t-> [ ml blue \t| | mr blue ]\nright [ yellow \t| | yellow ] \t-> [ ml yellow \t| | mr yellow ]\n\nright [ ml | ml | mr | mr ] -> [ ml mta | ml mtb | mr mta | mr mtb ]\n\n[ml]->[]\n[mr]->[]\n\n\ndown [ red \t| | red ] \t\t-> [ ml red \t| | mr red ]\ndown [ green \t| | green ] \t-> [ ml green \t| | mr green ]\ndown [ blue\t| | blue ] \t\t-> [ ml blue \t| | mr blue ]\ndown [ yellow \t| | yellow ] \t-> [ ml yellow \t| | mr yellow ]\n\ndown [ ml | ml | mr | mr ] -> [ ml mt2a | ml mt2b | mr mt2a | mr mt2b ]\n\n\ndown [ mta | mta ] -> [ mta no color todestroy | mta no color todestroy] sfx1 again\ndown [ mtb | mtb ] -> [ mtb no color todestroy | mtb no color todestroy ] sfx1 again\nright [ mt2a | mt2a ] -> [ mt2a no color todestroy | mt2a no color todestroy ] sfx1 again\nright [ mt2b | mt2b ] -> [ mt2b no color todestroy | mt2b no color todestroy ] sfx1 again\n\n[anymatch]->[]\n\n\nright [ midgobble | ... | color | no color ] -> [ midgobble | ... | | color ]\nright [ midgobble color | no color ] -> [ midgobble | color ]\n\nup [ gobble | ... | color | no color ] -> [ gobble | ... | | color ]\nup [ gobble color | no color ] -> [ gobble | color ]\n\n\n\n[action player color ] [gobble ] -> [ player moved] [ gobble color] again\n\n\ndown [ color | gobble no color ] -> [ | gobble color ]\ndown [ color | no color | ... | gobble ] -> [ | color | ... | gobble ]\n\n\nleft [ color | midgobble no color ] -> [ | midgobble color ]\nleft [ color | no color | ... | midgobble ] -> [ | color | ... | midgobble ]\n\n[action player no color ] [gobble color] -> [ action player color] [ gobble] sfx0 again\n\ndown [ color | gobble no color ] -> [ | gobble color ]\ndown [ color | no color | ... | gobble ] -> [ | color | ... | gobble ]\n\n\nleft [ color | midgobble no color ] -> [ | midgobble color ]\nleft [ color | no color | ... | midgobble ] -> [ | color | ... | midgobble ]\n\n==============\nWINCONDITIONS\n==============\n\nno color\n\n=======\nLEVELS\n=======\nmessage Level 1 of 3\n\nmessage create two identical 2x2 sections side by side to make them vanish\n\n#########\n#8yy.....\n#y#######\n#b#.....#\n#b#.....#\n#b#..p..#\n#1#.....#\n#F#######\n\nmessage Level 2 of 3\n\n#########\n#6bbbyyy.\n#g#######\n#g#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n\nmessage Level 3 of 3\n\n#########\n#7ryyyyyy\n#r#######\n#r#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\nmessage my congratulations\n\n(\n\n\n#########\n#7yyyyyyy\n#r#######\n#r#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n\n#########\n#6ggbbbyy\n#g#######\n#r#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n\n##############\n#............#\n#............#\n#............#\n#...RR.......#\n#p.R.R.......#\n#...RR.......#\n#...RR.......#\n#............#\n#............#\n#............#\n#............#\n##############\n\n\n#########\n#6gbbbyy#\n#g#######\n#r#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n#########\n#6bbbyyy#\n#g#######\n#g#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n\n###############\n#y#...........#\n#y#...........#\n#y#...........#\n#y#...........#\n#g#...........#\n#g#...........#\n#g#.....p.....#\n#g#...........#\n#r#...........#\n#r#...........#\n#b#...........#\n#b#...........#\n#1#...........#\n###############\n\n\n#############\n#8y.........#\n#y###########\n#b#.........#\n#b#.........#\n#b#.........#\n#g#.........#\n#g#....p....#\n#g#.........#\n#r#.........#\n#r#.........#\n#3#.........#\n#############\n\n#############\n#.#.........#\n#y#.........#\n#y#.........#\n#y#.........#\n#y#....p....#\n#b#.........#\n#b#.........#\n#b#.........#\n#1#.........#\n#############\n\n###############\n#.#...........#\n#y#...........#\n#y#...........#\n#y#...........#\n#g#...........#\n#g#...........#\n#g#.....p.....#\n#r#...........#\n#r#...........#\n#r#...........#\n#b#...........#\n#b#...........#\n#1#...........#\n###############\n\n\n#############\n#.#.........#\n#y#.........#\n#y#.........#\n#y#.........#\n#y#....p....#\n#b#.........#\n#b#.........#\n#b#.........#\n#1#.........#\n#############\n\n###########\n#.........#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.........#\n#....p....#\n#.........#\n###########\n###########\n#.........#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.......y.#\n#....p....#\n#.........#\n###########\n\n\n###########\n#.........#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.........#\n#....p....#\n#.........#\n###########\n\n\n##########\n#........#\n#...yb...#\n#..rgrg..#\n#p.byby..#\n#...gr...#\n#........#\n##########\n\n##########\n#........#\n#...gg...#\n#.p.gg...#\n#...gg...#\n#...gg...#\n#........#\n##########\n\n\n##########\n#........#\n#...yb...#\n#..rgrg..#\n#.byby...#\n#p..gr...#\n#........#\n##########\n\n\n\n##########\n#........#\n#........#\n#..rbbr..#\n#..gyyg..#\n#.p......#\n#........#\n##########\n\n########\n#......#\n#...p..#\n###....#\n#rgbr..#\n#bygy..#\n###....#\n########\n\n\n#############\n#...........#\n#...........#\n#...rrrrr...#\n#..r.rrr.r..#\n#...........#\n#.....p.....#\n#...........#\n#############\n\n\n###########\n#.........#\n#.........#\n#..rr.gg..#\n#..rr.gg..#\n#..rr.gg..#\n#.........#\n#....p....#\n#.........#\n###########\n\n\n\n\n##############\n#............#\n#.....P......#\n#.....R......#\n#...RR.RR....#\n#...RRRRR....#\n#.....RR.....#\n#.....RR.....#\n#............#\n#............#\n#............#\n#............#\n##############\n\n\n\n##############\n#............#\n#............#\n#............#\n#...RR.......#\n#p.R.R.......#\n#...RR.......#\n#...RR.......#\n#............#\n#............#\n#............#\n#............#\n##############\n\n##############\n#............#\n#............#\n#............#\n#...RRGG.....#\n#p.R.RGG.....#\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\n)\n", [3, 0, 1, 4, 3, 4, 3, 4, 2, 4, 1, 4, 1, 4, 1, 4, 0, 4, 0, 4, 3, 4, 3, 4, 3, 4, 3, 2, 1, 4, 1, 4, 1, 4, 1, 1, 4, 0, 4, 3, 1, 1, 3, 4, 3, 4, 3, 4, 2, 1, 1, 1, 2, 4, 3, 4, 3, 4, 3, 1, 1, 0, 0, 3, 3, 2, 2, 4, 1, 1, 1, 2, 4, 3, 3, 4, 0, 0, 3, 3, 4, 1, 1, 1, 1, 2, 4, 3, 3, 1, 1, 3, 3, 3, 2, 4, 1, 1, 4, 0, 3, 3, 3, 4, 1, 1, 4, 3, 4, 1, 1, 4, 3, 3, 4, 0, 4, 2, 4], "background wall:0,0,0,0,0,0,0,0,0,\nbackground midgobble:1,background:2,2,2,2,background gobble red:3,0,0,2,\n0,0,0,0,0,0,0,2,0,\nbackground moved:4,4,4,2,0,0,2,0,4,\n4,4,2,0,0,2,0,4,4,\n4,2,0,0,2,0,4,background blue moved:5,background moved player:6,\n2,0,0,2,0,2,background green:7,background yellow:8,2,\n0,0,2,0,0,0,0,0,0,\n", 4, "1627891318219.0203"] ], [ - "Garten der Medusen", - ["title Garten der Medusen\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nnoaction\nagain_interval 0.03\nbackground_color black\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nblood\ndarkred red \n..0..\n.010.\n01110\n.010.\n..0..\n\nMedussa_u 1\ngray green\n..1..\n.111.\n.010.\n00100\n.0.0.\n\n\nMedussa_d 2\ngray green\n.....\n.010.\n.010.\n01110\n.010.\n\nMedussa_l 3\ngray green\n.....\n.100.\n1111.\n01000\n.0.0.\n\nMedussa_r 4\ngray green\n.....\n.001.\n.1111\n00010\n.0.0.\n\nWall\ngray darkgray\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nyellow orange brown\n.000.\n.111.\n11111\n.222.\n.2.2.\n\nstatue\nlightgray gray darkgray\n.000.\n.111.\n11111\n.222.\n.2.2.\n\nmove_up\ntransparent\n\nmove_down\ntransparent\n\nmove_left\ntransparent\n\nmove_right\ntransparent\n\nmove_stop\ntransparent\n\nT\ntransparent\n\nSpawner\nblue\n.000.\n00000\n00000\n00000\n00000\n\nlight_h\nyellow\n.....\n.....\n.000.\n.....\n.....\n\n\nlight_v\nyellow\n.....\n..0..\n..0..\n..0..\n.....\n\ndontspawn\ntransparent\n\n=======\nLEGEND\n=======\n\nmedussa = 1 or 2 or 3 or 4\n\nobstacle = player or wall or medussa or statue\n. = Background\n# = Wall\nP = Player \nS = Spawner\n* = player and spawner\n\ntoken = move_up or move_down or move_left or move_right or move_stop\nlight = light_h or light_v\n\n\n=======\nSOUNDS\n=======\n\nsfx1 77753704 (kill medusa)\nsfx2 22214502 (statue)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n\nSpawner \nblood\n\nlight_h\nlight_v\nPlayer, Wall, Medussa, statue\n\ndontspawn\nT\nToken\n\n\n======\nRULES\n======\n\n\nrandom [ ] -> [ t ]\n[dontspawn]->[]\n\n[ player ] [ spawner ] -> [ player ] [ spawner dontspawn ]\n\n[ spawner no dontspawn ] [ token ] -> [ spawner no dontspawn ] [ ]\n[ spawner no dontspawn ] -> [ spawner player ]\n\n[ light ] -> []\n\n[ up player ] [ T ] -> [ player ] [ T move_up ]\n[ down player ] [ T ] -> [ player ] [ T move_down ]\n[ left player ] [ T ] -> [ player ] [ T move_left ]\n[ right player ] [ T ] -> [ player ] [ T move_right ]\n\n[ move_up ] [ player ] -> [ move_up ] [ up player ] again\n[ move_down ] [ player ] -> [ move_down ] [ down player ] again\n[ move_left ] [ player ] -> [ move_left ] [ left player ] again\n[ move_right ] [ player ] -> [ move_right ] [ right player ] again\n\n[ > player | obstacle ] [ token ] -> [ > player | obstacle ] [ move_stop ]\n\n[ > Player | Medussa ] -> [ > player | blood ] sfx1\n[ > player ] [ move_stop ] -> [ player ] [ move_stop ]\n\n[move_stop]->[]\n\nlate [ t ] -> [ ]\n\n\nlate up [ 1 | no obstacle ] -> [ 1 | light_v ]\nlate down [ 2 | no obstacle ] -> [ 2 | light_v ]\nlate left [ 3 | no obstacle ] -> [ 3 | light_h ]\nlate right [ 4 | no obstacle ] -> [ 4 | light_h ]\n\nlate horizontal [ light_h | no obstacle ] -> [ light_h | light_h ]\nlate vertical \t[ light_v | no obstacle ] -> [ light_v | light_v ]\n\n\nlate up [ 1 | player ] -> [ 1 | player light_h ]\nlate down [ 2 | player ] -> [ 2 | player light_h ]\nlate left [ 3 | player ] -> [ 3 | player light_h ]\nlate right [ 4 | player ] -> [ 4 | player light_h ]\n\nlate horizontal [ light_h | player ] -> [ light_h | player light_h ]\nlate vertical [ light_v | player ] -> [ light_v | player light_v ]\n\nlate [ player light ] -> [ statue light ] sfx2 again\n\n==============\nWINCONDITIONS\n==============\n\nNo Medussa\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 8\n\n#############\n#...........#\n#...........#\n#...1.......#\n#..3....2...#\n#...........#\n#...........#\n#..3..p..4..#\n#...2.......#\n#...........#\n#...........#\n#############\n\nmessage Level 2 von 8\n\n#############\n#...........#\n#...........#\n#...4.......#\n#...........#\n#...........#\n#.....p..2..#\n#...........#\n#..1........#\n#.......3...#\n#...........#\n#...........#\n#############\n\n\nmessage Level 3 von 8\n\n#############\n#...........#\n#...........#\n#...4.......#\n#........2..#\n#...........#\n#.....*.....#\n#...........#\n#..1........#\n#.......3...#\n#...........#\n#...........#\n#############\n\nmessage Level 4 von 8\n\n\n############\n#....34....#\n#....34....#\n#..........#\n#.....*....#\n#..........#\n#..........#\n#.4......3.#\n#..........#\n############\n\nmessage Level 5 von 8\n\n##############\n#............#\n#..2.2.2.2...#\n#............#\n#............#\n#..........*.#\n#............#\n#............#\n#.1.1.1.1....#\n#............#\n##############\n\nmessage Level 6 von 8\n\n\n#############\n#...........#\n#.4.........#\n#..2222.....#\n#...........#\n#...........#\n#........*..#\n#...........#\n#...........#\n#..1111.....#\n#.4.........#\n#...........#\n#############\n\nmessage Level 7 von 8\n\n\n###################\n#.................#\n#.................#\n#.....4...........#\n#.....4...........#\n#.....4...........#\n#............222..#\n#.................#\n#.................#\n#........*........#\n#.................#\n#.................#\n#..111............#\n#...........3.....#\n#...........3.....#\n#...........3.....#\n#.................#\n#.................#\n###################\n\n\nmessage Level 8 von 8\n\n###############\n#..........22.#\n#4............#\n#4............#\n#.............#\n#.............#\n#.............#\n#......*......#\n#.............#\n#.............#\n#.............#\n#............3#\n#............3#\n#.11..........#\n###############\n\nmessage ich gratuliere!\n\n(\n#################\n#...............#\n#...........22..#\n#.4.............#\n#.4.............#\n#...............#\n#...............#\n#...............#\n#.......*.......#\n#...............#\n#...............#\n#...............#\n#.............3.#\n#.............3.#\n#..11...........#\n#...............#\n#################\n\n\n#################\n#...............#\n#...............#\n#....4..........#\n#....4..........#\n#...........22..#\n#...............#\n#...............#\n#.......*.......#\n#...............#\n#...............#\n#..11...........#\n#..........3....#\n#..........3....#\n#...............#\n#...............#\n#################\n\n\n#################\n#...............#\n#....4..........#\n#....4..........#\n#....4..........#\n#...........222.#\n#...............#\n#...............#\n#.......*.......#\n#...............#\n#...............#\n#.111...........#\n#..........3....#\n#..........3....#\n#..........3....#\n#...............#\n#################\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.................11#\n#.........*........2#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.1.................#\n#...................#\n#####################\n\n\n###################\n#.................#\n#.................#\n#....4............#\n#....4............#\n#............22...#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#..11.............#\n#...........3.....#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n###################\n\n########\n#......#\n#.4....#\n#..2...#\n#....*.#\n#..1...#\n#.4....#\n#......#\n########\n\n\n##########\n#........#\n#.4......#\n#..2.....#\n#........#\n#.....*..#\n#........#\n#..1.....#\n#.4......#\n#........#\n##########\n\n#########\n#.......#\n#.2...2.#\n#..4.3..#\n#.......#\n#...*...#\n#.......#\n#########\n\n#############\n#...........#\n#.4.........#\n#..2........#\n#...........#\n#...........#\n#........*..#\n#...........#\n#...........#\n#..1........#\n#.4.........#\n#...........#\n#############\n\n###############\n#.............#\n#.4...........#\n#..2222.......#\n#.............#\n#.............#\n#...........*.#\n#.............#\n#.............#\n#..1111.......#\n#.4...........#\n#.............#\n###############\n\n\n##############\n#4...........#\n#.2222.......#\n#............#\n#............#\n#..........*.#\n#............#\n#............#\n#.1111.......#\n#4...........#\n##############\n\n#####################\n#...................#\n#..2.2.2.2..........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#..............*....#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.1.1.1.1...........#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#.............2.....#\n#...................#\n#...................#\n#................3..#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...4...............#\n#...................#\n#.....1.............#\n#...................#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#......4............#\n#.............2.....#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#.....1.............#\n#............3......#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#....4..............#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...4...............#\n#...................#\n#.....1.............#\n#.............1.....#\n#...................#\n#####################\n\n\n#############\n#...........#\n#...........#\n#...1.......#\n#..4....2...#\n#...........#\n#...........#\n#..3..*..4..#\n#...2.......#\n#...........#\n#...........#\n#############\n\n#############\n#...........#\n#...........#\n#...1.......#\n#..3....2...#\n#...........#\n#...........#\n#..3..*..4..#\n#...2.......#\n#...........#\n#...........#\n#############\n\n##############\n#............#\n#............#\n#...4........#\n#............#\n#............#\n#............#\n#.........1..#\n#..*.........#\n#............#\n##############\n\n##############\n#............#\n#............#\n#..4.........#\n#............#\n#............#\n#..#.........#\n#.4..........#\n#..p......1..#\n#............#\n##############\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#............1....#\n#.......p.........#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#............1....#\n#.......*.........#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#............1....#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n###################\n#.................#\n#.................#\n#.................#\n#....4............#\n#............2....#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n\n###################\n#.................#\n#.................#\n#.................#\n#....2............#\n#.................#\n#.................#\n#.................#\n#.......*....2....#\n#.................#\n#.................#\n#...1.............#\n#..............3..#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n###################\n#.................#\n#.................#\n#.................#\n#....2............#\n#.................#\n#.................#\n#............2....#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#..............3..#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n###################\n#.................#\n#.................#\n#.................#\n#....2............#\n#............2....#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#.............2.....#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#.....1.............#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#.............2.....#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.....1.............#\n#...................#\n#####################\n\n#####################\n#...................#\n#.............22....#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#....11.............#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#......4............#\n#.............2.....#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#.....1.............#\n#............3......#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#......4............#\n#.............2.....#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#.....1.............#\n#............3......#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#.............2.....#\n#....4..............#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#..............3....#\n#.....1.............#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#.......1...........#\n#......3....2.......#\n#...................#\n#...................#\n#......3..p..4......#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#.......1...........#\n#......3....2.......#\n#...................#\n#...................#\n#......3..p..4......#\n#.......2...........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#.......1...........#\n#......3....2.......#\n#...................#\n#...................#\n#......3..p..4......#\n#.......2...........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#.......1...........#\n#......3....2.......#\n#...................#\n#...................#\n#......3..p..4......#\n#.......2...........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n\n\n############\n#....34....#\n#....34....#\n#..........#\n#..........#\n#.....*....#\n#..........#\n#..........#\n#.4......3.#\n#..........#\n############\n\n\n############\n#....34....#\n#....34....#\n#..........#\n#.....*....#\n#..........#\n#.4......3.#\n#..........#\n############\n\n\n###################\n#.................#\n#.................#\n#....4............#\n#....4............#\n#............22...#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#..11.............#\n#.4...............#\n#.4...............#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n\n###############\n#.............#\n#.............#\n#...4.........#\n#.............#\n#.............#\n#.............#\n#......p...2..#\n#.............#\n#.............#\n#..1..........#\n#.........3...#\n#.............#\n#.............#\n###############\n\n###################\n#.................#\n#.................#\n#.................#\n#....4............#\n#.................#\n#.................#\n#.................#\n#.......p....2....#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n\n###################\n#.................#\n#.................#\n#.................#\n#....4............#\n#............2....#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n#############\n#....3.4....#\n#....3.4....#\n#...........#\n#.....*.....#\n#...........#\n#...........#\n#.4.......3.#\n#...........#\n#############\n\n)\n",[1,0,1,0,1,0,3,0,1,2,3,0,1,2,2],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,background medussa_r:2,1,1,1,1,1,1,1,2,1,0,\n0,1,background light_h:3,background medussa_d:4,background light_v:5,5,5,5,5,background medussa_u:6,3,1,0,\n0,1,3,4,5,5,5,5,5,6,3,1,0,\n0,1,3,4,5,5,5,5,5,6,3,1,0,\n0,1,3,4,5,5,background statue:7,5,5,6,3,1,0,\n0,1,7,1,1,1,1,1,1,1,7,1,0,\n0,1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,7,1,1,1,background dontspawn spawner:8,1,1,1,1,background player:9,0,\n0,1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,1,1,7,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n",11,"1627891371908.893"] + "Garten der Medusen", + ["title Garten der Medusen\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nnoaction\nagain_interval 0.03\nbackground_color black\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nblood\ndarkred red \n..0..\n.010.\n01110\n.010.\n..0..\n\nMedussa_u 1\ngray green\n..1..\n.111.\n.010.\n00100\n.0.0.\n\n\nMedussa_d 2\ngray green\n.....\n.010.\n.010.\n01110\n.010.\n\nMedussa_l 3\ngray green\n.....\n.100.\n1111.\n01000\n.0.0.\n\nMedussa_r 4\ngray green\n.....\n.001.\n.1111\n00010\n.0.0.\n\nWall\ngray darkgray\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nyellow orange brown\n.000.\n.111.\n11111\n.222.\n.2.2.\n\nstatue\nlightgray gray darkgray\n.000.\n.111.\n11111\n.222.\n.2.2.\n\nmove_up\ntransparent\n\nmove_down\ntransparent\n\nmove_left\ntransparent\n\nmove_right\ntransparent\n\nmove_stop\ntransparent\n\nT\ntransparent\n\nSpawner\nblue\n.000.\n00000\n00000\n00000\n00000\n\nlight_h\nyellow\n.....\n.....\n.000.\n.....\n.....\n\n\nlight_v\nyellow\n.....\n..0..\n..0..\n..0..\n.....\n\ndontspawn\ntransparent\n\n=======\nLEGEND\n=======\n\nmedussa = 1 or 2 or 3 or 4\n\nobstacle = player or wall or medussa or statue\n. = Background\n# = Wall\nP = Player \nS = Spawner\n* = player and spawner\n\ntoken = move_up or move_down or move_left or move_right or move_stop\nlight = light_h or light_v\n\n\n=======\nSOUNDS\n=======\n\nsfx1 77753704 (kill medusa)\nsfx2 22214502 (statue)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n\nSpawner \nblood\n\nlight_h\nlight_v\nPlayer, Wall, Medussa, statue\n\ndontspawn\nT\nToken\n\n\n======\nRULES\n======\n\n\nrandom [ ] -> [ t ]\n[dontspawn]->[]\n\n[ player ] [ spawner ] -> [ player ] [ spawner dontspawn ]\n\n[ spawner no dontspawn ] [ token ] -> [ spawner no dontspawn ] [ ]\n[ spawner no dontspawn ] -> [ spawner player ]\n\n[ light ] -> []\n\n[ up player ] [ T ] -> [ player ] [ T move_up ]\n[ down player ] [ T ] -> [ player ] [ T move_down ]\n[ left player ] [ T ] -> [ player ] [ T move_left ]\n[ right player ] [ T ] -> [ player ] [ T move_right ]\n\n[ move_up ] [ player ] -> [ move_up ] [ up player ] again\n[ move_down ] [ player ] -> [ move_down ] [ down player ] again\n[ move_left ] [ player ] -> [ move_left ] [ left player ] again\n[ move_right ] [ player ] -> [ move_right ] [ right player ] again\n\n[ > player | obstacle ] [ token ] -> [ > player | obstacle ] [ move_stop ]\n\n[ > Player | Medussa ] -> [ > player | blood ] sfx1\n[ > player ] [ move_stop ] -> [ player ] [ move_stop ]\n\n[move_stop]->[]\n\nlate [ t ] -> [ ]\n\n\nlate up [ 1 | no obstacle ] -> [ 1 | light_v ]\nlate down [ 2 | no obstacle ] -> [ 2 | light_v ]\nlate left [ 3 | no obstacle ] -> [ 3 | light_h ]\nlate right [ 4 | no obstacle ] -> [ 4 | light_h ]\n\nlate horizontal [ light_h | no obstacle ] -> [ light_h | light_h ]\nlate vertical \t[ light_v | no obstacle ] -> [ light_v | light_v ]\n\n\nlate up [ 1 | player ] -> [ 1 | player light_h ]\nlate down [ 2 | player ] -> [ 2 | player light_h ]\nlate left [ 3 | player ] -> [ 3 | player light_h ]\nlate right [ 4 | player ] -> [ 4 | player light_h ]\n\nlate horizontal [ light_h | player ] -> [ light_h | player light_h ]\nlate vertical [ light_v | player ] -> [ light_v | player light_v ]\n\nlate [ player light ] -> [ statue light ] sfx2 again\n\n==============\nWINCONDITIONS\n==============\n\nNo Medussa\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 8\n\n#############\n#...........#\n#...........#\n#...1.......#\n#..3....2...#\n#...........#\n#...........#\n#..3..p..4..#\n#...2.......#\n#...........#\n#...........#\n#############\n\nmessage Level 2 von 8\n\n#############\n#...........#\n#...........#\n#...4.......#\n#...........#\n#...........#\n#.....p..2..#\n#...........#\n#..1........#\n#.......3...#\n#...........#\n#...........#\n#############\n\n\nmessage Level 3 von 8\n\n#############\n#...........#\n#...........#\n#...4.......#\n#........2..#\n#...........#\n#.....*.....#\n#...........#\n#..1........#\n#.......3...#\n#...........#\n#...........#\n#############\n\nmessage Level 4 von 8\n\n\n############\n#....34....#\n#....34....#\n#..........#\n#.....*....#\n#..........#\n#..........#\n#.4......3.#\n#..........#\n############\n\nmessage Level 5 von 8\n\n##############\n#............#\n#..2.2.2.2...#\n#............#\n#............#\n#..........*.#\n#............#\n#............#\n#.1.1.1.1....#\n#............#\n##############\n\nmessage Level 6 von 8\n\n\n#############\n#...........#\n#.4.........#\n#..2222.....#\n#...........#\n#...........#\n#........*..#\n#...........#\n#...........#\n#..1111.....#\n#.4.........#\n#...........#\n#############\n\nmessage Level 7 von 8\n\n\n###################\n#.................#\n#.................#\n#.....4...........#\n#.....4...........#\n#.....4...........#\n#............222..#\n#.................#\n#.................#\n#........*........#\n#.................#\n#.................#\n#..111............#\n#...........3.....#\n#...........3.....#\n#...........3.....#\n#.................#\n#.................#\n###################\n\n\nmessage Level 8 von 8\n\n###############\n#..........22.#\n#4............#\n#4............#\n#.............#\n#.............#\n#.............#\n#......*......#\n#.............#\n#.............#\n#.............#\n#............3#\n#............3#\n#.11..........#\n###############\n\nmessage ich gratuliere!\n\n(\n#################\n#...............#\n#...........22..#\n#.4.............#\n#.4.............#\n#...............#\n#...............#\n#...............#\n#.......*.......#\n#...............#\n#...............#\n#...............#\n#.............3.#\n#.............3.#\n#..11...........#\n#...............#\n#################\n\n\n#################\n#...............#\n#...............#\n#....4..........#\n#....4..........#\n#...........22..#\n#...............#\n#...............#\n#.......*.......#\n#...............#\n#...............#\n#..11...........#\n#..........3....#\n#..........3....#\n#...............#\n#...............#\n#################\n\n\n#################\n#...............#\n#....4..........#\n#....4..........#\n#....4..........#\n#...........222.#\n#...............#\n#...............#\n#.......*.......#\n#...............#\n#...............#\n#.111...........#\n#..........3....#\n#..........3....#\n#..........3....#\n#...............#\n#################\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.................11#\n#.........*........2#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.1.................#\n#...................#\n#####################\n\n\n###################\n#.................#\n#.................#\n#....4............#\n#....4............#\n#............22...#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#..11.............#\n#...........3.....#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n###################\n\n########\n#......#\n#.4....#\n#..2...#\n#....*.#\n#..1...#\n#.4....#\n#......#\n########\n\n\n##########\n#........#\n#.4......#\n#..2.....#\n#........#\n#.....*..#\n#........#\n#..1.....#\n#.4......#\n#........#\n##########\n\n#########\n#.......#\n#.2...2.#\n#..4.3..#\n#.......#\n#...*...#\n#.......#\n#########\n\n#############\n#...........#\n#.4.........#\n#..2........#\n#...........#\n#...........#\n#........*..#\n#...........#\n#...........#\n#..1........#\n#.4.........#\n#...........#\n#############\n\n###############\n#.............#\n#.4...........#\n#..2222.......#\n#.............#\n#.............#\n#...........*.#\n#.............#\n#.............#\n#..1111.......#\n#.4...........#\n#.............#\n###############\n\n\n##############\n#4...........#\n#.2222.......#\n#............#\n#............#\n#..........*.#\n#............#\n#............#\n#.1111.......#\n#4...........#\n##############\n\n#####################\n#...................#\n#..2.2.2.2..........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#..............*....#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.1.1.1.1...........#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#.............2.....#\n#...................#\n#...................#\n#................3..#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...4...............#\n#...................#\n#.....1.............#\n#...................#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#......4............#\n#.............2.....#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#.....1.............#\n#............3......#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#....4..............#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...4...............#\n#...................#\n#.....1.............#\n#.............1.....#\n#...................#\n#####################\n\n\n#############\n#...........#\n#...........#\n#...1.......#\n#..4....2...#\n#...........#\n#...........#\n#..3..*..4..#\n#...2.......#\n#...........#\n#...........#\n#############\n\n#############\n#...........#\n#...........#\n#...1.......#\n#..3....2...#\n#...........#\n#...........#\n#..3..*..4..#\n#...2.......#\n#...........#\n#...........#\n#############\n\n##############\n#............#\n#............#\n#...4........#\n#............#\n#............#\n#............#\n#.........1..#\n#..*.........#\n#............#\n##############\n\n##############\n#............#\n#............#\n#..4.........#\n#............#\n#............#\n#..#.........#\n#.4..........#\n#..p......1..#\n#............#\n##############\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#............1....#\n#.......p.........#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#............1....#\n#.......*.........#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#............1....#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n###################\n#.................#\n#.................#\n#.................#\n#....4............#\n#............2....#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n\n###################\n#.................#\n#.................#\n#.................#\n#....2............#\n#.................#\n#.................#\n#.................#\n#.......*....2....#\n#.................#\n#.................#\n#...1.............#\n#..............3..#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n###################\n#.................#\n#.................#\n#.................#\n#....2............#\n#.................#\n#.................#\n#............2....#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#..............3..#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n###################\n#.................#\n#.................#\n#.................#\n#....2............#\n#............2....#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#.............2.....#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#.....1.............#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#.............2.....#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.....1.............#\n#...................#\n#####################\n\n#####################\n#...................#\n#.............22....#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#....11.............#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#......4............#\n#.............2.....#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#.....1.............#\n#............3......#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#......4............#\n#.............2.....#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#.....1.............#\n#............3......#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#.............2.....#\n#....4..............#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#..............3....#\n#.....1.............#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#.......1...........#\n#......3....2.......#\n#...................#\n#...................#\n#......3..p..4......#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#.......1...........#\n#......3....2.......#\n#...................#\n#...................#\n#......3..p..4......#\n#.......2...........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#.......1...........#\n#......3....2.......#\n#...................#\n#...................#\n#......3..p..4......#\n#.......2...........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#.......1...........#\n#......3....2.......#\n#...................#\n#...................#\n#......3..p..4......#\n#.......2...........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n\n\n############\n#....34....#\n#....34....#\n#..........#\n#..........#\n#.....*....#\n#..........#\n#..........#\n#.4......3.#\n#..........#\n############\n\n\n############\n#....34....#\n#....34....#\n#..........#\n#.....*....#\n#..........#\n#.4......3.#\n#..........#\n############\n\n\n###################\n#.................#\n#.................#\n#....4............#\n#....4............#\n#............22...#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#..11.............#\n#.4...............#\n#.4...............#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n\n###############\n#.............#\n#.............#\n#...4.........#\n#.............#\n#.............#\n#.............#\n#......p...2..#\n#.............#\n#.............#\n#..1..........#\n#.........3...#\n#.............#\n#.............#\n###############\n\n###################\n#.................#\n#.................#\n#.................#\n#....4............#\n#.................#\n#.................#\n#.................#\n#.......p....2....#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n\n###################\n#.................#\n#.................#\n#.................#\n#....4............#\n#............2....#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n#############\n#....3.4....#\n#....3.4....#\n#...........#\n#.....*.....#\n#...........#\n#...........#\n#.4.......3.#\n#...........#\n#############\n\n)\n", [1, 0, 1, 0, 1, 0, 3, 0, 1, 2, 3, 0, 1, 2, 2], "background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,background medussa_r:2,1,1,1,1,1,1,1,2,1,0,\n0,1,background light_h:3,background medussa_d:4,background light_v:5,5,5,5,5,background medussa_u:6,3,1,0,\n0,1,3,4,5,5,5,5,5,6,3,1,0,\n0,1,3,4,5,5,5,5,5,6,3,1,0,\n0,1,3,4,5,5,background statue:7,5,5,6,3,1,0,\n0,1,7,1,1,1,1,1,1,1,7,1,0,\n0,1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,7,1,1,1,background dontspawn spawner:8,1,1,1,1,background player:9,0,\n0,1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,1,1,7,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 11, "1627891371908.893"] ], [ - "Kreiseln", - ["title Kreiseln\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nagain_interval 0.1\nverbose_logging\n\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen darkblue\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\npink\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nbrown yellow white blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nYellow yellow orange\n.111.\n10001\n10001\n21002\n.222.\n\n\nhinge H\norange brown darkbrown\n10101\n01210\n12221\n01210\n10101\n\ndoor_l L\norange brown\n.....\n0000.\n11110\n0000.\n.....\n\n\ndoor_r R\norange brown\n.....\n.0000\n01111\n.0000\n.....\n\n\n\ndoor_u U\norange brown\n.010.\n.010.\n.010.\n.010.\n..0..\n\ndoor_d D\norange brown\n..0..\n.010.\n.010.\n.010.\n.010.\n\n\ndoor_dl \norange brown\n.....\n..00.\n.010.\n010..\n10...\n\n\ndoor_dr \norange brown\n.....\n.00..\n.010.\n..010\n...01\n\n\ndoor_ul \norange brown\n10...\n010..\n.010.\n..00.\n.....\n\ndoor_ur \norange brown\n...01\n..010\n.010.\n.00..\n.....\n\nul\norange\n0....\n.....\n.....\n.....\n.....\n\nur\norange\n....0\n.....\n.....\n.....\n.....\n\n\ndl\norange\n.....\n.....\n.....\n.....\n0....\n\n\ndr\norange\n.....\n.....\n.....\n.....\n....0\n\n\ncw\ntransparent\n\nccw \ntransparent\n\nknock\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\northo = door_u or door_d or door_l or door_r\ndiagonal = door_ul or door_ur or door_dl or door_dr\nDoor = ortho or diagonal\ndoorpart = door or hinge\nobstacle = wall or player or hinge or crate\nw = cw or ccw\n\n\npushable = player or crate or ortho\n\npushing = player or crate\n\npixel = ul or ur or dl or dr\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, hinge\ndoor\ncw, ccw\nul\nur\ndl\ndr\nknock\n\n======\nRULES\n======\n\n[pixel]->[]\n\n\ndown [ cw door_dl | pushable | pushable ] -> [ cw door_dl | down pushable | left pushable ]\nleft [ ccw door_dl | pushable | pushable ] -> [ ccw door_dl | left pushable | down pushable ]\n\ndown [ ccw door_dr | pushable | pushable ] -> [ ccw door_dr | down pushable | right pushable ]\nright [ cw door_dr | pushable | pushable ] -> [ cw door_dr | right pushable | down pushable ]\n\nup [ ccw door_ul | pushable | pushable ] -> [ ccw door_ul | up pushable | left pushable ]\nleft [ cw door_ul | pushable | pushable ] -> [ cw door_ul | left pushable | up pushable ]\n\nup [ cw door_ur | pushable | pushable ] -> [ cw door_ur | up pushable | right pushable ]\nright [ ccw door_ur | pushable | pushable ] -> [ ccw door_ur | right pushable | up pushable ]\n\n[ > pushable | player ] -> [ > pushable | > player ]\n\ndown [ cw door_dl | pushable ] -> [ cw door_dl | down pushable ]\nleft [ ccw door_dl | pushable ] -> [ ccw door_dl | left pushable ]\n\ndown [ ccw door_dr | pushable ] -> [ ccw door_dr | down pushable ]\nright [ cw door_dr | pushable ] -> [ cw door_dr | right pushable ]\n\nup [ ccw door_ul | pushable ] -> [ ccw door_ul | up pushable ]\nleft [ cw door_ul | pushable ] -> [ cw door_ul | left pushable ]\n\nup [ cw door_ur | pushable ] -> [ cw door_ur | up pushable ]\nright [ ccw door_ur | pushable ] -> [ ccw door_ur | right pushable ]\n\n\ndown [ cw door_dl | ] -> [ | door_l ]\nleft [ ccw door_dl | ] -> [ | door_d ]\n\ndown [ ccw door_dr | ] -> [ | door_r ]\nright [ cw door_dr | ] -> [ | door_d ]\n\nup [ ccw door_ul | ] -> [ | door_l ]\nleft [ cw door_ul | ] -> [ | door_u ]\n\nup [ cw door_ur | ] -> [ | door_r ]\nright [ ccw door_ur | ] -> [ | door_u ]\n\n\n\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > player | crate | crate ] -> cancel\n([ > crate | stationary crate ] -> [ > crate | > crate ])\n\n[ > player | door ] -> [ > player knock | > door ]\n[> pushing | knock] -> [ pushing knock | knock ]\n\n[knock]->[]\n\nright [ down door_r | hinge ] -> [ down door_r | hinge ccw ] \nright [ up door_r | hinge ] -> [ up door_r | hinge cw ] \n\nleft [ up door_l | hinge ] -> [ up door_l | hinge ccw ] \nleft [ down door_l | hinge ] -> [ down door_l | hinge cw ] \n\nup [ left door_u | hinge ] -> [ left door_u | hinge cw ] \nup [ right door_u | hinge ] -> [ right door_u | hinge ccw ] \n\ndown [ right door_d | hinge ] -> [ right door_d | hinge cw ] \ndown [ left door_d | hinge ] -> [ left door_d | hinge ccw ] \n\n\n[ door_u ] -> [ up door_u ]\n[ door_d ] -> [ down door_d ]\n[ door_l ] -> [ left door_l ]\n[ door_r ] -> [ right door_r ]\n\n[ > door | hinge cw ] -> [ ^ door cw | hinge cw ]\n[ > door | hinge ccw ] -> [ ^ door ccw | hinge ccw ]\n[ > door | no hinge ] -> [ door | ]\n\n\ndown [ ccw door_r | wall ] -> cancel\nup [ cw door_r | wall ] -> cancel\ndown [ cw door_l | wall ] -> cancel\nup [ ccw door_l | wall ] -> cancel\nright [ ccw door_u | wall ] -> cancel\nleft [ cw door_u | wall ] -> cancel\nright [ cw door_d | wall ] -> cancel\nleft [ ccw door_d | wall ] -> cancel\n\ndown [ ccw door_r | pushable ] -> [ ccw door_r | right pushable ccw ]\nup [ cw door_r | pushable ] -> [ cw door_r | right pushable cw ]\ndown [ cw door_l | pushable ] -> [ cw door_l | left pushable cw ]\nup [ ccw door_l | pushable ] -> [ ccw door_l | left pushable ccw ]\nright [ ccw door_u | pushable ] -> [ ccw door_u | up pushable ccw ]\nleft [ cw door_u | pushable ] -> [ cw door_u | up pushable cw ]\nright [ cw door_d | pushable ] -> [ cw door_d | down pushable cw ]\nleft [ ccw door_d | pushable ] -> [ ccw door_d | down pushable ccw ]\n\n[ > crate | stationary crate ] -> [ > crate | > crate ]\n[ > crate | > crate | > crate | ... | > crate ] -> [ > crate | > crate | > crate | ... | stationary crate ]\n\n[ cw > crate | > crate | > crate ] -> [ cw > crate | > crate | v crate ]\n[ ccw > crate | > crate | > crate ] -> [ cw > crate | > crate | ^ crate ]\n[ w crate ] -> [ crate ]\n\n[ > crate | no obstacle ] -> [ | crate ] \n+ [ > player | no obstacle ] -> [ | player ] \n\n[ moving door ] -> [ door ] \n\n+ down [ ccw door_r | ] -> [ | ccw door_ur ]\n+ up [ cw door_r | ] -> [ | cw door_dr ]\n+ down [ cw door_l | ] -> [ | cw door_ul ]\n+ up [ ccw door_l | ] -> [ | ccw door_dl ]\n\n+ right [ ccw door_u | ] -> [ | ccw door_ul ]\n+ left [ cw door_u | ] -> [ | cw door_ur ]\n+ right [ cw door_d | ] -> [ | cw door_dl ]\n+ left [ ccw door_d | ] -> [ | ccw door_dr ]\n\n[ diagonal ] -> again\n\n[ w hinge ] -> [ hinge ]\n[ w ortho ] -> [ ortho ]\n\nlate [ crate door ] -> cancel\nlate [ player door ] -> cancel\n\n\nlate up [ door_ul | ] -> [ door_ul | dl ]\nlate left [ door_ul | ] -> [ door_ul | ur ]\n\nlate down [ door_dl | ] -> [ door_dl | ul ]\nlate left [ door_dl | ] -> [ door_dl | dr ]\n\nlate up [ door_ur | ] -> [ door_ur | dr ]\nlate right [ door_ur | ] -> [ door_ur | ul ]\n\nlate down [ door_dr | ] -> [ door_dr | ur ]\nlate right [ door_dr | ] -> [ door_dr | dl ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nno diagonal\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 5\n\n#######\n#.....#\n#..o..#\n#.....#\n#.d...#\n#.hl..#\n#.u.d.#\n#..rh.#\n#..*u.#\n#.....#\n#..p..#\n#.....#\n#######\n\nmessage Level 2 von 5\n\n\n#################\n#...*...*.odo...#\n#.p.*...*.oho...#\n#...*...*.ouo...#\n#################\n\nmessage Level 3 von 5\n\n\n#########\n#.......#\n#..rhl..#\n#.do*od.#\n#.h*.*h.#\n#.uo*ou.#\n#..rhl..#\n#.p.....#\n#########\n\nmessage Level 4 von 5\n\n#########\n#...o...#\n#..rhl..#\n#.d*.*d.#\n#.ho.oh.#\n#.u*o*u.#\n#..rhl..#\n#.p.....#\n#########\n\nmessage Level 5 von 5\n\n#########\n#...o...#\n#.hl.rh.#\n#.u*d*u.#\n#o.rhl.o#\n#.d*u*d.#\n#phl.rh.#\n#...o...#\n#########\n\nmessage Sie sind aber talentiert!\n\n\n",[0,3,3,0,0,0,1,1,0],"background wall:0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\nbackground:1,1,1,1,background door_r:2,1,1,\n1,1,1,1,0,0,1,\n1,1,background door_d:3,background hinge:4,1,1,1,\n1,1,1,0,0,1,background target:5,\n1,background player:6,background door_l:7,1,2,1,1,\n1,1,0,0,1,1,1,\n1,1,1,4,background door_u:8,1,1,\n1,0,0,1,1,1,1,\n1,1,7,background crate:9,1,1,1,\n0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\n",1,"1627891389385.0288"] + "Kreiseln", + ["title Kreiseln\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nagain_interval 0.1\nverbose_logging\n\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen darkblue\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\npink\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nbrown yellow white blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nYellow yellow orange\n.111.\n10001\n10001\n21002\n.222.\n\n\nhinge H\norange brown darkbrown\n10101\n01210\n12221\n01210\n10101\n\ndoor_l L\norange brown\n.....\n0000.\n11110\n0000.\n.....\n\n\ndoor_r R\norange brown\n.....\n.0000\n01111\n.0000\n.....\n\n\n\ndoor_u U\norange brown\n.010.\n.010.\n.010.\n.010.\n..0..\n\ndoor_d D\norange brown\n..0..\n.010.\n.010.\n.010.\n.010.\n\n\ndoor_dl \norange brown\n.....\n..00.\n.010.\n010..\n10...\n\n\ndoor_dr \norange brown\n.....\n.00..\n.010.\n..010\n...01\n\n\ndoor_ul \norange brown\n10...\n010..\n.010.\n..00.\n.....\n\ndoor_ur \norange brown\n...01\n..010\n.010.\n.00..\n.....\n\nul\norange\n0....\n.....\n.....\n.....\n.....\n\nur\norange\n....0\n.....\n.....\n.....\n.....\n\n\ndl\norange\n.....\n.....\n.....\n.....\n0....\n\n\ndr\norange\n.....\n.....\n.....\n.....\n....0\n\n\ncw\ntransparent\n\nccw \ntransparent\n\nknock\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\northo = door_u or door_d or door_l or door_r\ndiagonal = door_ul or door_ur or door_dl or door_dr\nDoor = ortho or diagonal\ndoorpart = door or hinge\nobstacle = wall or player or hinge or crate\nw = cw or ccw\n\n\npushable = player or crate or ortho\n\npushing = player or crate\n\npixel = ul or ur or dl or dr\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, hinge\ndoor\ncw, ccw\nul\nur\ndl\ndr\nknock\n\n======\nRULES\n======\n\n[pixel]->[]\n\n\ndown [ cw door_dl | pushable | pushable ] -> [ cw door_dl | down pushable | left pushable ]\nleft [ ccw door_dl | pushable | pushable ] -> [ ccw door_dl | left pushable | down pushable ]\n\ndown [ ccw door_dr | pushable | pushable ] -> [ ccw door_dr | down pushable | right pushable ]\nright [ cw door_dr | pushable | pushable ] -> [ cw door_dr | right pushable | down pushable ]\n\nup [ ccw door_ul | pushable | pushable ] -> [ ccw door_ul | up pushable | left pushable ]\nleft [ cw door_ul | pushable | pushable ] -> [ cw door_ul | left pushable | up pushable ]\n\nup [ cw door_ur | pushable | pushable ] -> [ cw door_ur | up pushable | right pushable ]\nright [ ccw door_ur | pushable | pushable ] -> [ ccw door_ur | right pushable | up pushable ]\n\n[ > pushable | player ] -> [ > pushable | > player ]\n\ndown [ cw door_dl | pushable ] -> [ cw door_dl | down pushable ]\nleft [ ccw door_dl | pushable ] -> [ ccw door_dl | left pushable ]\n\ndown [ ccw door_dr | pushable ] -> [ ccw door_dr | down pushable ]\nright [ cw door_dr | pushable ] -> [ cw door_dr | right pushable ]\n\nup [ ccw door_ul | pushable ] -> [ ccw door_ul | up pushable ]\nleft [ cw door_ul | pushable ] -> [ cw door_ul | left pushable ]\n\nup [ cw door_ur | pushable ] -> [ cw door_ur | up pushable ]\nright [ ccw door_ur | pushable ] -> [ ccw door_ur | right pushable ]\n\n\ndown [ cw door_dl | ] -> [ | door_l ]\nleft [ ccw door_dl | ] -> [ | door_d ]\n\ndown [ ccw door_dr | ] -> [ | door_r ]\nright [ cw door_dr | ] -> [ | door_d ]\n\nup [ ccw door_ul | ] -> [ | door_l ]\nleft [ cw door_ul | ] -> [ | door_u ]\n\nup [ cw door_ur | ] -> [ | door_r ]\nright [ ccw door_ur | ] -> [ | door_u ]\n\n\n\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > player | crate | crate ] -> cancel\n([ > crate | stationary crate ] -> [ > crate | > crate ])\n\n[ > player | door ] -> [ > player knock | > door ]\n[> pushing | knock] -> [ pushing knock | knock ]\n\n[knock]->[]\n\nright [ down door_r | hinge ] -> [ down door_r | hinge ccw ] \nright [ up door_r | hinge ] -> [ up door_r | hinge cw ] \n\nleft [ up door_l | hinge ] -> [ up door_l | hinge ccw ] \nleft [ down door_l | hinge ] -> [ down door_l | hinge cw ] \n\nup [ left door_u | hinge ] -> [ left door_u | hinge cw ] \nup [ right door_u | hinge ] -> [ right door_u | hinge ccw ] \n\ndown [ right door_d | hinge ] -> [ right door_d | hinge cw ] \ndown [ left door_d | hinge ] -> [ left door_d | hinge ccw ] \n\n\n[ door_u ] -> [ up door_u ]\n[ door_d ] -> [ down door_d ]\n[ door_l ] -> [ left door_l ]\n[ door_r ] -> [ right door_r ]\n\n[ > door | hinge cw ] -> [ ^ door cw | hinge cw ]\n[ > door | hinge ccw ] -> [ ^ door ccw | hinge ccw ]\n[ > door | no hinge ] -> [ door | ]\n\n\ndown [ ccw door_r | wall ] -> cancel\nup [ cw door_r | wall ] -> cancel\ndown [ cw door_l | wall ] -> cancel\nup [ ccw door_l | wall ] -> cancel\nright [ ccw door_u | wall ] -> cancel\nleft [ cw door_u | wall ] -> cancel\nright [ cw door_d | wall ] -> cancel\nleft [ ccw door_d | wall ] -> cancel\n\ndown [ ccw door_r | pushable ] -> [ ccw door_r | right pushable ccw ]\nup [ cw door_r | pushable ] -> [ cw door_r | right pushable cw ]\ndown [ cw door_l | pushable ] -> [ cw door_l | left pushable cw ]\nup [ ccw door_l | pushable ] -> [ ccw door_l | left pushable ccw ]\nright [ ccw door_u | pushable ] -> [ ccw door_u | up pushable ccw ]\nleft [ cw door_u | pushable ] -> [ cw door_u | up pushable cw ]\nright [ cw door_d | pushable ] -> [ cw door_d | down pushable cw ]\nleft [ ccw door_d | pushable ] -> [ ccw door_d | down pushable ccw ]\n\n[ > crate | stationary crate ] -> [ > crate | > crate ]\n[ > crate | > crate | > crate | ... | > crate ] -> [ > crate | > crate | > crate | ... | stationary crate ]\n\n[ cw > crate | > crate | > crate ] -> [ cw > crate | > crate | v crate ]\n[ ccw > crate | > crate | > crate ] -> [ cw > crate | > crate | ^ crate ]\n[ w crate ] -> [ crate ]\n\n[ > crate | no obstacle ] -> [ | crate ] \n+ [ > player | no obstacle ] -> [ | player ] \n\n[ moving door ] -> [ door ] \n\n+ down [ ccw door_r | ] -> [ | ccw door_ur ]\n+ up [ cw door_r | ] -> [ | cw door_dr ]\n+ down [ cw door_l | ] -> [ | cw door_ul ]\n+ up [ ccw door_l | ] -> [ | ccw door_dl ]\n\n+ right [ ccw door_u | ] -> [ | ccw door_ul ]\n+ left [ cw door_u | ] -> [ | cw door_ur ]\n+ right [ cw door_d | ] -> [ | cw door_dl ]\n+ left [ ccw door_d | ] -> [ | ccw door_dr ]\n\n[ diagonal ] -> again\n\n[ w hinge ] -> [ hinge ]\n[ w ortho ] -> [ ortho ]\n\nlate [ crate door ] -> cancel\nlate [ player door ] -> cancel\n\n\nlate up [ door_ul | ] -> [ door_ul | dl ]\nlate left [ door_ul | ] -> [ door_ul | ur ]\n\nlate down [ door_dl | ] -> [ door_dl | ul ]\nlate left [ door_dl | ] -> [ door_dl | dr ]\n\nlate up [ door_ur | ] -> [ door_ur | dr ]\nlate right [ door_ur | ] -> [ door_ur | ul ]\n\nlate down [ door_dr | ] -> [ door_dr | ur ]\nlate right [ door_dr | ] -> [ door_dr | dl ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nno diagonal\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 5\n\n#######\n#.....#\n#..o..#\n#.....#\n#.d...#\n#.hl..#\n#.u.d.#\n#..rh.#\n#..*u.#\n#.....#\n#..p..#\n#.....#\n#######\n\nmessage Level 2 von 5\n\n\n#################\n#...*...*.odo...#\n#.p.*...*.oho...#\n#...*...*.ouo...#\n#################\n\nmessage Level 3 von 5\n\n\n#########\n#.......#\n#..rhl..#\n#.do*od.#\n#.h*.*h.#\n#.uo*ou.#\n#..rhl..#\n#.p.....#\n#########\n\nmessage Level 4 von 5\n\n#########\n#...o...#\n#..rhl..#\n#.d*.*d.#\n#.ho.oh.#\n#.u*o*u.#\n#..rhl..#\n#.p.....#\n#########\n\nmessage Level 5 von 5\n\n#########\n#...o...#\n#.hl.rh.#\n#.u*d*u.#\n#o.rhl.o#\n#.d*u*d.#\n#phl.rh.#\n#...o...#\n#########\n\nmessage Sie sind aber talentiert!\n\n\n", [0, 3, 3, 0, 0, 0, 1, 1, 0], "background wall:0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\nbackground:1,1,1,1,background door_r:2,1,1,\n1,1,1,1,0,0,1,\n1,1,background door_d:3,background hinge:4,1,1,1,\n1,1,1,0,0,1,background target:5,\n1,background player:6,background door_l:7,1,2,1,1,\n1,1,0,0,1,1,1,\n1,1,1,4,background door_u:8,1,1,\n1,0,0,1,1,1,1,\n1,1,7,background crate:9,1,1,1,\n0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\n", 1, "1627891389385.0288"] ], [ - "Des Poseidons Dreizack", - ["title Des Poseidons Dreizack\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\ntext_color #e7cf5c\nbackground_color #041646\n\nnoaction\n\nrun_rules_on_level_start\n\nagain_interval 0.1\n(verbose_logging)\n\n\n(flickscreen 14x13)\n\n========\nOBJECTS\n========\n\nBackground\nblue #204ec5\n00000\n01000\n00000\n00010\n00000\n\nsmrocks k\nbrown darkbrown \n.1.1.\n10101\n.1.1.\n10101\n.1.1.\n\nteleport T\nlightblue blue darkblue\n10101\n01210\n12221\n01210\n10101\n\nTarget\ndarkblue transparent \n01110\n1.0.1\n10001\n1.0.1\n01110\n\nWall\ngreen lightgreen #2d6d0c\n00000\n00010\n00000\n01000\n00000\n\nwallalt \"\ngreen lightgreen #2d6d0c\n00000\n00000\n00000\n01000\n00000\n\n\nwallalt2 '\ngreen lightgreen #2d6d0c\n00000\n00010\n00000\n00000\n00000\n\ncoast_u\nlightblue\n.0.0.\n.....\n.....\n.....\n.....\n\ncoast_d\nlightblue\n.....\n.....\n.....\n.....\n.0.0.\n\ncoast_l\nlightblue\n.....\n0....\n.....\n0....\n.....\n\ncoast_r\nlightblue\n.....\n....0\n.....\n....0\n.....\n\nendhand x\npink\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\n\nPlayer\nbrown orange yellow lightblue\n2.2.2\n2.2.2\n22222\n..1..\n.313.\n\nunderplayer\nlightblue\n..0..\n.....\n.....\n.....\n.....\n\nmagnet\nlightblue blue\n.0000\n0....\n0.000\n0...0\n.000.\n\n\nflowers \ndarkgreen brown\n.000.\n00000\n.000.\n..1..\n..1..\n\nhinge H\norange green darkgray \n10001\n02220\n02220\n02220\n10001\n\ndoor_l L\npink darkgray transparent\n.2.2.\n0000.\n11110\n0000.\n.2.2.\n\n\ndoor_r R\npink darkgray transparent\n.2.2.\n.0000\n01111\n.0000\n.2.2.\n\n\n\ndoor_u U\npink darkgray transparent\n.010.\n20102\n.010.\n20102\n..0..\n\ndoor_d D\npink darkgray transparent\n..0..\n20102\n.010.\n20102\n.010.\n\n\ndoor_dl 1\npink darkgray\n.....\n..00.\n.010.\n010..\n10...\n\n\ndoor_dr 2\npink darkgray\n.....\n.00..\n.010.\n..010\n...01\n\n\ndoor_ul 3\npink darkgray\n10...\n010..\n.010.\n..00.\n.....\n\ndoor_ur 4\npink darkgray\n...01\n..010\n.010.\n.00..\n.....\n\nul\norange\n0....\n.....\n.....\n.....\n.....\n\nur\norange\n....0\n.....\n.....\n.....\n.....\n\n\ndl\norange\n.....\n.....\n.....\n.....\n0....\n\n\ndr\norange\n.....\n.....\n.....\n.....\n....0\n\nwu\ngreen lightgreen\n10101\n.....\n.....\n.....\n.....\n\nwd\ngreen lightgreen\n.....\n.....\n.....\n.....\n10101\n\nwl\ngreen lightgreen\n1....\n0....\n1....\n0....\n1....\n\nwr\ngreen lightgreen\n....1\n....0\n....1\n....0\n....1\n\nsuck_d\nlightblue\n.....\n.....\n.0.0.\n..0..\n.....\n\n\nsuck_u\nlightblue\n.....\n..0..\n.0.0.\n.....\n.....\n\n\nsuck_r\nlightblue\n.....\n..0..\n...0.\n..0..\n.....\n\n\nsuck_l\nlightblue\n.....\n..0..\n.0...\n..0..\n.....\n\ntemp\ntransparent\n\nA \ntransparent\n\nS\nlightblue\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nnopull\ntransparent\n\nspawned \ntransparent\n\n\nip1 §\n#ffff05 #ffa33b\n0.0.0\n0.0.0\n00000\n..1..\n..1..\n\nip2 ±\n#8e4833\n.....\n.....\n....0\n....0\n....0\n\nip3 `\n#8e4833 #dbc297\n.....\n00000\n11111\n1.1.1\n11111\n\nip4 ~\n#8e4833\n.....\n.....\n0....\n0....\n0....\n\n5\n#ffa33b #dbc297\n..0..\n.111.\n.111.\n.111.\n..011\n\n6\n#8e4833 #dbc297\n....0\n....0\n.....\n.....\n....1\n\n7\n#8e4833 #dbc297\n00000\n01110\n00000\n00000\n10001\n\n8\n#8e4833 #dbc297\n0....\n.....\n.....\n.....\n1....\n\n9\n#ffa33b #dbc297\n..0.1\n.....\n.....\n.....\n.....\n\n0\n#dbc297 white\n0..00\n00000\n.00.0\n....1\n....1\n\nbla !\n#dbc297 white\n00000\n00000\n00000\n10000\n11100\n\nblo @\n#dbc297\n00...\n000..\n000..\n0.00.\n..00.\n\n\n(BLANK)\n\nble £\nwhite\n....0\n....0\n....0\n...00\n...00\n\nble1 $\nwhite #dbc297\n00000\n00000\n00000\n00001\n00011\n\nble2 \\\n#dbc297 white\n..00.\n1.00.\n1000.\n1000.\n100..\n\n(SKIP)\n\nble3 Y\nwhite #dbc297\n...00\n...00\n....1\n....1\n....1\n\nble4 &\nwhite #dbc297\n00111\n1.111\n1..11\n1..11\n1..11\n\nble5 *\nwhite\n0....\n.....\n.....\n.....\n.....\n\n\nble6 -\n#dbc297\n.....\n...00\n.....\n.....\n.....\n\nble7 =\n#dbc297\n0..00\n0.000\n.....\n.....\n.....\n\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nM = magnet\nO = Target\n\n\nwalls = wall or wallalt or wallalt2\northo = door_u or door_d or door_l or door_r\ndiagonal = door_ul or door_ur or door_dl or door_dr\nDoor = ortho or diagonal\ndoorpart = door or hinge\nobstacle = walls or player or hinge or magnet or door or smrocks\nthick = wall or hinge or magnet or door or teleport\n\n\nfixture = wall or hinge \n\npixel = ul or ur or dl or dr\nwalltype = wall or wallalt or wallalt2\n\nfillwalltype = wall or hinge\n\nsuck = suck_u or suck_d or suck_l or suck_r\n\ncoast = coast_u or coast_d or coast_l or coast_r\n\nverge = wl or wr or wu or wd\ndecoration = coast or verge \n\n% = flowers and wall\n\nimage = ip1 or ip2 or ip3 or ip4 or 5 or 6 or 7 or 8 or 9 or 0 or bla or blo or ble or ble1 or ble2 or ble3 or ble4 or ble5 or ble6 or ble7 \n\n\n=======\nSOUNDS\n=======\n\nsfx0 1415300 (swing)\nsfx1 7555504 (cantmove)\nsfx2 16800907 (whirlpool move)\nsfx3 77044105 (teleport)\nsfx4 43993702 (whirlpool destroy)\nsfx5 43993702 (whirlpool create)\nendlevel 30657706\n\nplayer cantmove 7555504\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncoast_u\ncoast_d\ncoast_l\ncoast_r\nA\nTarget\nS\nunderplayer\nteleport\nendhand \nPlayer, Wall, wallalt, wallalt2, magnet, hinge, door, smrocks\nflowers\nul\nur\ndl\ndr\nwu\nwd\nwl\nwr\ntemp\nsuck_u\nsuck_d\nsuck_l\nsuck_r\nnopull\nspawned\nimage\n\n======\nRULES\n======\n\n[ player teleport no spawned | ... | teleport ] -> [ teleport | ... | player teleport spawned ] sfx3\n\n[ teleport magnet ] -> [ ] sfx4\n\n[decoration]->[]\n[underplayer]->[]\n[A]->[]\n[temp]->[]\n[suck]->[]\n[nopull]->[]\n\nright [ walls | ]->[walls | coast_l ]\nleft [ walls | ]->[walls | coast_r ]\ndown [ walls | ]->[walls | coast_u ]\nup [ walls | ]->[walls | coast_d ]\n\n\n\nup [ walls | no walltype ] -> [ walls wu | ]\ndown [ walls | no walltype ] -> [ walls wd | ]\nleft [ walls | no walltype ] -> [ walls wl | ]\nright [ walls | no walltype ] -> [ walls wr | ]\n\n[pixel]->[]\n\n\n[ > magnet | door ] -> cancel\n\n\n\n[ > Player | magnet ] -> [ > Player | > magnet ]\n\n[ > magnet | no obstacle ] -> [ | magnet ] sfx2\n+ [ > player | no obstacle ] -> [ | player ] \n+ [ > player | no obstacle ] -> [ | player ] \n\n\n[player no spawned] [ spawned] -> [player] []\n\n[ magnet ] -> [ magnet suck_u suck_d suck_l suck_r ]\n\nup [ suck_d | no thick ] -> [ suck_d | suck_d ]\ndown [ suck_u | no thick ] -> [ suck_u | suck_u ]\nleft [ suck_r | no thick ] -> [ suck_r | suck_r ]\nright [ suck_l | no thick ] -> [ suck_l | suck_l ]\n\n\n[S]->[]\n\n\nup [ suck_d | door | no suck_u ] -> [ suck_d | down door S | ]\n\n\ndown [ suck_u | door S | no suck_d ] -> [ suck_u | stationary door S | ]\ndown [ suck_u | door no S | no suck_d ] -> [ suck_u | up door S | ]\n\n\nleft [ suck_r | door S | no suck_l ] -> [ suck_r | stationary door S | ]\nleft [ suck_r | door no S | no suck_l ] -> [ suck_r | right door S | ]\n\n\nright [ suck_l | door S | no suck_r ] -> [ suck_l | stationary door S | ]\nright [ suck_l | door no S | no suck_r ] -> [ suck_l | left door S | ]\n\n[ > player | door no S ] -> [ > player | > door ]\n\n[s]->[]\n\nup [ suck_d | door ] -> [ suck_d | door S ]\ndown [ suck_u | door ] -> [ suck_u | door S ]\nleft [ suck_r | door ] -> [ suck_r | door S ]\nright [ suck_l | door ] -> [ suck_l | door S ]\n\n\n([ > player | > door S ] -> [ > player | > door ])\n\n\n(push ortho doors)\n\nup [ up door_l | no obstacle ] -> [ | door_dl ] sfx0\nup [ up door_r | no obstacle ] -> [ | door_dr ] sfx0\ndown [ down door_l | no obstacle ] -> [ | door_ul ] sfx0\ndown [ down door_r | no obstacle ] -> [ | door_ur ] sfx0\nleft [ left door_u | no obstacle ] -> [ | door_ur ] sfx0\nleft [ left door_d | no obstacle ] -> [ | door_dr ] sfx0\nright [ right door_u | no obstacle ] -> [ | door_ul ] sfx0\nright [ right door_d | no obstacle ] -> [ | door_dl ] sfx0\n\n(push diag doors)\nup [ up door_ul | no obstacle ] -> [ | door_l ] sfx0\nup [ up door_ur | no obstacle ] -> [ | door_r ] sfx0\nleft [ up door_dl no S | no obstacle ] -> [ | door_d ] sfx0\nright [ up door_dr no S | no obstacle ] -> [ | door_d ] sfx0\n\nleft [ down door_ul no S | no obstacle ] -> [ | door_u ] sfx0\nright [ down door_ur no S | no obstacle ] -> [ | door_u ] sfx0\ndown [ down door_dl | no obstacle ] -> [ | door_l ] sfx0\ndown [ down door_dr | no obstacle ] -> [ | door_r ] sfx0\n\nleft [ left door_ul | no obstacle ] -> [ | door_u ] sfx0\nup [ left door_ur no S | no obstacle ] -> [ | door_r ] sfx0\nleft [ left door_dl | no obstacle ] -> [ | door_d ] sfx0\ndown [ left door_dr no S | no obstacle ] -> [ | door_r ] sfx0\n\nup [ right door_ul no S | no obstacle ] -> [ | door_l ] sfx0\nright [ right door_ur | no obstacle ] -> [ | door_u ] sfx0\ndown [ right door_dl no S | no obstacle ] -> [ | door_l ] sfx0\nright [ right door_dr | no obstacle ] -> [ | door_d ] sfx0\n\n\n\n\n[ moving door ] -> [ door ] \n\n\nlate up [ door_ul | ] -> [ door_ul | dl ]\nlate left [ door_ul | ] -> [ door_ul | ur ]\n\nlate down [ door_dl | ] -> [ door_dl | ul ]\nlate left [ door_dl | ] -> [ door_dl | dr ]\n\nlate up [ door_ur | ] -> [ door_ur | dr ]\nlate right [ door_ur | ] -> [ door_ur | ul ]\n\nlate down [ door_dr | ] -> [ door_dr | ur ]\nlate right [ door_dr | ] -> [ door_dr | dl ]\n\nlate [ thick suck ] -> [ thick ]\n\n[player] -> again\n\nlate [magnet suck]->[]\nlate down [ player | ] -> [ player | underplayer]\n\nlate [ magnet target ] -> [ teleport ] sfx5 \n\n\n\n\n==============\nWINCONDITIONS\n==============\n\nall player on endhand\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 3 : Ausbruch\n\n##########%#%##\n#%##...####%##%\n####.m.######%#\n##.....##...###\n##...###.....##\n##....##.....##\n##.....##....##\n###hl..##....##\n###..........##\n###....#hl...##\n###.....#.#####\n#########.#####\n##....##......#\n#.t....#....o.#\n#...x..#..p...#\n##....##......#\n###############\n\nmessage Level 2 von 3 : Flucht\n\n##################\n##%#####.....#####\n#####%##.##.2...##\n########.##.1h#.##\n#....##..##h.##.##\n#.p..hh..###.##.##\n#....u.3####.#...#\n#hl##.######.#.x.#\n##.....#.....#...#\n#....o.#.t...#####\n#..m...#.....#####\n#......########%##\n##################\n\nmessage Level 3 von 3 : Fensterrose\n\n\n#######################\n#######.........#######\n######...........######\n##..##...kkkkk...##..##\n#....#...k...k...#....#\n#.t..#...k.t.k...#..x.#\n#....#...kk.kk...#....#\n#....#....2d1....#....#\n#..o.#...krhlk...#.t..#\n#....#...k...k...#....#\n#...##..m........#....#\n#.hl.............#....#\n#...##....p......#....#\n#######.........#######\n#######################\n\n............\n............\n....x.......\n............\n............\n............\n............\n........p...\n............\n\n............\n............\n....§±`~....\n....5678....\n....90!@....\n.....£$\\....\n.....Y&*....\n.....-=.....\n............\n\nmessage ICH BIN DER POSEIDON\n\n\n(\n\n#####################\n#######.......#######\n######.........######\n##..##..kkkkk..##..##\n#....#..k...k..#....#\n#.t..#..k.t.k..#..x.#\n#....#..kk.kk..#....#\n#....#...2d1...#....#\n#..o.#..krhlk..#.t..#\n#....#..k...k..#....#\n#...##.m.......#....#\n#.hl...........#....#\n#...##...p.....#....#\n#######.......#######\n#####################\n\n#############\n##.........##\n#...........#\n#...kkkkk...#\n#...k...k...#\n#...k.x.k...#\n#...kk.kk...#\n#....2d1....#\n#...krhlk...#\n#...k...k...#\n#...........#\n#..m........#\n#....p......#\n##.........##\n#############\n\n\n#############\n##.........##\n#...........#\n#...kkkkk...#\n#...k...k...#\n#...k.x.k...#\n#...kk.kk...#\n#....2d1....#\n#...krhlk...#\n#...k...k...#\n#...........#\n#.m.........#\n#...........#\n#......p....#\n##.........##\n#############\n\n\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#.....2d1.....#\n#....krhlk....#\n#....k...k....#\n#...m.........#\n#.............#\n#.....p.......#\n#.............#\n#.............#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#.....2d1.....#\n#....krhlk....#\n#....k...k....#\n#.............#\n#..........m..#\n#.............#\n#......p......#\n#.............#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#.....2d1.....#\n#....krhlk....#\n#....k...k....#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n######\"########\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#....k.d.k....#\n#....krhlk....#\n#...kk.u.k....#\n#...kt...k..o.#\n#...kkkkkk....#\n#..m......m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k.d.k....#\n#....krhlk....#\n#....k.u.k....#\n#....k...k....#\n#....k.t.k..o.#\n#....kkkkk....#\n#...m.........#\n#.............#\n##.....p.....##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#....k2d1k....#\n#....krhlk....#\n#....k........#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#....k2d1k....#\n#....krhlk....#\n#.............#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k2d......#\n#....krh......#\n#.....4u......#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k2d......#\n#....krh......#\n#....k4u......#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k2d......#\n#....krh......#\n#....k4.......#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k...k....#\n#....k2d.k....#\n#....krh.k....#\n#....k4..k....#\n#....k.k.k....#\n#....k.kkk....#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k2d......#\n#....krh......#\n#....k4.......#\n#....k........#\n#....k........#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k...k....#\n#....k2d.k....#\n#....krh.k....#\n#....k4u.k....#\n#....k.k.k....#\n#....k.kkk....#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n............\n............\n............\n...kkkkk....\n...k...k....\n...k.x.k....\n...k...k....\n...k2d.k....\n...krh.k....\n...k4..k....\n...k.k.k....\n...k.kkk....\n..m.....m...\n............\n......p.....\n............\n\n............\n............\n............\n...kkkkk....\n...k...k....\n...k.x.k....\n...k...k....\n...k2d.k....\n...krh.k....\n...k4u.k....\n...k.k.k....\n...k.kkk....\n..m.....m...\n............\n......p.....\n............\n\n\n............\n............\n............\n...kkkkk....\n...k...k....\n...k.x.k....\n...k...k....\n...k2..k....\n...krh.k....\n...k4..k....\n...k.k.k....\n...k.kkk....\n..m.....m...\n............\n.....p......\n............\n\n............\n............\n............\n...kkkkk....\n...k...k....\n...k.x.k....\n...k...k....\n...k.d.k....\n...krh.k....\n...k.u.k....\n...k.k.k....\n...k.kkk....\n..m.....m...\n............\n.....p......\n............\n\n............\n............\n..kkkkk.....\n..k...k.....\n..k.x.k.....\n..k...k.....\n..k.d.k.....\n..krh.k.....\n..k.u.k.....\n..k.k.k.....\n..k.kkk.....\n............\n........m...\n............\n..........p.\n............\n\n##################\n#####.......#....#\n#####.......#....#\n#####..##...#....#\n####hlrh#hl.#..rh#\n####....#.rh#hl..#\n####hlrh#hl.#..rh#\n####....#.rh#hl..#\n####hlrh#hl.#..rh#\n####....#.rh#hl..#\n####....#...#....#\n#.......#........#\n#.m..p..##########\n#.......#.........\n#########.........\n\n##################\n#####.........#..#\n#####...mp....#..#\n#####..##d....#..#\n####h..h#h2...#rh#\n####u..u#..h###..#\n####h..h#hl...#rh#\n####u..u#.rh###..#\n####h..h#hl...#rh#\n####u..u#.rh###..#\n####....#.....#..#\n#.......#.....#..#\n#.......#........#\n#.......#........#\n##################\n\n\n###################\n####....#.........#\n####hlrh#.........#\n####....#.........#\n####hlrh#.........#\n####....#.........#\n####hlrh#.........#\n####....#.........#\n####....#.........#\n#.................#\n#.m..p............#\n#.................#\n###################\n\n\n\n##################\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n###.###..........#\n#.....#..........#\n#.p...#..........#\n#.....#..........#\n#...m.#..........#\n#.....#..........#\n##################\n\n##################\n#####.........#..#\n#####.....pmk.#..#\n#####..##d..k.#..#\n####h..h#h2.k.#rh#\n####u..u#..h###..#\n####h..h#hl...#rh#\n####u..u#.rh###..#\n####h..h#hl...#rh#\n####u..u#.rh###..#\n####....#.....#..#\n#.......#.....#..#\n#...kkkk#........#\n#.......#........#\n##################\n\n##################\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n##################\n\n)\n",[3,3,2,3,3,1,1,1,2,2,2,0,3,3,3,2,2,1,1,2,1,0,2,2,3,2,3,0,0,1,0,3,2,3,0,0,0,"restart",2,3,2,3,3,2,2,2,1,2,1,2,1,1,0,3,3,2,3,0,0,1,0,3,2,3,0,0,2],"background coast_d coast_r wall:0,background coast_d coast_r coast_u wall:1,1,1,background coast_d coast_u wall wr:2,2,2,2,1,2,2,2,background coast_r coast_u wall:3,background coast_d coast_l coast_r wall:4,background coast_d coast_l coast_r coast_u wall:5,5,background coast_l coast_r coast_u wall wd:6,background coast_l coast_u:7,\nbackground coast_l:8,background coast_l suck_r:9,background coast_d coast_l hinge:10,background coast_l ur wall wd wr wu:11,7,8,background coast_d coast_l:12,background coast_l coast_r wall wu:13,4,background coast_d coast_l coast_r coast_u flowers wall:14,5,6,background coast_u:15,background:16,background suck_r:17,background coast_r dl:18,background coast_l door_ul:19,16,\n16,background coast_d:20,13,4,5,5,6,15,16,background coast_d suck_r:21,background coast_r wall wd wl wu:22,15,16,16,20,13,4,5,\n5,6,background coast_r coast_u:23,16,21,background coast_l wall wd wr wu:24,15,16,16,20,13,4,5,14,5,background coast_r coast_u wall wd wl:25,background coast_u hinge:26,background magnet ur:27,\nbackground coast_l coast_r suck_u:28,background player suck_u:29,background suck_u target underplayer:30,background suck_u:31,background coast_d suck_u:32,13,4,5,5,5,background coast_l coast_u wall wd wr:33,background coast_u dl hinge:34,background coast_d door_ul s ur:35,22,23,background coast_r:36,36,background coast_d coast_r:37,\n13,4,background coast_d coast_l coast_u wall wr:38,38,33,7,background dl:39,background coast_d coast_r door_ul:40,background coast_d coast_l coast_r wall wu:41,background coast_d coast_u wall wl wr:42,42,42,background coast_d coast_r coast_u wall wl:43,background coast_l coast_r coast_u wall:44,background coast_l coast_r wall wd:45,7,background coast_l coast_r:46,46,\n36,37,background coast_d coast_r wall wl wu:47,6,7,8,12,41,44,45,background coast_d coast_u:48,47,43,43,43,5,6,15,\nbackground teleport:49,20,41,44,45,48,background coast_d coast_l wall wr wu:50,38,38,5,5,6,15,16,20,41,44,45,\n15,8,background coast_l dr:51,10,50,38,33,15,16,20,41,44,45,23,background door_dr:52,background door_dl ur:53,background coast_r ul:54,46,\n46,46,36,36,37,41,44,4,25,background coast_u dl:55,background coast_d coast_r hinge:56,47,43,42,42,42,43,43,\n5,44,4,6,48,background coast_d wall wl wr wu:57,38,33,7,8,12,41,5,5,44,4,6,23,\n46,46,46,16,background endhand:58,20,41,5,14,44,4,5,43,43,43,25,23,36,\n37,41,5,5,44,background coast_d coast_l wall:59,background coast_d coast_l coast_u wall:60,60,60,60,60,background coast_d coast_u wall wl:61,61,61,60,60,60,background coast_l coast_u wall:62,\n",3,"1627891415131.3423"] + "Des Poseidons Dreizack", + ["title Des Poseidons Dreizack\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\ntext_color #e7cf5c\nbackground_color #041646\n\nnoaction\n\nrun_rules_on_level_start\n\nagain_interval 0.1\n(verbose_logging)\n\n\n(flickscreen 14x13)\n\n========\nOBJECTS\n========\n\nBackground\nblue #204ec5\n00000\n01000\n00000\n00010\n00000\n\nsmrocks k\nbrown darkbrown \n.1.1.\n10101\n.1.1.\n10101\n.1.1.\n\nteleport T\nlightblue blue darkblue\n10101\n01210\n12221\n01210\n10101\n\nTarget\ndarkblue transparent \n01110\n1.0.1\n10001\n1.0.1\n01110\n\nWall\ngreen lightgreen #2d6d0c\n00000\n00010\n00000\n01000\n00000\n\nwallalt \"\ngreen lightgreen #2d6d0c\n00000\n00000\n00000\n01000\n00000\n\n\nwallalt2 '\ngreen lightgreen #2d6d0c\n00000\n00010\n00000\n00000\n00000\n\ncoast_u\nlightblue\n.0.0.\n.....\n.....\n.....\n.....\n\ncoast_d\nlightblue\n.....\n.....\n.....\n.....\n.0.0.\n\ncoast_l\nlightblue\n.....\n0....\n.....\n0....\n.....\n\ncoast_r\nlightblue\n.....\n....0\n.....\n....0\n.....\n\nendhand x\npink\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\n\nPlayer\nbrown orange yellow lightblue\n2.2.2\n2.2.2\n22222\n..1..\n.313.\n\nunderplayer\nlightblue\n..0..\n.....\n.....\n.....\n.....\n\nmagnet\nlightblue blue\n.0000\n0....\n0.000\n0...0\n.000.\n\n\nflowers \ndarkgreen brown\n.000.\n00000\n.000.\n..1..\n..1..\n\nhinge H\norange green darkgray \n10001\n02220\n02220\n02220\n10001\n\ndoor_l L\npink darkgray transparent\n.2.2.\n0000.\n11110\n0000.\n.2.2.\n\n\ndoor_r R\npink darkgray transparent\n.2.2.\n.0000\n01111\n.0000\n.2.2.\n\n\n\ndoor_u U\npink darkgray transparent\n.010.\n20102\n.010.\n20102\n..0..\n\ndoor_d D\npink darkgray transparent\n..0..\n20102\n.010.\n20102\n.010.\n\n\ndoor_dl 1\npink darkgray\n.....\n..00.\n.010.\n010..\n10...\n\n\ndoor_dr 2\npink darkgray\n.....\n.00..\n.010.\n..010\n...01\n\n\ndoor_ul 3\npink darkgray\n10...\n010..\n.010.\n..00.\n.....\n\ndoor_ur 4\npink darkgray\n...01\n..010\n.010.\n.00..\n.....\n\nul\norange\n0....\n.....\n.....\n.....\n.....\n\nur\norange\n....0\n.....\n.....\n.....\n.....\n\n\ndl\norange\n.....\n.....\n.....\n.....\n0....\n\n\ndr\norange\n.....\n.....\n.....\n.....\n....0\n\nwu\ngreen lightgreen\n10101\n.....\n.....\n.....\n.....\n\nwd\ngreen lightgreen\n.....\n.....\n.....\n.....\n10101\n\nwl\ngreen lightgreen\n1....\n0....\n1....\n0....\n1....\n\nwr\ngreen lightgreen\n....1\n....0\n....1\n....0\n....1\n\nsuck_d\nlightblue\n.....\n.....\n.0.0.\n..0..\n.....\n\n\nsuck_u\nlightblue\n.....\n..0..\n.0.0.\n.....\n.....\n\n\nsuck_r\nlightblue\n.....\n..0..\n...0.\n..0..\n.....\n\n\nsuck_l\nlightblue\n.....\n..0..\n.0...\n..0..\n.....\n\ntemp\ntransparent\n\nA \ntransparent\n\nS\nlightblue\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nnopull\ntransparent\n\nspawned \ntransparent\n\n\nip1 §\n#ffff05 #ffa33b\n0.0.0\n0.0.0\n00000\n..1..\n..1..\n\nip2 ±\n#8e4833\n.....\n.....\n....0\n....0\n....0\n\nip3 `\n#8e4833 #dbc297\n.....\n00000\n11111\n1.1.1\n11111\n\nip4 ~\n#8e4833\n.....\n.....\n0....\n0....\n0....\n\n5\n#ffa33b #dbc297\n..0..\n.111.\n.111.\n.111.\n..011\n\n6\n#8e4833 #dbc297\n....0\n....0\n.....\n.....\n....1\n\n7\n#8e4833 #dbc297\n00000\n01110\n00000\n00000\n10001\n\n8\n#8e4833 #dbc297\n0....\n.....\n.....\n.....\n1....\n\n9\n#ffa33b #dbc297\n..0.1\n.....\n.....\n.....\n.....\n\n0\n#dbc297 white\n0..00\n00000\n.00.0\n....1\n....1\n\nbla !\n#dbc297 white\n00000\n00000\n00000\n10000\n11100\n\nblo @\n#dbc297\n00...\n000..\n000..\n0.00.\n..00.\n\n\n(BLANK)\n\nble £\nwhite\n....0\n....0\n....0\n...00\n...00\n\nble1 $\nwhite #dbc297\n00000\n00000\n00000\n00001\n00011\n\nble2 \\\n#dbc297 white\n..00.\n1.00.\n1000.\n1000.\n100..\n\n(SKIP)\n\nble3 Y\nwhite #dbc297\n...00\n...00\n....1\n....1\n....1\n\nble4 &\nwhite #dbc297\n00111\n1.111\n1..11\n1..11\n1..11\n\nble5 *\nwhite\n0....\n.....\n.....\n.....\n.....\n\n\nble6 -\n#dbc297\n.....\n...00\n.....\n.....\n.....\n\nble7 =\n#dbc297\n0..00\n0.000\n.....\n.....\n.....\n\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nM = magnet\nO = Target\n\n\nwalls = wall or wallalt or wallalt2\northo = door_u or door_d or door_l or door_r\ndiagonal = door_ul or door_ur or door_dl or door_dr\nDoor = ortho or diagonal\ndoorpart = door or hinge\nobstacle = walls or player or hinge or magnet or door or smrocks\nthick = wall or hinge or magnet or door or teleport\n\n\nfixture = wall or hinge \n\npixel = ul or ur or dl or dr\nwalltype = wall or wallalt or wallalt2\n\nfillwalltype = wall or hinge\n\nsuck = suck_u or suck_d or suck_l or suck_r\n\ncoast = coast_u or coast_d or coast_l or coast_r\n\nverge = wl or wr or wu or wd\ndecoration = coast or verge \n\n% = flowers and wall\n\nimage = ip1 or ip2 or ip3 or ip4 or 5 or 6 or 7 or 8 or 9 or 0 or bla or blo or ble or ble1 or ble2 or ble3 or ble4 or ble5 or ble6 or ble7 \n\n\n=======\nSOUNDS\n=======\n\nsfx0 1415300 (swing)\nsfx1 7555504 (cantmove)\nsfx2 16800907 (whirlpool move)\nsfx3 77044105 (teleport)\nsfx4 43993702 (whirlpool destroy)\nsfx5 43993702 (whirlpool create)\nendlevel 30657706\n\nplayer cantmove 7555504\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncoast_u\ncoast_d\ncoast_l\ncoast_r\nA\nTarget\nS\nunderplayer\nteleport\nendhand \nPlayer, Wall, wallalt, wallalt2, magnet, hinge, door, smrocks\nflowers\nul\nur\ndl\ndr\nwu\nwd\nwl\nwr\ntemp\nsuck_u\nsuck_d\nsuck_l\nsuck_r\nnopull\nspawned\nimage\n\n======\nRULES\n======\n\n[ player teleport no spawned | ... | teleport ] -> [ teleport | ... | player teleport spawned ] sfx3\n\n[ teleport magnet ] -> [ ] sfx4\n\n[decoration]->[]\n[underplayer]->[]\n[A]->[]\n[temp]->[]\n[suck]->[]\n[nopull]->[]\n\nright [ walls | ]->[walls | coast_l ]\nleft [ walls | ]->[walls | coast_r ]\ndown [ walls | ]->[walls | coast_u ]\nup [ walls | ]->[walls | coast_d ]\n\n\n\nup [ walls | no walltype ] -> [ walls wu | ]\ndown [ walls | no walltype ] -> [ walls wd | ]\nleft [ walls | no walltype ] -> [ walls wl | ]\nright [ walls | no walltype ] -> [ walls wr | ]\n\n[pixel]->[]\n\n\n[ > magnet | door ] -> cancel\n\n\n\n[ > Player | magnet ] -> [ > Player | > magnet ]\n\n[ > magnet | no obstacle ] -> [ | magnet ] sfx2\n+ [ > player | no obstacle ] -> [ | player ] \n+ [ > player | no obstacle ] -> [ | player ] \n\n\n[player no spawned] [ spawned] -> [player] []\n\n[ magnet ] -> [ magnet suck_u suck_d suck_l suck_r ]\n\nup [ suck_d | no thick ] -> [ suck_d | suck_d ]\ndown [ suck_u | no thick ] -> [ suck_u | suck_u ]\nleft [ suck_r | no thick ] -> [ suck_r | suck_r ]\nright [ suck_l | no thick ] -> [ suck_l | suck_l ]\n\n\n[S]->[]\n\n\nup [ suck_d | door | no suck_u ] -> [ suck_d | down door S | ]\n\n\ndown [ suck_u | door S | no suck_d ] -> [ suck_u | stationary door S | ]\ndown [ suck_u | door no S | no suck_d ] -> [ suck_u | up door S | ]\n\n\nleft [ suck_r | door S | no suck_l ] -> [ suck_r | stationary door S | ]\nleft [ suck_r | door no S | no suck_l ] -> [ suck_r | right door S | ]\n\n\nright [ suck_l | door S | no suck_r ] -> [ suck_l | stationary door S | ]\nright [ suck_l | door no S | no suck_r ] -> [ suck_l | left door S | ]\n\n[ > player | door no S ] -> [ > player | > door ]\n\n[s]->[]\n\nup [ suck_d | door ] -> [ suck_d | door S ]\ndown [ suck_u | door ] -> [ suck_u | door S ]\nleft [ suck_r | door ] -> [ suck_r | door S ]\nright [ suck_l | door ] -> [ suck_l | door S ]\n\n\n([ > player | > door S ] -> [ > player | > door ])\n\n\n(push ortho doors)\n\nup [ up door_l | no obstacle ] -> [ | door_dl ] sfx0\nup [ up door_r | no obstacle ] -> [ | door_dr ] sfx0\ndown [ down door_l | no obstacle ] -> [ | door_ul ] sfx0\ndown [ down door_r | no obstacle ] -> [ | door_ur ] sfx0\nleft [ left door_u | no obstacle ] -> [ | door_ur ] sfx0\nleft [ left door_d | no obstacle ] -> [ | door_dr ] sfx0\nright [ right door_u | no obstacle ] -> [ | door_ul ] sfx0\nright [ right door_d | no obstacle ] -> [ | door_dl ] sfx0\n\n(push diag doors)\nup [ up door_ul | no obstacle ] -> [ | door_l ] sfx0\nup [ up door_ur | no obstacle ] -> [ | door_r ] sfx0\nleft [ up door_dl no S | no obstacle ] -> [ | door_d ] sfx0\nright [ up door_dr no S | no obstacle ] -> [ | door_d ] sfx0\n\nleft [ down door_ul no S | no obstacle ] -> [ | door_u ] sfx0\nright [ down door_ur no S | no obstacle ] -> [ | door_u ] sfx0\ndown [ down door_dl | no obstacle ] -> [ | door_l ] sfx0\ndown [ down door_dr | no obstacle ] -> [ | door_r ] sfx0\n\nleft [ left door_ul | no obstacle ] -> [ | door_u ] sfx0\nup [ left door_ur no S | no obstacle ] -> [ | door_r ] sfx0\nleft [ left door_dl | no obstacle ] -> [ | door_d ] sfx0\ndown [ left door_dr no S | no obstacle ] -> [ | door_r ] sfx0\n\nup [ right door_ul no S | no obstacle ] -> [ | door_l ] sfx0\nright [ right door_ur | no obstacle ] -> [ | door_u ] sfx0\ndown [ right door_dl no S | no obstacle ] -> [ | door_l ] sfx0\nright [ right door_dr | no obstacle ] -> [ | door_d ] sfx0\n\n\n\n\n[ moving door ] -> [ door ] \n\n\nlate up [ door_ul | ] -> [ door_ul | dl ]\nlate left [ door_ul | ] -> [ door_ul | ur ]\n\nlate down [ door_dl | ] -> [ door_dl | ul ]\nlate left [ door_dl | ] -> [ door_dl | dr ]\n\nlate up [ door_ur | ] -> [ door_ur | dr ]\nlate right [ door_ur | ] -> [ door_ur | ul ]\n\nlate down [ door_dr | ] -> [ door_dr | ur ]\nlate right [ door_dr | ] -> [ door_dr | dl ]\n\nlate [ thick suck ] -> [ thick ]\n\n[player] -> again\n\nlate [magnet suck]->[]\nlate down [ player | ] -> [ player | underplayer]\n\nlate [ magnet target ] -> [ teleport ] sfx5 \n\n\n\n\n==============\nWINCONDITIONS\n==============\n\nall player on endhand\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 3 : Ausbruch\n\n##########%#%##\n#%##...####%##%\n####.m.######%#\n##.....##...###\n##...###.....##\n##....##.....##\n##.....##....##\n###hl..##....##\n###..........##\n###....#hl...##\n###.....#.#####\n#########.#####\n##....##......#\n#.t....#....o.#\n#...x..#..p...#\n##....##......#\n###############\n\nmessage Level 2 von 3 : Flucht\n\n##################\n##%#####.....#####\n#####%##.##.2...##\n########.##.1h#.##\n#....##..##h.##.##\n#.p..hh..###.##.##\n#....u.3####.#...#\n#hl##.######.#.x.#\n##.....#.....#...#\n#....o.#.t...#####\n#..m...#.....#####\n#......########%##\n##################\n\nmessage Level 3 von 3 : Fensterrose\n\n\n#######################\n#######.........#######\n######...........######\n##..##...kkkkk...##..##\n#....#...k...k...#....#\n#.t..#...k.t.k...#..x.#\n#....#...kk.kk...#....#\n#....#....2d1....#....#\n#..o.#...krhlk...#.t..#\n#....#...k...k...#....#\n#...##..m........#....#\n#.hl.............#....#\n#...##....p......#....#\n#######.........#######\n#######################\n\n............\n............\n....x.......\n............\n............\n............\n............\n........p...\n............\n\n............\n............\n....§±`~....\n....5678....\n....90!@....\n.....£$\\....\n.....Y&*....\n.....-=.....\n............\n\nmessage ICH BIN DER POSEIDON\n\n\n(\n\n#####################\n#######.......#######\n######.........######\n##..##..kkkkk..##..##\n#....#..k...k..#....#\n#.t..#..k.t.k..#..x.#\n#....#..kk.kk..#....#\n#....#...2d1...#....#\n#..o.#..krhlk..#.t..#\n#....#..k...k..#....#\n#...##.m.......#....#\n#.hl...........#....#\n#...##...p.....#....#\n#######.......#######\n#####################\n\n#############\n##.........##\n#...........#\n#...kkkkk...#\n#...k...k...#\n#...k.x.k...#\n#...kk.kk...#\n#....2d1....#\n#...krhlk...#\n#...k...k...#\n#...........#\n#..m........#\n#....p......#\n##.........##\n#############\n\n\n#############\n##.........##\n#...........#\n#...kkkkk...#\n#...k...k...#\n#...k.x.k...#\n#...kk.kk...#\n#....2d1....#\n#...krhlk...#\n#...k...k...#\n#...........#\n#.m.........#\n#...........#\n#......p....#\n##.........##\n#############\n\n\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#.....2d1.....#\n#....krhlk....#\n#....k...k....#\n#...m.........#\n#.............#\n#.....p.......#\n#.............#\n#.............#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#.....2d1.....#\n#....krhlk....#\n#....k...k....#\n#.............#\n#..........m..#\n#.............#\n#......p......#\n#.............#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#.....2d1.....#\n#....krhlk....#\n#....k...k....#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n######\"########\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#....k.d.k....#\n#....krhlk....#\n#...kk.u.k....#\n#...kt...k..o.#\n#...kkkkkk....#\n#..m......m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k.d.k....#\n#....krhlk....#\n#....k.u.k....#\n#....k...k....#\n#....k.t.k..o.#\n#....kkkkk....#\n#...m.........#\n#.............#\n##.....p.....##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#....k2d1k....#\n#....krhlk....#\n#....k........#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#....k2d1k....#\n#....krhlk....#\n#.............#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k2d......#\n#....krh......#\n#.....4u......#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k2d......#\n#....krh......#\n#....k4u......#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k2d......#\n#....krh......#\n#....k4.......#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k...k....#\n#....k2d.k....#\n#....krh.k....#\n#....k4..k....#\n#....k.k.k....#\n#....k.kkk....#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k2d......#\n#....krh......#\n#....k4.......#\n#....k........#\n#....k........#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k...k....#\n#....k2d.k....#\n#....krh.k....#\n#....k4u.k....#\n#....k.k.k....#\n#....k.kkk....#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n............\n............\n............\n...kkkkk....\n...k...k....\n...k.x.k....\n...k...k....\n...k2d.k....\n...krh.k....\n...k4..k....\n...k.k.k....\n...k.kkk....\n..m.....m...\n............\n......p.....\n............\n\n............\n............\n............\n...kkkkk....\n...k...k....\n...k.x.k....\n...k...k....\n...k2d.k....\n...krh.k....\n...k4u.k....\n...k.k.k....\n...k.kkk....\n..m.....m...\n............\n......p.....\n............\n\n\n............\n............\n............\n...kkkkk....\n...k...k....\n...k.x.k....\n...k...k....\n...k2..k....\n...krh.k....\n...k4..k....\n...k.k.k....\n...k.kkk....\n..m.....m...\n............\n.....p......\n............\n\n............\n............\n............\n...kkkkk....\n...k...k....\n...k.x.k....\n...k...k....\n...k.d.k....\n...krh.k....\n...k.u.k....\n...k.k.k....\n...k.kkk....\n..m.....m...\n............\n.....p......\n............\n\n............\n............\n..kkkkk.....\n..k...k.....\n..k.x.k.....\n..k...k.....\n..k.d.k.....\n..krh.k.....\n..k.u.k.....\n..k.k.k.....\n..k.kkk.....\n............\n........m...\n............\n..........p.\n............\n\n##################\n#####.......#....#\n#####.......#....#\n#####..##...#....#\n####hlrh#hl.#..rh#\n####....#.rh#hl..#\n####hlrh#hl.#..rh#\n####....#.rh#hl..#\n####hlrh#hl.#..rh#\n####....#.rh#hl..#\n####....#...#....#\n#.......#........#\n#.m..p..##########\n#.......#.........\n#########.........\n\n##################\n#####.........#..#\n#####...mp....#..#\n#####..##d....#..#\n####h..h#h2...#rh#\n####u..u#..h###..#\n####h..h#hl...#rh#\n####u..u#.rh###..#\n####h..h#hl...#rh#\n####u..u#.rh###..#\n####....#.....#..#\n#.......#.....#..#\n#.......#........#\n#.......#........#\n##################\n\n\n###################\n####....#.........#\n####hlrh#.........#\n####....#.........#\n####hlrh#.........#\n####....#.........#\n####hlrh#.........#\n####....#.........#\n####....#.........#\n#.................#\n#.m..p............#\n#.................#\n###################\n\n\n\n##################\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n###.###..........#\n#.....#..........#\n#.p...#..........#\n#.....#..........#\n#...m.#..........#\n#.....#..........#\n##################\n\n##################\n#####.........#..#\n#####.....pmk.#..#\n#####..##d..k.#..#\n####h..h#h2.k.#rh#\n####u..u#..h###..#\n####h..h#hl...#rh#\n####u..u#.rh###..#\n####h..h#hl...#rh#\n####u..u#.rh###..#\n####....#.....#..#\n#.......#.....#..#\n#...kkkk#........#\n#.......#........#\n##################\n\n##################\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n##################\n\n)\n", [3, 3, 2, 3, 3, 1, 1, 1, 2, 2, 2, 0, 3, 3, 3, 2, 2, 1, 1, 2, 1, 0, 2, 2, 3, 2, 3, 0, 0, 1, 0, 3, 2, 3, 0, 0, 0, "restart", 2, 3, 2, 3, 3, 2, 2, 2, 1, 2, 1, 2, 1, 1, 0, 3, 3, 2, 3, 0, 0, 1, 0, 3, 2, 3, 0, 0, 2], "background coast_d coast_r wall:0,background coast_d coast_r coast_u wall:1,1,1,background coast_d coast_u wall wr:2,2,2,2,1,2,2,2,background coast_r coast_u wall:3,background coast_d coast_l coast_r wall:4,background coast_d coast_l coast_r coast_u wall:5,5,background coast_l coast_r coast_u wall wd:6,background coast_l coast_u:7,\nbackground coast_l:8,background coast_l suck_r:9,background coast_d coast_l hinge:10,background coast_l ur wall wd wr wu:11,7,8,background coast_d coast_l:12,background coast_l coast_r wall wu:13,4,background coast_d coast_l coast_r coast_u flowers wall:14,5,6,background coast_u:15,background:16,background suck_r:17,background coast_r dl:18,background coast_l door_ul:19,16,\n16,background coast_d:20,13,4,5,5,6,15,16,background coast_d suck_r:21,background coast_r wall wd wl wu:22,15,16,16,20,13,4,5,\n5,6,background coast_r coast_u:23,16,21,background coast_l wall wd wr wu:24,15,16,16,20,13,4,5,14,5,background coast_r coast_u wall wd wl:25,background coast_u hinge:26,background magnet ur:27,\nbackground coast_l coast_r suck_u:28,background player suck_u:29,background suck_u target underplayer:30,background suck_u:31,background coast_d suck_u:32,13,4,5,5,5,background coast_l coast_u wall wd wr:33,background coast_u dl hinge:34,background coast_d door_ul s ur:35,22,23,background coast_r:36,36,background coast_d coast_r:37,\n13,4,background coast_d coast_l coast_u wall wr:38,38,33,7,background dl:39,background coast_d coast_r door_ul:40,background coast_d coast_l coast_r wall wu:41,background coast_d coast_u wall wl wr:42,42,42,background coast_d coast_r coast_u wall wl:43,background coast_l coast_r coast_u wall:44,background coast_l coast_r wall wd:45,7,background coast_l coast_r:46,46,\n36,37,background coast_d coast_r wall wl wu:47,6,7,8,12,41,44,45,background coast_d coast_u:48,47,43,43,43,5,6,15,\nbackground teleport:49,20,41,44,45,48,background coast_d coast_l wall wr wu:50,38,38,5,5,6,15,16,20,41,44,45,\n15,8,background coast_l dr:51,10,50,38,33,15,16,20,41,44,45,23,background door_dr:52,background door_dl ur:53,background coast_r ul:54,46,\n46,46,36,36,37,41,44,4,25,background coast_u dl:55,background coast_d coast_r hinge:56,47,43,42,42,42,43,43,\n5,44,4,6,48,background coast_d wall wl wr wu:57,38,33,7,8,12,41,5,5,44,4,6,23,\n46,46,46,16,background endhand:58,20,41,5,14,44,4,5,43,43,43,25,23,36,\n37,41,5,5,44,background coast_d coast_l wall:59,background coast_d coast_l coast_u wall:60,60,60,60,60,background coast_d coast_u wall wl:61,61,61,60,60,60,background coast_l coast_u wall:62,\n", 3, "1627891415131.3423"] ], [ - "Bring the ice cube to the goal without exposing it to heat.", - ["title Bring the ice cube to the goal without exposing it to heat.\n\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nnoaction\n\n========\nOBJECTS\n========\n\nhot \ndarkred\n\ncold\ndarkblue\n\nHotSource 1\nred darkred white yellow\n11311\n10201\n10201\n10001\n11111\n\nicecube i\nlightblue blue \n.111.\n10001\n10001\n10001\n.111.\n\n\nBackground\ndarkblue darkblue\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\ndarkgreen\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkblue darkgreen\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nbrown darkbrown\n00000\n00110\n01010\n01100\n00000\n\npuddle u\nblue\n.....\n.000.\n00000\n.000.\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ninsulation = wall or crate\n\npushable = crate or hotsource or icecube\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx0 87367102 (melt)\nendlevel 87961509 \n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nHot,Cold\nTarget\npuddle\nPlayer, Wall, Crate, HotSource, icecube\n\n======\nRULES\n======\n\n[ icecube hot ] -> [ puddle ]\n\n\n[ > Player | pushable ] -> [ > Player | > pushable ]\n\nlate [hot]->[]\nlate [cold]->[]\nlate [ no insulation ] -> [ cold ]\n\nlate [HotSource] -> [HotSource hot]\n\nlate [ hot | no insulation ] -> [ hot | hot ]\n\n[] -> again\n\n==============\nWINCONDITIONS\n==============\nall icecube on target\nno puddle\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n###################\n#.....#.....#.....#\n#.....#.1...#.....#\n#..o..*.....*..i..#\n#.....#...p.#.....#\n#.....#.....#.....#\n###################\n\nmessage very good\n",[0,0,0,1,1,2,1,2,1,1,3,3,1,1,1,3,3,2,3,3,2,3,3,0,1,1,1,1,1,0,1,2,0,1,1,2,3,3],"background wall:0,0,0,0,0,0,0,0,background hot:1,1,1,1,1,0,0,1,1,1,1,\n1,0,0,1,1,background hot target:2,1,1,0,0,1,1,background hot player:3,background hot hotsource:4,1,0,0,1,1,\nbackground crate:5,1,1,0,0,0,0,background cold:6,0,0,0,0,6,6,6,6,6,0,0,\n6,6,6,6,6,0,0,6,6,6,6,6,0,0,6,6,6,6,6,\n0,0,6,6,6,6,6,0,0,0,0,5,0,0,0,0,6,6,6,\n6,6,0,0,6,6,6,6,6,0,0,6,6,background cold icecube:7,6,6,0,0,6,\n6,6,6,6,0,0,6,6,6,6,6,0,0,0,0,0,0,0,0,\n",1,"1627891487429.5186"] + "Bring the ice cube to the goal without exposing it to heat.", + ["title Bring the ice cube to the goal without exposing it to heat.\n\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nnoaction\n\n========\nOBJECTS\n========\n\nhot \ndarkred\n\ncold\ndarkblue\n\nHotSource 1\nred darkred white yellow\n11311\n10201\n10201\n10001\n11111\n\nicecube i\nlightblue blue \n.111.\n10001\n10001\n10001\n.111.\n\n\nBackground\ndarkblue darkblue\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\ndarkgreen\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkblue darkgreen\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nbrown darkbrown\n00000\n00110\n01010\n01100\n00000\n\npuddle u\nblue\n.....\n.000.\n00000\n.000.\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ninsulation = wall or crate\n\npushable = crate or hotsource or icecube\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx0 87367102 (melt)\nendlevel 87961509 \n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nHot,Cold\nTarget\npuddle\nPlayer, Wall, Crate, HotSource, icecube\n\n======\nRULES\n======\n\n[ icecube hot ] -> [ puddle ]\n\n\n[ > Player | pushable ] -> [ > Player | > pushable ]\n\nlate [hot]->[]\nlate [cold]->[]\nlate [ no insulation ] -> [ cold ]\n\nlate [HotSource] -> [HotSource hot]\n\nlate [ hot | no insulation ] -> [ hot | hot ]\n\n[] -> again\n\n==============\nWINCONDITIONS\n==============\nall icecube on target\nno puddle\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n###################\n#.....#.....#.....#\n#.....#.1...#.....#\n#..o..*.....*..i..#\n#.....#...p.#.....#\n#.....#.....#.....#\n###################\n\nmessage very good\n", [0, 0, 0, 1, 1, 2, 1, 2, 1, 1, 3, 3, 1, 1, 1, 3, 3, 2, 3, 3, 2, 3, 3, 0, 1, 1, 1, 1, 1, 0, 1, 2, 0, 1, 1, 2, 3, 3], "background wall:0,0,0,0,0,0,0,0,background hot:1,1,1,1,1,0,0,1,1,1,1,\n1,0,0,1,1,background hot target:2,1,1,0,0,1,1,background hot player:3,background hot hotsource:4,1,0,0,1,1,\nbackground crate:5,1,1,0,0,0,0,background cold:6,0,0,0,0,6,6,6,6,6,0,0,\n6,6,6,6,6,0,0,6,6,6,6,6,0,0,6,6,6,6,6,\n0,0,6,6,6,6,6,0,0,0,0,5,0,0,0,0,6,6,6,\n6,6,0,0,6,6,6,6,6,0,0,6,6,background cold icecube:7,6,6,0,0,6,\n6,6,6,6,0,0,6,6,6,6,6,0,0,0,0,0,0,0,0,\n", 1, "1627891487429.5186"] ], [ - "der Hydra Krypta", - ["title der Hydra Krypta\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nagain_interval 0.1\nnorepeat_action\n\nrun_rules_on_level_start\n(verbose_logging)\n\n========\nOBJECTS\n========\n\nBackground\ntransparent darkblue \n01010\n10001\n00000\n10001\n01010\n\nHeld\nlightblue white pink brown gray blue\n4333.\n4121.\n00000\n.555.\n.5.5.\n\ndecorateheld\nlightblue white pink brown gray blue\n4333.\n4121.\n00000\n.555.\n.5.5.\n\nWand\nDarkgreen black\n00010\n11111\n01000\n11111\n00010\n\nPlayer\ntransparent\n\nKopf_O\ngreen yellow darkgreen\n.000.\n.101.\n.020.\n..2..\n.....\n\nKopf_U\ngreen yellow darkgreen\n.....\n..2..\n.020.\n.101.\n.000.\n\nKopf_L\ngreen yellow darkgreen\n.....\n010..\n0022.\n010..\n.....\n\nKopf_R\ngreen yellow darkgreen\n.....\n..010\n.2200\n..010\n.....\n\nKoerper_L\ngreen darkgreen\n.....\n000..\n1111.\n000..\n.....\n\nKoerper_R\ngreen darkgreen\n.....\n..000\n.1111\n..000\n.....\n\nKoerper_O\ngreen darkgreen\n.010.\n.010.\n.010.\n..1..\n.....\n\nKoerper_U\ngreen darkgreen\n.....\n..1..\n.010.\n.010.\n.010.\n\nblut\nred darkred\n.1.0.\n00100\n.010.\n01001\n.1.0.\n\nt\ntransparent\n\nu\ntransparent\n\naktion \ntransparent\n\nFeuer\norange yellow brown\n.1...\n.1.1.\n10101\n10001\n.222.\n\nbranch \ntransparent\n\nstaticfeuer\norange yellow brown\n.1...\n.1.1.\n10101\n10001\n.222.\n\n\nsprt_0_0\ngreen yellow darkgreen\n.....\n.0000\n.0101\n.0000\n..020\n\nsprt_1_0\ngreen\n.....\n0....\n0....\n0...0\n....0\n\nsprt_2_0\ndarkgreen green\n.....\n.....\n0....\n01...\n01...\n\nsprt_3_0\ngreen darkgreen\n.....\n....0\n...10\n..010\n..010\n\nsprt_4_0\ngreen darkgreen\n.....\n00000\n11111\n00000\n.....\n\nsprt_5_0\ngreen darkgreen\n.....\n00...\n111..\n0000.\n.010.\n\nsprt_0_1\ngreen darkgreen\n..010\n..000\n...11\n....0\n.....\n\nsprt_1_1\ngreen darkgreen\n....0\n00000\n11111\n00100\n.010.\n\nsprt_2_1\ndarkgreen green\n01...\n0111.\n00010\n11110\n...10\n\nsprt_3_1\ngreen yellow\n.0000\n.0101\n.0000\n0....\n0....\n\nsprt_4_1\ngreen darkgreen\n0....\n0....\n0....\n.0000\n.1111\n\nsprt_5_1\ngreen darkgreen\n.010.\n.010.\n.010.\n0010.\n101..\n\nsprt_0_2\ngreen\n.....\n.....\n.....\n.....\n...00\n\nsprt_1_2\ngreen yellow\n00000\n01010\n00000\n.....\n00000\n\nsprt_2_2\ngreen darkgreen\n...01\n...01\n...01\n...01\n00001\n\nsprt_3_2\ngreen\n0....\n0....\n0....\n0....\n0....\n\nsprt_4_2\ngreen darkgreen\n00000\n010..\n010..\n010..\n010..\n\nsprt_5_2\ngreen darkgreen\n00...\n.....\n...1.\n..010\n..010\n\nsprt_0_3\ndarkgreen green\n..010\n.1011\n.101.\n.101.\n.101.\n\nsprt_1_3\ndarkgreen green yellow\n00000\n11111\n.....\n.1111\n.1212\n\nsprt_2_3\ndarkgreen green\n00000\n11110\n...10\n1..10\n1..10\n\nsprt_3_3\ngreen darkgreen\n00000\n11111\n00000\n0....\n0....\n\nsprt_4_3\ngreen darkgreen\n0100.\n11111\n00000\n...01\n...01\n\nsprt_5_3\ngreen darkgreen\n..010\n..010\n0.010\n00010\n1101.\n\nsprt_0_4\ngreen darkgreen\n.010.\n.010.\n.010.\n.010.\n.010.\n\nsprt_1_4\ngreen darkgreen\n.0000\n..010\n..010\n..010\n...10\n\nsprt_2_4\ngreen darkgreen\n0..01\n...01\n...01\n00001\n11111\n\nsprt_3_4\ngreen yellow\n0.000\n0.010\n0.000\n0....\n0....\n\nsprt_4_4\ngreen darkgreen yellow\n00.01\n20001\n00101\n.000.\n.....\n\nsprt_5_4\ngreen\n000..\n0....\n.....\n.....\n.....\n\nsprt_0_5\ngreen darkgreen\n.010.\n.010.\n..1..\n.....\n.....\n\nsprt_1_5\ngreen\n....0\n.....\n.....\n.....\n.....\n\nsprt_2_5\ngreen darkgreen\n00001\n...01\n...01\n....1\n.....\n\nsprt_3_5\ngreen darkgreen\n0....\n0....\n00000\n01111\n00000\n\nsprt_4_5\ngreen darkgreen\n.....\n.....\n0000.\n11111\n0000.\n\nsprt_5_5\ndarkgreen\n.....\n.....\n.0...\n0....\n.....\n\nblackbg\nblack\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wand\nP = Kopf_O and player\n* = Held and branch\nD = decorateheld\nF = staticfeuer\n\n\n\nkopf = Kopf_O or Kopf_U or Kopf_L or Kopf_R\nKoerper = Koerper_O or Koerper_U or Koerper_L or Koerper_R\nSchlange = Koerper or Koerper\nanyfeuer = feuer or staticfeuer\n\nb = blackbg \n\n1 = sprt_0_0 and blackbg\n2 = sprt_1_0 and blackbg\n3 = sprt_2_0 and blackbg\n4 = sprt_3_0 and blackbg\n5 = sprt_4_0 and blackbg\n6 = sprt_5_0 and blackbg\n7 = sprt_0_1 and blackbg\n8 = sprt_1_1 and blackbg\n9 = sprt_2_1 and blackbg\n0 = sprt_3_1 and blackbg\n- = sprt_4_1 and blackbg\nx = sprt_5_1 and blackbg\n; = sprt_0_2 and blackbg\n' = sprt_1_2 and blackbg\n\\ = sprt_2_2 and blackbg\n, = sprt_3_2 and blackbg\n~ = sprt_4_2 and blackbg\n/ = sprt_5_2 and blackbg\n! = sprt_0_3 and blackbg\n@ = sprt_1_3 and blackbg\n£ = sprt_2_3 and blackbg\n$ = sprt_3_3 and blackbg\n% = sprt_4_3 and blackbg\n& = sprt_5_3 and blackbg\nz = sprt_0_4 and wand\n_ = sprt_1_4 and wand\n+ = sprt_2_4 and wand\n{ = sprt_3_4 and wand\n} = sprt_4_4 and wand\n: = sprt_5_4 and wand\n\" = sprt_0_5 \nc = sprt_1_5 \n? = sprt_2_5 \n§ = sprt_3_5 \n± = sprt_4_5 \n` = sprt_5_5 \n\n=======\nSOUNDS\n=======\n\nsfx0 12264904 (Held essen)\n\nblut create 28419304\nfeuer create 77309907 \nendlevel 91964903\nstartlevel 49051702\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nblackbg\nWand\nHeld,decorateheld\nKoerper_O\nKoerper_U\nKoerper_L\nKoerper_R\nKopf_O\nKopf_U\nKopf_L\nKopf_R\nplayer\nblut\nfeuer, staticfeuer\nT\nU\naktion\nbranch\nsprt_0_0, sprt_1_0, sprt_2_0, sprt_3_0, sprt_4_0, sprt_5_0, sprt_0_1, sprt_1_1, sprt_2_1, sprt_3_1, sprt_4_1, sprt_5_1, sprt_0_2, sprt_1_2, sprt_2_2, sprt_3_2, sprt_4_2, sprt_5_2, sprt_0_3, sprt_1_3, sprt_2_3, sprt_3_3, sprt_4_3, sprt_5_3, sprt_0_4, sprt_1_4, sprt_2_4, sprt_3_4, sprt_4_4, sprt_5_4, sprt_0_5, sprt_1_5, sprt_2_5, sprt_3_5, sprt_4_5, sprt_5_5, \n\n\n======\nRULES\n======\n\n[aktion]->[]\n\n[blut]->cancel\n[t]->[]\n[u]->[]\n\n[t]->[]\n\n(action<->aktion swap)\n\n[Kopf_o]->[ up Kopf_o]\n[Kopf_u]->[ down Kopf_u]\n[Kopf_l]->[ left Kopf_l]\n[Kopf_r]->[ right Kopf_r]\n\n[ action player ] -> [ aktion player ]\n[ up player kopf ] -> [ action player > kopf ]\n\n\n(rotation code)\n\n[ left player kopf_o no koerper_l ] -> [ kopf_l ]\n[ right player kopf_o no koerper_r ] -> [ kopf_r ]\n\n[ left player kopf_u no koerper_r ] -> [ kopf_r ]\n[ right player kopf_u no koerper_l ] -> [ kopf_l ]\n\n[ left player kopf_l no koerper_u ] -> [ kopf_u ]\n[ right player kopf_l no koerper_o ] -> [ kopf_o ]\n\n[ left player kopf_r no koerper_o ] -> [ kopf_o ]\n[ right player kopf_r no koerper_u ] -> [ kopf_u ]\n\n\n[ orthogonal player ] -> [ player ]\n\n[Koerper_o]->[ up koerper_o]\n[Koerper_u]->[ down koerper_u]\n[Koerper_l]->[ left koerper_l]\n[Koerper_r]->[ right koerper_r]\n\n[Kopf_o]->[ up Kopf_o]\n[Kopf_u]->[ down Kopf_u]\n[Kopf_l]->[ left Kopf_l]\n[Kopf_r]->[ right Kopf_r]\n\n[action player ] [ > kopf | koerper ] -> [ action player ] [ blut | blut ] \n\n[action player ] [ > kopf | kopf ] -> [ action player ] [ blut | blut ]\n[action player ] [ > kopf | | kopf ] -> [ action player ] [ blut | blut | blut ]\n\n\n\n\n[ action player > kopf | wand ] -> cancel\n[ action player > kopf | schlange ] -> cancel\n\n\n[ action player > kopf | held ] -> [ > T | < T > player held ] sfx0\n[t koerper player ] -> [ player t koerper blut ]\n[ schlange | ^ player held | ] -> [ schlange blut | ^ player held | ]\n+ [ | ^ player held | schlange ] -> [ | ^ player held | schlange blut ]\n+ [ | ^ player held | ] -> [ < player > T | ^ U | < T > player ]\n+ [ horizontal U ] -> [ koerper_o koerper_u ]\n+ [ vertical U ] -> [ koerper_l koerper_r ]\n\n[ up player ] -> [ kopf_o ]\n[ down player ] -> [ kopf_u ]\n[ left player ] -> [ kopf_l ]\n[ right player ] -> [ kopf_r ]\n\n[ action player > kopf | no schlange ] -> [ > T | < T > player ]\n\n[ up T ] -> [ koerper_o ]\n[ down T ] -> [ koerper_u ]\n[ left T ] -> [ koerper_l ]\n[ right T ] -> [ koerper_r ]\n\n[ up Player ] -> [ kopf_o ]\n[ down Player ] -> [ kopf_u ]\n[ left Player ] -> [ kopf_l ]\n[ right Player ] -> [ kopf_r ]\n\n[koerper]->[stationary koerper]\n[kopf]->[stationary kopf]\n\n\n[t]->[]\n\n[ feuer no koerper ] -> [ ]\n\n[Koerper_o]->[ up koerper_o]\n[Koerper_u]->[ down koerper_u]\n[Koerper_l]->[ left koerper_l]\n[Koerper_r]->[ right koerper_r]\n\n[ | < koerper anyfeuer no T no branch ] -> [ feuer | feuer T ]\n[feuer branch]->[ branch]\n[feuer kopf]->[feuer] sfx1\n\n[t]->[]\n\n[moving koerper]->[stationary koerper]\n\n\nlate [ player ] -> []\nlate [kopf]->[ kopf player]\n\n\n[]->again\n\n\n==============\nWINCONDITIONS\n==============\n\nNo Held\nno blut\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 1 : Die Hyrda ist endlich umgegeben!\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#................*.................#\n#..................................#\n#.............*..P..*..............#\n#..................................#\n#................*.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Level 2 von 3 : Es muss moeglich sein, die Hydra zu toten!\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#.................*................#\n#..................................#\n#................*.................#\n#..................*...............#\n#..................................#\n#..............*.p.................#\n#..................................#\n#................*.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Level 3 von 5 : Wir haben ihren Schwachpunkt gefunden!\n\n\n####################################\n#..................................#\n#..................................#\n#................*.................#\n#..................................#\n#................*.................#\n#..................................#\n#................f.................#\n#..................................#\n#................*.................#\n#..................................#\n#................f.................#\n#..................................#\n#................*.................#\n#..................................#\n#..................................#\n#................p.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\n\nmessage Level 4 von 7 : Koennte sie ehrlich unsterblich sein!?\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#................*.................#\n#..................................#\n#................f.................#\n#..................................#\n#.............f..*..f..............#\n#..................................#\n#..................................#\n#.........*.f.*..P..*.f.*..........#\n#..................................#\n#..................................#\n#.............f..*..f..............#\n#..................................#\n#................f.................#\n#..................................#\n#................*.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Level 5 of 9 : Wir mussen uns gegen die Hydra schuetzen!\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..........fffffffffffff...........#\n#..........f...........f...........#\n#..........f..*..*..*..f...........#\n#..........f...........f...........#\n#..........f..*..*..*..f...........#\n#..........f...........f...........#\n#..........ff.........ff...........#\n#................p.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Level 6 of 11 : Haben wir alles umsonst gemacht?\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..........f.....f.....f...........#\n#..................................#\n#.............*..*..*..............#\n#..........f...........f...........#\n#.............*..*..*..............#\n#..................................#\n#..........f...........f...........#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#................p.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Es gibt kein Ende dieser Aufgabe. Wir verbeugen uns vor der Hydra.\n\n\nbbbbbbbb\nb123456b\nb7890-xb\nb;'\\,~/b\nb!@£$%&b\n#z_+{}:#\n.\"c?§±`.\n........\n..D..D..\n........\n\n\n\n",[1,1,0,3,0,0,0,0,3,0,0,0,3,3,3,0,0,0,3,0,0,3,0,0,"undo",0,"restart",0,0,0,0,3,0,0,0,0],"background wand: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,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,background koerper_u kopf_o player:2,background koerper_o koerper_u:3,3,3,background koerper_o koerper_r:4,1,background branch held:5,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,background koerper_l koerper_r:6,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n6,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,background branch koerper_l koerper_r koerper_u:7,3,background blut:8,1,5,1,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,6,1,background blut koerper_r:9,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,6,1,6,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,background koerper_l koerper_u:10,3,background branch koerper_l koerper_o koerper_r:11,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,background koerper_l kopf_r player:12,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,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,0,0,0,0,0,0,\n",1,"1627891504088.934"] + "der Hydra Krypta", + ["title der Hydra Krypta\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nagain_interval 0.1\nnorepeat_action\n\nrun_rules_on_level_start\n(verbose_logging)\n\n========\nOBJECTS\n========\n\nBackground\ntransparent darkblue \n01010\n10001\n00000\n10001\n01010\n\nHeld\nlightblue white pink brown gray blue\n4333.\n4121.\n00000\n.555.\n.5.5.\n\ndecorateheld\nlightblue white pink brown gray blue\n4333.\n4121.\n00000\n.555.\n.5.5.\n\nWand\nDarkgreen black\n00010\n11111\n01000\n11111\n00010\n\nPlayer\ntransparent\n\nKopf_O\ngreen yellow darkgreen\n.000.\n.101.\n.020.\n..2..\n.....\n\nKopf_U\ngreen yellow darkgreen\n.....\n..2..\n.020.\n.101.\n.000.\n\nKopf_L\ngreen yellow darkgreen\n.....\n010..\n0022.\n010..\n.....\n\nKopf_R\ngreen yellow darkgreen\n.....\n..010\n.2200\n..010\n.....\n\nKoerper_L\ngreen darkgreen\n.....\n000..\n1111.\n000..\n.....\n\nKoerper_R\ngreen darkgreen\n.....\n..000\n.1111\n..000\n.....\n\nKoerper_O\ngreen darkgreen\n.010.\n.010.\n.010.\n..1..\n.....\n\nKoerper_U\ngreen darkgreen\n.....\n..1..\n.010.\n.010.\n.010.\n\nblut\nred darkred\n.1.0.\n00100\n.010.\n01001\n.1.0.\n\nt\ntransparent\n\nu\ntransparent\n\naktion \ntransparent\n\nFeuer\norange yellow brown\n.1...\n.1.1.\n10101\n10001\n.222.\n\nbranch \ntransparent\n\nstaticfeuer\norange yellow brown\n.1...\n.1.1.\n10101\n10001\n.222.\n\n\nsprt_0_0\ngreen yellow darkgreen\n.....\n.0000\n.0101\n.0000\n..020\n\nsprt_1_0\ngreen\n.....\n0....\n0....\n0...0\n....0\n\nsprt_2_0\ndarkgreen green\n.....\n.....\n0....\n01...\n01...\n\nsprt_3_0\ngreen darkgreen\n.....\n....0\n...10\n..010\n..010\n\nsprt_4_0\ngreen darkgreen\n.....\n00000\n11111\n00000\n.....\n\nsprt_5_0\ngreen darkgreen\n.....\n00...\n111..\n0000.\n.010.\n\nsprt_0_1\ngreen darkgreen\n..010\n..000\n...11\n....0\n.....\n\nsprt_1_1\ngreen darkgreen\n....0\n00000\n11111\n00100\n.010.\n\nsprt_2_1\ndarkgreen green\n01...\n0111.\n00010\n11110\n...10\n\nsprt_3_1\ngreen yellow\n.0000\n.0101\n.0000\n0....\n0....\n\nsprt_4_1\ngreen darkgreen\n0....\n0....\n0....\n.0000\n.1111\n\nsprt_5_1\ngreen darkgreen\n.010.\n.010.\n.010.\n0010.\n101..\n\nsprt_0_2\ngreen\n.....\n.....\n.....\n.....\n...00\n\nsprt_1_2\ngreen yellow\n00000\n01010\n00000\n.....\n00000\n\nsprt_2_2\ngreen darkgreen\n...01\n...01\n...01\n...01\n00001\n\nsprt_3_2\ngreen\n0....\n0....\n0....\n0....\n0....\n\nsprt_4_2\ngreen darkgreen\n00000\n010..\n010..\n010..\n010..\n\nsprt_5_2\ngreen darkgreen\n00...\n.....\n...1.\n..010\n..010\n\nsprt_0_3\ndarkgreen green\n..010\n.1011\n.101.\n.101.\n.101.\n\nsprt_1_3\ndarkgreen green yellow\n00000\n11111\n.....\n.1111\n.1212\n\nsprt_2_3\ndarkgreen green\n00000\n11110\n...10\n1..10\n1..10\n\nsprt_3_3\ngreen darkgreen\n00000\n11111\n00000\n0....\n0....\n\nsprt_4_3\ngreen darkgreen\n0100.\n11111\n00000\n...01\n...01\n\nsprt_5_3\ngreen darkgreen\n..010\n..010\n0.010\n00010\n1101.\n\nsprt_0_4\ngreen darkgreen\n.010.\n.010.\n.010.\n.010.\n.010.\n\nsprt_1_4\ngreen darkgreen\n.0000\n..010\n..010\n..010\n...10\n\nsprt_2_4\ngreen darkgreen\n0..01\n...01\n...01\n00001\n11111\n\nsprt_3_4\ngreen yellow\n0.000\n0.010\n0.000\n0....\n0....\n\nsprt_4_4\ngreen darkgreen yellow\n00.01\n20001\n00101\n.000.\n.....\n\nsprt_5_4\ngreen\n000..\n0....\n.....\n.....\n.....\n\nsprt_0_5\ngreen darkgreen\n.010.\n.010.\n..1..\n.....\n.....\n\nsprt_1_5\ngreen\n....0\n.....\n.....\n.....\n.....\n\nsprt_2_5\ngreen darkgreen\n00001\n...01\n...01\n....1\n.....\n\nsprt_3_5\ngreen darkgreen\n0....\n0....\n00000\n01111\n00000\n\nsprt_4_5\ngreen darkgreen\n.....\n.....\n0000.\n11111\n0000.\n\nsprt_5_5\ndarkgreen\n.....\n.....\n.0...\n0....\n.....\n\nblackbg\nblack\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wand\nP = Kopf_O and player\n* = Held and branch\nD = decorateheld\nF = staticfeuer\n\n\n\nkopf = Kopf_O or Kopf_U or Kopf_L or Kopf_R\nKoerper = Koerper_O or Koerper_U or Koerper_L or Koerper_R\nSchlange = Koerper or Koerper\nanyfeuer = feuer or staticfeuer\n\nb = blackbg \n\n1 = sprt_0_0 and blackbg\n2 = sprt_1_0 and blackbg\n3 = sprt_2_0 and blackbg\n4 = sprt_3_0 and blackbg\n5 = sprt_4_0 and blackbg\n6 = sprt_5_0 and blackbg\n7 = sprt_0_1 and blackbg\n8 = sprt_1_1 and blackbg\n9 = sprt_2_1 and blackbg\n0 = sprt_3_1 and blackbg\n- = sprt_4_1 and blackbg\nx = sprt_5_1 and blackbg\n; = sprt_0_2 and blackbg\n' = sprt_1_2 and blackbg\n\\ = sprt_2_2 and blackbg\n, = sprt_3_2 and blackbg\n~ = sprt_4_2 and blackbg\n/ = sprt_5_2 and blackbg\n! = sprt_0_3 and blackbg\n@ = sprt_1_3 and blackbg\n£ = sprt_2_3 and blackbg\n$ = sprt_3_3 and blackbg\n% = sprt_4_3 and blackbg\n& = sprt_5_3 and blackbg\nz = sprt_0_4 and wand\n_ = sprt_1_4 and wand\n+ = sprt_2_4 and wand\n{ = sprt_3_4 and wand\n} = sprt_4_4 and wand\n: = sprt_5_4 and wand\n\" = sprt_0_5 \nc = sprt_1_5 \n? = sprt_2_5 \n§ = sprt_3_5 \n± = sprt_4_5 \n` = sprt_5_5 \n\n=======\nSOUNDS\n=======\n\nsfx0 12264904 (Held essen)\n\nblut create 28419304\nfeuer create 77309907 \nendlevel 91964903\nstartlevel 49051702\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nblackbg\nWand\nHeld,decorateheld\nKoerper_O\nKoerper_U\nKoerper_L\nKoerper_R\nKopf_O\nKopf_U\nKopf_L\nKopf_R\nplayer\nblut\nfeuer, staticfeuer\nT\nU\naktion\nbranch\nsprt_0_0, sprt_1_0, sprt_2_0, sprt_3_0, sprt_4_0, sprt_5_0, sprt_0_1, sprt_1_1, sprt_2_1, sprt_3_1, sprt_4_1, sprt_5_1, sprt_0_2, sprt_1_2, sprt_2_2, sprt_3_2, sprt_4_2, sprt_5_2, sprt_0_3, sprt_1_3, sprt_2_3, sprt_3_3, sprt_4_3, sprt_5_3, sprt_0_4, sprt_1_4, sprt_2_4, sprt_3_4, sprt_4_4, sprt_5_4, sprt_0_5, sprt_1_5, sprt_2_5, sprt_3_5, sprt_4_5, sprt_5_5, \n\n\n======\nRULES\n======\n\n[aktion]->[]\n\n[blut]->cancel\n[t]->[]\n[u]->[]\n\n[t]->[]\n\n(action<->aktion swap)\n\n[Kopf_o]->[ up Kopf_o]\n[Kopf_u]->[ down Kopf_u]\n[Kopf_l]->[ left Kopf_l]\n[Kopf_r]->[ right Kopf_r]\n\n[ action player ] -> [ aktion player ]\n[ up player kopf ] -> [ action player > kopf ]\n\n\n(rotation code)\n\n[ left player kopf_o no koerper_l ] -> [ kopf_l ]\n[ right player kopf_o no koerper_r ] -> [ kopf_r ]\n\n[ left player kopf_u no koerper_r ] -> [ kopf_r ]\n[ right player kopf_u no koerper_l ] -> [ kopf_l ]\n\n[ left player kopf_l no koerper_u ] -> [ kopf_u ]\n[ right player kopf_l no koerper_o ] -> [ kopf_o ]\n\n[ left player kopf_r no koerper_o ] -> [ kopf_o ]\n[ right player kopf_r no koerper_u ] -> [ kopf_u ]\n\n\n[ orthogonal player ] -> [ player ]\n\n[Koerper_o]->[ up koerper_o]\n[Koerper_u]->[ down koerper_u]\n[Koerper_l]->[ left koerper_l]\n[Koerper_r]->[ right koerper_r]\n\n[Kopf_o]->[ up Kopf_o]\n[Kopf_u]->[ down Kopf_u]\n[Kopf_l]->[ left Kopf_l]\n[Kopf_r]->[ right Kopf_r]\n\n[action player ] [ > kopf | koerper ] -> [ action player ] [ blut | blut ] \n\n[action player ] [ > kopf | kopf ] -> [ action player ] [ blut | blut ]\n[action player ] [ > kopf | | kopf ] -> [ action player ] [ blut | blut | blut ]\n\n\n\n\n[ action player > kopf | wand ] -> cancel\n[ action player > kopf | schlange ] -> cancel\n\n\n[ action player > kopf | held ] -> [ > T | < T > player held ] sfx0\n[t koerper player ] -> [ player t koerper blut ]\n[ schlange | ^ player held | ] -> [ schlange blut | ^ player held | ]\n+ [ | ^ player held | schlange ] -> [ | ^ player held | schlange blut ]\n+ [ | ^ player held | ] -> [ < player > T | ^ U | < T > player ]\n+ [ horizontal U ] -> [ koerper_o koerper_u ]\n+ [ vertical U ] -> [ koerper_l koerper_r ]\n\n[ up player ] -> [ kopf_o ]\n[ down player ] -> [ kopf_u ]\n[ left player ] -> [ kopf_l ]\n[ right player ] -> [ kopf_r ]\n\n[ action player > kopf | no schlange ] -> [ > T | < T > player ]\n\n[ up T ] -> [ koerper_o ]\n[ down T ] -> [ koerper_u ]\n[ left T ] -> [ koerper_l ]\n[ right T ] -> [ koerper_r ]\n\n[ up Player ] -> [ kopf_o ]\n[ down Player ] -> [ kopf_u ]\n[ left Player ] -> [ kopf_l ]\n[ right Player ] -> [ kopf_r ]\n\n[koerper]->[stationary koerper]\n[kopf]->[stationary kopf]\n\n\n[t]->[]\n\n[ feuer no koerper ] -> [ ]\n\n[Koerper_o]->[ up koerper_o]\n[Koerper_u]->[ down koerper_u]\n[Koerper_l]->[ left koerper_l]\n[Koerper_r]->[ right koerper_r]\n\n[ | < koerper anyfeuer no T no branch ] -> [ feuer | feuer T ]\n[feuer branch]->[ branch]\n[feuer kopf]->[feuer] sfx1\n\n[t]->[]\n\n[moving koerper]->[stationary koerper]\n\n\nlate [ player ] -> []\nlate [kopf]->[ kopf player]\n\n\n[]->again\n\n\n==============\nWINCONDITIONS\n==============\n\nNo Held\nno blut\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 1 : Die Hyrda ist endlich umgegeben!\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#................*.................#\n#..................................#\n#.............*..P..*..............#\n#..................................#\n#................*.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Level 2 von 3 : Es muss moeglich sein, die Hydra zu toten!\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#.................*................#\n#..................................#\n#................*.................#\n#..................*...............#\n#..................................#\n#..............*.p.................#\n#..................................#\n#................*.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Level 3 von 5 : Wir haben ihren Schwachpunkt gefunden!\n\n\n####################################\n#..................................#\n#..................................#\n#................*.................#\n#..................................#\n#................*.................#\n#..................................#\n#................f.................#\n#..................................#\n#................*.................#\n#..................................#\n#................f.................#\n#..................................#\n#................*.................#\n#..................................#\n#..................................#\n#................p.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\n\nmessage Level 4 von 7 : Koennte sie ehrlich unsterblich sein!?\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#................*.................#\n#..................................#\n#................f.................#\n#..................................#\n#.............f..*..f..............#\n#..................................#\n#..................................#\n#.........*.f.*..P..*.f.*..........#\n#..................................#\n#..................................#\n#.............f..*..f..............#\n#..................................#\n#................f.................#\n#..................................#\n#................*.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Level 5 of 9 : Wir mussen uns gegen die Hydra schuetzen!\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..........fffffffffffff...........#\n#..........f...........f...........#\n#..........f..*..*..*..f...........#\n#..........f...........f...........#\n#..........f..*..*..*..f...........#\n#..........f...........f...........#\n#..........ff.........ff...........#\n#................p.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Level 6 of 11 : Haben wir alles umsonst gemacht?\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..........f.....f.....f...........#\n#..................................#\n#.............*..*..*..............#\n#..........f...........f...........#\n#.............*..*..*..............#\n#..................................#\n#..........f...........f...........#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#................p.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Es gibt kein Ende dieser Aufgabe. Wir verbeugen uns vor der Hydra.\n\n\nbbbbbbbb\nb123456b\nb7890-xb\nb;'\\,~/b\nb!@£$%&b\n#z_+{}:#\n.\"c?§±`.\n........\n..D..D..\n........\n\n\n\n", [1, 1, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 3, 3, 3, 0, 0, 0, 3, 0, 0, 3, 0, 0, "undo", 0, "restart", 0, 0, 0, 0, 3, 0, 0, 0, 0], "background wand: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,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,background koerper_u kopf_o player:2,background koerper_o koerper_u:3,3,3,background koerper_o koerper_r:4,1,background branch held:5,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,background koerper_l koerper_r:6,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n6,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,background branch koerper_l koerper_r koerper_u:7,3,background blut:8,1,5,1,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,6,1,background blut koerper_r:9,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,6,1,6,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,background koerper_l koerper_u:10,3,background branch koerper_l koerper_o koerper_r:11,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,background koerper_l kopf_r player:12,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,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,0,0,0,0,0,0,\n", 1, "1627891504088.934"] ], [ - "Die schoene Steinmetzin", - ["title Die schoene Steinmetzin\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnoaction\n\nbackground_color blue\ntext_color white\n\ncolor_palette 14\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nhole\nblack\n\nWall\nBROWN \n\nPlayer\nred\n.....\n.000.\n.000.\n.000.\n.....\n\ncon_u\nred\n.000.\n.....\n.....\n.....\n.....\n\ncon_d\nred\n.....\n.....\n.....\n.....\n.000.\n\ncon_l\nred\n.....\n0....\n0....\n0....\n.....\n\ncon_r\nred\n.....\n....0\n....0\n....0\n.....\n\n\ntr\nred\n....0\n.....\n.....\n.....\n.....\n\n\ntl\nred\n0....\n.....\n.....\n.....\n.....\n\n\nbr\nred\n.....\n.....\n.....\n.....\n....0\n\n\nbl\nred\n.....\n.....\n.....\n.....\n0....\n\nknife_l\ngray\n0....\n0....\n0....\n0....\n0....\n\n\nknife_r\ngray\n....0\n....0\n....0\n....0\n....0\n\n\n\nknife_t\ngray\n00000\n.....\n.....\n.....\n.....\n\n\nknife_b\ngray\n.....\n.....\n.....\n.....\n00000\n\ncut_t\ntransparent\n\ncut_b\ntransparent\n\ncut_l\ntransparent\n\ncut_r\ntransparent\n\ntarget\norange\n\nsupported\ntransparent\n\n=======\nLEGEND\n=======\n\no = hole\n. = Background\n# = Wall\nP = Player\nconnection = con_u or con_d or con_l or con_r\nh = knife_r\nb = knife_b\nt = target\ncut = cut_t or cut_b or cut_l or cut_r\npixel = tr or tl or br or bl\n\n=======\nSOUNDS\n=======\nsfx0 29435104 (fall)\nsfx1 56782707 (cut)\nendlevel 53471503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget \nPlayer, Wall\ncon_u\ncon_d\ncon_l\ncon_r\nknife_t\nknife_b\nknife_l\nknife_r\ncut_t\ncut_b\ncut_l\ncut_r\ntr\ntl\nbr\nbl\nsupported\n\n======\nRULES\n======\n\n[pixel]->[]\n\nright [stationary player | player ] -> [ player con_r | player con_l ]\ndown [stationary player | player ] -> [ player con_d | player con_u ]\n\n\nright [knife_r | ] -> [ knife_r | knife_l]\ndown [knife_b | ] -> [ knife_b | knife_t]\n\n\n[ > player | wall ] -> [ player | wall ]\n+ [ right player knife_r ] -> [ stationary player knife_r]\n+ [ left player knife_l ] -> [ stationary player knife_l]\n+ [ up player knife_t ] -> [ stationary player knife_t]\n+ [ down player knife_b ] -> [ stationary player knife_b]\n\n+ up [ stationary player con_u | player ] -> [ stationary player con_u | stationary player ]\n+ down [ stationary player con_d | player ] -> [ stationary player con_d | stationary player ]\n+ left [ stationary player con_l | player ] -> [ stationary player con_l | stationary player ]\n+ right [ stationary player con_r | player ] -> [ stationary player con_r | stationary player ]\n\n+ [ > player | stationary player ] -> [ player | player ]\n\n\n[ > player connection ] -> [ > player > connection ]\n\n\n\n[ stationary player connection ] -> [ player stationary connection ]\n\n\nlate [ knife_r con_r ] -> [ knife_r cut_r ] sfx1\nlate [ knife_l con_l ] -> [ knife_l cut_l ] sfx1\n\nlate [ knife_t con_u ] -> [ knife_t cut_t ] sfx1\nlate [ knife_b con_d ] -> [ knife_b cut_b ] sfx1\n\n\nlate down [ con_r | con_u cut_r ] -> [ cut_r | con_u cut_r ]\nlate down [ con_l | con_u cut_l ] -> [ cut_l | con_u cut_l ]\n\nlate up [ con_r | con_d cut_r ] -> [ cut_r | con_d cut_r ]\nlate up [ con_l | con_d cut_l ] -> [ cut_l | con_d cut_l ]\n\nlate right [ con_u | con_l cut_t ] -> [ cut_t | con_l cut_t ]\nlate right [ con_d | con_l cut_b ] -> [ cut_b | con_l cut_b ]\n\nlate left [ con_u | con_r cut_t ] -> [ cut_t | con_r cut_t ]\nlate left [ con_d | con_r cut_b ] -> [ cut_b | con_r cut_b ]\n\nlate [ cut ]->[]\n\nlate [ player no hole ] -> [ player supported ]\n\nlate up [ supported con_u | ] -> [ supported con_u | supported ]\n+ late down [ supported con_d | ] -> [ supported con_d | supported ]\n+ late left [ supported con_l | ] -> [ supported con_l | supported ]\n+ late right [ supported con_r | ] -> [ supported con_r | supported ]\n\nlate [ player no supported ] -> [ no connection ] sfx0\n\nlate [ supported ] -> []\n\n\n\nlate right [ con_r con_d ] -> [ con_r con_d br ]\nlate right [ con_r con_u ] -> [ con_r con_u tr ]\nlate right [ con_l con_d ] -> [ con_l con_d bl ]\nlate right [ con_l con_u ] -> [ con_l con_u tl ]\n\n\n==============\nWINCONDITIONS\n==============\n\nall target on player\n\n=======\nLEVELS\n=======\n\n\n(OK LEVELS)\n\nmessage Level 1 von 5\n\n###############\n#.............#\n#.............#\n#....ppp..t.t.#\n##...ppp..ttt.#\n#....ppp..ttt.#\n#..........t..#\n#.............#\n#..h..........#\n###############\n\nmessage Level 2a von 5\n\n##################\n#................#\n#................#\n#....ppp..#...t..#\n#b...ppp..#..ttt.#\n#....ppp..#..ttt.#\n#.........#..t.t.#\n#................#\n#..h.............#\n##################\n\nmessage Level 2b von 5\n\n##################\n#................#\n#.....p..........#\n#....ppp..#......#\n#b...ppp..#..ttt.#\n#....p.p..#..ttt.#\n#.........#..ttt.#\n#................#\n#..h.............#\n##################\n\n\n\nmessage Level 3a von 5\n\n#################\n#........o......#\n#.........o.....#\n#...pp...o..ttt.#\n#b..ppp...o.t.t.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\nmessage Level 3b von 5\n\n(this is ok!)\n#################\n#....h...o......#\n#.........o.....#\n#...ppp..o..tt..#\n#b..p.p...o.ttt.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\nmessage Level 4a von 5\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#.ttt.ttt.#\n#...p.p...#.t.t.t.t.#\n#b..ppp..b#...ttt...#\n#...p.p...#.........#\n#...ppp...#.........#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n\nmessage Level 4b von 5\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#.........#...ttt...#\n#.ppp.ppp.#...t.t...#\n#bp.p.p.pb#...ttt...#\n#...ppp...#...t.t...#\n#.........#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n\nmessage level 5 von 5\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#...ttt...#\n#...p.....#...t.....#\n#b..ppp..b#...ttt...#\n#.....p...#.....t...#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n##...ot...###...ot...\no#.oootttooo#.ooottto\n##...###to###...###to\nottt.#tttooottt.#ttto\not...###...ot...###..\notttooo#.oootttooo#.o\n###to###...###to###..\n#tttooottt.#tttooottt\n###...ot...###...ot..\noo#.oootttooo#.ooottt\n###...###to###...###t\noottt.#tttooottt.#ttt\n.ot...###...ot...###.\nootttooo#.oootttooo#.\n.###to###...###to###.\n.#tttooottt.#tttooott\n.###...ot...###...ot.\nooo#.oootttooo#.ooott\n\n(\n(noT SURE LEVELS)\n\n(dunno!)\n##################\n#........#..######\n#........#.......#\n#...ppp..#...ttt.#\n#b..pp.......t.t.#\n#...ppp......ttt.#\n#........#.......#\n#........#..######\n#....h...#..######\n##################\n\n\n\n\n(lots of work)\n##################\n#............#...#\n#..........#.#...#\n#...pppp...#.tttt#\n#b..pppp...#.tttt#\n#...pppp...#.tttt#\n#...pppp...#.tttt#\n#..........#.#...#\n#..h.........#...#\n##################\n\n\n\n\n(nicht so gut:)\n##################\n#.........o.o#...#\n#..........o.#...#\n#...pppp..#..tttt#\n#b..pppp..#..tttt#\n#...pppp..#..tttt#\n#...pppp..#..tttt#\n#..........o.#...#\n#..h......o.o#...#\n##################\n\n\n#################\n#........o......#\n#.........o.....#\n#...ppp..o..tt..#\n#b..p.p...o.ttt.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\n#################\n#........o......#\n#.........o.....#\n#...ppp..o..ttt.#\n#b..pp....o.t.t.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\n#################\n#........o......#\n#.........o.....#\n#...ppp..o..ttt.#\n#b..pp....o.t.t.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\n(dupe of earlier)\n#################\n#..........######\n#...............#\n#...ppp.....ttt.#\n#b..pp......t.t.#\n#...ppp.....ttt.#\n#...............#\n#..........######\n#...h......######\n#################\n\n\n##################\n#.........o.o#...#\n#..........o.#...#\n#....ppp..#..ttt.#\n#b...ppp..#..ttt.#\n#....ppp..#..ttt.#\n#.........#......#\n#..........o.#...#\n#..h......o.o#...#\n##################\n\n#################\n#........o......#\n#.........o.....#\n#....ppp.o..ttt.#\n#b...pp...o.t.t.#\n#....ppp.o..ttt.#\n#.........o.....#\n#........o......#\n#..h......o.....#\n#################\n\n###############\n#.............#\n#.............#\n#....ppp..ttt.#\n#.#..pp..ttt..#\n#....ppp..ttt.#\n#b............#\n#.............#\n#.............#\n###############\n\n\n##################\n#.........o......#\n#..........o.....#\n#....ppp..#...t..#\n#b...ppp..#..ttt.#\n#....ppp..#..ttt.#\n#.........#..t.t.#\n#..........o.....#\n#..h......o......#\n##################\n\n\n##################\n#oo.......o......#\n#oo......o.......#\n#....ppp..o...t..#\n#b...ppp.o...ttt.#\n#....ppp..o..ttt.#\n#........o...t.t.#\n#.........o......#\n#..h.....o.......#\n##################\n\n\n###############\n#.............#\n#.............#\n#....ppp...t..#\n#b...ppp..ttt.#\n#....ppp..ttt.#\n#.........t.t.#\n#.............#\n#..h..........#\n###############\n\n#################\n#....h...o......#\n#.........o.....#\n#...ppp..o......#\n#...p.p...o.....#\n#...ppp..o..tt..#\n#b..p.p...o.ttt.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n#################\n#....h.....o....#\n#.........o.....#\n#...ppp...#.....#\n#...p.p...#.....#\n#b..ppp..b#.tt..#\n#...p.p...#.ttt.#\n#...ppp...#.ttt.#\n#.........#.....#\n#.........o.....#\n#....h.....o....#\n#################\n\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#.ttt.ttt.#\n#...p.p...#.t.t.t.t.#\n#b..ppp..b#.........#\n#...p.p...#.........#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#...ttt...#\n#...p.....#...t.....#\n#b..ppp..b#...ttt...#\n#...p.p...#.....t...#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n(OK)\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#...ttt...#\n#.....p...#...t.....#\n#b..ppp..b#...ttt...#\n#...p.....#.....t...#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n\n\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#...ttt...#\n#...p.....#.....t...#\n#b..ppp..b#...ttt...#\n#.....p...#...t.....#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n(also ok)\n)\n",[1,0,3,0,2,2,2,2,2,1,0,3,3,3,1,0,0,3,1,2,3,1,1,1,0,0,0,0,1,2,3,1,1,1,1,3,3,2,1,1,1,3,3,3,3,3,2,3,3,1,1,0,3,3,0,0],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,1,1,1,background knife_b:2,background knife_t:3,1,1,\n1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,background knife_r:4,1,\n1,1,1,1,1,1,1,4,0,0,background knife_l:5,1,1,1,1,1,1,1,1,5,0,\n0,background br con_d con_r player:6,background con_d con_u player:7,background con_r con_u player tr:8,1,background con_r player:9,1,1,1,1,1,0,0,background con_l player:10,1,background con_l con_r player:11,background player:12,10,1,1,1,\n1,1,0,0,12,12,10,1,2,background con_d knife_t player:13,background con_u player:14,1,1,1,0,0,1,background hole:15,0,0,0,\n0,0,0,15,1,0,0,15,1,1,1,1,1,1,1,1,15,0,0,1,1,\nbackground target:16,16,1,1,1,1,1,1,0,0,1,1,16,1,1,1,1,1,1,1,0,\n0,1,1,16,16,16,1,1,1,1,1,0,0,1,1,1,1,16,1,1,1,\n1,1,0,0,1,1,16,16,16,1,1,1,1,1,0,0,1,1,16,1,1,\n1,1,1,1,1,0,0,1,1,16,16,1,1,1,1,1,1,0,0,0,1,\n1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",11,"1627891524914.4753"] + "Die schoene Steinmetzin", + ["title Die schoene Steinmetzin\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnoaction\n\nbackground_color blue\ntext_color white\n\ncolor_palette 14\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nhole\nblack\n\nWall\nBROWN \n\nPlayer\nred\n.....\n.000.\n.000.\n.000.\n.....\n\ncon_u\nred\n.000.\n.....\n.....\n.....\n.....\n\ncon_d\nred\n.....\n.....\n.....\n.....\n.000.\n\ncon_l\nred\n.....\n0....\n0....\n0....\n.....\n\ncon_r\nred\n.....\n....0\n....0\n....0\n.....\n\n\ntr\nred\n....0\n.....\n.....\n.....\n.....\n\n\ntl\nred\n0....\n.....\n.....\n.....\n.....\n\n\nbr\nred\n.....\n.....\n.....\n.....\n....0\n\n\nbl\nred\n.....\n.....\n.....\n.....\n0....\n\nknife_l\ngray\n0....\n0....\n0....\n0....\n0....\n\n\nknife_r\ngray\n....0\n....0\n....0\n....0\n....0\n\n\n\nknife_t\ngray\n00000\n.....\n.....\n.....\n.....\n\n\nknife_b\ngray\n.....\n.....\n.....\n.....\n00000\n\ncut_t\ntransparent\n\ncut_b\ntransparent\n\ncut_l\ntransparent\n\ncut_r\ntransparent\n\ntarget\norange\n\nsupported\ntransparent\n\n=======\nLEGEND\n=======\n\no = hole\n. = Background\n# = Wall\nP = Player\nconnection = con_u or con_d or con_l or con_r\nh = knife_r\nb = knife_b\nt = target\ncut = cut_t or cut_b or cut_l or cut_r\npixel = tr or tl or br or bl\n\n=======\nSOUNDS\n=======\nsfx0 29435104 (fall)\nsfx1 56782707 (cut)\nendlevel 53471503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget \nPlayer, Wall\ncon_u\ncon_d\ncon_l\ncon_r\nknife_t\nknife_b\nknife_l\nknife_r\ncut_t\ncut_b\ncut_l\ncut_r\ntr\ntl\nbr\nbl\nsupported\n\n======\nRULES\n======\n\n[pixel]->[]\n\nright [stationary player | player ] -> [ player con_r | player con_l ]\ndown [stationary player | player ] -> [ player con_d | player con_u ]\n\n\nright [knife_r | ] -> [ knife_r | knife_l]\ndown [knife_b | ] -> [ knife_b | knife_t]\n\n\n[ > player | wall ] -> [ player | wall ]\n+ [ right player knife_r ] -> [ stationary player knife_r]\n+ [ left player knife_l ] -> [ stationary player knife_l]\n+ [ up player knife_t ] -> [ stationary player knife_t]\n+ [ down player knife_b ] -> [ stationary player knife_b]\n\n+ up [ stationary player con_u | player ] -> [ stationary player con_u | stationary player ]\n+ down [ stationary player con_d | player ] -> [ stationary player con_d | stationary player ]\n+ left [ stationary player con_l | player ] -> [ stationary player con_l | stationary player ]\n+ right [ stationary player con_r | player ] -> [ stationary player con_r | stationary player ]\n\n+ [ > player | stationary player ] -> [ player | player ]\n\n\n[ > player connection ] -> [ > player > connection ]\n\n\n\n[ stationary player connection ] -> [ player stationary connection ]\n\n\nlate [ knife_r con_r ] -> [ knife_r cut_r ] sfx1\nlate [ knife_l con_l ] -> [ knife_l cut_l ] sfx1\n\nlate [ knife_t con_u ] -> [ knife_t cut_t ] sfx1\nlate [ knife_b con_d ] -> [ knife_b cut_b ] sfx1\n\n\nlate down [ con_r | con_u cut_r ] -> [ cut_r | con_u cut_r ]\nlate down [ con_l | con_u cut_l ] -> [ cut_l | con_u cut_l ]\n\nlate up [ con_r | con_d cut_r ] -> [ cut_r | con_d cut_r ]\nlate up [ con_l | con_d cut_l ] -> [ cut_l | con_d cut_l ]\n\nlate right [ con_u | con_l cut_t ] -> [ cut_t | con_l cut_t ]\nlate right [ con_d | con_l cut_b ] -> [ cut_b | con_l cut_b ]\n\nlate left [ con_u | con_r cut_t ] -> [ cut_t | con_r cut_t ]\nlate left [ con_d | con_r cut_b ] -> [ cut_b | con_r cut_b ]\n\nlate [ cut ]->[]\n\nlate [ player no hole ] -> [ player supported ]\n\nlate up [ supported con_u | ] -> [ supported con_u | supported ]\n+ late down [ supported con_d | ] -> [ supported con_d | supported ]\n+ late left [ supported con_l | ] -> [ supported con_l | supported ]\n+ late right [ supported con_r | ] -> [ supported con_r | supported ]\n\nlate [ player no supported ] -> [ no connection ] sfx0\n\nlate [ supported ] -> []\n\n\n\nlate right [ con_r con_d ] -> [ con_r con_d br ]\nlate right [ con_r con_u ] -> [ con_r con_u tr ]\nlate right [ con_l con_d ] -> [ con_l con_d bl ]\nlate right [ con_l con_u ] -> [ con_l con_u tl ]\n\n\n==============\nWINCONDITIONS\n==============\n\nall target on player\n\n=======\nLEVELS\n=======\n\n\n(OK LEVELS)\n\nmessage Level 1 von 5\n\n###############\n#.............#\n#.............#\n#....ppp..t.t.#\n##...ppp..ttt.#\n#....ppp..ttt.#\n#..........t..#\n#.............#\n#..h..........#\n###############\n\nmessage Level 2a von 5\n\n##################\n#................#\n#................#\n#....ppp..#...t..#\n#b...ppp..#..ttt.#\n#....ppp..#..ttt.#\n#.........#..t.t.#\n#................#\n#..h.............#\n##################\n\nmessage Level 2b von 5\n\n##################\n#................#\n#.....p..........#\n#....ppp..#......#\n#b...ppp..#..ttt.#\n#....p.p..#..ttt.#\n#.........#..ttt.#\n#................#\n#..h.............#\n##################\n\n\n\nmessage Level 3a von 5\n\n#################\n#........o......#\n#.........o.....#\n#...pp...o..ttt.#\n#b..ppp...o.t.t.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\nmessage Level 3b von 5\n\n(this is ok!)\n#################\n#....h...o......#\n#.........o.....#\n#...ppp..o..tt..#\n#b..p.p...o.ttt.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\nmessage Level 4a von 5\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#.ttt.ttt.#\n#...p.p...#.t.t.t.t.#\n#b..ppp..b#...ttt...#\n#...p.p...#.........#\n#...ppp...#.........#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n\nmessage Level 4b von 5\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#.........#...ttt...#\n#.ppp.ppp.#...t.t...#\n#bp.p.p.pb#...ttt...#\n#...ppp...#...t.t...#\n#.........#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n\nmessage level 5 von 5\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#...ttt...#\n#...p.....#...t.....#\n#b..ppp..b#...ttt...#\n#.....p...#.....t...#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n##...ot...###...ot...\no#.oootttooo#.ooottto\n##...###to###...###to\nottt.#tttooottt.#ttto\not...###...ot...###..\notttooo#.oootttooo#.o\n###to###...###to###..\n#tttooottt.#tttooottt\n###...ot...###...ot..\noo#.oootttooo#.ooottt\n###...###to###...###t\noottt.#tttooottt.#ttt\n.ot...###...ot...###.\nootttooo#.oootttooo#.\n.###to###...###to###.\n.#tttooottt.#tttooott\n.###...ot...###...ot.\nooo#.oootttooo#.ooott\n\n(\n(noT SURE LEVELS)\n\n(dunno!)\n##################\n#........#..######\n#........#.......#\n#...ppp..#...ttt.#\n#b..pp.......t.t.#\n#...ppp......ttt.#\n#........#.......#\n#........#..######\n#....h...#..######\n##################\n\n\n\n\n(lots of work)\n##################\n#............#...#\n#..........#.#...#\n#...pppp...#.tttt#\n#b..pppp...#.tttt#\n#...pppp...#.tttt#\n#...pppp...#.tttt#\n#..........#.#...#\n#..h.........#...#\n##################\n\n\n\n\n(nicht so gut:)\n##################\n#.........o.o#...#\n#..........o.#...#\n#...pppp..#..tttt#\n#b..pppp..#..tttt#\n#...pppp..#..tttt#\n#...pppp..#..tttt#\n#..........o.#...#\n#..h......o.o#...#\n##################\n\n\n#################\n#........o......#\n#.........o.....#\n#...ppp..o..tt..#\n#b..p.p...o.ttt.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\n#################\n#........o......#\n#.........o.....#\n#...ppp..o..ttt.#\n#b..pp....o.t.t.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\n#################\n#........o......#\n#.........o.....#\n#...ppp..o..ttt.#\n#b..pp....o.t.t.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\n(dupe of earlier)\n#################\n#..........######\n#...............#\n#...ppp.....ttt.#\n#b..pp......t.t.#\n#...ppp.....ttt.#\n#...............#\n#..........######\n#...h......######\n#################\n\n\n##################\n#.........o.o#...#\n#..........o.#...#\n#....ppp..#..ttt.#\n#b...ppp..#..ttt.#\n#....ppp..#..ttt.#\n#.........#......#\n#..........o.#...#\n#..h......o.o#...#\n##################\n\n#################\n#........o......#\n#.........o.....#\n#....ppp.o..ttt.#\n#b...pp...o.t.t.#\n#....ppp.o..ttt.#\n#.........o.....#\n#........o......#\n#..h......o.....#\n#################\n\n###############\n#.............#\n#.............#\n#....ppp..ttt.#\n#.#..pp..ttt..#\n#....ppp..ttt.#\n#b............#\n#.............#\n#.............#\n###############\n\n\n##################\n#.........o......#\n#..........o.....#\n#....ppp..#...t..#\n#b...ppp..#..ttt.#\n#....ppp..#..ttt.#\n#.........#..t.t.#\n#..........o.....#\n#..h......o......#\n##################\n\n\n##################\n#oo.......o......#\n#oo......o.......#\n#....ppp..o...t..#\n#b...ppp.o...ttt.#\n#....ppp..o..ttt.#\n#........o...t.t.#\n#.........o......#\n#..h.....o.......#\n##################\n\n\n###############\n#.............#\n#.............#\n#....ppp...t..#\n#b...ppp..ttt.#\n#....ppp..ttt.#\n#.........t.t.#\n#.............#\n#..h..........#\n###############\n\n#################\n#....h...o......#\n#.........o.....#\n#...ppp..o......#\n#...p.p...o.....#\n#...ppp..o..tt..#\n#b..p.p...o.ttt.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n#################\n#....h.....o....#\n#.........o.....#\n#...ppp...#.....#\n#...p.p...#.....#\n#b..ppp..b#.tt..#\n#...p.p...#.ttt.#\n#...ppp...#.ttt.#\n#.........#.....#\n#.........o.....#\n#....h.....o....#\n#################\n\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#.ttt.ttt.#\n#...p.p...#.t.t.t.t.#\n#b..ppp..b#.........#\n#...p.p...#.........#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#...ttt...#\n#...p.....#...t.....#\n#b..ppp..b#...ttt...#\n#...p.p...#.....t...#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n(OK)\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#...ttt...#\n#.....p...#...t.....#\n#b..ppp..b#...ttt...#\n#...p.....#.....t...#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n\n\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#...ttt...#\n#...p.....#.....t...#\n#b..ppp..b#...ttt...#\n#.....p...#...t.....#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n(also ok)\n)\n", [1, 0, 3, 0, 2, 2, 2, 2, 2, 1, 0, 3, 3, 3, 1, 0, 0, 3, 1, 2, 3, 1, 1, 1, 0, 0, 0, 0, 1, 2, 3, 1, 1, 1, 1, 3, 3, 2, 1, 1, 1, 3, 3, 3, 3, 3, 2, 3, 3, 1, 1, 0, 3, 3, 0, 0], "background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,1,1,1,background knife_b:2,background knife_t:3,1,1,\n1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,background knife_r:4,1,\n1,1,1,1,1,1,1,4,0,0,background knife_l:5,1,1,1,1,1,1,1,1,5,0,\n0,background br con_d con_r player:6,background con_d con_u player:7,background con_r con_u player tr:8,1,background con_r player:9,1,1,1,1,1,0,0,background con_l player:10,1,background con_l con_r player:11,background player:12,10,1,1,1,\n1,1,0,0,12,12,10,1,2,background con_d knife_t player:13,background con_u player:14,1,1,1,0,0,1,background hole:15,0,0,0,\n0,0,0,15,1,0,0,15,1,1,1,1,1,1,1,1,15,0,0,1,1,\nbackground target:16,16,1,1,1,1,1,1,0,0,1,1,16,1,1,1,1,1,1,1,0,\n0,1,1,16,16,16,1,1,1,1,1,0,0,1,1,1,1,16,1,1,1,\n1,1,0,0,1,1,16,16,16,1,1,1,1,1,0,0,1,1,16,1,1,\n1,1,1,1,1,0,0,1,1,16,16,1,1,1,1,1,1,0,0,0,1,\n1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 11, "1627891524914.4753"] ], [ - "I want to grind myself into dust", - ["title I want to grind myself into dust\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnoaction\n\nbackground_color #231617\ntext_color red\ncolor_palette 10\n\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nhole\n#231617\n\nWall\nred \n\ninvisiblewall\nred \n\nplayer\npink\n.0.0.\n00000\n00000\n.000.\n..0..\n\nblock\ndarkblue\n.....\n.000.\n.000.\n.000.\n.....\n\ncon_u\ndarkblue\n.000.\n.....\n.....\n.....\n.....\n\ncon_d\ndarkblue\n.....\n.....\n.....\n.....\n.000.\n\ncon_l\ndarkblue\n.....\n0....\n0....\n0....\n.....\n\ncon_r\ndarkblue\n.....\n....0\n....0\n....0\n.....\n\n\ntr\ndarkblue\n....0\n.....\n.....\n.....\n.....\n\n\ntl\ndarkblue\n0....\n.....\n.....\n.....\n.....\n\n\nbr\ndarkblue\n.....\n.....\n.....\n.....\n....0\n\n\nbl\ndarkblue\n.....\n.....\n.....\n.....\n0....\n\nknife_l\ngray\n0....\n0....\n0....\n0....\n0....\n\n\nknife_r\ngray\n....0\n....0\n....0\n....0\n....0\n\n\n\nknife_t\ngray\n00000\n.....\n.....\n.....\n.....\n\n\nknife_b\ngray\n.....\n.....\n.....\n.....\n00000\n\ncut_t\ntransparent\n\ncut_b\ntransparent\n\ncut_l\ntransparent\n\ncut_r\ntransparent\n\ntarget\norange\n\nsupported\ntransparent\n\nturn1\ntransparent\n\n=======\nLEGEND\n=======\n\no = hole\n. = Background\n# = Wall\n` = invisiblewall\nP = block\n* = block and player and turn1\nconnection = con_u or con_d or con_l or con_r\nh = knife_r\nb = knife_b\ng = knife_t\nk = knife_t and knife_b\nt = target\ncut = cut_t or cut_b or cut_l or cut_r\npixel = tr or tl or br or bl\nwalltype = wall or invisiblewall\n=======\nSOUNDS\n=======\nsfx0 29435104 (fall)\nsfx1 56782707 (cut)\nsfx2 6864307 (fall apart)\nendlevel 53471503\nplayer destroy 10882304\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget \nBlock, Wall, invisiblewall\ncon_u\ncon_d\ncon_l\ncon_r\nknife_t\nknife_b\nknife_l\nknife_r\nplayer\ncut_t\ncut_b\ncut_l\ncut_r\ntr\ntl\nbr\nbl\nsupported\nturn1\n\n======\nRULES\n======\n\n[ > player block ] -> [ > player > block ]\n\nup [ moving block con_u | stationary block ] -> [ moving block con_u | moving block ]\n+ down [ moving block con_d | stationary block ] -> [ moving block con_d | moving block ]\n+ left [ moving block con_l | stationary block ] -> [ moving block con_l | moving block ]\n+ right [ moving block con_r | stationary block ] -> [ moving block con_r | moving block ]\n+ [ > block | block ] -> [ > block | > block ]\n\n[pixel]->[]\n\nright [ turn1 ] [ block | block ] -> [turn1] [ block con_r | block con_l ]\ndown [ turn1 ] [ block | block ] -> [turn1] [ block con_d | block con_u ]\n\n[turn1]->[]\n\nright [knife_r | ] -> [ knife_r | knife_l]\ndown [knife_b | ] -> [ knife_b | knife_t]\nleft [knife_l | ] -> [ knife_l | knife_r]\nup [knife_t | ] -> [ knife_t | knife_b]\n\n\n[ > block | walltype ] -> [ block | walltype ]\n+ [ right block knife_r ] -> [ stationary block knife_r]\n+ [ left block knife_l ] -> [ stationary block knife_l]\n+ [ up block knife_t ] -> [ stationary block knife_t]\n+ [ down block knife_b ] -> [ stationary block knife_b]\n\n+ up [ stationary block con_u | block ] -> [ stationary block con_u | stationary block ]\n+ down [ stationary block con_d | block ] -> [ stationary block con_d | stationary block ]\n+ left [ stationary block con_l | block ] -> [ stationary block con_l | stationary block ]\n+ right [ stationary block con_r | block ] -> [ stationary block con_r | stationary block ]\n\n+ [ > block | stationary block ] -> [ block | block ]\n\n[ > player | hole ] -> cancel\n\n[ > block connection ] -> [ > block > connection ]\n\n\n\n[ stationary block connection ] -> [ block stationary connection ]\n\n\n[ > player stationary block ] -> cancel\n\nlate [ knife_r con_r ] -> [ cut_r ] sfx1\nlate [ knife_l con_l ] -> [ cut_l ] sfx1\n\nlate [ knife_t con_u ] -> [ cut_t ] sfx1\nlate [ knife_b con_d ] -> [ cut_b ] sfx1\n\n(\nlate down [ con_r | con_u cut_r ] -> [ cut_r | con_u cut_r ]\nlate down [ con_l | con_u cut_l ] -> [ cut_l | con_u cut_l ]\n\nlate up [ con_r | con_d cut_r ] -> [ cut_r | con_d cut_r ]\nlate up [ con_l | con_d cut_l ] -> [ cut_l | con_d cut_l ]\n\nlate right [ con_u | con_l cut_t ] -> [ cut_t | con_l cut_t ]\nlate right [ con_d | con_l cut_b ] -> [ cut_b | con_l cut_b ]\n\nlate left [ con_u | con_r cut_t ] -> [ cut_t | con_r cut_t ]\nlate left [ con_d | con_r cut_b ] -> [ cut_b | con_r cut_b ]\n)\nlate [ cut ]->[]\n\n(\nlate [ block no hole ] -> [ block supported ]\n\nlate up [ supported con_u | ] -> [ supported con_u | supported ]\n+ late down [ supported con_d | ] -> [ supported con_d | supported ]\n+ late left [ supported con_l | ] -> [ supported con_l | supported ]\n+ late right [ supported con_r | ] -> [ supported con_r | supported ]\n\nlate [ block no supported ] -> [ no connection ] sfx0\n\nlate [ supported ] -> []\n\n)\n\n\n\nlate [ con_r con_d ] -> [ con_r con_d br ]\nlate [ con_r con_u ] -> [ con_r con_u tr ]\nlate [ con_l con_d ] -> [ con_l con_d bl ]\nlate [ con_l con_u ] -> [ con_l con_u tl ]\n\nlate [ block no connection ] -> [ ]\nlate [player no block]->[] \n\n==============\nWINCONDITIONS\n==============\n\nno connection\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 3\n\n(main good level)\nooooooooooooooooooo\n#####oooooooooooooo\n#b..###############\n#k................#\n#g.######..#####..#\n##.........#...#..#\no#.........#####..#\no#...p*p..........#\no#...p.p..........#\no#...ppp...hhhhhhh#\no#.........########\no#b.......b#ooooooo\no#g.......g#ooooooo\no#.........#ooooooo\no#.........#ooooooo\no###########ooooooo\n\n\n\nmessage 2 of 3\n\n(level 2)\n````````````````````````````\n`..........................`\n`...........ppp............`\n`...........p.p............`\n`...........ppp............`\n`...........p.p............`\n`...........ppp............`\n`............p.............`\n`............*.............`\n`..........................`\n`.........ooooooo.....###..`\n`.........okhh.ko......b#..`\n`.........okhh.ko......k#..`\n`.........okhh.ko......g#..`\n`.........ooooooo.....###..`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n(level 3)\n\nmessage 3 of 3\n\n\n\n#############################\n#........................#..#\n#........................#.g#\n#......ppp...............#.g#\n#.......p................#.g#\n#....p..p..p.............#.g#\n#....p..p..p.............#.g#\n#....ppp*ppp.............#.g#\n#....p..p..p.............#.g#\n#....p..p..p...............g#\n#.......p...................#\n#....ppppppp................#\n#...........................#\n#...........................#\n#...........................#\n#...........................#\n#..........hhhhhh...........#\n#..........hhhhhh...........#\n#..........hhhhhh...........#\n#..........hhhhhh...........#\n#..........ooo.ooo..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#........``o.....o``........#\n#........`bo.....ob`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`go.....og`........#\n##```````````````#````````###\n\nmessage I am finally dust!\n\n(\n\n````````````````````````````\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`.....b......b....b........`\n`.....g......g....g........`\n`..........................`\n`..........ppppp...........`\n`............p.............`\n`.........p..p..p....h.....`\n`.........p..p..p..........`\n`....h....ppp*ppp..........`\n`.........p..p..p..........`\n`.........p..p..p....h.....`\n`............p.............`\n`..........ppppp...........`\n`...................b......`\n`....h........b.....g......`\n`.............g............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n````````````````````````````\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`.....b......b....b........`\n`.....g......g....g........`\n`............p.............`\n`............p.............`\n`............p.............`\n`............p.......h.....`\n`............p.............`\n`....h.......*.............`\n`............p.............`\n`............p.......h.....`\n`............p.............`\n`............p.............`\n`............p......b......`\n`....h.......pb.....g......`\n`............pg............`\n`............p.............`\n`............p.............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n````````````````````````````\n`..........................`\n`.....b......b....b........`\n`.....g......g....g........`\n`..........................`\n`..........................`\n`..........................`\n`..........ppppp.....h.....`\n`..........pp*pp...........`\n`....h.....ppppp...........`\n`..........................`\n`....................h.....`\n`..........................`\n`..........................`\n`...................b......`\n`....h........b.....g......`\n`.............g............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n\n......................................\n......................................\n......................................\n......................................\n......................................\n.......b..............................\n......................................\n.............h..h...h..h..h...........\n.......b.......................b......\n......................................\n......................................\n..............ppppppp.................\n.......b......p.p.p.p.................\n..............ppp*ppp..........b......\n..............p.p.p.p.................\n..............ppppppp.................\n.......b..............................\n...............................b......\n......................................\n......................................\n.......b..............................\n...............................b......\n......................................\n............h...h...h..h..h...........\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n.......ppppppp..........\n.......p.p.p.p..........\n.......ppp*ppp..........\n.......p.p.p.p..........\n.......ppppppp..........\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n\n...................\n#####..............\n#b..###############\n#b................#\n#..######..#####..#\n##.........#...#..#\n.#.........#####..#\n.#....p...........#\n.#....p...........#\n.#...p*p...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#.........#.......\n.###########.......\n\n\n\n.###################.\n.#.................#.\n.#.................#.\n.#.................#.\n.#.................#.\n.#ooooooooooooooooo#.\n.#.................#.\n.#....p*p..........#.\n.#....p.p..........#.\n.#b...ppp.........b#.\n.#....p.p..........#.\n##....ppp..........##\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#ooooooooooooooooo#\n#.................#\n#....p*p..........#\n#....p.p..........#\n#b...ppp.........b#\n#....p.p..........#\n#....ppp..........#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n\n...................\n#####..............\n#b..###############\n#b................#\n#..######..#####..#\n##.........#...#..#\n.#.........#####..#\n.#...p*p..........#\n.#...p.p..........#\n.#...ppp...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#.........#.......\n.###########.......\n\n\n\n####............\n#b.#############\n#b.............#\n#..###..#####..#\n##......#...#..#\n.#......#####..#\n.#..p*p........#\n.#..p.p........#\n.#..ppp.hhhhhhh#\n.#b....b########\n.#......#.......\n.#......#.......\n.#......#.......\n.########.......\n................\n\n\n...................\n#####..............\n#b..###############\n#b................#\n#..#####...####...#\n##.........#..#...#\n.#.........####...#\n.#...p*p..........#\n.#...p.p..........#\n.#...ppp...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#.........#.......\n.###########.......\n\n...................\n#####..............\n#b..###############\n#b................#\n#..######..#####..#\n##.........#...#..#\n.#.........#####..#\n.#...p*p..........#\n.#...p.p..........#\n.#...ppp...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#....h....#.......\n.###########.......\n\n...................\n#####..............\n#b..###############\n#b................#\n#..######..#####..#\n##.........#...#..#\n.#.........#####..#\n.#...p*p..........#\n.#...p.p..........#\n.#...ppp...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#....h....#.......\n.###########.......\n\n\n..........................\n...........ppp............\n...........p.p............\n...........ppp............\n...........p.p............\n...........p*p............\n..........................\n..........................\n.........ooooooo..........\n.........okhh.ko..........\n.........okhh.ko..........\n.........okhh.ko..........\n.........ooooooo..........\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n\n..........................\n...........ppp............\n...........p.p............\n...........ppp............\n...........p.p............\n...........ppp............\n............p.............\n............*.............\n.........ooooooo..........\n.........okhh.ko..........\n.........okhh.ko..........\n.........okhh.ko..........\n.........ooooooo..........\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n\n......................................\n......................................\n......................................\n......................................\n......................................\n.......b..............................\n......................................\n....................h..h..h...........\n.......b.......................b......\n......................................\n......................................\n......................................\n.......b..............................\n...............................b......\n......................................\n.............ppp......................\n.......b......p.......................\n.............*p................b......\n..............p.......................\n.............pp.......................\n.......b..............................\n..............ppp........p.....b......\n..............p.p........p............\n..............ppp.......pph...........\n..............p.p........p............\n..............ppp.......pp............\n............ooooooo...................\n............okhh.ko...................\n............obhh.bo...................\n............obhh.bo...................\n............ooooooo...................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n\n\n\n\n\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n...ppp.....................\n...p.p....ooooooo.....###..\n...ppp....okhh.ko......b#..\n...p.p....okhh.ko......k#..\n...ppp....okhh.ko......g#..\n....p.....ooooooo.....###..\n....*......................\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n\n\n````````````````````````````\n`........hhhhhhhh.....kkkkk`\n`........hhhhhhhh.....kkkkk`\n`........hhhhhhhh.....kkkkk`\n`........hhhhhhhh.....kkkkk`\n`.....................kkkkk`\n#.....................ggggg`\n#..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`.........ppppp............`\n`....b......p..............`\n`........p..p..p...........`\n`........p..p..p...........`\n`........ppp*ppp...........`\n`........p..p..p...........`\n`....b...p..p..p...........`\n`...........p..............`\n`.........ppppp............`\n`..........................`\n`..........................`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n\n````````````````````````````\n`........hhhhhhhh.....ggggk`\n`........hhhhhhhh.....ggggk`\n`........hhhhhhhh.....ggggk`\n`........hhhhhhhh.....ggggk`\n`.....................ggggg`\n#.....................ggggg`\n#..........................`\n`..........ppppp...........`\n`............p.............`\n`...........pp.............`\n`...........pp.............`\n`..........pppp............`\n`..........pp..............`\n`..........pp..............`\n`........ppppp.............`\n`.........p................`\n`.........p................`\n`......*ppp................`\n`.........p................`\n`.........p................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n\n############################\n`..........................`\n`.........ppppp............`\n`...........p..............`\n`........p..p..p...........`\n`........p..p..p...........`\n`........ppp*ppp...........`\n`........p..p..p...........`\n`........p..p..p...........`\n`...........p..............`\n`.........ppppp............`\n`..........................`\n`..........................`\n`..........................`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........`oo.oo`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n````````````````````````````\n\n############################\n`..........................`\n`.........ppppp............`\n`...........p..............`\n`........p..p..p...........`\n`........p..p..p...........`\n`........ppp*ppp...........`\n`........p..p..p...........`\n`........p..p..p...........`\n`...........p..............`\n`.........ppppp............`\n`..........................`\n`..........................`\n`..........................`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........`oo.oo`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n````````````````````````````\n\n############################\n`..........................`\n`..........ppp.............`\n`...........p..............`\n`...........p..............`\n`...........p..............`\n`...........*..............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`...........p.p............`\n`...........p.p............`\n`...........p.p............`\n`...........p.p............`\n`...........p.p............`\n`...........p.p............`\n`..........................`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n````````````````````````````\n\n\n############################\n`..........................`\n`..........ppp.............`\n`...........p..............`\n`........p..p..p...........`\n`........p..p..p...........`\n`........ppp*ppp...........`\n`........p..p..p...........`\n`........p..p..p...........`\n`...........p..............`\n`........ppppppp...........`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........ooo.ooo...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n````````````````````````````\n\n\n#########################\n`....................#.k#\n`....................#.k#\n`....ppp.............#.k#\n`.....p..............#.k#\n`..p..p..p...........#.k#\n`..p..p..p...........#.k#\n`..ppp*ppp...........#.k#\n`..p..p..p...........#.k#\n`..p..p..p..............#\n`.....p.................#\n`..ppppppp..............#\n`.......................#\n`.......................#\n`.......................#\n`.......................#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........ooo.ooo........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`......``o.....o``......#\n`......`bo.....ob`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`go.....og`......#\n```````````````#`````````\n\n\n\n#########################\n`....................#.k#\n`....................#.k#\n`....ppp.............#.k#\n`.....p..............#.k#\n`..p..p..p...........#.k#\n`..p..p..p...........#.k#\n`..ppp*ppp...........#.g#\n`..p..p..p..............#\n`..p..p..p..............#\n`.....p.................#\n`..ppppppp..............#\n`.......................#\n`.......................#\n`.......................#\n`.......................#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........ooo.ooo........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`......``o.....o``......#\n`......`bo.....ob`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`go.....og`......#\n```````````````#`````````\n\n\n#########################\n`....................#.g#\n`....................#.g#\n`..........ppp.......#.g#\n`...........p........#.g#\n`........p..p..p.....#.g#\n`........p..p..p.....#.g#\n`........ppp*ppp.....#.g#\n`........p..p..p........#\n`........p..p..p........#\n`...........p...........#\n`........ppppppp........#\n`.......................#\n`.......................#\n`.......................#\n`.......................#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........ooo.ooo........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`......``o.....o``......#\n`......`.o.....o.`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n```````````````#`````````\n\n\n)\n",[2,3,3,3,3,2,2,2,2,2,2,2,1,3,3,3,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,0,0,0,0,3,0,0,0,3,3,0,1,1,2,2,2,1,1,2,1,1,1,1,1,0,0,0,3,3,3,3,3,1,1,1,1,0,0,3,2,3,3,3,3,3,3,3,3,3,3,0,3,3,3,0,0,0],"background invisiblewall: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,background:1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,1,1,1,1,1,1,1,1,1,1,background block con_r:2,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,background hole:3,background block con_l con_r hole:4,3,3,3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,\n1,1,1,1,1,background hole knife_b:5,background block con_l knife_t:6,1,1,3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,3,background knife_r:7,7,1,3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,3,\nbackground knife_l knife_r:8,8,1,3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,3,background knife_l:9,9,1,\n3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,3,1,1,1,3,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,3,3,3,3,3,1,1,1,1,1,\n1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,\n1,1,1,1,1,background bl block br con_d con_l con_r:10,background block con_d con_u:11,background block con_u player:12,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\nbackground wall:13,background block con_d:14,background block con_l con_u tl:15,1,13,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,13,background knife_b:16,background knife_b knife_t:17,\nbackground knife_t:18,13,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,13,13,13,13,13,1,\n1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,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,0,\n",3,"1627891570621.5903"] + "I want to grind myself into dust", + ["title I want to grind myself into dust\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnoaction\n\nbackground_color #231617\ntext_color red\ncolor_palette 10\n\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nhole\n#231617\n\nWall\nred \n\ninvisiblewall\nred \n\nplayer\npink\n.0.0.\n00000\n00000\n.000.\n..0..\n\nblock\ndarkblue\n.....\n.000.\n.000.\n.000.\n.....\n\ncon_u\ndarkblue\n.000.\n.....\n.....\n.....\n.....\n\ncon_d\ndarkblue\n.....\n.....\n.....\n.....\n.000.\n\ncon_l\ndarkblue\n.....\n0....\n0....\n0....\n.....\n\ncon_r\ndarkblue\n.....\n....0\n....0\n....0\n.....\n\n\ntr\ndarkblue\n....0\n.....\n.....\n.....\n.....\n\n\ntl\ndarkblue\n0....\n.....\n.....\n.....\n.....\n\n\nbr\ndarkblue\n.....\n.....\n.....\n.....\n....0\n\n\nbl\ndarkblue\n.....\n.....\n.....\n.....\n0....\n\nknife_l\ngray\n0....\n0....\n0....\n0....\n0....\n\n\nknife_r\ngray\n....0\n....0\n....0\n....0\n....0\n\n\n\nknife_t\ngray\n00000\n.....\n.....\n.....\n.....\n\n\nknife_b\ngray\n.....\n.....\n.....\n.....\n00000\n\ncut_t\ntransparent\n\ncut_b\ntransparent\n\ncut_l\ntransparent\n\ncut_r\ntransparent\n\ntarget\norange\n\nsupported\ntransparent\n\nturn1\ntransparent\n\n=======\nLEGEND\n=======\n\no = hole\n. = Background\n# = Wall\n` = invisiblewall\nP = block\n* = block and player and turn1\nconnection = con_u or con_d or con_l or con_r\nh = knife_r\nb = knife_b\ng = knife_t\nk = knife_t and knife_b\nt = target\ncut = cut_t or cut_b or cut_l or cut_r\npixel = tr or tl or br or bl\nwalltype = wall or invisiblewall\n=======\nSOUNDS\n=======\nsfx0 29435104 (fall)\nsfx1 56782707 (cut)\nsfx2 6864307 (fall apart)\nendlevel 53471503\nplayer destroy 10882304\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget \nBlock, Wall, invisiblewall\ncon_u\ncon_d\ncon_l\ncon_r\nknife_t\nknife_b\nknife_l\nknife_r\nplayer\ncut_t\ncut_b\ncut_l\ncut_r\ntr\ntl\nbr\nbl\nsupported\nturn1\n\n======\nRULES\n======\n\n[ > player block ] -> [ > player > block ]\n\nup [ moving block con_u | stationary block ] -> [ moving block con_u | moving block ]\n+ down [ moving block con_d | stationary block ] -> [ moving block con_d | moving block ]\n+ left [ moving block con_l | stationary block ] -> [ moving block con_l | moving block ]\n+ right [ moving block con_r | stationary block ] -> [ moving block con_r | moving block ]\n+ [ > block | block ] -> [ > block | > block ]\n\n[pixel]->[]\n\nright [ turn1 ] [ block | block ] -> [turn1] [ block con_r | block con_l ]\ndown [ turn1 ] [ block | block ] -> [turn1] [ block con_d | block con_u ]\n\n[turn1]->[]\n\nright [knife_r | ] -> [ knife_r | knife_l]\ndown [knife_b | ] -> [ knife_b | knife_t]\nleft [knife_l | ] -> [ knife_l | knife_r]\nup [knife_t | ] -> [ knife_t | knife_b]\n\n\n[ > block | walltype ] -> [ block | walltype ]\n+ [ right block knife_r ] -> [ stationary block knife_r]\n+ [ left block knife_l ] -> [ stationary block knife_l]\n+ [ up block knife_t ] -> [ stationary block knife_t]\n+ [ down block knife_b ] -> [ stationary block knife_b]\n\n+ up [ stationary block con_u | block ] -> [ stationary block con_u | stationary block ]\n+ down [ stationary block con_d | block ] -> [ stationary block con_d | stationary block ]\n+ left [ stationary block con_l | block ] -> [ stationary block con_l | stationary block ]\n+ right [ stationary block con_r | block ] -> [ stationary block con_r | stationary block ]\n\n+ [ > block | stationary block ] -> [ block | block ]\n\n[ > player | hole ] -> cancel\n\n[ > block connection ] -> [ > block > connection ]\n\n\n\n[ stationary block connection ] -> [ block stationary connection ]\n\n\n[ > player stationary block ] -> cancel\n\nlate [ knife_r con_r ] -> [ cut_r ] sfx1\nlate [ knife_l con_l ] -> [ cut_l ] sfx1\n\nlate [ knife_t con_u ] -> [ cut_t ] sfx1\nlate [ knife_b con_d ] -> [ cut_b ] sfx1\n\n(\nlate down [ con_r | con_u cut_r ] -> [ cut_r | con_u cut_r ]\nlate down [ con_l | con_u cut_l ] -> [ cut_l | con_u cut_l ]\n\nlate up [ con_r | con_d cut_r ] -> [ cut_r | con_d cut_r ]\nlate up [ con_l | con_d cut_l ] -> [ cut_l | con_d cut_l ]\n\nlate right [ con_u | con_l cut_t ] -> [ cut_t | con_l cut_t ]\nlate right [ con_d | con_l cut_b ] -> [ cut_b | con_l cut_b ]\n\nlate left [ con_u | con_r cut_t ] -> [ cut_t | con_r cut_t ]\nlate left [ con_d | con_r cut_b ] -> [ cut_b | con_r cut_b ]\n)\nlate [ cut ]->[]\n\n(\nlate [ block no hole ] -> [ block supported ]\n\nlate up [ supported con_u | ] -> [ supported con_u | supported ]\n+ late down [ supported con_d | ] -> [ supported con_d | supported ]\n+ late left [ supported con_l | ] -> [ supported con_l | supported ]\n+ late right [ supported con_r | ] -> [ supported con_r | supported ]\n\nlate [ block no supported ] -> [ no connection ] sfx0\n\nlate [ supported ] -> []\n\n)\n\n\n\nlate [ con_r con_d ] -> [ con_r con_d br ]\nlate [ con_r con_u ] -> [ con_r con_u tr ]\nlate [ con_l con_d ] -> [ con_l con_d bl ]\nlate [ con_l con_u ] -> [ con_l con_u tl ]\n\nlate [ block no connection ] -> [ ]\nlate [player no block]->[] \n\n==============\nWINCONDITIONS\n==============\n\nno connection\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 3\n\n(main good level)\nooooooooooooooooooo\n#####oooooooooooooo\n#b..###############\n#k................#\n#g.######..#####..#\n##.........#...#..#\no#.........#####..#\no#...p*p..........#\no#...p.p..........#\no#...ppp...hhhhhhh#\no#.........########\no#b.......b#ooooooo\no#g.......g#ooooooo\no#.........#ooooooo\no#.........#ooooooo\no###########ooooooo\n\n\n\nmessage 2 of 3\n\n(level 2)\n````````````````````````````\n`..........................`\n`...........ppp............`\n`...........p.p............`\n`...........ppp............`\n`...........p.p............`\n`...........ppp............`\n`............p.............`\n`............*.............`\n`..........................`\n`.........ooooooo.....###..`\n`.........okhh.ko......b#..`\n`.........okhh.ko......k#..`\n`.........okhh.ko......g#..`\n`.........ooooooo.....###..`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n(level 3)\n\nmessage 3 of 3\n\n\n\n#############################\n#........................#..#\n#........................#.g#\n#......ppp...............#.g#\n#.......p................#.g#\n#....p..p..p.............#.g#\n#....p..p..p.............#.g#\n#....ppp*ppp.............#.g#\n#....p..p..p.............#.g#\n#....p..p..p...............g#\n#.......p...................#\n#....ppppppp................#\n#...........................#\n#...........................#\n#...........................#\n#...........................#\n#..........hhhhhh...........#\n#..........hhhhhh...........#\n#..........hhhhhh...........#\n#..........hhhhhh...........#\n#..........ooo.ooo..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#........``o.....o``........#\n#........`bo.....ob`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`go.....og`........#\n##```````````````#````````###\n\nmessage I am finally dust!\n\n(\n\n````````````````````````````\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`.....b......b....b........`\n`.....g......g....g........`\n`..........................`\n`..........ppppp...........`\n`............p.............`\n`.........p..p..p....h.....`\n`.........p..p..p..........`\n`....h....ppp*ppp..........`\n`.........p..p..p..........`\n`.........p..p..p....h.....`\n`............p.............`\n`..........ppppp...........`\n`...................b......`\n`....h........b.....g......`\n`.............g............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n````````````````````````````\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`.....b......b....b........`\n`.....g......g....g........`\n`............p.............`\n`............p.............`\n`............p.............`\n`............p.......h.....`\n`............p.............`\n`....h.......*.............`\n`............p.............`\n`............p.......h.....`\n`............p.............`\n`............p.............`\n`............p......b......`\n`....h.......pb.....g......`\n`............pg............`\n`............p.............`\n`............p.............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n````````````````````````````\n`..........................`\n`.....b......b....b........`\n`.....g......g....g........`\n`..........................`\n`..........................`\n`..........................`\n`..........ppppp.....h.....`\n`..........pp*pp...........`\n`....h.....ppppp...........`\n`..........................`\n`....................h.....`\n`..........................`\n`..........................`\n`...................b......`\n`....h........b.....g......`\n`.............g............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n\n......................................\n......................................\n......................................\n......................................\n......................................\n.......b..............................\n......................................\n.............h..h...h..h..h...........\n.......b.......................b......\n......................................\n......................................\n..............ppppppp.................\n.......b......p.p.p.p.................\n..............ppp*ppp..........b......\n..............p.p.p.p.................\n..............ppppppp.................\n.......b..............................\n...............................b......\n......................................\n......................................\n.......b..............................\n...............................b......\n......................................\n............h...h...h..h..h...........\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n.......ppppppp..........\n.......p.p.p.p..........\n.......ppp*ppp..........\n.......p.p.p.p..........\n.......ppppppp..........\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n\n...................\n#####..............\n#b..###############\n#b................#\n#..######..#####..#\n##.........#...#..#\n.#.........#####..#\n.#....p...........#\n.#....p...........#\n.#...p*p...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#.........#.......\n.###########.......\n\n\n\n.###################.\n.#.................#.\n.#.................#.\n.#.................#.\n.#.................#.\n.#ooooooooooooooooo#.\n.#.................#.\n.#....p*p..........#.\n.#....p.p..........#.\n.#b...ppp.........b#.\n.#....p.p..........#.\n##....ppp..........##\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#ooooooooooooooooo#\n#.................#\n#....p*p..........#\n#....p.p..........#\n#b...ppp.........b#\n#....p.p..........#\n#....ppp..........#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n\n...................\n#####..............\n#b..###############\n#b................#\n#..######..#####..#\n##.........#...#..#\n.#.........#####..#\n.#...p*p..........#\n.#...p.p..........#\n.#...ppp...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#.........#.......\n.###########.......\n\n\n\n####............\n#b.#############\n#b.............#\n#..###..#####..#\n##......#...#..#\n.#......#####..#\n.#..p*p........#\n.#..p.p........#\n.#..ppp.hhhhhhh#\n.#b....b########\n.#......#.......\n.#......#.......\n.#......#.......\n.########.......\n................\n\n\n...................\n#####..............\n#b..###############\n#b................#\n#..#####...####...#\n##.........#..#...#\n.#.........####...#\n.#...p*p..........#\n.#...p.p..........#\n.#...ppp...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#.........#.......\n.###########.......\n\n...................\n#####..............\n#b..###############\n#b................#\n#..######..#####..#\n##.........#...#..#\n.#.........#####..#\n.#...p*p..........#\n.#...p.p..........#\n.#...ppp...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#....h....#.......\n.###########.......\n\n...................\n#####..............\n#b..###############\n#b................#\n#..######..#####..#\n##.........#...#..#\n.#.........#####..#\n.#...p*p..........#\n.#...p.p..........#\n.#...ppp...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#....h....#.......\n.###########.......\n\n\n..........................\n...........ppp............\n...........p.p............\n...........ppp............\n...........p.p............\n...........p*p............\n..........................\n..........................\n.........ooooooo..........\n.........okhh.ko..........\n.........okhh.ko..........\n.........okhh.ko..........\n.........ooooooo..........\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n\n..........................\n...........ppp............\n...........p.p............\n...........ppp............\n...........p.p............\n...........ppp............\n............p.............\n............*.............\n.........ooooooo..........\n.........okhh.ko..........\n.........okhh.ko..........\n.........okhh.ko..........\n.........ooooooo..........\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n\n......................................\n......................................\n......................................\n......................................\n......................................\n.......b..............................\n......................................\n....................h..h..h...........\n.......b.......................b......\n......................................\n......................................\n......................................\n.......b..............................\n...............................b......\n......................................\n.............ppp......................\n.......b......p.......................\n.............*p................b......\n..............p.......................\n.............pp.......................\n.......b..............................\n..............ppp........p.....b......\n..............p.p........p............\n..............ppp.......pph...........\n..............p.p........p............\n..............ppp.......pp............\n............ooooooo...................\n............okhh.ko...................\n............obhh.bo...................\n............obhh.bo...................\n............ooooooo...................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n\n\n\n\n\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n...ppp.....................\n...p.p....ooooooo.....###..\n...ppp....okhh.ko......b#..\n...p.p....okhh.ko......k#..\n...ppp....okhh.ko......g#..\n....p.....ooooooo.....###..\n....*......................\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n\n\n````````````````````````````\n`........hhhhhhhh.....kkkkk`\n`........hhhhhhhh.....kkkkk`\n`........hhhhhhhh.....kkkkk`\n`........hhhhhhhh.....kkkkk`\n`.....................kkkkk`\n#.....................ggggg`\n#..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`.........ppppp............`\n`....b......p..............`\n`........p..p..p...........`\n`........p..p..p...........`\n`........ppp*ppp...........`\n`........p..p..p...........`\n`....b...p..p..p...........`\n`...........p..............`\n`.........ppppp............`\n`..........................`\n`..........................`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n\n````````````````````````````\n`........hhhhhhhh.....ggggk`\n`........hhhhhhhh.....ggggk`\n`........hhhhhhhh.....ggggk`\n`........hhhhhhhh.....ggggk`\n`.....................ggggg`\n#.....................ggggg`\n#..........................`\n`..........ppppp...........`\n`............p.............`\n`...........pp.............`\n`...........pp.............`\n`..........pppp............`\n`..........pp..............`\n`..........pp..............`\n`........ppppp.............`\n`.........p................`\n`.........p................`\n`......*ppp................`\n`.........p................`\n`.........p................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n\n############################\n`..........................`\n`.........ppppp............`\n`...........p..............`\n`........p..p..p...........`\n`........p..p..p...........`\n`........ppp*ppp...........`\n`........p..p..p...........`\n`........p..p..p...........`\n`...........p..............`\n`.........ppppp............`\n`..........................`\n`..........................`\n`..........................`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........`oo.oo`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n````````````````````````````\n\n############################\n`..........................`\n`.........ppppp............`\n`...........p..............`\n`........p..p..p...........`\n`........p..p..p...........`\n`........ppp*ppp...........`\n`........p..p..p...........`\n`........p..p..p...........`\n`...........p..............`\n`.........ppppp............`\n`..........................`\n`..........................`\n`..........................`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........`oo.oo`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n````````````````````````````\n\n############################\n`..........................`\n`..........ppp.............`\n`...........p..............`\n`...........p..............`\n`...........p..............`\n`...........*..............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`...........p.p............`\n`...........p.p............`\n`...........p.p............`\n`...........p.p............`\n`...........p.p............`\n`...........p.p............`\n`..........................`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n````````````````````````````\n\n\n############################\n`..........................`\n`..........ppp.............`\n`...........p..............`\n`........p..p..p...........`\n`........p..p..p...........`\n`........ppp*ppp...........`\n`........p..p..p...........`\n`........p..p..p...........`\n`...........p..............`\n`........ppppppp...........`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........ooo.ooo...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n````````````````````````````\n\n\n#########################\n`....................#.k#\n`....................#.k#\n`....ppp.............#.k#\n`.....p..............#.k#\n`..p..p..p...........#.k#\n`..p..p..p...........#.k#\n`..ppp*ppp...........#.k#\n`..p..p..p...........#.k#\n`..p..p..p..............#\n`.....p.................#\n`..ppppppp..............#\n`.......................#\n`.......................#\n`.......................#\n`.......................#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........ooo.ooo........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`......``o.....o``......#\n`......`bo.....ob`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`go.....og`......#\n```````````````#`````````\n\n\n\n#########################\n`....................#.k#\n`....................#.k#\n`....ppp.............#.k#\n`.....p..............#.k#\n`..p..p..p...........#.k#\n`..p..p..p...........#.k#\n`..ppp*ppp...........#.g#\n`..p..p..p..............#\n`..p..p..p..............#\n`.....p.................#\n`..ppppppp..............#\n`.......................#\n`.......................#\n`.......................#\n`.......................#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........ooo.ooo........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`......``o.....o``......#\n`......`bo.....ob`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`go.....og`......#\n```````````````#`````````\n\n\n#########################\n`....................#.g#\n`....................#.g#\n`..........ppp.......#.g#\n`...........p........#.g#\n`........p..p..p.....#.g#\n`........p..p..p.....#.g#\n`........ppp*ppp.....#.g#\n`........p..p..p........#\n`........p..p..p........#\n`...........p...........#\n`........ppppppp........#\n`.......................#\n`.......................#\n`.......................#\n`.......................#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........ooo.ooo........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`......``o.....o``......#\n`......`.o.....o.`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n```````````````#`````````\n\n\n)\n", [2, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 0, 0, 0, 0, 3, 0, 0, 0, 3, 3, 0, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 0, 0, 0, 3, 3, 3, 3, 3, 1, 1, 1, 1, 0, 0, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 0, 0, 0], "background invisiblewall: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,background:1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,1,1,1,1,1,1,1,1,1,1,background block con_r:2,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,background hole:3,background block con_l con_r hole:4,3,3,3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,\n1,1,1,1,1,background hole knife_b:5,background block con_l knife_t:6,1,1,3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,3,background knife_r:7,7,1,3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,3,\nbackground knife_l knife_r:8,8,1,3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,3,background knife_l:9,9,1,\n3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,3,1,1,1,3,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,3,3,3,3,3,1,1,1,1,1,\n1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,\n1,1,1,1,1,background bl block br con_d con_l con_r:10,background block con_d con_u:11,background block con_u player:12,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\nbackground wall:13,background block con_d:14,background block con_l con_u tl:15,1,13,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,13,background knife_b:16,background knife_b knife_t:17,\nbackground knife_t:18,13,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,13,13,13,13,13,1,\n1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,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,0,\n", 3, "1627891570621.5903"] ], [ - "Karamell", - ["title Karamell\nauthor Stephen Lavelle\nhomepage www.increpare.com\nrun_rules_on_level_start\n\nverbose_logging\n\nrequire_player_movement\n\nbackground_color #9c5445\n\n========\nOBJECTS\n========\n\nnostril \n#231617 transparent\n10001\n00000\n00000\n00000\n10001\n\nBackground\n#3d2d2e\n\nTarget\n#231617\n\ntargetp_tl\n#3d2d2e\n0....\n.....\n.....\n.....\n.....\n\ntargetp_tr\n#3d2d2e\n....0\n.....\n.....\n.....\n.....\n\ntargetp_bl\n#3d2d2e\n.....\n.....\n.....\n.....\n0....\n\ntargetp_br\n#3d2d2e\n.....\n.....\n.....\n.....\n....0\n\n\nborder_l\n#78403e\n0....\n0....\n0....\n0....\n0....\n\n\n\nborder_r\n#78403e\n....0\n....0\n....0\n....0\n....0\n\n\n\nborder_u\n#78403e\n00000\n.....\n.....\n.....\n.....\n\n\n\nborder_d\n#78403e\n.....\n.....\n.....\n.....\n00000\n\nUvula_c\n#2a1c1d #231617\n00000\n10001\n10001\n10001\n10001\n\nUvula\n#2a1c1d #231617\n10001\n00000\n00000\n00000\n10001\n\ntoffee\n#bb6a25 #d07d36 #e4944f\n.111.\n11111\n11111\n11111\n.111.\n\n\ntoffee_tl\n#bb6a25 #d07d36 #e4944f\n.1111\n01212\n01212\n01212\n01212\n\n\ntoffee_tr\n#bb6a25 #d07d36 #e4944f\n1111.\n12121\n12121\n12121\n12121\n\n\ntoffee_bl\n#bb6a25 #d07d36 #e4944f\n01212\n01212\n01212\n01212\n.1111\n\n\ntoffee_br\n#bb6a25 #d07d36 #e4944f\n12121\n12121\n12121\n12121\n1111.\n\ntoffee_full\n#bb6a25 #d07d36 #e4944f #ffffff\n.333.\n13331\n11111\n11111\n11111\n\ntoffee_fulldec\n#ffffff\n.000.\n.000.\n.....\n.....\n.....\n\ntoffee_fulldec_b\n#ffffff\n.....\n.....\n.....\n..0..\n.000.\n\ntongue \ndarkred\n\nlips \ndarkred\n\n\nWall\n#9c5445\n\nGum\n#ce474b\n.....\n00000\n00000\n00000\n00.00\n\nGum_Full\n#ce474b #ffffff\n.....\n00000\n00000\n00000\n00100\n\n\n\nzahn_d_t\n#ffffff\n.....\n.0.0.\n.0.0.\n.000.\n.000.\n\nzahn_d_b\n#ffffff\n.000.\n.000.\n.000.\n.000.\n.....\n\ncon_u\nyellow\n..0..\n.....\n.....\n.....\n.....\n\ncon_d\nyellow\n.....\n.....\n.....\n.....\n..0..\n\ncon_l\nyellow\n.....\n.....\n0....\n.....\n.....\n\ncon_r\nyellow\n.....\n.....\n....0\n.....\n.....\n\nmaketooth\ntransparent\n\nmarker\nred\n.....\n.....\n..0..\n.....\n.....\n\nagaining \ntransparent\n\nagaining2\ntransparent\n\nsupported\ngreen\n.....\n.....\n..0..\n.....\n.....\n\ntodrop\ntransparent\n\nshadow\nblack\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nm_l\ntransparent\n\nm_r\ntransparent\n\nm_t\ntransparent\n\nm_b\ntransparent\n\n=======\nLEGEND\n=======\n\ntoffee_any = toffee or toffee_full\n\nzahn = zahn_d_t or zahn_d_b\nplayer = gum or gum_full\ngum_any = player\n\nmotile = player or toffee or zahn or toffee_any\ndroppable_tile = toffee or zahn or toffee_any\nmotile_nonsticking = player or toffee or zahn_d_b or toffee_any\n\nwall_like = wall or lips or tongue\n\nconnection = con_u or con_d or con_l or con_r\nsolid = zahn or player or wall_like or toffee\n\n\nuvula_part = uvula or uvula_c\n\ntoffee_bottom = toffee_bl or toffee_br\n\ntoffeepart = toffee_tl or toffee_tr or toffee_bl or toffee_br\ntoffeedec = toffee_fulldec or toffee_fulldec_b\n\ntarget_pixels = targetp_tl or targetp_tr or targetp_bl or targetp_br\n\ndecoration = toffeedec \n\ntarget_part = uvula or uvula_c or target\nwall_toborder = wall or tongue\n. = Background\nu = uvula\nw = uvula_c\nL = lips\n# = Wall\nP = Player\nG = gum_full\ni = gum\nD = zahn_d_b\nT = Toffee\nH = Target\nn = nostril and wall\no = tongue\n\n=======\nSOUNDS\n=======\nsfx0 65988703 (pull)\nsfx1 70735502 (swallow)\nsfx2 23125707 (bite)\n\n================\nCOLLISIONLAYERS\n================\n\n\ncon_r\ncon_l\ncon_u\ncon_d\nmarker\n\n\nsupported\nBackground\nuvula, uvula_c\nTarget\ntargetp_tl\ntargetp_tr\ntargetp_bl\ntargetp_br\nWall, zahn_d_t, zahn_d_b, player, lips, tongue\ntoffee, toffee_full\n\nborder_u\nborder_d\nborder_l\nborder_r\ntoffee_tl \ntoffee_tr \ntoffee_bl \ntoffee_br\ntoffee_fulldec\nTOFFEE_FULLDEC_B\nmaketooth\nagaining\nagaining2\ntodrop\nshadow\nnostril\nm_l\nm_r\nm_t\nm_b\n\n\n\n======\nRULES\n======\n\n[shadow] -> [ ]\n[againing2] [ player ] ->[againing] [ action player ]\n[againing2]->[]\n[motile todrop] [ player ]->[shadow no connection no decoration no toffeepart] [ player againing2 ] again\n\n[marker]->[]\nright [ player | player ] -> [ player con_r | player con_l ]\ndown [ gum_full | zahn_d_b ] -> [ gum_full con_d | zahn_d_b con_u ]\n\nright [ stationary player no againing no againing2 ] [ no toffee | toffee | toffee ] -> [ player ] [ | toffee m_l | toffee m_r ]\ndown [ stationary player no againing no againing2 ] [ no toffee | toffee | toffee ] -> [ player ] [ | toffee m_t | toffee m_b ]\n\n[ m_t m_l ] -> [toffee_tl]\n[ m_b m_l ] -> [toffee_bl]\n[ m_t m_r ] -> [toffee_tr]\n[ m_b m_r ] -> [toffee_br]\n\nright [ stationary player no againing no againing2 ] [ toffee | toffee ] -> [ player ] [ toffee con_r | toffee con_l ]\ndown [ stationary player no againing no againing2 ] [ toffee | toffee ] -> [ player ] [ toffee con_d | toffee con_u ]\n\nright [stationary player no againing no againing2 ] [ target | no target no uvula_part] -> [player] [ targetp_tr targetp_br target | ]\nright [stationary player no againing no againing2 ] [ no target no uvula_part| target ] -> [player] [ | targetp_tl targetp_bl target ]\n\ndown [stationary player] [ target | targetp_tr ] -> [player] [ target | ]\ndown [stationary player] [ target | targetp_tl ] -> [player] [ target | ]\nup [stationary player] [ target | targetp_br ] -> [player] [ target | ]\nup [stationary player] [ target | targetp_bl ] -> [player] [ target | ]\n\n\n(propagate movements)\n\nup [ moving motile con_u | motile ] -> [ moving motile con_u | moving motile ] \n+ down [ moving motile con_d | motile ] -> [ moving motile con_d | moving motile ] \n+ left [ moving motile con_l | motile ] -> [ moving motile con_l | moving motile ] \n+ right [ moving motile con_r | motile ] -> [ moving motile con_r | moving motile ] \n+ [ > motile | motile ] -> [ > motile | > motile ]\n\n\n(back-propagate blockages)\n\n\t(toffee can't walk into walls)\n[ > motile | wall_like ] -> [ motile | wall_like ]\n\n+ [ > zahn | stationary zahn ] -> [ zahn | zahn ]\n\n+ horizontal [ > toffee | stationary zahn ] -> [ stationary toffee | zahn]\n+ [ > toffee_any | stationary toffee_any ] -> [ stationary toffee_any | toffee_any]\n\t(restick tooth in gums)\n+ down [ down gum | stationary zahn_d_t con_d ] -> [ down gum_full con_d | ] sfx2\n\t\n (back-propagate non-movement in toffees)\n+ up [ stationary toffee_any con_u | motile ] -> [ stationary toffee_any con_u | stationary motile ] \n+ down [ stationary toffee_any con_d | motile ] -> [ stationary toffee_any con_d | stationary motile ] \n+ left [ stationary toffee_any con_l | motile ] -> [ stationary toffee_any con_l | stationary motile ] \n+ right [ stationary toffee_any con_r | motile ] -> [ stationary toffee_any con_r | stationary motile ] \n\n+ down [ stationary zahn_d_t con_d | motile ] -> [ stationary zahn_d_t con_d | stationary motile ] \n+ down [ stationary zahn_d_t con_d | stationary motile ] -> [ zahn_d_t con_d | stationary motile ] \n\n (back-propagate non-movement in gums)\n+ up [ stationary gum_any con_u | motile ] -> [ stationary gum_any con_u | stationary motile ] \n+ down [ stationary gum_any con_d | motile ] -> [ stationary gum_any con_d | stationary motile ] \n+ left [ stationary gum_any con_l | motile ] -> [ stationary gum_any con_l | stationary motile ] \n+ right [ stationary gum_any con_r | motile ] -> [ stationary gum_any con_r | stationary motile ]\n\n+ up [ stationary zahn_d_b con_u | motile ] -> [ stationary zahn_d_b con_u | stationary motile ] \n\n\n\n+ [ > gum_any | stationary motile_nonsticking ] -> [ gum_any | motile_nonsticking ] \n\n+ [ > toffee | stationary toffee ] -> [ toffee | toffee ] \n\n\n\t(tooth unstick)\n+ down [ up gum_full con_d | stationary toffee_full con_u ] -> [ up gum_full maketooth | toffee_full ]\n\n\n[stationary motile]->[marker motile]\n[ > motile connection ] -> [ > motile > connection ]\n[ > toffee_any toffeepart ] -> [ > toffee_any > toffeepart ]\n\nlate down [ gum_full | toffee zahn_d_b ] -> [ gum_full | toffee_full ] sfx2\n\nlate down [ gum_full | maketooth | toffee_full ] -> [ gum | zahn_d_t con_d | toffee_full con_u ] sfx0\n\nlate down [ toffee | toffee_full ] -> [ toffee con_d | toffee_full con_u ]\n(decoration steps)\n\nlate [ decoration ] -> [ ]\n\nlate [toffee_full ] -> [ toffee_full toffee_fulldec ]\nlate [toffee_bottom con_d ] -> [ toffee_bottom con_d toffee_fulldec_b ]\n\n(check if things are supported)\n\nlate [supported]->[]\nlate [ gum_any ] -> [ gum_any supported ]\nlate [ motile no target_part ] -> [ motile supported ]\n\nlate up [ supported con_u | ] -> [ supported con_u | supported ]\n+ late down [ supported con_d | ] -> [ supported con_d | supported ]\n+ late left [ supported con_l | ] -> [ supported con_l | supported ]\n+ late right [ supported con_r | ] -> [ supported con_r | supported ]\n\n\nlate [againing]->[]\n\nlate [droppable_tile no supported] [player ]->[droppable_tile todrop] [player againing] sfx1 again\n\nlate right [ wall_toborder | no wall_like ] -> [ wall_toborder border_r | ]\nlate left [ wall_toborder | no wall_like ] -> [ wall_toborder border_l | ]\nlate up [ wall_toborder | no wall_like ] -> [ wall_toborder border_u | ]\nlate down [ wall_toborder | no wall_like ] -> [ wall_toborder border_d | ]\nlate [ player ] [ againing2] ->[ player againing2] [againing2]\n==============\nWINCONDITIONS\n==============\n\nno toffee\nno shadow\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 3 - Karamell, den liebe ich!\n\n######n#n######\n###############\n##lllllllllll##\n#l...........l#\n#.....ggg.....#\n#.....ddd.....#\n#.....hwh.....#\n#...#.huh.....#\n#.....hhh.....#\n#.............#\n#......tt.....#\n#......tt.....#\n#l...........l#\n##lllllllllll##\n\nmessage Level 2 von 3 - Ich bin ein Nimmersat des Karamellen\n\n########n#n########\n###################\n##lllllllllllllll##\n#l...............l#\n#.....gggg........#\n#.....dddd........#\n#.................#\n#.......#.........#\n#.................#\n#.................#\n#....tt...tt......#\n#....tt...tt......#\n#..............####\n#....#######...hwh#\n#..............huh#\n#lllllllllll...hhh#\n###########l...hhh#\n###########l...hhh#\n###########lllllll#\n\nmessage Level 3 von 3 - Meine Zaehne werden nicht ausfallen, wenn ich die schlucke!\n\n###########n#n#############\n###########################\n#lllllllllllllllllllllll###\n#.......................###\n#.......................###\n#..hhwhh........gggg....###\n#..hhuhh....#...dddd....###\n#..hhhhh................###\n#..hhhhh................###\n#..hhhhh................###\n#..hhhhh....tt....tt....###\n#..hhhhh....tt....tt....###\n#.......................###\n#.......................###\n#..........#....###########\n#..........#...############\n#..........#...############\n#..........#..##..........#\n#..........#..##..........#\n#..........#..##....tt....#\n#..........#tt##....tt....#\n#...........tt............#\n#.........................#\n#..........lllllllllllllll#\n#..........l###############\n#lllllllllll###############\n\n\nMessage Ich glaube an ... Karamell!\n\nhhhhhhhhhhhhhhhhhhhhhhhhh\nhhhhhhlllllllllllllhhhhhh\nhhhhhlllllllllllllllhhhhh\nhhhhhlllllllllllllllhhhhh\nhhhhhll###########llhhhhh\nhhhhhl###d#####d###lhhhhh\nhhh#h###############h#hhh\nhhh###################hhh\nhhh#h###############h#hhh\nhhhhh######n#n######hhhhh\nhhhhh###############hhhhh\nhhhhh##lllllllllll##hhhhh\nhhhhh##...hhwhh...##hhhhh\nhhhhh##lllllllllll##hhhhh\nhhhhh###############hhhhh\nhhhhh###############hhhhh\nhhhhhhhhhh#####hhhhhhhhhh\nhhhhhhhhhh#####hhhhhhhhhh\n\n(\n###########################\n#.......................###\n#.......................###\n#..hhwhh........gggg....###\n#..hhuhh....#...dddd....###\n#..hhhhh................###\n#..hhhhh................###\n#..hhhhh................###\n#..hhhhh....tt....tt....###\n#..hhhhh....tt....tt....###\n#.......................###\n#.......................###\n#..........#....###########\n#..........#...############\n#..........#...############\n#..........#..##..........#\n#..........#..##..........#\n#..........#..##....tt....#\n#..........#tt##....tt....#\n#...........tt............#\n#.........................#\n#..........################\n#..........################\n###########################\n)\n\n(\n(ooops this doesn't work)\n####################\n#..................#\n#..................#\n#..................#\n#...gggg...........#\n#...gggd....#......#\n#...ggd............#\n#...gd.............#\n#...d.tt...........#\n#.....tt.#.........#\n#.....####...##....#\n#........#.........#\n#........#.........#\n#........#.........#\n####################\n\n\n####################\n#..................#\n#..................#\n#..................#\n#.....gggg...tt....#\n#.....dddd...tt....#\n#..................#\n#......#.....tt....#\n#............tt....#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n####################\n\n\n######################\n#....................#\n#....................#\n#....................#\n#..............tt....#\n#..............tt....#\n#....................#\n#....................#\n#..gggg...#....tt....#\n#..dddd........tt....#\n#....................#\n#....................#\n#....................#\n#....................#\n#....................#\n#.......#..#.........#\n#.......#..#.........#\n#.......#..#.........#\n#.......#..#.........#\n#.......#..#.........#\n#.......#..#.........#\n#....####..####......#\n#....................#\n#....................#\n#....##########......#\n#....................#\n#....................#\n#....................#\n#....................#\n######################\n\n###############################\n#.........................#...#\n#.hhwhh...................#...#\n#.hhuhh...................#...#\n#.hhhhh.......#.....tt....#...#\n#.hhhhh.............tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.gggg........tt....#...#\n#.hhhhh.dddd........tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####....tt....#\n#.hhhhh...####tt####....tt....#\n#.hhhhh.......tt..............#\n#.............................#\n#.........##########..........#\n#.........##########..........#\n#.........##########..........#\n#.........##########..........#\n###############################\n\n###############################\n#.........................#...#\n#.hhwhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.......#.....tt....#...#\n#.hhhhh.............tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.gggg........tt....#...#\n#.hhhhh.dddd........tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####....tt....#\n#.hhhhh...####tt####....tt....#\n#.hhhhh.......tt..............#\n#.............................#\n####################....tt....#\n####################....tt....#\n####################..........#\n####################..........#\n###############################\n\n\n\n###############################\n#.........................#...#\n#.hhwhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.......#.....tt....#...#\n#.hhhhh.............tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.gggg........tt....#...#\n#.hhhhh.dddd........tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####....tt....#\n#.hhhhh...####tt####....tt....#\n#.hhhhh.......tt..............#\n#.............................#\n####################....tt....#\n####################....tt....#\n####################..........#\n####################..........#\n###############################\n\n######################\n#....................#\n#....................#\n#....................#\n#..............tt....#\n#..............tt....#\n#....................#\n#....................#\n#..gggg...#....tt....#\n#..dddd........tt....#\n#....................#\n#....................#\n#....................#\n#....................#\n#....................#\n#....####..####......#\n#....####..####......#\n#....####..####......#\n#....####..####......#\n#....####..####......#\n#....####..####......#\n#....####tt####......#\n#........tt..........#\n#....................#\n#....##########......#\n#....................#\n#....................#\n#....................#\n#....................#\n######################\n\n###############################\n#.........................#...#\n#.hhwhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.......#.....tt....#...#\n#.hhhhh.............tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.gggg........tt....#...#\n#.hhhhh.dddd........tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.........................#...#\n#.........................#...#\n#.........................#...#\n#...........#....##########...#\n#...........##..###########...#\n#...........##..###########...#\n#...........##..####..........#\n#...........##..####..........#\n#...........##..####....tt....#\n#...........##tt####....tt....#\n#.............tt..............#\n#.............................#\n####################....tt....#\n####################....tt....#\n####################..........#\n####################..........#\n###############################\n\n\n\n###############################\n#.........................#####\n#.hhwhh...................#####\n#.hhhhh...................#####\n#.hhhhh.......#.....tt....#####\n#.hhhhh.............tt....#####\n#.hhhhh...................#####\n#.hhhhh...................#####\n#.hhhhh.gggg........tt....#####\n#.hhhhh.dddd........tt....#####\n#.hhhhh...................#####\n#.hhhhh...................#####\n#.........................#####\n#.........................#####\n#.........................#####\n#............#....#############\n#............#...##############\n#............#...##############\n#............#..####..........#\n#............#..####..........#\n#............#..####....tt....#\n#............#tt####....tt....#\n#.............tt..............#\n#.............................#\n#............##################\n#............##################\n###############################\n\n###########################\n#.......................###\n#.hhwhh.........gggg....###\n#.hhuhh.....#...dddd....###\n#.hhhhh.................###\n#.hhhhh.................###\n#.hhhhh.....tt....tt....###\n#.hhhhh.....tt....tt....###\n#.......................###\n#.......................###\n#..........#....###########\n#..........#...############\n#..........#...############\n#..........#..##..........#\n#..........#..##..........#\n#..........#..##....tt....#\n#..........#tt##....tt....#\n#...........tt............#\n#.........................#\n#..........################\n#..........################\n###########################\n)\n",[1,1,1,2,2,2,2,2,1,2,0,3,3,0,0,0,0,0,3,3,3,3,3,2,2,2,2,1,1,1,3,3,3,3,3,2,2,2,1,0,0,1,0,0,0,1,1,1,1,2,2,1,2,2,3,3,3,3,3,0,0,3,3,1,3,3,3,2,2,2,2,1,1,1,1],"background wall:0,0,0,0,background border_r wall:1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,\n0,0,0,background lips:2,background:3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,background con_d marker supported zahn_d_t:4,background con_d con_r con_u marker supported toffee_full toffee_fulldec toffee_tl:5,background con_r con_u marker supported toffee toffee_bl:6,3,3,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,background con_d con_l marker supported toffee toffee_tr:7,background con_l con_u marker supported toffee toffee_br:8,3,background border_d border_l border_u wall:9,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,3,3,3,background border_d border_u wall:10,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,3,3,3,10,3,2,0,0,0,\nbackground nostril wall:11,0,2,3,3,3,3,background border_d border_l border_r border_u wall:12,3,3,3,3,3,10,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,background con_r gum supported:13,3,3,3,10,3,2,0,0,0,\n11,0,2,3,3,3,3,3,3,background con_d con_l con_r gum_full supported:14,background con_u supported zahn_d_b:15,3,3,10,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,14,background con_d con_r con_u supported toffee_full toffee_fulldec toffee_tl:16,background con_r con_u supported toffee toffee_bl:17,3,background border_d border_r border_u wall:18,3,2,2,2,2,\n0,0,2,3,3,3,3,3,3,background con_d con_l gum_full supported:19,background con_d con_l con_u supported toffee_full toffee_fulldec toffee_tr:20,background con_l con_u supported toffee toffee_br:21,3,3,3,3,3,3,2,\n0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,\n0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,\n0,0,2,3,3,3,3,3,3,3,3,3,9,background target targetp_tl:22,background target:23,23,23,background target targetp_bl:24,2,\n0,0,2,3,3,3,3,3,3,3,3,3,10,background uvula_c:25,background uvula:26,23,23,23,2,\n0,0,0,2,3,3,3,3,3,3,3,3,10,background target targetp_tr:27,23,23,23,background target targetp_br:28,2,\n0,0,0,0,background border_l wall:29,29,29,29,29,29,29,29,0,29,29,29,29,29,0,\n",3,"1627891595796.583"] + "Karamell", + ["title Karamell\nauthor Stephen Lavelle\nhomepage www.increpare.com\nrun_rules_on_level_start\n\nverbose_logging\n\nrequire_player_movement\n\nbackground_color #9c5445\n\n========\nOBJECTS\n========\n\nnostril \n#231617 transparent\n10001\n00000\n00000\n00000\n10001\n\nBackground\n#3d2d2e\n\nTarget\n#231617\n\ntargetp_tl\n#3d2d2e\n0....\n.....\n.....\n.....\n.....\n\ntargetp_tr\n#3d2d2e\n....0\n.....\n.....\n.....\n.....\n\ntargetp_bl\n#3d2d2e\n.....\n.....\n.....\n.....\n0....\n\ntargetp_br\n#3d2d2e\n.....\n.....\n.....\n.....\n....0\n\n\nborder_l\n#78403e\n0....\n0....\n0....\n0....\n0....\n\n\n\nborder_r\n#78403e\n....0\n....0\n....0\n....0\n....0\n\n\n\nborder_u\n#78403e\n00000\n.....\n.....\n.....\n.....\n\n\n\nborder_d\n#78403e\n.....\n.....\n.....\n.....\n00000\n\nUvula_c\n#2a1c1d #231617\n00000\n10001\n10001\n10001\n10001\n\nUvula\n#2a1c1d #231617\n10001\n00000\n00000\n00000\n10001\n\ntoffee\n#bb6a25 #d07d36 #e4944f\n.111.\n11111\n11111\n11111\n.111.\n\n\ntoffee_tl\n#bb6a25 #d07d36 #e4944f\n.1111\n01212\n01212\n01212\n01212\n\n\ntoffee_tr\n#bb6a25 #d07d36 #e4944f\n1111.\n12121\n12121\n12121\n12121\n\n\ntoffee_bl\n#bb6a25 #d07d36 #e4944f\n01212\n01212\n01212\n01212\n.1111\n\n\ntoffee_br\n#bb6a25 #d07d36 #e4944f\n12121\n12121\n12121\n12121\n1111.\n\ntoffee_full\n#bb6a25 #d07d36 #e4944f #ffffff\n.333.\n13331\n11111\n11111\n11111\n\ntoffee_fulldec\n#ffffff\n.000.\n.000.\n.....\n.....\n.....\n\ntoffee_fulldec_b\n#ffffff\n.....\n.....\n.....\n..0..\n.000.\n\ntongue \ndarkred\n\nlips \ndarkred\n\n\nWall\n#9c5445\n\nGum\n#ce474b\n.....\n00000\n00000\n00000\n00.00\n\nGum_Full\n#ce474b #ffffff\n.....\n00000\n00000\n00000\n00100\n\n\n\nzahn_d_t\n#ffffff\n.....\n.0.0.\n.0.0.\n.000.\n.000.\n\nzahn_d_b\n#ffffff\n.000.\n.000.\n.000.\n.000.\n.....\n\ncon_u\nyellow\n..0..\n.....\n.....\n.....\n.....\n\ncon_d\nyellow\n.....\n.....\n.....\n.....\n..0..\n\ncon_l\nyellow\n.....\n.....\n0....\n.....\n.....\n\ncon_r\nyellow\n.....\n.....\n....0\n.....\n.....\n\nmaketooth\ntransparent\n\nmarker\nred\n.....\n.....\n..0..\n.....\n.....\n\nagaining \ntransparent\n\nagaining2\ntransparent\n\nsupported\ngreen\n.....\n.....\n..0..\n.....\n.....\n\ntodrop\ntransparent\n\nshadow\nblack\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nm_l\ntransparent\n\nm_r\ntransparent\n\nm_t\ntransparent\n\nm_b\ntransparent\n\n=======\nLEGEND\n=======\n\ntoffee_any = toffee or toffee_full\n\nzahn = zahn_d_t or zahn_d_b\nplayer = gum or gum_full\ngum_any = player\n\nmotile = player or toffee or zahn or toffee_any\ndroppable_tile = toffee or zahn or toffee_any\nmotile_nonsticking = player or toffee or zahn_d_b or toffee_any\n\nwall_like = wall or lips or tongue\n\nconnection = con_u or con_d or con_l or con_r\nsolid = zahn or player or wall_like or toffee\n\n\nuvula_part = uvula or uvula_c\n\ntoffee_bottom = toffee_bl or toffee_br\n\ntoffeepart = toffee_tl or toffee_tr or toffee_bl or toffee_br\ntoffeedec = toffee_fulldec or toffee_fulldec_b\n\ntarget_pixels = targetp_tl or targetp_tr or targetp_bl or targetp_br\n\ndecoration = toffeedec \n\ntarget_part = uvula or uvula_c or target\nwall_toborder = wall or tongue\n. = Background\nu = uvula\nw = uvula_c\nL = lips\n# = Wall\nP = Player\nG = gum_full\ni = gum\nD = zahn_d_b\nT = Toffee\nH = Target\nn = nostril and wall\no = tongue\n\n=======\nSOUNDS\n=======\nsfx0 65988703 (pull)\nsfx1 70735502 (swallow)\nsfx2 23125707 (bite)\n\n================\nCOLLISIONLAYERS\n================\n\n\ncon_r\ncon_l\ncon_u\ncon_d\nmarker\n\n\nsupported\nBackground\nuvula, uvula_c\nTarget\ntargetp_tl\ntargetp_tr\ntargetp_bl\ntargetp_br\nWall, zahn_d_t, zahn_d_b, player, lips, tongue\ntoffee, toffee_full\n\nborder_u\nborder_d\nborder_l\nborder_r\ntoffee_tl \ntoffee_tr \ntoffee_bl \ntoffee_br\ntoffee_fulldec\nTOFFEE_FULLDEC_B\nmaketooth\nagaining\nagaining2\ntodrop\nshadow\nnostril\nm_l\nm_r\nm_t\nm_b\n\n\n\n======\nRULES\n======\n\n[shadow] -> [ ]\n[againing2] [ player ] ->[againing] [ action player ]\n[againing2]->[]\n[motile todrop] [ player ]->[shadow no connection no decoration no toffeepart] [ player againing2 ] again\n\n[marker]->[]\nright [ player | player ] -> [ player con_r | player con_l ]\ndown [ gum_full | zahn_d_b ] -> [ gum_full con_d | zahn_d_b con_u ]\n\nright [ stationary player no againing no againing2 ] [ no toffee | toffee | toffee ] -> [ player ] [ | toffee m_l | toffee m_r ]\ndown [ stationary player no againing no againing2 ] [ no toffee | toffee | toffee ] -> [ player ] [ | toffee m_t | toffee m_b ]\n\n[ m_t m_l ] -> [toffee_tl]\n[ m_b m_l ] -> [toffee_bl]\n[ m_t m_r ] -> [toffee_tr]\n[ m_b m_r ] -> [toffee_br]\n\nright [ stationary player no againing no againing2 ] [ toffee | toffee ] -> [ player ] [ toffee con_r | toffee con_l ]\ndown [ stationary player no againing no againing2 ] [ toffee | toffee ] -> [ player ] [ toffee con_d | toffee con_u ]\n\nright [stationary player no againing no againing2 ] [ target | no target no uvula_part] -> [player] [ targetp_tr targetp_br target | ]\nright [stationary player no againing no againing2 ] [ no target no uvula_part| target ] -> [player] [ | targetp_tl targetp_bl target ]\n\ndown [stationary player] [ target | targetp_tr ] -> [player] [ target | ]\ndown [stationary player] [ target | targetp_tl ] -> [player] [ target | ]\nup [stationary player] [ target | targetp_br ] -> [player] [ target | ]\nup [stationary player] [ target | targetp_bl ] -> [player] [ target | ]\n\n\n(propagate movements)\n\nup [ moving motile con_u | motile ] -> [ moving motile con_u | moving motile ] \n+ down [ moving motile con_d | motile ] -> [ moving motile con_d | moving motile ] \n+ left [ moving motile con_l | motile ] -> [ moving motile con_l | moving motile ] \n+ right [ moving motile con_r | motile ] -> [ moving motile con_r | moving motile ] \n+ [ > motile | motile ] -> [ > motile | > motile ]\n\n\n(back-propagate blockages)\n\n\t(toffee can't walk into walls)\n[ > motile | wall_like ] -> [ motile | wall_like ]\n\n+ [ > zahn | stationary zahn ] -> [ zahn | zahn ]\n\n+ horizontal [ > toffee | stationary zahn ] -> [ stationary toffee | zahn]\n+ [ > toffee_any | stationary toffee_any ] -> [ stationary toffee_any | toffee_any]\n\t(restick tooth in gums)\n+ down [ down gum | stationary zahn_d_t con_d ] -> [ down gum_full con_d | ] sfx2\n\t\n (back-propagate non-movement in toffees)\n+ up [ stationary toffee_any con_u | motile ] -> [ stationary toffee_any con_u | stationary motile ] \n+ down [ stationary toffee_any con_d | motile ] -> [ stationary toffee_any con_d | stationary motile ] \n+ left [ stationary toffee_any con_l | motile ] -> [ stationary toffee_any con_l | stationary motile ] \n+ right [ stationary toffee_any con_r | motile ] -> [ stationary toffee_any con_r | stationary motile ] \n\n+ down [ stationary zahn_d_t con_d | motile ] -> [ stationary zahn_d_t con_d | stationary motile ] \n+ down [ stationary zahn_d_t con_d | stationary motile ] -> [ zahn_d_t con_d | stationary motile ] \n\n (back-propagate non-movement in gums)\n+ up [ stationary gum_any con_u | motile ] -> [ stationary gum_any con_u | stationary motile ] \n+ down [ stationary gum_any con_d | motile ] -> [ stationary gum_any con_d | stationary motile ] \n+ left [ stationary gum_any con_l | motile ] -> [ stationary gum_any con_l | stationary motile ] \n+ right [ stationary gum_any con_r | motile ] -> [ stationary gum_any con_r | stationary motile ]\n\n+ up [ stationary zahn_d_b con_u | motile ] -> [ stationary zahn_d_b con_u | stationary motile ] \n\n\n\n+ [ > gum_any | stationary motile_nonsticking ] -> [ gum_any | motile_nonsticking ] \n\n+ [ > toffee | stationary toffee ] -> [ toffee | toffee ] \n\n\n\t(tooth unstick)\n+ down [ up gum_full con_d | stationary toffee_full con_u ] -> [ up gum_full maketooth | toffee_full ]\n\n\n[stationary motile]->[marker motile]\n[ > motile connection ] -> [ > motile > connection ]\n[ > toffee_any toffeepart ] -> [ > toffee_any > toffeepart ]\n\nlate down [ gum_full | toffee zahn_d_b ] -> [ gum_full | toffee_full ] sfx2\n\nlate down [ gum_full | maketooth | toffee_full ] -> [ gum | zahn_d_t con_d | toffee_full con_u ] sfx0\n\nlate down [ toffee | toffee_full ] -> [ toffee con_d | toffee_full con_u ]\n(decoration steps)\n\nlate [ decoration ] -> [ ]\n\nlate [toffee_full ] -> [ toffee_full toffee_fulldec ]\nlate [toffee_bottom con_d ] -> [ toffee_bottom con_d toffee_fulldec_b ]\n\n(check if things are supported)\n\nlate [supported]->[]\nlate [ gum_any ] -> [ gum_any supported ]\nlate [ motile no target_part ] -> [ motile supported ]\n\nlate up [ supported con_u | ] -> [ supported con_u | supported ]\n+ late down [ supported con_d | ] -> [ supported con_d | supported ]\n+ late left [ supported con_l | ] -> [ supported con_l | supported ]\n+ late right [ supported con_r | ] -> [ supported con_r | supported ]\n\n\nlate [againing]->[]\n\nlate [droppable_tile no supported] [player ]->[droppable_tile todrop] [player againing] sfx1 again\n\nlate right [ wall_toborder | no wall_like ] -> [ wall_toborder border_r | ]\nlate left [ wall_toborder | no wall_like ] -> [ wall_toborder border_l | ]\nlate up [ wall_toborder | no wall_like ] -> [ wall_toborder border_u | ]\nlate down [ wall_toborder | no wall_like ] -> [ wall_toborder border_d | ]\nlate [ player ] [ againing2] ->[ player againing2] [againing2]\n==============\nWINCONDITIONS\n==============\n\nno toffee\nno shadow\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 3 - Karamell, den liebe ich!\n\n######n#n######\n###############\n##lllllllllll##\n#l...........l#\n#.....ggg.....#\n#.....ddd.....#\n#.....hwh.....#\n#...#.huh.....#\n#.....hhh.....#\n#.............#\n#......tt.....#\n#......tt.....#\n#l...........l#\n##lllllllllll##\n\nmessage Level 2 von 3 - Ich bin ein Nimmersat des Karamellen\n\n########n#n########\n###################\n##lllllllllllllll##\n#l...............l#\n#.....gggg........#\n#.....dddd........#\n#.................#\n#.......#.........#\n#.................#\n#.................#\n#....tt...tt......#\n#....tt...tt......#\n#..............####\n#....#######...hwh#\n#..............huh#\n#lllllllllll...hhh#\n###########l...hhh#\n###########l...hhh#\n###########lllllll#\n\nmessage Level 3 von 3 - Meine Zaehne werden nicht ausfallen, wenn ich die schlucke!\n\n###########n#n#############\n###########################\n#lllllllllllllllllllllll###\n#.......................###\n#.......................###\n#..hhwhh........gggg....###\n#..hhuhh....#...dddd....###\n#..hhhhh................###\n#..hhhhh................###\n#..hhhhh................###\n#..hhhhh....tt....tt....###\n#..hhhhh....tt....tt....###\n#.......................###\n#.......................###\n#..........#....###########\n#..........#...############\n#..........#...############\n#..........#..##..........#\n#..........#..##..........#\n#..........#..##....tt....#\n#..........#tt##....tt....#\n#...........tt............#\n#.........................#\n#..........lllllllllllllll#\n#..........l###############\n#lllllllllll###############\n\n\nMessage Ich glaube an ... Karamell!\n\nhhhhhhhhhhhhhhhhhhhhhhhhh\nhhhhhhlllllllllllllhhhhhh\nhhhhhlllllllllllllllhhhhh\nhhhhhlllllllllllllllhhhhh\nhhhhhll###########llhhhhh\nhhhhhl###d#####d###lhhhhh\nhhh#h###############h#hhh\nhhh###################hhh\nhhh#h###############h#hhh\nhhhhh######n#n######hhhhh\nhhhhh###############hhhhh\nhhhhh##lllllllllll##hhhhh\nhhhhh##...hhwhh...##hhhhh\nhhhhh##lllllllllll##hhhhh\nhhhhh###############hhhhh\nhhhhh###############hhhhh\nhhhhhhhhhh#####hhhhhhhhhh\nhhhhhhhhhh#####hhhhhhhhhh\n\n(\n###########################\n#.......................###\n#.......................###\n#..hhwhh........gggg....###\n#..hhuhh....#...dddd....###\n#..hhhhh................###\n#..hhhhh................###\n#..hhhhh................###\n#..hhhhh....tt....tt....###\n#..hhhhh....tt....tt....###\n#.......................###\n#.......................###\n#..........#....###########\n#..........#...############\n#..........#...############\n#..........#..##..........#\n#..........#..##..........#\n#..........#..##....tt....#\n#..........#tt##....tt....#\n#...........tt............#\n#.........................#\n#..........################\n#..........################\n###########################\n)\n\n(\n(ooops this doesn't work)\n####################\n#..................#\n#..................#\n#..................#\n#...gggg...........#\n#...gggd....#......#\n#...ggd............#\n#...gd.............#\n#...d.tt...........#\n#.....tt.#.........#\n#.....####...##....#\n#........#.........#\n#........#.........#\n#........#.........#\n####################\n\n\n####################\n#..................#\n#..................#\n#..................#\n#.....gggg...tt....#\n#.....dddd...tt....#\n#..................#\n#......#.....tt....#\n#............tt....#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n####################\n\n\n######################\n#....................#\n#....................#\n#....................#\n#..............tt....#\n#..............tt....#\n#....................#\n#....................#\n#..gggg...#....tt....#\n#..dddd........tt....#\n#....................#\n#....................#\n#....................#\n#....................#\n#....................#\n#.......#..#.........#\n#.......#..#.........#\n#.......#..#.........#\n#.......#..#.........#\n#.......#..#.........#\n#.......#..#.........#\n#....####..####......#\n#....................#\n#....................#\n#....##########......#\n#....................#\n#....................#\n#....................#\n#....................#\n######################\n\n###############################\n#.........................#...#\n#.hhwhh...................#...#\n#.hhuhh...................#...#\n#.hhhhh.......#.....tt....#...#\n#.hhhhh.............tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.gggg........tt....#...#\n#.hhhhh.dddd........tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####....tt....#\n#.hhhhh...####tt####....tt....#\n#.hhhhh.......tt..............#\n#.............................#\n#.........##########..........#\n#.........##########..........#\n#.........##########..........#\n#.........##########..........#\n###############################\n\n###############################\n#.........................#...#\n#.hhwhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.......#.....tt....#...#\n#.hhhhh.............tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.gggg........tt....#...#\n#.hhhhh.dddd........tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####....tt....#\n#.hhhhh...####tt####....tt....#\n#.hhhhh.......tt..............#\n#.............................#\n####################....tt....#\n####################....tt....#\n####################..........#\n####################..........#\n###############################\n\n\n\n###############################\n#.........................#...#\n#.hhwhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.......#.....tt....#...#\n#.hhhhh.............tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.gggg........tt....#...#\n#.hhhhh.dddd........tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####....tt....#\n#.hhhhh...####tt####....tt....#\n#.hhhhh.......tt..............#\n#.............................#\n####################....tt....#\n####################....tt....#\n####################..........#\n####################..........#\n###############################\n\n######################\n#....................#\n#....................#\n#....................#\n#..............tt....#\n#..............tt....#\n#....................#\n#....................#\n#..gggg...#....tt....#\n#..dddd........tt....#\n#....................#\n#....................#\n#....................#\n#....................#\n#....................#\n#....####..####......#\n#....####..####......#\n#....####..####......#\n#....####..####......#\n#....####..####......#\n#....####..####......#\n#....####tt####......#\n#........tt..........#\n#....................#\n#....##########......#\n#....................#\n#....................#\n#....................#\n#....................#\n######################\n\n###############################\n#.........................#...#\n#.hhwhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.......#.....tt....#...#\n#.hhhhh.............tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.gggg........tt....#...#\n#.hhhhh.dddd........tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.........................#...#\n#.........................#...#\n#.........................#...#\n#...........#....##########...#\n#...........##..###########...#\n#...........##..###########...#\n#...........##..####..........#\n#...........##..####..........#\n#...........##..####....tt....#\n#...........##tt####....tt....#\n#.............tt..............#\n#.............................#\n####################....tt....#\n####################....tt....#\n####################..........#\n####################..........#\n###############################\n\n\n\n###############################\n#.........................#####\n#.hhwhh...................#####\n#.hhhhh...................#####\n#.hhhhh.......#.....tt....#####\n#.hhhhh.............tt....#####\n#.hhhhh...................#####\n#.hhhhh...................#####\n#.hhhhh.gggg........tt....#####\n#.hhhhh.dddd........tt....#####\n#.hhhhh...................#####\n#.hhhhh...................#####\n#.........................#####\n#.........................#####\n#.........................#####\n#............#....#############\n#............#...##############\n#............#...##############\n#............#..####..........#\n#............#..####..........#\n#............#..####....tt....#\n#............#tt####....tt....#\n#.............tt..............#\n#.............................#\n#............##################\n#............##################\n###############################\n\n###########################\n#.......................###\n#.hhwhh.........gggg....###\n#.hhuhh.....#...dddd....###\n#.hhhhh.................###\n#.hhhhh.................###\n#.hhhhh.....tt....tt....###\n#.hhhhh.....tt....tt....###\n#.......................###\n#.......................###\n#..........#....###########\n#..........#...############\n#..........#...############\n#..........#..##..........#\n#..........#..##..........#\n#..........#..##....tt....#\n#..........#tt##....tt....#\n#...........tt............#\n#.........................#\n#..........################\n#..........################\n###########################\n)\n", [1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 0, 3, 3, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 3, 3, 3, 3, 3, 2, 2, 2, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 2, 2, 1, 2, 2, 3, 3, 3, 3, 3, 0, 0, 3, 3, 1, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1], "background wall:0,0,0,0,background border_r wall:1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,\n0,0,0,background lips:2,background:3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,background con_d marker supported zahn_d_t:4,background con_d con_r con_u marker supported toffee_full toffee_fulldec toffee_tl:5,background con_r con_u marker supported toffee toffee_bl:6,3,3,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,background con_d con_l marker supported toffee toffee_tr:7,background con_l con_u marker supported toffee toffee_br:8,3,background border_d border_l border_u wall:9,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,3,3,3,background border_d border_u wall:10,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,3,3,3,10,3,2,0,0,0,\nbackground nostril wall:11,0,2,3,3,3,3,background border_d border_l border_r border_u wall:12,3,3,3,3,3,10,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,background con_r gum supported:13,3,3,3,10,3,2,0,0,0,\n11,0,2,3,3,3,3,3,3,background con_d con_l con_r gum_full supported:14,background con_u supported zahn_d_b:15,3,3,10,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,14,background con_d con_r con_u supported toffee_full toffee_fulldec toffee_tl:16,background con_r con_u supported toffee toffee_bl:17,3,background border_d border_r border_u wall:18,3,2,2,2,2,\n0,0,2,3,3,3,3,3,3,background con_d con_l gum_full supported:19,background con_d con_l con_u supported toffee_full toffee_fulldec toffee_tr:20,background con_l con_u supported toffee toffee_br:21,3,3,3,3,3,3,2,\n0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,\n0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,\n0,0,2,3,3,3,3,3,3,3,3,3,9,background target targetp_tl:22,background target:23,23,23,background target targetp_bl:24,2,\n0,0,2,3,3,3,3,3,3,3,3,3,10,background uvula_c:25,background uvula:26,23,23,23,2,\n0,0,0,2,3,3,3,3,3,3,3,3,10,background target targetp_tr:27,23,23,23,background target targetp_br:28,2,\n0,0,0,0,background border_l wall:29,29,29,29,29,29,29,29,0,29,29,29,29,29,0,\n", 3, "1627891595796.583"] ], [ - "I am a gust of wind", - ["title I am a gust of wind\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrequire_player_movement\nbackground_color lightgreen\ntext_color black\nrun_rules_on_level_start\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nlightblue\n\n\nTarget\nyellow\n\nWall\nlightgreen \n\nPlayer\nwhite\n.0000\n0....\n0.00.\n0...0\n.000.\n\nCrate\nOrange Yellow brown\n..0..\n.000.\n00000\n00000\n..0..\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 59718707\nstartgame 30764907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ ^ Player | Crate ] -> [ ^ Player | ^ Crate ]\n[ v Player | Crate ] -> [ v Player | v Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nMessage Level 1 of 4\n\n.........\n.........\n....o.p..\n.........\n...*.....\n.....*...\n...o.....\n.........\n.........\n\n\nMessage Level 2 of 4\n\n.........\n.........\n....**...\n.....*...\n...ooo.p.\n.........\n.........\n\n\nMessage Level 3 of 4\n\n.......\n.......\n..O*O..\n..*O*..\n..O*O..\n..*O*..\n...P...\n.......\n\nMessage Level 4 of 4\n\no.o...\no.o##.\n*.*##.\n*.*##.\n......\n.p....\n......\n\nMessage What a most gentle wind I am!\n\n",[2,2,1,1,0,0,0,1,0,3,1,1,1,0,0,3,1,0,2,3,0,3,0,1,2,2,3,3,0,0,1,2,3,0,0,0,1,2,2,2,3],"background:0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,\n0,background crate:1,0,0,0,1,0,background target:2,0,\n0,0,0,0,0,background crate target:3,0,0,0,\n0,0,0,2,0,0,0,0,0,\n0,background player:4,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,\n",3,"1627891616657.899"] + "I am a gust of wind", + ["title I am a gust of wind\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrequire_player_movement\nbackground_color lightgreen\ntext_color black\nrun_rules_on_level_start\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nlightblue\n\n\nTarget\nyellow\n\nWall\nlightgreen \n\nPlayer\nwhite\n.0000\n0....\n0.00.\n0...0\n.000.\n\nCrate\nOrange Yellow brown\n..0..\n.000.\n00000\n00000\n..0..\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 59718707\nstartgame 30764907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ ^ Player | Crate ] -> [ ^ Player | ^ Crate ]\n[ v Player | Crate ] -> [ v Player | v Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nMessage Level 1 of 4\n\n.........\n.........\n....o.p..\n.........\n...*.....\n.....*...\n...o.....\n.........\n.........\n\n\nMessage Level 2 of 4\n\n.........\n.........\n....**...\n.....*...\n...ooo.p.\n.........\n.........\n\n\nMessage Level 3 of 4\n\n.......\n.......\n..O*O..\n..*O*..\n..O*O..\n..*O*..\n...P...\n.......\n\nMessage Level 4 of 4\n\no.o...\no.o##.\n*.*##.\n*.*##.\n......\n.p....\n......\n\nMessage What a most gentle wind I am!\n\n", [2, 2, 1, 1, 0, 0, 0, 1, 0, 3, 1, 1, 1, 0, 0, 3, 1, 0, 2, 3, 0, 3, 0, 1, 2, 2, 3, 3, 0, 0, 1, 2, 3, 0, 0, 0, 1, 2, 2, 2, 3], "background:0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,\n0,background crate:1,0,0,0,1,0,background target:2,0,\n0,0,0,0,0,background crate target:3,0,0,0,\n0,0,0,2,0,0,0,0,0,\n0,background player:4,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,\n", 3, "1627891616657.899"] ], [ - "Gabelstapler", - ["title Gabelstapler\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnorepeat_action\nrequire_player_movement\nverbose_logging\n\ncolor_palette 6\n\n\n\n========\nOBJECTS\n========\n\nBackground\n#999999 #888888\n00010\n11111\n00010\n00010\n00010\n\n\nWall\n#333333 #333333\n00000\n01010\n00000\n01010\n00000\n\nforklift\n#222222 #ffff00 #FFA500 #444444 black blue #ffcccc\n.00.3\n.0603\n10513\n11213\n.4.4.\n\nrod \n#444444\n....0\n....0\n....0\n....0\n....0\n\ntoprod\n#444444\n.....\n.....\n.....\n.....\n.....\n\n\nFork\n#ffff00\n.....\n.....\n.....\n0....\n00000\n\nend1 \ndarkblue lightblue brown #333333\n00000\n01110\n00000\n33333\n33333\n\nend2 \ndarkred lightred brown #333333\n11011\n10101\n11011\n33333\n33333\n\nend3 \ndarkgreen lightgreen brown #333333\n10001\n10101\n10001\n33333\n33333\n\n\nCrate1\ndarkblue blue brown\n00000\n01110\n00000\n22222\n.2.2.\n\n\nCrate2\ndarkred red brown\n11011\n10101\n11011\n22222\n.2.2.\n\n\nCrate3\ndarkgreen green brown\n01110\n01010\n01110\n22222\n.2.2.\n\noldfork\ntransparent\n\ncorrect\ntransparent\n\n=======\nLEGEND\n=======\nplayer = forklift or fork\ncrate = crate1 or crate2 or crate3\nobstacle = wall or crate or forklift\nmotile = crate or forklift or fork\nhasrod = forklift or rod or toprod\nisrod = rod or toprod\n. = Background\n# = Wall\nP = forklift\n1 = Crate1\n2 = Crate2\n3 = Crate3\nf = fork\nr = rod\nt = toprod\nq = end1 and wall\nw = end2 and wall\ne = end3 and wall\n\n=======\nSOUNDS\n=======\n\nforklift MOVE left 39169107\nforklift move right 81963107\ncrate move down 98604707\nendlevel 64983103\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nfork, rod, toprod\nforklift, Wall, Crate\nend1, end2, end3\noldfork\ncorrect\n\n======\nRULES\n======\n\n\n\n\n[ > fork | wall ] -> cancel\ndown [ down fork | obstacle] -> cancel\n\n[ vertical forklift ] -> [ forklift ]\n\n\n\nup [ moving player | crate ] -> [ moving player | moving crate ]\ndown [ stationary forklift | no obstacle ] [fork | no obstacle] -> [ down forklift | ] [down fork|]\n\nup [horizontal forklift | ... | hasrod ] -> [ horizontal forklift | ... | horizontal hasrod]\n\nright [ right rod | obstacle ] -> cancel\nright [ obstacle | left rod ] -> cancel\n\ndown [ moving forklift no obstacle ] -> [ stationary forklift ]\n\nright [ > forklift | Crate fork ] -> [ > forklift | > Crate > fork]\n\n\nright [ > forklift | crate no fork ] -> cancel \n\n(fork move objects)\n[moving fork crate ] -> [ moving fork moving crate ]\ndown [ left fork left crate | obstacle ] -> [ left fork stationary crate | obstacle ]\n\n\nup [ moving crate | crate ] -> [ moving crate | moving crate ]\n\nhorizontal [ > crate fork | stationary crate ] -> cancel\nhorizontal [ > obstacle | stationary obstacle ] -> [ obstacle | obstacle ]\n\nright[ stationary obstacle no forklift | left fork ] -> cancel\n\n\n\n(cancel movements upwards)\nhorizontal [ > crate | stationary obstacle no player ] -> [ stationary crate | obstacle ]\n\n\nup [stationary crate | moving crate no fork ] -> [ stationary crate | stationary crate ]\n\n[up fork crate]->[up fork oldfork crate]\n\n\n[ stationary crate no fork ] -> [ down crate ]\n\n[]->[] again\n\n\nlate [ rod ] -> []\nlate [ toprod ] -> []\nlate right [ no forklift | fork ] -> [ toprod | fork ]\nlate down [ isrod | no hasrod ] -> [ isrod | rod ]\nlate [ rod wall ] -> cancel\nlate [forklift fork]->cancel\n\nlate [oldfork crate ] -> cancel\nlate [oldfork]->[]\n\n\n(win condition)\nlate [forklift]->[forklift correct]\n\nlate up [ end1 | crate1 ] -> [ end1 | crate1 correct ]\nlate up [ end2 | crate2 ] -> [ end2 | crate2 correct ]\nlate up [ end3 | crate3 ] -> [ end3 | crate3 correct ]\nlate up [ correct crate1 | crate1 ] -> [ correct crate1 | correct crate1 ]\nlate up [ correct crate2 | crate2 ] -> [ correct crate2 | correct crate2 ]\nlate up [ correct crate3 | crate3 ] -> [ correct crate3 | correct crate3 ]\n\nlate [crate no correct] [ forklift correct ] -> [ crate ] [ forklift no correct] \nlate [forklift correct] [ fork no crate ] -> win\nlate [correct] ->[]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 3\n\n##########\n###.......\n..........\n..........\n.pf.2.1...\n#######qw#\n\n\nmessage Level 2 von 3\n\n################\n########.......#\n#..............#\n#..............#\n#..............#\n#........pf321.#\n###qwe##########\n\n\nmessage Level 3 von 3\n\n..........\n..........\n..........\n..........\n..........\n..........\n..#.......\n..........\n....233...\n.pf.111...\n#######qwe\n\nmessage Du bist aber gewandt!\n\n(\n########.....\n########.....\n.............\n.............\n.pf.1.3......\n########.##e#\n########q####)\n\n\n\n\n\n",[0,3,3,0,1,1,1,0,0,3,2,0,2,2,1,0,0,3,2,0,1,2,2,2,3,3,2,3,0,2,2,3,3,3,0,0,0,3,2,1,2,2,2,3,0,0,3,1],"background:0,0,0,0,0,0,0,0,0,0,\nbackground wall:1,0,0,0,0,0,0,0,0,0,\n0,1,0,0,0,0,0,background crate2:2,1,0,\n0,0,1,0,0,0,0,0,0,0,\n0,0,0,1,0,0,0,0,0,0,\n0,background toprod:3,background rod:4,background forklift:5,1,0,0,0,0,0,\n0,0,background fork:6,0,0,1,0,0,0,0,\n0,background crate1:7,background crate3:8,7,8,7,1,0,0,0,\n0,0,0,0,0,0,0,background end1 wall:9,0,0,\n0,0,0,0,0,0,0,0,background end2 wall:10,0,\n0,0,0,0,0,0,0,0,0,background end3 wall:11,\n",5,"1627891651612.1494"] + "Gabelstapler", + ["title Gabelstapler\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnorepeat_action\nrequire_player_movement\nverbose_logging\n\ncolor_palette 6\n\n\n\n========\nOBJECTS\n========\n\nBackground\n#999999 #888888\n00010\n11111\n00010\n00010\n00010\n\n\nWall\n#333333 #333333\n00000\n01010\n00000\n01010\n00000\n\nforklift\n#222222 #ffff00 #FFA500 #444444 black blue #ffcccc\n.00.3\n.0603\n10513\n11213\n.4.4.\n\nrod \n#444444\n....0\n....0\n....0\n....0\n....0\n\ntoprod\n#444444\n.....\n.....\n.....\n.....\n.....\n\n\nFork\n#ffff00\n.....\n.....\n.....\n0....\n00000\n\nend1 \ndarkblue lightblue brown #333333\n00000\n01110\n00000\n33333\n33333\n\nend2 \ndarkred lightred brown #333333\n11011\n10101\n11011\n33333\n33333\n\nend3 \ndarkgreen lightgreen brown #333333\n10001\n10101\n10001\n33333\n33333\n\n\nCrate1\ndarkblue blue brown\n00000\n01110\n00000\n22222\n.2.2.\n\n\nCrate2\ndarkred red brown\n11011\n10101\n11011\n22222\n.2.2.\n\n\nCrate3\ndarkgreen green brown\n01110\n01010\n01110\n22222\n.2.2.\n\noldfork\ntransparent\n\ncorrect\ntransparent\n\n=======\nLEGEND\n=======\nplayer = forklift or fork\ncrate = crate1 or crate2 or crate3\nobstacle = wall or crate or forklift\nmotile = crate or forklift or fork\nhasrod = forklift or rod or toprod\nisrod = rod or toprod\n. = Background\n# = Wall\nP = forklift\n1 = Crate1\n2 = Crate2\n3 = Crate3\nf = fork\nr = rod\nt = toprod\nq = end1 and wall\nw = end2 and wall\ne = end3 and wall\n\n=======\nSOUNDS\n=======\n\nforklift MOVE left 39169107\nforklift move right 81963107\ncrate move down 98604707\nendlevel 64983103\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nfork, rod, toprod\nforklift, Wall, Crate\nend1, end2, end3\noldfork\ncorrect\n\n======\nRULES\n======\n\n\n\n\n[ > fork | wall ] -> cancel\ndown [ down fork | obstacle] -> cancel\n\n[ vertical forklift ] -> [ forklift ]\n\n\n\nup [ moving player | crate ] -> [ moving player | moving crate ]\ndown [ stationary forklift | no obstacle ] [fork | no obstacle] -> [ down forklift | ] [down fork|]\n\nup [horizontal forklift | ... | hasrod ] -> [ horizontal forklift | ... | horizontal hasrod]\n\nright [ right rod | obstacle ] -> cancel\nright [ obstacle | left rod ] -> cancel\n\ndown [ moving forklift no obstacle ] -> [ stationary forklift ]\n\nright [ > forklift | Crate fork ] -> [ > forklift | > Crate > fork]\n\n\nright [ > forklift | crate no fork ] -> cancel \n\n(fork move objects)\n[moving fork crate ] -> [ moving fork moving crate ]\ndown [ left fork left crate | obstacle ] -> [ left fork stationary crate | obstacle ]\n\n\nup [ moving crate | crate ] -> [ moving crate | moving crate ]\n\nhorizontal [ > crate fork | stationary crate ] -> cancel\nhorizontal [ > obstacle | stationary obstacle ] -> [ obstacle | obstacle ]\n\nright[ stationary obstacle no forklift | left fork ] -> cancel\n\n\n\n(cancel movements upwards)\nhorizontal [ > crate | stationary obstacle no player ] -> [ stationary crate | obstacle ]\n\n\nup [stationary crate | moving crate no fork ] -> [ stationary crate | stationary crate ]\n\n[up fork crate]->[up fork oldfork crate]\n\n\n[ stationary crate no fork ] -> [ down crate ]\n\n[]->[] again\n\n\nlate [ rod ] -> []\nlate [ toprod ] -> []\nlate right [ no forklift | fork ] -> [ toprod | fork ]\nlate down [ isrod | no hasrod ] -> [ isrod | rod ]\nlate [ rod wall ] -> cancel\nlate [forklift fork]->cancel\n\nlate [oldfork crate ] -> cancel\nlate [oldfork]->[]\n\n\n(win condition)\nlate [forklift]->[forklift correct]\n\nlate up [ end1 | crate1 ] -> [ end1 | crate1 correct ]\nlate up [ end2 | crate2 ] -> [ end2 | crate2 correct ]\nlate up [ end3 | crate3 ] -> [ end3 | crate3 correct ]\nlate up [ correct crate1 | crate1 ] -> [ correct crate1 | correct crate1 ]\nlate up [ correct crate2 | crate2 ] -> [ correct crate2 | correct crate2 ]\nlate up [ correct crate3 | crate3 ] -> [ correct crate3 | correct crate3 ]\n\nlate [crate no correct] [ forklift correct ] -> [ crate ] [ forklift no correct] \nlate [forklift correct] [ fork no crate ] -> win\nlate [correct] ->[]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 3\n\n##########\n###.......\n..........\n..........\n.pf.2.1...\n#######qw#\n\n\nmessage Level 2 von 3\n\n################\n########.......#\n#..............#\n#..............#\n#..............#\n#........pf321.#\n###qwe##########\n\n\nmessage Level 3 von 3\n\n..........\n..........\n..........\n..........\n..........\n..........\n..#.......\n..........\n....233...\n.pf.111...\n#######qwe\n\nmessage Du bist aber gewandt!\n\n(\n########.....\n########.....\n.............\n.............\n.pf.1.3......\n########.##e#\n########q####)\n\n\n\n\n\n", [0, 3, 3, 0, 1, 1, 1, 0, 0, 3, 2, 0, 2, 2, 1, 0, 0, 3, 2, 0, 1, 2, 2, 2, 3, 3, 2, 3, 0, 2, 2, 3, 3, 3, 0, 0, 0, 3, 2, 1, 2, 2, 2, 3, 0, 0, 3, 1], "background:0,0,0,0,0,0,0,0,0,0,\nbackground wall:1,0,0,0,0,0,0,0,0,0,\n0,1,0,0,0,0,0,background crate2:2,1,0,\n0,0,1,0,0,0,0,0,0,0,\n0,0,0,1,0,0,0,0,0,0,\n0,background toprod:3,background rod:4,background forklift:5,1,0,0,0,0,0,\n0,0,background fork:6,0,0,1,0,0,0,0,\n0,background crate1:7,background crate3:8,7,8,7,1,0,0,0,\n0,0,0,0,0,0,0,background end1 wall:9,0,0,\n0,0,0,0,0,0,0,0,background end2 wall:10,0,\n0,0,0,0,0,0,0,0,0,background end3 wall:11,\n", 5, "1627891651612.1494"] ], [ - "Slot Machine", - ["title Slot Machine\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nbackground_color lightred\n\nrun_rules_on_level_Start\n\n\n========\nOBJECTS\n========\n\nBackground\nlightred\n\n\nVTarget\nblack transparent\n11011\n11011\n11011\n11011\n11011\n\nHTarget\nblack transparent\n11111\n11111\n11111\n11111\n00000\n\nWall\npurple \n\nPlayer\ndarkblue darkbrown green darkgreen\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nPlayer_fall\ndarkred darkbrown green darkgreen\n.....\n.....\n.000.\n21112\n.222.\n\nCoin_Flat\nyellow orange \n.....\n.000.\n00000\n10001\n.111.\n\ncoin_on_flatshadow\n#b14762\n.....\n.....\n.....\n.....\n0....\n\nCoin_H\nyellow orange\n.000.\n00000\n00000\n00000\n.000.\n\nCoin_V\nyellow orange\n..0..\n..0..\n..0..\n..0..\n..0..\n\nhalfin_h\nyellow orange\n.....\n.....\n.....\n.000.\n00000\n\nhalfin_v\nyellow orange\n.....\n..0..\n..0..\n..0..\n.....\n\nshadow_player\n#b14762\n.0.0.\n0.0..\n000..\n000..\n0....\n\nshadow_wall\n#b14762\n\nshadow_coin_flat\n#b14762\n0000.\n.....\n.....\n.....\n.....\n\nshadow_coin_h\n#b14762\n.000.\n.000.\n000..\n000..\n00...\n\nshadow_coin_v\n#b14762\n..0..\n.0...\n.0...\n0....\n0....\n\nwallshadow_1\n#b14762\n.....\n....0\n....0\n...00\n...00\n\nwallshadow_1b\n#b14762\n...00\n...00\n...00\n...00\n...00\n\n\nwallshadow_2\ntransparent #b14762\n11111\n11110\n11110\n11100\n11100\n\n\n=======\nLEGEND\n=======\n\ncoin = coin_h or coin_v or coin_flat\nobstacle = coin or wall or player\n\nanycoin = coin or halfin_h or halfin_v\n\n. = Background\n# = Wall\nP = Player\na = coin_flat\nb = coin_h\nc = coin_v\n1 = htarget\n2 = vtarget\nshadow = shadow_player or shadow_wall or shadow_coin_flat or shadow_coin_h or shadow_coin_v or coin_on_flatshadow or wallshadow_1 or wallshadow_1b or wallshadow_2\nwallshadow_v = wallshadow_1 or wallshadow_1b\n\n=======\nSOUNDS\n=======\nsfx0 4400100\nsfx1 56724504\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nshadow_player\nshadow_wall\nshadow_coin_flat\nshadow_coin_h\nshadow_coin_v\nwallshadow_1\nwallshadow_1b\nwallshadow_2\ncoin_on_flatshadow\nhtarget, vtarget\nPlayer, Wall, anycoin, player_Fall\n\n======\nRULES\n======\n\n\n[ htarget player_fall ] -> [ htarget ]\n\n([ htarget player ] -> [ htarget player_fall ] sfx1)\n\n[ htarget halfin_h ] -> [ htarget ]\n[ vtarget halfin_v ] -> [ vtarget ]\n\n[ coin_h htarget ] -> [ htarget halfin_h ] sfx0\n[ coin_v vtarget ] -> [ vtarget halfin_v ] sfx0\n\n\nhorizontal [ > player | coin_flat | no obstacle ] -> [ > player | | coin_v ]\nhorizontal [ > player | coin_v | no obstacle ] -> [ > player | | coin_flat ]\nhorizontal [ > player | coin_h | no obstacle ] -> [ > player | | coin_h ]\n\n\n\nvertical [ > player | coin_flat | no obstacle ] -> [ > player | | coin_h ]\nvertical [ > player | coin_h | no obstacle ] -> [ > player | | coin_flat ]\nvertical [ > player | coin_v | no obstacle ] -> [ > player | | coin_v ]\n\nlate [ shadow ] -> []\n\nlate down [ player | ] -> [ player | shadow_player ]\nlate down [ wall | ] -> [ wall | shadow_wall ] \n\nlate down [ coin_flat | ] -> [ coin_flat | shadow_coin_flat ]\nlate down [ coin_h | ] -> [ coin_h | shadow_coin_h ]\nlate down [ coin_v | ] -> [ coin_v | shadow_coin_v ]\nlate [ coin_flat ] -> [ coin_flat coin_on_flatshadow ]\n[]->again\n\n\n==============\nWINCONDITIONS\n==============\n\nno anycoin\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 2\n\n#########\n#.......#\n#.......#\n#.p.a.1.#\n#.......#\n#.......#\n#########\n.........\n\nmessage Level 2 von 2\n\n#########\n#.......#\n#....a..#\n#.p.aa1.#\n#....a..#\n#.......#\n#########\n.........\n\nmessage The End\n",[3,3,2,3,0,1,2,2,3,3,3,0,1,1,2,1,0,1,1,0,0,3,0,3,2,2,1,2,3],"background wall:0,background shadow_wall wall:1,1,1,1,1,1,background shadow_wall:2,0,\n2,background:3,3,3,3,0,2,0,2,\n3,3,3,3,0,2,0,2,3,\n3,background player:4,background shadow_player:5,0,2,0,2,background coin_h:6,background shadow_coin_h:7,\nbackground coin_v:8,background shadow_coin_v:9,0,2,0,2,background coin_flat coin_on_flatshadow:10,background coin_flat coin_on_flatshadow shadow_coin_flat:11,background shadow_coin_flat:12,\n3,0,2,0,2,3,background htarget:13,3,3,\n0,2,0,2,3,3,3,3,0,\n2,0,1,1,1,1,1,1,2,\n",3,"1627891674117.2878"] + "Slot Machine", + ["title Slot Machine\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nbackground_color lightred\n\nrun_rules_on_level_Start\n\n\n========\nOBJECTS\n========\n\nBackground\nlightred\n\n\nVTarget\nblack transparent\n11011\n11011\n11011\n11011\n11011\n\nHTarget\nblack transparent\n11111\n11111\n11111\n11111\n00000\n\nWall\npurple \n\nPlayer\ndarkblue darkbrown green darkgreen\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nPlayer_fall\ndarkred darkbrown green darkgreen\n.....\n.....\n.000.\n21112\n.222.\n\nCoin_Flat\nyellow orange \n.....\n.000.\n00000\n10001\n.111.\n\ncoin_on_flatshadow\n#b14762\n.....\n.....\n.....\n.....\n0....\n\nCoin_H\nyellow orange\n.000.\n00000\n00000\n00000\n.000.\n\nCoin_V\nyellow orange\n..0..\n..0..\n..0..\n..0..\n..0..\n\nhalfin_h\nyellow orange\n.....\n.....\n.....\n.000.\n00000\n\nhalfin_v\nyellow orange\n.....\n..0..\n..0..\n..0..\n.....\n\nshadow_player\n#b14762\n.0.0.\n0.0..\n000..\n000..\n0....\n\nshadow_wall\n#b14762\n\nshadow_coin_flat\n#b14762\n0000.\n.....\n.....\n.....\n.....\n\nshadow_coin_h\n#b14762\n.000.\n.000.\n000..\n000..\n00...\n\nshadow_coin_v\n#b14762\n..0..\n.0...\n.0...\n0....\n0....\n\nwallshadow_1\n#b14762\n.....\n....0\n....0\n...00\n...00\n\nwallshadow_1b\n#b14762\n...00\n...00\n...00\n...00\n...00\n\n\nwallshadow_2\ntransparent #b14762\n11111\n11110\n11110\n11100\n11100\n\n\n=======\nLEGEND\n=======\n\ncoin = coin_h or coin_v or coin_flat\nobstacle = coin or wall or player\n\nanycoin = coin or halfin_h or halfin_v\n\n. = Background\n# = Wall\nP = Player\na = coin_flat\nb = coin_h\nc = coin_v\n1 = htarget\n2 = vtarget\nshadow = shadow_player or shadow_wall or shadow_coin_flat or shadow_coin_h or shadow_coin_v or coin_on_flatshadow or wallshadow_1 or wallshadow_1b or wallshadow_2\nwallshadow_v = wallshadow_1 or wallshadow_1b\n\n=======\nSOUNDS\n=======\nsfx0 4400100\nsfx1 56724504\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nshadow_player\nshadow_wall\nshadow_coin_flat\nshadow_coin_h\nshadow_coin_v\nwallshadow_1\nwallshadow_1b\nwallshadow_2\ncoin_on_flatshadow\nhtarget, vtarget\nPlayer, Wall, anycoin, player_Fall\n\n======\nRULES\n======\n\n\n[ htarget player_fall ] -> [ htarget ]\n\n([ htarget player ] -> [ htarget player_fall ] sfx1)\n\n[ htarget halfin_h ] -> [ htarget ]\n[ vtarget halfin_v ] -> [ vtarget ]\n\n[ coin_h htarget ] -> [ htarget halfin_h ] sfx0\n[ coin_v vtarget ] -> [ vtarget halfin_v ] sfx0\n\n\nhorizontal [ > player | coin_flat | no obstacle ] -> [ > player | | coin_v ]\nhorizontal [ > player | coin_v | no obstacle ] -> [ > player | | coin_flat ]\nhorizontal [ > player | coin_h | no obstacle ] -> [ > player | | coin_h ]\n\n\n\nvertical [ > player | coin_flat | no obstacle ] -> [ > player | | coin_h ]\nvertical [ > player | coin_h | no obstacle ] -> [ > player | | coin_flat ]\nvertical [ > player | coin_v | no obstacle ] -> [ > player | | coin_v ]\n\nlate [ shadow ] -> []\n\nlate down [ player | ] -> [ player | shadow_player ]\nlate down [ wall | ] -> [ wall | shadow_wall ] \n\nlate down [ coin_flat | ] -> [ coin_flat | shadow_coin_flat ]\nlate down [ coin_h | ] -> [ coin_h | shadow_coin_h ]\nlate down [ coin_v | ] -> [ coin_v | shadow_coin_v ]\nlate [ coin_flat ] -> [ coin_flat coin_on_flatshadow ]\n[]->again\n\n\n==============\nWINCONDITIONS\n==============\n\nno anycoin\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 2\n\n#########\n#.......#\n#.......#\n#.p.a.1.#\n#.......#\n#.......#\n#########\n.........\n\nmessage Level 2 von 2\n\n#########\n#.......#\n#....a..#\n#.p.aa1.#\n#....a..#\n#.......#\n#########\n.........\n\nmessage The End\n", [3, 3, 2, 3, 0, 1, 2, 2, 3, 3, 3, 0, 1, 1, 2, 1, 0, 1, 1, 0, 0, 3, 0, 3, 2, 2, 1, 2, 3], "background wall:0,background shadow_wall wall:1,1,1,1,1,1,background shadow_wall:2,0,\n2,background:3,3,3,3,0,2,0,2,\n3,3,3,3,0,2,0,2,3,\n3,background player:4,background shadow_player:5,0,2,0,2,background coin_h:6,background shadow_coin_h:7,\nbackground coin_v:8,background shadow_coin_v:9,0,2,0,2,background coin_flat coin_on_flatshadow:10,background coin_flat coin_on_flatshadow shadow_coin_flat:11,background shadow_coin_flat:12,\n3,0,2,0,2,3,background htarget:13,3,3,\n0,2,0,2,3,3,3,3,0,\n2,0,1,1,1,1,1,1,2,\n", 3, "1627891674117.2878"] ], [ - "Participating in society", - ["title Participating in society\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n========\nOBJECTS\n========\n\nBackground\ngreen 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_sm\nDARKBROWN Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate1 0\nDARKBROWN\n\ncrate2 1\norange\n\ncrate3 2\nwhite\n\ncrate4 3\nblue\n\nplayer0 q\ndarkbrown\n\nplayer1 w\norange\n\nplayer2 e\nwhite\n\nplayer3 r\nblue\n\na \ntransparent\n\ns\ntransparent\n\nd \ntransparent\n\nf\ntransparent\n\n=======\nLEGEND\n=======\n\ncrate = crate1 or crate2 or crate3 or crate4\nplayer = player0 or player1 or player2 or player3\n\n. = Background\n# = Wall\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, player_sm\na,s,d,f\n\n======\nRULES\n======\n\n([ > Player | Crate ] -> [ > Player | > Crate ])\n([ > crate | crate ] -> [ > crate | > crate ])\n\n([ > crate | | | | | no crate ] -> [ | | | | | crate ] )\n==============\nWINCONDITIONS\n==============\nall q on a\nall w on s\nall e on d\nall r on f\n\n=======\nLEVELS\n=======\n\n\nmessage I don't know if it's a good idea to join in.\n\nmessage Level 1 of 1\n\n...................................\n...................................\n...................................\n...................................\n...................................\n..qqq.....000000000000000..........\n..www.....000000000000000..........\n.eeeee....aa0000000000000..........\n..rrr.....0a0000000000000..........\n..r.r.....000000000000000..........\n..........111111111111111..........\n..........111111111111111..........\n..........111111111111111..........\n..........111ss1111111111..........\n..........1111s1111111111..........\n.....222222222d222222222222222.....\n.....222222222d222222222222222.....\n.....222222222d222222222222222.....\n.....222222222d222222222222222.....\n.....222222222d222222222222222.....\n..........fffff3333333333..........\n..........333333333333333..........\n..........333333333333333..........\n..........333333333333333..........\n..........333333333333333..........\n..........33333.....33333..........\n..........33333.....33333..........\n..........33333.....33333..........\n..........33333.....33333..........\n..........33333.....33333..........\n...................................\n...................................\n...................................\n...................................\n...................................\n\nmessage The collective concludes that it has no regrets.\n\n\n",[2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,2,3,2,3,3,3,0,3,0,3,0,3,0,0],"background: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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,background player0:1,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,1,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,1,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,background crate3:2,2,2,2,2,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,2,2,2,2,2,background player2:3,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,2,2,2,2,2,3,3,background player3:4,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,2,2,2,2,2,background player1:5,4,4,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,2,2,2,2,2,5,4,4,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background crate1:6,6,a background:7,6,6,background crate2:8,8,8,8,8,2,2,2,2,2,background f player1:9,background crate4:10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,7,7,6,8,8,8,8,8,2,2,2,2,2,background f player2:11,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,background f:12,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,background s:13,8,2,2,2,2,2,12,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,13,13,background d:14,14,14,14,14,12,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,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,2,2,2,2,2,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,2,2,2,2,2,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,2,2,2,2,2,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,2,2,2,2,2,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,\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,\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,\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,\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,\n",2,"1627891686718.0212"] + "Participating in society", + ["title Participating in society\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n========\nOBJECTS\n========\n\nBackground\ngreen 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_sm\nDARKBROWN Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate1 0\nDARKBROWN\n\ncrate2 1\norange\n\ncrate3 2\nwhite\n\ncrate4 3\nblue\n\nplayer0 q\ndarkbrown\n\nplayer1 w\norange\n\nplayer2 e\nwhite\n\nplayer3 r\nblue\n\na \ntransparent\n\ns\ntransparent\n\nd \ntransparent\n\nf\ntransparent\n\n=======\nLEGEND\n=======\n\ncrate = crate1 or crate2 or crate3 or crate4\nplayer = player0 or player1 or player2 or player3\n\n. = Background\n# = Wall\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, player_sm\na,s,d,f\n\n======\nRULES\n======\n\n([ > Player | Crate ] -> [ > Player | > Crate ])\n([ > crate | crate ] -> [ > crate | > crate ])\n\n([ > crate | | | | | no crate ] -> [ | | | | | crate ] )\n==============\nWINCONDITIONS\n==============\nall q on a\nall w on s\nall e on d\nall r on f\n\n=======\nLEVELS\n=======\n\n\nmessage I don't know if it's a good idea to join in.\n\nmessage Level 1 of 1\n\n...................................\n...................................\n...................................\n...................................\n...................................\n..qqq.....000000000000000..........\n..www.....000000000000000..........\n.eeeee....aa0000000000000..........\n..rrr.....0a0000000000000..........\n..r.r.....000000000000000..........\n..........111111111111111..........\n..........111111111111111..........\n..........111111111111111..........\n..........111ss1111111111..........\n..........1111s1111111111..........\n.....222222222d222222222222222.....\n.....222222222d222222222222222.....\n.....222222222d222222222222222.....\n.....222222222d222222222222222.....\n.....222222222d222222222222222.....\n..........fffff3333333333..........\n..........333333333333333..........\n..........333333333333333..........\n..........333333333333333..........\n..........333333333333333..........\n..........33333.....33333..........\n..........33333.....33333..........\n..........33333.....33333..........\n..........33333.....33333..........\n..........33333.....33333..........\n...................................\n...................................\n...................................\n...................................\n...................................\n\nmessage The collective concludes that it has no regrets.\n\n\n", [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 2, 3, 2, 3, 3, 3, 0, 3, 0, 3, 0, 3, 0, 0], "background: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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,background player0:1,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,1,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,1,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,background crate3:2,2,2,2,2,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,2,2,2,2,2,background player2:3,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,2,2,2,2,2,3,3,background player3:4,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,2,2,2,2,2,background player1:5,4,4,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,2,2,2,2,2,5,4,4,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background crate1:6,6,a background:7,6,6,background crate2:8,8,8,8,8,2,2,2,2,2,background f player1:9,background crate4:10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,7,7,6,8,8,8,8,8,2,2,2,2,2,background f player2:11,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,background f:12,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,background s:13,8,2,2,2,2,2,12,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,13,13,background d:14,14,14,14,14,12,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,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,2,2,2,2,2,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,2,2,2,2,2,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,2,2,2,2,2,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,2,2,2,2,2,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,\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,\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,\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,\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,\n", 2, "1627891686718.0212"] ], [ - "Individuals can produce a society, but can a society produce individuals?", - ["title Individuals can produce a society, but can a society produce individuals?\nhomepage www.increpare.com\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\ngreen 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\nwall1 8\nbrown\n\nwall2 9\ndarkbrown\n\nPlayer_sm\nDARKBROWN Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate1 0\nDARKBROWN\n\ncrate2 1\norange\n\ncrate3 2\nwhite\n\ncrate4 3\nblue\n\nplayer0 q\ndarkbrown\n\nplayer1 w\norange\n\nplayer2 e\nwhite\n\nplayer3 r\nblue\n\na \ndarkblue\n\ns\ndarkblue\n\nd \ndarkblue\n\nf\ndarkblue\n\nbuhne x\npink\n\nerror\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\n=======\nLEGEND\n=======\n\ncrate = player0 or player1 or player2 or player3\nplayer = crate1 or crate2 or crate3 or crate4\n\n. = Background\n# = Wall\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbuhne\nTarget\na,s,d,f\nPlayer, Wall, Crate, player_sm, wall1, wall2\nerror\n\n======\nRULES\n======\n\n[error]->[]\n\nlate [ player buhne ] -> [ player buhne error ]\n\nlate [ a player no 0 ] -> [ a player error ]\nlate [ s player no 1 ] -> [ s player error ]\nlate [ d player no 2 ] -> [ d player error ]\nlate [ f player no 3 ] -> [ f player error ]\n\n([ > Player | Crate ] -> [ > Player | > Crate ])\n([ > crate | crate ] -> [ > crate | > crate ])\n\n([ > crate | | | | | no crate ] -> [ | | | | | crate ] )\n==============\nWINCONDITIONS\n==============\n\nall a on 0\nall s on 1\nall d on 2\nall f on 3\nno buhne on player\n\n=======\nLEVELS\n=======\n \n\nmessage Level 1 of 1\n\n\n........................................\n........................................\n.....xxxxx..............................\n.....xaaax..............................\n....xxsssxx.............................\n....xdddddx.............................\n....xxfffxx.............................\n.....xfxfx..............................\n.....xxxxx..............................\n........................................\n............000000......................\n............000000......................\n............111111......................\n............111111......................\n..........2222222222....................\n..........2222222222....................\n............333333......................\n............333333......................\n............33..33......................\n............33..33......................\n....................8888889988..........\n....................8888889988..........\n....................9999999999..........\n....................9999999999..........\n....................8899888888..........\n....................8899888888..........\n....................9999999999..........\n....................9999999999..........\n....................8888889988..........\n....................8888889988..........\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n\nmessage Yes\n\n\n\n\n\n",[0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,0,1,0,0,1,1,2,2,2,1,1,0,0,0,1,1,1,2,1,2,2,3,3,3,3,3,3,3,3,2,3,2,3,2,3,2,3,2,2,2,2,2,2,2,1,1,2,1,2,3,2,3,2,3,2,3,3,3,3,3,3,3,0,0,0,0,0,0,3,3,3,3],"background: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,\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,\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,\n0,0,0,0,background buhne:1,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,0,0,0,0,0,0,0,0,\n0,0,1,1,1,background d:2,1,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,0,0,0,0,0,0,\n0,0,1,a background:3,background s:4,2,background f:5,5,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,0,0,0,0,0,0,\n0,0,1,3,4,2,5,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,0,0,0,0,0,0,\n0,0,1,3,4,2,5,5,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,0,0,0,0,0,0,\n0,0,1,1,1,2,1,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,0,0,0,0,0,0,\n0,0,0,0,1,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,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,\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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background crate3:6,0,0,0,background crate4:7,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,6,6,0,0,0,7,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,6,background crate2:8,0,0,0,7,7,7,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,8,8,0,0,0,7,7,7,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,background crate1:9,8,8,6,6,7,7,7,7,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,9,8,8,6,6,7,7,7,7,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,9,8,8,6,6,7,background wall1:10,10,background wall2:11,11,10,10,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,8,8,6,6,7,10,10,11,11,10,10,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,8,6,6,6,7,10,10,11,11,11,11,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,6,6,6,6,7,10,10,11,11,11,11,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,10,10,11,11,10,10,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,10,10,11,11,10,10,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,11,11,11,11,10,10,11,11,11,11,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,11,11,11,11,10,10,11,11,11,11,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,10,10,11,11,10,10,11,11,10,10,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,10,10,11,11,10,10,11,11,10,10,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,6,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,\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,\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,\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,\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,\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,\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,\n",1,"1627891699152.948"] + "Individuals can produce a society, but can a society produce individuals?", + ["title Individuals can produce a society, but can a society produce individuals?\nhomepage www.increpare.com\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\ngreen 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\nwall1 8\nbrown\n\nwall2 9\ndarkbrown\n\nPlayer_sm\nDARKBROWN Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate1 0\nDARKBROWN\n\ncrate2 1\norange\n\ncrate3 2\nwhite\n\ncrate4 3\nblue\n\nplayer0 q\ndarkbrown\n\nplayer1 w\norange\n\nplayer2 e\nwhite\n\nplayer3 r\nblue\n\na \ndarkblue\n\ns\ndarkblue\n\nd \ndarkblue\n\nf\ndarkblue\n\nbuhne x\npink\n\nerror\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\n=======\nLEGEND\n=======\n\ncrate = player0 or player1 or player2 or player3\nplayer = crate1 or crate2 or crate3 or crate4\n\n. = Background\n# = Wall\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbuhne\nTarget\na,s,d,f\nPlayer, Wall, Crate, player_sm, wall1, wall2\nerror\n\n======\nRULES\n======\n\n[error]->[]\n\nlate [ player buhne ] -> [ player buhne error ]\n\nlate [ a player no 0 ] -> [ a player error ]\nlate [ s player no 1 ] -> [ s player error ]\nlate [ d player no 2 ] -> [ d player error ]\nlate [ f player no 3 ] -> [ f player error ]\n\n([ > Player | Crate ] -> [ > Player | > Crate ])\n([ > crate | crate ] -> [ > crate | > crate ])\n\n([ > crate | | | | | no crate ] -> [ | | | | | crate ] )\n==============\nWINCONDITIONS\n==============\n\nall a on 0\nall s on 1\nall d on 2\nall f on 3\nno buhne on player\n\n=======\nLEVELS\n=======\n \n\nmessage Level 1 of 1\n\n\n........................................\n........................................\n.....xxxxx..............................\n.....xaaax..............................\n....xxsssxx.............................\n....xdddddx.............................\n....xxfffxx.............................\n.....xfxfx..............................\n.....xxxxx..............................\n........................................\n............000000......................\n............000000......................\n............111111......................\n............111111......................\n..........2222222222....................\n..........2222222222....................\n............333333......................\n............333333......................\n............33..33......................\n............33..33......................\n....................8888889988..........\n....................8888889988..........\n....................9999999999..........\n....................9999999999..........\n....................8899888888..........\n....................8899888888..........\n....................9999999999..........\n....................9999999999..........\n....................8888889988..........\n....................8888889988..........\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n\nmessage Yes\n\n\n\n\n\n", [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 2, 2, 2, 1, 1, 0, 0, 0, 1, 1, 1, 2, 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3], "background: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,\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,\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,\n0,0,0,0,background buhne:1,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,0,0,0,0,0,0,0,0,\n0,0,1,1,1,background d:2,1,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,0,0,0,0,0,0,\n0,0,1,a background:3,background s:4,2,background f:5,5,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,0,0,0,0,0,0,\n0,0,1,3,4,2,5,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,0,0,0,0,0,0,\n0,0,1,3,4,2,5,5,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,0,0,0,0,0,0,\n0,0,1,1,1,2,1,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,0,0,0,0,0,0,\n0,0,0,0,1,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,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,\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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background crate3:6,0,0,0,background crate4:7,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,6,6,0,0,0,7,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,6,background crate2:8,0,0,0,7,7,7,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,8,8,0,0,0,7,7,7,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,background crate1:9,8,8,6,6,7,7,7,7,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,9,8,8,6,6,7,7,7,7,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,9,8,8,6,6,7,background wall1:10,10,background wall2:11,11,10,10,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,8,8,6,6,7,10,10,11,11,10,10,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,8,6,6,6,7,10,10,11,11,11,11,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,6,6,6,6,7,10,10,11,11,11,11,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,10,10,11,11,10,10,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,10,10,11,11,10,10,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,11,11,11,11,10,10,11,11,11,11,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,11,11,11,11,10,10,11,11,11,11,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,10,10,11,11,10,10,11,11,10,10,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,10,10,11,11,10,10,11,11,10,10,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,6,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,\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,\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,\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,\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,\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,\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,\n", 1, "1627891699152.948"] ], [ - "the exit is under my left foot", - ["title the exit is under my left foot\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nrun_rules_on_level_start\nbackground_color darkblue\n\n========\nOBJECTS\n========\n\nBackground\nGREEN\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\np1\ngray \n.....\n.....\n..0..\n.....\n.....\n\np2\ngray \n.....\n.....\n..0..\n.....\n.....\n\np3\ngray \n.....\n.....\n..0..\n.....\n.....\n\np4\ngray \n.....\n.....\n..0..\n.....\n.....\n\np5\ngray \n.....\n.....\n..0..\n.....\n.....\n\n\n(\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.)\n\npixel_black \nblack\n\npixel_orange \norange\n\npixel_white \nwhite\n\npixel_blue \nblue\n\n\nwall_black \nblack\n\nwall_orange \norange\n\nwall_white \nwhite\n\nwall_blue \nblue\n\nrow_1 a\nTRANSPARENT\n\nrow_2 s\nTRANSPARENT\n\nrow_3 d\nTRANSPARENT\n\nrow_4 f\nTRANSPARENT\n\nrow_5 g\nTRANSPARENT\n\ndead\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\ngoal\ngray\n.....\n.....\n..0..\n.....\n.....\n\nquasigrenze\nTRANSPARENT\n\n=======\nLEGEND\n=======\n\n. = Background\n1 = p1\n2 = p2\n3 = p3\n4 = p4\n5 = p5\n\nO = Target\n\nb = goal \nn = goal and row_1\n\npixel = pixel_black or pixel_white or pixel_orange or pixel_blue\n\nplayer = p1 or p2 or p3 or p4 or p5\n\nq = pixel_black and p1\nw = pixel_orange and p2\ne = pixel_white and p3\nr = pixel_blue and p4\nt = pixel_blue and p5\n\nrow = row_1 or row_2 or row_3 or row_4 or row_5\nwall = wall_black or wall_orange or wall_white or wall_blue\nobstacle = wall\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\npixel\nWall\nPlayer\nrow\ngoal\ndead\nquasigrenze\n\n======\nRULES\n======\n\n\n[dead]->cancel\n\n[ > player pixel ] -> [ > player > pixel ]\n\n(\n[ moving player ] -> [ player ]\n\n[ player | player | player | player | player > pixel ] -> [ > player | > player | > player | > player | > player > pixel ]\n\n[ orthogonal player | stationary player ] -> [ orthogonal player | orthogonal player ]\n)\n\n\n[ ^ player wall | ^ player wall | ^ player wall | ^ player wall | ^ player wall ] -> [ quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall ]\n\n[ > pixel | > pixel | > pixel | > pixel | > pixel | obstacle ] [ moving player ] -> [ > pixel | > pixel | > pixel | > pixel | > pixel | obstacle ] [ player ] \n\n[ > pixel | quasigrenze ] [ moving player ] -> [ > pixel | quasigrenze ] [ player ] \n[quasigrenze]->[]\n\n[ > pixel | wall ] -> [ stationary pixel | wall ]\n[ > pixel | stationary pixel ] -> [ stationary pixel | pixel ]\n\nlate [wall]->[]\n\nlate [ pixel no player ] -> cancel\n\nlate right [ pixel_black 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_black 1 | 1 | 1 | 1 | 1 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_black 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_black 1 | 1 | 1 | 1 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_black 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_black 1 | 1 | 1 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_black 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_black 1 | 1 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_black 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_black 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_1 ]\nlate right [ pixel_black 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_black 2 | 2 | 2 | 2 | 2 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_black 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_black 2 | 2 | 2 | 2 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_black 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_black 2 | 2 | 2 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_black 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_black 2 | 2 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_black 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_black 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_2 ]\nlate right [ pixel_black 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_black 3 | 3 | 3 | 3 | 3 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_black 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_black 3 | 3 | 3 | 3 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_black 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_black 3 | 3 | 3 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_black 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_black 3 | 3 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_black 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_black 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_3 ]\nlate right [ pixel_black 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_black 4 | 4 | 4 | 4 | 4 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_black 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_black 4 | 4 | 4 | 4 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_black 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_black 4 | 4 | 4 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_black 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_black 4 | 4 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_black 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_black 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_4 ]\nlate right [ pixel_black 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_black 5 | 5 | 5 | 5 | 5 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_black 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_black 5 | 5 | 5 | 5 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_black 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_black 5 | 5 | 5 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_black 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_black 5 | 5 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_black 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_black 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_5 ]\n\n\nlate [pixel wall]->[pixel wall dead]\n\n==============\nWINCONDITIONS\n==============\n\nall player on goal\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n(11112222233333444445555)\n........................a\n........................a\n........................a\n........................a\n........................a\n........................s\n........................s\n........................s\n........................s\n........................s\n........................d\n........................d\n........................d\n........................d\n........................d\n........................f\n........................f\n........................f\n........................f\n........................f\n1qqq1..........bbbbb....g\n2www2..........bbbbb....g\neeeee..........bbbbb....g\n4rrr4..........bbbbb....g\n5t5t5..........bbbbb....g\n(11112222233333444445555)\n\n",[0,0,0,0,0,0,0,3,3,3,3,3,3,3,2,2,2,2,2,3,3,3,3,3,0,0,1,1,0,0,0,3,3,1,0,0,0,0,0,1,1,0,0,0],"background:0,0,0,0,0,background wall_black:1,1,1,1,1,background wall_white:2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,background p1 wall_black:3,background dead p2 pixel_black wall_white:4,background dead p3 pixel_white wall_white:5,background p4 wall_white:6,background p5 wall_white:7,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,3,4,background dead p3 pixel_orange wall_white:8,6,7,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,3,4,8,background dead p4 pixel_white wall_white:9,background dead p5 pixel_blue wall_white:10,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,3,background dead p2 pixel_orange wall_orange:11,background dead p3 pixel_white wall_orange:12,background dead p4 pixel_blue wall_orange:13,background dead p5 pixel_blue wall_orange:14,background wall_orange:15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,3,background dead p2 pixel_white wall_orange:16,12,13,14,15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,background wall_blue:17,17,17,17,17,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,background goal wall_blue:18,18,18,18,18,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,18,18,18,18,18,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,18,18,18,18,18,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,18,18,18,18,18,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,18,18,18,18,18,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,17,17,17,17,17,17,17,17,17,17,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,17,17,17,17,17,17,17,17,17,17,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,17,17,17,17,17,17,17,17,17,17,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,17,17,17,17,17,17,17,17,17,17,\nbackground row_1:19,19,19,19,19,background row_2 wall_white:20,20,20,20,20,background row_3 wall_white:21,21,21,21,21,background row_4 wall_blue:22,22,22,22,22,background row_5 wall_blue:23,23,23,23,23,\n",1,"1627891726028.5537"] + "the exit is under my left foot", + ["title the exit is under my left foot\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nrun_rules_on_level_start\nbackground_color darkblue\n\n========\nOBJECTS\n========\n\nBackground\nGREEN\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\np1\ngray \n.....\n.....\n..0..\n.....\n.....\n\np2\ngray \n.....\n.....\n..0..\n.....\n.....\n\np3\ngray \n.....\n.....\n..0..\n.....\n.....\n\np4\ngray \n.....\n.....\n..0..\n.....\n.....\n\np5\ngray \n.....\n.....\n..0..\n.....\n.....\n\n\n(\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.)\n\npixel_black \nblack\n\npixel_orange \norange\n\npixel_white \nwhite\n\npixel_blue \nblue\n\n\nwall_black \nblack\n\nwall_orange \norange\n\nwall_white \nwhite\n\nwall_blue \nblue\n\nrow_1 a\nTRANSPARENT\n\nrow_2 s\nTRANSPARENT\n\nrow_3 d\nTRANSPARENT\n\nrow_4 f\nTRANSPARENT\n\nrow_5 g\nTRANSPARENT\n\ndead\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\ngoal\ngray\n.....\n.....\n..0..\n.....\n.....\n\nquasigrenze\nTRANSPARENT\n\n=======\nLEGEND\n=======\n\n. = Background\n1 = p1\n2 = p2\n3 = p3\n4 = p4\n5 = p5\n\nO = Target\n\nb = goal \nn = goal and row_1\n\npixel = pixel_black or pixel_white or pixel_orange or pixel_blue\n\nplayer = p1 or p2 or p3 or p4 or p5\n\nq = pixel_black and p1\nw = pixel_orange and p2\ne = pixel_white and p3\nr = pixel_blue and p4\nt = pixel_blue and p5\n\nrow = row_1 or row_2 or row_3 or row_4 or row_5\nwall = wall_black or wall_orange or wall_white or wall_blue\nobstacle = wall\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\npixel\nWall\nPlayer\nrow\ngoal\ndead\nquasigrenze\n\n======\nRULES\n======\n\n\n[dead]->cancel\n\n[ > player pixel ] -> [ > player > pixel ]\n\n(\n[ moving player ] -> [ player ]\n\n[ player | player | player | player | player > pixel ] -> [ > player | > player | > player | > player | > player > pixel ]\n\n[ orthogonal player | stationary player ] -> [ orthogonal player | orthogonal player ]\n)\n\n\n[ ^ player wall | ^ player wall | ^ player wall | ^ player wall | ^ player wall ] -> [ quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall ]\n\n[ > pixel | > pixel | > pixel | > pixel | > pixel | obstacle ] [ moving player ] -> [ > pixel | > pixel | > pixel | > pixel | > pixel | obstacle ] [ player ] \n\n[ > pixel | quasigrenze ] [ moving player ] -> [ > pixel | quasigrenze ] [ player ] \n[quasigrenze]->[]\n\n[ > pixel | wall ] -> [ stationary pixel | wall ]\n[ > pixel | stationary pixel ] -> [ stationary pixel | pixel ]\n\nlate [wall]->[]\n\nlate [ pixel no player ] -> cancel\n\nlate right [ pixel_black 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_black 1 | 1 | 1 | 1 | 1 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_black 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_black 1 | 1 | 1 | 1 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_black 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_black 1 | 1 | 1 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_black 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_black 1 | 1 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_black 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_black 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_1 ]\nlate right [ pixel_black 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_black 2 | 2 | 2 | 2 | 2 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_black 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_black 2 | 2 | 2 | 2 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_black 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_black 2 | 2 | 2 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_black 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_black 2 | 2 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_black 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_black 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_2 ]\nlate right [ pixel_black 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_black 3 | 3 | 3 | 3 | 3 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_black 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_black 3 | 3 | 3 | 3 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_black 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_black 3 | 3 | 3 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_black 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_black 3 | 3 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_black 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_black 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_3 ]\nlate right [ pixel_black 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_black 4 | 4 | 4 | 4 | 4 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_black 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_black 4 | 4 | 4 | 4 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_black 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_black 4 | 4 | 4 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_black 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_black 4 | 4 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_black 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_black 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_4 ]\nlate right [ pixel_black 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_black 5 | 5 | 5 | 5 | 5 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_black 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_black 5 | 5 | 5 | 5 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_black 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_black 5 | 5 | 5 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_black 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_black 5 | 5 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_black 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_black 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_5 ]\n\n\nlate [pixel wall]->[pixel wall dead]\n\n==============\nWINCONDITIONS\n==============\n\nall player on goal\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n(11112222233333444445555)\n........................a\n........................a\n........................a\n........................a\n........................a\n........................s\n........................s\n........................s\n........................s\n........................s\n........................d\n........................d\n........................d\n........................d\n........................d\n........................f\n........................f\n........................f\n........................f\n........................f\n1qqq1..........bbbbb....g\n2www2..........bbbbb....g\neeeee..........bbbbb....g\n4rrr4..........bbbbb....g\n5t5t5..........bbbbb....g\n(11112222233333444445555)\n\n", [0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 0, 0, 1, 1, 0, 0, 0, 3, 3, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0], "background:0,0,0,0,0,background wall_black:1,1,1,1,1,background wall_white:2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,background p1 wall_black:3,background dead p2 pixel_black wall_white:4,background dead p3 pixel_white wall_white:5,background p4 wall_white:6,background p5 wall_white:7,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,3,4,background dead p3 pixel_orange wall_white:8,6,7,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,3,4,8,background dead p4 pixel_white wall_white:9,background dead p5 pixel_blue wall_white:10,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,3,background dead p2 pixel_orange wall_orange:11,background dead p3 pixel_white wall_orange:12,background dead p4 pixel_blue wall_orange:13,background dead p5 pixel_blue wall_orange:14,background wall_orange:15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,3,background dead p2 pixel_white wall_orange:16,12,13,14,15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,background wall_blue:17,17,17,17,17,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,background goal wall_blue:18,18,18,18,18,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,18,18,18,18,18,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,18,18,18,18,18,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,18,18,18,18,18,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,18,18,18,18,18,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,17,17,17,17,17,17,17,17,17,17,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,17,17,17,17,17,17,17,17,17,17,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,17,17,17,17,17,17,17,17,17,17,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,17,17,17,17,17,17,17,17,17,17,\nbackground row_1:19,19,19,19,19,background row_2 wall_white:20,20,20,20,20,background row_3 wall_white:21,21,21,21,21,background row_4 wall_blue:22,22,22,22,22,background row_5 wall_blue:23,23,23,23,23,\n", 1, "1627891726028.5537"] ], [ - "I SURE LOOK TASTY!", - ["title I SURE LOOK TASTY!\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nrun_rules_on_level_start\n\nverbose_logging\n========\nOBJECTS\n========\n\nBackground\nGREEN\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\np1\ngray \n.....\n.....\n..0..\n.....\n.....\n\np2\ngray \n.....\n.....\n..0..\n.....\n.....\n\np3\ngray \n.....\n.....\n..0..\n.....\n.....\n\np4\ngray \n.....\n.....\n..0..\n.....\n.....\n\np5\ngray \n.....\n.....\n..0..\n.....\n.....\n\n\n(\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.)\n\npixel_eye\norange white blue\n00000\n01110\n01210\n01210\n00000\n\n\npixel_orange \norange\n\npixel_white \nwhite\n\npixel_blue \nblue\n\npixel_mouth\norange red white darkred black\n01110\n12221\n34443\n12221\n01110\n\n\nwall_black \nblack\n\nwall_orange \norange\n\nwall_white \nwhite\n\nwall_blue \nblue\n\nwall_red\nred\n\nwall_darkred\ndarkred\n\nrow_1 a\nTRANSPARENT\n\nrow_2 s\nTRANSPARENT\n\nrow_3 d\nTRANSPARENT\n\nrow_4 f\nTRANSPARENT\n\nrow_5 g\nTRANSPARENT\n\nvr_1\nTRANSPARENT\n0....\n.....\n.....\n.....\n.....\n\nvr_2\nTRANSPARENT\n.0...\n.....\n.....\n.....\n.....\n\nvr_3\nTRANSPARENT\n..0..\n.....\n.....\n.....\n.....\n\nvr_4\nTRANSPARENT\n...0.\n.....\n.....\n.....\n.....\n\nvr_5\nTRANSPARENT\n....0\n.....\n.....\n.....\n.....\n\ndead\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\ngoal\ngray\n.....\n.....\n..0..\n.....\n.....\n\nquasigrenze\nTRANSPARENT\n\nmund\nTRANSPARENT\n\n=======\nLEGEND\n=======\n\n. = Background\n1 = p1\n2 = p2\n3 = p3\n4 = p4\n5 = p5\n\nO = Target\n\nb = goal \nn = goal and row_1\n\npixel = pixel_eye or pixel_white or pixel_orange or pixel_blue or pixel_mouth\n\nplayer = p1 or p2 or p3 or p4 or p5\n\nq = pixel_eye and p1\nw = pixel_orange and p2\ne = pixel_white and p3\nr = pixel_blue and p4\nt = pixel_blue and p5\ny = pixel_mouth and p2\nu = pixel_orange and p1\n\nrow = row_1 or row_2 or row_3 or row_4 or row_5\nwall = wall_black or wall_orange or wall_white or wall_blue or wall_red or wall_darkred\nobstacle = wall\n\nvr = vr_1 or vr_2 or vr_3 or vr_4 or vr_5\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nvr\nTarget\nWall\npixel\nPlayer\nrow\ngoal\ndead\nquasigrenze\nmund\n\n======\nRULES\n======\n\n\n[dead]->cancel\n\n[ > player pixel ] -> [ > player > pixel ]\n\n(\n[ moving player ] -> [ player ]\n\n[ player | player | player | player | player > pixel ] -> [ > player | > player | > player | > player | > player > pixel ]\n\n[ orthogonal player | stationary player ] -> [ orthogonal player | orthogonal player ]\n)\n\n\ndown [ row_1 | row_1 | row_1 | row_1 | row_1 ] -> [ row_1 vr_1 | row_1 vr_2 | row_1 vr_3 | row_1 vr_4 | row_1 vr_5 ]\ndown [ row_2 | row_2 | row_2 | row_2 | row_2 ] -> [ row_2 vr_1 | row_2 vr_2 | row_2 vr_3 | row_2 vr_4 | row_2 vr_5 ]\ndown [ row_3 | row_3 | row_3 | row_3 | row_3 ] -> [ row_3 vr_1 | row_3 vr_2 | row_3 vr_3 | row_3 vr_4 | row_3 vr_5 ]\ndown [ row_4 | row_4 | row_4 | row_4 | row_4 ] -> [ row_4 vr_1 | row_4 vr_2 | row_4 vr_3 | row_4 vr_4 | row_4 vr_5 ]\ndown [ row_5 | row_5 | row_5 | row_5 | row_5 ] -> [ row_5 vr_1 | row_5 vr_2 | row_5 vr_3 | row_5 vr_4 | row_5 vr_5 ]\n\n[ ^ player wall | ^ player wall | ^ player wall | ^ player wall | ^ player wall ] -> [ quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall ]\n\n[ > pixel | > pixel | > pixel | > pixel | > pixel | obstacle ] [ moving player ] -> [ > pixel | > pixel | > pixel | > pixel | > pixel | obstacle ] [ player ] \n\n[ > pixel | quasigrenze ] [ moving player ] -> [ > pixel | quasigrenze ] [ player ] \n[quasigrenze]->[]\n\n[ > pixel | wall ] -> [ stationary pixel | wall ]\n[ > pixel | stationary pixel ] -> [ stationary pixel | pixel ]\n\nlate [wall]->[]\nlate [mund]->[]\nlate [ pixel no player ] -> cancel\n\n\n\nlate right [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_1 ]\nlate right [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_2 ]\nlate right [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_3 ]\nlate right [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_4 ]\nlate right [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_5 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 vr_1 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 vr_1 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 vr_1 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 vr_1 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 vr_1 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_1 vr_2 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_2 vr_2 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_3 vr_2 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_4 vr_2 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_5 vr_2 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_1 vr_3 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_2 vr_3 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_3 vr_3 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_4 vr_3 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_5 vr_3 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_1 vr_4 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_2 vr_4 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_3 vr_4 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_4 vr_4 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_5 vr_4 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 vr_5 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 vr_5 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 vr_5 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 vr_5 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 vr_5 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_1 vr_1 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_2 vr_1 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_3 vr_1 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_4 vr_1 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_5 vr_1 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_1 vr_2 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_2 vr_2 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_3 vr_2 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_4 vr_2 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_5 vr_2 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_1 vr_3 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_2 vr_3 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_3 vr_3 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_4 vr_3 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_5 vr_3 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_1 vr_4 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_2 vr_4 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_3 vr_4 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_4 vr_4 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_5 vr_4 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_1 vr_5 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_2 vr_5 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_3 vr_5 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_4 vr_5 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_5 vr_5 ]\n\n\nlate [pixel mund ] -> [ mund ] \nlate [pixel wall]->[pixel wall dead]\n\n==============\nWINCONDITIONS\n==============\n\nno pixel\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n(11112222233333444445555)\n........................a\n........................a\n........................a\n........................a\n........................a\n........................s\n........................s\n........................s\n........................s\n........................s\n........................d\n........................d\n........................d\n........................d\n........................d\n........................f\n........................f\n........................f\n........................f\n........................f\n1quq1...................g\n2wyw2...................g\neeeee...................g\n4rrr4...................g\n5t5t5...................g\n(11112222233333444445555)\n\nmessage OM NOM NOM\n",[0,0,3,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3],"background wall_white:0,0,0,0,0,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,background p1 pixel_white:2,background p2:3,background p3:4,background p4:5,background p5:6,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,2,3,4,5,6,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,background p1 pixel_eye:7,background p2 pixel_orange:8,background p3 pixel_white:9,background p4 pixel_blue:10,6,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,background p1 pixel_orange:11,background p2 pixel_mouth:12,9,10,background p5 pixel_blue:13,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,7,8,9,10,13,1,1,1,1,1,1,1,1,1,1,1,\nbackground wall_orange:14,14,14,14,14,14,14,14,14,14,0,0,0,0,0,background wall_blue:15,15,15,15,15,1,1,1,1,1,\n14,0,0,0,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,1,1,1,1,1,\n14,0,15,15,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,1,1,1,1,1,\n14,0,0,0,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,1,1,1,1,1,\n14,14,14,14,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,1,1,1,1,1,\n14,14,14,14,14,background mund wall_red:16,16,background mund wall_darkred:17,16,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,16,background mund wall_white:18,background mund wall_black:19,18,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,16,18,19,18,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,16,18,19,18,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,16,16,17,16,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,0,0,0,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,0,15,15,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,0,0,0,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\nbackground row_1 vr_1 wall_orange:20,background row_1 vr_2 wall_orange:21,background row_1 vr_3 wall_orange:22,background row_1 vr_4 wall_orange:23,background row_1 vr_5 wall_orange:24,background row_2 vr_1 wall_orange:25,background row_2 vr_2 wall_orange:26,background row_2 vr_3 wall_orange:27,background row_2 vr_4 wall_orange:28,background row_2 vr_5 wall_orange:29,background row_3 vr_1 wall_white:30,background row_3 vr_2 wall_white:31,background row_3 vr_3 wall_white:32,background row_3 vr_4 wall_white:33,background row_3 vr_5 wall_white:34,background row_4 vr_1 wall_blue:35,background row_4 vr_2 wall_blue:36,background row_4 vr_3 wall_blue:37,background row_4 vr_4 wall_blue:38,background row_4 vr_5 wall_blue:39,background row_5 vr_1 wall_blue:40,background row_5 vr_2 wall_blue:41,background row_5 vr_3 wall_blue:42,background row_5 vr_4 wall_blue:43,background row_5 vr_5 wall_blue:44,\n",1,"1627891749225.5503"] + "I SURE LOOK TASTY!", + ["title I SURE LOOK TASTY!\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nrun_rules_on_level_start\n\nverbose_logging\n========\nOBJECTS\n========\n\nBackground\nGREEN\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\np1\ngray \n.....\n.....\n..0..\n.....\n.....\n\np2\ngray \n.....\n.....\n..0..\n.....\n.....\n\np3\ngray \n.....\n.....\n..0..\n.....\n.....\n\np4\ngray \n.....\n.....\n..0..\n.....\n.....\n\np5\ngray \n.....\n.....\n..0..\n.....\n.....\n\n\n(\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.)\n\npixel_eye\norange white blue\n00000\n01110\n01210\n01210\n00000\n\n\npixel_orange \norange\n\npixel_white \nwhite\n\npixel_blue \nblue\n\npixel_mouth\norange red white darkred black\n01110\n12221\n34443\n12221\n01110\n\n\nwall_black \nblack\n\nwall_orange \norange\n\nwall_white \nwhite\n\nwall_blue \nblue\n\nwall_red\nred\n\nwall_darkred\ndarkred\n\nrow_1 a\nTRANSPARENT\n\nrow_2 s\nTRANSPARENT\n\nrow_3 d\nTRANSPARENT\n\nrow_4 f\nTRANSPARENT\n\nrow_5 g\nTRANSPARENT\n\nvr_1\nTRANSPARENT\n0....\n.....\n.....\n.....\n.....\n\nvr_2\nTRANSPARENT\n.0...\n.....\n.....\n.....\n.....\n\nvr_3\nTRANSPARENT\n..0..\n.....\n.....\n.....\n.....\n\nvr_4\nTRANSPARENT\n...0.\n.....\n.....\n.....\n.....\n\nvr_5\nTRANSPARENT\n....0\n.....\n.....\n.....\n.....\n\ndead\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\ngoal\ngray\n.....\n.....\n..0..\n.....\n.....\n\nquasigrenze\nTRANSPARENT\n\nmund\nTRANSPARENT\n\n=======\nLEGEND\n=======\n\n. = Background\n1 = p1\n2 = p2\n3 = p3\n4 = p4\n5 = p5\n\nO = Target\n\nb = goal \nn = goal and row_1\n\npixel = pixel_eye or pixel_white or pixel_orange or pixel_blue or pixel_mouth\n\nplayer = p1 or p2 or p3 or p4 or p5\n\nq = pixel_eye and p1\nw = pixel_orange and p2\ne = pixel_white and p3\nr = pixel_blue and p4\nt = pixel_blue and p5\ny = pixel_mouth and p2\nu = pixel_orange and p1\n\nrow = row_1 or row_2 or row_3 or row_4 or row_5\nwall = wall_black or wall_orange or wall_white or wall_blue or wall_red or wall_darkred\nobstacle = wall\n\nvr = vr_1 or vr_2 or vr_3 or vr_4 or vr_5\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nvr\nTarget\nWall\npixel\nPlayer\nrow\ngoal\ndead\nquasigrenze\nmund\n\n======\nRULES\n======\n\n\n[dead]->cancel\n\n[ > player pixel ] -> [ > player > pixel ]\n\n(\n[ moving player ] -> [ player ]\n\n[ player | player | player | player | player > pixel ] -> [ > player | > player | > player | > player | > player > pixel ]\n\n[ orthogonal player | stationary player ] -> [ orthogonal player | orthogonal player ]\n)\n\n\ndown [ row_1 | row_1 | row_1 | row_1 | row_1 ] -> [ row_1 vr_1 | row_1 vr_2 | row_1 vr_3 | row_1 vr_4 | row_1 vr_5 ]\ndown [ row_2 | row_2 | row_2 | row_2 | row_2 ] -> [ row_2 vr_1 | row_2 vr_2 | row_2 vr_3 | row_2 vr_4 | row_2 vr_5 ]\ndown [ row_3 | row_3 | row_3 | row_3 | row_3 ] -> [ row_3 vr_1 | row_3 vr_2 | row_3 vr_3 | row_3 vr_4 | row_3 vr_5 ]\ndown [ row_4 | row_4 | row_4 | row_4 | row_4 ] -> [ row_4 vr_1 | row_4 vr_2 | row_4 vr_3 | row_4 vr_4 | row_4 vr_5 ]\ndown [ row_5 | row_5 | row_5 | row_5 | row_5 ] -> [ row_5 vr_1 | row_5 vr_2 | row_5 vr_3 | row_5 vr_4 | row_5 vr_5 ]\n\n[ ^ player wall | ^ player wall | ^ player wall | ^ player wall | ^ player wall ] -> [ quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall ]\n\n[ > pixel | > pixel | > pixel | > pixel | > pixel | obstacle ] [ moving player ] -> [ > pixel | > pixel | > pixel | > pixel | > pixel | obstacle ] [ player ] \n\n[ > pixel | quasigrenze ] [ moving player ] -> [ > pixel | quasigrenze ] [ player ] \n[quasigrenze]->[]\n\n[ > pixel | wall ] -> [ stationary pixel | wall ]\n[ > pixel | stationary pixel ] -> [ stationary pixel | pixel ]\n\nlate [wall]->[]\nlate [mund]->[]\nlate [ pixel no player ] -> cancel\n\n\n\nlate right [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_1 ]\nlate right [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_2 ]\nlate right [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_3 ]\nlate right [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_4 ]\nlate right [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_5 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 vr_1 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 vr_1 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 vr_1 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 vr_1 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 vr_1 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_1 vr_2 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_2 vr_2 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_3 vr_2 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_4 vr_2 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_5 vr_2 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_1 vr_3 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_2 vr_3 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_3 vr_3 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_4 vr_3 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_5 vr_3 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_1 vr_4 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_2 vr_4 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_3 vr_4 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_4 vr_4 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_5 vr_4 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 vr_5 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 vr_5 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 vr_5 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 vr_5 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 vr_5 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_1 vr_1 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_2 vr_1 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_3 vr_1 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_4 vr_1 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_5 vr_1 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_1 vr_2 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_2 vr_2 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_3 vr_2 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_4 vr_2 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_5 vr_2 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_1 vr_3 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_2 vr_3 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_3 vr_3 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_4 vr_3 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_5 vr_3 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_1 vr_4 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_2 vr_4 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_3 vr_4 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_4 vr_4 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_5 vr_4 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_1 vr_5 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_2 vr_5 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_3 vr_5 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_4 vr_5 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_5 vr_5 ]\n\n\nlate [pixel mund ] -> [ mund ] \nlate [pixel wall]->[pixel wall dead]\n\n==============\nWINCONDITIONS\n==============\n\nno pixel\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n(11112222233333444445555)\n........................a\n........................a\n........................a\n........................a\n........................a\n........................s\n........................s\n........................s\n........................s\n........................s\n........................d\n........................d\n........................d\n........................d\n........................d\n........................f\n........................f\n........................f\n........................f\n........................f\n1quq1...................g\n2wyw2...................g\neeeee...................g\n4rrr4...................g\n5t5t5...................g\n(11112222233333444445555)\n\nmessage OM NOM NOM\n", [0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3], "background wall_white:0,0,0,0,0,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,background p1 pixel_white:2,background p2:3,background p3:4,background p4:5,background p5:6,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,2,3,4,5,6,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,background p1 pixel_eye:7,background p2 pixel_orange:8,background p3 pixel_white:9,background p4 pixel_blue:10,6,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,background p1 pixel_orange:11,background p2 pixel_mouth:12,9,10,background p5 pixel_blue:13,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,7,8,9,10,13,1,1,1,1,1,1,1,1,1,1,1,\nbackground wall_orange:14,14,14,14,14,14,14,14,14,14,0,0,0,0,0,background wall_blue:15,15,15,15,15,1,1,1,1,1,\n14,0,0,0,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,1,1,1,1,1,\n14,0,15,15,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,1,1,1,1,1,\n14,0,0,0,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,1,1,1,1,1,\n14,14,14,14,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,1,1,1,1,1,\n14,14,14,14,14,background mund wall_red:16,16,background mund wall_darkred:17,16,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,16,background mund wall_white:18,background mund wall_black:19,18,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,16,18,19,18,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,16,18,19,18,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,16,16,17,16,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,0,0,0,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,0,15,15,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,0,0,0,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\nbackground row_1 vr_1 wall_orange:20,background row_1 vr_2 wall_orange:21,background row_1 vr_3 wall_orange:22,background row_1 vr_4 wall_orange:23,background row_1 vr_5 wall_orange:24,background row_2 vr_1 wall_orange:25,background row_2 vr_2 wall_orange:26,background row_2 vr_3 wall_orange:27,background row_2 vr_4 wall_orange:28,background row_2 vr_5 wall_orange:29,background row_3 vr_1 wall_white:30,background row_3 vr_2 wall_white:31,background row_3 vr_3 wall_white:32,background row_3 vr_4 wall_white:33,background row_3 vr_5 wall_white:34,background row_4 vr_1 wall_blue:35,background row_4 vr_2 wall_blue:36,background row_4 vr_3 wall_blue:37,background row_4 vr_4 wall_blue:38,background row_4 vr_5 wall_blue:39,background row_5 vr_1 wall_blue:40,background row_5 vr_2 wall_blue:41,background row_5 vr_3 wall_blue:42,background row_5 vr_4 wall_blue:43,background row_5 vr_5 wall_blue:44,\n", 1, "1627891749225.5503"] ], [ - "Oh no I accidentally swallowed myself!", - ["title Oh no I accidentally swallowed myself!\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nverbose_logging\n\nbackground_color brown \n\n========\nOBJECTS\n========\n\nu\nblack\n\np\norange\n\no\nwhite\n\ni\nblue\n\ny \ndarkred\n\nt \nlightblue\n\nBackground\nbrown\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\np1\ngray \n.....\n.....\n..0..\n.....\n.....\n\np2\ngray \n.....\n.....\n..0..\n.....\n.....\n\np3\ngray \n.....\n.....\n..0..\n.....\n.....\n\np4\ngray \n.....\n.....\n..0..\n.....\n.....\n\np5\ngray \n.....\n.....\n..0..\n.....\n.....\n\n\n(\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.)\n\npixel_black \nblack\n\npixel_orange \norange\n\npixel_white \nwhite\n\npixel_blue \nblue\n\n\nwall_black \nDARKRED\n\nwall_orange \nDARKRED\n\nwall_white \nDARKRED\n\nwall_blue \nDARKRED\n\nrow_1 a\nTRANSPARENT\n\nrow_2 s\nTRANSPARENT\n\nrow_3 d\nTRANSPARENT\n\nrow_4 f\nTRANSPARENT\n\nrow_5 g\nTRANSPARENT\n\ndead\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\ngoal\nTRANSPARENT\n\ngoal_u\ngray\n00000\n.....\n.....\n.....\n.....\n\ngoal_d\ngray\n.....\n.....\n.....\n.....\n00000\n\ngoal_l\ngray\n0....\n0....\n0....\n0....\n0....\n\n\ngoal_r\ngray\n....0\n....0\n....0\n....0\n....0\n\n\nquasigrenze\nTRANSPARENT\n\noldplayer\ntransparent\n\nnewplayer\ntransparent\n\ndomove\nTRANSPARENT\n\ndontmove\nTRANSPARENT\n\ntemp\nTRANSPARENT\n\nm_up\nTRANSPARENT\n\nm_down\nTRANSPARENT\n\nm_left\nTRANSPARENT\n\nm_right\nTRANSPARENT\n\n=======\nLEGEND\n=======\n\n. = Background\n1 = p1\n2 = p2\n3 = p3\n4 = p4\n5 = p5\n\n, = Target\n\nb = goal \nn = goal and row_1\n\npixel = pixel_black or pixel_white or pixel_orange or pixel_blue\n\nplayer = p1 or p2 or p3 or p4 or p5\n\nq = pixel_black and p1\nw = pixel_orange and p2\ne = pixel_white and p3\nr = pixel_blue and p4\n; = pixel_blue and p5\n\nrow = row_1 or row_2 or row_3 or row_4 or row_5\nwall = wall_black or wall_orange or wall_white or wall_blue\nobstacle = wall\n\nm = m_up or m_down or m_left or m_right\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nWall\npixel\nPlayer\nrow\ngoal\ndead\nquasigrenze\noldplayer\nnewplayer\ndomove\ndontmove\ntemp\nm\ngoal_u\ngoal_d\ngoal_l\ngoal_r\np, o, i, u, y, t\n\n======\nRULES\n======\n\n\nup [ goal | no goal ] -> [ goal goal_u | ]\ndown [ goal | no goal ] -> [ goal goal_d | ]\nleft [ goal | no goal ] -> [ goal goal_l | ]\nright [ goal | no goal ] -> [ goal goal_r | ]\n\n[dead]->cancel\n\n[ > player pixel ] -> [ > player > pixel ]\n\n[ > player | > player | > player | > player | > player ] -> [ oldplayer > player | > player | > player | > player | > player ] \n\n[ > player | > player | > player | > player | > player | ] -> [ > player | > player | > player | > player | > player | newplayer] \n\n[ moving player ] -> [ player ]\n\n[ > pixel | no wall ] -> [ stationary pixel | ]\n[ > pixel | stationary pixel ] -> [ stationary pixel | pixel ]\n\n\n\n\nlate [ oldplayer pixel ] [ newplayer pixel ] -> cancel\n\n\nlate [ oldplayer pixel ] [ newplayer ]-> [ oldplayer pixel ] [ ]\n\n\nlate [ player | newplayer no player ] -> [ | player newplayer]\nlate [ player | no player | ... | newplayer ] -> [ | player | ... | newplayer ]\n\nlate [ oldplayer ] -> [ ]\nlate [ newplayer ] -> [ ]\n\nlate [ temp ] -> [ ]\nlate [ domove ] -> [ ]\nlate [wall]->[]\n\nlate right [ pixel_black 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_black 1 | 1 | 1 | 1 | 1 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_black 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_black 1 | 1 | 1 | 1 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_black 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_black 1 | 1 | 1 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_black 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_black 1 | 1 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_black 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_black 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_1 ]\nlate right [ pixel_black 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_black 2 | 2 | 2 | 2 | 2 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_black 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_black 2 | 2 | 2 | 2 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_black 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_black 2 | 2 | 2 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_black 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_black 2 | 2 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_black 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_black 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_2 ]\nlate right [ pixel_black 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_black 3 | 3 | 3 | 3 | 3 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_black 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_black 3 | 3 | 3 | 3 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_black 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_black 3 | 3 | 3 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_black 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_black 3 | 3 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_black 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_black 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_3 ]\nlate right [ pixel_black 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_black 4 | 4 | 4 | 4 | 4 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_black 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_black 4 | 4 | 4 | 4 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_black 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_black 4 | 4 | 4 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_black 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_black 4 | 4 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_black 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_black 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_4 ]\nlate right [ pixel_black 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_black 5 | 5 | 5 | 5 | 5 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_black 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_black 5 | 5 | 5 | 5 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_black 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_black 5 | 5 | 5 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_black 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_black 5 | 5 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_black 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_black 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_5 ]\n\n\nlate [pixel no wall]->[pixel dead]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nall pixel on goal\n\n=======\nLEVELS\n=======\n\n\nMessage Level 1 of 1\n\n(11112222233333444445555)\n........................a\n........................a\n........................a\n........................a\n........................a\n..........1qqq1.........s\n..........2www2.........s\n..........eeeee.........s\n..........4rrr4.........s\n..........5;5;5.........s\n........................d\n........................d\n........................d\n........................d\n........................d\n........................f\n..........bbbb..........f\n..........bbbb..........f\n..........bbbb..........f\n..........bbbb..........f\n........................g\n........................g\n........................g\n........................g\n........................g\n(11112222233333444445555)\n\n\ntttttttt\ntttttttt\ntttttttt\ntttttttt\nttuuuttt\nttpppttt\n\n\nttttttttttttt\nttttttttttttt\ntttttttuuuttt\ntttttttpppttt\nttttttooooott\ntttttttiipttt\ntttttttitittt\ntiiiiippppptt\ntiiiiippppptt\ntiiiiippppptt\ntiiiiippppptt\ntiiiiippppptt\n\ntttttttttttttttttttttttttti\nttttttttttttttttttttttttttp\ntttttttttttoooootuuuttttttp\ntttttttttttoooootpppttttttp\ntttttttttttooooooooootttttp\ntttttttttttoooootiipttttttp\ntttttttttttoooootitittttttp\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiiiiiiip\ntuuuuupppppoooooiiiiiiiiiip\ntuuuuupppppoooooiiiiiiiiiip\ntuuuuupppppoooooiiiiiiiiiip\ntuuuuupppppoooooiiiiiiiiiip\ntttttttttttooooottttttttttp\ntttttttttttooooottttttttttp\ntttttttttttooooottttttttttp\ntttttttttttooooottttttttttp\ntttttttttttooooottttttttttp\nooooooooooooooooooooooooooo\n\n\n\n",[2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,1,1,1,1,1,0,3,0,0,0,0,3,3,0,1,2,1,0,0,3,0,1,1],"background wall_black:0,0,0,0,0,background wall_orange:1,1,1,1,1,background wall_white:2,2,2,2,2,background wall_blue:3,3,3,3,3,2,2,2,2,2,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,2,2,2,2,2,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,2,2,2,2,2,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,2,2,2,2,2,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,background p1 pixel_black wall_blue:4,background p2 pixel_orange wall_blue:5,background p3 pixel_white wall_blue:6,background p4 pixel_blue wall_blue:7,background p5 pixel_white wall_blue:8,2,2,2,2,2,\nbackground:9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,background p1 wall_white:10,background p2 pixel_black wall_white:11,background p3 pixel_orange wall_white:12,background p4 pixel_white wall_white:13,background p5 pixel_blue wall_white:14,3,3,3,3,3,\n9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,background p1 pixel_black wall_white:15,background p2 pixel_orange wall_white:16,background p3 pixel_white wall_white:17,background p4 pixel_blue wall_white:18,14,3,3,3,3,3,\n9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,10,background p2 wall_white:19,background p3 wall_white:20,background p4 wall_white:21,14,3,3,3,3,3,\n9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,10,19,20,21,background p5 pixel_white wall_white:22,3,3,3,3,3,\n9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,background goal goal_l goal_u wall_blue:23,background goal goal_l wall_blue:24,24,background goal goal_d goal_l wall_blue:25,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,background goal goal_u wall_blue:26,background goal wall_blue:27,27,background goal goal_d wall_blue:28,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,26,27,27,28,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,background goal goal_r goal_u wall_blue:29,background goal goal_r wall_blue:30,30,background goal goal_d goal_r wall_blue:31,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,2,2,2,2,2,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,2,2,2,2,2,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,2,2,2,2,2,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,2,2,2,2,2,\nbackground row_1:32,32,32,32,32,background row_2:33,33,33,33,33,background row_3:34,34,34,34,34,background row_4:35,35,35,35,35,background row_5 wall_white:36,36,36,36,36,\n",1,"1627891767692.0078"] + "Oh no I accidentally swallowed myself!", + ["title Oh no I accidentally swallowed myself!\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nverbose_logging\n\nbackground_color brown \n\n========\nOBJECTS\n========\n\nu\nblack\n\np\norange\n\no\nwhite\n\ni\nblue\n\ny \ndarkred\n\nt \nlightblue\n\nBackground\nbrown\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\np1\ngray \n.....\n.....\n..0..\n.....\n.....\n\np2\ngray \n.....\n.....\n..0..\n.....\n.....\n\np3\ngray \n.....\n.....\n..0..\n.....\n.....\n\np4\ngray \n.....\n.....\n..0..\n.....\n.....\n\np5\ngray \n.....\n.....\n..0..\n.....\n.....\n\n\n(\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.)\n\npixel_black \nblack\n\npixel_orange \norange\n\npixel_white \nwhite\n\npixel_blue \nblue\n\n\nwall_black \nDARKRED\n\nwall_orange \nDARKRED\n\nwall_white \nDARKRED\n\nwall_blue \nDARKRED\n\nrow_1 a\nTRANSPARENT\n\nrow_2 s\nTRANSPARENT\n\nrow_3 d\nTRANSPARENT\n\nrow_4 f\nTRANSPARENT\n\nrow_5 g\nTRANSPARENT\n\ndead\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\ngoal\nTRANSPARENT\n\ngoal_u\ngray\n00000\n.....\n.....\n.....\n.....\n\ngoal_d\ngray\n.....\n.....\n.....\n.....\n00000\n\ngoal_l\ngray\n0....\n0....\n0....\n0....\n0....\n\n\ngoal_r\ngray\n....0\n....0\n....0\n....0\n....0\n\n\nquasigrenze\nTRANSPARENT\n\noldplayer\ntransparent\n\nnewplayer\ntransparent\n\ndomove\nTRANSPARENT\n\ndontmove\nTRANSPARENT\n\ntemp\nTRANSPARENT\n\nm_up\nTRANSPARENT\n\nm_down\nTRANSPARENT\n\nm_left\nTRANSPARENT\n\nm_right\nTRANSPARENT\n\n=======\nLEGEND\n=======\n\n. = Background\n1 = p1\n2 = p2\n3 = p3\n4 = p4\n5 = p5\n\n, = Target\n\nb = goal \nn = goal and row_1\n\npixel = pixel_black or pixel_white or pixel_orange or pixel_blue\n\nplayer = p1 or p2 or p3 or p4 or p5\n\nq = pixel_black and p1\nw = pixel_orange and p2\ne = pixel_white and p3\nr = pixel_blue and p4\n; = pixel_blue and p5\n\nrow = row_1 or row_2 or row_3 or row_4 or row_5\nwall = wall_black or wall_orange or wall_white or wall_blue\nobstacle = wall\n\nm = m_up or m_down or m_left or m_right\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nWall\npixel\nPlayer\nrow\ngoal\ndead\nquasigrenze\noldplayer\nnewplayer\ndomove\ndontmove\ntemp\nm\ngoal_u\ngoal_d\ngoal_l\ngoal_r\np, o, i, u, y, t\n\n======\nRULES\n======\n\n\nup [ goal | no goal ] -> [ goal goal_u | ]\ndown [ goal | no goal ] -> [ goal goal_d | ]\nleft [ goal | no goal ] -> [ goal goal_l | ]\nright [ goal | no goal ] -> [ goal goal_r | ]\n\n[dead]->cancel\n\n[ > player pixel ] -> [ > player > pixel ]\n\n[ > player | > player | > player | > player | > player ] -> [ oldplayer > player | > player | > player | > player | > player ] \n\n[ > player | > player | > player | > player | > player | ] -> [ > player | > player | > player | > player | > player | newplayer] \n\n[ moving player ] -> [ player ]\n\n[ > pixel | no wall ] -> [ stationary pixel | ]\n[ > pixel | stationary pixel ] -> [ stationary pixel | pixel ]\n\n\n\n\nlate [ oldplayer pixel ] [ newplayer pixel ] -> cancel\n\n\nlate [ oldplayer pixel ] [ newplayer ]-> [ oldplayer pixel ] [ ]\n\n\nlate [ player | newplayer no player ] -> [ | player newplayer]\nlate [ player | no player | ... | newplayer ] -> [ | player | ... | newplayer ]\n\nlate [ oldplayer ] -> [ ]\nlate [ newplayer ] -> [ ]\n\nlate [ temp ] -> [ ]\nlate [ domove ] -> [ ]\nlate [wall]->[]\n\nlate right [ pixel_black 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_black 1 | 1 | 1 | 1 | 1 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_black 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_black 1 | 1 | 1 | 1 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_black 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_black 1 | 1 | 1 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_black 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_black 1 | 1 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_black 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_black 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_1 ]\nlate right [ pixel_black 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_black 2 | 2 | 2 | 2 | 2 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_black 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_black 2 | 2 | 2 | 2 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_black 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_black 2 | 2 | 2 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_black 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_black 2 | 2 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_black 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_black 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_2 ]\nlate right [ pixel_black 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_black 3 | 3 | 3 | 3 | 3 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_black 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_black 3 | 3 | 3 | 3 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_black 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_black 3 | 3 | 3 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_black 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_black 3 | 3 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_black 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_black 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_3 ]\nlate right [ pixel_black 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_black 4 | 4 | 4 | 4 | 4 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_black 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_black 4 | 4 | 4 | 4 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_black 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_black 4 | 4 | 4 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_black 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_black 4 | 4 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_black 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_black 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_4 ]\nlate right [ pixel_black 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_black 5 | 5 | 5 | 5 | 5 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_black 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_black 5 | 5 | 5 | 5 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_black 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_black 5 | 5 | 5 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_black 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_black 5 | 5 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_black 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_black 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_5 ]\n\n\nlate [pixel no wall]->[pixel dead]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nall pixel on goal\n\n=======\nLEVELS\n=======\n\n\nMessage Level 1 of 1\n\n(11112222233333444445555)\n........................a\n........................a\n........................a\n........................a\n........................a\n..........1qqq1.........s\n..........2www2.........s\n..........eeeee.........s\n..........4rrr4.........s\n..........5;5;5.........s\n........................d\n........................d\n........................d\n........................d\n........................d\n........................f\n..........bbbb..........f\n..........bbbb..........f\n..........bbbb..........f\n..........bbbb..........f\n........................g\n........................g\n........................g\n........................g\n........................g\n(11112222233333444445555)\n\n\ntttttttt\ntttttttt\ntttttttt\ntttttttt\nttuuuttt\nttpppttt\n\n\nttttttttttttt\nttttttttttttt\ntttttttuuuttt\ntttttttpppttt\nttttttooooott\ntttttttiipttt\ntttttttitittt\ntiiiiippppptt\ntiiiiippppptt\ntiiiiippppptt\ntiiiiippppptt\ntiiiiippppptt\n\ntttttttttttttttttttttttttti\nttttttttttttttttttttttttttp\ntttttttttttoooootuuuttttttp\ntttttttttttoooootpppttttttp\ntttttttttttooooooooootttttp\ntttttttttttoooootiipttttttp\ntttttttttttoooootitittttttp\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiiiiiiip\ntuuuuupppppoooooiiiiiiiiiip\ntuuuuupppppoooooiiiiiiiiiip\ntuuuuupppppoooooiiiiiiiiiip\ntuuuuupppppoooooiiiiiiiiiip\ntttttttttttooooottttttttttp\ntttttttttttooooottttttttttp\ntttttttttttooooottttttttttp\ntttttttttttooooottttttttttp\ntttttttttttooooottttttttttp\nooooooooooooooooooooooooooo\n\n\n\n", [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 0, 3, 0, 0, 0, 0, 3, 3, 0, 1, 2, 1, 0, 0, 3, 0, 1, 1], "background wall_black:0,0,0,0,0,background wall_orange:1,1,1,1,1,background wall_white:2,2,2,2,2,background wall_blue:3,3,3,3,3,2,2,2,2,2,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,2,2,2,2,2,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,2,2,2,2,2,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,2,2,2,2,2,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,background p1 pixel_black wall_blue:4,background p2 pixel_orange wall_blue:5,background p3 pixel_white wall_blue:6,background p4 pixel_blue wall_blue:7,background p5 pixel_white wall_blue:8,2,2,2,2,2,\nbackground:9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,background p1 wall_white:10,background p2 pixel_black wall_white:11,background p3 pixel_orange wall_white:12,background p4 pixel_white wall_white:13,background p5 pixel_blue wall_white:14,3,3,3,3,3,\n9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,background p1 pixel_black wall_white:15,background p2 pixel_orange wall_white:16,background p3 pixel_white wall_white:17,background p4 pixel_blue wall_white:18,14,3,3,3,3,3,\n9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,10,background p2 wall_white:19,background p3 wall_white:20,background p4 wall_white:21,14,3,3,3,3,3,\n9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,10,19,20,21,background p5 pixel_white wall_white:22,3,3,3,3,3,\n9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,background goal goal_l goal_u wall_blue:23,background goal goal_l wall_blue:24,24,background goal goal_d goal_l wall_blue:25,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,background goal goal_u wall_blue:26,background goal wall_blue:27,27,background goal goal_d wall_blue:28,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,26,27,27,28,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,background goal goal_r goal_u wall_blue:29,background goal goal_r wall_blue:30,30,background goal goal_d goal_r wall_blue:31,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,2,2,2,2,2,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,2,2,2,2,2,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,2,2,2,2,2,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,2,2,2,2,2,\nbackground row_1:32,32,32,32,32,background row_2:33,33,33,33,33,background row_3:34,34,34,34,34,background row_4:35,35,35,35,35,background row_5 wall_white:36,36,36,36,36,\n", 1, "1627891767692.0078"] ], [ - "A cliche for bedtime", - ["title A cliche for bedtime\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nbackground_color darkblue\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\n\nTarget\npink\n.....\n.....\n..0..\n.....\n.....\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\ngray\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nCrate\n#ff00ff\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n.................\n.@.*.o@o.@*@.@@@.\n.@.*.@.@.o*o.@...\n.@**.@*@.o*o.@@@.\n.@.*.@.@.o*o.@...\n.@o@.@o@..@..@@@.\np................\n\n\n\n\n\n",[0,0,3,3,3,0,1,0,0,0,3,3,0,3,3,3,2,2,1,0,3,3,3,3],"background:0,0,0,0,0,0,0,0,background target:1,background crate target:2,2,1,2,0,0,background crate:3,3,\n3,3,1,0,3,0,0,3,3,2,0,0,0,0,0,0,0,\n0,0,1,2,2,2,2,0,0,1,0,3,0,1,0,0,background player target:4,\n2,2,2,2,0,0,3,0,0,0,0,0,0,2,1,1,1,\n0,0,0,3,3,3,3,2,0,0,2,1,1,1,0,0,0,\n0,0,0,0,0,0,0,2,2,2,2,2,0,0,2,0,2,\n0,2,0,0,2,0,2,0,2,0,0,0,0,0,0,0,0,\n",1,"1627891782371.159"] + "A cliche for bedtime", + ["title A cliche for bedtime\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nbackground_color darkblue\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\n\nTarget\npink\n.....\n.....\n..0..\n.....\n.....\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\ngray\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nCrate\n#ff00ff\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n.................\n.@.*.o@o.@*@.@@@.\n.@.*.@.@.o*o.@...\n.@**.@*@.o*o.@@@.\n.@.*.@.@.o*o.@...\n.@o@.@o@..@..@@@.\np................\n\n\n\n\n\n", [0, 0, 3, 3, 3, 0, 1, 0, 0, 0, 3, 3, 0, 3, 3, 3, 2, 2, 1, 0, 3, 3, 3, 3], "background:0,0,0,0,0,0,0,0,background target:1,background crate target:2,2,1,2,0,0,background crate:3,3,\n3,3,1,0,3,0,0,3,3,2,0,0,0,0,0,0,0,\n0,0,1,2,2,2,2,0,0,1,0,3,0,1,0,0,background player target:4,\n2,2,2,2,0,0,3,0,0,0,0,0,0,2,1,1,1,\n0,0,0,3,3,3,3,2,0,0,2,1,1,1,0,0,0,\n0,0,0,0,0,0,0,2,2,2,2,2,0,0,2,0,2,\n0,2,0,0,2,0,2,0,2,0,0,0,0,0,0,0,0,\n", 1, "1627891782371.159"] ], [ - "no heroes necessary", - ["title no heroes necessary\nauthor Stephen Lavelle\nhomepage www.increpare.com\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\nblack\n\nPlayer\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n, = wall\n# = 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[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate | crate ] -> [ > crate | > crate ]\n\n[ > player | wall ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 5\n\n,,,,,,,,,,,,,,,,,,,,\n,..................,\n,..................,\n,..................,\n,..................,\n,......####........,\n,......#.O#........,\n,......#..###......,\n,......#@...#......,\n,......#..*.#......,\n,......#..###......,\n,......####........,\n,..................,\n,..................,\n,..................,\n,..................,\n,,,,,,,,,,,,,,,,,,,,\n\nmessage Level 2 von 5\n\n,,,,,,,,,,,,,,,,,,,,,,,,\n,......................,\n,......................,\n,......................,\n,......................,\n,......................,\n,.....######.#####.....,\n,.....#....###...#.....,\n,.....#.**.....#.#.....,\n,.....#.*.#ooo...#.....,\n,.....#...########.....,\n,.....#####............,\n,......................,\n,......................,\n,......................,\n,......................,\n,......................,\n,,,,,,,,,,,,,,,,,,,,,,,,\n\nmessage Level 3 von 5\n\n,,,,,,,,,,,,,,,,,,,,\n,..................,\n,..................,\n,..................,\n,..................,\n,..................,\n,....#########.....,\n,....#.....#.#.....,\n,....#.#*..#.#.....,\n,....#.**....#.....,\n,....#.......#.....,\n,....#.O.O.O.#.....,\n,....#.......#.....,\n,....#########.....,\n,..................,\n,..................,\n,..................,\n,..................,\n,..................,\n,,,,,,,,,,,,,,,,,,,,\n\nmessage Level 4 von 5\n\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,............#####..........,\n,............#o..#..........,\n,............#o#.#..........,\n,......#######o#.#..........,\n,......#.*.*.*...#..........,\n,......#.#.#.#.###..........,\n,......#.......#............,\n,......#########............,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n\n\n\nmessage Level 5 von 5\n\n\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,.......#############.......,\n,.......#...#...#...#.......,\n,.......#...#***#...#.......,\n,.......#...#...#...#.......,\n,.......##.###.###.##.......,\n,.......#...#...#...#.......,\n,.......#.o...o...o.#.......,\n,.......#...#...#...#.......,\n,.......#############.......,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n\nmessage You really are strong, independent levels - you don't need a hero to solve your problems for you.\n\n",[0,0,1,1,1,1,2,2,3,3,3,3,3,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,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,background player:2,\n2,2,2,2,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,2,1,1,background crate:3,2,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,1,1,1,1,1,\n1,1,0,0,1,1,1,1,1,1,1,1,1,2,1,1,3,2,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,2,1,2,1,2,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,\n1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,2,2,2,background player target:4,background target:5,\n4,1,2,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,\n1,1,1,1,1,1,0,0,1,1,1,1,1,1,2,1,2,2,1,2,2,2,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,2,1,1,1,3,2,1,1,1,1,1,1,1,1,1,1,0,0,1,1,\n1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,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",7,"1627891794816.7026"] + "no heroes necessary", + ["title no heroes necessary\nauthor Stephen Lavelle\nhomepage www.increpare.com\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\nblack\n\nPlayer\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n, = wall\n# = 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[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate | crate ] -> [ > crate | > crate ]\n\n[ > player | wall ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 5\n\n,,,,,,,,,,,,,,,,,,,,\n,..................,\n,..................,\n,..................,\n,..................,\n,......####........,\n,......#.O#........,\n,......#..###......,\n,......#@...#......,\n,......#..*.#......,\n,......#..###......,\n,......####........,\n,..................,\n,..................,\n,..................,\n,..................,\n,,,,,,,,,,,,,,,,,,,,\n\nmessage Level 2 von 5\n\n,,,,,,,,,,,,,,,,,,,,,,,,\n,......................,\n,......................,\n,......................,\n,......................,\n,......................,\n,.....######.#####.....,\n,.....#....###...#.....,\n,.....#.**.....#.#.....,\n,.....#.*.#ooo...#.....,\n,.....#...########.....,\n,.....#####............,\n,......................,\n,......................,\n,......................,\n,......................,\n,......................,\n,,,,,,,,,,,,,,,,,,,,,,,,\n\nmessage Level 3 von 5\n\n,,,,,,,,,,,,,,,,,,,,\n,..................,\n,..................,\n,..................,\n,..................,\n,..................,\n,....#########.....,\n,....#.....#.#.....,\n,....#.#*..#.#.....,\n,....#.**....#.....,\n,....#.......#.....,\n,....#.O.O.O.#.....,\n,....#.......#.....,\n,....#########.....,\n,..................,\n,..................,\n,..................,\n,..................,\n,..................,\n,,,,,,,,,,,,,,,,,,,,\n\nmessage Level 4 von 5\n\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,............#####..........,\n,............#o..#..........,\n,............#o#.#..........,\n,......#######o#.#..........,\n,......#.*.*.*...#..........,\n,......#.#.#.#.###..........,\n,......#.......#............,\n,......#########............,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n\n\n\nmessage Level 5 von 5\n\n\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,.......#############.......,\n,.......#...#...#...#.......,\n,.......#...#***#...#.......,\n,.......#...#...#...#.......,\n,.......##.###.###.##.......,\n,.......#...#...#...#.......,\n,.......#.o...o...o.#.......,\n,.......#...#...#...#.......,\n,.......#############.......,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n\nmessage You really are strong, independent levels - you don't need a hero to solve your problems for you.\n\n", [0, 0, 1, 1, 1, 1, 2, 2, 3, 3, 3, 3, 3, 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,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,background player:2,\n2,2,2,2,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,2,1,1,background crate:3,2,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,1,1,1,1,1,\n1,1,0,0,1,1,1,1,1,1,1,1,1,2,1,1,3,2,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,2,1,2,1,2,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,\n1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,2,2,2,background player target:4,background target:5,\n4,1,2,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,\n1,1,1,1,1,1,0,0,1,1,1,1,1,1,2,1,2,2,1,2,2,2,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,2,1,1,1,3,2,1,1,1,1,1,1,1,1,1,1,0,0,1,1,\n1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,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", 7, "1627891794816.7026"] ], [ - "Sokogoban", - ["title Sokogoban\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nbackground_color DARKGREEN\ntext_color yellow\n\n========\nOBJECTS\n========\n\nBackground\nlightbrown DARKBROWN\n00000\n00000\n00100\n00000\n00000\n\nbg_up\nDARKBROWN\n..0..\n..0..\n.....\n.....\n.....\nbg_down\nDARKBROWN\n.....\n.....\n.....\n..0..\n..0..\n\nbg_left\nDARKBROWN\n.....\n.....\n00...\n.....\n.....\n\nbg_right\nDARKBROWN\n.....\n.....\n...00\n.....\n.....\n\n\nowall\nbrown lightbrown\n00000\n00000\n00000\n00000\n00000\n\nawall\nlightbrown\n\n\n\nPlayer\nBlack yellow lightgreen green blue\n.004.\n.111.\n12221\n13331\n.222.\n\nwhite\nwhite TRANSPARENT TRANSPARENT\n.....\n.000.\n00000\n10001\n.121.\n\nblack\nblack TRANSPARENT TRANSPARENT\n.....\n.000.\n00000\n10001\n.121.\n\nlid_white_0 \ndarkbrown black\n.....\n.000.\n00000\n.000.\n.....\n\nlid_white_1 \ndarkbrown black\n.....\n.000.\n01000\n.000.\n.....\n\nlid_white_2\ndarkbrown black\n.....\n.000.\n01010\n.000.\n.....\n\nlid_white_3\ndarkbrown black\n.....\n.000.\n01110\n.000.\n.....\n\n\nlid_white_4\ndarkbrown black\n.....\n.010.\n01110\n.000.\n.....\n\n\nlid_black_0\ndarkbrown white\n.....\n.000.\n00000\n.000.\n.....\n\n\nlid_black_1\ndarkbrown white\n.....\n.000.\n01000\n.000.\n.....\n\n\nlid_black_2\ndarkbrown white\n.....\n.000.\n01010\n.000.\n.....\n\n\nlid_black_3\ndarkbrown white\n.....\n.000.\n01110\n.000.\n.....\n\n\nlid_black_4\ndarkbrown white\n.....\n.010.\n01110\n.000.\n.....\n\nbowl_white \ndarkbrown white\n.....\n.000.\n01110\n00000\n.000.\n\nbowl_black \ndarkbrown black\n.....\n.000.\n01110\n00000\n.000.\n\nfill_whitesave\nTRANSPARENT\n\nfill_blacksave\nTRANSPARENT\n\n\nb_4\nblack\n...0.\n..00.\n.0.0.\n00000\n...0.\n\n\nb_3\nblack\n.000.\n...0.\n.000.\n...0.\n.000.\n\n\n\nb_2\nblack\n.000.\n...0.\n.000.\n.0...\n.000.\n\n\nb_1\nblack\n..0..\n.00..\n..0..\n..0..\n.000.\n\n\nb_0\nblack\n.000.\n.0.0.\n.0.0.\n.0.0.\n.000.\n\n\nw_4\nblack\n...0.\n..00.\n.0.0.\n00000\n...0.\n\n\nw_3\nblack\n.000.\n...0.\n.000.\n...0.\n.000.\n\n\n\nw_2\nblack\n.000.\n...0.\n.000.\n.0...\n.000.\n\n\nw_1\nblack\n..0..\n.00..\n..0..\n..0..\n.000.\n\n\nw_0\nblack\n.000.\n.0.0.\n.0.0.\n.0.0.\n.000.\n\n=======\nLEGEND\n=======\n\n. = Background\n# = aWall\nP = Player\n* = white\n@ = black\n, = owall\n\nv = bowl_white and owall\nb = bowl_black and owall\n\nn = lid_white_0 and owall\nm = lid_black_0 and owall\n\n\nj = lid_white_1 and owall\nk = lid_black_1 and owall\n\n\nu = lid_white_2 and owall\ni = lid_black_2 and owall\n\n\n7 = lid_white_3 and owall\n8 = lid_black_3 and owall\n\n\n\n9 = lid_white_4 and owall\n0 = lid_black_4 and owall\n\nbgs = bg_up or bg_down or bg_left or bg_right\nwall = awall or owall\nstone = white or black\n\nfill = fill_whitesave or fill_blacksave\n\nlid_white = lid_white_0 or lid_white_1 or lid_white_2 or lid_white_3 or lid_white_4 \nlid_black = lid_black_0 or lid_black_1 or lid_black_2 or lid_black_3 or lid_black_4\n\nw_nums = w_0 or w_1 or w_2 or w_3 or w_4\nb_nums = b_0 or b_1 or b_2 or b_3 or b_4\n\nnums = b_nums or w_nums\n\n=======\nSOUNDS\n=======\n\nstone MOVE 36772507\nblack destroy 87391700\nwhite destroy 59027500\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbg_up\nbg_down\nbg_left\nbg_right\nPlayer, Wall, stone\nbowl_white,bowl_black, lid_white,lid_black\nfill_whitesave\nfill_blacksave\nnums\n\n======\nRULES\n======\n\n[bgs]->[]\n\ndown [ no wall | no wall ] -> [ bg_down | bg_up ]\nright [ no wall | no wall ] -> [ bg_right | bg_left ]\n\n[ > Player | stone ] -> [ > Player | > stone ]\n\nlate [ no stone no wall ] -> [ fill_whitesave fill_blacksave ]\n\nlate [ fill_whitesave | no black no wall ] -> [ fill_whitesave | fill_whitesave ]\n\nlate [ fill_blacksave | no white no wall ] -> [ fill_blacksave | fill_blacksave ]\n\nlate [ black no fill_blacksave ] [ lid_white_3 ] -> [ ] [ lid_white_4 ] win\n\nlate [ black no fill_blacksave ] [ lid_white_2 ] -> [ ] [ lid_white_3 ] \n+ late [ black no fill_blacksave ] [ lid_white_1 ] -> [ ] [ lid_white_2 ]\n+ late [ black no fill_blacksave ] [ lid_white_0 ] -> [ ] [ lid_white_1 ]\n\nlate [ black no fill_blacksave ] -> [ ]\n\n\nlate [ white no fill_whitesave ] [ lid_black_3 ] -> [ ] [ lid_black_4 ] \nlate [ white no fill_whitesave ] [ lid_black_2 ] -> [ ] [ lid_black_3 ] \n+ late [ white no fill_whitesave ] [ lid_black_1 ] -> [ ] [ lid_black_2 ]\n+ late [ white no fill_whitesave ] [ lid_black_0 ] -> [ ] [ lid_black_1 ]\n\nlate [ white no fill_whitesave ] -> [ ]\n\n\nlate [ fill ] -> []\n\n\nlate [ lid_black_4 ] [ lid_white_4 ] [ player ] -> [ lid_black_4 ] [ lid_white_4 ] [ ] message It's a draw!\nlate [ lid_black_4 ] [ player ] -> [ lid_black_3 ] [ ] message Oh no you lost :(\n\nlate [nums] -> []\nlate up [lid_white_0|] -> [lid_white_0|w_4]\nlate up [lid_white_1|] -> [lid_white_1|w_3]\nlate up [lid_white_2|] -> [lid_white_2|w_2]\nlate up [lid_white_3|] -> [lid_white_3|w_1]\nlate up [lid_white_4|] -> [lid_white_4|w_0]\n\n(\nlate down [lid_black_0|] -> [lid_black_0|b_4]\nlate down [lid_black_1|] -> [lid_black_1|b_3]\nlate down [lid_black_2|] -> [lid_black_2|b_2]\nlate down [lid_black_3|] -> [lid_black_3|b_1]\nlate down [lid_black_4|] -> [lid_black_4|b_0]\n)\n==============\nWINCONDITIONS\n==============\n\nno black\n\n=======\nLEVELS\n=======\n\nmessage Surround enemy stones with yours to capture them. \n\nmessage Level 1 of 3 : Capture one final black tile to win!\n\nb,,,,,\ni....,\n,.,p.,\n,.@*.,\n,..*.,\n,....7\n,,,,,v\n\nmessage Level 2 of 3 : Capture three black tiles to win!\n\nb,,,,,,,,\nk,.....,,\n,@.@@@.@,\n,@.....@,\n,@.***.@,\n,@..p..@j\n,,,,,,,,v\n\nmessage Level 3 of 3 : Capture four black tiles\n\nb,,,,,,,,\nm.......,\n,.......,\n,..*@@.*,\n,.*@*...,\n,..@....,\n,.....p.,\n,.......n\n,,,,,,,,v\n\n\nmessage You are a true Sokogoban master!\n",[0,0,2,1,3,0,1,0,1,1,1,0,3,0,3,3,2,1,2,2,0,0,3,3,2,2,3,3,2,2,2,1,1,1,0],"background bowl_black owall:0,background lid_black_1 owall:1,background owall:2,2,2,2,2,2,2,\nbackground bg_down bg_right black:3,background bg_down bg_right bg_up black:4,4,background bg_right bg_up black:5,2,2,background bg_down bg_right:6,background bg_down bg_left bg_right bg_up:7,7,\nbackground bg_down bg_left bg_right bg_up white:8,background bg_left bg_right bg_up:9,2,2,background bg_down bg_left bg_right:10,7,background bg_down bg_left bg_right bg_up black:11,background bg_down bg_left bg_right bg_up player:12,9,\n2,2,10,11,8,7,9,2,2,\n10,7,11,8,9,2,2,background bg_down bg_left:13,7,\n7,7,9,2,2,2,background bg_down bg_left black:14,background bg_down bg_left bg_up black:15,15,\nbackground bg_left bg_up black:16,2,2,2,2,2,background owall w_3:17,background lid_white_1 owall:18,background bowl_white owall:19,\n",4,"1627891805914.7593"] + "Sokogoban", + ["title Sokogoban\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nbackground_color DARKGREEN\ntext_color yellow\n\n========\nOBJECTS\n========\n\nBackground\nlightbrown DARKBROWN\n00000\n00000\n00100\n00000\n00000\n\nbg_up\nDARKBROWN\n..0..\n..0..\n.....\n.....\n.....\nbg_down\nDARKBROWN\n.....\n.....\n.....\n..0..\n..0..\n\nbg_left\nDARKBROWN\n.....\n.....\n00...\n.....\n.....\n\nbg_right\nDARKBROWN\n.....\n.....\n...00\n.....\n.....\n\n\nowall\nbrown lightbrown\n00000\n00000\n00000\n00000\n00000\n\nawall\nlightbrown\n\n\n\nPlayer\nBlack yellow lightgreen green blue\n.004.\n.111.\n12221\n13331\n.222.\n\nwhite\nwhite TRANSPARENT TRANSPARENT\n.....\n.000.\n00000\n10001\n.121.\n\nblack\nblack TRANSPARENT TRANSPARENT\n.....\n.000.\n00000\n10001\n.121.\n\nlid_white_0 \ndarkbrown black\n.....\n.000.\n00000\n.000.\n.....\n\nlid_white_1 \ndarkbrown black\n.....\n.000.\n01000\n.000.\n.....\n\nlid_white_2\ndarkbrown black\n.....\n.000.\n01010\n.000.\n.....\n\nlid_white_3\ndarkbrown black\n.....\n.000.\n01110\n.000.\n.....\n\n\nlid_white_4\ndarkbrown black\n.....\n.010.\n01110\n.000.\n.....\n\n\nlid_black_0\ndarkbrown white\n.....\n.000.\n00000\n.000.\n.....\n\n\nlid_black_1\ndarkbrown white\n.....\n.000.\n01000\n.000.\n.....\n\n\nlid_black_2\ndarkbrown white\n.....\n.000.\n01010\n.000.\n.....\n\n\nlid_black_3\ndarkbrown white\n.....\n.000.\n01110\n.000.\n.....\n\n\nlid_black_4\ndarkbrown white\n.....\n.010.\n01110\n.000.\n.....\n\nbowl_white \ndarkbrown white\n.....\n.000.\n01110\n00000\n.000.\n\nbowl_black \ndarkbrown black\n.....\n.000.\n01110\n00000\n.000.\n\nfill_whitesave\nTRANSPARENT\n\nfill_blacksave\nTRANSPARENT\n\n\nb_4\nblack\n...0.\n..00.\n.0.0.\n00000\n...0.\n\n\nb_3\nblack\n.000.\n...0.\n.000.\n...0.\n.000.\n\n\n\nb_2\nblack\n.000.\n...0.\n.000.\n.0...\n.000.\n\n\nb_1\nblack\n..0..\n.00..\n..0..\n..0..\n.000.\n\n\nb_0\nblack\n.000.\n.0.0.\n.0.0.\n.0.0.\n.000.\n\n\nw_4\nblack\n...0.\n..00.\n.0.0.\n00000\n...0.\n\n\nw_3\nblack\n.000.\n...0.\n.000.\n...0.\n.000.\n\n\n\nw_2\nblack\n.000.\n...0.\n.000.\n.0...\n.000.\n\n\nw_1\nblack\n..0..\n.00..\n..0..\n..0..\n.000.\n\n\nw_0\nblack\n.000.\n.0.0.\n.0.0.\n.0.0.\n.000.\n\n=======\nLEGEND\n=======\n\n. = Background\n# = aWall\nP = Player\n* = white\n@ = black\n, = owall\n\nv = bowl_white and owall\nb = bowl_black and owall\n\nn = lid_white_0 and owall\nm = lid_black_0 and owall\n\n\nj = lid_white_1 and owall\nk = lid_black_1 and owall\n\n\nu = lid_white_2 and owall\ni = lid_black_2 and owall\n\n\n7 = lid_white_3 and owall\n8 = lid_black_3 and owall\n\n\n\n9 = lid_white_4 and owall\n0 = lid_black_4 and owall\n\nbgs = bg_up or bg_down or bg_left or bg_right\nwall = awall or owall\nstone = white or black\n\nfill = fill_whitesave or fill_blacksave\n\nlid_white = lid_white_0 or lid_white_1 or lid_white_2 or lid_white_3 or lid_white_4 \nlid_black = lid_black_0 or lid_black_1 or lid_black_2 or lid_black_3 or lid_black_4\n\nw_nums = w_0 or w_1 or w_2 or w_3 or w_4\nb_nums = b_0 or b_1 or b_2 or b_3 or b_4\n\nnums = b_nums or w_nums\n\n=======\nSOUNDS\n=======\n\nstone MOVE 36772507\nblack destroy 87391700\nwhite destroy 59027500\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbg_up\nbg_down\nbg_left\nbg_right\nPlayer, Wall, stone\nbowl_white,bowl_black, lid_white,lid_black\nfill_whitesave\nfill_blacksave\nnums\n\n======\nRULES\n======\n\n[bgs]->[]\n\ndown [ no wall | no wall ] -> [ bg_down | bg_up ]\nright [ no wall | no wall ] -> [ bg_right | bg_left ]\n\n[ > Player | stone ] -> [ > Player | > stone ]\n\nlate [ no stone no wall ] -> [ fill_whitesave fill_blacksave ]\n\nlate [ fill_whitesave | no black no wall ] -> [ fill_whitesave | fill_whitesave ]\n\nlate [ fill_blacksave | no white no wall ] -> [ fill_blacksave | fill_blacksave ]\n\nlate [ black no fill_blacksave ] [ lid_white_3 ] -> [ ] [ lid_white_4 ] win\n\nlate [ black no fill_blacksave ] [ lid_white_2 ] -> [ ] [ lid_white_3 ] \n+ late [ black no fill_blacksave ] [ lid_white_1 ] -> [ ] [ lid_white_2 ]\n+ late [ black no fill_blacksave ] [ lid_white_0 ] -> [ ] [ lid_white_1 ]\n\nlate [ black no fill_blacksave ] -> [ ]\n\n\nlate [ white no fill_whitesave ] [ lid_black_3 ] -> [ ] [ lid_black_4 ] \nlate [ white no fill_whitesave ] [ lid_black_2 ] -> [ ] [ lid_black_3 ] \n+ late [ white no fill_whitesave ] [ lid_black_1 ] -> [ ] [ lid_black_2 ]\n+ late [ white no fill_whitesave ] [ lid_black_0 ] -> [ ] [ lid_black_1 ]\n\nlate [ white no fill_whitesave ] -> [ ]\n\n\nlate [ fill ] -> []\n\n\nlate [ lid_black_4 ] [ lid_white_4 ] [ player ] -> [ lid_black_4 ] [ lid_white_4 ] [ ] message It's a draw!\nlate [ lid_black_4 ] [ player ] -> [ lid_black_3 ] [ ] message Oh no you lost :(\n\nlate [nums] -> []\nlate up [lid_white_0|] -> [lid_white_0|w_4]\nlate up [lid_white_1|] -> [lid_white_1|w_3]\nlate up [lid_white_2|] -> [lid_white_2|w_2]\nlate up [lid_white_3|] -> [lid_white_3|w_1]\nlate up [lid_white_4|] -> [lid_white_4|w_0]\n\n(\nlate down [lid_black_0|] -> [lid_black_0|b_4]\nlate down [lid_black_1|] -> [lid_black_1|b_3]\nlate down [lid_black_2|] -> [lid_black_2|b_2]\nlate down [lid_black_3|] -> [lid_black_3|b_1]\nlate down [lid_black_4|] -> [lid_black_4|b_0]\n)\n==============\nWINCONDITIONS\n==============\n\nno black\n\n=======\nLEVELS\n=======\n\nmessage Surround enemy stones with yours to capture them. \n\nmessage Level 1 of 3 : Capture one final black tile to win!\n\nb,,,,,\ni....,\n,.,p.,\n,.@*.,\n,..*.,\n,....7\n,,,,,v\n\nmessage Level 2 of 3 : Capture three black tiles to win!\n\nb,,,,,,,,\nk,.....,,\n,@.@@@.@,\n,@.....@,\n,@.***.@,\n,@..p..@j\n,,,,,,,,v\n\nmessage Level 3 of 3 : Capture four black tiles\n\nb,,,,,,,,\nm.......,\n,.......,\n,..*@@.*,\n,.*@*...,\n,..@....,\n,.....p.,\n,.......n\n,,,,,,,,v\n\n\nmessage You are a true Sokogoban master!\n", [0, 0, 2, 1, 3, 0, 1, 0, 1, 1, 1, 0, 3, 0, 3, 3, 2, 1, 2, 2, 0, 0, 3, 3, 2, 2, 3, 3, 2, 2, 2, 1, 1, 1, 0], "background bowl_black owall:0,background lid_black_1 owall:1,background owall:2,2,2,2,2,2,2,\nbackground bg_down bg_right black:3,background bg_down bg_right bg_up black:4,4,background bg_right bg_up black:5,2,2,background bg_down bg_right:6,background bg_down bg_left bg_right bg_up:7,7,\nbackground bg_down bg_left bg_right bg_up white:8,background bg_left bg_right bg_up:9,2,2,background bg_down bg_left bg_right:10,7,background bg_down bg_left bg_right bg_up black:11,background bg_down bg_left bg_right bg_up player:12,9,\n2,2,10,11,8,7,9,2,2,\n10,7,11,8,9,2,2,background bg_down bg_left:13,7,\n7,7,9,2,2,2,background bg_down bg_left black:14,background bg_down bg_left bg_up black:15,15,\nbackground bg_left bg_up black:16,2,2,2,2,2,background owall w_3:17,background lid_white_1 owall:18,background bowl_white owall:19,\n", 4, "1627891805914.7593"] ], [ - "SHY SNAKE", - ["title SHY SNAKE\nauthor Daniel Freer and increpare\nhomepage www.puzzlescript.net\nnorepeat_action\nrun_rules_on_level_start\n\nbackground_color #524c67 \ntext_color #8fff70\n\n\nnoaction\n\n========\nOBJECTS\n========\n\n\n\nSprite_R_LB\n#5b6e6d #ddff7d #8fff70 #73ce86 #383d41 \n.0000\n02222\n23043\n33443\n33333\n\nSprite_R_LF\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n.....\n000..\n1110.\n22234\n22234\n\nSprite_L_RF\n#5b6e6d #8fff70 #ddff7d #73ce86 \n.....\n..000\n.0111\n01333\n01333\n\nSprite_L_RB\n#5b6e6d #8fff70 #73ce86 #383d41 #689887 \n0000.\n11110\n20324\n23322\n22222\n\nSprite_U_LF\n#5b6e6d #ddff7d #8fff70 #73ce86 \n...00\n..012\n.0233\n.0233\n.0233\n\nSprite_U_RF\n#5b6e6d #8fff70 #73ce86 #383d41 #689887 \n00...\n123..\n2243.\n2243.\n2243.\n\nSprite_R_RB\n#73ce86 #5b6e6d #383d41 #689887 \n00000\n00120\n10220\n23333\n.2222\n\nSprite_R_RF\n#73ce86 #689887 #383d41 #5b6e6d \n00012\n00012\n1112.\n222..\n.....\n\nSprite_D_RB\n#5b6e6d #8fff70 #73ce86 #ddff7d #383d41 \n.0122\n03222\n01042\n01442\n01222\n\nSprite_D_LB\n#73ce86 #689887 #383d41 #5b6e6d \n0012.\n00012\n03212\n02212\n00012\n\nSprite_L_LF\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n01222\n02222\n.4333\n..444\n.....\n\nSprite_L_LB\n#73ce86 #5b6e6d #383d41 #689887 \n00000\n01200\n02201\n33332\n2222.\n\nSprite_U_LB\n#5b6e6d #8fff70 #73ce86 #575d67 #383d41 #689887 \n01222\n01342\n01442\n01222\n.0522\n\nSprite_U_RB\n#73ce86 #689887 #383d41 #575d67 #5b6e6d \n00012\n03212\n02212\n00012\n0042.\n\nSprite_D_RF\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n.0122\n.0122\n.0122\n..023\n...44\n\nSprite_D_LF\n#73ce86 #689887 #383d41 #5b6e6d \n0012.\n0012.\n0012.\n132..\n22...\n\nBODY\nTRANSPARENT\n\nEND_R_R\n#5b6e6d #8fff70 #73ce86 #383d41 \n.....\n.....\n00...\n1100.\n22123\n\nEND_L_L\n#5b6e6d #8fff70 #ddff7d #73ce86 \n.....\n.....\n...00\n.0011\n02133\n\nEND_D_L\n#5b6e6d #8fff70 #73ce86 #383d41 \n..012\n..012\n...01\n...02\n....3\n\nEND_D_R\n#73ce86 #689887 #383d41 #5b6e6d \n012..\n012..\n12...\n32...\n2....\n\n\n\n\nEND_R_L\n#73ce86 #689887 #5b6e6d #383d41 \n00123\n1133.\n33...\n.....\n.....\n\nEND_L_R\n#5b6e6d #73ce86 #689887 #383d41 \n01211\n.3322\n...33\n.....\n.....\n\nEND_U_L\n#5b6e6d #ddff7d #8fff70 #73ce86 \n....0\n...01\n...02\n..023\n..023\n\nEND_U_R\n#5b6e6d #73ce86 #383d41 #689887 \n0....\n12...\n32...\n132..\n132..\n\n\n\n\n\nPlayer\ngreen\n.....\n.....\n..0..\n.....\n.....\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\ntemp\ntransparent\n\n\n\ncon_u\nwhite\n..0..\n..0..\n.....\n.....\n.....\n\ncon_d\nwhite\n.....\n.....\n.....\n..0..\n..0..\n\ncon_l\nwhite\n.....\n.....\n00...\n.....\n.....\n\ncon_r\nwhite\n.....\n.....\n...00\n.....\n.....\n\nend_t\nTRANSPARENT\n\n\nbody_dr\n#5b6e6d #ddff7d #8fff70 #73ce86 \n.....\n...00\n..012\n.0133\n.0233\n\nbody_dlr\n#5b6e6d #8fff70 #73ce86 \n00000\n11111\n22222\n22222\n22222\n\nbody_dl\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n.....\n00...\n110..\n2234.\n2234.\n\nbody_udr\n#5b6e6d #8fff70 #73ce86 \n01222\n01222\n01222\n01222\n01222\n\nbody_ur\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n.0122\n.0122\n..033\n...44\n.....\n\nbody_ulr\n#73ce86 #689887 #383d41 \n00000\n00000\n00000\n11111\n22222\n\nbody_ul\n#73ce86 #689887 #383d41 \n0012.\n0012.\n112..\n22...\n.....\n\n\n\nbody_udl\n#73ce86 #689887 #383d41 \n00012\n00012\n00012\n00012\n00012\n\nbody_udlr\n#73ce86\n\nbody_inner_ul\n#73ce86 #689887 #383d41 \n00000\n00000\n00000\n00001\n00012\n\nbody_inner_ur\n#73ce86 #689887 #383d41 #8fff70 #5b6e6d \n00000\n00000\n00000\n10000\n43000\n\nbody_inner_dl\n#73ce86 #689887 #383d41 #5b6e6d #8fff70 \n00012\n00004\n00000\n00000\n00000\n\nbody_inner_dr\n#5b6e6d #8fff70 #73ce86 \n01222\n12222\n22222\n22222\n22222\n\n\n\n\n\n\n\n\n\nbackground\n#896359 #6b4949 #896359 #6b4949 #b77e63\n01110\n11100\n10110\n11112\n00200\n\n\n\nbackground_light\nLIGHTGRAY\n\nbackground_dark\ngray\n\non_background\nDARKGRAY\n\nbackground_border_up\n#b77e63 #896359 #6b4949 \n01111\n.....\n.....\n.....\n.....\n\n\nbackground_border_left\n#b77e63 #896359 #6b4949 \n0....\n1....\n1....\n1....\n1....\n\nbackground_border_right\n#896359 #6b4949 #b77e63 \n....0\n....0\n....0\n....2\n....0\n\nbackground_border_down\n#b77e63 #6b4949 #896359 \n.....\n.....\n.....\n.....\n22022\n\n\n\n\n\nWall\n#524c67 #524c67 \n00100\n00100\n11111\n00100\n00100\n\n\n\nWall_light\n#868998 #575d67\n00100\n00100\n11111\n00100\n00100\n\n\nwall_border_b\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n00100\n11111\n12222\n13333\n44444\n\nwall_border_r\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n01234\n01234\n11234\n01234\n01114\n\nwall_border_l\n#383d41 #575d67 #868998 #fffee9 #e2e0e8 \n01112\n03412\n03411\n03412\n03412\n\nwall_border_t\n#383d41 #fffee9 #575d67 #e2e0e8 #868998 \n00000\n11112\n33332\n22222\n44244\n\n\nwall_bright_u\ntransparent\n\nwall_bright_d\ntransparent\n\nwall_bright_l\ntransparent\n\nwall_bright_r\ntransparent\n\n\nwall_end_u\ntransparent\n\nwall_end_d\ntransparent\n\nwall_end_l\ntransparent\n\nwall_end_r\ntransparent\n\n\n\nSprite_0_0\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n00100\n01111\n11222\n01233\n01114\n\nSprite_1_0\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n00100\n11111\n12222\n13333\n44444\n\nSprite_2_0\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 #fffee9 \n00100\n11110\n12311\n13310\n45310\n\nSprite_3_0\n#383d41 #fffee9 #575d67 #e2e0e8 #868998 \n00000\n01112\n01332\n01322\n01324\n\nSprite_4_0\n#383d41 #fffee9 #e2e0e8 #bbbbce #575d67 #868998 \n00000\n11120\n22320\n44320\n54440\n\nSprite_5_0\n#524c67 #383d41 \n00100\n00100\n11111\n00100\n00100\n\nSprite_6_0\n#383d41 #fffee9 #e2e0e8 #bbbbce \n00000\n01120\n01320\n01320\n01220\n\nSprite_0_1\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n01234\n01234\n11234\n01234\n01114\n\nSprite_2_1\n#383d41 #575d67 #868998 #fffee9 #e2e0e8 \n01112\n03412\n03411\n03412\n03412\n\nSprite_3_1\n#383d41 #575d67 #868998 #fffee9 #e2e0e8 #bbbbce \n01112\n03411\n03455\n04444\n00000\n\nSprite_4_1\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n01234\n11234\n12234\n13334\n44444\n\nSprite_5_1\n#383d41 #fffee9 #e2e0e8 #bbbbce \n00000\n01120\n01320\n02220\n00000\n\nSprite_6_1\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n01110\n02230\n02430\n02430\n02330\n\nSprite_0_2\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n01234\n01231\n11331\n01111\n00100\n\nSprite_1_2\n#383d41 #fffee9 #575d67 #e2e0e8 #868998 \n00000\n11112\n33332\n22222\n44244\n\nSprite_2_2\n#383d41 #575d67 #868998 #fffee9 #e2e0e8 \n01112\n33412\n44411\n11112\n22122\n\nSprite_3_2\n#383d41 #fffee9 #575d67 #bbbbce #e2e0e8 \n00000\n01112\n01342\n04442\n00000\n\nSprite_4_2\n#383d41 #fffee9 #575d67 #bbbbce #e2e0e8 \n00000\n11112\n13342\n44442\n00000\n\nSprite_5_2\n#383d41 #fffee9 #e2e0e8 #bbbbce \n00000\n11120\n13320\n22220\n00000\n\nSprite_6_2\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n01110\n02230\n02430\n03330\n00000\n\n\nsprite_DL\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n.....\n.....\n44...\n334..\n134..\n\n\nsprite_DR\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n.....\n.....\n...44\n..433\n..431\n\nsprite_UL\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n134..\n334..\n44...\n.....\n.....\n\nsprite_UR\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n..431\n..433\n...44\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\nt = background\n\nobstacle = wall or body or player\n\nend = END_R_R or END_R_L or END_L_L or END_L_R or END_U_L or END_U_R or END_D_L or END_D_R\n\nhead = SPRITE_u_LB or SPRITE_u_LF or SPRITE_u_RB or SPRITE_u_RF or SPRITE_d_LB or SPRITE_d_LF or SPRITE_d_RB or SPRITE_d_RF or SPRITE_l_LB or SPRITE_l_LF or SPRITE_l_RB or SPRITE_l_RF or SPRITE_R_LB or SPRITE_R_LF or SPRITE_R_RB or SPRITE_R_RF \n\nbody_dec = body_ul or body_ur or body_dl or body_dr or body_dlr or body_udr or body_ulr or body_udl or body_udlr\n\nbody_inner = body_inner_ul or body_inner_ur or body_inner_dl or body_inner_dr\n\ncosmetics = head or end or body_dec or body_inner\n\ndir = con_u or con_d or con_l or con_r\ndir_h = con_l or con_r\ndir_v = con_u or con_d\nwall_border = wall_border_b or wall_border_t or wall_border_l or wall_border_r\n\nbackground_border = background_border_up or background_border_down or background_border_left or background_border_right\n\ntile= background_light or background_dark\n\n=======\nSOUNDS\n=======\n\nendlevel 29774302\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbackground_border_up\nbackground_border_left\nbackground_border_right\nbackground_border_down\nbackground_dark,background_light\non_background\nPlayer, Wall, Crate, body\ntemp\ncon_u\ncon_d\ncon_l\ncon_r\nend_t\nbody_dec\nbody_inner\nhead\nend\nwall_light\nwall_border_t\nwall_border_b\nwall_border_l\nwall_border_r\n\nwall_bright_u\nwall_bright_d\nwall_bright_l\nwall_bright_r\n\nwall_end_u\nwall_end_d\nwall_end_l\nwall_end_r\n\nSprite_0_0, sprite_1_0, sprite_2_0, sprite_3_0, sprite_4_0, sprite_5_0, sprite_6_0, Sprite_0_1, Sprite_2_1, Sprite_3_1, Sprite_4_1, Sprite_5_1, Sprite_6_1, Sprite_0_2, Sprite_1_2, Sprite_2_2, Sprite_3_2, Sprite_4_2, Sprite_5_2, Sprite_6_2, sprite_ul, sprite_ur, sprite_dl, sprite_dr\n\n======\nRULES\n======\n\n[wall | no wall] -> [wall Wall_light | ]\n\nup [wall | no wall] -> [wall | background_border_down ]\ndown [wall | no wall] -> [wall | background_border_up ]\nleft [wall | no wall] -> [wall | background_border_right ]\nright [wall | no wall] -> [wall | background_border_left ]\n\nup [ wall | no wall ] -> [wall wall_end_u | ]\ndown [ wall | no wall ] -> [wall wall_end_d | ]\nleft [ wall | no wall ] -> [wall wall_end_l | ]\nright [ wall | no wall ] -> [wall wall_end_r | ]\n\nup [ wall | Wall_light ] -> [ wall wall_bright_u | Wall_light ]\ndown [ wall | Wall_light ] -> [ wall wall_bright_d | Wall_light ]\nleft [ wall | Wall_light ] -> [ wall wall_bright_l | Wall_light ]\nright [ wall | Wall_light ] -> [ wall wall_bright_r | Wall_light ]\n\n[ wall_end_u ] -> [ wall_end_u sprite_1_2 ]\n[ wall_end_d ] -> [ wall_end_d sprite_1_0 ]\n[ wall_end_l ] -> [ wall_end_l sprite_2_1 ]\n[ wall_end_r ] -> [ wall_end_r sprite_0_1 ]\n\n\n[ wall_end_u wall_end_r ] -> [ wall_end_u wall_end_r sprite_4_0 ]\n[ wall_end_u wall_end_d ] -> [ wall_end_u wall_end_d sprite_4_2 ]\n[ wall_end_u wall_end_l ] -> [ wall_end_u wall_end_l sprite_3_0 ]\n\n[ wall_end_r wall_end_d ] -> [ wall_end_r wall_end_d sprite_4_1 ]\n[ wall_end_r wall_end_l ] -> [ wall_end_r wall_end_l sprite_6_1 ]\n\n[ wall_end_d wall_end_l ] -> [ wall_end_d wall_end_l sprite_3_1 ]\n\n\n[ wall_end_d wall_end_l wall_end_r ] -> [ wall_end_d wall_end_l wall_end_r sprite_6_2]\n[ wall_end_u wall_end_l wall_end_r ] -> [ wall_end_u wall_end_l wall_end_r sprite_6_0]\n[ wall_end_u wall_end_d wall_end_r ] -> [ wall_end_u wall_end_d wall_end_r sprite_5_2]\n[ wall_end_u wall_end_d wall_end_l ] -> [ wall_end_u wall_end_d wall_end_l sprite_3_2]\n\n[ no wall_light wall_bright_u wall_bright_r ] -> [ sprite_ur wall_bright_u wall_bright_r ]\n[ no wall_light wall_bright_u wall_bright_l ] -> [ sprite_ul wall_bright_u wall_bright_l ]\n[ no wall_light wall_bright_d wall_bright_r ] -> [ sprite_dr wall_bright_d wall_bright_r ]\n[ no wall_light wall_bright_d wall_bright_l ] -> [ sprite_dl wall_bright_d wall_bright_l ]\n\n\nup [ sprite_ur | no wall_end_r ] -> [ | ]\nright [ sprite_ur | no wall_end_u ] -> [ | ]\n\n\nup [ sprite_ul | no wall_end_l ] -> [ | ]\nleft [ sprite_ul | no wall_end_u ] -> [ | ]\n\ndown [ sprite_dr | no wall_end_r ] -> [ | ]\nright [ sprite_dr | no wall_end_d ] -> [ | ]\n\ndown [ sprite_dl | no wall_end_l ] -> [ | ]\nleft [ sprite_dl | no wall_end_d ] -> [ | ]\n\n\n[ wall_end_u wall_end_d wall_end_l wall_end_r ] -> [ wall_end_u wall_end_d wall_end_l wall_end_r sprite_5_1 ]\n\n[ > player | > player | obstacle ] -> cancel\n\nup [ > player | > player | no obstacle] -> [ body con_u | con_d con_u player | player ]\ndown [ > player | > player | no obstacle] -> [ body con_d | con_u con_d player | player ]\nleft [ > player | > player | no obstacle] -> [ body con_l | con_r con_l player | player ]\nright [ > player | > player | no obstacle] -> [ body con_r | con_l con_r player | player ]\n\n\nlate [temp]->[]\nlate [ no player no wall no obstacle ]->[temp]\n\n\n\nlate right [player | player ] -> [ player con_r | player con_l ]\nlate down [player | player ] -> [ player con_d | player con_u ]\n\n\nlate [ player background con_u con_r no tile] -> [ player background con_u con_r background_light]\nlate [ background_light | no tile ] -> [ background_light | background_dark ]\n+ late [background_dark | no tile ] -> [ background_dark | background_light ]\n\nlate [cosmetics]->[]\n\n\nlate [ body con_u con_l ] -> [ body con_u con_l body_ul ]\nlate [ body con_u con_r ] -> [ body con_u con_r body_ur ]\nlate [ body con_d con_l ] -> [ body con_d con_l body_dl ]\nlate [ body con_d con_r ] -> [ body con_d con_r body_dr ]\n\nlate [ body con_u con_d con_l ] -> [ body con_u con_d con_l body_udl ]\nlate [ body con_u con_d con_r ] -> [ body con_u con_d con_r body_udr ]\nlate [ body con_u con_l con_r ] -> [ body con_u con_l con_r body_ulr ]\nlate [ body con_d con_l con_r ] -> [ body con_d con_l con_r body_dlr ]\n\nlate [ body con_u con_d con_l con_r ] -> [ body con_u con_d con_l con_r body_udlr]\n\n(\nlate [ player con_d con_r ] -> [ player con_d con_r sprite_u_lf ]\nlate [ player con_u con_r ] -> [ player con_u con_r sprite_u_lb ]\nlate [ player con_d con_l ] -> [ player con_d con_l sprite_u_rf ]\nlate [ player con_u con_l ] -> [ player con_u con_l sprite_u_rb ]\n)\n\n\nlate [ player con_d con_r ] -> [ player con_d con_r body_dr ]\nlate [ player con_u con_r ] -> [ player con_u con_r body_ur ]\nlate [ player con_d con_l ] -> [ player con_d con_l body_dl ]\nlate [ player con_u con_l ] -> [ player con_u con_l body_ul ]\n\n\nlate down [ player con_r no con_l | player con_r con_d ] -> [ player con_R no body_dec | player con_r con_d no body_dec]\nlate down [ player con_l no con_r | player con_l con_d ] -> [ player con_l no body_dec | player con_l con_d no body_dec]\n\nlate right [ player con_d no con_u | player con_d con_r ] -> [ player con_d no body_dec | player con_d con_r no body_dec ]\nlate right [ player con_u no con_d | player con_u con_r ] -> [ player con_u no body_dec | player con_u con_r no body_dec ]\n\nlate left [ player con_d no con_u | player con_d con_l ] -> [ player con_d no body_dec | player con_d con_l no body_dec]\nlate left [ player con_u no con_d | player con_u con_l ] -> [ player con_u no body_dec | player con_u con_l no body_dec]\n\nlate up [ player con_l no con_r | player con_l con_u ] -> [ player con_l no body_dec | player con_l con_u no body_dec ]\nlate up [ player con_r no con_l | player con_r con_u ] -> [ player con_r no body_dec | player con_r con_u no body_dec ]\n\n\n\n\n\nlate down [ player con_r no con_l | player con_r con_d ] -> [ player con_R sprite_u_lf | player con_r con_d sprite_u_lb]\nlate down [ player con_l no con_r | player con_l con_d ] -> [ player con_l sprite_u_rf | player con_l con_d sprite_u_rb]\n\nlate right [ player con_d no con_u | player con_d con_r ] -> [ player con_d sprite_l_rf | player con_d con_r sprite_l_rb ]\nlate right [ player con_u no con_d | player con_u con_r ] -> [ player con_u sprite_l_lf | player con_u con_r sprite_l_lb ]\n\nlate left [ player con_d no con_u | player con_d con_l ] -> [ player con_d sprite_r_lf | player con_d con_l sprite_r_lb]\nlate left [ player con_u no con_d | player con_u con_l ] -> [ player con_u sprite_r_rf | player con_u con_l sprite_r_rb]\n\nlate up [ player con_l no con_r | player con_l con_u ] -> [ player con_l sprite_d_lf | player con_l con_u sprite_d_lb ]\nlate up [ player con_r no con_l | player con_r con_u ] -> [ player con_r sprite_d_rf | player con_r con_u sprite_d_rb ]\n\n\nlate right [ no con_d con_r | body_udlr ] -> [ con_r | body_inner_ur ]\nlate left [ no con_d con_l | body_udlr ] -> [ con_l | body_inner_ul ]\n\n\nlate right [ no con_u con_r | body_udlr ] -> [ con_r | body_inner_dr ]\nlate left [ no con_u con_l | body_udlr ] -> [ con_l | body_inner_dl ]\n\n\nlate up [ no con_r con_u | body_udlr ] -> [ con_u | body_inner_ul ]\nlate up [ no con_l con_u | body_udlr ] -> [ con_u | body_inner_ur ]\n\nlate down [ no con_r con_d | body_udlr ] -> [ con_d | body_inner_dl ]\nlate down [ no con_l con_d | body_udlr ] -> [ con_d | body_inner_dr ]\n\n\nlate right [ player con_r con_u con_d con_l ] ->[ player con_r con_u con_d con_l body_udlr ]\n\nlate [ player ] -> [ player on_background]\n\n(\n[ action player ] [ no wall no obstacle ] -> [ action player ] [wall]\n[ action player ] [ body ] -> [action player ] [ ]\n[ action player ]->[player]\n)\n\n==============\nWINCONDITIONS\n==============\nno temp\n\n=======\nLEVELS\n=======\n\n\nmessage 1 of 3 - If you are EVERYWHERE, nobody else can be ANYWHERE.\n\n(easy)\n##########\n#........#\n#........#\n#..##....#\n#........#\n#..pp....#\n#..pp##..#\n#........#\n#........#\n##########\n\nmessage 2 of 3 - Sometimes I just need my own space.\n(simple but ok?)\n\n##########################\n####.......#.........#####\n##.........#.........#####\n#......................###\n#........................#\n#..#....###..#..#..##....#\n#..#....###..#..#..#pp...#\n#..#....###..#..#..#pp...#\n#..###..###...##...##....#\n#........................#\n#........................#\n####.....................#\n####.....................#\n#######................###\n########..............####\n##########################\n\n\n\nmessage Level 3 of 3 - It's a real relief to be alone.\n\n(basically OK)\n##################\n#########.....####\n#########.....####\n#########..#..####\n#..........#..####\n#..........#..####\n#..####..........#\n#................#\n#........#..###..#\n#........#.......#\n#........#.......#\n###pp..#......####\n###pp..#......####\n###....#..##..####\n###...........####\n#.............####\n#........#..######\n#..##....#..######\n#...........######\n#...........######\n##################\n\nmessage Help! Somebody help! I'm stuck! \n(\n(insoluble)\n###################\n#.....#############\n#.....#############\n#.....#############\n#.....#############\n#.....#############\n#........##########\n#........##########\n#........##########\n#...........#######\n#...........#######\n#...........#######\n#..............####\n#..............####\n#pp............####\n#pp............####\n###################\n\n##########\n#..#######\n#....#####\n#....#####\n#....#####\n#....#####\n#......###\n#......pp#\n#......pp#\n##########\n\n\n##########\n#..#######\n#....#####\n#......###\n#........#\n#........#\n#........#\n#......pp#\n#......pp#\n##########\n\n##############################\n#................#############\n#................#############\n#................#############\n#...................##########\n#...................##########\n#...................##########\n#......................#######\n#...............pp.....#######\n#...............pp.....#######\n#.........................####\n#.........................####\n#.........................####\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n\n##############################\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#...........pp...............#\n#...........pp...............#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n################\n#..#############\n#....###########\n#......#########\n#........#######\n#..........#####\n#............###\n#............pp#\n#............pp#\n################\n\n(too easy)\n############\n#.....######\n#.....######\n#.....######\n#.....######\n#......#####\n#..........#\n#..........#\n#..........#\n#..........#\n#pp........#\n#pp........#\n############\n\n\n\n############\n#.....######\n#.....######\n#.....######\n#.....######\n#.....######\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#pp........#\n#pp........#\n############\n\n#################\n#.....###########\n#.....###########\n#.....###########\n#.....###########\n#.....###########\n#..........######\n#..........######\n#..........######\n#..........######\n#..........######\n#...............#\n#...............#\n#...............#\n#........pp.....#\n#........pp.....#\n#################\n\n#############\n#....########\n#....########\n#....########\n#....########\n#....########\n#.......#####\n#.......#####\n#.......#####\n#.......#####\n#.......#####\n#...........#\n#...........#\n#...........#\n#.......pp..#\n#.......pp..#\n#############\n\n\n\n(solvable + boring)\n#############\n#....########\n#....########\n#....########\n#....########\n#....########\n#.......#####\n#.......#####\n#.......#####\n#.......#####\n#.......#####\n#...........#\n#...........#\n#...........#\n#.....pp....#\n#.....pp....#\n#############\n\n(too easy)\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##################.....#######\n##################.....#######\n############........#.....####\n############........#.....####\n############..##......##..####\n############..............####\n############......##......####\n##############..#.......######\n##############..#.......######\n##############.....##...######\n##############..........######\n################pp#....#######\n################pp#..#########\n################.....#########\n################.....#########\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n\n\n\n\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##########.......#############\n#########........#############\n#########pp......#############\n#########pp#.....#############\n#######.....#....#############\n#######..........#############\n#######..#.......#############\n#######...#......#############\n#######..........#############\n##.....#.....#################\n##..........##################\n##..#.......##################\n##...#......##################\n##..........##################\n###.....######################\n##############################\n##############################\n##############################\n\n\n(bit too easy)\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##########.......#############\n#########........#############\n#########pp......#############\n#########pp#.....#############\n#######.....#....#############\n#######..........#############\n#######..#.......#############\n#######...#......#############\n#######..........#############\n##.....#.....#################\n##..........##################\n##..#.......##################\n##...#......##################\n##..........##################\n###.....######################\n##############################\n##############################\n##############################\n\n##############################\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#.........pp.................#\n#.........pp.................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n########################\n###..................###\n###..................###\n##....................##\n##....................##\n#......................#\n#......................#\n#..#..#..#....#..#..#..#\n#..#..#..#....#..#..#..#\n#......................#\n#......................#\n##....................##\n##....................##\n###...........pp.....###\n###...........pp.....###\n########################\n\n##############################\n#######.............##########\n#######.............##########\n######..............##########\n######..............##########\n######..............##########\n######..............##########\n######..............##########\n######.......pp.....##########\n####........#pp#....##########\n####........####....##########\n####................##########\n####................##########\n####................##########\n####................##########\n##############################\n\n(meh ok for level 1?)\n##################\n####.............#\n####.............#\n###..............#\n###..............#\n###..............#\n###..............#\n###..............#\n###.......pp.....#\n#........#pp#....#\n#........####....#\n#................#\n#................#\n#................#\n#................#\n##################\n\n(meh)\n##############################\n######......##################\n######......##################\n####....##........############\n####....##........############\n####..##......##..############\n####..##......##..############\n####......##....pp############\n####......##....pp############\n########....##..##############\n########....##..##############\n########..##....##############\n########..##....##############\n########......################\n########......################\n##############################\n\n\n\n(boring)\n##############################\n##################.....#######\n############..............####\n############........#.....####\n############..##......##..####\n############..##......##..####\n##########........##..pp..####\n########..........##..pp..####\n########....#....#....########\n########..##..........########\n########..##........##########\n########......################\n########......################\n##############################\n\n(boring)\n##############################\n########............##########\n########............##########\n########..##....##..##########\n########..##....##..##########\n########pp..........##########\n########pp..........##########\n##############################\n\n(boring)\n##############################\n##########......##......######\n##########..............######\n##########pp##......##..######\n##########pp##......##..######\n##########..............######\n##########......##......######\n##########......##......######\n##########..............######\n##########..##......##..######\n##########..##......##..######\n##########..............######\n##########......##......######\n##############################\n\n################\n#####.......####\n###...........##\n###....###....##\n###...........##\n###...........##\n###....###....##\n#..............#\n#..............#\n#..###....###..#\n#..............#\n#..............#\n##....####....##\n##............##\n##............##\n##............##\n##............##\n######....######\n######....######\n######..pp######\n######..pp######\n################\n\n############################\n#..........................#\n#..........................#\n#..........................#\n#..........................#\n#....#....###..#..#..##....#\n#....#....###..#pp#..#.....#\n#....#....###..#pp#..#.....#\n#....###..###...##...##....#\n#..........................#\n#..........................#\n#..........................#\n#..........................#\n#..........................#\n############################\n\n############################\n#######.................####\n#######.................####\n####....................####\n##.......................###\n#..........................#\n#..........................#\n#..........................#\n#..........................#\n#....#....###..#..#..##....#\n#....#....###..#pp#..#.....#\n#....#....###..#pp#..#.....#\n#....###..###...##...##....#\n#..........................#\n#........................###\n#......................#####\n#.....................######\n####............############\n####............############\n#######.........############\n############################\n\n(ok!)\n\n\n\n\n##############################.....\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#.........#.....####..#####..####..\n#.........#........#....#....#.....\n#.........#........#....#....#.....\n#.........####..####....#....####..\n#.........#pp#..#..#....#....#.....\n#.........#pp#..#..#....#....#.....\n#.........#..#..#..#....#....####..\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n##############################.....\n\n\n##############################\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#....#####..#..#..#....#.....#\n#....#......#..#..#....#.....#\n#....#......#..#..#....#.....#\n#....#......#..#..#....#.....#\n#....#......#..#..#....#.....#\n#....#####..####..######.....#\n#........#..#pp#.......#.....#\n#........#..#pp#.......#.....#\n#........#..#..#.......#.....#\n#........#..#..#.......#.....#\n#....#####..#..#..######.....#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n###########################\n######.........############\n######.........############\n#...................#######\n#...................#######\n#.........................#\n#.........................#\n#....#####..#..#..#....#..#\n#....#......#..#..#....#..#\n#....#......#..#..#....#..#\n#....#......#pp#..#....#..#\n#....#......#pp#..#....#..#\n#....#####..####..######..#\n#........#..#..#.......#..#\n#........#..#..#.......#..#\n#........#..#..#.......#..#\n#........#..#..#.......#..#\n#....#####..#..#..######..#\n#.........................#\n#........#................#\n#...................#######\n#...................#######\n#..................########\n#..................########\n###########################\n\n\n##############################...\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#.........#####...#....#...#...#.\n#.........#.......#....#...#...#.\n#.........#.......#....#...#...#.\n#.........#.......#....#...#...#.\n#.........#.......#....#...#...#.\n#.........#####...######...#####.\n#...........pp#...#....#.......#.\n#...........pp#...#....#.......#.\n#.............#...#....#.......#.\n#.............#...#....#.......#.\n#.........#####...#....#...#####.\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n##############################...\n\n##############################\n#............................#\n#............................#\n#............................#\n#............................#\n#....pp......................#\n#....pp......................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n##############################\n######.....###################\n#####.......#.....############\n#####...#..........###########\n#####..###.....#...###########\n#####...#.....###..###########\n#####..........#...pp#########\n######.....#.......pp.########\n#####.....###.....#...########\n####.......#.....###..########\n####...#..........#...########\n####..###.....#.......########\n####...#......##.....#########\n####..........################\n#####.....####################\n##############################\n\n\n##############################\n#########.....################\n###............#.....#########\n###........#..........########\n###.......###.....#...########\n###........#.....###..########\n###....#..........#...########\n###...###.....#.......########\n###....#.....###.....#########\n####..........#.....##########\n#####.....#..........#########\n#####....###.....#...#########\n#####.....#pp....##..#########\n#####......pp....#...#########\n#####..#.............#########\n#####...............##########\n#####..............###########\n##############################\n)\n",[3,2,2,2,1,1,1,2,2,1,1,1,2,1,1,1,0,0,1,0,1],"background background_dark wall:0,background background_light wall:1,background background_dark sprite_dr wall wall_bright_d wall_bright_r:2,background background_light sprite_0_1 wall wall_bright_d wall_end_r wall_light:3,background background_dark sprite_0_1 wall wall_bright_d wall_bright_u wall_end_r wall_light:4,background background_light sprite_0_1 wall wall_bright_d wall_bright_u wall_end_r wall_light:5,4,5,4,5,background background_dark sprite_0_1 wall wall_bright_u wall_end_r wall_light:6,background background_light sprite_ur wall wall_bright_r wall_bright_u:7,0,1,0,1,1,2,background background_light sprite_4_1 wall wall_end_d wall_end_r wall_light:8,background background_border_left background_border_up background_dark temp:9,background background_border_left background_light temp:10,background background_border_left background_dark temp:11,10,11,10,11,\nbackground background_border_down background_border_left background_light temp:12,background background_dark sprite_1_2 wall wall_bright_r wall_end_u wall_light:13,background background_light wall wall_bright_u:14,0,1,0,background background_dark wall wall_bright_d:15,background background_light sprite_1_0 wall wall_bright_r wall_end_d wall_light:16,9,background background_light temp:17,background background_dark temp:18,background background_border_right background_light temp:19,background background_border_right background_dark temp:20,19,20,17,background background_border_down background_dark temp:21,background background_light sprite_1_2 wall wall_bright_l wall_bright_r wall_end_u wall_light:22,background background_dark wall wall_bright_r wall_bright_u:23,1,0,1,background background_light sprite_dr wall wall_bright_d wall_bright_r:24,background background_dark sprite_4_1 wall wall_bright_l wall_end_d wall_end_r wall_light:25,background background_border_up background_light temp:26,18,\nbackground background_border_down background_light temp:27,background background_dark sprite_6_0 wall wall_bright_d wall_end_l wall_end_r wall_end_u wall_light:28,background background_light sprite_6_1 wall wall_bright_d wall_bright_u wall_end_l wall_end_r wall_light:29,background background_dark sprite_6_1 wall wall_bright_d wall_bright_u wall_end_l wall_end_r wall_light:30,background background_light sprite_3_1 wall wall_bright_r wall_bright_u wall_end_d wall_end_l wall_light:31,background background_border_up background_dark temp:32,27,background background_dark sprite_4_0 wall wall_bright_d wall_bright_l wall_end_r wall_end_u wall_light:33,background background_light sprite_0_1 wall wall_bright_u wall_end_r wall_light:34,background background_dark sprite_ur wall wall_bright_r wall_bright_u:35,1,0,background background_dark sprite_1_0 wall wall_bright_r wall_end_d wall_light:36,background background_border_left background_border_up background_light temp:37,18,17,18,10,11,12,background background_dark sprite_4_2 wall wall_bright_l wall_bright_r wall_end_d wall_end_u wall_light:38,26,18,10,background background_border_down background_border_left background_dark temp:39,background background_light sprite_1_2 wall wall_bright_r wall_end_u wall_light:40,\nbackground background_dark wall wall_bright_u:41,1,background background_light sprite_1_0 wall wall_bright_l wall_bright_r wall_end_d wall_light:42,32,17,18,17,18,17,21,background background_light sprite_5_2 wall wall_bright_l wall_end_d wall_end_r wall_end_u wall_light:43,32,17,18,27,background background_dark sprite_1_2 wall wall_bright_l wall_bright_r wall_end_u wall_light:44,14,0,background background_dark sprite_1_0 wall wall_bright_l wall_bright_r wall_end_d wall_light:45,26,18,17,18,17,18,17,\n11,17,18,17,21,background background_light sprite_4_0 wall wall_bright_l wall_end_r wall_end_u wall_light:46,35,1,42,32,17,18,17,20,19,20,19,18,17,18,17,39,background background_light sprite_4_0 wall wall_end_r wall_end_u wall_light:47,35,45,26,\n18,17,21,background background_light sprite_3_0 wall wall_bright_d wall_bright_r wall_end_l wall_end_u wall_light:48,background background_dark sprite_2_1 wall wall_bright_d wall_bright_u wall_end_l wall_light:49,background background_light sprite_2_1 wall wall_bright_d wall_bright_u wall_end_l wall_light:50,background background_dark sprite_3_1 wall wall_bright_r wall_bright_u wall_end_d wall_end_l wall_light:51,26,18,17,18,17,39,40,42,32,17,18,27,44,background background_light wall wall_bright_l wall_bright_r wall_bright_u:52,background background_dark wall wall_bright_d wall_bright_l wall_bright_r:53,42,32,17,18,\n17,18,27,44,background background_dark sprite_1_0 wall wall_bright_l wall_end_d wall_light:54,background background_border_right background_border_up background_light temp:55,20,17,21,background background_light sprite_4_0 wall wall_bright_d wall_bright_l wall_end_r wall_end_u wall_light:56,4,5,background background_dark sprite_4_1 wall wall_bright_l wall_bright_u wall_end_d wall_end_r wall_light:57,background background_border_up background_light con_d con_r on_background player sprite_l_rf:58,background background_dark con_r con_u on_background player sprite_l_lf:59,17,18,17,21,22,background background_light sprite_dl wall wall_bright_d wall_bright_l wall_bright_r:60,background background_dark sprite_6_1 wall wall_bright_d wall_end_l wall_end_r wall_light:61,background background_light sprite_6_2 wall wall_bright_u wall_end_d wall_end_l wall_end_r wall_light:62,32,17,11,\n10,11,10,background background_dark con_d con_l con_r on_background player sprite_l_rb:63,background background_light body_udlr con_d con_l con_r con_u on_background player sprite_l_lb:64,background background_dark body body_ur con_r con_u on_background:65,17,18,27,44,36,37,11,17,18,19,20,19,18,background background_light body body_dl con_d con_l on_background:66,background background_dark body body_inner_dl con_d con_l con_r con_u on_background:67,background background_light body body_inner_ur con_d con_l con_r con_u on_background:68,background background_dark body body_udr con_d con_r con_u on_background:69,background background_light body body_ur con_r con_u on_background:70,21,22,\n42,32,17,18,27,28,29,background background_dark sprite_6_2 wall wall_bright_u wall_end_d wall_end_l wall_end_r wall_light:71,55,18,66,background background_dark body body_udl con_d con_l con_u on_background:72,background background_light body body_inner_dl con_d con_l con_r con_u on_background:73,background background_dark body body_ulr con_l con_r con_u on_background:74,27,44,45,26,18,17,18,10,11,12,background background_dark sprite_3_2 wall wall_bright_r wall_end_d wall_end_l wall_end_u wall_light:75,26,\n18,17,background background_dark body body_dlr con_d con_l con_r on_background:76,background background_light body body_ulr con_l con_r con_u on_background:77,21,22,42,32,17,18,17,20,19,background background_border_down background_border_right background_dark temp:78,43,32,17,background background_dark body body_dr con_d con_r on_background:79,background background_light body body_inner_dr con_d con_l con_r con_u on_background:80,74,27,44,45,26,18,17,\n21,background background_light sprite_6_0 wall wall_bright_d wall_end_l wall_end_r wall_end_u wall_light:81,30,62,9,17,18,background background_light body body_dlr con_d con_l con_r on_background:82,background background_dark body body_inner_ul con_d con_l con_r con_u on_background:83,background background_light body body_ul con_l con_u on_background:84,21,22,42,32,17,18,17,11,10,11,17,18,17,76,77,18,\n27,44,45,26,18,17,18,19,20,19,20,background background_light body body_dr con_d con_r on_background:85,69,80,74,17,21,22,42,32,17,18,27,background background_dark sprite_3_0 wall wall_bright_d wall_bright_r wall_end_l wall_end_u wall_light:86,29,30,\n31,background background_border_up background_dark body body_dlr con_d con_l con_r on_background:87,background background_light body body_inner_ul con_d con_l con_r con_u on_background:88,72,84,18,27,44,54,55,20,17,21,43,background background_border_left background_border_up background_dark body body_dr con_d con_r on_background:89,background background_border_down background_border_left background_light body body_ur con_r con_u on_background:90,background background_dark sprite_5_2 wall wall_bright_l wall_end_d wall_end_r wall_end_u wall_light:91,background background_border_up background_light body body_dlr con_d con_l con_r on_background:92,74,17,18,17,21,22,background background_light sprite_dl wall wall_bright_d wall_bright_l:93,background background_dark sprite_2_1 wall wall_bright_d wall_end_l wall_light:94,\n31,32,17,11,82,background background_dark body body_inner_ur con_d con_l con_r con_u on_background:95,background background_border_left background_light body body_udr con_d con_r con_u on_background:96,background background_dark body body_inner_dr con_d con_l con_r con_u on_background:97,77,18,17,18,background background_border_down background_border_right background_light temp:98,background background_dark sprite_1_2 wall wall_bright_l wall_end_u wall_light:99,0,background background_light wall wall_bright_d wall_bright_l:100,54,55,18,17,background background_dark body body_dl con_d con_l on_background:101,background background_light body body_udl con_d con_l con_u on_background:102,72,102,background background_dark body body_ul con_l con_u on_background:103,17,\n18,98,background background_dark sprite_3_0 wall wall_end_l wall_end_u wall_light:104,background background_light sprite_ul wall wall_bright_l wall_bright_u:105,1,0,93,background background_dark sprite_3_1 wall wall_bright_r wall_end_d wall_end_l wall_light:106,26,18,17,18,17,18,17,18,27,background background_dark sprite_3_0 wall wall_bright_r wall_end_l wall_end_u wall_light:107,105,0,0,1,15,background background_light sprite_1_0 wall wall_bright_l wall_end_d wall_light:108,background background_border_right background_border_up background_dark temp:109,19,\n20,19,20,19,20,19,78,background background_light sprite_1_2 wall wall_bright_l wall_end_u wall_light:110,41,1,1,0,1,background background_dark sprite_dl wall wall_bright_d wall_bright_l:111,background background_light sprite_2_1 wall wall_bright_d wall_end_l wall_light:112,49,50,49,50,49,50,49,background background_light sprite_2_1 wall wall_bright_u wall_end_l wall_light:113,background background_dark sprite_ul wall wall_bright_l wall_bright_u:114,1,0,\n",3,"1627891845531.74"] + "SHY SNAKE", + ["title SHY SNAKE\nauthor Daniel Freer and increpare\nhomepage www.puzzlescript.net\nnorepeat_action\nrun_rules_on_level_start\n\nbackground_color #524c67 \ntext_color #8fff70\n\n\nnoaction\n\n========\nOBJECTS\n========\n\n\n\nSprite_R_LB\n#5b6e6d #ddff7d #8fff70 #73ce86 #383d41 \n.0000\n02222\n23043\n33443\n33333\n\nSprite_R_LF\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n.....\n000..\n1110.\n22234\n22234\n\nSprite_L_RF\n#5b6e6d #8fff70 #ddff7d #73ce86 \n.....\n..000\n.0111\n01333\n01333\n\nSprite_L_RB\n#5b6e6d #8fff70 #73ce86 #383d41 #689887 \n0000.\n11110\n20324\n23322\n22222\n\nSprite_U_LF\n#5b6e6d #ddff7d #8fff70 #73ce86 \n...00\n..012\n.0233\n.0233\n.0233\n\nSprite_U_RF\n#5b6e6d #8fff70 #73ce86 #383d41 #689887 \n00...\n123..\n2243.\n2243.\n2243.\n\nSprite_R_RB\n#73ce86 #5b6e6d #383d41 #689887 \n00000\n00120\n10220\n23333\n.2222\n\nSprite_R_RF\n#73ce86 #689887 #383d41 #5b6e6d \n00012\n00012\n1112.\n222..\n.....\n\nSprite_D_RB\n#5b6e6d #8fff70 #73ce86 #ddff7d #383d41 \n.0122\n03222\n01042\n01442\n01222\n\nSprite_D_LB\n#73ce86 #689887 #383d41 #5b6e6d \n0012.\n00012\n03212\n02212\n00012\n\nSprite_L_LF\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n01222\n02222\n.4333\n..444\n.....\n\nSprite_L_LB\n#73ce86 #5b6e6d #383d41 #689887 \n00000\n01200\n02201\n33332\n2222.\n\nSprite_U_LB\n#5b6e6d #8fff70 #73ce86 #575d67 #383d41 #689887 \n01222\n01342\n01442\n01222\n.0522\n\nSprite_U_RB\n#73ce86 #689887 #383d41 #575d67 #5b6e6d \n00012\n03212\n02212\n00012\n0042.\n\nSprite_D_RF\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n.0122\n.0122\n.0122\n..023\n...44\n\nSprite_D_LF\n#73ce86 #689887 #383d41 #5b6e6d \n0012.\n0012.\n0012.\n132..\n22...\n\nBODY\nTRANSPARENT\n\nEND_R_R\n#5b6e6d #8fff70 #73ce86 #383d41 \n.....\n.....\n00...\n1100.\n22123\n\nEND_L_L\n#5b6e6d #8fff70 #ddff7d #73ce86 \n.....\n.....\n...00\n.0011\n02133\n\nEND_D_L\n#5b6e6d #8fff70 #73ce86 #383d41 \n..012\n..012\n...01\n...02\n....3\n\nEND_D_R\n#73ce86 #689887 #383d41 #5b6e6d \n012..\n012..\n12...\n32...\n2....\n\n\n\n\nEND_R_L\n#73ce86 #689887 #5b6e6d #383d41 \n00123\n1133.\n33...\n.....\n.....\n\nEND_L_R\n#5b6e6d #73ce86 #689887 #383d41 \n01211\n.3322\n...33\n.....\n.....\n\nEND_U_L\n#5b6e6d #ddff7d #8fff70 #73ce86 \n....0\n...01\n...02\n..023\n..023\n\nEND_U_R\n#5b6e6d #73ce86 #383d41 #689887 \n0....\n12...\n32...\n132..\n132..\n\n\n\n\n\nPlayer\ngreen\n.....\n.....\n..0..\n.....\n.....\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\ntemp\ntransparent\n\n\n\ncon_u\nwhite\n..0..\n..0..\n.....\n.....\n.....\n\ncon_d\nwhite\n.....\n.....\n.....\n..0..\n..0..\n\ncon_l\nwhite\n.....\n.....\n00...\n.....\n.....\n\ncon_r\nwhite\n.....\n.....\n...00\n.....\n.....\n\nend_t\nTRANSPARENT\n\n\nbody_dr\n#5b6e6d #ddff7d #8fff70 #73ce86 \n.....\n...00\n..012\n.0133\n.0233\n\nbody_dlr\n#5b6e6d #8fff70 #73ce86 \n00000\n11111\n22222\n22222\n22222\n\nbody_dl\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n.....\n00...\n110..\n2234.\n2234.\n\nbody_udr\n#5b6e6d #8fff70 #73ce86 \n01222\n01222\n01222\n01222\n01222\n\nbody_ur\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n.0122\n.0122\n..033\n...44\n.....\n\nbody_ulr\n#73ce86 #689887 #383d41 \n00000\n00000\n00000\n11111\n22222\n\nbody_ul\n#73ce86 #689887 #383d41 \n0012.\n0012.\n112..\n22...\n.....\n\n\n\nbody_udl\n#73ce86 #689887 #383d41 \n00012\n00012\n00012\n00012\n00012\n\nbody_udlr\n#73ce86\n\nbody_inner_ul\n#73ce86 #689887 #383d41 \n00000\n00000\n00000\n00001\n00012\n\nbody_inner_ur\n#73ce86 #689887 #383d41 #8fff70 #5b6e6d \n00000\n00000\n00000\n10000\n43000\n\nbody_inner_dl\n#73ce86 #689887 #383d41 #5b6e6d #8fff70 \n00012\n00004\n00000\n00000\n00000\n\nbody_inner_dr\n#5b6e6d #8fff70 #73ce86 \n01222\n12222\n22222\n22222\n22222\n\n\n\n\n\n\n\n\n\nbackground\n#896359 #6b4949 #896359 #6b4949 #b77e63\n01110\n11100\n10110\n11112\n00200\n\n\n\nbackground_light\nLIGHTGRAY\n\nbackground_dark\ngray\n\non_background\nDARKGRAY\n\nbackground_border_up\n#b77e63 #896359 #6b4949 \n01111\n.....\n.....\n.....\n.....\n\n\nbackground_border_left\n#b77e63 #896359 #6b4949 \n0....\n1....\n1....\n1....\n1....\n\nbackground_border_right\n#896359 #6b4949 #b77e63 \n....0\n....0\n....0\n....2\n....0\n\nbackground_border_down\n#b77e63 #6b4949 #896359 \n.....\n.....\n.....\n.....\n22022\n\n\n\n\n\nWall\n#524c67 #524c67 \n00100\n00100\n11111\n00100\n00100\n\n\n\nWall_light\n#868998 #575d67\n00100\n00100\n11111\n00100\n00100\n\n\nwall_border_b\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n00100\n11111\n12222\n13333\n44444\n\nwall_border_r\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n01234\n01234\n11234\n01234\n01114\n\nwall_border_l\n#383d41 #575d67 #868998 #fffee9 #e2e0e8 \n01112\n03412\n03411\n03412\n03412\n\nwall_border_t\n#383d41 #fffee9 #575d67 #e2e0e8 #868998 \n00000\n11112\n33332\n22222\n44244\n\n\nwall_bright_u\ntransparent\n\nwall_bright_d\ntransparent\n\nwall_bright_l\ntransparent\n\nwall_bright_r\ntransparent\n\n\nwall_end_u\ntransparent\n\nwall_end_d\ntransparent\n\nwall_end_l\ntransparent\n\nwall_end_r\ntransparent\n\n\n\nSprite_0_0\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n00100\n01111\n11222\n01233\n01114\n\nSprite_1_0\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n00100\n11111\n12222\n13333\n44444\n\nSprite_2_0\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 #fffee9 \n00100\n11110\n12311\n13310\n45310\n\nSprite_3_0\n#383d41 #fffee9 #575d67 #e2e0e8 #868998 \n00000\n01112\n01332\n01322\n01324\n\nSprite_4_0\n#383d41 #fffee9 #e2e0e8 #bbbbce #575d67 #868998 \n00000\n11120\n22320\n44320\n54440\n\nSprite_5_0\n#524c67 #383d41 \n00100\n00100\n11111\n00100\n00100\n\nSprite_6_0\n#383d41 #fffee9 #e2e0e8 #bbbbce \n00000\n01120\n01320\n01320\n01220\n\nSprite_0_1\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n01234\n01234\n11234\n01234\n01114\n\nSprite_2_1\n#383d41 #575d67 #868998 #fffee9 #e2e0e8 \n01112\n03412\n03411\n03412\n03412\n\nSprite_3_1\n#383d41 #575d67 #868998 #fffee9 #e2e0e8 #bbbbce \n01112\n03411\n03455\n04444\n00000\n\nSprite_4_1\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n01234\n11234\n12234\n13334\n44444\n\nSprite_5_1\n#383d41 #fffee9 #e2e0e8 #bbbbce \n00000\n01120\n01320\n02220\n00000\n\nSprite_6_1\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n01110\n02230\n02430\n02430\n02330\n\nSprite_0_2\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n01234\n01231\n11331\n01111\n00100\n\nSprite_1_2\n#383d41 #fffee9 #575d67 #e2e0e8 #868998 \n00000\n11112\n33332\n22222\n44244\n\nSprite_2_2\n#383d41 #575d67 #868998 #fffee9 #e2e0e8 \n01112\n33412\n44411\n11112\n22122\n\nSprite_3_2\n#383d41 #fffee9 #575d67 #bbbbce #e2e0e8 \n00000\n01112\n01342\n04442\n00000\n\nSprite_4_2\n#383d41 #fffee9 #575d67 #bbbbce #e2e0e8 \n00000\n11112\n13342\n44442\n00000\n\nSprite_5_2\n#383d41 #fffee9 #e2e0e8 #bbbbce \n00000\n11120\n13320\n22220\n00000\n\nSprite_6_2\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n01110\n02230\n02430\n03330\n00000\n\n\nsprite_DL\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n.....\n.....\n44...\n334..\n134..\n\n\nsprite_DR\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n.....\n.....\n...44\n..433\n..431\n\nsprite_UL\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n134..\n334..\n44...\n.....\n.....\n\nsprite_UR\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n..431\n..433\n...44\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\nt = background\n\nobstacle = wall or body or player\n\nend = END_R_R or END_R_L or END_L_L or END_L_R or END_U_L or END_U_R or END_D_L or END_D_R\n\nhead = SPRITE_u_LB or SPRITE_u_LF or SPRITE_u_RB or SPRITE_u_RF or SPRITE_d_LB or SPRITE_d_LF or SPRITE_d_RB or SPRITE_d_RF or SPRITE_l_LB or SPRITE_l_LF or SPRITE_l_RB or SPRITE_l_RF or SPRITE_R_LB or SPRITE_R_LF or SPRITE_R_RB or SPRITE_R_RF \n\nbody_dec = body_ul or body_ur or body_dl or body_dr or body_dlr or body_udr or body_ulr or body_udl or body_udlr\n\nbody_inner = body_inner_ul or body_inner_ur or body_inner_dl or body_inner_dr\n\ncosmetics = head or end or body_dec or body_inner\n\ndir = con_u or con_d or con_l or con_r\ndir_h = con_l or con_r\ndir_v = con_u or con_d\nwall_border = wall_border_b or wall_border_t or wall_border_l or wall_border_r\n\nbackground_border = background_border_up or background_border_down or background_border_left or background_border_right\n\ntile= background_light or background_dark\n\n=======\nSOUNDS\n=======\n\nendlevel 29774302\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbackground_border_up\nbackground_border_left\nbackground_border_right\nbackground_border_down\nbackground_dark,background_light\non_background\nPlayer, Wall, Crate, body\ntemp\ncon_u\ncon_d\ncon_l\ncon_r\nend_t\nbody_dec\nbody_inner\nhead\nend\nwall_light\nwall_border_t\nwall_border_b\nwall_border_l\nwall_border_r\n\nwall_bright_u\nwall_bright_d\nwall_bright_l\nwall_bright_r\n\nwall_end_u\nwall_end_d\nwall_end_l\nwall_end_r\n\nSprite_0_0, sprite_1_0, sprite_2_0, sprite_3_0, sprite_4_0, sprite_5_0, sprite_6_0, Sprite_0_1, Sprite_2_1, Sprite_3_1, Sprite_4_1, Sprite_5_1, Sprite_6_1, Sprite_0_2, Sprite_1_2, Sprite_2_2, Sprite_3_2, Sprite_4_2, Sprite_5_2, Sprite_6_2, sprite_ul, sprite_ur, sprite_dl, sprite_dr\n\n======\nRULES\n======\n\n[wall | no wall] -> [wall Wall_light | ]\n\nup [wall | no wall] -> [wall | background_border_down ]\ndown [wall | no wall] -> [wall | background_border_up ]\nleft [wall | no wall] -> [wall | background_border_right ]\nright [wall | no wall] -> [wall | background_border_left ]\n\nup [ wall | no wall ] -> [wall wall_end_u | ]\ndown [ wall | no wall ] -> [wall wall_end_d | ]\nleft [ wall | no wall ] -> [wall wall_end_l | ]\nright [ wall | no wall ] -> [wall wall_end_r | ]\n\nup [ wall | Wall_light ] -> [ wall wall_bright_u | Wall_light ]\ndown [ wall | Wall_light ] -> [ wall wall_bright_d | Wall_light ]\nleft [ wall | Wall_light ] -> [ wall wall_bright_l | Wall_light ]\nright [ wall | Wall_light ] -> [ wall wall_bright_r | Wall_light ]\n\n[ wall_end_u ] -> [ wall_end_u sprite_1_2 ]\n[ wall_end_d ] -> [ wall_end_d sprite_1_0 ]\n[ wall_end_l ] -> [ wall_end_l sprite_2_1 ]\n[ wall_end_r ] -> [ wall_end_r sprite_0_1 ]\n\n\n[ wall_end_u wall_end_r ] -> [ wall_end_u wall_end_r sprite_4_0 ]\n[ wall_end_u wall_end_d ] -> [ wall_end_u wall_end_d sprite_4_2 ]\n[ wall_end_u wall_end_l ] -> [ wall_end_u wall_end_l sprite_3_0 ]\n\n[ wall_end_r wall_end_d ] -> [ wall_end_r wall_end_d sprite_4_1 ]\n[ wall_end_r wall_end_l ] -> [ wall_end_r wall_end_l sprite_6_1 ]\n\n[ wall_end_d wall_end_l ] -> [ wall_end_d wall_end_l sprite_3_1 ]\n\n\n[ wall_end_d wall_end_l wall_end_r ] -> [ wall_end_d wall_end_l wall_end_r sprite_6_2]\n[ wall_end_u wall_end_l wall_end_r ] -> [ wall_end_u wall_end_l wall_end_r sprite_6_0]\n[ wall_end_u wall_end_d wall_end_r ] -> [ wall_end_u wall_end_d wall_end_r sprite_5_2]\n[ wall_end_u wall_end_d wall_end_l ] -> [ wall_end_u wall_end_d wall_end_l sprite_3_2]\n\n[ no wall_light wall_bright_u wall_bright_r ] -> [ sprite_ur wall_bright_u wall_bright_r ]\n[ no wall_light wall_bright_u wall_bright_l ] -> [ sprite_ul wall_bright_u wall_bright_l ]\n[ no wall_light wall_bright_d wall_bright_r ] -> [ sprite_dr wall_bright_d wall_bright_r ]\n[ no wall_light wall_bright_d wall_bright_l ] -> [ sprite_dl wall_bright_d wall_bright_l ]\n\n\nup [ sprite_ur | no wall_end_r ] -> [ | ]\nright [ sprite_ur | no wall_end_u ] -> [ | ]\n\n\nup [ sprite_ul | no wall_end_l ] -> [ | ]\nleft [ sprite_ul | no wall_end_u ] -> [ | ]\n\ndown [ sprite_dr | no wall_end_r ] -> [ | ]\nright [ sprite_dr | no wall_end_d ] -> [ | ]\n\ndown [ sprite_dl | no wall_end_l ] -> [ | ]\nleft [ sprite_dl | no wall_end_d ] -> [ | ]\n\n\n[ wall_end_u wall_end_d wall_end_l wall_end_r ] -> [ wall_end_u wall_end_d wall_end_l wall_end_r sprite_5_1 ]\n\n[ > player | > player | obstacle ] -> cancel\n\nup [ > player | > player | no obstacle] -> [ body con_u | con_d con_u player | player ]\ndown [ > player | > player | no obstacle] -> [ body con_d | con_u con_d player | player ]\nleft [ > player | > player | no obstacle] -> [ body con_l | con_r con_l player | player ]\nright [ > player | > player | no obstacle] -> [ body con_r | con_l con_r player | player ]\n\n\nlate [temp]->[]\nlate [ no player no wall no obstacle ]->[temp]\n\n\n\nlate right [player | player ] -> [ player con_r | player con_l ]\nlate down [player | player ] -> [ player con_d | player con_u ]\n\n\nlate [ player background con_u con_r no tile] -> [ player background con_u con_r background_light]\nlate [ background_light | no tile ] -> [ background_light | background_dark ]\n+ late [background_dark | no tile ] -> [ background_dark | background_light ]\n\nlate [cosmetics]->[]\n\n\nlate [ body con_u con_l ] -> [ body con_u con_l body_ul ]\nlate [ body con_u con_r ] -> [ body con_u con_r body_ur ]\nlate [ body con_d con_l ] -> [ body con_d con_l body_dl ]\nlate [ body con_d con_r ] -> [ body con_d con_r body_dr ]\n\nlate [ body con_u con_d con_l ] -> [ body con_u con_d con_l body_udl ]\nlate [ body con_u con_d con_r ] -> [ body con_u con_d con_r body_udr ]\nlate [ body con_u con_l con_r ] -> [ body con_u con_l con_r body_ulr ]\nlate [ body con_d con_l con_r ] -> [ body con_d con_l con_r body_dlr ]\n\nlate [ body con_u con_d con_l con_r ] -> [ body con_u con_d con_l con_r body_udlr]\n\n(\nlate [ player con_d con_r ] -> [ player con_d con_r sprite_u_lf ]\nlate [ player con_u con_r ] -> [ player con_u con_r sprite_u_lb ]\nlate [ player con_d con_l ] -> [ player con_d con_l sprite_u_rf ]\nlate [ player con_u con_l ] -> [ player con_u con_l sprite_u_rb ]\n)\n\n\nlate [ player con_d con_r ] -> [ player con_d con_r body_dr ]\nlate [ player con_u con_r ] -> [ player con_u con_r body_ur ]\nlate [ player con_d con_l ] -> [ player con_d con_l body_dl ]\nlate [ player con_u con_l ] -> [ player con_u con_l body_ul ]\n\n\nlate down [ player con_r no con_l | player con_r con_d ] -> [ player con_R no body_dec | player con_r con_d no body_dec]\nlate down [ player con_l no con_r | player con_l con_d ] -> [ player con_l no body_dec | player con_l con_d no body_dec]\n\nlate right [ player con_d no con_u | player con_d con_r ] -> [ player con_d no body_dec | player con_d con_r no body_dec ]\nlate right [ player con_u no con_d | player con_u con_r ] -> [ player con_u no body_dec | player con_u con_r no body_dec ]\n\nlate left [ player con_d no con_u | player con_d con_l ] -> [ player con_d no body_dec | player con_d con_l no body_dec]\nlate left [ player con_u no con_d | player con_u con_l ] -> [ player con_u no body_dec | player con_u con_l no body_dec]\n\nlate up [ player con_l no con_r | player con_l con_u ] -> [ player con_l no body_dec | player con_l con_u no body_dec ]\nlate up [ player con_r no con_l | player con_r con_u ] -> [ player con_r no body_dec | player con_r con_u no body_dec ]\n\n\n\n\n\nlate down [ player con_r no con_l | player con_r con_d ] -> [ player con_R sprite_u_lf | player con_r con_d sprite_u_lb]\nlate down [ player con_l no con_r | player con_l con_d ] -> [ player con_l sprite_u_rf | player con_l con_d sprite_u_rb]\n\nlate right [ player con_d no con_u | player con_d con_r ] -> [ player con_d sprite_l_rf | player con_d con_r sprite_l_rb ]\nlate right [ player con_u no con_d | player con_u con_r ] -> [ player con_u sprite_l_lf | player con_u con_r sprite_l_lb ]\n\nlate left [ player con_d no con_u | player con_d con_l ] -> [ player con_d sprite_r_lf | player con_d con_l sprite_r_lb]\nlate left [ player con_u no con_d | player con_u con_l ] -> [ player con_u sprite_r_rf | player con_u con_l sprite_r_rb]\n\nlate up [ player con_l no con_r | player con_l con_u ] -> [ player con_l sprite_d_lf | player con_l con_u sprite_d_lb ]\nlate up [ player con_r no con_l | player con_r con_u ] -> [ player con_r sprite_d_rf | player con_r con_u sprite_d_rb ]\n\n\nlate right [ no con_d con_r | body_udlr ] -> [ con_r | body_inner_ur ]\nlate left [ no con_d con_l | body_udlr ] -> [ con_l | body_inner_ul ]\n\n\nlate right [ no con_u con_r | body_udlr ] -> [ con_r | body_inner_dr ]\nlate left [ no con_u con_l | body_udlr ] -> [ con_l | body_inner_dl ]\n\n\nlate up [ no con_r con_u | body_udlr ] -> [ con_u | body_inner_ul ]\nlate up [ no con_l con_u | body_udlr ] -> [ con_u | body_inner_ur ]\n\nlate down [ no con_r con_d | body_udlr ] -> [ con_d | body_inner_dl ]\nlate down [ no con_l con_d | body_udlr ] -> [ con_d | body_inner_dr ]\n\n\nlate right [ player con_r con_u con_d con_l ] ->[ player con_r con_u con_d con_l body_udlr ]\n\nlate [ player ] -> [ player on_background]\n\n(\n[ action player ] [ no wall no obstacle ] -> [ action player ] [wall]\n[ action player ] [ body ] -> [action player ] [ ]\n[ action player ]->[player]\n)\n\n==============\nWINCONDITIONS\n==============\nno temp\n\n=======\nLEVELS\n=======\n\n\nmessage 1 of 3 - If you are EVERYWHERE, nobody else can be ANYWHERE.\n\n(easy)\n##########\n#........#\n#........#\n#..##....#\n#........#\n#..pp....#\n#..pp##..#\n#........#\n#........#\n##########\n\nmessage 2 of 3 - Sometimes I just need my own space.\n(simple but ok?)\n\n##########################\n####.......#.........#####\n##.........#.........#####\n#......................###\n#........................#\n#..#....###..#..#..##....#\n#..#....###..#..#..#pp...#\n#..#....###..#..#..#pp...#\n#..###..###...##...##....#\n#........................#\n#........................#\n####.....................#\n####.....................#\n#######................###\n########..............####\n##########################\n\n\n\nmessage Level 3 of 3 - It's a real relief to be alone.\n\n(basically OK)\n##################\n#########.....####\n#########.....####\n#########..#..####\n#..........#..####\n#..........#..####\n#..####..........#\n#................#\n#........#..###..#\n#........#.......#\n#........#.......#\n###pp..#......####\n###pp..#......####\n###....#..##..####\n###...........####\n#.............####\n#........#..######\n#..##....#..######\n#...........######\n#...........######\n##################\n\nmessage Help! Somebody help! I'm stuck! \n(\n(insoluble)\n###################\n#.....#############\n#.....#############\n#.....#############\n#.....#############\n#.....#############\n#........##########\n#........##########\n#........##########\n#...........#######\n#...........#######\n#...........#######\n#..............####\n#..............####\n#pp............####\n#pp............####\n###################\n\n##########\n#..#######\n#....#####\n#....#####\n#....#####\n#....#####\n#......###\n#......pp#\n#......pp#\n##########\n\n\n##########\n#..#######\n#....#####\n#......###\n#........#\n#........#\n#........#\n#......pp#\n#......pp#\n##########\n\n##############################\n#................#############\n#................#############\n#................#############\n#...................##########\n#...................##########\n#...................##########\n#......................#######\n#...............pp.....#######\n#...............pp.....#######\n#.........................####\n#.........................####\n#.........................####\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n\n##############################\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#...........pp...............#\n#...........pp...............#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n################\n#..#############\n#....###########\n#......#########\n#........#######\n#..........#####\n#............###\n#............pp#\n#............pp#\n################\n\n(too easy)\n############\n#.....######\n#.....######\n#.....######\n#.....######\n#......#####\n#..........#\n#..........#\n#..........#\n#..........#\n#pp........#\n#pp........#\n############\n\n\n\n############\n#.....######\n#.....######\n#.....######\n#.....######\n#.....######\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#pp........#\n#pp........#\n############\n\n#################\n#.....###########\n#.....###########\n#.....###########\n#.....###########\n#.....###########\n#..........######\n#..........######\n#..........######\n#..........######\n#..........######\n#...............#\n#...............#\n#...............#\n#........pp.....#\n#........pp.....#\n#################\n\n#############\n#....########\n#....########\n#....########\n#....########\n#....########\n#.......#####\n#.......#####\n#.......#####\n#.......#####\n#.......#####\n#...........#\n#...........#\n#...........#\n#.......pp..#\n#.......pp..#\n#############\n\n\n\n(solvable + boring)\n#############\n#....########\n#....########\n#....########\n#....########\n#....########\n#.......#####\n#.......#####\n#.......#####\n#.......#####\n#.......#####\n#...........#\n#...........#\n#...........#\n#.....pp....#\n#.....pp....#\n#############\n\n(too easy)\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##################.....#######\n##################.....#######\n############........#.....####\n############........#.....####\n############..##......##..####\n############..............####\n############......##......####\n##############..#.......######\n##############..#.......######\n##############.....##...######\n##############..........######\n################pp#....#######\n################pp#..#########\n################.....#########\n################.....#########\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n\n\n\n\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##########.......#############\n#########........#############\n#########pp......#############\n#########pp#.....#############\n#######.....#....#############\n#######..........#############\n#######..#.......#############\n#######...#......#############\n#######..........#############\n##.....#.....#################\n##..........##################\n##..#.......##################\n##...#......##################\n##..........##################\n###.....######################\n##############################\n##############################\n##############################\n\n\n(bit too easy)\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##########.......#############\n#########........#############\n#########pp......#############\n#########pp#.....#############\n#######.....#....#############\n#######..........#############\n#######..#.......#############\n#######...#......#############\n#######..........#############\n##.....#.....#################\n##..........##################\n##..#.......##################\n##...#......##################\n##..........##################\n###.....######################\n##############################\n##############################\n##############################\n\n##############################\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#.........pp.................#\n#.........pp.................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n########################\n###..................###\n###..................###\n##....................##\n##....................##\n#......................#\n#......................#\n#..#..#..#....#..#..#..#\n#..#..#..#....#..#..#..#\n#......................#\n#......................#\n##....................##\n##....................##\n###...........pp.....###\n###...........pp.....###\n########################\n\n##############################\n#######.............##########\n#######.............##########\n######..............##########\n######..............##########\n######..............##########\n######..............##########\n######..............##########\n######.......pp.....##########\n####........#pp#....##########\n####........####....##########\n####................##########\n####................##########\n####................##########\n####................##########\n##############################\n\n(meh ok for level 1?)\n##################\n####.............#\n####.............#\n###..............#\n###..............#\n###..............#\n###..............#\n###..............#\n###.......pp.....#\n#........#pp#....#\n#........####....#\n#................#\n#................#\n#................#\n#................#\n##################\n\n(meh)\n##############################\n######......##################\n######......##################\n####....##........############\n####....##........############\n####..##......##..############\n####..##......##..############\n####......##....pp############\n####......##....pp############\n########....##..##############\n########....##..##############\n########..##....##############\n########..##....##############\n########......################\n########......################\n##############################\n\n\n\n(boring)\n##############################\n##################.....#######\n############..............####\n############........#.....####\n############..##......##..####\n############..##......##..####\n##########........##..pp..####\n########..........##..pp..####\n########....#....#....########\n########..##..........########\n########..##........##########\n########......################\n########......################\n##############################\n\n(boring)\n##############################\n########............##########\n########............##########\n########..##....##..##########\n########..##....##..##########\n########pp..........##########\n########pp..........##########\n##############################\n\n(boring)\n##############################\n##########......##......######\n##########..............######\n##########pp##......##..######\n##########pp##......##..######\n##########..............######\n##########......##......######\n##########......##......######\n##########..............######\n##########..##......##..######\n##########..##......##..######\n##########..............######\n##########......##......######\n##############################\n\n################\n#####.......####\n###...........##\n###....###....##\n###...........##\n###...........##\n###....###....##\n#..............#\n#..............#\n#..###....###..#\n#..............#\n#..............#\n##....####....##\n##............##\n##............##\n##............##\n##............##\n######....######\n######....######\n######..pp######\n######..pp######\n################\n\n############################\n#..........................#\n#..........................#\n#..........................#\n#..........................#\n#....#....###..#..#..##....#\n#....#....###..#pp#..#.....#\n#....#....###..#pp#..#.....#\n#....###..###...##...##....#\n#..........................#\n#..........................#\n#..........................#\n#..........................#\n#..........................#\n############################\n\n############################\n#######.................####\n#######.................####\n####....................####\n##.......................###\n#..........................#\n#..........................#\n#..........................#\n#..........................#\n#....#....###..#..#..##....#\n#....#....###..#pp#..#.....#\n#....#....###..#pp#..#.....#\n#....###..###...##...##....#\n#..........................#\n#........................###\n#......................#####\n#.....................######\n####............############\n####............############\n#######.........############\n############################\n\n(ok!)\n\n\n\n\n##############################.....\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#.........#.....####..#####..####..\n#.........#........#....#....#.....\n#.........#........#....#....#.....\n#.........####..####....#....####..\n#.........#pp#..#..#....#....#.....\n#.........#pp#..#..#....#....#.....\n#.........#..#..#..#....#....####..\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n##############################.....\n\n\n##############################\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#....#####..#..#..#....#.....#\n#....#......#..#..#....#.....#\n#....#......#..#..#....#.....#\n#....#......#..#..#....#.....#\n#....#......#..#..#....#.....#\n#....#####..####..######.....#\n#........#..#pp#.......#.....#\n#........#..#pp#.......#.....#\n#........#..#..#.......#.....#\n#........#..#..#.......#.....#\n#....#####..#..#..######.....#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n###########################\n######.........############\n######.........############\n#...................#######\n#...................#######\n#.........................#\n#.........................#\n#....#####..#..#..#....#..#\n#....#......#..#..#....#..#\n#....#......#..#..#....#..#\n#....#......#pp#..#....#..#\n#....#......#pp#..#....#..#\n#....#####..####..######..#\n#........#..#..#.......#..#\n#........#..#..#.......#..#\n#........#..#..#.......#..#\n#........#..#..#.......#..#\n#....#####..#..#..######..#\n#.........................#\n#........#................#\n#...................#######\n#...................#######\n#..................########\n#..................########\n###########################\n\n\n##############################...\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#.........#####...#....#...#...#.\n#.........#.......#....#...#...#.\n#.........#.......#....#...#...#.\n#.........#.......#....#...#...#.\n#.........#.......#....#...#...#.\n#.........#####...######...#####.\n#...........pp#...#....#.......#.\n#...........pp#...#....#.......#.\n#.............#...#....#.......#.\n#.............#...#....#.......#.\n#.........#####...#....#...#####.\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n##############################...\n\n##############################\n#............................#\n#............................#\n#............................#\n#............................#\n#....pp......................#\n#....pp......................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n##############################\n######.....###################\n#####.......#.....############\n#####...#..........###########\n#####..###.....#...###########\n#####...#.....###..###########\n#####..........#...pp#########\n######.....#.......pp.########\n#####.....###.....#...########\n####.......#.....###..########\n####...#..........#...########\n####..###.....#.......########\n####...#......##.....#########\n####..........################\n#####.....####################\n##############################\n\n\n##############################\n#########.....################\n###............#.....#########\n###........#..........########\n###.......###.....#...########\n###........#.....###..########\n###....#..........#...########\n###...###.....#.......########\n###....#.....###.....#########\n####..........#.....##########\n#####.....#..........#########\n#####....###.....#...#########\n#####.....#pp....##..#########\n#####......pp....#...#########\n#####..#.............#########\n#####...............##########\n#####..............###########\n##############################\n)\n", [3, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 0, 0, 1, 0, 1], "background background_dark wall:0,background background_light wall:1,background background_dark sprite_dr wall wall_bright_d wall_bright_r:2,background background_light sprite_0_1 wall wall_bright_d wall_end_r wall_light:3,background background_dark sprite_0_1 wall wall_bright_d wall_bright_u wall_end_r wall_light:4,background background_light sprite_0_1 wall wall_bright_d wall_bright_u wall_end_r wall_light:5,4,5,4,5,background background_dark sprite_0_1 wall wall_bright_u wall_end_r wall_light:6,background background_light sprite_ur wall wall_bright_r wall_bright_u:7,0,1,0,1,1,2,background background_light sprite_4_1 wall wall_end_d wall_end_r wall_light:8,background background_border_left background_border_up background_dark temp:9,background background_border_left background_light temp:10,background background_border_left background_dark temp:11,10,11,10,11,\nbackground background_border_down background_border_left background_light temp:12,background background_dark sprite_1_2 wall wall_bright_r wall_end_u wall_light:13,background background_light wall wall_bright_u:14,0,1,0,background background_dark wall wall_bright_d:15,background background_light sprite_1_0 wall wall_bright_r wall_end_d wall_light:16,9,background background_light temp:17,background background_dark temp:18,background background_border_right background_light temp:19,background background_border_right background_dark temp:20,19,20,17,background background_border_down background_dark temp:21,background background_light sprite_1_2 wall wall_bright_l wall_bright_r wall_end_u wall_light:22,background background_dark wall wall_bright_r wall_bright_u:23,1,0,1,background background_light sprite_dr wall wall_bright_d wall_bright_r:24,background background_dark sprite_4_1 wall wall_bright_l wall_end_d wall_end_r wall_light:25,background background_border_up background_light temp:26,18,\nbackground background_border_down background_light temp:27,background background_dark sprite_6_0 wall wall_bright_d wall_end_l wall_end_r wall_end_u wall_light:28,background background_light sprite_6_1 wall wall_bright_d wall_bright_u wall_end_l wall_end_r wall_light:29,background background_dark sprite_6_1 wall wall_bright_d wall_bright_u wall_end_l wall_end_r wall_light:30,background background_light sprite_3_1 wall wall_bright_r wall_bright_u wall_end_d wall_end_l wall_light:31,background background_border_up background_dark temp:32,27,background background_dark sprite_4_0 wall wall_bright_d wall_bright_l wall_end_r wall_end_u wall_light:33,background background_light sprite_0_1 wall wall_bright_u wall_end_r wall_light:34,background background_dark sprite_ur wall wall_bright_r wall_bright_u:35,1,0,background background_dark sprite_1_0 wall wall_bright_r wall_end_d wall_light:36,background background_border_left background_border_up background_light temp:37,18,17,18,10,11,12,background background_dark sprite_4_2 wall wall_bright_l wall_bright_r wall_end_d wall_end_u wall_light:38,26,18,10,background background_border_down background_border_left background_dark temp:39,background background_light sprite_1_2 wall wall_bright_r wall_end_u wall_light:40,\nbackground background_dark wall wall_bright_u:41,1,background background_light sprite_1_0 wall wall_bright_l wall_bright_r wall_end_d wall_light:42,32,17,18,17,18,17,21,background background_light sprite_5_2 wall wall_bright_l wall_end_d wall_end_r wall_end_u wall_light:43,32,17,18,27,background background_dark sprite_1_2 wall wall_bright_l wall_bright_r wall_end_u wall_light:44,14,0,background background_dark sprite_1_0 wall wall_bright_l wall_bright_r wall_end_d wall_light:45,26,18,17,18,17,18,17,\n11,17,18,17,21,background background_light sprite_4_0 wall wall_bright_l wall_end_r wall_end_u wall_light:46,35,1,42,32,17,18,17,20,19,20,19,18,17,18,17,39,background background_light sprite_4_0 wall wall_end_r wall_end_u wall_light:47,35,45,26,\n18,17,21,background background_light sprite_3_0 wall wall_bright_d wall_bright_r wall_end_l wall_end_u wall_light:48,background background_dark sprite_2_1 wall wall_bright_d wall_bright_u wall_end_l wall_light:49,background background_light sprite_2_1 wall wall_bright_d wall_bright_u wall_end_l wall_light:50,background background_dark sprite_3_1 wall wall_bright_r wall_bright_u wall_end_d wall_end_l wall_light:51,26,18,17,18,17,39,40,42,32,17,18,27,44,background background_light wall wall_bright_l wall_bright_r wall_bright_u:52,background background_dark wall wall_bright_d wall_bright_l wall_bright_r:53,42,32,17,18,\n17,18,27,44,background background_dark sprite_1_0 wall wall_bright_l wall_end_d wall_light:54,background background_border_right background_border_up background_light temp:55,20,17,21,background background_light sprite_4_0 wall wall_bright_d wall_bright_l wall_end_r wall_end_u wall_light:56,4,5,background background_dark sprite_4_1 wall wall_bright_l wall_bright_u wall_end_d wall_end_r wall_light:57,background background_border_up background_light con_d con_r on_background player sprite_l_rf:58,background background_dark con_r con_u on_background player sprite_l_lf:59,17,18,17,21,22,background background_light sprite_dl wall wall_bright_d wall_bright_l wall_bright_r:60,background background_dark sprite_6_1 wall wall_bright_d wall_end_l wall_end_r wall_light:61,background background_light sprite_6_2 wall wall_bright_u wall_end_d wall_end_l wall_end_r wall_light:62,32,17,11,\n10,11,10,background background_dark con_d con_l con_r on_background player sprite_l_rb:63,background background_light body_udlr con_d con_l con_r con_u on_background player sprite_l_lb:64,background background_dark body body_ur con_r con_u on_background:65,17,18,27,44,36,37,11,17,18,19,20,19,18,background background_light body body_dl con_d con_l on_background:66,background background_dark body body_inner_dl con_d con_l con_r con_u on_background:67,background background_light body body_inner_ur con_d con_l con_r con_u on_background:68,background background_dark body body_udr con_d con_r con_u on_background:69,background background_light body body_ur con_r con_u on_background:70,21,22,\n42,32,17,18,27,28,29,background background_dark sprite_6_2 wall wall_bright_u wall_end_d wall_end_l wall_end_r wall_light:71,55,18,66,background background_dark body body_udl con_d con_l con_u on_background:72,background background_light body body_inner_dl con_d con_l con_r con_u on_background:73,background background_dark body body_ulr con_l con_r con_u on_background:74,27,44,45,26,18,17,18,10,11,12,background background_dark sprite_3_2 wall wall_bright_r wall_end_d wall_end_l wall_end_u wall_light:75,26,\n18,17,background background_dark body body_dlr con_d con_l con_r on_background:76,background background_light body body_ulr con_l con_r con_u on_background:77,21,22,42,32,17,18,17,20,19,background background_border_down background_border_right background_dark temp:78,43,32,17,background background_dark body body_dr con_d con_r on_background:79,background background_light body body_inner_dr con_d con_l con_r con_u on_background:80,74,27,44,45,26,18,17,\n21,background background_light sprite_6_0 wall wall_bright_d wall_end_l wall_end_r wall_end_u wall_light:81,30,62,9,17,18,background background_light body body_dlr con_d con_l con_r on_background:82,background background_dark body body_inner_ul con_d con_l con_r con_u on_background:83,background background_light body body_ul con_l con_u on_background:84,21,22,42,32,17,18,17,11,10,11,17,18,17,76,77,18,\n27,44,45,26,18,17,18,19,20,19,20,background background_light body body_dr con_d con_r on_background:85,69,80,74,17,21,22,42,32,17,18,27,background background_dark sprite_3_0 wall wall_bright_d wall_bright_r wall_end_l wall_end_u wall_light:86,29,30,\n31,background background_border_up background_dark body body_dlr con_d con_l con_r on_background:87,background background_light body body_inner_ul con_d con_l con_r con_u on_background:88,72,84,18,27,44,54,55,20,17,21,43,background background_border_left background_border_up background_dark body body_dr con_d con_r on_background:89,background background_border_down background_border_left background_light body body_ur con_r con_u on_background:90,background background_dark sprite_5_2 wall wall_bright_l wall_end_d wall_end_r wall_end_u wall_light:91,background background_border_up background_light body body_dlr con_d con_l con_r on_background:92,74,17,18,17,21,22,background background_light sprite_dl wall wall_bright_d wall_bright_l:93,background background_dark sprite_2_1 wall wall_bright_d wall_end_l wall_light:94,\n31,32,17,11,82,background background_dark body body_inner_ur con_d con_l con_r con_u on_background:95,background background_border_left background_light body body_udr con_d con_r con_u on_background:96,background background_dark body body_inner_dr con_d con_l con_r con_u on_background:97,77,18,17,18,background background_border_down background_border_right background_light temp:98,background background_dark sprite_1_2 wall wall_bright_l wall_end_u wall_light:99,0,background background_light wall wall_bright_d wall_bright_l:100,54,55,18,17,background background_dark body body_dl con_d con_l on_background:101,background background_light body body_udl con_d con_l con_u on_background:102,72,102,background background_dark body body_ul con_l con_u on_background:103,17,\n18,98,background background_dark sprite_3_0 wall wall_end_l wall_end_u wall_light:104,background background_light sprite_ul wall wall_bright_l wall_bright_u:105,1,0,93,background background_dark sprite_3_1 wall wall_bright_r wall_end_d wall_end_l wall_light:106,26,18,17,18,17,18,17,18,27,background background_dark sprite_3_0 wall wall_bright_r wall_end_l wall_end_u wall_light:107,105,0,0,1,15,background background_light sprite_1_0 wall wall_bright_l wall_end_d wall_light:108,background background_border_right background_border_up background_dark temp:109,19,\n20,19,20,19,20,19,78,background background_light sprite_1_2 wall wall_bright_l wall_end_u wall_light:110,41,1,1,0,1,background background_dark sprite_dl wall wall_bright_d wall_bright_l:111,background background_light sprite_2_1 wall wall_bright_d wall_end_l wall_light:112,49,50,49,50,49,50,49,background background_light sprite_2_1 wall wall_bright_u wall_end_l wall_light:113,background background_dark sprite_ul wall wall_bright_l wall_bright_u:114,1,0,\n", 3, "1627891845531.74"] ], [ - "a distant sunset", - ["title a distant sunset\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nnorepeat_action\nagain_interval 0.3\n\n\nbackground_color darkblue\n\ntext_color LIGHTGRAY\n\n========\nOBJECTS\n========\n\nblack ,\nDARKBLUE\n\nBackground\nDARKBLUE\n\n\n\nWall\nDARKGREEN\n\nwall_tl\nDARKGREEN DARKBLUE \n00000\n01111\n01000\n01011\n01010\n\nwall_tr\ndarkgreen DARKBLUE\n00000\n11110\n00010\n11010\n01010\n\nwall_bl\nDARKGREEN DARKBLUE \n01010\n01011\n01000\n01111\n00000\n\nwall_br\ndarkgreen DARKBLUE\n01010\n11010\n00010\n11110\n00000\n\nwall_h\ndarkgreen DARKBLUE\n00000\n11111\n00000\n11111\n00000\n\nwall_v\ndarkgreen DARKBLUE\n01010\n01010\n01010\n01010\n01010\n\nwall_t\nDARKGREEN DARKBLUE\n01010\n11011\n00000\n11111\n00000\n\n\nPlayer\ngreen\n0.0.0\n.000.\n00000\n.000.\n0.0.0\n\n\n\nhand\nTRANSPARENT\n..000\n..000\n0.000\n.0000\n...00\n\nhand_turn\nTRANSPARENT\n000..\n.000.\n..000\n0.000\n.0000\n\n\nbody_1_1\nred blue\n....1\n...11\n..111\n.1111\n11111\n\nbody_1_2\nred blue\n11100\n11100\n11100\n11100\n11100\n\nbody_1_3\nred blue\n0....\n00...\n000..\n0000.\n00000\n\nbody_1_4\nblue\n\nbody_1_5\nred blue\n11100\n11100\n11100\n11000\n11000\n\nbody_1_6\nred\n\nbody_1_7\nred blue\n11111\n.1111\n..111\n...11\n....1\n\nbody_1_8\nred blue\n11000\n11000\n11000\n11000\n11000\n\nbody_1_9\nred\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\nbody_2_1\nred blue\n....0\n...00\n..100\n.1110\n11111\n\nbody_2_2\nred \n\nbody_2_3\nred blue\n0....\n00...\n000..\n0000.\n00000\n\nbody_2_4\nblue\n\nbody_2_5\nred blue\n00000\n10000\n11100\n11110\n11111\n\nbody_2_6\nred\n\nbody_2_7\nred blue\n11111\n.1111\n..111\n...11\n....1\n\nbody_2_8\nblue blue\n11000\n11000\n11000\n11000\n11000\n\nbody_2_9\nred blue\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\nbody_3_1\nred red\n....1\n...11\n..111\n.1111\n11111\n\nbody_3_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_3_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_3_4\nred blue\n00000\n00000\n00111\n11111\n11111\n\nbody_3_5\nred blue\n00000\n00000\n11111\n11111\n11111\n\nbody_3_6\nred blue\n00000\n00000\n11111\n11111\n11111\n\nbody_3_7\nblue blue\n11111\n.1111\n..111\n...11\n....1\n\nbody_3_8\nblue blue\n11000\n11000\n11000\n11000\n11000\n\nbody_3_9\nblue\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\nbody_4_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_4_2\nred \n\nbody_4_3\nred blue\n0....\n00...\n001..\n0111.\n11111\n\nbody_4_4\nred\n\nbody_4_5\nred blue\n00000\n00001\n00111\n01111\n11111\n\nbody_4_6\nblue\n\nbody_4_7\nred blue\n00001\n.0011\n..111\n...11\n....1\n\nbody_4_8\nblue blue\n11000\n11000\n11000\n11000\n11000\n\nbody_4_9\nblue blue\n10000\n1100.\n111..\n11...\n1....\n\n\nbody_5_1\nblue red\n....1\n...11\n..111\n.1111\n11111\n\nbody_5_2\nblue red\n11100\n11100\n11100\n11100\n11100\n\nbody_5_3\nblue red\n0....\n00...\n000..\n0000.\n00000\n\nbody_5_4\nred\n\nbody_5_5\nblue red\n11100\n11100\n11100\n11000\n11000\n\nbody_5_6\nblue\n\nbody_5_7\nblue red\n11111\n.1111\n..111\n...11\n....1\n\nbody_5_8\nblue red\n11000\n11000\n11000\n11000\n11000\n\nbody_5_9\nblue\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\nbody_6_1\nblue red\n....0\n...00\n..100\n.1110\n11111\n\nbody_6_2\nblue \n\nbody_6_3\nblue red\n0....\n00...\n000..\n0000.\n00000\n\nbody_6_4\nred\n\nbody_6_5\nblue red\n00000\n10000\n11100\n11110\n11111\n\nbody_6_6\nblue\n\nbody_6_7\nblue red\n11111\n.1111\n..111\n...11\n....1\n\nbody_6_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_6_9\nblue red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\n\n\nbody_7_1\nblue blue\n....1\n...11\n..111\n.1111\n11111\n\nbody_7_2\nblue blue\n11100\n11100\n11100\n11100\n11100\n\nbody_7_3\nblue blue\n0....\n00...\n000..\n0000.\n00000\n\nbody_7_4\nblue red\n00000\n00000\n00111\n11111\n11111\n\nbody_7_5\nblue red\n00000\n00000\n11111\n11111\n11111\n\nbody_7_6\nblue red\n00000\n00000\n11111\n11111\n11111\n\nbody_7_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_7_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_7_9\nred\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\n\nbody_8_1\nblue blue\n....0\n...00\n..100\n.1110\n11111\n\nbody_8_2\nblue \n\nbody_8_3\nblue red\n0....\n00...\n001..\n0111.\n11111\n\nbody_8_4\nblue\n\nbody_8_5\nblue red\n00000\n00001\n00111\n01111\n11111\n\nbody_8_6\nred\n\nbody_8_7\nblue red\n00001\n.0011\n..111\n...11\n....1\n\nbody_8_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_8_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\n\nball_wwww\nLIGHTGRAY LIGHTGRAY\n.000.\n00000\n00111\n11111\n.111.\n\nball_bbbb\nDARKGRAY DARKGRAY\n.000.\n00000\n00111\n11111\n.111.\n\nball_bbww\nDARKGRAY LIGHTGRAY\n.000.\n00000\n00111\n11111\n.111.\n\nball_wwbb\nLIGHTGRAY DARKGRAY\n.000.\n00000\n00111\n11111\n.111.\n\nball_bwbw\nLIGHTGRAY DARKGRAY \n.001.\n00011\n00111\n00111\n.011.\n\nball_wbwb\nDARKGRAY LIGHTGRAY \n.001.\n00011\n00111\n00111\n.011.\n\nt\nTRANSPARENT\n\n\n\nsprt_0_0 !\n#ec7153\n00000\n00000\n00000\n00000\n00000\n\nsprt_1_0 @\n#ec7153 #ecd25c\n00000\n00011\n00111\n00111\n00111\n\nsprt_2_0 £\n#ec7153 #ecd25c\n00000\n11000\n11100\n11100\n11100\n\nsprt_3_0 $\n#ec7153\n00000\n00000\n00000\n00000\n00000\n\nsprt_0_1 %\n#ec7153 #ecd25c\n00000\n00000\n00111\n01111\n01111\n\nsprt_1_1 ^\n#ec7153 #ecd25c\n00111\n00011\n10000\n11000\n11000\n\nsprt_2_1 &\n#ecd25c #ec7153\n00011\n00111\n11110\n11100\n11100\n\nsprt_3_1 *\n#ec7153 #ecd25c\n00000\n00000\n11100\n11110\n11110\n\nsprt_0_2 _\n#1ca4ff #44875f\n01111\n01111\n00111\n00000\n00000\n\nsprt_1_2 +\n#44875f #1ca4ff\n00111\n00111\n01111\n11100\n11000\n\nsprt_2_2 {\n#1ca4ff #44875f\n00011\n00011\n00001\n11000\n11100\n\nsprt_3_2 }\n#44875f #1ca4ff\n00001\n00001\n00011\n11111\n11111\n\nsprt_0_3 :\n#1ca4ff\n00000\n00000\n00000\n00000\n00000\n\nsprt_1_3 \"\n#1ca4ff #44875f\n00111\n00111\n00111\n00011\n00000\n\nsprt_2_3 |\n#44875f #1ca4ff\n00011\n00011\n00011\n00111\n11111\n\nsprt_3_3 <\n#1ca4ff\n00000\n00000\n00000\n00000\n00000\n\n\ndarkred >\ndarkred\n\ndarkblue ?\ndarkblue\n\nstars ~\nwhite\n.....\n.....\n.0...\n.....\n.....\n\n=======\nLEGEND\n=======\n\nball = ball_wwww or ball_bbbb or ball_bbww or ball_wwbb or ball_bwbw or ball_wbwb\n\n\nbody = body_1_1 or body_1_2 or body_1_3 or body_1_4 or body_1_5 or body_1_6 or body_1_7 or body_1_8 or body_1_9 or body_2_1 or body_2_2 or body_2_3 or body_2_4 or body_2_5 or body_2_6 or body_2_7 or body_2_8 or body_2_9 or body_3_1 or body_3_2 or body_3_3 or body_3_4 or body_3_5 or body_3_6 or body_3_7 or body_3_8 or body_3_9 or body_4_1 or body_4_2 or body_4_3 or body_4_4 or body_4_5 or body_4_6 or body_4_7 or body_4_8 or body_4_9 or body_5_1 or body_5_2 or body_5_3 or body_5_4 or body_5_5 or body_5_6 or body_5_7 or body_5_8 or body_5_9 or body_6_1 or body_6_2 or body_6_3 or body_6_4 or body_6_5 or body_6_6 or body_6_7 or body_6_8 or body_6_9 or body_7_1 or body_7_2 or body_7_3 or body_7_4 or body_7_5 or body_7_6 or body_7_7 or body_7_8 or body_7_9 or body_8_1 or body_8_2 or body_8_3 or body_8_4 or body_8_5 or body_8_6 or body_8_7 or body_8_8 or body_8_9\n\nhands = hand or hand_turn\n\napparatus = hands or body or ball\n. = Background\n# = Wall\nP = Player\n\n1 = body_1_1\n2 = body_1_2 and ball_wwww\n3 = body_1_3\n4 = body_1_4 and ball_wwww\n5 = body_1_5 and hand and Player\n6 = body_1_6 and ball_wwww\n7 = body_1_7\n8 = body_1_8 and ball_wwww\n9 = body_1_9\n\n\nq = wall and body_3_1 \nw = wall and body_3_2 and ball_wwww\ne = wall and body_3_3 \nr = wall and body_3_4 and ball_wwbb\ng = wall and body_3_5 \ny = wall and body_3_6 and ball_wwbb\nu = wall and body_3_7 \ni = wall and body_3_8 and ball_bbbb\no = wall and body_3_9 \n\n(\nq = wall \nw = wall and ball_wwww\ne = wall \nr = wall and ball_wwbb\ng = wall \ny = wall and ball_wwbb\nu = wall \ni = wall and ball_bbbb\no = wall \n)\n\nz = wall_tl and wall\nx = wall_tr and wall\nc = wall_bl and wall\nf = wall_br and wall\nb = wall_h and wall\nn = wall_v and wall\nm = wall_t and wall\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nblack\nWall\nPlayer\nbody\nball\nhands\nwall_tl, wall_tr, wall_bl, wall_br, wall_h, wall_v, wall_t\nt\n\nsprt_0_0, sprt_0_1, sprt_0_2, sprt_0_3, sprt_1_0, sprt_1_1, sprt_1_2, sprt_1_3, sprt_2_0, sprt_2_1, sprt_2_2, sprt_2_3, sprt_3_0, sprt_3_1, sprt_3_2, sprt_3_3, darkred, darkblue, stars\n\n======\nRULES\n======\n\n\n(ball translations)\n[ moving player ] [ ball no wall ] -> [ moving player ] [ moving ball ]\n\n(ball rotations)\n\nright [ ball | action player | ball ] -> [ down ball | action player | up ball ]\ndown [ ball | action player | ball ] -> [ left ball | action player | right ball ]\n\n\n(mark north of hand with t)\ndown [ | hand_turn ] -> [ t | hand_turn ]\nright [ hand_turn ] [ ball | t no wall | ball ] -> [ hand_turn ] [ down ball | t | left ball]\nright [ hand_turn ] [ ball | no wall no t | ball ] -> [ hand_turn ] [ right ball | no t | up ball]\n[t]->[]\n\n[ up ball_wwww ] -> [ ball_wwbb ]\n[ down ball_wwww ] -> [ ball_bbww ]\n[ right ball_wwww ] -> [ ball_wbwb ]\n[ left ball_wwww ] -> [ ball_bwbw ]\n\n[ up ball_bbbb ] -> [ ball_bbww ]\n[ down ball_bbbb ] -> [ ball_wwbb ]\n[ right ball_bbbb ] -> [ ball_bwbw ]\n[ left ball_bbbb ] -> [ ball_wbwb ]\n\n[ up ball_bbww ] -> [ ball_wwww ]\n[ down ball_bbww ] -> [ ball_bbbb ]\n[ right ball_bbww ] -> [ ball_bbww ]\n[ left ball_bbww ] -> [ ball_bbww ]\n\n[ up ball_wwbb ] -> [ ball_bbbb ]\n[ down ball_wwbb ] -> [ ball_wwww ]\n[ right ball_wwbb ] -> [ ball_wwbb ]\n[ left ball_wwbb ] -> [ ball_wwbb ]\n\n[ up ball_bwbw ] -> [ ball_bwbw ]\n[ down ball_bwbw ] -> [ ball_bwbw ]\n[ right ball_bwbw ] -> [ ball_wwww ]\n[ left ball_bwbw ] -> [ ball_bbbb ]\n\n[ up ball_wbwb ] -> [ ball_wbwb ]\n[ down ball_wbwb ] -> [ ball_wbwb ]\n[ right ball_wbwb ] -> [ ball_bbbb ]\n[ left ball_wbwb ] -> [ ball_wwww ]\n\n\n\n\n[ action player ] [ body_1_1 no wall ] -> [ action player ] [ body_2_1 ]\n[ action player ] [ body_1_2 no wall ] -> [ action player ] [ body_2_2 ]\n[ action player ] [ body_1_3 no wall ] -> [ action player ] [ body_2_3 ]\n[ action player ] [ body_1_4 no wall ] -> [ action player ] [ body_2_4 ]\n[ action player ] [ body_1_5 no wall ] -> [ action player ] [ body_2_5 ]\n[ action player ] [ body_1_6 no wall ] -> [ action player ] [ body_2_6 ]\n[ action player ] [ body_1_7 no wall ] -> [ action player ] [ body_2_7 ]\n[ action player ] [ body_1_8 no wall ] -> [ action player ] [ body_2_8 ]\n[ action player ] [ body_1_9 no wall ] -> [ action player ] [ body_2_9 ]\n\n[ action player ] [ body_3_1 no wall ] -> [ action player ] [ body_4_1 ]\n[ action player ] [ body_3_2 no wall ] -> [ action player ] [ body_4_2 ]\n[ action player ] [ body_3_3 no wall ] -> [ action player ] [ body_4_3 ]\n[ action player ] [ body_3_4 no wall ] -> [ action player ] [ body_4_4 ]\n[ action player ] [ body_3_5 no wall ] -> [ action player ] [ body_4_5 ]\n[ action player ] [ body_3_6 no wall ] -> [ action player ] [ body_4_6 ]\n[ action player ] [ body_3_7 no wall ] -> [ action player ] [ body_4_7 ]\n[ action player ] [ body_3_8 no wall ] -> [ action player ] [ body_4_8 ]\n[ action player ] [ body_3_9 no wall ] -> [ action player ] [ body_4_9 ]\n\n[ action player ] [ body_5_1 no wall ] -> [ action player ] [ body_6_1 ]\n[ action player ] [ body_5_2 no wall ] -> [ action player ] [ body_6_2 ]\n[ action player ] [ body_5_3 no wall ] -> [ action player ] [ body_6_3 ]\n[ action player ] [ body_5_4 no wall ] -> [ action player ] [ body_6_4 ]\n[ action player ] [ body_5_5 no wall ] -> [ action player ] [ body_6_5 ]\n[ action player ] [ body_5_6 no wall ] -> [ action player ] [ body_6_6 ]\n[ action player ] [ body_5_7 no wall ] -> [ action player ] [ body_6_7 ]\n[ action player ] [ body_5_8 no wall ] -> [ action player ] [ body_6_8 ]\n[ action player ] [ body_5_9 no wall ] -> [ action player ] [ body_6_9 ]\n\n[ action player ] [ body_7_1 no wall ] -> [ action player ] [ body_8_1 ]\n[ action player ] [ body_7_2 no wall ] -> [ action player ] [ body_8_2 ]\n[ action player ] [ body_7_3 no wall ] -> [ action player ] [ body_8_3 ]\n[ action player ] [ body_7_4 no wall ] -> [ action player ] [ body_8_4 ]\n[ action player ] [ body_7_5 no wall ] -> [ action player ] [ body_8_5 ]\n[ action player ] [ body_7_6 no wall ] -> [ action player ] [ body_8_6 ]\n[ action player ] [ body_7_7 no wall ] -> [ action player ] [ body_8_7 ]\n[ action player ] [ body_7_8 no wall ] -> [ action player ] [ body_8_8 ]\n[ action player ] [ body_7_9 no wall ] -> [ action player ] [ body_8_9 ]\n\n\n[ hand_turn ] [ body_2_1 no wall ] -> [ hand_turn ] [ body_3_1 ]\n[ hand_turn ] [ body_2_2 no wall ] -> [ hand_turn ] [ body_3_2 ]\n[ hand_turn ] [ body_2_3 no wall ] -> [ hand_turn ] [ body_3_3 ]\n[ hand_turn ] [ body_2_4 no wall ] -> [ hand_turn ] [ body_3_4 ]\n[ hand_turn ] [ body_2_5 no wall ] -> [ hand_turn ] [ body_3_5 ]\n[ hand_turn ] [ body_2_6 no wall ] -> [ hand_turn ] [ body_3_6 ]\n[ hand_turn ] [ body_2_7 no wall ] -> [ hand_turn ] [ body_3_7 ]\n[ hand_turn ] [ body_2_8 no wall ] -> [ hand_turn ] [ body_3_8 ]\n[ hand_turn ] [ body_2_9 no wall ] -> [ hand_turn ] [ body_3_9 ]\n\n[ hand_turn ] [ body_4_1 no wall ] -> [ hand_turn ] [ body_5_1 ]\n[ hand_turn ] [ body_4_2 no wall ] -> [ hand_turn ] [ body_5_2 ]\n[ hand_turn ] [ body_4_3 no wall ] -> [ hand_turn ] [ body_5_3 ]\n[ hand_turn ] [ body_4_4 no wall ] -> [ hand_turn ] [ body_5_4 ]\n[ hand_turn ] [ body_4_5 no wall ] -> [ hand_turn ] [ body_5_5 ]\n[ hand_turn ] [ body_4_6 no wall ] -> [ hand_turn ] [ body_5_6 ]\n[ hand_turn ] [ body_4_7 no wall ] -> [ hand_turn ] [ body_5_7 ]\n[ hand_turn ] [ body_4_8 no wall ] -> [ hand_turn ] [ body_5_8 ]\n[ hand_turn ] [ body_4_9 no wall ] -> [ hand_turn ] [ body_5_9 ]\n\n[ hand_turn ] [ body_6_1 no wall ] -> [ hand_turn ] [ body_7_1 ]\n[ hand_turn ] [ body_6_2 no wall ] -> [ hand_turn ] [ body_7_2 ]\n[ hand_turn ] [ body_6_3 no wall ] -> [ hand_turn ] [ body_7_3 ]\n[ hand_turn ] [ body_6_4 no wall ] -> [ hand_turn ] [ body_7_4 ]\n[ hand_turn ] [ body_6_5 no wall ] -> [ hand_turn ] [ body_7_5 ]\n[ hand_turn ] [ body_6_6 no wall ] -> [ hand_turn ] [ body_7_6 ]\n[ hand_turn ] [ body_6_7 no wall ] -> [ hand_turn ] [ body_7_7 ]\n[ hand_turn ] [ body_6_8 no wall ] -> [ hand_turn ] [ body_7_8 ]\n[ hand_turn ] [ body_6_9 no wall ] -> [ hand_turn ] [ body_7_9 ]\n\n[ hand_turn ] [ body_8_1 no wall ] -> [ hand_turn ] [ body_1_1 ]\n[ hand_turn ] [ body_8_2 no wall ] -> [ hand_turn ] [ body_1_2 ]\n[ hand_turn ] [ body_8_3 no wall ] -> [ hand_turn ] [ body_1_3 ]\n[ hand_turn ] [ body_8_4 no wall ] -> [ hand_turn ] [ body_1_4 ]\n[ hand_turn ] [ body_8_5 no wall ] -> [ hand_turn ] [ body_1_5 ]\n[ hand_turn ] [ body_8_6 no wall ] -> [ hand_turn ] [ body_1_6 ]\n[ hand_turn ] [ body_8_7 no wall ] -> [ hand_turn ] [ body_1_7 ]\n[ hand_turn ] [ body_8_8 no wall ] -> [ hand_turn ] [ body_1_8 ]\n[ hand_turn ] [ body_8_9 no wall ] -> [ hand_turn ] [ body_1_9 ]\n\n\n\n\n\n\n\n\n\n\n(need to do body rotations as well here!)\n\n(move object)\n[moving player ] [ stationary apparatus] -> [ moving player ] [ moving apparatus]\n\n\nright [ ball | action player | ball ] -> [ down ball | action player | up ball ]\ndown [ ball | action player | ball ] -> [ left ball | action player | right ball ]\n\n\ndown [ | hand_turn ] -> [ t | hand_turn ]\nright [ hand_turn ] [ ball | t | ball ] -> [ hand_turn ] [ down ball | t | left ball]\nright [ hand_turn ] [ ball | no t | ball ] -> [ hand_turn ] [ right ball | no t | up ball]\n\n\n\n[ hand_turn ] -> [ hand]\n[ action player ] [ hand ] -> [ action player ] [ hand_turn ] again \n\n[t]->[]\n\n[ body wall ] -> [ stationary body wall ] \n[ ball wall ] -> [ stationary ball wall ]\n\n[ > body | wall ] -> cancel\n\n\nlate down [ ball_wwww body_3_2 | player | ball_bbbb body_3_8 ] -> [ ball_wwww body_3_2 | player t | ball_bbbb body_3_8 ]\n\nlate right [ ball_wwbb body_3_4 | player t| ball_wwbb body_3_6 ] -> win \n\nlate [t] -> [ ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nno player\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n,,zbbbx,,\n,,nqwen,,\n,,nrgyn,,\n,,nuion,,\nzbmbbbmbx\nn.......n\nn.......n\nn..123..n\nn..456..n\nn..789..n\nn.......n\nn.......n\ncbbbbbbbf\n\nmessage The day is over\n\n!@£$\n%^&*\n_+{}\n:\"|<\n\n\n!!!$\n!@£!\n:\"|:\n::::\n\n\n>>>>\n>>>>\n????\n????\n\n?\n",[3,0,0,1,2,2,3,0,1,1,2,2,3,3,3,0,1,1,4],"background black:0,0,0,0,background wall wall_tl:1,background wall wall_v:2,2,2,2,\n2,2,2,background wall wall_bl:3,0,0,0,0,background wall wall_h:4,\nbackground:5,5,5,5,5,5,5,4,1,\n2,2,2,background wall wall_t:6,5,5,5,5,5,\n5,5,4,4,background body_3_1 wall:7,background ball_wwbb body_3_4 wall:8,background body_3_7 wall:9,4,5,\n5,background body_3_1:10,background ball_wwww body_3_4:11,background body_3_7:12,5,5,4,4,background ball_wwww body_3_2 wall:13,\nbackground body_3_5 wall:14,background ball_bbbb body_3_8 wall:15,4,5,5,background ball_wbwb body_3_2:16,background body_3_5 hand player:17,background ball_wbwb body_3_8:18,5,\n5,4,4,background body_3_3 wall:19,background ball_wwbb body_3_6 wall:20,background body_3_9 wall:21,4,5,5,\nbackground body_3_3:22,background ball_bbbb body_3_6:23,background body_3_9:24,5,5,4,background wall wall_tr:25,2,2,\n2,6,5,5,5,5,5,5,5,\n4,0,0,0,0,4,5,5,5,\n5,5,5,5,4,0,0,0,0,\n25,2,2,2,2,2,2,2,background wall wall_br:26,\n",1,"1627891893861.785"] + "a distant sunset", + ["title a distant sunset\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nnorepeat_action\nagain_interval 0.3\n\n\nbackground_color darkblue\n\ntext_color LIGHTGRAY\n\n========\nOBJECTS\n========\n\nblack ,\nDARKBLUE\n\nBackground\nDARKBLUE\n\n\n\nWall\nDARKGREEN\n\nwall_tl\nDARKGREEN DARKBLUE \n00000\n01111\n01000\n01011\n01010\n\nwall_tr\ndarkgreen DARKBLUE\n00000\n11110\n00010\n11010\n01010\n\nwall_bl\nDARKGREEN DARKBLUE \n01010\n01011\n01000\n01111\n00000\n\nwall_br\ndarkgreen DARKBLUE\n01010\n11010\n00010\n11110\n00000\n\nwall_h\ndarkgreen DARKBLUE\n00000\n11111\n00000\n11111\n00000\n\nwall_v\ndarkgreen DARKBLUE\n01010\n01010\n01010\n01010\n01010\n\nwall_t\nDARKGREEN DARKBLUE\n01010\n11011\n00000\n11111\n00000\n\n\nPlayer\ngreen\n0.0.0\n.000.\n00000\n.000.\n0.0.0\n\n\n\nhand\nTRANSPARENT\n..000\n..000\n0.000\n.0000\n...00\n\nhand_turn\nTRANSPARENT\n000..\n.000.\n..000\n0.000\n.0000\n\n\nbody_1_1\nred blue\n....1\n...11\n..111\n.1111\n11111\n\nbody_1_2\nred blue\n11100\n11100\n11100\n11100\n11100\n\nbody_1_3\nred blue\n0....\n00...\n000..\n0000.\n00000\n\nbody_1_4\nblue\n\nbody_1_5\nred blue\n11100\n11100\n11100\n11000\n11000\n\nbody_1_6\nred\n\nbody_1_7\nred blue\n11111\n.1111\n..111\n...11\n....1\n\nbody_1_8\nred blue\n11000\n11000\n11000\n11000\n11000\n\nbody_1_9\nred\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\nbody_2_1\nred blue\n....0\n...00\n..100\n.1110\n11111\n\nbody_2_2\nred \n\nbody_2_3\nred blue\n0....\n00...\n000..\n0000.\n00000\n\nbody_2_4\nblue\n\nbody_2_5\nred blue\n00000\n10000\n11100\n11110\n11111\n\nbody_2_6\nred\n\nbody_2_7\nred blue\n11111\n.1111\n..111\n...11\n....1\n\nbody_2_8\nblue blue\n11000\n11000\n11000\n11000\n11000\n\nbody_2_9\nred blue\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\nbody_3_1\nred red\n....1\n...11\n..111\n.1111\n11111\n\nbody_3_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_3_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_3_4\nred blue\n00000\n00000\n00111\n11111\n11111\n\nbody_3_5\nred blue\n00000\n00000\n11111\n11111\n11111\n\nbody_3_6\nred blue\n00000\n00000\n11111\n11111\n11111\n\nbody_3_7\nblue blue\n11111\n.1111\n..111\n...11\n....1\n\nbody_3_8\nblue blue\n11000\n11000\n11000\n11000\n11000\n\nbody_3_9\nblue\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\nbody_4_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_4_2\nred \n\nbody_4_3\nred blue\n0....\n00...\n001..\n0111.\n11111\n\nbody_4_4\nred\n\nbody_4_5\nred blue\n00000\n00001\n00111\n01111\n11111\n\nbody_4_6\nblue\n\nbody_4_7\nred blue\n00001\n.0011\n..111\n...11\n....1\n\nbody_4_8\nblue blue\n11000\n11000\n11000\n11000\n11000\n\nbody_4_9\nblue blue\n10000\n1100.\n111..\n11...\n1....\n\n\nbody_5_1\nblue red\n....1\n...11\n..111\n.1111\n11111\n\nbody_5_2\nblue red\n11100\n11100\n11100\n11100\n11100\n\nbody_5_3\nblue red\n0....\n00...\n000..\n0000.\n00000\n\nbody_5_4\nred\n\nbody_5_5\nblue red\n11100\n11100\n11100\n11000\n11000\n\nbody_5_6\nblue\n\nbody_5_7\nblue red\n11111\n.1111\n..111\n...11\n....1\n\nbody_5_8\nblue red\n11000\n11000\n11000\n11000\n11000\n\nbody_5_9\nblue\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\nbody_6_1\nblue red\n....0\n...00\n..100\n.1110\n11111\n\nbody_6_2\nblue \n\nbody_6_3\nblue red\n0....\n00...\n000..\n0000.\n00000\n\nbody_6_4\nred\n\nbody_6_5\nblue red\n00000\n10000\n11100\n11110\n11111\n\nbody_6_6\nblue\n\nbody_6_7\nblue red\n11111\n.1111\n..111\n...11\n....1\n\nbody_6_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_6_9\nblue red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\n\n\nbody_7_1\nblue blue\n....1\n...11\n..111\n.1111\n11111\n\nbody_7_2\nblue blue\n11100\n11100\n11100\n11100\n11100\n\nbody_7_3\nblue blue\n0....\n00...\n000..\n0000.\n00000\n\nbody_7_4\nblue red\n00000\n00000\n00111\n11111\n11111\n\nbody_7_5\nblue red\n00000\n00000\n11111\n11111\n11111\n\nbody_7_6\nblue red\n00000\n00000\n11111\n11111\n11111\n\nbody_7_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_7_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_7_9\nred\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\n\nbody_8_1\nblue blue\n....0\n...00\n..100\n.1110\n11111\n\nbody_8_2\nblue \n\nbody_8_3\nblue red\n0....\n00...\n001..\n0111.\n11111\n\nbody_8_4\nblue\n\nbody_8_5\nblue red\n00000\n00001\n00111\n01111\n11111\n\nbody_8_6\nred\n\nbody_8_7\nblue red\n00001\n.0011\n..111\n...11\n....1\n\nbody_8_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_8_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\n\nball_wwww\nLIGHTGRAY LIGHTGRAY\n.000.\n00000\n00111\n11111\n.111.\n\nball_bbbb\nDARKGRAY DARKGRAY\n.000.\n00000\n00111\n11111\n.111.\n\nball_bbww\nDARKGRAY LIGHTGRAY\n.000.\n00000\n00111\n11111\n.111.\n\nball_wwbb\nLIGHTGRAY DARKGRAY\n.000.\n00000\n00111\n11111\n.111.\n\nball_bwbw\nLIGHTGRAY DARKGRAY \n.001.\n00011\n00111\n00111\n.011.\n\nball_wbwb\nDARKGRAY LIGHTGRAY \n.001.\n00011\n00111\n00111\n.011.\n\nt\nTRANSPARENT\n\n\n\nsprt_0_0 !\n#ec7153\n00000\n00000\n00000\n00000\n00000\n\nsprt_1_0 @\n#ec7153 #ecd25c\n00000\n00011\n00111\n00111\n00111\n\nsprt_2_0 £\n#ec7153 #ecd25c\n00000\n11000\n11100\n11100\n11100\n\nsprt_3_0 $\n#ec7153\n00000\n00000\n00000\n00000\n00000\n\nsprt_0_1 %\n#ec7153 #ecd25c\n00000\n00000\n00111\n01111\n01111\n\nsprt_1_1 ^\n#ec7153 #ecd25c\n00111\n00011\n10000\n11000\n11000\n\nsprt_2_1 &\n#ecd25c #ec7153\n00011\n00111\n11110\n11100\n11100\n\nsprt_3_1 *\n#ec7153 #ecd25c\n00000\n00000\n11100\n11110\n11110\n\nsprt_0_2 _\n#1ca4ff #44875f\n01111\n01111\n00111\n00000\n00000\n\nsprt_1_2 +\n#44875f #1ca4ff\n00111\n00111\n01111\n11100\n11000\n\nsprt_2_2 {\n#1ca4ff #44875f\n00011\n00011\n00001\n11000\n11100\n\nsprt_3_2 }\n#44875f #1ca4ff\n00001\n00001\n00011\n11111\n11111\n\nsprt_0_3 :\n#1ca4ff\n00000\n00000\n00000\n00000\n00000\n\nsprt_1_3 \"\n#1ca4ff #44875f\n00111\n00111\n00111\n00011\n00000\n\nsprt_2_3 |\n#44875f #1ca4ff\n00011\n00011\n00011\n00111\n11111\n\nsprt_3_3 <\n#1ca4ff\n00000\n00000\n00000\n00000\n00000\n\n\ndarkred >\ndarkred\n\ndarkblue ?\ndarkblue\n\nstars ~\nwhite\n.....\n.....\n.0...\n.....\n.....\n\n=======\nLEGEND\n=======\n\nball = ball_wwww or ball_bbbb or ball_bbww or ball_wwbb or ball_bwbw or ball_wbwb\n\n\nbody = body_1_1 or body_1_2 or body_1_3 or body_1_4 or body_1_5 or body_1_6 or body_1_7 or body_1_8 or body_1_9 or body_2_1 or body_2_2 or body_2_3 or body_2_4 or body_2_5 or body_2_6 or body_2_7 or body_2_8 or body_2_9 or body_3_1 or body_3_2 or body_3_3 or body_3_4 or body_3_5 or body_3_6 or body_3_7 or body_3_8 or body_3_9 or body_4_1 or body_4_2 or body_4_3 or body_4_4 or body_4_5 or body_4_6 or body_4_7 or body_4_8 or body_4_9 or body_5_1 or body_5_2 or body_5_3 or body_5_4 or body_5_5 or body_5_6 or body_5_7 or body_5_8 or body_5_9 or body_6_1 or body_6_2 or body_6_3 or body_6_4 or body_6_5 or body_6_6 or body_6_7 or body_6_8 or body_6_9 or body_7_1 or body_7_2 or body_7_3 or body_7_4 or body_7_5 or body_7_6 or body_7_7 or body_7_8 or body_7_9 or body_8_1 or body_8_2 or body_8_3 or body_8_4 or body_8_5 or body_8_6 or body_8_7 or body_8_8 or body_8_9\n\nhands = hand or hand_turn\n\napparatus = hands or body or ball\n. = Background\n# = Wall\nP = Player\n\n1 = body_1_1\n2 = body_1_2 and ball_wwww\n3 = body_1_3\n4 = body_1_4 and ball_wwww\n5 = body_1_5 and hand and Player\n6 = body_1_6 and ball_wwww\n7 = body_1_7\n8 = body_1_8 and ball_wwww\n9 = body_1_9\n\n\nq = wall and body_3_1 \nw = wall and body_3_2 and ball_wwww\ne = wall and body_3_3 \nr = wall and body_3_4 and ball_wwbb\ng = wall and body_3_5 \ny = wall and body_3_6 and ball_wwbb\nu = wall and body_3_7 \ni = wall and body_3_8 and ball_bbbb\no = wall and body_3_9 \n\n(\nq = wall \nw = wall and ball_wwww\ne = wall \nr = wall and ball_wwbb\ng = wall \ny = wall and ball_wwbb\nu = wall \ni = wall and ball_bbbb\no = wall \n)\n\nz = wall_tl and wall\nx = wall_tr and wall\nc = wall_bl and wall\nf = wall_br and wall\nb = wall_h and wall\nn = wall_v and wall\nm = wall_t and wall\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nblack\nWall\nPlayer\nbody\nball\nhands\nwall_tl, wall_tr, wall_bl, wall_br, wall_h, wall_v, wall_t\nt\n\nsprt_0_0, sprt_0_1, sprt_0_2, sprt_0_3, sprt_1_0, sprt_1_1, sprt_1_2, sprt_1_3, sprt_2_0, sprt_2_1, sprt_2_2, sprt_2_3, sprt_3_0, sprt_3_1, sprt_3_2, sprt_3_3, darkred, darkblue, stars\n\n======\nRULES\n======\n\n\n(ball translations)\n[ moving player ] [ ball no wall ] -> [ moving player ] [ moving ball ]\n\n(ball rotations)\n\nright [ ball | action player | ball ] -> [ down ball | action player | up ball ]\ndown [ ball | action player | ball ] -> [ left ball | action player | right ball ]\n\n\n(mark north of hand with t)\ndown [ | hand_turn ] -> [ t | hand_turn ]\nright [ hand_turn ] [ ball | t no wall | ball ] -> [ hand_turn ] [ down ball | t | left ball]\nright [ hand_turn ] [ ball | no wall no t | ball ] -> [ hand_turn ] [ right ball | no t | up ball]\n[t]->[]\n\n[ up ball_wwww ] -> [ ball_wwbb ]\n[ down ball_wwww ] -> [ ball_bbww ]\n[ right ball_wwww ] -> [ ball_wbwb ]\n[ left ball_wwww ] -> [ ball_bwbw ]\n\n[ up ball_bbbb ] -> [ ball_bbww ]\n[ down ball_bbbb ] -> [ ball_wwbb ]\n[ right ball_bbbb ] -> [ ball_bwbw ]\n[ left ball_bbbb ] -> [ ball_wbwb ]\n\n[ up ball_bbww ] -> [ ball_wwww ]\n[ down ball_bbww ] -> [ ball_bbbb ]\n[ right ball_bbww ] -> [ ball_bbww ]\n[ left ball_bbww ] -> [ ball_bbww ]\n\n[ up ball_wwbb ] -> [ ball_bbbb ]\n[ down ball_wwbb ] -> [ ball_wwww ]\n[ right ball_wwbb ] -> [ ball_wwbb ]\n[ left ball_wwbb ] -> [ ball_wwbb ]\n\n[ up ball_bwbw ] -> [ ball_bwbw ]\n[ down ball_bwbw ] -> [ ball_bwbw ]\n[ right ball_bwbw ] -> [ ball_wwww ]\n[ left ball_bwbw ] -> [ ball_bbbb ]\n\n[ up ball_wbwb ] -> [ ball_wbwb ]\n[ down ball_wbwb ] -> [ ball_wbwb ]\n[ right ball_wbwb ] -> [ ball_bbbb ]\n[ left ball_wbwb ] -> [ ball_wwww ]\n\n\n\n\n[ action player ] [ body_1_1 no wall ] -> [ action player ] [ body_2_1 ]\n[ action player ] [ body_1_2 no wall ] -> [ action player ] [ body_2_2 ]\n[ action player ] [ body_1_3 no wall ] -> [ action player ] [ body_2_3 ]\n[ action player ] [ body_1_4 no wall ] -> [ action player ] [ body_2_4 ]\n[ action player ] [ body_1_5 no wall ] -> [ action player ] [ body_2_5 ]\n[ action player ] [ body_1_6 no wall ] -> [ action player ] [ body_2_6 ]\n[ action player ] [ body_1_7 no wall ] -> [ action player ] [ body_2_7 ]\n[ action player ] [ body_1_8 no wall ] -> [ action player ] [ body_2_8 ]\n[ action player ] [ body_1_9 no wall ] -> [ action player ] [ body_2_9 ]\n\n[ action player ] [ body_3_1 no wall ] -> [ action player ] [ body_4_1 ]\n[ action player ] [ body_3_2 no wall ] -> [ action player ] [ body_4_2 ]\n[ action player ] [ body_3_3 no wall ] -> [ action player ] [ body_4_3 ]\n[ action player ] [ body_3_4 no wall ] -> [ action player ] [ body_4_4 ]\n[ action player ] [ body_3_5 no wall ] -> [ action player ] [ body_4_5 ]\n[ action player ] [ body_3_6 no wall ] -> [ action player ] [ body_4_6 ]\n[ action player ] [ body_3_7 no wall ] -> [ action player ] [ body_4_7 ]\n[ action player ] [ body_3_8 no wall ] -> [ action player ] [ body_4_8 ]\n[ action player ] [ body_3_9 no wall ] -> [ action player ] [ body_4_9 ]\n\n[ action player ] [ body_5_1 no wall ] -> [ action player ] [ body_6_1 ]\n[ action player ] [ body_5_2 no wall ] -> [ action player ] [ body_6_2 ]\n[ action player ] [ body_5_3 no wall ] -> [ action player ] [ body_6_3 ]\n[ action player ] [ body_5_4 no wall ] -> [ action player ] [ body_6_4 ]\n[ action player ] [ body_5_5 no wall ] -> [ action player ] [ body_6_5 ]\n[ action player ] [ body_5_6 no wall ] -> [ action player ] [ body_6_6 ]\n[ action player ] [ body_5_7 no wall ] -> [ action player ] [ body_6_7 ]\n[ action player ] [ body_5_8 no wall ] -> [ action player ] [ body_6_8 ]\n[ action player ] [ body_5_9 no wall ] -> [ action player ] [ body_6_9 ]\n\n[ action player ] [ body_7_1 no wall ] -> [ action player ] [ body_8_1 ]\n[ action player ] [ body_7_2 no wall ] -> [ action player ] [ body_8_2 ]\n[ action player ] [ body_7_3 no wall ] -> [ action player ] [ body_8_3 ]\n[ action player ] [ body_7_4 no wall ] -> [ action player ] [ body_8_4 ]\n[ action player ] [ body_7_5 no wall ] -> [ action player ] [ body_8_5 ]\n[ action player ] [ body_7_6 no wall ] -> [ action player ] [ body_8_6 ]\n[ action player ] [ body_7_7 no wall ] -> [ action player ] [ body_8_7 ]\n[ action player ] [ body_7_8 no wall ] -> [ action player ] [ body_8_8 ]\n[ action player ] [ body_7_9 no wall ] -> [ action player ] [ body_8_9 ]\n\n\n[ hand_turn ] [ body_2_1 no wall ] -> [ hand_turn ] [ body_3_1 ]\n[ hand_turn ] [ body_2_2 no wall ] -> [ hand_turn ] [ body_3_2 ]\n[ hand_turn ] [ body_2_3 no wall ] -> [ hand_turn ] [ body_3_3 ]\n[ hand_turn ] [ body_2_4 no wall ] -> [ hand_turn ] [ body_3_4 ]\n[ hand_turn ] [ body_2_5 no wall ] -> [ hand_turn ] [ body_3_5 ]\n[ hand_turn ] [ body_2_6 no wall ] -> [ hand_turn ] [ body_3_6 ]\n[ hand_turn ] [ body_2_7 no wall ] -> [ hand_turn ] [ body_3_7 ]\n[ hand_turn ] [ body_2_8 no wall ] -> [ hand_turn ] [ body_3_8 ]\n[ hand_turn ] [ body_2_9 no wall ] -> [ hand_turn ] [ body_3_9 ]\n\n[ hand_turn ] [ body_4_1 no wall ] -> [ hand_turn ] [ body_5_1 ]\n[ hand_turn ] [ body_4_2 no wall ] -> [ hand_turn ] [ body_5_2 ]\n[ hand_turn ] [ body_4_3 no wall ] -> [ hand_turn ] [ body_5_3 ]\n[ hand_turn ] [ body_4_4 no wall ] -> [ hand_turn ] [ body_5_4 ]\n[ hand_turn ] [ body_4_5 no wall ] -> [ hand_turn ] [ body_5_5 ]\n[ hand_turn ] [ body_4_6 no wall ] -> [ hand_turn ] [ body_5_6 ]\n[ hand_turn ] [ body_4_7 no wall ] -> [ hand_turn ] [ body_5_7 ]\n[ hand_turn ] [ body_4_8 no wall ] -> [ hand_turn ] [ body_5_8 ]\n[ hand_turn ] [ body_4_9 no wall ] -> [ hand_turn ] [ body_5_9 ]\n\n[ hand_turn ] [ body_6_1 no wall ] -> [ hand_turn ] [ body_7_1 ]\n[ hand_turn ] [ body_6_2 no wall ] -> [ hand_turn ] [ body_7_2 ]\n[ hand_turn ] [ body_6_3 no wall ] -> [ hand_turn ] [ body_7_3 ]\n[ hand_turn ] [ body_6_4 no wall ] -> [ hand_turn ] [ body_7_4 ]\n[ hand_turn ] [ body_6_5 no wall ] -> [ hand_turn ] [ body_7_5 ]\n[ hand_turn ] [ body_6_6 no wall ] -> [ hand_turn ] [ body_7_6 ]\n[ hand_turn ] [ body_6_7 no wall ] -> [ hand_turn ] [ body_7_7 ]\n[ hand_turn ] [ body_6_8 no wall ] -> [ hand_turn ] [ body_7_8 ]\n[ hand_turn ] [ body_6_9 no wall ] -> [ hand_turn ] [ body_7_9 ]\n\n[ hand_turn ] [ body_8_1 no wall ] -> [ hand_turn ] [ body_1_1 ]\n[ hand_turn ] [ body_8_2 no wall ] -> [ hand_turn ] [ body_1_2 ]\n[ hand_turn ] [ body_8_3 no wall ] -> [ hand_turn ] [ body_1_3 ]\n[ hand_turn ] [ body_8_4 no wall ] -> [ hand_turn ] [ body_1_4 ]\n[ hand_turn ] [ body_8_5 no wall ] -> [ hand_turn ] [ body_1_5 ]\n[ hand_turn ] [ body_8_6 no wall ] -> [ hand_turn ] [ body_1_6 ]\n[ hand_turn ] [ body_8_7 no wall ] -> [ hand_turn ] [ body_1_7 ]\n[ hand_turn ] [ body_8_8 no wall ] -> [ hand_turn ] [ body_1_8 ]\n[ hand_turn ] [ body_8_9 no wall ] -> [ hand_turn ] [ body_1_9 ]\n\n\n\n\n\n\n\n\n\n\n(need to do body rotations as well here!)\n\n(move object)\n[moving player ] [ stationary apparatus] -> [ moving player ] [ moving apparatus]\n\n\nright [ ball | action player | ball ] -> [ down ball | action player | up ball ]\ndown [ ball | action player | ball ] -> [ left ball | action player | right ball ]\n\n\ndown [ | hand_turn ] -> [ t | hand_turn ]\nright [ hand_turn ] [ ball | t | ball ] -> [ hand_turn ] [ down ball | t | left ball]\nright [ hand_turn ] [ ball | no t | ball ] -> [ hand_turn ] [ right ball | no t | up ball]\n\n\n\n[ hand_turn ] -> [ hand]\n[ action player ] [ hand ] -> [ action player ] [ hand_turn ] again \n\n[t]->[]\n\n[ body wall ] -> [ stationary body wall ] \n[ ball wall ] -> [ stationary ball wall ]\n\n[ > body | wall ] -> cancel\n\n\nlate down [ ball_wwww body_3_2 | player | ball_bbbb body_3_8 ] -> [ ball_wwww body_3_2 | player t | ball_bbbb body_3_8 ]\n\nlate right [ ball_wwbb body_3_4 | player t| ball_wwbb body_3_6 ] -> win \n\nlate [t] -> [ ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nno player\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n,,zbbbx,,\n,,nqwen,,\n,,nrgyn,,\n,,nuion,,\nzbmbbbmbx\nn.......n\nn.......n\nn..123..n\nn..456..n\nn..789..n\nn.......n\nn.......n\ncbbbbbbbf\n\nmessage The day is over\n\n!@£$\n%^&*\n_+{}\n:\"|<\n\n\n!!!$\n!@£!\n:\"|:\n::::\n\n\n>>>>\n>>>>\n????\n????\n\n?\n", [3, 0, 0, 1, 2, 2, 3, 0, 1, 1, 2, 2, 3, 3, 3, 0, 1, 1, 4], "background black:0,0,0,0,background wall wall_tl:1,background wall wall_v:2,2,2,2,\n2,2,2,background wall wall_bl:3,0,0,0,0,background wall wall_h:4,\nbackground:5,5,5,5,5,5,5,4,1,\n2,2,2,background wall wall_t:6,5,5,5,5,5,\n5,5,4,4,background body_3_1 wall:7,background ball_wwbb body_3_4 wall:8,background body_3_7 wall:9,4,5,\n5,background body_3_1:10,background ball_wwww body_3_4:11,background body_3_7:12,5,5,4,4,background ball_wwww body_3_2 wall:13,\nbackground body_3_5 wall:14,background ball_bbbb body_3_8 wall:15,4,5,5,background ball_wbwb body_3_2:16,background body_3_5 hand player:17,background ball_wbwb body_3_8:18,5,\n5,4,4,background body_3_3 wall:19,background ball_wwbb body_3_6 wall:20,background body_3_9 wall:21,4,5,5,\nbackground body_3_3:22,background ball_bbbb body_3_6:23,background body_3_9:24,5,5,4,background wall wall_tr:25,2,2,\n2,6,5,5,5,5,5,5,5,\n4,0,0,0,0,4,5,5,5,\n5,5,5,5,4,0,0,0,0,\n25,2,2,2,2,2,2,2,background wall wall_br:26,\n", 1, "1627891893861.785"] ], [ - "Seize the flag!", - ["title Seize the flag!\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nnorepeat_action\nagain_interval 0.3\n\n\nbackground_color darkblue\n\ntext_color gray\n\n\nrun_rules_on_level_start\n\n\n========\nOBJECTS\n========\n\nblack ,\nblack\n\nBackground\nDARKGREEN\n\nlighttile\ndarkblue\n\ndarktile\ndarkgreen\n\ndoor \ngray darkbrown\n.111.\n10001\n10001\n10001\n11111\n\nkey k\nyellow\n00000\n0...0\n00000\n..0..\n..000\n\nperson б\nred darkred \n.000.\n01010\n.000.\n00000\n.0.0.\n\ntile_all\nwhite white white white\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\ntile_ur \nwhite black black white\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\ntile_dr \nblack white black white\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\ntile_ul \nwhite black white black\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\ntile_dl \nblack white white black\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\nflag г\nyellow white\n10000\n10000\n10000\n1....\n1....\n\nWall\ndarkgreen darkblue\n\nwall_tl\nDARKGREEN DARKBLUE \n00000\n01111\n01000\n01011\n01010\n\nwall_tr\ndarkgreen DARKBLUE\n00000\n11110\n00010\n11010\n01010\n\nwall_bl\nDARKGREEN DARKBLUE \n00000\n01110\n01010\n01110\n00000\n\nwall_br\ndarkblue darkgreen \n00100\n00100\n11111\n00100\n00100\n\nwall_h\ndarkgreen DARKBLUE\n00000\n11111\n00000\n11111\n00000\n\nwall_v\ndarkgreen DARKBLUE\n01010\n01010\n01010\n01010\n01010\n\nwall_t\nDARKGREEN DARKBLUE\n01010\n11011\n00000\n11111\n00000\n\n\nPlayer\nTRANSPARENT\n0.0.0\n.000.\n00000\n.000.\n0.0.0\n\n\n\nhand\nTRANSPARENT\n..000\n..000\n0.000\n.0000\n...00\n\nhand_turn\nTRANSPARENT\n000..\n.000.\n..000\n0.000\n.0000\n\n\nbody_1_1\nred red\n....1\n...11\n..1.1\n.1..1\n11111\n\nbody_1_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_1_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_1_4\nred\n\nbody_1_5\nred red\n11100\n11100\n11100\n11000\n11000\n\nbody_1_6\nred\n\nbody_1_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_1_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_1_9\nred\n00000\n0..0.\n0.0..\n00...\n0....\n\n\n\n\n\nbody_2_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_2_2\nred \n\nbody_2_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_2_4\nred red\n00000\n1.000\n1..00\n1.110\n11111\n\nbody_2_5\nred red\n00000\n10000\n11100\n11110\n11111\n\nbody_2_6\nred red\n00000\n100.0\n11..0\n111.0\n11111\n\nbody_2_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_2_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_2_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\nbody_3_1\nred red\n....1\n...11\n..111\n.1111\n11111\n\nbody_3_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_3_3\nred red\n0....\n00...\n0.0..\n0..0.\n00000\n\nbody_3_4\nred red\n00000\n00000\n00111\n11111\n11111\n\nbody_3_5\nred red\n00000\n00000\n11111\n11111\n11111\n\nbody_3_6\nred red\n00000\n00000\n11111\n11111\n11111\n\nbody_3_7\nred red\n11111\n.1..1\n..1.1\n...11\n....1\n\nbody_3_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_3_9\nred\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\nbody_4_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_4_2\nred red\n00000\n1...0\n11.00\n11110\n11111 \n\nbody_4_3\nred red\n0....\n00...\n001..\n0111.\n11111\n\nbody_4_4\nred\n\nbody_4_5\nred red\n00000\n00001\n00111\n01111\n11111\n\nbody_4_6\nred\n\nbody_4_7\nred red\n00001\n.0011\n..111\n...11\n....1\n\nbody_4_8\nred red\n11000\n11000\n11.00\n1...0\n11000\n\nbody_4_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\nbody_5_1\nred red\n....1\n...11\n..1.1\n.1..1\n11111\n\nbody_5_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_5_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_5_4\nred\n\nbody_5_5\nred red\n11100\n11100\n11100\n11000\n11000\n\nbody_5_6\nred\n\nbody_5_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_5_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_5_9\nred\n00000\n0..0.\n0.0..\n00...\n0....\n\n\n\n\n\nbody_6_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_6_2\nred \n\nbody_6_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_6_4\nred red\n00000\n1.000\n1..00\n1.110\n11111\n\nbody_6_5\nred red\n00000\n10000\n11100\n11110\n11111\n\nbody_6_6\nred red\n00000\n100.0\n11..0\n111.0\n11111\n\nbody_6_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_6_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_6_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\n\n\nbody_7_1\nred red\n....1\n...11\n..111\n.1111\n11111\n\nbody_7_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_7_3\nred red\n0....\n00...\n0.0..\n0..0.\n00000\n\nbody_7_4\nred red\n00000\n00000\n00111\n11111\n11111\n\nbody_7_5\nred red\n00000\n00000\n11111\n11111\n11111\n\nbody_7_6\nred red\n00000\n00000\n11111\n11111\n11111\n\nbody_7_7\nred red\n11111\n.1..1\n..1.1\n...11\n....1\n\nbody_7_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_7_9\nred\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\n\nbody_8_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_8_2\nred red\n00000\n1...0\n11.00\n11110\n11111 \n\nbody_8_3\nred red\n0....\n00...\n001..\n0111.\n11111\n\nbody_8_4\nred\n\nbody_8_5\nred red\n00000\n00001\n00111\n01111\n11111\n\nbody_8_6\nred\n\nbody_8_7\nred red\n00001\n.0011\n..111\n...11\n....1\n\nbody_8_8\nred red\n11000\n11000\n11.00\n1...0\n11000\n\nbody_8_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\n\nball_wwww\nwhite white\n.000.\n00000\n00111\n11111\n.111.\n\nball_bbbb\nblack black\n.000.\n00000\n00111\n11111\n.111.\n\nball_bbww\nblack white\n.000.\n00000\n00111\n11111\n.111.\n\nball_wwbb\nwhite black\n.000.\n00000\n00111\n11111\n.111.\n\nball_bwbw\nblack white \n.001.\n00011\n00111\n00111\n.011.\n\nball_wbwb\nwhite black \n.001.\n00011\n00111\n00111\n.011.\n\nt\nTRANSPARENT\n\n\n\n\n\n\ndarkred >\ndarkred\n\ndarkblue ?\ndarkblue\n\nstars ~\nwhite\n.....\n.....\n.0...\n.....\n.....\n\n\nmove_ul\ntransparent\n\nmove_ur\ntransparent\n\nmove_dl \ntransparent\n\nmove_dr\ntransparent\n\nmove_action\ntransparent\n\nmoved\ntransparent\n\nperson_target\ntransparent\n\n\n\n\nsprt_0_0 !\nyellow\n.....\n.....\n.....\n.....\n....0\n\nsprt_1_0 @\nyellow\n.....\n.....\n.0...\n000..\n00000\n\nsprt_2_0 £\nyellow white\n.....\n.....\n.....\n01...\n01...\n\n\nsprt_0_1 $\nyellow \n....0\n....0\n....0\n....0\n.....\n\nsprt_1_1 %\nyellow\n00000\n00000\n0.000\n...00\n.....\n\nsprt_2_1 ^\nyellow white\n01...\n01...\n01...\n.1...\n.1...\n\n\nsprt_0_2 &\nred darkred\n.....\n..000\n..010\n..000\n..001\n\nsprt_1_2 *\nred darkred\n.....\n0....\n1...0\n0..00\n1..0.\n\nsprt_2_2 -\nwhite red\n.0...\n111..\n111..\n.0...\n.0...\n\n\nsprt_0_3 \\\nred\n..000\n...00\n..000\n.0000\n00.00\n\nsprt_1_3 \"\nred\n0.00.\n000..\n0....\n0....\n0....\n\nsprt_2_3 \nwhite\n.0...\n.0...\n.....\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\nd = door and wall\nball = ball_wwww or ball_bbbb or ball_bbww or ball_wwbb or ball_bwbw or ball_wbwb\n\ntile = lighttile or darktile\n\nbody = body_1_1 or body_1_2 or body_1_3 or body_1_4 or body_1_5 or body_1_6 or body_1_7 or body_1_8 or body_1_9 or body_2_1 or body_2_2 or body_2_3 or body_2_4 or body_2_5 or body_2_6 or body_2_7 or body_2_8 or body_2_9 or body_3_1 or body_3_2 or body_3_3 or body_3_4 or body_3_5 or body_3_6 or body_3_7 or body_3_8 or body_3_9 or body_4_1 or body_4_2 or body_4_3 or body_4_4 or body_4_5 or body_4_6 or body_4_7 or body_4_8 or body_4_9 or body_5_1 or body_5_2 or body_5_3 or body_5_4 or body_5_5 or body_5_6 or body_5_7 or body_5_8 or body_5_9 or body_6_1 or body_6_2 or body_6_3 or body_6_4 or body_6_5 or body_6_6 or body_6_7 or body_6_8 or body_6_9 or body_7_1 or body_7_2 or body_7_3 or body_7_4 or body_7_5 or body_7_6 or body_7_7 or body_7_8 or body_7_9 or body_8_1 or body_8_2 or body_8_3 or body_8_4 or body_8_5 or body_8_6 or body_8_7 or body_8_8 or body_8_9\n\nhands = hand or hand_turn\n\napparatus = hands or body or ball\n. = Background\n# = Wall\nP = Player\n\n1 = body_1_1\n2 = body_1_2 and ball_bbbb\n3 = body_1_3\n4 = body_1_4 and ball_bbbb\n5 = body_1_5 and hand and Player\n6 = body_1_6 and ball_bbbb\n7 = body_1_7\n8 = body_1_8 and ball_bbbb\n9 = body_1_9\n\n(\nq = wall and body_3_1 \nw = wall and body_3_2 and ball_wwww\ne = wall and body_3_3 \nr = wall and body_3_4 and ball_wwbb\ng = wall and body_3_5 \ny = wall and body_3_6 and ball_wwbb\nu = wall and body_3_7 \ni = wall and body_3_8 and ball_bbbb\no = wall and body_3_9 \n)\n\nq = wall \nw = wall and ball_wwww\ne = wall \nr = wall and ball_wwbb\ng = wall \ny = wall and ball_wwbb\nu = wall \ni = wall and ball_bbbb\no = wall \n\n\nz = wall_tl and wall\nx = wall_tr and wall\nc = wall_bl and wall\nf = wall_br and wall\nb = wall_h and wall\nn = wall_v and wall\nm = wall_t and wall\n\n\nmove = move_ul or move_ur or move_dl or move_dr or move_action or moved\n\nmove_active = move_ul or move_ur or move_dl or move_dr\n\nє = tile_ul and Wall\nґ = tile_ur and Wall\nж = tile_dl and Wall\nд = tile_dr and Wall\nЮ = tile_all and Wall\n| = sprt_2_3 and Player\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nblack\ntile\nwall\nwall_tl, wall_tr, wall_bl, wall_br, wall_h, wall_v, wall_t\ndoor, key\nflag\nPlayer\nbody\nball\nhands\nt\n\ntile_ul, tile_ur, tile_dl, tile_dr, tile_all\n\nsprt_0_0, sprt_0_1, sprt_0_2, sprt_0_3, sprt_1_0, sprt_1_1, sprt_1_2, sprt_1_3, sprt_2_0, sprt_2_1, sprt_2_2, sprt_2_3, darkred, darkblue, stars\n\nperson\nperson_Target\nmove\n\n======\nRULES\n======\n\nright [flag | wall ] -> [flag wall | wall ]\n[person no tile ] -> [ person darktile]\n\n[darktile | no tile no wall ] -> [darktile | lighttile ]\n+[lighttile | no tile no wall ] -> [ lighttile | darktile ]\n(ball translations)\n [ ball | perpendicular player | ball ] -> [ perpendicular ball | perpendicular player | perpendicular ball ]\n\n(ball rotations)\n\nright [ ball | action player | ball ] -> [ down ball | action player | up ball ]\ndown [ ball | action player | ball ] -> [ left ball | action player | right ball ]\n\n\n[ up ball_wwww ] -> [ ball_wwbb ]\n[ down ball_wwww ] -> [ ball_bbww ]\n[ right ball_wwww ] -> [ ball_bwbw ]\n[ left ball_wwww ] -> [ ball_wbwb ]\n\n[ up ball_bbbb ] -> [ ball_bbww ]\n[ down ball_bbbb ] -> [ ball_wwbb ]\n[ right ball_bbbb ] -> [ ball_wbwb ]\n[ left ball_bbbb ] -> [ ball_bwbw ]\n\n[ up ball_bbww ] -> [ ball_wwww ]\n[ down ball_bbww ] -> [ ball_bbbb ]\n[ right ball_bbww ] -> [ ball_bbww ]\n[ left ball_bbww ] -> [ ball_bbww ]\n\n[ up ball_wwbb ] -> [ ball_bbbb ]\n[ down ball_wwbb ] -> [ ball_wwww ]\n[ right ball_wwbb ] -> [ ball_wwbb ]\n[ left ball_wwbb ] -> [ ball_wwbb ]\n\n[ up ball_bwbw ] -> [ ball_bwbw ]\n[ down ball_bwbw ] -> [ ball_bwbw ]\n[ right ball_bwbw ] -> [ ball_bbbb ]\n[ left ball_bwbw ] -> [ ball_wwww ]\n\n[ up ball_wbwb ] -> [ ball_wbwb ]\n[ down ball_wbwb ] -> [ ball_wbwb ]\n[ right ball_wbwb ] -> [ ball_wwww ]\n[ left ball_wbwb ] -> [ ball_bbbb ]\n\n\n\n\n(second part of movemet - rotate)\ndown [ | hand_turn ] -> [ t | hand_turn ]\nright [ hand_turn ] [ ball | t no wall | ball ] -> [ hand_turn ] [ down ball | t | left ball]\nright [ hand_turn ] [ ball | no wall no t | ball ] -> [ hand_turn ] [ right ball | no t | up ball]\n[t]->[]\n\n\n[ moving ball_wwww ] -> [ ball_wwww ]\n[ moving ball_bbbb ] -> [ ball_bbbb ]\n[ moving ball_bbww ] -> [ ball_bwbw ]\n[ moving ball_wwbb ] -> [ ball_wbwb ]\n[ moving ball_bwbw ] -> [ ball_wwbb ]\n[ moving ball_wbwb ] -> [ ball_bbww ]\n\n\n\n[ action player ] [ body_1_1 no wall ] -> [ action player ] [ body_2_1 ]\n[ action player ] [ body_1_2 no wall ] -> [ action player ] [ body_2_2 ]\n[ action player ] [ body_1_3 no wall ] -> [ action player ] [ body_2_3 ]\n[ action player ] [ body_1_4 no wall ] -> [ action player ] [ body_2_4 ]\n[ action player ] [ body_1_5 no wall ] -> [ action player ] [ body_2_5 ]\n[ action player ] [ body_1_6 no wall ] -> [ action player ] [ body_2_6 ]\n[ action player ] [ body_1_7 no wall ] -> [ action player ] [ body_2_7 ]\n[ action player ] [ body_1_8 no wall ] -> [ action player ] [ body_2_8 ]\n[ action player ] [ body_1_9 no wall ] -> [ action player ] [ body_2_9 ]\n\n[ action player ] [ body_3_1 no wall ] -> [ action player ] [ body_4_1 ]\n[ action player ] [ body_3_2 no wall ] -> [ action player ] [ body_4_2 ]\n[ action player ] [ body_3_3 no wall ] -> [ action player ] [ body_4_3 ]\n[ action player ] [ body_3_4 no wall ] -> [ action player ] [ body_4_4 ]\n[ action player ] [ body_3_5 no wall ] -> [ action player ] [ body_4_5 ]\n[ action player ] [ body_3_6 no wall ] -> [ action player ] [ body_4_6 ]\n[ action player ] [ body_3_7 no wall ] -> [ action player ] [ body_4_7 ]\n[ action player ] [ body_3_8 no wall ] -> [ action player ] [ body_4_8 ]\n[ action player ] [ body_3_9 no wall ] -> [ action player ] [ body_4_9 ]\n\n[ action player ] [ body_5_1 no wall ] -> [ action player ] [ body_6_1 ]\n[ action player ] [ body_5_2 no wall ] -> [ action player ] [ body_6_2 ]\n[ action player ] [ body_5_3 no wall ] -> [ action player ] [ body_6_3 ]\n[ action player ] [ body_5_4 no wall ] -> [ action player ] [ body_6_4 ]\n[ action player ] [ body_5_5 no wall ] -> [ action player ] [ body_6_5 ]\n[ action player ] [ body_5_6 no wall ] -> [ action player ] [ body_6_6 ]\n[ action player ] [ body_5_7 no wall ] -> [ action player ] [ body_6_7 ]\n[ action player ] [ body_5_8 no wall ] -> [ action player ] [ body_6_8 ]\n[ action player ] [ body_5_9 no wall ] -> [ action player ] [ body_6_9 ]\n\n[ action player ] [ body_7_1 no wall ] -> [ action player ] [ body_8_1 ]\n[ action player ] [ body_7_2 no wall ] -> [ action player ] [ body_8_2 ]\n[ action player ] [ body_7_3 no wall ] -> [ action player ] [ body_8_3 ]\n[ action player ] [ body_7_4 no wall ] -> [ action player ] [ body_8_4 ]\n[ action player ] [ body_7_5 no wall ] -> [ action player ] [ body_8_5 ]\n[ action player ] [ body_7_6 no wall ] -> [ action player ] [ body_8_6 ]\n[ action player ] [ body_7_7 no wall ] -> [ action player ] [ body_8_7 ]\n[ action player ] [ body_7_8 no wall ] -> [ action player ] [ body_8_8 ]\n[ action player ] [ body_7_9 no wall ] -> [ action player ] [ body_8_9 ]\n\n\n[ hand_turn ] [ body_2_1 no wall ] -> [ hand_turn ] [ body_3_1 ]\n[ hand_turn ] [ body_2_2 no wall ] -> [ hand_turn ] [ body_3_2 ]\n[ hand_turn ] [ body_2_3 no wall ] -> [ hand_turn ] [ body_3_3 ]\n[ hand_turn ] [ body_2_4 no wall ] -> [ hand_turn ] [ body_3_4 ]\n[ hand_turn ] [ body_2_5 no wall ] -> [ hand_turn ] [ body_3_5 ]\n[ hand_turn ] [ body_2_6 no wall ] -> [ hand_turn ] [ body_3_6 ]\n[ hand_turn ] [ body_2_7 no wall ] -> [ hand_turn ] [ body_3_7 ]\n[ hand_turn ] [ body_2_8 no wall ] -> [ hand_turn ] [ body_3_8 ]\n[ hand_turn ] [ body_2_9 no wall ] -> [ hand_turn ] [ body_3_9 ]\n\n[ hand_turn ] [ body_4_1 no wall ] -> [ hand_turn ] [ body_5_1 ]\n[ hand_turn ] [ body_4_2 no wall ] -> [ hand_turn ] [ body_5_2 ]\n[ hand_turn ] [ body_4_3 no wall ] -> [ hand_turn ] [ body_5_3 ]\n[ hand_turn ] [ body_4_4 no wall ] -> [ hand_turn ] [ body_5_4 ]\n[ hand_turn ] [ body_4_5 no wall ] -> [ hand_turn ] [ body_5_5 ]\n[ hand_turn ] [ body_4_6 no wall ] -> [ hand_turn ] [ body_5_6 ]\n[ hand_turn ] [ body_4_7 no wall ] -> [ hand_turn ] [ body_5_7 ]\n[ hand_turn ] [ body_4_8 no wall ] -> [ hand_turn ] [ body_5_8 ]\n[ hand_turn ] [ body_4_9 no wall ] -> [ hand_turn ] [ body_5_9 ]\n\n[ hand_turn ] [ body_6_1 no wall ] -> [ hand_turn ] [ body_7_1 ]\n[ hand_turn ] [ body_6_2 no wall ] -> [ hand_turn ] [ body_7_2 ]\n[ hand_turn ] [ body_6_3 no wall ] -> [ hand_turn ] [ body_7_3 ]\n[ hand_turn ] [ body_6_4 no wall ] -> [ hand_turn ] [ body_7_4 ]\n[ hand_turn ] [ body_6_5 no wall ] -> [ hand_turn ] [ body_7_5 ]\n[ hand_turn ] [ body_6_6 no wall ] -> [ hand_turn ] [ body_7_6 ]\n[ hand_turn ] [ body_6_7 no wall ] -> [ hand_turn ] [ body_7_7 ]\n[ hand_turn ] [ body_6_8 no wall ] -> [ hand_turn ] [ body_7_8 ]\n[ hand_turn ] [ body_6_9 no wall ] -> [ hand_turn ] [ body_7_9 ]\n\n[ hand_turn ] [ body_8_1 no wall ] -> [ hand_turn ] [ body_1_1 ]\n[ hand_turn ] [ body_8_2 no wall ] -> [ hand_turn ] [ body_1_2 ]\n[ hand_turn ] [ body_8_3 no wall ] -> [ hand_turn ] [ body_1_3 ]\n[ hand_turn ] [ body_8_4 no wall ] -> [ hand_turn ] [ body_1_4 ]\n[ hand_turn ] [ body_8_5 no wall ] -> [ hand_turn ] [ body_1_5 ]\n[ hand_turn ] [ body_8_6 no wall ] -> [ hand_turn ] [ body_1_6 ]\n[ hand_turn ] [ body_8_7 no wall ] -> [ hand_turn ] [ body_1_7 ]\n[ hand_turn ] [ body_8_8 no wall ] -> [ hand_turn ] [ body_1_8 ]\n[ hand_turn ] [ body_8_9 no wall ] -> [ hand_turn ] [ body_1_9 ]\n\n\n\n\n\n\n\n\n\n(need to do body rotations as well here!)\n\n(move object)\n[moving player ] [ stationary apparatus] -> [ moving player ] [ moving apparatus]\n\n\nright [ ball | action player | ball ] -> [ down ball | action player | up ball ]\ndown [ ball | action player | ball ] -> [ left ball | action player | right ball ]\n\n\ndown [ | hand_turn ] -> [ t | hand_turn ]\nright [ hand_turn ] [ ball | t | ball ] -> [ hand_turn ] [ down ball | t | left ball]\nright [ hand_turn ] [ ball | no t | ball ] -> [ hand_turn ] [ right ball | no t | up ball]\n\n\n\n[ hand_turn ] -> [ hand]\n[ action player ] [ hand ] -> [ action player ] [ hand_turn ] again \n\n[t]->[]\n\n[ body wall ] -> [ stationary body wall ] \n[ ball wall ] -> [ stationary ball wall ]\n\n[ > body | wall ] -> cancel\n\n\nrandom up [move_ul] [person | ] -> [ move_ul] [ person | person_target]\nrandom up [move_ur] [person | ] -> [ move_ur] [ person | person_target]\nrandom down [move_dl] [person | ] -> [ move_dl] [ person | person_target]\nrandom down [move_dr] [person | ] -> [ move_dr] [ person | person_target]\n\nrandom left [move_ul] [person_target | ] -> [ moved] [ | person_target ]\nrandom right [move_ur] [person_target | ] -> [ moved] [ | person_target ]\nrandom left [move_dl] [person_target | ] -> [ moved] [ | person_target ]\nrandom right [move_dr] [person_target | ] -> [ moved] [ | person_target ]\n[person_target wall ] -> [ wall] \n\n[person_target ] [ person ] -> [ person ] [ ]\n\n[move_active]->[]\n\nlate down [ ball_wwww | player no moved | ball_bbbb ] -> [ ball_wwww | player t | ball_bbbb ]\nlate right [ ball_wwww | player t| ball_bbbb ] -> [ ball_wwww | player move_ul | ball_bbbb ] again\nlate [t] -> [ ]\n\n\nlate down [ ball_wwww | player no moved | ball_bbbb ] -> [ ball_wwww | player t | ball_bbbb ]\nlate right [ ball_bbbb | player t| ball_wwww ] -> [ ball_bbbb | player move_ur | ball_wwww ] again\nlate [t] -> [ ]\n\n\nlate down [ ball_bbbb | player no moved | ball_wwww ] -> [ ball_bbbb | player t | ball_wwww ]\nlate right [ ball_wwww | player t| ball_bbbb ] -> [ ball_wwww | player move_dl | ball_bbbb ] again\nlate [t] -> [ ]\n\n\nlate down [ ball_bbbb | player no moved | ball_wwww ] -> [ ball_bbbb | player t | ball_wwww ]\nlate right [ ball_bbbb | player t| ball_wwww ] -> [ ball_bbbb | player move_dr | ball_wwww ] again\nlate [t] -> [ ]\n\n\nlate down [ ball_wwww | player no moved | ball_wwww ] -> [ ball_wwww | player t | ball_wwww ]\nlate right [ ball_wwww | player t | ball_wwww ] [person flag] -> win\nlate [t] -> [ ]\n\nlate [moved]->[]\n\n[action player sprt_2_3] -> win\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\nfffffffffffffffffffffffff\nffffю.гffffcbbbbbbbbbbbcf\nfffffffffffn...........nf\nfєbbbbbbbґfn...........nf\nfn.......nfn...........nf\nfn.......nfn...cbbbc...nf\nfn..123..nfn...n...n...nf\nfn..456..nfn...n.г.n...nf\nfn..789..nfn...n...c...nf\nfn.......nfn.б.n.......nf\nfn.......nfn...n.......nf\nfжbbbbbbbдfcbbbcbbbbbbbcf\nfffffffffffffffffffffffff\n\nmessage victory!\n\n!@£\n$%^\n&*-\n\\\"|\n\n\n\n",[3,0,4,0,4,1,3,2,1,1,4,2,3,1,1,0,0,3,1],"background wall wall_br:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background tile_ul wall:1,background wall wall_v:2,2,2,2,2,2,2,background tile_dl wall:3,\n0,0,0,0,background wall wall_h:4,background body_7_1:5,background ball_wwww body_7_4:6,background body_7_7:7,background:8,8,8,8,4,0,0,0,0,4,background ball_wwww body_7_2:9,background body_7_5 hand player:10,background ball_bbbb body_7_8:11,8,8,8,8,\n4,0,0,background tile_all wall:12,0,4,background body_7_3:13,background ball_bbbb body_7_6:14,background body_7_9:15,8,8,8,8,4,0,0,8,0,4,8,8,8,8,8,8,\n8,4,0,0,background flag wall:16,0,4,8,8,8,8,8,8,8,4,0,0,0,0,4,8,8,8,8,8,\n8,8,4,0,0,0,0,4,8,8,8,8,8,8,8,4,0,0,0,0,background tile_ur wall:17,2,2,2,2,\n2,2,2,background tile_dr wall:18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background wall wall_bl:19,2,2,2,2,2,\n2,2,2,2,19,0,0,4,background darktile:20,background lighttile:21,20,21,background darktile person:22,21,20,21,20,4,0,0,4,21,20,21,20,\n21,20,21,20,21,4,0,0,4,20,21,20,21,20,21,20,21,20,4,0,0,4,21,20,21,\n19,2,2,2,2,2,19,0,0,4,20,21,20,4,20,21,20,21,20,4,0,0,4,21,20,\n21,4,21,background darktile flag:23,21,20,21,4,0,0,4,20,21,20,4,20,21,20,21,20,4,0,0,4,21,\n20,21,19,2,2,19,20,21,4,0,0,4,20,21,20,21,20,21,20,21,20,4,0,0,4,\n21,20,21,20,21,20,21,20,21,4,0,0,4,20,21,20,21,20,21,20,21,20,4,0,0,\n19,2,2,2,2,2,2,2,2,2,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",1,"1627891910482.2163"] + "Seize the flag!", + ["title Seize the flag!\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nnorepeat_action\nagain_interval 0.3\n\n\nbackground_color darkblue\n\ntext_color gray\n\n\nrun_rules_on_level_start\n\n\n========\nOBJECTS\n========\n\nblack ,\nblack\n\nBackground\nDARKGREEN\n\nlighttile\ndarkblue\n\ndarktile\ndarkgreen\n\ndoor \ngray darkbrown\n.111.\n10001\n10001\n10001\n11111\n\nkey k\nyellow\n00000\n0...0\n00000\n..0..\n..000\n\nperson б\nred darkred \n.000.\n01010\n.000.\n00000\n.0.0.\n\ntile_all\nwhite white white white\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\ntile_ur \nwhite black black white\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\ntile_dr \nblack white black white\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\ntile_ul \nwhite black white black\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\ntile_dl \nblack white white black\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\nflag г\nyellow white\n10000\n10000\n10000\n1....\n1....\n\nWall\ndarkgreen darkblue\n\nwall_tl\nDARKGREEN DARKBLUE \n00000\n01111\n01000\n01011\n01010\n\nwall_tr\ndarkgreen DARKBLUE\n00000\n11110\n00010\n11010\n01010\n\nwall_bl\nDARKGREEN DARKBLUE \n00000\n01110\n01010\n01110\n00000\n\nwall_br\ndarkblue darkgreen \n00100\n00100\n11111\n00100\n00100\n\nwall_h\ndarkgreen DARKBLUE\n00000\n11111\n00000\n11111\n00000\n\nwall_v\ndarkgreen DARKBLUE\n01010\n01010\n01010\n01010\n01010\n\nwall_t\nDARKGREEN DARKBLUE\n01010\n11011\n00000\n11111\n00000\n\n\nPlayer\nTRANSPARENT\n0.0.0\n.000.\n00000\n.000.\n0.0.0\n\n\n\nhand\nTRANSPARENT\n..000\n..000\n0.000\n.0000\n...00\n\nhand_turn\nTRANSPARENT\n000..\n.000.\n..000\n0.000\n.0000\n\n\nbody_1_1\nred red\n....1\n...11\n..1.1\n.1..1\n11111\n\nbody_1_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_1_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_1_4\nred\n\nbody_1_5\nred red\n11100\n11100\n11100\n11000\n11000\n\nbody_1_6\nred\n\nbody_1_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_1_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_1_9\nred\n00000\n0..0.\n0.0..\n00...\n0....\n\n\n\n\n\nbody_2_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_2_2\nred \n\nbody_2_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_2_4\nred red\n00000\n1.000\n1..00\n1.110\n11111\n\nbody_2_5\nred red\n00000\n10000\n11100\n11110\n11111\n\nbody_2_6\nred red\n00000\n100.0\n11..0\n111.0\n11111\n\nbody_2_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_2_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_2_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\nbody_3_1\nred red\n....1\n...11\n..111\n.1111\n11111\n\nbody_3_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_3_3\nred red\n0....\n00...\n0.0..\n0..0.\n00000\n\nbody_3_4\nred red\n00000\n00000\n00111\n11111\n11111\n\nbody_3_5\nred red\n00000\n00000\n11111\n11111\n11111\n\nbody_3_6\nred red\n00000\n00000\n11111\n11111\n11111\n\nbody_3_7\nred red\n11111\n.1..1\n..1.1\n...11\n....1\n\nbody_3_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_3_9\nred\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\nbody_4_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_4_2\nred red\n00000\n1...0\n11.00\n11110\n11111 \n\nbody_4_3\nred red\n0....\n00...\n001..\n0111.\n11111\n\nbody_4_4\nred\n\nbody_4_5\nred red\n00000\n00001\n00111\n01111\n11111\n\nbody_4_6\nred\n\nbody_4_7\nred red\n00001\n.0011\n..111\n...11\n....1\n\nbody_4_8\nred red\n11000\n11000\n11.00\n1...0\n11000\n\nbody_4_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\nbody_5_1\nred red\n....1\n...11\n..1.1\n.1..1\n11111\n\nbody_5_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_5_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_5_4\nred\n\nbody_5_5\nred red\n11100\n11100\n11100\n11000\n11000\n\nbody_5_6\nred\n\nbody_5_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_5_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_5_9\nred\n00000\n0..0.\n0.0..\n00...\n0....\n\n\n\n\n\nbody_6_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_6_2\nred \n\nbody_6_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_6_4\nred red\n00000\n1.000\n1..00\n1.110\n11111\n\nbody_6_5\nred red\n00000\n10000\n11100\n11110\n11111\n\nbody_6_6\nred red\n00000\n100.0\n11..0\n111.0\n11111\n\nbody_6_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_6_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_6_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\n\n\nbody_7_1\nred red\n....1\n...11\n..111\n.1111\n11111\n\nbody_7_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_7_3\nred red\n0....\n00...\n0.0..\n0..0.\n00000\n\nbody_7_4\nred red\n00000\n00000\n00111\n11111\n11111\n\nbody_7_5\nred red\n00000\n00000\n11111\n11111\n11111\n\nbody_7_6\nred red\n00000\n00000\n11111\n11111\n11111\n\nbody_7_7\nred red\n11111\n.1..1\n..1.1\n...11\n....1\n\nbody_7_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_7_9\nred\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\n\nbody_8_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_8_2\nred red\n00000\n1...0\n11.00\n11110\n11111 \n\nbody_8_3\nred red\n0....\n00...\n001..\n0111.\n11111\n\nbody_8_4\nred\n\nbody_8_5\nred red\n00000\n00001\n00111\n01111\n11111\n\nbody_8_6\nred\n\nbody_8_7\nred red\n00001\n.0011\n..111\n...11\n....1\n\nbody_8_8\nred red\n11000\n11000\n11.00\n1...0\n11000\n\nbody_8_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\n\nball_wwww\nwhite white\n.000.\n00000\n00111\n11111\n.111.\n\nball_bbbb\nblack black\n.000.\n00000\n00111\n11111\n.111.\n\nball_bbww\nblack white\n.000.\n00000\n00111\n11111\n.111.\n\nball_wwbb\nwhite black\n.000.\n00000\n00111\n11111\n.111.\n\nball_bwbw\nblack white \n.001.\n00011\n00111\n00111\n.011.\n\nball_wbwb\nwhite black \n.001.\n00011\n00111\n00111\n.011.\n\nt\nTRANSPARENT\n\n\n\n\n\n\ndarkred >\ndarkred\n\ndarkblue ?\ndarkblue\n\nstars ~\nwhite\n.....\n.....\n.0...\n.....\n.....\n\n\nmove_ul\ntransparent\n\nmove_ur\ntransparent\n\nmove_dl \ntransparent\n\nmove_dr\ntransparent\n\nmove_action\ntransparent\n\nmoved\ntransparent\n\nperson_target\ntransparent\n\n\n\n\nsprt_0_0 !\nyellow\n.....\n.....\n.....\n.....\n....0\n\nsprt_1_0 @\nyellow\n.....\n.....\n.0...\n000..\n00000\n\nsprt_2_0 £\nyellow white\n.....\n.....\n.....\n01...\n01...\n\n\nsprt_0_1 $\nyellow \n....0\n....0\n....0\n....0\n.....\n\nsprt_1_1 %\nyellow\n00000\n00000\n0.000\n...00\n.....\n\nsprt_2_1 ^\nyellow white\n01...\n01...\n01...\n.1...\n.1...\n\n\nsprt_0_2 &\nred darkred\n.....\n..000\n..010\n..000\n..001\n\nsprt_1_2 *\nred darkred\n.....\n0....\n1...0\n0..00\n1..0.\n\nsprt_2_2 -\nwhite red\n.0...\n111..\n111..\n.0...\n.0...\n\n\nsprt_0_3 \\\nred\n..000\n...00\n..000\n.0000\n00.00\n\nsprt_1_3 \"\nred\n0.00.\n000..\n0....\n0....\n0....\n\nsprt_2_3 \nwhite\n.0...\n.0...\n.....\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\nd = door and wall\nball = ball_wwww or ball_bbbb or ball_bbww or ball_wwbb or ball_bwbw or ball_wbwb\n\ntile = lighttile or darktile\n\nbody = body_1_1 or body_1_2 or body_1_3 or body_1_4 or body_1_5 or body_1_6 or body_1_7 or body_1_8 or body_1_9 or body_2_1 or body_2_2 or body_2_3 or body_2_4 or body_2_5 or body_2_6 or body_2_7 or body_2_8 or body_2_9 or body_3_1 or body_3_2 or body_3_3 or body_3_4 or body_3_5 or body_3_6 or body_3_7 or body_3_8 or body_3_9 or body_4_1 or body_4_2 or body_4_3 or body_4_4 or body_4_5 or body_4_6 or body_4_7 or body_4_8 or body_4_9 or body_5_1 or body_5_2 or body_5_3 or body_5_4 or body_5_5 or body_5_6 or body_5_7 or body_5_8 or body_5_9 or body_6_1 or body_6_2 or body_6_3 or body_6_4 or body_6_5 or body_6_6 or body_6_7 or body_6_8 or body_6_9 or body_7_1 or body_7_2 or body_7_3 or body_7_4 or body_7_5 or body_7_6 or body_7_7 or body_7_8 or body_7_9 or body_8_1 or body_8_2 or body_8_3 or body_8_4 or body_8_5 or body_8_6 or body_8_7 or body_8_8 or body_8_9\n\nhands = hand or hand_turn\n\napparatus = hands or body or ball\n. = Background\n# = Wall\nP = Player\n\n1 = body_1_1\n2 = body_1_2 and ball_bbbb\n3 = body_1_3\n4 = body_1_4 and ball_bbbb\n5 = body_1_5 and hand and Player\n6 = body_1_6 and ball_bbbb\n7 = body_1_7\n8 = body_1_8 and ball_bbbb\n9 = body_1_9\n\n(\nq = wall and body_3_1 \nw = wall and body_3_2 and ball_wwww\ne = wall and body_3_3 \nr = wall and body_3_4 and ball_wwbb\ng = wall and body_3_5 \ny = wall and body_3_6 and ball_wwbb\nu = wall and body_3_7 \ni = wall and body_3_8 and ball_bbbb\no = wall and body_3_9 \n)\n\nq = wall \nw = wall and ball_wwww\ne = wall \nr = wall and ball_wwbb\ng = wall \ny = wall and ball_wwbb\nu = wall \ni = wall and ball_bbbb\no = wall \n\n\nz = wall_tl and wall\nx = wall_tr and wall\nc = wall_bl and wall\nf = wall_br and wall\nb = wall_h and wall\nn = wall_v and wall\nm = wall_t and wall\n\n\nmove = move_ul or move_ur or move_dl or move_dr or move_action or moved\n\nmove_active = move_ul or move_ur or move_dl or move_dr\n\nє = tile_ul and Wall\nґ = tile_ur and Wall\nж = tile_dl and Wall\nд = tile_dr and Wall\nЮ = tile_all and Wall\n| = sprt_2_3 and Player\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nblack\ntile\nwall\nwall_tl, wall_tr, wall_bl, wall_br, wall_h, wall_v, wall_t\ndoor, key\nflag\nPlayer\nbody\nball\nhands\nt\n\ntile_ul, tile_ur, tile_dl, tile_dr, tile_all\n\nsprt_0_0, sprt_0_1, sprt_0_2, sprt_0_3, sprt_1_0, sprt_1_1, sprt_1_2, sprt_1_3, sprt_2_0, sprt_2_1, sprt_2_2, sprt_2_3, darkred, darkblue, stars\n\nperson\nperson_Target\nmove\n\n======\nRULES\n======\n\nright [flag | wall ] -> [flag wall | wall ]\n[person no tile ] -> [ person darktile]\n\n[darktile | no tile no wall ] -> [darktile | lighttile ]\n+[lighttile | no tile no wall ] -> [ lighttile | darktile ]\n(ball translations)\n [ ball | perpendicular player | ball ] -> [ perpendicular ball | perpendicular player | perpendicular ball ]\n\n(ball rotations)\n\nright [ ball | action player | ball ] -> [ down ball | action player | up ball ]\ndown [ ball | action player | ball ] -> [ left ball | action player | right ball ]\n\n\n[ up ball_wwww ] -> [ ball_wwbb ]\n[ down ball_wwww ] -> [ ball_bbww ]\n[ right ball_wwww ] -> [ ball_bwbw ]\n[ left ball_wwww ] -> [ ball_wbwb ]\n\n[ up ball_bbbb ] -> [ ball_bbww ]\n[ down ball_bbbb ] -> [ ball_wwbb ]\n[ right ball_bbbb ] -> [ ball_wbwb ]\n[ left ball_bbbb ] -> [ ball_bwbw ]\n\n[ up ball_bbww ] -> [ ball_wwww ]\n[ down ball_bbww ] -> [ ball_bbbb ]\n[ right ball_bbww ] -> [ ball_bbww ]\n[ left ball_bbww ] -> [ ball_bbww ]\n\n[ up ball_wwbb ] -> [ ball_bbbb ]\n[ down ball_wwbb ] -> [ ball_wwww ]\n[ right ball_wwbb ] -> [ ball_wwbb ]\n[ left ball_wwbb ] -> [ ball_wwbb ]\n\n[ up ball_bwbw ] -> [ ball_bwbw ]\n[ down ball_bwbw ] -> [ ball_bwbw ]\n[ right ball_bwbw ] -> [ ball_bbbb ]\n[ left ball_bwbw ] -> [ ball_wwww ]\n\n[ up ball_wbwb ] -> [ ball_wbwb ]\n[ down ball_wbwb ] -> [ ball_wbwb ]\n[ right ball_wbwb ] -> [ ball_wwww ]\n[ left ball_wbwb ] -> [ ball_bbbb ]\n\n\n\n\n(second part of movemet - rotate)\ndown [ | hand_turn ] -> [ t | hand_turn ]\nright [ hand_turn ] [ ball | t no wall | ball ] -> [ hand_turn ] [ down ball | t | left ball]\nright [ hand_turn ] [ ball | no wall no t | ball ] -> [ hand_turn ] [ right ball | no t | up ball]\n[t]->[]\n\n\n[ moving ball_wwww ] -> [ ball_wwww ]\n[ moving ball_bbbb ] -> [ ball_bbbb ]\n[ moving ball_bbww ] -> [ ball_bwbw ]\n[ moving ball_wwbb ] -> [ ball_wbwb ]\n[ moving ball_bwbw ] -> [ ball_wwbb ]\n[ moving ball_wbwb ] -> [ ball_bbww ]\n\n\n\n[ action player ] [ body_1_1 no wall ] -> [ action player ] [ body_2_1 ]\n[ action player ] [ body_1_2 no wall ] -> [ action player ] [ body_2_2 ]\n[ action player ] [ body_1_3 no wall ] -> [ action player ] [ body_2_3 ]\n[ action player ] [ body_1_4 no wall ] -> [ action player ] [ body_2_4 ]\n[ action player ] [ body_1_5 no wall ] -> [ action player ] [ body_2_5 ]\n[ action player ] [ body_1_6 no wall ] -> [ action player ] [ body_2_6 ]\n[ action player ] [ body_1_7 no wall ] -> [ action player ] [ body_2_7 ]\n[ action player ] [ body_1_8 no wall ] -> [ action player ] [ body_2_8 ]\n[ action player ] [ body_1_9 no wall ] -> [ action player ] [ body_2_9 ]\n\n[ action player ] [ body_3_1 no wall ] -> [ action player ] [ body_4_1 ]\n[ action player ] [ body_3_2 no wall ] -> [ action player ] [ body_4_2 ]\n[ action player ] [ body_3_3 no wall ] -> [ action player ] [ body_4_3 ]\n[ action player ] [ body_3_4 no wall ] -> [ action player ] [ body_4_4 ]\n[ action player ] [ body_3_5 no wall ] -> [ action player ] [ body_4_5 ]\n[ action player ] [ body_3_6 no wall ] -> [ action player ] [ body_4_6 ]\n[ action player ] [ body_3_7 no wall ] -> [ action player ] [ body_4_7 ]\n[ action player ] [ body_3_8 no wall ] -> [ action player ] [ body_4_8 ]\n[ action player ] [ body_3_9 no wall ] -> [ action player ] [ body_4_9 ]\n\n[ action player ] [ body_5_1 no wall ] -> [ action player ] [ body_6_1 ]\n[ action player ] [ body_5_2 no wall ] -> [ action player ] [ body_6_2 ]\n[ action player ] [ body_5_3 no wall ] -> [ action player ] [ body_6_3 ]\n[ action player ] [ body_5_4 no wall ] -> [ action player ] [ body_6_4 ]\n[ action player ] [ body_5_5 no wall ] -> [ action player ] [ body_6_5 ]\n[ action player ] [ body_5_6 no wall ] -> [ action player ] [ body_6_6 ]\n[ action player ] [ body_5_7 no wall ] -> [ action player ] [ body_6_7 ]\n[ action player ] [ body_5_8 no wall ] -> [ action player ] [ body_6_8 ]\n[ action player ] [ body_5_9 no wall ] -> [ action player ] [ body_6_9 ]\n\n[ action player ] [ body_7_1 no wall ] -> [ action player ] [ body_8_1 ]\n[ action player ] [ body_7_2 no wall ] -> [ action player ] [ body_8_2 ]\n[ action player ] [ body_7_3 no wall ] -> [ action player ] [ body_8_3 ]\n[ action player ] [ body_7_4 no wall ] -> [ action player ] [ body_8_4 ]\n[ action player ] [ body_7_5 no wall ] -> [ action player ] [ body_8_5 ]\n[ action player ] [ body_7_6 no wall ] -> [ action player ] [ body_8_6 ]\n[ action player ] [ body_7_7 no wall ] -> [ action player ] [ body_8_7 ]\n[ action player ] [ body_7_8 no wall ] -> [ action player ] [ body_8_8 ]\n[ action player ] [ body_7_9 no wall ] -> [ action player ] [ body_8_9 ]\n\n\n[ hand_turn ] [ body_2_1 no wall ] -> [ hand_turn ] [ body_3_1 ]\n[ hand_turn ] [ body_2_2 no wall ] -> [ hand_turn ] [ body_3_2 ]\n[ hand_turn ] [ body_2_3 no wall ] -> [ hand_turn ] [ body_3_3 ]\n[ hand_turn ] [ body_2_4 no wall ] -> [ hand_turn ] [ body_3_4 ]\n[ hand_turn ] [ body_2_5 no wall ] -> [ hand_turn ] [ body_3_5 ]\n[ hand_turn ] [ body_2_6 no wall ] -> [ hand_turn ] [ body_3_6 ]\n[ hand_turn ] [ body_2_7 no wall ] -> [ hand_turn ] [ body_3_7 ]\n[ hand_turn ] [ body_2_8 no wall ] -> [ hand_turn ] [ body_3_8 ]\n[ hand_turn ] [ body_2_9 no wall ] -> [ hand_turn ] [ body_3_9 ]\n\n[ hand_turn ] [ body_4_1 no wall ] -> [ hand_turn ] [ body_5_1 ]\n[ hand_turn ] [ body_4_2 no wall ] -> [ hand_turn ] [ body_5_2 ]\n[ hand_turn ] [ body_4_3 no wall ] -> [ hand_turn ] [ body_5_3 ]\n[ hand_turn ] [ body_4_4 no wall ] -> [ hand_turn ] [ body_5_4 ]\n[ hand_turn ] [ body_4_5 no wall ] -> [ hand_turn ] [ body_5_5 ]\n[ hand_turn ] [ body_4_6 no wall ] -> [ hand_turn ] [ body_5_6 ]\n[ hand_turn ] [ body_4_7 no wall ] -> [ hand_turn ] [ body_5_7 ]\n[ hand_turn ] [ body_4_8 no wall ] -> [ hand_turn ] [ body_5_8 ]\n[ hand_turn ] [ body_4_9 no wall ] -> [ hand_turn ] [ body_5_9 ]\n\n[ hand_turn ] [ body_6_1 no wall ] -> [ hand_turn ] [ body_7_1 ]\n[ hand_turn ] [ body_6_2 no wall ] -> [ hand_turn ] [ body_7_2 ]\n[ hand_turn ] [ body_6_3 no wall ] -> [ hand_turn ] [ body_7_3 ]\n[ hand_turn ] [ body_6_4 no wall ] -> [ hand_turn ] [ body_7_4 ]\n[ hand_turn ] [ body_6_5 no wall ] -> [ hand_turn ] [ body_7_5 ]\n[ hand_turn ] [ body_6_6 no wall ] -> [ hand_turn ] [ body_7_6 ]\n[ hand_turn ] [ body_6_7 no wall ] -> [ hand_turn ] [ body_7_7 ]\n[ hand_turn ] [ body_6_8 no wall ] -> [ hand_turn ] [ body_7_8 ]\n[ hand_turn ] [ body_6_9 no wall ] -> [ hand_turn ] [ body_7_9 ]\n\n[ hand_turn ] [ body_8_1 no wall ] -> [ hand_turn ] [ body_1_1 ]\n[ hand_turn ] [ body_8_2 no wall ] -> [ hand_turn ] [ body_1_2 ]\n[ hand_turn ] [ body_8_3 no wall ] -> [ hand_turn ] [ body_1_3 ]\n[ hand_turn ] [ body_8_4 no wall ] -> [ hand_turn ] [ body_1_4 ]\n[ hand_turn ] [ body_8_5 no wall ] -> [ hand_turn ] [ body_1_5 ]\n[ hand_turn ] [ body_8_6 no wall ] -> [ hand_turn ] [ body_1_6 ]\n[ hand_turn ] [ body_8_7 no wall ] -> [ hand_turn ] [ body_1_7 ]\n[ hand_turn ] [ body_8_8 no wall ] -> [ hand_turn ] [ body_1_8 ]\n[ hand_turn ] [ body_8_9 no wall ] -> [ hand_turn ] [ body_1_9 ]\n\n\n\n\n\n\n\n\n\n(need to do body rotations as well here!)\n\n(move object)\n[moving player ] [ stationary apparatus] -> [ moving player ] [ moving apparatus]\n\n\nright [ ball | action player | ball ] -> [ down ball | action player | up ball ]\ndown [ ball | action player | ball ] -> [ left ball | action player | right ball ]\n\n\ndown [ | hand_turn ] -> [ t | hand_turn ]\nright [ hand_turn ] [ ball | t | ball ] -> [ hand_turn ] [ down ball | t | left ball]\nright [ hand_turn ] [ ball | no t | ball ] -> [ hand_turn ] [ right ball | no t | up ball]\n\n\n\n[ hand_turn ] -> [ hand]\n[ action player ] [ hand ] -> [ action player ] [ hand_turn ] again \n\n[t]->[]\n\n[ body wall ] -> [ stationary body wall ] \n[ ball wall ] -> [ stationary ball wall ]\n\n[ > body | wall ] -> cancel\n\n\nrandom up [move_ul] [person | ] -> [ move_ul] [ person | person_target]\nrandom up [move_ur] [person | ] -> [ move_ur] [ person | person_target]\nrandom down [move_dl] [person | ] -> [ move_dl] [ person | person_target]\nrandom down [move_dr] [person | ] -> [ move_dr] [ person | person_target]\n\nrandom left [move_ul] [person_target | ] -> [ moved] [ | person_target ]\nrandom right [move_ur] [person_target | ] -> [ moved] [ | person_target ]\nrandom left [move_dl] [person_target | ] -> [ moved] [ | person_target ]\nrandom right [move_dr] [person_target | ] -> [ moved] [ | person_target ]\n[person_target wall ] -> [ wall] \n\n[person_target ] [ person ] -> [ person ] [ ]\n\n[move_active]->[]\n\nlate down [ ball_wwww | player no moved | ball_bbbb ] -> [ ball_wwww | player t | ball_bbbb ]\nlate right [ ball_wwww | player t| ball_bbbb ] -> [ ball_wwww | player move_ul | ball_bbbb ] again\nlate [t] -> [ ]\n\n\nlate down [ ball_wwww | player no moved | ball_bbbb ] -> [ ball_wwww | player t | ball_bbbb ]\nlate right [ ball_bbbb | player t| ball_wwww ] -> [ ball_bbbb | player move_ur | ball_wwww ] again\nlate [t] -> [ ]\n\n\nlate down [ ball_bbbb | player no moved | ball_wwww ] -> [ ball_bbbb | player t | ball_wwww ]\nlate right [ ball_wwww | player t| ball_bbbb ] -> [ ball_wwww | player move_dl | ball_bbbb ] again\nlate [t] -> [ ]\n\n\nlate down [ ball_bbbb | player no moved | ball_wwww ] -> [ ball_bbbb | player t | ball_wwww ]\nlate right [ ball_bbbb | player t| ball_wwww ] -> [ ball_bbbb | player move_dr | ball_wwww ] again\nlate [t] -> [ ]\n\n\nlate down [ ball_wwww | player no moved | ball_wwww ] -> [ ball_wwww | player t | ball_wwww ]\nlate right [ ball_wwww | player t | ball_wwww ] [person flag] -> win\nlate [t] -> [ ]\n\nlate [moved]->[]\n\n[action player sprt_2_3] -> win\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\nfffffffffffffffffffffffff\nffffю.гffffcbbbbbbbbbbbcf\nfffffffffffn...........nf\nfєbbbbbbbґfn...........nf\nfn.......nfn...........nf\nfn.......nfn...cbbbc...nf\nfn..123..nfn...n...n...nf\nfn..456..nfn...n.г.n...nf\nfn..789..nfn...n...c...nf\nfn.......nfn.б.n.......nf\nfn.......nfn...n.......nf\nfжbbbbbbbдfcbbbcbbbbbbbcf\nfffffffffffffffffffffffff\n\nmessage victory!\n\n!@£\n$%^\n&*-\n\\\"|\n\n\n\n", [3, 0, 4, 0, 4, 1, 3, 2, 1, 1, 4, 2, 3, 1, 1, 0, 0, 3, 1], "background wall wall_br:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background tile_ul wall:1,background wall wall_v:2,2,2,2,2,2,2,background tile_dl wall:3,\n0,0,0,0,background wall wall_h:4,background body_7_1:5,background ball_wwww body_7_4:6,background body_7_7:7,background:8,8,8,8,4,0,0,0,0,4,background ball_wwww body_7_2:9,background body_7_5 hand player:10,background ball_bbbb body_7_8:11,8,8,8,8,\n4,0,0,background tile_all wall:12,0,4,background body_7_3:13,background ball_bbbb body_7_6:14,background body_7_9:15,8,8,8,8,4,0,0,8,0,4,8,8,8,8,8,8,\n8,4,0,0,background flag wall:16,0,4,8,8,8,8,8,8,8,4,0,0,0,0,4,8,8,8,8,8,\n8,8,4,0,0,0,0,4,8,8,8,8,8,8,8,4,0,0,0,0,background tile_ur wall:17,2,2,2,2,\n2,2,2,background tile_dr wall:18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background wall wall_bl:19,2,2,2,2,2,\n2,2,2,2,19,0,0,4,background darktile:20,background lighttile:21,20,21,background darktile person:22,21,20,21,20,4,0,0,4,21,20,21,20,\n21,20,21,20,21,4,0,0,4,20,21,20,21,20,21,20,21,20,4,0,0,4,21,20,21,\n19,2,2,2,2,2,19,0,0,4,20,21,20,4,20,21,20,21,20,4,0,0,4,21,20,\n21,4,21,background darktile flag:23,21,20,21,4,0,0,4,20,21,20,4,20,21,20,21,20,4,0,0,4,21,\n20,21,19,2,2,19,20,21,4,0,0,4,20,21,20,21,20,21,20,21,20,4,0,0,4,\n21,20,21,20,21,20,21,20,21,4,0,0,4,20,21,20,21,20,21,20,21,20,4,0,0,\n19,2,2,2,2,2,2,2,2,2,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 1, "1627891910482.2163"] ], [ - "An OK multiban level", - ["title An OK multiban level \nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground\ndarkblue darkgreen\n00000\n00010\n00000\n01000\n00000\n\n\nTarget\npink\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\nWall\ndarkgray darkbrown gray \n00010\n11111\n01000\n11111\n00010\n\n\nPlayer\ndarkbrown brown darkbrown black darkred\n.000.\n.111.\n42224\n14441\n.3.3.\n\n\n\nCrate\nOrange brown\n.000.\n11000\n11000\n11100\n.111.\n\nc_u\nlightgreen lightgreen\n.000.\n.111.\n..1..\n.....\n.....\n\nc_d\ngreen green\n.....\n.....\n..1..\n.111.\n.000.\n\nc_l\ngreen green\n.....\n01...\n011..\n01...\n.....\n\nc_r\nlightgreen lightgreen\n.....\n...10\n..110\n...10\n.....\n\n=======\nLEGEND\n=======\n\nc = c_u or c_d or c_l or c_r\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ns = crate and c_u and c_d and c_l and c_r\nd = s and target\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nc_u\nc_d\nc_l\nc_r\nTarget\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate | Crate ] -> [ > crate | > Crate ]\n\n[moving crate c] -> [ moving crate moving c]\n\n\nup [ c_u | < player ] -> cancel\ndown [ c_d | < player ] -> cancel\nleft [ c_l | < player ] -> cancel\nright [ c_r | < player ] -> cancel\n\n\nlate up [ c_u | crate ] -> [c_u|c_d crate]\nlate down [ c_d | crate ] -> [c_d|c_u crate]\nlate left [ c_l | crate ] -> [c_l|c_r crate]\nlate right [ c_r | crate ] -> [c_r|c_l crate]\n\nlate [ c no crate ] -> cancel\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n#########\n#...o...#\n#.**o**.#\n#.##o##.#\n#...o.p.#\n#########\n\nmessage congrats\n",[1,1,0,0,3,0,3,3,2,2],"background wall:0,0,0,0,0,0,0,background:1,1,\n1,1,0,0,1,background crate:2,0,1,0,\n0,1,2,0,1,0,0,background target:3,3,\n3,3,0,0,1,1,0,1,0,\n0,1,2,0,1,0,0,1,1,\nbackground player:4,2,0,0,0,0,0,0,0,\n",1,"1627891934752.9468"] + "An OK multiban level", + ["title An OK multiban level \nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground\ndarkblue darkgreen\n00000\n00010\n00000\n01000\n00000\n\n\nTarget\npink\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\nWall\ndarkgray darkbrown gray \n00010\n11111\n01000\n11111\n00010\n\n\nPlayer\ndarkbrown brown darkbrown black darkred\n.000.\n.111.\n42224\n14441\n.3.3.\n\n\n\nCrate\nOrange brown\n.000.\n11000\n11000\n11100\n.111.\n\nc_u\nlightgreen lightgreen\n.000.\n.111.\n..1..\n.....\n.....\n\nc_d\ngreen green\n.....\n.....\n..1..\n.111.\n.000.\n\nc_l\ngreen green\n.....\n01...\n011..\n01...\n.....\n\nc_r\nlightgreen lightgreen\n.....\n...10\n..110\n...10\n.....\n\n=======\nLEGEND\n=======\n\nc = c_u or c_d or c_l or c_r\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ns = crate and c_u and c_d and c_l and c_r\nd = s and target\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nc_u\nc_d\nc_l\nc_r\nTarget\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate | Crate ] -> [ > crate | > Crate ]\n\n[moving crate c] -> [ moving crate moving c]\n\n\nup [ c_u | < player ] -> cancel\ndown [ c_d | < player ] -> cancel\nleft [ c_l | < player ] -> cancel\nright [ c_r | < player ] -> cancel\n\n\nlate up [ c_u | crate ] -> [c_u|c_d crate]\nlate down [ c_d | crate ] -> [c_d|c_u crate]\nlate left [ c_l | crate ] -> [c_l|c_r crate]\nlate right [ c_r | crate ] -> [c_r|c_l crate]\n\nlate [ c no crate ] -> cancel\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n#########\n#...o...#\n#.**o**.#\n#.##o##.#\n#...o.p.#\n#########\n\nmessage congrats\n", [1, 1, 0, 0, 3, 0, 3, 3, 2, 2], "background wall:0,0,0,0,0,0,0,background:1,1,\n1,1,0,0,1,background crate:2,0,1,0,\n0,1,2,0,1,0,0,background target:3,3,\n3,3,0,0,1,1,0,1,0,\n0,1,2,0,1,0,0,1,1,\nbackground player:4,2,0,0,0,0,0,0,0,\n", 1, "1627891934752.9468"] ], [ - "Unclean Residues", - ["title Unclean Residues \nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\n\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground\ndarkblue darkgreen\n00000\n00010\n00000\n01000\n00000\n\n\nTarget\npink\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\nWall\ndarkgray darkbrown gray \n00010\n11111\n01000\n11111\n00010\n\n\nPlayer\ndarkbrown brown darkbrown black darkred\n.000.\n.111.\n42224\n14441\n.3.3.\n\n\n\nCrate\nOrange brown\n.000.\n11000\n11000\n11100\n.111.\n\nc_u\nlightgreen lightgreen\n.000.\n.111.\n..1..\n.....\n.....\n\nc_d\ngreen green\n.....\n.....\n..1..\n.111.\n.000.\n\nc_l\ngreen green\n.....\n01...\n011..\n01...\n.....\n\nc_r\nlightgreen lightgreen\n.....\n...10\n..110\n...10\n.....\n\n=======\nLEGEND\n=======\n\nc = c_u or c_d or c_l or c_r\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ns = crate and c_u and c_d and c_l and c_r\nd = s and target\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nc_u\nc_d\nc_l\nc_r\nTarget\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate | Crate ] -> [ > crate | > Crate ]\n\n[moving crate c] -> [ moving crate moving c]\n\n\nup [ c_u | < player ] -> cancel\ndown [ c_d | < player ] -> cancel\nleft [ c_l | < player ] -> cancel\nright [ c_r | < player ] -> cancel\n\n\nlate up [ c_u | crate ] -> [c_u|c_d crate]\nlate down [ c_d | crate ] -> [c_d|c_u crate]\nlate left [ c_l | crate ] -> [c_l|c_r crate]\nlate right [ c_r | crate ] -> [c_r|c_l crate]\n\nlate [ c no crate ] -> cancel\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 6\n\nmessage Place all the stones on the markers BUT BE WARY OF CONTAMINATION\n\n\n(ok?)\n###############\n#.............#\n#.............#\n#...o.o.*.s...#\n#........p....#\n#...o.o.s.*...#\n#.............#\n#.............#\n###############\n\n\nmessage Level 2 of 6\n\n(medium)\n########\n#......#\n#......#\n#..#p..#\n#..s@..#\n#..o@..#\n#......#\n#......#\n########\n\n\n\nmessage Level 3 of 6\n\n\n(ok? too easy?)\n#########\n#.......#\n#.......#\n#.**os*.#\n#.##o##.#\n#...o.p.#\n#...o...#\n#########\n\n\n\nmessage Level 4 of 6\n\n#########\n#.......#\n#...*...#\n#..*s*..#\n#.......#\n#..o.op.#\n#..o.o..#\n#.......#\n#########\n\n\nmessage Level 5 of 6\n\n#########\n#.......#\n#.......#\n#..oso..#\n#..*o*..#\n#..oso..#\n#..*o*..#\n#...p...#\n#.......#\n#########\n\nmessage OH NO THE WALLS ARE CLOSING IN\nmessage level 6 of 6\n\n(hard mode)\n#######\n#.....#\n#.oso.#\n#.*o*.#\n#.oso.#\n#.*o*.#\n#..p..#\n#######\n\nmessage CONGRATULATIONS \n\n(====================================\n\n#########\n#.......#\n#.......#\n#...*...#\n#..*s*..#\n#.......#\n#..o.op.#\n#..o.o..#\n#.......#\n#########\n\n\n#########\n#.......#\n#.......#\n#...*...#\n#..*s*..#\n#..ooo..#\n#...o.p.#\n#.......#\n#.......#\n#########\n\n(too similar leve to 1)\n#############\n#...........#\n#...........#\n#...........#\n#...o.*.o...#\n#...........#\n#...s.p.s...#\n#...........#\n#...o.*.o...#\n#...........#\n#...........#\n#...........#\n#############\n\n(insoluble?)\n###########\n#....o....#\n#....o....#\n#.***os**.#\n#.###o###.#\n#....o.p..#\n#....o....#\n###########\n\n(oh this is an ok multiban level -_-)\n#########\n#...o...#\n#.**o**.#\n#.##o##.#\n#...o.p.#\n#########\n\n\n#########\n#.......#\n#...o...#\n#.**os*.#\n#.##o##.#\n#...o.p.#\n#.......#\n#########\n\n#########\n#...o...#\n#.**os*.#\n#.##o##.#\n#...o.p.#\n#########\n\n(too easy)\n\n#######\n#.....#\n#.#*..#\n#.*s..#\n#...p.#\n#.ooo.#\n#.....#\n#######\n\n\n#########\n#.......#\n#.......#\n#.*sos*.#\n#.##o##.#\n#...p...#\n#...o...#\n#########\n\n#########\n#.*.o...#\n#...o.*.#\n#.##@##.#\n#...@.p.#\n#########\n\n#########\n#.....###\n#.#*..###\n#.*s....#\n#....p..#\n#.o.o.o.#\n#.......#\n#########\n\n#########\n#.......#\n#.#*....#\n#.*s....#\n#....p..#\n#.o.o.o.#\n#.......#\n#########\n\n\n(pretty easy)\n#######\n#.....#\n#.po*.#\n#.oso.#\n#.*o*.#\n#.....#\n#######\n\n(ok?)\n###############\n#.............#\n#.............#\n#......s......#\n#.............#\n#..s.o.o......#\n#.............#\n#........s....#\n#...p.........#\n#......*.o.o..#\n#.............#\n#.............#\n###############\n\n(meh)\n##########\n#........#\n#........#\n#...o*o..#\n#...o....#\n#...ss.p.#\n#...ss...#\n#....o...#\n#..o*o...#\n#........#\n#........#\n##########\n\n\n\n(not so hard)\n#######\n#.....#\n#.OsO.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n(too easy)\n.......\n.......\n..*os..\n..o.o..\n..so*..\n...p...\n.......\n\n\n#####.\n#O..##\n#P*.#.\n##...#\n.##..#\n..##O#\n...###\n\n\n#######\n#.....#\n#.OsO.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\n################\n#..............#\n#.ooo......ooo.#\n#.....ss.*.....#\n#.....ss.*.....#\n#..........p...#\n#..............#\n#..............#\n################\n\n############\n#..........#\n#.ooo..p...#\n#.ooo......#\n#..........#\n#....ss.*..#\n#....ss.*..#\n#..........#\n#..........#\n#..........#\n############\n\n###############\n#.............#\n#.............#\n#..ooo.ss.*...#\n#..ooo.ss.*...#\n#.............#\n#.....p.......#\n#.............#\n###############\n\n###############\n#.............#\n#.............#\n#...oo.s.*....#\n#...oo.s.*....#\n#.............#\n#.....p.......#\n#.............#\n###############\n\n\n###############\n#.............#\n#.............#\n#...o.o.s.*...#\n#........p....#\n#...o.o.s.*...#\n#.............#\n#.............#\n###############\n\n#############\n#...........#\n#...........#\n#......s....#\n#...........#\n#..s.o.o....#\n#.....p.....#\n#....o.o.s..#\n#...........#\n#....*......#\n#...........#\n#...........#\n#############\n\n###############\n#.............#\n#.............#\n#...o.o.*.*...#\n#........p....#\n#...o.o.s.*...#\n#.............#\n#.............#\n###############\n\n####################\n#..................#\n#..................#\n#...o.o....*.*.....#\n#........p.........#\n#...o.o....s.*.....#\n#..................#\n#..................#\n####################\n\n###################\n#.................#\n#.................#\n#..o.o.o.p.s.*.*..#\n#.................#\n#.................#\n###################\n\n\n###################\n#.................#\n#.................#\n#..o.o.o.p.s.*.*..#\n#.................#\n#.................#\n###################\n\n\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#.....p.s.*.....#\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\n#######################\n#.....................#\n#.....................#\n#.....................#\n#.....o.*.o...........#\n#.....................#\n#.....s.p.s...........#\n#.....................#\n#.....o.*.o...........#\n#.....................#\n#.....................#\n#.....................#\n#######################\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\n\n#############\n#...........#\n#.o.o.s.*...#\n#......p....#\n#.o.o.s.*...#\n#...........#\n#############\n\n#############\n#...........#\n#.ooo.s.**..#\n#....p......#\n#...........#\n#...........#\n#############\n)\n",[2,3,2,0,1,1,3,2,2,1,0,2,2,1,0,1,0,3],"background wall:0,0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,\n1,1,0,0,1,1,0,background c_d c_l c_r c_u crate:2,\nbackground player target:3,1,1,0,0,1,1,1,\nbackground c_d c_l crate target:4,background c_u crate target:5,1,1,0,0,1,1,\n1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,0,0,\n0,0,0,0,0,0,0,0,\n",4,"1627891984006.569"] + "Unclean Residues", + ["title Unclean Residues \nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\n\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground\ndarkblue darkgreen\n00000\n00010\n00000\n01000\n00000\n\n\nTarget\npink\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\nWall\ndarkgray darkbrown gray \n00010\n11111\n01000\n11111\n00010\n\n\nPlayer\ndarkbrown brown darkbrown black darkred\n.000.\n.111.\n42224\n14441\n.3.3.\n\n\n\nCrate\nOrange brown\n.000.\n11000\n11000\n11100\n.111.\n\nc_u\nlightgreen lightgreen\n.000.\n.111.\n..1..\n.....\n.....\n\nc_d\ngreen green\n.....\n.....\n..1..\n.111.\n.000.\n\nc_l\ngreen green\n.....\n01...\n011..\n01...\n.....\n\nc_r\nlightgreen lightgreen\n.....\n...10\n..110\n...10\n.....\n\n=======\nLEGEND\n=======\n\nc = c_u or c_d or c_l or c_r\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ns = crate and c_u and c_d and c_l and c_r\nd = s and target\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nc_u\nc_d\nc_l\nc_r\nTarget\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate | Crate ] -> [ > crate | > Crate ]\n\n[moving crate c] -> [ moving crate moving c]\n\n\nup [ c_u | < player ] -> cancel\ndown [ c_d | < player ] -> cancel\nleft [ c_l | < player ] -> cancel\nright [ c_r | < player ] -> cancel\n\n\nlate up [ c_u | crate ] -> [c_u|c_d crate]\nlate down [ c_d | crate ] -> [c_d|c_u crate]\nlate left [ c_l | crate ] -> [c_l|c_r crate]\nlate right [ c_r | crate ] -> [c_r|c_l crate]\n\nlate [ c no crate ] -> cancel\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 6\n\nmessage Place all the stones on the markers BUT BE WARY OF CONTAMINATION\n\n\n(ok?)\n###############\n#.............#\n#.............#\n#...o.o.*.s...#\n#........p....#\n#...o.o.s.*...#\n#.............#\n#.............#\n###############\n\n\nmessage Level 2 of 6\n\n(medium)\n########\n#......#\n#......#\n#..#p..#\n#..s@..#\n#..o@..#\n#......#\n#......#\n########\n\n\n\nmessage Level 3 of 6\n\n\n(ok? too easy?)\n#########\n#.......#\n#.......#\n#.**os*.#\n#.##o##.#\n#...o.p.#\n#...o...#\n#########\n\n\n\nmessage Level 4 of 6\n\n#########\n#.......#\n#...*...#\n#..*s*..#\n#.......#\n#..o.op.#\n#..o.o..#\n#.......#\n#########\n\n\nmessage Level 5 of 6\n\n#########\n#.......#\n#.......#\n#..oso..#\n#..*o*..#\n#..oso..#\n#..*o*..#\n#...p...#\n#.......#\n#########\n\nmessage OH NO THE WALLS ARE CLOSING IN\nmessage level 6 of 6\n\n(hard mode)\n#######\n#.....#\n#.oso.#\n#.*o*.#\n#.oso.#\n#.*o*.#\n#..p..#\n#######\n\nmessage CONGRATULATIONS \n\n(====================================\n\n#########\n#.......#\n#.......#\n#...*...#\n#..*s*..#\n#.......#\n#..o.op.#\n#..o.o..#\n#.......#\n#########\n\n\n#########\n#.......#\n#.......#\n#...*...#\n#..*s*..#\n#..ooo..#\n#...o.p.#\n#.......#\n#.......#\n#########\n\n(too similar leve to 1)\n#############\n#...........#\n#...........#\n#...........#\n#...o.*.o...#\n#...........#\n#...s.p.s...#\n#...........#\n#...o.*.o...#\n#...........#\n#...........#\n#...........#\n#############\n\n(insoluble?)\n###########\n#....o....#\n#....o....#\n#.***os**.#\n#.###o###.#\n#....o.p..#\n#....o....#\n###########\n\n(oh this is an ok multiban level -_-)\n#########\n#...o...#\n#.**o**.#\n#.##o##.#\n#...o.p.#\n#########\n\n\n#########\n#.......#\n#...o...#\n#.**os*.#\n#.##o##.#\n#...o.p.#\n#.......#\n#########\n\n#########\n#...o...#\n#.**os*.#\n#.##o##.#\n#...o.p.#\n#########\n\n(too easy)\n\n#######\n#.....#\n#.#*..#\n#.*s..#\n#...p.#\n#.ooo.#\n#.....#\n#######\n\n\n#########\n#.......#\n#.......#\n#.*sos*.#\n#.##o##.#\n#...p...#\n#...o...#\n#########\n\n#########\n#.*.o...#\n#...o.*.#\n#.##@##.#\n#...@.p.#\n#########\n\n#########\n#.....###\n#.#*..###\n#.*s....#\n#....p..#\n#.o.o.o.#\n#.......#\n#########\n\n#########\n#.......#\n#.#*....#\n#.*s....#\n#....p..#\n#.o.o.o.#\n#.......#\n#########\n\n\n(pretty easy)\n#######\n#.....#\n#.po*.#\n#.oso.#\n#.*o*.#\n#.....#\n#######\n\n(ok?)\n###############\n#.............#\n#.............#\n#......s......#\n#.............#\n#..s.o.o......#\n#.............#\n#........s....#\n#...p.........#\n#......*.o.o..#\n#.............#\n#.............#\n###############\n\n(meh)\n##########\n#........#\n#........#\n#...o*o..#\n#...o....#\n#...ss.p.#\n#...ss...#\n#....o...#\n#..o*o...#\n#........#\n#........#\n##########\n\n\n\n(not so hard)\n#######\n#.....#\n#.OsO.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n(too easy)\n.......\n.......\n..*os..\n..o.o..\n..so*..\n...p...\n.......\n\n\n#####.\n#O..##\n#P*.#.\n##...#\n.##..#\n..##O#\n...###\n\n\n#######\n#.....#\n#.OsO.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\n################\n#..............#\n#.ooo......ooo.#\n#.....ss.*.....#\n#.....ss.*.....#\n#..........p...#\n#..............#\n#..............#\n################\n\n############\n#..........#\n#.ooo..p...#\n#.ooo......#\n#..........#\n#....ss.*..#\n#....ss.*..#\n#..........#\n#..........#\n#..........#\n############\n\n###############\n#.............#\n#.............#\n#..ooo.ss.*...#\n#..ooo.ss.*...#\n#.............#\n#.....p.......#\n#.............#\n###############\n\n###############\n#.............#\n#.............#\n#...oo.s.*....#\n#...oo.s.*....#\n#.............#\n#.....p.......#\n#.............#\n###############\n\n\n###############\n#.............#\n#.............#\n#...o.o.s.*...#\n#........p....#\n#...o.o.s.*...#\n#.............#\n#.............#\n###############\n\n#############\n#...........#\n#...........#\n#......s....#\n#...........#\n#..s.o.o....#\n#.....p.....#\n#....o.o.s..#\n#...........#\n#....*......#\n#...........#\n#...........#\n#############\n\n###############\n#.............#\n#.............#\n#...o.o.*.*...#\n#........p....#\n#...o.o.s.*...#\n#.............#\n#.............#\n###############\n\n####################\n#..................#\n#..................#\n#...o.o....*.*.....#\n#........p.........#\n#...o.o....s.*.....#\n#..................#\n#..................#\n####################\n\n###################\n#.................#\n#.................#\n#..o.o.o.p.s.*.*..#\n#.................#\n#.................#\n###################\n\n\n###################\n#.................#\n#.................#\n#..o.o.o.p.s.*.*..#\n#.................#\n#.................#\n###################\n\n\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#.....p.s.*.....#\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\n#######################\n#.....................#\n#.....................#\n#.....................#\n#.....o.*.o...........#\n#.....................#\n#.....s.p.s...........#\n#.....................#\n#.....o.*.o...........#\n#.....................#\n#.....................#\n#.....................#\n#######################\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\n\n#############\n#...........#\n#.o.o.s.*...#\n#......p....#\n#.o.o.s.*...#\n#...........#\n#############\n\n#############\n#...........#\n#.ooo.s.**..#\n#....p......#\n#...........#\n#...........#\n#############\n)\n", [2, 3, 2, 0, 1, 1, 3, 2, 2, 1, 0, 2, 2, 1, 0, 1, 0, 3], "background wall:0,0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,\n1,1,0,0,1,1,0,background c_d c_l c_r c_u crate:2,\nbackground player target:3,1,1,0,0,1,1,1,\nbackground c_d c_l crate target:4,background c_u crate target:5,1,1,0,0,1,1,\n1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,0,0,\n0,0,0,0,0,0,0,0,\n", 4, "1627891984006.569"] ], [ - "Car Crash", - ["title Car Crash\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nnoaction\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground\nblack\n\nbg_light\ndarkgreen\n\nbg_dark\ndarkblue\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nblack \n\nPlayer_down\nlightred darkgreen\n.....\n.000.\n00000\n00000\n00000\n\n\nPlayer_up\nlightred darkgreen\n00000\n00000\n00000\n.000.\n.....\n\nplayer_right\nlightred darkgreen\n..000\n.0000\n.0000\n.0000\n..000\n\n\nplayer_left\nlightred darkgreen\n000..\n0000.\n0000.\n0000.\n000..\n\nplayer_crushed\ndarkgreen darkgray\n..1..\n.101.\n10001\n.101.\n..1..\n\nenemy_crushed\ndarkred darkgray\n..1..\n.101.\n10001\n.101.\n..1..\n\nenemy_down\nred\n..0..\n.000.\n00000\n00000\n00000\n\n\nenemy_up\nred\n00000\n00000\n00000\n.000.\n..0..\n\nenemy_right\nred\n..000\n.0000\n00000\n.0000\n..000\n\n\nenemy_left\nred\n000..\n0000.\n00000\n0000.\n000..\n\n\ngoal\nyellow\n.....\n..0..\n.000.\n..0..\n.....\n\n\nwint\nblack\n\ntemp\nTRANSPARENT\n\nt2\nTRANSPARENT\n\nfinaltext\nyellow\n\nblack \nblack\n\n=======\nLEGEND\n=======\n\n\nplayer_noup = player_down or player_left or player_right\nplayer_nodown = player_up or player_left or player_right\nplayer_noleft = player_up or player_down or player_right\nplayer_noright = player_up or player_down or player_left\n\nplayer_dir = player_up or player_down or player_left or player_right\nplayer = player_dir or player_crushed\n\nenemy = enemy_up or enemy_down or enemy_left or enemy_right\n\n. = Background\n# = Wall\nO = Target\n\n1 = player_down and player_right\n2 = player_down and player_left\n3 = player_up and player_down and player_right\n4 = player_up and player_down and player_left\n5 = player_up and player_right\n6 = player_up and player_left\n\n\n\n\nq = enemy_down and enemy_right\nw = enemy_down and enemy_left\ne = enemy_up and enemy_down and enemy_right\nr = enemy_up and enemy_down and enemy_left\nt = enemy_up and enemy_right\ny = enemy_up and enemy_left\n\nu = enemy_left and enemy_down and enemy_right\ni = enemy_left and enemy_up and enemy_right\n\ng = goal\na = wint\n\ns = enemy_right\nd = enemy_right and enemy_left\nf = enemy_left\n\nz = finaltext and black\n\n=======\nSOUNDS\n=======\n\nsfx0 7375900\nsfx1 12966304\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbg_light, bg_dark\n\nwint\n\nTarget\n\nenemy_up\nenemy_down\nenemy_left\nenemy_right\nenemy_crushed\n\nplayer_up\nplayer_down\nplayer_left\nplayer_right\nplayer_crushed\n\nwall\ngoal\n\ntemp\nt2\nfinaltext\nblack\n\n======\nRULES\n======\n\n(\n[ > player_crushed | enemy ] -> [ > player_crushed | > enemy ]\nup [ moving enemy_up | enemy ] -> [ moving enemy_up | moving enemy ]\n+ down [ moving enemy_down | enemy ] -> [ moving enemy_down | moving enemy ]\n+ left [ moving enemy_left | enemy ] -> [ moving enemy_left | moving enemy ]\n+ right [ moving enemy_right | enemy ] -> [ moving enemy_right | moving enemy ]\n)\n\nrandom [ ] -> [ bg_light]\n\n[bg_light | no bg_dark ] -> [ bg_light | bg_dark]\n+[bg_dark | no bg_light ] -> [ bg_dark | bg_light]\n\n[ > player | wall ] -> cancel \n[ > enemy | wall ] -> cancel\n\nlate [ player_dir enemy ] -> [ player_dir player_crushed enemy ] sfx1\n\n\nlate [ enemy_up player_crushed] -> [ player_up player_crushed ]\nlate [ enemy_down player_crushed] -> [ player_down player_crushed ]\nlate [ enemy_left player_crushed] -> [ player_left player_crushed ]\nlate [ enemy_right player_crushed] -> [ player_right player_crushed ]\n\nlate up [ player_up | enemy_down ] -> [ player_up | Player_down ]\n+ late down [ player_down | enemy_up ] -> [ player_down | Player_up ]\n+ late left [ player_left | enemy_right ] -> [ player_left | Player_right ]\n+ late right [ player_right | enemy_left ] -> [ player_right | Player_left ]\n+ late [ player_noup enemy_up] -> [ player_noup player_up ]\n+ late [ player_nodown enemy_down] -> [ player_nodown player_down ]\n+ late [ player_noleft enemy_left] -> [ player_noleft player_left ]\n+ late [ player_noright enemy_right] -> [ player_noright player_right ]\n\n\n(push an enemy into another enemy -_- )\n\nlate [ goal no player_crushed ] -> [ temp goal ]\nlate [ temp goal | no temp goal ] -> [ temp goal | temp goal ]\nlate [ player_crushed no goal ] [ goal ] -> [ player_crushed ] [ goal temp ]\nlate [ goal player_crushed no temp ] -> [ goal player_crushed t2 ] \n\nlate [t2] [ player_dir ] -> [t2] []\n\nlate down [t2] [ player_crushed | player_crushed ] -> [t2] [ player_crushed player_down | player_crushed player_up ]\n\nlate right [t2] [ player_crushed | player_crushed ] -> [t2] [ player_crushed player_right | player_crushed player_left ]\n\nlate [ t2] [ player_crushed goal ] -> [t2] [ player_crushed wint ] sfx0\n\nlate [ temp ] -> []\n\nlate [ t2 ] -> []\n\n[stationary finaltext]->[> finaltext]\n[moving finaltext | no finaltext ] -> [ moving finaltext | finaltext] again\n[moving finaltext ]-> [ finaltext]\n\n[finaltext] [ no finaltext ] -> [ finaltext t2 ] [ ]\n\n[finaltext no t2 ] -> win\n\n[t2]->[]\n\n==============\nWINCONDITIONS\n==============\n\nno goal\n\nno finaltext\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\n#########################################\n#.......................................#\n#...................12..................#\n#...................34..................#\n#...................56..................#\n#.......................................#\n#..................sdf..................#\n#....qw.....qw.............qw.....qw....#\n#....er.....er.....sdf.....er.....er....#\n#....ty.....ty.............ty.....ty....#\n#.......................................#\n#............g...ggg.g.g.aaa............#\n#............g...g.g.g.g.a..............#\n#............g...g.g.g.g.aaa............#\n#............g...g.g.g.g.a..............#\n#............ggg.ggg.ggg.aaa............#\n#.......................................#\n#....qw.....qw.....qw......qw.....qw....#\n#....er.....er.....er......er.....er....#\n#....ty.....ty.....ty......ty.....ty....#\n#.......................................#\n#.......................................#\n#.......................................#\n#.......................................#\n#.......................................#\n#.......................................#\n#########################################\n\n\n...............................\n...............................\n...............................\n........z...zzz.z.z.zzz........\n........z...z.z.z.z.z..........\n........z...z.z.z.z.zzz........\n........z...z.z.z.z.z..........\n........zzz.zzz.zzz.zzz........\n...............................\n...............................\n...............................\n\nmessage Love!\n\n",[2,2,2,2,2,2,2,2,3,3,3,3,2,2,3,3,"restart",1,1,1,2,2,3,1,1,1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,3,3,2,2,2,2,2,3,3,3,3,3,3,0,0,0,0,0,1,1,1,1,"restart",3,3,2,2,2,2,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,2,3,3,2,2,2,3,2,3,3,3,3,1,1,0,0,0,3,3,3,3,3,3,0,0,1,1,1,1,1],"background bg_dark wall:0,background bg_light wall: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,background bg_dark:2,background bg_light:3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,background bg_dark enemy_down enemy_right:4,background bg_light enemy_down enemy_right enemy_up:5,background bg_dark enemy_right enemy_up:6,3,2,3,2,3,2,3,4,5,6,3,2,3,2,3,2,1,0,3,\n2,3,2,3,2,background bg_light enemy_down enemy_left:7,background bg_dark enemy_down enemy_left enemy_up:8,background bg_light enemy_left enemy_up:9,2,3,2,3,2,3,2,7,8,9,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,\n2,3,2,background bg_light enemy_down enemy_right:10,background bg_dark enemy_down enemy_right enemy_up:11,background bg_light enemy_right enemy_up:12,2,3,2,3,2,3,2,10,11,12,2,3,2,3,2,3,0,1,2,3,2,3,2,3,background bg_dark enemy_down enemy_left:13,background bg_light enemy_down enemy_left enemy_up:14,background bg_dark enemy_left enemy_up:15,3,background bg_dark goal:16,background bg_light goal:17,16,17,16,3,13,\n14,15,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,17,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,16,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,16,17,16,17,16,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,\n2,3,2,3,2,17,2,3,2,17,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,16,17,16,17,16,3,4,5,6,\n3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,7,8,9,2,3,2,3,2,3,0,1,2,3,2,3,2,3,\n2,3,2,3,16,17,16,17,16,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,17,2,3,2,3,2,\n3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,16,17,16,17,16,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,background bg_light player_down player_right:18,background bg_dark player_down player_right player_up:19,background bg_light player_right player_up:20,2,3,background bg_dark wint:21,background bg_light wint:22,21,22,21,3,2,3,2,3,2,\n3,2,3,2,1,0,3,2,3,2,3,background bg_dark player_crushed player_down player_left player_right:23,background bg_light player_down player_left player_up:24,background bg_dark player_crushed player_left player_right player_up:25,3,2,22,2,22,2,22,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,background bg_light player_left player_right:26,2,26,\n2,3,21,3,21,3,21,3,4,5,6,3,2,3,2,3,2,1,0,3,2,3,background bg_dark player_down player_right:27,background bg_light player_down player_right player_up:28,25,3,background bg_dark player_left:29,3,2,3,2,3,2,3,2,7,8,9,2,3,2,\n3,2,3,0,1,2,3,2,background bg_light player_down player_left:30,background bg_dark player_crushed player_down player_left player_right player_up:31,background bg_light player_crushed player_down player_left player_right player_up:32,background bg_dark player_right player_up:33,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,30,background bg_dark player_down player_left player_up:34,background bg_light player_left player_up:35,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,10,11,12,2,3,2,3,2,\n3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,13,14,15,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,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,\n",1,"1627891999778.8188"] + "Car Crash", + ["title Car Crash\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nnoaction\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground\nblack\n\nbg_light\ndarkgreen\n\nbg_dark\ndarkblue\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nblack \n\nPlayer_down\nlightred darkgreen\n.....\n.000.\n00000\n00000\n00000\n\n\nPlayer_up\nlightred darkgreen\n00000\n00000\n00000\n.000.\n.....\n\nplayer_right\nlightred darkgreen\n..000\n.0000\n.0000\n.0000\n..000\n\n\nplayer_left\nlightred darkgreen\n000..\n0000.\n0000.\n0000.\n000..\n\nplayer_crushed\ndarkgreen darkgray\n..1..\n.101.\n10001\n.101.\n..1..\n\nenemy_crushed\ndarkred darkgray\n..1..\n.101.\n10001\n.101.\n..1..\n\nenemy_down\nred\n..0..\n.000.\n00000\n00000\n00000\n\n\nenemy_up\nred\n00000\n00000\n00000\n.000.\n..0..\n\nenemy_right\nred\n..000\n.0000\n00000\n.0000\n..000\n\n\nenemy_left\nred\n000..\n0000.\n00000\n0000.\n000..\n\n\ngoal\nyellow\n.....\n..0..\n.000.\n..0..\n.....\n\n\nwint\nblack\n\ntemp\nTRANSPARENT\n\nt2\nTRANSPARENT\n\nfinaltext\nyellow\n\nblack \nblack\n\n=======\nLEGEND\n=======\n\n\nplayer_noup = player_down or player_left or player_right\nplayer_nodown = player_up or player_left or player_right\nplayer_noleft = player_up or player_down or player_right\nplayer_noright = player_up or player_down or player_left\n\nplayer_dir = player_up or player_down or player_left or player_right\nplayer = player_dir or player_crushed\n\nenemy = enemy_up or enemy_down or enemy_left or enemy_right\n\n. = Background\n# = Wall\nO = Target\n\n1 = player_down and player_right\n2 = player_down and player_left\n3 = player_up and player_down and player_right\n4 = player_up and player_down and player_left\n5 = player_up and player_right\n6 = player_up and player_left\n\n\n\n\nq = enemy_down and enemy_right\nw = enemy_down and enemy_left\ne = enemy_up and enemy_down and enemy_right\nr = enemy_up and enemy_down and enemy_left\nt = enemy_up and enemy_right\ny = enemy_up and enemy_left\n\nu = enemy_left and enemy_down and enemy_right\ni = enemy_left and enemy_up and enemy_right\n\ng = goal\na = wint\n\ns = enemy_right\nd = enemy_right and enemy_left\nf = enemy_left\n\nz = finaltext and black\n\n=======\nSOUNDS\n=======\n\nsfx0 7375900\nsfx1 12966304\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbg_light, bg_dark\n\nwint\n\nTarget\n\nenemy_up\nenemy_down\nenemy_left\nenemy_right\nenemy_crushed\n\nplayer_up\nplayer_down\nplayer_left\nplayer_right\nplayer_crushed\n\nwall\ngoal\n\ntemp\nt2\nfinaltext\nblack\n\n======\nRULES\n======\n\n(\n[ > player_crushed | enemy ] -> [ > player_crushed | > enemy ]\nup [ moving enemy_up | enemy ] -> [ moving enemy_up | moving enemy ]\n+ down [ moving enemy_down | enemy ] -> [ moving enemy_down | moving enemy ]\n+ left [ moving enemy_left | enemy ] -> [ moving enemy_left | moving enemy ]\n+ right [ moving enemy_right | enemy ] -> [ moving enemy_right | moving enemy ]\n)\n\nrandom [ ] -> [ bg_light]\n\n[bg_light | no bg_dark ] -> [ bg_light | bg_dark]\n+[bg_dark | no bg_light ] -> [ bg_dark | bg_light]\n\n[ > player | wall ] -> cancel \n[ > enemy | wall ] -> cancel\n\nlate [ player_dir enemy ] -> [ player_dir player_crushed enemy ] sfx1\n\n\nlate [ enemy_up player_crushed] -> [ player_up player_crushed ]\nlate [ enemy_down player_crushed] -> [ player_down player_crushed ]\nlate [ enemy_left player_crushed] -> [ player_left player_crushed ]\nlate [ enemy_right player_crushed] -> [ player_right player_crushed ]\n\nlate up [ player_up | enemy_down ] -> [ player_up | Player_down ]\n+ late down [ player_down | enemy_up ] -> [ player_down | Player_up ]\n+ late left [ player_left | enemy_right ] -> [ player_left | Player_right ]\n+ late right [ player_right | enemy_left ] -> [ player_right | Player_left ]\n+ late [ player_noup enemy_up] -> [ player_noup player_up ]\n+ late [ player_nodown enemy_down] -> [ player_nodown player_down ]\n+ late [ player_noleft enemy_left] -> [ player_noleft player_left ]\n+ late [ player_noright enemy_right] -> [ player_noright player_right ]\n\n\n(push an enemy into another enemy -_- )\n\nlate [ goal no player_crushed ] -> [ temp goal ]\nlate [ temp goal | no temp goal ] -> [ temp goal | temp goal ]\nlate [ player_crushed no goal ] [ goal ] -> [ player_crushed ] [ goal temp ]\nlate [ goal player_crushed no temp ] -> [ goal player_crushed t2 ] \n\nlate [t2] [ player_dir ] -> [t2] []\n\nlate down [t2] [ player_crushed | player_crushed ] -> [t2] [ player_crushed player_down | player_crushed player_up ]\n\nlate right [t2] [ player_crushed | player_crushed ] -> [t2] [ player_crushed player_right | player_crushed player_left ]\n\nlate [ t2] [ player_crushed goal ] -> [t2] [ player_crushed wint ] sfx0\n\nlate [ temp ] -> []\n\nlate [ t2 ] -> []\n\n[stationary finaltext]->[> finaltext]\n[moving finaltext | no finaltext ] -> [ moving finaltext | finaltext] again\n[moving finaltext ]-> [ finaltext]\n\n[finaltext] [ no finaltext ] -> [ finaltext t2 ] [ ]\n\n[finaltext no t2 ] -> win\n\n[t2]->[]\n\n==============\nWINCONDITIONS\n==============\n\nno goal\n\nno finaltext\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\n#########################################\n#.......................................#\n#...................12..................#\n#...................34..................#\n#...................56..................#\n#.......................................#\n#..................sdf..................#\n#....qw.....qw.............qw.....qw....#\n#....er.....er.....sdf.....er.....er....#\n#....ty.....ty.............ty.....ty....#\n#.......................................#\n#............g...ggg.g.g.aaa............#\n#............g...g.g.g.g.a..............#\n#............g...g.g.g.g.aaa............#\n#............g...g.g.g.g.a..............#\n#............ggg.ggg.ggg.aaa............#\n#.......................................#\n#....qw.....qw.....qw......qw.....qw....#\n#....er.....er.....er......er.....er....#\n#....ty.....ty.....ty......ty.....ty....#\n#.......................................#\n#.......................................#\n#.......................................#\n#.......................................#\n#.......................................#\n#.......................................#\n#########################################\n\n\n...............................\n...............................\n...............................\n........z...zzz.z.z.zzz........\n........z...z.z.z.z.z..........\n........z...z.z.z.z.zzz........\n........z...z.z.z.z.z..........\n........zzz.zzz.zzz.zzz........\n...............................\n...............................\n...............................\n\nmessage Love!\n\n", [2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 2, 2, 3, 3, "restart", 1, 1, 1, 2, 2, 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 1, 1, 1, 1, "restart", 3, 3, 2, 2, 2, 2, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 2, 3, 3, 2, 2, 2, 3, 2, 3, 3, 3, 3, 1, 1, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 1, 1, 1, 1, 1], "background bg_dark wall:0,background bg_light wall: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,background bg_dark:2,background bg_light:3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,background bg_dark enemy_down enemy_right:4,background bg_light enemy_down enemy_right enemy_up:5,background bg_dark enemy_right enemy_up:6,3,2,3,2,3,2,3,4,5,6,3,2,3,2,3,2,1,0,3,\n2,3,2,3,2,background bg_light enemy_down enemy_left:7,background bg_dark enemy_down enemy_left enemy_up:8,background bg_light enemy_left enemy_up:9,2,3,2,3,2,3,2,7,8,9,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,\n2,3,2,background bg_light enemy_down enemy_right:10,background bg_dark enemy_down enemy_right enemy_up:11,background bg_light enemy_right enemy_up:12,2,3,2,3,2,3,2,10,11,12,2,3,2,3,2,3,0,1,2,3,2,3,2,3,background bg_dark enemy_down enemy_left:13,background bg_light enemy_down enemy_left enemy_up:14,background bg_dark enemy_left enemy_up:15,3,background bg_dark goal:16,background bg_light goal:17,16,17,16,3,13,\n14,15,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,17,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,16,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,16,17,16,17,16,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,\n2,3,2,3,2,17,2,3,2,17,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,16,17,16,17,16,3,4,5,6,\n3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,7,8,9,2,3,2,3,2,3,0,1,2,3,2,3,2,3,\n2,3,2,3,16,17,16,17,16,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,17,2,3,2,3,2,\n3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,16,17,16,17,16,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,background bg_light player_down player_right:18,background bg_dark player_down player_right player_up:19,background bg_light player_right player_up:20,2,3,background bg_dark wint:21,background bg_light wint:22,21,22,21,3,2,3,2,3,2,\n3,2,3,2,1,0,3,2,3,2,3,background bg_dark player_crushed player_down player_left player_right:23,background bg_light player_down player_left player_up:24,background bg_dark player_crushed player_left player_right player_up:25,3,2,22,2,22,2,22,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,background bg_light player_left player_right:26,2,26,\n2,3,21,3,21,3,21,3,4,5,6,3,2,3,2,3,2,1,0,3,2,3,background bg_dark player_down player_right:27,background bg_light player_down player_right player_up:28,25,3,background bg_dark player_left:29,3,2,3,2,3,2,3,2,7,8,9,2,3,2,\n3,2,3,0,1,2,3,2,background bg_light player_down player_left:30,background bg_dark player_crushed player_down player_left player_right player_up:31,background bg_light player_crushed player_down player_left player_right player_up:32,background bg_dark player_right player_up:33,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,30,background bg_dark player_down player_left player_up:34,background bg_light player_left player_up:35,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,10,11,12,2,3,2,3,2,\n3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,13,14,15,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,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,\n", 1, "1627891999778.8188"] ], [ - "Alternatey", - ["title Alternatey\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nbackground_color darkgray\n\nnoaction\n\nrequire_player_movement\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nwall \ndarkgray\n\n\nPlayer\nwhite\n\nt\nTRANSPARENT\n\ngoal g\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nh = goal and player\n\n\n=======\nSOUNDS\n=======\n\nendlevel 6300906 \nstartgame 6300906 \n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall\nt\ng\n\n======\nRULES\n======\n\n\n[moving player ] -> again\n\n[stationary player ] [ no player no wall ] -> [stationary player ] [ player t ]\n[stationary player ] [ player no t no wall ] ->[stationary player ] [ ]\n[stationary player ] [t]->[stationary player ] []\n\n==============\nWINCONDITIONS\n==============\nall player on goal\nall goal on player\n\n=======\nLEVELS\n=======\n\nmessage you control the white squares\n\nmessage level 1 of 3\n\n\n....\n..P.\n.gg.\nP...\n....\n\n\nmessage level 2 of 3\n\n......\n.g..g.\n..pp..\n..pp..\n.g..g.\n......\n\n\nmessage level 3 of 3\n\n#...#\n.gpg.\n.p.p.\n.gpg.\n#...#\n\nmessage Victory!\n\n",[0,1,2],"background player:0,0,0,0,0,0,\n0,background goal player:1,0,0,1,0,\n0,0,background:2,2,0,0,\n0,0,0,0,0,0,\n0,1,0,0,1,0,\n0,0,2,2,0,0,\n",4,"1627892045163.187"] + "Alternatey", + ["title Alternatey\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nbackground_color darkgray\n\nnoaction\n\nrequire_player_movement\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nwall \ndarkgray\n\n\nPlayer\nwhite\n\nt\nTRANSPARENT\n\ngoal g\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nh = goal and player\n\n\n=======\nSOUNDS\n=======\n\nendlevel 6300906 \nstartgame 6300906 \n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall\nt\ng\n\n======\nRULES\n======\n\n\n[moving player ] -> again\n\n[stationary player ] [ no player no wall ] -> [stationary player ] [ player t ]\n[stationary player ] [ player no t no wall ] ->[stationary player ] [ ]\n[stationary player ] [t]->[stationary player ] []\n\n==============\nWINCONDITIONS\n==============\nall player on goal\nall goal on player\n\n=======\nLEVELS\n=======\n\nmessage you control the white squares\n\nmessage level 1 of 3\n\n\n....\n..P.\n.gg.\nP...\n....\n\n\nmessage level 2 of 3\n\n......\n.g..g.\n..pp..\n..pp..\n.g..g.\n......\n\n\nmessage level 3 of 3\n\n#...#\n.gpg.\n.p.p.\n.gpg.\n#...#\n\nmessage Victory!\n\n", [0, 1, 2], "background player:0,0,0,0,0,0,\n0,background goal player:1,0,0,1,0,\n0,0,background:2,2,0,0,\n0,0,0,0,0,0,\n0,1,0,0,1,0,\n0,0,2,2,0,0,\n", 4, "1627892045163.187"] ], [ - "Push Pull", - ["title Push Pull\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrequire_player_movement\n\n(the levels are taken from D. Skinner's microban, a demo bundled with puzzlescript, but the mechanics are different, so?)\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\ncrate2\nLIGHTRED \n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\ncrates = crate or crate2\n\n. = Background\n# = Wall\nP = Player\n* = Crate\nj = crate2\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, crate2\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate2 ]\n[ < Player | Crate2 ] -> [ < Player | < Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crates\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 3\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 2 of 3\n\n\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\nmessage level 3 of 3\n\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\nmessage congrats :)\n",[2,1,0,3,3,3,2,1,0,1,1,2,2,3,0,1,0,3,1,2,0,0,3,0],"background wall:0,0,0,0,0,0,\n0,0,background:1,background crate2:2,background target:3,1,\n1,0,0,3,background player:4,background crate:5,\n1,1,0,0,0,0,\n1,1,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",1,"1627892056284.9724"] + "Push Pull", + ["title Push Pull\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrequire_player_movement\n\n(the levels are taken from D. Skinner's microban, a demo bundled with puzzlescript, but the mechanics are different, so?)\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\ncrate2\nLIGHTRED \n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\ncrates = crate or crate2\n\n. = Background\n# = Wall\nP = Player\n* = Crate\nj = crate2\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, crate2\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate2 ]\n[ < Player | Crate2 ] -> [ < Player | < Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crates\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 3\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 2 of 3\n\n\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\nmessage level 3 of 3\n\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\nmessage congrats :)\n", [2, 1, 0, 3, 3, 3, 2, 1, 0, 1, 1, 2, 2, 3, 0, 1, 0, 3, 1, 2, 0, 0, 3, 0], "background wall:0,0,0,0,0,0,\n0,0,background:1,background crate2:2,background target:3,1,\n1,0,0,3,background player:4,background crate:5,\n1,1,0,0,0,0,\n1,1,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 1, "1627892056284.9724"] ], [ - "Slide Pull", - ["title Slide Pull\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nrequire_player_movement\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\npink Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\ncrate2\nlightblue \n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\ncrates = crate or crate2\n\n. = Background\n# = Wall\nP = Player\n* = Crate2\nj = crate\n@ = Crate2 and Target\nO = Target\n\nobstacle = crates or wall or player \n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, crate2\n\n======\nRULES\n======\n\n\n[ > Player | Crate2 ] -> [ > Player | > Crate2 ]\n\n[ > crate2 | no obstacle ] -> [ | > crate2 ]\n[> crate2 | obstacle ] -> [ crate | obstacle ]\n\n[ < Player | Crate ] -> [ < Player | < Crate2 ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crates\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 7\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\nmessage level 2 of 7\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\nmessage level 3 of 7\n\n\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\n\n\n\nmessage level 4 of 7\n\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n\nmessage level 5 of 7\n\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\n\nmessage level 6 of 7\n\n\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n\nmessage level 7 of 7\n\n\n\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.j.j.j.#\n#.#.#.#.###\n#.......#..\n#########..\n\n\n\n\nmessage congrats :)\n\n",[1,0,1,1,2,0,1,1,1,3,3,3,2,1,2,3,0,3,0,3,3,3,1,1,2,1,0,0,3,3,3,2,1],"background wall:0,0,0,0,0,background:1,0,1,\nbackground crate:2,1,0,1,0,1,background crate target:3,1,\n0,1,0,1,background target:4,1,0,1,\n0,1,4,2,0,0,0,1,\nbackground player:5,1,1,0,0,1,1,1,\n1,0,0,0,0,0,0,0,\n",5,"1627892069950.7256"] + "Slide Pull", + ["title Slide Pull\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nrequire_player_movement\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\npink Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\ncrate2\nlightblue \n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\ncrates = crate or crate2\n\n. = Background\n# = Wall\nP = Player\n* = Crate2\nj = crate\n@ = Crate2 and Target\nO = Target\n\nobstacle = crates or wall or player \n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, crate2\n\n======\nRULES\n======\n\n\n[ > Player | Crate2 ] -> [ > Player | > Crate2 ]\n\n[ > crate2 | no obstacle ] -> [ | > crate2 ]\n[> crate2 | obstacle ] -> [ crate | obstacle ]\n\n[ < Player | Crate ] -> [ < Player | < Crate2 ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crates\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 7\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\nmessage level 2 of 7\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\nmessage level 3 of 7\n\n\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\n\n\n\nmessage level 4 of 7\n\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n\nmessage level 5 of 7\n\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\n\nmessage level 6 of 7\n\n\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n\nmessage level 7 of 7\n\n\n\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.j.j.j.#\n#.#.#.#.###\n#.......#..\n#########..\n\n\n\n\nmessage congrats :)\n\n", [1, 0, 1, 1, 2, 0, 1, 1, 1, 3, 3, 3, 2, 1, 2, 3, 0, 3, 0, 3, 3, 3, 1, 1, 2, 1, 0, 0, 3, 3, 3, 2, 1], "background wall:0,0,0,0,0,background:1,0,1,\nbackground crate:2,1,0,1,0,1,background crate target:3,1,\n0,1,0,1,background target:4,1,0,1,\n0,1,4,2,0,0,0,1,\nbackground player:5,1,1,0,0,1,1,1,\n1,0,0,0,0,0,0,0,\n", 5, "1627892069950.7256"] ], [ - "Make way!", - ["title Make way!\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrequire_player_movement\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\nGREEN lightgreen \n11111\n01111\n11101\n11111\n10111\n\n\npit\nblack\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nblack\n\nPlayer\nBlack brown White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\ncrate\nblue \n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n\n. = Background\n# = Wall\nP = Player\nc = crate\n@ = crate and Target\nO = Target\n\nobstacle = crate or wall or player \n=======\nSOUNDS\n=======\n\nsfx0 67594107\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\npit\nTarget\nPlayer, Wall, crate\n\n======\nRULES\n======\n\n[> player | pit ] -> cancel\n\n[ moving player ] -> [ moving player pit ]\n[ > Player | crate ] -> [ > Player | > crate ] \n\n[ > crate | no obstacle ] -> [ | > crate no pit ]\n[> crate | obstacle ] -> [ crate | obstacle ] sfx0\n\n\n==============\nWINCONDITIONS\n==============\nall crate on target\n\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 2\n\n#######\n#.....#\n#..c..#\n#..c..#\n#..c..#\n#.....#\n#.....#\n#..p..#\n#o.o.o#\n#######\n\n\n\nmessage level 2 of 2\n\n#######\n#.....#\n#.c.c.#\n#.....#\n#.c.c.#\n#.....#\n#oopoo#\n#######\n\n\nmessage congrats :)\n\n\n\n\n\n",[0,3,0,0,0,1,1,0,1,2],"background wall:0,0,0,0,0,0,0,\n0,0,0,0,background:1,background pit:2,background player:3,\n1,1,1,1,background crate target:4,0,0,\n1,2,2,1,1,1,1,\n1,0,0,1,background crate:5,2,5,\n1,2,2,background target:6,0,0,1,\n1,2,2,2,2,1,1,\n0,0,1,1,1,1,1,\n1,1,6,0,0,0,0,\n0,0,0,0,0,0,0,\n",1,"1627892084709.0234"] + "Make way!", + ["title Make way!\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrequire_player_movement\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\nGREEN lightgreen \n11111\n01111\n11101\n11111\n10111\n\n\npit\nblack\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nblack\n\nPlayer\nBlack brown White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\ncrate\nblue \n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n\n. = Background\n# = Wall\nP = Player\nc = crate\n@ = crate and Target\nO = Target\n\nobstacle = crate or wall or player \n=======\nSOUNDS\n=======\n\nsfx0 67594107\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\npit\nTarget\nPlayer, Wall, crate\n\n======\nRULES\n======\n\n[> player | pit ] -> cancel\n\n[ moving player ] -> [ moving player pit ]\n[ > Player | crate ] -> [ > Player | > crate ] \n\n[ > crate | no obstacle ] -> [ | > crate no pit ]\n[> crate | obstacle ] -> [ crate | obstacle ] sfx0\n\n\n==============\nWINCONDITIONS\n==============\nall crate on target\n\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 2\n\n#######\n#.....#\n#..c..#\n#..c..#\n#..c..#\n#.....#\n#.....#\n#..p..#\n#o.o.o#\n#######\n\n\n\nmessage level 2 of 2\n\n#######\n#.....#\n#.c.c.#\n#.....#\n#.c.c.#\n#.....#\n#oopoo#\n#######\n\n\nmessage congrats :)\n\n\n\n\n\n", [0, 3, 0, 0, 0, 1, 1, 0, 1, 2], "background wall:0,0,0,0,0,0,0,\n0,0,0,0,background:1,background pit:2,background player:3,\n1,1,1,1,background crate target:4,0,0,\n1,2,2,1,1,1,1,\n1,0,0,1,background crate:5,2,5,\n1,2,2,background target:6,0,0,1,\n1,2,2,2,2,1,1,\n0,0,1,1,1,1,1,\n1,1,6,0,0,0,0,\n0,0,0,0,0,0,0,\n", 1, "1627892084709.0234"] ], [ - "DICE GOBLIN", - ["title DICE GOBLIN\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nd1 1\nwhite darkgray black\n22222\n20002\n20102\n20002\n22222\n\nd2a 2\nwhite darkgray black\n22222\n21002\n20002\n20012\n22222\n\n\nd2b 3\nwhite darkgray black\n22222\n20012\n20002\n21002\n22222\n\nd3a 4\nwhite darkgray black\n22222\n21002\n20102\n20012\n22222\n\n\nd3b 5\nwhite darkgray black\n22222\n20012\n20102\n21002\n22222\n\n\nd4 6\nwhite darkgray black\n22222\n21012\n20002\n21012\n22222\n\n\nd5 7\nwhite darkgray black\n22222\n21012\n20102\n21012\n22222\n\n\nd6a 8\nwhite darkgray black\n22222\n21112\n20002\n21112\n22222\n\n\nd6b 9\nwhite darkgray black\n22222\n21012\n21012\n21012\n22222\n\n\nBackground\nlightgray\n\nob\ngray\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nblack\n\nPlayer\ngreen lightgreen brown\n00.00\n.222.\n.101.\n00000\n.0.0.\n\nCrate\nblack\n.....\n..0..\n.000.\n..0..\n.....\n\ntl\nred\n\nx11\ntransparent\n\nx21\ntransparent\n\nx31\ntransparent\n\n\nx12\ntransparent\n\nx22\ntransparent\n\nx32\ntransparent\n\n\nx13\ntransparent\n\nx23\ntransparent\n\nx33\ntransparent\n\nvisited\ntransparent\n\nfound \norange\n00000\n0...0\n0...0\n0...0\n00000\n\npasses\nblue\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player and ob\n* = Crate \n~ = Crate and ob\nm = crate and ob and tl\nn = crate and tl\nO = Target\n, = ob\n\nd2 = d2a or d2b\nd3 = d3a or d3b\nd6 = d6a or d6b\n\ncoord = x11 or x12 or x13 or x21 or x22 or x23 or x31 or x32 or x33\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 51877303\n================\nCOLLISIONLAYERS\n================\n\ntl\nBackground\nob\nTarget\nPlayer, Wall, Crate\nd1, d2a,d2b,d3a,d3b,d4,d5,d6a,d6b\nfound\ncoord\nvisited\npasses\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[> crate|crate]->[> crate | > crate ]\n\n\n\n\n[found]->[]\n\nstartloop\n\nrandom down [tl no visited ||]->[tl visited x11|x12|x13]\n\n\n\n\n\n\nlate right [x11 no Crate | no crate | no crate ] -> [ x11 passes | | ]\nlate right [x12 no Crate | crate | no crate ] -> [ x12 passes | crate | ]\nlate right [x13 no Crate | no crate | no crate ] -> [ x13 passes \t | | ]\n\nlate down [x11 passes | passes | passes ] [ d1 ] -> [||] [d1 found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | no crate | no crate ] -> [ x11 passes crate | | ]\nlate right [x12 no Crate | no crate | no crate ] -> [ x12 passes | | ]\nlate right [x13 no Crate | no crate | crate ] -> [ x13 passes \t | | crate ]\n\nlate down [x11 passes | passes | passes ] [ d2a ] -> [||] [d2a found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 no Crate | no crate | crate ] -> [ x11 passes | | crate]\nlate right [x12 no Crate | no crate | no crate ] -> [ x12 passes | | ]\nlate right [x13 Crate | no crate | no crate ] -> [ x13 passes \tcrate | | ]\n\nlate down [x11 passes | passes | passes ] [ d2b ] -> [||] [d2b found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | no crate | no crate ] -> [ x11 crate passes | | ]\nlate right [x12 no Crate | crate | no crate ] -> [ x12 passes | crate |]\nlate right [x13 no Crate | no crate | crate ] -> [ x13 passes | | crate]\n\nlate down [ passes | passes | passes ] [ d3a ] -> [||] [d3a found] \n\nlate [ passes ] -> []\n\n\nlate right [x11 no Crate | no crate | crate ] -> [ x11 passes | | crate]\nlate right [x12 no Crate | crate | no crate ] -> [ x12 passes | crate| ]\nlate right [x13 Crate | no crate | no crate ] -> [ x13 passes \t crate | | ]\n\nlate down [x11 passes | passes | passes ] [ d3b ] -> [||] [d3b found] \n\nlate [ passes ] -> []\n\n\n\n\n\n\nlate right [x11 Crate | no crate | crate ] -> [ x11 passes crate| | crate]\nlate right [x12 no Crate | no crate | no crate ] -> [ x12 passes | | ]\nlate right [x13 Crate | no crate | crate ] -> [ x13 passes \tcrate | | crate]\n\nlate down [x11 passes | passes | passes ] [ d4 ] -> [||] [d4 found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | no crate | crate ] -> [ x11 passes crate| | crate]\nlate right [x12 no Crate | crate | no crate ] -> [ x12 passes |crate | ]\nlate right [x13 Crate | no crate | crate ] -> [ x13 passes \tcrate | | crate]\n\nlate down [x11 passes | passes | passes ] [ d5 ] -> [||] [d5 found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | crate | crate ] -> [ x11 passes crate| crate| crate]\nlate right [x12 no Crate | no crate | no crate ] -> [ x12 passes | | ]\nlate right [x13 Crate | crate | crate ] -> [ x13 passes \tcrate | crate| crate]\n\nlate down [x11 passes | passes | passes ] [ d6a ] -> [||] [d6a found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | no crate | crate ] -> [ x11 passes crate| |crate ]\nlate right [x12 Crate | no crate | crate ] -> [ x12 passes crate| |crate ]\nlate right [x13 Crate | no crate | crate ] -> [ x13 passes crate\t | |crate ]\n\nlate down [x11 passes | passes | passes ] [ d6b ] -> [||] [d6b found] \n\nlate [ passes ] -> []\n\n\n\nlate [coord]->[]\n\nendLoop\n\n\nlate [visited]->[]\n\n==============\nWINCONDITIONS\n==============\n\nsome found on d1\nsome found on d2\nsome found on d3\nsome found on d4\nsome found on d5\nsome found on d6\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\nmessage Oh no, there was an accident at the dice printing factory. \n\nmessage Save us, dice goblin! \n\n\n#1#######n.*###\n23#######...###\n45#######*.*###\n#6#m,,n..m,~n..\n#7#,~,.*.,,,.*.\n98#p,~..*~,~..*\n#########n.*###\n#########...###\n#########*.*###\n\nmessage Now we can sell our dice to the very best casinos in the universe. God themself will play with our dice! Thank you, dice goblin!\n",[3,0,3,3,3,3,3],"background wall:0,background d2a found:1,background d3a found:2,0,0,background d6b:3,0,0,0,background d1:4,background d2b:5,background d3b:6,background d4 found:7,background d5 found:8,background d6a:9,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\nbackground crate ob tl:10,background ob:11,11,0,0,0,0,0,0,background crate ob:12,11,11,0,0,0,\n0,0,0,11,11,12,0,0,0,0,0,0,background crate tl:13,background:14,14,\n0,0,0,0,0,0,14,14,14,0,0,0,0,0,0,\n14,14,background crate:15,0,0,0,13,14,15,10,background ob player:16,12,13,14,15,\n14,14,14,11,12,11,14,14,14,15,14,15,12,11,12,\n15,14,15,0,0,0,13,14,14,0,0,0,0,0,0,\n14,15,14,0,0,0,0,0,0,14,14,15,0,0,0,\n",3,"1627892093944.9868"] + "DICE GOBLIN", + ["title DICE GOBLIN\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nd1 1\nwhite darkgray black\n22222\n20002\n20102\n20002\n22222\n\nd2a 2\nwhite darkgray black\n22222\n21002\n20002\n20012\n22222\n\n\nd2b 3\nwhite darkgray black\n22222\n20012\n20002\n21002\n22222\n\nd3a 4\nwhite darkgray black\n22222\n21002\n20102\n20012\n22222\n\n\nd3b 5\nwhite darkgray black\n22222\n20012\n20102\n21002\n22222\n\n\nd4 6\nwhite darkgray black\n22222\n21012\n20002\n21012\n22222\n\n\nd5 7\nwhite darkgray black\n22222\n21012\n20102\n21012\n22222\n\n\nd6a 8\nwhite darkgray black\n22222\n21112\n20002\n21112\n22222\n\n\nd6b 9\nwhite darkgray black\n22222\n21012\n21012\n21012\n22222\n\n\nBackground\nlightgray\n\nob\ngray\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nblack\n\nPlayer\ngreen lightgreen brown\n00.00\n.222.\n.101.\n00000\n.0.0.\n\nCrate\nblack\n.....\n..0..\n.000.\n..0..\n.....\n\ntl\nred\n\nx11\ntransparent\n\nx21\ntransparent\n\nx31\ntransparent\n\n\nx12\ntransparent\n\nx22\ntransparent\n\nx32\ntransparent\n\n\nx13\ntransparent\n\nx23\ntransparent\n\nx33\ntransparent\n\nvisited\ntransparent\n\nfound \norange\n00000\n0...0\n0...0\n0...0\n00000\n\npasses\nblue\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player and ob\n* = Crate \n~ = Crate and ob\nm = crate and ob and tl\nn = crate and tl\nO = Target\n, = ob\n\nd2 = d2a or d2b\nd3 = d3a or d3b\nd6 = d6a or d6b\n\ncoord = x11 or x12 or x13 or x21 or x22 or x23 or x31 or x32 or x33\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 51877303\n================\nCOLLISIONLAYERS\n================\n\ntl\nBackground\nob\nTarget\nPlayer, Wall, Crate\nd1, d2a,d2b,d3a,d3b,d4,d5,d6a,d6b\nfound\ncoord\nvisited\npasses\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[> crate|crate]->[> crate | > crate ]\n\n\n\n\n[found]->[]\n\nstartloop\n\nrandom down [tl no visited ||]->[tl visited x11|x12|x13]\n\n\n\n\n\n\nlate right [x11 no Crate | no crate | no crate ] -> [ x11 passes | | ]\nlate right [x12 no Crate | crate | no crate ] -> [ x12 passes | crate | ]\nlate right [x13 no Crate | no crate | no crate ] -> [ x13 passes \t | | ]\n\nlate down [x11 passes | passes | passes ] [ d1 ] -> [||] [d1 found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | no crate | no crate ] -> [ x11 passes crate | | ]\nlate right [x12 no Crate | no crate | no crate ] -> [ x12 passes | | ]\nlate right [x13 no Crate | no crate | crate ] -> [ x13 passes \t | | crate ]\n\nlate down [x11 passes | passes | passes ] [ d2a ] -> [||] [d2a found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 no Crate | no crate | crate ] -> [ x11 passes | | crate]\nlate right [x12 no Crate | no crate | no crate ] -> [ x12 passes | | ]\nlate right [x13 Crate | no crate | no crate ] -> [ x13 passes \tcrate | | ]\n\nlate down [x11 passes | passes | passes ] [ d2b ] -> [||] [d2b found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | no crate | no crate ] -> [ x11 crate passes | | ]\nlate right [x12 no Crate | crate | no crate ] -> [ x12 passes | crate |]\nlate right [x13 no Crate | no crate | crate ] -> [ x13 passes | | crate]\n\nlate down [ passes | passes | passes ] [ d3a ] -> [||] [d3a found] \n\nlate [ passes ] -> []\n\n\nlate right [x11 no Crate | no crate | crate ] -> [ x11 passes | | crate]\nlate right [x12 no Crate | crate | no crate ] -> [ x12 passes | crate| ]\nlate right [x13 Crate | no crate | no crate ] -> [ x13 passes \t crate | | ]\n\nlate down [x11 passes | passes | passes ] [ d3b ] -> [||] [d3b found] \n\nlate [ passes ] -> []\n\n\n\n\n\n\nlate right [x11 Crate | no crate | crate ] -> [ x11 passes crate| | crate]\nlate right [x12 no Crate | no crate | no crate ] -> [ x12 passes | | ]\nlate right [x13 Crate | no crate | crate ] -> [ x13 passes \tcrate | | crate]\n\nlate down [x11 passes | passes | passes ] [ d4 ] -> [||] [d4 found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | no crate | crate ] -> [ x11 passes crate| | crate]\nlate right [x12 no Crate | crate | no crate ] -> [ x12 passes |crate | ]\nlate right [x13 Crate | no crate | crate ] -> [ x13 passes \tcrate | | crate]\n\nlate down [x11 passes | passes | passes ] [ d5 ] -> [||] [d5 found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | crate | crate ] -> [ x11 passes crate| crate| crate]\nlate right [x12 no Crate | no crate | no crate ] -> [ x12 passes | | ]\nlate right [x13 Crate | crate | crate ] -> [ x13 passes \tcrate | crate| crate]\n\nlate down [x11 passes | passes | passes ] [ d6a ] -> [||] [d6a found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | no crate | crate ] -> [ x11 passes crate| |crate ]\nlate right [x12 Crate | no crate | crate ] -> [ x12 passes crate| |crate ]\nlate right [x13 Crate | no crate | crate ] -> [ x13 passes crate\t | |crate ]\n\nlate down [x11 passes | passes | passes ] [ d6b ] -> [||] [d6b found] \n\nlate [ passes ] -> []\n\n\n\nlate [coord]->[]\n\nendLoop\n\n\nlate [visited]->[]\n\n==============\nWINCONDITIONS\n==============\n\nsome found on d1\nsome found on d2\nsome found on d3\nsome found on d4\nsome found on d5\nsome found on d6\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\nmessage Oh no, there was an accident at the dice printing factory. \n\nmessage Save us, dice goblin! \n\n\n#1#######n.*###\n23#######...###\n45#######*.*###\n#6#m,,n..m,~n..\n#7#,~,.*.,,,.*.\n98#p,~..*~,~..*\n#########n.*###\n#########...###\n#########*.*###\n\nmessage Now we can sell our dice to the very best casinos in the universe. God themself will play with our dice! Thank you, dice goblin!\n", [3, 0, 3, 3, 3, 3, 3], "background wall:0,background d2a found:1,background d3a found:2,0,0,background d6b:3,0,0,0,background d1:4,background d2b:5,background d3b:6,background d4 found:7,background d5 found:8,background d6a:9,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\nbackground crate ob tl:10,background ob:11,11,0,0,0,0,0,0,background crate ob:12,11,11,0,0,0,\n0,0,0,11,11,12,0,0,0,0,0,0,background crate tl:13,background:14,14,\n0,0,0,0,0,0,14,14,14,0,0,0,0,0,0,\n14,14,background crate:15,0,0,0,13,14,15,10,background ob player:16,12,13,14,15,\n14,14,14,11,12,11,14,14,14,15,14,15,12,11,12,\n15,14,15,0,0,0,13,14,14,0,0,0,0,0,0,\n14,15,14,0,0,0,0,0,0,14,14,15,0,0,0,\n", 3, "1627892093944.9868"] ], [ - "KONSUM", - ["title KONSUM\nauthor increpare\nhomepage www.increpare.com\nrun_rules_on_level_start\nnorepeat_action\ntext_color lightgray\nbackground_color darkblue\n(thanks to eli cauley for helping test)\ncolor_palette 13\n\n========\nOBJECTS\n========\n\n\nBackground \ndarkblue \n \n\n\n\nwall_t #\ngray darkblue\n.....\n00000\n.....\n00000\n11111\n\n\nwall_b 2 \ngray darkblue\n11111\n00000\n.....\n00000\n.....\n\nwall_l 3 \ngray darkblue\n.0.01\n.0.01\n.0.01\n.0.01\n.0.01\n\n\nwall_r 4\ngray darkblue\n10.0.\n10.0.\n10.0.\n10.0.\n10.0.\n\nWall_tl 5\ngray darkblue\n.....\n..000\n.00..\n.0.00\n.0.01\n\nWall_tr 6\ngray darkblue\n.....\n000..\n..00.\n00.0.\n10.0.\n\nWall_bl 7\ngray darkblue\n.0.01\n.0.00\n.00..\n..000\n.....\n\nWall_br 8\ngray darkblue\n10.0.\n00.0.\n..00.\n000..\n.....\n\nblacktile\ngray\n\nwhitetile\ndarkgreen\n\nexplore\nyellow\n.....\n..0..\n.000.\n..0..\n.....\n\nplace\nyellow\n00.00\n0...0\n.....\n0...0\n00.00\n\n\nexploremode\nlightblue\n.....\n.0.0.\n.....\n.0.0.\n.....\n\ntemp\nred\n\nnosuck\nlightred\n.....\n..0..\n.000.\n..0..\n.....\n\ncanplace\npurple\n\nbadborder\nlightblue\n.....\n.....\n..0..\n.....\n.....\n\ny_up\nyellow\n00000\n.....\n.....\n.....\n.....\n\n\ny_down\nyellow\n.....\n.....\n.....\n.....\n00000\n\n\ny_left\nyellow\n0....\n0....\n0....\n0....\n0....\n\n\ny_right\nyellow\n....0\n....0\n....0\n....0\n....0\n\n\nr_up\n#ff0000\n00000\n.....\n.....\n.....\n.....\n\n\nr_down\n#ff0000\n.....\n.....\n.....\n.....\n00000\n\n\nr_left\n#ff0000\n0....\n0....\n0....\n0....\n0....\n\n\nr_right\n#ff0000\n....0\n....0\n....0\n....0\n....0\n\n\nb_up\ndarkbrown\n00000\n.....\n.....\n.....\n.....\n\n\nb_down\ndarkbrown\n.....\n.....\n.....\n.....\n00000\n\n\nb_left\ndarkbrown\n0....\n0....\n0....\n0....\n0....\n\n\nb_right\ndarkbrown\n....0\n....0\n....0\n....0\n....0\n\n=======\nLEGEND\n=======\n\n. = Background\nP = explore and blacktile\n0 = whitetile\n1 = blacktile \n\nplayer = explore or place\n\ny_lines = y_up or y_down or y_left or y_right\nr_lines = r_up or r_down or r_left or r_right\nb_lines = b_up or b_down or b_left or b_right\nlines = y_lines or r_lines or b_lines\nwall = Wall_t or wall_b or wall_l or wall_r or wall_tl or wall_tr or wall_bl or wall_br \n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nplace\nblacktile, whitetile\nWall\nexplore\nexploremode\ntemp\ncanplace\nnosuck\nbadborder\ny_up\ny_down\ny_left\ny_right\nr_up\nr_down\nr_left\nr_right\nb_up\nb_down\nb_left\nb_right\n\n\n======\nRULES\n======\n\n[lines]->[]\n\n[nosuck]->[]\n\n[ > player | wall ] -> cancel\n\n[action explore blacktile] -> [ place blacktile]\n[stationary place | blacktile ] -> [ place | blacktile place]\n\n\n(to place)\n\n(1 must have at least one piece on black)\nrandom [ place blacktile] -> [ place blacktile canplace ]\n\n[ canplace ] [ blacktile place | blacktile no place ] -> [ ] [ blacktile place | blacktile ]\n\n[canplace] [ action place ] ->[canplace] [ action place blacktile ]\n\n[canplace]->[]\n\nrandom [ action place ] -> [ explore ]\n\n[place ] [ explore ] -> [] [ explore ]\n\nlate [ explore no blacktile ] -> [ explore nosuck]\n\n\nlate up [ place | no place ] -> [ place y_up | ]\nlate down [ place | no place ] -> [ place y_down | ]\nlate left [ place | no place ] -> [ place y_left | ]\nlate right [ place | no place ] -> [ place y_right | ]\n\nrandom late [ place blacktile ] -> [ place temp blacktile ]\nlate [temp] [ place ] -> [ temp ] [ place temp ]\n\nlate [y_up no temp ] -> [ b_up ]\nlate [y_down no temp ] -> [ b_down ]\nlate [y_left no temp ] -> [ b_left ]\nlate [y_right no temp ] -> [ b_right ]\n\n\nlate [ temp] -> []\n\nlate up [ y_up blacktile | blacktile ] -> [ r_up blacktile | blacktile ]\nlate down [ y_down blacktile | blacktile ] -> [ r_down blacktile | blacktile ]\nlate left [ y_left blacktile | blacktile ] -> [ r_left blacktile | blacktile ]\nlate right [ y_right blacktile | blacktile ] -> [ r_right blacktile | blacktile ]\n\n==============\nWINCONDITIONS\n==============\n\nno whitetile\n\n\n=======\nLEVELS\n=======\n\nmessage LEVEL 1 / 1\n\n5########6\n3010000114\n300p000004\n3000001004\n3000010014\n3000000004\n3001000004\n3001000004\n3000000004\n7########8\n\nmessage CONSUMPTION SUCCESSFUL / ERFOLGEREICHER VERBRAUCH\n",[3,1,4,3,3,2,3,4,2,4,1,4,2,2,1,1,4,4,3,3,0,0,0,0,0,3,3,3,4,4,0,4,2,2,2,1,1,3,4,3,4,4,0,0,0,4,2,2,1,1,1,4,0,1,1,4,0,4,2,1,4,3,4,2,2,2,2,4,2,4,3,0,0,1,4,2,2,4,0,0,0,0,3,1,2,2,2,2,0,2,4,3,0,0,3,0,0,2,2,2,2,2,1,1,1,0,3,4,3,3,0,0,0,0,2,4,3,4,0,1,2,4,3,0,4,1,1,0,4,4,1,0,4],"background wall_tl:0,background wall_l:1,1,1,1,1,1,1,1,background wall_bl:2,\nbackground wall_t:3,background whitetile:4,4,4,4,4,4,4,4,3,\n3,background blacktile:5,background blacktile explore:6,4,4,4,4,4,4,3,\n3,5,5,5,4,4,5,5,4,3,\n3,4,5,4,4,4,4,4,4,3,\n3,4,4,5,5,4,4,4,4,3,\n3,4,4,5,4,4,4,4,4,3,\n3,5,4,4,4,4,4,4,4,3,\n3,5,4,4,5,4,4,4,4,3,\nbackground wall_tr:7,background wall_r:8,8,8,8,8,8,8,8,background wall_br:9,\n",1,"1627892104859.3337"] + "KONSUM", + ["title KONSUM\nauthor increpare\nhomepage www.increpare.com\nrun_rules_on_level_start\nnorepeat_action\ntext_color lightgray\nbackground_color darkblue\n(thanks to eli cauley for helping test)\ncolor_palette 13\n\n========\nOBJECTS\n========\n\n\nBackground \ndarkblue \n \n\n\n\nwall_t #\ngray darkblue\n.....\n00000\n.....\n00000\n11111\n\n\nwall_b 2 \ngray darkblue\n11111\n00000\n.....\n00000\n.....\n\nwall_l 3 \ngray darkblue\n.0.01\n.0.01\n.0.01\n.0.01\n.0.01\n\n\nwall_r 4\ngray darkblue\n10.0.\n10.0.\n10.0.\n10.0.\n10.0.\n\nWall_tl 5\ngray darkblue\n.....\n..000\n.00..\n.0.00\n.0.01\n\nWall_tr 6\ngray darkblue\n.....\n000..\n..00.\n00.0.\n10.0.\n\nWall_bl 7\ngray darkblue\n.0.01\n.0.00\n.00..\n..000\n.....\n\nWall_br 8\ngray darkblue\n10.0.\n00.0.\n..00.\n000..\n.....\n\nblacktile\ngray\n\nwhitetile\ndarkgreen\n\nexplore\nyellow\n.....\n..0..\n.000.\n..0..\n.....\n\nplace\nyellow\n00.00\n0...0\n.....\n0...0\n00.00\n\n\nexploremode\nlightblue\n.....\n.0.0.\n.....\n.0.0.\n.....\n\ntemp\nred\n\nnosuck\nlightred\n.....\n..0..\n.000.\n..0..\n.....\n\ncanplace\npurple\n\nbadborder\nlightblue\n.....\n.....\n..0..\n.....\n.....\n\ny_up\nyellow\n00000\n.....\n.....\n.....\n.....\n\n\ny_down\nyellow\n.....\n.....\n.....\n.....\n00000\n\n\ny_left\nyellow\n0....\n0....\n0....\n0....\n0....\n\n\ny_right\nyellow\n....0\n....0\n....0\n....0\n....0\n\n\nr_up\n#ff0000\n00000\n.....\n.....\n.....\n.....\n\n\nr_down\n#ff0000\n.....\n.....\n.....\n.....\n00000\n\n\nr_left\n#ff0000\n0....\n0....\n0....\n0....\n0....\n\n\nr_right\n#ff0000\n....0\n....0\n....0\n....0\n....0\n\n\nb_up\ndarkbrown\n00000\n.....\n.....\n.....\n.....\n\n\nb_down\ndarkbrown\n.....\n.....\n.....\n.....\n00000\n\n\nb_left\ndarkbrown\n0....\n0....\n0....\n0....\n0....\n\n\nb_right\ndarkbrown\n....0\n....0\n....0\n....0\n....0\n\n=======\nLEGEND\n=======\n\n. = Background\nP = explore and blacktile\n0 = whitetile\n1 = blacktile \n\nplayer = explore or place\n\ny_lines = y_up or y_down or y_left or y_right\nr_lines = r_up or r_down or r_left or r_right\nb_lines = b_up or b_down or b_left or b_right\nlines = y_lines or r_lines or b_lines\nwall = Wall_t or wall_b or wall_l or wall_r or wall_tl or wall_tr or wall_bl or wall_br \n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nplace\nblacktile, whitetile\nWall\nexplore\nexploremode\ntemp\ncanplace\nnosuck\nbadborder\ny_up\ny_down\ny_left\ny_right\nr_up\nr_down\nr_left\nr_right\nb_up\nb_down\nb_left\nb_right\n\n\n======\nRULES\n======\n\n[lines]->[]\n\n[nosuck]->[]\n\n[ > player | wall ] -> cancel\n\n[action explore blacktile] -> [ place blacktile]\n[stationary place | blacktile ] -> [ place | blacktile place]\n\n\n(to place)\n\n(1 must have at least one piece on black)\nrandom [ place blacktile] -> [ place blacktile canplace ]\n\n[ canplace ] [ blacktile place | blacktile no place ] -> [ ] [ blacktile place | blacktile ]\n\n[canplace] [ action place ] ->[canplace] [ action place blacktile ]\n\n[canplace]->[]\n\nrandom [ action place ] -> [ explore ]\n\n[place ] [ explore ] -> [] [ explore ]\n\nlate [ explore no blacktile ] -> [ explore nosuck]\n\n\nlate up [ place | no place ] -> [ place y_up | ]\nlate down [ place | no place ] -> [ place y_down | ]\nlate left [ place | no place ] -> [ place y_left | ]\nlate right [ place | no place ] -> [ place y_right | ]\n\nrandom late [ place blacktile ] -> [ place temp blacktile ]\nlate [temp] [ place ] -> [ temp ] [ place temp ]\n\nlate [y_up no temp ] -> [ b_up ]\nlate [y_down no temp ] -> [ b_down ]\nlate [y_left no temp ] -> [ b_left ]\nlate [y_right no temp ] -> [ b_right ]\n\n\nlate [ temp] -> []\n\nlate up [ y_up blacktile | blacktile ] -> [ r_up blacktile | blacktile ]\nlate down [ y_down blacktile | blacktile ] -> [ r_down blacktile | blacktile ]\nlate left [ y_left blacktile | blacktile ] -> [ r_left blacktile | blacktile ]\nlate right [ y_right blacktile | blacktile ] -> [ r_right blacktile | blacktile ]\n\n==============\nWINCONDITIONS\n==============\n\nno whitetile\n\n\n=======\nLEVELS\n=======\n\nmessage LEVEL 1 / 1\n\n5########6\n3010000114\n300p000004\n3000001004\n3000010014\n3000000004\n3001000004\n3001000004\n3000000004\n7########8\n\nmessage CONSUMPTION SUCCESSFUL / ERFOLGEREICHER VERBRAUCH\n", [3, 1, 4, 3, 3, 2, 3, 4, 2, 4, 1, 4, 2, 2, 1, 1, 4, 4, 3, 3, 0, 0, 0, 0, 0, 3, 3, 3, 4, 4, 0, 4, 2, 2, 2, 1, 1, 3, 4, 3, 4, 4, 0, 0, 0, 4, 2, 2, 1, 1, 1, 4, 0, 1, 1, 4, 0, 4, 2, 1, 4, 3, 4, 2, 2, 2, 2, 4, 2, 4, 3, 0, 0, 1, 4, 2, 2, 4, 0, 0, 0, 0, 3, 1, 2, 2, 2, 2, 0, 2, 4, 3, 0, 0, 3, 0, 0, 2, 2, 2, 2, 2, 1, 1, 1, 0, 3, 4, 3, 3, 0, 0, 0, 0, 2, 4, 3, 4, 0, 1, 2, 4, 3, 0, 4, 1, 1, 0, 4, 4, 1, 0, 4], "background wall_tl:0,background wall_l:1,1,1,1,1,1,1,1,background wall_bl:2,\nbackground wall_t:3,background whitetile:4,4,4,4,4,4,4,4,3,\n3,background blacktile:5,background blacktile explore:6,4,4,4,4,4,4,3,\n3,5,5,5,4,4,5,5,4,3,\n3,4,5,4,4,4,4,4,4,3,\n3,4,4,5,5,4,4,4,4,3,\n3,4,4,5,4,4,4,4,4,3,\n3,5,4,4,4,4,4,4,4,3,\n3,5,4,4,5,4,4,4,4,3,\nbackground wall_tr:7,background wall_r:8,8,8,8,8,8,8,8,background wall_br:9,\n", 1, "1627892104859.3337"] ], [ - "Expand, avoid the flames [also it's not always solvable]", - ["title Expand, avoid the flames [also it's not always solvable]\nauthor Stephen Lavelle\nhomepage www.increpare.com\nrun_rules_on_level_start\ncolor_palette 14\nbackground_color black\ntext_color orange\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nwall #\ndarkgreen\n..0..\n..0..\n..0..\n..0..\n..0..\n\ntotenkopf k\ngray\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nspawntile s\ndarkred\n\nfire f\nred yellow\n10101\n01010\n10101\n01010\n10101\n\nPlayer\nwhite\n0...0\n.....\n.....\n.....\n0...0\n\n\nu\nlightred \n.....\n..0..\n.0.0.\n.....\n.....\n\n0\nwhite\n.....\n.000.\n.000.\n.000.\n.....\n\nd\nyellow\n.....\n.....\n.0.0.\n..0..\n.....\n\n\n\nl\nlightgreen\n.....\n..0..\n.0...\n..0..\n.....\n\n\n\nr\nlightblue\n.....\n..0..\n...0.\n..0..\n.....\n\ntu\nred\n\ntd\nred\n\ntl\nred\n\ntr\nred\n\nmu\nyellow\n\nmd\nyellow\n\nml\nyellow\n\nmr\nyellow\n\ntemp\nblue\n\ndirekt \ntransparent\n\nt2 \ntransparent\n\nt3\ntransparent\n\nsuccess\ntransparent\n\nempty\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\nP = player\narrow = u or r or d or l\nt = tu or td or tl or tr\n2 = fire and t2\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nspawntile\nfire\nu,d,l,r\nPlayer,0, wall\ntu\ntd\ntl\ntr\nmu\nmd\nml\nmr\ntemp\ndirekt\nt2\nt3\ntotenkopf\nsuccess\nempty\n\n======\nRULES\n======\n\n[> player|fire]->cancel\n\n[spawntile no arrow ] -> [ spawntile random arrow ] again\n\nrandom [t2]->[up t3]\nrandom [stationary t3]->[t2]\n\n\n( down [ arrow | no arrow ] -> [> arrow| ] again\n+ down [ arrow | > arrow ] -> [ > arrow | > arrow ] again\n)\nup [ u | u | u ] -> [ tu u | tu u | tu u ]\nup [tu u | u no tu ] -> [ tu u | tu u ]\n\nup [ d | d | d ] -> [ tu d | tu d | tu d ]\nup [tu d | d no tu ] -> [ tu d | tu d ]\n\nup [ l | l | l ] -> [ tu l | tu l | tu l ]\nup [tu l | l no tu ] -> [ tu l | tu l ]\n\nup [ r | r | r ] -> [ tu r | tu r | tu r ]\nup [tu r | r no tu ] -> [ tu r | tu r ]\n\n\ndown [ u | u | u ] -> [ td u | td u | td u ]\ndown [td u | u no td ] -> [ td u | td u ]\n\ndown [ d | d | d ] -> [ td d | td d | td d ]\ndown [td d | d no td ] -> [ td d | td d ]\n\ndown [ l | l | l ] -> [ td l | td l | td l ]\ndown [td l | l no td ] -> [ td l | td l ]\n\ndown [ r | r | r ] -> [ td r | td r | td r ]\ndown [td r | r no td ] -> [ td r | td r ]\n\n\nleft [ u | u | u ] -> [ tl u | tl u | tl u ]\nleft [tl u | u no tl ] -> [ tl u | tl u ]\n\nleft [ d | d | d ] -> [ tl d | tl d | tl d ]\nleft [tl d | d no tl ] -> [ tl d | tl d ]\n\nleft [ l | l | l ] -> [ tl l | tl l | tl l ]\nleft [tl l | l no tl ] -> [ tl l | tl l ]\n\nleft [ r | r | r ] -> [ tl r | tl r | tl r ]\nleft [tl r | r no tl ] -> [ tl r | tl r ]\n\n\n\n\nright [ u | u | u ] -> [ tr u | tr u | tr u ]\nright [tr u | u no tr ] -> [ tr u | tr u ]\n\nright [ d | d | d ] -> [ tr d | tr d | tr d ]\nright [tr d | d no tr ] -> [ tr d | tr d ]\n\nright [ l | l | l ] -> [ tr l | tr l | tr l ]\nright [tr l | l no tr ] -> [ tr l | tr l ]\n\nright [ r | r | r ] -> [ tr r | tr r | tr r ]\nright [tr r | r no tr ] -> [ tr r | tr r ]\n\nup [direkt player] [ t u ] [ spawntile no temp | no spawntile ] -> [ direkt player] [ t u ] [ spawntile | spawntile temp ]\ndown [direkt player] [ t d ] [ spawntile no temp | no spawntile ] -> [ direkt player] [ t d ] [ spawntile | spawntile temp ]\nleft [direkt player] [ t l ] [ spawntile no temp | no spawntile ] -> [ direkt player] [ t l ] [ spawntile | spawntile temp ]\nright [direkt player] [ t r ] [ spawntile no temp | no spawntile ] -> [ direkt player] [ t r ] [ spawntile | spawntile temp ]\n\n[direkt] [player] [ t] -> [ direkt ] [player success ] [ t ]\n\n[direkt] [ player no success ] -> [ direkt ] [ player totenkopf no arrow ] again\n\n[direkt]->[]\n[success]->[]\n\n[t]->[ no arrow] again\n[temp]->[]\n\nup [action player u | arrow ] -> [ arrow | u player direkt ] again\ndown [action player d | arrow ] -> [ arrow | d player direkt ] again\nleft [action player l | arrow ] -> [ arrow | l player direkt ] again\nright [action player r | arrow ] -> [ arrow | r player direkt ] again\n\nrandom [spawntile fire] [no fire no totenkopf] -> [ spawntile fire ] [ totenkopf no arrow no spawntile] again\nrandom [totenkopf ] [no fire no totenkopf] -> [ totenkopf ] [ totenkopf no arrow no spawntile] again\nrandom [totenkopf ] [fire spawntile] -> [ totenkopf ] [ no arrow no fire] again\n\n[empty] -> []\n[ no fire no spawntile ] -> [ empty]\n\n==============\nWINCONDITIONS\n==============\nno empty\n\n=======\nLEVELS\n=======\n\nmessage Level 1/1\n\n2ffffffffff\nf.........f\nf.........f\nf..sssss..f\nf..sssss..f\nf..sssss..f\nf..sssss..f\nf..sssss..f\nf.......p.f\nf.........f\nfffffffffff\n\nmessage congrats\n",[1,0,0,1,1,1,0,4,3,3,0,4,1,4,0,4,"undo",4,"undo",4,"undo",4],"background fire t2:0,background fire:1,1,1,1,1,1,1,1,1,1,\n1,background empty:2,2,2,2,2,2,2,2,2,1,\n1,2,background spawntile u:3,background l spawntile:4,3,background r spawntile:5,background d spawntile:6,4,6,2,1,\n1,2,4,3,6,3,3,6,5,2,1,\n1,2,5,3,5,4,6,4,4,2,1,\n1,2,5,background l player spawntile:7,6,6,5,4,3,2,1,\n1,2,6,5,5,6,4,5,4,2,1,\n1,2,6,5,3,5,4,6,5,2,1,\n1,2,4,3,5,3,3,4,5,2,1,\n1,2,2,2,2,2,2,2,2,2,1,\n1,1,1,1,1,1,1,1,1,1,1,\n",1,"1627894530268.055"] + "Expand, avoid the flames [also it's not always solvable]", + ["title Expand, avoid the flames [also it's not always solvable]\nauthor Stephen Lavelle\nhomepage www.increpare.com\nrun_rules_on_level_start\ncolor_palette 14\nbackground_color black\ntext_color orange\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nwall #\ndarkgreen\n..0..\n..0..\n..0..\n..0..\n..0..\n\ntotenkopf k\ngray\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nspawntile s\ndarkred\n\nfire f\nred yellow\n10101\n01010\n10101\n01010\n10101\n\nPlayer\nwhite\n0...0\n.....\n.....\n.....\n0...0\n\n\nu\nlightred \n.....\n..0..\n.0.0.\n.....\n.....\n\n0\nwhite\n.....\n.000.\n.000.\n.000.\n.....\n\nd\nyellow\n.....\n.....\n.0.0.\n..0..\n.....\n\n\n\nl\nlightgreen\n.....\n..0..\n.0...\n..0..\n.....\n\n\n\nr\nlightblue\n.....\n..0..\n...0.\n..0..\n.....\n\ntu\nred\n\ntd\nred\n\ntl\nred\n\ntr\nred\n\nmu\nyellow\n\nmd\nyellow\n\nml\nyellow\n\nmr\nyellow\n\ntemp\nblue\n\ndirekt \ntransparent\n\nt2 \ntransparent\n\nt3\ntransparent\n\nsuccess\ntransparent\n\nempty\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\nP = player\narrow = u or r or d or l\nt = tu or td or tl or tr\n2 = fire and t2\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nspawntile\nfire\nu,d,l,r\nPlayer,0, wall\ntu\ntd\ntl\ntr\nmu\nmd\nml\nmr\ntemp\ndirekt\nt2\nt3\ntotenkopf\nsuccess\nempty\n\n======\nRULES\n======\n\n[> player|fire]->cancel\n\n[spawntile no arrow ] -> [ spawntile random arrow ] again\n\nrandom [t2]->[up t3]\nrandom [stationary t3]->[t2]\n\n\n( down [ arrow | no arrow ] -> [> arrow| ] again\n+ down [ arrow | > arrow ] -> [ > arrow | > arrow ] again\n)\nup [ u | u | u ] -> [ tu u | tu u | tu u ]\nup [tu u | u no tu ] -> [ tu u | tu u ]\n\nup [ d | d | d ] -> [ tu d | tu d | tu d ]\nup [tu d | d no tu ] -> [ tu d | tu d ]\n\nup [ l | l | l ] -> [ tu l | tu l | tu l ]\nup [tu l | l no tu ] -> [ tu l | tu l ]\n\nup [ r | r | r ] -> [ tu r | tu r | tu r ]\nup [tu r | r no tu ] -> [ tu r | tu r ]\n\n\ndown [ u | u | u ] -> [ td u | td u | td u ]\ndown [td u | u no td ] -> [ td u | td u ]\n\ndown [ d | d | d ] -> [ td d | td d | td d ]\ndown [td d | d no td ] -> [ td d | td d ]\n\ndown [ l | l | l ] -> [ td l | td l | td l ]\ndown [td l | l no td ] -> [ td l | td l ]\n\ndown [ r | r | r ] -> [ td r | td r | td r ]\ndown [td r | r no td ] -> [ td r | td r ]\n\n\nleft [ u | u | u ] -> [ tl u | tl u | tl u ]\nleft [tl u | u no tl ] -> [ tl u | tl u ]\n\nleft [ d | d | d ] -> [ tl d | tl d | tl d ]\nleft [tl d | d no tl ] -> [ tl d | tl d ]\n\nleft [ l | l | l ] -> [ tl l | tl l | tl l ]\nleft [tl l | l no tl ] -> [ tl l | tl l ]\n\nleft [ r | r | r ] -> [ tl r | tl r | tl r ]\nleft [tl r | r no tl ] -> [ tl r | tl r ]\n\n\n\n\nright [ u | u | u ] -> [ tr u | tr u | tr u ]\nright [tr u | u no tr ] -> [ tr u | tr u ]\n\nright [ d | d | d ] -> [ tr d | tr d | tr d ]\nright [tr d | d no tr ] -> [ tr d | tr d ]\n\nright [ l | l | l ] -> [ tr l | tr l | tr l ]\nright [tr l | l no tr ] -> [ tr l | tr l ]\n\nright [ r | r | r ] -> [ tr r | tr r | tr r ]\nright [tr r | r no tr ] -> [ tr r | tr r ]\n\nup [direkt player] [ t u ] [ spawntile no temp | no spawntile ] -> [ direkt player] [ t u ] [ spawntile | spawntile temp ]\ndown [direkt player] [ t d ] [ spawntile no temp | no spawntile ] -> [ direkt player] [ t d ] [ spawntile | spawntile temp ]\nleft [direkt player] [ t l ] [ spawntile no temp | no spawntile ] -> [ direkt player] [ t l ] [ spawntile | spawntile temp ]\nright [direkt player] [ t r ] [ spawntile no temp | no spawntile ] -> [ direkt player] [ t r ] [ spawntile | spawntile temp ]\n\n[direkt] [player] [ t] -> [ direkt ] [player success ] [ t ]\n\n[direkt] [ player no success ] -> [ direkt ] [ player totenkopf no arrow ] again\n\n[direkt]->[]\n[success]->[]\n\n[t]->[ no arrow] again\n[temp]->[]\n\nup [action player u | arrow ] -> [ arrow | u player direkt ] again\ndown [action player d | arrow ] -> [ arrow | d player direkt ] again\nleft [action player l | arrow ] -> [ arrow | l player direkt ] again\nright [action player r | arrow ] -> [ arrow | r player direkt ] again\n\nrandom [spawntile fire] [no fire no totenkopf] -> [ spawntile fire ] [ totenkopf no arrow no spawntile] again\nrandom [totenkopf ] [no fire no totenkopf] -> [ totenkopf ] [ totenkopf no arrow no spawntile] again\nrandom [totenkopf ] [fire spawntile] -> [ totenkopf ] [ no arrow no fire] again\n\n[empty] -> []\n[ no fire no spawntile ] -> [ empty]\n\n==============\nWINCONDITIONS\n==============\nno empty\n\n=======\nLEVELS\n=======\n\nmessage Level 1/1\n\n2ffffffffff\nf.........f\nf.........f\nf..sssss..f\nf..sssss..f\nf..sssss..f\nf..sssss..f\nf..sssss..f\nf.......p.f\nf.........f\nfffffffffff\n\nmessage congrats\n", [1, 0, 0, 1, 1, 1, 0, 4, 3, 3, 0, 4, 1, 4, 0, 4, "undo", 4, "undo", 4, "undo", 4], "background fire t2:0,background fire:1,1,1,1,1,1,1,1,1,1,\n1,background empty:2,2,2,2,2,2,2,2,2,1,\n1,2,background spawntile u:3,background l spawntile:4,3,background r spawntile:5,background d spawntile:6,4,6,2,1,\n1,2,4,3,6,3,3,6,5,2,1,\n1,2,5,3,5,4,6,4,4,2,1,\n1,2,5,background l player spawntile:7,6,6,5,4,3,2,1,\n1,2,6,5,5,6,4,5,4,2,1,\n1,2,6,5,3,5,4,6,5,2,1,\n1,2,4,3,5,3,3,4,5,2,1,\n1,2,2,2,2,2,2,2,2,2,1,\n1,1,1,1,1,1,1,1,1,1,1,\n", 1, "1627894530268.055"] ], [ - "Pupush", - ["title Pupush\nauthor increpare\nhomepage www.increpare.com\nnoaction\ntext_color lightgray\n\n========\nOBJECTS\n========\n\nBackground\ngreen GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue darkgreen\n.....\n.000.\n.0.0.\n.000.\n.....\n\nziel z\nDarkBlue\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\naktiviertesziel \nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nTarget_aktiviert\nyellow yellow\n11111\n10001\n10.01\n10001\n11111\n\n\nvWall1\ndarkbrown darkbrown brown\n0.0.0\n.1.1.\n0.0.0\n.1.1.\n2.2.2\n\nvWall2\ndarkbrown darkbrown brown\n.0.1.\n1.1.1\n.1.0.\n1.1.1\n.2.2.\n\nWall1\ndarkbrown darkbrown\n0.0.0\n.1.1.\n0.0.0\n.1.1.\n0.0.0\n\nWall2\ndarkbrown darkbrown\n.0.1.\n1.1.1\n.1.0.\n1.1.1\n.0.1.\n\nPlayer1\nBlack lightbrown lightred darkblue\n..0..\n.1.1.\n2.2.2\n.3.3.\n.....\n\nPlayer2\nBlack lightbrown blue darkblue\n.0.0.\n..1..\n.2.2.\n..3..\n.3.3.\n\n\nCrate1\nOrange Yellow\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\n\nCrate2\nOrange Yellow\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nTuer1\nBlack brown\n..0..\n.1.1.\n0.1.0\n.1.1.\n0.0.0\n\nTuer2\nBlack brown\n.0.0.\n0.1.0\n.1.1.\n0.1.0\n.0.0.\n\nTuer_Offen\nlightgreen transparent\n.000.\n01110\n01110\n01110\n00000\n\nblackbg\nblack\n\ntreppe r\ngray darkgray\n11111\n00000\n11111\n00000\n11111\n\ntreppe2 y\ndarkgray gray \n11111\n00000\n11111\n00000\n11111\n\n=======\nLEGEND\n=======\n\nPlayer = Player1 or player2\nCrate = Crate1 or Crate2\nWall = wall1 or wall2\ntuer = tuer1 or tuer2\n\n. = Background\n# = Wall1 and wall2\n$ = vwall1 and vwall2\n\nP = Player1 and player2\n\n* = Crate1 and Crate2\n@ = Crate1 and crate2 and Target\nO = Target\n\nq = crate1\nw = crate2\n\nt = tuer1 and tuer2 and Tuer_Offen\n\nb = blackbg\n\ngewicht1 = player1 or Crate1 \ngewicht2 = player2 or Crate2\ngewicht = player or crate\n\ntreppen = treppe or treppe2\n=======\nSOUNDS\n=======\n\nCrate1 MOVE 36772507\nCrate2 MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nziel\naktiviertesziel\nTarget\nTarget_aktiviert\ntreppe, treppe2\ntuer_offen\nplayer1, crate1, wall1, tuer1, vwall1\nplayer2, crate2, wall2, tuer2, vwall2\nblackbg\n\n======\nRULES\n======\n\n[ > Player1 | Crate1 ] -> [ > Player1 | > Crate1 ]\n[ > Player2 | Crate2 ] -> [ > Player2 | > Crate2 ]\n[ > crate1 | crate1 ] -> [ > crate1 | > crate1 ]\n[ > crate2 | crate2 ] -> [ > crate2 | > crate2 ]\n\n\nlate [ Target_aktiviert ] -> [ ]\nlate [ target gewicht ] -> [ target gewicht Target_aktiviert ]\n\nlate [tuer_offen no gewicht ] -> [ Tuer_Offen tuer1 tuer2]\n\nlate right [ gewicht target | | | | gewicht target ] [ Tuer1 tuer2 ] -> [ gewicht target | | | | gewicht target ] [ ] \n\nlate [aktiviertesziel]->[]\nlate [ ziel crate ] -> [ aktiviertesziel ziel crate ]\n\n==============\nWINCONDITIONS\n==============\nall ziel on crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 1\n\n#$$$$$$$#\n#.......#\n#.z.w.z.#\n#.......#\n#$$$.$$$#\n#...t...#\n#....p..#\n#.oq..o.#\n#.......#\n#########\n\nmessage Herzlichen Glueckwunsch / Congratulations bzw.\n\n(\n\nauszuprobieren\n\tteilweises Aufmachen\n 2 klötze\n)\n",[1,0,0,3,3,1,1,1,2,"undo",3,2,1,3,3,3,0,1,1,1,1,1,2,2,3,1,0,3,3,3,3,1,1,1,1,3,0,0,3,3,3,"restart",2,1,1,3,3,3,0,1,1,0,1,1,1,1,2,3,3,2,3,0,0,0,3,0,1,2],"background wall1 wall2:0,0,0,0,0,0,0,0,0,\n0,background vwall1 vwall2:1,background:2,2,2,1,2,2,2,\n2,0,1,2,background ziel:3,2,1,2,2,\nbackground target:4,2,0,1,2,2,2,1,2,\nbackground crate1:5,2,2,0,1,2,background crate2:6,2,2,\nbackground tuer1 tuer2 tuer_offen:7,2,background player1:8,2,0,1,2,2,2,\n1,2,background player2:9,2,2,0,1,2,3,\n2,1,2,2,4,2,0,1,2,\n2,2,1,2,2,2,2,0,0,\n0,0,0,0,0,0,0,0,0,\n",1,"1627892193346.9036"] + "Pupush", + ["title Pupush\nauthor increpare\nhomepage www.increpare.com\nnoaction\ntext_color lightgray\n\n========\nOBJECTS\n========\n\nBackground\ngreen GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue darkgreen\n.....\n.000.\n.0.0.\n.000.\n.....\n\nziel z\nDarkBlue\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\naktiviertesziel \nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nTarget_aktiviert\nyellow yellow\n11111\n10001\n10.01\n10001\n11111\n\n\nvWall1\ndarkbrown darkbrown brown\n0.0.0\n.1.1.\n0.0.0\n.1.1.\n2.2.2\n\nvWall2\ndarkbrown darkbrown brown\n.0.1.\n1.1.1\n.1.0.\n1.1.1\n.2.2.\n\nWall1\ndarkbrown darkbrown\n0.0.0\n.1.1.\n0.0.0\n.1.1.\n0.0.0\n\nWall2\ndarkbrown darkbrown\n.0.1.\n1.1.1\n.1.0.\n1.1.1\n.0.1.\n\nPlayer1\nBlack lightbrown lightred darkblue\n..0..\n.1.1.\n2.2.2\n.3.3.\n.....\n\nPlayer2\nBlack lightbrown blue darkblue\n.0.0.\n..1..\n.2.2.\n..3..\n.3.3.\n\n\nCrate1\nOrange Yellow\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\n\nCrate2\nOrange Yellow\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nTuer1\nBlack brown\n..0..\n.1.1.\n0.1.0\n.1.1.\n0.0.0\n\nTuer2\nBlack brown\n.0.0.\n0.1.0\n.1.1.\n0.1.0\n.0.0.\n\nTuer_Offen\nlightgreen transparent\n.000.\n01110\n01110\n01110\n00000\n\nblackbg\nblack\n\ntreppe r\ngray darkgray\n11111\n00000\n11111\n00000\n11111\n\ntreppe2 y\ndarkgray gray \n11111\n00000\n11111\n00000\n11111\n\n=======\nLEGEND\n=======\n\nPlayer = Player1 or player2\nCrate = Crate1 or Crate2\nWall = wall1 or wall2\ntuer = tuer1 or tuer2\n\n. = Background\n# = Wall1 and wall2\n$ = vwall1 and vwall2\n\nP = Player1 and player2\n\n* = Crate1 and Crate2\n@ = Crate1 and crate2 and Target\nO = Target\n\nq = crate1\nw = crate2\n\nt = tuer1 and tuer2 and Tuer_Offen\n\nb = blackbg\n\ngewicht1 = player1 or Crate1 \ngewicht2 = player2 or Crate2\ngewicht = player or crate\n\ntreppen = treppe or treppe2\n=======\nSOUNDS\n=======\n\nCrate1 MOVE 36772507\nCrate2 MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nziel\naktiviertesziel\nTarget\nTarget_aktiviert\ntreppe, treppe2\ntuer_offen\nplayer1, crate1, wall1, tuer1, vwall1\nplayer2, crate2, wall2, tuer2, vwall2\nblackbg\n\n======\nRULES\n======\n\n[ > Player1 | Crate1 ] -> [ > Player1 | > Crate1 ]\n[ > Player2 | Crate2 ] -> [ > Player2 | > Crate2 ]\n[ > crate1 | crate1 ] -> [ > crate1 | > crate1 ]\n[ > crate2 | crate2 ] -> [ > crate2 | > crate2 ]\n\n\nlate [ Target_aktiviert ] -> [ ]\nlate [ target gewicht ] -> [ target gewicht Target_aktiviert ]\n\nlate [tuer_offen no gewicht ] -> [ Tuer_Offen tuer1 tuer2]\n\nlate right [ gewicht target | | | | gewicht target ] [ Tuer1 tuer2 ] -> [ gewicht target | | | | gewicht target ] [ ] \n\nlate [aktiviertesziel]->[]\nlate [ ziel crate ] -> [ aktiviertesziel ziel crate ]\n\n==============\nWINCONDITIONS\n==============\nall ziel on crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 1\n\n#$$$$$$$#\n#.......#\n#.z.w.z.#\n#.......#\n#$$$.$$$#\n#...t...#\n#....p..#\n#.oq..o.#\n#.......#\n#########\n\nmessage Herzlichen Glueckwunsch / Congratulations bzw.\n\n(\n\nauszuprobieren\n\tteilweises Aufmachen\n 2 klötze\n)\n", [1, 0, 0, 3, 3, 1, 1, 1, 2, "undo", 3, 2, 1, 3, 3, 3, 0, 1, 1, 1, 1, 1, 2, 2, 3, 1, 0, 3, 3, 3, 3, 1, 1, 1, 1, 3, 0, 0, 3, 3, 3, "restart", 2, 1, 1, 3, 3, 3, 0, 1, 1, 0, 1, 1, 1, 1, 2, 3, 3, 2, 3, 0, 0, 0, 3, 0, 1, 2], "background wall1 wall2:0,0,0,0,0,0,0,0,0,\n0,background vwall1 vwall2:1,background:2,2,2,1,2,2,2,\n2,0,1,2,background ziel:3,2,1,2,2,\nbackground target:4,2,0,1,2,2,2,1,2,\nbackground crate1:5,2,2,0,1,2,background crate2:6,2,2,\nbackground tuer1 tuer2 tuer_offen:7,2,background player1:8,2,0,1,2,2,2,\n1,2,background player2:9,2,2,0,1,2,3,\n2,1,2,2,4,2,0,1,2,\n2,2,1,2,2,2,2,0,0,\n0,0,0,0,0,0,0,0,0,\n", 1, "1627892193346.9036"] ], [ - "GAPFILLER / LUECKEFUELLER", - ["title GAPFILLER / LUECKEFUELLER \nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nrequire_player_movement\n\nbackground_color black\ntext_color white\n\n========\nOBJECTS\n========\n\nBackground\ngray\n\nempty\nblack\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkgray\n\nPlayer\nblack black black\n..1..\n11111\n.000.\n.101.\n.1.1.\n\n\npoo \nlightgray \n.....\n.000.\n.000.\n.000.\n.....\n\nlanded\ntransparent\n\n=======\nLEGEND\n=======\n\n\n. = Background\n# = Wall\np = Player\n* = Background\n@ = Background\nO = Background\n\n\ne = empty\n\nobstacle = player or wall or poo or empty\n\nl = landed\n\n=======\nSOUNDS\n=======\n\npoo MOVE 36772507\npoo create 68896304 \nendlevel 81920706\nendgame 70360302\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nempty\nlanded\nTarget\nPlayer, Wall, poo\n\n======\nRULES\n======\n\n\n\n\n[ > Player | poo | no obstacle ] -> [ | Player | poo ]\n[ > Player | no obstacle ] -> [ Poo | Player ]\n\n\n[ > player | poo ] -> [ > player | > poo ]\n[ > poo | poo ] -> [ > poo | > poo ]\n\nlate [ player ] -> [ player landed]\nlate [ poo ] -> [ poo landed]\n\n==============\nWINCONDITIONS\n==============\n\nAll background on obstacle\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 von 10\n\n#######\n#.....#\n#..#..#\n#.###.#\n#..#..#\n#..p..#\n#######\n\nmessage Level 2 von 10\n\n\nee######\nee#.OP.#\nee#.**.#\nee##.###\neee#.#ee\neee#.#ee\n####.#ee\n#....##e\n#.#...#e\n#...#.#e\n###...#e\nee#####e\n\nmessage Level 3 von 10\n\n\n#######\n##.####\n#....##\n##...##\n#..p.##\n#######\n\nmessage Level 4 von 10\n\n\n#######\n##...##\n##...##\n#..p..#\n#..#..#\n#######\n\nmessage Level 5 von 10\n\n\n#######\n##lll##\n##l#l##\n#llpll#\n##l#l##\n#######\n\n\nmessage Level 6 von 10\n\n#######\n##...##\n##.#.##\n#..p..#\n##.#.##\n####.##\n##.#.##\n#.....#\n##.#.##\n##...##\n#######\n\n\nmessage Level 7 von 10\n\n\n#######\n##.#.##\n#....##\n##...##\n#..p.##\n#######\n\n\nmessage Level 8 von 10\n\n#######\n#.....#\n#.#.#.#\n#.....#\n#.#.#.#\n#..p..#\n#######\n\n\n\nmessage Level 9 von 10\n\n#######\n##.#.##\n#.....#\n##.#.##\n#..p..#\n##.#.##\n#######\n\nmessage Level 10 von 10\n\n\n#########\n#.......#\n#.#.#.#.#\n#.......#\n#.#.#.#.#\n#...p...#\n#.#.#.#.#\n#.......#\n#########\n\nmessage Gratulation! Congratulations!\n\n\n\n\n\n\n\n\n\n\n\n\n(\n\n#######\n##lll##\n##l#l##\n#llpll#\n##l#l##\n#######\n\n\n\n\n###########\n#.........#\n#....P....#\n#.........#\n#..l...l..#\n#.........#\n#.........#\n#.........#\n###########\n\n\n###########\n#.........#\n#....P....#\n#.........#\n#..l...l..#\n#.........#\n#....l....#\n#.........#\n###########\n\n\n\n###########\n#.........#\n#....P....#\n#...e.....#\n#..l...l..#\n#.........#\n#....l....#\n#.........#\n###########\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\n\n####ee\n#.O#ee\n#..###\n#@P..#\n#..*.#\n#..###\n####ee\n\nmessage level 2 of 10\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\nmessage level 3 of 10\n\nee####eee\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\nmessage level 4 of 10\n\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\neeee####\n\nmessage level 5 of 10\n\ne#######\ne#.....#\ne#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\nmessage level 6 of 10\n\n######e#####\n#....###...#\n#.**.....#.#\n#.p.#OOO...#\n#...########\n#####eeeeeee\n\nmessage level 7 of 10\n\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*p*.#\n#.....#\n#######\n\nmessage level 8 of 10\n\n\nmessage level 9 of 10\n\n#####e\n#Op.##\n#.**.#\n##...#\ne##..#\nee##O#\neee###\n\nmessage level 10 of 10\n\neeeeee#####\neeeeee#O..#\neeeeee#O#.#\n#######O#.#\n#.p.*.*.*.#\n#.#.#.#.###\n#.......#ee\n#########ee\n\n#############\n#####...#####\n#####.p.#####\n#####...#####\n#...##.##...#\n#.l.......l.#\n#...#...#...#\n######.######\n#####...#####\n#####.l.#####\n#####...#####\n#############\n\n\n#############\n#####lll#####\n#####lpl#####\n#####lll#####\n######l######\n#############\n\n\n\n\n\n#######\n###l###\n##lll##\n#llpll#\n##lll##\n###l###\n#######\n\n\n#########\n#lllllll#\n#l##l##l#\n#l#lll#l#\n#lllplll#\n#l#lll#l#\n#l##l##l#\n#lllllll#\n#########\n\n\n#########\n#lllllll#\n#l##l##l#\n#l##l##l#\n#lllplll#\n#l##l##l#\n#l##l##l#\n#lllllll#\n#########\n\n#########\n#lllllll#\n#l##l##l#\n#l##l##l#\n#lllplll#\n#########\n\n\n###########\n##l#####l##\n#lllllllll#\n##l##l##l##\n##l##l##l##\n#llllpllll#\n##l#####l##\n###########\n\n########\n##l##l##\n#llllll#\n##l##l##\n##l##l##\n#lllpll#\n##l##l##\n########\n\n\n\n########\n##l##l##\n##llll##\n##l##l##\n##l##l##\n#lllpll#\n##l##l##\n########\n\n\n\n\n########\n##l##l##\n##llll##\n##l##l##\n##l##l##\n#lllpll#\n##l##l##\n########\n\n\n\n\n\n########\n########\n##llll##\n##l##l##\n##l##l##\n##llpl##\n########\n########\n\n########\n########\n##llll##\n##l##l##\n##l##l##\n#lllpl##\n########\n########\n\n\n\n########\n########\n##llll##\n##l##l##\n##l##l##\n#lllpl##\n########\n########\n)\n",[1,0,0,3,3,2,2,2,2,2,2,3,1,1,1,0,2,2,2,0,0,2],"background wall:0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\nbackground:1,0,0,0,background landed poo:2,0,0,\n0,0,2,2,2,1,0,\nbackground landed player:3,2,2,2,0,0,2,\n0,2,0,0,0,background landed:4,0,\n1,0,0,2,2,2,2,\n2,2,4,1,1,0,0,\n0,0,1,0,0,0,4,\n0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\n",11,"1627892223719.676"] + "GAPFILLER / LUECKEFUELLER", + ["title GAPFILLER / LUECKEFUELLER \nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nrequire_player_movement\n\nbackground_color black\ntext_color white\n\n========\nOBJECTS\n========\n\nBackground\ngray\n\nempty\nblack\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkgray\n\nPlayer\nblack black black\n..1..\n11111\n.000.\n.101.\n.1.1.\n\n\npoo \nlightgray \n.....\n.000.\n.000.\n.000.\n.....\n\nlanded\ntransparent\n\n=======\nLEGEND\n=======\n\n\n. = Background\n# = Wall\np = Player\n* = Background\n@ = Background\nO = Background\n\n\ne = empty\n\nobstacle = player or wall or poo or empty\n\nl = landed\n\n=======\nSOUNDS\n=======\n\npoo MOVE 36772507\npoo create 68896304 \nendlevel 81920706\nendgame 70360302\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nempty\nlanded\nTarget\nPlayer, Wall, poo\n\n======\nRULES\n======\n\n\n\n\n[ > Player | poo | no obstacle ] -> [ | Player | poo ]\n[ > Player | no obstacle ] -> [ Poo | Player ]\n\n\n[ > player | poo ] -> [ > player | > poo ]\n[ > poo | poo ] -> [ > poo | > poo ]\n\nlate [ player ] -> [ player landed]\nlate [ poo ] -> [ poo landed]\n\n==============\nWINCONDITIONS\n==============\n\nAll background on obstacle\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 von 10\n\n#######\n#.....#\n#..#..#\n#.###.#\n#..#..#\n#..p..#\n#######\n\nmessage Level 2 von 10\n\n\nee######\nee#.OP.#\nee#.**.#\nee##.###\neee#.#ee\neee#.#ee\n####.#ee\n#....##e\n#.#...#e\n#...#.#e\n###...#e\nee#####e\n\nmessage Level 3 von 10\n\n\n#######\n##.####\n#....##\n##...##\n#..p.##\n#######\n\nmessage Level 4 von 10\n\n\n#######\n##...##\n##...##\n#..p..#\n#..#..#\n#######\n\nmessage Level 5 von 10\n\n\n#######\n##lll##\n##l#l##\n#llpll#\n##l#l##\n#######\n\n\nmessage Level 6 von 10\n\n#######\n##...##\n##.#.##\n#..p..#\n##.#.##\n####.##\n##.#.##\n#.....#\n##.#.##\n##...##\n#######\n\n\nmessage Level 7 von 10\n\n\n#######\n##.#.##\n#....##\n##...##\n#..p.##\n#######\n\n\nmessage Level 8 von 10\n\n#######\n#.....#\n#.#.#.#\n#.....#\n#.#.#.#\n#..p..#\n#######\n\n\n\nmessage Level 9 von 10\n\n#######\n##.#.##\n#.....#\n##.#.##\n#..p..#\n##.#.##\n#######\n\nmessage Level 10 von 10\n\n\n#########\n#.......#\n#.#.#.#.#\n#.......#\n#.#.#.#.#\n#...p...#\n#.#.#.#.#\n#.......#\n#########\n\nmessage Gratulation! Congratulations!\n\n\n\n\n\n\n\n\n\n\n\n\n(\n\n#######\n##lll##\n##l#l##\n#llpll#\n##l#l##\n#######\n\n\n\n\n###########\n#.........#\n#....P....#\n#.........#\n#..l...l..#\n#.........#\n#.........#\n#.........#\n###########\n\n\n###########\n#.........#\n#....P....#\n#.........#\n#..l...l..#\n#.........#\n#....l....#\n#.........#\n###########\n\n\n\n###########\n#.........#\n#....P....#\n#...e.....#\n#..l...l..#\n#.........#\n#....l....#\n#.........#\n###########\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\n\n####ee\n#.O#ee\n#..###\n#@P..#\n#..*.#\n#..###\n####ee\n\nmessage level 2 of 10\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\nmessage level 3 of 10\n\nee####eee\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\nmessage level 4 of 10\n\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\neeee####\n\nmessage level 5 of 10\n\ne#######\ne#.....#\ne#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\nmessage level 6 of 10\n\n######e#####\n#....###...#\n#.**.....#.#\n#.p.#OOO...#\n#...########\n#####eeeeeee\n\nmessage level 7 of 10\n\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*p*.#\n#.....#\n#######\n\nmessage level 8 of 10\n\n\nmessage level 9 of 10\n\n#####e\n#Op.##\n#.**.#\n##...#\ne##..#\nee##O#\neee###\n\nmessage level 10 of 10\n\neeeeee#####\neeeeee#O..#\neeeeee#O#.#\n#######O#.#\n#.p.*.*.*.#\n#.#.#.#.###\n#.......#ee\n#########ee\n\n#############\n#####...#####\n#####.p.#####\n#####...#####\n#...##.##...#\n#.l.......l.#\n#...#...#...#\n######.######\n#####...#####\n#####.l.#####\n#####...#####\n#############\n\n\n#############\n#####lll#####\n#####lpl#####\n#####lll#####\n######l######\n#############\n\n\n\n\n\n#######\n###l###\n##lll##\n#llpll#\n##lll##\n###l###\n#######\n\n\n#########\n#lllllll#\n#l##l##l#\n#l#lll#l#\n#lllplll#\n#l#lll#l#\n#l##l##l#\n#lllllll#\n#########\n\n\n#########\n#lllllll#\n#l##l##l#\n#l##l##l#\n#lllplll#\n#l##l##l#\n#l##l##l#\n#lllllll#\n#########\n\n#########\n#lllllll#\n#l##l##l#\n#l##l##l#\n#lllplll#\n#########\n\n\n###########\n##l#####l##\n#lllllllll#\n##l##l##l##\n##l##l##l##\n#llllpllll#\n##l#####l##\n###########\n\n########\n##l##l##\n#llllll#\n##l##l##\n##l##l##\n#lllpll#\n##l##l##\n########\n\n\n\n########\n##l##l##\n##llll##\n##l##l##\n##l##l##\n#lllpll#\n##l##l##\n########\n\n\n\n\n########\n##l##l##\n##llll##\n##l##l##\n##l##l##\n#lllpll#\n##l##l##\n########\n\n\n\n\n\n########\n########\n##llll##\n##l##l##\n##l##l##\n##llpl##\n########\n########\n\n########\n########\n##llll##\n##l##l##\n##l##l##\n#lllpl##\n########\n########\n\n\n\n########\n########\n##llll##\n##l##l##\n##l##l##\n#lllpl##\n########\n########\n)\n", [1, 0, 0, 3, 3, 2, 2, 2, 2, 2, 2, 3, 1, 1, 1, 0, 2, 2, 2, 0, 0, 2], "background wall:0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\nbackground:1,0,0,0,background landed poo:2,0,0,\n0,0,2,2,2,1,0,\nbackground landed player:3,2,2,2,0,0,2,\n0,2,0,0,0,background landed:4,0,\n1,0,0,2,2,2,2,\n2,2,4,1,1,0,0,\n0,0,1,0,0,0,4,\n0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\n", 11, "1627892223719.676"] ], [ - "pushit", - ["title pushit\nauthor increpare\nhomepage www.increpare.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\nPoo\norange brown\n.0...\n..1..\n.000.\n.1111\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n+ = player and target\n\nobstacle = wall or player or crate or poo\npushable = crate or poo\n=======\nSOUNDS\n=======\n\npoo create 9134102\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, Poo\n\n======\nRULES\n======\n\n[ > Player | pushable | no obstacle ] -> [ poo | Player | pushable ]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 4\n\n#########\n#.......#\n#...*...#\n#...*...#\n#...*.p.#\n#...o...#\n#...o...#\n#...o...#\n#.......#\n#########\n\n\nmessage Level 2 of 4\n\n##############\n#............#\n#............#\n#....***.....#\n#............#\n#............#\n#....ooo..*..#\n#..p.ooo..*..#\n#....ooo..*..#\n#............#\n#............#\n#....***.....#\n#............#\n#............#\n##############\n\nmessage Level 3 of 4\n\n\n#########\n#.......#\n#..O*O..#\n#..*P*..#\n#..O*O..#\n#.......#\n#########\n\nmessage Level 4 of 4\n\n\n######\n#O..O#\n#P**.#\n#....#\n#....#\n#.**.#\n#O..O#\n######\n\nmessage Congrats! You can pushit!\n\n\n\n\n\n\n\n\n\n\n",[1,0,3,0,3,3,3,2,1,1,2,3,3,1,0,3,2,1,2,1,2,1,1,1,1,0,0,0],"background wall:0,0,0,0,0,0,0,0,background:1,\n1,1,1,1,0,0,background crate:2,background player:3,background poo:4,\n4,1,0,0,1,background poo target:5,1,background target:6,1,\n0,0,1,2,4,2,1,0,0,\n1,5,4,background crate target:7,1,0,0,4,1,\n1,1,1,0,0,1,1,4,1,\n1,0,0,0,0,0,0,0,0,\n",5,"1627892234377.7625"] + "pushit", + ["title pushit\nauthor increpare\nhomepage www.increpare.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\nPoo\norange brown\n.0...\n..1..\n.000.\n.1111\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n+ = player and target\n\nobstacle = wall or player or crate or poo\npushable = crate or poo\n=======\nSOUNDS\n=======\n\npoo create 9134102\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, Poo\n\n======\nRULES\n======\n\n[ > Player | pushable | no obstacle ] -> [ poo | Player | pushable ]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 4\n\n#########\n#.......#\n#...*...#\n#...*...#\n#...*.p.#\n#...o...#\n#...o...#\n#...o...#\n#.......#\n#########\n\n\nmessage Level 2 of 4\n\n##############\n#............#\n#............#\n#....***.....#\n#............#\n#............#\n#....ooo..*..#\n#..p.ooo..*..#\n#....ooo..*..#\n#............#\n#............#\n#....***.....#\n#............#\n#............#\n##############\n\nmessage Level 3 of 4\n\n\n#########\n#.......#\n#..O*O..#\n#..*P*..#\n#..O*O..#\n#.......#\n#########\n\nmessage Level 4 of 4\n\n\n######\n#O..O#\n#P**.#\n#....#\n#....#\n#.**.#\n#O..O#\n######\n\nmessage Congrats! You can pushit!\n\n\n\n\n\n\n\n\n\n\n", [1, 0, 3, 0, 3, 3, 3, 2, 1, 1, 2, 3, 3, 1, 0, 3, 2, 1, 2, 1, 2, 1, 1, 1, 1, 0, 0, 0], "background wall:0,0,0,0,0,0,0,0,background:1,\n1,1,1,1,0,0,background crate:2,background player:3,background poo:4,\n4,1,0,0,1,background poo target:5,1,background target:6,1,\n0,0,1,2,4,2,1,0,0,\n1,5,4,background crate target:7,1,0,0,4,1,\n1,1,1,0,0,1,1,4,1,\n1,0,0,0,0,0,0,0,0,\n", 5, "1627892234377.7625"] ], [ - "AUTOHURDLER", - ["title AUTOHURDLER\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color gray\n\nrun_rules_on_level_start\nnoaction\n\n\ncolor_palette 13\n\n========\nOBJECTS\n========\n\nBackground\nlightgray gray\n11111\n11111\n11011\n11111\n11111\n\n\nTarget\nyellow transparent transparent\n11111\n11211\n12021\n11211\n11111\n\nWall\ndarkgray gray\n00000\n00000\n00100\n00000\n00000\n\nPlayer\nblack black black black\n.000.\n.111.\n22.22\n.333.\n.3.3.\n\nCrate\ndarkblue Yellow\n.000.\n0...0\n0...0\n0...0\n.000.\n\noncrate\nlightblue \n.000.\n0...0\n0...0\n0...0\n.000.\n\nteleport_up\ndarkred transparent\n11011\n10001\n00000\n11011\n11011\n\n\nteleport_down\ndarkred transparent\n11011\n11011\n00000\n10001\n11011\n\n\nteleport_left\ndarkred transparent\n11011\n10011\n00000\n10011\n11011\n\n\nteleport_right\ndarkred transparent\n11011\n11001\n00000\n11001\n11011\n\n\n\nteleport_bad\ndarkred transparent \n11111\n10101\n11011\n10101\n11111\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nobstacle = wall or crate\n+ = player and target\n\nteleport = teleport_up or teleport_down or teleport_left or teleport_right\nanytele = teleport or teleport_bad\n\n=======\nSOUNDS\n=======\n\nsfx1 19243905\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nteleport_up\nteleport_down\nteleport_left\nteleport_right\nteleport_bad\nTarget\nPlayer, Wall, Crate\noncrate\n\n======\nRULES\n======\n\n[ > player | crate ] -> [ > player | > crate ]\n[ > crate | crate ] -> [ > crate | > crate ]\n\n\n[ > crate | stationary obstacle ] -> [ crate | stationary obstacle ]\n[ > player | stationary obstacle ] -> cancel\n\n([ > player | obstacle | obstacle ] -> cancel)\n[ > player | wall ] -> cancel \n\nlate [ anytele ] -> []\nlate up [ crate | no obstacle ] -> [ crate | teleport_down ]\nlate down [ crate | no obstacle ] -> [ crate | teleport_up ]\nlate left [ crate | no obstacle ] -> [ crate | teleport_right ]\nlate right [ crate | no obstacle ] -> [ crate | teleport_left ]\n\nlate [ teleport_up teleport_down ] -> [ teleport_bad ]\nlate [ teleport_up teleport_left ] -> [ teleport_bad ]\nlate [ teleport_up teleport_right ] -> [ teleport_bad ]\nlate [ teleport_down teleport_left ] -> [ teleport_bad ]\nlate [ teleport_down teleport_right ] -> [ teleport_bad ]\nlate [ teleport_left teleport_right ] -> [ teleport_bad ]\n\nlate [ teleport_bad teleport_up ] -> [ teleport_bad ]\nlate [ teleport_bad teleport_down ] -> [ teleport_bad ]\nlate [ teleport_bad teleport_left ] -> [ teleport_bad ]\nlate [ teleport_bad teleport_right ] -> [ teleport_bad ]\n\nlate up [ teleport_up | crate | obstacle ] -> [teleport_bad|Crate|obstacle]\nlate down [ teleport_down | crate | obstacle ] -> [teleport_bad|Crate|obstacle]\nlate left [ teleport_left | crate | obstacle ] -> [teleport_bad|Crate|obstacle]\nlate right [ teleport_right | crate | obstacle ] -> [teleport_bad|Crate|obstacle]\n\nrandom late up [ teleport_up player | crate | no obstacle ] -> [ teleport_up | crate | Player ] sfx1\n+ late down [ teleport_down player | crate | no obstacle ] -> [ teleport_down | crate | Player ] sfx1\n+ late left [ teleport_left player | crate | no obstacle ] -> [ teleport_left | crate | Player ] sfx1\n+ late right [ teleport_right player | crate | no obstacle ] -> [ teleport_right | crate | Player ] sfx1\n\nlate [oncrate]->[]\nlate [ crate target] -> [crate target oncrate]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 4\n\n#########\n#.......#\n#.......#\n#..*o*..#\n#..o.o..#\n#..*o*..#\n#.......#\n#...p...#\n#########\n\nmessage level 2 of 4\n\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\nmessage level 3 of 4\n\n\n##########\n#........#\n#........#\n#..o**...#\n#..oo*...#\n#.p......#\n#........#\n##########\n\n\nmessage level 4 of 4\n\n#########\n#...#.p.#\n#..*o*..#\n#..o*o..#\n#..o*o..#\n#..*o*..#\n#...#...#\n#########\n\nmessage .CONGRATULATIONS. .AUTOHURDLER. .WE. .ARE. .SO. .PROUD. .OF. .YOU.\n\n",[0,3,1,2,2,3,3,0,3,0,"undo","undo","undo",1,1,0,3,"undo",3,2,2,2,1,1,1,2,3,2,2,1,1,1,1,0,3,1,2],"background wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,0,\n0,1,1,background teleport_right:2,1,1,2,1,0,\n0,1,background teleport_down:3,background crate:4,background target teleport_up:5,3,4,background player teleport_up:6,0,\n0,1,1,background target teleport_left:7,1,background target:8,background teleport_left:9,1,0,\n0,1,1,2,8,2,1,1,0,\n0,1,3,4,background teleport_bad:10,4,background teleport_up:11,1,0,\n0,1,1,9,1,9,1,1,0,\n0,0,0,0,0,0,0,0,0,\n",1,"1627892250172.2253"] + "AUTOHURDLER", + ["title AUTOHURDLER\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color gray\n\nrun_rules_on_level_start\nnoaction\n\n\ncolor_palette 13\n\n========\nOBJECTS\n========\n\nBackground\nlightgray gray\n11111\n11111\n11011\n11111\n11111\n\n\nTarget\nyellow transparent transparent\n11111\n11211\n12021\n11211\n11111\n\nWall\ndarkgray gray\n00000\n00000\n00100\n00000\n00000\n\nPlayer\nblack black black black\n.000.\n.111.\n22.22\n.333.\n.3.3.\n\nCrate\ndarkblue Yellow\n.000.\n0...0\n0...0\n0...0\n.000.\n\noncrate\nlightblue \n.000.\n0...0\n0...0\n0...0\n.000.\n\nteleport_up\ndarkred transparent\n11011\n10001\n00000\n11011\n11011\n\n\nteleport_down\ndarkred transparent\n11011\n11011\n00000\n10001\n11011\n\n\nteleport_left\ndarkred transparent\n11011\n10011\n00000\n10011\n11011\n\n\nteleport_right\ndarkred transparent\n11011\n11001\n00000\n11001\n11011\n\n\n\nteleport_bad\ndarkred transparent \n11111\n10101\n11011\n10101\n11111\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nobstacle = wall or crate\n+ = player and target\n\nteleport = teleport_up or teleport_down or teleport_left or teleport_right\nanytele = teleport or teleport_bad\n\n=======\nSOUNDS\n=======\n\nsfx1 19243905\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nteleport_up\nteleport_down\nteleport_left\nteleport_right\nteleport_bad\nTarget\nPlayer, Wall, Crate\noncrate\n\n======\nRULES\n======\n\n[ > player | crate ] -> [ > player | > crate ]\n[ > crate | crate ] -> [ > crate | > crate ]\n\n\n[ > crate | stationary obstacle ] -> [ crate | stationary obstacle ]\n[ > player | stationary obstacle ] -> cancel\n\n([ > player | obstacle | obstacle ] -> cancel)\n[ > player | wall ] -> cancel \n\nlate [ anytele ] -> []\nlate up [ crate | no obstacle ] -> [ crate | teleport_down ]\nlate down [ crate | no obstacle ] -> [ crate | teleport_up ]\nlate left [ crate | no obstacle ] -> [ crate | teleport_right ]\nlate right [ crate | no obstacle ] -> [ crate | teleport_left ]\n\nlate [ teleport_up teleport_down ] -> [ teleport_bad ]\nlate [ teleport_up teleport_left ] -> [ teleport_bad ]\nlate [ teleport_up teleport_right ] -> [ teleport_bad ]\nlate [ teleport_down teleport_left ] -> [ teleport_bad ]\nlate [ teleport_down teleport_right ] -> [ teleport_bad ]\nlate [ teleport_left teleport_right ] -> [ teleport_bad ]\n\nlate [ teleport_bad teleport_up ] -> [ teleport_bad ]\nlate [ teleport_bad teleport_down ] -> [ teleport_bad ]\nlate [ teleport_bad teleport_left ] -> [ teleport_bad ]\nlate [ teleport_bad teleport_right ] -> [ teleport_bad ]\n\nlate up [ teleport_up | crate | obstacle ] -> [teleport_bad|Crate|obstacle]\nlate down [ teleport_down | crate | obstacle ] -> [teleport_bad|Crate|obstacle]\nlate left [ teleport_left | crate | obstacle ] -> [teleport_bad|Crate|obstacle]\nlate right [ teleport_right | crate | obstacle ] -> [teleport_bad|Crate|obstacle]\n\nrandom late up [ teleport_up player | crate | no obstacle ] -> [ teleport_up | crate | Player ] sfx1\n+ late down [ teleport_down player | crate | no obstacle ] -> [ teleport_down | crate | Player ] sfx1\n+ late left [ teleport_left player | crate | no obstacle ] -> [ teleport_left | crate | Player ] sfx1\n+ late right [ teleport_right player | crate | no obstacle ] -> [ teleport_right | crate | Player ] sfx1\n\nlate [oncrate]->[]\nlate [ crate target] -> [crate target oncrate]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 4\n\n#########\n#.......#\n#.......#\n#..*o*..#\n#..o.o..#\n#..*o*..#\n#.......#\n#...p...#\n#########\n\nmessage level 2 of 4\n\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\nmessage level 3 of 4\n\n\n##########\n#........#\n#........#\n#..o**...#\n#..oo*...#\n#.p......#\n#........#\n##########\n\n\nmessage level 4 of 4\n\n#########\n#...#.p.#\n#..*o*..#\n#..o*o..#\n#..o*o..#\n#..*o*..#\n#...#...#\n#########\n\nmessage .CONGRATULATIONS. .AUTOHURDLER. .WE. .ARE. .SO. .PROUD. .OF. .YOU.\n\n", [0, 3, 1, 2, 2, 3, 3, 0, 3, 0, "undo", "undo", "undo", 1, 1, 0, 3, "undo", 3, 2, 2, 2, 1, 1, 1, 2, 3, 2, 2, 1, 1, 1, 1, 0, 3, 1, 2], "background wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,0,\n0,1,1,background teleport_right:2,1,1,2,1,0,\n0,1,background teleport_down:3,background crate:4,background target teleport_up:5,3,4,background player teleport_up:6,0,\n0,1,1,background target teleport_left:7,1,background target:8,background teleport_left:9,1,0,\n0,1,1,2,8,2,1,1,0,\n0,1,3,4,background teleport_bad:10,4,background teleport_up:11,1,0,\n0,1,1,9,1,9,1,1,0,\n0,0,0,0,0,0,0,0,0,\n", 1, "1627892250172.2253"] ], [ - "Snakey Snakey Makes A Sixy", - ["title Snakey Snakey Makes A Sixy\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nrequire_player_movement\n\ncolor_palette 5\n\n========\nOBJECTS\n========\n\nBackground\nblack black\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\n\nprev1 a\ndarkgreen\n.000.\n0...0\n0...0\n0...0\n.000.\n\nprev2 b\ndarkgreen\n.000.\n0...0\n0...0\n0...0\n.000.\n\nPlayer\ngreen\n.000.\n0...0\n0...0\n0...0\n.000.\n\n\n\n1\npurple\n.....\n.....\n..0..\n.....\n.....\n\n\n\n2\nred\n.....\n.0...\n.....\n...0.\n.....\n\n\n3\npink\n.....\n.0...\n..0..\n...0.\n.....\n\n\n4\nyellow\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\n5\nlightgreen\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\n\n6\ngreen\n.....\n.000.\n.....\n.000.\n.....\n\n\nc_up\nblack\n..0..\n.....\n.....\n.....\n.....\n\nc_down\nblack\n.....\n.....\n.....\n.....\n..0..\n\nc_left\nblack\n.....\n.....\n0....\n.....\n.....\n\nc_right\nblack\n.....\n.....\n....0\n.....\n.....\n\nsprt_0_0 l\n#69ff05 black\n.....\n.....\n..1.0\n....0\n....0\n\nsprt_1_0 k\n#69ff05\n.....\n.0000\n00000\n.000.\n00000\n\nsprt_2_0 j \n#69ff05 black\n.....\n.....\n0.1..\n0....\n0....\n\nsprt_3_0 h\n#000000\n.....\n.....\n..0..\n.....\n.....\n\nsprt_0_1 g\n#ff1463 black\n.....\n....0\n..10.\n.....\n.....\n\nsprt_1_1 f\n#69ff05 #ff1463 #22630a black\n01000\n10002\n1.322\n1....\n.....\n\nsprt_2_1 d\n#22630a\n0....\n000..\n000..\n00000\n..000\n\nsprt_3_1 s\n#22630a black\n.....\n.....\n..1..\n.....\n0....\n\nsprt_0_2 z\nwhite black\n.....\n.....\n..1..\n.....\n.....\n\nsprt_1_2 x\nwhite black\n.....\n0.0.0\n..1..\n0.0.0\n.....\n\nsprt_2_2 0\n#22630a black\n....0\n....0\n..1..\n.....\n.....\n\nsprt_3_2 v\n#22630a black\n0....\n0....\n001..\n000..\n000..\n\nsprt_0_3 9\n#22630a black\n..00.\n...00\n..1.0\n.....\n.....\n\nsprt_1_3 n\n#22630a\n.....\n0....\n00000\n.0000\n.....\n\nsprt_2_3 m\n#22630a\n....0\n..000\n00000\n000..\n.....\n\nsprt_3_3 8\n#22630a black\n00...\n0....\n..1..\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = Target\n\nprev = prev1 or prev2\n\n\nnum = 1 or 2 or 3 or 4 or 5 or 6\n\nc = c_up or c_down or c_left or c_right\n\nbody = player or prev\n\n=======\nSOUNDS\n=======\n \n\nsfx1 55932906\nsfx2 4305306\nsfx3 6823106\nsfx4 83937501\nsfx5 65854702\n\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\n1,2,3,4,5,6\nPlayer, Wall, prev1, prev2\nc_up\nc_down\nc_left\nc_right\nsprt_0_0, sprt_1_0, sprt_2_0, sprt_3_0, sprt_0_1, sprt_1_1, sprt_2_1, sprt_3_1, sprt_0_2, sprt_1_2, sprt_2_2, sprt_3_2, sprt_0_3, sprt_1_3, sprt_2_3, sprt_3_3\n\n======\nRULES\n======\n\n\n[no num]->[1]\n\n[> player | prev ] -> cancel\n\n[ prev1 | player ] -> [ > prev1 | player ]\n[ prev2 | prev1 ] -> [ > prev2 | prev1 ]\n\nlate [ player 1 ] [ prev1 1 ] [ prev2 1] -> [ player 2 ] [ prev1 ] [ prev2 ] sfx1 again\nlate [ player 2 ] [ prev1 2 ] [ prev2 2] -> [ player 3 ] [ prev1 ] [ prev2 ] sfx2 again\nlate [ player 3 ] [ prev1 3 ] [ prev2 3] -> [ player 4 ] [ prev1 ] [ prev2 ] sfx3 again\nlate [ player 4 ] [ prev1 4 ] [ prev2 4] -> [ player 5 ] [ prev1 ] [ prev2 ] sfx4 again\nlate [ player 5 ] [ prev1 5 ] [ prev2 5] -> sfx5 win\n\n\n\nlate [ c ] -> []\n\nlate right [ body | body ] -> [ body c_right | body c_left ]\nlate down [ body | body ] -> [ body c_down | body c_up ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.........\n.........\n.........\n.........\n....p....\n....a....\n....b....\n.........\n.........\n\nmessage You did it, snakey snakey! You made a sixy!\n\nlkjh\ngfds\nzx0v\n9nm8\n",[0,0,3,2,2,4,2,1,1,0,0,3,3,2,3,0,0,0,1,1,2,3,0,0,1,2,2,2,1,1,0,3,0,1,2,2,2,1,0,3,2,1,0,3,3,2,1,1,"undo","undo",1,1,0,3,3,0,1,2,1,1,0,3,2,1,0,3,3,2,2,1,0,1,0,3,2,3,3,3,0,1,2,3,3,0,1,2,1,0,3,2,1,1,0,3],"1 background:0,0,0,3 background:1,0,0,0,0,0,\n0,0,0,2 background:2,0,0,0,0,0,\n0,0,3 background c_down c_right prev1:3,1 background c_up prev2:4,1,0,0,0,0,\n0,0,1 background c_left player:5,2,0,0,0,0,0,\n0,2,0,2,2,0,0,0,0,\n0,2,2,1,0,2,0,0,0,\n0,0,0,2,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,"1627892275012.8281"] + "Snakey Snakey Makes A Sixy", + ["title Snakey Snakey Makes A Sixy\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nrequire_player_movement\n\ncolor_palette 5\n\n========\nOBJECTS\n========\n\nBackground\nblack black\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\n\nprev1 a\ndarkgreen\n.000.\n0...0\n0...0\n0...0\n.000.\n\nprev2 b\ndarkgreen\n.000.\n0...0\n0...0\n0...0\n.000.\n\nPlayer\ngreen\n.000.\n0...0\n0...0\n0...0\n.000.\n\n\n\n1\npurple\n.....\n.....\n..0..\n.....\n.....\n\n\n\n2\nred\n.....\n.0...\n.....\n...0.\n.....\n\n\n3\npink\n.....\n.0...\n..0..\n...0.\n.....\n\n\n4\nyellow\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\n5\nlightgreen\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\n\n6\ngreen\n.....\n.000.\n.....\n.000.\n.....\n\n\nc_up\nblack\n..0..\n.....\n.....\n.....\n.....\n\nc_down\nblack\n.....\n.....\n.....\n.....\n..0..\n\nc_left\nblack\n.....\n.....\n0....\n.....\n.....\n\nc_right\nblack\n.....\n.....\n....0\n.....\n.....\n\nsprt_0_0 l\n#69ff05 black\n.....\n.....\n..1.0\n....0\n....0\n\nsprt_1_0 k\n#69ff05\n.....\n.0000\n00000\n.000.\n00000\n\nsprt_2_0 j \n#69ff05 black\n.....\n.....\n0.1..\n0....\n0....\n\nsprt_3_0 h\n#000000\n.....\n.....\n..0..\n.....\n.....\n\nsprt_0_1 g\n#ff1463 black\n.....\n....0\n..10.\n.....\n.....\n\nsprt_1_1 f\n#69ff05 #ff1463 #22630a black\n01000\n10002\n1.322\n1....\n.....\n\nsprt_2_1 d\n#22630a\n0....\n000..\n000..\n00000\n..000\n\nsprt_3_1 s\n#22630a black\n.....\n.....\n..1..\n.....\n0....\n\nsprt_0_2 z\nwhite black\n.....\n.....\n..1..\n.....\n.....\n\nsprt_1_2 x\nwhite black\n.....\n0.0.0\n..1..\n0.0.0\n.....\n\nsprt_2_2 0\n#22630a black\n....0\n....0\n..1..\n.....\n.....\n\nsprt_3_2 v\n#22630a black\n0....\n0....\n001..\n000..\n000..\n\nsprt_0_3 9\n#22630a black\n..00.\n...00\n..1.0\n.....\n.....\n\nsprt_1_3 n\n#22630a\n.....\n0....\n00000\n.0000\n.....\n\nsprt_2_3 m\n#22630a\n....0\n..000\n00000\n000..\n.....\n\nsprt_3_3 8\n#22630a black\n00...\n0....\n..1..\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = Target\n\nprev = prev1 or prev2\n\n\nnum = 1 or 2 or 3 or 4 or 5 or 6\n\nc = c_up or c_down or c_left or c_right\n\nbody = player or prev\n\n=======\nSOUNDS\n=======\n \n\nsfx1 55932906\nsfx2 4305306\nsfx3 6823106\nsfx4 83937501\nsfx5 65854702\n\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\n1,2,3,4,5,6\nPlayer, Wall, prev1, prev2\nc_up\nc_down\nc_left\nc_right\nsprt_0_0, sprt_1_0, sprt_2_0, sprt_3_0, sprt_0_1, sprt_1_1, sprt_2_1, sprt_3_1, sprt_0_2, sprt_1_2, sprt_2_2, sprt_3_2, sprt_0_3, sprt_1_3, sprt_2_3, sprt_3_3\n\n======\nRULES\n======\n\n\n[no num]->[1]\n\n[> player | prev ] -> cancel\n\n[ prev1 | player ] -> [ > prev1 | player ]\n[ prev2 | prev1 ] -> [ > prev2 | prev1 ]\n\nlate [ player 1 ] [ prev1 1 ] [ prev2 1] -> [ player 2 ] [ prev1 ] [ prev2 ] sfx1 again\nlate [ player 2 ] [ prev1 2 ] [ prev2 2] -> [ player 3 ] [ prev1 ] [ prev2 ] sfx2 again\nlate [ player 3 ] [ prev1 3 ] [ prev2 3] -> [ player 4 ] [ prev1 ] [ prev2 ] sfx3 again\nlate [ player 4 ] [ prev1 4 ] [ prev2 4] -> [ player 5 ] [ prev1 ] [ prev2 ] sfx4 again\nlate [ player 5 ] [ prev1 5 ] [ prev2 5] -> sfx5 win\n\n\n\nlate [ c ] -> []\n\nlate right [ body | body ] -> [ body c_right | body c_left ]\nlate down [ body | body ] -> [ body c_down | body c_up ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.........\n.........\n.........\n.........\n....p....\n....a....\n....b....\n.........\n.........\n\nmessage You did it, snakey snakey! You made a sixy!\n\nlkjh\ngfds\nzx0v\n9nm8\n", [0, 0, 3, 2, 2, 4, 2, 1, 1, 0, 0, 3, 3, 2, 3, 0, 0, 0, 1, 1, 2, 3, 0, 0, 1, 2, 2, 2, 1, 1, 0, 3, 0, 1, 2, 2, 2, 1, 0, 3, 2, 1, 0, 3, 3, 2, 1, 1, "undo", "undo", 1, 1, 0, 3, 3, 0, 1, 2, 1, 1, 0, 3, 2, 1, 0, 3, 3, 2, 2, 1, 0, 1, 0, 3, 2, 3, 3, 3, 0, 1, 2, 3, 3, 0, 1, 2, 1, 0, 3, 2, 1, 1, 0, 3], "1 background:0,0,0,3 background:1,0,0,0,0,0,\n0,0,0,2 background:2,0,0,0,0,0,\n0,0,3 background c_down c_right prev1:3,1 background c_up prev2:4,1,0,0,0,0,\n0,0,1 background c_left player:5,2,0,0,0,0,0,\n0,2,0,2,2,0,0,0,0,\n0,2,2,1,0,2,0,0,0,\n0,0,0,2,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, "1627892275012.8281"] ], [ - "Voitex Rasteriser [Demake of Vertex Dispenser Puzzle Mode]", - ["title Voitex Rasteriser [Demake of Vertex Dispenser Puzzle Mode]\nauthor increpare\nhomepage www.increpare.com\n\n(inspired by https://store.steampowered.com/app/102400/Vertex_Dispenser/ )\n\nrun_rules_on_level_start\n\nbackground_color darkblue\ntext_color lightgreen\n\ncolor_palette 1\n\n========\nOBJECTS\n========\n\nBackground\nblack black\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\n\nPlayer\ngray\n00.00\n0...0\n.....\n0...0\n00.00\n\n\n\n1\npurple\n.....\n.....\n..0..\n.....\n.....\n\n\n\n2\nred\n.....\n.0...\n.....\n...0.\n.....\n\n\n3\npink\n.....\n.0...\n..0..\n...0.\n.....\n\n\n4\nyellow\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\n5\nlightgreen\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\n\n6\ngreen\n.....\n.000.\n.....\n.000.\n.....\n\n\n\nplace \ndarkgray\n\nno1 \ntransparent\n\nno2\ntransparent\n\nno3\ntransparent\n\nno4\ntransparent\n\nno5\ntransparent\n\nno6\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = Target\n\n\n\nnum = 1 or 2 or 3 or 4 or 5 or 6\n\nnonum = no1 or no2 or no3 or no4 or no5 or no6\n\n=======\nSOUNDS\n=======\n \n\nsfx1 55932906\nsfx2 4305306\nsfx3 6823106\nsfx4 83937501\nsfx5 65854702\n\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nnum\nno1\nno2\nno3\nno4\nno5\nno6\nplace\nPlayer, Wall\n\n======\nRULES\n======\n\n\n[nonum] -> []\n[ 1 | place no num ] -> [ 1 | place no1 ]\n[ 2 | place no num ] -> [ 2 | place no2 ]\n[ 3 | place no num ] -> [ 3 | place no3 ]\n[ 4 | place no num ] -> [ 4 | place no4 ]\n[ 5 | place no num ] -> [ 5 | place no5 ]\n[ 6 | place no num ] -> [ 6 | place no6 ]\n\n[place no1 no2 no3 no4 no5 ] -> [ 6 ]\n[place no1 no2 no3 no4 ] -> [ 5 ] sfx5\n[place no1 no2 no3 ] -> [ 4 ] sfx4\n[place no1 no2 ] -> [ 3 ] sfx3\n[place no1 ] -> [ 2 ] sfx2\n[place ] -> [ 1 ] sfx1\n\n[action player no num] -> [ player action place ] again\n\n\n==============\nWINCONDITIONS\n==============\nsome 5\n\n=======\nLEVELS\n=======\n\n.........\n.........\n.........\n.........\n....p....\n.........\n.........\n.........\n.........\n\nmessage Congrats! If you liked this, check out the real Vertex Dispenser! :)\n\n11111111111\n12222222221\n12333333321\n12344444321\n12345554321\n12345654321\n12345554321\n12344444321\n12333333321\n12222222221\n11111111111\n",[0,4,3,2,4,1,4,4,1,4,2,4,3,4,2,4,1,1,4,0,4,0,3,0,4,1,4,2,4,1,4,2,4,2,4],"background:0,0,0,0,0,0,0,0,0,\n0,0,0,0,1 background:1,2 background:2,3 background player:3,0,0,\n0,0,0,1,2,3 background:4,1,0,0,\n0,0,0,2,1,2,0,0,0,\n0,0,0,1,2,1,2,0,0,\n0,0,0,0,1,0,0,0,0,\n0,0,0,0,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,"1627892333608.1028"] + "Voitex Rasteriser [Demake of Vertex Dispenser Puzzle Mode]", + ["title Voitex Rasteriser [Demake of Vertex Dispenser Puzzle Mode]\nauthor increpare\nhomepage www.increpare.com\n\n(inspired by https://store.steampowered.com/app/102400/Vertex_Dispenser/ )\n\nrun_rules_on_level_start\n\nbackground_color darkblue\ntext_color lightgreen\n\ncolor_palette 1\n\n========\nOBJECTS\n========\n\nBackground\nblack black\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\n\nPlayer\ngray\n00.00\n0...0\n.....\n0...0\n00.00\n\n\n\n1\npurple\n.....\n.....\n..0..\n.....\n.....\n\n\n\n2\nred\n.....\n.0...\n.....\n...0.\n.....\n\n\n3\npink\n.....\n.0...\n..0..\n...0.\n.....\n\n\n4\nyellow\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\n5\nlightgreen\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\n\n6\ngreen\n.....\n.000.\n.....\n.000.\n.....\n\n\n\nplace \ndarkgray\n\nno1 \ntransparent\n\nno2\ntransparent\n\nno3\ntransparent\n\nno4\ntransparent\n\nno5\ntransparent\n\nno6\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = Target\n\n\n\nnum = 1 or 2 or 3 or 4 or 5 or 6\n\nnonum = no1 or no2 or no3 or no4 or no5 or no6\n\n=======\nSOUNDS\n=======\n \n\nsfx1 55932906\nsfx2 4305306\nsfx3 6823106\nsfx4 83937501\nsfx5 65854702\n\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nnum\nno1\nno2\nno3\nno4\nno5\nno6\nplace\nPlayer, Wall\n\n======\nRULES\n======\n\n\n[nonum] -> []\n[ 1 | place no num ] -> [ 1 | place no1 ]\n[ 2 | place no num ] -> [ 2 | place no2 ]\n[ 3 | place no num ] -> [ 3 | place no3 ]\n[ 4 | place no num ] -> [ 4 | place no4 ]\n[ 5 | place no num ] -> [ 5 | place no5 ]\n[ 6 | place no num ] -> [ 6 | place no6 ]\n\n[place no1 no2 no3 no4 no5 ] -> [ 6 ]\n[place no1 no2 no3 no4 ] -> [ 5 ] sfx5\n[place no1 no2 no3 ] -> [ 4 ] sfx4\n[place no1 no2 ] -> [ 3 ] sfx3\n[place no1 ] -> [ 2 ] sfx2\n[place ] -> [ 1 ] sfx1\n\n[action player no num] -> [ player action place ] again\n\n\n==============\nWINCONDITIONS\n==============\nsome 5\n\n=======\nLEVELS\n=======\n\n.........\n.........\n.........\n.........\n....p....\n.........\n.........\n.........\n.........\n\nmessage Congrats! If you liked this, check out the real Vertex Dispenser! :)\n\n11111111111\n12222222221\n12333333321\n12344444321\n12345554321\n12345654321\n12345554321\n12344444321\n12333333321\n12222222221\n11111111111\n", [0, 4, 3, 2, 4, 1, 4, 4, 1, 4, 2, 4, 3, 4, 2, 4, 1, 1, 4, 0, 4, 0, 3, 0, 4, 1, 4, 2, 4, 1, 4, 2, 4, 2, 4], "background:0,0,0,0,0,0,0,0,0,\n0,0,0,0,1 background:1,2 background:2,3 background player:3,0,0,\n0,0,0,1,2,3 background:4,1,0,0,\n0,0,0,2,1,2,0,0,0,\n0,0,0,1,2,1,2,0,0,\n0,0,0,0,1,0,0,0,0,\n0,0,0,0,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, "1627892333608.1028"] ], [ - "Voitex Rasteriser 2 [2nd Demake of Vertex Dispenser Puzzle Mode]", - ["title Voitex Rasteriser 2 [2nd Demake of Vertex Dispenser Puzzle Mode]\nauthor increpare\nhomepage www.increpare.com\n\n(inspired by https://store.steampowered.com/app/102400/Vertex_Dispenser/ )\n\nrun_rules_on_level_start\n\nbackground_color darkblue\ntext_color red\n\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\n\nPlayer\ngray\n00.00\n0...0\n.....\n0...0\n00.00\n\n\nfixed\ndarkgreen\n\n\n1\npurple\n.....\n.....\n..0..\n.....\n.....\n\n\n\n2\nred\n.....\n..0..\n.....\n.....\n.....\n\n\n3\npink\n.....\n...0.\n.....\n.....\n.....\n\n\n4\nyellow\n.....\n.....\n...0.\n.....\n.....\n\n\n5\nlightgreen\n.....\n.....\n.....\n...0.\n.....\n\n\n6\ngreen\n.....\n.....\n.....\n..0..\n.....\n\n\n7\nblue\n.....\n.....\n.....\n.0...\n.....\n\n\n8\nlightblue\n.....\n.....\n.0...\n.....\n.....\n\n\n9\nwhite\n.....\n.0...\n.....\n.....\n.....\n\ntemp\nred\n\n\n\n\np1\npurple black darkgray\n.....\n.222.\n.202.\n.222.\n.....\n\n\n\np2\nred black darkgray\n.....\n.202.\n.212.\n.222.\n.....\n\n\np3\npink black darkgray\n.....\n.210.\n.212.\n.222.\n.....\n\n\np4\nyellow black darkgray\n.....\n.211.\n.210.\n.222.\n.....\n\n\np5\nlightgreen black darkgray\n.....\n.211.\n.211.\n.220.\n.....\n\n\np6\ngreen black darkgray\n.....\n.211.\n.211.\n.201.\n.....\n\n\np7\nblue black darkgray\n.....\n.211.\n.211.\n.011.\n.....\n\np8\nlightblue black darkgray\n.....\n.211.\n.011.\n.111.\n.....\n\n\np9\nwhite black darkgray\n.....\n.011.\n.111.\n.111.\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player \n\n\n\nnum = 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9\nplaced = p1 or p2 or p3 or p4 or p5 or p6 or p7 or p8 or p9\n\n\n=======\nSOUNDS\n=======\n \n\nsfx1 55932906\nsfx2 4305306\nsfx3 6823106\nsfx4 83937501\nsfx5 65854702\n\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n1\n2\n3\n4\n5\n6\n7\n8\n9\ntemp\nfixed\np1\np2\np3\np4\np5\np6\np7\np8\np9\nPlayer\n\n======\nRULES\n======\n\n[action player no 1 no fixed ] -> [ player action 1 p1 fixed temp]\n[action player no 2 no fixed ] -> [ player action 2 p2 fixed temp]\n[action player no 3 no fixed ] -> [ player action 3 p3 fixed temp]\n[action player no 4 no fixed ] -> [ player action 4 p4 fixed temp]\n[action player no 5 no fixed ] -> [ player action 5 p5 fixed temp]\n[action player no 6 no fixed ] -> [ player action 6 p6 fixed temp]\n[action player no 7 no fixed ] -> [ player action 7 p7 fixed temp]\n[action player no 8 no fixed ] -> [ player action 8 p8 fixed temp]\n[action player no 9 no fixed ] -> [ player action 9 p9 fixed temp]\n\n\nright [ action num temp | ] -> [ action num temp | > num ]\n+ [ perpendicular num | ] -> [ perpendicular num | num ]\n[orthogonal num]->[num]\n\n\nleft [ action num temp | ] -> [ action num temp | > num ]\n+ [ perpendicular num | ] -> [ perpendicular num | num ]\n[orthogonal num]->[num]\n\n\nup [ action num temp | ] -> [ action num temp | > num ]\n+ [ perpendicular num | ] -> [ perpendicular num | num ]\n[orthogonal num]->[num]\n\n\ndown [ action num temp | ] -> [ action num temp | > num ]\n+ [ perpendicular num | ] -> [ perpendicular num | num ]\n[orthogonal num]->[num]\n\n[temp]->[]\n\n==============\nWINCONDITIONS\n==============\nsome 9\n\n=======\nLEVELS\n=======\n\nmessage CAN YOU COUNT THE NINE COLUORS OF THE RAINBOW?\n\n...........\n...........\n...........\n...........\n...........\n.....p.....\n...........\n...........\n...........\n...........\n...........\n\nmessage TOP RAINBOW COLUOR COUNTING! If you liked this, check out the real Vertex Dispenser! :)\n\n",[0,4,3,3,4,2,2,1,4,0,4,0,0,0,4,2,4,1,4,1,4,0,4,3,4,0,4,3,4,4,3,2,4,4,3,4,2,4,4,2,4,4],"background:0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n0,1 background:1,1 2 background:2,2,2 background:3,0,0,0,0,0,0,\n3,1 2 4 background:4,1 2 3 4 background fixed p1:5,1 2 3 4 background fixed p2:6,1 2 3 background:7,1,0,0,0,0,0,\n2 3 background:8,6,1 2 3 4 background fixed p4:9,1 2 3 4 background fixed p3:10,1 2 3 background fixed p1:11,2,2,1,0,0,0,\n8,10,5,6,7,1 2 background fixed p2:12,1 2 background fixed p1:13,1,0,0,0,\n3 background:14,1 3 4 background:15,9,1 2 3 4 background:16,11,7,2,1,0,0,0,\n0,1 4 background:17,1 2 4 background fixed p1:18,6,1 2 3 background fixed p3 player:19,1 3 background:20,0,0,0,0,0,\n0,1,2,7,8,14,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n",1,"1627892374590.2808"] + "Voitex Rasteriser 2 [2nd Demake of Vertex Dispenser Puzzle Mode]", + ["title Voitex Rasteriser 2 [2nd Demake of Vertex Dispenser Puzzle Mode]\nauthor increpare\nhomepage www.increpare.com\n\n(inspired by https://store.steampowered.com/app/102400/Vertex_Dispenser/ )\n\nrun_rules_on_level_start\n\nbackground_color darkblue\ntext_color red\n\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\n\nPlayer\ngray\n00.00\n0...0\n.....\n0...0\n00.00\n\n\nfixed\ndarkgreen\n\n\n1\npurple\n.....\n.....\n..0..\n.....\n.....\n\n\n\n2\nred\n.....\n..0..\n.....\n.....\n.....\n\n\n3\npink\n.....\n...0.\n.....\n.....\n.....\n\n\n4\nyellow\n.....\n.....\n...0.\n.....\n.....\n\n\n5\nlightgreen\n.....\n.....\n.....\n...0.\n.....\n\n\n6\ngreen\n.....\n.....\n.....\n..0..\n.....\n\n\n7\nblue\n.....\n.....\n.....\n.0...\n.....\n\n\n8\nlightblue\n.....\n.....\n.0...\n.....\n.....\n\n\n9\nwhite\n.....\n.0...\n.....\n.....\n.....\n\ntemp\nred\n\n\n\n\np1\npurple black darkgray\n.....\n.222.\n.202.\n.222.\n.....\n\n\n\np2\nred black darkgray\n.....\n.202.\n.212.\n.222.\n.....\n\n\np3\npink black darkgray\n.....\n.210.\n.212.\n.222.\n.....\n\n\np4\nyellow black darkgray\n.....\n.211.\n.210.\n.222.\n.....\n\n\np5\nlightgreen black darkgray\n.....\n.211.\n.211.\n.220.\n.....\n\n\np6\ngreen black darkgray\n.....\n.211.\n.211.\n.201.\n.....\n\n\np7\nblue black darkgray\n.....\n.211.\n.211.\n.011.\n.....\n\np8\nlightblue black darkgray\n.....\n.211.\n.011.\n.111.\n.....\n\n\np9\nwhite black darkgray\n.....\n.011.\n.111.\n.111.\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player \n\n\n\nnum = 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9\nplaced = p1 or p2 or p3 or p4 or p5 or p6 or p7 or p8 or p9\n\n\n=======\nSOUNDS\n=======\n \n\nsfx1 55932906\nsfx2 4305306\nsfx3 6823106\nsfx4 83937501\nsfx5 65854702\n\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n1\n2\n3\n4\n5\n6\n7\n8\n9\ntemp\nfixed\np1\np2\np3\np4\np5\np6\np7\np8\np9\nPlayer\n\n======\nRULES\n======\n\n[action player no 1 no fixed ] -> [ player action 1 p1 fixed temp]\n[action player no 2 no fixed ] -> [ player action 2 p2 fixed temp]\n[action player no 3 no fixed ] -> [ player action 3 p3 fixed temp]\n[action player no 4 no fixed ] -> [ player action 4 p4 fixed temp]\n[action player no 5 no fixed ] -> [ player action 5 p5 fixed temp]\n[action player no 6 no fixed ] -> [ player action 6 p6 fixed temp]\n[action player no 7 no fixed ] -> [ player action 7 p7 fixed temp]\n[action player no 8 no fixed ] -> [ player action 8 p8 fixed temp]\n[action player no 9 no fixed ] -> [ player action 9 p9 fixed temp]\n\n\nright [ action num temp | ] -> [ action num temp | > num ]\n+ [ perpendicular num | ] -> [ perpendicular num | num ]\n[orthogonal num]->[num]\n\n\nleft [ action num temp | ] -> [ action num temp | > num ]\n+ [ perpendicular num | ] -> [ perpendicular num | num ]\n[orthogonal num]->[num]\n\n\nup [ action num temp | ] -> [ action num temp | > num ]\n+ [ perpendicular num | ] -> [ perpendicular num | num ]\n[orthogonal num]->[num]\n\n\ndown [ action num temp | ] -> [ action num temp | > num ]\n+ [ perpendicular num | ] -> [ perpendicular num | num ]\n[orthogonal num]->[num]\n\n[temp]->[]\n\n==============\nWINCONDITIONS\n==============\nsome 9\n\n=======\nLEVELS\n=======\n\nmessage CAN YOU COUNT THE NINE COLUORS OF THE RAINBOW?\n\n...........\n...........\n...........\n...........\n...........\n.....p.....\n...........\n...........\n...........\n...........\n...........\n\nmessage TOP RAINBOW COLUOR COUNTING! If you liked this, check out the real Vertex Dispenser! :)\n\n", [0, 4, 3, 3, 4, 2, 2, 1, 4, 0, 4, 0, 0, 0, 4, 2, 4, 1, 4, 1, 4, 0, 4, 3, 4, 0, 4, 3, 4, 4, 3, 2, 4, 4, 3, 4, 2, 4, 4, 2, 4, 4], "background:0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n0,1 background:1,1 2 background:2,2,2 background:3,0,0,0,0,0,0,\n3,1 2 4 background:4,1 2 3 4 background fixed p1:5,1 2 3 4 background fixed p2:6,1 2 3 background:7,1,0,0,0,0,0,\n2 3 background:8,6,1 2 3 4 background fixed p4:9,1 2 3 4 background fixed p3:10,1 2 3 background fixed p1:11,2,2,1,0,0,0,\n8,10,5,6,7,1 2 background fixed p2:12,1 2 background fixed p1:13,1,0,0,0,\n3 background:14,1 3 4 background:15,9,1 2 3 4 background:16,11,7,2,1,0,0,0,\n0,1 4 background:17,1 2 4 background fixed p1:18,6,1 2 3 background fixed p3 player:19,1 3 background:20,0,0,0,0,0,\n0,1,2,7,8,14,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n", 1, "1627892374590.2808"] ], [ - "All Green and Blue on Yellow", - ["title All Green and Blue on Yellow\nauthor increpare\nhomepage www.increpare.com\nnoaction\n\ncolor_palette 4\n\nbackground_color darkbrown\ntext_color orange\n\n\n(\nmany levels made with the puzzlescript level generators \n\nhttps://dekeyser.ch/puzzlescriptmis/\n\nor\n\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\n========\nOBJECTS\n========\n\nBackground\ngray\n\n\nTarget\nyellow\n.....\n.000.\n.000.\n.000.\n.....\n\nWall\ndarkBROWN \n\nPlayer\nred darkred\n..0..\n..1..\n01010\n..1..\n..0..\n\nCrateH \nblue Yellow transparent darkblue\n00000\n20002\n22322\n20002\n00000\n\n\n\nCrateV \ntransparent orange green darkgreen\n20002\n22022\n22322\n22022\n20002\n\n=======\nLEGEND\n=======\n\ncrate = crateh or cratev\n\n\n. = Background\n# = Wall\nP = Player\nh = crateh\nv = cratev\na = crateh and target\nm = cratev and target\nl = player and target\nO = Target\nobstacle = wall or player or crateh or cratev\n@ = cratev and target\n\n* = cratev\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\nhorizontal [ > Player | Cratev ] -> [ > Player | > Cratev ]\nvertical [ > Player | Crateh ] -> [ > Player | > Crateh ]\n\n[> crate | obstacle ] -> cancel\n\nhorizontal [ > Player | Crateh | no obstacle ] -> [ | Crateh | player ]\nvertical [ > Player | Cratev | no obstacle ] -> [ | Cratev | player ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 5\n(ok starting level?)\n######\n#.o###\n#h.###\n#...p#\n#.h..#\n#o.###\n######\n\n\nmessage Level 2 of 5\n(simple but ok!)\n######\n#....#\n#.ho.#\n#pva.#\n#.om.#\n#....#\n######\n\n\nmessage Level 3 of 5\n(pleasing - nicht so schwierig!)\n..m.\nom..\npava\n....\n\n\nmessage Level 4 of 5\n(middle-hard, but decent!)\n.#..\n.m..\n..va\n#.m.\np..o\n\n\nmessage Level 5 of 5\n\n(hard!)\n#.a.\nohv.\np.m.\naoh.\n..o.\n\n(\n\n\n######\n#..p.#\n#.va.#\n#.om.#\n#....#\n######\n\n)\n\n\n(\n\n==========\nGENERATION\n==========\n\nchoose 8 option 0.6 [Wall] -> []\n+[]->[]\n\nchoose 8 option 0.6 [No Obstacle] -> [Wall]\n+[]->[]\n\nchoose 2 option 0.5 [ no wall no crate no player ] [no wall no player no target ] -> [ crateh ] [ target]\n+ option 0.5 [ no wall no crate no player ] [no wall no player no target ] -> [ cratev ] [ target]\n\n\n\n\n==========\nGENERATION\n==========\n\n= randomly remove or add 20 walls with prob. 0.4\nchoose 4 option 0.5 [crate] -> [crateh]\n+ option 0.5 [crate]->[cratev]\n+ option 0.1 [ crate | no crate no wall no player] -> [ | crate] \n+ option 0.05 [ no crate no wall no player ] [ no target no wall ]-> [ crateh ] [ target]\n+ option 0.05 [ no crate no wall no player ] [no target no wall ]-> [ cratev] [target]\n+ option 0.05 [ player ] [ no player no crate no wall]->[] [player]\n+ option 0.1 [ crate ] [ target ]->[ no crate] [ ]\n\n\nchoose 2 option 0.5 [ wall]->[]\n+ option 0.6 []->[]\n+ option 0.3 [no wall no player ] -> [wall]\n\n\n\n)\n",[2,3,0,1,0,0,3,3,2,2,1,2,1,0,3,0,1,2,1,0,3,0,3,0,2,2,1,0],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,background cratev:2,2,\n1,0,0,background crateh:3,background player:4,1,\nbackground target:5,1,0,0,1,5,\n5,background crateh target:6,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n",3,"1627892394944.1912"] + "All Green and Blue on Yellow", + ["title All Green and Blue on Yellow\nauthor increpare\nhomepage www.increpare.com\nnoaction\n\ncolor_palette 4\n\nbackground_color darkbrown\ntext_color orange\n\n\n(\nmany levels made with the puzzlescript level generators \n\nhttps://dekeyser.ch/puzzlescriptmis/\n\nor\n\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\n========\nOBJECTS\n========\n\nBackground\ngray\n\n\nTarget\nyellow\n.....\n.000.\n.000.\n.000.\n.....\n\nWall\ndarkBROWN \n\nPlayer\nred darkred\n..0..\n..1..\n01010\n..1..\n..0..\n\nCrateH \nblue Yellow transparent darkblue\n00000\n20002\n22322\n20002\n00000\n\n\n\nCrateV \ntransparent orange green darkgreen\n20002\n22022\n22322\n22022\n20002\n\n=======\nLEGEND\n=======\n\ncrate = crateh or cratev\n\n\n. = Background\n# = Wall\nP = Player\nh = crateh\nv = cratev\na = crateh and target\nm = cratev and target\nl = player and target\nO = Target\nobstacle = wall or player or crateh or cratev\n@ = cratev and target\n\n* = cratev\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\nhorizontal [ > Player | Cratev ] -> [ > Player | > Cratev ]\nvertical [ > Player | Crateh ] -> [ > Player | > Crateh ]\n\n[> crate | obstacle ] -> cancel\n\nhorizontal [ > Player | Crateh | no obstacle ] -> [ | Crateh | player ]\nvertical [ > Player | Cratev | no obstacle ] -> [ | Cratev | player ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 5\n(ok starting level?)\n######\n#.o###\n#h.###\n#...p#\n#.h..#\n#o.###\n######\n\n\nmessage Level 2 of 5\n(simple but ok!)\n######\n#....#\n#.ho.#\n#pva.#\n#.om.#\n#....#\n######\n\n\nmessage Level 3 of 5\n(pleasing - nicht so schwierig!)\n..m.\nom..\npava\n....\n\n\nmessage Level 4 of 5\n(middle-hard, but decent!)\n.#..\n.m..\n..va\n#.m.\np..o\n\n\nmessage Level 5 of 5\n\n(hard!)\n#.a.\nohv.\np.m.\naoh.\n..o.\n\n(\n\n\n######\n#..p.#\n#.va.#\n#.om.#\n#....#\n######\n\n)\n\n\n(\n\n==========\nGENERATION\n==========\n\nchoose 8 option 0.6 [Wall] -> []\n+[]->[]\n\nchoose 8 option 0.6 [No Obstacle] -> [Wall]\n+[]->[]\n\nchoose 2 option 0.5 [ no wall no crate no player ] [no wall no player no target ] -> [ crateh ] [ target]\n+ option 0.5 [ no wall no crate no player ] [no wall no player no target ] -> [ cratev ] [ target]\n\n\n\n\n==========\nGENERATION\n==========\n\n= randomly remove or add 20 walls with prob. 0.4\nchoose 4 option 0.5 [crate] -> [crateh]\n+ option 0.5 [crate]->[cratev]\n+ option 0.1 [ crate | no crate no wall no player] -> [ | crate] \n+ option 0.05 [ no crate no wall no player ] [ no target no wall ]-> [ crateh ] [ target]\n+ option 0.05 [ no crate no wall no player ] [no target no wall ]-> [ cratev] [target]\n+ option 0.05 [ player ] [ no player no crate no wall]->[] [player]\n+ option 0.1 [ crate ] [ target ]->[ no crate] [ ]\n\n\nchoose 2 option 0.5 [ wall]->[]\n+ option 0.6 []->[]\n+ option 0.3 [no wall no player ] -> [wall]\n\n\n\n)\n", [2, 3, 0, 1, 0, 0, 3, 3, 2, 2, 1, 2, 1, 0, 3, 0, 1, 2, 1, 0, 3, 0, 3, 0, 2, 2, 1, 0], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,background cratev:2,2,\n1,0,0,background crateh:3,background player:4,1,\nbackground target:5,1,0,0,1,5,\n5,background crateh target:6,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n", 3, "1627892394944.1912"] ], [ - "ALL GREEN TO BLUE", - ["title ALL GREEN TO BLUE\nauthor increpare\nhomepage www.increpare.com\nbackground_color black\n\ncolor_palette 5\n\n(\nmany levels made with the puzzlescript level generators \n\nhttps://dekeyser.ch/puzzlescriptmis/\n\nor\n\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\n\n========\nOBJECTS\n========\n\nBackground\ngray\n\n\nWall\nBROWN \n\nbtile\nblack\n\nPlayer\npink\n.000.\n.0.0.\n00000\n.000.\n.0.0.\n\nCrateH \nblue Yellow transparent darkblue\n00000\n20002\n22322\n20002\n00000\n\n\n\nCrateV \ntransparent orange green darkgreen\n20002\n22022\n22322\n22022\n20002\n\n=======\nLEGEND\n=======\n\ncrate = crateh or cratev\n\n\n. = Background\n# = Wall\nP = Player\nh = crateh\nv = cratev\nobstacle = wall or player or crateh or cratev\n* = cratev\nO = background\n@ = cratev\n, = btile\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx1 58154305\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nbtile\n\n======\nRULES\n======\n\nhorizontal [ > Player | Cratev ] -> [ > Player | > Cratev ]\nvertical [ > Player | Crateh ] -> [ > Player | > Crateh ]\n\n[> crate | obstacle ] -> cancel\n\nhorizontal [ > Player | Crateh | no obstacle ] -> [ | Cratev | player ] sfx1\nvertical [ > Player | Cratev | no obstacle ] -> [ | Crateh | player ] sfx1\n\n==============\nWINCONDITIONS\n==============\n\nno cratev\n\n=======\nLEVELS\n=======\n\n\n(GUT)\n\n(ok 1. oder 2. Level)\n\nmessage Chapter 1/3 : Twistoban, Stage 1/3\n\n######\n#....#\n#.#p.#\n#.vv.#\n#..h.#\n#....#\n######\n\n\nmessage Chapter 1/3 : Twistoban, Stage 2/3\n\n(tricky!)\n\n,,,,,,#####\n,,,,,,#...#\n,,,,,,#.#.#\n#######.#v#\n#.p.v.v.v.#\n#.#.#.#.###\n#.......#,,\n#########,,\n\nmessage Chapter 1/3 : Twistoban, Stage 3/3\n\n(not bad 4/6)\n#####,\n#...##\n#.vp.#\n##vv.#\n,#.v.#\n,###.#\n,,,###\n\n\n\nmessage Chapter 2/3 : Gates, Stage 1/3\n\n\n(Gates 1)\n.h..\n.h..\n.h..\n.h..\nvh..\nph..\nvh..\n.h..\n.h..\n.h..\n.h..\n\nmessage Chapter 2/3 : Gates, Stage 2/3\n\n(gates 2)\n(hard, non-trivial)\n.h.\n.h.\n.h.\n.h.\nvh.\nph.\nvh.\n.h.\n.h.\n.h.\n.h.\n\n\n\n\nmessage Chapter 2/3 : Gates, Stage 3/3\n\n(fun to work through)\n.h.h.h.\n.h.h.h.\n.h.h.h.\n.h.h.h.\nph.h.v.\n.h.h.h.\n.h.h.h.\n.h.h.h.\n.h.h.h.\n\n\n\n\n\nmessage Chapter 3/3 : Claustrophobia, Stage 1/4\n\n\n(tells an ok story, 4/6)\n...\n.hv\nhh.\n..v\nph.\n\nmessage Chapter 3/3 : Claustrophobia, Stage 2/4\n\n(nice Stage! 5/6)\n.h.\nvh.\n.hv\nph.\n\nmessage Chapter 3/3 : Claustrophobia, Stage 3/4\n\n(hard / satisfying to solve 4/6)\n....h\nvhhv.\n.hpvh\n.h...\n\nmessage Chapter 3/3 : Claustrophobia, Stage 4/4\n\n(einfach aber spaß? 3/6)\n\n.h.\npv.\nvvv\n...\n\nmessage Epilogue\n\n.............\n.h.h.hvh.h.h.\n.h.h.h.h.h.h.\n.hvh.h.h.h.h.\n...h.h.h.h.h.\n.hvh.hvh.hvh.\n......p......\n.h.h.h.h.hvh.\n.h.h.h.h.h.h.\n.h.h.h.h.h.h.\n.hvhvh.h.h.h.\n.............\n\n\n",[0,3,0,1,2,3,3,0,3,2],"background:0,0,0,0,\nbackground crateh:1,0,background cratev:2,0,\n0,0,0,1,\n1,2,0,1,\n1,1,1,1,\n1,1,0,0,\n0,0,0,0,\n0,0,0,0,\n0,0,0,0,\n1,background player:3,0,0,\n0,0,0,0,\n",7,"1627892412039.6033"] + "ALL GREEN TO BLUE", + ["title ALL GREEN TO BLUE\nauthor increpare\nhomepage www.increpare.com\nbackground_color black\n\ncolor_palette 5\n\n(\nmany levels made with the puzzlescript level generators \n\nhttps://dekeyser.ch/puzzlescriptmis/\n\nor\n\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\n\n========\nOBJECTS\n========\n\nBackground\ngray\n\n\nWall\nBROWN \n\nbtile\nblack\n\nPlayer\npink\n.000.\n.0.0.\n00000\n.000.\n.0.0.\n\nCrateH \nblue Yellow transparent darkblue\n00000\n20002\n22322\n20002\n00000\n\n\n\nCrateV \ntransparent orange green darkgreen\n20002\n22022\n22322\n22022\n20002\n\n=======\nLEGEND\n=======\n\ncrate = crateh or cratev\n\n\n. = Background\n# = Wall\nP = Player\nh = crateh\nv = cratev\nobstacle = wall or player or crateh or cratev\n* = cratev\nO = background\n@ = cratev\n, = btile\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx1 58154305\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nbtile\n\n======\nRULES\n======\n\nhorizontal [ > Player | Cratev ] -> [ > Player | > Cratev ]\nvertical [ > Player | Crateh ] -> [ > Player | > Crateh ]\n\n[> crate | obstacle ] -> cancel\n\nhorizontal [ > Player | Crateh | no obstacle ] -> [ | Cratev | player ] sfx1\nvertical [ > Player | Cratev | no obstacle ] -> [ | Crateh | player ] sfx1\n\n==============\nWINCONDITIONS\n==============\n\nno cratev\n\n=======\nLEVELS\n=======\n\n\n(GUT)\n\n(ok 1. oder 2. Level)\n\nmessage Chapter 1/3 : Twistoban, Stage 1/3\n\n######\n#....#\n#.#p.#\n#.vv.#\n#..h.#\n#....#\n######\n\n\nmessage Chapter 1/3 : Twistoban, Stage 2/3\n\n(tricky!)\n\n,,,,,,#####\n,,,,,,#...#\n,,,,,,#.#.#\n#######.#v#\n#.p.v.v.v.#\n#.#.#.#.###\n#.......#,,\n#########,,\n\nmessage Chapter 1/3 : Twistoban, Stage 3/3\n\n(not bad 4/6)\n#####,\n#...##\n#.vp.#\n##vv.#\n,#.v.#\n,###.#\n,,,###\n\n\n\nmessage Chapter 2/3 : Gates, Stage 1/3\n\n\n(Gates 1)\n.h..\n.h..\n.h..\n.h..\nvh..\nph..\nvh..\n.h..\n.h..\n.h..\n.h..\n\nmessage Chapter 2/3 : Gates, Stage 2/3\n\n(gates 2)\n(hard, non-trivial)\n.h.\n.h.\n.h.\n.h.\nvh.\nph.\nvh.\n.h.\n.h.\n.h.\n.h.\n\n\n\n\nmessage Chapter 2/3 : Gates, Stage 3/3\n\n(fun to work through)\n.h.h.h.\n.h.h.h.\n.h.h.h.\n.h.h.h.\nph.h.v.\n.h.h.h.\n.h.h.h.\n.h.h.h.\n.h.h.h.\n\n\n\n\n\nmessage Chapter 3/3 : Claustrophobia, Stage 1/4\n\n\n(tells an ok story, 4/6)\n...\n.hv\nhh.\n..v\nph.\n\nmessage Chapter 3/3 : Claustrophobia, Stage 2/4\n\n(nice Stage! 5/6)\n.h.\nvh.\n.hv\nph.\n\nmessage Chapter 3/3 : Claustrophobia, Stage 3/4\n\n(hard / satisfying to solve 4/6)\n....h\nvhhv.\n.hpvh\n.h...\n\nmessage Chapter 3/3 : Claustrophobia, Stage 4/4\n\n(einfach aber spaß? 3/6)\n\n.h.\npv.\nvvv\n...\n\nmessage Epilogue\n\n.............\n.h.h.hvh.h.h.\n.h.h.h.h.h.h.\n.hvh.h.h.h.h.\n...h.h.h.h.h.\n.hvh.hvh.hvh.\n......p......\n.h.h.h.h.hvh.\n.h.h.h.h.h.h.\n.h.h.h.h.h.h.\n.hvhvh.h.h.h.\n.............\n\n\n", [0, 3, 0, 1, 2, 3, 3, 0, 3, 2], "background:0,0,0,0,\nbackground crateh:1,0,background cratev:2,0,\n0,0,0,1,\n1,2,0,1,\n1,1,1,1,\n1,1,0,0,\n0,0,0,0,\n0,0,0,0,\n0,0,0,0,\n1,background player:3,0,0,\n0,0,0,0,\n", 7, "1627892412039.6033"] ], [ - "5-junctions-maker / 5kreuzungenmacher", - ["title 5-junctions-maker / 5kreuzungenmacher\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nnoaction\n\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\n\na_up\nblack green\n..1..\n.111.\n11111\n..1..\n..1..\n\n\n\na_down\nblack blue\n..1..\n..1..\n11111\n.111.\n..1..\n\n\na_left\nblack pink\n..1..\n.11..\n11111\n.11..\n..1..\n\na_right\nblack red\n..1..\n..11.\n11111\n..11.\n..1..\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkblue\n00000\n0...0\n0...0\n0...0\n00000\n\nPlayer\nyellow\n00.00\n0...0\n.....\n0...0\n00.00\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\nquelle \nwhite \n00000\n00000\n00000\n00000\n00000\n\nquelle_kreuzung \nwhite\n.....\n.....\n..0..\n.....\n.....\n\nquelle_verbindung_n\nlightgray\n..0..\n..0..\n.....\n.....\n.....\n\nquelle_verbindung_s\nlightgray\n.....\n.....\n.....\n..0..\n..0..\n\nquelle_verbindung_e\nlightgray\n.....\n.....\n...00\n.....\n.....\n\nquelle_verbindung_w\nlightgray\n.....\n.....\n00...\n.....\n.....\n\ncounter 1\ndarkblue darkblue\n..0..\n..0..\n00100\n..0..\n..0..\n\ncounterfill\ngray lightgray\n..0..\n..0..\n00100\n..0..\n..0..\n\ndeckle\nblack\n\ntemp t\ngreen\n\n\n\ne_0_0 g \n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_1_0 h \n#8a8a8a white\n..0..\n..0..\n00100\n.....\n.....\n\ne_2_0 j \n#8a8a8a white\n..0..\n..0..\n00100\n.....\n.....\n\ne_3_0 k\n#8a8a8a white\n...0.\n...0.\n00010\n.....\n.....\n\ne_4_0 ?\n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_0_1 b\n#8a8a8a white\n..0..\n..0..\n001..\n..0..\n..0..\n\ne_1_1 n\nwhite\n0..0.\n0..0.\n0000.\n...0.\n0000.\n\ne_2_1 m \nwhite\n0000.\n0..0.\n0..0.\n0..0.\n0000.\n\ne_3_1 ,\nwhite\n0..0.\n0..0.\n0..0.\n0..0.\n0000.\n\ne_4_1 2\n#8a8a8a white\n..0..\n..0..\n..100\n..0..\n..0..\n\ne_0_2 3\n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_1_2 4\n#8a8a8a\n.....\n.....\n00000\n.....\n.....\n\ne_2_2 5\n#8a8a8a\n.....\n.....\n00000\n.....\n.....\n\ne_3_2 6\n#8a8a8a\n.....\n.....\n00000\n.....\n.....\n\ne_4_2 7\n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_0_3 8\n#8a8a8a\n..0..\n..0..\n..0..\n..0..\n..0..\n\ne_1_3 9\nwhite\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n00000\n\ne_2_3 0\nwhite\n.000.\n..0..\n..0..\n..0..\n.000.\n\ne_3_3 d\nwhite\n.00..\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n\ne_4_3 f\n#8a8a8a\n..0..\n..0..\n..0..\n..0..\n..0..\n\ne_0_4 w\n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_1_4 e\n#8a8a8a white\n.....\n.....\n00100\n..0..\n..0..\n\ne_2_4 y\n#8a8a8a white\n.....\n.....\n00100\n..0..\n..0..\n\ne_3_4 u\n#8a8a8a white\n.....\n.....\n00100\n..0..\n..0..\n\ne_4_4 i\n#8a8a8a white\n..0..\n..0..\n001..\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background and deckle\n# = Wall and deckle\n* = Crate and deckle\n@ = Crate and Target and deckle\nO = Target and deckle\na = a_up or a_down or a_left or a_right\ns = player and a_up and deckle\np = player and a_down and deckle\nq = player and a_left and deckle\nr = player and a_right and deckle\n\nz = a_up and deckle\nx = a_down and deckle\nc = a_left and deckle\nv = a_right and deckle\n\nl = quelle and deckle\nquelle_verbindung = quelle_verbindung_n or quelle_verbindung_s or quelle_verbindung_e or quelle_verbindung_w\n\n\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\na\ndeckle\nPlayer, Wall, Crate\nquelle\nquelle_verbindung_n\nquelle_verbindung_s\nquelle_verbindung_e\nquelle_verbindung_w\nquelle_kreuzung\ncounter\ncounterfill\ntemp\ng,h,j,k,e_4_0,b,n,m,e_3_1,2,3,4,5,6,7,8,9,0,d,f,w,e,t,y,u,i\n\n======\nRULES\n======\n\n[ > player | wall ] -> cancel\n[ > player | quelle ] -> cancel\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate up [ no quelle no wall | player ] -> [ a_up | player ]\nlate down [ no quelle no wall | player ] -> [ a_down | player ]\nlate left [ no quelle no wall | player ] -> [ a_left | player ]\nlate right [ no quelle no wall | player ] -> [ a_right | player ]\n\nlate [ quelle_verbindung ] -> []\nlate [ quelle_kreuzung ] -> []\n\nlate [ player ] -> [ player no a]\n\n\nlate up [ a_up | no wall no quelle no a_down ] -> [ a_up quelle_verbindung_n | quelle_verbindung_s]\nlate down [ a_down | no wall no quelle no a_up ] -> [ a_down quelle_verbindung_s | quelle_verbindung_n]\nlate left [ a_left | no wall no quelle no a_right ] -> [ a_left quelle_verbindung_w | quelle_verbindung_e]\nlate right [ a_right | no wall no quelle no a_left ] -> [ a_right quelle_verbindung_e | quelle_verbindung_w]\n\n\n\nlate up [ quelle | no a_down no wall ] -> [ quelle | quelle_kreuzung quelle_verbindung_s ]\nlate down [ quelle | no a_up no wall ] -> [ quelle | quelle_kreuzung quelle_verbindung_n ]\nlate left [ quelle | no a_right no wall ] -> [ quelle | quelle_kreuzung quelle_verbindung_e ]\nlate right [ quelle | no a_left no wall ] -> [ quelle | quelle_kreuzung quelle_verbindung_w ]\n\nlate left [ a_left quelle_kreuzung quelle_verbindung_w | no quelle_kreuzung quelle_verbindung_e ] -> [ a_left quelle_kreuzung quelle_verbindung_w | quelle_kreuzung quelle_verbindung_e ] \n+ late right [ a_right quelle_kreuzung quelle_verbindung_e | no quelle_kreuzung quelle_verbindung_w ] -> [ a_right quelle_kreuzung quelle_verbindung_e | quelle_kreuzung quelle_verbindung_w ] \n+ late up [ a_up quelle_kreuzung quelle_verbindung_n | no quelle_kreuzung quelle_verbindung_s ] -> [ a_up quelle_kreuzung quelle_verbindung_n | quelle_kreuzung quelle_verbindung_s ] \n+ late down [ a_down quelle_kreuzung quelle_verbindung_s | no quelle_kreuzung quelle_verbindung_n ] -> [ a_down quelle_kreuzung quelle_verbindung_s | quelle_kreuzung quelle_verbindung_n ] \n\nlate [ quelle_verbindung no quelle_kreuzung ] -> []\n\nlate left [ quelle_verbindung_w | no quelle_verbindung_e no quelle ] -> [ | ]\nlate right [ quelle_verbindung_e | no quelle_verbindung_w no quelle ] -> [ | ]\nlate up [ quelle_verbindung_n | no quelle_verbindung_s no quelle ] -> [ | ]\nlate down [ quelle_verbindung_s | no quelle_verbindung_n no quelle ] -> [ | ]\n\n\nlate [counterfill] -> []\n\nlate [ quelle_kreuzung quelle_verbindung_n quelle_verbindung_s quelle_verbindung_e quelle_verbindung_w no temp ] [ counter no counterfill ] -> [ quelle_kreuzung quelle_verbindung_n quelle_verbindung_s quelle_verbindung_e quelle_verbindung_w temp ] [ counter counterfill ]\n\nlate [ temp ] -> []\n\n==============\nWINCONDITIONS\n==============\n\nall counter on counterfill\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of/von 1\n\n....#################\n....#xxxxxxxxxzxcvzx#\n#####xxxxxxxxxzxcvzx#\n#...#xxxxxxxxzxxvzxx#\n#.1.#xxxxzxxxxvxxcvx#\n#...#xxvclvcxvxxxccx#\n#.1.#xxxxxxxxvzxcvzx#\n#...#xxxxzxxxzxzxzxx#\n#.1.#xxxxxxxxzxzxzxx#\n#...#xxxxxxxxzxxxzxx#\n#.1.#xxxxzcvxxxsccvx#\n#...#xxvclvcxvclvccx#\n#.1.#xxxxxvzxxxxcvzx#\n#...#xxxxzzxxxxzvzxx#\n#####xxxxxcvxxxzxcvx#\n....#xxxxxcvxxxzxcvx#\n....#################\n\n\nmessage Very smoothly is encarring thusly ensured / Reibungslos ist ein Verkehssystem so entwickelt\n\nghjk?\nbnm,2\n34567\nb90d2\nweyui\n\n\n\n\n\n",[2,1,1,1,1,1,1,3,3,0,0,0,0,0,1,1,1,0,1,1,1,2,2,2,2,2,2,2,1,0,0,0,0,0,0,3,3,1,3,0,1,2,2,2,1,0,0,3,3,2,2,2],"background deckle:0,0,background deckle wall:1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,\n0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,background counter counterfill:2,0,background counter:3,0,\n3,0,3,0,3,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,\n0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,a_down background deckle:4,4,4,4,a_right background deckle:5,5,5,5,5,5,5,4,4,4,4,1,1,4,4,\n4,4,a_right background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_s:6,a_up background deckle quelle_kreuzung quelle_verbindung_n quelle_verbindung_s:7,7,7,7,7,a_up background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_n:8,a_up background deckle:9,4,4,4,1,1,4,4,4,4,a_right background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_w:10,5,\n5,5,a_left background deckle:11,11,a_left background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_w:12,9,4,4,4,1,1,4,4,4,a_down background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_s:13,a_down background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_n quelle_verbindung_s quelle_verbindung_w:14,a_down background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_n quelle_verbindung_s:15,a_down background deckle quelle_kreuzung quelle_verbindung_n quelle_verbindung_s:16,background deckle player quelle_kreuzung quelle_verbindung_n:17,9,11,\n12,4,4,4,4,1,1,4,4,4,a_left background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_s quelle_verbindung_w:18,background deckle quelle:19,a_left background deckle quelle_kreuzung quelle_verbindung_n quelle_verbindung_w:20,11,11,4,6,19,a_down background deckle quelle_kreuzung quelle_verbindung_n:21,9,4,\n4,1,1,4,4,4,a_left background deckle quelle_kreuzung quelle_verbindung_s quelle_verbindung_w:22,a_up background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_n quelle_verbindung_w:23,9,5,5,5,a_right background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_s quelle_verbindung_w:24,a_up background deckle quelle_kreuzung quelle_verbindung_n quelle_verbindung_w:25,5,9,11,11,1,1,4,\n4,4,11,22,7,7,7,7,23,9,9,4,5,5,1,1,4,4,4,4,11,\n11,11,11,11,12,9,4,4,4,4,1,1,4,4,9,4,5,5,9,9,4,\n12,9,4,4,4,4,1,1,9,9,4,5,4,9,4,4,4,18,8,4,4,\n4,4,1,1,4,4,4,4,4,4,9,9,4,22,19,21,9,9,9,1,1,\n11,11,5,4,4,11,4,4,4,11,a_right background deckle quelle_kreuzung quelle_verbindung_w:26,11,5,4,4,1,1,5,5,9,11,\n11,5,9,9,9,11,11,5,9,11,11,1,1,9,9,4,5,11,9,4,4,\n4,5,11,9,4,5,5,1,1,4,4,4,4,4,4,4,4,4,4,4,4,\n4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n",1,"1627892456324.3245"] + "5-junctions-maker / 5kreuzungenmacher", + ["title 5-junctions-maker / 5kreuzungenmacher\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nnoaction\n\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\n\na_up\nblack green\n..1..\n.111.\n11111\n..1..\n..1..\n\n\n\na_down\nblack blue\n..1..\n..1..\n11111\n.111.\n..1..\n\n\na_left\nblack pink\n..1..\n.11..\n11111\n.11..\n..1..\n\na_right\nblack red\n..1..\n..11.\n11111\n..11.\n..1..\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkblue\n00000\n0...0\n0...0\n0...0\n00000\n\nPlayer\nyellow\n00.00\n0...0\n.....\n0...0\n00.00\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\nquelle \nwhite \n00000\n00000\n00000\n00000\n00000\n\nquelle_kreuzung \nwhite\n.....\n.....\n..0..\n.....\n.....\n\nquelle_verbindung_n\nlightgray\n..0..\n..0..\n.....\n.....\n.....\n\nquelle_verbindung_s\nlightgray\n.....\n.....\n.....\n..0..\n..0..\n\nquelle_verbindung_e\nlightgray\n.....\n.....\n...00\n.....\n.....\n\nquelle_verbindung_w\nlightgray\n.....\n.....\n00...\n.....\n.....\n\ncounter 1\ndarkblue darkblue\n..0..\n..0..\n00100\n..0..\n..0..\n\ncounterfill\ngray lightgray\n..0..\n..0..\n00100\n..0..\n..0..\n\ndeckle\nblack\n\ntemp t\ngreen\n\n\n\ne_0_0 g \n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_1_0 h \n#8a8a8a white\n..0..\n..0..\n00100\n.....\n.....\n\ne_2_0 j \n#8a8a8a white\n..0..\n..0..\n00100\n.....\n.....\n\ne_3_0 k\n#8a8a8a white\n...0.\n...0.\n00010\n.....\n.....\n\ne_4_0 ?\n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_0_1 b\n#8a8a8a white\n..0..\n..0..\n001..\n..0..\n..0..\n\ne_1_1 n\nwhite\n0..0.\n0..0.\n0000.\n...0.\n0000.\n\ne_2_1 m \nwhite\n0000.\n0..0.\n0..0.\n0..0.\n0000.\n\ne_3_1 ,\nwhite\n0..0.\n0..0.\n0..0.\n0..0.\n0000.\n\ne_4_1 2\n#8a8a8a white\n..0..\n..0..\n..100\n..0..\n..0..\n\ne_0_2 3\n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_1_2 4\n#8a8a8a\n.....\n.....\n00000\n.....\n.....\n\ne_2_2 5\n#8a8a8a\n.....\n.....\n00000\n.....\n.....\n\ne_3_2 6\n#8a8a8a\n.....\n.....\n00000\n.....\n.....\n\ne_4_2 7\n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_0_3 8\n#8a8a8a\n..0..\n..0..\n..0..\n..0..\n..0..\n\ne_1_3 9\nwhite\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n00000\n\ne_2_3 0\nwhite\n.000.\n..0..\n..0..\n..0..\n.000.\n\ne_3_3 d\nwhite\n.00..\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n\ne_4_3 f\n#8a8a8a\n..0..\n..0..\n..0..\n..0..\n..0..\n\ne_0_4 w\n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_1_4 e\n#8a8a8a white\n.....\n.....\n00100\n..0..\n..0..\n\ne_2_4 y\n#8a8a8a white\n.....\n.....\n00100\n..0..\n..0..\n\ne_3_4 u\n#8a8a8a white\n.....\n.....\n00100\n..0..\n..0..\n\ne_4_4 i\n#8a8a8a white\n..0..\n..0..\n001..\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background and deckle\n# = Wall and deckle\n* = Crate and deckle\n@ = Crate and Target and deckle\nO = Target and deckle\na = a_up or a_down or a_left or a_right\ns = player and a_up and deckle\np = player and a_down and deckle\nq = player and a_left and deckle\nr = player and a_right and deckle\n\nz = a_up and deckle\nx = a_down and deckle\nc = a_left and deckle\nv = a_right and deckle\n\nl = quelle and deckle\nquelle_verbindung = quelle_verbindung_n or quelle_verbindung_s or quelle_verbindung_e or quelle_verbindung_w\n\n\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\na\ndeckle\nPlayer, Wall, Crate\nquelle\nquelle_verbindung_n\nquelle_verbindung_s\nquelle_verbindung_e\nquelle_verbindung_w\nquelle_kreuzung\ncounter\ncounterfill\ntemp\ng,h,j,k,e_4_0,b,n,m,e_3_1,2,3,4,5,6,7,8,9,0,d,f,w,e,t,y,u,i\n\n======\nRULES\n======\n\n[ > player | wall ] -> cancel\n[ > player | quelle ] -> cancel\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate up [ no quelle no wall | player ] -> [ a_up | player ]\nlate down [ no quelle no wall | player ] -> [ a_down | player ]\nlate left [ no quelle no wall | player ] -> [ a_left | player ]\nlate right [ no quelle no wall | player ] -> [ a_right | player ]\n\nlate [ quelle_verbindung ] -> []\nlate [ quelle_kreuzung ] -> []\n\nlate [ player ] -> [ player no a]\n\n\nlate up [ a_up | no wall no quelle no a_down ] -> [ a_up quelle_verbindung_n | quelle_verbindung_s]\nlate down [ a_down | no wall no quelle no a_up ] -> [ a_down quelle_verbindung_s | quelle_verbindung_n]\nlate left [ a_left | no wall no quelle no a_right ] -> [ a_left quelle_verbindung_w | quelle_verbindung_e]\nlate right [ a_right | no wall no quelle no a_left ] -> [ a_right quelle_verbindung_e | quelle_verbindung_w]\n\n\n\nlate up [ quelle | no a_down no wall ] -> [ quelle | quelle_kreuzung quelle_verbindung_s ]\nlate down [ quelle | no a_up no wall ] -> [ quelle | quelle_kreuzung quelle_verbindung_n ]\nlate left [ quelle | no a_right no wall ] -> [ quelle | quelle_kreuzung quelle_verbindung_e ]\nlate right [ quelle | no a_left no wall ] -> [ quelle | quelle_kreuzung quelle_verbindung_w ]\n\nlate left [ a_left quelle_kreuzung quelle_verbindung_w | no quelle_kreuzung quelle_verbindung_e ] -> [ a_left quelle_kreuzung quelle_verbindung_w | quelle_kreuzung quelle_verbindung_e ] \n+ late right [ a_right quelle_kreuzung quelle_verbindung_e | no quelle_kreuzung quelle_verbindung_w ] -> [ a_right quelle_kreuzung quelle_verbindung_e | quelle_kreuzung quelle_verbindung_w ] \n+ late up [ a_up quelle_kreuzung quelle_verbindung_n | no quelle_kreuzung quelle_verbindung_s ] -> [ a_up quelle_kreuzung quelle_verbindung_n | quelle_kreuzung quelle_verbindung_s ] \n+ late down [ a_down quelle_kreuzung quelle_verbindung_s | no quelle_kreuzung quelle_verbindung_n ] -> [ a_down quelle_kreuzung quelle_verbindung_s | quelle_kreuzung quelle_verbindung_n ] \n\nlate [ quelle_verbindung no quelle_kreuzung ] -> []\n\nlate left [ quelle_verbindung_w | no quelle_verbindung_e no quelle ] -> [ | ]\nlate right [ quelle_verbindung_e | no quelle_verbindung_w no quelle ] -> [ | ]\nlate up [ quelle_verbindung_n | no quelle_verbindung_s no quelle ] -> [ | ]\nlate down [ quelle_verbindung_s | no quelle_verbindung_n no quelle ] -> [ | ]\n\n\nlate [counterfill] -> []\n\nlate [ quelle_kreuzung quelle_verbindung_n quelle_verbindung_s quelle_verbindung_e quelle_verbindung_w no temp ] [ counter no counterfill ] -> [ quelle_kreuzung quelle_verbindung_n quelle_verbindung_s quelle_verbindung_e quelle_verbindung_w temp ] [ counter counterfill ]\n\nlate [ temp ] -> []\n\n==============\nWINCONDITIONS\n==============\n\nall counter on counterfill\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of/von 1\n\n....#################\n....#xxxxxxxxxzxcvzx#\n#####xxxxxxxxxzxcvzx#\n#...#xxxxxxxxzxxvzxx#\n#.1.#xxxxzxxxxvxxcvx#\n#...#xxvclvcxvxxxccx#\n#.1.#xxxxxxxxvzxcvzx#\n#...#xxxxzxxxzxzxzxx#\n#.1.#xxxxxxxxzxzxzxx#\n#...#xxxxxxxxzxxxzxx#\n#.1.#xxxxzcvxxxsccvx#\n#...#xxvclvcxvclvccx#\n#.1.#xxxxxvzxxxxcvzx#\n#...#xxxxzzxxxxzvzxx#\n#####xxxxxcvxxxzxcvx#\n....#xxxxxcvxxxzxcvx#\n....#################\n\n\nmessage Very smoothly is encarring thusly ensured / Reibungslos ist ein Verkehssystem so entwickelt\n\nghjk?\nbnm,2\n34567\nb90d2\nweyui\n\n\n\n\n\n", [2, 1, 1, 1, 1, 1, 1, 3, 3, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 3, 3, 1, 3, 0, 1, 2, 2, 2, 1, 0, 0, 3, 3, 2, 2, 2], "background deckle:0,0,background deckle wall:1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,\n0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,background counter counterfill:2,0,background counter:3,0,\n3,0,3,0,3,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,\n0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,a_down background deckle:4,4,4,4,a_right background deckle:5,5,5,5,5,5,5,4,4,4,4,1,1,4,4,\n4,4,a_right background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_s:6,a_up background deckle quelle_kreuzung quelle_verbindung_n quelle_verbindung_s:7,7,7,7,7,a_up background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_n:8,a_up background deckle:9,4,4,4,1,1,4,4,4,4,a_right background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_w:10,5,\n5,5,a_left background deckle:11,11,a_left background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_w:12,9,4,4,4,1,1,4,4,4,a_down background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_s:13,a_down background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_n quelle_verbindung_s quelle_verbindung_w:14,a_down background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_n quelle_verbindung_s:15,a_down background deckle quelle_kreuzung quelle_verbindung_n quelle_verbindung_s:16,background deckle player quelle_kreuzung quelle_verbindung_n:17,9,11,\n12,4,4,4,4,1,1,4,4,4,a_left background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_s quelle_verbindung_w:18,background deckle quelle:19,a_left background deckle quelle_kreuzung quelle_verbindung_n quelle_verbindung_w:20,11,11,4,6,19,a_down background deckle quelle_kreuzung quelle_verbindung_n:21,9,4,\n4,1,1,4,4,4,a_left background deckle quelle_kreuzung quelle_verbindung_s quelle_verbindung_w:22,a_up background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_n quelle_verbindung_w:23,9,5,5,5,a_right background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_s quelle_verbindung_w:24,a_up background deckle quelle_kreuzung quelle_verbindung_n quelle_verbindung_w:25,5,9,11,11,1,1,4,\n4,4,11,22,7,7,7,7,23,9,9,4,5,5,1,1,4,4,4,4,11,\n11,11,11,11,12,9,4,4,4,4,1,1,4,4,9,4,5,5,9,9,4,\n12,9,4,4,4,4,1,1,9,9,4,5,4,9,4,4,4,18,8,4,4,\n4,4,1,1,4,4,4,4,4,4,9,9,4,22,19,21,9,9,9,1,1,\n11,11,5,4,4,11,4,4,4,11,a_right background deckle quelle_kreuzung quelle_verbindung_w:26,11,5,4,4,1,1,5,5,9,11,\n11,5,9,9,9,11,11,5,9,11,11,1,1,9,9,4,5,11,9,4,4,\n4,5,11,9,4,5,5,1,1,4,4,4,4,4,4,4,4,4,4,4,4,\n4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n", 1, "1627892456324.3245"] ], [ - "NIGHTMARECROBAN", - ["title NIGHTMARECROBAN\nauthor increpare \nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnoaction\n\ncolor_palette 13\n\nbackground_color black\ntext_color darkblue\n\n(remixes of levels from david skinner's microban using https://dekeyser.ch/puzzlescriptmis/ )\n\n\n========\nOBJECTS\n========\n\nBackground\nblack black\n11111\n01111\n11101\n11111\n10111\n\n\nziel\nlightblue\n.....\n.000.\n.000.\n.000.\n.....\n\nWall\n darkblue darkgray\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nred\n00.00\n0...0\n.....\n0...0\n00.00\n\nCrate\nyellow\n.000.\n0...0\n0...0\n0...0\n.000.\n\n\np_u u\ngray\n.....\n..0..\n.0.0.\n.....\n.....\n\np_d d\ngray\n.....\n.....\n.0.0.\n..0..\n.....\n\np_l l \ngray\n.....\n..0..\n.0...\n..0..\n.....\n\np_r r\ngray\n.....\n..0..\n...0.\n..0..\n.....\n\ntick\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player and p_u\n* = Crate and p_u\nz = ziel and p_u\ntarget = ziel\no = ziel and p_u\n@ = crate and p_u and ziel\n\npfeil = p_d or p_u or p_l or p_r\n\nw = crate and p_u\ns = crate and p_d\na = crate and p_l\nt = crate and p_r\n\n\ni = crate and p_u and ziel\nk = crate and p_d and ziel\nj = crate and p_l and ziel\ny = crate and p_r and ziel\n\n\n\n1 = p_u and ziel\n2 = p_d and ziel\n3 = p_l and ziel\n4 = p_r and ziel\n\nobstacle = crate or wall or player\n\n\ninanimate = wall or Crate\n\n\n0 = player and p_l\n5 = player and p_r\n6 = ziel and player and p_d\n7 = player and p_u\n8 = player and p_d\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 11944102\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nziel\nPlayer, Wall, Crate\npfeil\ntick\n\n======\nRULES\n======\n\nup [ crate p_u tick | no inanimate ] -> [ p_u > crate | ]\ndown [ crate p_d tick | no inanimate ] -> [ p_d > crate | ]\nleft [ crate p_l tick | no inanimate ] -> [ p_l > crate | ]\nright [ crate p_r tick | no inanimate ] -> [ p_r > crate | ]\n\n[> crate | player ] -> [ > crate | > player ]\n[tick]->[]\n\n\n[ > player | crate ] -> [ > player | > crate > tick] again\n\n[ > obstacle | stationary obstacle ] -> cancel\n\n\nlate up [ crate p_u tick | inanimate ] -> [ p_u crate |inanimate ]\nlate down [ crate p_d tick | inanimate ] -> [ p_d crate | inanimate]\nlate left [ crate p_l tick | inanimate ] -> [ p_l crate | inanimate]\nlate right [ crate p_r tick | inanimate ] -> [ p_r crate | inanimate]\n\n\n==============\nWINCONDITIONS\n==============\n\nall crate on ziel\nno tick\n\n=======\nLEVELS\n=======\n\n\n\nmessage level 1 of 7\n(ok level 1)\n####..\n#lu#..\n#sl###\n#r8kr#\n#lll2#\n#dl###\n####..\n\n\nmessage level 2 of 7\n(ok level 2)\n######\n#lu3l#\n#a#rl#\n#rlkd#\n#wdrd#\n#84dl#\n######\n\n\n\nmessage level 3 of 7\n(easy, level 2isch)\n########\n#rwr4ud#\n#2ddidl#\n#u8lrua#\n#####ud#\n....####\n\n\nmessage level 4 of 7\n(tricky/meh, but ok level 3)\n..####...\n###rd####\n#8rrl1u4#\n#d#ls#wd#\n#llur#rr#\n#########\n\n\n\n\nmessage level 5 of 7\n(ok penultimate)\n######.#####\n#rlrk###rdl#\n#lsruru5d#r#\n#ua1#ld4lrr#\n#rru########\n#####.......\n\n\n\n(ok final level)\nmessage level 6 of 7\n\n.#######\n.#rddtr#\n.#d2dlr#\n##durwd#\n#dr1sdd#\n#lrkd6r#\n########\n\n\n(final)\nmessage level 7 of 7\n\n#######\n#lrrll#\n#u4w2r#\n#d13wa#\n#udt35#\n#3drtu#\n#uwllr#\n#######\n\n\n\n\nmessage You won. I'm so sorry!\n\n\n(\n\n==========\nGENERATION\n==========\n\n[pfeil]->[]\n\nchoose 2 [Crate][Target] -> [][]\nchoose 2 [No Wall No Player no crate ][No Wall No Player no target] -> [Crate][Target]\n\n\nchoose 200 option 0.2 [ no wall no pfeil ] -> [ p_u ]\n+ option 0.2 [ no wall no pfeil ] -> [ p_d ]\n+ option 0.2 [ no wall no pfeil ] -> [ p_l ]\n+ option 0.2 [ no wall no pfeil ] -> [ p_r ]\n\n\nchoose 1 [ player ] [ no player no wall no crate ] -> [ ] [ player ]\n\n)\n",[0,1,1,0,0,3,2,3,2,0,3,2,"undo",1,2,2,2,3,0,0,1,0,1,2,3,2,2,1,0],"background:0,background wall:1,1,1,1,1,0,1,background p_d:2,\n2,background p_l:3,1,1,1,background p_r:4,1,3,1,\n1,4,4,background p_l player:5,background p_u:6,1,1,2,background crate p_l:7,\n2,4,1,1,1,background p_u ziel:8,1,1,1,\n0,1,6,background crate p_u:9,4,1,0,1,background p_r ziel:10,\n2,4,1,0,1,1,1,1,1,\n",7,"1627892520679.5837"] + "NIGHTMARECROBAN", + ["title NIGHTMARECROBAN\nauthor increpare \nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnoaction\n\ncolor_palette 13\n\nbackground_color black\ntext_color darkblue\n\n(remixes of levels from david skinner's microban using https://dekeyser.ch/puzzlescriptmis/ )\n\n\n========\nOBJECTS\n========\n\nBackground\nblack black\n11111\n01111\n11101\n11111\n10111\n\n\nziel\nlightblue\n.....\n.000.\n.000.\n.000.\n.....\n\nWall\n darkblue darkgray\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nred\n00.00\n0...0\n.....\n0...0\n00.00\n\nCrate\nyellow\n.000.\n0...0\n0...0\n0...0\n.000.\n\n\np_u u\ngray\n.....\n..0..\n.0.0.\n.....\n.....\n\np_d d\ngray\n.....\n.....\n.0.0.\n..0..\n.....\n\np_l l \ngray\n.....\n..0..\n.0...\n..0..\n.....\n\np_r r\ngray\n.....\n..0..\n...0.\n..0..\n.....\n\ntick\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player and p_u\n* = Crate and p_u\nz = ziel and p_u\ntarget = ziel\no = ziel and p_u\n@ = crate and p_u and ziel\n\npfeil = p_d or p_u or p_l or p_r\n\nw = crate and p_u\ns = crate and p_d\na = crate and p_l\nt = crate and p_r\n\n\ni = crate and p_u and ziel\nk = crate and p_d and ziel\nj = crate and p_l and ziel\ny = crate and p_r and ziel\n\n\n\n1 = p_u and ziel\n2 = p_d and ziel\n3 = p_l and ziel\n4 = p_r and ziel\n\nobstacle = crate or wall or player\n\n\ninanimate = wall or Crate\n\n\n0 = player and p_l\n5 = player and p_r\n6 = ziel and player and p_d\n7 = player and p_u\n8 = player and p_d\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 11944102\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nziel\nPlayer, Wall, Crate\npfeil\ntick\n\n======\nRULES\n======\n\nup [ crate p_u tick | no inanimate ] -> [ p_u > crate | ]\ndown [ crate p_d tick | no inanimate ] -> [ p_d > crate | ]\nleft [ crate p_l tick | no inanimate ] -> [ p_l > crate | ]\nright [ crate p_r tick | no inanimate ] -> [ p_r > crate | ]\n\n[> crate | player ] -> [ > crate | > player ]\n[tick]->[]\n\n\n[ > player | crate ] -> [ > player | > crate > tick] again\n\n[ > obstacle | stationary obstacle ] -> cancel\n\n\nlate up [ crate p_u tick | inanimate ] -> [ p_u crate |inanimate ]\nlate down [ crate p_d tick | inanimate ] -> [ p_d crate | inanimate]\nlate left [ crate p_l tick | inanimate ] -> [ p_l crate | inanimate]\nlate right [ crate p_r tick | inanimate ] -> [ p_r crate | inanimate]\n\n\n==============\nWINCONDITIONS\n==============\n\nall crate on ziel\nno tick\n\n=======\nLEVELS\n=======\n\n\n\nmessage level 1 of 7\n(ok level 1)\n####..\n#lu#..\n#sl###\n#r8kr#\n#lll2#\n#dl###\n####..\n\n\nmessage level 2 of 7\n(ok level 2)\n######\n#lu3l#\n#a#rl#\n#rlkd#\n#wdrd#\n#84dl#\n######\n\n\n\nmessage level 3 of 7\n(easy, level 2isch)\n########\n#rwr4ud#\n#2ddidl#\n#u8lrua#\n#####ud#\n....####\n\n\nmessage level 4 of 7\n(tricky/meh, but ok level 3)\n..####...\n###rd####\n#8rrl1u4#\n#d#ls#wd#\n#llur#rr#\n#########\n\n\n\n\nmessage level 5 of 7\n(ok penultimate)\n######.#####\n#rlrk###rdl#\n#lsruru5d#r#\n#ua1#ld4lrr#\n#rru########\n#####.......\n\n\n\n(ok final level)\nmessage level 6 of 7\n\n.#######\n.#rddtr#\n.#d2dlr#\n##durwd#\n#dr1sdd#\n#lrkd6r#\n########\n\n\n(final)\nmessage level 7 of 7\n\n#######\n#lrrll#\n#u4w2r#\n#d13wa#\n#udt35#\n#3drtu#\n#uwllr#\n#######\n\n\n\n\nmessage You won. I'm so sorry!\n\n\n(\n\n==========\nGENERATION\n==========\n\n[pfeil]->[]\n\nchoose 2 [Crate][Target] -> [][]\nchoose 2 [No Wall No Player no crate ][No Wall No Player no target] -> [Crate][Target]\n\n\nchoose 200 option 0.2 [ no wall no pfeil ] -> [ p_u ]\n+ option 0.2 [ no wall no pfeil ] -> [ p_d ]\n+ option 0.2 [ no wall no pfeil ] -> [ p_l ]\n+ option 0.2 [ no wall no pfeil ] -> [ p_r ]\n\n\nchoose 1 [ player ] [ no player no wall no crate ] -> [ ] [ player ]\n\n)\n", [0, 1, 1, 0, 0, 3, 2, 3, 2, 0, 3, 2, "undo", 1, 2, 2, 2, 3, 0, 0, 1, 0, 1, 2, 3, 2, 2, 1, 0], "background:0,background wall:1,1,1,1,1,0,1,background p_d:2,\n2,background p_l:3,1,1,1,background p_r:4,1,3,1,\n1,4,4,background p_l player:5,background p_u:6,1,1,2,background crate p_l:7,\n2,4,1,1,1,background p_u ziel:8,1,1,1,\n0,1,6,background crate p_u:9,4,1,0,1,background p_r ziel:10,\n2,4,1,0,1,1,1,1,1,\n", 7, "1627892520679.5837"] ], [ - "Scalesoban", - ["title Scalesoban\nauthor increpare - remix of David Skinner's Microban\nhomepage www.increpare.com\n\n(\n\ntaking the levels from an existing sokoban set and changing the rules\n\n)\n\ncolor_palette 6\n\ntext_color yellow\n\n========\nOBJECTS\n========\n\nBackground\nblack black black\n11111\n01111\n11201\n11111\n10111\n\n\nTarget\nblue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkred darkred\n00010\n11111\n01000\n11111\n00010\n\nPlayer\ngreen green green green\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\ntag\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\nobstacle = wall or crate\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ntag\n======\nRULES\n======\n\n(\n[ > Player | Crate ] -> [ > Player | > Crate ]\nrandom [ > player | > crate ] [ stationary crate ] -> [ > crate | > crate ] [ player ]\n)\n\n\n[ > player | wall ] -> cancel \n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n[ > crate | wall] -> cancel\n[ > crate | crate ] -> cancel\n\n[ > player | > crate ] [stationary crate] -> [> player | > crate ] [< crate ]\n\n[ > player | > crate | | < crate ] -> [ > player | > crate | | crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nno tag\n\n=======\nLEVELS\n=======\n\n\n\nmessage level 1 of 3\n\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\n\n\nmessage level 2 of 3\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\nmessage level 3 of 3\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n\n(\nimpossibly hard:\n\n\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\n)\n\nmessage congratulations!\n\n",[3,0,0,1,1,1,0,1,2,2,3,2,1,0,0,1,1,2,2,3,3],"background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,background target:2,1,\n1,0,0,0,background player:3,1,1,0,0,\n0,background crate target:4,1,1,1,background crate:5,1,1,1,\n0,1,0,0,0,1,0,1,0,\n0,0,1,0,1,1,1,1,1,\n",5,"1627892538124.7505"] + "Scalesoban", + ["title Scalesoban\nauthor increpare - remix of David Skinner's Microban\nhomepage www.increpare.com\n\n(\n\ntaking the levels from an existing sokoban set and changing the rules\n\n)\n\ncolor_palette 6\n\ntext_color yellow\n\n========\nOBJECTS\n========\n\nBackground\nblack black black\n11111\n01111\n11201\n11111\n10111\n\n\nTarget\nblue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkred darkred\n00010\n11111\n01000\n11111\n00010\n\nPlayer\ngreen green green green\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\ntag\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\nobstacle = wall or crate\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ntag\n======\nRULES\n======\n\n(\n[ > Player | Crate ] -> [ > Player | > Crate ]\nrandom [ > player | > crate ] [ stationary crate ] -> [ > crate | > crate ] [ player ]\n)\n\n\n[ > player | wall ] -> cancel \n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n[ > crate | wall] -> cancel\n[ > crate | crate ] -> cancel\n\n[ > player | > crate ] [stationary crate] -> [> player | > crate ] [< crate ]\n\n[ > player | > crate | | < crate ] -> [ > player | > crate | | crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nno tag\n\n=======\nLEVELS\n=======\n\n\n\nmessage level 1 of 3\n\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\n\n\nmessage level 2 of 3\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\nmessage level 3 of 3\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n\n(\nimpossibly hard:\n\n\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\n)\n\nmessage congratulations!\n\n", [3, 0, 0, 1, 1, 1, 0, 1, 2, 2, 3, 2, 1, 0, 0, 1, 1, 2, 2, 3, 3], "background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,background target:2,1,\n1,0,0,0,background player:3,1,1,0,0,\n0,background crate target:4,1,1,1,background crate:5,1,1,1,\n0,1,0,0,0,1,0,1,0,\n0,0,1,0,1,1,1,1,1,\n", 5, "1627892538124.7505"] ], [ - "Vexatious Match 3", - ["title Vexatious Match 3 \nauthor increpare [riff on something from Jack Lance's VEXT EDIT]\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nnorepeat_action\n\nbackground_color darkblue\n\n\n(\n\nHEAVILY INSPIRED BY VEXT EDIT by the inimitable https://twitter.com/Jack_L_Lance/status/1149348574750269440\n\nmade with the assistance of these two tools:\n\n\nhttps://dekeyser.ch/puzzlescriptmis/\n\n\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\n\nplacecursor\nlightblue\n0...0\n.....\n.....\n.....\n0...0\n\nselectcuror_top\ngray\n0...0\n.....\n.....\n.....\n.....\n\nselectcuror_bottom\ngray\n.....\n.....\n.....\n.....\n0...0\n\n\n1\nred\n.....\n.....\n..0..\n.....\n.....\n\n\n2\norange\n.....\n.0...\n.....\n...0.\n.....\n\n\n3\nyellow\n.....\n.0...\n..0..\n...0.\n.....\n\n4\ngreen\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\n5\nblue\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\n\n6\npink pink\n.....\n.010.\n.....\n.010.\n.....\n\n\n7\nyellow orange\n.....\n.010.\n..0..\n.010.\n.....\n\n\n8\nyellow orange\n.....\n.010.\n.1.1.\n.010.\n.....\n\n\n9\nyellow orange\n.....\n.010.\n.101.\n.010.\n.....\n\ntophighlight \ndarkgreen\n\nbottomhighlight\ndarkgray\n\nwintoken\nlightblue\n\ncursorglow_upper\nyellow\n0...0\n.....\n.....\n.....\n.....\n\ncursorglow_lower\nyellow\n.....\n.....\n.....\n.....\n0...0\n\n=======\nLEGEND\n=======\n\nplayer = selectcuror_top or selectcuror_bottom or placecursor\n. = Background\np = selectcuror_top\n\nnum = 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9\nbignum = 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 \n\n\n0 = selectcuror_top and 2\na = selectcuror_bottom and 4\nb = selectcuror_bottom and 2\nc = selectcuror_bottom\nd = selectcuror_top and 4\ne = selectcuror_bottom and 1\nf = selectcuror_top and 6\ng = selectcuror_bottom and 5\nh = selectcuror_top and 1 and cursorglow_upper\ni = selectcuror_bottom and 2 and cursorglow_lower\n! = selectcuror_top and 5\n\n\n=======\nSOUNDS\n=======\n\nsfx1 40752500 (match3)\nsfx2 72680706 (select)\nsfx3 69295706 (deselect)\nsfx4 99783507 (setzt)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ntophighlight, bottomhighlight\nwintoken\nPlayer\nnum\ncursorglow_upper, cursorglow_lower\n======\nRULES\n======\n\n[cursorglow_upper]->[]\n[cursorglow_lower]->[]\n\ndown [ action selectcuror_top num | selectcuror_bottom num ] -> [ placecursor tophighlight num | bottomhighlight num ] sfx2\n\n\n\ndown [ action placecursor num | ] [ tophighlight | bottomhighlight] -> [ selectcuror_top num | selectcuror_bottom ] [ | ] sfx3\n\ndown [ | action placecursor num ] [ tophighlight | bottomhighlight] -> [selectcuror_top | selectcuror_bottom num ] [ | ] sfx3\n\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 1 ] -> [ selectcuror_top num ] [ ] [ ] sfx3 sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 2 ] -> [ placecursor num ] [tophighlight num] [ bottomhighlight 1] sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 3 ] -> [ placecursor num ] [tophighlight num][ bottomhighlight 2] sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 4 ] -> [ placecursor num ] [tophighlight num][ bottomhighlight 3] sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 5 ] -> [ placecursor num ] [tophighlight num][ bottomhighlight 4] sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 6 ] -> [ placecursor num ] [tophighlight num][ bottomhighlight 5] sfx4\n\n\n\n(\n[wintoken]->[]\n\nlate [ 1|1|1]->[wintoken 1|wintoken 1|wintoken 1] sfx1 \nlate [ 2|2|2]->[wintoken 2|wintoken 2|wintoken 2] sfx1 \nlate [ 3|3|3]->[wintoken 3|wintoken 3|wintoken 3] sfx1 \nlate [ 4|4|4]->[wintoken 4|wintoken 4|wintoken 4] sfx1 \nlate [ 5|5|5]->[wintoken 5|wintoken 5|wintoken 5] sfx1 \nlate [ 6|6|6]->[wintoken 6|wintoken 6|wintoken 6] sfx1 \n\nlate [wintoken num]->[]\n)\n\n[wintoken num]->[]\n\nlate [ 1|1|1]->[wintoken 1|wintoken 1|wintoken 1] sfx1 again\nlate [ 2|2|2]->[wintoken 2|wintoken 2|wintoken 2] sfx1 again\nlate [ 3|3|3]->[wintoken 3|wintoken 3|wintoken 3] sfx1 again\nlate [ 4|4|4]->[wintoken 4|wintoken 4|wintoken 4] sfx1 again\nlate [ 5|5|5]->[wintoken 5|wintoken 5|wintoken 5] sfx1 again\nlate [ 6|6|6]->[wintoken 6|wintoken 6|wintoken 6] sfx1 again\n\n\n\n\nlate down [ selectcuror_top num | selectcuror_bottom num ] -> [ selectcuror_top num cursorglow_upper | selectcuror_bottom num cursorglow_lower]\n\nlate down [ tophighlight no num | bottomhighlight ] [ placecursor | ] -> [ | ] [ selectcuror_top | ] sfx3\nlate down [ tophighlight | bottomhighlight no num ] [ placecursor | ] -> [ | ] [ selectcuror_top | ] sfx3\n\nlate down [ tophighlight no num | bottomhighlight ] [ | placecursor ] -> [ | ] [ selectcuror_top | ] sfx3\nlate down [ tophighlight | bottomhighlight no num ] [ | placecursor] -> [ | ] [ selectcuror_top | ] sfx3\n\n\n\nlate [selectcuror_bottom]->[]\nlate down [ selectcuror_top|]->[selectcuror_top|selectcuror_bottom]\n\n\n==============\nWINCONDITIONS\n==============\n\nno num\n(some wintoken)\n\n=======\nLEVELS\n=======\n\nmessage Get three in a row to make them vanish. Clear the board to win.\n\nmessage level 1 of 5\n.......\n.......\n..123..\n.p456..\n.c.....\n.......\n\n\nmessage level 2 of 5\n.......\n.......\n...0...\n...i...\n.......\n.......\n\nmessage Level 3 of 5\n\n(messy but ok)\n.f.\n.6.\n...\n22.\n\n\n\nmessage Level 4 of 5\n\n22.5\n...5\np...\nc.55\n\nmessage Level 5 of 5\n(OK!)\np51\nc.5\n\n\nmessage The end :) Lesson Learned? You don't need to choose between being a numerator and being a denominator : you can be both!\n\n\n(\n...1...\n...2...\n...3...\n.p.4...\n...5...\n...6...\n\n\n66..\n.5p.\n.5c.\n33..\n\n....\n.p6.\n.c6.\n....\n\n\n...\n.f.\n.6.\n...\n\n...\n2.p\n266\n...\n\n5p1\n2c1\n\n16p\n.2c\n\n\n(easy but tractible?)\n\n3p1\t\n.c4\n\n\n501\n.c2\n\n\n\np61\nc.5\n\np61\nc.2\n\n.h6\n.i2\n\n4p3.\n3c..\n\n50..\n6c.1\n\n.p.\n...\n\n.p..\n....\n\n\n.p...\n.....\n\n\n\n.p....\n......\n\n46p\n2.c\n..4\n\n(hard?)\n.4f\n.1c\n..4\n\n\n5.d\n.4e\n..6\n\n..5\n..d\n..c\n3.6\n\n\n\n5.p\n..b\n2.3\n\n(hard?)\n.2p\n.4c\n...\n\n\n5.d\n.4e\n..6\n\n..5\n..d\n..c\n3.6\n\n\n\n.4p\n.4.\n...\n\n.......\n.......\n..6.p..\n..6....\n.......\n.......\n\n\n.......\n.......\n..6.p..\n..6....\n.......\n.......\n\n5p.\n..2\n2.3\n\n\n3p2\n.21\n23.\n\np.2\n.21\n...\n\n..p\n...\n...\n\n(hard?)\n62.\n4p5\n..4\n\n\n..p\n...\n...\n\n...\n..p\n...\n...\n\n....\n..p.\n....\n....\n\n......\n....p.\n..22..\n..11..\n......\n......\n\n\n(hard?)\n\n......\n....5p\n...1..\n......\n2.....\n2...5.\n\n\n\n5p1\n2c1\n\n)\n\n\n(\n\n\n==========\nGENERATION\n==========\n\n[num]->[]\n= remove one crate/target pair if it exists and add one\nchoose 1 option 0.1 []->[1]\n+ option 0.1 []->[2]\n+ option 0.1 []->[3]\n+ option 0.1 []->[4]\n+ option 0.1 []->[5]\n+ option 0.1 []->[6]\n\n)\n",[2,1,0,3,2,0,0,3,3,4,1,2,1,0,4,3,3,4,1,4,2,4,2,4,1,0,3,0,4,"undo",2,1,4,1,2,3,4],"2 background:0,background:1,1,1,\n0,5 background:2,5 background selectcuror_top:3,background selectcuror_bottom:4,\n1,1,1,1,\n1,1,1,2,\n",8,"1627892551428.3667"] + "Vexatious Match 3", + ["title Vexatious Match 3 \nauthor increpare [riff on something from Jack Lance's VEXT EDIT]\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nnorepeat_action\n\nbackground_color darkblue\n\n\n(\n\nHEAVILY INSPIRED BY VEXT EDIT by the inimitable https://twitter.com/Jack_L_Lance/status/1149348574750269440\n\nmade with the assistance of these two tools:\n\n\nhttps://dekeyser.ch/puzzlescriptmis/\n\n\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\n\nplacecursor\nlightblue\n0...0\n.....\n.....\n.....\n0...0\n\nselectcuror_top\ngray\n0...0\n.....\n.....\n.....\n.....\n\nselectcuror_bottom\ngray\n.....\n.....\n.....\n.....\n0...0\n\n\n1\nred\n.....\n.....\n..0..\n.....\n.....\n\n\n2\norange\n.....\n.0...\n.....\n...0.\n.....\n\n\n3\nyellow\n.....\n.0...\n..0..\n...0.\n.....\n\n4\ngreen\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\n5\nblue\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\n\n6\npink pink\n.....\n.010.\n.....\n.010.\n.....\n\n\n7\nyellow orange\n.....\n.010.\n..0..\n.010.\n.....\n\n\n8\nyellow orange\n.....\n.010.\n.1.1.\n.010.\n.....\n\n\n9\nyellow orange\n.....\n.010.\n.101.\n.010.\n.....\n\ntophighlight \ndarkgreen\n\nbottomhighlight\ndarkgray\n\nwintoken\nlightblue\n\ncursorglow_upper\nyellow\n0...0\n.....\n.....\n.....\n.....\n\ncursorglow_lower\nyellow\n.....\n.....\n.....\n.....\n0...0\n\n=======\nLEGEND\n=======\n\nplayer = selectcuror_top or selectcuror_bottom or placecursor\n. = Background\np = selectcuror_top\n\nnum = 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9\nbignum = 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 \n\n\n0 = selectcuror_top and 2\na = selectcuror_bottom and 4\nb = selectcuror_bottom and 2\nc = selectcuror_bottom\nd = selectcuror_top and 4\ne = selectcuror_bottom and 1\nf = selectcuror_top and 6\ng = selectcuror_bottom and 5\nh = selectcuror_top and 1 and cursorglow_upper\ni = selectcuror_bottom and 2 and cursorglow_lower\n! = selectcuror_top and 5\n\n\n=======\nSOUNDS\n=======\n\nsfx1 40752500 (match3)\nsfx2 72680706 (select)\nsfx3 69295706 (deselect)\nsfx4 99783507 (setzt)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ntophighlight, bottomhighlight\nwintoken\nPlayer\nnum\ncursorglow_upper, cursorglow_lower\n======\nRULES\n======\n\n[cursorglow_upper]->[]\n[cursorglow_lower]->[]\n\ndown [ action selectcuror_top num | selectcuror_bottom num ] -> [ placecursor tophighlight num | bottomhighlight num ] sfx2\n\n\n\ndown [ action placecursor num | ] [ tophighlight | bottomhighlight] -> [ selectcuror_top num | selectcuror_bottom ] [ | ] sfx3\n\ndown [ | action placecursor num ] [ tophighlight | bottomhighlight] -> [selectcuror_top | selectcuror_bottom num ] [ | ] sfx3\n\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 1 ] -> [ selectcuror_top num ] [ ] [ ] sfx3 sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 2 ] -> [ placecursor num ] [tophighlight num] [ bottomhighlight 1] sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 3 ] -> [ placecursor num ] [tophighlight num][ bottomhighlight 2] sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 4 ] -> [ placecursor num ] [tophighlight num][ bottomhighlight 3] sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 5 ] -> [ placecursor num ] [tophighlight num][ bottomhighlight 4] sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 6 ] -> [ placecursor num ] [tophighlight num][ bottomhighlight 5] sfx4\n\n\n\n(\n[wintoken]->[]\n\nlate [ 1|1|1]->[wintoken 1|wintoken 1|wintoken 1] sfx1 \nlate [ 2|2|2]->[wintoken 2|wintoken 2|wintoken 2] sfx1 \nlate [ 3|3|3]->[wintoken 3|wintoken 3|wintoken 3] sfx1 \nlate [ 4|4|4]->[wintoken 4|wintoken 4|wintoken 4] sfx1 \nlate [ 5|5|5]->[wintoken 5|wintoken 5|wintoken 5] sfx1 \nlate [ 6|6|6]->[wintoken 6|wintoken 6|wintoken 6] sfx1 \n\nlate [wintoken num]->[]\n)\n\n[wintoken num]->[]\n\nlate [ 1|1|1]->[wintoken 1|wintoken 1|wintoken 1] sfx1 again\nlate [ 2|2|2]->[wintoken 2|wintoken 2|wintoken 2] sfx1 again\nlate [ 3|3|3]->[wintoken 3|wintoken 3|wintoken 3] sfx1 again\nlate [ 4|4|4]->[wintoken 4|wintoken 4|wintoken 4] sfx1 again\nlate [ 5|5|5]->[wintoken 5|wintoken 5|wintoken 5] sfx1 again\nlate [ 6|6|6]->[wintoken 6|wintoken 6|wintoken 6] sfx1 again\n\n\n\n\nlate down [ selectcuror_top num | selectcuror_bottom num ] -> [ selectcuror_top num cursorglow_upper | selectcuror_bottom num cursorglow_lower]\n\nlate down [ tophighlight no num | bottomhighlight ] [ placecursor | ] -> [ | ] [ selectcuror_top | ] sfx3\nlate down [ tophighlight | bottomhighlight no num ] [ placecursor | ] -> [ | ] [ selectcuror_top | ] sfx3\n\nlate down [ tophighlight no num | bottomhighlight ] [ | placecursor ] -> [ | ] [ selectcuror_top | ] sfx3\nlate down [ tophighlight | bottomhighlight no num ] [ | placecursor] -> [ | ] [ selectcuror_top | ] sfx3\n\n\n\nlate [selectcuror_bottom]->[]\nlate down [ selectcuror_top|]->[selectcuror_top|selectcuror_bottom]\n\n\n==============\nWINCONDITIONS\n==============\n\nno num\n(some wintoken)\n\n=======\nLEVELS\n=======\n\nmessage Get three in a row to make them vanish. Clear the board to win.\n\nmessage level 1 of 5\n.......\n.......\n..123..\n.p456..\n.c.....\n.......\n\n\nmessage level 2 of 5\n.......\n.......\n...0...\n...i...\n.......\n.......\n\nmessage Level 3 of 5\n\n(messy but ok)\n.f.\n.6.\n...\n22.\n\n\n\nmessage Level 4 of 5\n\n22.5\n...5\np...\nc.55\n\nmessage Level 5 of 5\n(OK!)\np51\nc.5\n\n\nmessage The end :) Lesson Learned? You don't need to choose between being a numerator and being a denominator : you can be both!\n\n\n(\n...1...\n...2...\n...3...\n.p.4...\n...5...\n...6...\n\n\n66..\n.5p.\n.5c.\n33..\n\n....\n.p6.\n.c6.\n....\n\n\n...\n.f.\n.6.\n...\n\n...\n2.p\n266\n...\n\n5p1\n2c1\n\n16p\n.2c\n\n\n(easy but tractible?)\n\n3p1\t\n.c4\n\n\n501\n.c2\n\n\n\np61\nc.5\n\np61\nc.2\n\n.h6\n.i2\n\n4p3.\n3c..\n\n50..\n6c.1\n\n.p.\n...\n\n.p..\n....\n\n\n.p...\n.....\n\n\n\n.p....\n......\n\n46p\n2.c\n..4\n\n(hard?)\n.4f\n.1c\n..4\n\n\n5.d\n.4e\n..6\n\n..5\n..d\n..c\n3.6\n\n\n\n5.p\n..b\n2.3\n\n(hard?)\n.2p\n.4c\n...\n\n\n5.d\n.4e\n..6\n\n..5\n..d\n..c\n3.6\n\n\n\n.4p\n.4.\n...\n\n.......\n.......\n..6.p..\n..6....\n.......\n.......\n\n\n.......\n.......\n..6.p..\n..6....\n.......\n.......\n\n5p.\n..2\n2.3\n\n\n3p2\n.21\n23.\n\np.2\n.21\n...\n\n..p\n...\n...\n\n(hard?)\n62.\n4p5\n..4\n\n\n..p\n...\n...\n\n...\n..p\n...\n...\n\n....\n..p.\n....\n....\n\n......\n....p.\n..22..\n..11..\n......\n......\n\n\n(hard?)\n\n......\n....5p\n...1..\n......\n2.....\n2...5.\n\n\n\n5p1\n2c1\n\n)\n\n\n(\n\n\n==========\nGENERATION\n==========\n\n[num]->[]\n= remove one crate/target pair if it exists and add one\nchoose 1 option 0.1 []->[1]\n+ option 0.1 []->[2]\n+ option 0.1 []->[3]\n+ option 0.1 []->[4]\n+ option 0.1 []->[5]\n+ option 0.1 []->[6]\n\n)\n", [2, 1, 0, 3, 2, 0, 0, 3, 3, 4, 1, 2, 1, 0, 4, 3, 3, 4, 1, 4, 2, 4, 2, 4, 1, 0, 3, 0, 4, "undo", 2, 1, 4, 1, 2, 3, 4], "2 background:0,background:1,1,1,\n0,5 background:2,5 background selectcuror_top:3,background selectcuror_bottom:4,\n1,1,1,1,\n1,1,1,2,\n", 8, "1627892551428.3667"] ], [ - "SLIME VAT FILLER", - ["title SLIME VAT FILLER\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color darkgreen\ntext_color yellow\n\nrun_rules_on_level_start\n\ncolor_palette 1\n\n========\nOBJECTS\n========\n\nBackground\ndarkblue\n\nwall\nblue\n\nplayer\npink red\n.000.\n.000.\n00000\n.111.\n.1.1.\n\nblob\ngreen darkgreen\n.000.\n01110\n01110\n01110\n.000.\n\n\nblob_l\ngreen darkgreen\n.0000\n01111\n00101\n01111\n.0000\n\n\nblob_r\ngreen darkgreen\n0000.\n11110\n10100\n11110\n0000.\n\n\nblob_u\ngreen darkgreen\n.000.\n01010\n01110\n01010\n01110\n\n\nblob_d\ngreen darkgreen\n01110\n01010\n01110\n01010\n.000.\n\nblob_h\ngreen darkgreen\n00000\n11111\n10101\n11111\n00000\n\nblob_v\ngreen darkgreen\n01110\n01010\n01110\n01010\n01110\n\n\n\ntarget \nyellow\n0...0\n.....\n.....\n.....\n0...0\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = wall\nP = Player\nb = blob\nl = blob_l\nr = blob_r\nu = blob_u\nd = blob_d\nh = blob_h\nv = blob_v\nt = target\n\nk = player and target\n\n\n* = blob\n@ = blob and Target\nO = Target\n\n\n\ngoostuff = blob or blob_l or blob_r or blob_u or blob_d or blob_h or blob_v\n\nobstacle = wall or goostuff\n\n0 = blob_l and target\n\n=======\nSOUNDS\n=======\nsfx1 78001905\nsfx2 95814301\nendlevel 17589703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, wall, goostuff\nTarget\n\n======\nRULES\n======\n\n\n\n(was passiert, wenn man in der mitte ist? -_-)\n\n(2x1 -> 1x1 )\n\nright [ > player | blob_l | blob_r ] -> [ > player | | blob ] sfx2\nleft [ > player | blob_r | blob_l ] -> [ > player | | blob ] sfx2\nup [ > player | blob_d | blob_u ] -> [ > player | | blob ] sfx2\ndown [ > player | blob_u | blob_d ] -> [ > player | | blob ] sfx2\n\n\n( (n+1)x1 -> (n)x1 )\n\nright [ > player | blob_l | blob_h ] -> [ > player | | blob_l ] sfx2\nleft [ > player | blob_r | blob_h ] -> [ > player | | blob_r ] sfx2\nup [ > player | blob_d | blob_v ] -> [ > player | | blob_d ] sfx2\ndown [ > player | blob_u | blob_v ] -> [ > player | | blob_u ] sfx2\n\n\n\n(1x1 -> 2x1)\nright [ no obstacle | < player | blob ] -> [ player | blob_l | blob_r ] sfx1\nleft [ no obstacle | < player | blob ] -> [ player | blob_r | blob_l ] sfx1\nup [ no obstacle | < player | blob ] -> [ player | blob_d | blob_u ] sfx1\ndown [ no obstacle | < player | blob ] -> [ player | blob_u | blob_d ] sfx1\n\n\n\n( (n)x1 -> (n+1)x1)\nright [ no obstacle | < player | blob_l ] -> [ player | blob_l | blob_h ] sfx1\nleft [ no obstacle | < player | blob_r ] -> [ player | blob_r | blob_h ] sfx1\nup [ no obstacle | < player | blob_d ] -> [ player | blob_d | blob_v ] sfx1\ndown [ no obstacle | < player | blob_u ] -> [ player | blob_u | blob_v ] sfx1\n\n\n([ > player | blob ] -> [ > player | > blob ])\n\n[ > goostuff | wall ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nall blob on target\nall goostuff on target\n\n=======\nLEVELS\n=======\n\nmessage Get the slime into the yellow vats! Fill all the vats this way with slime!\n\nmessage level 1 of 10\n######\n#....#\n#.b..#\n#....#\n#p.t.#\n#....#\n######\n\n\nmessage level 2 of 10\n\n######\n#....#\n#.tt.#\n#.bb.#\n#....#\n#.p..#\n######\n\nmessage level 3 of 10\n\n######\n#....#\n#...b#\n#.b.t#\n#..t.#\n#p...#\n######\n\n\nmessage level 4 of 10\n\n(Easy but ok)\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\nmessage level 5 of 10\n\n(hardish)\n####..\n#@.#..\n#..###\n#.t..#\n#..b.#\n#p.###\n####..\n\nmessage level 6 of 10\n\n#########\n#.......#\n#.......#\n#.b.t...#\n#.b.pt..#\n#.b...t.#\n#.......#\n#.......#\n#########\n\nmessage level 7 of 10\n(hard)\n######\n#....#\n#.#p.#\n#.b.b#\n#.t.t#\n#....#\n######\n\n\nmessage level 8 of 10\n(good, medium-hard)\n#########\n#.......#\n#.......#\n#...t...#\n#..tpt..#\n#...t...#\n#.......#\n#...b...#\n#..b.b..#\n#...b...#\n#.......#\n#.......#\n#########\n\nmessage level 9 of 10\n(not so hard, but 75% chance of being amusing?)\n#########\n#...#...#\n#.p.b.t.#\n#.......#\n##b.t.b##\n#.......#\n#.t.b.t.#\n#...#...#\n#########\n\nmessage level 10 of 10\n\nmessage MY PASSPORT HAS EXPIRED. I need to take a new photo. NO SILLY FACES ALLOWED.\n(cripes!)\n#######\n##...##\n#.b.b.#\n#.t.t.#\n#..@..#\n##p..##\n#######\n\nmessage Congratulations - you got your new passport\n\n........\n........\n...##...\n..####..\n..####..\n...##...\n........\n..####..\n........\n..####..\n........\n........\n\nmessage The End\n\n\n(\n\n\n########\n#......#\n#.p....#\n#..bbt.#\n#.t....#\n#......#\n########\n\n\n(early level?)\n########\n#...0r.#\n#.O.p..#\n#.lr...#\n#####..#\n....####\n\n\n\n\n(too easy)\n..####...\n###..####\n#.t....@#\n#.#b.#..#\n#....#p.#\n#########\n\n#########\n#...#...#\n#...b.t.#\n#.......#\n##b.t.b##\n#.......#\n#.tpb.t.#\n#...#...#\n#########\n\n\n#########\n#...u...#\n#...d...#\n#b.lhr.b#\n#...u...#\n#.p.v...#\n#...d...#\n#########\n\n#########\n#...#...#\n#.t.u.t.#\n#...d...#\n##b.lhr##\n#...u...#\n#.t.d.t.#\n#p..#...#\n#########\n\n\n#######\n#..u..#\n#..d..#\n#b.lhr#\n#..u..#\n#p.d..#\n#######\n\n##########\n#..uuuu..#\n#..dddd..#\n#lhhrplhr#\n#..uuuu..#\n#..dddd..#\n##########\n\n#########\n#...#...#\n#...u.t.#\n#...d...#\n##b.0hr##\n#...u...#\n#.t.d.t.#\n#.p.#...#\n#########\n\n#########\n#.......#\n#.......#\n#...t...#\n#..tpt..#\n#...t...#\n#.......#\n#...b...#\n#..b.b..#\n#...b...#\n#.......#\n#.......#\n#########\n\n#########\n#.......#\n#...t...#\n#..t.t..#\n#...t...#\n#.......#\n#...p...#\n#.......#\n#...b...#\n#..b.b..#\n#...b...#\n#.......#\n#########\n\n\n\n#########\n#.......#\n#..ttt..#\n#..t.t..#\n#..ttt..#\n#.......#\n#...p...#\n#.......#\n#..bbb..#\n#..b.b..#\n#..bbb..#\n#.......#\n#########\n\n\n######\n#....#\n#.b..#\n#....#\n#p.t.#\n#....#\n######\n\n\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######.#####\n#....###...#\n#........#p#\n#.bt#.tb...#\n#...########\n#####.......\n\nmessage level 2 of 10\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*O.#\n##.*P*.#\n#..O*O.#\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\n\n\n\n######\n#....#\n#.b0r#\n#...t#\n#.p..#\n######\n\n\n\n########\n#......#\n#.b....#\n#..tp..#\n#......#\n#......#\n########\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.lr....#\n#.t..p..#\n#@......#\n#########\n\n\n(soll schwierig sein)\n#######\n##...##\n#.b.b.#\n#.t.t.#\n#..@..#\n##p..##\n#######\n\n)\n\n(\n\n\n\nchoose 1 option 0.1 [no wall]->[wall]\n+ option 0.1 [wall]->[no wall]\n+ option 0.1 [target] [ no target no wall ] -> [ ] [ target ]\n+ option 0.1 [ target ] [ blob ] [ no target no wall ] [ no obstacle ] -> [ ] [ ] [ target ] [ blob ]\n\n\n(\n[target]->[]\n[blob]->[]\n[player]->[]\n)\n(\nchoose 1 [no wall] -> [ player ]\nchoose 1 option 0.1 [ no target no wall ] [ no obstacle ] -> [ target ] [ blob ]\n)\n(\nchoose 1 option 0.1 [no target ] -> [ target ]\noption 0.1 [ target | no target no wall] ->[target | target]\n)\n\n(choose 10 option 0.1 right [ no wall|blob | no obstacle|no wall] -> [| blob_l | blob_r |]\n+ option 0.1 down [ no wall|blob | no obstacle | no wall ] -> [ |blob_u | blob_d |]\n+ option 0.1 right [no wall| no obstacle | blob_l |no wall] -> [| blob_l | blob_h |]\n+ option 0.1 down [no wall| no obstacle | blob_u |no wall] -> [ |blob_u | blob_v |]\n+ option 0.1 []->[])\n\n\nchoose 4 [no wall no target ] -> [ target ]r\n\n\n\n()()()()()()()()\n\n\nchoose 1 [ no obstacle ] -> [ player ]\n\nchoose 1 [ no obstacle ] ->[blob target ]\n\n\nchoose 1 [ no obstacle ] [no target ] ->[blob] [target ]\n\nchoose 10 option 0.1 right [ |blob | no obstacle|] -> [| blob_l | blob_r |]\n+ option 0.1 down [ |blob | no obstacle | ] -> [ |blob_u | blob_d |]\n+ option 0.1 right [| no obstacle | blob_l |] -> [| blob_l | blob_h |]\n+ option 0.1 down [| no obstacle | blob_u |] -> [ |blob_u | blob_v |]\n+ option 0.1 []->[]\n\n\nright [ wall | blob_l | blob_h | blob_h | blob_r ] -> [ wall | blob_l | blob_h | blob_r | ]\ndown [ wall | blob_u | blob_h | blob_h | blob_l ] -> [ wall | blob_u | blob_h | blob_l | ]\n\n\n\n\n\n\n)\n\n",[2,2,1,2,3,4,1,2,2,3,1,3,1,0,1,2,2,3,0,2,3,0,1,3,3,3,3,0,0,3,2,1,0,0,3,0,0,1,0,0,0,2,2,1,1,1,"restart",2,2,0,0,0,0,1,1,2,2,2,2,3,2,0,0,0,0,1,0,0,3,3,3,3,2,2,2,2,1,2,2,0,0,0,0,3,2,2,2,2,2,2,2,1,0,0,0,0,0,2,2,0,0,3,2,2,2,1,1,0,0,0,0],"background wall:0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background:1,1,1,1,\n1,1,1,1,1,1,1,0,0,\n1,1,1,1,1,1,1,1,1,\n1,1,0,0,1,1,1,background blob_u target:2,background blob_v:3,\n3,3,background blob_d:4,1,1,1,0,0,1,\n1,background blob target:5,background player:6,2,3,3,3,4,1,\n1,0,0,1,1,1,5,1,1,\n1,1,1,1,1,0,0,1,1,\n1,1,1,1,1,1,1,1,1,\n0,0,1,1,1,1,1,1,1,\n1,1,1,1,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,\n",16,"1627892574193.6548"] + "SLIME VAT FILLER", + ["title SLIME VAT FILLER\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color darkgreen\ntext_color yellow\n\nrun_rules_on_level_start\n\ncolor_palette 1\n\n========\nOBJECTS\n========\n\nBackground\ndarkblue\n\nwall\nblue\n\nplayer\npink red\n.000.\n.000.\n00000\n.111.\n.1.1.\n\nblob\ngreen darkgreen\n.000.\n01110\n01110\n01110\n.000.\n\n\nblob_l\ngreen darkgreen\n.0000\n01111\n00101\n01111\n.0000\n\n\nblob_r\ngreen darkgreen\n0000.\n11110\n10100\n11110\n0000.\n\n\nblob_u\ngreen darkgreen\n.000.\n01010\n01110\n01010\n01110\n\n\nblob_d\ngreen darkgreen\n01110\n01010\n01110\n01010\n.000.\n\nblob_h\ngreen darkgreen\n00000\n11111\n10101\n11111\n00000\n\nblob_v\ngreen darkgreen\n01110\n01010\n01110\n01010\n01110\n\n\n\ntarget \nyellow\n0...0\n.....\n.....\n.....\n0...0\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = wall\nP = Player\nb = blob\nl = blob_l\nr = blob_r\nu = blob_u\nd = blob_d\nh = blob_h\nv = blob_v\nt = target\n\nk = player and target\n\n\n* = blob\n@ = blob and Target\nO = Target\n\n\n\ngoostuff = blob or blob_l or blob_r or blob_u or blob_d or blob_h or blob_v\n\nobstacle = wall or goostuff\n\n0 = blob_l and target\n\n=======\nSOUNDS\n=======\nsfx1 78001905\nsfx2 95814301\nendlevel 17589703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, wall, goostuff\nTarget\n\n======\nRULES\n======\n\n\n\n(was passiert, wenn man in der mitte ist? -_-)\n\n(2x1 -> 1x1 )\n\nright [ > player | blob_l | blob_r ] -> [ > player | | blob ] sfx2\nleft [ > player | blob_r | blob_l ] -> [ > player | | blob ] sfx2\nup [ > player | blob_d | blob_u ] -> [ > player | | blob ] sfx2\ndown [ > player | blob_u | blob_d ] -> [ > player | | blob ] sfx2\n\n\n( (n+1)x1 -> (n)x1 )\n\nright [ > player | blob_l | blob_h ] -> [ > player | | blob_l ] sfx2\nleft [ > player | blob_r | blob_h ] -> [ > player | | blob_r ] sfx2\nup [ > player | blob_d | blob_v ] -> [ > player | | blob_d ] sfx2\ndown [ > player | blob_u | blob_v ] -> [ > player | | blob_u ] sfx2\n\n\n\n(1x1 -> 2x1)\nright [ no obstacle | < player | blob ] -> [ player | blob_l | blob_r ] sfx1\nleft [ no obstacle | < player | blob ] -> [ player | blob_r | blob_l ] sfx1\nup [ no obstacle | < player | blob ] -> [ player | blob_d | blob_u ] sfx1\ndown [ no obstacle | < player | blob ] -> [ player | blob_u | blob_d ] sfx1\n\n\n\n( (n)x1 -> (n+1)x1)\nright [ no obstacle | < player | blob_l ] -> [ player | blob_l | blob_h ] sfx1\nleft [ no obstacle | < player | blob_r ] -> [ player | blob_r | blob_h ] sfx1\nup [ no obstacle | < player | blob_d ] -> [ player | blob_d | blob_v ] sfx1\ndown [ no obstacle | < player | blob_u ] -> [ player | blob_u | blob_v ] sfx1\n\n\n([ > player | blob ] -> [ > player | > blob ])\n\n[ > goostuff | wall ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nall blob on target\nall goostuff on target\n\n=======\nLEVELS\n=======\n\nmessage Get the slime into the yellow vats! Fill all the vats this way with slime!\n\nmessage level 1 of 10\n######\n#....#\n#.b..#\n#....#\n#p.t.#\n#....#\n######\n\n\nmessage level 2 of 10\n\n######\n#....#\n#.tt.#\n#.bb.#\n#....#\n#.p..#\n######\n\nmessage level 3 of 10\n\n######\n#....#\n#...b#\n#.b.t#\n#..t.#\n#p...#\n######\n\n\nmessage level 4 of 10\n\n(Easy but ok)\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\nmessage level 5 of 10\n\n(hardish)\n####..\n#@.#..\n#..###\n#.t..#\n#..b.#\n#p.###\n####..\n\nmessage level 6 of 10\n\n#########\n#.......#\n#.......#\n#.b.t...#\n#.b.pt..#\n#.b...t.#\n#.......#\n#.......#\n#########\n\nmessage level 7 of 10\n(hard)\n######\n#....#\n#.#p.#\n#.b.b#\n#.t.t#\n#....#\n######\n\n\nmessage level 8 of 10\n(good, medium-hard)\n#########\n#.......#\n#.......#\n#...t...#\n#..tpt..#\n#...t...#\n#.......#\n#...b...#\n#..b.b..#\n#...b...#\n#.......#\n#.......#\n#########\n\nmessage level 9 of 10\n(not so hard, but 75% chance of being amusing?)\n#########\n#...#...#\n#.p.b.t.#\n#.......#\n##b.t.b##\n#.......#\n#.t.b.t.#\n#...#...#\n#########\n\nmessage level 10 of 10\n\nmessage MY PASSPORT HAS EXPIRED. I need to take a new photo. NO SILLY FACES ALLOWED.\n(cripes!)\n#######\n##...##\n#.b.b.#\n#.t.t.#\n#..@..#\n##p..##\n#######\n\nmessage Congratulations - you got your new passport\n\n........\n........\n...##...\n..####..\n..####..\n...##...\n........\n..####..\n........\n..####..\n........\n........\n\nmessage The End\n\n\n(\n\n\n########\n#......#\n#.p....#\n#..bbt.#\n#.t....#\n#......#\n########\n\n\n(early level?)\n########\n#...0r.#\n#.O.p..#\n#.lr...#\n#####..#\n....####\n\n\n\n\n(too easy)\n..####...\n###..####\n#.t....@#\n#.#b.#..#\n#....#p.#\n#########\n\n#########\n#...#...#\n#...b.t.#\n#.......#\n##b.t.b##\n#.......#\n#.tpb.t.#\n#...#...#\n#########\n\n\n#########\n#...u...#\n#...d...#\n#b.lhr.b#\n#...u...#\n#.p.v...#\n#...d...#\n#########\n\n#########\n#...#...#\n#.t.u.t.#\n#...d...#\n##b.lhr##\n#...u...#\n#.t.d.t.#\n#p..#...#\n#########\n\n\n#######\n#..u..#\n#..d..#\n#b.lhr#\n#..u..#\n#p.d..#\n#######\n\n##########\n#..uuuu..#\n#..dddd..#\n#lhhrplhr#\n#..uuuu..#\n#..dddd..#\n##########\n\n#########\n#...#...#\n#...u.t.#\n#...d...#\n##b.0hr##\n#...u...#\n#.t.d.t.#\n#.p.#...#\n#########\n\n#########\n#.......#\n#.......#\n#...t...#\n#..tpt..#\n#...t...#\n#.......#\n#...b...#\n#..b.b..#\n#...b...#\n#.......#\n#.......#\n#########\n\n#########\n#.......#\n#...t...#\n#..t.t..#\n#...t...#\n#.......#\n#...p...#\n#.......#\n#...b...#\n#..b.b..#\n#...b...#\n#.......#\n#########\n\n\n\n#########\n#.......#\n#..ttt..#\n#..t.t..#\n#..ttt..#\n#.......#\n#...p...#\n#.......#\n#..bbb..#\n#..b.b..#\n#..bbb..#\n#.......#\n#########\n\n\n######\n#....#\n#.b..#\n#....#\n#p.t.#\n#....#\n######\n\n\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######.#####\n#....###...#\n#........#p#\n#.bt#.tb...#\n#...########\n#####.......\n\nmessage level 2 of 10\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*O.#\n##.*P*.#\n#..O*O.#\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\n\n\n\n######\n#....#\n#.b0r#\n#...t#\n#.p..#\n######\n\n\n\n########\n#......#\n#.b....#\n#..tp..#\n#......#\n#......#\n########\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.lr....#\n#.t..p..#\n#@......#\n#########\n\n\n(soll schwierig sein)\n#######\n##...##\n#.b.b.#\n#.t.t.#\n#..@..#\n##p..##\n#######\n\n)\n\n(\n\n\n\nchoose 1 option 0.1 [no wall]->[wall]\n+ option 0.1 [wall]->[no wall]\n+ option 0.1 [target] [ no target no wall ] -> [ ] [ target ]\n+ option 0.1 [ target ] [ blob ] [ no target no wall ] [ no obstacle ] -> [ ] [ ] [ target ] [ blob ]\n\n\n(\n[target]->[]\n[blob]->[]\n[player]->[]\n)\n(\nchoose 1 [no wall] -> [ player ]\nchoose 1 option 0.1 [ no target no wall ] [ no obstacle ] -> [ target ] [ blob ]\n)\n(\nchoose 1 option 0.1 [no target ] -> [ target ]\noption 0.1 [ target | no target no wall] ->[target | target]\n)\n\n(choose 10 option 0.1 right [ no wall|blob | no obstacle|no wall] -> [| blob_l | blob_r |]\n+ option 0.1 down [ no wall|blob | no obstacle | no wall ] -> [ |blob_u | blob_d |]\n+ option 0.1 right [no wall| no obstacle | blob_l |no wall] -> [| blob_l | blob_h |]\n+ option 0.1 down [no wall| no obstacle | blob_u |no wall] -> [ |blob_u | blob_v |]\n+ option 0.1 []->[])\n\n\nchoose 4 [no wall no target ] -> [ target ]r\n\n\n\n()()()()()()()()\n\n\nchoose 1 [ no obstacle ] -> [ player ]\n\nchoose 1 [ no obstacle ] ->[blob target ]\n\n\nchoose 1 [ no obstacle ] [no target ] ->[blob] [target ]\n\nchoose 10 option 0.1 right [ |blob | no obstacle|] -> [| blob_l | blob_r |]\n+ option 0.1 down [ |blob | no obstacle | ] -> [ |blob_u | blob_d |]\n+ option 0.1 right [| no obstacle | blob_l |] -> [| blob_l | blob_h |]\n+ option 0.1 down [| no obstacle | blob_u |] -> [ |blob_u | blob_v |]\n+ option 0.1 []->[]\n\n\nright [ wall | blob_l | blob_h | blob_h | blob_r ] -> [ wall | blob_l | blob_h | blob_r | ]\ndown [ wall | blob_u | blob_h | blob_h | blob_l ] -> [ wall | blob_u | blob_h | blob_l | ]\n\n\n\n\n\n\n)\n\n", [2, 2, 1, 2, 3, 4, 1, 2, 2, 3, 1, 3, 1, 0, 1, 2, 2, 3, 0, 2, 3, 0, 1, 3, 3, 3, 3, 0, 0, 3, 2, 1, 0, 0, 3, 0, 0, 1, 0, 0, 0, 2, 2, 1, 1, 1, "restart", 2, 2, 0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 3, 2, 0, 0, 0, 0, 1, 0, 0, 3, 3, 3, 3, 2, 2, 2, 2, 1, 2, 2, 0, 0, 0, 0, 3, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 2, 2, 0, 0, 3, 2, 2, 2, 1, 1, 0, 0, 0, 0], "background wall:0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background:1,1,1,1,\n1,1,1,1,1,1,1,0,0,\n1,1,1,1,1,1,1,1,1,\n1,1,0,0,1,1,1,background blob_u target:2,background blob_v:3,\n3,3,background blob_d:4,1,1,1,0,0,1,\n1,background blob target:5,background player:6,2,3,3,3,4,1,\n1,0,0,1,1,1,5,1,1,\n1,1,1,1,1,0,0,1,1,\n1,1,1,1,1,1,1,1,1,\n0,0,1,1,1,1,1,1,1,\n1,1,1,1,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,\n", 16, "1627892574193.6548"] ], [ - "A CLEAR VIEW OF THE SKY", - ["title A CLEAR VIEW OF THE SKY\nauthor increpare\nhomepage www.increpare.com\n\nnorepeat_action\n\nrun_rules_on_level_start\n\ncolor_palette 2\n\nbackground_color #005784\ntext_color lightblue\n\n(uses https://github.com/increpare/Zersto-rungto generate levels)\n========\nOBJECTS\n========\n\nbackground\nblue\n\nlandbackground\ngreen\n\n\nwall \ndarkblue gray lightgray\n00000\n01110\n01110\n01110\n00000\n\nplayer_h\ntransparent\n.....\n..0..\n.000.\n..0..\n.....\n\n\nplayer_v\nyellow\n.....\n..0..\n.000.\n..0..\n.....\n\n\nfenster\n#005784\n\n\nfenster_up\n#1d3d60 lightblue\n00000\n.....\n.....\n.....\n.....\n\nfenster_down\ndarkblue #17669f\n.....\n.....\n.....\n.....\n11111\n\nfenster_left\n#1d3d60 #17669f\n1....\n1....\n1....\n1....\n1....\n\nfenster_right\n#1d3d60\n....0\n....0\n....0\n....0\n....0\n\nhtarget\norange\n.....\n.....\n00000\n.....\n.....\n\n\nvtarget\norange\n..0..\n..0..\n..0..\n..0..\n..0..\n\ninventar\ndarkblue\n\nbang\n yellow red\n...0.\n..00.\n.010.\n.00..\n.0...\n\nbang_schatten\ndarkgray\n...0.\n..00.\n.0.0.\n.00..\n.0...\n\nbond_u\ndarkblue gray lightgray\n.111.\n.....\n.....\n.....\n.....\n\n\n\nbond_d\ndarkblue gray lightgray\n.....\n.....\n.....\n.....\n.111.\n\n\n\nbond_l\ndarkblue gray lightgray\n.....\n1....\n1....\n1....\n.....\n\n\n\nbond_r\ndarkblue gray lightgray\n.....\n....1\n....1\n....1\n.....\n\n\n\n\ntl\ntransparent\n\nexploding\ntransparent\n\nexplosion\nred yellow\n.1.1.\n10.01\n..0..\n10.01\n.1.1.\n\nnofall\nred\n.0...\n.....\n.....\n.....\n.....\n\nfall\nlightblue\n.0...\n.....\n.....\n.....\n.....\n\n\nsky_darker 7\ndarkred darkblue\n01010\n10101\n01110\n10101\n01011\n\nsky_darker2 8\ndarkbrown black\n01010\n10101\n01110\n10101\n01011\n\n\nsky_darker4 0\nblack darkblue\n11010\n10111\n01010\n11101\n01011\n\nsky_darker3 9\nwhite black\n11111\n11101\n11111\n11111\n11111\n\nsky_darker7 w\nblack\n\nsky_pink 2\nred darkblue\n01010\n10101\n01110\n10101\n01011\n\nsky_orange 1\nred lightred\n01000\n10101\n00010\n01010\n00000\n\n\nsky_red 3\nred orange\n01010\n10101\n01010\n10101\n01010\n\nsky_yellow 4\nyellow red orange\n12121\n21212\n10001\n00000\n00000\n\nsky_purple 5 \nred blue\n01010\n11101\n01010\n10111\n01010\n\n\nsky_land 6\ndarkgreen green\n01010\n10101\n01010\n10101\n01010\n\n=======\nLEGEND\n=======\n\nplayer = player_h or player_v\ntarget = htarget or vtarget\n\n. = Background\n# = wall\nP = Player_h\nf = fenster\n\ng = landbackground\n\nobstacle = wall\n~ = tl and fenster\ni = inventar\nb = bang and inventar\nbond = bond_u or bond_d or bond_l or bond_r\n\nfallblocker = wall or fenster\nanimation = 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 or 0\n=======\nSOUNDS\n=======\n\nsfx0 55915302 (bang)\nsfx1 90167907 (other agains)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nlandbackground, inventar\nwall\nbond_u\nbond_d\nbond_l\nbond_r\nexplosion\ntarget\nPlayer, fenster, bang,bang_schatten\nfenster_up\nfenster_down\nfenster_left\nfenster_right\ntl\nexploding\nnofall\nfall\n1,2,3,4, 5, 6,7,8,9,0,w\n\n======\nRULES\n======\n\n\nup [fenster | no fenster ]-> [ fenster fenster_up | ]\ndown [fenster | no fenster ]-> [ fenster fenster_down | ]\nleft [fenster | no fenster ]-> [ fenster fenster_left | ]\nright [fenster | no fenster ]-> [ fenster fenster_right | ]\n\n[ tl no exploding ] [bond]->[ tl ] [ ]\ndown [ tl no exploding ] [wall | wall]->[tl][ wall bond_d | wall bond_u ]\nright [ tl no exploding ] [wall | wall]->[tl][ wall bond_r | wall bond_l ]\n\n[tl]->[tl exploding]\n\ndown [ wall no bond_d | fallblocker ] -> [ wall nofall | fallblocker ]\n(floodfill)\nup [nofall bond_u | ] -> [ nofall bond_u | nofall ]\n+ down [nofall bond_d | ] -> [ nofall bond_d | nofall ]\n+ left [nofall bond_l | ] -> [ nofall bond_l | nofall ]\n+ right [nofall bond_r | ] -> [ nofall bond_r | nofall ]\n\n\ndown [ wall no nofall | no fallblocker ] -> [ wall fall | ]\n\nup [fall bond_u | ] -> [ fall bond_u | fall ]\n+ down [fall bond_d | ] -> [ fall bond_d | fall ]\n+ left [fall bond_l | ] -> [ fall bond_l | fall ]\n+ right [fall bond_r | ] -> [ fall bond_r | fall ]\n\n[fall wall]->[down wall] sfx1 again\n\n[fall]->[]\n[nofall]->[]\n\n[up wall bond ] -> [ up wall up bond ]\n+ [down wall bond ] -> [ down wall down bond ]\n+ [left wall bond ] -> [ left wall left bond ]\n+ [right wall bond ] -> [ right wall right bond ]\n\n[target]->[]\n\n\n[horizontal player ] -> cancel\n(\n[up player_h ] -> [ up player_v ]\n[down player_h ] -> [ down player_v ]\n[left player_v ] -> [ left player_h ]\n[right player_v ] -> [ right player_h ]\n)\n\nright left down [ landbackground | no landbackground no fenster ] -> [ landbackground | landbackground no fenster ]\n\n\n[player_h ] -> [ player_h htarget ]\n[player_v ] -> [ player_v vtarget ]\n\nhorizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nvertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\nup [ bond_u | explosion ] -> [ | explosion ]\ndown [ bond_d | explosion ] -> [ | explosion ]\nleft [ bond_l | explosion ] -> [ | explosion ]\nright [ bond_r | explosion ] -> [ | explosion ]\n\n[explosion wall ] -> [ no bond ] sfx1 again\n\n[explosion ] -> [ ] again\n\n[action player ] [bang] -> [ player ] [ action bang_schatten ]\n\n[action bang_schatten ] [ target ]-> [ action bang_schatten ] [ explosion ] sfx0 again\n\n\nlate [target]->[]\n\nlate [player_h ] -> [ player_h htarget ]\nlate [player_v ] -> [ player_v vtarget ]\n\nlate horizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nlate vertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll wall on landbackground \n\n=======\nLEVELS\n=======\n\n\n(OK LEVELS)\n\n\n\n\nmessage All those ugly buildings blocking our view.\nmessage Let's DEMOLISH them to SAVE OUR SKY\n\nmessage level 1 of 13 : FACTORY\n(sehr einfach)\n~ffffffffffffff\nfif...........f\nfif...........f\nfif...........f\nfif....p......f\nfif.....#.....f\nfif...#.#.....f\nfif...#.###...f\nfbf...######..f\nfif..###...#..f\nfbfg.#...#.#..f\nfif..#...#.#..f\nfffffffffffffff\n\n\nmessage Ah, what a lovely view of the sky!\n\nmessage level 2 of 13 : Lop-sided Electricity Poll\n(actually ok?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif...#......f\nfif...##.....f\nfif...#......f\nfbf...##.....f\nfif....##....f\nfbfggggg#ggggf\nfif.....#....f\nffffffffffffff\n\n\n\n\nmessage level 3 of 13 : Water Pump\n(ok anfängerlevel?)\n~fffffffff\nfif...p..f\nfbf###...f\nfif#.###.f\nfbf#.##..f\nfif#.##..f\nfbf#gg##gf\nfif...#..f\nffffffffff\n\n\n\n\nmessage level 4 of 13 : Electricity Supply\n\n(einfach/gut?)\n~ffffffff\nfif###p#f\nfbf#.#.#f\nfbf#####f\nfbf##.#.f\nfifg####f\nfffffffff\n\n\nmessage level 5 of 13 : Water Font\n(hard)\n~fffffffffffff\nfifp....###..f\nfbf...#.#.#..f\nfbf...####...f\nfbf...##.##..f\nfifgg#g####ggf\nffffffffffffff\n\n\n\nmessage level 6 of 13 : Angry Goose\n(tricky + sieht gut aus)\n~ffffffffffff\nfifp##.####.f\nfbf.####.##.f\nfbf...##.#..f\nfbf...###...f\nfifgg##gggggf\nfffffffffffff\n\n\n\nmessage level 7 of 13 : Lean-to\n(nice/ok!)\n~fffffffffff\nfifp..#....f\nfif..##....f\nfbf.##.....f\nfif..#.....f\nfbf####....f\nfif...##...f\nfbfggg##gggf\nfif....##..f\nffffffffffff\n\n\n(medium-hard / fun! )\nmessage level 8 of 13 : Treehouse\n~fffffffffffffff\nfifp...........f\nfif........#...f\nfif........#...f\nfif.......####.f\nfbf.......#..#.f\nfif......#####.f\nfbf........#...f\nfif......###...f\nfbf......##....f\nfif.....##.....f\nfbfgggg#g#gggggf\nfif...####.....f\nffffffffffffffff\n\n\n\n\nmessage level 9 of 13 : Ugly Antenna\n(i had fun solving this)\n~fffffffffffff\nfifp.###.####f\nfbf..#.#....#f\nfif..#.##.###f\nfbf..#.###.#.f\nfif..####.##.f\nfbfggggg###ggf\nfif.....#....f\nffffffffffffff\n\n\n\n\nmessage level 10 of 13 : 60's Futuristic settlement\n(ok/interesting to solve!)\n~fffffffffff\nfbf##p.####f\nfif#...#..#f\nfbf#...####f\nfif######.#f\nfbf###.##.#f\nfifggg##gg#f\nfbf...#.#.#f\nfif...###..f\nffffffffffff\n\n\nmessage level 11 of 13 : Dystopic settlement\n(futuristic city - hardlevel?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..##......f\nfif..#.......f\nfbf..##.#.#..f\nfif..##.###..f\nfbf..###.###.f\nfif....#.##..f\nfbf....#.#...f\nfifggg####gggf\nffffffffffffff\n\n\nmessage level 12 of 13 : Space elevator\n(interesting? seemingly impossible?)\n~fffffffffffff\nfif#####p....f\nfif#.#.#.....f\nfif#.####....f\nfif#.##......f\nfif#g#gggggggf\nfif#.#.......f\nfif#.##......f\nfif#.#.......f\nfif#.##......f\nfbf#.#.......f\nfif#.###.....f\nfbf#.#.###.#.f\nfif#.###..##.f\nfbf##..####..f\nfif.#######..f\nffffffffffffff\n\n\n\n\nmessage level 13 of 13 : Building seeminly purposely constructed to block my view.\n\n(can't easily solve meh - could be ok final level? FINAL LEVEL)\n~fffffffffffffffff\nfif###p..........f\nfif#.##..........f\nfif####..........f\nfif...##.........f\nfif####..........f\nfif.#............f\nfif##............f\nfif###...........f\nfif..#...........f\nfif#####.........f\nfif...#.#.#......f\nfif######.#......f\nfif###..###......f\nfif#..###........f\nfif.....##.......f\nfifgggggg#gggggggf\nfif......###.....f\nfif.......##.....f\nfif.......##.....f\nfbf........##....f\nfif........##....f\nfbf.........##...f\nfif.........##...f\nfbf.........#####f\nfif............#.f\nffffffffffffffffff\n\n\nmessage Ahh, the sky is clear again, just in time for the sunset\n\n\n\n5555555555555555555\n5555522222222555555\n5552222222222222555\n5222222222222222225\n2222222111112222222\n2222211111111122222\n2221111133311111222\n2211111334331111112\n6666666666666666666\n6666666666666666666\n6666666666666666666\n\n\n\n\n22222222222222222222\n22222222222222222222\n22222222222222222222\n22222222222222222222\n22222221212122222222\n22221212121212122222\n22212121111121212222\n22121211111112121222\n66666666666666666666\n66666666666666666666\n66666666666666666666\n\n\n\n00000077777777000000\n00007777777777770000\n00077777777777777000\n07777777777777777770\n77777722222222777777\n77772222222222227777\n77722221111122222777\n77222211111112222277\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n88888888888888888888\n88888880000088888888\n88888000000000088888\n88800000000000000888\n88000000000000000088\n80000000000000000008\n00000000222000000000\n00000002222200000000\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwww000wwwwwwwww\nwwwww000222000wwwwww\n00000022222220000000\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n\n\nw9wwwwwwww9wwwwwwwww\nwwwwwwwwwwwwww9www9w\nwwww9wwwwwwwwwwwwwww\nwwwwwwwww9wwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwww9www\nw9wwwww9wwwww9wwwwww\nwwwwwwwwwwwwwwwwwwww\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\nmessage The End \n\n\n\n(\n\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf.....#....f\nfif....####..f\nfbf...##..#..f\nfif#.#..###..f\nfbf#####.##..f\nfif.#.####...f\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfbfp.........f\nfif....#.....f\nfbf....##....f\nfif....###...f\nfbf......#...f\nfif..######..f\nfbf...#.#.#..f\nfif.....####.f\nfbf....#.##..f\nfifgg#####gggf\nffffffffffffff\n\n(microscope?)\n~fffffffffffff\nfbfp.........f\nfif......##..f\nfbf.....##...f\nfif....##....f\nfbf....#.##..f\nfif....#.#...f\nfbf....####..f\nfif.......#..f\nfbf..######..f\nfifgg####ggggf\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.......#.f\nfif......#.#.f\nfif......#.##f\nfif......####f\nfbf....####.#f\nfifggggg#g##gf\nfbf...#####.#f\nfif....######f\nfbf..#.###...f\nfif.######...f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.....#...f\nfif......##..f\nfif....####..f\nfif....##.#..f\nfbf....###...f\nfifgg#g####ggf\nfbf..####.#..f\nfif..#####...f\nfbf..#######.f\nfif....#####.f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.....#...f\nfif....#.#...f\nfif....###...f\nfif...###..#.f\nfbf...#.####.f\nfifgggg##ggggf\nfbf...#####..f\nfif....####..f\nfbf..######..f\nfif..########f\nffffffffffffff\n\n\n\n\n~fffffffffff\nfbfp...#.#.f\nfif....#.##f\nfbf....###.f\nfif.###.###f\nfbf...###.#f\nfif.....##.f\nfbfggg###ggf\nfif...#####f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp...##..f\nfif.######.f\nfbf....#.#.f\nfif...###..f\nfbf...#.##.f\nfif....###.f\nfbfggg#gg#gf\nfif..######f\nffffffffffff\n\n(hard, but looks nice)\n~fffffffffff\nfbfp...#..#f\nfif....####f\nfbf.....#.#f\nfif...###..f\nfbf.....###f\nfif...###..f\nfbfg##g#g##f\nfif..######f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp..#.##.f\nfif...#.#..f\nfbf...#####f\nfif....#.#.f\nfbf....###.f\nfif...###..f\nfbfg###gg#gf\nfif.#.####.f\nffffffffffff\n\n~fffffffffff\nfifp.......f\nfif........f\nfif#.......f\nfbf###.....f\nfif#.##....f\nfbf##......f\nfif##......f\nfbf#.......f\nfif##.#....f\nfbf##.#....f\nfif.####...f\nfbf.#.####.f\nfif....#.#.f\nfbfgggg###gf\nfif....#...f\nffffffffffff\n\n\n\n(hard/unsolved)\n~fffffffffffff\nfifp...####..f\nfif.....##...f\nfbf....##....f\nfif...#.##...f\nfbf...#.#..#.f\nfif...####.#.f\nfbf....#.###.f\nfif....#.#...f\nfbfggg#######f\nfif..#...#...f\nfbf.######...f\nfif...###....f\nffffffffffffff\n\n\n(haard, pretty, unsolved)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf.....#....f\nfif....###...f\nfbf...#####..f\nfif.....#..#.f\nfbf.....####.f\nfif..#.#.#.#.f\nfbf.##.#.##..f\nfif..#.####.#f\nfbfgg##ggg#g#f\nfif...#######f\nffffffffffffff\n\n\n(haard, pretty, ,unsolved)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf...##..#..f\nfif.##.####..f\nfbf..##.#.#..f\nfif...#.###..f\nfbf...##.##..f\nfif....###...f\nfbf......#...f\nfif....######f\nfbfgg###ggg##f\nfif....#####.f\nffffffffffffff\n\n(haard ,unsolved)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfbf........f\nfif....###.f\nfbf.....###f\nfif......#.f\nfbf......#.f\nfif.....##.f\nfbf......##f\nfif....####f\nfbf....##..f\nfif...###..f\nfbf....##..f\nfifggg##gggf\nffffffffffff\n\n\n\n(too tired, don't want to solve)\n~ffffffffffffffffffffffffffffffffffffff\nfifp..................................f\nfif.......#...........................f\nfif.......#...........................f\nfif#.....##...........................f\nfif##...##............................f\nfif.####.#............................f\nfif....####...........................f\nfif....##.#...........................f\nfif.......##..........................f\nfif......####.........................f\nfif........#.#........................f\nfif.......####........................f\nfif.......#.##........................f\nfifggggggg#g##ggggggggggggggggggggggggf\nfif........####.......................f\nfif...........#.......................f\nfif........######.....................f\nfif........#.##.##....................f\nfif............##.....................f\nfbf..........####.....................f\nfif............####...................f\nfbf...........##.###..................f\nfif..............#.#..................f\nfbf................#..................f\nfif................###................f\nfffffffffffffffffffffffffffffffffffffff\n\n\n~fffffffffffff\nfbfp.#.......f\nfif..###.....f\nfbf..##......f\nfif...##.....f\nfbf..#.##....f\nfif.#####....f\nfbf...#.#..#.f\nfif....######f\nfbf.....#..#.f\nfifggggg##gggf\nffffffffffffff\n\n\n~fffffffffffff\nfifp.....##.#f\nfif.......#.#f\nfif.......#.#f\nfif.......###f\nfif.........#f\nfif.........#f\nfifggggggggg#f\nfif.......###f\nfif......##.#f\nfif.....###.#f\nfif.......###f\nfif.........#f\nfif.......###f\nfif......#..#f\nfif......####f\nfif.......#.#f\nfif........##f\nfif.......###f\nfif.........#f\nfif........##f\nfif.......###f\nfif........##f\nfif........##f\nfif.........#f\nfbf..##...###f\nfif..#...##.#f\nfbf..##....##f\nfif..###.###.f\nfbf...##.#...f\nfif...#####..f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif.........#f\nfif.......###f\nfif........##f\nfif........##f\nfif........##f\nfif.....##.##f\nfifgggggg#g##f\nfif.....#####f\nfif.........#f\nfif.....#####f\nfif.........#f\nfif...#######f\nfif.....#...#f\nfif......####f\nfif.........#f\nfif.......###f\nfif......##.#f\nfif.......#.#f\nfif.......###f\nfif......#..#f\nfif......####f\nfbf.........#f\nfif.......###f\nfbf.......#.#f\nfif.......##.f\nfbf.....###..f\nfif..#####...f\nffffffffffffff\n\n\n\n~fffffffffffffffffffffff\nfifp.................##f\nfif.................#.#f\nfif.................###f\nfif...................#f\nfif...................#f\nfif..................##f\nfifgggggggggggggggggg##f\nfif..................##f\nfif.................#.#f\nfif.................#.#f\nfif.............###.###f\nfif..............#.##.#f\nfif..............###..#f\nfif...............#.#.#f\nfbf...............#.###f\nfif...##....#.##..###.#f\nfbf...###.###..#.#.#.##f\nfif....####.#..#######.f\nfbf......########..#.#.f\nfif..........##......#.f\nffffffffffffffffffffffff\n\n\n\n~ffffffffffffffffff\nfif##p.....#######f\nfif##.......##...#f\nfif#..#.......####f\nfif######.....####f\nfbf#....##..###..#f\nfif######...#.#.##f\nfbfg#gg####g##ggggf\nfif.....#.#####...f\nfbf.....###.#.....f\nfif.......##......f\nfffffffffffffffffff\n\n\n\n~ffffffffffffffffff\nfif########p......f\nfif#.#.#.#........f\nfif#.#.#.#...#....f\nfif#.######.######f\nfbf#g##gg#######ggf\nfif#.#...##.#..##.f\nfbf###....#.###...f\nfif##.....###.....f\nfbf#....####......f\nfif.......#.......f\nfffffffffffffffffff\n\n\n\n~fffffffffffffffffffffff\nfifp.......############f\nfif......####.#.......#f\nfif......#.#.#.########f\nfif.......##.#.#......#f\nfbfggggggg#g##g########f\nfif......###.#.#.#.####f\nfbf........######...#..f\nfif.....###....#.......f\nfbf.......######.......f\nfif.....########.......f\nffffffffffffffffffffffff\n\n\n\n\n\n~fffffffffffffffffffffff\nfif###p########.##.####f\nfif#####..#.#...####..#f\nfif...#.###.##....#.###f\nfif#######..#.#########f\nfbf.#...#.#.######.#...f\nfifg#####g##g##ggggggggf\nfbf.....######.........f\nfif.......#..##........f\nfbf.........###........f\nfif..........###.......f\nffffffffffffffffffffffff\n\n\n\n\n~fffffffffffffffffffffff\nfif#########p....##....f\nfif#.#.#.##....###.....f\nfif#.#.#.#....#.####...f\nfif#.#.#.#....#.#..#...f\nfbf#g#g###gggg#g###ggggf\nfif####..#.#..###.#....f\nfbf...####.#..##.......f\nfif...##.#.##.#.#......f\nfbf....##########......f\nfif....#....##.#.......f\nffffffffffffffffffffffff\n\n\n\n(hard, haven't solved manually)\n~fffffffffffff\nfif###p......f\nfbf#.#.......f\nfif#.###.....f\nfbf#.#.##....f\nfif####g####gf\nfbf##.####...f\nfif.##..#....f\nffffffffffffff\n\n\n(too hard)\n~fffffffffffff\nfif#####p....f\nfif#.#.#.....f\nfif#.##.#....f\nfif#.#####...f\nfif#.##.#....f\nfif#g#gggggggf\nfif#.####....f\nfif#.#.#..##.f\nfif#.###.#.##f\nfbf##..#####.f\nfif.####.....f\nfbf...###....f\nfif....#.....f\nfbf....#.##..f\nfif....###...f\nffffffffffffff\n\n\n\n(hard, looks ok, but meh)\n~fffffffffffff\nfif###p#.....f\nfif##.##.....f\nfif##.#......f\nfif####......f\nfif#.#.......f\nfbf#.#.......f\nfif###.......f\nfbf#.##......f\nfif#.##......f\nfbf##g##gggggf\nfif.###......f\nfbf.#.##.....f\nfif...#......f\nfbf..###.#...f\nfif....####..f\nffffffffffffff\n\n\n(hard, looks ok, but meh)\n~fffffffffffff\nfif##p#......f\nfif####......f\nfif#.##......f\nfif#.#.......f\nfif#.#.......f\nfbf###.......f\nfif#.........f\nfbf###.......f\nfif#.........f\nfbf#####gggggf\nfif#.##.#....f\nfbf..##.##...f\nfif..#####...f\nfbf.....###..f\nfif...###....f\nffffffffffffff\n\n(hmmm! not sure!)\n~ffffffffffffffffffffffffffff\nfifp........................f\nfif.........................f\nfif.........................f\nfif.........................f\nfif....................##...f\nfif.....................##..f\nfif....................##...f\nfif...................###...f\nfif...................##....f\nfif.................####....f\nfifgggggggggggggggggggg###ggf\nfif...............######.##.f\nfif..................#.#....f\nfif..................####...f\nfif................####.#...f\nfif................###......f\nfif..................##.....f\nfif..................#.##...f\nfif................###.##...f\nfbf................#.#####..f\nfif...............##.#......f\nfbf................####.....f\nfif................##.......f\nfbf.............#####.......f\nfif.........#####...........f\nfffffffffffffffffffffffffffff\n\n\n\n(soll schwierig sein - will nicht lösen!)\n~fffffffffff\nfifp.......f\nfif........f\nfbf........f\nfif....#...f\nfbf..###...f\nfif....##..f\nfbf...#.#..f\nfif...#.##.f\nfbf...#.###f\nfif..###.##f\nfbf..#.###.f\nfifgggg##ggf\nffffffffffff\n\n\n(soll schwierig sein - ja zu schwierig)\n~ffffffffffff\nfif.........f\nfbf.p.......f\nfif...#.....f\nfbf...#.....f\nfif...###...f\nfbf...#.##..f\nfif.#####...f\nfbf..#..###.f\nfif...##..#.f\nfbf....####.f\nfifggggg##ggf\nfffffffffffff\n\n(hard - will nicht lösen )\n~fffffffffffff\nfifp.........f\nfif......#...f\nfif.....##...f\nfif....##....f\nfbf....#.##..f\nfif....###...f\nfbfgggg##ggggf\nfif...###....f\nfbf.....#....f\nfif....##....f\nffffffffffffff\n\n\n(should be hard?)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfif...##...f\nfbf..###...f\nfif.###....f\nfbf...##...f\nfif....#...f\nfbf..#.##..f\nfifgg##g#g.f\nfbf...#.#..f\nfif...###..f\nffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n(zeimlich einfach!)\n~fffffffffff\nfifp.#..#..f\nfif..##.#..f\nfbf...#.##.f\nfif...####.f\nfbf....##..f\nfif..###...f\nfbfgggg#gggf\nfif....#...f\nffffffffffff\n\n\n(simple/ok)\n~ffffffffff\nfifp.#..##f\nfbf..#####f\nfif..#.#.#f\nfbf...##..f\nfif..##...f\nfbfggg###gf\nfif..##...f\nfffffffffff\n\n\n(simple/ok)\n~fffffffffff\nfifp......#f\nfif......##f\nfbf......##f\nfif.....###f\nfbf.......#f\nfifgggggg##f\nfbf.....##.f\nfif...###..f\nffffffffffff\n\n\n\n\n(simple/ok / ok maybe nicer than ok! :] )\n~fffffffffff\nfifp....#..f\nfif...#.##.f\nfbf...###..f\nfif..###...f\nfbf...#....f\nfif...##...f\nfbfgggg##ggf\nfif....#...f\nffffffffffff\n\n\n\n\n\n\n\n(beautiful-looking? not fun to solve)\n~fffffffffff\nfbf########f\nfif##p...##f\nfbf##...#.#f\nfif#.#..###f\nfbf#.#...##f\nfif###g#g##f\nfbf#.######f\nfif....#.#.f\nffffffffffff\n\n\n\n\n\n\n\n(ok to solve!)\n~fffffffffff\nfbfp...####f\nfif....#..#f\nfbf....####f\nfif#.###..#f\nfbf#.#.####f\nfif####gg##f\nfbf.#.####.f\nfif....#.#.f\nffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n~fffffffffffff\nfifp...######f\nfif.......#.#f\nfif.........#f\nfif.......###f\nfif.......#.#f\nfif.....#####f\nfifgggggg##g#f\nfif......#.##f\nfif......#.##f\nfbf......#.##f\nfif......####f\nfbf......##.#f\nfif...#..#...f\nfbf..#####...f\nfif.....###..f\nffffffffffffff\n\n\n(dunno? schwierig)\n~fffffffffffff\nfbf#####p####f\nfif...####..#f\nfbf....#.####f\nfif.....#.#.#f\nfbf.....#.###f\nfif.....#.#.#f\nfbf.....#.#.#f\nfifgggg######f\nfbf......###.f\nfif....###...f\nffffffffffffff\n\n\n\n\n\n~fffffffffffff\nfifp..#.###..f\nfbf..##.#.#..f\nfbf...####...f\nfbf....##.#..f\nfifg##g#g##ggf\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif...#......f\nfif...###....f\nfbf....###...f\nfif.....#....f\nfbf....###...f\nfif...##.....f\nfbfgg##ggggggf\nfif.#####....f\nffffffffffffff\n\n\n\n~ffffffff\nfif....#f\nfif....#f\nfif....#f\nfif..###f\nfif....#f\nfif.p.##f\nfif....#f\nfif#.###f\nfif#..#.f\nfbf####.f\nfif#.#..f\nfbf#g#ggf\nfif###..f\nfbf..##.f\nfif###..f\nfbf#.##.f\nfif####.f\nfffffffff\n\n\n(Tricky)\n~fffffffffff\nfbfp.......f\nfif........f\nfbf...#....f\nfif...##...f\nfbf..#.#...f\nfif..#.###.f\nfbf.###.#..f\nfif...####.f\nffffffffffff\n\n\n~fffffffffff\nfbfp..##...f\nfif....##..f\nfbf...##...f\nfif...###..f\nfbf...#....f\nfif...###..f\nfbfggggg#ggf\nfif...####.f\nffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif...#......f\nfif...#......f\nfif...##.....f\nfbf....#.....f\nfif....##....f\nfbf.....#....f\nfif....###...f\nfbfggg#gg##ggf\nfif...####...f\nffffffffffffff\n\n\n\n\n~fffffffffff\nfifp...###.f\nfif...##.#.f\nfbf..#.###.f\nfif..###.#.f\nfbfggg####gf\nfif.....###f\nfbf...###..f\nfif...####.f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif.....#..f\nfif...###..f\nfif.....###f\nfbf....##..f\nfif...##...f\nfbf.#.##..#f\nfif.##.##.#f\nfbf#g#g#g##f\nfif########f\nfbf#......#f\nfif########f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif..#.....f\nfbf..##....f\nfif..###...f\nfbf..#.#...f\nfif..###...f\nfbfggg###ggf\nfif....#...f\nffffffffffff\n\n\n~fffffffffff\nfifp...##..f\nfif....###.f\nfif...##.#.f\nfif...#.#..f\nfbf...#.#..f\nfif...#.###f\nfbf..######f\nfifggg##gggf\nfbf....####f\nfif....#..#f\nfbf####.###f\nfif.#######f\nffffffffffff\n\n\n\n\n~ffffffffff\nfifp......f\nfif.......f\nfif.......f\nfif.......f\nfbf..###..f\nfif..#.#..f\nfbf.#.##..f\nfif.#####.f\nfbf...#...f\nfif.###...f\nfbfgg#g##gf\nfif..###..f\nfffffffffff\n\n\n\n~ffffffff\nfifp###.f\nfbf.#.##f\nfif.####f\nfbf.##..f\nfif..##.f\nfffffffff\n\n\n~fffffffffff\nfifp###....f\nfbf.#.##...f\nfbf.#.##...f\nfbf.#.##...f\nfifgggg##ggf\nffffffffffff\n\n\n~fffffffffff\nfifp...###.f\nfbf..#.#.#.f\nfbf..##.##.f\nfbf.#####..f\nfifgggg####f\nffffffffffff\n\n\n\n\n~fffffffffffff\nfifp...##.#..f\nfif....#.##..f\nfbf....#.##..f\nfif....#.##..f\nfbf....#.#.##f\nfif...######.f\nfbfggg#g##gggf\nfif..####....f\nfbf.....##...f\nfif...###....f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp....#....f\nfif.....#.#..f\nfif.....###..f\nfif...###.#..f\nfbfggg#g#####f\nfif....##.###f\nfbf...#.###..f\nfif...####...f\nfbf......##..f\nfif...#####..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp..#.#..f\nfbf...###..f\nfif....##..f\nfbfggg##gggf\nfif....#...f\nffffffffffff\n\n\n\n~fffffffffffff\nfifp...##....f\nfif.....#....f\nfif.....#....f\nfifggggg#ggggf\nfif#.####....f\nfif#.#..#....f\nfbf##.###....f\nfif.###.#####f\nfbf....#.#...f\nfif..######..f\nffffffffffffff\n\n\n~fffffffffff\nfifp...#.#.f\nfbf....###.f\nfif....##..f\nfbfggg#g###f\nfif...###..f\nffffffffffff\n\n\n~fffffffff\nfbfp##.#.f\nfif..#.#.f\nfbf..####f\nfif.###..f\nfbf...##.f\nfifggg#ggf\nffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif.......#..f\nfbf.......#..f\nfif.......#..f\nfbf....#####.f\nfif...####...f\nfbf.....#....f\nfifggggg##gggf\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif...#......f\nfbf..##......f\nfif...#.#....f\nfbf...###....f\nfif....#.....f\nfbf....##....f\nfif....####..f\nfbf.......##.f\nfifggg######gf\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif.#........f\nfbf.##.......f\nfif..#.......f\nfbf.###......f\nfif.#####....f\nfbf...#.##...f\nfif....#.##..f\nfbf....##.##.f\nfifggggg#####f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp....#....f\nfif.....#....f\nfbf.....#....f\nfif.....##...f\nfbf...##.#...f\nfif....#.#...f\nfbf....#.###.f\nfifgggg#g#gggf\nfbf...##.##..f\nfif....#####.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp..#......f\nfif...#......f\nfbf..###..#..f\nfif....####..f\nfbf.....#....f\nfif.....###..f\nfbf.....#.#..f\nfifggggg##gggf\nfbf...###.#.#f\nfif....######f\nffffffffffffff\n\n\n~fffffffffffff\nfifp..#......f\nfif...##.....f\nfbf...#..#...f\nfif..###.#...f\nfbf....#.#...f\nfif..######..f\nfbf.....#....f\nfif.....###..f\nfbfggggg#ggggf\nfif...#####..f\nffffffffffffff\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf#.........f\nfif#.........f\nfbf##........f\nfif.######...f\nfbf..#.#.#...f\nfif..##.##...f\nfbf..##.#.#..f\nfif...######.f\nffffffffffffff\n\n\n(hard)\n~fffffffffffff\nfifp...##....f\nfif....#.....f\nfbf....#.....f\nfif....##....f\nfbf....##....f\nfif..##.##...f\nfbf...#.#....f\nfifggg#g##gggf\nfbf..###.##..f\nfif....####..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp..#.#..f\nfif...###..f\nfif...##...f\nfbfgggg##ggf\nfif....##..f\nfbf...##...f\nfif....##..f\nffffffffffff\n\n\n(trivial)\n~fffffffffff\nfifp.....#.f\nfif.....##.f\nfif.....#..f\nfbf...###..f\nfif.####...f\nfbfggg##gggf\nfif....##..f\nffffffffffff\n\n\n(too easy)\n~fffffffffff\nfifp.......f\nfif.....#..f\nfif.....#..f\nfif.....#..f\nfbf.....#..f\nfif.....#..f\nfbf...####.f\nfifggg##g##f\nfbf.##.#...f\nfif..###...f\nffffffffffff\n\n\n\n(nice shape)\n~fffffffffff\nfifp.......f\nfif........f\nfif...#....f\nfif...##...f\nfbf....##..f\nfif...#.#..f\nfbf..#####.f\nfifgggg##ggf\nfbf....##..f\nfif...###..f\nffffffffffff\n\n(nice?/meh)\n~fffffffffff\nfifp.......f\nfif...#....f\nfif...#....f\nfif...##...f\nfbf....##..f\nfif....##..f\nfbf.....#..f\nfifgggg##ggf\nfbf..#.###.f\nfif.#####..f\nffffffffffff\n\n\n\n~fffffffffffff\nfifp#..#.#...f\nfif.####.#...f\nfbf..#.####..f\nfbf..#.##....f\nfbf.###.###..f\nfbf...#.#....f\nfbf...#####..f\nfifgggg######f\nffffffffffffff\n\n\n~fffffffffffff\nfifp....##..#f\nfif....#.#..#f\nfbf...##.####f\nfbf....####.#f\nfbf..##.#..##f\nfbf..##.#####f\nfbf...#####..f\nfifggg#g#ggggf\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.......#.f\nfif.....##.#.f\nfbf.....#.##.f\nfbf....#####.f\nfbf#......#..f\nfbf##.#######f\nfbf.##...##.#f\nfif.######..#f\nffffffffffffff\n\n\n~fffffffffffff\nfifp...###...f\nfif.##.#.##..f\nfbf..#.#####.f\nfbf..#..#....f\nfbf.#####....f\nfbf..#..##...f\nfbf..###.####f\nfifggg####g##f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..........f\nfif......#...f\nfbf...####...f\nfif...#.#....f\nfbf...####...f\nfif....#.##.#f\nfbf....##.###f\nfif...######.f\nfbf..##...##.f\nfif..######..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp.##....f\nfif...##...f\nfbf....##..f\nfif...#.##.f\nfbf...####.f\nfif...#..#.f\nfbf..####..f\nfifgggg##ggf\nfbf....#.#.f\nfif....####f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif....##..f\nfbf..##.#..f\nfif...#.##.f\nfbf...####.f\nfif...#..#.f\nfbf...###.#f\nfif....####f\nfbfgggg#g#gf\nfif..###...f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif....#...f\nfbf....##..f\nfif..###...f\nfbf..#.#..#f\nfif..##...#f\nfbf.####.##f\nfif...#.###f\nfbfggg#g#ggf\nfif...###..f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif....#...f\nfbf..###...f\nfif...#....f\nfbf##.##.#.f\nfif.##.####f\nfbf..##.##.f\nfif...###..f\nfbfggggg#ggf\nfif...###..f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif..#.....f\nfbf..##.##.f\nfif...###..f\nfbf..#.####f\nfif.##.#...f\nfbf..####..f\nfif...#.#..f\nfbfggg####gf\nfif...##...f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp.#.....f\nfif..#.....f\nfbf..#.#...f\nfif..###...f\nfbf...#.##.f\nfif...####.f\nfbf...##.#.f\nfif....##..f\nfbf...#.###f\nfif...#####f\nffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif......#...f\nfbf......##..f\nfif.....#.#..f\nfbf.....#.#..f\nfif...######.f\nfbf.....##...f\nfif#....##...f\nfbf###.###...f\nfif..#.##....f\nfbfgg##g###ggf\nfif...##.##..f\nfbf....#.###.f\nfif....###.#.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfbf.....#....f\nfif....##....f\nfbf....##....f\nfif.....##...f\nfbf....#.##..f\nfif....####..f\nfbf....#..##.f\nfif....#####.f\nfbf...##...#.f\nfifggg#g#####f\nfbf..#.#...#.f\nfif.########.f\nffffffffffffff\n\n\n\n\n\n\n\n~fffffffffff\nfifp.......f\nfif...#....f\nfbf...#.#..f\nfif...###..f\nfbf....##..f\nfif..###...f\nfbfgggg##ggf\nfif...##...f\nffffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.....#.f\nfbf....###f\nfif..#.##.f\nfbf#####..f\nfif.###...f\nfbf...#...f\nfif.####..f\nfffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.......f\nfbf..#.#..f\nfif.##.#..f\nfbf..###..f\nfif#..####f\nfbf####...f\nfif.#.#...f\nfffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.......f\nfbf..#..#.f\nfif.#####.f\nfbf...#.#.f\nfif.####..f\nfbf.##.##.f\nfif...##..f\nfffffffffff\n\n\n~fffffffffff\nfifp..###..f\nfbf.#.#.#..f\nfbf.#.##...f\nfbf.##.##..f\nfbf..#####.f\nffffffffffff\n\n\n~fffffffffff\nfifp.#.#.#.f\nfbf..###.#.f\nfif...#####f\nfbf..#..##.f\nfif..####..f\nffffffffffff\n\n\n~fffffffffff\nfifp..###.#f\nfbf...#.#.#f\nfif....####f\nfbf...##.##f\nfif...####.f\nffffffffffff\n\n\n\n~fffffffffff\nfifp..###..f\nfbf.#.#.#..f\nfif.#..##..f\nfbf#####...f\nfif..#####.f\nffffffffffff\n\n\n\n\n(figure giving tribute - meh?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif.....#.#..f\nfbf....####..f\nfif....#.#...f\nfbf....#.###.f\nfif.######...f\nfbf.....###..f\nfifgg####g#ggf\nffffffffffffff\n\n\n\n\n\n\n\n\n~fffffffffffff\nfbfp.#.......f\nfif..###.....f\nfbf..##......f\nfif...##.....f\nfbf..#.##....f\nfif.#####....f\nfbf...#.#..#.f\nfif....######f\nfbf.....#..#.f\nfifggggg##gggf\nffffffffffffff\n\n\n~fffffffffffffffffffffffffffffffffffffffffff\nfifp.####...##########.###################.f\nfbf....###.##....###.##.#.......####...#...f\nfbf...##.#.#######..###.#########..........f\nfbf......###.#..#...#.#####..#.............f\nfifggggggg##gggggggggg##gg#gg#gggggggggggggf\nffffffffffffffffffffffffffffffffffffffffffff\n\n\n(interesting!)\n~fffffffffff\nfbf####p###f\nfif#......#f\nfbf###....#f\nfif#.#...##f\nfbf#.##..##f\nfif###ggg##f\nfbf##..###.f\nfif.####.#.f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp#######f\nfif.#.###.#f\nfbf...#..##f\nfif######.#f\nfbf.###.###f\nfifggg###g#f\nfbf..###..#f\nfif..#.#...f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp#######f\nfif.#.###.#f\nfbf...#..##f\nfif######.#f\nfbf.###.###f\nfifggg###g#f\nfbf..###..#f\nfif..#.#...f\nffffffffffff\n\n\n\n~fffffffffffff\nfif##p.......f\nfif##........f\nfif#.........f\nfif##........f\nfif##........f\nfif#.........f\nfbf###gggggggf\nfif#.##......f\nfbf##.##.....f\nfif.###..#...f\nfbf..##..#...f\nfif...######.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.......##f\nfif.........#f\nfif.......###f\nfif.......#.#f\nfif......##.#f\nfif......#.##f\nfbf.....#####f\nfifggg####g#gf\nfbf..##.##...f\nfif.....###..f\nfbf.....#....f\nfif.....#....f\nffffffffffffff\n\n\n~fffffffffffff\nfif###p......f\nfif#.#.......f\nfif#.#.......f\nfif#.#.......f\nfif####.....#f\nfifggg#gggg##f\nfif...##....#f\nfif....###..#f\nfbf.....#.###f\nfif.....###..f\nffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n(bad)\n~fffffffffffff\nfifp..#......f\nfif...#......f\nfbf..##......f\nfif..##......f\nfbf..#####...f\nfif...#..##..f\nfbf....######f\nfif.....#..#.f\nfbfggggg##g#gf\nfif....###...f\nffffffffffffff\n\n\n(trivial)\n~fffffffffff\nfifp.#.....f\nfif..##....f\nfbf..###...f\nfif..#.....f\nfbf..####..f\nfif....#...f\nfbfggg##gggf\nfif....#...f\nffffffffffff\n\n(pretty trivial)\n~fffffffffff\nfifp.....#.f\nfif......#.f\nfbf...#.##.f\nfif...#.#..f\nfbf...###..f\nfif...##...f\nfbf....#...f\nfifgggg#gggf\nffffffffffff\n\n\n\n\n(fiine / easy )\n~fffffffffff\nfbfp.......f\nfif......#.f\nfbf......#.f\nfif.....##.f\nfbf....###.f\nfif....#...f\nfbf..###...f\nfif...##...f\nfbf...#.##.f\nfif...###..f\nffffffffffff\n\n\n(meh)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfbf........f\nfif........f\nfbf......#.f\nfif......##f\nfbf.....###f\nfif...###.#f\nfbf.....#.#f\nfif..######f\nfbf...#.#.#f\nfif....###.f\nfbf...##.#.f\nfifgg######f\nffffffffffff\n\n\n\n\n(pretty easy)\n~fffffffffff\nfbfp.......f\nfif........f\nfbf.....##.f\nfif......##f\nfbf.....##.f\nfif....#.##f\nfbf....####f\nfif...###..f\nfbf....##..f\nfif...##...f\nffffffffffff\n\n\n\n\n(easy/arbirtaray/pretty)\n~fffffffffffff\nfif.....p....f\nfif..#.#.....f\nfif..###.....f\nfif...#..#.#.f\nfif...#..###.f\nfbf...#...#..f\nfifg###...#..f\nfbf.#.....#..f\nfif.#.....#..f\nffffffffffffff\n\n\n\n(too trivial)\n~fffffffffffffffffffffffffffffffff\nfifp.............................f\nfif......#.......................f\nfif.....##.......................f\nfif.....##.......................f\nfif...####.......................f\nfif....#.#.......................f\nfif.....###......................f\nfif......#.......................f\nfif......#...#...................f\nfif.....######...................f\nfifggggggg####gggggggggggggggggggf\nfif..........#...................f\nfif..........#...................f\nfif..........##..................f\nfif..........##..................f\nfif.........###..................f\nfbf...........##.................f\nfif...........##.................f\nfbf............###.#.............f\nfif............######............f\nffffffffffffffffffffffffffffffffff\n\n\n(meh)\n~fffffffffffffffffffffffffffffffff\nfifp.............................f\nfif..............................f\nfif.........#....................f\nfif.........#....................f\nfif........###...................f\nfif..........#...................f\nfif.......#####..................f\nfif......##..###.................f\nfif.....##....##.................f\nfif.....#.....#..................f\nfifgggggggggg###gggggggggggggggggf\nfif...........##.................f\nfif...........#.#................f\nfif...........###................f\nfif............###...............f\nfif.............###..............f\nfbf...............###............f\nfif...............#.##...........f\nfbf...............##.............f\nfif...............#..............f\nffffffffffffffffffffffffffffffffff\n\n\n\n\n\n(meh)\n~fffffffffffffffffffffffffffffffffffffffffff\nfifp.##################.###################f\nfbf...#.#.##.##.##.#..#.#.#.##.#.....#.#.##f\nfif...#.#....##...#########.....######.#.#.f\nfbfgggggggggggggg##g#g##gggggggggg#ggggggggf\nfif...............#....##........###.......f\nffffffffffffffffffffffffffffffffffffffffffff\n\n\n(meh)\n~fffffffffffff\nfifp.........f\nfbf..........f\nfif......#...f\nfbf......#...f\nfif.....##...f\nfbf.....#....f\nfif....##....f\nffffffffffffff\n\n\n\n\n\n(looks good, but too easy?)\n~fffffffffff\nfbf########f\nfif#p.##..#f\nfbf###..###f\nfif#...####f\nfbf#####..#f\nfif#ggg####f\nfbf######.#f\nfif...##...f\nffffffffffff\n\n(trivial)\n~ffffffff\nfifp..##f\nfbf.#..#f\nfif.####f\nfbf.###.f\nfif..#..f\nfffffffff\n\n(trivial)\n~ffffffff\nfif#p...f\nfbf##.#.f\nfif####.f\nfbf..##.f\nfif.##..f\nfffffffff\n\n\n(Trivial)\n~ffffffff\nfifp..#.f\nfbf.#.##f\nfif.####f\nfbf.##.#f\nfif..#..f\nfffffffff\n\n\n(zu einfach)\n~ffffffffff\nfif##p.#..f\nfbf###.#..f\nfif#.###..f\nfbf#.##...f\nfif####...f\nfbfggg###gf\nfif...##..f\nfffffffffff\n\n\n(zu einfach?)\n~ffffffffff\nfifp...###f\nfbf....#.#f\nfif....###f\nfbf....#.#f\nfifgggg###f\nfbf####.##f\nfif.#####.f\nfffffffffff\n\n\n\n(meh)\n~fffffffffff\nfifp....###f\nfif....####f\nfbf....#..#f\nfif.#..####f\nfbfg#gg#gg#f\nfif.#######f\nfbf.....###f\nfif....##..f\nffffffffffff\n\n\n\n(meh)\n~fffffffffffff\nfif#####p....f\nfif#.##......f\nfif#.##......f\nfif#.#.##...#f\nfif#g#g###g##f\nfif####..#.##f\nfif##.####.##f\nfif....##.#.#f\nfbf.....#####f\nfif.....##.##f\nffffffffffffff\n\n\n(meh)\n~fffffffffffff\nfif###p......f\nfif#.#.......f\nfif#.##......f\nfif#.#.#...#.f\nfif#g#g##gg##f\nfif#.#.######f\nfif####..#.##f\nfif.#.#####.#f\nfbf....#.#.##f\nfif.....#####f\nffffffffffffff\n\n\n(trivial)\n~fffffffffffffffffffffff\nfif#########p.#########f\nfif#......#...#.......#f\nfif########....########f\nfif#.....#....##.#....#f\nfif#######gggg##g######f\nfif#.....###.#.####...#f\nfif#############.......f\nfif.#####...#..........f\nfbf.........##.........f\nfif..........##........f\nffffffffffffffffffffffff\n\n(trivial)\n~fffffffffffffffffffffff\nfif#######p#....#######f\nfif#.#.#.#.##....#.#.##f\nfif###.#.###..#..#.#.##f\nfif..#.#.#...###.######f\nfif########gg#g#g#gggg#f\nfif.##...##############f\nfif..#####..#...#.#.#..f\nfif..........####.#.#..f\nfbf..........##........f\nfif.........###........f\nffffffffffffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n(THE REST)\n\n(hard, couldn't solve myself)\n~fffffffffffffff\nfifp.........##f\nfif.........##.f\nfif.........###f\nfif........#..#f\nfbf........#.##f\nfif........#.#.f\nfbf.......#####f\nfif........#.##f\nfbf........#..#f\nfifggggggg##gggf\nfbf......##....f\nfif.....##.....f\nffffffffffffffff\n\n\n\n\n(solved first go, ok? ohne persönlichkeit) \n~fffffffffffff\nfbfp.......##f\nfif........#.f\nfbf........#.f\nfif.......##.f\nfbf......##..f\nfif.......#..f\nfbf......####f\nfif......##.#f\nfbf....###...f\nfif.....#....f\nffffffffffffff\n\n(too routine)\n~fffffffffffff\nfbfp.........f\nfif...#......f\nfbf...#......f\nfif..##......f\nfbf...##.....f\nfif.##.#.....f\nfbf..###.....f\nfif..#.##....f\nfbf....##....f\nfif.....##...f\nffffffffffffff\n\n(scheiße)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif..#.......f\nfbf..##......f\nfif...#......f\nfbf...##.....f\nfif....#.....f\nfbf....##....f\nfif.....#....f\nffffffffffffff\n\n\n(zu einfach/procedural?)\n~ffffffffffffff\nfifp..........f\nfif........#..f\nfif........#..f\nfbf.......###.f\nfif.......#.#.f\nfbf.......#...f\nfif.....###...f\nfbf......#....f\nfif......#....f\nfbf....###....f\nfif..####.....f\nfffffffffffffff\n\n\n\n\n\n(zu einfach)\n~fffffffffffff\nfbfp........#f\nfif.........#f\nfbf........##f\nfif.......###f\nfbf.......#..f\nfif.....###..f\nfbf.....#.#..f\nfif....###...f\nfbf....##....f\nfif.....#....f\nffffffffffffff\n\n(kein level)\n~fffffffffffff\nfif...p......f\nfif..........f\nfif..........f\nfif..#.......f\nfif..#.#####.f\nfif..#.....#.f\nfbf..#####.#.f\nfbf..#.....#.f\nfbf........#.f\nfbfgg.g#####gf\nfifgg.g#gggggf\nffffffffffffff\n\n(zu einfach)\n~ffffffffffffff\nfif...........f\nfif...........f\nfif...........f\nfif...p..#....f\nfif.#....#....f\nfif.#....#....f\nfif.#...##....f\nfif.#....##...f\nfbf.##....#...f\nfbfg.#..#.#...f\nfif..#..#.#...f\nfif..#..#.#...f\nfffffffffffffff\n\n\n\n\n\n(zu einfach?)\n~ffffffffff\nfif.......f\nfbf.#.#.#.f\nfif.#.#.#.f\nfbf.#####.f\nfif..#p#..f\nfbf.g###.gf\nfif.g.#g.gf\nfffffffffff\n\n(no level)\n~fffffffff\nfif...p..f\nfbf.g#.#.f\nfif.g###.f\nfbf....#.f\nfif...##.f\nfbfg..#..f\nfif...#..f\nffffffffff\n\n\n(no level)\nffffffff\nf......f\nf....#.f\nfg...#.f\nf..P.#.f\nf..#.#.f\nf..#.#.f\nf.##.#.f\nffffffff\n\n\n(zu einfach)\n~ffffffffff\nfifp....#.f\nfbf....###f\nfif.....##f\nfbf...###.f\nfif...##..f\nfbf...#...f\nfifg####ggf\nfffffffffff\n\n(kein Level)\n~fffffffffffff\nfif...p......f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbfg.........f\nfif..........f\nffffffffffffff\n\n\n\n(kein Level)\n~fffffffffffff\nfif#..p.#.#..f\nfbf########..f\nfbf#......#.#f\nfbf#.#####..#f\nfbf#.....#..#f\nfbf#..##.#..#f\nfbf#...#.#..#f\nfbf#####.####f\nfbf...#...#..f\nfbfg..#####..f\nfif....#.....f\nffffffffffffff\n\n\n\n\n\n(kein Level)\n~fffffffffffff\nfif...p......f\nfbf######....f\nfbf#....#....f\nfbf##........f\nfbf.#..###...f\nfbf.##.#.#...f\nfbf..#.#.#...f\nfbf..#.###...f\nfbf.##..#....f\nfbfg#...#....f\nfif.#...#....f\nffffffffffffff\n\n\n\n\n(kein Level)\n~fffffffffffff\nfif..........f\nfif.###......f\nfif.#.#...###f\nfif.###...#.#f\nfif.#...###..f\nfifg#.###....f\nfif.###.#....f\nfif.#..###...f\nfbf..p.#.#...f\nfbf...###....f\nfif...#.#....f\nffffffffffffff\n\n\n\n(zu einfach)\n~ffffffff\nfif##p..f\nfbf.####f\nfbf###.#f\nfbf...##f\nfif..##.f\nfffffffff\n\n(kein level)\n~fffffffffffff\nfbfp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..........f\nfif.....#....f\nfbf.....#....f\nfif....###...f\nfbf......#...f\nfif....###...f\nffffffffffffff\n\n(meh)\n~ffffffff\nfif##p..f\nfbf#....f\nfbf####.f\nfbf.##..f\nfif..#..f\nfffffffff\n\n(hmmm dunno -vllt zu einfach?)\n\n~fffffffffff\nfif#####p..f\nfbf##.####.f\nfbf##..##..f\nfbf.#..##..f\nfifggggg##gf\nffffffffffff\n\n(dunno?)\n~ffffffffffffffffff\nfifp............#.f\nfif............##.f\nfif.............##f\nfif..............#f\nfif..............#f\nfif............###f\nfif.........####.#f\nfbf...........##.#f\nfif..........##..#f\nfbf..........##...f\nfif.........###...f\nfbf........###....f\nfifgggggggg##gggggf\nfbf......###......f\nfif....#####......f\nfffffffffffffffffff\n\n(zu einfach)\n~ffffffff\nfif#p...f\nfbf#..#.f\nfbf####.f\nfbf..##.f\nfif..#..f\nfffffffff\n\n(boring!)\n~ffffffff\nfifp#.#.f\nfbf.###.f\nfif..##.f\nfbfg##ggf\nfif..#..f\nfffffffff\n\n(trivial)\n~fffffffffff\nfifp.....#.f\nfif......#.f\nfif......#.f\nfif.....##.f\nfbf.....#..f\nfif.....#..f\nfbfgggg##ggf\nfif....#...f\nffffffffffff\n\n(trivial)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif.......#..f\nfbf.......#..f\nfif......##..f\nfbf......##..f\nfif......#...f\nfbf.....##...f\nfifggggg#ggggf\nffffffffffffff\n\n\n(meh)\n~fffffffffff\nfifp.......f\nfif.#......f\nfbf.##.....f\nfif..#.....f\nfbf..##....f\nfif...#....f\nfbf...##...f\nfif....#...f\nffffffffffff\n\n\n(nicht interessant)\n~fffffffffffff\nfbfp.........f\nfif..........f\nfbf##........f\nfif#.........f\nfbf##........f\nfif#.........f\nfbf####......f\nfif.#.#......f\nfbf.###......f\nfif..###.#...f\nffffffffffffff\n\n(meh)\n~fffffffffffff\nfif#p........f\nfif##........f\nfif#.........f\nfif##........f\nfbf###.......f\nfif#.........f\nfbf##ggggggggf\nfif.##.......f\nfbf..#..#....f\nfif..#.###...f\nffffffffffffff\n\n\n\n\n\n\n\n\n(meh)\n~fffffffffffffffffffffffffffffffff\nfifp..............####...........f\nfbf..............#.#.#...........f\nfbf..............###.............f\nfbf.............###..#...........f\nfifggggggggggggggg#####ggggggggggf\nffffffffffffffffffffffffffffffffff\n\n\n\n(huh not so bad? but hard for some maybe? wait maybe i just solved by chance....)\n~fffffffffffff\nfifp......###f\nfif.#.#...#.#f\nfbf.#.##...##f\nfbf.####...##f\nfbf##..###.##f\nfbf######.#.#f\nfbf.....#####f\nfbf...###.##.f\nfbf...#.#....f\nfif....##....f\nffffffffffffff\n\n\n\nmessage level 5 of 10 : Gallows\n(hard - actually ok? medium difficulty?)\n~ffffffffffff\nfif.........f\nfifp.#......f\nfif..#......f\nfif..###....f\nfif..#......f\nfbf.####....f\nfif...###...f\nfbf...#.#...f\nfif.....#...f\nfbfggggg##ggf\nfif......##.f\nfffffffffffff\n\n\n\n\nmessage level 2 of 10 : ANTENNA 1\n(ok anfangerlevel?)\n~fffffffff\nfbfp#..#.f\nfif##..#.f\nfbf.#.##.f\nfif####.#f\nfbf#..###f\nfifggg#ggf\nffffffffff\n\n\n\nmessage level 3 of 10 : UFO\n(ok! / easy / Space invaders)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..#..#....f\nfif########..f\nfbf#.###..#..f\nfif.....####.f\nfbf..###.##..f\nfif....###...f\nffffffffffffff\n\n\n\n\n(\n(ok anfangerlevel)\n~fffffffff\nfbfp#..##f\nfif.##.##f\nfbf..###.f\nfif...###f\nfbf####..f\nfifggg#ggf\nffffffffff\n)\n\n\n\n\n(\n\n~fffffffffffff\nfifp.......#.f\nfif........##f\nfif........##f\nfif.........#f\nfbf.........#f\nfif.......###f\nfbf.......##.f\nfifggggggg##gf\nfbf.......#..f\nfif...#####..f\nffffffffffffff\n)\n\n\n(ok simple? NAH TOO SIMPLE)\n~ffffffffffffffffffffffffffff\nfifp........................f\nfif###......................f\nfif#.#......................f\nfif###......................f\nfif##.......................f\nfif##.......................f\nfif##.......................f\nfif#........................f\nfif##.......................f\nfif##.......................f\nfif##.......................f\nfif##..#.#..................f\nfif##.####..................f\nfif#####.#..................f\nfifgg#g#g#ggggggggggggggggggf\nfif..#.###..................f\nfif......##.................f\nfif......##.................f\nfif......#.#................f\nfif......####...............f\nfif.......#.#...............f\nfbf.......#.#...............f\nfif.....######..............f\nfbf.....#..#####.##.........f\nfif.........#.####..........f\nfffffffffffffffffffffffffffff\n\n\n\n\n(alien slug attack!)\nmessage level 6 of 10 : Alien Slug Attack\n~fffffffffffffffff\nfifp...####......f\nfbf....#####.....f\nfbf...##..##.....f\nfbf....#..##.....f\nfifgggggggg####ggf\nffffffffffffffffff\n\n\n\n\n\n(decent - middle-hard? -- too mich like final level? (difficulty/appearance-wise?)\n~fffffffffffffff\nfif#p..........f\nfif#...........f\nfif##..........f\nfif#...........f\nfbf###.........f\nfif#.#.........f\nfbf.##.#.......f\nfif..###.......f\nfbf...###......f\nfif....#...#...f\nfbfgggg######ggf\nfif......##....f\nffffffffffffffff\n)\n\n\n\n(fun to find the right points? MEH)\n~ffffffffffffffffffff\nfifp................f\nfif.................f\nfif...............##f\nfif................#f\nfif...............##f\nfif...............##f\nfif.............####f\nfif................#f\nfif..............###f\nfif...............##f\nfif................#f\nfif.........#.#...##f\nfif.........#.####.#f\nfif........####.####f\nfif............##...f\nfifgggggggg#######ggf\nfif........#..#.....f\nfif........######...f\nfif.........##......f\nfbf........##.......f\nfif.....####........f\nfbf......#..........f\nfif......#..........f\nfbf....###..........f\nfif.#######.........f\nfffffffffffffffffffff\n\n\n\n\n\n(wie ein gebäude aus - ziemlich einfach)\n~fffffffffffff\nfifp........#f\nfif........##f\nfif........##f\nfif........##f\nfbf.........#f\nfif.........#f\nfbfgggggggg##f\nfif......###.f\nfbf.......##.f\nfif....####..f\nffffffffffffff\n\n\n\n\n\n\n(nice/ok!)\n~ffffffffff\nfifp.....#f\nfbf.....##f\nfif....###f\nfbf....#.#f\nfif....###f\nfbfggg###gf\nfif..##...f\nfffffffffff\n\n\nmessage level 4 of 10 : Duck Tree\n(ducktree!)\n~fffffffffff\nfifp.##..##f\nfif.###.###f\nfbf...##.#.f\nfif..###.#.f\nfbf....####f\nfifgggg##ggf\nfbf....#...f\nfif....#...f\nffffffffffff\n\n\n\n)\n",[2,2,2,2,4],"background exploding fenster tl:0,background fenster fenster_right:1,1,1,1,1,1,1,1,background fenster:2,background fenster fenster_down:3,background inventar:4,\n4,background bang_schatten inventar:5,4,background bang inventar:6,4,6,4,background fenster fenster_up:7,2,background fenster fenster_left fenster_right:8,8,8,\n8,8,8,8,8,2,3,background:9,9,9,9,background htarget player_h:10,\n9,background landbackground:11,11,7,3,9,9,9,9,background htarget:12,background bond_r wall:13,11,\n11,7,3,9,9,9,9,background bond_d bond_r htarget wall:14,background bond_d bond_l bond_u wall:15,background bond_u landbackground wall:16,11,7,\n3,9,9,9,background bond_d wall:17,background bond_l bond_u htarget wall:18,background bond_d bond_r wall:19,background bond_r bond_u landbackground wall:20,11,7,3,9,\n9,9,9,12,background bond_d bond_l wall:21,background bond_d bond_l bond_u landbackground wall:22,20,7,3,9,9,9,\n9,12,9,11,background bond_l landbackground wall:23,7,3,9,9,9,9,12,\n9,11,11,7,3,9,9,9,9,12,9,11,\n11,7,2,background fenster fenster_left:24,24,24,24,24,24,24,24,2,\n",16,"1627892617303.8054"] + "A CLEAR VIEW OF THE SKY", + ["title A CLEAR VIEW OF THE SKY\nauthor increpare\nhomepage www.increpare.com\n\nnorepeat_action\n\nrun_rules_on_level_start\n\ncolor_palette 2\n\nbackground_color #005784\ntext_color lightblue\n\n(uses https://github.com/increpare/Zersto-rungto generate levels)\n========\nOBJECTS\n========\n\nbackground\nblue\n\nlandbackground\ngreen\n\n\nwall \ndarkblue gray lightgray\n00000\n01110\n01110\n01110\n00000\n\nplayer_h\ntransparent\n.....\n..0..\n.000.\n..0..\n.....\n\n\nplayer_v\nyellow\n.....\n..0..\n.000.\n..0..\n.....\n\n\nfenster\n#005784\n\n\nfenster_up\n#1d3d60 lightblue\n00000\n.....\n.....\n.....\n.....\n\nfenster_down\ndarkblue #17669f\n.....\n.....\n.....\n.....\n11111\n\nfenster_left\n#1d3d60 #17669f\n1....\n1....\n1....\n1....\n1....\n\nfenster_right\n#1d3d60\n....0\n....0\n....0\n....0\n....0\n\nhtarget\norange\n.....\n.....\n00000\n.....\n.....\n\n\nvtarget\norange\n..0..\n..0..\n..0..\n..0..\n..0..\n\ninventar\ndarkblue\n\nbang\n yellow red\n...0.\n..00.\n.010.\n.00..\n.0...\n\nbang_schatten\ndarkgray\n...0.\n..00.\n.0.0.\n.00..\n.0...\n\nbond_u\ndarkblue gray lightgray\n.111.\n.....\n.....\n.....\n.....\n\n\n\nbond_d\ndarkblue gray lightgray\n.....\n.....\n.....\n.....\n.111.\n\n\n\nbond_l\ndarkblue gray lightgray\n.....\n1....\n1....\n1....\n.....\n\n\n\nbond_r\ndarkblue gray lightgray\n.....\n....1\n....1\n....1\n.....\n\n\n\n\ntl\ntransparent\n\nexploding\ntransparent\n\nexplosion\nred yellow\n.1.1.\n10.01\n..0..\n10.01\n.1.1.\n\nnofall\nred\n.0...\n.....\n.....\n.....\n.....\n\nfall\nlightblue\n.0...\n.....\n.....\n.....\n.....\n\n\nsky_darker 7\ndarkred darkblue\n01010\n10101\n01110\n10101\n01011\n\nsky_darker2 8\ndarkbrown black\n01010\n10101\n01110\n10101\n01011\n\n\nsky_darker4 0\nblack darkblue\n11010\n10111\n01010\n11101\n01011\n\nsky_darker3 9\nwhite black\n11111\n11101\n11111\n11111\n11111\n\nsky_darker7 w\nblack\n\nsky_pink 2\nred darkblue\n01010\n10101\n01110\n10101\n01011\n\nsky_orange 1\nred lightred\n01000\n10101\n00010\n01010\n00000\n\n\nsky_red 3\nred orange\n01010\n10101\n01010\n10101\n01010\n\nsky_yellow 4\nyellow red orange\n12121\n21212\n10001\n00000\n00000\n\nsky_purple 5 \nred blue\n01010\n11101\n01010\n10111\n01010\n\n\nsky_land 6\ndarkgreen green\n01010\n10101\n01010\n10101\n01010\n\n=======\nLEGEND\n=======\n\nplayer = player_h or player_v\ntarget = htarget or vtarget\n\n. = Background\n# = wall\nP = Player_h\nf = fenster\n\ng = landbackground\n\nobstacle = wall\n~ = tl and fenster\ni = inventar\nb = bang and inventar\nbond = bond_u or bond_d or bond_l or bond_r\n\nfallblocker = wall or fenster\nanimation = 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 or 0\n=======\nSOUNDS\n=======\n\nsfx0 55915302 (bang)\nsfx1 90167907 (other agains)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nlandbackground, inventar\nwall\nbond_u\nbond_d\nbond_l\nbond_r\nexplosion\ntarget\nPlayer, fenster, bang,bang_schatten\nfenster_up\nfenster_down\nfenster_left\nfenster_right\ntl\nexploding\nnofall\nfall\n1,2,3,4, 5, 6,7,8,9,0,w\n\n======\nRULES\n======\n\n\nup [fenster | no fenster ]-> [ fenster fenster_up | ]\ndown [fenster | no fenster ]-> [ fenster fenster_down | ]\nleft [fenster | no fenster ]-> [ fenster fenster_left | ]\nright [fenster | no fenster ]-> [ fenster fenster_right | ]\n\n[ tl no exploding ] [bond]->[ tl ] [ ]\ndown [ tl no exploding ] [wall | wall]->[tl][ wall bond_d | wall bond_u ]\nright [ tl no exploding ] [wall | wall]->[tl][ wall bond_r | wall bond_l ]\n\n[tl]->[tl exploding]\n\ndown [ wall no bond_d | fallblocker ] -> [ wall nofall | fallblocker ]\n(floodfill)\nup [nofall bond_u | ] -> [ nofall bond_u | nofall ]\n+ down [nofall bond_d | ] -> [ nofall bond_d | nofall ]\n+ left [nofall bond_l | ] -> [ nofall bond_l | nofall ]\n+ right [nofall bond_r | ] -> [ nofall bond_r | nofall ]\n\n\ndown [ wall no nofall | no fallblocker ] -> [ wall fall | ]\n\nup [fall bond_u | ] -> [ fall bond_u | fall ]\n+ down [fall bond_d | ] -> [ fall bond_d | fall ]\n+ left [fall bond_l | ] -> [ fall bond_l | fall ]\n+ right [fall bond_r | ] -> [ fall bond_r | fall ]\n\n[fall wall]->[down wall] sfx1 again\n\n[fall]->[]\n[nofall]->[]\n\n[up wall bond ] -> [ up wall up bond ]\n+ [down wall bond ] -> [ down wall down bond ]\n+ [left wall bond ] -> [ left wall left bond ]\n+ [right wall bond ] -> [ right wall right bond ]\n\n[target]->[]\n\n\n[horizontal player ] -> cancel\n(\n[up player_h ] -> [ up player_v ]\n[down player_h ] -> [ down player_v ]\n[left player_v ] -> [ left player_h ]\n[right player_v ] -> [ right player_h ]\n)\n\nright left down [ landbackground | no landbackground no fenster ] -> [ landbackground | landbackground no fenster ]\n\n\n[player_h ] -> [ player_h htarget ]\n[player_v ] -> [ player_v vtarget ]\n\nhorizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nvertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\nup [ bond_u | explosion ] -> [ | explosion ]\ndown [ bond_d | explosion ] -> [ | explosion ]\nleft [ bond_l | explosion ] -> [ | explosion ]\nright [ bond_r | explosion ] -> [ | explosion ]\n\n[explosion wall ] -> [ no bond ] sfx1 again\n\n[explosion ] -> [ ] again\n\n[action player ] [bang] -> [ player ] [ action bang_schatten ]\n\n[action bang_schatten ] [ target ]-> [ action bang_schatten ] [ explosion ] sfx0 again\n\n\nlate [target]->[]\n\nlate [player_h ] -> [ player_h htarget ]\nlate [player_v ] -> [ player_v vtarget ]\n\nlate horizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nlate vertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll wall on landbackground \n\n=======\nLEVELS\n=======\n\n\n(OK LEVELS)\n\n\n\n\nmessage All those ugly buildings blocking our view.\nmessage Let's DEMOLISH them to SAVE OUR SKY\n\nmessage level 1 of 13 : FACTORY\n(sehr einfach)\n~ffffffffffffff\nfif...........f\nfif...........f\nfif...........f\nfif....p......f\nfif.....#.....f\nfif...#.#.....f\nfif...#.###...f\nfbf...######..f\nfif..###...#..f\nfbfg.#...#.#..f\nfif..#...#.#..f\nfffffffffffffff\n\n\nmessage Ah, what a lovely view of the sky!\n\nmessage level 2 of 13 : Lop-sided Electricity Poll\n(actually ok?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif...#......f\nfif...##.....f\nfif...#......f\nfbf...##.....f\nfif....##....f\nfbfggggg#ggggf\nfif.....#....f\nffffffffffffff\n\n\n\n\nmessage level 3 of 13 : Water Pump\n(ok anfängerlevel?)\n~fffffffff\nfif...p..f\nfbf###...f\nfif#.###.f\nfbf#.##..f\nfif#.##..f\nfbf#gg##gf\nfif...#..f\nffffffffff\n\n\n\n\nmessage level 4 of 13 : Electricity Supply\n\n(einfach/gut?)\n~ffffffff\nfif###p#f\nfbf#.#.#f\nfbf#####f\nfbf##.#.f\nfifg####f\nfffffffff\n\n\nmessage level 5 of 13 : Water Font\n(hard)\n~fffffffffffff\nfifp....###..f\nfbf...#.#.#..f\nfbf...####...f\nfbf...##.##..f\nfifgg#g####ggf\nffffffffffffff\n\n\n\nmessage level 6 of 13 : Angry Goose\n(tricky + sieht gut aus)\n~ffffffffffff\nfifp##.####.f\nfbf.####.##.f\nfbf...##.#..f\nfbf...###...f\nfifgg##gggggf\nfffffffffffff\n\n\n\nmessage level 7 of 13 : Lean-to\n(nice/ok!)\n~fffffffffff\nfifp..#....f\nfif..##....f\nfbf.##.....f\nfif..#.....f\nfbf####....f\nfif...##...f\nfbfggg##gggf\nfif....##..f\nffffffffffff\n\n\n(medium-hard / fun! )\nmessage level 8 of 13 : Treehouse\n~fffffffffffffff\nfifp...........f\nfif........#...f\nfif........#...f\nfif.......####.f\nfbf.......#..#.f\nfif......#####.f\nfbf........#...f\nfif......###...f\nfbf......##....f\nfif.....##.....f\nfbfgggg#g#gggggf\nfif...####.....f\nffffffffffffffff\n\n\n\n\nmessage level 9 of 13 : Ugly Antenna\n(i had fun solving this)\n~fffffffffffff\nfifp.###.####f\nfbf..#.#....#f\nfif..#.##.###f\nfbf..#.###.#.f\nfif..####.##.f\nfbfggggg###ggf\nfif.....#....f\nffffffffffffff\n\n\n\n\nmessage level 10 of 13 : 60's Futuristic settlement\n(ok/interesting to solve!)\n~fffffffffff\nfbf##p.####f\nfif#...#..#f\nfbf#...####f\nfif######.#f\nfbf###.##.#f\nfifggg##gg#f\nfbf...#.#.#f\nfif...###..f\nffffffffffff\n\n\nmessage level 11 of 13 : Dystopic settlement\n(futuristic city - hardlevel?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..##......f\nfif..#.......f\nfbf..##.#.#..f\nfif..##.###..f\nfbf..###.###.f\nfif....#.##..f\nfbf....#.#...f\nfifggg####gggf\nffffffffffffff\n\n\nmessage level 12 of 13 : Space elevator\n(interesting? seemingly impossible?)\n~fffffffffffff\nfif#####p....f\nfif#.#.#.....f\nfif#.####....f\nfif#.##......f\nfif#g#gggggggf\nfif#.#.......f\nfif#.##......f\nfif#.#.......f\nfif#.##......f\nfbf#.#.......f\nfif#.###.....f\nfbf#.#.###.#.f\nfif#.###..##.f\nfbf##..####..f\nfif.#######..f\nffffffffffffff\n\n\n\n\nmessage level 13 of 13 : Building seeminly purposely constructed to block my view.\n\n(can't easily solve meh - could be ok final level? FINAL LEVEL)\n~fffffffffffffffff\nfif###p..........f\nfif#.##..........f\nfif####..........f\nfif...##.........f\nfif####..........f\nfif.#............f\nfif##............f\nfif###...........f\nfif..#...........f\nfif#####.........f\nfif...#.#.#......f\nfif######.#......f\nfif###..###......f\nfif#..###........f\nfif.....##.......f\nfifgggggg#gggggggf\nfif......###.....f\nfif.......##.....f\nfif.......##.....f\nfbf........##....f\nfif........##....f\nfbf.........##...f\nfif.........##...f\nfbf.........#####f\nfif............#.f\nffffffffffffffffff\n\n\nmessage Ahh, the sky is clear again, just in time for the sunset\n\n\n\n5555555555555555555\n5555522222222555555\n5552222222222222555\n5222222222222222225\n2222222111112222222\n2222211111111122222\n2221111133311111222\n2211111334331111112\n6666666666666666666\n6666666666666666666\n6666666666666666666\n\n\n\n\n22222222222222222222\n22222222222222222222\n22222222222222222222\n22222222222222222222\n22222221212122222222\n22221212121212122222\n22212121111121212222\n22121211111112121222\n66666666666666666666\n66666666666666666666\n66666666666666666666\n\n\n\n00000077777777000000\n00007777777777770000\n00077777777777777000\n07777777777777777770\n77777722222222777777\n77772222222222227777\n77722221111122222777\n77222211111112222277\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n88888888888888888888\n88888880000088888888\n88888000000000088888\n88800000000000000888\n88000000000000000088\n80000000000000000008\n00000000222000000000\n00000002222200000000\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwww000wwwwwwwww\nwwwww000222000wwwwww\n00000022222220000000\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n\n\nw9wwwwwwww9wwwwwwwww\nwwwwwwwwwwwwww9www9w\nwwww9wwwwwwwwwwwwwww\nwwwwwwwww9wwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwww9www\nw9wwwww9wwwww9wwwwww\nwwwwwwwwwwwwwwwwwwww\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\nmessage The End \n\n\n\n(\n\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf.....#....f\nfif....####..f\nfbf...##..#..f\nfif#.#..###..f\nfbf#####.##..f\nfif.#.####...f\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfbfp.........f\nfif....#.....f\nfbf....##....f\nfif....###...f\nfbf......#...f\nfif..######..f\nfbf...#.#.#..f\nfif.....####.f\nfbf....#.##..f\nfifgg#####gggf\nffffffffffffff\n\n(microscope?)\n~fffffffffffff\nfbfp.........f\nfif......##..f\nfbf.....##...f\nfif....##....f\nfbf....#.##..f\nfif....#.#...f\nfbf....####..f\nfif.......#..f\nfbf..######..f\nfifgg####ggggf\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.......#.f\nfif......#.#.f\nfif......#.##f\nfif......####f\nfbf....####.#f\nfifggggg#g##gf\nfbf...#####.#f\nfif....######f\nfbf..#.###...f\nfif.######...f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.....#...f\nfif......##..f\nfif....####..f\nfif....##.#..f\nfbf....###...f\nfifgg#g####ggf\nfbf..####.#..f\nfif..#####...f\nfbf..#######.f\nfif....#####.f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.....#...f\nfif....#.#...f\nfif....###...f\nfif...###..#.f\nfbf...#.####.f\nfifgggg##ggggf\nfbf...#####..f\nfif....####..f\nfbf..######..f\nfif..########f\nffffffffffffff\n\n\n\n\n~fffffffffff\nfbfp...#.#.f\nfif....#.##f\nfbf....###.f\nfif.###.###f\nfbf...###.#f\nfif.....##.f\nfbfggg###ggf\nfif...#####f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp...##..f\nfif.######.f\nfbf....#.#.f\nfif...###..f\nfbf...#.##.f\nfif....###.f\nfbfggg#gg#gf\nfif..######f\nffffffffffff\n\n(hard, but looks nice)\n~fffffffffff\nfbfp...#..#f\nfif....####f\nfbf.....#.#f\nfif...###..f\nfbf.....###f\nfif...###..f\nfbfg##g#g##f\nfif..######f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp..#.##.f\nfif...#.#..f\nfbf...#####f\nfif....#.#.f\nfbf....###.f\nfif...###..f\nfbfg###gg#gf\nfif.#.####.f\nffffffffffff\n\n~fffffffffff\nfifp.......f\nfif........f\nfif#.......f\nfbf###.....f\nfif#.##....f\nfbf##......f\nfif##......f\nfbf#.......f\nfif##.#....f\nfbf##.#....f\nfif.####...f\nfbf.#.####.f\nfif....#.#.f\nfbfgggg###gf\nfif....#...f\nffffffffffff\n\n\n\n(hard/unsolved)\n~fffffffffffff\nfifp...####..f\nfif.....##...f\nfbf....##....f\nfif...#.##...f\nfbf...#.#..#.f\nfif...####.#.f\nfbf....#.###.f\nfif....#.#...f\nfbfggg#######f\nfif..#...#...f\nfbf.######...f\nfif...###....f\nffffffffffffff\n\n\n(haard, pretty, unsolved)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf.....#....f\nfif....###...f\nfbf...#####..f\nfif.....#..#.f\nfbf.....####.f\nfif..#.#.#.#.f\nfbf.##.#.##..f\nfif..#.####.#f\nfbfgg##ggg#g#f\nfif...#######f\nffffffffffffff\n\n\n(haard, pretty, ,unsolved)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf...##..#..f\nfif.##.####..f\nfbf..##.#.#..f\nfif...#.###..f\nfbf...##.##..f\nfif....###...f\nfbf......#...f\nfif....######f\nfbfgg###ggg##f\nfif....#####.f\nffffffffffffff\n\n(haard ,unsolved)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfbf........f\nfif....###.f\nfbf.....###f\nfif......#.f\nfbf......#.f\nfif.....##.f\nfbf......##f\nfif....####f\nfbf....##..f\nfif...###..f\nfbf....##..f\nfifggg##gggf\nffffffffffff\n\n\n\n(too tired, don't want to solve)\n~ffffffffffffffffffffffffffffffffffffff\nfifp..................................f\nfif.......#...........................f\nfif.......#...........................f\nfif#.....##...........................f\nfif##...##............................f\nfif.####.#............................f\nfif....####...........................f\nfif....##.#...........................f\nfif.......##..........................f\nfif......####.........................f\nfif........#.#........................f\nfif.......####........................f\nfif.......#.##........................f\nfifggggggg#g##ggggggggggggggggggggggggf\nfif........####.......................f\nfif...........#.......................f\nfif........######.....................f\nfif........#.##.##....................f\nfif............##.....................f\nfbf..........####.....................f\nfif............####...................f\nfbf...........##.###..................f\nfif..............#.#..................f\nfbf................#..................f\nfif................###................f\nfffffffffffffffffffffffffffffffffffffff\n\n\n~fffffffffffff\nfbfp.#.......f\nfif..###.....f\nfbf..##......f\nfif...##.....f\nfbf..#.##....f\nfif.#####....f\nfbf...#.#..#.f\nfif....######f\nfbf.....#..#.f\nfifggggg##gggf\nffffffffffffff\n\n\n~fffffffffffff\nfifp.....##.#f\nfif.......#.#f\nfif.......#.#f\nfif.......###f\nfif.........#f\nfif.........#f\nfifggggggggg#f\nfif.......###f\nfif......##.#f\nfif.....###.#f\nfif.......###f\nfif.........#f\nfif.......###f\nfif......#..#f\nfif......####f\nfif.......#.#f\nfif........##f\nfif.......###f\nfif.........#f\nfif........##f\nfif.......###f\nfif........##f\nfif........##f\nfif.........#f\nfbf..##...###f\nfif..#...##.#f\nfbf..##....##f\nfif..###.###.f\nfbf...##.#...f\nfif...#####..f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif.........#f\nfif.......###f\nfif........##f\nfif........##f\nfif........##f\nfif.....##.##f\nfifgggggg#g##f\nfif.....#####f\nfif.........#f\nfif.....#####f\nfif.........#f\nfif...#######f\nfif.....#...#f\nfif......####f\nfif.........#f\nfif.......###f\nfif......##.#f\nfif.......#.#f\nfif.......###f\nfif......#..#f\nfif......####f\nfbf.........#f\nfif.......###f\nfbf.......#.#f\nfif.......##.f\nfbf.....###..f\nfif..#####...f\nffffffffffffff\n\n\n\n~fffffffffffffffffffffff\nfifp.................##f\nfif.................#.#f\nfif.................###f\nfif...................#f\nfif...................#f\nfif..................##f\nfifgggggggggggggggggg##f\nfif..................##f\nfif.................#.#f\nfif.................#.#f\nfif.............###.###f\nfif..............#.##.#f\nfif..............###..#f\nfif...............#.#.#f\nfbf...............#.###f\nfif...##....#.##..###.#f\nfbf...###.###..#.#.#.##f\nfif....####.#..#######.f\nfbf......########..#.#.f\nfif..........##......#.f\nffffffffffffffffffffffff\n\n\n\n~ffffffffffffffffff\nfif##p.....#######f\nfif##.......##...#f\nfif#..#.......####f\nfif######.....####f\nfbf#....##..###..#f\nfif######...#.#.##f\nfbfg#gg####g##ggggf\nfif.....#.#####...f\nfbf.....###.#.....f\nfif.......##......f\nfffffffffffffffffff\n\n\n\n~ffffffffffffffffff\nfif########p......f\nfif#.#.#.#........f\nfif#.#.#.#...#....f\nfif#.######.######f\nfbf#g##gg#######ggf\nfif#.#...##.#..##.f\nfbf###....#.###...f\nfif##.....###.....f\nfbf#....####......f\nfif.......#.......f\nfffffffffffffffffff\n\n\n\n~fffffffffffffffffffffff\nfifp.......############f\nfif......####.#.......#f\nfif......#.#.#.########f\nfif.......##.#.#......#f\nfbfggggggg#g##g########f\nfif......###.#.#.#.####f\nfbf........######...#..f\nfif.....###....#.......f\nfbf.......######.......f\nfif.....########.......f\nffffffffffffffffffffffff\n\n\n\n\n\n~fffffffffffffffffffffff\nfif###p########.##.####f\nfif#####..#.#...####..#f\nfif...#.###.##....#.###f\nfif#######..#.#########f\nfbf.#...#.#.######.#...f\nfifg#####g##g##ggggggggf\nfbf.....######.........f\nfif.......#..##........f\nfbf.........###........f\nfif..........###.......f\nffffffffffffffffffffffff\n\n\n\n\n~fffffffffffffffffffffff\nfif#########p....##....f\nfif#.#.#.##....###.....f\nfif#.#.#.#....#.####...f\nfif#.#.#.#....#.#..#...f\nfbf#g#g###gggg#g###ggggf\nfif####..#.#..###.#....f\nfbf...####.#..##.......f\nfif...##.#.##.#.#......f\nfbf....##########......f\nfif....#....##.#.......f\nffffffffffffffffffffffff\n\n\n\n(hard, haven't solved manually)\n~fffffffffffff\nfif###p......f\nfbf#.#.......f\nfif#.###.....f\nfbf#.#.##....f\nfif####g####gf\nfbf##.####...f\nfif.##..#....f\nffffffffffffff\n\n\n(too hard)\n~fffffffffffff\nfif#####p....f\nfif#.#.#.....f\nfif#.##.#....f\nfif#.#####...f\nfif#.##.#....f\nfif#g#gggggggf\nfif#.####....f\nfif#.#.#..##.f\nfif#.###.#.##f\nfbf##..#####.f\nfif.####.....f\nfbf...###....f\nfif....#.....f\nfbf....#.##..f\nfif....###...f\nffffffffffffff\n\n\n\n(hard, looks ok, but meh)\n~fffffffffffff\nfif###p#.....f\nfif##.##.....f\nfif##.#......f\nfif####......f\nfif#.#.......f\nfbf#.#.......f\nfif###.......f\nfbf#.##......f\nfif#.##......f\nfbf##g##gggggf\nfif.###......f\nfbf.#.##.....f\nfif...#......f\nfbf..###.#...f\nfif....####..f\nffffffffffffff\n\n\n(hard, looks ok, but meh)\n~fffffffffffff\nfif##p#......f\nfif####......f\nfif#.##......f\nfif#.#.......f\nfif#.#.......f\nfbf###.......f\nfif#.........f\nfbf###.......f\nfif#.........f\nfbf#####gggggf\nfif#.##.#....f\nfbf..##.##...f\nfif..#####...f\nfbf.....###..f\nfif...###....f\nffffffffffffff\n\n(hmmm! not sure!)\n~ffffffffffffffffffffffffffff\nfifp........................f\nfif.........................f\nfif.........................f\nfif.........................f\nfif....................##...f\nfif.....................##..f\nfif....................##...f\nfif...................###...f\nfif...................##....f\nfif.................####....f\nfifgggggggggggggggggggg###ggf\nfif...............######.##.f\nfif..................#.#....f\nfif..................####...f\nfif................####.#...f\nfif................###......f\nfif..................##.....f\nfif..................#.##...f\nfif................###.##...f\nfbf................#.#####..f\nfif...............##.#......f\nfbf................####.....f\nfif................##.......f\nfbf.............#####.......f\nfif.........#####...........f\nfffffffffffffffffffffffffffff\n\n\n\n(soll schwierig sein - will nicht lösen!)\n~fffffffffff\nfifp.......f\nfif........f\nfbf........f\nfif....#...f\nfbf..###...f\nfif....##..f\nfbf...#.#..f\nfif...#.##.f\nfbf...#.###f\nfif..###.##f\nfbf..#.###.f\nfifgggg##ggf\nffffffffffff\n\n\n(soll schwierig sein - ja zu schwierig)\n~ffffffffffff\nfif.........f\nfbf.p.......f\nfif...#.....f\nfbf...#.....f\nfif...###...f\nfbf...#.##..f\nfif.#####...f\nfbf..#..###.f\nfif...##..#.f\nfbf....####.f\nfifggggg##ggf\nfffffffffffff\n\n(hard - will nicht lösen )\n~fffffffffffff\nfifp.........f\nfif......#...f\nfif.....##...f\nfif....##....f\nfbf....#.##..f\nfif....###...f\nfbfgggg##ggggf\nfif...###....f\nfbf.....#....f\nfif....##....f\nffffffffffffff\n\n\n(should be hard?)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfif...##...f\nfbf..###...f\nfif.###....f\nfbf...##...f\nfif....#...f\nfbf..#.##..f\nfifgg##g#g.f\nfbf...#.#..f\nfif...###..f\nffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n(zeimlich einfach!)\n~fffffffffff\nfifp.#..#..f\nfif..##.#..f\nfbf...#.##.f\nfif...####.f\nfbf....##..f\nfif..###...f\nfbfgggg#gggf\nfif....#...f\nffffffffffff\n\n\n(simple/ok)\n~ffffffffff\nfifp.#..##f\nfbf..#####f\nfif..#.#.#f\nfbf...##..f\nfif..##...f\nfbfggg###gf\nfif..##...f\nfffffffffff\n\n\n(simple/ok)\n~fffffffffff\nfifp......#f\nfif......##f\nfbf......##f\nfif.....###f\nfbf.......#f\nfifgggggg##f\nfbf.....##.f\nfif...###..f\nffffffffffff\n\n\n\n\n(simple/ok / ok maybe nicer than ok! :] )\n~fffffffffff\nfifp....#..f\nfif...#.##.f\nfbf...###..f\nfif..###...f\nfbf...#....f\nfif...##...f\nfbfgggg##ggf\nfif....#...f\nffffffffffff\n\n\n\n\n\n\n\n(beautiful-looking? not fun to solve)\n~fffffffffff\nfbf########f\nfif##p...##f\nfbf##...#.#f\nfif#.#..###f\nfbf#.#...##f\nfif###g#g##f\nfbf#.######f\nfif....#.#.f\nffffffffffff\n\n\n\n\n\n\n\n(ok to solve!)\n~fffffffffff\nfbfp...####f\nfif....#..#f\nfbf....####f\nfif#.###..#f\nfbf#.#.####f\nfif####gg##f\nfbf.#.####.f\nfif....#.#.f\nffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n~fffffffffffff\nfifp...######f\nfif.......#.#f\nfif.........#f\nfif.......###f\nfif.......#.#f\nfif.....#####f\nfifgggggg##g#f\nfif......#.##f\nfif......#.##f\nfbf......#.##f\nfif......####f\nfbf......##.#f\nfif...#..#...f\nfbf..#####...f\nfif.....###..f\nffffffffffffff\n\n\n(dunno? schwierig)\n~fffffffffffff\nfbf#####p####f\nfif...####..#f\nfbf....#.####f\nfif.....#.#.#f\nfbf.....#.###f\nfif.....#.#.#f\nfbf.....#.#.#f\nfifgggg######f\nfbf......###.f\nfif....###...f\nffffffffffffff\n\n\n\n\n\n~fffffffffffff\nfifp..#.###..f\nfbf..##.#.#..f\nfbf...####...f\nfbf....##.#..f\nfifg##g#g##ggf\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif...#......f\nfif...###....f\nfbf....###...f\nfif.....#....f\nfbf....###...f\nfif...##.....f\nfbfgg##ggggggf\nfif.#####....f\nffffffffffffff\n\n\n\n~ffffffff\nfif....#f\nfif....#f\nfif....#f\nfif..###f\nfif....#f\nfif.p.##f\nfif....#f\nfif#.###f\nfif#..#.f\nfbf####.f\nfif#.#..f\nfbf#g#ggf\nfif###..f\nfbf..##.f\nfif###..f\nfbf#.##.f\nfif####.f\nfffffffff\n\n\n(Tricky)\n~fffffffffff\nfbfp.......f\nfif........f\nfbf...#....f\nfif...##...f\nfbf..#.#...f\nfif..#.###.f\nfbf.###.#..f\nfif...####.f\nffffffffffff\n\n\n~fffffffffff\nfbfp..##...f\nfif....##..f\nfbf...##...f\nfif...###..f\nfbf...#....f\nfif...###..f\nfbfggggg#ggf\nfif...####.f\nffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif...#......f\nfif...#......f\nfif...##.....f\nfbf....#.....f\nfif....##....f\nfbf.....#....f\nfif....###...f\nfbfggg#gg##ggf\nfif...####...f\nffffffffffffff\n\n\n\n\n~fffffffffff\nfifp...###.f\nfif...##.#.f\nfbf..#.###.f\nfif..###.#.f\nfbfggg####gf\nfif.....###f\nfbf...###..f\nfif...####.f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif.....#..f\nfif...###..f\nfif.....###f\nfbf....##..f\nfif...##...f\nfbf.#.##..#f\nfif.##.##.#f\nfbf#g#g#g##f\nfif########f\nfbf#......#f\nfif########f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif..#.....f\nfbf..##....f\nfif..###...f\nfbf..#.#...f\nfif..###...f\nfbfggg###ggf\nfif....#...f\nffffffffffff\n\n\n~fffffffffff\nfifp...##..f\nfif....###.f\nfif...##.#.f\nfif...#.#..f\nfbf...#.#..f\nfif...#.###f\nfbf..######f\nfifggg##gggf\nfbf....####f\nfif....#..#f\nfbf####.###f\nfif.#######f\nffffffffffff\n\n\n\n\n~ffffffffff\nfifp......f\nfif.......f\nfif.......f\nfif.......f\nfbf..###..f\nfif..#.#..f\nfbf.#.##..f\nfif.#####.f\nfbf...#...f\nfif.###...f\nfbfgg#g##gf\nfif..###..f\nfffffffffff\n\n\n\n~ffffffff\nfifp###.f\nfbf.#.##f\nfif.####f\nfbf.##..f\nfif..##.f\nfffffffff\n\n\n~fffffffffff\nfifp###....f\nfbf.#.##...f\nfbf.#.##...f\nfbf.#.##...f\nfifgggg##ggf\nffffffffffff\n\n\n~fffffffffff\nfifp...###.f\nfbf..#.#.#.f\nfbf..##.##.f\nfbf.#####..f\nfifgggg####f\nffffffffffff\n\n\n\n\n~fffffffffffff\nfifp...##.#..f\nfif....#.##..f\nfbf....#.##..f\nfif....#.##..f\nfbf....#.#.##f\nfif...######.f\nfbfggg#g##gggf\nfif..####....f\nfbf.....##...f\nfif...###....f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp....#....f\nfif.....#.#..f\nfif.....###..f\nfif...###.#..f\nfbfggg#g#####f\nfif....##.###f\nfbf...#.###..f\nfif...####...f\nfbf......##..f\nfif...#####..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp..#.#..f\nfbf...###..f\nfif....##..f\nfbfggg##gggf\nfif....#...f\nffffffffffff\n\n\n\n~fffffffffffff\nfifp...##....f\nfif.....#....f\nfif.....#....f\nfifggggg#ggggf\nfif#.####....f\nfif#.#..#....f\nfbf##.###....f\nfif.###.#####f\nfbf....#.#...f\nfif..######..f\nffffffffffffff\n\n\n~fffffffffff\nfifp...#.#.f\nfbf....###.f\nfif....##..f\nfbfggg#g###f\nfif...###..f\nffffffffffff\n\n\n~fffffffff\nfbfp##.#.f\nfif..#.#.f\nfbf..####f\nfif.###..f\nfbf...##.f\nfifggg#ggf\nffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif.......#..f\nfbf.......#..f\nfif.......#..f\nfbf....#####.f\nfif...####...f\nfbf.....#....f\nfifggggg##gggf\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif...#......f\nfbf..##......f\nfif...#.#....f\nfbf...###....f\nfif....#.....f\nfbf....##....f\nfif....####..f\nfbf.......##.f\nfifggg######gf\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif.#........f\nfbf.##.......f\nfif..#.......f\nfbf.###......f\nfif.#####....f\nfbf...#.##...f\nfif....#.##..f\nfbf....##.##.f\nfifggggg#####f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp....#....f\nfif.....#....f\nfbf.....#....f\nfif.....##...f\nfbf...##.#...f\nfif....#.#...f\nfbf....#.###.f\nfifgggg#g#gggf\nfbf...##.##..f\nfif....#####.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp..#......f\nfif...#......f\nfbf..###..#..f\nfif....####..f\nfbf.....#....f\nfif.....###..f\nfbf.....#.#..f\nfifggggg##gggf\nfbf...###.#.#f\nfif....######f\nffffffffffffff\n\n\n~fffffffffffff\nfifp..#......f\nfif...##.....f\nfbf...#..#...f\nfif..###.#...f\nfbf....#.#...f\nfif..######..f\nfbf.....#....f\nfif.....###..f\nfbfggggg#ggggf\nfif...#####..f\nffffffffffffff\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf#.........f\nfif#.........f\nfbf##........f\nfif.######...f\nfbf..#.#.#...f\nfif..##.##...f\nfbf..##.#.#..f\nfif...######.f\nffffffffffffff\n\n\n(hard)\n~fffffffffffff\nfifp...##....f\nfif....#.....f\nfbf....#.....f\nfif....##....f\nfbf....##....f\nfif..##.##...f\nfbf...#.#....f\nfifggg#g##gggf\nfbf..###.##..f\nfif....####..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp..#.#..f\nfif...###..f\nfif...##...f\nfbfgggg##ggf\nfif....##..f\nfbf...##...f\nfif....##..f\nffffffffffff\n\n\n(trivial)\n~fffffffffff\nfifp.....#.f\nfif.....##.f\nfif.....#..f\nfbf...###..f\nfif.####...f\nfbfggg##gggf\nfif....##..f\nffffffffffff\n\n\n(too easy)\n~fffffffffff\nfifp.......f\nfif.....#..f\nfif.....#..f\nfif.....#..f\nfbf.....#..f\nfif.....#..f\nfbf...####.f\nfifggg##g##f\nfbf.##.#...f\nfif..###...f\nffffffffffff\n\n\n\n(nice shape)\n~fffffffffff\nfifp.......f\nfif........f\nfif...#....f\nfif...##...f\nfbf....##..f\nfif...#.#..f\nfbf..#####.f\nfifgggg##ggf\nfbf....##..f\nfif...###..f\nffffffffffff\n\n(nice?/meh)\n~fffffffffff\nfifp.......f\nfif...#....f\nfif...#....f\nfif...##...f\nfbf....##..f\nfif....##..f\nfbf.....#..f\nfifgggg##ggf\nfbf..#.###.f\nfif.#####..f\nffffffffffff\n\n\n\n~fffffffffffff\nfifp#..#.#...f\nfif.####.#...f\nfbf..#.####..f\nfbf..#.##....f\nfbf.###.###..f\nfbf...#.#....f\nfbf...#####..f\nfifgggg######f\nffffffffffffff\n\n\n~fffffffffffff\nfifp....##..#f\nfif....#.#..#f\nfbf...##.####f\nfbf....####.#f\nfbf..##.#..##f\nfbf..##.#####f\nfbf...#####..f\nfifggg#g#ggggf\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.......#.f\nfif.....##.#.f\nfbf.....#.##.f\nfbf....#####.f\nfbf#......#..f\nfbf##.#######f\nfbf.##...##.#f\nfif.######..#f\nffffffffffffff\n\n\n~fffffffffffff\nfifp...###...f\nfif.##.#.##..f\nfbf..#.#####.f\nfbf..#..#....f\nfbf.#####....f\nfbf..#..##...f\nfbf..###.####f\nfifggg####g##f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..........f\nfif......#...f\nfbf...####...f\nfif...#.#....f\nfbf...####...f\nfif....#.##.#f\nfbf....##.###f\nfif...######.f\nfbf..##...##.f\nfif..######..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp.##....f\nfif...##...f\nfbf....##..f\nfif...#.##.f\nfbf...####.f\nfif...#..#.f\nfbf..####..f\nfifgggg##ggf\nfbf....#.#.f\nfif....####f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif....##..f\nfbf..##.#..f\nfif...#.##.f\nfbf...####.f\nfif...#..#.f\nfbf...###.#f\nfif....####f\nfbfgggg#g#gf\nfif..###...f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif....#...f\nfbf....##..f\nfif..###...f\nfbf..#.#..#f\nfif..##...#f\nfbf.####.##f\nfif...#.###f\nfbfggg#g#ggf\nfif...###..f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif....#...f\nfbf..###...f\nfif...#....f\nfbf##.##.#.f\nfif.##.####f\nfbf..##.##.f\nfif...###..f\nfbfggggg#ggf\nfif...###..f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif..#.....f\nfbf..##.##.f\nfif...###..f\nfbf..#.####f\nfif.##.#...f\nfbf..####..f\nfif...#.#..f\nfbfggg####gf\nfif...##...f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp.#.....f\nfif..#.....f\nfbf..#.#...f\nfif..###...f\nfbf...#.##.f\nfif...####.f\nfbf...##.#.f\nfif....##..f\nfbf...#.###f\nfif...#####f\nffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif......#...f\nfbf......##..f\nfif.....#.#..f\nfbf.....#.#..f\nfif...######.f\nfbf.....##...f\nfif#....##...f\nfbf###.###...f\nfif..#.##....f\nfbfgg##g###ggf\nfif...##.##..f\nfbf....#.###.f\nfif....###.#.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfbf.....#....f\nfif....##....f\nfbf....##....f\nfif.....##...f\nfbf....#.##..f\nfif....####..f\nfbf....#..##.f\nfif....#####.f\nfbf...##...#.f\nfifggg#g#####f\nfbf..#.#...#.f\nfif.########.f\nffffffffffffff\n\n\n\n\n\n\n\n~fffffffffff\nfifp.......f\nfif...#....f\nfbf...#.#..f\nfif...###..f\nfbf....##..f\nfif..###...f\nfbfgggg##ggf\nfif...##...f\nffffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.....#.f\nfbf....###f\nfif..#.##.f\nfbf#####..f\nfif.###...f\nfbf...#...f\nfif.####..f\nfffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.......f\nfbf..#.#..f\nfif.##.#..f\nfbf..###..f\nfif#..####f\nfbf####...f\nfif.#.#...f\nfffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.......f\nfbf..#..#.f\nfif.#####.f\nfbf...#.#.f\nfif.####..f\nfbf.##.##.f\nfif...##..f\nfffffffffff\n\n\n~fffffffffff\nfifp..###..f\nfbf.#.#.#..f\nfbf.#.##...f\nfbf.##.##..f\nfbf..#####.f\nffffffffffff\n\n\n~fffffffffff\nfifp.#.#.#.f\nfbf..###.#.f\nfif...#####f\nfbf..#..##.f\nfif..####..f\nffffffffffff\n\n\n~fffffffffff\nfifp..###.#f\nfbf...#.#.#f\nfif....####f\nfbf...##.##f\nfif...####.f\nffffffffffff\n\n\n\n~fffffffffff\nfifp..###..f\nfbf.#.#.#..f\nfif.#..##..f\nfbf#####...f\nfif..#####.f\nffffffffffff\n\n\n\n\n(figure giving tribute - meh?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif.....#.#..f\nfbf....####..f\nfif....#.#...f\nfbf....#.###.f\nfif.######...f\nfbf.....###..f\nfifgg####g#ggf\nffffffffffffff\n\n\n\n\n\n\n\n\n~fffffffffffff\nfbfp.#.......f\nfif..###.....f\nfbf..##......f\nfif...##.....f\nfbf..#.##....f\nfif.#####....f\nfbf...#.#..#.f\nfif....######f\nfbf.....#..#.f\nfifggggg##gggf\nffffffffffffff\n\n\n~fffffffffffffffffffffffffffffffffffffffffff\nfifp.####...##########.###################.f\nfbf....###.##....###.##.#.......####...#...f\nfbf...##.#.#######..###.#########..........f\nfbf......###.#..#...#.#####..#.............f\nfifggggggg##gggggggggg##gg#gg#gggggggggggggf\nffffffffffffffffffffffffffffffffffffffffffff\n\n\n(interesting!)\n~fffffffffff\nfbf####p###f\nfif#......#f\nfbf###....#f\nfif#.#...##f\nfbf#.##..##f\nfif###ggg##f\nfbf##..###.f\nfif.####.#.f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp#######f\nfif.#.###.#f\nfbf...#..##f\nfif######.#f\nfbf.###.###f\nfifggg###g#f\nfbf..###..#f\nfif..#.#...f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp#######f\nfif.#.###.#f\nfbf...#..##f\nfif######.#f\nfbf.###.###f\nfifggg###g#f\nfbf..###..#f\nfif..#.#...f\nffffffffffff\n\n\n\n~fffffffffffff\nfif##p.......f\nfif##........f\nfif#.........f\nfif##........f\nfif##........f\nfif#.........f\nfbf###gggggggf\nfif#.##......f\nfbf##.##.....f\nfif.###..#...f\nfbf..##..#...f\nfif...######.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.......##f\nfif.........#f\nfif.......###f\nfif.......#.#f\nfif......##.#f\nfif......#.##f\nfbf.....#####f\nfifggg####g#gf\nfbf..##.##...f\nfif.....###..f\nfbf.....#....f\nfif.....#....f\nffffffffffffff\n\n\n~fffffffffffff\nfif###p......f\nfif#.#.......f\nfif#.#.......f\nfif#.#.......f\nfif####.....#f\nfifggg#gggg##f\nfif...##....#f\nfif....###..#f\nfbf.....#.###f\nfif.....###..f\nffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n(bad)\n~fffffffffffff\nfifp..#......f\nfif...#......f\nfbf..##......f\nfif..##......f\nfbf..#####...f\nfif...#..##..f\nfbf....######f\nfif.....#..#.f\nfbfggggg##g#gf\nfif....###...f\nffffffffffffff\n\n\n(trivial)\n~fffffffffff\nfifp.#.....f\nfif..##....f\nfbf..###...f\nfif..#.....f\nfbf..####..f\nfif....#...f\nfbfggg##gggf\nfif....#...f\nffffffffffff\n\n(pretty trivial)\n~fffffffffff\nfifp.....#.f\nfif......#.f\nfbf...#.##.f\nfif...#.#..f\nfbf...###..f\nfif...##...f\nfbf....#...f\nfifgggg#gggf\nffffffffffff\n\n\n\n\n(fiine / easy )\n~fffffffffff\nfbfp.......f\nfif......#.f\nfbf......#.f\nfif.....##.f\nfbf....###.f\nfif....#...f\nfbf..###...f\nfif...##...f\nfbf...#.##.f\nfif...###..f\nffffffffffff\n\n\n(meh)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfbf........f\nfif........f\nfbf......#.f\nfif......##f\nfbf.....###f\nfif...###.#f\nfbf.....#.#f\nfif..######f\nfbf...#.#.#f\nfif....###.f\nfbf...##.#.f\nfifgg######f\nffffffffffff\n\n\n\n\n(pretty easy)\n~fffffffffff\nfbfp.......f\nfif........f\nfbf.....##.f\nfif......##f\nfbf.....##.f\nfif....#.##f\nfbf....####f\nfif...###..f\nfbf....##..f\nfif...##...f\nffffffffffff\n\n\n\n\n(easy/arbirtaray/pretty)\n~fffffffffffff\nfif.....p....f\nfif..#.#.....f\nfif..###.....f\nfif...#..#.#.f\nfif...#..###.f\nfbf...#...#..f\nfifg###...#..f\nfbf.#.....#..f\nfif.#.....#..f\nffffffffffffff\n\n\n\n(too trivial)\n~fffffffffffffffffffffffffffffffff\nfifp.............................f\nfif......#.......................f\nfif.....##.......................f\nfif.....##.......................f\nfif...####.......................f\nfif....#.#.......................f\nfif.....###......................f\nfif......#.......................f\nfif......#...#...................f\nfif.....######...................f\nfifggggggg####gggggggggggggggggggf\nfif..........#...................f\nfif..........#...................f\nfif..........##..................f\nfif..........##..................f\nfif.........###..................f\nfbf...........##.................f\nfif...........##.................f\nfbf............###.#.............f\nfif............######............f\nffffffffffffffffffffffffffffffffff\n\n\n(meh)\n~fffffffffffffffffffffffffffffffff\nfifp.............................f\nfif..............................f\nfif.........#....................f\nfif.........#....................f\nfif........###...................f\nfif..........#...................f\nfif.......#####..................f\nfif......##..###.................f\nfif.....##....##.................f\nfif.....#.....#..................f\nfifgggggggggg###gggggggggggggggggf\nfif...........##.................f\nfif...........#.#................f\nfif...........###................f\nfif............###...............f\nfif.............###..............f\nfbf...............###............f\nfif...............#.##...........f\nfbf...............##.............f\nfif...............#..............f\nffffffffffffffffffffffffffffffffff\n\n\n\n\n\n(meh)\n~fffffffffffffffffffffffffffffffffffffffffff\nfifp.##################.###################f\nfbf...#.#.##.##.##.#..#.#.#.##.#.....#.#.##f\nfif...#.#....##...#########.....######.#.#.f\nfbfgggggggggggggg##g#g##gggggggggg#ggggggggf\nfif...............#....##........###.......f\nffffffffffffffffffffffffffffffffffffffffffff\n\n\n(meh)\n~fffffffffffff\nfifp.........f\nfbf..........f\nfif......#...f\nfbf......#...f\nfif.....##...f\nfbf.....#....f\nfif....##....f\nffffffffffffff\n\n\n\n\n\n(looks good, but too easy?)\n~fffffffffff\nfbf########f\nfif#p.##..#f\nfbf###..###f\nfif#...####f\nfbf#####..#f\nfif#ggg####f\nfbf######.#f\nfif...##...f\nffffffffffff\n\n(trivial)\n~ffffffff\nfifp..##f\nfbf.#..#f\nfif.####f\nfbf.###.f\nfif..#..f\nfffffffff\n\n(trivial)\n~ffffffff\nfif#p...f\nfbf##.#.f\nfif####.f\nfbf..##.f\nfif.##..f\nfffffffff\n\n\n(Trivial)\n~ffffffff\nfifp..#.f\nfbf.#.##f\nfif.####f\nfbf.##.#f\nfif..#..f\nfffffffff\n\n\n(zu einfach)\n~ffffffffff\nfif##p.#..f\nfbf###.#..f\nfif#.###..f\nfbf#.##...f\nfif####...f\nfbfggg###gf\nfif...##..f\nfffffffffff\n\n\n(zu einfach?)\n~ffffffffff\nfifp...###f\nfbf....#.#f\nfif....###f\nfbf....#.#f\nfifgggg###f\nfbf####.##f\nfif.#####.f\nfffffffffff\n\n\n\n(meh)\n~fffffffffff\nfifp....###f\nfif....####f\nfbf....#..#f\nfif.#..####f\nfbfg#gg#gg#f\nfif.#######f\nfbf.....###f\nfif....##..f\nffffffffffff\n\n\n\n(meh)\n~fffffffffffff\nfif#####p....f\nfif#.##......f\nfif#.##......f\nfif#.#.##...#f\nfif#g#g###g##f\nfif####..#.##f\nfif##.####.##f\nfif....##.#.#f\nfbf.....#####f\nfif.....##.##f\nffffffffffffff\n\n\n(meh)\n~fffffffffffff\nfif###p......f\nfif#.#.......f\nfif#.##......f\nfif#.#.#...#.f\nfif#g#g##gg##f\nfif#.#.######f\nfif####..#.##f\nfif.#.#####.#f\nfbf....#.#.##f\nfif.....#####f\nffffffffffffff\n\n\n(trivial)\n~fffffffffffffffffffffff\nfif#########p.#########f\nfif#......#...#.......#f\nfif########....########f\nfif#.....#....##.#....#f\nfif#######gggg##g######f\nfif#.....###.#.####...#f\nfif#############.......f\nfif.#####...#..........f\nfbf.........##.........f\nfif..........##........f\nffffffffffffffffffffffff\n\n(trivial)\n~fffffffffffffffffffffff\nfif#######p#....#######f\nfif#.#.#.#.##....#.#.##f\nfif###.#.###..#..#.#.##f\nfif..#.#.#...###.######f\nfif########gg#g#g#gggg#f\nfif.##...##############f\nfif..#####..#...#.#.#..f\nfif..........####.#.#..f\nfbf..........##........f\nfif.........###........f\nffffffffffffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n(THE REST)\n\n(hard, couldn't solve myself)\n~fffffffffffffff\nfifp.........##f\nfif.........##.f\nfif.........###f\nfif........#..#f\nfbf........#.##f\nfif........#.#.f\nfbf.......#####f\nfif........#.##f\nfbf........#..#f\nfifggggggg##gggf\nfbf......##....f\nfif.....##.....f\nffffffffffffffff\n\n\n\n\n(solved first go, ok? ohne persönlichkeit) \n~fffffffffffff\nfbfp.......##f\nfif........#.f\nfbf........#.f\nfif.......##.f\nfbf......##..f\nfif.......#..f\nfbf......####f\nfif......##.#f\nfbf....###...f\nfif.....#....f\nffffffffffffff\n\n(too routine)\n~fffffffffffff\nfbfp.........f\nfif...#......f\nfbf...#......f\nfif..##......f\nfbf...##.....f\nfif.##.#.....f\nfbf..###.....f\nfif..#.##....f\nfbf....##....f\nfif.....##...f\nffffffffffffff\n\n(scheiße)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif..#.......f\nfbf..##......f\nfif...#......f\nfbf...##.....f\nfif....#.....f\nfbf....##....f\nfif.....#....f\nffffffffffffff\n\n\n(zu einfach/procedural?)\n~ffffffffffffff\nfifp..........f\nfif........#..f\nfif........#..f\nfbf.......###.f\nfif.......#.#.f\nfbf.......#...f\nfif.....###...f\nfbf......#....f\nfif......#....f\nfbf....###....f\nfif..####.....f\nfffffffffffffff\n\n\n\n\n\n(zu einfach)\n~fffffffffffff\nfbfp........#f\nfif.........#f\nfbf........##f\nfif.......###f\nfbf.......#..f\nfif.....###..f\nfbf.....#.#..f\nfif....###...f\nfbf....##....f\nfif.....#....f\nffffffffffffff\n\n(kein level)\n~fffffffffffff\nfif...p......f\nfif..........f\nfif..........f\nfif..#.......f\nfif..#.#####.f\nfif..#.....#.f\nfbf..#####.#.f\nfbf..#.....#.f\nfbf........#.f\nfbfgg.g#####gf\nfifgg.g#gggggf\nffffffffffffff\n\n(zu einfach)\n~ffffffffffffff\nfif...........f\nfif...........f\nfif...........f\nfif...p..#....f\nfif.#....#....f\nfif.#....#....f\nfif.#...##....f\nfif.#....##...f\nfbf.##....#...f\nfbfg.#..#.#...f\nfif..#..#.#...f\nfif..#..#.#...f\nfffffffffffffff\n\n\n\n\n\n(zu einfach?)\n~ffffffffff\nfif.......f\nfbf.#.#.#.f\nfif.#.#.#.f\nfbf.#####.f\nfif..#p#..f\nfbf.g###.gf\nfif.g.#g.gf\nfffffffffff\n\n(no level)\n~fffffffff\nfif...p..f\nfbf.g#.#.f\nfif.g###.f\nfbf....#.f\nfif...##.f\nfbfg..#..f\nfif...#..f\nffffffffff\n\n\n(no level)\nffffffff\nf......f\nf....#.f\nfg...#.f\nf..P.#.f\nf..#.#.f\nf..#.#.f\nf.##.#.f\nffffffff\n\n\n(zu einfach)\n~ffffffffff\nfifp....#.f\nfbf....###f\nfif.....##f\nfbf...###.f\nfif...##..f\nfbf...#...f\nfifg####ggf\nfffffffffff\n\n(kein Level)\n~fffffffffffff\nfif...p......f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbfg.........f\nfif..........f\nffffffffffffff\n\n\n\n(kein Level)\n~fffffffffffff\nfif#..p.#.#..f\nfbf########..f\nfbf#......#.#f\nfbf#.#####..#f\nfbf#.....#..#f\nfbf#..##.#..#f\nfbf#...#.#..#f\nfbf#####.####f\nfbf...#...#..f\nfbfg..#####..f\nfif....#.....f\nffffffffffffff\n\n\n\n\n\n(kein Level)\n~fffffffffffff\nfif...p......f\nfbf######....f\nfbf#....#....f\nfbf##........f\nfbf.#..###...f\nfbf.##.#.#...f\nfbf..#.#.#...f\nfbf..#.###...f\nfbf.##..#....f\nfbfg#...#....f\nfif.#...#....f\nffffffffffffff\n\n\n\n\n(kein Level)\n~fffffffffffff\nfif..........f\nfif.###......f\nfif.#.#...###f\nfif.###...#.#f\nfif.#...###..f\nfifg#.###....f\nfif.###.#....f\nfif.#..###...f\nfbf..p.#.#...f\nfbf...###....f\nfif...#.#....f\nffffffffffffff\n\n\n\n(zu einfach)\n~ffffffff\nfif##p..f\nfbf.####f\nfbf###.#f\nfbf...##f\nfif..##.f\nfffffffff\n\n(kein level)\n~fffffffffffff\nfbfp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..........f\nfif.....#....f\nfbf.....#....f\nfif....###...f\nfbf......#...f\nfif....###...f\nffffffffffffff\n\n(meh)\n~ffffffff\nfif##p..f\nfbf#....f\nfbf####.f\nfbf.##..f\nfif..#..f\nfffffffff\n\n(hmmm dunno -vllt zu einfach?)\n\n~fffffffffff\nfif#####p..f\nfbf##.####.f\nfbf##..##..f\nfbf.#..##..f\nfifggggg##gf\nffffffffffff\n\n(dunno?)\n~ffffffffffffffffff\nfifp............#.f\nfif............##.f\nfif.............##f\nfif..............#f\nfif..............#f\nfif............###f\nfif.........####.#f\nfbf...........##.#f\nfif..........##..#f\nfbf..........##...f\nfif.........###...f\nfbf........###....f\nfifgggggggg##gggggf\nfbf......###......f\nfif....#####......f\nfffffffffffffffffff\n\n(zu einfach)\n~ffffffff\nfif#p...f\nfbf#..#.f\nfbf####.f\nfbf..##.f\nfif..#..f\nfffffffff\n\n(boring!)\n~ffffffff\nfifp#.#.f\nfbf.###.f\nfif..##.f\nfbfg##ggf\nfif..#..f\nfffffffff\n\n(trivial)\n~fffffffffff\nfifp.....#.f\nfif......#.f\nfif......#.f\nfif.....##.f\nfbf.....#..f\nfif.....#..f\nfbfgggg##ggf\nfif....#...f\nffffffffffff\n\n(trivial)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif.......#..f\nfbf.......#..f\nfif......##..f\nfbf......##..f\nfif......#...f\nfbf.....##...f\nfifggggg#ggggf\nffffffffffffff\n\n\n(meh)\n~fffffffffff\nfifp.......f\nfif.#......f\nfbf.##.....f\nfif..#.....f\nfbf..##....f\nfif...#....f\nfbf...##...f\nfif....#...f\nffffffffffff\n\n\n(nicht interessant)\n~fffffffffffff\nfbfp.........f\nfif..........f\nfbf##........f\nfif#.........f\nfbf##........f\nfif#.........f\nfbf####......f\nfif.#.#......f\nfbf.###......f\nfif..###.#...f\nffffffffffffff\n\n(meh)\n~fffffffffffff\nfif#p........f\nfif##........f\nfif#.........f\nfif##........f\nfbf###.......f\nfif#.........f\nfbf##ggggggggf\nfif.##.......f\nfbf..#..#....f\nfif..#.###...f\nffffffffffffff\n\n\n\n\n\n\n\n\n(meh)\n~fffffffffffffffffffffffffffffffff\nfifp..............####...........f\nfbf..............#.#.#...........f\nfbf..............###.............f\nfbf.............###..#...........f\nfifggggggggggggggg#####ggggggggggf\nffffffffffffffffffffffffffffffffff\n\n\n\n(huh not so bad? but hard for some maybe? wait maybe i just solved by chance....)\n~fffffffffffff\nfifp......###f\nfif.#.#...#.#f\nfbf.#.##...##f\nfbf.####...##f\nfbf##..###.##f\nfbf######.#.#f\nfbf.....#####f\nfbf...###.##.f\nfbf...#.#....f\nfif....##....f\nffffffffffffff\n\n\n\nmessage level 5 of 10 : Gallows\n(hard - actually ok? medium difficulty?)\n~ffffffffffff\nfif.........f\nfifp.#......f\nfif..#......f\nfif..###....f\nfif..#......f\nfbf.####....f\nfif...###...f\nfbf...#.#...f\nfif.....#...f\nfbfggggg##ggf\nfif......##.f\nfffffffffffff\n\n\n\n\nmessage level 2 of 10 : ANTENNA 1\n(ok anfangerlevel?)\n~fffffffff\nfbfp#..#.f\nfif##..#.f\nfbf.#.##.f\nfif####.#f\nfbf#..###f\nfifggg#ggf\nffffffffff\n\n\n\nmessage level 3 of 10 : UFO\n(ok! / easy / Space invaders)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..#..#....f\nfif########..f\nfbf#.###..#..f\nfif.....####.f\nfbf..###.##..f\nfif....###...f\nffffffffffffff\n\n\n\n\n(\n(ok anfangerlevel)\n~fffffffff\nfbfp#..##f\nfif.##.##f\nfbf..###.f\nfif...###f\nfbf####..f\nfifggg#ggf\nffffffffff\n)\n\n\n\n\n(\n\n~fffffffffffff\nfifp.......#.f\nfif........##f\nfif........##f\nfif.........#f\nfbf.........#f\nfif.......###f\nfbf.......##.f\nfifggggggg##gf\nfbf.......#..f\nfif...#####..f\nffffffffffffff\n)\n\n\n(ok simple? NAH TOO SIMPLE)\n~ffffffffffffffffffffffffffff\nfifp........................f\nfif###......................f\nfif#.#......................f\nfif###......................f\nfif##.......................f\nfif##.......................f\nfif##.......................f\nfif#........................f\nfif##.......................f\nfif##.......................f\nfif##.......................f\nfif##..#.#..................f\nfif##.####..................f\nfif#####.#..................f\nfifgg#g#g#ggggggggggggggggggf\nfif..#.###..................f\nfif......##.................f\nfif......##.................f\nfif......#.#................f\nfif......####...............f\nfif.......#.#...............f\nfbf.......#.#...............f\nfif.....######..............f\nfbf.....#..#####.##.........f\nfif.........#.####..........f\nfffffffffffffffffffffffffffff\n\n\n\n\n(alien slug attack!)\nmessage level 6 of 10 : Alien Slug Attack\n~fffffffffffffffff\nfifp...####......f\nfbf....#####.....f\nfbf...##..##.....f\nfbf....#..##.....f\nfifgggggggg####ggf\nffffffffffffffffff\n\n\n\n\n\n(decent - middle-hard? -- too mich like final level? (difficulty/appearance-wise?)\n~fffffffffffffff\nfif#p..........f\nfif#...........f\nfif##..........f\nfif#...........f\nfbf###.........f\nfif#.#.........f\nfbf.##.#.......f\nfif..###.......f\nfbf...###......f\nfif....#...#...f\nfbfgggg######ggf\nfif......##....f\nffffffffffffffff\n)\n\n\n\n(fun to find the right points? MEH)\n~ffffffffffffffffffff\nfifp................f\nfif.................f\nfif...............##f\nfif................#f\nfif...............##f\nfif...............##f\nfif.............####f\nfif................#f\nfif..............###f\nfif...............##f\nfif................#f\nfif.........#.#...##f\nfif.........#.####.#f\nfif........####.####f\nfif............##...f\nfifgggggggg#######ggf\nfif........#..#.....f\nfif........######...f\nfif.........##......f\nfbf........##.......f\nfif.....####........f\nfbf......#..........f\nfif......#..........f\nfbf....###..........f\nfif.#######.........f\nfffffffffffffffffffff\n\n\n\n\n\n(wie ein gebäude aus - ziemlich einfach)\n~fffffffffffff\nfifp........#f\nfif........##f\nfif........##f\nfif........##f\nfbf.........#f\nfif.........#f\nfbfgggggggg##f\nfif......###.f\nfbf.......##.f\nfif....####..f\nffffffffffffff\n\n\n\n\n\n\n(nice/ok!)\n~ffffffffff\nfifp.....#f\nfbf.....##f\nfif....###f\nfbf....#.#f\nfif....###f\nfbfggg###gf\nfif..##...f\nfffffffffff\n\n\nmessage level 4 of 10 : Duck Tree\n(ducktree!)\n~fffffffffff\nfifp.##..##f\nfif.###.###f\nfbf...##.#.f\nfif..###.#.f\nfbf....####f\nfifgggg##ggf\nfbf....#...f\nfif....#...f\nffffffffffff\n\n\n\n)\n", [2, 2, 2, 2, 4], "background exploding fenster tl:0,background fenster fenster_right:1,1,1,1,1,1,1,1,background fenster:2,background fenster fenster_down:3,background inventar:4,\n4,background bang_schatten inventar:5,4,background bang inventar:6,4,6,4,background fenster fenster_up:7,2,background fenster fenster_left fenster_right:8,8,8,\n8,8,8,8,8,2,3,background:9,9,9,9,background htarget player_h:10,\n9,background landbackground:11,11,7,3,9,9,9,9,background htarget:12,background bond_r wall:13,11,\n11,7,3,9,9,9,9,background bond_d bond_r htarget wall:14,background bond_d bond_l bond_u wall:15,background bond_u landbackground wall:16,11,7,\n3,9,9,9,background bond_d wall:17,background bond_l bond_u htarget wall:18,background bond_d bond_r wall:19,background bond_r bond_u landbackground wall:20,11,7,3,9,\n9,9,9,12,background bond_d bond_l wall:21,background bond_d bond_l bond_u landbackground wall:22,20,7,3,9,9,9,\n9,12,9,11,background bond_l landbackground wall:23,7,3,9,9,9,9,12,\n9,11,11,7,3,9,9,9,9,12,9,11,\n11,7,2,background fenster fenster_left:24,24,24,24,24,24,24,24,2,\n", 16, "1627892617303.8054"] ], [ - "A CLEAR VIEW OF THE SKY", - ["title A CLEAR VIEW OF THE SKY\nauthor increpare\nhomepage www.increpare.com\n\nnorepeat_action\n\nrun_rules_on_level_start\n\ncolor_palette 2\n\nbackground_color #005784\ntext_color lightblue\n\n(uses https://github.com/increpare/Zersto-rungto generate levels)\n========\nOBJECTS\n========\n\nbackground\nblue\n\nlandbackground\ngreen\n\n\nwall \ndarkblue gray lightgray\n00000\n01110\n01110\n01110\n00000\n\nplayer_h\ntransparent\n.....\n..0..\n.000.\n..0..\n.....\n\n\nplayer_v\nyellow\n.....\n..0..\n.000.\n..0..\n.....\n\n\nfenster\n#005784\n\n\nfenster_up\n#1d3d60 lightblue\n00000\n.....\n.....\n.....\n.....\n\nfenster_down\ndarkblue #17669f\n.....\n.....\n.....\n.....\n11111\n\nfenster_left\n#1d3d60 #17669f\n1....\n1....\n1....\n1....\n1....\n\nfenster_right\n#1d3d60\n....0\n....0\n....0\n....0\n....0\n\nhtarget\norange\n.....\n.....\n00000\n.....\n.....\n\n\nvtarget\norange\n..0..\n..0..\n..0..\n..0..\n..0..\n\ninventar\ndarkblue\n\nbang\n yellow red\n...0.\n..00.\n.010.\n.00..\n.0...\n\nbang_schatten\ndarkgray\n...0.\n..00.\n.0.0.\n.00..\n.0...\n\nbond_u\ndarkblue gray lightgray\n.111.\n.....\n.....\n.....\n.....\n\n\n\nbond_d\ndarkblue gray lightgray\n.....\n.....\n.....\n.....\n.111.\n\n\n\nbond_l\ndarkblue gray lightgray\n.....\n1....\n1....\n1....\n.....\n\n\n\nbond_r\ndarkblue gray lightgray\n.....\n....1\n....1\n....1\n.....\n\n\n\n\ntl\ntransparent\n\nexploding\ntransparent\n\nexplosion\nred yellow\n.1.1.\n10.01\n..0..\n10.01\n.1.1.\n\nnofall\nred\n.0...\n.....\n.....\n.....\n.....\n\nfall\nlightblue\n.0...\n.....\n.....\n.....\n.....\n\n\nsky_darker 7\ndarkred darkblue\n01010\n10101\n01110\n10101\n01011\n\nsky_darker2 8\ndarkbrown black\n01010\n10101\n01110\n10101\n01011\n\n\nsky_darker4 0\nblack darkblue\n11010\n10111\n01010\n11101\n01011\n\nsky_darker3 9\nwhite black\n11111\n11101\n11111\n11111\n11111\n\nsky_darker7 w\nblack\n\nsky_pink 2\nred darkblue\n01010\n10101\n01110\n10101\n01011\n\nsky_orange 1\nred lightred\n01000\n10101\n00010\n01010\n00000\n\n\nsky_red 3\nred orange\n01010\n10101\n01010\n10101\n01010\n\nsky_yellow 4\nyellow red orange\n12121\n21212\n10001\n00000\n00000\n\nsky_purple 5 \nred blue\n01010\n11101\n01010\n10111\n01010\n\n\nsky_land 6\ndarkgreen green\n01010\n10101\n01010\n10101\n01010\n\n=======\nLEGEND\n=======\n\nplayer = player_h or player_v\ntarget = htarget or vtarget\n\n. = Background\n# = wall\nP = Player_h\nf = fenster\n\ng = landbackground\n\nobstacle = wall\n~ = tl and fenster\ni = inventar\nb = bang and inventar\nbond = bond_u or bond_d or bond_l or bond_r\n\nfallblocker = wall or fenster\nanimation = 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 or 0\n=======\nSOUNDS\n=======\n\nsfx0 55915302 (bang)\nsfx1 90167907 (other agains)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nlandbackground, inventar\nwall\nbond_u\nbond_d\nbond_l\nbond_r\nexplosion\ntarget\nPlayer, fenster, bang,bang_schatten\nfenster_up\nfenster_down\nfenster_left\nfenster_right\ntl\nexploding\nnofall\nfall\n1,2,3,4, 5, 6,7,8,9,0,w\n\n======\nRULES\n======\n\n\nup [fenster | no fenster ]-> [ fenster fenster_up | ]\ndown [fenster | no fenster ]-> [ fenster fenster_down | ]\nleft [fenster | no fenster ]-> [ fenster fenster_left | ]\nright [fenster | no fenster ]-> [ fenster fenster_right | ]\n\n[ tl no exploding ] [bond]->[ tl ] [ ]\ndown [ tl no exploding ] [wall | wall]->[tl][ wall bond_d | wall bond_u ]\nright [ tl no exploding ] [wall | wall]->[tl][ wall bond_r | wall bond_l ]\n\n[tl]->[tl exploding]\n\ndown [ wall no bond_d | fallblocker ] -> [ wall nofall | fallblocker ]\n(floodfill)\nup [nofall bond_u | ] -> [ nofall bond_u | nofall ]\n+ down [nofall bond_d | ] -> [ nofall bond_d | nofall ]\n+ left [nofall bond_l | ] -> [ nofall bond_l | nofall ]\n+ right [nofall bond_r | ] -> [ nofall bond_r | nofall ]\n\n\ndown [ wall no nofall | no fallblocker ] -> [ wall fall | ]\n\nup [fall bond_u | ] -> [ fall bond_u | fall ]\n+ down [fall bond_d | ] -> [ fall bond_d | fall ]\n+ left [fall bond_l | ] -> [ fall bond_l | fall ]\n+ right [fall bond_r | ] -> [ fall bond_r | fall ]\n\n[fall wall]->[down wall] sfx1 again\n\n[fall]->[]\n[nofall]->[]\n\n[up wall bond ] -> [ up wall up bond ]\n+ [down wall bond ] -> [ down wall down bond ]\n+ [left wall bond ] -> [ left wall left bond ]\n+ [right wall bond ] -> [ right wall right bond ]\n\n[target]->[]\n\n\n[horizontal player ] -> cancel\n(\n[up player_h ] -> [ up player_v ]\n[down player_h ] -> [ down player_v ]\n[left player_v ] -> [ left player_h ]\n[right player_v ] -> [ right player_h ]\n)\n\nright left down [ landbackground | no landbackground no fenster ] -> [ landbackground | landbackground no fenster ]\n\n\n[player_h ] -> [ player_h htarget ]\n[player_v ] -> [ player_v vtarget ]\n\nhorizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nvertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\nup [ bond_u | explosion ] -> [ | explosion ]\ndown [ bond_d | explosion ] -> [ | explosion ]\nleft [ bond_l | explosion ] -> [ | explosion ]\nright [ bond_r | explosion ] -> [ | explosion ]\n\n[explosion wall ] -> [ no bond ] sfx1 again\n\n[explosion ] -> [ ] again\n\n[action player ] [bang] -> [ player ] [ action bang_schatten ]\n\n[action bang_schatten ] [ target ]-> [ action bang_schatten ] [ explosion ] sfx0 again\n\n\nlate [target]->[]\n\nlate [player_h ] -> [ player_h htarget ]\nlate [player_v ] -> [ player_v vtarget ]\n\nlate horizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nlate vertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll wall on landbackground \n\n=======\nLEVELS\n=======\n\n\n(OK LEVELS)\n\n\n\n\nmessage All those ugly buildings blocking our view.\nmessage Let's DEMOLISH them to SAVE OUR SKY\n\nmessage level 1 of 13 : FACTORY\n(sehr einfach)\n~ffffffffffffff\nfif...........f\nfif...........f\nfif...........f\nfif....p......f\nfif.....#.....f\nfif...#.#.....f\nfif...#.###...f\nfbf...######..f\nfif..###...#..f\nfbfg.#...#.#..f\nfif..#...#.#..f\nfffffffffffffff\n\n\nmessage Ah, what a lovely view of the sky!\n\nmessage level 2 of 13 : Lop-sided Electricity Poll\n(actually ok?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif...#......f\nfif...##.....f\nfif...#......f\nfbf...##.....f\nfif....##....f\nfbfggggg#ggggf\nfif.....#....f\nffffffffffffff\n\n\n\n\nmessage level 3 of 13 : Water Pump\n(ok anfängerlevel?)\n~fffffffff\nfif...p..f\nfbf###...f\nfif#.###.f\nfbf#.##..f\nfif#.##..f\nfbf#gg##gf\nfif...#..f\nffffffffff\n\n\n\n\nmessage level 4 of 13 : Electricity Supply\n\n(einfach/gut?)\n~ffffffff\nfif###p#f\nfbf#.#.#f\nfbf#####f\nfbf##.#.f\nfifg####f\nfffffffff\n\n\nmessage level 5 of 13 : Water Font\n(hard)\n~fffffffffffff\nfifp....###..f\nfbf...#.#.#..f\nfbf...####...f\nfbf...##.##..f\nfifgg#g####ggf\nffffffffffffff\n\n\n\nmessage level 6 of 13 : Angry Goose\n(tricky + sieht gut aus)\n~ffffffffffff\nfifp##.####.f\nfbf.####.##.f\nfbf...##.#..f\nfbf...###...f\nfifgg##gggggf\nfffffffffffff\n\n\n\nmessage level 7 of 13 : Lean-to\n(nice/ok!)\n~fffffffffff\nfifp..#....f\nfif..##....f\nfbf.##.....f\nfif..#.....f\nfbf####....f\nfif...##...f\nfbfggg##gggf\nfif....##..f\nffffffffffff\n\n\n(medium-hard / fun! )\nmessage level 8 of 13 : Treehouse\n~fffffffffffffff\nfifp...........f\nfif........#...f\nfif........#...f\nfif.......####.f\nfbf.......#..#.f\nfif......#####.f\nfbf........#...f\nfif......###...f\nfbf......##....f\nfif.....##.....f\nfbfgggg#g#gggggf\nfif...####.....f\nffffffffffffffff\n\n\n\n\nmessage level 9 of 13 : Ugly Antenna\n(i had fun solving this)\n~fffffffffffff\nfifp.###.####f\nfbf..#.#....#f\nfif..#.##.###f\nfbf..#.###.#.f\nfif..####.##.f\nfbfggggg###ggf\nfif.....#....f\nffffffffffffff\n\n\n\n\nmessage level 10 of 13 : 60's Futuristic settlement\n(ok/interesting to solve!)\n~fffffffffff\nfbf##p.####f\nfif#...#..#f\nfbf#...####f\nfif######.#f\nfbf###.##.#f\nfifggg##gg#f\nfbf...#.#.#f\nfif...###..f\nffffffffffff\n\n\nmessage level 11 of 13 : Dystopic settlement\n(futuristic city - hardlevel?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..##......f\nfif..#.......f\nfbf..##.#.#..f\nfif..##.###..f\nfbf..###.###.f\nfif....#.##..f\nfbf....#.#...f\nfifggg####gggf\nffffffffffffff\n\n\nmessage level 12 of 13 : Space elevator\n(interesting? seemingly impossible?)\n~fffffffffffff\nfif#####p....f\nfif#.#.#.....f\nfif#.####....f\nfif#.##......f\nfif#g#gggggggf\nfif#.#.......f\nfif#.##......f\nfif#.#.......f\nfif#.##......f\nfbf#.#.......f\nfif#.###.....f\nfbf#.#.###.#.f\nfif#.###..##.f\nfbf##..####..f\nfif.#######..f\nffffffffffffff\n\n\n\n\nmessage level 13 of 13 : Building seeminly purposely constructed to block my view.\n\n(can't easily solve meh - could be ok final level? FINAL LEVEL)\n~fffffffffffffffff\nfif###p..........f\nfif#.##..........f\nfif####..........f\nfif...##.........f\nfif####..........f\nfif.#............f\nfif##............f\nfif###...........f\nfif..#...........f\nfif#####.........f\nfif...#.#.#......f\nfif######.#......f\nfif###..###......f\nfif#..###........f\nfif.....##.......f\nfifgggggg#gggggggf\nfif......###.....f\nfif.......##.....f\nfif.......##.....f\nfbf........##....f\nfif........##....f\nfbf.........##...f\nfif.........##...f\nfbf.........#####f\nfif............#.f\nffffffffffffffffff\n\n\nmessage Ahh, the sky is clear again, just in time for the sunset\n\n\n\n5555555555555555555\n5555522222222555555\n5552222222222222555\n5222222222222222225\n2222222111112222222\n2222211111111122222\n2221111133311111222\n2211111334331111112\n6666666666666666666\n6666666666666666666\n6666666666666666666\n\n\n\n\n22222222222222222222\n22222222222222222222\n22222222222222222222\n22222222222222222222\n22222221212122222222\n22221212121212122222\n22212121111121212222\n22121211111112121222\n66666666666666666666\n66666666666666666666\n66666666666666666666\n\n\n\n00000077777777000000\n00007777777777770000\n00077777777777777000\n07777777777777777770\n77777722222222777777\n77772222222222227777\n77722221111122222777\n77222211111112222277\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n88888888888888888888\n88888880000088888888\n88888000000000088888\n88800000000000000888\n88000000000000000088\n80000000000000000008\n00000000222000000000\n00000002222200000000\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwww000wwwwwwwww\nwwwww000222000wwwwww\n00000022222220000000\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n\n\nw9wwwwwwww9wwwwwwwww\nwwwwwwwwwwwwww9www9w\nwwww9wwwwwwwwwwwwwww\nwwwwwwwww9wwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwww9www\nw9wwwww9wwwww9wwwwww\nwwwwwwwwwwwwwwwwwwww\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\nmessage The End \n\n\n\n(\n\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf.....#....f\nfif....####..f\nfbf...##..#..f\nfif#.#..###..f\nfbf#####.##..f\nfif.#.####...f\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfbfp.........f\nfif....#.....f\nfbf....##....f\nfif....###...f\nfbf......#...f\nfif..######..f\nfbf...#.#.#..f\nfif.....####.f\nfbf....#.##..f\nfifgg#####gggf\nffffffffffffff\n\n(microscope?)\n~fffffffffffff\nfbfp.........f\nfif......##..f\nfbf.....##...f\nfif....##....f\nfbf....#.##..f\nfif....#.#...f\nfbf....####..f\nfif.......#..f\nfbf..######..f\nfifgg####ggggf\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.......#.f\nfif......#.#.f\nfif......#.##f\nfif......####f\nfbf....####.#f\nfifggggg#g##gf\nfbf...#####.#f\nfif....######f\nfbf..#.###...f\nfif.######...f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.....#...f\nfif......##..f\nfif....####..f\nfif....##.#..f\nfbf....###...f\nfifgg#g####ggf\nfbf..####.#..f\nfif..#####...f\nfbf..#######.f\nfif....#####.f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.....#...f\nfif....#.#...f\nfif....###...f\nfif...###..#.f\nfbf...#.####.f\nfifgggg##ggggf\nfbf...#####..f\nfif....####..f\nfbf..######..f\nfif..########f\nffffffffffffff\n\n\n\n\n~fffffffffff\nfbfp...#.#.f\nfif....#.##f\nfbf....###.f\nfif.###.###f\nfbf...###.#f\nfif.....##.f\nfbfggg###ggf\nfif...#####f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp...##..f\nfif.######.f\nfbf....#.#.f\nfif...###..f\nfbf...#.##.f\nfif....###.f\nfbfggg#gg#gf\nfif..######f\nffffffffffff\n\n(hard, but looks nice)\n~fffffffffff\nfbfp...#..#f\nfif....####f\nfbf.....#.#f\nfif...###..f\nfbf.....###f\nfif...###..f\nfbfg##g#g##f\nfif..######f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp..#.##.f\nfif...#.#..f\nfbf...#####f\nfif....#.#.f\nfbf....###.f\nfif...###..f\nfbfg###gg#gf\nfif.#.####.f\nffffffffffff\n\n~fffffffffff\nfifp.......f\nfif........f\nfif#.......f\nfbf###.....f\nfif#.##....f\nfbf##......f\nfif##......f\nfbf#.......f\nfif##.#....f\nfbf##.#....f\nfif.####...f\nfbf.#.####.f\nfif....#.#.f\nfbfgggg###gf\nfif....#...f\nffffffffffff\n\n\n\n(hard/unsolved)\n~fffffffffffff\nfifp...####..f\nfif.....##...f\nfbf....##....f\nfif...#.##...f\nfbf...#.#..#.f\nfif...####.#.f\nfbf....#.###.f\nfif....#.#...f\nfbfggg#######f\nfif..#...#...f\nfbf.######...f\nfif...###....f\nffffffffffffff\n\n\n(haard, pretty, unsolved)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf.....#....f\nfif....###...f\nfbf...#####..f\nfif.....#..#.f\nfbf.....####.f\nfif..#.#.#.#.f\nfbf.##.#.##..f\nfif..#.####.#f\nfbfgg##ggg#g#f\nfif...#######f\nffffffffffffff\n\n\n(haard, pretty, ,unsolved)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf...##..#..f\nfif.##.####..f\nfbf..##.#.#..f\nfif...#.###..f\nfbf...##.##..f\nfif....###...f\nfbf......#...f\nfif....######f\nfbfgg###ggg##f\nfif....#####.f\nffffffffffffff\n\n(haard ,unsolved)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfbf........f\nfif....###.f\nfbf.....###f\nfif......#.f\nfbf......#.f\nfif.....##.f\nfbf......##f\nfif....####f\nfbf....##..f\nfif...###..f\nfbf....##..f\nfifggg##gggf\nffffffffffff\n\n\n\n(too tired, don't want to solve)\n~ffffffffffffffffffffffffffffffffffffff\nfifp..................................f\nfif.......#...........................f\nfif.......#...........................f\nfif#.....##...........................f\nfif##...##............................f\nfif.####.#............................f\nfif....####...........................f\nfif....##.#...........................f\nfif.......##..........................f\nfif......####.........................f\nfif........#.#........................f\nfif.......####........................f\nfif.......#.##........................f\nfifggggggg#g##ggggggggggggggggggggggggf\nfif........####.......................f\nfif...........#.......................f\nfif........######.....................f\nfif........#.##.##....................f\nfif............##.....................f\nfbf..........####.....................f\nfif............####...................f\nfbf...........##.###..................f\nfif..............#.#..................f\nfbf................#..................f\nfif................###................f\nfffffffffffffffffffffffffffffffffffffff\n\n\n~fffffffffffff\nfbfp.#.......f\nfif..###.....f\nfbf..##......f\nfif...##.....f\nfbf..#.##....f\nfif.#####....f\nfbf...#.#..#.f\nfif....######f\nfbf.....#..#.f\nfifggggg##gggf\nffffffffffffff\n\n\n~fffffffffffff\nfifp.....##.#f\nfif.......#.#f\nfif.......#.#f\nfif.......###f\nfif.........#f\nfif.........#f\nfifggggggggg#f\nfif.......###f\nfif......##.#f\nfif.....###.#f\nfif.......###f\nfif.........#f\nfif.......###f\nfif......#..#f\nfif......####f\nfif.......#.#f\nfif........##f\nfif.......###f\nfif.........#f\nfif........##f\nfif.......###f\nfif........##f\nfif........##f\nfif.........#f\nfbf..##...###f\nfif..#...##.#f\nfbf..##....##f\nfif..###.###.f\nfbf...##.#...f\nfif...#####..f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif.........#f\nfif.......###f\nfif........##f\nfif........##f\nfif........##f\nfif.....##.##f\nfifgggggg#g##f\nfif.....#####f\nfif.........#f\nfif.....#####f\nfif.........#f\nfif...#######f\nfif.....#...#f\nfif......####f\nfif.........#f\nfif.......###f\nfif......##.#f\nfif.......#.#f\nfif.......###f\nfif......#..#f\nfif......####f\nfbf.........#f\nfif.......###f\nfbf.......#.#f\nfif.......##.f\nfbf.....###..f\nfif..#####...f\nffffffffffffff\n\n\n\n~fffffffffffffffffffffff\nfifp.................##f\nfif.................#.#f\nfif.................###f\nfif...................#f\nfif...................#f\nfif..................##f\nfifgggggggggggggggggg##f\nfif..................##f\nfif.................#.#f\nfif.................#.#f\nfif.............###.###f\nfif..............#.##.#f\nfif..............###..#f\nfif...............#.#.#f\nfbf...............#.###f\nfif...##....#.##..###.#f\nfbf...###.###..#.#.#.##f\nfif....####.#..#######.f\nfbf......########..#.#.f\nfif..........##......#.f\nffffffffffffffffffffffff\n\n\n\n~ffffffffffffffffff\nfif##p.....#######f\nfif##.......##...#f\nfif#..#.......####f\nfif######.....####f\nfbf#....##..###..#f\nfif######...#.#.##f\nfbfg#gg####g##ggggf\nfif.....#.#####...f\nfbf.....###.#.....f\nfif.......##......f\nfffffffffffffffffff\n\n\n\n~ffffffffffffffffff\nfif########p......f\nfif#.#.#.#........f\nfif#.#.#.#...#....f\nfif#.######.######f\nfbf#g##gg#######ggf\nfif#.#...##.#..##.f\nfbf###....#.###...f\nfif##.....###.....f\nfbf#....####......f\nfif.......#.......f\nfffffffffffffffffff\n\n\n\n~fffffffffffffffffffffff\nfifp.......############f\nfif......####.#.......#f\nfif......#.#.#.########f\nfif.......##.#.#......#f\nfbfggggggg#g##g########f\nfif......###.#.#.#.####f\nfbf........######...#..f\nfif.....###....#.......f\nfbf.......######.......f\nfif.....########.......f\nffffffffffffffffffffffff\n\n\n\n\n\n~fffffffffffffffffffffff\nfif###p########.##.####f\nfif#####..#.#...####..#f\nfif...#.###.##....#.###f\nfif#######..#.#########f\nfbf.#...#.#.######.#...f\nfifg#####g##g##ggggggggf\nfbf.....######.........f\nfif.......#..##........f\nfbf.........###........f\nfif..........###.......f\nffffffffffffffffffffffff\n\n\n\n\n~fffffffffffffffffffffff\nfif#########p....##....f\nfif#.#.#.##....###.....f\nfif#.#.#.#....#.####...f\nfif#.#.#.#....#.#..#...f\nfbf#g#g###gggg#g###ggggf\nfif####..#.#..###.#....f\nfbf...####.#..##.......f\nfif...##.#.##.#.#......f\nfbf....##########......f\nfif....#....##.#.......f\nffffffffffffffffffffffff\n\n\n\n(hard, haven't solved manually)\n~fffffffffffff\nfif###p......f\nfbf#.#.......f\nfif#.###.....f\nfbf#.#.##....f\nfif####g####gf\nfbf##.####...f\nfif.##..#....f\nffffffffffffff\n\n\n(too hard)\n~fffffffffffff\nfif#####p....f\nfif#.#.#.....f\nfif#.##.#....f\nfif#.#####...f\nfif#.##.#....f\nfif#g#gggggggf\nfif#.####....f\nfif#.#.#..##.f\nfif#.###.#.##f\nfbf##..#####.f\nfif.####.....f\nfbf...###....f\nfif....#.....f\nfbf....#.##..f\nfif....###...f\nffffffffffffff\n\n\n\n(hard, looks ok, but meh)\n~fffffffffffff\nfif###p#.....f\nfif##.##.....f\nfif##.#......f\nfif####......f\nfif#.#.......f\nfbf#.#.......f\nfif###.......f\nfbf#.##......f\nfif#.##......f\nfbf##g##gggggf\nfif.###......f\nfbf.#.##.....f\nfif...#......f\nfbf..###.#...f\nfif....####..f\nffffffffffffff\n\n\n(hard, looks ok, but meh)\n~fffffffffffff\nfif##p#......f\nfif####......f\nfif#.##......f\nfif#.#.......f\nfif#.#.......f\nfbf###.......f\nfif#.........f\nfbf###.......f\nfif#.........f\nfbf#####gggggf\nfif#.##.#....f\nfbf..##.##...f\nfif..#####...f\nfbf.....###..f\nfif...###....f\nffffffffffffff\n\n(hmmm! not sure!)\n~ffffffffffffffffffffffffffff\nfifp........................f\nfif.........................f\nfif.........................f\nfif.........................f\nfif....................##...f\nfif.....................##..f\nfif....................##...f\nfif...................###...f\nfif...................##....f\nfif.................####....f\nfifgggggggggggggggggggg###ggf\nfif...............######.##.f\nfif..................#.#....f\nfif..................####...f\nfif................####.#...f\nfif................###......f\nfif..................##.....f\nfif..................#.##...f\nfif................###.##...f\nfbf................#.#####..f\nfif...............##.#......f\nfbf................####.....f\nfif................##.......f\nfbf.............#####.......f\nfif.........#####...........f\nfffffffffffffffffffffffffffff\n\n\n\n(soll schwierig sein - will nicht lösen!)\n~fffffffffff\nfifp.......f\nfif........f\nfbf........f\nfif....#...f\nfbf..###...f\nfif....##..f\nfbf...#.#..f\nfif...#.##.f\nfbf...#.###f\nfif..###.##f\nfbf..#.###.f\nfifgggg##ggf\nffffffffffff\n\n\n(soll schwierig sein - ja zu schwierig)\n~ffffffffffff\nfif.........f\nfbf.p.......f\nfif...#.....f\nfbf...#.....f\nfif...###...f\nfbf...#.##..f\nfif.#####...f\nfbf..#..###.f\nfif...##..#.f\nfbf....####.f\nfifggggg##ggf\nfffffffffffff\n\n(hard - will nicht lösen )\n~fffffffffffff\nfifp.........f\nfif......#...f\nfif.....##...f\nfif....##....f\nfbf....#.##..f\nfif....###...f\nfbfgggg##ggggf\nfif...###....f\nfbf.....#....f\nfif....##....f\nffffffffffffff\n\n\n(should be hard?)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfif...##...f\nfbf..###...f\nfif.###....f\nfbf...##...f\nfif....#...f\nfbf..#.##..f\nfifgg##g#g.f\nfbf...#.#..f\nfif...###..f\nffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n(zeimlich einfach!)\n~fffffffffff\nfifp.#..#..f\nfif..##.#..f\nfbf...#.##.f\nfif...####.f\nfbf....##..f\nfif..###...f\nfbfgggg#gggf\nfif....#...f\nffffffffffff\n\n\n(simple/ok)\n~ffffffffff\nfifp.#..##f\nfbf..#####f\nfif..#.#.#f\nfbf...##..f\nfif..##...f\nfbfggg###gf\nfif..##...f\nfffffffffff\n\n\n(simple/ok)\n~fffffffffff\nfifp......#f\nfif......##f\nfbf......##f\nfif.....###f\nfbf.......#f\nfifgggggg##f\nfbf.....##.f\nfif...###..f\nffffffffffff\n\n\n\n\n(simple/ok / ok maybe nicer than ok! :] )\n~fffffffffff\nfifp....#..f\nfif...#.##.f\nfbf...###..f\nfif..###...f\nfbf...#....f\nfif...##...f\nfbfgggg##ggf\nfif....#...f\nffffffffffff\n\n\n\n\n\n\n\n(beautiful-looking? not fun to solve)\n~fffffffffff\nfbf########f\nfif##p...##f\nfbf##...#.#f\nfif#.#..###f\nfbf#.#...##f\nfif###g#g##f\nfbf#.######f\nfif....#.#.f\nffffffffffff\n\n\n\n\n\n\n\n(ok to solve!)\n~fffffffffff\nfbfp...####f\nfif....#..#f\nfbf....####f\nfif#.###..#f\nfbf#.#.####f\nfif####gg##f\nfbf.#.####.f\nfif....#.#.f\nffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n~fffffffffffff\nfifp...######f\nfif.......#.#f\nfif.........#f\nfif.......###f\nfif.......#.#f\nfif.....#####f\nfifgggggg##g#f\nfif......#.##f\nfif......#.##f\nfbf......#.##f\nfif......####f\nfbf......##.#f\nfif...#..#...f\nfbf..#####...f\nfif.....###..f\nffffffffffffff\n\n\n(dunno? schwierig)\n~fffffffffffff\nfbf#####p####f\nfif...####..#f\nfbf....#.####f\nfif.....#.#.#f\nfbf.....#.###f\nfif.....#.#.#f\nfbf.....#.#.#f\nfifgggg######f\nfbf......###.f\nfif....###...f\nffffffffffffff\n\n\n\n\n\n~fffffffffffff\nfifp..#.###..f\nfbf..##.#.#..f\nfbf...####...f\nfbf....##.#..f\nfifg##g#g##ggf\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif...#......f\nfif...###....f\nfbf....###...f\nfif.....#....f\nfbf....###...f\nfif...##.....f\nfbfgg##ggggggf\nfif.#####....f\nffffffffffffff\n\n\n\n~ffffffff\nfif....#f\nfif....#f\nfif....#f\nfif..###f\nfif....#f\nfif.p.##f\nfif....#f\nfif#.###f\nfif#..#.f\nfbf####.f\nfif#.#..f\nfbf#g#ggf\nfif###..f\nfbf..##.f\nfif###..f\nfbf#.##.f\nfif####.f\nfffffffff\n\n\n(Tricky)\n~fffffffffff\nfbfp.......f\nfif........f\nfbf...#....f\nfif...##...f\nfbf..#.#...f\nfif..#.###.f\nfbf.###.#..f\nfif...####.f\nffffffffffff\n\n\n~fffffffffff\nfbfp..##...f\nfif....##..f\nfbf...##...f\nfif...###..f\nfbf...#....f\nfif...###..f\nfbfggggg#ggf\nfif...####.f\nffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif...#......f\nfif...#......f\nfif...##.....f\nfbf....#.....f\nfif....##....f\nfbf.....#....f\nfif....###...f\nfbfggg#gg##ggf\nfif...####...f\nffffffffffffff\n\n\n\n\n~fffffffffff\nfifp...###.f\nfif...##.#.f\nfbf..#.###.f\nfif..###.#.f\nfbfggg####gf\nfif.....###f\nfbf...###..f\nfif...####.f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif.....#..f\nfif...###..f\nfif.....###f\nfbf....##..f\nfif...##...f\nfbf.#.##..#f\nfif.##.##.#f\nfbf#g#g#g##f\nfif########f\nfbf#......#f\nfif########f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif..#.....f\nfbf..##....f\nfif..###...f\nfbf..#.#...f\nfif..###...f\nfbfggg###ggf\nfif....#...f\nffffffffffff\n\n\n~fffffffffff\nfifp...##..f\nfif....###.f\nfif...##.#.f\nfif...#.#..f\nfbf...#.#..f\nfif...#.###f\nfbf..######f\nfifggg##gggf\nfbf....####f\nfif....#..#f\nfbf####.###f\nfif.#######f\nffffffffffff\n\n\n\n\n~ffffffffff\nfifp......f\nfif.......f\nfif.......f\nfif.......f\nfbf..###..f\nfif..#.#..f\nfbf.#.##..f\nfif.#####.f\nfbf...#...f\nfif.###...f\nfbfgg#g##gf\nfif..###..f\nfffffffffff\n\n\n\n~ffffffff\nfifp###.f\nfbf.#.##f\nfif.####f\nfbf.##..f\nfif..##.f\nfffffffff\n\n\n~fffffffffff\nfifp###....f\nfbf.#.##...f\nfbf.#.##...f\nfbf.#.##...f\nfifgggg##ggf\nffffffffffff\n\n\n~fffffffffff\nfifp...###.f\nfbf..#.#.#.f\nfbf..##.##.f\nfbf.#####..f\nfifgggg####f\nffffffffffff\n\n\n\n\n~fffffffffffff\nfifp...##.#..f\nfif....#.##..f\nfbf....#.##..f\nfif....#.##..f\nfbf....#.#.##f\nfif...######.f\nfbfggg#g##gggf\nfif..####....f\nfbf.....##...f\nfif...###....f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp....#....f\nfif.....#.#..f\nfif.....###..f\nfif...###.#..f\nfbfggg#g#####f\nfif....##.###f\nfbf...#.###..f\nfif...####...f\nfbf......##..f\nfif...#####..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp..#.#..f\nfbf...###..f\nfif....##..f\nfbfggg##gggf\nfif....#...f\nffffffffffff\n\n\n\n~fffffffffffff\nfifp...##....f\nfif.....#....f\nfif.....#....f\nfifggggg#ggggf\nfif#.####....f\nfif#.#..#....f\nfbf##.###....f\nfif.###.#####f\nfbf....#.#...f\nfif..######..f\nffffffffffffff\n\n\n~fffffffffff\nfifp...#.#.f\nfbf....###.f\nfif....##..f\nfbfggg#g###f\nfif...###..f\nffffffffffff\n\n\n~fffffffff\nfbfp##.#.f\nfif..#.#.f\nfbf..####f\nfif.###..f\nfbf...##.f\nfifggg#ggf\nffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif.......#..f\nfbf.......#..f\nfif.......#..f\nfbf....#####.f\nfif...####...f\nfbf.....#....f\nfifggggg##gggf\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif...#......f\nfbf..##......f\nfif...#.#....f\nfbf...###....f\nfif....#.....f\nfbf....##....f\nfif....####..f\nfbf.......##.f\nfifggg######gf\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif.#........f\nfbf.##.......f\nfif..#.......f\nfbf.###......f\nfif.#####....f\nfbf...#.##...f\nfif....#.##..f\nfbf....##.##.f\nfifggggg#####f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp....#....f\nfif.....#....f\nfbf.....#....f\nfif.....##...f\nfbf...##.#...f\nfif....#.#...f\nfbf....#.###.f\nfifgggg#g#gggf\nfbf...##.##..f\nfif....#####.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp..#......f\nfif...#......f\nfbf..###..#..f\nfif....####..f\nfbf.....#....f\nfif.....###..f\nfbf.....#.#..f\nfifggggg##gggf\nfbf...###.#.#f\nfif....######f\nffffffffffffff\n\n\n~fffffffffffff\nfifp..#......f\nfif...##.....f\nfbf...#..#...f\nfif..###.#...f\nfbf....#.#...f\nfif..######..f\nfbf.....#....f\nfif.....###..f\nfbfggggg#ggggf\nfif...#####..f\nffffffffffffff\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf#.........f\nfif#.........f\nfbf##........f\nfif.######...f\nfbf..#.#.#...f\nfif..##.##...f\nfbf..##.#.#..f\nfif...######.f\nffffffffffffff\n\n\n(hard)\n~fffffffffffff\nfifp...##....f\nfif....#.....f\nfbf....#.....f\nfif....##....f\nfbf....##....f\nfif..##.##...f\nfbf...#.#....f\nfifggg#g##gggf\nfbf..###.##..f\nfif....####..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp..#.#..f\nfif...###..f\nfif...##...f\nfbfgggg##ggf\nfif....##..f\nfbf...##...f\nfif....##..f\nffffffffffff\n\n\n(trivial)\n~fffffffffff\nfifp.....#.f\nfif.....##.f\nfif.....#..f\nfbf...###..f\nfif.####...f\nfbfggg##gggf\nfif....##..f\nffffffffffff\n\n\n(too easy)\n~fffffffffff\nfifp.......f\nfif.....#..f\nfif.....#..f\nfif.....#..f\nfbf.....#..f\nfif.....#..f\nfbf...####.f\nfifggg##g##f\nfbf.##.#...f\nfif..###...f\nffffffffffff\n\n\n\n(nice shape)\n~fffffffffff\nfifp.......f\nfif........f\nfif...#....f\nfif...##...f\nfbf....##..f\nfif...#.#..f\nfbf..#####.f\nfifgggg##ggf\nfbf....##..f\nfif...###..f\nffffffffffff\n\n(nice?/meh)\n~fffffffffff\nfifp.......f\nfif...#....f\nfif...#....f\nfif...##...f\nfbf....##..f\nfif....##..f\nfbf.....#..f\nfifgggg##ggf\nfbf..#.###.f\nfif.#####..f\nffffffffffff\n\n\n\n~fffffffffffff\nfifp#..#.#...f\nfif.####.#...f\nfbf..#.####..f\nfbf..#.##....f\nfbf.###.###..f\nfbf...#.#....f\nfbf...#####..f\nfifgggg######f\nffffffffffffff\n\n\n~fffffffffffff\nfifp....##..#f\nfif....#.#..#f\nfbf...##.####f\nfbf....####.#f\nfbf..##.#..##f\nfbf..##.#####f\nfbf...#####..f\nfifggg#g#ggggf\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.......#.f\nfif.....##.#.f\nfbf.....#.##.f\nfbf....#####.f\nfbf#......#..f\nfbf##.#######f\nfbf.##...##.#f\nfif.######..#f\nffffffffffffff\n\n\n~fffffffffffff\nfifp...###...f\nfif.##.#.##..f\nfbf..#.#####.f\nfbf..#..#....f\nfbf.#####....f\nfbf..#..##...f\nfbf..###.####f\nfifggg####g##f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..........f\nfif......#...f\nfbf...####...f\nfif...#.#....f\nfbf...####...f\nfif....#.##.#f\nfbf....##.###f\nfif...######.f\nfbf..##...##.f\nfif..######..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp.##....f\nfif...##...f\nfbf....##..f\nfif...#.##.f\nfbf...####.f\nfif...#..#.f\nfbf..####..f\nfifgggg##ggf\nfbf....#.#.f\nfif....####f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif....##..f\nfbf..##.#..f\nfif...#.##.f\nfbf...####.f\nfif...#..#.f\nfbf...###.#f\nfif....####f\nfbfgggg#g#gf\nfif..###...f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif....#...f\nfbf....##..f\nfif..###...f\nfbf..#.#..#f\nfif..##...#f\nfbf.####.##f\nfif...#.###f\nfbfggg#g#ggf\nfif...###..f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif....#...f\nfbf..###...f\nfif...#....f\nfbf##.##.#.f\nfif.##.####f\nfbf..##.##.f\nfif...###..f\nfbfggggg#ggf\nfif...###..f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif..#.....f\nfbf..##.##.f\nfif...###..f\nfbf..#.####f\nfif.##.#...f\nfbf..####..f\nfif...#.#..f\nfbfggg####gf\nfif...##...f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp.#.....f\nfif..#.....f\nfbf..#.#...f\nfif..###...f\nfbf...#.##.f\nfif...####.f\nfbf...##.#.f\nfif....##..f\nfbf...#.###f\nfif...#####f\nffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif......#...f\nfbf......##..f\nfif.....#.#..f\nfbf.....#.#..f\nfif...######.f\nfbf.....##...f\nfif#....##...f\nfbf###.###...f\nfif..#.##....f\nfbfgg##g###ggf\nfif...##.##..f\nfbf....#.###.f\nfif....###.#.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfbf.....#....f\nfif....##....f\nfbf....##....f\nfif.....##...f\nfbf....#.##..f\nfif....####..f\nfbf....#..##.f\nfif....#####.f\nfbf...##...#.f\nfifggg#g#####f\nfbf..#.#...#.f\nfif.########.f\nffffffffffffff\n\n\n\n\n\n\n\n~fffffffffff\nfifp.......f\nfif...#....f\nfbf...#.#..f\nfif...###..f\nfbf....##..f\nfif..###...f\nfbfgggg##ggf\nfif...##...f\nffffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.....#.f\nfbf....###f\nfif..#.##.f\nfbf#####..f\nfif.###...f\nfbf...#...f\nfif.####..f\nfffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.......f\nfbf..#.#..f\nfif.##.#..f\nfbf..###..f\nfif#..####f\nfbf####...f\nfif.#.#...f\nfffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.......f\nfbf..#..#.f\nfif.#####.f\nfbf...#.#.f\nfif.####..f\nfbf.##.##.f\nfif...##..f\nfffffffffff\n\n\n~fffffffffff\nfifp..###..f\nfbf.#.#.#..f\nfbf.#.##...f\nfbf.##.##..f\nfbf..#####.f\nffffffffffff\n\n\n~fffffffffff\nfifp.#.#.#.f\nfbf..###.#.f\nfif...#####f\nfbf..#..##.f\nfif..####..f\nffffffffffff\n\n\n~fffffffffff\nfifp..###.#f\nfbf...#.#.#f\nfif....####f\nfbf...##.##f\nfif...####.f\nffffffffffff\n\n\n\n~fffffffffff\nfifp..###..f\nfbf.#.#.#..f\nfif.#..##..f\nfbf#####...f\nfif..#####.f\nffffffffffff\n\n\n\n\n(figure giving tribute - meh?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif.....#.#..f\nfbf....####..f\nfif....#.#...f\nfbf....#.###.f\nfif.######...f\nfbf.....###..f\nfifgg####g#ggf\nffffffffffffff\n\n\n\n\n\n\n\n\n~fffffffffffff\nfbfp.#.......f\nfif..###.....f\nfbf..##......f\nfif...##.....f\nfbf..#.##....f\nfif.#####....f\nfbf...#.#..#.f\nfif....######f\nfbf.....#..#.f\nfifggggg##gggf\nffffffffffffff\n\n\n~fffffffffffffffffffffffffffffffffffffffffff\nfifp.####...##########.###################.f\nfbf....###.##....###.##.#.......####...#...f\nfbf...##.#.#######..###.#########..........f\nfbf......###.#..#...#.#####..#.............f\nfifggggggg##gggggggggg##gg#gg#gggggggggggggf\nffffffffffffffffffffffffffffffffffffffffffff\n\n\n(interesting!)\n~fffffffffff\nfbf####p###f\nfif#......#f\nfbf###....#f\nfif#.#...##f\nfbf#.##..##f\nfif###ggg##f\nfbf##..###.f\nfif.####.#.f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp#######f\nfif.#.###.#f\nfbf...#..##f\nfif######.#f\nfbf.###.###f\nfifggg###g#f\nfbf..###..#f\nfif..#.#...f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp#######f\nfif.#.###.#f\nfbf...#..##f\nfif######.#f\nfbf.###.###f\nfifggg###g#f\nfbf..###..#f\nfif..#.#...f\nffffffffffff\n\n\n\n~fffffffffffff\nfif##p.......f\nfif##........f\nfif#.........f\nfif##........f\nfif##........f\nfif#.........f\nfbf###gggggggf\nfif#.##......f\nfbf##.##.....f\nfif.###..#...f\nfbf..##..#...f\nfif...######.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.......##f\nfif.........#f\nfif.......###f\nfif.......#.#f\nfif......##.#f\nfif......#.##f\nfbf.....#####f\nfifggg####g#gf\nfbf..##.##...f\nfif.....###..f\nfbf.....#....f\nfif.....#....f\nffffffffffffff\n\n\n~fffffffffffff\nfif###p......f\nfif#.#.......f\nfif#.#.......f\nfif#.#.......f\nfif####.....#f\nfifggg#gggg##f\nfif...##....#f\nfif....###..#f\nfbf.....#.###f\nfif.....###..f\nffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n(bad)\n~fffffffffffff\nfifp..#......f\nfif...#......f\nfbf..##......f\nfif..##......f\nfbf..#####...f\nfif...#..##..f\nfbf....######f\nfif.....#..#.f\nfbfggggg##g#gf\nfif....###...f\nffffffffffffff\n\n\n(trivial)\n~fffffffffff\nfifp.#.....f\nfif..##....f\nfbf..###...f\nfif..#.....f\nfbf..####..f\nfif....#...f\nfbfggg##gggf\nfif....#...f\nffffffffffff\n\n(pretty trivial)\n~fffffffffff\nfifp.....#.f\nfif......#.f\nfbf...#.##.f\nfif...#.#..f\nfbf...###..f\nfif...##...f\nfbf....#...f\nfifgggg#gggf\nffffffffffff\n\n\n\n\n(fiine / easy )\n~fffffffffff\nfbfp.......f\nfif......#.f\nfbf......#.f\nfif.....##.f\nfbf....###.f\nfif....#...f\nfbf..###...f\nfif...##...f\nfbf...#.##.f\nfif...###..f\nffffffffffff\n\n\n(meh)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfbf........f\nfif........f\nfbf......#.f\nfif......##f\nfbf.....###f\nfif...###.#f\nfbf.....#.#f\nfif..######f\nfbf...#.#.#f\nfif....###.f\nfbf...##.#.f\nfifgg######f\nffffffffffff\n\n\n\n\n(pretty easy)\n~fffffffffff\nfbfp.......f\nfif........f\nfbf.....##.f\nfif......##f\nfbf.....##.f\nfif....#.##f\nfbf....####f\nfif...###..f\nfbf....##..f\nfif...##...f\nffffffffffff\n\n\n\n\n(easy/arbirtaray/pretty)\n~fffffffffffff\nfif.....p....f\nfif..#.#.....f\nfif..###.....f\nfif...#..#.#.f\nfif...#..###.f\nfbf...#...#..f\nfifg###...#..f\nfbf.#.....#..f\nfif.#.....#..f\nffffffffffffff\n\n\n\n(too trivial)\n~fffffffffffffffffffffffffffffffff\nfifp.............................f\nfif......#.......................f\nfif.....##.......................f\nfif.....##.......................f\nfif...####.......................f\nfif....#.#.......................f\nfif.....###......................f\nfif......#.......................f\nfif......#...#...................f\nfif.....######...................f\nfifggggggg####gggggggggggggggggggf\nfif..........#...................f\nfif..........#...................f\nfif..........##..................f\nfif..........##..................f\nfif.........###..................f\nfbf...........##.................f\nfif...........##.................f\nfbf............###.#.............f\nfif............######............f\nffffffffffffffffffffffffffffffffff\n\n\n(meh)\n~fffffffffffffffffffffffffffffffff\nfifp.............................f\nfif..............................f\nfif.........#....................f\nfif.........#....................f\nfif........###...................f\nfif..........#...................f\nfif.......#####..................f\nfif......##..###.................f\nfif.....##....##.................f\nfif.....#.....#..................f\nfifgggggggggg###gggggggggggggggggf\nfif...........##.................f\nfif...........#.#................f\nfif...........###................f\nfif............###...............f\nfif.............###..............f\nfbf...............###............f\nfif...............#.##...........f\nfbf...............##.............f\nfif...............#..............f\nffffffffffffffffffffffffffffffffff\n\n\n\n\n\n(meh)\n~fffffffffffffffffffffffffffffffffffffffffff\nfifp.##################.###################f\nfbf...#.#.##.##.##.#..#.#.#.##.#.....#.#.##f\nfif...#.#....##...#########.....######.#.#.f\nfbfgggggggggggggg##g#g##gggggggggg#ggggggggf\nfif...............#....##........###.......f\nffffffffffffffffffffffffffffffffffffffffffff\n\n\n(meh)\n~fffffffffffff\nfifp.........f\nfbf..........f\nfif......#...f\nfbf......#...f\nfif.....##...f\nfbf.....#....f\nfif....##....f\nffffffffffffff\n\n\n\n\n\n(looks good, but too easy?)\n~fffffffffff\nfbf########f\nfif#p.##..#f\nfbf###..###f\nfif#...####f\nfbf#####..#f\nfif#ggg####f\nfbf######.#f\nfif...##...f\nffffffffffff\n\n(trivial)\n~ffffffff\nfifp..##f\nfbf.#..#f\nfif.####f\nfbf.###.f\nfif..#..f\nfffffffff\n\n(trivial)\n~ffffffff\nfif#p...f\nfbf##.#.f\nfif####.f\nfbf..##.f\nfif.##..f\nfffffffff\n\n\n(Trivial)\n~ffffffff\nfifp..#.f\nfbf.#.##f\nfif.####f\nfbf.##.#f\nfif..#..f\nfffffffff\n\n\n(zu einfach)\n~ffffffffff\nfif##p.#..f\nfbf###.#..f\nfif#.###..f\nfbf#.##...f\nfif####...f\nfbfggg###gf\nfif...##..f\nfffffffffff\n\n\n(zu einfach?)\n~ffffffffff\nfifp...###f\nfbf....#.#f\nfif....###f\nfbf....#.#f\nfifgggg###f\nfbf####.##f\nfif.#####.f\nfffffffffff\n\n\n\n(meh)\n~fffffffffff\nfifp....###f\nfif....####f\nfbf....#..#f\nfif.#..####f\nfbfg#gg#gg#f\nfif.#######f\nfbf.....###f\nfif....##..f\nffffffffffff\n\n\n\n(meh)\n~fffffffffffff\nfif#####p....f\nfif#.##......f\nfif#.##......f\nfif#.#.##...#f\nfif#g#g###g##f\nfif####..#.##f\nfif##.####.##f\nfif....##.#.#f\nfbf.....#####f\nfif.....##.##f\nffffffffffffff\n\n\n(meh)\n~fffffffffffff\nfif###p......f\nfif#.#.......f\nfif#.##......f\nfif#.#.#...#.f\nfif#g#g##gg##f\nfif#.#.######f\nfif####..#.##f\nfif.#.#####.#f\nfbf....#.#.##f\nfif.....#####f\nffffffffffffff\n\n\n(trivial)\n~fffffffffffffffffffffff\nfif#########p.#########f\nfif#......#...#.......#f\nfif########....########f\nfif#.....#....##.#....#f\nfif#######gggg##g######f\nfif#.....###.#.####...#f\nfif#############.......f\nfif.#####...#..........f\nfbf.........##.........f\nfif..........##........f\nffffffffffffffffffffffff\n\n(trivial)\n~fffffffffffffffffffffff\nfif#######p#....#######f\nfif#.#.#.#.##....#.#.##f\nfif###.#.###..#..#.#.##f\nfif..#.#.#...###.######f\nfif########gg#g#g#gggg#f\nfif.##...##############f\nfif..#####..#...#.#.#..f\nfif..........####.#.#..f\nfbf..........##........f\nfif.........###........f\nffffffffffffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n(THE REST)\n\n(hard, couldn't solve myself)\n~fffffffffffffff\nfifp.........##f\nfif.........##.f\nfif.........###f\nfif........#..#f\nfbf........#.##f\nfif........#.#.f\nfbf.......#####f\nfif........#.##f\nfbf........#..#f\nfifggggggg##gggf\nfbf......##....f\nfif.....##.....f\nffffffffffffffff\n\n\n\n\n(solved first go, ok? ohne persönlichkeit) \n~fffffffffffff\nfbfp.......##f\nfif........#.f\nfbf........#.f\nfif.......##.f\nfbf......##..f\nfif.......#..f\nfbf......####f\nfif......##.#f\nfbf....###...f\nfif.....#....f\nffffffffffffff\n\n(too routine)\n~fffffffffffff\nfbfp.........f\nfif...#......f\nfbf...#......f\nfif..##......f\nfbf...##.....f\nfif.##.#.....f\nfbf..###.....f\nfif..#.##....f\nfbf....##....f\nfif.....##...f\nffffffffffffff\n\n(scheiße)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif..#.......f\nfbf..##......f\nfif...#......f\nfbf...##.....f\nfif....#.....f\nfbf....##....f\nfif.....#....f\nffffffffffffff\n\n\n(zu einfach/procedural?)\n~ffffffffffffff\nfifp..........f\nfif........#..f\nfif........#..f\nfbf.......###.f\nfif.......#.#.f\nfbf.......#...f\nfif.....###...f\nfbf......#....f\nfif......#....f\nfbf....###....f\nfif..####.....f\nfffffffffffffff\n\n\n\n\n\n(zu einfach)\n~fffffffffffff\nfbfp........#f\nfif.........#f\nfbf........##f\nfif.......###f\nfbf.......#..f\nfif.....###..f\nfbf.....#.#..f\nfif....###...f\nfbf....##....f\nfif.....#....f\nffffffffffffff\n\n(kein level)\n~fffffffffffff\nfif...p......f\nfif..........f\nfif..........f\nfif..#.......f\nfif..#.#####.f\nfif..#.....#.f\nfbf..#####.#.f\nfbf..#.....#.f\nfbf........#.f\nfbfgg.g#####gf\nfifgg.g#gggggf\nffffffffffffff\n\n(zu einfach)\n~ffffffffffffff\nfif...........f\nfif...........f\nfif...........f\nfif...p..#....f\nfif.#....#....f\nfif.#....#....f\nfif.#...##....f\nfif.#....##...f\nfbf.##....#...f\nfbfg.#..#.#...f\nfif..#..#.#...f\nfif..#..#.#...f\nfffffffffffffff\n\n\n\n\n\n(zu einfach?)\n~ffffffffff\nfif.......f\nfbf.#.#.#.f\nfif.#.#.#.f\nfbf.#####.f\nfif..#p#..f\nfbf.g###.gf\nfif.g.#g.gf\nfffffffffff\n\n(no level)\n~fffffffff\nfif...p..f\nfbf.g#.#.f\nfif.g###.f\nfbf....#.f\nfif...##.f\nfbfg..#..f\nfif...#..f\nffffffffff\n\n\n(no level)\nffffffff\nf......f\nf....#.f\nfg...#.f\nf..P.#.f\nf..#.#.f\nf..#.#.f\nf.##.#.f\nffffffff\n\n\n(zu einfach)\n~ffffffffff\nfifp....#.f\nfbf....###f\nfif.....##f\nfbf...###.f\nfif...##..f\nfbf...#...f\nfifg####ggf\nfffffffffff\n\n(kein Level)\n~fffffffffffff\nfif...p......f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbfg.........f\nfif..........f\nffffffffffffff\n\n\n\n(kein Level)\n~fffffffffffff\nfif#..p.#.#..f\nfbf########..f\nfbf#......#.#f\nfbf#.#####..#f\nfbf#.....#..#f\nfbf#..##.#..#f\nfbf#...#.#..#f\nfbf#####.####f\nfbf...#...#..f\nfbfg..#####..f\nfif....#.....f\nffffffffffffff\n\n\n\n\n\n(kein Level)\n~fffffffffffff\nfif...p......f\nfbf######....f\nfbf#....#....f\nfbf##........f\nfbf.#..###...f\nfbf.##.#.#...f\nfbf..#.#.#...f\nfbf..#.###...f\nfbf.##..#....f\nfbfg#...#....f\nfif.#...#....f\nffffffffffffff\n\n\n\n\n(kein Level)\n~fffffffffffff\nfif..........f\nfif.###......f\nfif.#.#...###f\nfif.###...#.#f\nfif.#...###..f\nfifg#.###....f\nfif.###.#....f\nfif.#..###...f\nfbf..p.#.#...f\nfbf...###....f\nfif...#.#....f\nffffffffffffff\n\n\n\n(zu einfach)\n~ffffffff\nfif##p..f\nfbf.####f\nfbf###.#f\nfbf...##f\nfif..##.f\nfffffffff\n\n(kein level)\n~fffffffffffff\nfbfp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..........f\nfif.....#....f\nfbf.....#....f\nfif....###...f\nfbf......#...f\nfif....###...f\nffffffffffffff\n\n(meh)\n~ffffffff\nfif##p..f\nfbf#....f\nfbf####.f\nfbf.##..f\nfif..#..f\nfffffffff\n\n(hmmm dunno -vllt zu einfach?)\n\n~fffffffffff\nfif#####p..f\nfbf##.####.f\nfbf##..##..f\nfbf.#..##..f\nfifggggg##gf\nffffffffffff\n\n(dunno?)\n~ffffffffffffffffff\nfifp............#.f\nfif............##.f\nfif.............##f\nfif..............#f\nfif..............#f\nfif............###f\nfif.........####.#f\nfbf...........##.#f\nfif..........##..#f\nfbf..........##...f\nfif.........###...f\nfbf........###....f\nfifgggggggg##gggggf\nfbf......###......f\nfif....#####......f\nfffffffffffffffffff\n\n(zu einfach)\n~ffffffff\nfif#p...f\nfbf#..#.f\nfbf####.f\nfbf..##.f\nfif..#..f\nfffffffff\n\n(boring!)\n~ffffffff\nfifp#.#.f\nfbf.###.f\nfif..##.f\nfbfg##ggf\nfif..#..f\nfffffffff\n\n(trivial)\n~fffffffffff\nfifp.....#.f\nfif......#.f\nfif......#.f\nfif.....##.f\nfbf.....#..f\nfif.....#..f\nfbfgggg##ggf\nfif....#...f\nffffffffffff\n\n(trivial)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif.......#..f\nfbf.......#..f\nfif......##..f\nfbf......##..f\nfif......#...f\nfbf.....##...f\nfifggggg#ggggf\nffffffffffffff\n\n\n(meh)\n~fffffffffff\nfifp.......f\nfif.#......f\nfbf.##.....f\nfif..#.....f\nfbf..##....f\nfif...#....f\nfbf...##...f\nfif....#...f\nffffffffffff\n\n\n(nicht interessant)\n~fffffffffffff\nfbfp.........f\nfif..........f\nfbf##........f\nfif#.........f\nfbf##........f\nfif#.........f\nfbf####......f\nfif.#.#......f\nfbf.###......f\nfif..###.#...f\nffffffffffffff\n\n(meh)\n~fffffffffffff\nfif#p........f\nfif##........f\nfif#.........f\nfif##........f\nfbf###.......f\nfif#.........f\nfbf##ggggggggf\nfif.##.......f\nfbf..#..#....f\nfif..#.###...f\nffffffffffffff\n\n\n\n\n\n\n\n\n(meh)\n~fffffffffffffffffffffffffffffffff\nfifp..............####...........f\nfbf..............#.#.#...........f\nfbf..............###.............f\nfbf.............###..#...........f\nfifggggggggggggggg#####ggggggggggf\nffffffffffffffffffffffffffffffffff\n\n\n\n(huh not so bad? but hard for some maybe? wait maybe i just solved by chance....)\n~fffffffffffff\nfifp......###f\nfif.#.#...#.#f\nfbf.#.##...##f\nfbf.####...##f\nfbf##..###.##f\nfbf######.#.#f\nfbf.....#####f\nfbf...###.##.f\nfbf...#.#....f\nfif....##....f\nffffffffffffff\n\n\n\nmessage level 5 of 10 : Gallows\n(hard - actually ok? medium difficulty?)\n~ffffffffffff\nfif.........f\nfifp.#......f\nfif..#......f\nfif..###....f\nfif..#......f\nfbf.####....f\nfif...###...f\nfbf...#.#...f\nfif.....#...f\nfbfggggg##ggf\nfif......##.f\nfffffffffffff\n\n\n\n\nmessage level 2 of 10 : ANTENNA 1\n(ok anfangerlevel?)\n~fffffffff\nfbfp#..#.f\nfif##..#.f\nfbf.#.##.f\nfif####.#f\nfbf#..###f\nfifggg#ggf\nffffffffff\n\n\n\nmessage level 3 of 10 : UFO\n(ok! / easy / Space invaders)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..#..#....f\nfif########..f\nfbf#.###..#..f\nfif.....####.f\nfbf..###.##..f\nfif....###...f\nffffffffffffff\n\n\n\n\n(\n(ok anfangerlevel)\n~fffffffff\nfbfp#..##f\nfif.##.##f\nfbf..###.f\nfif...###f\nfbf####..f\nfifggg#ggf\nffffffffff\n)\n\n\n\n\n(\n\n~fffffffffffff\nfifp.......#.f\nfif........##f\nfif........##f\nfif.........#f\nfbf.........#f\nfif.......###f\nfbf.......##.f\nfifggggggg##gf\nfbf.......#..f\nfif...#####..f\nffffffffffffff\n)\n\n\n(ok simple? NAH TOO SIMPLE)\n~ffffffffffffffffffffffffffff\nfifp........................f\nfif###......................f\nfif#.#......................f\nfif###......................f\nfif##.......................f\nfif##.......................f\nfif##.......................f\nfif#........................f\nfif##.......................f\nfif##.......................f\nfif##.......................f\nfif##..#.#..................f\nfif##.####..................f\nfif#####.#..................f\nfifgg#g#g#ggggggggggggggggggf\nfif..#.###..................f\nfif......##.................f\nfif......##.................f\nfif......#.#................f\nfif......####...............f\nfif.......#.#...............f\nfbf.......#.#...............f\nfif.....######..............f\nfbf.....#..#####.##.........f\nfif.........#.####..........f\nfffffffffffffffffffffffffffff\n\n\n\n\n(alien slug attack!)\nmessage level 6 of 10 : Alien Slug Attack\n~fffffffffffffffff\nfifp...####......f\nfbf....#####.....f\nfbf...##..##.....f\nfbf....#..##.....f\nfifgggggggg####ggf\nffffffffffffffffff\n\n\n\n\n\n(decent - middle-hard? -- too mich like final level? (difficulty/appearance-wise?)\n~fffffffffffffff\nfif#p..........f\nfif#...........f\nfif##..........f\nfif#...........f\nfbf###.........f\nfif#.#.........f\nfbf.##.#.......f\nfif..###.......f\nfbf...###......f\nfif....#...#...f\nfbfgggg######ggf\nfif......##....f\nffffffffffffffff\n)\n\n\n\n(fun to find the right points? MEH)\n~ffffffffffffffffffff\nfifp................f\nfif.................f\nfif...............##f\nfif................#f\nfif...............##f\nfif...............##f\nfif.............####f\nfif................#f\nfif..............###f\nfif...............##f\nfif................#f\nfif.........#.#...##f\nfif.........#.####.#f\nfif........####.####f\nfif............##...f\nfifgggggggg#######ggf\nfif........#..#.....f\nfif........######...f\nfif.........##......f\nfbf........##.......f\nfif.....####........f\nfbf......#..........f\nfif......#..........f\nfbf....###..........f\nfif.#######.........f\nfffffffffffffffffffff\n\n\n\n\n\n(wie ein gebäude aus - ziemlich einfach)\n~fffffffffffff\nfifp........#f\nfif........##f\nfif........##f\nfif........##f\nfbf.........#f\nfif.........#f\nfbfgggggggg##f\nfif......###.f\nfbf.......##.f\nfif....####..f\nffffffffffffff\n\n\n\n\n\n\n(nice/ok!)\n~ffffffffff\nfifp.....#f\nfbf.....##f\nfif....###f\nfbf....#.#f\nfif....###f\nfbfggg###gf\nfif..##...f\nfffffffffff\n\n\nmessage level 4 of 10 : Duck Tree\n(ducktree!)\n~fffffffffff\nfifp.##..##f\nfif.###.###f\nfbf...##.#.f\nfif..###.#.f\nfbf....####f\nfifgggg##ggf\nfbf....#...f\nfif....#...f\nffffffffffff\n\n\n\n)\n",[2,2,2,2,2,4,2,2,4,2,2,2,2,0,4,2,2,4,4,0,"restart",2,2,2,2,2,2,2,2,2,2,2,2,4,0,4,0,0,0,0,0,0,0,0,0,4],"background exploding fenster tl:0,background fenster fenster_right:1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,background fenster:2,background fenster fenster_down:3,background inventar:4,4,4,4,4,4,4,4,4,background bang_schatten inventar:5,\n4,5,4,5,4,background fenster fenster_up:6,2,background fenster fenster_left fenster_right:7,7,7,7,7,7,7,\n7,7,7,7,7,7,7,7,2,3,background:8,8,background htarget:9,background bond_d wall:10,\nbackground bond_d bond_u landbackground wall:11,11,11,11,11,11,11,background bond_u landbackground wall:12,background landbackground wall:13,background bond_r landbackground wall:14,background landbackground:15,6,3,8,\n8,9,8,15,15,15,15,15,15,15,15,15,background bond_d bond_l landbackground wall:16,background bond_r bond_u landbackground wall:17,\n6,3,8,8,9,8,background bond_d landbackground wall:18,background bond_d bond_r bond_u landbackground wall:19,19,11,11,19,11,19,\n12,13,background bond_l bond_r landbackground wall:20,6,3,8,8,9,8,15,background bond_d bond_l bond_r landbackground wall:21,background bond_l bond_u landbackground wall:22,15,15,\nbackground bond_l landbackground wall:23,15,23,15,15,20,6,3,8,8,9,8,18,background bond_l bond_r bond_u landbackground wall:24,\n15,15,15,15,15,15,14,background bond_d bond_r landbackground wall:25,24,6,3,8,8,background htarget player_h:26,\n8,15,23,15,15,15,15,15,15,20,21,24,6,3,\n8,8,9,8,15,15,15,15,15,15,15,15,23,21,\n24,6,3,8,8,9,8,15,15,15,15,15,15,15,\n15,15,16,22,6,3,8,8,9,8,15,15,15,15,\n15,15,15,15,15,15,13,6,3,8,8,9,8,15,\n15,15,15,15,15,15,15,15,15,15,6,2,background fenster fenster_left:27,27,\n27,27,27,27,27,27,27,27,27,27,27,27,27,2,\n",26,"1627892636599.9646"] + "A CLEAR VIEW OF THE SKY", + ["title A CLEAR VIEW OF THE SKY\nauthor increpare\nhomepage www.increpare.com\n\nnorepeat_action\n\nrun_rules_on_level_start\n\ncolor_palette 2\n\nbackground_color #005784\ntext_color lightblue\n\n(uses https://github.com/increpare/Zersto-rungto generate levels)\n========\nOBJECTS\n========\n\nbackground\nblue\n\nlandbackground\ngreen\n\n\nwall \ndarkblue gray lightgray\n00000\n01110\n01110\n01110\n00000\n\nplayer_h\ntransparent\n.....\n..0..\n.000.\n..0..\n.....\n\n\nplayer_v\nyellow\n.....\n..0..\n.000.\n..0..\n.....\n\n\nfenster\n#005784\n\n\nfenster_up\n#1d3d60 lightblue\n00000\n.....\n.....\n.....\n.....\n\nfenster_down\ndarkblue #17669f\n.....\n.....\n.....\n.....\n11111\n\nfenster_left\n#1d3d60 #17669f\n1....\n1....\n1....\n1....\n1....\n\nfenster_right\n#1d3d60\n....0\n....0\n....0\n....0\n....0\n\nhtarget\norange\n.....\n.....\n00000\n.....\n.....\n\n\nvtarget\norange\n..0..\n..0..\n..0..\n..0..\n..0..\n\ninventar\ndarkblue\n\nbang\n yellow red\n...0.\n..00.\n.010.\n.00..\n.0...\n\nbang_schatten\ndarkgray\n...0.\n..00.\n.0.0.\n.00..\n.0...\n\nbond_u\ndarkblue gray lightgray\n.111.\n.....\n.....\n.....\n.....\n\n\n\nbond_d\ndarkblue gray lightgray\n.....\n.....\n.....\n.....\n.111.\n\n\n\nbond_l\ndarkblue gray lightgray\n.....\n1....\n1....\n1....\n.....\n\n\n\nbond_r\ndarkblue gray lightgray\n.....\n....1\n....1\n....1\n.....\n\n\n\n\ntl\ntransparent\n\nexploding\ntransparent\n\nexplosion\nred yellow\n.1.1.\n10.01\n..0..\n10.01\n.1.1.\n\nnofall\nred\n.0...\n.....\n.....\n.....\n.....\n\nfall\nlightblue\n.0...\n.....\n.....\n.....\n.....\n\n\nsky_darker 7\ndarkred darkblue\n01010\n10101\n01110\n10101\n01011\n\nsky_darker2 8\ndarkbrown black\n01010\n10101\n01110\n10101\n01011\n\n\nsky_darker4 0\nblack darkblue\n11010\n10111\n01010\n11101\n01011\n\nsky_darker3 9\nwhite black\n11111\n11101\n11111\n11111\n11111\n\nsky_darker7 w\nblack\n\nsky_pink 2\nred darkblue\n01010\n10101\n01110\n10101\n01011\n\nsky_orange 1\nred lightred\n01000\n10101\n00010\n01010\n00000\n\n\nsky_red 3\nred orange\n01010\n10101\n01010\n10101\n01010\n\nsky_yellow 4\nyellow red orange\n12121\n21212\n10001\n00000\n00000\n\nsky_purple 5 \nred blue\n01010\n11101\n01010\n10111\n01010\n\n\nsky_land 6\ndarkgreen green\n01010\n10101\n01010\n10101\n01010\n\n=======\nLEGEND\n=======\n\nplayer = player_h or player_v\ntarget = htarget or vtarget\n\n. = Background\n# = wall\nP = Player_h\nf = fenster\n\ng = landbackground\n\nobstacle = wall\n~ = tl and fenster\ni = inventar\nb = bang and inventar\nbond = bond_u or bond_d or bond_l or bond_r\n\nfallblocker = wall or fenster\nanimation = 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 or 0\n=======\nSOUNDS\n=======\n\nsfx0 55915302 (bang)\nsfx1 90167907 (other agains)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nlandbackground, inventar\nwall\nbond_u\nbond_d\nbond_l\nbond_r\nexplosion\ntarget\nPlayer, fenster, bang,bang_schatten\nfenster_up\nfenster_down\nfenster_left\nfenster_right\ntl\nexploding\nnofall\nfall\n1,2,3,4, 5, 6,7,8,9,0,w\n\n======\nRULES\n======\n\n\nup [fenster | no fenster ]-> [ fenster fenster_up | ]\ndown [fenster | no fenster ]-> [ fenster fenster_down | ]\nleft [fenster | no fenster ]-> [ fenster fenster_left | ]\nright [fenster | no fenster ]-> [ fenster fenster_right | ]\n\n[ tl no exploding ] [bond]->[ tl ] [ ]\ndown [ tl no exploding ] [wall | wall]->[tl][ wall bond_d | wall bond_u ]\nright [ tl no exploding ] [wall | wall]->[tl][ wall bond_r | wall bond_l ]\n\n[tl]->[tl exploding]\n\ndown [ wall no bond_d | fallblocker ] -> [ wall nofall | fallblocker ]\n(floodfill)\nup [nofall bond_u | ] -> [ nofall bond_u | nofall ]\n+ down [nofall bond_d | ] -> [ nofall bond_d | nofall ]\n+ left [nofall bond_l | ] -> [ nofall bond_l | nofall ]\n+ right [nofall bond_r | ] -> [ nofall bond_r | nofall ]\n\n\ndown [ wall no nofall | no fallblocker ] -> [ wall fall | ]\n\nup [fall bond_u | ] -> [ fall bond_u | fall ]\n+ down [fall bond_d | ] -> [ fall bond_d | fall ]\n+ left [fall bond_l | ] -> [ fall bond_l | fall ]\n+ right [fall bond_r | ] -> [ fall bond_r | fall ]\n\n[fall wall]->[down wall] sfx1 again\n\n[fall]->[]\n[nofall]->[]\n\n[up wall bond ] -> [ up wall up bond ]\n+ [down wall bond ] -> [ down wall down bond ]\n+ [left wall bond ] -> [ left wall left bond ]\n+ [right wall bond ] -> [ right wall right bond ]\n\n[target]->[]\n\n\n[horizontal player ] -> cancel\n(\n[up player_h ] -> [ up player_v ]\n[down player_h ] -> [ down player_v ]\n[left player_v ] -> [ left player_h ]\n[right player_v ] -> [ right player_h ]\n)\n\nright left down [ landbackground | no landbackground no fenster ] -> [ landbackground | landbackground no fenster ]\n\n\n[player_h ] -> [ player_h htarget ]\n[player_v ] -> [ player_v vtarget ]\n\nhorizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nvertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\nup [ bond_u | explosion ] -> [ | explosion ]\ndown [ bond_d | explosion ] -> [ | explosion ]\nleft [ bond_l | explosion ] -> [ | explosion ]\nright [ bond_r | explosion ] -> [ | explosion ]\n\n[explosion wall ] -> [ no bond ] sfx1 again\n\n[explosion ] -> [ ] again\n\n[action player ] [bang] -> [ player ] [ action bang_schatten ]\n\n[action bang_schatten ] [ target ]-> [ action bang_schatten ] [ explosion ] sfx0 again\n\n\nlate [target]->[]\n\nlate [player_h ] -> [ player_h htarget ]\nlate [player_v ] -> [ player_v vtarget ]\n\nlate horizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nlate vertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll wall on landbackground \n\n=======\nLEVELS\n=======\n\n\n(OK LEVELS)\n\n\n\n\nmessage All those ugly buildings blocking our view.\nmessage Let's DEMOLISH them to SAVE OUR SKY\n\nmessage level 1 of 13 : FACTORY\n(sehr einfach)\n~ffffffffffffff\nfif...........f\nfif...........f\nfif...........f\nfif....p......f\nfif.....#.....f\nfif...#.#.....f\nfif...#.###...f\nfbf...######..f\nfif..###...#..f\nfbfg.#...#.#..f\nfif..#...#.#..f\nfffffffffffffff\n\n\nmessage Ah, what a lovely view of the sky!\n\nmessage level 2 of 13 : Lop-sided Electricity Poll\n(actually ok?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif...#......f\nfif...##.....f\nfif...#......f\nfbf...##.....f\nfif....##....f\nfbfggggg#ggggf\nfif.....#....f\nffffffffffffff\n\n\n\n\nmessage level 3 of 13 : Water Pump\n(ok anfängerlevel?)\n~fffffffff\nfif...p..f\nfbf###...f\nfif#.###.f\nfbf#.##..f\nfif#.##..f\nfbf#gg##gf\nfif...#..f\nffffffffff\n\n\n\n\nmessage level 4 of 13 : Electricity Supply\n\n(einfach/gut?)\n~ffffffff\nfif###p#f\nfbf#.#.#f\nfbf#####f\nfbf##.#.f\nfifg####f\nfffffffff\n\n\nmessage level 5 of 13 : Water Font\n(hard)\n~fffffffffffff\nfifp....###..f\nfbf...#.#.#..f\nfbf...####...f\nfbf...##.##..f\nfifgg#g####ggf\nffffffffffffff\n\n\n\nmessage level 6 of 13 : Angry Goose\n(tricky + sieht gut aus)\n~ffffffffffff\nfifp##.####.f\nfbf.####.##.f\nfbf...##.#..f\nfbf...###...f\nfifgg##gggggf\nfffffffffffff\n\n\n\nmessage level 7 of 13 : Lean-to\n(nice/ok!)\n~fffffffffff\nfifp..#....f\nfif..##....f\nfbf.##.....f\nfif..#.....f\nfbf####....f\nfif...##...f\nfbfggg##gggf\nfif....##..f\nffffffffffff\n\n\n(medium-hard / fun! )\nmessage level 8 of 13 : Treehouse\n~fffffffffffffff\nfifp...........f\nfif........#...f\nfif........#...f\nfif.......####.f\nfbf.......#..#.f\nfif......#####.f\nfbf........#...f\nfif......###...f\nfbf......##....f\nfif.....##.....f\nfbfgggg#g#gggggf\nfif...####.....f\nffffffffffffffff\n\n\n\n\nmessage level 9 of 13 : Ugly Antenna\n(i had fun solving this)\n~fffffffffffff\nfifp.###.####f\nfbf..#.#....#f\nfif..#.##.###f\nfbf..#.###.#.f\nfif..####.##.f\nfbfggggg###ggf\nfif.....#....f\nffffffffffffff\n\n\n\n\nmessage level 10 of 13 : 60's Futuristic settlement\n(ok/interesting to solve!)\n~fffffffffff\nfbf##p.####f\nfif#...#..#f\nfbf#...####f\nfif######.#f\nfbf###.##.#f\nfifggg##gg#f\nfbf...#.#.#f\nfif...###..f\nffffffffffff\n\n\nmessage level 11 of 13 : Dystopic settlement\n(futuristic city - hardlevel?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..##......f\nfif..#.......f\nfbf..##.#.#..f\nfif..##.###..f\nfbf..###.###.f\nfif....#.##..f\nfbf....#.#...f\nfifggg####gggf\nffffffffffffff\n\n\nmessage level 12 of 13 : Space elevator\n(interesting? seemingly impossible?)\n~fffffffffffff\nfif#####p....f\nfif#.#.#.....f\nfif#.####....f\nfif#.##......f\nfif#g#gggggggf\nfif#.#.......f\nfif#.##......f\nfif#.#.......f\nfif#.##......f\nfbf#.#.......f\nfif#.###.....f\nfbf#.#.###.#.f\nfif#.###..##.f\nfbf##..####..f\nfif.#######..f\nffffffffffffff\n\n\n\n\nmessage level 13 of 13 : Building seeminly purposely constructed to block my view.\n\n(can't easily solve meh - could be ok final level? FINAL LEVEL)\n~fffffffffffffffff\nfif###p..........f\nfif#.##..........f\nfif####..........f\nfif...##.........f\nfif####..........f\nfif.#............f\nfif##............f\nfif###...........f\nfif..#...........f\nfif#####.........f\nfif...#.#.#......f\nfif######.#......f\nfif###..###......f\nfif#..###........f\nfif.....##.......f\nfifgggggg#gggggggf\nfif......###.....f\nfif.......##.....f\nfif.......##.....f\nfbf........##....f\nfif........##....f\nfbf.........##...f\nfif.........##...f\nfbf.........#####f\nfif............#.f\nffffffffffffffffff\n\n\nmessage Ahh, the sky is clear again, just in time for the sunset\n\n\n\n5555555555555555555\n5555522222222555555\n5552222222222222555\n5222222222222222225\n2222222111112222222\n2222211111111122222\n2221111133311111222\n2211111334331111112\n6666666666666666666\n6666666666666666666\n6666666666666666666\n\n\n\n\n22222222222222222222\n22222222222222222222\n22222222222222222222\n22222222222222222222\n22222221212122222222\n22221212121212122222\n22212121111121212222\n22121211111112121222\n66666666666666666666\n66666666666666666666\n66666666666666666666\n\n\n\n00000077777777000000\n00007777777777770000\n00077777777777777000\n07777777777777777770\n77777722222222777777\n77772222222222227777\n77722221111122222777\n77222211111112222277\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n88888888888888888888\n88888880000088888888\n88888000000000088888\n88800000000000000888\n88000000000000000088\n80000000000000000008\n00000000222000000000\n00000002222200000000\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwww000wwwwwwwww\nwwwww000222000wwwwww\n00000022222220000000\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n\n\nw9wwwwwwww9wwwwwwwww\nwwwwwwwwwwwwww9www9w\nwwww9wwwwwwwwwwwwwww\nwwwwwwwww9wwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwww9www\nw9wwwww9wwwww9wwwwww\nwwwwwwwwwwwwwwwwwwww\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\nmessage The End \n\n\n\n(\n\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf.....#....f\nfif....####..f\nfbf...##..#..f\nfif#.#..###..f\nfbf#####.##..f\nfif.#.####...f\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfbfp.........f\nfif....#.....f\nfbf....##....f\nfif....###...f\nfbf......#...f\nfif..######..f\nfbf...#.#.#..f\nfif.....####.f\nfbf....#.##..f\nfifgg#####gggf\nffffffffffffff\n\n(microscope?)\n~fffffffffffff\nfbfp.........f\nfif......##..f\nfbf.....##...f\nfif....##....f\nfbf....#.##..f\nfif....#.#...f\nfbf....####..f\nfif.......#..f\nfbf..######..f\nfifgg####ggggf\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.......#.f\nfif......#.#.f\nfif......#.##f\nfif......####f\nfbf....####.#f\nfifggggg#g##gf\nfbf...#####.#f\nfif....######f\nfbf..#.###...f\nfif.######...f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.....#...f\nfif......##..f\nfif....####..f\nfif....##.#..f\nfbf....###...f\nfifgg#g####ggf\nfbf..####.#..f\nfif..#####...f\nfbf..#######.f\nfif....#####.f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.....#...f\nfif....#.#...f\nfif....###...f\nfif...###..#.f\nfbf...#.####.f\nfifgggg##ggggf\nfbf...#####..f\nfif....####..f\nfbf..######..f\nfif..########f\nffffffffffffff\n\n\n\n\n~fffffffffff\nfbfp...#.#.f\nfif....#.##f\nfbf....###.f\nfif.###.###f\nfbf...###.#f\nfif.....##.f\nfbfggg###ggf\nfif...#####f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp...##..f\nfif.######.f\nfbf....#.#.f\nfif...###..f\nfbf...#.##.f\nfif....###.f\nfbfggg#gg#gf\nfif..######f\nffffffffffff\n\n(hard, but looks nice)\n~fffffffffff\nfbfp...#..#f\nfif....####f\nfbf.....#.#f\nfif...###..f\nfbf.....###f\nfif...###..f\nfbfg##g#g##f\nfif..######f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp..#.##.f\nfif...#.#..f\nfbf...#####f\nfif....#.#.f\nfbf....###.f\nfif...###..f\nfbfg###gg#gf\nfif.#.####.f\nffffffffffff\n\n~fffffffffff\nfifp.......f\nfif........f\nfif#.......f\nfbf###.....f\nfif#.##....f\nfbf##......f\nfif##......f\nfbf#.......f\nfif##.#....f\nfbf##.#....f\nfif.####...f\nfbf.#.####.f\nfif....#.#.f\nfbfgggg###gf\nfif....#...f\nffffffffffff\n\n\n\n(hard/unsolved)\n~fffffffffffff\nfifp...####..f\nfif.....##...f\nfbf....##....f\nfif...#.##...f\nfbf...#.#..#.f\nfif...####.#.f\nfbf....#.###.f\nfif....#.#...f\nfbfggg#######f\nfif..#...#...f\nfbf.######...f\nfif...###....f\nffffffffffffff\n\n\n(haard, pretty, unsolved)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf.....#....f\nfif....###...f\nfbf...#####..f\nfif.....#..#.f\nfbf.....####.f\nfif..#.#.#.#.f\nfbf.##.#.##..f\nfif..#.####.#f\nfbfgg##ggg#g#f\nfif...#######f\nffffffffffffff\n\n\n(haard, pretty, ,unsolved)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf...##..#..f\nfif.##.####..f\nfbf..##.#.#..f\nfif...#.###..f\nfbf...##.##..f\nfif....###...f\nfbf......#...f\nfif....######f\nfbfgg###ggg##f\nfif....#####.f\nffffffffffffff\n\n(haard ,unsolved)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfbf........f\nfif....###.f\nfbf.....###f\nfif......#.f\nfbf......#.f\nfif.....##.f\nfbf......##f\nfif....####f\nfbf....##..f\nfif...###..f\nfbf....##..f\nfifggg##gggf\nffffffffffff\n\n\n\n(too tired, don't want to solve)\n~ffffffffffffffffffffffffffffffffffffff\nfifp..................................f\nfif.......#...........................f\nfif.......#...........................f\nfif#.....##...........................f\nfif##...##............................f\nfif.####.#............................f\nfif....####...........................f\nfif....##.#...........................f\nfif.......##..........................f\nfif......####.........................f\nfif........#.#........................f\nfif.......####........................f\nfif.......#.##........................f\nfifggggggg#g##ggggggggggggggggggggggggf\nfif........####.......................f\nfif...........#.......................f\nfif........######.....................f\nfif........#.##.##....................f\nfif............##.....................f\nfbf..........####.....................f\nfif............####...................f\nfbf...........##.###..................f\nfif..............#.#..................f\nfbf................#..................f\nfif................###................f\nfffffffffffffffffffffffffffffffffffffff\n\n\n~fffffffffffff\nfbfp.#.......f\nfif..###.....f\nfbf..##......f\nfif...##.....f\nfbf..#.##....f\nfif.#####....f\nfbf...#.#..#.f\nfif....######f\nfbf.....#..#.f\nfifggggg##gggf\nffffffffffffff\n\n\n~fffffffffffff\nfifp.....##.#f\nfif.......#.#f\nfif.......#.#f\nfif.......###f\nfif.........#f\nfif.........#f\nfifggggggggg#f\nfif.......###f\nfif......##.#f\nfif.....###.#f\nfif.......###f\nfif.........#f\nfif.......###f\nfif......#..#f\nfif......####f\nfif.......#.#f\nfif........##f\nfif.......###f\nfif.........#f\nfif........##f\nfif.......###f\nfif........##f\nfif........##f\nfif.........#f\nfbf..##...###f\nfif..#...##.#f\nfbf..##....##f\nfif..###.###.f\nfbf...##.#...f\nfif...#####..f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif.........#f\nfif.......###f\nfif........##f\nfif........##f\nfif........##f\nfif.....##.##f\nfifgggggg#g##f\nfif.....#####f\nfif.........#f\nfif.....#####f\nfif.........#f\nfif...#######f\nfif.....#...#f\nfif......####f\nfif.........#f\nfif.......###f\nfif......##.#f\nfif.......#.#f\nfif.......###f\nfif......#..#f\nfif......####f\nfbf.........#f\nfif.......###f\nfbf.......#.#f\nfif.......##.f\nfbf.....###..f\nfif..#####...f\nffffffffffffff\n\n\n\n~fffffffffffffffffffffff\nfifp.................##f\nfif.................#.#f\nfif.................###f\nfif...................#f\nfif...................#f\nfif..................##f\nfifgggggggggggggggggg##f\nfif..................##f\nfif.................#.#f\nfif.................#.#f\nfif.............###.###f\nfif..............#.##.#f\nfif..............###..#f\nfif...............#.#.#f\nfbf...............#.###f\nfif...##....#.##..###.#f\nfbf...###.###..#.#.#.##f\nfif....####.#..#######.f\nfbf......########..#.#.f\nfif..........##......#.f\nffffffffffffffffffffffff\n\n\n\n~ffffffffffffffffff\nfif##p.....#######f\nfif##.......##...#f\nfif#..#.......####f\nfif######.....####f\nfbf#....##..###..#f\nfif######...#.#.##f\nfbfg#gg####g##ggggf\nfif.....#.#####...f\nfbf.....###.#.....f\nfif.......##......f\nfffffffffffffffffff\n\n\n\n~ffffffffffffffffff\nfif########p......f\nfif#.#.#.#........f\nfif#.#.#.#...#....f\nfif#.######.######f\nfbf#g##gg#######ggf\nfif#.#...##.#..##.f\nfbf###....#.###...f\nfif##.....###.....f\nfbf#....####......f\nfif.......#.......f\nfffffffffffffffffff\n\n\n\n~fffffffffffffffffffffff\nfifp.......############f\nfif......####.#.......#f\nfif......#.#.#.########f\nfif.......##.#.#......#f\nfbfggggggg#g##g########f\nfif......###.#.#.#.####f\nfbf........######...#..f\nfif.....###....#.......f\nfbf.......######.......f\nfif.....########.......f\nffffffffffffffffffffffff\n\n\n\n\n\n~fffffffffffffffffffffff\nfif###p########.##.####f\nfif#####..#.#...####..#f\nfif...#.###.##....#.###f\nfif#######..#.#########f\nfbf.#...#.#.######.#...f\nfifg#####g##g##ggggggggf\nfbf.....######.........f\nfif.......#..##........f\nfbf.........###........f\nfif..........###.......f\nffffffffffffffffffffffff\n\n\n\n\n~fffffffffffffffffffffff\nfif#########p....##....f\nfif#.#.#.##....###.....f\nfif#.#.#.#....#.####...f\nfif#.#.#.#....#.#..#...f\nfbf#g#g###gggg#g###ggggf\nfif####..#.#..###.#....f\nfbf...####.#..##.......f\nfif...##.#.##.#.#......f\nfbf....##########......f\nfif....#....##.#.......f\nffffffffffffffffffffffff\n\n\n\n(hard, haven't solved manually)\n~fffffffffffff\nfif###p......f\nfbf#.#.......f\nfif#.###.....f\nfbf#.#.##....f\nfif####g####gf\nfbf##.####...f\nfif.##..#....f\nffffffffffffff\n\n\n(too hard)\n~fffffffffffff\nfif#####p....f\nfif#.#.#.....f\nfif#.##.#....f\nfif#.#####...f\nfif#.##.#....f\nfif#g#gggggggf\nfif#.####....f\nfif#.#.#..##.f\nfif#.###.#.##f\nfbf##..#####.f\nfif.####.....f\nfbf...###....f\nfif....#.....f\nfbf....#.##..f\nfif....###...f\nffffffffffffff\n\n\n\n(hard, looks ok, but meh)\n~fffffffffffff\nfif###p#.....f\nfif##.##.....f\nfif##.#......f\nfif####......f\nfif#.#.......f\nfbf#.#.......f\nfif###.......f\nfbf#.##......f\nfif#.##......f\nfbf##g##gggggf\nfif.###......f\nfbf.#.##.....f\nfif...#......f\nfbf..###.#...f\nfif....####..f\nffffffffffffff\n\n\n(hard, looks ok, but meh)\n~fffffffffffff\nfif##p#......f\nfif####......f\nfif#.##......f\nfif#.#.......f\nfif#.#.......f\nfbf###.......f\nfif#.........f\nfbf###.......f\nfif#.........f\nfbf#####gggggf\nfif#.##.#....f\nfbf..##.##...f\nfif..#####...f\nfbf.....###..f\nfif...###....f\nffffffffffffff\n\n(hmmm! not sure!)\n~ffffffffffffffffffffffffffff\nfifp........................f\nfif.........................f\nfif.........................f\nfif.........................f\nfif....................##...f\nfif.....................##..f\nfif....................##...f\nfif...................###...f\nfif...................##....f\nfif.................####....f\nfifgggggggggggggggggggg###ggf\nfif...............######.##.f\nfif..................#.#....f\nfif..................####...f\nfif................####.#...f\nfif................###......f\nfif..................##.....f\nfif..................#.##...f\nfif................###.##...f\nfbf................#.#####..f\nfif...............##.#......f\nfbf................####.....f\nfif................##.......f\nfbf.............#####.......f\nfif.........#####...........f\nfffffffffffffffffffffffffffff\n\n\n\n(soll schwierig sein - will nicht lösen!)\n~fffffffffff\nfifp.......f\nfif........f\nfbf........f\nfif....#...f\nfbf..###...f\nfif....##..f\nfbf...#.#..f\nfif...#.##.f\nfbf...#.###f\nfif..###.##f\nfbf..#.###.f\nfifgggg##ggf\nffffffffffff\n\n\n(soll schwierig sein - ja zu schwierig)\n~ffffffffffff\nfif.........f\nfbf.p.......f\nfif...#.....f\nfbf...#.....f\nfif...###...f\nfbf...#.##..f\nfif.#####...f\nfbf..#..###.f\nfif...##..#.f\nfbf....####.f\nfifggggg##ggf\nfffffffffffff\n\n(hard - will nicht lösen )\n~fffffffffffff\nfifp.........f\nfif......#...f\nfif.....##...f\nfif....##....f\nfbf....#.##..f\nfif....###...f\nfbfgggg##ggggf\nfif...###....f\nfbf.....#....f\nfif....##....f\nffffffffffffff\n\n\n(should be hard?)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfif...##...f\nfbf..###...f\nfif.###....f\nfbf...##...f\nfif....#...f\nfbf..#.##..f\nfifgg##g#g.f\nfbf...#.#..f\nfif...###..f\nffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n(zeimlich einfach!)\n~fffffffffff\nfifp.#..#..f\nfif..##.#..f\nfbf...#.##.f\nfif...####.f\nfbf....##..f\nfif..###...f\nfbfgggg#gggf\nfif....#...f\nffffffffffff\n\n\n(simple/ok)\n~ffffffffff\nfifp.#..##f\nfbf..#####f\nfif..#.#.#f\nfbf...##..f\nfif..##...f\nfbfggg###gf\nfif..##...f\nfffffffffff\n\n\n(simple/ok)\n~fffffffffff\nfifp......#f\nfif......##f\nfbf......##f\nfif.....###f\nfbf.......#f\nfifgggggg##f\nfbf.....##.f\nfif...###..f\nffffffffffff\n\n\n\n\n(simple/ok / ok maybe nicer than ok! :] )\n~fffffffffff\nfifp....#..f\nfif...#.##.f\nfbf...###..f\nfif..###...f\nfbf...#....f\nfif...##...f\nfbfgggg##ggf\nfif....#...f\nffffffffffff\n\n\n\n\n\n\n\n(beautiful-looking? not fun to solve)\n~fffffffffff\nfbf########f\nfif##p...##f\nfbf##...#.#f\nfif#.#..###f\nfbf#.#...##f\nfif###g#g##f\nfbf#.######f\nfif....#.#.f\nffffffffffff\n\n\n\n\n\n\n\n(ok to solve!)\n~fffffffffff\nfbfp...####f\nfif....#..#f\nfbf....####f\nfif#.###..#f\nfbf#.#.####f\nfif####gg##f\nfbf.#.####.f\nfif....#.#.f\nffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n~fffffffffffff\nfifp...######f\nfif.......#.#f\nfif.........#f\nfif.......###f\nfif.......#.#f\nfif.....#####f\nfifgggggg##g#f\nfif......#.##f\nfif......#.##f\nfbf......#.##f\nfif......####f\nfbf......##.#f\nfif...#..#...f\nfbf..#####...f\nfif.....###..f\nffffffffffffff\n\n\n(dunno? schwierig)\n~fffffffffffff\nfbf#####p####f\nfif...####..#f\nfbf....#.####f\nfif.....#.#.#f\nfbf.....#.###f\nfif.....#.#.#f\nfbf.....#.#.#f\nfifgggg######f\nfbf......###.f\nfif....###...f\nffffffffffffff\n\n\n\n\n\n~fffffffffffff\nfifp..#.###..f\nfbf..##.#.#..f\nfbf...####...f\nfbf....##.#..f\nfifg##g#g##ggf\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif...#......f\nfif...###....f\nfbf....###...f\nfif.....#....f\nfbf....###...f\nfif...##.....f\nfbfgg##ggggggf\nfif.#####....f\nffffffffffffff\n\n\n\n~ffffffff\nfif....#f\nfif....#f\nfif....#f\nfif..###f\nfif....#f\nfif.p.##f\nfif....#f\nfif#.###f\nfif#..#.f\nfbf####.f\nfif#.#..f\nfbf#g#ggf\nfif###..f\nfbf..##.f\nfif###..f\nfbf#.##.f\nfif####.f\nfffffffff\n\n\n(Tricky)\n~fffffffffff\nfbfp.......f\nfif........f\nfbf...#....f\nfif...##...f\nfbf..#.#...f\nfif..#.###.f\nfbf.###.#..f\nfif...####.f\nffffffffffff\n\n\n~fffffffffff\nfbfp..##...f\nfif....##..f\nfbf...##...f\nfif...###..f\nfbf...#....f\nfif...###..f\nfbfggggg#ggf\nfif...####.f\nffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif...#......f\nfif...#......f\nfif...##.....f\nfbf....#.....f\nfif....##....f\nfbf.....#....f\nfif....###...f\nfbfggg#gg##ggf\nfif...####...f\nffffffffffffff\n\n\n\n\n~fffffffffff\nfifp...###.f\nfif...##.#.f\nfbf..#.###.f\nfif..###.#.f\nfbfggg####gf\nfif.....###f\nfbf...###..f\nfif...####.f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif.....#..f\nfif...###..f\nfif.....###f\nfbf....##..f\nfif...##...f\nfbf.#.##..#f\nfif.##.##.#f\nfbf#g#g#g##f\nfif########f\nfbf#......#f\nfif########f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif..#.....f\nfbf..##....f\nfif..###...f\nfbf..#.#...f\nfif..###...f\nfbfggg###ggf\nfif....#...f\nffffffffffff\n\n\n~fffffffffff\nfifp...##..f\nfif....###.f\nfif...##.#.f\nfif...#.#..f\nfbf...#.#..f\nfif...#.###f\nfbf..######f\nfifggg##gggf\nfbf....####f\nfif....#..#f\nfbf####.###f\nfif.#######f\nffffffffffff\n\n\n\n\n~ffffffffff\nfifp......f\nfif.......f\nfif.......f\nfif.......f\nfbf..###..f\nfif..#.#..f\nfbf.#.##..f\nfif.#####.f\nfbf...#...f\nfif.###...f\nfbfgg#g##gf\nfif..###..f\nfffffffffff\n\n\n\n~ffffffff\nfifp###.f\nfbf.#.##f\nfif.####f\nfbf.##..f\nfif..##.f\nfffffffff\n\n\n~fffffffffff\nfifp###....f\nfbf.#.##...f\nfbf.#.##...f\nfbf.#.##...f\nfifgggg##ggf\nffffffffffff\n\n\n~fffffffffff\nfifp...###.f\nfbf..#.#.#.f\nfbf..##.##.f\nfbf.#####..f\nfifgggg####f\nffffffffffff\n\n\n\n\n~fffffffffffff\nfifp...##.#..f\nfif....#.##..f\nfbf....#.##..f\nfif....#.##..f\nfbf....#.#.##f\nfif...######.f\nfbfggg#g##gggf\nfif..####....f\nfbf.....##...f\nfif...###....f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp....#....f\nfif.....#.#..f\nfif.....###..f\nfif...###.#..f\nfbfggg#g#####f\nfif....##.###f\nfbf...#.###..f\nfif...####...f\nfbf......##..f\nfif...#####..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp..#.#..f\nfbf...###..f\nfif....##..f\nfbfggg##gggf\nfif....#...f\nffffffffffff\n\n\n\n~fffffffffffff\nfifp...##....f\nfif.....#....f\nfif.....#....f\nfifggggg#ggggf\nfif#.####....f\nfif#.#..#....f\nfbf##.###....f\nfif.###.#####f\nfbf....#.#...f\nfif..######..f\nffffffffffffff\n\n\n~fffffffffff\nfifp...#.#.f\nfbf....###.f\nfif....##..f\nfbfggg#g###f\nfif...###..f\nffffffffffff\n\n\n~fffffffff\nfbfp##.#.f\nfif..#.#.f\nfbf..####f\nfif.###..f\nfbf...##.f\nfifggg#ggf\nffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif.......#..f\nfbf.......#..f\nfif.......#..f\nfbf....#####.f\nfif...####...f\nfbf.....#....f\nfifggggg##gggf\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif...#......f\nfbf..##......f\nfif...#.#....f\nfbf...###....f\nfif....#.....f\nfbf....##....f\nfif....####..f\nfbf.......##.f\nfifggg######gf\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif.#........f\nfbf.##.......f\nfif..#.......f\nfbf.###......f\nfif.#####....f\nfbf...#.##...f\nfif....#.##..f\nfbf....##.##.f\nfifggggg#####f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp....#....f\nfif.....#....f\nfbf.....#....f\nfif.....##...f\nfbf...##.#...f\nfif....#.#...f\nfbf....#.###.f\nfifgggg#g#gggf\nfbf...##.##..f\nfif....#####.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp..#......f\nfif...#......f\nfbf..###..#..f\nfif....####..f\nfbf.....#....f\nfif.....###..f\nfbf.....#.#..f\nfifggggg##gggf\nfbf...###.#.#f\nfif....######f\nffffffffffffff\n\n\n~fffffffffffff\nfifp..#......f\nfif...##.....f\nfbf...#..#...f\nfif..###.#...f\nfbf....#.#...f\nfif..######..f\nfbf.....#....f\nfif.....###..f\nfbfggggg#ggggf\nfif...#####..f\nffffffffffffff\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf#.........f\nfif#.........f\nfbf##........f\nfif.######...f\nfbf..#.#.#...f\nfif..##.##...f\nfbf..##.#.#..f\nfif...######.f\nffffffffffffff\n\n\n(hard)\n~fffffffffffff\nfifp...##....f\nfif....#.....f\nfbf....#.....f\nfif....##....f\nfbf....##....f\nfif..##.##...f\nfbf...#.#....f\nfifggg#g##gggf\nfbf..###.##..f\nfif....####..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp..#.#..f\nfif...###..f\nfif...##...f\nfbfgggg##ggf\nfif....##..f\nfbf...##...f\nfif....##..f\nffffffffffff\n\n\n(trivial)\n~fffffffffff\nfifp.....#.f\nfif.....##.f\nfif.....#..f\nfbf...###..f\nfif.####...f\nfbfggg##gggf\nfif....##..f\nffffffffffff\n\n\n(too easy)\n~fffffffffff\nfifp.......f\nfif.....#..f\nfif.....#..f\nfif.....#..f\nfbf.....#..f\nfif.....#..f\nfbf...####.f\nfifggg##g##f\nfbf.##.#...f\nfif..###...f\nffffffffffff\n\n\n\n(nice shape)\n~fffffffffff\nfifp.......f\nfif........f\nfif...#....f\nfif...##...f\nfbf....##..f\nfif...#.#..f\nfbf..#####.f\nfifgggg##ggf\nfbf....##..f\nfif...###..f\nffffffffffff\n\n(nice?/meh)\n~fffffffffff\nfifp.......f\nfif...#....f\nfif...#....f\nfif...##...f\nfbf....##..f\nfif....##..f\nfbf.....#..f\nfifgggg##ggf\nfbf..#.###.f\nfif.#####..f\nffffffffffff\n\n\n\n~fffffffffffff\nfifp#..#.#...f\nfif.####.#...f\nfbf..#.####..f\nfbf..#.##....f\nfbf.###.###..f\nfbf...#.#....f\nfbf...#####..f\nfifgggg######f\nffffffffffffff\n\n\n~fffffffffffff\nfifp....##..#f\nfif....#.#..#f\nfbf...##.####f\nfbf....####.#f\nfbf..##.#..##f\nfbf..##.#####f\nfbf...#####..f\nfifggg#g#ggggf\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.......#.f\nfif.....##.#.f\nfbf.....#.##.f\nfbf....#####.f\nfbf#......#..f\nfbf##.#######f\nfbf.##...##.#f\nfif.######..#f\nffffffffffffff\n\n\n~fffffffffffff\nfifp...###...f\nfif.##.#.##..f\nfbf..#.#####.f\nfbf..#..#....f\nfbf.#####....f\nfbf..#..##...f\nfbf..###.####f\nfifggg####g##f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..........f\nfif......#...f\nfbf...####...f\nfif...#.#....f\nfbf...####...f\nfif....#.##.#f\nfbf....##.###f\nfif...######.f\nfbf..##...##.f\nfif..######..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp.##....f\nfif...##...f\nfbf....##..f\nfif...#.##.f\nfbf...####.f\nfif...#..#.f\nfbf..####..f\nfifgggg##ggf\nfbf....#.#.f\nfif....####f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif....##..f\nfbf..##.#..f\nfif...#.##.f\nfbf...####.f\nfif...#..#.f\nfbf...###.#f\nfif....####f\nfbfgggg#g#gf\nfif..###...f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif....#...f\nfbf....##..f\nfif..###...f\nfbf..#.#..#f\nfif..##...#f\nfbf.####.##f\nfif...#.###f\nfbfggg#g#ggf\nfif...###..f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif....#...f\nfbf..###...f\nfif...#....f\nfbf##.##.#.f\nfif.##.####f\nfbf..##.##.f\nfif...###..f\nfbfggggg#ggf\nfif...###..f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif..#.....f\nfbf..##.##.f\nfif...###..f\nfbf..#.####f\nfif.##.#...f\nfbf..####..f\nfif...#.#..f\nfbfggg####gf\nfif...##...f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp.#.....f\nfif..#.....f\nfbf..#.#...f\nfif..###...f\nfbf...#.##.f\nfif...####.f\nfbf...##.#.f\nfif....##..f\nfbf...#.###f\nfif...#####f\nffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif......#...f\nfbf......##..f\nfif.....#.#..f\nfbf.....#.#..f\nfif...######.f\nfbf.....##...f\nfif#....##...f\nfbf###.###...f\nfif..#.##....f\nfbfgg##g###ggf\nfif...##.##..f\nfbf....#.###.f\nfif....###.#.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfbf.....#....f\nfif....##....f\nfbf....##....f\nfif.....##...f\nfbf....#.##..f\nfif....####..f\nfbf....#..##.f\nfif....#####.f\nfbf...##...#.f\nfifggg#g#####f\nfbf..#.#...#.f\nfif.########.f\nffffffffffffff\n\n\n\n\n\n\n\n~fffffffffff\nfifp.......f\nfif...#....f\nfbf...#.#..f\nfif...###..f\nfbf....##..f\nfif..###...f\nfbfgggg##ggf\nfif...##...f\nffffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.....#.f\nfbf....###f\nfif..#.##.f\nfbf#####..f\nfif.###...f\nfbf...#...f\nfif.####..f\nfffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.......f\nfbf..#.#..f\nfif.##.#..f\nfbf..###..f\nfif#..####f\nfbf####...f\nfif.#.#...f\nfffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.......f\nfbf..#..#.f\nfif.#####.f\nfbf...#.#.f\nfif.####..f\nfbf.##.##.f\nfif...##..f\nfffffffffff\n\n\n~fffffffffff\nfifp..###..f\nfbf.#.#.#..f\nfbf.#.##...f\nfbf.##.##..f\nfbf..#####.f\nffffffffffff\n\n\n~fffffffffff\nfifp.#.#.#.f\nfbf..###.#.f\nfif...#####f\nfbf..#..##.f\nfif..####..f\nffffffffffff\n\n\n~fffffffffff\nfifp..###.#f\nfbf...#.#.#f\nfif....####f\nfbf...##.##f\nfif...####.f\nffffffffffff\n\n\n\n~fffffffffff\nfifp..###..f\nfbf.#.#.#..f\nfif.#..##..f\nfbf#####...f\nfif..#####.f\nffffffffffff\n\n\n\n\n(figure giving tribute - meh?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif.....#.#..f\nfbf....####..f\nfif....#.#...f\nfbf....#.###.f\nfif.######...f\nfbf.....###..f\nfifgg####g#ggf\nffffffffffffff\n\n\n\n\n\n\n\n\n~fffffffffffff\nfbfp.#.......f\nfif..###.....f\nfbf..##......f\nfif...##.....f\nfbf..#.##....f\nfif.#####....f\nfbf...#.#..#.f\nfif....######f\nfbf.....#..#.f\nfifggggg##gggf\nffffffffffffff\n\n\n~fffffffffffffffffffffffffffffffffffffffffff\nfifp.####...##########.###################.f\nfbf....###.##....###.##.#.......####...#...f\nfbf...##.#.#######..###.#########..........f\nfbf......###.#..#...#.#####..#.............f\nfifggggggg##gggggggggg##gg#gg#gggggggggggggf\nffffffffffffffffffffffffffffffffffffffffffff\n\n\n(interesting!)\n~fffffffffff\nfbf####p###f\nfif#......#f\nfbf###....#f\nfif#.#...##f\nfbf#.##..##f\nfif###ggg##f\nfbf##..###.f\nfif.####.#.f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp#######f\nfif.#.###.#f\nfbf...#..##f\nfif######.#f\nfbf.###.###f\nfifggg###g#f\nfbf..###..#f\nfif..#.#...f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp#######f\nfif.#.###.#f\nfbf...#..##f\nfif######.#f\nfbf.###.###f\nfifggg###g#f\nfbf..###..#f\nfif..#.#...f\nffffffffffff\n\n\n\n~fffffffffffff\nfif##p.......f\nfif##........f\nfif#.........f\nfif##........f\nfif##........f\nfif#.........f\nfbf###gggggggf\nfif#.##......f\nfbf##.##.....f\nfif.###..#...f\nfbf..##..#...f\nfif...######.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.......##f\nfif.........#f\nfif.......###f\nfif.......#.#f\nfif......##.#f\nfif......#.##f\nfbf.....#####f\nfifggg####g#gf\nfbf..##.##...f\nfif.....###..f\nfbf.....#....f\nfif.....#....f\nffffffffffffff\n\n\n~fffffffffffff\nfif###p......f\nfif#.#.......f\nfif#.#.......f\nfif#.#.......f\nfif####.....#f\nfifggg#gggg##f\nfif...##....#f\nfif....###..#f\nfbf.....#.###f\nfif.....###..f\nffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n(bad)\n~fffffffffffff\nfifp..#......f\nfif...#......f\nfbf..##......f\nfif..##......f\nfbf..#####...f\nfif...#..##..f\nfbf....######f\nfif.....#..#.f\nfbfggggg##g#gf\nfif....###...f\nffffffffffffff\n\n\n(trivial)\n~fffffffffff\nfifp.#.....f\nfif..##....f\nfbf..###...f\nfif..#.....f\nfbf..####..f\nfif....#...f\nfbfggg##gggf\nfif....#...f\nffffffffffff\n\n(pretty trivial)\n~fffffffffff\nfifp.....#.f\nfif......#.f\nfbf...#.##.f\nfif...#.#..f\nfbf...###..f\nfif...##...f\nfbf....#...f\nfifgggg#gggf\nffffffffffff\n\n\n\n\n(fiine / easy )\n~fffffffffff\nfbfp.......f\nfif......#.f\nfbf......#.f\nfif.....##.f\nfbf....###.f\nfif....#...f\nfbf..###...f\nfif...##...f\nfbf...#.##.f\nfif...###..f\nffffffffffff\n\n\n(meh)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfbf........f\nfif........f\nfbf......#.f\nfif......##f\nfbf.....###f\nfif...###.#f\nfbf.....#.#f\nfif..######f\nfbf...#.#.#f\nfif....###.f\nfbf...##.#.f\nfifgg######f\nffffffffffff\n\n\n\n\n(pretty easy)\n~fffffffffff\nfbfp.......f\nfif........f\nfbf.....##.f\nfif......##f\nfbf.....##.f\nfif....#.##f\nfbf....####f\nfif...###..f\nfbf....##..f\nfif...##...f\nffffffffffff\n\n\n\n\n(easy/arbirtaray/pretty)\n~fffffffffffff\nfif.....p....f\nfif..#.#.....f\nfif..###.....f\nfif...#..#.#.f\nfif...#..###.f\nfbf...#...#..f\nfifg###...#..f\nfbf.#.....#..f\nfif.#.....#..f\nffffffffffffff\n\n\n\n(too trivial)\n~fffffffffffffffffffffffffffffffff\nfifp.............................f\nfif......#.......................f\nfif.....##.......................f\nfif.....##.......................f\nfif...####.......................f\nfif....#.#.......................f\nfif.....###......................f\nfif......#.......................f\nfif......#...#...................f\nfif.....######...................f\nfifggggggg####gggggggggggggggggggf\nfif..........#...................f\nfif..........#...................f\nfif..........##..................f\nfif..........##..................f\nfif.........###..................f\nfbf...........##.................f\nfif...........##.................f\nfbf............###.#.............f\nfif............######............f\nffffffffffffffffffffffffffffffffff\n\n\n(meh)\n~fffffffffffffffffffffffffffffffff\nfifp.............................f\nfif..............................f\nfif.........#....................f\nfif.........#....................f\nfif........###...................f\nfif..........#...................f\nfif.......#####..................f\nfif......##..###.................f\nfif.....##....##.................f\nfif.....#.....#..................f\nfifgggggggggg###gggggggggggggggggf\nfif...........##.................f\nfif...........#.#................f\nfif...........###................f\nfif............###...............f\nfif.............###..............f\nfbf...............###............f\nfif...............#.##...........f\nfbf...............##.............f\nfif...............#..............f\nffffffffffffffffffffffffffffffffff\n\n\n\n\n\n(meh)\n~fffffffffffffffffffffffffffffffffffffffffff\nfifp.##################.###################f\nfbf...#.#.##.##.##.#..#.#.#.##.#.....#.#.##f\nfif...#.#....##...#########.....######.#.#.f\nfbfgggggggggggggg##g#g##gggggggggg#ggggggggf\nfif...............#....##........###.......f\nffffffffffffffffffffffffffffffffffffffffffff\n\n\n(meh)\n~fffffffffffff\nfifp.........f\nfbf..........f\nfif......#...f\nfbf......#...f\nfif.....##...f\nfbf.....#....f\nfif....##....f\nffffffffffffff\n\n\n\n\n\n(looks good, but too easy?)\n~fffffffffff\nfbf########f\nfif#p.##..#f\nfbf###..###f\nfif#...####f\nfbf#####..#f\nfif#ggg####f\nfbf######.#f\nfif...##...f\nffffffffffff\n\n(trivial)\n~ffffffff\nfifp..##f\nfbf.#..#f\nfif.####f\nfbf.###.f\nfif..#..f\nfffffffff\n\n(trivial)\n~ffffffff\nfif#p...f\nfbf##.#.f\nfif####.f\nfbf..##.f\nfif.##..f\nfffffffff\n\n\n(Trivial)\n~ffffffff\nfifp..#.f\nfbf.#.##f\nfif.####f\nfbf.##.#f\nfif..#..f\nfffffffff\n\n\n(zu einfach)\n~ffffffffff\nfif##p.#..f\nfbf###.#..f\nfif#.###..f\nfbf#.##...f\nfif####...f\nfbfggg###gf\nfif...##..f\nfffffffffff\n\n\n(zu einfach?)\n~ffffffffff\nfifp...###f\nfbf....#.#f\nfif....###f\nfbf....#.#f\nfifgggg###f\nfbf####.##f\nfif.#####.f\nfffffffffff\n\n\n\n(meh)\n~fffffffffff\nfifp....###f\nfif....####f\nfbf....#..#f\nfif.#..####f\nfbfg#gg#gg#f\nfif.#######f\nfbf.....###f\nfif....##..f\nffffffffffff\n\n\n\n(meh)\n~fffffffffffff\nfif#####p....f\nfif#.##......f\nfif#.##......f\nfif#.#.##...#f\nfif#g#g###g##f\nfif####..#.##f\nfif##.####.##f\nfif....##.#.#f\nfbf.....#####f\nfif.....##.##f\nffffffffffffff\n\n\n(meh)\n~fffffffffffff\nfif###p......f\nfif#.#.......f\nfif#.##......f\nfif#.#.#...#.f\nfif#g#g##gg##f\nfif#.#.######f\nfif####..#.##f\nfif.#.#####.#f\nfbf....#.#.##f\nfif.....#####f\nffffffffffffff\n\n\n(trivial)\n~fffffffffffffffffffffff\nfif#########p.#########f\nfif#......#...#.......#f\nfif########....########f\nfif#.....#....##.#....#f\nfif#######gggg##g######f\nfif#.....###.#.####...#f\nfif#############.......f\nfif.#####...#..........f\nfbf.........##.........f\nfif..........##........f\nffffffffffffffffffffffff\n\n(trivial)\n~fffffffffffffffffffffff\nfif#######p#....#######f\nfif#.#.#.#.##....#.#.##f\nfif###.#.###..#..#.#.##f\nfif..#.#.#...###.######f\nfif########gg#g#g#gggg#f\nfif.##...##############f\nfif..#####..#...#.#.#..f\nfif..........####.#.#..f\nfbf..........##........f\nfif.........###........f\nffffffffffffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n(THE REST)\n\n(hard, couldn't solve myself)\n~fffffffffffffff\nfifp.........##f\nfif.........##.f\nfif.........###f\nfif........#..#f\nfbf........#.##f\nfif........#.#.f\nfbf.......#####f\nfif........#.##f\nfbf........#..#f\nfifggggggg##gggf\nfbf......##....f\nfif.....##.....f\nffffffffffffffff\n\n\n\n\n(solved first go, ok? ohne persönlichkeit) \n~fffffffffffff\nfbfp.......##f\nfif........#.f\nfbf........#.f\nfif.......##.f\nfbf......##..f\nfif.......#..f\nfbf......####f\nfif......##.#f\nfbf....###...f\nfif.....#....f\nffffffffffffff\n\n(too routine)\n~fffffffffffff\nfbfp.........f\nfif...#......f\nfbf...#......f\nfif..##......f\nfbf...##.....f\nfif.##.#.....f\nfbf..###.....f\nfif..#.##....f\nfbf....##....f\nfif.....##...f\nffffffffffffff\n\n(scheiße)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif..#.......f\nfbf..##......f\nfif...#......f\nfbf...##.....f\nfif....#.....f\nfbf....##....f\nfif.....#....f\nffffffffffffff\n\n\n(zu einfach/procedural?)\n~ffffffffffffff\nfifp..........f\nfif........#..f\nfif........#..f\nfbf.......###.f\nfif.......#.#.f\nfbf.......#...f\nfif.....###...f\nfbf......#....f\nfif......#....f\nfbf....###....f\nfif..####.....f\nfffffffffffffff\n\n\n\n\n\n(zu einfach)\n~fffffffffffff\nfbfp........#f\nfif.........#f\nfbf........##f\nfif.......###f\nfbf.......#..f\nfif.....###..f\nfbf.....#.#..f\nfif....###...f\nfbf....##....f\nfif.....#....f\nffffffffffffff\n\n(kein level)\n~fffffffffffff\nfif...p......f\nfif..........f\nfif..........f\nfif..#.......f\nfif..#.#####.f\nfif..#.....#.f\nfbf..#####.#.f\nfbf..#.....#.f\nfbf........#.f\nfbfgg.g#####gf\nfifgg.g#gggggf\nffffffffffffff\n\n(zu einfach)\n~ffffffffffffff\nfif...........f\nfif...........f\nfif...........f\nfif...p..#....f\nfif.#....#....f\nfif.#....#....f\nfif.#...##....f\nfif.#....##...f\nfbf.##....#...f\nfbfg.#..#.#...f\nfif..#..#.#...f\nfif..#..#.#...f\nfffffffffffffff\n\n\n\n\n\n(zu einfach?)\n~ffffffffff\nfif.......f\nfbf.#.#.#.f\nfif.#.#.#.f\nfbf.#####.f\nfif..#p#..f\nfbf.g###.gf\nfif.g.#g.gf\nfffffffffff\n\n(no level)\n~fffffffff\nfif...p..f\nfbf.g#.#.f\nfif.g###.f\nfbf....#.f\nfif...##.f\nfbfg..#..f\nfif...#..f\nffffffffff\n\n\n(no level)\nffffffff\nf......f\nf....#.f\nfg...#.f\nf..P.#.f\nf..#.#.f\nf..#.#.f\nf.##.#.f\nffffffff\n\n\n(zu einfach)\n~ffffffffff\nfifp....#.f\nfbf....###f\nfif.....##f\nfbf...###.f\nfif...##..f\nfbf...#...f\nfifg####ggf\nfffffffffff\n\n(kein Level)\n~fffffffffffff\nfif...p......f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbfg.........f\nfif..........f\nffffffffffffff\n\n\n\n(kein Level)\n~fffffffffffff\nfif#..p.#.#..f\nfbf########..f\nfbf#......#.#f\nfbf#.#####..#f\nfbf#.....#..#f\nfbf#..##.#..#f\nfbf#...#.#..#f\nfbf#####.####f\nfbf...#...#..f\nfbfg..#####..f\nfif....#.....f\nffffffffffffff\n\n\n\n\n\n(kein Level)\n~fffffffffffff\nfif...p......f\nfbf######....f\nfbf#....#....f\nfbf##........f\nfbf.#..###...f\nfbf.##.#.#...f\nfbf..#.#.#...f\nfbf..#.###...f\nfbf.##..#....f\nfbfg#...#....f\nfif.#...#....f\nffffffffffffff\n\n\n\n\n(kein Level)\n~fffffffffffff\nfif..........f\nfif.###......f\nfif.#.#...###f\nfif.###...#.#f\nfif.#...###..f\nfifg#.###....f\nfif.###.#....f\nfif.#..###...f\nfbf..p.#.#...f\nfbf...###....f\nfif...#.#....f\nffffffffffffff\n\n\n\n(zu einfach)\n~ffffffff\nfif##p..f\nfbf.####f\nfbf###.#f\nfbf...##f\nfif..##.f\nfffffffff\n\n(kein level)\n~fffffffffffff\nfbfp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..........f\nfif.....#....f\nfbf.....#....f\nfif....###...f\nfbf......#...f\nfif....###...f\nffffffffffffff\n\n(meh)\n~ffffffff\nfif##p..f\nfbf#....f\nfbf####.f\nfbf.##..f\nfif..#..f\nfffffffff\n\n(hmmm dunno -vllt zu einfach?)\n\n~fffffffffff\nfif#####p..f\nfbf##.####.f\nfbf##..##..f\nfbf.#..##..f\nfifggggg##gf\nffffffffffff\n\n(dunno?)\n~ffffffffffffffffff\nfifp............#.f\nfif............##.f\nfif.............##f\nfif..............#f\nfif..............#f\nfif............###f\nfif.........####.#f\nfbf...........##.#f\nfif..........##..#f\nfbf..........##...f\nfif.........###...f\nfbf........###....f\nfifgggggggg##gggggf\nfbf......###......f\nfif....#####......f\nfffffffffffffffffff\n\n(zu einfach)\n~ffffffff\nfif#p...f\nfbf#..#.f\nfbf####.f\nfbf..##.f\nfif..#..f\nfffffffff\n\n(boring!)\n~ffffffff\nfifp#.#.f\nfbf.###.f\nfif..##.f\nfbfg##ggf\nfif..#..f\nfffffffff\n\n(trivial)\n~fffffffffff\nfifp.....#.f\nfif......#.f\nfif......#.f\nfif.....##.f\nfbf.....#..f\nfif.....#..f\nfbfgggg##ggf\nfif....#...f\nffffffffffff\n\n(trivial)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif.......#..f\nfbf.......#..f\nfif......##..f\nfbf......##..f\nfif......#...f\nfbf.....##...f\nfifggggg#ggggf\nffffffffffffff\n\n\n(meh)\n~fffffffffff\nfifp.......f\nfif.#......f\nfbf.##.....f\nfif..#.....f\nfbf..##....f\nfif...#....f\nfbf...##...f\nfif....#...f\nffffffffffff\n\n\n(nicht interessant)\n~fffffffffffff\nfbfp.........f\nfif..........f\nfbf##........f\nfif#.........f\nfbf##........f\nfif#.........f\nfbf####......f\nfif.#.#......f\nfbf.###......f\nfif..###.#...f\nffffffffffffff\n\n(meh)\n~fffffffffffff\nfif#p........f\nfif##........f\nfif#.........f\nfif##........f\nfbf###.......f\nfif#.........f\nfbf##ggggggggf\nfif.##.......f\nfbf..#..#....f\nfif..#.###...f\nffffffffffffff\n\n\n\n\n\n\n\n\n(meh)\n~fffffffffffffffffffffffffffffffff\nfifp..............####...........f\nfbf..............#.#.#...........f\nfbf..............###.............f\nfbf.............###..#...........f\nfifggggggggggggggg#####ggggggggggf\nffffffffffffffffffffffffffffffffff\n\n\n\n(huh not so bad? but hard for some maybe? wait maybe i just solved by chance....)\n~fffffffffffff\nfifp......###f\nfif.#.#...#.#f\nfbf.#.##...##f\nfbf.####...##f\nfbf##..###.##f\nfbf######.#.#f\nfbf.....#####f\nfbf...###.##.f\nfbf...#.#....f\nfif....##....f\nffffffffffffff\n\n\n\nmessage level 5 of 10 : Gallows\n(hard - actually ok? medium difficulty?)\n~ffffffffffff\nfif.........f\nfifp.#......f\nfif..#......f\nfif..###....f\nfif..#......f\nfbf.####....f\nfif...###...f\nfbf...#.#...f\nfif.....#...f\nfbfggggg##ggf\nfif......##.f\nfffffffffffff\n\n\n\n\nmessage level 2 of 10 : ANTENNA 1\n(ok anfangerlevel?)\n~fffffffff\nfbfp#..#.f\nfif##..#.f\nfbf.#.##.f\nfif####.#f\nfbf#..###f\nfifggg#ggf\nffffffffff\n\n\n\nmessage level 3 of 10 : UFO\n(ok! / easy / Space invaders)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..#..#....f\nfif########..f\nfbf#.###..#..f\nfif.....####.f\nfbf..###.##..f\nfif....###...f\nffffffffffffff\n\n\n\n\n(\n(ok anfangerlevel)\n~fffffffff\nfbfp#..##f\nfif.##.##f\nfbf..###.f\nfif...###f\nfbf####..f\nfifggg#ggf\nffffffffff\n)\n\n\n\n\n(\n\n~fffffffffffff\nfifp.......#.f\nfif........##f\nfif........##f\nfif.........#f\nfbf.........#f\nfif.......###f\nfbf.......##.f\nfifggggggg##gf\nfbf.......#..f\nfif...#####..f\nffffffffffffff\n)\n\n\n(ok simple? NAH TOO SIMPLE)\n~ffffffffffffffffffffffffffff\nfifp........................f\nfif###......................f\nfif#.#......................f\nfif###......................f\nfif##.......................f\nfif##.......................f\nfif##.......................f\nfif#........................f\nfif##.......................f\nfif##.......................f\nfif##.......................f\nfif##..#.#..................f\nfif##.####..................f\nfif#####.#..................f\nfifgg#g#g#ggggggggggggggggggf\nfif..#.###..................f\nfif......##.................f\nfif......##.................f\nfif......#.#................f\nfif......####...............f\nfif.......#.#...............f\nfbf.......#.#...............f\nfif.....######..............f\nfbf.....#..#####.##.........f\nfif.........#.####..........f\nfffffffffffffffffffffffffffff\n\n\n\n\n(alien slug attack!)\nmessage level 6 of 10 : Alien Slug Attack\n~fffffffffffffffff\nfifp...####......f\nfbf....#####.....f\nfbf...##..##.....f\nfbf....#..##.....f\nfifgggggggg####ggf\nffffffffffffffffff\n\n\n\n\n\n(decent - middle-hard? -- too mich like final level? (difficulty/appearance-wise?)\n~fffffffffffffff\nfif#p..........f\nfif#...........f\nfif##..........f\nfif#...........f\nfbf###.........f\nfif#.#.........f\nfbf.##.#.......f\nfif..###.......f\nfbf...###......f\nfif....#...#...f\nfbfgggg######ggf\nfif......##....f\nffffffffffffffff\n)\n\n\n\n(fun to find the right points? MEH)\n~ffffffffffffffffffff\nfifp................f\nfif.................f\nfif...............##f\nfif................#f\nfif...............##f\nfif...............##f\nfif.............####f\nfif................#f\nfif..............###f\nfif...............##f\nfif................#f\nfif.........#.#...##f\nfif.........#.####.#f\nfif........####.####f\nfif............##...f\nfifgggggggg#######ggf\nfif........#..#.....f\nfif........######...f\nfif.........##......f\nfbf........##.......f\nfif.....####........f\nfbf......#..........f\nfif......#..........f\nfbf....###..........f\nfif.#######.........f\nfffffffffffffffffffff\n\n\n\n\n\n(wie ein gebäude aus - ziemlich einfach)\n~fffffffffffff\nfifp........#f\nfif........##f\nfif........##f\nfif........##f\nfbf.........#f\nfif.........#f\nfbfgggggggg##f\nfif......###.f\nfbf.......##.f\nfif....####..f\nffffffffffffff\n\n\n\n\n\n\n(nice/ok!)\n~ffffffffff\nfifp.....#f\nfbf.....##f\nfif....###f\nfbf....#.#f\nfif....###f\nfbfggg###gf\nfif..##...f\nfffffffffff\n\n\nmessage level 4 of 10 : Duck Tree\n(ducktree!)\n~fffffffffff\nfifp.##..##f\nfif.###.###f\nfbf...##.#.f\nfif..###.#.f\nfbf....####f\nfifgggg##ggf\nfbf....#...f\nfif....#...f\nffffffffffff\n\n\n\n)\n", [2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 0, 4, 2, 2, 4, 4, 0, "restart", 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4], "background exploding fenster tl:0,background fenster fenster_right:1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,background fenster:2,background fenster fenster_down:3,background inventar:4,4,4,4,4,4,4,4,4,background bang_schatten inventar:5,\n4,5,4,5,4,background fenster fenster_up:6,2,background fenster fenster_left fenster_right:7,7,7,7,7,7,7,\n7,7,7,7,7,7,7,7,2,3,background:8,8,background htarget:9,background bond_d wall:10,\nbackground bond_d bond_u landbackground wall:11,11,11,11,11,11,11,background bond_u landbackground wall:12,background landbackground wall:13,background bond_r landbackground wall:14,background landbackground:15,6,3,8,\n8,9,8,15,15,15,15,15,15,15,15,15,background bond_d bond_l landbackground wall:16,background bond_r bond_u landbackground wall:17,\n6,3,8,8,9,8,background bond_d landbackground wall:18,background bond_d bond_r bond_u landbackground wall:19,19,11,11,19,11,19,\n12,13,background bond_l bond_r landbackground wall:20,6,3,8,8,9,8,15,background bond_d bond_l bond_r landbackground wall:21,background bond_l bond_u landbackground wall:22,15,15,\nbackground bond_l landbackground wall:23,15,23,15,15,20,6,3,8,8,9,8,18,background bond_l bond_r bond_u landbackground wall:24,\n15,15,15,15,15,15,14,background bond_d bond_r landbackground wall:25,24,6,3,8,8,background htarget player_h:26,\n8,15,23,15,15,15,15,15,15,20,21,24,6,3,\n8,8,9,8,15,15,15,15,15,15,15,15,23,21,\n24,6,3,8,8,9,8,15,15,15,15,15,15,15,\n15,15,16,22,6,3,8,8,9,8,15,15,15,15,\n15,15,15,15,15,15,13,6,3,8,8,9,8,15,\n15,15,15,15,15,15,15,15,15,15,6,2,background fenster fenster_left:27,27,\n27,27,27,27,27,27,27,27,27,27,27,27,27,2,\n", 26, "1627892636599.9646"] ], [ - "BIAXIAL INVASION OF SATURN", - ["title BIAXIAL INVASION OF SATURN\nauthor increpare\nhomepage www.increpare.com\n\nnorepeat_action\n\nrun_rules_on_level_start\n\ncolor_palette 4\n\nbackground_color #540056\ntext_color #228f0a\n\n(uses https://github.com/increpare/Zersto-rungto generate levels)\n========\nOBJECTS\n========\n\nbackground\n#7a2f5d\n\nlandbackground\n#0b5359\n\n\nwall \n#3f2e3f #505352 lightgray\n00000\n01110\n01110\n01110\n00000\n\nplayer_h\npink\n.....\n..0..\n.000.\n..0..\n.....\n\n\nplayer_v\npink\n.....\n..0..\n.000.\n..0..\n.....\n\n\nfenster\n#540056\n\n\nfenster_up\n#4a083f lightblue\n00000\n.....\n.....\n.....\n.....\n\nfenster_down\ndarkblue #760070\n.....\n.....\n.....\n.....\n11111\n\nfenster_left\n#4a083f #760070\n1....\n1....\n1....\n1....\n1....\n\nfenster_right\n#4a083f\n....0\n....0\n....0\n....0\n....0\n\nhtarget\nlightgreen\n.....\n.....\n00000\n.....\n.....\n\n\nvtarget\nlightgreen\n..0..\n..0..\n..0..\n..0..\n..0..\n\ninventar\ndarkblue\n\nbang\n #289d69 #267400\n...0.\n..00.\n.010.\n.00..\n.0...\n\nbang_schatten\n#211121\n...0.\n..00.\n.0.0.\n.00..\n.0...\n\nbond_u\ndarkblue #505352 lightgray\n.111.\n.....\n.....\n.....\n.....\n\n\n\nbond_d\ndarkblue #505352 lightgray\n.....\n.....\n.....\n.....\n.111.\n\n\n\nbond_l\ndarkblue #505352 lightgray\n.....\n1....\n1....\n1....\n.....\n\n\n\nbond_r\ndarkblue #505352 lightgray\n.....\n....1\n....1\n....1\n.....\n\n\n\n\ntl\ntransparent\n\nexploding\ntransparent\n\nexplosion\n#267400 #228f0a\n.1.1.\n10.01\n..0..\n10.01\n.1.1.\n\nnofall\n#267400\n.0...\n.....\n.....\n.....\n.....\n\nfall\nlightblue\n.0...\n.....\n.....\n.....\n.....\n\n\nc1 1 \n#7a2f5d\n\nc2 2\n#0b5359\n\nc3 3\n#000000\n\nc4 4\n#000000 #ffffff\n00000\n01000\n00000\n00000\n00000\n\n=======\nLEGEND\n=======\n\nplayer = player_h or player_v\ntarget = htarget or vtarget\n\n. = Background\n# = wall\nP = Player_h\nf = fenster\n\ng = landbackground\n\nobstacle = wall\n~ = tl and fenster\ni = inventar\nb = bang and inventar\nbond = bond_u or bond_d or bond_l or bond_r\n\nfallblocker = wall or fenster\n\n=======\nSOUNDS\n=======\n\nsfx0 55915302 (bang)\nsfx1 90167907 (other agains)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nlandbackground, inventar\nwall\nbond_u\nbond_d\nbond_l\nbond_r\nexplosion\ntarget\nPlayer, fenster, bang,bang_schatten\nfenster_up\nfenster_down\nfenster_left\nfenster_right\ntl\nexploding\nnofall\nfall\nc1, c2, c3, c4\n\n======\nRULES\n======\n\n\nup [fenster | no fenster ]-> [ fenster fenster_up | ]\ndown [fenster | no fenster ]-> [ fenster fenster_down | ]\nleft [fenster | no fenster ]-> [ fenster fenster_left | ]\nright [fenster | no fenster ]-> [ fenster fenster_right | ]\n\n[ tl no exploding ] [bond]->[ tl ] [ ]\ndown [ tl no exploding ] [wall | wall]->[tl][ wall bond_d | wall bond_u ]\nright [ tl no exploding ] [wall | wall]->[tl][ wall bond_r | wall bond_l ]\n\n[tl]->[tl exploding]\n\ndown [ wall no bond_d | fallblocker ] -> [ wall nofall | fallblocker ]\n(floodfill)\nup [nofall bond_u | ] -> [ nofall bond_u | nofall ]\n+ down [nofall bond_d | ] -> [ nofall bond_d | nofall ]\n+ left [nofall bond_l | ] -> [ nofall bond_l | nofall ]\n+ right [nofall bond_r | ] -> [ nofall bond_r | nofall ]\n\n\ndown [ wall no nofall | no fallblocker ] -> [ wall fall | ]\n\nup [fall bond_u | ] -> [ fall bond_u | fall ]\n+ down [fall bond_d | ] -> [ fall bond_d | fall ]\n+ left [fall bond_l | ] -> [ fall bond_l | fall ]\n+ right [fall bond_r | ] -> [ fall bond_r | fall ]\n\n[fall wall]->[down wall] sfx1 again\n\n[fall]->[]\n[nofall]->[]\n\n[up wall bond ] -> [ up wall up bond ]\n+ [down wall bond ] -> [ down wall down bond ]\n+ [left wall bond ] -> [ left wall left bond ]\n+ [right wall bond ] -> [ right wall right bond ]\n\n[target]->[]\n\n\n\n[up player_h ] -> [ up player_v ]\n[down player_h ] -> [ down player_v ]\n[left player_v ] -> [ left player_h ]\n[right player_v ] -> [ right player_h ]\n\n\nright left down [ landbackground | no landbackground no fenster ] -> [ landbackground | landbackground no fenster ]\n\n\n[player_h ] -> [ player_h htarget ]\n[player_v ] -> [ player_v vtarget ]\n\nhorizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nvertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\nup [ bond_u | explosion ] -> [ | explosion ]\ndown [ bond_d | explosion ] -> [ | explosion ]\nleft [ bond_l | explosion ] -> [ | explosion ]\nright [ bond_r | explosion ] -> [ | explosion ]\n\n[explosion wall ] -> [ no bond ] sfx1 again\n\n[explosion ] -> [ ] again\n\n[action player ] [bang] -> [ player ] [ action bang_schatten ]\n\n[action bang_schatten ] [ target ]-> [ action bang_schatten ] [ explosion ] sfx0 again\n\n\nlate [target]->[]\n\nlate [player_h ] -> [ player_h htarget ]\nlate [player_v ] -> [ player_v vtarget ]\n\nlate horizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nlate vertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll wall on landbackground \n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 12\n\nmessage We have to damage the structures enough that they fall back into the toxic blue atmosphere.\n\nmessage We only have two attacks to do it in.\n\n\n(OK)\n~ffffffff\nfifp..#.f\nfbf.#.##f\nfif.###.f\nfbf#g###f\nfif###.#f\nfffffffff\n\n\nmessage Level 2 von 12\n\n\n(OK)\n~fffffffff\nfif##p.##f\nfif##...#f\nfbf.#..##f\nfifg##gg#f\nfbf..####f\nfif...###f\nffffffffff\n\n\nmessage Level 3 von 12\n\n\n(okish)\n~ffffffffff\nfif###p..#f\nfif#.#...#f\nfif#.#...#f\nfbf#..#.##f\nfif#gg###gf\nfbf##.##..f\nfif.###...f\nfffffffffff\n\n\nmessage Level 4 von 12\n\n\n\n(ok--? easyish?)\n~ffffffffff\nfif#p#..##f\nfif#.##.##f\nfif#.#.#.#f\nfbf#####g#f\nfif.#..###f\nfbf#####.#f\nfif...##..f\nfffffffffff\n\n\nmessage Level 5 von 12\n\n\n\n(ok! P EASY)\n~ffffffffff\nfifp######f\nfif##.##.#f\nfif....#.#f\nfbfgg#g###f\nfif###.##.f\nfbf#.#.##.f\nfif######.f\nfffffffffff\n\n\nmessage Level 6 von 12\n\n\n\n(ok also! p easy?)\n~ffffffffff\nfif#p#...#f\nfif#.##..#f\nfif####..#f\nfbf..#..##f\nfifg##g##gf\nfbf.####..f\nfif.#.#...f\nfffffffffff\n\n\nmessage Level 7 von 12\n\n\n\n(ok, pretty easy but not 100% easy)\n~fffffffffff\nfif#p......f\nfif##......f\nfif#.......f\nfif###.....f\nfbf.##...#.f\nfifg##gg###f\nfbf..####..f\nfif....#...f\nffffffffffff\n\n\nmessage Level 8 von 12\n\n\n(tricky?)\n~fffffffffffff\nfif#####p#...f\nfif##.#.##...f\nfif#..###....f\nfif....###.#.f\nfif.....#.###f\nfif.....###..f\nfbfgggg##ggggf\nfif.....#....f\nfbf.....#....f\nfif....###...f\nffffffffffffff\n\n\nmessage Level 9 von 12\n\n\n\n(medium OK)\n~fffffffffffff\nfif##########f\nfif#p#.#..#.#f\nfif#.##......f\nfif#g##ggggggf\nfif#.###.....f\nfif#.#....#..f\nfbf#.###..###f\nfif#.#.####.#f\nfbf##.##...##f\nfif.###.####.f\nffffffffffffff\n\n\nmessage Level 10 von 12\n\n\n\n(not too hard?)\n~fffffffffffffff\nfif###p.....###f\nfif##......##.#f\nfif##.......#.#f\nfif#gggggggg#g#f\nfif##......####f\nfif.##........#f\nfif##.#....####f\nfif.####......#f\nfbf..#.#.#.####f\nfif....#####..#f\nfbf......#..###f\nfif....######.#f\nffffffffffffffff\n\n\nmessage Level 11 von 12\n\n(ok? HARD NICE)\n~fffffffffffff\nfif####p...##f\nfif#.##...###f\nfif#.####...#f\nfif###g##g#g#f\nfif.##..#.#.#f\nfif..#.##.#.#f\nfbf...#.#.#.#f\nfif...#.#####f\nfbf..#####..#f\nfif.....#...#f\nffffffffffffff\n\n\nmessage Level 12 von 12\n\n(middle-hard, and nice!)\n~fffffffffffffffffffffff\nfif############p##.#...f\nfif#.#.#.#.#..#.#####..f\nfif#.#.#.#.#######.#...f\nfif#g#g#g###gg#gg##gg#gf\nfif#.#.#.#........#####f\nfif#.#.#####.......#.##f\nfif#.#.##..##........##f\nfif#.#.##..............f\nfif#.#.##..............f\nfif#.#.##..............f\nfif#.#.###.............f\nfif#.#.#.###...........f\nfif#.#.#.#.##..........f\nfif#.#.####............f\nfif####...#....#..#....f\nfif##.#####...#####....f\nfbf##.#..##.###.#......f\nfif.#....####.##.......f\nfbf##.......##.##......f\nfif.#.......#####......f\nffffffffffffffffffffffff\n\n\n\nmessage The people of Saturn are finally free! \n\nmessage Long live Saturn!\n\n3333333333333333\n3333331111333333\n3333311111133333\n3332211111122333\n3223311111133223\n3332222222222333\n3333311111133333\n3333331111333333\n3333333333333333\n\n\n3333333333333333333333\n3333333333333333333333\n3333333333333333333333\n3333333333333333333333\n3333333331111333333333\n3333333311111133333333\n3333332211111122333333\n3333223311111133223333\n3333332222222222333333\n3333333311111133333333\n3333333331111333333333\n3333333333333333333333\n3333333333333333333333\n3333333333333333333333\n3333333333333333333333\n\n\n\n\n\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333334333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333311113333333333333333333333333\n333333333333333333333333111111333333333333333333333333\n333333333333333333333322111111223333333333333333333333\n333333333333333333332233111111332233333333333333333333\n333333333333333333333322222222223333333333333333333333\n333333333333333333333333111111333333333333333333333333\n333333333333333333333333311113333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333343333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n\n\n\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333334333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333343333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333343333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333334333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333331111333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333311111133333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333332211111122333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333223311111133223333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333332222222222333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333311111133333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333331111333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333334333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333334333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333334333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333433333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n\n\nmessage THE END\n\n(\n(======\n\nHARD UNSOLVED\n)\n\n\n\n\n(hard! NOT YET SOLVED)\n~fffffffffffff\nfif#####p####f\nfif#.#.#.#..#f\nfif#.########f\nfif###g##ggg#f\nfif#.#.##.###f\nfif#.#.#....#f\nfbf######.###f\nfif.#..#.###.f\nfbf....###...f\nfif....##....f\nffffffffffffff\n\n(nah HARD NOT YET SOLVED)\n~fffffffffffff\nfif###p.#####f\nfif#.#..#.#.#f\nfif#.##.##.##f\nfif###ggggg##f\nfif#.##...#.#f\nfif###.#..#.#f\nfbf..###..###f\nfif###..#...#f\nfbf##########f\nfif#....###..f\nffffffffffffff\n\n\n(hard, not solved)\n~fffffffffffffffffffffff\nfif#######p..........##f\nfif#.#.#.##...........#f\nfif#.#.#.###..........#f\nfif#.#.#.#.##.........#f\nfif#g#g#g####ggggggggg#f\nfif#.#.#.#...........##f\nfif#.#.###............#f\nfif#.#.#..............#f\nfif#.#.###.........#..#f\nfif#.#.#.##.......##.##f\nfif#.#.##........#.####f\nfif#.###.........####..f\nfif####.##......#...###f\nfif...#####.....#######f\nfif###..#.#..........#.f\nfif########....#######.f\nfbf.#..#..###..#..#....f\nfif.....##.#....###....f\nfbf......###..#####....f\nfif.......#####........f\nffffffffffffffffffffffff\n\n\n\n~fffffffffffffffffffffffffffffffff\nfif.............................#f\nfif.............................#f\nfif............................##f\nfif.............................#f\nfif............................##f\nfif..........................#.##f\nfif..........................####f\nfif........................###.##f\nfif........................#.#.##f\nfif........................#.#.##f\nfif.................p......#.#.##f\nfif.....................#..#.##.#f\nfif....................###.##.#.#f\nfifggggggggggggggggg#######g#g#g#f\nfif..................#.#..#.#.###f\nfif...................###.#.#.#.#f\nfif..................##.#.#######f\nfif.................#.#.#.#..#.##f\nfif................##.#.######.#.f\nfif...............#.#.#.##..##...f\nfif..............####.###........f\nfif.......##.#....#.#.#..........f\nfif......#.#.##...#.####.........f\nfif..########.###.####...........f\nfif.......#.#.#.###..............f\nfif.........#####.###............f\nfbf............##..#.............f\nfif...............##.............f\nfbf.............##.###...........f\nfif.............#####............f\nffffffffffffffffffffffffffffffffff\n\n\n\n\n(=========\n\n\tUNACCOUNTED FOR\n \n)\n\n\n\n((too?) EASY)\n~fffffffffffff\nfif#p.#######f\nfif###..####.f\nfif.#####....f\nfif.....##...f\nfif.....#....f\nfif.....#....f\nfbf..#..#....f\nfifgg####ggggf\nfbf.....##...f\nfif.....#....f\nffffffffffffff\n\n(too easy)\n~fffffff\nfbfp###f\nfif..#.f\nfbf###.f\nfif#g##f\nffffffff\n\n\n\n\n\n\n\n\n\n(ok but h-only solution)\n~fffffffffff\nfif#p......f\nfif###.....f\nfbf..##....f\nfif...#..#.f\nfbf...####.f\nfif......##f\nfbf....####f\nfifggg##gggf\nffffffffffff\n\n(ok easy)\n~ffffffff\nfifp...#f\nfbf....#f\nfbf#.###f\nfbf##..#f\nfif.####f\nfffffffff\n\n(good tricky!)\n~ffffffff\nfifp#.##f\nfbf.##.#f\nfbf.#.##f\nfbf.###.f\nfif###ggf\nfffffffff\n\n(h only solution :[ )\n~ffffffffff\nfif#p....#f\nfif#....##f\nfif#.....#f\nfbf#g#gg##f\nfif######.f\nfbf#.#####f\nfif...#..#f\nfffffffffff\n\n(h-only solution)\n~ffffffffff\nfif#p...##f\nfif#...#.#f\nfif#..####f\nfbf###..#.f\nfifg#####gf\nfbf..##...f\nfif..##...f\nfffffffffff\n\n\n\n\n\n\n\n\n\n\n\n(too hard?)\n~fffffffffffff\nfif####p#.###f\nfif#.#.###..#f\nfif#.####.###f\nfif#.#...#..#f\nfbf#g#ggg####f\nfif#.#...#...f\nfbf#.#...#...f\nfif#####.####f\nfbf.####.#...f\nfif##..#####.f\nffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n(solvable only with bla)\n~fffffffffffffffffffffff\nfifp...................f\nfif....................f\nfif.#..................f\nfif.##.................f\nfif###.................f\nfif##..................f\nfif##..................f\nfif####................f\nfif.####...............f\nfif....#...............f\nfif....##..............f\nfif.....#..............f\nfif.....##.............f\nfif......##............f\nfifggggg#g#ggggggggggggf\nfif.....#.#............f\nfbf.....#######........f\nfif......#.#.####......f\nfbf........#.#.........f\nfif.........##.........f\nffffffffffffffffffffffff\n\n\n\n\n\n\n\n\n\n(h-only solution but ok?)\n~fffffffffffffff\nfif#####p......f\nfif#.#.#####...f\nfif#.#.#.#.....f\nfif#g#g#gggggggf\nfif#.#.##......f\nfif#.#.#.......f\nfif#.#.##......f\nfif#.#.#.......f\nfbf#.#.##......f\nfif####.#......f\nfbf##.#####.###f\nfif...#..######f\nffffffffffffffff\n\n\n(easy)\n~fffffffffffffff\nfif##p......#.#f\nfif#.......####f\nfif#.......#.##f\nfif#.#.....##.#f\nfif#g###ggg####f\nfif#.##......##f\nfif#.##...####.f\nfif####......#.f\nfbf##.#.#######f\nfif...##.#..##.f\nfbf..######....f\nfif.....####...f\nffffffffffffffff\n\n\n(Easy)\n~fffffffffffffff\nfif#p........##f\nfif#.........##f\nfif#........###f\nfif#.........##f\nfif###ggggggg##f\nfif.#........##f\nfif####....##.#f\nfif..#.#....###f\nfbf..#####..##.f\nfif.....##.#.##f\nfbf......#####.f\nfif......#...#.f\nffffffffffffffff\n\n\n(ok, though has h-only solution)\n~fffffffffffffffffffffff\nfif####################f\nfif#p#.#.#.#.#.#..#.#.#f\nfif#.#.#.#.###.#..#.#.#f\nfif#g#g#g###g#gggg#g#ggf\nfif#.#.#.##.........#..f\nfif#.#.#.##............f\nfif#.#.#.#.##..........f\nfif#.#.#.###...........f\nfif#.#.#.#.............f\nfif#.#.#.#.............f\nfif#.#.#.###...........f\nfif#.#.#.#.##..........f\nfif#.#.#.#.#...........f\nfif#.#.#.#.............f\nfif#.#.#.##............f\nfif#.######............f\nfbf#.#....##...........f\nfif#.#####.#...........f\nfbf####.######.###.....f\nfif.....#...######.....f\nffffffffffffffffffffffff\n\n\n\n\n)\n",[2,4,2,2,2,2,3,4],"background exploding fenster tl:0,background fenster fenster_right:1,1,1,1,1,1,1,background fenster:2,background fenster fenster_down:3,background inventar:4,\n4,4,background bang_schatten inventar:5,4,5,4,background fenster fenster_up:6,2,background fenster fenster_left fenster_right:7,7,7,\n7,7,7,7,2,3,background:8,8,8,8,background landbackground:9,\nbackground htarget landbackground wall:10,background landbackground wall:11,6,3,8,8,8,8,9,background htarget landbackground:12,9,\n6,3,8,8,background bond_d wall:13,background bond_d bond_r bond_u wall:14,background bond_d bond_r bond_u landbackground wall:15,background bond_d bond_u htarget landbackground player_h wall:16,background bond_u landbackground wall:17,6,3,\n8,8,8,background bond_d bond_l wall:18,background bond_l bond_u landbackground wall:19,12,11,6,3,8,8,\n8,8,9,12,background bond_r landbackground wall:20,6,3,8,8,8,8,\n9,background bond_d bond_r htarget landbackground wall:21,19,6,3,8,8,13,background bond_d bond_u wall:22,background bond_d bond_u landbackground wall:23,background bond_l bond_u htarget landbackground wall:24,\n9,6,2,background fenster fenster_left:25,25,25,25,25,25,25,2,\n",13,"1627892668524.9329"] + "BIAXIAL INVASION OF SATURN", + ["title BIAXIAL INVASION OF SATURN\nauthor increpare\nhomepage www.increpare.com\n\nnorepeat_action\n\nrun_rules_on_level_start\n\ncolor_palette 4\n\nbackground_color #540056\ntext_color #228f0a\n\n(uses https://github.com/increpare/Zersto-rungto generate levels)\n========\nOBJECTS\n========\n\nbackground\n#7a2f5d\n\nlandbackground\n#0b5359\n\n\nwall \n#3f2e3f #505352 lightgray\n00000\n01110\n01110\n01110\n00000\n\nplayer_h\npink\n.....\n..0..\n.000.\n..0..\n.....\n\n\nplayer_v\npink\n.....\n..0..\n.000.\n..0..\n.....\n\n\nfenster\n#540056\n\n\nfenster_up\n#4a083f lightblue\n00000\n.....\n.....\n.....\n.....\n\nfenster_down\ndarkblue #760070\n.....\n.....\n.....\n.....\n11111\n\nfenster_left\n#4a083f #760070\n1....\n1....\n1....\n1....\n1....\n\nfenster_right\n#4a083f\n....0\n....0\n....0\n....0\n....0\n\nhtarget\nlightgreen\n.....\n.....\n00000\n.....\n.....\n\n\nvtarget\nlightgreen\n..0..\n..0..\n..0..\n..0..\n..0..\n\ninventar\ndarkblue\n\nbang\n #289d69 #267400\n...0.\n..00.\n.010.\n.00..\n.0...\n\nbang_schatten\n#211121\n...0.\n..00.\n.0.0.\n.00..\n.0...\n\nbond_u\ndarkblue #505352 lightgray\n.111.\n.....\n.....\n.....\n.....\n\n\n\nbond_d\ndarkblue #505352 lightgray\n.....\n.....\n.....\n.....\n.111.\n\n\n\nbond_l\ndarkblue #505352 lightgray\n.....\n1....\n1....\n1....\n.....\n\n\n\nbond_r\ndarkblue #505352 lightgray\n.....\n....1\n....1\n....1\n.....\n\n\n\n\ntl\ntransparent\n\nexploding\ntransparent\n\nexplosion\n#267400 #228f0a\n.1.1.\n10.01\n..0..\n10.01\n.1.1.\n\nnofall\n#267400\n.0...\n.....\n.....\n.....\n.....\n\nfall\nlightblue\n.0...\n.....\n.....\n.....\n.....\n\n\nc1 1 \n#7a2f5d\n\nc2 2\n#0b5359\n\nc3 3\n#000000\n\nc4 4\n#000000 #ffffff\n00000\n01000\n00000\n00000\n00000\n\n=======\nLEGEND\n=======\n\nplayer = player_h or player_v\ntarget = htarget or vtarget\n\n. = Background\n# = wall\nP = Player_h\nf = fenster\n\ng = landbackground\n\nobstacle = wall\n~ = tl and fenster\ni = inventar\nb = bang and inventar\nbond = bond_u or bond_d or bond_l or bond_r\n\nfallblocker = wall or fenster\n\n=======\nSOUNDS\n=======\n\nsfx0 55915302 (bang)\nsfx1 90167907 (other agains)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nlandbackground, inventar\nwall\nbond_u\nbond_d\nbond_l\nbond_r\nexplosion\ntarget\nPlayer, fenster, bang,bang_schatten\nfenster_up\nfenster_down\nfenster_left\nfenster_right\ntl\nexploding\nnofall\nfall\nc1, c2, c3, c4\n\n======\nRULES\n======\n\n\nup [fenster | no fenster ]-> [ fenster fenster_up | ]\ndown [fenster | no fenster ]-> [ fenster fenster_down | ]\nleft [fenster | no fenster ]-> [ fenster fenster_left | ]\nright [fenster | no fenster ]-> [ fenster fenster_right | ]\n\n[ tl no exploding ] [bond]->[ tl ] [ ]\ndown [ tl no exploding ] [wall | wall]->[tl][ wall bond_d | wall bond_u ]\nright [ tl no exploding ] [wall | wall]->[tl][ wall bond_r | wall bond_l ]\n\n[tl]->[tl exploding]\n\ndown [ wall no bond_d | fallblocker ] -> [ wall nofall | fallblocker ]\n(floodfill)\nup [nofall bond_u | ] -> [ nofall bond_u | nofall ]\n+ down [nofall bond_d | ] -> [ nofall bond_d | nofall ]\n+ left [nofall bond_l | ] -> [ nofall bond_l | nofall ]\n+ right [nofall bond_r | ] -> [ nofall bond_r | nofall ]\n\n\ndown [ wall no nofall | no fallblocker ] -> [ wall fall | ]\n\nup [fall bond_u | ] -> [ fall bond_u | fall ]\n+ down [fall bond_d | ] -> [ fall bond_d | fall ]\n+ left [fall bond_l | ] -> [ fall bond_l | fall ]\n+ right [fall bond_r | ] -> [ fall bond_r | fall ]\n\n[fall wall]->[down wall] sfx1 again\n\n[fall]->[]\n[nofall]->[]\n\n[up wall bond ] -> [ up wall up bond ]\n+ [down wall bond ] -> [ down wall down bond ]\n+ [left wall bond ] -> [ left wall left bond ]\n+ [right wall bond ] -> [ right wall right bond ]\n\n[target]->[]\n\n\n\n[up player_h ] -> [ up player_v ]\n[down player_h ] -> [ down player_v ]\n[left player_v ] -> [ left player_h ]\n[right player_v ] -> [ right player_h ]\n\n\nright left down [ landbackground | no landbackground no fenster ] -> [ landbackground | landbackground no fenster ]\n\n\n[player_h ] -> [ player_h htarget ]\n[player_v ] -> [ player_v vtarget ]\n\nhorizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nvertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\nup [ bond_u | explosion ] -> [ | explosion ]\ndown [ bond_d | explosion ] -> [ | explosion ]\nleft [ bond_l | explosion ] -> [ | explosion ]\nright [ bond_r | explosion ] -> [ | explosion ]\n\n[explosion wall ] -> [ no bond ] sfx1 again\n\n[explosion ] -> [ ] again\n\n[action player ] [bang] -> [ player ] [ action bang_schatten ]\n\n[action bang_schatten ] [ target ]-> [ action bang_schatten ] [ explosion ] sfx0 again\n\n\nlate [target]->[]\n\nlate [player_h ] -> [ player_h htarget ]\nlate [player_v ] -> [ player_v vtarget ]\n\nlate horizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nlate vertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll wall on landbackground \n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 12\n\nmessage We have to damage the structures enough that they fall back into the toxic blue atmosphere.\n\nmessage We only have two attacks to do it in.\n\n\n(OK)\n~ffffffff\nfifp..#.f\nfbf.#.##f\nfif.###.f\nfbf#g###f\nfif###.#f\nfffffffff\n\n\nmessage Level 2 von 12\n\n\n(OK)\n~fffffffff\nfif##p.##f\nfif##...#f\nfbf.#..##f\nfifg##gg#f\nfbf..####f\nfif...###f\nffffffffff\n\n\nmessage Level 3 von 12\n\n\n(okish)\n~ffffffffff\nfif###p..#f\nfif#.#...#f\nfif#.#...#f\nfbf#..#.##f\nfif#gg###gf\nfbf##.##..f\nfif.###...f\nfffffffffff\n\n\nmessage Level 4 von 12\n\n\n\n(ok--? easyish?)\n~ffffffffff\nfif#p#..##f\nfif#.##.##f\nfif#.#.#.#f\nfbf#####g#f\nfif.#..###f\nfbf#####.#f\nfif...##..f\nfffffffffff\n\n\nmessage Level 5 von 12\n\n\n\n(ok! P EASY)\n~ffffffffff\nfifp######f\nfif##.##.#f\nfif....#.#f\nfbfgg#g###f\nfif###.##.f\nfbf#.#.##.f\nfif######.f\nfffffffffff\n\n\nmessage Level 6 von 12\n\n\n\n(ok also! p easy?)\n~ffffffffff\nfif#p#...#f\nfif#.##..#f\nfif####..#f\nfbf..#..##f\nfifg##g##gf\nfbf.####..f\nfif.#.#...f\nfffffffffff\n\n\nmessage Level 7 von 12\n\n\n\n(ok, pretty easy but not 100% easy)\n~fffffffffff\nfif#p......f\nfif##......f\nfif#.......f\nfif###.....f\nfbf.##...#.f\nfifg##gg###f\nfbf..####..f\nfif....#...f\nffffffffffff\n\n\nmessage Level 8 von 12\n\n\n(tricky?)\n~fffffffffffff\nfif#####p#...f\nfif##.#.##...f\nfif#..###....f\nfif....###.#.f\nfif.....#.###f\nfif.....###..f\nfbfgggg##ggggf\nfif.....#....f\nfbf.....#....f\nfif....###...f\nffffffffffffff\n\n\nmessage Level 9 von 12\n\n\n\n(medium OK)\n~fffffffffffff\nfif##########f\nfif#p#.#..#.#f\nfif#.##......f\nfif#g##ggggggf\nfif#.###.....f\nfif#.#....#..f\nfbf#.###..###f\nfif#.#.####.#f\nfbf##.##...##f\nfif.###.####.f\nffffffffffffff\n\n\nmessage Level 10 von 12\n\n\n\n(not too hard?)\n~fffffffffffffff\nfif###p.....###f\nfif##......##.#f\nfif##.......#.#f\nfif#gggggggg#g#f\nfif##......####f\nfif.##........#f\nfif##.#....####f\nfif.####......#f\nfbf..#.#.#.####f\nfif....#####..#f\nfbf......#..###f\nfif....######.#f\nffffffffffffffff\n\n\nmessage Level 11 von 12\n\n(ok? HARD NICE)\n~fffffffffffff\nfif####p...##f\nfif#.##...###f\nfif#.####...#f\nfif###g##g#g#f\nfif.##..#.#.#f\nfif..#.##.#.#f\nfbf...#.#.#.#f\nfif...#.#####f\nfbf..#####..#f\nfif.....#...#f\nffffffffffffff\n\n\nmessage Level 12 von 12\n\n(middle-hard, and nice!)\n~fffffffffffffffffffffff\nfif############p##.#...f\nfif#.#.#.#.#..#.#####..f\nfif#.#.#.#.#######.#...f\nfif#g#g#g###gg#gg##gg#gf\nfif#.#.#.#........#####f\nfif#.#.#####.......#.##f\nfif#.#.##..##........##f\nfif#.#.##..............f\nfif#.#.##..............f\nfif#.#.##..............f\nfif#.#.###.............f\nfif#.#.#.###...........f\nfif#.#.#.#.##..........f\nfif#.#.####............f\nfif####...#....#..#....f\nfif##.#####...#####....f\nfbf##.#..##.###.#......f\nfif.#....####.##.......f\nfbf##.......##.##......f\nfif.#.......#####......f\nffffffffffffffffffffffff\n\n\n\nmessage The people of Saturn are finally free! \n\nmessage Long live Saturn!\n\n3333333333333333\n3333331111333333\n3333311111133333\n3332211111122333\n3223311111133223\n3332222222222333\n3333311111133333\n3333331111333333\n3333333333333333\n\n\n3333333333333333333333\n3333333333333333333333\n3333333333333333333333\n3333333333333333333333\n3333333331111333333333\n3333333311111133333333\n3333332211111122333333\n3333223311111133223333\n3333332222222222333333\n3333333311111133333333\n3333333331111333333333\n3333333333333333333333\n3333333333333333333333\n3333333333333333333333\n3333333333333333333333\n\n\n\n\n\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333334333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333311113333333333333333333333333\n333333333333333333333333111111333333333333333333333333\n333333333333333333333322111111223333333333333333333333\n333333333333333333332233111111332233333333333333333333\n333333333333333333333322222222223333333333333333333333\n333333333333333333333333111111333333333333333333333333\n333333333333333333333333311113333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333343333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n\n\n\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333334333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333343333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333343333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333334333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333331111333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333311111133333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333332211111122333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333223311111133223333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333332222222222333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333311111133333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333331111333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333334333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333334333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333334333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333433333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n\n\nmessage THE END\n\n(\n(======\n\nHARD UNSOLVED\n)\n\n\n\n\n(hard! NOT YET SOLVED)\n~fffffffffffff\nfif#####p####f\nfif#.#.#.#..#f\nfif#.########f\nfif###g##ggg#f\nfif#.#.##.###f\nfif#.#.#....#f\nfbf######.###f\nfif.#..#.###.f\nfbf....###...f\nfif....##....f\nffffffffffffff\n\n(nah HARD NOT YET SOLVED)\n~fffffffffffff\nfif###p.#####f\nfif#.#..#.#.#f\nfif#.##.##.##f\nfif###ggggg##f\nfif#.##...#.#f\nfif###.#..#.#f\nfbf..###..###f\nfif###..#...#f\nfbf##########f\nfif#....###..f\nffffffffffffff\n\n\n(hard, not solved)\n~fffffffffffffffffffffff\nfif#######p..........##f\nfif#.#.#.##...........#f\nfif#.#.#.###..........#f\nfif#.#.#.#.##.........#f\nfif#g#g#g####ggggggggg#f\nfif#.#.#.#...........##f\nfif#.#.###............#f\nfif#.#.#..............#f\nfif#.#.###.........#..#f\nfif#.#.#.##.......##.##f\nfif#.#.##........#.####f\nfif#.###.........####..f\nfif####.##......#...###f\nfif...#####.....#######f\nfif###..#.#..........#.f\nfif########....#######.f\nfbf.#..#..###..#..#....f\nfif.....##.#....###....f\nfbf......###..#####....f\nfif.......#####........f\nffffffffffffffffffffffff\n\n\n\n~fffffffffffffffffffffffffffffffff\nfif.............................#f\nfif.............................#f\nfif............................##f\nfif.............................#f\nfif............................##f\nfif..........................#.##f\nfif..........................####f\nfif........................###.##f\nfif........................#.#.##f\nfif........................#.#.##f\nfif.................p......#.#.##f\nfif.....................#..#.##.#f\nfif....................###.##.#.#f\nfifggggggggggggggggg#######g#g#g#f\nfif..................#.#..#.#.###f\nfif...................###.#.#.#.#f\nfif..................##.#.#######f\nfif.................#.#.#.#..#.##f\nfif................##.#.######.#.f\nfif...............#.#.#.##..##...f\nfif..............####.###........f\nfif.......##.#....#.#.#..........f\nfif......#.#.##...#.####.........f\nfif..########.###.####...........f\nfif.......#.#.#.###..............f\nfif.........#####.###............f\nfbf............##..#.............f\nfif...............##.............f\nfbf.............##.###...........f\nfif.............#####............f\nffffffffffffffffffffffffffffffffff\n\n\n\n\n(=========\n\n\tUNACCOUNTED FOR\n \n)\n\n\n\n((too?) EASY)\n~fffffffffffff\nfif#p.#######f\nfif###..####.f\nfif.#####....f\nfif.....##...f\nfif.....#....f\nfif.....#....f\nfbf..#..#....f\nfifgg####ggggf\nfbf.....##...f\nfif.....#....f\nffffffffffffff\n\n(too easy)\n~fffffff\nfbfp###f\nfif..#.f\nfbf###.f\nfif#g##f\nffffffff\n\n\n\n\n\n\n\n\n\n(ok but h-only solution)\n~fffffffffff\nfif#p......f\nfif###.....f\nfbf..##....f\nfif...#..#.f\nfbf...####.f\nfif......##f\nfbf....####f\nfifggg##gggf\nffffffffffff\n\n(ok easy)\n~ffffffff\nfifp...#f\nfbf....#f\nfbf#.###f\nfbf##..#f\nfif.####f\nfffffffff\n\n(good tricky!)\n~ffffffff\nfifp#.##f\nfbf.##.#f\nfbf.#.##f\nfbf.###.f\nfif###ggf\nfffffffff\n\n(h only solution :[ )\n~ffffffffff\nfif#p....#f\nfif#....##f\nfif#.....#f\nfbf#g#gg##f\nfif######.f\nfbf#.#####f\nfif...#..#f\nfffffffffff\n\n(h-only solution)\n~ffffffffff\nfif#p...##f\nfif#...#.#f\nfif#..####f\nfbf###..#.f\nfifg#####gf\nfbf..##...f\nfif..##...f\nfffffffffff\n\n\n\n\n\n\n\n\n\n\n\n(too hard?)\n~fffffffffffff\nfif####p#.###f\nfif#.#.###..#f\nfif#.####.###f\nfif#.#...#..#f\nfbf#g#ggg####f\nfif#.#...#...f\nfbf#.#...#...f\nfif#####.####f\nfbf.####.#...f\nfif##..#####.f\nffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n(solvable only with bla)\n~fffffffffffffffffffffff\nfifp...................f\nfif....................f\nfif.#..................f\nfif.##.................f\nfif###.................f\nfif##..................f\nfif##..................f\nfif####................f\nfif.####...............f\nfif....#...............f\nfif....##..............f\nfif.....#..............f\nfif.....##.............f\nfif......##............f\nfifggggg#g#ggggggggggggf\nfif.....#.#............f\nfbf.....#######........f\nfif......#.#.####......f\nfbf........#.#.........f\nfif.........##.........f\nffffffffffffffffffffffff\n\n\n\n\n\n\n\n\n\n(h-only solution but ok?)\n~fffffffffffffff\nfif#####p......f\nfif#.#.#####...f\nfif#.#.#.#.....f\nfif#g#g#gggggggf\nfif#.#.##......f\nfif#.#.#.......f\nfif#.#.##......f\nfif#.#.#.......f\nfbf#.#.##......f\nfif####.#......f\nfbf##.#####.###f\nfif...#..######f\nffffffffffffffff\n\n\n(easy)\n~fffffffffffffff\nfif##p......#.#f\nfif#.......####f\nfif#.......#.##f\nfif#.#.....##.#f\nfif#g###ggg####f\nfif#.##......##f\nfif#.##...####.f\nfif####......#.f\nfbf##.#.#######f\nfif...##.#..##.f\nfbf..######....f\nfif.....####...f\nffffffffffffffff\n\n\n(Easy)\n~fffffffffffffff\nfif#p........##f\nfif#.........##f\nfif#........###f\nfif#.........##f\nfif###ggggggg##f\nfif.#........##f\nfif####....##.#f\nfif..#.#....###f\nfbf..#####..##.f\nfif.....##.#.##f\nfbf......#####.f\nfif......#...#.f\nffffffffffffffff\n\n\n(ok, though has h-only solution)\n~fffffffffffffffffffffff\nfif####################f\nfif#p#.#.#.#.#.#..#.#.#f\nfif#.#.#.#.###.#..#.#.#f\nfif#g#g#g###g#gggg#g#ggf\nfif#.#.#.##.........#..f\nfif#.#.#.##............f\nfif#.#.#.#.##..........f\nfif#.#.#.###...........f\nfif#.#.#.#.............f\nfif#.#.#.#.............f\nfif#.#.#.###...........f\nfif#.#.#.#.##..........f\nfif#.#.#.#.#...........f\nfif#.#.#.#.............f\nfif#.#.#.##............f\nfif#.######............f\nfbf#.#....##...........f\nfif#.#####.#...........f\nfbf####.######.###.....f\nfif.....#...######.....f\nffffffffffffffffffffffff\n\n\n\n\n)\n", [2, 4, 2, 2, 2, 2, 3, 4], "background exploding fenster tl:0,background fenster fenster_right:1,1,1,1,1,1,1,background fenster:2,background fenster fenster_down:3,background inventar:4,\n4,4,background bang_schatten inventar:5,4,5,4,background fenster fenster_up:6,2,background fenster fenster_left fenster_right:7,7,7,\n7,7,7,7,2,3,background:8,8,8,8,background landbackground:9,\nbackground htarget landbackground wall:10,background landbackground wall:11,6,3,8,8,8,8,9,background htarget landbackground:12,9,\n6,3,8,8,background bond_d wall:13,background bond_d bond_r bond_u wall:14,background bond_d bond_r bond_u landbackground wall:15,background bond_d bond_u htarget landbackground player_h wall:16,background bond_u landbackground wall:17,6,3,\n8,8,8,background bond_d bond_l wall:18,background bond_l bond_u landbackground wall:19,12,11,6,3,8,8,\n8,8,9,12,background bond_r landbackground wall:20,6,3,8,8,8,8,\n9,background bond_d bond_r htarget landbackground wall:21,19,6,3,8,8,13,background bond_d bond_u wall:22,background bond_d bond_u landbackground wall:23,background bond_l bond_u htarget landbackground wall:24,\n9,6,2,background fenster fenster_left:25,25,25,25,25,25,25,2,\n", 13, "1627892668524.9329"] ], [ - "sum three horizontally to 8!", - ["title sum three horizontally to 8!\nauthor increpare\nhomepage www.increpare.com\ncolor_palette 1\nbackground_color darkblue\ntext_color pink\n\n(anderer Quellcode für Level-Generation usw kann man hier finden\nhttps://github.com/increpare/sum-three-horizontally-to-8-\n)\n\nrun_rules_on_level_start\n\nnorepeat_action\n\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nwall\ndarkgray\n\nspawn \ntransparent\n\nplayer p\nwhite\n00...\n0....\n.....\n0....\n00...\n\n\nplayer_r \nwhite\n...00\n....0\n.....\n....0\n...00\n\n\ndeadplayer \ngray\n00...\n0....\n.....\n0....\n00...\n\n\ndeadplayer_r \ngray\n...00\n....0\n.....\n....0\n...00\n\nk1 1\nred darkred\n11111\n11111\n11011\n11111\n11111\n\n\nk2 2\ngreen darkgreen\n11111\n11101\n11111\n10111\n11111\n\n\nk3 3\nyellow lightbrown\n11111\n11101\n11011\n10111\n11111\n\n\n\nk4 4\nbrown darkbrown\n11111\n10101\n11111\n10101\n11111\n\nk5 5\nblue darkblue\n11111\n10101\n11011\n10101\n11111\n\nk6 6\npink purple\n11111\n10101\n10101\n10101\n11111\n\nspawnfall\ntransparent\n\ndokill\nblack\n00000\n0...0\n0...0\n0...0\n00000\n\ndokill2\nblack\n00000\n00000\n00.00\n00000\n00000\n\ntanwas\npurple\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n? = spawn\nk = k1 or k2 or k3 or k4 or k5 or k6\nko = k1 or k2 or k3 or k4 or k5 or k6\n\nq = k1 and player\nw = k2 and player\ne = k3 and player\nr = k4 and player\nt = k5 and player\ny = k6 and player\n\n=======\nSOUNDS\n=======\n\nsfx0 29634507 (schieben)\nsfx1 93386709 (leeren)\nstartlevel 61503707\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nwall,k\nplayer, player_r\ndeadplayer, deadplayer_r\nspawn\nspawnfall\ndokill\ndokill2\ntanwas\n\n======\nRULES\n======\n\n\nright [player deadplayer | player_r deadplayer_r ] -> [stationary player deadplayer | stationary player_r deadplayer_r ]\n\n[player_r]->[]\n\n[dokill][player]->[dokill][player spawnfall]\n[dokill2][player]->[dokill2][player spawnfall]\n\n[action player ] -> sfx0\n\n\nright [action player |]->[action player deadplayer|deadplayer_r]\n\nright [action player k1|k1]->cancel\nright [action player k2|k2]->cancel\nright [action player k3|k3]->cancel\nright [action player k4|k4]->cancel\nright [action player k5|k5]->cancel\nright [action player k6|k6]->cancel\nright [action player no k|no k]->cancel\n\n[> player | wall]->cancel\nright [> player ||wall]->cancel\n\ndown [ k | no k ] -> [ > k | ] again\n[> k | wall ] -> [ k | wall ]\n[> k | stationary ko ] -> [ k | ko ]\n\n[> k ] [ player ] -> [ > k ] [ player spawnfall]\n\n[moving k] [player no spawnfall]-> [ moving k ] [ player spawnfall]\n\n[player] [? no k]->[player spawnfall] [ ? random k] again\n\nright [action player k | ko ]->[tanwas player spawnfall ko | k] again\nright [action player k | no ko ]->[tanwas player spawnfall| k] again\nright [action player no ko | k ]->[tanwas player spawnfall k | ] again\n\n\n\n[dokill2 k]->[] again\n\n[dokill k]->[dokill2 k] again\n\n\nhorizontal [player no spawnfall] [ k1 | k1 | k6 ] -> [player no spawnfall] [ k1 dokill | k1 dokill | k6 dokill ]\nhorizontal [player no spawnfall] [ k1 | k2 | k5 ] -> [player no spawnfall] [ k1 dokill | k2 dokill | k5 dokill ]\nhorizontal [player no spawnfall] [ k1 | k3 | k4 ] -> [player no spawnfall] [ k1 dokill | k3 dokill | k4 dokill ]\nhorizontal [player no spawnfall] [ k1 | k4 | k3 ] -> [player no spawnfall] [ k1 dokill | k4 dokill | k3 dokill ]\nhorizontal [player no spawnfall] [ k1 | k5 | k2 ] -> [player no spawnfall] [ k1 dokill | k5 dokill | k2 dokill ]\nright [player no spawnfall] [ k1 | k6 | k1 ] -> [player no spawnfall] [ k1 dokill | k6 dokill | k1 dokill ]\nhorizontal [player no spawnfall] [ k2 | k1 | k5 ] -> [player no spawnfall] [ k2 dokill | k1 dokill | k5 dokill ]\nhorizontal [player no spawnfall] [ k2 | k2 | k4 ] -> [player no spawnfall] [ k2 dokill | k2 dokill | k4 dokill ]\nhorizontal [player no spawnfall] [ k2 | k3 | k3 ] -> [player no spawnfall] [ k2 dokill | k3 dokill | k3 dokill ]\nright [player no spawnfall] [ k2 | k4 | k2 ] -> [player no spawnfall] [ k2 dokill | k4 dokill | k2 dokill ]\nhorizontal [player no spawnfall] [ k3 | k1 | k4 ] -> [player no spawnfall] [ k3 dokill | k1 dokill | k4 dokill ]\nright [player no spawnfall] [ k3 | k2 | k3 ] -> [player no spawnfall] [ k3 dokill | k2 dokill | k3 dokill ]\n\nright [dokill][deadplayer|deadplayer_r]->[dokill][|] sfx1\n\n\n[tanwas]->[]\n\n[dokill]->again\n\nlate [ spawnfall]->[]\n\nlate right [ player | ] -> [ player|player_r]\n\n\n==============\nWINCONDITIONS\n==============\n\nno k\n\n=======\nLEVELS\n=======\n\nmessage If three numbers horizontally sum to eight, they vanish.\nmessage Each level has a unique solution\n\n\nmessage World 1/3 - One Move\nmessage World 1/3 - Level 1/4\n\n#############\n#p24.2..23.3#\n#############\n\n\nmessage World 1/3 - Level 2/4\n\n\n########\n#p.133.#\n#142352#\n########\n\n(\nLösung: (2,1) \nVerhältnis3: 9.000000\nStückzahl: 9\nErfolg: 1\nGesamt: 8\nInteressante: 1\nLösungstiefe: 0\n)\n\nmessage World 1/3 - Level 3/4\n\n#######\n#p.2..#\n#.132.#\n#.4114#\n#.4243#\n#.4324#\n#######\n\n(\nLösung: (0,1) \nVerhältnis3: 16.000000\nStückzahl: 16\nErfolg: 1\nGesamt: 17\nInteressante: 1\nLösungstiefe: 0\n)\n\n\nmessage World 1/3 - Level 4/4\n\n###########\n#p.15631..#\n#.2121244.#\n###########\n\n(\nLösung: (3,1) \nVerhältnis3: 12.000000\nStückzahl: 12\nErfolg: 1\nGesamt: 13\nInteressante: 1\nLösungstiefe: 0\n)\n\n\n\nmessage World 2/3 - Medium Land\nmessage World 2/3 - Level 1/4\n\n(easy but not 100% trivial)\n######\n#p...#\n#.1..#\n#13.1#\n#61.4#\n######\n\n(\nLösung: (1,1) (2,3) \nVerhältnis2: 0.090909\nStückzahl: 7\nErfolg: 1\nGesamt: 32\nInteressante: 11\nLösungstiefe: 1\n)\n\n\nmessage World 2/3 - Level 2/4\n\n(not hard! but non-trivial)\n\n###########\n#p4.4.4.4.#\n#.2.2.2.2.#\n#42.2.2.24#\n###########\n\n(\nuh, edited/doubled!\nLösung: (1,0) (2,2) \nVerhältnis2: 0.043478\nStückzahl: 7\nErfolg: 1\nGesamt: 61\nInteressante: 23\nLösungstiefe: 1\n)\n\n\n\n\nmessage World 2/3 - Level 3/4\n\n\n\n(pleasant to solve!)\n\n############\n#p..1..1124#\n#22.41.6225#\n############\n\n(\nLösung: (2,1) (5,1) (6,1) (6,1) \nVerhältnis2: 0.040000\nStückzahl: 13\nErfolg: 1\nGesamt: 142\nInteressante: 25\nLösungstiefe: 3\n)\n\n\nmessage World 2/3 - Level 4/4\n\n(nice! not obvious but can be rationalized)\n######\n#p...#\n#33.3#\n#32.2#\n#23.3#\n######\n\n(\nLösung: (2,1) (2,3) (2,3) \nVerhältnis2: 0.047619\nStückzahl: 9\nErfolg: 1\nGesamt: 69\nInteressante: 21\nLösungstiefe: 2\n)\n\nmessage World 3/3 - HARD WORLD\nmessage World 3/3 - Level 1/4\n\n\n(hard, maybe for after)\n############\n#q.11.2....#\n#6.15.14513#\n############\n\n(\nLösung: (6,1) (4,0) (0,1) \nVerhältnis2: 0.013333\nStückzahl: 12\nErfolg: 1\nGesamt: 420\nInteressante: 75\nLösungstiefe: 2\n)\n\nmessage World 3/3 - Level 2/4\n\n\n(I could figure it out!)\n\n######\n#p3.4#\n#3114#\n#2442#\n######\n\n(\nLösung: (2,1) (0,2) (2,2) \nVerhältnis2: 0.033333\nStückzahl: 10\nErfolg: 1\nGesamt: 76\nInteressante: 30\nLösungstiefe: 2\n)\n\nmessage World 3/3 - Level 3/4\n\n\n(hardish. try solve again yourself later)\n##############\n#p4.3.11.4..4#\n#13.1441.61.3#\n##############\n\n(\nLösung: (1,1) (3,1) (7,1) (10,1) \nVerhältnis2: 0.002688\nStückzahl: 15\nErfolg: 1\nGesamt: 2585\nInteressante: 372\nLösungstiefe: 3\n)\n\n\nmessage World 3/3 - Level 4/4\n\n(I could figure it out :] ) \n\n######\n#w.2.#\n#3.32#\n#3.33#\n#2.33#\n######\n(\nLösung: (1,0) (0,3) (0,3) \nVerhältnis2: 0.013158\nStückzahl: 11\nErfolg: 1\nGesamt: 225\nInteressante: 76\nLösungstiefe: 2\n)\n\n\n\nmessage You won!\n\nmessage [On the next screen the goal is to remove as many sixes as possible. How many can you get down to? ]\n\n\n#####################\n#11.1.1p.111..1.1.11#\n#11.1.1..111..1.1.11#\n#11.1.1..111..1.1.11#\n#11.1.1..111..1.1.11#\n#11.1.1..111..1.1.11#\n#11.1.1..111..1.1.11#\n#1216.621666216.6211#\n#12166622616216.6211#\n#1112612166621666211#\n#1122222222222222211#\n#1126162612612666211#\n#1126162612612616211#\n#1126666612612616211#\n#1122222222222222211#\n#1111111111111111111#\n#1443441443441443441#\n#1443441443441443441#\n#1443441443441443441#\n#1443441443441443441#\n#1111111111111111111#\n#####################\n",[3,3,2,4],"background wall:0,0,0,0,0,0,\n0,background:1,1,background k3:2,2,0,\n0,1,1,2,background k2:3,0,\n0,1,background player:4,1,1,0,\n0,1,background player_r:5,3,2,0,\n0,0,0,0,0,0,\n",19,"1627893119768.2104"] + "sum three horizontally to 8!", + ["title sum three horizontally to 8!\nauthor increpare\nhomepage www.increpare.com\ncolor_palette 1\nbackground_color darkblue\ntext_color pink\n\n(anderer Quellcode für Level-Generation usw kann man hier finden\nhttps://github.com/increpare/sum-three-horizontally-to-8-\n)\n\nrun_rules_on_level_start\n\nnorepeat_action\n\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nwall\ndarkgray\n\nspawn \ntransparent\n\nplayer p\nwhite\n00...\n0....\n.....\n0....\n00...\n\n\nplayer_r \nwhite\n...00\n....0\n.....\n....0\n...00\n\n\ndeadplayer \ngray\n00...\n0....\n.....\n0....\n00...\n\n\ndeadplayer_r \ngray\n...00\n....0\n.....\n....0\n...00\n\nk1 1\nred darkred\n11111\n11111\n11011\n11111\n11111\n\n\nk2 2\ngreen darkgreen\n11111\n11101\n11111\n10111\n11111\n\n\nk3 3\nyellow lightbrown\n11111\n11101\n11011\n10111\n11111\n\n\n\nk4 4\nbrown darkbrown\n11111\n10101\n11111\n10101\n11111\n\nk5 5\nblue darkblue\n11111\n10101\n11011\n10101\n11111\n\nk6 6\npink purple\n11111\n10101\n10101\n10101\n11111\n\nspawnfall\ntransparent\n\ndokill\nblack\n00000\n0...0\n0...0\n0...0\n00000\n\ndokill2\nblack\n00000\n00000\n00.00\n00000\n00000\n\ntanwas\npurple\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n? = spawn\nk = k1 or k2 or k3 or k4 or k5 or k6\nko = k1 or k2 or k3 or k4 or k5 or k6\n\nq = k1 and player\nw = k2 and player\ne = k3 and player\nr = k4 and player\nt = k5 and player\ny = k6 and player\n\n=======\nSOUNDS\n=======\n\nsfx0 29634507 (schieben)\nsfx1 93386709 (leeren)\nstartlevel 61503707\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nwall,k\nplayer, player_r\ndeadplayer, deadplayer_r\nspawn\nspawnfall\ndokill\ndokill2\ntanwas\n\n======\nRULES\n======\n\n\nright [player deadplayer | player_r deadplayer_r ] -> [stationary player deadplayer | stationary player_r deadplayer_r ]\n\n[player_r]->[]\n\n[dokill][player]->[dokill][player spawnfall]\n[dokill2][player]->[dokill2][player spawnfall]\n\n[action player ] -> sfx0\n\n\nright [action player |]->[action player deadplayer|deadplayer_r]\n\nright [action player k1|k1]->cancel\nright [action player k2|k2]->cancel\nright [action player k3|k3]->cancel\nright [action player k4|k4]->cancel\nright [action player k5|k5]->cancel\nright [action player k6|k6]->cancel\nright [action player no k|no k]->cancel\n\n[> player | wall]->cancel\nright [> player ||wall]->cancel\n\ndown [ k | no k ] -> [ > k | ] again\n[> k | wall ] -> [ k | wall ]\n[> k | stationary ko ] -> [ k | ko ]\n\n[> k ] [ player ] -> [ > k ] [ player spawnfall]\n\n[moving k] [player no spawnfall]-> [ moving k ] [ player spawnfall]\n\n[player] [? no k]->[player spawnfall] [ ? random k] again\n\nright [action player k | ko ]->[tanwas player spawnfall ko | k] again\nright [action player k | no ko ]->[tanwas player spawnfall| k] again\nright [action player no ko | k ]->[tanwas player spawnfall k | ] again\n\n\n\n[dokill2 k]->[] again\n\n[dokill k]->[dokill2 k] again\n\n\nhorizontal [player no spawnfall] [ k1 | k1 | k6 ] -> [player no spawnfall] [ k1 dokill | k1 dokill | k6 dokill ]\nhorizontal [player no spawnfall] [ k1 | k2 | k5 ] -> [player no spawnfall] [ k1 dokill | k2 dokill | k5 dokill ]\nhorizontal [player no spawnfall] [ k1 | k3 | k4 ] -> [player no spawnfall] [ k1 dokill | k3 dokill | k4 dokill ]\nhorizontal [player no spawnfall] [ k1 | k4 | k3 ] -> [player no spawnfall] [ k1 dokill | k4 dokill | k3 dokill ]\nhorizontal [player no spawnfall] [ k1 | k5 | k2 ] -> [player no spawnfall] [ k1 dokill | k5 dokill | k2 dokill ]\nright [player no spawnfall] [ k1 | k6 | k1 ] -> [player no spawnfall] [ k1 dokill | k6 dokill | k1 dokill ]\nhorizontal [player no spawnfall] [ k2 | k1 | k5 ] -> [player no spawnfall] [ k2 dokill | k1 dokill | k5 dokill ]\nhorizontal [player no spawnfall] [ k2 | k2 | k4 ] -> [player no spawnfall] [ k2 dokill | k2 dokill | k4 dokill ]\nhorizontal [player no spawnfall] [ k2 | k3 | k3 ] -> [player no spawnfall] [ k2 dokill | k3 dokill | k3 dokill ]\nright [player no spawnfall] [ k2 | k4 | k2 ] -> [player no spawnfall] [ k2 dokill | k4 dokill | k2 dokill ]\nhorizontal [player no spawnfall] [ k3 | k1 | k4 ] -> [player no spawnfall] [ k3 dokill | k1 dokill | k4 dokill ]\nright [player no spawnfall] [ k3 | k2 | k3 ] -> [player no spawnfall] [ k3 dokill | k2 dokill | k3 dokill ]\n\nright [dokill][deadplayer|deadplayer_r]->[dokill][|] sfx1\n\n\n[tanwas]->[]\n\n[dokill]->again\n\nlate [ spawnfall]->[]\n\nlate right [ player | ] -> [ player|player_r]\n\n\n==============\nWINCONDITIONS\n==============\n\nno k\n\n=======\nLEVELS\n=======\n\nmessage If three numbers horizontally sum to eight, they vanish.\nmessage Each level has a unique solution\n\n\nmessage World 1/3 - One Move\nmessage World 1/3 - Level 1/4\n\n#############\n#p24.2..23.3#\n#############\n\n\nmessage World 1/3 - Level 2/4\n\n\n########\n#p.133.#\n#142352#\n########\n\n(\nLösung: (2,1) \nVerhältnis3: 9.000000\nStückzahl: 9\nErfolg: 1\nGesamt: 8\nInteressante: 1\nLösungstiefe: 0\n)\n\nmessage World 1/3 - Level 3/4\n\n#######\n#p.2..#\n#.132.#\n#.4114#\n#.4243#\n#.4324#\n#######\n\n(\nLösung: (0,1) \nVerhältnis3: 16.000000\nStückzahl: 16\nErfolg: 1\nGesamt: 17\nInteressante: 1\nLösungstiefe: 0\n)\n\n\nmessage World 1/3 - Level 4/4\n\n###########\n#p.15631..#\n#.2121244.#\n###########\n\n(\nLösung: (3,1) \nVerhältnis3: 12.000000\nStückzahl: 12\nErfolg: 1\nGesamt: 13\nInteressante: 1\nLösungstiefe: 0\n)\n\n\n\nmessage World 2/3 - Medium Land\nmessage World 2/3 - Level 1/4\n\n(easy but not 100% trivial)\n######\n#p...#\n#.1..#\n#13.1#\n#61.4#\n######\n\n(\nLösung: (1,1) (2,3) \nVerhältnis2: 0.090909\nStückzahl: 7\nErfolg: 1\nGesamt: 32\nInteressante: 11\nLösungstiefe: 1\n)\n\n\nmessage World 2/3 - Level 2/4\n\n(not hard! but non-trivial)\n\n###########\n#p4.4.4.4.#\n#.2.2.2.2.#\n#42.2.2.24#\n###########\n\n(\nuh, edited/doubled!\nLösung: (1,0) (2,2) \nVerhältnis2: 0.043478\nStückzahl: 7\nErfolg: 1\nGesamt: 61\nInteressante: 23\nLösungstiefe: 1\n)\n\n\n\n\nmessage World 2/3 - Level 3/4\n\n\n\n(pleasant to solve!)\n\n############\n#p..1..1124#\n#22.41.6225#\n############\n\n(\nLösung: (2,1) (5,1) (6,1) (6,1) \nVerhältnis2: 0.040000\nStückzahl: 13\nErfolg: 1\nGesamt: 142\nInteressante: 25\nLösungstiefe: 3\n)\n\n\nmessage World 2/3 - Level 4/4\n\n(nice! not obvious but can be rationalized)\n######\n#p...#\n#33.3#\n#32.2#\n#23.3#\n######\n\n(\nLösung: (2,1) (2,3) (2,3) \nVerhältnis2: 0.047619\nStückzahl: 9\nErfolg: 1\nGesamt: 69\nInteressante: 21\nLösungstiefe: 2\n)\n\nmessage World 3/3 - HARD WORLD\nmessage World 3/3 - Level 1/4\n\n\n(hard, maybe for after)\n############\n#q.11.2....#\n#6.15.14513#\n############\n\n(\nLösung: (6,1) (4,0) (0,1) \nVerhältnis2: 0.013333\nStückzahl: 12\nErfolg: 1\nGesamt: 420\nInteressante: 75\nLösungstiefe: 2\n)\n\nmessage World 3/3 - Level 2/4\n\n\n(I could figure it out!)\n\n######\n#p3.4#\n#3114#\n#2442#\n######\n\n(\nLösung: (2,1) (0,2) (2,2) \nVerhältnis2: 0.033333\nStückzahl: 10\nErfolg: 1\nGesamt: 76\nInteressante: 30\nLösungstiefe: 2\n)\n\nmessage World 3/3 - Level 3/4\n\n\n(hardish. try solve again yourself later)\n##############\n#p4.3.11.4..4#\n#13.1441.61.3#\n##############\n\n(\nLösung: (1,1) (3,1) (7,1) (10,1) \nVerhältnis2: 0.002688\nStückzahl: 15\nErfolg: 1\nGesamt: 2585\nInteressante: 372\nLösungstiefe: 3\n)\n\n\nmessage World 3/3 - Level 4/4\n\n(I could figure it out :] ) \n\n######\n#w.2.#\n#3.32#\n#3.33#\n#2.33#\n######\n(\nLösung: (1,0) (0,3) (0,3) \nVerhältnis2: 0.013158\nStückzahl: 11\nErfolg: 1\nGesamt: 225\nInteressante: 76\nLösungstiefe: 2\n)\n\n\n\nmessage You won!\n\nmessage [On the next screen the goal is to remove as many sixes as possible. How many can you get down to? ]\n\n\n#####################\n#11.1.1p.111..1.1.11#\n#11.1.1..111..1.1.11#\n#11.1.1..111..1.1.11#\n#11.1.1..111..1.1.11#\n#11.1.1..111..1.1.11#\n#11.1.1..111..1.1.11#\n#1216.621666216.6211#\n#12166622616216.6211#\n#1112612166621666211#\n#1122222222222222211#\n#1126162612612666211#\n#1126162612612616211#\n#1126666612612616211#\n#1122222222222222211#\n#1111111111111111111#\n#1443441443441443441#\n#1443441443441443441#\n#1443441443441443441#\n#1443441443441443441#\n#1111111111111111111#\n#####################\n", [3, 3, 2, 4], "background wall:0,0,0,0,0,0,\n0,background:1,1,background k3:2,2,0,\n0,1,1,2,background k2:3,0,\n0,1,background player:4,1,1,0,\n0,1,background player_r:5,3,2,0,\n0,0,0,0,0,0,\n", 19, "1627893119768.2104"] ], [ - "Schleimban", - ["title Schleimban\nauthor increpare [+ ein Level von David Skinners Microban]\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\n( One level taken from David Skinner's Microban - www.sneezingtiger.com/sokoban/levels/microbanText.html )\n\ntext_color lightblue\ncolor_palette 6\n\n========\nOBJECTS\n========\n\nBackground\nblack darkgray\n00000\n00000\n00100\n00000\n00000\n\nWall\ndarkgray gray darkblue\n00000\n01112\n01002\n01002\n02222\n\nwall_up\ndarkgray gray darkblue\n.1..2\n..00.\n.....\n.....\n.....\n\nwall_down\ndarkgray gray darkblue\n.....\n.....\n.....\n.....\n.1002\n\nwall_left\ndarkgray gray darkblue\n.....\n1....\n.0...\n.0...\n2....\n\nwall_right\ndarkgray gray darkblue\n.....\n....1\n....0\n....0\n.....\n\nTarget\nyellow\n.....\n.....\n..0..\n.....\n.....\n\n\nCrate\ngray darkblue\n.000.\n01110\n01.10\n01110\n.000.\n\nPlayer\ndarkred red black\n.000.\n01110\n01.10\n01110\n.000.\n\nplayer_up\ndarkred red\n0...0\n.....\n.....\n.....\n.....\n\nplayer_down\ndarkred red\n.....\n.....\n.....\n.....\n0...0\n\nplayer_left\ndarkred red\n0....\n.....\n.....\n.....\n0....\n\nplayer_right\ndarkred red\n....0\n.....\n.....\n.....\n....0\n\n\nplayer_up_o\ndarkred red\n01110\n.....\n.....\n.....\n.....\n\nplayer_down_o\ndarkred red\n.....\n.....\n.....\n.....\n01110\n\nplayer_left_o\ndarkred red\n0....\n1....\n1....\n1....\n0....\n\nplayer_right_o\ndarkred red\n....0\n....1\n....1\n....1\n....0\n\nplayer_ur\ndarkred red\n....1\n.....\n.....\n.....\n.....\n\nplayer_ul\ndarkred red\n1....\n.....\n.....\n.....\n.....\n\nplayer_dr\ndarkred red\n.....\n.....\n.....\n.....\n....1\n\nplayer_dl\ndarkred red\n.....\n.....\n.....\n.....\n1....\n\n\nok\ndarkred\n\n\n\nsprt_0_0 1\nblack\n\nsprt_1_0 2\nlightgray darkgray red lightred\n...01\n...01\n...00\n...22\n..223\n\nsprt_2_0 3\ndarkgray lightgray red lightred\n00001\n00001\n11111\n22222\n33332\n\nsprt_3_0 4\nred black\n11111\n11111\n11111\n11111\n01111\n\nsprt_4_0 5\nblack\n\nsprt_0_1 6\nlightgray red darkgray black\n33333\n33333\n00001\n22201\n22201\n\nsprt_1_1 7\nred lightred darkblue black\n30011\n00111\n01111\n11111\n11122\n\nsprt_2_1 8\nlightred darkblue\n00000\n00000\n00000\n00000\n00011\n\nsprt_3_1 9\nlightred red\n011..\n0011.\n00011\n00001\n00001\n\nsprt_4_1 0\nblack\n\nsprt_0_2 -\ndarkgray lightgray red\n00012\n00012\n00012\n00012\n00012\n\nsprt_1_2 =\nlightred darkblue\n00011\n00000\n00000\n00100\n00010\n\nsprt_2_2 q\nlightred darkblue\n00011\n00000\n00000\n00000\n00000\n\nsprt_3_2 w\nlightred red darkblue\n00001\n00000\n00000\n02000\n20000\n\nsprt_4_2 e\nred lightgray lightred darkgray\n0....\n0....\n00111\n20133\n20133\n\nsprt_0_3 r\ndarkgray lightgray red\n00012\n00012\n11112\n.....\n.....\n\nsprt_1_3 t\nlightred darkblue red\n00001\n00000\n20000\n22000\n.2200\n\nsprt_2_3 y\nlightred darkblue\n00001\n11110\n00000\n00000\n00000\n\nsprt_3_3 u\nlightred red\n00000\n00000\n00000\n00000\n00001\n\nsprt_4_3 i\nlightred red lightgray darkgray\n01233\n01233\n01233\n11222\n1....\n\nsprt_0_4 z\nblack\n\nsprt_1_4 x\nred lightgray darkgray\n..000\n..111\n..122\n..122\n..122\n\nsprt_2_4 a\nred lightgray darkgray\n00000\n11111\n22222\n22222\n22222\n\nsprt_3_4 s\nred lightgray darkgray\n00000\n11111\n22221\n22221\n22221\n\nsprt_4_4 d\nblack\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\nobstacle = crate or wall\nplayer_stick = player_up or player_down or player_left or player_right or player_up_o or player_down_o or player_left_o or player_right_o or player_ur or player_ul or player_dr or player_dl\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nok\nplayer_up,player_up_o\nplayer_down,player_down_o\nplayer_left,player_left_o\nplayer_right,player_right_o\nplayer_ur\nplayer_ul\nplayer_dr\nplayer_dl\n\nwall_up\nwall_down\nwall_left\nwall_right\n1,2,3,4,5,6,7,8,9,0,sprt_0_2,sprt_1_2,q,w,e,r,t,y,u,i,z,x,a,s,d\n\n======\nRULES\n======\n\nright [ wall | wall ] -> [wall_right wall | wall_left wall ]\ndown [ wall | wall ] -> [ wall_down wall | wall_up wall]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate [ player | obstacle ] -> [ player ok | obstacle ]\nlate [ player no ok ] -> cancel\nlate [ player ok ] -> [ player ]\n\nlate [player_stick]->[]\n\nlate down [ crate | player ] -> [ crate player_down | Player player_up_o]\nlate up [ crate | player ] -> [ crate player_up | Player player_down_o]\nlate left [ crate | player ] -> [ crate player_left | Player player_right_o]\nlate right [ crate | player ] -> [ crate player_right | Player player_left_o]\n\nlate up [ player | wall ]-> [player player_up_o|wall]\nlate down [ player | wall ]-> [player player_down_o|wall]\nlate left [ player | wall ]-> [player player_left_o|wall]\nlate right [ player | wall ]-> [player player_right_o|wall]\n\nlate [ player_up_o player_right_o ] -> [ player_up_o player_right_o player_ur]\nlate [ player_up_o player_left_o ] -> [ player_up_o player_left_o player_ul]\nlate [ player_down_o player_right_o ] -> [ player_down_o player_right_o player_dr]\nlate [ player_down_o player_left_o ] -> [ player_down_o player_left_o player_dl]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 von 5\n\n..#####..\n..#...#..\n..#.o.#..\n..#...#..\n####.####\n#.......#\n#...*...#\n#.......#\n#.......#\n#...p...#\n#########\n\n\nmessage Level 2 von 5 [ von Microban ]\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\nmessage Level 3 von 5\n\n#########\n#.......#\n#..o.o..#\n#.......#\n##.###.##\n#.......#\n#.*.p.*.#\n#...#...#\n#########\n\nmessage Level 4 von 5\n\n########\n#o.....#\n#p**...#\n##.....#\n.##....#\n..##...#\n...##..#\n....##o#\n.....###\n\nmessage Level 5 von 5\n\n\n#########\n#.......#\n#.....#.#\n#.......#\n#.....###\n#..**.oo#\n#....####\n#.p..#...\n######...\n\n\nmessage Herzlichen Glückwunsch!\n\n\n12345\n67890\n-=qwe\nrtyui\nzxasd\n\n\n(\n\n\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n#############\n#......##...#\n#...**..p.#.#\n#.....#oo...#\n#.....#######\n#######......\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#OOO...#\n#...########\n#####.......\n\n#########\n#.......#\n#..o.o..#\n#.......#\n##.###.##\n#.......#\n#.......#\n#.......#\n#.*.p.*.#\n#...#...#\n#########\n\n..#####..\n..#...#..\n..#.o.#..\n..#...#..\n####.####\n#.......#\n#...*...#\n#.......#\n#.......#\n#...p...#\n#########\n\n\n#######\n#.....#\n#.o.o.#\n#.....#\n##.#.##\n#.....#\n#.*.*.#\n#..p..#\n#######\n\n)\n",[3,0,0,1,1,1,0,1,2,3,2,3],"background:0,background wall wall_down wall_right:1,background wall wall_down wall_up:2,2,2,background wall wall_right wall_up:3,0,background wall wall_left wall_right:4,0,\n0,0,4,1,background wall wall_left wall_up:5,0,background wall:6,background target:7,4,\n4,0,0,0,background crate:8,4,4,0,0,\nbackground player player_right_o:9,7,4,background wall wall_down wall_left:10,3,0,background wall wall_down:11,2,background wall wall_left wall_right wall_up:12,\n0,4,0,8,0,4,0,4,0,\n0,0,4,0,10,2,2,2,5,\n",3,"1627893180878.8218"] + "Schleimban", + ["title Schleimban\nauthor increpare [+ ein Level von David Skinners Microban]\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\n( One level taken from David Skinner's Microban - www.sneezingtiger.com/sokoban/levels/microbanText.html )\n\ntext_color lightblue\ncolor_palette 6\n\n========\nOBJECTS\n========\n\nBackground\nblack darkgray\n00000\n00000\n00100\n00000\n00000\n\nWall\ndarkgray gray darkblue\n00000\n01112\n01002\n01002\n02222\n\nwall_up\ndarkgray gray darkblue\n.1..2\n..00.\n.....\n.....\n.....\n\nwall_down\ndarkgray gray darkblue\n.....\n.....\n.....\n.....\n.1002\n\nwall_left\ndarkgray gray darkblue\n.....\n1....\n.0...\n.0...\n2....\n\nwall_right\ndarkgray gray darkblue\n.....\n....1\n....0\n....0\n.....\n\nTarget\nyellow\n.....\n.....\n..0..\n.....\n.....\n\n\nCrate\ngray darkblue\n.000.\n01110\n01.10\n01110\n.000.\n\nPlayer\ndarkred red black\n.000.\n01110\n01.10\n01110\n.000.\n\nplayer_up\ndarkred red\n0...0\n.....\n.....\n.....\n.....\n\nplayer_down\ndarkred red\n.....\n.....\n.....\n.....\n0...0\n\nplayer_left\ndarkred red\n0....\n.....\n.....\n.....\n0....\n\nplayer_right\ndarkred red\n....0\n.....\n.....\n.....\n....0\n\n\nplayer_up_o\ndarkred red\n01110\n.....\n.....\n.....\n.....\n\nplayer_down_o\ndarkred red\n.....\n.....\n.....\n.....\n01110\n\nplayer_left_o\ndarkred red\n0....\n1....\n1....\n1....\n0....\n\nplayer_right_o\ndarkred red\n....0\n....1\n....1\n....1\n....0\n\nplayer_ur\ndarkred red\n....1\n.....\n.....\n.....\n.....\n\nplayer_ul\ndarkred red\n1....\n.....\n.....\n.....\n.....\n\nplayer_dr\ndarkred red\n.....\n.....\n.....\n.....\n....1\n\nplayer_dl\ndarkred red\n.....\n.....\n.....\n.....\n1....\n\n\nok\ndarkred\n\n\n\nsprt_0_0 1\nblack\n\nsprt_1_0 2\nlightgray darkgray red lightred\n...01\n...01\n...00\n...22\n..223\n\nsprt_2_0 3\ndarkgray lightgray red lightred\n00001\n00001\n11111\n22222\n33332\n\nsprt_3_0 4\nred black\n11111\n11111\n11111\n11111\n01111\n\nsprt_4_0 5\nblack\n\nsprt_0_1 6\nlightgray red darkgray black\n33333\n33333\n00001\n22201\n22201\n\nsprt_1_1 7\nred lightred darkblue black\n30011\n00111\n01111\n11111\n11122\n\nsprt_2_1 8\nlightred darkblue\n00000\n00000\n00000\n00000\n00011\n\nsprt_3_1 9\nlightred red\n011..\n0011.\n00011\n00001\n00001\n\nsprt_4_1 0\nblack\n\nsprt_0_2 -\ndarkgray lightgray red\n00012\n00012\n00012\n00012\n00012\n\nsprt_1_2 =\nlightred darkblue\n00011\n00000\n00000\n00100\n00010\n\nsprt_2_2 q\nlightred darkblue\n00011\n00000\n00000\n00000\n00000\n\nsprt_3_2 w\nlightred red darkblue\n00001\n00000\n00000\n02000\n20000\n\nsprt_4_2 e\nred lightgray lightred darkgray\n0....\n0....\n00111\n20133\n20133\n\nsprt_0_3 r\ndarkgray lightgray red\n00012\n00012\n11112\n.....\n.....\n\nsprt_1_3 t\nlightred darkblue red\n00001\n00000\n20000\n22000\n.2200\n\nsprt_2_3 y\nlightred darkblue\n00001\n11110\n00000\n00000\n00000\n\nsprt_3_3 u\nlightred red\n00000\n00000\n00000\n00000\n00001\n\nsprt_4_3 i\nlightred red lightgray darkgray\n01233\n01233\n01233\n11222\n1....\n\nsprt_0_4 z\nblack\n\nsprt_1_4 x\nred lightgray darkgray\n..000\n..111\n..122\n..122\n..122\n\nsprt_2_4 a\nred lightgray darkgray\n00000\n11111\n22222\n22222\n22222\n\nsprt_3_4 s\nred lightgray darkgray\n00000\n11111\n22221\n22221\n22221\n\nsprt_4_4 d\nblack\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\nobstacle = crate or wall\nplayer_stick = player_up or player_down or player_left or player_right or player_up_o or player_down_o or player_left_o or player_right_o or player_ur or player_ul or player_dr or player_dl\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nok\nplayer_up,player_up_o\nplayer_down,player_down_o\nplayer_left,player_left_o\nplayer_right,player_right_o\nplayer_ur\nplayer_ul\nplayer_dr\nplayer_dl\n\nwall_up\nwall_down\nwall_left\nwall_right\n1,2,3,4,5,6,7,8,9,0,sprt_0_2,sprt_1_2,q,w,e,r,t,y,u,i,z,x,a,s,d\n\n======\nRULES\n======\n\nright [ wall | wall ] -> [wall_right wall | wall_left wall ]\ndown [ wall | wall ] -> [ wall_down wall | wall_up wall]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate [ player | obstacle ] -> [ player ok | obstacle ]\nlate [ player no ok ] -> cancel\nlate [ player ok ] -> [ player ]\n\nlate [player_stick]->[]\n\nlate down [ crate | player ] -> [ crate player_down | Player player_up_o]\nlate up [ crate | player ] -> [ crate player_up | Player player_down_o]\nlate left [ crate | player ] -> [ crate player_left | Player player_right_o]\nlate right [ crate | player ] -> [ crate player_right | Player player_left_o]\n\nlate up [ player | wall ]-> [player player_up_o|wall]\nlate down [ player | wall ]-> [player player_down_o|wall]\nlate left [ player | wall ]-> [player player_left_o|wall]\nlate right [ player | wall ]-> [player player_right_o|wall]\n\nlate [ player_up_o player_right_o ] -> [ player_up_o player_right_o player_ur]\nlate [ player_up_o player_left_o ] -> [ player_up_o player_left_o player_ul]\nlate [ player_down_o player_right_o ] -> [ player_down_o player_right_o player_dr]\nlate [ player_down_o player_left_o ] -> [ player_down_o player_left_o player_dl]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 von 5\n\n..#####..\n..#...#..\n..#.o.#..\n..#...#..\n####.####\n#.......#\n#...*...#\n#.......#\n#.......#\n#...p...#\n#########\n\n\nmessage Level 2 von 5 [ von Microban ]\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\nmessage Level 3 von 5\n\n#########\n#.......#\n#..o.o..#\n#.......#\n##.###.##\n#.......#\n#.*.p.*.#\n#...#...#\n#########\n\nmessage Level 4 von 5\n\n########\n#o.....#\n#p**...#\n##.....#\n.##....#\n..##...#\n...##..#\n....##o#\n.....###\n\nmessage Level 5 von 5\n\n\n#########\n#.......#\n#.....#.#\n#.......#\n#.....###\n#..**.oo#\n#....####\n#.p..#...\n######...\n\n\nmessage Herzlichen Glückwunsch!\n\n\n12345\n67890\n-=qwe\nrtyui\nzxasd\n\n\n(\n\n\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n#############\n#......##...#\n#...**..p.#.#\n#.....#oo...#\n#.....#######\n#######......\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#OOO...#\n#...########\n#####.......\n\n#########\n#.......#\n#..o.o..#\n#.......#\n##.###.##\n#.......#\n#.......#\n#.......#\n#.*.p.*.#\n#...#...#\n#########\n\n..#####..\n..#...#..\n..#.o.#..\n..#...#..\n####.####\n#.......#\n#...*...#\n#.......#\n#.......#\n#...p...#\n#########\n\n\n#######\n#.....#\n#.o.o.#\n#.....#\n##.#.##\n#.....#\n#.*.*.#\n#..p..#\n#######\n\n)\n", [3, 0, 0, 1, 1, 1, 0, 1, 2, 3, 2, 3], "background:0,background wall wall_down wall_right:1,background wall wall_down wall_up:2,2,2,background wall wall_right wall_up:3,0,background wall wall_left wall_right:4,0,\n0,0,4,1,background wall wall_left wall_up:5,0,background wall:6,background target:7,4,\n4,0,0,0,background crate:8,4,4,0,0,\nbackground player player_right_o:9,7,4,background wall wall_down wall_left:10,3,0,background wall wall_down:11,2,background wall wall_left wall_right wall_up:12,\n0,4,0,8,0,4,0,4,0,\n0,0,4,0,10,2,2,2,5,\n", 3, "1627893180878.8218"] ], [ - "Legend of Swixero", - ["title Legend of Swixero\nauthor increpare\nhomepage www.increpare.com\ncolor_palette c64\nbackground_color darkblue\ntext_color green\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\ndarkgreen darkblue\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\ngreen\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ngray darkgray\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nred pink White Blue\n.000.\n01110\n22222\n.333.\n.3.3.\n\ndead\n#ff0000\n..0..\n0....\n...0.\n.....\n.0...\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\nflipped\ntransparent\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\nsfx1 26528702 (dead)\nsfx2 19029907 (flip)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ndead\nflipped\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n[ > Crate | Target no Crate ] -> [ > Crate | Target no Crate flipped] sfx2\n\nlate [ flipped] [ player target no flipped] -> [flipped] [ dead crate flipped] sfx1\nlate [flipped] [crate no target no flipped] -> [flipped] [target flipped]\nlate [flipped] [target no crate no flipped] -> [flipped] [crate flipped]\nlate [ flipped]->[]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage level 1 of 5\n(OK)\n######\n#.O###\n#..###\n#@P..#\n#..*.#\n#..###\n######\n\n(EZ)\n(can remove)(\n#######\n#....##\n#p**..#\n##..o.# \n###.o.#\n####..#\n#######)\n\n\n(ezish)\n(can remove)(\n###########\n#####.o...#\n#####.o.#.#\n#####.o.#.#\n#.p.*.*.*.#\n#.#.#.#.###\n#.......###\n###########)\n(\n###########\n#######o..#\n#######.#.#\n#######o#.#\n#.p.*.*o*.#\n#.#.#.#.###\n#.......###\n###########\n\n###########\n#######o..#\n#######.#.#\n#######...#\n##p.*.*o*.#\n###...#.###\n#...#.o.###\n###########\n)\n\nmessage level 2 of 5\n(INTERMEDIATE)\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\nmessage level 3 of 5\n(EASY/FUN)\n(keep it)\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n\n(fine)(\n#######\n##...##\n#.***.#\n#..p..#\n#.ooo.#\n##...##\n#######)\n\n\nmessage level 4 of 5\n(intermediate hard)\n(meh remove?)\n(#########\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########)\n\n(nice ideer)\n###########\n####.#.####\n####.#.####\n#.*.@.@.*.#\n#.#.....#.#\n#.o..p..o.#\n###########\n\n(zu schweirig)\n(#########\n####.####\n####.####\n#.*.@p*.#\n#.#...#.#\n#.o.@.o.#\n####.####\n####.####\n#########)\n\nmessage level 5 of 5\n(HARD)\n############\n#....###...#\n#.**.....#p#\n#.*.#ooo...#\n#...#...####\n############\n\n\n\nmessage congratulations!\n\n",[1,0,2,3,3,1,1,0,3,0,3,0,3,0,1,2,3,2,2,2,1,1,0,0,3],"background wall:0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,1,\n1,0,0,1,background crate:2,background target:3,background crate target:4,\n1,1,0,0,1,4,4,\n1,1,1,0,0,1,1,\n1,background player:5,4,1,0,0,1,\n1,1,4,1,1,0,0,\n0,0,0,0,0,0,0,\n",5,"1627893213826.6091"] + "Legend of Swixero", + ["title Legend of Swixero\nauthor increpare\nhomepage www.increpare.com\ncolor_palette c64\nbackground_color darkblue\ntext_color green\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\ndarkgreen darkblue\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\ngreen\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ngray darkgray\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nred pink White Blue\n.000.\n01110\n22222\n.333.\n.3.3.\n\ndead\n#ff0000\n..0..\n0....\n...0.\n.....\n.0...\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\nflipped\ntransparent\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\nsfx1 26528702 (dead)\nsfx2 19029907 (flip)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ndead\nflipped\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n[ > Crate | Target no Crate ] -> [ > Crate | Target no Crate flipped] sfx2\n\nlate [ flipped] [ player target no flipped] -> [flipped] [ dead crate flipped] sfx1\nlate [flipped] [crate no target no flipped] -> [flipped] [target flipped]\nlate [flipped] [target no crate no flipped] -> [flipped] [crate flipped]\nlate [ flipped]->[]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage level 1 of 5\n(OK)\n######\n#.O###\n#..###\n#@P..#\n#..*.#\n#..###\n######\n\n(EZ)\n(can remove)(\n#######\n#....##\n#p**..#\n##..o.# \n###.o.#\n####..#\n#######)\n\n\n(ezish)\n(can remove)(\n###########\n#####.o...#\n#####.o.#.#\n#####.o.#.#\n#.p.*.*.*.#\n#.#.#.#.###\n#.......###\n###########)\n(\n###########\n#######o..#\n#######.#.#\n#######o#.#\n#.p.*.*o*.#\n#.#.#.#.###\n#.......###\n###########\n\n###########\n#######o..#\n#######.#.#\n#######...#\n##p.*.*o*.#\n###...#.###\n#...#.o.###\n###########\n)\n\nmessage level 2 of 5\n(INTERMEDIATE)\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\nmessage level 3 of 5\n(EASY/FUN)\n(keep it)\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n\n(fine)(\n#######\n##...##\n#.***.#\n#..p..#\n#.ooo.#\n##...##\n#######)\n\n\nmessage level 4 of 5\n(intermediate hard)\n(meh remove?)\n(#########\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########)\n\n(nice ideer)\n###########\n####.#.####\n####.#.####\n#.*.@.@.*.#\n#.#.....#.#\n#.o..p..o.#\n###########\n\n(zu schweirig)\n(#########\n####.####\n####.####\n#.*.@p*.#\n#.#...#.#\n#.o.@.o.#\n####.####\n####.####\n#########)\n\nmessage level 5 of 5\n(HARD)\n############\n#....###...#\n#.**.....#p#\n#.*.#ooo...#\n#...#...####\n############\n\n\n\nmessage congratulations!\n\n", [1, 0, 2, 3, 3, 1, 1, 0, 3, 0, 3, 0, 3, 0, 1, 2, 3, 2, 2, 2, 1, 1, 0, 0, 3], "background wall:0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,1,\n1,0,0,1,background crate:2,background target:3,background crate target:4,\n1,1,0,0,1,4,4,\n1,1,1,0,0,1,1,\n1,background player:5,4,1,0,0,1,\n1,1,4,1,1,0,0,\n0,0,0,0,0,0,0,\n", 5, "1627893213826.6091"] ], [ - "Xorro The Chaos Warden", - ["title Xorro The Chaos Warden\nauthor increpare\nhomepage www.increpare.com\ncolor_palette 4\nbackground_color black\ntext_color lightgreen\n\n\n\n========\nOBJECTS\n========\n\nBackground\ndarkblue darkblue\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\n#5555aa\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ntransparent #880000\n00100\n00100\n11111\n00100\n00100\n\nPlayer\nlightgreen brown green green\n.0000\n0111.\n22222\n.333.\n.3.3.\n\ndead\n#ff0000\n..0..\n0....\n...0.\n.....\n.0...\n\nCrate\nbrown Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\nflippedh\ntransparent\n\nflippedv\ntransparent\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\nsfx1 26528702 (dead)\nsfx2 19029907 (flip)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer Crate\nTarget\nWall\ndead\nflippedh,flippedv\n\n======\nRULES\n======\n\n[ > player | wall ] -> cancel\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Player | Crate | Crate ] -> cancel\n\n([ > crate | wall] ->cancel)\n([ > crate wall] ->cancel)\n\nvertical [ > Crate | Target no Crate no wall ] -> [ | crate Target flippedh wall] sfx2\nhorizontal [ > Crate | Target no Crate no wall ] -> [ | crate Target flippedv wall] sfx2\n\nvertical [ > Crate | Target no Crate wall ] -> [ | crate Target flippedh no wall] sfx2\nhorizontal [ > Crate | Target no Crate wall ] -> [ | crate Target flippedv no wall] sfx2\n\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\n\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\n\n\nlate [flippedh]->[]\nlate [flippedv]->[]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage level 1 of 4\n\n(option. unconvinced)\n######\n#..#o#\n#.*#.#\n#p*.##\n#..o.#\n######\n\nmessage level 2 of 4\n(decent)\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n\nmessage level 3 of 4\n(hardish)\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n\nmessage level 4 of 4\n...........\n.....o.....\n.*o..###o*.\n..####.#...\n..#.*.*#...\n.o##.#.##o.\n...#*.*.#..\n...#.####..\n.*o###..o*.\n.....o.....\n.....p.....\n\nmessage Congratulations! Not only did you solve all the puzzles, but you did it while preserving order!\n\n",[1,2,1,0,1,2,3,3,1,0,0,3],"background:0,0,0,background wall:1,1,1,1,1,\n1,1,1,0,0,1,1,0,\nbackground crate:2,0,0,0,1,1,0,background target:3,\n0,3,0,1,1,0,background player:4,0,\n0,0,1,1,0,background crate target:5,2,5,\n0,1,1,0,0,0,0,0,\n1,1,1,1,1,1,1,1,\n",3,"1627893230650.995"] + "Xorro The Chaos Warden", + ["title Xorro The Chaos Warden\nauthor increpare\nhomepage www.increpare.com\ncolor_palette 4\nbackground_color black\ntext_color lightgreen\n\n\n\n========\nOBJECTS\n========\n\nBackground\ndarkblue darkblue\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\n#5555aa\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ntransparent #880000\n00100\n00100\n11111\n00100\n00100\n\nPlayer\nlightgreen brown green green\n.0000\n0111.\n22222\n.333.\n.3.3.\n\ndead\n#ff0000\n..0..\n0....\n...0.\n.....\n.0...\n\nCrate\nbrown Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\nflippedh\ntransparent\n\nflippedv\ntransparent\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\nsfx1 26528702 (dead)\nsfx2 19029907 (flip)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer Crate\nTarget\nWall\ndead\nflippedh,flippedv\n\n======\nRULES\n======\n\n[ > player | wall ] -> cancel\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Player | Crate | Crate ] -> cancel\n\n([ > crate | wall] ->cancel)\n([ > crate wall] ->cancel)\n\nvertical [ > Crate | Target no Crate no wall ] -> [ | crate Target flippedh wall] sfx2\nhorizontal [ > Crate | Target no Crate no wall ] -> [ | crate Target flippedv wall] sfx2\n\nvertical [ > Crate | Target no Crate wall ] -> [ | crate Target flippedh no wall] sfx2\nhorizontal [ > Crate | Target no Crate wall ] -> [ | crate Target flippedv no wall] sfx2\n\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\n\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\n\n\nlate [flippedh]->[]\nlate [flippedv]->[]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage level 1 of 4\n\n(option. unconvinced)\n######\n#..#o#\n#.*#.#\n#p*.##\n#..o.#\n######\n\nmessage level 2 of 4\n(decent)\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n\nmessage level 3 of 4\n(hardish)\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n\nmessage level 4 of 4\n...........\n.....o.....\n.*o..###o*.\n..####.#...\n..#.*.*#...\n.o##.#.##o.\n...#*.*.#..\n...#.####..\n.*o###..o*.\n.....o.....\n.....p.....\n\nmessage Congratulations! Not only did you solve all the puzzles, but you did it while preserving order!\n\n", [1, 2, 1, 0, 1, 2, 3, 3, 1, 0, 0, 3], "background:0,0,0,background wall:1,1,1,1,1,\n1,1,1,0,0,1,1,0,\nbackground crate:2,0,0,0,1,1,0,background target:3,\n0,3,0,1,1,0,background player:4,0,\n0,0,1,1,0,background crate target:5,2,5,\n0,1,1,0,0,0,0,0,\n1,1,1,1,1,1,1,1,\n", 3, "1627893230650.995"] ], [ - "Put the logs in the water, elephant!", - ["title Put the logs in the water, elephant! \nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #222034\ntext_color #cbdbfc\n\nnorepeat_action\n\n(thanks to pancelor + salty_horse for some good suggestions)\n\n========\nOBJECTS\n========\n\nelephantA_1 1\n#1f2f8d #5b6ee1 #cbdbfc\n.0000\n01111\n01111\n01111\n01111\n\nelephantA_2 2\n#1f2f8d #5b6ee1 #cbdbfc\n00000\n11111\n11111\n11111\n11111\n\nelephantA_3 3\n#1f2f8d #5b6ee1 #cbdbfc\n000..\n1110.\n11110\n11110\n11110\n\nelephantA_4 4\n#1f2f8d #5b6ee1 #cbdbfc\n11110\n01111\n11111\n11111\n00000\n\nelephantA_5 5\n#1f2f8d #5b6ee1 #cbdbfc\n11110\n11110\n11110\n11110\n21110\n\n\nelephantA_6 6\n#1f2f8d #5b6ee1 #cbdbfc\n01111\n01111\n01111\n01110\n01110\n\n \nelephantA_7 7\n#1f2f8d #5b6ee1 #cbdbfc\n11111\n11111\n11111\n11111\n00000\n\n\nelephantA_8 8\n#1f2f8d #5b6ee1 #cbdbfc\n11110\n11110\n11110\n01110\n01110\n\nelephantA_9 9\n#1f2f8d #5b6ee1 #cbdbfc\n02110\n01210\n01110\n01110\n01110\n\n\nelephantA_10 0\n#1f2f8d #5b6ee1 #cbdbfc\n01110\n01110\n00000\n01110\n00000\n\n\nelephantA_11 a\n#1f2f8d #5b6ee1 #cbdbfc\n01110\n01110\n01110\n01110\n.000.\n\n\nelephantA_12 s\n#1f2f8d #5b6ee1 #cbdbfc\n01110\n10001\n11111\n11111\n11111\n\nelephantB_11A\n#1f2f8d #5b6ee1 #cbdbfc\n..000\n.0110\n.0111\n.0111\n..000\n\nelephantB_11B\n#1f2f8d #5b6ee1 #cbdbfc\n01110\n01110\n11110\n1110.\n000..\n\nwater\n#45acc1 #57c8e0\n00000\n01000\n00000\n00010\n00000\n\n\nbackground\n#9badb7\n\nwall\n#323c39 #847e87\n00000\n01110\n01110\n01110\n00000\n(\nlog\n#450062 #6f238c #fc76d2\n.111.\n01121\n01111\n01111\n.000.\n)\nlog\n#482b08 #b4711f #f4a84b\n.000.\n01110\n01210\n01110\n.000.\n\nairlog\n#482b08 #b4711f #f4a84b\n.000.\n01110\n01210\n01110\n.000.\n\noob\ntransparent\n\n=======\nLEGEND\n=======\nelephant = elephantA_1 or elephantA_2 or elephantA_3 or elephantA_4 or elephantA_5 or elephantA_6 or elephantA_7 or elephantA_8 or elephantA_9 or elephantA_10 or elephantA_11 or elephantA_12 or elephantB_11A or elephantB_11B or airlog\nplayer = elephant\nobstacle= wall or log\nsolid = obstacle or player\n\n. = Background\n# = Wall\nP = Player\n* = log\n, = water\n; = oob\n@ = log and water\n\nanything = elephant or wall or player or log or water or oob\n=======\nSOUNDS\n=======\n\nsfx0 65393704 (cancel)\nsfx1 80573305 (pickup)\nsfx2 94577706 (drop)\n\nendlevel 31237103\nlog move 66615107\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nwater\nWall, log\nelephant, airlog\noob\n\n======\nRULES\n======\n\n\n\n[ > elephant | log ] -> [ > elephant | > log ]\n[ > log | log ] -> [ > log | > log ]\n\n[ > log | wall ]->cancel\n\n(suck up log if retracting trunk)\ndown [ action elephantA_4 | no log | log ] -> [ action elephantA_4 | airlog | ] sfx1\ndown [ action elephantA_4 | log | no log ] -> [ action elephantA_4 | airlog | ] sfx1\n(cancel retraction if overlaps)\nright [ action elephantA_4 ] [ log | elephantA_11 ] -> cancel sfx0\n\n(retract trunk)\nright [ action elephantA_4 ] [ | elephantA_11 ] -> [ elephantA_4 ] [ elephantB_11A | elephantB_11B ]\n\n(extend trunk)\nright [ action elephantA_4 ] [ elephantB_11A | elephantB_11B ] -> [ action elephantA_4 ] [ | elephantA_11 ]\n(drop log if extending trunk)\ndown [ action elephantA_4 | airlog | no obstacle ] -> [ elephantA_4 | | log ] sfx2\ndown [ action elephantA_4 | airlog | obstacle ] -> cancel sfx0\n\n( late [elephantA_10 water ] -> cancel )\nlate [elephantA_10 log]->cancel\n[> elephantA_10 | wall]->cancel\n\n==============\nWINCONDITIONS\n==============\nall water on log\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 8\n\n.....................\n.....................\n..#################..\n..#.........#.....#..\n..#.....123.#..,..#..\n..#...12s45.#.....#..\n..#...678.9.##.#.##..\n..#.*.0.0.a.......#..\n..#...............#..\n..#################..\n.....................\n.....................\n\nmessage What a good elephant!\n\nmessage level 2 of 8\n\n...............\n...............\n..........###..\n..#########,#..\n..#.........#..\n..#...123..##..\n..#.12s45..#...\n..#.678.9..#...\n..#.0.0.a*.#...\n..#........#...\n..##########...\n...............\n...............\n\nmessage I'm so proud of you elephant!\n\nmessage level 3 of 8\n\n................\n................\n..############..\n..#,.........#..\n..#########..#..\n...#.........#..\n...#...123...#..\n...#.12s45...#..\n...#.678.9.*.#..\n...#.0.0.a...#..\n...#.........#..\n...###########..\n................\n................\n\n(I don't like this level\n.................\n.................\n###############..\n#.............#..\n#.............#..\n#..123........#..\n#12s45***.....#..\n#678.9###.....#..\n#0.0.a,,,.....#..\n###############..)\n\n\nmessage How did you ever think of doing that, elephant?!\n\nmessage level 4 of 8\n\n...................\n...................\n..###############..\n..#.........#...#..\n..#...123.#...#.#..\n..#.12s45...#...#..\n..#.678.9.*.#...#..\n..#.0.0.a...#...#..\n..#.........#...#..\n..##.#.######.,.#..\n..#.............#..\n..###############..\n...................\n...................\n\nmessage I was not expecting that. Splendid work, elephant!\n\nmessage level 5 of 8\n\n...................\n...................\n..###############..\n..#..123........#..\n..#12s45........#..\n..#678.9........#..\n..#0.0.a*.*.....#..\n..#..#..###..#..#..\n..#.....,.,.....#..\n..###############..\n...................\n...................\n\n\nmessage How did you ever think of doing that, elephant?!\n\n\nmessage level 6 of 8\n\n(Difficulty 5843 I'm ok with this level - nice cyclish - recommend to include)\n...;;;;;;;;\n...;;;;;;;;\n..#######;;\n..#...,.#;;\n..#..123#;;\n..#12s45#;;\n..#678,9#;;\n..#0*0*a#;;\n..#.....#;;\n..#######;;\n...;;;;;;;;\n...;;;;;;;;\n\n\n\nmessage You really helped us out of a tight spot. Thanks, elephant!\n\n\nmessage level 7 of 8\n\n......................\n......................\n..##################..\n..#............#...#..\n..#...123....#.....#..\n..#.12s45......#...#..\n..#.678.9.*.#..#...#..\n..#.0.0.a......#...#..\n..#..........#.....#..\n..##.#.#########.,.#..\n..#................#..\n..#########........#..\n..........#........#..\n..........#........#..\n..........##########..\n......................\n......................\n\nmessage You're one dextrous elephant!\n\nmessage level 8 of 8\n\n;;;;;;;;;;;\n;;;;;;;;;;;\n;;#######;;\n;;#,....#;;\n;;#.*123#;;\n;;#12s45#;;\n;;#678#9#;;\n;;#0,0.a#;;\n;;#...*.#;;\n;;#######;;\n;;;;;;;;;;;\n;;;;;;;;;;;\n\nmessage Congratulations! You are the best elephant. And that's saying a lot!\n\n(\n(LEVELCAT:pleasing to solve)\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#,.123#;\n#12s45#;\n#678*9#;\n#0*0,a#;\n#.*..,#;\n#######;\n\n\n\n(kinda nice but no)\n;;;;;;;;\n;;;;;;;;\n#######;\n#..123#;\n#12s45#;\n#678@9#;\n#0*0@a#;\n#@@,@@#;\n#######;\n\n(sovling this level I just felt i missed something stupid)\n;;;;;;;;\n;;;;;;;;\n#######;\n#,.123#;\n#12s45#;\n#678@9#;\n#0.0*a#;\n#.....#;\n#######;\n\n(meh)\n;;;;;;;;\n;;;;;;;;\n#######;\n#.,123#;\n#12s45#;\n#678*9#;\n#0*0,a#;\n#.....#;\n#######;\n\n\n\n;;;;;;;;;;\n;;;;;;;;;;\n;#######;;\n##.....##;\n#...123.#;\n#.12s45.#;\n#.678.9.#;\n#.0.0.a.#;\n##.....##;\n;#######;;\n\n\n;;;;;;;;;\n;;;;;;;;;\n########;\n#...123#;\n#.12s45#;\n#.678.9#;\n#.0.0.a#;\n##.....#;\n;#######;\n\n;;;;;;;;;\n;;;;;;;;;\n########.\n#..123.#.\n#12s45.#.\n#678.9.#.\n#0.0.a.#.\n########.\n\n\n;;;;;;;;;\n;;;;;;;;;\n########.\n#...123#.\n#.12s45#.\n#.678.9#.\n#.0.0.a#.\n########.\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#.....#;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#######;\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#.....#;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#.....#;\n#######;\n\n(kinda like this level, needs to to be dextrous - next level better though)\n;;;;;;;;\n;;;;;;;;\n#######;\n#.,...#;\n#..123#;\n#12s45#;\n#678#9#;\n#0@0.a#;\n#....*#;\n#######;\n\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#.....#;\n#######;\n\n(difficulty 24828)\n\n.;;;;;;;\n.;;;;;;;\n#######;\n#..,..#;\n#..123#;\n#12s45#;\n#678*9#;\n#0.0,a#;\n#....*#;\n#######;\n\n\n(Difficulty 5843)\n.;;;;;;;\n.;;;;;;;\n#######;\n#...,.#;\n#..123#;\n#12s45#;\n#678,9#;\n#0*0*a#;\n#.....#;\n#######;\n\n\n\n(Difficulty 5843 I'm ok with this level - nice cyclish)\n.;;;;;;;\n.;;;;;;;\n#######;\n#...,.#;\n#..123#;\n#12s45#;\n#678,9#;\n#0*0*a#;\n#.....#;\n#######;\n\n\n(not as hard as other ones of this kind, but I was agble to solve it ^^ and it's not so bad? maybe not conceptual enough)\n.;;;;;;;\n.;;;;;;;\n#######;\n#...,.#;\n#.,123#;\n#12s45#;\n#678.9#;\n#0*0*a#;\n#.....#;\n#######;\n\n\n\n(difficulty ~5k - a bit too tricky?)\n.;;;;;;;\n.;;;;;;;\n#######;\n#.,...#;\n#,.123#;\n#12s45#;\n#678*9#;\n#0.0*a#;\n#.....#;\n#######;\n\n\n(silly + not hard, but maybe ok for a final level?)\n;;;;;;;;\n;;;;;;;;\n#######;\n#,*123#;\n#12s45#;\n#678@9#;\n#0@0.a#;\n#######;\n\n\n.;;;;;;;\n.;;;;;;;\n#######;\n#...,.#;\n#.,123#;\n#12s45#;\n#678.9#;\n#0*0*a#;\n#.....#;\n#######;\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#.....#;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#.....#;\n#######;\n\n;;;;;;;;;;\n;;;;;;;;;;\n#########;\n#.......#;\n#...123.#;\n#.12s45.#;\n#.678.9.#;\n#.0.0.a.#;\n#.......#;\n#########;\n\n\n(mildly satisfying but easy?)\n;;;;;;;;;;\n;;;;;;;;;;\n#########;\n#..#...##;\n##.#123,#;\n#.12s45##;\n#.678,9.#;\n#.0*0.a.#;\n#....*..#;\n#########;\n\n(kinda a nice trick but...also not so interesting)\n;;;;;;;;;\n;;;;;;;;;\n########;\n#,.....#;\n#,.123.#;\n#12s45.#;\n#678*9.#;\n#0*0.a.#;\n########;\n\n\n;;;;;;;;;;\n;;;;;;;;;;\n#########;\n#...123.#;\n#.12s45.#;\n#.678.9.#;\n#.0.0.a.#;\n#########;\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#######;\n\n\n;;;;;;;;\n;;;;;;;;\n;;#####;\n###123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#######;\n\n\n;;;;;;;;\n;;;;;;;;\n;;#####;\n###123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#######;\n\n\n;;;;;;;;;;\n;;;;;;;;;;\n#########;\n#.......#;\n#...123.#;\n#.12s45.#;\n#.678.9.#;\n#.0.0.a.#;\n#.......#;\n#########;\n\n;;;;;;;;;;;;;;;;;;\n;;;;;;;;;;;;;;;;;;\n#################;\n#.....123.......#;\n#...12s45.......#;\n#...678.9.......#;\n#...0.0.a.......#;\n#################;\n\n;;;;;;;;;;;;;;;;;;\n;;;;;;;;;;;;;;;;;;\n#################;\n#...............#;\n#.....123.......#;\n#...12s45.......#;\n#...678.9.......#;\n#...0.0.a.......#;\n#...............#;\n#################;\n\n.....................\n.....................\n..#################..\n..#.........#.....#..\n..#.....123.#..,..#..\n..#...12s45.#.....#..\n..#...678.9.##.#.##..\n..#.*.0.0.a.......#..\n..#...............#..\n..#################..\n.....................\n.....................\n)\n\n",[2,3,0,0,0,3,2,1,2,0,3,3,2,4,1,0,3,3,3,3,2,3,3,3,3,2,2,0,0,0,1,0,0,3,3,4,0,4,0,1,1,2,3,2,3],"background: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,background wall:1,1,1,1,1,1,1,1,\n1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,\n0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,\n0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,\n0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,\n0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,\n0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,\n0,0,0,1,0,1,1,1,1,0,0,0,0,1,background elephanta_1:2,background elephanta_6:3,background elephanta_10:4,0,0,0,1,0,\n0,0,0,1,0,0,0,0,1,background elephanta_2:5,background elephanta_7:6,0,1,0,0,1,0,0,0,0,1,0,\n0,0,0,background elephanta_1 wall:7,background elephanta_12:8,background elephanta_8 wall:9,4,0,0,1,1,0,0,0,0,1,0,0,0,0,background elephanta_2 wall:10,background elephanta_4:11,\n0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,background elephanta_3 wall:12,background elephanta_5 wall:13,background elephanta_9:14,background elephanta_11 wall:15,1,1,0,\n1,0,0,0,0,1,0,0,0,0,1,0,background log:16,0,0,0,0,0,0,0,0,0,\n1,0,0,0,0,1,0,0,0,0,0,0,background water:17,0,0,0,0,1,0,0,0,0,\n1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,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,\n",19,"1627893532893.2812"] + "Put the logs in the water, elephant!", + ["title Put the logs in the water, elephant! \nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #222034\ntext_color #cbdbfc\n\nnorepeat_action\n\n(thanks to pancelor + salty_horse for some good suggestions)\n\n========\nOBJECTS\n========\n\nelephantA_1 1\n#1f2f8d #5b6ee1 #cbdbfc\n.0000\n01111\n01111\n01111\n01111\n\nelephantA_2 2\n#1f2f8d #5b6ee1 #cbdbfc\n00000\n11111\n11111\n11111\n11111\n\nelephantA_3 3\n#1f2f8d #5b6ee1 #cbdbfc\n000..\n1110.\n11110\n11110\n11110\n\nelephantA_4 4\n#1f2f8d #5b6ee1 #cbdbfc\n11110\n01111\n11111\n11111\n00000\n\nelephantA_5 5\n#1f2f8d #5b6ee1 #cbdbfc\n11110\n11110\n11110\n11110\n21110\n\n\nelephantA_6 6\n#1f2f8d #5b6ee1 #cbdbfc\n01111\n01111\n01111\n01110\n01110\n\n \nelephantA_7 7\n#1f2f8d #5b6ee1 #cbdbfc\n11111\n11111\n11111\n11111\n00000\n\n\nelephantA_8 8\n#1f2f8d #5b6ee1 #cbdbfc\n11110\n11110\n11110\n01110\n01110\n\nelephantA_9 9\n#1f2f8d #5b6ee1 #cbdbfc\n02110\n01210\n01110\n01110\n01110\n\n\nelephantA_10 0\n#1f2f8d #5b6ee1 #cbdbfc\n01110\n01110\n00000\n01110\n00000\n\n\nelephantA_11 a\n#1f2f8d #5b6ee1 #cbdbfc\n01110\n01110\n01110\n01110\n.000.\n\n\nelephantA_12 s\n#1f2f8d #5b6ee1 #cbdbfc\n01110\n10001\n11111\n11111\n11111\n\nelephantB_11A\n#1f2f8d #5b6ee1 #cbdbfc\n..000\n.0110\n.0111\n.0111\n..000\n\nelephantB_11B\n#1f2f8d #5b6ee1 #cbdbfc\n01110\n01110\n11110\n1110.\n000..\n\nwater\n#45acc1 #57c8e0\n00000\n01000\n00000\n00010\n00000\n\n\nbackground\n#9badb7\n\nwall\n#323c39 #847e87\n00000\n01110\n01110\n01110\n00000\n(\nlog\n#450062 #6f238c #fc76d2\n.111.\n01121\n01111\n01111\n.000.\n)\nlog\n#482b08 #b4711f #f4a84b\n.000.\n01110\n01210\n01110\n.000.\n\nairlog\n#482b08 #b4711f #f4a84b\n.000.\n01110\n01210\n01110\n.000.\n\noob\ntransparent\n\n=======\nLEGEND\n=======\nelephant = elephantA_1 or elephantA_2 or elephantA_3 or elephantA_4 or elephantA_5 or elephantA_6 or elephantA_7 or elephantA_8 or elephantA_9 or elephantA_10 or elephantA_11 or elephantA_12 or elephantB_11A or elephantB_11B or airlog\nplayer = elephant\nobstacle= wall or log\nsolid = obstacle or player\n\n. = Background\n# = Wall\nP = Player\n* = log\n, = water\n; = oob\n@ = log and water\n\nanything = elephant or wall or player or log or water or oob\n=======\nSOUNDS\n=======\n\nsfx0 65393704 (cancel)\nsfx1 80573305 (pickup)\nsfx2 94577706 (drop)\n\nendlevel 31237103\nlog move 66615107\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nwater\nWall, log\nelephant, airlog\noob\n\n======\nRULES\n======\n\n\n\n[ > elephant | log ] -> [ > elephant | > log ]\n[ > log | log ] -> [ > log | > log ]\n\n[ > log | wall ]->cancel\n\n(suck up log if retracting trunk)\ndown [ action elephantA_4 | no log | log ] -> [ action elephantA_4 | airlog | ] sfx1\ndown [ action elephantA_4 | log | no log ] -> [ action elephantA_4 | airlog | ] sfx1\n(cancel retraction if overlaps)\nright [ action elephantA_4 ] [ log | elephantA_11 ] -> cancel sfx0\n\n(retract trunk)\nright [ action elephantA_4 ] [ | elephantA_11 ] -> [ elephantA_4 ] [ elephantB_11A | elephantB_11B ]\n\n(extend trunk)\nright [ action elephantA_4 ] [ elephantB_11A | elephantB_11B ] -> [ action elephantA_4 ] [ | elephantA_11 ]\n(drop log if extending trunk)\ndown [ action elephantA_4 | airlog | no obstacle ] -> [ elephantA_4 | | log ] sfx2\ndown [ action elephantA_4 | airlog | obstacle ] -> cancel sfx0\n\n( late [elephantA_10 water ] -> cancel )\nlate [elephantA_10 log]->cancel\n[> elephantA_10 | wall]->cancel\n\n==============\nWINCONDITIONS\n==============\nall water on log\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 8\n\n.....................\n.....................\n..#################..\n..#.........#.....#..\n..#.....123.#..,..#..\n..#...12s45.#.....#..\n..#...678.9.##.#.##..\n..#.*.0.0.a.......#..\n..#...............#..\n..#################..\n.....................\n.....................\n\nmessage What a good elephant!\n\nmessage level 2 of 8\n\n...............\n...............\n..........###..\n..#########,#..\n..#.........#..\n..#...123..##..\n..#.12s45..#...\n..#.678.9..#...\n..#.0.0.a*.#...\n..#........#...\n..##########...\n...............\n...............\n\nmessage I'm so proud of you elephant!\n\nmessage level 3 of 8\n\n................\n................\n..############..\n..#,.........#..\n..#########..#..\n...#.........#..\n...#...123...#..\n...#.12s45...#..\n...#.678.9.*.#..\n...#.0.0.a...#..\n...#.........#..\n...###########..\n................\n................\n\n(I don't like this level\n.................\n.................\n###############..\n#.............#..\n#.............#..\n#..123........#..\n#12s45***.....#..\n#678.9###.....#..\n#0.0.a,,,.....#..\n###############..)\n\n\nmessage How did you ever think of doing that, elephant?!\n\nmessage level 4 of 8\n\n...................\n...................\n..###############..\n..#.........#...#..\n..#...123.#...#.#..\n..#.12s45...#...#..\n..#.678.9.*.#...#..\n..#.0.0.a...#...#..\n..#.........#...#..\n..##.#.######.,.#..\n..#.............#..\n..###############..\n...................\n...................\n\nmessage I was not expecting that. Splendid work, elephant!\n\nmessage level 5 of 8\n\n...................\n...................\n..###############..\n..#..123........#..\n..#12s45........#..\n..#678.9........#..\n..#0.0.a*.*.....#..\n..#..#..###..#..#..\n..#.....,.,.....#..\n..###############..\n...................\n...................\n\n\nmessage How did you ever think of doing that, elephant?!\n\n\nmessage level 6 of 8\n\n(Difficulty 5843 I'm ok with this level - nice cyclish - recommend to include)\n...;;;;;;;;\n...;;;;;;;;\n..#######;;\n..#...,.#;;\n..#..123#;;\n..#12s45#;;\n..#678,9#;;\n..#0*0*a#;;\n..#.....#;;\n..#######;;\n...;;;;;;;;\n...;;;;;;;;\n\n\n\nmessage You really helped us out of a tight spot. Thanks, elephant!\n\n\nmessage level 7 of 8\n\n......................\n......................\n..##################..\n..#............#...#..\n..#...123....#.....#..\n..#.12s45......#...#..\n..#.678.9.*.#..#...#..\n..#.0.0.a......#...#..\n..#..........#.....#..\n..##.#.#########.,.#..\n..#................#..\n..#########........#..\n..........#........#..\n..........#........#..\n..........##########..\n......................\n......................\n\nmessage You're one dextrous elephant!\n\nmessage level 8 of 8\n\n;;;;;;;;;;;\n;;;;;;;;;;;\n;;#######;;\n;;#,....#;;\n;;#.*123#;;\n;;#12s45#;;\n;;#678#9#;;\n;;#0,0.a#;;\n;;#...*.#;;\n;;#######;;\n;;;;;;;;;;;\n;;;;;;;;;;;\n\nmessage Congratulations! You are the best elephant. And that's saying a lot!\n\n(\n(LEVELCAT:pleasing to solve)\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#,.123#;\n#12s45#;\n#678*9#;\n#0*0,a#;\n#.*..,#;\n#######;\n\n\n\n(kinda nice but no)\n;;;;;;;;\n;;;;;;;;\n#######;\n#..123#;\n#12s45#;\n#678@9#;\n#0*0@a#;\n#@@,@@#;\n#######;\n\n(sovling this level I just felt i missed something stupid)\n;;;;;;;;\n;;;;;;;;\n#######;\n#,.123#;\n#12s45#;\n#678@9#;\n#0.0*a#;\n#.....#;\n#######;\n\n(meh)\n;;;;;;;;\n;;;;;;;;\n#######;\n#.,123#;\n#12s45#;\n#678*9#;\n#0*0,a#;\n#.....#;\n#######;\n\n\n\n;;;;;;;;;;\n;;;;;;;;;;\n;#######;;\n##.....##;\n#...123.#;\n#.12s45.#;\n#.678.9.#;\n#.0.0.a.#;\n##.....##;\n;#######;;\n\n\n;;;;;;;;;\n;;;;;;;;;\n########;\n#...123#;\n#.12s45#;\n#.678.9#;\n#.0.0.a#;\n##.....#;\n;#######;\n\n;;;;;;;;;\n;;;;;;;;;\n########.\n#..123.#.\n#12s45.#.\n#678.9.#.\n#0.0.a.#.\n########.\n\n\n;;;;;;;;;\n;;;;;;;;;\n########.\n#...123#.\n#.12s45#.\n#.678.9#.\n#.0.0.a#.\n########.\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#.....#;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#######;\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#.....#;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#.....#;\n#######;\n\n(kinda like this level, needs to to be dextrous - next level better though)\n;;;;;;;;\n;;;;;;;;\n#######;\n#.,...#;\n#..123#;\n#12s45#;\n#678#9#;\n#0@0.a#;\n#....*#;\n#######;\n\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#.....#;\n#######;\n\n(difficulty 24828)\n\n.;;;;;;;\n.;;;;;;;\n#######;\n#..,..#;\n#..123#;\n#12s45#;\n#678*9#;\n#0.0,a#;\n#....*#;\n#######;\n\n\n(Difficulty 5843)\n.;;;;;;;\n.;;;;;;;\n#######;\n#...,.#;\n#..123#;\n#12s45#;\n#678,9#;\n#0*0*a#;\n#.....#;\n#######;\n\n\n\n(Difficulty 5843 I'm ok with this level - nice cyclish)\n.;;;;;;;\n.;;;;;;;\n#######;\n#...,.#;\n#..123#;\n#12s45#;\n#678,9#;\n#0*0*a#;\n#.....#;\n#######;\n\n\n(not as hard as other ones of this kind, but I was agble to solve it ^^ and it's not so bad? maybe not conceptual enough)\n.;;;;;;;\n.;;;;;;;\n#######;\n#...,.#;\n#.,123#;\n#12s45#;\n#678.9#;\n#0*0*a#;\n#.....#;\n#######;\n\n\n\n(difficulty ~5k - a bit too tricky?)\n.;;;;;;;\n.;;;;;;;\n#######;\n#.,...#;\n#,.123#;\n#12s45#;\n#678*9#;\n#0.0*a#;\n#.....#;\n#######;\n\n\n(silly + not hard, but maybe ok for a final level?)\n;;;;;;;;\n;;;;;;;;\n#######;\n#,*123#;\n#12s45#;\n#678@9#;\n#0@0.a#;\n#######;\n\n\n.;;;;;;;\n.;;;;;;;\n#######;\n#...,.#;\n#.,123#;\n#12s45#;\n#678.9#;\n#0*0*a#;\n#.....#;\n#######;\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#.....#;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#.....#;\n#######;\n\n;;;;;;;;;;\n;;;;;;;;;;\n#########;\n#.......#;\n#...123.#;\n#.12s45.#;\n#.678.9.#;\n#.0.0.a.#;\n#.......#;\n#########;\n\n\n(mildly satisfying but easy?)\n;;;;;;;;;;\n;;;;;;;;;;\n#########;\n#..#...##;\n##.#123,#;\n#.12s45##;\n#.678,9.#;\n#.0*0.a.#;\n#....*..#;\n#########;\n\n(kinda a nice trick but...also not so interesting)\n;;;;;;;;;\n;;;;;;;;;\n########;\n#,.....#;\n#,.123.#;\n#12s45.#;\n#678*9.#;\n#0*0.a.#;\n########;\n\n\n;;;;;;;;;;\n;;;;;;;;;;\n#########;\n#...123.#;\n#.12s45.#;\n#.678.9.#;\n#.0.0.a.#;\n#########;\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#######;\n\n\n;;;;;;;;\n;;;;;;;;\n;;#####;\n###123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#######;\n\n\n;;;;;;;;\n;;;;;;;;\n;;#####;\n###123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#######;\n\n\n;;;;;;;;;;\n;;;;;;;;;;\n#########;\n#.......#;\n#...123.#;\n#.12s45.#;\n#.678.9.#;\n#.0.0.a.#;\n#.......#;\n#########;\n\n;;;;;;;;;;;;;;;;;;\n;;;;;;;;;;;;;;;;;;\n#################;\n#.....123.......#;\n#...12s45.......#;\n#...678.9.......#;\n#...0.0.a.......#;\n#################;\n\n;;;;;;;;;;;;;;;;;;\n;;;;;;;;;;;;;;;;;;\n#################;\n#...............#;\n#.....123.......#;\n#...12s45.......#;\n#...678.9.......#;\n#...0.0.a.......#;\n#...............#;\n#################;\n\n.....................\n.....................\n..#################..\n..#.........#.....#..\n..#.....123.#..,..#..\n..#...12s45.#.....#..\n..#...678.9.##.#.##..\n..#.*.0.0.a.......#..\n..#...............#..\n..#################..\n.....................\n.....................\n)\n\n", [2, 3, 0, 0, 0, 3, 2, 1, 2, 0, 3, 3, 2, 4, 1, 0, 3, 3, 3, 3, 2, 3, 3, 3, 3, 2, 2, 0, 0, 0, 1, 0, 0, 3, 3, 4, 0, 4, 0, 1, 1, 2, 3, 2, 3], "background: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,background wall:1,1,1,1,1,1,1,1,\n1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,\n0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,\n0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,\n0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,\n0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,\n0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,\n0,0,0,1,0,1,1,1,1,0,0,0,0,1,background elephanta_1:2,background elephanta_6:3,background elephanta_10:4,0,0,0,1,0,\n0,0,0,1,0,0,0,0,1,background elephanta_2:5,background elephanta_7:6,0,1,0,0,1,0,0,0,0,1,0,\n0,0,0,background elephanta_1 wall:7,background elephanta_12:8,background elephanta_8 wall:9,4,0,0,1,1,0,0,0,0,1,0,0,0,0,background elephanta_2 wall:10,background elephanta_4:11,\n0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,background elephanta_3 wall:12,background elephanta_5 wall:13,background elephanta_9:14,background elephanta_11 wall:15,1,1,0,\n1,0,0,0,0,1,0,0,0,0,1,0,background log:16,0,0,0,0,0,0,0,0,0,\n1,0,0,0,0,1,0,0,0,0,0,0,background water:17,0,0,0,0,1,0,0,0,0,\n1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,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,\n", 19, "1627893532893.2812"] ], [ - "Pocket Gopher: Root-Shoot Nibbler", - ["title Pocket Gopher: Root-Shoot Nibbler\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color darkblue\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen darkblue\n00000\n00000\n00000\n00000\n00000\n\nnothingness ,\nblack\n\nfallen\nred\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nWall\ndarkred darkblue\n00000\n00010\n00000\n01000\n00000\n\n\nPlayer\nbrown black orange yellow \n.000.\n01010\n00100\n00300\n0...0\n\nPlayer_sad\nbrown black orange yellow blue\n.000.\n00000\n01010\n40100\n0...0\n\n\nvine_empty i\ngreen lightgreen\n.....\n..1..\n.101.\n..1..\n.....\n\n\n\nvine_n 1\ngreen lightgreen\n.101.\n.101.\n.101.\n..1..\n.....\n\nvine_s 2\ngreen lightgreen\n.....\n..1..\n.101.\n.101.\n.101.\n\nvine_e 3\ngreen lightgreen\n.....\n.1111\n10000\n.1111\n.....\n\n\nvine_w 4\ngreen lightgreen\n.....\n1111.\n00001\n1111.\n.....\n\nvine_ns 5\ngreen lightgreen\n.101.\n.101.\n.101.\n.101.\n.101.\n\nvine_ne 6\ngreen lightgreen\n.101.\n.1011\n.1000\n..111\n.....\n\n\nvine_nw 7\ngreen lightgreen\n.101.\n1101.\n0001.\n111..\n.....\n\n\nvine_se 8 \ngreen lightgreen\n.....\n..111\n.1000\n.1011\n.101.\n\n\nvine_sw 9\ngreen lightgreen\n.....\n111..\n0001.\n1101.\n.101.\n\n\nvine_ew 0\ngreen lightgreen\n.....\n11111\n00000\n11111\n.....\n\n\nvine_nse q\ngreen lightgreen\n.101.\n.1011\n.1000\n.1011\n.101.\n\n\nvine_nsw r\ngreen lightgreen\n.101.\n1101.\n0001.\n1101.\n.101.\n\nvine_new t\ngreen lightgreen\n.101.\n11011\n00000\n11111\n.....\n\nvine_sew y\ngreen lightgreen\n.....\n11111\n00000\n11011\n.101.\n\n\nvine_nsew u\ngreen lightgreen\n.101.\n11011\n00000\n11011\n.101.\n\nn\ntransparent\n\ns\ntransparent\n\ne\ntransparent\n\nw\ntransparent\n\nspawn\ntransparent\n\n=======\nLEGEND\n=======\n\nvine_end = vine_n or vine_s or vine_e or vine_w or vine_empty\nvine_body = vine_ns or vine_ne or vine_nw or vine_se or vine_sw or vine_ew or vine_nse or vine_nsw or vine_new or vine_sew or vine_nsew\n\n\no = nothingness and vine_n\nb = nothingness and vine_s\na = nothingness and vine_e\nd = nothingness and vine_w\nf = nothingness and vine_ns\ng = nothingness and vine_ne\nh = nothingness and vine_nw\nj = nothingness and vine_se\n- = nothingness and vine_sw\nk = nothingness and vine_ew\nl = nothingness and vine_nse\nz = nothingness and vine_nsw\nx = nothingness and vine_new\nc = nothingness and vine_sew\nm = nothingness and vine_nsew\n\nvine = vine_body or vine_end\n\nplant = vine_body or vine_end or Player\n\ndir = n or s or e or w\n. = Background\n# = Wall\nP = Player\n\noccupancy = wall or plant\n\n=======\nSOUNDS\n=======\n\nsfx0 86710504 (eat)\nsfx1 73200307 (move vine)\nendlevel 52752109\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nnothingness\nPlayer, Wall, vine,Player_sad\nn\ns\ne\nw\nspawn\nfallen\n\n======\nRULES\n======\n\n(don't forget about the case where you're chasing your tail)\n( [ > player | vine ] -> cancel )\n\n[ moving player ] -> again\n\n[vine_n]->[vine_n n]\n[vine_s]->[vine_s s]\n[vine_e]->[vine_e e]\n[vine_w]->[vine_w w]\n\n[vine_ns]->[vine_ns n s]\n[vine_ne]->[vine_ne n e]\n[vine_nw]->[vine_nw n w]\n\n[vine_se]->[vine_se s e]\n[vine_sw]->[vine_sw s w]\n\n[vine_ew]->[vine_ew e w]\n\n[vine_nse]->[vine_nse n s e]\n[vine_nsw]->[vine_nsw n s w]\n[vine_new]->[vine_new n e w]\n[vine_sew]->[vine_sew s e w]\n\n[vine_nsew]->[vine_nsew n s e w]\n\n[ > player | vine_end ] -> [ > player | no n no s no e no w ] sfx0 (munch)\n\n[ > player | vine_body ] -> [ > player | > vine_body ] sfx1\n\n[ > vine | vine ] -> [ > vine | > vine ]\n+ up [ n moving vine | vine ] -> [ n moving vine | moving vine ]\n+ down [ s moving vine | vine ] -> [ s moving vine | moving vine ]\n+ left [ w moving vine | vine ] -> [ w moving vine | moving vine ]\n+ right [ e moving vine | vine ] -> [ e moving vine | moving vine ]\n\n[ > vine | wall ] -> cancel\n[ > player | wall ] -> cancel\n[ > player | nothingness ] -> cancel\n\nup [ n | no s ] -> [ spawn | ]\ndown [ s | no n ] -> [ spawn | ]\nleft [ w | no e ] -> [ spawn | ]\nright [ e | no w ] -> [ spawn | ]\n\n[ n s e spawn ] -> [ vine_nse ]\n[ n s w spawn ] -> [ vine_nsw ]\n[ n e w spawn ] -> [ vine_new ]\n[ s e w spawn ] -> [ vine_sew ]\n\n[ n s spawn ] -> [ vine_ns ]\n[ n e spawn ] -> [ vine_ne ]\n[ n w spawn ] -> [ vine_nw ]\n\n[ s e spawn ] -> [ vine_se ]\n[ s w spawn ] -> [ vine_sw ]\n\n[ e w spawn ] -> [ vine_ew ]\n\n[ n spawn ] -> [ vine_n ]\n[ s spawn ] -> [ vine_s ]\n[ e spawn ] -> [ vine_e ]\n[ w spawn ] -> [ vine_w ]\n\n[ spawn ] -> [ vine_empty ]\n\n[dir]->[]\n\nlate [vine_n]->[vine_n n]\nlate [vine_s]->[vine_s s]\nlate [vine_e]->[vine_e e]\nlate [vine_w]->[vine_w w]\n\nlate [vine_ns]->[vine_ns n s]\nlate [vine_ne]->[vine_ne n e]\nlate [vine_nw]->[vine_nw n w]\n\nlate [vine_se]->[vine_se s e]\nlate [vine_sw]->[vine_sw s w]\n\nlate [vine_ew]->[vine_ew e w]\n\nlate [vine_nse]->[vine_nse n s e]\nlate [vine_nsw]->[vine_nsw n s w]\nlate [vine_new]->[vine_new n e w]\nlate [vine_sew]->[vine_sew s e w]\n\nlate [vine_nsew]->[vine_nsew n s e w]\n\nlate [ nothingness vine ] -> [nothingness vine fallen ]\n\nlate up [ n vine no fallen | vine ] -> [ n vine | no fallen vine ]\n+ late down [ s vine no fallen | vine ] -> [ s vine | no fallen vine ]\n+ late left [ w vine no fallen | vine ] -> [ w vine | no fallen vine ]\n+ late right [ e vine no fallen | vine ] -> [ e vine | no fallen vine ]\n\nlate [dir]->[]\n\nlate [fallen] [player]->[fallen][Player_sad]\n==============\nWINCONDITIONS\n==============\nno vine\n\n=======\nLEVELS\n=======\n\n\n\nmessage Level 1 of 5\n\nmessage I like eating roots, but only from the end.\n\n#############\n#...........#\n#....p......#\n#...........#\n#.2892.,,,,,#\n#.5555.,89..#\n#.6767.,11..#\n#......,....#\n#......,....#\n#############\n\n\nmessage Level 2 of 5\n\nmessage who starts eating roots from the middle? That's ridiculous.\n\n###########\n#.........#\n#.........#\n#....2....#\n#...amd...#\n#...,o,...#\n#...,b,...#\n#...amd...#\n#....1..2.#\n#......37.#\n#........p#\n###########\n\n\nmessage Level 3 of 5\nmessage Would you eat a banana from the middle? Why would you eat roots from the middle, then?!\n\n###########\n#.........#\n#.........#\n#...304...#\n#.........#\n#.2.222.2.#\n#.5.fff.5.#\n#.1.111.1.#\n#.........#\n#.p.304...#\n#.........#\n#.........#\n###########\n\n\nmessage Level 4 of 5\nmessage Would you read a book from the middle? You wouldn't; that's just stupid!\n\n#########\n#.......#\n#.,,,,,.#\n#.,jk-,.#\n#.,fbf,.#\n#.,fgh,.#\n#..1....#\n#....804#\n#....5p.#\n#....1..#\n#########\n\n\nmessage Level 5 of 5\nmessage Would you like to be born middle-aged and grow younger and older at the same time? NO YOU WOULDN'T!\n\n###########\n#.........#\n#.........#\n#...304...#\n#.........#\n#.2.bbb.2.#\n#.5.fff.5.#\n#.1.111.1.#\n#.........#\n#.p.304...#\n#.........#\n#.........#\n###########\n\nmessage Congratulations! You reached the end of the game, which is the best part!\n\n(\n\n###########\n#.........#\n#.........#\n#....2....#\n#...amd...#\n#...,o,...#\n#...,b,...#\n#...amd...#\n#....1..2.#\n#......37.#\n#........p#\n###########\n\n#############\n#...........#\n#...,,,bjd,.#\n#...ba-lhb,.#\n#.39fjzfjh,.#\n#..6mzgxz,,.#\n#..3hlcdo,,.#\n#.p.aho,,,,.#\n#...........#\n#############\n\n\n###########\n#.........#\n#.........#\n#..84.39..#\n#..1...1..#\n#...bbb...#\n#...fff...#\n#...111...#\n#..2...2..#\n#..64.37..#\n#....p....#\n#.........#\n###########\n\n#####################\n#...................#\n#...................#\n#.......j4.3-.......#\n#.......1...1.......#\n#...................#\n#.......2...2.......#\n#.......g4.3h.......#\n#...................#\n#...................#\n#.........2.........#\n#.........5.........#\n#.......30u04.......#\n#.........5.........#\n#.......p.1.........#\n#...................#\n#####################\n\n#####################\n#...................#\n#.......,,.,,.......#\n#......,j4.3-,......#\n#......,1...1,......#\n#...................#\n#......,2...2,......#\n#......,g4.3h,......#\n#.......,,.,,.......#\n#...................#\n#.........2.........#\n#.........5.........#\n#.......30u04.......#\n#.........5.........#\n#.......p.1.........#\n#...................#\n#####################\n\n##################\n#...........,....#\n#...........,....#\n#...........,....#\n#...........,....#\n#.......2...,....#e\n#......3u4..,....#\n#..309..1...,....#\n#....5......,..34#\n#..p.1..2...,,,.,#\n#......3u4.....,.#\n#.......1........#\n#................#\n#................#\n##################\n\n\n\n###############################################\n#.......................,...............,.....#\n#.......................,...............,.....#\n#......................2................,.....#\n#.....................p5.2..............,.....#\n#......................60780004.........,.....#\n#.......................,.5.............,.....#\n#.......................,.5.............,.....#\n#.......................,.5.............,.....#\n#.......................,.6000484.....39,.....#\n#.......................,......5.......5a4....#\n#.......................,......5.......5,.....#\n#.......................,......5.......5a4....#\n#.......................,......5.......5,.....#\n#.......................,......5.......5a4....#\n#.......................,......5.......5,.....#\n#.......................,......5.......5a4....#\n#.......................,......600000007,.....#\n#.......................,...............,.....#\n#.......................,,,,,,,,,,,,,,,,,.....#\n#.............................................#\n###############################################\n\n\n)\n",[0,4,2,2,1,0,0,0,1,1],"background wall:0,0,0,0,0,0,0,0,0,\n0,0,0,background:1,1,1,1,1,1,\n1,1,1,0,0,1,background nothingness:2,2,2,\n2,1,1,1,1,0,0,1,2,\nbackground fallen nothingness vine_se:3,background fallen nothingness vine_ns:4,background fallen nothingness vine_n:5,background player_sad:6,1,1,1,0,0,\n1,2,background fallen nothingness vine_ew:7,background fallen nothingness vine_s:8,background fallen nothingness vine_ne:9,1,1,1,1,\n0,0,1,2,background fallen nothingness vine_sw:10,4,background fallen nothingness vine_nw:11,1,1,\n1,1,0,0,1,2,2,2,2,\nbackground vine_e:12,1,1,1,0,0,1,1,1,\n1,1,background vine_w:13,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,\n",11,"1627893552932.8503"] + "Pocket Gopher: Root-Shoot Nibbler", + ["title Pocket Gopher: Root-Shoot Nibbler\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color darkblue\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen darkblue\n00000\n00000\n00000\n00000\n00000\n\nnothingness ,\nblack\n\nfallen\nred\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nWall\ndarkred darkblue\n00000\n00010\n00000\n01000\n00000\n\n\nPlayer\nbrown black orange yellow \n.000.\n01010\n00100\n00300\n0...0\n\nPlayer_sad\nbrown black orange yellow blue\n.000.\n00000\n01010\n40100\n0...0\n\n\nvine_empty i\ngreen lightgreen\n.....\n..1..\n.101.\n..1..\n.....\n\n\n\nvine_n 1\ngreen lightgreen\n.101.\n.101.\n.101.\n..1..\n.....\n\nvine_s 2\ngreen lightgreen\n.....\n..1..\n.101.\n.101.\n.101.\n\nvine_e 3\ngreen lightgreen\n.....\n.1111\n10000\n.1111\n.....\n\n\nvine_w 4\ngreen lightgreen\n.....\n1111.\n00001\n1111.\n.....\n\nvine_ns 5\ngreen lightgreen\n.101.\n.101.\n.101.\n.101.\n.101.\n\nvine_ne 6\ngreen lightgreen\n.101.\n.1011\n.1000\n..111\n.....\n\n\nvine_nw 7\ngreen lightgreen\n.101.\n1101.\n0001.\n111..\n.....\n\n\nvine_se 8 \ngreen lightgreen\n.....\n..111\n.1000\n.1011\n.101.\n\n\nvine_sw 9\ngreen lightgreen\n.....\n111..\n0001.\n1101.\n.101.\n\n\nvine_ew 0\ngreen lightgreen\n.....\n11111\n00000\n11111\n.....\n\n\nvine_nse q\ngreen lightgreen\n.101.\n.1011\n.1000\n.1011\n.101.\n\n\nvine_nsw r\ngreen lightgreen\n.101.\n1101.\n0001.\n1101.\n.101.\n\nvine_new t\ngreen lightgreen\n.101.\n11011\n00000\n11111\n.....\n\nvine_sew y\ngreen lightgreen\n.....\n11111\n00000\n11011\n.101.\n\n\nvine_nsew u\ngreen lightgreen\n.101.\n11011\n00000\n11011\n.101.\n\nn\ntransparent\n\ns\ntransparent\n\ne\ntransparent\n\nw\ntransparent\n\nspawn\ntransparent\n\n=======\nLEGEND\n=======\n\nvine_end = vine_n or vine_s or vine_e or vine_w or vine_empty\nvine_body = vine_ns or vine_ne or vine_nw or vine_se or vine_sw or vine_ew or vine_nse or vine_nsw or vine_new or vine_sew or vine_nsew\n\n\no = nothingness and vine_n\nb = nothingness and vine_s\na = nothingness and vine_e\nd = nothingness and vine_w\nf = nothingness and vine_ns\ng = nothingness and vine_ne\nh = nothingness and vine_nw\nj = nothingness and vine_se\n- = nothingness and vine_sw\nk = nothingness and vine_ew\nl = nothingness and vine_nse\nz = nothingness and vine_nsw\nx = nothingness and vine_new\nc = nothingness and vine_sew\nm = nothingness and vine_nsew\n\nvine = vine_body or vine_end\n\nplant = vine_body or vine_end or Player\n\ndir = n or s or e or w\n. = Background\n# = Wall\nP = Player\n\noccupancy = wall or plant\n\n=======\nSOUNDS\n=======\n\nsfx0 86710504 (eat)\nsfx1 73200307 (move vine)\nendlevel 52752109\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nnothingness\nPlayer, Wall, vine,Player_sad\nn\ns\ne\nw\nspawn\nfallen\n\n======\nRULES\n======\n\n(don't forget about the case where you're chasing your tail)\n( [ > player | vine ] -> cancel )\n\n[ moving player ] -> again\n\n[vine_n]->[vine_n n]\n[vine_s]->[vine_s s]\n[vine_e]->[vine_e e]\n[vine_w]->[vine_w w]\n\n[vine_ns]->[vine_ns n s]\n[vine_ne]->[vine_ne n e]\n[vine_nw]->[vine_nw n w]\n\n[vine_se]->[vine_se s e]\n[vine_sw]->[vine_sw s w]\n\n[vine_ew]->[vine_ew e w]\n\n[vine_nse]->[vine_nse n s e]\n[vine_nsw]->[vine_nsw n s w]\n[vine_new]->[vine_new n e w]\n[vine_sew]->[vine_sew s e w]\n\n[vine_nsew]->[vine_nsew n s e w]\n\n[ > player | vine_end ] -> [ > player | no n no s no e no w ] sfx0 (munch)\n\n[ > player | vine_body ] -> [ > player | > vine_body ] sfx1\n\n[ > vine | vine ] -> [ > vine | > vine ]\n+ up [ n moving vine | vine ] -> [ n moving vine | moving vine ]\n+ down [ s moving vine | vine ] -> [ s moving vine | moving vine ]\n+ left [ w moving vine | vine ] -> [ w moving vine | moving vine ]\n+ right [ e moving vine | vine ] -> [ e moving vine | moving vine ]\n\n[ > vine | wall ] -> cancel\n[ > player | wall ] -> cancel\n[ > player | nothingness ] -> cancel\n\nup [ n | no s ] -> [ spawn | ]\ndown [ s | no n ] -> [ spawn | ]\nleft [ w | no e ] -> [ spawn | ]\nright [ e | no w ] -> [ spawn | ]\n\n[ n s e spawn ] -> [ vine_nse ]\n[ n s w spawn ] -> [ vine_nsw ]\n[ n e w spawn ] -> [ vine_new ]\n[ s e w spawn ] -> [ vine_sew ]\n\n[ n s spawn ] -> [ vine_ns ]\n[ n e spawn ] -> [ vine_ne ]\n[ n w spawn ] -> [ vine_nw ]\n\n[ s e spawn ] -> [ vine_se ]\n[ s w spawn ] -> [ vine_sw ]\n\n[ e w spawn ] -> [ vine_ew ]\n\n[ n spawn ] -> [ vine_n ]\n[ s spawn ] -> [ vine_s ]\n[ e spawn ] -> [ vine_e ]\n[ w spawn ] -> [ vine_w ]\n\n[ spawn ] -> [ vine_empty ]\n\n[dir]->[]\n\nlate [vine_n]->[vine_n n]\nlate [vine_s]->[vine_s s]\nlate [vine_e]->[vine_e e]\nlate [vine_w]->[vine_w w]\n\nlate [vine_ns]->[vine_ns n s]\nlate [vine_ne]->[vine_ne n e]\nlate [vine_nw]->[vine_nw n w]\n\nlate [vine_se]->[vine_se s e]\nlate [vine_sw]->[vine_sw s w]\n\nlate [vine_ew]->[vine_ew e w]\n\nlate [vine_nse]->[vine_nse n s e]\nlate [vine_nsw]->[vine_nsw n s w]\nlate [vine_new]->[vine_new n e w]\nlate [vine_sew]->[vine_sew s e w]\n\nlate [vine_nsew]->[vine_nsew n s e w]\n\nlate [ nothingness vine ] -> [nothingness vine fallen ]\n\nlate up [ n vine no fallen | vine ] -> [ n vine | no fallen vine ]\n+ late down [ s vine no fallen | vine ] -> [ s vine | no fallen vine ]\n+ late left [ w vine no fallen | vine ] -> [ w vine | no fallen vine ]\n+ late right [ e vine no fallen | vine ] -> [ e vine | no fallen vine ]\n\nlate [dir]->[]\n\nlate [fallen] [player]->[fallen][Player_sad]\n==============\nWINCONDITIONS\n==============\nno vine\n\n=======\nLEVELS\n=======\n\n\n\nmessage Level 1 of 5\n\nmessage I like eating roots, but only from the end.\n\n#############\n#...........#\n#....p......#\n#...........#\n#.2892.,,,,,#\n#.5555.,89..#\n#.6767.,11..#\n#......,....#\n#......,....#\n#############\n\n\nmessage Level 2 of 5\n\nmessage who starts eating roots from the middle? That's ridiculous.\n\n###########\n#.........#\n#.........#\n#....2....#\n#...amd...#\n#...,o,...#\n#...,b,...#\n#...amd...#\n#....1..2.#\n#......37.#\n#........p#\n###########\n\n\nmessage Level 3 of 5\nmessage Would you eat a banana from the middle? Why would you eat roots from the middle, then?!\n\n###########\n#.........#\n#.........#\n#...304...#\n#.........#\n#.2.222.2.#\n#.5.fff.5.#\n#.1.111.1.#\n#.........#\n#.p.304...#\n#.........#\n#.........#\n###########\n\n\nmessage Level 4 of 5\nmessage Would you read a book from the middle? You wouldn't; that's just stupid!\n\n#########\n#.......#\n#.,,,,,.#\n#.,jk-,.#\n#.,fbf,.#\n#.,fgh,.#\n#..1....#\n#....804#\n#....5p.#\n#....1..#\n#########\n\n\nmessage Level 5 of 5\nmessage Would you like to be born middle-aged and grow younger and older at the same time? NO YOU WOULDN'T!\n\n###########\n#.........#\n#.........#\n#...304...#\n#.........#\n#.2.bbb.2.#\n#.5.fff.5.#\n#.1.111.1.#\n#.........#\n#.p.304...#\n#.........#\n#.........#\n###########\n\nmessage Congratulations! You reached the end of the game, which is the best part!\n\n(\n\n###########\n#.........#\n#.........#\n#....2....#\n#...amd...#\n#...,o,...#\n#...,b,...#\n#...amd...#\n#....1..2.#\n#......37.#\n#........p#\n###########\n\n#############\n#...........#\n#...,,,bjd,.#\n#...ba-lhb,.#\n#.39fjzfjh,.#\n#..6mzgxz,,.#\n#..3hlcdo,,.#\n#.p.aho,,,,.#\n#...........#\n#############\n\n\n###########\n#.........#\n#.........#\n#..84.39..#\n#..1...1..#\n#...bbb...#\n#...fff...#\n#...111...#\n#..2...2..#\n#..64.37..#\n#....p....#\n#.........#\n###########\n\n#####################\n#...................#\n#...................#\n#.......j4.3-.......#\n#.......1...1.......#\n#...................#\n#.......2...2.......#\n#.......g4.3h.......#\n#...................#\n#...................#\n#.........2.........#\n#.........5.........#\n#.......30u04.......#\n#.........5.........#\n#.......p.1.........#\n#...................#\n#####################\n\n#####################\n#...................#\n#.......,,.,,.......#\n#......,j4.3-,......#\n#......,1...1,......#\n#...................#\n#......,2...2,......#\n#......,g4.3h,......#\n#.......,,.,,.......#\n#...................#\n#.........2.........#\n#.........5.........#\n#.......30u04.......#\n#.........5.........#\n#.......p.1.........#\n#...................#\n#####################\n\n##################\n#...........,....#\n#...........,....#\n#...........,....#\n#...........,....#\n#.......2...,....#e\n#......3u4..,....#\n#..309..1...,....#\n#....5......,..34#\n#..p.1..2...,,,.,#\n#......3u4.....,.#\n#.......1........#\n#................#\n#................#\n##################\n\n\n\n###############################################\n#.......................,...............,.....#\n#.......................,...............,.....#\n#......................2................,.....#\n#.....................p5.2..............,.....#\n#......................60780004.........,.....#\n#.......................,.5.............,.....#\n#.......................,.5.............,.....#\n#.......................,.5.............,.....#\n#.......................,.6000484.....39,.....#\n#.......................,......5.......5a4....#\n#.......................,......5.......5,.....#\n#.......................,......5.......5a4....#\n#.......................,......5.......5,.....#\n#.......................,......5.......5a4....#\n#.......................,......5.......5,.....#\n#.......................,......5.......5a4....#\n#.......................,......600000007,.....#\n#.......................,...............,.....#\n#.......................,,,,,,,,,,,,,,,,,.....#\n#.............................................#\n###############################################\n\n\n)\n", [0, 4, 2, 2, 1, 0, 0, 0, 1, 1], "background wall:0,0,0,0,0,0,0,0,0,\n0,0,0,background:1,1,1,1,1,1,\n1,1,1,0,0,1,background nothingness:2,2,2,\n2,1,1,1,1,0,0,1,2,\nbackground fallen nothingness vine_se:3,background fallen nothingness vine_ns:4,background fallen nothingness vine_n:5,background player_sad:6,1,1,1,0,0,\n1,2,background fallen nothingness vine_ew:7,background fallen nothingness vine_s:8,background fallen nothingness vine_ne:9,1,1,1,1,\n0,0,1,2,background fallen nothingness vine_sw:10,4,background fallen nothingness vine_nw:11,1,1,\n1,1,0,0,1,2,2,2,2,\nbackground vine_e:12,1,1,1,0,0,1,1,1,\n1,1,background vine_w:13,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,\n", 11, "1627893552932.8503"] ], [ - "North Wind Simple Sailboat Buoy Collection", - ["(MOVEMENT SHOULD BE DETERMINED BY TARGET DIRECTION not current one)\n\ntitle North Wind Simple Sailboat Buoy Collection\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #255474\ntext_color #caa786\n\nnorepeat_action\nrun_rules_on_level_start\nagain_interval 0.4\nrealtime_interval 1\n( debug )\n( verbose_logging )\n\nnoundo\n\n========\nOBJECTS\n========\n\nbuoy b\n#ac3232 #847e87\n.....\n..10.\n..1..\n..0..\n.000.\n\nBackground\n#5fcde4 #48bbd3\n00000\n00100\n01010\n10001\n00000\n\nland\n#37946e #25855e\n00000\n01000\n00000\n00010\n00000\n\npontoon1 t\n#8d614c #9e7650\n00000\n10101\n10101\n00000\n.0.0.\n\npontoon2 y\n#8d614c #9e7650\n00000\n01010\n01010\n00000\n.0.0.\n\npontoon3 u\n#8d614c #9e7650\n00000\n01110\n00000\n01110\n00000\n\npontoon4 i\n#8d614c #9e7650\n01110\n00000\n01110\n00000\n01110\n\n\npontoon5 o\n#8d614c #9e7650\n01110\n00000\n01110\n00000\n0...0\n\nmountain1\n#16724c\n....0\n...00\n..000\n.0000\n00.0.\n\nmountain2\n#16724c\n00000\n00000\n00000\n00000\n0.0.0\n\nmountain3\n#16724c\n0....\n00...\n000..\n0000.\n.0.00\n\nmountain4\n#16724c\n.....\n.....\n..0..\n.000.\n00000\n\ntree\n#37946e #8d614c #16724c\n00000\n00200\n02220\n00100\n00000\n\nmountain_blue1\n#306082\n00000\n00000\n00000\n00000\n.....\n\nmountain_blue2\n#306082 #9badb7\n....1\n...11\n..110\n.0000\n00000\n\nmountain_blue3\n#306082 #9badb7\n1....\n11...\n101..\n0000.\n00000\n\n\nrock\n#255474 #306082 #3f7296 #4e7ea1 \n..13.\n.0112\n00121\n01102\n.000.\n\n\ncoast_n\n#37946e #25855e #caa786\n22222\n.222.\n.....\n.....\n.....\n\ncoast_ne\n#37946e #25855e #caa786 #5fcde4\n22223\n.2222\n...22\n...22\n....2\n\ncoast_e\n#37946e #25855e #caa786\n....2\n...22\n...22\n...22\n....2\n\ncoast_se\n#37946e #25855e #caa786 #5fcde4\n....2\n....2\n...22\n.2222\n22223\n\ncoast_s\n#37946e #25855e #caa786\n.....\n.....\n.....\n.222.\n22222\n\ncoast_sw\n#37946e #25855e #caa786 #5fcde4\n2....\n22...\n22...\n2222.\n32222\n\ncoast_w\n#37946e #25855e #caa786\n2....\n22...\n22...\n22...\n2....\n\ncoast_nw\n#37946e #25855e #caa786 #5fcde4\n32222\n2222.\n22...\n22...\n2....\n\nhouse1\n#caa786 #8d614c #9e7650\n..000\n..000\n11111\n00000\n00020\n\nhouse2\n#caa786 #8d614c #9e7650\n.....\n.....\n.....\n...1.\n..111\n\nhouse3\n#caa786 #8d614c #9e7650\n.....\n11111\n12121\n00000\n00000\n\nhouse4\n#caa786 #8d614c #9e7650\n.....\n..1..\n.111.\n.000.\n.020.\n\n\n\n\nPlayer\n#639bff\n.....\n.....\n..0..\n.....\n.....\n\nheading_n\ntransparent\n\nheading_ne\ntransparent\n\nheading_e\ntransparent\n\nheading_se\ntransparent\n\nheading_s\ntransparent\n\nheading_sw\ntransparent\n\nheading_w\ntransparent\n\nheading_nw\ntransparent\n\nwreck_1\n#667598 #a9b5d0 brown #639bff #ffffff #d2dde3\n.000.\n01310\n01140\n0145.\n.0054\n\nwreck_2\n#667598 #a9b5d0 brown #639bff #ffffff #d2dde3\n.000.\n01110\n.1110\n..110\n.2.0.\n\nhull_n_bow\n#667598 #a9b5d0 brown\n.000.\n01110\n01110\n01110\n01110\n\nhull_n_stern\n#667598 #a9b5d0 brown\n01110\n01110\n.000.\n.....\n.....\n\nhull_n_rl\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n.2...\n2....\n\nhull_n_rc\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n..2..\n..2..\n\nhull_n_rr\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n...2.\n....2\n\nhull_ne_bow\n#667598 #a9b5d0 brown\n.00..\n0110.\n11110\n11110\n1110.\n\nhull_ne_stern\n#667598 #a9b5d0 brown\n.0111\n.0111\n..011\n...00\n.....\n\n\n\nhull_ne_rl\n#667598 #a9b5d0 brown\n.....\n.....\n22...\n.....\n.....\n\nhull_ne_rc\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n.2...\n2....\n\nhull_ne_rr\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n..2..\n..2..\n\nhull_e_bow\n#667598 #a9b5d0 brown\n0000.\n11110\n11110\n11110\n0000.\n\nhull_e_stern\n#667598 #a9b5d0 brown\n...00\n..011\n..011\n..011\n...00\n\nhull_e_rl\n#667598 #a9b5d0 brown\n2....\n.2...\n.....\n.....\n.....\n\nhull_e_rc\n#667598 #a9b5d0 brown\n.....\n.....\n22...\n.....\n.....\n\nhull_e_rr\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n.2...\n2....\n\n\n\nhull_se_bow\n#667598 #a9b5d0 brown\n1110.\n11110\n11110\n0110.\n.00..\n\nhull_se_stern\n#667598 #a9b5d0 brown\n.....\n...00\n..011\n.0111\n.0111\n\n\nhull_se_rl\n#667598 #a9b5d0 brown\n..2..\n..2..\n.....\n.....\n.....\n\nhull_se_rc\n#667598 #a9b5d0 brown\n2....\n.2...\n.....\n.....\n.....\n\nhull_se_rr\n#667598 #a9b5d0 brown\n.....\n.....\n22...\n.....\n.....\n\n\nhull_s_bow\n#667598 #a9b5d0 brown\n01110\n01110\n01110\n01110\n.000.\n\nhull_s_stern\n#667598 #a9b5d0 brown\n.....\n.....\n.000.\n01110\n01110\n\n\nhull_s_rl\n#667598 #a9b5d0 brown\n....2\n...2.\n.....\n.....\n.....\n\nhull_s_rc\n#667598 #a9b5d0 brown\n..2..\n..2..\n.....\n.....\n.....\n\nhull_s_rr\n#667598 #a9b5d0 brown\n2....\n.2...\n.....\n.....\n.....\n\nhull_sw_bow\n#667598 #a9b5d0 brown\n.0111\n01111\n01111\n.0110\n..00.\n\nhull_sw_stern\n#667598 #a9b5d0 brown\n.....\n00...\n110..\n1110.\n1110.\n\n\nhull_sw_rl\n#667598 #a9b5d0 brown\n.....\n.....\n...22\n.....\n.....\n\nhull_sw_rc\n#667598 #a9b5d0 brown\n....2\n...2.\n.....\n.....\n.....\n\nhull_sw_rr\n#667598 #a9b5d0 brown\n..2..\n..2..\n.....\n.....\n.....\n\nhull_w_bow\n#667598 #a9b5d0 brown\n.0000\n01111\n01111\n01111\n.0000\n\nhull_w_stern\n#667598 #a9b5d0 brown\n00...\n110..\n110..\n110..\n00...\n\n\n\nhull_w_rl\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n...2.\n....2\n\nhull_w_rc\n#667598 #a9b5d0 brown\n.....\n.....\n...22\n.....\n.....\n\nhull_w_rr\n#667598 #a9b5d0 brown\n....2\n...2.\n.....\n.....\n.....\n\n\nhull_nw_bow\n#667598 #a9b5d0 brown\n..00.\n.0110\n01111\n01111\n.0111\n\nhull_nw_stern\n#667598 #a9b5d0 brown\n1110.\n1110.\n110..\n00...\n.....\n\n\n\nhull_nw_rl\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n..2..\n..2..\n\nhull_nw_rc\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n...2.\n....2\n\nhull_nw_rr\n#667598 #a9b5d0 brown\n.....\n.....\n...22\n.....\n.....\n\n\nhull_diag_nw\n#667598 #a9b5d0 brown\n.....\n.....\n....0\n...01\n..011\n\n\nhull_diag_ne\n#667598 #a9b5d0 brown\n.....\n.....\n0....\n10...\n110..\n\n\nhull_diag_se\n#667598 #a9b5d0 brown\n110..\n10...\n0....\n.....\n.....\n\n\n\n\n\nhull_diag_sw\n#667598 #a9b5d0 brown\n..011\n...01\n....0\n.....\n.....\n\nsail_n_1\n#d2dde3 white\n..01.\n..1..\n.....\n.....\n.....\n\nsail_n_2\n#d2dde3 white\n.....\n.....\n..1..\n.10..\n..1..\n\n\nsail_ne_1\n#d2dde3 white\n....0\n...11\n.....\n.....\n.....\n\nsail_ne_2\n#d2dde3 white\n1....\n.....\n.....\n.....\n.....\n\nsail_ne_3\n#d2dde3 white\n.....\n.....\n..1..\n.01..\n01...\n\nsail_e_1\n#d2dde3 white\n.....\n.....\n...10\n....1\n.....\n\nsail_e_2\n#d2dde3 white\n.....\n.....\n001..\n11...\n.....\n\n\nsail_se_1\n#d2dde3 white\n.....\n.....\n.....\n...1.\n...10\n\nsail_se_2\n#d2dde3 white\n....1\n.....\n.....\n.....\n.....\n\nsail_se_3\n#d2dde3 white\n0....\n10...\n.11..\n.....\n.....\n\n\n\nsail_s_1\n#d2dde3 white\n.....\n.....\n.....\n..1..\n.10..\n\nsail_s_2\n#d2dde3 white\n..1..\n..01.\n..1..\n.....\n.....\n\n\nsail_sw_1\n#d2dde3 white\n.....\n.....\n.....\n.1...\n01...\n\nsail_sw_2\n#d2dde3 white\n1....\n.....\n.....\n.....\n.....\n\nsail_sw_3\n#d2dde3 white\n....0\n...01\n..11.\n.....\n.....\n\n\n\n\nsail_w_1\n#d2dde3 white\n.....\n.....\n01...\n1....\n.....\n\nsail_w_2\n#d2dde3 white\n.....\n.....\n..100\n...11\n.....\n\n\nsail_nw_1\n#d2dde3 white\n0....\n11...\n.....\n.....\n.....\n\nsail_nw_2\n#d2dde3 white\n....1\n.....\n.....\n.....\n.....\n\nsail_nw_3\n#d2dde3 white\n.....\n.....\n..1..\n..10.\n...10\n\nrudderdir_l\ntransparent\n\nrudderdir_c\ntransparent\n\nrudderdir_r\ntransparent\n\nsail_direction_n\ntransparent\n\nsail_direction_ne\ntransparent\n\nsail_direction_e\ntransparent\n\nsail_direction_se\ntransparent\n\nsail_direction_s\ntransparent\n\nsail_direction_sw\ntransparent\n\nsail_direction_w\ntransparent\n\nsail_direction_nw\ntransparent\n\ntension_0\ntransparent\n\ntension_1\ntransparent\n\ntension_2\ntransparent\n\nsail_side_right\ntransparent\n\nsail_side_left\ntransparent\n\ncordslack_0\ntransparent\n\ncordslack_1\ntransparent\n\ncordslack_2\ntransparent\n\nsailcord_n\n#d0535f\n..0..\n..0..\n..0..\n.....\n.....\n\nsailcord_ne\n#d0535f\n....0\n...0.\n..0..\n.....\n.....\n\nsailcord_e\n#d0535f\n.....\n.....\n..000\n.....\n.....\n\nsailcord_se\n#d0535f\n.....\n.....\n..0..\n...0.\n....0\n\nsailcord_s\n#d0535f\n.....\n.....\n..0..\n..0..\n..0..\n\n\n\nsailcord_sw\n#d0535f\n.....\n.....\n..0..\n.0...\n0....\n\n\nsailcord_w\n#d0535f\n.....\n.....\n000..\n.....\n.....\n\n\n\nsailcord_nw\n#d0535f\n0....\n.0...\n..0..\n.....\n.....\n\n\nsailcord_ns\n#d0535f\n..0..\n..0..\n..0..\n..0..\n..0..\n\nsailcord_ew\n#d0535f\n.....\n.....\n00000\n.....\n.....\n\nsailcord_cordslack_south_1\n#d0535f\n.....\n.....\n..0..\n.0.0.\n..0..\n\nsailcord_cordslack_south_2\n#d0535f\n.....\n.....\n.000.\n0...0\n.000.\n\nsailcord_cordslack_south_left\n#d0535f\n.....\n.....\n.....\n..0..\n...00\n\nsailcord_cordslack_south_right\n#d0535f\n.....\n.....\n.....\n..0..\n00...\n\nagaining\ntransparent\n\nmovement_n\ntransparent\n\nmovement_ne\ntransparent\n\nmovement_e\ntransparent\n\nmovement_se\ntransparent\n\nmovement_s\ntransparent\n\nmovement_sw\ntransparent\n\nmovement_w\ntransparent\n\nmovement_nw\ntransparent\n\nmovement_target\ntransparent\n\nhasturned\ntransparent\n\ndomove\ntransparent\n\n=======\nLEGEND\n=======\n\nhouse = house1 or house2 or house3 or house4\ncoast = coast_n or coast_ne or coast_e or coast_se or coast_s or coast_sw or coast_w or coast_nw\n\n\nsailcord = sailcord_n or sailcord_ne or sailcord_e or sailcord_Se or sailcord_s or sailcord_Sw or sailcord_w or sailcord_nw or sailcord_cordslack_south_1 or sailcord_cordslack_south_2 or sailcord_cordslack_south_left or sailcord_cordslack_south_right or sailcord_ns or sailcord_ew\n\nrudder = hull_n_rl or hull_n_rc or hull_n_rr or hull_ne_rl or hull_ne_rc or hull_ne_rr or hull_e_rl or hull_e_rc or hull_e_rr or hull_se_rl or hull_se_rc or hull_se_rr or hull_s_rl or hull_s_rc or hull_s_rr or hull_sw_rl or hull_sw_rc or hull_sw_rr or hull_w_rl or hull_w_rc or hull_w_rr or hull_nw_rl or hull_nw_rc or hull_nw_rr \n\nhull = hull_n_bow or hull_n_stern or hull_ne_bow or hull_ne_stern or hull_e_bow or hull_e_stern or hull_se_bow or hull_se_stern or hull_s_bow or hull_s_stern or hull_nw_bow or hull_nw_stern or hull_w_bow or hull_w_stern or hull_sw_bow or hull_sw_stern or hull_diag_ne or hull_diag_se or hull_diag_sw or hull_diag_nw\n\nhull_stern = hull_n_stern or hull_ne_stern or hull_e_stern or hull_se_stern or hull_s_stern or hull_sw_stern or hull_w_stern or hull_nw_stern \n\nheading = heading_n or heading_ne or heading_e or heading_se or heading_s or heading_sw or heading_w or heading_nw\n\nrudderdir = rudderdir_l or rudderdir_c or rudderdir_r\n\nsail = sail_n_1 or sail_n_2 or sail_ne_1 or sail_ne_2 or sail_ne_3 or sail_e_1 or sail_e_2 or sail_se_1 or sail_se_2 or sail_se_3 or sail_s_1 or sail_s_2 or sail_sw_1 or sail_sw_2 or sail_sw_3 or sail_w_1 or sail_w_2 or sail_nw_1 or sail_nw_2 or sail_nw_3 \n\nsail_direction = sail_direction_n or sail_direction_ne or sail_direction_e or sail_direction_se or sail_direction_s or sail_direction_sw or sail_direction_w or sail_direction_nw \n\nmountain = mountain1 or mountain2 or mountain3 or mountain4\nmountain_blue = mountain_blue1 or mountain_blue2 or mountain_blue3\npontoon = pontoon1 or pontoon2 or pontoon3 or pontoon4 or pontoon5\n\nobstacle = land or rock or pontoon\n\ntension = tension_0 or tension_1 or tension_2\nsail_side = sail_side_right or sail_side_left\ncordslack = cordslack_0 or cordslack_1 or cordslack_2\nmovement = movement_n or movement_ne or movement_e or movement_se or movement_s or movement_sw or movement_w or movement_nw\n\nwreck = wreck_1 or wreck_2\n\n. = Background\nP = Player and heading_e and rudderdir_c and tension_2 and sail_side_left\n\nw = land and coast_n\ne = land and coast_ne\nd = land and coast_e\nc = land and coast_se\nx = land and coast_s\nz = land and coast_sw\na = land and coast_w\nq = land and coast_nw\ns = land \nf = house1 and land\ng = house2 and land\nh = house3 and land\nj = house4 and land\nv = mountain1 and land\n, = mountain2 and land\nn = mountain3 and land\nm = mountain4 and land\nl = mountain_blue1 and land and mountain1\n; = mountain_blue1 and land and mountain3\n' = mountain_blue2 and land \n# = mountain_blue3 and land \n- = tree and land\nr = rock\n\n=======\nSOUNDS\n=======\nsfx0 64788707 (tight)\nsfx1 92037307 (tighten sail)\nsfx2 6725507(loose )\nsfx3 72434302 (boat crash)\nsfx5 94572100 (pick up buoy)\nsfx6 23834907(rudder change)\nstartlevel 51979900\nendgame 68419109\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nland, rock, pontoon\nmountain_blue, tree\ncoast, house,mountain, buoy\nrudder\nhull\nwreck\nPlayer\nsailcord\nsail\nheading\nrudderdir\nsail_direction\ntension\nsail_side\ncordslack\nagaining\nmovement\nmovement_target\nhasturned\ndomove\n\n======\nRULES\n======\n\n(start of autotiling code- comment out for release version)\n\n( up [ land no coast | no land ] -> [ land coast_n |] )\n( down [ land no coast | no land ] -> [ land coast_s |] )\n( right [ land no coast | no land ] -> [ land coast_e |] )\n( left [ land no coast | no land ] -> [ land coast_w |] )\n\n( right [coast_n | no land] -> [ coast_ne |] sfx6 )\n( left [coast_n | no land] -> [ coast_nw | ] sfx6 )\n\n( right [coast_s | no land] -> [ coast_se |] )\n( left [coast_s | no land] -> [ coast_sw | ] )\n\n(end of autotiling code- comment out for release version)\n\n\n[ stationary player ] -> [ stationary player againing ]\n( [ moving player ]-> again )\n\n[hull]->[]\n[rudder]->[]\n[sail]->[]\n[cordslack]->[]\n[sailcord]->[]\n\n\n\n( [ action player heading_n ]-> [ player heading_ne ] )\n( [ action player heading_ne ]-> [ player heading_e ] )\n( [ action player heading_e ]-> [ player heading_se ] )\n( [ action player heading_se ]-> [ player heading_s ] )\n( [ action player heading_s ]-> [ player heading_sw ] )\n( [ action player heading_sw ]-> [ player heading_w ] )\n( [ action player heading_w ]-> [ player heading_nw ] )\n( [ action player heading_nw ]-> [ player heading_n ] )\n\n\n[ up player tension_2 ] -> [ player tension_1 ] sfx1\n[ up player tension_1 ] -> [ player tension_0 ] sfx2\n[ down player tension_0 ] -> [ player tension_1 ] sfx1\n[ down player tension_1 ] -> [ player tension_2 ] sfx0\n\n(calculate sail direction / cord slack)\n\n[ heading_n tension_2 sail_side_left ] -> [ heading_n tension_2 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_n tension_2 sail_side_right ] -> [ heading_n tension_2 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_n tension_1 sail_side_left ] -> [ heading_n tension_1 sail_side_left sail_direction_s cordslack_1 ]\n[ heading_n tension_1 sail_side_right ] -> [ heading_n tension_1 sail_side_right sail_direction_s cordslack_1 ]\n[ heading_n tension_0 sail_side_left ] -> [ heading_n tension_0 sail_side_left sail_direction_s cordslack_2 ]\n[ heading_n tension_0 sail_side_right ] -> [ heading_n tension_0 sail_side_right sail_direction_s cordslack_2 ]\n\n\n[ heading_ne tension_2 sail_side_left ] -> [ heading_ne tension_2 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_ne tension_2 sail_side_right ] -> [ heading_ne tension_2 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_ne tension_1 sail_side_left ] -> [ heading_ne tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_ne tension_1 sail_side_right ] -> [ heading_ne tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_ne tension_0 sail_side_left ] -> [ heading_ne tension_0 sail_side_right sail_direction_s cordslack_1 ]\n[ heading_ne tension_0 sail_side_right ] -> [ heading_ne tension_0 sail_side_right sail_direction_s cordslack_1 ]\n\n\n[ heading_e tension_2 sail_side_left ] -> [ heading_e tension_2 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_e tension_2 sail_side_right ] -> [ heading_e tension_2 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_e tension_1 sail_side_left ] -> [ heading_e tension_1 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_e tension_1 sail_side_right ] -> [ heading_e tension_1 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_e tension_0 sail_side_left ] -> [ heading_e tension_0 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_e tension_0 sail_side_right ] -> [ heading_e tension_0 sail_side_right sail_direction_s cordslack_0 ]\n\n\n[ heading_se tension_2 sail_side_left ] -> [ heading_se tension_2 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_se tension_2 sail_side_right ] -> [ heading_se tension_2 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_se tension_1 sail_side_left ] -> [ heading_se tension_1 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_se tension_1 sail_side_right ] -> [ heading_se tension_1 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_se tension_0 sail_side_left ] -> [ heading_se tension_0 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_se tension_0 sail_side_right ] -> [ heading_se tension_0 sail_side_right sail_direction_sw cordslack_0 ]\n\n[ heading_s tension_2 sail_side_left ] -> [ heading_s tension_2 sail_side_left sail_direction_n cordslack_0 ]\n[ heading_s tension_2 sail_side_right ] -> [ heading_s tension_2 sail_side_right sail_direction_n cordslack_0 ]\n[ heading_s tension_1 sail_side_left ] -> [ heading_s tension_1 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_s tension_1 sail_side_right ] -> [ heading_s tension_1 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_s tension_0 sail_side_left ] -> [ heading_s tension_0 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_s tension_0 sail_side_right ] -> [ heading_s tension_0 sail_side_right sail_direction_w cordslack_0 ]\n\n[ heading_sw tension_2 sail_side_left ] -> [ heading_sw tension_2 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_sw tension_2 sail_side_right ] -> [ heading_sw tension_2 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_sw tension_1 sail_side_left ] -> [ heading_sw tension_1 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_sw tension_1 sail_side_right ] -> [ heading_sw tension_1 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_sw tension_0 sail_side_left ] -> [ heading_sw tension_0 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_sw tension_0 sail_side_right ] -> [ heading_sw tension_0 sail_side_left sail_direction_se cordslack_0 ]\n\n[ heading_w tension_2 sail_side_left ] -> [ heading_w tension_2 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_w tension_2 sail_side_right ] -> [ heading_w tension_2 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_w tension_1 sail_side_left ] -> [ heading_w tension_1 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_w tension_1 sail_side_right ] -> [ heading_w tension_1 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_w tension_0 sail_side_left ] -> [ heading_w tension_0 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_w tension_0 sail_side_right ] -> [ heading_w tension_0 sail_side_left sail_direction_s cordslack_0 ]\n\n[ heading_nw tension_2 sail_side_left ] -> [ heading_nw tension_2 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_nw tension_2 sail_side_right ] -> [ heading_nw tension_2 sail_side_right sail_direction_se cordslack_0 ]\n[ heading_nw tension_1 sail_side_left ] -> [ heading_nw tension_1 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_nw tension_1 sail_side_right ] -> [ heading_nw tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_nw tension_0 sail_side_left ] -> [ heading_nw tension_0 sail_side_left sail_direction_s cordslack_1 ]\n[ heading_nw tension_0 sail_side_right ] -> [ heading_nw tension_0 sail_side_right sail_direction_s cordslack_1 ]\n\n\n\n(rudder steering)\n[ left player rudderdir_c ]->[player rudderdir_l] sfx6\n[ left player rudderdir_r ]->[player rudderdir_c] sfx6\n\n[ right player rudderdir_l ]->[player rudderdir_c] sfx6\n[ right player rudderdir_c ]->[player rudderdir_r] sfx6\n\n\n[ moving player ]->[player]\n\n(Calculating the movement direction! )\n\n( [againing heading_n sail_direction_n ] -> [againing heading_n sail_direction_n movement_n ] )\n( [againing heading_n sail_direction_ne ] -> [againing heading_n sail_direction_ne movement_n ] )\n( [againing heading_n sail_direction_e ] -> [againing heading_n sail_direction_e movement_n ] )\n( [againing heading_n sail_direction_se ] -> [againing heading_n sail_direction_se movement_n ] )\n[againing heading_n sail_direction_s rudderdir_l ] -> [againing heading_n sail_direction_s rudderdir_l domove ]\n[againing heading_n sail_direction_s rudderdir_r ] -> [againing heading_n sail_direction_s rudderdir_r domove ]\n( [againing heading_n sail_direction_sw ] -> [againing heading_n sail_direction_sw movement_n ] )\n( [againing heading_n sail_direction_w ] -> [againing heading_n sail_direction_w movement_n ] )\n( [againing heading_n sail_direction_nw ] -> [againing heading_n sail_direction_nw movement_n ] )\n\n( [againing heading_ne sail_direction_n ] -> [againing heading_ne sail_direction_n movement_ne ] )\n( [againing heading_ne sail_direction_ne ] -> [againing heading_ne sail_direction_ne movement_ne ] )\n( [againing heading_ne sail_direction_e ] -> [againing heading_ne sail_direction_e movement_ne ] )\n( [againing heading_ne sail_direction_se ] -> [againing heading_ne sail_direction_se movement_ne ] )\n( [againing heading_ne sail_direction_s ] -> [againing heading_ne sail_direction_s movement_ne ] )\n[againing heading_ne sail_direction_sw ] -> [againing heading_ne sail_direction_sw domove ]\n( [againing heading_ne sail_direction_w ] -> [againing heading_ne sail_direction_w movement_ne ] )\n( [againing heading_ne sail_direction_nw ] -> [againing heading_ne sail_direction_nw movement_ne ] )\n\n( [againing heading_e sail_direction_n ] -> [againing heading_e sail_direction_n movement_e ] )\n( [againing heading_e sail_direction_ne ] -> [againing heading_e sail_direction_ne movement_e ] )\n( [againing heading_e sail_direction_e ] -> [againing heading_e sail_direction_e movement_e ] )\n( [againing heading_e sail_direction_se ] -> [againing heading_e sail_direction_se movement_e ] )\n( [againing heading_e sail_direction_s ] -> [againing heading_e sail_direction_s movement_e ] )\n[againing heading_e sail_direction_sw ] -> [againing heading_e sail_direction_sw domove ]\n( [againing heading_e sail_direction_w ] -> [againing heading_e sail_direction_w movement_e ] )\n( [againing heading_e sail_direction_nw ] -> [againing heading_e sail_direction_nw movement_e ] )\n\n( [againing heading_se sail_direction_n ] -> [againing heading_se sail_direction_n movement_se ] )\n[againing heading_se sail_direction_ne ] -> [againing heading_se sail_direction_ne domove ]\n( [againing heading_se sail_direction_e ] -> [againing heading_se sail_direction_e movement_se ] )\n( [againing heading_se sail_direction_se ] -> [againing heading_se sail_direction_se movement_se ] )\n( [againing heading_se sail_direction_s ] -> [againing heading_se sail_direction_s movement_se ] )\n[againing heading_se sail_direction_sw ] -> [againing heading_se sail_direction_sw domove ]\n[againing heading_se sail_direction_w ] -> [againing heading_se sail_direction_w domove ]\n[againing heading_se sail_direction_nw ] -> [againing heading_se sail_direction_nw domove ]\n\n( [againing heading_s sail_direction_n ] -> [againing heading_s sail_direction_n movement_s ] )\n[againing heading_s sail_direction_ne ] -> [againing heading_s sail_direction_ne domove ]\n[againing heading_s sail_direction_e ] -> [againing heading_s sail_direction_e domove ]\n( [againing heading_s sail_direction_se ] -> [againing heading_s sail_direction_se movement_s ] )\n( [againing heading_s sail_direction_s ] -> [againing heading_s sail_direction_s movement_s ] )\n( [againing heading_s sail_direction_sw ] -> [againing heading_s sail_direction_sw movement_s ] )\n[againing heading_s sail_direction_w ] -> [againing heading_s sail_direction_w domove ]\n[againing heading_s sail_direction_nw ] -> [againing heading_s sail_direction_nw domove ]\n\n( [againing heading_sw sail_direction_n ] -> [againing heading_sw sail_direction_n movement_sw ] )\n[againing heading_sw sail_direction_ne ] -> [againing heading_sw sail_direction_ne domove ]\n[againing heading_sw sail_direction_e ] -> [againing heading_sw sail_direction_e domove ]\n[againing heading_sw sail_direction_se ] -> [againing heading_sw sail_direction_se domove ]\n( [againing heading_sw sail_direction_s ] -> [againing heading_sw sail_direction_s movement_sw ] )\n( [againing heading_sw sail_direction_sw ] -> [againing heading_sw sail_direction_sw movement_sw ] )\n( [againing heading_sw sail_direction_w ] -> [againing heading_sw sail_direction_w movement_sw ] )\n[againing heading_sw sail_direction_nw ] -> [againing heading_sw sail_direction_nw domove ]\n\n\n( [againing heading_w sail_direction_n ] -> [againing heading_w sail_direction_n movement_w ] )\n( [againing heading_w sail_direction_ne ] -> [againing heading_w sail_direction_ne movement_w ] )\n( [againing heading_w sail_direction_e ] -> [againing heading_w sail_direction_e movement_w ] )\n[againing heading_w sail_direction_se ] -> [againing heading_w sail_direction_se domove ]\n( [againing heading_w sail_direction_s ] -> [againing heading_w sail_direction_s movement_w ] )\n( [againing heading_w sail_direction_sw ] -> [againing heading_w sail_direction_sw movement_w ] )\n( [againing heading_w sail_direction_w ] -> [againing heading_w sail_direction_w movement_w ] )\n( [againing heading_w sail_direction_nw ] -> [againing heading_w sail_direction_nw movement_w ] )\n\n\n( [againing heading_nw sail_direction_n ] -> [againing heading_nw sail_direction_n movement_nw ] )\n( [againing heading_nw sail_direction_ne ] -> [againing heading_nw sail_direction_ne movement_nw ] )\n( [againing heading_nw sail_direction_e ] -> [againing heading_nw sail_direction_e movement_nw ] )\n[againing heading_nw sail_direction_se ] -> [againing heading_nw sail_direction_se domove ]\n( [againing heading_nw sail_direction_s ] -> [againing heading_nw sail_direction_s movement_nw ] )\n( [againing heading_nw sail_direction_sw ] -> [againing heading_nw sail_direction_sw movement_nw ] )\n( [againing heading_nw sail_direction_w ] -> [againing heading_nw sail_direction_w movement_nw ] )\n( [againing heading_nw sail_direction_nw ] -> [againing heading_nw sail_direction_nw movement_nw ] )\n\n(rudder rotation)\n\n[ domove no hasturned ] [ rudderdir_l heading_n ] -> [ domove hasturned ] [ rudderdir_l heading_nw ]\n[ domove no hasturned ] [ rudderdir_l heading_ne ] -> [ domove hasturned ] [ rudderdir_l heading_n ]\n[ domove no hasturned ] [ rudderdir_l heading_e ] -> [ domove hasturned ] [ rudderdir_l heading_ne ]\n[ domove no hasturned ] [ rudderdir_l heading_se ] -> [ domove hasturned ] [ rudderdir_l heading_e ]\n[ domove no hasturned ] [ rudderdir_l heading_s ] -> [ domove hasturned ] [ rudderdir_l heading_se ]\n[ domove no hasturned ] [ rudderdir_l heading_sw ] -> [ domove hasturned ] [ rudderdir_l heading_s ]\n[ domove no hasturned ] [ rudderdir_l heading_w ] -> [ domove hasturned ] [ rudderdir_l heading_sw ]\n[ domove no hasturned ] [ rudderdir_l heading_nw ] -> [ domove hasturned ] [ rudderdir_l heading_w ]\n\n[ domove no hasturned ] [ rudderdir_r heading_n ] -> [ domove hasturned ] [ rudderdir_r heading_ne ]\n[ domove no hasturned ] [ rudderdir_r heading_ne ] -> [ domove hasturned ] [ rudderdir_r heading_e ]\n[ domove no hasturned ] [ rudderdir_r heading_e ] -> [ domove hasturned ] [ rudderdir_r heading_se ]\n[ domove no hasturned ] [ rudderdir_r heading_se ] -> [ domove hasturned ] [ rudderdir_r heading_s ]\n[ domove no hasturned ] [ rudderdir_r heading_s ] -> [ domove hasturned ] [ rudderdir_r heading_sw ]\n[ domove no hasturned ] [ rudderdir_r heading_sw ] -> [ domove hasturned ] [ rudderdir_r heading_w ]\n[ domove no hasturned ] [ rudderdir_r heading_w ] -> [ domove hasturned ] [ rudderdir_r heading_nw ]\n[ domove no hasturned ] [ rudderdir_r heading_nw ] -> [ domove hasturned ] [ rudderdir_r heading_n ]\n\n[hasturned]->[]\n\n\n[ domove heading_n ] -> [ heading_n movement_n ]\n[ domove heading_ne ] -> [ heading_ne movement_ne ]\n[ domove heading_e ] -> [ heading_e movement_e ]\n[ domove heading_se ] -> [ heading_se movement_se ]\n[ domove heading_s ] -> [ heading_s movement_s ]\n[ domove heading_sw ] -> [ heading_sw movement_sw ]\n[ domove heading_w ] -> [ heading_w movement_w ]\n[ domove heading_nw ] -> [ heading_nw movement_nw ]\n\nright [ movement_ne | ] -> [ | movement_n ]\nright [ movement_se | ] -> [ | movement_s ]\nleft [ movement_nw | ] -> [ | movement_n ]\nleft [ movement_sw | ] -> [ | movement_s ]\n\nup [ movement_n | ] -> [ | movement_target ]\nright [ movement_e | ] -> [ | movement_target ]\ndown [ movement_s | ] -> [ | movement_target ]\nleft [ movement_w | ] -> [ | movement_target ]\n\n\n( [ movement_target ] [ player heading rudderdir tension sail_side sail_direction ] -> [ player heading rudderdir tension sail_side sail_direction] [] )\n\n(some bug(?) whereby I can't replace the above with the below)\n\nrandom [ movement_target ] [ player ] -> [ movement_target player ] []\nrandom [ movement_target ] [ heading ] -> [ movement_target heading ] []\nrandom [ movement_target ] [ rudderdir ] -> [ movement_target rudderdir ] []\nrandom [ movement_target ] [ tension ] -> [ movement_target tension ] []\nrandom [ movement_target ] [ sail_side ] -> [ movement_target sail_side ] []\nrandom [ movement_target ] [ sail_direction ] -> [ movement_target sail_direction ] []\nrandom [ movement_target]->[]\n\n\n(calculate sail direction / cord slack)\n\n[ heading_n tension_2 sail_side_left ] -> [ heading_n tension_2 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_n tension_2 sail_side_right ] -> [ heading_n tension_2 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_n tension_1 sail_side_left ] -> [ heading_n tension_1 sail_side_left sail_direction_s cordslack_1 ]\n[ heading_n tension_1 sail_side_right ] -> [ heading_n tension_1 sail_side_right sail_direction_s cordslack_1 ]\n[ heading_n tension_0 sail_side_left ] -> [ heading_n tension_0 sail_side_left sail_direction_s cordslack_2 ]\n[ heading_n tension_0 sail_side_right ] -> [ heading_n tension_0 sail_side_right sail_direction_s cordslack_2 ]\n\n\n[ heading_ne tension_2 sail_side_left ] -> [ heading_ne tension_2 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_ne tension_2 sail_side_right ] -> [ heading_ne tension_2 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_ne tension_1 sail_side_left ] -> [ heading_ne tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_ne tension_1 sail_side_right ] -> [ heading_ne tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_ne tension_0 sail_side_left ] -> [ heading_ne tension_0 sail_side_right sail_direction_s cordslack_1 ]\n[ heading_ne tension_0 sail_side_right ] -> [ heading_ne tension_0 sail_side_right sail_direction_s cordslack_1 ]\n\n\n[ heading_e tension_2 sail_side_left ] -> [ heading_e tension_2 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_e tension_2 sail_side_right ] -> [ heading_e tension_2 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_e tension_1 sail_side_left ] -> [ heading_e tension_1 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_e tension_1 sail_side_right ] -> [ heading_e tension_1 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_e tension_0 sail_side_left ] -> [ heading_e tension_0 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_e tension_0 sail_side_right ] -> [ heading_e tension_0 sail_side_right sail_direction_s cordslack_0 ]\n\n\n[ heading_se tension_2 sail_side_left ] -> [ heading_se tension_2 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_se tension_2 sail_side_right ] -> [ heading_se tension_2 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_se tension_1 sail_side_left ] -> [ heading_se tension_1 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_se tension_1 sail_side_right ] -> [ heading_se tension_1 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_se tension_0 sail_side_left ] -> [ heading_se tension_0 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_se tension_0 sail_side_right ] -> [ heading_se tension_0 sail_side_right sail_direction_sw cordslack_0 ]\n\n[ heading_s tension_2 sail_side_left ] -> [ heading_s tension_2 sail_side_left sail_direction_n cordslack_0 ]\n[ heading_s tension_2 sail_side_right ] -> [ heading_s tension_2 sail_side_right sail_direction_n cordslack_0 ]\n[ heading_s tension_1 sail_side_left ] -> [ heading_s tension_1 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_s tension_1 sail_side_right ] -> [ heading_s tension_1 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_s tension_0 sail_side_left ] -> [ heading_s tension_0 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_s tension_0 sail_side_right ] -> [ heading_s tension_0 sail_side_right sail_direction_w cordslack_0 ]\n\n[ heading_sw tension_2 sail_side_left ] -> [ heading_sw tension_2 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_sw tension_2 sail_side_right ] -> [ heading_sw tension_2 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_sw tension_1 sail_side_left ] -> [ heading_sw tension_1 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_sw tension_1 sail_side_right ] -> [ heading_sw tension_1 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_sw tension_0 sail_side_left ] -> [ heading_sw tension_0 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_sw tension_0 sail_side_right ] -> [ heading_sw tension_0 sail_side_left sail_direction_se cordslack_0 ]\n\n[ heading_w tension_2 sail_side_left ] -> [ heading_w tension_2 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_w tension_2 sail_side_right ] -> [ heading_w tension_2 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_w tension_1 sail_side_left ] -> [ heading_w tension_1 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_w tension_1 sail_side_right ] -> [ heading_w tension_1 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_w tension_0 sail_side_left ] -> [ heading_w tension_0 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_w tension_0 sail_side_right ] -> [ heading_w tension_0 sail_side_left sail_direction_s cordslack_0 ]\n\n[ heading_nw tension_2 sail_side_left ] -> [ heading_nw tension_2 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_nw tension_2 sail_side_right ] -> [ heading_nw tension_2 sail_side_right sail_direction_se cordslack_0 ]\n[ heading_nw tension_1 sail_side_left ] -> [ heading_nw tension_1 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_nw tension_1 sail_side_right ] -> [ heading_nw tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_nw tension_0 sail_side_left ] -> [ heading_nw tension_0 sail_side_left sail_direction_s cordslack_1 ]\n[ heading_nw tension_0 sail_side_right ] -> [ heading_nw tension_0 sail_side_right sail_direction_s cordslack_1 ]\n\n( [ heading_n ] -> again )\n\n(ship-drawing)\n(orthogonal hull drawing)\nup late [ | player heading_n ] -> [ hull_n_stern | hull_n_bow player heading_n ]\nright late [ | player heading_e ] -> [ hull_e_stern | hull_e_bow player heading_e ]\ndown late [ | player heading_s ] -> [ hull_s_stern | hull_s_bow player heading_s ]\nleft late [ | player heading_w ] -> [ hull_w_stern | hull_w_bow player heading_w ]\n\n(diagonal hull drawing)\nright late [ | player heading_ne ] -> [ hull_diag_nw heading_ne | hull_ne_bow player heading_ne ]\nup late [ | player heading_ne ] -> [ hull_diag_se | hull_ne_bow player heading_ne ]\nup late [ | hull_diag_nw heading_ne ] -> [ hull_ne_stern | hull_diag_nw ]\n\ndown late [ | player heading_se ] -> [ hull_diag_ne heading_se | hull_se_bow player heading_se ]\nright late [ | player heading_se ] -> [ hull_diag_sw | hull_se_bow player heading_se ]\nright late [ | hull_diag_ne heading_se ] -> [ hull_se_stern | hull_diag_ne ]\n\nleft late [ | player heading_sw ] -> [ hull_diag_se heading_sw | hull_sw_bow player heading_sw ]\ndown late [ | player heading_sw ] -> [ hull_diag_nw | hull_sw_bow player heading_sw ]\ndown late [ | hull_diag_se heading_sw ] -> [ hull_sw_stern | hull_diag_se ]\n\n\nup late [ | player heading_nw ] -> [ hull_diag_sw heading_nw | hull_nw_bow player heading_nw ]\nleft late [ | player heading_nw ] -> [ hull_diag_ne | hull_nw_bow player heading_nw ]\nleft late [ | hull_diag_sw heading_nw ] -> [ hull_nw_stern | hull_diag_sw ]\n\n\n(rudder drawing)\nlate [ rudderdir_l ] [ hull_n_stern ] -> [rudderdir_l ] [ hull_n_stern hull_n_rl ]\nlate [ rudderdir_c ] [ hull_n_stern ] -> [rudderdir_c ] [ hull_n_stern hull_n_rc ]\nlate [ rudderdir_r ] [ hull_n_stern ] -> [rudderdir_r ] [ hull_n_stern hull_n_rr ]\n\nlate [ rudderdir_l ] [ hull_ne_stern ] -> [rudderdir_l ] [ hull_ne_stern hull_ne_rl ]\nlate [ rudderdir_c ] [ hull_ne_stern ] -> [rudderdir_c ] [ hull_ne_stern hull_ne_rc ]\nlate [ rudderdir_r ] [ hull_ne_stern ] -> [rudderdir_r ] [ hull_ne_stern hull_ne_rr ]\n\nlate [ rudderdir_l ] [ hull_e_stern ] -> [rudderdir_l ] [ hull_e_stern hull_e_rl ]\nlate [ rudderdir_c ] [ hull_e_stern ] -> [rudderdir_c ] [ hull_e_stern hull_e_rc ]\nlate [ rudderdir_r ] [ hull_e_stern ] -> [rudderdir_r ] [ hull_e_stern hull_e_rr ]\n\nlate [ rudderdir_l ] [ hull_se_stern ] -> [rudderdir_l ] [ hull_se_stern hull_se_rl ]\nlate [ rudderdir_c ] [ hull_se_stern ] -> [rudderdir_c ] [ hull_se_stern hull_se_rc ]\nlate [ rudderdir_r ] [ hull_se_stern ] -> [rudderdir_r ] [ hull_se_stern hull_se_rr ]\n\nlate [ rudderdir_l ] [ hull_s_stern ] -> [rudderdir_l ] [ hull_s_stern hull_s_rl ]\nlate [ rudderdir_c ] [ hull_s_stern ] -> [rudderdir_c ] [ hull_s_stern hull_s_rc ]\nlate [ rudderdir_r ] [ hull_s_stern ] -> [rudderdir_r ] [ hull_s_stern hull_s_rr ]\n\nlate [ rudderdir_l ] [ hull_sw_stern ] -> [rudderdir_l ] [ hull_sw_stern hull_sw_rl ]\nlate [ rudderdir_c ] [ hull_sw_stern ] -> [rudderdir_c ] [ hull_sw_stern hull_sw_rc ]\nlate [ rudderdir_r ] [ hull_sw_stern ] -> [rudderdir_r ] [ hull_sw_stern hull_sw_rr ]\n\nlate [ rudderdir_l ] [ hull_w_stern ] -> [rudderdir_l ] [ hull_w_stern hull_w_rl ]\nlate [ rudderdir_c ] [ hull_w_stern ] -> [rudderdir_c ] [ hull_w_stern hull_w_rc ]\nlate [ rudderdir_r ] [ hull_w_stern ] -> [rudderdir_r ] [ hull_w_stern hull_w_rr ]\n\nlate [ rudderdir_l ] [ hull_nw_stern ] -> [rudderdir_l ] [ hull_nw_stern hull_nw_rl ]\nlate [ rudderdir_c ] [ hull_nw_stern ] -> [rudderdir_c ] [ hull_nw_stern hull_nw_rc ]\nlate [ rudderdir_r ] [ hull_nw_stern ] -> [rudderdir_r ] [ hull_nw_stern hull_nw_rr ]\n\n(sail-drawing)\n\nlate up [ sail_direction_n | ] -> [ sail_direction_n sail_n_1 | sail_n_2 ]\nlate right [ sail_direction_e | ] -> [ sail_direction_e sail_e_1 | sail_e_2 ]\nlate down [ sail_direction_s | ] -> [ sail_direction_s sail_s_1 | sail_s_2 ]\nlate left [ sail_direction_w | ] -> [ sail_direction_w sail_w_1 | sail_w_2 ]\n\nlate right [ sail_direction_ne | ] -> [sail_direction_ne sail_ne_1 | sail_ne_2]\nlate up [ sail_ne_2 | ] -> [sail_ne_2 | sail_ne_3 ]\n\nlate down [ sail_direction_se | ] -> [sail_direction_se sail_se_1 | sail_se_2]\nlate right [ sail_se_2 | ] -> [sail_se_2 | sail_se_3 ]\n\nlate down [ sail_direction_sw | ] -> [sail_direction_sw sail_sw_1 | sail_sw_2]\nlate left [ sail_sw_2 | ] -> [sail_sw_2 | sail_sw_3 ]\n\nlate left [ sail_direction_nw | ] -> [sail_direction_nw sail_nw_1 | sail_nw_2]\nlate up [ sail_nw_2 | ] -> [sail_nw_2 | sail_nw_3 ]\n\n\n(sailcord drawing omg I'm so sorry this is terrible)\n\nlate right [cordslack_1] [ sail_s_2 | hull_nw_stern ] -> [cordslack_1] [ sail_s_2 sailcord_cordslack_south_left | hull_nw_stern sailcord_sw ]\nlate right [cordslack_0] [ sail_s_2 | hull_nw_stern ] -> [cordslack_0] [ sail_s_2 sailcord_e | hull_nw_stern sailcord_w ]\n\n\nlate down [ hull_w_stern | sail_se_3 ] -> [ hull_w_stern sailcord_s | sail_se_3 sailcord_n ]\nlate [ sail_s_2 ] [ hull_w_stern ] -> [ sail_s_2 sailcord_ne ] [ hull_w_stern sailcord_sw ]\n\nlate down [ hull_sw_stern | sail_e_2 ] -> [ hull_sw_stern sailcord_s | sail_e_2 sailcord_n ] \nlate down [ hull_sw_stern | | sail_se_3 ] -> [ hull_sw_stern sailcord_s | sailcord_ns | sail_se_3 sailcord_n ] \nlate right [ sail_nw_3 | | hull_sw_stern ] -> [ sail_nw_3 sailcord_e | sailcord_ew | hull_sw_stern sailcord_w ]\n\nlate down [ cordslack_1 | sail_s_2 hull_n_stern ] -> [ cordslack_1 | sail_s_2 hull_n_stern cordslack_1 sailcord_cordslack_south_1 ]\nlate down [ cordslack_2 | sail_s_2 hull_n_stern ] -> [ cordslack_2 | sail_s_2 hull_n_stern sailcord_cordslack_south_2 ]\n\nlate right [ hull_s_stern | sail_ne_3 ] -> [ hull_s_stern sailcord_e | sail_ne_3 sailcord_w ]\nlate [ hull_s_stern ] [ sail_e_2 ] -> [ hull_s_stern sailcord_se ] [ sail_e_2 sailcord_nw ] \nlate right [ sail_nw_3 | hull_s_stern ] -> [ sail_nw_3 sailcord_e | hull_s_stern sailcord_w ]\nlate [ sail_w_2 ] [hull_s_stern ] -> [ sail_w_2 sailcord_ne ] [hull_s_stern sailcord_sw ]\n\nlate right [cordslack_1] [ hull_ne_stern | sail_s_2 ] -> [cordslack_1] [ hull_ne_stern sailcord_se | sail_s_2 sailcord_cordslack_south_right ]\nlate right [cordslack_0] [ hull_ne_stern | sail_s_2 ] -> [cordslack_0] [ hull_ne_stern sailcord_e | sail_s_2 sailcord_w ]\n\nlate [ hull_e_stern ] [ sail_s_2 ] -> [ hull_e_stern sailcord_se] [ sail_s_2 sailcord_nw ] \nlate down [hull_e_stern | sail_sw_3 ]->[hull_e_stern sailcord_s| sail_sw_3 sailcord_n]\n\nlate down [ hull_se_stern | sail_w_2 ] -> [ hull_se_stern sailcord_s | sail_w_2 sailcord_n ] \nlate down [ hull_se_stern | | sail_sw_3 ] -> [ hull_se_stern sailcord_s |sailcord_ns| sail_sw_3 sailcord_n ] \nlate right [hull_se_stern | | sail_ne_3 ] -> [hull_se_stern sailcord_e | sailcord_ew | sail_ne_3 sailcord_w ]\n\nlate [ againing ] ->[]\nlate [ movement ] ->[]\n\n\nlate [ hull obstacle ] [ player ] -> [ hull obstacle ] [ no player wreck_1 ] sfx3\nlate [ wreck_1 ] [hull_stern] -> [ wreck_1] [wreck_2]\nlate [wreck_1] [hull] ->[wreck_1] [no hull]\n\nlate [ hull buoy ] -> [ hull ] sfx5\n\n==============\nWINCONDITIONS\n==============\n\nno buoy\n\n=======\nLEVELS\n=======\n\n\nmessage The wind comes from the north. Press left and right to adjust rudder. Press up and down to adjust the sail tension. The goal is to collect all the buoys.\n\nmessage Lake 1 of 3 \n\nq-xxxxxxxxxxxxsj\nsd............zs\n-c.............a\nd..............i\nd..............u\nd..............i\nd..........b...u\nd..............i\nhe..p..........u\nsc.............i\nd..............a\nd..........b...a\nd..............a\nd.............qs\nd.............as\nswwwwwwwwwwwww'#\n\n\nmessage Lake 2 of 3 \n\nsssss-ssxxss--sssss-sxx--sss\nsshsxxxc..zxxxxxsgsxc..zssm'\nsjsc............afd.....zv,;\nssc.............zxc......ass\nsd..........b............zss\nsse.......................a-\nssd......qwe..............ss\nssc.......aswwwwwe.....b...a\n-d........z-sm'#mswe.......a\nsd.........zv,;l,n-d.......a\njd..p.......asxs-sxc......s-\njd.........qsc.zxc........a-\njd.........zc.............a-\n-se.......................as\nssc.............b....e...qss\nsd..................qje..ahs\nsse.................ahswwsss\nshswwe.qwwwwwwwe.qwwsssss-sc\nssss-swshjs--sjswm-smss-s-c.\n\n\nmessage Lake 3 of 3\n\nsssxxxxxxxxxxxxxxxxxxxshsjs-\nssc.....r.............zxjshs\nsc...r..........r.......zhgs\nd...........r............zfj\nd.........................zs\nd..p....r............r.....a\nd................r.........a\nd.......qwwwwwe............a\nd......qsxc...zwwwwe.......a\nd.....qhd.......zxjc.......a\nd....qjsc.........c....qe..a\nd...qssc..b..e.........d...a\nd..qm-d.....qse.......qd...a\nswwv,nse...qs-swwwwwwwj-wwws\n-s------wwws-s--s-j-s-ss-s--\n\n\nmessage Congratulations: you are the best sailer in the world!\n\n",["tick",2,0,"tick",1,"tick","tick",2,"tick",0,"tick",3,3,"tick",2,"tick","tick","tick","tick",1,"tick",0,"tick","tick","tick",3,"tick"],"background land:0,0,0,0,0,0,0,0,background land tree:1,0,background house4 land:2,2,2,1,0,0,0,0,0,0,0,2,0,background coast_e land:3,0,0,0,3,\n3,3,3,3,0,0,3,0,background house3 land:4,0,0,4,0,background coast_se land:5,background:6,background coast_ne land:7,3,5,6,6,6,6,6,7,5,6,7,0,\n0,0,0,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,background coast_n land:8,0,0,background coast_s land:9,6,6,6,6,6,6,\n6,6,6,6,6,6,6,6,6,8,1,1,9,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,\n7,0,0,9,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,8,0,5,6,6,6,6,6,\n6,6,6,6,6,6,6,6,6,6,background coast_nw land:10,0,9,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,\n6,8,4,9,6,6,6,6,6,10,6,6,6,6,6,6,6,6,6,6,8,2,0,background coast_sw land:11,6,6,6,background cordslack_0 hull_se_rr sailcord_s wreck_2:12,\nbackground coast_n land sail_w_2 sailcord_n:13,background coast_w land:14,11,6,6,6,6,6,6,6,6,8,0,0,9,6,6,6,6,background coast_ne cordslack_0 heading_se land rudderdir_r sail_direction_w sail_side_right sail_w_1 tension_1 wreck_1:15,0,1,11,6,10,11,6,6,\n6,6,8,1,1,9,6,6,background buoy:16,6,6,8,0,background land mountain1:17,14,0,5,6,6,6,6,8,1,1,9,6,6,6,\n6,6,8,background land mountain4:18,background land mountain2:19,0,5,6,6,6,6,6,8,0,0,9,6,6,6,6,6,8,background land mountain_blue2:20,background land mountain3 mountain_blue1:21,9,6,6,6,\n6,6,6,8,2,0,9,6,6,6,6,6,8,background land mountain_blue3:22,background land mountain1 mountain_blue1:23,0,11,6,6,6,6,6,7,0,0,0,14,11,\n6,6,6,8,18,19,1,9,6,6,16,6,6,6,8,0,background house2 land:24,background house1 land:25,9,6,6,6,7,0,background land mountain3:26,0,5,6,\n6,6,6,6,10,18,0,0,3,5,6,6,6,6,8,1,9,6,6,6,6,6,6,8,1,1,9,6,\n6,6,6,6,6,7,3,5,6,6,6,6,6,6,8,0,0,5,6,6,6,6,6,6,6,6,6,6,\n6,6,6,10,14,0,18,9,6,6,6,6,6,6,6,6,6,6,6,6,6,7,2,4,0,0,9,6,\n6,6,6,6,6,6,6,6,6,6,6,6,6,7,0,0,0,1,11,6,6,6,6,6,16,6,6,6,\n6,6,6,6,6,8,0,1,1,0,11,6,6,6,6,6,6,6,6,6,6,6,6,6,8,0,0,0,\n0,17,14,11,6,6,6,6,6,6,6,6,6,10,14,0,1,1,0,18,19,0,0,14,0,6,6,6,\n0,14,14,14,0,4,0,0,5,0,20,21,0,0,1,0,14,14,14,1,1,1,0,0,0,0,5,6,\n",4,"1627893570488.5464"] + "North Wind Simple Sailboat Buoy Collection", + ["(MOVEMENT SHOULD BE DETERMINED BY TARGET DIRECTION not current one)\n\ntitle North Wind Simple Sailboat Buoy Collection\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #255474\ntext_color #caa786\n\nnorepeat_action\nrun_rules_on_level_start\nagain_interval 0.4\nrealtime_interval 1\n( debug )\n( verbose_logging )\n\nnoundo\n\n========\nOBJECTS\n========\n\nbuoy b\n#ac3232 #847e87\n.....\n..10.\n..1..\n..0..\n.000.\n\nBackground\n#5fcde4 #48bbd3\n00000\n00100\n01010\n10001\n00000\n\nland\n#37946e #25855e\n00000\n01000\n00000\n00010\n00000\n\npontoon1 t\n#8d614c #9e7650\n00000\n10101\n10101\n00000\n.0.0.\n\npontoon2 y\n#8d614c #9e7650\n00000\n01010\n01010\n00000\n.0.0.\n\npontoon3 u\n#8d614c #9e7650\n00000\n01110\n00000\n01110\n00000\n\npontoon4 i\n#8d614c #9e7650\n01110\n00000\n01110\n00000\n01110\n\n\npontoon5 o\n#8d614c #9e7650\n01110\n00000\n01110\n00000\n0...0\n\nmountain1\n#16724c\n....0\n...00\n..000\n.0000\n00.0.\n\nmountain2\n#16724c\n00000\n00000\n00000\n00000\n0.0.0\n\nmountain3\n#16724c\n0....\n00...\n000..\n0000.\n.0.00\n\nmountain4\n#16724c\n.....\n.....\n..0..\n.000.\n00000\n\ntree\n#37946e #8d614c #16724c\n00000\n00200\n02220\n00100\n00000\n\nmountain_blue1\n#306082\n00000\n00000\n00000\n00000\n.....\n\nmountain_blue2\n#306082 #9badb7\n....1\n...11\n..110\n.0000\n00000\n\nmountain_blue3\n#306082 #9badb7\n1....\n11...\n101..\n0000.\n00000\n\n\nrock\n#255474 #306082 #3f7296 #4e7ea1 \n..13.\n.0112\n00121\n01102\n.000.\n\n\ncoast_n\n#37946e #25855e #caa786\n22222\n.222.\n.....\n.....\n.....\n\ncoast_ne\n#37946e #25855e #caa786 #5fcde4\n22223\n.2222\n...22\n...22\n....2\n\ncoast_e\n#37946e #25855e #caa786\n....2\n...22\n...22\n...22\n....2\n\ncoast_se\n#37946e #25855e #caa786 #5fcde4\n....2\n....2\n...22\n.2222\n22223\n\ncoast_s\n#37946e #25855e #caa786\n.....\n.....\n.....\n.222.\n22222\n\ncoast_sw\n#37946e #25855e #caa786 #5fcde4\n2....\n22...\n22...\n2222.\n32222\n\ncoast_w\n#37946e #25855e #caa786\n2....\n22...\n22...\n22...\n2....\n\ncoast_nw\n#37946e #25855e #caa786 #5fcde4\n32222\n2222.\n22...\n22...\n2....\n\nhouse1\n#caa786 #8d614c #9e7650\n..000\n..000\n11111\n00000\n00020\n\nhouse2\n#caa786 #8d614c #9e7650\n.....\n.....\n.....\n...1.\n..111\n\nhouse3\n#caa786 #8d614c #9e7650\n.....\n11111\n12121\n00000\n00000\n\nhouse4\n#caa786 #8d614c #9e7650\n.....\n..1..\n.111.\n.000.\n.020.\n\n\n\n\nPlayer\n#639bff\n.....\n.....\n..0..\n.....\n.....\n\nheading_n\ntransparent\n\nheading_ne\ntransparent\n\nheading_e\ntransparent\n\nheading_se\ntransparent\n\nheading_s\ntransparent\n\nheading_sw\ntransparent\n\nheading_w\ntransparent\n\nheading_nw\ntransparent\n\nwreck_1\n#667598 #a9b5d0 brown #639bff #ffffff #d2dde3\n.000.\n01310\n01140\n0145.\n.0054\n\nwreck_2\n#667598 #a9b5d0 brown #639bff #ffffff #d2dde3\n.000.\n01110\n.1110\n..110\n.2.0.\n\nhull_n_bow\n#667598 #a9b5d0 brown\n.000.\n01110\n01110\n01110\n01110\n\nhull_n_stern\n#667598 #a9b5d0 brown\n01110\n01110\n.000.\n.....\n.....\n\nhull_n_rl\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n.2...\n2....\n\nhull_n_rc\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n..2..\n..2..\n\nhull_n_rr\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n...2.\n....2\n\nhull_ne_bow\n#667598 #a9b5d0 brown\n.00..\n0110.\n11110\n11110\n1110.\n\nhull_ne_stern\n#667598 #a9b5d0 brown\n.0111\n.0111\n..011\n...00\n.....\n\n\n\nhull_ne_rl\n#667598 #a9b5d0 brown\n.....\n.....\n22...\n.....\n.....\n\nhull_ne_rc\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n.2...\n2....\n\nhull_ne_rr\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n..2..\n..2..\n\nhull_e_bow\n#667598 #a9b5d0 brown\n0000.\n11110\n11110\n11110\n0000.\n\nhull_e_stern\n#667598 #a9b5d0 brown\n...00\n..011\n..011\n..011\n...00\n\nhull_e_rl\n#667598 #a9b5d0 brown\n2....\n.2...\n.....\n.....\n.....\n\nhull_e_rc\n#667598 #a9b5d0 brown\n.....\n.....\n22...\n.....\n.....\n\nhull_e_rr\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n.2...\n2....\n\n\n\nhull_se_bow\n#667598 #a9b5d0 brown\n1110.\n11110\n11110\n0110.\n.00..\n\nhull_se_stern\n#667598 #a9b5d0 brown\n.....\n...00\n..011\n.0111\n.0111\n\n\nhull_se_rl\n#667598 #a9b5d0 brown\n..2..\n..2..\n.....\n.....\n.....\n\nhull_se_rc\n#667598 #a9b5d0 brown\n2....\n.2...\n.....\n.....\n.....\n\nhull_se_rr\n#667598 #a9b5d0 brown\n.....\n.....\n22...\n.....\n.....\n\n\nhull_s_bow\n#667598 #a9b5d0 brown\n01110\n01110\n01110\n01110\n.000.\n\nhull_s_stern\n#667598 #a9b5d0 brown\n.....\n.....\n.000.\n01110\n01110\n\n\nhull_s_rl\n#667598 #a9b5d0 brown\n....2\n...2.\n.....\n.....\n.....\n\nhull_s_rc\n#667598 #a9b5d0 brown\n..2..\n..2..\n.....\n.....\n.....\n\nhull_s_rr\n#667598 #a9b5d0 brown\n2....\n.2...\n.....\n.....\n.....\n\nhull_sw_bow\n#667598 #a9b5d0 brown\n.0111\n01111\n01111\n.0110\n..00.\n\nhull_sw_stern\n#667598 #a9b5d0 brown\n.....\n00...\n110..\n1110.\n1110.\n\n\nhull_sw_rl\n#667598 #a9b5d0 brown\n.....\n.....\n...22\n.....\n.....\n\nhull_sw_rc\n#667598 #a9b5d0 brown\n....2\n...2.\n.....\n.....\n.....\n\nhull_sw_rr\n#667598 #a9b5d0 brown\n..2..\n..2..\n.....\n.....\n.....\n\nhull_w_bow\n#667598 #a9b5d0 brown\n.0000\n01111\n01111\n01111\n.0000\n\nhull_w_stern\n#667598 #a9b5d0 brown\n00...\n110..\n110..\n110..\n00...\n\n\n\nhull_w_rl\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n...2.\n....2\n\nhull_w_rc\n#667598 #a9b5d0 brown\n.....\n.....\n...22\n.....\n.....\n\nhull_w_rr\n#667598 #a9b5d0 brown\n....2\n...2.\n.....\n.....\n.....\n\n\nhull_nw_bow\n#667598 #a9b5d0 brown\n..00.\n.0110\n01111\n01111\n.0111\n\nhull_nw_stern\n#667598 #a9b5d0 brown\n1110.\n1110.\n110..\n00...\n.....\n\n\n\nhull_nw_rl\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n..2..\n..2..\n\nhull_nw_rc\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n...2.\n....2\n\nhull_nw_rr\n#667598 #a9b5d0 brown\n.....\n.....\n...22\n.....\n.....\n\n\nhull_diag_nw\n#667598 #a9b5d0 brown\n.....\n.....\n....0\n...01\n..011\n\n\nhull_diag_ne\n#667598 #a9b5d0 brown\n.....\n.....\n0....\n10...\n110..\n\n\nhull_diag_se\n#667598 #a9b5d0 brown\n110..\n10...\n0....\n.....\n.....\n\n\n\n\n\nhull_diag_sw\n#667598 #a9b5d0 brown\n..011\n...01\n....0\n.....\n.....\n\nsail_n_1\n#d2dde3 white\n..01.\n..1..\n.....\n.....\n.....\n\nsail_n_2\n#d2dde3 white\n.....\n.....\n..1..\n.10..\n..1..\n\n\nsail_ne_1\n#d2dde3 white\n....0\n...11\n.....\n.....\n.....\n\nsail_ne_2\n#d2dde3 white\n1....\n.....\n.....\n.....\n.....\n\nsail_ne_3\n#d2dde3 white\n.....\n.....\n..1..\n.01..\n01...\n\nsail_e_1\n#d2dde3 white\n.....\n.....\n...10\n....1\n.....\n\nsail_e_2\n#d2dde3 white\n.....\n.....\n001..\n11...\n.....\n\n\nsail_se_1\n#d2dde3 white\n.....\n.....\n.....\n...1.\n...10\n\nsail_se_2\n#d2dde3 white\n....1\n.....\n.....\n.....\n.....\n\nsail_se_3\n#d2dde3 white\n0....\n10...\n.11..\n.....\n.....\n\n\n\nsail_s_1\n#d2dde3 white\n.....\n.....\n.....\n..1..\n.10..\n\nsail_s_2\n#d2dde3 white\n..1..\n..01.\n..1..\n.....\n.....\n\n\nsail_sw_1\n#d2dde3 white\n.....\n.....\n.....\n.1...\n01...\n\nsail_sw_2\n#d2dde3 white\n1....\n.....\n.....\n.....\n.....\n\nsail_sw_3\n#d2dde3 white\n....0\n...01\n..11.\n.....\n.....\n\n\n\n\nsail_w_1\n#d2dde3 white\n.....\n.....\n01...\n1....\n.....\n\nsail_w_2\n#d2dde3 white\n.....\n.....\n..100\n...11\n.....\n\n\nsail_nw_1\n#d2dde3 white\n0....\n11...\n.....\n.....\n.....\n\nsail_nw_2\n#d2dde3 white\n....1\n.....\n.....\n.....\n.....\n\nsail_nw_3\n#d2dde3 white\n.....\n.....\n..1..\n..10.\n...10\n\nrudderdir_l\ntransparent\n\nrudderdir_c\ntransparent\n\nrudderdir_r\ntransparent\n\nsail_direction_n\ntransparent\n\nsail_direction_ne\ntransparent\n\nsail_direction_e\ntransparent\n\nsail_direction_se\ntransparent\n\nsail_direction_s\ntransparent\n\nsail_direction_sw\ntransparent\n\nsail_direction_w\ntransparent\n\nsail_direction_nw\ntransparent\n\ntension_0\ntransparent\n\ntension_1\ntransparent\n\ntension_2\ntransparent\n\nsail_side_right\ntransparent\n\nsail_side_left\ntransparent\n\ncordslack_0\ntransparent\n\ncordslack_1\ntransparent\n\ncordslack_2\ntransparent\n\nsailcord_n\n#d0535f\n..0..\n..0..\n..0..\n.....\n.....\n\nsailcord_ne\n#d0535f\n....0\n...0.\n..0..\n.....\n.....\n\nsailcord_e\n#d0535f\n.....\n.....\n..000\n.....\n.....\n\nsailcord_se\n#d0535f\n.....\n.....\n..0..\n...0.\n....0\n\nsailcord_s\n#d0535f\n.....\n.....\n..0..\n..0..\n..0..\n\n\n\nsailcord_sw\n#d0535f\n.....\n.....\n..0..\n.0...\n0....\n\n\nsailcord_w\n#d0535f\n.....\n.....\n000..\n.....\n.....\n\n\n\nsailcord_nw\n#d0535f\n0....\n.0...\n..0..\n.....\n.....\n\n\nsailcord_ns\n#d0535f\n..0..\n..0..\n..0..\n..0..\n..0..\n\nsailcord_ew\n#d0535f\n.....\n.....\n00000\n.....\n.....\n\nsailcord_cordslack_south_1\n#d0535f\n.....\n.....\n..0..\n.0.0.\n..0..\n\nsailcord_cordslack_south_2\n#d0535f\n.....\n.....\n.000.\n0...0\n.000.\n\nsailcord_cordslack_south_left\n#d0535f\n.....\n.....\n.....\n..0..\n...00\n\nsailcord_cordslack_south_right\n#d0535f\n.....\n.....\n.....\n..0..\n00...\n\nagaining\ntransparent\n\nmovement_n\ntransparent\n\nmovement_ne\ntransparent\n\nmovement_e\ntransparent\n\nmovement_se\ntransparent\n\nmovement_s\ntransparent\n\nmovement_sw\ntransparent\n\nmovement_w\ntransparent\n\nmovement_nw\ntransparent\n\nmovement_target\ntransparent\n\nhasturned\ntransparent\n\ndomove\ntransparent\n\n=======\nLEGEND\n=======\n\nhouse = house1 or house2 or house3 or house4\ncoast = coast_n or coast_ne or coast_e or coast_se or coast_s or coast_sw or coast_w or coast_nw\n\n\nsailcord = sailcord_n or sailcord_ne or sailcord_e or sailcord_Se or sailcord_s or sailcord_Sw or sailcord_w or sailcord_nw or sailcord_cordslack_south_1 or sailcord_cordslack_south_2 or sailcord_cordslack_south_left or sailcord_cordslack_south_right or sailcord_ns or sailcord_ew\n\nrudder = hull_n_rl or hull_n_rc or hull_n_rr or hull_ne_rl or hull_ne_rc or hull_ne_rr or hull_e_rl or hull_e_rc or hull_e_rr or hull_se_rl or hull_se_rc or hull_se_rr or hull_s_rl or hull_s_rc or hull_s_rr or hull_sw_rl or hull_sw_rc or hull_sw_rr or hull_w_rl or hull_w_rc or hull_w_rr or hull_nw_rl or hull_nw_rc or hull_nw_rr \n\nhull = hull_n_bow or hull_n_stern or hull_ne_bow or hull_ne_stern or hull_e_bow or hull_e_stern or hull_se_bow or hull_se_stern or hull_s_bow or hull_s_stern or hull_nw_bow or hull_nw_stern or hull_w_bow or hull_w_stern or hull_sw_bow or hull_sw_stern or hull_diag_ne or hull_diag_se or hull_diag_sw or hull_diag_nw\n\nhull_stern = hull_n_stern or hull_ne_stern or hull_e_stern or hull_se_stern or hull_s_stern or hull_sw_stern or hull_w_stern or hull_nw_stern \n\nheading = heading_n or heading_ne or heading_e or heading_se or heading_s or heading_sw or heading_w or heading_nw\n\nrudderdir = rudderdir_l or rudderdir_c or rudderdir_r\n\nsail = sail_n_1 or sail_n_2 or sail_ne_1 or sail_ne_2 or sail_ne_3 or sail_e_1 or sail_e_2 or sail_se_1 or sail_se_2 or sail_se_3 or sail_s_1 or sail_s_2 or sail_sw_1 or sail_sw_2 or sail_sw_3 or sail_w_1 or sail_w_2 or sail_nw_1 or sail_nw_2 or sail_nw_3 \n\nsail_direction = sail_direction_n or sail_direction_ne or sail_direction_e or sail_direction_se or sail_direction_s or sail_direction_sw or sail_direction_w or sail_direction_nw \n\nmountain = mountain1 or mountain2 or mountain3 or mountain4\nmountain_blue = mountain_blue1 or mountain_blue2 or mountain_blue3\npontoon = pontoon1 or pontoon2 or pontoon3 or pontoon4 or pontoon5\n\nobstacle = land or rock or pontoon\n\ntension = tension_0 or tension_1 or tension_2\nsail_side = sail_side_right or sail_side_left\ncordslack = cordslack_0 or cordslack_1 or cordslack_2\nmovement = movement_n or movement_ne or movement_e or movement_se or movement_s or movement_sw or movement_w or movement_nw\n\nwreck = wreck_1 or wreck_2\n\n. = Background\nP = Player and heading_e and rudderdir_c and tension_2 and sail_side_left\n\nw = land and coast_n\ne = land and coast_ne\nd = land and coast_e\nc = land and coast_se\nx = land and coast_s\nz = land and coast_sw\na = land and coast_w\nq = land and coast_nw\ns = land \nf = house1 and land\ng = house2 and land\nh = house3 and land\nj = house4 and land\nv = mountain1 and land\n, = mountain2 and land\nn = mountain3 and land\nm = mountain4 and land\nl = mountain_blue1 and land and mountain1\n; = mountain_blue1 and land and mountain3\n' = mountain_blue2 and land \n# = mountain_blue3 and land \n- = tree and land\nr = rock\n\n=======\nSOUNDS\n=======\nsfx0 64788707 (tight)\nsfx1 92037307 (tighten sail)\nsfx2 6725507(loose )\nsfx3 72434302 (boat crash)\nsfx5 94572100 (pick up buoy)\nsfx6 23834907(rudder change)\nstartlevel 51979900\nendgame 68419109\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nland, rock, pontoon\nmountain_blue, tree\ncoast, house,mountain, buoy\nrudder\nhull\nwreck\nPlayer\nsailcord\nsail\nheading\nrudderdir\nsail_direction\ntension\nsail_side\ncordslack\nagaining\nmovement\nmovement_target\nhasturned\ndomove\n\n======\nRULES\n======\n\n(start of autotiling code- comment out for release version)\n\n( up [ land no coast | no land ] -> [ land coast_n |] )\n( down [ land no coast | no land ] -> [ land coast_s |] )\n( right [ land no coast | no land ] -> [ land coast_e |] )\n( left [ land no coast | no land ] -> [ land coast_w |] )\n\n( right [coast_n | no land] -> [ coast_ne |] sfx6 )\n( left [coast_n | no land] -> [ coast_nw | ] sfx6 )\n\n( right [coast_s | no land] -> [ coast_se |] )\n( left [coast_s | no land] -> [ coast_sw | ] )\n\n(end of autotiling code- comment out for release version)\n\n\n[ stationary player ] -> [ stationary player againing ]\n( [ moving player ]-> again )\n\n[hull]->[]\n[rudder]->[]\n[sail]->[]\n[cordslack]->[]\n[sailcord]->[]\n\n\n\n( [ action player heading_n ]-> [ player heading_ne ] )\n( [ action player heading_ne ]-> [ player heading_e ] )\n( [ action player heading_e ]-> [ player heading_se ] )\n( [ action player heading_se ]-> [ player heading_s ] )\n( [ action player heading_s ]-> [ player heading_sw ] )\n( [ action player heading_sw ]-> [ player heading_w ] )\n( [ action player heading_w ]-> [ player heading_nw ] )\n( [ action player heading_nw ]-> [ player heading_n ] )\n\n\n[ up player tension_2 ] -> [ player tension_1 ] sfx1\n[ up player tension_1 ] -> [ player tension_0 ] sfx2\n[ down player tension_0 ] -> [ player tension_1 ] sfx1\n[ down player tension_1 ] -> [ player tension_2 ] sfx0\n\n(calculate sail direction / cord slack)\n\n[ heading_n tension_2 sail_side_left ] -> [ heading_n tension_2 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_n tension_2 sail_side_right ] -> [ heading_n tension_2 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_n tension_1 sail_side_left ] -> [ heading_n tension_1 sail_side_left sail_direction_s cordslack_1 ]\n[ heading_n tension_1 sail_side_right ] -> [ heading_n tension_1 sail_side_right sail_direction_s cordslack_1 ]\n[ heading_n tension_0 sail_side_left ] -> [ heading_n tension_0 sail_side_left sail_direction_s cordslack_2 ]\n[ heading_n tension_0 sail_side_right ] -> [ heading_n tension_0 sail_side_right sail_direction_s cordslack_2 ]\n\n\n[ heading_ne tension_2 sail_side_left ] -> [ heading_ne tension_2 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_ne tension_2 sail_side_right ] -> [ heading_ne tension_2 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_ne tension_1 sail_side_left ] -> [ heading_ne tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_ne tension_1 sail_side_right ] -> [ heading_ne tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_ne tension_0 sail_side_left ] -> [ heading_ne tension_0 sail_side_right sail_direction_s cordslack_1 ]\n[ heading_ne tension_0 sail_side_right ] -> [ heading_ne tension_0 sail_side_right sail_direction_s cordslack_1 ]\n\n\n[ heading_e tension_2 sail_side_left ] -> [ heading_e tension_2 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_e tension_2 sail_side_right ] -> [ heading_e tension_2 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_e tension_1 sail_side_left ] -> [ heading_e tension_1 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_e tension_1 sail_side_right ] -> [ heading_e tension_1 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_e tension_0 sail_side_left ] -> [ heading_e tension_0 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_e tension_0 sail_side_right ] -> [ heading_e tension_0 sail_side_right sail_direction_s cordslack_0 ]\n\n\n[ heading_se tension_2 sail_side_left ] -> [ heading_se tension_2 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_se tension_2 sail_side_right ] -> [ heading_se tension_2 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_se tension_1 sail_side_left ] -> [ heading_se tension_1 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_se tension_1 sail_side_right ] -> [ heading_se tension_1 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_se tension_0 sail_side_left ] -> [ heading_se tension_0 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_se tension_0 sail_side_right ] -> [ heading_se tension_0 sail_side_right sail_direction_sw cordslack_0 ]\n\n[ heading_s tension_2 sail_side_left ] -> [ heading_s tension_2 sail_side_left sail_direction_n cordslack_0 ]\n[ heading_s tension_2 sail_side_right ] -> [ heading_s tension_2 sail_side_right sail_direction_n cordslack_0 ]\n[ heading_s tension_1 sail_side_left ] -> [ heading_s tension_1 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_s tension_1 sail_side_right ] -> [ heading_s tension_1 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_s tension_0 sail_side_left ] -> [ heading_s tension_0 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_s tension_0 sail_side_right ] -> [ heading_s tension_0 sail_side_right sail_direction_w cordslack_0 ]\n\n[ heading_sw tension_2 sail_side_left ] -> [ heading_sw tension_2 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_sw tension_2 sail_side_right ] -> [ heading_sw tension_2 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_sw tension_1 sail_side_left ] -> [ heading_sw tension_1 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_sw tension_1 sail_side_right ] -> [ heading_sw tension_1 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_sw tension_0 sail_side_left ] -> [ heading_sw tension_0 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_sw tension_0 sail_side_right ] -> [ heading_sw tension_0 sail_side_left sail_direction_se cordslack_0 ]\n\n[ heading_w tension_2 sail_side_left ] -> [ heading_w tension_2 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_w tension_2 sail_side_right ] -> [ heading_w tension_2 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_w tension_1 sail_side_left ] -> [ heading_w tension_1 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_w tension_1 sail_side_right ] -> [ heading_w tension_1 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_w tension_0 sail_side_left ] -> [ heading_w tension_0 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_w tension_0 sail_side_right ] -> [ heading_w tension_0 sail_side_left sail_direction_s cordslack_0 ]\n\n[ heading_nw tension_2 sail_side_left ] -> [ heading_nw tension_2 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_nw tension_2 sail_side_right ] -> [ heading_nw tension_2 sail_side_right sail_direction_se cordslack_0 ]\n[ heading_nw tension_1 sail_side_left ] -> [ heading_nw tension_1 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_nw tension_1 sail_side_right ] -> [ heading_nw tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_nw tension_0 sail_side_left ] -> [ heading_nw tension_0 sail_side_left sail_direction_s cordslack_1 ]\n[ heading_nw tension_0 sail_side_right ] -> [ heading_nw tension_0 sail_side_right sail_direction_s cordslack_1 ]\n\n\n\n(rudder steering)\n[ left player rudderdir_c ]->[player rudderdir_l] sfx6\n[ left player rudderdir_r ]->[player rudderdir_c] sfx6\n\n[ right player rudderdir_l ]->[player rudderdir_c] sfx6\n[ right player rudderdir_c ]->[player rudderdir_r] sfx6\n\n\n[ moving player ]->[player]\n\n(Calculating the movement direction! )\n\n( [againing heading_n sail_direction_n ] -> [againing heading_n sail_direction_n movement_n ] )\n( [againing heading_n sail_direction_ne ] -> [againing heading_n sail_direction_ne movement_n ] )\n( [againing heading_n sail_direction_e ] -> [againing heading_n sail_direction_e movement_n ] )\n( [againing heading_n sail_direction_se ] -> [againing heading_n sail_direction_se movement_n ] )\n[againing heading_n sail_direction_s rudderdir_l ] -> [againing heading_n sail_direction_s rudderdir_l domove ]\n[againing heading_n sail_direction_s rudderdir_r ] -> [againing heading_n sail_direction_s rudderdir_r domove ]\n( [againing heading_n sail_direction_sw ] -> [againing heading_n sail_direction_sw movement_n ] )\n( [againing heading_n sail_direction_w ] -> [againing heading_n sail_direction_w movement_n ] )\n( [againing heading_n sail_direction_nw ] -> [againing heading_n sail_direction_nw movement_n ] )\n\n( [againing heading_ne sail_direction_n ] -> [againing heading_ne sail_direction_n movement_ne ] )\n( [againing heading_ne sail_direction_ne ] -> [againing heading_ne sail_direction_ne movement_ne ] )\n( [againing heading_ne sail_direction_e ] -> [againing heading_ne sail_direction_e movement_ne ] )\n( [againing heading_ne sail_direction_se ] -> [againing heading_ne sail_direction_se movement_ne ] )\n( [againing heading_ne sail_direction_s ] -> [againing heading_ne sail_direction_s movement_ne ] )\n[againing heading_ne sail_direction_sw ] -> [againing heading_ne sail_direction_sw domove ]\n( [againing heading_ne sail_direction_w ] -> [againing heading_ne sail_direction_w movement_ne ] )\n( [againing heading_ne sail_direction_nw ] -> [againing heading_ne sail_direction_nw movement_ne ] )\n\n( [againing heading_e sail_direction_n ] -> [againing heading_e sail_direction_n movement_e ] )\n( [againing heading_e sail_direction_ne ] -> [againing heading_e sail_direction_ne movement_e ] )\n( [againing heading_e sail_direction_e ] -> [againing heading_e sail_direction_e movement_e ] )\n( [againing heading_e sail_direction_se ] -> [againing heading_e sail_direction_se movement_e ] )\n( [againing heading_e sail_direction_s ] -> [againing heading_e sail_direction_s movement_e ] )\n[againing heading_e sail_direction_sw ] -> [againing heading_e sail_direction_sw domove ]\n( [againing heading_e sail_direction_w ] -> [againing heading_e sail_direction_w movement_e ] )\n( [againing heading_e sail_direction_nw ] -> [againing heading_e sail_direction_nw movement_e ] )\n\n( [againing heading_se sail_direction_n ] -> [againing heading_se sail_direction_n movement_se ] )\n[againing heading_se sail_direction_ne ] -> [againing heading_se sail_direction_ne domove ]\n( [againing heading_se sail_direction_e ] -> [againing heading_se sail_direction_e movement_se ] )\n( [againing heading_se sail_direction_se ] -> [againing heading_se sail_direction_se movement_se ] )\n( [againing heading_se sail_direction_s ] -> [againing heading_se sail_direction_s movement_se ] )\n[againing heading_se sail_direction_sw ] -> [againing heading_se sail_direction_sw domove ]\n[againing heading_se sail_direction_w ] -> [againing heading_se sail_direction_w domove ]\n[againing heading_se sail_direction_nw ] -> [againing heading_se sail_direction_nw domove ]\n\n( [againing heading_s sail_direction_n ] -> [againing heading_s sail_direction_n movement_s ] )\n[againing heading_s sail_direction_ne ] -> [againing heading_s sail_direction_ne domove ]\n[againing heading_s sail_direction_e ] -> [againing heading_s sail_direction_e domove ]\n( [againing heading_s sail_direction_se ] -> [againing heading_s sail_direction_se movement_s ] )\n( [againing heading_s sail_direction_s ] -> [againing heading_s sail_direction_s movement_s ] )\n( [againing heading_s sail_direction_sw ] -> [againing heading_s sail_direction_sw movement_s ] )\n[againing heading_s sail_direction_w ] -> [againing heading_s sail_direction_w domove ]\n[againing heading_s sail_direction_nw ] -> [againing heading_s sail_direction_nw domove ]\n\n( [againing heading_sw sail_direction_n ] -> [againing heading_sw sail_direction_n movement_sw ] )\n[againing heading_sw sail_direction_ne ] -> [againing heading_sw sail_direction_ne domove ]\n[againing heading_sw sail_direction_e ] -> [againing heading_sw sail_direction_e domove ]\n[againing heading_sw sail_direction_se ] -> [againing heading_sw sail_direction_se domove ]\n( [againing heading_sw sail_direction_s ] -> [againing heading_sw sail_direction_s movement_sw ] )\n( [againing heading_sw sail_direction_sw ] -> [againing heading_sw sail_direction_sw movement_sw ] )\n( [againing heading_sw sail_direction_w ] -> [againing heading_sw sail_direction_w movement_sw ] )\n[againing heading_sw sail_direction_nw ] -> [againing heading_sw sail_direction_nw domove ]\n\n\n( [againing heading_w sail_direction_n ] -> [againing heading_w sail_direction_n movement_w ] )\n( [againing heading_w sail_direction_ne ] -> [againing heading_w sail_direction_ne movement_w ] )\n( [againing heading_w sail_direction_e ] -> [againing heading_w sail_direction_e movement_w ] )\n[againing heading_w sail_direction_se ] -> [againing heading_w sail_direction_se domove ]\n( [againing heading_w sail_direction_s ] -> [againing heading_w sail_direction_s movement_w ] )\n( [againing heading_w sail_direction_sw ] -> [againing heading_w sail_direction_sw movement_w ] )\n( [againing heading_w sail_direction_w ] -> [againing heading_w sail_direction_w movement_w ] )\n( [againing heading_w sail_direction_nw ] -> [againing heading_w sail_direction_nw movement_w ] )\n\n\n( [againing heading_nw sail_direction_n ] -> [againing heading_nw sail_direction_n movement_nw ] )\n( [againing heading_nw sail_direction_ne ] -> [againing heading_nw sail_direction_ne movement_nw ] )\n( [againing heading_nw sail_direction_e ] -> [againing heading_nw sail_direction_e movement_nw ] )\n[againing heading_nw sail_direction_se ] -> [againing heading_nw sail_direction_se domove ]\n( [againing heading_nw sail_direction_s ] -> [againing heading_nw sail_direction_s movement_nw ] )\n( [againing heading_nw sail_direction_sw ] -> [againing heading_nw sail_direction_sw movement_nw ] )\n( [againing heading_nw sail_direction_w ] -> [againing heading_nw sail_direction_w movement_nw ] )\n( [againing heading_nw sail_direction_nw ] -> [againing heading_nw sail_direction_nw movement_nw ] )\n\n(rudder rotation)\n\n[ domove no hasturned ] [ rudderdir_l heading_n ] -> [ domove hasturned ] [ rudderdir_l heading_nw ]\n[ domove no hasturned ] [ rudderdir_l heading_ne ] -> [ domove hasturned ] [ rudderdir_l heading_n ]\n[ domove no hasturned ] [ rudderdir_l heading_e ] -> [ domove hasturned ] [ rudderdir_l heading_ne ]\n[ domove no hasturned ] [ rudderdir_l heading_se ] -> [ domove hasturned ] [ rudderdir_l heading_e ]\n[ domove no hasturned ] [ rudderdir_l heading_s ] -> [ domove hasturned ] [ rudderdir_l heading_se ]\n[ domove no hasturned ] [ rudderdir_l heading_sw ] -> [ domove hasturned ] [ rudderdir_l heading_s ]\n[ domove no hasturned ] [ rudderdir_l heading_w ] -> [ domove hasturned ] [ rudderdir_l heading_sw ]\n[ domove no hasturned ] [ rudderdir_l heading_nw ] -> [ domove hasturned ] [ rudderdir_l heading_w ]\n\n[ domove no hasturned ] [ rudderdir_r heading_n ] -> [ domove hasturned ] [ rudderdir_r heading_ne ]\n[ domove no hasturned ] [ rudderdir_r heading_ne ] -> [ domove hasturned ] [ rudderdir_r heading_e ]\n[ domove no hasturned ] [ rudderdir_r heading_e ] -> [ domove hasturned ] [ rudderdir_r heading_se ]\n[ domove no hasturned ] [ rudderdir_r heading_se ] -> [ domove hasturned ] [ rudderdir_r heading_s ]\n[ domove no hasturned ] [ rudderdir_r heading_s ] -> [ domove hasturned ] [ rudderdir_r heading_sw ]\n[ domove no hasturned ] [ rudderdir_r heading_sw ] -> [ domove hasturned ] [ rudderdir_r heading_w ]\n[ domove no hasturned ] [ rudderdir_r heading_w ] -> [ domove hasturned ] [ rudderdir_r heading_nw ]\n[ domove no hasturned ] [ rudderdir_r heading_nw ] -> [ domove hasturned ] [ rudderdir_r heading_n ]\n\n[hasturned]->[]\n\n\n[ domove heading_n ] -> [ heading_n movement_n ]\n[ domove heading_ne ] -> [ heading_ne movement_ne ]\n[ domove heading_e ] -> [ heading_e movement_e ]\n[ domove heading_se ] -> [ heading_se movement_se ]\n[ domove heading_s ] -> [ heading_s movement_s ]\n[ domove heading_sw ] -> [ heading_sw movement_sw ]\n[ domove heading_w ] -> [ heading_w movement_w ]\n[ domove heading_nw ] -> [ heading_nw movement_nw ]\n\nright [ movement_ne | ] -> [ | movement_n ]\nright [ movement_se | ] -> [ | movement_s ]\nleft [ movement_nw | ] -> [ | movement_n ]\nleft [ movement_sw | ] -> [ | movement_s ]\n\nup [ movement_n | ] -> [ | movement_target ]\nright [ movement_e | ] -> [ | movement_target ]\ndown [ movement_s | ] -> [ | movement_target ]\nleft [ movement_w | ] -> [ | movement_target ]\n\n\n( [ movement_target ] [ player heading rudderdir tension sail_side sail_direction ] -> [ player heading rudderdir tension sail_side sail_direction] [] )\n\n(some bug(?) whereby I can't replace the above with the below)\n\nrandom [ movement_target ] [ player ] -> [ movement_target player ] []\nrandom [ movement_target ] [ heading ] -> [ movement_target heading ] []\nrandom [ movement_target ] [ rudderdir ] -> [ movement_target rudderdir ] []\nrandom [ movement_target ] [ tension ] -> [ movement_target tension ] []\nrandom [ movement_target ] [ sail_side ] -> [ movement_target sail_side ] []\nrandom [ movement_target ] [ sail_direction ] -> [ movement_target sail_direction ] []\nrandom [ movement_target]->[]\n\n\n(calculate sail direction / cord slack)\n\n[ heading_n tension_2 sail_side_left ] -> [ heading_n tension_2 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_n tension_2 sail_side_right ] -> [ heading_n tension_2 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_n tension_1 sail_side_left ] -> [ heading_n tension_1 sail_side_left sail_direction_s cordslack_1 ]\n[ heading_n tension_1 sail_side_right ] -> [ heading_n tension_1 sail_side_right sail_direction_s cordslack_1 ]\n[ heading_n tension_0 sail_side_left ] -> [ heading_n tension_0 sail_side_left sail_direction_s cordslack_2 ]\n[ heading_n tension_0 sail_side_right ] -> [ heading_n tension_0 sail_side_right sail_direction_s cordslack_2 ]\n\n\n[ heading_ne tension_2 sail_side_left ] -> [ heading_ne tension_2 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_ne tension_2 sail_side_right ] -> [ heading_ne tension_2 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_ne tension_1 sail_side_left ] -> [ heading_ne tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_ne tension_1 sail_side_right ] -> [ heading_ne tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_ne tension_0 sail_side_left ] -> [ heading_ne tension_0 sail_side_right sail_direction_s cordslack_1 ]\n[ heading_ne tension_0 sail_side_right ] -> [ heading_ne tension_0 sail_side_right sail_direction_s cordslack_1 ]\n\n\n[ heading_e tension_2 sail_side_left ] -> [ heading_e tension_2 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_e tension_2 sail_side_right ] -> [ heading_e tension_2 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_e tension_1 sail_side_left ] -> [ heading_e tension_1 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_e tension_1 sail_side_right ] -> [ heading_e tension_1 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_e tension_0 sail_side_left ] -> [ heading_e tension_0 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_e tension_0 sail_side_right ] -> [ heading_e tension_0 sail_side_right sail_direction_s cordslack_0 ]\n\n\n[ heading_se tension_2 sail_side_left ] -> [ heading_se tension_2 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_se tension_2 sail_side_right ] -> [ heading_se tension_2 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_se tension_1 sail_side_left ] -> [ heading_se tension_1 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_se tension_1 sail_side_right ] -> [ heading_se tension_1 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_se tension_0 sail_side_left ] -> [ heading_se tension_0 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_se tension_0 sail_side_right ] -> [ heading_se tension_0 sail_side_right sail_direction_sw cordslack_0 ]\n\n[ heading_s tension_2 sail_side_left ] -> [ heading_s tension_2 sail_side_left sail_direction_n cordslack_0 ]\n[ heading_s tension_2 sail_side_right ] -> [ heading_s tension_2 sail_side_right sail_direction_n cordslack_0 ]\n[ heading_s tension_1 sail_side_left ] -> [ heading_s tension_1 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_s tension_1 sail_side_right ] -> [ heading_s tension_1 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_s tension_0 sail_side_left ] -> [ heading_s tension_0 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_s tension_0 sail_side_right ] -> [ heading_s tension_0 sail_side_right sail_direction_w cordslack_0 ]\n\n[ heading_sw tension_2 sail_side_left ] -> [ heading_sw tension_2 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_sw tension_2 sail_side_right ] -> [ heading_sw tension_2 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_sw tension_1 sail_side_left ] -> [ heading_sw tension_1 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_sw tension_1 sail_side_right ] -> [ heading_sw tension_1 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_sw tension_0 sail_side_left ] -> [ heading_sw tension_0 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_sw tension_0 sail_side_right ] -> [ heading_sw tension_0 sail_side_left sail_direction_se cordslack_0 ]\n\n[ heading_w tension_2 sail_side_left ] -> [ heading_w tension_2 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_w tension_2 sail_side_right ] -> [ heading_w tension_2 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_w tension_1 sail_side_left ] -> [ heading_w tension_1 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_w tension_1 sail_side_right ] -> [ heading_w tension_1 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_w tension_0 sail_side_left ] -> [ heading_w tension_0 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_w tension_0 sail_side_right ] -> [ heading_w tension_0 sail_side_left sail_direction_s cordslack_0 ]\n\n[ heading_nw tension_2 sail_side_left ] -> [ heading_nw tension_2 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_nw tension_2 sail_side_right ] -> [ heading_nw tension_2 sail_side_right sail_direction_se cordslack_0 ]\n[ heading_nw tension_1 sail_side_left ] -> [ heading_nw tension_1 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_nw tension_1 sail_side_right ] -> [ heading_nw tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_nw tension_0 sail_side_left ] -> [ heading_nw tension_0 sail_side_left sail_direction_s cordslack_1 ]\n[ heading_nw tension_0 sail_side_right ] -> [ heading_nw tension_0 sail_side_right sail_direction_s cordslack_1 ]\n\n( [ heading_n ] -> again )\n\n(ship-drawing)\n(orthogonal hull drawing)\nup late [ | player heading_n ] -> [ hull_n_stern | hull_n_bow player heading_n ]\nright late [ | player heading_e ] -> [ hull_e_stern | hull_e_bow player heading_e ]\ndown late [ | player heading_s ] -> [ hull_s_stern | hull_s_bow player heading_s ]\nleft late [ | player heading_w ] -> [ hull_w_stern | hull_w_bow player heading_w ]\n\n(diagonal hull drawing)\nright late [ | player heading_ne ] -> [ hull_diag_nw heading_ne | hull_ne_bow player heading_ne ]\nup late [ | player heading_ne ] -> [ hull_diag_se | hull_ne_bow player heading_ne ]\nup late [ | hull_diag_nw heading_ne ] -> [ hull_ne_stern | hull_diag_nw ]\n\ndown late [ | player heading_se ] -> [ hull_diag_ne heading_se | hull_se_bow player heading_se ]\nright late [ | player heading_se ] -> [ hull_diag_sw | hull_se_bow player heading_se ]\nright late [ | hull_diag_ne heading_se ] -> [ hull_se_stern | hull_diag_ne ]\n\nleft late [ | player heading_sw ] -> [ hull_diag_se heading_sw | hull_sw_bow player heading_sw ]\ndown late [ | player heading_sw ] -> [ hull_diag_nw | hull_sw_bow player heading_sw ]\ndown late [ | hull_diag_se heading_sw ] -> [ hull_sw_stern | hull_diag_se ]\n\n\nup late [ | player heading_nw ] -> [ hull_diag_sw heading_nw | hull_nw_bow player heading_nw ]\nleft late [ | player heading_nw ] -> [ hull_diag_ne | hull_nw_bow player heading_nw ]\nleft late [ | hull_diag_sw heading_nw ] -> [ hull_nw_stern | hull_diag_sw ]\n\n\n(rudder drawing)\nlate [ rudderdir_l ] [ hull_n_stern ] -> [rudderdir_l ] [ hull_n_stern hull_n_rl ]\nlate [ rudderdir_c ] [ hull_n_stern ] -> [rudderdir_c ] [ hull_n_stern hull_n_rc ]\nlate [ rudderdir_r ] [ hull_n_stern ] -> [rudderdir_r ] [ hull_n_stern hull_n_rr ]\n\nlate [ rudderdir_l ] [ hull_ne_stern ] -> [rudderdir_l ] [ hull_ne_stern hull_ne_rl ]\nlate [ rudderdir_c ] [ hull_ne_stern ] -> [rudderdir_c ] [ hull_ne_stern hull_ne_rc ]\nlate [ rudderdir_r ] [ hull_ne_stern ] -> [rudderdir_r ] [ hull_ne_stern hull_ne_rr ]\n\nlate [ rudderdir_l ] [ hull_e_stern ] -> [rudderdir_l ] [ hull_e_stern hull_e_rl ]\nlate [ rudderdir_c ] [ hull_e_stern ] -> [rudderdir_c ] [ hull_e_stern hull_e_rc ]\nlate [ rudderdir_r ] [ hull_e_stern ] -> [rudderdir_r ] [ hull_e_stern hull_e_rr ]\n\nlate [ rudderdir_l ] [ hull_se_stern ] -> [rudderdir_l ] [ hull_se_stern hull_se_rl ]\nlate [ rudderdir_c ] [ hull_se_stern ] -> [rudderdir_c ] [ hull_se_stern hull_se_rc ]\nlate [ rudderdir_r ] [ hull_se_stern ] -> [rudderdir_r ] [ hull_se_stern hull_se_rr ]\n\nlate [ rudderdir_l ] [ hull_s_stern ] -> [rudderdir_l ] [ hull_s_stern hull_s_rl ]\nlate [ rudderdir_c ] [ hull_s_stern ] -> [rudderdir_c ] [ hull_s_stern hull_s_rc ]\nlate [ rudderdir_r ] [ hull_s_stern ] -> [rudderdir_r ] [ hull_s_stern hull_s_rr ]\n\nlate [ rudderdir_l ] [ hull_sw_stern ] -> [rudderdir_l ] [ hull_sw_stern hull_sw_rl ]\nlate [ rudderdir_c ] [ hull_sw_stern ] -> [rudderdir_c ] [ hull_sw_stern hull_sw_rc ]\nlate [ rudderdir_r ] [ hull_sw_stern ] -> [rudderdir_r ] [ hull_sw_stern hull_sw_rr ]\n\nlate [ rudderdir_l ] [ hull_w_stern ] -> [rudderdir_l ] [ hull_w_stern hull_w_rl ]\nlate [ rudderdir_c ] [ hull_w_stern ] -> [rudderdir_c ] [ hull_w_stern hull_w_rc ]\nlate [ rudderdir_r ] [ hull_w_stern ] -> [rudderdir_r ] [ hull_w_stern hull_w_rr ]\n\nlate [ rudderdir_l ] [ hull_nw_stern ] -> [rudderdir_l ] [ hull_nw_stern hull_nw_rl ]\nlate [ rudderdir_c ] [ hull_nw_stern ] -> [rudderdir_c ] [ hull_nw_stern hull_nw_rc ]\nlate [ rudderdir_r ] [ hull_nw_stern ] -> [rudderdir_r ] [ hull_nw_stern hull_nw_rr ]\n\n(sail-drawing)\n\nlate up [ sail_direction_n | ] -> [ sail_direction_n sail_n_1 | sail_n_2 ]\nlate right [ sail_direction_e | ] -> [ sail_direction_e sail_e_1 | sail_e_2 ]\nlate down [ sail_direction_s | ] -> [ sail_direction_s sail_s_1 | sail_s_2 ]\nlate left [ sail_direction_w | ] -> [ sail_direction_w sail_w_1 | sail_w_2 ]\n\nlate right [ sail_direction_ne | ] -> [sail_direction_ne sail_ne_1 | sail_ne_2]\nlate up [ sail_ne_2 | ] -> [sail_ne_2 | sail_ne_3 ]\n\nlate down [ sail_direction_se | ] -> [sail_direction_se sail_se_1 | sail_se_2]\nlate right [ sail_se_2 | ] -> [sail_se_2 | sail_se_3 ]\n\nlate down [ sail_direction_sw | ] -> [sail_direction_sw sail_sw_1 | sail_sw_2]\nlate left [ sail_sw_2 | ] -> [sail_sw_2 | sail_sw_3 ]\n\nlate left [ sail_direction_nw | ] -> [sail_direction_nw sail_nw_1 | sail_nw_2]\nlate up [ sail_nw_2 | ] -> [sail_nw_2 | sail_nw_3 ]\n\n\n(sailcord drawing omg I'm so sorry this is terrible)\n\nlate right [cordslack_1] [ sail_s_2 | hull_nw_stern ] -> [cordslack_1] [ sail_s_2 sailcord_cordslack_south_left | hull_nw_stern sailcord_sw ]\nlate right [cordslack_0] [ sail_s_2 | hull_nw_stern ] -> [cordslack_0] [ sail_s_2 sailcord_e | hull_nw_stern sailcord_w ]\n\n\nlate down [ hull_w_stern | sail_se_3 ] -> [ hull_w_stern sailcord_s | sail_se_3 sailcord_n ]\nlate [ sail_s_2 ] [ hull_w_stern ] -> [ sail_s_2 sailcord_ne ] [ hull_w_stern sailcord_sw ]\n\nlate down [ hull_sw_stern | sail_e_2 ] -> [ hull_sw_stern sailcord_s | sail_e_2 sailcord_n ] \nlate down [ hull_sw_stern | | sail_se_3 ] -> [ hull_sw_stern sailcord_s | sailcord_ns | sail_se_3 sailcord_n ] \nlate right [ sail_nw_3 | | hull_sw_stern ] -> [ sail_nw_3 sailcord_e | sailcord_ew | hull_sw_stern sailcord_w ]\n\nlate down [ cordslack_1 | sail_s_2 hull_n_stern ] -> [ cordslack_1 | sail_s_2 hull_n_stern cordslack_1 sailcord_cordslack_south_1 ]\nlate down [ cordslack_2 | sail_s_2 hull_n_stern ] -> [ cordslack_2 | sail_s_2 hull_n_stern sailcord_cordslack_south_2 ]\n\nlate right [ hull_s_stern | sail_ne_3 ] -> [ hull_s_stern sailcord_e | sail_ne_3 sailcord_w ]\nlate [ hull_s_stern ] [ sail_e_2 ] -> [ hull_s_stern sailcord_se ] [ sail_e_2 sailcord_nw ] \nlate right [ sail_nw_3 | hull_s_stern ] -> [ sail_nw_3 sailcord_e | hull_s_stern sailcord_w ]\nlate [ sail_w_2 ] [hull_s_stern ] -> [ sail_w_2 sailcord_ne ] [hull_s_stern sailcord_sw ]\n\nlate right [cordslack_1] [ hull_ne_stern | sail_s_2 ] -> [cordslack_1] [ hull_ne_stern sailcord_se | sail_s_2 sailcord_cordslack_south_right ]\nlate right [cordslack_0] [ hull_ne_stern | sail_s_2 ] -> [cordslack_0] [ hull_ne_stern sailcord_e | sail_s_2 sailcord_w ]\n\nlate [ hull_e_stern ] [ sail_s_2 ] -> [ hull_e_stern sailcord_se] [ sail_s_2 sailcord_nw ] \nlate down [hull_e_stern | sail_sw_3 ]->[hull_e_stern sailcord_s| sail_sw_3 sailcord_n]\n\nlate down [ hull_se_stern | sail_w_2 ] -> [ hull_se_stern sailcord_s | sail_w_2 sailcord_n ] \nlate down [ hull_se_stern | | sail_sw_3 ] -> [ hull_se_stern sailcord_s |sailcord_ns| sail_sw_3 sailcord_n ] \nlate right [hull_se_stern | | sail_ne_3 ] -> [hull_se_stern sailcord_e | sailcord_ew | sail_ne_3 sailcord_w ]\n\nlate [ againing ] ->[]\nlate [ movement ] ->[]\n\n\nlate [ hull obstacle ] [ player ] -> [ hull obstacle ] [ no player wreck_1 ] sfx3\nlate [ wreck_1 ] [hull_stern] -> [ wreck_1] [wreck_2]\nlate [wreck_1] [hull] ->[wreck_1] [no hull]\n\nlate [ hull buoy ] -> [ hull ] sfx5\n\n==============\nWINCONDITIONS\n==============\n\nno buoy\n\n=======\nLEVELS\n=======\n\n\nmessage The wind comes from the north. Press left and right to adjust rudder. Press up and down to adjust the sail tension. The goal is to collect all the buoys.\n\nmessage Lake 1 of 3 \n\nq-xxxxxxxxxxxxsj\nsd............zs\n-c.............a\nd..............i\nd..............u\nd..............i\nd..........b...u\nd..............i\nhe..p..........u\nsc.............i\nd..............a\nd..........b...a\nd..............a\nd.............qs\nd.............as\nswwwwwwwwwwwww'#\n\n\nmessage Lake 2 of 3 \n\nsssss-ssxxss--sssss-sxx--sss\nsshsxxxc..zxxxxxsgsxc..zssm'\nsjsc............afd.....zv,;\nssc.............zxc......ass\nsd..........b............zss\nsse.......................a-\nssd......qwe..............ss\nssc.......aswwwwwe.....b...a\n-d........z-sm'#mswe.......a\nsd.........zv,;l,n-d.......a\njd..p.......asxs-sxc......s-\njd.........qsc.zxc........a-\njd.........zc.............a-\n-se.......................as\nssc.............b....e...qss\nsd..................qje..ahs\nsse.................ahswwsss\nshswwe.qwwwwwwwe.qwwsssss-sc\nssss-swshjs--sjswm-smss-s-c.\n\n\nmessage Lake 3 of 3\n\nsssxxxxxxxxxxxxxxxxxxxshsjs-\nssc.....r.............zxjshs\nsc...r..........r.......zhgs\nd...........r............zfj\nd.........................zs\nd..p....r............r.....a\nd................r.........a\nd.......qwwwwwe............a\nd......qsxc...zwwwwe.......a\nd.....qhd.......zxjc.......a\nd....qjsc.........c....qe..a\nd...qssc..b..e.........d...a\nd..qm-d.....qse.......qd...a\nswwv,nse...qs-swwwwwwwj-wwws\n-s------wwws-s--s-j-s-ss-s--\n\n\nmessage Congratulations: you are the best sailer in the world!\n\n", ["tick", 2, 0, "tick", 1, "tick", "tick", 2, "tick", 0, "tick", 3, 3, "tick", 2, "tick", "tick", "tick", "tick", 1, "tick", 0, "tick", "tick", "tick", 3, "tick"], "background land:0,0,0,0,0,0,0,0,background land tree:1,0,background house4 land:2,2,2,1,0,0,0,0,0,0,0,2,0,background coast_e land:3,0,0,0,3,\n3,3,3,3,0,0,3,0,background house3 land:4,0,0,4,0,background coast_se land:5,background:6,background coast_ne land:7,3,5,6,6,6,6,6,7,5,6,7,0,\n0,0,0,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,background coast_n land:8,0,0,background coast_s land:9,6,6,6,6,6,6,\n6,6,6,6,6,6,6,6,6,8,1,1,9,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,\n7,0,0,9,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,8,0,5,6,6,6,6,6,\n6,6,6,6,6,6,6,6,6,6,background coast_nw land:10,0,9,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,\n6,8,4,9,6,6,6,6,6,10,6,6,6,6,6,6,6,6,6,6,8,2,0,background coast_sw land:11,6,6,6,background cordslack_0 hull_se_rr sailcord_s wreck_2:12,\nbackground coast_n land sail_w_2 sailcord_n:13,background coast_w land:14,11,6,6,6,6,6,6,6,6,8,0,0,9,6,6,6,6,background coast_ne cordslack_0 heading_se land rudderdir_r sail_direction_w sail_side_right sail_w_1 tension_1 wreck_1:15,0,1,11,6,10,11,6,6,\n6,6,8,1,1,9,6,6,background buoy:16,6,6,8,0,background land mountain1:17,14,0,5,6,6,6,6,8,1,1,9,6,6,6,\n6,6,8,background land mountain4:18,background land mountain2:19,0,5,6,6,6,6,6,8,0,0,9,6,6,6,6,6,8,background land mountain_blue2:20,background land mountain3 mountain_blue1:21,9,6,6,6,\n6,6,6,8,2,0,9,6,6,6,6,6,8,background land mountain_blue3:22,background land mountain1 mountain_blue1:23,0,11,6,6,6,6,6,7,0,0,0,14,11,\n6,6,6,8,18,19,1,9,6,6,16,6,6,6,8,0,background house2 land:24,background house1 land:25,9,6,6,6,7,0,background land mountain3:26,0,5,6,\n6,6,6,6,10,18,0,0,3,5,6,6,6,6,8,1,9,6,6,6,6,6,6,8,1,1,9,6,\n6,6,6,6,6,7,3,5,6,6,6,6,6,6,8,0,0,5,6,6,6,6,6,6,6,6,6,6,\n6,6,6,10,14,0,18,9,6,6,6,6,6,6,6,6,6,6,6,6,6,7,2,4,0,0,9,6,\n6,6,6,6,6,6,6,6,6,6,6,6,6,7,0,0,0,1,11,6,6,6,6,6,16,6,6,6,\n6,6,6,6,6,8,0,1,1,0,11,6,6,6,6,6,6,6,6,6,6,6,6,6,8,0,0,0,\n0,17,14,11,6,6,6,6,6,6,6,6,6,10,14,0,1,1,0,18,19,0,0,14,0,6,6,6,\n0,14,14,14,0,4,0,0,5,0,20,21,0,0,1,0,14,14,14,1,1,1,0,0,0,0,5,6,\n", 4, "1627893570488.5464"] ], [ - "It gets its Feet Wet", - ["title It gets its Feet Wet\nauthor increpare\nhomepage www.increpare.com\n\nnorepeat_action\ncolor_palette 4\n\n( debug )\n( verbose_logging )\n\n\n\n========\nOBJECTS\n========\n\nface_pixel_brown 1\nbrown\n\nface_pixel_black 2\nblack\n\nface_pixel_lightbrown 3\nlightbrown\n\nface_pixel_pink 4\npink\n\nleg_pixel_highlighted q\nlightbrown\n\nleg_pixel_unhighlighted w\nbrown\n\nBackground\nlightblue\n\n\n\nWall\ngreen\n\nplayer\ngreen\n\n\nlegswitchmarker\ntransparent\n\nobject1 o\ngray\n\nobject2 k\nlightgray\n\nobject3 l\ndarkgray\n\n\nnofallmarker \nred\n00...\n0....\n.....\n.....\n.....\n\nleggrounded\nred\n..0..\n..00.\n.....\n.....\n.....\n\ninactivelegair\nred\n.....\n.....\n.....\n.0...\n0....\n\nbodygrounded\nred\n....0\n....0\n.....\n.....\n.....\n\nbodyraisedtag\nred\n.....\n.....\n.....\n...0.\n....0\n\ndomoveleft\ntransparent\n\ndomoveright\ntransparent \n\ncanmoveleft\nyellow\n0....\n.....\n.....\n.....\n.....\n\ncanmoveright\nyellow\n....0\n.....\n.....\n.....\n.....\n\ncanmoveup\nyellow\n..0..\n.....\n.....\n.....\n.....\n\nwater c\nblue\n\n=======\nLEGEND\n=======\n\nface_pixel = face_pixel_brown or face_pixel_black or face_pixel_lightbrown or face_pixel_pink\n\nleg = leg_pixel_highlighted or leg_pixel_unhighlighted\nobject = object1 or object2 or object3\n\n\ngondola = leg or face_pixel\nobstacle = face_pixel or wall or leg or object\nnongondolaobject = wall or object\nnonactivegondola = face_pixel or leg_pixel_unhighlighted\n\nmovable = gondola or object\n\n. = Background\n# = Wall\nP = Player\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nwater\nPlayer, Wall,face_pixel,leg_pixel_highlighted, leg_pixel_unhighlighted, object\nlegswitchmarker\nnofallmarker\nleggrounded\nbodygrounded\nbodyraisedtag\ninactivelegair\ndomoveleft\ndomoveright\ncanmoveup\ncanmoveleft\ncanmoveright\n\n======\nRULES\n======\n\n[ movable ] -> [ movable canmoveleft canmoveright canmoveup ]\n\nright [ canmoveright | wall ] -> [ | wall ]\nright [ obstacle canmoveright | obstacle no canmoveright ] -> [ obstacle | obstacle ]\n+ [ object1 no canmoveright ] [object1 canmoveright ] -> [ object1 ] [ object1 ]\n+ [ object2 no canmoveright ] [object2 canmoveright ] -> [ object2 ] [ object2 ]\n+ [ object3 no canmoveright ] [object3 canmoveright ] -> [ object3 ] [ object3 ]\n+ [ nonactivegondola no canmoveright ] [nonactivegondola canmoveright ] -> [ nonactivegondola ] [ nonactivegondola ]\n+ [ leg_pixel_highlighted no canmoveright ] [leg_pixel_highlighted canmoveright ] -> [ leg_pixel_highlighted ] [ leg_pixel_highlighted ]\n\nleft [ canmoveleft | wall ] -> [ | wall ]\nleft [ obstacle canmoveleft | obstacle no canmoveleft ] -> [ obstacle | obstacle ]\n+ [ object1 no canmoveleft ] [object1 canmoveleft ] -> [ object1 ] [ object1 ]\n+ [ object2 no canmoveleft ] [object2 canmoveleft ] -> [ object2 ] [ object2 ]\n+ [ object3 no canmoveleft ] [object3 canmoveleft ] -> [ object3 ] [ object3 ]\n+ [ nonactivegondola no canmoveleft ] [nonactivegondola canmoveleft ] -> [ nonactivegondola ] [ nonactivegondola ]\n+ [ leg_pixel_highlighted no canmoveleft ] [leg_pixel_highlighted canmoveleft ] -> [ leg_pixel_highlighted ] [ leg_pixel_highlighted ]\n\n\nup [ canmoveup | wall ] -> [ | wall ]\nup [ obstacle canmoveup | obstacle no canmoveup ] -> [ obstacle | obstacle ]\n+ [ object1 no canmoveup ] [object1 canmoveup ] -> [ object1 ] [ object1 ]\n+ [ object2 no canmoveup ] [object2 canmoveup ] -> [ object2 ] [ object2 ]\n+ [ object3 no canmoveup ] [object3 canmoveup ] -> [ object3 ] [ object3 ]\n+ [ nonactivegondola no canmoveup ] [nonactivegondola canmoveup ] -> [ nonactivegondola ] [ nonactivegondola ]\n+ [ leg_pixel_highlighted no canmoveup ] [leg_pixel_highlighted canmoveup ] -> [ leg_pixel_highlighted ] [ leg_pixel_highlighted ]\n\ndown [ leg | nongondolaobject ] -> [ leg leggrounded | nongondolaobject ]\nup [ leggrounded | leg ] -> [ leggrounded | leg leggrounded ]\n[ leggrounded ] [ gondola ] -> [ leggrounded ] [ gondola bodygrounded ]\n\ndown [leg_pixel_unhighlighted | no obstacle ] [player] -> [leg_pixel_unhighlighted | ] [ player inactivelegair ]\n\n\n(inactive leg grounded if head resting on something)\n\ndown [ face_pixel | nongondolaobject ] [ leg_pixel_unhighlighted ] [player] -> [ face_pixel | nongondolaobject ] [ leg_pixel_unhighlighted leggrounded ] [ player no inactivelegair ]\n\n(distribute movements to leg parts)\n[stationary player ] [ gondola ] -> [stationary player ] [ down gondola ] again\n\n(if gondola is pushing into object during gravity phase, cancel turn)\ndown [down gondola | nongondolaobject ] -> [ gondola nofallmarker | nongondolaobject ] again\n[nofallmarker]->cancel\n\n\n(swap legs if you press action)\n[ action player ] [ leg_pixel_highlighted ] -> [ action player ] [ leg_pixel_unhighlighted legswitchmarker ] \n[ action player ] [ leg_pixel_unhighlighted no legswitchmarker] -> [ action player ] [ leg_pixel_highlighted legswitchmarker ] \n[legswitchmarker] -> []\n\n\n(propagate motion from player to leg parts)\n[orthogonal player] [ leg_pixel_highlighted ] -> [ orthogonal player ] [ orthogonal leg_pixel_highlighted ] again\n\n\n(raise leg)\nup [ up leg_pixel_highlighted | leg_pixel_highlighted | face_pixel_brown ] -> [ | leg_pixel_highlighted | face_pixel_brown ]\n\n(lower leg into empty space if leg not grounded)\ndown [orthogonal player] [ down leg_pixel_highlighted no leggrounded | no obstacle ] -> [ player] [ down leg_pixel_highlighted | leg_pixel_highlighted ]\n\n(lower leg, pushing body up)\n\n(if pushing down while current leg is grounded, and while you have headspace, push whole gondola up)\nup [down player] [ leggrounded canmoveup ] [ gondola no bodyraisedtag | no obstacle ] -> [down player] [ leggrounded canmoveup ] [ | stationary gondola bodyraisedtag]\n\ndown [bodyraisedtag] [leg_pixel_highlighted | no obstacle ] -> [bodyraisedtag] [ leg_pixel_highlighted | leg_pixel_highlighted ]\n\n[bodyraisedtag]->[]\n\n(if active leg cannot move in the direction it would want to, mark the other leg as honorarily airborn)\n[ left player ] [ leg_pixel_highlighted no canmoveleft ] -> [ left player inactivelegair ] [ leg_pixel_highlighted leggrounded ]\n[ right player ] [ leg_pixel_highlighted no canmoveright ] -> [ right player inactivelegair ] [ leg_pixel_highlighted leggrounded ]\n\n(if moving current *grounded* leg left while other leg in air, keep it stationary and move body right instead)\n[ left player inactivelegair ] [ leg_pixel_highlighted leggrounded ] [ nonactivegondola canmoveright ] -> [ left player inactivelegair ] [ leg_pixel_highlighted leggrounded ] [ nonactivegondola domoveright ]\n\n[ domoveright ] [ moving gondola] -> [ domoveright ] [ gondola]\n\nright [ domoveright gondola | no obstacle ] -> [ | gondola ]\n\n\n\n(if moving current *grounded* leg right while other leg in air, keep it stationary and move body left instead)\n[ right player inactivelegair ] [leg_pixel_highlighted leggrounded] [ nonactivegondola canmoveleft ] -> [ right player inactivelegair ] [leg_pixel_highlighted leggrounded] [ nonactivegondola domoveleft ]\n\n[ domoveleft ] [ moving gondola] -> [ domoveleft ] [ gondola]\n\nleft [ domoveleft gondola | no obstacle ] -> [ | gondola ]\n\n(restrict horizontal leg movement)\nlate up [leg_pixel_highlighted | no gondola ] -> cancel\nlate up [leg_pixel_highlighted | face_pixel_pink ] -> cancel\nlate up [leg_pixel_unhighlighted | no gondola ] -> cancel\nlate up [leg_pixel_unhighlighted | face_pixel_pink ] -> cancel\n\n(maximum leg length)\nlate down [ leg | leg | leg | leg | leg]->cancel\n\n\n\nlate [leggrounded]->[]\nlate [bodygrounded]->[]\nlate [inactivelegair]->[]\n\nlate [canmoveleft]->[]\nlate [canmoveright]->[]\nlate [ canmoveup ]->[]\n\n==============\nWINCONDITIONS\n==============\nsome gondola on water\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n................................................................\n................................................................\n................................................................\n..................................#.............................\n..............................................#..#..#...........\n#......................###......................................\n#...............................................................\n#...............................................................\n#..12121...........................###..#.......................\n#..13231...........................###........#..#..#...........\n#..11411.....................#.#...###..........................\n#..w...q...............##################################.....##\n#..w...q............#####################################ccccc##\n#..w...q.........########################################ccccc##\n#..w...q......###########################################ccccc##\n################################################################\n##p#############################################################\n\nmessage It dips its toes in the water.\n",[3,0,0,3,1,2,2,2,2,0,3,3,4,0,0,0,3,4,1,1,0,3,1,4,2,2,4,3,2,2,4,0,0,4,1],"background:0,0,0,0,0,background wall:1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,background player:2,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,background face_pixel_brown:3,3,3,0,0,0,0,1,1,0,0,0,0,0,0,0,0,background face_pixel_black:4,background face_pixel_lightbrown:5,3,background leg_pixel_unhighlighted:6,0,0,0,1,1,0,0,0,0,0,0,0,0,3,\n4,background face_pixel_pink:7,0,0,0,0,1,1,0,0,0,0,0,0,0,0,4,5,3,background leg_pixel_highlighted:8,8,8,8,1,1,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,\n1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,\n0,0,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,\n0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,\n1,1,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,\n1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,\n0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,\n1,0,0,0,0,1,0,0,0,0,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,1,0,1,\n1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,\n0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,background water:9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,1,1,0,0,0,0,\n0,0,0,0,0,0,0,0,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,\n",1,"1627893596068.238"] + "It gets its Feet Wet", + ["title It gets its Feet Wet\nauthor increpare\nhomepage www.increpare.com\n\nnorepeat_action\ncolor_palette 4\n\n( debug )\n( verbose_logging )\n\n\n\n========\nOBJECTS\n========\n\nface_pixel_brown 1\nbrown\n\nface_pixel_black 2\nblack\n\nface_pixel_lightbrown 3\nlightbrown\n\nface_pixel_pink 4\npink\n\nleg_pixel_highlighted q\nlightbrown\n\nleg_pixel_unhighlighted w\nbrown\n\nBackground\nlightblue\n\n\n\nWall\ngreen\n\nplayer\ngreen\n\n\nlegswitchmarker\ntransparent\n\nobject1 o\ngray\n\nobject2 k\nlightgray\n\nobject3 l\ndarkgray\n\n\nnofallmarker \nred\n00...\n0....\n.....\n.....\n.....\n\nleggrounded\nred\n..0..\n..00.\n.....\n.....\n.....\n\ninactivelegair\nred\n.....\n.....\n.....\n.0...\n0....\n\nbodygrounded\nred\n....0\n....0\n.....\n.....\n.....\n\nbodyraisedtag\nred\n.....\n.....\n.....\n...0.\n....0\n\ndomoveleft\ntransparent\n\ndomoveright\ntransparent \n\ncanmoveleft\nyellow\n0....\n.....\n.....\n.....\n.....\n\ncanmoveright\nyellow\n....0\n.....\n.....\n.....\n.....\n\ncanmoveup\nyellow\n..0..\n.....\n.....\n.....\n.....\n\nwater c\nblue\n\n=======\nLEGEND\n=======\n\nface_pixel = face_pixel_brown or face_pixel_black or face_pixel_lightbrown or face_pixel_pink\n\nleg = leg_pixel_highlighted or leg_pixel_unhighlighted\nobject = object1 or object2 or object3\n\n\ngondola = leg or face_pixel\nobstacle = face_pixel or wall or leg or object\nnongondolaobject = wall or object\nnonactivegondola = face_pixel or leg_pixel_unhighlighted\n\nmovable = gondola or object\n\n. = Background\n# = Wall\nP = Player\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nwater\nPlayer, Wall,face_pixel,leg_pixel_highlighted, leg_pixel_unhighlighted, object\nlegswitchmarker\nnofallmarker\nleggrounded\nbodygrounded\nbodyraisedtag\ninactivelegair\ndomoveleft\ndomoveright\ncanmoveup\ncanmoveleft\ncanmoveright\n\n======\nRULES\n======\n\n[ movable ] -> [ movable canmoveleft canmoveright canmoveup ]\n\nright [ canmoveright | wall ] -> [ | wall ]\nright [ obstacle canmoveright | obstacle no canmoveright ] -> [ obstacle | obstacle ]\n+ [ object1 no canmoveright ] [object1 canmoveright ] -> [ object1 ] [ object1 ]\n+ [ object2 no canmoveright ] [object2 canmoveright ] -> [ object2 ] [ object2 ]\n+ [ object3 no canmoveright ] [object3 canmoveright ] -> [ object3 ] [ object3 ]\n+ [ nonactivegondola no canmoveright ] [nonactivegondola canmoveright ] -> [ nonactivegondola ] [ nonactivegondola ]\n+ [ leg_pixel_highlighted no canmoveright ] [leg_pixel_highlighted canmoveright ] -> [ leg_pixel_highlighted ] [ leg_pixel_highlighted ]\n\nleft [ canmoveleft | wall ] -> [ | wall ]\nleft [ obstacle canmoveleft | obstacle no canmoveleft ] -> [ obstacle | obstacle ]\n+ [ object1 no canmoveleft ] [object1 canmoveleft ] -> [ object1 ] [ object1 ]\n+ [ object2 no canmoveleft ] [object2 canmoveleft ] -> [ object2 ] [ object2 ]\n+ [ object3 no canmoveleft ] [object3 canmoveleft ] -> [ object3 ] [ object3 ]\n+ [ nonactivegondola no canmoveleft ] [nonactivegondola canmoveleft ] -> [ nonactivegondola ] [ nonactivegondola ]\n+ [ leg_pixel_highlighted no canmoveleft ] [leg_pixel_highlighted canmoveleft ] -> [ leg_pixel_highlighted ] [ leg_pixel_highlighted ]\n\n\nup [ canmoveup | wall ] -> [ | wall ]\nup [ obstacle canmoveup | obstacle no canmoveup ] -> [ obstacle | obstacle ]\n+ [ object1 no canmoveup ] [object1 canmoveup ] -> [ object1 ] [ object1 ]\n+ [ object2 no canmoveup ] [object2 canmoveup ] -> [ object2 ] [ object2 ]\n+ [ object3 no canmoveup ] [object3 canmoveup ] -> [ object3 ] [ object3 ]\n+ [ nonactivegondola no canmoveup ] [nonactivegondola canmoveup ] -> [ nonactivegondola ] [ nonactivegondola ]\n+ [ leg_pixel_highlighted no canmoveup ] [leg_pixel_highlighted canmoveup ] -> [ leg_pixel_highlighted ] [ leg_pixel_highlighted ]\n\ndown [ leg | nongondolaobject ] -> [ leg leggrounded | nongondolaobject ]\nup [ leggrounded | leg ] -> [ leggrounded | leg leggrounded ]\n[ leggrounded ] [ gondola ] -> [ leggrounded ] [ gondola bodygrounded ]\n\ndown [leg_pixel_unhighlighted | no obstacle ] [player] -> [leg_pixel_unhighlighted | ] [ player inactivelegair ]\n\n\n(inactive leg grounded if head resting on something)\n\ndown [ face_pixel | nongondolaobject ] [ leg_pixel_unhighlighted ] [player] -> [ face_pixel | nongondolaobject ] [ leg_pixel_unhighlighted leggrounded ] [ player no inactivelegair ]\n\n(distribute movements to leg parts)\n[stationary player ] [ gondola ] -> [stationary player ] [ down gondola ] again\n\n(if gondola is pushing into object during gravity phase, cancel turn)\ndown [down gondola | nongondolaobject ] -> [ gondola nofallmarker | nongondolaobject ] again\n[nofallmarker]->cancel\n\n\n(swap legs if you press action)\n[ action player ] [ leg_pixel_highlighted ] -> [ action player ] [ leg_pixel_unhighlighted legswitchmarker ] \n[ action player ] [ leg_pixel_unhighlighted no legswitchmarker] -> [ action player ] [ leg_pixel_highlighted legswitchmarker ] \n[legswitchmarker] -> []\n\n\n(propagate motion from player to leg parts)\n[orthogonal player] [ leg_pixel_highlighted ] -> [ orthogonal player ] [ orthogonal leg_pixel_highlighted ] again\n\n\n(raise leg)\nup [ up leg_pixel_highlighted | leg_pixel_highlighted | face_pixel_brown ] -> [ | leg_pixel_highlighted | face_pixel_brown ]\n\n(lower leg into empty space if leg not grounded)\ndown [orthogonal player] [ down leg_pixel_highlighted no leggrounded | no obstacle ] -> [ player] [ down leg_pixel_highlighted | leg_pixel_highlighted ]\n\n(lower leg, pushing body up)\n\n(if pushing down while current leg is grounded, and while you have headspace, push whole gondola up)\nup [down player] [ leggrounded canmoveup ] [ gondola no bodyraisedtag | no obstacle ] -> [down player] [ leggrounded canmoveup ] [ | stationary gondola bodyraisedtag]\n\ndown [bodyraisedtag] [leg_pixel_highlighted | no obstacle ] -> [bodyraisedtag] [ leg_pixel_highlighted | leg_pixel_highlighted ]\n\n[bodyraisedtag]->[]\n\n(if active leg cannot move in the direction it would want to, mark the other leg as honorarily airborn)\n[ left player ] [ leg_pixel_highlighted no canmoveleft ] -> [ left player inactivelegair ] [ leg_pixel_highlighted leggrounded ]\n[ right player ] [ leg_pixel_highlighted no canmoveright ] -> [ right player inactivelegair ] [ leg_pixel_highlighted leggrounded ]\n\n(if moving current *grounded* leg left while other leg in air, keep it stationary and move body right instead)\n[ left player inactivelegair ] [ leg_pixel_highlighted leggrounded ] [ nonactivegondola canmoveright ] -> [ left player inactivelegair ] [ leg_pixel_highlighted leggrounded ] [ nonactivegondola domoveright ]\n\n[ domoveright ] [ moving gondola] -> [ domoveright ] [ gondola]\n\nright [ domoveright gondola | no obstacle ] -> [ | gondola ]\n\n\n\n(if moving current *grounded* leg right while other leg in air, keep it stationary and move body left instead)\n[ right player inactivelegair ] [leg_pixel_highlighted leggrounded] [ nonactivegondola canmoveleft ] -> [ right player inactivelegair ] [leg_pixel_highlighted leggrounded] [ nonactivegondola domoveleft ]\n\n[ domoveleft ] [ moving gondola] -> [ domoveleft ] [ gondola]\n\nleft [ domoveleft gondola | no obstacle ] -> [ | gondola ]\n\n(restrict horizontal leg movement)\nlate up [leg_pixel_highlighted | no gondola ] -> cancel\nlate up [leg_pixel_highlighted | face_pixel_pink ] -> cancel\nlate up [leg_pixel_unhighlighted | no gondola ] -> cancel\nlate up [leg_pixel_unhighlighted | face_pixel_pink ] -> cancel\n\n(maximum leg length)\nlate down [ leg | leg | leg | leg | leg]->cancel\n\n\n\nlate [leggrounded]->[]\nlate [bodygrounded]->[]\nlate [inactivelegair]->[]\n\nlate [canmoveleft]->[]\nlate [canmoveright]->[]\nlate [ canmoveup ]->[]\n\n==============\nWINCONDITIONS\n==============\nsome gondola on water\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n................................................................\n................................................................\n................................................................\n..................................#.............................\n..............................................#..#..#...........\n#......................###......................................\n#...............................................................\n#...............................................................\n#..12121...........................###..#.......................\n#..13231...........................###........#..#..#...........\n#..11411.....................#.#...###..........................\n#..w...q...............##################################.....##\n#..w...q............#####################################ccccc##\n#..w...q.........########################################ccccc##\n#..w...q......###########################################ccccc##\n################################################################\n##p#############################################################\n\nmessage It dips its toes in the water.\n", [3, 0, 0, 3, 1, 2, 2, 2, 2, 0, 3, 3, 4, 0, 0, 0, 3, 4, 1, 1, 0, 3, 1, 4, 2, 2, 4, 3, 2, 2, 4, 0, 0, 4, 1], "background:0,0,0,0,0,background wall:1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,background player:2,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,background face_pixel_brown:3,3,3,0,0,0,0,1,1,0,0,0,0,0,0,0,0,background face_pixel_black:4,background face_pixel_lightbrown:5,3,background leg_pixel_unhighlighted:6,0,0,0,1,1,0,0,0,0,0,0,0,0,3,\n4,background face_pixel_pink:7,0,0,0,0,1,1,0,0,0,0,0,0,0,0,4,5,3,background leg_pixel_highlighted:8,8,8,8,1,1,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,\n1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,\n0,0,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,\n0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,\n1,1,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,\n1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,\n0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,\n1,0,0,0,0,1,0,0,0,0,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,1,0,1,\n1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,\n0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,background water:9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,1,1,0,0,0,0,\n0,0,0,0,0,0,0,0,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,\n", 1, "1627893596068.238"] ], [ - "Neoprenanzieher", - ["title Neoprenanzieher\nauthor increpare\nhomepage www.increpare.com\nnoaction\n(thanks to auditoriumjohnson + oeschmid + bvoq + plurmorant for testing)\n\nrun_rules_on_level_start\n\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\norange lightbrown\n11111\n10111\n11111\n11101\n11111\n\n\nrock\ngray darkgray\n00000\n00000\n01000\n00100\n00000\n\nPlayerbody_main\n#f9d9bb\n\nPlayerfeet\n#f9d9bb\n\nplayerhead\n#f9d9bb #5b6ee1 #d95763\n00000\n01010\n00000\n02220\n00000\n\nanzug_membran_schwarz\nblack \n\nanzug_membran_obenhalbschwarz\nblack\n00000\n00000\n00000\n.....\n.....\n\nanzug_membran_untenhalbschwarz\nblack\n.....\n.....\n00000\n00000\n00000\n\nanzuggesicht\nblack\n00000\n0...0\n0...0\n0...0\n00000\n\nanzug_l l\nblack darkgray\n.000.\n.000.\n100.1\n00000\n.0000\n\nanzug_r r\nblack darkgray\n.000.\n.000.\n1.001\n00000\n0000.\n\nanzug_band_dick\nblack darkgray\n1111.\n00000\n00000\n00001\n1111.\n\nanzug_band_dunn\nblack darkgray\n.....\n11111\n00000\n11111\n.....\n\n\nwater w\n#5b6ee1 lightblue\n11111\n11011\n10101\n01110\n11111\n\nhaligned\ntransparent\n\nziehbarrieredown\n#00ffff\n..0..\n.....\n.....\n.....\n.....\n\nziehbarriereup\nwhite\n....0\n.....\n.....\n.....\n.....\n\nmembrane_oben\nred\n.....\n....0\n.....\n.....\n.....\n\nmembrane_unten\nyellow\n.....\n.....\n....0\n.....\n.....\n\nziehend_nördlich\npink\n.....\n.....\n.....\n....0\n.....\n\nziehend_südlich\npurple\n.....\n.....\n.....\n.....\n....0\n\nanzugdehnen\ntransparent\n\n=======\nLEGEND\n=======\n\nziehend = ziehend_nördlich or ziehend_südlich\nanzug_membran = anzug_membran_schwarz or anzug_membran_obenhalbschwarz or anzug_membran_untenhalbschwarz \nziehbarriere = ziehbarrieredown or ziehbarriereup\nplayerbody = Playerbody_main\nplayer = Playerbody or playerhead or Playerfeet\nanzug_band = anzug_band_dick or anzug_band_dunn\nanzug = anzug_l or anzug_r or anzug_band\npushable = player or anzug_l or anzug_r\nnoplayerpushable = anzug_l or anzug_r\nanzugrand = anzug_l or anzug_r\nirgendangezug = anzug_membran or anzuggesicht\nanzugprop = rock \nmembrane = membrane_oben or membrane_unten\n. = Background\n# = rock\nP = Playerbody_main\nh = playerhead\nf = Playerfeet\nkanntrag = player or rock\n\n\n=======\nSOUNDS\n=======\n\nsfx0 83395901 (suit fit)\nsfx1 51989101 (waterstep)\n\n================\nCOLLISIONLAYERS\n================\n\nhaligned\nmembrane\nziehbarriere\nziehend\nanzugdehnen\n\nBackground\nwater\nPlayer, rock, anzug_l, anzug_r\nanzug_band, anzuggesicht\nanzug_membran\n\n======\nRULES\n======\n\n[player]->again\n\nhorizontal [ > player | anzug_membran_schwarz no player | no player ]->cancel \n\nright [ anzug_l | playerhead ziehend_nördlich no ziehbarriere | no ziehbarriere | anzug_r ] -> [ | playerhead anzuggesicht | | ] sfx0\nright [ anzug_l | no ziehbarriere | no ziehbarriere playerhead ziehend_nördlich| anzug_r ] -> [ | | playerhead anzuggesicht | ] sfx0\n\n(allow you to push band from middle if you are membranized and hitting it with a new part of your body)\nvertical [ > player anzug_membran_schwarz | no player anzug_band ] [anzug_l] [anzug_r] -> [ > player anzug_membran_schwarz | anzug_band ] [> anzug_l] [> anzug_r]\n\nright [anzug_l | right player ] -> [ right anzug_l | right player ]\nleft [anzug_r | left player ] -> [ left anzug_r | left player ]\n[ > player | rock ] -> cancel\n[ > player | anzugrand | ziehbarriere ] -> cancel\n[ > player | anzugrand | rock ] -> cancel\n\n[ > player | pushable ] -> [ > player | > pushable ]\n\nright [ horizontal anzug_l | | | stationary anzug_r ] -> [ horizontal anzug_l | | | horizontal anzug_r ]\nright [ stationary anzug_l | | | horizontal anzug_r ] -> [ horizontal anzug_l | | | horizontal anzug_r ]\nright [ vertical anzug_l | ... | stationary anzug_r ] -> [ vertical anzug_l | ... | vertical anzug_r ]\nright [ stationary anzug_l | ... | vertical anzug_r ] -> [ vertical anzug_l | ... | vertical anzug_r ]\n\n[ vertical anzug_l ] [ anzug_band ] -> [ vertical anzug_l ] [ vertical anzug_band ] \n\nright [ anzug_l | moving player | | player | anzug_r ] -> [ moving anzug_l | moving player | | player | moving anzug_r ]\n\n(start tracking membrane points)\ndown [ > anzug_band no kanntrag | kanntrag no anzug_membran ] -> [ > anzug_band | kanntrag membrane_oben ]\n[ up anzug_band membrane_oben ] -> [ up anzug_band ]\n\nup [ > anzug_band no kanntrag | kanntrag no anzug_membran ] -> [ > anzug_band | kanntrag membrane_unten ]\n[ down anzug_band membrane_unten ] -> [ down anzug_band ]\n\n\n[ stationary player ] [ anzug_l |...|anzug_r] -> [ stationary player ] [ > anzug_l | ...|< anzug_r]\n[ stationary player ] [ anzug_l | | |anzug_r] -> [ stationary player ] [ stationary anzug_l | | | stationary anzug_r]\n\n[ > anzugrand | ziehbarriere ] -> [ anzugrand | ziehbarriere ]\n\n(if player is pushing an anzugbarriere from the outside, cancel moveoment)\n\nhorizontal [ > player no anzug_membran | anzug_membran] ->cancel\n\n(ziehend moves with player)\n[ moving player ziehend ] -> [ moving player moving ziehend ]\n\n\n\n\n(going down to put things on)\ndown [ > player no ziehend | anzug_band ] -> [ > player > ziehend_nördlich | anzug_band ]\nup [ > player no ziehend | anzug_band ] -> [ > player > ziehend_südlich | anzug_band ]\n(going up to remove things)\nup [ > player anzug_band ziehend_nördlich ] -> [ > player anzug_band ]\ndown [ > player anzug_band ziehend_südlich ] -> [ > player anzug_band ]\n\n\n\n\nlate [ anzuggesicht ] [ playerhead no anzuggesicht ] -> [ anzuggesicht ] [ playerhead anzuggesicht ]\nlate [ anzuggesicht no playerhead ] -> [ ]\n\nlate right [ anzug_l | | anzug_r ] -> cancel\n\n(require suit to be horizontally aligned)\nlate right [anzug_l | ... | anzug_r ] -> [ anzug_l haligned | ... | anzug_r ]\nlate [anzug_l no haligned ] -> cancel\nlate [haligned ]->[]\n\nlate [ anzug_band]->[]\nlate right [anzug_l | | | anzug_r ] -> [anzug_l | anzug_band_dick | anzug_band_dick | anzug_r ] \nlate right [ anzug_l | no anzug_band ] -> [anzug_l | anzug_band_dunn ]\nlate right [ anzug_band_dunn| no anzug_r ] -> [ anzug_band_dunn| anzug_band_dunn]\n\n(draw membrane)\nlate [ anzug_membran ] -> []\nlate [ ziehbarriere ] -> []\n\n(down)\n\nlate down [ membrane_oben | no ziehbarrieredown ] -> [ membrane_oben | ziehbarrieredown ]\nlate down [ ziehbarrieredown | no ziehbarrieredown ] -> [ ziehbarrieredown | ziehbarrieredown ]\n\n\nlate down [ membrane_oben anzug_band ] -> [membrane_oben anzug_band anzug_membran_obenhalbschwarz]\nlate down [ membrane_oben no anzug_band ] -> [membrane_oben anzug_membran_schwarz]\nlate down [ anzug_membran_schwarz | ziehbarrieredown no anzug_membran_schwarz no anzug_band ] -> [anzug_membran_schwarz |anzug_membran_schwarz]\nlate down [ anzug_membran_schwarz | anzug_band ] -> [ anzug_membran_schwarz | anzug_band anzug_membran_obenhalbschwarz ]\n\n\n(and up)\n\nlate up [ membrane_unten | no ziehbarriereup ] -> [ membrane_unten | ziehbarriereup ]\nlate up [ ziehbarriereup | no ziehbarriereup ] -> [ ziehbarriereup | ziehbarriereup ]\n\nlate up [ membrane_unten anzug_band ] -> [membrane_unten anzug_band anzug_membran_untenhalbschwarz]\nlate up [ membrane_unten no anzug_band ] -> [membrane_unten anzug_membran_schwarz]\nlate up [ anzug_membran_schwarz | ziehbarriereup no anzug_membran_schwarz no anzug_band ] -> [anzug_membran_schwarz |anzug_membran_schwarz]\nlate up [ anzug_membran_schwarz | anzug_band ] -> [ anzug_membran_schwarz | anzug_band anzug_membran_untenhalbschwarz ]\n\n\n\n\n\nlate down [ player ziehend_südlich | player anzug_band no ziehend_südlich ] -> [ player ziehend_südlich | player anzug_band ziehend_südlich ]\nlate up [ player ziehend_nördlich | player anzug_band no ziehend_nördlich ] -> [ player ziehend_nördlich | player anzug_band ziehend_nördlich ]\n\n\n(tidy up ziehends that are north of band, but also remove them as they leave)\nlate down [ ziehend_nördlich | anzug_band ] -> [ |anzug_band]\nlate up [ ziehend_südlich | anzug_band ] -> [ |anzug_band]\n\n(draw suit on person)\nlate [ anzug_band ziehend_nördlich ] -> [ anzug_band ziehend_nördlich anzug_membran_untenhalbschwarz ]\nlate [ anzug_band ziehend_südlich ] -> [ anzug_band ziehend_südlich anzug_membran_obenhalbschwarz ]\nlate [ no anzug_band ziehend ] -> [ ziehend anzug_membran_schwarz ]\n\n(Draw stretched head bit)\n\nlate up [ playerhead no anzuggesicht ziehend_nördlich anzug_membran_schwarz | ] -> [ playerhead ziehend_nördlich anzug_membran_schwarz |anzugdehnen]\nlate up [ no anzug_band anzugdehnen | ] -> [ anzugdehnen | anzugdehnen ]\nlate [anzugdehnen no anzug_band ] -> [ anzugdehnen anzug_membran_schwarz ]\nlate [anzugdehnen anzug_band ] -> [ anzugdehnen anzug_membran_untenhalbschwarz ]\nlate [anzugdehnen ziehbarriere ]->cancel\nlate [anzugdehnen rock ]->cancel\nlate [anzugdehnen anzugrand ]->cancel\nlate [anzugdehnen]->[]\n\n(Draw stretched leg big)\n\nlate down [ Playerfeet ziehend_südlich anzug_membran_schwarz | ] -> [ Playerfeet ziehend_südlich anzug_membran_schwarz |anzugdehnen]\nlate down [ no anzug_band anzugdehnen | ] -> [ anzugdehnen | anzugdehnen ]\nlate [anzugdehnen no anzug_band ] -> [ anzugdehnen anzug_membran_schwarz ]\nlate [anzugdehnen anzug_band ] -> [ anzugdehnen anzug_membran_obenhalbschwarz ]\nlate [anzugdehnen ziehbarriere ]->cancel\nlate [anzugdehnen rock ]->cancel\nlate [anzugdehnen anzugrand ]->cancel\nlate [anzugdehnen]->[]\n\nlate [ anzuggesicht ] -> [ anzuggesicht no anzug_membran_schwarz ]\n\nlate horizontal [ziehbarriere ziehend anzug_band |no ziehbarriere ziehend ]-> cancel\nlate [ player no irgendangezug water ]->cancel\n\nlate [ player irgendangezug water ] -> sfx1\n\n\n(stop stretched bits from going OOB)\n\n==============\nWINCONDITIONS\n==============\nsome anzuggesicht\nall player on water\nsome anzuggesicht\n\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 1\n\nmessage Kann kaum warten in den See zu springen. Muss aber erst meinen Neoprenanzug anziehen...\n\n######################################\n##############..........##############\n############..............############\n#######......................#########\n######...........................#####\n######....................h.......####\n#####...................ppppp......###\n#####....................pfp........##\n#####....................p.p........##\n#####..............#.....f.f.........#\n#####.......#......#.................#\n#####..............#.......l..r......#\n#####................................#\n###ww................................#\n##wwwww..............................#\n##wwwwwww...........................##\n##wwwwwwwww.........................##\n#wwwwwwwwwwwww......................##\n#wwwwwwwwwwwwwwww...#####..........###\n#wwwwwwwwwwwwwwwwwwww#####......######\n#wwwwwwwwwwwwwwwwwwww#################\n#wwwwwwwwwwwwwwwwwwww#################\n##wwwwwwwwwwwwwwwwww##################\n###wwwwwwwwwwwwwww####################\n####wwwwwwwwwww#######################\n######################################\n\n\n\nmessage Scheisse! Das Wasser is so verdammt kalt!\n",[3,3,3,2,3,2,1,1,1,1,1,1,1,2,2,1,0,0,3,3,3,2,2,2,2,1,2,1,0,0,0,0,0,3,0,0,0,0,0,1,1,1,1,3,2,3,3,3,3,2,2,2,2,3,3,3,2,2,2,1,1,1,1,1,1,0,0,3,3,3,2,2,2,2,1,1,2,2,1,0,2,2,0,0,2,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,1,1,1,0,0,0,0,3,2,2,2,2,3,3,2,3,3,3,3,3,2,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,3,3],"background rock: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,background water:1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,background:2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,\n1,1,1,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,2,2,2,2,2,\n2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,\n1,1,1,1,1,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,0,0,0,0,2,2,2,\n2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,0,0,0,0,2,2,2,anzug_l background:3,2,2,2,2,2,2,2,2,2,2,1,\n1,1,1,1,1,1,1,0,background rock ziehbarriereup:4,4,background ziehbarriereup:5,5,5,5,anzug_band_dunn anzug_membran_untenhalbschwarz background ziehbarriereup:6,anzug_membran_schwarz background:7,7,7,anzug_membran_schwarz background membrane_unten rock:8,2,2,2,2,2,2,1,1,1,1,1,1,1,1,0,0,0,2,2,\n2,2,anzug_band_dunn background:9,2,2,2,2,2,2,2,2,2,2,1,1,1,anzug_membran_schwarz background playerbody_main water ziehend_nördlich:10,1,1,1,1,0,0,2,2,2,2,2,9,2,2,2,2,2,2,2,2,2,\n2,2,1,1,10,10,10,anzug_membran_schwarz background playerfeet water ziehend_nördlich:11,1,0,0,2,2,2,2,2,anzug_membran_untenhalbschwarz background:12,7,7,7,7,7,7,7,7,7,7,7,anzug_membran_schwarz background water:13,anzug_membran_schwarz background playerhead water ziehend_nördlich:14,10,11,1,1,0,0,0,2,\n2,2,2,2,9,2,2,2,2,2,2,2,2,2,2,2,1,1,10,10,10,11,0,0,0,2,2,2,2,2,9,2,2,2,2,2,2,2,\n2,2,2,2,2,1,10,1,1,1,0,0,0,2,2,2,2,2,9,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,0,0,0,\n4,5,5,5,5,5,6,7,7,anzug_membran_schwarz background rock:15,15,8,2,2,2,2,2,2,2,1,1,1,1,0,0,0,0,2,2,2,2,2,anzug_r background:16,2,2,2,2,2,\n2,2,2,2,2,2,0,1,1,1,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,\n0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,\n0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,\n2,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",2,"1627893621526.3992"] + "Neoprenanzieher", + ["title Neoprenanzieher\nauthor increpare\nhomepage www.increpare.com\nnoaction\n(thanks to auditoriumjohnson + oeschmid + bvoq + plurmorant for testing)\n\nrun_rules_on_level_start\n\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\norange lightbrown\n11111\n10111\n11111\n11101\n11111\n\n\nrock\ngray darkgray\n00000\n00000\n01000\n00100\n00000\n\nPlayerbody_main\n#f9d9bb\n\nPlayerfeet\n#f9d9bb\n\nplayerhead\n#f9d9bb #5b6ee1 #d95763\n00000\n01010\n00000\n02220\n00000\n\nanzug_membran_schwarz\nblack \n\nanzug_membran_obenhalbschwarz\nblack\n00000\n00000\n00000\n.....\n.....\n\nanzug_membran_untenhalbschwarz\nblack\n.....\n.....\n00000\n00000\n00000\n\nanzuggesicht\nblack\n00000\n0...0\n0...0\n0...0\n00000\n\nanzug_l l\nblack darkgray\n.000.\n.000.\n100.1\n00000\n.0000\n\nanzug_r r\nblack darkgray\n.000.\n.000.\n1.001\n00000\n0000.\n\nanzug_band_dick\nblack darkgray\n1111.\n00000\n00000\n00001\n1111.\n\nanzug_band_dunn\nblack darkgray\n.....\n11111\n00000\n11111\n.....\n\n\nwater w\n#5b6ee1 lightblue\n11111\n11011\n10101\n01110\n11111\n\nhaligned\ntransparent\n\nziehbarrieredown\n#00ffff\n..0..\n.....\n.....\n.....\n.....\n\nziehbarriereup\nwhite\n....0\n.....\n.....\n.....\n.....\n\nmembrane_oben\nred\n.....\n....0\n.....\n.....\n.....\n\nmembrane_unten\nyellow\n.....\n.....\n....0\n.....\n.....\n\nziehend_nördlich\npink\n.....\n.....\n.....\n....0\n.....\n\nziehend_südlich\npurple\n.....\n.....\n.....\n.....\n....0\n\nanzugdehnen\ntransparent\n\n=======\nLEGEND\n=======\n\nziehend = ziehend_nördlich or ziehend_südlich\nanzug_membran = anzug_membran_schwarz or anzug_membran_obenhalbschwarz or anzug_membran_untenhalbschwarz \nziehbarriere = ziehbarrieredown or ziehbarriereup\nplayerbody = Playerbody_main\nplayer = Playerbody or playerhead or Playerfeet\nanzug_band = anzug_band_dick or anzug_band_dunn\nanzug = anzug_l or anzug_r or anzug_band\npushable = player or anzug_l or anzug_r\nnoplayerpushable = anzug_l or anzug_r\nanzugrand = anzug_l or anzug_r\nirgendangezug = anzug_membran or anzuggesicht\nanzugprop = rock \nmembrane = membrane_oben or membrane_unten\n. = Background\n# = rock\nP = Playerbody_main\nh = playerhead\nf = Playerfeet\nkanntrag = player or rock\n\n\n=======\nSOUNDS\n=======\n\nsfx0 83395901 (suit fit)\nsfx1 51989101 (waterstep)\n\n================\nCOLLISIONLAYERS\n================\n\nhaligned\nmembrane\nziehbarriere\nziehend\nanzugdehnen\n\nBackground\nwater\nPlayer, rock, anzug_l, anzug_r\nanzug_band, anzuggesicht\nanzug_membran\n\n======\nRULES\n======\n\n[player]->again\n\nhorizontal [ > player | anzug_membran_schwarz no player | no player ]->cancel \n\nright [ anzug_l | playerhead ziehend_nördlich no ziehbarriere | no ziehbarriere | anzug_r ] -> [ | playerhead anzuggesicht | | ] sfx0\nright [ anzug_l | no ziehbarriere | no ziehbarriere playerhead ziehend_nördlich| anzug_r ] -> [ | | playerhead anzuggesicht | ] sfx0\n\n(allow you to push band from middle if you are membranized and hitting it with a new part of your body)\nvertical [ > player anzug_membran_schwarz | no player anzug_band ] [anzug_l] [anzug_r] -> [ > player anzug_membran_schwarz | anzug_band ] [> anzug_l] [> anzug_r]\n\nright [anzug_l | right player ] -> [ right anzug_l | right player ]\nleft [anzug_r | left player ] -> [ left anzug_r | left player ]\n[ > player | rock ] -> cancel\n[ > player | anzugrand | ziehbarriere ] -> cancel\n[ > player | anzugrand | rock ] -> cancel\n\n[ > player | pushable ] -> [ > player | > pushable ]\n\nright [ horizontal anzug_l | | | stationary anzug_r ] -> [ horizontal anzug_l | | | horizontal anzug_r ]\nright [ stationary anzug_l | | | horizontal anzug_r ] -> [ horizontal anzug_l | | | horizontal anzug_r ]\nright [ vertical anzug_l | ... | stationary anzug_r ] -> [ vertical anzug_l | ... | vertical anzug_r ]\nright [ stationary anzug_l | ... | vertical anzug_r ] -> [ vertical anzug_l | ... | vertical anzug_r ]\n\n[ vertical anzug_l ] [ anzug_band ] -> [ vertical anzug_l ] [ vertical anzug_band ] \n\nright [ anzug_l | moving player | | player | anzug_r ] -> [ moving anzug_l | moving player | | player | moving anzug_r ]\n\n(start tracking membrane points)\ndown [ > anzug_band no kanntrag | kanntrag no anzug_membran ] -> [ > anzug_band | kanntrag membrane_oben ]\n[ up anzug_band membrane_oben ] -> [ up anzug_band ]\n\nup [ > anzug_band no kanntrag | kanntrag no anzug_membran ] -> [ > anzug_band | kanntrag membrane_unten ]\n[ down anzug_band membrane_unten ] -> [ down anzug_band ]\n\n\n[ stationary player ] [ anzug_l |...|anzug_r] -> [ stationary player ] [ > anzug_l | ...|< anzug_r]\n[ stationary player ] [ anzug_l | | |anzug_r] -> [ stationary player ] [ stationary anzug_l | | | stationary anzug_r]\n\n[ > anzugrand | ziehbarriere ] -> [ anzugrand | ziehbarriere ]\n\n(if player is pushing an anzugbarriere from the outside, cancel moveoment)\n\nhorizontal [ > player no anzug_membran | anzug_membran] ->cancel\n\n(ziehend moves with player)\n[ moving player ziehend ] -> [ moving player moving ziehend ]\n\n\n\n\n(going down to put things on)\ndown [ > player no ziehend | anzug_band ] -> [ > player > ziehend_nördlich | anzug_band ]\nup [ > player no ziehend | anzug_band ] -> [ > player > ziehend_südlich | anzug_band ]\n(going up to remove things)\nup [ > player anzug_band ziehend_nördlich ] -> [ > player anzug_band ]\ndown [ > player anzug_band ziehend_südlich ] -> [ > player anzug_band ]\n\n\n\n\nlate [ anzuggesicht ] [ playerhead no anzuggesicht ] -> [ anzuggesicht ] [ playerhead anzuggesicht ]\nlate [ anzuggesicht no playerhead ] -> [ ]\n\nlate right [ anzug_l | | anzug_r ] -> cancel\n\n(require suit to be horizontally aligned)\nlate right [anzug_l | ... | anzug_r ] -> [ anzug_l haligned | ... | anzug_r ]\nlate [anzug_l no haligned ] -> cancel\nlate [haligned ]->[]\n\nlate [ anzug_band]->[]\nlate right [anzug_l | | | anzug_r ] -> [anzug_l | anzug_band_dick | anzug_band_dick | anzug_r ] \nlate right [ anzug_l | no anzug_band ] -> [anzug_l | anzug_band_dunn ]\nlate right [ anzug_band_dunn| no anzug_r ] -> [ anzug_band_dunn| anzug_band_dunn]\n\n(draw membrane)\nlate [ anzug_membran ] -> []\nlate [ ziehbarriere ] -> []\n\n(down)\n\nlate down [ membrane_oben | no ziehbarrieredown ] -> [ membrane_oben | ziehbarrieredown ]\nlate down [ ziehbarrieredown | no ziehbarrieredown ] -> [ ziehbarrieredown | ziehbarrieredown ]\n\n\nlate down [ membrane_oben anzug_band ] -> [membrane_oben anzug_band anzug_membran_obenhalbschwarz]\nlate down [ membrane_oben no anzug_band ] -> [membrane_oben anzug_membran_schwarz]\nlate down [ anzug_membran_schwarz | ziehbarrieredown no anzug_membran_schwarz no anzug_band ] -> [anzug_membran_schwarz |anzug_membran_schwarz]\nlate down [ anzug_membran_schwarz | anzug_band ] -> [ anzug_membran_schwarz | anzug_band anzug_membran_obenhalbschwarz ]\n\n\n(and up)\n\nlate up [ membrane_unten | no ziehbarriereup ] -> [ membrane_unten | ziehbarriereup ]\nlate up [ ziehbarriereup | no ziehbarriereup ] -> [ ziehbarriereup | ziehbarriereup ]\n\nlate up [ membrane_unten anzug_band ] -> [membrane_unten anzug_band anzug_membran_untenhalbschwarz]\nlate up [ membrane_unten no anzug_band ] -> [membrane_unten anzug_membran_schwarz]\nlate up [ anzug_membran_schwarz | ziehbarriereup no anzug_membran_schwarz no anzug_band ] -> [anzug_membran_schwarz |anzug_membran_schwarz]\nlate up [ anzug_membran_schwarz | anzug_band ] -> [ anzug_membran_schwarz | anzug_band anzug_membran_untenhalbschwarz ]\n\n\n\n\n\nlate down [ player ziehend_südlich | player anzug_band no ziehend_südlich ] -> [ player ziehend_südlich | player anzug_band ziehend_südlich ]\nlate up [ player ziehend_nördlich | player anzug_band no ziehend_nördlich ] -> [ player ziehend_nördlich | player anzug_band ziehend_nördlich ]\n\n\n(tidy up ziehends that are north of band, but also remove them as they leave)\nlate down [ ziehend_nördlich | anzug_band ] -> [ |anzug_band]\nlate up [ ziehend_südlich | anzug_band ] -> [ |anzug_band]\n\n(draw suit on person)\nlate [ anzug_band ziehend_nördlich ] -> [ anzug_band ziehend_nördlich anzug_membran_untenhalbschwarz ]\nlate [ anzug_band ziehend_südlich ] -> [ anzug_band ziehend_südlich anzug_membran_obenhalbschwarz ]\nlate [ no anzug_band ziehend ] -> [ ziehend anzug_membran_schwarz ]\n\n(Draw stretched head bit)\n\nlate up [ playerhead no anzuggesicht ziehend_nördlich anzug_membran_schwarz | ] -> [ playerhead ziehend_nördlich anzug_membran_schwarz |anzugdehnen]\nlate up [ no anzug_band anzugdehnen | ] -> [ anzugdehnen | anzugdehnen ]\nlate [anzugdehnen no anzug_band ] -> [ anzugdehnen anzug_membran_schwarz ]\nlate [anzugdehnen anzug_band ] -> [ anzugdehnen anzug_membran_untenhalbschwarz ]\nlate [anzugdehnen ziehbarriere ]->cancel\nlate [anzugdehnen rock ]->cancel\nlate [anzugdehnen anzugrand ]->cancel\nlate [anzugdehnen]->[]\n\n(Draw stretched leg big)\n\nlate down [ Playerfeet ziehend_südlich anzug_membran_schwarz | ] -> [ Playerfeet ziehend_südlich anzug_membran_schwarz |anzugdehnen]\nlate down [ no anzug_band anzugdehnen | ] -> [ anzugdehnen | anzugdehnen ]\nlate [anzugdehnen no anzug_band ] -> [ anzugdehnen anzug_membran_schwarz ]\nlate [anzugdehnen anzug_band ] -> [ anzugdehnen anzug_membran_obenhalbschwarz ]\nlate [anzugdehnen ziehbarriere ]->cancel\nlate [anzugdehnen rock ]->cancel\nlate [anzugdehnen anzugrand ]->cancel\nlate [anzugdehnen]->[]\n\nlate [ anzuggesicht ] -> [ anzuggesicht no anzug_membran_schwarz ]\n\nlate horizontal [ziehbarriere ziehend anzug_band |no ziehbarriere ziehend ]-> cancel\nlate [ player no irgendangezug water ]->cancel\n\nlate [ player irgendangezug water ] -> sfx1\n\n\n(stop stretched bits from going OOB)\n\n==============\nWINCONDITIONS\n==============\nsome anzuggesicht\nall player on water\nsome anzuggesicht\n\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 1\n\nmessage Kann kaum warten in den See zu springen. Muss aber erst meinen Neoprenanzug anziehen...\n\n######################################\n##############..........##############\n############..............############\n#######......................#########\n######...........................#####\n######....................h.......####\n#####...................ppppp......###\n#####....................pfp........##\n#####....................p.p........##\n#####..............#.....f.f.........#\n#####.......#......#.................#\n#####..............#.......l..r......#\n#####................................#\n###ww................................#\n##wwwww..............................#\n##wwwwwww...........................##\n##wwwwwwwww.........................##\n#wwwwwwwwwwwww......................##\n#wwwwwwwwwwwwwwww...#####..........###\n#wwwwwwwwwwwwwwwwwwww#####......######\n#wwwwwwwwwwwwwwwwwwww#################\n#wwwwwwwwwwwwwwwwwwww#################\n##wwwwwwwwwwwwwwwwww##################\n###wwwwwwwwwwwwwww####################\n####wwwwwwwwwww#######################\n######################################\n\n\n\nmessage Scheisse! Das Wasser is so verdammt kalt!\n", [3, 3, 3, 2, 3, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 0, 0, 3, 3, 3, 2, 2, 2, 2, 1, 2, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 1, 1, 1, 3, 2, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 0, 0, 3, 3, 3, 2, 2, 2, 2, 1, 1, 2, 2, 1, 0, 2, 2, 0, 0, 2, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 3, 2, 2, 2, 2, 3, 3, 2, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 3, 3], "background rock: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,background water:1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,background:2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,\n1,1,1,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,2,2,2,2,2,\n2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,\n1,1,1,1,1,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,0,0,0,0,2,2,2,\n2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,0,0,0,0,2,2,2,anzug_l background:3,2,2,2,2,2,2,2,2,2,2,1,\n1,1,1,1,1,1,1,0,background rock ziehbarriereup:4,4,background ziehbarriereup:5,5,5,5,anzug_band_dunn anzug_membran_untenhalbschwarz background ziehbarriereup:6,anzug_membran_schwarz background:7,7,7,anzug_membran_schwarz background membrane_unten rock:8,2,2,2,2,2,2,1,1,1,1,1,1,1,1,0,0,0,2,2,\n2,2,anzug_band_dunn background:9,2,2,2,2,2,2,2,2,2,2,1,1,1,anzug_membran_schwarz background playerbody_main water ziehend_nördlich:10,1,1,1,1,0,0,2,2,2,2,2,9,2,2,2,2,2,2,2,2,2,\n2,2,1,1,10,10,10,anzug_membran_schwarz background playerfeet water ziehend_nördlich:11,1,0,0,2,2,2,2,2,anzug_membran_untenhalbschwarz background:12,7,7,7,7,7,7,7,7,7,7,7,anzug_membran_schwarz background water:13,anzug_membran_schwarz background playerhead water ziehend_nördlich:14,10,11,1,1,0,0,0,2,\n2,2,2,2,9,2,2,2,2,2,2,2,2,2,2,2,1,1,10,10,10,11,0,0,0,2,2,2,2,2,9,2,2,2,2,2,2,2,\n2,2,2,2,2,1,10,1,1,1,0,0,0,2,2,2,2,2,9,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,0,0,0,\n4,5,5,5,5,5,6,7,7,anzug_membran_schwarz background rock:15,15,8,2,2,2,2,2,2,2,1,1,1,1,0,0,0,0,2,2,2,2,2,anzug_r background:16,2,2,2,2,2,\n2,2,2,2,2,2,0,1,1,1,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,\n0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,\n0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,\n2,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", 2, "1627893621526.3992"] ], [ - "Moved by leaves of grass", - ["title Moved by leaves of grass\nauthor increpare\nhomepage increpare.com\n\n(level shape from david skinner's microban)\n\n========\nOBJECTS\n========\n\nBackground\nGREEN\n\naltbg\ndarkblue\n\nplayer q\nlightgreen\n\nTarget w\ngreen\n\nWall1 1\nBROWN \n\nwall2 2\ndarkbrown\n\nwall3 3\nBlack \n\nwall4 4\nOrange \n\nwall5 5\nWhite \n\nwall6 6\nBlue\n\n\ncrate1 7\nOrange \n\ncrate2 8\norange\n\n\ncrate4 10\norange\n\n=======\nLEGEND\n=======\ncrate3 = wall3 or wall4 or wall5 or wall6\ncrate = crate1 or crate2 or crate3 or crate4 \n. = Background\n, =altbg\nO = Target\nf = crate1 and target\ne = target and player\nwall = wall1 or wall2\n=======\nSOUNDS\n=======\n\ncrate1 MOVE 36772507\ncrate2 MOVE 36772507\ncrate3 MOVE 36772507\ncrate4 MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\naltbg\nTarget\nPlayer, wall1, wall2, wall3, wall4, wall5, wall6, Crate1, crate2, crate3, crate4 \n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n[> crate| crate]->[> crate | > crate]\n+ [moving crate1 | stationary crate1 ]-> [moving crate1 | moving crate1]\n+ [moving crate2 | stationary crate2 ]-> [moving crate2 | moving crate2]\n+ [moving crate3 | stationary crate3 ]-> [moving crate3 | moving crate3]\n+ [moving crate4 | stationary crate4 ]-> [moving crate4 | moving crate4]\n\n[ > crate | wall ]-> [ crate | wall]\n[stationary crate1 ] [ moving crate1]-> [stationary crate1] [ stationary crate1]\n+[stationary crate2 ] [ moving crate2]-> [stationary crate2] [ stationary crate2]\n+[stationary crate3 ] [ moving crate3]-> [stationary crate3] [ stationary crate3]\n+[stationary crate4 ] [ moving crate4]-> [stationary crate4] [ stationary crate4]\n+ [ > crate | stationary crate ]->[stationary crate | stationary crate]\n+ [> player | wall] -> [ player | wall ]\n+ [> player | stationary player ] -> [ player | player ]\n+ [> player | stationary crate ] -> [ player | crate ]\n+ [ > crate | stationary player ]-> [ crate | player]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\n11121111211112111121..........\n22222222222222222222q....q....\n12111121111211112111...q....q.\n22222222222222222222..........\n11121111211112111121.q....q...\n11121.....wwwww11121..........\n22222q....e,,,w22222q....q....\n12111...q.w,.,w12111...q....q.\n22222.....w,,,w22222..........\n11121.q...wewww11121.q....q...\n11121..........111211112111121\n22222q....q....222222222222222\n12111...q....q.121111211112111\n22222..........222222222222222\n11121.q....q...111211112111121\n11121fffff.333...........11121\n22222f,,,fq444.q....q....22222\n12111f,.,f55555...q....q.12111\n22222f,,,f.666...........22222\n11121fffff.6.6..q....q...11121\n11121....................11121\n22222q....q....q....q....22222\n12111...q....q....q....q.12111\n22222....................22222\n11121.q....q....q....q...11121\n11121..........88888.....11121\n22222q....q....8...8q....22222\n12111...q....q.8..q8...q.12111\n22222..........8...8.....22222\n11121.q....q...88888.q...11121\n11121..........111211112111121\n22222q....q....222222222222222\n12111...q....q.121111211112111\n22222..........222222222222222\n11121.q....q...111211112111121\n11121111211112111121..........\n22222222222222222222q....q....\n12111121111211112111...q....q.\n22222222222222222222..........\n11121111211112111121.q....q...\n\nmessage: congratulations! you gone went and won it\n",[0,1,0,0,0,0,0,3,3,3,3,3],"background wall1:0,background wall2:1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,\n0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,\n1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,background:2,2,2,2,2,\nbackground crate1:3,3,3,3,3,background target:4,4,4,4,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,\n0,1,1,1,0,2,2,2,2,2,3,2,2,2,3,4,altbg background:5,5,5,4,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,0,1,1,1,0,0,1,0,1,0,2,2,2,2,2,3,2,2,2,3,4,5,2,5,4,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,1,1,0,1,1,2,2,2,2,2,\n3,2,2,2,3,4,5,5,5,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,0,1,1,\n0,1,0,1,0,2,2,2,2,2,3,3,3,3,3,background player target:6,4,4,4,4,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,6,6,6,6,4,2,2,2,2,background wall5:7,background player:8,8,2,8,2,\n8,2,2,8,2,8,2,2,8,2,2,2,2,2,2,0,1,0,1,0,0,1,1,1,0,4,5,5,5,4,\n2,2,background wall3:9,background wall4:10,7,background wall6:11,11,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,0,\n0,1,0,1,0,6,altbg background player:12,2,5,4,2,2,9,10,7,11,8,2,2,2,2,8,2,2,2,2,8,2,2,2,\n2,2,2,2,2,0,1,0,1,0,1,1,0,1,1,6,12,5,5,4,8,2,9,10,7,11,11,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,0,1,1,0,1,0,1,0,6,6,4,6,4,\n8,2,2,2,7,2,2,2,2,2,8,2,2,2,2,8,2,2,2,2,2,2,2,2,2,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,2,2,8,2,2,2,2,8,2,2,2,2,8,2,\n0,1,0,1,0,0,1,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,1,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,2,2,2,2,2,2,8,2,2,2,2,8,2,2,2,0,1,0,1,0,0,1,0,1,0,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,8,2,2,2,2,\nbackground crate2:13,13,13,13,13,2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,\n0,1,0,1,0,8,2,2,8,2,13,2,2,2,13,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,1,1,0,8,2,2,2,2,13,2,2,2,13,2,2,2,2,2,\n0,1,1,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,8,8,2,2,2,\n13,8,2,2,13,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n1,1,0,1,1,8,8,2,2,2,13,13,13,13,13,2,2,2,2,2,1,1,0,1,1,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,8,8,2,8,2,8,8,2,8,2,2,2,2,2,2,\n0,1,0,1,0,2,2,2,2,2,8,8,8,8,2,2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,8,8,2,2,2,8,2,2,2,2,2,2,2,2,2,\n0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,8,2,2,2,2,\n8,8,2,2,2,2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,8,2,2,2,2,8,8,2,2,2,2,2,2,2,2,1,1,0,1,1,1,1,0,1,1,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,8,2,2,2,2,8,8,2,8,2,2,2,2,2,2,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,8,2,2,2,2,\n",1,"1627893692010.7708"] + "Moved by leaves of grass", + ["title Moved by leaves of grass\nauthor increpare\nhomepage increpare.com\n\n(level shape from david skinner's microban)\n\n========\nOBJECTS\n========\n\nBackground\nGREEN\n\naltbg\ndarkblue\n\nplayer q\nlightgreen\n\nTarget w\ngreen\n\nWall1 1\nBROWN \n\nwall2 2\ndarkbrown\n\nwall3 3\nBlack \n\nwall4 4\nOrange \n\nwall5 5\nWhite \n\nwall6 6\nBlue\n\n\ncrate1 7\nOrange \n\ncrate2 8\norange\n\n\ncrate4 10\norange\n\n=======\nLEGEND\n=======\ncrate3 = wall3 or wall4 or wall5 or wall6\ncrate = crate1 or crate2 or crate3 or crate4 \n. = Background\n, =altbg\nO = Target\nf = crate1 and target\ne = target and player\nwall = wall1 or wall2\n=======\nSOUNDS\n=======\n\ncrate1 MOVE 36772507\ncrate2 MOVE 36772507\ncrate3 MOVE 36772507\ncrate4 MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\naltbg\nTarget\nPlayer, wall1, wall2, wall3, wall4, wall5, wall6, Crate1, crate2, crate3, crate4 \n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n[> crate| crate]->[> crate | > crate]\n+ [moving crate1 | stationary crate1 ]-> [moving crate1 | moving crate1]\n+ [moving crate2 | stationary crate2 ]-> [moving crate2 | moving crate2]\n+ [moving crate3 | stationary crate3 ]-> [moving crate3 | moving crate3]\n+ [moving crate4 | stationary crate4 ]-> [moving crate4 | moving crate4]\n\n[ > crate | wall ]-> [ crate | wall]\n[stationary crate1 ] [ moving crate1]-> [stationary crate1] [ stationary crate1]\n+[stationary crate2 ] [ moving crate2]-> [stationary crate2] [ stationary crate2]\n+[stationary crate3 ] [ moving crate3]-> [stationary crate3] [ stationary crate3]\n+[stationary crate4 ] [ moving crate4]-> [stationary crate4] [ stationary crate4]\n+ [ > crate | stationary crate ]->[stationary crate | stationary crate]\n+ [> player | wall] -> [ player | wall ]\n+ [> player | stationary player ] -> [ player | player ]\n+ [> player | stationary crate ] -> [ player | crate ]\n+ [ > crate | stationary player ]-> [ crate | player]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\n11121111211112111121..........\n22222222222222222222q....q....\n12111121111211112111...q....q.\n22222222222222222222..........\n11121111211112111121.q....q...\n11121.....wwwww11121..........\n22222q....e,,,w22222q....q....\n12111...q.w,.,w12111...q....q.\n22222.....w,,,w22222..........\n11121.q...wewww11121.q....q...\n11121..........111211112111121\n22222q....q....222222222222222\n12111...q....q.121111211112111\n22222..........222222222222222\n11121.q....q...111211112111121\n11121fffff.333...........11121\n22222f,,,fq444.q....q....22222\n12111f,.,f55555...q....q.12111\n22222f,,,f.666...........22222\n11121fffff.6.6..q....q...11121\n11121....................11121\n22222q....q....q....q....22222\n12111...q....q....q....q.12111\n22222....................22222\n11121.q....q....q....q...11121\n11121..........88888.....11121\n22222q....q....8...8q....22222\n12111...q....q.8..q8...q.12111\n22222..........8...8.....22222\n11121.q....q...88888.q...11121\n11121..........111211112111121\n22222q....q....222222222222222\n12111...q....q.121111211112111\n22222..........222222222222222\n11121.q....q...111211112111121\n11121111211112111121..........\n22222222222222222222q....q....\n12111121111211112111...q....q.\n22222222222222222222..........\n11121111211112111121.q....q...\n\nmessage: congratulations! you gone went and won it\n", [0, 1, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3], "background wall1:0,background wall2:1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,\n0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,\n1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,background:2,2,2,2,2,\nbackground crate1:3,3,3,3,3,background target:4,4,4,4,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,\n0,1,1,1,0,2,2,2,2,2,3,2,2,2,3,4,altbg background:5,5,5,4,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,0,1,1,1,0,0,1,0,1,0,2,2,2,2,2,3,2,2,2,3,4,5,2,5,4,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,1,1,0,1,1,2,2,2,2,2,\n3,2,2,2,3,4,5,5,5,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,0,1,1,\n0,1,0,1,0,2,2,2,2,2,3,3,3,3,3,background player target:6,4,4,4,4,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,6,6,6,6,4,2,2,2,2,background wall5:7,background player:8,8,2,8,2,\n8,2,2,8,2,8,2,2,8,2,2,2,2,2,2,0,1,0,1,0,0,1,1,1,0,4,5,5,5,4,\n2,2,background wall3:9,background wall4:10,7,background wall6:11,11,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,0,\n0,1,0,1,0,6,altbg background player:12,2,5,4,2,2,9,10,7,11,8,2,2,2,2,8,2,2,2,2,8,2,2,2,\n2,2,2,2,2,0,1,0,1,0,1,1,0,1,1,6,12,5,5,4,8,2,9,10,7,11,11,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,0,1,1,0,1,0,1,0,6,6,4,6,4,\n8,2,2,2,7,2,2,2,2,2,8,2,2,2,2,8,2,2,2,2,2,2,2,2,2,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,2,2,8,2,2,2,2,8,2,2,2,2,8,2,\n0,1,0,1,0,0,1,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,1,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,2,2,2,2,2,2,8,2,2,2,2,8,2,2,2,0,1,0,1,0,0,1,0,1,0,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,8,2,2,2,2,\nbackground crate2:13,13,13,13,13,2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,\n0,1,0,1,0,8,2,2,8,2,13,2,2,2,13,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,1,1,0,8,2,2,2,2,13,2,2,2,13,2,2,2,2,2,\n0,1,1,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,8,8,2,2,2,\n13,8,2,2,13,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n1,1,0,1,1,8,8,2,2,2,13,13,13,13,13,2,2,2,2,2,1,1,0,1,1,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,8,8,2,8,2,8,8,2,8,2,2,2,2,2,2,\n0,1,0,1,0,2,2,2,2,2,8,8,8,8,2,2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,8,8,2,2,2,8,2,2,2,2,2,2,2,2,2,\n0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,8,2,2,2,2,\n8,8,2,2,2,2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,8,2,2,2,2,8,8,2,2,2,2,2,2,2,2,1,1,0,1,1,1,1,0,1,1,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,8,2,2,2,2,8,8,2,8,2,2,2,2,2,2,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,8,2,2,2,2,\n", 1, "1627893692010.7708"] ], [ - "Place the crate on the targets", - ["title Place the crate on the targets\nauthor increpare\nhomepage increpare.com\n\n(level shape from david skinner's microban)\n\n========\nOBJECTS\n========\n\nBackground\nGREEN\n\ntarget\ndarkblue\n\ngrass q\nlightgreen\n\n\nWall1 1\nBROWN \n\nwall2 2\ndarkbrown\n\nplayer1 3\nBlack \n\nplayer2 4\nlightbrown \n\nplayer3 5\nWhite \n\nplayer4 6\nBlue\n\n\ncrate 8\norange\n\n=======\nLEGEND\n=======\nplayer = player1 or player2 or player3 or player4\n. = Background\n, = target\nO = Target\nwall = wall1 or wall2\n=======\nSOUNDS\n=======\n\ncrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ntarget\ngrass\nPlayer, wall1, wall2, player, crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate | crate ]->[> Crate|> crate ]\n\n[ > crate | wall ]->[ crate | wall ]\n[ > crate | stationary crate ]-> [ crate | crate ]\n[> player | wall ]-> cancel\n[> player | stationary crate ]->cancel\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\n11121111211112111121..........\n22222222222222222222q....q....\n12111121111211112111...q....q.\n22222222222222222222..........\n11121111211112111121.q....q...\n11121..........11121..........\n22222q....q,,,.22222q....q....\n12111...q..,.,.12111...q....q.\n22222......,,,.22222..........\n11121.q....q...11121.q....q...\n11121..........111211112111121\n22222q....q....222222222222222\n12111...q....q.121111211112111\n22222..........222222222222222\n11121.q....q...111211112111121\n11121......333...........11121\n22222q,,,.q444.q....q....22222\n12111.,.,.55555...q....q.12111\n22222.,,,..666...........22222\n11121..q...6.6..q....q...11121\n11121....................11121\n22222q....q....q....q....22222\n12111...q....q....q....q.12111\n22222....................22222\n11121.q....q....q....q...11121\n11121..........88888.....11121\n22222q....q....8...8q....22222\n12111...q....q.8..q8...q.12111\n22222..........8...8.....22222\n11121.q....q...88888.q...11121\n11121..........111211112111121\n22222q....q....222222222222222\n12111...q....q.121111211112111\n22222..........222222222222222\n11121.q....q...111211112111121\n11121111211112111121..........\n22222222222222222222q....q....\n12111121111211112111...q....q.\n22222222222222222222..........\n11121111211112111121.q....q...\n\nmessage congratulations to all of you!\n",[1,1,0,0,2,2,2,2,3,2,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,1,1,1,1,1,1,1],"background wall1:0,background wall2:1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,\n0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,\n1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,background:2,background grass:3,2,2,2,\n2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,0,1,0,1,0,\n0,1,1,1,0,2,2,2,2,3,2,2,2,2,3,2,background target:4,4,4,2,2,2,2,2,3,2,2,2,2,3,\n2,2,2,2,3,0,1,1,1,0,0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,4,2,4,3,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,1,1,0,1,1,2,2,3,2,2,\n2,2,3,2,2,2,4,4,4,2,2,2,3,2,2,background crate:5,2,3,2,2,2,2,3,2,2,1,1,0,1,1,\n0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,2,2,2,2,\n2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,\n2,3,2,2,2,5,3,2,2,2,2,3,2,2,2,0,1,0,1,0,0,1,1,1,0,2,4,4,4,3,\n2,2,2,2,3,2,2,2,2,2,2,2,2,2,3,5,5,2,2,3,2,2,2,2,3,0,1,1,1,0,\n0,1,0,1,0,2,4,2,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background player3:6,5,5,2,2,2,\n2,2,2,2,2,0,1,0,1,0,1,1,0,1,1,2,4,4,4,2,2,2,3,2,2,2,2,2,2,2,\n2,2,background grass player1:7,background player2:8,6,background player4:9,9,3,2,2,2,2,3,2,2,1,1,0,1,1,0,1,0,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,background player1:10,8,6,9,2,2,2,2,2,2,2,2,2,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,3,2,2,2,2,3,10,8,6,9,9,5,5,5,\n0,1,0,1,0,0,1,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,2,2,2,2,3,\n2,2,2,2,background grass player3:11,2,2,2,2,5,0,1,1,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,0,1,0,1,0,0,1,0,1,0,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,2,2,3,2,2,2,2,3,2,2,2,2,3,2,5,\n1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,5,5,5,0,1,0,1,0,0,1,0,1,0,2,3,2,2,2,2,3,2,2,2,\n0,1,0,1,0,2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,0,1,0,1,0,2,3,2,2,2,\n2,2,2,2,3,2,2,2,2,3,0,1,1,1,0,2,2,2,2,3,2,2,2,2,3,2,2,2,2,3,\n0,1,1,1,0,2,2,2,2,3,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,2,2,3,2,2,2,2,3,2,2,\n1,1,0,1,1,2,2,3,2,2,2,2,3,2,2,2,2,3,2,2,1,1,0,1,1,2,2,3,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n0,1,0,1,0,2,2,2,2,2,2,3,2,2,2,2,3,2,2,2,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,3,2,2,2,2,2,2,2,3,2,2,2,2,3,\n0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,2,2,2,2,3,\n2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,2,2,2,2,2,2,2,3,2,2,2,2,3,2,2,1,1,0,1,1,1,1,0,1,1,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,2,2,3,2,2,2,2,2,2,2,2,2,2,2,2,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,2,2,2,2,\n",1,"1627893701797.368"] + "Place the crate on the targets", + ["title Place the crate on the targets\nauthor increpare\nhomepage increpare.com\n\n(level shape from david skinner's microban)\n\n========\nOBJECTS\n========\n\nBackground\nGREEN\n\ntarget\ndarkblue\n\ngrass q\nlightgreen\n\n\nWall1 1\nBROWN \n\nwall2 2\ndarkbrown\n\nplayer1 3\nBlack \n\nplayer2 4\nlightbrown \n\nplayer3 5\nWhite \n\nplayer4 6\nBlue\n\n\ncrate 8\norange\n\n=======\nLEGEND\n=======\nplayer = player1 or player2 or player3 or player4\n. = Background\n, = target\nO = Target\nwall = wall1 or wall2\n=======\nSOUNDS\n=======\n\ncrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ntarget\ngrass\nPlayer, wall1, wall2, player, crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate | crate ]->[> Crate|> crate ]\n\n[ > crate | wall ]->[ crate | wall ]\n[ > crate | stationary crate ]-> [ crate | crate ]\n[> player | wall ]-> cancel\n[> player | stationary crate ]->cancel\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\n11121111211112111121..........\n22222222222222222222q....q....\n12111121111211112111...q....q.\n22222222222222222222..........\n11121111211112111121.q....q...\n11121..........11121..........\n22222q....q,,,.22222q....q....\n12111...q..,.,.12111...q....q.\n22222......,,,.22222..........\n11121.q....q...11121.q....q...\n11121..........111211112111121\n22222q....q....222222222222222\n12111...q....q.121111211112111\n22222..........222222222222222\n11121.q....q...111211112111121\n11121......333...........11121\n22222q,,,.q444.q....q....22222\n12111.,.,.55555...q....q.12111\n22222.,,,..666...........22222\n11121..q...6.6..q....q...11121\n11121....................11121\n22222q....q....q....q....22222\n12111...q....q....q....q.12111\n22222....................22222\n11121.q....q....q....q...11121\n11121..........88888.....11121\n22222q....q....8...8q....22222\n12111...q....q.8..q8...q.12111\n22222..........8...8.....22222\n11121.q....q...88888.q...11121\n11121..........111211112111121\n22222q....q....222222222222222\n12111...q....q.121111211112111\n22222..........222222222222222\n11121.q....q...111211112111121\n11121111211112111121..........\n22222222222222222222q....q....\n12111121111211112111...q....q.\n22222222222222222222..........\n11121111211112111121.q....q...\n\nmessage congratulations to all of you!\n", [1, 1, 0, 0, 2, 2, 2, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1], "background wall1:0,background wall2:1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,\n0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,\n1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,background:2,background grass:3,2,2,2,\n2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,0,1,0,1,0,\n0,1,1,1,0,2,2,2,2,3,2,2,2,2,3,2,background target:4,4,4,2,2,2,2,2,3,2,2,2,2,3,\n2,2,2,2,3,0,1,1,1,0,0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,4,2,4,3,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,1,1,0,1,1,2,2,3,2,2,\n2,2,3,2,2,2,4,4,4,2,2,2,3,2,2,background crate:5,2,3,2,2,2,2,3,2,2,1,1,0,1,1,\n0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,2,2,2,2,\n2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,\n2,3,2,2,2,5,3,2,2,2,2,3,2,2,2,0,1,0,1,0,0,1,1,1,0,2,4,4,4,3,\n2,2,2,2,3,2,2,2,2,2,2,2,2,2,3,5,5,2,2,3,2,2,2,2,3,0,1,1,1,0,\n0,1,0,1,0,2,4,2,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background player3:6,5,5,2,2,2,\n2,2,2,2,2,0,1,0,1,0,1,1,0,1,1,2,4,4,4,2,2,2,3,2,2,2,2,2,2,2,\n2,2,background grass player1:7,background player2:8,6,background player4:9,9,3,2,2,2,2,3,2,2,1,1,0,1,1,0,1,0,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,background player1:10,8,6,9,2,2,2,2,2,2,2,2,2,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,3,2,2,2,2,3,10,8,6,9,9,5,5,5,\n0,1,0,1,0,0,1,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,2,2,2,2,3,\n2,2,2,2,background grass player3:11,2,2,2,2,5,0,1,1,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,0,1,0,1,0,0,1,0,1,0,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,2,2,3,2,2,2,2,3,2,2,2,2,3,2,5,\n1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,5,5,5,0,1,0,1,0,0,1,0,1,0,2,3,2,2,2,2,3,2,2,2,\n0,1,0,1,0,2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,0,1,0,1,0,2,3,2,2,2,\n2,2,2,2,3,2,2,2,2,3,0,1,1,1,0,2,2,2,2,3,2,2,2,2,3,2,2,2,2,3,\n0,1,1,1,0,2,2,2,2,3,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,2,2,3,2,2,2,2,3,2,2,\n1,1,0,1,1,2,2,3,2,2,2,2,3,2,2,2,2,3,2,2,1,1,0,1,1,2,2,3,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n0,1,0,1,0,2,2,2,2,2,2,3,2,2,2,2,3,2,2,2,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,3,2,2,2,2,2,2,2,3,2,2,2,2,3,\n0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,2,2,2,2,3,\n2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,2,2,2,2,2,2,2,3,2,2,2,2,3,2,2,1,1,0,1,1,1,1,0,1,1,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,2,2,3,2,2,2,2,2,2,2,2,2,2,2,2,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,2,2,2,2,\n", 1, "1627893701797.368"] ], [ - "Two-Step Pete", - ["title Two-Step Pete\nauthor increpare\nhomepage www.increpare.com\n\ncolor_palette 7\n(\nthanks to c00t00 for tips + feedback\nthanks to bvoq + marcosdon for the lovely solvers\n\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\nhttps://dekeyser.ch/puzzlescriptmis/\n)\n\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN \n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nBROWN \n\nPlayer\nBlue Blue Blue Blue yellow\n.000.\n.141.\n22222\n.333.\n.3.3.\n\nCrate\n#ee5555\n00000\n0...0\n0...0\n0...0\n00000\n\nlaststart\ntransparent\n\nlastup\ntransparent\n\nlastdown\ntransparent\n\nlastleft\ntransparent\n\nlastright\ntransparent\n\nspawncrate \ntransparent\n\n=======\nLEGEND\n=======\n\nlastany = lastup or lastdown or lastleft or lastright or laststart\n\n. = Background\n# = Wall\nP = Player and laststart\n* = Background\n@ = Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nlastany\nspawncrate\n\n======\nRULES\n======\n\n[ action player ] -> cancel\n\n[ > player | wall ] -> cancel\n[ > player | crate | wall ] -> cancel\n[ > player | crate | crate ] -> cancel\n\n\nup \t\t[ up player \tlastup \t\tno laststart ] -> [ up player \t\tspawncrate ]\ndown \t[ down player \tlastdown \tno laststart ] -> [ down player \tspawncrate ]\nleft \t[ left player \tlastleft \tno laststart ] -> [ left player \tspawncrate ]\nright \t[ right player \tlastright \tno laststart ] -> [ right player \tspawncrate ]\n\n[ lastany ] -> [ ]\n\nup \t\t[ up player \t| ] -> [ up player \t\t| lastup \t]\ndown \t[ down player \t| ] -> [ down player \t| lastdown \t]\nleft \t[ left player \t| ] -> [ left player \t| lastleft \t]\nright \t[ right player \t| ] -> [ right player \t| lastright ]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate [ spawncrate player ] -> cancel\nlate [ spawncrate ] -> [ crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nAll Crate on Target\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 8\n(klinda fun)\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n\n(kinda fun?)\n\nmessage level 2 of 8\n######\n#@.@.#\n#.@.@#\n#@.@.#\n#.@.@#\n#@p@.#\n#.@.@#\n######\n\n(ok?)\n\nmessage level 3 of 8\n#####\n#.@@#\n#@.@#\n#p@.#\n#####\n\n\n\nmessage level 4 of 8\n(fun! ship it)\n###########\n#####@#####\n####...####\n#####@#####\n##.#.p.#.##\n#@.@...@.@#\n##.#...#.##\n#####@#####\n####...####\n#####@#####\n###########\n\n\nmessage level 5 of 8\n( tricky + nice )\n#######\n#.@..@#\n#...@.#\n##.#p##\n#.....#\n#...@.#\n#######\n\nmessage level 6 of 8\n(is this the same as above? IDK )\n#######\n#.@#..#\n#...@.#\n##@#.##\n#.p...#\n#.@#..#\n#######\n\n\n\nmessage level 7 of 8\n(like this)\n#####\n#@p@#\n#@@@#\n#@..#\n#.@@#\n#####\n\n\nmessage level 8 of 8\n\n(hard not great but ok?)\n######\n#@.@@#\n#@@@@#\n#@@@.#\n#p.@@#\n######\n\nmessage congrats. sorry ab out that final level.\n(\n\n######\n#....#\n#....#\n##..##\n#p...#\n#....#\n######\n\n#######\n#..#..#\n#.....#\n##.#.##\n#.....#\n#..#p.#\n#######\n\n###########\n#####@#####\n####...####\n#####@#####\n##.#.p.#.##\n#@.@...@.@#\n##.#...#.##\n#####@#####\n####...####\n#####@#####\n###########\n\n(kinda nice)\n###########\n#####.#####\n##.#.p.#.##\n#@.@......#\n##.#...#.##\n#####.#####\n###########\n\n\n######\n#....#\n#....#\n#....#\n#.p..#\n######\n\n\n#####\n#p..#\n#...#\n#...#\n#...#\n#####\n\n#########\n####.####\n###...###\n##.....##\n#...p...#\n##.....##\n###...###\n####.####\n#########\n\n###########\n#####.#####\n####...####\n#####.#####\n##.#...#.##\n#.........#\n##.#...#.##\n#####p#####\n####...####\n#####.#####\n###########\n\n###########\n#####.#####\n##.#...#.##\n#.........#\n##.#..p#.##\n#####.#####\n###########\n\n(kinda hard kinda random but ok?)\n#####\n#@@.#\n#p@@#\n#@.@#\n#@.@#\n#####\n\n\n#######\n#.@...#\n#.@..@#\n##.#@##\n#...p.#\n#.....#\n#######\n\n\n(same trick as above? iiish)\n#######\n#..#..#\n#..@@@#\n##p#.##\n#######\n\n#######\n#..#..#\n#.....#\n##.#.##\n#.....#\n#..#p.#\n#######\n\n\n#########\n#...#...#\n#.......#\n#...#...#\n##.###.##\n#...#...#\n#.......#\n#...#..p#\n#########\n\nmessage congratulations!\n)\n",[2,2,2,3,0,0,0,1,1,2,2],"background wall:0,0,0,0,0,\n0,0,background target:1,background crate target:2,background lastdown player target:3,\nbackground:4,0,0,background crate:5,2,\n5,1,0,0,1,\n2,5,1,0,0,\n0,0,0,0,0,\n",13,"1627893714599.114"] + "Two-Step Pete", + ["title Two-Step Pete\nauthor increpare\nhomepage www.increpare.com\n\ncolor_palette 7\n(\nthanks to c00t00 for tips + feedback\nthanks to bvoq + marcosdon for the lovely solvers\n\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\nhttps://dekeyser.ch/puzzlescriptmis/\n)\n\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN \n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nBROWN \n\nPlayer\nBlue Blue Blue Blue yellow\n.000.\n.141.\n22222\n.333.\n.3.3.\n\nCrate\n#ee5555\n00000\n0...0\n0...0\n0...0\n00000\n\nlaststart\ntransparent\n\nlastup\ntransparent\n\nlastdown\ntransparent\n\nlastleft\ntransparent\n\nlastright\ntransparent\n\nspawncrate \ntransparent\n\n=======\nLEGEND\n=======\n\nlastany = lastup or lastdown or lastleft or lastright or laststart\n\n. = Background\n# = Wall\nP = Player and laststart\n* = Background\n@ = Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nlastany\nspawncrate\n\n======\nRULES\n======\n\n[ action player ] -> cancel\n\n[ > player | wall ] -> cancel\n[ > player | crate | wall ] -> cancel\n[ > player | crate | crate ] -> cancel\n\n\nup \t\t[ up player \tlastup \t\tno laststart ] -> [ up player \t\tspawncrate ]\ndown \t[ down player \tlastdown \tno laststart ] -> [ down player \tspawncrate ]\nleft \t[ left player \tlastleft \tno laststart ] -> [ left player \tspawncrate ]\nright \t[ right player \tlastright \tno laststart ] -> [ right player \tspawncrate ]\n\n[ lastany ] -> [ ]\n\nup \t\t[ up player \t| ] -> [ up player \t\t| lastup \t]\ndown \t[ down player \t| ] -> [ down player \t| lastdown \t]\nleft \t[ left player \t| ] -> [ left player \t| lastleft \t]\nright \t[ right player \t| ] -> [ right player \t| lastright ]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate [ spawncrate player ] -> cancel\nlate [ spawncrate ] -> [ crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nAll Crate on Target\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 8\n(klinda fun)\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n\n(kinda fun?)\n\nmessage level 2 of 8\n######\n#@.@.#\n#.@.@#\n#@.@.#\n#.@.@#\n#@p@.#\n#.@.@#\n######\n\n(ok?)\n\nmessage level 3 of 8\n#####\n#.@@#\n#@.@#\n#p@.#\n#####\n\n\n\nmessage level 4 of 8\n(fun! ship it)\n###########\n#####@#####\n####...####\n#####@#####\n##.#.p.#.##\n#@.@...@.@#\n##.#...#.##\n#####@#####\n####...####\n#####@#####\n###########\n\n\nmessage level 5 of 8\n( tricky + nice )\n#######\n#.@..@#\n#...@.#\n##.#p##\n#.....#\n#...@.#\n#######\n\nmessage level 6 of 8\n(is this the same as above? IDK )\n#######\n#.@#..#\n#...@.#\n##@#.##\n#.p...#\n#.@#..#\n#######\n\n\n\nmessage level 7 of 8\n(like this)\n#####\n#@p@#\n#@@@#\n#@..#\n#.@@#\n#####\n\n\nmessage level 8 of 8\n\n(hard not great but ok?)\n######\n#@.@@#\n#@@@@#\n#@@@.#\n#p.@@#\n######\n\nmessage congrats. sorry ab out that final level.\n(\n\n######\n#....#\n#....#\n##..##\n#p...#\n#....#\n######\n\n#######\n#..#..#\n#.....#\n##.#.##\n#.....#\n#..#p.#\n#######\n\n###########\n#####@#####\n####...####\n#####@#####\n##.#.p.#.##\n#@.@...@.@#\n##.#...#.##\n#####@#####\n####...####\n#####@#####\n###########\n\n(kinda nice)\n###########\n#####.#####\n##.#.p.#.##\n#@.@......#\n##.#...#.##\n#####.#####\n###########\n\n\n######\n#....#\n#....#\n#....#\n#.p..#\n######\n\n\n#####\n#p..#\n#...#\n#...#\n#...#\n#####\n\n#########\n####.####\n###...###\n##.....##\n#...p...#\n##.....##\n###...###\n####.####\n#########\n\n###########\n#####.#####\n####...####\n#####.#####\n##.#...#.##\n#.........#\n##.#...#.##\n#####p#####\n####...####\n#####.#####\n###########\n\n###########\n#####.#####\n##.#...#.##\n#.........#\n##.#..p#.##\n#####.#####\n###########\n\n(kinda hard kinda random but ok?)\n#####\n#@@.#\n#p@@#\n#@.@#\n#@.@#\n#####\n\n\n#######\n#.@...#\n#.@..@#\n##.#@##\n#...p.#\n#.....#\n#######\n\n\n(same trick as above? iiish)\n#######\n#..#..#\n#..@@@#\n##p#.##\n#######\n\n#######\n#..#..#\n#.....#\n##.#.##\n#.....#\n#..#p.#\n#######\n\n\n#########\n#...#...#\n#.......#\n#...#...#\n##.###.##\n#...#...#\n#.......#\n#...#..p#\n#########\n\nmessage congratulations!\n)\n", [2, 2, 2, 3, 0, 0, 0, 1, 1, 2, 2], "background wall:0,0,0,0,0,\n0,0,background target:1,background crate target:2,background lastdown player target:3,\nbackground:4,0,0,background crate:5,2,\n5,1,0,0,1,\n2,5,1,0,0,\n0,0,0,0,0,\n", 13, "1627893714599.114"] ], [ - "Microban x 10", - ["title Microban x 10\nauthor David Skinner, assembled by increpare\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\n\n\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\nGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\n DARKBROWN\n\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\nfill\ntransparent\n\nredzone r\nlightred\n.....\n.....\n..0..\n.....\n.....\n\nredPlayer\nred red red red\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nredcrate \n#ff0000 \n00000\n0...0\n0...0\n0...0\n00000\n\nyellowplayer\n#ffff00 #ffff00 #ffff00 #ffff00 \n.000.\n.111.\n22222\n.333.\n.3.3.\n\nyellowcrate \n#ffff00 \n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\ncanremove = player or crate or target\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nt = redzone and Player\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\nsfx0 7217302\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nfill\nredcrate\nredzone\nredplayer \nyellowplayer\nyellowcrate\n\n======\nRULES\n======\n\n[yellowplayer]->[]\n[yellowcrate]->[]\n[> player | Crate | no wall no crate ] -> [ > player | yellowplayer crate | no wall no crate yellowcrate ]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n\n\nlate [no wall] -> [fill]\n\nlate [target no crate fill]->[target]\nlate [fill| no wall no fill]->[|]\n\nlate [fill Player ]->[fill]\nlate [fill crate ]->[fill]\nlate [fill target ]->[fill]\nlate [fill]->[]\n\nlate [redplayer]->[]\nlate [redcrate]->[]\n\nlate [crate redzone]->cancel sfx0 \nlate [ player | crate | redzone ] -> [ player redplayer | crate redcrate | redzone ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage This is a compilation of 10 of my favourite levels from microban by David Skinner, where it turns out you can solve all of them simultaneously. Standard sokoban rules, with some helper visualisations.\n\nmessage levels 10 of 10\n\n\n###############################\n########rrrrrr#################\n########ro@@*t#rrrr###rrr######\n########r....r#r**.....#t######\n############rr#r*.#ooo..r######\n#ro#####rr#####rrr#############\n#..###r....*r#######rrrrr######\n#@p.r#r#..#*r#rrrrr#ro*or#root#\n#..*r#ro.o#tr#.o*or#r*o*r#r**r#\n#rr###########.*p*r#ro*or##.###\n####rrrr#...#r.o*or#r*o*r##.###\n####r#pr#...#rrrrrr#rrtrr##.###\n####r*@r###################.###\n####ro@r#o.r#o.r########r...###\n####rrrr#o#r#t**r#######r#..r##\n#########o#r##r..#######r..#r##\n###rp.*.*.*r###r.#########rrr##\n###r#.#.#.######o##############\n###rrrrrrr#####################\n###############################\n\n\n\nmessage congratulations x 10!\n\n",[3,1,2,3,2,3,0,3,0,"undo",0,3,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 redzone:1,background:2,background crate target:3,2,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,background target:4,2,2,2,1,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background player:5,background crate:6,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,1,1,1,\n1,1,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,6,4,1,0,2,5,1,0,0,0,0,0,\n0,0,1,1,1,0,1,2,3,3,1,0,6,0,1,0,0,0,0,0,0,0,2,0,4,0,background player redzone:7,1,1,1,1,\n0,2,2,1,0,0,1,1,1,0,1,2,2,2,0,0,0,0,0,0,0,6,0,1,0,0,1,4,2,0,1,\n2,2,4,0,2,2,0,4,4,4,2,2,1,0,0,1,3,2,0,0,2,0,0,0,2,2,0,2,0,0,6,\n0,0,0,0,1,3,2,0,0,6,6,1,0,2,2,0,1,1,1,1,0,0,0,0,1,6,2,1,0,7,1,\n1,0,0,0,0,0,0,0,0,0,0,0,0,7,1,1,1,0,0,0,0,0,1,1,0,4,1,0,0,0,0,\n0,0,0,0,0,0,0,0,1,2,6,2,1,0,background player redplayer:8,background crate redcrate:9,1,0,0,0,0,0,0,1,1,1,1,0,1,4,2,\n4,1,0,1,6,2,1,0,0,0,0,0,1,6,6,1,0,1,6,6,2,1,0,0,1,2,2,4,0,0,0,\n0,1,6,2,1,0,1,background crate redcrate target yellowcrate:10,background player redplayer yellowplayer:11,4,1,0,0,0,0,0,0,0,0,0,0,1,2,0,0,0,1,1,1,1,1,\n0,0,0,0,0,0,0,0,0,0,0,2,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n2,4,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,2,4,0,1,4,6,4,6,1,0,0,\n0,0,0,0,0,0,0,0,1,2,2,0,1,6,3,2,4,1,0,0,0,0,0,0,0,0,0,0,1,0,2,\n0,1,10,11,4,6,1,0,0,0,0,0,0,0,0,0,0,7,1,1,0,1,1,1,1,1,1,0,1,1,1,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,\n1,1,0,0,0,0,2,2,2,1,0,0,0,0,0,0,0,0,0,0,4,6,2,2,2,2,2,2,0,1,0,\n0,0,0,0,0,0,0,0,0,4,6,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,7,1,\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,\n",2,"1627893725475.1794"] + "Microban x 10", + ["title Microban x 10\nauthor David Skinner, assembled by increpare\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\n\n\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\nGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\n DARKBROWN\n\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\nfill\ntransparent\n\nredzone r\nlightred\n.....\n.....\n..0..\n.....\n.....\n\nredPlayer\nred red red red\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nredcrate \n#ff0000 \n00000\n0...0\n0...0\n0...0\n00000\n\nyellowplayer\n#ffff00 #ffff00 #ffff00 #ffff00 \n.000.\n.111.\n22222\n.333.\n.3.3.\n\nyellowcrate \n#ffff00 \n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\ncanremove = player or crate or target\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nt = redzone and Player\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\nsfx0 7217302\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nfill\nredcrate\nredzone\nredplayer \nyellowplayer\nyellowcrate\n\n======\nRULES\n======\n\n[yellowplayer]->[]\n[yellowcrate]->[]\n[> player | Crate | no wall no crate ] -> [ > player | yellowplayer crate | no wall no crate yellowcrate ]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n\n\nlate [no wall] -> [fill]\n\nlate [target no crate fill]->[target]\nlate [fill| no wall no fill]->[|]\n\nlate [fill Player ]->[fill]\nlate [fill crate ]->[fill]\nlate [fill target ]->[fill]\nlate [fill]->[]\n\nlate [redplayer]->[]\nlate [redcrate]->[]\n\nlate [crate redzone]->cancel sfx0 \nlate [ player | crate | redzone ] -> [ player redplayer | crate redcrate | redzone ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage This is a compilation of 10 of my favourite levels from microban by David Skinner, where it turns out you can solve all of them simultaneously. Standard sokoban rules, with some helper visualisations.\n\nmessage levels 10 of 10\n\n\n###############################\n########rrrrrr#################\n########ro@@*t#rrrr###rrr######\n########r....r#r**.....#t######\n############rr#r*.#ooo..r######\n#ro#####rr#####rrr#############\n#..###r....*r#######rrrrr######\n#@p.r#r#..#*r#rrrrr#ro*or#root#\n#..*r#ro.o#tr#.o*or#r*o*r#r**r#\n#rr###########.*p*r#ro*or##.###\n####rrrr#...#r.o*or#r*o*r##.###\n####r#pr#...#rrrrrr#rrtrr##.###\n####r*@r###################.###\n####ro@r#o.r#o.r########r...###\n####rrrr#o#r#t**r#######r#..r##\n#########o#r##r..#######r..#r##\n###rp.*.*.*r###r.#########rrr##\n###r#.#.#.######o##############\n###rrrrrrr#####################\n###############################\n\n\n\nmessage congratulations x 10!\n\n", [3, 1, 2, 3, 2, 3, 0, 3, 0, "undo", 0, 3, 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 redzone:1,background:2,background crate target:3,2,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,background target:4,2,2,2,1,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background player:5,background crate:6,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,1,1,1,\n1,1,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,6,4,1,0,2,5,1,0,0,0,0,0,\n0,0,1,1,1,0,1,2,3,3,1,0,6,0,1,0,0,0,0,0,0,0,2,0,4,0,background player redzone:7,1,1,1,1,\n0,2,2,1,0,0,1,1,1,0,1,2,2,2,0,0,0,0,0,0,0,6,0,1,0,0,1,4,2,0,1,\n2,2,4,0,2,2,0,4,4,4,2,2,1,0,0,1,3,2,0,0,2,0,0,0,2,2,0,2,0,0,6,\n0,0,0,0,1,3,2,0,0,6,6,1,0,2,2,0,1,1,1,1,0,0,0,0,1,6,2,1,0,7,1,\n1,0,0,0,0,0,0,0,0,0,0,0,0,7,1,1,1,0,0,0,0,0,1,1,0,4,1,0,0,0,0,\n0,0,0,0,0,0,0,0,1,2,6,2,1,0,background player redplayer:8,background crate redcrate:9,1,0,0,0,0,0,0,1,1,1,1,0,1,4,2,\n4,1,0,1,6,2,1,0,0,0,0,0,1,6,6,1,0,1,6,6,2,1,0,0,1,2,2,4,0,0,0,\n0,1,6,2,1,0,1,background crate redcrate target yellowcrate:10,background player redplayer yellowplayer:11,4,1,0,0,0,0,0,0,0,0,0,0,1,2,0,0,0,1,1,1,1,1,\n0,0,0,0,0,0,0,0,0,0,0,2,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n2,4,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,2,4,0,1,4,6,4,6,1,0,0,\n0,0,0,0,0,0,0,0,1,2,2,0,1,6,3,2,4,1,0,0,0,0,0,0,0,0,0,0,1,0,2,\n0,1,10,11,4,6,1,0,0,0,0,0,0,0,0,0,0,7,1,1,0,1,1,1,1,1,1,0,1,1,1,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,\n1,1,0,0,0,0,2,2,2,1,0,0,0,0,0,0,0,0,0,0,4,6,2,2,2,2,2,2,0,1,0,\n0,0,0,0,0,0,0,0,0,4,6,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,7,1,\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,\n", 2, "1627893725475.1794"] ], [ - "The Far Away Danish Pastry is always Deliciouser.", - ["title The Far Away Danish Pastry is always Deliciouser.\nauthor increpare [variant of Lexaloffle's Neko Puzzle]\nhomepage www.increpare.com\nbackground_color darkbrown\ntext_color yellow\n(\nAn inadequate but illustrative demake of one of my favourite puzzle games ever, by the extremely amicable Lexaloffle, and with his permission.\n\nwww.lexaloffle.com/neko.htm\n\nThe game proper has a lot of magic and love in it.\n)\n\n========\nOBJECTS\n========\n\nBackground .\ndarkbrown\n\nFruit F\nyellow orange red\n...0.\n0010.\n.121.\n.0100\n.0...\n\nPlayer P\nyellow red\n.111.\n10001\n11111\n01110\n0...0\n\n=======\nLEGEND\n=======\n\n=========\nSOUNDS\n=========\nendlevel 97301508\nstartgame 97301508\nendgame 97301508\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\nFruit\n\n======\nRULES\n======\n\n[ > Player | ... | Fruit ] -> [ | ... | > Player fruit ]\n\n[ player fruit ] -> [ player ]\n\n(if you're not sure what this line does, try removing it, and see what happens)\n[ > Player ] -> [ Player]\n\n==============\nWINCONDITIONS\n==============\nNo fruit\n\n=======\nLEVELS\n=======\n\n\nmessage level 1 of 8\n\n\n........\n....F.P.\nF.F.....\n........\nF...F...\n..F.F...\n........\n\nmessage level 2 of 8\n\n........\n...fff..\n..f.p...\n..ff.f..\n........\n..f.f...\n....f...\n\n\nmessage level 3 of 8\n\n........\n.f..ffff\n........\n.f....p.\n........\n........\n.....fff\n.......f\n\nmessage level 4 of 8\n\n........\nf...f...\nf..ff...\n........\n...pf...\n...ff.ff\n\nmessage level 5 of 8\n\n........\n........\n........\nf...f.f.\nf.f.p.ff\nf...f...\n.......f\n........\n\n\nmessage level 6 of 8\n(ok)\n.f......\n.f.ff...\n.f.fff.f\nfpff....\n.f.ffff.\n.f.f....\n.f......\n(\nmessage level 7 of 9 \n\nf.f....f\nf...f...\n.f....f.\n.f..p...\n........\nff..ff.f\n..fff..f\n..f...ff\n)\nmessage level 7 of 8\n(like this one )\n.ffpff.....f.\nff.f....f....\nff...........\n..f.........f\n.f...f......f\n.............\nf...f....f.f.\n\nmessage level 8 of 8\n(Acceptably hard final level)\nfff...f..f...f\n....f..f.f....\n.......p....f.\n......f..ff...\nf.....f......f\n..............\n.....fff....f.\n\n\n\n\n(\nmessage level 6 of 10\n(hard!)\n..ffff..\n..fp....\n........\nff......\n.f...fff\n...ff..f\n.f....f.\n.f.f.f..\n)\n\n\nmessage congratulations!\n\n",[3,2,1,0,3],"background:0,0,background fruit:1,0,0,0,0,1,1,1,0,1,0,\n0,1,0,0,1,0,0,0,0,1,0,0,0,\n0,0,1,0,0,0,0,0,1,1,0,0,0,\n1,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background player:2,0,0,0,0,0,0,0,\n0,0,0,0,1,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,1,1,0,0,\n",13,"1627893739801.0737"] + "The Far Away Danish Pastry is always Deliciouser.", + ["title The Far Away Danish Pastry is always Deliciouser.\nauthor increpare [variant of Lexaloffle's Neko Puzzle]\nhomepage www.increpare.com\nbackground_color darkbrown\ntext_color yellow\n(\nAn inadequate but illustrative demake of one of my favourite puzzle games ever, by the extremely amicable Lexaloffle, and with his permission.\n\nwww.lexaloffle.com/neko.htm\n\nThe game proper has a lot of magic and love in it.\n)\n\n========\nOBJECTS\n========\n\nBackground .\ndarkbrown\n\nFruit F\nyellow orange red\n...0.\n0010.\n.121.\n.0100\n.0...\n\nPlayer P\nyellow red\n.111.\n10001\n11111\n01110\n0...0\n\n=======\nLEGEND\n=======\n\n=========\nSOUNDS\n=========\nendlevel 97301508\nstartgame 97301508\nendgame 97301508\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\nFruit\n\n======\nRULES\n======\n\n[ > Player | ... | Fruit ] -> [ | ... | > Player fruit ]\n\n[ player fruit ] -> [ player ]\n\n(if you're not sure what this line does, try removing it, and see what happens)\n[ > Player ] -> [ Player]\n\n==============\nWINCONDITIONS\n==============\nNo fruit\n\n=======\nLEVELS\n=======\n\n\nmessage level 1 of 8\n\n\n........\n....F.P.\nF.F.....\n........\nF...F...\n..F.F...\n........\n\nmessage level 2 of 8\n\n........\n...fff..\n..f.p...\n..ff.f..\n........\n..f.f...\n....f...\n\n\nmessage level 3 of 8\n\n........\n.f..ffff\n........\n.f....p.\n........\n........\n.....fff\n.......f\n\nmessage level 4 of 8\n\n........\nf...f...\nf..ff...\n........\n...pf...\n...ff.ff\n\nmessage level 5 of 8\n\n........\n........\n........\nf...f.f.\nf.f.p.ff\nf...f...\n.......f\n........\n\n\nmessage level 6 of 8\n(ok)\n.f......\n.f.ff...\n.f.fff.f\nfpff....\n.f.ffff.\n.f.f....\n.f......\n(\nmessage level 7 of 9 \n\nf.f....f\nf...f...\n.f....f.\n.f..p...\n........\nff..ff.f\n..fff..f\n..f...ff\n)\nmessage level 7 of 8\n(like this one )\n.ffpff.....f.\nff.f....f....\nff...........\n..f.........f\n.f...f......f\n.............\nf...f....f.f.\n\nmessage level 8 of 8\n(Acceptably hard final level)\nfff...f..f...f\n....f..f.f....\n.......p....f.\n......f..ff...\nf.....f......f\n..............\n.....fff....f.\n\n\n\n\n(\nmessage level 6 of 10\n(hard!)\n..ffff..\n..fp....\n........\nff......\n.f...fff\n...ff..f\n.f....f.\n.f.f.f..\n)\n\n\nmessage congratulations!\n\n", [3, 2, 1, 0, 3], "background:0,0,background fruit:1,0,0,0,0,1,1,1,0,1,0,\n0,1,0,0,1,0,0,0,0,1,0,0,0,\n0,0,1,0,0,0,0,0,1,1,0,0,0,\n1,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background player:2,0,0,0,0,0,0,0,\n0,0,0,0,1,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,1,1,0,0,\n", 13, "1627893739801.0737"] ], [ - "CŌDEX·LŪBRICUS", - ["title CŌDEX·LŪBRICUS\nauthor INCREPĀRE\nhomepage www.increpare.com\n\nagain_interval 0.1\n\nrun_rules_on_level_start\n\n\nbackground_color #523a2a\ntext_color #c19c4d\n\n( verbose_logging )\n\n(thanks to everyon on twitch for feedback + company as I was making this)\n========\nOBJECTS\n========\n\nBackground\n#ac763c #9b672f\n00000\n01010\n00000\n01010\n00000\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\ntargetfg1\n#ac763c #9b672f\n..111\n10101\n10101\n10101\n..111\n\n\ntargetfg2\n#9b672f #523a2a \n00111\n10101\n10101\n10101\n00111\n\nWall\n#8a6b3e #7d623a\n00000\n00000\n00100\n00000\n00000\n\nPlayer\n#8a6b3e #7d623a\n00000\n00000\n00100\n00000\n00000\n\nwall_highlight_top\n#c19c4d\n00000\n.....\n.....\n.....\n.....\n\nwall_highlight_bottom\n#523a2a\n.....\n.....\n.....\n.....\n00000\n\nwall_highlight_left\n#523a2a\n0....\n0....\n0....\n0....\n0....\n\nwall_highlight_right\n#c19c4d\n....0\n....0\n....0\n....0\n....0\n\n\nwall_highlight_topleft\n#8a6b3e\n0....\n.....\n.....\n.....\n.....\n\n\nwall_highlight_bottomright\n#8a6b3e\n.....\n.....\n.....\n.....\n....0\n\n\n(\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n)\nCrate1 1\n#9e564a \n00000\n00000\n00000\n00000\n00000\n\ncrate1_highlight_top\n#b76f63\n00000\n.....\n.....\n.....\n.....\n\ncrate1_highlight_bottom\n#743429\n.....\n.....\n.....\n.....\n00000\n\ncrate1_highlight_left\n#743429\n0....\n0....\n0....\n0....\n0....\n\ncrate1_highlight_right\n#b76f63\n....0\n....0\n....0\n....0\n....0\n\n\ncrate1_highlight_topleft\n#9e564a\n0....\n.....\n.....\n.....\n.....\n\n\ncrate1_highlight_bottomright\n#9e564a\n.....\n.....\n.....\n.....\n....0\n\n\nCrate2 2\n#4ca474 \n00000\n00000\n00000\n00000\n00000\n\n\n\ncrate2_highlight_top\n#6dd39c\n00000\n.....\n.....\n.....\n.....\n\ncrate2_highlight_bottom\n#2b6143\n.....\n.....\n.....\n.....\n00000\n\ncrate2_highlight_left\n#2b6143\n0....\n0....\n0....\n0....\n0....\n\ncrate2_highlight_right\n#6dd39c\n....0\n....0\n....0\n....0\n....0\n\n\ncrate2_highlight_topleft\n#4ca474\n0....\n.....\n.....\n.....\n.....\n\n\ncrate2_highlight_bottomright\n#4ca474\n.....\n.....\n.....\n.....\n....0\n\n\nslideright\ntransparent\n\nslidedown\ntransparent\n\nslideleft\ntransparent\n\nslideup\ntransparent\n\nnospawn ,\ntransparent\n\n\n=======\nLEGEND\n=======\n\n\ncrate = crate1 or crate2 \nslidetag = slideleft or slideup or slideright or slidedown\n\ncrate1_highlight = crate1_highlight_top or crate1_highlight_bottom or crate1_highlight_left or crate1_highlight_right or crate1_highlight_topleft or crate1_highlight_bottomright\n\ncrate2_highlight = crate2_highlight_top or crate2_highlight_bottom or crate2_highlight_left or crate2_highlight_right or crate2_highlight_topleft or crate2_highlight_bottomright\n\ncrate_highlight = crate1_highlight or crate2_highlight\n\nhighlight_left = wall_highlight_left or crate1_highlight_left or crate2_highlight_left\nhighlight_bottom = wall_highlight_bottom or crate1_highlight_bottom or crate2_highlight_bottom\n\n. = Background\n# = Wall\nP = Player and wall\n* = Crate1\n@ = Crate1 and Target\nO = Target and nospawn\nobs = wall or crate\n\n; = targetfg1 and nospawn\n: = targetfg2 and Target and nospawn\n\n=======\nSOUNDS\n=======\n\nsfx0 94813307 (push)\nsfx1 66342702 (delete)\nendlevel 61653300\nstartgame 5762303\nstartlevel 10793103\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\ntargetfg1, targetfg2\nPlayer\nWall, Crate\nwall_highlight_top,crate1_highlight_top,crate2_highlight_top\nwall_highlight_bottom,crate1_highlight_bottom,crate2_highlight_bottom\nwall_highlight_left,crate1_highlight_left,crate2_highlight_left\nwall_highlight_right,crate1_highlight_right,crate2_highlight_right\nwall_highlight_topleft,crate1_highlight_topleft,crate2_highlight_topleft\nwall_highlight_bottomright,crate1_highlight_bottomright,crate2_highlight_bottomright\nslidetag\nnospawn\n\n======\nRULES\n======\n\n\n\n\n[> player slidetag]->[> player]\n\n[ up player ] -> [ up player slideup ] again \n[ down player ] -> [ down player slidedown ] again \n[ left player ] -> [ left player slideleft ] again \n[ right player ] -> [ right player slideright ] again \n\n\n[ slideup ] [ crate ] -> [ slideup ] [ up crate ] again\n[ slidedown ] [ crate ] -> [ slidedown ] [ down crate ] again\n[ slideleft ] [ crate ] -> [ slideleft ] [ left crate ] again\n[ slideright ] [ crate ] -> [ slideright ] [ right crate ] again\n\n[ > crate | stationary obs ] -> [ crate | stationary obs ]\n+ [ moving crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ moving crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n\n [ target > crate ] -> [ target ] sfx1\n\n[moving player]->[player]\n\n(cosmetics start)\nlate [crate_highlight]->[]\n\n\nlate right [ no target | target ] -> [ targetfg1 | targetfg2 target]\n\nlate up [ wall | no wall ] -> [ wall wall_highlight_top |]\nlate down [ wall | no wall ] -> [ wall wall_highlight_bottom| ]\nlate left [ wall | no wall ] -> [ wall wall_highlight_left |]\nlate right [ wall | no wall ] -> [ wall wall_highlight_right |]\nlate [wall_highlight_top wall_highlight_left ] -> [wall_highlight_top wall_highlight_left wall_highlight_topleft]\nlate [wall_highlight_bottom wall_highlight_right ] -> [wall_highlight_bottom wall_highlight_right wall_highlight_bottomright]\n\nlate up [ crate1 | no crate1 ] -> [ crate1 crate1_highlight_top |]\nlate down [ crate1 | no crate1 ] -> [ crate1 crate1_highlight_bottom| ]\nlate left [ crate1 | no crate1 ] -> [ crate1 crate1_highlight_left |]\nlate right [ crate1 | no crate1 ] -> [ crate1 crate1_highlight_right |]\nlate [crate1_highlight_top crate1_highlight_left ] -> [crate1_highlight_top crate1_highlight_left crate1_highlight_topleft]\nlate [crate1_highlight_bottom crate1_highlight_right ] -> [crate1_highlight_bottom crate1_highlight_right crate1_highlight_bottomright]\n\nlate up [ crate2 | no crate2 ] -> [ crate2 crate2_highlight_top |]\nlate down [ crate2 | no crate2 ] -> [ crate2 crate2_highlight_bottom| ]\nlate left [ crate2 | no crate2 ] -> [ crate2 crate2_highlight_left |]\nlate right [ crate2 | no crate2 ] -> [ crate2 crate2_highlight_right |]\nlate [crate2_highlight_top crate2_highlight_left ] -> [crate2_highlight_top crate2_highlight_left crate2_highlight_topleft]\nlate [crate2_highlight_bottom crate2_highlight_right ] -> [crate2_highlight_bottom crate2_highlight_right crate2_highlight_bottomright]\n\n(cosmetics end)\n\n==============\nWINCONDITIONS\n==============\n\nno crate\n\n=======\nLEVELS\n=======\n \n \n(EASY)\n\nmessage DŪC·OMNIA·FIGŪRĀS·FORĀS\nmessage I·EX·XX·AETĀTIBUS\n\n(ok)\n(easy and not bad)\n#######p##\n#..#..####\n#1....,,,o\n#1..#.,,,o\n#2#...,,,o\n#.....####\n##########\n\nmessage II·EX·XX·AETĀTIBUS\n\n(ok)\n(Easyish)\n#######p##\n#.....####\n#.....####\n#1....####\n#1#22.,,,o\n#122..,,,o\n#.2...,,,o\n#.....####\n#.....####\n#.....####\n##########\n\nmessage III·EX·XX·AETĀTIBUS\n\n(ok)\n(kinda nice. not sooo strategic but i liked whne i got it)\n############p##\n#..........####\n#..........####\n#..........####\n#....#.....,,,o\n#..........,,,o\n#..........,,,o\n#..........####\n#...#......####\n#...1122222####\n###############\n\nmessage IV·EX·XX·AETĀTIBUS\n\n(chill)\n(decent)\n#######p##\n#.....####\n##....,,,o\n#.2.#.,,,o\n#.2...,,,o\n#..#11####\n##########\n\nmessage V·EX·XX·AETĀTIBUS\n\n(ok)\n(not so hard, and was fun to figure out)\n############p##\n#..........####\n#....#.....####\n#....122222####\n#......#...,,,o\n#..........,,,o\n#..........,,,o\n#.........#####\n#..........####\n#..........####\n###############\n\nmessage VI·EX·XX·AETĀTIBUS\n\n\n(easy enough, not bad)\n(also interesting shape!)\n############p##\n#..........####\n#.2..#.....,,,o\n#.22...#...,,,o\n#...11.....,,,o\n#...#1.....####\n###############\n\nmessage VII·EX·XX·AETĀTIBUS\n\n\n(late easy but fun)\n#######p##\n#...#.####\n#.....####\n#...2.####\n#...2.,,,o\n#...2.,,,o\n#..#..,,,o\n#.1...####\n#.11..####\n#.....####\n##########\n\nmessage VIII·EX·XX·AETĀTIBUS\n\n(decent + late-easy)\n(looks interesting/tractable, but I'm wrecked~)\n############p##\n#.....222..####\n#..1...#...,,,o\n#..1.....#.,,,o\n#...#......,,,o\n#..........####\n###############\n\nmessage IX·EX·XX·AETĀTIBUS\n\n(MEDIUM)\n\n\n(ok)\n(good fun level to analyse + solve)\n############p##\n#..........####\n##.........####\n#..........####\n#..........,,,o\n#...2......,,,o\n#..#2......,,,o\n#...2......####\n#..111111..####\n#.........#####\n###############\n\nmessage X·EX·XX·AETĀTIBUS\n\n(meh? take or leave?)\n(before i left 4)\n(not too hard. satisfying middle state?)\n############p##\n#....1111..####\n#.#...1..#.####\n#22........####\n#22.#......,,,o\n#.2........,,,o\n#..........,,,o\n#..........####\n#..........####\n#..........####\n###############\n\nmessage XI·EX·XX·AETĀTIBUS\n\n\n(fine)\n(ok but the second time was much harder)\n(not too hard and ok? / kinda fun!) \n#######p##\n#.22#.####\n#.22..####\n#.11..####\n#.1...,,,o\n#..#..,,,o\n#.....,,,o\n#.....####\n#.....####\n#.....####\n##########\n\nmessage XII·EX·XX·AETĀTIBUS\n\n(HARD)\n\n\n\n(dunno, felt a bit hard but without personality)\n(hardish but unsatisfying to solve when i got it)\n(pleasant)\n#######p##\n#.....####\n#...1.####\n#..21.####\n#..222,,,o\n#.#..2,,,o\n#.....,,,o\n#.....####\n#.....####\n#.....####\n##########\n\nmessage XIII·EX·XX·AETĀTIBUS\n\n\n(TOO HARD)\n\n(biut hard but ok)\n(no idea how to solve, but haven't tried too hard)\n############p##\n#..........####\n#.#........####\n#..........####\n#.......#..,,,o\n#........11,,,o\n#..........,,,o\n#..........####\n#2.........####\n#2....#....####\n###############\n\nmessage XIV·EX·XX·AETĀTIBUS\n\n\n\n(meh, could leave out - didn't solve it too intentionally and didn't care to remember why)\n(before i left #1)\n(too hard! don't wanna think - haven't solved)\n############p##\n#..........####\n#..........####\n#..........####\n##.........,,,o\n#..........,,,o\n#......1...,,,o\n#22...111..####\n#22.#..1...####\n#22.......#####\n###############\n\nmessage XV·EX·XX·AETĀTIBUS\n\n\n\n(meh ok? once i solved it I could set a memorable personal goal state ,but there's no reason to have expected that to be deducable)\n(before i left 3)\n(no patience for this)\n############p##\n##......2..####\n#...#.2222.####\n#.....2....####\n#..........,,,o\n#..........,,,o\n#..#....111,,,o\n#........11####\n#..........####\n#..........####\n###############\n\nmessage XVI·EX·XX·AETĀTIBUS\n\n\n(solved, but very lukewarm about it; not much memorable, just using heuristics to power through) \n(After i came back 1)\n(dunno)\n############p##\n#..........####\n#1#........####\n#11111.....####\n#11........,,,o\n#..........,,,o\n#...#......,,,o\n#......2...####\n#..#...2...####\n#......2...####\n###############\n\nmessage XVII·EX·XX·AETĀTIBUS\n\n(Very like another level, but maybe worse/more comlpicated)\n############p##\n#..........####\n#......#...####\n#..........####\n#..........,,,o\n#..........,,,o\n##.........,,,o\n#....11112.####\n#........2#####\n#........2.####\n###############\n\n\nmessage XVIII·EX·XX·AETĀTIBUS\n\n\n(decent, lots of fun manipulations if a bit aimless)\n(might be ok but brain feels sleepy)\n#######p##\n#..2..####\n##.2.#####\n#..2..####\n#.....,,,o\n#...#.,,,o\n#11#..,,,o\n#.....####\n##....####\n#.....####\n##########\n\nmessage XIX·EX·XX·AETĀTIBUS\n\n(solved.fine)\n(can't be bothered)\n(looks good, too tired to solve rn)\n#######p##\n#...#.####\n#.....####\n#.....####\n#22#..,,,o\n#21...,,,o\n#21...,,,o\n#.....####\n#.....####\n#.....####\n##########\n\nmessage XX·EX·XX·AETĀTIBUS\n\n\n(ok last level but a bit meh)\n(After i came back 2)\n(too complicated?)\n############p##\n#....#.....####\n#..........####\n#..........####\n#..111.#...,,,o\n#..2111....,,,o\n#.2221.....,,,o\n#22........####\n#..........####\n#..#.......####\n###############\n\nmessage OPTIMĒ·LŪSISTĪ!\n\n\n( (Easy, maybe too easy?) )\n( #######p## )\n( #.....#### )\n( #...11,,,o )\n( #.###1,,,o )\n( ##2#..,,,o )\n( #3....#### )\n( ########## )\n\n\n\n( (curious / p. nice even thoguh it has three pieces) )\n( #######p## )\n( ###3#.#### )\n( #.#3..,,,o )\n( #..1#.,,,o )\n( #..12.,,,o )\n( #..22.#### )\n( ########## )\n\n( (hard) )\n( #######p## )\n( #.....#### )\n( #..11##### )\n( #3.1..#### )\n( #3....,,,o )\n( #.....,,,o )\n( #2....,,,o )\n( #.#...#### )\n( #....##### )\n( #.....#### )\n( ########## )\n\n\n( #######p## )\n( #.....#### )\n( #..11##### )\n( #3.1..#### )\n( #3....,,,o )\n( #.....,,,o )\n( #2....,,,o )\n( #.#...#### )\n( #....##### )\n( #.....#### )\n( ########## )\n\n( #######p## )\n( #.....#### )\n( #.....,,,o )\n( #.....,,,o )\n( #.....,,,o )\n( #.....#### )\n( ########## )\n\n\n( #######p## )\n( #.....#### )\n( #.....#### )\n( #.....#### )\n( #.....,,,o )\n( #.....,,,o )\n( #.....,,,o )\n( #.....#### )\n( #.....#### )\n( #.....#### )\n( ########## )\n\n\n( ############p## )\n( #..........#### )\n( #..........,,,o )\n( #..........,,,o )\n( #..........,,,o )\n( #..........#### )\n( ############### )\n\n( ############p## )\n( #..........#### )\n( #..........#### )\n( #..........#### )\n( #..........,,,o )\n( #..........,,,o )\n( #..........,,,o )\n( #..........#### )\n( #..........#### )\n( #..........#### )\n( ############### )\n",[2,3,0,3,2,3,0,0,1,1,3,2,1,0,0,3,0,1,0,3,2],"background wall:0,background wall wall_highlight_right:1,1,1,1,1,1,1,1,1,0,background wall wall_highlight_bottom:2,background:3,3,3,\n3,3,3,3,3,3,background wall wall_highlight_top:4,2,3,3,3,3,3,3,3,\nbackground crate2 crate2_highlight_bottom crate2_highlight_left crate2_highlight_top crate2_highlight_topleft:5,3,4,2,3,3,3,3,3,3,background crate2 crate2_highlight_left crate2_highlight_top crate2_highlight_topleft:6,background crate2 crate2_highlight_bottom crate2_highlight_bottomright crate2_highlight_right:7,background wall wall_highlight_left wall_highlight_right wall_highlight_top wall_highlight_topleft:8,0,2,\n3,3,3,3,3,background crate2 crate2_highlight_left crate2_highlight_right crate2_highlight_top crate2_highlight_topleft:9,background crate2 crate2_highlight_bottom:10,3,3,4,0,background wall wall_highlight_bottom wall_highlight_bottomright wall_highlight_left wall_highlight_right:11,3,3,3,\n3,3,background crate2 crate2_highlight_bottom crate2_highlight_bottomright crate2_highlight_right crate2_highlight_top:12,3,3,4,2,3,3,3,3,3,3,3,3,\n3,4,2,3,3,background crate1 crate1_highlight_bottom crate1_highlight_left crate1_highlight_top crate1_highlight_topleft:13,background wall wall_highlight_bottom wall_highlight_bottomright wall_highlight_left wall_highlight_right wall_highlight_top wall_highlight_topleft:14,3,3,3,3,3,4,2,3,\n3,background crate1 crate1_highlight_top:15,background crate1 crate1_highlight_bottom crate1_highlight_left:16,3,3,3,3,3,4,2,3,3,background crate1 crate1_highlight_right crate1_highlight_top:17,background crate1:18,background crate1 crate1_highlight_bottom crate1_highlight_bottomright crate1_highlight_left crate1_highlight_right:19,\n3,3,3,3,4,2,3,3,3,background crate1 crate1_highlight_bottom crate1_highlight_bottomright crate1_highlight_right crate1_highlight_top:20,3,3,3,3,3,\n4,0,background wall wall_highlight_left:21,21,background wall wall_highlight_bottom wall_highlight_left:22,background nospawn:23,23,23,background wall wall_highlight_left wall_highlight_top wall_highlight_topleft:24,21,21,0,background player slidedown wall:25,0,0,\n2,23,23,23,4,0,0,0,0,0,0,2,background nospawn targetfg1:26,26,26,\n4,0,0,0,0,0,0,2,background nospawn target targetfg2:27,27,27,4,0,0,0,\n",40,"1627893759466.7617"] + "CŌDEX·LŪBRICUS", + ["title CŌDEX·LŪBRICUS\nauthor INCREPĀRE\nhomepage www.increpare.com\n\nagain_interval 0.1\n\nrun_rules_on_level_start\n\n\nbackground_color #523a2a\ntext_color #c19c4d\n\n( verbose_logging )\n\n(thanks to everyon on twitch for feedback + company as I was making this)\n========\nOBJECTS\n========\n\nBackground\n#ac763c #9b672f\n00000\n01010\n00000\n01010\n00000\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\ntargetfg1\n#ac763c #9b672f\n..111\n10101\n10101\n10101\n..111\n\n\ntargetfg2\n#9b672f #523a2a \n00111\n10101\n10101\n10101\n00111\n\nWall\n#8a6b3e #7d623a\n00000\n00000\n00100\n00000\n00000\n\nPlayer\n#8a6b3e #7d623a\n00000\n00000\n00100\n00000\n00000\n\nwall_highlight_top\n#c19c4d\n00000\n.....\n.....\n.....\n.....\n\nwall_highlight_bottom\n#523a2a\n.....\n.....\n.....\n.....\n00000\n\nwall_highlight_left\n#523a2a\n0....\n0....\n0....\n0....\n0....\n\nwall_highlight_right\n#c19c4d\n....0\n....0\n....0\n....0\n....0\n\n\nwall_highlight_topleft\n#8a6b3e\n0....\n.....\n.....\n.....\n.....\n\n\nwall_highlight_bottomright\n#8a6b3e\n.....\n.....\n.....\n.....\n....0\n\n\n(\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n)\nCrate1 1\n#9e564a \n00000\n00000\n00000\n00000\n00000\n\ncrate1_highlight_top\n#b76f63\n00000\n.....\n.....\n.....\n.....\n\ncrate1_highlight_bottom\n#743429\n.....\n.....\n.....\n.....\n00000\n\ncrate1_highlight_left\n#743429\n0....\n0....\n0....\n0....\n0....\n\ncrate1_highlight_right\n#b76f63\n....0\n....0\n....0\n....0\n....0\n\n\ncrate1_highlight_topleft\n#9e564a\n0....\n.....\n.....\n.....\n.....\n\n\ncrate1_highlight_bottomright\n#9e564a\n.....\n.....\n.....\n.....\n....0\n\n\nCrate2 2\n#4ca474 \n00000\n00000\n00000\n00000\n00000\n\n\n\ncrate2_highlight_top\n#6dd39c\n00000\n.....\n.....\n.....\n.....\n\ncrate2_highlight_bottom\n#2b6143\n.....\n.....\n.....\n.....\n00000\n\ncrate2_highlight_left\n#2b6143\n0....\n0....\n0....\n0....\n0....\n\ncrate2_highlight_right\n#6dd39c\n....0\n....0\n....0\n....0\n....0\n\n\ncrate2_highlight_topleft\n#4ca474\n0....\n.....\n.....\n.....\n.....\n\n\ncrate2_highlight_bottomright\n#4ca474\n.....\n.....\n.....\n.....\n....0\n\n\nslideright\ntransparent\n\nslidedown\ntransparent\n\nslideleft\ntransparent\n\nslideup\ntransparent\n\nnospawn ,\ntransparent\n\n\n=======\nLEGEND\n=======\n\n\ncrate = crate1 or crate2 \nslidetag = slideleft or slideup or slideright or slidedown\n\ncrate1_highlight = crate1_highlight_top or crate1_highlight_bottom or crate1_highlight_left or crate1_highlight_right or crate1_highlight_topleft or crate1_highlight_bottomright\n\ncrate2_highlight = crate2_highlight_top or crate2_highlight_bottom or crate2_highlight_left or crate2_highlight_right or crate2_highlight_topleft or crate2_highlight_bottomright\n\ncrate_highlight = crate1_highlight or crate2_highlight\n\nhighlight_left = wall_highlight_left or crate1_highlight_left or crate2_highlight_left\nhighlight_bottom = wall_highlight_bottom or crate1_highlight_bottom or crate2_highlight_bottom\n\n. = Background\n# = Wall\nP = Player and wall\n* = Crate1\n@ = Crate1 and Target\nO = Target and nospawn\nobs = wall or crate\n\n; = targetfg1 and nospawn\n: = targetfg2 and Target and nospawn\n\n=======\nSOUNDS\n=======\n\nsfx0 94813307 (push)\nsfx1 66342702 (delete)\nendlevel 61653300\nstartgame 5762303\nstartlevel 10793103\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\ntargetfg1, targetfg2\nPlayer\nWall, Crate\nwall_highlight_top,crate1_highlight_top,crate2_highlight_top\nwall_highlight_bottom,crate1_highlight_bottom,crate2_highlight_bottom\nwall_highlight_left,crate1_highlight_left,crate2_highlight_left\nwall_highlight_right,crate1_highlight_right,crate2_highlight_right\nwall_highlight_topleft,crate1_highlight_topleft,crate2_highlight_topleft\nwall_highlight_bottomright,crate1_highlight_bottomright,crate2_highlight_bottomright\nslidetag\nnospawn\n\n======\nRULES\n======\n\n\n\n\n[> player slidetag]->[> player]\n\n[ up player ] -> [ up player slideup ] again \n[ down player ] -> [ down player slidedown ] again \n[ left player ] -> [ left player slideleft ] again \n[ right player ] -> [ right player slideright ] again \n\n\n[ slideup ] [ crate ] -> [ slideup ] [ up crate ] again\n[ slidedown ] [ crate ] -> [ slidedown ] [ down crate ] again\n[ slideleft ] [ crate ] -> [ slideleft ] [ left crate ] again\n[ slideright ] [ crate ] -> [ slideright ] [ right crate ] again\n\n[ > crate | stationary obs ] -> [ crate | stationary obs ]\n+ [ moving crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ moving crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n\n [ target > crate ] -> [ target ] sfx1\n\n[moving player]->[player]\n\n(cosmetics start)\nlate [crate_highlight]->[]\n\n\nlate right [ no target | target ] -> [ targetfg1 | targetfg2 target]\n\nlate up [ wall | no wall ] -> [ wall wall_highlight_top |]\nlate down [ wall | no wall ] -> [ wall wall_highlight_bottom| ]\nlate left [ wall | no wall ] -> [ wall wall_highlight_left |]\nlate right [ wall | no wall ] -> [ wall wall_highlight_right |]\nlate [wall_highlight_top wall_highlight_left ] -> [wall_highlight_top wall_highlight_left wall_highlight_topleft]\nlate [wall_highlight_bottom wall_highlight_right ] -> [wall_highlight_bottom wall_highlight_right wall_highlight_bottomright]\n\nlate up [ crate1 | no crate1 ] -> [ crate1 crate1_highlight_top |]\nlate down [ crate1 | no crate1 ] -> [ crate1 crate1_highlight_bottom| ]\nlate left [ crate1 | no crate1 ] -> [ crate1 crate1_highlight_left |]\nlate right [ crate1 | no crate1 ] -> [ crate1 crate1_highlight_right |]\nlate [crate1_highlight_top crate1_highlight_left ] -> [crate1_highlight_top crate1_highlight_left crate1_highlight_topleft]\nlate [crate1_highlight_bottom crate1_highlight_right ] -> [crate1_highlight_bottom crate1_highlight_right crate1_highlight_bottomright]\n\nlate up [ crate2 | no crate2 ] -> [ crate2 crate2_highlight_top |]\nlate down [ crate2 | no crate2 ] -> [ crate2 crate2_highlight_bottom| ]\nlate left [ crate2 | no crate2 ] -> [ crate2 crate2_highlight_left |]\nlate right [ crate2 | no crate2 ] -> [ crate2 crate2_highlight_right |]\nlate [crate2_highlight_top crate2_highlight_left ] -> [crate2_highlight_top crate2_highlight_left crate2_highlight_topleft]\nlate [crate2_highlight_bottom crate2_highlight_right ] -> [crate2_highlight_bottom crate2_highlight_right crate2_highlight_bottomright]\n\n(cosmetics end)\n\n==============\nWINCONDITIONS\n==============\n\nno crate\n\n=======\nLEVELS\n=======\n \n \n(EASY)\n\nmessage DŪC·OMNIA·FIGŪRĀS·FORĀS\nmessage I·EX·XX·AETĀTIBUS\n\n(ok)\n(easy and not bad)\n#######p##\n#..#..####\n#1....,,,o\n#1..#.,,,o\n#2#...,,,o\n#.....####\n##########\n\nmessage II·EX·XX·AETĀTIBUS\n\n(ok)\n(Easyish)\n#######p##\n#.....####\n#.....####\n#1....####\n#1#22.,,,o\n#122..,,,o\n#.2...,,,o\n#.....####\n#.....####\n#.....####\n##########\n\nmessage III·EX·XX·AETĀTIBUS\n\n(ok)\n(kinda nice. not sooo strategic but i liked whne i got it)\n############p##\n#..........####\n#..........####\n#..........####\n#....#.....,,,o\n#..........,,,o\n#..........,,,o\n#..........####\n#...#......####\n#...1122222####\n###############\n\nmessage IV·EX·XX·AETĀTIBUS\n\n(chill)\n(decent)\n#######p##\n#.....####\n##....,,,o\n#.2.#.,,,o\n#.2...,,,o\n#..#11####\n##########\n\nmessage V·EX·XX·AETĀTIBUS\n\n(ok)\n(not so hard, and was fun to figure out)\n############p##\n#..........####\n#....#.....####\n#....122222####\n#......#...,,,o\n#..........,,,o\n#..........,,,o\n#.........#####\n#..........####\n#..........####\n###############\n\nmessage VI·EX·XX·AETĀTIBUS\n\n\n(easy enough, not bad)\n(also interesting shape!)\n############p##\n#..........####\n#.2..#.....,,,o\n#.22...#...,,,o\n#...11.....,,,o\n#...#1.....####\n###############\n\nmessage VII·EX·XX·AETĀTIBUS\n\n\n(late easy but fun)\n#######p##\n#...#.####\n#.....####\n#...2.####\n#...2.,,,o\n#...2.,,,o\n#..#..,,,o\n#.1...####\n#.11..####\n#.....####\n##########\n\nmessage VIII·EX·XX·AETĀTIBUS\n\n(decent + late-easy)\n(looks interesting/tractable, but I'm wrecked~)\n############p##\n#.....222..####\n#..1...#...,,,o\n#..1.....#.,,,o\n#...#......,,,o\n#..........####\n###############\n\nmessage IX·EX·XX·AETĀTIBUS\n\n(MEDIUM)\n\n\n(ok)\n(good fun level to analyse + solve)\n############p##\n#..........####\n##.........####\n#..........####\n#..........,,,o\n#...2......,,,o\n#..#2......,,,o\n#...2......####\n#..111111..####\n#.........#####\n###############\n\nmessage X·EX·XX·AETĀTIBUS\n\n(meh? take or leave?)\n(before i left 4)\n(not too hard. satisfying middle state?)\n############p##\n#....1111..####\n#.#...1..#.####\n#22........####\n#22.#......,,,o\n#.2........,,,o\n#..........,,,o\n#..........####\n#..........####\n#..........####\n###############\n\nmessage XI·EX·XX·AETĀTIBUS\n\n\n(fine)\n(ok but the second time was much harder)\n(not too hard and ok? / kinda fun!) \n#######p##\n#.22#.####\n#.22..####\n#.11..####\n#.1...,,,o\n#..#..,,,o\n#.....,,,o\n#.....####\n#.....####\n#.....####\n##########\n\nmessage XII·EX·XX·AETĀTIBUS\n\n(HARD)\n\n\n\n(dunno, felt a bit hard but without personality)\n(hardish but unsatisfying to solve when i got it)\n(pleasant)\n#######p##\n#.....####\n#...1.####\n#..21.####\n#..222,,,o\n#.#..2,,,o\n#.....,,,o\n#.....####\n#.....####\n#.....####\n##########\n\nmessage XIII·EX·XX·AETĀTIBUS\n\n\n(TOO HARD)\n\n(biut hard but ok)\n(no idea how to solve, but haven't tried too hard)\n############p##\n#..........####\n#.#........####\n#..........####\n#.......#..,,,o\n#........11,,,o\n#..........,,,o\n#..........####\n#2.........####\n#2....#....####\n###############\n\nmessage XIV·EX·XX·AETĀTIBUS\n\n\n\n(meh, could leave out - didn't solve it too intentionally and didn't care to remember why)\n(before i left #1)\n(too hard! don't wanna think - haven't solved)\n############p##\n#..........####\n#..........####\n#..........####\n##.........,,,o\n#..........,,,o\n#......1...,,,o\n#22...111..####\n#22.#..1...####\n#22.......#####\n###############\n\nmessage XV·EX·XX·AETĀTIBUS\n\n\n\n(meh ok? once i solved it I could set a memorable personal goal state ,but there's no reason to have expected that to be deducable)\n(before i left 3)\n(no patience for this)\n############p##\n##......2..####\n#...#.2222.####\n#.....2....####\n#..........,,,o\n#..........,,,o\n#..#....111,,,o\n#........11####\n#..........####\n#..........####\n###############\n\nmessage XVI·EX·XX·AETĀTIBUS\n\n\n(solved, but very lukewarm about it; not much memorable, just using heuristics to power through) \n(After i came back 1)\n(dunno)\n############p##\n#..........####\n#1#........####\n#11111.....####\n#11........,,,o\n#..........,,,o\n#...#......,,,o\n#......2...####\n#..#...2...####\n#......2...####\n###############\n\nmessage XVII·EX·XX·AETĀTIBUS\n\n(Very like another level, but maybe worse/more comlpicated)\n############p##\n#..........####\n#......#...####\n#..........####\n#..........,,,o\n#..........,,,o\n##.........,,,o\n#....11112.####\n#........2#####\n#........2.####\n###############\n\n\nmessage XVIII·EX·XX·AETĀTIBUS\n\n\n(decent, lots of fun manipulations if a bit aimless)\n(might be ok but brain feels sleepy)\n#######p##\n#..2..####\n##.2.#####\n#..2..####\n#.....,,,o\n#...#.,,,o\n#11#..,,,o\n#.....####\n##....####\n#.....####\n##########\n\nmessage XIX·EX·XX·AETĀTIBUS\n\n(solved.fine)\n(can't be bothered)\n(looks good, too tired to solve rn)\n#######p##\n#...#.####\n#.....####\n#.....####\n#22#..,,,o\n#21...,,,o\n#21...,,,o\n#.....####\n#.....####\n#.....####\n##########\n\nmessage XX·EX·XX·AETĀTIBUS\n\n\n(ok last level but a bit meh)\n(After i came back 2)\n(too complicated?)\n############p##\n#....#.....####\n#..........####\n#..........####\n#..111.#...,,,o\n#..2111....,,,o\n#.2221.....,,,o\n#22........####\n#..........####\n#..#.......####\n###############\n\nmessage OPTIMĒ·LŪSISTĪ!\n\n\n( (Easy, maybe too easy?) )\n( #######p## )\n( #.....#### )\n( #...11,,,o )\n( #.###1,,,o )\n( ##2#..,,,o )\n( #3....#### )\n( ########## )\n\n\n\n( (curious / p. nice even thoguh it has three pieces) )\n( #######p## )\n( ###3#.#### )\n( #.#3..,,,o )\n( #..1#.,,,o )\n( #..12.,,,o )\n( #..22.#### )\n( ########## )\n\n( (hard) )\n( #######p## )\n( #.....#### )\n( #..11##### )\n( #3.1..#### )\n( #3....,,,o )\n( #.....,,,o )\n( #2....,,,o )\n( #.#...#### )\n( #....##### )\n( #.....#### )\n( ########## )\n\n\n( #######p## )\n( #.....#### )\n( #..11##### )\n( #3.1..#### )\n( #3....,,,o )\n( #.....,,,o )\n( #2....,,,o )\n( #.#...#### )\n( #....##### )\n( #.....#### )\n( ########## )\n\n( #######p## )\n( #.....#### )\n( #.....,,,o )\n( #.....,,,o )\n( #.....,,,o )\n( #.....#### )\n( ########## )\n\n\n( #######p## )\n( #.....#### )\n( #.....#### )\n( #.....#### )\n( #.....,,,o )\n( #.....,,,o )\n( #.....,,,o )\n( #.....#### )\n( #.....#### )\n( #.....#### )\n( ########## )\n\n\n( ############p## )\n( #..........#### )\n( #..........,,,o )\n( #..........,,,o )\n( #..........,,,o )\n( #..........#### )\n( ############### )\n\n( ############p## )\n( #..........#### )\n( #..........#### )\n( #..........#### )\n( #..........,,,o )\n( #..........,,,o )\n( #..........,,,o )\n( #..........#### )\n( #..........#### )\n( #..........#### )\n( ############### )\n", [2, 3, 0, 3, 2, 3, 0, 0, 1, 1, 3, 2, 1, 0, 0, 3, 0, 1, 0, 3, 2], "background wall:0,background wall wall_highlight_right:1,1,1,1,1,1,1,1,1,0,background wall wall_highlight_bottom:2,background:3,3,3,\n3,3,3,3,3,3,background wall wall_highlight_top:4,2,3,3,3,3,3,3,3,\nbackground crate2 crate2_highlight_bottom crate2_highlight_left crate2_highlight_top crate2_highlight_topleft:5,3,4,2,3,3,3,3,3,3,background crate2 crate2_highlight_left crate2_highlight_top crate2_highlight_topleft:6,background crate2 crate2_highlight_bottom crate2_highlight_bottomright crate2_highlight_right:7,background wall wall_highlight_left wall_highlight_right wall_highlight_top wall_highlight_topleft:8,0,2,\n3,3,3,3,3,background crate2 crate2_highlight_left crate2_highlight_right crate2_highlight_top crate2_highlight_topleft:9,background crate2 crate2_highlight_bottom:10,3,3,4,0,background wall wall_highlight_bottom wall_highlight_bottomright wall_highlight_left wall_highlight_right:11,3,3,3,\n3,3,background crate2 crate2_highlight_bottom crate2_highlight_bottomright crate2_highlight_right crate2_highlight_top:12,3,3,4,2,3,3,3,3,3,3,3,3,\n3,4,2,3,3,background crate1 crate1_highlight_bottom crate1_highlight_left crate1_highlight_top crate1_highlight_topleft:13,background wall wall_highlight_bottom wall_highlight_bottomright wall_highlight_left wall_highlight_right wall_highlight_top wall_highlight_topleft:14,3,3,3,3,3,4,2,3,\n3,background crate1 crate1_highlight_top:15,background crate1 crate1_highlight_bottom crate1_highlight_left:16,3,3,3,3,3,4,2,3,3,background crate1 crate1_highlight_right crate1_highlight_top:17,background crate1:18,background crate1 crate1_highlight_bottom crate1_highlight_bottomright crate1_highlight_left crate1_highlight_right:19,\n3,3,3,3,4,2,3,3,3,background crate1 crate1_highlight_bottom crate1_highlight_bottomright crate1_highlight_right crate1_highlight_top:20,3,3,3,3,3,\n4,0,background wall wall_highlight_left:21,21,background wall wall_highlight_bottom wall_highlight_left:22,background nospawn:23,23,23,background wall wall_highlight_left wall_highlight_top wall_highlight_topleft:24,21,21,0,background player slidedown wall:25,0,0,\n2,23,23,23,4,0,0,0,0,0,0,2,background nospawn targetfg1:26,26,26,\n4,0,0,0,0,0,0,2,background nospawn target targetfg2:27,27,27,4,0,0,0,\n", 40, "1627893759466.7617"] ], [ - "Oh No My Dog Is About To Swallow A Piece Of Chocolate", - ["title Oh No My Dog Is About To Swallow A Piece Of Chocolate\nauthor increpare\nhomepage www.increpare.com\n\nkey_repeat_interval 0.1\nagain_interval 0.1\n\nbackground_color #1e432e\ntext_color #e06f8b\n\nnoaction\n\n( debug )\n( verbose_logging )\n\n\n\n========\nOBJECTS\n========\n\nBackground\n#345e46\n\n\nPlayer\n#31a2f2\n\ndogskin1\n#a46422\n00000\n00000\n00000\n00000\n00000\n\ndogskin2\n#a46422 #945718\n00000\n00000\n00010\n00010\n00010\n\ndogskin3\n#a46422 #392a16 #e3e2a8\n00000\n01121\n01112\n01111\n01111\n\ndogskin4\n#a46422\n.....\n....0\n...00\n..000\n.0000\n\ndogskin5\n#945718 #a46422 #e06f8b\n00001\n11111\n11111\n11111\n11112\n\ndogskin6\n#a46422 #e06f8b #e3e2a8\n00000\n00000\n00000\n11111\n.2.2.\n\ndogskin7\n#a46422 #e06f8b #e3e2a8\n00000\n00000\n00000\n11111\n2.2.2\n\ndogskin8\n#a46422 #392a16 #e06f8b #e3e2a8\n00011\n00011\n00000\n22222\n.3.3.\n\ndogskin9\n#a46422 #e06f8b\n00001\n00001\n00001\n00001\n00001\n\ndogskin10\n#a46422 #945718\n..000\n..000\n00000\n00000\n10000\n\ndogskin11\n#a46422 #e06f8b\n00001\n00000\n00000\n00000\n00000\n\ndogskin12\n#a42544 #e3e2a8 #e06f8b #a46422\n01010\n22222\n33333\n33333\n33333\n\ndogskin13\n#e3e2a8 #a42544 #e06f8b #a46422\n01010\n22222\n33333\n33333\n33333\n\ndogskin14\n#a42544 #e3e2a8 #e06f8b #a46422\n01.1.\n22222\n33333\n33333\n3333.\n\ndogskin15\n#945718 #a46422\n01111\n00111\n00111\n00011\n10011\n\ndogskin16\n#a46422 #945718\n00000\n00000\n00000\n00111\n01111\n\ndogskin17\n#a46422 #945718\n00000\n00000\n00000\n11111\n11111\n\ndogskin18\n#a46422 #945718\n00000\n00000\n00000\n11110\n11111\n\ndogskin19\n#a46422\n00000\n00000\n00000\n00000\n0000.\n\ndogskin20\n#a46422\n00000\n00000\n0000.\n0000.\n0000.\n\ndogskin21\n#a46422\n0000.\n0000.\n0000.\n0000.\n0000.\n\ndogskin22\n#a46422\n0000.\n0000.\n0000.\n00000\n00000\n\ndogskin23\n#a46422\n0000.\n0000.\n0000.\n.0000\n..000\n\ndeaddogskin\n#392a16 #a46422\n01110\n10101\n11011\n10101\n01110\n\ndogclosedskin1\n#a46422 #945718\n00000\n00000\n00000\n00000\n11111\n\ndogclosedskin2\n#a46422 #392a16 #945718\n00011\n00011\n00000\n00000\n22222\n\ndogclosedskin3\n#e06f8b #a46422\n00000\n11111\n11111\n11111\n11111\n\ndogclosedskin4\n#e06f8b #a46422\n00000\n11111\n11111\n11111\n1111.\n\n\nplayerskin1\n#4d0400 #973530 #d3abab #130800\n00000\n10101\n11110\n22211\n23211\n\nplayerskin2\n#4d0400 #973530\n0000.\n00000\n10000\n01000\n10000\n\nplayerskin3 (x2)\n#973530\n00000\n00000\n00000\n00000\n00000\n\nplayerskin4\n#973530 #4d0400\n00111\n01011\n00101\n00011\n0000.\n\nplayerskin5\n#800700 #973530 #db5fa0 #b13978\n.0000\n.1111\n22221\n33331\n.1111\n\nplayerskin7\n#973530\n0000.\n0000.\n0000.\n0000.\n0000.\n\nplayerskin8 (x2)\n#4a9022\n00000\n00000\n00000\n00000\n00000\n\nplayerskin9\n#4a9022 #367413\n00001\n00001\n00001\n00001\n00001\n\n(then 8,9,8)\n\nplayerskin10\n#973530 #800700\n00000\n11000\n00000\n11000\n00000\n\nplayerskin11\n#367413 #4a9022\n00001\n11111\n11111\n11111\n11111\n\nplayerskin12\n#4a9022 #367413\n00001\n00010\n00100\n00100\n01000\n\nplayerskin13\n#367413 #4a9022\n00000\n11111\n11111\n11111\n11111\n\nplayerskin14\n#367413 #4a9022\n01111\n11111\n11111\n11111\n11111\n\nplayerskin15 (x3)\n#31a2f2\n00000\n00000\n00000\n00000\n00000\n\nplayerskin16\n#31a2f2 #167ec8\n00001\n00011\n00111\n01111\n11111\n\n(15)\n\nplayerskin17\n#167ec8\n00000\n00000\n00000\n00000\n00000\n\n(15,17)\n\nplayerskin18\n#a44951 #930e19 #d3a1a5\n01010\n01010\n00000\n11111\n22222\n\nplayerskin19\n#a44951 #930e19 #d3a1a5\n00000\n00000\n00000\n11111\n22222\n\nplayerskin20\n#90383f #800711 #ac767b\n00000\n00000\n11111\n22222\n.....\n\nchocolateskin\n#5d2816 #8c5340 #1f0c06\n01111\n20001\n20001\n20001\n22220\n\n\nDogHead \npink\n\nDogNeck \nred\n\nDogBottom \npurple\n\ndumbbellskin1\n#2a425b #1b2632 #26384b\n.0.0.\n12020\n12020\n12020\n12020\n\ndumbbellskin2\n#1b2632 #26384b\n01010\n01010\n01010\n01010\n01010\n\ndumbbellskin3\n#1b2632 #26384b\n01010\n01010\n01010\n00000\n.0.0.\n\n\ndumbbellskin4\n#8b8b8b #c8c8c8 #777777\n00000\n11111\n00000\n22222\n22222\n\nchairskin1\n#8b4b09 #bc7a36 #a46422\n01111\n02222\n02222\n02222\n00000\n\nchairskin2\n#bc7a36 #a46422 #8b4b09\n0000.\n11110\n11101\n11101\n21101\n\nchairskin3 (x2)\n#8b4b09 #a46422 #bc7a36\n01121\n01121\n01121\n01121\n01121\n\nchairskin4\n#8b4b09 #a46422 #bc7a36\n01121\n01111\n01111\n01111\n00000\n\nchairskin5\n#bc7a36 #a46422 #8b4b09\n00000\n11111\n11111\n11111\n22222\n\nchairskin6\n#bc7a36 #a46422 #8b4b09\n00000\n11110\n11110\n11110\n22221\n\nchairskin7\n#8b4b09 #a46422 #bc7a36\n.0110\n.0111\n.0112\n.0112\n.0112\n\nchairskin8\n#8b4b09 #a46422 #bc7a36\n.0112\n.0112\n.0112\n.0112\n.0000\n\nchairskin9\n#8b4b09 #a46422 #bc7a36\n0110.\n0111.\n0112.\n0112.\n0112.\n\nchairskin10\n#8b4b09 #a46422 #bc7a36\n0112.\n0112.\n0112.\n0112.\n0000.\n\ntableskin1\n#bc7a36 #8b4b09 #a46422\n.0000\n12222\n12222\n12222\n12222\n\ntableskin2\n#bc7a36 #a46422\n00000\n11111\n11111\n11111\n11111\n\ntableskin3\n#bc7a36 #a46422\n0000.\n11100\n11110\n11110\n11110\n\ntableskin4\n#8b4b09 #a46422\n01111\n01111\n01111\n01111\n01111\n\ntableskin5\n#a46422\n00000\n00000\n00000\n00000\n00000\n\ntableskin6\n#a46422 #bc7a36\n00001\n00001\n00001\n00001\n00001\n\ntableskin7\n#8b4b09 #a46422\n01111\n01111\n01111\n00111\n.0000\n\ntableskin8\n#a46422 #8b4b09\n00000\n00000\n00000\n00000\n11111\n\ntableskin9\n#a46422 #bc7a36 #8b4b09\n00001\n00001\n00001\n00001\n2222.\n\ntableskin10\n#8b4b09 #a46422 #bc7a36\n00000\n00001\n00111\n00121\n00121\n\ntableskin11\n#8b4b09 #a46422 #bc7a36\n00121\n00121\n00121\n00121\n00121\n\ntableskin12\n#8b4b09 #a46422 #bc7a36\n00121\n00121\n00121\n00121\n.012.\n\nrightskin1\n#bc7a36 #a46422 #8b4b09\n.0000\n11111\n12111\n12111\n12111\n\nrightskin2\n#bc7a36 #a46422 #8b4b09\n00000\n11110\n11110\n11110\n22211\n\n\nrightskin3\n#a46422 #8b4b09 #bc7a36\n01001\n01000\n01002\n01002\n01002\n\n\nrightskin4\n#a46422 #8b4b09 #bc7a36\n01002\n01002\n01002\n01002\n01002\n\n\n\nrightskin5\n#a46422 #bc7a36 #8b4b09\n01111\n20000\n20000\n20000\n22222\n\n\n\nrightskin6\n#a46422 #8b4b09 #bc7a36\n01002\n00002\n00002\n00002\n11111\n\n\n\n\n\n\n\nDogTongue \n#a42544\n.....\n.....\n.....\n.....\n0....\n\n\n\nboundary\n#846610\n\n\n\npushable \n#24c1ca #0d9ea6\n00000\n01110\n01110\n01110\n00000\n\npushable_connection_up\nyellow\n..0..\n.....\n.....\n.....\n.....\n\npushable_connection_down\nyellow\n.....\n.....\n.....\n.....\n..0..\n\npushable_connection_left\nyellow\n.....\n.....\n0....\n.....\n.....\n\npushable_connection_right\nyellow\n.....\n.....\n....0\n.....\n.....\n\nchocolate\npink\n0....\n.....\n.....\n.....\n.....\n\ndogstretch \n#0000ff\n.....\n.0...\n.....\n.....\n.....\n\ncantcontract\n#ff0000\n.....\n.....\n.....\n...0.\n.....\n\ncancontracttoken\ntransparent\n\n\n=======\nLEGEND\n=======\n\n\nobstacle = pushable or doghead or dogneck or dogbottom or boundary or player\npushable_connection = pushable_connection_up or pushable_connection_down or pushable_connection_left or pushable_connection_right\n\ndogblock = DogHead or DogNeck or DogBottom\ndogblock_noneck = DogHead or DogNeck or DogBottom\n\npushable_piece_nodog = pushable \npushing_piece_nodog = pushable or Player\n\npushable_piece = pushable or dogblock\npushing_piece = pushable or dogblock or Player\n\n\nq = DogHead\na = DogNeck\nz = DogBottom \nd = DogTongue\nw = boundary\n\n( 1 = pushable and chocolate )\n\n2 = pushable and pushable_connection_up\n3 = pushable and pushable_connection_down\n4 = pushable and pushable_connection_left\n5 = pushable and pushable_connection_right\n\n6 = pushable and pushable_connection_up and pushable_connection_down\n7 = pushable and pushable_connection_up and pushable_connection_left\n8 = pushable and pushable_connection_up and pushable_connection_right\n\n9 = pushable and pushable_connection_down and pushable_connection_left\n0 = pushable and pushable_connection_down and pushable_connection_right\n\n- = pushable and pushable_connection_left and pushable_connection_right\n\n\n+ = pushable and pushable_connection_up and pushable_connection_down and pushable_connection_left \n! = pushable and pushable_connection_up and pushable_connection_down and pushable_connection_right\n\" = pushable and pushable_connection_up and pushable_connection_left and pushable_connection_right\n£ = pushable and pushable_connection_down and pushable_connection_left and pushable_connection_right\n\n$ = pushable and pushable_connection_up and pushable_connection_down and pushable_connection_left and pushable_connection_right\n\n. = Background\nP = Player\n\nα = player and playerskin1\nβ = player and playerskin2\nγ = player and playerskin3\nδ = player and playerskin4\nε = player and playerskin5\nζ = player and playerskin7\nη = player and playerskin8\nθ = player and playerskin9\nι = player and playerskin10\nκ = player and playerskin11\nλ = player and playerskin12\nμ = player and playerskin13\nν = player and playerskin14\nξ = player and playerskin15\nο = player and playerskin16\nπ = player and playerskin17\nρ = player and playerskin18\nσ = player and playerskin19\nτ = player and playerskin20\n\nplayerskins = playerskin1 or playerskin2 or playerskin3 or playerskin4 or playerskin5 or playerskin7 or playerskin8 or playerskin9 or playerskin10 or playerskin11 or playerskin12 or playerskin13 or playerskin14 or playerskin15 or playerskin16 or playerskin17 or playerskin18 or playerskin19 or playerskin20\n\ndumbbellskins = dumbbellskin1 or dumbbellskin2 or dumbbellskin3 or dumbbellskin4\n\nchairskins = chairskin1 or chairskin2 or chairskin3 or chairskin4 or chairskin5 or chairskin6 or chairskin7 or chairskin8 or chairskin9 or chairskin10\n\ntableskins = tableskin1 or tableskin2 or tableskin3 or tableskin4 or tableskin5 or tableskin6 or tableskin7 or tableskin8 or tableskin9 or tableskin10 or tableskin11 or tableskin12\n\nrightskins = rightskin1 or rightskin2 or rightskin3 or rightskin4 or rightskin5 or rightskin6\n\ndogskins = dogskin1 or dogskin2 or dogskin3 or dogskin4 or dogskin5 or dogskin6 or dogskin7 or dogskin8 or dogskin9 or dogskin10 or dogskin11 or dogskin12 or dogskin13 or dogskin14 or dogskin15 or dogskin16 or dogskin17 or dogskin18 or dogskin19 or dogskin20 or dogskin21 or dogskin22 or dogskin23 or deaddogskin or dogclosedskin1 or dogclosedskin2 or dogclosedskin3 or dogclosedskin4\n\n\nskins = playerskins or dumbbellskins or chairskins or tableskins or rightskins or chocolateskin or dogskins\n\n\nυ = dumbbellskin1 and pushable and pushable_connection_down\nφ = dumbbellskin1 and pushable and pushable_connection_down\nχ = dumbbellskin2 and pushable and pushable_connection_up and pushable_connection_right and pushable_connection_down\nψ = dumbbellskin4 and pushable and pushable_connection_left and pushable_connection_right\nω = dumbbellskin4 and pushable and pushable_connection_left and pushable_connection_right\nА = dumbbellskin2 and pushable and pushable_connection_up and pushable_connection_left and pushable_connection_down\nБ = dumbbellskin3 and pushable and pushable_connection_up\nВ = dumbbellskin3 and pushable and pushable_connection_up\n\nГ = chairskin1 and pushable and pushable_connection_right\nД = chairskin2 and pushable and pushable_connection_left and pushable_connection_down\nЕ = chairskin3 and pushable and pushable_connection_up and pushable_connection_down\nЁ = chairskin4 and pushable and pushable_connection_up and pushable_connection_down and pushable_connection_right\nЖ = chairskin5 and pushable and pushable_connection_left and pushable_connection_right\nЗ = chairskin6 and pushable and pushable_connection_left and pushable_connection_down\nИ = chairskin7 and pushable and pushable_connection_up and pushable_connection_down\nЙ = chairskin9 and pushable and pushable_connection_up and pushable_connection_down\nК = chairskin8 and pushable and pushable_connection_up \nЛ = chairskin10 and pushable and pushable_connection_up \n\nЩ = rightskin1 and pushable and pushable_connection_down and pushable_connection_right\nЪ = rightskin2 and pushable and pushable_connection_left\nЫ = rightskin3 and pushable and pushable_connection_up and pushable_connection_down\nЬ = rightskin4 and pushable and pushable_connection_up and pushable_connection_down\nЭ = rightskin5 and pushable and pushable_connection_right and pushable_connection_down\nЮ = rightskin6 and pushable and pushable_connection_left and pushable_connection_down and pushable_connection_up\n(ТУФХЦЧ)\n\nМ = tableskin1 and pushable and pushable_connection_down and pushable_connection_right\nН = tableskin2 and pushable and pushable_connection_left and pushable_connection_down and pushable_connection_right\nО = tableskin3 and pushable and pushable_connection_down and pushable_connection_left\nП = tableskin4 and pushable and pushable_connection_down and pushable_connection_right and pushable_connection_up\nР = tableskin5 and pushable and pushable_connection_down and pushable_connection_right and pushable_connection_up and pushable_connection_left\nС = tableskin6 and pushable and pushable_connection_down and pushable_connection_left and pushable_connection_up\nТ = tableskin7 and pushable and pushable_connection_up and pushable_connection_right\nУ = tableskin8 and pushable and pushable_connection_up and pushable_connection_right and pushable_connection_left and pushable_connection_down\nФ = tableskin9 and pushable and pushable_connection_up and pushable_connection_left\nХ = tableskin10 and pushable and pushable_connection_down and pushable_connection_up\nЦ = tableskin11 and pushable and pushable_connection_down and pushable_connection_up\nЧ = tableskin12 and pushable and pushable_connection_up\nШ = tableskin8 and pushable and pushable_connection_up and pushable_connection_right and pushable_connection_left\n\nЯ = chocolateskin and DogBottom and chocolate\n\n\n丁 = DogHead and dogskin1\n上 = doghead and dogskin2\n下 = doghead and dogskin3\n不 = doghead and dogskin4\n且 = doghead and dogskin5\n世 = doghead and dogskin6\n丙 = doghead and dogskin7\n並 = doghead and dogskin8\n中 = DogNeck and dogskin1\n丸 = DogNeck and dogskin9\n\n主 = DogBottom and dogskin10\n乂 = DogBottom and dogskin1\n乃 = DogBottom and dogskin11\n之 = DogBottom and dogskin12\n乎 = DogBottom and dogskin13\n九 = DogBottom and dogskin14\n也 = DogBottom and dogskin15\n事 = DogBottom and dogskin16\n二 = DogBottom and dogskin17\n五 = DogBottom and dogskin18\n亡 = DogBottom and dogskin19\n交 = DogBottom and dogskin20\n亦 = DogBottom and dogskin21\n京 = DogBottom and dogskin22\n亭 = DogBottom and dogskin23\n\n(丁上下不且世丙並\n中丸\n主乂乃之乎九也事二五亡交亦京亭人)\n\n\n(\n仕仙令以仰任伊伏伐伯似位佐何作佳使來侈侍俊俗俠信修俯俶倫假傅傍催傳傷傾僚儀優兄充光克兒入內兩八公兵其具典再冠冥冬凋凌出分切刑列初別利刻則劍力功助劭勉勒動務勞勸勿化匡匪千升卑南即卿厥厭去及友叔取受叛口古可史右合吉吊同名君吹呂周命和咸哉唐唱問啟善嗣嘉嘗嘯器嚴囊四回因困國園圓圖土在地坐垂垢垣城執基堂堅場塞增墨墳壁士壹夏夕外夙多夜大天夫奄奉奏女好如妍妙妾始姑委姜姿威婦嫡子孔字存孝孟孤孰學宅宇守安宗官宙定宜宣宮宰宴家容宿寂密富寐寒寓寔察寡寥實寧審寫寵寶寸封射將尊尋對少尹尺居履屬岡岩岫岱岳嵇川州工左巧巨己巾市布帝師席帳帶帷常平年并幸幾床府庭庶康庸廉廊廟廣建弁弊引弗弟弦弱張形彩彼往徊律後得徘從御微德心必忘忠念思性恃恐恥恬恭息悅悚悲情惟惠惡想惶惻意愚愛感慈慎慕慮慶懷懸懼戎成我戚戶房所扇手才扶承投抗抽招拜拱持指振捕接推搖摩操據攝收攸改政故效敕敢散敦敬文斡斬斯新方於施既日旦昃昆明易星映是時晉晚晝晦景暉暑曜曠曦曰曲更書最會月有服朗朝木本李杜束杯東杳杷松枇林果枝染柰根桐桓條梧棠植楚業極楹榮槐樂樓機橫次欣欲歌歡止正此步武歲歷歸殆殊殷殿毀母每比毛民氣水永求池沉沙沛河治法泰洛洞洪流浮浴海涇涼淑淡深淵清渠渭游湯溪溫滅滿漆漠漢潔潛澄濟火為烝烹焉無煌煒照煩熟熱營燭爵父牆牒牧物特犢猶猷獨獲獸玄率玉王玩珍珠理琴瑟璇璣璧環甘甚生用田甲男畏畝畫異當疏疑疲登發白百的皆皇皋盈益盛盜盟盡盤目直相省真眠眺睦瞻矜矢知矩短矯石碑碣磨磻祀祗祜神祭祿禍福禪禮禹禽秉秋秦移稅稱稷稼稽稿積穡空立竟章竭端競竹笑笙筆等筍答策筵箋箱箴節篤簡籍精糟糠糧約紈納紙紛素紡索紫累終組結絜給絲絳綏經維綺綿緣縣縻績續纓罔罪羅羊羌美羔群義羽習翔翠翦翳老者而耳耽聆聖聚聞聲職聽肆肥育背能腸膳臣臨自致與興舉舊舍良色芥若英茂草荒荷莊莫莽菜華萬落葉蒙蓋薄薪藍藏藝蘭處虛虞號虢虧蚤行衡衣表被裳製西要覆見規親觀解觴言訓設詠詩詳誅誌誚語誠誡說誰調談論諸謂謙謝謹譏譽讀讓谷豈象豫貌貞貢貴貽資賊賓賞賢賤賴贊赤起超趙足跡路踐躍身躬車軍軻載輕輦輶轂轉辨辭辰辱農近退逍逐途通造連逸逼運過遐道達遙遠遣適遵邇邈邑邙郡都酒釋重野量金釣鈞銀銘鐘鑒長門閏閒闕阜阮阿陋陛陟陪陰陳陶陽階隨隱隸雁雅集雞離難雨雲霄霜露霸靈青靜非靡面鞠韓音頓頗領願顙顛顧顰飄飛食飫飯飽養餐餘饑首馨馳駒駕駭騰騾驅驚驢驤骸體高鬱魄魏魚鱗鳥鳳鳴鶤麗黃黍黎默黜鼓龍\n)\n=======\nSOUNDS\n=======\n\npushable move 72882707\ndogblock move 25942907\nstartgame 38015704\nendlevel 9541904\n\n\n================\nCOLLISIONLAYERS\n================\n\npushable_connection_up\npushable_connection_down\npushable_connection_left\npushable_connection_right\nchocolate\ndogstretch\ncantcontract\ncancontracttoken\n\nPlayer, DogHead, DogNeck,DogBottom\n\npushable\n\nBackground\nboundary\n\nDogTongue\n(skins layer)\n\n\nskins\n\n\n======\nRULES\n======\n\n[player]->again\n\n\n(replace chocolate with pushable if moving horizontally)\n[ horizontal player ] [ chocolate chocolateskin DogBottom ] -> [ horizontal player ] [ chocolate chocolateskin pushable ]\n\n(replace chocolate with pushable if no dogbody below)\n\ndown [ chocolate chocolateskin DogBottom | no dogskin12 no dogskin13 no dogskin14 ] -> [ chocolate chocolateskin pushable | ]\n\n(DOG HEAD CONTRACT)\n\n(only contracts when player's not moving, and they're not in touch shouldn't be necessary but just in case)\n[ > player ] [dogblock ] -> [ > player ] [ dogblock cantcontract ]\ndown [ DogHead | DogBottom ] [ dogblock ] -> [ DogHead | DogBottom ] [dogblock cantcontract]\ndown [DogHead | pushable no chocolate ] -> [ doghead cantcontract | pushable ]\n[ DogHead cantcontract ] [ DogHead no cantcontract ] -> [DogHead cantcontract ] [DogHead cantcontract ]\n\nup [ DogBottom | pushable no chocolate ] -> [ DogBottom cantcontract | pushable ]\n\n\n[ DogBottom cantcontract ] [ DogBottom no cantcontract ] -> [DogBottom cantcontract ] [DogBottom cantcontract ]\n[ DogHead no cantcontract ] [ DogHead cantcontract ] -> [ DogHead cantcontract ] [ DogHead cantcontract ]\n\n(parity problem when head + body try to clamp shut when thyey're 1 distance away from eachother - give the head right of way)\ndown [ doghead no cantcontract | no dogblock | DogBottom no cantcontract ] -> [ doghead | | DogBottom cantcontract ] \n\n(and you neeed to repropagate)\n[ DogBottom cantcontract ] [ DogBottom no cantcontract ] -> [DogBottom cantcontract ] [DogBottom cantcontract ]\n[ DogHead no cantcontract ] [ DogHead cantcontract ] -> [ DogHead cantcontract ] [ DogHead cantcontract ]\n\n\n[DogHead no cantcontract ] -> [down DogHead ]\n[DogBottom no cantcontract ] -> [up DogBottom ]\n\ndown [ down doghead | DogNeck ] -> [ down doghead | no dogskins ]\nup [ up DogBottom | DogNeck ] -> [ up DogBottom | no dogskins ]\n\nlate [ cantcontract ] -> [ ]\n\n(SETUP FOR CONNECTIONS)\n( right [ pushable | pushable ] -> [ pushable pushable_connection_right | pushable pushable_connection_left ] )\n( down [ pushable | pushable ] -> [ pushable pushable_connection_down | pushable pushable_connection_up ] )\n\n\n(propagate movements)\n\n(propagate movements first ignoring dog)\n\n[ > pushing_piece_nodog | pushable_piece_nodog ] -> [ > pushing_piece_nodog | > pushable_piece_nodog ]\n+ up [ moving pushable pushable_connection_up | pushable pushable_connection_down ] -> [ moving pushable moving pushable_connection_up | moving pushable moving pushable_connection_down ]\n+ down [ moving pushable pushable_connection_down | pushable pushable_connection_up ] -> [ moving pushable moving pushable_connection_down | moving pushable moving pushable_connection_up ]\n+ left [ moving pushable pushable_connection_left | pushable pushable_connection_right ] -> [ moving pushable moving pushable_connection_left | moving pushable moving pushable_connection_right ]\n+ right [ moving pushable pushable_connection_right | pushable pushable_connection_left ] -> [ moving pushable moving pushable_connection_right | moving pushable moving pushable_connection_left ]\n\nvertical [> pushing_piece_nodog | DogBottom ] [ > pushing_piece_nodog | DogHead ] -> [> pushing_piece_nodog | > DogBottom ] [ > pushing_piece_nodog | > DogHead ]\n[moving DogHead ] [stationary DogHead ] -> [moving DogHead ] [moving DogHead]\n[moving DogBottom ] [stationary DogBottom ] -> [moving DogBottom ] [moving DogBottom]\n( allow to push chocolate into mouth)\n\n( right [ DogNeck | no obstacle | chocolateskin chocolate DogBottom | < pushing_piece ] -> [ DogNeck | chocolateskin chocolate DogBottom | | < pushable ] )\n\n(DOG NECK STRETCH)\n\n(either top is held stationary and bottom is moved down)\n(stationary pushable vs stationary obstacle because level boundary geometry can't access inside of mouth/small of back)\ndown [ stationary DogHead | stationary pushable no chocolate ] [ > pushing_piece_nodog | DogBottom ] -> [ dogstretch DogHead | pushable] [ > pushing_piece_nodog | > DogBottom ]\n\n\n(or bottom is held stationary and top is movedup)\ndown [ stationary pushable no chocolate | stationary DogBottom ] [ DogHead | < pushing_piece_nodog ] -> [ stationary pushable | dogstretch DogBottom ] [ < DogHead | < pushing_piece_nodog ]\n\n\n[ DogHead dogstretch | DogHead no dogstretch ] -> [ DogHead dogstretch | DogHead dogstretch ]\n[ DogBottom dogstretch | DogBottom no dogstretch ] -> [ DogBottom dogstretch | DogBottom dogstretch ]\n\n(DOG NECK SQEEZE)\n\n\n\n(either top is held stationary and bottom is moved up)\ndown [ stationary obstacle | stationary DogHead ] [ DogBottom | < pushing_piece_nodog] -> [ obstacle | DogHead cancontracttoken] [ < DogBottom | < pushing_piece_nodog ]\n\n\n(or bottom is held stationary and top is moved down)\ndown [ stationary DogBottom | stationary obstacle ] [ > pushing_piece_nodog | DogHead] -> [ DogBottom cancontracttoken | obstacle ] [ > pushing_piece_nodog | DogHead ]\n\nrandom right [cancontracttoken] [DogNeck | DogNeck ] -> [] [ no skins|no skins]\n[cancontracttoken]->[]\n\n(DOG NECK COMPRESS)\n\n[ > pushing_piece | pushable_piece no dogstretch ] -> [ > pushing_piece | > pushable_piece ]\n+ up [ moving pushable pushable_connection_up | pushable pushable_connection_down ] -> [ moving pushable moving pushable_connection_up | moving pushable moving pushable_connection_down ]\n+ down [ moving pushable pushable_connection_down | pushable pushable_connection_up ] -> [ moving pushable moving pushable_connection_down | moving pushable moving pushable_connection_up ]\n+ left [ moving pushable pushable_connection_left | pushable pushable_connection_right ] -> [ moving pushable moving pushable_connection_left | moving pushable moving pushable_connection_right ]\n+ right [ moving pushable pushable_connection_right | pushable pushable_connection_left ] -> [ moving pushable moving pushable_connection_right | moving pushable moving pushable_connection_left ]\n+ [ moving dogblock no dogstretch | stationary dogblock no dogstretch ] -> [ moving dogblock | moving dogblock ]\n\n[ > pushing_piece | stationary obstacle ] -> cancel\n\nup [ moving dogbottom | DogTongue ] -> [ moving DogBottom | moving DogTongue ]\nright [ pushable chocolate chocolateskin | moving DogTongue ] -> [moving pushable moving chocolate moving chocolateskin | moving DogTongue ]\n\nright [ stationary pushable | < pushable < chocolate < chocolateskin ] -> [ pushable | pushable chocolate chocolateskin ]\n\n[ moving DogBottom chocolate chocolateskin ] -> [ moving DogBottom moving chocolate moving chocolateskin]\n[ moving pushable chocolate chocolateskin ] -> [ moving pushable moving chocolate moving chocolateskin]\n\n\n[ moving pushable_piece skins ] -> [ moving pushable_piece moving skins ]\n[ moving Player playerskins ] -> [ moving Player moving playerskins ]\n\n(LATE)\n\nlate down [ dogskin4 | no DogNeck no obstacle ] [ dogskin5 | no DogNeck no obstacle ] -> [ dogskin4 | DogNeck ] [dogskin5 | DogNeck ]\n\n\nlate vertical [ DogNeck | no DogHead no DogBottom ] -> [ DogNeck | DogNeck ]\nlate right [ dogneck no dogskins | dogneck no dogskins ] -> [ 中 | 丸 ]\n(replace chocolate pushable with dogbottom)\n\nlate [chocolate chocolateskin pushable] -> [chocolate chocolateskin DogBottom]\n\n\n(move to start for visualisation purposes)\nlate [ dogstretch ] -> [ ]\n\n\n==============\nWINCONDITIONS\n==============\nno DogNeck\nno deaddogskin\n\n=======\nLEVELS\n=======\n\nmessage NO DON'T YOU DARE SWALLOW THAT\n\n\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........υ..υ.υ..υ.......................................w\nw........χψψа.χψψа.......................................w\nw........б..б.б..б.......................................w\nw..................................гд..............щъ....w\nw...................................е....мнннно....ы.....w\nw........................αβ.........е....пррррс....ь.....w\nw.......................γγδ.........ёжз..пррррс..эжю.....w\nw........................εζ.........и.й..пррррс..и.й.....w\nw........................ηη.........к.л..пррррс..к.л.....w\nw.............丁上下........θη..............пррррс..........w\nw.............不且世丙並......θη..............пррррс..........w\nw.............中丸.яd.....ικλ..............пррррс..........w\nw.........主乂乂乂乂乃之乎九......μν........гд....пррррс....щъ....w\nw.........也事二五乂亡.........ξο.........е....пррррс....ы.....w\nw.........交...亦..........ξπ.........е....пррррс....ь.....w\nw.........京...亭..........ξπ.........ёжз..тушшуф..эжю.....w\nw........................ξπ.........и.й...х..х...и.й.....w\nw.......................ρστ.........к.л...ц..ц...к.л.....w\nw.........................................ц..ц...........w\nw.........................................ч..ч...........w\nw........................................................w\nw........................................................w\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n\nmessage YOU ARE SUCH A SHITEHAWK OF A DOG\n\n(\n\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nw..........................гд............................w\nw...........................е............................w\nw...........................е............................w\nw...........................ёжз..........................w\nw...........................и.й..........................w\nw...........................к.л..........................w\nw.............................щъ.........................w\nw.............................ы..........................w\nw.............................ь..........................w\nw...........................эжю..........................w\nw....υ..υ...................и.й..........................w\nw....χψψа...................к.л..........................w\nw....б..б................................................w\nw........................................................w\nw..............αβ........................................w\nw.............γγδ........................................w\nw..............εζ........................................w\nw..............ηη........................................w\nw..............θη........................мнннно..........w\nw..............θη........................пррррс..........w\nw.............ικλ........................пррррс..........w\nw..............μν........................пррррс..........w\nw..............ξο........................пррррс..........w\nw..............ξπ........................пррррс..........w\nw..............ξπ........................пррррс..........w\nw..............ξπ........................пррррс..........w\nw............яρστ..................гд....пррррс....щъ....w\nw........丁上下........................е....пррррс....ы.....w\nw........不且世丙並......................е....пррррс....ь.....w\nw........中丸υ..υ.....................ёжз..тушшуф..эжю.....w\nw........中丸χψψа.....................и.й...х..х...и.й.....w\nw........中丸б.dб.....................к.л...ц..ц...к.л.....w\nw....主乂乂乂乂乃之乎九............................ц..ц...........w\nw....也事二五乂亡...............................ч..ч...........w\nw....交...亦...............................................w\nw....京...亭...............................................w\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n\n\n\n\n\n(move left and dog has bad time)\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nw..........................гд............................w\nw...........................е............................w\nw...........................е............................w\nw...........................ёжз..........................w\nw...........................и.й..........................w\nw...........................к.л..........................w\nw.............................щъ.........................w\nw.............................ы..........................w\nw.............................ь..........................w\nw...........................эжю..........................w\nw....υ..υ...................и.й..........................w\nw....χψψа...................к.л..........................w\nw....б..б................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw............αβ..........................................w\nw...........γγδ..........................................w\nw............εζ..........................мнннно..........w\nw............ηη..........................пррррс..........w\nw............θη..........................пррррс..........w\nw............θη..........................пррррс..........w\nw...........ικλ..........................пррррс..........w\nw............μν..........................пррррс..........w\nw............ξο..........................пррррс..........w\nw............ξπ..........................пррррс..........w\nw...........яξπ....................гд....пррррс....щъ....w\nw......丁上下...ξπ.....................е....пррррс....ы.....w\nw......不且世丙並ρστ.....................е....пррррс....ь.....w\nw......中丸..υ..υ.....................ёжз..тушшуф..эжю.....w\nw......中丸..χψψа.....................и.й...х..х...и.й.....w\nw......中丸..б..б.....................к.л...ц..ц...к.л.....w\nw..主乂乂乂乂乃之乎九..............................ц..ц...........w\nw..也事二五乂亡.................................ч..ч...........w\nw..交...亦.................................................w\nw..京...亭.................................................w\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n\n\n\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nw......丁上下.................гд............................w\nw......不且世丙並................е............................w\nw......中丸υ.яυ...............е............................w\nw......中丸χψψа..αβ...........ёжз..........................w\nw......中丸б..б.γγδ...........и.й..........................w\nw......中丸......εζ...........к.л..........................w\nw......中丸......ηη........................................w\nw..υ..υ中丸......θη........................................w\nw..χψψа中丸....щъθη........................................w\nw..б..б中丸....ыικλ........................................w\nw..主乂乂乂乂乃之乎九.ь.μν........................................w\nw..也事二五乂亡..эжю.ξο........................................w\nw..交...亦...и.й.ξπ........................................w\nw..京...亭...к.л.ξπ........................................w\nw..............ξπ........................................w\nw.............ρστ........................................w\nw........................................................w\nw........................................................w\nw........................................мнннно..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw..................................гд....пррррс....щъ....w\nw...................................е....пррррс....ы.....w\nw...................................е....пррррс....ь.....w\nw...................................ёжз..тушшуф..эжю.....w\nw...................................и.й...х..х...и.й.....w\nw...................................к.л...ц..ц...к.л.....w\nw.........................................ц..ц...........w\nw.........................................ч..ч...........w\nw........................................................w\nw........................................................w\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n\n)\n",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,2,2,2,2,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1],"background boundary: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,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background dumbbellskin1 pushable pushable_connection_down:2,background dumbbellskin2 pushable pushable_connection_down pushable_connection_right pushable_connection_up:3,background dumbbellskin3 pushable pushable_connection_up:4,background dogbottom dogskin10:5,background dogbottom dogskin15:6,background dogbottom dogskin20:7,background dogbottom dogskin22:8,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,background dumbbellskin4 pushable pushable_connection_left pushable_connection_right:9,1,background dogbottom dogskin1:10,background dogbottom dogskin16:11,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,1,10,background dogbottom dogskin17:12,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,background dumbbellskin2 pushable pushable_connection_down pushable_connection_left pushable_connection_up:13,4,10,background dogbottom dogskin18:14,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,background doghead dogskin1:15,background doghead dogskin4:16,background dogneck dogskin1:17,17,17,17,17,17,17,17,17,17,\n17,17,10,10,background dogbottom dogskin21:18,background dogbottom dogskin23:19,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,background doghead dogskin2:20,background doghead dogskin5:21,background dogneck dogskin9:22,22,22,22,22,22,22,22,22,22,22,22,background dogbottom dogskin11:23,background dogbottom dogskin19:24,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,background doghead dogskin3:25,background doghead dogskin6:26,1,1,1,1,1,1,1,1,1,1,1,1,background dogbottom dogskin12:27,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background doghead dogskin7:28,1,1,1,1,1,1,1,1,1,1,1,background chocolate chocolateskin dogbottom:29,\nbackground dogbottom dogskin13:30,1,1,1,1,1,1,1,1,0,0,1,1,1,1,background player playerskin3:31,1,1,1,1,background player playerskin10:32,1,1,1,1,background doghead dogskin8:33,background player playerskin18:34,1,1,1,1,1,1,1,1,1,1,background dogtongue:35,background dogbottom dogskin14:36,1,1,1,1,1,1,1,1,0,0,1,1,1,background player playerskin1:37,31,background player playerskin5:38,background player playerskin8:39,background player playerskin9:40,40,\nbackground player playerskin11:41,background player playerskin13:42,background player playerskin15:43,43,43,43,background player playerskin19:44,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,background player playerskin2:45,background player playerskin4:46,background player playerskin7:47,39,39,39,background player playerskin12:48,background player playerskin14:49,background player playerskin16:50,background player playerskin17:51,51,51,background player playerskin20:52,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,3,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,13,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,background chairskin1 pushable pushable_connection_right:53,1,1,1,1,1,1,1,1,53,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background chairskin2 pushable pushable_connection_down pushable_connection_left:54,background chairskin3 pushable pushable_connection_down pushable_connection_up:55,55,background chairskin4 pushable pushable_connection_down pushable_connection_right pushable_connection_up:56,background chairskin7 pushable pushable_connection_down pushable_connection_up:57,background chairskin8 pushable pushable_connection_up:58,\n1,1,1,54,55,55,56,57,58,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background chairskin5 pushable pushable_connection_left pushable_connection_right:59,1,1,1,1,1,1,1,1,59,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background chairskin6 pushable pushable_connection_down pushable_connection_left:60,background chairskin9 pushable pushable_connection_down pushable_connection_up:61,background chairskin10 pushable pushable_connection_up:62,1,1,1,1,1,1,60,61,62,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_right tableskin1:63,background pushable pushable_connection_down pushable_connection_right pushable_connection_up tableskin4:64,64,64,64,64,64,64,64,64,64,background pushable pushable_connection_right pushable_connection_up tableskin7:65,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_left pushable_connection_right tableskin2:66,background pushable pushable_connection_down pushable_connection_left pushable_connection_right pushable_connection_up tableskin5:67,67,67,67,67,67,67,67,\n67,67,background pushable pushable_connection_down pushable_connection_left pushable_connection_right pushable_connection_up tableskin8:68,background pushable pushable_connection_down pushable_connection_up tableskin10:69,background pushable pushable_connection_down pushable_connection_up tableskin11:70,70,background pushable pushable_connection_up tableskin12:71,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,66,67,67,67,67,67,67,67,67,67,67,background pushable pushable_connection_left pushable_connection_right pushable_connection_up tableskin8:72,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,66,67,67,67,67,67,67,67,67,67,67,72,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,66,67,67,67,67,67,67,67,67,67,67,\n68,69,70,70,71,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_left tableskin3:73,background pushable pushable_connection_down pushable_connection_left pushable_connection_up tableskin6:74,74,74,74,74,74,74,74,74,74,background pushable pushable_connection_left pushable_connection_up tableskin9:75,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_right rightskin5:76,57,58,1,1,1,1,1,1,76,57,58,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,59,1,1,1,1,1,1,1,1,59,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_right rightskin1:77,background pushable pushable_connection_down pushable_connection_up rightskin3:78,background pushable pushable_connection_down pushable_connection_up rightskin4:79,background pushable pushable_connection_down pushable_connection_left pushable_connection_up rightskin6:80,61,62,1,1,1,77,78,79,80,61,62,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_left rightskin2:81,1,1,1,1,1,1,1,1,81,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",1,"1627893792808.8965"] + "Oh No My Dog Is About To Swallow A Piece Of Chocolate", + ["title Oh No My Dog Is About To Swallow A Piece Of Chocolate\nauthor increpare\nhomepage www.increpare.com\n\nkey_repeat_interval 0.1\nagain_interval 0.1\n\nbackground_color #1e432e\ntext_color #e06f8b\n\nnoaction\n\n( debug )\n( verbose_logging )\n\n\n\n========\nOBJECTS\n========\n\nBackground\n#345e46\n\n\nPlayer\n#31a2f2\n\ndogskin1\n#a46422\n00000\n00000\n00000\n00000\n00000\n\ndogskin2\n#a46422 #945718\n00000\n00000\n00010\n00010\n00010\n\ndogskin3\n#a46422 #392a16 #e3e2a8\n00000\n01121\n01112\n01111\n01111\n\ndogskin4\n#a46422\n.....\n....0\n...00\n..000\n.0000\n\ndogskin5\n#945718 #a46422 #e06f8b\n00001\n11111\n11111\n11111\n11112\n\ndogskin6\n#a46422 #e06f8b #e3e2a8\n00000\n00000\n00000\n11111\n.2.2.\n\ndogskin7\n#a46422 #e06f8b #e3e2a8\n00000\n00000\n00000\n11111\n2.2.2\n\ndogskin8\n#a46422 #392a16 #e06f8b #e3e2a8\n00011\n00011\n00000\n22222\n.3.3.\n\ndogskin9\n#a46422 #e06f8b\n00001\n00001\n00001\n00001\n00001\n\ndogskin10\n#a46422 #945718\n..000\n..000\n00000\n00000\n10000\n\ndogskin11\n#a46422 #e06f8b\n00001\n00000\n00000\n00000\n00000\n\ndogskin12\n#a42544 #e3e2a8 #e06f8b #a46422\n01010\n22222\n33333\n33333\n33333\n\ndogskin13\n#e3e2a8 #a42544 #e06f8b #a46422\n01010\n22222\n33333\n33333\n33333\n\ndogskin14\n#a42544 #e3e2a8 #e06f8b #a46422\n01.1.\n22222\n33333\n33333\n3333.\n\ndogskin15\n#945718 #a46422\n01111\n00111\n00111\n00011\n10011\n\ndogskin16\n#a46422 #945718\n00000\n00000\n00000\n00111\n01111\n\ndogskin17\n#a46422 #945718\n00000\n00000\n00000\n11111\n11111\n\ndogskin18\n#a46422 #945718\n00000\n00000\n00000\n11110\n11111\n\ndogskin19\n#a46422\n00000\n00000\n00000\n00000\n0000.\n\ndogskin20\n#a46422\n00000\n00000\n0000.\n0000.\n0000.\n\ndogskin21\n#a46422\n0000.\n0000.\n0000.\n0000.\n0000.\n\ndogskin22\n#a46422\n0000.\n0000.\n0000.\n00000\n00000\n\ndogskin23\n#a46422\n0000.\n0000.\n0000.\n.0000\n..000\n\ndeaddogskin\n#392a16 #a46422\n01110\n10101\n11011\n10101\n01110\n\ndogclosedskin1\n#a46422 #945718\n00000\n00000\n00000\n00000\n11111\n\ndogclosedskin2\n#a46422 #392a16 #945718\n00011\n00011\n00000\n00000\n22222\n\ndogclosedskin3\n#e06f8b #a46422\n00000\n11111\n11111\n11111\n11111\n\ndogclosedskin4\n#e06f8b #a46422\n00000\n11111\n11111\n11111\n1111.\n\n\nplayerskin1\n#4d0400 #973530 #d3abab #130800\n00000\n10101\n11110\n22211\n23211\n\nplayerskin2\n#4d0400 #973530\n0000.\n00000\n10000\n01000\n10000\n\nplayerskin3 (x2)\n#973530\n00000\n00000\n00000\n00000\n00000\n\nplayerskin4\n#973530 #4d0400\n00111\n01011\n00101\n00011\n0000.\n\nplayerskin5\n#800700 #973530 #db5fa0 #b13978\n.0000\n.1111\n22221\n33331\n.1111\n\nplayerskin7\n#973530\n0000.\n0000.\n0000.\n0000.\n0000.\n\nplayerskin8 (x2)\n#4a9022\n00000\n00000\n00000\n00000\n00000\n\nplayerskin9\n#4a9022 #367413\n00001\n00001\n00001\n00001\n00001\n\n(then 8,9,8)\n\nplayerskin10\n#973530 #800700\n00000\n11000\n00000\n11000\n00000\n\nplayerskin11\n#367413 #4a9022\n00001\n11111\n11111\n11111\n11111\n\nplayerskin12\n#4a9022 #367413\n00001\n00010\n00100\n00100\n01000\n\nplayerskin13\n#367413 #4a9022\n00000\n11111\n11111\n11111\n11111\n\nplayerskin14\n#367413 #4a9022\n01111\n11111\n11111\n11111\n11111\n\nplayerskin15 (x3)\n#31a2f2\n00000\n00000\n00000\n00000\n00000\n\nplayerskin16\n#31a2f2 #167ec8\n00001\n00011\n00111\n01111\n11111\n\n(15)\n\nplayerskin17\n#167ec8\n00000\n00000\n00000\n00000\n00000\n\n(15,17)\n\nplayerskin18\n#a44951 #930e19 #d3a1a5\n01010\n01010\n00000\n11111\n22222\n\nplayerskin19\n#a44951 #930e19 #d3a1a5\n00000\n00000\n00000\n11111\n22222\n\nplayerskin20\n#90383f #800711 #ac767b\n00000\n00000\n11111\n22222\n.....\n\nchocolateskin\n#5d2816 #8c5340 #1f0c06\n01111\n20001\n20001\n20001\n22220\n\n\nDogHead \npink\n\nDogNeck \nred\n\nDogBottom \npurple\n\ndumbbellskin1\n#2a425b #1b2632 #26384b\n.0.0.\n12020\n12020\n12020\n12020\n\ndumbbellskin2\n#1b2632 #26384b\n01010\n01010\n01010\n01010\n01010\n\ndumbbellskin3\n#1b2632 #26384b\n01010\n01010\n01010\n00000\n.0.0.\n\n\ndumbbellskin4\n#8b8b8b #c8c8c8 #777777\n00000\n11111\n00000\n22222\n22222\n\nchairskin1\n#8b4b09 #bc7a36 #a46422\n01111\n02222\n02222\n02222\n00000\n\nchairskin2\n#bc7a36 #a46422 #8b4b09\n0000.\n11110\n11101\n11101\n21101\n\nchairskin3 (x2)\n#8b4b09 #a46422 #bc7a36\n01121\n01121\n01121\n01121\n01121\n\nchairskin4\n#8b4b09 #a46422 #bc7a36\n01121\n01111\n01111\n01111\n00000\n\nchairskin5\n#bc7a36 #a46422 #8b4b09\n00000\n11111\n11111\n11111\n22222\n\nchairskin6\n#bc7a36 #a46422 #8b4b09\n00000\n11110\n11110\n11110\n22221\n\nchairskin7\n#8b4b09 #a46422 #bc7a36\n.0110\n.0111\n.0112\n.0112\n.0112\n\nchairskin8\n#8b4b09 #a46422 #bc7a36\n.0112\n.0112\n.0112\n.0112\n.0000\n\nchairskin9\n#8b4b09 #a46422 #bc7a36\n0110.\n0111.\n0112.\n0112.\n0112.\n\nchairskin10\n#8b4b09 #a46422 #bc7a36\n0112.\n0112.\n0112.\n0112.\n0000.\n\ntableskin1\n#bc7a36 #8b4b09 #a46422\n.0000\n12222\n12222\n12222\n12222\n\ntableskin2\n#bc7a36 #a46422\n00000\n11111\n11111\n11111\n11111\n\ntableskin3\n#bc7a36 #a46422\n0000.\n11100\n11110\n11110\n11110\n\ntableskin4\n#8b4b09 #a46422\n01111\n01111\n01111\n01111\n01111\n\ntableskin5\n#a46422\n00000\n00000\n00000\n00000\n00000\n\ntableskin6\n#a46422 #bc7a36\n00001\n00001\n00001\n00001\n00001\n\ntableskin7\n#8b4b09 #a46422\n01111\n01111\n01111\n00111\n.0000\n\ntableskin8\n#a46422 #8b4b09\n00000\n00000\n00000\n00000\n11111\n\ntableskin9\n#a46422 #bc7a36 #8b4b09\n00001\n00001\n00001\n00001\n2222.\n\ntableskin10\n#8b4b09 #a46422 #bc7a36\n00000\n00001\n00111\n00121\n00121\n\ntableskin11\n#8b4b09 #a46422 #bc7a36\n00121\n00121\n00121\n00121\n00121\n\ntableskin12\n#8b4b09 #a46422 #bc7a36\n00121\n00121\n00121\n00121\n.012.\n\nrightskin1\n#bc7a36 #a46422 #8b4b09\n.0000\n11111\n12111\n12111\n12111\n\nrightskin2\n#bc7a36 #a46422 #8b4b09\n00000\n11110\n11110\n11110\n22211\n\n\nrightskin3\n#a46422 #8b4b09 #bc7a36\n01001\n01000\n01002\n01002\n01002\n\n\nrightskin4\n#a46422 #8b4b09 #bc7a36\n01002\n01002\n01002\n01002\n01002\n\n\n\nrightskin5\n#a46422 #bc7a36 #8b4b09\n01111\n20000\n20000\n20000\n22222\n\n\n\nrightskin6\n#a46422 #8b4b09 #bc7a36\n01002\n00002\n00002\n00002\n11111\n\n\n\n\n\n\n\nDogTongue \n#a42544\n.....\n.....\n.....\n.....\n0....\n\n\n\nboundary\n#846610\n\n\n\npushable \n#24c1ca #0d9ea6\n00000\n01110\n01110\n01110\n00000\n\npushable_connection_up\nyellow\n..0..\n.....\n.....\n.....\n.....\n\npushable_connection_down\nyellow\n.....\n.....\n.....\n.....\n..0..\n\npushable_connection_left\nyellow\n.....\n.....\n0....\n.....\n.....\n\npushable_connection_right\nyellow\n.....\n.....\n....0\n.....\n.....\n\nchocolate\npink\n0....\n.....\n.....\n.....\n.....\n\ndogstretch \n#0000ff\n.....\n.0...\n.....\n.....\n.....\n\ncantcontract\n#ff0000\n.....\n.....\n.....\n...0.\n.....\n\ncancontracttoken\ntransparent\n\n\n=======\nLEGEND\n=======\n\n\nobstacle = pushable or doghead or dogneck or dogbottom or boundary or player\npushable_connection = pushable_connection_up or pushable_connection_down or pushable_connection_left or pushable_connection_right\n\ndogblock = DogHead or DogNeck or DogBottom\ndogblock_noneck = DogHead or DogNeck or DogBottom\n\npushable_piece_nodog = pushable \npushing_piece_nodog = pushable or Player\n\npushable_piece = pushable or dogblock\npushing_piece = pushable or dogblock or Player\n\n\nq = DogHead\na = DogNeck\nz = DogBottom \nd = DogTongue\nw = boundary\n\n( 1 = pushable and chocolate )\n\n2 = pushable and pushable_connection_up\n3 = pushable and pushable_connection_down\n4 = pushable and pushable_connection_left\n5 = pushable and pushable_connection_right\n\n6 = pushable and pushable_connection_up and pushable_connection_down\n7 = pushable and pushable_connection_up and pushable_connection_left\n8 = pushable and pushable_connection_up and pushable_connection_right\n\n9 = pushable and pushable_connection_down and pushable_connection_left\n0 = pushable and pushable_connection_down and pushable_connection_right\n\n- = pushable and pushable_connection_left and pushable_connection_right\n\n\n+ = pushable and pushable_connection_up and pushable_connection_down and pushable_connection_left \n! = pushable and pushable_connection_up and pushable_connection_down and pushable_connection_right\n\" = pushable and pushable_connection_up and pushable_connection_left and pushable_connection_right\n£ = pushable and pushable_connection_down and pushable_connection_left and pushable_connection_right\n\n$ = pushable and pushable_connection_up and pushable_connection_down and pushable_connection_left and pushable_connection_right\n\n. = Background\nP = Player\n\nα = player and playerskin1\nβ = player and playerskin2\nγ = player and playerskin3\nδ = player and playerskin4\nε = player and playerskin5\nζ = player and playerskin7\nη = player and playerskin8\nθ = player and playerskin9\nι = player and playerskin10\nκ = player and playerskin11\nλ = player and playerskin12\nμ = player and playerskin13\nν = player and playerskin14\nξ = player and playerskin15\nο = player and playerskin16\nπ = player and playerskin17\nρ = player and playerskin18\nσ = player and playerskin19\nτ = player and playerskin20\n\nplayerskins = playerskin1 or playerskin2 or playerskin3 or playerskin4 or playerskin5 or playerskin7 or playerskin8 or playerskin9 or playerskin10 or playerskin11 or playerskin12 or playerskin13 or playerskin14 or playerskin15 or playerskin16 or playerskin17 or playerskin18 or playerskin19 or playerskin20\n\ndumbbellskins = dumbbellskin1 or dumbbellskin2 or dumbbellskin3 or dumbbellskin4\n\nchairskins = chairskin1 or chairskin2 or chairskin3 or chairskin4 or chairskin5 or chairskin6 or chairskin7 or chairskin8 or chairskin9 or chairskin10\n\ntableskins = tableskin1 or tableskin2 or tableskin3 or tableskin4 or tableskin5 or tableskin6 or tableskin7 or tableskin8 or tableskin9 or tableskin10 or tableskin11 or tableskin12\n\nrightskins = rightskin1 or rightskin2 or rightskin3 or rightskin4 or rightskin5 or rightskin6\n\ndogskins = dogskin1 or dogskin2 or dogskin3 or dogskin4 or dogskin5 or dogskin6 or dogskin7 or dogskin8 or dogskin9 or dogskin10 or dogskin11 or dogskin12 or dogskin13 or dogskin14 or dogskin15 or dogskin16 or dogskin17 or dogskin18 or dogskin19 or dogskin20 or dogskin21 or dogskin22 or dogskin23 or deaddogskin or dogclosedskin1 or dogclosedskin2 or dogclosedskin3 or dogclosedskin4\n\n\nskins = playerskins or dumbbellskins or chairskins or tableskins or rightskins or chocolateskin or dogskins\n\n\nυ = dumbbellskin1 and pushable and pushable_connection_down\nφ = dumbbellskin1 and pushable and pushable_connection_down\nχ = dumbbellskin2 and pushable and pushable_connection_up and pushable_connection_right and pushable_connection_down\nψ = dumbbellskin4 and pushable and pushable_connection_left and pushable_connection_right\nω = dumbbellskin4 and pushable and pushable_connection_left and pushable_connection_right\nА = dumbbellskin2 and pushable and pushable_connection_up and pushable_connection_left and pushable_connection_down\nБ = dumbbellskin3 and pushable and pushable_connection_up\nВ = dumbbellskin3 and pushable and pushable_connection_up\n\nГ = chairskin1 and pushable and pushable_connection_right\nД = chairskin2 and pushable and pushable_connection_left and pushable_connection_down\nЕ = chairskin3 and pushable and pushable_connection_up and pushable_connection_down\nЁ = chairskin4 and pushable and pushable_connection_up and pushable_connection_down and pushable_connection_right\nЖ = chairskin5 and pushable and pushable_connection_left and pushable_connection_right\nЗ = chairskin6 and pushable and pushable_connection_left and pushable_connection_down\nИ = chairskin7 and pushable and pushable_connection_up and pushable_connection_down\nЙ = chairskin9 and pushable and pushable_connection_up and pushable_connection_down\nК = chairskin8 and pushable and pushable_connection_up \nЛ = chairskin10 and pushable and pushable_connection_up \n\nЩ = rightskin1 and pushable and pushable_connection_down and pushable_connection_right\nЪ = rightskin2 and pushable and pushable_connection_left\nЫ = rightskin3 and pushable and pushable_connection_up and pushable_connection_down\nЬ = rightskin4 and pushable and pushable_connection_up and pushable_connection_down\nЭ = rightskin5 and pushable and pushable_connection_right and pushable_connection_down\nЮ = rightskin6 and pushable and pushable_connection_left and pushable_connection_down and pushable_connection_up\n(ТУФХЦЧ)\n\nМ = tableskin1 and pushable and pushable_connection_down and pushable_connection_right\nН = tableskin2 and pushable and pushable_connection_left and pushable_connection_down and pushable_connection_right\nО = tableskin3 and pushable and pushable_connection_down and pushable_connection_left\nП = tableskin4 and pushable and pushable_connection_down and pushable_connection_right and pushable_connection_up\nР = tableskin5 and pushable and pushable_connection_down and pushable_connection_right and pushable_connection_up and pushable_connection_left\nС = tableskin6 and pushable and pushable_connection_down and pushable_connection_left and pushable_connection_up\nТ = tableskin7 and pushable and pushable_connection_up and pushable_connection_right\nУ = tableskin8 and pushable and pushable_connection_up and pushable_connection_right and pushable_connection_left and pushable_connection_down\nФ = tableskin9 and pushable and pushable_connection_up and pushable_connection_left\nХ = tableskin10 and pushable and pushable_connection_down and pushable_connection_up\nЦ = tableskin11 and pushable and pushable_connection_down and pushable_connection_up\nЧ = tableskin12 and pushable and pushable_connection_up\nШ = tableskin8 and pushable and pushable_connection_up and pushable_connection_right and pushable_connection_left\n\nЯ = chocolateskin and DogBottom and chocolate\n\n\n丁 = DogHead and dogskin1\n上 = doghead and dogskin2\n下 = doghead and dogskin3\n不 = doghead and dogskin4\n且 = doghead and dogskin5\n世 = doghead and dogskin6\n丙 = doghead and dogskin7\n並 = doghead and dogskin8\n中 = DogNeck and dogskin1\n丸 = DogNeck and dogskin9\n\n主 = DogBottom and dogskin10\n乂 = DogBottom and dogskin1\n乃 = DogBottom and dogskin11\n之 = DogBottom and dogskin12\n乎 = DogBottom and dogskin13\n九 = DogBottom and dogskin14\n也 = DogBottom and dogskin15\n事 = DogBottom and dogskin16\n二 = DogBottom and dogskin17\n五 = DogBottom and dogskin18\n亡 = DogBottom and dogskin19\n交 = DogBottom and dogskin20\n亦 = DogBottom and dogskin21\n京 = DogBottom and dogskin22\n亭 = DogBottom and dogskin23\n\n(丁上下不且世丙並\n中丸\n主乂乃之乎九也事二五亡交亦京亭人)\n\n\n(\n仕仙令以仰任伊伏伐伯似位佐何作佳使來侈侍俊俗俠信修俯俶倫假傅傍催傳傷傾僚儀優兄充光克兒入內兩八公兵其具典再冠冥冬凋凌出分切刑列初別利刻則劍力功助劭勉勒動務勞勸勿化匡匪千升卑南即卿厥厭去及友叔取受叛口古可史右合吉吊同名君吹呂周命和咸哉唐唱問啟善嗣嘉嘗嘯器嚴囊四回因困國園圓圖土在地坐垂垢垣城執基堂堅場塞增墨墳壁士壹夏夕外夙多夜大天夫奄奉奏女好如妍妙妾始姑委姜姿威婦嫡子孔字存孝孟孤孰學宅宇守安宗官宙定宜宣宮宰宴家容宿寂密富寐寒寓寔察寡寥實寧審寫寵寶寸封射將尊尋對少尹尺居履屬岡岩岫岱岳嵇川州工左巧巨己巾市布帝師席帳帶帷常平年并幸幾床府庭庶康庸廉廊廟廣建弁弊引弗弟弦弱張形彩彼往徊律後得徘從御微德心必忘忠念思性恃恐恥恬恭息悅悚悲情惟惠惡想惶惻意愚愛感慈慎慕慮慶懷懸懼戎成我戚戶房所扇手才扶承投抗抽招拜拱持指振捕接推搖摩操據攝收攸改政故效敕敢散敦敬文斡斬斯新方於施既日旦昃昆明易星映是時晉晚晝晦景暉暑曜曠曦曰曲更書最會月有服朗朝木本李杜束杯東杳杷松枇林果枝染柰根桐桓條梧棠植楚業極楹榮槐樂樓機橫次欣欲歌歡止正此步武歲歷歸殆殊殷殿毀母每比毛民氣水永求池沉沙沛河治法泰洛洞洪流浮浴海涇涼淑淡深淵清渠渭游湯溪溫滅滿漆漠漢潔潛澄濟火為烝烹焉無煌煒照煩熟熱營燭爵父牆牒牧物特犢猶猷獨獲獸玄率玉王玩珍珠理琴瑟璇璣璧環甘甚生用田甲男畏畝畫異當疏疑疲登發白百的皆皇皋盈益盛盜盟盡盤目直相省真眠眺睦瞻矜矢知矩短矯石碑碣磨磻祀祗祜神祭祿禍福禪禮禹禽秉秋秦移稅稱稷稼稽稿積穡空立竟章竭端競竹笑笙筆等筍答策筵箋箱箴節篤簡籍精糟糠糧約紈納紙紛素紡索紫累終組結絜給絲絳綏經維綺綿緣縣縻績續纓罔罪羅羊羌美羔群義羽習翔翠翦翳老者而耳耽聆聖聚聞聲職聽肆肥育背能腸膳臣臨自致與興舉舊舍良色芥若英茂草荒荷莊莫莽菜華萬落葉蒙蓋薄薪藍藏藝蘭處虛虞號虢虧蚤行衡衣表被裳製西要覆見規親觀解觴言訓設詠詩詳誅誌誚語誠誡說誰調談論諸謂謙謝謹譏譽讀讓谷豈象豫貌貞貢貴貽資賊賓賞賢賤賴贊赤起超趙足跡路踐躍身躬車軍軻載輕輦輶轂轉辨辭辰辱農近退逍逐途通造連逸逼運過遐道達遙遠遣適遵邇邈邑邙郡都酒釋重野量金釣鈞銀銘鐘鑒長門閏閒闕阜阮阿陋陛陟陪陰陳陶陽階隨隱隸雁雅集雞離難雨雲霄霜露霸靈青靜非靡面鞠韓音頓頗領願顙顛顧顰飄飛食飫飯飽養餐餘饑首馨馳駒駕駭騰騾驅驚驢驤骸體高鬱魄魏魚鱗鳥鳳鳴鶤麗黃黍黎默黜鼓龍\n)\n=======\nSOUNDS\n=======\n\npushable move 72882707\ndogblock move 25942907\nstartgame 38015704\nendlevel 9541904\n\n\n================\nCOLLISIONLAYERS\n================\n\npushable_connection_up\npushable_connection_down\npushable_connection_left\npushable_connection_right\nchocolate\ndogstretch\ncantcontract\ncancontracttoken\n\nPlayer, DogHead, DogNeck,DogBottom\n\npushable\n\nBackground\nboundary\n\nDogTongue\n(skins layer)\n\n\nskins\n\n\n======\nRULES\n======\n\n[player]->again\n\n\n(replace chocolate with pushable if moving horizontally)\n[ horizontal player ] [ chocolate chocolateskin DogBottom ] -> [ horizontal player ] [ chocolate chocolateskin pushable ]\n\n(replace chocolate with pushable if no dogbody below)\n\ndown [ chocolate chocolateskin DogBottom | no dogskin12 no dogskin13 no dogskin14 ] -> [ chocolate chocolateskin pushable | ]\n\n(DOG HEAD CONTRACT)\n\n(only contracts when player's not moving, and they're not in touch shouldn't be necessary but just in case)\n[ > player ] [dogblock ] -> [ > player ] [ dogblock cantcontract ]\ndown [ DogHead | DogBottom ] [ dogblock ] -> [ DogHead | DogBottom ] [dogblock cantcontract]\ndown [DogHead | pushable no chocolate ] -> [ doghead cantcontract | pushable ]\n[ DogHead cantcontract ] [ DogHead no cantcontract ] -> [DogHead cantcontract ] [DogHead cantcontract ]\n\nup [ DogBottom | pushable no chocolate ] -> [ DogBottom cantcontract | pushable ]\n\n\n[ DogBottom cantcontract ] [ DogBottom no cantcontract ] -> [DogBottom cantcontract ] [DogBottom cantcontract ]\n[ DogHead no cantcontract ] [ DogHead cantcontract ] -> [ DogHead cantcontract ] [ DogHead cantcontract ]\n\n(parity problem when head + body try to clamp shut when thyey're 1 distance away from eachother - give the head right of way)\ndown [ doghead no cantcontract | no dogblock | DogBottom no cantcontract ] -> [ doghead | | DogBottom cantcontract ] \n\n(and you neeed to repropagate)\n[ DogBottom cantcontract ] [ DogBottom no cantcontract ] -> [DogBottom cantcontract ] [DogBottom cantcontract ]\n[ DogHead no cantcontract ] [ DogHead cantcontract ] -> [ DogHead cantcontract ] [ DogHead cantcontract ]\n\n\n[DogHead no cantcontract ] -> [down DogHead ]\n[DogBottom no cantcontract ] -> [up DogBottom ]\n\ndown [ down doghead | DogNeck ] -> [ down doghead | no dogskins ]\nup [ up DogBottom | DogNeck ] -> [ up DogBottom | no dogskins ]\n\nlate [ cantcontract ] -> [ ]\n\n(SETUP FOR CONNECTIONS)\n( right [ pushable | pushable ] -> [ pushable pushable_connection_right | pushable pushable_connection_left ] )\n( down [ pushable | pushable ] -> [ pushable pushable_connection_down | pushable pushable_connection_up ] )\n\n\n(propagate movements)\n\n(propagate movements first ignoring dog)\n\n[ > pushing_piece_nodog | pushable_piece_nodog ] -> [ > pushing_piece_nodog | > pushable_piece_nodog ]\n+ up [ moving pushable pushable_connection_up | pushable pushable_connection_down ] -> [ moving pushable moving pushable_connection_up | moving pushable moving pushable_connection_down ]\n+ down [ moving pushable pushable_connection_down | pushable pushable_connection_up ] -> [ moving pushable moving pushable_connection_down | moving pushable moving pushable_connection_up ]\n+ left [ moving pushable pushable_connection_left | pushable pushable_connection_right ] -> [ moving pushable moving pushable_connection_left | moving pushable moving pushable_connection_right ]\n+ right [ moving pushable pushable_connection_right | pushable pushable_connection_left ] -> [ moving pushable moving pushable_connection_right | moving pushable moving pushable_connection_left ]\n\nvertical [> pushing_piece_nodog | DogBottom ] [ > pushing_piece_nodog | DogHead ] -> [> pushing_piece_nodog | > DogBottom ] [ > pushing_piece_nodog | > DogHead ]\n[moving DogHead ] [stationary DogHead ] -> [moving DogHead ] [moving DogHead]\n[moving DogBottom ] [stationary DogBottom ] -> [moving DogBottom ] [moving DogBottom]\n( allow to push chocolate into mouth)\n\n( right [ DogNeck | no obstacle | chocolateskin chocolate DogBottom | < pushing_piece ] -> [ DogNeck | chocolateskin chocolate DogBottom | | < pushable ] )\n\n(DOG NECK STRETCH)\n\n(either top is held stationary and bottom is moved down)\n(stationary pushable vs stationary obstacle because level boundary geometry can't access inside of mouth/small of back)\ndown [ stationary DogHead | stationary pushable no chocolate ] [ > pushing_piece_nodog | DogBottom ] -> [ dogstretch DogHead | pushable] [ > pushing_piece_nodog | > DogBottom ]\n\n\n(or bottom is held stationary and top is movedup)\ndown [ stationary pushable no chocolate | stationary DogBottom ] [ DogHead | < pushing_piece_nodog ] -> [ stationary pushable | dogstretch DogBottom ] [ < DogHead | < pushing_piece_nodog ]\n\n\n[ DogHead dogstretch | DogHead no dogstretch ] -> [ DogHead dogstretch | DogHead dogstretch ]\n[ DogBottom dogstretch | DogBottom no dogstretch ] -> [ DogBottom dogstretch | DogBottom dogstretch ]\n\n(DOG NECK SQEEZE)\n\n\n\n(either top is held stationary and bottom is moved up)\ndown [ stationary obstacle | stationary DogHead ] [ DogBottom | < pushing_piece_nodog] -> [ obstacle | DogHead cancontracttoken] [ < DogBottom | < pushing_piece_nodog ]\n\n\n(or bottom is held stationary and top is moved down)\ndown [ stationary DogBottom | stationary obstacle ] [ > pushing_piece_nodog | DogHead] -> [ DogBottom cancontracttoken | obstacle ] [ > pushing_piece_nodog | DogHead ]\n\nrandom right [cancontracttoken] [DogNeck | DogNeck ] -> [] [ no skins|no skins]\n[cancontracttoken]->[]\n\n(DOG NECK COMPRESS)\n\n[ > pushing_piece | pushable_piece no dogstretch ] -> [ > pushing_piece | > pushable_piece ]\n+ up [ moving pushable pushable_connection_up | pushable pushable_connection_down ] -> [ moving pushable moving pushable_connection_up | moving pushable moving pushable_connection_down ]\n+ down [ moving pushable pushable_connection_down | pushable pushable_connection_up ] -> [ moving pushable moving pushable_connection_down | moving pushable moving pushable_connection_up ]\n+ left [ moving pushable pushable_connection_left | pushable pushable_connection_right ] -> [ moving pushable moving pushable_connection_left | moving pushable moving pushable_connection_right ]\n+ right [ moving pushable pushable_connection_right | pushable pushable_connection_left ] -> [ moving pushable moving pushable_connection_right | moving pushable moving pushable_connection_left ]\n+ [ moving dogblock no dogstretch | stationary dogblock no dogstretch ] -> [ moving dogblock | moving dogblock ]\n\n[ > pushing_piece | stationary obstacle ] -> cancel\n\nup [ moving dogbottom | DogTongue ] -> [ moving DogBottom | moving DogTongue ]\nright [ pushable chocolate chocolateskin | moving DogTongue ] -> [moving pushable moving chocolate moving chocolateskin | moving DogTongue ]\n\nright [ stationary pushable | < pushable < chocolate < chocolateskin ] -> [ pushable | pushable chocolate chocolateskin ]\n\n[ moving DogBottom chocolate chocolateskin ] -> [ moving DogBottom moving chocolate moving chocolateskin]\n[ moving pushable chocolate chocolateskin ] -> [ moving pushable moving chocolate moving chocolateskin]\n\n\n[ moving pushable_piece skins ] -> [ moving pushable_piece moving skins ]\n[ moving Player playerskins ] -> [ moving Player moving playerskins ]\n\n(LATE)\n\nlate down [ dogskin4 | no DogNeck no obstacle ] [ dogskin5 | no DogNeck no obstacle ] -> [ dogskin4 | DogNeck ] [dogskin5 | DogNeck ]\n\n\nlate vertical [ DogNeck | no DogHead no DogBottom ] -> [ DogNeck | DogNeck ]\nlate right [ dogneck no dogskins | dogneck no dogskins ] -> [ 中 | 丸 ]\n(replace chocolate pushable with dogbottom)\n\nlate [chocolate chocolateskin pushable] -> [chocolate chocolateskin DogBottom]\n\n\n(move to start for visualisation purposes)\nlate [ dogstretch ] -> [ ]\n\n\n==============\nWINCONDITIONS\n==============\nno DogNeck\nno deaddogskin\n\n=======\nLEVELS\n=======\n\nmessage NO DON'T YOU DARE SWALLOW THAT\n\n\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........υ..υ.υ..υ.......................................w\nw........χψψа.χψψа.......................................w\nw........б..б.б..б.......................................w\nw..................................гд..............щъ....w\nw...................................е....мнннно....ы.....w\nw........................αβ.........е....пррррс....ь.....w\nw.......................γγδ.........ёжз..пррррс..эжю.....w\nw........................εζ.........и.й..пррррс..и.й.....w\nw........................ηη.........к.л..пррррс..к.л.....w\nw.............丁上下........θη..............пррррс..........w\nw.............不且世丙並......θη..............пррррс..........w\nw.............中丸.яd.....ικλ..............пррррс..........w\nw.........主乂乂乂乂乃之乎九......μν........гд....пррррс....щъ....w\nw.........也事二五乂亡.........ξο.........е....пррррс....ы.....w\nw.........交...亦..........ξπ.........е....пррррс....ь.....w\nw.........京...亭..........ξπ.........ёжз..тушшуф..эжю.....w\nw........................ξπ.........и.й...х..х...и.й.....w\nw.......................ρστ.........к.л...ц..ц...к.л.....w\nw.........................................ц..ц...........w\nw.........................................ч..ч...........w\nw........................................................w\nw........................................................w\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n\nmessage YOU ARE SUCH A SHITEHAWK OF A DOG\n\n(\n\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nw..........................гд............................w\nw...........................е............................w\nw...........................е............................w\nw...........................ёжз..........................w\nw...........................и.й..........................w\nw...........................к.л..........................w\nw.............................щъ.........................w\nw.............................ы..........................w\nw.............................ь..........................w\nw...........................эжю..........................w\nw....υ..υ...................и.й..........................w\nw....χψψа...................к.л..........................w\nw....б..б................................................w\nw........................................................w\nw..............αβ........................................w\nw.............γγδ........................................w\nw..............εζ........................................w\nw..............ηη........................................w\nw..............θη........................мнннно..........w\nw..............θη........................пррррс..........w\nw.............ικλ........................пррррс..........w\nw..............μν........................пррррс..........w\nw..............ξο........................пррррс..........w\nw..............ξπ........................пррррс..........w\nw..............ξπ........................пррррс..........w\nw..............ξπ........................пррррс..........w\nw............яρστ..................гд....пррррс....щъ....w\nw........丁上下........................е....пррррс....ы.....w\nw........不且世丙並......................е....пррррс....ь.....w\nw........中丸υ..υ.....................ёжз..тушшуф..эжю.....w\nw........中丸χψψа.....................и.й...х..х...и.й.....w\nw........中丸б.dб.....................к.л...ц..ц...к.л.....w\nw....主乂乂乂乂乃之乎九............................ц..ц...........w\nw....也事二五乂亡...............................ч..ч...........w\nw....交...亦...............................................w\nw....京...亭...............................................w\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n\n\n\n\n\n(move left and dog has bad time)\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nw..........................гд............................w\nw...........................е............................w\nw...........................е............................w\nw...........................ёжз..........................w\nw...........................и.й..........................w\nw...........................к.л..........................w\nw.............................щъ.........................w\nw.............................ы..........................w\nw.............................ь..........................w\nw...........................эжю..........................w\nw....υ..υ...................и.й..........................w\nw....χψψа...................к.л..........................w\nw....б..б................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw............αβ..........................................w\nw...........γγδ..........................................w\nw............εζ..........................мнннно..........w\nw............ηη..........................пррррс..........w\nw............θη..........................пррррс..........w\nw............θη..........................пррррс..........w\nw...........ικλ..........................пррррс..........w\nw............μν..........................пррррс..........w\nw............ξο..........................пррррс..........w\nw............ξπ..........................пррррс..........w\nw...........яξπ....................гд....пррррс....щъ....w\nw......丁上下...ξπ.....................е....пррррс....ы.....w\nw......不且世丙並ρστ.....................е....пррррс....ь.....w\nw......中丸..υ..υ.....................ёжз..тушшуф..эжю.....w\nw......中丸..χψψа.....................и.й...х..х...и.й.....w\nw......中丸..б..б.....................к.л...ц..ц...к.л.....w\nw..主乂乂乂乂乃之乎九..............................ц..ц...........w\nw..也事二五乂亡.................................ч..ч...........w\nw..交...亦.................................................w\nw..京...亭.................................................w\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n\n\n\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nw......丁上下.................гд............................w\nw......不且世丙並................е............................w\nw......中丸υ.яυ...............е............................w\nw......中丸χψψа..αβ...........ёжз..........................w\nw......中丸б..б.γγδ...........и.й..........................w\nw......中丸......εζ...........к.л..........................w\nw......中丸......ηη........................................w\nw..υ..υ中丸......θη........................................w\nw..χψψа中丸....щъθη........................................w\nw..б..б中丸....ыικλ........................................w\nw..主乂乂乂乂乃之乎九.ь.μν........................................w\nw..也事二五乂亡..эжю.ξο........................................w\nw..交...亦...и.й.ξπ........................................w\nw..京...亭...к.л.ξπ........................................w\nw..............ξπ........................................w\nw.............ρστ........................................w\nw........................................................w\nw........................................................w\nw........................................мнннно..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw..................................гд....пррррс....щъ....w\nw...................................е....пррррс....ы.....w\nw...................................е....пррррс....ь.....w\nw...................................ёжз..тушшуф..эжю.....w\nw...................................и.й...х..х...и.й.....w\nw...................................к.л...ц..ц...к.л.....w\nw.........................................ц..ц...........w\nw.........................................ч..ч...........w\nw........................................................w\nw........................................................w\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n\n)\n", [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1], "background boundary: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,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background dumbbellskin1 pushable pushable_connection_down:2,background dumbbellskin2 pushable pushable_connection_down pushable_connection_right pushable_connection_up:3,background dumbbellskin3 pushable pushable_connection_up:4,background dogbottom dogskin10:5,background dogbottom dogskin15:6,background dogbottom dogskin20:7,background dogbottom dogskin22:8,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,background dumbbellskin4 pushable pushable_connection_left pushable_connection_right:9,1,background dogbottom dogskin1:10,background dogbottom dogskin16:11,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,1,10,background dogbottom dogskin17:12,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,background dumbbellskin2 pushable pushable_connection_down pushable_connection_left pushable_connection_up:13,4,10,background dogbottom dogskin18:14,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,background doghead dogskin1:15,background doghead dogskin4:16,background dogneck dogskin1:17,17,17,17,17,17,17,17,17,17,\n17,17,10,10,background dogbottom dogskin21:18,background dogbottom dogskin23:19,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,background doghead dogskin2:20,background doghead dogskin5:21,background dogneck dogskin9:22,22,22,22,22,22,22,22,22,22,22,22,background dogbottom dogskin11:23,background dogbottom dogskin19:24,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,background doghead dogskin3:25,background doghead dogskin6:26,1,1,1,1,1,1,1,1,1,1,1,1,background dogbottom dogskin12:27,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background doghead dogskin7:28,1,1,1,1,1,1,1,1,1,1,1,background chocolate chocolateskin dogbottom:29,\nbackground dogbottom dogskin13:30,1,1,1,1,1,1,1,1,0,0,1,1,1,1,background player playerskin3:31,1,1,1,1,background player playerskin10:32,1,1,1,1,background doghead dogskin8:33,background player playerskin18:34,1,1,1,1,1,1,1,1,1,1,background dogtongue:35,background dogbottom dogskin14:36,1,1,1,1,1,1,1,1,0,0,1,1,1,background player playerskin1:37,31,background player playerskin5:38,background player playerskin8:39,background player playerskin9:40,40,\nbackground player playerskin11:41,background player playerskin13:42,background player playerskin15:43,43,43,43,background player playerskin19:44,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,background player playerskin2:45,background player playerskin4:46,background player playerskin7:47,39,39,39,background player playerskin12:48,background player playerskin14:49,background player playerskin16:50,background player playerskin17:51,51,51,background player playerskin20:52,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,3,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,13,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,background chairskin1 pushable pushable_connection_right:53,1,1,1,1,1,1,1,1,53,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background chairskin2 pushable pushable_connection_down pushable_connection_left:54,background chairskin3 pushable pushable_connection_down pushable_connection_up:55,55,background chairskin4 pushable pushable_connection_down pushable_connection_right pushable_connection_up:56,background chairskin7 pushable pushable_connection_down pushable_connection_up:57,background chairskin8 pushable pushable_connection_up:58,\n1,1,1,54,55,55,56,57,58,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background chairskin5 pushable pushable_connection_left pushable_connection_right:59,1,1,1,1,1,1,1,1,59,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background chairskin6 pushable pushable_connection_down pushable_connection_left:60,background chairskin9 pushable pushable_connection_down pushable_connection_up:61,background chairskin10 pushable pushable_connection_up:62,1,1,1,1,1,1,60,61,62,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_right tableskin1:63,background pushable pushable_connection_down pushable_connection_right pushable_connection_up tableskin4:64,64,64,64,64,64,64,64,64,64,background pushable pushable_connection_right pushable_connection_up tableskin7:65,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_left pushable_connection_right tableskin2:66,background pushable pushable_connection_down pushable_connection_left pushable_connection_right pushable_connection_up tableskin5:67,67,67,67,67,67,67,67,\n67,67,background pushable pushable_connection_down pushable_connection_left pushable_connection_right pushable_connection_up tableskin8:68,background pushable pushable_connection_down pushable_connection_up tableskin10:69,background pushable pushable_connection_down pushable_connection_up tableskin11:70,70,background pushable pushable_connection_up tableskin12:71,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,66,67,67,67,67,67,67,67,67,67,67,background pushable pushable_connection_left pushable_connection_right pushable_connection_up tableskin8:72,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,66,67,67,67,67,67,67,67,67,67,67,72,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,66,67,67,67,67,67,67,67,67,67,67,\n68,69,70,70,71,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_left tableskin3:73,background pushable pushable_connection_down pushable_connection_left pushable_connection_up tableskin6:74,74,74,74,74,74,74,74,74,74,background pushable pushable_connection_left pushable_connection_up tableskin9:75,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_right rightskin5:76,57,58,1,1,1,1,1,1,76,57,58,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,59,1,1,1,1,1,1,1,1,59,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_right rightskin1:77,background pushable pushable_connection_down pushable_connection_up rightskin3:78,background pushable pushable_connection_down pushable_connection_up rightskin4:79,background pushable pushable_connection_down pushable_connection_left pushable_connection_up rightskin6:80,61,62,1,1,1,77,78,79,80,61,62,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_left rightskin2:81,1,1,1,1,1,1,1,1,81,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 1, "1627893792808.8965"] ], [ - "paint everything everywhere!", - ["title paint everything everywhere!\nauthor increpare + pancelor\nhomepage www.pancelor.com (increpare.com)\n\nbackground_color #db7f00\ntext_color #126a10\n\nagain_interval 0.05\nrun_rules_on_level_start\n( verbose_logging )\n\n========\nOBJECTS\n========\n\nBackground\n#ff00ff \ncanvas \n#F5ECE0 \n\nWall\n#51984f #ffb910\n00000\n01110\n01110\n01110\n00000\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate1Base\n#af101d\n00000\n0...0\n0...0\n0...0\n00000\n\nCrate1L0\n#af101d \n0....\n0.... \n0.... \n0.... \n0....\n\nCrate1R0\n#af101d \n....0\n....0\n....0\n....0\n....0\n\nCrate1U0\n#af101d \n00000\n.....\n.....\n.....\n.....\n\nCrate1D0\n#af101d \n.....\n.....\n.....\n.....\n00000\n\nCrate1Z0\n#af101d\n.....\n.....\n.....\n.....\n.....\n\nCrate2Base\n#7cecec \n00000\n0...0\n0...0\n0...0\n00000\n\nCrate2L0\n#7cecec \n0.... \n0.... \n0.... \n0.... \n0....\n\nCrate2R0\n#7cecec \n....0\n....0\n....0\n....0\n....0\n\n\nCrate2U0\n#7cecec \n00000\n.....\n.....\n.....\n.....\n\nCrate2D0\n#7cecec \n.....\n.....\n.....\n.....\n00000\n\nCrate2Z0\n#7cecec #F5ECE0\n.....\n.....\n.....\n.....\n.....\n\nPaint1\n#CC2936\n.....\n00000\n00000\n.....\n00000\n\nPaint2\n#2897B0\n....0\n....0\n.0000\n.00..\n000.0\n\nslideright\ntransparent\n\nslidedown\ntransparent\n\nslideleft\ntransparent\n\nslideup\ntransparent\n\nwinning\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background and canvas\n# = Wall\nP = Player\n1 = Crate1Base and canvas and paint1\n2 = Crate2Base and canvas and paint2\n\nCrate1=Crate1Base or Crate1L0 or Crate1R0 or Crate1U0 or Crate1D0 or Crate1Z0\nCrate2=Crate2Base or Crate2L0 or Crate2R0 or Crate2U0 or Crate2D0 or Crate2Z0\nCrateL=Crate1L0 or Crate2L0\nCrateR=Crate1R0 or Crate2R0\nCrateU=Crate1U0 or Crate2U0\nCrateD=Crate1D0 or Crate2D0\nCrateZ=Crate1Z0 or Crate2Z0\nCrate=Crate1 or Crate2\n\npaint=paint1 or paint2\nslidetag = slideleft or slideup or slideright or slidedown\nobs = wall or crate\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 30943107\n\n( sfx0 19998706 (paint1 ) )\n( sfx1 382306 (paint2 ) )\n\nsfx0 19045907\n( sfx0 129314260 )\n( sfx0 321260 )\n( sfx0 5212604 )\n( 1779703 )\n( 42076907 )\n( sfx1 56671706 )\nsfx1 99909509\n\nendlevel 74970903\n( endlevel 57283503 )\n( endlevel 34632303 )\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncanvas\npaint1\npaint2\nCrate1Base,Crate2Base\nPlayer\nWall, CrateZ\nCrateL\nCrateR\nCrateU\nCrateD\nslidetag\nwinning\n\n======\nRULES\n======\n\n(startup visuals)\n[Crate1Base] -> [Crate1L0 Crate1R0 Crate1U0 Crate1D0 Crate1Z0]\nleft [Crate1L0|Crate1R0]->[|]\nup [Crate1U0|Crate1D0]->[|]\n[Crate2Base] -> [Crate2L0 Crate2R0 Crate2U0 Crate2D0 Crate2Z0]\nleft [Crate2L0|Crate2R0]->[|]\nup [Crate2U0|Crate2D0]->[|]\n\n[player] -> [player wall winning]\n\n[> player slidetag]->[> player]\n\n[ up player ] -> [ player slideup ] again\n[ down player ] -> [ player slidedown ] again\n[ left player ] -> [ player slideleft ] again\n[ right player ] -> [ player slideright ] again\n\n[ slideup ] [ crate ] -> [ slideup ] [ up crate ] again\n[ slidedown ] [ crate ] -> [ slidedown ] [ down crate ] again\n[ slideleft ] [ crate ] -> [ slideleft ] [ left crate ] again\n[ slideright ] [ crate ] -> [ slideright ] [ right crate ] again\n\n[ > crate | stationary obs ] -> [ crate | stationary obs ]\n+ [ up crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ up crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n+ [ down crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ down crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n+ [ left crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ left crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n+ [ right crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ right crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n\n[> crate][winning] -> [> crate][]\n\nlate [ crate1 no paint1 ] -> [ crate1 paint1 ] sfx0\nlate [ crate2 no paint2 ] -> [ crate2 paint2 ] sfx1\n\n==============\nWINCONDITIONS\n==============\n\nall canvas on Paint1\nall canvas on Paint2\nsome winning\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 20\n(increpare:perfectly fine little level)\n(pancelor: these are both quite nice)\n######p\n#.....#\n#....##\n##.#.1#\n#..2..#\n#######\n\nmessage Level 2 of 20\n(increpare:also a perfectly fine little level)\n######p\n#.....#\n#.....#\n#..#..#\n#...###\n###1.2#\n#######\n\nmessage Level 3 of 20\n(increpare: level with rotational symmetry - this is somethign I repeat in some later levels - not sure if that means it's worth avoiding here)\n(pancelor: satisfying to fill all the corners. I went back and forth on whether to cut this level or not, but decided not to )\n###########p\n###.......##\n#.........##\n#......22..#\n#..11..22..#\n#..11......#\n##.........#\n##.......###\n############\n\nmessage Level 4 of 20\n(increpare: I kinda like this one)\n(pancelor: same! feels like a racetrack)\n###########p\n#11.#......#\n#11.#......#\n#......#.22#\n#......#.22#\n#...####...#\n#..........#\n#..........#\n############\n\nmessage Level 5 of 20\n(pancelor: i like it okay; i was a bit large IMO (made execution feel slow) -- I've compressed it a bit\n (increpare: kinda like this one?)\n #############p\n #11..........#\n #11..........#\n #....#.......#\n #....#.......#\n #..######....#\n #....####....#\n #....####....#\n #....####....#\n #....######..#\n #.......#....#\n #.......#....#\n #..........22#\n #..........22#\n ##############\n (pancelor: here's a variation that encourages some fun swirls:)\n p#############\n #11..........#\n #11..........#\n #.....#......#\n #.....#......#\n #.....###....#\n #..######....#\n #....####....#\n #....######..#\n #....###.....#\n #......#.....#\n #......#.....#\n #..........22#\n #..........22#\n ##############\n ) \n#############\n#22.........#\n#22.........#\n#....#......#\n#....#......#\n#..#####....#\n#....###....#\n#....#####..#\n#......#....#\n#......#....#\n#.........11#\n#.........11#\np############\n\nmessage Level 6 of 20\n(pancelor: really satisfying to play! lots of good swirling)\n(increpare: v. nice!)\np##############\n###11#####22###\n###....#....###\n###....#....###\n#....#####....#\n#....#####....#\n###.........###\n#####.....#####\n###############\n\n(\n(increpare: fine, maybe, but like other levels)\n(pancelor: I think this one introduces some new ideas in a nice small playground. you could probably figure them out in the next level too but I like that this one also exists)\n(pancelor: now that we have so many levels I think we should cut this)\n###########p\n#..........#\n#..........#\n#..........#\n#...111#...#\n#...1212...#\n#...1212...#\n#...#222...#\n#..........#\n#..........#\n#..........#\n############\n)\n\nmessage Level 7 of 20\n(pancelor: fun! based on your level (\"compressed it a bit\" above))\n(increpare: like it)\np########\n#......1#\n#.......#\n#..###..#\n#..###..#\n#..##...#\n#.......#\n#2.....##\n#########\n\nmessage Level 8 of 20\n(pancelor: not too hard)\n(increpare yeah fine!)\n#######p#\n##...####\n##....###\n##....2##\n##....2##\n##....2##\n##..#..##\n##.....##\n##1....##\n##11...##\n#########\n\nmessage Level 9 of 20\n(increpare: more involved version of the above. better?)\n(pancelor: I think both levels are good, but keep this one and cut the above one if you think we need to cut down on levels)\n#################p\n#................#\n#................#\n#................#\n#....1.111#......#\n#....1.121222....#\n#....111212.2....#\n#......#222.2....#\n#................#\n#................#\n#................#\n##################\n\n(\n(pancelor: ok? cut it for now b/c we have so many levels)\np########\n#......1#\n#.......#\n#..###..#\n#..###..#\n#..###..#\n#.......#\n#2..##..#\n#########\n)\n\n(\n(pancelor: ok? I like the feeling of stair-stepping)\n(increpare: easy + ok)\n#######p\n##....##\n#1....2#\n#11..22#\n#.1#.2.#\n#..#...#\n#......#\n#......#\n#......#\n#.....##\n##...###\n########\n)\n\nmessage Level 10 of 20\n(pancelor: a nice simple level that pretty clearly asks you to swap positions. I made this from one of your sketches:\n (bad because dead end)\n ######p\n ##....#\n #.....#\n #12...#\n #1##..#\n #######)\n \n (increpare:nice!)\np######\n#####.#\n##....#\n#.....#\n#....1#\n#.##21#\n#######\n\nmessage Level 11 of 20\n(increpare: decent level - has some satisfying block-pushing I think!)\n(pancelor: oh this is very cute -- one of my favorite levels! I like the way you need to them to help each other travel. I also like how it requires a lot of swapping -- swapping sides, swapping which piece goes left first. very nice)\n###########p\n###....#...#\n#..........#\n#.....#....#\n#111...#.22#\n############\n\nmessage Level 12 of 20\n(pancelor: based on a dead-end level you made; I liked the feeling of getting the triangles hooked together and then unhooking them.\n (increpare: solvabe but early+subtle dead end possible :[ )\n (pancelor: this one gave me a lot of trouble, until I read your comment about dead ends! then two more tries and I got it.)\n ##########p\n ##1.......#\n #11.......#\n #......#..#\n #.........#\n #.........#\n #.........#\n #.........#\n #..#......#\n #.......22#\n #.......2##\n ###########)\np#############\n##........####\n#..........1##\n#...#......11#\n#............#\n#............#\n#............#\n#22......#...#\n##2..........#\n####........##\n##############\n\nmessage Level 13 of 20\n(pancelor: an okay level, not particularly different but requires the brushes to support each other many times)\n(increpare:good)\n############p\n###111......#\n#...........#\n#...........#\n#...........#\n#......#....#\n#...#......2#\n##.........2#\n##.........2#\n##.........##\n#############\n\nmessage Level 14 of 20\n(pancelor: hard ish but maybe not too satisfying? the little 1x1 slot is hard to paint with the smaller brush -- probably will find it by brute force)\n(increpare: easy)\n############p#\n##1.....######\n#111111.....##\n#1...........#\n#............#\n#...#........#\n#..........2.#\n#..........22#\n#..........2##\n#....#.#######\n##############\n\n(\n(pancelor: an okay level, there's a cute reversal you have to do to paint the last square. not too hard)\n(increpare: ok!)\n###########\np#....#####\n##....22..#\n#....#211.#\n#....22...#\n#.........#\n#........##\n#........##\n###....####\n###########\n)\n\nmessage Level 15 of 20\n(increpare: a solid level! - strategic + no dead ends)\n(pancelor: really really nice! fun to swap them around.)\n#############p\n#######..#####\n#####......###\n###..........#\n#.....12.....#\n#...111222...#\n#...1....2...#\n#..........###\n###......#####\n#####..#######\n##############\n\nmessage Level 16 of 20\n(pancelor: an okay level, many fun little challenges to fill in the last corners of the board; none are too difficult)\n(increpare: way nicer than expected)\n##########p\n#.....1####\n#.....1111#\n#.......1.#\n#....#....#\n#.........#\n##........#\n#..#......#\n#.........#\n##...2....#\n####.2222##\n###########\n\nmessage Level 17 of 20\n(pancelor: maybe my favorite level?! a much harder variation of the my \"pretty clearly asks you to swap positions\" level. I think both levels can exist?)\n(pancelor: this one is hard because it goes through an easy-to-miss narrow chokepoint in state-space. the last couple moves are a bit tricky too)\n(increpare: nice!)\np########## \n##...###### \n#......#### \n#......#### \n##.....22## \n##.....22## \n####.....## \n####.....## \n##.......## \n##.....111# \n##.....111# \n###########\n\n(\n(pancelor: tricky, but sorta unfocused. probably feels brute-forcey)\n(increpare: pretty gruelling. maybe cut?)\n#############p\n#######....###\n###222......1#\n###......#..1#\n#...#........#\n#.....#......#\n###..........#\n######....####\n##############\n)\n\nmessage Level 18 of 20\n(pancelor: an okay level, about getting the two blocks to swap places)\n(increpare: I think this is hard but enjoyable?)\n###############p\n####.........22#\n##...........22#\n##.............#\n##............##\n###............#\n###............#\n#111...........#\n#111..........##\n#111........####\n################\n\nmessage Level 19 of 20\n(pancelor: a very thinky level; one of my favorite levels)\n(increpare pretty exhausting - i got it ish)\np###########\n#.........2#\n#.####...###\n#.#.####.###\n#.#......###\n#.###.##.###\n#.##......##\n#.....##..##\n#######1.###\n############\n\n(\n(pancelor: very hard but not in a satisfying way; the last corners are hard to hunt down. (the one square on the right side is kinda neat) idk I might cut this)\n###p################\n####################\n#########....#....##\n#########.........##\n###................#\n#............#.....#\n###................#\n##..............111#\n###...............1#\n#................11#\n###...............1#\n###222..........111#\n####################\n####################\n)\n\nmessage Level 20 of 20\n(increpare: I'm ok with this, but maybe too similar to the level I described as \"a solid level\" which I think is better)\n((pancelor: I like the concept :) but also: agreed on all points... idk I think it's a nice large+relaxing final level)\n#################p\n#######.....######\n#######.....######\n#####.......######\n#####.........####\n###...........####\n###.............##\n#...............##\n#................#\n#....111..222....#\n#.....1...2.2....#\n#.....1...222....#\n#.....1...2......#\n#....111..2......#\n#................#\n#................#\n##...............#\n##.............###\n####...........###\n####.........#####\n######.......#####\n######.....#######\n######.....#######\n##################\n\nmessage whoa! you painted everything! congratulations!\n\n\n\n(\n\n(increpare: has a dead end :[ )\n######p\n#....##\n#..222#\n#....##\n##...1#\n#######\n\n(pancelor: seems impossible? I assume it is, but if I write \"seems impossible\" on one of these and it turns out it's actually not then maybe we should include it)\n#############p\n######..######\n####......####\n####....2.####\n##......2...##\n##....22222.##\n#.......2....#\n#....11.2....#\n##...11.....##\n##..........##\n####......####\n####......####\n######..######\n##############\n\n(pancelor: seems impossible)\n###########p\n###......###\n###....2.###\n#......2...#\n#....22222.#\n#......2...#\n#...11.2...#\n#...11.....#\n#..........#\n###......###\n###......###\n############\n\n(pancelor: seems impossible)\n###############\n######...####p#\n####.......####\n####.......####\n##.......2...##\n##.......2...##\n#......22222..#\n#........2....#\n#.....11.2....#\n##....11.....##\n##...........##\n####.......####\n####.......####\n######...######\n###############\n\n(increpare: not as good as above level )\n(pancelor: fun! but yeah this is pretty similar to some earlier levels)\n##########p\n##.......##\n#.........#\n#..1...2..#\n#.111#222.#\n#..1...2..#\n#.........#\n##.......##\n########### \n\n(increpare: bad because dead end)\n(pancelor: cool level! unfortunate that there's a dead end)\n######p\n#..1.##\n##....#\n#.....#\n##22..#\n#######\n\n\n\n\n\n(increpare: )\n((pancelor: seems impossible ;) )\n###########p\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n###########p\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n######p\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n###########p\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n(increpare: )\n(pancelor: I like the level! and not just for the aesthetic haha. but it's similar to some other ones so I can see why you cut it)\n#################p\n#..............###\n#..............###\n#.....222........#\n#.....2.2.#......#\n#.....22222......#\n#......11111.....#\n#......#.1.1.....#\n#........111.....#\n###..............#\n###..............#\n##################\n\n(increpare: )\n(pancelor: seems impossible)\n##########p\n#11......##\n#1........#\n#.........#\n#.....#...#\n#.........#\n#.........#\n#...#.....#\n#.........#\n#........2#\n##......22#\n###########\n)\n\n\n\n\n\n(\n(pancelor: has a dead-end... in fact the reason I think it's cool is because of what you have to do to avoid the dead end! oh well)\np########\n#......1#\n#.......#\n#..###..#\n#..###..#\n#..###..#\n#.......#\n#2..#...#\n#########\n\n(pancelor: really tricky and feels different from most other levels, but probably just feels like brute force work to solve)\n(pancelor: I think this is beatable but I don't remember)\np#######################\n######22.....###########\n#####22.......##########\n####.2........##########\n###...........##########\n##...#........##########\n#........##...##########\n#........#...###########\n#.......#...############\n#......#...#############\n#.........##############\n#1.......###############\n#1......################\n########################\n########################\n########################\n########################\n\n(pancelor: no win)\n########p##\n###....####\n##.....####\n#.1....####\n#.1#22.####\n#.122..####\n#..2...####\n#......####\n#......####\n#.....#####\n#.##.######\n###########\n\n(pancelor: no win)\n###########p\n##...###.1##\n#.....#.111#\n#.....#..1.#\n##....#....#\n###........#\n##.........#\n#..........#\n#..........#\n#22........#\n#22........#\n##........##\n############\n\n(pancelor: no win)\n##############p\n#####.....#####\n####.......####\n##...........##\n#.............#\n#.............#\n#...........1.#\n#.22.......111#\n##22..###...1##\n###############\n\n(pancelor: fine? not terribly interesting)\np#######\n#..211.#\n#..#...#\n##....##\n##..#..#\n##.....#\n########\n\n(pancelor: REALLY SATSIFYING. but too simple...? todo: feed to MIS -- delete some walls?)\n###############\n##############p\n###############\n###############\n###..##########\n###..##########\n##1....2#######\n##1....2#######\n#####..########\n#####..########\n###############\n###############\n###############\n###############\n\n(pancelor: kinda cool? idk it's fine)\n############p#\n#222...1111###\n#.....#....###\n#..........###\n##......#....#\n##...........#\n##.........###\n##.........###\n##.........###\n##############\n (pancelor: it's essentially just this which isn't a new concept:\n p###########\n #222...1111#\n #.....#....#\n #..........#\n ####....####\n ############)\n\n(pancelor: unbeatable; can't get into the last corner. feed to MIS?)\n###########p##\n##.....2222###\n#............#\n#.......#....#\n#11........###\n####....######\n####....######\n###.....######\n#.......######\n##############\n\n(pancelor: not very unique; could cut this one. satisfying to play, I think. feels a bit like pacman)\n(pancelor: this turned into my 1x1 corridor maze level, so I cut this version)\np########\n#..2....#\n#..2....#\n#.#####.#\n#...#...#\n#.......#\n###....##\n#....#..#\n#.......#\n#.###...#\n#...1..##\n#...1..##\n#########\n\n(pancelor: not possible)\n###p################\n####################\n#................###\n#..................#\n#..................#\n#..........#.......#\n#..................#\n#..................#\n#.....#.......111..#\n#2..............1..#\n#222..........1.1..#\n#2............111###\n####################\n####################\n\n(pancelor: not possible)\n#############p\n#............#\n#............#\n#....222222..#\n#..2......2..#\n#..2......2..#\n#..2..##..2..#\n#..2...#..2..#\n#..2.#....2..#\n#..2.....12..#\n#..22222222..#\n#............#\n#............#\n##############\n\n(pancelor: not possible)\np###################\n####################\n####################\n#.........##########\n#.111111...#########\n#.1.............####\n#.1......11111...###\n#.1...#......1...###\n#.1..22#.....1...###\n#.1..2.##....1...###\n#.1.......##.1...###\n#.1......##..1...###\n#.11111......1...###\n#.....11111111...###\n#................###\n#####............###\n####################\n####################\n\n(pancelor: not possible)\n##########################p\n##.......................##\n##.......................##\n##.......................##\n##......2222222..........##\n##............2..........##\n##......11111.2...1......##\n##......1.2.1.2...1.......#\n#.......1.2...2...1.......#\n#.......1.22222...1.......#\n#.......1.........1.......#\n#.......11111111111.......#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n##.......................##\n###########################\n\n)\n\n",[1,0,3,0,1,2,3,2,1],"background player slideleft wall winning:0,background wall:1,1,1,1,1,1,1,1,1,1,\n1,1,1,background canvas:2,2,1,1,1,1,1,1,\n1,1,1,background canvas paint2:3,3,3,background canvas paint1 paint2:4,4,1,1,background canvas paint1:5,\nbackground canvas crate1l0 crate1u0 crate1z0 paint1:6,background canvas crate1d0 crate1l0 crate1z0 paint1:7,1,1,3,3,3,4,4,1,1,\n5,background canvas crate1u0 crate1z0 paint1:8,background canvas crate1d0 crate1z0 paint1:9,1,1,3,3,3,4,4,2,\nbackground canvas crate2l0 crate2u0 crate2z0 paint2:10,background canvas crate2d0 crate2l0 crate2z0 paint1 paint2:11,background canvas crate1r0 crate1u0 crate1z0 paint1:12,background canvas crate1d0 crate1r0 crate1z0 paint1:13,1,1,1,3,3,4,4,\n3,background canvas crate2r0 crate2u0 crate2z0 paint2:14,background canvas crate2d0 crate2r0 crate2z0 paint1 paint2:15,5,5,1,1,1,3,3,4,\n4,4,4,4,5,5,1,1,1,1,1,\n4,4,5,5,5,5,5,1,1,1,1,\n1,4,4,5,5,5,5,5,1,1,1,\n1,1,1,1,1,1,1,5,5,1,1,\n1,1,1,1,1,1,1,1,1,1,1,\n",33,"1627893815569.176"] + "paint everything everywhere!", + ["title paint everything everywhere!\nauthor increpare + pancelor\nhomepage www.pancelor.com (increpare.com)\n\nbackground_color #db7f00\ntext_color #126a10\n\nagain_interval 0.05\nrun_rules_on_level_start\n( verbose_logging )\n\n========\nOBJECTS\n========\n\nBackground\n#ff00ff \ncanvas \n#F5ECE0 \n\nWall\n#51984f #ffb910\n00000\n01110\n01110\n01110\n00000\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate1Base\n#af101d\n00000\n0...0\n0...0\n0...0\n00000\n\nCrate1L0\n#af101d \n0....\n0.... \n0.... \n0.... \n0....\n\nCrate1R0\n#af101d \n....0\n....0\n....0\n....0\n....0\n\nCrate1U0\n#af101d \n00000\n.....\n.....\n.....\n.....\n\nCrate1D0\n#af101d \n.....\n.....\n.....\n.....\n00000\n\nCrate1Z0\n#af101d\n.....\n.....\n.....\n.....\n.....\n\nCrate2Base\n#7cecec \n00000\n0...0\n0...0\n0...0\n00000\n\nCrate2L0\n#7cecec \n0.... \n0.... \n0.... \n0.... \n0....\n\nCrate2R0\n#7cecec \n....0\n....0\n....0\n....0\n....0\n\n\nCrate2U0\n#7cecec \n00000\n.....\n.....\n.....\n.....\n\nCrate2D0\n#7cecec \n.....\n.....\n.....\n.....\n00000\n\nCrate2Z0\n#7cecec #F5ECE0\n.....\n.....\n.....\n.....\n.....\n\nPaint1\n#CC2936\n.....\n00000\n00000\n.....\n00000\n\nPaint2\n#2897B0\n....0\n....0\n.0000\n.00..\n000.0\n\nslideright\ntransparent\n\nslidedown\ntransparent\n\nslideleft\ntransparent\n\nslideup\ntransparent\n\nwinning\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background and canvas\n# = Wall\nP = Player\n1 = Crate1Base and canvas and paint1\n2 = Crate2Base and canvas and paint2\n\nCrate1=Crate1Base or Crate1L0 or Crate1R0 or Crate1U0 or Crate1D0 or Crate1Z0\nCrate2=Crate2Base or Crate2L0 or Crate2R0 or Crate2U0 or Crate2D0 or Crate2Z0\nCrateL=Crate1L0 or Crate2L0\nCrateR=Crate1R0 or Crate2R0\nCrateU=Crate1U0 or Crate2U0\nCrateD=Crate1D0 or Crate2D0\nCrateZ=Crate1Z0 or Crate2Z0\nCrate=Crate1 or Crate2\n\npaint=paint1 or paint2\nslidetag = slideleft or slideup or slideright or slidedown\nobs = wall or crate\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 30943107\n\n( sfx0 19998706 (paint1 ) )\n( sfx1 382306 (paint2 ) )\n\nsfx0 19045907\n( sfx0 129314260 )\n( sfx0 321260 )\n( sfx0 5212604 )\n( 1779703 )\n( 42076907 )\n( sfx1 56671706 )\nsfx1 99909509\n\nendlevel 74970903\n( endlevel 57283503 )\n( endlevel 34632303 )\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncanvas\npaint1\npaint2\nCrate1Base,Crate2Base\nPlayer\nWall, CrateZ\nCrateL\nCrateR\nCrateU\nCrateD\nslidetag\nwinning\n\n======\nRULES\n======\n\n(startup visuals)\n[Crate1Base] -> [Crate1L0 Crate1R0 Crate1U0 Crate1D0 Crate1Z0]\nleft [Crate1L0|Crate1R0]->[|]\nup [Crate1U0|Crate1D0]->[|]\n[Crate2Base] -> [Crate2L0 Crate2R0 Crate2U0 Crate2D0 Crate2Z0]\nleft [Crate2L0|Crate2R0]->[|]\nup [Crate2U0|Crate2D0]->[|]\n\n[player] -> [player wall winning]\n\n[> player slidetag]->[> player]\n\n[ up player ] -> [ player slideup ] again\n[ down player ] -> [ player slidedown ] again\n[ left player ] -> [ player slideleft ] again\n[ right player ] -> [ player slideright ] again\n\n[ slideup ] [ crate ] -> [ slideup ] [ up crate ] again\n[ slidedown ] [ crate ] -> [ slidedown ] [ down crate ] again\n[ slideleft ] [ crate ] -> [ slideleft ] [ left crate ] again\n[ slideright ] [ crate ] -> [ slideright ] [ right crate ] again\n\n[ > crate | stationary obs ] -> [ crate | stationary obs ]\n+ [ up crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ up crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n+ [ down crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ down crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n+ [ left crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ left crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n+ [ right crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ right crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n\n[> crate][winning] -> [> crate][]\n\nlate [ crate1 no paint1 ] -> [ crate1 paint1 ] sfx0\nlate [ crate2 no paint2 ] -> [ crate2 paint2 ] sfx1\n\n==============\nWINCONDITIONS\n==============\n\nall canvas on Paint1\nall canvas on Paint2\nsome winning\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 20\n(increpare:perfectly fine little level)\n(pancelor: these are both quite nice)\n######p\n#.....#\n#....##\n##.#.1#\n#..2..#\n#######\n\nmessage Level 2 of 20\n(increpare:also a perfectly fine little level)\n######p\n#.....#\n#.....#\n#..#..#\n#...###\n###1.2#\n#######\n\nmessage Level 3 of 20\n(increpare: level with rotational symmetry - this is somethign I repeat in some later levels - not sure if that means it's worth avoiding here)\n(pancelor: satisfying to fill all the corners. I went back and forth on whether to cut this level or not, but decided not to )\n###########p\n###.......##\n#.........##\n#......22..#\n#..11..22..#\n#..11......#\n##.........#\n##.......###\n############\n\nmessage Level 4 of 20\n(increpare: I kinda like this one)\n(pancelor: same! feels like a racetrack)\n###########p\n#11.#......#\n#11.#......#\n#......#.22#\n#......#.22#\n#...####...#\n#..........#\n#..........#\n############\n\nmessage Level 5 of 20\n(pancelor: i like it okay; i was a bit large IMO (made execution feel slow) -- I've compressed it a bit\n (increpare: kinda like this one?)\n #############p\n #11..........#\n #11..........#\n #....#.......#\n #....#.......#\n #..######....#\n #....####....#\n #....####....#\n #....####....#\n #....######..#\n #.......#....#\n #.......#....#\n #..........22#\n #..........22#\n ##############\n (pancelor: here's a variation that encourages some fun swirls:)\n p#############\n #11..........#\n #11..........#\n #.....#......#\n #.....#......#\n #.....###....#\n #..######....#\n #....####....#\n #....######..#\n #....###.....#\n #......#.....#\n #......#.....#\n #..........22#\n #..........22#\n ##############\n ) \n#############\n#22.........#\n#22.........#\n#....#......#\n#....#......#\n#..#####....#\n#....###....#\n#....#####..#\n#......#....#\n#......#....#\n#.........11#\n#.........11#\np############\n\nmessage Level 6 of 20\n(pancelor: really satisfying to play! lots of good swirling)\n(increpare: v. nice!)\np##############\n###11#####22###\n###....#....###\n###....#....###\n#....#####....#\n#....#####....#\n###.........###\n#####.....#####\n###############\n\n(\n(increpare: fine, maybe, but like other levels)\n(pancelor: I think this one introduces some new ideas in a nice small playground. you could probably figure them out in the next level too but I like that this one also exists)\n(pancelor: now that we have so many levels I think we should cut this)\n###########p\n#..........#\n#..........#\n#..........#\n#...111#...#\n#...1212...#\n#...1212...#\n#...#222...#\n#..........#\n#..........#\n#..........#\n############\n)\n\nmessage Level 7 of 20\n(pancelor: fun! based on your level (\"compressed it a bit\" above))\n(increpare: like it)\np########\n#......1#\n#.......#\n#..###..#\n#..###..#\n#..##...#\n#.......#\n#2.....##\n#########\n\nmessage Level 8 of 20\n(pancelor: not too hard)\n(increpare yeah fine!)\n#######p#\n##...####\n##....###\n##....2##\n##....2##\n##....2##\n##..#..##\n##.....##\n##1....##\n##11...##\n#########\n\nmessage Level 9 of 20\n(increpare: more involved version of the above. better?)\n(pancelor: I think both levels are good, but keep this one and cut the above one if you think we need to cut down on levels)\n#################p\n#................#\n#................#\n#................#\n#....1.111#......#\n#....1.121222....#\n#....111212.2....#\n#......#222.2....#\n#................#\n#................#\n#................#\n##################\n\n(\n(pancelor: ok? cut it for now b/c we have so many levels)\np########\n#......1#\n#.......#\n#..###..#\n#..###..#\n#..###..#\n#.......#\n#2..##..#\n#########\n)\n\n(\n(pancelor: ok? I like the feeling of stair-stepping)\n(increpare: easy + ok)\n#######p\n##....##\n#1....2#\n#11..22#\n#.1#.2.#\n#..#...#\n#......#\n#......#\n#......#\n#.....##\n##...###\n########\n)\n\nmessage Level 10 of 20\n(pancelor: a nice simple level that pretty clearly asks you to swap positions. I made this from one of your sketches:\n (bad because dead end)\n ######p\n ##....#\n #.....#\n #12...#\n #1##..#\n #######)\n \n (increpare:nice!)\np######\n#####.#\n##....#\n#.....#\n#....1#\n#.##21#\n#######\n\nmessage Level 11 of 20\n(increpare: decent level - has some satisfying block-pushing I think!)\n(pancelor: oh this is very cute -- one of my favorite levels! I like the way you need to them to help each other travel. I also like how it requires a lot of swapping -- swapping sides, swapping which piece goes left first. very nice)\n###########p\n###....#...#\n#..........#\n#.....#....#\n#111...#.22#\n############\n\nmessage Level 12 of 20\n(pancelor: based on a dead-end level you made; I liked the feeling of getting the triangles hooked together and then unhooking them.\n (increpare: solvabe but early+subtle dead end possible :[ )\n (pancelor: this one gave me a lot of trouble, until I read your comment about dead ends! then two more tries and I got it.)\n ##########p\n ##1.......#\n #11.......#\n #......#..#\n #.........#\n #.........#\n #.........#\n #.........#\n #..#......#\n #.......22#\n #.......2##\n ###########)\np#############\n##........####\n#..........1##\n#...#......11#\n#............#\n#............#\n#............#\n#22......#...#\n##2..........#\n####........##\n##############\n\nmessage Level 13 of 20\n(pancelor: an okay level, not particularly different but requires the brushes to support each other many times)\n(increpare:good)\n############p\n###111......#\n#...........#\n#...........#\n#...........#\n#......#....#\n#...#......2#\n##.........2#\n##.........2#\n##.........##\n#############\n\nmessage Level 14 of 20\n(pancelor: hard ish but maybe not too satisfying? the little 1x1 slot is hard to paint with the smaller brush -- probably will find it by brute force)\n(increpare: easy)\n############p#\n##1.....######\n#111111.....##\n#1...........#\n#............#\n#...#........#\n#..........2.#\n#..........22#\n#..........2##\n#....#.#######\n##############\n\n(\n(pancelor: an okay level, there's a cute reversal you have to do to paint the last square. not too hard)\n(increpare: ok!)\n###########\np#....#####\n##....22..#\n#....#211.#\n#....22...#\n#.........#\n#........##\n#........##\n###....####\n###########\n)\n\nmessage Level 15 of 20\n(increpare: a solid level! - strategic + no dead ends)\n(pancelor: really really nice! fun to swap them around.)\n#############p\n#######..#####\n#####......###\n###..........#\n#.....12.....#\n#...111222...#\n#...1....2...#\n#..........###\n###......#####\n#####..#######\n##############\n\nmessage Level 16 of 20\n(pancelor: an okay level, many fun little challenges to fill in the last corners of the board; none are too difficult)\n(increpare: way nicer than expected)\n##########p\n#.....1####\n#.....1111#\n#.......1.#\n#....#....#\n#.........#\n##........#\n#..#......#\n#.........#\n##...2....#\n####.2222##\n###########\n\nmessage Level 17 of 20\n(pancelor: maybe my favorite level?! a much harder variation of the my \"pretty clearly asks you to swap positions\" level. I think both levels can exist?)\n(pancelor: this one is hard because it goes through an easy-to-miss narrow chokepoint in state-space. the last couple moves are a bit tricky too)\n(increpare: nice!)\np########## \n##...###### \n#......#### \n#......#### \n##.....22## \n##.....22## \n####.....## \n####.....## \n##.......## \n##.....111# \n##.....111# \n###########\n\n(\n(pancelor: tricky, but sorta unfocused. probably feels brute-forcey)\n(increpare: pretty gruelling. maybe cut?)\n#############p\n#######....###\n###222......1#\n###......#..1#\n#...#........#\n#.....#......#\n###..........#\n######....####\n##############\n)\n\nmessage Level 18 of 20\n(pancelor: an okay level, about getting the two blocks to swap places)\n(increpare: I think this is hard but enjoyable?)\n###############p\n####.........22#\n##...........22#\n##.............#\n##............##\n###............#\n###............#\n#111...........#\n#111..........##\n#111........####\n################\n\nmessage Level 19 of 20\n(pancelor: a very thinky level; one of my favorite levels)\n(increpare pretty exhausting - i got it ish)\np###########\n#.........2#\n#.####...###\n#.#.####.###\n#.#......###\n#.###.##.###\n#.##......##\n#.....##..##\n#######1.###\n############\n\n(\n(pancelor: very hard but not in a satisfying way; the last corners are hard to hunt down. (the one square on the right side is kinda neat) idk I might cut this)\n###p################\n####################\n#########....#....##\n#########.........##\n###................#\n#............#.....#\n###................#\n##..............111#\n###...............1#\n#................11#\n###...............1#\n###222..........111#\n####################\n####################\n)\n\nmessage Level 20 of 20\n(increpare: I'm ok with this, but maybe too similar to the level I described as \"a solid level\" which I think is better)\n((pancelor: I like the concept :) but also: agreed on all points... idk I think it's a nice large+relaxing final level)\n#################p\n#######.....######\n#######.....######\n#####.......######\n#####.........####\n###...........####\n###.............##\n#...............##\n#................#\n#....111..222....#\n#.....1...2.2....#\n#.....1...222....#\n#.....1...2......#\n#....111..2......#\n#................#\n#................#\n##...............#\n##.............###\n####...........###\n####.........#####\n######.......#####\n######.....#######\n######.....#######\n##################\n\nmessage whoa! you painted everything! congratulations!\n\n\n\n(\n\n(increpare: has a dead end :[ )\n######p\n#....##\n#..222#\n#....##\n##...1#\n#######\n\n(pancelor: seems impossible? I assume it is, but if I write \"seems impossible\" on one of these and it turns out it's actually not then maybe we should include it)\n#############p\n######..######\n####......####\n####....2.####\n##......2...##\n##....22222.##\n#.......2....#\n#....11.2....#\n##...11.....##\n##..........##\n####......####\n####......####\n######..######\n##############\n\n(pancelor: seems impossible)\n###########p\n###......###\n###....2.###\n#......2...#\n#....22222.#\n#......2...#\n#...11.2...#\n#...11.....#\n#..........#\n###......###\n###......###\n############\n\n(pancelor: seems impossible)\n###############\n######...####p#\n####.......####\n####.......####\n##.......2...##\n##.......2...##\n#......22222..#\n#........2....#\n#.....11.2....#\n##....11.....##\n##...........##\n####.......####\n####.......####\n######...######\n###############\n\n(increpare: not as good as above level )\n(pancelor: fun! but yeah this is pretty similar to some earlier levels)\n##########p\n##.......##\n#.........#\n#..1...2..#\n#.111#222.#\n#..1...2..#\n#.........#\n##.......##\n########### \n\n(increpare: bad because dead end)\n(pancelor: cool level! unfortunate that there's a dead end)\n######p\n#..1.##\n##....#\n#.....#\n##22..#\n#######\n\n\n\n\n\n(increpare: )\n((pancelor: seems impossible ;) )\n###########p\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n###########p\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n######p\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n###########p\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n(increpare: )\n(pancelor: I like the level! and not just for the aesthetic haha. but it's similar to some other ones so I can see why you cut it)\n#################p\n#..............###\n#..............###\n#.....222........#\n#.....2.2.#......#\n#.....22222......#\n#......11111.....#\n#......#.1.1.....#\n#........111.....#\n###..............#\n###..............#\n##################\n\n(increpare: )\n(pancelor: seems impossible)\n##########p\n#11......##\n#1........#\n#.........#\n#.....#...#\n#.........#\n#.........#\n#...#.....#\n#.........#\n#........2#\n##......22#\n###########\n)\n\n\n\n\n\n(\n(pancelor: has a dead-end... in fact the reason I think it's cool is because of what you have to do to avoid the dead end! oh well)\np########\n#......1#\n#.......#\n#..###..#\n#..###..#\n#..###..#\n#.......#\n#2..#...#\n#########\n\n(pancelor: really tricky and feels different from most other levels, but probably just feels like brute force work to solve)\n(pancelor: I think this is beatable but I don't remember)\np#######################\n######22.....###########\n#####22.......##########\n####.2........##########\n###...........##########\n##...#........##########\n#........##...##########\n#........#...###########\n#.......#...############\n#......#...#############\n#.........##############\n#1.......###############\n#1......################\n########################\n########################\n########################\n########################\n\n(pancelor: no win)\n########p##\n###....####\n##.....####\n#.1....####\n#.1#22.####\n#.122..####\n#..2...####\n#......####\n#......####\n#.....#####\n#.##.######\n###########\n\n(pancelor: no win)\n###########p\n##...###.1##\n#.....#.111#\n#.....#..1.#\n##....#....#\n###........#\n##.........#\n#..........#\n#..........#\n#22........#\n#22........#\n##........##\n############\n\n(pancelor: no win)\n##############p\n#####.....#####\n####.......####\n##...........##\n#.............#\n#.............#\n#...........1.#\n#.22.......111#\n##22..###...1##\n###############\n\n(pancelor: fine? not terribly interesting)\np#######\n#..211.#\n#..#...#\n##....##\n##..#..#\n##.....#\n########\n\n(pancelor: REALLY SATSIFYING. but too simple...? todo: feed to MIS -- delete some walls?)\n###############\n##############p\n###############\n###############\n###..##########\n###..##########\n##1....2#######\n##1....2#######\n#####..########\n#####..########\n###############\n###############\n###############\n###############\n\n(pancelor: kinda cool? idk it's fine)\n############p#\n#222...1111###\n#.....#....###\n#..........###\n##......#....#\n##...........#\n##.........###\n##.........###\n##.........###\n##############\n (pancelor: it's essentially just this which isn't a new concept:\n p###########\n #222...1111#\n #.....#....#\n #..........#\n ####....####\n ############)\n\n(pancelor: unbeatable; can't get into the last corner. feed to MIS?)\n###########p##\n##.....2222###\n#............#\n#.......#....#\n#11........###\n####....######\n####....######\n###.....######\n#.......######\n##############\n\n(pancelor: not very unique; could cut this one. satisfying to play, I think. feels a bit like pacman)\n(pancelor: this turned into my 1x1 corridor maze level, so I cut this version)\np########\n#..2....#\n#..2....#\n#.#####.#\n#...#...#\n#.......#\n###....##\n#....#..#\n#.......#\n#.###...#\n#...1..##\n#...1..##\n#########\n\n(pancelor: not possible)\n###p################\n####################\n#................###\n#..................#\n#..................#\n#..........#.......#\n#..................#\n#..................#\n#.....#.......111..#\n#2..............1..#\n#222..........1.1..#\n#2............111###\n####################\n####################\n\n(pancelor: not possible)\n#############p\n#............#\n#............#\n#....222222..#\n#..2......2..#\n#..2......2..#\n#..2..##..2..#\n#..2...#..2..#\n#..2.#....2..#\n#..2.....12..#\n#..22222222..#\n#............#\n#............#\n##############\n\n(pancelor: not possible)\np###################\n####################\n####################\n#.........##########\n#.111111...#########\n#.1.............####\n#.1......11111...###\n#.1...#......1...###\n#.1..22#.....1...###\n#.1..2.##....1...###\n#.1.......##.1...###\n#.1......##..1...###\n#.11111......1...###\n#.....11111111...###\n#................###\n#####............###\n####################\n####################\n\n(pancelor: not possible)\n##########################p\n##.......................##\n##.......................##\n##.......................##\n##......2222222..........##\n##............2..........##\n##......11111.2...1......##\n##......1.2.1.2...1.......#\n#.......1.2...2...1.......#\n#.......1.22222...1.......#\n#.......1.........1.......#\n#.......11111111111.......#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n##.......................##\n###########################\n\n)\n\n", [1, 0, 3, 0, 1, 2, 3, 2, 1], "background player slideleft wall winning:0,background wall:1,1,1,1,1,1,1,1,1,1,\n1,1,1,background canvas:2,2,1,1,1,1,1,1,\n1,1,1,background canvas paint2:3,3,3,background canvas paint1 paint2:4,4,1,1,background canvas paint1:5,\nbackground canvas crate1l0 crate1u0 crate1z0 paint1:6,background canvas crate1d0 crate1l0 crate1z0 paint1:7,1,1,3,3,3,4,4,1,1,\n5,background canvas crate1u0 crate1z0 paint1:8,background canvas crate1d0 crate1z0 paint1:9,1,1,3,3,3,4,4,2,\nbackground canvas crate2l0 crate2u0 crate2z0 paint2:10,background canvas crate2d0 crate2l0 crate2z0 paint1 paint2:11,background canvas crate1r0 crate1u0 crate1z0 paint1:12,background canvas crate1d0 crate1r0 crate1z0 paint1:13,1,1,1,3,3,4,4,\n3,background canvas crate2r0 crate2u0 crate2z0 paint2:14,background canvas crate2d0 crate2r0 crate2z0 paint1 paint2:15,5,5,1,1,1,3,3,4,\n4,4,4,4,5,5,1,1,1,1,1,\n4,4,5,5,5,5,5,1,1,1,1,\n1,4,4,5,5,5,5,5,1,1,1,\n1,1,1,1,1,1,1,5,5,1,1,\n1,1,1,1,1,1,1,1,1,1,1,\n", 33, "1627893815569.176"] ], [ - "Putting Bicycle Helmets on Young Children", - ["title Putting Bicycle Helmets on Young Children\nauthor increpare\nhomepage www.increpare.com\n\ncolor_palette 4\n\nverbose_logging\nagain_interval 0.1\n\nnoaction\n\nbackground_color #4a7aff\ntext_color Yellow\n========\nOBJECTS\n========\n\nBackground\nlightblue\n\nsilhouette\n#98cce3\n\nPlayer\nOrange Orange Orange Orange\n..000\n..110\n0.111\n.0333\n..000\n\nhair\nYellow \n\nfixedhair\nYellow lightred\n00000\n00000\n00000\n01010\n11111\n\nskin\nlightred\n\nboundary\n#062fa1\n\nhelmet\nblue\n\nhelmetbg\n#4a7aff\n\n\n\nstrapsource_l\nblack\n00000\n00000\n.000.\n.000.\n.000.\n\nstrapsource_r\nblack\n00000\n00000\n.000.\n.000.\n.000.\n\nstrap\nblack\n.....\n00000\n00000\n00000\n.....\n\n\nconnectedhairto_n\nwhite\n..0..\n.....\n.....\n.....\n.....\n\nconnectedhairto_s\nwhite\n.....\n.....\n.....\n.....\n..0..\n\nconnectedhairto_e\nwhite\n.....\n.....\n....0\n.....\n.....\n\nconnectedhairto_w\nwhite\n.....\n.....\n0....\n.....\n.....\n\nconnected\nred\n.....\n.....\n..0..\n.....\n.....\n\neye1\nwhite\n\neye2\nblue\n\nmouth \nred\n\n\n\nzipper_l\nblack orange\n00111\n00111\n10111\n01111\n00111\n\n\nzipper_r\nblack orange\n00111\n00111\n10111\n01111\n00111\n\n\nzipper_l_retract\nblack orange\n00111\n00111\n10111\n01111\n00111\n\n\nzipper_r_retract\nblack orange\n00111\n00111\n10111\n01111\n00111\n\n\nstrapstart\nblack\n00000\n00000\n00000\n.....\n.....\n\n=======\nLEGEND\n=======\n\n\nstrapsource = strapsource_l or strapsource_r\nconnectedtotoken = connectedhairto_n or connectedhairto_s or connectedhairto_e or connectedhairto_w\n\nconnectedhairto_horizontal = connectedhairto_e or connectedhairto_w\nconnectedhairto_vertical = connectedhairto_n or connectedhairto_s\n\npushing = player or hair or helmet or strapsource\npushable = hair or helmet or strapsource\nobstacle = hair or helmet or strapsource or boundary or skin\n\nhelmetpiece = helmet or strapsource\n\nzipper = zipper_l or zipper_r or zipper_l_retract or zipper_r_retract\n\n. = Background\n, = boundary\n# = skin \n; = hair\nf = fixedhair and hair\nP = Player\nh = helmet\nl = strapsource_l\nr = strapsource_r\n~ = silhouette\ne = eye1 and skin\ng = eye2 and skin\nm = mouth and skin\n% = helmetbg\n\n=======\nSOUNDS\n=======\n\nsfx0 74339307 (snap)\nsfx1 50788707 (unsnap)\nsfx2 3464107 (zip)\nsfx3 54163106 (unzip)\nsfx4 27135507 (flip)\nendlevel 99085705\n\n================\nCOLLISIONLAYERS\n================\nconnectedhairto_n\nconnectedhairto_s\nconnectedhairto_e\nconnectedhairto_w\nconnected\n\n\nBackground\nhelmetbg\nsilhouette\nstrapstart\nPlayer, hair, skin, boundary, strap, helmet,strapsource, zipper_l , zipper_r,zipper_l_retract ,zipper_r_retract\nfixedhair\neye1,eye2, mouth\n\n======\nRULES\n======\n\n [connectedtotoken]->[]\n [connected ] ->[]\n \n \nrandom left [ zipper_l_retract strapstart | ] -> [ no strap strapsource_l no strap | Player ] sfx1\nrandom left [ zipper_l_retract | strapstart | ] -> [ no strap | strapsource_l no strap | Player ] sfx1\nrandom left [ zipper_l_retract | strap ] -> [ | zipper_l_retract ] sfx3\n\nrandom right [ zipper_r_retract strapstart | ] -> [ no strap strapsource_r no strap | Player ] sfx1\nrandom right [ zipper_r_retract | strapstart | ] -> [ no strap | strapsource_r no strap | Player ] sfx1\nrandom right [ zipper_r_retract | strap ] -> [ | zipper_r_retract ] sfx3\n\nrandom right [ zipper_r | strapsource_r ] [skin no helmetbg ]-> [zipper_l_retract | strapsource_r] [skin no helmetbg ]\nrandom right [ zipper_r | strapsource_r | ] -> [ strap | strap strapstart | Player ] sfx0\nrandom right [ zipper_r | obstacle ] -> [zipper_l_retract | obstacle] sfx4\nrandom right [ zipper_r | no obstacle ] -> [ strap | zipper_r ] sfx2\n\nrandom left [ zipper_l | strapsource_l ] [skin no helmetbg ]-> [zipper_r_retract | strapsource_l] [skin no helmetbg ]\nrandom left [ zipper_l | strapsource_l | ] -> [ strap | strap strapstart | Player ] sfx0\nrandom left [ zipper_l | obstacle ] -> [zipper_r_retract |obstacle ] sfx4\nrandom left [ zipper_l | no obstacle ] -> [ strap | zipper_l ] sfx2\n\n[ > Player | strapsource_l ] -> [|strapstart zipper_r] \n[ > Player | strapsource_r ] -> [| strapstart zipper_l] \n\n(propagate movements)\n[ > pushing | pushable ] -> [ > pushing | > pushable ]\n+ [ moving helmetpiece ] [stationary helmetpiece ] -> [moving helmetpiece ] [ moving helmetpiece ]\n\n\n\n(backwards propagation)\n\n( [ obstacle | )\n\n[ > pushable | stationary obstacle ] -> cancel\n\n[ moving helmet] [ helmetbg] ->[ moving helmet ] [ moving helmetbg ]\n\nlate [ fixedhair | hair ] -> [ fixedhair | hair connected ]\nlate right [fixedhair | no hair ] -> [ fixedhair | connectedhairto_w ]\nlate left [fixedhair | no hair ] -> [ fixedhair | connectedhairto_e ]\nlate down [fixedhair | no hair ] -> [ fixedhair | connectedhairto_n ]\nlate up [fixedhair | no hair ] -> [ fixedhair | connectedhairto_s ]\n\n\nlate [ hair connected | hair ] -> [ hair connected | hair connected ]\n+ late right [hair connected | no hair ] -> [ hair connected | connectedhairto_w ]\n+ late left [hair connected | no hair ] -> [ hair connected | connectedhairto_e ]\n+ late down [hair connected | no hair ] -> [ hair connected | connectedhairto_n ]\n+ late up [hair connected | no hair ] -> [ hair connected | connectedhairto_s ]\n\n+ late horizontal [hair no connected | connectedhairto_vertical ] -> [ hair connected | connectedhairto_vertical]\n+ late vertical [hair no connected | connectedhairto_horizontal ] -> [ hair connected | connectedhairto_horizontal]\n\nlate [hair no connected ] -> cancel\nlate [ fixedhair no hair ] -> cancel\n\nlate [zipper]->again\n==============\nWINCONDITIONS\n==============\n\nall skin on helmetbg\nno strapsource\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 3: Cycling back from the barber's.\n\n,,,,,,,,,,,,,,,,,,,,,,,,\n,......................,\n,......................,\n,......hh%hhhh%hh......,\n,.....hhh%hhhh%hhh.....,\n,....hhh%%%%%%%%hhh....,\n,....hh%%%%%%%%%%hh....,\n,...hhh%%%%%%%%%%hhh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,....l............r....,\n,......................,\n,......................,\n,..............;.......,\n,.........;;;;;........,\n,........;fffff;.......,\n,........;ee#ee;.......,\n,.........eg#ge........,\n,.p.......#####........,\n,.........#mmm#........,\n,........~#####~.......,\n,.......~.~~~~~.~......,\n,.......~.~~~~~.~......,\n,,,,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Level 2 of 3: Cycling to the playground.\n\n,,,,,,,,,,,,,,,,,,,,,,,,\n,......................,\n,......................,\n,......hh%hhhh%hh......,\n,.....hhh%hhhh%hhh.....,\n,....hhh%%%%%%%%hhh....,\n,....hh%%%%%%%%%%hh....,\n,...hhh%%%%%%%%%%hhh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,....l............r....,\n,..........;;;;........,\n,.......;;;.;;;........,\n,.......;;;;;;;;;;.....,\n,.......;;;;;;;;;;.....,\n,......;;;fffff;;;.....,\n,.......;;ee#ee;;.;....,\n,........;eg#ge;.......,\n,.p.......#####........,\n,.........#mmm#........,\n,........~#####~.......,\n,.......~.~~~~~.~......,\n,.......~.~~~~~.~......,\n,,,,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Level 3 of 3: Time to cycle to the barber's again.\n\n,,,,,,,,,,,,,,,,,,,,,,,,\n,......................,\n,......................,\n,......hh%hhhh%hh......,\n,.....hhh%hhhh%hhh.....,\n,....hhh%%%%%%%%hhh....,\n,....hh%%%%%%%%%%hh....,\n,...hhh%%%%%%%%%%hhh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,....l............r....,\n,......;...;;;;;.......,\n,.......;.;;.;.........,\n,.......;.;;;;;.;.;....,\n,.....;;;;;;;;;;;;.....,\n,...;;;;;;fffff;;;;....,\n,..;.;..;;ee#ee;;..;...,\n,...;;;;;;eg#ge;.;;....,\n,.p..;.;..#####..;;....,\n,.....;.;.#mmm#.;;.;...,\n,.....;;.~#####~;.;....,\n,....;.;~.~~~~~.~.;....,\n,.......~.~~~~~.~......,\n,,,,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Congratulations: you have completed the cycle.\n\n",[0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,3,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,3,3,2,2,3,3,3,3,0,3,0,0,0,0,0,1,0,3,3,3,2,3,1,0,0,3,3,3],"background boundary: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,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\nbackground helmet:2,2,2,2,2,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n2,2,2,2,2,2,2,background strapsource_l:3,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,2,2,2,2,background helmetbg:4,4,4,4,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,2,2,2,4,4,4,4,4,4,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,2,2,4,4,4,4,4,4,4,1,1,background silhouette:5,5,0,0,1,1,1,1,1,\n1,1,1,1,1,1,4,4,4,4,background connectedhairto_e helmetbg:6,6,4,4,4,1,5,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,2,2,4,background connectedhairto_s helmetbg:7,background connected hair helmetbg:8,background connected fixedhair hair helmetbg:9,background connectedhairto_n eye1 helmetbg skin:10,background eye1 helmetbg skin:11,background helmetbg skin:12,background skin:13,13,5,5,0,0,1,\n1,1,1,1,1,1,1,1,1,1,2,2,4,background connectedhairto_e connectedhairto_s helmetbg player:14,8,9,10,background eye2 helmetbg skin:15,12,background mouth skin:16,13,5,5,0,\n0,1,1,1,1,1,1,1,1,1,1,1,2,2,7,8,8,9,background connectedhairto_n helmetbg skin:17,12,12,16,13,5,\n5,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,4,background connectedhairto_s connectedhairto_w helmetbg:18,8,9,10,15,12,16,\n13,5,5,0,0,1,1,1,1,1,1,1,1,1,1,1,4,4,4,background connectedhairto_e connectedhairto_s helmetbg:19,8,9,background connectedhairto_e connectedhairto_n eye1 helmetbg skin:20,11,\n12,13,13,5,5,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,7,8,8,8,\n8,background connectedhairto_n helmetbg:21,4,1,5,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,2,background connectedhairto_w helmetbg:22,\n22,22,22,4,4,1,1,5,5,0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,\n2,2,2,4,4,4,4,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,2,2,2,2,2,2,2,background strapsource_r:23,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,\n",1,"1627893829074.0923"] + "Putting Bicycle Helmets on Young Children", + ["title Putting Bicycle Helmets on Young Children\nauthor increpare\nhomepage www.increpare.com\n\ncolor_palette 4\n\nverbose_logging\nagain_interval 0.1\n\nnoaction\n\nbackground_color #4a7aff\ntext_color Yellow\n========\nOBJECTS\n========\n\nBackground\nlightblue\n\nsilhouette\n#98cce3\n\nPlayer\nOrange Orange Orange Orange\n..000\n..110\n0.111\n.0333\n..000\n\nhair\nYellow \n\nfixedhair\nYellow lightred\n00000\n00000\n00000\n01010\n11111\n\nskin\nlightred\n\nboundary\n#062fa1\n\nhelmet\nblue\n\nhelmetbg\n#4a7aff\n\n\n\nstrapsource_l\nblack\n00000\n00000\n.000.\n.000.\n.000.\n\nstrapsource_r\nblack\n00000\n00000\n.000.\n.000.\n.000.\n\nstrap\nblack\n.....\n00000\n00000\n00000\n.....\n\n\nconnectedhairto_n\nwhite\n..0..\n.....\n.....\n.....\n.....\n\nconnectedhairto_s\nwhite\n.....\n.....\n.....\n.....\n..0..\n\nconnectedhairto_e\nwhite\n.....\n.....\n....0\n.....\n.....\n\nconnectedhairto_w\nwhite\n.....\n.....\n0....\n.....\n.....\n\nconnected\nred\n.....\n.....\n..0..\n.....\n.....\n\neye1\nwhite\n\neye2\nblue\n\nmouth \nred\n\n\n\nzipper_l\nblack orange\n00111\n00111\n10111\n01111\n00111\n\n\nzipper_r\nblack orange\n00111\n00111\n10111\n01111\n00111\n\n\nzipper_l_retract\nblack orange\n00111\n00111\n10111\n01111\n00111\n\n\nzipper_r_retract\nblack orange\n00111\n00111\n10111\n01111\n00111\n\n\nstrapstart\nblack\n00000\n00000\n00000\n.....\n.....\n\n=======\nLEGEND\n=======\n\n\nstrapsource = strapsource_l or strapsource_r\nconnectedtotoken = connectedhairto_n or connectedhairto_s or connectedhairto_e or connectedhairto_w\n\nconnectedhairto_horizontal = connectedhairto_e or connectedhairto_w\nconnectedhairto_vertical = connectedhairto_n or connectedhairto_s\n\npushing = player or hair or helmet or strapsource\npushable = hair or helmet or strapsource\nobstacle = hair or helmet or strapsource or boundary or skin\n\nhelmetpiece = helmet or strapsource\n\nzipper = zipper_l or zipper_r or zipper_l_retract or zipper_r_retract\n\n. = Background\n, = boundary\n# = skin \n; = hair\nf = fixedhair and hair\nP = Player\nh = helmet\nl = strapsource_l\nr = strapsource_r\n~ = silhouette\ne = eye1 and skin\ng = eye2 and skin\nm = mouth and skin\n% = helmetbg\n\n=======\nSOUNDS\n=======\n\nsfx0 74339307 (snap)\nsfx1 50788707 (unsnap)\nsfx2 3464107 (zip)\nsfx3 54163106 (unzip)\nsfx4 27135507 (flip)\nendlevel 99085705\n\n================\nCOLLISIONLAYERS\n================\nconnectedhairto_n\nconnectedhairto_s\nconnectedhairto_e\nconnectedhairto_w\nconnected\n\n\nBackground\nhelmetbg\nsilhouette\nstrapstart\nPlayer, hair, skin, boundary, strap, helmet,strapsource, zipper_l , zipper_r,zipper_l_retract ,zipper_r_retract\nfixedhair\neye1,eye2, mouth\n\n======\nRULES\n======\n\n [connectedtotoken]->[]\n [connected ] ->[]\n \n \nrandom left [ zipper_l_retract strapstart | ] -> [ no strap strapsource_l no strap | Player ] sfx1\nrandom left [ zipper_l_retract | strapstart | ] -> [ no strap | strapsource_l no strap | Player ] sfx1\nrandom left [ zipper_l_retract | strap ] -> [ | zipper_l_retract ] sfx3\n\nrandom right [ zipper_r_retract strapstart | ] -> [ no strap strapsource_r no strap | Player ] sfx1\nrandom right [ zipper_r_retract | strapstart | ] -> [ no strap | strapsource_r no strap | Player ] sfx1\nrandom right [ zipper_r_retract | strap ] -> [ | zipper_r_retract ] sfx3\n\nrandom right [ zipper_r | strapsource_r ] [skin no helmetbg ]-> [zipper_l_retract | strapsource_r] [skin no helmetbg ]\nrandom right [ zipper_r | strapsource_r | ] -> [ strap | strap strapstart | Player ] sfx0\nrandom right [ zipper_r | obstacle ] -> [zipper_l_retract | obstacle] sfx4\nrandom right [ zipper_r | no obstacle ] -> [ strap | zipper_r ] sfx2\n\nrandom left [ zipper_l | strapsource_l ] [skin no helmetbg ]-> [zipper_r_retract | strapsource_l] [skin no helmetbg ]\nrandom left [ zipper_l | strapsource_l | ] -> [ strap | strap strapstart | Player ] sfx0\nrandom left [ zipper_l | obstacle ] -> [zipper_r_retract |obstacle ] sfx4\nrandom left [ zipper_l | no obstacle ] -> [ strap | zipper_l ] sfx2\n\n[ > Player | strapsource_l ] -> [|strapstart zipper_r] \n[ > Player | strapsource_r ] -> [| strapstart zipper_l] \n\n(propagate movements)\n[ > pushing | pushable ] -> [ > pushing | > pushable ]\n+ [ moving helmetpiece ] [stationary helmetpiece ] -> [moving helmetpiece ] [ moving helmetpiece ]\n\n\n\n(backwards propagation)\n\n( [ obstacle | )\n\n[ > pushable | stationary obstacle ] -> cancel\n\n[ moving helmet] [ helmetbg] ->[ moving helmet ] [ moving helmetbg ]\n\nlate [ fixedhair | hair ] -> [ fixedhair | hair connected ]\nlate right [fixedhair | no hair ] -> [ fixedhair | connectedhairto_w ]\nlate left [fixedhair | no hair ] -> [ fixedhair | connectedhairto_e ]\nlate down [fixedhair | no hair ] -> [ fixedhair | connectedhairto_n ]\nlate up [fixedhair | no hair ] -> [ fixedhair | connectedhairto_s ]\n\n\nlate [ hair connected | hair ] -> [ hair connected | hair connected ]\n+ late right [hair connected | no hair ] -> [ hair connected | connectedhairto_w ]\n+ late left [hair connected | no hair ] -> [ hair connected | connectedhairto_e ]\n+ late down [hair connected | no hair ] -> [ hair connected | connectedhairto_n ]\n+ late up [hair connected | no hair ] -> [ hair connected | connectedhairto_s ]\n\n+ late horizontal [hair no connected | connectedhairto_vertical ] -> [ hair connected | connectedhairto_vertical]\n+ late vertical [hair no connected | connectedhairto_horizontal ] -> [ hair connected | connectedhairto_horizontal]\n\nlate [hair no connected ] -> cancel\nlate [ fixedhair no hair ] -> cancel\n\nlate [zipper]->again\n==============\nWINCONDITIONS\n==============\n\nall skin on helmetbg\nno strapsource\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 3: Cycling back from the barber's.\n\n,,,,,,,,,,,,,,,,,,,,,,,,\n,......................,\n,......................,\n,......hh%hhhh%hh......,\n,.....hhh%hhhh%hhh.....,\n,....hhh%%%%%%%%hhh....,\n,....hh%%%%%%%%%%hh....,\n,...hhh%%%%%%%%%%hhh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,....l............r....,\n,......................,\n,......................,\n,..............;.......,\n,.........;;;;;........,\n,........;fffff;.......,\n,........;ee#ee;.......,\n,.........eg#ge........,\n,.p.......#####........,\n,.........#mmm#........,\n,........~#####~.......,\n,.......~.~~~~~.~......,\n,.......~.~~~~~.~......,\n,,,,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Level 2 of 3: Cycling to the playground.\n\n,,,,,,,,,,,,,,,,,,,,,,,,\n,......................,\n,......................,\n,......hh%hhhh%hh......,\n,.....hhh%hhhh%hhh.....,\n,....hhh%%%%%%%%hhh....,\n,....hh%%%%%%%%%%hh....,\n,...hhh%%%%%%%%%%hhh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,....l............r....,\n,..........;;;;........,\n,.......;;;.;;;........,\n,.......;;;;;;;;;;.....,\n,.......;;;;;;;;;;.....,\n,......;;;fffff;;;.....,\n,.......;;ee#ee;;.;....,\n,........;eg#ge;.......,\n,.p.......#####........,\n,.........#mmm#........,\n,........~#####~.......,\n,.......~.~~~~~.~......,\n,.......~.~~~~~.~......,\n,,,,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Level 3 of 3: Time to cycle to the barber's again.\n\n,,,,,,,,,,,,,,,,,,,,,,,,\n,......................,\n,......................,\n,......hh%hhhh%hh......,\n,.....hhh%hhhh%hhh.....,\n,....hhh%%%%%%%%hhh....,\n,....hh%%%%%%%%%%hh....,\n,...hhh%%%%%%%%%%hhh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,....l............r....,\n,......;...;;;;;.......,\n,.......;.;;.;.........,\n,.......;.;;;;;.;.;....,\n,.....;;;;;;;;;;;;.....,\n,...;;;;;;fffff;;;;....,\n,..;.;..;;ee#ee;;..;...,\n,...;;;;;;eg#ge;.;;....,\n,.p..;.;..#####..;;....,\n,.....;.;.#mmm#.;;.;...,\n,.....;;.~#####~;.;....,\n,....;.;~.~~~~~.~.;....,\n,.......~.~~~~~.~......,\n,,,,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Congratulations: you have completed the cycle.\n\n", [0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 3, 3, 3, 3, 0, 3, 0, 0, 0, 0, 0, 1, 0, 3, 3, 3, 2, 3, 1, 0, 0, 3, 3, 3], "background boundary: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,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\nbackground helmet:2,2,2,2,2,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n2,2,2,2,2,2,2,background strapsource_l:3,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,2,2,2,2,background helmetbg:4,4,4,4,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,2,2,2,4,4,4,4,4,4,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,2,2,4,4,4,4,4,4,4,1,1,background silhouette:5,5,0,0,1,1,1,1,1,\n1,1,1,1,1,1,4,4,4,4,background connectedhairto_e helmetbg:6,6,4,4,4,1,5,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,2,2,4,background connectedhairto_s helmetbg:7,background connected hair helmetbg:8,background connected fixedhair hair helmetbg:9,background connectedhairto_n eye1 helmetbg skin:10,background eye1 helmetbg skin:11,background helmetbg skin:12,background skin:13,13,5,5,0,0,1,\n1,1,1,1,1,1,1,1,1,1,2,2,4,background connectedhairto_e connectedhairto_s helmetbg player:14,8,9,10,background eye2 helmetbg skin:15,12,background mouth skin:16,13,5,5,0,\n0,1,1,1,1,1,1,1,1,1,1,1,2,2,7,8,8,9,background connectedhairto_n helmetbg skin:17,12,12,16,13,5,\n5,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,4,background connectedhairto_s connectedhairto_w helmetbg:18,8,9,10,15,12,16,\n13,5,5,0,0,1,1,1,1,1,1,1,1,1,1,1,4,4,4,background connectedhairto_e connectedhairto_s helmetbg:19,8,9,background connectedhairto_e connectedhairto_n eye1 helmetbg skin:20,11,\n12,13,13,5,5,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,7,8,8,8,\n8,background connectedhairto_n helmetbg:21,4,1,5,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,2,background connectedhairto_w helmetbg:22,\n22,22,22,4,4,1,1,5,5,0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,\n2,2,2,4,4,4,4,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,2,2,2,2,2,2,2,background strapsource_r:23,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,\n", 1, "1627893829074.0923"] ], [ - "No! Don't eat that!", - ["title No! Don't eat that!\nauthor increpare\nhomepage www.increpare.com\nbackground_color #879fcf\n\nagain_interval 0.1\n\ntext_color #45283c\n\ncolor_palette 2\n\nnoaction\n( verbose_logging )\n\ndebug\nverbose_logging\n========\nOBJECTS\n========\n\nBackground\nblue\n\nTarget\ntransparent\n.....\n.000.\n.0.0.\n.000.\n.....\n\nPlayer\ntransparent\n\nCrate1 \n#c45509\n\n\nCrate2 \n#409437 \n\nbody1\n#31491a\n\nbody2\n#eec39a\n\nmaneye\n#eec39a #ffffff brown pink\n00000\n11111\n11121\n01113\n00000\n\nmannostrils\n#eec39a darkbrown\n00000\n00000\n00000\n11100\n00000\n\nmanmouth\n#eec39a red\n00000\n00000\n00011\n11111\n11111\n\nwall1 !\n#4b692f\n\nwall2 \"\n#eec39a\n\nwall3 £\n#ffffff\n\nwall4 $\n#d77bba\n\nwall5 %\n#d77bba #ffffff blue\n00000\n01220\n11221\n01110\n00000\n\n\neyeclose\n#d77bba black\n00000\n00000\n11111\n00000\n00000\n\nwall6 ;\n#d77bba #000000\n00000\n00000\n00000\n00000\n01010\n\n\nwall7 &\n#ac3232\n\n\nlevelbg -\n#45283c\n\n\n\n\nslideright\nred\n..0..\n..0..\n.....\n.....\n.....\n\nslidedown\nyellow\n.....\n.....\n.....\n..0..\n..0..\n\nslideleft\nwhite\n.....\n.....\n00...\n.....\n.....\n\nslideup\n#0000ff\n.....\n.....\n...00\n.....\n.....\n\n\n\n\n\n=======\nLEGEND\n=======\n\nwall = wall1 or wall2 or wall3 or wall4 or wall5 or wall6 or wall7\n\n1 = crate1 and levelbg\n2 = crate2 and levelbg\ncrate = crate1 or crate2\nslidetag = slideleft or slideup or slideright or slidedown\n. = levelbg\n# = wall4\nP = Player and Background\n* = Crate1 and levelbg\n@ = Crate1 and Target and levelbg\nO = Target \nobs = wall or crate\n, = Background\n3 = body1\n4 = body2\n5 = body1 and wall1\n6 = mannostrils\n7 = maneye\n8 = manmouth\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx0 60551707 (item destroyed)\n\n================\nCOLLISIONLAYERS\n================\n\nslidetag\n\nBackground\nlevelbg\nTarget\nPlayer\nbody1, body2, maneye, mannostrils, manmouth\nWall, Crate\neyeclose\n\n======\nRULES\n======\n\n(FRAME 1 STUFF)\n\n[ moving player ] [ slidetag ] -> [ moving player ] [] \n\n[ moving player ] [ wall ] -> [ moving player ] [ moving wall ] again\n[ > wall | stationary crate ] -> [ > wall | > crate ]\n\n[ moving crate1 | stationary crate1 ] -> [ moving crate1 | moving crate1 ]\n+ [moving crate2 | stationary crate2 ] -> [ moving crate2 | moving crate2 ]\n+ [ > crate1 | stationary crate2 ] -> [ > crate1 | > crate2 ]\n+ [ > crate2 | stationary crate1 ] -> [ > crate2 | > crate1 ]\n\nup [ > obs | ] -> [ > obs | slideup ]\ndown [ > obs | ] -> [ > obs | slidedown ]\nleft [ > obs | ] -> [ > obs | slideleft ]\nright [ > obs | ] -> [ > obs | slideright ]\n\n(FRAME 2+ STUFF)\n[ stationary player ] [ wall slideup ] -> [ stationary player ] [ down wall ] again\n[ stationary player ] [ wall slidedown ] -> [ stationary player ] [ up wall ] again\n[ stationary player ] [ wall slideleft ] -> [ stationary player ] [ right wall ] again\n[ stationary player ] [ wall slideright ] -> [ stationary player ] [ left wall ] again\n\n\n(prepropagation here - could be that during frame 2, crates get yanked back into palce)\n\n[ stationary player ] [ > wall | stationary crate ] ->[ stationary player ] [ > wall | > crate no slidetag]\n+ [ stationary player ] [ moving crate1 | stationary crate1 ] -> [ stationary player ] [ moving crate1 no slidetag | moving crate1 no slidetag]\n+ [ stationary player ] [ moving crate2 | stationary crate2 ] -> [ stationary player ] [ moving crate2 no slidetag | moving crate2 no slidetag]\n+ [ > crate1 | stationary crate2 ] -> [ > crate1 | > crate2 no slidetag]\n+ [ > crate2 | stationary crate1 ] -> [ > crate2 | > crate1 no slidetag]\n\n\n[eyeclose]->[]\n[stationary player] [slidetag] [ > wall5| ] -> [stationary player] [slidetag] [ > wall5| eyeclose ]\n\n[ stationary player ] [ crate slideup ] -> [ stationary player ] [ up crate up slideup ] again\n[ stationary player ] [ crate slidedown ] -> [ stationary player ] [ down crate down slidedown ] again\n[ stationary player ] [ crate slideleft ] -> [ stationary player ] [ left crate left slideleft ] again\n[ stationary player ] [ crate slideright ] -> [ stationary player ] [ right crate right slideright ] again\n\n[ > crate | | < wall ] -> [ crate no slidetag | | < wall ]\n[ > wall | crate ] -> [ > wall | > crate ]\n\n[ > crate | no obs | < crate ] [ > wall ] -> [ > crate | | stationary crate ] [ > wall ]\n\n[ > crate1 | stationary obs ] -> [ stationary crate1 no slidetag | stationary obs ]\n+[ > crate2 | stationary obs ] -> [ stationary crate2 no slidetag | stationary obs ]\n+[ moving crate1 | stationary crate1 ] -> [ stationary crate1 no slidetag | stationary crate1 no slidetag]\n+[ moving crate2 | stationary crate2 ] -> [ stationary crate2 no slidetag | stationary crate2 no slidetag]\n\n[moving wall4] [levelbg] -> [ moving wall4] [ moving levelbg]\n\n [target > crate] -> [target] sfx0\n \n==============\nWINCONDITIONS\n==============\n\nno crate\n\n=======\nLEVELS\n=======\n\n(BUGS)\n\n\nmessage Level 1 of 8 : No! Don't eat two snails!\n\n\n(v. simple but cute maybe? but open to trial + error solutions. ok for first level?)\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,444474,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,,\n,4444446,,$$$$$$%;,,,o\n,444448,,,$-----$&&,,o\n,444444,,,$-------,,,o\n,,4444,,,,$-------,,,o\n,,3333,,,,$22--1--,,,o\n,333333,,,$----1$&&,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n\nmessage Level 2 of 8 : Don't eat two boomerangs!\n\n(ok! beautiful baby!)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,o$$$oo,,,,,,,,,,,o\n,444444,,,o$-$%ooo,,,,,,,,,o\n,444474,,,o$-1$$;,,,,,,,,,,o\n,4444444,,o$-11$&&,,,,,,,,,o\n,4444446,,o$$----,,,,,,,,,,o\n,444448,,,oo$$---,,,,,,,,,,o\n,444444,,,oo$----,,,,,,,,,,o\n,,4444,,,,o$$---&&,,,,,,,,,o\n,,3333,,,,o$---2$,,,,,,,,,,o\n,333333,,,o$--22$,,,,,,,,,,o\n,333333,,,,$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Level 3 of 8 : No! Don't eat the soap dispenser!\n(easy and funish)\n,,,,,,,,,,,,,,,,,,,,,,,,,,p,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$11---$;,,,,,,,,,o\n,444474,,,$-1---$,,,,,,,,,,o\n,4444444,,$22--$&&,,,,,,,,,o\n,4444446,,$22----,,,,,,,,,,o\n,444448,,,$--$---,,,,,,,,,,o\n,444444,,,$------,,,,,,,,,,o\n,,4444,,,,$-----&&,,,,,,,,,o\n,,3333,,,,$-----$,,,,,,,,,,o\n,333333,,,$-----$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Level 4 of 8 : No! Don't eat the unripe acorn!\n(cute)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,p,,\n,,4444,,,,,,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,,,,,,\n,444474,,,,,,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,%,,,,,\n,4444446,,$$$$$$$$$$$$;,,,o\n,444448,,,$----------$&,,,o\n,444444,,,$-----------,,,,o\n,,4444,,,,$-----------,,,,o\n,,3333,,,,$----21-----,,,,o\n,333333,,,$----11$$--$&,,,o\n,333333,,,$$$$$$$$$$$$,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,\n,333333,,,$$$$$,,,,,,,,,,,,\n,333333,,,$$$$$,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n\n\n\nmessage Level 5 of 8 : No! Don't eat the sock!\n(Easyish/okish)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,p,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$---$-$;,,,,,,,,,o\n,444474,,,$--2$-$,,,,,,,,,,o\n,4444444,,$--221&&,,,,,,,,,o\n,4444446,,$-$----,,,,,,,,,,o\n,444448,,,$------,,,,,,,,,,o\n,444444,,,$$--$--,,,,,,,,,,o\n,,4444,,,,,$$$--&&,,,,,,,,,o\n,,3333,,,,,$$$$-$,,,,,,,,,,o\n,333333,,,,$$,$$$,,,,,,,,,,o\n,333333,,,,$$,,,,,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n\n\nmessage Level 6 of 8 : No! Don't eat the caterpillar!\n\n(absolutely ok early-intermediate)\n,,,,,,,,,,,,,,,,,,,,,,,,,p,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$$$$$$%,,,,,o\n,444444,,,$------1$--$;,,,,o\n,444474,,,$-$----$---$,,,,,o\n,4444444,,$----$---$-&&,,,,o\n,4444446,,$-$---------,,,,,o\n,444448,,,$-$------$--,,,,,o\n,444444,,,$-------$22-,,,,,o\n,,4444,,,,$------$22-&&,,,,o\n,,3333,,,,$----------$,,,,,o\n,333333,,,$----------$,,,,,o\n,333333,,,$$$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\nmessage Level 7 of 8 : No! Don't eat the caterpillar!\n\n\n(intermediate/actually ok!)\n,,,,,,,,,,,,,,,,,,,,,,,,p,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$$$$$$%,,,,,o\n,444444,,,$--$--$----$;,,,,o\n,444447,,,$----2222--$,,,,,o\n,4444444,,$----------&&,,,,o\n,4444446,,$---$-------,,,,,o\n,444448,,,$--------$--,,,,,o\n,444444,,,$-----------,,,,,o\n,,4444,,,,$$$$--$----&&,,,,o\n,,3333,,,,,,$----$-1-$,,,,,o\n,333333,,,,,$------11$,,,,,o\n,333333,,,,,$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n\nmessage Level 8 of 8 : No! Don't eat the kitchen sink!\n(pretty decent intermediate)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,p,\n,,4444,,,,$$$$$$$$$%,,,,,,,o\n,444444,,,$----$---$$$;,,,,o\n,444474,,,$--------$-$,,,,,o\n,4444444,,$----$-----&&,,,,o\n,4444446,,$-----------,,,,,o\n,444448,,,$-$---22----,,,,,o\n,444444,,,$------2----,,,,,o\n,,4444,,,,$----111-$-&&,,,,o\n,,3333,,,,$$----1$-$-$,,,,,o\n,333333,,,,$---------$,,,,,o\n,333333,,,,$$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(following line courtesy of SFTRABBIT)\nmessage They are for me to eat! \n\n\n\n\n\n\n\n\n\n\n(\n\nmessage Level 2 of 10\nmessage No! Don't eat that!\n(actually ok)\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,,\n,4444444,,$$$$$$%;,,,o\n,444444,,,$-2---&&,,,o\n,444444,,,$-$----,,,,o\n,,4444,,,,$--$---,,,,o\n,,3333,,,,$---$--,,,,o\n,333333,,,$1----&&,,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,,\n,4444444,,$$$$$$%;,,,o\n,444444,,,$-----$&&,,o\n,444444,,,$--$---,,,,o\n,,4444,,,,$--2$--,,,,o\n,,3333,,,,$1-----,,,,o\n,333333,,,$$----$&&,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n(ok-ish)\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,p,,,,,,\n,,4444,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,,\n,4444444,,$$$$$$%;,,,o\n,444444,,,$-$--$$&&,,o\n,444444,,,$-$--1-,,,,o\n,,4444,,,,$222-1-,,,,o\n,,3333,,,,$------,,,,o\n,333333,,,$-----$&&,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n\n(Ah p.trivial actually)\n(ok)\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,,$$$$$%,,,,,\n,444444,,,$---22$;,,,,\n,444444,,,$----$$,,,,o\n,4444444,,$---11&&,,,o\n,4444444,,$-$--1,,,,,o\n,444444,,,$----1,,,,,o\n,444444,,,$-----,,,,,o\n,,4444,,,,$-----&&,,,o\n,,3333,,,,$-----$,,,,o\n,333333,,,$-----$,,,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n\n\n\n(not too easy but meh)\n(too easy)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,,,,,,,,,,,,,,,p,,\n,444444,,,,,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,%,,,,,\n,4444444,,$$$$$$$$$$$$;,,,,\n,444444,,,$---$2222--$&,,,o\n,444444,,,$-----------,,,,o\n,,4444,,,,$--$--$-----,,,,o\n,,3333,,,,$-----------,,,,o\n,333333,,,$--------11$&,,,o\n,333333,,,$$$$$$$$$$$$,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,\n,333333,,,$$$$$,,,,,,,,,,,,\n,333333,,,$$$$$,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n\n\n\n(same idea basically)\n( ,,,,,,,,,,,,,,,,,,,,,,,,,,,, )\n( ,,,,,,,,,,,,,,,,,,,,,,,p,,,, )\n( ,,4444,,,,$$$$$$%,,,,,,,,,,o )\n( ,444444,,,$....#$;,,,,,,,,,o )\n( ,444444,,,$1....$,,,,,,,,,,o )\n( ,4444444,,$1.#..&&,,,,,,,,,o )\n( ,4444444,,$##...-,,,,,,,,,,o )\n( ,444444,,,$.##2.-,,,,,,,,,,o )\n( ,444444,,,$.#222-,,,,,,,,,,o )\n( ,,4444,,,,$.....&&,,,,,,,,,o )\n( ,,3333,,,,$..#..$,,,,,,,,,,o )\n( ,333333,,,$#..#.$,,,,,,,,,,o )\n( ,333333,,,$$$$$$$,,,,,,,,,,o )\n( ,333333,,,,$$$,,,,,,,,,,,,,o )\n( ,333333,,,$$$$$,,,,,,,,,,,,o )\n( ,333333,,,$$$$$,,,,,,,,,,,,, )\n( ,333333,,$$$\"$$$,,,,,,,,,,,, )\n( ,333333,,$$\"$$$$,,,,,,,,,,,, )\n( ,333355!!!!\"\"\"\"$,,,,,,,,,,,, )\n( ,333355!!!!\"\"\"\"$,,,$,,,,,,,, )\n( ,333355!!!!\"\"\"\"£$$$$,,,,,,,, )\n( ,333333,,,£££££$$$$$,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n\n\n(too linear)\n( ,,,,,,,,,,,,,,,,,,,,,,,p,,,, )\n( ,,,,,,,,,,,,,,,,,,,,,,,,,,,, )\n( ,,4444,,,,$$$$$$%,,,,,,,,,,o )\n( ,444444,,,$#....$;,,,,,,,,,o )\n( ,444444,,,$.#...$,,,,,,,,,,o )\n( ,4444444,,$.#..2&&,,,,,,,,,o )\n( ,4444444,,$#..22-,,,,,,,,,,o )\n( ,444444,,,$###.1-,,,,,,,,,,o )\n( ,444444,,,$....#-,,,,,,,,,,o )\n( ,,4444,,,,$...#.&&,,,,,,,,,o )\n( ,,3333,,,,$.....$,,,,,,,,,,o )\n( ,333333,,,$.#...$,,,,,,,,,,o )\n( ,333333,,,$$$$$$$,,,,,,,,,,o )\n( ,333333,,,,$$$,,,,,,,,,,,,,o )\n( ,333333,,,$$$$$,,,,,,,,,,,,o )\n( ,333333,,,$$$$$,,,,,,,,,,,,, )\n( ,333333,,$$$\"$$$,,,,,,,,,,,, )\n( ,333333,,$$\"$$$$,,,,,,,,,,,, )\n( ,333355!!!!\"\"\"\"$,,,,,,,,,,,, )\n( ,333355!!!!\"\"\"\"$,,,$,,,,,,,, )\n( ,333355!!!!\"\"\"\"£$$$$,,,,,,,, )\n( ,333333,,,£££££$$$$$,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n\n\n(very easy)\n,,,,,,,,,,,,,,,,,,,,,,,p,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$.2.#.$;,,,,,,,,,o\n,444444,,,$...##$,,,,,,,,,,o\n,4444444,,$..#.#&&,,,,,,,,,o\n,4444444,,$..#..-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,444444,,,$11...-,,,,,,,,,,o\n,,4444,,,,$11...&&,,,,,,,,,o\n,,3333,,,,$#..##$,,,,,,,,,,o\n,333333,,,$...#.$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n(medium actually maybe slightly ok)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,$$$$%,,,,,,,,,,,,o\n,444444,,,$---$;,,,,,,,,,,,o\n,444444,,,$$--$,,,,,,,,,,,,o\n,4444444,,$----$&&,,,,,,,,,o\n,4444444,,$.#...-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,,4444,,,,$....2&&,,,,,,,,,o\n,,3333,,,,$#11.##,,,,,,,,,,o\n,333333,,,,##1.#,,,,,,,,,,,o\n,333333,,,,,$$$$,,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(super tricky somehow but also trivial)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,p,,,\n,,4444,,,,,,$$$$%,,,,,,,,,,o\n,444444,,,,,$--$$;,,,,,,,,,o\n,444444,,,,,$1-2$,,,,,,,,,,o\n,4444444,,,,$1-2&&,,,,,,,,,o\n,4444444,,,,$112-,,,,,,,,,,o\n,444444,,,,,$$$--,,,,,,,,,,o\n,444444,,,,,,$---,,,,,,,,,,o\n,,4444,,,,,,,$--&&,,,,,,,,,o\n,,3333,,,,,,,$--$,,,,,,,,,,o\n,333333,,,,,,$--$,,,,,,,,,,o\n,333333,,,,,$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(Easyish)\n,,,,,,,,,,,,,,,,,,,,,,,p,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,,,,,$$%,,,,,,,,,,o\n,444444,,,,,,,$-$;,,,,,,,,,o\n,444444,,,,,,$$-$,,,,,,,,,,o\n,4444444,,,,,$--&&,,,,,,,,,o\n,4444444,,,,,$---,,,,,,,,,,o\n,444444,,,,,,$$1-,,,,,,,,,,o\n,444444,,,,$$$11-,,,,,,,,,,o\n,,4444,,,,$$----&&,,,,,,,,,o\n,,3333,,,,$----2$,,,,,,,,,,o\n,333333,,,$-$-$2$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n\n\n\n\n\n\n\n\n(ok/intermediatetricky)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,p,,,,\n,,4444,,,,$$$$$$$$$$$%,,,,,o\n,444444,,,$-----$----$;,,,,o\n,444444,,,$--------1-$,,,,,o\n,4444444,,$--$---1112&&,,,,o\n,4444444,,$------$----,,,,,o\n,444444,,,$-----$$----,,,,,o\n,444444,,,$-------$---,,,,,o\n,,4444,,,,$-----$----&&,,,,o\n,,3333,,,,$$---------$,,,,,o\n,333333,,,,$$--------$,,,,,o\n,333333,,,,,$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n(easy / okish?)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,p\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$111..$;,,,,,,,,,o\n,444444,,,$.1...$,,,,,,,,,,o\n,4444444,,$.....&&,,,,,,,,,o\n,4444444,,$.....-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,,4444,,,,$#....&&,,,,,,,,,o\n,,3333,,,,$....2$,,,,,,,,,,o\n,333333,,,$...#2$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(easy but maybe ok?)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,p\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$...11$;,,,,,,,,,o\n,444444,,,$....1$,,,,,,,,,,o\n,4444444,,$.....&&,,,,,,,,,o\n,4444444,,$.....-,,,,,,,,,,o\n,444444,,,$...#.-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,,4444,,,,$.....&&,,,,,,,,,o\n,,3333,,,,$..2..$,,,,,,,,,,o\n,333333,,,$.#2..$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(wtf is going on? hard to find the point to break out of the loop - maybe later on in game?)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,p\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$-----$$$,,,,,,,,o\n,444444,,,$-----$$;,,,,,,,,o\n,4444444,,$-----&&,,,,,,,,,o\n,4444444,,$------,,,,,,,,,,o\n,444444,,,$--1---,,,,,,,,,,o\n,444444,,$$$111--,,,,,,,,,,o\n,,4444,,,$---1--&&,,,,,,,,,o\n,,3333,,$$$$----$,,,,,,,,,,o\n,333333,$------2$,,,,,,,,,,o\n,333333,$$$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n(NO NO NONO NO NO NO NO. I had a ridiculously bad time and the solution was pretty trivial AND boring I just didn't see it like an idiot)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,p\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$$$$$$%,,,,,o\n,444444,,,$.....2222.$;,,,,o\n,444444,,,$.......2..$,,,,,o\n,4444444,,$......#...&&,,,,o\n,4444444,,$..........-,,,,,o\n,444444,,,$..........-,,,,,o\n,444444,,,$#11.......-,,,,,o\n,,4444,,,,$111.......&&,,,,o\n,,3333,,,,$.......#..$,,,,,o\n,333333,,,$..........$,,,,,o\n,333333,,,$$$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n)\n\n",[2,0,1,3,0,2,1,"restart",0,2,1,2,0,1,3,2,1],"background: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,background body2:1,1,1,1,1,1,0,0,background body1:2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,\n1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,\n1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,1,\n1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,1,background maneye:3,\n1,1,1,1,1,2,2,2,2,2,2,2,2,background body1 wall1:4,4,4,2,2,2,2,2,0,0,0,1,1,1,\n1,background manmouth:5,1,0,0,2,2,2,2,2,2,2,4,4,4,2,2,2,2,2,0,0,0,0,0,1,background mannostrils:6,\n0,0,0,0,0,0,0,0,0,0,0,background wall1:7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,background wall4:8,8,7,7,7,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,\n8,8,8,0,8,8,8,8,7,7,7,background wall3:9,0,0,0,0,0,0,0,0,0,0,8,background levelbg:10,10,10,background crate2 levelbg:11,\n10,8,8,8,8,8,background wall2:12,12,12,12,9,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,\n8,8,8,8,12,8,12,12,12,9,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,8,\n8,8,8,8,8,12,12,12,9,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,8,0,\n8,8,8,8,12,12,12,9,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,8,0,0,\n0,8,8,8,8,9,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,8,0,0,0,\n0,0,0,0,8,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,8,8,0,0,0,0,\n0,0,0,8,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,8,8,0,0,0,0,0,\n0,0,8,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,background crate1 levelbg:13,8,0,0,0,0,0,0,\n8,8,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,13,13,8,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,background wall5:14,8,8,10,10,10,8,8,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,background player:15,0,0,0,background wall6:16,background wall7:17,0,0,0,17,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,\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,\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,\n0,0,0,0,0,0,0,background target:18,18,18,18,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",7,"1627893851172.3552"] + "No! Don't eat that!", + ["title No! Don't eat that!\nauthor increpare\nhomepage www.increpare.com\nbackground_color #879fcf\n\nagain_interval 0.1\n\ntext_color #45283c\n\ncolor_palette 2\n\nnoaction\n( verbose_logging )\n\ndebug\nverbose_logging\n========\nOBJECTS\n========\n\nBackground\nblue\n\nTarget\ntransparent\n.....\n.000.\n.0.0.\n.000.\n.....\n\nPlayer\ntransparent\n\nCrate1 \n#c45509\n\n\nCrate2 \n#409437 \n\nbody1\n#31491a\n\nbody2\n#eec39a\n\nmaneye\n#eec39a #ffffff brown pink\n00000\n11111\n11121\n01113\n00000\n\nmannostrils\n#eec39a darkbrown\n00000\n00000\n00000\n11100\n00000\n\nmanmouth\n#eec39a red\n00000\n00000\n00011\n11111\n11111\n\nwall1 !\n#4b692f\n\nwall2 \"\n#eec39a\n\nwall3 £\n#ffffff\n\nwall4 $\n#d77bba\n\nwall5 %\n#d77bba #ffffff blue\n00000\n01220\n11221\n01110\n00000\n\n\neyeclose\n#d77bba black\n00000\n00000\n11111\n00000\n00000\n\nwall6 ;\n#d77bba #000000\n00000\n00000\n00000\n00000\n01010\n\n\nwall7 &\n#ac3232\n\n\nlevelbg -\n#45283c\n\n\n\n\nslideright\nred\n..0..\n..0..\n.....\n.....\n.....\n\nslidedown\nyellow\n.....\n.....\n.....\n..0..\n..0..\n\nslideleft\nwhite\n.....\n.....\n00...\n.....\n.....\n\nslideup\n#0000ff\n.....\n.....\n...00\n.....\n.....\n\n\n\n\n\n=======\nLEGEND\n=======\n\nwall = wall1 or wall2 or wall3 or wall4 or wall5 or wall6 or wall7\n\n1 = crate1 and levelbg\n2 = crate2 and levelbg\ncrate = crate1 or crate2\nslidetag = slideleft or slideup or slideright or slidedown\n. = levelbg\n# = wall4\nP = Player and Background\n* = Crate1 and levelbg\n@ = Crate1 and Target and levelbg\nO = Target \nobs = wall or crate\n, = Background\n3 = body1\n4 = body2\n5 = body1 and wall1\n6 = mannostrils\n7 = maneye\n8 = manmouth\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx0 60551707 (item destroyed)\n\n================\nCOLLISIONLAYERS\n================\n\nslidetag\n\nBackground\nlevelbg\nTarget\nPlayer\nbody1, body2, maneye, mannostrils, manmouth\nWall, Crate\neyeclose\n\n======\nRULES\n======\n\n(FRAME 1 STUFF)\n\n[ moving player ] [ slidetag ] -> [ moving player ] [] \n\n[ moving player ] [ wall ] -> [ moving player ] [ moving wall ] again\n[ > wall | stationary crate ] -> [ > wall | > crate ]\n\n[ moving crate1 | stationary crate1 ] -> [ moving crate1 | moving crate1 ]\n+ [moving crate2 | stationary crate2 ] -> [ moving crate2 | moving crate2 ]\n+ [ > crate1 | stationary crate2 ] -> [ > crate1 | > crate2 ]\n+ [ > crate2 | stationary crate1 ] -> [ > crate2 | > crate1 ]\n\nup [ > obs | ] -> [ > obs | slideup ]\ndown [ > obs | ] -> [ > obs | slidedown ]\nleft [ > obs | ] -> [ > obs | slideleft ]\nright [ > obs | ] -> [ > obs | slideright ]\n\n(FRAME 2+ STUFF)\n[ stationary player ] [ wall slideup ] -> [ stationary player ] [ down wall ] again\n[ stationary player ] [ wall slidedown ] -> [ stationary player ] [ up wall ] again\n[ stationary player ] [ wall slideleft ] -> [ stationary player ] [ right wall ] again\n[ stationary player ] [ wall slideright ] -> [ stationary player ] [ left wall ] again\n\n\n(prepropagation here - could be that during frame 2, crates get yanked back into palce)\n\n[ stationary player ] [ > wall | stationary crate ] ->[ stationary player ] [ > wall | > crate no slidetag]\n+ [ stationary player ] [ moving crate1 | stationary crate1 ] -> [ stationary player ] [ moving crate1 no slidetag | moving crate1 no slidetag]\n+ [ stationary player ] [ moving crate2 | stationary crate2 ] -> [ stationary player ] [ moving crate2 no slidetag | moving crate2 no slidetag]\n+ [ > crate1 | stationary crate2 ] -> [ > crate1 | > crate2 no slidetag]\n+ [ > crate2 | stationary crate1 ] -> [ > crate2 | > crate1 no slidetag]\n\n\n[eyeclose]->[]\n[stationary player] [slidetag] [ > wall5| ] -> [stationary player] [slidetag] [ > wall5| eyeclose ]\n\n[ stationary player ] [ crate slideup ] -> [ stationary player ] [ up crate up slideup ] again\n[ stationary player ] [ crate slidedown ] -> [ stationary player ] [ down crate down slidedown ] again\n[ stationary player ] [ crate slideleft ] -> [ stationary player ] [ left crate left slideleft ] again\n[ stationary player ] [ crate slideright ] -> [ stationary player ] [ right crate right slideright ] again\n\n[ > crate | | < wall ] -> [ crate no slidetag | | < wall ]\n[ > wall | crate ] -> [ > wall | > crate ]\n\n[ > crate | no obs | < crate ] [ > wall ] -> [ > crate | | stationary crate ] [ > wall ]\n\n[ > crate1 | stationary obs ] -> [ stationary crate1 no slidetag | stationary obs ]\n+[ > crate2 | stationary obs ] -> [ stationary crate2 no slidetag | stationary obs ]\n+[ moving crate1 | stationary crate1 ] -> [ stationary crate1 no slidetag | stationary crate1 no slidetag]\n+[ moving crate2 | stationary crate2 ] -> [ stationary crate2 no slidetag | stationary crate2 no slidetag]\n\n[moving wall4] [levelbg] -> [ moving wall4] [ moving levelbg]\n\n [target > crate] -> [target] sfx0\n \n==============\nWINCONDITIONS\n==============\n\nno crate\n\n=======\nLEVELS\n=======\n\n(BUGS)\n\n\nmessage Level 1 of 8 : No! Don't eat two snails!\n\n\n(v. simple but cute maybe? but open to trial + error solutions. ok for first level?)\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,444474,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,,\n,4444446,,$$$$$$%;,,,o\n,444448,,,$-----$&&,,o\n,444444,,,$-------,,,o\n,,4444,,,,$-------,,,o\n,,3333,,,,$22--1--,,,o\n,333333,,,$----1$&&,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n\nmessage Level 2 of 8 : Don't eat two boomerangs!\n\n(ok! beautiful baby!)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,o$$$oo,,,,,,,,,,,o\n,444444,,,o$-$%ooo,,,,,,,,,o\n,444474,,,o$-1$$;,,,,,,,,,,o\n,4444444,,o$-11$&&,,,,,,,,,o\n,4444446,,o$$----,,,,,,,,,,o\n,444448,,,oo$$---,,,,,,,,,,o\n,444444,,,oo$----,,,,,,,,,,o\n,,4444,,,,o$$---&&,,,,,,,,,o\n,,3333,,,,o$---2$,,,,,,,,,,o\n,333333,,,o$--22$,,,,,,,,,,o\n,333333,,,,$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Level 3 of 8 : No! Don't eat the soap dispenser!\n(easy and funish)\n,,,,,,,,,,,,,,,,,,,,,,,,,,p,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$11---$;,,,,,,,,,o\n,444474,,,$-1---$,,,,,,,,,,o\n,4444444,,$22--$&&,,,,,,,,,o\n,4444446,,$22----,,,,,,,,,,o\n,444448,,,$--$---,,,,,,,,,,o\n,444444,,,$------,,,,,,,,,,o\n,,4444,,,,$-----&&,,,,,,,,,o\n,,3333,,,,$-----$,,,,,,,,,,o\n,333333,,,$-----$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Level 4 of 8 : No! Don't eat the unripe acorn!\n(cute)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,p,,\n,,4444,,,,,,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,,,,,,\n,444474,,,,,,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,%,,,,,\n,4444446,,$$$$$$$$$$$$;,,,o\n,444448,,,$----------$&,,,o\n,444444,,,$-----------,,,,o\n,,4444,,,,$-----------,,,,o\n,,3333,,,,$----21-----,,,,o\n,333333,,,$----11$$--$&,,,o\n,333333,,,$$$$$$$$$$$$,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,\n,333333,,,$$$$$,,,,,,,,,,,,\n,333333,,,$$$$$,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n\n\n\nmessage Level 5 of 8 : No! Don't eat the sock!\n(Easyish/okish)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,p,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$---$-$;,,,,,,,,,o\n,444474,,,$--2$-$,,,,,,,,,,o\n,4444444,,$--221&&,,,,,,,,,o\n,4444446,,$-$----,,,,,,,,,,o\n,444448,,,$------,,,,,,,,,,o\n,444444,,,$$--$--,,,,,,,,,,o\n,,4444,,,,,$$$--&&,,,,,,,,,o\n,,3333,,,,,$$$$-$,,,,,,,,,,o\n,333333,,,,$$,$$$,,,,,,,,,,o\n,333333,,,,$$,,,,,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n\n\nmessage Level 6 of 8 : No! Don't eat the caterpillar!\n\n(absolutely ok early-intermediate)\n,,,,,,,,,,,,,,,,,,,,,,,,,p,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$$$$$$%,,,,,o\n,444444,,,$------1$--$;,,,,o\n,444474,,,$-$----$---$,,,,,o\n,4444444,,$----$---$-&&,,,,o\n,4444446,,$-$---------,,,,,o\n,444448,,,$-$------$--,,,,,o\n,444444,,,$-------$22-,,,,,o\n,,4444,,,,$------$22-&&,,,,o\n,,3333,,,,$----------$,,,,,o\n,333333,,,$----------$,,,,,o\n,333333,,,$$$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\nmessage Level 7 of 8 : No! Don't eat the caterpillar!\n\n\n(intermediate/actually ok!)\n,,,,,,,,,,,,,,,,,,,,,,,,p,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$$$$$$%,,,,,o\n,444444,,,$--$--$----$;,,,,o\n,444447,,,$----2222--$,,,,,o\n,4444444,,$----------&&,,,,o\n,4444446,,$---$-------,,,,,o\n,444448,,,$--------$--,,,,,o\n,444444,,,$-----------,,,,,o\n,,4444,,,,$$$$--$----&&,,,,o\n,,3333,,,,,,$----$-1-$,,,,,o\n,333333,,,,,$------11$,,,,,o\n,333333,,,,,$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n\nmessage Level 8 of 8 : No! Don't eat the kitchen sink!\n(pretty decent intermediate)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,p,\n,,4444,,,,$$$$$$$$$%,,,,,,,o\n,444444,,,$----$---$$$;,,,,o\n,444474,,,$--------$-$,,,,,o\n,4444444,,$----$-----&&,,,,o\n,4444446,,$-----------,,,,,o\n,444448,,,$-$---22----,,,,,o\n,444444,,,$------2----,,,,,o\n,,4444,,,,$----111-$-&&,,,,o\n,,3333,,,,$$----1$-$-$,,,,,o\n,333333,,,,$---------$,,,,,o\n,333333,,,,$$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(following line courtesy of SFTRABBIT)\nmessage They are for me to eat! \n\n\n\n\n\n\n\n\n\n\n(\n\nmessage Level 2 of 10\nmessage No! Don't eat that!\n(actually ok)\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,,\n,4444444,,$$$$$$%;,,,o\n,444444,,,$-2---&&,,,o\n,444444,,,$-$----,,,,o\n,,4444,,,,$--$---,,,,o\n,,3333,,,,$---$--,,,,o\n,333333,,,$1----&&,,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,,\n,4444444,,$$$$$$%;,,,o\n,444444,,,$-----$&&,,o\n,444444,,,$--$---,,,,o\n,,4444,,,,$--2$--,,,,o\n,,3333,,,,$1-----,,,,o\n,333333,,,$$----$&&,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n(ok-ish)\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,p,,,,,,\n,,4444,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,,\n,4444444,,$$$$$$%;,,,o\n,444444,,,$-$--$$&&,,o\n,444444,,,$-$--1-,,,,o\n,,4444,,,,$222-1-,,,,o\n,,3333,,,,$------,,,,o\n,333333,,,$-----$&&,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n\n(Ah p.trivial actually)\n(ok)\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,,$$$$$%,,,,,\n,444444,,,$---22$;,,,,\n,444444,,,$----$$,,,,o\n,4444444,,$---11&&,,,o\n,4444444,,$-$--1,,,,,o\n,444444,,,$----1,,,,,o\n,444444,,,$-----,,,,,o\n,,4444,,,,$-----&&,,,o\n,,3333,,,,$-----$,,,,o\n,333333,,,$-----$,,,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n\n\n\n(not too easy but meh)\n(too easy)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,,,,,,,,,,,,,,,p,,\n,444444,,,,,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,%,,,,,\n,4444444,,$$$$$$$$$$$$;,,,,\n,444444,,,$---$2222--$&,,,o\n,444444,,,$-----------,,,,o\n,,4444,,,,$--$--$-----,,,,o\n,,3333,,,,$-----------,,,,o\n,333333,,,$--------11$&,,,o\n,333333,,,$$$$$$$$$$$$,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,\n,333333,,,$$$$$,,,,,,,,,,,,\n,333333,,,$$$$$,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n\n\n\n(same idea basically)\n( ,,,,,,,,,,,,,,,,,,,,,,,,,,,, )\n( ,,,,,,,,,,,,,,,,,,,,,,,p,,,, )\n( ,,4444,,,,$$$$$$%,,,,,,,,,,o )\n( ,444444,,,$....#$;,,,,,,,,,o )\n( ,444444,,,$1....$,,,,,,,,,,o )\n( ,4444444,,$1.#..&&,,,,,,,,,o )\n( ,4444444,,$##...-,,,,,,,,,,o )\n( ,444444,,,$.##2.-,,,,,,,,,,o )\n( ,444444,,,$.#222-,,,,,,,,,,o )\n( ,,4444,,,,$.....&&,,,,,,,,,o )\n( ,,3333,,,,$..#..$,,,,,,,,,,o )\n( ,333333,,,$#..#.$,,,,,,,,,,o )\n( ,333333,,,$$$$$$$,,,,,,,,,,o )\n( ,333333,,,,$$$,,,,,,,,,,,,,o )\n( ,333333,,,$$$$$,,,,,,,,,,,,o )\n( ,333333,,,$$$$$,,,,,,,,,,,,, )\n( ,333333,,$$$\"$$$,,,,,,,,,,,, )\n( ,333333,,$$\"$$$$,,,,,,,,,,,, )\n( ,333355!!!!\"\"\"\"$,,,,,,,,,,,, )\n( ,333355!!!!\"\"\"\"$,,,$,,,,,,,, )\n( ,333355!!!!\"\"\"\"£$$$$,,,,,,,, )\n( ,333333,,,£££££$$$$$,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n\n\n(too linear)\n( ,,,,,,,,,,,,,,,,,,,,,,,p,,,, )\n( ,,,,,,,,,,,,,,,,,,,,,,,,,,,, )\n( ,,4444,,,,$$$$$$%,,,,,,,,,,o )\n( ,444444,,,$#....$;,,,,,,,,,o )\n( ,444444,,,$.#...$,,,,,,,,,,o )\n( ,4444444,,$.#..2&&,,,,,,,,,o )\n( ,4444444,,$#..22-,,,,,,,,,,o )\n( ,444444,,,$###.1-,,,,,,,,,,o )\n( ,444444,,,$....#-,,,,,,,,,,o )\n( ,,4444,,,,$...#.&&,,,,,,,,,o )\n( ,,3333,,,,$.....$,,,,,,,,,,o )\n( ,333333,,,$.#...$,,,,,,,,,,o )\n( ,333333,,,$$$$$$$,,,,,,,,,,o )\n( ,333333,,,,$$$,,,,,,,,,,,,,o )\n( ,333333,,,$$$$$,,,,,,,,,,,,o )\n( ,333333,,,$$$$$,,,,,,,,,,,,, )\n( ,333333,,$$$\"$$$,,,,,,,,,,,, )\n( ,333333,,$$\"$$$$,,,,,,,,,,,, )\n( ,333355!!!!\"\"\"\"$,,,,,,,,,,,, )\n( ,333355!!!!\"\"\"\"$,,,$,,,,,,,, )\n( ,333355!!!!\"\"\"\"£$$$$,,,,,,,, )\n( ,333333,,,£££££$$$$$,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n\n\n(very easy)\n,,,,,,,,,,,,,,,,,,,,,,,p,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$.2.#.$;,,,,,,,,,o\n,444444,,,$...##$,,,,,,,,,,o\n,4444444,,$..#.#&&,,,,,,,,,o\n,4444444,,$..#..-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,444444,,,$11...-,,,,,,,,,,o\n,,4444,,,,$11...&&,,,,,,,,,o\n,,3333,,,,$#..##$,,,,,,,,,,o\n,333333,,,$...#.$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n(medium actually maybe slightly ok)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,$$$$%,,,,,,,,,,,,o\n,444444,,,$---$;,,,,,,,,,,,o\n,444444,,,$$--$,,,,,,,,,,,,o\n,4444444,,$----$&&,,,,,,,,,o\n,4444444,,$.#...-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,,4444,,,,$....2&&,,,,,,,,,o\n,,3333,,,,$#11.##,,,,,,,,,,o\n,333333,,,,##1.#,,,,,,,,,,,o\n,333333,,,,,$$$$,,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(super tricky somehow but also trivial)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,p,,,\n,,4444,,,,,,$$$$%,,,,,,,,,,o\n,444444,,,,,$--$$;,,,,,,,,,o\n,444444,,,,,$1-2$,,,,,,,,,,o\n,4444444,,,,$1-2&&,,,,,,,,,o\n,4444444,,,,$112-,,,,,,,,,,o\n,444444,,,,,$$$--,,,,,,,,,,o\n,444444,,,,,,$---,,,,,,,,,,o\n,,4444,,,,,,,$--&&,,,,,,,,,o\n,,3333,,,,,,,$--$,,,,,,,,,,o\n,333333,,,,,,$--$,,,,,,,,,,o\n,333333,,,,,$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(Easyish)\n,,,,,,,,,,,,,,,,,,,,,,,p,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,,,,,$$%,,,,,,,,,,o\n,444444,,,,,,,$-$;,,,,,,,,,o\n,444444,,,,,,$$-$,,,,,,,,,,o\n,4444444,,,,,$--&&,,,,,,,,,o\n,4444444,,,,,$---,,,,,,,,,,o\n,444444,,,,,,$$1-,,,,,,,,,,o\n,444444,,,,$$$11-,,,,,,,,,,o\n,,4444,,,,$$----&&,,,,,,,,,o\n,,3333,,,,$----2$,,,,,,,,,,o\n,333333,,,$-$-$2$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n\n\n\n\n\n\n\n\n(ok/intermediatetricky)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,p,,,,\n,,4444,,,,$$$$$$$$$$$%,,,,,o\n,444444,,,$-----$----$;,,,,o\n,444444,,,$--------1-$,,,,,o\n,4444444,,$--$---1112&&,,,,o\n,4444444,,$------$----,,,,,o\n,444444,,,$-----$$----,,,,,o\n,444444,,,$-------$---,,,,,o\n,,4444,,,,$-----$----&&,,,,o\n,,3333,,,,$$---------$,,,,,o\n,333333,,,,$$--------$,,,,,o\n,333333,,,,,$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n(easy / okish?)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,p\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$111..$;,,,,,,,,,o\n,444444,,,$.1...$,,,,,,,,,,o\n,4444444,,$.....&&,,,,,,,,,o\n,4444444,,$.....-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,,4444,,,,$#....&&,,,,,,,,,o\n,,3333,,,,$....2$,,,,,,,,,,o\n,333333,,,$...#2$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(easy but maybe ok?)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,p\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$...11$;,,,,,,,,,o\n,444444,,,$....1$,,,,,,,,,,o\n,4444444,,$.....&&,,,,,,,,,o\n,4444444,,$.....-,,,,,,,,,,o\n,444444,,,$...#.-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,,4444,,,,$.....&&,,,,,,,,,o\n,,3333,,,,$..2..$,,,,,,,,,,o\n,333333,,,$.#2..$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(wtf is going on? hard to find the point to break out of the loop - maybe later on in game?)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,p\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$-----$$$,,,,,,,,o\n,444444,,,$-----$$;,,,,,,,,o\n,4444444,,$-----&&,,,,,,,,,o\n,4444444,,$------,,,,,,,,,,o\n,444444,,,$--1---,,,,,,,,,,o\n,444444,,$$$111--,,,,,,,,,,o\n,,4444,,,$---1--&&,,,,,,,,,o\n,,3333,,$$$$----$,,,,,,,,,,o\n,333333,$------2$,,,,,,,,,,o\n,333333,$$$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n(NO NO NONO NO NO NO NO. I had a ridiculously bad time and the solution was pretty trivial AND boring I just didn't see it like an idiot)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,p\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$$$$$$%,,,,,o\n,444444,,,$.....2222.$;,,,,o\n,444444,,,$.......2..$,,,,,o\n,4444444,,$......#...&&,,,,o\n,4444444,,$..........-,,,,,o\n,444444,,,$..........-,,,,,o\n,444444,,,$#11.......-,,,,,o\n,,4444,,,,$111.......&&,,,,o\n,,3333,,,,$.......#..$,,,,,o\n,333333,,,$..........$,,,,,o\n,333333,,,$$$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n)\n\n", [2, 0, 1, 3, 0, 2, 1, "restart", 0, 2, 1, 2, 0, 1, 3, 2, 1], "background: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,background body2:1,1,1,1,1,1,0,0,background body1:2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,\n1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,\n1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,1,\n1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,1,background maneye:3,\n1,1,1,1,1,2,2,2,2,2,2,2,2,background body1 wall1:4,4,4,2,2,2,2,2,0,0,0,1,1,1,\n1,background manmouth:5,1,0,0,2,2,2,2,2,2,2,4,4,4,2,2,2,2,2,0,0,0,0,0,1,background mannostrils:6,\n0,0,0,0,0,0,0,0,0,0,0,background wall1:7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,background wall4:8,8,7,7,7,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,\n8,8,8,0,8,8,8,8,7,7,7,background wall3:9,0,0,0,0,0,0,0,0,0,0,8,background levelbg:10,10,10,background crate2 levelbg:11,\n10,8,8,8,8,8,background wall2:12,12,12,12,9,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,\n8,8,8,8,12,8,12,12,12,9,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,8,\n8,8,8,8,8,12,12,12,9,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,8,0,\n8,8,8,8,12,12,12,9,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,8,0,0,\n0,8,8,8,8,9,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,8,0,0,0,\n0,0,0,0,8,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,8,8,0,0,0,0,\n0,0,0,8,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,8,8,0,0,0,0,0,\n0,0,8,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,background crate1 levelbg:13,8,0,0,0,0,0,0,\n8,8,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,13,13,8,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,background wall5:14,8,8,10,10,10,8,8,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,background player:15,0,0,0,background wall6:16,background wall7:17,0,0,0,17,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,\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,\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,\n0,0,0,0,0,0,0,background target:18,18,18,18,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 7, "1627893851172.3552"] ], [ - "Recondite Star Sector Sigma", - ["title Recondite Star Sector Sigma\nauthor increpare\nhomepage www.increpare.com\n\n========\nOBJECTS\n========\n\nhintergrund\nblack\n\n\nziel\npink\n..000\n.00..\n.0.0.\n..00.\n000..\n\nwand\nblack gray\n00000\n01010\n00000\n01010\n00000\n\nspieler\nred white\n..0..\n.000.\n.111.\n.111.\n01010\n\nKiste\nOrange Yellow\n.....\n.000.\n.0.0.\n.000.\n.....\n\ncrate c\norange yellow\n.....\n.000.\n.0.0.\n.000.\n.....\n\n=======\nLEGEND\n=======\n\nplayer = spieler\nbackground = hintergrund\n\n. = Background\n# = wand\nP = spieler\n* = kiste\nO = ziel\n\n\n=======\nSOUNDS\n=======\n\nkiste MOVE 74233307\nendlevel 35757708\nstartgame 52406508\nsfx0 23411703 (kiste auf ziel)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSpieler, wand, Kiste\nziel\ncrate\n======\nRULES\n======\n\n[ > Spieler | Kiste ] -> [ > Spieler | > Kiste ]\n[ > Spieler | crate ] -> [ > Spieler | > crate ]\n[ > crate | wand ]-> cancel\n[ > spieler | > kiste | ziel ] -> [ ziel | spieler | wand ] sfx0\n\nWINCONDITIONS\n==============\n\n( All Target on Crate )\nno Kiste\nall crate on ziel\n\n=======\nLEVELS\n=======\n\nmessage Sector 1 of 10: Headway \n(Easiesh but tricky first level?)\n######\n#o.###\n#p.###\n#.*..#\n#.*..#\n#..###\n######\n\nmessage Sector 2 of 10: Star-Hopper\n(medium-difficult but maybe ok first level?)\n############\n#....###..##\n#..o*.*..#.#\n#*.........#\n#p..########\n############\n\nmessage Sector 3 of 10: The dividing wall\n(also ok? quite similar? maybe easier?)\n######\n#...##\n#.*o##\n#p*..#\n#.*..#\n#..###\n######\n\nmessage Sector 4 of 10: The waiting room\n###########\n########..#\n########..#\n#######...#\n#........o#\n#.#*#*#.###\n#..*.p..###\n###########\n\n\nmessage Sector 5 of 10: The great pillar\n(good first level?)\n######\n#.*..#\n#.#..#\n#.**.#\n#..p.#\n#...o#\n######\n\n\nmessage Sector 6 of 10: The ceremony\n(good first level? at least a slightly different concept to the others)\n#########\n#.*...o.#\n#.#.*.#.#\n#...*.p.#\n#########\n\n\n(trivial)\n( ######### )\n( ###p.#### )\n( #.......# )\n( #.#**#*.# )\n( #.o..#..# )\n( ######### )\n\n\nmessage level 7 of 10: Ancient offering\n(intermediate. not so fun?)\n#########\n##o..####\n#.p**...#\n#.#.*..##\n#....#.##\n#########\n\nmessage Sector 8 of 10: The Constellation of the Rattlesnake \n\n(hardish? intermeidate :] )\n#########\n###..####\n#.o...*.#\n#.**.##.#\n#....#.p#\n#########\n\nmessage Sector 9 of 10: The site of return.\n\n(intermediate ok? not so interesting)\n#########\n###..####\n#..*....#\n#p*..*..#\n#.o.##.##\n#########\n\n\n\nmessage Sector 10 of 10: Normality\n\n#########\n###..####\n#.oc...o#\n#pc..c..#\n#.o.##.##\n#########\n\n\nmessage Congratulations! You have navigated the Recondite Star Sector Sigma. But nobody will ever believe what you saw.\n\n(\n\n[spieler]->[]\n[kiste]->[]\n[ziel]->[]\n\nchoose 2 option 0.5 [ wand | no wand ] -> [ | ]\nchoose 2 option 0.5 [ wand | no wand ] -> [ wand | wand ]\nchoose 2 [no kiste no wand no spieler ] -> [ kiste ]\nchoose 1 [no kiste no wand no spieler ] -> [ ziel ]\nchoose 1 [no kiste no wand no spieler ] -> [ spieler ]\n\n)\n\n",[0,0,1,1,1,1,0,3,2,2,2,1,1,1,0,3,2,3,3,0,2,1,1,0,3,3,2,3,0],"hintergrund wand:0,0,0,0,0,0,0,0,hintergrund:1,\n1,1,0,0,0,0,1,1,0,\n0,1,hintergrund kiste:2,1,1,0,0,1,0,\nhintergrund spieler:3,hintergrund ziel:4,0,0,0,1,0,0,0,\n0,0,1,0,1,0,0,0,1,\n1,1,0,0,0,0,0,0,0,\n",15,"1627893876246.9329"] + "Recondite Star Sector Sigma", + ["title Recondite Star Sector Sigma\nauthor increpare\nhomepage www.increpare.com\n\n========\nOBJECTS\n========\n\nhintergrund\nblack\n\n\nziel\npink\n..000\n.00..\n.0.0.\n..00.\n000..\n\nwand\nblack gray\n00000\n01010\n00000\n01010\n00000\n\nspieler\nred white\n..0..\n.000.\n.111.\n.111.\n01010\n\nKiste\nOrange Yellow\n.....\n.000.\n.0.0.\n.000.\n.....\n\ncrate c\norange yellow\n.....\n.000.\n.0.0.\n.000.\n.....\n\n=======\nLEGEND\n=======\n\nplayer = spieler\nbackground = hintergrund\n\n. = Background\n# = wand\nP = spieler\n* = kiste\nO = ziel\n\n\n=======\nSOUNDS\n=======\n\nkiste MOVE 74233307\nendlevel 35757708\nstartgame 52406508\nsfx0 23411703 (kiste auf ziel)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSpieler, wand, Kiste\nziel\ncrate\n======\nRULES\n======\n\n[ > Spieler | Kiste ] -> [ > Spieler | > Kiste ]\n[ > Spieler | crate ] -> [ > Spieler | > crate ]\n[ > crate | wand ]-> cancel\n[ > spieler | > kiste | ziel ] -> [ ziel | spieler | wand ] sfx0\n\nWINCONDITIONS\n==============\n\n( All Target on Crate )\nno Kiste\nall crate on ziel\n\n=======\nLEVELS\n=======\n\nmessage Sector 1 of 10: Headway \n(Easiesh but tricky first level?)\n######\n#o.###\n#p.###\n#.*..#\n#.*..#\n#..###\n######\n\nmessage Sector 2 of 10: Star-Hopper\n(medium-difficult but maybe ok first level?)\n############\n#....###..##\n#..o*.*..#.#\n#*.........#\n#p..########\n############\n\nmessage Sector 3 of 10: The dividing wall\n(also ok? quite similar? maybe easier?)\n######\n#...##\n#.*o##\n#p*..#\n#.*..#\n#..###\n######\n\nmessage Sector 4 of 10: The waiting room\n###########\n########..#\n########..#\n#######...#\n#........o#\n#.#*#*#.###\n#..*.p..###\n###########\n\n\nmessage Sector 5 of 10: The great pillar\n(good first level?)\n######\n#.*..#\n#.#..#\n#.**.#\n#..p.#\n#...o#\n######\n\n\nmessage Sector 6 of 10: The ceremony\n(good first level? at least a slightly different concept to the others)\n#########\n#.*...o.#\n#.#.*.#.#\n#...*.p.#\n#########\n\n\n(trivial)\n( ######### )\n( ###p.#### )\n( #.......# )\n( #.#**#*.# )\n( #.o..#..# )\n( ######### )\n\n\nmessage level 7 of 10: Ancient offering\n(intermediate. not so fun?)\n#########\n##o..####\n#.p**...#\n#.#.*..##\n#....#.##\n#########\n\nmessage Sector 8 of 10: The Constellation of the Rattlesnake \n\n(hardish? intermeidate :] )\n#########\n###..####\n#.o...*.#\n#.**.##.#\n#....#.p#\n#########\n\nmessage Sector 9 of 10: The site of return.\n\n(intermediate ok? not so interesting)\n#########\n###..####\n#..*....#\n#p*..*..#\n#.o.##.##\n#########\n\n\n\nmessage Sector 10 of 10: Normality\n\n#########\n###..####\n#.oc...o#\n#pc..c..#\n#.o.##.##\n#########\n\n\nmessage Congratulations! You have navigated the Recondite Star Sector Sigma. But nobody will ever believe what you saw.\n\n(\n\n[spieler]->[]\n[kiste]->[]\n[ziel]->[]\n\nchoose 2 option 0.5 [ wand | no wand ] -> [ | ]\nchoose 2 option 0.5 [ wand | no wand ] -> [ wand | wand ]\nchoose 2 [no kiste no wand no spieler ] -> [ kiste ]\nchoose 1 [no kiste no wand no spieler ] -> [ ziel ]\nchoose 1 [no kiste no wand no spieler ] -> [ spieler ]\n\n)\n\n", [0, 0, 1, 1, 1, 1, 0, 3, 2, 2, 2, 1, 1, 1, 0, 3, 2, 3, 3, 0, 2, 1, 1, 0, 3, 3, 2, 3, 0], "hintergrund wand:0,0,0,0,0,0,0,0,hintergrund:1,\n1,1,0,0,0,0,1,1,0,\n0,1,hintergrund kiste:2,1,1,0,0,1,0,\nhintergrund spieler:3,hintergrund ziel:4,0,0,0,1,0,0,0,\n0,0,1,0,1,0,0,0,1,\n1,1,0,0,0,0,0,0,0,\n", 15, "1627893876246.9329"] ], [ - "Crate Swarp", - ["title Crate Swarp\nauthor incurpareh\nhomepage www.increpare.com\n\ncolor_palette 6\n\ntext_color pink\n\n(levels generated with https://dekeyser.ch/puzzlescriptmis/ )\n\n========\nOBJECTS\n========\n\nBackground\npurple\n\nTarget1\ndarkred red\n.....\n.101.\n.101.\n.101.\n.....\n\nCrate1\nred lightred\n10101\n1...1\n1...1\n1...1\n10101\n\n\nTarget2\ndarkblue blue\n.....\n.111.\n.000.\n.111.\n.....\n\nCrate2\nblue lightblue\n11111\n0...0\n1...1\n0...0\n11111\n\n\nWall\nBROWN DARKBROWN BROWN\n10101\n02020\n10101\n02020\n10101\n\nPlayer\nBlack Orange White Blue\n00000\n01010\n00000\n0...0\n0...0\n\n\n\n=======\nLEGEND\n=======\n\ncrate = crate1 or Crate2\n\n. = Background\n# = Wall\nP = Player\nA = target1 and Crate2\nB = target2 and crate1\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 50239307\nplayer move 61796707\nendlevel 41475705\nstartgame 88984906\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget1, target2\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nall target1 on Crate1\nall target2 on crate2\n\n=======\nLEVELS\n=======\n\nmessage Lervel wan of ate\n#########\n###..####\n###..a..#\n#.b.....#\n#..p.#..#\n#########\n\nmessage Lervel tur of ate\n######\n#..###\n#....#\n#.abp#\n##...#\n######\n\n\nmessage Lervel twei of ate\n#########\n###..####\n#..a....#\n#....b..#\n###p.####\n#########\n\n\nmessage Lervel faw of ate\n#########\n###..####\n#...a.b.#\n#.......#\n#..p.####\n#########\n\nmessage Lervel fif of ate\n(Fascinating and good)\n########\n###..###\n#.a..b.#\n#..p...#\n#####..#\n########\n\nmessage Lervel shicks of ate\n#######\n##..###\n#...a.#\n#..b.p#\n##..###\n##..###\n#######\n\n\n\nmessage Lervel shebben of ate\n#######\n##..###\n##..###\n##.a..#\n#...b.#\n#..p###\n#######\n\nmessage Lervel ate of ate\n\n#######\n##..###\n#p...##\n#.ab.##\n##....#\n###...#\n#######\n\n\nmessage Crawngragurrarshuns!\n\n",[1,1,2,1,0,3,3,3,0,1,2,1,0,2,1,1,0,3,3],"background wall:0,0,0,0,0,0,0,\n0,0,background:1,1,0,0,0,\n0,1,1,1,1,1,0,\n0,background crate2:2,background player:3,background target2:4,1,1,0,\n0,0,background crate1 target1:5,1,0,0,0,\n0,0,1,1,0,0,0,\n0,0,0,0,0,0,0,\n",11,"1627893891182.2898"] + "Crate Swarp", + ["title Crate Swarp\nauthor incurpareh\nhomepage www.increpare.com\n\ncolor_palette 6\n\ntext_color pink\n\n(levels generated with https://dekeyser.ch/puzzlescriptmis/ )\n\n========\nOBJECTS\n========\n\nBackground\npurple\n\nTarget1\ndarkred red\n.....\n.101.\n.101.\n.101.\n.....\n\nCrate1\nred lightred\n10101\n1...1\n1...1\n1...1\n10101\n\n\nTarget2\ndarkblue blue\n.....\n.111.\n.000.\n.111.\n.....\n\nCrate2\nblue lightblue\n11111\n0...0\n1...1\n0...0\n11111\n\n\nWall\nBROWN DARKBROWN BROWN\n10101\n02020\n10101\n02020\n10101\n\nPlayer\nBlack Orange White Blue\n00000\n01010\n00000\n0...0\n0...0\n\n\n\n=======\nLEGEND\n=======\n\ncrate = crate1 or Crate2\n\n. = Background\n# = Wall\nP = Player\nA = target1 and Crate2\nB = target2 and crate1\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 50239307\nplayer move 61796707\nendlevel 41475705\nstartgame 88984906\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget1, target2\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nall target1 on Crate1\nall target2 on crate2\n\n=======\nLEVELS\n=======\n\nmessage Lervel wan of ate\n#########\n###..####\n###..a..#\n#.b.....#\n#..p.#..#\n#########\n\nmessage Lervel tur of ate\n######\n#..###\n#....#\n#.abp#\n##...#\n######\n\n\nmessage Lervel twei of ate\n#########\n###..####\n#..a....#\n#....b..#\n###p.####\n#########\n\n\nmessage Lervel faw of ate\n#########\n###..####\n#...a.b.#\n#.......#\n#..p.####\n#########\n\nmessage Lervel fif of ate\n(Fascinating and good)\n########\n###..###\n#.a..b.#\n#..p...#\n#####..#\n########\n\nmessage Lervel shicks of ate\n#######\n##..###\n#...a.#\n#..b.p#\n##..###\n##..###\n#######\n\n\n\nmessage Lervel shebben of ate\n#######\n##..###\n##..###\n##.a..#\n#...b.#\n#..p###\n#######\n\nmessage Lervel ate of ate\n\n#######\n##..###\n#p...##\n#.ab.##\n##....#\n###...#\n#######\n\n\nmessage Crawngragurrarshuns!\n\n", [1, 1, 2, 1, 0, 3, 3, 3, 0, 1, 2, 1, 0, 2, 1, 1, 0, 3, 3], "background wall:0,0,0,0,0,0,0,\n0,0,background:1,1,0,0,0,\n0,1,1,1,1,1,0,\n0,background crate2:2,background player:3,background target2:4,1,1,0,\n0,0,background crate1 target1:5,1,0,0,0,\n0,0,1,1,0,0,0,\n0,0,0,0,0,0,0,\n", 11, "1627893891182.2898"] ], [ - "NO FORBIDDEN SYMBOLS", - ["title NO FORBIDDEN SYMBOLS\nauthor increpare\nhomepage www.increpare.com\n\n========\nOBJECTS\n========\n\nBackground\nwhite\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\n\nPlayer\ngray gray gray gray\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\n#e22118\n\nhorizont\ntransparent\n\nvert\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 32154907\nstartgame 9465903\nendgame 73573102\nsfx0 27796903\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Crate\nhorizont\nvert\n\n======\nRULES\n======\n\n[horizont]->[]\n[vert]->[]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate horizontal [crate | crate | crate ] -> [ crate | crate horizont | crate ]\n\nlate vertical [ crate | crate horizont | crate ] -> [ | vert | ] again sfx0\nlate horizontal [crate | vert | crate ] -> [ | vert | ]\n\n==============\nWINCONDITIONS\n==============\n\nno crate\nno vert\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\n.......\n.......\n..*.*..\n.*.*.*.\n.......\n...p...\n.......\n\nmessage As you can see, this game is forbidden-symbol-free!\n\nmessage Thanks for playing! :)\n",[0,0,2,1,1,1,0,3,3],"background:0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\n0,0,background crate:1,background player:2,0,0,0,\n0,0,background crate horizont:3,1,0,0,0,\n0,0,1,0,0,0,0,\n0,0,0,1,0,0,0,\n0,0,0,0,0,0,0,\n",1,"1627893988626.8167"] + "NO FORBIDDEN SYMBOLS", + ["title NO FORBIDDEN SYMBOLS\nauthor increpare\nhomepage www.increpare.com\n\n========\nOBJECTS\n========\n\nBackground\nwhite\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\n\nPlayer\ngray gray gray gray\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\n#e22118\n\nhorizont\ntransparent\n\nvert\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 32154907\nstartgame 9465903\nendgame 73573102\nsfx0 27796903\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Crate\nhorizont\nvert\n\n======\nRULES\n======\n\n[horizont]->[]\n[vert]->[]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate horizontal [crate | crate | crate ] -> [ crate | crate horizont | crate ]\n\nlate vertical [ crate | crate horizont | crate ] -> [ | vert | ] again sfx0\nlate horizontal [crate | vert | crate ] -> [ | vert | ]\n\n==============\nWINCONDITIONS\n==============\n\nno crate\nno vert\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\n.......\n.......\n..*.*..\n.*.*.*.\n.......\n...p...\n.......\n\nmessage As you can see, this game is forbidden-symbol-free!\n\nmessage Thanks for playing! :)\n", [0, 0, 2, 1, 1, 1, 0, 3, 3], "background:0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\n0,0,background crate:1,background player:2,0,0,0,\n0,0,background crate horizont:3,1,0,0,0,\n0,0,1,0,0,0,0,\n0,0,0,1,0,0,0,\n0,0,0,0,0,0,0,\n", 1, "1627893988626.8167"] ], [ - "SWIMMING TIME!", - ["title SWIMMING TIME!\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\ncolor_palette 5\n\nrun_rules_on_level_start\n\nnorepeat_action\n\nagain_interval 0.2\n( debug )\n( verbose_logging )\n\nbackground_color #323c39\ntext_color #b4f7ff\n\n========\nOBJECTS\n========\n\nWall1 #\n#284580 #3b7ca9\n00000\n01010\n00000\n01010\n00000\n\nwall2 -\nbrown darkbrown\n11111\n00000\n11111\n00000\n11111\n\nBackground .\n#8b856e\n\ngoalarea ,\nlightblue\n\ntargetarea \n#8dc854\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\ntargetstrap\n#8dc854\n00000\n00000\n.....\n.....\n.....\n\nR0_Up 0\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\nR0_Down\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\nR0_Left\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\nR0_Right\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\n\nR1_Up 1\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR1_Down\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR1_Left\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR1_Right\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\n\nR2_Up 2\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR2_Down\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR2_Left\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR2_Right\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR3 3\n#e95db5 #e95db5\n.000.\n01110\n01110\n01110\n.000.\n\nConnector_Up\n#d9a066 #d9a066\n10001\n.000.\n.....\n.....\n.....\n\nConnector_Down\n#d9a066 #d9a066\n.....\n.....\n.....\n.000.\n10001\n\nConnector_Left\n#d9a066 #d9a066\n1....\n00...\n00...\n00...\n1....\n\nConnector_Right\n#d9a066 #d9a066\n....1\n...00\n...00\n...00\n....1\n\nMoved \ntransparent\n\nParent\ntransparent\n\nGrandParent\ntransparent\n\nNewRot\ntransparent\n\nNewRot2\ntransparent\n\nforce \ntransparent\n\nelephantbody_vanilla e\n#e9b886\n\nelephantbody_eye ;\n#e9b886 white brown\n00000\n01110\n01210\n01110\n00000\n\nelephantbody_hair h\nbrown #e9b886\n00000\n00000\n00000\n00000\n01010\n\nelephantbody_bs &\n#a1694e\n\nelephantbody_mouth '\n#e9b886 white red\n00000\n00000\n02220\n02220\n00000\n\nelephantbody_nose ~\n#e9b886 white black\n0....\n00...\n000..\n000..\n000..\n\n\nelephantbody_nose2 ?\n#e9b886 white black\n0....\n00...\n000..\n0000.\n00000\n\nelephantbody_nose3 %\n#e9b886\n00000\n.0000\n..000\n...00\n....0\n\nelephantbody_anchor a\n#d9a066\n\nelephant_armhighlight $\n#e9b886 #a1694e\n00001\n00001\n00001\n00001\n00001\n\nelephant_armhighlight2 !\n#e9b886 #a1694e\n00001\n00001\n10001\n10001\n11111\n\nelephant_reddot \"\n#e9b886 #e95db5\n00010\n00000\n00000\n00000\n00000\n\nendbarrier\ntransparent\n\nart y\npink\n\nart_eye u\npink white orange\n00000\n01110\n01210\n01210\n00000\n\n=======\nLEGEND\n=======\nwall = wall1 or wall2\nelephantbody = elephantbody_vanilla or elephantbody_anchor or elephantbody_eye or elephantbody_mouth or elephantbody_hair or elephantbody_nose or elephantbody_bs or elephantbody_nose2 or elephant_armhighlight or elephant_armhighlight2 or elephant_reddot or elephantbody_nose3\nR0 = R0_up or R0_down or R0_left or R0_right\nplayer = R0 or elephantbody\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} = endbarrier and goalarea\n=======\nSOUNDS\n=======\n\nsfx0 6951703\nendlevel 96389103\n\n================\nCOLLISIONLAYERS\n================\nBackground\ngoalarea\nMoved\nelephantbody\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\ntargetarea\nendbarrier\nart,art_eye\ntargetstrap\n\n======\nRULES\n======\n\n[stationary player ] -> [ left player ]\n\n[ connector ] -> [ ]\n\n[> elephantbody|wall]->cancel\n\n\n [ > R0 | wall ] -> cancel \n [ > R0 | R1 | wall ] -> cancel \n [ > R0 | R1 | R2 | wall ] -> cancel \n [ > R0 | R1 | R2 | R3 | wall ] -> cancel \n\n\n[ > R0 ] -> [ > R0 > force ]\n\n[ > R0 ] [ RobotPiece | wall ] -> [ > R0 ] [ RobotPiece < force| wall ]\n( [ > player | robotpiece | wall ] -> cancel )\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 ] -> [ RobotPiece Wall ] cancel\n[ > elephantbody | no elephantbody ] -> [ | elephantbody ]\n[RobotPiece elephantbody ] -> cancel\n\nright [elephantbody_anchor | no r0 ] -> cancel\n\n( [ > player | wall ] -> cancel )\n\n[targetarea]->[]\n[targetstrap]->[]\n\nright [||elephantbody_anchor|] -> [ targetarea|targetarea|elephantbody_anchor targetarea|targetarea]\n\ndown [ no targetarea | targetarea | no targetarea | ] -> [targetstrap targetarea | targetarea | targetarea | targetarea ]\n\n[goalarea RobotPiece no targetarea ] -> again sfx0 message AA! You can see his FUCKING DONG!\n\n\n==============\nWINCONDITIONS\n==============\n\nsome elephantbody_anchor on endbarrier\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\nmessage Cripes it just doesn't want to stay in a convenient position today.\n\n\n############################\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..........hh......,,,,},,,,\n#..........e;......,,,,},,,,\n#..........ee~.....,,,,},,,,\n#..........e'......,,,,},,,,\n#..........e.......,,,,},,,,\n#......#...e?......,,,,},,,,\n#..........$e......,,,,},,,,\n#..........$\"......,,,,},,,,\n#..........$e.3....,,,,},,,,\n#..........!e.2....,,,,},,,,\n#..........ee.1....,,,,},,,,\n#..........eea0....,,,,},,,,\n#..........%e&.....,,,,},,,,\n#...........e......,,,,},,,,\n#...........e......,,,,},,,,\n#...........e......,,,,},,,,\n#...........e......,,,,},,,,\n#...........ee.....,,,,},,,,\n#---------------------------\n\n\n\nmessage Time for a nice dip in the pool! Thanks for helping me adjust; that's what friends are for!\n\n\n\n",[1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,2,2,2,1,2,2,2,2,2,2,2,2,3,3,0,0,1],"background wall1: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,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,background wall2:2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,\n1,1,background elephantbody_hair:3,background elephantbody_vanilla:4,4,4,4,4,background elephant_armhighlight:5,5,5,background elephant_armhighlight2:6,background elephantbody_vanilla targetarea targetstrap:7,background elephantbody_vanilla targetarea:8,background elephantbody_nose3 targetarea:9,background targetarea:10,1,1,1,1,1,1,1,1,2,0,1,1,\n1,1,1,1,1,1,1,3,background elephantbody_eye:11,4,background elephantbody_mouth:12,1,background elephantbody_nose2:13,4,background elephant_reddot:14,4,4,7,8,8,8,4,4,4,4,1,1,1,\n1,2,0,1,1,1,1,1,1,1,1,1,1,1,background elephantbody_nose:15,1,1,1,1,1,1,1,background targetarea targetstrap:16,background elephantbody_anchor targetarea:17,background elephantbody_bs targetarea:18,10,1,1,\n1,4,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,background connector_down connector_right r1_right targetarea targetstrap:19,\nbackground connector_up r0_up targetarea:20,10,10,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,background connector_left connector_right r2_right:21,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,background connector_left r3:22,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,2,0,background goalarea:23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,2,0,background endbarrier goalarea:24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,\n24,24,24,24,24,24,24,2,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,\n",2,"1627893997860.5815"] + "SWIMMING TIME!", + ["title SWIMMING TIME!\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\ncolor_palette 5\n\nrun_rules_on_level_start\n\nnorepeat_action\n\nagain_interval 0.2\n( debug )\n( verbose_logging )\n\nbackground_color #323c39\ntext_color #b4f7ff\n\n========\nOBJECTS\n========\n\nWall1 #\n#284580 #3b7ca9\n00000\n01010\n00000\n01010\n00000\n\nwall2 -\nbrown darkbrown\n11111\n00000\n11111\n00000\n11111\n\nBackground .\n#8b856e\n\ngoalarea ,\nlightblue\n\ntargetarea \n#8dc854\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\ntargetstrap\n#8dc854\n00000\n00000\n.....\n.....\n.....\n\nR0_Up 0\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\nR0_Down\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\nR0_Left\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\nR0_Right\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\n\nR1_Up 1\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR1_Down\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR1_Left\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR1_Right\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\n\nR2_Up 2\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR2_Down\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR2_Left\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR2_Right\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR3 3\n#e95db5 #e95db5\n.000.\n01110\n01110\n01110\n.000.\n\nConnector_Up\n#d9a066 #d9a066\n10001\n.000.\n.....\n.....\n.....\n\nConnector_Down\n#d9a066 #d9a066\n.....\n.....\n.....\n.000.\n10001\n\nConnector_Left\n#d9a066 #d9a066\n1....\n00...\n00...\n00...\n1....\n\nConnector_Right\n#d9a066 #d9a066\n....1\n...00\n...00\n...00\n....1\n\nMoved \ntransparent\n\nParent\ntransparent\n\nGrandParent\ntransparent\n\nNewRot\ntransparent\n\nNewRot2\ntransparent\n\nforce \ntransparent\n\nelephantbody_vanilla e\n#e9b886\n\nelephantbody_eye ;\n#e9b886 white brown\n00000\n01110\n01210\n01110\n00000\n\nelephantbody_hair h\nbrown #e9b886\n00000\n00000\n00000\n00000\n01010\n\nelephantbody_bs &\n#a1694e\n\nelephantbody_mouth '\n#e9b886 white red\n00000\n00000\n02220\n02220\n00000\n\nelephantbody_nose ~\n#e9b886 white black\n0....\n00...\n000..\n000..\n000..\n\n\nelephantbody_nose2 ?\n#e9b886 white black\n0....\n00...\n000..\n0000.\n00000\n\nelephantbody_nose3 %\n#e9b886\n00000\n.0000\n..000\n...00\n....0\n\nelephantbody_anchor a\n#d9a066\n\nelephant_armhighlight $\n#e9b886 #a1694e\n00001\n00001\n00001\n00001\n00001\n\nelephant_armhighlight2 !\n#e9b886 #a1694e\n00001\n00001\n10001\n10001\n11111\n\nelephant_reddot \"\n#e9b886 #e95db5\n00010\n00000\n00000\n00000\n00000\n\nendbarrier\ntransparent\n\nart y\npink\n\nart_eye u\npink white orange\n00000\n01110\n01210\n01210\n00000\n\n=======\nLEGEND\n=======\nwall = wall1 or wall2\nelephantbody = elephantbody_vanilla or elephantbody_anchor or elephantbody_eye or elephantbody_mouth or elephantbody_hair or elephantbody_nose or elephantbody_bs or elephantbody_nose2 or elephant_armhighlight or elephant_armhighlight2 or elephant_reddot or elephantbody_nose3\nR0 = R0_up or R0_down or R0_left or R0_right\nplayer = R0 or elephantbody\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} = endbarrier and goalarea\n=======\nSOUNDS\n=======\n\nsfx0 6951703\nendlevel 96389103\n\n================\nCOLLISIONLAYERS\n================\nBackground\ngoalarea\nMoved\nelephantbody\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\ntargetarea\nendbarrier\nart,art_eye\ntargetstrap\n\n======\nRULES\n======\n\n[stationary player ] -> [ left player ]\n\n[ connector ] -> [ ]\n\n[> elephantbody|wall]->cancel\n\n\n [ > R0 | wall ] -> cancel \n [ > R0 | R1 | wall ] -> cancel \n [ > R0 | R1 | R2 | wall ] -> cancel \n [ > R0 | R1 | R2 | R3 | wall ] -> cancel \n\n\n[ > R0 ] -> [ > R0 > force ]\n\n[ > R0 ] [ RobotPiece | wall ] -> [ > R0 ] [ RobotPiece < force| wall ]\n( [ > player | robotpiece | wall ] -> cancel )\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 ] -> [ RobotPiece Wall ] cancel\n[ > elephantbody | no elephantbody ] -> [ | elephantbody ]\n[RobotPiece elephantbody ] -> cancel\n\nright [elephantbody_anchor | no r0 ] -> cancel\n\n( [ > player | wall ] -> cancel )\n\n[targetarea]->[]\n[targetstrap]->[]\n\nright [||elephantbody_anchor|] -> [ targetarea|targetarea|elephantbody_anchor targetarea|targetarea]\n\ndown [ no targetarea | targetarea | no targetarea | ] -> [targetstrap targetarea | targetarea | targetarea | targetarea ]\n\n[goalarea RobotPiece no targetarea ] -> again sfx0 message AA! You can see his FUCKING DONG!\n\n\n==============\nWINCONDITIONS\n==============\n\nsome elephantbody_anchor on endbarrier\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\nmessage Cripes it just doesn't want to stay in a convenient position today.\n\n\n############################\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..........hh......,,,,},,,,\n#..........e;......,,,,},,,,\n#..........ee~.....,,,,},,,,\n#..........e'......,,,,},,,,\n#..........e.......,,,,},,,,\n#......#...e?......,,,,},,,,\n#..........$e......,,,,},,,,\n#..........$\"......,,,,},,,,\n#..........$e.3....,,,,},,,,\n#..........!e.2....,,,,},,,,\n#..........ee.1....,,,,},,,,\n#..........eea0....,,,,},,,,\n#..........%e&.....,,,,},,,,\n#...........e......,,,,},,,,\n#...........e......,,,,},,,,\n#...........e......,,,,},,,,\n#...........e......,,,,},,,,\n#...........ee.....,,,,},,,,\n#---------------------------\n\n\n\nmessage Time for a nice dip in the pool! Thanks for helping me adjust; that's what friends are for!\n\n\n\n", [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 0, 0, 1], "background wall1: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,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,background wall2:2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,\n1,1,background elephantbody_hair:3,background elephantbody_vanilla:4,4,4,4,4,background elephant_armhighlight:5,5,5,background elephant_armhighlight2:6,background elephantbody_vanilla targetarea targetstrap:7,background elephantbody_vanilla targetarea:8,background elephantbody_nose3 targetarea:9,background targetarea:10,1,1,1,1,1,1,1,1,2,0,1,1,\n1,1,1,1,1,1,1,3,background elephantbody_eye:11,4,background elephantbody_mouth:12,1,background elephantbody_nose2:13,4,background elephant_reddot:14,4,4,7,8,8,8,4,4,4,4,1,1,1,\n1,2,0,1,1,1,1,1,1,1,1,1,1,1,background elephantbody_nose:15,1,1,1,1,1,1,1,background targetarea targetstrap:16,background elephantbody_anchor targetarea:17,background elephantbody_bs targetarea:18,10,1,1,\n1,4,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,background connector_down connector_right r1_right targetarea targetstrap:19,\nbackground connector_up r0_up targetarea:20,10,10,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,background connector_left connector_right r2_right:21,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,background connector_left r3:22,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,2,0,background goalarea:23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,2,0,background endbarrier goalarea:24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,\n24,24,24,24,24,24,24,2,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,\n", 2, "1627893997860.5815"] ], [ - "Tugging a trapped pubic hair out from under one's foreskin", - ["title Tugging a trapped pubic hair out from under one's foreskin\nauthor increpare\nhomepage www.increpare.com\n\nnoaction\n\nbackground_color darkblue\n\ntext_color #d9a066\n\n(debug)\n(verbose_logging)\n\n========\nOBJECTS\n========\n\nBackground\n#306082\n\n\nskin\n#d9a066\n\ndarkskin\n#ba7d3f\n\nglans\n#d95763\n\npants\n#3f3f74\n\nselected\nyellow\n\n\nhair_core\nblack black\n.....\n..0..\n.010.\n..0..\n.....\n\nhair_up\nblack black\n.010.\n.010.\n.....\n.....\n.....\n\n\nhair_down\nblack black\n.....\n.....\n.....\n.010.\n.010.\n\nhair_left\nblack black\n.....\n00...\n11...\n00...\n.....\n\n\nhair_right\nblack black\n.....\n...00\n...11\n...00\n.....\n\nhair_root\nblack black\n.000.\n01110\n01110\n01110\n.000.\n\nhair_end \nred\n.....\n.....\n..0..\n.....\n.....\n\nretract\ntransparent\n\ndelve\ntransparent\n\nnewselection_horizontal\npink\n.....\n.....\n.000.\n.....\n.....\n\n\nnewselection_vertical\nlightgreen\n.....\n..0..\n..0..\n..0..\n.....\n\ninside\nred\n\nguide_up\nyellow\n..0..\n.....\n.....\n.....\n.....\n\nguide_down\nyellow\n.....\n.....\n.....\n.....\n..0..\n\nguide_left\nyellow\n.....\n.....\n0....\n.....\n.....\n\nguide_right\nyellow\n.....\n.....\n....0\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\nPlayer = selected\n\n& = inside and guide_down\n\n| = inside and guide_right\n\n{ = hair_core and hair_up and hair_end and inside and guide_down\n\\ = hair_core and hair_down and hair_end and inside and guide_down\n~ = hair_core and hair_up and hair_end and inside and guide_right\n` = hair_core and hair_left and hair_end and inside and guide_down\n¬ = hair_core and hair_right and hair_end and inside and guide_down\n\n} = hair_core and hair_up and hair_down and inside \n\n\n\nz = hair_core and hair_down and inside\nx = hair_core and hair_left and inside\nc = hair_core and hair_right and inside\n\n\nb = hair_core and hair_up and hair_left and inside\nn = hair_core and hair_up and hair_right and inside\n\nm = hair_core and hair_down and hair_left and inside\n: = hair_core and hair_down and hair_right and inside\n\n@ = hair_core and hair_left and hair_right and inside\n\n\n\n\n\n1 = hair_core and hair_up and hair_end\n2 = hair_core and hair_down\n3 = hair_core and hair_left \n4 = hair_core and hair_right\n\n\n5 = hair_core and hair_up and hair_down\n6 = hair_core and hair_up and hair_left\n7 = hair_core and hair_up and hair_right\n\n8 = hair_core and hair_down and hair_left\n9 = hair_core and hair_down and hair_right\n\n0 = hair_core and hair_left and hair_right\n\n\n\nq = hair_root and hair_up \nw = hair_root and hair_down \ne = hair_root and hair_left \nr = hair_root and hair_right \n\n\n\na = hair_core and hair_up and selected\ns = hair_core and hair_down and selected\nd = hair_core and hair_left and selected\nf = hair_core and hair_right and selected\n\n\ng = hair_core and hair_up and hair_down and selected\nh = hair_core and hair_up and hair_left and selected\nj = hair_core and hair_up and hair_right and selected\n\nk = hair_core and hair_down and hair_left and selected\nl = hair_core and hair_down and hair_right and selected\n\n; = hair_core and hair_left and hair_right and selected\n\n! = hair_core\n\n/ = hair_end and hair_down and hair_core \n\nhair_connection = hair_up or hair_down or hair_left or hair_right\n\nnewselection = newselection_horizontal or newselection_vertical\n\nguide = guide_up or guide_down or guide_left or guide_right\nwall = skin or glans or pants or darkskin\n\n# = skin\n% = darkskin\n\n\" = pants\n£ = glans\n\n=======\nSOUNDS\n=======\nstartlevel 3474903\nendlevel 99809305\nsfx0 22765907 (yank)\ncancel 68802704\nsfx1 53944706 (change selection)\n================\nCOLLISIONLAYERS\n================\n\nhair_end\nretract\ndelve\nguide\n\n\nnewselection_horizontal\nnewselection_vertical\n\nBackground\ninside\nselected\nWall\nhair_core, hair_root\nhair_up\nhair_down\nhair_left\nhair_right\n\n======\nRULES\n======\n\n[ down selected inside ] -> cancel\n[ left selected inside ] -> cancel\n[ right selected inside ] -> cancel\n\n\n [action player ] [hair_core no hair_connection | inside ] -> [action player ] [hair_core inside | inside ]\nup [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_up hair_core | hair_down ]\ndown [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_down hair_core | hair_up ]\nleft [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_left hair_core | hair_right ]\nright [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_right hair_core | hair_left ]\n\n[ down selected hair_end] -> cancel\n[ down selected hair_root] -> cancel\n\n(code for selected segment here)\n\ndown [ no selected | up selected | up selected ] -> [ no selected | selected newselection_horizontal | up selected ] sfx1\nup [ no selected | down selected | down selected ] -> [ no selected | selected newselection_horizontal | down selected ] sfx1\n\nleft [ no selected | right selected | right selected ] -> [ no selected | selected newselection_vertical | right selected ] sfx1\nright [ no selected | left selected | left selected ] -> [ no selected | selected newselection_vertical | left selected ] sfx1\n\n\n(if player is moving into an unconnected hair, then nope out)\nup [ > selected | hair_core no hair_down ] -> cancel\ndown [ > selected | hair_core no hair_up ] -> cancel\nleft [ > selected | hair_core no hair_right ] -> cancel\nright [ > selected | hair_core no hair_left ] -> cancel\n\n\n(removing existing selection)\n[ newselection ] [ selected ] -> [ newselection ] [ ]\n\n(grow new selection)\nright [ newselection_horizontal hair_right | ] -> [ newselection_horizontal hair_right | newselection_horizontal ]\nleft [ newselection_horizontal hair_left | ] -> [ newselection_horizontal hair_left | newselection_horizontal ]\n\nup [ newselection_vertical hair_up | ] -> [ newselection_vertical hair_up | newselection_vertical ]\ndown [ newselection_vertical hair_down | ] -> [ newselection_vertical hair_down | newselection_vertical ]\n\n\n\n[newselection]->[selected]\n\n\n\n\n\n(if player is reducing a lump, then remove some bits in the way )\n\t(either it's straight or it's bending away)\nleft [ > selected hair_left | hair_left hair_right hair_core ] -> [ > selected hair_left delve | ]\nleft [ > selected hair_left | hair_up hair_right hair_core ] -> [ > selected hair_up delve| ]\nleft [ > selected hair_left | hair_down hair_right hair_core ] -> [ > selected hair_down delve| ]\n\nright [ > selected hair_right | hair_right hair_left hair_core ] -> [ > selected hair_right delve | ]\nright [ > selected hair_right | hair_up hair_left hair_core ] -> [ > selected hair_up delve| ]\nright [ > selected hair_right | hair_down hair_left hair_core ] -> [ > selected hair_down delve| ]\n\n\n\ndown [ > selected hair_down | hair_down hair_up hair_core ] -> [ > selected hair_down delve | ]\ndown [ > selected hair_down | hair_right hair_up hair_core ] -> [ > selected hair_right delve| ]\ndown [ > selected hair_down | hair_left hair_up hair_core ] -> [ > selected hair_left delve| ]\n\n\n\nup [ > selected hair_up | hair_up hair_down hair_core ] -> [ > selected hair_up delve | ]\nup [ > selected hair_up | hair_right hair_down hair_core ] -> [ > selected hair_right delve| ]\nup [ > selected hair_up | hair_left hair_down hair_core ] -> [ > selected hair_left delve| ]\n\n(moves rest of hair with selection)\n[ > selected hair_connection hair_core ] -> [ > player > hair_connection > hair_core ]\n\n\n(if there's a gap, fill the gap)\nlate right [ hair_right | no hair_left | hair_left selected ] -> [ hair_right | hair_left hair_core hair_right retract| hair_left selected ]\nlate left [ hair_left | no hair_right | hair_right selected ] -> [ hair_left | hair_right hair_core hair_left retract| hair_right selected ]\nlate up [ hair_up | no hair_down | hair_down selected ] -> [ hair_up | hair_down hair_core hair_up retract| hair_down selected ]\nlate down [ hair_down | no hair_up | hair_up selected ] -> [ hair_down | hair_up hair_core hair_down retract| hair_up selected ]\n\n\nlate down [ retract ] [ hair_core hair_down | hair_core hair_up hair_end ] -> [] [ hair_core hair_end guide_down |] sfx0\n+late up [ retract ] [ hair_core hair_up | hair_core hair_down hair_end ] -> [] [ hair_core hair_end guide_up |] sfx0\n+late left [ retract ] [ hair_core hair_left | hair_core hair_right hair_end ] -> [] [ hair_core hair_end guide_left |] sfx0\n+late right [ retract ] [ hair_core hair_right | hair_core hair_left hair_end ] -> [] [ hair_core hair_end guide_right |] sfx0\n\nlate up [ delve ] [ hair_core hair_end guide_up | ] -> [] [ hair_core hair_up | hair_down hair_core hair_end] sfx0\n+late down [ delve ] [ hair_core hair_end guide_down | ] -> [] [ hair_core hair_down | hair_up hair_core hair_end] sfx0\n+late left [ delve ] [ hair_core hair_end guide_left | ] -> [] [ hair_core hair_left | hair_right hair_core hair_end] sfx0\n+late right [ delve ] [ hair_core hair_end guide_right | ] -> [] [ hair_core hair_right | hair_left hair_core hair_end] sfx0\n\nlate [hair_core wall ] -> cancel\n\n\n(Expand selection)\nlate up [ hair_up no selected | selected | selected ] -> [ hair_up selected | selected |selected ]\nlate down [ hair_down no selected | selected | selected ] -> [ hair_down selected | selected |selected ]\nlate left [ hair_left no selected | selected | selected ] -> [ hair_left selected | selected |selected ]\nlate right [ hair_right no selected | selected | selected ] -> [ hair_right selected | selected |selected ]\n\nlate [selected wall]->cancel\n\n\n==============\nWINCONDITIONS\n==============\n no hair_core on inside \n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"........\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"....908.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"....5.5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".9006.5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".5....5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".5...96.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".j;k.5..\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"...5.708............\"\"\"\"\"\"\"\n\"\".....5...5£££.£££...........\"\n\"..####q#.#}£££££££&#.######...\n\".#######.#}£££££££&#.#######..\n..#######.#}£££££££&#.#######..\n.########.#}£££££££&#.########.\n.########.#}£££££££&#.########.\n.#######..#}£££££££&#.########.\n.#######.#\\}£££££££&#.########.\n.#######.#}nm#####&&#.########.\n.#######.#n@b#####&&#.########.\n.#######..##########..########.\n.########..#########.#########.\n\nmessage Unnnh! So great!\n\nmessage Level 2 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"9000008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"5.....5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"5.....5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"7k.9006\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"9h.7008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"5908906\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"76.55..\"......\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"98.55...££.££..\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"...5706708£££££££..........\"\"\"\n\"\"..##q##.##}£££££££&#.######..\"\"\n\"\".#####.#:@b£££££££&#.#######.\"\"\n\"..#####.#n@m£££££££&#.#######..\"\n\".######.#:@b£££££££&#.########.\"\n\".######.#n@m£££££££&#.########.\"\n\".######..#:b£££££££&#.########.\"\n\".#######.#n@`#####&&#.########.\"\n\".#######..##########..########.\"\n\nmessage I feel so good!\n\nmessage Level 3 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"90008....908\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5...5....5.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5...5908.5.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"708.55.5.5.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"..5965.706.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"9065.7008..5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5..5....5.96\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5..7008.5.5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5.l;k.5.5.5..............\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"706.5.706.5.£££££.££££££...........\"\"\"\n\"\"..###q##.##}££££££££££££££|#.######..\"\"\n\"\".######.#:@b££££££££££££££|#.#######..\"\n\"..######.#n@m££££££££££££££|#.#######..\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######..##~||##########|||#.########.\"\n\".#########..################.#########.\"\n\n\nmessage I live for moments like this!\n\n\nmessage Level 4 of 5\n\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"900000008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"789890085\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".76769855\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".90085765\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".5.965906\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".78785708\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"..59678.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".lh7006.5......\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"..5.....96££.££.........\"\"\"\n\"\"..#q###.#nm£££££&#.#####..\"\"\n\"\".######.#:b£££££&#.######..\"\n\"..######.#nm£££££&#.######..\"\n\".#######.#:b£££££&#.#######.\"\n\".#######.#n`&###&&#.#######.\"\n\".#######..########..#######.\"\n\".########..######..########.\"\n\".#########.######.#########.\"\n\nmessage What a rush!\n\nmessage Level 5 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"...9008900008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"...5..55....5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"9006.965..906\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"789085.5985..\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\".76.5706576..\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\".lk.5.90698..........\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"...5706.70065££££.££££...........\"\"\"\n\"\"..##q#####.##}£££££££££&#.#######..\"\"\n\"\".########.#:@b£££££££££&#.########..\"\n\"..########.#n@m£££££££££&#.#########.\"\n\".#########.#:@b£££££££££&#.#########.\"\n\".#########.#n@m£££££££££&#.#########.\"\n\".#########.#:@b£££££££££&#.#########.\"\n\".#########.#n@m£££££££££&#.#########.\"\n\".#########.#:@b£££££££££&#.#########.\"\n\".#########.#~|||#######&&#.#########.\"\n\".##########.#############.##########.\"\n\nmessage Congratulations! You are pubic hair yanking champion of the universe!\n(\n###########\n#900000008#\n#789890085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########nm#\n########:b#\n########nm#\n########:b#\n########{##\n###########\n###########\n\n\nmessage Level 1\n###########\n#........##\n#....908.##\n#....5.5.##\n#.9006.5.##\n#.5....5.##\n#.5...96.##\n#.j;k.5..##\n#...5.708##\n#...5...5##\n####q###}##\n########}##\n########}##\n########}##\n########}##\n########}##\n########}##\n########{##\n########&##\n########&##\n###########\n\nmessage Level 2\n###########\n###########\n##l;;;;;k##\n##5.....5##\n##5.....5##\n##78.9006##\n##96.7008##\n##5908906##\n##76.55..##\n##98.55..##\n##5706708##\n##q#####}##\n########}##\n########}##\n########}##\n########{##\n########&##\n########&##\n###########\n\nmessage Level 3\n###########\n#900000008#\n#789890085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########nm#\n########:b#\n########nm#\n########:b#\n########{##\n###########\n###########\n\n\nmessage Level 4\n##############\n#90008....908#\n#5...5....5.5#\n#5...5908.5.5#\n#708.55.5.5.5#\n#..5965.706.5#\n#9065.7008..5#\n#5..5....5.96#\n#5..7008.5.5##\n#5.l;k.5.5.5##\n#706.5.706.5##\n#####q#####}##\n##########:b&#\n##########n@m#\n##########:@b#\n##########n@m#\n##########:@b#\n##########n@m#\n##########:@b#\n##########n@m#\n##########:@b#\n##########n@m#\n###########¬b#\n##############\n\n(hard)\nmessage Level 5\n###############\n#...9008900008#\n#...5..55....5#\n#9006.965..906#\n#789085.5985..#\n#.76.5706576..#\n#.lk.5.90698..#\n#.5706.70065..#\n##q########}###\n###########}:m#\n###########}}}#\n###########nb}#\n###########:m}#\n###########}nb#\n###########n@m#\n###########:@b#\n###########~||#\n###############\n\n(\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#...........##\n#...........##\n#..../......##\n#####q#####&##\n##########&&&#\n##########&&&#\n##########&&&#\n##########&&&#\n##############\n\n###########\n#900000008#\n#789890085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########nm#\n########:b#\n########nm#\n########cb#\n###########\n\n\n###########\n#900000008#\n#789890085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########}##\n########}##\n########}##\n########1##\n###########\n\n\n###############\n#...9008900008#\n#...5..55....5#\n#9006.965..906#\n#789085.5985..#\n#.76.5706576..#\n#.lk.5.90698..#\n#.5706.70065..#\n##q########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########{###\n###########&###\n###########&###\n###############\n###############\n\n\n\n###########\n###########\n##l;;;;;k##\n##5.....5##\n##5.....5##\n##5.....5##\n##5.....5##\n##5908906##\n##76.55..##\n##98.55..##\n##5706708##\n##q#####}##\n########}##\n########}##\n########}##\n########{##\n###########\n\n\n########### \n#.........#\n#...9008..#\n#...5..5..#\n#...7896..#\n#....55...#\n#.lk.55...#\n#.5706708.#\n##q#####5##\n########5##\n########5##\n########1##\n########.##\n###########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.lk......#\n#.5{!.....#\n##q#####.##\n########.##\n########.##\n########.##\n########.##\n###########\n\n###########\n#.........#\n#..9008...#\n#..7k.5...#\n#...g.5...#\n#...g.708.#\n#.90h...5.#\n#.5.....5.#\n##q#####}##\n########}##\n########}##\n########}##\n########{##\n###########\n))\n",[1,3,2,1,0,2,2,3,0,3,1,0,0,0,1,0,3,3,1,1,3,2,2,1,3,3,2,1,3,1,3,2,3,2,0,3,3,2,1,0,1,3,1,1],"background pants: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,background:1,1,1,1,\n1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,background skin:2,2,2,2,2,2,2,2,2,2,0,background hair_core hair_down hair_right:3,background hair_core hair_right hair_up:4,1,1,1,1,1,3,background hair_core hair_down hair_up:5,\n4,1,2,2,2,2,2,2,2,2,2,2,2,2,0,background hair_core hair_left hair_right:6,background hair_core hair_down hair_left:7,5,5,5,5,5,background hair_core hair_left hair_up:8,1,6,2,2,2,2,2,2,2,2,2,2,2,2,2,0,background hair_core hair_down hair_left selected:9,background hair_core hair_down hair_up selected:10,\n10,10,10,10,10,background hair_core hair_right hair_up selected:11,1,6,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,1,1,1,1,6,3,8,2,2,2,2,2,2,2,2,2,\n2,2,2,2,0,1,1,1,1,1,1,1,6,7,5,background hair_root hair_up:12,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,3,5,5,4,1,6,1,1,2,2,\n2,2,2,2,2,2,2,2,2,2,2,0,1,1,6,1,1,6,1,7,5,4,2,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,7,5,4,\n6,1,1,1,6,1,2,2,2,2,2,2,2,2,2,2,1,2,0,1,1,1,1,6,6,1,1,1,6,2,background hair_core hair_down hair_right inside:13,background hair_core hair_right hair_up inside:14,13,14,13,14,13,14,13,14,2,\n1,0,3,5,5,5,8,7,5,5,5,8,2,background hair_core hair_left hair_right inside:15,15,15,15,15,15,15,15,15,15,2,1,0,6,1,1,1,1,1,3,5,5,5,background hair_core hair_down hair_up inside:16,background hair_core hair_left hair_up inside:17,background hair_core hair_down hair_left inside:18,17,18,\n17,18,17,18,17,18,14,2,0,7,5,5,5,5,5,8,1,1,1,background glans:19,19,19,19,19,19,19,19,19,19,19,15,2,0,0,0,0,0,0,0,0,0,\n1,19,19,19,19,19,19,19,19,19,19,19,19,background guide_right hair_core hair_end hair_left inside:20,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,\n0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,\n19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,1,19,\n19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,\n0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,\n2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,\n19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,background guide_right inside:21,2,0,0,0,0,0,0,0,0,\n0,1,1,19,19,19,19,19,19,19,19,19,19,19,21,2,0,0,0,0,0,0,0,0,0,0,1,21,21,21,21,21,21,21,21,21,21,21,21,2,0,\n0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,\n2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,\n0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,\n2,2,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,1,2,2,\n2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,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,0,0,0,0,0,0,0,\n",7,"1627894024137.8354"] + "Tugging a trapped pubic hair out from under one's foreskin", + ["title Tugging a trapped pubic hair out from under one's foreskin\nauthor increpare\nhomepage www.increpare.com\n\nnoaction\n\nbackground_color darkblue\n\ntext_color #d9a066\n\n(debug)\n(verbose_logging)\n\n========\nOBJECTS\n========\n\nBackground\n#306082\n\n\nskin\n#d9a066\n\ndarkskin\n#ba7d3f\n\nglans\n#d95763\n\npants\n#3f3f74\n\nselected\nyellow\n\n\nhair_core\nblack black\n.....\n..0..\n.010.\n..0..\n.....\n\nhair_up\nblack black\n.010.\n.010.\n.....\n.....\n.....\n\n\nhair_down\nblack black\n.....\n.....\n.....\n.010.\n.010.\n\nhair_left\nblack black\n.....\n00...\n11...\n00...\n.....\n\n\nhair_right\nblack black\n.....\n...00\n...11\n...00\n.....\n\nhair_root\nblack black\n.000.\n01110\n01110\n01110\n.000.\n\nhair_end \nred\n.....\n.....\n..0..\n.....\n.....\n\nretract\ntransparent\n\ndelve\ntransparent\n\nnewselection_horizontal\npink\n.....\n.....\n.000.\n.....\n.....\n\n\nnewselection_vertical\nlightgreen\n.....\n..0..\n..0..\n..0..\n.....\n\ninside\nred\n\nguide_up\nyellow\n..0..\n.....\n.....\n.....\n.....\n\nguide_down\nyellow\n.....\n.....\n.....\n.....\n..0..\n\nguide_left\nyellow\n.....\n.....\n0....\n.....\n.....\n\nguide_right\nyellow\n.....\n.....\n....0\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\nPlayer = selected\n\n& = inside and guide_down\n\n| = inside and guide_right\n\n{ = hair_core and hair_up and hair_end and inside and guide_down\n\\ = hair_core and hair_down and hair_end and inside and guide_down\n~ = hair_core and hair_up and hair_end and inside and guide_right\n` = hair_core and hair_left and hair_end and inside and guide_down\n¬ = hair_core and hair_right and hair_end and inside and guide_down\n\n} = hair_core and hair_up and hair_down and inside \n\n\n\nz = hair_core and hair_down and inside\nx = hair_core and hair_left and inside\nc = hair_core and hair_right and inside\n\n\nb = hair_core and hair_up and hair_left and inside\nn = hair_core and hair_up and hair_right and inside\n\nm = hair_core and hair_down and hair_left and inside\n: = hair_core and hair_down and hair_right and inside\n\n@ = hair_core and hair_left and hair_right and inside\n\n\n\n\n\n1 = hair_core and hair_up and hair_end\n2 = hair_core and hair_down\n3 = hair_core and hair_left \n4 = hair_core and hair_right\n\n\n5 = hair_core and hair_up and hair_down\n6 = hair_core and hair_up and hair_left\n7 = hair_core and hair_up and hair_right\n\n8 = hair_core and hair_down and hair_left\n9 = hair_core and hair_down and hair_right\n\n0 = hair_core and hair_left and hair_right\n\n\n\nq = hair_root and hair_up \nw = hair_root and hair_down \ne = hair_root and hair_left \nr = hair_root and hair_right \n\n\n\na = hair_core and hair_up and selected\ns = hair_core and hair_down and selected\nd = hair_core and hair_left and selected\nf = hair_core and hair_right and selected\n\n\ng = hair_core and hair_up and hair_down and selected\nh = hair_core and hair_up and hair_left and selected\nj = hair_core and hair_up and hair_right and selected\n\nk = hair_core and hair_down and hair_left and selected\nl = hair_core and hair_down and hair_right and selected\n\n; = hair_core and hair_left and hair_right and selected\n\n! = hair_core\n\n/ = hair_end and hair_down and hair_core \n\nhair_connection = hair_up or hair_down or hair_left or hair_right\n\nnewselection = newselection_horizontal or newselection_vertical\n\nguide = guide_up or guide_down or guide_left or guide_right\nwall = skin or glans or pants or darkskin\n\n# = skin\n% = darkskin\n\n\" = pants\n£ = glans\n\n=======\nSOUNDS\n=======\nstartlevel 3474903\nendlevel 99809305\nsfx0 22765907 (yank)\ncancel 68802704\nsfx1 53944706 (change selection)\n================\nCOLLISIONLAYERS\n================\n\nhair_end\nretract\ndelve\nguide\n\n\nnewselection_horizontal\nnewselection_vertical\n\nBackground\ninside\nselected\nWall\nhair_core, hair_root\nhair_up\nhair_down\nhair_left\nhair_right\n\n======\nRULES\n======\n\n[ down selected inside ] -> cancel\n[ left selected inside ] -> cancel\n[ right selected inside ] -> cancel\n\n\n [action player ] [hair_core no hair_connection | inside ] -> [action player ] [hair_core inside | inside ]\nup [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_up hair_core | hair_down ]\ndown [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_down hair_core | hair_up ]\nleft [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_left hair_core | hair_right ]\nright [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_right hair_core | hair_left ]\n\n[ down selected hair_end] -> cancel\n[ down selected hair_root] -> cancel\n\n(code for selected segment here)\n\ndown [ no selected | up selected | up selected ] -> [ no selected | selected newselection_horizontal | up selected ] sfx1\nup [ no selected | down selected | down selected ] -> [ no selected | selected newselection_horizontal | down selected ] sfx1\n\nleft [ no selected | right selected | right selected ] -> [ no selected | selected newselection_vertical | right selected ] sfx1\nright [ no selected | left selected | left selected ] -> [ no selected | selected newselection_vertical | left selected ] sfx1\n\n\n(if player is moving into an unconnected hair, then nope out)\nup [ > selected | hair_core no hair_down ] -> cancel\ndown [ > selected | hair_core no hair_up ] -> cancel\nleft [ > selected | hair_core no hair_right ] -> cancel\nright [ > selected | hair_core no hair_left ] -> cancel\n\n\n(removing existing selection)\n[ newselection ] [ selected ] -> [ newselection ] [ ]\n\n(grow new selection)\nright [ newselection_horizontal hair_right | ] -> [ newselection_horizontal hair_right | newselection_horizontal ]\nleft [ newselection_horizontal hair_left | ] -> [ newselection_horizontal hair_left | newselection_horizontal ]\n\nup [ newselection_vertical hair_up | ] -> [ newselection_vertical hair_up | newselection_vertical ]\ndown [ newselection_vertical hair_down | ] -> [ newselection_vertical hair_down | newselection_vertical ]\n\n\n\n[newselection]->[selected]\n\n\n\n\n\n(if player is reducing a lump, then remove some bits in the way )\n\t(either it's straight or it's bending away)\nleft [ > selected hair_left | hair_left hair_right hair_core ] -> [ > selected hair_left delve | ]\nleft [ > selected hair_left | hair_up hair_right hair_core ] -> [ > selected hair_up delve| ]\nleft [ > selected hair_left | hair_down hair_right hair_core ] -> [ > selected hair_down delve| ]\n\nright [ > selected hair_right | hair_right hair_left hair_core ] -> [ > selected hair_right delve | ]\nright [ > selected hair_right | hair_up hair_left hair_core ] -> [ > selected hair_up delve| ]\nright [ > selected hair_right | hair_down hair_left hair_core ] -> [ > selected hair_down delve| ]\n\n\n\ndown [ > selected hair_down | hair_down hair_up hair_core ] -> [ > selected hair_down delve | ]\ndown [ > selected hair_down | hair_right hair_up hair_core ] -> [ > selected hair_right delve| ]\ndown [ > selected hair_down | hair_left hair_up hair_core ] -> [ > selected hair_left delve| ]\n\n\n\nup [ > selected hair_up | hair_up hair_down hair_core ] -> [ > selected hair_up delve | ]\nup [ > selected hair_up | hair_right hair_down hair_core ] -> [ > selected hair_right delve| ]\nup [ > selected hair_up | hair_left hair_down hair_core ] -> [ > selected hair_left delve| ]\n\n(moves rest of hair with selection)\n[ > selected hair_connection hair_core ] -> [ > player > hair_connection > hair_core ]\n\n\n(if there's a gap, fill the gap)\nlate right [ hair_right | no hair_left | hair_left selected ] -> [ hair_right | hair_left hair_core hair_right retract| hair_left selected ]\nlate left [ hair_left | no hair_right | hair_right selected ] -> [ hair_left | hair_right hair_core hair_left retract| hair_right selected ]\nlate up [ hair_up | no hair_down | hair_down selected ] -> [ hair_up | hair_down hair_core hair_up retract| hair_down selected ]\nlate down [ hair_down | no hair_up | hair_up selected ] -> [ hair_down | hair_up hair_core hair_down retract| hair_up selected ]\n\n\nlate down [ retract ] [ hair_core hair_down | hair_core hair_up hair_end ] -> [] [ hair_core hair_end guide_down |] sfx0\n+late up [ retract ] [ hair_core hair_up | hair_core hair_down hair_end ] -> [] [ hair_core hair_end guide_up |] sfx0\n+late left [ retract ] [ hair_core hair_left | hair_core hair_right hair_end ] -> [] [ hair_core hair_end guide_left |] sfx0\n+late right [ retract ] [ hair_core hair_right | hair_core hair_left hair_end ] -> [] [ hair_core hair_end guide_right |] sfx0\n\nlate up [ delve ] [ hair_core hair_end guide_up | ] -> [] [ hair_core hair_up | hair_down hair_core hair_end] sfx0\n+late down [ delve ] [ hair_core hair_end guide_down | ] -> [] [ hair_core hair_down | hair_up hair_core hair_end] sfx0\n+late left [ delve ] [ hair_core hair_end guide_left | ] -> [] [ hair_core hair_left | hair_right hair_core hair_end] sfx0\n+late right [ delve ] [ hair_core hair_end guide_right | ] -> [] [ hair_core hair_right | hair_left hair_core hair_end] sfx0\n\nlate [hair_core wall ] -> cancel\n\n\n(Expand selection)\nlate up [ hair_up no selected | selected | selected ] -> [ hair_up selected | selected |selected ]\nlate down [ hair_down no selected | selected | selected ] -> [ hair_down selected | selected |selected ]\nlate left [ hair_left no selected | selected | selected ] -> [ hair_left selected | selected |selected ]\nlate right [ hair_right no selected | selected | selected ] -> [ hair_right selected | selected |selected ]\n\nlate [selected wall]->cancel\n\n\n==============\nWINCONDITIONS\n==============\n no hair_core on inside \n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"........\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"....908.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"....5.5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".9006.5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".5....5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".5...96.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".j;k.5..\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"...5.708............\"\"\"\"\"\"\"\n\"\".....5...5£££.£££...........\"\n\"..####q#.#}£££££££&#.######...\n\".#######.#}£££££££&#.#######..\n..#######.#}£££££££&#.#######..\n.########.#}£££££££&#.########.\n.########.#}£££££££&#.########.\n.#######..#}£££££££&#.########.\n.#######.#\\}£££££££&#.########.\n.#######.#}nm#####&&#.########.\n.#######.#n@b#####&&#.########.\n.#######..##########..########.\n.########..#########.#########.\n\nmessage Unnnh! So great!\n\nmessage Level 2 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"9000008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"5.....5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"5.....5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"7k.9006\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"9h.7008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"5908906\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"76.55..\"......\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"98.55...££.££..\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"...5706708£££££££..........\"\"\"\n\"\"..##q##.##}£££££££&#.######..\"\"\n\"\".#####.#:@b£££££££&#.#######.\"\"\n\"..#####.#n@m£££££££&#.#######..\"\n\".######.#:@b£££££££&#.########.\"\n\".######.#n@m£££££££&#.########.\"\n\".######..#:b£££££££&#.########.\"\n\".#######.#n@`#####&&#.########.\"\n\".#######..##########..########.\"\n\nmessage I feel so good!\n\nmessage Level 3 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"90008....908\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5...5....5.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5...5908.5.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"708.55.5.5.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"..5965.706.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"9065.7008..5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5..5....5.96\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5..7008.5.5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5.l;k.5.5.5..............\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"706.5.706.5.£££££.££££££...........\"\"\"\n\"\"..###q##.##}££££££££££££££|#.######..\"\"\n\"\".######.#:@b££££££££££££££|#.#######..\"\n\"..######.#n@m££££££££££££££|#.#######..\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######..##~||##########|||#.########.\"\n\".#########..################.#########.\"\n\n\nmessage I live for moments like this!\n\n\nmessage Level 4 of 5\n\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"900000008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"789890085\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".76769855\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".90085765\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".5.965906\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".78785708\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"..59678.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".lh7006.5......\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"..5.....96££.££.........\"\"\"\n\"\"..#q###.#nm£££££&#.#####..\"\"\n\"\".######.#:b£££££&#.######..\"\n\"..######.#nm£££££&#.######..\"\n\".#######.#:b£££££&#.#######.\"\n\".#######.#n`&###&&#.#######.\"\n\".#######..########..#######.\"\n\".########..######..########.\"\n\".#########.######.#########.\"\n\nmessage What a rush!\n\nmessage Level 5 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"...9008900008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"...5..55....5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"9006.965..906\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"789085.5985..\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\".76.5706576..\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\".lk.5.90698..........\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"...5706.70065££££.££££...........\"\"\"\n\"\"..##q#####.##}£££££££££&#.#######..\"\"\n\"\".########.#:@b£££££££££&#.########..\"\n\"..########.#n@m£££££££££&#.#########.\"\n\".#########.#:@b£££££££££&#.#########.\"\n\".#########.#n@m£££££££££&#.#########.\"\n\".#########.#:@b£££££££££&#.#########.\"\n\".#########.#n@m£££££££££&#.#########.\"\n\".#########.#:@b£££££££££&#.#########.\"\n\".#########.#~|||#######&&#.#########.\"\n\".##########.#############.##########.\"\n\nmessage Congratulations! You are pubic hair yanking champion of the universe!\n(\n###########\n#900000008#\n#789890085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########nm#\n########:b#\n########nm#\n########:b#\n########{##\n###########\n###########\n\n\nmessage Level 1\n###########\n#........##\n#....908.##\n#....5.5.##\n#.9006.5.##\n#.5....5.##\n#.5...96.##\n#.j;k.5..##\n#...5.708##\n#...5...5##\n####q###}##\n########}##\n########}##\n########}##\n########}##\n########}##\n########}##\n########{##\n########&##\n########&##\n###########\n\nmessage Level 2\n###########\n###########\n##l;;;;;k##\n##5.....5##\n##5.....5##\n##78.9006##\n##96.7008##\n##5908906##\n##76.55..##\n##98.55..##\n##5706708##\n##q#####}##\n########}##\n########}##\n########}##\n########{##\n########&##\n########&##\n###########\n\nmessage Level 3\n###########\n#900000008#\n#789890085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########nm#\n########:b#\n########nm#\n########:b#\n########{##\n###########\n###########\n\n\nmessage Level 4\n##############\n#90008....908#\n#5...5....5.5#\n#5...5908.5.5#\n#708.55.5.5.5#\n#..5965.706.5#\n#9065.7008..5#\n#5..5....5.96#\n#5..7008.5.5##\n#5.l;k.5.5.5##\n#706.5.706.5##\n#####q#####}##\n##########:b&#\n##########n@m#\n##########:@b#\n##########n@m#\n##########:@b#\n##########n@m#\n##########:@b#\n##########n@m#\n##########:@b#\n##########n@m#\n###########¬b#\n##############\n\n(hard)\nmessage Level 5\n###############\n#...9008900008#\n#...5..55....5#\n#9006.965..906#\n#789085.5985..#\n#.76.5706576..#\n#.lk.5.90698..#\n#.5706.70065..#\n##q########}###\n###########}:m#\n###########}}}#\n###########nb}#\n###########:m}#\n###########}nb#\n###########n@m#\n###########:@b#\n###########~||#\n###############\n\n(\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#...........##\n#...........##\n#..../......##\n#####q#####&##\n##########&&&#\n##########&&&#\n##########&&&#\n##########&&&#\n##############\n\n###########\n#900000008#\n#789890085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########nm#\n########:b#\n########nm#\n########cb#\n###########\n\n\n###########\n#900000008#\n#789890085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########}##\n########}##\n########}##\n########1##\n###########\n\n\n###############\n#...9008900008#\n#...5..55....5#\n#9006.965..906#\n#789085.5985..#\n#.76.5706576..#\n#.lk.5.90698..#\n#.5706.70065..#\n##q########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########{###\n###########&###\n###########&###\n###############\n###############\n\n\n\n###########\n###########\n##l;;;;;k##\n##5.....5##\n##5.....5##\n##5.....5##\n##5.....5##\n##5908906##\n##76.55..##\n##98.55..##\n##5706708##\n##q#####}##\n########}##\n########}##\n########}##\n########{##\n###########\n\n\n########### \n#.........#\n#...9008..#\n#...5..5..#\n#...7896..#\n#....55...#\n#.lk.55...#\n#.5706708.#\n##q#####5##\n########5##\n########5##\n########1##\n########.##\n###########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.lk......#\n#.5{!.....#\n##q#####.##\n########.##\n########.##\n########.##\n########.##\n###########\n\n###########\n#.........#\n#..9008...#\n#..7k.5...#\n#...g.5...#\n#...g.708.#\n#.90h...5.#\n#.5.....5.#\n##q#####}##\n########}##\n########}##\n########}##\n########{##\n###########\n))\n", [1, 3, 2, 1, 0, 2, 2, 3, 0, 3, 1, 0, 0, 0, 1, 0, 3, 3, 1, 1, 3, 2, 2, 1, 3, 3, 2, 1, 3, 1, 3, 2, 3, 2, 0, 3, 3, 2, 1, 0, 1, 3, 1, 1], "background pants: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,background:1,1,1,1,\n1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,background skin:2,2,2,2,2,2,2,2,2,2,0,background hair_core hair_down hair_right:3,background hair_core hair_right hair_up:4,1,1,1,1,1,3,background hair_core hair_down hair_up:5,\n4,1,2,2,2,2,2,2,2,2,2,2,2,2,0,background hair_core hair_left hair_right:6,background hair_core hair_down hair_left:7,5,5,5,5,5,background hair_core hair_left hair_up:8,1,6,2,2,2,2,2,2,2,2,2,2,2,2,2,0,background hair_core hair_down hair_left selected:9,background hair_core hair_down hair_up selected:10,\n10,10,10,10,10,background hair_core hair_right hair_up selected:11,1,6,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,1,1,1,1,6,3,8,2,2,2,2,2,2,2,2,2,\n2,2,2,2,0,1,1,1,1,1,1,1,6,7,5,background hair_root hair_up:12,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,3,5,5,4,1,6,1,1,2,2,\n2,2,2,2,2,2,2,2,2,2,2,0,1,1,6,1,1,6,1,7,5,4,2,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,7,5,4,\n6,1,1,1,6,1,2,2,2,2,2,2,2,2,2,2,1,2,0,1,1,1,1,6,6,1,1,1,6,2,background hair_core hair_down hair_right inside:13,background hair_core hair_right hair_up inside:14,13,14,13,14,13,14,13,14,2,\n1,0,3,5,5,5,8,7,5,5,5,8,2,background hair_core hair_left hair_right inside:15,15,15,15,15,15,15,15,15,15,2,1,0,6,1,1,1,1,1,3,5,5,5,background hair_core hair_down hair_up inside:16,background hair_core hair_left hair_up inside:17,background hair_core hair_down hair_left inside:18,17,18,\n17,18,17,18,17,18,14,2,0,7,5,5,5,5,5,8,1,1,1,background glans:19,19,19,19,19,19,19,19,19,19,19,15,2,0,0,0,0,0,0,0,0,0,\n1,19,19,19,19,19,19,19,19,19,19,19,19,background guide_right hair_core hair_end hair_left inside:20,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,\n0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,\n19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,1,19,\n19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,\n0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,\n2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,\n19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,background guide_right inside:21,2,0,0,0,0,0,0,0,0,\n0,1,1,19,19,19,19,19,19,19,19,19,19,19,21,2,0,0,0,0,0,0,0,0,0,0,1,21,21,21,21,21,21,21,21,21,21,21,21,2,0,\n0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,\n2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,\n0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,\n2,2,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,1,2,2,\n2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,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,0,0,0,0,0,0,0,\n", 7, "1627894024137.8354"] ], [ - "REALTIME DOG MOUNTAIN RESCUE", - ["(\nTO DO LIST:\n\nDONE 1 - groundedness\nDONE 2 - raise unobstructed active leg, inactive leg grounded\nDONE 3 - lower ungrounded active leg into space \nDONE 4 - raise active leg (inactive leg ungrounded) = lower inactive leg + lower head\nDONE 5 - lower grounded active leg pushing the body up\nDONEISH 6 - walk forward (active grounded, inactive ungrounded)\n7 - walk back (active ungrounded, inactive grounded)\nDONE 8 - limit leg length\n\ncan walk = 'walking leg' higher than 'non-walking' one\n\nthanks to youAtExample for testing :]\n)\n\n\ntitle REALTIME DOG MOUNTAIN RESCUE\nauthor increpare\nhomepage www.increpare.com\n\nrealtime_interval 10\n\nrun_rules_on_level_start\n\nverbose_logging\n\nbackground_color #4953b4\ntext_color #cbdbfc\n\n========\nOBJECTS\n========\n\nBackground\n#8c95e6\n\nTarget\n#5fcde4\n\nWall\n#cbdbfc\n\n\nface_tl q\n#daab05 #aa5a1d\n.0000\n00000\n01001\n01001\n01001\n\n\nface_tr w\n#daab05 #000000\n000..\n0000.\n0110.\n0110.\n0000.\n\nface_bl a\n#daab05 #aa5a1d\n00110\n00000\n00000\n00000\n00000\n\n\nface_br \n#daab05 #f7cea7 #000000 #ac3232 #8c95e6\n00112\n01111\n01134\n00034\n00004\n\nleg_inactive e\nred\n\nfoot_inactive d\nred\n0000.\n00000\n00000\n00000\n00000\n\nleg_active r \nlightgreen\n\nfoot_active \nlightgreen\n0000.\n00000\n00000\n00000\n00000\n\nleg_bg \n#aa5a1d \n\nfoot_bg \n#aa5a1d \n0000.\n00000\n00000\n00000\n00000\n\nleg_fg \n#daab05 \n\nfoot_fg \n#daab05 \n0000.\n00000\n00000\n00000\n00000\n\n\n\n\nfoot_bg_outline\ntransparent #aa5a1d\n01010\n00000\n00001\n00000\n01010\n\n\n\n\nnope\n#ff0000 transparent\n01110\n10101\n11011\n10101\n01110\n\nok\n#99e550\n.....\n..0..\n.0.0.\n..0..\n.....\n\nactive_grounded\nyellow\n0....\n.....\n.....\n.....\n.....\n\ninactive_grounded\npurple\n.0...\n.....\n.....\n.....\n.....\n\n\nactive_foot_raise_obstructed\n#00ff00\n..0..\n.....\n.....\n.....\n.....\n\nmoved_inactive\n#0000ff\n...0.\n.....\n.....\n.....\n.....\n\nfrontlegforward \n#ff00ff\n.....\n0....\n.....\n.....\n.....\n\nrescue_head @\n#d77bba #8c95e6\n.000.\n00000\n00000\n00000\n.0000\n\nstarter_body }\n#d77bba\n\nrescue_body {\n#d77bba\n\nrescue_head_partial\n#d77bba #306082\n.010.\n01010\n10101\n01010\n.0101\n\nrescue_body_partial\n#d77bba #306082\n01010\n10101\n01010\n10101\n01010\n\nrescue_head_frozen\n#306082\n.000.\n00000\n00000\n00000\n.000.\n\n\nrescue_body_frozen\n#306082\n\nsadwuffed\ntransparent\n\n=======\nLEGEND\n=======\n\n\nplayer = face_Br \n\nface = face_tl or face_tr or face_bl or face_br\nlimb = leg_inactive or leg_active or foot_inactive or foot_active\nactive = leg_active or foot_active\ninactive = leg_inactive or foot_inactive\n\nlimb_fg = leg_fg or foot_fg\nlimb_bg = leg_Bg or foot_bg\n\nlimb_cosmetic = limb_fg or limb_bg\n\nfoot_outline = foot_bg_outline\n\ndog_not_active = face or inactive\ndog_not_inactive = face or active\ndog = face or active or inactive\n\n. = Background\n# = Wall\nP = Player and frontlegforward\nO = Target\n\nt = foot_inactive and leg_active and foot_bg_outline\nf = foot_active \nmoveconfirmation = nope or ok\n\ntags = inactive_grounded or active_grounded or active_foot_raise_obstructed or moved_inactive\n\nrescue = rescue_head or rescue_body or rescue_head_frozen or rescue_body_frozen or rescue_head_partial or rescue_body_partial or starter_body\n\n\" = sadwuffed and Wall\n=======\nSOUNDS\n=======\nsfx0 26832704 (partial freeze)\nsfx1 14141502 (freeze)\nsfx2 87054902 (head partial freeze)\nsfx3 37766702 (head full freeze)\nstartlevel 47855706\nendlevel 85788701\nsfx4 80124702 (found body)\n================\nCOLLISIONLAYERS\n================\n\nactive_grounded\ninactive_grounded\nactive_foot_raise_obstructed\nmoved_inactive\nfrontlegforward\n\n\nBackground\nTarget\nWall\nface\ninactive\nactive\nmoveconfirmation\nlimb_bg\nlimb_fg\n\nfoot_outline\n\nrescue\n\nsadwuffed\n\n======\nRULES\n======\n\n\nrandom right [stationary player ] [ rescue_head_partial | no starter_body no rescue_body no rescue_body_partial] -> [ stationary player ] [ rescue_head_frozen | ] sfx3\n+right [stationary player ] [ rescue_head | no starter_body no rescue_body no rescue_body_partial] -> [ stationary player ] [ rescue_head_partial | ] sfx2\n+right [stationary player ] [ rescue_body_partial | no starter_body no rescue_body no rescue_body_partial ] -> [ stationary player ] [ rescue_body_frozen | ] sfx1\n+right [stationary player ] [ rescue_body | no starter_body no rescue_body no rescue_body_partial ] -> [ stationary player ] [ rescue_body_partial | ] sfx0\n+[stationary player ] [ starter_body ] -> [ stationary player ] [ rescue_body ]\n\n[moveconfirmation]->[]\n\n(pressing action when you're right above a foot is the same as pressing up)\ndown [ action player | foot_inactive ] -> [ up player | foot_inactive ]\n\n\n\n(2 - raise unobstructed active leg, inactive leg grounded)\ndown [ up player no active_foot_raise_obstructed inactive_grounded| active | active ] [ foot_active ] -> [ up player | | active ] [ up foot_active ]\n\n(note to self: moved the following line up here from somewhere near the end. hope it doesn't break things, but if something breaks its probably this)\n(propagate foot movements to leg)\n[up foot_active ] [ leg_active ] -> [ up foot_active ] [ up leg_active ]\n\n(3 - lower ungrounded active leg into space)\nrandom down [ down player no active_grounded ] [ foot_active ] [ leg_active | no leg_active ] -> [ down player no active_grounded ][ down foot_active ] [ leg_active | leg_active ] \n\n\n\n\n(4 - raise active leg (inactive leg ungrounded) = lower inactive leg + lower head )\n\t(tell every non-active thing to move down)\ndown [ up player no inactive_grounded | active ] [ dog_not_active no player ] -> [ up player no inactive_grounded | active ] [ down dog_not_active ]\n\t(remove topmost active leg segment)\ndown [ up player no inactive_grounded | active ] -> [ | player ]\n\n(5 - lower grounded active leg pushing the body up)\ndown [ down player active_grounded ] [ dog_not_active no player ] -> [ down player active_grounded ] [ up dog_not_active ]\ndown [ | face_tr | down player active_grounded ] -> [ face_tr | player active_grounded | leg_active ]\n\n\n(6 - walk forward (active grounded, inactive ungrounded))\n\t(inactive foot has to be not just ungrounded, but above the active one (to ensure it can move without friction))\n down [ right player active_grounded ] [ foot_inactive | no leg_active ] -> cancel\n \n \n\t(first all faces try to move right)\n\t(remove movement if activity is wrong)\nright [ right player no active_grounded ] -> cancel\n( right [ right player inactive_grounded ] -> cancel )\n\n\n(toggle frontlegforward)\n[right player no frontlegforward active_grounded ] -> [ right player right frontlegforward active_grounded]\n[right player stationary frontlegforward active_grounded ] -> [ right player active_grounded]\n\n\t(move face)\n \n[ right player active_grounded ] [ face ] -> [ right player active_grounded no inactive_grounded ] [ right face ] \nright [ right face | no face ] -> [ | face moved_inactive ]\n\n(move back leg forward (inactive->active) )\nright [player moved_inactive ] [ leg_inactive | | ] -> [player moved_inactive ] [ | | leg_active ]\nright [player moved_inactive ] [ foot_inactive | | ] -> [player moved_inactive ] [ | | foot_active ]\n\n(turn active leg inactive (active->inactive))\ndown [ face_bl moved_inactive | leg_active ] -> [ face_bl moved_inactive | leg_inactive ]\ndown [ leg_inactive | leg_active ] -> [ leg_inactive | leg_inactive ]\nright [leg_inactive | foot_active ] -> [ leg_inactive | foot_inactive ]\n\n(remove moved tags)\n[moved_inactive]->[]\n\n(7 - walk back (active ungrounded, inactive grounded))\n\t(inactive foot has to be not just ungrounded, but above the active one (to ensure it can move without friction))\n down [ left player inactive_grounded ] [ foot_inactive leg_active ] -> cancel\n \n\t(first all faces try to move left)\n\t(remove movement if activity is wrong)\n\t(right [ right player no active_grounded ] -> cancel)\n\t(right [ right player inactive_grounded ] -> cancel)\n\n\n(toggle frontlegforward)\n[left player no frontlegforward inactive_grounded ] -> [ left player left frontlegforward inactive_grounded]\n[left player stationary frontlegforward inactive_grounded ] -> [ left player inactive_grounded ]\n\n\t(move face)\n[ left player inactive_grounded ] [ face ] -> [ left player inactive_grounded no active_grounded] [ left face ] \nleft [ left face | no face ] -> [ | face moved_inactive ]\n\n\n\t(move front leg back (active->inactive) )\nright [player moved_inactive ] [ | | leg_active ] -> [player moved_inactive ] [ leg_inactive | | ]\nright [player moved_inactive ] [ | | foot_active ] -> [player moved_inactive ] [ foot_inactive | | ]\n\n\n\t(turn inactive leg active (inactive->active))\ndown [ face_br moved_inactive | ] -> [ face_br moved_inactive | leg_active no leg_inactive]\ndown [ leg_active | leg_inactive ] -> [ leg_active | leg_active ]\n+ down [ leg_active | no leg_active | leg_inactive ] -> [ leg_active | leg_active | leg_active ]\nright [leg_active | foot_inactive ] -> [ leg_active | foot_active ]\n\n(10 - action to shrink)\n\t(can't schrink into back foot)\n\tdown[ action player | foot_inactive]->cancel\n\nrandom down [ action player | leg_active | no leg_active ] [ foot_active | ] -> [ action player | | leg_active ] [ | foot_active ]\ndown [ action player | leg_active ] -> [action player | ]\ndown [ action player] [ face_bl | leg_inactive ] -> [ action player ] [ face_bl|]\n[action player ] [ face no player ] -> [ action player ] [down face]\n[action player]->[down player]\n\ndown [ down player | no dog ] -> [ | player ]\n(remove moved tags)\n[moved_inactive]->[]\n\n\n\n[moving player]->[player]\n\n\n(if you have a frontlegforward, move it to player position)\nlate [ frontlegforward ] [ player no frontlegforward ] -> [] [ player frontlegforward ] \n\n(leg-drawing)\nlate [limb_cosmetic]->[]\n\nlate [ player frontlegforward ] [ leg_active ] -> [ player frontlegforward ] [ leg_active leg_fg ]\nlate [ player frontlegforward ] [ foot_active ] -> [ player frontlegforward ] [ foot_active foot_fg ]\n\nlate [ player frontlegforward ] [ leg_inactive ] -> [ player frontlegforward ] [ leg_inactive leg_bg ]\nlate [ player frontlegforward ] [ foot_inactive ] -> [ player frontlegforward ] [ foot_inactive foot_bg ]\n\n\nlate [ player no frontlegforward ] [ leg_active ] -> [ player ] [ leg_active leg_bg ]\nlate [ player no frontlegforward ] [ foot_active ] -> [ player ] [ foot_active foot_bg ]\n\nlate [ player no frontlegforward ] [ leg_inactive ] -> [ player ] [ leg_inactive leg_fg ]\nlate [ player no frontlegforward ] [ foot_inactive ] -> [ player ] [ foot_inactive foot_fg ]\n\n\n(draw inactive foot outline)\nlate [ foot_bg_outline ] [ foot_bg no foot_bg_outline ] -> [] [ foot_bg foot_bg_outline ] \n\n\n(remove tags)\nlate [ tags ] -> []\n \n(1 - groundedness)\nlate down [ player ] [ active | wall ] -> [ player active_grounded ] [ active | wall ]\nlate down [ player ] [ inactive | wall ] -> [ player inactive_grounded ] [ inactive | wall ]\nlate up [ player ] [foot_active | wall] -> [ player active_foot_raise_obstructed ] [foot_active | wall]\n\n(limit leg length to 5)\n( down [ leg_active | leg_active |leg_active |leg_active | leg_active | leg_active ] -> cancel )\n( down [ leg_inactive | leg_inactive |leg_inactive | leg_active |leg_inactive | leg_inactive ] -> cancel )\n\n\n(leg can't be shorter than 1)\nright [ player | foot_active ] -> cancel\n\n\n(collision)\nlate [dog wall ] -> cancel\n\nlate [dog | rescue_head ] -> win\nlate [dog | rescue_head_partial ] -> win\n\nlate [ dog | rescue_head_frozen ] [sadwuffed ]->[ dog | rescue_head_frozen ] [ ] sfx4 message sad wuff :(\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\nmessage Rescue 1 of 3 Rescue the body before it freezes!\n\"#######################################\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#...qw.................................#\n#...ap.................................#\n#...er.................................#\n#...etf....##......##.....##....@{{}...#\n########################################\n########################################\n\nmessage You rescued me! You're my doggy hero!\n\nmessage Rescue 2 of 3 [In case you didn't realize, you can press X to shrink]\n\"############################################\n#..........#####............................#\n#............#..............................#\n#............#..............................#\n#............#..............................#\n#............#..............................#\n#............#..............................#\n#............#..............................#\n#...........##..............................#\n#...........##..............................#\n###.qw......................................#\n#...ap......................................#\n#...er.............................#..@{{}..#\n##..etf..##................#.....############\n##############...........#.###..#############\n#################...###.#####################\n#################...#########################\n#############################################\n\nmessage My saviour! Are you an angel?\n\n\n\nmessage Rescue 3 of 3\n\n\n\"###################################################\n#######.....#............###.......................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######...................#........................#\n#######...................#........................#\n#######...................#........................#\n#######...................#........................#\n#######...############....#........................#\n#######......#########....#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#########....####.........#........................#\n#............###..........#........................#\n#............###.....######........................#\n#............##.............................@{{{{}.#\n#.qw.........##...........................##########\n#.ap.....######..........................###########\n#.er....########..............######################\n#.etf..################...##########################\n####################################################\n####################################################\n\nmessage Amazing! You have a great future ahead of you, hero rescue dog!\n\n(\n#...........................................\n#...........................................\n#...........................................\n#...........................................\n#...........##..............................\n#...........##..............................\n#...qw......................................\n#...ap......................................\n#...er.............................#..@{{{..\n##..etf..##................#.....###########\n##############...........#.###..############\n#################...###.####################\n#################...########################\n############################################\n############################################\n\n#...........................................\n#...........................................\n#...........................................\n#...........................................\n#...........##..............................\n##..........##..............................\n####qw......................................\n#...ap......................................\n#...er.............................#..@{{...\n##..etf..##................#.....###########\n##############...........#.###..############\n#################...###.####################\n#################...########################\n############################################\n############################################\n\n\n.......................\n.......................\n.......................\n.......................\n.......................\n............##.........\n....qw......##.........\n....ap.................\n....er.................\n....er.................\n##..etf..##............\n##....########.........\n#################...###\n#################...###\n#################...###\n#######################\n)\n",[0,0,3,2,2,2,3,3,2,2,2,3,2,2,0,0,1,3,4,4,2,2,2,4,4,3,3,2,2,2,"tick",3,2,2,4,4,2,2,3,3,4,2,3,3,2,2,4,2,3,3,3,2,4,2,3,2,2,2,2,2,2,4,2,2,4,2,2,2,4,4,4,4,4,"tick",4,4,4,3,2,2,2,2,2,2,2,2,1,0,2,2,2,3,1,1,2,2,2,0,0,0,0,0,0,4,4,4,4,4,0,0,0,2,2,2,1,0,0,0,1,1,0,0,2,2,"tick",3,3,1,2,1,1,3,3,"undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo",2,2,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,3,"tick",2,2,2,2,1,2,2,2,2,3,2,2,2,1,0,0,0,0,0,0,0,1,2,2,0,0,0,0],"background sadwuffed wall:0,background wall:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,background:2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,1,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background face_tl:3,background face_bl:4,background leg_bg leg_inactive:5,5,5,1,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,background face_tr:6,background face_br frontlegforward inactive_grounded:7,background leg_active leg_fg:8,8,background foot_bg foot_bg_outline foot_inactive leg_active leg_fg:9,8,8,8,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,\n2,2,background foot_active foot_fg:10,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,\n2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,2,2,2,\n2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,\n2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,\n1,1,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,\n1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background rescue_head:11,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background rescue_body:12,1,1,\n1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,12,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,12,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background rescue_body_partial:13,1,1,1,1,\n1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background rescue_body_frozen:14,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n",7,"1627894053043.232"] + "REALTIME DOG MOUNTAIN RESCUE", + ["(\nTO DO LIST:\n\nDONE 1 - groundedness\nDONE 2 - raise unobstructed active leg, inactive leg grounded\nDONE 3 - lower ungrounded active leg into space \nDONE 4 - raise active leg (inactive leg ungrounded) = lower inactive leg + lower head\nDONE 5 - lower grounded active leg pushing the body up\nDONEISH 6 - walk forward (active grounded, inactive ungrounded)\n7 - walk back (active ungrounded, inactive grounded)\nDONE 8 - limit leg length\n\ncan walk = 'walking leg' higher than 'non-walking' one\n\nthanks to youAtExample for testing :]\n)\n\n\ntitle REALTIME DOG MOUNTAIN RESCUE\nauthor increpare\nhomepage www.increpare.com\n\nrealtime_interval 10\n\nrun_rules_on_level_start\n\nverbose_logging\n\nbackground_color #4953b4\ntext_color #cbdbfc\n\n========\nOBJECTS\n========\n\nBackground\n#8c95e6\n\nTarget\n#5fcde4\n\nWall\n#cbdbfc\n\n\nface_tl q\n#daab05 #aa5a1d\n.0000\n00000\n01001\n01001\n01001\n\n\nface_tr w\n#daab05 #000000\n000..\n0000.\n0110.\n0110.\n0000.\n\nface_bl a\n#daab05 #aa5a1d\n00110\n00000\n00000\n00000\n00000\n\n\nface_br \n#daab05 #f7cea7 #000000 #ac3232 #8c95e6\n00112\n01111\n01134\n00034\n00004\n\nleg_inactive e\nred\n\nfoot_inactive d\nred\n0000.\n00000\n00000\n00000\n00000\n\nleg_active r \nlightgreen\n\nfoot_active \nlightgreen\n0000.\n00000\n00000\n00000\n00000\n\nleg_bg \n#aa5a1d \n\nfoot_bg \n#aa5a1d \n0000.\n00000\n00000\n00000\n00000\n\nleg_fg \n#daab05 \n\nfoot_fg \n#daab05 \n0000.\n00000\n00000\n00000\n00000\n\n\n\n\nfoot_bg_outline\ntransparent #aa5a1d\n01010\n00000\n00001\n00000\n01010\n\n\n\n\nnope\n#ff0000 transparent\n01110\n10101\n11011\n10101\n01110\n\nok\n#99e550\n.....\n..0..\n.0.0.\n..0..\n.....\n\nactive_grounded\nyellow\n0....\n.....\n.....\n.....\n.....\n\ninactive_grounded\npurple\n.0...\n.....\n.....\n.....\n.....\n\n\nactive_foot_raise_obstructed\n#00ff00\n..0..\n.....\n.....\n.....\n.....\n\nmoved_inactive\n#0000ff\n...0.\n.....\n.....\n.....\n.....\n\nfrontlegforward \n#ff00ff\n.....\n0....\n.....\n.....\n.....\n\nrescue_head @\n#d77bba #8c95e6\n.000.\n00000\n00000\n00000\n.0000\n\nstarter_body }\n#d77bba\n\nrescue_body {\n#d77bba\n\nrescue_head_partial\n#d77bba #306082\n.010.\n01010\n10101\n01010\n.0101\n\nrescue_body_partial\n#d77bba #306082\n01010\n10101\n01010\n10101\n01010\n\nrescue_head_frozen\n#306082\n.000.\n00000\n00000\n00000\n.000.\n\n\nrescue_body_frozen\n#306082\n\nsadwuffed\ntransparent\n\n=======\nLEGEND\n=======\n\n\nplayer = face_Br \n\nface = face_tl or face_tr or face_bl or face_br\nlimb = leg_inactive or leg_active or foot_inactive or foot_active\nactive = leg_active or foot_active\ninactive = leg_inactive or foot_inactive\n\nlimb_fg = leg_fg or foot_fg\nlimb_bg = leg_Bg or foot_bg\n\nlimb_cosmetic = limb_fg or limb_bg\n\nfoot_outline = foot_bg_outline\n\ndog_not_active = face or inactive\ndog_not_inactive = face or active\ndog = face or active or inactive\n\n. = Background\n# = Wall\nP = Player and frontlegforward\nO = Target\n\nt = foot_inactive and leg_active and foot_bg_outline\nf = foot_active \nmoveconfirmation = nope or ok\n\ntags = inactive_grounded or active_grounded or active_foot_raise_obstructed or moved_inactive\n\nrescue = rescue_head or rescue_body or rescue_head_frozen or rescue_body_frozen or rescue_head_partial or rescue_body_partial or starter_body\n\n\" = sadwuffed and Wall\n=======\nSOUNDS\n=======\nsfx0 26832704 (partial freeze)\nsfx1 14141502 (freeze)\nsfx2 87054902 (head partial freeze)\nsfx3 37766702 (head full freeze)\nstartlevel 47855706\nendlevel 85788701\nsfx4 80124702 (found body)\n================\nCOLLISIONLAYERS\n================\n\nactive_grounded\ninactive_grounded\nactive_foot_raise_obstructed\nmoved_inactive\nfrontlegforward\n\n\nBackground\nTarget\nWall\nface\ninactive\nactive\nmoveconfirmation\nlimb_bg\nlimb_fg\n\nfoot_outline\n\nrescue\n\nsadwuffed\n\n======\nRULES\n======\n\n\nrandom right [stationary player ] [ rescue_head_partial | no starter_body no rescue_body no rescue_body_partial] -> [ stationary player ] [ rescue_head_frozen | ] sfx3\n+right [stationary player ] [ rescue_head | no starter_body no rescue_body no rescue_body_partial] -> [ stationary player ] [ rescue_head_partial | ] sfx2\n+right [stationary player ] [ rescue_body_partial | no starter_body no rescue_body no rescue_body_partial ] -> [ stationary player ] [ rescue_body_frozen | ] sfx1\n+right [stationary player ] [ rescue_body | no starter_body no rescue_body no rescue_body_partial ] -> [ stationary player ] [ rescue_body_partial | ] sfx0\n+[stationary player ] [ starter_body ] -> [ stationary player ] [ rescue_body ]\n\n[moveconfirmation]->[]\n\n(pressing action when you're right above a foot is the same as pressing up)\ndown [ action player | foot_inactive ] -> [ up player | foot_inactive ]\n\n\n\n(2 - raise unobstructed active leg, inactive leg grounded)\ndown [ up player no active_foot_raise_obstructed inactive_grounded| active | active ] [ foot_active ] -> [ up player | | active ] [ up foot_active ]\n\n(note to self: moved the following line up here from somewhere near the end. hope it doesn't break things, but if something breaks its probably this)\n(propagate foot movements to leg)\n[up foot_active ] [ leg_active ] -> [ up foot_active ] [ up leg_active ]\n\n(3 - lower ungrounded active leg into space)\nrandom down [ down player no active_grounded ] [ foot_active ] [ leg_active | no leg_active ] -> [ down player no active_grounded ][ down foot_active ] [ leg_active | leg_active ] \n\n\n\n\n(4 - raise active leg (inactive leg ungrounded) = lower inactive leg + lower head )\n\t(tell every non-active thing to move down)\ndown [ up player no inactive_grounded | active ] [ dog_not_active no player ] -> [ up player no inactive_grounded | active ] [ down dog_not_active ]\n\t(remove topmost active leg segment)\ndown [ up player no inactive_grounded | active ] -> [ | player ]\n\n(5 - lower grounded active leg pushing the body up)\ndown [ down player active_grounded ] [ dog_not_active no player ] -> [ down player active_grounded ] [ up dog_not_active ]\ndown [ | face_tr | down player active_grounded ] -> [ face_tr | player active_grounded | leg_active ]\n\n\n(6 - walk forward (active grounded, inactive ungrounded))\n\t(inactive foot has to be not just ungrounded, but above the active one (to ensure it can move without friction))\n down [ right player active_grounded ] [ foot_inactive | no leg_active ] -> cancel\n \n \n\t(first all faces try to move right)\n\t(remove movement if activity is wrong)\nright [ right player no active_grounded ] -> cancel\n( right [ right player inactive_grounded ] -> cancel )\n\n\n(toggle frontlegforward)\n[right player no frontlegforward active_grounded ] -> [ right player right frontlegforward active_grounded]\n[right player stationary frontlegforward active_grounded ] -> [ right player active_grounded]\n\n\t(move face)\n \n[ right player active_grounded ] [ face ] -> [ right player active_grounded no inactive_grounded ] [ right face ] \nright [ right face | no face ] -> [ | face moved_inactive ]\n\n(move back leg forward (inactive->active) )\nright [player moved_inactive ] [ leg_inactive | | ] -> [player moved_inactive ] [ | | leg_active ]\nright [player moved_inactive ] [ foot_inactive | | ] -> [player moved_inactive ] [ | | foot_active ]\n\n(turn active leg inactive (active->inactive))\ndown [ face_bl moved_inactive | leg_active ] -> [ face_bl moved_inactive | leg_inactive ]\ndown [ leg_inactive | leg_active ] -> [ leg_inactive | leg_inactive ]\nright [leg_inactive | foot_active ] -> [ leg_inactive | foot_inactive ]\n\n(remove moved tags)\n[moved_inactive]->[]\n\n(7 - walk back (active ungrounded, inactive grounded))\n\t(inactive foot has to be not just ungrounded, but above the active one (to ensure it can move without friction))\n down [ left player inactive_grounded ] [ foot_inactive leg_active ] -> cancel\n \n\t(first all faces try to move left)\n\t(remove movement if activity is wrong)\n\t(right [ right player no active_grounded ] -> cancel)\n\t(right [ right player inactive_grounded ] -> cancel)\n\n\n(toggle frontlegforward)\n[left player no frontlegforward inactive_grounded ] -> [ left player left frontlegforward inactive_grounded]\n[left player stationary frontlegforward inactive_grounded ] -> [ left player inactive_grounded ]\n\n\t(move face)\n[ left player inactive_grounded ] [ face ] -> [ left player inactive_grounded no active_grounded] [ left face ] \nleft [ left face | no face ] -> [ | face moved_inactive ]\n\n\n\t(move front leg back (active->inactive) )\nright [player moved_inactive ] [ | | leg_active ] -> [player moved_inactive ] [ leg_inactive | | ]\nright [player moved_inactive ] [ | | foot_active ] -> [player moved_inactive ] [ foot_inactive | | ]\n\n\n\t(turn inactive leg active (inactive->active))\ndown [ face_br moved_inactive | ] -> [ face_br moved_inactive | leg_active no leg_inactive]\ndown [ leg_active | leg_inactive ] -> [ leg_active | leg_active ]\n+ down [ leg_active | no leg_active | leg_inactive ] -> [ leg_active | leg_active | leg_active ]\nright [leg_active | foot_inactive ] -> [ leg_active | foot_active ]\n\n(10 - action to shrink)\n\t(can't schrink into back foot)\n\tdown[ action player | foot_inactive]->cancel\n\nrandom down [ action player | leg_active | no leg_active ] [ foot_active | ] -> [ action player | | leg_active ] [ | foot_active ]\ndown [ action player | leg_active ] -> [action player | ]\ndown [ action player] [ face_bl | leg_inactive ] -> [ action player ] [ face_bl|]\n[action player ] [ face no player ] -> [ action player ] [down face]\n[action player]->[down player]\n\ndown [ down player | no dog ] -> [ | player ]\n(remove moved tags)\n[moved_inactive]->[]\n\n\n\n[moving player]->[player]\n\n\n(if you have a frontlegforward, move it to player position)\nlate [ frontlegforward ] [ player no frontlegforward ] -> [] [ player frontlegforward ] \n\n(leg-drawing)\nlate [limb_cosmetic]->[]\n\nlate [ player frontlegforward ] [ leg_active ] -> [ player frontlegforward ] [ leg_active leg_fg ]\nlate [ player frontlegforward ] [ foot_active ] -> [ player frontlegforward ] [ foot_active foot_fg ]\n\nlate [ player frontlegforward ] [ leg_inactive ] -> [ player frontlegforward ] [ leg_inactive leg_bg ]\nlate [ player frontlegforward ] [ foot_inactive ] -> [ player frontlegforward ] [ foot_inactive foot_bg ]\n\n\nlate [ player no frontlegforward ] [ leg_active ] -> [ player ] [ leg_active leg_bg ]\nlate [ player no frontlegforward ] [ foot_active ] -> [ player ] [ foot_active foot_bg ]\n\nlate [ player no frontlegforward ] [ leg_inactive ] -> [ player ] [ leg_inactive leg_fg ]\nlate [ player no frontlegforward ] [ foot_inactive ] -> [ player ] [ foot_inactive foot_fg ]\n\n\n(draw inactive foot outline)\nlate [ foot_bg_outline ] [ foot_bg no foot_bg_outline ] -> [] [ foot_bg foot_bg_outline ] \n\n\n(remove tags)\nlate [ tags ] -> []\n \n(1 - groundedness)\nlate down [ player ] [ active | wall ] -> [ player active_grounded ] [ active | wall ]\nlate down [ player ] [ inactive | wall ] -> [ player inactive_grounded ] [ inactive | wall ]\nlate up [ player ] [foot_active | wall] -> [ player active_foot_raise_obstructed ] [foot_active | wall]\n\n(limit leg length to 5)\n( down [ leg_active | leg_active |leg_active |leg_active | leg_active | leg_active ] -> cancel )\n( down [ leg_inactive | leg_inactive |leg_inactive | leg_active |leg_inactive | leg_inactive ] -> cancel )\n\n\n(leg can't be shorter than 1)\nright [ player | foot_active ] -> cancel\n\n\n(collision)\nlate [dog wall ] -> cancel\n\nlate [dog | rescue_head ] -> win\nlate [dog | rescue_head_partial ] -> win\n\nlate [ dog | rescue_head_frozen ] [sadwuffed ]->[ dog | rescue_head_frozen ] [ ] sfx4 message sad wuff :(\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\nmessage Rescue 1 of 3 Rescue the body before it freezes!\n\"#######################################\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#...qw.................................#\n#...ap.................................#\n#...er.................................#\n#...etf....##......##.....##....@{{}...#\n########################################\n########################################\n\nmessage You rescued me! You're my doggy hero!\n\nmessage Rescue 2 of 3 [In case you didn't realize, you can press X to shrink]\n\"############################################\n#..........#####............................#\n#............#..............................#\n#............#..............................#\n#............#..............................#\n#............#..............................#\n#............#..............................#\n#............#..............................#\n#...........##..............................#\n#...........##..............................#\n###.qw......................................#\n#...ap......................................#\n#...er.............................#..@{{}..#\n##..etf..##................#.....############\n##############...........#.###..#############\n#################...###.#####################\n#################...#########################\n#############################################\n\nmessage My saviour! Are you an angel?\n\n\n\nmessage Rescue 3 of 3\n\n\n\"###################################################\n#######.....#............###.......................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######...................#........................#\n#######...................#........................#\n#######...................#........................#\n#######...................#........................#\n#######...############....#........................#\n#######......#########....#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#########....####.........#........................#\n#............###..........#........................#\n#............###.....######........................#\n#............##.............................@{{{{}.#\n#.qw.........##...........................##########\n#.ap.....######..........................###########\n#.er....########..............######################\n#.etf..################...##########################\n####################################################\n####################################################\n\nmessage Amazing! You have a great future ahead of you, hero rescue dog!\n\n(\n#...........................................\n#...........................................\n#...........................................\n#...........................................\n#...........##..............................\n#...........##..............................\n#...qw......................................\n#...ap......................................\n#...er.............................#..@{{{..\n##..etf..##................#.....###########\n##############...........#.###..############\n#################...###.####################\n#################...########################\n############################################\n############################################\n\n#...........................................\n#...........................................\n#...........................................\n#...........................................\n#...........##..............................\n##..........##..............................\n####qw......................................\n#...ap......................................\n#...er.............................#..@{{...\n##..etf..##................#.....###########\n##############...........#.###..############\n#################...###.####################\n#################...########################\n############################################\n############################################\n\n\n.......................\n.......................\n.......................\n.......................\n.......................\n............##.........\n....qw......##.........\n....ap.................\n....er.................\n....er.................\n##..etf..##............\n##....########.........\n#################...###\n#################...###\n#################...###\n#######################\n)\n", [0, 0, 3, 2, 2, 2, 3, 3, 2, 2, 2, 3, 2, 2, 0, 0, 1, 3, 4, 4, 2, 2, 2, 4, 4, 3, 3, 2, 2, 2, "tick", 3, 2, 2, 4, 4, 2, 2, 3, 3, 4, 2, 3, 3, 2, 2, 4, 2, 3, 3, 3, 2, 4, 2, 3, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 4, 4, 4, 4, 4, "tick", 4, 4, 4, 3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 2, 2, 2, 3, 1, 1, 2, 2, 2, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 0, 0, 0, 2, 2, 2, 1, 0, 0, 0, 1, 1, 0, 0, 2, 2, "tick", 3, 3, 1, 2, 1, 1, 3, 3, "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 3, "tick", 2, 2, 2, 2, 1, 2, 2, 2, 2, 3, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 0, 0, 0, 0], "background sadwuffed wall:0,background wall:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,background:2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,1,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background face_tl:3,background face_bl:4,background leg_bg leg_inactive:5,5,5,1,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,background face_tr:6,background face_br frontlegforward inactive_grounded:7,background leg_active leg_fg:8,8,background foot_bg foot_bg_outline foot_inactive leg_active leg_fg:9,8,8,8,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,\n2,2,background foot_active foot_fg:10,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,\n2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,2,2,2,\n2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,\n2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,\n1,1,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,\n1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background rescue_head:11,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background rescue_body:12,1,1,\n1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,12,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,12,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background rescue_body_partial:13,1,1,1,1,\n1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background rescue_body_frozen:14,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n", 7, "1627894053043.232"] ], [ - "You can't make this up!", - ["title You can't make this up!\nauthor increpare\nhomepage www.increpare.com\n\n\nbackground_color #b7885b\n\ntext_color black\n\n=======\nOBJECTS\n=======\n\nBackground\n#eec39a\n\nPlayer\n#99e550\n\ntopmarker\nred\n.....\n.....\n.....\n.....\n.....\n\nBox1\n#df7126\n\nBox2\n#5fcde4\n\nBox3\n#d77bba\n\nBox4\n#fbf236\n\nWall\n#b7885b\n\n======\nLEGEND\n======\n\n. = Background\n@ = Player\n1 = Box1\n2 = Box2\n3 = Box3\n4 = Box4\n# = Wall\nq = topmarker and 1\nw = topmarker and 2\ne = topmarker and 3\nr = topmarker and 4\n\nBox = Box1 or Box2 or Box3 or Box4\n\n======\nSOUNDS\n======\n\n===============\nCOLLISIONLAYERS\n===============\n\nBackground\nPlayer, Box, Wall\ntopmarker\n\n=====\nRULES\n=====\n\n[ > Player | Box ] -> [ > Player | > Box ]\n\n\n\n[ moving Box1 | Box1 ] -> [ moving Box1 | moving Box1 ]\n+ [ moving Box2 | Box2 ] -> [ moving Box2 | moving Box2 ]\n+ [ moving Box3 | Box3 ] -> [ moving Box3 | moving Box3 ]\n+ [ moving Box4 | Box4 ] -> [ moving Box4 | moving Box4 ]\n+ [ > Box | Box ] -> [ > Box | > Box ]\n\n\n\n[ > Box | Wall ] -> cancel\n\n[ moving box topmarker] ->[moving box moving topmarker]\n\nlate right [ topmarker box1 | | topmarker box2 | | topmarker box3 | player | topmarker box4 ] -> win\nlate right [ topmarker box1 | | topmarker box2 || | topmarker box3 | player | topmarker box4 ] -> win\n\n=============\nWINCONDITIONS\n=============\n\n======\nLEVELS\n======\n\nmessage Level 1 of 1 : You can't make this up!\n\n##################\n#................#\n#................#\n#................#\n#......w.........#\n#....eq2r........#\n#....3124...@....#\n#....3144........#\n#....3111........#\n#................#\n#................#\n#................#\n#................#\n##################\n\n\nmessage NVM I guess you can. \n",[2,1,1,1,1,0,0,0,1,2,2,1,2,2,2,3,3],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,background box3 topmarker:2,background box3:3,3,3,1,1,1,1,0,0,1,\n1,1,background box2 topmarker:4,background box2:5,5,1,background box1 topmarker:6,background box1:7,7,7,1,0,0,1,1,1,1,1,\n1,1,1,1,1,7,1,0,0,1,1,1,1,1,1,1,1,1,\n1,7,1,0,0,1,1,1,1,1,1,1,1,background player:8,background box4:9,1,1,0,\n0,1,1,1,1,1,1,1,background box4 topmarker:10,9,9,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",1,"1627894109796.508"] + "You can't make this up!", + ["title You can't make this up!\nauthor increpare\nhomepage www.increpare.com\n\n\nbackground_color #b7885b\n\ntext_color black\n\n=======\nOBJECTS\n=======\n\nBackground\n#eec39a\n\nPlayer\n#99e550\n\ntopmarker\nred\n.....\n.....\n.....\n.....\n.....\n\nBox1\n#df7126\n\nBox2\n#5fcde4\n\nBox3\n#d77bba\n\nBox4\n#fbf236\n\nWall\n#b7885b\n\n======\nLEGEND\n======\n\n. = Background\n@ = Player\n1 = Box1\n2 = Box2\n3 = Box3\n4 = Box4\n# = Wall\nq = topmarker and 1\nw = topmarker and 2\ne = topmarker and 3\nr = topmarker and 4\n\nBox = Box1 or Box2 or Box3 or Box4\n\n======\nSOUNDS\n======\n\n===============\nCOLLISIONLAYERS\n===============\n\nBackground\nPlayer, Box, Wall\ntopmarker\n\n=====\nRULES\n=====\n\n[ > Player | Box ] -> [ > Player | > Box ]\n\n\n\n[ moving Box1 | Box1 ] -> [ moving Box1 | moving Box1 ]\n+ [ moving Box2 | Box2 ] -> [ moving Box2 | moving Box2 ]\n+ [ moving Box3 | Box3 ] -> [ moving Box3 | moving Box3 ]\n+ [ moving Box4 | Box4 ] -> [ moving Box4 | moving Box4 ]\n+ [ > Box | Box ] -> [ > Box | > Box ]\n\n\n\n[ > Box | Wall ] -> cancel\n\n[ moving box topmarker] ->[moving box moving topmarker]\n\nlate right [ topmarker box1 | | topmarker box2 | | topmarker box3 | player | topmarker box4 ] -> win\nlate right [ topmarker box1 | | topmarker box2 || | topmarker box3 | player | topmarker box4 ] -> win\n\n=============\nWINCONDITIONS\n=============\n\n======\nLEVELS\n======\n\nmessage Level 1 of 1 : You can't make this up!\n\n##################\n#................#\n#................#\n#................#\n#......w.........#\n#....eq2r........#\n#....3124...@....#\n#....3144........#\n#....3111........#\n#................#\n#................#\n#................#\n#................#\n##################\n\n\nmessage NVM I guess you can. \n", [2, 1, 1, 1, 1, 0, 0, 0, 1, 2, 2, 1, 2, 2, 2, 3, 3], "background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,background box3 topmarker:2,background box3:3,3,3,1,1,1,1,0,0,1,\n1,1,background box2 topmarker:4,background box2:5,5,1,background box1 topmarker:6,background box1:7,7,7,1,0,0,1,1,1,1,1,\n1,1,1,1,1,7,1,0,0,1,1,1,1,1,1,1,1,1,\n1,7,1,0,0,1,1,1,1,1,1,1,1,background player:8,background box4:9,1,1,0,\n0,1,1,1,1,1,1,1,background box4 topmarker:10,9,9,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 1, "1627894109796.508"] ], [ - "Explodoban", - ["title Explodoban\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #063421\n\ntext_color #c978e7\n\n========\nOBJECTS\n========\n\nBackground\n#145339\n\n\nTarget\n#063421\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\n#323c39 #807e7c #a9a8a7 #595652 #232d2a\n01112\n03331\n03331\n03331\n44444\n\n\n\nPlayer\n#1f1f1f #000000 #d6cd1c #414141 #8a1b1b\n.000.\n12320\n11000\n.111.\n44.44\n\n\nCrate\n#984fb3 #ae60cb #c978e7 #76428a #5f2d72\n01112\n3...1\n3...1\n3...1\n44440\n\nexplode_up\n#fbf236 #ac3232\n.....\n..0..\n.000.\n01110\n00110\n\nexplode_down\n#fbf236 #ac3232 \n01100\n01110\n.000.\n..0..\n.....\n\nexplode_left\n#fbf236 #ac3232\n...00\n..011\n.0011\n..010\n...00\n\nexplode_right\n#fbf236 #ac3232\n00...\n010..\n1100.\n110..\n00...\n\ndeadzone ,\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\n=======\nLEGEND\n=======\n\nexplode = explode_up or explode_down or explode_left or explode_right\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 33465106\nendlevel 83744503\nstartgame 92244503\nplayer action 18708701\nplayer move 254507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ndeadzone\nTarget\nPlayer, Wall, Crate\nexplode\n======\nRULES\n======\n\n[ explode]->[no explode]\n[ action Player | Crate ] -> [ action Player | > Crate ]\n\nup [ action Player | no wall ] -> [ action Player | explode_up ]\ndown [ action Player | no wall ] -> [ action Player | explode_down ]\nleft [ action Player | no wall ] -> [ action Player | explode_left ]\nright [ action Player | no wall ] -> [ action Player | explode_right ]\n\nlate [ explode Crate ] -> [crate]\nlate [explode] -> again\n\nlate [crate deadzone]->cancel\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 7 [you can press x to explode]\n(kinda cute)\n########\n#.o.@..#\n#.o*.*.#\n#....p.#\n#####..#\n########\n\nmessage Level 2 of 7 \n(kinda bad but i kinda like it)\n########\n#o@.o..#\n#.*..*.#\n#p.#...#\n########\n\nmessage Level 3 of 7 \n(pretty nice to figure out, and not hard)\n########\n#...oo.#\n#o**..p#\n#..*...#\n#####..#\n########\n\nmessage Level 4 of 7 \n#########\n#.......#\n#...@...#\n#.o.....#\n#.*..@..#\n#.p@....#\n#.......#\n#########\n\nmessage Level 5 of 7 \n(tricky but fine)\n########\n#...@.p#\n#.o*o..#\n#.*....#\n#####..#\n########\n\n\n\nmessage Level 6 of 7\n(middle-hard!)\n#########\n###..####\n#.....*p#\n#.#o*.o.#\n#....#..#\n#########\n\nmessage Level 7 of 7 \n(kinda tricky but also good!)\n########\n##..p..#\n##.*@*.#\n#o....##\n##....##\n###.#o##\n########\n\nmessage Congratulations!\n\n\n(\n\n(neither good nor trivial:)\n########\n#,.@..,#\n#,...@,#\n#,@...,#\n#,p*o.,#\n#,@...,#\n#,...@,#\n#,.@..,#\n########\n\n(meh)\n##########\n###......#\n#.....@..#\n#...@..*.#\n#.o....o.#\n#.*..@...#\n#.p@.....#\n#......###\n##########\n\n\n\n########\n#......#\n#...@..#\n#.o....#\n#.*..@.#\n#.p@...#\n#......#\n########\n\n\n####.####\n####@####\n##.....##\n##.....##\n##.....##\n.@.*o.*o.\n##.....##.\n##.....##\n##.p...##\n####@####\n####.####\n\n####.####\n####@####\n##.....##\n##.....##\n.@.*o*.o.\n##.....##\n##.p...##\n####@####\n####.####\n\n####.####\n####o####\n##.....##\n##..*..##\n.o.*@*.o.\n##..*..##\n##p....##\n####o####\n####.####\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*O.#\n##.*P*.#\n#..O*O.#\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(\n==========\nTRANSFORM\n==========\n[player]->[]\n[target]->[]\n[crate]->[]\n\nchoose 1 [ no wall] ->[ player]\nchoose 2 [ no wall no player]->[target]\nchoose 2 [no wall no player] ->[crate]\n\n\n))\n",[1,1,2,1,1,0,4,2,4,1,2,1,4],"background wall:0,0,0,0,0,0,0,0,background:1,\n1,1,0,0,0,1,0,1,0,\n0,1,background crate:2,background target:3,background player:4,0,0,1,1,\n1,1,0,0,0,1,1,0,0,\n0,0,1,3,1,0,0,0,2,\n1,1,0,0,0,0,0,0,0,\n",11,"1627894122279.9321"] + "Explodoban", + ["title Explodoban\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #063421\n\ntext_color #c978e7\n\n========\nOBJECTS\n========\n\nBackground\n#145339\n\n\nTarget\n#063421\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\n#323c39 #807e7c #a9a8a7 #595652 #232d2a\n01112\n03331\n03331\n03331\n44444\n\n\n\nPlayer\n#1f1f1f #000000 #d6cd1c #414141 #8a1b1b\n.000.\n12320\n11000\n.111.\n44.44\n\n\nCrate\n#984fb3 #ae60cb #c978e7 #76428a #5f2d72\n01112\n3...1\n3...1\n3...1\n44440\n\nexplode_up\n#fbf236 #ac3232\n.....\n..0..\n.000.\n01110\n00110\n\nexplode_down\n#fbf236 #ac3232 \n01100\n01110\n.000.\n..0..\n.....\n\nexplode_left\n#fbf236 #ac3232\n...00\n..011\n.0011\n..010\n...00\n\nexplode_right\n#fbf236 #ac3232\n00...\n010..\n1100.\n110..\n00...\n\ndeadzone ,\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\n=======\nLEGEND\n=======\n\nexplode = explode_up or explode_down or explode_left or explode_right\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 33465106\nendlevel 83744503\nstartgame 92244503\nplayer action 18708701\nplayer move 254507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ndeadzone\nTarget\nPlayer, Wall, Crate\nexplode\n======\nRULES\n======\n\n[ explode]->[no explode]\n[ action Player | Crate ] -> [ action Player | > Crate ]\n\nup [ action Player | no wall ] -> [ action Player | explode_up ]\ndown [ action Player | no wall ] -> [ action Player | explode_down ]\nleft [ action Player | no wall ] -> [ action Player | explode_left ]\nright [ action Player | no wall ] -> [ action Player | explode_right ]\n\nlate [ explode Crate ] -> [crate]\nlate [explode] -> again\n\nlate [crate deadzone]->cancel\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 7 [you can press x to explode]\n(kinda cute)\n########\n#.o.@..#\n#.o*.*.#\n#....p.#\n#####..#\n########\n\nmessage Level 2 of 7 \n(kinda bad but i kinda like it)\n########\n#o@.o..#\n#.*..*.#\n#p.#...#\n########\n\nmessage Level 3 of 7 \n(pretty nice to figure out, and not hard)\n########\n#...oo.#\n#o**..p#\n#..*...#\n#####..#\n########\n\nmessage Level 4 of 7 \n#########\n#.......#\n#...@...#\n#.o.....#\n#.*..@..#\n#.p@....#\n#.......#\n#########\n\nmessage Level 5 of 7 \n(tricky but fine)\n########\n#...@.p#\n#.o*o..#\n#.*....#\n#####..#\n########\n\n\n\nmessage Level 6 of 7\n(middle-hard!)\n#########\n###..####\n#.....*p#\n#.#o*.o.#\n#....#..#\n#########\n\nmessage Level 7 of 7 \n(kinda tricky but also good!)\n########\n##..p..#\n##.*@*.#\n#o....##\n##....##\n###.#o##\n########\n\nmessage Congratulations!\n\n\n(\n\n(neither good nor trivial:)\n########\n#,.@..,#\n#,...@,#\n#,@...,#\n#,p*o.,#\n#,@...,#\n#,...@,#\n#,.@..,#\n########\n\n(meh)\n##########\n###......#\n#.....@..#\n#...@..*.#\n#.o....o.#\n#.*..@...#\n#.p@.....#\n#......###\n##########\n\n\n\n########\n#......#\n#...@..#\n#.o....#\n#.*..@.#\n#.p@...#\n#......#\n########\n\n\n####.####\n####@####\n##.....##\n##.....##\n##.....##\n.@.*o.*o.\n##.....##.\n##.....##\n##.p...##\n####@####\n####.####\n\n####.####\n####@####\n##.....##\n##.....##\n.@.*o*.o.\n##.....##\n##.p...##\n####@####\n####.####\n\n####.####\n####o####\n##.....##\n##..*..##\n.o.*@*.o.\n##..*..##\n##p....##\n####o####\n####.####\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*O.#\n##.*P*.#\n#..O*O.#\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(\n==========\nTRANSFORM\n==========\n[player]->[]\n[target]->[]\n[crate]->[]\n\nchoose 1 [ no wall] ->[ player]\nchoose 2 [ no wall no player]->[target]\nchoose 2 [no wall no player] ->[crate]\n\n\n))\n", [1, 1, 2, 1, 1, 0, 4, 2, 4, 1, 2, 1, 4], "background wall:0,0,0,0,0,0,0,0,background:1,\n1,1,0,0,0,1,0,1,0,\n0,1,background crate:2,background target:3,background player:4,0,0,1,1,\n1,1,0,0,0,1,1,0,0,\n0,0,1,3,1,0,0,0,2,\n1,1,0,0,0,0,0,0,0,\n", 11, "1627894122279.9321"] ], [ - "Bicycle-Kick Football", - ["(Ziel = Tore = gerichtet!)\ntitle Bicycle-Kick Football\nauthor increpare\nhomepage www.increpare.com\n\n( verbose_logging )\nrun_rules_on_level_start\n\nbackground_color #305e12\ntext_color white\n\n========\nOBJECTS\n========\n\nBackground1\n#6a984d \n\nBackground2\n#87b769\n\ntarget_bg\ndarkgray\n\nTarget\n#cccccc #9d9d9d\n00000\n01.10\n0.1.0\n01.10\n00000\n\n\n\nWall\n#305e12 #305e12\n00000\n01000\n00000\n00010\n00000\n\nStehend\nBlack Orange blue white\n.000.\n.111.\n12221\n.333.\n.2.2.\n\nTritt_Ost\nBlack Orange blue white\n....2\n01232\n0123.\n0123.\n....2\n\nTritt_Nord\nBlack Orange blue white\n22..2\n.333.\n.222.\n.111.\n.000.\n\nTritt_West\nBlack Orange blue white\n2....\n.3210\n.3210\n23210\n2....\n\n\nTritt_Sud\nBlack Orange blue white\n.000.\n.111.\n.222.\n.333.\n2..22\n\nCrate\n#dbdbdb #fcfcfc \n.000.\n01110\n01110\n01110\n.000.\n\nost_bewegende\nred\n.....\n.....\n....0\n.....\n.....\n\nnord_bewegende\nred\n..0..\n.....\n.....\n.....\n.....\n\nsud_bewegende\nred\n.....\n.....\n.....\n.....\n..0..\n\nwest_bewegende\nred\n.....\n.....\n0....\n.....\n.....\n\nborder_up \n#a4c88d\n00000\n.....\n.....\n.....\n.....\n\n\nborder_up_right\n#a4c88d\n....0\n.....\n.....\n.....\n.....\n\n\nborder_right\n#a4c88d\n....0\n....0\n....0\n....0\n....0\n\n\nborder_down_right\n#a4c88d\n.....\n.....\n.....\n.....\n....0\n\n\nborder_down\n#a4c88d\n.....\n.....\n.....\n.....\n00000\n\n\nborder_down_left\n#a4c88d\n.....\n.....\n.....\n.....\n0....\n\n\nborder_left \n#a4c88d\n0....\n0....\n0....\n0....\n0....\n\n\nborder_up_left \n#a4c88d\n0....\n.....\n.....\n.....\n.....\n\n\n=======\nLEGEND\n=======\nbackground = Background1 or Background2\nborder = border_up or border_up_right or border_right or border_down_right or border_down or border_down_left or border_left or border_up_left\ntritt = Tritt_Ost or Tritt_Nord or Tritt_West or Tritt_Sud\nplayer = stehend or tritt\nbewegende = nord_bewegende or sud_bewegende or ost_bewegende or west_bewegende\n. = Background1\n# = Wall\nP = stehend\nt = Tritt_Ost\n* = Crate\n@ = Crate and Target and target_bg\nO = Target and target_bg\nobstacle = crate or player or wall\n\n=======\nSOUNDS\n=======\n\nsfx0 29072107 (kick)\nsfx1 83623707 (kickstart)\nsfx2 51785307 (animend)\n\nendlevel 99732902\nendgame 99732902\nstartlevel 24368106\n\n================\nCOLLISIONLAYERS\n================\n\nbewegende\n\nBackground1, Background2\nborder_up \nborder_up_right \nborder_right \nborder_down_right \nborder_down \nborder_down_left \nborder_left \nborder_up_left\ntarget_bg\nplayer, Wall, Crate\nTarget\n\n======\nRULES\n======\n\nright [ Background1 | Background1 | Background1 ] -> [ Background1 | Background2 | Background1 ]\n\nup [ wall | no wall] ->[ wall | border_down ]\ndown [ wall | no wall] ->[ wall | border_up ]\nleft [ wall | no wall] ->[ wall | border_right ]\nright [ wall | no wall] ->[ wall | border_left ]\n\n\nright [ no wall | no wall border_down ] -> [ border_down_right | border_down ]\ndown [border_down_right|no border_right]->[|] \n\n\nleft [ no wall | no wall border_down ] -> [ border_down_left | border_down ]\ndown [border_down_left|no border_left]->[|] \n\nright [ no wall | no wall border_up ] -> [ border_up_right | border_up ]\ndown [no border_right | border_up_right ] ->[|]\n\n\nleft [ no wall | no wall border_up ] -> [ border_up_left | border_up ]\ndown [no border_left | border_up_left ] ->[|]\n\nup [ nord_bewegende Crate | no obstacle ] -> [ > nord_bewegende > Crate | ]again\ndown [ sud_bewegende Crate | no obstacle ] -> [ > sud_bewegende > Crate | ]again\nleft [ west_bewegende Crate | no obstacle ] -> [ > west_bewegende > Crate | ]again\nright [ ost_bewegende Crate | no obstacle ] -> [ > ost_bewegende > Crate | ] again\n\n[tritt_sud ] -> [ Stehend ] sfx2\n[ tritt_west ] -> [ Tritt_Sud ] again\n\n[ tritt_nord ] -> [ Tritt_west ] again\n\n[ tritt_ost ] -> [ Tritt_Nord ] again\n\n[ action Stehend ] -> [ action Tritt_Ost ] again sfx1\n\nright [ Tritt_Ost | crate ] -> [ Tritt_Ost | up crate up nord_bewegende ] again sfx0\nup [ Tritt_nord | crate ] -> [ Tritt_nord | left crate left west_bewegende ] again sfx0\nleft [ Tritt_west | crate ] -> [ Tritt_west | down crate down sud_bewegende ] again sfx0\ndown [ Tritt_sud | crate ] -> [ Tritt_sud | right crate right ost_bewegende ] again sfx0\n\n\nup [ nord_bewegende | obstacle ] -> [ | obstacle ]\ndown [ sud_bewegende | obstacle ] -> [ | obstacle ]\nleft [ west_bewegende | obstacle ] -> [ | obstacle ]\nright [ ost_bewegende | obstacle ] -> [ | obstacle ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Crate on target\nno bewegende\nno tritt\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 6 - FOOTBALL FACT: The goal of football is to foot the ball in the goal (with X).\n#################\n#...#..........##\n#........#.....##\n#..............o#\n##..*.p.#......o#\n#..............o#\n#........#.....##\n#...#..........##\n#################\n\nmessage GOAAAAAL\n\nmessage Level 2 of 6 - FOOTBALL FACT: The goal only counts while the ball is in the net.\n(bad first level because no freedom)\n(ok)\n######\n#.O###\n#..###\n#oP..#\n#..**#\n#..###\n######\nmessage GOAAAAAL\n\nmessage Level 3 of 6 - FOOTBALL FACT: A single goal can be split into many pieces and spread around the field.\n(p. good! not hard)\n#########\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\nmessage GOAAAAAL\n\nmessage Level 4 of 6 - FOOTBALL FACT: A game of football consists of a single footballer and arbitrarily many balls.\n(not hard, kinda fun )\n######\n#.oo.#\n#.**.#\n#p...#\n#.**.#\n#.oo.#\n######\nmessage GOAAAAAL\n\nmessage Level 5 of 6 - FOOTBALL FACT: The only way to lose is to not take part.\n(not too hard, but fun :] )\n#########\n#######o#\n#######o#\n#######o#\n#p.*.*.*#\n#.#.#.#.#\n#.......#\n#########\n\n\nmessage GOAAAAAL\n\nmessage Level 6 of 6 : FOOTBALL FACT: A regulation football must fit within a 5x5 sprite.\n(possibly not as awful. but hard. kinda solved it by trial and error? but still hard?)\n#######\n#*.o.o#\n#.....#\n#..p..#\n#@...*#\n#######\nmessage GOAAAAAL\n\nmessage Congratulations! You are the bicycle kicking champion of the six nations!\n\n(\n(nobody wants to suffer this torture)\n(also p .hard, but smaller at least. you haven't solved yet! even with a solver it's pretty monstrous. best avoided / nixxed?)\n#######\n#@...@#\n#...o.#\n#.p...#\n#*...@#\n#######\n\n\n(also hard)\n#########\n#*..o..*#\n#.......#\n#.......#\n#p......#\n#.......#\n#@.....o#\n#########\n)\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(p. good!)\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*O.#\n##.*P*.#\n#..O*O.#\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(\n[player]->[]\n[crate]->[]\n[target]->[]\n\nchoose 2 option 0.5 [wall]->[]\n+ option 0.5 []->[]\n\nchoose 2 option 0.5 [no wall no player no target]->[wall]\n+ option 0.5 []->[]\n\nchoose 1 [ no wall]->[player]\nchoose 2 [no wall no player no crate]->[crate]\nchoose 2 [ no wall no player]->[target]\n\n)\n\n",[3,0,0,4,2,2,1,3,0,4,1,4,2,4,3,0,4,0,1,1,1,2,2,1,1,1,0,4,2,3,3,0],"background1 wall:0,0,0,0,0,0,background2 wall:1,1,background2 border_down_right border_left border_up crate:2,\nbackground2 border_left border_right:3,background2 border_down border_left border_up_right:4,1,0,0,background1 border_down border_up crate:5,0,background1 border_down border_up target target_bg:6,0,\n1,background2 border_left border_up:7,background2 border_down_left border_up_left:8,background2 border_left stehend:9,background2 border_down border_up_left:10,1,0,background1 border_right border_up:11,background1 border_down_right border_up_right:12,\nbackground1 border_right:13,background1 border_down border_right target target_bg:14,0,1,1,background2 border_down border_up:15,1,1,1,\n0,0,background1 border_down_left border_up:16,background1 border_left:17,background1 border_down border_left:18,0,1,1,background2 border_right border_up:19,\nbackground2 border_right:20,background2 border_down border_right:21,1,0,0,0,0,0,0,\n",7,"1627894148704.56"] + "Bicycle-Kick Football", + ["(Ziel = Tore = gerichtet!)\ntitle Bicycle-Kick Football\nauthor increpare\nhomepage www.increpare.com\n\n( verbose_logging )\nrun_rules_on_level_start\n\nbackground_color #305e12\ntext_color white\n\n========\nOBJECTS\n========\n\nBackground1\n#6a984d \n\nBackground2\n#87b769\n\ntarget_bg\ndarkgray\n\nTarget\n#cccccc #9d9d9d\n00000\n01.10\n0.1.0\n01.10\n00000\n\n\n\nWall\n#305e12 #305e12\n00000\n01000\n00000\n00010\n00000\n\nStehend\nBlack Orange blue white\n.000.\n.111.\n12221\n.333.\n.2.2.\n\nTritt_Ost\nBlack Orange blue white\n....2\n01232\n0123.\n0123.\n....2\n\nTritt_Nord\nBlack Orange blue white\n22..2\n.333.\n.222.\n.111.\n.000.\n\nTritt_West\nBlack Orange blue white\n2....\n.3210\n.3210\n23210\n2....\n\n\nTritt_Sud\nBlack Orange blue white\n.000.\n.111.\n.222.\n.333.\n2..22\n\nCrate\n#dbdbdb #fcfcfc \n.000.\n01110\n01110\n01110\n.000.\n\nost_bewegende\nred\n.....\n.....\n....0\n.....\n.....\n\nnord_bewegende\nred\n..0..\n.....\n.....\n.....\n.....\n\nsud_bewegende\nred\n.....\n.....\n.....\n.....\n..0..\n\nwest_bewegende\nred\n.....\n.....\n0....\n.....\n.....\n\nborder_up \n#a4c88d\n00000\n.....\n.....\n.....\n.....\n\n\nborder_up_right\n#a4c88d\n....0\n.....\n.....\n.....\n.....\n\n\nborder_right\n#a4c88d\n....0\n....0\n....0\n....0\n....0\n\n\nborder_down_right\n#a4c88d\n.....\n.....\n.....\n.....\n....0\n\n\nborder_down\n#a4c88d\n.....\n.....\n.....\n.....\n00000\n\n\nborder_down_left\n#a4c88d\n.....\n.....\n.....\n.....\n0....\n\n\nborder_left \n#a4c88d\n0....\n0....\n0....\n0....\n0....\n\n\nborder_up_left \n#a4c88d\n0....\n.....\n.....\n.....\n.....\n\n\n=======\nLEGEND\n=======\nbackground = Background1 or Background2\nborder = border_up or border_up_right or border_right or border_down_right or border_down or border_down_left or border_left or border_up_left\ntritt = Tritt_Ost or Tritt_Nord or Tritt_West or Tritt_Sud\nplayer = stehend or tritt\nbewegende = nord_bewegende or sud_bewegende or ost_bewegende or west_bewegende\n. = Background1\n# = Wall\nP = stehend\nt = Tritt_Ost\n* = Crate\n@ = Crate and Target and target_bg\nO = Target and target_bg\nobstacle = crate or player or wall\n\n=======\nSOUNDS\n=======\n\nsfx0 29072107 (kick)\nsfx1 83623707 (kickstart)\nsfx2 51785307 (animend)\n\nendlevel 99732902\nendgame 99732902\nstartlevel 24368106\n\n================\nCOLLISIONLAYERS\n================\n\nbewegende\n\nBackground1, Background2\nborder_up \nborder_up_right \nborder_right \nborder_down_right \nborder_down \nborder_down_left \nborder_left \nborder_up_left\ntarget_bg\nplayer, Wall, Crate\nTarget\n\n======\nRULES\n======\n\nright [ Background1 | Background1 | Background1 ] -> [ Background1 | Background2 | Background1 ]\n\nup [ wall | no wall] ->[ wall | border_down ]\ndown [ wall | no wall] ->[ wall | border_up ]\nleft [ wall | no wall] ->[ wall | border_right ]\nright [ wall | no wall] ->[ wall | border_left ]\n\n\nright [ no wall | no wall border_down ] -> [ border_down_right | border_down ]\ndown [border_down_right|no border_right]->[|] \n\n\nleft [ no wall | no wall border_down ] -> [ border_down_left | border_down ]\ndown [border_down_left|no border_left]->[|] \n\nright [ no wall | no wall border_up ] -> [ border_up_right | border_up ]\ndown [no border_right | border_up_right ] ->[|]\n\n\nleft [ no wall | no wall border_up ] -> [ border_up_left | border_up ]\ndown [no border_left | border_up_left ] ->[|]\n\nup [ nord_bewegende Crate | no obstacle ] -> [ > nord_bewegende > Crate | ]again\ndown [ sud_bewegende Crate | no obstacle ] -> [ > sud_bewegende > Crate | ]again\nleft [ west_bewegende Crate | no obstacle ] -> [ > west_bewegende > Crate | ]again\nright [ ost_bewegende Crate | no obstacle ] -> [ > ost_bewegende > Crate | ] again\n\n[tritt_sud ] -> [ Stehend ] sfx2\n[ tritt_west ] -> [ Tritt_Sud ] again\n\n[ tritt_nord ] -> [ Tritt_west ] again\n\n[ tritt_ost ] -> [ Tritt_Nord ] again\n\n[ action Stehend ] -> [ action Tritt_Ost ] again sfx1\n\nright [ Tritt_Ost | crate ] -> [ Tritt_Ost | up crate up nord_bewegende ] again sfx0\nup [ Tritt_nord | crate ] -> [ Tritt_nord | left crate left west_bewegende ] again sfx0\nleft [ Tritt_west | crate ] -> [ Tritt_west | down crate down sud_bewegende ] again sfx0\ndown [ Tritt_sud | crate ] -> [ Tritt_sud | right crate right ost_bewegende ] again sfx0\n\n\nup [ nord_bewegende | obstacle ] -> [ | obstacle ]\ndown [ sud_bewegende | obstacle ] -> [ | obstacle ]\nleft [ west_bewegende | obstacle ] -> [ | obstacle ]\nright [ ost_bewegende | obstacle ] -> [ | obstacle ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Crate on target\nno bewegende\nno tritt\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 6 - FOOTBALL FACT: The goal of football is to foot the ball in the goal (with X).\n#################\n#...#..........##\n#........#.....##\n#..............o#\n##..*.p.#......o#\n#..............o#\n#........#.....##\n#...#..........##\n#################\n\nmessage GOAAAAAL\n\nmessage Level 2 of 6 - FOOTBALL FACT: The goal only counts while the ball is in the net.\n(bad first level because no freedom)\n(ok)\n######\n#.O###\n#..###\n#oP..#\n#..**#\n#..###\n######\nmessage GOAAAAAL\n\nmessage Level 3 of 6 - FOOTBALL FACT: A single goal can be split into many pieces and spread around the field.\n(p. good! not hard)\n#########\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\nmessage GOAAAAAL\n\nmessage Level 4 of 6 - FOOTBALL FACT: A game of football consists of a single footballer and arbitrarily many balls.\n(not hard, kinda fun )\n######\n#.oo.#\n#.**.#\n#p...#\n#.**.#\n#.oo.#\n######\nmessage GOAAAAAL\n\nmessage Level 5 of 6 - FOOTBALL FACT: The only way to lose is to not take part.\n(not too hard, but fun :] )\n#########\n#######o#\n#######o#\n#######o#\n#p.*.*.*#\n#.#.#.#.#\n#.......#\n#########\n\n\nmessage GOAAAAAL\n\nmessage Level 6 of 6 : FOOTBALL FACT: A regulation football must fit within a 5x5 sprite.\n(possibly not as awful. but hard. kinda solved it by trial and error? but still hard?)\n#######\n#*.o.o#\n#.....#\n#..p..#\n#@...*#\n#######\nmessage GOAAAAAL\n\nmessage Congratulations! You are the bicycle kicking champion of the six nations!\n\n(\n(nobody wants to suffer this torture)\n(also p .hard, but smaller at least. you haven't solved yet! even with a solver it's pretty monstrous. best avoided / nixxed?)\n#######\n#@...@#\n#...o.#\n#.p...#\n#*...@#\n#######\n\n\n(also hard)\n#########\n#*..o..*#\n#.......#\n#.......#\n#p......#\n#.......#\n#@.....o#\n#########\n)\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(p. good!)\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*O.#\n##.*P*.#\n#..O*O.#\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(\n[player]->[]\n[crate]->[]\n[target]->[]\n\nchoose 2 option 0.5 [wall]->[]\n+ option 0.5 []->[]\n\nchoose 2 option 0.5 [no wall no player no target]->[wall]\n+ option 0.5 []->[]\n\nchoose 1 [ no wall]->[player]\nchoose 2 [no wall no player no crate]->[crate]\nchoose 2 [ no wall no player]->[target]\n\n)\n\n", [3, 0, 0, 4, 2, 2, 1, 3, 0, 4, 1, 4, 2, 4, 3, 0, 4, 0, 1, 1, 1, 2, 2, 1, 1, 1, 0, 4, 2, 3, 3, 0], "background1 wall:0,0,0,0,0,0,background2 wall:1,1,background2 border_down_right border_left border_up crate:2,\nbackground2 border_left border_right:3,background2 border_down border_left border_up_right:4,1,0,0,background1 border_down border_up crate:5,0,background1 border_down border_up target target_bg:6,0,\n1,background2 border_left border_up:7,background2 border_down_left border_up_left:8,background2 border_left stehend:9,background2 border_down border_up_left:10,1,0,background1 border_right border_up:11,background1 border_down_right border_up_right:12,\nbackground1 border_right:13,background1 border_down border_right target target_bg:14,0,1,1,background2 border_down border_up:15,1,1,1,\n0,0,background1 border_down_left border_up:16,background1 border_left:17,background1 border_down border_left:18,0,1,1,background2 border_right border_up:19,\nbackground2 border_right:20,background2 border_down border_right:21,1,0,0,0,0,0,0,\n", 7, "1627894148704.56"] ], [ - "Van-to-Mobile-Living-Space-Conversion Window-Frame-Installation", - ["title Van-to-Mobile-Living-Space-Conversion Window-Frame-Installation\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nbackground_color lightblue\n\ntext_color black\n\n(levels made with the assistance of PuzzlescriptMIS https://dekeyser.ch/puzzlescriptmis/ )\n\n(thanks an toombercazz für feedback)\n========\nOBJECTS\n========\n\nBackground\ngray\n\nsky ,\nlightblue\n\nTarget\nlightblue\n.000.\n00000\n00000\n00000\n.000.\n\nWall\ndarkgray\n\nfront1 a\n#697175 lightblue\n10000\n00000\n00000\n00000\n00000\n\nfront2 s\n#5bb4e0\n\nfront3a d\n#000000 lightblue\n11100\n11100\n11100\n11100\n11100\n\nfront3b f\n#697175 #000000\n00000\n00000\n11000\n11000\n11000\n\nwheel1 \n#697175 #000000\n00000\n00011\n00111\n01110\n01100\n\nwheel2 \n#697175 #000000\n00000\n11000\n11100\n01110\n00110\n\nwheel3 j\n#000000 #697175 #595652 lightblue\n30011\n30001\n33000\n33300\n22222\n \nwheel4 k\n#697175 #000000 #595652 lightblue\n00113\n01113\n11133\n11333\n22222\n\nroada l\n#595652 lightblue\n11111\n11111\n11111\n11111\n00000\n\n\nroadb ;\n#595652\n\nexhaust '\n#b2dcef #9badb7\n00000\n11111\n11111\n11111\n00000\n\nPlayer_G\n#99e550\n\n\n\nPlayer_B\n#639bff\n\neye_l\n#99e550 #ffffff #000000 #ec4353\n00000\n00100\n01210\n00103\n00000\n\neye_r\n#639bff #ffffff #000000 #ec4353\n00000\n00100\n01210\n30100\n00000\n\n\nCrate\nblack\n.000.\n0...0\n0...0\n0...0\n.000.\n\n=======\nLEGEND\n=======\n\ncosmetic = front1 or front2 or front3a or front3b or wheel1 or wheel2 or wheel3 or wheel4 or roada or roadb or exhaust\n\n\nplayer = Player_G or Player_B\neye = eye_l or eye_r\n\n. = Background\n# = Wall\nq = Player_G\nw = Player_B\n* = Crate\n@ = Crate and Target\nO = Target\n\ng = wheel1 and Wall\nh = wheel2 and Wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 16975107\nendlevel 87300305\nstartlevel 7208105\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nsky\nTarget\nPlayer, Wall, Crate\neye\ncosmetic\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Crate | Crate ] -> [ > Crate | > Crate ]\n\nlate [ eye ] ->[]\nlate [Player_G ]->[Player_G eye_l ]\nlate [Player_b ]->[Player_b eye_r ]\nlate right [ eye_l | no eye_r ] -> [ | ]\nlate right [ no eye_l | eye_r ] -> [ | ]\nlate down [ eye | eye ] -> [ eye | ]\n\nlate down [player_g no eye_l | player_g no eye_l ] -> cancel\n\nlate down [ no player_g | Player_G | no Player_G ] -> cancel\nlate down [ no player_b | Player_b | no Player_b ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 14 - I cut out the holes, now just to slot in the window frames!\n\n(possible first level, easy and requires you to take on both shapes)\n,,,,#########,\n,a###...o..##,\n,ss##......##,\n,ss##.*.*.###,\n,####.qw...##,\n,####.qwo..##,\n,####...#..##,\ndfgh#####gh#',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\nmessage Level 2 of 14 - It looks so much brighter now!\n(super easy but pleasing manouevre)\n,,,,,,#######,\n,,,,,##....##,\n,a####.....##,\n,ss##.*o...##,\n,ss##.qw...##,\n,####.qw...##,\n,####.o*...##,\ndfgh#####gh#',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\nmessage Level 3 of 14 - It makes the space look so much bigger.\n(easy, some satisfying manouevres!)\n,,,,#########,\n,a###......##,\n,ss##......##,\n,ss##.o**..##,\n,####.qw...##,\n,####oqw.#.##,\n,####..#...##,\ndfgh#####gh#',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\nmessage Level 4 of 14 - It's like a real house but I can put windows wherever I want!\n(late easy ok )\n,,,,,,,,,#######,\n,a##,,,,,#....##,\n,ss#,,####....##,\n,ss####o##....##,\n,####qw...*...##,\n,####qwo...*..##,\n,####.......#.##,\ndfghgh####ghgh#',\nlljkjklllljkjklll\n;;;;;;;;;;;;;;;;;\n\n\nmessage Level 5 of 14 - Stupid normie houses with their square-edged windows.\n(3552)\n(fine! late-easy)\n,,,,,#######,\n,,,,,#..#.##,\n,,,,,#..oo##,\n,,,,,#*...##,\n,a####...###,\n,ss#qw..*###,\n,ss#qw....##,\n,####.....##,\n,####.....##,\ndfgh#####gh',\nlljkllllljkll\n;;;;;;;;;;;;;\n\n\nmessage Level 6 of 14 - I can't wait to go curtain-shopping!\n(12442)\n(fun early intermediate)\n,,,,,,,######,\n,,,,,,##....#,\n,,,####.....#,\n,a##.....#..#,\n,ss#.*......#,\n,ss#.oqw*o.##,\n,####.qw..##,,\n,#####....#,,,\n,###,#..###,,,\ndfgh,#gh#',,,,\nlljklljkllllll\n;;;;;;;;;;;;;;\n\n\n\n\nmessage Level 7 of 14 - The view is stunning!\n\n(Early intermediate reduction of the fun part of 3718. I like it!)\n,,,,,,,,,,,,,,,\n,,,,,######,,,,\n,a####..o.####,\n,ss#......o.##,\n,ss#qw.*..*.##,\n,###qw.#....##,\n,########...##,\ndfgh,,,,##gh#',\nlljklllllljklll\n;;;;;;;;;;;;;;;\n\n\nmessage Level 8 of 14 - Safety first!\n(mmeehg ok? can cut tho. early-intermediate. )\n(6174)\n,,,,,######,,,\n,,,,##.##.#,,,\n,,,,#.....###,\n,a###..o...##,\n,ss##..*...##,\n,ss##qw..*.##,\n,####qwo##.##,\n,#####..##.##,\n,###,#..#####,\ndfgh,#gh#',,,,\nlljklljkllllll\n;;;;;;;;;;;;;;\n\n\nmessage Level 9 of 14 - If it's not perfect, I can always add more windows!\n(ok early intermediate, based on 2911)\n,,,,####,,,,,,\n,,,,#..##,,,,,\n,a###o..###,,,\n,ss##..*.o###,\n,ss##.qw**.##,\n,####.qw...##,\n,####...o..##,\ndfgh########',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\nmessage Level 10 of 14 - When I see a wall without a window I...I just feel pity.\n\n(25260)\n(hearly-hard. kind of solved by trial and error? but i can remember the concept at least?)\n,,,,,,#######,,\n,,,,,##..#..##,\n,,,,,#.......#,\n,a##,#.....*.#,\n,ss###.#.....#,\n,ss##..qw.#.##,\n,####.*qw.###,,\n,####.....#,,,,\n,####.o.o.#,,,,\ndfgh#####gh',,,\nlljkllllljkllll\n;;;;;;;;;;;;;;;\n\n\n\n\n\nmessage Level 11 of 14 - The window on a camper van is the window to its soul.\n(pretty nice? intermediate. otoh the key trick was...discovering some new state rather than deduction)\n(16261)\n,,,,,,,,###,,\n,,,,#####.##,\n,,,,#.##...#,\n,a###......#,\n,ss##..*...#,\n,ss##.oqw*.#,\n,####o.qw..#,\n,####..#..##,\n,####..#..#',\ndfgh####gh#,,\nlljklllljklll\n;;;;;;;;;;;;;\n\n\n\n\n\n\nmessage Level 12 of 14 - If you're building a double-decker camper van, remember to have windows on both levels! \n(intermediate. kinda fine? can solve it intentionally)\n(8577)\n\n,,########,,,\n,,#......###,\n,,#.......o#,\n,,#.*......#,\n,a####.#..##,\n,ss#.qw..o.#,\n,ss#.qw*...#,\n,###.#.....#,\n,###.....###,\ndfgh#######',\nlljklllljklll\n;;;;;;;;;;;;;\n\n\n\n\n\nmessage Level 13 of 14 - BRRRR goes my skull when I rest it against the windowpane.\n(fun late intermediate)\n,,,,,#######,,\n,a####...#.##,\n,ss#........#,\n,ss#.qw..*..#,\n,###.qw.*o..#,\n,###....#.o.#,\n,########..##,\ndfgh,,,,#gh#',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\n\n\n\nmessage Level 14 of 14 - These windows won't need updating!\n\n(intermediate. fine?)\n\n,a##,############,\n,ss###o......#.##,\n,ss##........*.##,\n,####qw.*..*...##,\n,####qw.##..o.o##,\n,####..###.....##,\ndfgh##gh,#gh##gh',\nlljklljklljklljkll\n;;;;;;;;;;;;;;;;;;\n\n\nmessage Congratulations!! You're a master of your craft!\n\n",[3,3,0,3,2,0,3,3,1,2,2,3,2,3,0],"background sky:0,0,0,0,0,0,0,background front3a:1,background roada:2,background roadb:3,0,0,background front1:4,background front2:5,5,\nbackground wall:6,6,background front3b:7,2,3,0,0,6,5,5,6,6,background wall wheel1:8,background wheel3:9,3,\n0,0,6,6,6,6,6,background wall wheel2:10,background wheel4:11,3,0,0,6,background:12,12,\n12,6,0,2,3,0,6,6,12,12,12,6,0,2,3,\n0,6,12,12,12,12,6,0,2,3,0,6,12,12,12,\n6,6,0,2,3,0,6,background target:13,12,12,12,6,6,2,3,\n0,6,12,background player_g:14,background eye_l player_g:15,12,12,6,2,3,0,6,6,background crate target:16,background eye_r player_b:17,\nbackground player_b:18,12,8,9,3,0,0,6,12,background crate:19,12,12,10,11,3,\n0,0,6,6,6,6,6,6,2,3,0,0,6,6,6,\n6,6,background exhaust:20,2,3,0,0,0,0,0,0,0,0,2,3,\n",13,"1627894165909.7253"] + "Van-to-Mobile-Living-Space-Conversion Window-Frame-Installation", + ["title Van-to-Mobile-Living-Space-Conversion Window-Frame-Installation\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nbackground_color lightblue\n\ntext_color black\n\n(levels made with the assistance of PuzzlescriptMIS https://dekeyser.ch/puzzlescriptmis/ )\n\n(thanks an toombercazz für feedback)\n========\nOBJECTS\n========\n\nBackground\ngray\n\nsky ,\nlightblue\n\nTarget\nlightblue\n.000.\n00000\n00000\n00000\n.000.\n\nWall\ndarkgray\n\nfront1 a\n#697175 lightblue\n10000\n00000\n00000\n00000\n00000\n\nfront2 s\n#5bb4e0\n\nfront3a d\n#000000 lightblue\n11100\n11100\n11100\n11100\n11100\n\nfront3b f\n#697175 #000000\n00000\n00000\n11000\n11000\n11000\n\nwheel1 \n#697175 #000000\n00000\n00011\n00111\n01110\n01100\n\nwheel2 \n#697175 #000000\n00000\n11000\n11100\n01110\n00110\n\nwheel3 j\n#000000 #697175 #595652 lightblue\n30011\n30001\n33000\n33300\n22222\n \nwheel4 k\n#697175 #000000 #595652 lightblue\n00113\n01113\n11133\n11333\n22222\n\nroada l\n#595652 lightblue\n11111\n11111\n11111\n11111\n00000\n\n\nroadb ;\n#595652\n\nexhaust '\n#b2dcef #9badb7\n00000\n11111\n11111\n11111\n00000\n\nPlayer_G\n#99e550\n\n\n\nPlayer_B\n#639bff\n\neye_l\n#99e550 #ffffff #000000 #ec4353\n00000\n00100\n01210\n00103\n00000\n\neye_r\n#639bff #ffffff #000000 #ec4353\n00000\n00100\n01210\n30100\n00000\n\n\nCrate\nblack\n.000.\n0...0\n0...0\n0...0\n.000.\n\n=======\nLEGEND\n=======\n\ncosmetic = front1 or front2 or front3a or front3b or wheel1 or wheel2 or wheel3 or wheel4 or roada or roadb or exhaust\n\n\nplayer = Player_G or Player_B\neye = eye_l or eye_r\n\n. = Background\n# = Wall\nq = Player_G\nw = Player_B\n* = Crate\n@ = Crate and Target\nO = Target\n\ng = wheel1 and Wall\nh = wheel2 and Wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 16975107\nendlevel 87300305\nstartlevel 7208105\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nsky\nTarget\nPlayer, Wall, Crate\neye\ncosmetic\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Crate | Crate ] -> [ > Crate | > Crate ]\n\nlate [ eye ] ->[]\nlate [Player_G ]->[Player_G eye_l ]\nlate [Player_b ]->[Player_b eye_r ]\nlate right [ eye_l | no eye_r ] -> [ | ]\nlate right [ no eye_l | eye_r ] -> [ | ]\nlate down [ eye | eye ] -> [ eye | ]\n\nlate down [player_g no eye_l | player_g no eye_l ] -> cancel\n\nlate down [ no player_g | Player_G | no Player_G ] -> cancel\nlate down [ no player_b | Player_b | no Player_b ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 14 - I cut out the holes, now just to slot in the window frames!\n\n(possible first level, easy and requires you to take on both shapes)\n,,,,#########,\n,a###...o..##,\n,ss##......##,\n,ss##.*.*.###,\n,####.qw...##,\n,####.qwo..##,\n,####...#..##,\ndfgh#####gh#',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\nmessage Level 2 of 14 - It looks so much brighter now!\n(super easy but pleasing manouevre)\n,,,,,,#######,\n,,,,,##....##,\n,a####.....##,\n,ss##.*o...##,\n,ss##.qw...##,\n,####.qw...##,\n,####.o*...##,\ndfgh#####gh#',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\nmessage Level 3 of 14 - It makes the space look so much bigger.\n(easy, some satisfying manouevres!)\n,,,,#########,\n,a###......##,\n,ss##......##,\n,ss##.o**..##,\n,####.qw...##,\n,####oqw.#.##,\n,####..#...##,\ndfgh#####gh#',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\nmessage Level 4 of 14 - It's like a real house but I can put windows wherever I want!\n(late easy ok )\n,,,,,,,,,#######,\n,a##,,,,,#....##,\n,ss#,,####....##,\n,ss####o##....##,\n,####qw...*...##,\n,####qwo...*..##,\n,####.......#.##,\ndfghgh####ghgh#',\nlljkjklllljkjklll\n;;;;;;;;;;;;;;;;;\n\n\nmessage Level 5 of 14 - Stupid normie houses with their square-edged windows.\n(3552)\n(fine! late-easy)\n,,,,,#######,\n,,,,,#..#.##,\n,,,,,#..oo##,\n,,,,,#*...##,\n,a####...###,\n,ss#qw..*###,\n,ss#qw....##,\n,####.....##,\n,####.....##,\ndfgh#####gh',\nlljkllllljkll\n;;;;;;;;;;;;;\n\n\nmessage Level 6 of 14 - I can't wait to go curtain-shopping!\n(12442)\n(fun early intermediate)\n,,,,,,,######,\n,,,,,,##....#,\n,,,####.....#,\n,a##.....#..#,\n,ss#.*......#,\n,ss#.oqw*o.##,\n,####.qw..##,,\n,#####....#,,,\n,###,#..###,,,\ndfgh,#gh#',,,,\nlljklljkllllll\n;;;;;;;;;;;;;;\n\n\n\n\nmessage Level 7 of 14 - The view is stunning!\n\n(Early intermediate reduction of the fun part of 3718. I like it!)\n,,,,,,,,,,,,,,,\n,,,,,######,,,,\n,a####..o.####,\n,ss#......o.##,\n,ss#qw.*..*.##,\n,###qw.#....##,\n,########...##,\ndfgh,,,,##gh#',\nlljklllllljklll\n;;;;;;;;;;;;;;;\n\n\nmessage Level 8 of 14 - Safety first!\n(mmeehg ok? can cut tho. early-intermediate. )\n(6174)\n,,,,,######,,,\n,,,,##.##.#,,,\n,,,,#.....###,\n,a###..o...##,\n,ss##..*...##,\n,ss##qw..*.##,\n,####qwo##.##,\n,#####..##.##,\n,###,#..#####,\ndfgh,#gh#',,,,\nlljklljkllllll\n;;;;;;;;;;;;;;\n\n\nmessage Level 9 of 14 - If it's not perfect, I can always add more windows!\n(ok early intermediate, based on 2911)\n,,,,####,,,,,,\n,,,,#..##,,,,,\n,a###o..###,,,\n,ss##..*.o###,\n,ss##.qw**.##,\n,####.qw...##,\n,####...o..##,\ndfgh########',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\nmessage Level 10 of 14 - When I see a wall without a window I...I just feel pity.\n\n(25260)\n(hearly-hard. kind of solved by trial and error? but i can remember the concept at least?)\n,,,,,,#######,,\n,,,,,##..#..##,\n,,,,,#.......#,\n,a##,#.....*.#,\n,ss###.#.....#,\n,ss##..qw.#.##,\n,####.*qw.###,,\n,####.....#,,,,\n,####.o.o.#,,,,\ndfgh#####gh',,,\nlljkllllljkllll\n;;;;;;;;;;;;;;;\n\n\n\n\n\nmessage Level 11 of 14 - The window on a camper van is the window to its soul.\n(pretty nice? intermediate. otoh the key trick was...discovering some new state rather than deduction)\n(16261)\n,,,,,,,,###,,\n,,,,#####.##,\n,,,,#.##...#,\n,a###......#,\n,ss##..*...#,\n,ss##.oqw*.#,\n,####o.qw..#,\n,####..#..##,\n,####..#..#',\ndfgh####gh#,,\nlljklllljklll\n;;;;;;;;;;;;;\n\n\n\n\n\n\nmessage Level 12 of 14 - If you're building a double-decker camper van, remember to have windows on both levels! \n(intermediate. kinda fine? can solve it intentionally)\n(8577)\n\n,,########,,,\n,,#......###,\n,,#.......o#,\n,,#.*......#,\n,a####.#..##,\n,ss#.qw..o.#,\n,ss#.qw*...#,\n,###.#.....#,\n,###.....###,\ndfgh#######',\nlljklllljklll\n;;;;;;;;;;;;;\n\n\n\n\n\nmessage Level 13 of 14 - BRRRR goes my skull when I rest it against the windowpane.\n(fun late intermediate)\n,,,,,#######,,\n,a####...#.##,\n,ss#........#,\n,ss#.qw..*..#,\n,###.qw.*o..#,\n,###....#.o.#,\n,########..##,\ndfgh,,,,#gh#',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\n\n\n\nmessage Level 14 of 14 - These windows won't need updating!\n\n(intermediate. fine?)\n\n,a##,############,\n,ss###o......#.##,\n,ss##........*.##,\n,####qw.*..*...##,\n,####qw.##..o.o##,\n,####..###.....##,\ndfgh##gh,#gh##gh',\nlljklljklljklljkll\n;;;;;;;;;;;;;;;;;;\n\n\nmessage Congratulations!! You're a master of your craft!\n\n", [3, 3, 0, 3, 2, 0, 3, 3, 1, 2, 2, 3, 2, 3, 0], "background sky:0,0,0,0,0,0,0,background front3a:1,background roada:2,background roadb:3,0,0,background front1:4,background front2:5,5,\nbackground wall:6,6,background front3b:7,2,3,0,0,6,5,5,6,6,background wall wheel1:8,background wheel3:9,3,\n0,0,6,6,6,6,6,background wall wheel2:10,background wheel4:11,3,0,0,6,background:12,12,\n12,6,0,2,3,0,6,6,12,12,12,6,0,2,3,\n0,6,12,12,12,12,6,0,2,3,0,6,12,12,12,\n6,6,0,2,3,0,6,background target:13,12,12,12,6,6,2,3,\n0,6,12,background player_g:14,background eye_l player_g:15,12,12,6,2,3,0,6,6,background crate target:16,background eye_r player_b:17,\nbackground player_b:18,12,8,9,3,0,0,6,12,background crate:19,12,12,10,11,3,\n0,0,6,6,6,6,6,6,2,3,0,0,6,6,6,\n6,6,background exhaust:20,2,3,0,0,0,0,0,0,0,0,2,3,\n", 13, "1627894165909.7253"] ], [ - "The sponge what lights up the seafloor", - ["title The sponge what lights up the seafloor\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\n( verbose_logging )\n\nbackground_color #097ca9\n\ntext_color black\nnoaction\n========\nOBJECTS\n========\n\nBackground1\n#097ca9 #026f9a\n00000\n00000\n00100\n00000\n00000\n\n\nBackground2\n#097ca9 #026f9a\n00000\n00000\n00000\n00000\n00000\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\n#005373 #0a6284\n00000\n00000\n00000\n00000\n00000\n\n\nPlayer_tl\npink red\n01111\n1....\n1....\n1....\n1....\n\nPlayer_tr\npink red\n11110\n....1\n....1\n....1\n....1\n\nPlayer_bl\npink red\n1....\n1....\n1....\n1....\n01111\n\nPlayer_br\npink red\n....1\n....1\n....1\n....1\n11110\n\nsponge_thick\nyellow\n.000.\n00000\n00000\n00000\n.000.\n\nsponge_thin\nyellow\n.000.\n00000\n00000\n00000\n.000.\n\nCrate_tl \n#b685b5 #8a4288\n00000\n01111\n01111\n01111\n01111\n\nCrate_tr \n#b685b5 #8a4288\n00000\n11110\n11110\n11110\n11110\n\nCrate_bl \n#b685b5 #8a4288\n01111\n01111\n01111\n01111\n00000\n\nCrate_br \n#b685b5 #8a4288\n11110\n11110\n11110\n11110\n00000\n\nsponge_ok\n#ff00ff\n0....\n.....\n.....\n.....\n.....\n\ntargetlight\n#83e5f9 #27aeca\n.....\n.....\n..0..\n.....\n.....\n\nskin_tl_loose \n#d5d156 #d2b140 #af8c18\n.0000\n01212\n02121\n01212\n02121\n\n\nskin_tr_loose\n#d5d156 #d2b140 #af8c18\n0000.\n12120\n21210\n12120\n21210\n\nskin_bl_loose\n#d5d156 #d2b140 #af8c18\n01212\n02121\n01212\n02121\n.0000\n\nskin_br_loose\n#d2b140 #af8c18 #d5d156\n01012\n10102\n01012\n10102\n2222.\n\n\n\nskin_tl_tight\n#d5d156 #9b7907\n.0000\n01111\n01111\n01111\n01111\n\nskin_tr_tight\n#d5d156 #9b7907\n0000.\n11110\n11110\n11110\n11110\n\nskin_bl_tight\n#d5d156 #9b7907\n01111\n01111\n01111\n01111\n.0000\n\nskin_br_tight\n#9b7907 #d5d156\n00001\n00001\n00001\n00001\n1111.\n\nskin_n\n#d5d156\n00000\n.....\n.....\n.....\n.....\n\nskin_s\n#d5d156\n.....\n.....\n.....\n.....\n00000\n\nskin_e\n#d5d156\n....0\n....0\n....0\n....0\n....0\n\nskin_w\n#d5d156\n0....\n0....\n0....\n0....\n0....\n\nface_pressed_eye_l\n#ffffff #639bff\n.....\n..01.\n..00.\n.....\n.....\n\nface_pressed_eye_r\n#ffffff #639bff\n.....\n.01..\n.00..\n.....\n.....\n\nface_normal_eye_l\n#ffffff #639bff\n.....\n.....\n..01.\n..00.\n.....\n\n\nface_normal_eye_r\n#ffffff #639bff\n.....\n.....\n.01..\n.00..\n.....\n\nface_normal_mouth_l\n#000000\n.....\n...00\n....0\n.....\n.....\n\n\nface_normal_mouth_r\n#000000\n.....\n00...\n0....\n.....\n.....\n\nface_pressed_mouth\n#000000\n.....\n..0..\n..0..\n.....\n.....\n\nface_pressed_eyes_both\n#ffffff #639bff #097ca9\n.....\n.....\n01.01\n00.00\n.....\n\n\nface_pressed_horizont_full_l\n#ffffff #639bff #000000\n.....\n.00..\n.01.2\n....2\n.....\n\n\nface_pressed_horizont_full_r\n#ffffff #000000 #639bff\n.....\n..00.\n1.20.\n1....\n.....\n\nforcesponge\ntransparent\n\nhalttag\ntransparent\n\n=======\nLEGEND\n=======\n\nface = face_pressed_eye_l or face_pressed_eye_r or face_normal_eye_l or face_normal_eye_r or face_normal_mouth_l or face_normal_mouth_r or face_pressed_mouth or face_pressed_eyes_both or face_pressed_horizont_full_l or face_pressed_horizont_full_r\nplayer = Player_tl or Player_tr or Player_bl or Player_br\ncrate = Crate_tl or Crate_tr or Crate_bl or Crate_br\nsponge = sponge_thick or sponge_thin \nobstacle = sponge or wall or Crate\n. = Background1\n, = Background2\n# = Wall and Background1\nq = Player_tl and sponge_thin and Background1\nw = Player_tr and sponge_thin and Background1\ne = Player_bl and sponge_thin and Background1\nr = player_br and sponge_thin and Background1\nO = Target and Background1\nz = crate_tl and Target and Background1\nx = crate_tr and Target and Background1\nc = crate_bl and Target and Background1\nb = Crate_br and Target and Background1\na = Crate_tl and Background1\ns = Crate_tr and Background1\nd = Crate_bl and Background1\nf = Crate_br and Background1\n\nskin_flesh = skin_tl_loose or skin_tr_loose or skin_bl_loose or skin_br_loose or skin_tl_tight or skin_tr_tight or skin_bl_tight or skin_br_tight \n\nskin_barrier = skin_n or skin_s or skin_e or skin_W\n\n\nskin = skin_flesh or skin_Barrier\nbackground = Background1 or Background2\n=======\nSOUNDS\n=======\n\nCrate MOVE 2330507\nstartlevel 93226500\nendlevel 74584306\n================\nCOLLISIONLAYERS\n================\n\nplayer\nsponge_ok\n\n\nBackground1, Background2\n\nsponge, Wall, Crate\n\nTarget\n\nskin_flesh\nskin_n\nskin_s\nskin_e\nskin_w\n\n\nface\ntargetlight\n\nforcesponge\nhalttag\n\n======\nRULES\n======\n\n[moving player] -> again\n\n\n(drawing code begin)\n(\nright [action player] [ Player_tl | ] -> [action player] [ player_tl | Player_tr sponge_thin ]\ndown [action player] [ player_tl | ] -> [action player] [ player_tl | Player_bl sponge_thin]\ndown [action player] [ player_tr | ] -> [action player] [ player_tr | Player_br sponge_thin]\n\nright [action player] [ Crate_tl target| no Crate ] -> [action player] [ Crate_tl target| Crate_tr target ]\ndown [action player] [ Crate_tl target| no Crate] -> [action player] [ Crate_tl target| Crate_bl target]\ndown [action player] [ Crate_tr target|no Crate ] -> [action player] [ Crate_tr target| Crate_br target]\n\nright [action player] [ Crate_tl no target| no Crate ] -> [action player] [ Crate_tl no target| Crate_tr ]\ndown [action player] [ Crate_tl no target| no Crate] -> [action player] [ Crate_tl no target| Crate_bl ]\ndown [action player] [ Crate_tr no target|no Crate ] -> [action player] [ Crate_tr no target| Crate_br ]\n)\n(drawing code end)\n\n[sponge_ok]->[]\n[moving player sponge] -> [ moving player moving sponge]\n\n[ > sponge | Crate ] -> [ > sponge | > Crate ]\n\n\n(expanding sponge applies force)\n[ stationary player ] [ sponge_thick | crate player ] ->[ stationary player ] [ sponge_thick forcesponge| > crate player ]\n\n(propagate movements)\nright [moving Crate_tl | stationary Crate_tr ] -> [moving Crate_tl | moving Crate_tr ]\n+ right [ stationary Crate_tl | moving Crate_tr ] -> [moving Crate_tl | moving Crate_tr ] \n+ right [moving Crate_bl | stationary Crate_br ] -> [moving Crate_bl | moving Crate_br ] \n+ right [ stationary Crate_bl | moving Crate_br ] -> [moving Crate_bl | moving Crate_br ] \n\n+ down [ moving crate_tl | stationary crate_bl ] -> [ moving crate_tl | moving crate_bl ] \n+ down [ stationary crate_tl | moving crate_bl ] -> [ moving crate_tl | moving crate_bl ]\n+ down [ moving crate_tr | stationary crate_br ] -> [ moving crate_tr | moving crate_br ] \n+ down [ stationary crate_tr | moving crate_br ] -> [ moving crate_tr | moving crate_br ]\n\n+ [ > crate | stationary crate ] -> [ > crate | > crate ]\n\n\n(unpropagate movements)\n\n[ > crate | stationary obstacle ] -> [ crate | obstacle ]\n+ right [moving Crate_tl | stationary Crate_tr ] -> [ Crate_tl | Crate_tr ]\n+ right [ stationary Crate_tl | moving Crate_tr ] -> [ Crate_tl | Crate_tr ] \n+ right [moving Crate_bl | stationary Crate_br ] -> [ Crate_bl | Crate_br ] \n+ right [ stationary Crate_bl | moving Crate_br ] -> [ Crate_bl | Crate_br ] \n\n+ down [ moving crate_tl | stationary crate_bl ] -> [ crate_tl | crate_bl ] \n+ down [ stationary crate_tl | moving crate_bl ] -> [ crate_tl | crate_bl ]\n+ down [ moving crate_tr | stationary crate_br ] -> [ crate_tr | crate_br ] \n+ down [ stationary crate_tr | moving crate_br ] -> [ crate_tr | crate_br ]\n\n(add halt tag to allcrates)\n[moving crate]->[moving crate halttag]\n(remove halttags along propagation)\n[ sponge | crate halttag ] -> [ sponge | crate no halttag ]\n\n+ right [no halttag Crate_tl | halttag Crate_tr ] -> [ Crate_tl | Crate_tr ]\n+ right [ halttag Crate_tl | no halttag Crate_tr ] -> [ Crate_tl | Crate_tr ] \n+ right [no halttag Crate_bl | halttag Crate_br ] -> [ Crate_bl | Crate_br ] \n+ right [ halttag Crate_bl | no halttag Crate_br ] -> [ Crate_bl | Crate_br ] \n\n+ down [ no halttag crate_tl | halttag crate_bl ] -> [ crate_tl | crate_bl ] \n+ down [ halttag crate_tl | no halttag crate_bl ] -> [ crate_tl | crate_bl ]\n+ down [ no halttag crate_tr | halttag crate_br ] -> [ crate_tr | crate_br ] \n+ down [ halttag crate_tr | no halttag crate_br ] -> [ crate_tr | crate_br ]\n\n+ [ > crate no halttag | > crate halttag ] -> [ > crate | > crate ]\n\n[moving crate halttag]->[stationary crate]\n\n(squish sponge if necessary)\n[ > sponge_thin | > sponge_thin | stationary obstacle ] -> [ | sponge_thick | stationary obstacle ]\n\n[ no sponge | > sponge_thick | no sponge no obstacle ] -> [ | sponge_thin | sponge_thin ]\nlate [ sponge no player ] -> cancel\n\nlate [ sponge_thick player | no obstacle player] -> [ sponge_thin player | sponge_thin player ]\n\nlate [ sponge_thick | no sponge player ] -> [sponge_thick sponge_ok | player ]\n\nlate [sponge_thick no sponge_ok ]-> cancel\n\n(draw skin)\nlate [skin]->[]\nlate [Player_tl sponge_thick ] -> [Player_tl sponge_thick skin_tl_tight ]\nlate [Player_tr sponge_thick ] -> [Player_tr sponge_thick skin_tr_tight ]\nlate [Player_bl sponge_thick ] -> [Player_bl sponge_thick skin_bl_tight ]\nlate [Player_br sponge_thick ] -> [Player_br sponge_thick skin_br_tight ]\n\nlate [Player_tl sponge_thin ] -> [Player_tl sponge_thin skin_tl_loose ]\nlate [Player_tr sponge_thin ] -> [Player_tr sponge_thin skin_tr_loose ]\nlate [Player_bl sponge_thin ] -> [Player_bl sponge_thin skin_bl_loose ]\nlate [Player_br sponge_thin ] -> [Player_br sponge_thin skin_br_loose ]\n\nlate up [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_n | player no sponge ]\nlate down [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_s | player no sponge ]\nlate left [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_w | player no sponge ]\nlate right [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_e | player no sponge ]\n\n(draw face (eyes/mouth))\nlate [face]->[]\n\nlate right [ sponge_thick no face | sponge_thick no face ] -> [ sponge_thick face_pressed_horizont_full_l | sponge_thick face_pressed_horizont_full_r]\n\nlate down [ sponge_thick no face | sponge_thick no face ] -> [ sponge_thick face_pressed_eyes_both | sponge_thick face_pressed_mouth]\n\nlate right [ player_tl sponge_thick | no sponge ] -> [ player_tl sponge_thick face_pressed_eyes_both | no sponge ]\nlate left [ player_tr sponge_thick | no sponge ] -> [ player_tr sponge_thick face_pressed_eyes_both | no sponge ]\n\n\nlate right [ Player_tl sponge_thin no face ] -> [ player_tl sponge_thin face_normal_eye_l ]\nlate right [ Player_tl sponge_thick no face ] -> [ player_tl sponge_thick face_pressed_eye_l ]\n\nlate right [ Player_tr sponge_thin no face ] -> [ player_tr sponge_thin face_normal_eye_r ]\nlate right [ Player_tr sponge_thick no face ] -> [ player_tr sponge_thick face_pressed_eye_r ]\n\nlate right [player_bl sponge_thin no face | player_Br sponge_thin no face ] -> [player_bl sponge_thin face_normal_mouth_l | player_Br sponge_thin face_normal_mouth_r ]\n\nlate right [ player_bl sponge no face | no sponge ] -> [ player_bl sponge face_pressed_mouth |]\nlate left [ player_br sponge no face | no sponge ] -> [ player_br sponge face_pressed_mouth |]\n\nlate [ player_bl sponge_thick no face ] -> [ player_bl sponge_thick face_pressed_horizont_full_l ]\nlate [ player_bl sponge_thin no face ] -> [ player_bl sponge_thin face_normal_mouth_l ]\n\n\nlate [ player_br sponge_thick no face ] -> [ player_br sponge_thick face_pressed_horizont_full_r ]\nlate [ player_br sponge_thin no face ] -> [ player_br sponge_thin face_normal_mouth_r ]\n\n(place lights on fulfilled targets)\nlate [targetlight]->[]\nlate [crate Target ] -> [ crate target targetlight]\n\n\nlate [ forcesponge sponge_thick ]->cancel\nlate [forcesponge]->[]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 10 : \"I am yellow.\"\n\n(p.easy)\n,,,,,,,,#####\n#########...#\n#oo.........#\n#oozxzxas.qw#\n###cbcbdf.er#\n,,#.........#\n,,#######...#\n,,,,,,,,#####\n\n\n\n\nmessage Level 2 of 10 : \"You can sqeeze me.\"\n\n(pretty easy, but fun?)\n,,,,,,,,#####\n,,,,,,###...#\n#######.....#\n#..,..ooqw..#\n#.....ooer.##\n#.as..##oo.#,\n#.df..##oo##,\n#####.....#,,\n,,,,##....#,,\n,,,,,#as..#,,\n,,,,,#df..#,,\n,,,,,#....#,,\n,,,,,######,,\n\nmessage Level 3 of 10 : \"It doesn't hurt at all.\"\n########\n#......#\n#.##qw.#\n#.##er.#\n#.aszx.#\n#.dfcb.#\n#.oozx.#\n#.oocb.#\n#......#\n########\n\n\nmessage Level 4 of 10 : \"I like to make the lights go on.\"\n(borderline not cute but tolerable)\n\n######,,,,\n#oo..##,,,\n#oo...##,,\n#qwasas##,\n#erdfdf.##\n###......#\n,,##.....#\n,,,##....#\n,,,,##...#\n,,,,,##oo#\n,,,,,,#oo#\n,,,,,,####\n\n\nmessage Level 5 of 10 : \"It's dark here on the seabed.\"\n\n(too like original/)\n,,######,,,,\n###....#####\n#.......as.#\n#.......df.#\n#.#....#as.#\n#oo..oo#df.#\n#oo..oo#qw.#\n########er.#\n,,,,,,,#####\n\nmessage Level 6 of 10 : \"I wonder what colour my eyes are.\"\n(ok not too hard)\n,,,######\n,,##....#\n,,#.zx..#\n###.cb..#\n#.asooqw#\n#.dfooer#\n#.......#\n#########\n\n\n\n\n\nmessage Level 7 of 10 : \"Sometimes corpses fall down from the sky.\"\n\n(fine. slightly tricky)\n#####,,,\n#.oo#,,,\n#.oo#,,,\n#...#,,,\n#...#,,,\n#...####\n#zx....#\n#cb....#\n#...as.#\n#...df.#\n#...####\n#...#,,,\n#qw.#,,,\n#er.#,,,\n#####,,,\n\n\nmessage Level 8 of 10 : \"The lights twinkle as if to say 'Thank you, spongey!' \"\n(p ok! not super easy)\n,,,#########\n,,,#.ooooqw#\n,,,#.ooooer#\n,,,#.asas..#\n,,,#.dfdf..#\n#####..#####\n#......###,,\n#........#,,\n#..#.....#,,\n#.....#..#,,\n#........#,,\n##########,,\n\n\nmessage Level 9 of 10 : \"Am I the only yellow thing in the universe?\"\n(I like this one)\n,,,,###########\n,,,##...#...oo#\n,,##as......oo#\n,##.df#...qw..#\n##....#...er..#\n#.............#\n#...###..zx...#\n#....##..cb...#\n##....##......#\n,##....###.#..#\n,,##.......#..#\n,,,##.........#\n,,,,#####.....#\n,,,,,,,,###..##\n,,,,,,,,,,####,\n\n\nmessage Level 10 of 10 : \"It's lonely, here on the seabed.\"\n(fine/hardosh)\n.########.\n###.oo..##\n###.oo...#\n#..asas..#\n#oodfdfoo#\n#ooasasoo#\n#..dfdfqw#\n#...oo.er#\n##..oo..##\n.########.\n\nmessage The End : \"I hope I was a good sponge. Was I a good sponge?\"\n\n(\n########\n#......#\n#...as.#\n#..#df.#\n#..as..#\n##.df..#\n#aszxo.#\n#dfcbqw#\n#....er#\n########\n\n########\n#......#\n#......#\n#......#\n#..as..#\n##.df..#\n#aszxo.#\n#dfcbqw#\n#....er#\n########\n)\n\n\n(\n\n################\n#oo.....,....oo#\n#oo..........oo#\n#..##..as..##..#\n#..##..df..##..#\n#.....####.....#\n#....##..##....#\n#..as#....#as..#\n#..df#....#df..#\n#....##..##....#\n#.....####.....#\n#..##..as..##..#\n#..##..df..##..#\n#oo......qw..oo#\n#oo......er..oo#\n################\n\n############\n#..........#\n#..,..ooqw.#\n#.....ooer.#\n#.as..##oo.#\n#.df..##oo.#\n#####......#\n....##.....#\n.....#as...#\n.....#df...#\n.....#.....#\n.....#######\n\n\n)\n\n(\n(ok? doesn't involve fancy logic, just pushign things around, but that's ok sometimes?)\n.########.\n##......##\n#...oo.qw#\n#..axzser#\n#.ocfdbo.#\n#.ozsaxo.#\n#..dbcf..#\n#...oo...#\n##......##\n.########.\n)\n\n\n\n(\n(too easy)\n.########.\n##..oo..##\n#...oo...#\n#..asas..#\n#oodfdfoo#\n#ooasasoo#\n#..dfdfqw#\n#...oo.er#\n##..oo..##\n.########.\n\n)\n\n\n\n(above level is just better version of this even if uglier)\n(\n################\n#..............#\n#......qw......#\n#......er......#\n#..............#\n#......as......#\n#......df......#\n#......##......#\n#oo..........oo#\n#oo....as....oo#\n###...#df#...###\n,,#..........#,,\n,,#...#..#...#,,\n,,#...#..#...#,,\n,,#..##..##..#,,\n,,##.##..##.##,,\n,,,#.##..##.#,,,\n,,,#........#,,,\n,,,#........#,,,\n,,,##########,,,\n)\n",[2,2,2,3,2,1,1,1,0,0,1,1,1,2,2,3,2,1,1,1,3,1,2,2,3,3,2,3,0,1,0,1,1,0,0,0,3,0,0,0,0,1,1,0,1,2,2,3,0,1,2,2,1,2,1,2,3,0,3,3,3,0,3,3,2,2,2,2,1,1,0,0,3,0,0,1,1],"background2:0,0,0,0,background1 wall:1,1,1,1,1,0,0,0,0,0,0,\n0,0,0,1,1,background1:2,2,2,1,1,0,0,0,0,0,\n0,0,1,1,2,2,2,2,2,1,1,0,0,0,0,\n0,1,1,2,2,2,2,2,2,2,1,1,0,0,0,\n1,1,2,2,background1 crate_tl:3,background1 crate_bl:4,1,2,2,2,2,1,1,0,0,\n1,2,2,2,background1 crate_tr:5,background1 crate_br:6,1,1,2,2,2,2,1,0,0,\n1,2,2,background1 player_tl wall:7,background1 player_bl wall:8,2,1,1,1,2,2,2,1,0,0,\n1,2,2,background1 face_pressed_eyes_both player_tr skin_tr_tight sponge_ok sponge_thick:9,background1 face_pressed_mouth player_br skin_br_tight sponge_ok sponge_thick:10,2,2,2,1,1,2,2,1,0,0,\n1,1,2,2,2,2,2,2,2,1,2,2,1,1,0,\n1,2,2,2,2,2,background1 target:11,11,2,1,2,2,2,1,0,\n1,2,2,2,2,2,11,11,2,2,2,2,2,1,1,\n1,2,2,2,2,2,2,3,4,1,1,2,2,2,1,\n1,11,11,2,2,2,2,5,6,2,2,2,2,2,1,\n1,11,11,2,2,2,2,2,2,2,2,2,2,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,\n",17,"1627894176777.0325"] + "The sponge what lights up the seafloor", + ["title The sponge what lights up the seafloor\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\n( verbose_logging )\n\nbackground_color #097ca9\n\ntext_color black\nnoaction\n========\nOBJECTS\n========\n\nBackground1\n#097ca9 #026f9a\n00000\n00000\n00100\n00000\n00000\n\n\nBackground2\n#097ca9 #026f9a\n00000\n00000\n00000\n00000\n00000\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\n#005373 #0a6284\n00000\n00000\n00000\n00000\n00000\n\n\nPlayer_tl\npink red\n01111\n1....\n1....\n1....\n1....\n\nPlayer_tr\npink red\n11110\n....1\n....1\n....1\n....1\n\nPlayer_bl\npink red\n1....\n1....\n1....\n1....\n01111\n\nPlayer_br\npink red\n....1\n....1\n....1\n....1\n11110\n\nsponge_thick\nyellow\n.000.\n00000\n00000\n00000\n.000.\n\nsponge_thin\nyellow\n.000.\n00000\n00000\n00000\n.000.\n\nCrate_tl \n#b685b5 #8a4288\n00000\n01111\n01111\n01111\n01111\n\nCrate_tr \n#b685b5 #8a4288\n00000\n11110\n11110\n11110\n11110\n\nCrate_bl \n#b685b5 #8a4288\n01111\n01111\n01111\n01111\n00000\n\nCrate_br \n#b685b5 #8a4288\n11110\n11110\n11110\n11110\n00000\n\nsponge_ok\n#ff00ff\n0....\n.....\n.....\n.....\n.....\n\ntargetlight\n#83e5f9 #27aeca\n.....\n.....\n..0..\n.....\n.....\n\nskin_tl_loose \n#d5d156 #d2b140 #af8c18\n.0000\n01212\n02121\n01212\n02121\n\n\nskin_tr_loose\n#d5d156 #d2b140 #af8c18\n0000.\n12120\n21210\n12120\n21210\n\nskin_bl_loose\n#d5d156 #d2b140 #af8c18\n01212\n02121\n01212\n02121\n.0000\n\nskin_br_loose\n#d2b140 #af8c18 #d5d156\n01012\n10102\n01012\n10102\n2222.\n\n\n\nskin_tl_tight\n#d5d156 #9b7907\n.0000\n01111\n01111\n01111\n01111\n\nskin_tr_tight\n#d5d156 #9b7907\n0000.\n11110\n11110\n11110\n11110\n\nskin_bl_tight\n#d5d156 #9b7907\n01111\n01111\n01111\n01111\n.0000\n\nskin_br_tight\n#9b7907 #d5d156\n00001\n00001\n00001\n00001\n1111.\n\nskin_n\n#d5d156\n00000\n.....\n.....\n.....\n.....\n\nskin_s\n#d5d156\n.....\n.....\n.....\n.....\n00000\n\nskin_e\n#d5d156\n....0\n....0\n....0\n....0\n....0\n\nskin_w\n#d5d156\n0....\n0....\n0....\n0....\n0....\n\nface_pressed_eye_l\n#ffffff #639bff\n.....\n..01.\n..00.\n.....\n.....\n\nface_pressed_eye_r\n#ffffff #639bff\n.....\n.01..\n.00..\n.....\n.....\n\nface_normal_eye_l\n#ffffff #639bff\n.....\n.....\n..01.\n..00.\n.....\n\n\nface_normal_eye_r\n#ffffff #639bff\n.....\n.....\n.01..\n.00..\n.....\n\nface_normal_mouth_l\n#000000\n.....\n...00\n....0\n.....\n.....\n\n\nface_normal_mouth_r\n#000000\n.....\n00...\n0....\n.....\n.....\n\nface_pressed_mouth\n#000000\n.....\n..0..\n..0..\n.....\n.....\n\nface_pressed_eyes_both\n#ffffff #639bff #097ca9\n.....\n.....\n01.01\n00.00\n.....\n\n\nface_pressed_horizont_full_l\n#ffffff #639bff #000000\n.....\n.00..\n.01.2\n....2\n.....\n\n\nface_pressed_horizont_full_r\n#ffffff #000000 #639bff\n.....\n..00.\n1.20.\n1....\n.....\n\nforcesponge\ntransparent\n\nhalttag\ntransparent\n\n=======\nLEGEND\n=======\n\nface = face_pressed_eye_l or face_pressed_eye_r or face_normal_eye_l or face_normal_eye_r or face_normal_mouth_l or face_normal_mouth_r or face_pressed_mouth or face_pressed_eyes_both or face_pressed_horizont_full_l or face_pressed_horizont_full_r\nplayer = Player_tl or Player_tr or Player_bl or Player_br\ncrate = Crate_tl or Crate_tr or Crate_bl or Crate_br\nsponge = sponge_thick or sponge_thin \nobstacle = sponge or wall or Crate\n. = Background1\n, = Background2\n# = Wall and Background1\nq = Player_tl and sponge_thin and Background1\nw = Player_tr and sponge_thin and Background1\ne = Player_bl and sponge_thin and Background1\nr = player_br and sponge_thin and Background1\nO = Target and Background1\nz = crate_tl and Target and Background1\nx = crate_tr and Target and Background1\nc = crate_bl and Target and Background1\nb = Crate_br and Target and Background1\na = Crate_tl and Background1\ns = Crate_tr and Background1\nd = Crate_bl and Background1\nf = Crate_br and Background1\n\nskin_flesh = skin_tl_loose or skin_tr_loose or skin_bl_loose or skin_br_loose or skin_tl_tight or skin_tr_tight or skin_bl_tight or skin_br_tight \n\nskin_barrier = skin_n or skin_s or skin_e or skin_W\n\n\nskin = skin_flesh or skin_Barrier\nbackground = Background1 or Background2\n=======\nSOUNDS\n=======\n\nCrate MOVE 2330507\nstartlevel 93226500\nendlevel 74584306\n================\nCOLLISIONLAYERS\n================\n\nplayer\nsponge_ok\n\n\nBackground1, Background2\n\nsponge, Wall, Crate\n\nTarget\n\nskin_flesh\nskin_n\nskin_s\nskin_e\nskin_w\n\n\nface\ntargetlight\n\nforcesponge\nhalttag\n\n======\nRULES\n======\n\n[moving player] -> again\n\n\n(drawing code begin)\n(\nright [action player] [ Player_tl | ] -> [action player] [ player_tl | Player_tr sponge_thin ]\ndown [action player] [ player_tl | ] -> [action player] [ player_tl | Player_bl sponge_thin]\ndown [action player] [ player_tr | ] -> [action player] [ player_tr | Player_br sponge_thin]\n\nright [action player] [ Crate_tl target| no Crate ] -> [action player] [ Crate_tl target| Crate_tr target ]\ndown [action player] [ Crate_tl target| no Crate] -> [action player] [ Crate_tl target| Crate_bl target]\ndown [action player] [ Crate_tr target|no Crate ] -> [action player] [ Crate_tr target| Crate_br target]\n\nright [action player] [ Crate_tl no target| no Crate ] -> [action player] [ Crate_tl no target| Crate_tr ]\ndown [action player] [ Crate_tl no target| no Crate] -> [action player] [ Crate_tl no target| Crate_bl ]\ndown [action player] [ Crate_tr no target|no Crate ] -> [action player] [ Crate_tr no target| Crate_br ]\n)\n(drawing code end)\n\n[sponge_ok]->[]\n[moving player sponge] -> [ moving player moving sponge]\n\n[ > sponge | Crate ] -> [ > sponge | > Crate ]\n\n\n(expanding sponge applies force)\n[ stationary player ] [ sponge_thick | crate player ] ->[ stationary player ] [ sponge_thick forcesponge| > crate player ]\n\n(propagate movements)\nright [moving Crate_tl | stationary Crate_tr ] -> [moving Crate_tl | moving Crate_tr ]\n+ right [ stationary Crate_tl | moving Crate_tr ] -> [moving Crate_tl | moving Crate_tr ] \n+ right [moving Crate_bl | stationary Crate_br ] -> [moving Crate_bl | moving Crate_br ] \n+ right [ stationary Crate_bl | moving Crate_br ] -> [moving Crate_bl | moving Crate_br ] \n\n+ down [ moving crate_tl | stationary crate_bl ] -> [ moving crate_tl | moving crate_bl ] \n+ down [ stationary crate_tl | moving crate_bl ] -> [ moving crate_tl | moving crate_bl ]\n+ down [ moving crate_tr | stationary crate_br ] -> [ moving crate_tr | moving crate_br ] \n+ down [ stationary crate_tr | moving crate_br ] -> [ moving crate_tr | moving crate_br ]\n\n+ [ > crate | stationary crate ] -> [ > crate | > crate ]\n\n\n(unpropagate movements)\n\n[ > crate | stationary obstacle ] -> [ crate | obstacle ]\n+ right [moving Crate_tl | stationary Crate_tr ] -> [ Crate_tl | Crate_tr ]\n+ right [ stationary Crate_tl | moving Crate_tr ] -> [ Crate_tl | Crate_tr ] \n+ right [moving Crate_bl | stationary Crate_br ] -> [ Crate_bl | Crate_br ] \n+ right [ stationary Crate_bl | moving Crate_br ] -> [ Crate_bl | Crate_br ] \n\n+ down [ moving crate_tl | stationary crate_bl ] -> [ crate_tl | crate_bl ] \n+ down [ stationary crate_tl | moving crate_bl ] -> [ crate_tl | crate_bl ]\n+ down [ moving crate_tr | stationary crate_br ] -> [ crate_tr | crate_br ] \n+ down [ stationary crate_tr | moving crate_br ] -> [ crate_tr | crate_br ]\n\n(add halt tag to allcrates)\n[moving crate]->[moving crate halttag]\n(remove halttags along propagation)\n[ sponge | crate halttag ] -> [ sponge | crate no halttag ]\n\n+ right [no halttag Crate_tl | halttag Crate_tr ] -> [ Crate_tl | Crate_tr ]\n+ right [ halttag Crate_tl | no halttag Crate_tr ] -> [ Crate_tl | Crate_tr ] \n+ right [no halttag Crate_bl | halttag Crate_br ] -> [ Crate_bl | Crate_br ] \n+ right [ halttag Crate_bl | no halttag Crate_br ] -> [ Crate_bl | Crate_br ] \n\n+ down [ no halttag crate_tl | halttag crate_bl ] -> [ crate_tl | crate_bl ] \n+ down [ halttag crate_tl | no halttag crate_bl ] -> [ crate_tl | crate_bl ]\n+ down [ no halttag crate_tr | halttag crate_br ] -> [ crate_tr | crate_br ] \n+ down [ halttag crate_tr | no halttag crate_br ] -> [ crate_tr | crate_br ]\n\n+ [ > crate no halttag | > crate halttag ] -> [ > crate | > crate ]\n\n[moving crate halttag]->[stationary crate]\n\n(squish sponge if necessary)\n[ > sponge_thin | > sponge_thin | stationary obstacle ] -> [ | sponge_thick | stationary obstacle ]\n\n[ no sponge | > sponge_thick | no sponge no obstacle ] -> [ | sponge_thin | sponge_thin ]\nlate [ sponge no player ] -> cancel\n\nlate [ sponge_thick player | no obstacle player] -> [ sponge_thin player | sponge_thin player ]\n\nlate [ sponge_thick | no sponge player ] -> [sponge_thick sponge_ok | player ]\n\nlate [sponge_thick no sponge_ok ]-> cancel\n\n(draw skin)\nlate [skin]->[]\nlate [Player_tl sponge_thick ] -> [Player_tl sponge_thick skin_tl_tight ]\nlate [Player_tr sponge_thick ] -> [Player_tr sponge_thick skin_tr_tight ]\nlate [Player_bl sponge_thick ] -> [Player_bl sponge_thick skin_bl_tight ]\nlate [Player_br sponge_thick ] -> [Player_br sponge_thick skin_br_tight ]\n\nlate [Player_tl sponge_thin ] -> [Player_tl sponge_thin skin_tl_loose ]\nlate [Player_tr sponge_thin ] -> [Player_tr sponge_thin skin_tr_loose ]\nlate [Player_bl sponge_thin ] -> [Player_bl sponge_thin skin_bl_loose ]\nlate [Player_br sponge_thin ] -> [Player_br sponge_thin skin_br_loose ]\n\nlate up [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_n | player no sponge ]\nlate down [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_s | player no sponge ]\nlate left [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_w | player no sponge ]\nlate right [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_e | player no sponge ]\n\n(draw face (eyes/mouth))\nlate [face]->[]\n\nlate right [ sponge_thick no face | sponge_thick no face ] -> [ sponge_thick face_pressed_horizont_full_l | sponge_thick face_pressed_horizont_full_r]\n\nlate down [ sponge_thick no face | sponge_thick no face ] -> [ sponge_thick face_pressed_eyes_both | sponge_thick face_pressed_mouth]\n\nlate right [ player_tl sponge_thick | no sponge ] -> [ player_tl sponge_thick face_pressed_eyes_both | no sponge ]\nlate left [ player_tr sponge_thick | no sponge ] -> [ player_tr sponge_thick face_pressed_eyes_both | no sponge ]\n\n\nlate right [ Player_tl sponge_thin no face ] -> [ player_tl sponge_thin face_normal_eye_l ]\nlate right [ Player_tl sponge_thick no face ] -> [ player_tl sponge_thick face_pressed_eye_l ]\n\nlate right [ Player_tr sponge_thin no face ] -> [ player_tr sponge_thin face_normal_eye_r ]\nlate right [ Player_tr sponge_thick no face ] -> [ player_tr sponge_thick face_pressed_eye_r ]\n\nlate right [player_bl sponge_thin no face | player_Br sponge_thin no face ] -> [player_bl sponge_thin face_normal_mouth_l | player_Br sponge_thin face_normal_mouth_r ]\n\nlate right [ player_bl sponge no face | no sponge ] -> [ player_bl sponge face_pressed_mouth |]\nlate left [ player_br sponge no face | no sponge ] -> [ player_br sponge face_pressed_mouth |]\n\nlate [ player_bl sponge_thick no face ] -> [ player_bl sponge_thick face_pressed_horizont_full_l ]\nlate [ player_bl sponge_thin no face ] -> [ player_bl sponge_thin face_normal_mouth_l ]\n\n\nlate [ player_br sponge_thick no face ] -> [ player_br sponge_thick face_pressed_horizont_full_r ]\nlate [ player_br sponge_thin no face ] -> [ player_br sponge_thin face_normal_mouth_r ]\n\n(place lights on fulfilled targets)\nlate [targetlight]->[]\nlate [crate Target ] -> [ crate target targetlight]\n\n\nlate [ forcesponge sponge_thick ]->cancel\nlate [forcesponge]->[]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 10 : \"I am yellow.\"\n\n(p.easy)\n,,,,,,,,#####\n#########...#\n#oo.........#\n#oozxzxas.qw#\n###cbcbdf.er#\n,,#.........#\n,,#######...#\n,,,,,,,,#####\n\n\n\n\nmessage Level 2 of 10 : \"You can sqeeze me.\"\n\n(pretty easy, but fun?)\n,,,,,,,,#####\n,,,,,,###...#\n#######.....#\n#..,..ooqw..#\n#.....ooer.##\n#.as..##oo.#,\n#.df..##oo##,\n#####.....#,,\n,,,,##....#,,\n,,,,,#as..#,,\n,,,,,#df..#,,\n,,,,,#....#,,\n,,,,,######,,\n\nmessage Level 3 of 10 : \"It doesn't hurt at all.\"\n########\n#......#\n#.##qw.#\n#.##er.#\n#.aszx.#\n#.dfcb.#\n#.oozx.#\n#.oocb.#\n#......#\n########\n\n\nmessage Level 4 of 10 : \"I like to make the lights go on.\"\n(borderline not cute but tolerable)\n\n######,,,,\n#oo..##,,,\n#oo...##,,\n#qwasas##,\n#erdfdf.##\n###......#\n,,##.....#\n,,,##....#\n,,,,##...#\n,,,,,##oo#\n,,,,,,#oo#\n,,,,,,####\n\n\nmessage Level 5 of 10 : \"It's dark here on the seabed.\"\n\n(too like original/)\n,,######,,,,\n###....#####\n#.......as.#\n#.......df.#\n#.#....#as.#\n#oo..oo#df.#\n#oo..oo#qw.#\n########er.#\n,,,,,,,#####\n\nmessage Level 6 of 10 : \"I wonder what colour my eyes are.\"\n(ok not too hard)\n,,,######\n,,##....#\n,,#.zx..#\n###.cb..#\n#.asooqw#\n#.dfooer#\n#.......#\n#########\n\n\n\n\n\nmessage Level 7 of 10 : \"Sometimes corpses fall down from the sky.\"\n\n(fine. slightly tricky)\n#####,,,\n#.oo#,,,\n#.oo#,,,\n#...#,,,\n#...#,,,\n#...####\n#zx....#\n#cb....#\n#...as.#\n#...df.#\n#...####\n#...#,,,\n#qw.#,,,\n#er.#,,,\n#####,,,\n\n\nmessage Level 8 of 10 : \"The lights twinkle as if to say 'Thank you, spongey!' \"\n(p ok! not super easy)\n,,,#########\n,,,#.ooooqw#\n,,,#.ooooer#\n,,,#.asas..#\n,,,#.dfdf..#\n#####..#####\n#......###,,\n#........#,,\n#..#.....#,,\n#.....#..#,,\n#........#,,\n##########,,\n\n\nmessage Level 9 of 10 : \"Am I the only yellow thing in the universe?\"\n(I like this one)\n,,,,###########\n,,,##...#...oo#\n,,##as......oo#\n,##.df#...qw..#\n##....#...er..#\n#.............#\n#...###..zx...#\n#....##..cb...#\n##....##......#\n,##....###.#..#\n,,##.......#..#\n,,,##.........#\n,,,,#####.....#\n,,,,,,,,###..##\n,,,,,,,,,,####,\n\n\nmessage Level 10 of 10 : \"It's lonely, here on the seabed.\"\n(fine/hardosh)\n.########.\n###.oo..##\n###.oo...#\n#..asas..#\n#oodfdfoo#\n#ooasasoo#\n#..dfdfqw#\n#...oo.er#\n##..oo..##\n.########.\n\nmessage The End : \"I hope I was a good sponge. Was I a good sponge?\"\n\n(\n########\n#......#\n#...as.#\n#..#df.#\n#..as..#\n##.df..#\n#aszxo.#\n#dfcbqw#\n#....er#\n########\n\n########\n#......#\n#......#\n#......#\n#..as..#\n##.df..#\n#aszxo.#\n#dfcbqw#\n#....er#\n########\n)\n\n\n(\n\n################\n#oo.....,....oo#\n#oo..........oo#\n#..##..as..##..#\n#..##..df..##..#\n#.....####.....#\n#....##..##....#\n#..as#....#as..#\n#..df#....#df..#\n#....##..##....#\n#.....####.....#\n#..##..as..##..#\n#..##..df..##..#\n#oo......qw..oo#\n#oo......er..oo#\n################\n\n############\n#..........#\n#..,..ooqw.#\n#.....ooer.#\n#.as..##oo.#\n#.df..##oo.#\n#####......#\n....##.....#\n.....#as...#\n.....#df...#\n.....#.....#\n.....#######\n\n\n)\n\n(\n(ok? doesn't involve fancy logic, just pushign things around, but that's ok sometimes?)\n.########.\n##......##\n#...oo.qw#\n#..axzser#\n#.ocfdbo.#\n#.ozsaxo.#\n#..dbcf..#\n#...oo...#\n##......##\n.########.\n)\n\n\n\n(\n(too easy)\n.########.\n##..oo..##\n#...oo...#\n#..asas..#\n#oodfdfoo#\n#ooasasoo#\n#..dfdfqw#\n#...oo.er#\n##..oo..##\n.########.\n\n)\n\n\n\n(above level is just better version of this even if uglier)\n(\n################\n#..............#\n#......qw......#\n#......er......#\n#..............#\n#......as......#\n#......df......#\n#......##......#\n#oo..........oo#\n#oo....as....oo#\n###...#df#...###\n,,#..........#,,\n,,#...#..#...#,,\n,,#...#..#...#,,\n,,#..##..##..#,,\n,,##.##..##.##,,\n,,,#.##..##.#,,,\n,,,#........#,,,\n,,,#........#,,,\n,,,##########,,,\n)\n", [2, 2, 2, 3, 2, 1, 1, 1, 0, 0, 1, 1, 1, 2, 2, 3, 2, 1, 1, 1, 3, 1, 2, 2, 3, 3, 2, 3, 0, 1, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 1, 1, 0, 1, 2, 2, 3, 0, 1, 2, 2, 1, 2, 1, 2, 3, 0, 3, 3, 3, 0, 3, 3, 2, 2, 2, 2, 1, 1, 0, 0, 3, 0, 0, 1, 1], "background2:0,0,0,0,background1 wall:1,1,1,1,1,0,0,0,0,0,0,\n0,0,0,1,1,background1:2,2,2,1,1,0,0,0,0,0,\n0,0,1,1,2,2,2,2,2,1,1,0,0,0,0,\n0,1,1,2,2,2,2,2,2,2,1,1,0,0,0,\n1,1,2,2,background1 crate_tl:3,background1 crate_bl:4,1,2,2,2,2,1,1,0,0,\n1,2,2,2,background1 crate_tr:5,background1 crate_br:6,1,1,2,2,2,2,1,0,0,\n1,2,2,background1 player_tl wall:7,background1 player_bl wall:8,2,1,1,1,2,2,2,1,0,0,\n1,2,2,background1 face_pressed_eyes_both player_tr skin_tr_tight sponge_ok sponge_thick:9,background1 face_pressed_mouth player_br skin_br_tight sponge_ok sponge_thick:10,2,2,2,1,1,2,2,1,0,0,\n1,1,2,2,2,2,2,2,2,1,2,2,1,1,0,\n1,2,2,2,2,2,background1 target:11,11,2,1,2,2,2,1,0,\n1,2,2,2,2,2,11,11,2,2,2,2,2,1,1,\n1,2,2,2,2,2,2,3,4,1,1,2,2,2,1,\n1,11,11,2,2,2,2,5,6,2,2,2,2,2,1,\n1,11,11,2,2,2,2,2,2,2,2,2,2,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,\n", 17, "1627894176777.0325"] ], [ - "(censored version of NSFW game) Sexual Intercourse", - ["title Sexual Intercourse \nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nbackground_color #4e0606\n\nnoaction\n\nverbose_logging\n(thanks to ggn2 for testing)\n\n========\nOBJECTS\n========\n\nBackground\n#4e0606\n\nWall\n#730b15 #ab2a2a #a82934\n.000.\n00000\n00000\n00000\n.000.\n\n\nwall_n\n#730b15 #a82934\n00010\n...1.\n...1.\n...1.\n.....\n\n\nwall_s\n#730b15 #a82934\n.....\n...1.\n...1.\n...1.\n00010\n\n\nwall_e\n#730b15 #a82934\n....0\n.1111\n....0\n....0\n....0\n\n\nwall_w\n#730b15 #a82934\n0....\n1111.\n0....\n0....\n0....\n\nwall_blot\n#730b15\n.000.\n00000\n00000\n00000\n.000.\n\nwall_blot_ne\n#730b15 #a82934\n.000.\n11100\n00010\n00010\n.001.\n\nwall_blot_ne_sm\n#730b15 #a82934\n.000.\n00100\n00010\n00000\n.000.\n\nTarget\ntransparent pink pink\n01110\n12221\n12221\n12221\n01110\n\n\nCrate\nwhite white white\n00220\n01112\n10220\n01000\n00110\n\n\nplayer_hat\ngreen green green green green\n01110\n23432\n22221\n21111\n21111\n\n\n\n\nPlayer\ngreen green green green green\n01111\n01111\n01111\n01110\n20002\n\n\n\nattachment\ngreen green green green green\n01110\n23341\n23331\n22331\n02220\n\n\nconnection_nw\ngreen green green green green\n0....\n.....\n.....\n.....\n.....\n\n\nconnection_ne\ngreen green green green green\n....0\n.....\n.....\n.....\n.....\n\n\nconnection_sw\ngreen green green green green\n.....\n.....\n.....\n.....\n0....\n\n\nconnection_se\ngreen green green green green\n.....\n.....\n.....\n.....\n....0\n\nholding_domain\n#ff0000\n.....\n.....\n..0..\n.....\n.....\n\nplayer_start_location\ntransparent\n\n=======\nLEGEND\n=======\n\ncanpush = player or player_hat or attachment or Crate\npushable = crate\n\nself = player or player_hat or attachment\n\nobstacle = player or player_hat or attachment or Crate or wall\n\nconnection = connection_nw or connection_ne or connection_sw or connection_se\nconnectable = player or attachment\n\nwall_connection = wall_n or wall_s or wall_e or wall_w or wall_blot or wall_blot_ne or wall_blot_ne_sm\nwall_v = wall_n or wall_s\nwall_h = wall_w or wall_e\n. = Background\n# = Wall\nq = player_hat\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\na = attachment\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 39435507\nendlevel 98112905\nstartlevel 27288509\nsfx0 97643907 (rearrange)\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, player_hat, attachment, Wall, Crate\nwall_n\nwall_s\nwall_e\nwall_W\nwall_blot\nwall_blot_ne\nwall_blot_ne_sm\nholding_domain\nplayer_start_location\n\nconnection_nw\nconnection_ne\nconnection_sw\nconnection_se\n\n======\nRULES\n======\n\n[moving player]->[moving player player_start_location]\n\nright [ Wall no wall_e | wall no wall_w ] -> [ wall wall_e | wall wall_w ]\ndown [ Wall no wall_s | wall no wall_n ] -> [ wall wall_s | wall wall_n ]\n[wall_v wall_h no wall_blot ] -> [ wall_v wall_h wall_blot ]\n[wall_s wall_w no wall_blot_ne ] -> [ wall_s wall_w wall_blot_ne ]\n[wall_s wall_w wall_e ] -> [ wall_s wall_w wall_e no wall_blot_ne ]\n[wall no wall_connection ] -> [ wall wall_blot_ne_sm ]\n\n(editor stuff)\n(\n \n\tdown [no player_hat | action player ] -> [ action player_hat | action player no player_start_location ]\n \n \n\t(Draw holding domain)\n right [ | action player | ] -> [ holding_domain | action player holding_domain | holding_domain ]\n down [ no holding_domain | holding_domain | no holding_domain ] -> [ | holding_domain | holding_domain ]\n\t\n right [action player] [ holding_domain | holding_domain no player | holding_domain ] -> [action player] [ attachment holding_domain | holding_domain | holding_domain attachment ]\n \n [holding_domain]->[]\n)\n(end editor stuff)\n\n\n[ > player ] [ stationary self ] -> [ > player ] [ > self] \n\n[ > canpush | pushable ] -> [ > canpush | > pushable ]\n\n[ > canpush | stationary wall ] -> [ canpush | Wall ]\n[ > canpush | stationary canpush ] -> [ canpush | canpush ]\n[moving player ] [stationary attachment ] -> sfx0\n\n(Draw holding domain)\nlate right [ | player | ] -> [ holding_domain | player holding_domain | holding_domain ]\nlate down [ no holding_domain | holding_domain | no holding_domain ] -> [ | holding_domain | holding_domain ]\n\nlate [ attachment no holding_domain ] -> cancel\nlate [holding_domain]->[]\n\n\nlate down [player_hat | no player ] -> cancel\nlate [ player player_start_location ]->cancel\nlate [ player_start_location]->[]\n\n(cosmetics)\nlate [connection]->[]\nlate up [ connectable | no connectable ] -> [connectable | connection_sw connection_se ]\nlate down [ connectable | no connectable ] -> [connectable | connection_nw connection_ne ]\n\nlate left [ connection_sw | no connectable ] -> [ | ]\nlate left [ connection_nw | no connectable ] -> [ | ]\n\nlate right [ connection_se | no connectable ] -> [ | ]\nlate right [ connection_ne | no connectable ] -> [ | ]\n\nlate right [ | connection_nw ] -> [ connection_ne | connection_nw ]\n+ late right [ connection_ne | ] -> [ connection_ne | connection_nw ]\n\n+ late right [ | connection_sw ] -> [ connection_se | connection_sw ]\n+ late right [ connection_se | ] -> [ connection_se | connection_sw ]\n\n+ late down [ | connection_nw ] -> [ connection_sw | connection_nw ]\n+ late down [ connection_sw| ] -> [ connection_sw | connection_nw ]\n\n+ late down [ | connection_ne ] -> [ connection_se | connection_ne ]\n+ late down [ connection_se| ] -> [ connection_se | connection_ne ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 12 \n(chill level 2/3? not too hard)\n############\n#..........#\n#..........#\n#..........#\n#..........#\n#..o.o.....#\n##.#.#.##..#\n#.......#..#\n#..*.*.....#\n#..........#\n#...q......#\n#...p...####\n#..a.a..#...\n#.......#...\n#########...\n\nmessage Level 2 of 12 \n\n(not tooo hard but relies on shape manipulation)\n.#####....\n.#...#####\n.#...#...#\n##.......#\n#o....*..#\n#o...#*..#\n###..#.q.#\n..####.p.#\n.....#a.a#\n.....#####\n\n\nmessage Level 3 of 12 \n\n(ok possible first level)\n.###....\n.#o#....\n.#.#....\n.#.#####\n.#.....#\n.#.....#\n.#.....#\n##..*..#\n#.q.####\n#.p.#...\n#a.a#...\n#####...\n\n\n\nmessage Level 4 of 12 \n(super chill/not hard. don't put too early because assumes literacy, but don't leave too late)\n#######\n#ooooo#\n#.....#\n#..*..#\n#.*q*.#\n#.*p*.#\n#*a*a*#\n#.*.*.#\n#.....#\n#ooooo#\n#######\n\n\nmessage Level 5 of 12 \n\n(not tooo hard maybe? but p. good)\n.####..\n.#..##.\n.#..o#.\n.#...#.\n.#.@.#.\n.#.@.#.\n.#.@.#.\n##.*.##\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n#######\n\n\nmessage Level 6 of 12 \n(not hard. not too much manipulation)\n##########\n#........#\n#........#\n#..o.*o..#\n#..*.....#\n#.....*..#\n#..o*.oq.#\n#......p.#\n#.....a.a#\n##########\n\n\nmessage Level 7 of 12 \n\n(p. ok? medium-solvable, not hard)\n......#######\n#######.....#\n#.....#.....#\n#...........#\n#...**......#\n#.q.*.#ooo..#\n#.p...#######\n#a.a..#......\n#######......\n\n\nmessage Level 8 of 12 \n\n(enjoyed solving this - fun process)\n.#######.....\n.#oooq.##....\n.#...p..##...\n.#..a.a..##..\n.###..***.##.\n...##......##\n....##......#\n.....##.....#\n......##....#\n.......######\n\nmessage Level 9 of 12 \n(not too hard, kinda fine)\n.....####..\n.....#o.#..\n.....#o.###\n######....#\n#.q.......#\n#.p.......#\n#a.a.*.*..#\n#..#.#.####\n#......#...\n#......#...\n#......#...\n########...\n\nmessage Level 10 of 12 \n(slightly tricky but fun?)\n\n#########\n#.oo..q.#\n#.....p.#\n#....a.a#\n##**#####\n.#.....#.\n.#.....#.\n.#..#..#.\n.#.....#.\n.#.....#.\n.#.....#.\n.#######.\n\nmessage Level 11 of 12 \n(hardish, but satisfying + thinkthroughable shape manipulation)\n########\n#.#..q.#\n#....p.#\n#...a.a#\n#..#...#\n#..*@..#\n#..o@..#\n#......#\n########\n\nmessage Level 12 of 12 \n(for me super hard but for others possible)\n##########\n#..q.....#\n#..p.....#\n#.a.a....#\n##.*.#*..#\n.#o.o#...#\n.#########\n\nmessage Congratulations! You now know how to make babies!\n\n\n(\n\n....########.\n....#......#.\n....#.oo...#.\n....#.oo.q.#.\n....#....p.#.\n....#...a.a#.\n....##**####.\n.....#**#....\n######..####.\n#..........#.\n#...#......#.\n#.......#..#.\n#..........#.\n######.....#.\n.....#.....#.\n.....#.....#.\n.....#.....#.\n.....#.....#.\n.....#######.\n\n\n############\n#..........#\n#..........#\n#...**.....#\n#.q.*.#ooo.#\n#.p...######\n#a.a..#.....\n#######.....\n\n\n########\n#......#\n#.o.*o.#\n#.*....#\n#...q*.#\n#.o*po.#\n#..a.a.#\n########\n\n########\n#......#\n#.o*o..#\n#.*.*q.#\n#.o*op.#\n#...a.a#\n########\n\n\n.#####.\n.#..o#.\n.#.@.#.\n.#.@.#.\n.#.@.#.\n##.*.##\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n#######\n\n#######\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n##.*.##\n.#.@.#.\n.#.@.#.\n.#..o#.\n.#####.\n\n.....#######\n.....#.....#\n######.....#\n#o......q..#\n#.@@@*..p..#\n#......a.a.#\n######.....#\n.....#.....#\n.....#######\n\n\n##########\n#..q.....#\n#..p.....#\n#.a.a....#\n##.*.#*..#\n#.o.o#...#\n##########\n\n###########\n#...q.....#\n#...p.....#\n#..a.a....#\n#.#.*.#*..#\n#..o.o#...#\n###########\n\n\n..#####....\n###...#####\n#......*..#\n#.....#*..#\n#..#..#.q.#\n#..o.o#.p.#\n#######a.a#\n......#####\n\n########\n#......#\n#..q...#\n#..p...#\n#.a.a..#\n#......#\n#..#...#\n#..*@..#\n#..o@..#\n#......#\n########\n\n#######\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n#..#..#\n#..*@.#\n#..o@.#\n#.....#\n#######\n\n\n##########\n#........#\n#.#...q..#\n#.*@..p..#\n#.o@.a.a.#\n#........#\n##########\n\n\n################\n#..............#\n#........#.....#\n#..............#\n#..#......o....#\n#...*..q...o...#\n#...*..p.......#\n#.....a.a...#..#\n#..............#\n################\n\n\n#########\n#.......#\n#.......#\n#.q.....#\n#.p.....#\n#a.a....#\n#########\n\n\n###########\n#.........#\n#.........#\n#.........#\n#..q......#\n#..p......#\n#.a.a.....#\n#.........#\n###########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n)\n(\n====\nTRANSFORMATION\n====\n\n\nchoose 5 option 0.5 [no obstacle ]->[wall]\nchoose 2 [no obstacle]->[crate]\nchoose 2 [ no wall no player no player_hat no attachment ] -> [target]\n)\n",[0,0,3,2,3,0,0,0,2,2,2,3,0,3,3,0,0,0,3,0,1,1,0,0,0,1,2,2,3,1,1,1,2,3,0,0,1,1,2,3,0,3,2,2,0,3,3,3,1,1,2,1,1,0,1,1,2,2,1,1,0,3,3,3,3,2,3,2,2,2,2,3,2,2,3,2,2,1,1,0,1,1,2,1,0,0,2,0,3,2,3,3,2,2,2,3,0,3,3,0,3,0,0,0,0,2,2,1,1,1,1,1,0,0,2,1,1,1,2,1,3,0,0,0,3,1,2,2,3,3,3,3,0,2,3,3,3,3,2,3,3,3,0,1,0,0,3,0,0,1,0,1,1,1,2,1],"background wall wall_blot wall_e wall_s:0,background wall wall_n wall_s:1,1,1,1,1,background wall wall_blot wall_e wall_n wall_s:2,1,1,1,1,1,\n1,1,background wall wall_blot wall_e wall_n:3,background wall wall_e wall_w:4,background:5,5,5,5,5,background wall wall_w:6,background crate:7,5,\n5,5,5,5,5,4,4,5,5,5,5,5,\n5,5,5,5,5,5,5,5,4,4,5,5,\n5,5,background target:8,background wall wall_blot_ne_sm:9,5,5,5,5,5,5,5,4,\n4,5,5,5,5,7,5,5,5,5,5,5,\n5,5,4,4,5,5,5,background player_hat:10,background connection_se player target:11,background connection_ne wall wall_blot_ne_sm:12,5,5,\n5,5,5,5,5,4,4,5,5,5,5,attachment background connection_sw:13,\nattachment background connection_nw:14,5,5,5,5,5,5,5,4,4,5,5,\n5,5,5,background wall wall_e:15,5,5,5,5,5,5,5,4,\n4,5,5,5,5,5,background wall wall_blot wall_blot_ne wall_s wall_w:16,background wall wall_n:17,5,5,5,0,\n1,1,background wall wall_blot wall_n wall_w:18,4,5,5,5,5,5,5,5,5,\n5,5,4,5,5,5,4,5,5,5,5,5,\n5,5,5,5,5,4,5,5,5,16,1,1,\n1,1,1,1,1,1,1,1,18,5,5,5,\n",1,"1645642688116.959"] + "(censored version of NSFW game) Sexual Intercourse", + ["title Sexual Intercourse \nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nbackground_color #4e0606\n\nnoaction\n\nverbose_logging\n(thanks to ggn2 for testing)\n\n========\nOBJECTS\n========\n\nBackground\n#4e0606\n\nWall\n#730b15 #ab2a2a #a82934\n.000.\n00000\n00000\n00000\n.000.\n\n\nwall_n\n#730b15 #a82934\n00010\n...1.\n...1.\n...1.\n.....\n\n\nwall_s\n#730b15 #a82934\n.....\n...1.\n...1.\n...1.\n00010\n\n\nwall_e\n#730b15 #a82934\n....0\n.1111\n....0\n....0\n....0\n\n\nwall_w\n#730b15 #a82934\n0....\n1111.\n0....\n0....\n0....\n\nwall_blot\n#730b15\n.000.\n00000\n00000\n00000\n.000.\n\nwall_blot_ne\n#730b15 #a82934\n.000.\n11100\n00010\n00010\n.001.\n\nwall_blot_ne_sm\n#730b15 #a82934\n.000.\n00100\n00010\n00000\n.000.\n\nTarget\ntransparent pink pink\n01110\n12221\n12221\n12221\n01110\n\n\nCrate\nwhite white white\n00220\n01112\n10220\n01000\n00110\n\n\nplayer_hat\ngreen green green green green\n01110\n23432\n22221\n21111\n21111\n\n\n\n\nPlayer\ngreen green green green green\n01111\n01111\n01111\n01110\n20002\n\n\n\nattachment\ngreen green green green green\n01110\n23341\n23331\n22331\n02220\n\n\nconnection_nw\ngreen green green green green\n0....\n.....\n.....\n.....\n.....\n\n\nconnection_ne\ngreen green green green green\n....0\n.....\n.....\n.....\n.....\n\n\nconnection_sw\ngreen green green green green\n.....\n.....\n.....\n.....\n0....\n\n\nconnection_se\ngreen green green green green\n.....\n.....\n.....\n.....\n....0\n\nholding_domain\n#ff0000\n.....\n.....\n..0..\n.....\n.....\n\nplayer_start_location\ntransparent\n\n=======\nLEGEND\n=======\n\ncanpush = player or player_hat or attachment or Crate\npushable = crate\n\nself = player or player_hat or attachment\n\nobstacle = player or player_hat or attachment or Crate or wall\n\nconnection = connection_nw or connection_ne or connection_sw or connection_se\nconnectable = player or attachment\n\nwall_connection = wall_n or wall_s or wall_e or wall_w or wall_blot or wall_blot_ne or wall_blot_ne_sm\nwall_v = wall_n or wall_s\nwall_h = wall_w or wall_e\n. = Background\n# = Wall\nq = player_hat\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\na = attachment\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 39435507\nendlevel 98112905\nstartlevel 27288509\nsfx0 97643907 (rearrange)\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, player_hat, attachment, Wall, Crate\nwall_n\nwall_s\nwall_e\nwall_W\nwall_blot\nwall_blot_ne\nwall_blot_ne_sm\nholding_domain\nplayer_start_location\n\nconnection_nw\nconnection_ne\nconnection_sw\nconnection_se\n\n======\nRULES\n======\n\n[moving player]->[moving player player_start_location]\n\nright [ Wall no wall_e | wall no wall_w ] -> [ wall wall_e | wall wall_w ]\ndown [ Wall no wall_s | wall no wall_n ] -> [ wall wall_s | wall wall_n ]\n[wall_v wall_h no wall_blot ] -> [ wall_v wall_h wall_blot ]\n[wall_s wall_w no wall_blot_ne ] -> [ wall_s wall_w wall_blot_ne ]\n[wall_s wall_w wall_e ] -> [ wall_s wall_w wall_e no wall_blot_ne ]\n[wall no wall_connection ] -> [ wall wall_blot_ne_sm ]\n\n(editor stuff)\n(\n \n\tdown [no player_hat | action player ] -> [ action player_hat | action player no player_start_location ]\n \n \n\t(Draw holding domain)\n right [ | action player | ] -> [ holding_domain | action player holding_domain | holding_domain ]\n down [ no holding_domain | holding_domain | no holding_domain ] -> [ | holding_domain | holding_domain ]\n\t\n right [action player] [ holding_domain | holding_domain no player | holding_domain ] -> [action player] [ attachment holding_domain | holding_domain | holding_domain attachment ]\n \n [holding_domain]->[]\n)\n(end editor stuff)\n\n\n[ > player ] [ stationary self ] -> [ > player ] [ > self] \n\n[ > canpush | pushable ] -> [ > canpush | > pushable ]\n\n[ > canpush | stationary wall ] -> [ canpush | Wall ]\n[ > canpush | stationary canpush ] -> [ canpush | canpush ]\n[moving player ] [stationary attachment ] -> sfx0\n\n(Draw holding domain)\nlate right [ | player | ] -> [ holding_domain | player holding_domain | holding_domain ]\nlate down [ no holding_domain | holding_domain | no holding_domain ] -> [ | holding_domain | holding_domain ]\n\nlate [ attachment no holding_domain ] -> cancel\nlate [holding_domain]->[]\n\n\nlate down [player_hat | no player ] -> cancel\nlate [ player player_start_location ]->cancel\nlate [ player_start_location]->[]\n\n(cosmetics)\nlate [connection]->[]\nlate up [ connectable | no connectable ] -> [connectable | connection_sw connection_se ]\nlate down [ connectable | no connectable ] -> [connectable | connection_nw connection_ne ]\n\nlate left [ connection_sw | no connectable ] -> [ | ]\nlate left [ connection_nw | no connectable ] -> [ | ]\n\nlate right [ connection_se | no connectable ] -> [ | ]\nlate right [ connection_ne | no connectable ] -> [ | ]\n\nlate right [ | connection_nw ] -> [ connection_ne | connection_nw ]\n+ late right [ connection_ne | ] -> [ connection_ne | connection_nw ]\n\n+ late right [ | connection_sw ] -> [ connection_se | connection_sw ]\n+ late right [ connection_se | ] -> [ connection_se | connection_sw ]\n\n+ late down [ | connection_nw ] -> [ connection_sw | connection_nw ]\n+ late down [ connection_sw| ] -> [ connection_sw | connection_nw ]\n\n+ late down [ | connection_ne ] -> [ connection_se | connection_ne ]\n+ late down [ connection_se| ] -> [ connection_se | connection_ne ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 12 \n(chill level 2/3? not too hard)\n############\n#..........#\n#..........#\n#..........#\n#..........#\n#..o.o.....#\n##.#.#.##..#\n#.......#..#\n#..*.*.....#\n#..........#\n#...q......#\n#...p...####\n#..a.a..#...\n#.......#...\n#########...\n\nmessage Level 2 of 12 \n\n(not tooo hard but relies on shape manipulation)\n.#####....\n.#...#####\n.#...#...#\n##.......#\n#o....*..#\n#o...#*..#\n###..#.q.#\n..####.p.#\n.....#a.a#\n.....#####\n\n\nmessage Level 3 of 12 \n\n(ok possible first level)\n.###....\n.#o#....\n.#.#....\n.#.#####\n.#.....#\n.#.....#\n.#.....#\n##..*..#\n#.q.####\n#.p.#...\n#a.a#...\n#####...\n\n\n\nmessage Level 4 of 12 \n(super chill/not hard. don't put too early because assumes literacy, but don't leave too late)\n#######\n#ooooo#\n#.....#\n#..*..#\n#.*q*.#\n#.*p*.#\n#*a*a*#\n#.*.*.#\n#.....#\n#ooooo#\n#######\n\n\nmessage Level 5 of 12 \n\n(not tooo hard maybe? but p. good)\n.####..\n.#..##.\n.#..o#.\n.#...#.\n.#.@.#.\n.#.@.#.\n.#.@.#.\n##.*.##\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n#######\n\n\nmessage Level 6 of 12 \n(not hard. not too much manipulation)\n##########\n#........#\n#........#\n#..o.*o..#\n#..*.....#\n#.....*..#\n#..o*.oq.#\n#......p.#\n#.....a.a#\n##########\n\n\nmessage Level 7 of 12 \n\n(p. ok? medium-solvable, not hard)\n......#######\n#######.....#\n#.....#.....#\n#...........#\n#...**......#\n#.q.*.#ooo..#\n#.p...#######\n#a.a..#......\n#######......\n\n\nmessage Level 8 of 12 \n\n(enjoyed solving this - fun process)\n.#######.....\n.#oooq.##....\n.#...p..##...\n.#..a.a..##..\n.###..***.##.\n...##......##\n....##......#\n.....##.....#\n......##....#\n.......######\n\nmessage Level 9 of 12 \n(not too hard, kinda fine)\n.....####..\n.....#o.#..\n.....#o.###\n######....#\n#.q.......#\n#.p.......#\n#a.a.*.*..#\n#..#.#.####\n#......#...\n#......#...\n#......#...\n########...\n\nmessage Level 10 of 12 \n(slightly tricky but fun?)\n\n#########\n#.oo..q.#\n#.....p.#\n#....a.a#\n##**#####\n.#.....#.\n.#.....#.\n.#..#..#.\n.#.....#.\n.#.....#.\n.#.....#.\n.#######.\n\nmessage Level 11 of 12 \n(hardish, but satisfying + thinkthroughable shape manipulation)\n########\n#.#..q.#\n#....p.#\n#...a.a#\n#..#...#\n#..*@..#\n#..o@..#\n#......#\n########\n\nmessage Level 12 of 12 \n(for me super hard but for others possible)\n##########\n#..q.....#\n#..p.....#\n#.a.a....#\n##.*.#*..#\n.#o.o#...#\n.#########\n\nmessage Congratulations! You now know how to make babies!\n\n\n(\n\n....########.\n....#......#.\n....#.oo...#.\n....#.oo.q.#.\n....#....p.#.\n....#...a.a#.\n....##**####.\n.....#**#....\n######..####.\n#..........#.\n#...#......#.\n#.......#..#.\n#..........#.\n######.....#.\n.....#.....#.\n.....#.....#.\n.....#.....#.\n.....#.....#.\n.....#######.\n\n\n############\n#..........#\n#..........#\n#...**.....#\n#.q.*.#ooo.#\n#.p...######\n#a.a..#.....\n#######.....\n\n\n########\n#......#\n#.o.*o.#\n#.*....#\n#...q*.#\n#.o*po.#\n#..a.a.#\n########\n\n########\n#......#\n#.o*o..#\n#.*.*q.#\n#.o*op.#\n#...a.a#\n########\n\n\n.#####.\n.#..o#.\n.#.@.#.\n.#.@.#.\n.#.@.#.\n##.*.##\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n#######\n\n#######\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n##.*.##\n.#.@.#.\n.#.@.#.\n.#..o#.\n.#####.\n\n.....#######\n.....#.....#\n######.....#\n#o......q..#\n#.@@@*..p..#\n#......a.a.#\n######.....#\n.....#.....#\n.....#######\n\n\n##########\n#..q.....#\n#..p.....#\n#.a.a....#\n##.*.#*..#\n#.o.o#...#\n##########\n\n###########\n#...q.....#\n#...p.....#\n#..a.a....#\n#.#.*.#*..#\n#..o.o#...#\n###########\n\n\n..#####....\n###...#####\n#......*..#\n#.....#*..#\n#..#..#.q.#\n#..o.o#.p.#\n#######a.a#\n......#####\n\n########\n#......#\n#..q...#\n#..p...#\n#.a.a..#\n#......#\n#..#...#\n#..*@..#\n#..o@..#\n#......#\n########\n\n#######\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n#..#..#\n#..*@.#\n#..o@.#\n#.....#\n#######\n\n\n##########\n#........#\n#.#...q..#\n#.*@..p..#\n#.o@.a.a.#\n#........#\n##########\n\n\n################\n#..............#\n#........#.....#\n#..............#\n#..#......o....#\n#...*..q...o...#\n#...*..p.......#\n#.....a.a...#..#\n#..............#\n################\n\n\n#########\n#.......#\n#.......#\n#.q.....#\n#.p.....#\n#a.a....#\n#########\n\n\n###########\n#.........#\n#.........#\n#.........#\n#..q......#\n#..p......#\n#.a.a.....#\n#.........#\n###########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n)\n(\n====\nTRANSFORMATION\n====\n\n\nchoose 5 option 0.5 [no obstacle ]->[wall]\nchoose 2 [no obstacle]->[crate]\nchoose 2 [ no wall no player no player_hat no attachment ] -> [target]\n)\n", [0, 0, 3, 2, 3, 0, 0, 0, 2, 2, 2, 3, 0, 3, 3, 0, 0, 0, 3, 0, 1, 1, 0, 0, 0, 1, 2, 2, 3, 1, 1, 1, 2, 3, 0, 0, 1, 1, 2, 3, 0, 3, 2, 2, 0, 3, 3, 3, 1, 1, 2, 1, 1, 0, 1, 1, 2, 2, 1, 1, 0, 3, 3, 3, 3, 2, 3, 2, 2, 2, 2, 3, 2, 2, 3, 2, 2, 1, 1, 0, 1, 1, 2, 1, 0, 0, 2, 0, 3, 2, 3, 3, 2, 2, 2, 3, 0, 3, 3, 0, 3, 0, 0, 0, 0, 2, 2, 1, 1, 1, 1, 1, 0, 0, 2, 1, 1, 1, 2, 1, 3, 0, 0, 0, 3, 1, 2, 2, 3, 3, 3, 3, 0, 2, 3, 3, 3, 3, 2, 3, 3, 3, 0, 1, 0, 0, 3, 0, 0, 1, 0, 1, 1, 1, 2, 1], "background wall wall_blot wall_e wall_s:0,background wall wall_n wall_s:1,1,1,1,1,background wall wall_blot wall_e wall_n wall_s:2,1,1,1,1,1,\n1,1,background wall wall_blot wall_e wall_n:3,background wall wall_e wall_w:4,background:5,5,5,5,5,background wall wall_w:6,background crate:7,5,\n5,5,5,5,5,4,4,5,5,5,5,5,\n5,5,5,5,5,5,5,5,4,4,5,5,\n5,5,background target:8,background wall wall_blot_ne_sm:9,5,5,5,5,5,5,5,4,\n4,5,5,5,5,7,5,5,5,5,5,5,\n5,5,4,4,5,5,5,background player_hat:10,background connection_se player target:11,background connection_ne wall wall_blot_ne_sm:12,5,5,\n5,5,5,5,5,4,4,5,5,5,5,attachment background connection_sw:13,\nattachment background connection_nw:14,5,5,5,5,5,5,5,4,4,5,5,\n5,5,5,background wall wall_e:15,5,5,5,5,5,5,5,4,\n4,5,5,5,5,5,background wall wall_blot wall_blot_ne wall_s wall_w:16,background wall wall_n:17,5,5,5,0,\n1,1,background wall wall_blot wall_n wall_w:18,4,5,5,5,5,5,5,5,5,\n5,5,4,5,5,5,4,5,5,5,5,5,\n5,5,5,5,5,4,5,5,5,16,1,1,\n1,1,1,1,1,1,1,1,18,5,5,5,\n", 1, "1645642688116.959"] ], [ - "Attractor Net", - ["title Attractor Net\nauthor increpare\nhomepage www.increpare.com\n\n(require_player_movement)\n\n========\nOBJECTS\n========\n\nBackground\ndarkgray\n\nTarget\n#7eb44a\n00000\n00000\n00000\n00000\n00000\n\n\nWall\n#2c2c2c\n\nplayer1 1\nblue lightblue\n.0000\n01.1.\n0....\n01.1.\n0....\n\nplayer2 2\nblue lightblue\n00000\n.1.1.\n.....\n.1.1.\n.....\n\nplayer3 3\nblue lightblue\n0000.\n.1.10\n....0\n.1.10\n....0\n\nplayer4 4\nblue lightblue\n0....\n01.1.\n0....\n01.1.\n0....\n\nplayer5 5\nlightblue\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nplayer6 6\nlightblue blue\n....1\n.0.01\n....1\n.0.01\n....1\n\nplayer7 7\nblue lightblue\n0....\n01.1.\n0....\n01.1.\n.0000\n\nplayer8 8\nlightblue blue\n.....\n.0.0.\n.....\n.0.0.\n11111\n\nplayer9 9\nlightblue blue\n....1\n.0.01\n....1\n.0.01\n1111.\n\nCrate\n#ff6fd0 #d248a5 #ff3fc0\n.000.\n1.2.0\n12220\n1.2.0\n.111.\n\nouterwall \nblack\n\n\n=======\nLEGEND\n=======\n\nplayer = player1 or player2 or player3 or player4 or player5 or player6 or player7 or player8 or player9\n\na = player1 and crate\ns = player2 and crate\nd = player3 and crate\nf = player4 and crate\ng = player5 and crate\nh = player6 and crate\nj = player7 and crate\nk = player8 and crate\nl = player9 and Crate\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n, = outerwall and wall\n\n=======\nSOUNDS\n=======\n\nstartlevel 4424703\nendlevel 73919502\nCrate MOVE 99195907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nWall\nplayer\nCrate\nouterwall\n\n======\nRULES\n======\n\n[ > player | outerwall ] -> cancel\n\n[ > Player Crate ] -> [ > Player > Crate ]\n[ > crate | crate ] -> [ > crate | > crate ]\n\n[ > crate | wall ] -> [ crate | wall ]\n\n\n==============\nWINCONDITIONS\n==============\n\nall crate on Target\n\n=======\nLEVELS\n=======\n\n\nmessage level 1 of 10\n\n(level 1? not trivial!)\n,,,,,,,,,,,\n,#########,\n,#o.....o#,\n,#.......#,\n,#.......#,\n,#..*.*..#,\n,#..123..#,\n,#..456..#,\n,#..789..#,\n,#########,\n,,,,,,,,,,,\n\n\nmessage level 2 of 10\n\n(ok for a level 2?)\n,,,,,,,,,\n,o.....o,\n,.......,\n,..***..,\n,..123##,\n,..456..,\n,..789..,\n,......o,\n,,,,,,,,,\n\n\n\nmessage level 3 of 10\n(slightly harder level 1)\n,,,,,,,,\n,..#.#.,\n,.123.*,\n,.456..,\n,.789..,\n,.#...#,\n,#..#.o,\n,,,,,,,,\n\n\nmessage level 4 of 10\n\n\n(satisfying + not hard, but only given that i thought about it in advance)\n,,,,,,,,\n,.*....,\n,.123o.,\n,.456..,\n,.789.@,\n,...*..,\n,....o.,\n,,,,,,,,\n\n\nmessage level 5 of 10\n\n(Easy but maybe ok?)\n,,,,,,,,\n,.o@*o.,\n,.123..,\n,o456*.,\n,.j89*o,\n,......,\n,......,\n,,,,,,,,\n\n\nmessage level 6 of 10\n\n(not too hard with two crates)\n,,,,,,,,\n,.#.#.o,\n,.1s3..,\n,.456.#,\n,#789..,\n,...o#.,\n,...*..,\n,,,,,,,,\n\n\nmessage level 7 of 10\n\n(3175)\n(not too hard but I got stuck for a weird amount of time)\n,,,,,,,,,\n,...o...,\n,.123...,\n,.456##*,\n,.789.*.,\n,.......,\n,o......,\n,.......,\n,,,,,,,,,\n\n\n\n\nmessage level 8 of 10\n(nontrivial - arrange multiple pieces on your body to solve in the end)\n,,,,,,,,\n,..#..o,\n,.123..,\n,.45h..,\n,.7kl..,\n,..o...,\n,o..#..,\n,,,,,,,,\n\n\n\n\nmessage level 9 of 10\n(cute idea)\n,,,,,,,,\n,......,\n,.123.o,\n,.456.*,\n,.78k.o,\n,...*.o,\n,...@.@,\n,,,,,,,,\n\n\n\nmessage level 10 of 10\n(enjoyed solving this one)\n,,,,,,,,\n,....oo,\n,.1s3..,\n,.456#.,\n,.789.#,\n,#....*,\n,.*o...,\n,,,,,,,,\n\nmessage Congratulations! You are the most adroitly attractive entity in the known universe.\n\n(\nmessage level 11 of 11\n\n(very hard - needed a hint :'[ )\n,,,,,,,,\n,.o.o..,\n,.123..,\n,o456#.,\n,.789..,\n,..*.#.,\n,.*.*..,\n,,,,,,,,\n\n\n\n\n(wasn't able to solve)\n,,,,,,,,\n,.#...o,\n,.123..,\n,.4g6*.,\n,o789..,\n,...#..,\n,#@....,\n,,,,,,,,\n\n\n\n\n\n(too hard)\n,,,,,,,,\n,.*...o,\n,.123#.,\n,.456.#,\n,@789..,\n,..*##.,\n,.....o,\n,,,,,,,,\n\n(ok level 1?)\n,,,,,,,,\n,###..#,\n,.123.#,\n,.456..,\n,#789.#,\n,o....*,\n,......,\n,,,,,,,,\n\n\n,,,,,,,,\n,...#.o,\n,.123#.,\n,.456..,\n,.789..,\n,..#...,\n,o*#*#.,\n,,,,,,,,\n\n,,,,,,,,\n,......,\n,.123..,\n,.456..,\n,.789..,\n,......,\n,......,\n,,,,,,,,\n\n,,,,,,,,,\n,.......,\n,.123...,\n,.456...,\n,.789...,\n,.......,\n,.......,\n,.......,\n,,,,,,,,,\n\n\n\n,,,,,,,,,\n,.......,\n,.123...,\n,.456...,\n,.789...,\n,.......,\n,.......,\n,.......,\n,.......,\n,.......,\n,,,,,,,,,\n\n,,,,,,,,,,,\n,.........,\n,.123.....,\n,.456.....,\n,.789.....,\n,.........,\n,.........,\n,.........,\n,.........,\n,.........,\n,,,,,,,,,,,\n)\n\n(\n\n==========\nTRANSFORM\n==========\n\nchoose 5 option 0.5 [ no wall no player ] -> [ wall ]\n+ option 0.5 []->[]\n\nchoose 2 [ no wall no player ] -> [ target ]\nchoose 2 [ no wall ] -> [ crate ]\n\n)\n",[3,2,3,1,1,1,0,0,3,3,2,2,2,3,3,0,0,0,1,1,2,2,2,3,3,3,0,0,1,2,3,3,0,0,2,2,0,1,1,0,3,3,3,2,2,0,1,2,3,3,2,2,2,1,1,1,1,1,0,0,0,3,3,3,3,3,2,2,1,0,1,2,1,0],"background outerwall wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,background target:2,1,0,\n0,1,background crate:3,background crate player1:4,background player4:5,background player7:6,1,1,0,\n0,1,1,background player2:7,background player5:8,background player8:9,1,1,0,\n0,2,1,background player3:10,background player6:11,background player9:12,1,1,0,\n0,1,1,background wall:13,1,1,1,1,0,\n0,1,1,13,1,1,1,1,0,\n0,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n",13,"1627894355351.2"] + "Attractor Net", + ["title Attractor Net\nauthor increpare\nhomepage www.increpare.com\n\n(require_player_movement)\n\n========\nOBJECTS\n========\n\nBackground\ndarkgray\n\nTarget\n#7eb44a\n00000\n00000\n00000\n00000\n00000\n\n\nWall\n#2c2c2c\n\nplayer1 1\nblue lightblue\n.0000\n01.1.\n0....\n01.1.\n0....\n\nplayer2 2\nblue lightblue\n00000\n.1.1.\n.....\n.1.1.\n.....\n\nplayer3 3\nblue lightblue\n0000.\n.1.10\n....0\n.1.10\n....0\n\nplayer4 4\nblue lightblue\n0....\n01.1.\n0....\n01.1.\n0....\n\nplayer5 5\nlightblue\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nplayer6 6\nlightblue blue\n....1\n.0.01\n....1\n.0.01\n....1\n\nplayer7 7\nblue lightblue\n0....\n01.1.\n0....\n01.1.\n.0000\n\nplayer8 8\nlightblue blue\n.....\n.0.0.\n.....\n.0.0.\n11111\n\nplayer9 9\nlightblue blue\n....1\n.0.01\n....1\n.0.01\n1111.\n\nCrate\n#ff6fd0 #d248a5 #ff3fc0\n.000.\n1.2.0\n12220\n1.2.0\n.111.\n\nouterwall \nblack\n\n\n=======\nLEGEND\n=======\n\nplayer = player1 or player2 or player3 or player4 or player5 or player6 or player7 or player8 or player9\n\na = player1 and crate\ns = player2 and crate\nd = player3 and crate\nf = player4 and crate\ng = player5 and crate\nh = player6 and crate\nj = player7 and crate\nk = player8 and crate\nl = player9 and Crate\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n, = outerwall and wall\n\n=======\nSOUNDS\n=======\n\nstartlevel 4424703\nendlevel 73919502\nCrate MOVE 99195907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nWall\nplayer\nCrate\nouterwall\n\n======\nRULES\n======\n\n[ > player | outerwall ] -> cancel\n\n[ > Player Crate ] -> [ > Player > Crate ]\n[ > crate | crate ] -> [ > crate | > crate ]\n\n[ > crate | wall ] -> [ crate | wall ]\n\n\n==============\nWINCONDITIONS\n==============\n\nall crate on Target\n\n=======\nLEVELS\n=======\n\n\nmessage level 1 of 10\n\n(level 1? not trivial!)\n,,,,,,,,,,,\n,#########,\n,#o.....o#,\n,#.......#,\n,#.......#,\n,#..*.*..#,\n,#..123..#,\n,#..456..#,\n,#..789..#,\n,#########,\n,,,,,,,,,,,\n\n\nmessage level 2 of 10\n\n(ok for a level 2?)\n,,,,,,,,,\n,o.....o,\n,.......,\n,..***..,\n,..123##,\n,..456..,\n,..789..,\n,......o,\n,,,,,,,,,\n\n\n\nmessage level 3 of 10\n(slightly harder level 1)\n,,,,,,,,\n,..#.#.,\n,.123.*,\n,.456..,\n,.789..,\n,.#...#,\n,#..#.o,\n,,,,,,,,\n\n\nmessage level 4 of 10\n\n\n(satisfying + not hard, but only given that i thought about it in advance)\n,,,,,,,,\n,.*....,\n,.123o.,\n,.456..,\n,.789.@,\n,...*..,\n,....o.,\n,,,,,,,,\n\n\nmessage level 5 of 10\n\n(Easy but maybe ok?)\n,,,,,,,,\n,.o@*o.,\n,.123..,\n,o456*.,\n,.j89*o,\n,......,\n,......,\n,,,,,,,,\n\n\nmessage level 6 of 10\n\n(not too hard with two crates)\n,,,,,,,,\n,.#.#.o,\n,.1s3..,\n,.456.#,\n,#789..,\n,...o#.,\n,...*..,\n,,,,,,,,\n\n\nmessage level 7 of 10\n\n(3175)\n(not too hard but I got stuck for a weird amount of time)\n,,,,,,,,,\n,...o...,\n,.123...,\n,.456##*,\n,.789.*.,\n,.......,\n,o......,\n,.......,\n,,,,,,,,,\n\n\n\n\nmessage level 8 of 10\n(nontrivial - arrange multiple pieces on your body to solve in the end)\n,,,,,,,,\n,..#..o,\n,.123..,\n,.45h..,\n,.7kl..,\n,..o...,\n,o..#..,\n,,,,,,,,\n\n\n\n\nmessage level 9 of 10\n(cute idea)\n,,,,,,,,\n,......,\n,.123.o,\n,.456.*,\n,.78k.o,\n,...*.o,\n,...@.@,\n,,,,,,,,\n\n\n\nmessage level 10 of 10\n(enjoyed solving this one)\n,,,,,,,,\n,....oo,\n,.1s3..,\n,.456#.,\n,.789.#,\n,#....*,\n,.*o...,\n,,,,,,,,\n\nmessage Congratulations! You are the most adroitly attractive entity in the known universe.\n\n(\nmessage level 11 of 11\n\n(very hard - needed a hint :'[ )\n,,,,,,,,\n,.o.o..,\n,.123..,\n,o456#.,\n,.789..,\n,..*.#.,\n,.*.*..,\n,,,,,,,,\n\n\n\n\n(wasn't able to solve)\n,,,,,,,,\n,.#...o,\n,.123..,\n,.4g6*.,\n,o789..,\n,...#..,\n,#@....,\n,,,,,,,,\n\n\n\n\n\n(too hard)\n,,,,,,,,\n,.*...o,\n,.123#.,\n,.456.#,\n,@789..,\n,..*##.,\n,.....o,\n,,,,,,,,\n\n(ok level 1?)\n,,,,,,,,\n,###..#,\n,.123.#,\n,.456..,\n,#789.#,\n,o....*,\n,......,\n,,,,,,,,\n\n\n,,,,,,,,\n,...#.o,\n,.123#.,\n,.456..,\n,.789..,\n,..#...,\n,o*#*#.,\n,,,,,,,,\n\n,,,,,,,,\n,......,\n,.123..,\n,.456..,\n,.789..,\n,......,\n,......,\n,,,,,,,,\n\n,,,,,,,,,\n,.......,\n,.123...,\n,.456...,\n,.789...,\n,.......,\n,.......,\n,.......,\n,,,,,,,,,\n\n\n\n,,,,,,,,,\n,.......,\n,.123...,\n,.456...,\n,.789...,\n,.......,\n,.......,\n,.......,\n,.......,\n,.......,\n,,,,,,,,,\n\n,,,,,,,,,,,\n,.........,\n,.123.....,\n,.456.....,\n,.789.....,\n,.........,\n,.........,\n,.........,\n,.........,\n,.........,\n,,,,,,,,,,,\n)\n\n(\n\n==========\nTRANSFORM\n==========\n\nchoose 5 option 0.5 [ no wall no player ] -> [ wall ]\n+ option 0.5 []->[]\n\nchoose 2 [ no wall no player ] -> [ target ]\nchoose 2 [ no wall ] -> [ crate ]\n\n)\n", [3, 2, 3, 1, 1, 1, 0, 0, 3, 3, 2, 2, 2, 3, 3, 0, 0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 0, 0, 1, 2, 3, 3, 0, 0, 2, 2, 0, 1, 1, 0, 3, 3, 3, 2, 2, 0, 1, 2, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 0, 0, 0, 3, 3, 3, 3, 3, 2, 2, 1, 0, 1, 2, 1, 0], "background outerwall wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,background target:2,1,0,\n0,1,background crate:3,background crate player1:4,background player4:5,background player7:6,1,1,0,\n0,1,1,background player2:7,background player5:8,background player8:9,1,1,0,\n0,2,1,background player3:10,background player6:11,background player9:12,1,1,0,\n0,1,1,background wall:13,1,1,1,1,0,\n0,1,1,13,1,1,1,1,0,\n0,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n", 13, "1627894355351.2"] ], [ - "Yellow Box", - ["title Yellow Box\nauthor increpare\nhomepage www.increpare.com\ntext_color #b1aa11\nrun_rules_on_level_start\n\nbackground_color #373737\n\n========\nOBJECTS\n========\n\nBackground\n#6f727a\n\n\nPedestrian\n#823123 #4e88f1 #639bff #822c1d #4b193b #646464\n..0..\n.12..\n1.22.\n3.4.3\n.4.4.\n\nWall\n#373737\n\n\ncar_v\n#000000 #30823f #1e6a2b #85c6ca #41a352 #398144 #9fdadd #151515\n01110\n23334\n25554\n26664\n04447\n\n\ncar_h\n#000000 #30823f #1e6a2b #85c6ca #398144 #9fdadd #41a352 #151515\n01110\n23456\n23456\n23456\n06667\n\n\ncrash_n\n#000000 #30823f #ac3232 #1e6a2b #85c6ca #41a352 #398144 #823123 #4681eb #151515\n01120\n32445\n26762\n32885\n05859\n\ncrash_s\n#151515 #30823f #4681eb #000000 #1e6a2b #ac3232 #41a352 #398144 #823123 #85c6ca\n01213\n42256\n57875\n49956\n35663\n\ncrash_e\n#000000 #30823f #ac3232 #1e6a2b #398144 #41a352 #4681eb #823123 #85c6ca #151515\n01210\n32425\n66785\n36482\n95250\n\ncrash_w\n#000000 #30823f #ac3232 #151515 #85c6ca #398144 #4681eb #41a352 #1e6a2b #823123\n01213\n24567\n84966\n82527\n07270\n\nskid_n\n#545862 #6f727a\n0...0\n0...0\n....0\n.....\n.....\n\n\nskid_s\n#545862\n.....\n.....\n0....\n0...0\n0...0\n\n\nskid_e\n#545862\n...00\n.....\n.....\n.....\n..000\n\n\nskid_w\n#545862\n000..\n.....\n.....\n.....\n00...\n\n\n\nmoveup\n#ff0000\n..0..\n.....\n.....\n.....\n.....\n\nmovedown\n#ff0000\n.....\n.....\n.....\n.....\n..0..\n\nmoveleft \n#ff0000\n.....\n.....\n0....\n.....\n.....\n\nmoveright\n#ff0000\n.....\n.....\n....0\n.....\n.....\n\nplayer_1 1\n#b1aa11 #fbf236\n00000\n0.1..\n01.1.\n0...1\n01.1.\n \nplayer_2 2\n#b1aa11 #fbf236\n00000\n.1...\n1.1.1\n...1.\n1.1.1\n\nplayer_3 3\n#b1aa11 #fbf236\n00000\n1...0\n.1.10\n..1.0\n.1.10\n\nplayer_4 4\n#b1aa11 #fbf236\n0.1..\n01.1.\n0...1\n01.1.\n0.1..\n\nplayer_5 5\n#fbf236\n.0...\n0.0.0\n...0.\n0.0.0\n.0...\n\nplayer_6 6\n#fbf236 #b1aa11\n0...1\n.0.01\n..0.1\n.0.01\n0...1\n\nplayer_7 7\n#b1aa11 #fbf236\n01.1.\n0...1\n01.1.\n0.1..\n00000\n\nplayer_8 8\n#fbf236 #b1aa11\n0.0.0\n...0.\n0.0.0\n.0...\n11111\n\nplayer_9 9\n#fbf236 #b1aa11\n.0.01\n..0.1\n.0.01\n0...1\n11111\n\nplayer_q q\n#b1aa11 #fbf236\n00000\n01...\n0.1.1\n0..1.\n0.1.1\n\nplayer_w w\n#b1aa11 #fbf236\n00000\n1...0\n.1.10\n..1.0\n.1.10\n\nplayer_e e \n#b1aa11 #fbf236\n01...\n0.1.1\n0..1.\n0.1.1\n00000\n\nplayer_r r\n#fbf236 #b1aa11\n0...1\n.0.01\n..0.1\n.0.01\n11111\n\nplayer_t t\n#b1aa11 #fbf236 #868890\n00000\n01210\n02120\n01210\n00000\n\n=======\nLEGEND\n=======\nplayer = player_1 or player_2 or player_3 or player_4 or player_5 or player_6 or player_7 or player_8 or player_9 or player_q or player_w or player_e or player_r or player_t\nskid = skid_n or skid_s or skid_e or skid_w\n\ncrash = crash_n or crash_s or crash_e or crash_w\nmove = moveup or movedown or moveleft or moveright\ncar = car_h or car_v\n. = Background\n# = Wall\nP = Player_1\nc = car_h\nd = car_v\no = Pedestrian\n@ = player_1 and Pedestrian\nobstacle = car or Wall or crash\n\nz = player_1 and Pedestrian\nx = player_2 and Pedestrian\nb = player_3 and Pedestrian\nn = player_4 and Pedestrian\nm = player_5 and Pedestrian\n, = player_6 and Pedestrian\n' = player_7 and Pedestrian\n/ = player_8 and Pedestrian\n; = player_9 and Pedestrian\n\n=======\nSOUNDS\n=======\nsfx0 76358502 (crash)\nendlevel 61183702\nstartlevel 81279102\nshowmessage 42778506\n\nsfx1 11424307 (move vehicle)\n\n================\nCOLLISIONLAYERS\n================\n\nmove\nBackground\n\nskid_n\nskid_s\nskid_e\nskid_w\n\nplayer\n\nWall, car, Pedestrian, crash\n\n======\nRULES\n======\n\n\nup [ stationary moveup car | Wall ] -> [ car | wall] \ndown [ stationary movedown car | Wall ] -> [ car | wall] \nleft [ stationary moveleft car | Wall ] -> [ car | wall] \nright [ stationary moveright car | Wall ] -> [ car | wall] \n\n\nup [ stationary moveup car | car no moveup ] -> [ car | car] \ndown [ stationary movedown car | car no movedown ] -> [ car | car] \nleft [ stationary moveleft car | car no moveleft ] -> [ car | car] \nright [ stationary moveright car | car no moveright ] -> [ car | car] \n\n\nup [ stationary moveup car | Pedestrian ] -> [ skid_n | crash_s ] sfx0\ndown [ stationary movedown car | Pedestrian ] -> [ skid_s | crash_n ] sfx0\nleft [ stationary moveleft car | Pedestrian ] -> [ skid_w | crash_e ] sfx0\nright [ stationary moveright car | Pedestrian ] -> [ skid_e | crash_w ] sfx0\n\n\nup [ stationary moveup car | no obstacle ] -> [ | action moveup car ] again sfx1\ndown [ stationary movedown car | no obstacle ] -> [ | action movedown car ] again sfx1\nleft [ stationary moveleft car | no obstacle ] -> [ | action moveleft car ] again sfx1\nright [ stationary moveright car | no obstacle ] -> [ | action moveright car ] again sfx1\n\n\nup [ > player | car ] -> [ > player | movedown car_v ] again\ndown [ > player | car ] -> [ > player | moveup car_v ] again\nleft [ > player | car ] -> [ > player | moveright car_h ] again\nright [ > player | car ] -> [ > player | moveleft car_h ] again\n\n[ > player | wall ] -> cancel\n\nlate [ car move no player ] -> [ car ]\n\n==============\nWINCONDITIONS\n==============\n\nno Pedestrian\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 18 - Whatever vehicle moves into a yellow box remains in motion until it has left.\n\n(tolerable level 1)\n########\n#o.....#\n#.....c#\n#..qw..#\n#..er..#\n#......#\n#.c..o.#\n########\n\n\nmessage Level 2 of 18 - The laws of Road are inviolable\n(Easy!)\n#######\n#.c...#\n#.123o#\n#o456.#\n#.789.#\n#.c...#\n#######\n\n\nmessage Level 3 of 18 - Respect the yellow box!\n(fine easy engaging)\n###########\n#.........#\n#..c..o...#\n#.........#\n#.c..o..c.#\n#..123....#\n#..456....#\n#..789...o#\n#.........#\n#.........#\n###########\n\nmessage Level 4 of 18 - You ever feel like you're at a junction in life? \n(very slightly less easy)\n#######\n#...c.#\n#.12bc#\n#.456.#\n#.789.#\n#o....#\n#######\n\n\n\nmessage Level 5 of 18 - Yellow is my favourite colour!\n(not hard. medium-engaging)\n###########\n#.........#\n#..c....co#\n#.o123....#\n#..n56....#\n#..789....#\n#..c......#\n###########\n\nmessage Level 6 of 18 - Houserule: NO turning in the yellow box. \n(not too hard. kionda engaging)\n###########\n#.c..oc...#\n#.c.......#\n#..123....#\n#..456....#\n#..789..o.#\n#........o#\n###########\n\nmessage Level 7 of 18 - Prefer death to stalling in the middle of a yellow box.\n(i got it! humane! early intermediate)\n#######\n#.o..c#\n#cz2bc#\n#.45,.#\n#.789.#\n#o..cc#\n#######\n\nmessage Level 8 of 18 - I don't care if you're speeding.\n(interesting intermediate puzzler!)\n#######\n#.c...#\n#..c..#\n#o..c.#\n#.t...#\n##o#.o#\n#######\n\n\nmessage Level 9 of 18 - I ... I guess you can reverse through instead if you want?\n(Easy-intermediate + fun)\n#######\n#c.ccc#\n#o12bo#\n#cnm6c#\n#o789.#\n#.occo#\n#######\n\nmessage Level 10 of 18 - One car in, one car out!\n(not too trivial, netertaining to solve?)\n###########\n#.........#\n#.o.123o..#\n#...456c..#\n#.c.789...#\n#......o..#\n#...c..oc.#\n###########\n\nmessage Level 11 of 18 - Why are all cars green anyway?\n(fine. intermediate)\n#######\n#cc...#\n#.123.#\n#.456o#\n#c'8;c#\n#co.o.#\n#######\n\n\nmessage Level 12 of 18 - Pedestrians are p. dumb yeah.\n(fine)\n#######\n#c.cco#\n#.12bc#\n#o456.#\n#o'/9o#\n#ccocc#\n#######\n\nmessage Level 13 of 18 - No yellow boxes were harmed in the making of this game.\n(fine)\n#######\n#cc.cc#\n#c12bo#\n#on56.#\n#o7/;c#\n#.coc.#\n#######\n\nmessage Level 14 of 18 - Some days I'm big, some days I'm small. That's just life as a yellow box.\n(kinda fun later intermediate)\n###########\n#.........#\n#...c...c.#\n#..123....#\n#..456..o.#\n#..789oo.c#\n#...o...c.#\n###########\n\nmessage Level 15 of 18 - You can't outrun the yellow box!\n(not too hard. kinda fun)\n######\n#oocc#\n#1x3c#\n#4nmc#\n#789c#\n######\n\nmessage Level 16 of 18 - Sometimes I feel like cars wouldn't move at all if it wasn't for my gentle encouragement.\n(hardish but ok?)\n#######\n#c.coc#\n#czx3c#\n#cn56.#\n#c789o#\n#ooo.c#\n#######\n\nmessage Level 17 of 18 - I gained consciusness back when I was a bucket of paint. Rough year, that!\n(hardish - I like this level)\n######\n#cocc#\n#zx3c#\n#nm,c#\n#789c#\n######\n\nmessage Level 18 of 18 - Sometimes I wonder what the future has in store for a little yellow box like me?\n(challenging? ok last level?)\n######\n#...c#\n#123c#\n#4m,c#\n#789o#\n#coco#\n######\n\nmessage Congratulations! Your ferociousness has earned the respect of drivers and pedestrians alike across the globe.\n\n(CUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUT:)\n(\n########\n#oo....#\n#.c...c#\n#.ppp..#\n#.ppp..#\n#.pppo.#\n#.c....#\n########\n\n(trivial/boring)\n######\n#.coo#\n#.o..#\n#....#\n#.p..#\n#.cc.#\n######\n\n(should be ok but can't solve x| )\n#######\n#...o.#\n#.ppp.#\n#.ppp.#\n#cpppc#\n#....o#\n#######\n\n(should be interesting but can't solve)\n#######\n#c....#\n#.ppp.#\n#.ppp.#\n#.@@@c#\n#....c#\n#######\n\n\n(middle-hard, eeeh)\n#######\n#.ccco#\n#op@po#\n#.pp@.#\n#o@ppc#\n#ccocc#\n#######\n\n(didn't solve. dead end. meh)\n########\n#.....o#\n#..c..o#\n#..o.c.#\n#ppp...#\n#ppp...#\n#pppc..#\n########\n\n(didn't solve)\n########\n#......#\n#..c.o.#\n#...o..#\n#ppp.c.#\n#ppp.c.#\n#@p@.c.#\n########\n\n\n(cannae solve it -_- )\n########\n#.....o#\n#......#\n#..o..o#\n#ppp.o.#\n#ppp.cc#\n#ppp.cc#\n########\n\n(Easy)\n###########\n#....o.c..#\n#c.o...o.c#\n#..ppp...o#\n#..ppp....#\n#.cppp....#\n#.........#\n###########\n\n(trivial)\n###########\n#.........#\n#...ppp..c#\n#...ppp...#\n#...ppp.oc#\n#co....o..#\n#co.......#\n###########\n\n(too similar to other level)\n###########\n#.c.o.....#\n#...ppp...#\n#.c.pppco.#\n#.c.ppp...#\n#.........#\n#......oo.#\n###########\n\n\n(trivial)\n######\n#cooc#\n#ppp.#\n#pppo#\n#pppc#\n######\n\n(couldn't do - might've been interesting)\n######\n#ccoc#\n#p@pc#\n#p@po#\n#ppp.#\n######\n\n\n(coudlnt' figure out, but because of one person I couldn't figure out how to kill)\n######\n#coc.#\n#pppo#\n#p@@c#\n#pppc#\n######\n\n(interesting, but I can't solve!)\n######\n#cc.c#\n#p@pc#\n#p@po#\n#p@p.#\n######\n\n(looks fun. can't solve)\n######\n#..cc#\n#pp@c#\n#ppp.#\n#@@@.#\n#...c#\n######\n\n(don't like walls)\n########\n##.o...#\n#c..c..#\n#oo.cc.#\n#ppp.#.#\n#ppp...#\n#pp@...#\n########\n\n(dont' like this)\n########\n#.cooc.#\n#......#\n#c.....#\n#pppc..#\n#@pp...#\n#@pp...#\n########\n\n(meh. don't like walls)\n########\n#..#.c.#\n#......#\n#.coco.#\n#pp@...#\n#ppp.o##\n#pppc..#\n########\n\n(don't like walls)\n########\n#..o.c.#\n##.c...#\n#cco...#\n#ppp..##\n#ppp...#\n#pppoo.#\n########\n\n(don't like walls)\n########\n#.oo.o.#\n#cco..c#\n#......#\n#ppp..##\n#pppc..#\n#ppp.#.#\n########\n\n\n\n(damnit wanted to find interesting but reallly hard)\n#######\n#....o#\n#.@@p.#\n#.ppp.#\n#.ppp.#\n#.ccc.#\n#######\n\n(like other level but easier)\n######\n#.ccc#\n#@@@c#\n#@@@c#\n#pppc#\n######\n\n\n(too similar to others)\n######\n#c.cc#\n#@@p.#\n#@@@c#\n#pppc#\n######\n\n(CBA)\n######\n#oc..#\n#pp@o#\n#p@pc#\n#pppo#\n#.ccc#\n######\n\n\n(meh)\n######\n#cooc#\n#pppc#\n#ppp.#\n#pp@o#\n#c.oc#\n######\n\n\n###########\n#.........#\n#.........#\n#.........#\n#...ppp...#\n#...ppp...#\n#...ppp...#\n#.........#\n#.........#\n#.........#\n###########\n\n###########\n#.........#\n#.........#\n#..ppp....#\n#..ppp....#\n#..ppp....#\n#.........#\n###########\n\n\n###########\n#.........#\n#...ppp...#\n#...ppp...#\n#...ppp...#\n###########\n\n#################\n#...............#\n#......ppp......#\n#......ppp......#\n#......ppp......#\n#################\n\n###########\n#.........#\n#.........#\n#..ppp....#\n#..ppp....#\n#..ppp....#\n#.........#\n###########\n\n########\n#......#\n#......#\n#.ppp..#\n#.ppp..#\n#.ppp..#\n#......#\n########\n\n#######\n#.....#\n#.ppp.#\n#.ppp.#\n#.ppp.#\n#.....#\n#######\n\n######\n#....#\n#ppp.#\n#ppp.#\n#ppp.#\n######\n\n######\n#....#\n#ppp.#\n#ppp.#\n#ppp.#\n#....#\n######\n\n#########\n#.......#\n#.......#\n#.......#\n#.p.....#\n#.......#\n#########\n\n######\n#....#\n#....#\n#....#\n#.p..#\n#....#\n######\n\n########\n#......#\n#......#\n#......#\n#ppp...#\n#ppp...#\n#ppp...#\n########\n\n########\n#......#\n#......#\n#......#\n#ppp...#\n#ppp.cc#\n#ppp.cc#\n########\n\n########\n#oo..oo#\n#......#\n#......#\n#ppp...#\n#ppp.cc#\n#ppp.cc#\n########\n)\n",[3,0,3,3,3,2,2],"background wall:0,0,0,0,0,0,0,0,0,background:1,1,\n1,1,1,1,0,0,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,0,0,\n1,1,1,1,background car_v:2,background pedestrian:3,0,0,1,background car_h:4,1,\n1,1,1,0,0,1,1,1,1,3,1,\n0,0,1,1,1,background player_1:5,background pedestrian player_4:6,background player_7:7,0,0,1,\n1,1,background crash_s player_2:8,background player_5 skid_n:9,background player_8:10,0,0,1,2,1,background player_3:11,\nbackground player_6:12,background player_9:13,0,0,0,0,0,0,0,0,0,\n",27,"1627894381565.9717"] + "Yellow Box", + ["title Yellow Box\nauthor increpare\nhomepage www.increpare.com\ntext_color #b1aa11\nrun_rules_on_level_start\n\nbackground_color #373737\n\n========\nOBJECTS\n========\n\nBackground\n#6f727a\n\n\nPedestrian\n#823123 #4e88f1 #639bff #822c1d #4b193b #646464\n..0..\n.12..\n1.22.\n3.4.3\n.4.4.\n\nWall\n#373737\n\n\ncar_v\n#000000 #30823f #1e6a2b #85c6ca #41a352 #398144 #9fdadd #151515\n01110\n23334\n25554\n26664\n04447\n\n\ncar_h\n#000000 #30823f #1e6a2b #85c6ca #398144 #9fdadd #41a352 #151515\n01110\n23456\n23456\n23456\n06667\n\n\ncrash_n\n#000000 #30823f #ac3232 #1e6a2b #85c6ca #41a352 #398144 #823123 #4681eb #151515\n01120\n32445\n26762\n32885\n05859\n\ncrash_s\n#151515 #30823f #4681eb #000000 #1e6a2b #ac3232 #41a352 #398144 #823123 #85c6ca\n01213\n42256\n57875\n49956\n35663\n\ncrash_e\n#000000 #30823f #ac3232 #1e6a2b #398144 #41a352 #4681eb #823123 #85c6ca #151515\n01210\n32425\n66785\n36482\n95250\n\ncrash_w\n#000000 #30823f #ac3232 #151515 #85c6ca #398144 #4681eb #41a352 #1e6a2b #823123\n01213\n24567\n84966\n82527\n07270\n\nskid_n\n#545862 #6f727a\n0...0\n0...0\n....0\n.....\n.....\n\n\nskid_s\n#545862\n.....\n.....\n0....\n0...0\n0...0\n\n\nskid_e\n#545862\n...00\n.....\n.....\n.....\n..000\n\n\nskid_w\n#545862\n000..\n.....\n.....\n.....\n00...\n\n\n\nmoveup\n#ff0000\n..0..\n.....\n.....\n.....\n.....\n\nmovedown\n#ff0000\n.....\n.....\n.....\n.....\n..0..\n\nmoveleft \n#ff0000\n.....\n.....\n0....\n.....\n.....\n\nmoveright\n#ff0000\n.....\n.....\n....0\n.....\n.....\n\nplayer_1 1\n#b1aa11 #fbf236\n00000\n0.1..\n01.1.\n0...1\n01.1.\n \nplayer_2 2\n#b1aa11 #fbf236\n00000\n.1...\n1.1.1\n...1.\n1.1.1\n\nplayer_3 3\n#b1aa11 #fbf236\n00000\n1...0\n.1.10\n..1.0\n.1.10\n\nplayer_4 4\n#b1aa11 #fbf236\n0.1..\n01.1.\n0...1\n01.1.\n0.1..\n\nplayer_5 5\n#fbf236\n.0...\n0.0.0\n...0.\n0.0.0\n.0...\n\nplayer_6 6\n#fbf236 #b1aa11\n0...1\n.0.01\n..0.1\n.0.01\n0...1\n\nplayer_7 7\n#b1aa11 #fbf236\n01.1.\n0...1\n01.1.\n0.1..\n00000\n\nplayer_8 8\n#fbf236 #b1aa11\n0.0.0\n...0.\n0.0.0\n.0...\n11111\n\nplayer_9 9\n#fbf236 #b1aa11\n.0.01\n..0.1\n.0.01\n0...1\n11111\n\nplayer_q q\n#b1aa11 #fbf236\n00000\n01...\n0.1.1\n0..1.\n0.1.1\n\nplayer_w w\n#b1aa11 #fbf236\n00000\n1...0\n.1.10\n..1.0\n.1.10\n\nplayer_e e \n#b1aa11 #fbf236\n01...\n0.1.1\n0..1.\n0.1.1\n00000\n\nplayer_r r\n#fbf236 #b1aa11\n0...1\n.0.01\n..0.1\n.0.01\n11111\n\nplayer_t t\n#b1aa11 #fbf236 #868890\n00000\n01210\n02120\n01210\n00000\n\n=======\nLEGEND\n=======\nplayer = player_1 or player_2 or player_3 or player_4 or player_5 or player_6 or player_7 or player_8 or player_9 or player_q or player_w or player_e or player_r or player_t\nskid = skid_n or skid_s or skid_e or skid_w\n\ncrash = crash_n or crash_s or crash_e or crash_w\nmove = moveup or movedown or moveleft or moveright\ncar = car_h or car_v\n. = Background\n# = Wall\nP = Player_1\nc = car_h\nd = car_v\no = Pedestrian\n@ = player_1 and Pedestrian\nobstacle = car or Wall or crash\n\nz = player_1 and Pedestrian\nx = player_2 and Pedestrian\nb = player_3 and Pedestrian\nn = player_4 and Pedestrian\nm = player_5 and Pedestrian\n, = player_6 and Pedestrian\n' = player_7 and Pedestrian\n/ = player_8 and Pedestrian\n; = player_9 and Pedestrian\n\n=======\nSOUNDS\n=======\nsfx0 76358502 (crash)\nendlevel 61183702\nstartlevel 81279102\nshowmessage 42778506\n\nsfx1 11424307 (move vehicle)\n\n================\nCOLLISIONLAYERS\n================\n\nmove\nBackground\n\nskid_n\nskid_s\nskid_e\nskid_w\n\nplayer\n\nWall, car, Pedestrian, crash\n\n======\nRULES\n======\n\n\nup [ stationary moveup car | Wall ] -> [ car | wall] \ndown [ stationary movedown car | Wall ] -> [ car | wall] \nleft [ stationary moveleft car | Wall ] -> [ car | wall] \nright [ stationary moveright car | Wall ] -> [ car | wall] \n\n\nup [ stationary moveup car | car no moveup ] -> [ car | car] \ndown [ stationary movedown car | car no movedown ] -> [ car | car] \nleft [ stationary moveleft car | car no moveleft ] -> [ car | car] \nright [ stationary moveright car | car no moveright ] -> [ car | car] \n\n\nup [ stationary moveup car | Pedestrian ] -> [ skid_n | crash_s ] sfx0\ndown [ stationary movedown car | Pedestrian ] -> [ skid_s | crash_n ] sfx0\nleft [ stationary moveleft car | Pedestrian ] -> [ skid_w | crash_e ] sfx0\nright [ stationary moveright car | Pedestrian ] -> [ skid_e | crash_w ] sfx0\n\n\nup [ stationary moveup car | no obstacle ] -> [ | action moveup car ] again sfx1\ndown [ stationary movedown car | no obstacle ] -> [ | action movedown car ] again sfx1\nleft [ stationary moveleft car | no obstacle ] -> [ | action moveleft car ] again sfx1\nright [ stationary moveright car | no obstacle ] -> [ | action moveright car ] again sfx1\n\n\nup [ > player | car ] -> [ > player | movedown car_v ] again\ndown [ > player | car ] -> [ > player | moveup car_v ] again\nleft [ > player | car ] -> [ > player | moveright car_h ] again\nright [ > player | car ] -> [ > player | moveleft car_h ] again\n\n[ > player | wall ] -> cancel\n\nlate [ car move no player ] -> [ car ]\n\n==============\nWINCONDITIONS\n==============\n\nno Pedestrian\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 18 - Whatever vehicle moves into a yellow box remains in motion until it has left.\n\n(tolerable level 1)\n########\n#o.....#\n#.....c#\n#..qw..#\n#..er..#\n#......#\n#.c..o.#\n########\n\n\nmessage Level 2 of 18 - The laws of Road are inviolable\n(Easy!)\n#######\n#.c...#\n#.123o#\n#o456.#\n#.789.#\n#.c...#\n#######\n\n\nmessage Level 3 of 18 - Respect the yellow box!\n(fine easy engaging)\n###########\n#.........#\n#..c..o...#\n#.........#\n#.c..o..c.#\n#..123....#\n#..456....#\n#..789...o#\n#.........#\n#.........#\n###########\n\nmessage Level 4 of 18 - You ever feel like you're at a junction in life? \n(very slightly less easy)\n#######\n#...c.#\n#.12bc#\n#.456.#\n#.789.#\n#o....#\n#######\n\n\n\nmessage Level 5 of 18 - Yellow is my favourite colour!\n(not hard. medium-engaging)\n###########\n#.........#\n#..c....co#\n#.o123....#\n#..n56....#\n#..789....#\n#..c......#\n###########\n\nmessage Level 6 of 18 - Houserule: NO turning in the yellow box. \n(not too hard. kionda engaging)\n###########\n#.c..oc...#\n#.c.......#\n#..123....#\n#..456....#\n#..789..o.#\n#........o#\n###########\n\nmessage Level 7 of 18 - Prefer death to stalling in the middle of a yellow box.\n(i got it! humane! early intermediate)\n#######\n#.o..c#\n#cz2bc#\n#.45,.#\n#.789.#\n#o..cc#\n#######\n\nmessage Level 8 of 18 - I don't care if you're speeding.\n(interesting intermediate puzzler!)\n#######\n#.c...#\n#..c..#\n#o..c.#\n#.t...#\n##o#.o#\n#######\n\n\nmessage Level 9 of 18 - I ... I guess you can reverse through instead if you want?\n(Easy-intermediate + fun)\n#######\n#c.ccc#\n#o12bo#\n#cnm6c#\n#o789.#\n#.occo#\n#######\n\nmessage Level 10 of 18 - One car in, one car out!\n(not too trivial, netertaining to solve?)\n###########\n#.........#\n#.o.123o..#\n#...456c..#\n#.c.789...#\n#......o..#\n#...c..oc.#\n###########\n\nmessage Level 11 of 18 - Why are all cars green anyway?\n(fine. intermediate)\n#######\n#cc...#\n#.123.#\n#.456o#\n#c'8;c#\n#co.o.#\n#######\n\n\nmessage Level 12 of 18 - Pedestrians are p. dumb yeah.\n(fine)\n#######\n#c.cco#\n#.12bc#\n#o456.#\n#o'/9o#\n#ccocc#\n#######\n\nmessage Level 13 of 18 - No yellow boxes were harmed in the making of this game.\n(fine)\n#######\n#cc.cc#\n#c12bo#\n#on56.#\n#o7/;c#\n#.coc.#\n#######\n\nmessage Level 14 of 18 - Some days I'm big, some days I'm small. That's just life as a yellow box.\n(kinda fun later intermediate)\n###########\n#.........#\n#...c...c.#\n#..123....#\n#..456..o.#\n#..789oo.c#\n#...o...c.#\n###########\n\nmessage Level 15 of 18 - You can't outrun the yellow box!\n(not too hard. kinda fun)\n######\n#oocc#\n#1x3c#\n#4nmc#\n#789c#\n######\n\nmessage Level 16 of 18 - Sometimes I feel like cars wouldn't move at all if it wasn't for my gentle encouragement.\n(hardish but ok?)\n#######\n#c.coc#\n#czx3c#\n#cn56.#\n#c789o#\n#ooo.c#\n#######\n\nmessage Level 17 of 18 - I gained consciusness back when I was a bucket of paint. Rough year, that!\n(hardish - I like this level)\n######\n#cocc#\n#zx3c#\n#nm,c#\n#789c#\n######\n\nmessage Level 18 of 18 - Sometimes I wonder what the future has in store for a little yellow box like me?\n(challenging? ok last level?)\n######\n#...c#\n#123c#\n#4m,c#\n#789o#\n#coco#\n######\n\nmessage Congratulations! Your ferociousness has earned the respect of drivers and pedestrians alike across the globe.\n\n(CUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUT:)\n(\n########\n#oo....#\n#.c...c#\n#.ppp..#\n#.ppp..#\n#.pppo.#\n#.c....#\n########\n\n(trivial/boring)\n######\n#.coo#\n#.o..#\n#....#\n#.p..#\n#.cc.#\n######\n\n(should be ok but can't solve x| )\n#######\n#...o.#\n#.ppp.#\n#.ppp.#\n#cpppc#\n#....o#\n#######\n\n(should be interesting but can't solve)\n#######\n#c....#\n#.ppp.#\n#.ppp.#\n#.@@@c#\n#....c#\n#######\n\n\n(middle-hard, eeeh)\n#######\n#.ccco#\n#op@po#\n#.pp@.#\n#o@ppc#\n#ccocc#\n#######\n\n(didn't solve. dead end. meh)\n########\n#.....o#\n#..c..o#\n#..o.c.#\n#ppp...#\n#ppp...#\n#pppc..#\n########\n\n(didn't solve)\n########\n#......#\n#..c.o.#\n#...o..#\n#ppp.c.#\n#ppp.c.#\n#@p@.c.#\n########\n\n\n(cannae solve it -_- )\n########\n#.....o#\n#......#\n#..o..o#\n#ppp.o.#\n#ppp.cc#\n#ppp.cc#\n########\n\n(Easy)\n###########\n#....o.c..#\n#c.o...o.c#\n#..ppp...o#\n#..ppp....#\n#.cppp....#\n#.........#\n###########\n\n(trivial)\n###########\n#.........#\n#...ppp..c#\n#...ppp...#\n#...ppp.oc#\n#co....o..#\n#co.......#\n###########\n\n(too similar to other level)\n###########\n#.c.o.....#\n#...ppp...#\n#.c.pppco.#\n#.c.ppp...#\n#.........#\n#......oo.#\n###########\n\n\n(trivial)\n######\n#cooc#\n#ppp.#\n#pppo#\n#pppc#\n######\n\n(couldn't do - might've been interesting)\n######\n#ccoc#\n#p@pc#\n#p@po#\n#ppp.#\n######\n\n\n(coudlnt' figure out, but because of one person I couldn't figure out how to kill)\n######\n#coc.#\n#pppo#\n#p@@c#\n#pppc#\n######\n\n(interesting, but I can't solve!)\n######\n#cc.c#\n#p@pc#\n#p@po#\n#p@p.#\n######\n\n(looks fun. can't solve)\n######\n#..cc#\n#pp@c#\n#ppp.#\n#@@@.#\n#...c#\n######\n\n(don't like walls)\n########\n##.o...#\n#c..c..#\n#oo.cc.#\n#ppp.#.#\n#ppp...#\n#pp@...#\n########\n\n(dont' like this)\n########\n#.cooc.#\n#......#\n#c.....#\n#pppc..#\n#@pp...#\n#@pp...#\n########\n\n(meh. don't like walls)\n########\n#..#.c.#\n#......#\n#.coco.#\n#pp@...#\n#ppp.o##\n#pppc..#\n########\n\n(don't like walls)\n########\n#..o.c.#\n##.c...#\n#cco...#\n#ppp..##\n#ppp...#\n#pppoo.#\n########\n\n(don't like walls)\n########\n#.oo.o.#\n#cco..c#\n#......#\n#ppp..##\n#pppc..#\n#ppp.#.#\n########\n\n\n\n(damnit wanted to find interesting but reallly hard)\n#######\n#....o#\n#.@@p.#\n#.ppp.#\n#.ppp.#\n#.ccc.#\n#######\n\n(like other level but easier)\n######\n#.ccc#\n#@@@c#\n#@@@c#\n#pppc#\n######\n\n\n(too similar to others)\n######\n#c.cc#\n#@@p.#\n#@@@c#\n#pppc#\n######\n\n(CBA)\n######\n#oc..#\n#pp@o#\n#p@pc#\n#pppo#\n#.ccc#\n######\n\n\n(meh)\n######\n#cooc#\n#pppc#\n#ppp.#\n#pp@o#\n#c.oc#\n######\n\n\n###########\n#.........#\n#.........#\n#.........#\n#...ppp...#\n#...ppp...#\n#...ppp...#\n#.........#\n#.........#\n#.........#\n###########\n\n###########\n#.........#\n#.........#\n#..ppp....#\n#..ppp....#\n#..ppp....#\n#.........#\n###########\n\n\n###########\n#.........#\n#...ppp...#\n#...ppp...#\n#...ppp...#\n###########\n\n#################\n#...............#\n#......ppp......#\n#......ppp......#\n#......ppp......#\n#################\n\n###########\n#.........#\n#.........#\n#..ppp....#\n#..ppp....#\n#..ppp....#\n#.........#\n###########\n\n########\n#......#\n#......#\n#.ppp..#\n#.ppp..#\n#.ppp..#\n#......#\n########\n\n#######\n#.....#\n#.ppp.#\n#.ppp.#\n#.ppp.#\n#.....#\n#######\n\n######\n#....#\n#ppp.#\n#ppp.#\n#ppp.#\n######\n\n######\n#....#\n#ppp.#\n#ppp.#\n#ppp.#\n#....#\n######\n\n#########\n#.......#\n#.......#\n#.......#\n#.p.....#\n#.......#\n#########\n\n######\n#....#\n#....#\n#....#\n#.p..#\n#....#\n######\n\n########\n#......#\n#......#\n#......#\n#ppp...#\n#ppp...#\n#ppp...#\n########\n\n########\n#......#\n#......#\n#......#\n#ppp...#\n#ppp.cc#\n#ppp.cc#\n########\n\n########\n#oo..oo#\n#......#\n#......#\n#ppp...#\n#ppp.cc#\n#ppp.cc#\n########\n)\n", [3, 0, 3, 3, 3, 2, 2], "background wall:0,0,0,0,0,0,0,0,0,background:1,1,\n1,1,1,1,0,0,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,0,0,\n1,1,1,1,background car_v:2,background pedestrian:3,0,0,1,background car_h:4,1,\n1,1,1,0,0,1,1,1,1,3,1,\n0,0,1,1,1,background player_1:5,background pedestrian player_4:6,background player_7:7,0,0,1,\n1,1,background crash_s player_2:8,background player_5 skid_n:9,background player_8:10,0,0,1,2,1,background player_3:11,\nbackground player_6:12,background player_9:13,0,0,0,0,0,0,0,0,0,\n", 27, "1627894381565.9717"] ], [ - "Sokoban[Sokoban[Sokoban]]]", - ["title Sokoban[Sokoban[Sokoban]]]\nauthor increpare\nhomepage www.increpare.com\n\nrequire_player_movement\n\n========\nOBJECTS\n========\n\nBackground\ngray\n\nTarget\ndarkgray\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkgreen darkgreen\n00010\n11111\n01000\n11111\n00010\n\nPlayer1\ndarkblue darkblue darkblue darkblue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nred\n00000\n0...0\n0...0\n0...0\n00000\n\nPlayer2\nblue blue blue blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nPlayer3\nlightblue lightblue lightblue lightblue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\n\n=======\nLEGEND\n=======\n\nplayer = player1\nplayers = player1 or player2 or Player3\n\n. = Background\n# = Wall\n1 = Player1\n2 = player2 \n3 = player3\n* = Crate\n@ = Crate and Target\nO = Target\n\nobstacle = wall or crate \n=======\nSOUNDS\n=======\n\nsfx0 68966907 (Crate move 1)\nsfx1 27936307 (crate move 2)\nsfx2 35780507 (Crate move 3)\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayers, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | stationary Crate | no obstacle ] [stationary player2]-> [ | Player | Crate ] [> player2] sfx0\n[ > Player2 | stationary Crate | no obstacle ] [stationary player3] -> [ | Player2 | Crate ] [> player3] sfx1\n[ > player3 | stationary crate | no obstacle] -> [ | player3 | crate ] sfx2\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Levels 3 of 3\n\n##########\n#........#\n#........#\n#..*oo*..#\n#...3....#\n#........#\n##########\n#........#\n#........#\n#..*oo*..#\n#...2....#\n#........#\n##########\n#........#\n#........#\n#..*oo*..#\n#...1....#\n#........#\n##########\n\nmessage You did good doing good doing good!\n",[1,1,0,3,0,3,3,2,3,2,1,1,1,0,3,2,3,0,3,0,1],"background wall:0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,\nbackground:1,1,1,1,1,0,1,1,1,1,\n1,0,1,1,1,1,1,0,0,1,\n1,1,1,1,0,1,1,1,1,1,\n0,1,1,1,1,1,0,0,1,1,\nbackground crate:2,background player3:3,1,0,1,1,2,1,1,0,\n1,1,1,1,1,0,0,1,1,background target:4,\n1,1,0,1,1,4,1,1,0,1,\n2,4,1,1,0,0,1,1,4,1,\n1,0,1,1,background crate target:5,1,1,0,1,background player1:6,\n4,1,1,0,0,1,1,2,1,1,\n0,1,1,background player2:7,1,1,0,1,1,1,\n1,1,0,0,1,1,1,1,1,0,\n1,1,1,1,1,0,1,1,2,1,\n1,0,0,1,1,1,1,1,0,1,\n1,1,1,1,0,1,1,1,1,1,\n0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,\n",1,"1627894393467.7576"] + "Sokoban[Sokoban[Sokoban]]]", + ["title Sokoban[Sokoban[Sokoban]]]\nauthor increpare\nhomepage www.increpare.com\n\nrequire_player_movement\n\n========\nOBJECTS\n========\n\nBackground\ngray\n\nTarget\ndarkgray\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkgreen darkgreen\n00010\n11111\n01000\n11111\n00010\n\nPlayer1\ndarkblue darkblue darkblue darkblue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nred\n00000\n0...0\n0...0\n0...0\n00000\n\nPlayer2\nblue blue blue blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nPlayer3\nlightblue lightblue lightblue lightblue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\n\n=======\nLEGEND\n=======\n\nplayer = player1\nplayers = player1 or player2 or Player3\n\n. = Background\n# = Wall\n1 = Player1\n2 = player2 \n3 = player3\n* = Crate\n@ = Crate and Target\nO = Target\n\nobstacle = wall or crate \n=======\nSOUNDS\n=======\n\nsfx0 68966907 (Crate move 1)\nsfx1 27936307 (crate move 2)\nsfx2 35780507 (Crate move 3)\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayers, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | stationary Crate | no obstacle ] [stationary player2]-> [ | Player | Crate ] [> player2] sfx0\n[ > Player2 | stationary Crate | no obstacle ] [stationary player3] -> [ | Player2 | Crate ] [> player3] sfx1\n[ > player3 | stationary crate | no obstacle] -> [ | player3 | crate ] sfx2\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Levels 3 of 3\n\n##########\n#........#\n#........#\n#..*oo*..#\n#...3....#\n#........#\n##########\n#........#\n#........#\n#..*oo*..#\n#...2....#\n#........#\n##########\n#........#\n#........#\n#..*oo*..#\n#...1....#\n#........#\n##########\n\nmessage You did good doing good doing good!\n", [1, 1, 0, 3, 0, 3, 3, 2, 3, 2, 1, 1, 1, 0, 3, 2, 3, 0, 3, 0, 1], "background wall:0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,\nbackground:1,1,1,1,1,0,1,1,1,1,\n1,0,1,1,1,1,1,0,0,1,\n1,1,1,1,0,1,1,1,1,1,\n0,1,1,1,1,1,0,0,1,1,\nbackground crate:2,background player3:3,1,0,1,1,2,1,1,0,\n1,1,1,1,1,0,0,1,1,background target:4,\n1,1,0,1,1,4,1,1,0,1,\n2,4,1,1,0,0,1,1,4,1,\n1,0,1,1,background crate target:5,1,1,0,1,background player1:6,\n4,1,1,0,0,1,1,2,1,1,\n0,1,1,background player2:7,1,1,0,1,1,1,\n1,1,0,0,1,1,1,1,1,0,\n1,1,1,1,1,0,1,1,2,1,\n1,0,0,1,1,1,1,1,0,1,\n1,1,1,1,0,1,1,1,1,1,\n0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,\n", 1, "1627894393467.7576"] ], [ - "Varifocal Nightmare", - ["title Varifocal Nightmare\nauthor increpare\nhomepage www.increpare.com\n\ncolor_palette c64\n( verbose_logging )\n\ntext_color blue\n========\nOBJECTS\n========\n\nBackground\ndarkred\n\n\nTarget1a\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTarget1b\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTarget1c\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\nCrate1a\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\nCrate1b\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\nCrate1c\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\ntarget2a\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\ntarget2b\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\ntarget2c\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\ncrate2a\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\ncrate2b\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\ncrate2c\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\nWall\ndarkblue black\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange #999999 purple\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\n\n\n=======\nLEGEND\n=======\ntarget1 = Target1a or Target1b or Target1c\ntarget2 = target2a or target2b or target2c\ncrate1 = Crate1a or Crate1b or Crate1c\ncrate2 = crate2a or crate2b or crate2c\n\ncrate = crate1 or crate2\ntarget = target1 or target2\n. = Background\n# = Wall\nP = Player\n\n1 = Crate1a\n2 = crate1b \n3 = crate1c\n4 = Target1a\n5 = Target1b\n6 = Target1c\n\n7 = Target1a and Crate1a\n8 = Target1b and crate1b \n9 = Target1c and Crate1c\n\n\nq = Crate2a\nw = crate2b \ne = crate2c\nr = Target2a\nt = Target2b\ny = Target2c\n\nu = Target2a and Crate2a\ni = Target2b and crate2b \no = Target2c and Crate2c\n\n=======\nSOUNDS\n=======\nsfx0 10654107 (crate push)\nstartlevel 39415905\nendlevel 15587500\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget1, target2\nPlayer, crate1, crate2, wall\n\n======\nRULES\n======\n\n\n[ > player | Crate1a | no wall no crate ] [ target2a | no wall no target ] -> [ | player | crate1a ] [ | target2a ] sfx0\n[ > player | crate1b | no wall no crate ] [ target2b | no wall no target ] -> [ | player | crate1b ] [ | target2b ] sfx0\n[ > player | crate1c | no wall no crate ] [ target2c | no wall no target ] -> [ | player | crate1c ] [ | target2c ] sfx0\n[ > player | crate2a | no wall no crate ] [ target1a | no wall no target ] -> [ | player | crate2a ] [ | target1a ] sfx0\n[ > player | crate2b | no wall no crate ] [ target1b | no wall no target ] -> [ | player | crate2b ] [ | target1b ] sfx0\n[ > player | crate2c | no wall no crate ] [ target1c | no wall no target ] -> [ | player | crate2c ] [ | target1c ] sfx0\n\n[ > player | no wall no crate ] -> [ | player ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 5 Exits exist\n\n###########\n#....#....#\n#.#.1#.#.r#\n#243.#tqy.#\n#....#....#\n#56.p#we.p#\n###########\n\nmessage Level 2 of 5 Thus shut\n###########\n#..###..###\n#r.###1.###\n#pt..#p2..#\n#q.w.#4.5.#\n#..###..###\n###########\n\n\nmessage Level 3 of 5 Fist fits\n###########\n#.4.##.q.##\n#.1.p#.r.p#\n##.2.##.t.#\n###.5###.w#\n####.####.#\n###########\n\nmessage Level 4 of 5 Pest pets\n#########\n###..####\n#..8....#\n#.#.p#.1#\n#.4..#..#\n#########\n###..####\n#..i....#\n#.#.p#.r#\n#.q..#..#\n#########\n\nmessage Level 5 of 5 Best bets\n\n#############\n#######...###\n#######.#.###\n#....4p1..###\n#.#.#.#.#####\n#.2..9.5#...#\n#########.#.#\n###....qpr..#\n###.#.#.#.###\n###.t..o.w###\n#############\n\nmessage Congratulations Congratulasiont\n\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*O.#\n##.*P*.#\n#..O*O.#\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",[2,1,0,0,0,1,1,2,3,3],"background wall:0,0,0,0,0,0,0,0,background target1a:1,background:2,0,\n0,0,0,0,2,2,background crate1b:3,0,0,0,0,\n2,background player:4,2,2,0,0,0,0,background crate1a:5,2,background target1b:6,\n2,0,0,0,0,0,0,0,0,0,background crate2a:7,\n2,0,0,0,0,0,2,2,background target2b:8,0,0,\n0,0,2,2,2,2,0,0,0,0,background player target2a:9,\n2,background crate2b:10,2,0,0,0,0,0,0,0,0,\n",5,"1627894408429.9158"] + "Varifocal Nightmare", + ["title Varifocal Nightmare\nauthor increpare\nhomepage www.increpare.com\n\ncolor_palette c64\n( verbose_logging )\n\ntext_color blue\n========\nOBJECTS\n========\n\nBackground\ndarkred\n\n\nTarget1a\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTarget1b\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTarget1c\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\nCrate1a\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\nCrate1b\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\nCrate1c\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\ntarget2a\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\ntarget2b\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\ntarget2c\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\ncrate2a\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\ncrate2b\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\ncrate2c\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\nWall\ndarkblue black\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange #999999 purple\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\n\n\n=======\nLEGEND\n=======\ntarget1 = Target1a or Target1b or Target1c\ntarget2 = target2a or target2b or target2c\ncrate1 = Crate1a or Crate1b or Crate1c\ncrate2 = crate2a or crate2b or crate2c\n\ncrate = crate1 or crate2\ntarget = target1 or target2\n. = Background\n# = Wall\nP = Player\n\n1 = Crate1a\n2 = crate1b \n3 = crate1c\n4 = Target1a\n5 = Target1b\n6 = Target1c\n\n7 = Target1a and Crate1a\n8 = Target1b and crate1b \n9 = Target1c and Crate1c\n\n\nq = Crate2a\nw = crate2b \ne = crate2c\nr = Target2a\nt = Target2b\ny = Target2c\n\nu = Target2a and Crate2a\ni = Target2b and crate2b \no = Target2c and Crate2c\n\n=======\nSOUNDS\n=======\nsfx0 10654107 (crate push)\nstartlevel 39415905\nendlevel 15587500\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget1, target2\nPlayer, crate1, crate2, wall\n\n======\nRULES\n======\n\n\n[ > player | Crate1a | no wall no crate ] [ target2a | no wall no target ] -> [ | player | crate1a ] [ | target2a ] sfx0\n[ > player | crate1b | no wall no crate ] [ target2b | no wall no target ] -> [ | player | crate1b ] [ | target2b ] sfx0\n[ > player | crate1c | no wall no crate ] [ target2c | no wall no target ] -> [ | player | crate1c ] [ | target2c ] sfx0\n[ > player | crate2a | no wall no crate ] [ target1a | no wall no target ] -> [ | player | crate2a ] [ | target1a ] sfx0\n[ > player | crate2b | no wall no crate ] [ target1b | no wall no target ] -> [ | player | crate2b ] [ | target1b ] sfx0\n[ > player | crate2c | no wall no crate ] [ target1c | no wall no target ] -> [ | player | crate2c ] [ | target1c ] sfx0\n\n[ > player | no wall no crate ] -> [ | player ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 5 Exits exist\n\n###########\n#....#....#\n#.#.1#.#.r#\n#243.#tqy.#\n#....#....#\n#56.p#we.p#\n###########\n\nmessage Level 2 of 5 Thus shut\n###########\n#..###..###\n#r.###1.###\n#pt..#p2..#\n#q.w.#4.5.#\n#..###..###\n###########\n\n\nmessage Level 3 of 5 Fist fits\n###########\n#.4.##.q.##\n#.1.p#.r.p#\n##.2.##.t.#\n###.5###.w#\n####.####.#\n###########\n\nmessage Level 4 of 5 Pest pets\n#########\n###..####\n#..8....#\n#.#.p#.1#\n#.4..#..#\n#########\n###..####\n#..i....#\n#.#.p#.r#\n#.q..#..#\n#########\n\nmessage Level 5 of 5 Best bets\n\n#############\n#######...###\n#######.#.###\n#....4p1..###\n#.#.#.#.#####\n#.2..9.5#...#\n#########.#.#\n###....qpr..#\n###.#.#.#.###\n###.t..o.w###\n#############\n\nmessage Congratulations Congratulasiont\n\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*O.#\n##.*P*.#\n#..O*O.#\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", [2, 1, 0, 0, 0, 1, 1, 2, 3, 3], "background wall:0,0,0,0,0,0,0,0,background target1a:1,background:2,0,\n0,0,0,0,2,2,background crate1b:3,0,0,0,0,\n2,background player:4,2,2,0,0,0,0,background crate1a:5,2,background target1b:6,\n2,0,0,0,0,0,0,0,0,0,background crate2a:7,\n2,0,0,0,0,0,2,2,background target2b:8,0,0,\n0,0,2,2,2,2,0,0,0,0,background player target2a:9,\n2,background crate2b:10,2,0,0,0,0,0,0,0,0,\n", 5, "1627894408429.9158"] ], [ - "Gem Socketeer", - ["title Gem Socketeer \nauthor increpare\nhomepage www.increpare.com\n\n\n(many levels made with the assistance of marcos don's sokoban solver - https://marcosdon.github.io/PuzzleScriptWithSolver/editor.html )\n\n(thanks to ggn for feedback + testing!)\n\nbackground_color #04212a\ntext_color #d494de\n\nrun_rules_on_level_start\n( debug )\n(verbose_logging)\n\n========\nOBJECTS\n========\n\nBackground\n#2c7678 #26837d #226768\n00100\n01110\n11111\n01110\n00100\n\n\nbgtile_nw ;\n#26837d #226768 #2c7678\n00001\n00012\n00122\n01222\n12222\n\n\n\nbgtile_ne\n#226768 #26837d #2c7678\n01111\n20111\n22011\n22201\n22220\n\n\n\nbgtile_sw\n#226768 #2c7678 #26837d\n01111\n20111\n22011\n22201\n22220\n\n\n\nbgtile_se\n#2c7678 #226768 #26837d\n00001\n00012\n00122\n01222\n12222\n\n\n\ntarget_nw 1\n#ffe56f #ffd100 #d29500\n...00\n..112\n.112.\n112..\n12...\n\n\n\ntarget_ne 2\n#ffe56f #d29500 #ffd100\n00...\n120..\n.120.\n..120\n...12\n\n\n\ntarget_sw 3\n#ffd100 #d29500 #ffe56f\n01...\n02...\n102..\n.102.\n..102\n\n\ntarget_se 4\n#d29500 #ffd100 #ffe56f\n...01\n...01\n..210\n.210.\n210..\n\ntarget_ses {\n#d29500 #ffd100\n...01\n.....\n.....\n.....\n.....\n\ntarget_sws }\n#ffd100 #d29500\n01...\n.....\n.....\n.....\n.....\n\nplayer_nw 5\n#3c75ee #86c1ff #5d96ff #1447b6\n....0\n...01\n..020\n.0203\n03032\n\n\n\n\nplayer_ne 6\n#5d96ff #d6eaff #86c1ff\n0....\n10...\n010..\n2010.\n12020\n\n\n\n\nplayer_sw 7\n#1447b6 #002d8e #3c75ee\n01020\n.0102\n..010\n...01\n....0\n\n\n\n\n\nplayer_se 8\n#3c75ee #5d96ff #1447b6\n01010\n1010.\n010..\n20...\n0....\n\n\n\n\ncrate_nw q\n#f9d6ff #e29aee #eeb1f9 #ba4fca\n....0\n...01\n..010\n.0121\n01312\n\n\n\n\ncrate_ne w\n#f9d6ff #f6c1ff\n0....\n10...\n010..\n1010.\n01010\n\n\n\ncrate_sw e\n#ba4fca #ca66d9\n01010\n.0101\n..010\n...01\n....0\n\n\n\n\ncrate_se r\n#eeb1f9 #e29aee #f9d6ff #ca81d8 #ba4fca\n01231\n1031.\n431..\n31...\n1....\n\n\n\n\n\n\n\nwall_nw\n#8f6d56 #7b5b45 #5e422f\n....0\n...00\n..001\n.0012\n00121\n\n\nwall_ne\n#ab866d #7b5b45 #463326\n0....\n00...\n100..\n2100.\n12100\n\nwall_se\n#7b5b45 #8f6d56 #5e422f\n01022\n1022.\n022..\n22...\n2....\n\nwall_sw\n#463326 #7b5b45 #ab866d\n00121\n.0012\n..001\n...00\n....0\n\nwalljoin_downdiag\n#7b5b45\n0....\n.0...\n..0..\n...0.\n....0\n\nwalljoin_updiag\n#7b5b45\n....0\n...0.\n..0..\n.0...\n0....\n\n\n=======\nLEGEND\n=======\n\nplayer = player_nw or player_ne or player_sw or player_se\ncrate = crate_nw or crate_ne or crate_sw or crate_se\ntarget = target_nw or target_ne or target_sw or target_se\n\npusher_nw = player_nw or crate_nw\npusher_sw = player_sw or crate_sw\npusher_ne = player_ne or crate_ne\npusher_se = player_se or crate_se\n\nt = crate_nw and crate_se \ny = crate_ne and crate_sw\n\nu = crate_nw and player_se\ni = crate_ne and player_sw\no = crate_sw and player_ne\np = crate_se and player_nw\n\n! = wall_nw and player_se\n\" = wall_ne and player_sw\n£ = wall_sw and player_ne\n$ = wall_se and player_nw\n\n. = Background\n\na = wall_nw\ns = wall_ne\nd = wall_se \nf = wall_sw\n\ncollides_nw = wall_ne or wall_sw or crate_ne or crate_sw\ncollides_ne = wall_nw or wall_se or crate_nw or crate_se\ncollides_sw = wall_se or wall_nw or crate_se or crate_nw\ncollides_se = wall_sw or wall_ne or crate_sw or crate_ne\n\ng = target_nw and wall_se\nh = target_ne and wall_sw\nj = target_sw and wall_ne\nk = target_se and wall_nw\n\nl = wall_nw and wall_se and walljoin_updiag\nm = wall_ne and wall_sw and walljoin_downdiag\n\nz = crate_nw and target_nw\nx = crate_ne and target_ne\nc = crate_sw and target_sw\nb = crate_se and target_se\n\n\nn = crate_nw and wall_se\n, = crate_ne and wall_sw\n/ = crate_sw and wall_ne\n? = crate_se and wall_nw\n\n% = crate_nw and target_nw and player_se\n& = crate_ne and target_ne and player_sw\n* = crate_sw and target_sw and player_ne\n_ = crate_se and target_se and player_nw\n\n丁 = crate_nw and target_nw and player_se\n上 = crate_ne and target_ne and player_sw\n下 = crate_sw and target_sw and player_ne\n不 = crate_se and target_se and player_nw\n\n(丁上下不且世丙並\n中丸\n主乂乃之乎九也事二五亡交亦京亭人)\n\n=======\nSOUNDS\n=======\n\ncrate move 93772107\nendlevel 32556705\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbgtile_nw\nbgtile_ne\nbgtile_sw\nbgtile_se\n\nwall_se\nwall_sw\n\ncrate_sw\ncrate_se\nplayer_sw\nplayer_se\n\nwall_nw\nwall_ne\n\nwalljoin_downdiag\nwalljoin_updiag\n\ncrate_nw\ncrate_ne\nplayer_nw\nplayer_ne\n\n\ntarget_sw\ntarget_se\ntarget_sws\ntarget_ses\ntarget_nw\ntarget_ne\n\n======\nRULES\n======\n\n\n(drawing/spawning code. comment out later I guess)\nright [ player_nw | no player_ne ] -> [ player_nw | player_ne ]\nright [ crate_nw | no crate_ne ] -> [ crate_nw | crate_ne ]\nright [ target_nw | no target_ne ] -> [ target_nw | target_ne ]\nright [ wall_nw | no wall_ne ] -> [ wall_nw | wall_ne ]\n\ndown [ player_nw | no player_sw ] -> [ player_nw | player_sw ]\ndown [ crate_nw | no crate_sw ] -> [ crate_nw | crate_sw ]\ndown [ target_nw | no target_sw ] -> [ target_nw | target_sw ]\ndown [ wall_nw | no wall_sw ] -> [ wall_nw | wall_sw ]\n\n\nright [ player_sw | no player_se ] -> [ player_sw | player_se ]\nright [ crate_sw | no crate_se ] -> [ crate_sw | crate_se ]\nright [ target_sw | no target_se ] -> [ target_sw | target_se ]\nright [ wall_sw | no wall_se ] -> [ wall_sw | wall_se ]\n\ndown [ target_sw | no target_ses ] -> [ target_sw | target_ses ]\ndown [ target_se | no target_sws ] -> [ target_se | target_sws ]\n\n(wall mortar)\n\n[wall_se wall_nw ] -> [wall_se wall_nw walljoin_updiag ]\n[wall_ne wall_sw ] -> [wall_ne wall_sw walljoin_downdiag ]\n(end of spawning code)\n\n\nstartloop\n(side push)\n[ up pusher_nw stationary crate_se ] -> [ up pusher_nw up crate_se ]\n+ [ left pusher_nw stationary crate_se ] -> [ left pusher_nw left crate_se ]\n\n+ [ up pusher_ne stationary crate_sw ] -> [ up pusher_ne up crate_sw ]\n+ [ right pusher_ne stationary crate_sw ] -> [ right pusher_ne right crate_sw ]\n\n+ [ down pusher_sw stationary crate_ne ] -> [ down pusher_sw down crate_ne ]\n+ [ left pusher_sw stationary crate_ne ] -> [ left pusher_sw left crate_ne ]\n\n+ [ down pusher_se stationary crate_nw ] -> [ down pusher_se down crate_nw ]\n+ [ right pusher_se stationary crate_nw ] -> [ right pusher_se right crate_nw ]\n\n\n(direct centered push)\n+ up [ > pusher_nw | stationary crate_sw ] -> [ > pusher_nw | > crate_sw ]\n+ down [ > pusher_sw | stationary crate_nw ] -> [ > pusher_sw | > crate_nw ]\n+ right [ > pusher_ne | stationary crate_nw ] -> [ > pusher_ne | > crate_nw ]\n+ left [ > pusher_nw | stationary crate_ne ] -> [ > pusher_nw | > crate_ne ]\n\n\n(propagate motion through crate)\n+ right [ right crate_nw | stationary crate_ne ] -> [ right crate_nw | right crate_ne ]\n+ right [ crate_nw | right crate_ne ] -> [ right crate_nw | right crate_ne ]\n+ right [ right crate_sw | stationary crate_se ] -> [ right crate_sw | right crate_se ]\n+ right [ stationary crate_sw | right crate_se ] -> [ right crate_sw | right crate_se ]\n+ down [ stationary crate_ne | right crate_se ] -> [ right crate_ne | right crate_se ]\n+ down [ right crate_ne | stationary crate_se ] -> [ right crate_ne | right crate_se ]\n\n+ right [ left crate_nw | stationary crate_ne ] -> [ left crate_nw | left crate_ne ]\n+ right [ crate_nw | left crate_ne ] -> [ left crate_nw | left crate_ne ]\n+ right [ left crate_sw | stationary crate_se ] -> [ left crate_sw | left crate_se ]\n+ right [ stationary crate_sw | left crate_se ] -> [ left crate_sw | left crate_se ]\n+ down [ stationary crate_ne | left crate_se ] -> [ left crate_ne | left crate_se ]\n+ down [ left crate_ne | stationary crate_se ] -> [ left crate_ne | left crate_se ]\n\n+ right [ up crate_nw | stationary crate_ne ] -> [ up crate_nw | up crate_ne ]\n+ right [ crate_nw | up crate_ne ] -> [ up crate_nw | up crate_ne ]\n+ right [ up crate_sw | stationary crate_se ] -> [ up crate_sw | up crate_se ]\n+ right [ stationary crate_sw | up crate_se ] -> [ up crate_sw | up crate_se ]\n+ down [ stationary crate_ne | up crate_se ] -> [ up crate_ne | up crate_se ]\n+ down [ up crate_ne | stationary crate_se ] -> [ up crate_ne | up crate_se ]\n\n+ right [ down crate_nw | stationary crate_ne ] -> [ down crate_nw | down crate_ne ]\n+ right [ crate_nw | down crate_ne ] -> [ down crate_nw | down crate_ne ]\n+ right [ down crate_sw | stationary crate_se ] -> [ down crate_sw | down crate_se ]\n+ right [ stationary crate_sw | down crate_se ] -> [ down crate_sw | down crate_se ]\n+ down [ stationary crate_ne | down crate_se ] -> [ down crate_ne | down crate_se ]\n+ down [ down crate_ne | stationary crate_se ] -> [ down crate_ne | down crate_se ]\n\nendloop\n\n\n(if unresolved collisions, can remove all things because it's good)\nlate [ crate_nw collides_nw ] -> cancel\nlate [ crate_ne collides_ne ] -> cancel\nlate [ crate_sw collides_sw ] -> cancel\nlate [ crate_se collides_se] -> cancel\nlate [ player_nw collides_nw ] -> cancel\nlate [ player_ne collides_ne ] -> cancel\nlate [ player_sw collides_sw ] -> cancel\nlate [ player_se collides_se] -> cancel\n\ndown [ bgtile_nw | no bgtile_sw ] -> [ bgtile_nw | bgtile_sw ]\n+ down [ bgtile_sw | no bgtile_nw ] -> [ bgtile_sw | bgtile_nw ]\n\nright [ bgtile_nw | no bgtile_ne ] -> [ bgtile_nw | bgtile_ne ]\n+ right [ bgtile_ne | no bgtile_nw ] -> [ bgtile_ne | bgtile_nw ]\n\nright [ bgtile_sw | no bgtile_se ] -> [ bgtile_sw | bgtile_se ]\n+ right [ bgtile_se | no bgtile_sw ] -> [ bgtile_se | bgtile_sw ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\nAll Crate on Target\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 17\n;...................\n.........a..........\n........asas........\n.......amghls.......\n......amg21hls......\n.....amd3434fls.....\n....amd.{}{}.fls....\n...amd...as...fls...\n..amd...q,nw...fls..\n..fls...etyr...amd..\n...fls...er...amd...\n....fls..56..amd....\n.....fls.78.amd.....\n......fls..amd......\n.......flsamd.......\n........flmd........\n.........fd.........\n....................\n\n(Easyish - possible early level?)\n\nmessage Level 2 of 17\n;.....as......\n.....amls.....\n....amdfls....\n...amd..fls...\n..amd..qwfls..\n.amd.12er.fls.\namd..3412..fls\nfls..q}34..amd\n.fls.er{}.amd.\n..fls.56.amd..\n...fls78amd...\n....flsamd....\n.....flmd.....\n......fd......\n\n\nmessage Level 3 of 17\n(similar to above? no puzzle as such)\n;.......as.........\n.......amls........\n......amdfls.......\n.....amd..fls......\n....amd....fls.....\n...amd......fls....\n..amd...5....fls...\n.amd...aszx...fls..\n.fls...fnytx...fls.\n..fls...e1cb...amd.\n...fls...34}..amd..\n....fls..{}..amd...\n.....fls....amd....\n......fls..amd.....\n.......flsamd......\n........flmd.......\n.........fd........\n\nmessage Level 4 of 17\n\n;.......aas...\n.......amdls..\n......amd.fls.\n.....amd...fls\n....amd.qw..as\n...amd.12r.amd\n..amd.534.amd.\n.amd.128}amd..\namd.q34.amd...\nas..e{}amd....\nfls...amd.....\n.fls.amd......\n..flamd.......\n...fdd........\n\n\n\nmessage Level 5 of 17\n(easy but ok? level 2?)\n;.....as.......\n.....amls......\n.....fdfls.....\n.asasas.fls....\n.fdfdfd..fls...\n.as12..qw.fls..\n.fd312qyr56fls.\n.as124etw78amd.\n.fd34}.er.amd..\n.asa}as..amd...\n.fdfafd.amd....\n.....asamd.....\n.....flmd......\n......fd.......\n\n\nmessage Level 6 of 17\n\n(super trivial)\n;...aas.....\n...amdls....\n..amd.fls...\n.amd.qwfls..\namd..er.fls.\nas.125612fls\nfls347834.as\n.fl{}qw{}amd\n..flser.amd.\n...fls.amd..\n....flamd...\n.....fdd....\n\nmessage Level 7 of 17\n(nice level! level 2?)\n;.....as.......\n.....amls......\n....amdfls.....\n...amd..fls....\n..amd....fls...\n.amd..56..fls..\namd..a\"z...fls.\nfls..fn.z...fls\n.fls..e1....amd\n..fls..3...amd.\n...fls.{}.amd..\n....fls..amd...\n.....flsamd....\n......flmd.....\n.......fd......\n\n\n\n\nmessage Level 8 of 17\n(I like how this looks, it's otherwise a simple storeroom puzzle)\n(a bit tricky. push forward maybe)\n;.....as........as......\n.....amlaaaaaaaamls.....\n....amdflmddddlmdfls....\n...amd..fls..amd..fls...\n..amd....fd..fd....fls..\n.amd..qw.125612.qw..fls.\n.fls..er.347834.er..amd.\n..fls....a}..a}....amd..\n...fls..amd..fls..amd...\n....flsaalaaaaalsamd....\n.....flmddddddddlmd.....\n......fd........fd......\n\n\nmessage Level 9 of 17\n(meh but not actually the worst)\n;.....as............\n.....amls...........\n....amdfls..........\n...amd56fls.........\n..amd128.fls........\n.amd124..amd........\naas.34qwamd.........\nfdls{qy?md..........\n..flserfls..........\n...fls..fls..as.....\n....fls..flsamls....\n.....fls..flmdfls...\n......fls..fd..fls..\n......amd.......fls.\n.....amd.....as..fls\n....amd..as..fd..amd\n....fls..fd.....amd.\n.....fls.......amd..\n......fls..aasamd...\n.......flsamdlmd....\n........flmd.fd.....\n.........fd.........\n\nmessage Level 10 of 17\n\n(fine? not too hard? just have to work through it. not trial and errory )\n;.......as.......\n.......amls......\n......amdfls.....\n.....amd..fls....\n....amd.12.fls...\n...amd.q3qw.fls..\n..amd.12po12.fls.\n..fls.3qiq34.amd.\n...fls{}12{}amd..\n...amd..34.amd...\n..amd...{}amd....\n.af......amd.....\n..a.....amd......\n...a...amd.......\n....a.amd........\n.....afd.........\n.................\n\nmessage Level 11 of 17\n(fine?)\n;..............aas....\n..............amdls...\n.............amd.fls..\n............amd...fls.\n...........amd....amd.\n.......as.amd....amd..\n......amlamd..12amd...\n.....amdfdd..1.kmd....\n....amd.....12kmd.....\n...amd...qwajkmd......\n..amd...qyrflmd.......\n.amd...qyr..fls.......\n.fls...er...amd.......\n..fls..56..amd........\n...fls.78.amd.........\n....fls..amd..........\n.....flsamd...........\n......flmd............\n.......fd.............\n\n\n\nmessage Level 12 of 17\n(more space management than puzzle solving)\n;....a..............\n....a.a.............\n...a...a............\n..a.....a...........\n.a.......as.........\na.........ls........\n.a........fls.......\n..a......12fls......\n...a....q3qwfls.....\n....a..121212fls....\n....fls3q3q34.fls...\n.....fl{}12q}..fls..\n......fls34er...fls.\n.......fl{}..56..fls\n........fls..78..amd\n.........fls....amd.\n..........fls..amd..\n...........flsamd...\n............flmd....\n.............fd.....\n....................\n\nmessage Level 13 of 17\n(decent?)\n;...aas......\n...amdls.....\n..amd.fls....\n.amg2..als...\namd34..flls..\nas.56qw.fdls.\nfls78etw..fls\n.flas.er...as\n..flls..12amd\n...fls..3kmd.\n....fls.amd..\n.....flamd...\n......fdd....\n\n\n\nmessage Level 14 of 17\n(yeah fine swap-chambers = all good. intermediate?)\n;....aaaaas........\n....amddddls.......\n....as....fls......\n....as.....asaaas..\n....fls....almddls.\n...aaals...amd..fls\n..amdddg2..fd....as\n.amd..q34..qw...amd\namd...e{}.12r..amd.\nas....as..3kaaamd..\nfls..ams..{}lmdd...\n.flaamls.56.fls....\n..fdddas.78..as....\n......fls....as....\n.......flaaaaas....\n........fdddddd....\n\nmessage Level 15 of 17\n(kinda ok#? middle-intermediate)\n;....aas....\n....amdls...\n...amd.fls..\n..amd...fls.\n.amd12qw.fls\namd.312r..as\nfls.q35..amd\n.flse{78amd.\n..fls..amd..\n...flsamd...\n....flmd....\n.....fd.....\n\n\nmessage Level 16 of 17\n(hard but ok can be solved with brain)\n;...aas.....\n...amdls....\n..amd.fls...\n.amd...fls..\namd.q.1.fls.\nas...q...fls\nfls.1.5..amd\n.fls....amd.\n..fls..amd..\n...flsamd...\n....flmd....\n.....fd.....\n\n\n\nmessage Level 17 of 17\n(message also hard but i can solve these ok now?)\n;...aas.....\n...amdls....\n..amd.fls...\n.amd...fls..\namd.q.1.fls.\nas...5...fls\nfls.q.1..amd\n.fls....amd.\n..fls..amd..\n...flsamd...\n....flmd....\n.....fd.....\n\n\nmessage congrats for being good at socketing gems.\n\n\n(\nasasasas......\nfdfdfdfd......\nas....asasasas\nfd....fdfdfdfd\nas5612qw....as\nfd7834er....fd\nas..{}asasasas\nfd....fdfdfdfd\nasasasas......\nfdfdfdfd......\n\n\n\n......aaaaas.......\n.....amdfddls......\n....amd....fls.....\n...amd......fls....\n..amls..qw..amls...\n.amdfls.er.amdfls..\namd..fls12amd..fls.\nas....fd34fd....as.\nas.qw.125612qw..as.\nas.er.347834er..as.\nas....a.12a}....as.\nfls..amd34fls..amd.\n.flsamd.q}.flsamd..\n..flmd..er..flmd...\n...fls......amd....\n....fls....amd.....\n.....flaaaamd......\n......fddddd.......\n...................\n\n\n\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n\n\n\n.....................\n......aas............\n.....amdl.s..........\n....amd.f.ls.........\n....as....fls........\n....as.....asaaas....\n....fls....almddls...\n...aaals...amd..fls..\n..amdddg2..fd....as..\n.amd..q35.6qw...amd..\namd...e{7.12r..amd...\nas....as..3kaaamd....\nfls..aas..{}lmdd.....\n.flaamls....fls......\n..fdddas.....as......\n......fls....as......\n.......fl.s.amd......\n........f.lamd.......\n..........fdd........\n.....................\n\n....................\n............aaas....\n...........amddls...\n...aaaas..amd..fls..\n..amdddg2.fd....as..\n.amd..q346qw...amd..\namd...e{712r..amd...\nas....as.3kaaamd....\nfls..amd.{}dddd.....\n.flaamd.............\n..fddd..............\n....................\n\n....................\n....................\n....................\n....................\n.........as.........\n........amls..aaas..\n.......amdflsamddls.\n...aaaamd..flmd..fls\n..amdddg2...fd....as\n.amd..q3456.qw...amd\namd...e{}7812r..amd.\nas....as...3kaaamd..\nfls..amls..{mdddd...\n.flaamdflsamd.......\n..fddd..flmd........\n.........fd.........\n....................\n....................\n....................\n....................\n\n.......aas..........\n......amdls.........\n.....amd.fls........\n.....as...fls.......\n.....as....as.......\n.....fls...as.aaas..\n......flsqwasamddls.\n...aaaamde1hlmd..fls\n..amdddg2.34fd....as\n.amd..q3456}qw...amd\namd...e{}7812r..amd.\nas....as12.3kaaamd..\nfls..amljqwamdddd...\n.flaamda{}rfls......\n..fddd.as...fls.....\n.......as....as.....\n.......fls...as.....\n........fls.amd.....\n.........flamd......\n..........fdd.......\n\n.......aas..........\n......amdls.........\n.....amd.fls........\n.....as...fls.......\n.....as....as.......\n.....fls...as.aaas..\n......fls56asamddls.\n...aaaamd78flmd..fls\n..amdddd....fd....as\n.amd.....as.qw...amd\namd......fd.er..amd.\nas....as....aaaamd..\nfls..amls..amdddd...\n.flaamdas..fls......\n..fddd.as...fls.....\n.......as....as.....\n.......fls...as.....\n........fls.amd.....\n.........flamd......\n..........fdd.......\n\n(impossible)\n....aas......\n...amdls.....\n..amd.fls....\n.amg2..fls...\namd34..amls..\nas56}qwfdfls.\nfl\"8.etw..fls\n.flsaser...as\n..flmd..12amd\n...fls..3kmd.\n....fls.amd..\n.....flamd...\n......fdd....\n\n\n(trivial)\n....aas......\n...amdls.....\n..amd.fls....\n.amg2..fls...\namd34...fls..\nas.{}qw..fls.\nfls..etw..fls\n.fls56er...as\n..fl\"8..12amd\n...fls..3kmd.\n....fls.amd..\n.....flamd...\n......fdd....\n\n\n(trivial)\n....aas......\n...amdls.....\n..amd.fls....\n.amd.1.fls...\namd.....fls..\nas...5.q.fls.\nfls.q.....as.\n.fl..1...amd.\n..fls...amd..\n...fls.amd...\n....flamd....\n.....fdd.....\n.............\n\n....aas......\n...a..ls.....\n..a...fls....\n.a.....fls...\na...12qwfls..\na...312r.fls.\nfls.q356.a...\n.flse{78a....\n..fls..a.....\n...flsa......\n....fl.......\n.....f.......\n.............\n\n.....as......\n....amls.....\n...amdfls....\n..amd..fls...\n.amd12qwfls..\namd.312r.fls.\nfls.q356..as.\n.flse{78.amd.\n..fls...amd..\n...fls.amd...\n....flamd....\n.....fdd.....\n.............\n\n\n......as......\n.....amls.....\n....amdfls....\n...amd..fls...\n..amd....fls..\n.amd.12qw.fls.\namd..312r..fls\nfls..{34...amd\n.fls.e{}56amd.\n..fls...7!md..\n...fls..amd...\n....flsamd....\n.....flmd.....\n......fd......\n\n\n\n..............\n.....aas......\n....amdls.....\n...amd.fls....\n..amd...fls...\n.amd...qwfls..\n.as...a/r.fls.\n.fls.5£g2.amd.\n..fls7834amd..\n...fls.{amd...\n....flsamd....\n.....flmd.....\n......fd......\n..............\n\n..............\n.....aas......\n....amdls.....\n...amd.fls....\n..amd...fls...\n.amd...qwfls..\n.as...a/r.fas.\n.fls.5£g2..ad.\n..fls7834.a...\n...fls.{.a....\n....fls.a.....\n.....faa......\n.......d......\n..............\n\n..............\n.....aas......\n....amdls.....\n...amd.fls....\n..amd...fls...\n.amd...qwfls..\na.....a/r.fls.\n.a...5£g2..as.\n..a..7834.amd.\n...a...{}amd..\n....a...amd...\n.....a.amd....\n......a.d.....\n..............\n\n.......as............\n......amls...........\n.....am$£ls..........\n....amd78fls.........\n...amg2...as.........\n..amg24qwamd.........\n..flj4qy?md..........\n...fl}erfls..........\n....fls..fls..as.....\n.....fls..flsamls....\n......fls..flmdfls...\n.......fls..fd..fls..\n.......amd.......fls.\n......amd.....as..fls\n.....amd..as..fd..amd\n.....fls..fd.....amd.\n......fls.......amd..\n.......fls..aasamd...\n........flsamdlls....\n.........flmd.fdd....\n..........fd.........\n.....................\n\n\n\n.......as............\n......amls...........\n.....am$£ls..........\n....amg28fls.........\n...amg24..as.........\n..amd34qwamd.........\n..fls{qy?md..........\n...flserfls..........\n....fls..fls..as.....\n.....fls..flsamls....\n......fls..flmdfls...\n.......fls..fd..fls..\n........fls......fls.\n........amd...as..fls\n.......amd....fd..amd\n......amd..as....amd.\n......fls..fd...amd..\n.......fls....aamd...\n........fls..amdd....\n.........flsamd......\n..........flmd.......\n...........fd........\n\n\n....................\n.......1............\n......q.q...........\n.....1.1.1..........\n......q.q.q.........\n.......1.1..........\n........q...........\n...........5........\n....................\n....................\n\n\n(trivial)\n..........aas.....\n.....as..amdls....\n....amlsamd.fls...\n...amdflmd...fls..\n..amd..fd.qw..fls.\n.amd......etw56fls\n.fls......a/r78amd\n..fls.....fls.amd.\n..amd......flamd..\n.amd.....12.amd...\namd..as..34amd....\nfls..fg2.{amd.....\n.fls..34.amd......\n..fls.{}amd.......\n...fls.amd........\n....flamd.........\n.....fls..........\n......fd..........\n\n(dont' like)\n..........................\n.asasasasasas.............\n.fdfdfdfdfdfd.............\n.as........asasasasas.....\n.fd........fdfdfdfdfd.....\n.as..qwqw........56as.....\n.fd..erer........78fd.....\n.as..qw..as121212..as.....\n.fd..er..fd343434..fd.....\n.as......asa}a}a}asas.....\n.fd......fdfdfdfdfdfd.....\n.asasasasas...............\n.fdfdfdfdfd...............\n..........................\n\n\n\n..............aas...\n.............amdls..\n............amd.fls.\n...........amd...fls\n..........amd....amd\n......as.amd....amd.\n.....amlamd..12amd..\n....amdfdd..1jamd...\n...amd.....12amd....\n..amd...qwajamd.....\n.amd...qyrflmd......\namd...qyr..fls......\nfls...er...amd......\n.fls..56..amd.......\n..fls.78.amd........\n...fls..amd.........\n....flsamd..........\n.....flmd...........\n......fd............\n\n\n..............as....\n.............amls...\n............amdfls..\n...........amd..fls.\n..........amd....als\n......as.amd....amdd\n.....amlamd..12amd..\n....amdfdd..12kmd...\n...amd.....12kmd....\n..amd...qwajkmd.....\n.amd...qyrflmd......\namd...qyr..fls......\nfls...er...amd......\n.fls..56..amd.......\n..fls.78.amd........\n...fls..amd.........\n....flsamd..........\n.....flmd...........\n......fd............\n\n(actually fun to bop about in, but not hard)\n..................\n.....as...........\n....amls..........\n...amdfls.........\n..amd..fls........\n.amd....fls.......\n.fls..qw.fls......\n..flsqyr..fls.....\n..amder56..fls....\n.amd...7812.as....\namd..as..34amd....\nfls..fg2.{amd.....\n.fls..34.amd......\n..fls.{}amd.......\n...fls.amd........\n....flamd.........\n.....fdd..........\n..................\n\n(trivial)\n...........as.....\n....as....amls....\n...amls..amdfls...\n..amghlsamd..fls..\n.amd34flmd....fls.\n.fls{}.fd.....amd.\n..fls......qwamd..\n...fls.....e?md...\n....flszx..amd....\n.....fljb..fls....\n......fl}56.fls...\n.......fl\"8.amd...\n........flsamd....\n.........flmd.....\n..........fd......\n..................\n..................\n..................\n..................\n\n(early-intermediate. ugly)\n..................\n.....as...........\n....aas...........\n...amdls..........\n..amd.fls.........\n.amd...fls........\n.fls..qwfls.......\n..flsqyr.fls......\n..amder56.fls.....\n.amd...7812fls....\namd..as..34amd....\nfls..fg2.{amd.....\n.fls..34.amd......\n..fls.{}amd.......\n...fls.amd........\n....flamd.........\n.....fdd..........\n..................\n\n\n........as...\n....as.amls..\n...amlamdfls.\n..amghdd..fls\n.amd34.....as\n.as.{}56qwamd\n.flszx78e?md.\n..fljb...fls.\n...fl}...amd.\n....fls.amd..\n.....flamd...\n......fdd....\n.............\n\n.....asasasasas...\n.....fdfdfdfdfd...\n.asasas......as...\n.fdfdfd......fd...\n.as12..qw....as...\n.fd312qyr.56.fd...\n.as124etw.78.as...\n.fd34}.er....fd...\n.asa}as......as...\n.fdfdfd......fd...\n.....asasasasas...\n.....fdfdfdfdfd...\n\n......as.......\n.....amls......\n....amdfls.....\n...amd..fls....\n..amd....fls...\n.amd..56..fls..\namd..a\"ux..fls.\nfls..fnytx..fls\n.fls..e1cb..amd\n..fls..34}.amd.\n...fls.{}.amd..\n....fls..amd...\n.....flsamd....\n......flmd.....\n.......fd......\n\n......as.......\n.....amls......\n....amdfls.....\n...amd..fls....\n..amd....fls...\n.amd..56..fls..\namd..a\"1x..fls.\nfls..fny1x..fls\n.fls..e1cb..amd\n..fls..34}.amd.\n...fls.{}.amd..\n....fls..amd...\n.....flsamd....\n......flmd.....\n.......fd......\n\n\n....asas....\n...amdfls...\n..amg21hls..\n.amd3434fls.\namd.{}{}.fls\nfd...as...fd\nas..q,nw..as\nfls.erer.amd\n.fls....amd.\n..fls56amd..\n...fl\"!md...\n....fdfd....\n\n(unsolvable)\n....asas....\n...amdfls...\n..amg21hls..\n.amd3kj4fls.\namd.{}{}.fls\nfd...as...fd\nas..q,nw..as\nfls.erer.amd\n.fls....amd.\n..fls56amd..\n...fl\"!md...\n....fdfd....\n\n....asas....\n...amdfls...\n..amd..fls..\n.amd....fls.\namd...56.fls\nfd....78..fd\nas........as\nfls......amd\n.fls....amd.\n..fls..amd..\n...flsamd...\n....fdfd....\n\n\n(trivil)\n....asas....\n...asdfas...\n..asd..fas..\n.asd....fas.\nasd...56.fas\nfd.qw.78..fd\nas12tw....as\nflj12tw..amd\n.faj12r.amd.\n..faj4.amd..\n...fa}amd...\n....fdfd....\n\n\n\n(impossible)\n...as..as...\n..amlsamls..\n.amghlmdfls.\namd34fd..fls\nfls{}56qwamd\n.flszi8e?md.\n..fljb..fls.\n...fl}..amd.\n....flsamd..\n.....flmd...\n......fd....\n\n.....as......\n....amls.....\n...amdfls....\n..amd..fls...\n.amd.56.fls..\namd.a7zx.fls.\nfls.fnytx.fls\n.fls.e1cb.amd\n..fls.34}amd.\n...fls{}amd..\n....flsamd...\n.....flmd....\n......fd.....\n\n\n........as......\n.......amls.....\n....asamdfls....\n...amlmnw.fls...\n..amdfdetw.fls..\n.amd...a/p6amd..\n.fls...fl7amd...\n.amd...1hlmd....\namd.as.3kmd.....\nfls.fg2amd......\n.fls.3kmd.......\n..flsamd........\n...flmd.........\n....fd..........\n\n.......a........\n......a.a.......\n.....a...a......\n....a...5.a.....\n...a...q...a....\n..a...z.....a...\n.a...z.....a....\na...1...a.a.....\n.a.....a.a......\n..a...a.........\n...a.a..........\n....a...........\n................\n................\n................\n\n......a.......\n.....a.a......\n....a...a.....\n...a.....a....\n..a...1...a...\n.a...q.q...a..\na...1.5.1...a.\n.a...q.q...a..\n..a...1...a...\n...a.....a....\n..a.....a.....\n...a...a......\n....a.a.......\n.....a........\n..............\n\n...........a....\n..........a.a...\n.........a...a..\n........a...5.a.\n.......a...a...a\n........a.....a.\n.....a.a.....a..\n....a.a...1.a...\n...a.....1.a....\n..a.....1.a.....\n.a...q.a.a......\na...q...a.......\n.a...q...a......\n..a.....a.......\n...a...a........\n....a.a.........\n.....a..........\n................\n................\n\n................\n......a.........\n.....a.a........\n....a...a.......\n...a.....a......\n..a...q...a.....\n.a...1.1...a....\na...q.q.q...a...\n.a...1.1.1...a..\n..a...q.q...a...\n...a...1.5.a....\n....a.....a.....\n.....a...a......\n......a.a.......\n.......a........\n................\n................\n................\n\n.....a...........\n....a.a..........\n...a.5.a.........\n..a.1...a........\n.a.1.q.a.........\na...q.a..........\n.a.....a.........\n..a.a...a........\n...a.a...a.a.....\n......a...a.a....\n.......a.....a...\n......a.......a..\n.....a.....a...a.\n....a...a.....a..\n.....a.......a...\n......a...a.a....\n.......a.a.a.....\n........a........\n.................\n\n....a.a......\n...a.a.a.....\n..a.....a....\n.a...q...a...\na.1.q.....a..\n.a.5.....1.a.\n..a.a.a.a.a..\n...a.a.a.a...\n.............\n\n.......a......\n......a.a.....\n.....a...a....\n....a.....a...\n...a.1.a...a..\n....a.1.a...a.\n.....a.1.q.a..\n......a...a...\n.....a.q...a..\n....a...a...a.\n...a.q.....a..\n..a...a...a...\n.a.5.....a....\na...a...a.....\n.a.....a......\n..a...a.......\n...a.a........\n....a.........\n..............\n\n\n\n...as..as...\n..amlsamls..\n.amghlmdfls.\namd34fd..fls\nfls{}56qwamd\n.flszi8ermd.\n..fljb..fls.\n...fl}..amd.\n....flsamd..\n.....flmd...\n......fd....\n\n...as..as...\n..amlsamls..\n.amdflmdfls.\namd..fd..fls\nfls......amd\n.fls....amd.\n..fls...fls.\n...fls..amd.\n....flsamd..\n.....flmd...\n......fd....\n\n\n;...asas....\n...amdfls...\n..amd..fls..\n.amd....fls.\namd...56.fls\nfd.qw.78..fd\nas12tw....as\nflj12tw..amd\n.flj12r.amd.\n..flj4.amd..\n...fl}amd...\n....fdfd....\n\n...aas...\n..amdls..\n.amd.fls.\namq..5fls\nfd.q...as\nas1...amd\nfls1.amd.\n.flsamd..\n..fdfd...\n\n..asas..\n.amdfls.\namd..fls\nfd....fd\nas....as\nfls..amd\n.flsamd.\n..fdfd..\n\n....asas....\n...asdfas...\n..asd..fas..\n.asd....fas.\nasd......fas\nfd........fd\nas........as\nfas......asd\n.fas....asd.\n..fas..asd..\n...fasasd...\n....fdfd....\n\n...aa....\n..as.a...\n.amd..a..\namd....a.\nfd.....a.\nas....as.\nfls..amd.\n.flsamd..\n..fdfd...\n\n\nasasasas\nfdfdfdfd\nas....as\nfd....fd\nas....as\nfd....fd\nas....as\nfd....fd\nasasasas\nfdfdfdfd\n\n........a.........\n.......a.a........\n......a...a.......\n.....a.....a......\n....a.......a.....\n...a.........a....\n..a...........a...\n.a.............a..\na...............a.\n.a.............a..\n..a...........a...\n...a.........a....\n....a.......a.....\n.....a.....a......\n......a...a.......\n.......a.a........\n........a.........\n..................\n\n\n........\n..qw....\n.qytwqw.\n.etytyr.\n.12tyr..\n.34ep6..\n.{}.78..\n........\n........\n........\n\n\n\n........\n........\n........\n........\n.12qw...\n.34e5...\n.{}.....\n........\n........\n........\n\n........\n........\n........\n........\n.12qw...\n.34e5...\n.{}.....\n........\n........\n........\n)\n\n",[0,2,3,0,3,2,2,3,3,2,1,1,1,2,3,1,1,3,2,2,1,2,3,0,1,1,0,2,3,0,0,3,0,0,0,1,1,0,1,1,1,2,2,2,3,2,"undo",1,2,3,3,2,3,0],"background bgtile_nw:0,background bgtile_sw:1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,background bgtile_ne:2,background bgtile_se:3,\n2,3,2,3,2,background bgtile_se wall_nw:4,background bgtile_ne wall_sw:5,3,2,3,2,3,2,3,2,0,1,0,1,\n0,1,background bgtile_nw wall_nw:6,background bgtile_sw wall_ne wall_sw walljoin_downdiag:7,background bgtile_nw wall_nw wall_se walljoin_updiag:8,background bgtile_sw wall_sw:9,0,1,0,1,0,1,0,2,3,2,3,2,4,\nbackground bgtile_ne wall_ne wall_sw walljoin_downdiag:10,background bgtile_se wall_se:11,background bgtile_ne wall_ne:12,background bgtile_se wall_nw wall_se walljoin_updiag:13,5,3,2,3,2,3,2,0,1,0,1,6,7,background bgtile_nw wall_se:14,1,\n0,background bgtile_sw wall_ne:15,8,9,0,1,0,1,0,2,3,2,4,10,11,2,3,2,3,\n12,13,5,3,2,3,2,0,1,6,7,14,1,0,1,0,1,0,15,\n8,9,0,1,0,2,4,10,11,2,3,2,4,5,3,2,3,12,13,\n5,3,2,6,7,14,1,0,1,0,15,14,background bgtile_sw player_nw:16,background bgtile_nw player_sw:17,1,0,15,8,9,\n0,12,13,5,3,2,3,2,background bgtile_se target_nw:18,background bgtile_ne crate_nw target_sw:19,background bgtile_se crate_sw player_ne target_nw target_ses:20,background bgtile_ne player_se target_sw:21,background bgtile_se target_ses:22,2,3,12,13,5,0,\n15,8,9,0,1,0,background bgtile_sw crate_nw target_ne:23,background bgtile_nw crate_ne crate_sw target_se:24,background bgtile_sw crate_se target_ne target_sw target_sws:25,background bgtile_nw target_se target_ses:26,background bgtile_sw target_sws:27,0,1,6,7,14,2,3,12,\n13,5,3,2,background bgtile_se crate_ne:28,background bgtile_ne crate_se target_ne:29,background bgtile_se target_se:30,background bgtile_ne target_sws:31,3,2,4,10,11,2,0,1,0,15,8,\n9,0,1,0,1,background bgtile_nw crate_nw:32,background bgtile_sw crate_sw:33,6,7,14,1,0,2,3,2,3,12,13,5,\n3,2,3,background bgtile_ne crate_ne:34,background bgtile_se crate_se wall_nw:35,10,11,2,3,2,0,1,0,1,0,15,8,9,0,\n1,6,7,14,1,0,1,0,2,3,2,3,2,3,12,13,5,4,10,\n11,2,3,2,3,2,0,1,0,1,0,1,0,15,8,7,14,1,0,\n1,0,1,0,2,3,2,3,2,3,2,3,12,11,2,3,2,3,2,\n3,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,\n",5,"1627894805419.4346"] + "Gem Socketeer", + ["title Gem Socketeer \nauthor increpare\nhomepage www.increpare.com\n\n\n(many levels made with the assistance of marcos don's sokoban solver - https://marcosdon.github.io/PuzzleScriptWithSolver/editor.html )\n\n(thanks to ggn for feedback + testing!)\n\nbackground_color #04212a\ntext_color #d494de\n\nrun_rules_on_level_start\n( debug )\n(verbose_logging)\n\n========\nOBJECTS\n========\n\nBackground\n#2c7678 #26837d #226768\n00100\n01110\n11111\n01110\n00100\n\n\nbgtile_nw ;\n#26837d #226768 #2c7678\n00001\n00012\n00122\n01222\n12222\n\n\n\nbgtile_ne\n#226768 #26837d #2c7678\n01111\n20111\n22011\n22201\n22220\n\n\n\nbgtile_sw\n#226768 #2c7678 #26837d\n01111\n20111\n22011\n22201\n22220\n\n\n\nbgtile_se\n#2c7678 #226768 #26837d\n00001\n00012\n00122\n01222\n12222\n\n\n\ntarget_nw 1\n#ffe56f #ffd100 #d29500\n...00\n..112\n.112.\n112..\n12...\n\n\n\ntarget_ne 2\n#ffe56f #d29500 #ffd100\n00...\n120..\n.120.\n..120\n...12\n\n\n\ntarget_sw 3\n#ffd100 #d29500 #ffe56f\n01...\n02...\n102..\n.102.\n..102\n\n\ntarget_se 4\n#d29500 #ffd100 #ffe56f\n...01\n...01\n..210\n.210.\n210..\n\ntarget_ses {\n#d29500 #ffd100\n...01\n.....\n.....\n.....\n.....\n\ntarget_sws }\n#ffd100 #d29500\n01...\n.....\n.....\n.....\n.....\n\nplayer_nw 5\n#3c75ee #86c1ff #5d96ff #1447b6\n....0\n...01\n..020\n.0203\n03032\n\n\n\n\nplayer_ne 6\n#5d96ff #d6eaff #86c1ff\n0....\n10...\n010..\n2010.\n12020\n\n\n\n\nplayer_sw 7\n#1447b6 #002d8e #3c75ee\n01020\n.0102\n..010\n...01\n....0\n\n\n\n\n\nplayer_se 8\n#3c75ee #5d96ff #1447b6\n01010\n1010.\n010..\n20...\n0....\n\n\n\n\ncrate_nw q\n#f9d6ff #e29aee #eeb1f9 #ba4fca\n....0\n...01\n..010\n.0121\n01312\n\n\n\n\ncrate_ne w\n#f9d6ff #f6c1ff\n0....\n10...\n010..\n1010.\n01010\n\n\n\ncrate_sw e\n#ba4fca #ca66d9\n01010\n.0101\n..010\n...01\n....0\n\n\n\n\ncrate_se r\n#eeb1f9 #e29aee #f9d6ff #ca81d8 #ba4fca\n01231\n1031.\n431..\n31...\n1....\n\n\n\n\n\n\n\nwall_nw\n#8f6d56 #7b5b45 #5e422f\n....0\n...00\n..001\n.0012\n00121\n\n\nwall_ne\n#ab866d #7b5b45 #463326\n0....\n00...\n100..\n2100.\n12100\n\nwall_se\n#7b5b45 #8f6d56 #5e422f\n01022\n1022.\n022..\n22...\n2....\n\nwall_sw\n#463326 #7b5b45 #ab866d\n00121\n.0012\n..001\n...00\n....0\n\nwalljoin_downdiag\n#7b5b45\n0....\n.0...\n..0..\n...0.\n....0\n\nwalljoin_updiag\n#7b5b45\n....0\n...0.\n..0..\n.0...\n0....\n\n\n=======\nLEGEND\n=======\n\nplayer = player_nw or player_ne or player_sw or player_se\ncrate = crate_nw or crate_ne or crate_sw or crate_se\ntarget = target_nw or target_ne or target_sw or target_se\n\npusher_nw = player_nw or crate_nw\npusher_sw = player_sw or crate_sw\npusher_ne = player_ne or crate_ne\npusher_se = player_se or crate_se\n\nt = crate_nw and crate_se \ny = crate_ne and crate_sw\n\nu = crate_nw and player_se\ni = crate_ne and player_sw\no = crate_sw and player_ne\np = crate_se and player_nw\n\n! = wall_nw and player_se\n\" = wall_ne and player_sw\n£ = wall_sw and player_ne\n$ = wall_se and player_nw\n\n. = Background\n\na = wall_nw\ns = wall_ne\nd = wall_se \nf = wall_sw\n\ncollides_nw = wall_ne or wall_sw or crate_ne or crate_sw\ncollides_ne = wall_nw or wall_se or crate_nw or crate_se\ncollides_sw = wall_se or wall_nw or crate_se or crate_nw\ncollides_se = wall_sw or wall_ne or crate_sw or crate_ne\n\ng = target_nw and wall_se\nh = target_ne and wall_sw\nj = target_sw and wall_ne\nk = target_se and wall_nw\n\nl = wall_nw and wall_se and walljoin_updiag\nm = wall_ne and wall_sw and walljoin_downdiag\n\nz = crate_nw and target_nw\nx = crate_ne and target_ne\nc = crate_sw and target_sw\nb = crate_se and target_se\n\n\nn = crate_nw and wall_se\n, = crate_ne and wall_sw\n/ = crate_sw and wall_ne\n? = crate_se and wall_nw\n\n% = crate_nw and target_nw and player_se\n& = crate_ne and target_ne and player_sw\n* = crate_sw and target_sw and player_ne\n_ = crate_se and target_se and player_nw\n\n丁 = crate_nw and target_nw and player_se\n上 = crate_ne and target_ne and player_sw\n下 = crate_sw and target_sw and player_ne\n不 = crate_se and target_se and player_nw\n\n(丁上下不且世丙並\n中丸\n主乂乃之乎九也事二五亡交亦京亭人)\n\n=======\nSOUNDS\n=======\n\ncrate move 93772107\nendlevel 32556705\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbgtile_nw\nbgtile_ne\nbgtile_sw\nbgtile_se\n\nwall_se\nwall_sw\n\ncrate_sw\ncrate_se\nplayer_sw\nplayer_se\n\nwall_nw\nwall_ne\n\nwalljoin_downdiag\nwalljoin_updiag\n\ncrate_nw\ncrate_ne\nplayer_nw\nplayer_ne\n\n\ntarget_sw\ntarget_se\ntarget_sws\ntarget_ses\ntarget_nw\ntarget_ne\n\n======\nRULES\n======\n\n\n(drawing/spawning code. comment out later I guess)\nright [ player_nw | no player_ne ] -> [ player_nw | player_ne ]\nright [ crate_nw | no crate_ne ] -> [ crate_nw | crate_ne ]\nright [ target_nw | no target_ne ] -> [ target_nw | target_ne ]\nright [ wall_nw | no wall_ne ] -> [ wall_nw | wall_ne ]\n\ndown [ player_nw | no player_sw ] -> [ player_nw | player_sw ]\ndown [ crate_nw | no crate_sw ] -> [ crate_nw | crate_sw ]\ndown [ target_nw | no target_sw ] -> [ target_nw | target_sw ]\ndown [ wall_nw | no wall_sw ] -> [ wall_nw | wall_sw ]\n\n\nright [ player_sw | no player_se ] -> [ player_sw | player_se ]\nright [ crate_sw | no crate_se ] -> [ crate_sw | crate_se ]\nright [ target_sw | no target_se ] -> [ target_sw | target_se ]\nright [ wall_sw | no wall_se ] -> [ wall_sw | wall_se ]\n\ndown [ target_sw | no target_ses ] -> [ target_sw | target_ses ]\ndown [ target_se | no target_sws ] -> [ target_se | target_sws ]\n\n(wall mortar)\n\n[wall_se wall_nw ] -> [wall_se wall_nw walljoin_updiag ]\n[wall_ne wall_sw ] -> [wall_ne wall_sw walljoin_downdiag ]\n(end of spawning code)\n\n\nstartloop\n(side push)\n[ up pusher_nw stationary crate_se ] -> [ up pusher_nw up crate_se ]\n+ [ left pusher_nw stationary crate_se ] -> [ left pusher_nw left crate_se ]\n\n+ [ up pusher_ne stationary crate_sw ] -> [ up pusher_ne up crate_sw ]\n+ [ right pusher_ne stationary crate_sw ] -> [ right pusher_ne right crate_sw ]\n\n+ [ down pusher_sw stationary crate_ne ] -> [ down pusher_sw down crate_ne ]\n+ [ left pusher_sw stationary crate_ne ] -> [ left pusher_sw left crate_ne ]\n\n+ [ down pusher_se stationary crate_nw ] -> [ down pusher_se down crate_nw ]\n+ [ right pusher_se stationary crate_nw ] -> [ right pusher_se right crate_nw ]\n\n\n(direct centered push)\n+ up [ > pusher_nw | stationary crate_sw ] -> [ > pusher_nw | > crate_sw ]\n+ down [ > pusher_sw | stationary crate_nw ] -> [ > pusher_sw | > crate_nw ]\n+ right [ > pusher_ne | stationary crate_nw ] -> [ > pusher_ne | > crate_nw ]\n+ left [ > pusher_nw | stationary crate_ne ] -> [ > pusher_nw | > crate_ne ]\n\n\n(propagate motion through crate)\n+ right [ right crate_nw | stationary crate_ne ] -> [ right crate_nw | right crate_ne ]\n+ right [ crate_nw | right crate_ne ] -> [ right crate_nw | right crate_ne ]\n+ right [ right crate_sw | stationary crate_se ] -> [ right crate_sw | right crate_se ]\n+ right [ stationary crate_sw | right crate_se ] -> [ right crate_sw | right crate_se ]\n+ down [ stationary crate_ne | right crate_se ] -> [ right crate_ne | right crate_se ]\n+ down [ right crate_ne | stationary crate_se ] -> [ right crate_ne | right crate_se ]\n\n+ right [ left crate_nw | stationary crate_ne ] -> [ left crate_nw | left crate_ne ]\n+ right [ crate_nw | left crate_ne ] -> [ left crate_nw | left crate_ne ]\n+ right [ left crate_sw | stationary crate_se ] -> [ left crate_sw | left crate_se ]\n+ right [ stationary crate_sw | left crate_se ] -> [ left crate_sw | left crate_se ]\n+ down [ stationary crate_ne | left crate_se ] -> [ left crate_ne | left crate_se ]\n+ down [ left crate_ne | stationary crate_se ] -> [ left crate_ne | left crate_se ]\n\n+ right [ up crate_nw | stationary crate_ne ] -> [ up crate_nw | up crate_ne ]\n+ right [ crate_nw | up crate_ne ] -> [ up crate_nw | up crate_ne ]\n+ right [ up crate_sw | stationary crate_se ] -> [ up crate_sw | up crate_se ]\n+ right [ stationary crate_sw | up crate_se ] -> [ up crate_sw | up crate_se ]\n+ down [ stationary crate_ne | up crate_se ] -> [ up crate_ne | up crate_se ]\n+ down [ up crate_ne | stationary crate_se ] -> [ up crate_ne | up crate_se ]\n\n+ right [ down crate_nw | stationary crate_ne ] -> [ down crate_nw | down crate_ne ]\n+ right [ crate_nw | down crate_ne ] -> [ down crate_nw | down crate_ne ]\n+ right [ down crate_sw | stationary crate_se ] -> [ down crate_sw | down crate_se ]\n+ right [ stationary crate_sw | down crate_se ] -> [ down crate_sw | down crate_se ]\n+ down [ stationary crate_ne | down crate_se ] -> [ down crate_ne | down crate_se ]\n+ down [ down crate_ne | stationary crate_se ] -> [ down crate_ne | down crate_se ]\n\nendloop\n\n\n(if unresolved collisions, can remove all things because it's good)\nlate [ crate_nw collides_nw ] -> cancel\nlate [ crate_ne collides_ne ] -> cancel\nlate [ crate_sw collides_sw ] -> cancel\nlate [ crate_se collides_se] -> cancel\nlate [ player_nw collides_nw ] -> cancel\nlate [ player_ne collides_ne ] -> cancel\nlate [ player_sw collides_sw ] -> cancel\nlate [ player_se collides_se] -> cancel\n\ndown [ bgtile_nw | no bgtile_sw ] -> [ bgtile_nw | bgtile_sw ]\n+ down [ bgtile_sw | no bgtile_nw ] -> [ bgtile_sw | bgtile_nw ]\n\nright [ bgtile_nw | no bgtile_ne ] -> [ bgtile_nw | bgtile_ne ]\n+ right [ bgtile_ne | no bgtile_nw ] -> [ bgtile_ne | bgtile_nw ]\n\nright [ bgtile_sw | no bgtile_se ] -> [ bgtile_sw | bgtile_se ]\n+ right [ bgtile_se | no bgtile_sw ] -> [ bgtile_se | bgtile_sw ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\nAll Crate on Target\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 17\n;...................\n.........a..........\n........asas........\n.......amghls.......\n......amg21hls......\n.....amd3434fls.....\n....amd.{}{}.fls....\n...amd...as...fls...\n..amd...q,nw...fls..\n..fls...etyr...amd..\n...fls...er...amd...\n....fls..56..amd....\n.....fls.78.amd.....\n......fls..amd......\n.......flsamd.......\n........flmd........\n.........fd.........\n....................\n\n(Easyish - possible early level?)\n\nmessage Level 2 of 17\n;.....as......\n.....amls.....\n....amdfls....\n...amd..fls...\n..amd..qwfls..\n.amd.12er.fls.\namd..3412..fls\nfls..q}34..amd\n.fls.er{}.amd.\n..fls.56.amd..\n...fls78amd...\n....flsamd....\n.....flmd.....\n......fd......\n\n\nmessage Level 3 of 17\n(similar to above? no puzzle as such)\n;.......as.........\n.......amls........\n......amdfls.......\n.....amd..fls......\n....amd....fls.....\n...amd......fls....\n..amd...5....fls...\n.amd...aszx...fls..\n.fls...fnytx...fls.\n..fls...e1cb...amd.\n...fls...34}..amd..\n....fls..{}..amd...\n.....fls....amd....\n......fls..amd.....\n.......flsamd......\n........flmd.......\n.........fd........\n\nmessage Level 4 of 17\n\n;.......aas...\n.......amdls..\n......amd.fls.\n.....amd...fls\n....amd.qw..as\n...amd.12r.amd\n..amd.534.amd.\n.amd.128}amd..\namd.q34.amd...\nas..e{}amd....\nfls...amd.....\n.fls.amd......\n..flamd.......\n...fdd........\n\n\n\nmessage Level 5 of 17\n(easy but ok? level 2?)\n;.....as.......\n.....amls......\n.....fdfls.....\n.asasas.fls....\n.fdfdfd..fls...\n.as12..qw.fls..\n.fd312qyr56fls.\n.as124etw78amd.\n.fd34}.er.amd..\n.asa}as..amd...\n.fdfafd.amd....\n.....asamd.....\n.....flmd......\n......fd.......\n\n\nmessage Level 6 of 17\n\n(super trivial)\n;...aas.....\n...amdls....\n..amd.fls...\n.amd.qwfls..\namd..er.fls.\nas.125612fls\nfls347834.as\n.fl{}qw{}amd\n..flser.amd.\n...fls.amd..\n....flamd...\n.....fdd....\n\nmessage Level 7 of 17\n(nice level! level 2?)\n;.....as.......\n.....amls......\n....amdfls.....\n...amd..fls....\n..amd....fls...\n.amd..56..fls..\namd..a\"z...fls.\nfls..fn.z...fls\n.fls..e1....amd\n..fls..3...amd.\n...fls.{}.amd..\n....fls..amd...\n.....flsamd....\n......flmd.....\n.......fd......\n\n\n\n\nmessage Level 8 of 17\n(I like how this looks, it's otherwise a simple storeroom puzzle)\n(a bit tricky. push forward maybe)\n;.....as........as......\n.....amlaaaaaaaamls.....\n....amdflmddddlmdfls....\n...amd..fls..amd..fls...\n..amd....fd..fd....fls..\n.amd..qw.125612.qw..fls.\n.fls..er.347834.er..amd.\n..fls....a}..a}....amd..\n...fls..amd..fls..amd...\n....flsaalaaaaalsamd....\n.....flmddddddddlmd.....\n......fd........fd......\n\n\nmessage Level 9 of 17\n(meh but not actually the worst)\n;.....as............\n.....amls...........\n....amdfls..........\n...amd56fls.........\n..amd128.fls........\n.amd124..amd........\naas.34qwamd.........\nfdls{qy?md..........\n..flserfls..........\n...fls..fls..as.....\n....fls..flsamls....\n.....fls..flmdfls...\n......fls..fd..fls..\n......amd.......fls.\n.....amd.....as..fls\n....amd..as..fd..amd\n....fls..fd.....amd.\n.....fls.......amd..\n......fls..aasamd...\n.......flsamdlmd....\n........flmd.fd.....\n.........fd.........\n\nmessage Level 10 of 17\n\n(fine? not too hard? just have to work through it. not trial and errory )\n;.......as.......\n.......amls......\n......amdfls.....\n.....amd..fls....\n....amd.12.fls...\n...amd.q3qw.fls..\n..amd.12po12.fls.\n..fls.3qiq34.amd.\n...fls{}12{}amd..\n...amd..34.amd...\n..amd...{}amd....\n.af......amd.....\n..a.....amd......\n...a...amd.......\n....a.amd........\n.....afd.........\n.................\n\nmessage Level 11 of 17\n(fine?)\n;..............aas....\n..............amdls...\n.............amd.fls..\n............amd...fls.\n...........amd....amd.\n.......as.amd....amd..\n......amlamd..12amd...\n.....amdfdd..1.kmd....\n....amd.....12kmd.....\n...amd...qwajkmd......\n..amd...qyrflmd.......\n.amd...qyr..fls.......\n.fls...er...amd.......\n..fls..56..amd........\n...fls.78.amd.........\n....fls..amd..........\n.....flsamd...........\n......flmd............\n.......fd.............\n\n\n\nmessage Level 12 of 17\n(more space management than puzzle solving)\n;....a..............\n....a.a.............\n...a...a............\n..a.....a...........\n.a.......as.........\na.........ls........\n.a........fls.......\n..a......12fls......\n...a....q3qwfls.....\n....a..121212fls....\n....fls3q3q34.fls...\n.....fl{}12q}..fls..\n......fls34er...fls.\n.......fl{}..56..fls\n........fls..78..amd\n.........fls....amd.\n..........fls..amd..\n...........flsamd...\n............flmd....\n.............fd.....\n....................\n\nmessage Level 13 of 17\n(decent?)\n;...aas......\n...amdls.....\n..amd.fls....\n.amg2..als...\namd34..flls..\nas.56qw.fdls.\nfls78etw..fls\n.flas.er...as\n..flls..12amd\n...fls..3kmd.\n....fls.amd..\n.....flamd...\n......fdd....\n\n\n\nmessage Level 14 of 17\n(yeah fine swap-chambers = all good. intermediate?)\n;....aaaaas........\n....amddddls.......\n....as....fls......\n....as.....asaaas..\n....fls....almddls.\n...aaals...amd..fls\n..amdddg2..fd....as\n.amd..q34..qw...amd\namd...e{}.12r..amd.\nas....as..3kaaamd..\nfls..ams..{}lmdd...\n.flaamls.56.fls....\n..fdddas.78..as....\n......fls....as....\n.......flaaaaas....\n........fdddddd....\n\nmessage Level 15 of 17\n(kinda ok#? middle-intermediate)\n;....aas....\n....amdls...\n...amd.fls..\n..amd...fls.\n.amd12qw.fls\namd.312r..as\nfls.q35..amd\n.flse{78amd.\n..fls..amd..\n...flsamd...\n....flmd....\n.....fd.....\n\n\nmessage Level 16 of 17\n(hard but ok can be solved with brain)\n;...aas.....\n...amdls....\n..amd.fls...\n.amd...fls..\namd.q.1.fls.\nas...q...fls\nfls.1.5..amd\n.fls....amd.\n..fls..amd..\n...flsamd...\n....flmd....\n.....fd.....\n\n\n\nmessage Level 17 of 17\n(message also hard but i can solve these ok now?)\n;...aas.....\n...amdls....\n..amd.fls...\n.amd...fls..\namd.q.1.fls.\nas...5...fls\nfls.q.1..amd\n.fls....amd.\n..fls..amd..\n...flsamd...\n....flmd....\n.....fd.....\n\n\nmessage congrats for being good at socketing gems.\n\n\n(\nasasasas......\nfdfdfdfd......\nas....asasasas\nfd....fdfdfdfd\nas5612qw....as\nfd7834er....fd\nas..{}asasasas\nfd....fdfdfdfd\nasasasas......\nfdfdfdfd......\n\n\n\n......aaaaas.......\n.....amdfddls......\n....amd....fls.....\n...amd......fls....\n..amls..qw..amls...\n.amdfls.er.amdfls..\namd..fls12amd..fls.\nas....fd34fd....as.\nas.qw.125612qw..as.\nas.er.347834er..as.\nas....a.12a}....as.\nfls..amd34fls..amd.\n.flsamd.q}.flsamd..\n..flmd..er..flmd...\n...fls......amd....\n....fls....amd.....\n.....flaaaamd......\n......fddddd.......\n...................\n\n\n\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n\n\n\n.....................\n......aas............\n.....amdl.s..........\n....amd.f.ls.........\n....as....fls........\n....as.....asaaas....\n....fls....almddls...\n...aaals...amd..fls..\n..amdddg2..fd....as..\n.amd..q35.6qw...amd..\namd...e{7.12r..amd...\nas....as..3kaaamd....\nfls..aas..{}lmdd.....\n.flaamls....fls......\n..fdddas.....as......\n......fls....as......\n.......fl.s.amd......\n........f.lamd.......\n..........fdd........\n.....................\n\n....................\n............aaas....\n...........amddls...\n...aaaas..amd..fls..\n..amdddg2.fd....as..\n.amd..q346qw...amd..\namd...e{712r..amd...\nas....as.3kaaamd....\nfls..amd.{}dddd.....\n.flaamd.............\n..fddd..............\n....................\n\n....................\n....................\n....................\n....................\n.........as.........\n........amls..aaas..\n.......amdflsamddls.\n...aaaamd..flmd..fls\n..amdddg2...fd....as\n.amd..q3456.qw...amd\namd...e{}7812r..amd.\nas....as...3kaaamd..\nfls..amls..{mdddd...\n.flaamdflsamd.......\n..fddd..flmd........\n.........fd.........\n....................\n....................\n....................\n....................\n\n.......aas..........\n......amdls.........\n.....amd.fls........\n.....as...fls.......\n.....as....as.......\n.....fls...as.aaas..\n......flsqwasamddls.\n...aaaamde1hlmd..fls\n..amdddg2.34fd....as\n.amd..q3456}qw...amd\namd...e{}7812r..amd.\nas....as12.3kaaamd..\nfls..amljqwamdddd...\n.flaamda{}rfls......\n..fddd.as...fls.....\n.......as....as.....\n.......fls...as.....\n........fls.amd.....\n.........flamd......\n..........fdd.......\n\n.......aas..........\n......amdls.........\n.....amd.fls........\n.....as...fls.......\n.....as....as.......\n.....fls...as.aaas..\n......fls56asamddls.\n...aaaamd78flmd..fls\n..amdddd....fd....as\n.amd.....as.qw...amd\namd......fd.er..amd.\nas....as....aaaamd..\nfls..amls..amdddd...\n.flaamdas..fls......\n..fddd.as...fls.....\n.......as....as.....\n.......fls...as.....\n........fls.amd.....\n.........flamd......\n..........fdd.......\n\n(impossible)\n....aas......\n...amdls.....\n..amd.fls....\n.amg2..fls...\namd34..amls..\nas56}qwfdfls.\nfl\"8.etw..fls\n.flsaser...as\n..flmd..12amd\n...fls..3kmd.\n....fls.amd..\n.....flamd...\n......fdd....\n\n\n(trivial)\n....aas......\n...amdls.....\n..amd.fls....\n.amg2..fls...\namd34...fls..\nas.{}qw..fls.\nfls..etw..fls\n.fls56er...as\n..fl\"8..12amd\n...fls..3kmd.\n....fls.amd..\n.....flamd...\n......fdd....\n\n\n(trivial)\n....aas......\n...amdls.....\n..amd.fls....\n.amd.1.fls...\namd.....fls..\nas...5.q.fls.\nfls.q.....as.\n.fl..1...amd.\n..fls...amd..\n...fls.amd...\n....flamd....\n.....fdd.....\n.............\n\n....aas......\n...a..ls.....\n..a...fls....\n.a.....fls...\na...12qwfls..\na...312r.fls.\nfls.q356.a...\n.flse{78a....\n..fls..a.....\n...flsa......\n....fl.......\n.....f.......\n.............\n\n.....as......\n....amls.....\n...amdfls....\n..amd..fls...\n.amd12qwfls..\namd.312r.fls.\nfls.q356..as.\n.flse{78.amd.\n..fls...amd..\n...fls.amd...\n....flamd....\n.....fdd.....\n.............\n\n\n......as......\n.....amls.....\n....amdfls....\n...amd..fls...\n..amd....fls..\n.amd.12qw.fls.\namd..312r..fls\nfls..{34...amd\n.fls.e{}56amd.\n..fls...7!md..\n...fls..amd...\n....flsamd....\n.....flmd.....\n......fd......\n\n\n\n..............\n.....aas......\n....amdls.....\n...amd.fls....\n..amd...fls...\n.amd...qwfls..\n.as...a/r.fls.\n.fls.5£g2.amd.\n..fls7834amd..\n...fls.{amd...\n....flsamd....\n.....flmd.....\n......fd......\n..............\n\n..............\n.....aas......\n....amdls.....\n...amd.fls....\n..amd...fls...\n.amd...qwfls..\n.as...a/r.fas.\n.fls.5£g2..ad.\n..fls7834.a...\n...fls.{.a....\n....fls.a.....\n.....faa......\n.......d......\n..............\n\n..............\n.....aas......\n....amdls.....\n...amd.fls....\n..amd...fls...\n.amd...qwfls..\na.....a/r.fls.\n.a...5£g2..as.\n..a..7834.amd.\n...a...{}amd..\n....a...amd...\n.....a.amd....\n......a.d.....\n..............\n\n.......as............\n......amls...........\n.....am$£ls..........\n....amd78fls.........\n...amg2...as.........\n..amg24qwamd.........\n..flj4qy?md..........\n...fl}erfls..........\n....fls..fls..as.....\n.....fls..flsamls....\n......fls..flmdfls...\n.......fls..fd..fls..\n.......amd.......fls.\n......amd.....as..fls\n.....amd..as..fd..amd\n.....fls..fd.....amd.\n......fls.......amd..\n.......fls..aasamd...\n........flsamdlls....\n.........flmd.fdd....\n..........fd.........\n.....................\n\n\n\n.......as............\n......amls...........\n.....am$£ls..........\n....amg28fls.........\n...amg24..as.........\n..amd34qwamd.........\n..fls{qy?md..........\n...flserfls..........\n....fls..fls..as.....\n.....fls..flsamls....\n......fls..flmdfls...\n.......fls..fd..fls..\n........fls......fls.\n........amd...as..fls\n.......amd....fd..amd\n......amd..as....amd.\n......fls..fd...amd..\n.......fls....aamd...\n........fls..amdd....\n.........flsamd......\n..........flmd.......\n...........fd........\n\n\n....................\n.......1............\n......q.q...........\n.....1.1.1..........\n......q.q.q.........\n.......1.1..........\n........q...........\n...........5........\n....................\n....................\n\n\n(trivial)\n..........aas.....\n.....as..amdls....\n....amlsamd.fls...\n...amdflmd...fls..\n..amd..fd.qw..fls.\n.amd......etw56fls\n.fls......a/r78amd\n..fls.....fls.amd.\n..amd......flamd..\n.amd.....12.amd...\namd..as..34amd....\nfls..fg2.{amd.....\n.fls..34.amd......\n..fls.{}amd.......\n...fls.amd........\n....flamd.........\n.....fls..........\n......fd..........\n\n(dont' like)\n..........................\n.asasasasasas.............\n.fdfdfdfdfdfd.............\n.as........asasasasas.....\n.fd........fdfdfdfdfd.....\n.as..qwqw........56as.....\n.fd..erer........78fd.....\n.as..qw..as121212..as.....\n.fd..er..fd343434..fd.....\n.as......asa}a}a}asas.....\n.fd......fdfdfdfdfdfd.....\n.asasasasas...............\n.fdfdfdfdfd...............\n..........................\n\n\n\n..............aas...\n.............amdls..\n............amd.fls.\n...........amd...fls\n..........amd....amd\n......as.amd....amd.\n.....amlamd..12amd..\n....amdfdd..1jamd...\n...amd.....12amd....\n..amd...qwajamd.....\n.amd...qyrflmd......\namd...qyr..fls......\nfls...er...amd......\n.fls..56..amd.......\n..fls.78.amd........\n...fls..amd.........\n....flsamd..........\n.....flmd...........\n......fd............\n\n\n..............as....\n.............amls...\n............amdfls..\n...........amd..fls.\n..........amd....als\n......as.amd....amdd\n.....amlamd..12amd..\n....amdfdd..12kmd...\n...amd.....12kmd....\n..amd...qwajkmd.....\n.amd...qyrflmd......\namd...qyr..fls......\nfls...er...amd......\n.fls..56..amd.......\n..fls.78.amd........\n...fls..amd.........\n....flsamd..........\n.....flmd...........\n......fd............\n\n(actually fun to bop about in, but not hard)\n..................\n.....as...........\n....amls..........\n...amdfls.........\n..amd..fls........\n.amd....fls.......\n.fls..qw.fls......\n..flsqyr..fls.....\n..amder56..fls....\n.amd...7812.as....\namd..as..34amd....\nfls..fg2.{amd.....\n.fls..34.amd......\n..fls.{}amd.......\n...fls.amd........\n....flamd.........\n.....fdd..........\n..................\n\n(trivial)\n...........as.....\n....as....amls....\n...amls..amdfls...\n..amghlsamd..fls..\n.amd34flmd....fls.\n.fls{}.fd.....amd.\n..fls......qwamd..\n...fls.....e?md...\n....flszx..amd....\n.....fljb..fls....\n......fl}56.fls...\n.......fl\"8.amd...\n........flsamd....\n.........flmd.....\n..........fd......\n..................\n..................\n..................\n..................\n\n(early-intermediate. ugly)\n..................\n.....as...........\n....aas...........\n...amdls..........\n..amd.fls.........\n.amd...fls........\n.fls..qwfls.......\n..flsqyr.fls......\n..amder56.fls.....\n.amd...7812fls....\namd..as..34amd....\nfls..fg2.{amd.....\n.fls..34.amd......\n..fls.{}amd.......\n...fls.amd........\n....flamd.........\n.....fdd..........\n..................\n\n\n........as...\n....as.amls..\n...amlamdfls.\n..amghdd..fls\n.amd34.....as\n.as.{}56qwamd\n.flszx78e?md.\n..fljb...fls.\n...fl}...amd.\n....fls.amd..\n.....flamd...\n......fdd....\n.............\n\n.....asasasasas...\n.....fdfdfdfdfd...\n.asasas......as...\n.fdfdfd......fd...\n.as12..qw....as...\n.fd312qyr.56.fd...\n.as124etw.78.as...\n.fd34}.er....fd...\n.asa}as......as...\n.fdfdfd......fd...\n.....asasasasas...\n.....fdfdfdfdfd...\n\n......as.......\n.....amls......\n....amdfls.....\n...amd..fls....\n..amd....fls...\n.amd..56..fls..\namd..a\"ux..fls.\nfls..fnytx..fls\n.fls..e1cb..amd\n..fls..34}.amd.\n...fls.{}.amd..\n....fls..amd...\n.....flsamd....\n......flmd.....\n.......fd......\n\n......as.......\n.....amls......\n....amdfls.....\n...amd..fls....\n..amd....fls...\n.amd..56..fls..\namd..a\"1x..fls.\nfls..fny1x..fls\n.fls..e1cb..amd\n..fls..34}.amd.\n...fls.{}.amd..\n....fls..amd...\n.....flsamd....\n......flmd.....\n.......fd......\n\n\n....asas....\n...amdfls...\n..amg21hls..\n.amd3434fls.\namd.{}{}.fls\nfd...as...fd\nas..q,nw..as\nfls.erer.amd\n.fls....amd.\n..fls56amd..\n...fl\"!md...\n....fdfd....\n\n(unsolvable)\n....asas....\n...amdfls...\n..amg21hls..\n.amd3kj4fls.\namd.{}{}.fls\nfd...as...fd\nas..q,nw..as\nfls.erer.amd\n.fls....amd.\n..fls56amd..\n...fl\"!md...\n....fdfd....\n\n....asas....\n...amdfls...\n..amd..fls..\n.amd....fls.\namd...56.fls\nfd....78..fd\nas........as\nfls......amd\n.fls....amd.\n..fls..amd..\n...flsamd...\n....fdfd....\n\n\n(trivil)\n....asas....\n...asdfas...\n..asd..fas..\n.asd....fas.\nasd...56.fas\nfd.qw.78..fd\nas12tw....as\nflj12tw..amd\n.faj12r.amd.\n..faj4.amd..\n...fa}amd...\n....fdfd....\n\n\n\n(impossible)\n...as..as...\n..amlsamls..\n.amghlmdfls.\namd34fd..fls\nfls{}56qwamd\n.flszi8e?md.\n..fljb..fls.\n...fl}..amd.\n....flsamd..\n.....flmd...\n......fd....\n\n.....as......\n....amls.....\n...amdfls....\n..amd..fls...\n.amd.56.fls..\namd.a7zx.fls.\nfls.fnytx.fls\n.fls.e1cb.amd\n..fls.34}amd.\n...fls{}amd..\n....flsamd...\n.....flmd....\n......fd.....\n\n\n........as......\n.......amls.....\n....asamdfls....\n...amlmnw.fls...\n..amdfdetw.fls..\n.amd...a/p6amd..\n.fls...fl7amd...\n.amd...1hlmd....\namd.as.3kmd.....\nfls.fg2amd......\n.fls.3kmd.......\n..flsamd........\n...flmd.........\n....fd..........\n\n.......a........\n......a.a.......\n.....a...a......\n....a...5.a.....\n...a...q...a....\n..a...z.....a...\n.a...z.....a....\na...1...a.a.....\n.a.....a.a......\n..a...a.........\n...a.a..........\n....a...........\n................\n................\n................\n\n......a.......\n.....a.a......\n....a...a.....\n...a.....a....\n..a...1...a...\n.a...q.q...a..\na...1.5.1...a.\n.a...q.q...a..\n..a...1...a...\n...a.....a....\n..a.....a.....\n...a...a......\n....a.a.......\n.....a........\n..............\n\n...........a....\n..........a.a...\n.........a...a..\n........a...5.a.\n.......a...a...a\n........a.....a.\n.....a.a.....a..\n....a.a...1.a...\n...a.....1.a....\n..a.....1.a.....\n.a...q.a.a......\na...q...a.......\n.a...q...a......\n..a.....a.......\n...a...a........\n....a.a.........\n.....a..........\n................\n................\n\n................\n......a.........\n.....a.a........\n....a...a.......\n...a.....a......\n..a...q...a.....\n.a...1.1...a....\na...q.q.q...a...\n.a...1.1.1...a..\n..a...q.q...a...\n...a...1.5.a....\n....a.....a.....\n.....a...a......\n......a.a.......\n.......a........\n................\n................\n................\n\n.....a...........\n....a.a..........\n...a.5.a.........\n..a.1...a........\n.a.1.q.a.........\na...q.a..........\n.a.....a.........\n..a.a...a........\n...a.a...a.a.....\n......a...a.a....\n.......a.....a...\n......a.......a..\n.....a.....a...a.\n....a...a.....a..\n.....a.......a...\n......a...a.a....\n.......a.a.a.....\n........a........\n.................\n\n....a.a......\n...a.a.a.....\n..a.....a....\n.a...q...a...\na.1.q.....a..\n.a.5.....1.a.\n..a.a.a.a.a..\n...a.a.a.a...\n.............\n\n.......a......\n......a.a.....\n.....a...a....\n....a.....a...\n...a.1.a...a..\n....a.1.a...a.\n.....a.1.q.a..\n......a...a...\n.....a.q...a..\n....a...a...a.\n...a.q.....a..\n..a...a...a...\n.a.5.....a....\na...a...a.....\n.a.....a......\n..a...a.......\n...a.a........\n....a.........\n..............\n\n\n\n...as..as...\n..amlsamls..\n.amghlmdfls.\namd34fd..fls\nfls{}56qwamd\n.flszi8ermd.\n..fljb..fls.\n...fl}..amd.\n....flsamd..\n.....flmd...\n......fd....\n\n...as..as...\n..amlsamls..\n.amdflmdfls.\namd..fd..fls\nfls......amd\n.fls....amd.\n..fls...fls.\n...fls..amd.\n....flsamd..\n.....flmd...\n......fd....\n\n\n;...asas....\n...amdfls...\n..amd..fls..\n.amd....fls.\namd...56.fls\nfd.qw.78..fd\nas12tw....as\nflj12tw..amd\n.flj12r.amd.\n..flj4.amd..\n...fl}amd...\n....fdfd....\n\n...aas...\n..amdls..\n.amd.fls.\namq..5fls\nfd.q...as\nas1...amd\nfls1.amd.\n.flsamd..\n..fdfd...\n\n..asas..\n.amdfls.\namd..fls\nfd....fd\nas....as\nfls..amd\n.flsamd.\n..fdfd..\n\n....asas....\n...asdfas...\n..asd..fas..\n.asd....fas.\nasd......fas\nfd........fd\nas........as\nfas......asd\n.fas....asd.\n..fas..asd..\n...fasasd...\n....fdfd....\n\n...aa....\n..as.a...\n.amd..a..\namd....a.\nfd.....a.\nas....as.\nfls..amd.\n.flsamd..\n..fdfd...\n\n\nasasasas\nfdfdfdfd\nas....as\nfd....fd\nas....as\nfd....fd\nas....as\nfd....fd\nasasasas\nfdfdfdfd\n\n........a.........\n.......a.a........\n......a...a.......\n.....a.....a......\n....a.......a.....\n...a.........a....\n..a...........a...\n.a.............a..\na...............a.\n.a.............a..\n..a...........a...\n...a.........a....\n....a.......a.....\n.....a.....a......\n......a...a.......\n.......a.a........\n........a.........\n..................\n\n\n........\n..qw....\n.qytwqw.\n.etytyr.\n.12tyr..\n.34ep6..\n.{}.78..\n........\n........\n........\n\n\n\n........\n........\n........\n........\n.12qw...\n.34e5...\n.{}.....\n........\n........\n........\n\n........\n........\n........\n........\n.12qw...\n.34e5...\n.{}.....\n........\n........\n........\n)\n\n", [0, 2, 3, 0, 3, 2, 2, 3, 3, 2, 1, 1, 1, 2, 3, 1, 1, 3, 2, 2, 1, 2, 3, 0, 1, 1, 0, 2, 3, 0, 0, 3, 0, 0, 0, 1, 1, 0, 1, 1, 1, 2, 2, 2, 3, 2, "undo", 1, 2, 3, 3, 2, 3, 0], "background bgtile_nw:0,background bgtile_sw:1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,background bgtile_ne:2,background bgtile_se:3,\n2,3,2,3,2,background bgtile_se wall_nw:4,background bgtile_ne wall_sw:5,3,2,3,2,3,2,3,2,0,1,0,1,\n0,1,background bgtile_nw wall_nw:6,background bgtile_sw wall_ne wall_sw walljoin_downdiag:7,background bgtile_nw wall_nw wall_se walljoin_updiag:8,background bgtile_sw wall_sw:9,0,1,0,1,0,1,0,2,3,2,3,2,4,\nbackground bgtile_ne wall_ne wall_sw walljoin_downdiag:10,background bgtile_se wall_se:11,background bgtile_ne wall_ne:12,background bgtile_se wall_nw wall_se walljoin_updiag:13,5,3,2,3,2,3,2,0,1,0,1,6,7,background bgtile_nw wall_se:14,1,\n0,background bgtile_sw wall_ne:15,8,9,0,1,0,1,0,2,3,2,4,10,11,2,3,2,3,\n12,13,5,3,2,3,2,0,1,6,7,14,1,0,1,0,1,0,15,\n8,9,0,1,0,2,4,10,11,2,3,2,4,5,3,2,3,12,13,\n5,3,2,6,7,14,1,0,1,0,15,14,background bgtile_sw player_nw:16,background bgtile_nw player_sw:17,1,0,15,8,9,\n0,12,13,5,3,2,3,2,background bgtile_se target_nw:18,background bgtile_ne crate_nw target_sw:19,background bgtile_se crate_sw player_ne target_nw target_ses:20,background bgtile_ne player_se target_sw:21,background bgtile_se target_ses:22,2,3,12,13,5,0,\n15,8,9,0,1,0,background bgtile_sw crate_nw target_ne:23,background bgtile_nw crate_ne crate_sw target_se:24,background bgtile_sw crate_se target_ne target_sw target_sws:25,background bgtile_nw target_se target_ses:26,background bgtile_sw target_sws:27,0,1,6,7,14,2,3,12,\n13,5,3,2,background bgtile_se crate_ne:28,background bgtile_ne crate_se target_ne:29,background bgtile_se target_se:30,background bgtile_ne target_sws:31,3,2,4,10,11,2,0,1,0,15,8,\n9,0,1,0,1,background bgtile_nw crate_nw:32,background bgtile_sw crate_sw:33,6,7,14,1,0,2,3,2,3,12,13,5,\n3,2,3,background bgtile_ne crate_ne:34,background bgtile_se crate_se wall_nw:35,10,11,2,3,2,0,1,0,1,0,15,8,9,0,\n1,6,7,14,1,0,1,0,2,3,2,3,2,3,12,13,5,4,10,\n11,2,3,2,3,2,0,1,0,1,0,1,0,15,8,7,14,1,0,\n1,0,1,0,2,3,2,3,2,3,2,3,12,11,2,3,2,3,2,\n3,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,\n", 5, "1627894805419.4346"] ], [ - "Empty loop test", - ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n\nstartloop\n\nendloop\n\n\n[ > Player | > Crate ] -> [ < Player | < Crate ]\n\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\n",[3,2,2,1,2,1,1,0,3],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,background player:2,\n1,0,0,1,0,background crate:3,\nbackground crate target:4,1,0,0,1,1,\n4,background target:5,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n","1","1628787178284.0164"] + "Empty loop test", + ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n\nstartloop\n\nendloop\n\n\n[ > Player | > Crate ] -> [ < Player | < Crate ]\n\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\n", [3, 2, 2, 1, 2, 1, 1, 0, 3], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,background player:2,\n1,0,0,1,0,background crate:3,\nbackground crate target:4,1,0,0,1,1,\n4,background target:5,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n", "1", "1628787178284.0164"] ], [ - "Loop example with both late and regular rules.", - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\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\nCrate1\nOrange \n00000\n0...0\n0...0\n0...0\n00000\n\nCrate2\nred \n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n\nO = Target\n1 = crate1\n2 = crate2\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate1, crate2\n\n======\nRULES\n======\n\nstartloop\nright [ crate1 | ] -> [ | crate2 ]\n\nlate left [ crate2 | ] -> [ | crate1 ]\n\nright [ crate2 | ] -> [ | crate1 ]\n\nlate left [ crate1 | ] -> [ | crate2 ]\nendloop\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\np..1............\n\n\n",[3],"background crate2:0,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n",0,"1628792234693.525"] + "Loop example with both late and regular rules.", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\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\nCrate1\nOrange \n00000\n0...0\n0...0\n0...0\n00000\n\nCrate2\nred \n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n\nO = Target\n1 = crate1\n2 = crate2\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate1, crate2\n\n======\nRULES\n======\n\nstartloop\nright [ crate1 | ] -> [ | crate2 ]\n\nlate left [ crate2 | ] -> [ | crate1 ]\n\nright [ crate2 | ] -> [ | crate1 ]\n\nlate left [ crate1 | ] -> [ | crate2 ]\nendloop\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\np..1............\n\n\n", [3], "background crate2:0,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n", 0, "1628792234693.525"] ], [ `"right [ Player ] -> [ up Player ]" gets compiled to down #755`, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nflag\nDarkBlue\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\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\nO = flag\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nflag\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nright [ crate ] [ stationary flag ] -> [ ] [ action flag]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\no*\n*.\n\n",[4],"background flag:0,background crate:1,\nbackground:2,2,\n",0,"1629150419859.7258"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nflag\nDarkBlue\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\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\nO = flag\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nflag\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nright [ crate ] [ stationary flag ] -> [ ] [ action flag]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\no*\n*.\n\n", [4], "background flag:0,background crate:1,\nbackground:2,2,\n", 0, "1629150419859.7258"] ], [ "in sound section can't mention an object called horizontali - cf #757", - ["title Simple Block Pushing Game\nauthor David Skinner\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\n00000\n0...0\n0...0\n0...0\n00000\n\nhorizontali\nblue\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\nhorizontali move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nhorizontali\n\n======\nRULES\n======\n\n\n[ > Player | Crate ] -> [ > Player | > Crate ] sfx0 sfx1\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\n",[0,1,2,2],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,background target:2,background player:3,\nbackground crate:4,0,0,2,1,1,\n1,1,0,0,0,0,\n1,4,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1629314889294.314"] - ], - -[ - "VEXT EDIT", - ["title VEXT EDIT\nauthor JACK\n\nrun_rules_on_level_start\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\n#eeeeee\n\nPlayerTarget1mark\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1mark\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nPlayerTarget1\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0Mark\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nWall0 \n#884400 #f00\n00000\n00000\n00000\n00000\n00000\n\nwalll0 \nBrown #f00\n1....\n1....\n1....\n1....\n1....\n\nWallr0 \nBrown #f00\n....1\n....1\n....1\n....1\n....1\n\nWalld0 \nBrown #f00\n.....\n.....\n.....\n.....\n11111\n\nWallu0 \nBrown #f00\n11111\n.....\n.....\n.....\n.....\n\nBlack\nblack\n\nwall0ghost\ntransparent\n\nWall0Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1 \n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall2\n#884400 #00f\n00000\n00000\n00000\n00000\n00000\n\nwalll2\nBrown #00f\n1....\n1....\n1....\n1....\n1....\n\nWallr2 \nBrown #00f\n....1\n....1\n....1\n....1\n....1\n\nWalld2 \nBrown #00f\n.....\n.....\n.....\n.....\n11111\n\nWallu2 \nBrown #00f\n11111\n.....\n.....\n.....\n.....\n\nwalll1 \nBrown #ff0\n1....\n1....\n1....\n1....\n1....\n\nWallr1 \nBrown #ff0\n....1\n....1\n....1\n....1\n....1\n\nWalld1 \nBrown #ff0\n.....\n.....\n.....\n.....\n11111\n\nWallu1 \nBrown #ff0\n11111\n.....\n.....\n.....\n.....\n\nCrate1Mark\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate1\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate01\ntransparent\n\nCrate0\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate0mark\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\ncrate0ghost\ntransparent\n\nPlayer1Mark\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nPlayer1\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nDed1Mark\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nDed1\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nCrated0\n#f80 #f00\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu0\n#f80 #f00\n.010.\n.010.\n.....\n.....\n.....\n\nCratel0\n#f80 #f00\n.....\n00...\n11...\n00...\n.....\n\nCrater0\n#f80 #f00\n.....\n...00\n...11\n...00\n.....\n\nCrated1\n#f80 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu1\n#f80 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nCratel1\n#f80 #ff0\n.....\n00...\n11...\n00...\n.....\n\nCrater1\n#f80 #ff0\n.....\n...00\n...11\n...00\n.....\n\n\nPit1Mark\nblack #bbbb00 white\n.111.\n10001\n10001\n10001\n.111.\n\n\nPit1\nblack #bbbb00 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\npit0ghost\ntransparent\n\nPit0\nblack #bb0000 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\n\npit0u\nblack #bb0000\n10001\n.....\n.....\n.....\n.....\n\npit0d\nblack #bb0000\n.....\n.....\n.....\n.....\n10001\n\npit0l\nblack #bb0000\n1....\n0....\n0....\n0....\n1....\n\npit0r\nblack #bb0000\n....1\n....0\n....0\n....0\n....1\n\npit1u\nblack #bbbb00\n10001\n.....\n.....\n.....\n.....\n\npit1d\nblack #bbbb00\n.....\n.....\n.....\n.....\n10001\n\npit1l\nblack #bbbb00\n1....\n0....\n0....\n0....\n1....\n\npit1r\nblack #bbbb00\n....1\n....0\n....0\n....0\n....1\n\nrim0u\n#b00\n.000.\n.....\n.....\n.....\n.....\n\nrim0l\n#b00\n.....\n0....\n0....\n0....\n.....\n\nrim0r\n#b00\n.....\n....0\n....0\n....0\n.....\n\nrim0d\n#b00\n.....\n.....\n.....\n.....\n.000.\n\nrim1u\n#bb0\n.000.\n.....\n.....\n.....\n.....\n\nrim1l\n#bb0\n.....\n0....\n0....\n0....\n.....\n\nrim1r\n#bb0\n.....\n....0\n....0\n....0\n.....\n\nrim1d\n#bb0\n.....\n.....\n.....\n.....\n.000.\n\nblackul\nblack\n0....\n.....\n.....\n.....\n.....\n\nblackur\nblack\n....0\n.....\n.....\n.....\n.....\n\nblackdl\nblack\n.....\n.....\n.....\n.....\n0....\n\nblackdr\nblack\n.....\n.....\n.....\n.....\n....0\n\nfell0\n#884400 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1mark\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfelld1\n#884400 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nfellu1\n#884400 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nfelll1\n#884400 #ff0\n.....\n00...\n11...\n00...\n.....\n\nfellr1\n#884400 #ff0\n.....\n...00\n...11\n...00\n.....\n\nfell0ghost\ntransparent\n\nsupported\ntransparent\n\nfellcant1\ntransparent\n\ncant1\ntransparent\n\ncant0\ntransparent\n\nfellcant0\ntransparent\n\ndead0a\ndarkred\n.....\n.0.0.\n.....\n.0.0.\n.....\n\ncursor0a\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\ncursor0b\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\n\n\ncursor2a\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\ncursor2b\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\none2mark\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2mark\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2mark\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none2\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0mark\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0mark\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0mark\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\nfour0\n#f00\n.0.0.\n.0.0.\n..00.\n...0.\n...0.\n\nfive0\n#f00\n.000.\n.0...\n.00..\n...0.\n.00..\n\nsix0\n#f00\n..00.\n.0...\n.00..\n.0.0.\n..0..\n\nseven0\n#f00\n.000.\n...0.\n...0.\n..0..\n..0..\n\ninf0\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\ninf0mark\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\n\ndecrement\ntransparent\n\nholding\ntransparent\n\nactiveb\n#f00\n.....\n.0.0.\n.....\n.....\n.....\n\nactive\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\nactivefell\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\npickeda0\ntransparent\n\npickedb0\ntransparent\n\npickeda2\ntransparent\n\npickedb2\ntransparent\n\nchosepink\n#ff22ff\n\nchosecyan\n#22ffff\n\npink\n#ff88ff\n\ncyan\n#88ffff\n\nplacemark\ntransparent\n\nactivecurse0\ntransparent\n\npartb\ntransparent\n\npartc\ntransparent\n\ncursor0mark\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\nwall2ghost\ntransparent\n\ncant2\ntransparent\n\nshowhere\ntransparent\n\nshowthis\ntransparent\n=======\nLEGEND\n=======\n\n` = Background\n& = Wall2 and wall1 and wall0\n# = Wall1\nX = Wall0\n+ = Wall0 and Wall1\nP = Player1 and active\n\nn = crate0 and crate1 and crate01\no = Crate1\n- = crate1 and crater1\n: = crate1 and crateu1\nL = crate1 and crater1 and crateu1\n0 = pit1\n! = crate0\n? = pit0\n/ = pit0 and pit1\n\n@ = one0 and pit0\nz = player1 and pit0\n\n| = black\n\n' = partb\n\" = partc\n\n~ = cursor2a\n_ = cursor2b\n\n1 = one0\n2 = two0\n3 = three0\n4 = four0\n5 = five0\n6 = six0\n7 = seven0\n8 = inf0\n\n[ = one2\n{ = two2\n] = three2\n> = wall2\nactiveab = active or activeb or activefell\npartbc = partb or partc\n\ny = target0\nu = Target1 and pit1\nt = Target1\nq = playertarget1\nr = player1\nb = cursor0a\nc = cursor0a and activecurse0\nk = cursor0b and activecurse0\ncurse0a = cursor0a or dead0a\ncurse0 = curse0a or cursor0b\ncurse2 = cursor2a or cursor2b\ncursor0 = cursor0a or cursor0b\n \nplayer = curse2 or activecurse0 or active or dead0a or activefell\ndead0 = dead0a\nx1 = player1 or crate1 or wall1 or target1 or playertarget1 or pit1\nx0 = crate0 or wall0 or pit0 or fell0\nxx = x0 or x1 or curse0\nx0ghost = crate0ghost or wall0ghost or pit0ghost or fell0ghost\ncratex1 = cratel1 or crater1 or crated1 or crateu1\nwallx2 = walll2 or wallr2 or walld2 or wallu2\nwallx1 = walll1 or wallr1 or walld1 or wallu1\nwallx0 = walll0 or wallr0 or walld0 or wallu0\nfellx1 = felll1 or fellr1 or felld1 or fellu1\npit0x = pit0l or pit0r or pit0d or pit0u\npit1x = pit1l or pit1r or pit1d or pit1u\ncrateorfell1 = crate1 or fell1\nplayerormark1 = player1 or player1mark\n\nx0mark = one0mark or two0mark or three0mark or cursor0mark or wall0mark or target0mark or crate0mark or inf0mark\nx1mark = player1mark or crate1mark or pit1mark or wall1mark or fell1mark or ded1mark or crate1mark or Target1mark or PlayerTarget1mark\nx2mark = one2mark or two2mark or three2mark\nxmark = x0mark or x1mark or x2mark\nnumber0 = one0 or two0 or three0 or four0 or five0 or six0 or seven0 or inf0\nnumber2 = one2 or two2 or three2\npicked = pickeda0 or pickedb0 or pickeda2 or pickedb2\n\npickable = player1 or pit1 or crate1 or number0 or wall1 or number2 or fell1 or ded1 or target0 or PlayerTarget1 or Target1\npickable2 = curse0a or pickable or wall0 or crate0 \n\nblackcorner = blackul or blackdl or blackur or blackdr\nrim0x = rim0l or rim0d or rim0u or rim0r\nrim1x = rim1l or rim1d or rim1u or rim1r \n=======\nSOUNDS\n=======\n\nSFX0 51304502\n\nsfx1 22108304\n\nSFX2 84700307\n\nSFX3 78571302\n\nSFX4 25131906\n\nSFX5 13408901\n\nSFX6 50704903\n\nSFX7 24622504\n\nSFX8 29744504\n\nSFX9 13344503\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\npink, chosepink\ncyan, chosecyan\n\n\nPit1,\npit1r\npit1l\npit1d\npit1u\npit0, pit0ghost\npit0r\npit0l\npit0d\npit0u\nblackul\nblackur\nblackdr\nblackdl\nTarget1, PlayerTarget1, target0\n\nfell1, ded1\nfelll1\nfellr1\nfelld1\nfellu1\n\ndead0a, fell0, fell0ghost\nrim0l \nrim0d \nrim0u \nrim0r\n\nrim1l \nrim1d \nrim1u \nrim1r \nPlayer1, Wall1, Crate1, \npit1mark\nfell1mark, ded1mark, target0mark\nTarget1mark, PlayerTarget1mark\nplayer1mark, crate1mark\nwall1mark\none0mark, two0mark, three0mark, wall0mark, inf0mark\none2mark, two2mark, three2mark\ncursor0mark, crate0mark\nnumber0, number2\ncratel1, walll1, \ncrater1, wallr1, \ncrated1, walld1, \ncrateu1, wallu1, \ncursor0, wall0, crate0, wall0ghost, crate0ghost\n walll0, cratel0\n wallr0, crater0\n walld0, crated0\n wallu0, crateu0\n crate01\n wall2, wall2ghost\n wallr2\n wallu2\n walll2\n walld2\n cursor2a, cursor2b\n \nfellcant1\nfellcant0\ncant0\ncant1\ncant2\nsupported\nactivefell\nactive, activeb\nactivecurse0\nholding\ndecrement\npickeda0, pickeda2\npickedb0, pickedb2\nplacemark\npartb partc\nshowthis\nshowhere\nblack\n\n======\nRULES\n======\n\n(Deal with action-----------------------------------------------------------------------------)\n\n[action activecurse0 curse0] -> [activecurse0 action curse0]\n\n(pick up ready icon)\ndown[action curse0a no holding pickable|number0] -> [curse0a holding pickable|number0 pickeda0] SFX9\ndown[action cursor0b no holding pickable|number0] -> [cursor0b holding pickable|number0 pickedb0] SFX9\ndown[action cursor2a no holding pickable2|number2] -> [cursor2a holding pickable2|number2 pickeda2] SFX9\ndown[action cursor2b no holding pickable2|number2] -> [cursor2b holding pickable2|number2 pickedb2] SFX9\n(switch to new ready icon)\ndown [action curse0a pickable| number0 no pickeda0][pickeda0] -> [curse0a pickable | number0 pickeda0][] SFX9\ndown [action cursor0b pickable| number0 no pickedb0][pickedb0] -> [cursor0b pickable | number0 pickedb0][] SFX9\ndown [action cursor2a pickable2| number2 no pickeda2][pickeda2] -> [cursor2a pickable2 | number2 pickeda2][] SFX9\ndown [action cursor2b pickable2| number2 no pickedb2][pickedb2] -> [cursor2b pickable2 | number2 pickedb2][] SFX9\n\n(put down ready icon)\ndown [action curse0 holding pickable| picked] -> [curse0 pickable|] SFX8\ndown [action cursor2a holding pickable2| pickeda2] -> [cursor2a pickable2|] SFX8\ndown [action cursor2b holding pickable2| pickedb2] -> [cursor2b pickable2|] SFX8\n\n(show mark)\nlate [xmark] -> []\nlate [showthis] -> []\nlate [showhere] -> []\n\nlate down [ | number0 pickeda0][curse0a] -> [showthis | number0 pickeda0][curse0a showhere]\nlate down [ | number0 pickedb0][cursor0b] -> [showthis | number0 pickedb0][cursor0b showhere]\nlate down [ | number2 pickeda2][cursor2a] -> [showthis | number2 pickeda2][cursor2a showhere]\nlate down [ | number2 pickedb2][cursor2b] -> [showthis | number2 pickedb2][cursor2b showhere]\nlate [showthis player1][showhere] -> [showthis player1][showhere player1mark]\nlate [showthis pit1][showhere] -> [showthis pit1][showhere pit1mark]\nlate [showthis crate1][showhere] -> [showthis crate1][showhere crate1mark]\nlate [showthis wall1][showhere] -> [showthis wall1][showhere wall1mark]\nlate [showthis one0][showhere] -> [showthis one0][showhere one0mark]\nlate [showthis two0][showhere] -> [showthis two0][showhere two0mark]\nlate [showthis three0][showhere] -> [showthis three0][showhere three0mark]\nlate [showthis one2][showhere] -> [showthis one2][showhere one2mark]\nlate [showthis two2][showhere] -> [showthis two2][showhere two2mark]\nlate [showthis three2][showhere] -> [showthis three2][showhere three2mark]\nlate [showthis wall0][showhere] -> [showthis wall0][showhere wall0mark]\nlate [showthis fell1][showhere] -> [showthis fell1][showhere fell1mark]\nlate [showthis ded1][showhere] -> [showthis ded1][showhere ded1mark]\nlate [showthis target0][showhere] -> [showthis target0][showhere target0mark]\nlate [showthis crate0][showhere] -> [showthis crate0][showhere crate0mark]\nlate [showthis cursor0][showhere] -> [showthis cursor0][showhere cursor0mark]\nlate [showthis inf0][showhere] -> [showthis inf0][showhere inf0mark]\nlate [showthis Target1][showhere] -> [showthis target1][showhere Target1mark]\nlate [showthis PlayerTarget1][showhere] -> [showthis PlayerTarget1][showhere PlayerTarget1mark]\n(connect cratemark)\nup [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crateu1 | crate1 crated1]\ndown [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crated1 | crate1 crateu1]\nleft [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark cratel1 | crate1 crater1]\nright [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crater1 | crate1 cratel1]\nup [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crateu1 | fell1 felld1]\ndown [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crated1 | fell1 fellu1]\nleft [action curse0 holding fell1mark no xx no number0 no number2| fell1] -> [action curse0 holding fell1mark cratel1 | fell1 fellr1]\nright [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crater1 | fell1 felll1]\n\n(place mark)\n[placemark] -> []\n\ndown [action curse0a holding xmark no x1 no number0][pickeda0 number0] -> [curse0a holding xmark placemark][pickeda0 decrement number0] SFX7\ndown [action cursor0b holding xmark no x1 no number0][pickedb0 number0] -> [cursor0b holding xmark placemark][pickedb0 decrement number0] SFX7\n\ndown [action cursor2a holding xmark no xx no number0 no number2][pickeda2 number2] -> [cursor2a holding xmark placemark][pickeda2 decrement number2] SFX7\ndown [action cursor2b holding xmark no xx no number0 no number2][pickedb2 number2] -> [cursor2b holding xmark placemark][pickedb2 decrement number2] SFX7\n\n\n\n[placemark player1mark] -> [placemark player1 player1mark]\n[placemark pit1mark] -> [placemark pit1 pit1mark]\n[placemark crate1mark] -> [placemark crate1 crate1mark]\n[placemark wall1mark] -> [placemark wall1 wall1mark]\n[placemark one0mark] -> [placemark one0 one0mark]\n[placemark two0mark] -> [placemark two0 two0mark]\n[placemark three0mark] -> [placemark three0 three0mark]\n[placemark one2mark] -> [placemark one2 one2mark]\n[placemark two2mark] -> [placemark two2 two2mark]\n[placemark three2mark] -> [placemark three2 three2mark]\n[placemark wall0mark] -> [placemark wall0 wall0mark]\n[placemark fell1mark] -> [placemark fell1 fell1mark]\n[placemark ded1mark] -> [placemark ded1 ded1mark]\n[placemark target0mark] -> [placemark target0 target0mark]\n[placemark crate0mark] -> [placemark crate0 crate0mark]\n[placemark Target1mark] -> [placemark target1 Target1mark]\n[placemark inf0mark] -> [placemark inf0 inf0mark]\n[placemark PlayerTarget1mark] -> [placemark playertarget1 PlayerTarget1mark]\ndown [placemark cursor0mark][curse0a|no one2] -> [ cursor0b cursor0mark][curse0a|]\n[placemark cursor0mark] -> [placemark cursor0a cursor0mark]\n\n(decrement number of placed item)\ndown [xmark holding cursor2a][pickable2|one2 decrement pickeda2] -> [xmark holding cursor2a][|one2 decrement pickeda2]\ndown [xmark holding cursor2b][pickable2|one2 decrement pickedb2] -> [xmark holding cursor2b][|one2 decrement pickedb2]\ndown [xmark holding curse0a][pickable|one0 decrement pickeda0] -> [xmark holding curse0a][|one0 decrement pickeda0]\ndown [xmark holding cursor0b][pickable|one0 decrement pickedb0] -> [xmark holding cursor0b][|one0 decrement pickedb0]\ndown [xmark holding cursor2a][|one2 decrement pickeda2] -> [cursor2a][|]\ndown [xmark holding cursor2b][|one2 decrement pickedb2] -> [cursor2b][|]\ndown [xmark holding cursor0a][|one0 decrement pickeda0] -> [cursor0a][|]\ndown [xmark holding cursor0b][|one0 decrement pickedb0] -> [cursor0b][|]\n[one0 decrement] -> []\n[two0 decrement] -> [one0]\n[three0 decrement] -> [two0]\n[four0 decrement] -> [three0]\n[five0 decrement] -> [four0]\n[six0 decrement] -> [five0]\n[seven0 decrement] -> [six0]\n[one2 decrement] -> []\n[two2 decrement] -> [one2]\n[three2 decrement] -> [two2]\n\n\n\n(player -> cursor)\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [player1 action active no wall0ghost no crate0ghost][partbc] -> [cursor0a player1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [ded1 action activefell no wall0ghost no crate0ghost][partbc] -> [cursor0a ded1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\n\n(cursor holding -> player)\ndown [action curse0a activecurse0 player1 holding xmark][| number0 pickeda0] -> [active player1][ | number0] SFX6\ndown [action curse0a activecurse0 ded1 holding xmark][| number0 pickeda0] -> [activefell ded1][ | number0] SFX6\ndown [action cursor0b activecurse0 player1 holding xmark][| number0 pickedb0] -> [active player1][ | number0] SFX6\ndown [action cursor0b activecurse0 ded1 holding xmark][| number0 pickedb0] -> [activefell ded1][ | number0] SFX6\n(empty cursor -> player)\n[action curse0 player1 activecurse0 no holding] -> [active player1] SFX6\n[action curse0 ded1 activecurse0 no holding] -> [activefell ded1] SFX6\n(red -> blue)\n[action cursor0a activecurse0 holding xmark][partc][pickeda0] -> [cursor0a cursor2a][partc][] SFX5\n[action cursor0a activecurse0 ][partc] -> [cursor0a cursor2a][partc] SFX5\n[action cursor0b activecurse0 holding xmark][partc][pickedb0] -> [cursor0b cursor2b][partc][] SFX5\n[action cursor0b activecurse0 ][partc] -> [cursor0b cursor2b][partc] SFX5\n(blue holding -> red)\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\nrandom down [action curse2 curse0 holding xmark][| number2 pickeda2] -> [activecurse0 cursor0a][ | number2] SFX6\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\n(empty blue -> red)\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\nrandom [action curse2 curse0 no holding] -> [activecurse0 cursor0a] SFX6\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\n\n\n[action player] -> SFX0\n[action curse0] -> SFX0\n\n(Aesthetic----------------------------------------------------------------------------------------)\n\n\n\n(ghosts)\n[player1 active][pit0] -> [player1 active][pit0ghost]\n[pit0ghost][cursor0] -> [pit0][cursor0]\n[player1 active][wall0] -> [player1 active][wall0ghost]\n[wall0ghost][cursor0] -> [wall0][cursor0]\n[player1 active][crate0] -> [player1 active][crate0ghost]\n[crate0ghost][cursor0] -> [crate0][cursor0]\n[player1 active][fell0] -> [player1 active][fell0ghost]\n[fell0ghost][cursor0] -> [fell0][cursor0]\n[curse0 activecurse0][wall2] -> [curse0 activecurse0][wall2ghost]\n[wall2ghost][curse2] -> [wall2][curse2]\n\n\n(wall boundaries)\n[wallx2] -> []\n[wallx1] -> []\n[wallx0] -> []\nup [wall2 | no wall2] -> [wall2 wallu2 | ]\ndown [wall2 | no wall2] -> [wall2 walld2 | ]\nleft [wall2 | no wall2] -> [wall2 walll2 | ]\nright [wall2 | no wall2] -> [wall2 wallr2 | ]\nup [wall1 | no wall1] -> [wall1 wallu1 | ]\ndown [wall1 | no wall1] -> [wall1 walld1 | ]\nleft [wall1 | no wall1] -> [wall1 walll1 | ]\nright [wall1 | no wall1] -> [wall1 wallr1 | ]\nup [wall0 | no wall0] -> [wall0 wallu0 | ]\ndown [wall0 | no wall0] -> [wall0 walld0 | ]\nleft [wall0 | no wall0] -> [wall0 walll0 | ]\nright [wall0 | no wall0] -> [wall0 wallr0 | ]\n\n(crate connectors)\nup [crateu0|] -> [crateu0 | crated0]\nright [crater0|] -> [crater0 | cratel0]\nup [crateu1|] -> [crateu1 | crated1]\nright [crater1|] -> [crater1 | cratel1]\n(pit connectors)\n[blackcorner] -> []\n[pit0x] -> [] \n[pit1x] -> [] \nup [pit1 | pit1] -> [pit1u pit1|pit1d pit1]\nright [pit1 | pit1] -> [pit1r pit1|pit1l pit1]\nup [pit0 | pit0] -> [pit0u pit0|pit0d pit0]\nright [pit0 | pit0] -> [pit0r pit0|pit0l pit0]\n[pit1u pit1r] -> [pit1u pit1r blackur]\n[pit1u pit1l] -> [pit1u pit1l blackul]\n[pit1d pit1r] -> [pit1d pit1r blackdr]\n[pit1d pit1l] -> [pit1d pit1l blackdl]\n[pit0u pit0r] -> [pit0u pit0r blackur]\n[pit0u pit0l] -> [pit0u pit0l blackul]\n[pit0d pit0r] -> [pit0d pit0r blackdr]\n[pit0d pit0l] -> [pit0d pit0l blackdl]\n[rim1x] -> []\n[rim0x] -> []\nup[pit0|no pit0] -> [pit0 rim0u|]\ndown[pit0|no pit0] -> [pit0 rim0d|]\nleft[pit0|no pit0] -> [pit0 rim0l|]\nright[pit0|no pit0] -> [pit0 rim0r|]\nup[pit1|no pit1] -> [pit1 rim1u|]\ndown[pit1|no pit1] -> [pit1 rim1d|]\nleft[pit1|no pit1] -> [pit1 rim1l|]\nright[pit1|no pit1] -> [pit1 rim1r|]\nlate [pink] -> []\nlate [cyan] -> []\nlate [chosepink] -> []\nlate [chosecyan] -> []\nlate down [pickable |number0] -> [pickable pink | number0 pink]\nlate down [pickable2 |number2] -> [pickable2 cyan | number2 cyan]\nlate up [pink picked|pink] -> [chosepink picked|chosepink ]\nlate up [cyan picked|cyan ] -> [chosecyan picked|chosecyan ]\n\n(Movement----------------------------------------------------------------------------------------)\n\n(move attached items)\n[moving activecurse0 curse0] -> [moving activecurse0 moving curse0]\n[moving active player1] -> [moving active moving player1]\n[moving activefell ded1] -> [moving activefell moving ded1]\n[moving curse0 holding] -> [moving curse0 moving holding]\n[moving curse2 holding] -> [moving curse2 moving holding]\n\n(reset and propogate cant)\n[cant0] -> []\n[cant1] -> []\n[cant2] -> []\n[fellcant0] -> []\n[fellcant1] -> []\n\n[black no cant0 no cant1 no cant2] -> [black cant0 cant1 cant2]\n[wall2 no cant2] -> [wall2 cant2]\n[wall1 no cant1] -> [wall1 cant1]\n[wall0 no cant0] -> [wall0 cant0]\n[number0] -> [number0 cant1]\n[number2] -> [number2 cant1]\n[no pit1 no fellcant1] -> [fellcant1]\n[no pit0 no fellcant0] -> [fellcant0]\n\n[> ded1][fell1|fellcant1] -> [> ded1][fell1 fellcant1 | fellcant1]\n+ [> ded1][ded1|fellcant1] -> [> ded1][ded1 fellcant1 | fellcant1]\n+ up[fellu1|fellcant1] -> [fellu1 fellcant1 | fellcant1]\n+ left[felll1|fellcant1] -> [felll1 fellcant1 | fellcant1]\n+ down[felld1|fellcant1] -> [felld1 fellcant1 | fellcant1]\n+ right[fellr1|fellcant1] -> [fellr1 fellcant1 | fellcant1]\n\n+ [> player1][crate1|cant1] -> [> player1][crate1 cant1 | cant1]\n+ [> player1][player1|cant1] -> [> player1][player1 cant1 | cant1]\n+ up[crateu1|cant1] -> [crateu1 cant1 | cant1]\n+ left[cratel1|cant1] -> [cratel1 cant1 | cant1]\n+ down[crated1|cant1] -> [crated1 cant1 | cant1]\n+ right[crater1|cant1] -> [crater1 cant1 | cant1]\n+ [crate1 crate0 cant0] -> [crate1 crate0 cant0 cant1]\n+ [crate1 crate0 cant1] -> [crate1 crate0 cant0 cant1]\n+ [> dead0][dead0|fellcant0] -> [> dead0][dead0 fellcant0 | fellcant0]\n+ [> cursor0][cursor0|cant0] -> [> cursor0][cursor0 cant0 | cant0]\n+ [> cursor0][crate0 | number0] -> [> cursor0][crate0 cant0| number0]\n+ [> cursor0][crate0|cant0] -> [> cursor0][crate0 cant0 | cant0]\n+ up[crateu0|cant0] -> [crateu0 cant0 | cant0]\n+ left[cratel0|cant0] -> [cratel0 cant0 | cant0]\n+ down[crated0|cant0] -> [crated0 cant0 | cant0]\n+ right[crater0|cant0] -> [crater0 cant0 | cant0]\n\n[> curse2 | wall2] -> [stationary curse2 | wall2]\n[> curse2 | black] -> [stationary curse2 | black]\n[cursor0 cant0] -> [stationary cursor0 cant0]\n[player1 cant1] -> [stationary player1 cant1]\n[ded1 fellcant1] -> [stationary ded1 fellcant1]\n[dead0 fellcant0] -> [stationary dead0 fellcant0]\n\n\n(propagate movement)\n\n[ > Ded1 | Fell1 no fellcant1] -> [ > Ded1 | > Fell1 ]\n\n[ > Cursor0 | Crate0 ] -> [ > Cursor0 | > Crate0 ]\n+ [ > Cursor0 | Cursor0 ] -> [ > Cursor0 | > Cursor0 ]\n+ [ > Crate0 | Crate0 ] -> [ > Crate0 | > Crate0 ]\n\n+ [ > Player1 | Crate1 ] -> [ > Player1 | > Crate1 ]\n+ [ > Player1 | Player1] -> [ > Player1 | > Player1 ]\n+ [ > Crate1 | Player1 ] -> [ > Crate1 | > Player1 ]\n+ [> crate1|crate1] -> [> crate1 | > crate1]\n+ up[moving crate1 crateu1|crate1] -> [moving crate1 crateu1 | moving crate1]\n+ left[moving crate1 cratel1|crate1] -> [moving crate1 cratel1 | moving crate1]\n+ down[moving crate1 crated1|crate1] -> [moving crate1 crated1 | moving crate1]\n+ right[moving crate1 crater1|crate1] -> [moving crate1 crater1 | moving crate1]\n \n\n[> fell1|fell1] -> [> fell1 | > fell1]\n+ up[moving fell1 fellu1|fell1] -> [moving fell1 fellu1 | moving fell1]\n+ left[moving fell1 felll1|fell1] -> [moving fell1 felll1 | moving fell1]\n+ down[moving fell1 felld1|fell1] -> [moving fell1 felld1 | moving fell1]\n+ right[moving fell1 fellr1|fell1] -> [moving fell1 fellr1 | moving fell1]\n\n[moving crate1 cratex1] -> [moving crate1 moving cratex1]\n[moving fell1 fellx1] -> [moving fell1 moving fellx1]\n[moving crate1 crate0ghost] -> [moving crate1 moving crate0ghost]\n\n[active stationary player1] -> [stationary active stationary player1]\n[activecurse0 stationary curse0] -> [stationary activecurse0 stationary curse0]\n[activefell stationary ded1] -> [stationary activefell stationary ded1]\n[stationary cursor0 activecurse0 holding] -> [stationary cursor0 activecurse0 stationary holding]\n[stationary curse2 holding] -> [stationary curse2 stationary holding]\n\n\n(falling)\nlate [supported] -> []\n\nlate [crate1 ded1] -> [crate1 supported ded1]\nlate [crate1 no pit1] -> [crate1 supported]\nlate [crate1 fell1] -> [crate1 fell1 supported]\n\n\nlate up[crateu1|supported] -> [crateu1 supported | supported]\n+ late left[cratel1|supported] -> [cratel1 supported | supported]\n+ late down[crated1|supported] -> [crated1 supported | supported]\n+ late right[crater1|supported] -> [crater1 supported | supported]\n\n\nlate [cursor0 pit0 no fell0] -> [pit0 dead0a]SFX3\nlate [player1 active pit1 no fell1 no ded1] -> [pit1 ded1 activefell]SFX3\nlate [player1 pit1 no fell1 no ded1] -> [pit1 ded1 ]SFX3\nlate [crate0 pit0 no supported] -> [pit0 fell0]SFX3\nlate [crate1 pit1 no supported] -> [pit1 fell1] SFX3\n\n\n\nlate [crateu1 no crate1 fell1] -> [fellu1 fell1]\nlate [cratel1 no crate1 fell1] -> [felll1 fell1]\nlate [crater1 no crate1 fell1] -> [fellr1 fell1]\nlate [crated1 no crate1 fell1] -> [felld1 fell1]\n\nlate [crateu1 no crate1] -> []\nlate [cratel1 no crate1] -> []\nlate [crater1 no crate1] -> []\nlate [crated1 no crate1] -> []\nlate up [crateu1 |no crate1] -> [|]\nlate left [cratel1 |no crate1] -> [|]\nlate right [crater1 |no crate1] -> [|]\nlate down [crated1 |no crate1] -> [|]\nlate [player1 ded1] -> [player1 ded1] SFX0\nlate [player1 ded1] -> cancel \n\n[moving crate0] -> SFX2\n[moving crate1] -> SFX2\n\n==============\nWINCONDITIONS\n==============\n\n\nAll target0 on crate0\nAll Target1 on Crateorfell1\nAll PlayerTarget1 on Playerormark1\nno Cursor0 on target1\nno cursor0 on PlayerTarget1\n\n=======\nLEVELS\n=======\n\nmessage Book 1: BASE\n\nmessage Page 1.1: GOAL\n\n#######\n#`````#\n#`p`t`#\n#`````#\n#`o`q`#\n#`````#\n#######\n\nmessage Page 1.2: TOOL\n\n#######\n#`t`o`#\n#t`-:`#\n#``tlo#\n#p````#\n#######\n\nmessage Page 1.3: HOLE\n\n########\n##``0`##\n#```0``#\n#``o0`t#\n#po:0``#\n#``:0`t#\n#```0``#\n##``0`##\n########\n\nmessage Page 1.4: FALL\n\n########\n#00u``0#\n#00po`0#\n#`000`0#\n#`00```#\n#`000``#\n#`000``#\n########\n\nmessage Book 2: EDIT\n\nmessage Page 2.1: MINI\n\n||||||||||\n|```````'|\n|`######`|\n|`#````#`|\n|`#``t`#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 2.2: FORM\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 2.3: PLUG\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#ro`o`#`|\n|`#####`#`|\n|`###`o`#`|\n|`#``oLo#`|\n|`#````##`|\n|`#`q####`|\n|`#######`|\n|`````````|\n|``c`0````|\n|````8````|\n|`````````|\n|||||||||||\n\nmessage Page 2.4: TRAP\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#``````#`|\n|`#``t```#`|\n|`#`tqt``#`|\n|`#``t```#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````16````|\n|``````````|\n||||||||||||\n\nmessage Book 3: DUAL\n\nmessage Page 3.1: CO-OP\n\n#######\n####qq#\n#po000#\n#`o000#\n###o``#\n###r`'#\n#######\n\nmessage Page 3.2: REST\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#`r00q#`|\n|`#######`|\n|`````````|\n|``c`o````|\n|````2````|\n|`````````|\n|||||||||||\nmessage Page 3.3: SAIL\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#0000q#`|\n|`#00000#`|\n|`#00000#`|\n|`#```00#`|\n|`#```00#`|\n|`#######`|\n|`````````|\n|``c`ro```|\n|````23```|\n|`````````|\n|||||||||||\n\nmessage Page 3.4: TWIN\n\n|||||||||||||||||||||\n|`````````+````````'|\n|`#######`+`#######`|\n|`#`````#`+`#`````#`|\n|`#```q`#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`q```#`|\n|`#`````#`+`#`````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````6````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Book 4: WHAT\n\nmessage Page 4.1: GUIS\n\n\n#######\n#q#``'#\n#``8#`#\n#`#p#`#\n#`#o#`#\n#`#1``#\n#######\n\nmessage Page 4.2: IDEA\n\n||||||||||\n|```````'|\n|`######`|\n|`#```t#`|\n|`#```t#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```31```|\n|````````|\n||||||||||\n\nmessage Page 4.3: FILL\n\n\n######\n#0poq#\n#0`70#\n#'000#\n#0000#\n######\n\nmessage Page 4.4: A LOT\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|``````'|\n|`c3o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Book 5: UHHH\n\nmessage Page 5.1: WALL\n\n||||||||||\n|```````'|\n|`######`|\n|`#t`#`#`|\n|`#````#`|\n|`##`o`#`|\n|x+xxxx+x|\n|`#````#`|\n|`#````#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 5.2: SAFE\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#xxxxx#`|\n|`#x```x#`|\n|`#x`t`x#`|\n|`#x```x#`|\n|`#xxxxx#`|\n|`#######`|\n|`````````|\n|`c`o1r```|\n|```111```|\n|`````````|\n|||||||||||\n\nmessage Page 5.3: LOCK\n\n|||||||||||||\n|o```'`xxxcx|\n|1``x```qx!x|\n|`1!````qx`x|\n|``1?x`xxx?x|\n|r``1````!`x|\n|````2`xxxxx|\n|||||||||||||\n\n\n\nmessage Page 5.4: POST\n\n+++++++++\n+p#```#q+\n+`#``'#3+\n+`#`1`#`+\n+`#`2`#`+\n+`#```#`+\n+`#```#`+\n+++++++++\nmessage Book 6: BLUE\n\nmessage Page 6.1: META\n\n||||||||||||\n|++++++++++|\n|+````\"```+|\n|+`######`+|\n|+`#````#`+|\n|+`#``t`#`+|\n|+`#````#`+|\n|+`######`+|\n|+````````+|\n|+```ro```+|\n|+````````+|\n|+````````+|\n|++++++++++|\n|``````````|\n|``~`1b````|\n|````{[````|\n|``````````|\n||||||||||||\n\nmessage Page 6.2: WILD\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`#######`+|\n|+`#0000q#`+|\n|+`#00000#`+|\n|+`#`0000#`+|\n|+`#`0000#`+|\n|+`#```00#`+|\n|+`#######`+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\nmessage Page 6.3: UH OH\n\n|||||||||||\n|+++++++++|\n|+``````\"+|\n|+`+++++`+|\n|+`+```+`+|\n|+`+`t`+`+|\n|+`+```+`+|\n|+`+```+`+|\n|+`+++++`+|\n|+```````+|\n|+```o```+|\n|+```````+|\n|+```````+|\n|+++++++++|\n|`````````|\n|`````````|\n|`~`1br```|\n|```][[```|\n|`````````|\n|||||||||||\n\nmessage Page 6.4: VARY\n\n|||||||||||||||||||||||\n|++++++++++&++++++++++|\n|+``````\"`x&x````````+|\n|+`######`x&x`######`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`#`qt`#`x&x`#`tq`#`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`######`x&x`######`+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|++++++++++&++++++++++|\n|``````````&``````````|\n|`~`r1ob```&`_`r1ob```|\n|```[{[[```&```[[[[```|\n|``````````&``````````|\n|||||||||||||||||||||||\n\nmessage Book 7: ?!?!\n\nmessage Page 7.1: EACH\n\n+++++++\n+````'+\n+`###`+\n+`#q#`+\n+`#0#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`###`+\n+`````+\n+``c``+\n+`r0o`+\n+``4``+\n+`````+\n+++++++\n\nmessage Page 7.2: HOLD\n\n&&&&&&&&&\n&`8```+`&\n&`{po`+`&\n&`\"```+t&\n&&&&&&&&&\n\nmessage Page 7.3: TRIP\n\n&&&&&&&\n&```\"`&\n&`o`!`&\n&`````&\n&+++++&\n&`r2b`&\n&`[[{~&\n&y```t&\n&&&&&&&\n\nmessage Page 7.4: PLAN\n\n\n|||||||||\n|```t```|\n|```````|\n|+++++++|\n|```````|\n|```````|\n|>>>>>>>|\n|```````|\n|```````|\n|+++++++|\n|```~```|\n|[[`2\"11|\n|[[`[`[[|\n|&&`&&&&|\n|&&bor&&|\n|||||||||\n\n\n\n\n\nmessage Book 8: (RE)STAR(TS)\n\n\nmessage Page 8.1: (IN)FORM(ED)\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 8.2: (EN)TWIN(ED)\n\n|||||||||||||||||||||\n|`````````+`````````|\n|`#######`+`#######`|\n|`#````q#`+`#`````#`|\n|`#`````#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`````#`|\n|`#`````#`+`#q````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````5````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Page 8.3: (ZE)ALOT(RY)\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|```````|\n|`c2o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Page 8.4: (BE)WILD(ER)\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`+++++++`+|\n|+`+0000q+`+|\n|+`+00000+`+|\n|+`+00000+`+|\n|+`+`0000+`+|\n|+`+```00+`+|\n|+`+++++++`+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",[0,3,0,3,2,1,1,2,2,3,0,1,0,3,3,1,2,2,2,2,3,0,0,1,0,0,3,3,0,2,2,0,3,1,0,2,2,2,1,1,1,2],"background cant1 fellcant0 fellcant1 wall1:0,0,background cant1 fellcant0 fellcant1 wall1 wallr1:1,1,1,1,1,0,\n0,0,background cant1 fellcant0 fellcant1 wall1 walld1 wallr1:2,background fellcant0 fellcant1:3,3,3,3,3,\nbackground cant1 fellcant0 fellcant1 wall1 wallr1 wallu1:4,0,background cant1 fellcant0 fellcant1 wall1 walld1:5,3,3,3,3,3,\n3,3,background cant1 fellcant0 fellcant1 wall1 wallu1:6,5,3,3,3,3,\n3,3,3,6,5,background fellcant0 pit1 pit1d rim1l rim1r rim1u:7,background fellcant0 pit1 pit1d pit1u rim1l rim1r:8,8,\n8,8,activefell background ded1 fellcant0 pit1 pit1d pit1u rim1l rim1r:9,background fell1 fellcant0 pit1 pit1u rim1d rim1l rim1r:10,6,5,3,background crate1 crated1 fellcant0 fellcant1 supported:11,\nbackground crate1 crated1 crateu1 fellcant0 fellcant1 supported:12,background crate1 crateu1 fellcant0 fellcant1 supported:13,3,3,3,6,0,background cant1 fellcant0 fellcant1 wall1 walld1 walll1:14,\n3,background fellcant0 fellcant1 target1:15,3,15,3,background cant1 fellcant0 fellcant1 wall1 walll1 wallu1:16,0,0,\n0,background cant1 fellcant0 fellcant1 wall1 walll1:17,17,17,17,17,0,0,\n",6,"1642084928380.6565"] -], -[ - "VEXT EDIT B", - ["title VEXT EDIT\nauthor JACK\n\nrun_rules_on_level_start\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\n#eeeeee\n\nPlayerTarget1mark\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1mark\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nPlayerTarget1\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0Mark\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nWall0 \n#884400 #f00\n00000\n00000\n00000\n00000\n00000\n\nwalll0 \nBrown #f00\n1....\n1....\n1....\n1....\n1....\n\nWallr0 \nBrown #f00\n....1\n....1\n....1\n....1\n....1\n\nWalld0 \nBrown #f00\n.....\n.....\n.....\n.....\n11111\n\nWallu0 \nBrown #f00\n11111\n.....\n.....\n.....\n.....\n\nBlack\nblack\n\nwall0ghost\ntransparent\n\nWall0Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1 \n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall2\n#884400 #00f\n00000\n00000\n00000\n00000\n00000\n\nwalll2\nBrown #00f\n1....\n1....\n1....\n1....\n1....\n\nWallr2 \nBrown #00f\n....1\n....1\n....1\n....1\n....1\n\nWalld2 \nBrown #00f\n.....\n.....\n.....\n.....\n11111\n\nWallu2 \nBrown #00f\n11111\n.....\n.....\n.....\n.....\n\nwalll1 \nBrown #ff0\n1....\n1....\n1....\n1....\n1....\n\nWallr1 \nBrown #ff0\n....1\n....1\n....1\n....1\n....1\n\nWalld1 \nBrown #ff0\n.....\n.....\n.....\n.....\n11111\n\nWallu1 \nBrown #ff0\n11111\n.....\n.....\n.....\n.....\n\nCrate1Mark\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate1\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate01\ntransparent\n\nCrate0\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate0mark\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\ncrate0ghost\ntransparent\n\nPlayer1Mark\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nPlayer1\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nDed1Mark\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nDed1\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nCrated0\n#f80 #f00\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu0\n#f80 #f00\n.010.\n.010.\n.....\n.....\n.....\n\nCratel0\n#f80 #f00\n.....\n00...\n11...\n00...\n.....\n\nCrater0\n#f80 #f00\n.....\n...00\n...11\n...00\n.....\n\nCrated1\n#f80 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu1\n#f80 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nCratel1\n#f80 #ff0\n.....\n00...\n11...\n00...\n.....\n\nCrater1\n#f80 #ff0\n.....\n...00\n...11\n...00\n.....\n\n\nPit1Mark\nblack #bbbb00 white\n.111.\n10001\n10001\n10001\n.111.\n\n\nPit1\nblack #bbbb00 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\npit0ghost\ntransparent\n\nPit0\nblack #bb0000 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\n\npit0u\nblack #bb0000\n10001\n.....\n.....\n.....\n.....\n\npit0d\nblack #bb0000\n.....\n.....\n.....\n.....\n10001\n\npit0l\nblack #bb0000\n1....\n0....\n0....\n0....\n1....\n\npit0r\nblack #bb0000\n....1\n....0\n....0\n....0\n....1\n\npit1u\nblack #bbbb00\n10001\n.....\n.....\n.....\n.....\n\npit1d\nblack #bbbb00\n.....\n.....\n.....\n.....\n10001\n\npit1l\nblack #bbbb00\n1....\n0....\n0....\n0....\n1....\n\npit1r\nblack #bbbb00\n....1\n....0\n....0\n....0\n....1\n\nrim0u\n#b00\n.000.\n.....\n.....\n.....\n.....\n\nrim0l\n#b00\n.....\n0....\n0....\n0....\n.....\n\nrim0r\n#b00\n.....\n....0\n....0\n....0\n.....\n\nrim0d\n#b00\n.....\n.....\n.....\n.....\n.000.\n\nrim1u\n#bb0\n.000.\n.....\n.....\n.....\n.....\n\nrim1l\n#bb0\n.....\n0....\n0....\n0....\n.....\n\nrim1r\n#bb0\n.....\n....0\n....0\n....0\n.....\n\nrim1d\n#bb0\n.....\n.....\n.....\n.....\n.000.\n\nblackul\nblack\n0....\n.....\n.....\n.....\n.....\n\nblackur\nblack\n....0\n.....\n.....\n.....\n.....\n\nblackdl\nblack\n.....\n.....\n.....\n.....\n0....\n\nblackdr\nblack\n.....\n.....\n.....\n.....\n....0\n\nfell0\n#884400 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1mark\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfelld1\n#884400 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nfellu1\n#884400 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nfelll1\n#884400 #ff0\n.....\n00...\n11...\n00...\n.....\n\nfellr1\n#884400 #ff0\n.....\n...00\n...11\n...00\n.....\n\nfell0ghost\ntransparent\n\nsupported\ntransparent\n\nfellcant1\ntransparent\n\ncant1\ntransparent\n\ncant0\ntransparent\n\nfellcant0\ntransparent\n\ndead0a\ndarkred\n.....\n.0.0.\n.....\n.0.0.\n.....\n\ncursor0a\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\ncursor0b\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\n\n\ncursor2a\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\ncursor2b\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\none2mark\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2mark\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2mark\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none2\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0mark\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0mark\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0mark\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\nfour0\n#f00\n.0.0.\n.0.0.\n..00.\n...0.\n...0.\n\nfive0\n#f00\n.000.\n.0...\n.00..\n...0.\n.00..\n\nsix0\n#f00\n..00.\n.0...\n.00..\n.0.0.\n..0..\n\nseven0\n#f00\n.000.\n...0.\n...0.\n..0..\n..0..\n\ninf0\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\ninf0mark\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\n\ndecrement\ntransparent\n\nholding\ntransparent\n\nactiveb\n#f00\n.....\n.0.0.\n.....\n.....\n.....\n\nactive\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\nactivefell\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\npickeda0\ntransparent\n\npickedb0\ntransparent\n\npickeda2\ntransparent\n\npickedb2\ntransparent\n\nchosepink\n#ff22ff\n\nchosecyan\n#22ffff\n\npink\n#ff88ff\n\ncyan\n#88ffff\n\nplacemark\ntransparent\n\nactivecurse0\ntransparent\n\npartb\ntransparent\n\npartc\ntransparent\n\ncursor0mark\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\nwall2ghost\ntransparent\n\ncant2\ntransparent\n\nshowhere\ntransparent\n\nshowthis\ntransparent\n=======\nLEGEND\n=======\n\n` = Background\n& = Wall2 and wall1 and wall0\n# = Wall1\nX = Wall0\n+ = Wall0 and Wall1\nP = Player1 and active\n\nn = crate0 and crate1 and crate01\no = Crate1\n- = crate1 and crater1\n: = crate1 and crateu1\nL = crate1 and crater1 and crateu1\n0 = pit1\n! = crate0\n? = pit0\n/ = pit0 and pit1\n\n@ = one0 and pit0\nz = player1 and pit0\n\n| = black\n\n' = partb\n\" = partc\n\n~ = cursor2a\n_ = cursor2b\n\n1 = one0\n2 = two0\n3 = three0\n4 = four0\n5 = five0\n6 = six0\n7 = seven0\n8 = inf0\n\n[ = one2\n{ = two2\n] = three2\n> = wall2\nactiveab = active or activeb or activefell\npartbc = partb or partc\n\ny = target0\nu = Target1 and pit1\nt = Target1\nq = playertarget1\nr = player1\nb = cursor0a\nc = cursor0a and activecurse0\nk = cursor0b and activecurse0\ncurse0a = cursor0a or dead0a\ncurse0 = curse0a or cursor0b\ncurse2 = cursor2a or cursor2b\ncursor0 = cursor0a or cursor0b\n \nplayer = curse2 or activecurse0 or active or dead0a or activefell\ndead0 = dead0a\nx1 = player1 or crate1 or wall1 or target1 or playertarget1 or pit1\nx0 = crate0 or wall0 or pit0 or fell0\nxx = x0 or x1 or curse0\nx0ghost = crate0ghost or wall0ghost or pit0ghost or fell0ghost\ncratex1 = cratel1 or crater1 or crated1 or crateu1\nwallx2 = walll2 or wallr2 or walld2 or wallu2\nwallx1 = walll1 or wallr1 or walld1 or wallu1\nwallx0 = walll0 or wallr0 or walld0 or wallu0\nfellx1 = felll1 or fellr1 or felld1 or fellu1\npit0x = pit0l or pit0r or pit0d or pit0u\npit1x = pit1l or pit1r or pit1d or pit1u\ncrateorfell1 = crate1 or fell1\nplayerormark1 = player1 or player1mark\n\nx0mark = one0mark or two0mark or three0mark or cursor0mark or wall0mark or target0mark or crate0mark or inf0mark\nx1mark = player1mark or crate1mark or pit1mark or wall1mark or fell1mark or ded1mark or crate1mark or Target1mark or PlayerTarget1mark\nx2mark = one2mark or two2mark or three2mark\nxmark = x0mark or x1mark or x2mark\nnumber0 = one0 or two0 or three0 or four0 or five0 or six0 or seven0 or inf0\nnumber2 = one2 or two2 or three2\npicked = pickeda0 or pickedb0 or pickeda2 or pickedb2\n\npickable = player1 or pit1 or crate1 or number0 or wall1 or number2 or fell1 or ded1 or target0 or PlayerTarget1 or Target1\npickable2 = curse0a or pickable or wall0 or crate0 \n\nblackcorner = blackul or blackdl or blackur or blackdr\nrim0x = rim0l or rim0d or rim0u or rim0r\nrim1x = rim1l or rim1d or rim1u or rim1r \n=======\nSOUNDS\n=======\n\nSFX0 51304502\n\nsfx1 22108304\n\nSFX2 84700307\n\nSFX3 78571302\n\nSFX4 25131906\n\nSFX5 13408901\n\nSFX6 50704903\n\nSFX7 24622504\n\nSFX8 29744504\n\nSFX9 13344503\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\npink, chosepink\ncyan, chosecyan\n\n\nPit1,\npit1r\npit1l\npit1d\npit1u\npit0, pit0ghost\npit0r\npit0l\npit0d\npit0u\nblackul\nblackur\nblackdr\nblackdl\nTarget1, PlayerTarget1, target0\n\nfell1, ded1\nfelll1\nfellr1\nfelld1\nfellu1\n\ndead0a, fell0, fell0ghost\nrim0l \nrim0d \nrim0u \nrim0r\n\nrim1l \nrim1d \nrim1u \nrim1r \nPlayer1, Wall1, Crate1, \npit1mark\nfell1mark, ded1mark, target0mark\nTarget1mark, PlayerTarget1mark\nplayer1mark, crate1mark\nwall1mark\none0mark, two0mark, three0mark, wall0mark, inf0mark\none2mark, two2mark, three2mark\ncursor0mark, crate0mark\nnumber0, number2\ncratel1, walll1, \ncrater1, wallr1, \ncrated1, walld1, \ncrateu1, wallu1, \ncursor0, wall0, crate0, wall0ghost, crate0ghost\n walll0, cratel0\n wallr0, crater0\n walld0, crated0\n wallu0, crateu0\n crate01\n wall2, wall2ghost\n wallr2\n wallu2\n walll2\n walld2\n cursor2a, cursor2b\n \nfellcant1\nfellcant0\ncant0\ncant1\ncant2\nsupported\nactivefell\nactive, activeb\nactivecurse0\nholding\ndecrement\npickeda0, pickeda2\npickedb0, pickedb2\nplacemark\npartb partc\nshowthis\nshowhere\nblack\n\n======\nRULES\n======\n\n(Deal with action-----------------------------------------------------------------------------)\n\n[action activecurse0 curse0] -> [activecurse0 action curse0]\n\n(pick up ready icon)\ndown[action curse0a no holding pickable|number0] -> [curse0a holding pickable|number0 pickeda0] SFX9\ndown[action cursor0b no holding pickable|number0] -> [cursor0b holding pickable|number0 pickedb0] SFX9\ndown[action cursor2a no holding pickable2|number2] -> [cursor2a holding pickable2|number2 pickeda2] SFX9\ndown[action cursor2b no holding pickable2|number2] -> [cursor2b holding pickable2|number2 pickedb2] SFX9\n(switch to new ready icon)\ndown [action curse0a pickable| number0 no pickeda0][pickeda0] -> [curse0a pickable | number0 pickeda0][] SFX9\ndown [action cursor0b pickable| number0 no pickedb0][pickedb0] -> [cursor0b pickable | number0 pickedb0][] SFX9\ndown [action cursor2a pickable2| number2 no pickeda2][pickeda2] -> [cursor2a pickable2 | number2 pickeda2][] SFX9\ndown [action cursor2b pickable2| number2 no pickedb2][pickedb2] -> [cursor2b pickable2 | number2 pickedb2][] SFX9\n\n(put down ready icon)\ndown [action curse0 holding pickable| picked] -> [curse0 pickable|] SFX8\ndown [action cursor2a holding pickable2| pickeda2] -> [cursor2a pickable2|] SFX8\ndown [action cursor2b holding pickable2| pickedb2] -> [cursor2b pickable2|] SFX8\n\n(show mark)\nlate [xmark] -> []\nlate [showthis] -> []\nlate [showhere] -> []\n\nlate down [ | number0 pickeda0][curse0a] -> [showthis | number0 pickeda0][curse0a showhere]\nlate down [ | number0 pickedb0][cursor0b] -> [showthis | number0 pickedb0][cursor0b showhere]\nlate down [ | number2 pickeda2][cursor2a] -> [showthis | number2 pickeda2][cursor2a showhere]\nlate down [ | number2 pickedb2][cursor2b] -> [showthis | number2 pickedb2][cursor2b showhere]\nlate [showthis player1][showhere] -> [showthis player1][showhere player1mark]\nlate [showthis pit1][showhere] -> [showthis pit1][showhere pit1mark]\nlate [showthis crate1][showhere] -> [showthis crate1][showhere crate1mark]\nlate [showthis wall1][showhere] -> [showthis wall1][showhere wall1mark]\nlate [showthis one0][showhere] -> [showthis one0][showhere one0mark]\nlate [showthis two0][showhere] -> [showthis two0][showhere two0mark]\nlate [showthis three0][showhere] -> [showthis three0][showhere three0mark]\nlate [showthis one2][showhere] -> [showthis one2][showhere one2mark]\nlate [showthis two2][showhere] -> [showthis two2][showhere two2mark]\nlate [showthis three2][showhere] -> [showthis three2][showhere three2mark]\nlate [showthis wall0][showhere] -> [showthis wall0][showhere wall0mark]\nlate [showthis fell1][showhere] -> [showthis fell1][showhere fell1mark]\nlate [showthis ded1][showhere] -> [showthis ded1][showhere ded1mark]\nlate [showthis target0][showhere] -> [showthis target0][showhere target0mark]\nlate [showthis crate0][showhere] -> [showthis crate0][showhere crate0mark]\nlate [showthis cursor0][showhere] -> [showthis cursor0][showhere cursor0mark]\nlate [showthis inf0][showhere] -> [showthis inf0][showhere inf0mark]\nlate [showthis Target1][showhere] -> [showthis target1][showhere Target1mark]\nlate [showthis PlayerTarget1][showhere] -> [showthis PlayerTarget1][showhere PlayerTarget1mark]\n(connect cratemark)\nup [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crateu1 | crate1 crated1]\ndown [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crated1 | crate1 crateu1]\nleft [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark cratel1 | crate1 crater1]\nright [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crater1 | crate1 cratel1]\nup [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crateu1 | fell1 felld1]\ndown [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crated1 | fell1 fellu1]\nleft [action curse0 holding fell1mark no xx no number0 no number2| fell1] -> [action curse0 holding fell1mark cratel1 | fell1 fellr1]\nright [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crater1 | fell1 felll1]\n\n(place mark)\n[placemark] -> []\n\ndown [action curse0a holding xmark no x1 no number0][pickeda0 number0] -> [curse0a holding xmark placemark][pickeda0 decrement number0] SFX7\ndown [action cursor0b holding xmark no x1 no number0][pickedb0 number0] -> [cursor0b holding xmark placemark][pickedb0 decrement number0] SFX7\n\ndown [action cursor2a holding xmark no xx no number0 no number2][pickeda2 number2] -> [cursor2a holding xmark placemark][pickeda2 decrement number2] SFX7\ndown [action cursor2b holding xmark no xx no number0 no number2][pickedb2 number2] -> [cursor2b holding xmark placemark][pickedb2 decrement number2] SFX7\n\n\n\n[placemark player1mark] -> [placemark player1 player1mark]\n[placemark pit1mark] -> [placemark pit1 pit1mark]\n[placemark crate1mark] -> [placemark crate1 crate1mark]\n[placemark wall1mark] -> [placemark wall1 wall1mark]\n[placemark one0mark] -> [placemark one0 one0mark]\n[placemark two0mark] -> [placemark two0 two0mark]\n[placemark three0mark] -> [placemark three0 three0mark]\n[placemark one2mark] -> [placemark one2 one2mark]\n[placemark two2mark] -> [placemark two2 two2mark]\n[placemark three2mark] -> [placemark three2 three2mark]\n[placemark wall0mark] -> [placemark wall0 wall0mark]\n[placemark fell1mark] -> [placemark fell1 fell1mark]\n[placemark ded1mark] -> [placemark ded1 ded1mark]\n[placemark target0mark] -> [placemark target0 target0mark]\n[placemark crate0mark] -> [placemark crate0 crate0mark]\n[placemark Target1mark] -> [placemark target1 Target1mark]\n[placemark inf0mark] -> [placemark inf0 inf0mark]\n[placemark PlayerTarget1mark] -> [placemark playertarget1 PlayerTarget1mark]\ndown [placemark cursor0mark][curse0a|no one2] -> [ cursor0b cursor0mark][curse0a|]\n[placemark cursor0mark] -> [placemark cursor0a cursor0mark]\n\n(decrement number of placed item)\ndown [xmark holding cursor2a][pickable2|one2 decrement pickeda2] -> [xmark holding cursor2a][|one2 decrement pickeda2]\ndown [xmark holding cursor2b][pickable2|one2 decrement pickedb2] -> [xmark holding cursor2b][|one2 decrement pickedb2]\ndown [xmark holding curse0a][pickable|one0 decrement pickeda0] -> [xmark holding curse0a][|one0 decrement pickeda0]\ndown [xmark holding cursor0b][pickable|one0 decrement pickedb0] -> [xmark holding cursor0b][|one0 decrement pickedb0]\ndown [xmark holding cursor2a][|one2 decrement pickeda2] -> [cursor2a][|]\ndown [xmark holding cursor2b][|one2 decrement pickedb2] -> [cursor2b][|]\ndown [xmark holding cursor0a][|one0 decrement pickeda0] -> [cursor0a][|]\ndown [xmark holding cursor0b][|one0 decrement pickedb0] -> [cursor0b][|]\n[one0 decrement] -> []\n[two0 decrement] -> [one0]\n[three0 decrement] -> [two0]\n[four0 decrement] -> [three0]\n[five0 decrement] -> [four0]\n[six0 decrement] -> [five0]\n[seven0 decrement] -> [six0]\n[one2 decrement] -> []\n[two2 decrement] -> [one2]\n[three2 decrement] -> [two2]\n\n\n\n(player -> cursor)\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [player1 action active no wall0ghost no crate0ghost][partbc] -> [cursor0a player1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [ded1 action activefell no wall0ghost no crate0ghost][partbc] -> [cursor0a ded1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\n\n(cursor holding -> player)\ndown [action curse0a activecurse0 player1 holding xmark][| number0 pickeda0] -> [active player1][ | number0] SFX6\ndown [action curse0a activecurse0 ded1 holding xmark][| number0 pickeda0] -> [activefell ded1][ | number0] SFX6\ndown [action cursor0b activecurse0 player1 holding xmark][| number0 pickedb0] -> [active player1][ | number0] SFX6\ndown [action cursor0b activecurse0 ded1 holding xmark][| number0 pickedb0] -> [activefell ded1][ | number0] SFX6\n(empty cursor -> player)\n[action curse0 player1 activecurse0 no holding] -> [active player1] SFX6\n[action curse0 ded1 activecurse0 no holding] -> [activefell ded1] SFX6\n(red -> blue)\n[action cursor0a activecurse0 holding xmark][partc][pickeda0] -> [cursor0a cursor2a][partc][] SFX5\n[action cursor0a activecurse0 ][partc] -> [cursor0a cursor2a][partc] SFX5\n[action cursor0b activecurse0 holding xmark][partc][pickedb0] -> [cursor0b cursor2b][partc][] SFX5\n[action cursor0b activecurse0 ][partc] -> [cursor0b cursor2b][partc] SFX5\n(blue holding -> red)\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\nrandom down [action curse2 curse0 holding xmark][| number2 pickeda2] -> [activecurse0 cursor0a][ | number2] SFX6\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\n(empty blue -> red)\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\nrandom [action curse2 curse0 no holding] -> [activecurse0 cursor0a] SFX6\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\n\n\n[action player] -> SFX0\n[action curse0] -> SFX0\n\n(Aesthetic----------------------------------------------------------------------------------------)\n\n\n\n(ghosts)\n[player1 active][pit0] -> [player1 active][pit0ghost]\n[pit0ghost][cursor0] -> [pit0][cursor0]\n[player1 active][wall0] -> [player1 active][wall0ghost]\n[wall0ghost][cursor0] -> [wall0][cursor0]\n[player1 active][crate0] -> [player1 active][crate0ghost]\n[crate0ghost][cursor0] -> [crate0][cursor0]\n[player1 active][fell0] -> [player1 active][fell0ghost]\n[fell0ghost][cursor0] -> [fell0][cursor0]\n[curse0 activecurse0][wall2] -> [curse0 activecurse0][wall2ghost]\n[wall2ghost][curse2] -> [wall2][curse2]\n\n\n(wall boundaries)\n[wallx2] -> []\n[wallx1] -> []\n[wallx0] -> []\nup [wall2 | no wall2] -> [wall2 wallu2 | ]\ndown [wall2 | no wall2] -> [wall2 walld2 | ]\nleft [wall2 | no wall2] -> [wall2 walll2 | ]\nright [wall2 | no wall2] -> [wall2 wallr2 | ]\nup [wall1 | no wall1] -> [wall1 wallu1 | ]\ndown [wall1 | no wall1] -> [wall1 walld1 | ]\nleft [wall1 | no wall1] -> [wall1 walll1 | ]\nright [wall1 | no wall1] -> [wall1 wallr1 | ]\nup [wall0 | no wall0] -> [wall0 wallu0 | ]\ndown [wall0 | no wall0] -> [wall0 walld0 | ]\nleft [wall0 | no wall0] -> [wall0 walll0 | ]\nright [wall0 | no wall0] -> [wall0 wallr0 | ]\n\n(crate connectors)\nup [crateu0|] -> [crateu0 | crated0]\nright [crater0|] -> [crater0 | cratel0]\nup [crateu1|] -> [crateu1 | crated1]\nright [crater1|] -> [crater1 | cratel1]\n(pit connectors)\n[blackcorner] -> []\n[pit0x] -> [] \n[pit1x] -> [] \nup [pit1 | pit1] -> [pit1u pit1|pit1d pit1]\nright [pit1 | pit1] -> [pit1r pit1|pit1l pit1]\nup [pit0 | pit0] -> [pit0u pit0|pit0d pit0]\nright [pit0 | pit0] -> [pit0r pit0|pit0l pit0]\n[pit1u pit1r] -> [pit1u pit1r blackur]\n[pit1u pit1l] -> [pit1u pit1l blackul]\n[pit1d pit1r] -> [pit1d pit1r blackdr]\n[pit1d pit1l] -> [pit1d pit1l blackdl]\n[pit0u pit0r] -> [pit0u pit0r blackur]\n[pit0u pit0l] -> [pit0u pit0l blackul]\n[pit0d pit0r] -> [pit0d pit0r blackdr]\n[pit0d pit0l] -> [pit0d pit0l blackdl]\n[rim1x] -> []\n[rim0x] -> []\nup[pit0|no pit0] -> [pit0 rim0u|]\ndown[pit0|no pit0] -> [pit0 rim0d|]\nleft[pit0|no pit0] -> [pit0 rim0l|]\nright[pit0|no pit0] -> [pit0 rim0r|]\nup[pit1|no pit1] -> [pit1 rim1u|]\ndown[pit1|no pit1] -> [pit1 rim1d|]\nleft[pit1|no pit1] -> [pit1 rim1l|]\nright[pit1|no pit1] -> [pit1 rim1r|]\nlate [pink] -> []\nlate [cyan] -> []\nlate [chosepink] -> []\nlate [chosecyan] -> []\nlate down [pickable |number0] -> [pickable pink | number0 pink]\nlate down [pickable2 |number2] -> [pickable2 cyan | number2 cyan]\nlate up [pink picked|pink] -> [chosepink picked|chosepink ]\nlate up [cyan picked|cyan ] -> [chosecyan picked|chosecyan ]\n\n(Movement----------------------------------------------------------------------------------------)\n\n(move attached items)\n[moving activecurse0 curse0] -> [moving activecurse0 moving curse0]\n[moving active player1] -> [moving active moving player1]\n[moving activefell ded1] -> [moving activefell moving ded1]\n[moving curse0 holding] -> [moving curse0 moving holding]\n[moving curse2 holding] -> [moving curse2 moving holding]\n\n(reset and propogate cant)\n[cant0] -> []\n[cant1] -> []\n[cant2] -> []\n[fellcant0] -> []\n[fellcant1] -> []\n\n[black no cant0 no cant1 no cant2] -> [black cant0 cant1 cant2]\n[wall2 no cant2] -> [wall2 cant2]\n[wall1 no cant1] -> [wall1 cant1]\n[wall0 no cant0] -> [wall0 cant0]\n[number0] -> [number0 cant1]\n[number2] -> [number2 cant1]\n[no pit1 no fellcant1] -> [fellcant1]\n[no pit0 no fellcant0] -> [fellcant0]\n\n[> ded1][fell1|fellcant1] -> [> ded1][fell1 fellcant1 | fellcant1]\n+ [> ded1][ded1|fellcant1] -> [> ded1][ded1 fellcant1 | fellcant1]\n+ up[fellu1|fellcant1] -> [fellu1 fellcant1 | fellcant1]\n+ left[felll1|fellcant1] -> [felll1 fellcant1 | fellcant1]\n+ down[felld1|fellcant1] -> [felld1 fellcant1 | fellcant1]\n+ right[fellr1|fellcant1] -> [fellr1 fellcant1 | fellcant1]\n\n+ [> player1][crate1|cant1] -> [> player1][crate1 cant1 | cant1]\n+ [> player1][player1|cant1] -> [> player1][player1 cant1 | cant1]\n+ up[crateu1|cant1] -> [crateu1 cant1 | cant1]\n+ left[cratel1|cant1] -> [cratel1 cant1 | cant1]\n+ down[crated1|cant1] -> [crated1 cant1 | cant1]\n+ right[crater1|cant1] -> [crater1 cant1 | cant1]\n+ [crate1 crate0 cant0] -> [crate1 crate0 cant0 cant1]\n+ [crate1 crate0 cant1] -> [crate1 crate0 cant0 cant1]\n+ [> dead0][dead0|fellcant0] -> [> dead0][dead0 fellcant0 | fellcant0]\n+ [> cursor0][cursor0|cant0] -> [> cursor0][cursor0 cant0 | cant0]\n+ [> cursor0][crate0 | number0] -> [> cursor0][crate0 cant0| number0]\n+ [> cursor0][crate0|cant0] -> [> cursor0][crate0 cant0 | cant0]\n+ up[crateu0|cant0] -> [crateu0 cant0 | cant0]\n+ left[cratel0|cant0] -> [cratel0 cant0 | cant0]\n+ down[crated0|cant0] -> [crated0 cant0 | cant0]\n+ right[crater0|cant0] -> [crater0 cant0 | cant0]\n\n[> curse2 | wall2] -> [stationary curse2 | wall2]\n[> curse2 | black] -> [stationary curse2 | black]\n[cursor0 cant0] -> [stationary cursor0 cant0]\n[player1 cant1] -> [stationary player1 cant1]\n[ded1 fellcant1] -> [stationary ded1 fellcant1]\n[dead0 fellcant0] -> [stationary dead0 fellcant0]\n\n\n(propagate movement)\n\n[ > Ded1 | Fell1 no fellcant1] -> [ > Ded1 | > Fell1 ]\n\n[ > Cursor0 | Crate0 ] -> [ > Cursor0 | > Crate0 ]\n+ [ > Cursor0 | Cursor0 ] -> [ > Cursor0 | > Cursor0 ]\n+ [ > Crate0 | Crate0 ] -> [ > Crate0 | > Crate0 ]\n\n+ [ > Player1 | Crate1 ] -> [ > Player1 | > Crate1 ]\n+ [ > Player1 | Player1] -> [ > Player1 | > Player1 ]\n+ [ > Crate1 | Player1 ] -> [ > Crate1 | > Player1 ]\n+ [> crate1|crate1] -> [> crate1 | > crate1]\n+ up[moving crate1 crateu1|crate1] -> [moving crate1 crateu1 | moving crate1]\n+ left[moving crate1 cratel1|crate1] -> [moving crate1 cratel1 | moving crate1]\n+ down[moving crate1 crated1|crate1] -> [moving crate1 crated1 | moving crate1]\n+ right[moving crate1 crater1|crate1] -> [moving crate1 crater1 | moving crate1]\n \n\n[> fell1|fell1] -> [> fell1 | > fell1]\n+ up[moving fell1 fellu1|fell1] -> [moving fell1 fellu1 | moving fell1]\n+ left[moving fell1 felll1|fell1] -> [moving fell1 felll1 | moving fell1]\n+ down[moving fell1 felld1|fell1] -> [moving fell1 felld1 | moving fell1]\n+ right[moving fell1 fellr1|fell1] -> [moving fell1 fellr1 | moving fell1]\n\n[moving crate1 cratex1] -> [moving crate1 moving cratex1]\n[moving fell1 fellx1] -> [moving fell1 moving fellx1]\n[moving crate1 crate0ghost] -> [moving crate1 moving crate0ghost]\n\n[active stationary player1] -> [stationary active stationary player1]\n[activecurse0 stationary curse0] -> [stationary activecurse0 stationary curse0]\n[activefell stationary ded1] -> [stationary activefell stationary ded1]\n[stationary cursor0 activecurse0 holding] -> [stationary cursor0 activecurse0 stationary holding]\n[stationary curse2 holding] -> [stationary curse2 stationary holding]\n\n\n(falling)\nlate [supported] -> []\n\nlate [crate1 ded1] -> [crate1 supported ded1]\nlate [crate1 no pit1] -> [crate1 supported]\nlate [crate1 fell1] -> [crate1 fell1 supported]\n\n\nlate up[crateu1|supported] -> [crateu1 supported | supported]\n+ late left[cratel1|supported] -> [cratel1 supported | supported]\n+ late down[crated1|supported] -> [crated1 supported | supported]\n+ late right[crater1|supported] -> [crater1 supported | supported]\n\n\nlate [cursor0 pit0 no fell0] -> [pit0 dead0a]SFX3\nlate [player1 active pit1 no fell1 no ded1] -> [pit1 ded1 activefell]SFX3\nlate [player1 pit1 no fell1 no ded1] -> [pit1 ded1 ]SFX3\nlate [crate0 pit0 no supported] -> [pit0 fell0]SFX3\nlate [crate1 pit1 no supported] -> [pit1 fell1] SFX3\n\n\n\nlate [crateu1 no crate1 fell1] -> [fellu1 fell1]\nlate [cratel1 no crate1 fell1] -> [felll1 fell1]\nlate [crater1 no crate1 fell1] -> [fellr1 fell1]\nlate [crated1 no crate1 fell1] -> [felld1 fell1]\n\nlate [crateu1 no crate1] -> []\nlate [cratel1 no crate1] -> []\nlate [crater1 no crate1] -> []\nlate [crated1 no crate1] -> []\nlate up [crateu1 |no crate1] -> [|]\nlate left [cratel1 |no crate1] -> [|]\nlate right [crater1 |no crate1] -> [|]\nlate down [crated1 |no crate1] -> [|]\nlate [player1 ded1] -> [player1 ded1] SFX0\nlate [player1 ded1] -> cancel \n\n[moving crate0] -> SFX2\n[moving crate1] -> SFX2\n\n==============\nWINCONDITIONS\n==============\n\n\nAll target0 on crate0\nAll Target1 on Crateorfell1\nAll PlayerTarget1 on Playerormark1\nno Cursor0 on target1\nno cursor0 on PlayerTarget1\n\n=======\nLEVELS\n=======\n\nmessage Book 1: BASE\n\nmessage Page 1.1: GOAL\n\n#######\n#`````#\n#`p`t`#\n#`````#\n#`o`q`#\n#`````#\n#######\n\nmessage Page 1.2: TOOL\n\n#######\n#`t`o`#\n#t`-:`#\n#``tlo#\n#p````#\n#######\n\nmessage Page 1.3: HOLE\n\n########\n##``0`##\n#```0``#\n#``o0`t#\n#po:0``#\n#``:0`t#\n#```0``#\n##``0`##\n########\n\nmessage Page 1.4: FALL\n\n########\n#00u``0#\n#00po`0#\n#`000`0#\n#`00```#\n#`000``#\n#`000``#\n########\n\nmessage Book 2: EDIT\n\nmessage Page 2.1: MINI\n\n||||||||||\n|```````'|\n|`######`|\n|`#````#`|\n|`#``t`#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 2.2: FORM\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 2.3: PLUG\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#ro`o`#`|\n|`#####`#`|\n|`###`o`#`|\n|`#``oLo#`|\n|`#````##`|\n|`#`q####`|\n|`#######`|\n|`````````|\n|``c`0````|\n|````8````|\n|`````````|\n|||||||||||\n\nmessage Page 2.4: TRAP\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#``````#`|\n|`#``t```#`|\n|`#`tqt``#`|\n|`#``t```#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````16````|\n|``````````|\n||||||||||||\n\nmessage Book 3: DUAL\n\nmessage Page 3.1: CO-OP\n\n#######\n####qq#\n#po000#\n#`o000#\n###o``#\n###r`'#\n#######\n\nmessage Page 3.2: REST\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#`r00q#`|\n|`#######`|\n|`````````|\n|``c`o````|\n|````2````|\n|`````````|\n|||||||||||\nmessage Page 3.3: SAIL\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#0000q#`|\n|`#00000#`|\n|`#00000#`|\n|`#```00#`|\n|`#```00#`|\n|`#######`|\n|`````````|\n|``c`ro```|\n|````23```|\n|`````````|\n|||||||||||\n\nmessage Page 3.4: TWIN\n\n|||||||||||||||||||||\n|`````````+````````'|\n|`#######`+`#######`|\n|`#`````#`+`#`````#`|\n|`#```q`#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`q```#`|\n|`#`````#`+`#`````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````6````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Book 4: WHAT\n\nmessage Page 4.1: GUIS\n\n\n#######\n#q#``'#\n#``8#`#\n#`#p#`#\n#`#o#`#\n#`#1``#\n#######\n\nmessage Page 4.2: IDEA\n\n||||||||||\n|```````'|\n|`######`|\n|`#```t#`|\n|`#```t#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```31```|\n|````````|\n||||||||||\n\nmessage Page 4.3: FILL\n\n\n######\n#0poq#\n#0`70#\n#'000#\n#0000#\n######\n\nmessage Page 4.4: A LOT\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|``````'|\n|`c3o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Book 5: UHHH\n\nmessage Page 5.1: WALL\n\n||||||||||\n|```````'|\n|`######`|\n|`#t`#`#`|\n|`#````#`|\n|`##`o`#`|\n|x+xxxx+x|\n|`#````#`|\n|`#````#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 5.2: SAFE\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#xxxxx#`|\n|`#x```x#`|\n|`#x`t`x#`|\n|`#x```x#`|\n|`#xxxxx#`|\n|`#######`|\n|`````````|\n|`c`o1r```|\n|```111```|\n|`````````|\n|||||||||||\n\nmessage Page 5.3: LOCK\n\n|||||||||||||\n|o```'`xxxcx|\n|1``x```qx!x|\n|`1!````qx`x|\n|``1?x`xxx?x|\n|r``1````!`x|\n|````2`xxxxx|\n|||||||||||||\n\n\n\nmessage Page 5.4: POST\n\n+++++++++\n+p#```#q+\n+`#``'#3+\n+`#`1`#`+\n+`#`2`#`+\n+`#```#`+\n+`#```#`+\n+++++++++\nmessage Book 6: BLUE\n\nmessage Page 6.1: META\n\n||||||||||||\n|++++++++++|\n|+````\"```+|\n|+`######`+|\n|+`#````#`+|\n|+`#``t`#`+|\n|+`#````#`+|\n|+`######`+|\n|+````````+|\n|+```ro```+|\n|+````````+|\n|+````````+|\n|++++++++++|\n|``````````|\n|``~`1b````|\n|````{[````|\n|``````````|\n||||||||||||\n\nmessage Page 6.2: WILD\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`#######`+|\n|+`#0000q#`+|\n|+`#00000#`+|\n|+`#`0000#`+|\n|+`#`0000#`+|\n|+`#```00#`+|\n|+`#######`+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\nmessage Page 6.3: UH OH\n\n|||||||||||\n|+++++++++|\n|+``````\"+|\n|+`+++++`+|\n|+`+```+`+|\n|+`+`t`+`+|\n|+`+```+`+|\n|+`+```+`+|\n|+`+++++`+|\n|+```````+|\n|+```o```+|\n|+```````+|\n|+```````+|\n|+++++++++|\n|`````````|\n|`````````|\n|`~`1br```|\n|```][[```|\n|`````````|\n|||||||||||\n\nmessage Page 6.4: VARY\n\n|||||||||||||||||||||||\n|++++++++++&++++++++++|\n|+``````\"`x&x````````+|\n|+`######`x&x`######`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`#`qt`#`x&x`#`tq`#`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`######`x&x`######`+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|++++++++++&++++++++++|\n|``````````&``````````|\n|`~`r1ob```&`_`r1ob```|\n|```[{[[```&```[[[[```|\n|``````````&``````````|\n|||||||||||||||||||||||\n\nmessage Book 7: ?!?!\n\nmessage Page 7.1: EACH\n\n+++++++\n+````'+\n+`###`+\n+`#q#`+\n+`#0#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`###`+\n+`````+\n+``c``+\n+`r0o`+\n+``4``+\n+`````+\n+++++++\n\nmessage Page 7.2: HOLD\n\n&&&&&&&&&\n&`8```+`&\n&`{po`+`&\n&`\"```+t&\n&&&&&&&&&\n\nmessage Page 7.3: TRIP\n\n&&&&&&&\n&```\"`&\n&`o`!`&\n&`````&\n&+++++&\n&`r2b`&\n&`[[{~&\n&y```t&\n&&&&&&&\n\nmessage Page 7.4: PLAN\n\n\n|||||||||\n|```t```|\n|```````|\n|+++++++|\n|```````|\n|```````|\n|>>>>>>>|\n|```````|\n|```````|\n|+++++++|\n|```~```|\n|[[`2\"11|\n|[[`[`[[|\n|&&`&&&&|\n|&&bor&&|\n|||||||||\n\n\n\n\n\nmessage Book 8: (RE)STAR(TS)\n\n\nmessage Page 8.1: (IN)FORM(ED)\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 8.2: (EN)TWIN(ED)\n\n|||||||||||||||||||||\n|`````````+`````````|\n|`#######`+`#######`|\n|`#````q#`+`#`````#`|\n|`#`````#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`````#`|\n|`#`````#`+`#q````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````5````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Page 8.3: (ZE)ALOT(RY)\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|```````|\n|`c2o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Page 8.4: (BE)WILD(ER)\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`+++++++`+|\n|+`+0000q+`+|\n|+`+00000+`+|\n|+`+00000+`+|\n|+`+`0000+`+|\n|+`+```00+`+|\n|+`+++++++`+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",[0,3,3,3,2,2,4,1,0,3,4,0,0,0,0,4,3,3,2,2,2,2,1,4,0,0,0,3,0,4,2,2,2,2,3,3,4,1,4,0,0,0,0,0,4,1,2,2,2,2,2,4,0,0,0,3,0,4,4,4,1,4,2,1,0,3,3,4,2,1,0,4,1,0,0,3,3,3,2,1,1,1,3,4,2,2,1,1,1,0,3,4,3,3,2,2,2,1,2,1,4,0,0,0,3,3,0,0,0,4,3,2,2,1,0,4,1,2,1,4,3,3,0,4,2,3,0,4,2],"background black cant0 cant1 cant2 fellcant0 fellcant1:0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,background cant0 cant1 fellcant0 fellcant1 wall0 wall1 walll0 walll1 wallu0 wallu1:1,background cant0 cant1 fellcant0 fellcant1 wall0 wall1 walll0 walll1 wallr0 wallr1:2,2,2,2,\n2,2,2,2,2,2,2,2,background cant0 cant1 fellcant0 fellcant1 wall0 wall1 walld0 walld1 walll0 walll1:3,background fellcant0 fellcant1:4,4,4,4,\n0,0,background cant0 cant1 fellcant0 fellcant1 wall0 wall1 walld0 walld1 wallu0 wallu1:5,4,4,4,4,4,4,4,4,4,4,\n4,4,5,4,4,4,4,0,0,5,4,background cant1 fellcant0 fellcant1 wall1 walll1 wallu1:6,background cant1 fellcant0 fellcant1 wall1 walll1 wallr1:7,\n7,7,7,7,background cant1 fellcant0 fellcant1 wall1 walld1 walll1:8,4,4,4,4,5,4,4,4,\n4,0,0,5,4,background cant1 fellcant0 fellcant1 wall1 walld1 wallu1:9,background blackdr fellcant0 pit1 pit1d pit1r rim1l rim1u:10,background blackur fellcant0 pit1 pit1r pit1u rim1d rim1l:11,4,4,4,9,4,\n4,4,4,5,4,background cant1 cyan fellcant0 fellcant1 one0:12,background cant1 cyan fellcant0 fellcant1 one2:13,4,0,0,5,4,9,\nbackground blackdl blackdr fellcant0 pit1 pit1d pit1l pit1r rim1u:14,background blackdl blackdr blackul blackur fellcant0 pit1 pit1d pit1l pit1r pit1u:15,background blackdr blackur fellcant0 pit1 pit1d pit1r pit1u rim1l:16,11,4,9,4,background crate1 fellcant0 fellcant1 pink supported:17,background cant1 fellcant0 fellcant1 pink two0:18,4,5,4,4,\n4,4,0,0,5,4,9,14,15,15,background blackul blackur fellcant0 pit1 pit1l pit1r pit1u rim1d:19,4,9,\n4,4,4,4,5,4,4,4,4,0,0,5,4,\n9,background blackdl fellcant0 pit1 pit1d pit1l rim1r rim1u:20,15,15,15,11,background cant1 fellcant0 fellcant1 pink wall1 walld1 wallu1:21,18,4,4,4,5,4,\n4,4,4,0,0,5,background fellcant0 fellcant1 partc:22,9,background fellcant0 fellcant1 playertarget1:23,20,background blackdl blackul fellcant0 pit1 pit1d pit1l pit1u rim1r:24,24,background blackul fellcant0 pit1 pit1l pit1u rim1d rim1r:25,\n9,4,background fellcant0 fellcant1 player1:26,activecurse0 background cursor0a fellcant0 fellcant1:27,4,5,4,4,4,4,0,0,5,\n4,background cant1 fellcant0 fellcant1 wall1 wallr1 wallu1:28,7,7,7,7,7,background cant1 fellcant0 fellcant1 wall1 walld1 wallr1:29,4,4,4,4,5,\n4,4,4,4,0,0,5,4,4,4,4,4,4,\n4,4,4,4,4,4,5,4,4,4,4,0,0,\nbackground cant0 cant1 fellcant0 fellcant1 wall0 wall1 wallr0 wallr1 wallu0 wallu1:30,2,2,2,2,2,2,2,2,2,2,2,2,\nbackground cant0 cant1 fellcant0 fellcant1 wall0 wall1 walld0 walld1 wallr0 wallr1:31,4,4,4,4,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n",49,"1642083700844.0618"] - ], - [ - "Undo and Real-time #796", - ["title Undo and Real-time\nrealtime_interval 0.25\n\n========\nOBJECTS\n========\n\nBackground .\nBlack\n\nPlayer @\nBlue\n\nThing *\nYellow\n\n=======\nLEGEND\n=======\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nThing\nPlayer\n\n======\nRULES \n====== \n\n[ Thing ] -> [ right Thing ] \n\n==============\nWINCONDITIONS\n============== \n\n======= \nLEVELS\n=======\n\nmessage Walk around a bit, then undo several times (usually, three is enough).\n\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.............@.......................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n\n\n\n\n\n",["tick",4,4,4,1,1,"tick",1,"tick","tick","tick","tick","undo","undo","tick","tick","tick","undo"],"background: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,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,background thing:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,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,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,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,background player: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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,\n",1,"1642738088805.1099"] - ], - [ - "Cucumber Surprise", - ["title Cucumber Surprise\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #595652\ntext_color white\n\nagain_interval 0.01\n\n(thanks to bvoq for Puzzlescript+MIS https://dekeyser.ch/puzzlescriptmis/ also testing. also thanks to ggn and meepmeep13 for testing)\n\n========\nOBJECTS\n========\n\nBackground\n#595652 #696a6a\n00000\n00000\n00100\n00000\n00000\n\n\n\nziel\n#595652 #eec39a #d9a066 #e1b489\n.111.\n23331\n23331\n23331\n.222.\n\n\nwand\n#696a6a #847e87\n00010\n11111\n01000\n11111\n00010\n\n\nplayer\n#595652 #ac3232 #8a6f30 #5b6ee1\n.111.\n.222.\n.222.\n13331\n.1.1.\n\n\nkatze\n#000000 \n0..00\n.0.00\n.000.\n.0.0.\n.0.0.\n\ngurke\ntransparent #99e550 #6abe30\n00100\n02110\n02110\n02110\n00200\n\npush_up\ntransparent\n\npush_down\ntransparent\n\npush_left\ntransparent\n\npush_right\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\ng = gurke\np = player\n* = katze\n# = wand\n@ = katze and ziel\nO = ziel\nm = gurke and ziel\n\nobstacle = player or katze or wand or gurke\npush = push_up or push_down or push_left or push_right\n\n=======\nSOUNDS\n=======\n\nsfx0 23445905 (katzenschreck)\nstartgame 90870106\nstartlevel 90870106\nendlevel 78627300\ngurke move 70216507\nkatze move 45785907\n================\nCOLLISIONLAYERS\n================\n\nBackground\nziel\nPlayer, katze, gurke, wand\npush\n======\nRULES\n======\n\n[moving player] [ push ] -> [ moving player ] [ ]\n\nup [ push_up stationary katze | no obstacle ] -> [ | push_up action katze ] again\n+ down [ push_down stationary katze | no obstacle ] -> [ | push_down action katze ] again\n+ left [ push_left stationary katze | no obstacle ] -> [ | push_left action katze ] again\n+ right [ push_right stationary katze | no obstacle ] -> [ | push_right action katze ] again\n\n\n[ > Player | gurke | no obstacle ] -> [ > Player | > gurke | no obstacle ] again\n\n\n[ < player | katze ] -> [ < player | < katze ] again\n\nlate up [ gurke | katze | no obstacle] -> [ gurke | push_up katze | no obstacle] sfx0\nlate down [ gurke | katze | no obstacle] -> [ gurke | push_down katze | no obstacle] sfx0\nlate left [ gurke | katze | no obstacle] -> [ gurke | push_left katze | no obstacle] sfx0\nlate right [ gurke | katze | no obstacle] -> [ gurke | push_right katze | no obstacle] sfx0\n\nlate up [ gurke | katze ] -> [ gurke | push_up katze ]\nlate down [ gurke | katze ] -> [ gurke | push_down katze ]\nlate left [ gurke | katze ] -> [ gurke | push_left katze ]\nlate right [ gurke | katze ] -> [ gurke | push_right katze ]\n\n==============\nWINCONDITIONS\n==============\n\nall katze on ziel\n\n=======\nLEVELS\n=======\n\n(wanna hand make the first few levels)\n\n\nmessage Put your doting cats to bed.\nmessage Level 1/20 \n.....#####\n######...#\n#...o..#.#\n#.p..*o*.#\n##########\n\n\nmessage Who left that cucumber there?\nmessage Level 2/20 \n##########\n#........#\n#........#\n#.g.p.*.o#\n#........#\n#........#\n##########\n\nmessage Level 3/20\n(The only thing cats love more than you is hating cucumbers)\n(not so hard, could be an ok level 2)\n######\n#...o#\n#.#..#\n#*.g.#\n#..p.#\n#....#\n######\n\nmessage Level 4/20\n(almost trivial)\n#######\n#.o...#\n#..g..#\n#.o..p#\n#...*.#\n#.....#\n#..*..#\n#######\n\n\nmessage Level 5/20\n(easy enough - could be level 2?)\n.#######\n.#...*.#\n.#..*..#\n##.p.o.#\n#.g....#\n#o.....#\n########\n\n\n\nmessage Level 6/20\n(reasonable. could be level 2)\n..####...\n###..####\n#....p..#\n#.#.*#m.#\n#....#..#\n#########\n\n\nmessage Level 7/20\n(ok early level 1-2)\n######\n#o...#\n#.m.*#\n#....#\n#.*p.#\n######\n\n\n\nmessage Level 8/20\n(nice level. could be #2 or 3)\n..####.\n###o.##\n#..g..#\n#.#..##\n#*..p#.\n######.\n\n\nmessage Level 9/20\n(nice level. could be level 3/4)\n########\n#...*o.#\n#.*....#\n#..p.g.#\n#####.o#\n....####\n\n\n\n\nmessage Level 10/20\n(haven't solved this yet - tricky / hard to find the solution? but once I tried and concentrated I was able to ?)\n######\n#o..p#\n#.#..#\n#o.g.#\n#*...#\n#..*.#\n######\n\n\nmessage Level 11/20\n(ok late intermediate)\n######\n#po.o#\n#.#g.#\n#*...#\n#....#\n#.*..#\n######\n\n\n\nmessage Level 12/20\n( ok level, but not an ok first level )\n####..\n#*o#..\n#..###\n#.g.p#\n#....#\n#..###\n####..\n\n\nmessage Level 13/20\n(two gurkins! not hard! pleasing!)\n#######\n#...g.#\n#..#..#\n#....g#\n#.*#..#\n##....#\n#o..p.#\n#######\n\n\nmessage Level 14/20\n(ok latish intermediate!)\n#####.\n#o..##\n#....#\n##pg.#\n.##..#\n..##*#\n...###\n\n\nmessage Level 15/20\n(ok late intermediate level)\n#######\n#.o...#\n#..g..#\n#.#...#\n#.o.#.#\n#....*#\n#p.#.*#\n#######\n\n\n\n\n\nmessage Level 16/20\n(bit trial+errory. not high-concept)\n#######\n#.#p..#\n#.**..#\n#.#...#\n#...g##\n#....o#\n#o.#..#\n#######\n\n\nmessage Level 17/20\n(a bit tricky - the solution was not hard but finding it was a bit indirected / trial+errory)\n#######\n##o...#\n#.o#.*#\n#.....#\n#.##..#\n#..g..#\n#.*.p.#\n#######\n\n\n\nmessage Level 18/20\n(unsolved. wtf.)\n..######\n..#....#\n..#..g.#\n####.###\n#..o.##.\n#.#.p.#.\n#...#.#.\n###*..#.\n..#####.\n\n\n\n\nmessage Level 19/20\n(ok hardish level)\n....#########...\n#####..o.o..####\n#.g...#.#.#....#\n#...*...p...*..#\n################\n\n\nmessage Level 20/20\n(intermediate. pleasing)\n......#####\n......#...#\n......#.#.#\n#######g#.#\n#....p..o.#\n#o#*#.#.###\n#......*#..\n#########..\n\nmessage Congratulations. All the cats are in bed, having cucumbers nightmares.\n\n(\n( super hard. do not include)\n......#####\n......#...#\n......#.#.#\n#######.#.#\n#....**...#\n#.#m#.#.###\n#.....po#..\n#########..\n)\n",[1,3,3,0,1,0,2,2,3,0,1,0,0,0,2,3,0,1,2,2,2,1,1,0,3,3,2,3,0,1,0,0,0,0],"background wand:0,0,0,0,0,0,0,\n0,0,0,background:1,1,1,1,\n1,0,0,background ziel:2,2,1,0,\n1,1,0,0,1,0,1,\n0,1,1,0,0,background player:3,1,\n1,1,1,1,0,0,1,\nbackground katze:4,background katze push_up:5,background gurke:6,1,1,0,0,\n0,0,0,0,0,0,0,\n",35,"1645544413590.2168"] - ], - [ - "Chevron Lodger", - ["title Chevron Lodger\nauthor increpare\nhomepage www.increpare.com\n\n(verbose_logging)\n\ncolor_palette ega\n\nbackground_color #d3beaa\ntext_color #683d15\n(thanks to youAtExample for feedback)\n\n========\nOBJECTS\n========\n\nBackground\n#d3beaa #d3beaa\n00000\n00000\n00100\n00000\n00000\n\n\n\n\nWall\n#7b4b1d #7b4b1d\n00000\n00000\n00100\n00000\n00000\n\n\n\nPlayer_top 1\n#ee8b16\n..0..\n..0..\n.000.\n.000.\n00000\n\n\nplayer_middle 2\n#ee8b16\n\n\nplayer_bottom 3\n#ee8b16\n00000\n00.00\n00.00\n0...0\n0...0\n\n\n\nCrate_top\n#926c3f\n..0..\n..0..\n.000.\n.000.\n00000\n\n\n\ncrate_middle \n#926c3f\n\n\ncrate_bottom\n#926c3f\n00000\n00.00\n00.00\n0...0\n0...0\n\n\n\n\n\n=======\nLEGEND\n=======\n\nplayer = Player_top or player_middle or player_bottom\ncrate = Crate_top or crate_bottom or crate_middle\n\n. = Background\n# = Wall\n\na = crate_top\nb = crate_middle\nc = crate_bottom\n\nplayer_or_crate = player or crate\n\nobstacle = wall or player or crate\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx0 48406107 (snap)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n(level generation QOL things. can comment out later)\ndown [ playeR_top | no player] -> [ Player_top | player_bottom ]\ndown [ Crate_top | no player ] -> [ Crate_top | crate_bottom ]\n\n\ndown [ > player_bottom | Crate_top ] -> [ | player_middle ] sfx0\n\nup [ > player_top | crate_bottom ] -> [ | player_middle ] sfx0\n\nhorizontal [ > Player | Crate ] -> [ > Player | > Crate ]\n\n\n\ndown [ left Crate_top | stationary crate_bottom ] -> [ left Crate_top | left crate_bottom ]\n+ down [ stationary Crate_top | left crate_bottom ] -> [ left Crate_top | left crate_bottom ]\n+ horizontal [ > crate | stationary crate ] -> [ > crate | > crate ] \n\ndown [ right Crate_top | stationary crate_bottom ] -> [ right Crate_top | right crate_bottom ]\n+ down [ stationary Crate_top | right crate_bottom ] -> [ right Crate_top | right crate_bottom ]\n+ horizontal [ > crate | stationary crate ] -> [ > crate | > crate ] \n\n[ > player_or_crate | wall ] -> cancel\n\nlate vertical [ player_middle | crate_middle ] -> [ player_middle | player_middle ]\n\nlate down [ player_middle | crate_bottom ] -> [ player_middle | player_bottom ]\nlate up [ player_middle | crate_top ] -> [ player_middle | player_top ]\n\n==============\nWINCONDITIONS\n==============\n \nno crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 6\n\n(ok level 1)\n#######\n#.....#\n#.#...#\n#a....#\n#c..#.#\n#.1a..#\n#.3c..#\n#######\n\nmessage Level 2 of 6\n\n(ok level 2)\n#########\n#...a...#\n#...c1..#\n#.#.#3..#\n#...a...#\n#...c.a.#\n##..#.c.#\n#########\n\n\nmessage Level 3 of 6\n\n\n(ok level 2.5?)\n###########\n######...##\n######.#.##\n#####....##\n#####....1#\n#...a..#.3#\n#...c...a.#\n#..a....c.#\n#..c...####\n###########\n\n\n(\n(weirdly confusing - could be a level 2.5 ? but could be too similar to 3)\n#########\n#....1a.#\n#....3c.#\n#..#..#.#\n##......#\n#..aa...#\n#..cc...#\n#########\n)\n\nmessage Level 4 of 6\n\n(ok level 3? too similar to level 1 to follow it?)\n##########\n#........#\n#........#\n#..#.#...#\n#.a.1....#\n#.c.3#.#.#\n#..#..a..#\n#.....c..#\n##########\n\nmessage Level 5 of 6\n\n(NICE LEVEL I used my brain and solved it)\n###########\n#######...#\n#####.....#\n#####...a.#\n#.a1....c.#\n#.c3...#..#\n#.....a...#\n#.....c...#\n###########\n\nmessage Level 6 of 6\n\n(perfectly ok level! lots of nice considerations. good enough!)\n############\n#######....#\n######.....#\n######..a#.#\n######..c..#\n######.....#\n#...a.aa.#.#\n#.1.c.cc...#\n#.3......a.#\n###......c.#\n############\n\nmessage Congratulations. You know your chevrons well.\n\n(HARD. TRY AGAIN) \n(SOLVED IT DON'T LIKE IT)\n(#############\n#######.....#\n#######1....#\n#######3..#.#\n#######..#..#\n#######.a.a.#\n#.....a.c.c.#\n#.....c.....#\n#...a.....a.#\n#...c.....c.#\n#############\n\n)\n\n\n(\n(meh)\n#########\n#..a....#\n#..c..a.#\n#....1c.#\n#...a3#.#\n#...c...#\n#.......#\n#########\n)\n\n(\n(meh)\n#########\n#....a1.#\n##...c3.#\n#.#..#..#\n#....##.#\n#.#..a..#\n##...c..#\n##..##..#\n#.......#\n#..a....#\n#..c.a..#\n#.#.#c..#\n#.......#\n#########\n)\n\n((no: meh)\n(ok!)\n#####\n#.a.#\n#ac.#\n#c..#\n#..a#\n#..c#\n#..##\n#..a#\n#..c#\n#.a.#\n#1c.#\n#3..#\n#...#\n#####\n)\n(\n(Eeeh)\n#####\n#a..#\n#c.##\n#.a.#\n#.c.#\n#.a.#\n#.ca#\n#.1c#\n#.3a#\n#a.c#\n#ca.#\n#.c.#\n#...#\n#####\n)\n\n(\n(meh)\n#####\n#.a.#\n#1c.#\n#3..#\n#...#\n#.#.#\n#..##\n#...#\n#...#\n#.a.#\n#.c.#\n#aaa#\n#ccc#\n#####\n)\n(\n(too easy)\n#####\n#aa.#\n#cca#\n#1ac#\n#3c.#\n#...#\n#.a.#\n#.c.#\n#a..#\n#c..#\n#.#.#\n#.a.#\n#.c.#\n#####)\n\n(\n#############\n#######.....#\n#######.....#\n#######.....#\n#######.....#\n#######.....#\n#...........#\n#...........#\n#...........#\n#...........#\n#############\n\n)\n(\n(non trivial and has an idea but you can probably find better)\n#############\n#######..#..#\n#######.#...#\n#######....1#\n#######.a..3#\n#######.c.a.#\n#.#....a..c.#\n#......c....#\n#.....a...a.#\n#.....c...c##\n#############\n)\n\n\n(insoluble ? wtf? oh maybe old version that didn't transfer movements correctly)\n(#############\n########.a#.#\n#######a.c###\n#######c....#\n#######1....#\n#######3....#\n#.....a..#..#\n#....ac.....#\n#....c....a.#\n#.........c.#\n#############\n)\n(\n(meh)\n#############\n#######...1.#\n#######..a3.#\n#######..c..#\n#######.....#\n#######.....#\n#.....a.a...#\n#.....c.c..a#\n#.....a....c#\n#.....c....##\n#############\n)\n\n(meh)(\n#############\n#######..a..#\n#######.1c..#\n#######a3.a.#\n#######c..c.#\n#######a.##.#\n##.....c....#\n#...........#\n#.a.........#\n#.c.#.......#\n#############\n)\n\n(90% meh)\n(\n#############\n#######.#...#\n#######.....#\n#######....##\n#######...1.#\n#######.a.3.#\n#...aa.ac...#\n#...cc.c....#\n##.......a..#\n##.....##c..#\n#############)\n\n(meh)\n(\n#############\n#######.#...#\n#######.....#\n########.#.a#\n########aa1c#\n#######.cc3.#\n#....a......#\n#....c......#\n#.#.......a.#\n#.#.......c.#\n#############\n)\n\n(\n(meh)\n#############\n#######a.a..#\n#######c.c..#\n#######.a.#.#\n#######.c..##\n#######.....#\n#..........##\n#....#...a..#\n#....a...c.1#\n##...c..#..3#\n#############\n)\n\n\n\n(insoluble :[\n#############\n#######.a...#\n#######.c...#\n#######.#...#\n#######.....#\n#######..a..#\n#.a......c1##\n#.c.......3.#\n#...a....a..#\n#...c.#..c..#\n#############\n)\n(insoluble :[\n#############\n#######.#...#\n#######.....#\n#######..#..#\n#######.....#\n#######.....#\n#a#.1...a...#\n#c..3a..c.a.#\n#....c.a..c.#\n#......c....#\n#############\n)\n(insoluble :[\n#############\n#######..#..#\n########....#\n#######.1...#\n#######.3...#\n#######...a.#\n#.......aac.#\n#....a..cc.##\n#....ca.....#\n#.....c....##\n#############\n)\n(trivial\n#############\n#######.1...#\n########3...#\n#######.#...#\n#######..aa.#\n########.cca#\n#........a.c#\n##.......c..#\n#....#..a...#\n#.......c...#\n#############\n)\n(almost trivial\n#############\n#######...#.#\n#######.a...#\n#######.c...#\n#######.a...#\n#######.caa.#\n#.#.1....cc.#\n#...3....a..#\n#.#.a....c..#\n#.##c.......#\n#############\n)\n(trivial\n#############\n#######.....#\n#######.....#\n########..a.#\n#######.1.c.#\n#######.3...#\n#....a.#a...#\n#....c..c.a.#\n##...a.a..c.#\n#....c.c....#\n#############\n)\n(trivial\n#############\n#######.a...#\n#######.c...#\n#######.....#\n#######.....#\n#######.....#\n#......1aa..#\n#.....#3cc..#\n##..a.a.....#\n#...c.c.....#\n#############\n)\n\n(trivial\n#############\n#######.##..#\n#######.....#\n#######.a...#\n#######.c...#\n#######.....#\n#...a1....a.#\n#...c3....c.#\n#a......aa..#\n#c......cc..#\n#############\n)\n\n(\n(hard but also meh)\n#############\n########....#\n#######.a.1.#\n#######.c.3a#\n#######....c#\n#######...a.#\n#.....a..ac.#\n#.....c..c..#\n#........#a.#\n#.#.#.....c.#\n#############\n)\n(unsolvable :'[\n#############\n#######..#..#\n########....#\n#######.1...#\n#######.3...#\n#######...a.#\n#.......aac.#\n#....a..cc.##\n#....c.a....#\n#......c...##\n#############\n)\n\n((meh)\n(there's an idea to this level, which I like - could it be expanded?)\n#############\n########...##\n#######a..1a#\n#######c..3c#\n#######....a#\n#######....c#\n#aa.........#\n#cc.........#\n#...........#\n#...........#\n#############\n)\n\n(meh\n#############\n########....#\n#######.....#\n#######...#.#\n#######...a.#\n#######...ca#\n#........a.c#\n#...1....c.##\n#...3..a..a.#\n#......c..c.#\n#############\n)\n(Tricky?)\n(meh)\n(\n#############\n#######.....#\n#######.a...#\n#######.c..a#\n#######....c#\n#######.1..a#\n#.a.....3#.c#\n#.c.......a.#\n#.........c.#\n#........#.##\n#############\n)\n(\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#####\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#####\n\n#####\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#####\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n)\n(meh it's ok but I already have somethign like this?)\n(\n#########\n#.a.....#\n#.c.....#\n#...#.#1#\n#......3#\n#.#.a...#\n#..#c...#\n#########\n)\n(\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n##.....##\n##.....##\n###...###\n###...###\n####.####\n####.####\n#########\n\n(meh)\n#########\n#.#.....#\n#.a.....#\n#.....#.#\n#..#.#..#\n#..a1a..#\n#.......#\n##.....##\n##.....##\n###...###\n###...###\n####.####\n####.####\n#########\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.1..a.a..#\n#.3..b.b..#\n#....c.c..#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n)\n(meh)\n(\n#########\n###...###\n##.....##\n#.......#\n#.......#\n#.......#\n#.......#\n##aa1aa##\n##cc3cc##\n###aaa###\n###ccc###\n####a####\n####c####\n#########\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#...1...#\n#...3...#\n##aaaaa##\n##ccccc##\n###aaa###\n###ccc###\n####a####\n####c####\n#########\n\n#########\n#########\n####.####\n###...###\n##.....##\n#.......#\n#.......#\n##aa1aa##\n##cc3cc##\n###aaa###\n###ccc###\n####a####\n####c####\n#########\n)\n\n(\nTRANSFORM\n\nchoose 1 down [ no obstacle | no obstacle ] -> [ player_top | player_bottom ]\nchoose 5 down [ no obstacle | no obstacle ] -> [ crate_top | crate_bottom ]\nchoose 10 [ no crate no player ] -> [ wall ]\n\n----\n\n\n(choose 1 option 0.5 [ wall ] -> []\n+ option 0.5 [ no obstacle ] -> [ wall ])\n\nchoose 5 option 0.2 [ no obstacle ] -> [ wall ]\n+ option 0.2 []->[]\n\nchoose 5 down [ no obstacle | no obstacle ]-> [ crate_top | crate_bottom] \nchoose 1 down [ no obstacle | no obstacle ] -> [ player_top | player_bottom]\n(choose 1 down [ no obstacle | no obstacle ] [crate_top|crate_bottom]-> [ crate_top | crate_bottom] [|])\n\n)\n",[3,2,2,1,1,1,0,3,3,2,3,3,0,0,0,3,0,3,0,3,3,2,2,2,0,1,1,3,2,2,2,1,1,0,0,1,1,2,1,1,3,3,3,3,0,0,0,0,3,3,3,2,1,2,1,1,1,"undo","undo",3,0,1,1,2,1,1],"background wall:0,0,0,0,0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,0,0,0,0,0,\nbackground crate_top:2,background crate_bottom:3,1,1,0,0,0,0,0,background player_top:4,background player_middle:5,\n5,background player_bottom:6,0,0,0,0,0,1,1,1,1,\n0,0,0,1,1,1,1,1,1,0,0,\n0,1,1,1,1,1,1,0,0,1,1,\n1,1,0,1,1,0,0,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,\n1,0,0,0,0,0,0,0,0,0,0,\n",9,"1645544442907.0366"] - ], - [ - "Two-Tone Tango", - ["title Two-Tone Tango\nauthor increpare\nhomepage www.increpare.com\n\nrequire_player_movement\n\n\n========\nOBJECTS\n========\n\nBackground\n#58875a\n\n\nTarget\ntransparent #b8ca58\n00000\n00100\n01110\n00100\n00000\n\n\nWall\n#906f80 #5f4351\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nlightblue\n\nFreund\n#355278\n\nCrate\n#b39b2a transparent\n00000\n01110\n01110\n01110\n00000\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nf = Freund\n* = Crate\n@ = Crate and Target\nO = Target\n\npusher = player or freund or crate\n\nblocker = player or freund or crate or wall\n=======\nSOUNDS\n=======\n\nCrate MOVE 26816907\nsfx1 15668107 (disconnect)\nsfx2 62739107 (connect)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, freund, Wall, Crate\n\n======\nRULES\n======\n\n[ up player | Freund ] -> [ up player | up Freund ]\n[ down player | Freund ] -> [ down player | down Freund ]\n[ left player | Freund ] -> [ left player | left Freund ]\n[ right player | Freund ] -> [ right player | right Freund ]\n\n\nvertical [ up freund | stationary freund ] -> [ up freund | up freund ]\nvertical [ down freund | stationary freund ] -> [ down freund | down freund ]\nvertical [ left freund | stationary freund ] -> [ left freund | left freund ]\nvertical [ right freund | stationary freund ] -> [ right freund | right freund ]\n\n(forward propagation)\n[ > pusher | Crate ] -> [ > pusher | > Crate ]\n\n\n(backwards propagation)\n\n[ > pusher | stationary blocker ] -> [ stationary pusher | stationary blocker ]\n+ vertical [ up freund | stationary freund ] -> [ stationary freund | stationary freund ]\n+ vertical [ down freund | stationary freund ] -> [ stationary freund | stationary freund ]\n+ vertical [ left freund | stationary freund ] -> [ stationary freund | stationary freund ]\n+ vertical [ right freund | stationary freund ] -> [ stationary freund | stationary freund ]\n\n(again forwards propagation)\n[ stationary pusher | > crate ] -> [ stationary pusher | stationary crate ]\n\n[stationary player ]-> cancel\n\n[ < player | stationary freund ] -> sfx1\n[ > player | | stationary freund ] -> sfx2\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1/8\n(could be ok level 1?)\n############\n#..........#\n#....*....o#\n#..f...p...#\n#..f#..p#..#\n############\n\n\nmessage Level 2/8\n(pleasant early)\n#######\n#..f..#\n#..f..#\n#o@...#\n#..p*.#\n#..p#.#\n##....#\n#######\n\n\nmessage Level 3/8\n(ok level 3? no 2)\n######\n#...o#\n##.f##\n#..f.#\n#..*.#\n#p...#\n#p...#\n######\n\n\nmessage Level 4/8\n(Really nice intermediate level!)\n#########\n#p..#...#\n#p....#.#\n#.*.....#\n#....f..#\n#...#f.o#\n#...#...#\n#########\n\n( (Easy but not bad. ok first level?) )\n( ###### )\n( #.#..# )\n( #.o..# )\n( #f...# )\n( #f.*p# )\n( #..*p# )\n( #...o# )\n( ###### )\n\n\n( (maybe ok early level? actually kinda tricky? maybe leave out?) )\n( ########## )\n( #..*...o.# )\n( #...f@...# )\n( #p..f....# )\n( #p..#....# )\n( ########## )\n\n( (p. easy. maybe for start of game. maybe leave out? not outstanding, just ok) )\n( ###### )\n( #o...# )\n( #..*o# )\n( #..p.# )\n( #.fp*# )\n( #.f..# )\n( #.*o.# )\n( ###### )\n\n\n( (easy but ok, maybe level 2-3? so lala) )\n( ########## )\n( #..f..o*.# )\n( #o.f..*p.# )\n( #@.....p.# )\n( ##.....### )\n( ########## )\n\n( (pretty ok? level 1 or 2? okish) )\n( ###### )\n( #..f.# )\n( #p.f.# )\n( #p*..# )\n( #.*.o# )\n( #...*# )\n( #o..o# )\n( ###### )\n\n\n( (Early hard. fine? not too memeorable meh) )\n( ###### )\n( #...o# )\n( #o.o*# )\n( #..f.# )\n( #**f.# )\n( #..p.# )\n( #..p.# )\n( ###### )\n\n\nmessage Level 5/8\n(a bit tricky but I could reason through it, OK)\n######\n#.#.p#\n#...p#\n#o..*#\n#.**o#\n#.f.o#\n#.f..#\n######\n\n\n\n\nmessage Level 6/8\n(late. pretty fun! nice to figure out / work through, if not exactly a lynchpin level)\n######\n#...o#\n#....#\n#...f#\n#..*f#\n#p**o#\n#p.o.#\n######\n\n\nmessage Level 7/8\n(INTERESTING intermediate. got stuck for a weird amount of time lol)\n######\n#o*.o#\n#p..f#\n#p*#f#\n#.*..#\n#....#\n#..o.#\n######\n\n\nmessage Level 8/8\n(funny! late intermediate/early late difficulty. definitely include)\n######\n#p...#\n#p...#\n##*.@#\n#f...#\n#fo..#\n#o.*.#\n######\n\nmessage Congratulations! You are the master of tango.\n\n( (got weirdly stuck for a while, but not hard - late early) )\n( ###### )\n( #...o# )\n( #p...# )\n( #p.@.# )\n( #..*.# )\n( #...f# )\n( #...f# )\n( ###### )\n\n( (ok intermediate? feel like I've solved it before though ,but dont' remmber the solution. maybe pass on this one?) )\n( ####### )\n( #.....# )\n( #.....# )\n( #....p# )\n( ##*..p# )\n( #..f@## )\n( #..f.o# )\n( ####### )\n\n( (easy but not appropriate for eearly game IMO. leave out) )\n( ########## )\n( #o.f...*p# )\n( #..f.o*.p# )\n( #........# )\n( ##.#.....# )\n( ########## )\n\n\n( (Easy ish but not so interesting/useful as intro level?) )\n( ######### )\n( #..o*f.o# )\n( #...*fo*# )\n( #p......# )\n( #p......# )\n( ######### )\n\n( (don't like can realize mistake at the end and need to backtrack) )\n( ########## )\n( ##..o..*p# )\n( #.......p# )\n( #...**.f.# )\n( ##..o.of.# )\n( ########## )\n\n( (trivial) )\n( ########## )\n( #.....po.# )\n( #f..*.p..# )\n( #f.....*.# )\n( #..@.o...# )\n( ########## )\n\n( (trivial) )\n( ########## )\n( #...*o..f# )\n( #...@.#.f# )\n( #p.....*.# )\n( #p......o# )\n( ########## )\n\n\n( (meh. not hard. not fun for me) )\n( ########## )\n( ##...pof.# )\n( #...*p.f.# )\n( #.o...*..# )\n( #..o...*.# )\n( ########## )\n\n\n\n( (perfectly chill/lovely/not hard. wtf? I guess i mistranscribed) )\n( ###### )\n( ##...# )\n( ##...# )\n( ##...# )\n( ##...# )\n( ##p..# )\n( #fp..# )\n( #f.*.# )\n( #o..## )\n( ###### )\n\n\n\n( (meh) )\n( ######### )\n( #....po.# )\n( #...#p..# )\n( ##*.....# )\n( #....f.## )\n( #...#f..# )\n( #...#.#.# )\n( ######### )\n\n( (could be ok as intermediate level? not sure it's conceptually sharp though, but I could solve it with my brain) )\n( ###### )\n( #....# )\n( #..o.# )\n( #p**f# )\n( #po*f# )\n( #..*o# )\n( #o..## )\n( ###### )\n\n\n( (trivialish/boring) )\n( ######## )\n( ####...# )\n( ####...# )\n( ####...# )\n( ####..p# )\n( ####*op# )\n( #f*....# )\n( #f.....# )\n( #o.....# )\n( #..o*..# )\n( ######## )\n\n( (trivialish/boring) )\n( ######## )\n( ####...# )\n( ####.op# )\n( ####.op# )\n( ####.*.# )\n( ####*..# )\n( #......# )\n( #f.....# )\n( #fo*...# )\n( #......# )\n( ######## )\n\n( (hard work, accidentally found solution. skip it) )\n( ######## )\n( ####...# )\n( ####...# )\n( ####...# )\n( ####.o.# )\n( ####.p.# )\n( #.f..p*# )\n( #.f..*.# )\n( #..o*.o# )\n( #......# )\n( ######## )\n\n( (trivial) )\n( ######## )\n( ####...# )\n( ####f..# )\n( ####fo.# )\n( ####...# )\n( ####.*.# )\n( #....o.# )\n( #.*..@p# )\n( #.....p# )\n( #......# )\n( ######## )\n\n\n\n( (trivial) )\n( ######## )\n( ####...# )\n( ####o*o# )\n( ####p..# )\n( ####p..# )\n( ####.*.# )\n( #...o.*# )\n( #.f....# )\n( #.f....# )\n( ######## )\n\n( (trivialish. leave it) )\n( ######## )\n( ####...# )\n( ####...# )\n( ####*o.# )\n( ####*..# )\n( ####...# )\n( #..f.*p# )\n( #..f..p# )\n( #....oo# )\n( ######## )\n\n( (can't figure it out. try solve again later. meh solved it what an anticlimax. screw this level.) )\n( ###### )\n( #f*o.# )\n( #f...# )\n( #*p*o# )\n( #.p*.# )\n( #oo..# )\n( #....# )\n( ###### )\n\n\n( \n\n\n########\n####...#\n####...#\n####...#\n####...#\n####...#\n#......#\n#......#\n#......#\n#......#\n########\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n##########\n\n############\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n\n##########\n######...#\n######...#\n######...#\n######...#\n######...#\n#........#\n#........#\n#........#\n##########\n\n########\n####...#\n####...#\n####...#\n####...#\n####...#\n#......#\n#......#\n#......#\n########\n)\n(transformation\n\nchoose 5 [ ] -> [ wall ]\nchoose 1 down [ no blocker | no blocker ] -> [ player | player ]\nchoose 1 down [ no blocker | no blocker ] -> [ freund | freund ]\nchoose 2 down [ no blocker ] -> [ crate ]\nchoose 2 down [ no wall no player no freund no target ] -> [ target ]\n)\n",[0,2,2,1,3,0,0,0,3,"restart",0,1,"restart",2,0,1,1,1,0,0,0,3,3,2,2,1,3,2,1,0,0,0,3,3,2,1,3,2,1,2,2,1],"background wall:0,0,0,0,0,0,0,\n0,0,background:1,1,background crate target:2,1,1,\n0,0,0,1,1,background target:3,background crate:4,\nbackground player:5,5,0,0,1,1,1,\n1,1,1,0,0,1,1,\n1,1,0,1,0,0,1,\n1,1,background freund:6,6,1,0,0,\n0,0,0,0,0,0,0,\n",3,"1645544569499.8286"] - ], - [ - "Hole-Stuffer", - ["title Hole-Stuffer\nauthor increpare\nhomepage www.increpare.com\n\n\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\n\nWall\n#493c2b #664b28\n00000\n01000\n00100\n00010\n00000\n \n\n\nPlayer\ngreen\n\n\n\nwintoken\ntransparent\n\nrandommoved\ntransparent\n\n\nplayer_1\n#2f484e #c62a6f #852e55 #af2f68\n01111\n23333\n23313\n23133\n23333\n\nplayer_2\n#c62a6f #af2f68 #852e55 #ffffff\n00000\n11211\n12021\n20302\n22022\n\nplayer_3\n#c62a6f #2f484e #af2f68\n00001\n22220\n20220\n22020\n22220\n\nplayer_4\n#852e55 #af2f68 #c62a6f\n01212\n01212\n01212\n01212\n01212\n\n\nplayer_5\n#852e55 #af2f68 #c62a6f #2f484e\n01212\n01212\n01212\n01112\n30003\n\n\n\ncrate\n#2f484e #fca556 #bd5d07 #eb8931\n01110\n23331\n23331\n23331\n02220\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = wall and randommoved\n\nobstacle = wall or crate\npusher = crate or player\n\n\nsprite_player = player_1 or player_2 or player_3 or player_4 or player_5 \n\n\nsprite = sprite_player \n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nwintoken\nrandommoved\nsprite\n\n\n======\nRULES\n======\n\n\n[ stationary randommoved ] [ > pusher | stationary Crate ] -> [ action randommoved] [ > pusher | > Crate ]\n\n[ action randommoved ] [ > pusher | stationary Crate ] -> cancel\n\n[ > pusher | wall ] -> cancel \n\n\n\nlate [ sprite ] -> []\n\n\nlate down [ no player | player | obstacle | obstacle | obstacle ] -> [ | player wintoken | obstacle | obstacle | obstacle ] again\n\n\n\n\nlate right [ player | player | player ] -> [ player player_1 | player player_2 | player player_3 ]\nlate down [ player_1 | | | ] -> [ player_1 | player_4 | player_4 | player_5 ]\nlate down [ player_3 | | | ] -> [ player_3 | player_4 | player_4 | player_5 ]\n==============\nWINCONDITIONS\n==============\n\nsome wintoken\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 4\n\n@###########\n#..........#\n#..........#\n#..........#\n#.ppp......#\n#.p.p......#\n#.p.p..***.#\n#.p.p......#\n#..........#\n#..........#\n############\n\nmessage Level 2 of 4\n\n\n@########\n#..ppp..#\n#..p.p..#\n#..p.p..#\n#..p.p..#\n#..***..#\n#.......#\n#.......#\n#########\n\n\nmessage Level 3 of 4\n\n@######\n#.....#\n#.....#\n#.....#\n#.....#\n#...*.#\n#ppp..#\n#p.p*.#\n#p.p..#\n#p.p*.#\n#######\n\nmessage Level 4 of 4\n\n@########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#..***..#\n#..ppp..#\n#..p.p..#\n#..p.p..#\n#..p.p..#\n#########\n\nmessage Congratulations, you aul hole-stuffer.\n\n\n\n",[3,2,2,1,1,1,0,0,1,1,2,1,1,0,3,3,3,2,1,1,2,3,3,2,1,1,0,0,1,1,3,3,0,1,1,2,2,1,3,2,1,1],"background randommoved wall:0,background wall:1,1,1,1,1,1,1,1,\n1,background:2,2,2,2,background crate:3,2,2,1,\n1,2,2,2,background player player_1:4,background player player_4:5,5,background player player_5:6,1,\n1,2,2,2,background player player_2:7,2,2,3,1,\n1,2,2,2,background player player_3:8,5,5,6,1,\n1,2,2,2,2,2,2,2,1,\n1,2,2,2,2,3,2,2,1,\n1,2,2,2,2,2,2,2,1,\n1,1,1,1,1,1,1,1,1,\n",3,"1645544598726.4905"] - ], - [ - "Wand Spinner", - ["title Wand Spinner\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #5b6ee1\n\n(thanks to bluemelon555 for the assistance, and ggn2, and bvoq )\n\n\n\n========\nOBJECTS\n========\n\nBackground\n#5b6ee1\n\ncrate\n#abb5f1 #5f4a18\n01110\n1...1\n1...1\n1...1\n01110\n\nTarget_h\ntransparent #c71fa9 transparent transparent\n00000\n11111\n22223\n11111\n00000\n\nTarget_v\ntransparent #c71fa9 transparent transparent\n01210\n01210\n01210\n01210\n01210\n\nWall\n#3f3f74\n\nPlayer\n#5b6ee1 #5fcde4 #000000\n01110\n12121\n11111\n11211\n01110\n\nstick_w 1\n#abb5f1 #323c39\n.....\n.....\n00111\n.....\n.....\n\nstick_nw 2\n#abb5f1 #323c39\n.....\n.0...\n..0..\n...1.\n....1\n\nstick_n 3\n#abb5f1 #323c39\n..0..\n..0..\n..1..\n..1..\n..1..\n\nstick_ne 4\n#ffffff #abb5f1 #323c39\n.....\n...1.\n..1..\n.2...\n2....\n\n\nstick_e 5\n#323c39 #abb5f1\n.....\n.....\n00011\n.....\n.....\n\n\nstick_se 6\n#323c39 #abb5f1\n0....\n.0...\n..1..\n...1.\n.....\n\nstick_s 7\n#323c39 #abb5f1\n..0..\n..0..\n..0..\n..1..\n..1..\n\nstick_sw 8\n#323c39 #abb5f1\n....0\n...0.\n..1..\n.1...\n.....\n\nmoved\ntransparent\n\ncon_ne\ntransparent\n\ncon_nw\ntransparent\n\ncon_se\ntransparent\n\ncon_sw\ntransparent\n\ntl\ntransparent\n\n\n\n=======\nLEGEND\n=======\nstick = stick_w or stick_nw or stick_n or stick_ne or stick_e or stick_se or stick_s or stick_sw\nstick_h = stick_e or stick_w\n\nstick_v = stick_n or stick_s\n\n. = Background\n# = Wall\nP = Player\n\n\n9 = target_h\n0 = Target_v\n\ntarget = target_h or Target_v\no = crate\nplayer_or_crate = player or crate\nstick_or_crate = stick or crate\nplayer_or_crate_or_stick = player or crate or stick\n\n@ = wall and tl\n\nobstacle = player or stick or crate or wall\n\na = target_v and stick_n\ns = target_v and stick_s\nd = target_h and stick_w\nf = target_h and stick_e\n\nz = target_v and stick_w\nx = target_v and stick_e\nc = target_h and stick_n\nb = target_h and stick_s\n\n=======\nSOUNDS\n=======\n\nstick move 12743307\nendlevel 58303907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, stick,crate\nmoved\ncon_ne, con_nw, con_se, con_sw\ntl\n\n\n======\nRULES\n======\n\n\n\n[ > player_or_crate | stick_or_crate ] -> [ > player_or_crate | > stick_or_crate ]\n\ndown [ left stick_n no moved | stick_s no moved ] -> [ left stick_nw moved | stick_se moved ]\n+ down [ right stick_n no moved | stick_s no moved ] -> [ right stick_ne moved | stick_sw moved ]\n+ down [ stick_n no moved | left stick_s no moved ] -> [ stick_ne moved | left stick_sw moved ]\n+ down [ stick_n no moved | right stick_s no moved ] -> [ stick_nw moved | right stick_se moved ]\n\n+ right [ down stick_w no moved | stick_e no moved ] -> [ down stick_sw moved | stick_ne moved ]\n+ right [ up stick_w no moved | stick_e no moved ] -> [ up stick_nw moved | stick_se moved ]\n+ right [ stick_w no moved | down stick_e no moved ] -> [ stick_nw moved | down stick_se moved ]\n+ right [ stick_w no moved | up stick_e no moved ] -> [ stick_sw moved | up stick_ne moved ]\n\n\n+ right [ right stick_nw no moved | ] -> [ right stick_n moved | right con_ne ]\n+ right [ up stick_nw no moved | ] -> [ right stick_n moved | right con_ne ]\n+ down [ right con_ne | stick_se ] -> [ | stick_s ]\n\n+ down [ down stick_nw no moved | ] -> [ down stick_w moved | down con_se ]\n+ down [ left stick_nw no moved | ] -> [ down stick_w moved | down con_se ]\n+ right [ down con_se | stick_se ] -> [ | stick_e ]\n\n+ left [ left stick_se no moved | ] -> [ left stick_s moved | left con_se ]\n+ left [ down stick_se no moved | ] -> [ left stick_s moved | left con_se ]\n+ up [ left con_se | stick_nw ] -> [ | stick_n ]\n\n+ up [ up stick_se no moved | ] -> [ up stick_e moved | up con_ne ]\n+ up [ right stick_se no moved | ] -> [ up stick_e moved | up con_ne ]\n+ left [ up con_ne | stick_nw ] -> [ | stick_w ]\n\n\n+ left [ left stick_ne no moved | ] -> [ left stick_n moved | left con_nw ]\n+ left [ up stick_ne no moved | ] -> [ left stick_n moved | left con_nw ]\n+ down [ left con_nw | stick_sw ] -> [ | stick_s ]\n\n+ down [ down stick_ne no moved | ] -> [ down stick_e moved | down con_se ]\n+ down [ right stick_ne no moved | ] -> [ down stick_e moved | down con_se ]\n+ left [ down con_se | stick_sw ] -> [ | stick_w ]\n\n+ right [ right stick_sw no moved | ] -> [ right stick_s moved | right con_sw ]\n+ right [ down stick_sw no moved | ] -> [ right stick_s moved | right con_sw ]\n+ up [ right con_sw | stick_ne ] -> [ | stick_n ]\n\n+ up [ up stick_sw no moved | ] -> [ up stick_w moved | up con_nw ]\n+ up [ left stick_sw no moved | ] -> [ up stick_w moved | up con_nw ]\n+ right [ up con_nw | stick_ne ] -> [ | stick_e ]\n\n\n+ [ stationary tl ] [ > crate | stationary stick_or_crate ] -> [ action tl ] [ > crate | > stick_or_crate ]\n+ [ action tl ] -> [ stationary tl ]\n\n+ [ stationary tl ] [ > stick | stationary stick_or_crate ] -> [ action tl ] [ > stick | > stick_or_crate ]\n+ [ action tl ] -> [ stationary tl ]\n\n[ > player_or_crate_or_stick | wall ] -> cancel\n\nlate [moved]->[]\n\n\n==============\nWINCONDITIONS\n==============\nall Target_h on stick_h \nall Target_v on stick_V\n\n=======\nLEVELS\n=======\n\n\nmessage 1 / 18\n(ok level 1?)\n@###..\n#..#..\n#..###\n#.399#\n#.7.p#\n#..###\n####..\n\n\nmessage 2 / 18\n(kinda easy but not bad?)\n@####.\n#0..##\n#03..#\n##7..#\n.##p.#\n..##.#\n...###\n\n\nmessage 3 / 18\n(easy but fun manipulation? could be level 1 but maybe too constrained?)\n@#####.\n#.3..##\n#.7..0#\n#993p0#\n#..7..#\n#######\n\n( (level 2?) )\n( @##### )\n( #99..# )\n( #.#..# )\n( #....# )\n( #.15.# )\n( #p...# )\n( ###### )\n\n\nmessage 4 / 18\n(ok late-early)\n@######\n#.3.p.#\n#.7..0#\n#1f9.0#\n#.....#\n#######\n\nmessage 5 / 18\n(could be ok easy level)\n.######\n.#99#.#\n@#.15.#\n#.3.#.#\n#pb9..#\n#######\n\nmessage 6 / 18\n(easy enough to think through?)\n@####.\n#..3##\n#.9b.#\n#df..#\n#p...#\n######\n\nmessage 7 / 18\n(simple-enough)\n@#####\n#..a.#\n#15s.#\n#..#0#\n#p..0#\n######\n\n\n\nmessage 8 / 18\n(late-easy kinda fine?)\n@######\n#.#.3.#\n#..0b9#\n#p.z5.#\n#...#.#\n#######\n\n( (not too hard but kinda fun?) )\n( @.#####.... )\n( ###99.##### )\n( #.99...33.# )\n( #.#...#77.# )\n( #.....#..p# )\n( ########### )\n\nmessage 9 / 18\n(reduced above. still solvable)\n.@####....\n##99.#####\n#99...33.#\n#....#77.#\n######..p#\n.....#####\n\nmessage 10 / 18\n@#####.#####\n#...3###.0.#\n#...7....0.#\n#####.p.df.#\n....########\n\nmessage 11 / 18\n(easy. feeling lukewarm about it)\n@######\n#.a...#\n#.s.#.#\n#015..#\n#0p#.##\n#######\n\n\nmessage 12 / 18\n(ok free early level?)\n@#######\n#.3....#\n#.7..99#\n#.3.p.0#\n#.7..#0#\n########\n\nmessage 13 / 18\n(not hard. kinda fun/silly)\n@########\n#p......#\n#.#.#a#.#\n#.15.s99#\n#.#.#.#.#\n#.......#\n#########\n\nmessage 14 / 18\n(ok-ish intermediate level)\n@######\n#.#03.#\n#.307.#\n#.7pc9#\n#99.7.#\n#######\n\n\nmessage 15 / 18\n(slightly tricky + fun trick to notice)\n@#####\n#..3.#\n#.#7.#\n#00.a#\n#0a.s#\n#.7p.#\n######\n\nmessage 16 / 18\n(intermediate?)\n@####.\n#.9c##\n#.9b0#\n#1530#\n#p.7.#\n######\n\nmessage 17 / 18\n(kinda chilll / ok!)\n@######\n#.....#\n#.zfc.#\n#.a.sp#\n#.bdx.#\n#.....#\n#######\n\nmessage 18 / 18\n(hardish but ok?)\n.@####\n##.3.#\n#.07.#\n#.0df#\n#p...#\n######\n\nmessage Congratulations! You've graduated from the college of magicians' assistants with flying colours! \n\n( (I like this level) )\n( @###### )\n( #.a.### )\n( #.sp### )\n( #.3.0.# )\n( #.7.0.# )\n( ####### )\n\n\n(( NOT BAD BUT )(Easyish. ok? not soo interesting) )\n( @###### )\n( #.99.## )\n( #..3.p# )\n( #.3b9.# )\n( #.7.### )\n( ####### )\n\n( (Easy but funish? ok level 2?) )\n( @###### )\n( #.3..p# )\n( #.799.# )\n( #.3...# )\n( #.799.# )\n( #.3...# )\n( #.799.# )\n( ####### )\n\n( (interesting goal, but too bloody hard. not solved but solution gawked at) )\n( @###### )\n( #0p3..# )\n( #0.730# )\n( ##1fb0# )\n( ###...# )\n( ####### )\n\n( (trivial) )\n( @###### )\n( ##.p3.# )\n( #df.7.# )\n( #9930.# )\n( #..70## )\n( ####### )\n\n( (meh tolerable but meh) )\n( @###### )\n( #p0..0# )\n( #.0330# )\n( #.377.# )\n( #9b.#.# )\n( ####### )\n\n( (trivial) )\n( @###### )\n( #.99.p# )\n( #.3.c9# )\n( #.7.7.# )\n( #.df.## )\n( ####### )\n\n( (meh) )\n( @######## )\n( ######### )\n( ###p99.## )\n( ###15..## )\n( ###..#### )\n( ####.#### )\n( ####.#### )\n( ####..### )\n( ##....### )\n( ##....### )\n( ######### )\n( ######### )\n\n( (same old) )\n( @###### )\n( #...30# )\n( #.0.70# )\n( #.z5..# )\n( #..#.p# )\n( ####### )\n\n( (same old) )\n( @######## )\n( #..3....# )\n( ##37....# )\n( #.7.p99## )\n( #...99.## )\n( ######### )\n\n( (same old) )\n( (not hard. ok?) )\n( @######## )\n( #.3.....# )\n( #.799.#p# )\n( #.3..99.# )\n( #.7.....# )\n( ######### )\n\n\n( (meh) )\n( (not hard) )\n( @###### )\n( #p.a..# )\n( #..s15# )\n( #.df..# )\n( #.99..# )\n( ####### )\n\n( (meh) )\n( (intermediate ok?) )\n( @##### )\n( #0...# )\n( #0#30# )\n( #..70# )\n( #151x# )\n( #p..0# )\n( ###### )\n\n\n( (meh trial and error solution) )\n( @##### )\n( #..3.# )\n( #0#7p# )\n( #0.3.# )\n( #0a7.# )\n( #0s..# )\n( ###### )\n\n( (trivial) )\n( @######## )\n( #...p...# )\n( #.3399..# )\n( #.773.00# )\n( #...7.00# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #.3.3...# )\n( #.79b.p.# )\n( #..99...# )\n( #..1599.# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #.3.....# )\n( #.b9.99.# )\n( #...3p15# )\n( #.997...# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #..p..3.# )\n( #....cb.# )\n( #....7c9# )\n( #.99..7.# )\n( ######### )\n\n\n\n\n( (fine? too easy maybe I have enough levels like this) )\n( @##### )\n( #....# )\n( #.#99# )\n( #1515# )\n( #p...# )\n( #.99.# )\n( ###### )\n\n( (kinda kludgy? YIP) )\n( @##### )\n( #...p# )\n( #.#0.# )\n( #150.# )\n( #.015# )\n( #.0..# )\n( ###### )\n\n( (eeh rests around a single mechanism. maybe if it were duplciated multiple times with a level, but not just once) )\n( @.#### )\n( ###..# )\n( #.15p# )\n( #1f90# )\n( #...0# )\n( ###### )\n\n\n\n( (meh driving game) INCOMPLETE BUT ALSO DON'T CARE)\n( @.####... )\n( ###..#### )\n( #.....3.# )\n( #.#..#7.# )\n( #....#.p# )\n( ######### )\n\n\n\n\n\n( @##### )\n( #....# )\n( #.#..# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( (trivial) )\n( @.###### )\n( ..#p99.# )\n( ..#.15.# )\n( ..##.### )\n( ...#.#.. )\n( ..##.#.. )\n( ###..#.. )\n( #....##. )\n( #.#...#. )\n( #...#.#. )\n( ###...#. )\n( ..#####. )\n\n\n\n((test level))\n( @.#####.... )\n( ###...##### )\n( #......33.# )\n( #.#...#77.# )\n( #.....#..p# )\n( ########### )\n\n\n( (meh, don't like that you can randomly need to backtrack if you do things in the wrong order. don't find it fun) )\n( @.#####.... )\n( ###...##### )\n( #......33.# )\n( #.#00.#77.# )\n( #..00.#..p# )\n( ########### )\n\n( (trivial but bad) )\n( @.####... )\n( ###..#### )\n( #..cc99.# )\n( #.#77#..# )\n( #p...#..# )\n( ######### )\n\n\n( @.#####... )\n( ###...#### )\n( #........# )\n( #.#...#..# )\n( #.....#..# )\n( ########## )\n\n\n( @.####... )\n( ###..#### )\n( #.......# )\n( #.#..#..# )\n( #....#..# )\n( ######### )\n\n( @####### )\n( #......# )\n( #......# )\n( #......# )\n( #####..# )\n( ....#### )\n\n\n\n( @####### )\n( .#.....# )\n( .#.....# )\n( ##.....# )\n( #......# )\n( #......# )\n( ######## )\n\n( (meh ok but not so tricky? too much walking about) )\n( @#####..##### )\n( #....####...# )\n( #.33......#.# )\n( #.77#9999...# )\n( #p..######### )\n( #####........ )\n\n( @#####.##### )\n( #....###...# )\n( #........#.# )\n( #...#......# )\n( #...######## )\n( #####....... )\n\n( (meh) )\n( @#### )\n( #990# )\n( #0.0# )\n( #099# )\n( #15.# )\n( #15.# )\n( #33.# )\n( #77.# )\n( #.p.# )\n( ##### )\n\n( @####### )\n( #990099# )\n( #..00..# )\n( #.3153.# )\n( #.7157.# )\n( #...p..# )\n( #......# )\n( ######## )\n\n( @##### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( @###### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( @########### )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( ############ )\n\n( @########### )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #.....15...# )\n( #......p...# )\n( #..........# )\n( #..........# )\n( #.........9# )\n( ############ )\n\n( (dunno!) )\n( @###### )\n( ##..### )\n( ##..### )\n( ##..### )\n( ##..### )\n( ##15### )\n( ##15### )\n( ##15### )\n( #.p...# )\n( #.....# )\n( #.99..# )\n( #.99..# )\n( #.99..# )\n( ####### )\n\n( @####....... )\n( #99..##....# )\n( #..99..##..# )\n( #........### )\n( ###........# )\n( ..##@...15.# )\n( ...#.@#..15# )\n( ...#..#@@.p# )\n( ...#.......# )\n( ...######### )\n\n( @##### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( (nice idea but hard also has a crate) )\n( @##### )\n( #99..# )\n( #o.df# )\n( #.p3.# )\n( #..7.# )\n( ###### )\n\n( @.###### )\n( ..#....# )\n( ..#....# )\n( ..##.### )\n( ...#.#.. )\n( ...#.#.. )\n( ####.#.. )\n( #....##. )\n( #.#...#. )\n( #...#.#. )\n( ###...#. )\n( ..#####. )\n\n\n\n( @####. )\n( #...## )\n( #....# )\n( ##...# )\n( .##..# )\n( ..##.# )\n( ...### )\n\n\n( @.....##### )\n( ......#...# )\n( ......#.#.# )\n( #######.#.# )\n( #.........# )\n( #.#.#.#.### )\n( #.......#.. )\n( #########.. )\n\n( @######## )\n( #.......# )\n( #.#.#.#.# )\n( #.......# )\n( #.#.#.#.# )\n( #.......# )\n( ######### )\n\n\n\n( @###.. )\n( #..#.. )\n( #..### )\n( #....# )\n( #....# )\n( #..### )\n( ####.. )\n\n\n( @######## )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #......p# )\n( #.9c....# )\n( #997.3a.# )\n( #....7s.# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #..p..3.# )\n( #....cb.# )\n( #....7c9# )\n( #.99..7.# )\n( ######### )\n\n( (fine/tricky but too like other levels) )\n( @##### )\n( ##30.# )\n( #.70.# )\n( #df..# )\n( #.p..# )\n( ###### )\n\n( @###### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( @############ )\n( #...........# )\n( #...........# )\n( #...........# )\n( #...........# )\n( ############# )\n\n( @######## )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( ######### )\n\n( @########### )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( ############ )\n\n( @.#####.... )\n( ###...##### )\n( #.........# )\n( #.#...#...# )\n( #.....#...# )\n( ########### )\n\n( @................ )\n( ................. )\n( ........9........ )\n( .....999......... )\n( ................. )\n( ......p.......... )\n( .3333.....2..4... )\n( .7777...15.68.... )\n( ................. )\n( ................. )\n( ................. )\n( ................. )\n\n(TRANSFORMATION\n==========\nTRANSFORM\n==========\n\n\nchoose 5 [ ] -> [ wall ]\nchoose 1 [ no wall ] -> [ player ]\n\nchoose 2 option 0.5 right [ no obstacle | no obstacle ] -> [ stick_w | stick_e ]\n+ option 0.5 up [ no obstacle | no obstacle ] -> [ stick_s | stick_n ]\n\n\nchoose 2 option 0.5 right [ no wall no player no target | no wall no player no target ] -> [ target_h | target_h ]\n+ option 0.5 up [ no wall no player no target | no wall no player no target ] -> [ target_v | target_v ]\n\n\n\n)\n\n",[2,3,3,0,0,0,2,2,2,1,1,1,1,0,0,3,3,0,3,3,2,2,"undo",2],"background tl wall:0,background wall:1,1,1,1,1,1,\nbackground:2,2,2,background target_h:3,1,1,1,\n2,background stick_w:4,3,1,1,background target_v:5,5,\nbackground stick_e:6,2,1,1,2,background stick_n:7,background stick_s target_h:8,\n4,1,1,2,2,background player target_h:9,6,\n1,1,1,1,1,1,1,\n",27,"1645544636691.3945"] - ], - [ - "Acorn Scorchery Paradise", - ["title Acorn Scorchery Paradise\nauthor increpare\nhomepage www.increpare.com\n\n\nbackground_color #3f3f74\n\n========\nOBJECTS\n========\n\nBackground\n#3f3f74 #59598f\n00000\n00000\n00100\n00000\n00000\n\n\n\nTarget\norange transparent transparent\n00000\n01110\n01210\n01110\n00000\n\nWall\n#323c39\n00000\n00000\n00000\n00000\n00000\n\n\nPlayer\n#847e87 #a33c88\n00000\n01110\n00000\n..0..\n.0.0.\n\n\nCrate\n#3f3f74 lightgreen green\n.111.\n21112\n21112\n22222\n.222.\n\n\nCrate_HOT\n#3f3f74 #ff0018 #ac3232\n.111.\n21112\n21112\n22222\n.222.\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\ncrate_or_player = Crate or Player or Crate_HOT\nany_Crate = Crate or Crate_HOT\npush_obstacle = wall or crate or Crate_HOT\nobstacle = wall or crate or Crate_HOT or Player\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 34709107\nendlevel 27179907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, Crate_HOT\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate_hot ]\n\n[ > crate_or_player | stationary push_obstacle ] -> cancel\n\n[ stationary crate_hot ] [ ^ crate_hot ] -> [ crate ] [ ^ Crate_HOT ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on any_Crate\n\n=======\nLEVELS\n=======\n\nmessage 1/5\n(nice!)\n######\n#.#..#\n#.*@.#\n#.p..#\n##.o.#\n.#####\n\nmessage 2/5\n(fine)\n#####\n#o..#\n#o..#\n#**@#\n#.p.#\n#####\n\nmessage 3/5\n(lol)\n######\n#p...#\n#.*..#\n#o.@.#\n##.@.#\n.#####\n\nmessage 4/5\n(fine)\n#####\n#opo#\n#.*.#\n#.*.#\n#o*.#\n#####\n\n\n(youAtExample suggested 'vive of five' when I was looking for stupid homophones)\nmessage 5/5 \n(fiiineish)\n######\n#.o.o#\n#....#\n#.**.#\n#.p#.#\n######\n\n\n\nmessage Congratulations! You are the best Acorn Scorcherer in Acorn Scorchery Paradise!\n\n( (meh not sure) )\n( ..#### )\n( ###.o# )\n( #o*..# )\n( #.*..# )\n( #p.@.# )\n( ###### )\n\n( ##### )\n( #...# )\n( #...# )\n( #...# )\n( #...# )\n( ##### )\n\n\n( ###### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( ####### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( ###### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( ######### )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( ######### )\n\n( ######## )\n( #......# )\n( #......# )\n( #......# )\n( #......# )\n( #......# )\n( #......# )\n( ######## )\n\n\n\n(Transformation\n\nchoose 5 [ ] -> [ wall ]\nchoose 1 [ no wall ] -> [ player ]\nchoose 3 [ no obstacle ] -> [ crate ]\nchoose 3 [ no player no wall no target ] -> [ target ]\n\n)\n",[3,0,0,2,1,0,2,1,0,2,3,0,0,2,0,2,1,0,0,3,3,2,3,0,0,"restart",0,0,0,0,2,1,0,0,3,0,3,0,2,1,2,2,1,0,"restart",1,0,2,3,0,1,2,3,3,0,2,1,1,0,0,2,3,"undo","undo","undo",3,0,0,"restart",1,0,0,2,3,3,0,2,1,1,0,0,2,2,3,3,0,1,0,0,3,2,1,2,2],"background wall:0,0,0,0,0,\n0,0,background crate target:1,background target:2,background crate:3,\nbackground:4,0,0,4,4,\n4,background player:5,0,0,4,\n4,background crate_hot target:6,4,0,0,\n0,0,0,0,0,\n",3,"1645544663060.2773"] - ], - [ - "Match-Maker", - ["title Match-Maker\nauthor increpare\nhomepage www.increpare.com\n( debug )\n( verbose_logging )\nrun_rules_on_level_start\n\ncolor_palette c64\nbackground_color green\n\n========\nOBJECTS\n========\n\nBackground\ngreen\n\nWall\ndarkgreen\n\nPlayer\ndarkblue lightgray \n.000.\n01010\n00000\n01110\n.000.\n\nCrate\npurple\n.....\n.000.\n.000.\n.000.\n.....\n\nhands_up\npink\n.0.0.\n.....\n.....\n.....\n.....\n\nhands_down\npink\n.....\n.....\n.....\n.....\n.0.0.\n\nhands_left\npink\n.....\n0....\n.....\n0....\n.....\n\nhands_right\npink\n.....\n....0\n.....\n....0\n.....\n\ncon_up\ntransparent\n\ncon_down\ntransparent\n\ncon_left\ntransparent\n\ncon_right\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\no = Background\n@ = crate\nhands = hands_up or hands_down or hands_left or hands_right\n\nobstacle = player or crate or wall\n\nplayer_or_crate = player or crate\n\ncon = con_up or con_down or con_left or con_right\n\nw = crate and hands_up\ns = crate and hands_down \na = crate and hands_left\nd = crate and hands_right\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 35405507\nsfx0 3325507 (love)\nsfx1 48219704 (breakup)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nhands_up\nhands_down\nhands_left\nhands_right\ncon_up\ncon_down\ncon_left\ncon_right\n\n\n======\nRULES\n======\n\n\n\n[ > player_or_crate | crate ] -> [ > player_or_crate | > Crate ]\n[ > crate hands ] -> [ > crate > hands ]\n\n\n[ > crate | wall ] -> cancel\n\n[ > crate | no obstacle ] -> [ | crate ]\n[ > hands | no hands ] -> [ | hands ]\n\nup [ hands_up | no hands_down ] -> [|] sfx1\ndown [ hands_down | no hands_up ] -> [|] sfx1\nleft [ hands_left | no hands_right ] -> [|] sfx1\nright [ hands_right | no hands_left ] -> [|] sfx1\n\nright [ crate | crate ] -> [ crate con_right | crate con_left ]\ndown [ crate | crate ] -> [ crate con_down | crate con_up ]\n\n[no hands con_up no con_down no con_left no con_right ] -> [ action hands_up ]\n[no hands no con_up con_down no con_left no con_right ] -> [ action hands_down ]\n[no hands no con_up no con_down con_left no con_right ] -> [ action hands_left ]\n[no hands no con_up no con_down no con_left con_right ] -> [ action hands_right ]\n\n[con]->[]\n\nup [ hands_up | no hands_down ] -> [|]\ndown [ hands_down | no hands_up ] -> [|]\nleft [ hands_left | no hands_right ] -> [|]\nright [ hands_right | no hands_left ] -> [|] \n\n\n[ action hands ] -> sfx0\n\n==============\nWINCONDITIONS\n==============\n\nall crate on hands\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 9\n\n(easyish. ok?)\n######\n#*...#\n##..*#\n#..*.#\n#.*.p#\n######\n\n( (ok first level ish) )\n( ......#####. )\n( ......#...#. )\n( ###...#...#. )\n( #*#####...#. )\n( #.#dada**### )\n( #..**......# )\n( #.#dadada### )\n( #*########.. )\n( #.#......... )\n( #p#......... )\n( ###......... )\n\n\nmessage Level 2 of 9\n\n(ok?)\n.#####\n##..*#\n#..*p#\n#da.##\n#.#.#.\n#...#.\n#####.\n\nmessage Level 3 of 9\n(ok! early intermediate?)\n#######.\n#.p...#.\n#..***##\n###*...#\n..######\n\nmessage Level 4 of 9\n(late-early? pretty entertaining gestalt-wise)\n######\n#.s#.#\n#.w.*#\n#....#\n#..#*#\n#..**#\n#.p..#\n######\n\nmessage Level 5 of 9\n\n(ok? entertaining? slightly? ok level? ok let's say it's ok)\n########\n#..da..#\n#..***.#\n#p..*..#\n#####..#\n....####\n\n\nmessage Level 6 of 9\n(early-intermediate ok?)\n######\n#p...#\n#..da#\n#..*.#\n#*.*##\n#..*##\n#....#\n######\n\n\n\nmessage Level 7 of 9\n(early-intermediate? easy/likeable)\n#######\n#....##\n#.da..#\n#.##*.#\n#..#da#\n#p.*..#\n#######\n\nmessage Level 8 of 9\n(AH. OK? If I@m totally stuck it could be a last level? but not...a *good* one)\n(genuinely tricky. not solved yet)\n#######\n#.#...#\n#*s..s#\n#.w#*w#\n#..p..#\n#..####\n#######\n\n\nmessage Level 9 of 9\n(didnae solve)\n######\n#....#\n#.sda#\n#.w..#\n#*p**#\n#...*#\n######\n\nmessage Congratulations. That was really good!\n\n=======================\n(\n\n(consider pruning)\n(weirdly non-obvious :] )\n######\n#.#.##\n#*#.##\n#.p*.#\n#.*..#\n#.*.##\n######\n\n(consider pruning)\n(Easy but ok?)\n##########\n##..p..*.#\n#.**...###\n##.*.#..##\n#.#...####\n##########\n\n\n\n(consider pruning)\n(weirdly engaging)\n######\n#.#.##\n#.#.p#\n#*.s.#\n#..w.#\n#*..##\n######\n\n\n(I like it - late-easy!)\n##########\n#.#.######\n#..*p*...#\n#..#*#*###\n#........#\n##########\n\n(intermediate ok hmm)\n#######\n#.*...#\n#...#.#\n##*..##\n##*.#.#\n#.....#\n#p#.*.#\n#######\n\n(alternative version of above:)\n########\n#.*..###\n#...####\n##s.####\n##w.####\n#......#\n#p#..*.#\n########\n\n\n(early hard? I think it's ok? just separate the parts)\n(dunno how to solve)\n#######\n#.....#\n#da***#\n#*.*..#\n#.*p#.#\n#.#...#\n#.....#\n#######\n\n======================\n\n\n#######\n#.....#\n#.....#\n#.....#\n#ppp..#\n#ppp..#\n#ppp..#\n#######\n\n\n(too easily accidentally solvable? maybe/maybe not! ok level 2?)\n#######\n#.*...#\n#.#.###\n#p.s.##\n#.#w###\n#.*...#\n#######\n\n(simple? just tidying up)\n#########\n#..*.##.#\n##.*##..#\n#.....*##\n#****...#\n#.*##.p.#\n#..#.##.#\n#########\n\n\n(simple? ok intro?)\n######\n##.#.#\n#.#*##\n#**..#\n#..*.#\n##p..#\n######\n\n\n\n(ok!)\n######\n#...*#\n#da*.#\n#.p..#\n#.***#\n#.*..#\n######\n\n(intermediate eh)\n######\n#....#\n#.*.s#\n#.*.w#\n#***.#\n#*..p#\n######\n\n(early intermediate / meh)\n######\n#.da.#\n#.*..#\n#.*..#\n#****#\n#.p..#\n######\n\n(it's fine but is it fun? ok maybe a bit but not a lot)\n######\n#....#\n#.*..#\n#.***#\n#p.*.#\n#.**.#\n#*...#\n######\n\n(meh too mcuh work; couldn't remember the solution)\n(visually cute. bottom two blocks unnecessary?)\n######\n#....#\n#.**.#\n#.**.#\n#p*.*#\n#.da.#\n######\n\n(dunno. not awful. maybe I'm just tired.)\n######\n#....#\n#.*..#\n#da*.#\n#p**.#\n#.da.#\n######\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n######\n#....#\n#.#..#\n#....#\n#....#\n#....#\n######\n\n\n(meh?)\n######\n#.*..#\n#p#..#\n#.da.#\n#....#\n#.*..#\n######\n\n(yeah fine? no it's not)\n######\n#.*..#\n#.#*##\n#.*.##\n#p..##\n##.*.#\n######\n\n\n\n\n(not bad. easy but not bad)\n##########\n#....#.###\n#.....*.##\n####.*.*.#\n#.#.##*.p#\n##########\n\n(trivial)\n##########\n#....*..*#\n#...##*..#\n#.*....#.#\n#...p....#\n##########\n\n\n\n\n(easy but not terrible but not great)\n######\n#*..##\n##.*##\n#..*.#\n#....#\n#.#*p#\n##...#\n######\n\n(easy. not good not bad)\n######\n#..*.#\n####.#\n##..p#\n#.**.#\n#..#.#\n#..*.#\n######\n\n(early intermediate ok?)\n#########\n#..#..###\n###.*.*.#\n#..#..*##\n####.#*.#\n#.*.p..##\n#.*.....#\n#...#..##\n#########\n\n\n\n\n(boring)\n#######\n#.#...#\n#da...#\n#...*##\n#dap..#\n#..*#.#\n#######\n\n\n(trivialish/boring//routine)\n#######\n#*#*..#\n#....##\n#..da.#\n##..**#\n#.p.**#\n#.....#\n#######\n\n(trivialish/boring//routine)\n#######\n#da.#.#\n#..**.#\n#..**.#\n#.....#\n#*..p.#\n##*..##\n#######\n\n(kinda pleasing; nah)\n..####...\n###..####\n#..s.*..#\n#.#w.#.*#\n#....#p.#\n#########\n\n(ok intermediate. yeah but nah)\n########\n#.p....#\n#.s...*#\n#.w***.#\n#####..#\n....####\n\n(so lala intermediate)\n######.#####\n#.*..###...#\n#.da***..#.#\n#...#......#\n#.p.########\n#####.......\n\n(trivial)\n#######\n#.#...#\n#.s...#\n#.w*.##\n#..p..#\n#.###.#\n#..*..#\n#######\n\n\n(trivial)\n#######\n#.*.#.#\n#.#.#.#\n#...*.#\n##.s..#\n#.pw..#\n##.#.##\n#######\n\n\n\n(trivial)\n#######\n#...*.#\n##..#.#\n#..**.#\n#..#..#\n#.....#\n#.*p..#\n#######\n\n(trivial)\n######\n#....#\n#.s###\n#*w#.#\n#.p*.#\n#.*..#\n#.*..#\n######\n\n(trivial)\n######\n#....#\n#....#\n#*da##\n#*...#\n#p..*#\n##*..#\n######\n\n(ok but not good enoguh? or maybe yeah for an early level but I'm not sure)\n######\n#....#\n#..**#\n#.***#\n#*#.##\n#p...#\n#....#\n######\n\n(ok intermediate but also nah)\n######\n#....#\n#*#.*#\n###..#\n#..s.#\n#**w.#\n#.p..#\n######\n\n(trivial)\n######\n##.#.#\n##*da#\n#....#\n#.s..#\n#*w..#\n#.p..#\n######\n\n(trivial)\n######\n#.**.#\n#.**.#\n#..*.#\n#.p..#\n#..*##\n#....#\n######\n\n(meh)\n######\n#...s#\n#...w#\n#..*.#\n##s..#\n##w#*#\n#.p..#\n######\n\n(boring)\n######\n#...##\n#..**#\n#..*.#\n#.**.#\n#*..##\n#.p..#\n######\n\n(boring)\n######\n#.*..#\n##*..#\n#.**.#\n##.**#\n#.p..#\n##.###\n######\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n(boring)\n######\n#.da.#\n#.*..#\n#..**#\n#..*.#\n#..da#\n#.p..#\n######\n\n(boring)\n######\n#....#\n#...*#\n#s...#\n#w.da#\n#p***#\n#....#\n######\n\n(boring)\n######\n#....#\n#...*#\n#.sda#\n#pw..#\n#..s.#\n#.*w.#\n######\n\n(boring)\n######\n#....#\n#..**#\n#..**#\n#.p*.#\n#....#\n#da.*#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n##########\n\n(boring)\n##########\n#.#.*.#..#\n#.*.***.##\n#.#.....##\n#.##p.*..#\n##########\n\n(boring)\n##########\n####*..*.#\n#....#...#\n#.p***..##\n##...*.#.#\n##########\n\n(boring)\n##########\n#..#.#.#.#\n#*...da*.#\n#..da....#\n#p.###...#\n##########\n\n(boring)\n##########\n#....*s.##\n##da..w..#\n#..p#...##\n#*..##.#.#\n##########\n\n############\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n(boring)\n############\n#..#...**..#\n#.**.#*....#\n#....*.##.##\n##..#p.#...#\n############\n\n(boring)\n############\n#..#...#...#\n#.*..#..*s.#\n#p...#s##w.#\n#.#...w....#\n############\n\n(boring)\n############\n##.....da..#\n#...#s...*.#\n#.#p.w..#..#\n#.#.#...*.##\n############\n\n(not boring kinda funny but also nope)\n############\n#.....##...#\n##........##\n#*..*.#.*.*#\n#*.#p#..*.##\n############\n\n(boring)\n############\n#*.#.#...#.#\n#...da*....#\n#.##p.da...#\n#.##...#...#\n############\n\n(boring)\n############\n#*...*#.#..#\n#.#..*....##\n##...**.#..#\n#.#.p.*...##\n############\n\n(boring)\n############\n#....s.....#\n#..##w...s.#\n#.*p..#*#w.#\n#.#.#....###\n############\n\n(boring)\n############\n#..##.#....#\n#####*#.*..#\n#p#.s...*..#\n#...w.#.*#.#\n############\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n(boring)\n#######\n#.#..##\n#..**.#\n#...*##\n##...##\n##pda.#\n#..*..#\n#######\n\n\n(boring)\n#######\n#.....#\n#da...#\n#.*...#\n##*p..#\n#.*..*#\n##....#\n#######\n\n\n(boring)\n#######\n##...*#\n##....#\n#.....#\n#...*##\n#.***.#\n#p*..##\n#######\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n(meh)\n#######\n#.#..##\n#..**.#\n#...*##\n##...##\n##pda.#\n#..*..#\n#######\n\n(meh)\n#######\n#.*.s.#\n###.w##\n#.....#\n###.s.#\n#..pw*#\n#...#.#\n#######\n\n(ok but not great? meh?)\n#######\n#.....#\n#.....#\n#..da.#\n#.##*.#\n#..**.#\n#p.*#.#\n#######\n\n(trivial)\n#######\n##...*#\n#.*.#.#\n##....#\n#.p.#.#\n#.***.#\n#...*.#\n#######\n\n(easy not great?)\n#######\n#...###\n#.da*.#\n#.##..#\n#.....#\n#pda..#\n#...*.#\n#######\n\n(meh. intentionally solvable. but good? idk)\n#######\n#.s.s.#\n#.w*w.#\n#..*..#\n#....##\n#*p...#\n##*...#\n#######\n\n(trivial)\n#######\n#*....#\n#**...#\n#..s*##\n#..w..#\n#..s..#\n#p.w..#\n#######\n\n(trivial)\n#######\n#.....#\n#.....#\n#*....#\n#pda*.#\n#.#da.#\n#..**.#\n#######\n\n(trivial)\n#######\n#.....#\n#.....#\n#...**#\n#.#**.#\n#*pda.#\n#..#*.#\n#######\n\n(trivial kinda nice but trivial)\n#######\n##.#..#\n#.....#\n#..s..#\n#daw*.#\n#.#.s.#\n#.p.w*#\n#######\n\n(trivial)\n#######\n#.#...#\n#..**.#\n#..**##\n#**p.*#\n#*.#..#\n#.....#\n#######\n\n(trivial)\n#######\n#..*.##\n#s....#\n#w...*#\n#p..da#\n#...*.#\n#...*.#\n#######\n\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n######\n#....#\n#....#\n#....#\n######\n\n#####\n#...#\n#...#\n#...#\n#####\n\n########\n#......#\n#......#\n#......#\n#......#\n#......#\n#......#\n########\n\n(meh. actually ok to solve but not great?)\n########\n#.#*..*#\n#..***##\n#..s...#\n#.#w...#\n#..p#.##\n#...*.##\n########\n\n(meh)\n########\n#.*..*.#\n#.#.s*.#\n##..ws##\n#...*w.#\n#.p.#..#\n#......#\n########\n\n(trivial)\n########\n##.....#\n#.da...#\n##...###\n##.da.*#\n#sp....#\n#w.#..*#\n########\n\n(trivial)\n########\n#da....#\n#..*#..#\n#...#s.#\n#*#s.w.#\n#.pw.#.#\n#...#..#\n########\n\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n(trivial)\n#########\n#.......#\n#..s....#\n#.*w...##\n#.....###\n#dap.#.##\n#..#..*##\n##.....##\n#########\n\n(trivial)\n#########\n#..#..###\n###.*.*.#\n#..#..*##\n####p#*.#\n#.s....##\n#.w.....#\n#...#..##\n#########\n\n(boring)\n#########\n#..*....#\n#.#*....#\n#..da...#\n###....*#\n#.#p##..#\n#...*..##\n#....##.#\n#########\n\n(simplified a part of this and sent it to the top)\n#########\n#...#..##\n#.da##..#\n##..*...#\n#..*p...#\n#da.#...#\n#.#.#..##\n#....####\n#########\n\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n\n\n#######\n#.....#\n#.#.#.#\n#.....#\n##.#.##\n##...##\n#######\n\n#######\n#.....#\n#.#.#.#\n#.....#\n#.#.#.#\n#.....#\n#######\n\n########\n#.....##\n#.#.#.##\n#......#\n##.#.#.#\n##.....#\n########\n\n#########\n#.......#\n#.#.#.#.#\n#.......#\n#.#.#.#.#\n#.......#\n#########\n\n##########\n#.......##\n#.#.#.#.##\n#........#\n##.#.#.#.#\n##.......#\n##########\n\n#########\n#.......#\n#.#.#.#.#\n#.......#\n#.#.#.#.#\n#.......#\n#.#.#.#.#\n#.......#\n#########\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n########\n#......#\n#......#\n#......#\n#####..#\n....####\n\n\n\n(trivial)\n########\n#...da.#\n#.****.#\n#......#\n#####.p#\n....####\n\n(trivial)\n########\n#*.....#\n#****..#\n#p.*...#\n#####..#\n....####\n\n(trivial)\n########\n#......#\n#.*.*..#\n#.*da*.#\n#####.p#\n....####\n\n(trivial)\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#OOO...#\n#...########\n#####.......\n\n\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n..######\n..#.OOP#\n..#.**.#\n..##.###\n...#.#..\n...#.#..\n####.#..\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\n(hmm. ok? meh)\n..######\n..#...p#\n..#.*..#\n####*###\n#..*.##.\n#.#...#.\n#.*.#.#.\n###...#.\n..#####.\n\n(hmm. not good?)\n...###..\n...#.#..\n####*#..\n#.*..##.\n#.#*..#.\n#..*#.#.\n###..p#.\n..#####.\n\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\n\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\n\n(I kinda like it, but now that I'm such an EXPERT it just doesn't do it for me)\n(want to solve but haven't yet. has the look of an ok final level?)\n######\n##.###\n#...##\n#.**.#\n#**..#\n#p..*#\n#.*.##\n######\n\n\n(meh)\n(can't solve. could be ok though)\n######\n#..###\n#.**##\n#.**.#\n#p.*.#\n#*.#.#\n#....#\n######\n\n\n\n\n\n(trivial)\n(nope not solved but nope)\n#######\n#.#...#\n#.s..*#\n#.w*s.#\n#.#*w.#\n##..*.#\n#.#..p#\n#######\n\n(trivial)\n(nope not solved but nope)\n#######\n#..#*.#\n#.s**.#\n#.w.s.#\n#..*w.#\n#p...##\n#.##.##\n#######\n\n(meh I guess it might be ok but meh)\n(stuck)\n#######\n#..##.#\n#**...#\n#.*.#.#\n#.sp*.#\n##w.#.#\n#...#.#\n#######\n\n\n\n\n(didnae solve)\n######\n#....#\n#.sda#\n#.w..#\n#*p**#\n#...*#\n######\n)\n\n(\nTRANSFORMS\n\n\n[player]->[]\n[crate]->[]\n\n(choose 2 [ player ] -> [ no player ] )\n(choose 2 [ no player ] -> [ wall ])\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 1 option 0.5 right [ no obstacle | no obstacle ] -> [ crate hands_right | crate hands_left]\n+ option 0.5 down [ no obstacle | no obstacle ] -> [ crate hands_down | crate hands_up ]\n+ option 0.5 [ no obstacle | no obstacle] -> [crate| crate]\n\n)\n",[2,2,3,3,0,1,0,3,1,2,2,2,2,2,3,0,0,0],"background wall:0,0,0,0,0,0,\n0,0,0,background:1,1,1,\nbackground crate:2,1,1,0,0,1,\n1,1,1,1,1,0,\n0,background crate hands_down:3,background crate hands_up:4,background player:5,1,1,\n1,0,0,2,3,4,\n0,0,1,0,0,0,\n0,0,0,0,0,0,\n",11,"1645544739914.9763"] - ], - [ - "Pushy-V Pully-H", - ["title Pushy-V Pully-H\nauthor increpare\nhomepage www.increpare.com\nbackground_color darkgreen\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkgray\n\nPlayer\nblue\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nCrate\ngreen gray\n11111\n0...0\n0...0\n0...0\n11111\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nobstacle = player or crate or wall\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\nvertical [ > Player | Crate ] -> [ > Player | > Crate ]\nhorizontal [ < Player | Crate ] -> [ < Player | < Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 11\n\n.########\n##o.....#\n#...*...#\n#*o.o.*.#\n##.p..###\n.######..\n\nmessage level 2 of 11\n(level 1?)\n(soluble)\n#######\n#.....#\n#.O*#.#\n#.@@P.#\n#.....#\n#######\n\nmessage level 3 of 11\n....####.\n#####..##\n#.......#\n#.**.oo.#\n#.**.oo.#\n#...p...#\n#########\n\n\nmessage level 4 of 11\n#########\n#.....#p#\n#.o..*.@#\n#...@...#\n#...##..#\n#########\n\n\nmessage level 5 of 11\n(soluble)\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 6 of 11\n(soluble)\n.#####\n.#...#\n.#.O.#\n.#.@.#\n##.@.#\n#..*.#\n#..P.#\n######\n\nmessage level 7 of 11\n\n(soluble)\n####...\n#..####\n#.....#\n#.O*O.#\n#.*P*.#\n#.O*O.#\n#.....#\n#######\n\nmessage level 8 of 11\n#########\n#.......#\n#..*.*..#\n#.*ooo*.#\n#..opo..#\n#.*ooo*.#\n#..*.*..#\n#.......#\n#########\n\nmessage level 9 of 11\n#######\n#..#..#\n#*.#*.#\n#..#..#\n#..o..#\n##o.*.#\n.#op..#\n.######\n\nmessage level 10 of 11\n(soluble)\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\nmessage level 11 of 11\n########\n#......#\n#.#..#.#\n#..@@..#\n#.*o@..#\n#.#..#.#\n#..p...#\n########\n\nmessage Congratulations! You don't just push the push, you pull the pull!\n\n\n\n(\n\n\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n\n\n#############\n#...........#\n#...........#\n#...........#\n#..***.ooo..#\n#..*p*.o.o..#\n#..***.ooo..#\n#...........#\n#...........#\n#...........#\n#############\n)\n\n(\n#########\n#..o....#\n#...#p..#\n#*.*oo.*#\n#.......#\n#########\n)\n\n( ######### )\n( ##o.....# )\n( #...*...# )\n( #*o.o.*.# )\n( ##.p..#.# )\n( ######### )\n\n\n(\n(soluble)\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n)\n\n\n\n\n\n\n\n(\n\n(soluble)\n########\n#......#\n#.*O*O.#\n#PO*O*.#\n#.*O*O.#\n#......#\n########\n)\n\n(\n\n\n\n(insoluble)\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n(insoluble)\n#######\n#..@..#\n#..P.O#\n##*.###\n.#..#..\n.####..\n\n(insoluble)\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n\n(insoluble)\n#####.\n#...#.\n#O#.##\n#....#\n#O...#\n###.##\n#P**#.\n#...#.\n#####.\n\n\n(insoluble)\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\n(insoluble)\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#OOO...#\n#...########\n#####.......\n\n(insoluble)\n######\n#....#\n#.**.#\n#..*.#\n###..#\n.#O.##\n.#O.#.\n.#O.##\n.#...#\n.#.#.#\n.#.P.#\n.#####\n\n(insoluble)\n..######\n..#.OOP#\n..#.**.#\n..##.###\n...#.#..\n...#.#..\n####.#..\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\n\n\n(insoluble)\n.#####......\n.#...#......\n##.#.#..####\n#....####..#\n#.#......*O#\n#...#####*O#\n#####...#.P#\n........####\n\n\n(insoluble)\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\n\n\n\n\n(insoluble)\n...####\n..##PO#\n.##.*.#\n##..*.#\n#O...##\n######.\n\n(insoluble)\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\n\n(insoluble)\n#####...\n#...#...\n#.#P#...\n#...#...\n#.#*#...\n#...#...\n#.#*####\n#...OOO#\n###*##.#\n..#....#\n..######\n\n\n)\n\n(\n\nTRANSFORMATION\n\n[ player ] -> []\n[ crate ] -> []\n[ target ] -> []\n\nchoose 3 [ no wall ] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player no target ] -> [ target ]\n\n)\n",[0,0,2,2,1,1,0,3,2,3,3,3,3,1,0,3,0,1,1,0,0,1,1,0,1,2,2,1,2,2,1,2,2,2,3,3,0,3,3,2,1,1,0,1,1,0,0,0,3,1,0,0,3,3,3,2,1,2,2,2,3,2,3,0,0,0,0,1,1,2,1,1,0,0,1,3,2,3,0,1,1,1,2,2,2,2,2,0,2,3,3,3,0,1,3,3,2,1,1,0,0,0,2,0,0],"background wall:0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,1,\n1,0,0,1,background target:2,background crate:3,background crate target:4,\n1,1,0,0,3,background player:5,2,\n1,2,1,0,0,1,2,\n3,4,3,1,0,0,1,\n1,1,1,1,1,0,0,\n0,0,0,0,0,0,0,\n",19,"1645544759965.9036"] - ], - [ - "Crates move when you move", - ["title Crates move when you move\nauthor increpare\nhomepage www.increpare.com\n\n(\n\ntools used during creation:\n\nhttps://dekeyser.ch/puzzlescriptmis/\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\nnoaction\nbackground_color darkblue\n========\nOBJECTS\n========\n\nBackground\ndarkblue\n\n\nTarget\ndarkgreen\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkbrown\n\nPlayer\nOrange Orange Orange Orange\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nlightgreen\n00000\n0...0\n0...0\n0...0\n00000\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nobstacle = player or crate or wall\n\n=======\nSOUNDS\n=======\n\ncrate move 25044707\nsfx0 25044707\n\nendlevel 84712900\nstartlevel 16124700\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n======\nRULES\n======\n\n\n[ > Player ] [ Crate ] -> [ > Player ] [ > Crate ]\n\n\n\n[ > crate | no obstacle ] -> [ | > crate ] sfx0\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 10\n\n######\n#....#\n#...##\n#..*.#\n#..o.#\n#.p..#\n#....#\n######\n\n( ###### )\n( #*#..# )\n( #.p..# )\n( #..o.# )\n( #....# )\n( ###### )\n\nmessage Level 2 of 10\n######\n#.*.p#\n#.#.##\n#.o..#\n#.#..#\n######\n\nmessage Level 3 of 10\n..###..\n.##o##.\n##...##\n#*.p.o#\n##...##\n.##*##.\n..###..\n\n\n\nmessage Level 4 of 10\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\nmessage Level 5 of 10\n(kinda hard)\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage Level 6 of 10\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\nmessage Level 7 of 10\n######\n##*.##\n##@###\n##..##\n##..##\n##p.##\n##.###\n##o.##\n##..##\n######\n\n\nmessage Level 8 of 10\n#######\n#o...*#\n#o.p.*#\n#o...*#\n#######\n\nmessage Level 9 of 10\n#####.\n#P..##\n#O**.#\n##...#\n.##..#\n..##O#\n...###\n\nmessage Level 10 of 10\n(POSSIBLE to solve! Good final level?)\n######\n#....#\n#o.#p#\n#.#..#\n#.*.@#\n######\n\nmessage Congratulations! The crates learned from your your example and were all very succesful in their subsequent careers.\n\n(\n######\n#o#@.#\n#....#\n#.##*#\n#..p@#\n######\n\n(I solved this, but not intentionally)\n#######\n#.*...#\n#**...#\n#..p..#\n#...oo#\n#...o.#\n#######\n\n(fpfft no idea. haven't solved yet)\n######\n#..*.#\n#*#.##\n#..o.#\n##...#\n#..#.#\n#op#.#\n######\n\n(unsolved. too hard?)\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n####\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n####\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n)\n(\nTRANSFORMATION\n\n\nchoose 3 [ ] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player no target ] -> [ target ]\n\n)\n",[2,1,0,1,1,2,"undo",1,2,3,3,3,0,2],"background wall:0,0,0,0,0,background:1,0,1,\n1,1,0,1,0,1,background target:2,1,\n0,1,0,1,2,1,0,1,\n0,1,2,background crate:3,0,0,0,1,\n3,background player:4,1,0,0,1,1,1,\n3,0,0,0,0,0,0,0,\n",11,"1645544790426.2693"] - ], - [ - "Resin-Caster", - ["title Resin-Caster\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color darkblue\n\n(\n\ntools used during creation:\n\nhttps://dekeyser.ch/puzzlescriptmis/\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\n========\nOBJECTS\n========\n\nBackground\ndarkblue\n\nWall\n#aa00ff\n.000.\n00000\n00000\n00000\n.000.\n\nPlayer\nOrange Orange Orange Orange\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate1\nred\n.000.\n00000\n00000\n00000\n.000.\n\n\nCrate2\nblue\n.000.\n00000\n00000\n00000\n.000.\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = crate1\n@ = crate2\n* = crate2\ncrate = crate1 or crate2\nobstacle = player or wall or Crate1\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, crate1, crate2\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate1 | crate2 ] -> [ | wall ]\n[ > crate2 | crate1 ] -> [ | wall ]\n\n==============\nWINCONDITIONS\n==============\n\nno crate\n\n=======\nLEVELS\n=======\n\nmessage When the two compounds are combined they set into a hard purple resin.\n\nmessage 1 of 10\n(fine!)\n######\n#....#\n#p@o.#\n#....#\n#@..o#\n######\n\nmessage 2 of 10\n(fine-ish?)\n#########\n#..o.@..#\n#..op@..#\n#########\n\nmessage 3 of 10\n(good hard level 1 or nice level 2)\n######\n#.@..#\n#..@.#\n#oo..#\n#.#.p#\n######\n\nmessage 4 of 10\n(ok? looks nice and has a solution that's not totally trivial but also not exactly something you can deduce without trying out - you won't necessarily know after the fact *why* the solkution is a solution)\n######\n#..o.#\n#.o@.#\n#o@..#\n#.p.@#\n######\n\nmessage 5 of 10\n(fine?)\n..####\n.##.o#\n##...#\n#..#.#\n#.@o.#\n#.p@.#\n######\n\nmessage 6 of 10\n(good intermediate)\n######\n#p...#\n#.o@@#\n#oo..#\n#.#@.#\n######\n\n\nmessage 7 of 10\n(kinda ok?)\n#######\n#.....#\n#...#.#\n#@#o@o#\n#.#.#.#\n#..p..#\n#######\n\nmessage 8 of 10\n(kinda fun?)\n######\n#@o.o#\n#.o.@#\n#@.@o#\n#.p..#\n######\n\n\nmessage 9 of 10\n(actually ok?)\n..####...\n###@.####\n#..@....#\n#.#.o#o.#\n#....#p.#\n#########\n\nmessage 10 of 10\n(had the solution spoiled but it's also fine :] )\n######\n#oo.@#\n#.@@o#\n#o.@.#\n#.p..#\n######\n\nmessage Congratulations! You're an exceptionally very competent resin-caster.\n\n(nice level, but maybe not include? not totally feeling it)\n( ###### )\n( #@.o.# )\n( #o.o.# )\n( #@o@.# )\n( #@..p# )\n( ###### )\n\n(eeeh it's fine but I solved it directly by avoiding doing the obvious thing which is BORING)\n( ###### )\n( #.o.p# )\n( #@@oo# )\n( #....# )\n( #@#..# )\n( ###### )\n\n(too much like other level)\n( ###### )\n( #@o.@# )\n( #...o# )\n( #o@o@# )\n( #p...# )\n( ###### )\n\n(kinda ok? I like the interlacing style. but not the best level of all time)\n( ###### )\n( #..@.# )\n( #o#@.# )\n( #.@..# )\n( #...o# )\n( #.o.p# )\n( ###### )\n\n(\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n####\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n####\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\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.*#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*O.#\n##.*P*.#\n#..O*O.#\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\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\n\n(\nTransformation\n\n[ player ] -> []\n[ crate ] -> []\n\n( choose 2 [ player ] -> [ ] )\n\nchoose 3 [ ] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate1 ]\nchoose 2 [ no obstacle ] -> [ crate2 ]\n\n)\n",[3,0,0,1,2,0,1,1,1,2,2,3,0,1,0,3,3,1,2,2,1,1,1,0,0,3,3,3,3,3],"background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,0,1,\n1,background crate2:2,0,0,0,1,1,0,0,\n0,0,1,1,1,background player:3,1,1,1,\n0,1,1,0,background crate1:4,1,0,1,0,\n0,0,1,0,1,1,1,1,1,\n",18,"1645544805711.4153"] - ], - [ - "pipe puffer", - ["title pipe puffer\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nbackground_color #472f37\n(verbose_logging)\n( debug )\n\n========\nOBJECTS\n========\n\nBackground\n#524740 #5a4f48\n00000\n01110\n01110\n01110\n00000\n\n\n\n\nWall\n#472f37\n\nwall_s\ntransparent transparent #291c21\n00000\n11111\n11111\n11111\n22222\n\n\nwall_n\n#5f454e transparent transparent\n00000\n11111\n11111\n11111\n22222\n\nwall_o\ntransparent transparent #5f454e\n01112\n01112\n01112\n01112\n01112\n\nwall_w\n#291c21 transparent transparent\n01112\n01112\n01112\n01112\n01112\n\nwall_nw\n#472f37\n0....\n.....\n.....\n.....\n.....\n\nwall_so\n#472f37\n.....\n.....\n.....\n.....\n....0\n\nPlayer\ntransparent #a69326 #cdb844 #e3d060 #bfaa38 #000000\n01230\n34233\n22522\n11241\n01230\n\n\nrohr_no e\n#005784 #006ea6 #524740 #acacac #cccccc #656d71\n00010 \n23431\n23540\n22330\n22220\n\nrohr_ns x\n#005784 #006ea6 #524740 #acacac #cccccc #e6e6e6 #656d71\n00010\n23452\n23652\n23452\n00010\n\nrohr_nw q\n#005784 #006ea6 #acacac #cccccc #e6e6e6 #524740 #656d71\n00010\n12345\n03645\n02255\n05555\n\n\nrohr_so c\n#524740 #005784 #e6e6e6 #006ea6 #acacac #cccccc #656d71\n00001\n00223\n04651\n04541\n11131\n\nrohr_sw z\n#005784 #524740 #006ea6 #e6e6e6 #cccccc #acacac #656d71\n01111\n23311\n04631\n05431\n00020\n\nrohr_ow a\n#005784 #524740 #006ea6 #e6e6e6 #cccccc #acacac #656d71\n01110\n23332\n04640\n05550\n01110\n\noutlet_n \n#005784 #006ea6 transparent #e6e6e6 #cccccc #acacac #656d71\n01000 \n23452\n22622\n22222\n22222\n\noutlet_s \ntransparent #cccccc #acacac #e6e6e6 #005784 #006ea6 #656d71\n00000\n00000\n00600\n02130\n44454\n\noutlet_o \ntransparent #005784 #e6e6e6 #006ea6 #cccccc #acacac #656d71\n00001\n00023\n00641\n00051\n00001\n\noutlet_w \n#005784 transparent #acacac #cccccc #006ea6 #e6e6e6 #656d71\n01111\n02111\n03611\n45111\n01111\n\ninlet\nblue\n.....\n.....\n..0..\n.....\n.....\n\npust_n\n#cccccc\n.000.\n0...0\n..0..\n..0..\n.....\n\n\npust_s\n#cccccc\n.....\n..0..\n..0..\n0...0\n.000.\n\npust_o\n#cccccc\n...0.\n....0\n.00.0\n....0\n...0.\n\npust_w\n#cccccc\n.0...\n0....\n0.00.\n0....\n.0...\n\n\n\nflow\nblue\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\nwall_überlagung = wall_s or wall_n or wall_o or wall_w or wall_nw or wall_so\n\nrohr = rohr_no or rohr_ns or rohr_nw or rohr_so or rohr_sw or rohr_ow\noutlet = outlet_n or outlet_s or outlet_o or outlet_w\n\nöffnung_n = rohr_no or rohr_ns or rohr_nw or outlet_n\nöffnung_s = rohr_ns or rohr_sw or rohr_so or outlet_s\nöffnung_o = rohr_no or rohr_so or rohr_ow or outlet_o\nöffnung_w = rohr_nw or rohr_sw or rohr_ow or outlet_w\n\nwall_thing = wall or outlet \n\nrohr_or_öffnung = rohr or outlet\n\n. = Background\n# = Wall\nP = Player\n\n1 = outlet_n and wall\n2 = outlet_s and wall\n3 = outlet_o and wall\n4 = outlet_w and wall\n\n5 = outlet_n and inlet and wall\n6 = outlet_s and inlet and wall\n7 = outlet_o and inlet and wall\n8 = outlet_w and inlet and wall\n\npust = pust_n or pust_s or pust_o or pust_w\n\nobstacle = wall_thing or rohr or player\n\nrohr_or_player = rohr or player\n\n=======\nSOUNDS\n=======\nsfx0 39858907 (pusten)\nsfx1 96276907 (rohrdurchpusten)\nrohr move 73985107 (rohrbewegen)\nstartlevel 38142502\nendlevel 45497300\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, rohr\nwall_s\nwall_n\nwall_o\nwall_w\nwall_nw\nwall_so\noutlet\ninlet\nflow\npust_n\npust_s\npust_o\npust_w\n\n======\nRULES\n======\n\nup [ wall | no wall_thing ] -> [ wall wall_n | ]\ndown [ wall | no wall_thing ] -> [ wall wall_s | ]\nleft [ wall | no wall_thing ] -> [ wall wall_w | ]\nright [ wall | no wall_thing ] -> [ wall wall_o | ]\n\n\n[ wall_s wall_o ] -> [ wall_s wall_o wall_so ]\n[ wall_n wall_w ] -> [ wall_n wall_w wall_nw ]\n\n[ > player | obstacle ] -> cancel\n[pust]->[]\n\nright [ | action player | ] -> [ pust_w | action player | pust_o ] again sfx0\nup [ | action player | ] -> [ pust_s | player | pust_n ] again\n\n\nright [ rohr_so pust_n | ] -> [ rohr_so | pust_o ] sfx1\n+ down [ rohr_so pust_w | ] -> [ rohr_so | pust_s ] sfx1\n\n+ up [ rohr_ns pust_n | ] -> [ rohr_ns | pust_n ] sfx1\n+ down [ rohr_ns pust_s | ] -> [ rohr_ns | pust_s ] sfx1\n\n+ left [ rohr_sw pust_n | ] -> [ rohr_sw | pust_w ] sfx1\n+ down [ rohr_sw pust_o | ] -> [ rohr_sw | pust_s ] sfx1\n\n+ right [ rohr_ow pust_o | ] -> [ rohr_ow | pust_o ] sfx1\n+ left [ rohr_ow pust_w | ] -> [ rohr_ow | pust_w ] sfx1\n\n+ right [ rohr_no pust_s | ] -> [ rohr_no | pust_o ] sfx1\n+ up [ rohr_no pust_w | ] -> [ rohr_no | pust_n ] sfx1\n\n+ left [ rohr_nw pust_s | ] -> [ rohr_nw | pust_w ] sfx1\n+ up [ rohr_nw pust_o | ] -> [ rohr_nw | pust_n ] sfx1\n\n[ pust_n rohr ] -> [ pust_n up rohr ]\n[ pust_s rohr ] -> [ pust_s down rohr ]\n[ pust_o rohr ] -> [ pust_o right rohr ]\n[ pust_w rohr ] -> [ pust_w left rohr ]\n\n[pust outlet ] -> [ outlet ]\n\n[ > rohr_or_player | rohr_or_player ] -> [ > rohr_or_player | > rohr_or_player ]\n\n( [ > Player | Crate ] -> [ > Player | > Crate ] )\n\nlate [flow]->[]\n\nlate [ inlet ] -> [ inlet flow ]\n\nlate up [ öffnung_n flow | öffnung_s no flow ] -> [ öffnung_n flow | öffnung_s flow ]\n+ late down [ öffnung_s flow | öffnung_n no flow ] -> [ öffnung_s flow | öffnung_n flow ]\n+ late right [ öffnung_o flow | öffnung_w no flow ] -> [ öffnung_o flow | öffnung_w flow ]\n+ late left [ öffnung_w flow | öffnung_o no flow ] -> [ öffnung_w flow | öffnung_o flow ]\n\n==============\nWINCONDITIONS\n==============\n\nall outlet on flow\n\n=======\nLEVELS\n=======\n\n\nmessage Oh no the factory is falling apart! Can the pipe puffer put it back together?\n\nmessage Level 1 of 8 \n\n(kinda like. fine. best of that kind of level?)\n####6##\n#.....#\n#.....4\n#.xea.#\n##....#\n##..p.#\n#######\n\nmessage Level 2 of 8\n(I like this)\n#######\n#.....#\n#.c.8.#\n#.xa..#\n#.x...#\n#.1.p.#\n#.....#\n#######\n\n( (jokey? not hard? intermediate?) )\n( ########### )\n( #.........# )\n( #...c.z...# )\n( #...xax...# )\n( #.caqxeaz.# )\n( #..x...x..# )\n( #.x.....x.# )\n( #.x.a.a.x.# )\n( #.x.....x.# )\n( #.x..p..x.# )\n( ##5#####1## )\n\n\nmessage Level 3 of 8\n\n###########\n#.....2####\n#..caaq6###\n#..x...x..#\n#..x...x..#\n#..x.a.x..#\n#..ea.aq..#\n#.........#\n#....p....#\n###########\n\n\nmessage Level 4 of 8\n#########\n#.......#\n#...c8..#\n#.6.e4..#\n#..x....#\n#.1.a...#\n#.x..cz.#\n#..p.15.#\n#.......#\n#########\n\n\n\n\n\nmessage Level 5 of 8\n(intermediate. multiple solutions. doesn't mandate the solution I like the most tho >:[ )\n###########\n#.........#\n#.p..7aaaz#\n#..c....x.#\n#........x#\n#........q#\n########1##\n\nmessage Level 6 of 8\n(tricky)\n#########....\n#.......#....\n#......c8####\n#......x#...#\n#......eaaz.#\n#..p.x......#\n#.........1.#\n#......######\n#......#.....\n########.....\n\nmessage Level 7 of 8\n( (or maybe not that hard?) hard)\n########\n#......#\n7aaaaaz#\n#....x.#\n##3...q#\n#.....##\n#.p.cz.#\n#..aqe.#\n#......#\n########\n\n\n\n\nmessage Level 8 of 8\n(not great but ok)\n########6##\n#.....#.x.#\n#.......x.#\n#.....caq.#\n#..a..eaz.#\n#...x..x..#\n#.....a.x.#\n#..p...cq.#\n#......x#.#\n#......x#.#\n#######1###\n\nmessage Thank you! The factory is back up and running. You are verily the premier pipe puffer!\n\n( (not sure if I want this or not) )\n( (fine, solvable wiht brain-usage. doesn't use puffing though sadface) )\n( ###6### )\n( #.....# )\n( #.#..a4 )\n( #...x.# )\n( #.ea..# )\n( ##p...# )\n( ####### )\n\n( (ok silly last level? ) )\n( ############## )\n( #............# )\n( #....6..2....# )\n( #...cq..ez...# )\n( #...ez...q...# )\n( #...cq..ez...# )\n( #...ez..cq...# )\n( #...cq..ez...# )\n( #...ez..cq...# )\n( #...cq..ez...# )\n( #...ez..cq...# )\n( #....1..5....# )\n( #.....p......# )\n( ############## )\n\n\n( ###6#### )\n( #......# )\n( #..a..a4 )\n( #....x.# )\n( #..ea..# )\n( ###p...# )\n( ######## )\n\n( (hard? not yet solved unsolvable lol) )\n( ###6### )\n( #.....# )\n( ##.x.a4 )\n( #.....# )\n( #.ea#.# )\n( #.p...# )\n( ####### )\n\n\n\n(\n(simple. pleasing)\n##62###\n##.x..#\n#.e...#\n#..q..#\n##....#\n.#p.###\n.####..\n\n(similarly simple/pleasing)\n###6##\n#....4\n##.a.#\n#.e..#\n#p...#\n######\n\n(whatever)\n###6##\n#..x.4\n#.ec.#\n#..q.#\n#p...#\n######\n\n(slightly harder)\n###6##\n#..x.4\n#.cq.#\n#.e..#\n#...p#\n######\n\n(fineish)\n###6##\n###.##\n#..a.4\n#..x.#\n#.e..#\n#..p.#\n######\n\n(i remember how to do this one, which is good, but it's alos not great)\n###62###\n#......#\n#..x#..#\n#...q..#\n#x.e...#\n#....p.#\n########\n\n\n( ###6## )\n( #..ea4 )\n( #....# )\n( #.p..# )\n( #....# )\n( ###### )\n\n( ###6## )\n( #..xc4 )\n( #..eq# )\n( #.p..# )\n( #....# )\n( ###### )\n\n\n( ##62## )\n( #.eq.# )\n( #....# )\n( #.p..# )\n( #....# )\n( ###### )\n\n( ##62### )\n( #.eq..# )\n( #.....# )\n( #.p...# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( ###62### )\n( #..xx..# )\n( #..eq..# )\n( #......# )\n( #......# )\n( #....p.# )\n( ######## )\n\n\n##62###\n#.xx..#\n#.eq..#\n#.p...#\n#.....#\n#.....#\n#######\n\n####6##\n#...ea4\n#.....#\n#.....#\n#.p...#\n#.....#\n#######\n\n####6##\n#...xc4\n#...eq#\n#.....#\n#.p...#\n#.....#\n#######\n\n###6###\n#..x..#\n#..eaa4\n#.....#\n#.p...#\n#.....#\n#######\n\n###62###\n#..eq..#\n#......#\n#.p....#\n#......#\n#......#\n########\n\n########\n#......#\n#......#\n#..62..#\n#..eq..#\n#.p....#\n########\n\n####6##\n#...ea4\n#.....#\n#.....#\n#.p...#\n#.....#\n#######\n\n#######\n#.....#\n#.cz..#\n#.x5p.#\n#.x2..#\n#.eq..#\n#.....#\n#######\n\n###6###\n#..ez.#\n#...ea4\n#.....#\n#.p...#\n#.....#\n#######\n\n\n\n(trivial)\n####6##\n#.....#\n#..x..4\n#..ea.#\n#.p...#\n#.....#\n#######\n\n\n####6##\n#.....#\n#..x..4\n#..ea.#\n#.p...#\n#.....#\n#######\n\n\n####6##\n#.....#\n#.c.q.#\n#p.a..4\n#.x.z.#\n#.....#\n#######\n\n##6##\n#...#\n#.p.#\n#...4\n#####\n\n.....\n.....\n.....\n.....\n.....\n\n\n( #########.... )\n( #.......6#### )\n( #.......x...# )\n( #...c.a.eaaz# )\n( #....p......# )\n( #...a.x.caaq# )\n( #.......x...# )\n( #.......1#### )\n( #########.... )\n\n\n( #########...... )\n( #.......6###### )\n( #.......x.....# )\n( #...c.a.eaaaaz# )\n( #....p........# )\n( #...a.x.caaaaq# )\n( #.......x.....# )\n( #.......1###### )\n( #########...... )\n\n\n( #########....... )\n( #.......6####### )\n( #.......x......# )\n( #..c.a..eaaaaz.# )\n( #...p..........# )\n( #..a.x..caaaaq.# )\n( #.......x......# )\n( #.......1####### )\n( #########....... )\n\n( #########....... )\n( #.......#....... )\n( #.......6####### )\n( #.......x......# )\n( #..c.a..eaaaaz.# )\n( #...p..........# )\n( #..a.x..caaaaq.# )\n( #.......x......# )\n( #.......1####### )\n( #.......#....... )\n( #########....... )\n\n( ################ )\n( #..............# )\n( #.......c8###### )\n( #.......x......# )\n( #..c.z..eaaaaz.# )\n( #...p..........# )\n( #..a.x..caaaaq.# )\n( #.......x......# )\n( #.......e4###### )\n( #..............# )\n( ################ )\n\n( ################ )\n( #..............# )\n( #.......c8###### )\n( #..c.z..x......# )\n( #...p...eaaaaz.# )\n( #..a.x.........# )\n( #.......caaaaq.# )\n( #..e.q..x......# )\n( #.......e4###### )\n( #..............# )\n( ################ )\n\n)\n\n(\ntransformation\n\n[player]->[]\n\nchoose 15 [ rohr ] [ no obstacle ] -> [ ] [ rohr ] \n(choose 1 [ player ] [ no obstacle ] -> [ ] [ player ])\n(choose 5 [ outlet ] [ wall ] -> [ wall ] [ outlet ]\nchoose 1 [ flow no outlet ] [ outlet no flow ] -> [ ] [ outlet flow ])\n\n\nchoose 1 [ no obstacle ] -> [ player ]\n\nchoose 10 option 0.5 [ no obstacle ] -> [ wall ]\n+ option 0.5 [] -> [ ]\n)\n\n\n\n",[0,0,2,1,0,4,3,3,0,0,0,1,1,1,3,4,0,1,1,2,4,2,4,3,2,3,2,2,1,1,0,4,4,2,3,3,3,0,3,0,0,4,2,1,1],"background wall:0,background wall wall_o:1,1,1,1,1,1,\n0,background wall wall_s:2,background:3,3,3,background rohr_ns:4,3,\n3,background wall wall_n:5,2,3,3,4,3,\nbackground outlet_n wall wall_n wall_nw wall_o wall_s wall_so wall_w:6,3,5,2,3,background flow rohr_so:7,3,\nbackground player:8,3,3,5,2,3,background flow inlet outlet_w wall wall_n wall_nw wall_o wall_s wall_so wall_w:9,\nbackground rohr_ow:10,3,3,3,5,2,3,\n3,3,3,3,3,5,0,\nbackground wall wall_w:11,11,11,11,11,11,0,\n",4,"1645544832464.3308"] - ], - [ - "crate guardian", - ["title crate guardian\nauthor increpare\nhomepage www.increpare.com\nrun_rules_on_level_start\nbackground_color darkgreen\n\n(\n\nthanks to youatexample for some title advice\n\nother possible titles:\nīdōlum cistae sānctum\ngreat idol of the crates\ncrate idol\n\n\n)\n( verbose_logging )\n( debug )\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\n\n( Target1 )\n( #4b1116 )\n( ..... )\n( .000. )\n( .0.0. )\n( .000. )\n( ..... )\n\n\nTarget\ndarkblue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\n#1b2632\n\nPlayer\n#c8727a\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nCrate\n#746cc2\n00000\n0...0\n0...0\n0...0\n00000\n\n\nstatue2\nblue \n00.00\n.000.\n.000.\n00.00\n.0.0.\n\n\naura2\n#383185\n\n\n=======\nLEGEND\n=======\n\n\nstatue = statue2\npushable = crate or statue\npusher = crate or statue or player\naura = aura2\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nq = Target\n\n2 = statue2\n3 = crate and target\n4 = crate and target\n7 = statue2 and target\n8 = statue2 and target\n\nobstacle = crate or statue or wall or player\n0 = wall and aura2\n9 = aura2\na = statue2 and aura2\ne = target and aura2\nf = target and crate and aura2\n\nplayer_or_statue1_or_wall = player or wall\ncrate_or_wall = crate or wall\nj = player and aura2\nm = target and statue2 and aura2\n\n=======\nSOUNDS\n=======\n\nstatue2 move 95968304\nCrate MOVE 53883107\nendlevel 25071300\nstartlevel 46394106\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\naura2\nTarget\nPlayer, Wall, Crate, statue\n\n======\nRULES\n======\n\n[ > pusher | pushable ] -> [ > pusher | > pushable ]\n[ > pushable | wall ] -> cancel\n\nlate [ aura ] -> [ ]\n\nlate right [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\nlate down [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\n\nlate [ player_or_statue1_or_wall aura2 ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nall crate on target\n\n=======\nLEVELS\n=======\n\n\n\nmessage Level 1 of 6\n(ok level 1)\n.#######.\n.#.....#.\n.#..p..#.\n.#.....#.\n.#.***.#.\n.#.999.#.\n##.9a9.##\n#..999..#\n#..ooo..#\n#.......#\n##..#..##\n.#.....#.\n.#######.\n\nmessage Level 2 of 6\n(I dunno?)\n#######\n#.....#\n#..3..#\n#.9e9.#\n#.9a9.#\n#.999.#\n#..*..#\n#.....#\n#..p..#\n#.....#\n#######\n\nmessage Level 3 of 6\n.#######.\n.#.p...#.\n.#.***.#.\n##.999.##\n#..eme..#\n#..999..#\n#...#...#\n###...###\n..#####..\n\n\nmessage Level 4 of 6\n(OK)\n##########\n#........#\n#.*999...#\n#..9a9.o.#\n#.p9e90000\n#...*.0...\n#.....0...\n#######...\n\n\nmessage Level 5 of 6\n(OK)\n######....\n#....#....\n#....##...\n#ooo..##..\n#......##.\n##......##\n.##..999.#\n..##.9a9.#\n...##999.#\n...#.....#\n...#.***.#\n...#.....#\n...#..p..#\n...#.....#\n...#######\n\nmessage Level 6 of 6\n(ok final level! I used my brain and solved it)\n#########\n#...p...#\n#..o.o..#\n#.o***o.#\n#..*a*..#\n#.o***o.#\n#..o.o..#\n#.......#\n#########\n\nmessage Congratulations. You learned how to work with the guardian of the crates. She still keeps you at a distance, but you have earned her respect.\n\n( 00000000000 )\n( 0.........0 )\n( 0....p....0 )\n( 0...o.o...0 )\n( 0..o***o..0 )\n( 0...*a*...0 )\n( 0..o***o..0 )\n( 0...o.o...0 )\n( 0.........0 )\n( 0.........0 )\n( 00000000000 )\n\n( ####### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n\n( ######## )\n( #......# )\n( #......# )\n( #......# )\n( #..p...# )\n( #.pp...# )\n( #ppp...# )\n( ######## )\n\n(\n\nTransformations\n\nchoose 4 [] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ statue1 ]\nchoose 1 [ no obstacle ] -> [ statue2 ]\n\n\nright [ | statue1 | ] -> [ aura1 | aura1 statue1 | aura1 ]\nright [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\ndown [ no aura1 | aura1 | no aura1 ] -> [ aura1 | aura1 | aura1 ]\ndown [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\nchoose 1 [ no aura2 no obstacle ] -> [ player ]\n\nchoose 2 [no aura1 no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player ] -> [ target ]\n\n\nalt transform\n\n\nchoose 11 [ player ] -> [ no player ]\n\nchoose 4[ no player ] -> [ wall aura12 ]\n(choose 1 [ no wall | no obstacle | no wall ] -> [ | statue1| ]\nright [ | statue1 | ] -> [ aura1 | aura1 statue1 | aura1 ]\ndown [ no aura1 | aura1 | no aura1 ] -> [ aura1 | aura1 | aura1 ])\n\nchoose 1 [ no wall no aura1 no player | no obstacle no aura1 no player | no wall no aura1 no player ] -> [ |statue2| ]\nright [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\ndown [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\n(choose 1 [ no aura2 no obstacle ] -> [ player ])\n\nchoose 3 [no aura1 no obstacle ] -> [ crate ]\nchoose 3 [ no wall no player ] -> [ target ]\n\n[aura12 wall aura1] ->[aura1]\n[aura12 wall aura2] ->[aura2]\n\n\n==========\n\nchoose 5 [ player ] -> [ no player ]\n\nchoose 4[ no player ] -> [ wall ]\n\nchoose 1 [ no wall no player | no obstacle no player | no wall no player ] -> [ |statue2| ]\nright [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\ndown [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\n(choose 1 [ no aura2 no obstacle ] -> [ player ])\n\nchoose 3 [ no obstacle ] -> [ crate ]\nchoose 3 [ no wall no player ] -> [ target ]\n\n)\n\n",[2,2,3,3,2,2,1,2,2,1,1,0,2,3,3,0,1,1,2,1,3,0,1,3,0,0,0,1,2,2,3,2,1,2,1,1,0,0,2,1,1,1,3,0,0,0,1,0,0,0,0,3,3,2],"background wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,0,\n0,1,1,aura2 background target:2,aura2 background crate:3,2,1,1,0,\n0,1,background player target:4,3,aura2 background statue2:5,3,background target:6,1,0,\n0,background crate:7,1,aura2 background:8,3,3,7,1,0,\n0,1,6,1,1,1,6,1,0,\n0,1,1,6,1,6,1,1,0,\n0,1,1,7,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n",11,"1645544889350.864"] - ], - [ - "Don't let your goals slip away", - ["title Don't let your goals slip away\nauthor increpare [riff on david skinner's levels]\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\nbackground_color green\n\n\ncolor_palette 2\n========\nOBJECTS\n========\n\nBackground\nGREEN green\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nblack\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nDARKBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nlightgray lightgray lightgray lightgray\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange\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\nobstacle = crate or wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 78774307\ntarget move 81495507\nendlevel 52446100\nstartgame 73236703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n( [ > player | wall ] -> cancel )\n[ > player | crate | obstacle ] -> cancel\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > player | target ] -> [ > player | > target ] \n[ > target | target ] -> [ > target | > target ]\n[ > target | wall ] -> [ target | wall ]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 8\n\n(funny therefore good)\n####..\n#o*#..\n#..###\n#....#\n#.o*.#\n#.p###\n####..\n\n(meh)\n( ####.. )\n( #.o#.. )\n( #..### )\n( #o...# )\n( #*.*.# )\n( #.p### )\n( ####.. )\n\n\nmessage level 2 of 8\n\n\n(p. good!)\n..####...\n###..####\n#....*o.#\n#.#..#.o#\n#..*.#p.#\n#########\n\n( (Easy but funny) )\n( ###### )\n( #.*..# )\n( #.#.*# )\n( #....# )\n( #p*o.# )\n( #.oo.# )\n( ###### )\n\n\nmessage level 3 of 8\n\n(not bad)\n######\n##o..#\n#.#oo#\n#.*..#\n#.*..#\n#p*..#\n######\n\nmessage level 4 of 8\n\n########\n#...*..#\n#.o#.@p#\n#..*...#\n#####.o#\n....####\n\nmessage level 5 of 8\n\n\n\n(decent!)\n#####.\n#.*.##\n#.o.p#\n##.o.#\n.##.*#\n..##.#\n...###\n\nmessage level 6 of 8\n\n(fine right?)\n......###.\n#######o##\n#...*o...#\n#.#.#.#.##\n#.p.*...#.\n#########.\n\nmessage level 7 of 8\n(no idea. damnit spoiled but also ok.)\n####..\n#..#..\n#.*###\n#..*p#\n#..o.#\n#o.###\n####..\n\n\n\nmessage level 8 of 8\n(Tricky but also decent? involves fun manipulations)\n#######\n#..#..#\n#.o*o.#\n#.*p*##\n#.o*o.#\n#..#..#\n#######\n\n\nmessage Congratulations! You didn't let your goals run away from you.\n\n(transform\n\n[player]->[]\n[target]->[]\n[crate]->[]\n\nchoose 2 [] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player ] -> [ target ] \n\n)\n\n",[0,0,"undo","undo",1,0,0,3,3,3,2,1,1,0,0,1,0,0,"restart",0,0,0,2,3,3,2,1,1,2,1,0,0,0,0,0,2,0,1,1,1,3,3,3,"undo","undo",3,3,1,1,1,2,3,0,1,1,"restart",0,0,1,"restart",3,0,0,1,1,1,1,"undo",0,1,2,2,1,2,2,1,2,2,3,3,0,2,1,1,0,0,3,3,3,3,3,1,1],"background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,0,1,\n1,0,0,0,0,1,1,0,background player:2,\n0,background crate:3,1,1,1,0,1,1,1,\n0,1,background target:4,0,0,1,0,1,background crate target:5,\n0,0,1,0,1,1,1,1,1,\n",3,"1645544970753.6125"] - ], - [ - "Eyeball-watching flowers bloom", - ["title Eyeball-watching flowers bloom\nauthor increpare\nhomepage www.increpare.com\n\n\n(thanks to bluemelon555 for title suggestions)\n\nbackground_color #094118\ntext_color #f7e26b\nrun_rules_on_level_start\n\nverbose_logging\n\n(debug)\n\n========\nOBJECTS\n========\n\nBackground\n#0f5321 #44891a\n00000\n01000\n01010\n00010\n00000\n\n\n\n\nWall_inactivated\ntransparent #44891a #a3ce27\n01110\n12121\n11211\n12121\n01110\n\n\n\nwall_activated =\ntransparent #e06f8b #a3ce27 #f7e26b\n01120\n21111\n11311\n11112\n02110\n\nwall_burnt\ntransparent #430006 #000000\n01210\n22222\n21221\n12222\n02210\n\n\nplayer_up\nwhite yellow red black\n10201\n02320\n00200\n00000\n.000.\n\n\nplayer_down\nwhite yellow red black\n.000.\n00000\n00200\n02320\n10201\n\n\nplayer_left\nwhite yellow red black\n1000.\n02000\n23200\n02000\n1000.\n\n\nplayer_right\nwhite yellow red black\n.0001\n00020\n00232\n00020\n.0001\n\n\nCrate\ntransparent #9d9d9d #bfbfbf #737373\n00120\n01112\n31112\n33111\n03330\n\n\nstrahlen\nyellow\n\nstrahlen_top\nyellow\n00000\n00000\n.....\n.....\n.....\n\nstrahlen_bottom\nyellow\n.....\n.....\n.....\n00000\n00000\n\nstrahlen_left\nyellow\n00...\n00...\n00...\n00...\n00...\n\nstrahlen_right\nyellow\n...00\n...00\n...00\n...00\n...00\n\n\nburnout\n#0f5321 #430006 #000000\n01210\n22222\n21221\n12222\n02210\n\n\n=======\nLEGEND\n=======\n\nplayer = player_up or player_down or player_left or player_right\nwall = Wall_inactivated or wall_activated\n. = Background\n# = Wall_inactivated\nstrahlen_all = strahlen or strahlen_top or strahlen_bottom or strahlen_left or strahlen_right\n\nP = Player_up\nq = player_down\nr = player_left\ns = player_right\n\n* = crate\no = background\n@ = background\n\nobstacle = crate or wall or player\nstrahlen_or_player = strahlen or player\n=======\nSOUNDS\n=======\n\nCrate MOVE 21697107\nendlevel 23649709\nstartlevel 40644309\nstartgame 98216309\n\nsfx0 94788500 (Blume)\n(58036508)\nsfx1 78837102 (burn)\n\nsfx2 94214904 (deadend)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nstrahlen_all\nPlayer, Wall, Crate, burnout, wall_burnt\n\n======\nRULES\n======\n\nup [ > player_up | wall_activated ] -> cancel \ndown [ > Player_down | wall_activated ] -> cancel \nleft [ > Player_left | wall_activated ] -> cancel \nright [ > Player_right | wall_activated ] -> cancel \n\n[wall_burnt] -> cancel sfx2\n\nup [ > Player | Crate | no obstacle ] -> [ | Player_up | Crate ]\ndown [ > Player | Crate | no obstacle ] -> [ | Player_down | Crate ]\nleft [ > Player | Crate | no obstacle ] -> [ | Player_left | Crate ]\nright [ > Player | Crate | no obstacle ] -> [ | Player_right | Crate ]\n\nup [ > Player | no obstacle ] -> [ | Player_up ]\ndown [ > Player | no obstacle ] -> [ | Player_down ]\nleft [ > Player | no obstacle ] -> [ | player_left ]\nright [ > Player | no obstacle ] -> [ | player_right ]\n\n[ up player ] -> [ player_up ]\n[ down player ] -> [ player_down ]\n[ left player ] -> [ player_left ]\n[ right player ] -> [ player_right ]\n\n[strahlen_all]->[]\nup [ player_up | no obstacle ] -> [ player_up | strahlen ]\ndown [ player_down | no obstacle ] -> [ player_down | strahlen ]\nleft [ player_left | no obstacle ] -> [ player_left | strahlen ]\nright [ player_right | no obstacle ] -> [ player_right | strahlen ]\n\n[ strahlen_or_player | strahlen | no strahlen no obstacle ]-> [ strahlen_or_player | strahlen | strahlen ]\n\n[ strahlen_or_player | strahlen | wall_activated ] -> [ strahlen_or_player | strahlen | wall_burnt ] sfx1\n[ strahlen_or_player | strahlen | Wall_inactivated ] -> [ strahlen_or_player | strahlen | wall_activated ] sfx0\n\n\nup [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_bottom ]\ndown [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_top ]\nleft [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_right ]\nright [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_left ]\n\n\nup [ player_up | no strahlen ]-> [ player_up| strahlen_bottom ]\ndown [ player_down | no strahlen ]-> [ player_down | strahlen_top]\nleft [ player_left | no strahlen ]-> [ player_left | strahlen_right ]\nright [ player_right | no strahlen ]-> [ player_right | strahlen_left ]\n\nup [ player_up | Wall_activated ] -> [ player_up | wall_burnt ] sfx1\nup [ player_up | Wall_inactivated ] -> [ player_up | wall_activated ] sfx0\ndown [ player_down | Wall_activated ] -> [ player_down | wall_burnt ] sfx1\ndown [ player_down | Wall_inactivated ] -> [ player_down | wall_activated ] sfx0\nleft [ player_left | Wall_activated ] -> [ player_left | wall_burnt ] sfx1\nleft [ player_left | Wall_inactivated ] -> [ player_left | wall_activated ] sfx0\nright [ player_right | Wall_activated ] -> [ player_right | wall_burnt ] sfx1\nright [ player_right | Wall_inactivated ] -> [ player_right | wall_activated ] sfx0\n\n==============\nWINCONDITIONS\n==============\n\nno Wall_inactivated\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 3\n\n.###.\n#...#\n#.q.#\n.###.\n\nmessage level 2 of 3\n\n\n(ok!)\n.####.\n#....#\n#.*..#\n#.p*.#\n#....#\n.####.\n\nmessage level 3 of 3\n\n(decent)\n.#####.\n#.....#\n#..*..#\n#.*p*.#\n#..*..#\n#.....#\n.#####.\n\nmessage Congratulations. The gardens look amazing.\n\n\n(\n(meh)\n.###.\n#...#\n#...#\n#.q.#\n.###.\n)\n(\n(meh)\n.####.\n#....#\n#.p..#\n#..*.#\n#....#\n.####.\n\n.#####.\n#.....#\n#.....#\n#..#..#\n#...*.#\n#...p.#\n.#####.\n\n(maybe ok? kinda cheated to find the solution but i could've figured it out!)\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#....q#\n.####=.\n\n(i could not solve this and I think that it's bad)\n.###.\n#...#\n#...#\n#...#\n#...#\n#.*.#\n#.p.#\n.###.\n\n\n.####.\n#....#\n#....#\n#....#\n#....#\n.####.\n\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n.#####.\n\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n.#####.\n\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n.#####.\n\n.######.\n#......#\n#......#\n#......#\n#......#\n#......#\n#......#\n#......#\n.######.\n)\n\n(Transform\n\n[player]->[]\n[crate]->[]\n\n\nchoose 2 [ ] -> [ wall_inactivated ]\n\nchoose 1 [ no obstacle ] -> [ player_up ]\n+ [ no obstacle ] -> [ player_down ]\n+ [ no obstacle ] -> [ player_left ] \n+ [ no obstacle ] -> [ player_right ]\n\nchoose 1 [ no obstacle ] -> [ crate ]\n\n[strahlen]->[]\nup [ player_up | no obstacle ] -> [ player_up | strahlen ]\ndown [ player_down | no obstacle ] -> [ player_down | strahlen ]\nleft [ player_left | no obstacle ] -> [ player_left | strahlen ]\nright [ player_right | no obstacle ] -> [ player_right | strahlen ]\n\n[ strahlen_or_player | strahlen | no strahlen no obstacle ]-> [ strahlen_or_player | strahlen | strahlen ]\n[ strahlen_or_player | strahlen | Wall_inactivated ] -> [ strahlen_or_player | strahlen | wall_activated ]\n\nup [ player_up | Wall_activated ] -> cancel\nup [ player_up | Wall_inactivated ] -> [ player_up | wall_activated ]\ndown [ player_down | Wall_inactivated ] -> [ player_down | wall_activated ]\nleft [ player_left | Wall_inactivated ] -> [ player_left | wall_activated ]\nright [ player_right | Wall_inactivated ] -> [ player_right | wall_activated ]\n\n\n)\n\n",[1,2,3,3,0,"undo",0,0,3,2,3,2,1,1,0,0,1,0,1,2,3],"background:0,background wall_activated:1,1,1,background wall_inactivated:2,0,\n1,0,0,0,background crate:3,1,\n2,3,background player_right strahlen_right:4,0,0,2,\n2,0,background strahlen:5,0,0,2,\n2,0,5,0,0,1,\n0,2,background strahlen_left wall_burnt:6,1,1,0,\n",3,"1645545001785.496"] - ], - [ - "Subway upholstry snot smearing championship", - ["title Subway upholstry snot smearing championship\nauthor increpare\nhomepage www.increpare.com\ncolor_palette 1\n\nrun_rules_on_level_start\n\nbackground_color #131316\ntext_color #6abe30\n========\nOBJECTS\n========\n\nBackground\n#5b6ee1 #639bff #ac3232\n00011\n10101\n12101\n20201\n10200\n\ntilled \n#6abe30 #5b6ee1\n01110\n01001\n10101\n10110\n01011\n\n\n\nWall\n#e7dcc0 #b478cb #e1ae5b #d77bba #76428a\n00000\n01220\n01330\n04330\n00000\n\nwallalt\n#e7dcc0 #e1ae5b #e15b5b #ab7722\n00000\n01120\n01120\n03330\n00000\n\n\n\nwallt\n#fdefd4 #e7dcc0 #42b7f0 #65dadf #54cf6f\n00000\n11111\n12231\n14231\n11111\n\nwallb\n#e7dcc0 #e96ff2 #780d80 #e442f0 #c2bb91\n00000\n01120\n02330\n00000\n44444\n\nwalltb\n#fdefd4 #e7dcc0 #6c1710 #ab1d11 #c2bb91\n00000\n11111\n12331\n11111\n44444\n\nwalltbalt\n#fdefd4 #e7dcc0 #fbf236 #fba736 #c2bb91\n00000\n11111\n12231\n11111\n44444\n\n\nPlayer\n#5b6ee1 #524b24 #eec39a #3f3f74 #000000\n01110\n02220\n23332\n03030\n04040\n\n\nCrate\ntransparent #99e550 #6abe30\n01110\n12221\n12221\n12221\n01110\n\nvoid ,\n#131316\n\n\n=======\nLEGEND\n=======\n\n\n. = Background\n# = Wall\n1 = wallt\n2 = wallb\n3 = walltb\n\n\nP = Player\n* = Crate and tilled\n@ = Crate and tilled\nO = Background\n\n\nwalls = Wall or wallt or wallb or walltb or wallalt or walltbalt\n\nwalls_or_void = walls or void\n\ngoodstate = walls_or_void or tilled\n=======\nSOUNDS\n=======\n\nCrate MOVE 41474107\nsfx0 3420907 (new snot)\nstartlevel 24347308\nendlevel 56675308\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ntilled\nPlayer, walls_or_void, Crate\n\n======\nRULES\n======\n\ndown [ no walls | walls | walls ] -> [ | wallt | walls ]\n\ndown [ walls | walls | no walls ] -> [ walls | wallb | ]\n\ndown [ no walls | walls | no walls ] -> [ | walltb | ]\n\ndown [ no wallalt | wall | wall | no wallalt ] -> [ | wall | wallalt | ] \n\nright [ no walltbalt | walltb | walltb | no walltbalt ] -> [ | walltbalt | walltb | ] \n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ < Player | Crate ] -> [ < Player | < Crate ]\n\nlate [ crate no tilled ] -> [ crate tilled ] sfx0\n\n==============\nWINCONDITIONS\n==============\n\nall Background on goodstate\n\n=======\nLEVELS\n=======\n\nmessage Go on, smear it ALL around!\n\nmessage Carriage 1 of 7\n(level 1)\n133331\n#p.*.#\n#*.1.#\n#..2.#\n#...*#\n233332\n\n\nmessage Carriage 2 of 7\n(level2)\n133331\n#....#\n#p.**#\n#.1**#\n232332\n\nmessage Carriage 3 of 7\n(slightly wholesome)\n13331,\n#...21\n#p...#\n21***#\n,21**#\n,,21.#\n,,,232\n\nmessage Carriage 4 of 7\n(I like this level! has personality)\n,,1331,,,\n132.*2331\n#.*.p...#\n#*3*.1*.#\n#.*..#..#\n233332332\n\n(\n(not actually taht scary, just need to use head a tiny amount)\n133331\n#.***#\n#*3**#\n#****#\n#....#\n#..p.#\n233332\n)\n\nmessage Carriage 5 of 7\n(pretty nice)\n133331\n#....#\n#.3p.#\n#..**#\n#****#\n#....#\n233332\n\n\nmessage Carriage 6 of 7\n(ok crate management?)\n133331,13331\n#*.*.232*.*#\n#p.....**3*#\n#...1....*.#\n#*.*#3333332\n23332,,,,,,,\n\nmessage Carriage 7 of 7\n(Decisions need to be made. ok conceptually?)\n,1313131,\n12.2*2.21\n#.*...*.#\n#3.3.3.3#\n#...*...#\n#3.3.3.3#\n#.*.p.*.#\n21.1.1.12\n,2323232,\n\nmessage All done! Very satisfying! \n\n(\n\n######\n#....#\n#.*.*#\n#p#.*#\n######\n\n\n######\n#p.*.#\n#*.#.#\n#..#.#\n#...*#\n######\n\n######\n#*.###\n#..#.#\n#p*#*#\n#...*#\n######)\n\n(\n\nTRANSFORM\n\n[ player ] -> []\n[ crate ] -> []\n\nchoose 4 [ ] - > [ wall ]\nchoose 1 [ no wall | no wall ] -> [ player | crate ]\n\n)\n",[1,2,3,0,1,3,3,3,3,3,2,0,1,2,3,0,1,1,1,2,1,0,3,3,1,2,2,1,1,1,3,0,0,1,3,0,0,1,2,1,1,3,2,2,3,0,2],"background void:0,background wallt:1,background wall:2,background wallalt:3,2,background wallb:4,0,background walltb:5,background tilled:6,\nbackground crate tilled:7,6,background walltbalt:8,1,4,7,5,6,5,\n8,6,6,7,7,8,5,6,6,\n7,background player:9,5,1,4,6,1,2,4,\n0,8,6,6,7,8,0,5,background:10,\n10,10,5,0,1,2,3,2,4,\n",8,"1645545059102.073"] - ], - [ - "Double-Entry Bookkeeping Simulator#1", - ["title Double-Entry Bookkeeping Simulator\nauthor increpare\nhomepage www.increpare.com\n\n( verbose_logging )\nrun_rules_on_level_start\n\nbackground_color #404040\n\nagain_interval 0.1\n\n\n( Svelte Version für Simulieren \nhttps://www.puzzlescript.net/editor.html?hack=a52aae823542d184b57fc3301627a81a \n)\n\n========\nOBJECTS\n========\n\nBackground\n#404040\n\n\n\nWall\n#000000\n\n\nPlayer\ntransparent #ffffff\n01110\n01010\n11111\n00100\n01010\n\nblue_raw\n#1e88e5\n\n\nblue1 \n#003461 #1e88e5\n00100\n01100\n00100\n00100\n01110\n\nblue2 \n#003461 #1e88e5\n01100\n00010\n00100\n01000\n01110\n\nblue3 \n#003461 #1e88e5\n01100\n00010\n01100\n00010\n01100\n\nblue4 \n#003461 #1e88e5\n01000\n01000\n01010\n01110\n00010\n\nblue5 \n#003461 #1e88e5\n01110\n01000\n01100\n00010\n01100\n\nblue6 \n#003461 #1e88e5\n00100\n01000\n01100\n01010\n00100\n\nblue7 \n#003461 #1e88e5\n01110\n00010\n00010\n00100\n00100\n\nblue8 \n#003461 #1e88e5\n00100\n01010\n00100\n01010\n00100\n\nblue9 \n#003461 #1e88e5\n00110\n01010\n00110\n00010\n00010\n\nred_raw\n#d81b60\n\nred1 \n#56001f #d81b60\n00100\n01100\n00100\n00100\n01110\n\nred2 \n#56001f #d81b60\n01100\n00010\n00100\n01000\n01110\n\nred3 \n#56001f #d81b60\n01100\n00010\n01100\n00010\n01100\n\nred4 \n#56001f #d81b60\n01000\n01000\n01010\n01110\n00010\n\nred5 \n#56001f #d81b60\n01110\n01000\n01100\n00010\n01100\n\nred6 \n#56001f #d81b60\n00100\n01000\n01100\n01010\n00100\n\nred7 \n#56001f #d81b60\n01110\n00010\n00010\n00100\n00100\n\nred8 \n#56001f #d81b60\n00100\n01010\n00100\n01010\n00100\n\nred9 \n#56001f #d81b60\n00110\n01010\n00110\n00010\n00010\n\nonce\ntransparent\n\ncounted\nwhite\n.....\n.....\n.....\n...0.\n.....\n\ncounting\nyellow\n.....\n.0...\n.....\n.....\n.....\n\ndeleting\nyellow\n00000\n0...0\n0...0\n0...0\n00000\n\ndeleted\norange\n.....\n.....\n...0.\n.....\n.....\n\nwall1\n#000000 #1f1f1f\n00100\n01100\n00100\n00100\n01110\n\nwall2\n#000000 #1f1f1f\n01100\n00010\n00100\n01000\n01110\n\nwall3\n#000000 #1f1f1f\n01100\n00010\n01100\n00010\n01100\n\nwall4\n#000000 #1f1f1f\n01000\n01000\n01010\n01110\n00010\n\nwall5\n#000000 #1f1f1f\n01110\n01000\n01100\n00010\n01100\n\nwall6\n#000000 #1f1f1f\n00100\n01000\n01100\n01010\n00100\n\nwall7\n#000000 #1f1f1f\n01110\n00010\n00010\n00100\n00100\n\nwall8\n#000000 #1f1f1f\n00100\n01010\n00100\n01010\n00100\n\nwall9\n#000000 #1f1f1f\n00110\n01010\n00110\n00010\n00010\n\n=======\nLEGEND\n=======\n\nwalllabel = wall1 or wall2 or wall3 or wall4 or wall5 or wall6 or wall7 or wall8 or wall9\nred = red_raw or red1 or red2 or red3 or red4 or red5 or red6 or red7 or red8 or red9\n\nblue = blue_raw or blue1 or blue2 or blue3 or blue4 or blue5 or blue6 or blue7 or blue8 or blue9\n\nblue_other = blue\nred_other = red\n\ncoloured = red or blue\n\npushable = red or blue\n. = Background\n# = Wall\nP = Player\n* = red_raw\n@ = blue_raw\n\nobstacle = pushable or wall or player\n\n=======\nSOUNDS\n=======\n\nred move 76964107\nblue move 73247707\nsfx0 66382107 (destroy)\nsfx1 49518300 (destroy start)\n\nstartlevel 46354708\nendlevel 70029700\nstartgame 40047300\n\n================\nCOLLISIONLAYERS\n================\n\nonce, counted\ncounting\ndeleted\nBackground\nPlayer, Wall, pushable\ndeleting\nwalllabel\n\n======\nRULES\n======\n\n[ moving player ] [ deleted ] -> [ moving player ] [ ]\n\n[ blue no deleting ] -> [ blue_raw ]\n[ red no deleting ] -> [ red_raw ]\n\n[ > Player | pushable ] -> [ > Player | > pushable ]\n\n\nstartloop\n\nlate [ player no once no deleting ] [ blue no counted no deleting ] -> [ player once ] [ once blue ]\n\nlate [ once blue_raw no deleting ] -> [ counting blue1 counted ]\nlate [ once blue1 no deleting ] -> [ counting blue2 counted ]\nlate [ once blue2 no deleting ] -> [ counting blue3 counted ]\nlate [ once blue3 no deleting ] -> [ counting blue4 counted ]\nlate [ once blue4 no deleting ] -> [ counting blue5 counted ]\nlate [ once blue5 no deleting ] -> [ counting blue6 counted ]\nlate [ once blue6 no deleting ] -> [ counting blue7 counted ]\nlate [ once blue7 no deleting ] -> [ counting blue8 counted ]\nlate [ once blue8 no deleting ] -> [ counting blue9 counted ]\n\nlate [once]->[]\n\nlate [ counting blue no deleting | no counting blue_other no deleting ] -> [ counting blue | counting blue ]\nlate [counting]->[]\n\nendloop\n\n\nstartloop\nlate [ player no once ] [ red no counted no deleting ] -> [ player once ] [ once red ]\n\nlate [ once red_raw no deleting ] -> [ counting red1 counted ]\nlate [ once red1 no deleting ] -> [ counting red2 counted ]\nlate [ once red2 no deleting ] -> [ counting red3 counted ]\nlate [ once red3 no deleting ] -> [ counting red4 counted ]\nlate [ once red4 no deleting ] -> [ counting red5 counted ]\nlate [ once red5 no deleting ] -> [ counting red6 counted ]\nlate [ once red6 no deleting ] -> [ counting red7 counted ]\nlate [ once red7 no deleting ] -> [ counting red8 counted ]\nlate [ once red8 no deleting ] -> [ counting red9 counted ]\n\nlate [once]->[]\n\nlate [ counting red no deleting | no counting red_other no deleting ] -> [ counting red | counting red ]\nlate [counting]->[]\n\nendloop\n\n\nrandom late [ deleting red1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting red2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting red3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting red4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting red5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting red6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting red7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting red8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting red9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting blue1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting blue2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting blue3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting blue4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting blue5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting blue6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting blue7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting blue8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting blue9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting red1 | deleting blue1 ] -> [ wall wall1 deleted | wall wall1 deleted ] again sfx0\n+ late [ deleting red2 | deleting blue2 ] -> [ wall wall2 deleted | wall wall2 deleted ] again sfx0\n+ late [ deleting red3 | deleting blue3 ] -> [ wall wall3 deleted | wall wall3 deleted ] again sfx0\n+ late [ deleting red4 | deleting blue4 ] -> [ wall wall4 deleted | wall wall4 deleted ] again sfx0\n+ late [ deleting red5 | deleting blue5 ] -> [ wall wall5 deleted | wall wall5 deleted ] again sfx0\n+ late [ deleting red6 | deleting blue6 ] -> [ wall wall6 deleted | wall wall6 deleted ] again sfx0\n+ late [ deleting red7 | deleting blue7 ] -> [ wall wall7 deleted | wall wall7 deleted ] again sfx0\n+ late [ deleting red8 | deleting blue8 ] -> [ wall wall8 deleted | wall wall8 deleted ] again sfx0\n+ late [ deleting red9 | deleting blue9 ] -> [ wall wall9 deleted | wall wall9 deleted ] again sfx0\n\nlate [counted]->[]\n\n\nlate [ red1 | blue1 ] -> [ deleting red1 | deleting blue1 ] again sfx1 \nlate [ red2 | blue2 ] -> [ deleting red2 | deleting blue2 ] again sfx1 \nlate [ red3 | blue3 ] -> [ deleting red3 | deleting blue3 ] again sfx1 \nlate [ red4 | blue4 ] -> [ deleting red4 | deleting blue4 ] again sfx1 \nlate [ red5 | blue5 ] -> [ deleting red5 | deleting blue5 ] again sfx1 \nlate [ red6 | blue6 ] -> [ deleting red6 | deleting blue6 ] again sfx1 \nlate [ red7 | blue7 ] -> [ deleting red7 | deleting blue7 ] again sfx1 \nlate [ red8 | blue8 ] -> [ deleting red8 | deleting blue8 ] again sfx1 \nlate [ red9 | blue9 ] -> [ deleting red9 | deleting blue9 ] again sfx1 \n\nlate [ deleting red1 | no deleting red1 ] -> [ deleting red1 | deleting red1 ]\nlate [ deleting red2 | no deleting red2 ] -> [ deleting red2 | deleting red2 ]\nlate [ deleting red3 | no deleting red3 ] -> [ deleting red3 | deleting red3 ]\nlate [ deleting red4 | no deleting red4 ] -> [ deleting red4 | deleting red4 ]\nlate [ deleting red5 | no deleting red5 ] -> [ deleting red5 | deleting red5 ]\nlate [ deleting red6 | no deleting red6 ] -> [ deleting red6 | deleting red6 ]\nlate [ deleting red7 | no deleting red7 ] -> [ deleting red7 | deleting red7 ]\nlate [ deleting red8 | no deleting red8 ] -> [ deleting red8 | deleting red8 ]\nlate [ deleting red9 | no deleting red9 ] -> [ deleting red9 | deleting red9 ]\n\n\nlate [ deleting blue1 | no deleting blue1 ] -> [ deleting blue1 | deleting blue1 ]\nlate [ deleting blue2 | no deleting blue2 ] -> [ deleting blue2 | deleting blue2 ]\nlate [ deleting blue3 | no deleting blue3 ] -> [ deleting blue3 | deleting blue3 ]\nlate [ deleting blue4 | no deleting blue4 ] -> [ deleting blue4 | deleting blue4 ]\nlate [ deleting blue5 | no deleting blue5 ] -> [ deleting blue5 | deleting blue5 ]\nlate [ deleting blue6 | no deleting blue6 ] -> [ deleting blue6 | deleting blue6 ]\nlate [ deleting blue7 | no deleting blue7 ] -> [ deleting blue7 | deleting blue7 ]\nlate [ deleting blue8 | no deleting blue8 ] -> [ deleting blue8 | deleting blue8 ]\nlate [ deleting blue9 | no deleting blue9 ] -> [ deleting blue9 | deleting blue9 ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nno coloured\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 9\n\n(improved version?)\n.....######\n.....#....#\n....##..@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n\nmessage Level 2 of 9\n\n#######...\n#@#@#@#...\n#@#@#@#...\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n.....#p..#\n.....#####\n\n\n\n\n\nmessage Level 3 of 9\n(ok? not too hard)\n#######.\n#.....#.\n#..*.@#.\n####.###\n.#.....#\n.#.*.@.#\n.#..p..#\n####.###\n#..*.@#.\n#.....#.\n#######.\n\n\n\nmessage Level 4 of 9\n#######..\n#.....#..\n#...@.#..\n#...@.###\n#...@.#@#\n#.....#.#\n#.p..***#\n#.....#.#\n#...@.#.#\n#...@...#\n#...@.###\n#.....#..\n#######..\n\n\nmessage Level 5 of 9\n\n(Actually tricky? or a bit overwhelming maybe?)\n(requires silly batching. i like this)\n#########\n#...#...#\n#..***..#\n#.......#\n####.####\n#.......#\n#..@@@p.#\n#...#...#\n#########\n\nmessage Level 6 of 9\n(possibly ok? IDK? WE?)\n#########\n#.......#\n#.*..@.*#\n#..**..@#\n#..**.@@#\n#.*..*..#\n#..p....#\n#########\n\nmessage Level 7 of 9\n(p ok? solution involves knowing something, but maybe you just stumble through it without knowing the thing)\n\n#####..\n#@@@#..\n#@@@##.\n#@#.@##\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\nmessage Level 8 of 9\n(p. ok level)\n###########\n#.........#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.p.......#\n#.........#\n###########\n\nmessage Level 9 of 9\n(ok final level maybe?)\n(fixed version?)\n...####....\n####..#....\n#@..*.#....\n###...#....\n..#.*#####.\n..#.*#.p.#.\n..#****@@#.\n..#.@@...#.\n..#.@@...#.\n..#.#@...##\n..#.......#\n..####....#\n.....######\n\nmessage Congratulations. You have mastered all the numbers, from 1 up to 9!\n\n(DISCARD PILE::::)\n\n(BAD IDEAS FOR FIRST LEVEL END )\n(thje better version. maybe ok early level?)\n( ####### )\n( #..#..# )\n( #..*.p# )\n( #..*..# )\n( #.....# )\n( ###.### )\n( #.....# )\n( #..@..# )\n( #..@..# )\n( #..#..# )\n( ####### )\n\n\n( ########## )\n( #@...##### )\n( ##...##### )\n( ##...##### )\n( ##@..##### )\n( ###...#### )\n( ###...#### )\n( ###@..#### )\n( ####.....# )\n( ####.***.# )\n( ####..p..# )\n( ########## )\n\n\n( audio test level)\n( ############# )\n( #..@........# )\n( #..@....@@..# )\n( #..@....@@@.# )\n( #..@.@..@@@.# )\n( #.*....*....# )\n( #..*.*..***.# )\n( #..*....***.# )\n( #..*....*...# )\n( #....p......# )\n( #...........# )\n( ############# )\n\n(level 2/3?)\n( ########## )\n( #........# )\n( #.**.@@@.# )\n( #........# )\n( #...p....# )\n( #........# )\n( ########## )\n\n(ok early level? meh other level does this but better IMO)\n( ###### )\n( #....# )\n( #.@.*# )\n( #.@.*# )\n( ###.## )\n( #....# )\n( #..p.# )\n( #....# )\n( ###.## )\n( #.@.*# )\n( #.@.*# )\n( #....# )\n( ###### )\n\n(ok level I think?)\n( ############# )\n( ####@.*...### )\n( ######*##.### )\n( #.....*.....# )\n( #.@@@...@@@.# )\n( #...........# )\n( #.....p.....# )\n( #...........# )\n( ############# )\n\n(\n\n(needs a few more steps of indirection on the right)\n#########\n#####*###\n#...#*###\n#.**@*###\n#.......#\n#@@..@@.#\n####p...#\n#########\n\n##############\n#....##......#\n#....##*.....#\n#.....#*.....#\n#...**@*.....#\n#............#\n###@@....@@..#\n######.p.....#\n######.......#\n##############\n\n###########\n#**@@***@@#\n#**..***..#\n#.........#\n#.........#\n#...@.@.@.#\n#.p.......#\n#...@.@.@.#\n#.........#\n###########\n\n##############\n#...#........#\n*.@.#........#\n#.#####**....#\n#.##**@**....#\n#............#\n####...@.@.@.#\n...#.p@.@.@..#\n...#.........#\n...###########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##....p..#\n##########\n\n\n(damnit a shortcut/trivialisation)\n##########\n####..####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n#@..######\n##..######\n##.*######\n##..#.p.##\n##****@@##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n(pedagogical version of other level)\n#############\n#@@*#@@#@####\n#@@*#@*#@####\n###*##*#*####\n###.......*.#\n###.......*.#\n#########.*.#\n#########p..#\n#############\n\n##########\n#........#\n#...@....#\n#........#\n#...**.@.#\n#.@.**...#\n#........#\n#.p..@...#\n#........#\n##########\n\n\n.#########.\n.#@.######.\n.#..######.\n.#****...#.\n.#*.**.p.#.\n###.**...#.\n#...@@*@@#.\n#...@@...#.\n#...@@...#.\n#@@*@@*@@#.\n#...*....#.\n#...@....#.\n#...@....#.\n##########.\n\n##########\n##@.##...#\n##..##.p.#\n###***...#\n##..***@@#\n##..@@...#\n##..@@...#\n##...@...#\n##.......#\n##.......#\n##########\n\n#########\n#@.##...#\n#..##.p.#\n##****@@#\n#..@@...#\n#...@...#\n#.......#\n#.......#\n#########\n\n##########\n####*#####\n#@.#*.p.##\n##****@@##\n##.@@...*#\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n\n\n##########\n#..#######\n#..#######\n#..##.p.##\n##****@@##\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n############\n#....#######\n#....#*#####\n#....#*.p.##\n#*##****@@##\n#.##.@@...*#\n#@##.@@...##\n####.#@...##\n####.......#\n####.......#\n############\n\n.#########...\n.#..######...\n.#..######...\n.##......#...\n.#.....p.#...\n##.......#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n##########...\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.......#\n#......*#\n#.....@*#\n######.##\n#....#.*#\n#.p...@.#\n#.......#\n#########\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.p.....#\n#......*#\n#.....@*#\n#.......#\n#....@.*#\n#.......#\n#########\n\n(is this funnier than above? I don't think so but I@m not sure)\n###########\n#.........#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.p.......#\n#.........#\n###########\n\n(technically harder than above but also more work)\n################\n#..............#\n#..............#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#.p............#\n#..............#\n################\n\n\n#################\n#...............#\n#...............#\n#..@@@.@@@.@@@..#\n#...*...*...*...#\n#..@@@.@@@.@@@..#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#...............#\n#################\n\n#################\n#...............#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n...............\n...............\n..@@@.@@@.@@@..\n...*...*...*...\n..@@@.@@@.@@@..\n...............\n...............\n.......p.......\n...............\n...............\n\n..........@.@...\n..........@.@...\n..........@*@...\n.......@@@*.*@@@\n..........@.@...\n..........@.@...\n..........@.@...\n................\n................\n\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n########\n#......#\n#......#\n#..@.*.#\n#......#\n###..*##\n####.###\n#p.@...#\n#......#\n####.###\n#......#\n#......#\n########\n\n\n...################\n..................#\n....@.............#\n.....@............#\n.@.**.@...........#\n..@.**.@..........#\n...@.**...........#\n....@.**..........#\n......p*.@........#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#################\n\n.........\n.........\n.#.#.#.#.\n.@.*.@.*.\n.#.#.#.#.\n.@.*.@.*.\n*#@#*#@#*\n.........\n..p......\n\n\n..#.#.#.#..\n...........\n..#.#.#.#..\n...........\n..#.#.#.#..\n...p.......\n\n.#.#.#.#.\n.@.*.*.@.\n.#.#.#.#.\n.@.*.*.@.\n*#@#.#@#*\n..p......\n\n(meh)\n#########\n#...@####\n#..*.@###\n#@..*.@##\n##@..*.@#\n###@..*.#\n####@p..#\n#########\n\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n(meeeeh. I think not great? too long but also if short too randomo)\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n###########\n###########\n##...@#####\n##..*.@####\n##@..*.@###\n###@..*.###\n####@p....#\n#####.***.#\n#####.....#\n###########\n\n#########\n#...@####\n#..*.@###\n#@..*.###\n##@..*.##\n####..*.#\n#####...#\n######.p#\n#########\n\n...#.......\n....#......\n....@#.....\n.....@#....\n#@....@#...\n.#@..*.@#..\n..#@..*....\n...#@..*...\n....#.*.*..\n.......*...\n......p.*..\n.........*.\n...........\n\n( (kinda different from the above) )\n( (trivial) )\n( ####### )\n( #....## )\n( #....## )\n( #.*.@## )\n( ###.### )\n( #.....# )\n( #.*.@.# )\n( #..p..# )\n( ###.### )\n( #.*.@## )\n( #....## )\n( #....## )\n( ####### )\n\n\n#######\n#....##\n#....##\n#....##\n#....##\n#.*.@##\n###.###\n#.....#\n#.*.@.#\n#p....#\n###.###\n#.*.@##\n#....##\n#....##\n#....##\n#....##\n#######\n\n#######\n#....##\n#....##\n#....##\n#.@.*##\n#.@.*##\n###.###\n#.....#\n#.@.*.#\n#p....#\n###.###\n#.@.*##\n#.@.*##\n#....##\n#....##\n#....##\n#######\n\n###########\n###@.*..###\n#####*#.###\n.....*.....\n.@@@...@@@.\n.....p.....\n...........\n...........\n\n#############\n####.....####\n######.#.####\n#...........#\n#...........#\n#.....p.....#\n#...........#\n#############\n\n#######\n#.....#\n#.***.#\n#.....#\n###.###\n#.....#\n#.@@@p#\n#.....#\n#######\n\n....####\n....#..#\n....#..#\n#####..#\n#...#..#\n#..@..*#\n#...#p.#\n#####..#\n#..@..*#\n#......#\n######.#\n....#@.#\n....#..#\n....#.*#\n....#..#\n....####\n\n.#######.\n.#.....#.\n.#..*..#.\n.#.*.*.#.\n.#.*.*.#.\n.#.....#.\n.#.....#.\n###.#.###\n#@@.#.@@#\n#@@.#.@@#\n#@..#..@#\n#@.*#*.@#\n#@p.#..@#\n#########\n\n@....*\n.@..*.\n......\n.@..*.\n..p...\n\n..........\n.@@....**.\n.@@....**.\n...@..*...\n..........\n...@..*...\n.....p....\n..........\n\n\n(ok partition problem)\n(nah broken)\n.........\n.........\n.@.....@.\n.@.#*#.@.\n.@..*..@.\n.........\n....p....\n.........\n\n...............\n....@..#..@....\n.#..@.#*#.@..#.\n#*..@..*..@..*#\n.#..@.....@..#.\n.......p.......\n...............\n\n....####.....\n...#@.*......\n....##*#.....\n......*......\n.............\n..@@@.p.@@@..\n.............\n.............\n\n#######\n#.....#\n#.#.#.#\n#.@.*.#\n###.###\n.......\np.@.*..\n.......\n###.###\n#.@.*.#\n#.#.#.#\n#.....#\n#######\n\n######\n#...##\n#...##\n#...##\n#.@.*#\n###.##\n......\np.@.*.\n......\n###.##\n#.@.*#\n#...##\n#...##\n#...##\n######\n\n(trivial)\n(\n.........\n.........\n..**.@...\n.........\n....p....\n.........\n)\n\n\n\n............\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..*.*..*.*..\n.....p......\n............\n\n...........\n.....@.....\n.....@.....\n.....@.....\n.....@.....\n.....*.....\n.@@@@*@@@@.\n.....*.....\n.@@@@.@@@@.\n.....*.....\n...........\n.....p.....\n...........\n\n...........\n...........\n..###.###..\n..#*....#..\n..#.*...#..\n..###.###..\n..p.@.@....\n...........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n..........\n..........\n..........\n\n..........\n..........\n..####....\n..#*.@..p.\n..#.*@....\n..####....\n..........\n..........\n\n..........\n..........\n..####....\n..#*..@.p.\n..#.*.@...\n..####....\n..........\n..........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n####..####\n..........\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n..........\n\n.########.\n.#......#.\n.#.*..@.#.\n.#..*.@.#.\n####..####\n...p......\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n\n@@@@@@@@\n###@####\n........\n........\n.*.*.*..\n........\n.*.*.*..\n........\n.*.*.p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n...*....\n..***...\n...*....\n..***...\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n..***...\n..*.*...\n..***...\n........\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n..*.*...\n........\n..*.*...\n...@....\n..*.*...\n........\n..*.*p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n........\n........\n...*....\n..*.*...\n...*....\n..*.*...\n.*.@.*..\n...p....\n###*####\n########\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n#######\n##...##\n#.....#\n###.###\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#..p..#\n###.###\n#######\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n##################\n#####@#@#@########\n#####@#@#@########\n#####*#*#*########\n#@.........*....p#\n#..............*.#\n##############.*.#\n##############.*.#\n##############...#\n##################\n\n\n##############\n#@#@#@########\n#@#@#@########\n#*#*#*########\n#......*.p...#\n#..........*.#\n##########.*.#\n##########...#\n##############\n\n##########\n#@#@#@####\n#@#@#@####\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n######p..#\n##########\n\n#############\n###@#@#@#####\n###@#@#@#####\n###*#*#*#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#############\n###@#@#@#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#########\n###@#####\n#@....*p#\n#.....*.#\n#########\n\n...........\n...........\n....@@@....\n...........\n..@.***.@..\n..@.***.@..\n..@.***.@..\n...........\n.....p.....\n...........\n...........\n\n###########\n#.........#\n#.#..@..#.#\n#...@.@...#\n#..@***@..#\n#...***...#\n#..@***@..#\n#...@.@...#\n#.#..p..#.#\n#.........#\n###########\n\n#########\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(meeeh but in a pinch! but really, don't add it)\n#########\n##.....##\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(aaa kinda ok? has some stuff going on)\n#########\n#.......#\n#.*.@.*.#\n#..*@*..#\n#.@@*@@.#\n#..*@*..#\n#.*.@.*.#\n#...p...#\n#########\n\n#########\n#.......#\n#.@..**.#\n#.....*.#\n#..@....#\n#....@..#\n#.**....#\n#..*p.@.#\n#.....@.#\n#.@.*.@.#\n#.......#\n#########\n\n(doesn't have enough personality)\n#########\n#......p#\n#..@.@..#\n#.*.*.@.#\n#....*..#\n#.**..@.#\n#.**.*..#\n#.......#\n#########\n\n\n#########\n...#*#...\n.........\n##..*..##\n###...###\n####p####\n###...###\n##..@..##\n.........\n...#@#...\n#########\n\n\n\n#..#..#\n#..*.p#\n#.....#\n#..*..#\n###.###\n#..@..#\n#.....#\n#..@..#\n#..#..#\n\n...........\n.....*.....\n...........\n.....*.....\n....*.*....\n...*@@@*...\n....*.*....\n.....*.....\n...........\n.....p.....\n...........\n\n.......\n..*.*..\n.*@@@*.\n..*.*..\n...*...\n.......\n...p...\n.......\n)\n(\n....\n....\n....\n\n....\n....\n....\n....\n\n\n....\n....\n....\n....\n....\n\n\n.....\n.....\n.....\n.....\n.....\n\n......\n......\n......\n......\n......\n......\n\n##########\n#........#\n#.#....#.#\n#..*..*..#\n#...**..@#\n#...**.@@#\n#..*..@..#\n#.#.p*.#.#\n#.......##\n##########\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n##########\n\n###########\n#....#....#\n#.**.#.@@.#\n#.*..#..@.#\n#.........#\n####.p.####\n#.........#\n#.@..#..*.#\n#.@@.#.**.#\n#....#....#\n###########\n\n(solvable which is nice but also not good which is not nice)\n##########\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#........#\n#...p....#\n##########\n\n##########################\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#........................#\n#...........p............#\n##########################\n\n##########################\n#........................#\n#........................#\n#.........*..p...........#\n#........@@..............#\n#........***.............#\n#.......@@@@.............#\n#.......*****............#\n#......@@@@@@............#\n#......*******...........#\n#.....@@@@@@@@...........#\n#........................#\n#........................#\n#........................#\n#........................#\n#........................#\n##########################\n\n###########\n#.........#\n#.........#\n#..*@@@@..#\n#..*...*..#\n#..*.*.*..#\n#..*.@@*..#\n#..*......#\n#..@@@....#\n#.........#\n#....p....#\n#.........#\n###########\n\n####################\n#..................#\n#..................#\n#..................#\n#..................#\n#..***........@@@..#\n#..*.*........@.@..#\n#..***........@@@..#\n#..................#\n#..................#\n#.....p............#\n#..................#\n####################\n\n###########\n#.........#\n#.*.@@@@@.#\n#.*.@...@.#\n#.*...*.@.#\n#.*****.@.#\n#.........#\n#.........#\n#....p....#\n###*###@###\n###########\n\n...........\n##@@@@@@@##\n#####@#####\n#.........#\n#....*....#\n#...*.*...#\n#..*.@.*..#\n#...*.*...#\n#....*....#\n#.........#\n#....p....#\n#####*#####\n###########\n\n#######\n#@@@@@#\n##@@@##\n#.p...#\n#..@..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#.....#\n###*###\n#######\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n..###..\n.##*##.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n##@@@##\n##@@@#.\n.#####.\n\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n###.###\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n#######\n#*.*.*#\n#.*.*.#\n#*.*.*#\n#.@.@.#\n#@.@.@#\n#.@.@.#\n#..@..#\n#.....#\n#..p..#\n#.....#\n#######\n\n\n\n(ACTUAL CANDIDATE LEVELS)\n\n\n\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#.........#\n#.........#\n#....p....#\n#.........#\n###########\n\n\n(it is a level, but not amazing? but maybe ok? but I don't know? also repeats a mechanism from another level? but maybe better?)\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#....p....#\n#.........#\n#####.#####\n####*.***##\n#####****##\n###########\n\n##########\n#........#\n#.....p..#\n#........#\n#.....####\n#..#.....#\n#..#@....#\n#..#.....#\n##########\n\n\n\nmessage level 1 of 10\n\n####..\n#..#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 2 of 10\n\n######\n#....#\n#.#P.#\n#.*@.#\n#..@.#\n#....#\n######\n\nmessage level 3 of 10\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#....#P.#\n#########\n\nmessage level 4 of 10\n\n########\n#......#\n#..@@*P#\n#......#\n#####..#\n....####\n\nmessage level 5 of 10\n\n.#######\n.#.....#\n.#..*..#\n##.*P*.#\n#...*..#\n#......#\n########\n\nmessage level 6 of 10\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#......#\n#...########\n#####.......\n\n..######....\n###..**#####\n#.......@..#\n#.#..**#@@.#\n#......#.p.#\n############\n\nmessage level 7 of 10\n\n#######\n#.....#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..P..#\n#######\n\nmessage level 8 of 10\n\n..######\n..#...P#\n..#.**.#\n####.###\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\nmessage level 9 of 10\n\n#####.\n#...##\n#P**.#\n##...#\n.##..#\n..##.#\n...###\n\nmessage level 10 of 10\n\n......#####\n......#...#\n......#.#.#\n#######.#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\nmessage congratulations!\n\n\n#########\n#.......#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#...p...#\n#########\n\n......#####\n......#...#\n#######.#.#\n#.*.*.*.*.#\n#.#.#.#.###\n#....p..#..\n####@@@@#..\n...######..\n\n........#####\n........#...#\n#########.#.#\n#...*.*.*.*.#\n#.#.#.#.#.###\n#......p..#..\n######@@@@#..\n.....######..\n\n..........#####\n..........#...#\n..#########.#.#\n.##.*.@.@.@...#\n##*.#.#.#.#.###\n#*......p.....#\n###########.#.#\n..........#...#\n..........#####\n\n.......#####\n.......#...#\n########.#.#\n#*.....*.*.#\n##.#.#.#.###\n#@.@.@p....#\n########.#.#\n.......#...#\n.......#####\n)\n\n(\n..#########\n..#.......#\n..#.##..@.#\n..#.#@....#\n..#.....*.#\n..#.#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n \n.....######\n....##....#\n....#@..@.#\n....#.....#\n....#*#.*.#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n....#######\n....#.....#\n....#...@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n)\n\n",[1,1,1,1,3,3,0,0,3,0,3,3,3,0,0,1,1,1,2,2,2,2,3,2,1,1,3],"background:0,0,0,0,0,0,background wall:1,1,1,1,1,\n1,0,0,0,0,0,0,1,0,0,0,\n0,1,0,0,0,0,0,0,1,0,background wall wall3:2,\n2,2,1,0,0,0,0,0,0,1,0,\n2,2,2,1,0,0,1,1,1,1,1,\n1,1,0,1,1,1,1,1,background blue1:3,0,0,\n0,0,0,background player:4,0,1,1,0,0,0,0,\n1,0,1,0,0,0,1,1,0,0,0,\n0,0,0,1,0,0,0,1,1,0,background wall wall1:5,\n5,0,0,0,1,1,1,1,1,1,0,\n0,0,0,0,0,1,0,0,0,0,1,\n1,1,1,1,1,1,1,0,0,0,0,\n",1,"1645545097375.3352"] - ], - [ - "Double-Entry Bookkeeping Simulator#2", - ["title Double-Entry Bookkeeping Simulator\nauthor increpare\nhomepage www.increpare.com\n\n( verbose_logging )\nrun_rules_on_level_start\n\nbackground_color #404040\n\nagain_interval 0.1\n\n\n( Svelte Version für Simulieren \nhttps://www.puzzlescript.net/editor.html?hack=a52aae823542d184b57fc3301627a81a \n)\n\n========\nOBJECTS\n========\n\nBackground\n#404040\n\n\n\nWall\n#000000\n\n\nPlayer\ntransparent #ffffff\n01110\n01010\n11111\n00100\n01010\n\nblue_raw\n#1e88e5\n\n\nblue1 \n#003461 #1e88e5\n00100\n01100\n00100\n00100\n01110\n\nblue2 \n#003461 #1e88e5\n01100\n00010\n00100\n01000\n01110\n\nblue3 \n#003461 #1e88e5\n01100\n00010\n01100\n00010\n01100\n\nblue4 \n#003461 #1e88e5\n01000\n01000\n01010\n01110\n00010\n\nblue5 \n#003461 #1e88e5\n01110\n01000\n01100\n00010\n01100\n\nblue6 \n#003461 #1e88e5\n00100\n01000\n01100\n01010\n00100\n\nblue7 \n#003461 #1e88e5\n01110\n00010\n00010\n00100\n00100\n\nblue8 \n#003461 #1e88e5\n00100\n01010\n00100\n01010\n00100\n\nblue9 \n#003461 #1e88e5\n00110\n01010\n00110\n00010\n00010\n\nred_raw\n#d81b60\n\nred1 \n#56001f #d81b60\n00100\n01100\n00100\n00100\n01110\n\nred2 \n#56001f #d81b60\n01100\n00010\n00100\n01000\n01110\n\nred3 \n#56001f #d81b60\n01100\n00010\n01100\n00010\n01100\n\nred4 \n#56001f #d81b60\n01000\n01000\n01010\n01110\n00010\n\nred5 \n#56001f #d81b60\n01110\n01000\n01100\n00010\n01100\n\nred6 \n#56001f #d81b60\n00100\n01000\n01100\n01010\n00100\n\nred7 \n#56001f #d81b60\n01110\n00010\n00010\n00100\n00100\n\nred8 \n#56001f #d81b60\n00100\n01010\n00100\n01010\n00100\n\nred9 \n#56001f #d81b60\n00110\n01010\n00110\n00010\n00010\n\nonce\ntransparent\n\ncounted\nwhite\n.....\n.....\n.....\n...0.\n.....\n\ncounting\nyellow\n.....\n.0...\n.....\n.....\n.....\n\ndeleting\nyellow\n00000\n0...0\n0...0\n0...0\n00000\n\ndeleted\norange\n.....\n.....\n...0.\n.....\n.....\n\nwall1\n#000000 #1f1f1f\n00100\n01100\n00100\n00100\n01110\n\nwall2\n#000000 #1f1f1f\n01100\n00010\n00100\n01000\n01110\n\nwall3\n#000000 #1f1f1f\n01100\n00010\n01100\n00010\n01100\n\nwall4\n#000000 #1f1f1f\n01000\n01000\n01010\n01110\n00010\n\nwall5\n#000000 #1f1f1f\n01110\n01000\n01100\n00010\n01100\n\nwall6\n#000000 #1f1f1f\n00100\n01000\n01100\n01010\n00100\n\nwall7\n#000000 #1f1f1f\n01110\n00010\n00010\n00100\n00100\n\nwall8\n#000000 #1f1f1f\n00100\n01010\n00100\n01010\n00100\n\nwall9\n#000000 #1f1f1f\n00110\n01010\n00110\n00010\n00010\n\n=======\nLEGEND\n=======\n\nwalllabel = wall1 or wall2 or wall3 or wall4 or wall5 or wall6 or wall7 or wall8 or wall9\nred = red_raw or red1 or red2 or red3 or red4 or red5 or red6 or red7 or red8 or red9\n\nblue = blue_raw or blue1 or blue2 or blue3 or blue4 or blue5 or blue6 or blue7 or blue8 or blue9\n\nblue_other = blue\nred_other = red\n\ncoloured = red or blue\n\npushable = red or blue\n. = Background\n# = Wall\nP = Player\n* = red_raw\n@ = blue_raw\n\nobstacle = pushable or wall or player\n\n=======\nSOUNDS\n=======\n\nred move 76964107\nblue move 73247707\nsfx0 66382107 (destroy)\nsfx1 49518300 (destroy start)\n\nstartlevel 46354708\nendlevel 70029700\nstartgame 40047300\n\n================\nCOLLISIONLAYERS\n================\n\nonce, counted\ncounting\ndeleted\nBackground\nPlayer, Wall, pushable\ndeleting\nwalllabel\n\n======\nRULES\n======\n\n[ moving player ] [ deleted ] -> [ moving player ] [ ]\n\n[ blue no deleting ] -> [ blue_raw ]\n[ red no deleting ] -> [ red_raw ]\n\n[ > Player | pushable ] -> [ > Player | > pushable ]\n\n\nstartloop\n\nlate [ player no once no deleting ] [ blue no counted no deleting ] -> [ player once ] [ once blue ]\n\nlate [ once blue_raw no deleting ] -> [ counting blue1 counted ]\nlate [ once blue1 no deleting ] -> [ counting blue2 counted ]\nlate [ once blue2 no deleting ] -> [ counting blue3 counted ]\nlate [ once blue3 no deleting ] -> [ counting blue4 counted ]\nlate [ once blue4 no deleting ] -> [ counting blue5 counted ]\nlate [ once blue5 no deleting ] -> [ counting blue6 counted ]\nlate [ once blue6 no deleting ] -> [ counting blue7 counted ]\nlate [ once blue7 no deleting ] -> [ counting blue8 counted ]\nlate [ once blue8 no deleting ] -> [ counting blue9 counted ]\n\nlate [once]->[]\n\nlate [ counting blue no deleting | no counting blue_other no deleting ] -> [ counting blue | counting blue ]\nlate [counting]->[]\n\nendloop\n\n\nstartloop\nlate [ player no once ] [ red no counted no deleting ] -> [ player once ] [ once red ]\n\nlate [ once red_raw no deleting ] -> [ counting red1 counted ]\nlate [ once red1 no deleting ] -> [ counting red2 counted ]\nlate [ once red2 no deleting ] -> [ counting red3 counted ]\nlate [ once red3 no deleting ] -> [ counting red4 counted ]\nlate [ once red4 no deleting ] -> [ counting red5 counted ]\nlate [ once red5 no deleting ] -> [ counting red6 counted ]\nlate [ once red6 no deleting ] -> [ counting red7 counted ]\nlate [ once red7 no deleting ] -> [ counting red8 counted ]\nlate [ once red8 no deleting ] -> [ counting red9 counted ]\n\nlate [once]->[]\n\nlate [ counting red no deleting | no counting red_other no deleting ] -> [ counting red | counting red ]\nlate [counting]->[]\n\nendloop\n\n\nrandom late [ deleting red1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting red2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting red3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting red4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting red5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting red6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting red7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting red8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting red9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting blue1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting blue2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting blue3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting blue4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting blue5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting blue6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting blue7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting blue8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting blue9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting red1 | deleting blue1 ] -> [ wall wall1 deleted | wall wall1 deleted ] again sfx0\n+ late [ deleting red2 | deleting blue2 ] -> [ wall wall2 deleted | wall wall2 deleted ] again sfx0\n+ late [ deleting red3 | deleting blue3 ] -> [ wall wall3 deleted | wall wall3 deleted ] again sfx0\n+ late [ deleting red4 | deleting blue4 ] -> [ wall wall4 deleted | wall wall4 deleted ] again sfx0\n+ late [ deleting red5 | deleting blue5 ] -> [ wall wall5 deleted | wall wall5 deleted ] again sfx0\n+ late [ deleting red6 | deleting blue6 ] -> [ wall wall6 deleted | wall wall6 deleted ] again sfx0\n+ late [ deleting red7 | deleting blue7 ] -> [ wall wall7 deleted | wall wall7 deleted ] again sfx0\n+ late [ deleting red8 | deleting blue8 ] -> [ wall wall8 deleted | wall wall8 deleted ] again sfx0\n+ late [ deleting red9 | deleting blue9 ] -> [ wall wall9 deleted | wall wall9 deleted ] again sfx0\n\nlate [counted]->[]\n\n\nlate [ red1 | blue1 ] -> [ deleting red1 | deleting blue1 ] again sfx1 \nlate [ red2 | blue2 ] -> [ deleting red2 | deleting blue2 ] again sfx1 \nlate [ red3 | blue3 ] -> [ deleting red3 | deleting blue3 ] again sfx1 \nlate [ red4 | blue4 ] -> [ deleting red4 | deleting blue4 ] again sfx1 \nlate [ red5 | blue5 ] -> [ deleting red5 | deleting blue5 ] again sfx1 \nlate [ red6 | blue6 ] -> [ deleting red6 | deleting blue6 ] again sfx1 \nlate [ red7 | blue7 ] -> [ deleting red7 | deleting blue7 ] again sfx1 \nlate [ red8 | blue8 ] -> [ deleting red8 | deleting blue8 ] again sfx1 \nlate [ red9 | blue9 ] -> [ deleting red9 | deleting blue9 ] again sfx1 \n\nlate [ deleting red1 | no deleting red1 ] -> [ deleting red1 | deleting red1 ]\nlate [ deleting red2 | no deleting red2 ] -> [ deleting red2 | deleting red2 ]\nlate [ deleting red3 | no deleting red3 ] -> [ deleting red3 | deleting red3 ]\nlate [ deleting red4 | no deleting red4 ] -> [ deleting red4 | deleting red4 ]\nlate [ deleting red5 | no deleting red5 ] -> [ deleting red5 | deleting red5 ]\nlate [ deleting red6 | no deleting red6 ] -> [ deleting red6 | deleting red6 ]\nlate [ deleting red7 | no deleting red7 ] -> [ deleting red7 | deleting red7 ]\nlate [ deleting red8 | no deleting red8 ] -> [ deleting red8 | deleting red8 ]\nlate [ deleting red9 | no deleting red9 ] -> [ deleting red9 | deleting red9 ]\n\n\nlate [ deleting blue1 | no deleting blue1 ] -> [ deleting blue1 | deleting blue1 ]\nlate [ deleting blue2 | no deleting blue2 ] -> [ deleting blue2 | deleting blue2 ]\nlate [ deleting blue3 | no deleting blue3 ] -> [ deleting blue3 | deleting blue3 ]\nlate [ deleting blue4 | no deleting blue4 ] -> [ deleting blue4 | deleting blue4 ]\nlate [ deleting blue5 | no deleting blue5 ] -> [ deleting blue5 | deleting blue5 ]\nlate [ deleting blue6 | no deleting blue6 ] -> [ deleting blue6 | deleting blue6 ]\nlate [ deleting blue7 | no deleting blue7 ] -> [ deleting blue7 | deleting blue7 ]\nlate [ deleting blue8 | no deleting blue8 ] -> [ deleting blue8 | deleting blue8 ]\nlate [ deleting blue9 | no deleting blue9 ] -> [ deleting blue9 | deleting blue9 ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nno coloured\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 9\n\n(improved version?)\n.....######\n.....#....#\n....##..@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n\nmessage Level 2 of 9\n\n#######...\n#@#@#@#...\n#@#@#@#...\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n.....#p..#\n.....#####\n\n\n\n\n\nmessage Level 3 of 9\n(ok? not too hard)\n#######.\n#.....#.\n#..*.@#.\n####.###\n.#.....#\n.#.*.@.#\n.#..p..#\n####.###\n#..*.@#.\n#.....#.\n#######.\n\n\n\nmessage Level 4 of 9\n#######..\n#.....#..\n#...@.#..\n#...@.###\n#...@.#@#\n#.....#.#\n#.p..***#\n#.....#.#\n#...@.#.#\n#...@...#\n#...@.###\n#.....#..\n#######..\n\n\nmessage Level 5 of 9\n\n(Actually tricky? or a bit overwhelming maybe?)\n(requires silly batching. i like this)\n#########\n#...#...#\n#..***..#\n#.......#\n####.####\n#.......#\n#..@@@p.#\n#...#...#\n#########\n\nmessage Level 6 of 9\n(possibly ok? IDK? WE?)\n#########\n#.......#\n#.*..@.*#\n#..**..@#\n#..**.@@#\n#.*..*..#\n#..p....#\n#########\n\nmessage Level 7 of 9\n(p ok? solution involves knowing something, but maybe you just stumble through it without knowing the thing)\n\n#####..\n#@@@#..\n#@@@##.\n#@#.@##\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\nmessage Level 8 of 9\n(p. ok level)\n###########\n#.........#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.p.......#\n#.........#\n###########\n\nmessage Level 9 of 9\n(ok final level maybe?)\n(fixed version?)\n...####....\n####..#....\n#@..*.#....\n###...#....\n..#.*#####.\n..#.*#.p.#.\n..#****@@#.\n..#.@@...#.\n..#.@@...#.\n..#.#@...##\n..#.......#\n..####....#\n.....######\n\nmessage Congratulations. You have mastered all the numbers, from 1 up to 9!\n\n(DISCARD PILE::::)\n\n(BAD IDEAS FOR FIRST LEVEL END )\n(thje better version. maybe ok early level?)\n( ####### )\n( #..#..# )\n( #..*.p# )\n( #..*..# )\n( #.....# )\n( ###.### )\n( #.....# )\n( #..@..# )\n( #..@..# )\n( #..#..# )\n( ####### )\n\n\n( ########## )\n( #@...##### )\n( ##...##### )\n( ##...##### )\n( ##@..##### )\n( ###...#### )\n( ###...#### )\n( ###@..#### )\n( ####.....# )\n( ####.***.# )\n( ####..p..# )\n( ########## )\n\n\n( audio test level)\n( ############# )\n( #..@........# )\n( #..@....@@..# )\n( #..@....@@@.# )\n( #..@.@..@@@.# )\n( #.*....*....# )\n( #..*.*..***.# )\n( #..*....***.# )\n( #..*....*...# )\n( #....p......# )\n( #...........# )\n( ############# )\n\n(level 2/3?)\n( ########## )\n( #........# )\n( #.**.@@@.# )\n( #........# )\n( #...p....# )\n( #........# )\n( ########## )\n\n(ok early level? meh other level does this but better IMO)\n( ###### )\n( #....# )\n( #.@.*# )\n( #.@.*# )\n( ###.## )\n( #....# )\n( #..p.# )\n( #....# )\n( ###.## )\n( #.@.*# )\n( #.@.*# )\n( #....# )\n( ###### )\n\n(ok level I think?)\n( ############# )\n( ####@.*...### )\n( ######*##.### )\n( #.....*.....# )\n( #.@@@...@@@.# )\n( #...........# )\n( #.....p.....# )\n( #...........# )\n( ############# )\n\n(\n\n(needs a few more steps of indirection on the right)\n#########\n#####*###\n#...#*###\n#.**@*###\n#.......#\n#@@..@@.#\n####p...#\n#########\n\n##############\n#....##......#\n#....##*.....#\n#.....#*.....#\n#...**@*.....#\n#............#\n###@@....@@..#\n######.p.....#\n######.......#\n##############\n\n###########\n#**@@***@@#\n#**..***..#\n#.........#\n#.........#\n#...@.@.@.#\n#.p.......#\n#...@.@.@.#\n#.........#\n###########\n\n##############\n#...#........#\n*.@.#........#\n#.#####**....#\n#.##**@**....#\n#............#\n####...@.@.@.#\n...#.p@.@.@..#\n...#.........#\n...###########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##....p..#\n##########\n\n\n(damnit a shortcut/trivialisation)\n##########\n####..####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n#@..######\n##..######\n##.*######\n##..#.p.##\n##****@@##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n(pedagogical version of other level)\n#############\n#@@*#@@#@####\n#@@*#@*#@####\n###*##*#*####\n###.......*.#\n###.......*.#\n#########.*.#\n#########p..#\n#############\n\n##########\n#........#\n#...@....#\n#........#\n#...**.@.#\n#.@.**...#\n#........#\n#.p..@...#\n#........#\n##########\n\n\n.#########.\n.#@.######.\n.#..######.\n.#****...#.\n.#*.**.p.#.\n###.**...#.\n#...@@*@@#.\n#...@@...#.\n#...@@...#.\n#@@*@@*@@#.\n#...*....#.\n#...@....#.\n#...@....#.\n##########.\n\n##########\n##@.##...#\n##..##.p.#\n###***...#\n##..***@@#\n##..@@...#\n##..@@...#\n##...@...#\n##.......#\n##.......#\n##########\n\n#########\n#@.##...#\n#..##.p.#\n##****@@#\n#..@@...#\n#...@...#\n#.......#\n#.......#\n#########\n\n##########\n####*#####\n#@.#*.p.##\n##****@@##\n##.@@...*#\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n\n\n##########\n#..#######\n#..#######\n#..##.p.##\n##****@@##\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n############\n#....#######\n#....#*#####\n#....#*.p.##\n#*##****@@##\n#.##.@@...*#\n#@##.@@...##\n####.#@...##\n####.......#\n####.......#\n############\n\n.#########...\n.#..######...\n.#..######...\n.##......#...\n.#.....p.#...\n##.......#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n##########...\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.......#\n#......*#\n#.....@*#\n######.##\n#....#.*#\n#.p...@.#\n#.......#\n#########\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.p.....#\n#......*#\n#.....@*#\n#.......#\n#....@.*#\n#.......#\n#########\n\n(is this funnier than above? I don't think so but I@m not sure)\n###########\n#.........#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.p.......#\n#.........#\n###########\n\n(technically harder than above but also more work)\n################\n#..............#\n#..............#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#.p............#\n#..............#\n################\n\n\n#################\n#...............#\n#...............#\n#..@@@.@@@.@@@..#\n#...*...*...*...#\n#..@@@.@@@.@@@..#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#...............#\n#################\n\n#################\n#...............#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n...............\n...............\n..@@@.@@@.@@@..\n...*...*...*...\n..@@@.@@@.@@@..\n...............\n...............\n.......p.......\n...............\n...............\n\n..........@.@...\n..........@.@...\n..........@*@...\n.......@@@*.*@@@\n..........@.@...\n..........@.@...\n..........@.@...\n................\n................\n\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n########\n#......#\n#......#\n#..@.*.#\n#......#\n###..*##\n####.###\n#p.@...#\n#......#\n####.###\n#......#\n#......#\n########\n\n\n...################\n..................#\n....@.............#\n.....@............#\n.@.**.@...........#\n..@.**.@..........#\n...@.**...........#\n....@.**..........#\n......p*.@........#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#################\n\n.........\n.........\n.#.#.#.#.\n.@.*.@.*.\n.#.#.#.#.\n.@.*.@.*.\n*#@#*#@#*\n.........\n..p......\n\n\n..#.#.#.#..\n...........\n..#.#.#.#..\n...........\n..#.#.#.#..\n...p.......\n\n.#.#.#.#.\n.@.*.*.@.\n.#.#.#.#.\n.@.*.*.@.\n*#@#.#@#*\n..p......\n\n(meh)\n#########\n#...@####\n#..*.@###\n#@..*.@##\n##@..*.@#\n###@..*.#\n####@p..#\n#########\n\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n(meeeeh. I think not great? too long but also if short too randomo)\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n###########\n###########\n##...@#####\n##..*.@####\n##@..*.@###\n###@..*.###\n####@p....#\n#####.***.#\n#####.....#\n###########\n\n#########\n#...@####\n#..*.@###\n#@..*.###\n##@..*.##\n####..*.#\n#####...#\n######.p#\n#########\n\n...#.......\n....#......\n....@#.....\n.....@#....\n#@....@#...\n.#@..*.@#..\n..#@..*....\n...#@..*...\n....#.*.*..\n.......*...\n......p.*..\n.........*.\n...........\n\n( (kinda different from the above) )\n( (trivial) )\n( ####### )\n( #....## )\n( #....## )\n( #.*.@## )\n( ###.### )\n( #.....# )\n( #.*.@.# )\n( #..p..# )\n( ###.### )\n( #.*.@## )\n( #....## )\n( #....## )\n( ####### )\n\n\n#######\n#....##\n#....##\n#....##\n#....##\n#.*.@##\n###.###\n#.....#\n#.*.@.#\n#p....#\n###.###\n#.*.@##\n#....##\n#....##\n#....##\n#....##\n#######\n\n#######\n#....##\n#....##\n#....##\n#.@.*##\n#.@.*##\n###.###\n#.....#\n#.@.*.#\n#p....#\n###.###\n#.@.*##\n#.@.*##\n#....##\n#....##\n#....##\n#######\n\n###########\n###@.*..###\n#####*#.###\n.....*.....\n.@@@...@@@.\n.....p.....\n...........\n...........\n\n#############\n####.....####\n######.#.####\n#...........#\n#...........#\n#.....p.....#\n#...........#\n#############\n\n#######\n#.....#\n#.***.#\n#.....#\n###.###\n#.....#\n#.@@@p#\n#.....#\n#######\n\n....####\n....#..#\n....#..#\n#####..#\n#...#..#\n#..@..*#\n#...#p.#\n#####..#\n#..@..*#\n#......#\n######.#\n....#@.#\n....#..#\n....#.*#\n....#..#\n....####\n\n.#######.\n.#.....#.\n.#..*..#.\n.#.*.*.#.\n.#.*.*.#.\n.#.....#.\n.#.....#.\n###.#.###\n#@@.#.@@#\n#@@.#.@@#\n#@..#..@#\n#@.*#*.@#\n#@p.#..@#\n#########\n\n@....*\n.@..*.\n......\n.@..*.\n..p...\n\n..........\n.@@....**.\n.@@....**.\n...@..*...\n..........\n...@..*...\n.....p....\n..........\n\n\n(ok partition problem)\n(nah broken)\n.........\n.........\n.@.....@.\n.@.#*#.@.\n.@..*..@.\n.........\n....p....\n.........\n\n...............\n....@..#..@....\n.#..@.#*#.@..#.\n#*..@..*..@..*#\n.#..@.....@..#.\n.......p.......\n...............\n\n....####.....\n...#@.*......\n....##*#.....\n......*......\n.............\n..@@@.p.@@@..\n.............\n.............\n\n#######\n#.....#\n#.#.#.#\n#.@.*.#\n###.###\n.......\np.@.*..\n.......\n###.###\n#.@.*.#\n#.#.#.#\n#.....#\n#######\n\n######\n#...##\n#...##\n#...##\n#.@.*#\n###.##\n......\np.@.*.\n......\n###.##\n#.@.*#\n#...##\n#...##\n#...##\n######\n\n(trivial)\n(\n.........\n.........\n..**.@...\n.........\n....p....\n.........\n)\n\n\n\n............\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..*.*..*.*..\n.....p......\n............\n\n...........\n.....@.....\n.....@.....\n.....@.....\n.....@.....\n.....*.....\n.@@@@*@@@@.\n.....*.....\n.@@@@.@@@@.\n.....*.....\n...........\n.....p.....\n...........\n\n...........\n...........\n..###.###..\n..#*....#..\n..#.*...#..\n..###.###..\n..p.@.@....\n...........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n..........\n..........\n..........\n\n..........\n..........\n..####....\n..#*.@..p.\n..#.*@....\n..####....\n..........\n..........\n\n..........\n..........\n..####....\n..#*..@.p.\n..#.*.@...\n..####....\n..........\n..........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n####..####\n..........\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n..........\n\n.########.\n.#......#.\n.#.*..@.#.\n.#..*.@.#.\n####..####\n...p......\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n\n@@@@@@@@\n###@####\n........\n........\n.*.*.*..\n........\n.*.*.*..\n........\n.*.*.p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n...*....\n..***...\n...*....\n..***...\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n..***...\n..*.*...\n..***...\n........\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n..*.*...\n........\n..*.*...\n...@....\n..*.*...\n........\n..*.*p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n........\n........\n...*....\n..*.*...\n...*....\n..*.*...\n.*.@.*..\n...p....\n###*####\n########\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n#######\n##...##\n#.....#\n###.###\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#..p..#\n###.###\n#######\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n##################\n#####@#@#@########\n#####@#@#@########\n#####*#*#*########\n#@.........*....p#\n#..............*.#\n##############.*.#\n##############.*.#\n##############...#\n##################\n\n\n##############\n#@#@#@########\n#@#@#@########\n#*#*#*########\n#......*.p...#\n#..........*.#\n##########.*.#\n##########...#\n##############\n\n##########\n#@#@#@####\n#@#@#@####\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n######p..#\n##########\n\n#############\n###@#@#@#####\n###@#@#@#####\n###*#*#*#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#############\n###@#@#@#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#########\n###@#####\n#@....*p#\n#.....*.#\n#########\n\n...........\n...........\n....@@@....\n...........\n..@.***.@..\n..@.***.@..\n..@.***.@..\n...........\n.....p.....\n...........\n...........\n\n###########\n#.........#\n#.#..@..#.#\n#...@.@...#\n#..@***@..#\n#...***...#\n#..@***@..#\n#...@.@...#\n#.#..p..#.#\n#.........#\n###########\n\n#########\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(meeeh but in a pinch! but really, don't add it)\n#########\n##.....##\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(aaa kinda ok? has some stuff going on)\n#########\n#.......#\n#.*.@.*.#\n#..*@*..#\n#.@@*@@.#\n#..*@*..#\n#.*.@.*.#\n#...p...#\n#########\n\n#########\n#.......#\n#.@..**.#\n#.....*.#\n#..@....#\n#....@..#\n#.**....#\n#..*p.@.#\n#.....@.#\n#.@.*.@.#\n#.......#\n#########\n\n(doesn't have enough personality)\n#########\n#......p#\n#..@.@..#\n#.*.*.@.#\n#....*..#\n#.**..@.#\n#.**.*..#\n#.......#\n#########\n\n\n#########\n...#*#...\n.........\n##..*..##\n###...###\n####p####\n###...###\n##..@..##\n.........\n...#@#...\n#########\n\n\n\n#..#..#\n#..*.p#\n#.....#\n#..*..#\n###.###\n#..@..#\n#.....#\n#..@..#\n#..#..#\n\n...........\n.....*.....\n...........\n.....*.....\n....*.*....\n...*@@@*...\n....*.*....\n.....*.....\n...........\n.....p.....\n...........\n\n.......\n..*.*..\n.*@@@*.\n..*.*..\n...*...\n.......\n...p...\n.......\n)\n(\n....\n....\n....\n\n....\n....\n....\n....\n\n\n....\n....\n....\n....\n....\n\n\n.....\n.....\n.....\n.....\n.....\n\n......\n......\n......\n......\n......\n......\n\n##########\n#........#\n#.#....#.#\n#..*..*..#\n#...**..@#\n#...**.@@#\n#..*..@..#\n#.#.p*.#.#\n#.......##\n##########\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n##########\n\n###########\n#....#....#\n#.**.#.@@.#\n#.*..#..@.#\n#.........#\n####.p.####\n#.........#\n#.@..#..*.#\n#.@@.#.**.#\n#....#....#\n###########\n\n(solvable which is nice but also not good which is not nice)\n##########\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#........#\n#...p....#\n##########\n\n##########################\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#........................#\n#...........p............#\n##########################\n\n##########################\n#........................#\n#........................#\n#.........*..p...........#\n#........@@..............#\n#........***.............#\n#.......@@@@.............#\n#.......*****............#\n#......@@@@@@............#\n#......*******...........#\n#.....@@@@@@@@...........#\n#........................#\n#........................#\n#........................#\n#........................#\n#........................#\n##########################\n\n###########\n#.........#\n#.........#\n#..*@@@@..#\n#..*...*..#\n#..*.*.*..#\n#..*.@@*..#\n#..*......#\n#..@@@....#\n#.........#\n#....p....#\n#.........#\n###########\n\n####################\n#..................#\n#..................#\n#..................#\n#..................#\n#..***........@@@..#\n#..*.*........@.@..#\n#..***........@@@..#\n#..................#\n#..................#\n#.....p............#\n#..................#\n####################\n\n###########\n#.........#\n#.*.@@@@@.#\n#.*.@...@.#\n#.*...*.@.#\n#.*****.@.#\n#.........#\n#.........#\n#....p....#\n###*###@###\n###########\n\n...........\n##@@@@@@@##\n#####@#####\n#.........#\n#....*....#\n#...*.*...#\n#..*.@.*..#\n#...*.*...#\n#....*....#\n#.........#\n#....p....#\n#####*#####\n###########\n\n#######\n#@@@@@#\n##@@@##\n#.p...#\n#..@..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#.....#\n###*###\n#######\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n..###..\n.##*##.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n##@@@##\n##@@@#.\n.#####.\n\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n###.###\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n#######\n#*.*.*#\n#.*.*.#\n#*.*.*#\n#.@.@.#\n#@.@.@#\n#.@.@.#\n#..@..#\n#.....#\n#..p..#\n#.....#\n#######\n\n\n\n(ACTUAL CANDIDATE LEVELS)\n\n\n\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#.........#\n#.........#\n#....p....#\n#.........#\n###########\n\n\n(it is a level, but not amazing? but maybe ok? but I don't know? also repeats a mechanism from another level? but maybe better?)\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#....p....#\n#.........#\n#####.#####\n####*.***##\n#####****##\n###########\n\n##########\n#........#\n#.....p..#\n#........#\n#.....####\n#..#.....#\n#..#@....#\n#..#.....#\n##########\n\n\n\nmessage level 1 of 10\n\n####..\n#..#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 2 of 10\n\n######\n#....#\n#.#P.#\n#.*@.#\n#..@.#\n#....#\n######\n\nmessage level 3 of 10\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#....#P.#\n#########\n\nmessage level 4 of 10\n\n########\n#......#\n#..@@*P#\n#......#\n#####..#\n....####\n\nmessage level 5 of 10\n\n.#######\n.#.....#\n.#..*..#\n##.*P*.#\n#...*..#\n#......#\n########\n\nmessage level 6 of 10\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#......#\n#...########\n#####.......\n\n..######....\n###..**#####\n#.......@..#\n#.#..**#@@.#\n#......#.p.#\n############\n\nmessage level 7 of 10\n\n#######\n#.....#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..P..#\n#######\n\nmessage level 8 of 10\n\n..######\n..#...P#\n..#.**.#\n####.###\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\nmessage level 9 of 10\n\n#####.\n#...##\n#P**.#\n##...#\n.##..#\n..##.#\n...###\n\nmessage level 10 of 10\n\n......#####\n......#...#\n......#.#.#\n#######.#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\nmessage congratulations!\n\n\n#########\n#.......#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#...p...#\n#########\n\n......#####\n......#...#\n#######.#.#\n#.*.*.*.*.#\n#.#.#.#.###\n#....p..#..\n####@@@@#..\n...######..\n\n........#####\n........#...#\n#########.#.#\n#...*.*.*.*.#\n#.#.#.#.#.###\n#......p..#..\n######@@@@#..\n.....######..\n\n..........#####\n..........#...#\n..#########.#.#\n.##.*.@.@.@...#\n##*.#.#.#.#.###\n#*......p.....#\n###########.#.#\n..........#...#\n..........#####\n\n.......#####\n.......#...#\n########.#.#\n#*.....*.*.#\n##.#.#.#.###\n#@.@.@p....#\n########.#.#\n.......#...#\n.......#####\n)\n\n(\n..#########\n..#.......#\n..#.##..@.#\n..#.#@....#\n..#.....*.#\n..#.#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n \n.....######\n....##....#\n....#@..@.#\n....#.....#\n....#*#.*.#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n....#######\n....#.....#\n....#...@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n)\n\n",[2,0,3,2,2,1],"background:0,background wall:1,1,1,0,0,0,0,0,0,0,\n0,0,0,1,background blue1:2,1,0,0,0,0,0,\n0,0,0,0,0,1,0,1,1,1,1,\n1,1,1,1,1,0,1,1,0,0,0,\n0,background deleted wall wall6:3,0,0,0,0,1,0,1,0,background red1:4,\n0,3,3,3,3,3,1,0,1,0,1,\n0,0,0,1,1,3,3,3,3,0,1,\n1,1,1,1,1,1,0,3,3,0,0,\n0,0,1,0,0,0,0,1,0,0,background player:5,\n0,0,0,0,1,0,0,0,0,1,0,\n0,0,2,0,0,0,1,0,0,0,0,\n1,1,1,1,1,1,0,0,1,0,0,\n0,0,0,0,0,0,0,1,1,1,1,\n",17,"1645545159763.6345"] - ], - [ - "short adventure in sticky wall land", - ["title short adventure in sticky wall land\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #1d4765\ntext_color #99e550\nrun_rules_on_level_start\n\n\n========\nOBJECTS\n========\n\nBackground\n#396c90 #457da4\n00000\n00000\n00100\n00000\n00000\n\n\nTarget\n#fbf236 transparent\n00100\n01110\n11111\n01110\n00100\n\n\nWall\n#99e550 #99e550 #99e550\n01110\n12221\n12221\n12221\n01110\n\nwall_grenze_N\n#6abe30\n00000\n.....\n.....\n.....\n.....\n\nwall_grenze_S\n#6abe30\n.....\n.....\n.....\n.....\n00000\n\nwall_grenze_O\n#6abe30\n....0\n....0\n....0\n....0\n....0\n\nwall_grenze_W\n#6abe30\n0....\n0....\n0....\n0....\n0....\n\nwall_grenze_NO\n#396c90\n....0\n.....\n.....\n.....\n.....\n\nwall_grenze_SO\n#396c90\n.....\n.....\n.....\n.....\n....0\n\nwall_grenze_SW\n#396c90\n.....\n.....\n.....\n.....\n0....\n\nwall_grenze_NW\n#396c90\n0....\n.....\n.....\n.....\n.....\n\nPlayer\ntransparent #b13030 #a96c30 #4e0b0b\n01110\n11110\n02220\n33333\n03030\n\n\nCrate\n#8f563b #743a1f #b4643d #b76640\n00000\n01220\n03120\n03310\n00000\n\n\n\n=======\nLEGEND\n=======\n\nwall_dekoration_ortho = wall_grenze_N or wall_grenze_S or wall_grenze_O or wall_grenze_W\n\nwall_dekoration_eck = wall_grenze_NW or wall_grenze_SW or wall_grenze_SO or wall_grenze_NO\n\nwall_dekoration = wall_dekoration_eck or wall_dekoration_ortho\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\nobstacle = crate or wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 76571107\nwall move 95423307\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nwall_grenze_N \nwall_grenze_S\nwall_grenze_O\nwall_grenze_W\nwall_grenze_NO\nwall_grenze_SO \nwall_grenze_SW\nwall_grenze_NW\nTarget\n\n======\nRULES\n======\n(\n[ > player | crate | obstacle ] -> cancel\n[ > player | wall ] -> cancel\n\n\n[ > Player | Crate | ] -> [ > Player | | Crate ]\n[ wall | > player | ] -> [ wall | wall | player ]\n\n)\n\n(it's very possible someone's come up with this set of rules already - but if they have I haven't seen it yet)\n\n[ > player | crate ] -> [ > player | > crate ]\n[ wall | > player ] -> [ > wall | > player ]\n\nlate [ wall_dekoration ] -> []\nlate up [ wall | no wall ] -> [ wall wall_grenze_N | ]\nlate down [ wall | no wall ] -> [ wall wall_grenze_S | ]\nlate right [ wall | no wall ] -> [ wall wall_grenze_O | ]\nlate left [ wall | no wall ] -> [ wall wall_grenze_W | ]\n\nlate [ wall_grenze_N wall_grenze_O ] -> [ wall_grenze_N wall_grenze_O wall_grenze_NO ]\nlate [ wall_grenze_S wall_grenze_O ] -> [ wall_grenze_S wall_grenze_O wall_grenze_SO ]\nlate [ wall_grenze_N wall_grenze_W ] -> [ wall_grenze_N wall_grenze_W wall_grenze_NW ]\nlate [ wall_grenze_S wall_grenze_W ] -> [ wall_grenze_S wall_grenze_W wall_grenze_SW ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 3\n\n(kinda like)\n.........\n.#######.\n.#..*..#.\n.#..p..#.\n.#..o..#.\n.#######.\n.........\n\nmessage Level 2 of 3\n\n\n(ok)\n........\n.####...\n.#.o#...\n.#..###.\n.#@p..#.\n.#..*.#.\n.#..###.\n.####...\n........\n\nmessage Level 3 of 3\n\n(mildly entertaining. possibly slightly harder?)\n.......\n.#####.\n.#.*.#.\n.#...#.\n.#.p.#.\n.#...#.\n.#.o.#.\n.#####.\n.......\n\nmessage Congratulations. Thank you for playing!\n\n(\n#..##\np...o\n.#..#\n..*.#\no*##.\n\n##.##\n.o.*#\n....#\n#*.o.\n#.p..\n\n...##\n.o.*#\n.....\n#*.o.\n##..p\n\n(haven't solved, don't like)\n#..##\n.o.*#\n.p...\n#*.o.\n##..#\n\n(better. still don't like though)\n#..#.\n.o.*#\n..p..\n#*.o.\n.#..#\n\n#....\n.o.*#\n#.p.#\n#*.o.\n....#\n\n(easy-ish, but ok? NO BAD)\n#.#..\n.o.*#\n..p..\n#*.o.\n..#.#\n\n\n....\n....\n....\n....\n\n\n.....\n.....\n.....\n.....\n.....\n\n.....\n.....\n.....\n.....\n.....\n\n.......\n.......\n.......\n.......\n.......\n.......\n.......\n\n.......\n.#####.\n.#.*.#.\n.#.p.#.\n.#.o.#.\n.#####.\n.......\n\n.........\n.#######.\n.#..*..#.\n.#..p..#.\n.#..o..#.\n.#######.\n.........\n\n.p..\no...\n.*@.\n#..#\n\n(possible to get to a dead end wtihout knowing really - so bad?)\n.....\n.o#..\n.*#*.\n.o#p.\n.....\n\n(ok, not so dead endy, but is it good? hardish)\n.....\n.opo.\n.*.*.\n.###.\n.....\n\n(easy but ok)\n.....\n.o#..\n.@#..\n.#*p.\n.....\n\n........\n.####...\n.#.o#...\n.#..###.\n.#@p..#.\n.#..*.#.\n.#..###.\n.####...\n........\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*O.#\n##.*P*.#\n#..O*O.#\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",[2,3,0,3,0,0,2,1,0,2,1,2,2,3,2,2,1,1,1,1,1,1,0,0,0,0,0,0,3,3,3,3,3,3,3,3,2,2,1,2,1,3,0,0,0,0,1,1,2,2,2,2,1,0,3,0,0,0,1,1,2,2,2,2,1,1,0,0,"undo","undo","undo",0,1,0,3,2,"undo",2,3,1,1,2],"background:0,0,0,0,0,0,0,0,background wall wall_grenze_n wall_grenze_nw wall_grenze_s wall_grenze_sw wall_grenze_w:1,\n0,background wall wall_grenze_n wall_grenze_nw wall_grenze_w:2,background wall wall_grenze_o wall_grenze_w:3,background wall wall_grenze_s wall_grenze_sw wall_grenze_w:4,0,0,background wall wall_grenze_n wall_grenze_no wall_grenze_o wall_grenze_s wall_grenze_so:5,0,background wall wall_grenze_n wall_grenze_s:6,\nbackground player:7,5,0,0,0,background wall wall_grenze_n wall_grenze_no wall_grenze_nw wall_grenze_o wall_grenze_w:8,background wall wall_grenze_o:9,4,0,\n0,0,0,background crate:10,0,background target wall wall_grenze_n wall_grenze_no wall_grenze_o:11,background wall wall_grenze_o wall_grenze_s wall_grenze_so wall_grenze_sw wall_grenze_w:12,0,0,\n2,12,0,0,0,0,0,6,0,\n0,0,1,0,0,background wall wall_grenze_n wall_grenze_no wall_grenze_o:13,3,12,0,\n5,0,0,0,0,0,0,0,0,\n",1,"1645545192906.1704"] - ], - [ - "[testing for recording through level-changes A] Level-Change test", - ["title Simple Block Pushing Game\nauthor David Skinner\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\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\n\nun\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[2,1,0,3,3,3,2,1,0,1,2,2,"undo",1,2,2,3,0,1,0,3,0,0,1,2,3,2,2,3,3,3,0,1,2,1,0,0,3,2,2,1,2,3,0,0,0,1,2],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,0,background crate:2,\nbackground crate target:3,1,0,0,1,1,\nbackground player target:4,3,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n",0,"1645546672241.5308"] - ], - [ - "[testing for recording through level-changes B] Simple Block asdfsadf Game", - ["title Simple Block Pushing Game\nauthor David Skinner\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\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[ > 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\n",[2,1,0,3,3,2,1,3,3,2,1,0,1,1,2,2,3,0,1,0,3,0,0,1,2,3,2,2,3,3,0,1,2,1,0,0],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,0,background crate:2,\nbackground target:3,1,0,0,1,background player:4,\nbackground crate target:5,5,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n",0,"1645546774769.8335"] - ], - -[ - "[testing for recording through level-changes C] Don't asdlet your goals slip away", - ["title Don't let your goals slip away\nauthor increpare [riff on david skinner's levels]\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\nbackground_color green\n\n\ncolor_palette 2\n========\nOBJECTS\n========\n\nBackground\nGREEN green\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nblack\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nDARKBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nlightgray lightgray lightgray lightgray\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange\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\nobstacle = crate or wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 78774307\ntarget move 81495507\nendlevel 52446100\nstartgame 73236703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n( [ > player | wall ] -> cancel )\n[ > player | crate | obstacle ] -> cancel\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > player | target ] -> [ > player | > target ] \n[ > target | target ] -> [ > target | > target ]\n[ > target | wall ] -> [ target | wall ]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 8\n\n(funny therefore good)\n####..\n#o*#..\n#..###\n#....#\n#.o*.#\n#.p###\n####..\n\n(meh)\n( ####.. )\n( #.o#.. )\n( #..### )\n( #o...# )\n( #*.*.# )\n( #.p### )\n( ####.. )\n\n\n\n(p. good!)\n..####...\n###..####\n#....*o.#\n#.#..#.o#\n#..*.#p.#\n#########\n\n( (Easy but funny) )\n( ###### )\n( #.*..# )\n( #.#.*# )\n( #....# )\n( #p*o.# )\n( #.oo.# )\n( ###### )\n\n\nmessage level 3 of 8\n\n(not bad)\n######\n##o..#\n#.#oo#\n#.*..#\n#.*..#\n#p*..#\n######\n\nmessage level 4 of 8\n\n########\n#...*..#\n#.o#.@p#\n#..*...#\n#####.o#\n....####\n\nmessage level 5 of 8\n\n\n\n(decent!)\n#####.\n#.*.##\n#.o.p#\n##.o.#\n.##.*#\n..##.#\n...###\n\nmessage level 6 of 8\n\n(fine right?)\n......###.\n#######o##\n#...*o...#\n#.#.#.#.##\n#.p.*...#.\n#########.\n\nmessage level 7 of 8\n(no idea. damnit spoiled but also ok.)\n####..\n#..#..\n#.*###\n#..*p#\n#..o.#\n#o.###\n####..\n\n\n\nmessage level 8 of 8\n(Tricky but also decent? involves fun manipulations)\n#######\n#..#..#\n#.o*o.#\n#.*p*##\n#.o*o.#\n#..#..#\n#######\n\n\nmessage Congratulations! You didn't let your goals run away from you.\n\n(transform\n\n[player]->[]\n[target]->[]\n[crate]->[]\n\nchoose 2 [] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player ] -> [ target ] \n\n)\n\n",[0,0,0,2,3,3,2,1,1,1,2,1,0,0,0],"background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,0,1,\n1,0,0,0,background crate:2,1,1,0,0,\n0,0,1,1,1,2,1,1,1,\n0,1,background target:3,0,background player:4,1,0,1,0,\n3,0,1,0,1,1,1,1,1,\n",1,"1645546878695.2927"] - ], - -[ - "Wallnut chasing mouse chasing cat chasing dog chasing man", - ["title Wallnut chasing mouse chasing cat chasing dog chasing man\nauthor Stingby12\nhomepage https://stingby12.itch.io/\n\nnoaction\nrun_rules_on_level_start\n\nkey_repeat_interval 0.2\nagain_interval 0.2\n\ncolor_palette 5\n\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\nDogIdle\nLightbrown Black Red\n.....\n0.0..\n101..\n02000\n.0000\n\nDogActiveL\nLightbrown Black Red\n0.0..\n101.0\n02000\n.0000\n.0..0\n\nDogActiveR\nLightbrown Black Red\n..0.0\n0.101\n00020\n0000.\n0..0.\n\nCatIdle\nGray Black White\n.....\n0.0..\n101..\n00000\n.0220\n\nCatActiveL\nGray Black White\n0.0..\n101.0\n00000\n.0220\n.0..0\n\nCatActiveR\nGray Black White\n..0.0\n0.101\n00000\n0220.\n0..0.\n\nMouseIdle\nGray DarkGray Pink\n.....\n.....\n.....\n100..\n.000.\n\nMouseActiveL\nGray DarkGray Pink\n.....\n.....\n.....\n100..\n.0022\n\nMouseActiveR\nGray DarkGray Pink\n.....\n.....\n.....\n..001\n2200.\n\nWallnutIdle\nYellow Orange Blue\n.....\n.....\n..0..\n.011.\n..1..\n\nWallnutActive\nYellow Orange Blue\n..0..\n.011.\n.212.\n.2.2.\n22.22\n\nCrate\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\n(--Anim--)\n\nPlayerAnim\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nDogAnimL\nLightbrown Black Red\n0.0..\n101.0\n02000\n.0000\n.0..0\n\nDogAnimR\nLightbrown Black Red\n..0.0\n0.101\n00020\n0000.\n0..0.\n\nCatAnimL\nGray Black White\n0.0..\n101.0\n00000\n.0220\n.0..0\n\nCatAnimR\nGray Black White\n..0.0\n0.101\n00000\n0220.\n0..0.\n\nMouseAnimL\nGray DarkGray Pink\n.....\n.....\n.....\n100..\n.0022\n\nMouseAnimR\nGray DarkGray Pink\n.....\n.....\n.....\n..001\n2200.\n\nWallnutAnim\nYellow Orange Blue\n..0..\n.011.\n.212.\n.2.2.\n22.22\n\nSpawner\ntransparent\n\nSpawnButton\ntransparent\n\nHordeButton\ntransparent\n\nGoL\ntransparent\n\nGoR\ntransparent\n\nDelete\ntransparent\n\nAscendButton\ntransparent\n\nPlayerAscending1\nBlack Orange White Blue Lightbrown\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nPlayerAscending2\nBlack Orange White Blue Lightbrown\n.000.\n21112\n.222.\n.333.\n.3.3.\n\nPlayerAscending3\nBlack Orange White Blue Lightbrown\n.000.\n24142\n.222.\n.333.\n.3.3.\n\nNextStep\ntransparent\n\nLight\nyellow\n00000\n00000\n00000\n00000\n00000\n\nLightL\nyellow\n...00\n...00\n...00\n...00\n...00\n\nLightR\nyellow\n00...\n00...\n00...\n00...\n00...\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nD = DogIdle\nC = CatIdle\nM = MouseIdle\nW = WallnutIdle\n* = Crate\n@ = Crate and Target\nO = Target\n\nDogActive = DogActiveL or DogActiveR\nCatActive = CatActiveL or CatActiveR\nMouseActive = MouseActiveL or MouseActiveR\n\nDog = DogIdle or DogActive\nCat = CatIdle or CatActive\nMouse = MouseIdle or MouseActive\nWallnut = WallnutIdle or WallnutActive\n\n(--Anim--)\n\n+ = PlayerAnim\n% = PlayerAnim and Spawner\n& = PlayerAscending3 and Light\n§ = Light\nµ = Light and SpawnButton\n£ = Light and Delete\n- = Spawner\n? = SpawnButton\n! = HordeButton\n< = GoL\n> = GoR\nX = Delete\n/ = AscendButton\n\nDogAnim = DogAnimL or DogAnimR\nCatAnim = CatAnimL or CatAnimR\nMouseAnim = MouseAnimL or MouseAnimR\n\nAscend = PlayerAscending1 or PlayerAscending2 or PlayerAscending3\n\nAnim = PlayerAnim or DogAnim or CatAnim or MouseAnim or WallnutAnim\n\n=======\nSOUNDS\n=======\n\nstartgame 13270509\nendlevel 22256108\nendgame 22256108\nrestart 94088302\nundo 87693501\n\nCrate MOVE 25943107\nCatIdle MOVE 25943107\nMouseIdle MOVE 25943107\nWallnutIdle MOVE 25943107\n\nsfx0 86992703\nDogActive MOVE 47565107\nCatActive MOVE 36092905\nMouseActive MOVE 20048306\nWallnutActive MOVE 18695302\n\n(--Anim--)\n\nDogAnim create 47565107\nDogAnim move 47565107\nCatAnim create 36092905\nCatAnim move 36092905\nMouseAnim create 20048306\nMouseAnim move 20048306\nWallnutAnim create 18695302\nWallnutAnim move 18695302\n\nPlayerAscending3 destroy 58002102\n\nsfx1 52296908\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Dog, Cat, Mouse, Wallnut, Wall, Crate\n\n(--Anim--)\n\nLight, LightL, LightR\nSpawner, SpawnButton, HordeButton, GoL, GoR, Delete, AscendButton\nPlayerAnim, Ascend, DogAnim, CatAnim, MouseAnim, WallnutAnim\nNextStep\n\n======\nRULES\n======\n\n[> Player | Crate] -> [> Player | > Crate]\n[> Player | CatIdle] -> [> Player | > CatIdle]\n[> Player | MouseIdle] -> [> Player | > MouseIdle]\n[> Player | WallnutIdle] -> [> Player | > WallnutIdle]\n\nright [DogActiveL | ... | Player] -> [DogActiveR | ... | Player]\nleft [DogActiveR | ... | Player] -> [DogActiveL | ... | Player]\nright [CatActiveL | ... | DogActive] -> [CatActiveR | ... | DogActive]\nleft [CatActiveR | ... | DogActive] -> [CatActiveL | ... | DogActive]\nright [MouseActiveL | ... | CatActive] -> [MouseActiveR | ... | CatActive]\nleft [MouseActiveR | ... | CatActive] -> [MouseActiveL | ... | CatActive]\n\n[DogActive | ... | Player] -> [> DogActive | ... | Player]\n[CatActive | ... | DogActive] -> [> CatActive | ... | DogActive]\n[MouseActive | ... | CatActive] -> [> MouseActive | ... | CatActive]\n[WallnutActive | ... | MouseActive] -> [> WallnutActive | ... | MouseActive]\n\nlate [DogIdle | Player] -> [DogActiveL | Player] sfx0\nlate [CatIdle | DogActive] -> [CatActiveL | DogActive] sfx0\nlate [MouseIdle | CatActive] -> [MouseActiveL | CatActive] sfx0\nlate [WallnutIdle | MouseActive] -> [WallnutActive | MouseActive] sfx0\n\n(--Anim--)\n\n[Anim] [GoL] -> [left Anim] [GoL] again\n[Anim] [GoR] -> [right Anim] [GoR] again\n[Anim Delete] -> [Delete] again\n[PlayerAscending3 Delete] -> [Delete] again\n\n[PlayerAscending3] -> [up PlayerAscending3] again\n\nlate [PlayerAnim SpawnButton] [GoR] [Spawner] -> [PlayerAnim SpawnButton] [GoR] [DogAnimR Spawner]\nlate [PlayerAnim SpawnButton] [GoL] [Spawner] -> [PlayerAnim SpawnButton] [GoL] [DogAnimL Spawner]\nlate [PlayerAscending3 SpawnButton] [Spawner] -> [PlayerAscending3 SpawnButton] [DogAnimR Spawner]\n\nlate [DogAnim HordeButton] [GoR] [Spawner] -> [DogAnim HordeButton] [GoR] [CatAnimR Spawner]\nlate [DogAnim HordeButton] [GoL] [Spawner] -> [DogAnim HordeButton] [GoL] [CatAnimL Spawner]\nlate [CatAnim HordeButton] [GoR] [Spawner] -> [CatAnim HordeButton] [GoR] [MouseAnimR Spawner]\nlate [CatAnim HordeButton] [GoL] [Spawner] -> [CatAnim HordeButton] [GoL] [MouseAnimL Spawner]\nlate [MouseAnim HordeButton] [Spawner] -> [MouseAnim HordeButton] [WallnutAnim Spawner]\n\nlate [Ascend AscendButton] -> [Ascend NextStep AscendButton] again\n\nlate [PlayerAnim AscendButton] -> [PlayerAscending1 AscendButton] again\n\n[PlayerAscending1 NextStep] -> [PlayerAscending2]\n[PlayerAscending2 NextStep] -> [PlayerAscending3] sfx1 win\n\nleft [Light | no Light] -> [Light | LightL]\nright [Light | no Light] -> [Light | LightR]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nNo DogIdle\nNo CatIdle\nNo MouseIdle\nNo WallnutIdle\n\n(--Anim--)\n\nNo Anim\nNo Ascend\n\n=======\nLEVELS\n=======\n\nmessage \"I wonder if I'll get chased by something today\"\nmessage Level 1a of 4\n\n#####.\n#...##\n#.#p.#\n#.*@.#\n#.o@.#\n#....#\n######\n\nmessage \"Oh just great\"\nmessage Level 1b of 4\n\n#####.\n#..d##\n#.#p.#\n#.*@.#\n#.o@.#\n#....#\n######\n\nmessage \"There's more following me ?\"\nmessage Level 1c of 4\n\n#####.\n#mcd##\n#.#p.#\n#.*@.#\n#.o@.#\n#....#\n######\n\nmessage \"I don't need anything please stop following me\"\nmessage Level 2 of 4\n\n####..\n#.o#..\n#..###\n#@p..#\n#..*d#\n#c.m##\n#####.\n\nmessage \"There's not way this wallnut can chase me\"\nmessage Level 3a of 4\n\n####.....\n#..###.#.\n#.d..#...\n##.#.###.\n.#.mp..#.\n.###.#w##\n...#...c#\n.#.###..#\n.....####\n\nmessage \"Okay nevermind\"\nmessage Level 3b of 4\n\n####.....\n#..###.#.\n#.w..#...\n##.#.###.\n.#.mp..#.\n.###.#d##\n...#...c#\n.#.###..#\n.....####\n\nmessage \"They'll never stop following me until I'm stuck\"\nmessage Level 4a of 4\n\n...#######\n####...#w#\n#..#.m.#.#\n#..d.*.o.#\n##c#.*.o.#\n.###.p.###\n...#####..\n\nmessage \"But I still have one last trick up my sleeve\"\nmessage Level 4b of 4\n\n.......###.\n...#####w#.\n####...#.##\n#..#.m.#...\n#..d.*oo.##\n##c#.*...#.\n.###.p.###.\n...#####...\n\n(--Anim--)\n\n.........\n....>....\n.........\n.........\n%.!.?...x\n.........\n.........\n\n.........\n....<....\n.........\n.........\nx...?.!.%\n.........\n.........\n\n.........\n....>....\n.........\n.........\n%!....?.x\n.........\n.........\n\n.........\n....>....\n.........\n.........\n+.../....\n.........\n.........\n\nmessage \"I ascend !\"\n\n....£....\n.>..§....\n....§....\n....§....\n-!..µ...x\n....&....\n....§....\n\nmessage \"Goodbyeeeee...\"\n\n",[1,0,0,0,3,0,1,2,2,2,3,0,3,3,2,1,0,1,2,3,0,1,1,1,1,1,0,3,2,3,3,1,0,2,0,3,2,2,1,0,3,0,3,2,3,2,3],"background:0,0,background wall:1,1,1,1,0,0,0,0,1,\n0,0,1,1,0,0,0,1,0,0,0,\n1,0,0,1,1,1,0,1,1,1,0,\n1,0,0,0,0,0,1,0,1,0,background mouseactiver:2,\n0,background crate:3,3,1,0,1,0,background catactiver:4,background dogactiver target:5,0,0,\n1,1,1,1,1,background player target:6,0,1,1,1,background wallnutidle:7,\n0,0,0,0,1,0,1,1,1,0,1,\n1,1,0,0,0,1,0,1,0,0,0,\n",23,"1645578571689.1494"] - ], - [ - "Kettle, except something is off", - ["title Kettle, except something is off\nauthor Stingby12\nhomepage https://stingby12.itch.io/\n\ncolor_palette arnecolors\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(Moonwulk)\n\n[ up rpolice] -> [rpolice]\n[ down rpolice] -> [rpolice]\n[ left rpolice] -> [ left rpolice]\n\n[ down upolice] -> [ down upolice]\n[ left upolice] -> [upolice]\n[ right upolice] -> [upolice]\n\n[ up lpolice] -> [lpolice]\n[ down lpolice] -> [lpolice]\n[ right lpolice] -> [ right lpolice]\n\n[ up dpolice] -> [ up 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 You've been hit back by a smooth Kettle\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################\n\nmessage Area secure\nmessage What are these people in black doing ?!\n\n################\n#..............#\n#..............#\n#..............#\n#....kkkkkk....#\n#...lc..c.cj...#\n#...l......j...#\n#...lc.@tt.j...#\n#...l..t@tcj...#\n#...l..ttt.j...#\n#...lc..c..j...#\n#....iiiiii....#\n#..............#\n#..............#\n#..............#\n################\n\nmessage Area secure\nmessage We may be in trouble.\n\n##########\n#..k.....#\n#........#\n#..ltck.j#\n#..c..t..#\n#..t..c..#\n#l.ictj..#\n#........#\n#.....i..#\n##########\n\nmessage Area secure\nmessage KAW !\n\n###############\n#.............#\n#....k........#\n#......k......#\n#..l.c....k...#\n#......c.j....#\n#...l.@tt.c.j.#\n#.l.c.tt@.....#\n#.....t@t.....#\n#..l.c..c.j...#\n#.....i.......#\n#....i..i.....#\n#.............#\n#.............#\n###############\n\nmessage Area secure\nmessage Mickael Jackson was here.\nmessage Next time it will be Despacito.\n\n",[2,0,2,0,0,1,1,1,3,3,2,1,1,0,0,1,2,1,1,0,3,3,3,3,0,1,0,0],"background wall:0,0,0,0,0,0,0,0,0,0,\n0,background:1,1,background rpolice:2,1,1,1,1,1,0,\n0,1,1,background crate:3,1,1,2,1,1,0,\n0,background dpolice:4,3,background upolice:5,1,background target:6,3,1,1,0,\n0,1,1,6,1,1,background lpolice:7,1,1,0,\n0,1,1,1,1,1,6,1,1,0,\n0,4,3,5,6,1,1,1,1,0,\n0,1,1,7,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,0,\n",7,"1645562847734.9592"] - ], - [ - "Lightdown", - ["title Lightdown\nauthor Stingby12\nhomepage https://stingby12.itch.io/\n\nbackground_color #262626\n\nrun_rules_on_level_start\n\nkey_repeat_interval 0.3\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nPlayer\nWhite Black\n.000.\n01010\n00000\n01110\n.000.\n\nNormalWall\nWhite\n\nLightWall\nWhite Gray\n00000\n00100\n01110\n00100\n00000\n\nSolidWall\n#262626\n\nFakeWall\nTransparent\n\nLightCrate\nWhite #808080 Black\n.000.\n00100\n01010\n00100\n.000.\n\nNormalCrate\nWhite #808080 Black\n.000.\n00200\n02120\n00200\n.000.\n\nFakeCrate\nTransparent\n\nTarget\nWhite #808080\n.....\n.0.0.\n..1..\n.0.0.\n.....\n\nTargetActi\nWhite White\n.....\n.0.0.\n..1..\n.0.0.\n.....\n\nLightFew\nblack\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nLightMid\nblack\n.....\n.....\n.....\n.....\n.....\n\nLightFull\nblack\n.....\n.....\n.....\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n% = LightWall\n# = NormalWall and FakeWall\n- = SolidWall\n* = LightCrate\n@ = NormalCrate and FakeCrate\nx = Target\n\nLight = LightFull or LightMid or LightFew\nCrate = LightCrate or NormalCrate\nWall = NormalWall or LightWall or SolidWall\n\n=======\nSOUNDS\n=======\n\nstartgame 4133508\nendlevel 74089700\n\nCrate move 19432707\nrestart 14550505\n\nsfx0 10653902\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFakeWall\nNormalWall, LightWall\nTarget, TargetActi\nFakeCrate\nCrate\nLight\nSolidWall\nPlayer\n\n======\nRULES\n======\n\n(Clearing)\n[Light] -> []\n[TargetActi] -> [Target]\n\n(Basic movement)\n[> Player | Crate] -> [> Player | > Crate]\n[> Player | Wall] -> [Player | Wall]\n\n[> Player] [> Crate | Crate] -> [Player] [Crate | Crate]\n[> Player] [> Crate | Wall] -> [Player] [Crate | Wall]\n[> Crate FakeCrate | FakeCrate] -> [ | Crate FakeCrate] sfx0\n\n[> Crate FakeCrate] -> [> Crate > FakeCrate]\n\nlate [Target Crate] -> [TargetActi Crate]\nlate [Target FakeCrate] -> [TargetActi FakeCrate]\n\n(Lighting)\nlate [LightCrate] -> [LightFull LightCrate]\n+ late [LightWall] -> [LightFull LightWall]\n+ late [LightFull | no Light no SolidWall] -> [LightFull | LightMid]\n+ late [LightMid | no Light no SolidWall] -> [LightMid | LightFew]\n\n(Darkess effects)\nlate [NormalWall no Light] -> []\nlate [FakeWall Light] -> [FakeWall NormalWall Light]\n\nlate [NormalCrate no Light] -> []\nlate [FakeCrate Light] -> [FakeCrate NormalCrate Light]\n\n==============\nWINCONDITIONS\n==============\n\nNo Target\n\n=======\nLEVELS\n=======\n\nmessage It's so dark in here.\nmessage Maybe this lantern can help me find the way out.\n\nmessage Level 1 of 8\n\n###########\n#....#....#\n#...*#....#\n#p...#.*#x%\n#...*#....#\n#....#....#\n###########\n\nmessage Level 2 of 8\n\n#####%\n#....#\n#x.*.#\n#p####\n#x.*.#\n#....#\n#####%\n\nmessage Level 3 of 8\n\n.........\n.x...###.\n.x@.*p@#.\n.x...###.\n.........\n\nmessage Level 4 of 8\n\n########\n#.@@@@.#\n#..*.p.#\n#.xxxxx#\n########\n\nmessage Level 5 of 8\n\n.......\n.@.#.p.\n...#...\n.*.#.x.\n.......\n\nmessage Level 6 of 8\n\n.....######\n.....@@.xx%\n--*..@@pxx#\n.....@@.xx%\n.....######\n\nmessage Level 7 of 8\n\n###%#####%#####%###\n#.....#...*.#x.@..#\n#...@*#...*x#..*..#\n#p.x@x#...*.#x.@..#\n#...@*#...*x#..*..#\n#.....#...*.#x.@..#\n###%#####%#####%###\n\nmessage Level 8 of 8\n\n-######-\n##@@@@##\n#@xxxx@#\n#@x*xx@#\n#@xp*x@#\n#@xxxx@#\n##@@@@##\n-######-\n\nmessage I guess darkness is not that useless after all.\n\n",[0,1,1,1,1,1,1,2,3,3,2,1,2,1,0,3,0,0,1,1,2,3,2,3,3,0,0,3,1,3,2,"undo",1,2,3,"undo",0,1,1,2,3,0,3,3,3,2,"undo",0,3,1,2,2,3,3,3,"undo","undo",1,0,0,2,3,2,2,3,3,3,3,0,0,1,0,1,2,3,2,2,2,1,1,1,0,0,3,"undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo",2,"undo",3,2,2,2,1,1,1,1,0,0,0,3,2,3,"undo",1,3,2,"undo",1,2,3,3,2,3,3,1,"undo","undo","restart",1,1,1,1,0,1,2,3,2,2,1,1,0,3,3,"undo",2,3,3,0,3,"undo",0,3,3,2,1,2,1,0,2,1,1,0,3,3,0,"undo",0,2,1,0,0,3,3,"undo",3,"undo",0,3,3,2,3,2,1,2,1,2,1,0,0,0,1,1,"undo",1,3,1,1,2,3,2,3,2,3,0,0,0,3,3,3,3,3,2,1],"background:0,0,background solidwall:1,0,0,0,0,1,0,0,0,\n0,0,0,0,0,0,0,background lightfew:2,0,0,background fakecrate:3,\n2,background lightmid:4,2,background fakewall:5,2,background fakecrate lightmid normalcrate:6,background lightcrate lightfull:7,background fakewall lightmid normalwall:8,5,3,background fakecrate lightfew normalcrate:9,\n6,background fakewall lightfew normalwall:10,5,0,0,2,5,5,background lightfew target:11,background player target:12,11,\n5,10,background lightmid target:13,11,13,10,8,background lightfull lightwall:14,8,14,8,\n",13,"1645563041712.7258"] - ], - + ["title Simple Block Pushing Game\nauthor David Skinner\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\n00000\n0...0\n0...0\n0...0\n00000\n\nhorizontali\nblue\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\nhorizontali move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nhorizontali\n\n======\nRULES\n======\n\n\n[ > Player | Crate ] -> [ > Player | > Crate ] sfx0 sfx1\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\n", [0, 1, 2, 2], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,background target:2,background player:3,\nbackground crate:4,0,0,2,1,1,\n1,1,0,0,0,0,\n1,4,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 0, "1629314889294.314"] + ], + + [ + "VEXT EDIT", + ["title VEXT EDIT\nauthor JACK\n\nrun_rules_on_level_start\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\n#eeeeee\n\nPlayerTarget1mark\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1mark\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nPlayerTarget1\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0Mark\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nWall0 \n#884400 #f00\n00000\n00000\n00000\n00000\n00000\n\nwalll0 \nBrown #f00\n1....\n1....\n1....\n1....\n1....\n\nWallr0 \nBrown #f00\n....1\n....1\n....1\n....1\n....1\n\nWalld0 \nBrown #f00\n.....\n.....\n.....\n.....\n11111\n\nWallu0 \nBrown #f00\n11111\n.....\n.....\n.....\n.....\n\nBlack\nblack\n\nwall0ghost\ntransparent\n\nWall0Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1 \n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall2\n#884400 #00f\n00000\n00000\n00000\n00000\n00000\n\nwalll2\nBrown #00f\n1....\n1....\n1....\n1....\n1....\n\nWallr2 \nBrown #00f\n....1\n....1\n....1\n....1\n....1\n\nWalld2 \nBrown #00f\n.....\n.....\n.....\n.....\n11111\n\nWallu2 \nBrown #00f\n11111\n.....\n.....\n.....\n.....\n\nwalll1 \nBrown #ff0\n1....\n1....\n1....\n1....\n1....\n\nWallr1 \nBrown #ff0\n....1\n....1\n....1\n....1\n....1\n\nWalld1 \nBrown #ff0\n.....\n.....\n.....\n.....\n11111\n\nWallu1 \nBrown #ff0\n11111\n.....\n.....\n.....\n.....\n\nCrate1Mark\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate1\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate01\ntransparent\n\nCrate0\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate0mark\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\ncrate0ghost\ntransparent\n\nPlayer1Mark\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nPlayer1\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nDed1Mark\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nDed1\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nCrated0\n#f80 #f00\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu0\n#f80 #f00\n.010.\n.010.\n.....\n.....\n.....\n\nCratel0\n#f80 #f00\n.....\n00...\n11...\n00...\n.....\n\nCrater0\n#f80 #f00\n.....\n...00\n...11\n...00\n.....\n\nCrated1\n#f80 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu1\n#f80 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nCratel1\n#f80 #ff0\n.....\n00...\n11...\n00...\n.....\n\nCrater1\n#f80 #ff0\n.....\n...00\n...11\n...00\n.....\n\n\nPit1Mark\nblack #bbbb00 white\n.111.\n10001\n10001\n10001\n.111.\n\n\nPit1\nblack #bbbb00 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\npit0ghost\ntransparent\n\nPit0\nblack #bb0000 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\n\npit0u\nblack #bb0000\n10001\n.....\n.....\n.....\n.....\n\npit0d\nblack #bb0000\n.....\n.....\n.....\n.....\n10001\n\npit0l\nblack #bb0000\n1....\n0....\n0....\n0....\n1....\n\npit0r\nblack #bb0000\n....1\n....0\n....0\n....0\n....1\n\npit1u\nblack #bbbb00\n10001\n.....\n.....\n.....\n.....\n\npit1d\nblack #bbbb00\n.....\n.....\n.....\n.....\n10001\n\npit1l\nblack #bbbb00\n1....\n0....\n0....\n0....\n1....\n\npit1r\nblack #bbbb00\n....1\n....0\n....0\n....0\n....1\n\nrim0u\n#b00\n.000.\n.....\n.....\n.....\n.....\n\nrim0l\n#b00\n.....\n0....\n0....\n0....\n.....\n\nrim0r\n#b00\n.....\n....0\n....0\n....0\n.....\n\nrim0d\n#b00\n.....\n.....\n.....\n.....\n.000.\n\nrim1u\n#bb0\n.000.\n.....\n.....\n.....\n.....\n\nrim1l\n#bb0\n.....\n0....\n0....\n0....\n.....\n\nrim1r\n#bb0\n.....\n....0\n....0\n....0\n.....\n\nrim1d\n#bb0\n.....\n.....\n.....\n.....\n.000.\n\nblackul\nblack\n0....\n.....\n.....\n.....\n.....\n\nblackur\nblack\n....0\n.....\n.....\n.....\n.....\n\nblackdl\nblack\n.....\n.....\n.....\n.....\n0....\n\nblackdr\nblack\n.....\n.....\n.....\n.....\n....0\n\nfell0\n#884400 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1mark\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfelld1\n#884400 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nfellu1\n#884400 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nfelll1\n#884400 #ff0\n.....\n00...\n11...\n00...\n.....\n\nfellr1\n#884400 #ff0\n.....\n...00\n...11\n...00\n.....\n\nfell0ghost\ntransparent\n\nsupported\ntransparent\n\nfellcant1\ntransparent\n\ncant1\ntransparent\n\ncant0\ntransparent\n\nfellcant0\ntransparent\n\ndead0a\ndarkred\n.....\n.0.0.\n.....\n.0.0.\n.....\n\ncursor0a\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\ncursor0b\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\n\n\ncursor2a\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\ncursor2b\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\none2mark\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2mark\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2mark\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none2\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0mark\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0mark\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0mark\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\nfour0\n#f00\n.0.0.\n.0.0.\n..00.\n...0.\n...0.\n\nfive0\n#f00\n.000.\n.0...\n.00..\n...0.\n.00..\n\nsix0\n#f00\n..00.\n.0...\n.00..\n.0.0.\n..0..\n\nseven0\n#f00\n.000.\n...0.\n...0.\n..0..\n..0..\n\ninf0\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\ninf0mark\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\n\ndecrement\ntransparent\n\nholding\ntransparent\n\nactiveb\n#f00\n.....\n.0.0.\n.....\n.....\n.....\n\nactive\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\nactivefell\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\npickeda0\ntransparent\n\npickedb0\ntransparent\n\npickeda2\ntransparent\n\npickedb2\ntransparent\n\nchosepink\n#ff22ff\n\nchosecyan\n#22ffff\n\npink\n#ff88ff\n\ncyan\n#88ffff\n\nplacemark\ntransparent\n\nactivecurse0\ntransparent\n\npartb\ntransparent\n\npartc\ntransparent\n\ncursor0mark\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\nwall2ghost\ntransparent\n\ncant2\ntransparent\n\nshowhere\ntransparent\n\nshowthis\ntransparent\n=======\nLEGEND\n=======\n\n` = Background\n& = Wall2 and wall1 and wall0\n# = Wall1\nX = Wall0\n+ = Wall0 and Wall1\nP = Player1 and active\n\nn = crate0 and crate1 and crate01\no = Crate1\n- = crate1 and crater1\n: = crate1 and crateu1\nL = crate1 and crater1 and crateu1\n0 = pit1\n! = crate0\n? = pit0\n/ = pit0 and pit1\n\n@ = one0 and pit0\nz = player1 and pit0\n\n| = black\n\n' = partb\n\" = partc\n\n~ = cursor2a\n_ = cursor2b\n\n1 = one0\n2 = two0\n3 = three0\n4 = four0\n5 = five0\n6 = six0\n7 = seven0\n8 = inf0\n\n[ = one2\n{ = two2\n] = three2\n> = wall2\nactiveab = active or activeb or activefell\npartbc = partb or partc\n\ny = target0\nu = Target1 and pit1\nt = Target1\nq = playertarget1\nr = player1\nb = cursor0a\nc = cursor0a and activecurse0\nk = cursor0b and activecurse0\ncurse0a = cursor0a or dead0a\ncurse0 = curse0a or cursor0b\ncurse2 = cursor2a or cursor2b\ncursor0 = cursor0a or cursor0b\n \nplayer = curse2 or activecurse0 or active or dead0a or activefell\ndead0 = dead0a\nx1 = player1 or crate1 or wall1 or target1 or playertarget1 or pit1\nx0 = crate0 or wall0 or pit0 or fell0\nxx = x0 or x1 or curse0\nx0ghost = crate0ghost or wall0ghost or pit0ghost or fell0ghost\ncratex1 = cratel1 or crater1 or crated1 or crateu1\nwallx2 = walll2 or wallr2 or walld2 or wallu2\nwallx1 = walll1 or wallr1 or walld1 or wallu1\nwallx0 = walll0 or wallr0 or walld0 or wallu0\nfellx1 = felll1 or fellr1 or felld1 or fellu1\npit0x = pit0l or pit0r or pit0d or pit0u\npit1x = pit1l or pit1r or pit1d or pit1u\ncrateorfell1 = crate1 or fell1\nplayerormark1 = player1 or player1mark\n\nx0mark = one0mark or two0mark or three0mark or cursor0mark or wall0mark or target0mark or crate0mark or inf0mark\nx1mark = player1mark or crate1mark or pit1mark or wall1mark or fell1mark or ded1mark or crate1mark or Target1mark or PlayerTarget1mark\nx2mark = one2mark or two2mark or three2mark\nxmark = x0mark or x1mark or x2mark\nnumber0 = one0 or two0 or three0 or four0 or five0 or six0 or seven0 or inf0\nnumber2 = one2 or two2 or three2\npicked = pickeda0 or pickedb0 or pickeda2 or pickedb2\n\npickable = player1 or pit1 or crate1 or number0 or wall1 or number2 or fell1 or ded1 or target0 or PlayerTarget1 or Target1\npickable2 = curse0a or pickable or wall0 or crate0 \n\nblackcorner = blackul or blackdl or blackur or blackdr\nrim0x = rim0l or rim0d or rim0u or rim0r\nrim1x = rim1l or rim1d or rim1u or rim1r \n=======\nSOUNDS\n=======\n\nSFX0 51304502\n\nsfx1 22108304\n\nSFX2 84700307\n\nSFX3 78571302\n\nSFX4 25131906\n\nSFX5 13408901\n\nSFX6 50704903\n\nSFX7 24622504\n\nSFX8 29744504\n\nSFX9 13344503\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\npink, chosepink\ncyan, chosecyan\n\n\nPit1,\npit1r\npit1l\npit1d\npit1u\npit0, pit0ghost\npit0r\npit0l\npit0d\npit0u\nblackul\nblackur\nblackdr\nblackdl\nTarget1, PlayerTarget1, target0\n\nfell1, ded1\nfelll1\nfellr1\nfelld1\nfellu1\n\ndead0a, fell0, fell0ghost\nrim0l \nrim0d \nrim0u \nrim0r\n\nrim1l \nrim1d \nrim1u \nrim1r \nPlayer1, Wall1, Crate1, \npit1mark\nfell1mark, ded1mark, target0mark\nTarget1mark, PlayerTarget1mark\nplayer1mark, crate1mark\nwall1mark\none0mark, two0mark, three0mark, wall0mark, inf0mark\none2mark, two2mark, three2mark\ncursor0mark, crate0mark\nnumber0, number2\ncratel1, walll1, \ncrater1, wallr1, \ncrated1, walld1, \ncrateu1, wallu1, \ncursor0, wall0, crate0, wall0ghost, crate0ghost\n walll0, cratel0\n wallr0, crater0\n walld0, crated0\n wallu0, crateu0\n crate01\n wall2, wall2ghost\n wallr2\n wallu2\n walll2\n walld2\n cursor2a, cursor2b\n \nfellcant1\nfellcant0\ncant0\ncant1\ncant2\nsupported\nactivefell\nactive, activeb\nactivecurse0\nholding\ndecrement\npickeda0, pickeda2\npickedb0, pickedb2\nplacemark\npartb partc\nshowthis\nshowhere\nblack\n\n======\nRULES\n======\n\n(Deal with action-----------------------------------------------------------------------------)\n\n[action activecurse0 curse0] -> [activecurse0 action curse0]\n\n(pick up ready icon)\ndown[action curse0a no holding pickable|number0] -> [curse0a holding pickable|number0 pickeda0] SFX9\ndown[action cursor0b no holding pickable|number0] -> [cursor0b holding pickable|number0 pickedb0] SFX9\ndown[action cursor2a no holding pickable2|number2] -> [cursor2a holding pickable2|number2 pickeda2] SFX9\ndown[action cursor2b no holding pickable2|number2] -> [cursor2b holding pickable2|number2 pickedb2] SFX9\n(switch to new ready icon)\ndown [action curse0a pickable| number0 no pickeda0][pickeda0] -> [curse0a pickable | number0 pickeda0][] SFX9\ndown [action cursor0b pickable| number0 no pickedb0][pickedb0] -> [cursor0b pickable | number0 pickedb0][] SFX9\ndown [action cursor2a pickable2| number2 no pickeda2][pickeda2] -> [cursor2a pickable2 | number2 pickeda2][] SFX9\ndown [action cursor2b pickable2| number2 no pickedb2][pickedb2] -> [cursor2b pickable2 | number2 pickedb2][] SFX9\n\n(put down ready icon)\ndown [action curse0 holding pickable| picked] -> [curse0 pickable|] SFX8\ndown [action cursor2a holding pickable2| pickeda2] -> [cursor2a pickable2|] SFX8\ndown [action cursor2b holding pickable2| pickedb2] -> [cursor2b pickable2|] SFX8\n\n(show mark)\nlate [xmark] -> []\nlate [showthis] -> []\nlate [showhere] -> []\n\nlate down [ | number0 pickeda0][curse0a] -> [showthis | number0 pickeda0][curse0a showhere]\nlate down [ | number0 pickedb0][cursor0b] -> [showthis | number0 pickedb0][cursor0b showhere]\nlate down [ | number2 pickeda2][cursor2a] -> [showthis | number2 pickeda2][cursor2a showhere]\nlate down [ | number2 pickedb2][cursor2b] -> [showthis | number2 pickedb2][cursor2b showhere]\nlate [showthis player1][showhere] -> [showthis player1][showhere player1mark]\nlate [showthis pit1][showhere] -> [showthis pit1][showhere pit1mark]\nlate [showthis crate1][showhere] -> [showthis crate1][showhere crate1mark]\nlate [showthis wall1][showhere] -> [showthis wall1][showhere wall1mark]\nlate [showthis one0][showhere] -> [showthis one0][showhere one0mark]\nlate [showthis two0][showhere] -> [showthis two0][showhere two0mark]\nlate [showthis three0][showhere] -> [showthis three0][showhere three0mark]\nlate [showthis one2][showhere] -> [showthis one2][showhere one2mark]\nlate [showthis two2][showhere] -> [showthis two2][showhere two2mark]\nlate [showthis three2][showhere] -> [showthis three2][showhere three2mark]\nlate [showthis wall0][showhere] -> [showthis wall0][showhere wall0mark]\nlate [showthis fell1][showhere] -> [showthis fell1][showhere fell1mark]\nlate [showthis ded1][showhere] -> [showthis ded1][showhere ded1mark]\nlate [showthis target0][showhere] -> [showthis target0][showhere target0mark]\nlate [showthis crate0][showhere] -> [showthis crate0][showhere crate0mark]\nlate [showthis cursor0][showhere] -> [showthis cursor0][showhere cursor0mark]\nlate [showthis inf0][showhere] -> [showthis inf0][showhere inf0mark]\nlate [showthis Target1][showhere] -> [showthis target1][showhere Target1mark]\nlate [showthis PlayerTarget1][showhere] -> [showthis PlayerTarget1][showhere PlayerTarget1mark]\n(connect cratemark)\nup [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crateu1 | crate1 crated1]\ndown [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crated1 | crate1 crateu1]\nleft [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark cratel1 | crate1 crater1]\nright [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crater1 | crate1 cratel1]\nup [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crateu1 | fell1 felld1]\ndown [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crated1 | fell1 fellu1]\nleft [action curse0 holding fell1mark no xx no number0 no number2| fell1] -> [action curse0 holding fell1mark cratel1 | fell1 fellr1]\nright [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crater1 | fell1 felll1]\n\n(place mark)\n[placemark] -> []\n\ndown [action curse0a holding xmark no x1 no number0][pickeda0 number0] -> [curse0a holding xmark placemark][pickeda0 decrement number0] SFX7\ndown [action cursor0b holding xmark no x1 no number0][pickedb0 number0] -> [cursor0b holding xmark placemark][pickedb0 decrement number0] SFX7\n\ndown [action cursor2a holding xmark no xx no number0 no number2][pickeda2 number2] -> [cursor2a holding xmark placemark][pickeda2 decrement number2] SFX7\ndown [action cursor2b holding xmark no xx no number0 no number2][pickedb2 number2] -> [cursor2b holding xmark placemark][pickedb2 decrement number2] SFX7\n\n\n\n[placemark player1mark] -> [placemark player1 player1mark]\n[placemark pit1mark] -> [placemark pit1 pit1mark]\n[placemark crate1mark] -> [placemark crate1 crate1mark]\n[placemark wall1mark] -> [placemark wall1 wall1mark]\n[placemark one0mark] -> [placemark one0 one0mark]\n[placemark two0mark] -> [placemark two0 two0mark]\n[placemark three0mark] -> [placemark three0 three0mark]\n[placemark one2mark] -> [placemark one2 one2mark]\n[placemark two2mark] -> [placemark two2 two2mark]\n[placemark three2mark] -> [placemark three2 three2mark]\n[placemark wall0mark] -> [placemark wall0 wall0mark]\n[placemark fell1mark] -> [placemark fell1 fell1mark]\n[placemark ded1mark] -> [placemark ded1 ded1mark]\n[placemark target0mark] -> [placemark target0 target0mark]\n[placemark crate0mark] -> [placemark crate0 crate0mark]\n[placemark Target1mark] -> [placemark target1 Target1mark]\n[placemark inf0mark] -> [placemark inf0 inf0mark]\n[placemark PlayerTarget1mark] -> [placemark playertarget1 PlayerTarget1mark]\ndown [placemark cursor0mark][curse0a|no one2] -> [ cursor0b cursor0mark][curse0a|]\n[placemark cursor0mark] -> [placemark cursor0a cursor0mark]\n\n(decrement number of placed item)\ndown [xmark holding cursor2a][pickable2|one2 decrement pickeda2] -> [xmark holding cursor2a][|one2 decrement pickeda2]\ndown [xmark holding cursor2b][pickable2|one2 decrement pickedb2] -> [xmark holding cursor2b][|one2 decrement pickedb2]\ndown [xmark holding curse0a][pickable|one0 decrement pickeda0] -> [xmark holding curse0a][|one0 decrement pickeda0]\ndown [xmark holding cursor0b][pickable|one0 decrement pickedb0] -> [xmark holding cursor0b][|one0 decrement pickedb0]\ndown [xmark holding cursor2a][|one2 decrement pickeda2] -> [cursor2a][|]\ndown [xmark holding cursor2b][|one2 decrement pickedb2] -> [cursor2b][|]\ndown [xmark holding cursor0a][|one0 decrement pickeda0] -> [cursor0a][|]\ndown [xmark holding cursor0b][|one0 decrement pickedb0] -> [cursor0b][|]\n[one0 decrement] -> []\n[two0 decrement] -> [one0]\n[three0 decrement] -> [two0]\n[four0 decrement] -> [three0]\n[five0 decrement] -> [four0]\n[six0 decrement] -> [five0]\n[seven0 decrement] -> [six0]\n[one2 decrement] -> []\n[two2 decrement] -> [one2]\n[three2 decrement] -> [two2]\n\n\n\n(player -> cursor)\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [player1 action active no wall0ghost no crate0ghost][partbc] -> [cursor0a player1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [ded1 action activefell no wall0ghost no crate0ghost][partbc] -> [cursor0a ded1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\n\n(cursor holding -> player)\ndown [action curse0a activecurse0 player1 holding xmark][| number0 pickeda0] -> [active player1][ | number0] SFX6\ndown [action curse0a activecurse0 ded1 holding xmark][| number0 pickeda0] -> [activefell ded1][ | number0] SFX6\ndown [action cursor0b activecurse0 player1 holding xmark][| number0 pickedb0] -> [active player1][ | number0] SFX6\ndown [action cursor0b activecurse0 ded1 holding xmark][| number0 pickedb0] -> [activefell ded1][ | number0] SFX6\n(empty cursor -> player)\n[action curse0 player1 activecurse0 no holding] -> [active player1] SFX6\n[action curse0 ded1 activecurse0 no holding] -> [activefell ded1] SFX6\n(red -> blue)\n[action cursor0a activecurse0 holding xmark][partc][pickeda0] -> [cursor0a cursor2a][partc][] SFX5\n[action cursor0a activecurse0 ][partc] -> [cursor0a cursor2a][partc] SFX5\n[action cursor0b activecurse0 holding xmark][partc][pickedb0] -> [cursor0b cursor2b][partc][] SFX5\n[action cursor0b activecurse0 ][partc] -> [cursor0b cursor2b][partc] SFX5\n(blue holding -> red)\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\nrandom down [action curse2 curse0 holding xmark][| number2 pickeda2] -> [activecurse0 cursor0a][ | number2] SFX6\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\n(empty blue -> red)\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\nrandom [action curse2 curse0 no holding] -> [activecurse0 cursor0a] SFX6\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\n\n\n[action player] -> SFX0\n[action curse0] -> SFX0\n\n(Aesthetic----------------------------------------------------------------------------------------)\n\n\n\n(ghosts)\n[player1 active][pit0] -> [player1 active][pit0ghost]\n[pit0ghost][cursor0] -> [pit0][cursor0]\n[player1 active][wall0] -> [player1 active][wall0ghost]\n[wall0ghost][cursor0] -> [wall0][cursor0]\n[player1 active][crate0] -> [player1 active][crate0ghost]\n[crate0ghost][cursor0] -> [crate0][cursor0]\n[player1 active][fell0] -> [player1 active][fell0ghost]\n[fell0ghost][cursor0] -> [fell0][cursor0]\n[curse0 activecurse0][wall2] -> [curse0 activecurse0][wall2ghost]\n[wall2ghost][curse2] -> [wall2][curse2]\n\n\n(wall boundaries)\n[wallx2] -> []\n[wallx1] -> []\n[wallx0] -> []\nup [wall2 | no wall2] -> [wall2 wallu2 | ]\ndown [wall2 | no wall2] -> [wall2 walld2 | ]\nleft [wall2 | no wall2] -> [wall2 walll2 | ]\nright [wall2 | no wall2] -> [wall2 wallr2 | ]\nup [wall1 | no wall1] -> [wall1 wallu1 | ]\ndown [wall1 | no wall1] -> [wall1 walld1 | ]\nleft [wall1 | no wall1] -> [wall1 walll1 | ]\nright [wall1 | no wall1] -> [wall1 wallr1 | ]\nup [wall0 | no wall0] -> [wall0 wallu0 | ]\ndown [wall0 | no wall0] -> [wall0 walld0 | ]\nleft [wall0 | no wall0] -> [wall0 walll0 | ]\nright [wall0 | no wall0] -> [wall0 wallr0 | ]\n\n(crate connectors)\nup [crateu0|] -> [crateu0 | crated0]\nright [crater0|] -> [crater0 | cratel0]\nup [crateu1|] -> [crateu1 | crated1]\nright [crater1|] -> [crater1 | cratel1]\n(pit connectors)\n[blackcorner] -> []\n[pit0x] -> [] \n[pit1x] -> [] \nup [pit1 | pit1] -> [pit1u pit1|pit1d pit1]\nright [pit1 | pit1] -> [pit1r pit1|pit1l pit1]\nup [pit0 | pit0] -> [pit0u pit0|pit0d pit0]\nright [pit0 | pit0] -> [pit0r pit0|pit0l pit0]\n[pit1u pit1r] -> [pit1u pit1r blackur]\n[pit1u pit1l] -> [pit1u pit1l blackul]\n[pit1d pit1r] -> [pit1d pit1r blackdr]\n[pit1d pit1l] -> [pit1d pit1l blackdl]\n[pit0u pit0r] -> [pit0u pit0r blackur]\n[pit0u pit0l] -> [pit0u pit0l blackul]\n[pit0d pit0r] -> [pit0d pit0r blackdr]\n[pit0d pit0l] -> [pit0d pit0l blackdl]\n[rim1x] -> []\n[rim0x] -> []\nup[pit0|no pit0] -> [pit0 rim0u|]\ndown[pit0|no pit0] -> [pit0 rim0d|]\nleft[pit0|no pit0] -> [pit0 rim0l|]\nright[pit0|no pit0] -> [pit0 rim0r|]\nup[pit1|no pit1] -> [pit1 rim1u|]\ndown[pit1|no pit1] -> [pit1 rim1d|]\nleft[pit1|no pit1] -> [pit1 rim1l|]\nright[pit1|no pit1] -> [pit1 rim1r|]\nlate [pink] -> []\nlate [cyan] -> []\nlate [chosepink] -> []\nlate [chosecyan] -> []\nlate down [pickable |number0] -> [pickable pink | number0 pink]\nlate down [pickable2 |number2] -> [pickable2 cyan | number2 cyan]\nlate up [pink picked|pink] -> [chosepink picked|chosepink ]\nlate up [cyan picked|cyan ] -> [chosecyan picked|chosecyan ]\n\n(Movement----------------------------------------------------------------------------------------)\n\n(move attached items)\n[moving activecurse0 curse0] -> [moving activecurse0 moving curse0]\n[moving active player1] -> [moving active moving player1]\n[moving activefell ded1] -> [moving activefell moving ded1]\n[moving curse0 holding] -> [moving curse0 moving holding]\n[moving curse2 holding] -> [moving curse2 moving holding]\n\n(reset and propogate cant)\n[cant0] -> []\n[cant1] -> []\n[cant2] -> []\n[fellcant0] -> []\n[fellcant1] -> []\n\n[black no cant0 no cant1 no cant2] -> [black cant0 cant1 cant2]\n[wall2 no cant2] -> [wall2 cant2]\n[wall1 no cant1] -> [wall1 cant1]\n[wall0 no cant0] -> [wall0 cant0]\n[number0] -> [number0 cant1]\n[number2] -> [number2 cant1]\n[no pit1 no fellcant1] -> [fellcant1]\n[no pit0 no fellcant0] -> [fellcant0]\n\n[> ded1][fell1|fellcant1] -> [> ded1][fell1 fellcant1 | fellcant1]\n+ [> ded1][ded1|fellcant1] -> [> ded1][ded1 fellcant1 | fellcant1]\n+ up[fellu1|fellcant1] -> [fellu1 fellcant1 | fellcant1]\n+ left[felll1|fellcant1] -> [felll1 fellcant1 | fellcant1]\n+ down[felld1|fellcant1] -> [felld1 fellcant1 | fellcant1]\n+ right[fellr1|fellcant1] -> [fellr1 fellcant1 | fellcant1]\n\n+ [> player1][crate1|cant1] -> [> player1][crate1 cant1 | cant1]\n+ [> player1][player1|cant1] -> [> player1][player1 cant1 | cant1]\n+ up[crateu1|cant1] -> [crateu1 cant1 | cant1]\n+ left[cratel1|cant1] -> [cratel1 cant1 | cant1]\n+ down[crated1|cant1] -> [crated1 cant1 | cant1]\n+ right[crater1|cant1] -> [crater1 cant1 | cant1]\n+ [crate1 crate0 cant0] -> [crate1 crate0 cant0 cant1]\n+ [crate1 crate0 cant1] -> [crate1 crate0 cant0 cant1]\n+ [> dead0][dead0|fellcant0] -> [> dead0][dead0 fellcant0 | fellcant0]\n+ [> cursor0][cursor0|cant0] -> [> cursor0][cursor0 cant0 | cant0]\n+ [> cursor0][crate0 | number0] -> [> cursor0][crate0 cant0| number0]\n+ [> cursor0][crate0|cant0] -> [> cursor0][crate0 cant0 | cant0]\n+ up[crateu0|cant0] -> [crateu0 cant0 | cant0]\n+ left[cratel0|cant0] -> [cratel0 cant0 | cant0]\n+ down[crated0|cant0] -> [crated0 cant0 | cant0]\n+ right[crater0|cant0] -> [crater0 cant0 | cant0]\n\n[> curse2 | wall2] -> [stationary curse2 | wall2]\n[> curse2 | black] -> [stationary curse2 | black]\n[cursor0 cant0] -> [stationary cursor0 cant0]\n[player1 cant1] -> [stationary player1 cant1]\n[ded1 fellcant1] -> [stationary ded1 fellcant1]\n[dead0 fellcant0] -> [stationary dead0 fellcant0]\n\n\n(propagate movement)\n\n[ > Ded1 | Fell1 no fellcant1] -> [ > Ded1 | > Fell1 ]\n\n[ > Cursor0 | Crate0 ] -> [ > Cursor0 | > Crate0 ]\n+ [ > Cursor0 | Cursor0 ] -> [ > Cursor0 | > Cursor0 ]\n+ [ > Crate0 | Crate0 ] -> [ > Crate0 | > Crate0 ]\n\n+ [ > Player1 | Crate1 ] -> [ > Player1 | > Crate1 ]\n+ [ > Player1 | Player1] -> [ > Player1 | > Player1 ]\n+ [ > Crate1 | Player1 ] -> [ > Crate1 | > Player1 ]\n+ [> crate1|crate1] -> [> crate1 | > crate1]\n+ up[moving crate1 crateu1|crate1] -> [moving crate1 crateu1 | moving crate1]\n+ left[moving crate1 cratel1|crate1] -> [moving crate1 cratel1 | moving crate1]\n+ down[moving crate1 crated1|crate1] -> [moving crate1 crated1 | moving crate1]\n+ right[moving crate1 crater1|crate1] -> [moving crate1 crater1 | moving crate1]\n \n\n[> fell1|fell1] -> [> fell1 | > fell1]\n+ up[moving fell1 fellu1|fell1] -> [moving fell1 fellu1 | moving fell1]\n+ left[moving fell1 felll1|fell1] -> [moving fell1 felll1 | moving fell1]\n+ down[moving fell1 felld1|fell1] -> [moving fell1 felld1 | moving fell1]\n+ right[moving fell1 fellr1|fell1] -> [moving fell1 fellr1 | moving fell1]\n\n[moving crate1 cratex1] -> [moving crate1 moving cratex1]\n[moving fell1 fellx1] -> [moving fell1 moving fellx1]\n[moving crate1 crate0ghost] -> [moving crate1 moving crate0ghost]\n\n[active stationary player1] -> [stationary active stationary player1]\n[activecurse0 stationary curse0] -> [stationary activecurse0 stationary curse0]\n[activefell stationary ded1] -> [stationary activefell stationary ded1]\n[stationary cursor0 activecurse0 holding] -> [stationary cursor0 activecurse0 stationary holding]\n[stationary curse2 holding] -> [stationary curse2 stationary holding]\n\n\n(falling)\nlate [supported] -> []\n\nlate [crate1 ded1] -> [crate1 supported ded1]\nlate [crate1 no pit1] -> [crate1 supported]\nlate [crate1 fell1] -> [crate1 fell1 supported]\n\n\nlate up[crateu1|supported] -> [crateu1 supported | supported]\n+ late left[cratel1|supported] -> [cratel1 supported | supported]\n+ late down[crated1|supported] -> [crated1 supported | supported]\n+ late right[crater1|supported] -> [crater1 supported | supported]\n\n\nlate [cursor0 pit0 no fell0] -> [pit0 dead0a]SFX3\nlate [player1 active pit1 no fell1 no ded1] -> [pit1 ded1 activefell]SFX3\nlate [player1 pit1 no fell1 no ded1] -> [pit1 ded1 ]SFX3\nlate [crate0 pit0 no supported] -> [pit0 fell0]SFX3\nlate [crate1 pit1 no supported] -> [pit1 fell1] SFX3\n\n\n\nlate [crateu1 no crate1 fell1] -> [fellu1 fell1]\nlate [cratel1 no crate1 fell1] -> [felll1 fell1]\nlate [crater1 no crate1 fell1] -> [fellr1 fell1]\nlate [crated1 no crate1 fell1] -> [felld1 fell1]\n\nlate [crateu1 no crate1] -> []\nlate [cratel1 no crate1] -> []\nlate [crater1 no crate1] -> []\nlate [crated1 no crate1] -> []\nlate up [crateu1 |no crate1] -> [|]\nlate left [cratel1 |no crate1] -> [|]\nlate right [crater1 |no crate1] -> [|]\nlate down [crated1 |no crate1] -> [|]\nlate [player1 ded1] -> [player1 ded1] SFX0\nlate [player1 ded1] -> cancel \n\n[moving crate0] -> SFX2\n[moving crate1] -> SFX2\n\n==============\nWINCONDITIONS\n==============\n\n\nAll target0 on crate0\nAll Target1 on Crateorfell1\nAll PlayerTarget1 on Playerormark1\nno Cursor0 on target1\nno cursor0 on PlayerTarget1\n\n=======\nLEVELS\n=======\n\nmessage Book 1: BASE\n\nmessage Page 1.1: GOAL\n\n#######\n#`````#\n#`p`t`#\n#`````#\n#`o`q`#\n#`````#\n#######\n\nmessage Page 1.2: TOOL\n\n#######\n#`t`o`#\n#t`-:`#\n#``tlo#\n#p````#\n#######\n\nmessage Page 1.3: HOLE\n\n########\n##``0`##\n#```0``#\n#``o0`t#\n#po:0``#\n#``:0`t#\n#```0``#\n##``0`##\n########\n\nmessage Page 1.4: FALL\n\n########\n#00u``0#\n#00po`0#\n#`000`0#\n#`00```#\n#`000``#\n#`000``#\n########\n\nmessage Book 2: EDIT\n\nmessage Page 2.1: MINI\n\n||||||||||\n|```````'|\n|`######`|\n|`#````#`|\n|`#``t`#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 2.2: FORM\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 2.3: PLUG\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#ro`o`#`|\n|`#####`#`|\n|`###`o`#`|\n|`#``oLo#`|\n|`#````##`|\n|`#`q####`|\n|`#######`|\n|`````````|\n|``c`0````|\n|````8````|\n|`````````|\n|||||||||||\n\nmessage Page 2.4: TRAP\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#``````#`|\n|`#``t```#`|\n|`#`tqt``#`|\n|`#``t```#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````16````|\n|``````````|\n||||||||||||\n\nmessage Book 3: DUAL\n\nmessage Page 3.1: CO-OP\n\n#######\n####qq#\n#po000#\n#`o000#\n###o``#\n###r`'#\n#######\n\nmessage Page 3.2: REST\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#`r00q#`|\n|`#######`|\n|`````````|\n|``c`o````|\n|````2````|\n|`````````|\n|||||||||||\nmessage Page 3.3: SAIL\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#0000q#`|\n|`#00000#`|\n|`#00000#`|\n|`#```00#`|\n|`#```00#`|\n|`#######`|\n|`````````|\n|``c`ro```|\n|````23```|\n|`````````|\n|||||||||||\n\nmessage Page 3.4: TWIN\n\n|||||||||||||||||||||\n|`````````+````````'|\n|`#######`+`#######`|\n|`#`````#`+`#`````#`|\n|`#```q`#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`q```#`|\n|`#`````#`+`#`````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````6````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Book 4: WHAT\n\nmessage Page 4.1: GUIS\n\n\n#######\n#q#``'#\n#``8#`#\n#`#p#`#\n#`#o#`#\n#`#1``#\n#######\n\nmessage Page 4.2: IDEA\n\n||||||||||\n|```````'|\n|`######`|\n|`#```t#`|\n|`#```t#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```31```|\n|````````|\n||||||||||\n\nmessage Page 4.3: FILL\n\n\n######\n#0poq#\n#0`70#\n#'000#\n#0000#\n######\n\nmessage Page 4.4: A LOT\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|``````'|\n|`c3o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Book 5: UHHH\n\nmessage Page 5.1: WALL\n\n||||||||||\n|```````'|\n|`######`|\n|`#t`#`#`|\n|`#````#`|\n|`##`o`#`|\n|x+xxxx+x|\n|`#````#`|\n|`#````#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 5.2: SAFE\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#xxxxx#`|\n|`#x```x#`|\n|`#x`t`x#`|\n|`#x```x#`|\n|`#xxxxx#`|\n|`#######`|\n|`````````|\n|`c`o1r```|\n|```111```|\n|`````````|\n|||||||||||\n\nmessage Page 5.3: LOCK\n\n|||||||||||||\n|o```'`xxxcx|\n|1``x```qx!x|\n|`1!````qx`x|\n|``1?x`xxx?x|\n|r``1````!`x|\n|````2`xxxxx|\n|||||||||||||\n\n\n\nmessage Page 5.4: POST\n\n+++++++++\n+p#```#q+\n+`#``'#3+\n+`#`1`#`+\n+`#`2`#`+\n+`#```#`+\n+`#```#`+\n+++++++++\nmessage Book 6: BLUE\n\nmessage Page 6.1: META\n\n||||||||||||\n|++++++++++|\n|+````\"```+|\n|+`######`+|\n|+`#````#`+|\n|+`#``t`#`+|\n|+`#````#`+|\n|+`######`+|\n|+````````+|\n|+```ro```+|\n|+````````+|\n|+````````+|\n|++++++++++|\n|``````````|\n|``~`1b````|\n|````{[````|\n|``````````|\n||||||||||||\n\nmessage Page 6.2: WILD\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`#######`+|\n|+`#0000q#`+|\n|+`#00000#`+|\n|+`#`0000#`+|\n|+`#`0000#`+|\n|+`#```00#`+|\n|+`#######`+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\nmessage Page 6.3: UH OH\n\n|||||||||||\n|+++++++++|\n|+``````\"+|\n|+`+++++`+|\n|+`+```+`+|\n|+`+`t`+`+|\n|+`+```+`+|\n|+`+```+`+|\n|+`+++++`+|\n|+```````+|\n|+```o```+|\n|+```````+|\n|+```````+|\n|+++++++++|\n|`````````|\n|`````````|\n|`~`1br```|\n|```][[```|\n|`````````|\n|||||||||||\n\nmessage Page 6.4: VARY\n\n|||||||||||||||||||||||\n|++++++++++&++++++++++|\n|+``````\"`x&x````````+|\n|+`######`x&x`######`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`#`qt`#`x&x`#`tq`#`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`######`x&x`######`+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|++++++++++&++++++++++|\n|``````````&``````````|\n|`~`r1ob```&`_`r1ob```|\n|```[{[[```&```[[[[```|\n|``````````&``````````|\n|||||||||||||||||||||||\n\nmessage Book 7: ?!?!\n\nmessage Page 7.1: EACH\n\n+++++++\n+````'+\n+`###`+\n+`#q#`+\n+`#0#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`###`+\n+`````+\n+``c``+\n+`r0o`+\n+``4``+\n+`````+\n+++++++\n\nmessage Page 7.2: HOLD\n\n&&&&&&&&&\n&`8```+`&\n&`{po`+`&\n&`\"```+t&\n&&&&&&&&&\n\nmessage Page 7.3: TRIP\n\n&&&&&&&\n&```\"`&\n&`o`!`&\n&`````&\n&+++++&\n&`r2b`&\n&`[[{~&\n&y```t&\n&&&&&&&\n\nmessage Page 7.4: PLAN\n\n\n|||||||||\n|```t```|\n|```````|\n|+++++++|\n|```````|\n|```````|\n|>>>>>>>|\n|```````|\n|```````|\n|+++++++|\n|```~```|\n|[[`2\"11|\n|[[`[`[[|\n|&&`&&&&|\n|&&bor&&|\n|||||||||\n\n\n\n\n\nmessage Book 8: (RE)STAR(TS)\n\n\nmessage Page 8.1: (IN)FORM(ED)\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 8.2: (EN)TWIN(ED)\n\n|||||||||||||||||||||\n|`````````+`````````|\n|`#######`+`#######`|\n|`#````q#`+`#`````#`|\n|`#`````#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`````#`|\n|`#`````#`+`#q````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````5````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Page 8.3: (ZE)ALOT(RY)\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|```````|\n|`c2o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Page 8.4: (BE)WILD(ER)\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`+++++++`+|\n|+`+0000q+`+|\n|+`+00000+`+|\n|+`+00000+`+|\n|+`+`0000+`+|\n|+`+```00+`+|\n|+`+++++++`+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", [0, 3, 0, 3, 2, 1, 1, 2, 2, 3, 0, 1, 0, 3, 3, 1, 2, 2, 2, 2, 3, 0, 0, 1, 0, 0, 3, 3, 0, 2, 2, 0, 3, 1, 0, 2, 2, 2, 1, 1, 1, 2], "background cant1 fellcant0 fellcant1 wall1:0,0,background cant1 fellcant0 fellcant1 wall1 wallr1:1,1,1,1,1,0,\n0,0,background cant1 fellcant0 fellcant1 wall1 walld1 wallr1:2,background fellcant0 fellcant1:3,3,3,3,3,\nbackground cant1 fellcant0 fellcant1 wall1 wallr1 wallu1:4,0,background cant1 fellcant0 fellcant1 wall1 walld1:5,3,3,3,3,3,\n3,3,background cant1 fellcant0 fellcant1 wall1 wallu1:6,5,3,3,3,3,\n3,3,3,6,5,background fellcant0 pit1 pit1d rim1l rim1r rim1u:7,background fellcant0 pit1 pit1d pit1u rim1l rim1r:8,8,\n8,8,activefell background ded1 fellcant0 pit1 pit1d pit1u rim1l rim1r:9,background fell1 fellcant0 pit1 pit1u rim1d rim1l rim1r:10,6,5,3,background crate1 crated1 fellcant0 fellcant1 supported:11,\nbackground crate1 crated1 crateu1 fellcant0 fellcant1 supported:12,background crate1 crateu1 fellcant0 fellcant1 supported:13,3,3,3,6,0,background cant1 fellcant0 fellcant1 wall1 walld1 walll1:14,\n3,background fellcant0 fellcant1 target1:15,3,15,3,background cant1 fellcant0 fellcant1 wall1 walll1 wallu1:16,0,0,\n0,background cant1 fellcant0 fellcant1 wall1 walll1:17,17,17,17,17,0,0,\n", 6, "1642084928380.6565"] + ], + [ + "VEXT EDIT B", + ["title VEXT EDIT\nauthor JACK\n\nrun_rules_on_level_start\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\n#eeeeee\n\nPlayerTarget1mark\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1mark\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nPlayerTarget1\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0Mark\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nWall0 \n#884400 #f00\n00000\n00000\n00000\n00000\n00000\n\nwalll0 \nBrown #f00\n1....\n1....\n1....\n1....\n1....\n\nWallr0 \nBrown #f00\n....1\n....1\n....1\n....1\n....1\n\nWalld0 \nBrown #f00\n.....\n.....\n.....\n.....\n11111\n\nWallu0 \nBrown #f00\n11111\n.....\n.....\n.....\n.....\n\nBlack\nblack\n\nwall0ghost\ntransparent\n\nWall0Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1 \n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall2\n#884400 #00f\n00000\n00000\n00000\n00000\n00000\n\nwalll2\nBrown #00f\n1....\n1....\n1....\n1....\n1....\n\nWallr2 \nBrown #00f\n....1\n....1\n....1\n....1\n....1\n\nWalld2 \nBrown #00f\n.....\n.....\n.....\n.....\n11111\n\nWallu2 \nBrown #00f\n11111\n.....\n.....\n.....\n.....\n\nwalll1 \nBrown #ff0\n1....\n1....\n1....\n1....\n1....\n\nWallr1 \nBrown #ff0\n....1\n....1\n....1\n....1\n....1\n\nWalld1 \nBrown #ff0\n.....\n.....\n.....\n.....\n11111\n\nWallu1 \nBrown #ff0\n11111\n.....\n.....\n.....\n.....\n\nCrate1Mark\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate1\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate01\ntransparent\n\nCrate0\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate0mark\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\ncrate0ghost\ntransparent\n\nPlayer1Mark\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nPlayer1\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nDed1Mark\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nDed1\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nCrated0\n#f80 #f00\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu0\n#f80 #f00\n.010.\n.010.\n.....\n.....\n.....\n\nCratel0\n#f80 #f00\n.....\n00...\n11...\n00...\n.....\n\nCrater0\n#f80 #f00\n.....\n...00\n...11\n...00\n.....\n\nCrated1\n#f80 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu1\n#f80 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nCratel1\n#f80 #ff0\n.....\n00...\n11...\n00...\n.....\n\nCrater1\n#f80 #ff0\n.....\n...00\n...11\n...00\n.....\n\n\nPit1Mark\nblack #bbbb00 white\n.111.\n10001\n10001\n10001\n.111.\n\n\nPit1\nblack #bbbb00 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\npit0ghost\ntransparent\n\nPit0\nblack #bb0000 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\n\npit0u\nblack #bb0000\n10001\n.....\n.....\n.....\n.....\n\npit0d\nblack #bb0000\n.....\n.....\n.....\n.....\n10001\n\npit0l\nblack #bb0000\n1....\n0....\n0....\n0....\n1....\n\npit0r\nblack #bb0000\n....1\n....0\n....0\n....0\n....1\n\npit1u\nblack #bbbb00\n10001\n.....\n.....\n.....\n.....\n\npit1d\nblack #bbbb00\n.....\n.....\n.....\n.....\n10001\n\npit1l\nblack #bbbb00\n1....\n0....\n0....\n0....\n1....\n\npit1r\nblack #bbbb00\n....1\n....0\n....0\n....0\n....1\n\nrim0u\n#b00\n.000.\n.....\n.....\n.....\n.....\n\nrim0l\n#b00\n.....\n0....\n0....\n0....\n.....\n\nrim0r\n#b00\n.....\n....0\n....0\n....0\n.....\n\nrim0d\n#b00\n.....\n.....\n.....\n.....\n.000.\n\nrim1u\n#bb0\n.000.\n.....\n.....\n.....\n.....\n\nrim1l\n#bb0\n.....\n0....\n0....\n0....\n.....\n\nrim1r\n#bb0\n.....\n....0\n....0\n....0\n.....\n\nrim1d\n#bb0\n.....\n.....\n.....\n.....\n.000.\n\nblackul\nblack\n0....\n.....\n.....\n.....\n.....\n\nblackur\nblack\n....0\n.....\n.....\n.....\n.....\n\nblackdl\nblack\n.....\n.....\n.....\n.....\n0....\n\nblackdr\nblack\n.....\n.....\n.....\n.....\n....0\n\nfell0\n#884400 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1mark\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfelld1\n#884400 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nfellu1\n#884400 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nfelll1\n#884400 #ff0\n.....\n00...\n11...\n00...\n.....\n\nfellr1\n#884400 #ff0\n.....\n...00\n...11\n...00\n.....\n\nfell0ghost\ntransparent\n\nsupported\ntransparent\n\nfellcant1\ntransparent\n\ncant1\ntransparent\n\ncant0\ntransparent\n\nfellcant0\ntransparent\n\ndead0a\ndarkred\n.....\n.0.0.\n.....\n.0.0.\n.....\n\ncursor0a\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\ncursor0b\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\n\n\ncursor2a\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\ncursor2b\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\none2mark\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2mark\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2mark\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none2\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0mark\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0mark\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0mark\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\nfour0\n#f00\n.0.0.\n.0.0.\n..00.\n...0.\n...0.\n\nfive0\n#f00\n.000.\n.0...\n.00..\n...0.\n.00..\n\nsix0\n#f00\n..00.\n.0...\n.00..\n.0.0.\n..0..\n\nseven0\n#f00\n.000.\n...0.\n...0.\n..0..\n..0..\n\ninf0\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\ninf0mark\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\n\ndecrement\ntransparent\n\nholding\ntransparent\n\nactiveb\n#f00\n.....\n.0.0.\n.....\n.....\n.....\n\nactive\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\nactivefell\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\npickeda0\ntransparent\n\npickedb0\ntransparent\n\npickeda2\ntransparent\n\npickedb2\ntransparent\n\nchosepink\n#ff22ff\n\nchosecyan\n#22ffff\n\npink\n#ff88ff\n\ncyan\n#88ffff\n\nplacemark\ntransparent\n\nactivecurse0\ntransparent\n\npartb\ntransparent\n\npartc\ntransparent\n\ncursor0mark\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\nwall2ghost\ntransparent\n\ncant2\ntransparent\n\nshowhere\ntransparent\n\nshowthis\ntransparent\n=======\nLEGEND\n=======\n\n` = Background\n& = Wall2 and wall1 and wall0\n# = Wall1\nX = Wall0\n+ = Wall0 and Wall1\nP = Player1 and active\n\nn = crate0 and crate1 and crate01\no = Crate1\n- = crate1 and crater1\n: = crate1 and crateu1\nL = crate1 and crater1 and crateu1\n0 = pit1\n! = crate0\n? = pit0\n/ = pit0 and pit1\n\n@ = one0 and pit0\nz = player1 and pit0\n\n| = black\n\n' = partb\n\" = partc\n\n~ = cursor2a\n_ = cursor2b\n\n1 = one0\n2 = two0\n3 = three0\n4 = four0\n5 = five0\n6 = six0\n7 = seven0\n8 = inf0\n\n[ = one2\n{ = two2\n] = three2\n> = wall2\nactiveab = active or activeb or activefell\npartbc = partb or partc\n\ny = target0\nu = Target1 and pit1\nt = Target1\nq = playertarget1\nr = player1\nb = cursor0a\nc = cursor0a and activecurse0\nk = cursor0b and activecurse0\ncurse0a = cursor0a or dead0a\ncurse0 = curse0a or cursor0b\ncurse2 = cursor2a or cursor2b\ncursor0 = cursor0a or cursor0b\n \nplayer = curse2 or activecurse0 or active or dead0a or activefell\ndead0 = dead0a\nx1 = player1 or crate1 or wall1 or target1 or playertarget1 or pit1\nx0 = crate0 or wall0 or pit0 or fell0\nxx = x0 or x1 or curse0\nx0ghost = crate0ghost or wall0ghost or pit0ghost or fell0ghost\ncratex1 = cratel1 or crater1 or crated1 or crateu1\nwallx2 = walll2 or wallr2 or walld2 or wallu2\nwallx1 = walll1 or wallr1 or walld1 or wallu1\nwallx0 = walll0 or wallr0 or walld0 or wallu0\nfellx1 = felll1 or fellr1 or felld1 or fellu1\npit0x = pit0l or pit0r or pit0d or pit0u\npit1x = pit1l or pit1r or pit1d or pit1u\ncrateorfell1 = crate1 or fell1\nplayerormark1 = player1 or player1mark\n\nx0mark = one0mark or two0mark or three0mark or cursor0mark or wall0mark or target0mark or crate0mark or inf0mark\nx1mark = player1mark or crate1mark or pit1mark or wall1mark or fell1mark or ded1mark or crate1mark or Target1mark or PlayerTarget1mark\nx2mark = one2mark or two2mark or three2mark\nxmark = x0mark or x1mark or x2mark\nnumber0 = one0 or two0 or three0 or four0 or five0 or six0 or seven0 or inf0\nnumber2 = one2 or two2 or three2\npicked = pickeda0 or pickedb0 or pickeda2 or pickedb2\n\npickable = player1 or pit1 or crate1 or number0 or wall1 or number2 or fell1 or ded1 or target0 or PlayerTarget1 or Target1\npickable2 = curse0a or pickable or wall0 or crate0 \n\nblackcorner = blackul or blackdl or blackur or blackdr\nrim0x = rim0l or rim0d or rim0u or rim0r\nrim1x = rim1l or rim1d or rim1u or rim1r \n=======\nSOUNDS\n=======\n\nSFX0 51304502\n\nsfx1 22108304\n\nSFX2 84700307\n\nSFX3 78571302\n\nSFX4 25131906\n\nSFX5 13408901\n\nSFX6 50704903\n\nSFX7 24622504\n\nSFX8 29744504\n\nSFX9 13344503\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\npink, chosepink\ncyan, chosecyan\n\n\nPit1,\npit1r\npit1l\npit1d\npit1u\npit0, pit0ghost\npit0r\npit0l\npit0d\npit0u\nblackul\nblackur\nblackdr\nblackdl\nTarget1, PlayerTarget1, target0\n\nfell1, ded1\nfelll1\nfellr1\nfelld1\nfellu1\n\ndead0a, fell0, fell0ghost\nrim0l \nrim0d \nrim0u \nrim0r\n\nrim1l \nrim1d \nrim1u \nrim1r \nPlayer1, Wall1, Crate1, \npit1mark\nfell1mark, ded1mark, target0mark\nTarget1mark, PlayerTarget1mark\nplayer1mark, crate1mark\nwall1mark\none0mark, two0mark, three0mark, wall0mark, inf0mark\none2mark, two2mark, three2mark\ncursor0mark, crate0mark\nnumber0, number2\ncratel1, walll1, \ncrater1, wallr1, \ncrated1, walld1, \ncrateu1, wallu1, \ncursor0, wall0, crate0, wall0ghost, crate0ghost\n walll0, cratel0\n wallr0, crater0\n walld0, crated0\n wallu0, crateu0\n crate01\n wall2, wall2ghost\n wallr2\n wallu2\n walll2\n walld2\n cursor2a, cursor2b\n \nfellcant1\nfellcant0\ncant0\ncant1\ncant2\nsupported\nactivefell\nactive, activeb\nactivecurse0\nholding\ndecrement\npickeda0, pickeda2\npickedb0, pickedb2\nplacemark\npartb partc\nshowthis\nshowhere\nblack\n\n======\nRULES\n======\n\n(Deal with action-----------------------------------------------------------------------------)\n\n[action activecurse0 curse0] -> [activecurse0 action curse0]\n\n(pick up ready icon)\ndown[action curse0a no holding pickable|number0] -> [curse0a holding pickable|number0 pickeda0] SFX9\ndown[action cursor0b no holding pickable|number0] -> [cursor0b holding pickable|number0 pickedb0] SFX9\ndown[action cursor2a no holding pickable2|number2] -> [cursor2a holding pickable2|number2 pickeda2] SFX9\ndown[action cursor2b no holding pickable2|number2] -> [cursor2b holding pickable2|number2 pickedb2] SFX9\n(switch to new ready icon)\ndown [action curse0a pickable| number0 no pickeda0][pickeda0] -> [curse0a pickable | number0 pickeda0][] SFX9\ndown [action cursor0b pickable| number0 no pickedb0][pickedb0] -> [cursor0b pickable | number0 pickedb0][] SFX9\ndown [action cursor2a pickable2| number2 no pickeda2][pickeda2] -> [cursor2a pickable2 | number2 pickeda2][] SFX9\ndown [action cursor2b pickable2| number2 no pickedb2][pickedb2] -> [cursor2b pickable2 | number2 pickedb2][] SFX9\n\n(put down ready icon)\ndown [action curse0 holding pickable| picked] -> [curse0 pickable|] SFX8\ndown [action cursor2a holding pickable2| pickeda2] -> [cursor2a pickable2|] SFX8\ndown [action cursor2b holding pickable2| pickedb2] -> [cursor2b pickable2|] SFX8\n\n(show mark)\nlate [xmark] -> []\nlate [showthis] -> []\nlate [showhere] -> []\n\nlate down [ | number0 pickeda0][curse0a] -> [showthis | number0 pickeda0][curse0a showhere]\nlate down [ | number0 pickedb0][cursor0b] -> [showthis | number0 pickedb0][cursor0b showhere]\nlate down [ | number2 pickeda2][cursor2a] -> [showthis | number2 pickeda2][cursor2a showhere]\nlate down [ | number2 pickedb2][cursor2b] -> [showthis | number2 pickedb2][cursor2b showhere]\nlate [showthis player1][showhere] -> [showthis player1][showhere player1mark]\nlate [showthis pit1][showhere] -> [showthis pit1][showhere pit1mark]\nlate [showthis crate1][showhere] -> [showthis crate1][showhere crate1mark]\nlate [showthis wall1][showhere] -> [showthis wall1][showhere wall1mark]\nlate [showthis one0][showhere] -> [showthis one0][showhere one0mark]\nlate [showthis two0][showhere] -> [showthis two0][showhere two0mark]\nlate [showthis three0][showhere] -> [showthis three0][showhere three0mark]\nlate [showthis one2][showhere] -> [showthis one2][showhere one2mark]\nlate [showthis two2][showhere] -> [showthis two2][showhere two2mark]\nlate [showthis three2][showhere] -> [showthis three2][showhere three2mark]\nlate [showthis wall0][showhere] -> [showthis wall0][showhere wall0mark]\nlate [showthis fell1][showhere] -> [showthis fell1][showhere fell1mark]\nlate [showthis ded1][showhere] -> [showthis ded1][showhere ded1mark]\nlate [showthis target0][showhere] -> [showthis target0][showhere target0mark]\nlate [showthis crate0][showhere] -> [showthis crate0][showhere crate0mark]\nlate [showthis cursor0][showhere] -> [showthis cursor0][showhere cursor0mark]\nlate [showthis inf0][showhere] -> [showthis inf0][showhere inf0mark]\nlate [showthis Target1][showhere] -> [showthis target1][showhere Target1mark]\nlate [showthis PlayerTarget1][showhere] -> [showthis PlayerTarget1][showhere PlayerTarget1mark]\n(connect cratemark)\nup [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crateu1 | crate1 crated1]\ndown [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crated1 | crate1 crateu1]\nleft [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark cratel1 | crate1 crater1]\nright [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crater1 | crate1 cratel1]\nup [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crateu1 | fell1 felld1]\ndown [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crated1 | fell1 fellu1]\nleft [action curse0 holding fell1mark no xx no number0 no number2| fell1] -> [action curse0 holding fell1mark cratel1 | fell1 fellr1]\nright [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crater1 | fell1 felll1]\n\n(place mark)\n[placemark] -> []\n\ndown [action curse0a holding xmark no x1 no number0][pickeda0 number0] -> [curse0a holding xmark placemark][pickeda0 decrement number0] SFX7\ndown [action cursor0b holding xmark no x1 no number0][pickedb0 number0] -> [cursor0b holding xmark placemark][pickedb0 decrement number0] SFX7\n\ndown [action cursor2a holding xmark no xx no number0 no number2][pickeda2 number2] -> [cursor2a holding xmark placemark][pickeda2 decrement number2] SFX7\ndown [action cursor2b holding xmark no xx no number0 no number2][pickedb2 number2] -> [cursor2b holding xmark placemark][pickedb2 decrement number2] SFX7\n\n\n\n[placemark player1mark] -> [placemark player1 player1mark]\n[placemark pit1mark] -> [placemark pit1 pit1mark]\n[placemark crate1mark] -> [placemark crate1 crate1mark]\n[placemark wall1mark] -> [placemark wall1 wall1mark]\n[placemark one0mark] -> [placemark one0 one0mark]\n[placemark two0mark] -> [placemark two0 two0mark]\n[placemark three0mark] -> [placemark three0 three0mark]\n[placemark one2mark] -> [placemark one2 one2mark]\n[placemark two2mark] -> [placemark two2 two2mark]\n[placemark three2mark] -> [placemark three2 three2mark]\n[placemark wall0mark] -> [placemark wall0 wall0mark]\n[placemark fell1mark] -> [placemark fell1 fell1mark]\n[placemark ded1mark] -> [placemark ded1 ded1mark]\n[placemark target0mark] -> [placemark target0 target0mark]\n[placemark crate0mark] -> [placemark crate0 crate0mark]\n[placemark Target1mark] -> [placemark target1 Target1mark]\n[placemark inf0mark] -> [placemark inf0 inf0mark]\n[placemark PlayerTarget1mark] -> [placemark playertarget1 PlayerTarget1mark]\ndown [placemark cursor0mark][curse0a|no one2] -> [ cursor0b cursor0mark][curse0a|]\n[placemark cursor0mark] -> [placemark cursor0a cursor0mark]\n\n(decrement number of placed item)\ndown [xmark holding cursor2a][pickable2|one2 decrement pickeda2] -> [xmark holding cursor2a][|one2 decrement pickeda2]\ndown [xmark holding cursor2b][pickable2|one2 decrement pickedb2] -> [xmark holding cursor2b][|one2 decrement pickedb2]\ndown [xmark holding curse0a][pickable|one0 decrement pickeda0] -> [xmark holding curse0a][|one0 decrement pickeda0]\ndown [xmark holding cursor0b][pickable|one0 decrement pickedb0] -> [xmark holding cursor0b][|one0 decrement pickedb0]\ndown [xmark holding cursor2a][|one2 decrement pickeda2] -> [cursor2a][|]\ndown [xmark holding cursor2b][|one2 decrement pickedb2] -> [cursor2b][|]\ndown [xmark holding cursor0a][|one0 decrement pickeda0] -> [cursor0a][|]\ndown [xmark holding cursor0b][|one0 decrement pickedb0] -> [cursor0b][|]\n[one0 decrement] -> []\n[two0 decrement] -> [one0]\n[three0 decrement] -> [two0]\n[four0 decrement] -> [three0]\n[five0 decrement] -> [four0]\n[six0 decrement] -> [five0]\n[seven0 decrement] -> [six0]\n[one2 decrement] -> []\n[two2 decrement] -> [one2]\n[three2 decrement] -> [two2]\n\n\n\n(player -> cursor)\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [player1 action active no wall0ghost no crate0ghost][partbc] -> [cursor0a player1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [ded1 action activefell no wall0ghost no crate0ghost][partbc] -> [cursor0a ded1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\n\n(cursor holding -> player)\ndown [action curse0a activecurse0 player1 holding xmark][| number0 pickeda0] -> [active player1][ | number0] SFX6\ndown [action curse0a activecurse0 ded1 holding xmark][| number0 pickeda0] -> [activefell ded1][ | number0] SFX6\ndown [action cursor0b activecurse0 player1 holding xmark][| number0 pickedb0] -> [active player1][ | number0] SFX6\ndown [action cursor0b activecurse0 ded1 holding xmark][| number0 pickedb0] -> [activefell ded1][ | number0] SFX6\n(empty cursor -> player)\n[action curse0 player1 activecurse0 no holding] -> [active player1] SFX6\n[action curse0 ded1 activecurse0 no holding] -> [activefell ded1] SFX6\n(red -> blue)\n[action cursor0a activecurse0 holding xmark][partc][pickeda0] -> [cursor0a cursor2a][partc][] SFX5\n[action cursor0a activecurse0 ][partc] -> [cursor0a cursor2a][partc] SFX5\n[action cursor0b activecurse0 holding xmark][partc][pickedb0] -> [cursor0b cursor2b][partc][] SFX5\n[action cursor0b activecurse0 ][partc] -> [cursor0b cursor2b][partc] SFX5\n(blue holding -> red)\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\nrandom down [action curse2 curse0 holding xmark][| number2 pickeda2] -> [activecurse0 cursor0a][ | number2] SFX6\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\n(empty blue -> red)\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\nrandom [action curse2 curse0 no holding] -> [activecurse0 cursor0a] SFX6\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\n\n\n[action player] -> SFX0\n[action curse0] -> SFX0\n\n(Aesthetic----------------------------------------------------------------------------------------)\n\n\n\n(ghosts)\n[player1 active][pit0] -> [player1 active][pit0ghost]\n[pit0ghost][cursor0] -> [pit0][cursor0]\n[player1 active][wall0] -> [player1 active][wall0ghost]\n[wall0ghost][cursor0] -> [wall0][cursor0]\n[player1 active][crate0] -> [player1 active][crate0ghost]\n[crate0ghost][cursor0] -> [crate0][cursor0]\n[player1 active][fell0] -> [player1 active][fell0ghost]\n[fell0ghost][cursor0] -> [fell0][cursor0]\n[curse0 activecurse0][wall2] -> [curse0 activecurse0][wall2ghost]\n[wall2ghost][curse2] -> [wall2][curse2]\n\n\n(wall boundaries)\n[wallx2] -> []\n[wallx1] -> []\n[wallx0] -> []\nup [wall2 | no wall2] -> [wall2 wallu2 | ]\ndown [wall2 | no wall2] -> [wall2 walld2 | ]\nleft [wall2 | no wall2] -> [wall2 walll2 | ]\nright [wall2 | no wall2] -> [wall2 wallr2 | ]\nup [wall1 | no wall1] -> [wall1 wallu1 | ]\ndown [wall1 | no wall1] -> [wall1 walld1 | ]\nleft [wall1 | no wall1] -> [wall1 walll1 | ]\nright [wall1 | no wall1] -> [wall1 wallr1 | ]\nup [wall0 | no wall0] -> [wall0 wallu0 | ]\ndown [wall0 | no wall0] -> [wall0 walld0 | ]\nleft [wall0 | no wall0] -> [wall0 walll0 | ]\nright [wall0 | no wall0] -> [wall0 wallr0 | ]\n\n(crate connectors)\nup [crateu0|] -> [crateu0 | crated0]\nright [crater0|] -> [crater0 | cratel0]\nup [crateu1|] -> [crateu1 | crated1]\nright [crater1|] -> [crater1 | cratel1]\n(pit connectors)\n[blackcorner] -> []\n[pit0x] -> [] \n[pit1x] -> [] \nup [pit1 | pit1] -> [pit1u pit1|pit1d pit1]\nright [pit1 | pit1] -> [pit1r pit1|pit1l pit1]\nup [pit0 | pit0] -> [pit0u pit0|pit0d pit0]\nright [pit0 | pit0] -> [pit0r pit0|pit0l pit0]\n[pit1u pit1r] -> [pit1u pit1r blackur]\n[pit1u pit1l] -> [pit1u pit1l blackul]\n[pit1d pit1r] -> [pit1d pit1r blackdr]\n[pit1d pit1l] -> [pit1d pit1l blackdl]\n[pit0u pit0r] -> [pit0u pit0r blackur]\n[pit0u pit0l] -> [pit0u pit0l blackul]\n[pit0d pit0r] -> [pit0d pit0r blackdr]\n[pit0d pit0l] -> [pit0d pit0l blackdl]\n[rim1x] -> []\n[rim0x] -> []\nup[pit0|no pit0] -> [pit0 rim0u|]\ndown[pit0|no pit0] -> [pit0 rim0d|]\nleft[pit0|no pit0] -> [pit0 rim0l|]\nright[pit0|no pit0] -> [pit0 rim0r|]\nup[pit1|no pit1] -> [pit1 rim1u|]\ndown[pit1|no pit1] -> [pit1 rim1d|]\nleft[pit1|no pit1] -> [pit1 rim1l|]\nright[pit1|no pit1] -> [pit1 rim1r|]\nlate [pink] -> []\nlate [cyan] -> []\nlate [chosepink] -> []\nlate [chosecyan] -> []\nlate down [pickable |number0] -> [pickable pink | number0 pink]\nlate down [pickable2 |number2] -> [pickable2 cyan | number2 cyan]\nlate up [pink picked|pink] -> [chosepink picked|chosepink ]\nlate up [cyan picked|cyan ] -> [chosecyan picked|chosecyan ]\n\n(Movement----------------------------------------------------------------------------------------)\n\n(move attached items)\n[moving activecurse0 curse0] -> [moving activecurse0 moving curse0]\n[moving active player1] -> [moving active moving player1]\n[moving activefell ded1] -> [moving activefell moving ded1]\n[moving curse0 holding] -> [moving curse0 moving holding]\n[moving curse2 holding] -> [moving curse2 moving holding]\n\n(reset and propogate cant)\n[cant0] -> []\n[cant1] -> []\n[cant2] -> []\n[fellcant0] -> []\n[fellcant1] -> []\n\n[black no cant0 no cant1 no cant2] -> [black cant0 cant1 cant2]\n[wall2 no cant2] -> [wall2 cant2]\n[wall1 no cant1] -> [wall1 cant1]\n[wall0 no cant0] -> [wall0 cant0]\n[number0] -> [number0 cant1]\n[number2] -> [number2 cant1]\n[no pit1 no fellcant1] -> [fellcant1]\n[no pit0 no fellcant0] -> [fellcant0]\n\n[> ded1][fell1|fellcant1] -> [> ded1][fell1 fellcant1 | fellcant1]\n+ [> ded1][ded1|fellcant1] -> [> ded1][ded1 fellcant1 | fellcant1]\n+ up[fellu1|fellcant1] -> [fellu1 fellcant1 | fellcant1]\n+ left[felll1|fellcant1] -> [felll1 fellcant1 | fellcant1]\n+ down[felld1|fellcant1] -> [felld1 fellcant1 | fellcant1]\n+ right[fellr1|fellcant1] -> [fellr1 fellcant1 | fellcant1]\n\n+ [> player1][crate1|cant1] -> [> player1][crate1 cant1 | cant1]\n+ [> player1][player1|cant1] -> [> player1][player1 cant1 | cant1]\n+ up[crateu1|cant1] -> [crateu1 cant1 | cant1]\n+ left[cratel1|cant1] -> [cratel1 cant1 | cant1]\n+ down[crated1|cant1] -> [crated1 cant1 | cant1]\n+ right[crater1|cant1] -> [crater1 cant1 | cant1]\n+ [crate1 crate0 cant0] -> [crate1 crate0 cant0 cant1]\n+ [crate1 crate0 cant1] -> [crate1 crate0 cant0 cant1]\n+ [> dead0][dead0|fellcant0] -> [> dead0][dead0 fellcant0 | fellcant0]\n+ [> cursor0][cursor0|cant0] -> [> cursor0][cursor0 cant0 | cant0]\n+ [> cursor0][crate0 | number0] -> [> cursor0][crate0 cant0| number0]\n+ [> cursor0][crate0|cant0] -> [> cursor0][crate0 cant0 | cant0]\n+ up[crateu0|cant0] -> [crateu0 cant0 | cant0]\n+ left[cratel0|cant0] -> [cratel0 cant0 | cant0]\n+ down[crated0|cant0] -> [crated0 cant0 | cant0]\n+ right[crater0|cant0] -> [crater0 cant0 | cant0]\n\n[> curse2 | wall2] -> [stationary curse2 | wall2]\n[> curse2 | black] -> [stationary curse2 | black]\n[cursor0 cant0] -> [stationary cursor0 cant0]\n[player1 cant1] -> [stationary player1 cant1]\n[ded1 fellcant1] -> [stationary ded1 fellcant1]\n[dead0 fellcant0] -> [stationary dead0 fellcant0]\n\n\n(propagate movement)\n\n[ > Ded1 | Fell1 no fellcant1] -> [ > Ded1 | > Fell1 ]\n\n[ > Cursor0 | Crate0 ] -> [ > Cursor0 | > Crate0 ]\n+ [ > Cursor0 | Cursor0 ] -> [ > Cursor0 | > Cursor0 ]\n+ [ > Crate0 | Crate0 ] -> [ > Crate0 | > Crate0 ]\n\n+ [ > Player1 | Crate1 ] -> [ > Player1 | > Crate1 ]\n+ [ > Player1 | Player1] -> [ > Player1 | > Player1 ]\n+ [ > Crate1 | Player1 ] -> [ > Crate1 | > Player1 ]\n+ [> crate1|crate1] -> [> crate1 | > crate1]\n+ up[moving crate1 crateu1|crate1] -> [moving crate1 crateu1 | moving crate1]\n+ left[moving crate1 cratel1|crate1] -> [moving crate1 cratel1 | moving crate1]\n+ down[moving crate1 crated1|crate1] -> [moving crate1 crated1 | moving crate1]\n+ right[moving crate1 crater1|crate1] -> [moving crate1 crater1 | moving crate1]\n \n\n[> fell1|fell1] -> [> fell1 | > fell1]\n+ up[moving fell1 fellu1|fell1] -> [moving fell1 fellu1 | moving fell1]\n+ left[moving fell1 felll1|fell1] -> [moving fell1 felll1 | moving fell1]\n+ down[moving fell1 felld1|fell1] -> [moving fell1 felld1 | moving fell1]\n+ right[moving fell1 fellr1|fell1] -> [moving fell1 fellr1 | moving fell1]\n\n[moving crate1 cratex1] -> [moving crate1 moving cratex1]\n[moving fell1 fellx1] -> [moving fell1 moving fellx1]\n[moving crate1 crate0ghost] -> [moving crate1 moving crate0ghost]\n\n[active stationary player1] -> [stationary active stationary player1]\n[activecurse0 stationary curse0] -> [stationary activecurse0 stationary curse0]\n[activefell stationary ded1] -> [stationary activefell stationary ded1]\n[stationary cursor0 activecurse0 holding] -> [stationary cursor0 activecurse0 stationary holding]\n[stationary curse2 holding] -> [stationary curse2 stationary holding]\n\n\n(falling)\nlate [supported] -> []\n\nlate [crate1 ded1] -> [crate1 supported ded1]\nlate [crate1 no pit1] -> [crate1 supported]\nlate [crate1 fell1] -> [crate1 fell1 supported]\n\n\nlate up[crateu1|supported] -> [crateu1 supported | supported]\n+ late left[cratel1|supported] -> [cratel1 supported | supported]\n+ late down[crated1|supported] -> [crated1 supported | supported]\n+ late right[crater1|supported] -> [crater1 supported | supported]\n\n\nlate [cursor0 pit0 no fell0] -> [pit0 dead0a]SFX3\nlate [player1 active pit1 no fell1 no ded1] -> [pit1 ded1 activefell]SFX3\nlate [player1 pit1 no fell1 no ded1] -> [pit1 ded1 ]SFX3\nlate [crate0 pit0 no supported] -> [pit0 fell0]SFX3\nlate [crate1 pit1 no supported] -> [pit1 fell1] SFX3\n\n\n\nlate [crateu1 no crate1 fell1] -> [fellu1 fell1]\nlate [cratel1 no crate1 fell1] -> [felll1 fell1]\nlate [crater1 no crate1 fell1] -> [fellr1 fell1]\nlate [crated1 no crate1 fell1] -> [felld1 fell1]\n\nlate [crateu1 no crate1] -> []\nlate [cratel1 no crate1] -> []\nlate [crater1 no crate1] -> []\nlate [crated1 no crate1] -> []\nlate up [crateu1 |no crate1] -> [|]\nlate left [cratel1 |no crate1] -> [|]\nlate right [crater1 |no crate1] -> [|]\nlate down [crated1 |no crate1] -> [|]\nlate [player1 ded1] -> [player1 ded1] SFX0\nlate [player1 ded1] -> cancel \n\n[moving crate0] -> SFX2\n[moving crate1] -> SFX2\n\n==============\nWINCONDITIONS\n==============\n\n\nAll target0 on crate0\nAll Target1 on Crateorfell1\nAll PlayerTarget1 on Playerormark1\nno Cursor0 on target1\nno cursor0 on PlayerTarget1\n\n=======\nLEVELS\n=======\n\nmessage Book 1: BASE\n\nmessage Page 1.1: GOAL\n\n#######\n#`````#\n#`p`t`#\n#`````#\n#`o`q`#\n#`````#\n#######\n\nmessage Page 1.2: TOOL\n\n#######\n#`t`o`#\n#t`-:`#\n#``tlo#\n#p````#\n#######\n\nmessage Page 1.3: HOLE\n\n########\n##``0`##\n#```0``#\n#``o0`t#\n#po:0``#\n#``:0`t#\n#```0``#\n##``0`##\n########\n\nmessage Page 1.4: FALL\n\n########\n#00u``0#\n#00po`0#\n#`000`0#\n#`00```#\n#`000``#\n#`000``#\n########\n\nmessage Book 2: EDIT\n\nmessage Page 2.1: MINI\n\n||||||||||\n|```````'|\n|`######`|\n|`#````#`|\n|`#``t`#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 2.2: FORM\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 2.3: PLUG\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#ro`o`#`|\n|`#####`#`|\n|`###`o`#`|\n|`#``oLo#`|\n|`#````##`|\n|`#`q####`|\n|`#######`|\n|`````````|\n|``c`0````|\n|````8````|\n|`````````|\n|||||||||||\n\nmessage Page 2.4: TRAP\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#``````#`|\n|`#``t```#`|\n|`#`tqt``#`|\n|`#``t```#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````16````|\n|``````````|\n||||||||||||\n\nmessage Book 3: DUAL\n\nmessage Page 3.1: CO-OP\n\n#######\n####qq#\n#po000#\n#`o000#\n###o``#\n###r`'#\n#######\n\nmessage Page 3.2: REST\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#`r00q#`|\n|`#######`|\n|`````````|\n|``c`o````|\n|````2````|\n|`````````|\n|||||||||||\nmessage Page 3.3: SAIL\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#0000q#`|\n|`#00000#`|\n|`#00000#`|\n|`#```00#`|\n|`#```00#`|\n|`#######`|\n|`````````|\n|``c`ro```|\n|````23```|\n|`````````|\n|||||||||||\n\nmessage Page 3.4: TWIN\n\n|||||||||||||||||||||\n|`````````+````````'|\n|`#######`+`#######`|\n|`#`````#`+`#`````#`|\n|`#```q`#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`q```#`|\n|`#`````#`+`#`````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````6````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Book 4: WHAT\n\nmessage Page 4.1: GUIS\n\n\n#######\n#q#``'#\n#``8#`#\n#`#p#`#\n#`#o#`#\n#`#1``#\n#######\n\nmessage Page 4.2: IDEA\n\n||||||||||\n|```````'|\n|`######`|\n|`#```t#`|\n|`#```t#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```31```|\n|````````|\n||||||||||\n\nmessage Page 4.3: FILL\n\n\n######\n#0poq#\n#0`70#\n#'000#\n#0000#\n######\n\nmessage Page 4.4: A LOT\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|``````'|\n|`c3o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Book 5: UHHH\n\nmessage Page 5.1: WALL\n\n||||||||||\n|```````'|\n|`######`|\n|`#t`#`#`|\n|`#````#`|\n|`##`o`#`|\n|x+xxxx+x|\n|`#````#`|\n|`#````#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 5.2: SAFE\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#xxxxx#`|\n|`#x```x#`|\n|`#x`t`x#`|\n|`#x```x#`|\n|`#xxxxx#`|\n|`#######`|\n|`````````|\n|`c`o1r```|\n|```111```|\n|`````````|\n|||||||||||\n\nmessage Page 5.3: LOCK\n\n|||||||||||||\n|o```'`xxxcx|\n|1``x```qx!x|\n|`1!````qx`x|\n|``1?x`xxx?x|\n|r``1````!`x|\n|````2`xxxxx|\n|||||||||||||\n\n\n\nmessage Page 5.4: POST\n\n+++++++++\n+p#```#q+\n+`#``'#3+\n+`#`1`#`+\n+`#`2`#`+\n+`#```#`+\n+`#```#`+\n+++++++++\nmessage Book 6: BLUE\n\nmessage Page 6.1: META\n\n||||||||||||\n|++++++++++|\n|+````\"```+|\n|+`######`+|\n|+`#````#`+|\n|+`#``t`#`+|\n|+`#````#`+|\n|+`######`+|\n|+````````+|\n|+```ro```+|\n|+````````+|\n|+````````+|\n|++++++++++|\n|``````````|\n|``~`1b````|\n|````{[````|\n|``````````|\n||||||||||||\n\nmessage Page 6.2: WILD\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`#######`+|\n|+`#0000q#`+|\n|+`#00000#`+|\n|+`#`0000#`+|\n|+`#`0000#`+|\n|+`#```00#`+|\n|+`#######`+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\nmessage Page 6.3: UH OH\n\n|||||||||||\n|+++++++++|\n|+``````\"+|\n|+`+++++`+|\n|+`+```+`+|\n|+`+`t`+`+|\n|+`+```+`+|\n|+`+```+`+|\n|+`+++++`+|\n|+```````+|\n|+```o```+|\n|+```````+|\n|+```````+|\n|+++++++++|\n|`````````|\n|`````````|\n|`~`1br```|\n|```][[```|\n|`````````|\n|||||||||||\n\nmessage Page 6.4: VARY\n\n|||||||||||||||||||||||\n|++++++++++&++++++++++|\n|+``````\"`x&x````````+|\n|+`######`x&x`######`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`#`qt`#`x&x`#`tq`#`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`######`x&x`######`+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|++++++++++&++++++++++|\n|``````````&``````````|\n|`~`r1ob```&`_`r1ob```|\n|```[{[[```&```[[[[```|\n|``````````&``````````|\n|||||||||||||||||||||||\n\nmessage Book 7: ?!?!\n\nmessage Page 7.1: EACH\n\n+++++++\n+````'+\n+`###`+\n+`#q#`+\n+`#0#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`###`+\n+`````+\n+``c``+\n+`r0o`+\n+``4``+\n+`````+\n+++++++\n\nmessage Page 7.2: HOLD\n\n&&&&&&&&&\n&`8```+`&\n&`{po`+`&\n&`\"```+t&\n&&&&&&&&&\n\nmessage Page 7.3: TRIP\n\n&&&&&&&\n&```\"`&\n&`o`!`&\n&`````&\n&+++++&\n&`r2b`&\n&`[[{~&\n&y```t&\n&&&&&&&\n\nmessage Page 7.4: PLAN\n\n\n|||||||||\n|```t```|\n|```````|\n|+++++++|\n|```````|\n|```````|\n|>>>>>>>|\n|```````|\n|```````|\n|+++++++|\n|```~```|\n|[[`2\"11|\n|[[`[`[[|\n|&&`&&&&|\n|&&bor&&|\n|||||||||\n\n\n\n\n\nmessage Book 8: (RE)STAR(TS)\n\n\nmessage Page 8.1: (IN)FORM(ED)\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 8.2: (EN)TWIN(ED)\n\n|||||||||||||||||||||\n|`````````+`````````|\n|`#######`+`#######`|\n|`#````q#`+`#`````#`|\n|`#`````#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`````#`|\n|`#`````#`+`#q````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````5````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Page 8.3: (ZE)ALOT(RY)\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|```````|\n|`c2o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Page 8.4: (BE)WILD(ER)\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`+++++++`+|\n|+`+0000q+`+|\n|+`+00000+`+|\n|+`+00000+`+|\n|+`+`0000+`+|\n|+`+```00+`+|\n|+`+++++++`+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", [0, 3, 3, 3, 2, 2, 4, 1, 0, 3, 4, 0, 0, 0, 0, 4, 3, 3, 2, 2, 2, 2, 1, 4, 0, 0, 0, 3, 0, 4, 2, 2, 2, 2, 3, 3, 4, 1, 4, 0, 0, 0, 0, 0, 4, 1, 2, 2, 2, 2, 2, 4, 0, 0, 0, 3, 0, 4, 4, 4, 1, 4, 2, 1, 0, 3, 3, 4, 2, 1, 0, 4, 1, 0, 0, 3, 3, 3, 2, 1, 1, 1, 3, 4, 2, 2, 1, 1, 1, 0, 3, 4, 3, 3, 2, 2, 2, 1, 2, 1, 4, 0, 0, 0, 3, 3, 0, 0, 0, 4, 3, 2, 2, 1, 0, 4, 1, 2, 1, 4, 3, 3, 0, 4, 2, 3, 0, 4, 2], "background black cant0 cant1 cant2 fellcant0 fellcant1:0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,background cant0 cant1 fellcant0 fellcant1 wall0 wall1 walll0 walll1 wallu0 wallu1:1,background cant0 cant1 fellcant0 fellcant1 wall0 wall1 walll0 walll1 wallr0 wallr1:2,2,2,2,\n2,2,2,2,2,2,2,2,background cant0 cant1 fellcant0 fellcant1 wall0 wall1 walld0 walld1 walll0 walll1:3,background fellcant0 fellcant1:4,4,4,4,\n0,0,background cant0 cant1 fellcant0 fellcant1 wall0 wall1 walld0 walld1 wallu0 wallu1:5,4,4,4,4,4,4,4,4,4,4,\n4,4,5,4,4,4,4,0,0,5,4,background cant1 fellcant0 fellcant1 wall1 walll1 wallu1:6,background cant1 fellcant0 fellcant1 wall1 walll1 wallr1:7,\n7,7,7,7,background cant1 fellcant0 fellcant1 wall1 walld1 walll1:8,4,4,4,4,5,4,4,4,\n4,0,0,5,4,background cant1 fellcant0 fellcant1 wall1 walld1 wallu1:9,background blackdr fellcant0 pit1 pit1d pit1r rim1l rim1u:10,background blackur fellcant0 pit1 pit1r pit1u rim1d rim1l:11,4,4,4,9,4,\n4,4,4,5,4,background cant1 cyan fellcant0 fellcant1 one0:12,background cant1 cyan fellcant0 fellcant1 one2:13,4,0,0,5,4,9,\nbackground blackdl blackdr fellcant0 pit1 pit1d pit1l pit1r rim1u:14,background blackdl blackdr blackul blackur fellcant0 pit1 pit1d pit1l pit1r pit1u:15,background blackdr blackur fellcant0 pit1 pit1d pit1r pit1u rim1l:16,11,4,9,4,background crate1 fellcant0 fellcant1 pink supported:17,background cant1 fellcant0 fellcant1 pink two0:18,4,5,4,4,\n4,4,0,0,5,4,9,14,15,15,background blackul blackur fellcant0 pit1 pit1l pit1r pit1u rim1d:19,4,9,\n4,4,4,4,5,4,4,4,4,0,0,5,4,\n9,background blackdl fellcant0 pit1 pit1d pit1l rim1r rim1u:20,15,15,15,11,background cant1 fellcant0 fellcant1 pink wall1 walld1 wallu1:21,18,4,4,4,5,4,\n4,4,4,0,0,5,background fellcant0 fellcant1 partc:22,9,background fellcant0 fellcant1 playertarget1:23,20,background blackdl blackul fellcant0 pit1 pit1d pit1l pit1u rim1r:24,24,background blackul fellcant0 pit1 pit1l pit1u rim1d rim1r:25,\n9,4,background fellcant0 fellcant1 player1:26,activecurse0 background cursor0a fellcant0 fellcant1:27,4,5,4,4,4,4,0,0,5,\n4,background cant1 fellcant0 fellcant1 wall1 wallr1 wallu1:28,7,7,7,7,7,background cant1 fellcant0 fellcant1 wall1 walld1 wallr1:29,4,4,4,4,5,\n4,4,4,4,0,0,5,4,4,4,4,4,4,\n4,4,4,4,4,4,5,4,4,4,4,0,0,\nbackground cant0 cant1 fellcant0 fellcant1 wall0 wall1 wallr0 wallr1 wallu0 wallu1:30,2,2,2,2,2,2,2,2,2,2,2,2,\nbackground cant0 cant1 fellcant0 fellcant1 wall0 wall1 walld0 walld1 wallr0 wallr1:31,4,4,4,4,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 49, "1642083700844.0618"] + ], + [ + "Undo and Real-time #796", + ["title Undo and Real-time\nrealtime_interval 0.25\n\n========\nOBJECTS\n========\n\nBackground .\nBlack\n\nPlayer @\nBlue\n\nThing *\nYellow\n\n=======\nLEGEND\n=======\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nThing\nPlayer\n\n======\nRULES \n====== \n\n[ Thing ] -> [ right Thing ] \n\n==============\nWINCONDITIONS\n============== \n\n======= \nLEVELS\n=======\n\nmessage Walk around a bit, then undo several times (usually, three is enough).\n\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.............@.......................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n\n\n\n\n\n", ["tick", 4, 4, 4, 1, 1, "tick", 1, "tick", "tick", "tick", "tick", "undo", "undo", "tick", "tick", "tick", "undo"], "background: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,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,background thing:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,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,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,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,background player: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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,\n", 1, "1642738088805.1099"] + ], + [ + "Cucumber Surprise", + ["title Cucumber Surprise\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #595652\ntext_color white\n\nagain_interval 0.01\n\n(thanks to bvoq for Puzzlescript+MIS https://dekeyser.ch/puzzlescriptmis/ also testing. also thanks to ggn and meepmeep13 for testing)\n\n========\nOBJECTS\n========\n\nBackground\n#595652 #696a6a\n00000\n00000\n00100\n00000\n00000\n\n\n\nziel\n#595652 #eec39a #d9a066 #e1b489\n.111.\n23331\n23331\n23331\n.222.\n\n\nwand\n#696a6a #847e87\n00010\n11111\n01000\n11111\n00010\n\n\nplayer\n#595652 #ac3232 #8a6f30 #5b6ee1\n.111.\n.222.\n.222.\n13331\n.1.1.\n\n\nkatze\n#000000 \n0..00\n.0.00\n.000.\n.0.0.\n.0.0.\n\ngurke\ntransparent #99e550 #6abe30\n00100\n02110\n02110\n02110\n00200\n\npush_up\ntransparent\n\npush_down\ntransparent\n\npush_left\ntransparent\n\npush_right\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\ng = gurke\np = player\n* = katze\n# = wand\n@ = katze and ziel\nO = ziel\nm = gurke and ziel\n\nobstacle = player or katze or wand or gurke\npush = push_up or push_down or push_left or push_right\n\n=======\nSOUNDS\n=======\n\nsfx0 23445905 (katzenschreck)\nstartgame 90870106\nstartlevel 90870106\nendlevel 78627300\ngurke move 70216507\nkatze move 45785907\n================\nCOLLISIONLAYERS\n================\n\nBackground\nziel\nPlayer, katze, gurke, wand\npush\n======\nRULES\n======\n\n[moving player] [ push ] -> [ moving player ] [ ]\n\nup [ push_up stationary katze | no obstacle ] -> [ | push_up action katze ] again\n+ down [ push_down stationary katze | no obstacle ] -> [ | push_down action katze ] again\n+ left [ push_left stationary katze | no obstacle ] -> [ | push_left action katze ] again\n+ right [ push_right stationary katze | no obstacle ] -> [ | push_right action katze ] again\n\n\n[ > Player | gurke | no obstacle ] -> [ > Player | > gurke | no obstacle ] again\n\n\n[ < player | katze ] -> [ < player | < katze ] again\n\nlate up [ gurke | katze | no obstacle] -> [ gurke | push_up katze | no obstacle] sfx0\nlate down [ gurke | katze | no obstacle] -> [ gurke | push_down katze | no obstacle] sfx0\nlate left [ gurke | katze | no obstacle] -> [ gurke | push_left katze | no obstacle] sfx0\nlate right [ gurke | katze | no obstacle] -> [ gurke | push_right katze | no obstacle] sfx0\n\nlate up [ gurke | katze ] -> [ gurke | push_up katze ]\nlate down [ gurke | katze ] -> [ gurke | push_down katze ]\nlate left [ gurke | katze ] -> [ gurke | push_left katze ]\nlate right [ gurke | katze ] -> [ gurke | push_right katze ]\n\n==============\nWINCONDITIONS\n==============\n\nall katze on ziel\n\n=======\nLEVELS\n=======\n\n(wanna hand make the first few levels)\n\n\nmessage Put your doting cats to bed.\nmessage Level 1/20 \n.....#####\n######...#\n#...o..#.#\n#.p..*o*.#\n##########\n\n\nmessage Who left that cucumber there?\nmessage Level 2/20 \n##########\n#........#\n#........#\n#.g.p.*.o#\n#........#\n#........#\n##########\n\nmessage Level 3/20\n(The only thing cats love more than you is hating cucumbers)\n(not so hard, could be an ok level 2)\n######\n#...o#\n#.#..#\n#*.g.#\n#..p.#\n#....#\n######\n\nmessage Level 4/20\n(almost trivial)\n#######\n#.o...#\n#..g..#\n#.o..p#\n#...*.#\n#.....#\n#..*..#\n#######\n\n\nmessage Level 5/20\n(easy enough - could be level 2?)\n.#######\n.#...*.#\n.#..*..#\n##.p.o.#\n#.g....#\n#o.....#\n########\n\n\n\nmessage Level 6/20\n(reasonable. could be level 2)\n..####...\n###..####\n#....p..#\n#.#.*#m.#\n#....#..#\n#########\n\n\nmessage Level 7/20\n(ok early level 1-2)\n######\n#o...#\n#.m.*#\n#....#\n#.*p.#\n######\n\n\n\nmessage Level 8/20\n(nice level. could be #2 or 3)\n..####.\n###o.##\n#..g..#\n#.#..##\n#*..p#.\n######.\n\n\nmessage Level 9/20\n(nice level. could be level 3/4)\n########\n#...*o.#\n#.*....#\n#..p.g.#\n#####.o#\n....####\n\n\n\n\nmessage Level 10/20\n(haven't solved this yet - tricky / hard to find the solution? but once I tried and concentrated I was able to ?)\n######\n#o..p#\n#.#..#\n#o.g.#\n#*...#\n#..*.#\n######\n\n\nmessage Level 11/20\n(ok late intermediate)\n######\n#po.o#\n#.#g.#\n#*...#\n#....#\n#.*..#\n######\n\n\n\nmessage Level 12/20\n( ok level, but not an ok first level )\n####..\n#*o#..\n#..###\n#.g.p#\n#....#\n#..###\n####..\n\n\nmessage Level 13/20\n(two gurkins! not hard! pleasing!)\n#######\n#...g.#\n#..#..#\n#....g#\n#.*#..#\n##....#\n#o..p.#\n#######\n\n\nmessage Level 14/20\n(ok latish intermediate!)\n#####.\n#o..##\n#....#\n##pg.#\n.##..#\n..##*#\n...###\n\n\nmessage Level 15/20\n(ok late intermediate level)\n#######\n#.o...#\n#..g..#\n#.#...#\n#.o.#.#\n#....*#\n#p.#.*#\n#######\n\n\n\n\n\nmessage Level 16/20\n(bit trial+errory. not high-concept)\n#######\n#.#p..#\n#.**..#\n#.#...#\n#...g##\n#....o#\n#o.#..#\n#######\n\n\nmessage Level 17/20\n(a bit tricky - the solution was not hard but finding it was a bit indirected / trial+errory)\n#######\n##o...#\n#.o#.*#\n#.....#\n#.##..#\n#..g..#\n#.*.p.#\n#######\n\n\n\nmessage Level 18/20\n(unsolved. wtf.)\n..######\n..#....#\n..#..g.#\n####.###\n#..o.##.\n#.#.p.#.\n#...#.#.\n###*..#.\n..#####.\n\n\n\n\nmessage Level 19/20\n(ok hardish level)\n....#########...\n#####..o.o..####\n#.g...#.#.#....#\n#...*...p...*..#\n################\n\n\nmessage Level 20/20\n(intermediate. pleasing)\n......#####\n......#...#\n......#.#.#\n#######g#.#\n#....p..o.#\n#o#*#.#.###\n#......*#..\n#########..\n\nmessage Congratulations. All the cats are in bed, having cucumbers nightmares.\n\n(\n( super hard. do not include)\n......#####\n......#...#\n......#.#.#\n#######.#.#\n#....**...#\n#.#m#.#.###\n#.....po#..\n#########..\n)\n", [1, 3, 3, 0, 1, 0, 2, 2, 3, 0, 1, 0, 0, 0, 2, 3, 0, 1, 2, 2, 2, 1, 1, 0, 3, 3, 2, 3, 0, 1, 0, 0, 0, 0], "background wand:0,0,0,0,0,0,0,\n0,0,0,background:1,1,1,1,\n1,0,0,background ziel:2,2,1,0,\n1,1,0,0,1,0,1,\n0,1,1,0,0,background player:3,1,\n1,1,1,1,0,0,1,\nbackground katze:4,background katze push_up:5,background gurke:6,1,1,0,0,\n0,0,0,0,0,0,0,\n", 35, "1645544413590.2168"] + ], + [ + "Chevron Lodger", + ["title Chevron Lodger\nauthor increpare\nhomepage www.increpare.com\n\n(verbose_logging)\n\ncolor_palette ega\n\nbackground_color #d3beaa\ntext_color #683d15\n(thanks to youAtExample for feedback)\n\n========\nOBJECTS\n========\n\nBackground\n#d3beaa #d3beaa\n00000\n00000\n00100\n00000\n00000\n\n\n\n\nWall\n#7b4b1d #7b4b1d\n00000\n00000\n00100\n00000\n00000\n\n\n\nPlayer_top 1\n#ee8b16\n..0..\n..0..\n.000.\n.000.\n00000\n\n\nplayer_middle 2\n#ee8b16\n\n\nplayer_bottom 3\n#ee8b16\n00000\n00.00\n00.00\n0...0\n0...0\n\n\n\nCrate_top\n#926c3f\n..0..\n..0..\n.000.\n.000.\n00000\n\n\n\ncrate_middle \n#926c3f\n\n\ncrate_bottom\n#926c3f\n00000\n00.00\n00.00\n0...0\n0...0\n\n\n\n\n\n=======\nLEGEND\n=======\n\nplayer = Player_top or player_middle or player_bottom\ncrate = Crate_top or crate_bottom or crate_middle\n\n. = Background\n# = Wall\n\na = crate_top\nb = crate_middle\nc = crate_bottom\n\nplayer_or_crate = player or crate\n\nobstacle = wall or player or crate\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx0 48406107 (snap)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n(level generation QOL things. can comment out later)\ndown [ playeR_top | no player] -> [ Player_top | player_bottom ]\ndown [ Crate_top | no player ] -> [ Crate_top | crate_bottom ]\n\n\ndown [ > player_bottom | Crate_top ] -> [ | player_middle ] sfx0\n\nup [ > player_top | crate_bottom ] -> [ | player_middle ] sfx0\n\nhorizontal [ > Player | Crate ] -> [ > Player | > Crate ]\n\n\n\ndown [ left Crate_top | stationary crate_bottom ] -> [ left Crate_top | left crate_bottom ]\n+ down [ stationary Crate_top | left crate_bottom ] -> [ left Crate_top | left crate_bottom ]\n+ horizontal [ > crate | stationary crate ] -> [ > crate | > crate ] \n\ndown [ right Crate_top | stationary crate_bottom ] -> [ right Crate_top | right crate_bottom ]\n+ down [ stationary Crate_top | right crate_bottom ] -> [ right Crate_top | right crate_bottom ]\n+ horizontal [ > crate | stationary crate ] -> [ > crate | > crate ] \n\n[ > player_or_crate | wall ] -> cancel\n\nlate vertical [ player_middle | crate_middle ] -> [ player_middle | player_middle ]\n\nlate down [ player_middle | crate_bottom ] -> [ player_middle | player_bottom ]\nlate up [ player_middle | crate_top ] -> [ player_middle | player_top ]\n\n==============\nWINCONDITIONS\n==============\n \nno crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 6\n\n(ok level 1)\n#######\n#.....#\n#.#...#\n#a....#\n#c..#.#\n#.1a..#\n#.3c..#\n#######\n\nmessage Level 2 of 6\n\n(ok level 2)\n#########\n#...a...#\n#...c1..#\n#.#.#3..#\n#...a...#\n#...c.a.#\n##..#.c.#\n#########\n\n\nmessage Level 3 of 6\n\n\n(ok level 2.5?)\n###########\n######...##\n######.#.##\n#####....##\n#####....1#\n#...a..#.3#\n#...c...a.#\n#..a....c.#\n#..c...####\n###########\n\n\n(\n(weirdly confusing - could be a level 2.5 ? but could be too similar to 3)\n#########\n#....1a.#\n#....3c.#\n#..#..#.#\n##......#\n#..aa...#\n#..cc...#\n#########\n)\n\nmessage Level 4 of 6\n\n(ok level 3? too similar to level 1 to follow it?)\n##########\n#........#\n#........#\n#..#.#...#\n#.a.1....#\n#.c.3#.#.#\n#..#..a..#\n#.....c..#\n##########\n\nmessage Level 5 of 6\n\n(NICE LEVEL I used my brain and solved it)\n###########\n#######...#\n#####.....#\n#####...a.#\n#.a1....c.#\n#.c3...#..#\n#.....a...#\n#.....c...#\n###########\n\nmessage Level 6 of 6\n\n(perfectly ok level! lots of nice considerations. good enough!)\n############\n#######....#\n######.....#\n######..a#.#\n######..c..#\n######.....#\n#...a.aa.#.#\n#.1.c.cc...#\n#.3......a.#\n###......c.#\n############\n\nmessage Congratulations. You know your chevrons well.\n\n(HARD. TRY AGAIN) \n(SOLVED IT DON'T LIKE IT)\n(#############\n#######.....#\n#######1....#\n#######3..#.#\n#######..#..#\n#######.a.a.#\n#.....a.c.c.#\n#.....c.....#\n#...a.....a.#\n#...c.....c.#\n#############\n\n)\n\n\n(\n(meh)\n#########\n#..a....#\n#..c..a.#\n#....1c.#\n#...a3#.#\n#...c...#\n#.......#\n#########\n)\n\n(\n(meh)\n#########\n#....a1.#\n##...c3.#\n#.#..#..#\n#....##.#\n#.#..a..#\n##...c..#\n##..##..#\n#.......#\n#..a....#\n#..c.a..#\n#.#.#c..#\n#.......#\n#########\n)\n\n((no: meh)\n(ok!)\n#####\n#.a.#\n#ac.#\n#c..#\n#..a#\n#..c#\n#..##\n#..a#\n#..c#\n#.a.#\n#1c.#\n#3..#\n#...#\n#####\n)\n(\n(Eeeh)\n#####\n#a..#\n#c.##\n#.a.#\n#.c.#\n#.a.#\n#.ca#\n#.1c#\n#.3a#\n#a.c#\n#ca.#\n#.c.#\n#...#\n#####\n)\n\n(\n(meh)\n#####\n#.a.#\n#1c.#\n#3..#\n#...#\n#.#.#\n#..##\n#...#\n#...#\n#.a.#\n#.c.#\n#aaa#\n#ccc#\n#####\n)\n(\n(too easy)\n#####\n#aa.#\n#cca#\n#1ac#\n#3c.#\n#...#\n#.a.#\n#.c.#\n#a..#\n#c..#\n#.#.#\n#.a.#\n#.c.#\n#####)\n\n(\n#############\n#######.....#\n#######.....#\n#######.....#\n#######.....#\n#######.....#\n#...........#\n#...........#\n#...........#\n#...........#\n#############\n\n)\n(\n(non trivial and has an idea but you can probably find better)\n#############\n#######..#..#\n#######.#...#\n#######....1#\n#######.a..3#\n#######.c.a.#\n#.#....a..c.#\n#......c....#\n#.....a...a.#\n#.....c...c##\n#############\n)\n\n\n(insoluble ? wtf? oh maybe old version that didn't transfer movements correctly)\n(#############\n########.a#.#\n#######a.c###\n#######c....#\n#######1....#\n#######3....#\n#.....a..#..#\n#....ac.....#\n#....c....a.#\n#.........c.#\n#############\n)\n(\n(meh)\n#############\n#######...1.#\n#######..a3.#\n#######..c..#\n#######.....#\n#######.....#\n#.....a.a...#\n#.....c.c..a#\n#.....a....c#\n#.....c....##\n#############\n)\n\n(meh)(\n#############\n#######..a..#\n#######.1c..#\n#######a3.a.#\n#######c..c.#\n#######a.##.#\n##.....c....#\n#...........#\n#.a.........#\n#.c.#.......#\n#############\n)\n\n(90% meh)\n(\n#############\n#######.#...#\n#######.....#\n#######....##\n#######...1.#\n#######.a.3.#\n#...aa.ac...#\n#...cc.c....#\n##.......a..#\n##.....##c..#\n#############)\n\n(meh)\n(\n#############\n#######.#...#\n#######.....#\n########.#.a#\n########aa1c#\n#######.cc3.#\n#....a......#\n#....c......#\n#.#.......a.#\n#.#.......c.#\n#############\n)\n\n(\n(meh)\n#############\n#######a.a..#\n#######c.c..#\n#######.a.#.#\n#######.c..##\n#######.....#\n#..........##\n#....#...a..#\n#....a...c.1#\n##...c..#..3#\n#############\n)\n\n\n\n(insoluble :[\n#############\n#######.a...#\n#######.c...#\n#######.#...#\n#######.....#\n#######..a..#\n#.a......c1##\n#.c.......3.#\n#...a....a..#\n#...c.#..c..#\n#############\n)\n(insoluble :[\n#############\n#######.#...#\n#######.....#\n#######..#..#\n#######.....#\n#######.....#\n#a#.1...a...#\n#c..3a..c.a.#\n#....c.a..c.#\n#......c....#\n#############\n)\n(insoluble :[\n#############\n#######..#..#\n########....#\n#######.1...#\n#######.3...#\n#######...a.#\n#.......aac.#\n#....a..cc.##\n#....ca.....#\n#.....c....##\n#############\n)\n(trivial\n#############\n#######.1...#\n########3...#\n#######.#...#\n#######..aa.#\n########.cca#\n#........a.c#\n##.......c..#\n#....#..a...#\n#.......c...#\n#############\n)\n(almost trivial\n#############\n#######...#.#\n#######.a...#\n#######.c...#\n#######.a...#\n#######.caa.#\n#.#.1....cc.#\n#...3....a..#\n#.#.a....c..#\n#.##c.......#\n#############\n)\n(trivial\n#############\n#######.....#\n#######.....#\n########..a.#\n#######.1.c.#\n#######.3...#\n#....a.#a...#\n#....c..c.a.#\n##...a.a..c.#\n#....c.c....#\n#############\n)\n(trivial\n#############\n#######.a...#\n#######.c...#\n#######.....#\n#######.....#\n#######.....#\n#......1aa..#\n#.....#3cc..#\n##..a.a.....#\n#...c.c.....#\n#############\n)\n\n(trivial\n#############\n#######.##..#\n#######.....#\n#######.a...#\n#######.c...#\n#######.....#\n#...a1....a.#\n#...c3....c.#\n#a......aa..#\n#c......cc..#\n#############\n)\n\n(\n(hard but also meh)\n#############\n########....#\n#######.a.1.#\n#######.c.3a#\n#######....c#\n#######...a.#\n#.....a..ac.#\n#.....c..c..#\n#........#a.#\n#.#.#.....c.#\n#############\n)\n(unsolvable :'[\n#############\n#######..#..#\n########....#\n#######.1...#\n#######.3...#\n#######...a.#\n#.......aac.#\n#....a..cc.##\n#....c.a....#\n#......c...##\n#############\n)\n\n((meh)\n(there's an idea to this level, which I like - could it be expanded?)\n#############\n########...##\n#######a..1a#\n#######c..3c#\n#######....a#\n#######....c#\n#aa.........#\n#cc.........#\n#...........#\n#...........#\n#############\n)\n\n(meh\n#############\n########....#\n#######.....#\n#######...#.#\n#######...a.#\n#######...ca#\n#........a.c#\n#...1....c.##\n#...3..a..a.#\n#......c..c.#\n#############\n)\n(Tricky?)\n(meh)\n(\n#############\n#######.....#\n#######.a...#\n#######.c..a#\n#######....c#\n#######.1..a#\n#.a.....3#.c#\n#.c.......a.#\n#.........c.#\n#........#.##\n#############\n)\n(\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#####\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#####\n\n#####\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#####\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n)\n(meh it's ok but I already have somethign like this?)\n(\n#########\n#.a.....#\n#.c.....#\n#...#.#1#\n#......3#\n#.#.a...#\n#..#c...#\n#########\n)\n(\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n##.....##\n##.....##\n###...###\n###...###\n####.####\n####.####\n#########\n\n(meh)\n#########\n#.#.....#\n#.a.....#\n#.....#.#\n#..#.#..#\n#..a1a..#\n#.......#\n##.....##\n##.....##\n###...###\n###...###\n####.####\n####.####\n#########\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.1..a.a..#\n#.3..b.b..#\n#....c.c..#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n)\n(meh)\n(\n#########\n###...###\n##.....##\n#.......#\n#.......#\n#.......#\n#.......#\n##aa1aa##\n##cc3cc##\n###aaa###\n###ccc###\n####a####\n####c####\n#########\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#...1...#\n#...3...#\n##aaaaa##\n##ccccc##\n###aaa###\n###ccc###\n####a####\n####c####\n#########\n\n#########\n#########\n####.####\n###...###\n##.....##\n#.......#\n#.......#\n##aa1aa##\n##cc3cc##\n###aaa###\n###ccc###\n####a####\n####c####\n#########\n)\n\n(\nTRANSFORM\n\nchoose 1 down [ no obstacle | no obstacle ] -> [ player_top | player_bottom ]\nchoose 5 down [ no obstacle | no obstacle ] -> [ crate_top | crate_bottom ]\nchoose 10 [ no crate no player ] -> [ wall ]\n\n----\n\n\n(choose 1 option 0.5 [ wall ] -> []\n+ option 0.5 [ no obstacle ] -> [ wall ])\n\nchoose 5 option 0.2 [ no obstacle ] -> [ wall ]\n+ option 0.2 []->[]\n\nchoose 5 down [ no obstacle | no obstacle ]-> [ crate_top | crate_bottom] \nchoose 1 down [ no obstacle | no obstacle ] -> [ player_top | player_bottom]\n(choose 1 down [ no obstacle | no obstacle ] [crate_top|crate_bottom]-> [ crate_top | crate_bottom] [|])\n\n)\n", [3, 2, 2, 1, 1, 1, 0, 3, 3, 2, 3, 3, 0, 0, 0, 3, 0, 3, 0, 3, 3, 2, 2, 2, 0, 1, 1, 3, 2, 2, 2, 1, 1, 0, 0, 1, 1, 2, 1, 1, 3, 3, 3, 3, 0, 0, 0, 0, 3, 3, 3, 2, 1, 2, 1, 1, 1, "undo", "undo", 3, 0, 1, 1, 2, 1, 1], "background wall:0,0,0,0,0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,0,0,0,0,0,\nbackground crate_top:2,background crate_bottom:3,1,1,0,0,0,0,0,background player_top:4,background player_middle:5,\n5,background player_bottom:6,0,0,0,0,0,1,1,1,1,\n0,0,0,1,1,1,1,1,1,0,0,\n0,1,1,1,1,1,1,0,0,1,1,\n1,1,0,1,1,0,0,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,\n1,0,0,0,0,0,0,0,0,0,0,\n", 9, "1645544442907.0366"] + ], + [ + "Two-Tone Tango", + ["title Two-Tone Tango\nauthor increpare\nhomepage www.increpare.com\n\nrequire_player_movement\n\n\n========\nOBJECTS\n========\n\nBackground\n#58875a\n\n\nTarget\ntransparent #b8ca58\n00000\n00100\n01110\n00100\n00000\n\n\nWall\n#906f80 #5f4351\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nlightblue\n\nFreund\n#355278\n\nCrate\n#b39b2a transparent\n00000\n01110\n01110\n01110\n00000\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nf = Freund\n* = Crate\n@ = Crate and Target\nO = Target\n\npusher = player or freund or crate\n\nblocker = player or freund or crate or wall\n=======\nSOUNDS\n=======\n\nCrate MOVE 26816907\nsfx1 15668107 (disconnect)\nsfx2 62739107 (connect)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, freund, Wall, Crate\n\n======\nRULES\n======\n\n[ up player | Freund ] -> [ up player | up Freund ]\n[ down player | Freund ] -> [ down player | down Freund ]\n[ left player | Freund ] -> [ left player | left Freund ]\n[ right player | Freund ] -> [ right player | right Freund ]\n\n\nvertical [ up freund | stationary freund ] -> [ up freund | up freund ]\nvertical [ down freund | stationary freund ] -> [ down freund | down freund ]\nvertical [ left freund | stationary freund ] -> [ left freund | left freund ]\nvertical [ right freund | stationary freund ] -> [ right freund | right freund ]\n\n(forward propagation)\n[ > pusher | Crate ] -> [ > pusher | > Crate ]\n\n\n(backwards propagation)\n\n[ > pusher | stationary blocker ] -> [ stationary pusher | stationary blocker ]\n+ vertical [ up freund | stationary freund ] -> [ stationary freund | stationary freund ]\n+ vertical [ down freund | stationary freund ] -> [ stationary freund | stationary freund ]\n+ vertical [ left freund | stationary freund ] -> [ stationary freund | stationary freund ]\n+ vertical [ right freund | stationary freund ] -> [ stationary freund | stationary freund ]\n\n(again forwards propagation)\n[ stationary pusher | > crate ] -> [ stationary pusher | stationary crate ]\n\n[stationary player ]-> cancel\n\n[ < player | stationary freund ] -> sfx1\n[ > player | | stationary freund ] -> sfx2\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1/8\n(could be ok level 1?)\n############\n#..........#\n#....*....o#\n#..f...p...#\n#..f#..p#..#\n############\n\n\nmessage Level 2/8\n(pleasant early)\n#######\n#..f..#\n#..f..#\n#o@...#\n#..p*.#\n#..p#.#\n##....#\n#######\n\n\nmessage Level 3/8\n(ok level 3? no 2)\n######\n#...o#\n##.f##\n#..f.#\n#..*.#\n#p...#\n#p...#\n######\n\n\nmessage Level 4/8\n(Really nice intermediate level!)\n#########\n#p..#...#\n#p....#.#\n#.*.....#\n#....f..#\n#...#f.o#\n#...#...#\n#########\n\n( (Easy but not bad. ok first level?) )\n( ###### )\n( #.#..# )\n( #.o..# )\n( #f...# )\n( #f.*p# )\n( #..*p# )\n( #...o# )\n( ###### )\n\n\n( (maybe ok early level? actually kinda tricky? maybe leave out?) )\n( ########## )\n( #..*...o.# )\n( #...f@...# )\n( #p..f....# )\n( #p..#....# )\n( ########## )\n\n( (p. easy. maybe for start of game. maybe leave out? not outstanding, just ok) )\n( ###### )\n( #o...# )\n( #..*o# )\n( #..p.# )\n( #.fp*# )\n( #.f..# )\n( #.*o.# )\n( ###### )\n\n\n( (easy but ok, maybe level 2-3? so lala) )\n( ########## )\n( #..f..o*.# )\n( #o.f..*p.# )\n( #@.....p.# )\n( ##.....### )\n( ########## )\n\n( (pretty ok? level 1 or 2? okish) )\n( ###### )\n( #..f.# )\n( #p.f.# )\n( #p*..# )\n( #.*.o# )\n( #...*# )\n( #o..o# )\n( ###### )\n\n\n( (Early hard. fine? not too memeorable meh) )\n( ###### )\n( #...o# )\n( #o.o*# )\n( #..f.# )\n( #**f.# )\n( #..p.# )\n( #..p.# )\n( ###### )\n\n\nmessage Level 5/8\n(a bit tricky but I could reason through it, OK)\n######\n#.#.p#\n#...p#\n#o..*#\n#.**o#\n#.f.o#\n#.f..#\n######\n\n\n\n\nmessage Level 6/8\n(late. pretty fun! nice to figure out / work through, if not exactly a lynchpin level)\n######\n#...o#\n#....#\n#...f#\n#..*f#\n#p**o#\n#p.o.#\n######\n\n\nmessage Level 7/8\n(INTERESTING intermediate. got stuck for a weird amount of time lol)\n######\n#o*.o#\n#p..f#\n#p*#f#\n#.*..#\n#....#\n#..o.#\n######\n\n\nmessage Level 8/8\n(funny! late intermediate/early late difficulty. definitely include)\n######\n#p...#\n#p...#\n##*.@#\n#f...#\n#fo..#\n#o.*.#\n######\n\nmessage Congratulations! You are the master of tango.\n\n( (got weirdly stuck for a while, but not hard - late early) )\n( ###### )\n( #...o# )\n( #p...# )\n( #p.@.# )\n( #..*.# )\n( #...f# )\n( #...f# )\n( ###### )\n\n( (ok intermediate? feel like I've solved it before though ,but dont' remmber the solution. maybe pass on this one?) )\n( ####### )\n( #.....# )\n( #.....# )\n( #....p# )\n( ##*..p# )\n( #..f@## )\n( #..f.o# )\n( ####### )\n\n( (easy but not appropriate for eearly game IMO. leave out) )\n( ########## )\n( #o.f...*p# )\n( #..f.o*.p# )\n( #........# )\n( ##.#.....# )\n( ########## )\n\n\n( (Easy ish but not so interesting/useful as intro level?) )\n( ######### )\n( #..o*f.o# )\n( #...*fo*# )\n( #p......# )\n( #p......# )\n( ######### )\n\n( (don't like can realize mistake at the end and need to backtrack) )\n( ########## )\n( ##..o..*p# )\n( #.......p# )\n( #...**.f.# )\n( ##..o.of.# )\n( ########## )\n\n( (trivial) )\n( ########## )\n( #.....po.# )\n( #f..*.p..# )\n( #f.....*.# )\n( #..@.o...# )\n( ########## )\n\n( (trivial) )\n( ########## )\n( #...*o..f# )\n( #...@.#.f# )\n( #p.....*.# )\n( #p......o# )\n( ########## )\n\n\n( (meh. not hard. not fun for me) )\n( ########## )\n( ##...pof.# )\n( #...*p.f.# )\n( #.o...*..# )\n( #..o...*.# )\n( ########## )\n\n\n\n( (perfectly chill/lovely/not hard. wtf? I guess i mistranscribed) )\n( ###### )\n( ##...# )\n( ##...# )\n( ##...# )\n( ##...# )\n( ##p..# )\n( #fp..# )\n( #f.*.# )\n( #o..## )\n( ###### )\n\n\n\n( (meh) )\n( ######### )\n( #....po.# )\n( #...#p..# )\n( ##*.....# )\n( #....f.## )\n( #...#f..# )\n( #...#.#.# )\n( ######### )\n\n( (could be ok as intermediate level? not sure it's conceptually sharp though, but I could solve it with my brain) )\n( ###### )\n( #....# )\n( #..o.# )\n( #p**f# )\n( #po*f# )\n( #..*o# )\n( #o..## )\n( ###### )\n\n\n( (trivialish/boring) )\n( ######## )\n( ####...# )\n( ####...# )\n( ####...# )\n( ####..p# )\n( ####*op# )\n( #f*....# )\n( #f.....# )\n( #o.....# )\n( #..o*..# )\n( ######## )\n\n( (trivialish/boring) )\n( ######## )\n( ####...# )\n( ####.op# )\n( ####.op# )\n( ####.*.# )\n( ####*..# )\n( #......# )\n( #f.....# )\n( #fo*...# )\n( #......# )\n( ######## )\n\n( (hard work, accidentally found solution. skip it) )\n( ######## )\n( ####...# )\n( ####...# )\n( ####...# )\n( ####.o.# )\n( ####.p.# )\n( #.f..p*# )\n( #.f..*.# )\n( #..o*.o# )\n( #......# )\n( ######## )\n\n( (trivial) )\n( ######## )\n( ####...# )\n( ####f..# )\n( ####fo.# )\n( ####...# )\n( ####.*.# )\n( #....o.# )\n( #.*..@p# )\n( #.....p# )\n( #......# )\n( ######## )\n\n\n\n( (trivial) )\n( ######## )\n( ####...# )\n( ####o*o# )\n( ####p..# )\n( ####p..# )\n( ####.*.# )\n( #...o.*# )\n( #.f....# )\n( #.f....# )\n( ######## )\n\n( (trivialish. leave it) )\n( ######## )\n( ####...# )\n( ####...# )\n( ####*o.# )\n( ####*..# )\n( ####...# )\n( #..f.*p# )\n( #..f..p# )\n( #....oo# )\n( ######## )\n\n( (can't figure it out. try solve again later. meh solved it what an anticlimax. screw this level.) )\n( ###### )\n( #f*o.# )\n( #f...# )\n( #*p*o# )\n( #.p*.# )\n( #oo..# )\n( #....# )\n( ###### )\n\n\n( \n\n\n########\n####...#\n####...#\n####...#\n####...#\n####...#\n#......#\n#......#\n#......#\n#......#\n########\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n##########\n\n############\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n\n##########\n######...#\n######...#\n######...#\n######...#\n######...#\n#........#\n#........#\n#........#\n##########\n\n########\n####...#\n####...#\n####...#\n####...#\n####...#\n#......#\n#......#\n#......#\n########\n)\n(transformation\n\nchoose 5 [ ] -> [ wall ]\nchoose 1 down [ no blocker | no blocker ] -> [ player | player ]\nchoose 1 down [ no blocker | no blocker ] -> [ freund | freund ]\nchoose 2 down [ no blocker ] -> [ crate ]\nchoose 2 down [ no wall no player no freund no target ] -> [ target ]\n)\n", [0, 2, 2, 1, 3, 0, 0, 0, 3, "restart", 0, 1, "restart", 2, 0, 1, 1, 1, 0, 0, 0, 3, 3, 2, 2, 1, 3, 2, 1, 0, 0, 0, 3, 3, 2, 1, 3, 2, 1, 2, 2, 1], "background wall:0,0,0,0,0,0,0,\n0,0,background:1,1,background crate target:2,1,1,\n0,0,0,1,1,background target:3,background crate:4,\nbackground player:5,5,0,0,1,1,1,\n1,1,1,0,0,1,1,\n1,1,0,1,0,0,1,\n1,1,background freund:6,6,1,0,0,\n0,0,0,0,0,0,0,\n", 3, "1645544569499.8286"] + ], + [ + "Hole-Stuffer", + ["title Hole-Stuffer\nauthor increpare\nhomepage www.increpare.com\n\n\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\n\nWall\n#493c2b #664b28\n00000\n01000\n00100\n00010\n00000\n \n\n\nPlayer\ngreen\n\n\n\nwintoken\ntransparent\n\nrandommoved\ntransparent\n\n\nplayer_1\n#2f484e #c62a6f #852e55 #af2f68\n01111\n23333\n23313\n23133\n23333\n\nplayer_2\n#c62a6f #af2f68 #852e55 #ffffff\n00000\n11211\n12021\n20302\n22022\n\nplayer_3\n#c62a6f #2f484e #af2f68\n00001\n22220\n20220\n22020\n22220\n\nplayer_4\n#852e55 #af2f68 #c62a6f\n01212\n01212\n01212\n01212\n01212\n\n\nplayer_5\n#852e55 #af2f68 #c62a6f #2f484e\n01212\n01212\n01212\n01112\n30003\n\n\n\ncrate\n#2f484e #fca556 #bd5d07 #eb8931\n01110\n23331\n23331\n23331\n02220\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = wall and randommoved\n\nobstacle = wall or crate\npusher = crate or player\n\n\nsprite_player = player_1 or player_2 or player_3 or player_4 or player_5 \n\n\nsprite = sprite_player \n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nwintoken\nrandommoved\nsprite\n\n\n======\nRULES\n======\n\n\n[ stationary randommoved ] [ > pusher | stationary Crate ] -> [ action randommoved] [ > pusher | > Crate ]\n\n[ action randommoved ] [ > pusher | stationary Crate ] -> cancel\n\n[ > pusher | wall ] -> cancel \n\n\n\nlate [ sprite ] -> []\n\n\nlate down [ no player | player | obstacle | obstacle | obstacle ] -> [ | player wintoken | obstacle | obstacle | obstacle ] again\n\n\n\n\nlate right [ player | player | player ] -> [ player player_1 | player player_2 | player player_3 ]\nlate down [ player_1 | | | ] -> [ player_1 | player_4 | player_4 | player_5 ]\nlate down [ player_3 | | | ] -> [ player_3 | player_4 | player_4 | player_5 ]\n==============\nWINCONDITIONS\n==============\n\nsome wintoken\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 4\n\n@###########\n#..........#\n#..........#\n#..........#\n#.ppp......#\n#.p.p......#\n#.p.p..***.#\n#.p.p......#\n#..........#\n#..........#\n############\n\nmessage Level 2 of 4\n\n\n@########\n#..ppp..#\n#..p.p..#\n#..p.p..#\n#..p.p..#\n#..***..#\n#.......#\n#.......#\n#########\n\n\nmessage Level 3 of 4\n\n@######\n#.....#\n#.....#\n#.....#\n#.....#\n#...*.#\n#ppp..#\n#p.p*.#\n#p.p..#\n#p.p*.#\n#######\n\nmessage Level 4 of 4\n\n@########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#..***..#\n#..ppp..#\n#..p.p..#\n#..p.p..#\n#..p.p..#\n#########\n\nmessage Congratulations, you aul hole-stuffer.\n\n\n\n", [3, 2, 2, 1, 1, 1, 0, 0, 1, 1, 2, 1, 1, 0, 3, 3, 3, 2, 1, 1, 2, 3, 3, 2, 1, 1, 0, 0, 1, 1, 3, 3, 0, 1, 1, 2, 2, 1, 3, 2, 1, 1], "background randommoved wall:0,background wall:1,1,1,1,1,1,1,1,\n1,background:2,2,2,2,background crate:3,2,2,1,\n1,2,2,2,background player player_1:4,background player player_4:5,5,background player player_5:6,1,\n1,2,2,2,background player player_2:7,2,2,3,1,\n1,2,2,2,background player player_3:8,5,5,6,1,\n1,2,2,2,2,2,2,2,1,\n1,2,2,2,2,3,2,2,1,\n1,2,2,2,2,2,2,2,1,\n1,1,1,1,1,1,1,1,1,\n", 3, "1645544598726.4905"] + ], + [ + "Wand Spinner", + ["title Wand Spinner\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #5b6ee1\n\n(thanks to bluemelon555 for the assistance, and ggn2, and bvoq )\n\n\n\n========\nOBJECTS\n========\n\nBackground\n#5b6ee1\n\ncrate\n#abb5f1 #5f4a18\n01110\n1...1\n1...1\n1...1\n01110\n\nTarget_h\ntransparent #c71fa9 transparent transparent\n00000\n11111\n22223\n11111\n00000\n\nTarget_v\ntransparent #c71fa9 transparent transparent\n01210\n01210\n01210\n01210\n01210\n\nWall\n#3f3f74\n\nPlayer\n#5b6ee1 #5fcde4 #000000\n01110\n12121\n11111\n11211\n01110\n\nstick_w 1\n#abb5f1 #323c39\n.....\n.....\n00111\n.....\n.....\n\nstick_nw 2\n#abb5f1 #323c39\n.....\n.0...\n..0..\n...1.\n....1\n\nstick_n 3\n#abb5f1 #323c39\n..0..\n..0..\n..1..\n..1..\n..1..\n\nstick_ne 4\n#ffffff #abb5f1 #323c39\n.....\n...1.\n..1..\n.2...\n2....\n\n\nstick_e 5\n#323c39 #abb5f1\n.....\n.....\n00011\n.....\n.....\n\n\nstick_se 6\n#323c39 #abb5f1\n0....\n.0...\n..1..\n...1.\n.....\n\nstick_s 7\n#323c39 #abb5f1\n..0..\n..0..\n..0..\n..1..\n..1..\n\nstick_sw 8\n#323c39 #abb5f1\n....0\n...0.\n..1..\n.1...\n.....\n\nmoved\ntransparent\n\ncon_ne\ntransparent\n\ncon_nw\ntransparent\n\ncon_se\ntransparent\n\ncon_sw\ntransparent\n\ntl\ntransparent\n\n\n\n=======\nLEGEND\n=======\nstick = stick_w or stick_nw or stick_n or stick_ne or stick_e or stick_se or stick_s or stick_sw\nstick_h = stick_e or stick_w\n\nstick_v = stick_n or stick_s\n\n. = Background\n# = Wall\nP = Player\n\n\n9 = target_h\n0 = Target_v\n\ntarget = target_h or Target_v\no = crate\nplayer_or_crate = player or crate\nstick_or_crate = stick or crate\nplayer_or_crate_or_stick = player or crate or stick\n\n@ = wall and tl\n\nobstacle = player or stick or crate or wall\n\na = target_v and stick_n\ns = target_v and stick_s\nd = target_h and stick_w\nf = target_h and stick_e\n\nz = target_v and stick_w\nx = target_v and stick_e\nc = target_h and stick_n\nb = target_h and stick_s\n\n=======\nSOUNDS\n=======\n\nstick move 12743307\nendlevel 58303907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, stick,crate\nmoved\ncon_ne, con_nw, con_se, con_sw\ntl\n\n\n======\nRULES\n======\n\n\n\n[ > player_or_crate | stick_or_crate ] -> [ > player_or_crate | > stick_or_crate ]\n\ndown [ left stick_n no moved | stick_s no moved ] -> [ left stick_nw moved | stick_se moved ]\n+ down [ right stick_n no moved | stick_s no moved ] -> [ right stick_ne moved | stick_sw moved ]\n+ down [ stick_n no moved | left stick_s no moved ] -> [ stick_ne moved | left stick_sw moved ]\n+ down [ stick_n no moved | right stick_s no moved ] -> [ stick_nw moved | right stick_se moved ]\n\n+ right [ down stick_w no moved | stick_e no moved ] -> [ down stick_sw moved | stick_ne moved ]\n+ right [ up stick_w no moved | stick_e no moved ] -> [ up stick_nw moved | stick_se moved ]\n+ right [ stick_w no moved | down stick_e no moved ] -> [ stick_nw moved | down stick_se moved ]\n+ right [ stick_w no moved | up stick_e no moved ] -> [ stick_sw moved | up stick_ne moved ]\n\n\n+ right [ right stick_nw no moved | ] -> [ right stick_n moved | right con_ne ]\n+ right [ up stick_nw no moved | ] -> [ right stick_n moved | right con_ne ]\n+ down [ right con_ne | stick_se ] -> [ | stick_s ]\n\n+ down [ down stick_nw no moved | ] -> [ down stick_w moved | down con_se ]\n+ down [ left stick_nw no moved | ] -> [ down stick_w moved | down con_se ]\n+ right [ down con_se | stick_se ] -> [ | stick_e ]\n\n+ left [ left stick_se no moved | ] -> [ left stick_s moved | left con_se ]\n+ left [ down stick_se no moved | ] -> [ left stick_s moved | left con_se ]\n+ up [ left con_se | stick_nw ] -> [ | stick_n ]\n\n+ up [ up stick_se no moved | ] -> [ up stick_e moved | up con_ne ]\n+ up [ right stick_se no moved | ] -> [ up stick_e moved | up con_ne ]\n+ left [ up con_ne | stick_nw ] -> [ | stick_w ]\n\n\n+ left [ left stick_ne no moved | ] -> [ left stick_n moved | left con_nw ]\n+ left [ up stick_ne no moved | ] -> [ left stick_n moved | left con_nw ]\n+ down [ left con_nw | stick_sw ] -> [ | stick_s ]\n\n+ down [ down stick_ne no moved | ] -> [ down stick_e moved | down con_se ]\n+ down [ right stick_ne no moved | ] -> [ down stick_e moved | down con_se ]\n+ left [ down con_se | stick_sw ] -> [ | stick_w ]\n\n+ right [ right stick_sw no moved | ] -> [ right stick_s moved | right con_sw ]\n+ right [ down stick_sw no moved | ] -> [ right stick_s moved | right con_sw ]\n+ up [ right con_sw | stick_ne ] -> [ | stick_n ]\n\n+ up [ up stick_sw no moved | ] -> [ up stick_w moved | up con_nw ]\n+ up [ left stick_sw no moved | ] -> [ up stick_w moved | up con_nw ]\n+ right [ up con_nw | stick_ne ] -> [ | stick_e ]\n\n\n+ [ stationary tl ] [ > crate | stationary stick_or_crate ] -> [ action tl ] [ > crate | > stick_or_crate ]\n+ [ action tl ] -> [ stationary tl ]\n\n+ [ stationary tl ] [ > stick | stationary stick_or_crate ] -> [ action tl ] [ > stick | > stick_or_crate ]\n+ [ action tl ] -> [ stationary tl ]\n\n[ > player_or_crate_or_stick | wall ] -> cancel\n\nlate [moved]->[]\n\n\n==============\nWINCONDITIONS\n==============\nall Target_h on stick_h \nall Target_v on stick_V\n\n=======\nLEVELS\n=======\n\n\nmessage 1 / 18\n(ok level 1?)\n@###..\n#..#..\n#..###\n#.399#\n#.7.p#\n#..###\n####..\n\n\nmessage 2 / 18\n(kinda easy but not bad?)\n@####.\n#0..##\n#03..#\n##7..#\n.##p.#\n..##.#\n...###\n\n\nmessage 3 / 18\n(easy but fun manipulation? could be level 1 but maybe too constrained?)\n@#####.\n#.3..##\n#.7..0#\n#993p0#\n#..7..#\n#######\n\n( (level 2?) )\n( @##### )\n( #99..# )\n( #.#..# )\n( #....# )\n( #.15.# )\n( #p...# )\n( ###### )\n\n\nmessage 4 / 18\n(ok late-early)\n@######\n#.3.p.#\n#.7..0#\n#1f9.0#\n#.....#\n#######\n\nmessage 5 / 18\n(could be ok easy level)\n.######\n.#99#.#\n@#.15.#\n#.3.#.#\n#pb9..#\n#######\n\nmessage 6 / 18\n(easy enough to think through?)\n@####.\n#..3##\n#.9b.#\n#df..#\n#p...#\n######\n\nmessage 7 / 18\n(simple-enough)\n@#####\n#..a.#\n#15s.#\n#..#0#\n#p..0#\n######\n\n\n\nmessage 8 / 18\n(late-easy kinda fine?)\n@######\n#.#.3.#\n#..0b9#\n#p.z5.#\n#...#.#\n#######\n\n( (not too hard but kinda fun?) )\n( @.#####.... )\n( ###99.##### )\n( #.99...33.# )\n( #.#...#77.# )\n( #.....#..p# )\n( ########### )\n\nmessage 9 / 18\n(reduced above. still solvable)\n.@####....\n##99.#####\n#99...33.#\n#....#77.#\n######..p#\n.....#####\n\nmessage 10 / 18\n@#####.#####\n#...3###.0.#\n#...7....0.#\n#####.p.df.#\n....########\n\nmessage 11 / 18\n(easy. feeling lukewarm about it)\n@######\n#.a...#\n#.s.#.#\n#015..#\n#0p#.##\n#######\n\n\nmessage 12 / 18\n(ok free early level?)\n@#######\n#.3....#\n#.7..99#\n#.3.p.0#\n#.7..#0#\n########\n\nmessage 13 / 18\n(not hard. kinda fun/silly)\n@########\n#p......#\n#.#.#a#.#\n#.15.s99#\n#.#.#.#.#\n#.......#\n#########\n\nmessage 14 / 18\n(ok-ish intermediate level)\n@######\n#.#03.#\n#.307.#\n#.7pc9#\n#99.7.#\n#######\n\n\nmessage 15 / 18\n(slightly tricky + fun trick to notice)\n@#####\n#..3.#\n#.#7.#\n#00.a#\n#0a.s#\n#.7p.#\n######\n\nmessage 16 / 18\n(intermediate?)\n@####.\n#.9c##\n#.9b0#\n#1530#\n#p.7.#\n######\n\nmessage 17 / 18\n(kinda chilll / ok!)\n@######\n#.....#\n#.zfc.#\n#.a.sp#\n#.bdx.#\n#.....#\n#######\n\nmessage 18 / 18\n(hardish but ok?)\n.@####\n##.3.#\n#.07.#\n#.0df#\n#p...#\n######\n\nmessage Congratulations! You've graduated from the college of magicians' assistants with flying colours! \n\n( (I like this level) )\n( @###### )\n( #.a.### )\n( #.sp### )\n( #.3.0.# )\n( #.7.0.# )\n( ####### )\n\n\n(( NOT BAD BUT )(Easyish. ok? not soo interesting) )\n( @###### )\n( #.99.## )\n( #..3.p# )\n( #.3b9.# )\n( #.7.### )\n( ####### )\n\n( (Easy but funish? ok level 2?) )\n( @###### )\n( #.3..p# )\n( #.799.# )\n( #.3...# )\n( #.799.# )\n( #.3...# )\n( #.799.# )\n( ####### )\n\n( (interesting goal, but too bloody hard. not solved but solution gawked at) )\n( @###### )\n( #0p3..# )\n( #0.730# )\n( ##1fb0# )\n( ###...# )\n( ####### )\n\n( (trivial) )\n( @###### )\n( ##.p3.# )\n( #df.7.# )\n( #9930.# )\n( #..70## )\n( ####### )\n\n( (meh tolerable but meh) )\n( @###### )\n( #p0..0# )\n( #.0330# )\n( #.377.# )\n( #9b.#.# )\n( ####### )\n\n( (trivial) )\n( @###### )\n( #.99.p# )\n( #.3.c9# )\n( #.7.7.# )\n( #.df.## )\n( ####### )\n\n( (meh) )\n( @######## )\n( ######### )\n( ###p99.## )\n( ###15..## )\n( ###..#### )\n( ####.#### )\n( ####.#### )\n( ####..### )\n( ##....### )\n( ##....### )\n( ######### )\n( ######### )\n\n( (same old) )\n( @###### )\n( #...30# )\n( #.0.70# )\n( #.z5..# )\n( #..#.p# )\n( ####### )\n\n( (same old) )\n( @######## )\n( #..3....# )\n( ##37....# )\n( #.7.p99## )\n( #...99.## )\n( ######### )\n\n( (same old) )\n( (not hard. ok?) )\n( @######## )\n( #.3.....# )\n( #.799.#p# )\n( #.3..99.# )\n( #.7.....# )\n( ######### )\n\n\n( (meh) )\n( (not hard) )\n( @###### )\n( #p.a..# )\n( #..s15# )\n( #.df..# )\n( #.99..# )\n( ####### )\n\n( (meh) )\n( (intermediate ok?) )\n( @##### )\n( #0...# )\n( #0#30# )\n( #..70# )\n( #151x# )\n( #p..0# )\n( ###### )\n\n\n( (meh trial and error solution) )\n( @##### )\n( #..3.# )\n( #0#7p# )\n( #0.3.# )\n( #0a7.# )\n( #0s..# )\n( ###### )\n\n( (trivial) )\n( @######## )\n( #...p...# )\n( #.3399..# )\n( #.773.00# )\n( #...7.00# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #.3.3...# )\n( #.79b.p.# )\n( #..99...# )\n( #..1599.# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #.3.....# )\n( #.b9.99.# )\n( #...3p15# )\n( #.997...# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #..p..3.# )\n( #....cb.# )\n( #....7c9# )\n( #.99..7.# )\n( ######### )\n\n\n\n\n( (fine? too easy maybe I have enough levels like this) )\n( @##### )\n( #....# )\n( #.#99# )\n( #1515# )\n( #p...# )\n( #.99.# )\n( ###### )\n\n( (kinda kludgy? YIP) )\n( @##### )\n( #...p# )\n( #.#0.# )\n( #150.# )\n( #.015# )\n( #.0..# )\n( ###### )\n\n( (eeh rests around a single mechanism. maybe if it were duplciated multiple times with a level, but not just once) )\n( @.#### )\n( ###..# )\n( #.15p# )\n( #1f90# )\n( #...0# )\n( ###### )\n\n\n\n( (meh driving game) INCOMPLETE BUT ALSO DON'T CARE)\n( @.####... )\n( ###..#### )\n( #.....3.# )\n( #.#..#7.# )\n( #....#.p# )\n( ######### )\n\n\n\n\n\n( @##### )\n( #....# )\n( #.#..# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( (trivial) )\n( @.###### )\n( ..#p99.# )\n( ..#.15.# )\n( ..##.### )\n( ...#.#.. )\n( ..##.#.. )\n( ###..#.. )\n( #....##. )\n( #.#...#. )\n( #...#.#. )\n( ###...#. )\n( ..#####. )\n\n\n\n((test level))\n( @.#####.... )\n( ###...##### )\n( #......33.# )\n( #.#...#77.# )\n( #.....#..p# )\n( ########### )\n\n\n( (meh, don't like that you can randomly need to backtrack if you do things in the wrong order. don't find it fun) )\n( @.#####.... )\n( ###...##### )\n( #......33.# )\n( #.#00.#77.# )\n( #..00.#..p# )\n( ########### )\n\n( (trivial but bad) )\n( @.####... )\n( ###..#### )\n( #..cc99.# )\n( #.#77#..# )\n( #p...#..# )\n( ######### )\n\n\n( @.#####... )\n( ###...#### )\n( #........# )\n( #.#...#..# )\n( #.....#..# )\n( ########## )\n\n\n( @.####... )\n( ###..#### )\n( #.......# )\n( #.#..#..# )\n( #....#..# )\n( ######### )\n\n( @####### )\n( #......# )\n( #......# )\n( #......# )\n( #####..# )\n( ....#### )\n\n\n\n( @####### )\n( .#.....# )\n( .#.....# )\n( ##.....# )\n( #......# )\n( #......# )\n( ######## )\n\n( (meh ok but not so tricky? too much walking about) )\n( @#####..##### )\n( #....####...# )\n( #.33......#.# )\n( #.77#9999...# )\n( #p..######### )\n( #####........ )\n\n( @#####.##### )\n( #....###...# )\n( #........#.# )\n( #...#......# )\n( #...######## )\n( #####....... )\n\n( (meh) )\n( @#### )\n( #990# )\n( #0.0# )\n( #099# )\n( #15.# )\n( #15.# )\n( #33.# )\n( #77.# )\n( #.p.# )\n( ##### )\n\n( @####### )\n( #990099# )\n( #..00..# )\n( #.3153.# )\n( #.7157.# )\n( #...p..# )\n( #......# )\n( ######## )\n\n( @##### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( @###### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( @########### )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( ############ )\n\n( @########### )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #.....15...# )\n( #......p...# )\n( #..........# )\n( #..........# )\n( #.........9# )\n( ############ )\n\n( (dunno!) )\n( @###### )\n( ##..### )\n( ##..### )\n( ##..### )\n( ##..### )\n( ##15### )\n( ##15### )\n( ##15### )\n( #.p...# )\n( #.....# )\n( #.99..# )\n( #.99..# )\n( #.99..# )\n( ####### )\n\n( @####....... )\n( #99..##....# )\n( #..99..##..# )\n( #........### )\n( ###........# )\n( ..##@...15.# )\n( ...#.@#..15# )\n( ...#..#@@.p# )\n( ...#.......# )\n( ...######### )\n\n( @##### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( (nice idea but hard also has a crate) )\n( @##### )\n( #99..# )\n( #o.df# )\n( #.p3.# )\n( #..7.# )\n( ###### )\n\n( @.###### )\n( ..#....# )\n( ..#....# )\n( ..##.### )\n( ...#.#.. )\n( ...#.#.. )\n( ####.#.. )\n( #....##. )\n( #.#...#. )\n( #...#.#. )\n( ###...#. )\n( ..#####. )\n\n\n\n( @####. )\n( #...## )\n( #....# )\n( ##...# )\n( .##..# )\n( ..##.# )\n( ...### )\n\n\n( @.....##### )\n( ......#...# )\n( ......#.#.# )\n( #######.#.# )\n( #.........# )\n( #.#.#.#.### )\n( #.......#.. )\n( #########.. )\n\n( @######## )\n( #.......# )\n( #.#.#.#.# )\n( #.......# )\n( #.#.#.#.# )\n( #.......# )\n( ######### )\n\n\n\n( @###.. )\n( #..#.. )\n( #..### )\n( #....# )\n( #....# )\n( #..### )\n( ####.. )\n\n\n( @######## )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #......p# )\n( #.9c....# )\n( #997.3a.# )\n( #....7s.# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #..p..3.# )\n( #....cb.# )\n( #....7c9# )\n( #.99..7.# )\n( ######### )\n\n( (fine/tricky but too like other levels) )\n( @##### )\n( ##30.# )\n( #.70.# )\n( #df..# )\n( #.p..# )\n( ###### )\n\n( @###### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( @############ )\n( #...........# )\n( #...........# )\n( #...........# )\n( #...........# )\n( ############# )\n\n( @######## )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( ######### )\n\n( @########### )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( ############ )\n\n( @.#####.... )\n( ###...##### )\n( #.........# )\n( #.#...#...# )\n( #.....#...# )\n( ########### )\n\n( @................ )\n( ................. )\n( ........9........ )\n( .....999......... )\n( ................. )\n( ......p.......... )\n( .3333.....2..4... )\n( .7777...15.68.... )\n( ................. )\n( ................. )\n( ................. )\n( ................. )\n\n(TRANSFORMATION\n==========\nTRANSFORM\n==========\n\n\nchoose 5 [ ] -> [ wall ]\nchoose 1 [ no wall ] -> [ player ]\n\nchoose 2 option 0.5 right [ no obstacle | no obstacle ] -> [ stick_w | stick_e ]\n+ option 0.5 up [ no obstacle | no obstacle ] -> [ stick_s | stick_n ]\n\n\nchoose 2 option 0.5 right [ no wall no player no target | no wall no player no target ] -> [ target_h | target_h ]\n+ option 0.5 up [ no wall no player no target | no wall no player no target ] -> [ target_v | target_v ]\n\n\n\n)\n\n", [2, 3, 3, 0, 0, 0, 2, 2, 2, 1, 1, 1, 1, 0, 0, 3, 3, 0, 3, 3, 2, 2, "undo", 2], "background tl wall:0,background wall:1,1,1,1,1,1,\nbackground:2,2,2,background target_h:3,1,1,1,\n2,background stick_w:4,3,1,1,background target_v:5,5,\nbackground stick_e:6,2,1,1,2,background stick_n:7,background stick_s target_h:8,\n4,1,1,2,2,background player target_h:9,6,\n1,1,1,1,1,1,1,\n", 27, "1645544636691.3945"] + ], + [ + "Acorn Scorchery Paradise", + ["title Acorn Scorchery Paradise\nauthor increpare\nhomepage www.increpare.com\n\n\nbackground_color #3f3f74\n\n========\nOBJECTS\n========\n\nBackground\n#3f3f74 #59598f\n00000\n00000\n00100\n00000\n00000\n\n\n\nTarget\norange transparent transparent\n00000\n01110\n01210\n01110\n00000\n\nWall\n#323c39\n00000\n00000\n00000\n00000\n00000\n\n\nPlayer\n#847e87 #a33c88\n00000\n01110\n00000\n..0..\n.0.0.\n\n\nCrate\n#3f3f74 lightgreen green\n.111.\n21112\n21112\n22222\n.222.\n\n\nCrate_HOT\n#3f3f74 #ff0018 #ac3232\n.111.\n21112\n21112\n22222\n.222.\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\ncrate_or_player = Crate or Player or Crate_HOT\nany_Crate = Crate or Crate_HOT\npush_obstacle = wall or crate or Crate_HOT\nobstacle = wall or crate or Crate_HOT or Player\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 34709107\nendlevel 27179907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, Crate_HOT\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate_hot ]\n\n[ > crate_or_player | stationary push_obstacle ] -> cancel\n\n[ stationary crate_hot ] [ ^ crate_hot ] -> [ crate ] [ ^ Crate_HOT ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on any_Crate\n\n=======\nLEVELS\n=======\n\nmessage 1/5\n(nice!)\n######\n#.#..#\n#.*@.#\n#.p..#\n##.o.#\n.#####\n\nmessage 2/5\n(fine)\n#####\n#o..#\n#o..#\n#**@#\n#.p.#\n#####\n\nmessage 3/5\n(lol)\n######\n#p...#\n#.*..#\n#o.@.#\n##.@.#\n.#####\n\nmessage 4/5\n(fine)\n#####\n#opo#\n#.*.#\n#.*.#\n#o*.#\n#####\n\n\n(youAtExample suggested 'vive of five' when I was looking for stupid homophones)\nmessage 5/5 \n(fiiineish)\n######\n#.o.o#\n#....#\n#.**.#\n#.p#.#\n######\n\n\n\nmessage Congratulations! You are the best Acorn Scorcherer in Acorn Scorchery Paradise!\n\n( (meh not sure) )\n( ..#### )\n( ###.o# )\n( #o*..# )\n( #.*..# )\n( #p.@.# )\n( ###### )\n\n( ##### )\n( #...# )\n( #...# )\n( #...# )\n( #...# )\n( ##### )\n\n\n( ###### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( ####### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( ###### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( ######### )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( ######### )\n\n( ######## )\n( #......# )\n( #......# )\n( #......# )\n( #......# )\n( #......# )\n( #......# )\n( ######## )\n\n\n\n(Transformation\n\nchoose 5 [ ] -> [ wall ]\nchoose 1 [ no wall ] -> [ player ]\nchoose 3 [ no obstacle ] -> [ crate ]\nchoose 3 [ no player no wall no target ] -> [ target ]\n\n)\n", [3, 0, 0, 2, 1, 0, 2, 1, 0, 2, 3, 0, 0, 2, 0, 2, 1, 0, 0, 3, 3, 2, 3, 0, 0, "restart", 0, 0, 0, 0, 2, 1, 0, 0, 3, 0, 3, 0, 2, 1, 2, 2, 1, 0, "restart", 1, 0, 2, 3, 0, 1, 2, 3, 3, 0, 2, 1, 1, 0, 0, 2, 3, "undo", "undo", "undo", 3, 0, 0, "restart", 1, 0, 0, 2, 3, 3, 0, 2, 1, 1, 0, 0, 2, 2, 3, 3, 0, 1, 0, 0, 3, 2, 1, 2, 2], "background wall:0,0,0,0,0,\n0,0,background crate target:1,background target:2,background crate:3,\nbackground:4,0,0,4,4,\n4,background player:5,0,0,4,\n4,background crate_hot target:6,4,0,0,\n0,0,0,0,0,\n", 3, "1645544663060.2773"] + ], + [ + "Match-Maker", + ["title Match-Maker\nauthor increpare\nhomepage www.increpare.com\n( debug )\n( verbose_logging )\nrun_rules_on_level_start\n\ncolor_palette c64\nbackground_color green\n\n========\nOBJECTS\n========\n\nBackground\ngreen\n\nWall\ndarkgreen\n\nPlayer\ndarkblue lightgray \n.000.\n01010\n00000\n01110\n.000.\n\nCrate\npurple\n.....\n.000.\n.000.\n.000.\n.....\n\nhands_up\npink\n.0.0.\n.....\n.....\n.....\n.....\n\nhands_down\npink\n.....\n.....\n.....\n.....\n.0.0.\n\nhands_left\npink\n.....\n0....\n.....\n0....\n.....\n\nhands_right\npink\n.....\n....0\n.....\n....0\n.....\n\ncon_up\ntransparent\n\ncon_down\ntransparent\n\ncon_left\ntransparent\n\ncon_right\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\no = Background\n@ = crate\nhands = hands_up or hands_down or hands_left or hands_right\n\nobstacle = player or crate or wall\n\nplayer_or_crate = player or crate\n\ncon = con_up or con_down or con_left or con_right\n\nw = crate and hands_up\ns = crate and hands_down \na = crate and hands_left\nd = crate and hands_right\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 35405507\nsfx0 3325507 (love)\nsfx1 48219704 (breakup)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nhands_up\nhands_down\nhands_left\nhands_right\ncon_up\ncon_down\ncon_left\ncon_right\n\n\n======\nRULES\n======\n\n\n\n[ > player_or_crate | crate ] -> [ > player_or_crate | > Crate ]\n[ > crate hands ] -> [ > crate > hands ]\n\n\n[ > crate | wall ] -> cancel\n\n[ > crate | no obstacle ] -> [ | crate ]\n[ > hands | no hands ] -> [ | hands ]\n\nup [ hands_up | no hands_down ] -> [|] sfx1\ndown [ hands_down | no hands_up ] -> [|] sfx1\nleft [ hands_left | no hands_right ] -> [|] sfx1\nright [ hands_right | no hands_left ] -> [|] sfx1\n\nright [ crate | crate ] -> [ crate con_right | crate con_left ]\ndown [ crate | crate ] -> [ crate con_down | crate con_up ]\n\n[no hands con_up no con_down no con_left no con_right ] -> [ action hands_up ]\n[no hands no con_up con_down no con_left no con_right ] -> [ action hands_down ]\n[no hands no con_up no con_down con_left no con_right ] -> [ action hands_left ]\n[no hands no con_up no con_down no con_left con_right ] -> [ action hands_right ]\n\n[con]->[]\n\nup [ hands_up | no hands_down ] -> [|]\ndown [ hands_down | no hands_up ] -> [|]\nleft [ hands_left | no hands_right ] -> [|]\nright [ hands_right | no hands_left ] -> [|] \n\n\n[ action hands ] -> sfx0\n\n==============\nWINCONDITIONS\n==============\n\nall crate on hands\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 9\n\n(easyish. ok?)\n######\n#*...#\n##..*#\n#..*.#\n#.*.p#\n######\n\n( (ok first level ish) )\n( ......#####. )\n( ......#...#. )\n( ###...#...#. )\n( #*#####...#. )\n( #.#dada**### )\n( #..**......# )\n( #.#dadada### )\n( #*########.. )\n( #.#......... )\n( #p#......... )\n( ###......... )\n\n\nmessage Level 2 of 9\n\n(ok?)\n.#####\n##..*#\n#..*p#\n#da.##\n#.#.#.\n#...#.\n#####.\n\nmessage Level 3 of 9\n(ok! early intermediate?)\n#######.\n#.p...#.\n#..***##\n###*...#\n..######\n\nmessage Level 4 of 9\n(late-early? pretty entertaining gestalt-wise)\n######\n#.s#.#\n#.w.*#\n#....#\n#..#*#\n#..**#\n#.p..#\n######\n\nmessage Level 5 of 9\n\n(ok? entertaining? slightly? ok level? ok let's say it's ok)\n########\n#..da..#\n#..***.#\n#p..*..#\n#####..#\n....####\n\n\nmessage Level 6 of 9\n(early-intermediate ok?)\n######\n#p...#\n#..da#\n#..*.#\n#*.*##\n#..*##\n#....#\n######\n\n\n\nmessage Level 7 of 9\n(early-intermediate? easy/likeable)\n#######\n#....##\n#.da..#\n#.##*.#\n#..#da#\n#p.*..#\n#######\n\nmessage Level 8 of 9\n(AH. OK? If I@m totally stuck it could be a last level? but not...a *good* one)\n(genuinely tricky. not solved yet)\n#######\n#.#...#\n#*s..s#\n#.w#*w#\n#..p..#\n#..####\n#######\n\n\nmessage Level 9 of 9\n(didnae solve)\n######\n#....#\n#.sda#\n#.w..#\n#*p**#\n#...*#\n######\n\nmessage Congratulations. That was really good!\n\n=======================\n(\n\n(consider pruning)\n(weirdly non-obvious :] )\n######\n#.#.##\n#*#.##\n#.p*.#\n#.*..#\n#.*.##\n######\n\n(consider pruning)\n(Easy but ok?)\n##########\n##..p..*.#\n#.**...###\n##.*.#..##\n#.#...####\n##########\n\n\n\n(consider pruning)\n(weirdly engaging)\n######\n#.#.##\n#.#.p#\n#*.s.#\n#..w.#\n#*..##\n######\n\n\n(I like it - late-easy!)\n##########\n#.#.######\n#..*p*...#\n#..#*#*###\n#........#\n##########\n\n(intermediate ok hmm)\n#######\n#.*...#\n#...#.#\n##*..##\n##*.#.#\n#.....#\n#p#.*.#\n#######\n\n(alternative version of above:)\n########\n#.*..###\n#...####\n##s.####\n##w.####\n#......#\n#p#..*.#\n########\n\n\n(early hard? I think it's ok? just separate the parts)\n(dunno how to solve)\n#######\n#.....#\n#da***#\n#*.*..#\n#.*p#.#\n#.#...#\n#.....#\n#######\n\n======================\n\n\n#######\n#.....#\n#.....#\n#.....#\n#ppp..#\n#ppp..#\n#ppp..#\n#######\n\n\n(too easily accidentally solvable? maybe/maybe not! ok level 2?)\n#######\n#.*...#\n#.#.###\n#p.s.##\n#.#w###\n#.*...#\n#######\n\n(simple? just tidying up)\n#########\n#..*.##.#\n##.*##..#\n#.....*##\n#****...#\n#.*##.p.#\n#..#.##.#\n#########\n\n\n(simple? ok intro?)\n######\n##.#.#\n#.#*##\n#**..#\n#..*.#\n##p..#\n######\n\n\n\n(ok!)\n######\n#...*#\n#da*.#\n#.p..#\n#.***#\n#.*..#\n######\n\n(intermediate eh)\n######\n#....#\n#.*.s#\n#.*.w#\n#***.#\n#*..p#\n######\n\n(early intermediate / meh)\n######\n#.da.#\n#.*..#\n#.*..#\n#****#\n#.p..#\n######\n\n(it's fine but is it fun? ok maybe a bit but not a lot)\n######\n#....#\n#.*..#\n#.***#\n#p.*.#\n#.**.#\n#*...#\n######\n\n(meh too mcuh work; couldn't remember the solution)\n(visually cute. bottom two blocks unnecessary?)\n######\n#....#\n#.**.#\n#.**.#\n#p*.*#\n#.da.#\n######\n\n(dunno. not awful. maybe I'm just tired.)\n######\n#....#\n#.*..#\n#da*.#\n#p**.#\n#.da.#\n######\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n######\n#....#\n#.#..#\n#....#\n#....#\n#....#\n######\n\n\n(meh?)\n######\n#.*..#\n#p#..#\n#.da.#\n#....#\n#.*..#\n######\n\n(yeah fine? no it's not)\n######\n#.*..#\n#.#*##\n#.*.##\n#p..##\n##.*.#\n######\n\n\n\n\n(not bad. easy but not bad)\n##########\n#....#.###\n#.....*.##\n####.*.*.#\n#.#.##*.p#\n##########\n\n(trivial)\n##########\n#....*..*#\n#...##*..#\n#.*....#.#\n#...p....#\n##########\n\n\n\n\n(easy but not terrible but not great)\n######\n#*..##\n##.*##\n#..*.#\n#....#\n#.#*p#\n##...#\n######\n\n(easy. not good not bad)\n######\n#..*.#\n####.#\n##..p#\n#.**.#\n#..#.#\n#..*.#\n######\n\n(early intermediate ok?)\n#########\n#..#..###\n###.*.*.#\n#..#..*##\n####.#*.#\n#.*.p..##\n#.*.....#\n#...#..##\n#########\n\n\n\n\n(boring)\n#######\n#.#...#\n#da...#\n#...*##\n#dap..#\n#..*#.#\n#######\n\n\n(trivialish/boring//routine)\n#######\n#*#*..#\n#....##\n#..da.#\n##..**#\n#.p.**#\n#.....#\n#######\n\n(trivialish/boring//routine)\n#######\n#da.#.#\n#..**.#\n#..**.#\n#.....#\n#*..p.#\n##*..##\n#######\n\n(kinda pleasing; nah)\n..####...\n###..####\n#..s.*..#\n#.#w.#.*#\n#....#p.#\n#########\n\n(ok intermediate. yeah but nah)\n########\n#.p....#\n#.s...*#\n#.w***.#\n#####..#\n....####\n\n(so lala intermediate)\n######.#####\n#.*..###...#\n#.da***..#.#\n#...#......#\n#.p.########\n#####.......\n\n(trivial)\n#######\n#.#...#\n#.s...#\n#.w*.##\n#..p..#\n#.###.#\n#..*..#\n#######\n\n\n(trivial)\n#######\n#.*.#.#\n#.#.#.#\n#...*.#\n##.s..#\n#.pw..#\n##.#.##\n#######\n\n\n\n(trivial)\n#######\n#...*.#\n##..#.#\n#..**.#\n#..#..#\n#.....#\n#.*p..#\n#######\n\n(trivial)\n######\n#....#\n#.s###\n#*w#.#\n#.p*.#\n#.*..#\n#.*..#\n######\n\n(trivial)\n######\n#....#\n#....#\n#*da##\n#*...#\n#p..*#\n##*..#\n######\n\n(ok but not good enoguh? or maybe yeah for an early level but I'm not sure)\n######\n#....#\n#..**#\n#.***#\n#*#.##\n#p...#\n#....#\n######\n\n(ok intermediate but also nah)\n######\n#....#\n#*#.*#\n###..#\n#..s.#\n#**w.#\n#.p..#\n######\n\n(trivial)\n######\n##.#.#\n##*da#\n#....#\n#.s..#\n#*w..#\n#.p..#\n######\n\n(trivial)\n######\n#.**.#\n#.**.#\n#..*.#\n#.p..#\n#..*##\n#....#\n######\n\n(meh)\n######\n#...s#\n#...w#\n#..*.#\n##s..#\n##w#*#\n#.p..#\n######\n\n(boring)\n######\n#...##\n#..**#\n#..*.#\n#.**.#\n#*..##\n#.p..#\n######\n\n(boring)\n######\n#.*..#\n##*..#\n#.**.#\n##.**#\n#.p..#\n##.###\n######\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n(boring)\n######\n#.da.#\n#.*..#\n#..**#\n#..*.#\n#..da#\n#.p..#\n######\n\n(boring)\n######\n#....#\n#...*#\n#s...#\n#w.da#\n#p***#\n#....#\n######\n\n(boring)\n######\n#....#\n#...*#\n#.sda#\n#pw..#\n#..s.#\n#.*w.#\n######\n\n(boring)\n######\n#....#\n#..**#\n#..**#\n#.p*.#\n#....#\n#da.*#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n##########\n\n(boring)\n##########\n#.#.*.#..#\n#.*.***.##\n#.#.....##\n#.##p.*..#\n##########\n\n(boring)\n##########\n####*..*.#\n#....#...#\n#.p***..##\n##...*.#.#\n##########\n\n(boring)\n##########\n#..#.#.#.#\n#*...da*.#\n#..da....#\n#p.###...#\n##########\n\n(boring)\n##########\n#....*s.##\n##da..w..#\n#..p#...##\n#*..##.#.#\n##########\n\n############\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n(boring)\n############\n#..#...**..#\n#.**.#*....#\n#....*.##.##\n##..#p.#...#\n############\n\n(boring)\n############\n#..#...#...#\n#.*..#..*s.#\n#p...#s##w.#\n#.#...w....#\n############\n\n(boring)\n############\n##.....da..#\n#...#s...*.#\n#.#p.w..#..#\n#.#.#...*.##\n############\n\n(not boring kinda funny but also nope)\n############\n#.....##...#\n##........##\n#*..*.#.*.*#\n#*.#p#..*.##\n############\n\n(boring)\n############\n#*.#.#...#.#\n#...da*....#\n#.##p.da...#\n#.##...#...#\n############\n\n(boring)\n############\n#*...*#.#..#\n#.#..*....##\n##...**.#..#\n#.#.p.*...##\n############\n\n(boring)\n############\n#....s.....#\n#..##w...s.#\n#.*p..#*#w.#\n#.#.#....###\n############\n\n(boring)\n############\n#..##.#....#\n#####*#.*..#\n#p#.s...*..#\n#...w.#.*#.#\n############\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n(boring)\n#######\n#.#..##\n#..**.#\n#...*##\n##...##\n##pda.#\n#..*..#\n#######\n\n\n(boring)\n#######\n#.....#\n#da...#\n#.*...#\n##*p..#\n#.*..*#\n##....#\n#######\n\n\n(boring)\n#######\n##...*#\n##....#\n#.....#\n#...*##\n#.***.#\n#p*..##\n#######\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n(meh)\n#######\n#.#..##\n#..**.#\n#...*##\n##...##\n##pda.#\n#..*..#\n#######\n\n(meh)\n#######\n#.*.s.#\n###.w##\n#.....#\n###.s.#\n#..pw*#\n#...#.#\n#######\n\n(ok but not great? meh?)\n#######\n#.....#\n#.....#\n#..da.#\n#.##*.#\n#..**.#\n#p.*#.#\n#######\n\n(trivial)\n#######\n##...*#\n#.*.#.#\n##....#\n#.p.#.#\n#.***.#\n#...*.#\n#######\n\n(easy not great?)\n#######\n#...###\n#.da*.#\n#.##..#\n#.....#\n#pda..#\n#...*.#\n#######\n\n(meh. intentionally solvable. but good? idk)\n#######\n#.s.s.#\n#.w*w.#\n#..*..#\n#....##\n#*p...#\n##*...#\n#######\n\n(trivial)\n#######\n#*....#\n#**...#\n#..s*##\n#..w..#\n#..s..#\n#p.w..#\n#######\n\n(trivial)\n#######\n#.....#\n#.....#\n#*....#\n#pda*.#\n#.#da.#\n#..**.#\n#######\n\n(trivial)\n#######\n#.....#\n#.....#\n#...**#\n#.#**.#\n#*pda.#\n#..#*.#\n#######\n\n(trivial kinda nice but trivial)\n#######\n##.#..#\n#.....#\n#..s..#\n#daw*.#\n#.#.s.#\n#.p.w*#\n#######\n\n(trivial)\n#######\n#.#...#\n#..**.#\n#..**##\n#**p.*#\n#*.#..#\n#.....#\n#######\n\n(trivial)\n#######\n#..*.##\n#s....#\n#w...*#\n#p..da#\n#...*.#\n#...*.#\n#######\n\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n######\n#....#\n#....#\n#....#\n######\n\n#####\n#...#\n#...#\n#...#\n#####\n\n########\n#......#\n#......#\n#......#\n#......#\n#......#\n#......#\n########\n\n(meh. actually ok to solve but not great?)\n########\n#.#*..*#\n#..***##\n#..s...#\n#.#w...#\n#..p#.##\n#...*.##\n########\n\n(meh)\n########\n#.*..*.#\n#.#.s*.#\n##..ws##\n#...*w.#\n#.p.#..#\n#......#\n########\n\n(trivial)\n########\n##.....#\n#.da...#\n##...###\n##.da.*#\n#sp....#\n#w.#..*#\n########\n\n(trivial)\n########\n#da....#\n#..*#..#\n#...#s.#\n#*#s.w.#\n#.pw.#.#\n#...#..#\n########\n\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n(trivial)\n#########\n#.......#\n#..s....#\n#.*w...##\n#.....###\n#dap.#.##\n#..#..*##\n##.....##\n#########\n\n(trivial)\n#########\n#..#..###\n###.*.*.#\n#..#..*##\n####p#*.#\n#.s....##\n#.w.....#\n#...#..##\n#########\n\n(boring)\n#########\n#..*....#\n#.#*....#\n#..da...#\n###....*#\n#.#p##..#\n#...*..##\n#....##.#\n#########\n\n(simplified a part of this and sent it to the top)\n#########\n#...#..##\n#.da##..#\n##..*...#\n#..*p...#\n#da.#...#\n#.#.#..##\n#....####\n#########\n\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n\n\n#######\n#.....#\n#.#.#.#\n#.....#\n##.#.##\n##...##\n#######\n\n#######\n#.....#\n#.#.#.#\n#.....#\n#.#.#.#\n#.....#\n#######\n\n########\n#.....##\n#.#.#.##\n#......#\n##.#.#.#\n##.....#\n########\n\n#########\n#.......#\n#.#.#.#.#\n#.......#\n#.#.#.#.#\n#.......#\n#########\n\n##########\n#.......##\n#.#.#.#.##\n#........#\n##.#.#.#.#\n##.......#\n##########\n\n#########\n#.......#\n#.#.#.#.#\n#.......#\n#.#.#.#.#\n#.......#\n#.#.#.#.#\n#.......#\n#########\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n########\n#......#\n#......#\n#......#\n#####..#\n....####\n\n\n\n(trivial)\n########\n#...da.#\n#.****.#\n#......#\n#####.p#\n....####\n\n(trivial)\n########\n#*.....#\n#****..#\n#p.*...#\n#####..#\n....####\n\n(trivial)\n########\n#......#\n#.*.*..#\n#.*da*.#\n#####.p#\n....####\n\n(trivial)\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#OOO...#\n#...########\n#####.......\n\n\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n..######\n..#.OOP#\n..#.**.#\n..##.###\n...#.#..\n...#.#..\n####.#..\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\n(hmm. ok? meh)\n..######\n..#...p#\n..#.*..#\n####*###\n#..*.##.\n#.#...#.\n#.*.#.#.\n###...#.\n..#####.\n\n(hmm. not good?)\n...###..\n...#.#..\n####*#..\n#.*..##.\n#.#*..#.\n#..*#.#.\n###..p#.\n..#####.\n\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\n\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\n\n(I kinda like it, but now that I'm such an EXPERT it just doesn't do it for me)\n(want to solve but haven't yet. has the look of an ok final level?)\n######\n##.###\n#...##\n#.**.#\n#**..#\n#p..*#\n#.*.##\n######\n\n\n(meh)\n(can't solve. could be ok though)\n######\n#..###\n#.**##\n#.**.#\n#p.*.#\n#*.#.#\n#....#\n######\n\n\n\n\n\n(trivial)\n(nope not solved but nope)\n#######\n#.#...#\n#.s..*#\n#.w*s.#\n#.#*w.#\n##..*.#\n#.#..p#\n#######\n\n(trivial)\n(nope not solved but nope)\n#######\n#..#*.#\n#.s**.#\n#.w.s.#\n#..*w.#\n#p...##\n#.##.##\n#######\n\n(meh I guess it might be ok but meh)\n(stuck)\n#######\n#..##.#\n#**...#\n#.*.#.#\n#.sp*.#\n##w.#.#\n#...#.#\n#######\n\n\n\n\n(didnae solve)\n######\n#....#\n#.sda#\n#.w..#\n#*p**#\n#...*#\n######\n)\n\n(\nTRANSFORMS\n\n\n[player]->[]\n[crate]->[]\n\n(choose 2 [ player ] -> [ no player ] )\n(choose 2 [ no player ] -> [ wall ])\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 1 option 0.5 right [ no obstacle | no obstacle ] -> [ crate hands_right | crate hands_left]\n+ option 0.5 down [ no obstacle | no obstacle ] -> [ crate hands_down | crate hands_up ]\n+ option 0.5 [ no obstacle | no obstacle] -> [crate| crate]\n\n)\n", [2, 2, 3, 3, 0, 1, 0, 3, 1, 2, 2, 2, 2, 2, 3, 0, 0, 0], "background wall:0,0,0,0,0,0,\n0,0,0,background:1,1,1,\nbackground crate:2,1,1,0,0,1,\n1,1,1,1,1,0,\n0,background crate hands_down:3,background crate hands_up:4,background player:5,1,1,\n1,0,0,2,3,4,\n0,0,1,0,0,0,\n0,0,0,0,0,0,\n", 11, "1645544739914.9763"] + ], + [ + "Pushy-V Pully-H", + ["title Pushy-V Pully-H\nauthor increpare\nhomepage www.increpare.com\nbackground_color darkgreen\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkgray\n\nPlayer\nblue\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nCrate\ngreen gray\n11111\n0...0\n0...0\n0...0\n11111\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nobstacle = player or crate or wall\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\nvertical [ > Player | Crate ] -> [ > Player | > Crate ]\nhorizontal [ < Player | Crate ] -> [ < Player | < Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 11\n\n.########\n##o.....#\n#...*...#\n#*o.o.*.#\n##.p..###\n.######..\n\nmessage level 2 of 11\n(level 1?)\n(soluble)\n#######\n#.....#\n#.O*#.#\n#.@@P.#\n#.....#\n#######\n\nmessage level 3 of 11\n....####.\n#####..##\n#.......#\n#.**.oo.#\n#.**.oo.#\n#...p...#\n#########\n\n\nmessage level 4 of 11\n#########\n#.....#p#\n#.o..*.@#\n#...@...#\n#...##..#\n#########\n\n\nmessage level 5 of 11\n(soluble)\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 6 of 11\n(soluble)\n.#####\n.#...#\n.#.O.#\n.#.@.#\n##.@.#\n#..*.#\n#..P.#\n######\n\nmessage level 7 of 11\n\n(soluble)\n####...\n#..####\n#.....#\n#.O*O.#\n#.*P*.#\n#.O*O.#\n#.....#\n#######\n\nmessage level 8 of 11\n#########\n#.......#\n#..*.*..#\n#.*ooo*.#\n#..opo..#\n#.*ooo*.#\n#..*.*..#\n#.......#\n#########\n\nmessage level 9 of 11\n#######\n#..#..#\n#*.#*.#\n#..#..#\n#..o..#\n##o.*.#\n.#op..#\n.######\n\nmessage level 10 of 11\n(soluble)\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\nmessage level 11 of 11\n########\n#......#\n#.#..#.#\n#..@@..#\n#.*o@..#\n#.#..#.#\n#..p...#\n########\n\nmessage Congratulations! You don't just push the push, you pull the pull!\n\n\n\n(\n\n\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n\n\n#############\n#...........#\n#...........#\n#...........#\n#..***.ooo..#\n#..*p*.o.o..#\n#..***.ooo..#\n#...........#\n#...........#\n#...........#\n#############\n)\n\n(\n#########\n#..o....#\n#...#p..#\n#*.*oo.*#\n#.......#\n#########\n)\n\n( ######### )\n( ##o.....# )\n( #...*...# )\n( #*o.o.*.# )\n( ##.p..#.# )\n( ######### )\n\n\n(\n(soluble)\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n)\n\n\n\n\n\n\n\n(\n\n(soluble)\n########\n#......#\n#.*O*O.#\n#PO*O*.#\n#.*O*O.#\n#......#\n########\n)\n\n(\n\n\n\n(insoluble)\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n(insoluble)\n#######\n#..@..#\n#..P.O#\n##*.###\n.#..#..\n.####..\n\n(insoluble)\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n\n(insoluble)\n#####.\n#...#.\n#O#.##\n#....#\n#O...#\n###.##\n#P**#.\n#...#.\n#####.\n\n\n(insoluble)\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\n(insoluble)\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#OOO...#\n#...########\n#####.......\n\n(insoluble)\n######\n#....#\n#.**.#\n#..*.#\n###..#\n.#O.##\n.#O.#.\n.#O.##\n.#...#\n.#.#.#\n.#.P.#\n.#####\n\n(insoluble)\n..######\n..#.OOP#\n..#.**.#\n..##.###\n...#.#..\n...#.#..\n####.#..\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\n\n\n(insoluble)\n.#####......\n.#...#......\n##.#.#..####\n#....####..#\n#.#......*O#\n#...#####*O#\n#####...#.P#\n........####\n\n\n(insoluble)\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\n\n\n\n\n(insoluble)\n...####\n..##PO#\n.##.*.#\n##..*.#\n#O...##\n######.\n\n(insoluble)\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\n\n(insoluble)\n#####...\n#...#...\n#.#P#...\n#...#...\n#.#*#...\n#...#...\n#.#*####\n#...OOO#\n###*##.#\n..#....#\n..######\n\n\n)\n\n(\n\nTRANSFORMATION\n\n[ player ] -> []\n[ crate ] -> []\n[ target ] -> []\n\nchoose 3 [ no wall ] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player no target ] -> [ target ]\n\n)\n", [0, 0, 2, 2, 1, 1, 0, 3, 2, 3, 3, 3, 3, 1, 0, 3, 0, 1, 1, 0, 0, 1, 1, 0, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 3, 3, 0, 3, 3, 2, 1, 1, 0, 1, 1, 0, 0, 0, 3, 1, 0, 0, 3, 3, 3, 2, 1, 2, 2, 2, 3, 2, 3, 0, 0, 0, 0, 1, 1, 2, 1, 1, 0, 0, 1, 3, 2, 3, 0, 1, 1, 1, 2, 2, 2, 2, 2, 0, 2, 3, 3, 3, 0, 1, 3, 3, 2, 1, 1, 0, 0, 0, 2, 0, 0], "background wall:0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,1,\n1,0,0,1,background target:2,background crate:3,background crate target:4,\n1,1,0,0,3,background player:5,2,\n1,2,1,0,0,1,2,\n3,4,3,1,0,0,1,\n1,1,1,1,1,0,0,\n0,0,0,0,0,0,0,\n", 19, "1645544759965.9036"] + ], + [ + "Crates move when you move", + ["title Crates move when you move\nauthor increpare\nhomepage www.increpare.com\n\n(\n\ntools used during creation:\n\nhttps://dekeyser.ch/puzzlescriptmis/\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\nnoaction\nbackground_color darkblue\n========\nOBJECTS\n========\n\nBackground\ndarkblue\n\n\nTarget\ndarkgreen\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkbrown\n\nPlayer\nOrange Orange Orange Orange\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nlightgreen\n00000\n0...0\n0...0\n0...0\n00000\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nobstacle = player or crate or wall\n\n=======\nSOUNDS\n=======\n\ncrate move 25044707\nsfx0 25044707\n\nendlevel 84712900\nstartlevel 16124700\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n======\nRULES\n======\n\n\n[ > Player ] [ Crate ] -> [ > Player ] [ > Crate ]\n\n\n\n[ > crate | no obstacle ] -> [ | > crate ] sfx0\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 10\n\n######\n#....#\n#...##\n#..*.#\n#..o.#\n#.p..#\n#....#\n######\n\n( ###### )\n( #*#..# )\n( #.p..# )\n( #..o.# )\n( #....# )\n( ###### )\n\nmessage Level 2 of 10\n######\n#.*.p#\n#.#.##\n#.o..#\n#.#..#\n######\n\nmessage Level 3 of 10\n..###..\n.##o##.\n##...##\n#*.p.o#\n##...##\n.##*##.\n..###..\n\n\n\nmessage Level 4 of 10\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\nmessage Level 5 of 10\n(kinda hard)\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage Level 6 of 10\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\nmessage Level 7 of 10\n######\n##*.##\n##@###\n##..##\n##..##\n##p.##\n##.###\n##o.##\n##..##\n######\n\n\nmessage Level 8 of 10\n#######\n#o...*#\n#o.p.*#\n#o...*#\n#######\n\nmessage Level 9 of 10\n#####.\n#P..##\n#O**.#\n##...#\n.##..#\n..##O#\n...###\n\nmessage Level 10 of 10\n(POSSIBLE to solve! Good final level?)\n######\n#....#\n#o.#p#\n#.#..#\n#.*.@#\n######\n\nmessage Congratulations! The crates learned from your your example and were all very succesful in their subsequent careers.\n\n(\n######\n#o#@.#\n#....#\n#.##*#\n#..p@#\n######\n\n(I solved this, but not intentionally)\n#######\n#.*...#\n#**...#\n#..p..#\n#...oo#\n#...o.#\n#######\n\n(fpfft no idea. haven't solved yet)\n######\n#..*.#\n#*#.##\n#..o.#\n##...#\n#..#.#\n#op#.#\n######\n\n(unsolved. too hard?)\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n####\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n####\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n)\n(\nTRANSFORMATION\n\n\nchoose 3 [ ] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player no target ] -> [ target ]\n\n)\n", [2, 1, 0, 1, 1, 2, "undo", 1, 2, 3, 3, 3, 0, 2], "background wall:0,0,0,0,0,background:1,0,1,\n1,1,0,1,0,1,background target:2,1,\n0,1,0,1,2,1,0,1,\n0,1,2,background crate:3,0,0,0,1,\n3,background player:4,1,0,0,1,1,1,\n3,0,0,0,0,0,0,0,\n", 11, "1645544790426.2693"] + ], + [ + "Resin-Caster", + ["title Resin-Caster\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color darkblue\n\n(\n\ntools used during creation:\n\nhttps://dekeyser.ch/puzzlescriptmis/\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\n========\nOBJECTS\n========\n\nBackground\ndarkblue\n\nWall\n#aa00ff\n.000.\n00000\n00000\n00000\n.000.\n\nPlayer\nOrange Orange Orange Orange\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate1\nred\n.000.\n00000\n00000\n00000\n.000.\n\n\nCrate2\nblue\n.000.\n00000\n00000\n00000\n.000.\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = crate1\n@ = crate2\n* = crate2\ncrate = crate1 or crate2\nobstacle = player or wall or Crate1\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, crate1, crate2\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate1 | crate2 ] -> [ | wall ]\n[ > crate2 | crate1 ] -> [ | wall ]\n\n==============\nWINCONDITIONS\n==============\n\nno crate\n\n=======\nLEVELS\n=======\n\nmessage When the two compounds are combined they set into a hard purple resin.\n\nmessage 1 of 10\n(fine!)\n######\n#....#\n#p@o.#\n#....#\n#@..o#\n######\n\nmessage 2 of 10\n(fine-ish?)\n#########\n#..o.@..#\n#..op@..#\n#########\n\nmessage 3 of 10\n(good hard level 1 or nice level 2)\n######\n#.@..#\n#..@.#\n#oo..#\n#.#.p#\n######\n\nmessage 4 of 10\n(ok? looks nice and has a solution that's not totally trivial but also not exactly something you can deduce without trying out - you won't necessarily know after the fact *why* the solkution is a solution)\n######\n#..o.#\n#.o@.#\n#o@..#\n#.p.@#\n######\n\nmessage 5 of 10\n(fine?)\n..####\n.##.o#\n##...#\n#..#.#\n#.@o.#\n#.p@.#\n######\n\nmessage 6 of 10\n(good intermediate)\n######\n#p...#\n#.o@@#\n#oo..#\n#.#@.#\n######\n\n\nmessage 7 of 10\n(kinda ok?)\n#######\n#.....#\n#...#.#\n#@#o@o#\n#.#.#.#\n#..p..#\n#######\n\nmessage 8 of 10\n(kinda fun?)\n######\n#@o.o#\n#.o.@#\n#@.@o#\n#.p..#\n######\n\n\nmessage 9 of 10\n(actually ok?)\n..####...\n###@.####\n#..@....#\n#.#.o#o.#\n#....#p.#\n#########\n\nmessage 10 of 10\n(had the solution spoiled but it's also fine :] )\n######\n#oo.@#\n#.@@o#\n#o.@.#\n#.p..#\n######\n\nmessage Congratulations! You're an exceptionally very competent resin-caster.\n\n(nice level, but maybe not include? not totally feeling it)\n( ###### )\n( #@.o.# )\n( #o.o.# )\n( #@o@.# )\n( #@..p# )\n( ###### )\n\n(eeeh it's fine but I solved it directly by avoiding doing the obvious thing which is BORING)\n( ###### )\n( #.o.p# )\n( #@@oo# )\n( #....# )\n( #@#..# )\n( ###### )\n\n(too much like other level)\n( ###### )\n( #@o.@# )\n( #...o# )\n( #o@o@# )\n( #p...# )\n( ###### )\n\n(kinda ok? I like the interlacing style. but not the best level of all time)\n( ###### )\n( #..@.# )\n( #o#@.# )\n( #.@..# )\n( #...o# )\n( #.o.p# )\n( ###### )\n\n(\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n####\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n####\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\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.*#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*O.#\n##.*P*.#\n#..O*O.#\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\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\n\n(\nTransformation\n\n[ player ] -> []\n[ crate ] -> []\n\n( choose 2 [ player ] -> [ ] )\n\nchoose 3 [ ] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate1 ]\nchoose 2 [ no obstacle ] -> [ crate2 ]\n\n)\n", [3, 0, 0, 1, 2, 0, 1, 1, 1, 2, 2, 3, 0, 1, 0, 3, 3, 1, 2, 2, 1, 1, 1, 0, 0, 3, 3, 3, 3, 3], "background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,0,1,\n1,background crate2:2,0,0,0,1,1,0,0,\n0,0,1,1,1,background player:3,1,1,1,\n0,1,1,0,background crate1:4,1,0,1,0,\n0,0,1,0,1,1,1,1,1,\n", 18, "1645544805711.4153"] + ], + [ + "pipe puffer", + ["title pipe puffer\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nbackground_color #472f37\n(verbose_logging)\n( debug )\n\n========\nOBJECTS\n========\n\nBackground\n#524740 #5a4f48\n00000\n01110\n01110\n01110\n00000\n\n\n\n\nWall\n#472f37\n\nwall_s\ntransparent transparent #291c21\n00000\n11111\n11111\n11111\n22222\n\n\nwall_n\n#5f454e transparent transparent\n00000\n11111\n11111\n11111\n22222\n\nwall_o\ntransparent transparent #5f454e\n01112\n01112\n01112\n01112\n01112\n\nwall_w\n#291c21 transparent transparent\n01112\n01112\n01112\n01112\n01112\n\nwall_nw\n#472f37\n0....\n.....\n.....\n.....\n.....\n\nwall_so\n#472f37\n.....\n.....\n.....\n.....\n....0\n\nPlayer\ntransparent #a69326 #cdb844 #e3d060 #bfaa38 #000000\n01230\n34233\n22522\n11241\n01230\n\n\nrohr_no e\n#005784 #006ea6 #524740 #acacac #cccccc #656d71\n00010 \n23431\n23540\n22330\n22220\n\nrohr_ns x\n#005784 #006ea6 #524740 #acacac #cccccc #e6e6e6 #656d71\n00010\n23452\n23652\n23452\n00010\n\nrohr_nw q\n#005784 #006ea6 #acacac #cccccc #e6e6e6 #524740 #656d71\n00010\n12345\n03645\n02255\n05555\n\n\nrohr_so c\n#524740 #005784 #e6e6e6 #006ea6 #acacac #cccccc #656d71\n00001\n00223\n04651\n04541\n11131\n\nrohr_sw z\n#005784 #524740 #006ea6 #e6e6e6 #cccccc #acacac #656d71\n01111\n23311\n04631\n05431\n00020\n\nrohr_ow a\n#005784 #524740 #006ea6 #e6e6e6 #cccccc #acacac #656d71\n01110\n23332\n04640\n05550\n01110\n\noutlet_n \n#005784 #006ea6 transparent #e6e6e6 #cccccc #acacac #656d71\n01000 \n23452\n22622\n22222\n22222\n\noutlet_s \ntransparent #cccccc #acacac #e6e6e6 #005784 #006ea6 #656d71\n00000\n00000\n00600\n02130\n44454\n\noutlet_o \ntransparent #005784 #e6e6e6 #006ea6 #cccccc #acacac #656d71\n00001\n00023\n00641\n00051\n00001\n\noutlet_w \n#005784 transparent #acacac #cccccc #006ea6 #e6e6e6 #656d71\n01111\n02111\n03611\n45111\n01111\n\ninlet\nblue\n.....\n.....\n..0..\n.....\n.....\n\npust_n\n#cccccc\n.000.\n0...0\n..0..\n..0..\n.....\n\n\npust_s\n#cccccc\n.....\n..0..\n..0..\n0...0\n.000.\n\npust_o\n#cccccc\n...0.\n....0\n.00.0\n....0\n...0.\n\npust_w\n#cccccc\n.0...\n0....\n0.00.\n0....\n.0...\n\n\n\nflow\nblue\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\nwall_überlagung = wall_s or wall_n or wall_o or wall_w or wall_nw or wall_so\n\nrohr = rohr_no or rohr_ns or rohr_nw or rohr_so or rohr_sw or rohr_ow\noutlet = outlet_n or outlet_s or outlet_o or outlet_w\n\nöffnung_n = rohr_no or rohr_ns or rohr_nw or outlet_n\nöffnung_s = rohr_ns or rohr_sw or rohr_so or outlet_s\nöffnung_o = rohr_no or rohr_so or rohr_ow or outlet_o\nöffnung_w = rohr_nw or rohr_sw or rohr_ow or outlet_w\n\nwall_thing = wall or outlet \n\nrohr_or_öffnung = rohr or outlet\n\n. = Background\n# = Wall\nP = Player\n\n1 = outlet_n and wall\n2 = outlet_s and wall\n3 = outlet_o and wall\n4 = outlet_w and wall\n\n5 = outlet_n and inlet and wall\n6 = outlet_s and inlet and wall\n7 = outlet_o and inlet and wall\n8 = outlet_w and inlet and wall\n\npust = pust_n or pust_s or pust_o or pust_w\n\nobstacle = wall_thing or rohr or player\n\nrohr_or_player = rohr or player\n\n=======\nSOUNDS\n=======\nsfx0 39858907 (pusten)\nsfx1 96276907 (rohrdurchpusten)\nrohr move 73985107 (rohrbewegen)\nstartlevel 38142502\nendlevel 45497300\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, rohr\nwall_s\nwall_n\nwall_o\nwall_w\nwall_nw\nwall_so\noutlet\ninlet\nflow\npust_n\npust_s\npust_o\npust_w\n\n======\nRULES\n======\n\nup [ wall | no wall_thing ] -> [ wall wall_n | ]\ndown [ wall | no wall_thing ] -> [ wall wall_s | ]\nleft [ wall | no wall_thing ] -> [ wall wall_w | ]\nright [ wall | no wall_thing ] -> [ wall wall_o | ]\n\n\n[ wall_s wall_o ] -> [ wall_s wall_o wall_so ]\n[ wall_n wall_w ] -> [ wall_n wall_w wall_nw ]\n\n[ > player | obstacle ] -> cancel\n[pust]->[]\n\nright [ | action player | ] -> [ pust_w | action player | pust_o ] again sfx0\nup [ | action player | ] -> [ pust_s | player | pust_n ] again\n\n\nright [ rohr_so pust_n | ] -> [ rohr_so | pust_o ] sfx1\n+ down [ rohr_so pust_w | ] -> [ rohr_so | pust_s ] sfx1\n\n+ up [ rohr_ns pust_n | ] -> [ rohr_ns | pust_n ] sfx1\n+ down [ rohr_ns pust_s | ] -> [ rohr_ns | pust_s ] sfx1\n\n+ left [ rohr_sw pust_n | ] -> [ rohr_sw | pust_w ] sfx1\n+ down [ rohr_sw pust_o | ] -> [ rohr_sw | pust_s ] sfx1\n\n+ right [ rohr_ow pust_o | ] -> [ rohr_ow | pust_o ] sfx1\n+ left [ rohr_ow pust_w | ] -> [ rohr_ow | pust_w ] sfx1\n\n+ right [ rohr_no pust_s | ] -> [ rohr_no | pust_o ] sfx1\n+ up [ rohr_no pust_w | ] -> [ rohr_no | pust_n ] sfx1\n\n+ left [ rohr_nw pust_s | ] -> [ rohr_nw | pust_w ] sfx1\n+ up [ rohr_nw pust_o | ] -> [ rohr_nw | pust_n ] sfx1\n\n[ pust_n rohr ] -> [ pust_n up rohr ]\n[ pust_s rohr ] -> [ pust_s down rohr ]\n[ pust_o rohr ] -> [ pust_o right rohr ]\n[ pust_w rohr ] -> [ pust_w left rohr ]\n\n[pust outlet ] -> [ outlet ]\n\n[ > rohr_or_player | rohr_or_player ] -> [ > rohr_or_player | > rohr_or_player ]\n\n( [ > Player | Crate ] -> [ > Player | > Crate ] )\n\nlate [flow]->[]\n\nlate [ inlet ] -> [ inlet flow ]\n\nlate up [ öffnung_n flow | öffnung_s no flow ] -> [ öffnung_n flow | öffnung_s flow ]\n+ late down [ öffnung_s flow | öffnung_n no flow ] -> [ öffnung_s flow | öffnung_n flow ]\n+ late right [ öffnung_o flow | öffnung_w no flow ] -> [ öffnung_o flow | öffnung_w flow ]\n+ late left [ öffnung_w flow | öffnung_o no flow ] -> [ öffnung_w flow | öffnung_o flow ]\n\n==============\nWINCONDITIONS\n==============\n\nall outlet on flow\n\n=======\nLEVELS\n=======\n\n\nmessage Oh no the factory is falling apart! Can the pipe puffer put it back together?\n\nmessage Level 1 of 8 \n\n(kinda like. fine. best of that kind of level?)\n####6##\n#.....#\n#.....4\n#.xea.#\n##....#\n##..p.#\n#######\n\nmessage Level 2 of 8\n(I like this)\n#######\n#.....#\n#.c.8.#\n#.xa..#\n#.x...#\n#.1.p.#\n#.....#\n#######\n\n( (jokey? not hard? intermediate?) )\n( ########### )\n( #.........# )\n( #...c.z...# )\n( #...xax...# )\n( #.caqxeaz.# )\n( #..x...x..# )\n( #.x.....x.# )\n( #.x.a.a.x.# )\n( #.x.....x.# )\n( #.x..p..x.# )\n( ##5#####1## )\n\n\nmessage Level 3 of 8\n\n###########\n#.....2####\n#..caaq6###\n#..x...x..#\n#..x...x..#\n#..x.a.x..#\n#..ea.aq..#\n#.........#\n#....p....#\n###########\n\n\nmessage Level 4 of 8\n#########\n#.......#\n#...c8..#\n#.6.e4..#\n#..x....#\n#.1.a...#\n#.x..cz.#\n#..p.15.#\n#.......#\n#########\n\n\n\n\n\nmessage Level 5 of 8\n(intermediate. multiple solutions. doesn't mandate the solution I like the most tho >:[ )\n###########\n#.........#\n#.p..7aaaz#\n#..c....x.#\n#........x#\n#........q#\n########1##\n\nmessage Level 6 of 8\n(tricky)\n#########....\n#.......#....\n#......c8####\n#......x#...#\n#......eaaz.#\n#..p.x......#\n#.........1.#\n#......######\n#......#.....\n########.....\n\nmessage Level 7 of 8\n( (or maybe not that hard?) hard)\n########\n#......#\n7aaaaaz#\n#....x.#\n##3...q#\n#.....##\n#.p.cz.#\n#..aqe.#\n#......#\n########\n\n\n\n\nmessage Level 8 of 8\n(not great but ok)\n########6##\n#.....#.x.#\n#.......x.#\n#.....caq.#\n#..a..eaz.#\n#...x..x..#\n#.....a.x.#\n#..p...cq.#\n#......x#.#\n#......x#.#\n#######1###\n\nmessage Thank you! The factory is back up and running. You are verily the premier pipe puffer!\n\n( (not sure if I want this or not) )\n( (fine, solvable wiht brain-usage. doesn't use puffing though sadface) )\n( ###6### )\n( #.....# )\n( #.#..a4 )\n( #...x.# )\n( #.ea..# )\n( ##p...# )\n( ####### )\n\n( (ok silly last level? ) )\n( ############## )\n( #............# )\n( #....6..2....# )\n( #...cq..ez...# )\n( #...ez...q...# )\n( #...cq..ez...# )\n( #...ez..cq...# )\n( #...cq..ez...# )\n( #...ez..cq...# )\n( #...cq..ez...# )\n( #...ez..cq...# )\n( #....1..5....# )\n( #.....p......# )\n( ############## )\n\n\n( ###6#### )\n( #......# )\n( #..a..a4 )\n( #....x.# )\n( #..ea..# )\n( ###p...# )\n( ######## )\n\n( (hard? not yet solved unsolvable lol) )\n( ###6### )\n( #.....# )\n( ##.x.a4 )\n( #.....# )\n( #.ea#.# )\n( #.p...# )\n( ####### )\n\n\n\n(\n(simple. pleasing)\n##62###\n##.x..#\n#.e...#\n#..q..#\n##....#\n.#p.###\n.####..\n\n(similarly simple/pleasing)\n###6##\n#....4\n##.a.#\n#.e..#\n#p...#\n######\n\n(whatever)\n###6##\n#..x.4\n#.ec.#\n#..q.#\n#p...#\n######\n\n(slightly harder)\n###6##\n#..x.4\n#.cq.#\n#.e..#\n#...p#\n######\n\n(fineish)\n###6##\n###.##\n#..a.4\n#..x.#\n#.e..#\n#..p.#\n######\n\n(i remember how to do this one, which is good, but it's alos not great)\n###62###\n#......#\n#..x#..#\n#...q..#\n#x.e...#\n#....p.#\n########\n\n\n( ###6## )\n( #..ea4 )\n( #....# )\n( #.p..# )\n( #....# )\n( ###### )\n\n( ###6## )\n( #..xc4 )\n( #..eq# )\n( #.p..# )\n( #....# )\n( ###### )\n\n\n( ##62## )\n( #.eq.# )\n( #....# )\n( #.p..# )\n( #....# )\n( ###### )\n\n( ##62### )\n( #.eq..# )\n( #.....# )\n( #.p...# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( ###62### )\n( #..xx..# )\n( #..eq..# )\n( #......# )\n( #......# )\n( #....p.# )\n( ######## )\n\n\n##62###\n#.xx..#\n#.eq..#\n#.p...#\n#.....#\n#.....#\n#######\n\n####6##\n#...ea4\n#.....#\n#.....#\n#.p...#\n#.....#\n#######\n\n####6##\n#...xc4\n#...eq#\n#.....#\n#.p...#\n#.....#\n#######\n\n###6###\n#..x..#\n#..eaa4\n#.....#\n#.p...#\n#.....#\n#######\n\n###62###\n#..eq..#\n#......#\n#.p....#\n#......#\n#......#\n########\n\n########\n#......#\n#......#\n#..62..#\n#..eq..#\n#.p....#\n########\n\n####6##\n#...ea4\n#.....#\n#.....#\n#.p...#\n#.....#\n#######\n\n#######\n#.....#\n#.cz..#\n#.x5p.#\n#.x2..#\n#.eq..#\n#.....#\n#######\n\n###6###\n#..ez.#\n#...ea4\n#.....#\n#.p...#\n#.....#\n#######\n\n\n\n(trivial)\n####6##\n#.....#\n#..x..4\n#..ea.#\n#.p...#\n#.....#\n#######\n\n\n####6##\n#.....#\n#..x..4\n#..ea.#\n#.p...#\n#.....#\n#######\n\n\n####6##\n#.....#\n#.c.q.#\n#p.a..4\n#.x.z.#\n#.....#\n#######\n\n##6##\n#...#\n#.p.#\n#...4\n#####\n\n.....\n.....\n.....\n.....\n.....\n\n\n( #########.... )\n( #.......6#### )\n( #.......x...# )\n( #...c.a.eaaz# )\n( #....p......# )\n( #...a.x.caaq# )\n( #.......x...# )\n( #.......1#### )\n( #########.... )\n\n\n( #########...... )\n( #.......6###### )\n( #.......x.....# )\n( #...c.a.eaaaaz# )\n( #....p........# )\n( #...a.x.caaaaq# )\n( #.......x.....# )\n( #.......1###### )\n( #########...... )\n\n\n( #########....... )\n( #.......6####### )\n( #.......x......# )\n( #..c.a..eaaaaz.# )\n( #...p..........# )\n( #..a.x..caaaaq.# )\n( #.......x......# )\n( #.......1####### )\n( #########....... )\n\n( #########....... )\n( #.......#....... )\n( #.......6####### )\n( #.......x......# )\n( #..c.a..eaaaaz.# )\n( #...p..........# )\n( #..a.x..caaaaq.# )\n( #.......x......# )\n( #.......1####### )\n( #.......#....... )\n( #########....... )\n\n( ################ )\n( #..............# )\n( #.......c8###### )\n( #.......x......# )\n( #..c.z..eaaaaz.# )\n( #...p..........# )\n( #..a.x..caaaaq.# )\n( #.......x......# )\n( #.......e4###### )\n( #..............# )\n( ################ )\n\n( ################ )\n( #..............# )\n( #.......c8###### )\n( #..c.z..x......# )\n( #...p...eaaaaz.# )\n( #..a.x.........# )\n( #.......caaaaq.# )\n( #..e.q..x......# )\n( #.......e4###### )\n( #..............# )\n( ################ )\n\n)\n\n(\ntransformation\n\n[player]->[]\n\nchoose 15 [ rohr ] [ no obstacle ] -> [ ] [ rohr ] \n(choose 1 [ player ] [ no obstacle ] -> [ ] [ player ])\n(choose 5 [ outlet ] [ wall ] -> [ wall ] [ outlet ]\nchoose 1 [ flow no outlet ] [ outlet no flow ] -> [ ] [ outlet flow ])\n\n\nchoose 1 [ no obstacle ] -> [ player ]\n\nchoose 10 option 0.5 [ no obstacle ] -> [ wall ]\n+ option 0.5 [] -> [ ]\n)\n\n\n\n", [0, 0, 2, 1, 0, 4, 3, 3, 0, 0, 0, 1, 1, 1, 3, 4, 0, 1, 1, 2, 4, 2, 4, 3, 2, 3, 2, 2, 1, 1, 0, 4, 4, 2, 3, 3, 3, 0, 3, 0, 0, 4, 2, 1, 1], "background wall:0,background wall wall_o:1,1,1,1,1,1,\n0,background wall wall_s:2,background:3,3,3,background rohr_ns:4,3,\n3,background wall wall_n:5,2,3,3,4,3,\nbackground outlet_n wall wall_n wall_nw wall_o wall_s wall_so wall_w:6,3,5,2,3,background flow rohr_so:7,3,\nbackground player:8,3,3,5,2,3,background flow inlet outlet_w wall wall_n wall_nw wall_o wall_s wall_so wall_w:9,\nbackground rohr_ow:10,3,3,3,5,2,3,\n3,3,3,3,3,5,0,\nbackground wall wall_w:11,11,11,11,11,11,0,\n", 4, "1645544832464.3308"] + ], + [ + "crate guardian", + ["title crate guardian\nauthor increpare\nhomepage www.increpare.com\nrun_rules_on_level_start\nbackground_color darkgreen\n\n(\n\nthanks to youatexample for some title advice\n\nother possible titles:\nīdōlum cistae sānctum\ngreat idol of the crates\ncrate idol\n\n\n)\n( verbose_logging )\n( debug )\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\n\n( Target1 )\n( #4b1116 )\n( ..... )\n( .000. )\n( .0.0. )\n( .000. )\n( ..... )\n\n\nTarget\ndarkblue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\n#1b2632\n\nPlayer\n#c8727a\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nCrate\n#746cc2\n00000\n0...0\n0...0\n0...0\n00000\n\n\nstatue2\nblue \n00.00\n.000.\n.000.\n00.00\n.0.0.\n\n\naura2\n#383185\n\n\n=======\nLEGEND\n=======\n\n\nstatue = statue2\npushable = crate or statue\npusher = crate or statue or player\naura = aura2\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nq = Target\n\n2 = statue2\n3 = crate and target\n4 = crate and target\n7 = statue2 and target\n8 = statue2 and target\n\nobstacle = crate or statue or wall or player\n0 = wall and aura2\n9 = aura2\na = statue2 and aura2\ne = target and aura2\nf = target and crate and aura2\n\nplayer_or_statue1_or_wall = player or wall\ncrate_or_wall = crate or wall\nj = player and aura2\nm = target and statue2 and aura2\n\n=======\nSOUNDS\n=======\n\nstatue2 move 95968304\nCrate MOVE 53883107\nendlevel 25071300\nstartlevel 46394106\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\naura2\nTarget\nPlayer, Wall, Crate, statue\n\n======\nRULES\n======\n\n[ > pusher | pushable ] -> [ > pusher | > pushable ]\n[ > pushable | wall ] -> cancel\n\nlate [ aura ] -> [ ]\n\nlate right [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\nlate down [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\n\nlate [ player_or_statue1_or_wall aura2 ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nall crate on target\n\n=======\nLEVELS\n=======\n\n\n\nmessage Level 1 of 6\n(ok level 1)\n.#######.\n.#.....#.\n.#..p..#.\n.#.....#.\n.#.***.#.\n.#.999.#.\n##.9a9.##\n#..999..#\n#..ooo..#\n#.......#\n##..#..##\n.#.....#.\n.#######.\n\nmessage Level 2 of 6\n(I dunno?)\n#######\n#.....#\n#..3..#\n#.9e9.#\n#.9a9.#\n#.999.#\n#..*..#\n#.....#\n#..p..#\n#.....#\n#######\n\nmessage Level 3 of 6\n.#######.\n.#.p...#.\n.#.***.#.\n##.999.##\n#..eme..#\n#..999..#\n#...#...#\n###...###\n..#####..\n\n\nmessage Level 4 of 6\n(OK)\n##########\n#........#\n#.*999...#\n#..9a9.o.#\n#.p9e90000\n#...*.0...\n#.....0...\n#######...\n\n\nmessage Level 5 of 6\n(OK)\n######....\n#....#....\n#....##...\n#ooo..##..\n#......##.\n##......##\n.##..999.#\n..##.9a9.#\n...##999.#\n...#.....#\n...#.***.#\n...#.....#\n...#..p..#\n...#.....#\n...#######\n\nmessage Level 6 of 6\n(ok final level! I used my brain and solved it)\n#########\n#...p...#\n#..o.o..#\n#.o***o.#\n#..*a*..#\n#.o***o.#\n#..o.o..#\n#.......#\n#########\n\nmessage Congratulations. You learned how to work with the guardian of the crates. She still keeps you at a distance, but you have earned her respect.\n\n( 00000000000 )\n( 0.........0 )\n( 0....p....0 )\n( 0...o.o...0 )\n( 0..o***o..0 )\n( 0...*a*...0 )\n( 0..o***o..0 )\n( 0...o.o...0 )\n( 0.........0 )\n( 0.........0 )\n( 00000000000 )\n\n( ####### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n\n( ######## )\n( #......# )\n( #......# )\n( #......# )\n( #..p...# )\n( #.pp...# )\n( #ppp...# )\n( ######## )\n\n(\n\nTransformations\n\nchoose 4 [] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ statue1 ]\nchoose 1 [ no obstacle ] -> [ statue2 ]\n\n\nright [ | statue1 | ] -> [ aura1 | aura1 statue1 | aura1 ]\nright [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\ndown [ no aura1 | aura1 | no aura1 ] -> [ aura1 | aura1 | aura1 ]\ndown [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\nchoose 1 [ no aura2 no obstacle ] -> [ player ]\n\nchoose 2 [no aura1 no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player ] -> [ target ]\n\n\nalt transform\n\n\nchoose 11 [ player ] -> [ no player ]\n\nchoose 4[ no player ] -> [ wall aura12 ]\n(choose 1 [ no wall | no obstacle | no wall ] -> [ | statue1| ]\nright [ | statue1 | ] -> [ aura1 | aura1 statue1 | aura1 ]\ndown [ no aura1 | aura1 | no aura1 ] -> [ aura1 | aura1 | aura1 ])\n\nchoose 1 [ no wall no aura1 no player | no obstacle no aura1 no player | no wall no aura1 no player ] -> [ |statue2| ]\nright [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\ndown [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\n(choose 1 [ no aura2 no obstacle ] -> [ player ])\n\nchoose 3 [no aura1 no obstacle ] -> [ crate ]\nchoose 3 [ no wall no player ] -> [ target ]\n\n[aura12 wall aura1] ->[aura1]\n[aura12 wall aura2] ->[aura2]\n\n\n==========\n\nchoose 5 [ player ] -> [ no player ]\n\nchoose 4[ no player ] -> [ wall ]\n\nchoose 1 [ no wall no player | no obstacle no player | no wall no player ] -> [ |statue2| ]\nright [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\ndown [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\n(choose 1 [ no aura2 no obstacle ] -> [ player ])\n\nchoose 3 [ no obstacle ] -> [ crate ]\nchoose 3 [ no wall no player ] -> [ target ]\n\n)\n\n", [2, 2, 3, 3, 2, 2, 1, 2, 2, 1, 1, 0, 2, 3, 3, 0, 1, 1, 2, 1, 3, 0, 1, 3, 0, 0, 0, 1, 2, 2, 3, 2, 1, 2, 1, 1, 0, 0, 2, 1, 1, 1, 3, 0, 0, 0, 1, 0, 0, 0, 0, 3, 3, 2], "background wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,0,\n0,1,1,aura2 background target:2,aura2 background crate:3,2,1,1,0,\n0,1,background player target:4,3,aura2 background statue2:5,3,background target:6,1,0,\n0,background crate:7,1,aura2 background:8,3,3,7,1,0,\n0,1,6,1,1,1,6,1,0,\n0,1,1,6,1,6,1,1,0,\n0,1,1,7,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n", 11, "1645544889350.864"] + ], + [ + "Don't let your goals slip away", + ["title Don't let your goals slip away\nauthor increpare [riff on david skinner's levels]\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\nbackground_color green\n\n\ncolor_palette 2\n========\nOBJECTS\n========\n\nBackground\nGREEN green\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nblack\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nDARKBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nlightgray lightgray lightgray lightgray\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange\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\nobstacle = crate or wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 78774307\ntarget move 81495507\nendlevel 52446100\nstartgame 73236703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n( [ > player | wall ] -> cancel )\n[ > player | crate | obstacle ] -> cancel\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > player | target ] -> [ > player | > target ] \n[ > target | target ] -> [ > target | > target ]\n[ > target | wall ] -> [ target | wall ]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 8\n\n(funny therefore good)\n####..\n#o*#..\n#..###\n#....#\n#.o*.#\n#.p###\n####..\n\n(meh)\n( ####.. )\n( #.o#.. )\n( #..### )\n( #o...# )\n( #*.*.# )\n( #.p### )\n( ####.. )\n\n\nmessage level 2 of 8\n\n\n(p. good!)\n..####...\n###..####\n#....*o.#\n#.#..#.o#\n#..*.#p.#\n#########\n\n( (Easy but funny) )\n( ###### )\n( #.*..# )\n( #.#.*# )\n( #....# )\n( #p*o.# )\n( #.oo.# )\n( ###### )\n\n\nmessage level 3 of 8\n\n(not bad)\n######\n##o..#\n#.#oo#\n#.*..#\n#.*..#\n#p*..#\n######\n\nmessage level 4 of 8\n\n########\n#...*..#\n#.o#.@p#\n#..*...#\n#####.o#\n....####\n\nmessage level 5 of 8\n\n\n\n(decent!)\n#####.\n#.*.##\n#.o.p#\n##.o.#\n.##.*#\n..##.#\n...###\n\nmessage level 6 of 8\n\n(fine right?)\n......###.\n#######o##\n#...*o...#\n#.#.#.#.##\n#.p.*...#.\n#########.\n\nmessage level 7 of 8\n(no idea. damnit spoiled but also ok.)\n####..\n#..#..\n#.*###\n#..*p#\n#..o.#\n#o.###\n####..\n\n\n\nmessage level 8 of 8\n(Tricky but also decent? involves fun manipulations)\n#######\n#..#..#\n#.o*o.#\n#.*p*##\n#.o*o.#\n#..#..#\n#######\n\n\nmessage Congratulations! You didn't let your goals run away from you.\n\n(transform\n\n[player]->[]\n[target]->[]\n[crate]->[]\n\nchoose 2 [] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player ] -> [ target ] \n\n)\n\n", [0, 0, "undo", "undo", 1, 0, 0, 3, 3, 3, 2, 1, 1, 0, 0, 1, 0, 0, "restart", 0, 0, 0, 2, 3, 3, 2, 1, 1, 2, 1, 0, 0, 0, 0, 0, 2, 0, 1, 1, 1, 3, 3, 3, "undo", "undo", 3, 3, 1, 1, 1, 2, 3, 0, 1, 1, "restart", 0, 0, 1, "restart", 3, 0, 0, 1, 1, 1, 1, "undo", 0, 1, 2, 2, 1, 2, 2, 1, 2, 2, 3, 3, 0, 2, 1, 1, 0, 0, 3, 3, 3, 3, 3, 1, 1], "background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,0,1,\n1,0,0,0,0,1,1,0,background player:2,\n0,background crate:3,1,1,1,0,1,1,1,\n0,1,background target:4,0,0,1,0,1,background crate target:5,\n0,0,1,0,1,1,1,1,1,\n", 3, "1645544970753.6125"] + ], + [ + "Eyeball-watching flowers bloom", + ["title Eyeball-watching flowers bloom\nauthor increpare\nhomepage www.increpare.com\n\n\n(thanks to bluemelon555 for title suggestions)\n\nbackground_color #094118\ntext_color #f7e26b\nrun_rules_on_level_start\n\nverbose_logging\n\n(debug)\n\n========\nOBJECTS\n========\n\nBackground\n#0f5321 #44891a\n00000\n01000\n01010\n00010\n00000\n\n\n\n\nWall_inactivated\ntransparent #44891a #a3ce27\n01110\n12121\n11211\n12121\n01110\n\n\n\nwall_activated =\ntransparent #e06f8b #a3ce27 #f7e26b\n01120\n21111\n11311\n11112\n02110\n\nwall_burnt\ntransparent #430006 #000000\n01210\n22222\n21221\n12222\n02210\n\n\nplayer_up\nwhite yellow red black\n10201\n02320\n00200\n00000\n.000.\n\n\nplayer_down\nwhite yellow red black\n.000.\n00000\n00200\n02320\n10201\n\n\nplayer_left\nwhite yellow red black\n1000.\n02000\n23200\n02000\n1000.\n\n\nplayer_right\nwhite yellow red black\n.0001\n00020\n00232\n00020\n.0001\n\n\nCrate\ntransparent #9d9d9d #bfbfbf #737373\n00120\n01112\n31112\n33111\n03330\n\n\nstrahlen\nyellow\n\nstrahlen_top\nyellow\n00000\n00000\n.....\n.....\n.....\n\nstrahlen_bottom\nyellow\n.....\n.....\n.....\n00000\n00000\n\nstrahlen_left\nyellow\n00...\n00...\n00...\n00...\n00...\n\nstrahlen_right\nyellow\n...00\n...00\n...00\n...00\n...00\n\n\nburnout\n#0f5321 #430006 #000000\n01210\n22222\n21221\n12222\n02210\n\n\n=======\nLEGEND\n=======\n\nplayer = player_up or player_down or player_left or player_right\nwall = Wall_inactivated or wall_activated\n. = Background\n# = Wall_inactivated\nstrahlen_all = strahlen or strahlen_top or strahlen_bottom or strahlen_left or strahlen_right\n\nP = Player_up\nq = player_down\nr = player_left\ns = player_right\n\n* = crate\no = background\n@ = background\n\nobstacle = crate or wall or player\nstrahlen_or_player = strahlen or player\n=======\nSOUNDS\n=======\n\nCrate MOVE 21697107\nendlevel 23649709\nstartlevel 40644309\nstartgame 98216309\n\nsfx0 94788500 (Blume)\n(58036508)\nsfx1 78837102 (burn)\n\nsfx2 94214904 (deadend)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nstrahlen_all\nPlayer, Wall, Crate, burnout, wall_burnt\n\n======\nRULES\n======\n\nup [ > player_up | wall_activated ] -> cancel \ndown [ > Player_down | wall_activated ] -> cancel \nleft [ > Player_left | wall_activated ] -> cancel \nright [ > Player_right | wall_activated ] -> cancel \n\n[wall_burnt] -> cancel sfx2\n\nup [ > Player | Crate | no obstacle ] -> [ | Player_up | Crate ]\ndown [ > Player | Crate | no obstacle ] -> [ | Player_down | Crate ]\nleft [ > Player | Crate | no obstacle ] -> [ | Player_left | Crate ]\nright [ > Player | Crate | no obstacle ] -> [ | Player_right | Crate ]\n\nup [ > Player | no obstacle ] -> [ | Player_up ]\ndown [ > Player | no obstacle ] -> [ | Player_down ]\nleft [ > Player | no obstacle ] -> [ | player_left ]\nright [ > Player | no obstacle ] -> [ | player_right ]\n\n[ up player ] -> [ player_up ]\n[ down player ] -> [ player_down ]\n[ left player ] -> [ player_left ]\n[ right player ] -> [ player_right ]\n\n[strahlen_all]->[]\nup [ player_up | no obstacle ] -> [ player_up | strahlen ]\ndown [ player_down | no obstacle ] -> [ player_down | strahlen ]\nleft [ player_left | no obstacle ] -> [ player_left | strahlen ]\nright [ player_right | no obstacle ] -> [ player_right | strahlen ]\n\n[ strahlen_or_player | strahlen | no strahlen no obstacle ]-> [ strahlen_or_player | strahlen | strahlen ]\n\n[ strahlen_or_player | strahlen | wall_activated ] -> [ strahlen_or_player | strahlen | wall_burnt ] sfx1\n[ strahlen_or_player | strahlen | Wall_inactivated ] -> [ strahlen_or_player | strahlen | wall_activated ] sfx0\n\n\nup [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_bottom ]\ndown [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_top ]\nleft [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_right ]\nright [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_left ]\n\n\nup [ player_up | no strahlen ]-> [ player_up| strahlen_bottom ]\ndown [ player_down | no strahlen ]-> [ player_down | strahlen_top]\nleft [ player_left | no strahlen ]-> [ player_left | strahlen_right ]\nright [ player_right | no strahlen ]-> [ player_right | strahlen_left ]\n\nup [ player_up | Wall_activated ] -> [ player_up | wall_burnt ] sfx1\nup [ player_up | Wall_inactivated ] -> [ player_up | wall_activated ] sfx0\ndown [ player_down | Wall_activated ] -> [ player_down | wall_burnt ] sfx1\ndown [ player_down | Wall_inactivated ] -> [ player_down | wall_activated ] sfx0\nleft [ player_left | Wall_activated ] -> [ player_left | wall_burnt ] sfx1\nleft [ player_left | Wall_inactivated ] -> [ player_left | wall_activated ] sfx0\nright [ player_right | Wall_activated ] -> [ player_right | wall_burnt ] sfx1\nright [ player_right | Wall_inactivated ] -> [ player_right | wall_activated ] sfx0\n\n==============\nWINCONDITIONS\n==============\n\nno Wall_inactivated\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 3\n\n.###.\n#...#\n#.q.#\n.###.\n\nmessage level 2 of 3\n\n\n(ok!)\n.####.\n#....#\n#.*..#\n#.p*.#\n#....#\n.####.\n\nmessage level 3 of 3\n\n(decent)\n.#####.\n#.....#\n#..*..#\n#.*p*.#\n#..*..#\n#.....#\n.#####.\n\nmessage Congratulations. The gardens look amazing.\n\n\n(\n(meh)\n.###.\n#...#\n#...#\n#.q.#\n.###.\n)\n(\n(meh)\n.####.\n#....#\n#.p..#\n#..*.#\n#....#\n.####.\n\n.#####.\n#.....#\n#.....#\n#..#..#\n#...*.#\n#...p.#\n.#####.\n\n(maybe ok? kinda cheated to find the solution but i could've figured it out!)\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#....q#\n.####=.\n\n(i could not solve this and I think that it's bad)\n.###.\n#...#\n#...#\n#...#\n#...#\n#.*.#\n#.p.#\n.###.\n\n\n.####.\n#....#\n#....#\n#....#\n#....#\n.####.\n\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n.#####.\n\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n.#####.\n\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n.#####.\n\n.######.\n#......#\n#......#\n#......#\n#......#\n#......#\n#......#\n#......#\n.######.\n)\n\n(Transform\n\n[player]->[]\n[crate]->[]\n\n\nchoose 2 [ ] -> [ wall_inactivated ]\n\nchoose 1 [ no obstacle ] -> [ player_up ]\n+ [ no obstacle ] -> [ player_down ]\n+ [ no obstacle ] -> [ player_left ] \n+ [ no obstacle ] -> [ player_right ]\n\nchoose 1 [ no obstacle ] -> [ crate ]\n\n[strahlen]->[]\nup [ player_up | no obstacle ] -> [ player_up | strahlen ]\ndown [ player_down | no obstacle ] -> [ player_down | strahlen ]\nleft [ player_left | no obstacle ] -> [ player_left | strahlen ]\nright [ player_right | no obstacle ] -> [ player_right | strahlen ]\n\n[ strahlen_or_player | strahlen | no strahlen no obstacle ]-> [ strahlen_or_player | strahlen | strahlen ]\n[ strahlen_or_player | strahlen | Wall_inactivated ] -> [ strahlen_or_player | strahlen | wall_activated ]\n\nup [ player_up | Wall_activated ] -> cancel\nup [ player_up | Wall_inactivated ] -> [ player_up | wall_activated ]\ndown [ player_down | Wall_inactivated ] -> [ player_down | wall_activated ]\nleft [ player_left | Wall_inactivated ] -> [ player_left | wall_activated ]\nright [ player_right | Wall_inactivated ] -> [ player_right | wall_activated ]\n\n\n)\n\n", [1, 2, 3, 3, 0, "undo", 0, 0, 3, 2, 3, 2, 1, 1, 0, 0, 1, 0, 1, 2, 3], "background:0,background wall_activated:1,1,1,background wall_inactivated:2,0,\n1,0,0,0,background crate:3,1,\n2,3,background player_right strahlen_right:4,0,0,2,\n2,0,background strahlen:5,0,0,2,\n2,0,5,0,0,1,\n0,2,background strahlen_left wall_burnt:6,1,1,0,\n", 3, "1645545001785.496"] + ], + [ + "Subway upholstry snot smearing championship", + ["title Subway upholstry snot smearing championship\nauthor increpare\nhomepage www.increpare.com\ncolor_palette 1\n\nrun_rules_on_level_start\n\nbackground_color #131316\ntext_color #6abe30\n========\nOBJECTS\n========\n\nBackground\n#5b6ee1 #639bff #ac3232\n00011\n10101\n12101\n20201\n10200\n\ntilled \n#6abe30 #5b6ee1\n01110\n01001\n10101\n10110\n01011\n\n\n\nWall\n#e7dcc0 #b478cb #e1ae5b #d77bba #76428a\n00000\n01220\n01330\n04330\n00000\n\nwallalt\n#e7dcc0 #e1ae5b #e15b5b #ab7722\n00000\n01120\n01120\n03330\n00000\n\n\n\nwallt\n#fdefd4 #e7dcc0 #42b7f0 #65dadf #54cf6f\n00000\n11111\n12231\n14231\n11111\n\nwallb\n#e7dcc0 #e96ff2 #780d80 #e442f0 #c2bb91\n00000\n01120\n02330\n00000\n44444\n\nwalltb\n#fdefd4 #e7dcc0 #6c1710 #ab1d11 #c2bb91\n00000\n11111\n12331\n11111\n44444\n\nwalltbalt\n#fdefd4 #e7dcc0 #fbf236 #fba736 #c2bb91\n00000\n11111\n12231\n11111\n44444\n\n\nPlayer\n#5b6ee1 #524b24 #eec39a #3f3f74 #000000\n01110\n02220\n23332\n03030\n04040\n\n\nCrate\ntransparent #99e550 #6abe30\n01110\n12221\n12221\n12221\n01110\n\nvoid ,\n#131316\n\n\n=======\nLEGEND\n=======\n\n\n. = Background\n# = Wall\n1 = wallt\n2 = wallb\n3 = walltb\n\n\nP = Player\n* = Crate and tilled\n@ = Crate and tilled\nO = Background\n\n\nwalls = Wall or wallt or wallb or walltb or wallalt or walltbalt\n\nwalls_or_void = walls or void\n\ngoodstate = walls_or_void or tilled\n=======\nSOUNDS\n=======\n\nCrate MOVE 41474107\nsfx0 3420907 (new snot)\nstartlevel 24347308\nendlevel 56675308\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ntilled\nPlayer, walls_or_void, Crate\n\n======\nRULES\n======\n\ndown [ no walls | walls | walls ] -> [ | wallt | walls ]\n\ndown [ walls | walls | no walls ] -> [ walls | wallb | ]\n\ndown [ no walls | walls | no walls ] -> [ | walltb | ]\n\ndown [ no wallalt | wall | wall | no wallalt ] -> [ | wall | wallalt | ] \n\nright [ no walltbalt | walltb | walltb | no walltbalt ] -> [ | walltbalt | walltb | ] \n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ < Player | Crate ] -> [ < Player | < Crate ]\n\nlate [ crate no tilled ] -> [ crate tilled ] sfx0\n\n==============\nWINCONDITIONS\n==============\n\nall Background on goodstate\n\n=======\nLEVELS\n=======\n\nmessage Go on, smear it ALL around!\n\nmessage Carriage 1 of 7\n(level 1)\n133331\n#p.*.#\n#*.1.#\n#..2.#\n#...*#\n233332\n\n\nmessage Carriage 2 of 7\n(level2)\n133331\n#....#\n#p.**#\n#.1**#\n232332\n\nmessage Carriage 3 of 7\n(slightly wholesome)\n13331,\n#...21\n#p...#\n21***#\n,21**#\n,,21.#\n,,,232\n\nmessage Carriage 4 of 7\n(I like this level! has personality)\n,,1331,,,\n132.*2331\n#.*.p...#\n#*3*.1*.#\n#.*..#..#\n233332332\n\n(\n(not actually taht scary, just need to use head a tiny amount)\n133331\n#.***#\n#*3**#\n#****#\n#....#\n#..p.#\n233332\n)\n\nmessage Carriage 5 of 7\n(pretty nice)\n133331\n#....#\n#.3p.#\n#..**#\n#****#\n#....#\n233332\n\n\nmessage Carriage 6 of 7\n(ok crate management?)\n133331,13331\n#*.*.232*.*#\n#p.....**3*#\n#...1....*.#\n#*.*#3333332\n23332,,,,,,,\n\nmessage Carriage 7 of 7\n(Decisions need to be made. ok conceptually?)\n,1313131,\n12.2*2.21\n#.*...*.#\n#3.3.3.3#\n#...*...#\n#3.3.3.3#\n#.*.p.*.#\n21.1.1.12\n,2323232,\n\nmessage All done! Very satisfying! \n\n(\n\n######\n#....#\n#.*.*#\n#p#.*#\n######\n\n\n######\n#p.*.#\n#*.#.#\n#..#.#\n#...*#\n######\n\n######\n#*.###\n#..#.#\n#p*#*#\n#...*#\n######)\n\n(\n\nTRANSFORM\n\n[ player ] -> []\n[ crate ] -> []\n\nchoose 4 [ ] - > [ wall ]\nchoose 1 [ no wall | no wall ] -> [ player | crate ]\n\n)\n", [1, 2, 3, 0, 1, 3, 3, 3, 3, 3, 2, 0, 1, 2, 3, 0, 1, 1, 1, 2, 1, 0, 3, 3, 1, 2, 2, 1, 1, 1, 3, 0, 0, 1, 3, 0, 0, 1, 2, 1, 1, 3, 2, 2, 3, 0, 2], "background void:0,background wallt:1,background wall:2,background wallalt:3,2,background wallb:4,0,background walltb:5,background tilled:6,\nbackground crate tilled:7,6,background walltbalt:8,1,4,7,5,6,5,\n8,6,6,7,7,8,5,6,6,\n7,background player:9,5,1,4,6,1,2,4,\n0,8,6,6,7,8,0,5,background:10,\n10,10,5,0,1,2,3,2,4,\n", 8, "1645545059102.073"] + ], + [ + "Double-Entry Bookkeeping Simulator#1", + ["title Double-Entry Bookkeeping Simulator\nauthor increpare\nhomepage www.increpare.com\n\n( verbose_logging )\nrun_rules_on_level_start\n\nbackground_color #404040\n\nagain_interval 0.1\n\n\n( Svelte Version für Simulieren \nhttps://www.puzzlescript.net/editor.html?hack=a52aae823542d184b57fc3301627a81a \n)\n\n========\nOBJECTS\n========\n\nBackground\n#404040\n\n\n\nWall\n#000000\n\n\nPlayer\ntransparent #ffffff\n01110\n01010\n11111\n00100\n01010\n\nblue_raw\n#1e88e5\n\n\nblue1 \n#003461 #1e88e5\n00100\n01100\n00100\n00100\n01110\n\nblue2 \n#003461 #1e88e5\n01100\n00010\n00100\n01000\n01110\n\nblue3 \n#003461 #1e88e5\n01100\n00010\n01100\n00010\n01100\n\nblue4 \n#003461 #1e88e5\n01000\n01000\n01010\n01110\n00010\n\nblue5 \n#003461 #1e88e5\n01110\n01000\n01100\n00010\n01100\n\nblue6 \n#003461 #1e88e5\n00100\n01000\n01100\n01010\n00100\n\nblue7 \n#003461 #1e88e5\n01110\n00010\n00010\n00100\n00100\n\nblue8 \n#003461 #1e88e5\n00100\n01010\n00100\n01010\n00100\n\nblue9 \n#003461 #1e88e5\n00110\n01010\n00110\n00010\n00010\n\nred_raw\n#d81b60\n\nred1 \n#56001f #d81b60\n00100\n01100\n00100\n00100\n01110\n\nred2 \n#56001f #d81b60\n01100\n00010\n00100\n01000\n01110\n\nred3 \n#56001f #d81b60\n01100\n00010\n01100\n00010\n01100\n\nred4 \n#56001f #d81b60\n01000\n01000\n01010\n01110\n00010\n\nred5 \n#56001f #d81b60\n01110\n01000\n01100\n00010\n01100\n\nred6 \n#56001f #d81b60\n00100\n01000\n01100\n01010\n00100\n\nred7 \n#56001f #d81b60\n01110\n00010\n00010\n00100\n00100\n\nred8 \n#56001f #d81b60\n00100\n01010\n00100\n01010\n00100\n\nred9 \n#56001f #d81b60\n00110\n01010\n00110\n00010\n00010\n\nonce\ntransparent\n\ncounted\nwhite\n.....\n.....\n.....\n...0.\n.....\n\ncounting\nyellow\n.....\n.0...\n.....\n.....\n.....\n\ndeleting\nyellow\n00000\n0...0\n0...0\n0...0\n00000\n\ndeleted\norange\n.....\n.....\n...0.\n.....\n.....\n\nwall1\n#000000 #1f1f1f\n00100\n01100\n00100\n00100\n01110\n\nwall2\n#000000 #1f1f1f\n01100\n00010\n00100\n01000\n01110\n\nwall3\n#000000 #1f1f1f\n01100\n00010\n01100\n00010\n01100\n\nwall4\n#000000 #1f1f1f\n01000\n01000\n01010\n01110\n00010\n\nwall5\n#000000 #1f1f1f\n01110\n01000\n01100\n00010\n01100\n\nwall6\n#000000 #1f1f1f\n00100\n01000\n01100\n01010\n00100\n\nwall7\n#000000 #1f1f1f\n01110\n00010\n00010\n00100\n00100\n\nwall8\n#000000 #1f1f1f\n00100\n01010\n00100\n01010\n00100\n\nwall9\n#000000 #1f1f1f\n00110\n01010\n00110\n00010\n00010\n\n=======\nLEGEND\n=======\n\nwalllabel = wall1 or wall2 or wall3 or wall4 or wall5 or wall6 or wall7 or wall8 or wall9\nred = red_raw or red1 or red2 or red3 or red4 or red5 or red6 or red7 or red8 or red9\n\nblue = blue_raw or blue1 or blue2 or blue3 or blue4 or blue5 or blue6 or blue7 or blue8 or blue9\n\nblue_other = blue\nred_other = red\n\ncoloured = red or blue\n\npushable = red or blue\n. = Background\n# = Wall\nP = Player\n* = red_raw\n@ = blue_raw\n\nobstacle = pushable or wall or player\n\n=======\nSOUNDS\n=======\n\nred move 76964107\nblue move 73247707\nsfx0 66382107 (destroy)\nsfx1 49518300 (destroy start)\n\nstartlevel 46354708\nendlevel 70029700\nstartgame 40047300\n\n================\nCOLLISIONLAYERS\n================\n\nonce, counted\ncounting\ndeleted\nBackground\nPlayer, Wall, pushable\ndeleting\nwalllabel\n\n======\nRULES\n======\n\n[ moving player ] [ deleted ] -> [ moving player ] [ ]\n\n[ blue no deleting ] -> [ blue_raw ]\n[ red no deleting ] -> [ red_raw ]\n\n[ > Player | pushable ] -> [ > Player | > pushable ]\n\n\nstartloop\n\nlate [ player no once no deleting ] [ blue no counted no deleting ] -> [ player once ] [ once blue ]\n\nlate [ once blue_raw no deleting ] -> [ counting blue1 counted ]\nlate [ once blue1 no deleting ] -> [ counting blue2 counted ]\nlate [ once blue2 no deleting ] -> [ counting blue3 counted ]\nlate [ once blue3 no deleting ] -> [ counting blue4 counted ]\nlate [ once blue4 no deleting ] -> [ counting blue5 counted ]\nlate [ once blue5 no deleting ] -> [ counting blue6 counted ]\nlate [ once blue6 no deleting ] -> [ counting blue7 counted ]\nlate [ once blue7 no deleting ] -> [ counting blue8 counted ]\nlate [ once blue8 no deleting ] -> [ counting blue9 counted ]\n\nlate [once]->[]\n\nlate [ counting blue no deleting | no counting blue_other no deleting ] -> [ counting blue | counting blue ]\nlate [counting]->[]\n\nendloop\n\n\nstartloop\nlate [ player no once ] [ red no counted no deleting ] -> [ player once ] [ once red ]\n\nlate [ once red_raw no deleting ] -> [ counting red1 counted ]\nlate [ once red1 no deleting ] -> [ counting red2 counted ]\nlate [ once red2 no deleting ] -> [ counting red3 counted ]\nlate [ once red3 no deleting ] -> [ counting red4 counted ]\nlate [ once red4 no deleting ] -> [ counting red5 counted ]\nlate [ once red5 no deleting ] -> [ counting red6 counted ]\nlate [ once red6 no deleting ] -> [ counting red7 counted ]\nlate [ once red7 no deleting ] -> [ counting red8 counted ]\nlate [ once red8 no deleting ] -> [ counting red9 counted ]\n\nlate [once]->[]\n\nlate [ counting red no deleting | no counting red_other no deleting ] -> [ counting red | counting red ]\nlate [counting]->[]\n\nendloop\n\n\nrandom late [ deleting red1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting red2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting red3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting red4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting red5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting red6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting red7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting red8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting red9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting blue1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting blue2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting blue3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting blue4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting blue5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting blue6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting blue7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting blue8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting blue9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting red1 | deleting blue1 ] -> [ wall wall1 deleted | wall wall1 deleted ] again sfx0\n+ late [ deleting red2 | deleting blue2 ] -> [ wall wall2 deleted | wall wall2 deleted ] again sfx0\n+ late [ deleting red3 | deleting blue3 ] -> [ wall wall3 deleted | wall wall3 deleted ] again sfx0\n+ late [ deleting red4 | deleting blue4 ] -> [ wall wall4 deleted | wall wall4 deleted ] again sfx0\n+ late [ deleting red5 | deleting blue5 ] -> [ wall wall5 deleted | wall wall5 deleted ] again sfx0\n+ late [ deleting red6 | deleting blue6 ] -> [ wall wall6 deleted | wall wall6 deleted ] again sfx0\n+ late [ deleting red7 | deleting blue7 ] -> [ wall wall7 deleted | wall wall7 deleted ] again sfx0\n+ late [ deleting red8 | deleting blue8 ] -> [ wall wall8 deleted | wall wall8 deleted ] again sfx0\n+ late [ deleting red9 | deleting blue9 ] -> [ wall wall9 deleted | wall wall9 deleted ] again sfx0\n\nlate [counted]->[]\n\n\nlate [ red1 | blue1 ] -> [ deleting red1 | deleting blue1 ] again sfx1 \nlate [ red2 | blue2 ] -> [ deleting red2 | deleting blue2 ] again sfx1 \nlate [ red3 | blue3 ] -> [ deleting red3 | deleting blue3 ] again sfx1 \nlate [ red4 | blue4 ] -> [ deleting red4 | deleting blue4 ] again sfx1 \nlate [ red5 | blue5 ] -> [ deleting red5 | deleting blue5 ] again sfx1 \nlate [ red6 | blue6 ] -> [ deleting red6 | deleting blue6 ] again sfx1 \nlate [ red7 | blue7 ] -> [ deleting red7 | deleting blue7 ] again sfx1 \nlate [ red8 | blue8 ] -> [ deleting red8 | deleting blue8 ] again sfx1 \nlate [ red9 | blue9 ] -> [ deleting red9 | deleting blue9 ] again sfx1 \n\nlate [ deleting red1 | no deleting red1 ] -> [ deleting red1 | deleting red1 ]\nlate [ deleting red2 | no deleting red2 ] -> [ deleting red2 | deleting red2 ]\nlate [ deleting red3 | no deleting red3 ] -> [ deleting red3 | deleting red3 ]\nlate [ deleting red4 | no deleting red4 ] -> [ deleting red4 | deleting red4 ]\nlate [ deleting red5 | no deleting red5 ] -> [ deleting red5 | deleting red5 ]\nlate [ deleting red6 | no deleting red6 ] -> [ deleting red6 | deleting red6 ]\nlate [ deleting red7 | no deleting red7 ] -> [ deleting red7 | deleting red7 ]\nlate [ deleting red8 | no deleting red8 ] -> [ deleting red8 | deleting red8 ]\nlate [ deleting red9 | no deleting red9 ] -> [ deleting red9 | deleting red9 ]\n\n\nlate [ deleting blue1 | no deleting blue1 ] -> [ deleting blue1 | deleting blue1 ]\nlate [ deleting blue2 | no deleting blue2 ] -> [ deleting blue2 | deleting blue2 ]\nlate [ deleting blue3 | no deleting blue3 ] -> [ deleting blue3 | deleting blue3 ]\nlate [ deleting blue4 | no deleting blue4 ] -> [ deleting blue4 | deleting blue4 ]\nlate [ deleting blue5 | no deleting blue5 ] -> [ deleting blue5 | deleting blue5 ]\nlate [ deleting blue6 | no deleting blue6 ] -> [ deleting blue6 | deleting blue6 ]\nlate [ deleting blue7 | no deleting blue7 ] -> [ deleting blue7 | deleting blue7 ]\nlate [ deleting blue8 | no deleting blue8 ] -> [ deleting blue8 | deleting blue8 ]\nlate [ deleting blue9 | no deleting blue9 ] -> [ deleting blue9 | deleting blue9 ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nno coloured\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 9\n\n(improved version?)\n.....######\n.....#....#\n....##..@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n\nmessage Level 2 of 9\n\n#######...\n#@#@#@#...\n#@#@#@#...\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n.....#p..#\n.....#####\n\n\n\n\n\nmessage Level 3 of 9\n(ok? not too hard)\n#######.\n#.....#.\n#..*.@#.\n####.###\n.#.....#\n.#.*.@.#\n.#..p..#\n####.###\n#..*.@#.\n#.....#.\n#######.\n\n\n\nmessage Level 4 of 9\n#######..\n#.....#..\n#...@.#..\n#...@.###\n#...@.#@#\n#.....#.#\n#.p..***#\n#.....#.#\n#...@.#.#\n#...@...#\n#...@.###\n#.....#..\n#######..\n\n\nmessage Level 5 of 9\n\n(Actually tricky? or a bit overwhelming maybe?)\n(requires silly batching. i like this)\n#########\n#...#...#\n#..***..#\n#.......#\n####.####\n#.......#\n#..@@@p.#\n#...#...#\n#########\n\nmessage Level 6 of 9\n(possibly ok? IDK? WE?)\n#########\n#.......#\n#.*..@.*#\n#..**..@#\n#..**.@@#\n#.*..*..#\n#..p....#\n#########\n\nmessage Level 7 of 9\n(p ok? solution involves knowing something, but maybe you just stumble through it without knowing the thing)\n\n#####..\n#@@@#..\n#@@@##.\n#@#.@##\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\nmessage Level 8 of 9\n(p. ok level)\n###########\n#.........#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.p.......#\n#.........#\n###########\n\nmessage Level 9 of 9\n(ok final level maybe?)\n(fixed version?)\n...####....\n####..#....\n#@..*.#....\n###...#....\n..#.*#####.\n..#.*#.p.#.\n..#****@@#.\n..#.@@...#.\n..#.@@...#.\n..#.#@...##\n..#.......#\n..####....#\n.....######\n\nmessage Congratulations. You have mastered all the numbers, from 1 up to 9!\n\n(DISCARD PILE::::)\n\n(BAD IDEAS FOR FIRST LEVEL END )\n(thje better version. maybe ok early level?)\n( ####### )\n( #..#..# )\n( #..*.p# )\n( #..*..# )\n( #.....# )\n( ###.### )\n( #.....# )\n( #..@..# )\n( #..@..# )\n( #..#..# )\n( ####### )\n\n\n( ########## )\n( #@...##### )\n( ##...##### )\n( ##...##### )\n( ##@..##### )\n( ###...#### )\n( ###...#### )\n( ###@..#### )\n( ####.....# )\n( ####.***.# )\n( ####..p..# )\n( ########## )\n\n\n( audio test level)\n( ############# )\n( #..@........# )\n( #..@....@@..# )\n( #..@....@@@.# )\n( #..@.@..@@@.# )\n( #.*....*....# )\n( #..*.*..***.# )\n( #..*....***.# )\n( #..*....*...# )\n( #....p......# )\n( #...........# )\n( ############# )\n\n(level 2/3?)\n( ########## )\n( #........# )\n( #.**.@@@.# )\n( #........# )\n( #...p....# )\n( #........# )\n( ########## )\n\n(ok early level? meh other level does this but better IMO)\n( ###### )\n( #....# )\n( #.@.*# )\n( #.@.*# )\n( ###.## )\n( #....# )\n( #..p.# )\n( #....# )\n( ###.## )\n( #.@.*# )\n( #.@.*# )\n( #....# )\n( ###### )\n\n(ok level I think?)\n( ############# )\n( ####@.*...### )\n( ######*##.### )\n( #.....*.....# )\n( #.@@@...@@@.# )\n( #...........# )\n( #.....p.....# )\n( #...........# )\n( ############# )\n\n(\n\n(needs a few more steps of indirection on the right)\n#########\n#####*###\n#...#*###\n#.**@*###\n#.......#\n#@@..@@.#\n####p...#\n#########\n\n##############\n#....##......#\n#....##*.....#\n#.....#*.....#\n#...**@*.....#\n#............#\n###@@....@@..#\n######.p.....#\n######.......#\n##############\n\n###########\n#**@@***@@#\n#**..***..#\n#.........#\n#.........#\n#...@.@.@.#\n#.p.......#\n#...@.@.@.#\n#.........#\n###########\n\n##############\n#...#........#\n*.@.#........#\n#.#####**....#\n#.##**@**....#\n#............#\n####...@.@.@.#\n...#.p@.@.@..#\n...#.........#\n...###########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##....p..#\n##########\n\n\n(damnit a shortcut/trivialisation)\n##########\n####..####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n#@..######\n##..######\n##.*######\n##..#.p.##\n##****@@##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n(pedagogical version of other level)\n#############\n#@@*#@@#@####\n#@@*#@*#@####\n###*##*#*####\n###.......*.#\n###.......*.#\n#########.*.#\n#########p..#\n#############\n\n##########\n#........#\n#...@....#\n#........#\n#...**.@.#\n#.@.**...#\n#........#\n#.p..@...#\n#........#\n##########\n\n\n.#########.\n.#@.######.\n.#..######.\n.#****...#.\n.#*.**.p.#.\n###.**...#.\n#...@@*@@#.\n#...@@...#.\n#...@@...#.\n#@@*@@*@@#.\n#...*....#.\n#...@....#.\n#...@....#.\n##########.\n\n##########\n##@.##...#\n##..##.p.#\n###***...#\n##..***@@#\n##..@@...#\n##..@@...#\n##...@...#\n##.......#\n##.......#\n##########\n\n#########\n#@.##...#\n#..##.p.#\n##****@@#\n#..@@...#\n#...@...#\n#.......#\n#.......#\n#########\n\n##########\n####*#####\n#@.#*.p.##\n##****@@##\n##.@@...*#\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n\n\n##########\n#..#######\n#..#######\n#..##.p.##\n##****@@##\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n############\n#....#######\n#....#*#####\n#....#*.p.##\n#*##****@@##\n#.##.@@...*#\n#@##.@@...##\n####.#@...##\n####.......#\n####.......#\n############\n\n.#########...\n.#..######...\n.#..######...\n.##......#...\n.#.....p.#...\n##.......#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n##########...\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.......#\n#......*#\n#.....@*#\n######.##\n#....#.*#\n#.p...@.#\n#.......#\n#########\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.p.....#\n#......*#\n#.....@*#\n#.......#\n#....@.*#\n#.......#\n#########\n\n(is this funnier than above? I don't think so but I@m not sure)\n###########\n#.........#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.p.......#\n#.........#\n###########\n\n(technically harder than above but also more work)\n################\n#..............#\n#..............#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#.p............#\n#..............#\n################\n\n\n#################\n#...............#\n#...............#\n#..@@@.@@@.@@@..#\n#...*...*...*...#\n#..@@@.@@@.@@@..#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#...............#\n#################\n\n#################\n#...............#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n...............\n...............\n..@@@.@@@.@@@..\n...*...*...*...\n..@@@.@@@.@@@..\n...............\n...............\n.......p.......\n...............\n...............\n\n..........@.@...\n..........@.@...\n..........@*@...\n.......@@@*.*@@@\n..........@.@...\n..........@.@...\n..........@.@...\n................\n................\n\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n########\n#......#\n#......#\n#..@.*.#\n#......#\n###..*##\n####.###\n#p.@...#\n#......#\n####.###\n#......#\n#......#\n########\n\n\n...################\n..................#\n....@.............#\n.....@............#\n.@.**.@...........#\n..@.**.@..........#\n...@.**...........#\n....@.**..........#\n......p*.@........#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#################\n\n.........\n.........\n.#.#.#.#.\n.@.*.@.*.\n.#.#.#.#.\n.@.*.@.*.\n*#@#*#@#*\n.........\n..p......\n\n\n..#.#.#.#..\n...........\n..#.#.#.#..\n...........\n..#.#.#.#..\n...p.......\n\n.#.#.#.#.\n.@.*.*.@.\n.#.#.#.#.\n.@.*.*.@.\n*#@#.#@#*\n..p......\n\n(meh)\n#########\n#...@####\n#..*.@###\n#@..*.@##\n##@..*.@#\n###@..*.#\n####@p..#\n#########\n\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n(meeeeh. I think not great? too long but also if short too randomo)\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n###########\n###########\n##...@#####\n##..*.@####\n##@..*.@###\n###@..*.###\n####@p....#\n#####.***.#\n#####.....#\n###########\n\n#########\n#...@####\n#..*.@###\n#@..*.###\n##@..*.##\n####..*.#\n#####...#\n######.p#\n#########\n\n...#.......\n....#......\n....@#.....\n.....@#....\n#@....@#...\n.#@..*.@#..\n..#@..*....\n...#@..*...\n....#.*.*..\n.......*...\n......p.*..\n.........*.\n...........\n\n( (kinda different from the above) )\n( (trivial) )\n( ####### )\n( #....## )\n( #....## )\n( #.*.@## )\n( ###.### )\n( #.....# )\n( #.*.@.# )\n( #..p..# )\n( ###.### )\n( #.*.@## )\n( #....## )\n( #....## )\n( ####### )\n\n\n#######\n#....##\n#....##\n#....##\n#....##\n#.*.@##\n###.###\n#.....#\n#.*.@.#\n#p....#\n###.###\n#.*.@##\n#....##\n#....##\n#....##\n#....##\n#######\n\n#######\n#....##\n#....##\n#....##\n#.@.*##\n#.@.*##\n###.###\n#.....#\n#.@.*.#\n#p....#\n###.###\n#.@.*##\n#.@.*##\n#....##\n#....##\n#....##\n#######\n\n###########\n###@.*..###\n#####*#.###\n.....*.....\n.@@@...@@@.\n.....p.....\n...........\n...........\n\n#############\n####.....####\n######.#.####\n#...........#\n#...........#\n#.....p.....#\n#...........#\n#############\n\n#######\n#.....#\n#.***.#\n#.....#\n###.###\n#.....#\n#.@@@p#\n#.....#\n#######\n\n....####\n....#..#\n....#..#\n#####..#\n#...#..#\n#..@..*#\n#...#p.#\n#####..#\n#..@..*#\n#......#\n######.#\n....#@.#\n....#..#\n....#.*#\n....#..#\n....####\n\n.#######.\n.#.....#.\n.#..*..#.\n.#.*.*.#.\n.#.*.*.#.\n.#.....#.\n.#.....#.\n###.#.###\n#@@.#.@@#\n#@@.#.@@#\n#@..#..@#\n#@.*#*.@#\n#@p.#..@#\n#########\n\n@....*\n.@..*.\n......\n.@..*.\n..p...\n\n..........\n.@@....**.\n.@@....**.\n...@..*...\n..........\n...@..*...\n.....p....\n..........\n\n\n(ok partition problem)\n(nah broken)\n.........\n.........\n.@.....@.\n.@.#*#.@.\n.@..*..@.\n.........\n....p....\n.........\n\n...............\n....@..#..@....\n.#..@.#*#.@..#.\n#*..@..*..@..*#\n.#..@.....@..#.\n.......p.......\n...............\n\n....####.....\n...#@.*......\n....##*#.....\n......*......\n.............\n..@@@.p.@@@..\n.............\n.............\n\n#######\n#.....#\n#.#.#.#\n#.@.*.#\n###.###\n.......\np.@.*..\n.......\n###.###\n#.@.*.#\n#.#.#.#\n#.....#\n#######\n\n######\n#...##\n#...##\n#...##\n#.@.*#\n###.##\n......\np.@.*.\n......\n###.##\n#.@.*#\n#...##\n#...##\n#...##\n######\n\n(trivial)\n(\n.........\n.........\n..**.@...\n.........\n....p....\n.........\n)\n\n\n\n............\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..*.*..*.*..\n.....p......\n............\n\n...........\n.....@.....\n.....@.....\n.....@.....\n.....@.....\n.....*.....\n.@@@@*@@@@.\n.....*.....\n.@@@@.@@@@.\n.....*.....\n...........\n.....p.....\n...........\n\n...........\n...........\n..###.###..\n..#*....#..\n..#.*...#..\n..###.###..\n..p.@.@....\n...........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n..........\n..........\n..........\n\n..........\n..........\n..####....\n..#*.@..p.\n..#.*@....\n..####....\n..........\n..........\n\n..........\n..........\n..####....\n..#*..@.p.\n..#.*.@...\n..####....\n..........\n..........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n####..####\n..........\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n..........\n\n.########.\n.#......#.\n.#.*..@.#.\n.#..*.@.#.\n####..####\n...p......\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n\n@@@@@@@@\n###@####\n........\n........\n.*.*.*..\n........\n.*.*.*..\n........\n.*.*.p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n...*....\n..***...\n...*....\n..***...\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n..***...\n..*.*...\n..***...\n........\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n..*.*...\n........\n..*.*...\n...@....\n..*.*...\n........\n..*.*p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n........\n........\n...*....\n..*.*...\n...*....\n..*.*...\n.*.@.*..\n...p....\n###*####\n########\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n#######\n##...##\n#.....#\n###.###\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#..p..#\n###.###\n#######\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n##################\n#####@#@#@########\n#####@#@#@########\n#####*#*#*########\n#@.........*....p#\n#..............*.#\n##############.*.#\n##############.*.#\n##############...#\n##################\n\n\n##############\n#@#@#@########\n#@#@#@########\n#*#*#*########\n#......*.p...#\n#..........*.#\n##########.*.#\n##########...#\n##############\n\n##########\n#@#@#@####\n#@#@#@####\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n######p..#\n##########\n\n#############\n###@#@#@#####\n###@#@#@#####\n###*#*#*#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#############\n###@#@#@#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#########\n###@#####\n#@....*p#\n#.....*.#\n#########\n\n...........\n...........\n....@@@....\n...........\n..@.***.@..\n..@.***.@..\n..@.***.@..\n...........\n.....p.....\n...........\n...........\n\n###########\n#.........#\n#.#..@..#.#\n#...@.@...#\n#..@***@..#\n#...***...#\n#..@***@..#\n#...@.@...#\n#.#..p..#.#\n#.........#\n###########\n\n#########\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(meeeh but in a pinch! but really, don't add it)\n#########\n##.....##\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(aaa kinda ok? has some stuff going on)\n#########\n#.......#\n#.*.@.*.#\n#..*@*..#\n#.@@*@@.#\n#..*@*..#\n#.*.@.*.#\n#...p...#\n#########\n\n#########\n#.......#\n#.@..**.#\n#.....*.#\n#..@....#\n#....@..#\n#.**....#\n#..*p.@.#\n#.....@.#\n#.@.*.@.#\n#.......#\n#########\n\n(doesn't have enough personality)\n#########\n#......p#\n#..@.@..#\n#.*.*.@.#\n#....*..#\n#.**..@.#\n#.**.*..#\n#.......#\n#########\n\n\n#########\n...#*#...\n.........\n##..*..##\n###...###\n####p####\n###...###\n##..@..##\n.........\n...#@#...\n#########\n\n\n\n#..#..#\n#..*.p#\n#.....#\n#..*..#\n###.###\n#..@..#\n#.....#\n#..@..#\n#..#..#\n\n...........\n.....*.....\n...........\n.....*.....\n....*.*....\n...*@@@*...\n....*.*....\n.....*.....\n...........\n.....p.....\n...........\n\n.......\n..*.*..\n.*@@@*.\n..*.*..\n...*...\n.......\n...p...\n.......\n)\n(\n....\n....\n....\n\n....\n....\n....\n....\n\n\n....\n....\n....\n....\n....\n\n\n.....\n.....\n.....\n.....\n.....\n\n......\n......\n......\n......\n......\n......\n\n##########\n#........#\n#.#....#.#\n#..*..*..#\n#...**..@#\n#...**.@@#\n#..*..@..#\n#.#.p*.#.#\n#.......##\n##########\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n##########\n\n###########\n#....#....#\n#.**.#.@@.#\n#.*..#..@.#\n#.........#\n####.p.####\n#.........#\n#.@..#..*.#\n#.@@.#.**.#\n#....#....#\n###########\n\n(solvable which is nice but also not good which is not nice)\n##########\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#........#\n#...p....#\n##########\n\n##########################\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#........................#\n#...........p............#\n##########################\n\n##########################\n#........................#\n#........................#\n#.........*..p...........#\n#........@@..............#\n#........***.............#\n#.......@@@@.............#\n#.......*****............#\n#......@@@@@@............#\n#......*******...........#\n#.....@@@@@@@@...........#\n#........................#\n#........................#\n#........................#\n#........................#\n#........................#\n##########################\n\n###########\n#.........#\n#.........#\n#..*@@@@..#\n#..*...*..#\n#..*.*.*..#\n#..*.@@*..#\n#..*......#\n#..@@@....#\n#.........#\n#....p....#\n#.........#\n###########\n\n####################\n#..................#\n#..................#\n#..................#\n#..................#\n#..***........@@@..#\n#..*.*........@.@..#\n#..***........@@@..#\n#..................#\n#..................#\n#.....p............#\n#..................#\n####################\n\n###########\n#.........#\n#.*.@@@@@.#\n#.*.@...@.#\n#.*...*.@.#\n#.*****.@.#\n#.........#\n#.........#\n#....p....#\n###*###@###\n###########\n\n...........\n##@@@@@@@##\n#####@#####\n#.........#\n#....*....#\n#...*.*...#\n#..*.@.*..#\n#...*.*...#\n#....*....#\n#.........#\n#....p....#\n#####*#####\n###########\n\n#######\n#@@@@@#\n##@@@##\n#.p...#\n#..@..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#.....#\n###*###\n#######\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n..###..\n.##*##.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n##@@@##\n##@@@#.\n.#####.\n\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n###.###\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n#######\n#*.*.*#\n#.*.*.#\n#*.*.*#\n#.@.@.#\n#@.@.@#\n#.@.@.#\n#..@..#\n#.....#\n#..p..#\n#.....#\n#######\n\n\n\n(ACTUAL CANDIDATE LEVELS)\n\n\n\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#.........#\n#.........#\n#....p....#\n#.........#\n###########\n\n\n(it is a level, but not amazing? but maybe ok? but I don't know? also repeats a mechanism from another level? but maybe better?)\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#....p....#\n#.........#\n#####.#####\n####*.***##\n#####****##\n###########\n\n##########\n#........#\n#.....p..#\n#........#\n#.....####\n#..#.....#\n#..#@....#\n#..#.....#\n##########\n\n\n\nmessage level 1 of 10\n\n####..\n#..#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 2 of 10\n\n######\n#....#\n#.#P.#\n#.*@.#\n#..@.#\n#....#\n######\n\nmessage level 3 of 10\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#....#P.#\n#########\n\nmessage level 4 of 10\n\n########\n#......#\n#..@@*P#\n#......#\n#####..#\n....####\n\nmessage level 5 of 10\n\n.#######\n.#.....#\n.#..*..#\n##.*P*.#\n#...*..#\n#......#\n########\n\nmessage level 6 of 10\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#......#\n#...########\n#####.......\n\n..######....\n###..**#####\n#.......@..#\n#.#..**#@@.#\n#......#.p.#\n############\n\nmessage level 7 of 10\n\n#######\n#.....#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..P..#\n#######\n\nmessage level 8 of 10\n\n..######\n..#...P#\n..#.**.#\n####.###\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\nmessage level 9 of 10\n\n#####.\n#...##\n#P**.#\n##...#\n.##..#\n..##.#\n...###\n\nmessage level 10 of 10\n\n......#####\n......#...#\n......#.#.#\n#######.#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\nmessage congratulations!\n\n\n#########\n#.......#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#...p...#\n#########\n\n......#####\n......#...#\n#######.#.#\n#.*.*.*.*.#\n#.#.#.#.###\n#....p..#..\n####@@@@#..\n...######..\n\n........#####\n........#...#\n#########.#.#\n#...*.*.*.*.#\n#.#.#.#.#.###\n#......p..#..\n######@@@@#..\n.....######..\n\n..........#####\n..........#...#\n..#########.#.#\n.##.*.@.@.@...#\n##*.#.#.#.#.###\n#*......p.....#\n###########.#.#\n..........#...#\n..........#####\n\n.......#####\n.......#...#\n########.#.#\n#*.....*.*.#\n##.#.#.#.###\n#@.@.@p....#\n########.#.#\n.......#...#\n.......#####\n)\n\n(\n..#########\n..#.......#\n..#.##..@.#\n..#.#@....#\n..#.....*.#\n..#.#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n \n.....######\n....##....#\n....#@..@.#\n....#.....#\n....#*#.*.#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n....#######\n....#.....#\n....#...@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n)\n\n", [1, 1, 1, 1, 3, 3, 0, 0, 3, 0, 3, 3, 3, 0, 0, 1, 1, 1, 2, 2, 2, 2, 3, 2, 1, 1, 3], "background:0,0,0,0,0,0,background wall:1,1,1,1,1,\n1,0,0,0,0,0,0,1,0,0,0,\n0,1,0,0,0,0,0,0,1,0,background wall wall3:2,\n2,2,1,0,0,0,0,0,0,1,0,\n2,2,2,1,0,0,1,1,1,1,1,\n1,1,0,1,1,1,1,1,background blue1:3,0,0,\n0,0,0,background player:4,0,1,1,0,0,0,0,\n1,0,1,0,0,0,1,1,0,0,0,\n0,0,0,1,0,0,0,1,1,0,background wall wall1:5,\n5,0,0,0,1,1,1,1,1,1,0,\n0,0,0,0,0,1,0,0,0,0,1,\n1,1,1,1,1,1,1,0,0,0,0,\n", 1, "1645545097375.3352"] + ], + [ + "Double-Entry Bookkeeping Simulator#2", + ["title Double-Entry Bookkeeping Simulator\nauthor increpare\nhomepage www.increpare.com\n\n( verbose_logging )\nrun_rules_on_level_start\n\nbackground_color #404040\n\nagain_interval 0.1\n\n\n( Svelte Version für Simulieren \nhttps://www.puzzlescript.net/editor.html?hack=a52aae823542d184b57fc3301627a81a \n)\n\n========\nOBJECTS\n========\n\nBackground\n#404040\n\n\n\nWall\n#000000\n\n\nPlayer\ntransparent #ffffff\n01110\n01010\n11111\n00100\n01010\n\nblue_raw\n#1e88e5\n\n\nblue1 \n#003461 #1e88e5\n00100\n01100\n00100\n00100\n01110\n\nblue2 \n#003461 #1e88e5\n01100\n00010\n00100\n01000\n01110\n\nblue3 \n#003461 #1e88e5\n01100\n00010\n01100\n00010\n01100\n\nblue4 \n#003461 #1e88e5\n01000\n01000\n01010\n01110\n00010\n\nblue5 \n#003461 #1e88e5\n01110\n01000\n01100\n00010\n01100\n\nblue6 \n#003461 #1e88e5\n00100\n01000\n01100\n01010\n00100\n\nblue7 \n#003461 #1e88e5\n01110\n00010\n00010\n00100\n00100\n\nblue8 \n#003461 #1e88e5\n00100\n01010\n00100\n01010\n00100\n\nblue9 \n#003461 #1e88e5\n00110\n01010\n00110\n00010\n00010\n\nred_raw\n#d81b60\n\nred1 \n#56001f #d81b60\n00100\n01100\n00100\n00100\n01110\n\nred2 \n#56001f #d81b60\n01100\n00010\n00100\n01000\n01110\n\nred3 \n#56001f #d81b60\n01100\n00010\n01100\n00010\n01100\n\nred4 \n#56001f #d81b60\n01000\n01000\n01010\n01110\n00010\n\nred5 \n#56001f #d81b60\n01110\n01000\n01100\n00010\n01100\n\nred6 \n#56001f #d81b60\n00100\n01000\n01100\n01010\n00100\n\nred7 \n#56001f #d81b60\n01110\n00010\n00010\n00100\n00100\n\nred8 \n#56001f #d81b60\n00100\n01010\n00100\n01010\n00100\n\nred9 \n#56001f #d81b60\n00110\n01010\n00110\n00010\n00010\n\nonce\ntransparent\n\ncounted\nwhite\n.....\n.....\n.....\n...0.\n.....\n\ncounting\nyellow\n.....\n.0...\n.....\n.....\n.....\n\ndeleting\nyellow\n00000\n0...0\n0...0\n0...0\n00000\n\ndeleted\norange\n.....\n.....\n...0.\n.....\n.....\n\nwall1\n#000000 #1f1f1f\n00100\n01100\n00100\n00100\n01110\n\nwall2\n#000000 #1f1f1f\n01100\n00010\n00100\n01000\n01110\n\nwall3\n#000000 #1f1f1f\n01100\n00010\n01100\n00010\n01100\n\nwall4\n#000000 #1f1f1f\n01000\n01000\n01010\n01110\n00010\n\nwall5\n#000000 #1f1f1f\n01110\n01000\n01100\n00010\n01100\n\nwall6\n#000000 #1f1f1f\n00100\n01000\n01100\n01010\n00100\n\nwall7\n#000000 #1f1f1f\n01110\n00010\n00010\n00100\n00100\n\nwall8\n#000000 #1f1f1f\n00100\n01010\n00100\n01010\n00100\n\nwall9\n#000000 #1f1f1f\n00110\n01010\n00110\n00010\n00010\n\n=======\nLEGEND\n=======\n\nwalllabel = wall1 or wall2 or wall3 or wall4 or wall5 or wall6 or wall7 or wall8 or wall9\nred = red_raw or red1 or red2 or red3 or red4 or red5 or red6 or red7 or red8 or red9\n\nblue = blue_raw or blue1 or blue2 or blue3 or blue4 or blue5 or blue6 or blue7 or blue8 or blue9\n\nblue_other = blue\nred_other = red\n\ncoloured = red or blue\n\npushable = red or blue\n. = Background\n# = Wall\nP = Player\n* = red_raw\n@ = blue_raw\n\nobstacle = pushable or wall or player\n\n=======\nSOUNDS\n=======\n\nred move 76964107\nblue move 73247707\nsfx0 66382107 (destroy)\nsfx1 49518300 (destroy start)\n\nstartlevel 46354708\nendlevel 70029700\nstartgame 40047300\n\n================\nCOLLISIONLAYERS\n================\n\nonce, counted\ncounting\ndeleted\nBackground\nPlayer, Wall, pushable\ndeleting\nwalllabel\n\n======\nRULES\n======\n\n[ moving player ] [ deleted ] -> [ moving player ] [ ]\n\n[ blue no deleting ] -> [ blue_raw ]\n[ red no deleting ] -> [ red_raw ]\n\n[ > Player | pushable ] -> [ > Player | > pushable ]\n\n\nstartloop\n\nlate [ player no once no deleting ] [ blue no counted no deleting ] -> [ player once ] [ once blue ]\n\nlate [ once blue_raw no deleting ] -> [ counting blue1 counted ]\nlate [ once blue1 no deleting ] -> [ counting blue2 counted ]\nlate [ once blue2 no deleting ] -> [ counting blue3 counted ]\nlate [ once blue3 no deleting ] -> [ counting blue4 counted ]\nlate [ once blue4 no deleting ] -> [ counting blue5 counted ]\nlate [ once blue5 no deleting ] -> [ counting blue6 counted ]\nlate [ once blue6 no deleting ] -> [ counting blue7 counted ]\nlate [ once blue7 no deleting ] -> [ counting blue8 counted ]\nlate [ once blue8 no deleting ] -> [ counting blue9 counted ]\n\nlate [once]->[]\n\nlate [ counting blue no deleting | no counting blue_other no deleting ] -> [ counting blue | counting blue ]\nlate [counting]->[]\n\nendloop\n\n\nstartloop\nlate [ player no once ] [ red no counted no deleting ] -> [ player once ] [ once red ]\n\nlate [ once red_raw no deleting ] -> [ counting red1 counted ]\nlate [ once red1 no deleting ] -> [ counting red2 counted ]\nlate [ once red2 no deleting ] -> [ counting red3 counted ]\nlate [ once red3 no deleting ] -> [ counting red4 counted ]\nlate [ once red4 no deleting ] -> [ counting red5 counted ]\nlate [ once red5 no deleting ] -> [ counting red6 counted ]\nlate [ once red6 no deleting ] -> [ counting red7 counted ]\nlate [ once red7 no deleting ] -> [ counting red8 counted ]\nlate [ once red8 no deleting ] -> [ counting red9 counted ]\n\nlate [once]->[]\n\nlate [ counting red no deleting | no counting red_other no deleting ] -> [ counting red | counting red ]\nlate [counting]->[]\n\nendloop\n\n\nrandom late [ deleting red1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting red2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting red3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting red4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting red5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting red6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting red7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting red8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting red9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting blue1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting blue2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting blue3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting blue4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting blue5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting blue6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting blue7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting blue8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting blue9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting red1 | deleting blue1 ] -> [ wall wall1 deleted | wall wall1 deleted ] again sfx0\n+ late [ deleting red2 | deleting blue2 ] -> [ wall wall2 deleted | wall wall2 deleted ] again sfx0\n+ late [ deleting red3 | deleting blue3 ] -> [ wall wall3 deleted | wall wall3 deleted ] again sfx0\n+ late [ deleting red4 | deleting blue4 ] -> [ wall wall4 deleted | wall wall4 deleted ] again sfx0\n+ late [ deleting red5 | deleting blue5 ] -> [ wall wall5 deleted | wall wall5 deleted ] again sfx0\n+ late [ deleting red6 | deleting blue6 ] -> [ wall wall6 deleted | wall wall6 deleted ] again sfx0\n+ late [ deleting red7 | deleting blue7 ] -> [ wall wall7 deleted | wall wall7 deleted ] again sfx0\n+ late [ deleting red8 | deleting blue8 ] -> [ wall wall8 deleted | wall wall8 deleted ] again sfx0\n+ late [ deleting red9 | deleting blue9 ] -> [ wall wall9 deleted | wall wall9 deleted ] again sfx0\n\nlate [counted]->[]\n\n\nlate [ red1 | blue1 ] -> [ deleting red1 | deleting blue1 ] again sfx1 \nlate [ red2 | blue2 ] -> [ deleting red2 | deleting blue2 ] again sfx1 \nlate [ red3 | blue3 ] -> [ deleting red3 | deleting blue3 ] again sfx1 \nlate [ red4 | blue4 ] -> [ deleting red4 | deleting blue4 ] again sfx1 \nlate [ red5 | blue5 ] -> [ deleting red5 | deleting blue5 ] again sfx1 \nlate [ red6 | blue6 ] -> [ deleting red6 | deleting blue6 ] again sfx1 \nlate [ red7 | blue7 ] -> [ deleting red7 | deleting blue7 ] again sfx1 \nlate [ red8 | blue8 ] -> [ deleting red8 | deleting blue8 ] again sfx1 \nlate [ red9 | blue9 ] -> [ deleting red9 | deleting blue9 ] again sfx1 \n\nlate [ deleting red1 | no deleting red1 ] -> [ deleting red1 | deleting red1 ]\nlate [ deleting red2 | no deleting red2 ] -> [ deleting red2 | deleting red2 ]\nlate [ deleting red3 | no deleting red3 ] -> [ deleting red3 | deleting red3 ]\nlate [ deleting red4 | no deleting red4 ] -> [ deleting red4 | deleting red4 ]\nlate [ deleting red5 | no deleting red5 ] -> [ deleting red5 | deleting red5 ]\nlate [ deleting red6 | no deleting red6 ] -> [ deleting red6 | deleting red6 ]\nlate [ deleting red7 | no deleting red7 ] -> [ deleting red7 | deleting red7 ]\nlate [ deleting red8 | no deleting red8 ] -> [ deleting red8 | deleting red8 ]\nlate [ deleting red9 | no deleting red9 ] -> [ deleting red9 | deleting red9 ]\n\n\nlate [ deleting blue1 | no deleting blue1 ] -> [ deleting blue1 | deleting blue1 ]\nlate [ deleting blue2 | no deleting blue2 ] -> [ deleting blue2 | deleting blue2 ]\nlate [ deleting blue3 | no deleting blue3 ] -> [ deleting blue3 | deleting blue3 ]\nlate [ deleting blue4 | no deleting blue4 ] -> [ deleting blue4 | deleting blue4 ]\nlate [ deleting blue5 | no deleting blue5 ] -> [ deleting blue5 | deleting blue5 ]\nlate [ deleting blue6 | no deleting blue6 ] -> [ deleting blue6 | deleting blue6 ]\nlate [ deleting blue7 | no deleting blue7 ] -> [ deleting blue7 | deleting blue7 ]\nlate [ deleting blue8 | no deleting blue8 ] -> [ deleting blue8 | deleting blue8 ]\nlate [ deleting blue9 | no deleting blue9 ] -> [ deleting blue9 | deleting blue9 ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nno coloured\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 9\n\n(improved version?)\n.....######\n.....#....#\n....##..@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n\nmessage Level 2 of 9\n\n#######...\n#@#@#@#...\n#@#@#@#...\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n.....#p..#\n.....#####\n\n\n\n\n\nmessage Level 3 of 9\n(ok? not too hard)\n#######.\n#.....#.\n#..*.@#.\n####.###\n.#.....#\n.#.*.@.#\n.#..p..#\n####.###\n#..*.@#.\n#.....#.\n#######.\n\n\n\nmessage Level 4 of 9\n#######..\n#.....#..\n#...@.#..\n#...@.###\n#...@.#@#\n#.....#.#\n#.p..***#\n#.....#.#\n#...@.#.#\n#...@...#\n#...@.###\n#.....#..\n#######..\n\n\nmessage Level 5 of 9\n\n(Actually tricky? or a bit overwhelming maybe?)\n(requires silly batching. i like this)\n#########\n#...#...#\n#..***..#\n#.......#\n####.####\n#.......#\n#..@@@p.#\n#...#...#\n#########\n\nmessage Level 6 of 9\n(possibly ok? IDK? WE?)\n#########\n#.......#\n#.*..@.*#\n#..**..@#\n#..**.@@#\n#.*..*..#\n#..p....#\n#########\n\nmessage Level 7 of 9\n(p ok? solution involves knowing something, but maybe you just stumble through it without knowing the thing)\n\n#####..\n#@@@#..\n#@@@##.\n#@#.@##\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\nmessage Level 8 of 9\n(p. ok level)\n###########\n#.........#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.p.......#\n#.........#\n###########\n\nmessage Level 9 of 9\n(ok final level maybe?)\n(fixed version?)\n...####....\n####..#....\n#@..*.#....\n###...#....\n..#.*#####.\n..#.*#.p.#.\n..#****@@#.\n..#.@@...#.\n..#.@@...#.\n..#.#@...##\n..#.......#\n..####....#\n.....######\n\nmessage Congratulations. You have mastered all the numbers, from 1 up to 9!\n\n(DISCARD PILE::::)\n\n(BAD IDEAS FOR FIRST LEVEL END )\n(thje better version. maybe ok early level?)\n( ####### )\n( #..#..# )\n( #..*.p# )\n( #..*..# )\n( #.....# )\n( ###.### )\n( #.....# )\n( #..@..# )\n( #..@..# )\n( #..#..# )\n( ####### )\n\n\n( ########## )\n( #@...##### )\n( ##...##### )\n( ##...##### )\n( ##@..##### )\n( ###...#### )\n( ###...#### )\n( ###@..#### )\n( ####.....# )\n( ####.***.# )\n( ####..p..# )\n( ########## )\n\n\n( audio test level)\n( ############# )\n( #..@........# )\n( #..@....@@..# )\n( #..@....@@@.# )\n( #..@.@..@@@.# )\n( #.*....*....# )\n( #..*.*..***.# )\n( #..*....***.# )\n( #..*....*...# )\n( #....p......# )\n( #...........# )\n( ############# )\n\n(level 2/3?)\n( ########## )\n( #........# )\n( #.**.@@@.# )\n( #........# )\n( #...p....# )\n( #........# )\n( ########## )\n\n(ok early level? meh other level does this but better IMO)\n( ###### )\n( #....# )\n( #.@.*# )\n( #.@.*# )\n( ###.## )\n( #....# )\n( #..p.# )\n( #....# )\n( ###.## )\n( #.@.*# )\n( #.@.*# )\n( #....# )\n( ###### )\n\n(ok level I think?)\n( ############# )\n( ####@.*...### )\n( ######*##.### )\n( #.....*.....# )\n( #.@@@...@@@.# )\n( #...........# )\n( #.....p.....# )\n( #...........# )\n( ############# )\n\n(\n\n(needs a few more steps of indirection on the right)\n#########\n#####*###\n#...#*###\n#.**@*###\n#.......#\n#@@..@@.#\n####p...#\n#########\n\n##############\n#....##......#\n#....##*.....#\n#.....#*.....#\n#...**@*.....#\n#............#\n###@@....@@..#\n######.p.....#\n######.......#\n##############\n\n###########\n#**@@***@@#\n#**..***..#\n#.........#\n#.........#\n#...@.@.@.#\n#.p.......#\n#...@.@.@.#\n#.........#\n###########\n\n##############\n#...#........#\n*.@.#........#\n#.#####**....#\n#.##**@**....#\n#............#\n####...@.@.@.#\n...#.p@.@.@..#\n...#.........#\n...###########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##....p..#\n##########\n\n\n(damnit a shortcut/trivialisation)\n##########\n####..####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n#@..######\n##..######\n##.*######\n##..#.p.##\n##****@@##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n(pedagogical version of other level)\n#############\n#@@*#@@#@####\n#@@*#@*#@####\n###*##*#*####\n###.......*.#\n###.......*.#\n#########.*.#\n#########p..#\n#############\n\n##########\n#........#\n#...@....#\n#........#\n#...**.@.#\n#.@.**...#\n#........#\n#.p..@...#\n#........#\n##########\n\n\n.#########.\n.#@.######.\n.#..######.\n.#****...#.\n.#*.**.p.#.\n###.**...#.\n#...@@*@@#.\n#...@@...#.\n#...@@...#.\n#@@*@@*@@#.\n#...*....#.\n#...@....#.\n#...@....#.\n##########.\n\n##########\n##@.##...#\n##..##.p.#\n###***...#\n##..***@@#\n##..@@...#\n##..@@...#\n##...@...#\n##.......#\n##.......#\n##########\n\n#########\n#@.##...#\n#..##.p.#\n##****@@#\n#..@@...#\n#...@...#\n#.......#\n#.......#\n#########\n\n##########\n####*#####\n#@.#*.p.##\n##****@@##\n##.@@...*#\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n\n\n##########\n#..#######\n#..#######\n#..##.p.##\n##****@@##\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n############\n#....#######\n#....#*#####\n#....#*.p.##\n#*##****@@##\n#.##.@@...*#\n#@##.@@...##\n####.#@...##\n####.......#\n####.......#\n############\n\n.#########...\n.#..######...\n.#..######...\n.##......#...\n.#.....p.#...\n##.......#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n##########...\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.......#\n#......*#\n#.....@*#\n######.##\n#....#.*#\n#.p...@.#\n#.......#\n#########\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.p.....#\n#......*#\n#.....@*#\n#.......#\n#....@.*#\n#.......#\n#########\n\n(is this funnier than above? I don't think so but I@m not sure)\n###########\n#.........#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.p.......#\n#.........#\n###########\n\n(technically harder than above but also more work)\n################\n#..............#\n#..............#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#.p............#\n#..............#\n################\n\n\n#################\n#...............#\n#...............#\n#..@@@.@@@.@@@..#\n#...*...*...*...#\n#..@@@.@@@.@@@..#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#...............#\n#################\n\n#################\n#...............#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n...............\n...............\n..@@@.@@@.@@@..\n...*...*...*...\n..@@@.@@@.@@@..\n...............\n...............\n.......p.......\n...............\n...............\n\n..........@.@...\n..........@.@...\n..........@*@...\n.......@@@*.*@@@\n..........@.@...\n..........@.@...\n..........@.@...\n................\n................\n\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n########\n#......#\n#......#\n#..@.*.#\n#......#\n###..*##\n####.###\n#p.@...#\n#......#\n####.###\n#......#\n#......#\n########\n\n\n...################\n..................#\n....@.............#\n.....@............#\n.@.**.@...........#\n..@.**.@..........#\n...@.**...........#\n....@.**..........#\n......p*.@........#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#################\n\n.........\n.........\n.#.#.#.#.\n.@.*.@.*.\n.#.#.#.#.\n.@.*.@.*.\n*#@#*#@#*\n.........\n..p......\n\n\n..#.#.#.#..\n...........\n..#.#.#.#..\n...........\n..#.#.#.#..\n...p.......\n\n.#.#.#.#.\n.@.*.*.@.\n.#.#.#.#.\n.@.*.*.@.\n*#@#.#@#*\n..p......\n\n(meh)\n#########\n#...@####\n#..*.@###\n#@..*.@##\n##@..*.@#\n###@..*.#\n####@p..#\n#########\n\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n(meeeeh. I think not great? too long but also if short too randomo)\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n###########\n###########\n##...@#####\n##..*.@####\n##@..*.@###\n###@..*.###\n####@p....#\n#####.***.#\n#####.....#\n###########\n\n#########\n#...@####\n#..*.@###\n#@..*.###\n##@..*.##\n####..*.#\n#####...#\n######.p#\n#########\n\n...#.......\n....#......\n....@#.....\n.....@#....\n#@....@#...\n.#@..*.@#..\n..#@..*....\n...#@..*...\n....#.*.*..\n.......*...\n......p.*..\n.........*.\n...........\n\n( (kinda different from the above) )\n( (trivial) )\n( ####### )\n( #....## )\n( #....## )\n( #.*.@## )\n( ###.### )\n( #.....# )\n( #.*.@.# )\n( #..p..# )\n( ###.### )\n( #.*.@## )\n( #....## )\n( #....## )\n( ####### )\n\n\n#######\n#....##\n#....##\n#....##\n#....##\n#.*.@##\n###.###\n#.....#\n#.*.@.#\n#p....#\n###.###\n#.*.@##\n#....##\n#....##\n#....##\n#....##\n#######\n\n#######\n#....##\n#....##\n#....##\n#.@.*##\n#.@.*##\n###.###\n#.....#\n#.@.*.#\n#p....#\n###.###\n#.@.*##\n#.@.*##\n#....##\n#....##\n#....##\n#######\n\n###########\n###@.*..###\n#####*#.###\n.....*.....\n.@@@...@@@.\n.....p.....\n...........\n...........\n\n#############\n####.....####\n######.#.####\n#...........#\n#...........#\n#.....p.....#\n#...........#\n#############\n\n#######\n#.....#\n#.***.#\n#.....#\n###.###\n#.....#\n#.@@@p#\n#.....#\n#######\n\n....####\n....#..#\n....#..#\n#####..#\n#...#..#\n#..@..*#\n#...#p.#\n#####..#\n#..@..*#\n#......#\n######.#\n....#@.#\n....#..#\n....#.*#\n....#..#\n....####\n\n.#######.\n.#.....#.\n.#..*..#.\n.#.*.*.#.\n.#.*.*.#.\n.#.....#.\n.#.....#.\n###.#.###\n#@@.#.@@#\n#@@.#.@@#\n#@..#..@#\n#@.*#*.@#\n#@p.#..@#\n#########\n\n@....*\n.@..*.\n......\n.@..*.\n..p...\n\n..........\n.@@....**.\n.@@....**.\n...@..*...\n..........\n...@..*...\n.....p....\n..........\n\n\n(ok partition problem)\n(nah broken)\n.........\n.........\n.@.....@.\n.@.#*#.@.\n.@..*..@.\n.........\n....p....\n.........\n\n...............\n....@..#..@....\n.#..@.#*#.@..#.\n#*..@..*..@..*#\n.#..@.....@..#.\n.......p.......\n...............\n\n....####.....\n...#@.*......\n....##*#.....\n......*......\n.............\n..@@@.p.@@@..\n.............\n.............\n\n#######\n#.....#\n#.#.#.#\n#.@.*.#\n###.###\n.......\np.@.*..\n.......\n###.###\n#.@.*.#\n#.#.#.#\n#.....#\n#######\n\n######\n#...##\n#...##\n#...##\n#.@.*#\n###.##\n......\np.@.*.\n......\n###.##\n#.@.*#\n#...##\n#...##\n#...##\n######\n\n(trivial)\n(\n.........\n.........\n..**.@...\n.........\n....p....\n.........\n)\n\n\n\n............\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..*.*..*.*..\n.....p......\n............\n\n...........\n.....@.....\n.....@.....\n.....@.....\n.....@.....\n.....*.....\n.@@@@*@@@@.\n.....*.....\n.@@@@.@@@@.\n.....*.....\n...........\n.....p.....\n...........\n\n...........\n...........\n..###.###..\n..#*....#..\n..#.*...#..\n..###.###..\n..p.@.@....\n...........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n..........\n..........\n..........\n\n..........\n..........\n..####....\n..#*.@..p.\n..#.*@....\n..####....\n..........\n..........\n\n..........\n..........\n..####....\n..#*..@.p.\n..#.*.@...\n..####....\n..........\n..........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n####..####\n..........\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n..........\n\n.########.\n.#......#.\n.#.*..@.#.\n.#..*.@.#.\n####..####\n...p......\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n\n@@@@@@@@\n###@####\n........\n........\n.*.*.*..\n........\n.*.*.*..\n........\n.*.*.p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n...*....\n..***...\n...*....\n..***...\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n..***...\n..*.*...\n..***...\n........\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n..*.*...\n........\n..*.*...\n...@....\n..*.*...\n........\n..*.*p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n........\n........\n...*....\n..*.*...\n...*....\n..*.*...\n.*.@.*..\n...p....\n###*####\n########\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n#######\n##...##\n#.....#\n###.###\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#..p..#\n###.###\n#######\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n##################\n#####@#@#@########\n#####@#@#@########\n#####*#*#*########\n#@.........*....p#\n#..............*.#\n##############.*.#\n##############.*.#\n##############...#\n##################\n\n\n##############\n#@#@#@########\n#@#@#@########\n#*#*#*########\n#......*.p...#\n#..........*.#\n##########.*.#\n##########...#\n##############\n\n##########\n#@#@#@####\n#@#@#@####\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n######p..#\n##########\n\n#############\n###@#@#@#####\n###@#@#@#####\n###*#*#*#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#############\n###@#@#@#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#########\n###@#####\n#@....*p#\n#.....*.#\n#########\n\n...........\n...........\n....@@@....\n...........\n..@.***.@..\n..@.***.@..\n..@.***.@..\n...........\n.....p.....\n...........\n...........\n\n###########\n#.........#\n#.#..@..#.#\n#...@.@...#\n#..@***@..#\n#...***...#\n#..@***@..#\n#...@.@...#\n#.#..p..#.#\n#.........#\n###########\n\n#########\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(meeeh but in a pinch! but really, don't add it)\n#########\n##.....##\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(aaa kinda ok? has some stuff going on)\n#########\n#.......#\n#.*.@.*.#\n#..*@*..#\n#.@@*@@.#\n#..*@*..#\n#.*.@.*.#\n#...p...#\n#########\n\n#########\n#.......#\n#.@..**.#\n#.....*.#\n#..@....#\n#....@..#\n#.**....#\n#..*p.@.#\n#.....@.#\n#.@.*.@.#\n#.......#\n#########\n\n(doesn't have enough personality)\n#########\n#......p#\n#..@.@..#\n#.*.*.@.#\n#....*..#\n#.**..@.#\n#.**.*..#\n#.......#\n#########\n\n\n#########\n...#*#...\n.........\n##..*..##\n###...###\n####p####\n###...###\n##..@..##\n.........\n...#@#...\n#########\n\n\n\n#..#..#\n#..*.p#\n#.....#\n#..*..#\n###.###\n#..@..#\n#.....#\n#..@..#\n#..#..#\n\n...........\n.....*.....\n...........\n.....*.....\n....*.*....\n...*@@@*...\n....*.*....\n.....*.....\n...........\n.....p.....\n...........\n\n.......\n..*.*..\n.*@@@*.\n..*.*..\n...*...\n.......\n...p...\n.......\n)\n(\n....\n....\n....\n\n....\n....\n....\n....\n\n\n....\n....\n....\n....\n....\n\n\n.....\n.....\n.....\n.....\n.....\n\n......\n......\n......\n......\n......\n......\n\n##########\n#........#\n#.#....#.#\n#..*..*..#\n#...**..@#\n#...**.@@#\n#..*..@..#\n#.#.p*.#.#\n#.......##\n##########\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n##########\n\n###########\n#....#....#\n#.**.#.@@.#\n#.*..#..@.#\n#.........#\n####.p.####\n#.........#\n#.@..#..*.#\n#.@@.#.**.#\n#....#....#\n###########\n\n(solvable which is nice but also not good which is not nice)\n##########\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#........#\n#...p....#\n##########\n\n##########################\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#........................#\n#...........p............#\n##########################\n\n##########################\n#........................#\n#........................#\n#.........*..p...........#\n#........@@..............#\n#........***.............#\n#.......@@@@.............#\n#.......*****............#\n#......@@@@@@............#\n#......*******...........#\n#.....@@@@@@@@...........#\n#........................#\n#........................#\n#........................#\n#........................#\n#........................#\n##########################\n\n###########\n#.........#\n#.........#\n#..*@@@@..#\n#..*...*..#\n#..*.*.*..#\n#..*.@@*..#\n#..*......#\n#..@@@....#\n#.........#\n#....p....#\n#.........#\n###########\n\n####################\n#..................#\n#..................#\n#..................#\n#..................#\n#..***........@@@..#\n#..*.*........@.@..#\n#..***........@@@..#\n#..................#\n#..................#\n#.....p............#\n#..................#\n####################\n\n###########\n#.........#\n#.*.@@@@@.#\n#.*.@...@.#\n#.*...*.@.#\n#.*****.@.#\n#.........#\n#.........#\n#....p....#\n###*###@###\n###########\n\n...........\n##@@@@@@@##\n#####@#####\n#.........#\n#....*....#\n#...*.*...#\n#..*.@.*..#\n#...*.*...#\n#....*....#\n#.........#\n#....p....#\n#####*#####\n###########\n\n#######\n#@@@@@#\n##@@@##\n#.p...#\n#..@..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#.....#\n###*###\n#######\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n..###..\n.##*##.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n##@@@##\n##@@@#.\n.#####.\n\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n###.###\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n#######\n#*.*.*#\n#.*.*.#\n#*.*.*#\n#.@.@.#\n#@.@.@#\n#.@.@.#\n#..@..#\n#.....#\n#..p..#\n#.....#\n#######\n\n\n\n(ACTUAL CANDIDATE LEVELS)\n\n\n\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#.........#\n#.........#\n#....p....#\n#.........#\n###########\n\n\n(it is a level, but not amazing? but maybe ok? but I don't know? also repeats a mechanism from another level? but maybe better?)\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#....p....#\n#.........#\n#####.#####\n####*.***##\n#####****##\n###########\n\n##########\n#........#\n#.....p..#\n#........#\n#.....####\n#..#.....#\n#..#@....#\n#..#.....#\n##########\n\n\n\nmessage level 1 of 10\n\n####..\n#..#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 2 of 10\n\n######\n#....#\n#.#P.#\n#.*@.#\n#..@.#\n#....#\n######\n\nmessage level 3 of 10\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#....#P.#\n#########\n\nmessage level 4 of 10\n\n########\n#......#\n#..@@*P#\n#......#\n#####..#\n....####\n\nmessage level 5 of 10\n\n.#######\n.#.....#\n.#..*..#\n##.*P*.#\n#...*..#\n#......#\n########\n\nmessage level 6 of 10\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#......#\n#...########\n#####.......\n\n..######....\n###..**#####\n#.......@..#\n#.#..**#@@.#\n#......#.p.#\n############\n\nmessage level 7 of 10\n\n#######\n#.....#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..P..#\n#######\n\nmessage level 8 of 10\n\n..######\n..#...P#\n..#.**.#\n####.###\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\nmessage level 9 of 10\n\n#####.\n#...##\n#P**.#\n##...#\n.##..#\n..##.#\n...###\n\nmessage level 10 of 10\n\n......#####\n......#...#\n......#.#.#\n#######.#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\nmessage congratulations!\n\n\n#########\n#.......#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#...p...#\n#########\n\n......#####\n......#...#\n#######.#.#\n#.*.*.*.*.#\n#.#.#.#.###\n#....p..#..\n####@@@@#..\n...######..\n\n........#####\n........#...#\n#########.#.#\n#...*.*.*.*.#\n#.#.#.#.#.###\n#......p..#..\n######@@@@#..\n.....######..\n\n..........#####\n..........#...#\n..#########.#.#\n.##.*.@.@.@...#\n##*.#.#.#.#.###\n#*......p.....#\n###########.#.#\n..........#...#\n..........#####\n\n.......#####\n.......#...#\n########.#.#\n#*.....*.*.#\n##.#.#.#.###\n#@.@.@p....#\n########.#.#\n.......#...#\n.......#####\n)\n\n(\n..#########\n..#.......#\n..#.##..@.#\n..#.#@....#\n..#.....*.#\n..#.#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n \n.....######\n....##....#\n....#@..@.#\n....#.....#\n....#*#.*.#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n....#######\n....#.....#\n....#...@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n)\n\n", [2, 0, 3, 2, 2, 1], "background:0,background wall:1,1,1,0,0,0,0,0,0,0,\n0,0,0,1,background blue1:2,1,0,0,0,0,0,\n0,0,0,0,0,1,0,1,1,1,1,\n1,1,1,1,1,0,1,1,0,0,0,\n0,background deleted wall wall6:3,0,0,0,0,1,0,1,0,background red1:4,\n0,3,3,3,3,3,1,0,1,0,1,\n0,0,0,1,1,3,3,3,3,0,1,\n1,1,1,1,1,1,0,3,3,0,0,\n0,0,1,0,0,0,0,1,0,0,background player:5,\n0,0,0,0,1,0,0,0,0,1,0,\n0,0,2,0,0,0,1,0,0,0,0,\n1,1,1,1,1,1,0,0,1,0,0,\n0,0,0,0,0,0,0,1,1,1,1,\n", 17, "1645545159763.6345"] + ], + [ + "short adventure in sticky wall land", + ["title short adventure in sticky wall land\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #1d4765\ntext_color #99e550\nrun_rules_on_level_start\n\n\n========\nOBJECTS\n========\n\nBackground\n#396c90 #457da4\n00000\n00000\n00100\n00000\n00000\n\n\nTarget\n#fbf236 transparent\n00100\n01110\n11111\n01110\n00100\n\n\nWall\n#99e550 #99e550 #99e550\n01110\n12221\n12221\n12221\n01110\n\nwall_grenze_N\n#6abe30\n00000\n.....\n.....\n.....\n.....\n\nwall_grenze_S\n#6abe30\n.....\n.....\n.....\n.....\n00000\n\nwall_grenze_O\n#6abe30\n....0\n....0\n....0\n....0\n....0\n\nwall_grenze_W\n#6abe30\n0....\n0....\n0....\n0....\n0....\n\nwall_grenze_NO\n#396c90\n....0\n.....\n.....\n.....\n.....\n\nwall_grenze_SO\n#396c90\n.....\n.....\n.....\n.....\n....0\n\nwall_grenze_SW\n#396c90\n.....\n.....\n.....\n.....\n0....\n\nwall_grenze_NW\n#396c90\n0....\n.....\n.....\n.....\n.....\n\nPlayer\ntransparent #b13030 #a96c30 #4e0b0b\n01110\n11110\n02220\n33333\n03030\n\n\nCrate\n#8f563b #743a1f #b4643d #b76640\n00000\n01220\n03120\n03310\n00000\n\n\n\n=======\nLEGEND\n=======\n\nwall_dekoration_ortho = wall_grenze_N or wall_grenze_S or wall_grenze_O or wall_grenze_W\n\nwall_dekoration_eck = wall_grenze_NW or wall_grenze_SW or wall_grenze_SO or wall_grenze_NO\n\nwall_dekoration = wall_dekoration_eck or wall_dekoration_ortho\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\nobstacle = crate or wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 76571107\nwall move 95423307\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nwall_grenze_N \nwall_grenze_S\nwall_grenze_O\nwall_grenze_W\nwall_grenze_NO\nwall_grenze_SO \nwall_grenze_SW\nwall_grenze_NW\nTarget\n\n======\nRULES\n======\n(\n[ > player | crate | obstacle ] -> cancel\n[ > player | wall ] -> cancel\n\n\n[ > Player | Crate | ] -> [ > Player | | Crate ]\n[ wall | > player | ] -> [ wall | wall | player ]\n\n)\n\n(it's very possible someone's come up with this set of rules already - but if they have I haven't seen it yet)\n\n[ > player | crate ] -> [ > player | > crate ]\n[ wall | > player ] -> [ > wall | > player ]\n\nlate [ wall_dekoration ] -> []\nlate up [ wall | no wall ] -> [ wall wall_grenze_N | ]\nlate down [ wall | no wall ] -> [ wall wall_grenze_S | ]\nlate right [ wall | no wall ] -> [ wall wall_grenze_O | ]\nlate left [ wall | no wall ] -> [ wall wall_grenze_W | ]\n\nlate [ wall_grenze_N wall_grenze_O ] -> [ wall_grenze_N wall_grenze_O wall_grenze_NO ]\nlate [ wall_grenze_S wall_grenze_O ] -> [ wall_grenze_S wall_grenze_O wall_grenze_SO ]\nlate [ wall_grenze_N wall_grenze_W ] -> [ wall_grenze_N wall_grenze_W wall_grenze_NW ]\nlate [ wall_grenze_S wall_grenze_W ] -> [ wall_grenze_S wall_grenze_W wall_grenze_SW ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 3\n\n(kinda like)\n.........\n.#######.\n.#..*..#.\n.#..p..#.\n.#..o..#.\n.#######.\n.........\n\nmessage Level 2 of 3\n\n\n(ok)\n........\n.####...\n.#.o#...\n.#..###.\n.#@p..#.\n.#..*.#.\n.#..###.\n.####...\n........\n\nmessage Level 3 of 3\n\n(mildly entertaining. possibly slightly harder?)\n.......\n.#####.\n.#.*.#.\n.#...#.\n.#.p.#.\n.#...#.\n.#.o.#.\n.#####.\n.......\n\nmessage Congratulations. Thank you for playing!\n\n(\n#..##\np...o\n.#..#\n..*.#\no*##.\n\n##.##\n.o.*#\n....#\n#*.o.\n#.p..\n\n...##\n.o.*#\n.....\n#*.o.\n##..p\n\n(haven't solved, don't like)\n#..##\n.o.*#\n.p...\n#*.o.\n##..#\n\n(better. still don't like though)\n#..#.\n.o.*#\n..p..\n#*.o.\n.#..#\n\n#....\n.o.*#\n#.p.#\n#*.o.\n....#\n\n(easy-ish, but ok? NO BAD)\n#.#..\n.o.*#\n..p..\n#*.o.\n..#.#\n\n\n....\n....\n....\n....\n\n\n.....\n.....\n.....\n.....\n.....\n\n.....\n.....\n.....\n.....\n.....\n\n.......\n.......\n.......\n.......\n.......\n.......\n.......\n\n.......\n.#####.\n.#.*.#.\n.#.p.#.\n.#.o.#.\n.#####.\n.......\n\n.........\n.#######.\n.#..*..#.\n.#..p..#.\n.#..o..#.\n.#######.\n.........\n\n.p..\no...\n.*@.\n#..#\n\n(possible to get to a dead end wtihout knowing really - so bad?)\n.....\n.o#..\n.*#*.\n.o#p.\n.....\n\n(ok, not so dead endy, but is it good? hardish)\n.....\n.opo.\n.*.*.\n.###.\n.....\n\n(easy but ok)\n.....\n.o#..\n.@#..\n.#*p.\n.....\n\n........\n.####...\n.#.o#...\n.#..###.\n.#@p..#.\n.#..*.#.\n.#..###.\n.####...\n........\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*O.#\n##.*P*.#\n#..O*O.#\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", [2, 3, 0, 3, 0, 0, 2, 1, 0, 2, 1, 2, 2, 3, 2, 2, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 1, 2, 1, 3, 0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 1, 0, 3, 0, 0, 0, 1, 1, 2, 2, 2, 2, 1, 1, 0, 0, "undo", "undo", "undo", 0, 1, 0, 3, 2, "undo", 2, 3, 1, 1, 2], "background:0,0,0,0,0,0,0,0,background wall wall_grenze_n wall_grenze_nw wall_grenze_s wall_grenze_sw wall_grenze_w:1,\n0,background wall wall_grenze_n wall_grenze_nw wall_grenze_w:2,background wall wall_grenze_o wall_grenze_w:3,background wall wall_grenze_s wall_grenze_sw wall_grenze_w:4,0,0,background wall wall_grenze_n wall_grenze_no wall_grenze_o wall_grenze_s wall_grenze_so:5,0,background wall wall_grenze_n wall_grenze_s:6,\nbackground player:7,5,0,0,0,background wall wall_grenze_n wall_grenze_no wall_grenze_nw wall_grenze_o wall_grenze_w:8,background wall wall_grenze_o:9,4,0,\n0,0,0,background crate:10,0,background target wall wall_grenze_n wall_grenze_no wall_grenze_o:11,background wall wall_grenze_o wall_grenze_s wall_grenze_so wall_grenze_sw wall_grenze_w:12,0,0,\n2,12,0,0,0,0,0,6,0,\n0,0,1,0,0,background wall wall_grenze_n wall_grenze_no wall_grenze_o:13,3,12,0,\n5,0,0,0,0,0,0,0,0,\n", 1, "1645545192906.1704"] + ], + [ + "[testing for recording through level-changes A] Level-Change test", + ["title Simple Block Pushing Game\nauthor David Skinner\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\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\n\nun\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n", [2, 1, 0, 3, 3, 3, 2, 1, 0, 1, 2, 2, "undo", 1, 2, 2, 3, 0, 1, 0, 3, 0, 0, 1, 2, 3, 2, 2, 3, 3, 3, 0, 1, 2, 1, 0, 0, 3, 2, 2, 1, 2, 3, 0, 0, 0, 1, 2], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,0,background crate:2,\nbackground crate target:3,1,0,0,1,1,\nbackground player target:4,3,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n", 0, "1645546672241.5308"] + ], + [ + "[testing for recording through level-changes B] Simple Block asdfsadf Game", + ["title Simple Block Pushing Game\nauthor David Skinner\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\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[ > 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\n", [2, 1, 0, 3, 3, 2, 1, 3, 3, 2, 1, 0, 1, 1, 2, 2, 3, 0, 1, 0, 3, 0, 0, 1, 2, 3, 2, 2, 3, 3, 0, 1, 2, 1, 0, 0], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,0,background crate:2,\nbackground target:3,1,0,0,1,background player:4,\nbackground crate target:5,5,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n", 0, "1645546774769.8335"] + ], + + [ + "[testing for recording through level-changes C] Don't asdlet your goals slip away", + ["title Don't let your goals slip away\nauthor increpare [riff on david skinner's levels]\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\nbackground_color green\n\n\ncolor_palette 2\n========\nOBJECTS\n========\n\nBackground\nGREEN green\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nblack\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nDARKBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nlightgray lightgray lightgray lightgray\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange\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\nobstacle = crate or wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 78774307\ntarget move 81495507\nendlevel 52446100\nstartgame 73236703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n( [ > player | wall ] -> cancel )\n[ > player | crate | obstacle ] -> cancel\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > player | target ] -> [ > player | > target ] \n[ > target | target ] -> [ > target | > target ]\n[ > target | wall ] -> [ target | wall ]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 8\n\n(funny therefore good)\n####..\n#o*#..\n#..###\n#....#\n#.o*.#\n#.p###\n####..\n\n(meh)\n( ####.. )\n( #.o#.. )\n( #..### )\n( #o...# )\n( #*.*.# )\n( #.p### )\n( ####.. )\n\n\n\n(p. good!)\n..####...\n###..####\n#....*o.#\n#.#..#.o#\n#..*.#p.#\n#########\n\n( (Easy but funny) )\n( ###### )\n( #.*..# )\n( #.#.*# )\n( #....# )\n( #p*o.# )\n( #.oo.# )\n( ###### )\n\n\nmessage level 3 of 8\n\n(not bad)\n######\n##o..#\n#.#oo#\n#.*..#\n#.*..#\n#p*..#\n######\n\nmessage level 4 of 8\n\n########\n#...*..#\n#.o#.@p#\n#..*...#\n#####.o#\n....####\n\nmessage level 5 of 8\n\n\n\n(decent!)\n#####.\n#.*.##\n#.o.p#\n##.o.#\n.##.*#\n..##.#\n...###\n\nmessage level 6 of 8\n\n(fine right?)\n......###.\n#######o##\n#...*o...#\n#.#.#.#.##\n#.p.*...#.\n#########.\n\nmessage level 7 of 8\n(no idea. damnit spoiled but also ok.)\n####..\n#..#..\n#.*###\n#..*p#\n#..o.#\n#o.###\n####..\n\n\n\nmessage level 8 of 8\n(Tricky but also decent? involves fun manipulations)\n#######\n#..#..#\n#.o*o.#\n#.*p*##\n#.o*o.#\n#..#..#\n#######\n\n\nmessage Congratulations! You didn't let your goals run away from you.\n\n(transform\n\n[player]->[]\n[target]->[]\n[crate]->[]\n\nchoose 2 [] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player ] -> [ target ] \n\n)\n\n", [0, 0, 0, 2, 3, 3, 2, 1, 1, 1, 2, 1, 0, 0, 0], "background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,0,1,\n1,0,0,0,background crate:2,1,1,0,0,\n0,0,1,1,1,2,1,1,1,\n0,1,background target:3,0,background player:4,1,0,1,0,\n3,0,1,0,1,1,1,1,1,\n", 1, "1645546878695.2927"] + ], - -[ - "I Need To Stop My Teleport Gun", - ["title I Need To Stop My Teleport Gun\nauthor duyaa\nhomepage https://confoundingcalendar.itch.io/\n\nagain_interval 0.1\nbackground_color #151244\ntext_color #f9cb60\n\n========\nOBJECTS\n========\n\nBackground \n#f9cb60 #f9960f #bc2f01\n00001\n01000\n00100\n00010\n10000\n\nSave\n#f9cb60 #f9960f #bc2f01\n01111\n10001\n10101\n10001\n11110\n\nSaveFinal\n#f9cb60 #f9960f #bc2f01\n01111\n10001\n10101\n10001\n11110\n\nPit\n#151244 #60117f #922a95\n00001\n01000\n00100\n00010\n10000\n\nPlayer\ntransparent #be7dbc #60117f #bc2f01\n03030\n02220\n21212\n02220\n02020\n\nDeadPlayer\ntransparent #be7dbc\n01010\n01110\n10101\n01110\n01010\n\nGun0\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n10000\n10000\n11111\n\nGun1\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n12000\n12000\n11111\n\nGun2\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n12300\n12300\n11111\n\nGun3\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n12340\n12340\n11111\n\nGun4\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n12345\n12345\n11111\n\nGunBroken1\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n12145\n12345\n11111\n\nGunBroken2\n#f9cb60 #680703 #151244 #bc2f01 #922a95 #be7dbc\n01010\n11111\n11315\n12145\n11111\n\nGunBroken3\n#f9cb60 #680703 #bc2f01 #f9960f #be7dbc\n01110\n11211\n12321\n11214\n11111\n\nGunBroken4\n#f9cb60 #680703 #bc2f01 #f9960f\n01210\n12321\n23032\n12321\n11211\n\nGunBroken5\n#f9cb60 #680703 #bc2f01 #f9960f\n12321\n23032\n30003\n23032\n12321\n\nGunBroken6\n#f9cb60 #bc2f01 #f9960f\n12021\n20002\n00000\n20002\n12021\n\nGunBroken7\n#f9cb60 #f9960f\n10001\n00000\n00000\n00000\n10001\n\nGunBroken8\n#f9cb60\n00000\n00000\n00000\n00000\n00000\n\nBulletD\ntransparent #be7dbc #922a95 #60117f\n00300\n00200\n02120\n00200\n00000\n\nBulletL\ntransparent #be7dbc #922a95 #60117f\n00000\n00200\n02123\n00200\n00000\n\nBulletR\ntransparent #be7dbc #922a95 #60117f\n00000\n00200\n32120\n00200\n00000\n\nBulletU\ntransparent #be7dbc #922a95 #60117f\n00000\n00200\n02120\n00200\n00300\n\nCrate\n#7f6962 #680703\n00000\n01110\n01110\n01110\n00000\n\nCrateUL\n#7f6962 #680703 transparent\n22220\n22200\n22010\n20110\n00000\n\nCrateUR\n#7f6962 #680703 transparent\n02222\n00222\n01022\n01102\n00000\n\nCrateDL\n#7f6962 #680703 transparent\n00000\n20110\n22010\n22200\n22220\n\nCrateDR\n#7f6962 #680703 transparent\n00000\n01102\n01022\n00222\n02222\n\nTempGun\ntransparent\n\nBorderCheck\ntransparent\n\nTempTele\ntransparent\n\nSolutionCheck\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n: = Save\n; = SaveFinal\nX = Pit and BorderCheck\n# = Pit\nP = Player\nG = Gun0\n0 = Crate\n1 = CrateUL\n2 = CrateUR\n3 = CrateDL\n4 = CrateDR\n5 = CrateUL and Save\n6 = CrateUR and Save\n7 = CrateDL and Save\n8 = CrateDR and Save\nB = CrateUR and SolutionCheck\nd = BulletD\nr = BulletR\nl = BulletL\nu = BulletU\n\nGun = Gun0 or Gun1 or Gun2 or Gun3 or Gun4\nGunBroken = GunBroken1 or GunBroken2 or GunBroken3 or GunBroken4 or GunBroken5 or GunBroken6 or GunBroken7 or GunBroken8\nGunOrGunBroken = Gun or GunBroken\nObject = Crate or CrateUL or CrateUR or CrateDL or CrateDR\nBullet = BulletD or BulletL or BulletR or BulletU\n\n( for bullet colliding )\nObjectD = Crate or CrateDL or CrateDR\nObjectL = Crate or CrateUL or CrateDL\nObjectR = Crate or CrateUR or CrateDR or Gun\nObjectU = Crate or CrateUL or CrateUR\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSave, Pit, SaveFinal, SolutionCheck\nGun, GunBroken, Object\nPlayer\nDeadPlayer\nBulletD\nBulletL\nBulletR\nBulletU\nTempGun\nBorderCheck\nTempTele\n\n======\nRULES \n====== \n\n( gun charging )\n[GunOrGunBroken] -> [GunOrGunBroken TempGun]\n[Gun0 TempGun] -> [Gun1 no TempGun]\n[Gun1 TempGun] -> [Gun2 no TempGun]\n[Gun2 TempGun] -> [Gun3 no TempGun]\n[Gun3 TempGun] -> [Gun4 no TempGun]\nright [Gun4 TempGun | no ObjectR] -> [Gun0 BulletR no TempGun | ]\nright [Gun4 TempGun | ObjectR] -> [GunBroken1 no TempGun | ObjectR] again\n( gun breaking )\n[GunBroken1 TempGun] -> [GunBroken2 no TempGun] again\n[GunBroken2 TempGun] -> [GunBroken3 no TempGun] again\n[GunBroken3 TempGun] -> [GunBroken4 no TempGun] again\n[GunBroken4 TempGun] -> [GunBroken5 no TempGun] again\n[GunBroken5 TempGun] -> [GunBroken6 no TempGun] again\n[GunBroken6 TempGun] -> [GunBroken7 no TempGun] again\n[GunBroken7 TempGun] -> [GunBroken8 no TempGun] win\n\n( bullet moving )\n[Bullet BorderCheck] -> [Player TempTele BorderCheck]\n[BulletD][Gun] -> [down BulletD][Gun]\n[BulletL][Gun] -> [left BulletL][Gun]\n[BulletR][Gun] -> [right BulletR][Gun]\n[BulletU][Gun] -> [up BulletU][Gun]\n( bullet and object colliding )\ndown [> BulletD | ObjectD] -> [stationary Player < TempTele | ObjectD]\nlate [ BulletD CrateUL] -> [ BulletL CrateUL]\nlate [ BulletD CrateUR] -> [ BulletR CrateUR]\nleft [> BulletL | ObjectL] -> [stationary Player < TempTele | ObjectL]\nlate [ BulletL CrateUR] -> [ BulletU CrateUR]\nlate [ BulletL CrateDR] -> [ BulletD CrateDR]\nright [> BulletR | ObjectR] -> [stationary Player < TempTele | ObjectR]\nlate [ BulletR CrateUL] -> [BulletU CrateUL]\nlate [ BulletR CrateDL] -> [BulletD CrateDL]\nup [> BulletU | ObjectU] -> [stationary Player < TempTele | ObjectU]\nlate [BulletU CrateDL] -> [ BulletL CrateDL]\nlate [BulletU CrateDR] -> [ BulletR CrateDR]\n( teleport collision recoiling )\n[> TempTele Object] -> [> TempTele > Object]\n\n( teleportation happening )\n[Player no TempTele][TempTele] -> [][TempTele]\n[DeadPlayer no TempTele][TempTele] -> [] [TempTele]\n[TempTele] -> []\n\n( player, object normally moving )\n[> Player | Object] -> [> Player | > Object]\n[> Object | stationary Object] -> [> Object | > Object]\n( cannot push gun )\n[> Player | GunOrGunBroken] -> [stationary Player | GunOrGunBroken]\n[> Object | GunOrGunBroken] -> [stationary Object | GunOrGunBroken]\n[> Object | stationary Object] -> [stationary Object | Object]\n[> Player | stationary Object] -> [stationary Player | Object]\n( pit )\nlate [Player Pit] -> [DeadPlayer Pit]\n[> Object | Pit] -> [ | Pit]\n( checkpoint )\nlate [SolutionCheck Bullet][SaveFinal] -> [Bullet][Save]\nlate [Player Save] -> [Player] checkpoint\n\n==============\nWINCONDITIONS\n============== \n\n======= \nLEVELS\n=======\n\nmessage Press X to wait. \n\nXXXXXXXXXXXXXXXXXXXX\nX#4##..####3##.###.X\nX####.2.###1##.###3X\nX##.....#####:4#3#0X\nX##.4.#..####..####X\nX###...#.#####2#1##X\nX###.#...###4#####1X\nX.80.######.60#####X\nX#23###0..####...##X\nX#4.#3#4;0G.##.:0#3X\nX##...#.....##...##X\nX##.1.0###..#####..X\nX###..#B####23##0:1X\nX##0#.###.##41###4.X\nX###0:0.#4..213####X\nX####0.0#.....#0:1.X\nX0:..############1#X\nX#.2.###014.0#23###X\nX#..########1##2.0#X\nX####0######4##1###X\nX########2.10######X\nXXXXXXXXXXXXXXXXXXXX\n\nmessage I'm freeeeeeeee!\n\n",[4,4,4,4,4,4,4,4,4,4,0,3,2,1,4,4,4,4,4,4,4,4,0,3,2,4,4,1,1,3,0,3,1,4,4,4,4,4,4,4,4,3,3,4,"undo","undo",4,4,4,4,4,1,4,4,4,4,2,2,3,0,2,2,3,0,3,0,2,2,"undo","undo","undo","undo",3,2,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0],"background bordercheck pit:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background pit:1,1,1,1,1,1,background:2,1,1,1,1,1,1,1,1,background crate:3,1,\n1,1,1,0,0,background cratedr:4,1,1,1,1,1,background cratedr save:5,background crateur:6,background bulletr cratedr:7,1,1,1,1,background bulletu pit:8,1,\n6,2,2,1,1,0,0,1,1,2,2,1,1,3,background cratedl:9,2,2,2,1,3,\n1,1,2,2,2,1,1,0,0,1,1,2,4,2,2,2,1,1,2,background crateul:10,\n2,1,3,1,2,2,1,1,1,0,0,2,2,2,2,2,1,1,1,9,\n2,background bulletd:11,2,background player:12,2,3,background bulletl pit:13,1,1,3,1,0,0,2,6,2,1,2,2,1,\n1,1,1,3,1,1,3,2,1,1,1,1,1,0,0,1,2,2,2,1,\n2,1,3,4,2,1,background crateur solutioncheck:14,1,2,3,1,1,1,1,1,0,0,1,1,1,\n2,2,2,1,2,background savefinal:15,2,1,1,1,1,1,1,3,1,1,1,0,0,1,\n1,1,1,1,1,1,2,3,2,1,1,2,4,2,1,10,1,1,6,0,\n0,1,1,1,1,1,1,1,1,background gun2:16,2,2,1,1,2,2,13,4,1,1,\n2,0,0,9,10,1,1,1,1,2,1,2,2,2,1,1,2,2,1,2,\n1,1,10,0,0,1,1,1,1,1,4,background crateur save:17,1,1,1,1,6,4,6,2,\n1,3,10,4,3,0,0,1,1,background save:18,2,1,1,3,1,background bulletr pit:19,1,1,9,10,\n10,2,1,1,1,1,1,0,0,2,2,4,2,6,1,1,2,2,2,1,\n1,1,9,1,1,6,1,1,1,0,0,1,1,1,1,1,1,1,2,2,\n2,1,1,1,1,3,13,9,6,10,1,0,0,1,1,9,1,10,1,1,\n2,2,3,1,2,1,1,2,1,1,2,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,2,2,background bulletd cratedr:20,1,2,10,1,3,1,1,0,0,2,9,3,\n1,1,10,1,1,background bulletd cratedl:21,1,2,2,10,1,10,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",1,"1645578752808.7263"] + [ + "Wallnut chasing mouse chasing cat chasing dog chasing man", + ["title Wallnut chasing mouse chasing cat chasing dog chasing man\nauthor Stingby12\nhomepage https://stingby12.itch.io/\n\nnoaction\nrun_rules_on_level_start\n\nkey_repeat_interval 0.2\nagain_interval 0.2\n\ncolor_palette 5\n\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\nDogIdle\nLightbrown Black Red\n.....\n0.0..\n101..\n02000\n.0000\n\nDogActiveL\nLightbrown Black Red\n0.0..\n101.0\n02000\n.0000\n.0..0\n\nDogActiveR\nLightbrown Black Red\n..0.0\n0.101\n00020\n0000.\n0..0.\n\nCatIdle\nGray Black White\n.....\n0.0..\n101..\n00000\n.0220\n\nCatActiveL\nGray Black White\n0.0..\n101.0\n00000\n.0220\n.0..0\n\nCatActiveR\nGray Black White\n..0.0\n0.101\n00000\n0220.\n0..0.\n\nMouseIdle\nGray DarkGray Pink\n.....\n.....\n.....\n100..\n.000.\n\nMouseActiveL\nGray DarkGray Pink\n.....\n.....\n.....\n100..\n.0022\n\nMouseActiveR\nGray DarkGray Pink\n.....\n.....\n.....\n..001\n2200.\n\nWallnutIdle\nYellow Orange Blue\n.....\n.....\n..0..\n.011.\n..1..\n\nWallnutActive\nYellow Orange Blue\n..0..\n.011.\n.212.\n.2.2.\n22.22\n\nCrate\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\n(--Anim--)\n\nPlayerAnim\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nDogAnimL\nLightbrown Black Red\n0.0..\n101.0\n02000\n.0000\n.0..0\n\nDogAnimR\nLightbrown Black Red\n..0.0\n0.101\n00020\n0000.\n0..0.\n\nCatAnimL\nGray Black White\n0.0..\n101.0\n00000\n.0220\n.0..0\n\nCatAnimR\nGray Black White\n..0.0\n0.101\n00000\n0220.\n0..0.\n\nMouseAnimL\nGray DarkGray Pink\n.....\n.....\n.....\n100..\n.0022\n\nMouseAnimR\nGray DarkGray Pink\n.....\n.....\n.....\n..001\n2200.\n\nWallnutAnim\nYellow Orange Blue\n..0..\n.011.\n.212.\n.2.2.\n22.22\n\nSpawner\ntransparent\n\nSpawnButton\ntransparent\n\nHordeButton\ntransparent\n\nGoL\ntransparent\n\nGoR\ntransparent\n\nDelete\ntransparent\n\nAscendButton\ntransparent\n\nPlayerAscending1\nBlack Orange White Blue Lightbrown\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nPlayerAscending2\nBlack Orange White Blue Lightbrown\n.000.\n21112\n.222.\n.333.\n.3.3.\n\nPlayerAscending3\nBlack Orange White Blue Lightbrown\n.000.\n24142\n.222.\n.333.\n.3.3.\n\nNextStep\ntransparent\n\nLight\nyellow\n00000\n00000\n00000\n00000\n00000\n\nLightL\nyellow\n...00\n...00\n...00\n...00\n...00\n\nLightR\nyellow\n00...\n00...\n00...\n00...\n00...\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nD = DogIdle\nC = CatIdle\nM = MouseIdle\nW = WallnutIdle\n* = Crate\n@ = Crate and Target\nO = Target\n\nDogActive = DogActiveL or DogActiveR\nCatActive = CatActiveL or CatActiveR\nMouseActive = MouseActiveL or MouseActiveR\n\nDog = DogIdle or DogActive\nCat = CatIdle or CatActive\nMouse = MouseIdle or MouseActive\nWallnut = WallnutIdle or WallnutActive\n\n(--Anim--)\n\n+ = PlayerAnim\n% = PlayerAnim and Spawner\n& = PlayerAscending3 and Light\n§ = Light\nµ = Light and SpawnButton\n£ = Light and Delete\n- = Spawner\n? = SpawnButton\n! = HordeButton\n< = GoL\n> = GoR\nX = Delete\n/ = AscendButton\n\nDogAnim = DogAnimL or DogAnimR\nCatAnim = CatAnimL or CatAnimR\nMouseAnim = MouseAnimL or MouseAnimR\n\nAscend = PlayerAscending1 or PlayerAscending2 or PlayerAscending3\n\nAnim = PlayerAnim or DogAnim or CatAnim or MouseAnim or WallnutAnim\n\n=======\nSOUNDS\n=======\n\nstartgame 13270509\nendlevel 22256108\nendgame 22256108\nrestart 94088302\nundo 87693501\n\nCrate MOVE 25943107\nCatIdle MOVE 25943107\nMouseIdle MOVE 25943107\nWallnutIdle MOVE 25943107\n\nsfx0 86992703\nDogActive MOVE 47565107\nCatActive MOVE 36092905\nMouseActive MOVE 20048306\nWallnutActive MOVE 18695302\n\n(--Anim--)\n\nDogAnim create 47565107\nDogAnim move 47565107\nCatAnim create 36092905\nCatAnim move 36092905\nMouseAnim create 20048306\nMouseAnim move 20048306\nWallnutAnim create 18695302\nWallnutAnim move 18695302\n\nPlayerAscending3 destroy 58002102\n\nsfx1 52296908\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Dog, Cat, Mouse, Wallnut, Wall, Crate\n\n(--Anim--)\n\nLight, LightL, LightR\nSpawner, SpawnButton, HordeButton, GoL, GoR, Delete, AscendButton\nPlayerAnim, Ascend, DogAnim, CatAnim, MouseAnim, WallnutAnim\nNextStep\n\n======\nRULES\n======\n\n[> Player | Crate] -> [> Player | > Crate]\n[> Player | CatIdle] -> [> Player | > CatIdle]\n[> Player | MouseIdle] -> [> Player | > MouseIdle]\n[> Player | WallnutIdle] -> [> Player | > WallnutIdle]\n\nright [DogActiveL | ... | Player] -> [DogActiveR | ... | Player]\nleft [DogActiveR | ... | Player] -> [DogActiveL | ... | Player]\nright [CatActiveL | ... | DogActive] -> [CatActiveR | ... | DogActive]\nleft [CatActiveR | ... | DogActive] -> [CatActiveL | ... | DogActive]\nright [MouseActiveL | ... | CatActive] -> [MouseActiveR | ... | CatActive]\nleft [MouseActiveR | ... | CatActive] -> [MouseActiveL | ... | CatActive]\n\n[DogActive | ... | Player] -> [> DogActive | ... | Player]\n[CatActive | ... | DogActive] -> [> CatActive | ... | DogActive]\n[MouseActive | ... | CatActive] -> [> MouseActive | ... | CatActive]\n[WallnutActive | ... | MouseActive] -> [> WallnutActive | ... | MouseActive]\n\nlate [DogIdle | Player] -> [DogActiveL | Player] sfx0\nlate [CatIdle | DogActive] -> [CatActiveL | DogActive] sfx0\nlate [MouseIdle | CatActive] -> [MouseActiveL | CatActive] sfx0\nlate [WallnutIdle | MouseActive] -> [WallnutActive | MouseActive] sfx0\n\n(--Anim--)\n\n[Anim] [GoL] -> [left Anim] [GoL] again\n[Anim] [GoR] -> [right Anim] [GoR] again\n[Anim Delete] -> [Delete] again\n[PlayerAscending3 Delete] -> [Delete] again\n\n[PlayerAscending3] -> [up PlayerAscending3] again\n\nlate [PlayerAnim SpawnButton] [GoR] [Spawner] -> [PlayerAnim SpawnButton] [GoR] [DogAnimR Spawner]\nlate [PlayerAnim SpawnButton] [GoL] [Spawner] -> [PlayerAnim SpawnButton] [GoL] [DogAnimL Spawner]\nlate [PlayerAscending3 SpawnButton] [Spawner] -> [PlayerAscending3 SpawnButton] [DogAnimR Spawner]\n\nlate [DogAnim HordeButton] [GoR] [Spawner] -> [DogAnim HordeButton] [GoR] [CatAnimR Spawner]\nlate [DogAnim HordeButton] [GoL] [Spawner] -> [DogAnim HordeButton] [GoL] [CatAnimL Spawner]\nlate [CatAnim HordeButton] [GoR] [Spawner] -> [CatAnim HordeButton] [GoR] [MouseAnimR Spawner]\nlate [CatAnim HordeButton] [GoL] [Spawner] -> [CatAnim HordeButton] [GoL] [MouseAnimL Spawner]\nlate [MouseAnim HordeButton] [Spawner] -> [MouseAnim HordeButton] [WallnutAnim Spawner]\n\nlate [Ascend AscendButton] -> [Ascend NextStep AscendButton] again\n\nlate [PlayerAnim AscendButton] -> [PlayerAscending1 AscendButton] again\n\n[PlayerAscending1 NextStep] -> [PlayerAscending2]\n[PlayerAscending2 NextStep] -> [PlayerAscending3] sfx1 win\n\nleft [Light | no Light] -> [Light | LightL]\nright [Light | no Light] -> [Light | LightR]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nNo DogIdle\nNo CatIdle\nNo MouseIdle\nNo WallnutIdle\n\n(--Anim--)\n\nNo Anim\nNo Ascend\n\n=======\nLEVELS\n=======\n\nmessage \"I wonder if I'll get chased by something today\"\nmessage Level 1a of 4\n\n#####.\n#...##\n#.#p.#\n#.*@.#\n#.o@.#\n#....#\n######\n\nmessage \"Oh just great\"\nmessage Level 1b of 4\n\n#####.\n#..d##\n#.#p.#\n#.*@.#\n#.o@.#\n#....#\n######\n\nmessage \"There's more following me ?\"\nmessage Level 1c of 4\n\n#####.\n#mcd##\n#.#p.#\n#.*@.#\n#.o@.#\n#....#\n######\n\nmessage \"I don't need anything please stop following me\"\nmessage Level 2 of 4\n\n####..\n#.o#..\n#..###\n#@p..#\n#..*d#\n#c.m##\n#####.\n\nmessage \"There's not way this wallnut can chase me\"\nmessage Level 3a of 4\n\n####.....\n#..###.#.\n#.d..#...\n##.#.###.\n.#.mp..#.\n.###.#w##\n...#...c#\n.#.###..#\n.....####\n\nmessage \"Okay nevermind\"\nmessage Level 3b of 4\n\n####.....\n#..###.#.\n#.w..#...\n##.#.###.\n.#.mp..#.\n.###.#d##\n...#...c#\n.#.###..#\n.....####\n\nmessage \"They'll never stop following me until I'm stuck\"\nmessage Level 4a of 4\n\n...#######\n####...#w#\n#..#.m.#.#\n#..d.*.o.#\n##c#.*.o.#\n.###.p.###\n...#####..\n\nmessage \"But I still have one last trick up my sleeve\"\nmessage Level 4b of 4\n\n.......###.\n...#####w#.\n####...#.##\n#..#.m.#...\n#..d.*oo.##\n##c#.*...#.\n.###.p.###.\n...#####...\n\n(--Anim--)\n\n.........\n....>....\n.........\n.........\n%.!.?...x\n.........\n.........\n\n.........\n....<....\n.........\n.........\nx...?.!.%\n.........\n.........\n\n.........\n....>....\n.........\n.........\n%!....?.x\n.........\n.........\n\n.........\n....>....\n.........\n.........\n+.../....\n.........\n.........\n\nmessage \"I ascend !\"\n\n....£....\n.>..§....\n....§....\n....§....\n-!..µ...x\n....&....\n....§....\n\nmessage \"Goodbyeeeee...\"\n\n", [1, 0, 0, 0, 3, 0, 1, 2, 2, 2, 3, 0, 3, 3, 2, 1, 0, 1, 2, 3, 0, 1, 1, 1, 1, 1, 0, 3, 2, 3, 3, 1, 0, 2, 0, 3, 2, 2, 1, 0, 3, 0, 3, 2, 3, 2, 3], "background:0,0,background wall:1,1,1,1,0,0,0,0,1,\n0,0,1,1,0,0,0,1,0,0,0,\n1,0,0,1,1,1,0,1,1,1,0,\n1,0,0,0,0,0,1,0,1,0,background mouseactiver:2,\n0,background crate:3,3,1,0,1,0,background catactiver:4,background dogactiver target:5,0,0,\n1,1,1,1,1,background player target:6,0,1,1,1,background wallnutidle:7,\n0,0,0,0,1,0,1,1,1,0,1,\n1,1,0,0,0,1,0,1,0,0,0,\n", 23, "1645578571689.1494"] + ], + [ + "Kettle, except something is off", + ["title Kettle, except something is off\nauthor Stingby12\nhomepage https://stingby12.itch.io/\n\ncolor_palette arnecolors\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(Moonwulk)\n\n[ up rpolice] -> [rpolice]\n[ down rpolice] -> [rpolice]\n[ left rpolice] -> [ left rpolice]\n\n[ down upolice] -> [ down upolice]\n[ left upolice] -> [upolice]\n[ right upolice] -> [upolice]\n\n[ up lpolice] -> [lpolice]\n[ down lpolice] -> [lpolice]\n[ right lpolice] -> [ right lpolice]\n\n[ up dpolice] -> [ up 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 You've been hit back by a smooth Kettle\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################\n\nmessage Area secure\nmessage What are these people in black doing ?!\n\n################\n#..............#\n#..............#\n#..............#\n#....kkkkkk....#\n#...lc..c.cj...#\n#...l......j...#\n#...lc.@tt.j...#\n#...l..t@tcj...#\n#...l..ttt.j...#\n#...lc..c..j...#\n#....iiiiii....#\n#..............#\n#..............#\n#..............#\n################\n\nmessage Area secure\nmessage We may be in trouble.\n\n##########\n#..k.....#\n#........#\n#..ltck.j#\n#..c..t..#\n#..t..c..#\n#l.ictj..#\n#........#\n#.....i..#\n##########\n\nmessage Area secure\nmessage KAW !\n\n###############\n#.............#\n#....k........#\n#......k......#\n#..l.c....k...#\n#......c.j....#\n#...l.@tt.c.j.#\n#.l.c.tt@.....#\n#.....t@t.....#\n#..l.c..c.j...#\n#.....i.......#\n#....i..i.....#\n#.............#\n#.............#\n###############\n\nmessage Area secure\nmessage Mickael Jackson was here.\nmessage Next time it will be Despacito.\n\n", [2, 0, 2, 0, 0, 1, 1, 1, 3, 3, 2, 1, 1, 0, 0, 1, 2, 1, 1, 0, 3, 3, 3, 3, 0, 1, 0, 0], "background wall:0,0,0,0,0,0,0,0,0,0,\n0,background:1,1,background rpolice:2,1,1,1,1,1,0,\n0,1,1,background crate:3,1,1,2,1,1,0,\n0,background dpolice:4,3,background upolice:5,1,background target:6,3,1,1,0,\n0,1,1,6,1,1,background lpolice:7,1,1,0,\n0,1,1,1,1,1,6,1,1,0,\n0,4,3,5,6,1,1,1,1,0,\n0,1,1,7,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,0,\n", 7, "1645562847734.9592"] + ], + [ + "Lightdown", + ["title Lightdown\nauthor Stingby12\nhomepage https://stingby12.itch.io/\n\nbackground_color #262626\n\nrun_rules_on_level_start\n\nkey_repeat_interval 0.3\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nPlayer\nWhite Black\n.000.\n01010\n00000\n01110\n.000.\n\nNormalWall\nWhite\n\nLightWall\nWhite Gray\n00000\n00100\n01110\n00100\n00000\n\nSolidWall\n#262626\n\nFakeWall\nTransparent\n\nLightCrate\nWhite #808080 Black\n.000.\n00100\n01010\n00100\n.000.\n\nNormalCrate\nWhite #808080 Black\n.000.\n00200\n02120\n00200\n.000.\n\nFakeCrate\nTransparent\n\nTarget\nWhite #808080\n.....\n.0.0.\n..1..\n.0.0.\n.....\n\nTargetActi\nWhite White\n.....\n.0.0.\n..1..\n.0.0.\n.....\n\nLightFew\nblack\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nLightMid\nblack\n.....\n.....\n.....\n.....\n.....\n\nLightFull\nblack\n.....\n.....\n.....\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n% = LightWall\n# = NormalWall and FakeWall\n- = SolidWall\n* = LightCrate\n@ = NormalCrate and FakeCrate\nx = Target\n\nLight = LightFull or LightMid or LightFew\nCrate = LightCrate or NormalCrate\nWall = NormalWall or LightWall or SolidWall\n\n=======\nSOUNDS\n=======\n\nstartgame 4133508\nendlevel 74089700\n\nCrate move 19432707\nrestart 14550505\n\nsfx0 10653902\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFakeWall\nNormalWall, LightWall\nTarget, TargetActi\nFakeCrate\nCrate\nLight\nSolidWall\nPlayer\n\n======\nRULES\n======\n\n(Clearing)\n[Light] -> []\n[TargetActi] -> [Target]\n\n(Basic movement)\n[> Player | Crate] -> [> Player | > Crate]\n[> Player | Wall] -> [Player | Wall]\n\n[> Player] [> Crate | Crate] -> [Player] [Crate | Crate]\n[> Player] [> Crate | Wall] -> [Player] [Crate | Wall]\n[> Crate FakeCrate | FakeCrate] -> [ | Crate FakeCrate] sfx0\n\n[> Crate FakeCrate] -> [> Crate > FakeCrate]\n\nlate [Target Crate] -> [TargetActi Crate]\nlate [Target FakeCrate] -> [TargetActi FakeCrate]\n\n(Lighting)\nlate [LightCrate] -> [LightFull LightCrate]\n+ late [LightWall] -> [LightFull LightWall]\n+ late [LightFull | no Light no SolidWall] -> [LightFull | LightMid]\n+ late [LightMid | no Light no SolidWall] -> [LightMid | LightFew]\n\n(Darkess effects)\nlate [NormalWall no Light] -> []\nlate [FakeWall Light] -> [FakeWall NormalWall Light]\n\nlate [NormalCrate no Light] -> []\nlate [FakeCrate Light] -> [FakeCrate NormalCrate Light]\n\n==============\nWINCONDITIONS\n==============\n\nNo Target\n\n=======\nLEVELS\n=======\n\nmessage It's so dark in here.\nmessage Maybe this lantern can help me find the way out.\n\nmessage Level 1 of 8\n\n###########\n#....#....#\n#...*#....#\n#p...#.*#x%\n#...*#....#\n#....#....#\n###########\n\nmessage Level 2 of 8\n\n#####%\n#....#\n#x.*.#\n#p####\n#x.*.#\n#....#\n#####%\n\nmessage Level 3 of 8\n\n.........\n.x...###.\n.x@.*p@#.\n.x...###.\n.........\n\nmessage Level 4 of 8\n\n########\n#.@@@@.#\n#..*.p.#\n#.xxxxx#\n########\n\nmessage Level 5 of 8\n\n.......\n.@.#.p.\n...#...\n.*.#.x.\n.......\n\nmessage Level 6 of 8\n\n.....######\n.....@@.xx%\n--*..@@pxx#\n.....@@.xx%\n.....######\n\nmessage Level 7 of 8\n\n###%#####%#####%###\n#.....#...*.#x.@..#\n#...@*#...*x#..*..#\n#p.x@x#...*.#x.@..#\n#...@*#...*x#..*..#\n#.....#...*.#x.@..#\n###%#####%#####%###\n\nmessage Level 8 of 8\n\n-######-\n##@@@@##\n#@xxxx@#\n#@x*xx@#\n#@xp*x@#\n#@xxxx@#\n##@@@@##\n-######-\n\nmessage I guess darkness is not that useless after all.\n\n", [0, 1, 1, 1, 1, 1, 1, 2, 3, 3, 2, 1, 2, 1, 0, 3, 0, 0, 1, 1, 2, 3, 2, 3, 3, 0, 0, 3, 1, 3, 2, "undo", 1, 2, 3, "undo", 0, 1, 1, 2, 3, 0, 3, 3, 3, 2, "undo", 0, 3, 1, 2, 2, 3, 3, 3, "undo", "undo", 1, 0, 0, 2, 3, 2, 2, 3, 3, 3, 3, 0, 0, 1, 0, 1, 2, 3, 2, 2, 2, 1, 1, 1, 0, 0, 3, "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", 2, "undo", 3, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 3, 2, 3, "undo", 1, 3, 2, "undo", 1, 2, 3, 3, 2, 3, 3, 1, "undo", "undo", "restart", 1, 1, 1, 1, 0, 1, 2, 3, 2, 2, 1, 1, 0, 3, 3, "undo", 2, 3, 3, 0, 3, "undo", 0, 3, 3, 2, 1, 2, 1, 0, 2, 1, 1, 0, 3, 3, 0, "undo", 0, 2, 1, 0, 0, 3, 3, "undo", 3, "undo", 0, 3, 3, 2, 3, 2, 1, 2, 1, 2, 1, 0, 0, 0, 1, 1, "undo", 1, 3, 1, 1, 2, 3, 2, 3, 2, 3, 0, 0, 0, 3, 3, 3, 3, 3, 2, 1], "background:0,0,background solidwall:1,0,0,0,0,1,0,0,0,\n0,0,0,0,0,0,0,background lightfew:2,0,0,background fakecrate:3,\n2,background lightmid:4,2,background fakewall:5,2,background fakecrate lightmid normalcrate:6,background lightcrate lightfull:7,background fakewall lightmid normalwall:8,5,3,background fakecrate lightfew normalcrate:9,\n6,background fakewall lightfew normalwall:10,5,0,0,2,5,5,background lightfew target:11,background player target:12,11,\n5,10,background lightmid target:13,11,13,10,8,background lightfull lightwall:14,8,14,8,\n", 13, "1645563041712.7258"] + ], + + + + [ + "I Need To Stop My Teleport Gun", + ["title I Need To Stop My Teleport Gun\nauthor duyaa\nhomepage https://confoundingcalendar.itch.io/\n\nagain_interval 0.1\nbackground_color #151244\ntext_color #f9cb60\n\n========\nOBJECTS\n========\n\nBackground \n#f9cb60 #f9960f #bc2f01\n00001\n01000\n00100\n00010\n10000\n\nSave\n#f9cb60 #f9960f #bc2f01\n01111\n10001\n10101\n10001\n11110\n\nSaveFinal\n#f9cb60 #f9960f #bc2f01\n01111\n10001\n10101\n10001\n11110\n\nPit\n#151244 #60117f #922a95\n00001\n01000\n00100\n00010\n10000\n\nPlayer\ntransparent #be7dbc #60117f #bc2f01\n03030\n02220\n21212\n02220\n02020\n\nDeadPlayer\ntransparent #be7dbc\n01010\n01110\n10101\n01110\n01010\n\nGun0\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n10000\n10000\n11111\n\nGun1\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n12000\n12000\n11111\n\nGun2\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n12300\n12300\n11111\n\nGun3\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n12340\n12340\n11111\n\nGun4\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n12345\n12345\n11111\n\nGunBroken1\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n12145\n12345\n11111\n\nGunBroken2\n#f9cb60 #680703 #151244 #bc2f01 #922a95 #be7dbc\n01010\n11111\n11315\n12145\n11111\n\nGunBroken3\n#f9cb60 #680703 #bc2f01 #f9960f #be7dbc\n01110\n11211\n12321\n11214\n11111\n\nGunBroken4\n#f9cb60 #680703 #bc2f01 #f9960f\n01210\n12321\n23032\n12321\n11211\n\nGunBroken5\n#f9cb60 #680703 #bc2f01 #f9960f\n12321\n23032\n30003\n23032\n12321\n\nGunBroken6\n#f9cb60 #bc2f01 #f9960f\n12021\n20002\n00000\n20002\n12021\n\nGunBroken7\n#f9cb60 #f9960f\n10001\n00000\n00000\n00000\n10001\n\nGunBroken8\n#f9cb60\n00000\n00000\n00000\n00000\n00000\n\nBulletD\ntransparent #be7dbc #922a95 #60117f\n00300\n00200\n02120\n00200\n00000\n\nBulletL\ntransparent #be7dbc #922a95 #60117f\n00000\n00200\n02123\n00200\n00000\n\nBulletR\ntransparent #be7dbc #922a95 #60117f\n00000\n00200\n32120\n00200\n00000\n\nBulletU\ntransparent #be7dbc #922a95 #60117f\n00000\n00200\n02120\n00200\n00300\n\nCrate\n#7f6962 #680703\n00000\n01110\n01110\n01110\n00000\n\nCrateUL\n#7f6962 #680703 transparent\n22220\n22200\n22010\n20110\n00000\n\nCrateUR\n#7f6962 #680703 transparent\n02222\n00222\n01022\n01102\n00000\n\nCrateDL\n#7f6962 #680703 transparent\n00000\n20110\n22010\n22200\n22220\n\nCrateDR\n#7f6962 #680703 transparent\n00000\n01102\n01022\n00222\n02222\n\nTempGun\ntransparent\n\nBorderCheck\ntransparent\n\nTempTele\ntransparent\n\nSolutionCheck\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n: = Save\n; = SaveFinal\nX = Pit and BorderCheck\n# = Pit\nP = Player\nG = Gun0\n0 = Crate\n1 = CrateUL\n2 = CrateUR\n3 = CrateDL\n4 = CrateDR\n5 = CrateUL and Save\n6 = CrateUR and Save\n7 = CrateDL and Save\n8 = CrateDR and Save\nB = CrateUR and SolutionCheck\nd = BulletD\nr = BulletR\nl = BulletL\nu = BulletU\n\nGun = Gun0 or Gun1 or Gun2 or Gun3 or Gun4\nGunBroken = GunBroken1 or GunBroken2 or GunBroken3 or GunBroken4 or GunBroken5 or GunBroken6 or GunBroken7 or GunBroken8\nGunOrGunBroken = Gun or GunBroken\nObject = Crate or CrateUL or CrateUR or CrateDL or CrateDR\nBullet = BulletD or BulletL or BulletR or BulletU\n\n( for bullet colliding )\nObjectD = Crate or CrateDL or CrateDR\nObjectL = Crate or CrateUL or CrateDL\nObjectR = Crate or CrateUR or CrateDR or Gun\nObjectU = Crate or CrateUL or CrateUR\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSave, Pit, SaveFinal, SolutionCheck\nGun, GunBroken, Object\nPlayer\nDeadPlayer\nBulletD\nBulletL\nBulletR\nBulletU\nTempGun\nBorderCheck\nTempTele\n\n======\nRULES \n====== \n\n( gun charging )\n[GunOrGunBroken] -> [GunOrGunBroken TempGun]\n[Gun0 TempGun] -> [Gun1 no TempGun]\n[Gun1 TempGun] -> [Gun2 no TempGun]\n[Gun2 TempGun] -> [Gun3 no TempGun]\n[Gun3 TempGun] -> [Gun4 no TempGun]\nright [Gun4 TempGun | no ObjectR] -> [Gun0 BulletR no TempGun | ]\nright [Gun4 TempGun | ObjectR] -> [GunBroken1 no TempGun | ObjectR] again\n( gun breaking )\n[GunBroken1 TempGun] -> [GunBroken2 no TempGun] again\n[GunBroken2 TempGun] -> [GunBroken3 no TempGun] again\n[GunBroken3 TempGun] -> [GunBroken4 no TempGun] again\n[GunBroken4 TempGun] -> [GunBroken5 no TempGun] again\n[GunBroken5 TempGun] -> [GunBroken6 no TempGun] again\n[GunBroken6 TempGun] -> [GunBroken7 no TempGun] again\n[GunBroken7 TempGun] -> [GunBroken8 no TempGun] win\n\n( bullet moving )\n[Bullet BorderCheck] -> [Player TempTele BorderCheck]\n[BulletD][Gun] -> [down BulletD][Gun]\n[BulletL][Gun] -> [left BulletL][Gun]\n[BulletR][Gun] -> [right BulletR][Gun]\n[BulletU][Gun] -> [up BulletU][Gun]\n( bullet and object colliding )\ndown [> BulletD | ObjectD] -> [stationary Player < TempTele | ObjectD]\nlate [ BulletD CrateUL] -> [ BulletL CrateUL]\nlate [ BulletD CrateUR] -> [ BulletR CrateUR]\nleft [> BulletL | ObjectL] -> [stationary Player < TempTele | ObjectL]\nlate [ BulletL CrateUR] -> [ BulletU CrateUR]\nlate [ BulletL CrateDR] -> [ BulletD CrateDR]\nright [> BulletR | ObjectR] -> [stationary Player < TempTele | ObjectR]\nlate [ BulletR CrateUL] -> [BulletU CrateUL]\nlate [ BulletR CrateDL] -> [BulletD CrateDL]\nup [> BulletU | ObjectU] -> [stationary Player < TempTele | ObjectU]\nlate [BulletU CrateDL] -> [ BulletL CrateDL]\nlate [BulletU CrateDR] -> [ BulletR CrateDR]\n( teleport collision recoiling )\n[> TempTele Object] -> [> TempTele > Object]\n\n( teleportation happening )\n[Player no TempTele][TempTele] -> [][TempTele]\n[DeadPlayer no TempTele][TempTele] -> [] [TempTele]\n[TempTele] -> []\n\n( player, object normally moving )\n[> Player | Object] -> [> Player | > Object]\n[> Object | stationary Object] -> [> Object | > Object]\n( cannot push gun )\n[> Player | GunOrGunBroken] -> [stationary Player | GunOrGunBroken]\n[> Object | GunOrGunBroken] -> [stationary Object | GunOrGunBroken]\n[> Object | stationary Object] -> [stationary Object | Object]\n[> Player | stationary Object] -> [stationary Player | Object]\n( pit )\nlate [Player Pit] -> [DeadPlayer Pit]\n[> Object | Pit] -> [ | Pit]\n( checkpoint )\nlate [SolutionCheck Bullet][SaveFinal] -> [Bullet][Save]\nlate [Player Save] -> [Player] checkpoint\n\n==============\nWINCONDITIONS\n============== \n\n======= \nLEVELS\n=======\n\nmessage Press X to wait. \n\nXXXXXXXXXXXXXXXXXXXX\nX#4##..####3##.###.X\nX####.2.###1##.###3X\nX##.....#####:4#3#0X\nX##.4.#..####..####X\nX###...#.#####2#1##X\nX###.#...###4#####1X\nX.80.######.60#####X\nX#23###0..####...##X\nX#4.#3#4;0G.##.:0#3X\nX##...#.....##...##X\nX##.1.0###..#####..X\nX###..#B####23##0:1X\nX##0#.###.##41###4.X\nX###0:0.#4..213####X\nX####0.0#.....#0:1.X\nX0:..############1#X\nX#.2.###014.0#23###X\nX#..########1##2.0#X\nX####0######4##1###X\nX########2.10######X\nXXXXXXXXXXXXXXXXXXXX\n\nmessage I'm freeeeeeeee!\n\n", [4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 3, 2, 1, 4, 4, 4, 4, 4, 4, 4, 4, 0, 3, 2, 4, 4, 1, 1, 3, 0, 3, 1, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 4, "undo", "undo", 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, 2, 2, 3, 0, 2, 2, 3, 0, 3, 0, 2, 2, "undo", "undo", "undo", "undo", 3, 2, 3, 3, 0, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0], "background bordercheck pit:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background pit:1,1,1,1,1,1,background:2,1,1,1,1,1,1,1,1,background crate:3,1,\n1,1,1,0,0,background cratedr:4,1,1,1,1,1,background cratedr save:5,background crateur:6,background bulletr cratedr:7,1,1,1,1,background bulletu pit:8,1,\n6,2,2,1,1,0,0,1,1,2,2,1,1,3,background cratedl:9,2,2,2,1,3,\n1,1,2,2,2,1,1,0,0,1,1,2,4,2,2,2,1,1,2,background crateul:10,\n2,1,3,1,2,2,1,1,1,0,0,2,2,2,2,2,1,1,1,9,\n2,background bulletd:11,2,background player:12,2,3,background bulletl pit:13,1,1,3,1,0,0,2,6,2,1,2,2,1,\n1,1,1,3,1,1,3,2,1,1,1,1,1,0,0,1,2,2,2,1,\n2,1,3,4,2,1,background crateur solutioncheck:14,1,2,3,1,1,1,1,1,0,0,1,1,1,\n2,2,2,1,2,background savefinal:15,2,1,1,1,1,1,1,3,1,1,1,0,0,1,\n1,1,1,1,1,1,2,3,2,1,1,2,4,2,1,10,1,1,6,0,\n0,1,1,1,1,1,1,1,1,background gun2:16,2,2,1,1,2,2,13,4,1,1,\n2,0,0,9,10,1,1,1,1,2,1,2,2,2,1,1,2,2,1,2,\n1,1,10,0,0,1,1,1,1,1,4,background crateur save:17,1,1,1,1,6,4,6,2,\n1,3,10,4,3,0,0,1,1,background save:18,2,1,1,3,1,background bulletr pit:19,1,1,9,10,\n10,2,1,1,1,1,1,0,0,2,2,4,2,6,1,1,2,2,2,1,\n1,1,9,1,1,6,1,1,1,0,0,1,1,1,1,1,1,1,2,2,\n2,1,1,1,1,3,13,9,6,10,1,0,0,1,1,9,1,10,1,1,\n2,2,3,1,2,1,1,2,1,1,2,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,2,2,background bulletd cratedr:20,1,2,10,1,3,1,1,0,0,2,9,3,\n1,1,10,1,1,background bulletd cratedl:21,1,2,2,10,1,10,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 1, "1645578752808.7263"] ], [ - "City road builder", - ["title City road builder\nauthor Stingby12\nhomepage https://confoundingcalendar.itch.io/\n\nbackground_color #60117f\ntext_color #f9960f\n\nnoundo\nagain_interval 0.05\nrun_rules_on_level_start\n\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\n#151244\n\nHouseNeut\n#bc2f01\n.....\n.000.\n.000.\n.000.\n.....\n\nHouseWonrg\n#922a95\n.....\n.000.\n.000.\n.000.\n.....\n\nHouseRight\n#680703\n.....\n.000.\n.000.\n.000.\n.....\n\nIntersect\n#922a95\n.....\n..0..\n.000.\n..0..\n.....\n\nWall\n#60117f\n\nPlayer\n#f9cb60 #f9960f\n.....\n.0.0.\n..1..\n.0.0.\n.....\n\nPlayerDone\n#f9cb60 #f9960f\n.....\n.....\n..1..\n.....\n.....\n\nStartpos\n#be7dbc\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nPathL\n#f9960f\n.....\n.....\n000..\n.....\n.....\n\nPathR\n#f9960f\n.....\n.....\n..000\n.....\n.....\n\nPathU\n#f9960f\n..0..\n..0..\n..0..\n.....\n.....\n\nPathD\n#f9960f\n.....\n.....\n..0..\n..0..\n..0..\n\nCorner\ntransparent\n\nStraight\ntransparent\n\nCantmove\ntransparent (#be7dbc)\n.....\n.....\n..0..\n.....\n.....\n\nCornerWonrg\n#680703\n..0..\n.0.0.\n0...0\n.0.0.\n..0..\n\nCantWin\ntransparent\n\nWillWin\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nO = HouseNeut\n+ = Intersect\nP = Player and Startpos\n\nPath = PathL or PathR or PathU or PathD\nHouse = HouseNeut or HouseWonrg or HouseRight\nWonrg = HouseWonrg or HouseNeut or CornerWonrg\n\n=======\nSOUNDS\n=======\n\nendlevel 57894308\nstartgame 74954908\n\nsfx0 92660707\nsfx1 65428907\n\nsfx2 94788500\nsfx3 78837102\n\nsfx4 52715504\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n\nCorner\nStraight\n\nCornerWonrg\nStartpos\nHouse\nIntersect\n\nPathL\nPathR\nPathU\nPathD\n\nPlayer, PlayerDone\nWall\n\nCantmove\nCantWin\nWillWin\n\n======\nRULES\n======\n\n(clearing)\n[Cantmove no Path] -> []\n[Cantwin] -> []\n\n[WillWin] -> Win\n\n(check win conditions)\n[Player] [CornerWonrg] -> [Player CantWin] [CornerWonrg]\n[Player] [HouseNeut] -> [Player CantWin] [HouseNeut]\n[Player] [HouseWonrg] -> [Player CantWin] [HouseWonrg]\nup [up Player no CantWin|Startpos] -> [PathU|PathD PlayerDone WillWin]\ndown [down Player no CantWin|Startpos] -> [PathD|PathU PlayerDone WillWin]\nleft [left Player no CantWin|Startpos] -> [PathL|PathR PlayerDone WillWin]\nright [right Player no CantWin|Startpos] -> [PathR|PathL PlayerDone WillWin]\n[WillWin] -> again\n\n(moves)\n(forward move)\nright [right Player|no Wall no Cantmove] -> [PathR|PathL Player] sfx0\nright [no Wall no Cantmove|left Player] -> [Player PathR|PathL] sfx0\ndown [down Player|no Wall no Cantmove] -> [PathD|PathU Player] sfx0\ndown [no Wall no Cantmove|up Player] -> [Player PathD|PathU] sfx0\n(backwards undo moves)\nright [> Player PathR | PathL ] -> [|Player] sfx1\ndown [> Player PathD | PathU ] -> [|Player] sfx1\nleft [> Player PathL | PathR ] -> [|Player] sfx1\nup [> Player PathU | PathD ] -> [|Player] sfx1\n\n(VERY IMPORTANT)\n[> Player] -> [Player]\n[Path] -> [Path Cantmove]\n\n(paths)\n(straight)\nlate [PathL PathR] -> [PathL PathR Straight]\nlate [PathU PathD] -> [PathU PathD Straight]\n(corner)\nlate [PathL PathU] -> [PathL PathU Corner]\nlate [PathU PathR] -> [PathU PathR Corner]\nlate [PathR PathD] -> [PathR PathD Corner]\nlate [PathD PathL] -> [PathD PathL Corner]\n(can't turn on empty)\nlate [Corner no House no Intersect no CornerWonrg] -> [Corner CornerWonrg] sfx3\n[CornerWonrg no Corner] -> [] sfx4\n(clearing)\nlate [Straight PathL no PathR] -> [PathL] again\nlate [Straight PathR no PathL] -> [PathR] again\nlate [Straight PathU no PathD] -> [PathU] again\nlate [Straight PathD no PathU] -> [PathD] again\n\nlate [Corner PathL no PathU no PathD] -> [PathL] again\nlate [Corner PathR no PathU no PathD] -> [PathR] again\nlate [Corner PathU no PathL no PathR] -> [PathU] again\nlate [Corner PathD no PathL no PathR] -> [PathD] again\n\n(turning)\nlate [Corner HouseNeut] -> [Corner HouseRight] sfx2\nlate [Straight HouseNeut] -> [Straight HouseWonrg] sfx3\n[HouseRight no Corner] -> [HouseNeut] sfx4\n[HouseWonrg no Straight] -> [HouseNeut] sfx4\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\nmessage Build a road that turns at every houses, then return to his original position, forming a loop.\nmessage Move backwards to undo.\n\n++..+.+o+\n.........\n.o.+o....\n....+.o++\n.p.####..\n...####..\n.+.....o+\n...+.o..+\n+..+.+...\n\nmessage You are hired !\nmessage -- Made for The CONFOUNDING Calendar --\n\n",[0,0,0,0,3,3,3,2,2,1,"undo","undo",3,0,0,3,3,2,2,2,3,1,0,0,0,3,3,2,2,2,1,1,1,1,0,0,3,3,1,1,2,1,1],"background intersect:0,background:1,1,1,1,1,1,1,0,\nbackground cantmove corner intersect pathd pathr:2,background cantmove pathd pathu straight:3,background cantmove housewonrg pathd pathu straight:4,3,background cantmove pathu startpos:5,1,0,1,1,\nbackground cantmove pathl pathr straight:6,1,background cantmove pathr player:7,1,1,1,1,1,1,\n6,1,background cantmove cantwin intersect pathl pathr straight:8,1,background wall:9,9,1,0,0,\nbackground cantmove intersect pathl pathr straight:10,1,background cantmove corner houseright pathd pathl:11,background cantmove corner intersect pathr pathu:12,9,9,1,1,1,\n6,1,1,6,9,9,1,background houseneut:13,0,\n10,1,1,background cantmove housewonrg pathl pathr straight:14,9,9,1,1,1,\n14,1,1,10,1,1,13,1,1,\nbackground cantmove corner intersect pathd pathl:15,3,3,background cantmove corner intersect pathl pathu:16,1,1,0,0,1,\n",2,"1645569075149.173"] + "City road builder", + ["title City road builder\nauthor Stingby12\nhomepage https://confoundingcalendar.itch.io/\n\nbackground_color #60117f\ntext_color #f9960f\n\nnoundo\nagain_interval 0.05\nrun_rules_on_level_start\n\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\n#151244\n\nHouseNeut\n#bc2f01\n.....\n.000.\n.000.\n.000.\n.....\n\nHouseWonrg\n#922a95\n.....\n.000.\n.000.\n.000.\n.....\n\nHouseRight\n#680703\n.....\n.000.\n.000.\n.000.\n.....\n\nIntersect\n#922a95\n.....\n..0..\n.000.\n..0..\n.....\n\nWall\n#60117f\n\nPlayer\n#f9cb60 #f9960f\n.....\n.0.0.\n..1..\n.0.0.\n.....\n\nPlayerDone\n#f9cb60 #f9960f\n.....\n.....\n..1..\n.....\n.....\n\nStartpos\n#be7dbc\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nPathL\n#f9960f\n.....\n.....\n000..\n.....\n.....\n\nPathR\n#f9960f\n.....\n.....\n..000\n.....\n.....\n\nPathU\n#f9960f\n..0..\n..0..\n..0..\n.....\n.....\n\nPathD\n#f9960f\n.....\n.....\n..0..\n..0..\n..0..\n\nCorner\ntransparent\n\nStraight\ntransparent\n\nCantmove\ntransparent (#be7dbc)\n.....\n.....\n..0..\n.....\n.....\n\nCornerWonrg\n#680703\n..0..\n.0.0.\n0...0\n.0.0.\n..0..\n\nCantWin\ntransparent\n\nWillWin\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nO = HouseNeut\n+ = Intersect\nP = Player and Startpos\n\nPath = PathL or PathR or PathU or PathD\nHouse = HouseNeut or HouseWonrg or HouseRight\nWonrg = HouseWonrg or HouseNeut or CornerWonrg\n\n=======\nSOUNDS\n=======\n\nendlevel 57894308\nstartgame 74954908\n\nsfx0 92660707\nsfx1 65428907\n\nsfx2 94788500\nsfx3 78837102\n\nsfx4 52715504\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n\nCorner\nStraight\n\nCornerWonrg\nStartpos\nHouse\nIntersect\n\nPathL\nPathR\nPathU\nPathD\n\nPlayer, PlayerDone\nWall\n\nCantmove\nCantWin\nWillWin\n\n======\nRULES\n======\n\n(clearing)\n[Cantmove no Path] -> []\n[Cantwin] -> []\n\n[WillWin] -> Win\n\n(check win conditions)\n[Player] [CornerWonrg] -> [Player CantWin] [CornerWonrg]\n[Player] [HouseNeut] -> [Player CantWin] [HouseNeut]\n[Player] [HouseWonrg] -> [Player CantWin] [HouseWonrg]\nup [up Player no CantWin|Startpos] -> [PathU|PathD PlayerDone WillWin]\ndown [down Player no CantWin|Startpos] -> [PathD|PathU PlayerDone WillWin]\nleft [left Player no CantWin|Startpos] -> [PathL|PathR PlayerDone WillWin]\nright [right Player no CantWin|Startpos] -> [PathR|PathL PlayerDone WillWin]\n[WillWin] -> again\n\n(moves)\n(forward move)\nright [right Player|no Wall no Cantmove] -> [PathR|PathL Player] sfx0\nright [no Wall no Cantmove|left Player] -> [Player PathR|PathL] sfx0\ndown [down Player|no Wall no Cantmove] -> [PathD|PathU Player] sfx0\ndown [no Wall no Cantmove|up Player] -> [Player PathD|PathU] sfx0\n(backwards undo moves)\nright [> Player PathR | PathL ] -> [|Player] sfx1\ndown [> Player PathD | PathU ] -> [|Player] sfx1\nleft [> Player PathL | PathR ] -> [|Player] sfx1\nup [> Player PathU | PathD ] -> [|Player] sfx1\n\n(VERY IMPORTANT)\n[> Player] -> [Player]\n[Path] -> [Path Cantmove]\n\n(paths)\n(straight)\nlate [PathL PathR] -> [PathL PathR Straight]\nlate [PathU PathD] -> [PathU PathD Straight]\n(corner)\nlate [PathL PathU] -> [PathL PathU Corner]\nlate [PathU PathR] -> [PathU PathR Corner]\nlate [PathR PathD] -> [PathR PathD Corner]\nlate [PathD PathL] -> [PathD PathL Corner]\n(can't turn on empty)\nlate [Corner no House no Intersect no CornerWonrg] -> [Corner CornerWonrg] sfx3\n[CornerWonrg no Corner] -> [] sfx4\n(clearing)\nlate [Straight PathL no PathR] -> [PathL] again\nlate [Straight PathR no PathL] -> [PathR] again\nlate [Straight PathU no PathD] -> [PathU] again\nlate [Straight PathD no PathU] -> [PathD] again\n\nlate [Corner PathL no PathU no PathD] -> [PathL] again\nlate [Corner PathR no PathU no PathD] -> [PathR] again\nlate [Corner PathU no PathL no PathR] -> [PathU] again\nlate [Corner PathD no PathL no PathR] -> [PathD] again\n\n(turning)\nlate [Corner HouseNeut] -> [Corner HouseRight] sfx2\nlate [Straight HouseNeut] -> [Straight HouseWonrg] sfx3\n[HouseRight no Corner] -> [HouseNeut] sfx4\n[HouseWonrg no Straight] -> [HouseNeut] sfx4\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\nmessage Build a road that turns at every houses, then return to his original position, forming a loop.\nmessage Move backwards to undo.\n\n++..+.+o+\n.........\n.o.+o....\n....+.o++\n.p.####..\n...####..\n.+.....o+\n...+.o..+\n+..+.+...\n\nmessage You are hired !\nmessage -- Made for The CONFOUNDING Calendar --\n\n", [0, 0, 0, 0, 3, 3, 3, 2, 2, 1, "undo", "undo", 3, 0, 0, 3, 3, 2, 2, 2, 3, 1, 0, 0, 0, 3, 3, 2, 2, 2, 1, 1, 1, 1, 0, 0, 3, 3, 1, 1, 2, 1, 1], "background intersect:0,background:1,1,1,1,1,1,1,0,\nbackground cantmove corner intersect pathd pathr:2,background cantmove pathd pathu straight:3,background cantmove housewonrg pathd pathu straight:4,3,background cantmove pathu startpos:5,1,0,1,1,\nbackground cantmove pathl pathr straight:6,1,background cantmove pathr player:7,1,1,1,1,1,1,\n6,1,background cantmove cantwin intersect pathl pathr straight:8,1,background wall:9,9,1,0,0,\nbackground cantmove intersect pathl pathr straight:10,1,background cantmove corner houseright pathd pathl:11,background cantmove corner intersect pathr pathu:12,9,9,1,1,1,\n6,1,1,6,9,9,1,background houseneut:13,0,\n10,1,1,background cantmove housewonrg pathl pathr straight:14,9,9,1,1,1,\n14,1,1,10,1,1,13,1,1,\nbackground cantmove corner intersect pathd pathl:15,3,3,background cantmove corner intersect pathl pathu:16,1,1,0,0,1,\n", 2, "1645569075149.173"] ], [ - "Every Star Needs a Tree", - ["title Every Star Needs a Tree\nauthor Toombler\nhomepage https://toombler.itch.io/\n\nbackground_color #60117f\ntext_color #be7dbc\n\nrun_rules_on_level_start\n\nrealtime_interval 0.05\n\nnoaction (remove this line to enable turning off the display with action)\n\n========\nOBJECTS\n========\n\n(\nPALETTE\n)\n\nCol1\n#151244\n\nCol2\n#60117f\n\nCol3\n#922a95\n\nCol4\n#be7dbc\n\nCol5\n#350828\n\nCol6\n#7f6962\n\nCol7\n#f9cb60\n\nCol8\n#f9960f\n\nCol9\n#bc2f01\n\nCol10\n#680703\n\n\n\n\n\nBackground\n#89228c #922a95\n00000\n01110\n01110\n01110\n00000\n\n\nWall\n#60117f\n\n\nPlayer\n#151244 #f9960f #be7dbc #151244\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nUnsatisfiedStar\n#f9960f\n0...0\n.000.\n.000.\n.000.\n0...0\n\nSatisfiedStar\n#f9cb60\n0...0\n.000.\n.000.\n.000.\n0...0\n\n\nTreeTrunk\n#151244\n0000.\n.0000\n0000.\n.0000\n.000.\n\nTreeTop\n#151244 #89228c\n11011\n10001\n00001\n10000\n10001\n\nProtectedTree\n#be7dbc (#f9960f )\n..0..\n.....\n0..0.\n.0...\n...0.\n\n\n\n\nTreeTrunkDissolveCopy\n#151244\n0000.\n.0000\n0000.\n.0000\n.000.\n\nTreeTopDissolveCopy\n#151244 #89228c\n11011\n10001\n00001\n10000\n10001\n\nDissolve0\n#89228c #922a95\n..0..\n0..1.\n.....\n.1...\n...0.\n\nDissolve1\n#89228c #922a95\n.00..\n0.11.\n..1..\n.1...\n..00.\n\nDissolve2\n#89228c #922a95\n.00..\n0.11.\n011..\n.1.00\n.000.\n\nDissolve3\n#89228c #922a95\n000..\n0.11.\n0111.\n.1.10\n.000.\n\nDissolve4\n#89228c #922a95\n00000\n01110\n01110\n01.10\n00000\n\n\nAboveTreeTop\ntransparent\n\n\nScoreStart\ntransparent\n\nScoreSatisfied\n#f9cb60\n.....\n.000.\n00000\n.000.\n.....\n\nScoreUnsatisfied\n#350828\n.....\n.000.\n00000\n.000.\n.....\n\nTempCountedStar\nblack\n\nScoreToggled\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n# = Wall\n\nS = UnsatisfiedStar\nX = SatisfiedStar\nstar = UnsatisfiedStar or SatisfiedStar\n\nT = TreeTrunk\nTree = TreeTrunk or TreeTop\n\nB = ScoreStart and wall\nScore = ScoreSatisfied or ScoreUnsatisfied\n\nDissolve = Dissolve0 or Dissolve1 or Dissolve2 or Dissolve3 or Dissolve4\nTreeDissolveCopy = TreeTrunkDissolveCopy or TreeTopDissolveCopy\n\nCol = Col1 or Col2 or Col3 or Col4 or Col5 or Col6 or Col7 or Col8 or Col9 or Col10\n\n=======\nSOUNDS\n=======\n\nstar MOVE 35528507 (36772507)\nPlayer move 63208907\n\n\nSatisfiedStar create 70313100\nUnsatisfiedStar create 55575100 (54449300) (59228107) (49933904) (15540904)\n\nstartgame 51532700 (75654300)\nendgame 38823100\n\n\nsfx1 78866304 (27218109) (89389102) (4099902) (67740500) (6235507)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nCol\nAboveTreeTop\n\nPlayer, UnsatisfiedStar, SatisfiedStar, TreeTrunk, Wall\n\nTreeTrunkDissolveCopy\nTreeTopDissolveCopy\nDissolve\n\nTreeTop\nProtectedTree\n\n\nTempCountedStar\nScoreToggled\nScoreStart\nScoreSatisfied, ScoreUnsatisfied\n\n\n======\nRULES\n======\n\n(push stars)\n[ > Player | Star ] -> [ > Player | > Star ]\n\n\n(dissolve animation)\n[ Dissolve4 TreeDissolveCopy ] -> []\n[ Dissolve3 ] -> [ Dissolve4 ]\n[ Dissolve2 ] -> [ Dissolve3 ]\n[ Dissolve1 ] -> [ Dissolve2 ]\n[ Dissolve0 ] -> [ Dissolve1 ]\n\n\n\n(stars protect trees below them)\nlate [ ProtectedTree ] -> []\nlate down [ Star | TreeTrunk ] -> [ Star | TreeTrunk ProtectedTree ]\nlate down [ ProtectedTree | TreeTrunk ] -> [ ProtectedTree | ProtectedTree TreeTrunk ]\n\n(stars kill unprotected trees)\nlate [ star | Treetrunk no ProtectedTree ] -> [ star | TreeTrunkDissolveCopy Dissolve0 ] sfx1\nlate [ TreeTop TreeTrunkDissolveCopy ] -> [ TreeTopDissolveCopy ]\n\n\n(tree top sprite)\nlate [ TreeTop ] -> []\nlate up [ TreeTrunk | no TreeTrunk ] -> [ TreeTrunk TreeTop | ]\n\n(check if stars have a tree)\nlate down [ UnsatisfiedStar | TreeTop ] -> [ SatisfiedStar | TreeTop ]\nlate down [ SatisfiedStar | no TreeTop ] -> [ UnsatisfiedStar | ] \n\n\n\n(score stuff)\nlate [ Score ] -> []\nlate right [ SatisfiedStar no TempCountedStar ][ ScoreStart | no Score ] -> [ SatisfiedStar TempCountedStar ][ ScoreStart | ScoreSatisfied ]\nlate right [ SatisfiedStar no TempCountedStar ][ Score | no Score ] -> [ SatisfiedStar TempCountedStar ][ Score | ScoreSatisfied ]\nlate right [ UnsatisfiedStar no TempCountedStar ][ ScoreStart | no Score ] -> [ UnsatisfiedStar TempCountedStar ][ ScoreStart | ScoreUnsatisfied ]\nlate right [ UnsatisfiedStar no TempCountedStar ][ Score | no Score ] -> [ UnsatisfiedStar TempCountedStar ][ Score | ScoreUnsatisfied ]\nlate [ TempCountedStar ] -> []\n\n[ action Player ][ ScoreStart no ScoreToggled ] -> [ Player ][ ScoreStart ScoreToggled ] \n[ action Player ][ ScoreStart ScoreToggled ] -> [ Player ][ ScoreStart ] \nlate [ Score ][ ScoreToggled ] -> [ ][ ScoreToggled ]\n\n\n==============\nWINCONDITIONS\n==============\n\nno UnsatisfiedStar\n\n\n=======\nLEVELS\n=======\n\n\n\n(things:\n- can't destroy from top\n- use star to free other star\n- use star to make path to other area\n- 4 high = can fit two stars\n)\n\n\n###################\n###################\n#######........####\n###...t.....t..##..\n###.x.t.....t..##s.\n####t##..s..t..##..\n....t.......t..#.s.\n....t.......t..#.s.\n..tttt#t#...t.##t..\n....#...#.p.t...t..\n#####s.s#..........\n#####...#t#########\n###################\n#####b#############\n###################\n\nmessage Thanks For Playing!\n\n(hold right\n................................\np.x.............................\n..t.tt.tt.t.t.t...tt.tt.t.t.t.t.\n................................\n..s.............................\n)\n\n(\n..........\n....s.....\n.t....s...\n.t.....t..\n.t.t.s.t..\n.t.t......\n...t..p...\n..........\n)\n\n\n\n\n\n\n\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",0,"tick","tick","tick",0,"tick","tick","tick",0,"tick","tick",1,"tick","tick",0,"tick","tick","tick","tick","tick","tick","tick","tick",1,"tick",0,"tick","tick","tick",3,"tick","tick",3,"tick","tick","tick","tick","tick","tick","tick","tick","tick",0,"tick","tick","tick",3,"tick","tick","tick","tick",2,"tick","tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick","tick",3,"tick","tick","tick",0,"tick","tick","tick",3,"tick",0,"tick","tick",1,"tick","tick","tick","tick",2,"tick",1,"tick","tick",0,"tick","tick","tick",0,"tick","tick",1,"tick",0,"tick","tick",3,"tick","tick","tick","tick",3,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick",0,"tick","tick","tick",1,"tick","tick","tick",3,"tick","tick",3,"tick","tick",2,"tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",3,"tick",0,"tick","tick","tick",0,"tick","tick","tick",0,"tick","tick","tick",0,"tick","tick","tick","tick","tick","tick","tick",2,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",0,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick","tick","tick","tick","tick","tick",3,"tick","tick",2,"tick","tick","tick",2,"tick","tick",2,"tick","tick",1,"tick","tick","tick",1,"tick","tick",0,"tick","tick","tick",0,"tick","tick","undo","tick","tick","tick","tick","undo","tick","tick","tick","undo","tick","tick","tick","undo","tick","tick","tick","tick","undo","tick","tick","tick","undo","tick","tick","tick","tick","undo","tick","tick","tick","undo","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",3,"tick","tick","tick",0,"tick","tick","tick",0,"tick","tick","tick",1,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick",3,"tick","tick",2,"tick",1,"tick","tick","tick","tick",1,"tick","tick","tick",1,"tick","tick","tick",1,"tick","tick","tick",1,"tick","tick","tick",1,"tick","tick","tick",1,"tick","tick","tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",3,"tick","tick","tick",3,"tick","tick",0,"tick","tick","tick","tick","tick","tick","tick",3,"tick",0,"tick","tick","tick",0,"tick","tick","tick",0,"tick","tick","tick","tick",0,"tick","tick","tick",1,"tick","tick","tick","tick",1,"tick","tick","tick",1,"tick","tick","tick",1,"tick",1,"tick","tick",1,"tick","tick","tick","tick",2,"tick",1,"tick","tick","tick",1,"tick","tick","tick",1,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",3,2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",3,"tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",2,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick",0,"tick","tick",0,"tick",3,"tick","tick",0,"tick","tick",3,"tick","tick",0,"tick","tick","tick",0,"tick","tick","tick",0,"tick","tick","tick",0,"tick",1,"tick","tick","tick",2,"tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick","tick","tick","tick","tick","tick",3,"tick",2,"tick","tick",1,"tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background wall:0,0,0,0,0,0,background:1,1,1,1,0,0,0,0,0,0,0,0,0,\n0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,\nbackground treetop treetrunk:2,1,0,0,0,0,0,0,0,0,1,1,0,1,1,2,1,0,0,\n0,0,0,0,0,0,1,background satisfiedstar:3,background protectedtree treetop treetrunk:4,background protectedtree treetrunk:5,5,5,0,0,0,0,0,0,0,\n0,0,1,1,0,1,1,2,1,background unsatisfiedstar:6,1,0,background scorestart wall:7,0,0,0,0,2,background treetrunk:8,\n0,1,1,0,1,1,1,0,background scoresatisfied wall:9,0,0,0,1,1,1,1,1,1,2,\n1,6,1,0,9,0,0,0,1,1,1,1,1,1,0,0,0,0,0,\n9,0,0,0,1,1,1,1,1,1,1,1,3,4,0,9,0,0,0,\n1,1,1,1,1,1,1,1,1,0,0,background scoreunsatisfied wall:10,0,0,0,1,1,1,1,\n1,1,1,1,1,0,0,10,0,0,0,3,4,1,1,2,8,8,1,\n1,0,0,10,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,\n0,0,0,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,\n0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,\n3,4,5,1,0,0,0,0,0,0,0,1,1,1,1,1,1,6,1,\n0,0,0,0,0,0,0,1,1,1,1,1,1,background player:11,1,0,0,0,0,\n",0,"1645569315086.5925"] + "Every Star Needs a Tree", + ["title Every Star Needs a Tree\nauthor Toombler\nhomepage https://toombler.itch.io/\n\nbackground_color #60117f\ntext_color #be7dbc\n\nrun_rules_on_level_start\n\nrealtime_interval 0.05\n\nnoaction (remove this line to enable turning off the display with action)\n\n========\nOBJECTS\n========\n\n(\nPALETTE\n)\n\nCol1\n#151244\n\nCol2\n#60117f\n\nCol3\n#922a95\n\nCol4\n#be7dbc\n\nCol5\n#350828\n\nCol6\n#7f6962\n\nCol7\n#f9cb60\n\nCol8\n#f9960f\n\nCol9\n#bc2f01\n\nCol10\n#680703\n\n\n\n\n\nBackground\n#89228c #922a95\n00000\n01110\n01110\n01110\n00000\n\n\nWall\n#60117f\n\n\nPlayer\n#151244 #f9960f #be7dbc #151244\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nUnsatisfiedStar\n#f9960f\n0...0\n.000.\n.000.\n.000.\n0...0\n\nSatisfiedStar\n#f9cb60\n0...0\n.000.\n.000.\n.000.\n0...0\n\n\nTreeTrunk\n#151244\n0000.\n.0000\n0000.\n.0000\n.000.\n\nTreeTop\n#151244 #89228c\n11011\n10001\n00001\n10000\n10001\n\nProtectedTree\n#be7dbc (#f9960f )\n..0..\n.....\n0..0.\n.0...\n...0.\n\n\n\n\nTreeTrunkDissolveCopy\n#151244\n0000.\n.0000\n0000.\n.0000\n.000.\n\nTreeTopDissolveCopy\n#151244 #89228c\n11011\n10001\n00001\n10000\n10001\n\nDissolve0\n#89228c #922a95\n..0..\n0..1.\n.....\n.1...\n...0.\n\nDissolve1\n#89228c #922a95\n.00..\n0.11.\n..1..\n.1...\n..00.\n\nDissolve2\n#89228c #922a95\n.00..\n0.11.\n011..\n.1.00\n.000.\n\nDissolve3\n#89228c #922a95\n000..\n0.11.\n0111.\n.1.10\n.000.\n\nDissolve4\n#89228c #922a95\n00000\n01110\n01110\n01.10\n00000\n\n\nAboveTreeTop\ntransparent\n\n\nScoreStart\ntransparent\n\nScoreSatisfied\n#f9cb60\n.....\n.000.\n00000\n.000.\n.....\n\nScoreUnsatisfied\n#350828\n.....\n.000.\n00000\n.000.\n.....\n\nTempCountedStar\nblack\n\nScoreToggled\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n# = Wall\n\nS = UnsatisfiedStar\nX = SatisfiedStar\nstar = UnsatisfiedStar or SatisfiedStar\n\nT = TreeTrunk\nTree = TreeTrunk or TreeTop\n\nB = ScoreStart and wall\nScore = ScoreSatisfied or ScoreUnsatisfied\n\nDissolve = Dissolve0 or Dissolve1 or Dissolve2 or Dissolve3 or Dissolve4\nTreeDissolveCopy = TreeTrunkDissolveCopy or TreeTopDissolveCopy\n\nCol = Col1 or Col2 or Col3 or Col4 or Col5 or Col6 or Col7 or Col8 or Col9 or Col10\n\n=======\nSOUNDS\n=======\n\nstar MOVE 35528507 (36772507)\nPlayer move 63208907\n\n\nSatisfiedStar create 70313100\nUnsatisfiedStar create 55575100 (54449300) (59228107) (49933904) (15540904)\n\nstartgame 51532700 (75654300)\nendgame 38823100\n\n\nsfx1 78866304 (27218109) (89389102) (4099902) (67740500) (6235507)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nCol\nAboveTreeTop\n\nPlayer, UnsatisfiedStar, SatisfiedStar, TreeTrunk, Wall\n\nTreeTrunkDissolveCopy\nTreeTopDissolveCopy\nDissolve\n\nTreeTop\nProtectedTree\n\n\nTempCountedStar\nScoreToggled\nScoreStart\nScoreSatisfied, ScoreUnsatisfied\n\n\n======\nRULES\n======\n\n(push stars)\n[ > Player | Star ] -> [ > Player | > Star ]\n\n\n(dissolve animation)\n[ Dissolve4 TreeDissolveCopy ] -> []\n[ Dissolve3 ] -> [ Dissolve4 ]\n[ Dissolve2 ] -> [ Dissolve3 ]\n[ Dissolve1 ] -> [ Dissolve2 ]\n[ Dissolve0 ] -> [ Dissolve1 ]\n\n\n\n(stars protect trees below them)\nlate [ ProtectedTree ] -> []\nlate down [ Star | TreeTrunk ] -> [ Star | TreeTrunk ProtectedTree ]\nlate down [ ProtectedTree | TreeTrunk ] -> [ ProtectedTree | ProtectedTree TreeTrunk ]\n\n(stars kill unprotected trees)\nlate [ star | Treetrunk no ProtectedTree ] -> [ star | TreeTrunkDissolveCopy Dissolve0 ] sfx1\nlate [ TreeTop TreeTrunkDissolveCopy ] -> [ TreeTopDissolveCopy ]\n\n\n(tree top sprite)\nlate [ TreeTop ] -> []\nlate up [ TreeTrunk | no TreeTrunk ] -> [ TreeTrunk TreeTop | ]\n\n(check if stars have a tree)\nlate down [ UnsatisfiedStar | TreeTop ] -> [ SatisfiedStar | TreeTop ]\nlate down [ SatisfiedStar | no TreeTop ] -> [ UnsatisfiedStar | ] \n\n\n\n(score stuff)\nlate [ Score ] -> []\nlate right [ SatisfiedStar no TempCountedStar ][ ScoreStart | no Score ] -> [ SatisfiedStar TempCountedStar ][ ScoreStart | ScoreSatisfied ]\nlate right [ SatisfiedStar no TempCountedStar ][ Score | no Score ] -> [ SatisfiedStar TempCountedStar ][ Score | ScoreSatisfied ]\nlate right [ UnsatisfiedStar no TempCountedStar ][ ScoreStart | no Score ] -> [ UnsatisfiedStar TempCountedStar ][ ScoreStart | ScoreUnsatisfied ]\nlate right [ UnsatisfiedStar no TempCountedStar ][ Score | no Score ] -> [ UnsatisfiedStar TempCountedStar ][ Score | ScoreUnsatisfied ]\nlate [ TempCountedStar ] -> []\n\n[ action Player ][ ScoreStart no ScoreToggled ] -> [ Player ][ ScoreStart ScoreToggled ] \n[ action Player ][ ScoreStart ScoreToggled ] -> [ Player ][ ScoreStart ] \nlate [ Score ][ ScoreToggled ] -> [ ][ ScoreToggled ]\n\n\n==============\nWINCONDITIONS\n==============\n\nno UnsatisfiedStar\n\n\n=======\nLEVELS\n=======\n\n\n\n(things:\n- can't destroy from top\n- use star to free other star\n- use star to make path to other area\n- 4 high = can fit two stars\n)\n\n\n###################\n###################\n#######........####\n###...t.....t..##..\n###.x.t.....t..##s.\n####t##..s..t..##..\n....t.......t..#.s.\n....t.......t..#.s.\n..tttt#t#...t.##t..\n....#...#.p.t...t..\n#####s.s#..........\n#####...#t#########\n###################\n#####b#############\n###################\n\nmessage Thanks For Playing!\n\n(hold right\n................................\np.x.............................\n..t.tt.tt.t.t.t...tt.tt.t.t.t.t.\n................................\n..s.............................\n)\n\n(\n..........\n....s.....\n.t....s...\n.t.....t..\n.t.t.s.t..\n.t.t......\n...t..p...\n..........\n)\n\n\n\n\n\n\n\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", 1, "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", 0, "tick", "tick", "tick", 3, "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", 0, "tick", "tick", "tick", 3, "tick", 0, "tick", "tick", 1, "tick", "tick", "tick", "tick", 2, "tick", 1, "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", 1, "tick", 0, "tick", "tick", 3, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", 0, "tick", "tick", "tick", 1, "tick", "tick", "tick", 3, "tick", "tick", 3, "tick", "tick", 2, "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", 2, "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "undo", "tick", "tick", "tick", "tick", "undo", "tick", "tick", "tick", "undo", "tick", "tick", "tick", "undo", "tick", "tick", "tick", "tick", "undo", "tick", "tick", "tick", "undo", "tick", "tick", "tick", "tick", "undo", "tick", "tick", "tick", "undo", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", 1, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", 3, "tick", "tick", 2, "tick", 1, "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", 1, "tick", "tick", 1, "tick", "tick", "tick", "tick", 2, "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 3, "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 2, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", 0, "tick", "tick", 0, "tick", 3, "tick", "tick", 0, "tick", "tick", 3, "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", 1, "tick", "tick", "tick", 2, "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", 2, "tick", "tick", 1, "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background wall:0,0,0,0,0,0,background:1,1,1,1,0,0,0,0,0,0,0,0,0,\n0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,\nbackground treetop treetrunk:2,1,0,0,0,0,0,0,0,0,1,1,0,1,1,2,1,0,0,\n0,0,0,0,0,0,1,background satisfiedstar:3,background protectedtree treetop treetrunk:4,background protectedtree treetrunk:5,5,5,0,0,0,0,0,0,0,\n0,0,1,1,0,1,1,2,1,background unsatisfiedstar:6,1,0,background scorestart wall:7,0,0,0,0,2,background treetrunk:8,\n0,1,1,0,1,1,1,0,background scoresatisfied wall:9,0,0,0,1,1,1,1,1,1,2,\n1,6,1,0,9,0,0,0,1,1,1,1,1,1,0,0,0,0,0,\n9,0,0,0,1,1,1,1,1,1,1,1,3,4,0,9,0,0,0,\n1,1,1,1,1,1,1,1,1,0,0,background scoreunsatisfied wall:10,0,0,0,1,1,1,1,\n1,1,1,1,1,0,0,10,0,0,0,3,4,1,1,2,8,8,1,\n1,0,0,10,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,\n0,0,0,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,\n0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,\n3,4,5,1,0,0,0,0,0,0,0,1,1,1,1,1,1,6,1,\n0,0,0,0,0,0,0,1,1,1,1,1,1,background player:11,1,0,0,0,0,\n", 0, "1645569315086.5925"] ], [ - "Long Haul Space Flight", - ["title Long Haul Space Flight\nauthor pap4qlxxlevb\nbackground_color darkblue\ntext_color lightblue\n\n========\nOBJECTS\n========\n\nBackground\nlightgray gray\n00000\n00000\n00100\n00000\n00000\n\nTarget\n#ffff22 lightgray\n.....\n.000.\n.010.\n.000.\n.....\n\nWall\ndarkgray gray\n00000\n00000\n00000\n00000\n00000\n\nPlayer\nBlack Orange white darkblue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nCrate\nlightblue #668899\n01110\n01110\n11111\n01110\n01010\n\nCryo\nblue lightgrey\n.....\n..0..\n.010.\n..0..\n.....\n\nDefunct\ngrey lightgray\n.....\n..0..\n.010.\n..0..\n.....\n\nThaw\nred lightgray\n.....\n.0.0.\n..1..\n.0.0.\n.....\n\nDthaw\ngrey lightgray\n.....\n.0.0.\n..1..\n.0.0.\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\nw = Wall\nP = Player\no = Crate\ns = Crate and Target\nx = Target\nc = Cryo\nt = Thaw\n\n=======\nSOUNDS\n=======\n\nPlayer move 81907\nCrate MOVE 96378700\nPlayer cantmove 16386304\nendlevel 55294100\nstartgame 5822103\ncrate create 49604100\nplayer create 59446908\n\n================\nCOLLISIONLAYERS\n================\n\nBackground, \nDefunct, dthaw\nTarget, Cryo, Thaw \nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate [ Player Cryo ] -> [ Crate Defunct]\n\nlate [ Crate Thaw ] -> [ Player Dthaw]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nsome Player\n\n=======\nLEVELS\n=======\n\nmessage \"It's gonna be a long, long flight. Make sure all our passengers are in their seats.\"\n\nmessage level 1 of 12\n\nwwwwwww\nwwwwxxw\nww.o..w\nwp.o.ow\nww.o..w\nwwwwxxw\nwwwwwww\n\nmessage \"Looks like someone's arrived late. Help them onboard, will ya?\"\n\nmessage level 2 of 12\n\nwwwwwww\nwwwwx.w\nww...ow\nwpp.c.w\nww....w\nwwww.xw\nwwwwwww\n\nmessage \"Honestly, you'd think people would have the decency to turn up to their cryonic space flight on time!\"\n\nmessage level 3 of 12\n\nwwwwwwwww\nwwwwxwwww\nww.o.o.ww\nwp.....xw\nww.p.c.ww\nwwwwxwwww\nwwwwwwwww\n\nmessage \"If they're gonna arrive late, they can at least help with packing everyone up.\"\n\nmessage level 4 of 12\n\nwwwwwwwww\nwpxw.c.xw\nw.p..o..w\nwp.w.cxww\nwwwwwwwww\n\nmessage \"They're lucky, they won't even feel the years pass. Not like us.\"\n\nmessage level 5 of 12\n\nwwwwwwww\nwxc..wxw\nwwo.p..w\nwwp.c..w\nwwo.p..w\nwx....xw\nwwwwwwww\n\n\nmessage \"From their perspective 75 years will pass in a blink of an eye.\"\n\nmessage level 6 of 12\n\nwwwwwwww\nwwxwwwww\nwwc..www\nww.oxwww\nwwpp..ww\nwwwwwwww\n\nmessage \"It'll be our grandkids who thaw them out on the other side.\"\n\nmessage level 7 of 12\n\nwwwwwww\nwt....w\nw.w.wpw\nw..c..w\nwow.w.w\nw....xw\nwwwwwww\n\nmessage \"I guess we're still lucky in our own way, winning the maintenance raffle.\"\n\nmessage level 8 of 12\n\nwwwwww\nww.cxw\nw.potw\nwto..w\nwxc.ww\nwwwwww\nwwwwww\nmessage \"I'd rather spend those 75 years in here than back on our ruined planet.\"\n\nmessage level 9 of 12\n\nwwwwwww\nwwt.o.w\nwwoww.w\nwp..x.w\nwwww.ww\nwwxc.ww\nwwwwwww\n\nmessage \"Wonder if they'll even remember us once they arrive...\"\n\nmessage level 10 of 12\n\nwwwwwwwwwww\nwwwww.wxx.w\nw....tw.cww\nw.o.w.w..ww\nwp.owt..cww\nw.o.w.w...w\nw....twxc.w\nwwwwwwwwwww\n\nmessage \" ... We've got a long trip ahead of us.\"\n\nmessage level 11 of 12\n\nwwwwww\nw....w\nwpoo.w\nw..o.w\nwwwtww\nwx...w\nwxxc.w\nwwwwww\n\nmessage \"If I am gonna grow old and die on this godforsaken ship...\"\n\nmessage level 12 of 12\n\nwwwwwwwwwwww\nwwwwwwww.www\nwwwwwwxw...w\nw.....twx.ww\nw.o.ww.ww.ww\nwpcow....t.w\nw.o.w.wwcc.w\nw....tw...xw\nwwwwwwwwwwww\n\nmessage \"...I'm glad I get to grow old with you.\"\n\nwwwwwww\nwwwwxxw\nwwpo..w\nw..o.ow\nwwpo..w\nwwwwxxw\nwwwwwww\n\nmessage The End :)\n\n\n",[3,2,1,2,3,3,3,1,0,3,0,0,2,0,3,3,3,2,2,2,3,3,0,0,0,3,2,3,3,2,3,0,0,0,2,"undo",1,2,1,1,2,2,1,1,1,0,1,0,0,0,3,3,3,2,2,3,3,2,2,3,3,3,2,3,2,1,0,0,0,1,3,0],"background wall:0,0,0,0,0,0,0,0,0,0,background:1,\n1,1,1,1,0,0,0,1,background crate:2,1,1,\n1,0,0,0,1,1,1,1,1,0,0,\n0,1,0,0,0,1,0,0,1,background dthaw:3,1,\nbackground thaw:4,1,3,0,0,0,0,0,1,0,0,\n0,0,background target:5,1,1,1,1,background crate target:6,0,0,6,\nbackground crate defunct:7,1,background defunct:8,1,8,0,0,1,0,0,0,\n1,1,0,0,0,0,0,0,0,0,0,\n",29,"1645570541337.319"] + "Long Haul Space Flight", + ["title Long Haul Space Flight\nauthor pap4qlxxlevb\nbackground_color darkblue\ntext_color lightblue\n\n========\nOBJECTS\n========\n\nBackground\nlightgray gray\n00000\n00000\n00100\n00000\n00000\n\nTarget\n#ffff22 lightgray\n.....\n.000.\n.010.\n.000.\n.....\n\nWall\ndarkgray gray\n00000\n00000\n00000\n00000\n00000\n\nPlayer\nBlack Orange white darkblue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nCrate\nlightblue #668899\n01110\n01110\n11111\n01110\n01010\n\nCryo\nblue lightgrey\n.....\n..0..\n.010.\n..0..\n.....\n\nDefunct\ngrey lightgray\n.....\n..0..\n.010.\n..0..\n.....\n\nThaw\nred lightgray\n.....\n.0.0.\n..1..\n.0.0.\n.....\n\nDthaw\ngrey lightgray\n.....\n.0.0.\n..1..\n.0.0.\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\nw = Wall\nP = Player\no = Crate\ns = Crate and Target\nx = Target\nc = Cryo\nt = Thaw\n\n=======\nSOUNDS\n=======\n\nPlayer move 81907\nCrate MOVE 96378700\nPlayer cantmove 16386304\nendlevel 55294100\nstartgame 5822103\ncrate create 49604100\nplayer create 59446908\n\n================\nCOLLISIONLAYERS\n================\n\nBackground, \nDefunct, dthaw\nTarget, Cryo, Thaw \nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate [ Player Cryo ] -> [ Crate Defunct]\n\nlate [ Crate Thaw ] -> [ Player Dthaw]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nsome Player\n\n=======\nLEVELS\n=======\n\nmessage \"It's gonna be a long, long flight. Make sure all our passengers are in their seats.\"\n\nmessage level 1 of 12\n\nwwwwwww\nwwwwxxw\nww.o..w\nwp.o.ow\nww.o..w\nwwwwxxw\nwwwwwww\n\nmessage \"Looks like someone's arrived late. Help them onboard, will ya?\"\n\nmessage level 2 of 12\n\nwwwwwww\nwwwwx.w\nww...ow\nwpp.c.w\nww....w\nwwww.xw\nwwwwwww\n\nmessage \"Honestly, you'd think people would have the decency to turn up to their cryonic space flight on time!\"\n\nmessage level 3 of 12\n\nwwwwwwwww\nwwwwxwwww\nww.o.o.ww\nwp.....xw\nww.p.c.ww\nwwwwxwwww\nwwwwwwwww\n\nmessage \"If they're gonna arrive late, they can at least help with packing everyone up.\"\n\nmessage level 4 of 12\n\nwwwwwwwww\nwpxw.c.xw\nw.p..o..w\nwp.w.cxww\nwwwwwwwww\n\nmessage \"They're lucky, they won't even feel the years pass. Not like us.\"\n\nmessage level 5 of 12\n\nwwwwwwww\nwxc..wxw\nwwo.p..w\nwwp.c..w\nwwo.p..w\nwx....xw\nwwwwwwww\n\n\nmessage \"From their perspective 75 years will pass in a blink of an eye.\"\n\nmessage level 6 of 12\n\nwwwwwwww\nwwxwwwww\nwwc..www\nww.oxwww\nwwpp..ww\nwwwwwwww\n\nmessage \"It'll be our grandkids who thaw them out on the other side.\"\n\nmessage level 7 of 12\n\nwwwwwww\nwt....w\nw.w.wpw\nw..c..w\nwow.w.w\nw....xw\nwwwwwww\n\nmessage \"I guess we're still lucky in our own way, winning the maintenance raffle.\"\n\nmessage level 8 of 12\n\nwwwwww\nww.cxw\nw.potw\nwto..w\nwxc.ww\nwwwwww\nwwwwww\nmessage \"I'd rather spend those 75 years in here than back on our ruined planet.\"\n\nmessage level 9 of 12\n\nwwwwwww\nwwt.o.w\nwwoww.w\nwp..x.w\nwwww.ww\nwwxc.ww\nwwwwwww\n\nmessage \"Wonder if they'll even remember us once they arrive...\"\n\nmessage level 10 of 12\n\nwwwwwwwwwww\nwwwww.wxx.w\nw....tw.cww\nw.o.w.w..ww\nwp.owt..cww\nw.o.w.w...w\nw....twxc.w\nwwwwwwwwwww\n\nmessage \" ... We've got a long trip ahead of us.\"\n\nmessage level 11 of 12\n\nwwwwww\nw....w\nwpoo.w\nw..o.w\nwwwtww\nwx...w\nwxxc.w\nwwwwww\n\nmessage \"If I am gonna grow old and die on this godforsaken ship...\"\n\nmessage level 12 of 12\n\nwwwwwwwwwwww\nwwwwwwww.www\nwwwwwwxw...w\nw.....twx.ww\nw.o.ww.ww.ww\nwpcow....t.w\nw.o.w.wwcc.w\nw....tw...xw\nwwwwwwwwwwww\n\nmessage \"...I'm glad I get to grow old with you.\"\n\nwwwwwww\nwwwwxxw\nwwpo..w\nw..o.ow\nwwpo..w\nwwwwxxw\nwwwwwww\n\nmessage The End :)\n\n\n", [3, 2, 1, 2, 3, 3, 3, 1, 0, 3, 0, 0, 2, 0, 3, 3, 3, 2, 2, 2, 3, 3, 0, 0, 0, 3, 2, 3, 3, 2, 3, 0, 0, 0, 2, "undo", 1, 2, 1, 1, 2, 2, 1, 1, 1, 0, 1, 0, 0, 0, 3, 3, 3, 2, 2, 3, 3, 2, 2, 3, 3, 3, 2, 3, 2, 1, 0, 0, 0, 1, 3, 0], "background wall:0,0,0,0,0,0,0,0,0,0,background:1,\n1,1,1,1,0,0,0,1,background crate:2,1,1,\n1,0,0,0,1,1,1,1,1,0,0,\n0,1,0,0,0,1,0,0,1,background dthaw:3,1,\nbackground thaw:4,1,3,0,0,0,0,0,1,0,0,\n0,0,background target:5,1,1,1,1,background crate target:6,0,0,6,\nbackground crate defunct:7,1,background defunct:8,1,8,0,0,1,0,0,0,\n1,1,0,0,0,0,0,0,0,0,0,\n", 29, "1645570541337.319"] ], [ - "Caramelban", - ["title Caramelban\nauthor Notan\nhomepage https://notaninart.itch.io/\nbackground_color #be7dbc\ntext_color #350828\nrun_rules_on_level_start\nnoaction\n\n========\nOBJECTS\n========\n\nPalette1\n#151244 #60117f #922a95 #be7dbc #350828\n01234\n12340\n23401\n34012\n40123\n\nPalette2\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n01234\n12340\n23401\n34012\n40123\n\nBackground\n#151244 #60117f #922a95 #be7dbc #350828\n33333\n33333\n33333\n33333\n33333\n\nTarget\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.5555\n.5..5\n.5..5\n.5555\n.....\n\nPlayerR\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.222.\n.2222\n.060.\n.666.\n.....\n\nPlayerL\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n..222\n.2222\n..060\n..666\n.....\n\nCaramel1\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.2222\n.2333\n.3322\n.2222\n.....\n\nCaramel2\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.1111\n.1222\n.2211\n.1111\n.....\n\nEdgeH\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.....\n.....\n.....\n.....\n.3333\n\nEdgeV\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n3....\n3....\n3....\n3....\n.....\n\nEdgeC\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.....\n.....\n.....\n.....\n3....\n\nStopCaramel\ntransparent\n\nStopH\ntransparent\n\nStopV\ntransparent\n\nStopC\ntransparent\n\nStretchUp\ntransparent\n\nStretchLeft\ntransparent\n\nStretchDown\ntransparent\n\nStretchRight\ntransparent\n\nWall\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.1222\n.2112\n.1212\n.1121\n.....\n\nWallH\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.....\n.....\n.....\n.....\n.2211\n\nWallV\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n1....\n1....\n2....\n2....\n.....\n\nWallC\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.....\n.....\n.....\n.....\n2....\n\nWalkMarker\ntransparent\n\n=======\nLEGEND\n=======\n\nPalette = Palette1 or Palette2\nX = Palette1\nY = Palette2\n\nPlayer = PlayerR or PlayerL\nCaramel = Caramel1 or Caramel2\nObstacle = Wall or Caramel\n\nEdgeX = EdgeH and EdgeV\nEdge = EdgeH or EdgeV or EdgeC\n\nStopEdge = StopH or StopV or StopC\nStretch = StretchUp or StretchLeft or StretchDown or StretchRight\n\n. = Background\n# = Wall\nP = PlayerR\n* = Caramel1\n% = Caramel2\nT = Target\n\n=======\nSOUNDS\n=======\n\nsfx0 30084302 (walk)\nsfx1 50705900 (on target)\nsfx2 85057703 (stretch)\nsfx3 65493303 (stretch unused)\nsfx4 42598703 (stretch unused)\nsfx5 49655103 (stretch unused)\nUndo 21479104 (72060504 60450507)\nrestart 46704309\nstartgame 21069303\nclosemessage 21069303\n(startlevel 67233309)\nendlevel 32515109\n(endgame 21069303)\ntitlescreen 21069303\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWall\nWallH\nWallV\nWallC\nTarget\nPlayer\nCaramel\n\nStopCaramel\nWalkMarker\n\nEdgeH\nEdgeV\nEdgeC\n\nStretch\n\nStopH\nStopV\nStopC\n\nPalette\n\n======\nRULES \n======\n\n(turn)\n[ right player ] -> [ right playerR ]\n[ left player ] -> [ left playerL ]\n\n(stop player)\n[ > player | wall ] -> [ player | wall ]\n\n\n(move)\n\n(add stopCaramel to walls for convenience)\n[ wall ] -> [ wall stopCaramel ]\n\n(add stop marker to caramel cubes)\n[ > player ] [ caramel no stopCaramel | stopCaramel ] -> [ > player ] [ caramel stopCaramel | stopCaramel ]\n\n(stop player if its neighbor caramel cube has stopCaramel)\n[ > player | stopCaramel ] -> [ player | stopCaramel ]\n\n(walk sound)\n[ > player ] -> [ > player walkMarker ]\n\n(move player and caramel cubes)\n[ > player | caramel ] -> [ > player | > caramel ]\n[ > caramel | caramel ] -> [ > caramel | > caramel ]\n\n\n(add stop to edges)\nleft [ left player ] [ edgeV | stopCaramel ] -> [ left player ] [ edgeV stopV | stopCaramel ]\ndown [ down player ] [ edgeH | stopCaramel ] -> [ down player ] [ edgeH stopH | stopCaramel ]\n[ right player ] [ edgeV stopCaramel ] -> [ right player ] [ edgeV stopV stopCaramel ]\n[ up player ] [ edgeH stopCaramel ] -> [ up player ] [ edgeH stopH stopCaramel ]\n\n(add stopC)\nleft [ left player ] [ edgeC | wallH ] -> [ left player ] [ edgeC stopC | wallH ]\ndown [ down player ] [ edgeC | wallV ] -> [ down player ] [ edgeC stopC | wallV ]\n[ right player ] [ edgeC wallH ] -> [ right player ] [ edgeC stopC wallH ]\n[ up player ] [ edgeC wallV ] -> [ up player ] [ edgeC stopC wallV ]\n\n\n(propagate force from player to edges)\n[ left player edgeV no stopV ] -> [ left player left edgeV ]\n[ down player edgeH no stopH ] -> [ down player down edgeH ]\nright [ right player | edgeV no stopV ] -> [ right player | right edgeV ]\nup [ up player | edgeH no stopH ] -> [ up player | up edgeH ]\n\n(propagate force between edges)\n[ moving edgeV edgeC no stopC ] -> [ moving edgeV moving edgeC ]\n+ [ moving edgeH edgeC no stopC ] -> [ moving edgeH moving edgeC ]\n+ [ moving edgeC edgeV no stopV ] -> [ moving edgeC moving edgeV ]\n+ [ moving edgeC edgeH no stopH ] -> [ moving edgeC moving edgeH ]\n+ down [ moving edgeC | edgeV no stopV ] -> [ moving edgeC | moving edgeV ]\n+ left [ moving edgeC | edgeH no stopH ] -> [ moving edgeC | moving edgeH ]\n+ up [ moving edgeV | edgeC no stopC ] -> [ moving edgeV | moving edgeC ]\n+ right [ moving edgeH | edgeC no stopC ] -> [ moving edgeH | moving edgeC ]\n\n(propagate force from edges to caramel cubes)\nleft [ left edgeV | caramel ] -> [ left edgeV | left caramel ]\ndown [ down edgeH | caramel ] -> [ down edgeH | down caramel ]\n[ right edgeV caramel ] -> [ right edgeV right caramel ]\n[ up edgeH caramel ] -> [ up edgeH up caramel ]\n\n(add stretch)\n[ left edgeC stopV ] -> [ left edgeC stopV stretchLeft ]\n[ down edgeC stopH ] -> [ down edgeC stopH stretchDown ]\n[ right edgeC stopV ] -> [ right edgeC stopV stretchRight ]\n[ up edgeC stopH ] -> [ up edgeC stopH stretchUp ]\ndown [ left edgeC | stopV ] -> [ left edgeC stretchLeft | stopV ]\nleft [ down edgeC | stopH ] -> [ down edgeC stretchDown | stopH ]\ndown [ right edgeC | stopV ] -> [ right edgeC stretchRight | stopV ]\nleft [ up edgeC | stopH ] -> [ up edgeC stretchUp | stopH ]\n\n(stretch sound)\n[ stretch ] [ walkMarker ] -> [ stretch ] [ ] sfx2\n[ walkMarker ] -> [ ] sfx0\n\n(collapse edges moving against stopC)\n[ left edgeH stopC ] -> [ stopC ]\n[ down edgeV stopC ] -> [ stopC ]\nright [ right edgeH | stopC ] -> [ | stopC ]\nup [ up edgeV | stopC ] -> [ | stopC ]\n\n(collapse edges moving against walls)\nhorizontal [ > edgeH | wallH ] -> [ | wallH ]\nvertical [ > edgeV | wallV ] -> [ | wallV ]\n\n(collapse edges moving against stationary edges)\n[ > edgeH | stationary edgeH ] -> [ | stationary edgeH ]\n[ > edgeV | stationary edgeV ] -> [ | stationary edgeV ]\n\n\n(remove markers)\n[ stopCaramel ] -> [ ]\n[ stopEdge ] -> [ ]\n\n\n\n(connect walls)\nleft [ wall no wallV | wall ] -> [ wall wallV | wall ]\ndown [ wall no wallH | wall ] -> [ wall wallH | wall ]\ndown [ wallV no wallC | wallV ] -> [ wallV wallC | wallV ]\n\n(caramel on target?)\nlate [ caramel1 target ] -> [ caramel2 target ] sfx1\nlate [ caramel2 no target ] -> [ caramel1 ]\n\n(stretch edges)\nlate left [ stretchLeft | ] -> [ | edgeH ]\nlate down [ stretchDown | ] -> [ | edgeV ]\nlate [ stretchRight ] -> [ edgeH ]\nlate [ stretchUp ] -> [ edgeV ]\n\n(add edges around caramel cubes)\nlate [ caramel no edgeH ] -> [ caramel edgeH ]\nlate [ caramel no edgeV ] -> [ caramel edgeV ]\nlate up [ caramel | no edgeH ] -> [ caramel | edgeH ]\nlate right [ caramel | no edgeV ] -> [ caramel | edgeV ]\n\n(re-assign edgeC)\nlate [ edgeC ] -> [ ]\nlate [ edgeV no edgeC ] -> [ edgeV edgeC ]\nlate [ edgeH no edgeC ] -> [ edgeH edgeC ]\nlate up [ edgeV | no edge ] -> [ edgeV | edgeC ]\nlate right [ edgeH | no edge ] -> [ edgeH | edgeC ]\n\n\n==============\nWINCONDITIONS\n==============\n\nall target on caramel\n\n======= \nLEVELS\n=======\n\nMessage Sokoban + Caramel Cubes = Caramelban\n\n#####################\n#.......#####.......#\n#.......#####...#...#\n#....*...*.##.....t.#\n#.......##.##.....t.#\n#.......##..........#\n#...#...#####...p...#\n#.......#####.......#\n#####################\n\n\nMessage You win!\n\n\n\n",[1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,2,1,3,3,2,1,0,1,2,2,2,0,0,0,1,1,1,2,2,3,3,0,1,2,2,2,3,3,0,0,0,0,2,1,0,0,3,3,0,3,2,1,2,3,3,3,1,1,2,1,2,2,3,3,0,0,0,3,3,3,1,1,1,0,0,0,3,2,2,0,2,2,2,1,2,2,3,0,1,0,0,3,0,3,3,"undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo",0,1,0,0,3,3,2,1,1,1,1,3,3,3,3,2,2,2,1,0,0,1,0,3,3,1,1,1,1,1,0,0,0,3,2,3,"undo",0,3,3,2,1,3,3,3,1,2,2,3,1,2,3,1,1,1,2,0,3,3,3,3,2,2,1,0,0,0,1,0,3,3,3,3,1,1,2,1,1,1,0,3,1,1,3,3,3,1,1,0,0,3,2,0,3,2,3,3,2,3,3,3,2,0,0,1,1,0,1,0,1,1,2,2,2,3,3,0,0,1,0,1,1,3,3,3,2,3,3,3,2,0,1,1,3,3,2],"background wall wallh:0,0,0,0,0,0,0,0,background wall:1,background wall wallv:2,background:3,3,3,3,3,3,3,2,2,3,3,\n3,3,3,3,3,2,2,3,3,3,3,3,3,3,2,2,3,3,3,3,3,\n1,3,2,2,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,2,\n2,background edgec edgeh:4,background caramel1 edgec edgeh edgev:5,3,3,3,3,3,2,background wall wallh wallv:6,background edgec wall wallh:7,background edgec edgev wall:8,background edgec edgeh edgev:9,0,0,0,0,2,background wall wallc wallh wallv:10,10,2,\n4,10,10,10,10,2,10,10,2,4,background edgec edgeh playerr:11,5,10,10,2,10,10,6,7,8,background edgec edgev:12,\n10,10,2,10,10,10,10,2,3,10,10,2,2,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,2,2,3,1,\n3,3,3,3,3,2,2,3,3,3,3,3,3,3,2,2,3,3,background target:13,13,3,\n3,3,2,2,3,3,3,3,3,3,3,2,6,0,0,0,0,0,0,0,2,\n",1,"1645572641748.1404"] + "Caramelban", + ["title Caramelban\nauthor Notan\nhomepage https://notaninart.itch.io/\nbackground_color #be7dbc\ntext_color #350828\nrun_rules_on_level_start\nnoaction\n\n========\nOBJECTS\n========\n\nPalette1\n#151244 #60117f #922a95 #be7dbc #350828\n01234\n12340\n23401\n34012\n40123\n\nPalette2\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n01234\n12340\n23401\n34012\n40123\n\nBackground\n#151244 #60117f #922a95 #be7dbc #350828\n33333\n33333\n33333\n33333\n33333\n\nTarget\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.5555\n.5..5\n.5..5\n.5555\n.....\n\nPlayerR\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.222.\n.2222\n.060.\n.666.\n.....\n\nPlayerL\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n..222\n.2222\n..060\n..666\n.....\n\nCaramel1\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.2222\n.2333\n.3322\n.2222\n.....\n\nCaramel2\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.1111\n.1222\n.2211\n.1111\n.....\n\nEdgeH\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.....\n.....\n.....\n.....\n.3333\n\nEdgeV\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n3....\n3....\n3....\n3....\n.....\n\nEdgeC\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.....\n.....\n.....\n.....\n3....\n\nStopCaramel\ntransparent\n\nStopH\ntransparent\n\nStopV\ntransparent\n\nStopC\ntransparent\n\nStretchUp\ntransparent\n\nStretchLeft\ntransparent\n\nStretchDown\ntransparent\n\nStretchRight\ntransparent\n\nWall\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.1222\n.2112\n.1212\n.1121\n.....\n\nWallH\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.....\n.....\n.....\n.....\n.2211\n\nWallV\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n1....\n1....\n2....\n2....\n.....\n\nWallC\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.....\n.....\n.....\n.....\n2....\n\nWalkMarker\ntransparent\n\n=======\nLEGEND\n=======\n\nPalette = Palette1 or Palette2\nX = Palette1\nY = Palette2\n\nPlayer = PlayerR or PlayerL\nCaramel = Caramel1 or Caramel2\nObstacle = Wall or Caramel\n\nEdgeX = EdgeH and EdgeV\nEdge = EdgeH or EdgeV or EdgeC\n\nStopEdge = StopH or StopV or StopC\nStretch = StretchUp or StretchLeft or StretchDown or StretchRight\n\n. = Background\n# = Wall\nP = PlayerR\n* = Caramel1\n% = Caramel2\nT = Target\n\n=======\nSOUNDS\n=======\n\nsfx0 30084302 (walk)\nsfx1 50705900 (on target)\nsfx2 85057703 (stretch)\nsfx3 65493303 (stretch unused)\nsfx4 42598703 (stretch unused)\nsfx5 49655103 (stretch unused)\nUndo 21479104 (72060504 60450507)\nrestart 46704309\nstartgame 21069303\nclosemessage 21069303\n(startlevel 67233309)\nendlevel 32515109\n(endgame 21069303)\ntitlescreen 21069303\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWall\nWallH\nWallV\nWallC\nTarget\nPlayer\nCaramel\n\nStopCaramel\nWalkMarker\n\nEdgeH\nEdgeV\nEdgeC\n\nStretch\n\nStopH\nStopV\nStopC\n\nPalette\n\n======\nRULES \n======\n\n(turn)\n[ right player ] -> [ right playerR ]\n[ left player ] -> [ left playerL ]\n\n(stop player)\n[ > player | wall ] -> [ player | wall ]\n\n\n(move)\n\n(add stopCaramel to walls for convenience)\n[ wall ] -> [ wall stopCaramel ]\n\n(add stop marker to caramel cubes)\n[ > player ] [ caramel no stopCaramel | stopCaramel ] -> [ > player ] [ caramel stopCaramel | stopCaramel ]\n\n(stop player if its neighbor caramel cube has stopCaramel)\n[ > player | stopCaramel ] -> [ player | stopCaramel ]\n\n(walk sound)\n[ > player ] -> [ > player walkMarker ]\n\n(move player and caramel cubes)\n[ > player | caramel ] -> [ > player | > caramel ]\n[ > caramel | caramel ] -> [ > caramel | > caramel ]\n\n\n(add stop to edges)\nleft [ left player ] [ edgeV | stopCaramel ] -> [ left player ] [ edgeV stopV | stopCaramel ]\ndown [ down player ] [ edgeH | stopCaramel ] -> [ down player ] [ edgeH stopH | stopCaramel ]\n[ right player ] [ edgeV stopCaramel ] -> [ right player ] [ edgeV stopV stopCaramel ]\n[ up player ] [ edgeH stopCaramel ] -> [ up player ] [ edgeH stopH stopCaramel ]\n\n(add stopC)\nleft [ left player ] [ edgeC | wallH ] -> [ left player ] [ edgeC stopC | wallH ]\ndown [ down player ] [ edgeC | wallV ] -> [ down player ] [ edgeC stopC | wallV ]\n[ right player ] [ edgeC wallH ] -> [ right player ] [ edgeC stopC wallH ]\n[ up player ] [ edgeC wallV ] -> [ up player ] [ edgeC stopC wallV ]\n\n\n(propagate force from player to edges)\n[ left player edgeV no stopV ] -> [ left player left edgeV ]\n[ down player edgeH no stopH ] -> [ down player down edgeH ]\nright [ right player | edgeV no stopV ] -> [ right player | right edgeV ]\nup [ up player | edgeH no stopH ] -> [ up player | up edgeH ]\n\n(propagate force between edges)\n[ moving edgeV edgeC no stopC ] -> [ moving edgeV moving edgeC ]\n+ [ moving edgeH edgeC no stopC ] -> [ moving edgeH moving edgeC ]\n+ [ moving edgeC edgeV no stopV ] -> [ moving edgeC moving edgeV ]\n+ [ moving edgeC edgeH no stopH ] -> [ moving edgeC moving edgeH ]\n+ down [ moving edgeC | edgeV no stopV ] -> [ moving edgeC | moving edgeV ]\n+ left [ moving edgeC | edgeH no stopH ] -> [ moving edgeC | moving edgeH ]\n+ up [ moving edgeV | edgeC no stopC ] -> [ moving edgeV | moving edgeC ]\n+ right [ moving edgeH | edgeC no stopC ] -> [ moving edgeH | moving edgeC ]\n\n(propagate force from edges to caramel cubes)\nleft [ left edgeV | caramel ] -> [ left edgeV | left caramel ]\ndown [ down edgeH | caramel ] -> [ down edgeH | down caramel ]\n[ right edgeV caramel ] -> [ right edgeV right caramel ]\n[ up edgeH caramel ] -> [ up edgeH up caramel ]\n\n(add stretch)\n[ left edgeC stopV ] -> [ left edgeC stopV stretchLeft ]\n[ down edgeC stopH ] -> [ down edgeC stopH stretchDown ]\n[ right edgeC stopV ] -> [ right edgeC stopV stretchRight ]\n[ up edgeC stopH ] -> [ up edgeC stopH stretchUp ]\ndown [ left edgeC | stopV ] -> [ left edgeC stretchLeft | stopV ]\nleft [ down edgeC | stopH ] -> [ down edgeC stretchDown | stopH ]\ndown [ right edgeC | stopV ] -> [ right edgeC stretchRight | stopV ]\nleft [ up edgeC | stopH ] -> [ up edgeC stretchUp | stopH ]\n\n(stretch sound)\n[ stretch ] [ walkMarker ] -> [ stretch ] [ ] sfx2\n[ walkMarker ] -> [ ] sfx0\n\n(collapse edges moving against stopC)\n[ left edgeH stopC ] -> [ stopC ]\n[ down edgeV stopC ] -> [ stopC ]\nright [ right edgeH | stopC ] -> [ | stopC ]\nup [ up edgeV | stopC ] -> [ | stopC ]\n\n(collapse edges moving against walls)\nhorizontal [ > edgeH | wallH ] -> [ | wallH ]\nvertical [ > edgeV | wallV ] -> [ | wallV ]\n\n(collapse edges moving against stationary edges)\n[ > edgeH | stationary edgeH ] -> [ | stationary edgeH ]\n[ > edgeV | stationary edgeV ] -> [ | stationary edgeV ]\n\n\n(remove markers)\n[ stopCaramel ] -> [ ]\n[ stopEdge ] -> [ ]\n\n\n\n(connect walls)\nleft [ wall no wallV | wall ] -> [ wall wallV | wall ]\ndown [ wall no wallH | wall ] -> [ wall wallH | wall ]\ndown [ wallV no wallC | wallV ] -> [ wallV wallC | wallV ]\n\n(caramel on target?)\nlate [ caramel1 target ] -> [ caramel2 target ] sfx1\nlate [ caramel2 no target ] -> [ caramel1 ]\n\n(stretch edges)\nlate left [ stretchLeft | ] -> [ | edgeH ]\nlate down [ stretchDown | ] -> [ | edgeV ]\nlate [ stretchRight ] -> [ edgeH ]\nlate [ stretchUp ] -> [ edgeV ]\n\n(add edges around caramel cubes)\nlate [ caramel no edgeH ] -> [ caramel edgeH ]\nlate [ caramel no edgeV ] -> [ caramel edgeV ]\nlate up [ caramel | no edgeH ] -> [ caramel | edgeH ]\nlate right [ caramel | no edgeV ] -> [ caramel | edgeV ]\n\n(re-assign edgeC)\nlate [ edgeC ] -> [ ]\nlate [ edgeV no edgeC ] -> [ edgeV edgeC ]\nlate [ edgeH no edgeC ] -> [ edgeH edgeC ]\nlate up [ edgeV | no edge ] -> [ edgeV | edgeC ]\nlate right [ edgeH | no edge ] -> [ edgeH | edgeC ]\n\n\n==============\nWINCONDITIONS\n==============\n\nall target on caramel\n\n======= \nLEVELS\n=======\n\nMessage Sokoban + Caramel Cubes = Caramelban\n\n#####################\n#.......#####.......#\n#.......#####...#...#\n#....*...*.##.....t.#\n#.......##.##.....t.#\n#.......##..........#\n#...#...#####...p...#\n#.......#####.......#\n#####################\n\n\nMessage You win!\n\n\n\n", [1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 2, 1, 3, 3, 2, 1, 0, 1, 2, 2, 2, 0, 0, 0, 1, 1, 1, 2, 2, 3, 3, 0, 1, 2, 2, 2, 3, 3, 0, 0, 0, 0, 2, 1, 0, 0, 3, 3, 0, 3, 2, 1, 2, 3, 3, 3, 1, 1, 2, 1, 2, 2, 3, 3, 0, 0, 0, 3, 3, 3, 1, 1, 1, 0, 0, 0, 3, 2, 2, 0, 2, 2, 2, 1, 2, 2, 3, 0, 1, 0, 0, 3, 0, 3, 3, "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", 0, 1, 0, 0, 3, 3, 2, 1, 1, 1, 1, 3, 3, 3, 3, 2, 2, 2, 1, 0, 0, 1, 0, 3, 3, 1, 1, 1, 1, 1, 0, 0, 0, 3, 2, 3, "undo", 0, 3, 3, 2, 1, 3, 3, 3, 1, 2, 2, 3, 1, 2, 3, 1, 1, 1, 2, 0, 3, 3, 3, 3, 2, 2, 1, 0, 0, 0, 1, 0, 3, 3, 3, 3, 1, 1, 2, 1, 1, 1, 0, 3, 1, 1, 3, 3, 3, 1, 1, 0, 0, 3, 2, 0, 3, 2, 3, 3, 2, 3, 3, 3, 2, 0, 0, 1, 1, 0, 1, 0, 1, 1, 2, 2, 2, 3, 3, 0, 0, 1, 0, 1, 1, 3, 3, 3, 2, 3, 3, 3, 2, 0, 1, 1, 3, 3, 2], "background wall wallh:0,0,0,0,0,0,0,0,background wall:1,background wall wallv:2,background:3,3,3,3,3,3,3,2,2,3,3,\n3,3,3,3,3,2,2,3,3,3,3,3,3,3,2,2,3,3,3,3,3,\n1,3,2,2,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,2,\n2,background edgec edgeh:4,background caramel1 edgec edgeh edgev:5,3,3,3,3,3,2,background wall wallh wallv:6,background edgec wall wallh:7,background edgec edgev wall:8,background edgec edgeh edgev:9,0,0,0,0,2,background wall wallc wallh wallv:10,10,2,\n4,10,10,10,10,2,10,10,2,4,background edgec edgeh playerr:11,5,10,10,2,10,10,6,7,8,background edgec edgev:12,\n10,10,2,10,10,10,10,2,3,10,10,2,2,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,2,2,3,1,\n3,3,3,3,3,2,2,3,3,3,3,3,3,3,2,2,3,3,background target:13,13,3,\n3,3,2,2,3,3,3,3,3,3,3,2,6,0,0,0,0,0,0,0,2,\n", 1, "1645572641748.1404"] ], [ - "Paralelism", - ["title Paralelism\nauthor Stingby12 {Remix of Octat by Increpare}\nhomepage https://www.puzzlescript.net/play.html?p=7e1e5c5b3cd9de65085e46bfb0a8d002\n\nbackground_color #233F5C\ntext_color #C294FA\n\nnoundo\nrequire_player_movement\n\n(A port of a flash game I made. The original's here:\n\nhttp://ded.increpare.com/~locus/octat/\n\n)\n\n========\nOBJECTS\n========\n\nBackground\n#3F72A6\n.....\n.000.\n.000.\n.000.\n.....\n\nactivetile\n#60ADFA\n00000\n0...0\n0...0\n0...0\n00000\n\nTarget\n#634B80\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nHorPlayer\n#C294FA\n..0..\n.000.\n.000.\n.000.\n..0..\n\nOrtPlayer\n#C294FA\n.....\n.000.\n.000.\n.000.\n.....\n\nVerPlayer\n#C294FA\n.....\n.000.\n00000\n.000.\n.....\n\nvoid 0\n#233F5C\n\ntemp\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\nP = ortplayer and activetile\na = activetile\nx = Target\ny = target and activetile\nplayer = HorPlayer or VerPlayer or OrtPlayer\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nvoid\nactivetile\nplayer\ntemp\nTarget\n\n======\nRULES\n======\n\n[ > player | no activetile ] -> cancel\n\nhorizontal [> verplayer | ] -> [ | ortplayer ]\nhorizontal [> ortplayer | ] -> [ | horplayer ]\nhorizontal [> horplayer | ] -> [ | horplayer ]\n\nvertical [> horplayer | ] -> [ | ortplayer ]\nvertical [> ortplayer | ] -> [ | verplayer ]\nvertical [> verplayer | ] -> [ | verplayer ]\n\n[ activetile | ortplayer ] -> [ temp | ortplayer ]\n[ no temp | ortplayer ] -> [ activetile | ortplayer ]\n\nvertical [ activetile | horplayer ] -> [ temp | horplayer ]\nvertical [ no temp | horplayer] -> [ activetile | horplayer ]\n\nhorizontal [ activetile | verplayer ] -> [ temp | verplayer ]\nhorizontal [ no temp | verplayer] -> [ activetile | verplayer ]\n\n[ temp ] -> []\n\nlate [activetile void ] -> [ void ]\n\n==============\nWINCONDITIONS\n==============\n\nsome player on target\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 10\n\n..........\n..........\n..........\n..........\n..........\n.x...ap...\n..........\n..........\n..........\n..........\n\nmessage Level 2 of 10\n\n...........\n...........\n...........\n...........\n...........\n....xpa....\n...........\n...........\n...........\n...........\n\n\nmessage Level 3 of 10\n\n...........\n...........\n...........\n...........\naaaaaaa..aa\n..y....ap..\naaaaaaa..aa\n...........\n...........\n...........\n\nmessage Level 4 of 10\n\n...........\n...........\n...a.......\n..aaa......\n.aaaaa.....\naaayaaa.ap.\n.aaaaa.....\n..aaa......\n...a.......\n...........\n\nmessage Level 5 of 10\n\n.a.a.a.a.\n000000000\n..aaa....\n.xaaa.ap.\n..aaa....\n000000000\n.a.a.a.a.\n\nmessage Level 6 of 10\n\n.a.a.a.a.a.\n00000000000\n.a.a.a.a.a.\naxa.a.a.apa\n.a.a.a.a.a.\n00000000000\n.a.a.a.a.a.\n\nmessage Level 7 of 10\n\n0aaaa..00\n0aaaa...0\ny..aa..ap\n0aaaa...0\n0aaaa..00\n\nmessage Level 8 of 10\n\n....0000...\n.......0...\n..00.0.0...\n.a...ap.ax.\n..00.0.0...\n.......0...\n....0000...\n\nmessage Level 9 of 10\n\naaayaaa\na0a0a0a\n.......\n0a0a0a0\n.......\na0a0a0a\naaapaaa\n\nmessage Level 10 of 10\n\n..aa..aa0aaa.aaa0aaa.\n.a0a.a0...a..a0a0.a..\n.p0a.a...0a00aaa..a..\n.a0a.a0..0a00a0a.0a0.\n.aa...aa00a00a0a.0y0.\n\nmessage My white square brother will be proud of what I did !\n\n(\nmessage level 1 of 8\n\n..........\n..........\n..........\n..........\n..........\n.x...ap...\n..........\n..........\n..........\n..........\n\nmessage level 2 of 8\n\n...........\n...........\n...........\n...........\n...........\n....xpa....\n...........\n...........\n...........\n...........\n\n\nmessage level 3 of 8\n\n\n...........\n...........\n...........\n...........\n..a........\n.axaaap....\n..a........\n...........\n...........\n...........\n\nmessage level 4 of 8\n\n\n...........\n...........\n...a.......\n..a.a......\n.a.a.a.....\na.aya.a.ap.\n.a.a.a.....\n..a.a......\n...a.......\n...........\n\nmessage level 5 of 8\n\n\n...........\n...........\n...........\n...........\naaaaaaaaaaa\n...y..ap...\naaaaaaaaaaa\n...........\n...........\n...........\n\nmessage level 6 of 8\n\n\n000000....0\n000000..0.0\n000000..0..\n000000000..\n....A...0.0\n.AY.A...AAP\n....A...0.0\n000000000..\n000000..0..\n000000..0.0\n000000....0\n\nmessage level 7 of 8\n\n\n..AAA...000\n.AY.A...AP.\n..AAA...000\n\nmessage level 8 of 8\n\n\n0AAAA..00\n0AAAA..00\nYAAAA..AP\n0AAAA..00\n0AAAA..00\n\nmessage the end\n)\n\n",[3,1,0,3,2,1,2,1,1,0,0,3,1,1,1,0,1,2,3,2,1,2,2,0,3,0,1,0,3,0,3,2,1,2,1,2,0,3,0,3,0,3,2,3,0,3,1,2,3,1,0,2,1,2],"background:0,activetile background ortplayer:1,0,0,0,0,0,activetile background:2,0,0,0,\n0,0,0,2,2,background void:3,2,3,0,0,0,\n0,3,2,3,0,0,3,0,0,0,2,\n0,3,3,0,3,0,3,2,3,3,0,\n2,0,2,0,3,3,3,3,0,3,3,\n3,0,0,0,2,0,0,0,0,0,0,\nbackground target:4,0,0,0,0,0,0,0,0,0,0,\n",15,"1645572899761.3071"] + "Paralelism", + ["title Paralelism\nauthor Stingby12 {Remix of Octat by Increpare}\nhomepage https://www.puzzlescript.net/play.html?p=7e1e5c5b3cd9de65085e46bfb0a8d002\n\nbackground_color #233F5C\ntext_color #C294FA\n\nnoundo\nrequire_player_movement\n\n(A port of a flash game I made. The original's here:\n\nhttp://ded.increpare.com/~locus/octat/\n\n)\n\n========\nOBJECTS\n========\n\nBackground\n#3F72A6\n.....\n.000.\n.000.\n.000.\n.....\n\nactivetile\n#60ADFA\n00000\n0...0\n0...0\n0...0\n00000\n\nTarget\n#634B80\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nHorPlayer\n#C294FA\n..0..\n.000.\n.000.\n.000.\n..0..\n\nOrtPlayer\n#C294FA\n.....\n.000.\n.000.\n.000.\n.....\n\nVerPlayer\n#C294FA\n.....\n.000.\n00000\n.000.\n.....\n\nvoid 0\n#233F5C\n\ntemp\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\nP = ortplayer and activetile\na = activetile\nx = Target\ny = target and activetile\nplayer = HorPlayer or VerPlayer or OrtPlayer\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nvoid\nactivetile\nplayer\ntemp\nTarget\n\n======\nRULES\n======\n\n[ > player | no activetile ] -> cancel\n\nhorizontal [> verplayer | ] -> [ | ortplayer ]\nhorizontal [> ortplayer | ] -> [ | horplayer ]\nhorizontal [> horplayer | ] -> [ | horplayer ]\n\nvertical [> horplayer | ] -> [ | ortplayer ]\nvertical [> ortplayer | ] -> [ | verplayer ]\nvertical [> verplayer | ] -> [ | verplayer ]\n\n[ activetile | ortplayer ] -> [ temp | ortplayer ]\n[ no temp | ortplayer ] -> [ activetile | ortplayer ]\n\nvertical [ activetile | horplayer ] -> [ temp | horplayer ]\nvertical [ no temp | horplayer] -> [ activetile | horplayer ]\n\nhorizontal [ activetile | verplayer ] -> [ temp | verplayer ]\nhorizontal [ no temp | verplayer] -> [ activetile | verplayer ]\n\n[ temp ] -> []\n\nlate [activetile void ] -> [ void ]\n\n==============\nWINCONDITIONS\n==============\n\nsome player on target\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 10\n\n..........\n..........\n..........\n..........\n..........\n.x...ap...\n..........\n..........\n..........\n..........\n\nmessage Level 2 of 10\n\n...........\n...........\n...........\n...........\n...........\n....xpa....\n...........\n...........\n...........\n...........\n\n\nmessage Level 3 of 10\n\n...........\n...........\n...........\n...........\naaaaaaa..aa\n..y....ap..\naaaaaaa..aa\n...........\n...........\n...........\n\nmessage Level 4 of 10\n\n...........\n...........\n...a.......\n..aaa......\n.aaaaa.....\naaayaaa.ap.\n.aaaaa.....\n..aaa......\n...a.......\n...........\n\nmessage Level 5 of 10\n\n.a.a.a.a.\n000000000\n..aaa....\n.xaaa.ap.\n..aaa....\n000000000\n.a.a.a.a.\n\nmessage Level 6 of 10\n\n.a.a.a.a.a.\n00000000000\n.a.a.a.a.a.\naxa.a.a.apa\n.a.a.a.a.a.\n00000000000\n.a.a.a.a.a.\n\nmessage Level 7 of 10\n\n0aaaa..00\n0aaaa...0\ny..aa..ap\n0aaaa...0\n0aaaa..00\n\nmessage Level 8 of 10\n\n....0000...\n.......0...\n..00.0.0...\n.a...ap.ax.\n..00.0.0...\n.......0...\n....0000...\n\nmessage Level 9 of 10\n\naaayaaa\na0a0a0a\n.......\n0a0a0a0\n.......\na0a0a0a\naaapaaa\n\nmessage Level 10 of 10\n\n..aa..aa0aaa.aaa0aaa.\n.a0a.a0...a..a0a0.a..\n.p0a.a...0a00aaa..a..\n.a0a.a0..0a00a0a.0a0.\n.aa...aa00a00a0a.0y0.\n\nmessage My white square brother will be proud of what I did !\n\n(\nmessage level 1 of 8\n\n..........\n..........\n..........\n..........\n..........\n.x...ap...\n..........\n..........\n..........\n..........\n\nmessage level 2 of 8\n\n...........\n...........\n...........\n...........\n...........\n....xpa....\n...........\n...........\n...........\n...........\n\n\nmessage level 3 of 8\n\n\n...........\n...........\n...........\n...........\n..a........\n.axaaap....\n..a........\n...........\n...........\n...........\n\nmessage level 4 of 8\n\n\n...........\n...........\n...a.......\n..a.a......\n.a.a.a.....\na.aya.a.ap.\n.a.a.a.....\n..a.a......\n...a.......\n...........\n\nmessage level 5 of 8\n\n\n...........\n...........\n...........\n...........\naaaaaaaaaaa\n...y..ap...\naaaaaaaaaaa\n...........\n...........\n...........\n\nmessage level 6 of 8\n\n\n000000....0\n000000..0.0\n000000..0..\n000000000..\n....A...0.0\n.AY.A...AAP\n....A...0.0\n000000000..\n000000..0..\n000000..0.0\n000000....0\n\nmessage level 7 of 8\n\n\n..AAA...000\n.AY.A...AP.\n..AAA...000\n\nmessage level 8 of 8\n\n\n0AAAA..00\n0AAAA..00\nYAAAA..AP\n0AAAA..00\n0AAAA..00\n\nmessage the end\n)\n\n", [3, 1, 0, 3, 2, 1, 2, 1, 1, 0, 0, 3, 1, 1, 1, 0, 1, 2, 3, 2, 1, 2, 2, 0, 3, 0, 1, 0, 3, 0, 3, 2, 1, 2, 1, 2, 0, 3, 0, 3, 0, 3, 2, 3, 0, 3, 1, 2, 3, 1, 0, 2, 1, 2], "background:0,activetile background ortplayer:1,0,0,0,0,0,activetile background:2,0,0,0,\n0,0,0,2,2,background void:3,2,3,0,0,0,\n0,3,2,3,0,0,3,0,0,0,2,\n0,3,3,0,3,0,3,2,3,3,0,\n2,0,2,0,3,3,3,3,0,3,3,\n3,0,0,0,2,0,0,0,0,0,0,\nbackground target:4,0,0,0,0,0,0,0,0,0,0,\n", 15, "1645572899761.3071"] ], [ - "Psyshic push", - ["title Psyshic push\nauthor Stingby12\nhomepage https://stingby12.itch.io/\n\ntext_color #DB524D\nbackground_color #6C478F\n\nrun_rules_on_level_start\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\n#6C478F\n\nWall\n#A163DB\n\nStopper\n#A163DB\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nPlayer\n#7BDB58\n.000.\n.000.\n00.00\n.000.\n.0.0.\n\nMovecheckL\n#5EA843\n.....\n.....\n.000.\n.....\n.....\n\nMovecheckR\n#5EA843\n.....\n.....\n.000.\n.....\n.....\n\nMovecheckU\n#5EA843\n.....\n..0..\n..0..\n..0..\n.....\n\nMovecheckD\n#5EA843\n.....\n..0..\n..0..\n..0..\n.....\n\nMovestop\n#7BDB58\n.....\n...0.\n.000.\n.0...\n.....\n\nTarget\n#8F2E2B\n.....\n.0.0.\n.000.\n.0.0.\n.....\n\nCrate\n#DB524D\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n+ = Player and Target\n* = Crate\n@ = Crate and Target\nO = Target\n% = Player and Stopper\nx = Stopper\n- = Player and Movestop\n8 = Crate and Movestop\ns = Movestop\n\nMovecheck = MovecheckL or MovecheckR or MovecheckU or MovecheckD\nBlocking = Crate or Wall or Stopper\nSightBlocking = Crate or Wall or Movestop\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx0 80929902 (Blocked)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget, Stopper, Movestop\nPlayer, Wall, Crate\nMovecheckL\nMovecheckR\nMovecheckU\nMovecheckD\n\n======\nRULES\n======\n\n(I tried to place a [...] in the basic push and ended up with something cool. I tried to ajust the code and ended up with something like this.)\n\nlate left [Player | no Movecheck no SightBlocking] -> [Player | MovecheckL]\nlate right [Player | no Movecheck no SightBlocking] -> [Player | MovecheckR]\nlate up [Player | no Movecheck no SightBlocking] -> [Player | MovecheckU]\nlate down [Player | no Movecheck no SightBlocking] -> [Player | MovecheckD]\n\nlate left [MovecheckL | no Movecheck no SightBlocking] -> [MovecheckL | MovecheckL]\nlate right [MovecheckR | no Movecheck no SightBlocking] -> [MovecheckR | MovecheckR]\nlate up [MovecheckU | no Movecheck no SightBlocking] -> [MovecheckU | MovecheckU]\nlate down [MovecheckD | no Movecheck no SightBlocking] -> [MovecheckD | MovecheckD]\n\n(This code generate 4 lines of Movechecks (one of each direction). These are blocked by a group called \"SightBlocking\")\n\n[> Player | ... | Movecheck | Crate] -> [Player | ... | Movecheck | > Crate]\n[> Player | Crate] -> [> Player | > Crate]\n[> Crate | Blocking] -> [Crate | Blocking] sfx0\n\n[Movecheck] -> []\n\n(Bottom code is the easiest to understand. Keep in mind that rule 149 and rule 150 are completly different.)\n(Rule 155 is just for clearing)\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nSome Target (ignore this rule)\n\n=======\nLEVELS\n=======\n\nmessage Cover all targets with crates.\n\nmessage Level 1 of 16\n\n(Surprise level that shows the main mechanic)\n#######\n#..*.o#\n#..*.o#\n#p.*.o#\n#..*.o#\n#..*.o#\n#######\n\nmessage Level 2 of 16\n\n(If you are directly next to the crate you can push and move at the same time.)\n#####\n#...#\n#...#\n#...#\n##*##\n#...#\n#.+.#\n#####\n\nmessage Level 3 of 16\n\n#######\n#.....#\n#o@@*p#\n#.....#\n#..####\n####...\n\nmessage Level 4 of 16\n\n.#######\n.#.....#\n.#.o*o.#\n##.*p*.#\n#..o*o.#\n#......#\n########\n\nmessage Level 5 of 16\n\n(Like this level design.)\n#########.\n#@......##\n#*......*#\n#@....*.@#\n#*......*#\n##....+.@#\n.#########\n\nmessage Level 6 of 16\n\n.######.\n##....##\n#@.*..*#\n#*..*.@#\n#@.*..*#\n#*.oo+@#\n########\n\nmessage Level 7 of 16\n\n..#####\n###@*@#\n#*....#\n#@.**.#\n#*....#\n#@....#\n##.o+.#\n.######\n\nmessage Level 8 of 16\n\n..#####..\n.##@*@##.\n##.....##\n#@.o*o.@#\n#*.*.*.*#\n#@.o*o.@#\n#*.....*#\n##..p..##\n.##*@*##.\n..#####..\n\nmessage Level 9 of 16\n\n....####\n.####..#\n.#.....#\n##.*xo.#\n#..*xo.#\n#..*xo.#\n#...#p.#\n########\n\nmessage Level 10 of 16\n\n(This is the old first level that uses the Blockers. I wanted an easier level for that.)\n####...\n#xx###.\n#o.*.##\n#ox*..#\n#ox*p.#\n#ox*..#\n#o.*.##\n#xx###.\n####...\n\nmessage Level 11 of 16\n\n#######\n#xxxxx#\n#xo*ox#\n#x*o*x#\n#x*o*x#\n#xo*ox#\n#xx%xx#\n#######\n\nmessage Level 12 of 16\n\n(I couldn't find anything simpler without chessing.)\n######...\n#*..o#...\n##.#.###.\n.#px8x.#.\n.###.#.#.\n...#.#.##\n...#...*#\n...######\n\nmessage Level 13 of 16\n\n####..\n#.o#..\n#..###\n#8...#\n#op*.#\n#..###\n####..\n\nmessage Level 14 of 16\n\n######\n#....#\n#....#\n#*88*#\n#....#\n#o+oo#\n######\n\nmessage Level 15 of 16\n\n#########..\n#oo*..*.###\n#+o8..8...#\n#oo*..8...#\n####..#####\n...####....\n\nmessage Level 16 of 16\n\n(Probably the last level I'll make.)\n.......###..\n########@##.\n#@......p.##\n#*..*..*..@#\n#@.s.oo.s.*#\n#*.s.oo.s.@#\n#@..*..*..*#\n#*........##\n########*##.\n.......###..\n\nmessage Great work, you pushed like it was nothing !\n\n",[2,2,2,2,3,0,0,0,1,1,0,0,3,3,1,2,"undo","undo",2,0,3,3,2,2,1,1,3,1,2,2,2,3,1,2,3,1,1,0,0,1,3,2,0,0,3,3,1,1,2,2,2,1,1,3,3,1,1,1,1,1,0,0,3,1,2,1,0,3],"background:0,background wall:1,1,1,1,1,1,1,1,0,0,1,\nbackground crate target:2,background crate:3,2,3,2,3,1,0,0,1,0,background movecheckl:4,\n3,0,3,0,1,0,0,1,background movechecku:5,background player:6,background movestop:7,7,\n0,0,1,0,0,1,0,background movecheckr:8,0,0,0,0,\n1,0,0,1,0,8,background target:9,9,0,0,1,0,\n0,1,0,3,9,9,0,0,1,0,1,1,\n0,0,0,0,0,3,1,1,1,2,0,0,\n7,7,0,0,3,1,1,1,0,0,0,0,\n0,0,1,1,0,1,1,2,3,2,3,1,\n1,0,0,0,1,1,1,1,1,1,0,0,\n",32,"1645573610754.0828"] + "Psyshic push", + ["title Psyshic push\nauthor Stingby12\nhomepage https://stingby12.itch.io/\n\ntext_color #DB524D\nbackground_color #6C478F\n\nrun_rules_on_level_start\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\n#6C478F\n\nWall\n#A163DB\n\nStopper\n#A163DB\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nPlayer\n#7BDB58\n.000.\n.000.\n00.00\n.000.\n.0.0.\n\nMovecheckL\n#5EA843\n.....\n.....\n.000.\n.....\n.....\n\nMovecheckR\n#5EA843\n.....\n.....\n.000.\n.....\n.....\n\nMovecheckU\n#5EA843\n.....\n..0..\n..0..\n..0..\n.....\n\nMovecheckD\n#5EA843\n.....\n..0..\n..0..\n..0..\n.....\n\nMovestop\n#7BDB58\n.....\n...0.\n.000.\n.0...\n.....\n\nTarget\n#8F2E2B\n.....\n.0.0.\n.000.\n.0.0.\n.....\n\nCrate\n#DB524D\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n+ = Player and Target\n* = Crate\n@ = Crate and Target\nO = Target\n% = Player and Stopper\nx = Stopper\n- = Player and Movestop\n8 = Crate and Movestop\ns = Movestop\n\nMovecheck = MovecheckL or MovecheckR or MovecheckU or MovecheckD\nBlocking = Crate or Wall or Stopper\nSightBlocking = Crate or Wall or Movestop\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx0 80929902 (Blocked)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget, Stopper, Movestop\nPlayer, Wall, Crate\nMovecheckL\nMovecheckR\nMovecheckU\nMovecheckD\n\n======\nRULES\n======\n\n(I tried to place a [...] in the basic push and ended up with something cool. I tried to ajust the code and ended up with something like this.)\n\nlate left [Player | no Movecheck no SightBlocking] -> [Player | MovecheckL]\nlate right [Player | no Movecheck no SightBlocking] -> [Player | MovecheckR]\nlate up [Player | no Movecheck no SightBlocking] -> [Player | MovecheckU]\nlate down [Player | no Movecheck no SightBlocking] -> [Player | MovecheckD]\n\nlate left [MovecheckL | no Movecheck no SightBlocking] -> [MovecheckL | MovecheckL]\nlate right [MovecheckR | no Movecheck no SightBlocking] -> [MovecheckR | MovecheckR]\nlate up [MovecheckU | no Movecheck no SightBlocking] -> [MovecheckU | MovecheckU]\nlate down [MovecheckD | no Movecheck no SightBlocking] -> [MovecheckD | MovecheckD]\n\n(This code generate 4 lines of Movechecks (one of each direction). These are blocked by a group called \"SightBlocking\")\n\n[> Player | ... | Movecheck | Crate] -> [Player | ... | Movecheck | > Crate]\n[> Player | Crate] -> [> Player | > Crate]\n[> Crate | Blocking] -> [Crate | Blocking] sfx0\n\n[Movecheck] -> []\n\n(Bottom code is the easiest to understand. Keep in mind that rule 149 and rule 150 are completly different.)\n(Rule 155 is just for clearing)\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nSome Target (ignore this rule)\n\n=======\nLEVELS\n=======\n\nmessage Cover all targets with crates.\n\nmessage Level 1 of 16\n\n(Surprise level that shows the main mechanic)\n#######\n#..*.o#\n#..*.o#\n#p.*.o#\n#..*.o#\n#..*.o#\n#######\n\nmessage Level 2 of 16\n\n(If you are directly next to the crate you can push and move at the same time.)\n#####\n#...#\n#...#\n#...#\n##*##\n#...#\n#.+.#\n#####\n\nmessage Level 3 of 16\n\n#######\n#.....#\n#o@@*p#\n#.....#\n#..####\n####...\n\nmessage Level 4 of 16\n\n.#######\n.#.....#\n.#.o*o.#\n##.*p*.#\n#..o*o.#\n#......#\n########\n\nmessage Level 5 of 16\n\n(Like this level design.)\n#########.\n#@......##\n#*......*#\n#@....*.@#\n#*......*#\n##....+.@#\n.#########\n\nmessage Level 6 of 16\n\n.######.\n##....##\n#@.*..*#\n#*..*.@#\n#@.*..*#\n#*.oo+@#\n########\n\nmessage Level 7 of 16\n\n..#####\n###@*@#\n#*....#\n#@.**.#\n#*....#\n#@....#\n##.o+.#\n.######\n\nmessage Level 8 of 16\n\n..#####..\n.##@*@##.\n##.....##\n#@.o*o.@#\n#*.*.*.*#\n#@.o*o.@#\n#*.....*#\n##..p..##\n.##*@*##.\n..#####..\n\nmessage Level 9 of 16\n\n....####\n.####..#\n.#.....#\n##.*xo.#\n#..*xo.#\n#..*xo.#\n#...#p.#\n########\n\nmessage Level 10 of 16\n\n(This is the old first level that uses the Blockers. I wanted an easier level for that.)\n####...\n#xx###.\n#o.*.##\n#ox*..#\n#ox*p.#\n#ox*..#\n#o.*.##\n#xx###.\n####...\n\nmessage Level 11 of 16\n\n#######\n#xxxxx#\n#xo*ox#\n#x*o*x#\n#x*o*x#\n#xo*ox#\n#xx%xx#\n#######\n\nmessage Level 12 of 16\n\n(I couldn't find anything simpler without chessing.)\n######...\n#*..o#...\n##.#.###.\n.#px8x.#.\n.###.#.#.\n...#.#.##\n...#...*#\n...######\n\nmessage Level 13 of 16\n\n####..\n#.o#..\n#..###\n#8...#\n#op*.#\n#..###\n####..\n\nmessage Level 14 of 16\n\n######\n#....#\n#....#\n#*88*#\n#....#\n#o+oo#\n######\n\nmessage Level 15 of 16\n\n#########..\n#oo*..*.###\n#+o8..8...#\n#oo*..8...#\n####..#####\n...####....\n\nmessage Level 16 of 16\n\n(Probably the last level I'll make.)\n.......###..\n########@##.\n#@......p.##\n#*..*..*..@#\n#@.s.oo.s.*#\n#*.s.oo.s.@#\n#@..*..*..*#\n#*........##\n########*##.\n.......###..\n\nmessage Great work, you pushed like it was nothing !\n\n", [2, 2, 2, 2, 3, 0, 0, 0, 1, 1, 0, 0, 3, 3, 1, 2, "undo", "undo", 2, 0, 3, 3, 2, 2, 1, 1, 3, 1, 2, 2, 2, 3, 1, 2, 3, 1, 1, 0, 0, 1, 3, 2, 0, 0, 3, 3, 1, 1, 2, 2, 2, 1, 1, 3, 3, 1, 1, 1, 1, 1, 0, 0, 3, 1, 2, 1, 0, 3], "background:0,background wall:1,1,1,1,1,1,1,1,0,0,1,\nbackground crate target:2,background crate:3,2,3,2,3,1,0,0,1,0,background movecheckl:4,\n3,0,3,0,1,0,0,1,background movechecku:5,background player:6,background movestop:7,7,\n0,0,1,0,0,1,0,background movecheckr:8,0,0,0,0,\n1,0,0,1,0,8,background target:9,9,0,0,1,0,\n0,1,0,3,9,9,0,0,1,0,1,1,\n0,0,0,0,0,3,1,1,1,2,0,0,\n7,7,0,0,3,1,1,1,0,0,0,0,\n0,0,1,1,0,1,1,2,3,2,3,1,\n1,0,0,0,1,1,1,1,1,1,0,0,\n", 32, "1645573610754.0828"] ], [ - "I wanna change my position", - ["title I wanna change my position\nauthor competor\nhomepage competor.itch.io\nbackground_color #2A0E3A\ntext_color #fe6c90\nrequire_player_movement\nrun_rules_on_level_start\nrealtime_interval 0.1\nagain_interval 0.08\n\n========\nOBJECTS\n========\n\nBackground\n#2A0E3A #2A073A #260E35 #2F0E3A\n01021\n21310\n10101\n01213\n23010\n\nTarget\n#F5F5F5\n.....\n.....\n..0..\n.....\n.....\n\nWall\n#F5F5F5 #FEAFC2 #fe6c90 #CD577B #87286a #6B1F54\n01112\n12223\n12223\n12223\n34445\n\n\nPlayer\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459 \n.121.\n.020.\n41214\n54445\n.5.5.\n\nanim_p1\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459 #2A0E3A\n66216\n60266\n41614\n64465\n65656\n\nanim_p2\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459 #2A0E3A\n66616\n60266\n61.64\n66466\n65656\n\nanim_p3\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459 #2A0E3A\n66.66\n6.2.6\n.1...\n6.4.6\n66.56\n\nanim_p4 \n#87286a #2A0E3A\n11..1\n....1\n.....\n10001\n11.11\n\nanim_p5 \n#87286a #2A0E3A\n1...1\n..0..\n.0.0.\n.000.\n1...1\n\nCrate\n#87286a\n.....\n.000.\n.0.0.\n.000.\n.....\n\nanim_c1\n#87286a\n.....\n..0..\n.0.0.\n.000.\n.....\n\nanim_c2\n#87286a\n.....\n.....\n.0.0.\n.000.\n.....\n\nanim_c3\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459\n.....\n..2..\n..2..\n.444.\n.....\n\nanim_c4\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459\n.....\n..2..\n.12.4\n.444.\n.5.5.\n\nanim_c5\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459\n..2..\n.020.\n41.14\n.44.5\n.5.5.\n\nantiCrate\n#fe6c90 #d03791\n..1..\n.101.\n10.01\n.101.\n..1..\n\nmemory\ntransparent\n.....\n..0..\n.0.0.\n..0..\n.....\n\nanim0\n#2a0e3a\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim1\n#351149\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim2\n#401559\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim3\n#571d86\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim4\n#571d86\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim5\n#401559\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim6\n#351149\n.000.\n0...0\n0...0\n0...0\n.000.\n\nme\ntransparent\n.....\n.....\n..0..\n.....\n.....\n\nfloor\n#B08CC5 #B080B5 #B07CC5 #A575A5\n01021\n21310\n10101\n01213\n23010\n\n\n\ntargetWithCrates\ntransparent\ntargetWithoutCrates\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\n: = antiCrate\n; = antiCrate and Target\nO = Target\na = floor\nb = Player and floor\nc = Crate and floor\nd = Crate and Target and floor\ne = antiCrate and floor\nf = antiCrate and Target and floor\ng = Target and floor\nh = Crate and memory\n\n\n\ncrates = Crate or antiCrate\nobstacle = Wall or crates\nanims = anim0 or anim1 or anim2 or anim3 or anim4 or anim5 or anim6\nanimswap = anim_p1 or anim_p2 or anim_p3 or anim_p4 or anim_p5 or anim_c1 or anim_c2 or anim_c3 or anim_c4 or anim_c5\n=======\nSOUNDS\n=======\nrestart 53933706\nCrate move 36681907\nantiCrate move 36681907\n(Plates MOVE 209907)\nendlevel 7121610\nPlayer cantmove 53676504\ncancel 53676504\n\nsfx0 8992509 (falling)\nsfx1 87861307 (up)\nsfx2 65232307 (down)\nsfx3 93691109 (save)\nsfx4 24089507 (on crate)\nsfx5 14894304 \nsfx6 36681907 (on snow)\nsfx7 76479500 (show hint)\nsfx8 55581906 (hide hint)\nsfx9 98183507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n\nfloor\n\nanims\n\nTarget\nPlayer, Wall, Crate,antiCrate\nanimswap\n\nmemory\nme\ntargetWithCrates,targetWithoutCrates\n\n======\nRULES\n======\n\n(sound init)\n[targetWithCrates] -> []\n[targetWithoutCrates]->[]\n[Target no crates] -> [Target targetWithoutCrates]\n[Target crates] -> [Target targetWithCrates crates]\n\n(push)\n[ > Player | Crate ] -> [ > Player | > Crate > me ]\n[ > Player | antiCrate ] -> [ > Player | > antiCrate ]\n[moving Crates][stationary Crate memory] -> [moving Crates][stationary Crate]\n\n(swap)\n[anim_p5][ anim_c5 ] -> [Crate][ Player ] \n[anim_p4][ anim_c4 ] -> [anim_p5][ anim_c5 ] again\n[anim_p3][ anim_c3 ] -> [anim_p4][ anim_c4 ] again\n[anim_p2][ anim_c2 ] -> [anim_p3][ anim_c3 ] again\n[anim_p1][ anim_c1 ] -> [anim_p2][ anim_c2 ] again\n[action Player no floor ][stationary Crate memory] -> [floor anim_p1][ anim_c1 ] sfx3 again\n[action Player floor ][stationary Crate memory] -> cancel \n\n\n(memory push)\n\n[ > crates memory ] -> [> crates]\n\n\n(sound)\nlate [Target targetWithCrates no crates] -> [Target] sfx8\nlate [Target targetWithoutCrates crates] -> [Target crates] sfx7\n\n(memory)\nlate [ me no crates ] -> []\nlate [ me ] -> [ memory ]\n\n\n(anim)\n[stationary Player][stationary anim6] -> [Player][action anim0]\n[stationary Player][stationary anim5] -> [Player][action anim6]\n[stationary Player][stationary anim4] -> [Player][action anim5]\n[stationary Player][stationary anim3] -> [Player][action anim4]\n[stationary Player][stationary anim2] -> [Player][action anim3]\n[stationary Player][stationary anim1] -> [Player][action anim2]\n[stationary Player][stationary anim0] -> [Player][action anim1]\n[memory no anims] -> [memory anim0]\nlate [anims no memory] -> []\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on crates\n\n=======\nLEVELS\n=======\nmessage Press X to swap.\n\naaa#####\naaa#...#\naaa#.o.#\n###.*..#\n#..p.###\n#.*.#aaa\n#o..#aaa\n#####aaa\n\nmessage You and the last crate you pushed are swapped.\n\naaaaaaaa\na######a\na#.po.#a\na#*##o#a\na#o##*#a\na#..*.#a\na######a\naaaaaaaa\n\nmessage You can swap only if the color of your standing tile is purple.\n\n.##..##.\n########\n##ga.g##\n.##cc##.\n.##ba##.\n##a.aa##\n########\n.##..##.\n\nmessage When you swapped, the color of your tile disappears.\n\naaaaaaaa\na######a\na#.pg.#a\na#*##g#a\na#g##*#a\na#..*.#a\na######a\naaaaaaaa\n\n\n..###...\n..#p##..\n.##*.##.\na#g.*g#a\na#g**g#a\na##aa##a\naa####aa\naaaaaaaa\n\n\n########\n#.*gg*.#\n#p####.#\n#.a#ga.#\n##cg#a##\n#..aa..#\n#.ca#a.#\n########\n\n\n.#####..\n.#g#g#..\n.#gpg#..\n.#*#*#..\n.#.#.#..\n.#*.*#..\n.#.#.#..\n.#####..\n\n\n######..\n#agcg###\n#accc.a#\n#agcg###\n##.#.#..\n.#g#b#..\n.#####..\n........\n\n\n########\n#aa#gcg#\n#c#aa#a#\n#aaca#c#\n##g#ba.#\n#a.a#.a#\n#aacgag#\n########\n\n\n########\n#..cg.p#\n#a####.#\n#c#..#c#\n#g#..#g#\n#.####*#\n#..aag.#\n########\n\n\nmessage Congrats!\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",0,"tick",0,"tick","tick","tick","tick","tick",1,"tick","tick","tick",3,"tick","tick","tick","tick","tick","tick",4,"tick","tick","tick","tick","tick","tick",1,"tick","tick",3,"tick",2,"tick","tick",4,"tick",1,"tick",0,"tick","tick",0,"tick",3,"tick","tick",3,"tick","tick",2,"tick","tick","tick",1,"tick","tick","tick",2,"tick","tick",2,"tick","tick","tick","tick","tick","tick","tick",4,"tick",3,"tick",3,"tick","tick",3,"tick","tick","tick","tick","tick",3,"tick","tick","tick","tick","tick",4,"tick","tick","tick",1,"tick","tick",1,"tick",1,"tick","tick","tick",0,"tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background wall:0,0,0,0,0,background:1,1,1,\n0,background floor:2,2,2,0,0,0,1,\n0,background floor player target targetwithoutcrates:3,anim2 background crate floor memory:4,background floor target targetwithoutcrates:5,background crate floor:6,5,0,1,\n0,2,2,6,0,0,0,1,\n0,background crate floor target targetwithcrates:7,2,5,6,2,0,1,\n0,0,2,0,0,0,0,1,\n1,0,2,0,1,1,1,1,\n1,0,0,0,1,1,1,1,\n",11,"1645574132967.735"] + "I wanna change my position", + ["title I wanna change my position\nauthor competor\nhomepage competor.itch.io\nbackground_color #2A0E3A\ntext_color #fe6c90\nrequire_player_movement\nrun_rules_on_level_start\nrealtime_interval 0.1\nagain_interval 0.08\n\n========\nOBJECTS\n========\n\nBackground\n#2A0E3A #2A073A #260E35 #2F0E3A\n01021\n21310\n10101\n01213\n23010\n\nTarget\n#F5F5F5\n.....\n.....\n..0..\n.....\n.....\n\nWall\n#F5F5F5 #FEAFC2 #fe6c90 #CD577B #87286a #6B1F54\n01112\n12223\n12223\n12223\n34445\n\n\nPlayer\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459 \n.121.\n.020.\n41214\n54445\n.5.5.\n\nanim_p1\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459 #2A0E3A\n66216\n60266\n41614\n64465\n65656\n\nanim_p2\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459 #2A0E3A\n66616\n60266\n61.64\n66466\n65656\n\nanim_p3\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459 #2A0E3A\n66.66\n6.2.6\n.1...\n6.4.6\n66.56\n\nanim_p4 \n#87286a #2A0E3A\n11..1\n....1\n.....\n10001\n11.11\n\nanim_p5 \n#87286a #2A0E3A\n1...1\n..0..\n.0.0.\n.000.\n1...1\n\nCrate\n#87286a\n.....\n.000.\n.0.0.\n.000.\n.....\n\nanim_c1\n#87286a\n.....\n..0..\n.0.0.\n.000.\n.....\n\nanim_c2\n#87286a\n.....\n.....\n.0.0.\n.000.\n.....\n\nanim_c3\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459\n.....\n..2..\n..2..\n.444.\n.....\n\nanim_c4\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459\n.....\n..2..\n.12.4\n.444.\n.5.5.\n\nanim_c5\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459\n..2..\n.020.\n41.14\n.44.5\n.5.5.\n\nantiCrate\n#fe6c90 #d03791\n..1..\n.101.\n10.01\n.101.\n..1..\n\nmemory\ntransparent\n.....\n..0..\n.0.0.\n..0..\n.....\n\nanim0\n#2a0e3a\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim1\n#351149\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim2\n#401559\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim3\n#571d86\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim4\n#571d86\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim5\n#401559\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim6\n#351149\n.000.\n0...0\n0...0\n0...0\n.000.\n\nme\ntransparent\n.....\n.....\n..0..\n.....\n.....\n\nfloor\n#B08CC5 #B080B5 #B07CC5 #A575A5\n01021\n21310\n10101\n01213\n23010\n\n\n\ntargetWithCrates\ntransparent\ntargetWithoutCrates\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\n: = antiCrate\n; = antiCrate and Target\nO = Target\na = floor\nb = Player and floor\nc = Crate and floor\nd = Crate and Target and floor\ne = antiCrate and floor\nf = antiCrate and Target and floor\ng = Target and floor\nh = Crate and memory\n\n\n\ncrates = Crate or antiCrate\nobstacle = Wall or crates\nanims = anim0 or anim1 or anim2 or anim3 or anim4 or anim5 or anim6\nanimswap = anim_p1 or anim_p2 or anim_p3 or anim_p4 or anim_p5 or anim_c1 or anim_c2 or anim_c3 or anim_c4 or anim_c5\n=======\nSOUNDS\n=======\nrestart 53933706\nCrate move 36681907\nantiCrate move 36681907\n(Plates MOVE 209907)\nendlevel 7121610\nPlayer cantmove 53676504\ncancel 53676504\n\nsfx0 8992509 (falling)\nsfx1 87861307 (up)\nsfx2 65232307 (down)\nsfx3 93691109 (save)\nsfx4 24089507 (on crate)\nsfx5 14894304 \nsfx6 36681907 (on snow)\nsfx7 76479500 (show hint)\nsfx8 55581906 (hide hint)\nsfx9 98183507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n\nfloor\n\nanims\n\nTarget\nPlayer, Wall, Crate,antiCrate\nanimswap\n\nmemory\nme\ntargetWithCrates,targetWithoutCrates\n\n======\nRULES\n======\n\n(sound init)\n[targetWithCrates] -> []\n[targetWithoutCrates]->[]\n[Target no crates] -> [Target targetWithoutCrates]\n[Target crates] -> [Target targetWithCrates crates]\n\n(push)\n[ > Player | Crate ] -> [ > Player | > Crate > me ]\n[ > Player | antiCrate ] -> [ > Player | > antiCrate ]\n[moving Crates][stationary Crate memory] -> [moving Crates][stationary Crate]\n\n(swap)\n[anim_p5][ anim_c5 ] -> [Crate][ Player ] \n[anim_p4][ anim_c4 ] -> [anim_p5][ anim_c5 ] again\n[anim_p3][ anim_c3 ] -> [anim_p4][ anim_c4 ] again\n[anim_p2][ anim_c2 ] -> [anim_p3][ anim_c3 ] again\n[anim_p1][ anim_c1 ] -> [anim_p2][ anim_c2 ] again\n[action Player no floor ][stationary Crate memory] -> [floor anim_p1][ anim_c1 ] sfx3 again\n[action Player floor ][stationary Crate memory] -> cancel \n\n\n(memory push)\n\n[ > crates memory ] -> [> crates]\n\n\n(sound)\nlate [Target targetWithCrates no crates] -> [Target] sfx8\nlate [Target targetWithoutCrates crates] -> [Target crates] sfx7\n\n(memory)\nlate [ me no crates ] -> []\nlate [ me ] -> [ memory ]\n\n\n(anim)\n[stationary Player][stationary anim6] -> [Player][action anim0]\n[stationary Player][stationary anim5] -> [Player][action anim6]\n[stationary Player][stationary anim4] -> [Player][action anim5]\n[stationary Player][stationary anim3] -> [Player][action anim4]\n[stationary Player][stationary anim2] -> [Player][action anim3]\n[stationary Player][stationary anim1] -> [Player][action anim2]\n[stationary Player][stationary anim0] -> [Player][action anim1]\n[memory no anims] -> [memory anim0]\nlate [anims no memory] -> []\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on crates\n\n=======\nLEVELS\n=======\nmessage Press X to swap.\n\naaa#####\naaa#...#\naaa#.o.#\n###.*..#\n#..p.###\n#.*.#aaa\n#o..#aaa\n#####aaa\n\nmessage You and the last crate you pushed are swapped.\n\naaaaaaaa\na######a\na#.po.#a\na#*##o#a\na#o##*#a\na#..*.#a\na######a\naaaaaaaa\n\nmessage You can swap only if the color of your standing tile is purple.\n\n.##..##.\n########\n##ga.g##\n.##cc##.\n.##ba##.\n##a.aa##\n########\n.##..##.\n\nmessage When you swapped, the color of your tile disappears.\n\naaaaaaaa\na######a\na#.pg.#a\na#*##g#a\na#g##*#a\na#..*.#a\na######a\naaaaaaaa\n\n\n..###...\n..#p##..\n.##*.##.\na#g.*g#a\na#g**g#a\na##aa##a\naa####aa\naaaaaaaa\n\n\n########\n#.*gg*.#\n#p####.#\n#.a#ga.#\n##cg#a##\n#..aa..#\n#.ca#a.#\n########\n\n\n.#####..\n.#g#g#..\n.#gpg#..\n.#*#*#..\n.#.#.#..\n.#*.*#..\n.#.#.#..\n.#####..\n\n\n######..\n#agcg###\n#accc.a#\n#agcg###\n##.#.#..\n.#g#b#..\n.#####..\n........\n\n\n########\n#aa#gcg#\n#c#aa#a#\n#aaca#c#\n##g#ba.#\n#a.a#.a#\n#aacgag#\n########\n\n\n########\n#..cg.p#\n#a####.#\n#c#..#c#\n#g#..#g#\n#.####*#\n#..aag.#\n########\n\n\nmessage Congrats!\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", 0, "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", 4, "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", 3, "tick", 2, "tick", "tick", 4, "tick", 1, "tick", 0, "tick", "tick", 0, "tick", 3, "tick", "tick", 3, "tick", "tick", 2, "tick", "tick", "tick", 1, "tick", "tick", "tick", 2, "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", "tick", 4, "tick", 3, "tick", 3, "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", 4, "tick", "tick", "tick", 1, "tick", "tick", 1, "tick", 1, "tick", "tick", "tick", 0, "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background wall:0,0,0,0,0,background:1,1,1,\n0,background floor:2,2,2,0,0,0,1,\n0,background floor player target targetwithoutcrates:3,anim2 background crate floor memory:4,background floor target targetwithoutcrates:5,background crate floor:6,5,0,1,\n0,2,2,6,0,0,0,1,\n0,background crate floor target targetwithcrates:7,2,5,6,2,0,1,\n0,0,2,0,0,0,0,1,\n1,0,2,0,1,1,1,1,\n1,0,0,0,1,1,1,1,\n", 11, "1645574132967.735"] ], [ - "Isle of Bloks", - ["title Isle of Bloks\n\ncolor_palette gameboycolour\n\nbackground_color #242b26\nkey_repeat_interval 0.12\nrealtime_interval 0.1\n========\nOBJECTS\n========\n(colors:\n#CADC9F - white\n#0f380f - dark\n#306230 - green\n#8bac0f - light green 1\n#9bbc0f - light green 2\n\ncustom \n#242b26 - black\n#3e4a40 - darkgray\n#4c5a4e\t- light darkgray\n#88a68d - gray\n#709277 - gray but slightly darker\n#ddebdf - white\n)\n\n\nbackground\n#3e4a40 #374239\n00000\n11000\n00000\n00011\n00000\n\nbground1\n#3e4a40 #374239\n00000\n11000\n00000\n00011\n00000\n\nbground2\n#3e4a40 #374239\n00000\n11000\n00000\n00011\n00000\n\nbground3\n#3e4a40 #374239\n11000\n00000\n00011\n00000\n00000\n\nbground4\n#3e4a40 #374239\n11000\n00000\n00011\n00000\n00000\n\nbground5\n#3e4a40 #374239\n00000\n00011\n00000\n00000\n11000\n\nbground6\n#3e4a40 #374239\n00000\n00011\n00000\n00000\n11000\n\nbground7\n#3e4a40 #374239\n00011\n00000\n00000\n11000\n00000\n\nbground8\n#3e4a40 #374239\n00011\n00000\n00000\n11000\n00000\n\nbground9\n#3e4a40 #374239\n00000\n00000\n11000\n00000\n00011\n\nbground10\n#3e4a40 #374239\n00000\n00000\n11000\n00000\n00011\n\nbground10anim\ntransparent\n\n(player animations)\n\nplayerStandR\n#ddebdf #242b26 #88a68d #709277\n00000\n00101\n22222\n33333\n.1.1.\n\nplayer1R\n#ddebdf #242b26 #88a68d #709277\n00000\n00101\n22222\n33333\n.1.1.\n\nanim1R\n#ddebdf #242b26 #88a68d\n00000\n00101\n22222\n22222\n.1.1.\n\nplayer2R\n#ddebdf #242b26 #88a68d #709277\n00000\n00101\n22222\n33333\n1...1\n\nanim2R\n#ddebdf #242b26 #88a68d\n00000\n00101\n22222\n22222\n1...1\n\nplayer1L\n#ddebdf #242b26 #88a68d #709277\n00000\n10100\n22222\n33333\n.1.1.\n\nanim1L\ntransparent\n\nplayer2L\n#ddebdf #242b26 #88a68d #709277 #FFFFFF\n00000\n10100\n22222\n33333\n1...1\n\nplayerswap1R\n#ddebdf #242b26 #88a68d #709277\n00000\n00000\n22222\n33333\n.1.1.\n\nplayerswap2R\n#ddebdf #242b26 #88a68d #709277 #FFFFFF\n44444\n00000\n00000\n22222\n33333\n\nanim2L\ntransparent\n\nplayerinactive\n#ddebdf #242b26 #88a68d #709277 #FFFFFF\n44444\n00000\n00000\n22222\n33333\n\n(player tops)\nplayerBoxTopInactive\n#88a68d\n.....\n.....\n.....\n.....\n00000\n\nplayerBoxTop\n#88a68d\n.....\n.....\n.....\n00000\n00000\n\nplayerTop\n#FFFFFF\n.....\n.....\n.....\n00000\n00000\n\nplayerTopInactive\n#FFFFFF\n.....\n.....\n.....\n.....\n00000\n\n(swap animations)\n\nplayerBoxInactive\n#ddebdf #242b26 #88a68d #709277\n22222\n33333\n33333\n33333\n33333\n\nplayerBoxSwapAnim1R\n#ddebdf #242b26 #88a68d #709277\n33333\n33333\n33333\n33333\n.1.1.\n\n(playerbox animations)\nplayerBox1R\n#ddebdf #242b26 #88a68d #709277\n33333\n33131\n33333\n33333\n.1.1.\n\nanimBox1R\ntransparent\n\nplayerBox2R\n#ddebdf #242b26 #88a68d #709277\n33333\n33131\n33333\n33333\n1...1\n\nanimBox2R\ntransparent\n\nplayerBox1L\n#ddebdf #242b26 #88a68d #709277\n33333\n13133\n33333\n33333\n.1.1.\n\nanimBox1L\ntransparent\n\nplayerBox2L\n#ddebdf #242b26 #88a68d #709277 #FFFFFF\n33333\n13133\n33333\n33333\n1...1\n\nanimBox2L\ntransparent\n()\n\n(------------------------------------------level elements)\nwall\ntransparent\n\nbox\n#242b26 #88a68d #709277 #3e4a40\n11111\n22222\n22222\n22222\n33333\n\nboxtop\n#242b26 #88a68d #709277\n.....\n.....\n.....\n11111\n11111\n\nbutton\n#242b26 #88a68d\n00000\n01110\n01010\n01110\n00000\n\npressedbutton\n#242b26 #88a68d\n00000\n01110\n01010\n01110\n00000\n\n(---------------------------------------island generation)\nland\n#CADC9F\n\ncornerLandTR\n#CADC9F #242b26\n00000\n00000\n00000\n00000\n10000\n\ncornerLandTL\n#CADC9F #242b26\n00000\n00000\n00000\n00000\n00001\n\ncornerLandDL\n#CADC9F #242b26\n0000.\n00000\n00000\n00000\n00000\n\ncornerLandDR\n#CADC9F #242b26\n.0000\n00000\n00000\n00000\n00000\n\ncliff\n#242b26 #242b26\n00000\n11111\n00000\n00000\n11111\n\ncornerCliffTR\n#242b26 #242b26\n10000\n01111\n00000\n10000\n.1111\n\ncornerCliffTL\n#242b26 #242b26\n00000\n11111\n00000\n00001\n1111.\n\n(----------------------------------transition objects)\nblackscreen1\n#242b26\n\nblackscreen2\n#242b26\n.000.\n00000\n00000\n00000\n.000.\n\nblackscreen3\n#242b26\n..0..\n.000.\n00000\n.000.\n..0..\n\nblackscreen4\n#242b26\n.....\n..0..\n.000.\n..0..\n.....\n\nblackscreen5\n#242b26\n.....\n.....\n..0..\n.....\n.....\n\noutscreen1\n#242b26\n0....\n0....\n0....\n0....\n0....\n\noutscreen2\n#242b26\n00...\n00...\n00...\n00...\n00...\n\noutscreen3\n#252b26\n000..\n000..\n000..\n000..\n000..\n\noutscreen4\n#252b26\n0000.\n0000.\n0000.\n0000.\n0000.\n\noutscreen5\n#252b26\n\n(--------------------------------------------decor)\ntreebase0\n#242b26 #88a68d #709277\n.....\n....1\n...10\n...0.\n.....\n\ntreebase1\n#242b26 #88a68d #709277\n.1122\n11122\n00022\n...00\n.....\n\ntreebase2\n#242b26 #88a68d #709277\n2....\n22...\n002..\n..0..\n.....\n\ntreestem1\n#88a68d #709277\n01.00\n.0001\n.0001\n.0011\n.0011\n\ntreecanopyMB\n#88a68d #709277 #242b26 #323b34\n33333\n33333\n33332\n22222\n122.0\n\ntreecanopyLB\n#88a68d #709277 #242b26 #323b34\n33333\n33333\n23333\n.2222\n..220\n\ntreecanopyLLB\n#88a68d #709277 #242b26 #323b34\n....3\n....2\n.....\n.....\n.....\n\ntreecanopyMM\n#88a68d #709277 #242b26 #323b34\n33333\n33333\n33333\n33333\n33333\n\ntreecanopyMT\n#323b34\n.....\n.....\n.....\n.000.\n00000\n\ntreecanopyLM\n#323b34\n...00\n..000\n.0000\n00000\n00000\n\ntreecanopyRM\n#323b34\n00...\n000..\n0000.\n00000\n00000\n\ntreecanopyRB\n#88a68d #709277 #242b26 #323b34\n33333\n33333\n23332\n2222.\n.22..\n\nbush\n#88a68d #709277 #242b26 #323b34\n00011\n00011\n00111\n21122\n.222.\n\nbushtop\n#88a68d #709277 #242b26 #323b34\n.....\n.....\n.001.\n00011\n00011\n\n(-----------------------------------------------------variables)\n(tracks buttons)\nbuttonState\ntransparent\n\nbuttonStateOff\ntransparent\n\n(------------------------------------------------------water?? tiles)\nshallowWater\n#a6c45d\n\nshallowWaterLRD\n#a6c45d\n.....\n.....\n00000\n00000\n00000\n\nshallowWaterBottom\n#a6c45d #323b34\n00000\n00000\n11111\n11111\n11111\n\nshallowWaterUp\n#a6c45d \n\nshallowWaterFull\n#a6c45d\n\n(---------------------------------------------------------smoke)\nsmoke1L\n#ddebdf\n.....\n.....\n..00.\n.00..\n..000\n\nsmoke2L\n#ddebdf\n.....\n.....\n.....\n.....\n000..\n\nsmoke1R\n#ddebdf\n.....\n.....\n00...\n.00..\n00...\n\nsmoke2R\n#ddebdf\n.....\n.....\n.....\n.....\n..000\n\nrestart1\n#CADC9F\n.000.\n.0.0.\n.0.0.\n.000.\n.....\n\nrestart2\n#CADC9F\n.000.\n.0...\n.00..\n.0...\n.....\n\nrestart3\n#ddebdf\n0.000\n..0..\n..000\n....0\n0.000\n\nrestart4\n#ddebdf\n.000.\n.0...\n.000.\n...0.\n.000.\n\nrestart5\n#ddebdf\n.00..\n.0.0.\n.00..\n.0.0.\n.0.0.\n\nrestartanim1\ntransparent\n\nrestartanim2\ntransparent\n\nrestartanim3\ntransparent\n\nrestartanim4\ntransparent\n\nrestartanim5\ntransparent\n=======\nLEGEND\n=======\n\nbgroundanim = bground1 or bground2 or bground3 or bground4 or bground5 or bground6 or bground7 or bground8 or bground9 or bground10 or bground10anim\n\nplayerbox = playerBox1R or playerBox2R or animBox1R or animBox2R or animBox1L or animBox2L or playerBox1L or playerBox2L\n\nplayer = player1R or player2R or anim1R or anim2R or player1L or anim1L or player2L or anim2L or playerBox\n\nplayerswapanim = playerswap1R or playerswap2R\nplayerboxswapanim = playerBoxSwapAnim1R\n\nblackscreen = blackscreen1 or blackscreen2 or blackscreen3 or blackscreen4 or blackscreen5\n\noutscreen = outscreen1 or outscreen2 or outscreen3 or outscreen4 or outscreen5\n\ncliffs = cliff or cornerCliffTR or cornerCliffTL\n\nground = land or cornerLandTR or cornerLandTL or cornerLandDL or cornerLandDR\n\ntree = treebase0 or treebase1 or treebase2\ntreedec = treestem1 or treecanopyMB or treecanopyLB or treecanopyLLB or treecanopyMM or treecanopyMT or treecanopyLM or treecanopyRM or treecanopyRB\n\nshallow = shallowWaterLRD or shallowWaterUp or shallowWater or shallowWaterFull\n\nsmoke = smoke1L or smoke2L or smoke1R or smoke2R\n\nrestart = restart1 or restart2 or restart3 or restart4 or restart5 or restartanim1 or restartanim2 or restartanim3 or restartanim4 or restartanim5\n\np = playerStandR and land and blackscreen1\n# = land and blackscreen1\nx = land and box and blackscreen1\no = button and land and blackscreen1\n. = background and blackscreen1\nl = land and treebase1 and blackscreen1\nc = bush and land and blackscreen1\ne = playerBoxInactive and land and blackscreen1\nw = buttonStateOff and blackscreen1\nm = shallowWaterLRD and blackscreen1\n1 = restart1\n2 = restart2\n\n=======\nSOUNDS\n=======\n\nsfx0 21839507\nsfx1 35644707\nsfx2 69260304\nsfx3 38107505\nbox move 20210107\nstartlevel 93909903\nsfx4 42654903\nsfx5 62394902\nrestart 16186705\nundo 44484905\n\n================\nCOLLISIONLAYERS\n================\nbackground\n(island decor layer)\nbgroundanim\nground,cliffs, shallowWaterBottom\nshallow, shallowWaterUp\n(tree layer)\ntree,treedec\n(decor layer)\nbush\n(interactive Layer)\nbutton,pressedbutton,buttonState,buttonStateOff\n(main layer)\nplayer,wall, box, playerStandR, playerBox, playerBoxInactive, playerswapanim,playerboxswapanim,playerinactive\n(\"3d\" layer)\nboxtop,playerBoxTop,playerBoxTopInactive, playerTop, playerTopInactive,bushtop\n(fx layer)\nsmoke, restart\n(fade in/out layer)\nblackscreen,outscreen\n\n\n======\nRULES\n======\n(gives control back to player)\n[playerStandR no blackscreen no outscreen]->[player1R]\n\n(----------------------------------------------transitions)\n(generates opening animation)\n[blackscreen5]->[]\n[blackscreen4]->[blackscreen5]\n[blackscreen3]->[blackscreen4]\n[blackscreen2]->[blackscreen3]\n[blackscreen1]->[blackscreen2]\n\n(background animation)\n[bground9]->[bground10anim]\n[bground8]->[bground9]\n[bground7]->[bground8]\n[bground6]->[bground7]\n[bground5]->[bground6]\n[bground4]->[bground5]\n[bground3]->[bground4]\n[bground2]->[bground3]\n[bground1]->[bground2]\n[bground10]->[bground1]\n[bground10anim]->[bground10]\n[background no bgroundanim]->[background bground1]\n\n(generates closing animation)\n[outscreen4] -> [outscreen5]\n[outscreen3] -> [outscreen4]\n[outscreen2] -> [outscreen3]\n[outscreen1] -> [outscreen2]\n[buttonState][background no outscreen] -> [buttonState][background outscreen1] sfx4\nlate [buttonState][player] -> [buttonState][playerStandR]\n\n(generates smoke animation)\n[smoke2R] -> []\n[smoke1R] -> [smoke2R]\n[smoke2L] -> []\n[smoke1L] -> [smoke2L]\n(----------------------------------------------------level)\n(generates decoration and walls)\nlate[background no ground] -> [background wall]\nlate up[wall no ground no shallowWater | ground ] -> [wall cliff |ground]\nlate up[box | no boxtop] -> [box | boxtop ]\nlate[bush no wall] -> [bush wall]\n(generates detailed cliffs)\nlate right[no ground no cliffs | cliff | cliffs no cornerCliffTR]-> [|cornerCliffTR|cliff]\nlate right[no ground no cliffs | cliff | ground no cornerCliffTR]-> [|cornerCliffTR|ground]\nlate right[ cliff | no ground no cliffs]-> [cornerCliffTL|]\n\ndown[shallowWaterLRD | no shallowWaterBottom no shallow no ground] -> [shallowWaterLRD | shallowWaterBottom]\ndown[shallowWaterLRD | shallowWaterLRD ] -> [shallowWaterLRD | shallowWaterFull]\ndown[shallowWaterFull | shallowWaterLRD ] -> [shallowWaterLRD | shallowWaterFull]\nlate up[shallowWaterFull | no shallow] -> [shallowWaterLRD | ]\n\n(for single-tile cliffs)\nlate horizontal[no cliffs no ground| cliffs | no cliffs no ground] -> [|cliff|]\n\n(generates detailed land)\nlate right[no ground | land | ground]-> [|cornerLandTR|ground]\nlate up [ ground\t| cornerLandTR | ground] -> [ground | land | ground]\nlate right[ ground | land | no ground]-> [ground|cornerLandTL|]\nlate up [ ground\t| cornerLandTL | ground] -> [ground | land | ground]\nlate up [ ground | cornerLandTL | no ground] -> [ground | cornerLandDL | ]\nlate up [ ground | cornerLandTR | no ground] -> [ground | cornerLandDR | ]\n\n(generates tree)\nright[no tree | treebase1 | no tree] -> [treebase0 | treebase1 | treebase2 ]\nup[ treebase1 | no treestem1 ] -> [ treebase1 | treestem1 ]\nup[ treestem1 | no treecanopyMB ] -> [ treestem1 | treecanopyMB ]\nright[ no treecanopyLB | treecanopyMB | no treecanopyRB ] -> [ treecanopyLB|treecanopyMB | treecanopyRB ]\nright[ no treecanopyLLB | treecanopyLB ] -> [ treecanopyLLB|treecanopyLB ]\nup[ treecanopyMB | no treecanopyMM ] -> [ treecanopyMB | treecanopyMM ]\nup[ treecanopyMM | no treecanopyMT ] -> [ treecanopyMM | treecanopyMT ]\nright[treecanopyMM | no treedec ] -> [treecanopyMM|treecanopyRM]\nleft[treecanopyMM | no treedec] -> [treecanopyMM | treecanopyLM]\n\n(generates tree collision)\n[treebase1] -> [treebase1 wall]\n\n(-----------------------------------------------------player)\n(steps left from facing right)\nleft [> player1R] -> [> anim1L]\nleft [> player2R] -> [> anim2L]\nright [> player1L] -> [> anim1R]\nright [> player2L] -> [> anim2R]\n\n(step animation)\nright up down[> player1R] -> [> anim1R]\nright up down[> player2R] -> [> anim2R]\n[> anim1R] -> [> player2R]sfx0\n[> anim2R] -> [> player1R]sfx1\n\nleft up down[> player1L] -> [> anim1L]\nleft up down[> player2L] -> [> anim2L]\n[> anim1L] -> [> player2L]sfx0\n[> anim2L] -> [> player1L]sfx1\n\n(---------------playerbox animations)\n\n(steps left from facing right)\nleft [> playerbox1R] -> [> animbox1L]\nleft [> playerbox2R] -> [> animbox2L]\nright [> playerbox1L] -> [> animbox1R]\nright [> playerbox2L] -> [> animbox2R]\n\n(step animation)\nright up down[> playerbox1R] -> [> animbox1R]\nright up down[> playerbox2R] -> [> animbox2R]\n[> animbox1R] -> [> playerbox2R]sfx0\n[> animbox2R] -> [> playerbox1R]sfx1\n\nleft up down[> playerbox1L] -> [> animbox1L]\nleft up down[> playerbox2L] -> [> animbox2L]\n[> animbox1L] -> [> playerbox2L]sfx0\n[> animbox2L] -> [> playerbox1L]sfx1\n\n(-----------------------------------)\n\n(pushes box)\n[> player | box] -> [> player | > box]\n[> player | playerBoxInactive] -> [> player | > playerBoxInactive]\n\n(pushes box into shallow)\n[ > box | shallow wall | ] -> [ smoke1L | land | smoke1R] sfx5\n[ > player | shallow wall | ] -> [ smoke1L | land | smoke1R] sfx5 \n\n(button)\n[> box | button] -> [> box | button]sfx2\n[> player | button] -> [> player | button]sfx2\n[> player | pressedbutton] -> [> player | pressedbutton]sfx2\n[box button] -> [box pressedbutton]\n[player button] -> [player pressedbutton]sfx2\n[playerStandR button] -> [playerStandR pressedbutton]\n[pressedbutton no player no box no playerStandR no playerbox] -> [button]\n\n(-----------------------------swap)\n\n(player -> box)\n[playerBoxSwapAnim1R]->[playerBox1R]\n[playerswap1R][playerTop][playerBoxInactive] -> [playerswap2R][playerTopInactive][playerBoxSwapAnim1R]\n[action player][playerBoxInactive] -> [playerswap1R][playerBoxInactive]sfx3\n\n(box -> player)\n[playerswap2R]->[playerBox1R]\n[playerswap1R][playerTop][playerBoxInactive] -> [playerswap2R][playerTopInactive][playerBoxSwapAnim1R]\n[action playerbox][playerswap2R] -> [playerBoxSwapAnim1R][playerswap1R]sfx3\n\n(manages extra tiles of movable entities)\n[boxtop] -> []\nlate up[box|no boxtop]->[box|boxtop]\n[playerBoxTop] -> []\nlate up[playerBox|no playerBoxTop]->[playerBox|playerBoxTop]\n[playerBoxTopInactive] -> []\nlate up[playerBoxInactive | ] -> [playerBoxInactive | playerBoxTopInactive]\n[playerTop] -> []\nlate up[playerStandR |no playerTop] -> [playerStandR | playerTop]\nlate up[player |no playerTop] -> [player | playerTop]\nlate up[bush | no bushtop] -> [bush | bushtop]\n\n\n(--------------------------------------------win condition)\n\n[buttonStateOff][pressedbutton][no button] -> [buttonState][pressedbutton][]\n[buttonState][button] -> [buttonStateOff][pressedbutton]\n[buttonState][player] -> [buttonState][playerStandR]\n==============\nWINCONDITIONS\n==============\nno buttonStateOff\nall buttonState on outscreen5\n\n=======\nLEVELS\n=======\nMessage WELCOME TO THE ISLE OF BLOKS\n\n(1)\nw..............\n...............\n...............\n.......##lc#...\n...cl#######...\n...####xo#o#...\n...#########...\n...#p###.......\n...###.........\n...............\n...............\n\nmessage NEW BOX+\n(2)\nw.............\n..............\n...###..c##...\n...#o#..co#...\n...####x###...\n...#x#..c##...\n...#p#..cx#...\n...###..###...\n..............\n..............\n\nmessage TOO MANY BOXES\n(3)\nw...............\n................\n..........cl....\n.....ox#xx#x....\n.....x#x##x#....\n.....#x#x##x....\n....cx####p#....\n................\n................\n\nmessage A HOLE NEW MECHANIC\n(4)\nw.............\n..............\n...###...#l#..\n...#x#xm###...\n...#p#...x#...\n...#o#..o##...\n..............\n..............\n\nmessage BUILD-A-BRIDGE\n(5)\nw.................\n..................\n..................\n....###.....#l#...\n....####m####x#...\n...###x...#x###...\n..o##p#...cc#.....\n...#####m##o#.....\n..................\n..................\n\nmessage BEWARE OF POTHOLES\n(6)\nw.................\n..................\n.......#o#........\n.......#m#........\n.......#cm........\n...o...###..#l....\n...#####x######...\n...m.#mm##mp#x#...\n...#######m..##...\n...##.............\n..................\n..................\n\nmessage HOLESOME\n(7)\nw.................\n..................\n...........####...\n...........#xx#...\n...........x###...\n...#mmmmmm##x#x#..\n...ommmmmm#x#p##..\n..................\n..................\n\nmessage HOTDOG STYLE\nw........................\n.....##.....##...........\n.....#######x######......\n...om#p#....m....#x#m#...\n......######x#######.....\n...........##.....##.....\n.........................\n\nmessage BOXING RING\n(8)\nw.............\n..............\n...mmmmmmmm...\n...mo####om...\n...m###x##m...\n...m#####xm...\n...m#x#p##m...\n...m###x##m...\n...mox###om...\n...mmmmmmmm...\n..............\n..............\n\n(11)\nmessage ISLE OF BOXES, OF BOXES AND BRIDGES\nw..................\n...................\n...................\n........#lc#o#.....\n...........###.....\n......mmmmm#x#.....\n...####mxmm###.....\n...#px#mmmmm.......\n...##x#....#####...\n...####....#x#o#...\n...........#####...\n...................\n...................\n\nmessage RING OF THE BOX\n(9)\nw..............\n...............\n...####.####...\n...#xo#m##p#...\n...####.####...\n...###...#x#...\n....m.....m....\n...###...###...\n...####.####...\n...#x##m##x#...\n...####.####...\n...............\n\nmessage CONSTRUCTION CREW\n(10)\nw....................\n.....................\n..........o.....#l...\n...####..c#.######...\n...##x####mm#x##x#...\n...###x#p#mmox##x#...\n...#o#####mm#x##x#...\n..........#.cc.......\n..........o..........\n.....................\n.....................\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",0,"tick",1,"tick","tick",1,"tick",0,"tick",1,"tick",1,"tick",0,"tick",3,"tick","tick","tick","tick","tick",4,"tick","tick",4,0,"tick","tick",3,"tick","tick","tick","tick","tick","tick","tick","undo","tick","tick",2,"tick","tick",2,"tick",3,"tick","tick","tick",2,"tick",3,"tick",2,"tick",1,"tick","tick",0,"tick",3,"tick","tick",3,"tick",3,"tick","tick",3,"tick",3,"tick","tick",3,2,"tick","tick",2,"tick",1,"tick",0,"tick",3,"tick",0,1,"tick","tick",1,"tick",1,"tick","tick",1,"tick","tick","tick","tick",1,"tick",0,"tick",1,"tick",2,"tick","tick",3,"tick","tick","tick",1,"tick",2,"tick",3,"tick",2,1,"tick","tick",1,"tick","tick",1,"tick","tick",1,"tick","tick","tick",3,"tick","tick","tick",0,"tick","tick","tick","tick","tick","tick","tick","tick"],"background bground3 buttonstateoff wall:0,background bground3 wall:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,background bground3 button land:2,background bground3 cornerlandtr:3,background bground3 cornerclifftr shallowwaterlrd wall:4,background bground3 cornerlanddr:5,3,background bground3 cornerclifftr wall:6,1,1,1,1,1,1,1,\nbackground bground3 land:7,background bground3 boxtop cliff wall:8,background bground3 box land:9,background bground3 cornerlandtl:10,background bground3 cornerclifftl wall:11,1,1,1,1,1,1,1,7,7,7,background bground3 cliff wall:12,1,1,\n1,1,1,1,1,1,7,7,7,12,1,1,1,1,5,7,7,7,\n7,7,7,12,1,1,1,1,2,background bground3 bushtop cliff shallowwaterlrd wall:13,background bground3 bush cornerlanddl wall:14,7,7,7,7,12,1,1,\n1,1,background bground3 cornerlanddl:15,7,background bground3 cornerclifftl shallowwaterlrd wall:16,15,7,7,10,11,1,1,1,1,1,1,1,1,\n7,background bground3 cliff shallowwaterlrd wall:17,background bground3 shallowwaterfull wall:18,background bground3 shallowwaterbottom wall:19,1,1,1,1,1,background bground3 treecanopyllb wall:20,1,1,7,3,6,1,1,1,\n1,1,background bground3 treecanopylm wall:21,background bground3 treecanopylb wall:22,1,background bground3 cornerlanddr treebase0:23,7,7,12,1,1,1,1,background bground3 treecanopymt wall:24,background bground3 treecanopymm wall:25,background bground3 treecanopymb wall:26,background bground3 treestem1 wall:27,background bground3 cornerlanddl treebase1 wall:28,\n7,7,3,6,1,1,1,1,background bground3 treecanopyrm wall:29,background bground3 treecanopyrb wall:30,1,background bground3 treebase2 wall:31,15,7,10,11,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n",11,"1645574325242.0908"] + "Isle of Bloks", + ["title Isle of Bloks\n\ncolor_palette gameboycolour\n\nbackground_color #242b26\nkey_repeat_interval 0.12\nrealtime_interval 0.1\n========\nOBJECTS\n========\n(colors:\n#CADC9F - white\n#0f380f - dark\n#306230 - green\n#8bac0f - light green 1\n#9bbc0f - light green 2\n\ncustom \n#242b26 - black\n#3e4a40 - darkgray\n#4c5a4e\t- light darkgray\n#88a68d - gray\n#709277 - gray but slightly darker\n#ddebdf - white\n)\n\n\nbackground\n#3e4a40 #374239\n00000\n11000\n00000\n00011\n00000\n\nbground1\n#3e4a40 #374239\n00000\n11000\n00000\n00011\n00000\n\nbground2\n#3e4a40 #374239\n00000\n11000\n00000\n00011\n00000\n\nbground3\n#3e4a40 #374239\n11000\n00000\n00011\n00000\n00000\n\nbground4\n#3e4a40 #374239\n11000\n00000\n00011\n00000\n00000\n\nbground5\n#3e4a40 #374239\n00000\n00011\n00000\n00000\n11000\n\nbground6\n#3e4a40 #374239\n00000\n00011\n00000\n00000\n11000\n\nbground7\n#3e4a40 #374239\n00011\n00000\n00000\n11000\n00000\n\nbground8\n#3e4a40 #374239\n00011\n00000\n00000\n11000\n00000\n\nbground9\n#3e4a40 #374239\n00000\n00000\n11000\n00000\n00011\n\nbground10\n#3e4a40 #374239\n00000\n00000\n11000\n00000\n00011\n\nbground10anim\ntransparent\n\n(player animations)\n\nplayerStandR\n#ddebdf #242b26 #88a68d #709277\n00000\n00101\n22222\n33333\n.1.1.\n\nplayer1R\n#ddebdf #242b26 #88a68d #709277\n00000\n00101\n22222\n33333\n.1.1.\n\nanim1R\n#ddebdf #242b26 #88a68d\n00000\n00101\n22222\n22222\n.1.1.\n\nplayer2R\n#ddebdf #242b26 #88a68d #709277\n00000\n00101\n22222\n33333\n1...1\n\nanim2R\n#ddebdf #242b26 #88a68d\n00000\n00101\n22222\n22222\n1...1\n\nplayer1L\n#ddebdf #242b26 #88a68d #709277\n00000\n10100\n22222\n33333\n.1.1.\n\nanim1L\ntransparent\n\nplayer2L\n#ddebdf #242b26 #88a68d #709277 #FFFFFF\n00000\n10100\n22222\n33333\n1...1\n\nplayerswap1R\n#ddebdf #242b26 #88a68d #709277\n00000\n00000\n22222\n33333\n.1.1.\n\nplayerswap2R\n#ddebdf #242b26 #88a68d #709277 #FFFFFF\n44444\n00000\n00000\n22222\n33333\n\nanim2L\ntransparent\n\nplayerinactive\n#ddebdf #242b26 #88a68d #709277 #FFFFFF\n44444\n00000\n00000\n22222\n33333\n\n(player tops)\nplayerBoxTopInactive\n#88a68d\n.....\n.....\n.....\n.....\n00000\n\nplayerBoxTop\n#88a68d\n.....\n.....\n.....\n00000\n00000\n\nplayerTop\n#FFFFFF\n.....\n.....\n.....\n00000\n00000\n\nplayerTopInactive\n#FFFFFF\n.....\n.....\n.....\n.....\n00000\n\n(swap animations)\n\nplayerBoxInactive\n#ddebdf #242b26 #88a68d #709277\n22222\n33333\n33333\n33333\n33333\n\nplayerBoxSwapAnim1R\n#ddebdf #242b26 #88a68d #709277\n33333\n33333\n33333\n33333\n.1.1.\n\n(playerbox animations)\nplayerBox1R\n#ddebdf #242b26 #88a68d #709277\n33333\n33131\n33333\n33333\n.1.1.\n\nanimBox1R\ntransparent\n\nplayerBox2R\n#ddebdf #242b26 #88a68d #709277\n33333\n33131\n33333\n33333\n1...1\n\nanimBox2R\ntransparent\n\nplayerBox1L\n#ddebdf #242b26 #88a68d #709277\n33333\n13133\n33333\n33333\n.1.1.\n\nanimBox1L\ntransparent\n\nplayerBox2L\n#ddebdf #242b26 #88a68d #709277 #FFFFFF\n33333\n13133\n33333\n33333\n1...1\n\nanimBox2L\ntransparent\n()\n\n(------------------------------------------level elements)\nwall\ntransparent\n\nbox\n#242b26 #88a68d #709277 #3e4a40\n11111\n22222\n22222\n22222\n33333\n\nboxtop\n#242b26 #88a68d #709277\n.....\n.....\n.....\n11111\n11111\n\nbutton\n#242b26 #88a68d\n00000\n01110\n01010\n01110\n00000\n\npressedbutton\n#242b26 #88a68d\n00000\n01110\n01010\n01110\n00000\n\n(---------------------------------------island generation)\nland\n#CADC9F\n\ncornerLandTR\n#CADC9F #242b26\n00000\n00000\n00000\n00000\n10000\n\ncornerLandTL\n#CADC9F #242b26\n00000\n00000\n00000\n00000\n00001\n\ncornerLandDL\n#CADC9F #242b26\n0000.\n00000\n00000\n00000\n00000\n\ncornerLandDR\n#CADC9F #242b26\n.0000\n00000\n00000\n00000\n00000\n\ncliff\n#242b26 #242b26\n00000\n11111\n00000\n00000\n11111\n\ncornerCliffTR\n#242b26 #242b26\n10000\n01111\n00000\n10000\n.1111\n\ncornerCliffTL\n#242b26 #242b26\n00000\n11111\n00000\n00001\n1111.\n\n(----------------------------------transition objects)\nblackscreen1\n#242b26\n\nblackscreen2\n#242b26\n.000.\n00000\n00000\n00000\n.000.\n\nblackscreen3\n#242b26\n..0..\n.000.\n00000\n.000.\n..0..\n\nblackscreen4\n#242b26\n.....\n..0..\n.000.\n..0..\n.....\n\nblackscreen5\n#242b26\n.....\n.....\n..0..\n.....\n.....\n\noutscreen1\n#242b26\n0....\n0....\n0....\n0....\n0....\n\noutscreen2\n#242b26\n00...\n00...\n00...\n00...\n00...\n\noutscreen3\n#252b26\n000..\n000..\n000..\n000..\n000..\n\noutscreen4\n#252b26\n0000.\n0000.\n0000.\n0000.\n0000.\n\noutscreen5\n#252b26\n\n(--------------------------------------------decor)\ntreebase0\n#242b26 #88a68d #709277\n.....\n....1\n...10\n...0.\n.....\n\ntreebase1\n#242b26 #88a68d #709277\n.1122\n11122\n00022\n...00\n.....\n\ntreebase2\n#242b26 #88a68d #709277\n2....\n22...\n002..\n..0..\n.....\n\ntreestem1\n#88a68d #709277\n01.00\n.0001\n.0001\n.0011\n.0011\n\ntreecanopyMB\n#88a68d #709277 #242b26 #323b34\n33333\n33333\n33332\n22222\n122.0\n\ntreecanopyLB\n#88a68d #709277 #242b26 #323b34\n33333\n33333\n23333\n.2222\n..220\n\ntreecanopyLLB\n#88a68d #709277 #242b26 #323b34\n....3\n....2\n.....\n.....\n.....\n\ntreecanopyMM\n#88a68d #709277 #242b26 #323b34\n33333\n33333\n33333\n33333\n33333\n\ntreecanopyMT\n#323b34\n.....\n.....\n.....\n.000.\n00000\n\ntreecanopyLM\n#323b34\n...00\n..000\n.0000\n00000\n00000\n\ntreecanopyRM\n#323b34\n00...\n000..\n0000.\n00000\n00000\n\ntreecanopyRB\n#88a68d #709277 #242b26 #323b34\n33333\n33333\n23332\n2222.\n.22..\n\nbush\n#88a68d #709277 #242b26 #323b34\n00011\n00011\n00111\n21122\n.222.\n\nbushtop\n#88a68d #709277 #242b26 #323b34\n.....\n.....\n.001.\n00011\n00011\n\n(-----------------------------------------------------variables)\n(tracks buttons)\nbuttonState\ntransparent\n\nbuttonStateOff\ntransparent\n\n(------------------------------------------------------water?? tiles)\nshallowWater\n#a6c45d\n\nshallowWaterLRD\n#a6c45d\n.....\n.....\n00000\n00000\n00000\n\nshallowWaterBottom\n#a6c45d #323b34\n00000\n00000\n11111\n11111\n11111\n\nshallowWaterUp\n#a6c45d \n\nshallowWaterFull\n#a6c45d\n\n(---------------------------------------------------------smoke)\nsmoke1L\n#ddebdf\n.....\n.....\n..00.\n.00..\n..000\n\nsmoke2L\n#ddebdf\n.....\n.....\n.....\n.....\n000..\n\nsmoke1R\n#ddebdf\n.....\n.....\n00...\n.00..\n00...\n\nsmoke2R\n#ddebdf\n.....\n.....\n.....\n.....\n..000\n\nrestart1\n#CADC9F\n.000.\n.0.0.\n.0.0.\n.000.\n.....\n\nrestart2\n#CADC9F\n.000.\n.0...\n.00..\n.0...\n.....\n\nrestart3\n#ddebdf\n0.000\n..0..\n..000\n....0\n0.000\n\nrestart4\n#ddebdf\n.000.\n.0...\n.000.\n...0.\n.000.\n\nrestart5\n#ddebdf\n.00..\n.0.0.\n.00..\n.0.0.\n.0.0.\n\nrestartanim1\ntransparent\n\nrestartanim2\ntransparent\n\nrestartanim3\ntransparent\n\nrestartanim4\ntransparent\n\nrestartanim5\ntransparent\n=======\nLEGEND\n=======\n\nbgroundanim = bground1 or bground2 or bground3 or bground4 or bground5 or bground6 or bground7 or bground8 or bground9 or bground10 or bground10anim\n\nplayerbox = playerBox1R or playerBox2R or animBox1R or animBox2R or animBox1L or animBox2L or playerBox1L or playerBox2L\n\nplayer = player1R or player2R or anim1R or anim2R or player1L or anim1L or player2L or anim2L or playerBox\n\nplayerswapanim = playerswap1R or playerswap2R\nplayerboxswapanim = playerBoxSwapAnim1R\n\nblackscreen = blackscreen1 or blackscreen2 or blackscreen3 or blackscreen4 or blackscreen5\n\noutscreen = outscreen1 or outscreen2 or outscreen3 or outscreen4 or outscreen5\n\ncliffs = cliff or cornerCliffTR or cornerCliffTL\n\nground = land or cornerLandTR or cornerLandTL or cornerLandDL or cornerLandDR\n\ntree = treebase0 or treebase1 or treebase2\ntreedec = treestem1 or treecanopyMB or treecanopyLB or treecanopyLLB or treecanopyMM or treecanopyMT or treecanopyLM or treecanopyRM or treecanopyRB\n\nshallow = shallowWaterLRD or shallowWaterUp or shallowWater or shallowWaterFull\n\nsmoke = smoke1L or smoke2L or smoke1R or smoke2R\n\nrestart = restart1 or restart2 or restart3 or restart4 or restart5 or restartanim1 or restartanim2 or restartanim3 or restartanim4 or restartanim5\n\np = playerStandR and land and blackscreen1\n# = land and blackscreen1\nx = land and box and blackscreen1\no = button and land and blackscreen1\n. = background and blackscreen1\nl = land and treebase1 and blackscreen1\nc = bush and land and blackscreen1\ne = playerBoxInactive and land and blackscreen1\nw = buttonStateOff and blackscreen1\nm = shallowWaterLRD and blackscreen1\n1 = restart1\n2 = restart2\n\n=======\nSOUNDS\n=======\n\nsfx0 21839507\nsfx1 35644707\nsfx2 69260304\nsfx3 38107505\nbox move 20210107\nstartlevel 93909903\nsfx4 42654903\nsfx5 62394902\nrestart 16186705\nundo 44484905\n\n================\nCOLLISIONLAYERS\n================\nbackground\n(island decor layer)\nbgroundanim\nground,cliffs, shallowWaterBottom\nshallow, shallowWaterUp\n(tree layer)\ntree,treedec\n(decor layer)\nbush\n(interactive Layer)\nbutton,pressedbutton,buttonState,buttonStateOff\n(main layer)\nplayer,wall, box, playerStandR, playerBox, playerBoxInactive, playerswapanim,playerboxswapanim,playerinactive\n(\"3d\" layer)\nboxtop,playerBoxTop,playerBoxTopInactive, playerTop, playerTopInactive,bushtop\n(fx layer)\nsmoke, restart\n(fade in/out layer)\nblackscreen,outscreen\n\n\n======\nRULES\n======\n(gives control back to player)\n[playerStandR no blackscreen no outscreen]->[player1R]\n\n(----------------------------------------------transitions)\n(generates opening animation)\n[blackscreen5]->[]\n[blackscreen4]->[blackscreen5]\n[blackscreen3]->[blackscreen4]\n[blackscreen2]->[blackscreen3]\n[blackscreen1]->[blackscreen2]\n\n(background animation)\n[bground9]->[bground10anim]\n[bground8]->[bground9]\n[bground7]->[bground8]\n[bground6]->[bground7]\n[bground5]->[bground6]\n[bground4]->[bground5]\n[bground3]->[bground4]\n[bground2]->[bground3]\n[bground1]->[bground2]\n[bground10]->[bground1]\n[bground10anim]->[bground10]\n[background no bgroundanim]->[background bground1]\n\n(generates closing animation)\n[outscreen4] -> [outscreen5]\n[outscreen3] -> [outscreen4]\n[outscreen2] -> [outscreen3]\n[outscreen1] -> [outscreen2]\n[buttonState][background no outscreen] -> [buttonState][background outscreen1] sfx4\nlate [buttonState][player] -> [buttonState][playerStandR]\n\n(generates smoke animation)\n[smoke2R] -> []\n[smoke1R] -> [smoke2R]\n[smoke2L] -> []\n[smoke1L] -> [smoke2L]\n(----------------------------------------------------level)\n(generates decoration and walls)\nlate[background no ground] -> [background wall]\nlate up[wall no ground no shallowWater | ground ] -> [wall cliff |ground]\nlate up[box | no boxtop] -> [box | boxtop ]\nlate[bush no wall] -> [bush wall]\n(generates detailed cliffs)\nlate right[no ground no cliffs | cliff | cliffs no cornerCliffTR]-> [|cornerCliffTR|cliff]\nlate right[no ground no cliffs | cliff | ground no cornerCliffTR]-> [|cornerCliffTR|ground]\nlate right[ cliff | no ground no cliffs]-> [cornerCliffTL|]\n\ndown[shallowWaterLRD | no shallowWaterBottom no shallow no ground] -> [shallowWaterLRD | shallowWaterBottom]\ndown[shallowWaterLRD | shallowWaterLRD ] -> [shallowWaterLRD | shallowWaterFull]\ndown[shallowWaterFull | shallowWaterLRD ] -> [shallowWaterLRD | shallowWaterFull]\nlate up[shallowWaterFull | no shallow] -> [shallowWaterLRD | ]\n\n(for single-tile cliffs)\nlate horizontal[no cliffs no ground| cliffs | no cliffs no ground] -> [|cliff|]\n\n(generates detailed land)\nlate right[no ground | land | ground]-> [|cornerLandTR|ground]\nlate up [ ground\t| cornerLandTR | ground] -> [ground | land | ground]\nlate right[ ground | land | no ground]-> [ground|cornerLandTL|]\nlate up [ ground\t| cornerLandTL | ground] -> [ground | land | ground]\nlate up [ ground | cornerLandTL | no ground] -> [ground | cornerLandDL | ]\nlate up [ ground | cornerLandTR | no ground] -> [ground | cornerLandDR | ]\n\n(generates tree)\nright[no tree | treebase1 | no tree] -> [treebase0 | treebase1 | treebase2 ]\nup[ treebase1 | no treestem1 ] -> [ treebase1 | treestem1 ]\nup[ treestem1 | no treecanopyMB ] -> [ treestem1 | treecanopyMB ]\nright[ no treecanopyLB | treecanopyMB | no treecanopyRB ] -> [ treecanopyLB|treecanopyMB | treecanopyRB ]\nright[ no treecanopyLLB | treecanopyLB ] -> [ treecanopyLLB|treecanopyLB ]\nup[ treecanopyMB | no treecanopyMM ] -> [ treecanopyMB | treecanopyMM ]\nup[ treecanopyMM | no treecanopyMT ] -> [ treecanopyMM | treecanopyMT ]\nright[treecanopyMM | no treedec ] -> [treecanopyMM|treecanopyRM]\nleft[treecanopyMM | no treedec] -> [treecanopyMM | treecanopyLM]\n\n(generates tree collision)\n[treebase1] -> [treebase1 wall]\n\n(-----------------------------------------------------player)\n(steps left from facing right)\nleft [> player1R] -> [> anim1L]\nleft [> player2R] -> [> anim2L]\nright [> player1L] -> [> anim1R]\nright [> player2L] -> [> anim2R]\n\n(step animation)\nright up down[> player1R] -> [> anim1R]\nright up down[> player2R] -> [> anim2R]\n[> anim1R] -> [> player2R]sfx0\n[> anim2R] -> [> player1R]sfx1\n\nleft up down[> player1L] -> [> anim1L]\nleft up down[> player2L] -> [> anim2L]\n[> anim1L] -> [> player2L]sfx0\n[> anim2L] -> [> player1L]sfx1\n\n(---------------playerbox animations)\n\n(steps left from facing right)\nleft [> playerbox1R] -> [> animbox1L]\nleft [> playerbox2R] -> [> animbox2L]\nright [> playerbox1L] -> [> animbox1R]\nright [> playerbox2L] -> [> animbox2R]\n\n(step animation)\nright up down[> playerbox1R] -> [> animbox1R]\nright up down[> playerbox2R] -> [> animbox2R]\n[> animbox1R] -> [> playerbox2R]sfx0\n[> animbox2R] -> [> playerbox1R]sfx1\n\nleft up down[> playerbox1L] -> [> animbox1L]\nleft up down[> playerbox2L] -> [> animbox2L]\n[> animbox1L] -> [> playerbox2L]sfx0\n[> animbox2L] -> [> playerbox1L]sfx1\n\n(-----------------------------------)\n\n(pushes box)\n[> player | box] -> [> player | > box]\n[> player | playerBoxInactive] -> [> player | > playerBoxInactive]\n\n(pushes box into shallow)\n[ > box | shallow wall | ] -> [ smoke1L | land | smoke1R] sfx5\n[ > player | shallow wall | ] -> [ smoke1L | land | smoke1R] sfx5 \n\n(button)\n[> box | button] -> [> box | button]sfx2\n[> player | button] -> [> player | button]sfx2\n[> player | pressedbutton] -> [> player | pressedbutton]sfx2\n[box button] -> [box pressedbutton]\n[player button] -> [player pressedbutton]sfx2\n[playerStandR button] -> [playerStandR pressedbutton]\n[pressedbutton no player no box no playerStandR no playerbox] -> [button]\n\n(-----------------------------swap)\n\n(player -> box)\n[playerBoxSwapAnim1R]->[playerBox1R]\n[playerswap1R][playerTop][playerBoxInactive] -> [playerswap2R][playerTopInactive][playerBoxSwapAnim1R]\n[action player][playerBoxInactive] -> [playerswap1R][playerBoxInactive]sfx3\n\n(box -> player)\n[playerswap2R]->[playerBox1R]\n[playerswap1R][playerTop][playerBoxInactive] -> [playerswap2R][playerTopInactive][playerBoxSwapAnim1R]\n[action playerbox][playerswap2R] -> [playerBoxSwapAnim1R][playerswap1R]sfx3\n\n(manages extra tiles of movable entities)\n[boxtop] -> []\nlate up[box|no boxtop]->[box|boxtop]\n[playerBoxTop] -> []\nlate up[playerBox|no playerBoxTop]->[playerBox|playerBoxTop]\n[playerBoxTopInactive] -> []\nlate up[playerBoxInactive | ] -> [playerBoxInactive | playerBoxTopInactive]\n[playerTop] -> []\nlate up[playerStandR |no playerTop] -> [playerStandR | playerTop]\nlate up[player |no playerTop] -> [player | playerTop]\nlate up[bush | no bushtop] -> [bush | bushtop]\n\n\n(--------------------------------------------win condition)\n\n[buttonStateOff][pressedbutton][no button] -> [buttonState][pressedbutton][]\n[buttonState][button] -> [buttonStateOff][pressedbutton]\n[buttonState][player] -> [buttonState][playerStandR]\n==============\nWINCONDITIONS\n==============\nno buttonStateOff\nall buttonState on outscreen5\n\n=======\nLEVELS\n=======\nMessage WELCOME TO THE ISLE OF BLOKS\n\n(1)\nw..............\n...............\n...............\n.......##lc#...\n...cl#######...\n...####xo#o#...\n...#########...\n...#p###.......\n...###.........\n...............\n...............\n\nmessage NEW BOX+\n(2)\nw.............\n..............\n...###..c##...\n...#o#..co#...\n...####x###...\n...#x#..c##...\n...#p#..cx#...\n...###..###...\n..............\n..............\n\nmessage TOO MANY BOXES\n(3)\nw...............\n................\n..........cl....\n.....ox#xx#x....\n.....x#x##x#....\n.....#x#x##x....\n....cx####p#....\n................\n................\n\nmessage A HOLE NEW MECHANIC\n(4)\nw.............\n..............\n...###...#l#..\n...#x#xm###...\n...#p#...x#...\n...#o#..o##...\n..............\n..............\n\nmessage BUILD-A-BRIDGE\n(5)\nw.................\n..................\n..................\n....###.....#l#...\n....####m####x#...\n...###x...#x###...\n..o##p#...cc#.....\n...#####m##o#.....\n..................\n..................\n\nmessage BEWARE OF POTHOLES\n(6)\nw.................\n..................\n.......#o#........\n.......#m#........\n.......#cm........\n...o...###..#l....\n...#####x######...\n...m.#mm##mp#x#...\n...#######m..##...\n...##.............\n..................\n..................\n\nmessage HOLESOME\n(7)\nw.................\n..................\n...........####...\n...........#xx#...\n...........x###...\n...#mmmmmm##x#x#..\n...ommmmmm#x#p##..\n..................\n..................\n\nmessage HOTDOG STYLE\nw........................\n.....##.....##...........\n.....#######x######......\n...om#p#....m....#x#m#...\n......######x#######.....\n...........##.....##.....\n.........................\n\nmessage BOXING RING\n(8)\nw.............\n..............\n...mmmmmmmm...\n...mo####om...\n...m###x##m...\n...m#####xm...\n...m#x#p##m...\n...m###x##m...\n...mox###om...\n...mmmmmmmm...\n..............\n..............\n\n(11)\nmessage ISLE OF BOXES, OF BOXES AND BRIDGES\nw..................\n...................\n...................\n........#lc#o#.....\n...........###.....\n......mmmmm#x#.....\n...####mxmm###.....\n...#px#mmmmm.......\n...##x#....#####...\n...####....#x#o#...\n...........#####...\n...................\n...................\n\nmessage RING OF THE BOX\n(9)\nw..............\n...............\n...####.####...\n...#xo#m##p#...\n...####.####...\n...###...#x#...\n....m.....m....\n...###...###...\n...####.####...\n...#x##m##x#...\n...####.####...\n...............\n\nmessage CONSTRUCTION CREW\n(10)\nw....................\n.....................\n..........o.....#l...\n...####..c#.######...\n...##x####mm#x##x#...\n...###x#p#mmox##x#...\n...#o#####mm#x##x#...\n..........#.cc.......\n..........o..........\n.....................\n.....................\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", 1, "tick", "tick", 1, "tick", 0, "tick", 1, "tick", 1, "tick", 0, "tick", 3, "tick", "tick", "tick", "tick", "tick", 4, "tick", "tick", 4, 0, "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "undo", "tick", "tick", 2, "tick", "tick", 2, "tick", 3, "tick", "tick", "tick", 2, "tick", 3, "tick", 2, "tick", 1, "tick", "tick", 0, "tick", 3, "tick", "tick", 3, "tick", 3, "tick", "tick", 3, "tick", 3, "tick", "tick", 3, 2, "tick", "tick", 2, "tick", 1, "tick", 0, "tick", 3, "tick", 0, 1, "tick", "tick", 1, "tick", 1, "tick", "tick", 1, "tick", "tick", "tick", "tick", 1, "tick", 0, "tick", 1, "tick", 2, "tick", "tick", 3, "tick", "tick", "tick", 1, "tick", 2, "tick", 3, "tick", 2, 1, "tick", "tick", 1, "tick", "tick", 1, "tick", "tick", 1, "tick", "tick", "tick", 3, "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background bground3 buttonstateoff wall:0,background bground3 wall:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,background bground3 button land:2,background bground3 cornerlandtr:3,background bground3 cornerclifftr shallowwaterlrd wall:4,background bground3 cornerlanddr:5,3,background bground3 cornerclifftr wall:6,1,1,1,1,1,1,1,\nbackground bground3 land:7,background bground3 boxtop cliff wall:8,background bground3 box land:9,background bground3 cornerlandtl:10,background bground3 cornerclifftl wall:11,1,1,1,1,1,1,1,7,7,7,background bground3 cliff wall:12,1,1,\n1,1,1,1,1,1,7,7,7,12,1,1,1,1,5,7,7,7,\n7,7,7,12,1,1,1,1,2,background bground3 bushtop cliff shallowwaterlrd wall:13,background bground3 bush cornerlanddl wall:14,7,7,7,7,12,1,1,\n1,1,background bground3 cornerlanddl:15,7,background bground3 cornerclifftl shallowwaterlrd wall:16,15,7,7,10,11,1,1,1,1,1,1,1,1,\n7,background bground3 cliff shallowwaterlrd wall:17,background bground3 shallowwaterfull wall:18,background bground3 shallowwaterbottom wall:19,1,1,1,1,1,background bground3 treecanopyllb wall:20,1,1,7,3,6,1,1,1,\n1,1,background bground3 treecanopylm wall:21,background bground3 treecanopylb wall:22,1,background bground3 cornerlanddr treebase0:23,7,7,12,1,1,1,1,background bground3 treecanopymt wall:24,background bground3 treecanopymm wall:25,background bground3 treecanopymb wall:26,background bground3 treestem1 wall:27,background bground3 cornerlanddl treebase1 wall:28,\n7,7,3,6,1,1,1,1,background bground3 treecanopyrm wall:29,background bground3 treecanopyrb wall:30,1,background bground3 treebase2 wall:31,15,7,10,11,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n", 11, "1645574325242.0908"] ], [ - "SokokoS", - ["title SokokoS\nauthor Notan\nhomepage https://notaninart.itch.io\nbackground_color #350828\ntext_color #f9cb60\nnorepeat_action\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nPalette1\n#151244 #60117f #922a95 #be7dbc #350828\n01234\n12340\n23401\n34012\n40123\n\nPalette2\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n01234\n12340\n23401\n34012\n40123\n\nBackground\n#350828\n\nWall\n#7f6962#680703\n00010\n11111\n01000\n11111\n00010\n\nPlayer\n#be7dbc #151244\n.000.\n01010\n01010\n00000\n.000.\n\nCrate\n#f9960f\n00000\n0...0\n0...0\n0...0\n00000\n\n\nPlayerGuide\n#be7dbc #151244\n.....\n.....\n..0..\n.....\n.....\n\nCrateGuide\n#f9960f\n.....\n.....\n..0..\n.....\n.....\n\nTarget\n#7f6962\n.....\n.000.\n.0.0.\n.000.\n.....\n\nMirror\n#f9cb60\n..0..\n..0..\n..0..\n..0..\n..0..\n\nMarker\ntransparent\n\n=======\nLEGEND\n=======\n\nObstacle = Crate or Wall\nGuide = PlayerGuide or CrateGuide\n\nPalette = Palette1 or Palette2\nX = Palette1\nY = Palette2\n\n. = Background\n# = Wall\nI = Mirror\nP = Player\n╋ = Crate\n╬ = Target\nH = Mirror and Wall\n& = Crate and Target\n@ = Crate and Wall\n\n=======\nSOUNDS\n=======\n\n\nsfx0 22463707 (walk)\nsfx1 67079507 (push 10471704)\nsfx2 03111065 (flip)\nsfx3 10471704 (walk unused)\nsfx4 41314507 (walk unused)\nsfx5 10471704 (push unused)\nUndo 21479104 (72060504 60450507)\nrestart 46704309\nstartgame 21069303\nclosemessage 21069303\n(startlevel 67233309)\nendlevel 32515109\n(endgame 21069303)\ntitlescreen 21069303\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPalette\nTarget, Wall\nGuide\nPlayer\nCrate\nMirror\nMarker\n\n======\nRULES \n======\n\n[ > player no obstacle | no obstacle ] -> [ | player ] sfx0\n[ > player no obstacle | crate no wall | no obstacle ] -> [ | player | crate ] sfx1\n[ > player ] -> [ player ]\n\n[ action player ] -> sfx2\n\nhorizontal [ action player ] [ no marker | mirror | no marker ] -> [ action player ] [ marker | mirror | marker ]\nright [ | marker no crate | ... | marker no crate | ] -> [ marker | | ... | | marker ]\n+ horizontal [ | marker crate | ... | marker no crate | ] -> [ marker | | ... | crate | marker ]\n+ right [ | marker crate | ... | marker crate | ] -> [ marker | crate | ... | crate | marker ]\n[ marker ] -> [ ]\n\nhorizontal [ action player | ... | mirror ] -> [ player | ... | marker mirror ]\nright [ | marker mirror | ] -> [ marker | mirror | marker ]\nright [ | marker no player | ... | marker no player | ] -> [ marker | | ... | | marker ]\n+ horizontal [ marker player | ... | marker ] -> [ | ... | player ]\n[ marker ] -> [ ]\n\nlate [ guide ] -> [ ]\nlate horizontal [ no marker | mirror | no marker ] -> [ marker | mirror | marker ]\nlate right [ | marker no crate | ... | marker no crate | ] -> [ marker | | ... | | marker ]\n+ late horizontal [ | marker crate | ... | marker no crate | ] -> [ marker | crate | ... | crateGuide | marker ]\n+ late right [ | marker crate | ... | marker crate | ] -> [ marker | crate CrateGuide | ... | crate crateGuide | marker ]\nlate [ marker ] -> [ ]\n\nlate horizontal [ player | ... | mirror ] -> [ player | ... | marker mirror ]\nlate right [ | marker mirror | ] -> [ marker | mirror | marker ]\nlate right [ | marker no player | ... | marker no player | ] -> [ marker | | ... | | marker ]\n+ late horizontal [ marker player | ... | marker ] -> [ player | ... | playerGuide ]\nlate [ marker ] -> [ ]\n\n==============\nWINCONDITIONS\n==============\n\nall target on crate\n\n======= \nLEVELS\n=======\n\n\nMessage Press X | X sserP\n\n\n(\n######h######\n##..╬.i╬...##\n##...╬i.╬..##\n######h##╋###\n#...##h##..##\n#.#.##h##..##\n#...#.h..#╋##\n#####.h.╋.╋.#\n#####.h##...#\n#...#.h##.#.#\n#.p.#.i.....#\n#...##h######\n######h######\n\n\n######h######\n##..╬.i╬...##\n##...╬i.╬..##\n######h##╋###\n######h##...#\n######h##...#\n#####.h..#╋##\n#####.h.╋.╋.#\n#####.h##...#\n#...#.h##.#.#\n#.p.#.i.....#\n#...##h######\n######h######\n)\n\n#######h#######\n####...i#╬╬####\n####..#i.╬╬####\n#######h#╋#####\n####..#h#.#####\n####.##h#.#####\n####...h.╋#####\n######.h.╋.╋..#\n######.h#..##.#\n##...#.h##.##.#\n##.p.#.i......#\n##...##h#######\n#######h#######\n\n\nMessage You win! | !niw ouY\n\n",[3,4,0,0,0,1,1,4,3,2,2,2,3,3,3,3,0,0,0,3,1,2,0,3,4,0,4,1,2,0,2,3,2,2,1,1,4,0,0,0,0,1,3,2,2,2,2,3,3,3,3,0,0,0,1,0,4,1,3,3,2,4,4,0,1,1,0,0,3,4,0,0,4,1,0,3,3,2,3,2,3,3,2,2],"background wall: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,background crateguide wall:1,0,background:2,2,2,0,0,0,0,0,0,0,\n0,0,0,2,2,2,0,0,2,2,0,2,2,background crateguide:3,0,\n0,2,2,2,0,0,2,2,0,background playerguide:4,1,2,1,0,0,\n0,0,0,0,2,0,0,0,0,2,2,2,2,2,0,\n0,background mirror wall:5,background mirror:6,6,5,5,5,5,5,5,5,6,5,5,0,\n0,2,0,0,0,2,2,0,0,2,0,0,0,background target:7,7,\n2,background player:8,background crate:9,2,9,2,0,2,0,0,0,7,7,0,0,\n0,background crate wall:10,2,2,2,2,0,0,0,0,0,0,0,0,0,\n2,0,0,2,0,0,0,0,0,0,0,0,0,9,0,\n0,2,0,0,0,0,0,0,0,0,0,2,2,2,2,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",1,"1645642394866.7083"] + "SokokoS", + ["title SokokoS\nauthor Notan\nhomepage https://notaninart.itch.io\nbackground_color #350828\ntext_color #f9cb60\nnorepeat_action\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nPalette1\n#151244 #60117f #922a95 #be7dbc #350828\n01234\n12340\n23401\n34012\n40123\n\nPalette2\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n01234\n12340\n23401\n34012\n40123\n\nBackground\n#350828\n\nWall\n#7f6962#680703\n00010\n11111\n01000\n11111\n00010\n\nPlayer\n#be7dbc #151244\n.000.\n01010\n01010\n00000\n.000.\n\nCrate\n#f9960f\n00000\n0...0\n0...0\n0...0\n00000\n\n\nPlayerGuide\n#be7dbc #151244\n.....\n.....\n..0..\n.....\n.....\n\nCrateGuide\n#f9960f\n.....\n.....\n..0..\n.....\n.....\n\nTarget\n#7f6962\n.....\n.000.\n.0.0.\n.000.\n.....\n\nMirror\n#f9cb60\n..0..\n..0..\n..0..\n..0..\n..0..\n\nMarker\ntransparent\n\n=======\nLEGEND\n=======\n\nObstacle = Crate or Wall\nGuide = PlayerGuide or CrateGuide\n\nPalette = Palette1 or Palette2\nX = Palette1\nY = Palette2\n\n. = Background\n# = Wall\nI = Mirror\nP = Player\n╋ = Crate\n╬ = Target\nH = Mirror and Wall\n& = Crate and Target\n@ = Crate and Wall\n\n=======\nSOUNDS\n=======\n\n\nsfx0 22463707 (walk)\nsfx1 67079507 (push 10471704)\nsfx2 03111065 (flip)\nsfx3 10471704 (walk unused)\nsfx4 41314507 (walk unused)\nsfx5 10471704 (push unused)\nUndo 21479104 (72060504 60450507)\nrestart 46704309\nstartgame 21069303\nclosemessage 21069303\n(startlevel 67233309)\nendlevel 32515109\n(endgame 21069303)\ntitlescreen 21069303\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPalette\nTarget, Wall\nGuide\nPlayer\nCrate\nMirror\nMarker\n\n======\nRULES \n======\n\n[ > player no obstacle | no obstacle ] -> [ | player ] sfx0\n[ > player no obstacle | crate no wall | no obstacle ] -> [ | player | crate ] sfx1\n[ > player ] -> [ player ]\n\n[ action player ] -> sfx2\n\nhorizontal [ action player ] [ no marker | mirror | no marker ] -> [ action player ] [ marker | mirror | marker ]\nright [ | marker no crate | ... | marker no crate | ] -> [ marker | | ... | | marker ]\n+ horizontal [ | marker crate | ... | marker no crate | ] -> [ marker | | ... | crate | marker ]\n+ right [ | marker crate | ... | marker crate | ] -> [ marker | crate | ... | crate | marker ]\n[ marker ] -> [ ]\n\nhorizontal [ action player | ... | mirror ] -> [ player | ... | marker mirror ]\nright [ | marker mirror | ] -> [ marker | mirror | marker ]\nright [ | marker no player | ... | marker no player | ] -> [ marker | | ... | | marker ]\n+ horizontal [ marker player | ... | marker ] -> [ | ... | player ]\n[ marker ] -> [ ]\n\nlate [ guide ] -> [ ]\nlate horizontal [ no marker | mirror | no marker ] -> [ marker | mirror | marker ]\nlate right [ | marker no crate | ... | marker no crate | ] -> [ marker | | ... | | marker ]\n+ late horizontal [ | marker crate | ... | marker no crate | ] -> [ marker | crate | ... | crateGuide | marker ]\n+ late right [ | marker crate | ... | marker crate | ] -> [ marker | crate CrateGuide | ... | crate crateGuide | marker ]\nlate [ marker ] -> [ ]\n\nlate horizontal [ player | ... | mirror ] -> [ player | ... | marker mirror ]\nlate right [ | marker mirror | ] -> [ marker | mirror | marker ]\nlate right [ | marker no player | ... | marker no player | ] -> [ marker | | ... | | marker ]\n+ late horizontal [ marker player | ... | marker ] -> [ player | ... | playerGuide ]\nlate [ marker ] -> [ ]\n\n==============\nWINCONDITIONS\n==============\n\nall target on crate\n\n======= \nLEVELS\n=======\n\n\nMessage Press X | X sserP\n\n\n(\n######h######\n##..╬.i╬...##\n##...╬i.╬..##\n######h##╋###\n#...##h##..##\n#.#.##h##..##\n#...#.h..#╋##\n#####.h.╋.╋.#\n#####.h##...#\n#...#.h##.#.#\n#.p.#.i.....#\n#...##h######\n######h######\n\n\n######h######\n##..╬.i╬...##\n##...╬i.╬..##\n######h##╋###\n######h##...#\n######h##...#\n#####.h..#╋##\n#####.h.╋.╋.#\n#####.h##...#\n#...#.h##.#.#\n#.p.#.i.....#\n#...##h######\n######h######\n)\n\n#######h#######\n####...i#╬╬####\n####..#i.╬╬####\n#######h#╋#####\n####..#h#.#####\n####.##h#.#####\n####...h.╋#####\n######.h.╋.╋..#\n######.h#..##.#\n##...#.h##.##.#\n##.p.#.i......#\n##...##h#######\n#######h#######\n\n\nMessage You win! | !niw ouY\n\n", [3, 4, 0, 0, 0, 1, 1, 4, 3, 2, 2, 2, 3, 3, 3, 3, 0, 0, 0, 3, 1, 2, 0, 3, 4, 0, 4, 1, 2, 0, 2, 3, 2, 2, 1, 1, 4, 0, 0, 0, 0, 1, 3, 2, 2, 2, 2, 3, 3, 3, 3, 0, 0, 0, 1, 0, 4, 1, 3, 3, 2, 4, 4, 0, 1, 1, 0, 0, 3, 4, 0, 0, 4, 1, 0, 3, 3, 2, 3, 2, 3, 3, 2, 2], "background wall: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,background crateguide wall:1,0,background:2,2,2,0,0,0,0,0,0,0,\n0,0,0,2,2,2,0,0,2,2,0,2,2,background crateguide:3,0,\n0,2,2,2,0,0,2,2,0,background playerguide:4,1,2,1,0,0,\n0,0,0,0,2,0,0,0,0,2,2,2,2,2,0,\n0,background mirror wall:5,background mirror:6,6,5,5,5,5,5,5,5,6,5,5,0,\n0,2,0,0,0,2,2,0,0,2,0,0,0,background target:7,7,\n2,background player:8,background crate:9,2,9,2,0,2,0,0,0,7,7,0,0,\n0,background crate wall:10,2,2,2,2,0,0,0,0,0,0,0,0,0,\n2,0,0,2,0,0,0,0,0,0,0,0,0,9,0,\n0,2,0,0,0,0,0,0,0,0,0,2,2,2,2,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 1, "1645642394866.7083"] ], [ "rigid disablement applies to whole rule-groups", - ["title rigid disablement applies to whole rule-groups\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | crate ] -> [ > player | crate ]\n\n[ player | target ] -> [ > player | target ]\n\n( up [ > Player | Crate ] -> [ > Player | > Crate ] )\n( + rigid right [ > Player | Crate ] -> [ > Player | > Crate ] )\n( + rigid left [ > Player | Crate ] -> [ > Player | > Crate ] )\n( + down [ > Player | Crate ] -> [ > Player | > Crate ] )\n\nup [ > Player | Crate ] -> [ > Player | > Crate ] \n+ rigid horizontal [ > Player | Crate ] -> [ > Player | > Crate ] \n+ rigid down [ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.............\n.............\n.....#.......\n.....*.o.....\n.....p.p.....\n...op...p*#..\n.............\n...*p...po...\n.....p.p.....\n.....o.*.....\n.............\n.............\n.............\n\n\n\n",[4],"background: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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background player target:1,0,background crate:2,0,0,0,0,0,\n0,0,0,0,0,0,0,background player:3,0,0,0,0,0,\n0,0,0,2,3,0,0,0,0,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,1,0,0,0,0,3,2,0,0,0,\n0,0,0,0,0,3,0,0,0,0,0,0,0,\n0,0,0,0,0,2,0,1,0,0,0,0,0,\n0,0,0,0,0,background wall:4,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,0,0,0,0,0,\n",0,"1646644384358.2732"] + ["title rigid disablement applies to whole rule-groups\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | crate ] -> [ > player | crate ]\n\n\n\nup [ > Player | Crate ] -> [ > Player | > Crate ] \n+ rigid horizontal [ > Player | Crate ] -> [ > Player | > Crate ] \n+ rigid down [ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.............\n.............\n.............\n.....*.......\n.....p.......\n........p*#..\n.............\n...*p........\n.......p.....\n.......*.....\n.............\n.............\n.............\n\n",[4],"background: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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,background crate:1,0,0,0,0,0,\n0,0,0,0,0,0,0,background player:2,0,0,0,0,0,\n0,0,0,1,2,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,2,1,0,0,0,\n0,0,0,0,0,2,0,0,0,0,0,0,0,\n0,0,0,0,0,1,0,0,0,0,0,0,0,\n0,0,0,0,0,background wall:3,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,0,0,0,0,0,\n",0,"1646700547379.7295"] + ], + [ + "rigid applies to movements even if the movements were already present in the cell before rule application [i.e. if the rule doesn't do anything]", + ["title rigid applies to movements even if the movements were already present in the cell before rule application [i.e. if the rule doesn't do anything]\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | crate ] -> [ > player | crate ]\n\n[ player | target ] -> [ > player | target ]\n\n+ right [ > Player | Crate ] -> [ > Player | > Crate ] \n+ left [ > Player | Crate ] -> [ > Player | > Crate ] \n\nup [ > Player | Crate ] -> [ > Player | > Crate ] \n+ rigid right [ > Player | Crate ] -> [ > Player | > Crate ] \n+ rigid left [ > Player | Crate ] -> [ > Player | > Crate ] \n+ down [ > Player | Crate ] -> [ > Player | > Crate ] \n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.............\n.............\n.....#.......\n.....*.o.....\n.....p.p.....\n...op...p*#..\n.............\n...*p...po...\n.....p.p.....\n.....o.*.....\n.............\n.............\n.............\n\n\n\n", [4], "background: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,\n0,0,0,0,0,0,0,background crate:1,0,0,0,0,0,\n0,0,0,0,0,background player target:2,0,background player:3,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background wall:4,1,3,0,0,0,0,2,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,2,0,0,0,0,3,1,0,0,0,\n0,0,0,0,0,3,0,0,0,0,0,0,0,\n0,0,0,0,0,1,0,2,0,0,0,0,0,\n0,0,0,0,0,4,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,0,0,0,0,0,\n", 0, "1646645466460.093"] + ], + [ + "rigid applies to movements even if the movements are chagned by subsequent non-rigid rules in other groups", + ["title rigid applies to movements even if the movements are chagned by subsequent non-rigid rules in other groups\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nrigid right [ right Player ] -> [ up Player ] \n\n\n[ up Player ] -> [ left player ] \n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#p....\n........\n...p....\n........\n\n\n", [3], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\n0,0,0,0,0,background player:2,0,2,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646647163086.0168"] + ], + [ + "rigid applies to movements even if the objects are changed to different objects in the same layer", + ["title rigid applies to movements even if the objects are changed to different objects in the same layer\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nrigid [ Player ] -> [ left Player ] \n\n[ player ] -> [ crate ]\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#p....\n........\n...p....\n........\n\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\nbackground crate:2,0,2,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646647382066.4045"] + ], + [ + "rigid applies to movements even if they are removed and subsequently readded", + ["title rigid applies to movements even if they are removed and subsequently readded\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nrigid [ Player ] -> [ left Player ] \n\n[ crate | player ] -> [ crate | stationary player ]\n[ crate | player ] -> [ crate | < player ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#p....\n........\n...p....\n........\n\n\n", [3], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\n0,0,0,0,0,background player:2,0,2,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646647562594.771"] + ], + [ + "rigid applies to movements even if they are removed", + ["title rigid applies to movements even if they are removed (along with their objects) and subsequently readded\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nrigid [ Player ] -> [ left Player ] \n\n[ crate | player ] -> [ crate | ]\n[ crate | ] -> [ crate | < player ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#p....\n........\n...p....\n........\n\n\n", [3], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\n0,0,0,0,0,background player:2,0,2,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646647631710.7463"] ], [ - "rigid applies to movements even if the movements were already present in the cell before rule application [i.e. if the rule doesn't do anything]", - ["title rigid applies to movements even if the movements were already present in the cell before rule application [i.e. if the rule doesn't do anything]\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | crate ] -> [ > player | crate ]\n\n[ player | target ] -> [ > player | target ]\n\n+ right [ > Player | Crate ] -> [ > Player | > Crate ] \n+ left [ > Player | Crate ] -> [ > Player | > Crate ] \n\nup [ > Player | Crate ] -> [ > Player | > Crate ] \n+ rigid right [ > Player | Crate ] -> [ > Player | > Crate ] \n+ rigid left [ > Player | Crate ] -> [ > Player | > Crate ] \n+ down [ > Player | Crate ] -> [ > Player | > Crate ] \n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.............\n.............\n.....#.......\n.....*.o.....\n.....p.p.....\n...op...p*#..\n.............\n...*p...po...\n.....p.p.....\n.....o.*.....\n.............\n.............\n.............\n\n\n\n",[4],"background: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,\n0,0,0,0,0,0,0,background crate:1,0,0,0,0,0,\n0,0,0,0,0,background player target:2,0,background player:3,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background wall:4,1,3,0,0,0,0,2,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,2,0,0,0,0,3,1,0,0,0,\n0,0,0,0,0,3,0,0,0,0,0,0,0,\n0,0,0,0,0,1,0,2,0,0,0,0,0,\n0,0,0,0,0,4,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,0,0,0,0,0,\n",0,"1646645466460.093"] + "rigid applies to movements even if the initial movement applied is an ACTION that is later changed to a movement", + ["title rigid applies to movements even if the initial movement applied is an ACTION that is later changed to a movement\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nrigid [ crate ] -> [ action crate ] \n\n\n[ action crate ] -> [ left crate ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n", [3], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\nbackground crate:2,0,2,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\nbackground player:3,0,0,0,0,0,0,0,\n", 0, "1646647810474.9294"] ], [ - "rigid applies to movements even if the movements are chagned by subsequent non-rigid rules in other groups", - ["title rigid applies to movements even if the movements are chagned by subsequent non-rigid rules in other groups\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nrigid right [ right Player ] -> [ up Player ] \n\n\n[ up Player ] -> [ left player ] \n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#p....\n........\n...p....\n........\n\n\n",[3],"background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\n0,0,0,0,0,background player:2,0,2,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n",0,"1646647163086.0168"] + "rigid applies to movements even if the initial movement applied is an STATIONARY that is later changed to a movement", + ["title rigid applies to movements even if the initial movement applied is an STATIONARY that is later changed to a movement\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid [ crate ] -> [ stationary crate ] \n\n\n[ stationary crate ] -> [ left crate ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,background crate:2,\n0,2,0,0,0,0,0,0,\n0,0,0,background player:3,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646647871326.5627"] ], [ - "rigid applies to movements even if the objects are changed to different objects in the same layer", - ["title rigid applies to movements even if the objects are changed to different objects in the same layer\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nrigid [ Player ] -> [ left Player ] \n\n[ player ] -> [ crate ]\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#p....\n........\n...p....\n........\n\n\n",[4],"background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\nbackground crate:2,0,2,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n",0,"1646647382066.4045"] + "rigid DOES NOT apply to objects if the rule is totally inert except for triggering SFX", + ["title rigid DOES NOT apply to objects if the rule is totally inert except for triggering SFX\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid right [ wall | crate ] -> [ wall | crate ] sfx0 \n\n\n[ up crate ] -> [ left crate ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,background crate:2,0,0,\n2,0,0,0,0,0,0,0,\n0,0,0,background player:3,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646648625330.979"] ], [ - "rigid applies to movements even if they are removed and subsequently readded", - ["title rigid applies to movements even if they are removed and subsequently readded\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nrigid [ Player ] -> [ left Player ] \n\n[ crate | player ] -> [ crate | stationary player ]\n[ crate | player ] -> [ crate | < player ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#p....\n........\n...p....\n........\n\n\n",[3],"background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\n0,0,0,0,0,background player:2,0,2,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n",0,"1646647562594.771"] + "rigid DOES NOT apply to objects if a movement on the RHS is removed implicitly [by not mentioning a movement matched on the LHS]", + ["title rigid DOES NOT apply to objects if a movement on the RHS is removed implicitly [by not mentioning a movement matched on the LHS]\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid right [ wall | up crate ] -> [ wall | crate ] \n\n\n[ stationary crate ] -> [ left crate ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\nbackground crate:2,2,0,0,0,0,0,0,\n0,0,0,background player:3,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646648958460.208"] ], [ - "rigid applies to movements even if they are removed", - ["title rigid applies to movements even if they are removed (along with their objects) and subsequently readded\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nrigid [ Player ] -> [ left Player ] \n\n[ crate | player ] -> [ crate | ]\n[ crate | ] -> [ crate | < player ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#p....\n........\n...p....\n........\n\n\n",[3],"background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\n0,0,0,0,0,background player:2,0,2,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n",0,"1646647631710.7463"] + "rigid DOES apply to objects if a movement on the RHS is removed explicitly [by not mentioning a movement matched on the LHS]", + ["title rigid DOES apply to objects if a movement on the RHS is removed explicitly [by not mentioning a movement matched on the LHS]\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid right [ wall | up crate ] -> [ wall | stationary crate ] \n\n\n[ stationary crate ] -> [ left crate ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,background crate:2,\n0,2,0,0,0,0,0,0,\n0,0,0,background player:3,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646649072656.4766"] ], [ - "rigid applies to movements even if the initial movement applied is an ACTION that is later changed to a movement", - ["title rigid applies to movements even if the initial movement applied is an ACTION that is later changed to a movement\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nrigid [ crate ] -> [ action crate ] \n\n\n[ action crate ] -> [ left crate ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n",[3],"background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\nbackground crate:2,0,2,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\nbackground player:3,0,0,0,0,0,0,0,\n",0,"1646647810474.9294"] + "rigid DOES apply to objects if a movement on the RHS is removed explicitly, even if the object is replaced by another one on the same layer", + ["title rigid DOES apply to objects if a movement on the RHS is removed explicitly, even if the object is replaced by another one on the same layer\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid right [ wall | up crate ] -> [ wall | stationary crate ] \n\n\n[ stationary crate ] -> [ left player ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,background crate:2,\n0,2,0,0,0,0,0,0,\n0,0,0,background player:3,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646649296576.2854"] ], [ - "rigid applies to movements even if the initial movement applied is an STATIONARY that is later changed to a movement", - ["title rigid applies to movements even if the initial movement applied is an STATIONARY that is later changed to a movement\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid [ crate ] -> [ stationary crate ] \n\n\n[ stationary crate ] -> [ left crate ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n",[4],"background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,background crate:2,\n0,2,0,0,0,0,0,0,\n0,0,0,background player:3,0,0,0,0,\n0,0,0,0,0,0,0,0,\n",0,"1646647871326.5627"] + "rigid DOES NOT apply to objects if a movement on the RHS is assigned, and later the object is replaced by an object on another layer", + ["title rigid DOES NOT apply to objects if a movement on the RHS is assigned, and later the object is replaced by an object on another layer\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall and target\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid right [ wall | up crate ] -> [ wall | down crate ] \n\n\n[ down crate ] -> [ left target ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,background target wall:1,0,0,0,0,\nbackground target:2,background crate:3,0,0,0,0,0,0,\n0,0,0,background player:4,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646649418277.2751"] ], [ - "rigid DOES NOT apply to objects if the rule is totally inert except for triggering SFX", - ["title rigid DOES NOT apply to objects if the rule is totally inert except for triggering SFX\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid right [ wall | crate ] -> [ wall | crate ] sfx0 \n\n\n[ up crate ] -> [ left crate ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n",[4],"background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,background crate:2,0,0,\n2,0,0,0,0,0,0,0,\n0,0,0,background player:3,0,0,0,0,\n0,0,0,0,0,0,0,0,\n",0,"1646648625330.979"] + "misc rigid test", + ["title misc rigid test\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall \nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nTarget\n\n======\nRULES\n======\n\nrigid [ crate ] -> [ left crate ]\n\nright [ wall | crate ] -> [ wall | ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n........\n........\n..#*....\n.....p..\n...*....\n........\n........\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\nbackground wall:1,0,background crate:2,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,background player:3,0,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646698655056.5757"] ], [ - "rigid DOES NOT apply to objects if a movement on the RHS is removed implicitly [by not mentioning a movement matched on the LHS]", - ["title rigid DOES NOT apply to objects if a movement on the RHS is removed implicitly [by not mentioning a movement matched on the LHS]\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid right [ wall | up crate ] -> [ wall | crate ] \n\n\n[ stationary crate ] -> [ left crate ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n",[4],"background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\nbackground crate:2,2,0,0,0,0,0,0,\n0,0,0,background player:3,0,0,0,0,\n0,0,0,0,0,0,0,0,\n",0,"1646648958460.208"] + "rigid: even removing and re-adding an object doesn't remove the rigid tag from that position and layer.", + ["title rigid: even removing and re-adding an object doesn't remove the rigid tag from that position and layer.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall \nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nTarget\n\n======\nRULES\n======\n\nrigid [ crate ] -> [ left crate ]\n\ndown [ wall | crate ] -> [ wall | ]\n\ndown [ wall | ] -> [ wall | up crate ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n........\n...#....\n...*....\n.....p..\n...*....\n........\n........\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,background wall:1,background crate:2,\n0,2,0,0,0,0,0,0,\n0,0,0,0,0,0,background player:3,0,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646698763919.0374"] ], [ - "rigid DOES apply to objects if a movement on the RHS is removed explicitly [by not mentioning a movement matched on the LHS]", - ["title rigid DOES apply to objects if a movement on the RHS is removed explicitly [by not mentioning a movement matched on the LHS]\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid right [ wall | up crate ] -> [ wall | stationary crate ] \n\n\n[ stationary crate ] -> [ left crate ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n",[4],"background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,background crate:2,\n0,2,0,0,0,0,0,0,\n0,0,0,background player:3,0,0,0,0,\n0,0,0,0,0,0,0,0,\n",0,"1646649072656.4766"] + "rigid: even a rigid rule removing an object marks the position/layer of the removed object as rigid.", + ["title rigid: even a rigid rule removing an object marks the position/layer of the removed object as rigid.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall \nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nTarget\n\n======\nRULES\n======\n\n\n[ crate ] -> [ left crate ]\n\nrigid down [ wall | crate ] -> [ wall | ]\n\ndown [ wall | crate ] -> [ wall | right crate ]\n\ndown [ wall | no crate ] -> [ wall | up crate ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n........\n...#....\n...*....\n.....p..\n...*....\n........\n........\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n0,0,background crate:1,0,0,0,background wall:2,0,\n0,0,0,0,0,0,1,0,\n0,0,0,0,0,0,background player:3,0,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646699000524.8464"] ], [ - "rigid DOES apply to objects if a movement on the RHS is removed explicitly, even if the object is replaced by another one on the same layer", - ["title rigid DOES apply to objects if a movement on the RHS is removed explicitly, even if the object is replaced by another one on the same layer\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid right [ wall | up crate ] -> [ wall | stationary crate ] \n\n\n[ stationary crate ] -> [ left player ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n",[4],"background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,background crate:2,\n0,2,0,0,0,0,0,0,\n0,0,0,background player:3,0,0,0,0,\n0,0,0,0,0,0,0,0,\n",0,"1646649296576.2854"] + "One player, unlimited rigidbodies", + ["title One player, unlimited rigidbodies\nauthor increpare\nhomepage www.increpare.com\n\n(\n\nThis is a sample of \n\n- Unlimited rigid bodies\n- 1 Player (should be extendable)\n\nIt's made as an example for the extended rigid body tutorial here:\n\nhttps://www.puzzlescript.net/Documentation/rigidbodies.html\n\n)\n\n========\nOBJECTS\n========\n\nBackground\ngreen\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\nYellow orange\n00000\n01110\n01110\n01110\n00000\n\n\n(The directional overlays bellow establish connections between crates)\n\nCrate_U\norange\n.000.\n.....\n.....\n.....\n.....\n\nCrate_D\norange\n.....\n.....\n.....\n.....\n.000.\n\nCrate_L\norange\n.....\n0....\n0....\n0....\n.....\n\nCrate_R\norange\n.....\n....0\n....0\n....0\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n\nw = crate and Crate_U\nx = crate and Crate_D\na = crate and Crate_L\nd = crate and Crate_R\n\ne = crate and Crate_U and Crate_L\nz = crate and Crate_D and Crate_L\nq = crate and Crate_U and Crate_R\nc = crate and Crate_D and Crate_R\n\nr = crate and Crate_L and Crate_R\nt = crate and Crate_D and Crate_U\n\n1 = crate and Crate_D and Crate_L and Crate_R\n2 = crate and Crate_U and Crate_L and Crate_R\n3 = crate and Crate_U and Crate_D and Crate_L\n4 = crate and Crate_U and Crate_D and Crate_R\n\n0 = crate and Crate_U and Crate_D and Crate_L and Crate_R\n\n5 = crate\n\nCrate_Connection = Crate_U or Crate_D or Crate_L or Crate_R\n\nPusher = Player or Crate\nPushable = Crate or crate_connection\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nCrate_U\nCrate_D\nCrate_L\nCrate_R\n\n======\nRULES\n======\n\n(for making maps easily: uncomment out the other lines press action to discard all boundaries and recreate them)\n\n( [ action player ] [ crate_connection ] -> [ action player ] [ ] )\n( up [ action player ] [ crate | crate ] -> [ action player ] [ crate crate_u | crate crate_d ] )\n( right [ action player ] [ crate | crate ] -> [ action player ] [ crate crate_r | crate crate_l ] )\n\n[ > Pusher | Pushable ] -> [ > Pusher | > Pushable ]\n+ up [ moving crate Crate_U | crate ] -> [ moving crate Crate_U | moving crate ]\n+ down [ moving crate Crate_D | crate ] -> [ moving crate Crate_D | moving crate ]\n+ left [ moving crate Crate_L | crate ] -> [ moving crate Crate_L | moving crate ]\n+ right [ moving crate Crate_R | crate ] -> [ moving crate Crate_R | moving crate ]\n\n[ moving crate stationary crate_connection ] -> [ moving crate moving crate_connection ]\n\n[ > crate | wall ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n###############\n#.............#\n#..ca...ca.dz.#\n#.ce..d1e...w.#\n#.t....w......#\n#.w.d1a..5.5..#\n#....w....5...#\n#......dz.....#\n#...p...t..dz.#\n#..x..cre...w.#\n#..w..w...5...#\n#.............#\n###############\n",[1,1,2,3,3,2,3,2,3,3,0,0,0,0,0,3,0,1,1,1,1,2,1,1,0,0,3,0,3,2,3,3,3],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,\n1,background crate crate_d crate_r:2,background crate crate_d crate_u:3,background crate crate_u:4,1,1,1,1,1,1,0,0,1,2,background crate crate_l crate_u:5,\nbackground crate crate_r:6,1,1,1,1,1,1,1,0,0,1,background crate crate_l:7,1,background crate crate_d crate_l crate_r:8,4,\n1,1,1,1,1,1,0,0,1,6,1,7,1,1,1,\n1,1,1,1,0,0,1,8,4,1,1,1,1,1,1,\n1,1,0,0,2,5,1,1,1,1,1,1,background crate crate_d:9,4,1,\n0,0,7,1,1,1,1,1,1,1,1,1,1,0,0,\n1,1,1,1,1,2,4,1,1,1,1,0,0,1,background crate:10,\n1,6,background player:11,background crate crate_l crate_r:12,1,1,1,1,1,0,0,1,1,1,background crate crate_d crate_l:13,\n3,5,1,1,1,10,1,0,0,1,6,1,1,10,10,\n1,6,1,1,1,0,0,1,13,4,1,1,1,1,13,\n4,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",0,"1646701772316.744"] ], [ - "rigid DOES NOT apply to objects if a movement on the RHS is assigned, and later the object is replaced by an object on another layer", - ["title rigid DOES NOT apply to objects if a movement on the RHS is assigned, and later the object is replaced by an object on another layer\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall and target\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid right [ wall | up crate ] -> [ wall | down crate ] \n\n\n[ down crate ] -> [ left target ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n",[4],"background:0,0,0,0,0,0,0,0,\n0,0,0,background target wall:1,0,0,0,0,\nbackground target:2,background crate:3,0,0,0,0,0,0,\n0,0,0,background player:4,0,0,0,0,\n0,0,0,0,0,0,0,0,\n",0,"1646649418277.2751"] + "Many parallel players, unlimited rigidbodies", + ["title Many parallel players, unlimited rigidbodies\nauthor increpare\nhomepage www.increpare.com\n\nverbose_logging\n\n(\n\nThis is a sample of \n\n- Unlimited rigid bodies\n- 1 Player (should be extendable)\n\nIt's made as an example for the extended rigid body tutorial here:\n\nhttps://www.puzzlescript.net/Documentation/rigidbodies.html\n\n)\n\n========\nOBJECTS\n========\n\nBackground\ngreen\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 Crate\nYellow orange\n00000\n01110\n01110\n01110\n00000\n\n\n(The directional overlays bellow establish connections between crates)\n\n Crate_U\norange\n.000.\n.....\n.....\n.....\n.....\n\n Crate_D\norange\n.....\n.....\n.....\n.....\n.000.\n\n Crate_L\norange\n.....\n0....\n0....\n0....\n.....\n\n Crate_R\norange\n.....\n....0\n....0\n....0\n.....\n\nBLOCKED\nred\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n\nw = Crate and Crate_U\nx = Crate and Crate_D\na = Crate and Crate_L\nd = Crate and Crate_R\n\ne = Crate and Crate_U and Crate_L\nz = Crate and Crate_D and Crate_L\nq = Crate and Crate_U and Crate_R\nc = Crate and Crate_D and Crate_R\n\nr = Crate and Crate_L and Crate_R\nt = Crate and Crate_D and Crate_U\n\n1 = Crate and Crate_D and Crate_L and Crate_R\n2 = Crate and Crate_U and Crate_L and Crate_R\n3 = Crate and Crate_U and Crate_D and Crate_L\n4 = Crate and Crate_U and Crate_D and Crate_R\n\n0 = Crate and Crate_U and Crate_D and Crate_L and Crate_R\n\n5 = Crate\n\n Crate_Connection = Crate_U or Crate_D or Crate_L or Crate_R\n\nPusher = Player or Crate\nPushable = Crate \nSolid = Crate or Player\n\n=======\nSOUNDS\n=======\n\n Crate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\n Crate_U\n Crate_D\n Crate_L\n Crate_R\nBLOCKED\n\n======\nRULES\n======\n\n(For making maps easily: uncomment out the next few lines + press action to discard all boundaries and recreate them)\n\n( [ action player ] [ Crate_connection ] -> [ action player ] [ ] )\n( up [ action player ] [ Crate | Crate ] -> [ action player ] [ Crate Crate_u | Crate Crate_d ] )\n( right [ action player ] [ Crate | Crate ] -> [ action player ] [ Crate Crate_r | Crate Crate_l ] )\n\n\nstartloop\n\n(I'm using ACTION to mark 'BLOCKED's as old to allow the loop to exit once no new BLOCKEDs have been added)\n[ stationary BLOCKED ] -> [ action BLOCKED ]\n\n[ > Pusher | no BLOCKED Pushable ] -> [ > Pusher | > Pushable ]\n+ up [ moving Crate Crate_U | no BLOCKED Crate ] -> [ moving Crate Crate_U | moving Crate ]\n+ down [ moving Crate Crate_D | no BLOCKED Crate ] -> [ moving Crate Crate_D | moving Crate ]\n+ left [ moving Crate Crate_L | no BLOCKED Crate ] -> [ moving Crate Crate_L | moving Crate ]\n+ right [ moving Crate Crate_R | no BLOCKED Crate ] -> [ moving Crate Crate_R | moving Crate ]\n\n\n(If a crate can't move, we have to back-propagate the can't-move-ness, including possibly through players)\n[ > Solid | wall ] -> [ > Solid BLOCKED | wall ]\n\n[ no BLOCKED > Solid | BLOCKED Solid ] -> [ BLOCKED > Solid | BLOCKED Solid ]\n+ up [ BLOCKED Crate Crate_U | no BLOCKED Crate ] -> [ BLOCKED Crate Crate_U | BLOCKED Crate ]\n+ down [ BLOCKED Crate Crate_D | no BLOCKED Crate ] -> [ BLOCKED Crate Crate_D | BLOCKED Crate ]\n+ left [ BLOCKED Crate Crate_L | no BLOCKED Crate ] -> [ BLOCKED Crate Crate_L | BLOCKED Crate ]\n+ right [ BLOCKED Crate Crate_R | no BLOCKED Crate ] -> [ BLOCKED Crate Crate_R | BLOCKED Crate ]\n\n\n(Then we remove all movements from BLOCKED crates, along with the BLOCKED marker itself)\n[ BLOCKED moving Solid ] -> [ BLOCKED stationary Solid ]\n\n[ stationary BLOCKED ] [ moving crate ] -> [ stationary BLOCKED ] [ stationary crate ]\nendloop\n\n[ BLOCKED ] -> [ ]\n\n(To wrap it all up, move connections along with the crates themselves)\n[ moving Crate stationary Crate_connection ] -> [ moving Crate moving Crate_connection ]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n###############\n#..ca.........#\n#.ce....ca....#\n#.t...d1e.....#\n#.w....w......#\n#....d1ap5.dz.#\n#....pw...5.w5#\n#......dz.....#\n#.......t..dz.#\n#..x..cre...w.#\n#..w..w...5...#\n#.............#\n###############\n\n###############\n#..ca.........#\n#.ce....ca....#\n#.t...d1e.....#\n#.w....w......#\n#....d1ap5.dz.#\n#....pw...5.w5#\n#......dz.....#\n#.......t..dz.#\n#..x..cre...w.#\n#..w..w...5...#\n#.............#\n###############\n\n",[3,3,3,0,3,3,2,2,2,1,2,2,3,3,3,3,3,2,2,2,1,1,2,2,3,3,3,0,0,0,1,0,0,0,0,1,1,2,1,0,0,0,1,1,1,1,0,3,1,1,1,3,3,3,1,0,1,1,1],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,\nbackground crate crate_d crate_r:2,background crate crate_d crate_u:3,background crate crate_u:4,1,1,1,1,1,1,1,0,0,2,background crate crate_l crate_u:5,1,\n1,1,1,1,1,1,1,1,0,0,background crate crate_l:6,background player:7,1,1,1,\n1,1,1,background crate crate_d:8,4,1,0,0,1,background crate crate_r:9,1,1,1,1,1,\n1,1,1,1,0,0,1,background crate crate_d crate_l crate_r:10,4,1,1,1,1,1,1,\n1,1,0,0,2,5,7,1,1,1,1,1,1,2,4,\n0,0,6,1,1,1,1,1,1,9,1,background crate crate_l crate_r:11,1,0,0,\n1,1,1,9,1,1,1,background crate crate_d crate_l:12,3,5,1,0,0,1,1,\n1,10,4,1,1,1,1,1,1,0,0,1,1,1,6,\nbackground crate:13,13,1,1,1,1,13,0,0,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,9,1,1,1,\n1,9,1,0,0,1,1,1,13,12,4,1,1,1,12,\n4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",0,"1646703814545.0725"] ], ]; From 7d383f505438cdf5c9deb43b4645a75f2000817a Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Tue, 8 Mar 2022 12:15:58 +0100 Subject: [PATCH 059/122] fixes #874 --- src/js/compiler.js | 33 +++++++++++--------- src/tests/resources/errormessage_testdata.js | 4 +++ 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/src/js/compiler.js b/src/js/compiler.js index 2773b23c6..96a342093 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -2355,8 +2355,25 @@ function generateLoopPoints(state) { var outside = true; var source = 0; var target = 0; - if (state.loops.length % 2 === 1) { - logErrorNoLine("have to have matching number of 'startLoop' and 'endLoop' loop points."); + if (state.loops.length > 0) { + for (var i=0;i= loop[0]) { target = i; outside = false; - if (loop[1] === -1) { - logErrorNoLine("Need have to have matching number of 'startLoop' and 'endLoop' loop points."); - } break; } } else { @@ -2384,9 +2398,6 @@ function generateLoopPoints(state) { source = i - 1; loopPoint[source] = target; outside = true; - if (loop[1] === 1) { - logErrorNoLine("Need have to have matching number of 'startLoop' and 'endLoop' loop points."); - } break; } } @@ -2415,9 +2426,6 @@ function generateLoopPoints(state) { if (firstRuleLine >= loop[0]) { target = i; outside = false; - if (loop[1] === -1) { - logErrorNoLine("Need have to have matching number of 'startLoop' and 'endLoop' loop points."); - } break; } } else { @@ -2425,9 +2433,6 @@ function generateLoopPoints(state) { source = i - 1; loopPoint[source] = target; outside = true; - if (loop[1] === 1) { - logErrorNoLine("Need have to have matching number of 'startLoop' and 'endLoop' loop points."); - } break; } } diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index b6725edb7..42336b581 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -535,4 +535,8 @@ var errormessage_testdata = [ "#863 Extended Bodies:Multiple Parallel Players, Multiple Extended Object", ["title Extended Bodies:Multiple Parallel Players, Multiple Extended Object\nauthor Anonymous\nhomepage www.puzzlescript.net\n\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground \nwhite \n\nTarget \nDarkBlue \n\nWall \nDarkGrey\n\nPlayer\nBlue\n..0..\n..0.0\n00000\n.000.\n.0.0.\n\nShadow\nBlack\n..0..\n0.0..\n00000\n.000.\n.0.0.\n\n( three multi-cells blocks )\nCrate \norange\n\nChest\ngreen\n\nBox\nred\n\n( 1-cell small block )\nSmall\ndarkred\n.....\n.000.\n.000.\n.000.\n.....\n\n( sticky, multicellular block when in contact )\nGlue\npink\n.000.\n00000\n00000\n00000\n.000.\n\n( a flag to know what is allowed move )\nWanna_Move\n#ff00ff\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n( all things that can move and push blocks )\nMover = Player or Player \n\n. = Background\n# = Wall\nP = Player\nS = Shadow\n* = Crate\n+ = Box\n% = Chest\no = Small\ng = Glue\n\n( blocks that can be moved by the player )\nMovable = Crate or Box or Chest or Small or Glue\n\n\n( things that can stop a movement if they are stationary )\nObstacle = Wall or Mover\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nObstacle\nWanna_Move\nMovable\nShadow\n\n======\nRULES \n====== \n\n[ > player ] [ stationary shadow ] -> [ > player ] [ < shadow ]\n\n( 1. Propagate movements forward )\n[ > Mover | Movable ] -> [ > Mover | > Movable ]\n+ [ > Box ] [ Box ] -> [ > Box ] [ > Box ]\n+ [ > Crate ] [ Crate ] -> [ > Crate ] [ > Crate ]\n+ [ > Chest ] [ Chest ] -> [ > Chest ] [ > Chest ]\n+ [ moving Glue | Glue ] -> [ moving Glue | moving Glue ]\n\n( 2. Propagate obstructions backwards )\n[ > Mover | stationary Obstacle ] -> [ stationary Mover | Obstacle ]\n+ [ > Crate ] [ stationary Crate ] -> [ stationary Crate ] [ Crate ]\n+ [ > Box ] [ stationary Box ] -> [ stationary Box ] [ Box ]\n+ [ > Chest ] [ stationary Chest ] -> [ stationary Chest ] [ Chest ]\n+ [ moving Glue | stationary Glue ] -> [ stationary Glue | Glue ]\n\n( 3. remove all movement, keep a flag )\n[ > Movable ] -> [ Movable wanna_move ]\n\n( 4. propagate movement only on wanna_move things )\n( ie redo step 1 but with WANNA_MOVE added to the first line below )\n[ > Mover | Movable WANNA_MOVE ] -> [ > Mover | > Movable ]\n+ [ > Box ] [ Box ] -> [ > Box ] [ > Box ]\n+ [ > Crate ] [ Crate ] -> [ > Crate ] [ > Crate ]\n+ [ > Chest ] [ Chest ] -> [ > Chest ] [ > Chest ]\n+ [ moving Glue | Glue ] -> [ moving Glue | moving Glue ]\n\n( 5. cleanup, remove flag )\n[ wanna_move ] -> [ ]\n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\n###################\n#.................#\n#.................#\n#...*..g.g.#......#\n#...*......#...g###\n#...*...o.%%%.....#\n#...+++.o.%.......#\n#....+....%%%.....#\n#....+.....P...g..#\n#....p.gg.........#\n###################\n\n",["line 78 : You're repeating the object PLAYER here multiple times on the RHS. This makes no sense. Don't do that."],0] ], + [ + "Startloop/endloop errors", + ["title Startloop/endloop errors\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\nstartloop\nstartloop\n[ > Player | Crate ] -> [ > Player | > Crate ] \nendloop\nendloop\nstartloop\n\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 82 : Found a STARTLOOP, but I'm already inside a loop? (Puzzlescript can't nest loops, FWIW).","line 84 : Found an ENDLOOP, but I'm not in a loop?","line 86 : Yo I found a STARTLOOP without a corresponding ENDLOOP."],3] + ], ]; \ No newline at end of file From 3785927406903b4fba507e80f1beecb4e5195f96 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Tue, 8 Mar 2022 15:14:20 +0100 Subject: [PATCH 060/122] fixes #875 in the process made a lot of new tests, and improved error message output --- src/js/compiler.js | 32 ++- src/js/engine.js | 9 +- src/js/parser.js | 27 +- src/tests/resources/errormessage_testdata.js | 270 ++++++++++++++++++- src/tests/resources/testdata.js | 8 + 5 files changed, 319 insertions(+), 27 deletions(-) diff --git a/src/js/compiler.js b/src/js/compiler.js index 96a342093..06a35b9e4 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -380,15 +380,25 @@ function generateExtraMembers(state) { backgroundid = o.id; backgroundlayer = o.layer; } else if ('background' in state.propertiesDict) { - var n = state.propertiesDict['background'][0]; + var backgrounddef = state.propertiesDict['background']; + var n = backgrounddef[0]; var o = state.objects[n]; backgroundid = o.id; backgroundlayer = o.layer; + for (var i=1;i 0) { @@ -1602,7 +1613,7 @@ function rulesToMask(state) { } break; } else if (object_dir === 'random') { - logError("'random' cannot be matched on the left-hand side, it can only appear on the right", rule.lineNumber); + logError("RANDOM cannot be matched on the left-hand side, it can only appear on the right", rule.lineNumber); continue; } @@ -2030,7 +2041,8 @@ function generateRigidGroupList(state) { } } if (rigidGroupIndex_to_GroupIndex.length > 30) { - logError("There can't be more than 30 rigid groups (rule groups containing rigid members).", rules[0][0][3]); + var group_index = rigidGroupIndex_to_GroupIndex[30]; + logError("There can't be more than 30 rigid groups (rule groups containing rigid members).", state.rules[group_index][0].lineNumber); } state.rigidGroups = rigidGroups; diff --git a/src/js/engine.js b/src/js/engine.js index 74a15fd01..c83c94262 100644 --- a/src/js/engine.js +++ b/src/js/engine.js @@ -662,10 +662,6 @@ function setGameState(_state, command, randomseed) { switch(command[0]){ case "restart": { - if (restarting==true){ - logWarning('A "restart" command is being triggered in the "run_rules_on_level_start" section of level creation, which would cause an infinite loop if it was actually triggered, but it\'s being ignored, so it\'s not.'); - break; - } winning=false; timer=0; titleScreen=true; @@ -2663,6 +2659,11 @@ function processInput(dir,dontDoWin,dontModify) { } if (level.commandQueue.indexOf('restart')>=0) { + + if (verbose_logging && runrulesonlevelstart_phase){ + logWarning('A "restart" command is being triggered in the "run_rules_on_level_start" section of level creation, which would cause an infinite loop if it was actually triggered, but it\'s being ignored, so it\'s not.',undefined,true); + } + if (verbose_logging) { var r = level.commandQueueSourceRules[level.commandQueue.indexOf('restart')]; consolePrintFromRule('RESTART command executed, reverting to restart state.',r); diff --git a/src/js/parser.js b/src/js/parser.js index b3d6d1206..eb789b222 100644 --- a/src/js/parser.js +++ b/src/js/parser.js @@ -217,7 +217,7 @@ var codeMirrorFn = function() { logError(`You're talking about ${candname.toUpperCase()} but it's not defined anywhere.`, state.lineNumber); } - function registerOriginalCaseName(state,candname,mixedCase){ + function registerOriginalCaseName(state,candname,mixedCase,lineNumber){ function escapeRegExp(str) { return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); @@ -227,6 +227,7 @@ var codeMirrorFn = function() { var match = mixedCase.match(nameFinder); if (match!=null){ state.original_case_names[candname] = match[0]; + state.original_line_numbers[candname] = lineNumber; } } @@ -314,8 +315,7 @@ var codeMirrorFn = function() { for (var j=2;j= 0) { if (sol) { - logError('Identifiers cannot appear outside of square brackets in rules, only directions can.', state.lineNumber); + logError('Objects cannot appear outside of square brackets in rules, only directions can.', state.lineNumber); return 'ERROR'; } else { stream.match(/[\p{Z}\s]*/u, true); @@ -1404,7 +1406,7 @@ var codeMirrorFn = function() { } else if (state.tokenIndex === 2) { if (candword != 'on') { - logError('Expecting the word "ON" but got "'+candword.toUpperCase()+"'.", state.lineNumber); + logError('Expecting the word "ON" but got "'+candword.toUpperCase()+"\".", state.lineNumber); return 'ERROR'; } else { return 'LOGICWORD'; @@ -1618,6 +1620,7 @@ var codeMirrorFn = function() { metadata: [], original_case_names: {}, + original_line_numbers: {}, abbrevNames: [], diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index 42336b581..185811b3d 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -517,7 +517,7 @@ var errormessage_testdata = [ ], [ "Testing error messages for incorrect semantic in the sounds section", - ["title Simple Block Pushing Game\nauthor David Skinner\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\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 up cat 31232\nCrate create up 31232\nCrate create cat 31232\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 67 : Ah I were expecting direction or a sound seed here after UP, but I don't know what to make of \"CAT\".","line 68 : Ah I were expecting a sound seed here after CREATE, but I don't know what to make of \"UP\".","line 69 : Ah I were expecting a sound seed here after CREATE, but I don't know what to make of \"CAT\"."],3] + ["title Simple Block Pushing Game\nauthor David Skinner\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\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 up cat 31232\nCrate create up 31232\nCrate create cat 31232\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 67 : Ah I was expecting direction or a sound seed here after UP, but I don't know what to make of \"CAT\".","line 68 : Ah I was expecting a sound seed here after CREATE, but I don't know what to make of \"UP\".","line 69 : Ah I was expecting a sound seed here after CREATE, but I don't know what to make of \"CAT\"."],3] ], [ "Sound section comment insertion stress test", @@ -538,5 +538,273 @@ var errormessage_testdata = [ [ "Startloop/endloop errors", ["title Startloop/endloop errors\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\nstartloop\nstartloop\n[ > Player | Crate ] -> [ > Player | > Crate ] \nendloop\nendloop\nstartloop\n\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 82 : Found a STARTLOOP, but I'm already inside a loop? (Puzzlescript can't nest loops, FWIW).","line 84 : Found an ENDLOOP, but I'm not in a loop?","line 86 : Yo I found a STARTLOOP without a corresponding ENDLOOP."],3] + ], + [ + "You're talking about TAWETWAT but it's not defined anywhere", + ["\ntitle error message test\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\ntest = tawetwat\n=======\nSOUNDS\n=======\n\nCrate move 36772507\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\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 61 : You're talking about TAWETWAT but it's not defined anywhere."],1] + ], + [ + "broken legend syntax error", + ["title broken legend syntax error\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\nt\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 53 : Incorrect format of legend - should be one of \"A = B\", \"A = B or C [ or D ...]\", \"A = B and C [ and D ...]\"."],1] + ], + [ + "Cannot define an aggregate in terms of properties", + ["title Cannot define an aggregate in terms of properties\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n1 = crate or target\n2 = 1 and player\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 61 : Cannot define an aggregate (using 'and') in terms of properties (something that uses 'or').","Trying to define aggregate \"2\" in terms of property \"1\"."],2] + ], + [ + "Cannot define an property in terms of aggregates.", + ["title Cannot define an property in terms of aggregates\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n1 = crate and target\n2 = 1 or player\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 61 : Cannot define a property (something defined in terms of 'or') in terms of aggregates (something that uses 'and').","Trying to define property \"2\" in terms of aggregate \"1\"."],2] + ], + [ + "Cannot Duplicate Sections", + ["\ntitle Cannot Duplicate Sections\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 11 : cannot duplicate sections (you tried to duplicate \"OBJECTS\").","line 11 : section \"OBJECTS\" must be the first section"],2] + ], + [ + "OBJECTS must be the first section", + ["Died on test #1 at http://localhost:8000/src/tests/resources/tests.js:36:2: Error/Warning message testdata has wrong number of fields, invalid. Accidentally pasted in level recording data?\n\n\ntitle OBJECTS must be the first section\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nLEGEND\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 1 : Unrecognised stuff in the prelude.","line 8 : section \"LEGEND\" is out of order, must follow \"OBJECTS\" (or it could be that the section \"OBJECTS\"is just missing totally. You have to include all section headings, even if the section itself is empty).","line 11 : section \"OBJECTS\" must be the first section","line 55 : cannot duplicate sections (you tried to duplicate \"LEGEND\")."],4] + ], + [ + "WINCONDITIONS is out of order", + ["\n\ntitle WINCONDITIONS is out of order\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 77 : section \"WINCONDITIONS\" is out of order, must follow \"RULES\" (or it could be that the section \"RULES\"is just missing totally. You have to include all section headings, even if the section itself is empty)."],1] + ], + [ + "name B already in use", + ["\ntitle name B already in use\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground b\nlightgreen green\n11111\n01111\n11101\n11111\n10111\n\nb\nred\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 18 : Name \"B\" already in use.","line 18 : Object \"B\" has been defined, but not assigned to a layer."],2] + ], + [ + "Unknown junk in spritematrix", + ["\ntitle Unknown junk in spritematrix\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\n\nTarget\ndarkblue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nbrown darkbrown\n00010\n11111\n01000\n11A11\n00010\n\nPlayer\nblack orange white blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\norange\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 31 : Unknown junk in spritematrix for object WALL.","line 26 : Sprite graphics must be 5 wide and 5 high exactly."],1] + ], + [ + "In the legend, define new items using the equals symbol", + ["title In the legend, define new items using the equals symbol\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 53 : In the legend, define new items using the equals symbol - declarations must look like \"A = B\", \"A = B or C [ or D ...]\", \"A = B and C [ and D ...]\".","line 53 : Incorrect format of legend - should be one of \"A = B\", \"A = B or C [ or D ...]\", \"A = B and C [ and D ...]\", but it looks like you have a dangling \"ERROR\"?","line 90 : Key \".\" not found. Do you need to add it to the legend, or define a new object?","line 91 : Key \".\" not found. Do you need to add it to the legend, or define a new object?","line 92 : Key \".\" not found. Do you need to add it to the legend, or define a new object?","line 93 : Key \".\" not found. Do you need to add it to the legend, or define a new object?"],6] + ], + [ + "Something bad's happening in the LEGEND", + ["title Something bad's happening in the LEGEND\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate '\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 57 : Something bad's happening in the LEGEND"],1] + ], + [ + "Hey! You can't go mixing ANDs and ORs in a single legend entry.", + ["title Hey! You can't go mixing ANDs and ORs in a single legend entry.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target or Background\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 57 : Hey! You can't go mixing ANDs and ORs in a single legend entry."],1] + ], + [ + "Expected and 'AND' or an 'OR' here, but got POO instead.", + ["title Expected and 'AND' or an 'OR' here, but got POO instead.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate poo Target \nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n\n\n",["line 57 : Expected and 'AND' or an 'OR' here, but got POO instead. In the legend, define new items using the equals symbol - declarations must look like 'A = B' or 'A = B and C' or 'A = B or C'.","line 57 : This legend-entry is incorrectly-formatted - it should be one of A = B, A = B or C ( or D ...), A = B and C (and D ...)"],2] + ], + [ + "Was expecting a sound seed here", + ["title Was expecting a sound seed here\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nSfx0 123asdfa \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\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 64 : Was expecting a sound seed here (a number like 123123, like you generate by pressing the buttons above the console panel), but found something else."],1] + ], + [ + "Was expecting a sound event here", + ["title Was expecting a sound event here\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\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'\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\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 64 : Was expecting a sound event (like SFX3, or ENDLEVEL) or an object name, but didn't find either."],0] + ], + [ + "Was expecting a soundverb here", + ["title Was expecting a soundverb here\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate asdfasd 36772507\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\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 64 : Was expecting a soundverb here (MOVE, DESTROY, CANTMOVE, or the like), but found something else."],1] + ], + [ + "COLLISIONLAYERS - error detected - unexpected character ", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 70 : error detected - unexpected character '"],1] + ], + [ + "\"aggr\" is an aggregate (defined using \"and\"), and cannot be added to a single layer", + ["title \"aggr\" is an aggregate [defined using \"and\"], and cannot be added to a single layer\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\naggr = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\naggr\nPlayer, Wall\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 72 : \"aggr\" is an aggregate (defined using \"and\"), and cannot be added to a single layer because its constituent objects must be able to coexist.","line 57 : Object \"CRATE\" has been defined, but not assigned to a layer.","line 57 : Object \"TARGET\" has been defined, but not assigned to a layer.","line 58 : Object \"CRATE\" has been defined, but not assigned to a layer.","line 58 : Object \"TARGET\" has been defined, but not assigned to a layer.","line 17 : Object \"TARGET\" has been defined, but not assigned to a layer.","line 41 : Object \"CRATE\" has been defined, but not assigned to a layer."],7] + ], + [ + "Cannot add \"CAT\" to a collision layer; it has not been declared.", + ["title Cannot add \"CAT\" to a collision layer; it has not been declared.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground, cat\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\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 70 : Background must be in a layer by itself.","line 70 : Cannot add \"CAT\" to a collision layer; it has not been declared."],2] + ], + [ + "Background must be in a layer by itself.", + ["title Background must be in a layer by itself.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground, target\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\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 70 : Background must be in a layer by itself."],1] + ], + [ + "#2 Background must be in a layer by itself.", + ["title #2 Background must be in a layer by itself.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\n\ntarget, Background\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\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 71 : Background must be in a layer by itself."],1] + ], + [ + "no collision layers defined", + ["title No collision layers defined.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["No collision layers defined. All objects need to be in collision layers.","line 57 : Object \"CRATE\" has been defined, but not assigned to a layer.","line 57 : Object \"TARGET\" has been defined, but not assigned to a layer.","error, didn't find any object called player, either in the objects section, or the legends section. there must be a player!","you have to have a background layer"],5] + ], + [ + "Identifiers cannot appear outside of square brackets in rules", + ["title Identifiers cannot appear outside of square brackets in rules\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\nplayer [ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Objects cannot appear outside of square brackets in rules, only directions can.","line 78 : The start of a rule must consist of some number of directions (possibly 0), before the first bracket, specifying in what directions to look (with no direction specified, it applies in all four directions). It seems you've just entered \"PLAYER\"."],2] + ], + [ + "Name fasd, referred to in a rule, does not exist.", + ["title Name fasd, referred to in a rule, does not exist.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | fasd ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Name \"fasd\", referred to in a rule, does not exist.","line 78 : Error, malformed cell rule - was looking for cell contents, but found \"fasd\". What am I supposed to do with this, eh, please tell me that."],2] + ], + [ + "incorrect format of win condition", + ["title incorrect format of win condition\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target ' Crate \n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 84 : incorrect format of win condition."],1] + ], + [ + "Expecting the start of a win condition", + ["title Expecting the start of a win condition\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nfas\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 84 : Expecting the start of a win condition (\"ALL\",\"SOME\",\"NO\") but got \"FAS'.","line 84 : Unwelcome term \"84\" found in win condition. Win conditions objects have to be objects or properties (defined using \"or\", in terms of other properties)"],2] + ], + [ + "Expecting the word ON but got CRATE", + ["title Expecting the word ON but got CRATE\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 84 : Expecting the word \"ON\" but got \"CRATE\"."],1] + ], + [ + "Key A not found", + ["title Key A not found\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..(fa)\n#..###\n#@P..#\n#..*a#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 92 : Key \"A\" not found. Do you need to add it to the legend, or define a new object?","line 92 : Error, symbol \"a\", used in map, not found."],2] + ], + [ + "Metadata needs a value", + ["title Metadata needs a value\nauthor David Skinner\nhomepage \n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..(fa)\n#..###\n#@P..#\n#..*a#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 3 : MetaData \"homepage\" needs a value.","line 92 : Key \"A\" not found. Do you need to add it to the legend, or define a new object?","line 92 : Error, symbol \"a\", used in map, not found."],3] + ], + [ + "a sprite cannot have more than 10 colors", + ["title a sprite cannot have more than 10 colors\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN GREEN GREEN GREEN GREEN GREEN GREEN GREEN GREEN 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\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[ > 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\n",["line 10 : a sprite cannot have more than 10 colors. Why you would want more than 10 is beyond me."],1] + ], + [ + "Object GREEN has been defined, but not assigned to a layer", + ["title Object GREEN has been defined, but not assigned to a layer\nauthor David Skinner\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\n00000\n0...0\n0...0\n0...0\n00000\n\ngreen\nblue\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[ > 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\n",["line 50 : Object \"GREEN\" has been defined, but not assigned to a layer."],1] + ], + [ + "ALMOST BLANK test", + ["========\nOBJECTS\n========\n\n\n=======\nLEGEND\n=======\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\n======\nRULES\n======\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n",["No collision layers defined. All objects need to be in collision layers.","you have to define something to be the background","error, didn't find any object called player, either in the objects section, or the legends section. there must be a player!","No levels found. Add some levels!"],4] + ], + [ + "BLANK FILE", + ["\n",["No collision layers defined. All objects need to be in collision layers.","you have to define something to be the background","error, didn't find any object called player, either in the objects section, or the legends section. there must be a player!","No levels found. Add some levels!"],4] + ], + [ + "background cannot be an aggregate", + ["title background cannot be an aggregate\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground1\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\nBackground2\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\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\nbackground = Background1 and Background2\n. = Background1\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\nBackground1\nBackground2\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 63 : background cannot be an aggregate (declared with 'and'), it has to be a simple type, or property (declared in terms of others using 'or')."],1] + ], + [ + "Background objects must be on the same layer", + ["title Background objects must be on the same layer\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground1\nlightgreen green\n11111\n01111\n11101\n11111\n10111\n\nbackground2\nblue\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\nbackground = Background1 or background2\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\n\nTarget, background1\nbackground2\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\n#\n\n",["line 56 : Background objects must be on the same layer"],1] ], + [ + "Error, symbol A, used in map, not found", + ["title Error, symbol A, used in map, not found\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#Pa#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 100 : Key \"A\" not found. Do you need to add it to the legend, or define a new object?","line 100 : Error, symbol \"a\", used in map, not found."],2] + ], + [ + "Symbol is defined using OR, and therefore ambiguous - it cannot be used in a map. Did you mean to define it in terms of AND?", + ["title Symbol is defined using OR, and therefore ambiguous - it cannot be used in a map. Did you mean to define it in terms of AND?\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\na = Crate or Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#Pa#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 101 : Key \"A\" not found. Do you need to add it to the legend, or define a new object?","line 101 : Error, symbol \"a\" is defined using OR, and therefore ambiguous - it cannot be used in a map. Did you mean to define it in terms of AND?","Game title is too long to fit on screen, truncating to three lines."],3] + ], + [ + "Message too long to fit on screen", + ["title Message too long to fit on screen\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage ajfoi wjoiefj ioaw jeiofj aiowefj oiawj eiofj oiawej foiawej oif jawoiefj oiaw ejoifj aweiof joiawej fioa jwoeipfj oipawe jfoipawj eoipfj apoiwe jfpio ajweiopf joipawe jfopiaw jeoipfj aoipwej foipawj eoipf joiapwe jfpioaw epoif jaiowpe jfoipaw ejoipfj aoipwef jipoawe jpfoi jawiopef jioawj eiofaj wopiefj oiapwej fo eiofaj wopiefj oiapwej fo eiofaj wopiefj oiapwej fo eiofaj wopiefj oiapwej fo\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 90 : Message too long to fit on screen."],0] + ], + [ + "A rule has to have an arrow in it.", + ["title A rule has to have an arrow in it.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : A rule has to have an arrow in it. There's no arrow here! Consider reading up about rules - you're clearly doing something weird","line 78 : Error, when specifying a rule, the number of matches (square bracketed bits) on the left hand side of the arrow must equal the number on the right"],2] + ], + [ + "The + symbol, for joining a rule with the group of the previous rule, needs a previous rule to be applied to", + ["title The + symbol, for joining a rule with the group of the previous rule, needs a previous rule to be applied to.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : The \"+\" symbol, for joining a rule with the group of the previous rule, needs a previous rule to be applied to."],1] + ], + [ + "The + symbol, for joining a rule with the group of the previous rule, must be the first symbol on the line", + ["title The + symbol, for joining a rule with the group of the previous rule, must be the first symbol on the line\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ ] -> [ ]\nup + [ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 79 : The \"+\" symbol, for joining a rule with the group of the previous rule, must be the first symbol on the line","Game title is too long to fit on screen, truncating to three lines."],2] + ], + [ + "two +s appended to same rule", + ["title two +s appended to same rule\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ ] -> [ ]\n+ + [ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 79 : Two \"+\"s (the \"append to previous rule group\" symbol) applied to the same rule."],1] + ], + [ + "A rule-group can only be marked random by the opening rule in the group", + ["title A rule-group can only be marked random by the opening rule in the group\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ ] -> [ ]\n+ random [ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 79 : A rule-group can only be marked random by the opening rule in the group (aka, a '+' and 'random' can't appear as rule modifiers on the same line). Why? Well, you see \"random\" isn't a property of individual rules, but of whole rule groups. It indicates that a single possible application of some rule from the whole group should be applied at random."],1] + ], + [ + "You cannot use relative directions [^v<>] to indicate in which direction[s] a rule applies", + ["title You cannot use relative directions [^v<>] to indicate in which direction[s] a rule applies\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Name \"^\", referred to in a rule, does not exist.","line 78 : You cannot use relative directions (\"^v<>\") to indicate in which direction(s) a rule applies. Use absolute directions indicators (Up, Down, Left, Right, Horizontal, or Vertical, for instance), or, if you want the rule to apply in all four directions, do not specify directions"],2] + ], + [ + "The start of a rule must consist of some number of directions", + ["title The start of a rule must consist of some number of directions\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Name \"'\", referred to in a rule, does not exist.","line 78 : The start of a rule must consist of some number of directions (possibly 0), before the first bracket, specifying in what directions to look (with no direction specified, it applies in all four directions). It seems you've just entered \"'\"."],2] + ], + [ + "Error, malformed cell rule", + ["title Error, malformed cell rule \nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > [ Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Multiple opening brackets without closing brackets. Something fishy here. Every '[' has to be closed by a ']', and you can't nest them.","line 78 : Error, malformed cell rule - encountered a \"[\"\" before previous bracket was closed"],1] + ], + [ + "Invalid syntax. Directions should be placed at the start of a rule", + ["title Invalid syntax. Directions should be placed at the start of a rule\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] down -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Invalid syntax. Directions should be placed at the start of a rule."],0] + ], + [ + "Movements cannot appear in late rules.", + ["title Movements cannot appear in late rules.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\nlate [ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Movements cannot appear in late rules."],1] + ], + [ + "| should only be used inside cell rows", + ["title | should only be used inside cell rows\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] | -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Janky syntax. \"|\" should only be used inside cell rows (the square brackety bits)."],0] + ], + [ + "In a rule, if you specify a movement, it has to act on an object", + ["title In a rule, if you specify a movement, it has to act on an object.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ > | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : In a rule, if you specify a movement, it has to act on an object.","line 78 : In a rule, each pattern to match on the left must have a corresponding pattern on the right of equal length (number of cells)."],2] + ], + [ + "#2: In a rule, if you specify a movement, it has to act on an object", + ["title #2 In a rule, if you specify a movement, it has to act on an object.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : In a rule, if you specify a movement, it has to act on an object.","line 78 : Error, malformed cell rule - encountered a \"[\"\" before previous bracket was closed","line 78 : In a rule, each pattern to match on the left must have a corresponding pattern on the right of equal length (number of cells)."],3] + ], + [ + "Multiple closing brackets without corresponding opening brackets", + ["title Multiple closing brackets without corresponding opening brackets.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Multiple closing brackets without corresponding opening brackets. Something fishy here. Every '[' has to be closed by a ']', and you can't nest them.","line 78 : Error, when specifying a rule, the number of matches (square bracketed bits) on the left hand side of the arrow must equal the number on the right"],1] + ], + [ + "There's no point in putting an ellipsis at the very start or the end of a rule", + ["title There's no point in putting an ellipsis at the very start or the end of a rule\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ | ... ] -> [ | ]\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : There's no point in putting an ellipsis at the very start or the end of a rule"],1] + ], + [ + "An ellipsis on the right must be matched by one in the corresponding place on the left.", + ["title An ellipsis on the right must be matched by one in the corresponding place on the left.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ | ... ] -> [ ... | ]\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : An ellipsis on the right must be matched by one in the corresponding place on the left.","line 78 : There's no point in putting an ellipsis at the very start or the end of a rule"],2] + ], + [ + "You can't have anything in with an ellipsis. Sorry.", + ["title You can't have anything in with an ellipsis. Sorry.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ... ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : You can't have anything in with an ellipsis. Sorry."],1] + ], + [ + "RANDOM cannot be matched on the left-hand side", + ["title RANDOM cannot be matched on the left-hand side\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ random Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : RANDOM cannot be matched on the left-hand side, it can only appear on the right"],1] + ], + [ + "An ellipsis on the right must be matched by one in the corresponding place on the left.", + ["title An ellipsis on the right must be matched by one in the corresponding place on the left.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ ... | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : An ellipsis on the right must be matched by one in the corresponding place on the left."],1] + ], + [ + "123123 You can't have anything in with an ellipsis. Sorry.", + ["title 123123 You can't have anything in with an ellipsis. Sorry.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ crate ... | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : You can't have anything in with an ellipsis. Sorry."],1] + ], + [ + "This rule may try to spawn a WALL with random, but also requires a CRATE be here, which is on the same layer - they shouldn't be able to coexist!", + ["title This rule may try to spawn a WALL with random, but also requires a CRATE be here, which is on the same layer - they shouldn't be able to coexist!\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\nrange = crate or wall\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate random range ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 79 : This rule may try to spawn a WALL with random, but also requires a CRATE be here, which is on the same layer - they shouldn't be able to coexist!","Game title is too long to fit on screen, truncating to three lines."],1] + ], + [ + "WALL and CRATE can never overlap, but this rule requires that to happen, so it's being culled.", + ["title WALL and CRATE can never overlap, but this rule requires that to happen, so it's being culled.\nauthor David Skinner\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\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[ > Player | Crate target wall ] -> [ > 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\n",["line 81 : WALL and CRATE can never overlap, but this rule requires that to happen, so it's being culled."],1] + ], + [ + "You can't use two ellipses in a single cell match pattern.", + ["title You can't use two ellipses in a single cell match pattern.\nauthor David Skinner\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\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[ > Player | ... | crate | ... | Crate ] ->[ > Player | ... | > crate | ... | > 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\n",["line 81 : You can't use two ellipses in a single cell match pattern. If you really want to, please implement it yourself and send me a patch :)"],1] + ], + [ + "There can't be more than 30 rigid groups", + ["title There can't be more than 30 rigid groups\nauthor David Skinner\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\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\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > 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\n",["line 141 : There can't be more than 30 rigid groups (rule groups containing rigid members)."],1] + ], + [ + "error, didn't find any object called player", + ["title error, didn't find any object called player\nauthor David Skinner\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\nPlayer1\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player1\n* = Crate\n@ = Crate and Target\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer1, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player1 | Crate ] -> [ > Player1 | > 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\n",["error, didn't find any object called player, either in the objects section, or the legends section. there must be a player!"],1] + ], + [ + "I wasn't expecting anything after the sound declaration", + ["title I wasn't expecting anything after the sound declaration\nauthor David Skinner\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\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 asdasd\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 67 : I wasn't expecting anything after the sound declaration 36772507 on this line, so I don't know what to do with \"ASDASD\" here."],1] + ], + [ + "invalid text_color / background_color", + ["title invalid text_color / background_color\nauthor David Skinner\nhomepage www.puzzlescript.net\ntext_color 21r3r23r2\nbackground_color 21r3r23r2\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\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[ > 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\n",["text_color in incorrect format - found 21r3r23r2, but I expect a color name (like 'pink') or hex-formatted color (like '#1412FA'). Defaulting to white.","background_color in incorrect format - found 21r3r23r2, but I expect a color name (like 'pink') or hex-formatted color (like '#1412FA'). Defaulting to black."],2] + ], + [ + "Game title is too long to fit on screen, truncating to five lines.", + ["title Game title is too long to fit on screen, truncating to five lines.Simple Block Pushing Game Simple Block Pushing Game Simple Block Pushing Game Simple Block Pushing Game Simple Block Pushing Game Simple Block Pushing Game Simple Block Pushing Game\n\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["Game title is too long to fit on screen, truncating to five lines."],1] + ], + [ + "Author list too long to fit on screen", + ["title Author list too long to fit on screen\nauthor David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["Author list too long to fit on screen, truncating to three lines."],1] + ], ]; \ No newline at end of file diff --git a/src/tests/resources/testdata.js b/src/tests/resources/testdata.js index 64ae9b093..c78a5c276 100644 --- a/src/tests/resources/testdata.js +++ b/src/tests/resources/testdata.js @@ -1556,5 +1556,13 @@ var testdata = [ "Many parallel players, unlimited rigidbodies", ["title Many parallel players, unlimited rigidbodies\nauthor increpare\nhomepage www.increpare.com\n\nverbose_logging\n\n(\n\nThis is a sample of \n\n- Unlimited rigid bodies\n- 1 Player (should be extendable)\n\nIt's made as an example for the extended rigid body tutorial here:\n\nhttps://www.puzzlescript.net/Documentation/rigidbodies.html\n\n)\n\n========\nOBJECTS\n========\n\nBackground\ngreen\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 Crate\nYellow orange\n00000\n01110\n01110\n01110\n00000\n\n\n(The directional overlays bellow establish connections between crates)\n\n Crate_U\norange\n.000.\n.....\n.....\n.....\n.....\n\n Crate_D\norange\n.....\n.....\n.....\n.....\n.000.\n\n Crate_L\norange\n.....\n0....\n0....\n0....\n.....\n\n Crate_R\norange\n.....\n....0\n....0\n....0\n.....\n\nBLOCKED\nred\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n\nw = Crate and Crate_U\nx = Crate and Crate_D\na = Crate and Crate_L\nd = Crate and Crate_R\n\ne = Crate and Crate_U and Crate_L\nz = Crate and Crate_D and Crate_L\nq = Crate and Crate_U and Crate_R\nc = Crate and Crate_D and Crate_R\n\nr = Crate and Crate_L and Crate_R\nt = Crate and Crate_D and Crate_U\n\n1 = Crate and Crate_D and Crate_L and Crate_R\n2 = Crate and Crate_U and Crate_L and Crate_R\n3 = Crate and Crate_U and Crate_D and Crate_L\n4 = Crate and Crate_U and Crate_D and Crate_R\n\n0 = Crate and Crate_U and Crate_D and Crate_L and Crate_R\n\n5 = Crate\n\n Crate_Connection = Crate_U or Crate_D or Crate_L or Crate_R\n\nPusher = Player or Crate\nPushable = Crate \nSolid = Crate or Player\n\n=======\nSOUNDS\n=======\n\n Crate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\n Crate_U\n Crate_D\n Crate_L\n Crate_R\nBLOCKED\n\n======\nRULES\n======\n\n(For making maps easily: uncomment out the next few lines + press action to discard all boundaries and recreate them)\n\n( [ action player ] [ Crate_connection ] -> [ action player ] [ ] )\n( up [ action player ] [ Crate | Crate ] -> [ action player ] [ Crate Crate_u | Crate Crate_d ] )\n( right [ action player ] [ Crate | Crate ] -> [ action player ] [ Crate Crate_r | Crate Crate_l ] )\n\n\nstartloop\n\n(I'm using ACTION to mark 'BLOCKED's as old to allow the loop to exit once no new BLOCKEDs have been added)\n[ stationary BLOCKED ] -> [ action BLOCKED ]\n\n[ > Pusher | no BLOCKED Pushable ] -> [ > Pusher | > Pushable ]\n+ up [ moving Crate Crate_U | no BLOCKED Crate ] -> [ moving Crate Crate_U | moving Crate ]\n+ down [ moving Crate Crate_D | no BLOCKED Crate ] -> [ moving Crate Crate_D | moving Crate ]\n+ left [ moving Crate Crate_L | no BLOCKED Crate ] -> [ moving Crate Crate_L | moving Crate ]\n+ right [ moving Crate Crate_R | no BLOCKED Crate ] -> [ moving Crate Crate_R | moving Crate ]\n\n\n(If a crate can't move, we have to back-propagate the can't-move-ness, including possibly through players)\n[ > Solid | wall ] -> [ > Solid BLOCKED | wall ]\n\n[ no BLOCKED > Solid | BLOCKED Solid ] -> [ BLOCKED > Solid | BLOCKED Solid ]\n+ up [ BLOCKED Crate Crate_U | no BLOCKED Crate ] -> [ BLOCKED Crate Crate_U | BLOCKED Crate ]\n+ down [ BLOCKED Crate Crate_D | no BLOCKED Crate ] -> [ BLOCKED Crate Crate_D | BLOCKED Crate ]\n+ left [ BLOCKED Crate Crate_L | no BLOCKED Crate ] -> [ BLOCKED Crate Crate_L | BLOCKED Crate ]\n+ right [ BLOCKED Crate Crate_R | no BLOCKED Crate ] -> [ BLOCKED Crate Crate_R | BLOCKED Crate ]\n\n\n(Then we remove all movements from BLOCKED crates, along with the BLOCKED marker itself)\n[ BLOCKED moving Solid ] -> [ BLOCKED stationary Solid ]\n\n[ stationary BLOCKED ] [ moving crate ] -> [ stationary BLOCKED ] [ stationary crate ]\nendloop\n\n[ BLOCKED ] -> [ ]\n\n(To wrap it all up, move connections along with the crates themselves)\n[ moving Crate stationary Crate_connection ] -> [ moving Crate moving Crate_connection ]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n###############\n#..ca.........#\n#.ce....ca....#\n#.t...d1e.....#\n#.w....w......#\n#....d1ap5.dz.#\n#....pw...5.w5#\n#......dz.....#\n#.......t..dz.#\n#..x..cre...w.#\n#..w..w...5...#\n#.............#\n###############\n\n###############\n#..ca.........#\n#.ce....ca....#\n#.t...d1e.....#\n#.w....w......#\n#....d1ap5.dz.#\n#....pw...5.w5#\n#......dz.....#\n#.......t..dz.#\n#..x..cre...w.#\n#..w..w...5...#\n#.............#\n###############\n\n",[3,3,3,0,3,3,2,2,2,1,2,2,3,3,3,3,3,2,2,2,1,1,2,2,3,3,3,0,0,0,1,0,0,0,0,1,1,2,1,0,0,0,1,1,1,1,0,3,1,1,1,3,3,3,1,0,1,1,1],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,\nbackground crate crate_d crate_r:2,background crate crate_d crate_u:3,background crate crate_u:4,1,1,1,1,1,1,1,0,0,2,background crate crate_l crate_u:5,1,\n1,1,1,1,1,1,1,1,0,0,background crate crate_l:6,background player:7,1,1,1,\n1,1,1,background crate crate_d:8,4,1,0,0,1,background crate crate_r:9,1,1,1,1,1,\n1,1,1,1,0,0,1,background crate crate_d crate_l crate_r:10,4,1,1,1,1,1,1,\n1,1,0,0,2,5,7,1,1,1,1,1,1,2,4,\n0,0,6,1,1,1,1,1,1,9,1,background crate crate_l crate_r:11,1,0,0,\n1,1,1,9,1,1,1,background crate crate_d crate_l:12,3,5,1,0,0,1,1,\n1,10,4,1,1,1,1,1,1,0,0,1,1,1,6,\nbackground crate:13,13,1,1,1,1,13,0,0,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,9,1,1,1,\n1,9,1,0,0,1,1,1,13,12,4,1,1,1,12,\n4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",0,"1646703814545.0725"] ], + [ + "Restart command on level start", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nverbose_logging\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 player ] -> restart\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[2,1,0],"background wall:0,0,0,0,0,0,\n0,0,background:1,background crate:2,background player target:3,1,\n1,0,0,background target:4,1,1,\n1,1,0,0,0,0,\n1,2,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1646748136288.8362"] + ], + [ + "startloop stoploop vortex check", + ["title startloop stoploop vortex check\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\nstartloop\n[ > Player | Crate ] -> [ > Player | > Crate ] \n[ > Player | > Crate ] -> [ > Player | Crate ] \nendloop\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[0,1,2,3,2,2,3,1,1,2,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,background player:4,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1646748363863.9624"] + ], ]; From d1cf51b424f61d6bb5aff875027df22d35a069ab Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Tue, 8 Mar 2022 15:14:36 +0100 Subject: [PATCH 061/122] Update tests.js imrpove test fail output for unit tests --- src/tests/resources/tests.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/resources/tests.js b/src/tests/resources/tests.js index 7c4e5ac4b..bf3873a4f 100644 --- a/src/tests/resources/tests.js +++ b/src/tests/resources/tests.js @@ -41,7 +41,7 @@ for (var i=0;i Date: Tue, 8 Mar 2022 15:16:42 +0100 Subject: [PATCH 062/122] tweaking documentation --- src/Documentation/executionorder.html | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Documentation/executionorder.html b/src/Documentation/executionorder.html index 14616c36e..c9fa15bfa 100644 --- a/src/Documentation/executionorder.html +++ b/src/Documentation/executionorder.html @@ -76,35 +76,35 @@

    Zoom level 1

    Zoom Level 2

    - Let's look at section 2. What does it mean? + Let's look at step 2. What does it mean?

    Say we have the following:

    [ > Crate | Crate ] -> [ > Crate | > Crate ]
     [ > Player | Crate ] -> [ > Player | > Crate ]

    - The player won't be able to push several crates in a row with this, because the first rule gets applied first, and then the second rule. So order does matter - these aren't abstract replacement rules floating around in a vacuum. + The player won't be able to push several crates in a row with this, because the first rule gets applied first, and then the second rule after that. So order does matter - these aren't abstract replacement rules floating around in a vacuum.

    Zoom Level 3

    - Each rule gets applied in turn as often as it can be before the interpreter moves on to the next one. It sounds quite simple, doesn't it, but there's one point of ambiguity. The compiler compiles each rule you write down into several smaller rules (You can see the output by using the debug switch in the Prelude). + Each rule gets applied in turn as often as it can be before the interpreter moves on to the next one. It sounds quite simple, doesn't it, but there's one point of ambiguity. The compiler often compiles single rules you write down into several simpler rules (You can see the output by using the DEBUG switch in the Prelude).

    For instance

    [ > Player | Crate ] -> [ > Player | > Crate ]

    is compiled into these four instructions: -

    Rule Assembly : (4 rules )
    +    
    Rule Assembly : (4 rules)
     ===========
    -(52) UP [ up player | crate ] -> [ up player | up crate ] 
    -(52) DOWN [ down player | crate ] -> [ down player | down crate ] 
    -(52) LEFT [ left player | crate ] -> [ left player | left crate ] 
    -(52) RIGHT [ right player | crate ] -> [ right player | right crate ] 
    +  (81) DOWN [ crate | up player ] -> [ up crate | up player ]
    ++ (81) DOWN [ down player | crate ] -> [ down player | down crate ]
    ++ (81) RIGHT [ crate | left player ] -> [ left crate | left player ]
    ++ (81) RIGHT [ right player | crate ] -> [ right player | right crate ]
     ===========

    - So the question is: When I say that each rule is executed in turn to exhaustion, do I mean the few rules you write, or the many rules the interpreter ends up with? + So the question is: When I say that each rule is executed in turn to exhaustion, do I mean the few rules you write, or the many rules the interpreter ends up with?

    - The answer is "the former". The compiler generates lots of rules, but packs them together into rule groups. The interpreter then, instead of applying one rule as much as it can before moving to the next, loops through each rule group as often as it can, before moving to the next. + The answer is "the former". The compiler generates lots of rules, but packs them together into rule groups. The interpreter then, instead of applying one rule as much as it can before moving to the next, loops through each rule group as often as it can (still for each individual rule running it as often as it can), before moving to the next.

    You might wonder if you can construct rule groups yourself. The answer is yes, with use of the modest + symbol..

    @@ -113,7 +113,7 @@

    Zoom Level 3

    That assigns both rules (or rather, the rules that are generated from them) to the same rule group.

    - This technique is used in the rigid bodies section (warning: it's a bit of an arcane subject). + This technique is used in the extended rigid bodies section (warning: it's a bit of an arcane subject).

    From 9da9689df0f302cabaee66c78a8f52fd8770ae56 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Tue, 8 Mar 2022 15:27:52 +0100 Subject: [PATCH 063/122] fixes #881 --- src/js/compiler.js | 2 ++ src/tests/resources/errormessage_testdata.js | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/src/js/compiler.js b/src/js/compiler.js index 06a35b9e4..97fa2471d 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -1724,6 +1724,8 @@ function rulesToMask(state) { if (state.propertiesDict.hasOwnProperty(object_name)) { values = state.propertiesDict[object_name]; } else { + //get line number declaration of object_name + logWarning(`In this rule you're asking me to spawn a random ${object_name.toUpperCase()} for you, but that's already a concrete single object. You wanna be using random with properties (things defined in terms of OR in the legend) so there's some things to select between.`, rule.lineNumber); values = [object_name]; } for (var m = 0; m < values.length; m++) { diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index 185811b3d..7fe290fb6 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -807,4 +807,12 @@ var errormessage_testdata = [ "Author list too long to fit on screen", ["title Author list too long to fit on screen\nauthor David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["Author list too long to fit on screen, truncating to three lines."],1] ], + [ + "In this rule you're asking me to spawn a random CRATE for you, but that's already a concrete single object.", + ["title In this rule you're asking me to spawn a random CRATE for you, but that's already a concrete single object.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | random Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : In this rule you're asking me to spawn a random CRATE for you, but that's already a concrete single object. You wanna be using random with properties (things defined in terms of OR in the legend) so there's some things to select between.","Game title is too long to fit on screen, truncating to three lines."],1] + ], + [ + "putting random before an aggregate has something funny, lol", + ["title putting random before an aggregate has something funny, lol\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\naggr = crate and target\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 | random aggr ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 82 : In this rule you're asking me to spawn a random CRATE for you, but that's already a concrete single object. You wanna be using random with properties (things defined in terms of OR in the legend) so there's some things to select between.","line 82 : In this rule you're asking me to spawn a random TARGET for you, but that's already a concrete single object. You wanna be using random with properties (things defined in terms of OR in the legend) so there's some things to select between."],0] + ], ]; \ No newline at end of file From 6705613461a1878fb968429aedde0cc3d192eac3 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Tue, 8 Mar 2022 15:36:36 +0100 Subject: [PATCH 064/122] fixes #878 --- src/js/parser.js | 11 ++++++++++- src/tests/resources/errormessage_testdata.js | 8 ++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/js/parser.js b/src/js/parser.js index eb789b222..ae10deb4a 100644 --- a/src/js/parser.js +++ b/src/js/parser.js @@ -1517,7 +1517,7 @@ var codeMirrorFn = function() { var m2 = stream.match(reg_notcommentstart, false); - if(m2!=null) { + if(m2!==null) { state.metadata.push(token); state.metadata.push(m2[0].trim()); } else { @@ -1529,6 +1529,15 @@ var codeMirrorFn = function() { state.metadata.push(token); state.metadata.push("true"); state.tokenIndex=-1; + + + var m2 = stream.match(reg_notcommentstart, false); + + if(m2!==null) { + var extra = m2[0].trim(); + logWarning('MetaData '+token.toUpperCase()+' doesn\'t take any parameters, but you went and gave it "'+extra+'".',state.lineNumber); + } + return 'METADATA'; } else { logError('Unrecognised stuff in the prelude.', state.lineNumber); diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index 7fe290fb6..380a818f1 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -815,4 +815,12 @@ var errormessage_testdata = [ "putting random before an aggregate has something funny, lol", ["title putting random before an aggregate has something funny, lol\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\naggr = crate and target\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 | random aggr ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 82 : In this rule you're asking me to spawn a random CRATE for you, but that's already a concrete single object. You wanna be using random with properties (things defined in terms of OR in the legend) so there's some things to select between.","line 82 : In this rule you're asking me to spawn a random TARGET for you, but that's already a concrete single object. You wanna be using random with properties (things defined in terms of OR in the legend) so there's some things to select between."],0] ], + [ + "MetaData DEBUG doesn't take any parameters, but you went and gave it", + ["title MetaData DEBUG doesn't take any parameters, but you went and gave it \ndebug baff\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 2 : MetaData DEBUG doesn't take any parameters, but you went and gave it \"baff\"."],0] + ], + [ + "metadata parameter errors Part 2", + ["title metadata parameter errors Part 2\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug asd\nnoaction asdf\nnorepeat_action asdf\nnoundo 4324\nnorestart nsfgn\nrequire_player_movement 123\nrun_rules_on_level_start 123\nscanline 4234\nthrottle_movement 434\nverbose_logging 232\n\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 5 : MetaData DEBUG doesn't take any parameters, but you went and gave it \"asd\".","line 6 : MetaData NOACTION doesn't take any parameters, but you went and gave it \"asdf\".","line 7 : MetaData NOREPEAT_ACTION doesn't take any parameters, but you went and gave it \"asdf\".","line 8 : MetaData NOUNDO doesn't take any parameters, but you went and gave it \"4324\".","line 9 : MetaData NORESTART doesn't take any parameters, but you went and gave it \"nsfgn\".","line 10 : MetaData REQUIRE_PLAYER_MOVEMENT doesn't take any parameters, but you went and gave it \"123\".","line 11 : MetaData RUN_RULES_ON_LEVEL_START doesn't take any parameters, but you went and gave it \"123\".","line 12 : MetaData SCANLINE doesn't take any parameters, but you went and gave it \"4234\".","line 13 : MetaData THROTTLE_MOVEMENT doesn't take any parameters, but you went and gave it \"434\".","line 14 : MetaData VERBOSE_LOGGING doesn't take any parameters, but you went and gave it \"232\"."],0] + ], ]; \ No newline at end of file From 14e933a28007d65c4566905373c5007ec51ecb7d Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Tue, 8 Mar 2022 15:49:08 +0100 Subject: [PATCH 065/122] fixes #877, fixes #882 --- src/js/compiler.js | 4 ++++ src/js/parser.js | 3 +++ src/tests/resources/errormessage_testdata.js | 8 ++++++++ 3 files changed, 15 insertions(+) diff --git a/src/js/compiler.js b/src/js/compiler.js index 97fa2471d..e8c6c28ea 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -813,6 +813,10 @@ function processRuleString(rule, state, curRules) { } } + if (late && rigid){ + logError("Late rules cannot be marked as rigid (rigid rules are all about dealing with the consequences of unresolvable movements, and late rules can't even have movements).", lineNumber); + } + if (lhs_cells.length != rhs_cells.length) { if (commands.length > 0 && rhs_cells.length == 0) { //ok diff --git a/src/js/parser.js b/src/js/parser.js index ae10deb4a..b6774fe74 100644 --- a/src/js/parser.js +++ b/src/js/parser.js @@ -1419,6 +1419,9 @@ var codeMirrorFn = function() { } else { return 'NAME'; } + } else { + logError("Error in win condition: I don't know what to do with "+candword.toUpperCase()+".", state.lineNumber); + return 'ERROR'; } } break; diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index 380a818f1..4f0ec26e0 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -823,4 +823,12 @@ var errormessage_testdata = [ "metadata parameter errors Part 2", ["title metadata parameter errors Part 2\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug asd\nnoaction asdf\nnorepeat_action asdf\nnoundo 4324\nnorestart nsfgn\nrequire_player_movement 123\nrun_rules_on_level_start 123\nscanline 4234\nthrottle_movement 434\nverbose_logging 232\n\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 5 : MetaData DEBUG doesn't take any parameters, but you went and gave it \"asd\".","line 6 : MetaData NOACTION doesn't take any parameters, but you went and gave it \"asdf\".","line 7 : MetaData NOREPEAT_ACTION doesn't take any parameters, but you went and gave it \"asdf\".","line 8 : MetaData NOUNDO doesn't take any parameters, but you went and gave it \"4324\".","line 9 : MetaData NORESTART doesn't take any parameters, but you went and gave it \"nsfgn\".","line 10 : MetaData REQUIRE_PLAYER_MOVEMENT doesn't take any parameters, but you went and gave it \"123\".","line 11 : MetaData RUN_RULES_ON_LEVEL_START doesn't take any parameters, but you went and gave it \"123\".","line 12 : MetaData SCANLINE doesn't take any parameters, but you went and gave it \"4234\".","line 13 : MetaData THROTTLE_MOVEMENT doesn't take any parameters, but you went and gave it \"434\".","line 14 : MetaData VERBOSE_LOGGING doesn't take any parameters, but you went and gave it \"232\"."],0] ], + [ + "Error in win condition", + ["title Error in win condition\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 84 : Error in win condition: I don't know what to do with CRATE."],1] + ], + [ + "late+rigid rules", + ["title late+rigid rules\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\nlate rigid [ Player | Crate ] -> [ Player | ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Late rules cannot be marked as rigid (rigid rules are all about dealing with the consequences of unresolvable movements, and late rules can't even have movements)."],1] + ], ]; \ No newline at end of file From 8bcb966e548cc1938ea3ce402adc2a6413694401 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 9 Mar 2022 00:49:25 +0100 Subject: [PATCH 066/122] accepting final bit of #846 and unthreading a loop because it was giving me an out of memory error for some reason --- compile.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/compile.js b/compile.js index c31ea70c9..39f92f12c 100644 --- a/compile.js +++ b/compile.js @@ -300,8 +300,11 @@ ncp("./src", "./bin/", function (err) { files = files.concat(glob.sync("./bin/**/*.css")); files = files.concat(glob.sync("./bin/**/*.txt")); - var compressionTasks = files.map(fn => new Compress(fn)); - var compressed = await Promise.all(compressionTasks.map(gzip => gzip.run())); + for (var i=0;i Date: Wed, 9 Mar 2022 01:33:11 +0100 Subject: [PATCH 067/122] fixes #885, fixes #886 --- src/js/compiler.js | 29 ++++++++++++++++---- src/js/parser.js | 14 ++++++++-- src/tests/resources/errormessage_testdata.js | 12 ++++++++ 3 files changed, 46 insertions(+), 9 deletions(-) diff --git a/src/js/compiler.js b/src/js/compiler.js index e8c6c28ea..38ef62cc5 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -2185,17 +2185,34 @@ function twiddleMetaData(state) { newmetadata[key] = val; } + var getCoords = function(str,lineNumber){ + var coords = val.split('x'); + if (coords.length!==2){ + logWarning("Dimensions must be of the form AxB.",lineNumber); + return null; + } else { + var intcoords = [parseInt(coords[0],10), parseInt(coords[1],10)]; + if (!isFinite(coords[0]) || !isFinite(coords[1]) || isNaN(intcoords[0]) || isNaN(intcoords[1])) { + logWarning(`Couldn't understand the dimensions given to me (you gave "${val}") - should be of the form AxB.`,lineNumber); + return null + } else { + return intcoords; + } + } + } if (newmetadata.flickscreen !== undefined) { var val = newmetadata.flickscreen; - var coords = val.split('x'); - var intcoords = [parseInt(coords[0]), parseInt(coords[1])]; - newmetadata.flickscreen = intcoords; + newmetadata.flickscreen = getCoords(val,state.metadata_lines.flickscreen); + if (newmetadata.flickscreen===null){ + delete newmetadata.flickscreen; + } } if (newmetadata.zoomscreen !== undefined) { var val = newmetadata.zoomscreen; - var coords = val.split('x'); - var intcoords = [parseInt(coords[0]), parseInt(coords[1])]; - newmetadata.zoomscreen = intcoords; + newmetadata.zoomscreen = getCoords(val,state.metadata_lines.zoomscreen); + if (newmetadata.zoomscreen===null){ + delete newmetadata.zoomscreen; + } } state.metadata = newmetadata; diff --git a/src/js/parser.js b/src/js/parser.js index b6774fe74..d2294b202 100644 --- a/src/js/parser.js +++ b/src/js/parser.js @@ -570,6 +570,7 @@ var codeMirrorFn = function() { abbrevNames: state.abbrevNames.concat([]), metadata : state.metadata.concat([]), + metadata_lines: Object.assign({}, state.metadata_lines), levels: levelsCopy, @@ -1522,7 +1523,12 @@ var codeMirrorFn = function() { if(m2!==null) { state.metadata.push(token); - state.metadata.push(m2[0].trim()); + state.metadata.push(m2[0].trim()); + if (token in state.metadata_lines){ + var otherline = state.metadata_lines[token]; + logWarning(`You've already defined a ${token.toUpperCase()} in the prelude on line [ Player | ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Late rules cannot be marked as rigid (rigid rules are all about dealing with the consequences of unresolvable movements, and late rules can't even have movements)."],1] ], + [ + "Duplicate prelude declarations", + ["title Duplicate prelude declarations\nauthor David Skinner\nhomepage www.puzzlescript.net\nhomepage www.puzzlescript.net\ndebug\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 4 : You've already defined a HOMEPAGE in the prelude on line"],0] + ], + [ + "flickscreen/zoomscreen formatting error #1", + ["title flickscreen/zoomscreen formatting error #1\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nzoomscreen 2ax10\nflickscreen 2ax10\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 6 : Couldn't understand the dimensions given to me (you gave \"2ax10\") - should be of the form AxB.","line 5 : Couldn't understand the dimensions given to me (you gave \"2ax10\") - should be of the form AxB."],0] + ], + [ + "flickscreen/zoomscreen formatting error #2", + ["title flickscreen/zoomscreen formatting error #2\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nzoomscreen 123\nflickscreen 123\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 6 : Dimensions must be of the form AxB.","line 5 : Dimensions must be of the form AxB."],0] + ], ]; \ No newline at end of file From dc72b0744aec38ff8a47a8ec86b94ef6e064586e Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 9 Mar 2022 01:37:58 +0100 Subject: [PATCH 068/122] fixes #883 --- src/js/compiler.js | 4 ++-- src/tests/resources/errormessage_testdata.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/js/compiler.js b/src/js/compiler.js index 38ef62cc5..c02e6f9dd 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -2684,11 +2684,11 @@ function formatHomePage(state) { } if (isColor(state.fgcolor) === false) { - logError("text_color in incorrect format - found " + state.fgcolor + ", but I expect a color name (like 'pink') or hex-formatted color (like '#1412FA'). Defaulting to white.") + logError("text_color in incorrect format - found " + state.fgcolor + ", but I expect a color name (like 'pink') or hex-formatted color (like '#1412FA'). Defaulting to white.",state.metadata_lines.text_color) state.fgcolor = "#FFFFFF"; } if (isColor(state.bgcolor) === false) { - logError("background_color in incorrect format - found " + state.bgcolor + ", but I expect a color name (like 'pink') or hex-formatted color (like '#1412FA'). Defaulting to black.") + logError("background_color in incorrect format - found " + state.bgcolor + ", but I expect a color name (like 'pink') or hex-formatted color (like '#1412FA'). Defaulting to black.",state.metadata_lines.background_color) state.bgcolor = "#000000"; } diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index 31b59b898..5cba7142a 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -797,7 +797,7 @@ var errormessage_testdata = [ ], [ "invalid text_color / background_color", - ["title invalid text_color / background_color\nauthor David Skinner\nhomepage www.puzzlescript.net\ntext_color 21r3r23r2\nbackground_color 21r3r23r2\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\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[ > 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\n",["text_color in incorrect format - found 21r3r23r2, but I expect a color name (like 'pink') or hex-formatted color (like '#1412FA'). Defaulting to white.","background_color in incorrect format - found 21r3r23r2, but I expect a color name (like 'pink') or hex-formatted color (like '#1412FA'). Defaulting to black."],2] + ["title invalid text_color / background_color\nauthor David Skinner\nhomepage www.puzzlescript.net\ntext_color 21r3r23r2\nbackground_color 21r3r23r2\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\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[ > 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\n",["line 4 : text_color in incorrect format - found 21r3r23r2, but I expect a color name (like 'pink') or hex-formatted color (like '#1412FA'). Defaulting to white.","line 5 : background_color in incorrect format - found 21r3r23r2, but I expect a color name (like 'pink') or hex-formatted color (like '#1412FA'). Defaulting to black."],2] ], [ "Game title is too long to fit on screen, truncating to five lines.", From 35dd67731f1268126c9fcb693d4468147743b2d7 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 9 Mar 2022 01:48:47 +0100 Subject: [PATCH 069/122] fixes #879 --- src/js/engine.js | 6 +++--- src/tests/resources/errormessage_testdata.js | 14 +++++++------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/js/engine.js b/src/js/engine.js index c83c94262..ea2f162f4 100644 --- a/src/js/engine.js +++ b/src/js/engine.js @@ -218,12 +218,12 @@ function generateTitleScreen() if (state.metadata.author!==undefined){ if ( titlelines.length>3){ titlelines.splice(3); - logWarning("Game title is too long to fit on screen, truncating to three lines.",undefined,true); + logWarning("Game title is too long to fit on screen, truncating to three lines.",state.metadata_lines.title,true); } } else { if ( titlelines.length>5){ titlelines.splice(5); - logWarning("Game title is too long to fit on screen, truncating to five lines.",undefined,true); + logWarning("Game title is too long to fit on screen, truncating to five lines.",state.metadata_lines.title,true); } } @@ -243,7 +243,7 @@ function generateTitleScreen() } if (attributionsplit.length>3){ attributionsplit.splice(3); - logWarning("Author list too long to fit on screen, truncating to three lines.",undefined,true); + logWarning("Author list too long to fit on screen, truncating to three lines.",state.metadata_lines.author,true); } for (var i=0;i [ altplayer Teleport ] sfx1\n\nlate [ altplayer Teleport ] [ Teleport no altplayer ] -> [altplayer teleport] [Teleport player ]\nlate [altplayer ] -> []\n\nlate [ player bordertile ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nsome player\nall player on target\nall target on player\n\n=======\nLEVELS\n=======\n\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#..P....t....#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#..P.o..O..t.#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\n##############\n#............#\n#............#\n#............#\n#............#\n#.......O.t..#\n#............#\n#..P....O....#\n#............#\n#.......O.t..#\n#............#\n#............#\n#............#\n##############\n\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#..P...O...t.#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\n\n##############\n#............#\n#............#\n#.......O.t..#\n#............#\n#.......O.t..#\n#............#\n#..P....O.t..#\n#............#\n#.......O.t..#\n#............#\n#.......O....#\n#............#\n##############\n\n###################################\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#..P.P.......OOOOOOOOO............#\n#................O........T.T.....#\n#..P.P.......O.O.O.O.O............#\n#.........................T.T.....#\n#............O.O.O.O.O............#\n#............O.......O............#\n#............OOOOOOOOO............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n###################################\n\n\n####################################\n#..................................#\n#...........p......................#\n#..................................#\n#.................o................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#............o....O....t.........t.#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\n\n####################################\n#..................................#\n#..................................#\n#....p.............................#\n#..................................#\n#..................................#\n#.......o....o....t....t....t......#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#.......o....o....t.........t......#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\n\n\n##############\n#............#\n#............#\n#............#\n#......o.....#\n#............#\n#......o.....#\n#............#\n#....o...o...#\n#............#\n#............#\n#............#\n#............#\n#......P.....#\n#............#\n#............#\n#....t...t...#\n#............#\n#....t.t.t...#\n#............#\n#....t...t...#\n#............#\n#............#\n#............#\n##############\n\n\n\n####################################\n#..................................#\n#..............tt...tt...tt........#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#.............o....o..o............#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#................pppp..............#\n#..................................#\n#..................................#\n####################################\n\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#.p..........#\n#.p..........#\n#.p..........#\n#.p..........#\n#.p....o.....#\n#.p..........#\n#.p....o..t..#\n#.p..........#\n#.p..........#\n#.p....o.....#\n#.p..........#\n#.p..........#\n#.p..........#\n#.p..........#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\nmessage congratulations!\n\n",["Game title is too long to fit on screen, truncating to three lines."],1] + ["title constellation z asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf \nauthor increpare\nhomepage www.increpare.com\n\n(a port of the first few levels of my game, the full version of which is\nhttp://ded.increpare.com/~locus/constellationz/\n)\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nBorderTile\nRed\n\nTeleport\nwhite\n\ntarget\nblue\n.....\n.000.\n.000.\n.000.\n.....\n\nPlayer\nPINK\n.....\n.000.\n.000.\n.000.\n.....\n\nAltPlayer\nBlack\n\n=======\nLEGEND\n=======\n\n# = BorderTile\n. = Background\nP = Player\nO = Teleport\nt = target\n\n\n=========\nSOUNDS\n=========\nsfx1 44641500 (teleport)\nstartgame 26858107\nstartlevel 34443107\nendlevel 34292905\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTeleport,BorderTile, target\nPlayer, AltPlayer\n\n======\nRULES\n======\n\nlate [ player Teleport ] -> [ altplayer Teleport ] sfx1\n\nlate [ altplayer Teleport ] [ Teleport no altplayer ] -> [altplayer teleport] [Teleport player ]\nlate [altplayer ] -> []\n\nlate [ player bordertile ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nsome player\nall player on target\nall target on player\n\n=======\nLEVELS\n=======\n\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#..P....t....#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#..P.o..O..t.#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\n##############\n#............#\n#............#\n#............#\n#............#\n#.......O.t..#\n#............#\n#..P....O....#\n#............#\n#.......O.t..#\n#............#\n#............#\n#............#\n##############\n\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#..P...O...t.#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\n\n##############\n#............#\n#............#\n#.......O.t..#\n#............#\n#.......O.t..#\n#............#\n#..P....O.t..#\n#............#\n#.......O.t..#\n#............#\n#.......O....#\n#............#\n##############\n\n###################################\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#..P.P.......OOOOOOOOO............#\n#................O........T.T.....#\n#..P.P.......O.O.O.O.O............#\n#.........................T.T.....#\n#............O.O.O.O.O............#\n#............O.......O............#\n#............OOOOOOOOO............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n###################################\n\n\n####################################\n#..................................#\n#...........p......................#\n#..................................#\n#.................o................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#............o....O....t.........t.#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\n\n####################################\n#..................................#\n#..................................#\n#....p.............................#\n#..................................#\n#..................................#\n#.......o....o....t....t....t......#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#.......o....o....t.........t......#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\n\n\n##############\n#............#\n#............#\n#............#\n#......o.....#\n#............#\n#......o.....#\n#............#\n#....o...o...#\n#............#\n#............#\n#............#\n#............#\n#......P.....#\n#............#\n#............#\n#....t...t...#\n#............#\n#....t.t.t...#\n#............#\n#....t...t...#\n#............#\n#............#\n#............#\n##############\n\n\n\n####################################\n#..................................#\n#..............tt...tt...tt........#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#.............o....o..o............#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#................pppp..............#\n#..................................#\n#..................................#\n####################################\n\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#.p..........#\n#.p..........#\n#.p..........#\n#.p..........#\n#.p....o.....#\n#.p..........#\n#.p....o..t..#\n#.p..........#\n#.p..........#\n#.p....o.....#\n#.p..........#\n#.p..........#\n#.p..........#\n#.p..........#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\nmessage congratulations!\n\n",["line 1 : Game title is too long to fit on screen, truncating to three lines."],0] ], [ `You probably meant to put a space after 'message' innit.`, @@ -685,7 +685,7 @@ var errormessage_testdata = [ ], [ "Symbol is defined using OR, and therefore ambiguous - it cannot be used in a map. Did you mean to define it in terms of AND?", - ["title Symbol is defined using OR, and therefore ambiguous - it cannot be used in a map. Did you mean to define it in terms of AND?\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\na = Crate or Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#Pa#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 101 : Key \"A\" not found. Do you need to add it to the legend, or define a new object?","line 101 : Error, symbol \"a\" is defined using OR, and therefore ambiguous - it cannot be used in a map. Did you mean to define it in terms of AND?","Game title is too long to fit on screen, truncating to three lines."],3] + ["title Symbol is defined using OR, and therefore ambiguous - it cannot be used in a map. Did you mean to define it in terms of AND?\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\na = Crate or Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#Pa#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 101 : Key \"A\" not found. Do you need to add it to the legend, or define a new object?","line 101 : Error, symbol \"a\" is defined using OR, and therefore ambiguous - it cannot be used in a map. Did you mean to define it in terms of AND?","line 1 : Game title is too long to fit on screen, truncating to three lines."],2] ], [ "Message too long to fit on screen", @@ -701,7 +701,7 @@ var errormessage_testdata = [ ], [ "The + symbol, for joining a rule with the group of the previous rule, must be the first symbol on the line", - ["title The + symbol, for joining a rule with the group of the previous rule, must be the first symbol on the line\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ ] -> [ ]\nup + [ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 79 : The \"+\" symbol, for joining a rule with the group of the previous rule, must be the first symbol on the line","Game title is too long to fit on screen, truncating to three lines."],2] + ["title The + symbol, for joining a rule with the group of the previous rule, must be the first symbol on the line\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ ] -> [ ]\nup + [ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 79 : The \"+\" symbol, for joining a rule with the group of the previous rule, must be the first symbol on the line","line 1 : Game title is too long to fit on screen, truncating to three lines."],1] ], [ "two +s appended to same rule", @@ -773,7 +773,7 @@ var errormessage_testdata = [ ], [ "This rule may try to spawn a WALL with random, but also requires a CRATE be here, which is on the same layer - they shouldn't be able to coexist!", - ["title This rule may try to spawn a WALL with random, but also requires a CRATE be here, which is on the same layer - they shouldn't be able to coexist!\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\nrange = crate or wall\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate random range ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 79 : This rule may try to spawn a WALL with random, but also requires a CRATE be here, which is on the same layer - they shouldn't be able to coexist!","Game title is too long to fit on screen, truncating to three lines."],1] + ["title This rule may try to spawn a WALL with random, but also requires a CRATE be here, which is on the same layer - they shouldn't be able to coexist!\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\nrange = crate or wall\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate random range ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 79 : This rule may try to spawn a WALL with random, but also requires a CRATE be here, which is on the same layer - they shouldn't be able to coexist!","line 1 : Game title is too long to fit on screen, truncating to three lines."],0] ], [ "WALL and CRATE can never overlap, but this rule requires that to happen, so it's being culled.", @@ -801,15 +801,15 @@ var errormessage_testdata = [ ], [ "Game title is too long to fit on screen, truncating to five lines.", - ["title Game title is too long to fit on screen, truncating to five lines.Simple Block Pushing Game Simple Block Pushing Game Simple Block Pushing Game Simple Block Pushing Game Simple Block Pushing Game Simple Block Pushing Game Simple Block Pushing Game\n\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["Game title is too long to fit on screen, truncating to five lines."],1] + ["title Game title is too long to fit on screen, truncating to five lines.Simple Block Pushing Game Simple Block Pushing Game Simple Block Pushing Game Simple Block Pushing Game Simple Block Pushing Game Simple Block Pushing Game Simple Block Pushing Game\n\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 1 : Game title is too long to fit on screen, truncating to five lines."],0] ], [ "Author list too long to fit on screen", - ["title Author list too long to fit on screen\nauthor David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["Author list too long to fit on screen, truncating to three lines."],1] + ["author David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 1 : Author list too long to fit on screen, truncating to three lines."],0] ], [ "In this rule you're asking me to spawn a random CRATE for you, but that's already a concrete single object.", - ["title In this rule you're asking me to spawn a random CRATE for you, but that's already a concrete single object.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | random Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : In this rule you're asking me to spawn a random CRATE for you, but that's already a concrete single object. You wanna be using random with properties (things defined in terms of OR in the legend) so there's some things to select between.","Game title is too long to fit on screen, truncating to three lines."],1] + ["title In this rule you're asking me to spawn a random CRATE for you, but that's already a concrete single object.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | random Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : In this rule you're asking me to spawn a random CRATE for you, but that's already a concrete single object. You wanna be using random with properties (things defined in terms of OR in the legend) so there's some things to select between.","line 1 : Game title is too long to fit on screen, truncating to three lines."],0] ], [ "putting random before an aggregate has something funny, lol", From d01458e6657db4278b560bdd9f459ef144486ab1 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 9 Mar 2022 02:02:14 +0100 Subject: [PATCH 070/122] compile --- .build/buildnumber.txt | 2 +- src/standalone_inlined.txt | 257 ++++++++++++++++++++++++++----------- 2 files changed, 183 insertions(+), 76 deletions(-) diff --git a/.build/buildnumber.txt b/.build/buildnumber.txt index dfd4d9fcd..9eef726a7 100644 --- a/.build/buildnumber.txt +++ b/.build/buildnumber.txt @@ -1 +1 @@ -1704 \ No newline at end of file +1727 \ No newline at end of file diff --git a/src/standalone_inlined.txt b/src/standalone_inlined.txt index 85cc9774c..a21b9a67d 100644 --- a/src/standalone_inlined.txt +++ b/src/standalone_inlined.txt @@ -6781,19 +6781,21 @@ function generateGlyphImages() { left:4 right:8 action:16 - + rigid:32 */ const coords = [ - //up + //0 up [ [3,2],[5,0],[7,2]], - //down + //1 down [ [3,8],[5,10],[7,8]], - //left + //2 left [ [2,3],[0,5],[2,7]], - //right + //3 right [ [7,3],[10,5],[7,7]], - //action + //4 action [ [3,5],[5,7],[7,5],[5,3]], + //5 rigid + [ [3,3],[5,3],[5,4],[4,4],[4,5],[3,5]], ]; for (var i=0;i3){ titlelines.splice(3); - logWarning("Game title is too long to fit on screen, truncating to three lines.",undefined,true); + logWarning("Game title is too long to fit on screen, truncating to three lines.",state.metadata_lines.title,true); } } else { if ( titlelines.length>5){ titlelines.splice(5); - logWarning("Game title is too long to fit on screen, truncating to five lines.",undefined,true); + logWarning("Game title is too long to fit on screen, truncating to five lines.",state.metadata_lines.title,true); } } @@ -7410,7 +7425,7 @@ function generateTitleScreen() } if (attributionsplit.length>3){ attributionsplit.splice(3); - logWarning("Author list too long to fit on screen, truncating to three lines.",undefined,true); + logWarning("Author list too long to fit on screen, truncating to three lines.",state.metadata_lines.author,true); } for (var i=0;i state.rules[rgi][0].lineNumber); + var ts = bannedLineNumbers.length>1 ? "lines " : "line "; + ts += bannedLineNumbers.map(ln => `${ln}`).join(", "); + consolePrint(`Rigid movement application failed in rule-Group starting from ${ts}, and will be disabled in resimulation. Rolling back...`) + } //don't need to concat or anythign here, once something is restored it won't be used again. level.objects = new Int32Array(startState.objects) level.movements = new Int32Array(startState.movements) @@ -9809,6 +9841,11 @@ function processInput(dir,dontDoWin,dontModify) { } if (level.commandQueue.indexOf('restart')>=0) { + + if (verbose_logging && runrulesonlevelstart_phase){ + logWarning('A "restart" command is being triggered in the "run_rules_on_level_start" section of level creation, which would cause an infinite loop if it was actually triggered, but it\'s being ignored, so it\'s not.',undefined,true); + } + if (verbose_logging) { var r = level.commandQueueSourceRules[level.commandQueue.indexOf('restart')]; consolePrintFromRule('RESTART command executed, reverting to restart state.',r); @@ -10377,7 +10414,7 @@ var codeMirrorFn = function() { logError(`You're talking about ${candname.toUpperCase()} but it's not defined anywhere.`, state.lineNumber); } - function registerOriginalCaseName(state,candname,mixedCase){ + function registerOriginalCaseName(state,candname,mixedCase,lineNumber){ function escapeRegExp(str) { return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); @@ -10387,6 +10424,7 @@ var codeMirrorFn = function() { var match = mixedCase.match(nameFinder); if (match!=null){ state.original_case_names[candname] = match[0]; + state.original_line_numbers[candname] = lineNumber; } } @@ -10470,7 +10508,13 @@ var codeMirrorFn = function() { } idx = splits.indexOf(candname, 2); } - } + } + for (var j=2;j= 0) { if (sol) { - logError('Identifiers cannot appear outside of square brackets in rules, only directions can.', state.lineNumber); + logError('Objects cannot appear outside of square brackets in rules, only directions can.', state.lineNumber); return 'ERROR'; } else { stream.match(/[\p{Z}\s]*/u, true); @@ -11557,7 +11604,7 @@ var codeMirrorFn = function() { } else if (state.tokenIndex === 2) { if (candword != 'on') { - logError('Expecting the word "ON" but got "'+candword.toUpperCase()+"'.", state.lineNumber); + logError('Expecting the word "ON" but got "'+candword.toUpperCase()+"\".", state.lineNumber); return 'ERROR'; } else { return 'LOGICWORD'; @@ -11570,6 +11617,9 @@ var codeMirrorFn = function() { } else { return 'NAME'; } + } else { + logError("Error in win condition: I don't know what to do with "+candword.toUpperCase()+".", state.lineNumber); + return 'ERROR'; } } break; @@ -11668,9 +11718,14 @@ var codeMirrorFn = function() { var m2 = stream.match(reg_notcommentstart, false); - if(m2!=null) { + if(m2!==null) { state.metadata.push(token); - state.metadata.push(m2[0].trim()); + state.metadata.push(m2[0].trim()); + if (token in state.metadata_lines){ + var otherline = state.metadata_lines[token]; + logWarning(`You've already defined a ${token.toUpperCase()} in the prelude on line 0 && rhs_cells.length == 0) { //ok @@ -13380,6 +13461,7 @@ function rulesToMask(state) { objectsPresent = ellipsisPattern; if (cell_l.length !== 2) { logError("You can't have anything in with an ellipsis. Sorry.", rule.lineNumber); + throw 'aborting compilation';//throwing here because I was getting infinite loops in the compiler otherwise } else if ((k === 0) || (k === cellrow_l.length - 1)) { logError("There's no point in putting an ellipsis at the very start or the end of a rule", rule.lineNumber); } else if (rule.rhs.length > 0) { @@ -13390,7 +13472,7 @@ function rulesToMask(state) { } break; } else if (object_dir === 'random') { - logError("'random' cannot be matched on the left-hand side, it can only appear on the right", rule.lineNumber); + logError("RANDOM cannot be matched on the left-hand side, it can only appear on the right", rule.lineNumber); continue; } @@ -13501,6 +13583,8 @@ function rulesToMask(state) { if (state.propertiesDict.hasOwnProperty(object_name)) { values = state.propertiesDict[object_name]; } else { + //get line number declaration of object_name + logWarning(`In this rule you're asking me to spawn a random ${object_name.toUpperCase()} for you, but that's already a concrete single object. You wanna be using random with properties (things defined in terms of OR in the legend) so there's some things to select between.`, rule.lineNumber); values = [object_name]; } for (var m = 0; m < values.length; m++) { @@ -13818,7 +13902,8 @@ function generateRigidGroupList(state) { } } if (rigidGroupIndex_to_GroupIndex.length > 30) { - logError("There can't be more than 30 rigid groups (rule groups containing rigid members).", rules[0][0][3]); + var group_index = rigidGroupIndex_to_GroupIndex[30]; + logError("There can't be more than 30 rigid groups (rule groups containing rigid members).", state.rules[group_index][0].lineNumber); } state.rigidGroups = rigidGroups; @@ -13955,17 +14040,34 @@ function twiddleMetaData(state) { newmetadata[key] = val; } + var getCoords = function(str,lineNumber){ + var coords = val.split('x'); + if (coords.length!==2){ + logWarning("Dimensions must be of the form AxB.",lineNumber); + return null; + } else { + var intcoords = [parseInt(coords[0],10), parseInt(coords[1],10)]; + if (!isFinite(coords[0]) || !isFinite(coords[1]) || isNaN(intcoords[0]) || isNaN(intcoords[1])) { + logWarning(`Couldn't understand the dimensions given to me (you gave "${val}") - should be of the form AxB.`,lineNumber); + return null + } else { + return intcoords; + } + } + } if (newmetadata.flickscreen !== undefined) { var val = newmetadata.flickscreen; - var coords = val.split('x'); - var intcoords = [parseInt(coords[0]), parseInt(coords[1])]; - newmetadata.flickscreen = intcoords; + newmetadata.flickscreen = getCoords(val,state.metadata_lines.flickscreen); + if (newmetadata.flickscreen===null){ + delete newmetadata.flickscreen; + } } if (newmetadata.zoomscreen !== undefined) { var val = newmetadata.zoomscreen; - var coords = val.split('x'); - var intcoords = [parseInt(coords[0]), parseInt(coords[1])]; - newmetadata.zoomscreen = intcoords; + newmetadata.zoomscreen = getCoords(val,state.metadata_lines.zoomscreen); + if (newmetadata.zoomscreen===null){ + delete newmetadata.zoomscreen; + } } state.metadata = newmetadata; @@ -14143,8 +14245,25 @@ function generateLoopPoints(state) { var outside = true; var source = 0; var target = 0; - if (state.loops.length % 2 === 1) { - logErrorNoLine("have to have matching number of 'startLoop' and 'endLoop' loop points."); + if (state.loops.length > 0) { + for (var i=0;i= loop[0]) { target = i; outside = false; - if (loop[1] === -1) { - logErrorNoLine("Need have to have matching number of 'startLoop' and 'endLoop' loop points."); - } break; } } else { @@ -14172,9 +14288,6 @@ function generateLoopPoints(state) { source = i - 1; loopPoint[source] = target; outside = true; - if (loop[1] === 1) { - logErrorNoLine("Need have to have matching number of 'startLoop' and 'endLoop' loop points."); - } break; } } @@ -14203,9 +14316,6 @@ function generateLoopPoints(state) { if (firstRuleLine >= loop[0]) { target = i; outside = false; - if (loop[1] === -1) { - logErrorNoLine("Need have to have matching number of 'startLoop' and 'endLoop' loop points."); - } break; } } else { @@ -14213,9 +14323,6 @@ function generateLoopPoints(state) { source = i - 1; loopPoint[source] = target; outside = true; - if (loop[1] === 1) { - logErrorNoLine("Need have to have matching number of 'startLoop' and 'endLoop' loop points."); - } break; } } @@ -14432,11 +14539,11 @@ function formatHomePage(state) { } if (isColor(state.fgcolor) === false) { - logError("text_color in incorrect format - found " + state.fgcolor + ", but I expect a color name (like 'pink') or hex-formatted color (like '#1412FA'). Defaulting to white.") + logError("text_color in incorrect format - found " + state.fgcolor + ", but I expect a color name (like 'pink') or hex-formatted color (like '#1412FA'). Defaulting to white.",state.metadata_lines.text_color) state.fgcolor = "#FFFFFF"; } if (isColor(state.bgcolor) === false) { - logError("background_color in incorrect format - found " + state.bgcolor + ", but I expect a color name (like 'pink') or hex-formatted color (like '#1412FA'). Defaulting to black.") + logError("background_color in incorrect format - found " + state.bgcolor + ", but I expect a color name (like 'pink') or hex-formatted color (like '#1412FA'). Defaulting to black.",state.metadata_lines.background_color) state.bgcolor = "#000000"; } From 0edceb98e8b28e21f97d80235c4277f697cf2e40 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 9 Mar 2022 02:15:17 +0100 Subject: [PATCH 071/122] better checks for dimensions in flickscreen+zoomscreen --- src/js/compiler.js | 26 ++++++++++++++++++-- src/tests/resources/errormessage_testdata.js | 8 ++++++ 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/js/compiler.js b/src/js/compiler.js index c02e6f9dd..98f7a8fb0 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -2177,6 +2177,10 @@ function checkObjectsAreLayered(state) { } } +function isInt(value) { +return !isNaN(value) && (function(x) { return (x | 0) === x; })(parseFloat(value)) +} + function twiddleMetaData(state) { var newmetadata = {}; for (var i = 0; i < state.metadata.length; i += 2) { @@ -2185,17 +2189,35 @@ function twiddleMetaData(state) { newmetadata[key] = val; } - var getCoords = function(str,lineNumber){ + + const getIntCheckedPositive = function(s,lineNumber){ + if (!isFinite(s) || !isInt(s)){ + logWarning(`Wasn't able to make sense of "${s}" as a (whole number) dimension.`,lineNumber); + return NaN; + } + var result = parseInt(s); + if (isNaN(result)){ + logWarning(`Wasn't able to make sense of "${s}" as an dimension.`,lineNumber); + } + if (result<=0){ + logWarning(`The dimension given to me (you gave "${s}") is baad - it should be greater than 0.`,lineNumber); + } + return result; + } + const getCoords = function(str,lineNumber){ var coords = val.split('x'); if (coords.length!==2){ logWarning("Dimensions must be of the form AxB.",lineNumber); return null; } else { - var intcoords = [parseInt(coords[0],10), parseInt(coords[1],10)]; + var intcoords = [getIntCheckedPositive(coords[0],lineNumber), getIntCheckedPositive(coords[0],lineNumber)]; if (!isFinite(coords[0]) || !isFinite(coords[1]) || isNaN(intcoords[0]) || isNaN(intcoords[1])) { logWarning(`Couldn't understand the dimensions given to me (you gave "${val}") - should be of the form AxB.`,lineNumber); return null } else { + if (intcoords[0]<=0 || intcoords[1]<=0){ + logWarning(`The dimensions given to me (you gave "${val}") are baad - they should be > 0.`,lineNumber); + } return intcoords; } } diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index 8e0f8c960..56fe1526f 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -843,4 +843,12 @@ var errormessage_testdata = [ "flickscreen/zoomscreen formatting error #2", ["title flickscreen/zoomscreen formatting error #2\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nzoomscreen 123\nflickscreen 123\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 6 : Dimensions must be of the form AxB.","line 5 : Dimensions must be of the form AxB."],0] ], + [ + "Dimensions should be positive", + ["title Dimensions should be positive\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nflickscreen -1x-3\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 5 : The dimensions given to me (you gave \"-1x-3\") are baad - they should be > 0."],0] + ], + [ + "Dimensions should be positive and integral", + ["title Dimensions should be positive and integral\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nzoomscreen 0x4.23\nflickscreen 1.4x-4\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 6 : Wasn't able to make sense of \"1.4\" as a (whole number) dimension.","line 6 : Couldn't understand the dimensions given to me (you gave \"1.4x-4\") - should be of the form AxB.","line 5 : The dimension given to me (you gave \"0\") is baad - it should be greater than 0.","line 5 : The dimensions given to me (you gave \"0x4.23\") are baad - they should be > 0."],0] + ], ]; \ No newline at end of file From 67ceb51e4650ac8f2297d6ef6e9ef606b816a809 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 9 Mar 2022 02:46:11 +0100 Subject: [PATCH 072/122] fixes #873 --- src/Documentation/rigidbodies.html | 2 +- src/demo/rigid_parallel_unlimited.txt | 54 ++++++++++++++------------- 2 files changed, 29 insertions(+), 27 deletions(-) diff --git a/src/Documentation/rigidbodies.html b/src/Documentation/rigidbodies.html index 9ecc6e403..01a89bf66 100644 --- a/src/Documentation/rigidbodies.html +++ b/src/Documentation/rigidbodies.html @@ -192,7 +192,7 @@

    One Player, Unlimited Extended Bodies

    - This can be extended to cover multiple players, but you have to back-propagate blocked movements, so it's a biiit trickier. Here's a sketch if you want to look, but it's only one of several ways of trying to do it. + This can be extended to cover multiple players, but you have to back-propagate blockages, so it's a biiit trickier. Here's a sketch if you want to look.

    Trying and failing to do Multiple Players + Multiple Extended Bodies

    So I'm going to take the above example and push it beyond its limits. Let's say we take the above example but have two characters: a regular player, and a shadow player that moves in the opposite direction. diff --git a/src/demo/rigid_parallel_unlimited.txt b/src/demo/rigid_parallel_unlimited.txt index 7ec58b76e..8716aeffe 100644 --- a/src/demo/rigid_parallel_unlimited.txt +++ b/src/demo/rigid_parallel_unlimited.txt @@ -9,7 +9,7 @@ verbose_logging This is a sample of - Unlimited rigid bodies -- 1 Player (should be extendable) +- Multiple players moving in parallel It's made as an example for the extended rigid body tutorial here: @@ -83,7 +83,7 @@ orange ....0 ..... -BLOCKED +CanMove red ..... ..... @@ -143,7 +143,7 @@ Player, Wall, Crate Crate_D Crate_L Crate_R -BLOCKED +CanMove ====== RULES @@ -156,39 +156,41 @@ RULES ( right [ action player ] [ Crate | Crate ] -> [ action player ] [ Crate Crate_r | Crate Crate_l ] ) -startloop +(Step 1: propagate motions forward) +[ > Pusher | Pushable ] -> [ > Pusher | > Pushable ] ++ up [ moving Crate Crate_U | Crate ] -> [ moving Crate Crate_U | moving Crate ] ++ down [ moving Crate Crate_D | Crate ] -> [ moving Crate Crate_D | moving Crate ] ++ left [ moving Crate Crate_L | Crate ] -> [ moving Crate Crate_L | moving Crate ] ++ right [ moving Crate Crate_R | Crate ] -> [ moving Crate Crate_R | moving Crate ] -(I'm using ACTION to mark 'BLOCKED's as old to allow the loop to exit once no new BLOCKEDs have been added) -[ stationary BLOCKED ] -> [ action BLOCKED ] -[ > Pusher | no BLOCKED Pushable ] -> [ > Pusher | > Pushable ] -+ up [ moving Crate Crate_U | no BLOCKED Crate ] -> [ moving Crate Crate_U | moving Crate ] -+ down [ moving Crate Crate_D | no BLOCKED Crate ] -> [ moving Crate Crate_D | moving Crate ] -+ left [ moving Crate Crate_L | no BLOCKED Crate ] -> [ moving Crate Crate_L | moving Crate ] -+ right [ moving Crate Crate_R | no BLOCKED Crate ] -> [ moving Crate Crate_R | moving Crate ] +(Step 1: If a crate can't move, we have to back-propagate the can't-move-ness, including possibly through players) +[ > Solid | wall ] -> [ Solid | wall ] +[ > Solid | stationary Solid ] -> [ Solid | Solid ] ++ up [ moving Crate Crate_U | stationary Crate ] -> [ Crate Crate_U | Crate ] ++ down [ moving Crate Crate_D | stationary Crate ] -> [ Crate Crate_D | Crate ] ++ left [ moving Crate Crate_L | stationary Crate ] -> [ Crate Crate_L | Crate ] ++ right [ moving Crate Crate_R | stationary Crate ] -> [ Crate Crate_R | Crate ] -(If a crate can't move, we have to back-propagate the can't-move-ness, including possibly through players) -[ > Solid | wall ] -> [ > Solid BLOCKED | wall ] -[ no BLOCKED > Solid | BLOCKED Solid ] -> [ BLOCKED > Solid | BLOCKED Solid ] -+ up [ BLOCKED Crate Crate_U | no BLOCKED Crate ] -> [ BLOCKED Crate Crate_U | BLOCKED Crate ] -+ down [ BLOCKED Crate Crate_D | no BLOCKED Crate ] -> [ BLOCKED Crate Crate_D | BLOCKED Crate ] -+ left [ BLOCKED Crate Crate_L | no BLOCKED Crate ] -> [ BLOCKED Crate Crate_L | BLOCKED Crate ] -+ right [ BLOCKED Crate Crate_R | no BLOCKED Crate ] -> [ BLOCKED Crate Crate_R | BLOCKED Crate ] +(Step 3: Mark all crates that are still moving as possibly being able to move) +[ moving Pushable ] -> [ Pushable CanMove ] +(Step 4: redo Step 1, but only through things that are marked as being possibly able to move) +[ > Pusher | CanMove Pushable ] -> [ > Pusher | CanMove > Pushable ] ++ up [ moving Crate Crate_U | CanMove Crate ] -> [ moving Crate Crate_U | CanMove moving Crate ] ++ down [ moving Crate Crate_D | CanMove Crate ] -> [ moving Crate Crate_D | CanMove moving Crate ] ++ left [ moving Crate Crate_L | CanMove Crate ] -> [ moving Crate Crate_L | CanMove moving Crate ] ++ right [ moving Crate Crate_R | CanMove Crate ] -> [ moving Crate Crate_R | CanMove moving Crate ] -(Then we remove all movements from BLOCKED crates, along with the BLOCKED marker itself) -[ BLOCKED moving Solid ] -> [ BLOCKED stationary Solid ] +(Step 5: remove all the CanMove tags) +[ CanMove ] -> [ ] -[ stationary BLOCKED ] [ moving crate ] -> [ stationary BLOCKED ] [ stationary crate ] -endloop - -[ BLOCKED ] -> [ ] - -(To wrap it all up, move connections along with the crates themselves) +(Step 6: move connections along with the crates themselves) [ moving Crate stationary Crate_connection ] -> [ moving Crate moving Crate_connection ] + ============== WINCONDITIONS ============== From 810210243c19bbc5dfd2a3fd3c1552ba8a948e7a Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 9 Mar 2022 02:47:49 +0100 Subject: [PATCH 073/122] fixing link --- src/Documentation/rigidbodies.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Documentation/rigidbodies.html b/src/Documentation/rigidbodies.html index 01a89bf66..65a38c879 100644 --- a/src/Documentation/rigidbodies.html +++ b/src/Documentation/rigidbodies.html @@ -192,7 +192,7 @@

    One Player, Unlimited Extended Bodies

    - This can be extended to cover multiple players, but you have to back-propagate blockages, so it's a biiit trickier. Here's a sketch if you want to look. + This can be extended to cover multiple players, but you have to back-propagate blockages, so it's a biiit trickier. Here's a sketch if you want to look.

    Trying and failing to do Multiple Players + Multiple Extended Bodies

    So I'm going to take the above example and push it beyond its limits. Let's say we take the above example but have two characters: a regular player, and a shadow player that moves in the opposite direction. From 4dbe431125edfee129aa1266f3528578b5e05d58 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 9 Mar 2022 04:01:19 +0100 Subject: [PATCH 074/122] adding final bit from #846 --- DEVELOPMENT.md | 2 +- compile.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index cd42571ab..62e224853 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -15,7 +15,7 @@ The structure of PuzzleScript is the following: `./compile.js` uses [node](https://nodejs.org). So first off you have to install that. Then you need to install the packages that it uses: ``` -npm i inliner ncp rimraf compress-images gifsicle glob concat ycssmin terser html-minifier-terser gzipper +npm i inliner ncp rimraf compress-images gifsicle@5.3.0 glob concat ycssmin terser html-minifier-terser gzipper ``` Then you should be able to compile the site (outputted to the `./bin/` directory) with diff --git a/compile.js b/compile.js index 39f92f12c..7cb0b22e9 100644 --- a/compile.js +++ b/compile.js @@ -6,7 +6,7 @@ creates a highly compressed release build in bin of the contents of src packages used: -npm i rimraf compress-images web-resource-inliner ncp gifsicle concat ycssmin terser gzipper html-minifier-terser glob +npm i rimraf compress-images web-resource-inliner ncp gifsicle@5.3.0 concat ycssmin terser gzipper html-minifier-terser glob */ const fs = require("fs"); From 1a4304f277751767cf2c5daef32f800eb6dbfff6 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 9 Mar 2022 04:32:16 +0100 Subject: [PATCH 075/122] minor edit to rigidbodies.html --- src/Documentation/rigidbodies.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Documentation/rigidbodies.html b/src/Documentation/rigidbodies.html index 65a38c879..51263d007 100644 --- a/src/Documentation/rigidbodies.html +++ b/src/Documentation/rigidbodies.html @@ -356,7 +356,7 @@

    An example using RIGID

    -If only there were some way of looping through these four rules. Well, adding them all to the same rulegroup is one way, but in the case of rigid rules we don't want to cancel the movement of EVERYTHING just because one block can't move (e.g. let's say there's gravity pulling objects down - we don't want one object being prevented from falling to prevent all of them falling) - so we need another layer of loopiness. So, let's introduce startloop and endloop; +If only there were some way of looping through these four rules. Well, adding them all to the same rulegroup is one way, but in the case of rigid rules we don't want to cancel the movement of EVERYTHING just because one block can't move (e.g. let's say there's gravity pulling objects down - we don't want one object being prevented from falling to prevent all of them falling) - so we need another layer of loopiness. So, let's introduce STARTLOOP and ENDLOOP:

    From e5eb731546203952b96a095d28e3f2ecfb3f1651 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 9 Mar 2022 12:30:26 +0100 Subject: [PATCH 076/122] fixes #872 --- src/Documentation/executionorder.html | 55 +++++++++++++++++++++++---- src/Documentation/rules.html | 6 ++- 2 files changed, 52 insertions(+), 9 deletions(-) diff --git a/src/Documentation/executionorder.html b/src/Documentation/executionorder.html index c9fa15bfa..20436cfbe 100644 --- a/src/Documentation/executionorder.html +++ b/src/Documentation/executionorder.html @@ -58,12 +58,18 @@

  • Execution Order
  • -

    Execution Order

    - Let's start with the vaguest picture, and zoom in a bit each section (the final level of depth will be dealt with in another article). +

    +

    + Let's start with the vaguest picture, and zoom in a bit each section for a more detailed description, and in the end describe a final looping construct that you may find yourself needing at some point.

    -

    Zoom level 1

    +

    Zoom Level 1

    According to Rules 101, a turn is like this:

    @@ -74,7 +80,7 @@

    Zoom level 1

  • An optional extra stage for rules you want to apply at the very end.
  • -

    Zoom Level 2

    +

    Zoom Level 2

    Let's look at step 2. What does it mean?

    @@ -114,11 +120,44 @@

    Zoom Level 3

    That assigns both rules (or rather, the rules that are generated from them) to the same rule group.

    This technique is used in the extended rigid bodies section (warning: it's a bit of an arcane subject). +

    +

    StartLoop/EndLoop

    +

    + Having rule-groups is nice, and they should be your first port of call for loop-constructions. But there are reasons why you might want to nest loops, to have groups of rule groups iterating themselves in a loop to exhaustion. +

    + Thankfully you can realize this, at least to a depth of two, using the STARTLOOP/ENDLOOP keywords. Let's take the standard sokoban example: +

    +

    [ > Player | Crate ] -> [ > Player | > Crate ]
    +

    + This gets compiled to something like the following rule-group: +

    +

    DOWN [ crate | up player ] -> [ up crate | up player ] 
    ++ DOWN [ down player | crate ] -> [ down player | down crate ]
    ++ RIGHT [ crate | left player ] -> [ left crate | left player ] 
    ++ RIGHT [ right player | crate ] -> [ right player | right crate ]
    +

    + The alternative STARTLOOP/ENDLOOP form of this rule-group is the following: +

    +

    STARTLOOP
    +DOWN [ crate | up player ] -> [ up crate | up player ]
    +DOWN [ down player | crate ] -> [ down player | down crate ]
    +RIGHT [ crate | left player ] -> [ left crate | left player ]
    +RIGHT [ right player | crate ] -> [ right player | right crate ]
    +ENDLOOP
    +

    + So, what does this do? This is in this case exactly the same as the rule-group. It iterates each rule separately, and once it reaches ENDLOOP, if any rule changed any movement or object during the run it jumps back to the STARTLOOP line (even if changes were subsequently reverted later in the loop). It can only leave when it reaches ENDLOOP without any rule since STARTLOOP having modified any object or movement. +

    + And that's also how it works if there are bigger rule groups. So basically it's just another way to write loops where rule-groups can be nested inside (See the rigidbody description for (slightly complicated) examples of use). +

    + Things to note: +

      +
    • You can't nest multiple STARTLOOP/ENDLOOP loops inside eachother.
    • +
    • You can't put STARTLOOP/ENDLOOP loops inside a rule-group. They are strictly on the outer level.
    • +
    • To be clear: if any rule in any rule-group within a STARTLOOP/ENDLOOP block makes any changes to objects/movements, the loop will repeat.
    • +
    +

    + And that's it. It's actually a pretty simple/chill construct that does more or less what it says on the tin. I'd still recommend rule-groups as a first port-of-call, but these are here if you need them. :)

    - - - - diff --git a/src/Documentation/rules.html b/src/Documentation/rules.html index ee95a8513..b49030200 100644 --- a/src/Documentation/rules.html +++ b/src/Documentation/rules.html @@ -200,9 +200,13 @@

    Commands

    sfx0 ... sfx10
    Sound effects banks - you associate these to sounds in the sounds section, and then you can trigger them in rules by mentioning them.
    -

    +

    What stuff is hard to do?

    +

    Loops

    +

    + Wait actually loops are pretty easy. Check out the execution order docs for more information (specifically about rule-groups and the StartLoop/EndLoop construction). +

    Counting

    If you had a rule that said "if there are two walls next to the player, destroy it", that would be tough. You can do it with tricks, like putting temporary counters down as markers, but it's not hooked up that way. From f73f8544411f97344d14e29fb39979a2ffa40f83 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 9 Mar 2022 12:30:34 +0100 Subject: [PATCH 077/122] minor html fix --- src/Documentation/rigidbodies.html | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Documentation/rigidbodies.html b/src/Documentation/rigidbodies.html index 51263d007..028a3d461 100644 --- a/src/Documentation/rigidbodies.html +++ b/src/Documentation/rigidbodies.html @@ -69,6 +69,7 @@

    Extended Rigid Bodies

  • Trying and failing to do Multiple Players + Multiple Extended Bodies
  • The RIGID keyword
  • An example using RIGID
  • +

    Introduction

    From 47ae448cb94f7c09763e9c8e6c25442153f0b798 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 9 Mar 2022 12:40:16 +0100 Subject: [PATCH 078/122] fixes #880 --- src/js/parser.js | 5 +++++ src/tests/resources/errormessage_testdata.js | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/src/js/parser.js b/src/js/parser.js index d2294b202..fee020958 100644 --- a/src/js/parser.js +++ b/src/js/parser.js @@ -1560,11 +1560,16 @@ var codeMirrorFn = function() { } } else { stream.match(reg_notcommentstart, true); + state.tokenIndex++; var key = state [state.metadata.length-3]; var val = state.metadata[state.metadata.length-2]; var oldLineNum = state.metadata[state.metadata.length-1]; + if( state.tokenIndex>2){ + logWarning("Error: you can't embed comments in metadata values. Anything after the comment will be ignored.",state.lineNumber); + return 'ERROR'; + } if (key === "background_color" || key === "text_color"){ var candcol = val.trim().toLowerCase(); if (candcol in colorPalettes.arnecolors) { diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index 56fe1526f..bb73f625f 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -851,4 +851,8 @@ var errormessage_testdata = [ "Dimensions should be positive and integral", ["title Dimensions should be positive and integral\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nzoomscreen 0x4.23\nflickscreen 1.4x-4\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 6 : Wasn't able to make sense of \"1.4\" as a (whole number) dimension.","line 6 : Couldn't understand the dimensions given to me (you gave \"1.4x-4\") - should be of the form AxB.","line 5 : The dimension given to me (you gave \"0\") is baad - it should be greater than 0.","line 5 : The dimensions given to me (you gave \"0x4.23\") are baad - they should be > 0."],0] ], + [ + "Match 3 Block Push", + ["title Match 3 Block Push\nauthor increpare\nhomepage www.puzzlescript.net (hi) asfsadf (ho) r23r23r\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate [ Crate | Crate | 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.#O##..##\n##.##.*.#\n#.*..**.#\n#.OOO.#.#\n#.P.....#\n#########\n\n",["line 3 : Error: you can't embed comments in metadata values. Anything after the comment will be ignored."],0] + ], ]; \ No newline at end of file From d4ad33d75c17eaf8290734f6d83e3e6f18cc1fac Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 9 Mar 2022 13:52:46 +0100 Subject: [PATCH 079/122] fixes #797 hopefully. I can't test it with tests, it seems, for whatever reason. But it doesn't seem to have broken any other tests, at least... ALSO fixes issue with restart not displaying message if it's triggered during again --- src/js/engine.js | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/src/js/engine.js b/src/js/engine.js index ea2f162f4..b32382000 100644 --- a/src/js/engine.js +++ b/src/js/engine.js @@ -2651,27 +2651,39 @@ function processInput(dir,dontDoWin,dontModify) { var r = level.commandQueueSourceRules[level.commandQueue.indexOf('cancel')]; consolePrintFromRule('CANCEL command executed, cancelling turn.',r,true); } - processOutputCommands(level.commandQueue); + + if (!dontModify){ + processOutputCommands(level.commandQueue); + } + + var commandsleft = level.commandQueue.length>1; + addUndoState(bak); DoUndo(true,false); tryPlayCancelSound(); - return false; + return commandsleft; } if (level.commandQueue.indexOf('restart')>=0) { if (verbose_logging && runrulesonlevelstart_phase){ - logWarning('A "restart" command is being triggered in the "run_rules_on_level_start" section of level creation, which would cause an infinite loop if it was actually triggered, but it\'s being ignored, so it\'s not.',undefined,true); + var r = level.commandQueueSourceRules[level.commandQueue.indexOf('restart')]; + logWarning('A "restart" command is being triggered in the "run_rules_on_level_start" section of level creation, which would cause an infinite loop if it was actually triggered, but it\'s being ignored, so it\'s not.',r.lineNumber,true); } if (verbose_logging) { var r = level.commandQueueSourceRules[level.commandQueue.indexOf('restart')]; - consolePrintFromRule('RESTART command executed, reverting to restart state.',r); + consolePrintFromRule('RESTART command executed, reverting to restart state.',r.lineNumber); consoleCacheDump(); } - processOutputCommands(level.commandQueue); + if (!dontModify){ + processOutputCommands(level.commandQueue); + } addUndoState(bak); - DoRestart(true); + + if (!dontModify){ + DoRestart(true); + } return true; } @@ -2735,7 +2747,9 @@ function processInput(dir,dontDoWin,dontModify) { } } - processOutputCommands(level.commandQueue); + if (!dontModify){ + processOutputCommands(level.commandQueue); + } if (textMode===false) { if (verbose_logging) { From d2d706800f5a6c5679108fa90c44fd615ecf2ffa Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 9 Mar 2022 14:52:54 +0100 Subject: [PATCH 080/122] fixes #888 --- src/js/compiler.js | 12 ++++++++++-- src/tests/resources/errormessage_testdata.js | 4 ++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/js/compiler.js b/src/js/compiler.js index 98f7a8fb0..6f8f2fba8 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -682,7 +682,7 @@ function processRuleString(rule, state, curRules) { } else if (token in directionaggregates) { directions = directions.concat(directionaggregates[token]); } else if (token === 'late') { - late = true; + late = true; } else if (token === 'rigid') { rigid = true; } else if (token === 'random') { @@ -708,7 +708,7 @@ function processRuleString(rule, state, curRules) { break; } case 1: - { + { if (token == '[') { bracketbalance++; if (bracketbalance > 1) { @@ -764,6 +764,14 @@ function processRuleString(rule, state, curRules) { curcellrow = []; incellrow = false; } else if (token === '->') { + + if (groupNumber !== lineNumber) { + var parentrule = curRules[curRules.length - 1]; + if (parentrule.late!==late){ + logWarning('Oh gosh you can mix late and non-late rules in a rule-group if you really want to, but gosh why would you want to do that? What do you expect to accomplish?', lineNumber); + } + } + if (incellrow) { logError('Encountered an unexpected "->" inside square brackets. It\'s used to separate states, it has no place inside them >:| .', lineNumber); } else if (rhs) { diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index bb73f625f..dc716cbcf 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -855,4 +855,8 @@ var errormessage_testdata = [ "Match 3 Block Push", ["title Match 3 Block Push\nauthor increpare\nhomepage www.puzzlescript.net (hi) asfsadf (ho) r23r23r\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate [ Crate | Crate | 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.#O##..##\n##.##.*.#\n#.*..**.#\n#.OOO.#.#\n#.P.....#\n#########\n\n",["line 3 : Error: you can't embed comments in metadata values. Anything after the comment will be ignored."],0] ], + [ + "Mixing late and non-late in rulegroups", + ["title Mixing late and non-late in rulegroups\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ player ]\n+ late [ crate ] -> [ player ]\n+ [ player ] -> [ crate ]\n\n\nlate [ crate ] -> [ player ]\n+ [ player ] -> [ crate ]\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 82 : Oh gosh you can mix late and non-late rules in a rule-group if you really want to, but gosh why would you want to do that? What do you expect to accomplish?","line 83 : Oh gosh you can mix late and non-late rules in a rule-group if you really want to, but gosh why would you want to do that? What do you expect to accomplish?","line 87 : Oh gosh you can mix late and non-late rules in a rule-group if you really want to, but gosh why would you want to do that? What do you expect to accomplish?"],0] + ], ]; \ No newline at end of file From 072e9d01e37386c9d4f9a10ff7c36e12ca7325a8 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 9 Mar 2022 15:04:42 +0100 Subject: [PATCH 081/122] fixes #887 --- src/js/compiler.js | 3 +++ src/tests/resources/errormessage_testdata.js | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/src/js/compiler.js b/src/js/compiler.js index 6f8f2fba8..2b06451cf 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -2452,6 +2452,9 @@ function generateLoopPoints(state) { var firstRuleLine = firstRule.lineNumber; var lastRuleLine = lastRule.lineNumber; + if (loop[0] >= firstRuleLine && loop[0] <= lastRuleLine) { + logWarning("Found a loop point in the middle of a rule. You probably don't want to do this, right?", loop[0]); + } if (outside) { if (firstRuleLine >= loop[0]) { target = i; diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index dc716cbcf..7286dec10 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -859,4 +859,8 @@ var errormessage_testdata = [ "Mixing late and non-late in rulegroups", ["title Mixing late and non-late in rulegroups\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ player ]\n+ late [ crate ] -> [ player ]\n+ [ player ] -> [ crate ]\n\n\nlate [ crate ] -> [ player ]\n+ [ player ] -> [ crate ]\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 82 : Oh gosh you can mix late and non-late rules in a rule-group if you really want to, but gosh why would you want to do that? What do you expect to accomplish?","line 83 : Oh gosh you can mix late and non-late rules in a rule-group if you really want to, but gosh why would you want to do that? What do you expect to accomplish?","line 87 : Oh gosh you can mix late and non-late rules in a rule-group if you really want to, but gosh why would you want to do that? What do you expect to accomplish?"],0] ], + [ + "loop points in the middle of rule-groups", + ["title loop points in the middle of rule-groups\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ player ]\nstartloop\n+ [ crate ] -> [ player ]\n+ [ player ] -> [ crate ]\n\n\n[ crate ] -> [ player ]\nendloop\n+ [ player ] -> [ crate ]\n\n\nstartloop\n[]->[]\n+ [] -> []\nendloop\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 82 : Found a loop point in the middle of a rule. You probably don't want to do this, right?","line 88 : Found a loop point in the middle of a rule. You probably don't want to do this, right?"],0] + ], ]; \ No newline at end of file From 028f525ef462d657316970df865a9a795552d884 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 9 Mar 2022 15:36:14 +0100 Subject: [PATCH 082/122] code spring-cleaning - changing a bunch of VARs to CONSTs --- src/games_dat.js | 2 +- src/js/buildStandalone.js | 2 +- src/js/colors.js | 8 +++--- src/js/compiler.js | 22 ++++++++--------- src/js/debug.js | 8 +++--- src/js/debug_off.js | 8 +++--- src/js/editor.js | 17 ------------- src/js/engine.js | 23 +++++++++-------- src/js/font.js | 3 +-- src/js/globalVariables.js | 2 +- src/js/graphics.js | 2 +- src/js/inputoutput.js | 2 +- src/js/layout.js | 6 ++--- src/js/sfxr.js | 26 ++++++++++---------- src/tests/resources/errormessage_testdata.js | 3 +-- src/tests/resources/testdata.js | 2 +- src/tests/resources/tests.js | 2 +- 17 files changed, 59 insertions(+), 79 deletions(-) diff --git a/src/games_dat.js b/src/games_dat.js index 99a95f2dc..bc656fa79 100644 --- a/src/games_dat.js +++ b/src/games_dat.js @@ -1,4 +1,4 @@ -var games_gallery = [ +const games_gallery = [ { "url": "https://www.puzzlescript.net/play.html?p=6841165", "thumb": "6841165.gif", diff --git a/src/js/buildStandalone.js b/src/js/buildStandalone.js index dbedbd7a0..38354cdec 100644 --- a/src/js/buildStandalone.js +++ b/src/js/buildStandalone.js @@ -1,4 +1,4 @@ -var get_blob = function() { +const get_blob = function() { return self.Blob; } diff --git a/src/js/colors.js b/src/js/colors.js index a8e59da1c..44f14a780 100644 --- a/src/js/colors.js +++ b/src/js/colors.js @@ -1,4 +1,4 @@ -colorPalettesAliases = { +const colorPalettesAliases = { 1 : "mastersystem", 2 : "gameboycolour", 3 : "amiga", @@ -15,7 +15,7 @@ colorPalettesAliases = { 14 : "whitingjp" }; -colorPalettes = { +const colorPalettes = { mastersystem : { black : "#000000", white : "#FFFFFF", @@ -396,9 +396,9 @@ whitingjp : { } }; -var reg_color_names = /(black|white|darkgray|lightgray|gray|grey|darkgrey|lightgrey|red|darkred|lightred|brown|darkbrown|lightbrown|orange|yellow|green|darkgreen|lightgreen|blue|lightblue|darkblue|purple|pink|transparent)\s*/; +const reg_color_names = /(black|white|darkgray|lightgray|gray|grey|darkgrey|lightgrey|red|darkred|lightred|brown|darkbrown|lightbrown|orange|yellow|green|darkgreen|lightgreen|blue|lightblue|darkblue|purple|pink|transparent)\s*/; -var reg_color = /(black|white|gray|darkgray|lightgray|grey|darkgrey|lightgrey|red|darkred|lightred|brown|darkbrown|lightbrown|orange|yellow|green|darkgreen|lightgreen|blue|lightblue|darkblue|purple|pink|transparent|#(?:[0-9a-f]{3}){1,2})\s*/; +const reg_color = /(black|white|gray|darkgray|lightgray|grey|darkgrey|lightgrey|red|darkred|lightred|brown|darkbrown|lightbrown|orange|yellow|green|darkgreen|lightgreen|blue|lightblue|darkblue|purple|pink|transparent|#(?:[0-9a-f]{3}){1,2})\s*/; diff --git a/src/js/compiler.js b/src/js/compiler.js index 2b06451cf..c5c5f1a54 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -511,7 +511,7 @@ function levelsToArray(state) { state.levels = processedLevels; } -var directionaggregates = { +const directionaggregates = { 'horizontal': ['left', 'right'], 'horizontal_par': ['left', 'right'], 'horizontal_perp': ['left', 'right'], @@ -524,12 +524,12 @@ var directionaggregates = { 'parallel': ['<', '>'] }; -var relativeDirections = ['^', 'v', '<', '>', 'perpendicular', 'parallel']; -var simpleAbsoluteDirections = ['up', 'down', 'left', 'right']; -var simpleRelativeDirections = ['^', 'v', '<', '>']; -var reg_directions_only = /^(\>|\<|\^|v|up|down|left|right|moving|stationary|no|randomdir|random|horizontal|vertical|orthogonal|perpendicular|parallel|action)$/; +const relativeDirections = ['^', 'v', '<', '>', 'perpendicular', 'parallel']; +const simpleAbsoluteDirections = ['up', 'down', 'left', 'right']; +const simpleRelativeDirections = ['^', 'v', '<', '>']; +const reg_directions_only = /^(\>|\<|\^|v|up|down|left|right|moving|stationary|no|randomdir|random|horizontal|vertical|orthogonal|perpendicular|parallel|action)$/; //redeclaring here, i don't know why -var commandwords = ["sfx0", "sfx1", "sfx2", "sfx3", "sfx4", "sfx5", "sfx6", "sfx7", "sfx8", "sfx9", "sfx10", "cancel", "checkpoint", "restart", "win", "message", "again"]; +const commandwords = ["sfx0", "sfx1", "sfx2", "sfx3", "sfx4", "sfx5", "sfx6", "sfx7", "sfx8", "sfx9", "sfx10", "cancel", "checkpoint", "restart", "win", "message", "again"]; function directionalRule(rule) { @@ -1542,9 +1542,9 @@ function convertRelativeDirsToAbsolute(rule) { } } -var relativeDirs = ['^', 'v', '<', '>', 'parallel', 'perpendicular']; //used to index the following +const relativeDirs = ['^', 'v', '<', '>', 'parallel', 'perpendicular']; //used to index the following //I use _par/_perp just to keep track of providence for replacement purposes later. -var relativeDict = { +const relativeDict = { 'right': ['up', 'down', 'left', 'right', 'horizontal_par', 'vertical_perp'], 'up': ['left', 'right', 'down', 'up', 'vertical_par', 'horizontal_perp'], 'down': ['right', 'left', 'up', 'down', 'vertical_par', 'horizontal_perp'], @@ -2517,7 +2517,7 @@ function validSeed(seed) { return /^\s*\d+\s*$/.exec(seed) !== null; } -var soundDirectionIndicatorMasks = { +const soundDirectionIndicatorMasks = { 'up': parseInt('00001', 2), 'down': parseInt('00010', 2), 'left': parseInt('00100', 2), @@ -2528,7 +2528,7 @@ var soundDirectionIndicatorMasks = { '___action____': parseInt('10000', 2) }; -var soundDirectionIndicators = ["up", "down", "left", "right", "horizontal", "vertical", "orthogonal", "___action____"]; +const soundDirectionIndicators = ["up", "down", "left", "right", "horizontal", "vertical", "orthogonal", "___action____"]; function generateSoundData(state) { @@ -2757,7 +2757,7 @@ function formatHomePage(state) { } } -var MAX_ERRORS = 5; +const MAX_ERRORS = 5; function loadFile(str) { var processor = new codeMirrorFn(); diff --git a/src/js/debug.js b/src/js/debug.js index 61b94ddf1..043707bae 100644 --- a/src/js/debug.js +++ b/src/js/debug.js @@ -1,10 +1,10 @@ -var canSetHTMLColors=false; -var canDump=true; +const canSetHTMLColors=false; +const canDump=true; var recordingStartsFromLevel=0; var inputHistory=[]; var compiledText; -var canOpenEditor=true; -var IDE=true; +const canOpenEditor=true; +const IDE=true; var debugger_turnIndex=0; var debug_visualisation_array=[]; diff --git a/src/js/debug_off.js b/src/js/debug_off.js index 927618f48..883949cbc 100644 --- a/src/js/debug_off.js +++ b/src/js/debug_off.js @@ -1,7 +1,7 @@ -var canSetHTMLColors=true; -var canDump=false; -var canOpenEditor=false; -var IDE=false; +const canSetHTMLColors=true; +const canDump=false; +const canOpenEditor=false; +const IDE=false; const diffToVisualize=null; function stripTags(str) { diff --git a/src/js/editor.js b/src/js/editor.js index 0f996d453..39b82ea9c 100644 --- a/src/js/editor.js +++ b/src/js/editor.js @@ -142,23 +142,6 @@ editor.on('change', function(cm, changeObj) { checkEditorDirty(); }); -var mapObj = { - parallel:"∥", - perpendicular:"⊥" -}; - -/* -editor.on("beforeChange", function(instance, change) { - var startline = - for (var i = 0; i < change.text.length; ++i) - text.push(change.text[i].replace(/parallel|perpendicular/gi, function(matched){ - return mapObj[matched]; - })); - - change.update(null, null, text); -});*/ - - code.editorreference = editor; editor.setOption('theme', 'midnight'); diff --git a/src/js/engine.js b/src/js/engine.js index b32382000..f72159f08 100644 --- a/src/js/engine.js +++ b/src/js/engine.js @@ -14,7 +14,7 @@ z to undo, r to restart........... var RandomGen = new RNG(); -var intro_template = [ +const intro_template = [ "..................................", "..................................", "..................................", @@ -30,7 +30,7 @@ var intro_template = [ ".................................." ]; -var messagecontainer_template = [ +const messagecontainer_template = [ "..................................", "..................................", "..................................", @@ -46,7 +46,7 @@ var messagecontainer_template = [ ".................................." ]; -var titletemplate_firstgo = [ +const titletemplate_firstgo = [ "..................................", "..................................", "..................................", @@ -61,7 +61,7 @@ var titletemplate_firstgo = [ ".Z to undo, R to restart..........", ".................................."]; -var titletemplate_select0 = [ +const titletemplate_select0 = [ "..................................", "..................................", "..................................", @@ -76,7 +76,7 @@ var titletemplate_select0 = [ ".Z to undo, R to restart..........", ".................................."]; -var titletemplate_select1 = [ + const titletemplate_select1 = [ "..................................", "..................................", "..................................", @@ -91,8 +91,7 @@ var titletemplate_select1 = [ ".Z to undo, R to restart..........", ".................................."]; - -var titletemplate_firstgo_selected = [ +const titletemplate_firstgo_selected = [ "..................................", "..................................", "..................................", @@ -107,7 +106,7 @@ var titletemplate_firstgo_selected = [ ".Z to undo, R to restart..........", ".................................."]; -var titletemplate_select0_selected = [ +const titletemplate_select0_selected = [ "..................................", "..................................", "..................................", @@ -122,7 +121,7 @@ var titletemplate_select0_selected = [ ".Z to undo, R to restart..........", ".................................."]; -var titletemplate_select1_selected = [ +const titletemplate_select1_selected = [ "..................................", "..................................", "..................................", @@ -138,8 +137,8 @@ var titletemplate_select1_selected = [ "................................."]; var titleImage=[]; -var titleWidth=titletemplate_select1[0].length; -var titleHeight=titletemplate_select1.length; +const titleWidth=titletemplate_select1[0].length; +const titleHeight=titletemplate_select1.length; var textMode=true; var titleScreen=true; var titleMode=0;//1 means there are options @@ -1282,7 +1281,7 @@ Level.prototype.setMovements = function(index, vec) { } -var ellipsisPattern = ['ellipsis']; +const ellipsisPattern = ['ellipsis']; function BitVec(init) { this.data = new Int32Array(init); diff --git a/src/js/font.js b/src/js/font.js index b8751182f..e236fdd0f 100644 --- a/src/js/font.js +++ b/src/js/font.js @@ -1,5 +1,4 @@ - -var font = { +const font = { '0':` 00000 00000 diff --git a/src/js/globalVariables.js b/src/js/globalVariables.js index 892ea74e5..3a3c7621c 100644 --- a/src/js/globalVariables.js +++ b/src/js/globalVariables.js @@ -35,7 +35,7 @@ var throttle_movement=false; var cache_console_messages=false; var quittingTitleScreen=false; var quittingMessageScreen=false; -var deltatime=17; +const deltatime=17; var timer=0; var repeatinterval=150; var autotick=0; diff --git a/src/js/graphics.js b/src/js/graphics.js index f289c3951..ba49fd3f4 100644 --- a/src/js/graphics.js +++ b/src/js/graphics.js @@ -48,7 +48,7 @@ function regenText(spritecanvas,spritectx) { } } -var editor_s_grille=[[0,1,1,1,0],[1,0,0,0,0],[0,1,1,1,0],[0,0,0,0,1],[0,1,1,1,0]]; +const editor_s_grille=[[0,1,1,1,0],[1,0,0,0,0],[0,1,1,1,0],[0,0,0,0,1],[0,1,1,1,0]]; var spriteimages; function regenSpriteImages() { diff --git a/src/js/inputoutput.js b/src/js/inputoutput.js index 79c152152..33d11d750 100644 --- a/src/js/inputoutput.js +++ b/src/js/inputoutput.js @@ -178,7 +178,7 @@ function matchGlyph(inputmask,glyphAndMask) { return '.'; } -var htmlEntityMap = { +const htmlEntityMap = { "&": "&", "<": "<", ">": ">", diff --git a/src/js/layout.js b/src/js/layout.js index 130270fa9..8d0835cf4 100644 --- a/src/js/layout.js +++ b/src/js/layout.js @@ -1,11 +1,11 @@ -var soundbarwidth = 100; +const soundbarwidth = 100; var lowerbarheight = document.getElementById("soundbar").clientHeight; var upperbarheight = document.getElementById("uppertoolbar").clientHeight; var winwidth = window.innerWidth; var winheight = window.innerHeight; var verticaldragbarWidth = document.getElementById("verticaldragbar").clientWidth; var horizontaldragbarHeight = document.getElementById("horizontaldragbar").clientHeight; -var minimumDimension = 100; +const minimumDimension = 100; function resize_widths(verticaldragbarX){ document.getElementById("leftpanel").style.width = verticaldragbarX + "px"; @@ -27,7 +27,7 @@ function resize_heights(horizontaldragbarY){ } function resize_all(e){ - smallmovelimit = 100; + const smallmovelimit = 100; hdiff = window.innerWidth - winwidth; verticaldragbarX = parseInt(document.getElementById("verticaldragbar").style.left.replace("px","")); diff --git a/src/js/sfxr.js b/src/js/sfxr.js index 94ebe692a..d42a20b48 100644 --- a/src/js/sfxr.js +++ b/src/js/sfxr.js @@ -1,15 +1,15 @@ -var SOUND_VOL = 0.25; -var SAMPLE_RATE = 5512; -var BIT_DEPTH = 8; - -var SQUARE = 0; -var SAWTOOTH = 1; -var SINE = 2; -var NOISE = 3; -var TRIANGLE = 4; -var BREAKER = 5; - -var SHAPES = [ +const SOUND_VOL = 0.25; +const SAMPLE_RATE = 5512; +const BIT_DEPTH = 8; + +const SQUARE = 0; +const SAWTOOTH = 1; +const SINE = 2; +const NOISE = 3; +const TRIANGLE = 4; +const BREAKER = 5; + +const SHAPES = [ 'square', 'sawtooth', 'sine', 'noise', 'triangle', 'breaker' ]; @@ -986,7 +986,7 @@ if (typeof exports != 'undefined') { var sfxCache = {}; var cachedSeeds = []; -var CACHE_MAX = 50; +const CACHE_MAX = 50; function cacheSeed(seed){ if (seed in sfxCache) { diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index 7286dec10..b2d8d9232 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -1,5 +1,4 @@ - -var errormessage_testdata = [ +const errormessage_testdata = [ [ `Background missing`, ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\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. = target\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\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["you have to define something to be the background"],1] diff --git a/src/tests/resources/testdata.js b/src/tests/resources/testdata.js index c78a5c276..c0508c6c0 100644 --- a/src/tests/resources/testdata.js +++ b/src/tests/resources/testdata.js @@ -1,4 +1,4 @@ -var testdata = [ +const 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"] diff --git a/src/tests/resources/tests.js b/src/tests/resources/tests.js index bf3873a4f..963d93b3a 100644 --- a/src/tests/resources/tests.js +++ b/src/tests/resources/tests.js @@ -1,6 +1,6 @@ -var inputVals = {0 : "U",1: "L",2:"D",3:"R",4:"A",tick:"T",undo:" UNDO ",restart:" RESTART "}; +const inputVals = {0 : "U",1: "L",2:"D",3:"R",4:"A",tick:"T",undo:" UNDO ",restart:" RESTART "}; function testFunction(td) { From c30a4b2b5c4b33df6dbbebb23e96247320847eb5 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 9 Mar 2022 15:36:51 +0100 Subject: [PATCH 083/122] update qunit 1.12.0->1.23.1 --- src/tests/resources/qunit-1.12.0.js | 2212 --------- .../{qunit-1.12.0.css => qunit-1.23.1.css} | 163 +- src/tests/resources/qunit-1.23.1.js | 4334 +++++++++++++++++ src/tests/tests.html | 4 +- 4 files changed, 4448 insertions(+), 2265 deletions(-) delete mode 100644 src/tests/resources/qunit-1.12.0.js rename src/tests/resources/{qunit-1.12.0.css => qunit-1.23.1.css} (52%) create mode 100644 src/tests/resources/qunit-1.23.1.js diff --git a/src/tests/resources/qunit-1.12.0.js b/src/tests/resources/qunit-1.12.0.js deleted file mode 100644 index 84c73907d..000000000 --- a/src/tests/resources/qunit-1.12.0.js +++ /dev/null @@ -1,2212 +0,0 @@ -/** - * QUnit v1.12.0 - A JavaScript Unit Testing Framework - * - * http://qunitjs.com - * - * Copyright 2013 jQuery Foundation and other contributors - * Released under the MIT license. - * https://jquery.org/license/ - */ - -(function( window ) { - -var QUnit, - assert, - config, - onErrorFnPrev, - testId = 0, - fileName = (sourceFromStacktrace( 0 ) || "" ).replace(/(:\d+)+\)?/, "").replace(/.+\//, ""), - toString = Object.prototype.toString, - hasOwn = Object.prototype.hasOwnProperty, - // Keep a local reference to Date (GH-283) - Date = window.Date, - setTimeout = window.setTimeout, - defined = { - setTimeout: typeof window.setTimeout !== "undefined", - sessionStorage: (function() { - var x = "qunit-test-string"; - try { - sessionStorage.setItem( x, x ); - sessionStorage.removeItem( x ); - return true; - } catch( e ) { - return false; - } - }()) - }, - /** - * Provides a normalized error string, correcting an issue - * with IE 7 (and prior) where Error.prototype.toString is - * not properly implemented - * - * Based on http://es5.github.com/#x15.11.4.4 - * - * @param {String|Error} error - * @return {String} error message - */ - errorString = function( error ) { - var name, message, - errorString = error.toString(); - if ( errorString.substring( 0, 7 ) === "[object" ) { - name = error.name ? error.name.toString() : "Error"; - message = error.message ? error.message.toString() : ""; - if ( name && message ) { - return name + ": " + message; - } else if ( name ) { - return name; - } else if ( message ) { - return message; - } else { - return "Error"; - } - } else { - return errorString; - } - }, - /** - * Makes a clone of an object using only Array or Object as base, - * and copies over the own enumerable properties. - * - * @param {Object} obj - * @return {Object} New object with only the own properties (recursively). - */ - objectValues = function( obj ) { - // Grunt 0.3.x uses an older version of jshint that still has jshint/jshint#392. - /*jshint newcap: false */ - var key, val, - vals = QUnit.is( "array", obj ) ? [] : {}; - for ( key in obj ) { - if ( hasOwn.call( obj, key ) ) { - val = obj[key]; - vals[key] = val === Object(val) ? objectValues(val) : val; - } - } - return vals; - }; - -function Test( settings ) { - extend( this, settings ); - this.assertions = []; - this.testNumber = ++Test.count; -} - -Test.count = 0; - -Test.prototype = { - init: function() { - var a, b, li, - tests = id( "qunit-tests" ); - - if ( tests ) { - b = document.createElement( "strong" ); - b.innerHTML = this.nameHtml; - - // `a` initialized at top of scope - a = document.createElement( "a" ); - a.innerHTML = "Rerun"; - a.href = QUnit.url({ testNumber: this.testNumber }); - - li = document.createElement( "li" ); - li.appendChild( b ); - li.appendChild( a ); - li.className = "running"; - li.id = this.id = "qunit-test-output" + testId++; - - tests.appendChild( li ); - } - }, - setup: function() { - if ( - // Emit moduleStart when we're switching from one module to another - this.module !== config.previousModule || - // They could be equal (both undefined) but if the previousModule property doesn't - // yet exist it means this is the first test in a suite that isn't wrapped in a - // module, in which case we'll just emit a moduleStart event for 'undefined'. - // Without this, reporters can get testStart before moduleStart which is a problem. - !hasOwn.call( config, "previousModule" ) - ) { - if ( hasOwn.call( config, "previousModule" ) ) { - runLoggingCallbacks( "moduleDone", QUnit, { - name: config.previousModule, - failed: config.moduleStats.bad, - passed: config.moduleStats.all - config.moduleStats.bad, - total: config.moduleStats.all - }); - } - config.previousModule = this.module; - config.moduleStats = { all: 0, bad: 0 }; - runLoggingCallbacks( "moduleStart", QUnit, { - name: this.module - }); - } - - config.current = this; - - this.testEnvironment = extend({ - setup: function() {}, - teardown: function() {} - }, this.moduleTestEnvironment ); - - this.started = +new Date(); - runLoggingCallbacks( "testStart", QUnit, { - name: this.testName, - module: this.module - }); - - /*jshint camelcase:false */ - - - /** - * Expose the current test environment. - * - * @deprecated since 1.12.0: Use QUnit.config.current.testEnvironment instead. - */ - QUnit.current_testEnvironment = this.testEnvironment; - - /*jshint camelcase:true */ - - if ( !config.pollution ) { - saveGlobal(); - } - if ( config.notrycatch ) { - this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert ); - return; - } - try { - this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert ); - } catch( e ) { - QUnit.pushFailure( "Setup failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) ); - } - }, - run: function() { - config.current = this; - - var running = id( "qunit-testresult" ); - - if ( running ) { - running.innerHTML = "Running:
    " + this.nameHtml; - } - - if ( this.async ) { - QUnit.stop(); - } - - this.callbackStarted = +new Date(); - - if ( config.notrycatch ) { - this.callback.call( this.testEnvironment, QUnit.assert ); - this.callbackRuntime = +new Date() - this.callbackStarted; - return; - } - - try { - this.callback.call( this.testEnvironment, QUnit.assert ); - this.callbackRuntime = +new Date() - this.callbackStarted; - } catch( e ) { - this.callbackRuntime = +new Date() - this.callbackStarted; - - QUnit.pushFailure( "Died on test #" + (this.assertions.length + 1) + " " + this.stack + ": " + ( e.message || e ), extractStacktrace( e, 0 ) ); - // else next test will carry the responsibility - saveGlobal(); - - // Restart the tests if they're blocking - if ( config.blocking ) { - QUnit.start(); - } - } - }, - teardown: function() { - config.current = this; - if ( config.notrycatch ) { - if ( typeof this.callbackRuntime === "undefined" ) { - this.callbackRuntime = +new Date() - this.callbackStarted; - } - this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert ); - return; - } else { - try { - this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert ); - } catch( e ) { - QUnit.pushFailure( "Teardown failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) ); - } - } - checkPollution(); - }, - finish: function() { - config.current = this; - if ( config.requireExpects && this.expected === null ) { - QUnit.pushFailure( "Expected number of assertions to be defined, but expect() was not called.", this.stack ); - } else if ( this.expected !== null && this.expected !== this.assertions.length ) { - QUnit.pushFailure( "Expected " + this.expected + " assertions, but " + this.assertions.length + " were run", this.stack ); - } else if ( this.expected === null && !this.assertions.length ) { - QUnit.pushFailure( "Expected at least one assertion, but none were run - call expect(0) to accept zero assertions.", this.stack ); - } - - var i, assertion, a, b, time, li, ol, - test = this, - good = 0, - bad = 0, - tests = id( "qunit-tests" ); - - this.runtime = +new Date() - this.started; - config.stats.all += this.assertions.length; - config.moduleStats.all += this.assertions.length; - - if ( tests ) { - ol = document.createElement( "ol" ); - ol.className = "qunit-assert-list"; - - for ( i = 0; i < this.assertions.length; i++ ) { - assertion = this.assertions[i]; - - li = document.createElement( "li" ); - li.className = assertion.result ? "pass" : "fail"; - li.innerHTML = assertion.message || ( assertion.result ? "okay" : "failed" ); - ol.appendChild( li ); - - if ( assertion.result ) { - good++; - } else { - bad++; - config.stats.bad++; - config.moduleStats.bad++; - } - } - - // store result when possible - if ( QUnit.config.reorder && defined.sessionStorage ) { - if ( bad ) { - sessionStorage.setItem( "qunit-test-" + this.module + "-" + this.testName, bad ); - } else { - sessionStorage.removeItem( "qunit-test-" + this.module + "-" + this.testName ); - } - } - - if ( bad === 0 ) { - addClass( ol, "qunit-collapsed" ); - } - - // `b` initialized at top of scope - b = document.createElement( "strong" ); - b.innerHTML = this.nameHtml + " (" + bad + ", " + good + ", " + this.assertions.length + ")"; - - addEvent(b, "click", function() { - var next = b.parentNode.lastChild, - collapsed = hasClass( next, "qunit-collapsed" ); - ( collapsed ? removeClass : addClass )( next, "qunit-collapsed" ); - }); - - addEvent(b, "dblclick", function( e ) { - var target = e && e.target ? e.target : window.event.srcElement; - if ( target.nodeName.toLowerCase() === "span" || target.nodeName.toLowerCase() === "b" ) { - target = target.parentNode; - } - if ( window.location && target.nodeName.toLowerCase() === "strong" ) { - window.location = QUnit.url({ testNumber: test.testNumber }); - } - }); - - // `time` initialized at top of scope - time = document.createElement( "span" ); - time.className = "runtime"; - time.innerHTML = this.runtime + " ms"; - - // `li` initialized at top of scope - li = id( this.id ); - li.className = bad ? "fail" : "pass"; - li.removeChild( li.firstChild ); - a = li.firstChild; - li.appendChild( b ); - li.appendChild( a ); - li.appendChild( time ); - li.appendChild( ol ); - - } else { - for ( i = 0; i < this.assertions.length; i++ ) { - if ( !this.assertions[i].result ) { - bad++; - config.stats.bad++; - config.moduleStats.bad++; - } - } - } - - runLoggingCallbacks( "testDone", QUnit, { - name: this.testName, - module: this.module, - failed: bad, - passed: this.assertions.length - bad, - total: this.assertions.length, - duration: this.runtime - }); - - QUnit.reset(); - - config.current = undefined; - }, - - queue: function() { - var bad, - test = this; - - synchronize(function() { - test.init(); - }); - function run() { - // each of these can by async - synchronize(function() { - test.setup(); - }); - synchronize(function() { - test.run(); - }); - synchronize(function() { - test.teardown(); - }); - synchronize(function() { - test.finish(); - }); - } - - // `bad` initialized at top of scope - // defer when previous test run passed, if storage is available - bad = QUnit.config.reorder && defined.sessionStorage && - +sessionStorage.getItem( "qunit-test-" + this.module + "-" + this.testName ); - - if ( bad ) { - run(); - } else { - synchronize( run, true ); - } - } -}; - -// Root QUnit object. -// `QUnit` initialized at top of scope -QUnit = { - - // call on start of module test to prepend name to all tests - module: function( name, testEnvironment ) { - config.currentModule = name; - config.currentModuleTestEnvironment = testEnvironment; - config.modules[name] = true; - }, - - asyncTest: function( testName, expected, callback ) { - if ( arguments.length === 2 ) { - callback = expected; - expected = null; - } - - QUnit.test( testName, expected, callback, true ); - }, - - test: function( testName, expected, callback, async ) { - var test, - nameHtml = "" + escapeText( testName ) + ""; - - if ( arguments.length === 2 ) { - callback = expected; - expected = null; - } - - if ( config.currentModule ) { - nameHtml = "" + escapeText( config.currentModule ) + ": " + nameHtml; - } - - test = new Test({ - nameHtml: nameHtml, - testName: testName, - expected: expected, - async: async, - callback: callback, - module: config.currentModule, - moduleTestEnvironment: config.currentModuleTestEnvironment, - stack: sourceFromStacktrace( 2 ) - }); - - if ( !validTest( test ) ) { - return; - } - - test.queue(); - }, - - // Specify the number of expected assertions to guarantee that failed test (no assertions are run at all) don't slip through. - expect: function( asserts ) { - if (arguments.length === 1) { - config.current.expected = asserts; - } else { - return config.current.expected; - } - }, - - start: function( count ) { - // QUnit hasn't been initialized yet. - // Note: RequireJS (et al) may delay onLoad - if ( config.semaphore === undefined ) { - QUnit.begin(function() { - // This is triggered at the top of QUnit.load, push start() to the event loop, to allow QUnit.load to finish first - setTimeout(function() { - QUnit.start( count ); - }); - }); - return; - } - - config.semaphore -= count || 1; - // don't start until equal number of stop-calls - if ( config.semaphore > 0 ) { - return; - } - // ignore if start is called more often then stop - if ( config.semaphore < 0 ) { - config.semaphore = 0; - QUnit.pushFailure( "Called start() while already started (QUnit.config.semaphore was 0 already)", null, sourceFromStacktrace(2) ); - return; - } - // A slight delay, to avoid any current callbacks - if ( defined.setTimeout ) { - setTimeout(function() { - if ( config.semaphore > 0 ) { - return; - } - if ( config.timeout ) { - clearTimeout( config.timeout ); - } - - config.blocking = false; - process( true ); - }, 13); - } else { - config.blocking = false; - process( true ); - } - }, - - stop: function( count ) { - config.semaphore += count || 1; - config.blocking = true; - - if ( config.testTimeout && defined.setTimeout ) { - clearTimeout( config.timeout ); - config.timeout = setTimeout(function() { - QUnit.ok( false, "Test timed out" ); - config.semaphore = 1; - QUnit.start(); - }, config.testTimeout ); - } - } -}; - -// `assert` initialized at top of scope -// Assert helpers -// All of these must either call QUnit.push() or manually do: -// - runLoggingCallbacks( "log", .. ); -// - config.current.assertions.push({ .. }); -// We attach it to the QUnit object *after* we expose the public API, -// otherwise `assert` will become a global variable in browsers (#341). -assert = { - /** - * Asserts rough true-ish result. - * @name ok - * @function - * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" ); - */ - ok: function( result, msg ) { - if ( !config.current ) { - throw new Error( "ok() assertion outside test context, was " + sourceFromStacktrace(2) ); - } - result = !!result; - msg = msg || (result ? "okay" : "failed" ); - - var source, - details = { - module: config.current.module, - name: config.current.testName, - result: result, - message: msg - }; - - msg = "" + escapeText( msg ) + ""; - - if ( !result ) { - source = sourceFromStacktrace( 2 ); - if ( source ) { - details.source = source; - msg += "

    Script Editor
    CTRL/ + /Comment/Uncomment selection.
    CTRL/ + SHIFT + UP/DOWN Move current lines up/down.
    Source:
    " + escapeText( source ) + "
    "; - } - } - runLoggingCallbacks( "log", QUnit, details ); - config.current.assertions.push({ - result: result, - message: msg - }); - }, - - /** - * Assert that the first two arguments are equal, with an optional message. - * Prints out both actual and expected values. - * @name equal - * @function - * @example equal( format( "Received {0} bytes.", 2), "Received 2 bytes.", "format() replaces {0} with next argument" ); - */ - equal: function( actual, expected, message ) { - /*jshint eqeqeq:false */ - QUnit.push( expected == actual, actual, expected, message ); - }, - - /** - * @name notEqual - * @function - */ - notEqual: function( actual, expected, message ) { - /*jshint eqeqeq:false */ - QUnit.push( expected != actual, actual, expected, message ); - }, - - /** - * @name propEqual - * @function - */ - propEqual: function( actual, expected, message ) { - actual = objectValues(actual); - expected = objectValues(expected); - QUnit.push( QUnit.equiv(actual, expected), actual, expected, message ); - }, - - /** - * @name notPropEqual - * @function - */ - notPropEqual: function( actual, expected, message ) { - actual = objectValues(actual); - expected = objectValues(expected); - QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message ); - }, - - /** - * @name deepEqual - * @function - */ - deepEqual: function( actual, expected, message ) { - QUnit.push( QUnit.equiv(actual, expected), actual, expected, message ); - }, - - /** - * @name notDeepEqual - * @function - */ - notDeepEqual: function( actual, expected, message ) { - QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message ); - }, - - /** - * @name strictEqual - * @function - */ - strictEqual: function( actual, expected, message ) { - QUnit.push( expected === actual, actual, expected, message ); - }, - - /** - * @name notStrictEqual - * @function - */ - notStrictEqual: function( actual, expected, message ) { - QUnit.push( expected !== actual, actual, expected, message ); - }, - - "throws": function( block, expected, message ) { - var actual, - expectedOutput = expected, - ok = false; - - // 'expected' is optional - if ( typeof expected === "string" ) { - message = expected; - expected = null; - } - - config.current.ignoreGlobalErrors = true; - try { - block.call( config.current.testEnvironment ); - } catch (e) { - actual = e; - } - config.current.ignoreGlobalErrors = false; - - if ( actual ) { - // we don't want to validate thrown error - if ( !expected ) { - ok = true; - expectedOutput = null; - // expected is a regexp - } else if ( QUnit.objectType( expected ) === "regexp" ) { - ok = expected.test( errorString( actual ) ); - // expected is a constructor - } else if ( actual instanceof expected ) { - ok = true; - // expected is a validation function which returns true is validation passed - } else if ( expected.call( {}, actual ) === true ) { - expectedOutput = null; - ok = true; - } - - QUnit.push( ok, actual, expectedOutput, message ); - } else { - QUnit.pushFailure( message, null, "No exception was thrown." ); - } - } -}; - -/** - * @deprecated since 1.8.0 - * Kept assertion helpers in root for backwards compatibility. - */ -extend( QUnit, assert ); - -/** - * @deprecated since 1.9.0 - * Kept root "raises()" for backwards compatibility. - * (Note that we don't introduce assert.raises). - */ -QUnit.raises = assert[ "throws" ]; - -/** - * @deprecated since 1.0.0, replaced with error pushes since 1.3.0 - * Kept to avoid TypeErrors for undefined methods. - */ -QUnit.equals = function() { - QUnit.push( false, false, false, "QUnit.equals has been deprecated since 2009 (e88049a0), use QUnit.equal instead" ); -}; -QUnit.same = function() { - QUnit.push( false, false, false, "QUnit.same has been deprecated since 2009 (e88049a0), use QUnit.deepEqual instead" ); -}; - -// We want access to the constructor's prototype -(function() { - function F() {} - F.prototype = QUnit; - QUnit = new F(); - // Make F QUnit's constructor so that we can add to the prototype later - QUnit.constructor = F; -}()); - -/** - * Config object: Maintain internal state - * Later exposed as QUnit.config - * `config` initialized at top of scope - */ -config = { - // The queue of tests to run - queue: [], - - // block until document ready - blocking: true, - - // when enabled, show only failing tests - // gets persisted through sessionStorage and can be changed in UI via checkbox - hidepassed: false, - - // by default, run previously failed tests first - // very useful in combination with "Hide passed tests" checked - reorder: true, - - // by default, modify document.title when suite is done - altertitle: true, - - // when enabled, all tests must call expect() - requireExpects: false, - - // add checkboxes that are persisted in the query-string - // when enabled, the id is set to `true` as a `QUnit.config` property - urlConfig: [ - { - id: "noglobals", - label: "Check for Globals", - tooltip: "Enabling this will test if any test introduces new properties on the `window` object. Stored as query-strings." - }, - { - id: "notrycatch", - label: "No try-catch", - tooltip: "Enabling this will run tests outside of a try-catch block. Makes debugging exceptions in IE reasonable. Stored as query-strings." - } - ], - - // Set of all modules. - modules: {}, - - // logging callback queues - begin: [], - done: [], - log: [], - testStart: [], - testDone: [], - moduleStart: [], - moduleDone: [] -}; - -// Export global variables, unless an 'exports' object exists, -// in that case we assume we're in CommonJS (dealt with on the bottom of the script) -if ( typeof exports === "undefined" ) { - extend( window, QUnit.constructor.prototype ); - - // Expose QUnit object - window.QUnit = QUnit; -} - -// Initialize more QUnit.config and QUnit.urlParams -(function() { - var i, - location = window.location || { search: "", protocol: "file:" }, - params = location.search.slice( 1 ).split( "&" ), - length = params.length, - urlParams = {}, - current; - - if ( params[ 0 ] ) { - for ( i = 0; i < length; i++ ) { - current = params[ i ].split( "=" ); - current[ 0 ] = decodeURIComponent( current[ 0 ] ); - // allow just a key to turn on a flag, e.g., test.html?noglobals - current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true; - urlParams[ current[ 0 ] ] = current[ 1 ]; - } - } - - QUnit.urlParams = urlParams; - - // String search anywhere in moduleName+testName - config.filter = urlParams.filter; - - // Exact match of the module name - config.module = urlParams.module; - - config.testNumber = parseInt( urlParams.testNumber, 10 ) || null; - - // Figure out if we're running the tests from a server or not - QUnit.isLocal = location.protocol === "file:"; -}()); - -// Extend QUnit object, -// these after set here because they should not be exposed as global functions -extend( QUnit, { - assert: assert, - - config: config, - - // Initialize the configuration options - init: function() { - extend( config, { - stats: { all: 0, bad: 0 }, - moduleStats: { all: 0, bad: 0 }, - started: +new Date(), - updateRate: 1000, - blocking: false, - autostart: true, - autorun: false, - filter: "", - queue: [], - semaphore: 1 - }); - - var tests, banner, result, - qunit = id( "qunit" ); - - if ( qunit ) { - qunit.innerHTML = - "

    " + escapeText( document.title ) + "

    " + - "

    " + - "
    " + - "

    " + - "
      "; - } - - tests = id( "qunit-tests" ); - banner = id( "qunit-banner" ); - result = id( "qunit-testresult" ); - - if ( tests ) { - tests.innerHTML = ""; - } - - if ( banner ) { - banner.className = ""; - } - - if ( result ) { - result.parentNode.removeChild( result ); - } - - if ( tests ) { - result = document.createElement( "p" ); - result.id = "qunit-testresult"; - result.className = "result"; - tests.parentNode.insertBefore( result, tests ); - result.innerHTML = "Running...
       "; - } - }, - - // Resets the test setup. Useful for tests that modify the DOM. - /* - DEPRECATED: Use multiple tests instead of resetting inside a test. - Use testStart or testDone for custom cleanup. - This method will throw an error in 2.0, and will be removed in 2.1 - */ - reset: function() { - var fixture = id( "qunit-fixture" ); - if ( fixture ) { - fixture.innerHTML = config.fixture; - } - }, - - // Trigger an event on an element. - // @example triggerEvent( document.body, "click" ); - triggerEvent: function( elem, type, event ) { - if ( document.createEvent ) { - event = document.createEvent( "MouseEvents" ); - event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView, - 0, 0, 0, 0, 0, false, false, false, false, 0, null); - - elem.dispatchEvent( event ); - } else if ( elem.fireEvent ) { - elem.fireEvent( "on" + type ); - } - }, - - // Safe object type checking - is: function( type, obj ) { - return QUnit.objectType( obj ) === type; - }, - - objectType: function( obj ) { - if ( typeof obj === "undefined" ) { - return "undefined"; - // consider: typeof null === object - } - if ( obj === null ) { - return "null"; - } - - var match = toString.call( obj ).match(/^\[object\s(.*)\]$/), - type = match && match[1] || ""; - - switch ( type ) { - case "Number": - if ( isNaN(obj) ) { - return "nan"; - } - return "number"; - case "String": - case "Boolean": - case "Array": - case "Date": - case "RegExp": - case "Function": - return type.toLowerCase(); - } - if ( typeof obj === "object" ) { - return "object"; - } - return undefined; - }, - - push: function( result, actual, expected, message ) { - if ( !config.current ) { - throw new Error( "assertion outside test context, was " + sourceFromStacktrace() ); - } - - var output, source, - details = { - module: config.current.module, - name: config.current.testName, - result: result, - message: message, - actual: actual, - expected: expected - }; - - message = escapeText( message ) || ( result ? "okay" : "failed" ); - message = "" + message + ""; - output = message; - - if ( !result ) { - expected = escapeText( QUnit.jsDump.parse(expected) ); - actual = escapeText( QUnit.jsDump.parse(actual) ); - output += ""; - - if ( actual !== expected ) { - output += ""; - output += ""; - } - - source = sourceFromStacktrace(); - - if ( source ) { - details.source = source; - output += ""; - } - - output += "
      Expected:
      " + expected + "
      Result:
      " + actual + "
      Diff:
      " + QUnit.diff( expected, actual ) + "
      Source:
      " + escapeText( source ) + "
      "; - } - - runLoggingCallbacks( "log", QUnit, details ); - - config.current.assertions.push({ - result: !!result, - message: output - }); - }, - - pushFailure: function( message, source, actual ) { - if ( !config.current ) { - throw new Error( "pushFailure() assertion outside test context, was " + sourceFromStacktrace(2) ); - } - - var output, - details = { - module: config.current.module, - name: config.current.testName, - result: false, - message: message - }; - - message = escapeText( message ) || "error"; - message = "" + message + ""; - output = message; - - output += ""; - - if ( actual ) { - output += ""; - } - - if ( source ) { - details.source = source; - output += ""; - } - - output += "
      Result:
      " + escapeText( actual ) + "
      Source:
      " + escapeText( source ) + "
      "; - - runLoggingCallbacks( "log", QUnit, details ); - - config.current.assertions.push({ - result: false, - message: output - }); - }, - - url: function( params ) { - params = extend( extend( {}, QUnit.urlParams ), params ); - var key, - querystring = "?"; - - for ( key in params ) { - if ( hasOwn.call( params, key ) ) { - querystring += encodeURIComponent( key ) + "=" + - encodeURIComponent( params[ key ] ) + "&"; - } - } - return window.location.protocol + "//" + window.location.host + - window.location.pathname + querystring.slice( 0, -1 ); - }, - - extend: extend, - id: id, - addEvent: addEvent, - addClass: addClass, - hasClass: hasClass, - removeClass: removeClass - // load, equiv, jsDump, diff: Attached later -}); - -/** - * @deprecated: Created for backwards compatibility with test runner that set the hook function - * into QUnit.{hook}, instead of invoking it and passing the hook function. - * QUnit.constructor is set to the empty F() above so that we can add to it's prototype here. - * Doing this allows us to tell if the following methods have been overwritten on the actual - * QUnit object. - */ -extend( QUnit.constructor.prototype, { - - // Logging callbacks; all receive a single argument with the listed properties - // run test/logs.html for any related changes - begin: registerLoggingCallback( "begin" ), - - // done: { failed, passed, total, runtime } - done: registerLoggingCallback( "done" ), - - // log: { result, actual, expected, message } - log: registerLoggingCallback( "log" ), - - // testStart: { name } - testStart: registerLoggingCallback( "testStart" ), - - // testDone: { name, failed, passed, total, duration } - testDone: registerLoggingCallback( "testDone" ), - - // moduleStart: { name } - moduleStart: registerLoggingCallback( "moduleStart" ), - - // moduleDone: { name, failed, passed, total } - moduleDone: registerLoggingCallback( "moduleDone" ) -}); - -if ( typeof document === "undefined" || document.readyState === "complete" ) { - config.autorun = true; -} - -QUnit.load = function() { - runLoggingCallbacks( "begin", QUnit, {} ); - - // Initialize the config, saving the execution queue - var banner, filter, i, label, len, main, ol, toolbar, userAgent, val, - urlConfigCheckboxesContainer, urlConfigCheckboxes, moduleFilter, - numModules = 0, - moduleNames = [], - moduleFilterHtml = "", - urlConfigHtml = "", - oldconfig = extend( {}, config ); - - QUnit.init(); - extend(config, oldconfig); - - config.blocking = false; - - len = config.urlConfig.length; - - for ( i = 0; i < len; i++ ) { - val = config.urlConfig[i]; - if ( typeof val === "string" ) { - val = { - id: val, - label: val, - tooltip: "[no tooltip available]" - }; - } - config[ val.id ] = QUnit.urlParams[ val.id ]; - urlConfigHtml += ""; - } - for ( i in config.modules ) { - if ( config.modules.hasOwnProperty( i ) ) { - moduleNames.push(i); - } - } - numModules = moduleNames.length; - moduleNames.sort( function( a, b ) { - return a.localeCompare( b ); - }); - moduleFilterHtml += ""; - - // `userAgent` initialized at top of scope - userAgent = id( "qunit-userAgent" ); - if ( userAgent ) { - userAgent.innerHTML = navigator.userAgent; - } - - // `banner` initialized at top of scope - banner = id( "qunit-header" ); - if ( banner ) { - banner.innerHTML = "" + banner.innerHTML + " "; - } - - // `toolbar` initialized at top of scope - toolbar = id( "qunit-testrunner-toolbar" ); - if ( toolbar ) { - // `filter` initialized at top of scope - filter = document.createElement( "input" ); - filter.type = "checkbox"; - filter.id = "qunit-filter-pass"; - - addEvent( filter, "click", function() { - var tmp, - ol = document.getElementById( "qunit-tests" ); - - if ( filter.checked ) { - ol.className = ol.className + " hidepass"; - } else { - tmp = " " + ol.className.replace( /[\n\t\r]/g, " " ) + " "; - ol.className = tmp.replace( / hidepass /, " " ); - } - if ( defined.sessionStorage ) { - if (filter.checked) { - sessionStorage.setItem( "qunit-filter-passed-tests", "true" ); - } else { - sessionStorage.removeItem( "qunit-filter-passed-tests" ); - } - } - }); - - if ( config.hidepassed || defined.sessionStorage && sessionStorage.getItem( "qunit-filter-passed-tests" ) ) { - filter.checked = true; - // `ol` initialized at top of scope - ol = document.getElementById( "qunit-tests" ); - ol.className = ol.className + " hidepass"; - } - toolbar.appendChild( filter ); - - // `label` initialized at top of scope - label = document.createElement( "label" ); - label.setAttribute( "for", "qunit-filter-pass" ); - label.setAttribute( "title", "Only show tests and assertions that fail. Stored in sessionStorage." ); - label.innerHTML = "Hide passed tests"; - toolbar.appendChild( label ); - - urlConfigCheckboxesContainer = document.createElement("span"); - urlConfigCheckboxesContainer.innerHTML = urlConfigHtml; - urlConfigCheckboxes = urlConfigCheckboxesContainer.getElementsByTagName("input"); - // For oldIE support: - // * Add handlers to the individual elements instead of the container - // * Use "click" instead of "change" - // * Fallback from event.target to event.srcElement - addEvents( urlConfigCheckboxes, "click", function( event ) { - var params = {}, - target = event.target || event.srcElement; - params[ target.name ] = target.checked ? true : undefined; - window.location = QUnit.url( params ); - }); - toolbar.appendChild( urlConfigCheckboxesContainer ); - - if (numModules > 1) { - moduleFilter = document.createElement( "span" ); - moduleFilter.setAttribute( "id", "qunit-modulefilter-container" ); - moduleFilter.innerHTML = moduleFilterHtml; - addEvent( moduleFilter.lastChild, "change", function() { - var selectBox = moduleFilter.getElementsByTagName("select")[0], - selectedModule = decodeURIComponent(selectBox.options[selectBox.selectedIndex].value); - - window.location = QUnit.url({ - module: ( selectedModule === "" ) ? undefined : selectedModule, - // Remove any existing filters - filter: undefined, - testNumber: undefined - }); - }); - toolbar.appendChild(moduleFilter); - } - } - - // `main` initialized at top of scope - main = id( "qunit-fixture" ); - if ( main ) { - config.fixture = main.innerHTML; - } - - if ( config.autostart ) { - QUnit.start(); - } -}; - -addEvent( window, "load", QUnit.load ); - -// `onErrorFnPrev` initialized at top of scope -// Preserve other handlers -onErrorFnPrev = window.onerror; - -// Cover uncaught exceptions -// Returning true will suppress the default browser handler, -// returning false will let it run. -window.onerror = function ( error, filePath, linerNr ) { - var ret = false; - if ( onErrorFnPrev ) { - ret = onErrorFnPrev( error, filePath, linerNr ); - } - - // Treat return value as window.onerror itself does, - // Only do our handling if not suppressed. - if ( ret !== true ) { - if ( QUnit.config.current ) { - if ( QUnit.config.current.ignoreGlobalErrors ) { - return true; - } - QUnit.pushFailure( error, filePath + ":" + linerNr ); - } else { - QUnit.test( "global failure", extend( function() { - QUnit.pushFailure( error, filePath + ":" + linerNr ); - }, { validTest: validTest } ) ); - } - return false; - } - - return ret; -}; - -function done() { - config.autorun = true; - - // Log the last module results - if ( config.currentModule ) { - runLoggingCallbacks( "moduleDone", QUnit, { - name: config.currentModule, - failed: config.moduleStats.bad, - passed: config.moduleStats.all - config.moduleStats.bad, - total: config.moduleStats.all - }); - } - delete config.previousModule; - - var i, key, - banner = id( "qunit-banner" ), - tests = id( "qunit-tests" ), - runtime = +new Date() - config.started, - passed = config.stats.all - config.stats.bad, - html = [ - "Tests completed in ", - runtime, - " milliseconds.
      ", - "", - passed, - " assertions of ", - config.stats.all, - " passed, ", - config.stats.bad, - " failed." - ].join( "" ); - - if ( banner ) { - banner.className = ( config.stats.bad ? "qunit-fail" : "qunit-pass" ); - } - - if ( tests ) { - id( "qunit-testresult" ).innerHTML = html; - } - - if ( config.altertitle && typeof document !== "undefined" && document.title ) { - // show ✖ for good, ✔ for bad suite result in title - // use escape sequences in case file gets loaded with non-utf-8-charset - document.title = [ - ( config.stats.bad ? "\u2716" : "\u2714" ), - document.title.replace( /^[\u2714\u2716] /i, "" ) - ].join( " " ); - } - - // clear own sessionStorage items if all tests passed - if ( config.reorder && defined.sessionStorage && config.stats.bad === 0 ) { - // `key` & `i` initialized at top of scope - for ( i = 0; i < sessionStorage.length; i++ ) { - key = sessionStorage.key( i++ ); - if ( key.indexOf( "qunit-test-" ) === 0 ) { - sessionStorage.removeItem( key ); - } - } - } - - // scroll back to top to show results - if ( window.scrollTo ) { - window.scrollTo(0, 0); - } - - runLoggingCallbacks( "done", QUnit, { - failed: config.stats.bad, - passed: passed, - total: config.stats.all, - runtime: runtime - }); -} - -/** @return Boolean: true if this test should be ran */ -function validTest( test ) { - var include, - filter = config.filter && config.filter.toLowerCase(), - module = config.module && config.module.toLowerCase(), - fullName = (test.module + ": " + test.testName).toLowerCase(); - - // Internally-generated tests are always valid - if ( test.callback && test.callback.validTest === validTest ) { - delete test.callback.validTest; - return true; - } - - if ( config.testNumber ) { - return test.testNumber === config.testNumber; - } - - if ( module && ( !test.module || test.module.toLowerCase() !== module ) ) { - return false; - } - - if ( !filter ) { - return true; - } - - include = filter.charAt( 0 ) !== "!"; - if ( !include ) { - filter = filter.slice( 1 ); - } - - // If the filter matches, we need to honour include - if ( fullName.indexOf( filter ) !== -1 ) { - return include; - } - - // Otherwise, do the opposite - return !include; -} - -// so far supports only Firefox, Chrome and Opera (buggy), Safari (for real exceptions) -// Later Safari and IE10 are supposed to support error.stack as well -// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack -function extractStacktrace( e, offset ) { - offset = offset === undefined ? 3 : offset; - - var stack, include, i; - - if ( e.stacktrace ) { - // Opera - return e.stacktrace.split( "\n" )[ offset + 3 ]; - } else if ( e.stack ) { - // Firefox, Chrome - stack = e.stack.split( "\n" ); - if (/^error$/i.test( stack[0] ) ) { - stack.shift(); - } - if ( fileName ) { - include = []; - for ( i = offset; i < stack.length; i++ ) { - if ( stack[ i ].indexOf( fileName ) !== -1 ) { - break; - } - include.push( stack[ i ] ); - } - if ( include.length ) { - return include.join( "\n" ); - } - } - return stack[ offset ]; - } else if ( e.sourceURL ) { - // Safari, PhantomJS - // hopefully one day Safari provides actual stacktraces - // exclude useless self-reference for generated Error objects - if ( /qunit.js$/.test( e.sourceURL ) ) { - return; - } - // for actual exceptions, this is useful - return e.sourceURL + ":" + e.line; - } -} -function sourceFromStacktrace( offset ) { - try { - throw new Error(); - } catch ( e ) { - return extractStacktrace( e, offset ); - } -} - -/** - * Escape text for attribute or text content. - */ -function escapeText( s ) { - if ( !s ) { - return ""; - } - s = s + ""; - // Both single quotes and double quotes (for attributes) - return s.replace( /['"<>&]/g, function( s ) { - switch( s ) { - case "'": - return "'"; - case "\"": - return """; - case "<": - return "<"; - case ">": - return ">"; - case "&": - return "&"; - } - }); -} - -function synchronize( callback, last ) { - config.queue.push( callback ); - - if ( config.autorun && !config.blocking ) { - process( last ); - } -} - -function process( last ) { - function next() { - process( last ); - } - var start = new Date().getTime(); - config.depth = config.depth ? config.depth + 1 : 1; - - while ( config.queue.length && !config.blocking ) { - if ( !defined.setTimeout || config.updateRate <= 0 || ( ( new Date().getTime() - start ) < config.updateRate ) ) { - config.queue.shift()(); - } else { - setTimeout( next, 13 ); - break; - } - } - config.depth--; - if ( last && !config.blocking && !config.queue.length && config.depth === 0 ) { - done(); - } -} - -function saveGlobal() { - config.pollution = []; - - if ( config.noglobals ) { - for ( var key in window ) { - if ( hasOwn.call( window, key ) ) { - // in Opera sometimes DOM element ids show up here, ignore them - if ( /^qunit-test-output/.test( key ) ) { - continue; - } - config.pollution.push( key ); - } - } - } -} - -function checkPollution() { - var newGlobals, - deletedGlobals, - old = config.pollution; - - saveGlobal(); - - newGlobals = diff( config.pollution, old ); - if ( newGlobals.length > 0 ) { - QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join(", ") ); - } - - deletedGlobals = diff( old, config.pollution ); - if ( deletedGlobals.length > 0 ) { - QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join(", ") ); - } -} - -// returns a new Array with the elements that are in a but not in b -function diff( a, b ) { - var i, j, - result = a.slice(); - - for ( i = 0; i < result.length; i++ ) { - for ( j = 0; j < b.length; j++ ) { - if ( result[i] === b[j] ) { - result.splice( i, 1 ); - i--; - break; - } - } - } - return result; -} - -function extend( a, b ) { - for ( var prop in b ) { - if ( hasOwn.call( b, prop ) ) { - // Avoid "Member not found" error in IE8 caused by messing with window.constructor - if ( !( prop === "constructor" && a === window ) ) { - if ( b[ prop ] === undefined ) { - delete a[ prop ]; - } else { - a[ prop ] = b[ prop ]; - } - } - } - } - - return a; -} - -/** - * @param {HTMLElement} elem - * @param {string} type - * @param {Function} fn - */ -function addEvent( elem, type, fn ) { - // Standards-based browsers - if ( elem.addEventListener ) { - elem.addEventListener( type, fn, false ); - // IE - } else { - elem.attachEvent( "on" + type, fn ); - } -} - -/** - * @param {Array|NodeList} elems - * @param {string} type - * @param {Function} fn - */ -function addEvents( elems, type, fn ) { - var i = elems.length; - while ( i-- ) { - addEvent( elems[i], type, fn ); - } -} - -function hasClass( elem, name ) { - return (" " + elem.className + " ").indexOf(" " + name + " ") > -1; -} - -function addClass( elem, name ) { - if ( !hasClass( elem, name ) ) { - elem.className += (elem.className ? " " : "") + name; - } -} - -function removeClass( elem, name ) { - var set = " " + elem.className + " "; - // Class name may appear multiple times - while ( set.indexOf(" " + name + " ") > -1 ) { - set = set.replace(" " + name + " " , " "); - } - // If possible, trim it for prettiness, but not necessarily - elem.className = typeof set.trim === "function" ? set.trim() : set.replace(/^\s+|\s+$/g, ""); -} - -function id( name ) { - return !!( typeof document !== "undefined" && document && document.getElementById ) && - document.getElementById( name ); -} - -function registerLoggingCallback( key ) { - return function( callback ) { - config[key].push( callback ); - }; -} - -// Supports deprecated method of completely overwriting logging callbacks -function runLoggingCallbacks( key, scope, args ) { - var i, callbacks; - if ( QUnit.hasOwnProperty( key ) ) { - QUnit[ key ].call(scope, args ); - } else { - callbacks = config[ key ]; - for ( i = 0; i < callbacks.length; i++ ) { - callbacks[ i ].call( scope, args ); - } - } -} - -// Test for equality any JavaScript type. -// Author: Philippe Rathé -QUnit.equiv = (function() { - - // Call the o related callback with the given arguments. - function bindCallbacks( o, callbacks, args ) { - var prop = QUnit.objectType( o ); - if ( prop ) { - if ( QUnit.objectType( callbacks[ prop ] ) === "function" ) { - return callbacks[ prop ].apply( callbacks, args ); - } else { - return callbacks[ prop ]; // or undefined - } - } - } - - // the real equiv function - var innerEquiv, - // stack to decide between skip/abort functions - callers = [], - // stack to avoiding loops from circular referencing - parents = [], - parentsB = [], - - getProto = Object.getPrototypeOf || function ( obj ) { - /*jshint camelcase:false */ - return obj.__proto__; - }, - callbacks = (function () { - - // for string, boolean, number and null - function useStrictEquality( b, a ) { - /*jshint eqeqeq:false */ - if ( b instanceof a.constructor || a instanceof b.constructor ) { - // to catch short annotation VS 'new' annotation of a - // declaration - // e.g. var i = 1; - // var j = new Number(1); - return a == b; - } else { - return a === b; - } - } - - return { - "string": useStrictEquality, - "boolean": useStrictEquality, - "number": useStrictEquality, - "null": useStrictEquality, - "undefined": useStrictEquality, - - "nan": function( b ) { - return isNaN( b ); - }, - - "date": function( b, a ) { - return QUnit.objectType( b ) === "date" && a.valueOf() === b.valueOf(); - }, - - "regexp": function( b, a ) { - return QUnit.objectType( b ) === "regexp" && - // the regex itself - a.source === b.source && - // and its modifiers - a.global === b.global && - // (gmi) ... - a.ignoreCase === b.ignoreCase && - a.multiline === b.multiline && - a.sticky === b.sticky; - }, - - // - skip when the property is a method of an instance (OOP) - // - abort otherwise, - // initial === would have catch identical references anyway - "function": function() { - var caller = callers[callers.length - 1]; - return caller !== Object && typeof caller !== "undefined"; - }, - - "array": function( b, a ) { - var i, j, len, loop, aCircular, bCircular; - - // b could be an object literal here - if ( QUnit.objectType( b ) !== "array" ) { - return false; - } - - len = a.length; - if ( len !== b.length ) { - // safe and faster - return false; - } - - // track reference to avoid circular references - parents.push( a ); - parentsB.push( b ); - for ( i = 0; i < len; i++ ) { - loop = false; - for ( j = 0; j < parents.length; j++ ) { - aCircular = parents[j] === a[i]; - bCircular = parentsB[j] === b[i]; - if ( aCircular || bCircular ) { - if ( a[i] === b[i] || aCircular && bCircular ) { - loop = true; - } else { - parents.pop(); - parentsB.pop(); - return false; - } - } - } - if ( !loop && !innerEquiv(a[i], b[i]) ) { - parents.pop(); - parentsB.pop(); - return false; - } - } - parents.pop(); - parentsB.pop(); - return true; - }, - - "object": function( b, a ) { - /*jshint forin:false */ - var i, j, loop, aCircular, bCircular, - // Default to true - eq = true, - aProperties = [], - bProperties = []; - - // comparing constructors is more strict than using - // instanceof - if ( a.constructor !== b.constructor ) { - // Allow objects with no prototype to be equivalent to - // objects with Object as their constructor. - if ( !(( getProto(a) === null && getProto(b) === Object.prototype ) || - ( getProto(b) === null && getProto(a) === Object.prototype ) ) ) { - return false; - } - } - - // stack constructor before traversing properties - callers.push( a.constructor ); - - // track reference to avoid circular references - parents.push( a ); - parentsB.push( b ); - - // be strict: don't ensure hasOwnProperty and go deep - for ( i in a ) { - loop = false; - for ( j = 0; j < parents.length; j++ ) { - aCircular = parents[j] === a[i]; - bCircular = parentsB[j] === b[i]; - if ( aCircular || bCircular ) { - if ( a[i] === b[i] || aCircular && bCircular ) { - loop = true; - } else { - eq = false; - break; - } - } - } - aProperties.push(i); - if ( !loop && !innerEquiv(a[i], b[i]) ) { - eq = false; - break; - } - } - - parents.pop(); - parentsB.pop(); - callers.pop(); // unstack, we are done - - for ( i in b ) { - bProperties.push( i ); // collect b's properties - } - - // Ensures identical properties name - return eq && innerEquiv( aProperties.sort(), bProperties.sort() ); - } - }; - }()); - - innerEquiv = function() { // can take multiple arguments - var args = [].slice.apply( arguments ); - if ( args.length < 2 ) { - return true; // end transition - } - - return (function( a, b ) { - if ( a === b ) { - return true; // catch the most you can - } else if ( a === null || b === null || typeof a === "undefined" || - typeof b === "undefined" || - QUnit.objectType(a) !== QUnit.objectType(b) ) { - return false; // don't lose time with error prone cases - } else { - return bindCallbacks(a, callbacks, [ b, a ]); - } - - // apply transition with (1..n) arguments - }( args[0], args[1] ) && innerEquiv.apply( this, args.splice(1, args.length - 1 )) ); - }; - - return innerEquiv; -}()); - -/** - * jsDump Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com | - * http://flesler.blogspot.com Licensed under BSD - * (http://www.opensource.org/licenses/bsd-license.php) Date: 5/15/2008 - * - * @projectDescription Advanced and extensible data dumping for Javascript. - * @version 1.0.0 - * @author Ariel Flesler - * @link {http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html} - */ -QUnit.jsDump = (function() { - function quote( str ) { - return "\"" + str.toString().replace( /"/g, "\\\"" ) + "\""; - } - function literal( o ) { - return o + ""; - } - function join( pre, arr, post ) { - var s = jsDump.separator(), - base = jsDump.indent(), - inner = jsDump.indent(1); - if ( arr.join ) { - arr = arr.join( "," + s + inner ); - } - if ( !arr ) { - return pre + post; - } - return [ pre, inner + arr, base + post ].join(s); - } - function array( arr, stack ) { - var i = arr.length, ret = new Array(i); - this.up(); - while ( i-- ) { - ret[i] = this.parse( arr[i] , undefined , stack); - } - this.down(); - return join( "[", ret, "]" ); - } - - var reName = /^function (\w+)/, - jsDump = { - // type is used mostly internally, you can fix a (custom)type in advance - parse: function( obj, type, stack ) { - stack = stack || [ ]; - var inStack, res, - parser = this.parsers[ type || this.typeOf(obj) ]; - - type = typeof parser; - inStack = inArray( obj, stack ); - - if ( inStack !== -1 ) { - return "recursion(" + (inStack - stack.length) + ")"; - } - if ( type === "function" ) { - stack.push( obj ); - res = parser.call( this, obj, stack ); - stack.pop(); - return res; - } - return ( type === "string" ) ? parser : this.parsers.error; - }, - typeOf: function( obj ) { - var type; - if ( obj === null ) { - type = "null"; - } else if ( typeof obj === "undefined" ) { - type = "undefined"; - } else if ( QUnit.is( "regexp", obj) ) { - type = "regexp"; - } else if ( QUnit.is( "date", obj) ) { - type = "date"; - } else if ( QUnit.is( "function", obj) ) { - type = "function"; - } else if ( typeof obj.setInterval !== undefined && typeof obj.document !== "undefined" && typeof obj.nodeType === "undefined" ) { - type = "window"; - } else if ( obj.nodeType === 9 ) { - type = "document"; - } else if ( obj.nodeType ) { - type = "node"; - } else if ( - // native arrays - toString.call( obj ) === "[object Array]" || - // NodeList objects - ( typeof obj.length === "number" && typeof obj.item !== "undefined" && ( obj.length ? obj.item(0) === obj[0] : ( obj.item( 0 ) === null && typeof obj[0] === "undefined" ) ) ) - ) { - type = "array"; - } else if ( obj.constructor === Error.prototype.constructor ) { - type = "error"; - } else { - type = typeof obj; - } - return type; - }, - separator: function() { - return this.multiline ? this.HTML ? "
      " : "\n" : this.HTML ? " " : " "; - }, - // extra can be a number, shortcut for increasing-calling-decreasing - indent: function( extra ) { - if ( !this.multiline ) { - return ""; - } - var chr = this.indentChar; - if ( this.HTML ) { - chr = chr.replace( /\t/g, " " ).replace( / /g, " " ); - } - return new Array( this.depth + ( extra || 0 ) ).join(chr); - }, - up: function( a ) { - this.depth += a || 1; - }, - down: function( a ) { - this.depth -= a || 1; - }, - setParser: function( name, parser ) { - this.parsers[name] = parser; - }, - // The next 3 are exposed so you can use them - quote: quote, - literal: literal, - join: join, - // - depth: 1, - // This is the list of parsers, to modify them, use jsDump.setParser - parsers: { - window: "[Window]", - document: "[Document]", - error: function(error) { - return "Error(\"" + error.message + "\")"; - }, - unknown: "[Unknown]", - "null": "null", - "undefined": "undefined", - "function": function( fn ) { - var ret = "function", - // functions never have name in IE - name = "name" in fn ? fn.name : (reName.exec(fn) || [])[1]; - - if ( name ) { - ret += " " + name; - } - ret += "( "; - - ret = [ ret, QUnit.jsDump.parse( fn, "functionArgs" ), "){" ].join( "" ); - return join( ret, QUnit.jsDump.parse(fn,"functionCode" ), "}" ); - }, - array: array, - nodelist: array, - "arguments": array, - object: function( map, stack ) { - /*jshint forin:false */ - var ret = [ ], keys, key, val, i; - QUnit.jsDump.up(); - keys = []; - for ( key in map ) { - keys.push( key ); - } - keys.sort(); - for ( i = 0; i < keys.length; i++ ) { - key = keys[ i ]; - val = map[ key ]; - ret.push( QUnit.jsDump.parse( key, "key" ) + ": " + QUnit.jsDump.parse( val, undefined, stack ) ); - } - QUnit.jsDump.down(); - return join( "{", ret, "}" ); - }, - node: function( node ) { - var len, i, val, - open = QUnit.jsDump.HTML ? "<" : "<", - close = QUnit.jsDump.HTML ? ">" : ">", - tag = node.nodeName.toLowerCase(), - ret = open + tag, - attrs = node.attributes; - - if ( attrs ) { - for ( i = 0, len = attrs.length; i < len; i++ ) { - val = attrs[i].nodeValue; - // IE6 includes all attributes in .attributes, even ones not explicitly set. - // Those have values like undefined, null, 0, false, "" or "inherit". - if ( val && val !== "inherit" ) { - ret += " " + attrs[i].nodeName + "=" + QUnit.jsDump.parse( val, "attribute" ); - } - } - } - ret += close; - - // Show content of TextNode or CDATASection - if ( node.nodeType === 3 || node.nodeType === 4 ) { - ret += node.nodeValue; - } - - return ret + open + "/" + tag + close; - }, - // function calls it internally, it's the arguments part of the function - functionArgs: function( fn ) { - var args, - l = fn.length; - - if ( !l ) { - return ""; - } - - args = new Array(l); - while ( l-- ) { - // 97 is 'a' - args[l] = String.fromCharCode(97+l); - } - return " " + args.join( ", " ) + " "; - }, - // object calls it internally, the key part of an item in a map - key: quote, - // function calls it internally, it's the content of the function - functionCode: "[code]", - // node calls it internally, it's an html attribute value - attribute: quote, - string: quote, - date: quote, - regexp: literal, - number: literal, - "boolean": literal - }, - // if true, entities are escaped ( <, >, \t, space and \n ) - HTML: false, - // indentation unit - indentChar: " ", - // if true, items in a collection, are separated by a \n, else just a space. - multiline: true - }; - - return jsDump; -}()); - -// from jquery.js -function inArray( elem, array ) { - if ( array.indexOf ) { - return array.indexOf( elem ); - } - - for ( var i = 0, length = array.length; i < length; i++ ) { - if ( array[ i ] === elem ) { - return i; - } - } - - return -1; -} - -/* - * Javascript Diff Algorithm - * By John Resig (http://ejohn.org/) - * Modified by Chu Alan "sprite" - * - * Released under the MIT license. - * - * More Info: - * http://ejohn.org/projects/javascript-diff-algorithm/ - * - * Usage: QUnit.diff(expected, actual) - * - * QUnit.diff( "the quick brown fox jumped over", "the quick fox jumps over" ) == "the quick brown fox jumped jumps over" - */ -QUnit.diff = (function() { - /*jshint eqeqeq:false, eqnull:true */ - function diff( o, n ) { - var i, - ns = {}, - os = {}; - - for ( i = 0; i < n.length; i++ ) { - if ( !hasOwn.call( ns, n[i] ) ) { - ns[ n[i] ] = { - rows: [], - o: null - }; - } - ns[ n[i] ].rows.push( i ); - } - - for ( i = 0; i < o.length; i++ ) { - if ( !hasOwn.call( os, o[i] ) ) { - os[ o[i] ] = { - rows: [], - n: null - }; - } - os[ o[i] ].rows.push( i ); - } - - for ( i in ns ) { - if ( hasOwn.call( ns, i ) ) { - if ( ns[i].rows.length === 1 && hasOwn.call( os, i ) && os[i].rows.length === 1 ) { - n[ ns[i].rows[0] ] = { - text: n[ ns[i].rows[0] ], - row: os[i].rows[0] - }; - o[ os[i].rows[0] ] = { - text: o[ os[i].rows[0] ], - row: ns[i].rows[0] - }; - } - } - } - - for ( i = 0; i < n.length - 1; i++ ) { - if ( n[i].text != null && n[ i + 1 ].text == null && n[i].row + 1 < o.length && o[ n[i].row + 1 ].text == null && - n[ i + 1 ] == o[ n[i].row + 1 ] ) { - - n[ i + 1 ] = { - text: n[ i + 1 ], - row: n[i].row + 1 - }; - o[ n[i].row + 1 ] = { - text: o[ n[i].row + 1 ], - row: i + 1 - }; - } - } - - for ( i = n.length - 1; i > 0; i-- ) { - if ( n[i].text != null && n[ i - 1 ].text == null && n[i].row > 0 && o[ n[i].row - 1 ].text == null && - n[ i - 1 ] == o[ n[i].row - 1 ]) { - - n[ i - 1 ] = { - text: n[ i - 1 ], - row: n[i].row - 1 - }; - o[ n[i].row - 1 ] = { - text: o[ n[i].row - 1 ], - row: i - 1 - }; - } - } - - return { - o: o, - n: n - }; - } - - return function( o, n ) { - o = o.replace( /\s+$/, "" ); - n = n.replace( /\s+$/, "" ); - - var i, pre, - str = "", - out = diff( o === "" ? [] : o.split(/\s+/), n === "" ? [] : n.split(/\s+/) ), - oSpace = o.match(/\s+/g), - nSpace = n.match(/\s+/g); - - if ( oSpace == null ) { - oSpace = [ " " ]; - } - else { - oSpace.push( " " ); - } - - if ( nSpace == null ) { - nSpace = [ " " ]; - } - else { - nSpace.push( " " ); - } - - if ( out.n.length === 0 ) { - for ( i = 0; i < out.o.length; i++ ) { - str += "" + out.o[i] + oSpace[i] + ""; - } - } - else { - if ( out.n[0].text == null ) { - for ( n = 0; n < out.o.length && out.o[n].text == null; n++ ) { - str += "" + out.o[n] + oSpace[n] + ""; - } - } - - for ( i = 0; i < out.n.length; i++ ) { - if (out.n[i].text == null) { - str += "" + out.n[i] + nSpace[i] + ""; - } - else { - // `pre` initialized at top of scope - pre = ""; - - for ( n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++ ) { - pre += "" + out.o[n] + oSpace[n] + ""; - } - str += " " + out.n[i].text + nSpace[i] + pre; - } - } - } - - return str; - }; -}()); - -// for CommonJS environments, export everything -if ( typeof exports !== "undefined" ) { - extend( exports, QUnit.constructor.prototype ); -} - -// get at whatever the global object is, like window in browsers -}( (function() {return this;}.call()) )); diff --git a/src/tests/resources/qunit-1.12.0.css b/src/tests/resources/qunit-1.23.1.css similarity index 52% rename from src/tests/resources/qunit-1.12.0.css rename to src/tests/resources/qunit-1.23.1.css index 7ba3f9a30..ae68fc412 100644 --- a/src/tests/resources/qunit-1.12.0.css +++ b/src/tests/resources/qunit-1.23.1.css @@ -1,26 +1,27 @@ -/** - * QUnit v1.12.0 - A JavaScript Unit Testing Framework +/*! + * QUnit 1.23.1 + * https://qunitjs.com/ * - * http://qunitjs.com + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license * - * Copyright 2012 jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license + * Date: 2016-04-12T17:29Z */ /** Font Family and Sizes */ -#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult { +#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-filteredTest, #qunit-userAgent, #qunit-testresult { font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif; } -#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; } +#qunit-testrunner-toolbar, #qunit-filteredTest, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; } #qunit-tests { font-size: smaller; } /** Resets */ -#qunit-tests, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter { +#qunit-tests, #qunit-header, #qunit-banner, #qunit-filteredTest, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter { margin: 0; padding: 0; } @@ -31,32 +32,29 @@ #qunit-header { padding: 0.5em 0 0.5em 1em; - color: #8699a4; - background-color: #0d3349; + color: #8699A4; + background-color: #0D3349; font-size: 1.5em; line-height: 1em; - font-weight: normal; + font-weight: 400; border-radius: 5px 5px 0 0; - -moz-border-radius: 5px 5px 0 0; - -webkit-border-top-right-radius: 5px; - -webkit-border-top-left-radius: 5px; } #qunit-header a { text-decoration: none; - color: #c2ccd1; + color: #C2CCD1; } #qunit-header a:hover, #qunit-header a:focus { - color: #fff; + color: #FFF; } #qunit-testrunner-toolbar label { display: inline-block; - padding: 0 .5em 0 .1em; + padding: 0 0.5em 0 0.1em; } #qunit-banner { @@ -64,21 +62,39 @@ } #qunit-testrunner-toolbar { - padding: 0.5em 0 0.5em 2em; + padding: 0.5em 1em 0.5em 1em; color: #5E740B; - background-color: #eee; + background-color: #EEE; overflow: hidden; } +#qunit-filteredTest { + padding: 0.5em 1em 0.5em 1em; + background-color: #F4FF77; + color: #366097; +} + #qunit-userAgent { - padding: 0.5em 0 0.5em 2.5em; - background-color: #2b81af; - color: #fff; + padding: 0.5em 1em 0.5em 1em; + background-color: #2B81AF; + color: #FFF; text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px; } #qunit-modulefilter-container { float: right; + padding: 0.2em; +} + +.qunit-url-config { + display: inline-block; + padding: 0.1em; +} + +.qunit-filter { + display: block; + float: right; + margin-left: 1em; } /** Tests: Pass/Fail */ @@ -88,24 +104,55 @@ } #qunit-tests li { - padding: 0.4em 0.5em 0.4em 2.5em; - border-bottom: 1px solid #fff; + padding: 0.4em 1em 0.4em 1em; + border-bottom: 1px solid #FFF; list-style-position: inside; } -#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running { +#qunit-tests > li { display: none; } +#qunit-tests li.running, +#qunit-tests li.pass, +#qunit-tests li.fail, +#qunit-tests li.skipped { + display: list-item; +} + +#qunit-tests.hidepass { + position: relative; +} + +#qunit-tests.hidepass li.running, +#qunit-tests.hidepass li.pass { + visibility: hidden; + position: absolute; + width: 0; + height: 0; + padding: 0; + border: 0; + margin: 0; +} + #qunit-tests li strong { cursor: pointer; } +#qunit-tests li.skipped strong { + cursor: default; +} + #qunit-tests li a { padding: 0.5em; - color: #c2ccd1; + color: #C2CCD1; text-decoration: none; } + +#qunit-tests li p a { + padding: 0.25em; + color: #6B6464; +} #qunit-tests li a:hover, #qunit-tests li a:focus { color: #000; @@ -120,11 +167,13 @@ margin-top: 0.5em; padding: 0.5em; - background-color: #fff; + background-color: #FFF; border-radius: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; +} + +.qunit-source { + margin: 0.6em 0 0.3em; } .qunit-collapsed { @@ -133,13 +182,13 @@ #qunit-tests table { border-collapse: collapse; - margin-top: .2em; + margin-top: 0.2em; } #qunit-tests th { text-align: right; vertical-align: top; - padding: 0 .5em 0 0; + padding: 0 0.5em 0 0; } #qunit-tests td { @@ -153,26 +202,26 @@ } #qunit-tests del { - background-color: #e0f2be; - color: #374e0c; + background-color: #E0F2BE; + color: #374E0C; text-decoration: none; } #qunit-tests ins { - background-color: #ffcaca; + background-color: #FFCACA; color: #500; text-decoration: none; } /*** Test Counts */ -#qunit-tests b.counts { color: black; } +#qunit-tests b.counts { color: #000; } #qunit-tests b.passed { color: #5E740B; } #qunit-tests b.failed { color: #710909; } #qunit-tests li li { padding: 5px; - background-color: #fff; + background-color: #FFF; border-bottom: none; list-style-position: inside; } @@ -180,8 +229,8 @@ /*** Passing Styles */ #qunit-tests li li.pass { - color: #3c510c; - background-color: #fff; + color: #3C510C; + background-color: #FFF; border-left: 10px solid #C6E746; } @@ -189,7 +238,7 @@ #qunit-tests .pass .test-name { color: #366097; } #qunit-tests .pass .test-actual, -#qunit-tests .pass .test-expected { color: #999999; } +#qunit-tests .pass .test-expected { color: #999; } #qunit-banner.qunit-pass { background-color: #C6E746; } @@ -197,40 +246,52 @@ #qunit-tests li li.fail { color: #710909; - background-color: #fff; + background-color: #FFF; border-left: 10px solid #EE5757; white-space: pre; } #qunit-tests > li:last-child { border-radius: 0 0 5px 5px; - -moz-border-radius: 0 0 5px 5px; - -webkit-border-bottom-right-radius: 5px; - -webkit-border-bottom-left-radius: 5px; } -#qunit-tests .fail { color: #000000; background-color: #EE5757; } +#qunit-tests .fail { color: #000; background-color: #EE5757; } #qunit-tests .fail .test-name, -#qunit-tests .fail .module-name { color: #000000; } +#qunit-tests .fail .module-name { color: #000; } #qunit-tests .fail .test-actual { color: #EE5757; } -#qunit-tests .fail .test-expected { color: green; } +#qunit-tests .fail .test-expected { color: #008000; } #qunit-banner.qunit-fail { background-color: #EE5757; } +/*** Skipped tests */ + +#qunit-tests .skipped { + background-color: #EBECE9; +} + +#qunit-tests .qunit-skipped-label { + background-color: #F4FF77; + display: inline-block; + font-style: normal; + color: #366097; + line-height: 1.8em; + padding: 0 0.5em; + margin: -0.4em 0.4em -0.4em 0; +} /** Result */ #qunit-testresult { - padding: 0.5em 0.5em 0.5em 2.5em; + padding: 0.5em 1em 0.5em 1em; - color: #2b81af; + color: #2B81AF; background-color: #D2E0E6; - border-bottom: 1px solid white; + border-bottom: 1px solid #FFF; } #qunit-testresult .module-name { - font-weight: bold; + font-weight: 700; } /** Fixture */ diff --git a/src/tests/resources/qunit-1.23.1.js b/src/tests/resources/qunit-1.23.1.js new file mode 100644 index 000000000..5df0822ea --- /dev/null +++ b/src/tests/resources/qunit-1.23.1.js @@ -0,0 +1,4334 @@ +/*! + * QUnit 1.23.1 + * https://qunitjs.com/ + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2016-04-12T17:29Z + */ + +( function( global ) { + +var QUnit = {}; + +var Date = global.Date; +var now = Date.now || function() { + return new Date().getTime(); +}; + +var setTimeout = global.setTimeout; +var clearTimeout = global.clearTimeout; + +// Store a local window from the global to allow direct references. +var window = global.window; + +var defined = { + document: window && window.document !== undefined, + setTimeout: setTimeout !== undefined, + sessionStorage: ( function() { + var x = "qunit-test-string"; + try { + sessionStorage.setItem( x, x ); + sessionStorage.removeItem( x ); + return true; + } catch ( e ) { + return false; + } + }() ) +}; + +var fileName = ( sourceFromStacktrace( 0 ) || "" ).replace( /(:\d+)+\)?/, "" ).replace( /.+\//, "" ); +var globalStartCalled = false; +var runStarted = false; + +var toString = Object.prototype.toString, + hasOwn = Object.prototype.hasOwnProperty; + +// Returns a new Array with the elements that are in a but not in b +function diff( a, b ) { + var i, j, + result = a.slice(); + + for ( i = 0; i < result.length; i++ ) { + for ( j = 0; j < b.length; j++ ) { + if ( result[ i ] === b[ j ] ) { + result.splice( i, 1 ); + i--; + break; + } + } + } + return result; +} + +// From jquery.js +function inArray( elem, array ) { + if ( array.indexOf ) { + return array.indexOf( elem ); + } + + for ( var i = 0, length = array.length; i < length; i++ ) { + if ( array[ i ] === elem ) { + return i; + } + } + + return -1; +} + +/** + * Makes a clone of an object using only Array or Object as base, + * and copies over the own enumerable properties. + * + * @param {Object} obj + * @return {Object} New object with only the own properties (recursively). + */ +function objectValues ( obj ) { + var key, val, + vals = QUnit.is( "array", obj ) ? [] : {}; + for ( key in obj ) { + if ( hasOwn.call( obj, key ) ) { + val = obj[ key ]; + vals[ key ] = val === Object( val ) ? objectValues( val ) : val; + } + } + return vals; +} + +function extend( a, b, undefOnly ) { + for ( var prop in b ) { + if ( hasOwn.call( b, prop ) ) { + + // Avoid "Member not found" error in IE8 caused by messing with window.constructor + // This block runs on every environment, so `global` is being used instead of `window` + // to avoid errors on node. + if ( prop !== "constructor" || a !== global ) { + if ( b[ prop ] === undefined ) { + delete a[ prop ]; + } else if ( !( undefOnly && typeof a[ prop ] !== "undefined" ) ) { + a[ prop ] = b[ prop ]; + } + } + } + } + + return a; +} + +function objectType( obj ) { + if ( typeof obj === "undefined" ) { + return "undefined"; + } + + // Consider: typeof null === object + if ( obj === null ) { + return "null"; + } + + var match = toString.call( obj ).match( /^\[object\s(.*)\]$/ ), + type = match && match[ 1 ]; + + switch ( type ) { + case "Number": + if ( isNaN( obj ) ) { + return "nan"; + } + return "number"; + case "String": + case "Boolean": + case "Array": + case "Set": + case "Map": + case "Date": + case "RegExp": + case "Function": + case "Symbol": + return type.toLowerCase(); + } + if ( typeof obj === "object" ) { + return "object"; + } +} + +// Safe object type checking +function is( type, obj ) { + return QUnit.objectType( obj ) === type; +} + +// Doesn't support IE6 to IE9, it will return undefined on these browsers +// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack +function extractStacktrace( e, offset ) { + offset = offset === undefined ? 4 : offset; + + var stack, include, i; + + if ( e.stack ) { + stack = e.stack.split( "\n" ); + if ( /^error$/i.test( stack[ 0 ] ) ) { + stack.shift(); + } + if ( fileName ) { + include = []; + for ( i = offset; i < stack.length; i++ ) { + if ( stack[ i ].indexOf( fileName ) !== -1 ) { + break; + } + include.push( stack[ i ] ); + } + if ( include.length ) { + return include.join( "\n" ); + } + } + return stack[ offset ]; + + // Support: Safari <=6 only + } else if ( e.sourceURL ) { + + // Exclude useless self-reference for generated Error objects + if ( /qunit.js$/.test( e.sourceURL ) ) { + return; + } + + // For actual exceptions, this is useful + return e.sourceURL + ":" + e.line; + } +} + +function sourceFromStacktrace( offset ) { + var error = new Error(); + + // Support: Safari <=7 only, IE <=10 - 11 only + // Not all browsers generate the `stack` property for `new Error()`, see also #636 + if ( !error.stack ) { + try { + throw error; + } catch ( err ) { + error = err; + } + } + + return extractStacktrace( error, offset ); +} + +/** + * Config object: Maintain internal state + * Later exposed as QUnit.config + * `config` initialized at top of scope + */ +var config = { + + // The queue of tests to run + queue: [], + + // Block until document ready + blocking: true, + + // By default, run previously failed tests first + // very useful in combination with "Hide passed tests" checked + reorder: true, + + // By default, modify document.title when suite is done + altertitle: true, + + // HTML Reporter: collapse every test except the first failing test + // If false, all failing tests will be expanded + collapse: true, + + // By default, scroll to top of the page when suite is done + scrolltop: true, + + // Depth up-to which object will be dumped + maxDepth: 5, + + // When enabled, all tests must call expect() + requireExpects: false, + + // Placeholder for user-configurable form-exposed URL parameters + urlConfig: [], + + // Set of all modules. + modules: [], + + // Stack of nested modules + moduleStack: [], + + // The first unnamed module + currentModule: { + name: "", + tests: [] + }, + + callbacks: {} +}; + +// Push a loose unnamed module to the modules collection +config.modules.push( config.currentModule ); + +var loggingCallbacks = {}; + +// Register logging callbacks +function registerLoggingCallbacks( obj ) { + var i, l, key, + callbackNames = [ "begin", "done", "log", "testStart", "testDone", + "moduleStart", "moduleDone" ]; + + function registerLoggingCallback( key ) { + var loggingCallback = function( callback ) { + if ( objectType( callback ) !== "function" ) { + throw new Error( + "QUnit logging methods require a callback function as their first parameters." + ); + } + + config.callbacks[ key ].push( callback ); + }; + + // DEPRECATED: This will be removed on QUnit 2.0.0+ + // Stores the registered functions allowing restoring + // at verifyLoggingCallbacks() if modified + loggingCallbacks[ key ] = loggingCallback; + + return loggingCallback; + } + + for ( i = 0, l = callbackNames.length; i < l; i++ ) { + key = callbackNames[ i ]; + + // Initialize key collection of logging callback + if ( objectType( config.callbacks[ key ] ) === "undefined" ) { + config.callbacks[ key ] = []; + } + + obj[ key ] = registerLoggingCallback( key ); + } +} + +function runLoggingCallbacks( key, args ) { + var i, l, callbacks; + + callbacks = config.callbacks[ key ]; + for ( i = 0, l = callbacks.length; i < l; i++ ) { + callbacks[ i ]( args ); + } +} + +// DEPRECATED: This will be removed on 2.0.0+ +// This function verifies if the loggingCallbacks were modified by the user +// If so, it will restore it, assign the given callback and print a console warning +function verifyLoggingCallbacks() { + var loggingCallback, userCallback; + + for ( loggingCallback in loggingCallbacks ) { + if ( QUnit[ loggingCallback ] !== loggingCallbacks[ loggingCallback ] ) { + + userCallback = QUnit[ loggingCallback ]; + + // Restore the callback function + QUnit[ loggingCallback ] = loggingCallbacks[ loggingCallback ]; + + // Assign the deprecated given callback + QUnit[ loggingCallback ]( userCallback ); + + if ( global.console && global.console.warn ) { + global.console.warn( + "QUnit." + loggingCallback + " was replaced with a new value.\n" + + "Please, check out the documentation on how to apply logging callbacks.\n" + + "Reference: https://api.qunitjs.com/category/callbacks/" + ); + } + } + } +} + +( function() { + if ( !defined.document ) { + return; + } + + // `onErrorFnPrev` initialized at top of scope + // Preserve other handlers + var onErrorFnPrev = window.onerror; + + // Cover uncaught exceptions + // Returning true will suppress the default browser handler, + // returning false will let it run. + window.onerror = function( error, filePath, linerNr ) { + var ret = false; + if ( onErrorFnPrev ) { + ret = onErrorFnPrev( error, filePath, linerNr ); + } + + // Treat return value as window.onerror itself does, + // Only do our handling if not suppressed. + if ( ret !== true ) { + if ( QUnit.config.current ) { + if ( QUnit.config.current.ignoreGlobalErrors ) { + return true; + } + QUnit.pushFailure( error, filePath + ":" + linerNr ); + } else { + QUnit.test( "global failure", extend( function() { + QUnit.pushFailure( error, filePath + ":" + linerNr ); + }, { validTest: true } ) ); + } + return false; + } + + return ret; + }; +}() ); + +// Figure out if we're running the tests from a server or not +QUnit.isLocal = !( defined.document && window.location.protocol !== "file:" ); + +// Expose the current QUnit version +QUnit.version = "1.23.1"; + +extend( QUnit, { + + // Call on start of module test to prepend name to all tests + module: function( name, testEnvironment, executeNow ) { + var module, moduleFns; + var currentModule = config.currentModule; + + if ( arguments.length === 2 ) { + if ( objectType( testEnvironment ) === "function" ) { + executeNow = testEnvironment; + testEnvironment = undefined; + } + } + + // DEPRECATED: handles setup/teardown functions, + // beforeEach and afterEach should be used instead + if ( testEnvironment && testEnvironment.setup ) { + testEnvironment.beforeEach = testEnvironment.setup; + delete testEnvironment.setup; + } + if ( testEnvironment && testEnvironment.teardown ) { + testEnvironment.afterEach = testEnvironment.teardown; + delete testEnvironment.teardown; + } + + module = createModule(); + + moduleFns = { + beforeEach: setHook( module, "beforeEach" ), + afterEach: setHook( module, "afterEach" ) + }; + + if ( objectType( executeNow ) === "function" ) { + config.moduleStack.push( module ); + setCurrentModule( module ); + executeNow.call( module.testEnvironment, moduleFns ); + config.moduleStack.pop(); + module = module.parentModule || currentModule; + } + + setCurrentModule( module ); + + function createModule() { + var parentModule = config.moduleStack.length ? + config.moduleStack.slice( -1 )[ 0 ] : null; + var moduleName = parentModule !== null ? + [ parentModule.name, name ].join( " > " ) : name; + var module = { + name: moduleName, + parentModule: parentModule, + tests: [], + moduleId: generateHash( moduleName ) + }; + + var env = {}; + if ( parentModule ) { + extend( env, parentModule.testEnvironment ); + delete env.beforeEach; + delete env.afterEach; + } + extend( env, testEnvironment ); + module.testEnvironment = env; + + config.modules.push( module ); + return module; + } + + function setCurrentModule( module ) { + config.currentModule = module; + } + + }, + + // DEPRECATED: QUnit.asyncTest() will be removed in QUnit 2.0. + asyncTest: asyncTest, + + test: test, + + skip: skip, + + only: only, + + // DEPRECATED: The functionality of QUnit.start() will be altered in QUnit 2.0. + // In QUnit 2.0, invoking it will ONLY affect the `QUnit.config.autostart` blocking behavior. + start: function( count ) { + var globalStartAlreadyCalled = globalStartCalled; + + if ( !config.current ) { + globalStartCalled = true; + + if ( runStarted ) { + throw new Error( "Called start() outside of a test context while already started" ); + } else if ( globalStartAlreadyCalled || count > 1 ) { + throw new Error( "Called start() outside of a test context too many times" ); + } else if ( config.autostart ) { + throw new Error( "Called start() outside of a test context when " + + "QUnit.config.autostart was true" ); + } else if ( !config.pageLoaded ) { + + // The page isn't completely loaded yet, so bail out and let `QUnit.load` handle it + config.autostart = true; + return; + } + } else { + + // If a test is running, adjust its semaphore + config.current.semaphore -= count || 1; + + // If semaphore is non-numeric, throw error + if ( isNaN( config.current.semaphore ) ) { + config.current.semaphore = 0; + + QUnit.pushFailure( + "Called start() with a non-numeric decrement.", + sourceFromStacktrace( 2 ) + ); + return; + } + + // Don't start until equal number of stop-calls + if ( config.current.semaphore > 0 ) { + return; + } + + // Throw an Error if start is called more often than stop + if ( config.current.semaphore < 0 ) { + config.current.semaphore = 0; + + QUnit.pushFailure( + "Called start() while already started (test's semaphore was 0 already)", + sourceFromStacktrace( 2 ) + ); + return; + } + } + + resumeProcessing(); + }, + + // DEPRECATED: QUnit.stop() will be removed in QUnit 2.0. + stop: function( count ) { + + // If there isn't a test running, don't allow QUnit.stop() to be called + if ( !config.current ) { + throw new Error( "Called stop() outside of a test context" ); + } + + // If a test is running, adjust its semaphore + config.current.semaphore += count || 1; + + pauseProcessing(); + }, + + config: config, + + is: is, + + objectType: objectType, + + extend: extend, + + load: function() { + config.pageLoaded = true; + + // Initialize the configuration options + extend( config, { + stats: { all: 0, bad: 0 }, + moduleStats: { all: 0, bad: 0 }, + started: 0, + updateRate: 1000, + autostart: true, + filter: "" + }, true ); + + config.blocking = false; + + if ( config.autostart ) { + resumeProcessing(); + } + }, + + stack: function( offset ) { + offset = ( offset || 0 ) + 2; + return sourceFromStacktrace( offset ); + } +} ); + +registerLoggingCallbacks( QUnit ); + +function begin() { + var i, l, + modulesLog = []; + + // If the test run hasn't officially begun yet + if ( !config.started ) { + + // Record the time of the test run's beginning + config.started = now(); + + verifyLoggingCallbacks(); + + // Delete the loose unnamed module if unused. + if ( config.modules[ 0 ].name === "" && config.modules[ 0 ].tests.length === 0 ) { + config.modules.shift(); + } + + // Avoid unnecessary information by not logging modules' test environments + for ( i = 0, l = config.modules.length; i < l; i++ ) { + modulesLog.push( { + name: config.modules[ i ].name, + tests: config.modules[ i ].tests + } ); + } + + // The test run is officially beginning now + runLoggingCallbacks( "begin", { + totalTests: Test.count, + modules: modulesLog + } ); + } + + config.blocking = false; + process( true ); +} + +function process( last ) { + function next() { + process( last ); + } + var start = now(); + config.depth = ( config.depth || 0 ) + 1; + + while ( config.queue.length && !config.blocking ) { + if ( !defined.setTimeout || config.updateRate <= 0 || + ( ( now() - start ) < config.updateRate ) ) { + if ( config.current ) { + + // Reset async tracking for each phase of the Test lifecycle + config.current.usedAsync = false; + } + config.queue.shift()(); + } else { + setTimeout( next, 13 ); + break; + } + } + config.depth--; + if ( last && !config.blocking && !config.queue.length && config.depth === 0 ) { + done(); + } +} + +function pauseProcessing() { + config.blocking = true; + + if ( config.testTimeout && defined.setTimeout ) { + clearTimeout( config.timeout ); + config.timeout = setTimeout( function() { + if ( config.current ) { + config.current.semaphore = 0; + QUnit.pushFailure( "Test timed out", sourceFromStacktrace( 2 ) ); + } else { + throw new Error( "Test timed out" ); + } + resumeProcessing(); + }, config.testTimeout ); + } +} + +function resumeProcessing() { + runStarted = true; + + // A slight delay to allow this iteration of the event loop to finish (more assertions, etc.) + if ( defined.setTimeout ) { + setTimeout( function() { + if ( config.current && config.current.semaphore > 0 ) { + return; + } + if ( config.timeout ) { + clearTimeout( config.timeout ); + } + + begin(); + }, 13 ); + } else { + begin(); + } +} + +function done() { + var runtime, passed; + + config.autorun = true; + + // Log the last module results + if ( config.previousModule ) { + runLoggingCallbacks( "moduleDone", { + name: config.previousModule.name, + tests: config.previousModule.tests, + failed: config.moduleStats.bad, + passed: config.moduleStats.all - config.moduleStats.bad, + total: config.moduleStats.all, + runtime: now() - config.moduleStats.started + } ); + } + delete config.previousModule; + + runtime = now() - config.started; + passed = config.stats.all - config.stats.bad; + + runLoggingCallbacks( "done", { + failed: config.stats.bad, + passed: passed, + total: config.stats.all, + runtime: runtime + } ); +} + +function setHook( module, hookName ) { + if ( module.testEnvironment === undefined ) { + module.testEnvironment = {}; + } + + return function( callback ) { + module.testEnvironment[ hookName ] = callback; + }; +} + +var focused = false; +var priorityCount = 0; +var unitSampler; + +function Test( settings ) { + var i, l; + + ++Test.count; + + extend( this, settings ); + this.assertions = []; + this.semaphore = 0; + this.usedAsync = false; + this.module = config.currentModule; + this.stack = sourceFromStacktrace( 3 ); + + // Register unique strings + for ( i = 0, l = this.module.tests; i < l.length; i++ ) { + if ( this.module.tests[ i ].name === this.testName ) { + this.testName += " "; + } + } + + this.testId = generateHash( this.module.name, this.testName ); + + this.module.tests.push( { + name: this.testName, + testId: this.testId + } ); + + if ( settings.skip ) { + + // Skipped tests will fully ignore any sent callback + this.callback = function() {}; + this.async = false; + this.expected = 0; + } else { + this.assert = new Assert( this ); + } +} + +Test.count = 0; + +Test.prototype = { + before: function() { + if ( + + // Emit moduleStart when we're switching from one module to another + this.module !== config.previousModule || + + // They could be equal (both undefined) but if the previousModule property doesn't + // yet exist it means this is the first test in a suite that isn't wrapped in a + // module, in which case we'll just emit a moduleStart event for 'undefined'. + // Without this, reporters can get testStart before moduleStart which is a problem. + !hasOwn.call( config, "previousModule" ) + ) { + if ( hasOwn.call( config, "previousModule" ) ) { + runLoggingCallbacks( "moduleDone", { + name: config.previousModule.name, + tests: config.previousModule.tests, + failed: config.moduleStats.bad, + passed: config.moduleStats.all - config.moduleStats.bad, + total: config.moduleStats.all, + runtime: now() - config.moduleStats.started + } ); + } + config.previousModule = this.module; + config.moduleStats = { all: 0, bad: 0, started: now() }; + runLoggingCallbacks( "moduleStart", { + name: this.module.name, + tests: this.module.tests + } ); + } + + config.current = this; + + if ( this.module.testEnvironment ) { + delete this.module.testEnvironment.beforeEach; + delete this.module.testEnvironment.afterEach; + } + this.testEnvironment = extend( {}, this.module.testEnvironment ); + + this.started = now(); + runLoggingCallbacks( "testStart", { + name: this.testName, + module: this.module.name, + testId: this.testId + } ); + + if ( !config.pollution ) { + saveGlobal(); + } + }, + + run: function() { + var promise; + + config.current = this; + + if ( this.async ) { + QUnit.stop(); + } + + this.callbackStarted = now(); + + if ( config.notrycatch ) { + runTest( this ); + return; + } + + try { + runTest( this ); + } catch ( e ) { + this.pushFailure( "Died on test #" + ( this.assertions.length + 1 ) + " " + + this.stack + ": " + ( e.message || e ), extractStacktrace( e, 0 ) ); + + // Else next test will carry the responsibility + saveGlobal(); + + // Restart the tests if they're blocking + if ( config.blocking ) { + QUnit.start(); + } + } + + function runTest( test ) { + promise = test.callback.call( test.testEnvironment, test.assert ); + test.resolvePromise( promise ); + } + }, + + after: function() { + checkPollution(); + }, + + queueHook: function( hook, hookName ) { + var promise, + test = this; + return function runHook() { + config.current = test; + if ( config.notrycatch ) { + callHook(); + return; + } + try { + callHook(); + } catch ( error ) { + test.pushFailure( hookName + " failed on " + test.testName + ": " + + ( error.message || error ), extractStacktrace( error, 0 ) ); + } + + function callHook() { + promise = hook.call( test.testEnvironment, test.assert ); + test.resolvePromise( promise, hookName ); + } + }; + }, + + // Currently only used for module level hooks, can be used to add global level ones + hooks: function( handler ) { + var hooks = []; + + function processHooks( test, module ) { + if ( module.parentModule ) { + processHooks( test, module.parentModule ); + } + if ( module.testEnvironment && + QUnit.objectType( module.testEnvironment[ handler ] ) === "function" ) { + hooks.push( test.queueHook( module.testEnvironment[ handler ], handler ) ); + } + } + + // Hooks are ignored on skipped tests + if ( !this.skip ) { + processHooks( this, this.module ); + } + return hooks; + }, + + finish: function() { + config.current = this; + if ( config.requireExpects && this.expected === null ) { + this.pushFailure( "Expected number of assertions to be defined, but expect() was " + + "not called.", this.stack ); + } else if ( this.expected !== null && this.expected !== this.assertions.length ) { + this.pushFailure( "Expected " + this.expected + " assertions, but " + + this.assertions.length + " were run", this.stack ); + } else if ( this.expected === null && !this.assertions.length ) { + this.pushFailure( "Expected at least one assertion, but none were run - call " + + "expect(0) to accept zero assertions.", this.stack ); + } + + var i, + bad = 0; + + this.runtime = now() - this.started; + config.stats.all += this.assertions.length; + config.moduleStats.all += this.assertions.length; + + for ( i = 0; i < this.assertions.length; i++ ) { + if ( !this.assertions[ i ].result ) { + bad++; + config.stats.bad++; + config.moduleStats.bad++; + } + } + + runLoggingCallbacks( "testDone", { + name: this.testName, + module: this.module.name, + skipped: !!this.skip, + failed: bad, + passed: this.assertions.length - bad, + total: this.assertions.length, + runtime: this.runtime, + + // HTML Reporter use + assertions: this.assertions, + testId: this.testId, + + // Source of Test + source: this.stack, + + // DEPRECATED: this property will be removed in 2.0.0, use runtime instead + duration: this.runtime + } ); + + // QUnit.reset() is deprecated and will be replaced for a new + // fixture reset function on QUnit 2.0/2.1. + // It's still called here for backwards compatibility handling + QUnit.reset(); + + config.current = undefined; + }, + + queue: function() { + var priority, + test = this; + + if ( !this.valid() ) { + return; + } + + function run() { + + // Each of these can by async + synchronize( [ + function() { + test.before(); + }, + + test.hooks( "beforeEach" ), + function() { + test.run(); + }, + + test.hooks( "afterEach" ).reverse(), + + function() { + test.after(); + }, + function() { + test.finish(); + } + ] ); + } + + // Prioritize previously failed tests, detected from sessionStorage + priority = QUnit.config.reorder && defined.sessionStorage && + +sessionStorage.getItem( "qunit-test-" + this.module.name + "-" + this.testName ); + + return synchronize( run, priority, config.seed ); + }, + + pushResult: function( resultInfo ) { + + // Destructure of resultInfo = { result, actual, expected, message, negative } + var source, + details = { + module: this.module.name, + name: this.testName, + result: resultInfo.result, + message: resultInfo.message, + actual: resultInfo.actual, + expected: resultInfo.expected, + testId: this.testId, + negative: resultInfo.negative || false, + runtime: now() - this.started + }; + + if ( !resultInfo.result ) { + source = sourceFromStacktrace(); + + if ( source ) { + details.source = source; + } + } + + runLoggingCallbacks( "log", details ); + + this.assertions.push( { + result: !!resultInfo.result, + message: resultInfo.message + } ); + }, + + pushFailure: function( message, source, actual ) { + if ( !( this instanceof Test ) ) { + throw new Error( "pushFailure() assertion outside test context, was " + + sourceFromStacktrace( 2 ) ); + } + + var details = { + module: this.module.name, + name: this.testName, + result: false, + message: message || "error", + actual: actual || null, + testId: this.testId, + runtime: now() - this.started + }; + + if ( source ) { + details.source = source; + } + + runLoggingCallbacks( "log", details ); + + this.assertions.push( { + result: false, + message: message + } ); + }, + + resolvePromise: function( promise, phase ) { + var then, message, + test = this; + if ( promise != null ) { + then = promise.then; + if ( QUnit.objectType( then ) === "function" ) { + QUnit.stop(); + then.call( + promise, + function() { QUnit.start(); }, + function( error ) { + message = "Promise rejected " + + ( !phase ? "during" : phase.replace( /Each$/, "" ) ) + + " " + test.testName + ": " + ( error.message || error ); + test.pushFailure( message, extractStacktrace( error, 0 ) ); + + // Else next test will carry the responsibility + saveGlobal(); + + // Unblock + QUnit.start(); + } + ); + } + } + }, + + valid: function() { + var filter = config.filter, + regexFilter = /^(!?)\/([\w\W]*)\/(i?$)/.exec( filter ), + module = config.module && config.module.toLowerCase(), + fullName = ( this.module.name + ": " + this.testName ); + + function moduleChainNameMatch( testModule ) { + var testModuleName = testModule.name ? testModule.name.toLowerCase() : null; + if ( testModuleName === module ) { + return true; + } else if ( testModule.parentModule ) { + return moduleChainNameMatch( testModule.parentModule ); + } else { + return false; + } + } + + function moduleChainIdMatch( testModule ) { + return inArray( testModule.moduleId, config.moduleId ) > -1 || + testModule.parentModule && moduleChainIdMatch( testModule.parentModule ); + } + + // Internally-generated tests are always valid + if ( this.callback && this.callback.validTest ) { + return true; + } + + if ( config.moduleId && config.moduleId.length > 0 && + !moduleChainIdMatch( this.module ) ) { + + return false; + } + + if ( config.testId && config.testId.length > 0 && + inArray( this.testId, config.testId ) < 0 ) { + + return false; + } + + if ( module && !moduleChainNameMatch( this.module ) ) { + return false; + } + + if ( !filter ) { + return true; + } + + return regexFilter ? + this.regexFilter( !!regexFilter[ 1 ], regexFilter[ 2 ], regexFilter[ 3 ], fullName ) : + this.stringFilter( filter, fullName ); + }, + + regexFilter: function( exclude, pattern, flags, fullName ) { + var regex = new RegExp( pattern, flags ); + var match = regex.test( fullName ); + + return match !== exclude; + }, + + stringFilter: function( filter, fullName ) { + filter = filter.toLowerCase(); + fullName = fullName.toLowerCase(); + + var include = filter.charAt( 0 ) !== "!"; + if ( !include ) { + filter = filter.slice( 1 ); + } + + // If the filter matches, we need to honour include + if ( fullName.indexOf( filter ) !== -1 ) { + return include; + } + + // Otherwise, do the opposite + return !include; + } +}; + +// Resets the test setup. Useful for tests that modify the DOM. +/* +DEPRECATED: Use multiple tests instead of resetting inside a test. +Use testStart or testDone for custom cleanup. +This method will throw an error in 2.0, and will be removed in 2.1 +*/ +QUnit.reset = function() { + + // Return on non-browser environments + // This is necessary to not break on node tests + if ( !defined.document ) { + return; + } + + var fixture = defined.document && document.getElementById && + document.getElementById( "qunit-fixture" ); + + if ( fixture ) { + fixture.innerHTML = config.fixture; + } +}; + +QUnit.pushFailure = function() { + if ( !QUnit.config.current ) { + throw new Error( "pushFailure() assertion outside test context, in " + + sourceFromStacktrace( 2 ) ); + } + + // Gets current test obj + var currentTest = QUnit.config.current; + + return currentTest.pushFailure.apply( currentTest, arguments ); +}; + +// Based on Java's String.hashCode, a simple but not +// rigorously collision resistant hashing function +function generateHash( module, testName ) { + var hex, + i = 0, + hash = 0, + str = module + "\x1C" + testName, + len = str.length; + + for ( ; i < len; i++ ) { + hash = ( ( hash << 5 ) - hash ) + str.charCodeAt( i ); + hash |= 0; + } + + // Convert the possibly negative integer hash code into an 8 character hex string, which isn't + // strictly necessary but increases user understanding that the id is a SHA-like hash + hex = ( 0x100000000 + hash ).toString( 16 ); + if ( hex.length < 8 ) { + hex = "0000000" + hex; + } + + return hex.slice( -8 ); +} + +function synchronize( callback, priority, seed ) { + var last = !priority, + index; + + if ( QUnit.objectType( callback ) === "array" ) { + while ( callback.length ) { + synchronize( callback.shift() ); + } + return; + } + + if ( priority ) { + config.queue.splice( priorityCount++, 0, callback ); + } else if ( seed ) { + if ( !unitSampler ) { + unitSampler = unitSamplerGenerator( seed ); + } + + // Insert into a random position after all priority items + index = Math.floor( unitSampler() * ( config.queue.length - priorityCount + 1 ) ); + config.queue.splice( priorityCount + index, 0, callback ); + } else { + config.queue.push( callback ); + } + + if ( config.autorun && !config.blocking ) { + process( last ); + } +} + +function unitSamplerGenerator( seed ) { + + // 32-bit xorshift, requires only a nonzero seed + // http://excamera.com/sphinx/article-xorshift.html + var sample = parseInt( generateHash( seed ), 16 ) || -1; + return function() { + sample ^= sample << 13; + sample ^= sample >>> 17; + sample ^= sample << 5; + + // ECMAScript has no unsigned number type + if ( sample < 0 ) { + sample += 0x100000000; + } + + return sample / 0x100000000; + }; +} + +function saveGlobal() { + config.pollution = []; + + if ( config.noglobals ) { + for ( var key in global ) { + if ( hasOwn.call( global, key ) ) { + + // In Opera sometimes DOM element ids show up here, ignore them + if ( /^qunit-test-output/.test( key ) ) { + continue; + } + config.pollution.push( key ); + } + } + } +} + +function checkPollution() { + var newGlobals, + deletedGlobals, + old = config.pollution; + + saveGlobal(); + + newGlobals = diff( config.pollution, old ); + if ( newGlobals.length > 0 ) { + QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join( ", " ) ); + } + + deletedGlobals = diff( old, config.pollution ); + if ( deletedGlobals.length > 0 ) { + QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join( ", " ) ); + } +} + +// Will be exposed as QUnit.asyncTest +function asyncTest( testName, expected, callback ) { + if ( arguments.length === 2 ) { + callback = expected; + expected = null; + } + + QUnit.test( testName, expected, callback, true ); +} + +// Will be exposed as QUnit.test +function test( testName, expected, callback, async ) { + if ( focused ) { return; } + + var newTest; + + if ( arguments.length === 2 ) { + callback = expected; + expected = null; + } + + newTest = new Test( { + testName: testName, + expected: expected, + async: async, + callback: callback + } ); + + newTest.queue(); +} + +// Will be exposed as QUnit.skip +function skip( testName ) { + if ( focused ) { return; } + + var test = new Test( { + testName: testName, + skip: true + } ); + + test.queue(); +} + +// Will be exposed as QUnit.only +function only( testName, expected, callback, async ) { + var newTest; + + if ( focused ) { return; } + + QUnit.config.queue.length = 0; + focused = true; + + if ( arguments.length === 2 ) { + callback = expected; + expected = null; + } + + newTest = new Test( { + testName: testName, + expected: expected, + async: async, + callback: callback + } ); + + newTest.queue(); +} + +function Assert( testContext ) { + this.test = testContext; +} + +// Assert helpers +QUnit.assert = Assert.prototype = { + + // Specify the number of expected assertions to guarantee that failed test + // (no assertions are run at all) don't slip through. + expect: function( asserts ) { + if ( arguments.length === 1 ) { + this.test.expected = asserts; + } else { + return this.test.expected; + } + }, + + // Increment this Test's semaphore counter, then return a function that + // decrements that counter a maximum of once. + async: function( count ) { + var test = this.test, + popped = false, + acceptCallCount = count; + + if ( typeof acceptCallCount === "undefined" ) { + acceptCallCount = 1; + } + + test.semaphore += 1; + test.usedAsync = true; + pauseProcessing(); + + return function done() { + + if ( popped ) { + test.pushFailure( "Too many calls to the `assert.async` callback", + sourceFromStacktrace( 2 ) ); + return; + } + acceptCallCount -= 1; + if ( acceptCallCount > 0 ) { + return; + } + + test.semaphore -= 1; + popped = true; + resumeProcessing(); + }; + }, + + // Exports test.push() to the user API + // Alias of pushResult. + push: function( result, actual, expected, message, negative ) { + var currentAssert = this instanceof Assert ? this : QUnit.config.current.assert; + return currentAssert.pushResult( { + result: result, + actual: actual, + expected: expected, + message: message, + negative: negative + } ); + }, + + pushResult: function( resultInfo ) { + + // Destructure of resultInfo = { result, actual, expected, message, negative } + var assert = this, + currentTest = ( assert instanceof Assert && assert.test ) || QUnit.config.current; + + // Backwards compatibility fix. + // Allows the direct use of global exported assertions and QUnit.assert.* + // Although, it's use is not recommended as it can leak assertions + // to other tests from async tests, because we only get a reference to the current test, + // not exactly the test where assertion were intended to be called. + if ( !currentTest ) { + throw new Error( "assertion outside test context, in " + sourceFromStacktrace( 2 ) ); + } + + if ( currentTest.usedAsync === true && currentTest.semaphore === 0 ) { + currentTest.pushFailure( "Assertion after the final `assert.async` was resolved", + sourceFromStacktrace( 2 ) ); + + // Allow this assertion to continue running anyway... + } + + if ( !( assert instanceof Assert ) ) { + assert = currentTest.assert; + } + + return assert.test.pushResult( resultInfo ); + }, + + ok: function( result, message ) { + message = message || ( result ? "okay" : "failed, expected argument to be truthy, was: " + + QUnit.dump.parse( result ) ); + this.pushResult( { + result: !!result, + actual: result, + expected: true, + message: message + } ); + }, + + notOk: function( result, message ) { + message = message || ( !result ? "okay" : "failed, expected argument to be falsy, was: " + + QUnit.dump.parse( result ) ); + this.pushResult( { + result: !result, + actual: result, + expected: false, + message: message + } ); + }, + + equal: function( actual, expected, message ) { + /*jshint eqeqeq:false */ + this.pushResult( { + result: expected == actual, + actual: actual, + expected: expected, + message: message + } ); + }, + + notEqual: function( actual, expected, message ) { + /*jshint eqeqeq:false */ + this.pushResult( { + result: expected != actual, + actual: actual, + expected: expected, + message: message, + negative: true + } ); + }, + + propEqual: function( actual, expected, message ) { + actual = objectValues( actual ); + expected = objectValues( expected ); + this.pushResult( { + result: QUnit.equiv( actual, expected ), + actual: actual, + expected: expected, + message: message + } ); + }, + + notPropEqual: function( actual, expected, message ) { + actual = objectValues( actual ); + expected = objectValues( expected ); + this.pushResult( { + result: !QUnit.equiv( actual, expected ), + actual: actual, + expected: expected, + message: message, + negative: true + } ); + }, + + deepEqual: function( actual, expected, message ) { + this.pushResult( { + result: QUnit.equiv( actual, expected ), + actual: actual, + expected: expected, + message: message + } ); + }, + + notDeepEqual: function( actual, expected, message ) { + this.pushResult( { + result: !QUnit.equiv( actual, expected ), + actual: actual, + expected: expected, + message: message, + negative: true + } ); + }, + + strictEqual: function( actual, expected, message ) { + this.pushResult( { + result: expected === actual, + actual: actual, + expected: expected, + message: message + } ); + }, + + notStrictEqual: function( actual, expected, message ) { + this.pushResult( { + result: expected !== actual, + actual: actual, + expected: expected, + message: message, + negative: true + } ); + }, + + "throws": function( block, expected, message ) { + var actual, expectedType, + expectedOutput = expected, + ok = false, + currentTest = ( this instanceof Assert && this.test ) || QUnit.config.current; + + // 'expected' is optional unless doing string comparison + if ( message == null && typeof expected === "string" ) { + message = expected; + expected = null; + } + + currentTest.ignoreGlobalErrors = true; + try { + block.call( currentTest.testEnvironment ); + } catch ( e ) { + actual = e; + } + currentTest.ignoreGlobalErrors = false; + + if ( actual ) { + expectedType = QUnit.objectType( expected ); + + // We don't want to validate thrown error + if ( !expected ) { + ok = true; + expectedOutput = null; + + // Expected is a regexp + } else if ( expectedType === "regexp" ) { + ok = expected.test( errorString( actual ) ); + + // Expected is a string + } else if ( expectedType === "string" ) { + ok = expected === errorString( actual ); + + // Expected is a constructor, maybe an Error constructor + } else if ( expectedType === "function" && actual instanceof expected ) { + ok = true; + + // Expected is an Error object + } else if ( expectedType === "object" ) { + ok = actual instanceof expected.constructor && + actual.name === expected.name && + actual.message === expected.message; + + // Expected is a validation function which returns true if validation passed + } else if ( expectedType === "function" && expected.call( {}, actual ) === true ) { + expectedOutput = null; + ok = true; + } + } + + currentTest.assert.pushResult( { + result: ok, + actual: actual, + expected: expectedOutput, + message: message + } ); + } +}; + +// Provide an alternative to assert.throws(), for environments that consider throws a reserved word +// Known to us are: Closure Compiler, Narwhal +( function() { + /*jshint sub:true */ + Assert.prototype.raises = Assert.prototype [ "throws" ]; //jscs:ignore requireDotNotation +}() ); + +function errorString( error ) { + var name, message, + resultErrorString = error.toString(); + if ( resultErrorString.substring( 0, 7 ) === "[object" ) { + name = error.name ? error.name.toString() : "Error"; + message = error.message ? error.message.toString() : ""; + if ( name && message ) { + return name + ": " + message; + } else if ( name ) { + return name; + } else if ( message ) { + return message; + } else { + return "Error"; + } + } else { + return resultErrorString; + } +} + +// Test for equality any JavaScript type. +// Author: Philippe Rathé +QUnit.equiv = ( function() { + + // Stack to decide between skip/abort functions + var callers = []; + + // Stack to avoiding loops from circular referencing + var parents = []; + var parentsB = []; + + var getProto = Object.getPrototypeOf || function( obj ) { + + /*jshint proto: true */ + return obj.__proto__; + }; + + function useStrictEquality( b, a ) { + + // To catch short annotation VS 'new' annotation of a declaration. e.g.: + // `var i = 1;` + // `var j = new Number(1);` + if ( typeof a === "object" ) { + a = a.valueOf(); + } + if ( typeof b === "object" ) { + b = b.valueOf(); + } + + return a === b; + } + + function compareConstructors( a, b ) { + var protoA = getProto( a ); + var protoB = getProto( b ); + + // Comparing constructors is more strict than using `instanceof` + if ( a.constructor === b.constructor ) { + return true; + } + + // Ref #851 + // If the obj prototype descends from a null constructor, treat it + // as a null prototype. + if ( protoA && protoA.constructor === null ) { + protoA = null; + } + if ( protoB && protoB.constructor === null ) { + protoB = null; + } + + // Allow objects with no prototype to be equivalent to + // objects with Object as their constructor. + if ( ( protoA === null && protoB === Object.prototype ) || + ( protoB === null && protoA === Object.prototype ) ) { + return true; + } + + return false; + } + + function getRegExpFlags( regexp ) { + return "flags" in regexp ? regexp.flags : regexp.toString().match( /[gimuy]*$/ )[ 0 ]; + } + + var callbacks = { + "string": useStrictEquality, + "boolean": useStrictEquality, + "number": useStrictEquality, + "null": useStrictEquality, + "undefined": useStrictEquality, + "symbol": useStrictEquality, + "date": useStrictEquality, + + "nan": function() { + return true; + }, + + "regexp": function( b, a ) { + return a.source === b.source && + + // Include flags in the comparison + getRegExpFlags( a ) === getRegExpFlags( b ); + }, + + // - skip when the property is a method of an instance (OOP) + // - abort otherwise, + // initial === would have catch identical references anyway + "function": function() { + var caller = callers[ callers.length - 1 ]; + return caller !== Object && typeof caller !== "undefined"; + }, + + "array": function( b, a ) { + var i, j, len, loop, aCircular, bCircular; + + len = a.length; + if ( len !== b.length ) { + + // Safe and faster + return false; + } + + // Track reference to avoid circular references + parents.push( a ); + parentsB.push( b ); + for ( i = 0; i < len; i++ ) { + loop = false; + for ( j = 0; j < parents.length; j++ ) { + aCircular = parents[ j ] === a[ i ]; + bCircular = parentsB[ j ] === b[ i ]; + if ( aCircular || bCircular ) { + if ( a[ i ] === b[ i ] || aCircular && bCircular ) { + loop = true; + } else { + parents.pop(); + parentsB.pop(); + return false; + } + } + } + if ( !loop && !innerEquiv( a[ i ], b[ i ] ) ) { + parents.pop(); + parentsB.pop(); + return false; + } + } + parents.pop(); + parentsB.pop(); + return true; + }, + + "set": function( b, a ) { + var innerEq, + outerEq = true; + + if ( a.size !== b.size ) { + return false; + } + + a.forEach( function( aVal ) { + innerEq = false; + + b.forEach( function( bVal ) { + if ( innerEquiv( bVal, aVal ) ) { + innerEq = true; + } + } ); + + if ( !innerEq ) { + outerEq = false; + } + } ); + + return outerEq; + }, + + "map": function( b, a ) { + var innerEq, + outerEq = true; + + if ( a.size !== b.size ) { + return false; + } + + a.forEach( function( aVal, aKey ) { + innerEq = false; + + b.forEach( function( bVal, bKey ) { + if ( innerEquiv( [ bVal, bKey ], [ aVal, aKey ] ) ) { + innerEq = true; + } + } ); + + if ( !innerEq ) { + outerEq = false; + } + } ); + + return outerEq; + }, + + "object": function( b, a ) { + var i, j, loop, aCircular, bCircular; + + // Default to true + var eq = true; + var aProperties = []; + var bProperties = []; + + if ( compareConstructors( a, b ) === false ) { + return false; + } + + // Stack constructor before traversing properties + callers.push( a.constructor ); + + // Track reference to avoid circular references + parents.push( a ); + parentsB.push( b ); + + // Be strict: don't ensure hasOwnProperty and go deep + for ( i in a ) { + loop = false; + for ( j = 0; j < parents.length; j++ ) { + aCircular = parents[ j ] === a[ i ]; + bCircular = parentsB[ j ] === b[ i ]; + if ( aCircular || bCircular ) { + if ( a[ i ] === b[ i ] || aCircular && bCircular ) { + loop = true; + } else { + eq = false; + break; + } + } + } + aProperties.push( i ); + if ( !loop && !innerEquiv( a[ i ], b[ i ] ) ) { + eq = false; + break; + } + } + + parents.pop(); + parentsB.pop(); + + // Unstack, we are done + callers.pop(); + + for ( i in b ) { + + // Collect b's properties + bProperties.push( i ); + } + + // Ensures identical properties name + return eq && innerEquiv( aProperties.sort(), bProperties.sort() ); + } + }; + + function typeEquiv( a, b ) { + var type = QUnit.objectType( a ); + return QUnit.objectType( b ) === type && callbacks[ type ]( b, a ); + } + + // The real equiv function + function innerEquiv( a, b ) { + + // We're done when there's nothing more to compare + if ( arguments.length < 2 ) { + return true; + } + + // Require type-specific equality + return ( a === b || typeEquiv( a, b ) ) && + + // ...across all consecutive argument pairs + ( arguments.length === 2 || innerEquiv.apply( this, [].slice.call( arguments, 1 ) ) ); + } + + return innerEquiv; +}() ); + +// Based on jsDump by Ariel Flesler +// http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html +QUnit.dump = ( function() { + function quote( str ) { + return "\"" + str.toString().replace( /\\/g, "\\\\" ).replace( /"/g, "\\\"" ) + "\""; + } + function literal( o ) { + return o + ""; + } + function join( pre, arr, post ) { + var s = dump.separator(), + base = dump.indent(), + inner = dump.indent( 1 ); + if ( arr.join ) { + arr = arr.join( "," + s + inner ); + } + if ( !arr ) { + return pre + post; + } + return [ pre, inner + arr, base + post ].join( s ); + } + function array( arr, stack ) { + var i = arr.length, + ret = new Array( i ); + + if ( dump.maxDepth && dump.depth > dump.maxDepth ) { + return "[object Array]"; + } + + this.up(); + while ( i-- ) { + ret[ i ] = this.parse( arr[ i ], undefined, stack ); + } + this.down(); + return join( "[", ret, "]" ); + } + + var reName = /^function (\w+)/, + dump = { + + // The objType is used mostly internally, you can fix a (custom) type in advance + parse: function( obj, objType, stack ) { + stack = stack || []; + var res, parser, parserType, + inStack = inArray( obj, stack ); + + if ( inStack !== -1 ) { + return "recursion(" + ( inStack - stack.length ) + ")"; + } + + objType = objType || this.typeOf( obj ); + parser = this.parsers[ objType ]; + parserType = typeof parser; + + if ( parserType === "function" ) { + stack.push( obj ); + res = parser.call( this, obj, stack ); + stack.pop(); + return res; + } + return ( parserType === "string" ) ? parser : this.parsers.error; + }, + typeOf: function( obj ) { + var type; + if ( obj === null ) { + type = "null"; + } else if ( typeof obj === "undefined" ) { + type = "undefined"; + } else if ( QUnit.is( "regexp", obj ) ) { + type = "regexp"; + } else if ( QUnit.is( "date", obj ) ) { + type = "date"; + } else if ( QUnit.is( "function", obj ) ) { + type = "function"; + } else if ( obj.setInterval !== undefined && + obj.document !== undefined && + obj.nodeType === undefined ) { + type = "window"; + } else if ( obj.nodeType === 9 ) { + type = "document"; + } else if ( obj.nodeType ) { + type = "node"; + } else if ( + + // Native arrays + toString.call( obj ) === "[object Array]" || + + // NodeList objects + ( typeof obj.length === "number" && obj.item !== undefined && + ( obj.length ? obj.item( 0 ) === obj[ 0 ] : ( obj.item( 0 ) === null && + obj[ 0 ] === undefined ) ) ) + ) { + type = "array"; + } else if ( obj.constructor === Error.prototype.constructor ) { + type = "error"; + } else { + type = typeof obj; + } + return type; + }, + + separator: function() { + return this.multiline ? this.HTML ? "
      " : "\n" : this.HTML ? " " : " "; + }, + + // Extra can be a number, shortcut for increasing-calling-decreasing + indent: function( extra ) { + if ( !this.multiline ) { + return ""; + } + var chr = this.indentChar; + if ( this.HTML ) { + chr = chr.replace( /\t/g, " " ).replace( / /g, " " ); + } + return new Array( this.depth + ( extra || 0 ) ).join( chr ); + }, + up: function( a ) { + this.depth += a || 1; + }, + down: function( a ) { + this.depth -= a || 1; + }, + setParser: function( name, parser ) { + this.parsers[ name ] = parser; + }, + + // The next 3 are exposed so you can use them + quote: quote, + literal: literal, + join: join, + depth: 1, + maxDepth: QUnit.config.maxDepth, + + // This is the list of parsers, to modify them, use dump.setParser + parsers: { + window: "[Window]", + document: "[Document]", + error: function( error ) { + return "Error(\"" + error.message + "\")"; + }, + unknown: "[Unknown]", + "null": "null", + "undefined": "undefined", + "function": function( fn ) { + var ret = "function", + + // Functions never have name in IE + name = "name" in fn ? fn.name : ( reName.exec( fn ) || [] )[ 1 ]; + + if ( name ) { + ret += " " + name; + } + ret += "("; + + ret = [ ret, dump.parse( fn, "functionArgs" ), "){" ].join( "" ); + return join( ret, dump.parse( fn, "functionCode" ), "}" ); + }, + array: array, + nodelist: array, + "arguments": array, + object: function( map, stack ) { + var keys, key, val, i, nonEnumerableProperties, + ret = []; + + if ( dump.maxDepth && dump.depth > dump.maxDepth ) { + return "[object Object]"; + } + + dump.up(); + keys = []; + for ( key in map ) { + keys.push( key ); + } + + // Some properties are not always enumerable on Error objects. + nonEnumerableProperties = [ "message", "name" ]; + for ( i in nonEnumerableProperties ) { + key = nonEnumerableProperties[ i ]; + if ( key in map && inArray( key, keys ) < 0 ) { + keys.push( key ); + } + } + keys.sort(); + for ( i = 0; i < keys.length; i++ ) { + key = keys[ i ]; + val = map[ key ]; + ret.push( dump.parse( key, "key" ) + ": " + + dump.parse( val, undefined, stack ) ); + } + dump.down(); + return join( "{", ret, "}" ); + }, + node: function( node ) { + var len, i, val, + open = dump.HTML ? "<" : "<", + close = dump.HTML ? ">" : ">", + tag = node.nodeName.toLowerCase(), + ret = open + tag, + attrs = node.attributes; + + if ( attrs ) { + for ( i = 0, len = attrs.length; i < len; i++ ) { + val = attrs[ i ].nodeValue; + + // IE6 includes all attributes in .attributes, even ones not explicitly + // set. Those have values like undefined, null, 0, false, "" or + // "inherit". + if ( val && val !== "inherit" ) { + ret += " " + attrs[ i ].nodeName + "=" + + dump.parse( val, "attribute" ); + } + } + } + ret += close; + + // Show content of TextNode or CDATASection + if ( node.nodeType === 3 || node.nodeType === 4 ) { + ret += node.nodeValue; + } + + return ret + open + "/" + tag + close; + }, + + // Function calls it internally, it's the arguments part of the function + functionArgs: function( fn ) { + var args, + l = fn.length; + + if ( !l ) { + return ""; + } + + args = new Array( l ); + while ( l-- ) { + + // 97 is 'a' + args[ l ] = String.fromCharCode( 97 + l ); + } + return " " + args.join( ", " ) + " "; + }, + + // Object calls it internally, the key part of an item in a map + key: quote, + + // Function calls it internally, it's the content of the function + functionCode: "[code]", + + // Node calls it internally, it's a html attribute value + attribute: quote, + string: quote, + date: quote, + regexp: literal, + number: literal, + "boolean": literal + }, + + // If true, entities are escaped ( <, >, \t, space and \n ) + HTML: false, + + // Indentation unit + indentChar: " ", + + // If true, items in a collection, are separated by a \n, else just a space. + multiline: true + }; + + return dump; +}() ); + +// Back compat +QUnit.jsDump = QUnit.dump; + +// Deprecated +// Extend assert methods to QUnit for Backwards compatibility +( function() { + var i, + assertions = Assert.prototype; + + function applyCurrent( current ) { + return function() { + var assert = new Assert( QUnit.config.current ); + current.apply( assert, arguments ); + }; + } + + for ( i in assertions ) { + QUnit[ i ] = applyCurrent( assertions[ i ] ); + } +}() ); + +// For browser, export only select globals +if ( defined.document ) { + + ( function() { + var i, l, + keys = [ + "test", + "module", + "expect", + "asyncTest", + "start", + "stop", + "ok", + "notOk", + "equal", + "notEqual", + "propEqual", + "notPropEqual", + "deepEqual", + "notDeepEqual", + "strictEqual", + "notStrictEqual", + "throws", + "raises" + ]; + + for ( i = 0, l = keys.length; i < l; i++ ) { + window[ keys[ i ] ] = QUnit[ keys[ i ] ]; + } + }() ); + + window.QUnit = QUnit; +} + +// For nodejs +if ( typeof module !== "undefined" && module && module.exports ) { + module.exports = QUnit; + + // For consistency with CommonJS environments' exports + module.exports.QUnit = QUnit; +} + +// For CommonJS with exports, but without module.exports, like Rhino +if ( typeof exports !== "undefined" && exports ) { + exports.QUnit = QUnit; +} + +if ( typeof define === "function" && define.amd ) { + define( function() { + return QUnit; + } ); + QUnit.config.autostart = false; +} + +// Get a reference to the global object, like window in browsers +}( ( function() { + return this; +}() ) ) ); + +( function() { + +// Only interact with URLs via window.location +var location = typeof window !== "undefined" && window.location; +if ( !location ) { + return; +} + +var urlParams = getUrlParams(); + +QUnit.urlParams = urlParams; + +// Match module/test by inclusion in an array +QUnit.config.moduleId = [].concat( urlParams.moduleId || [] ); +QUnit.config.testId = [].concat( urlParams.testId || [] ); + +// Exact case-insensitive match of the module name +QUnit.config.module = urlParams.module; + +// Regular expression or case-insenstive substring match against "moduleName: testName" +QUnit.config.filter = urlParams.filter; + +// Test order randomization +if ( urlParams.seed === true ) { + + // Generate a random seed if the option is specified without a value + QUnit.config.seed = Math.random().toString( 36 ).slice( 2 ); +} else if ( urlParams.seed ) { + QUnit.config.seed = urlParams.seed; +} + +// Add URL-parameter-mapped config values with UI form rendering data +QUnit.config.urlConfig.push( + { + id: "hidepassed", + label: "Hide passed tests", + tooltip: "Only show tests and assertions that fail. Stored as query-strings." + }, + { + id: "noglobals", + label: "Check for Globals", + tooltip: "Enabling this will test if any test introduces new properties on the " + + "global object (`window` in Browsers). Stored as query-strings." + }, + { + id: "notrycatch", + label: "No try-catch", + tooltip: "Enabling this will run tests outside of a try-catch block. Makes debugging " + + "exceptions in IE reasonable. Stored as query-strings." + } +); + +QUnit.begin( function() { + var i, option, + urlConfig = QUnit.config.urlConfig; + + for ( i = 0; i < urlConfig.length; i++ ) { + + // Options can be either strings or objects with nonempty "id" properties + option = QUnit.config.urlConfig[ i ]; + if ( typeof option !== "string" ) { + option = option.id; + } + + if ( QUnit.config[ option ] === undefined ) { + QUnit.config[ option ] = urlParams[ option ]; + } + } +} ); + +function getUrlParams() { + var i, param, name, value; + var urlParams = {}; + var params = location.search.slice( 1 ).split( "&" ); + var length = params.length; + + for ( i = 0; i < length; i++ ) { + if ( params[ i ] ) { + param = params[ i ].split( "=" ); + name = decodeURIComponent( param[ 0 ] ); + + // Allow just a key to turn on a flag, e.g., test.html?noglobals + value = param.length === 1 || + decodeURIComponent( param.slice( 1 ).join( "=" ) ) ; + if ( urlParams[ name ] ) { + urlParams[ name ] = [].concat( urlParams[ name ], value ); + } else { + urlParams[ name ] = value; + } + } + } + + return urlParams; +} + +// Don't load the HTML Reporter on non-browser environments +if ( typeof window === "undefined" || !window.document ) { + return; +} + +// Deprecated QUnit.init - Ref #530 +// Re-initialize the configuration options +QUnit.init = function() { + var config = QUnit.config; + + config.stats = { all: 0, bad: 0 }; + config.moduleStats = { all: 0, bad: 0 }; + config.started = 0; + config.updateRate = 1000; + config.blocking = false; + config.autostart = true; + config.autorun = false; + config.filter = ""; + config.queue = []; + + appendInterface(); +}; + +var config = QUnit.config, + document = window.document, + collapseNext = false, + hasOwn = Object.prototype.hasOwnProperty, + unfilteredUrl = setUrl( { filter: undefined, module: undefined, + moduleId: undefined, testId: undefined } ), + defined = { + sessionStorage: ( function() { + var x = "qunit-test-string"; + try { + sessionStorage.setItem( x, x ); + sessionStorage.removeItem( x ); + return true; + } catch ( e ) { + return false; + } + }() ) + }, + modulesList = []; + +/** +* Escape text for attribute or text content. +*/ +function escapeText( s ) { + if ( !s ) { + return ""; + } + s = s + ""; + + // Both single quotes and double quotes (for attributes) + return s.replace( /['"<>&]/g, function( s ) { + switch ( s ) { + case "'": + return "'"; + case "\"": + return """; + case "<": + return "<"; + case ">": + return ">"; + case "&": + return "&"; + } + } ); +} + +/** + * @param {HTMLElement} elem + * @param {string} type + * @param {Function} fn + */ +function addEvent( elem, type, fn ) { + if ( elem.addEventListener ) { + + // Standards-based browsers + elem.addEventListener( type, fn, false ); + } else if ( elem.attachEvent ) { + + // Support: IE <9 + elem.attachEvent( "on" + type, function() { + var event = window.event; + if ( !event.target ) { + event.target = event.srcElement || document; + } + + fn.call( elem, event ); + } ); + } +} + +/** + * @param {Array|NodeList} elems + * @param {string} type + * @param {Function} fn + */ +function addEvents( elems, type, fn ) { + var i = elems.length; + while ( i-- ) { + addEvent( elems[ i ], type, fn ); + } +} + +function hasClass( elem, name ) { + return ( " " + elem.className + " " ).indexOf( " " + name + " " ) >= 0; +} + +function addClass( elem, name ) { + if ( !hasClass( elem, name ) ) { + elem.className += ( elem.className ? " " : "" ) + name; + } +} + +function toggleClass( elem, name, force ) { + if ( force || typeof force === "undefined" && !hasClass( elem, name ) ) { + addClass( elem, name ); + } else { + removeClass( elem, name ); + } +} + +function removeClass( elem, name ) { + var set = " " + elem.className + " "; + + // Class name may appear multiple times + while ( set.indexOf( " " + name + " " ) >= 0 ) { + set = set.replace( " " + name + " ", " " ); + } + + // Trim for prettiness + elem.className = typeof set.trim === "function" ? set.trim() : set.replace( /^\s+|\s+$/g, "" ); +} + +function id( name ) { + return document.getElementById && document.getElementById( name ); +} + +function getUrlConfigHtml() { + var i, j, val, + escaped, escapedTooltip, + selection = false, + urlConfig = config.urlConfig, + urlConfigHtml = ""; + + for ( i = 0; i < urlConfig.length; i++ ) { + + // Options can be either strings or objects with nonempty "id" properties + val = config.urlConfig[ i ]; + if ( typeof val === "string" ) { + val = { + id: val, + label: val + }; + } + + escaped = escapeText( val.id ); + escapedTooltip = escapeText( val.tooltip ); + + if ( !val.value || typeof val.value === "string" ) { + urlConfigHtml += ""; + } else { + urlConfigHtml += ""; + } + } + + return urlConfigHtml; +} + +// Handle "click" events on toolbar checkboxes and "change" for select menus. +// Updates the URL with the new state of `config.urlConfig` values. +function toolbarChanged() { + var updatedUrl, value, tests, + field = this, + params = {}; + + // Detect if field is a select menu or a checkbox + if ( "selectedIndex" in field ) { + value = field.options[ field.selectedIndex ].value || undefined; + } else { + value = field.checked ? ( field.defaultValue || true ) : undefined; + } + + params[ field.name ] = value; + updatedUrl = setUrl( params ); + + // Check if we can apply the change without a page refresh + if ( "hidepassed" === field.name && "replaceState" in window.history ) { + QUnit.urlParams[ field.name ] = value; + config[ field.name ] = value || false; + tests = id( "qunit-tests" ); + if ( tests ) { + toggleClass( tests, "hidepass", value || false ); + } + window.history.replaceState( null, "", updatedUrl ); + } else { + window.location = updatedUrl; + } +} + +function setUrl( params ) { + var key, arrValue, i, + querystring = "?", + location = window.location; + + params = QUnit.extend( QUnit.extend( {}, QUnit.urlParams ), params ); + + for ( key in params ) { + + // Skip inherited or undefined properties + if ( hasOwn.call( params, key ) && params[ key ] !== undefined ) { + + // Output a parameter for each value of this key (but usually just one) + arrValue = [].concat( params[ key ] ); + for ( i = 0; i < arrValue.length; i++ ) { + querystring += encodeURIComponent( key ); + if ( arrValue[ i ] !== true ) { + querystring += "=" + encodeURIComponent( arrValue[ i ] ); + } + querystring += "&"; + } + } + } + return location.protocol + "//" + location.host + + location.pathname + querystring.slice( 0, -1 ); +} + +function applyUrlParams() { + var selectedModule, + modulesList = id( "qunit-modulefilter" ), + filter = id( "qunit-filter-input" ).value; + + selectedModule = modulesList ? + decodeURIComponent( modulesList.options[ modulesList.selectedIndex ].value ) : + undefined; + + window.location = setUrl( { + module: ( selectedModule === "" ) ? undefined : selectedModule, + filter: ( filter === "" ) ? undefined : filter, + + // Remove moduleId and testId filters + moduleId: undefined, + testId: undefined + } ); +} + +function toolbarUrlConfigContainer() { + var urlConfigContainer = document.createElement( "span" ); + + urlConfigContainer.innerHTML = getUrlConfigHtml(); + addClass( urlConfigContainer, "qunit-url-config" ); + + // For oldIE support: + // * Add handlers to the individual elements instead of the container + // * Use "click" instead of "change" for checkboxes + addEvents( urlConfigContainer.getElementsByTagName( "input" ), "click", toolbarChanged ); + addEvents( urlConfigContainer.getElementsByTagName( "select" ), "change", toolbarChanged ); + + return urlConfigContainer; +} + +function toolbarLooseFilter() { + var filter = document.createElement( "form" ), + label = document.createElement( "label" ), + input = document.createElement( "input" ), + button = document.createElement( "button" ); + + addClass( filter, "qunit-filter" ); + + label.innerHTML = "Filter: "; + + input.type = "text"; + input.value = config.filter || ""; + input.name = "filter"; + input.id = "qunit-filter-input"; + + button.innerHTML = "Go"; + + label.appendChild( input ); + + filter.appendChild( label ); + filter.appendChild( button ); + addEvent( filter, "submit", function( ev ) { + applyUrlParams(); + + if ( ev && ev.preventDefault ) { + ev.preventDefault(); + } + + return false; + } ); + + return filter; +} + +function toolbarModuleFilterHtml() { + var i, + moduleFilterHtml = ""; + + if ( !modulesList.length ) { + return false; + } + + moduleFilterHtml += "" + + ""; + + return moduleFilterHtml; +} + +function toolbarModuleFilter() { + var toolbar = id( "qunit-testrunner-toolbar" ), + moduleFilter = document.createElement( "span" ), + moduleFilterHtml = toolbarModuleFilterHtml(); + + if ( !toolbar || !moduleFilterHtml ) { + return false; + } + + moduleFilter.setAttribute( "id", "qunit-modulefilter-container" ); + moduleFilter.innerHTML = moduleFilterHtml; + + addEvent( moduleFilter.lastChild, "change", applyUrlParams ); + + toolbar.appendChild( moduleFilter ); +} + +function appendToolbar() { + var toolbar = id( "qunit-testrunner-toolbar" ); + + if ( toolbar ) { + toolbar.appendChild( toolbarUrlConfigContainer() ); + toolbar.appendChild( toolbarLooseFilter() ); + toolbarModuleFilter(); + } +} + +function appendHeader() { + var header = id( "qunit-header" ); + + if ( header ) { + header.innerHTML = "" + header.innerHTML + + " "; + } +} + +function appendBanner() { + var banner = id( "qunit-banner" ); + + if ( banner ) { + banner.className = ""; + } +} + +function appendTestResults() { + var tests = id( "qunit-tests" ), + result = id( "qunit-testresult" ); + + if ( result ) { + result.parentNode.removeChild( result ); + } + + if ( tests ) { + tests.innerHTML = ""; + result = document.createElement( "p" ); + result.id = "qunit-testresult"; + result.className = "result"; + tests.parentNode.insertBefore( result, tests ); + result.innerHTML = "Running...
       "; + } +} + +function storeFixture() { + var fixture = id( "qunit-fixture" ); + if ( fixture ) { + config.fixture = fixture.innerHTML; + } +} + +function appendFilteredTest() { + var testId = QUnit.config.testId; + if ( !testId || testId.length <= 0 ) { + return ""; + } + return "
      Rerunning selected tests: " + + escapeText( testId.join( ", " ) ) + + " Run all tests
      "; +} + +function appendUserAgent() { + var userAgent = id( "qunit-userAgent" ); + + if ( userAgent ) { + userAgent.innerHTML = ""; + userAgent.appendChild( + document.createTextNode( + "QUnit " + QUnit.version + "; " + navigator.userAgent + ) + ); + } +} + +function appendInterface() { + var qunit = id( "qunit" ); + + if ( qunit ) { + qunit.innerHTML = + "

      " + escapeText( document.title ) + "

      " + + "

      " + + "
      " + + appendFilteredTest() + + "

      " + + "
        "; + } + + appendHeader(); + appendBanner(); + appendTestResults(); + appendUserAgent(); + appendToolbar(); +} + +function appendTestsList( modules ) { + var i, l, x, z, test, moduleObj; + + for ( i = 0, l = modules.length; i < l; i++ ) { + moduleObj = modules[ i ]; + + for ( x = 0, z = moduleObj.tests.length; x < z; x++ ) { + test = moduleObj.tests[ x ]; + + appendTest( test.name, test.testId, moduleObj.name ); + } + } +} + +function appendTest( name, testId, moduleName ) { + var title, rerunTrigger, testBlock, assertList, + tests = id( "qunit-tests" ); + + if ( !tests ) { + return; + } + + title = document.createElement( "strong" ); + title.innerHTML = getNameHtml( name, moduleName ); + + rerunTrigger = document.createElement( "a" ); + rerunTrigger.innerHTML = "Rerun"; + rerunTrigger.href = setUrl( { testId: testId } ); + + testBlock = document.createElement( "li" ); + testBlock.appendChild( title ); + testBlock.appendChild( rerunTrigger ); + testBlock.id = "qunit-test-output-" + testId; + + assertList = document.createElement( "ol" ); + assertList.className = "qunit-assert-list"; + + testBlock.appendChild( assertList ); + + tests.appendChild( testBlock ); +} + +// HTML Reporter initialization and load +QUnit.begin( function( details ) { + var i, moduleObj, tests; + + // Sort modules by name for the picker + for ( i = 0; i < details.modules.length; i++ ) { + moduleObj = details.modules[ i ]; + if ( moduleObj.name ) { + modulesList.push( moduleObj.name ); + } + } + modulesList.sort( function( a, b ) { + return a.localeCompare( b ); + } ); + + // Capture fixture HTML from the page + storeFixture(); + + // Initialize QUnit elements + appendInterface(); + appendTestsList( details.modules ); + tests = id( "qunit-tests" ); + if ( tests && config.hidepassed ) { + addClass( tests, "hidepass" ); + } +} ); + +QUnit.done( function( details ) { + var i, key, + banner = id( "qunit-banner" ), + tests = id( "qunit-tests" ), + html = [ + "Tests completed in ", + details.runtime, + " milliseconds.
        ", + "", + details.passed, + " assertions of ", + details.total, + " passed, ", + details.failed, + " failed." + ].join( "" ); + + if ( banner ) { + banner.className = details.failed ? "qunit-fail" : "qunit-pass"; + } + + if ( tests ) { + id( "qunit-testresult" ).innerHTML = html; + } + + if ( config.altertitle && document.title ) { + + // Show ✖ for good, ✔ for bad suite result in title + // use escape sequences in case file gets loaded with non-utf-8-charset + document.title = [ + ( details.failed ? "\u2716" : "\u2714" ), + document.title.replace( /^[\u2714\u2716] /i, "" ) + ].join( " " ); + } + + // Clear own sessionStorage items if all tests passed + if ( config.reorder && defined.sessionStorage && details.failed === 0 ) { + for ( i = 0; i < sessionStorage.length; i++ ) { + key = sessionStorage.key( i++ ); + if ( key.indexOf( "qunit-test-" ) === 0 ) { + sessionStorage.removeItem( key ); + } + } + } + + // Scroll back to top to show results + if ( config.scrolltop && window.scrollTo ) { + window.scrollTo( 0, 0 ); + } +} ); + +function getNameHtml( name, module ) { + var nameHtml = ""; + + if ( module ) { + nameHtml = "" + escapeText( module ) + ": "; + } + + nameHtml += "" + escapeText( name ) + ""; + + return nameHtml; +} + +QUnit.testStart( function( details ) { + var running, testBlock, bad; + + testBlock = id( "qunit-test-output-" + details.testId ); + if ( testBlock ) { + testBlock.className = "running"; + } else { + + // Report later registered tests + appendTest( details.name, details.testId, details.module ); + } + + running = id( "qunit-testresult" ); + if ( running ) { + bad = QUnit.config.reorder && defined.sessionStorage && + +sessionStorage.getItem( "qunit-test-" + details.module + "-" + details.name ); + + running.innerHTML = ( bad ? + "Rerunning previously failed test:
        " : + "Running:
        " ) + + getNameHtml( details.name, details.module ); + } + +} ); + +function stripHtml( string ) { + + // Strip tags, html entity and whitespaces + return string.replace( /<\/?[^>]+(>|$)/g, "" ).replace( /\"/g, "" ).replace( /\s+/g, "" ); +} + +QUnit.log( function( details ) { + var assertList, assertLi, + message, expected, actual, diff, + showDiff = false, + testItem = id( "qunit-test-output-" + details.testId ); + + if ( !testItem ) { + return; + } + + message = escapeText( details.message ) || ( details.result ? "okay" : "failed" ); + message = "" + message + ""; + message += "@ " + details.runtime + " ms"; + + // The pushFailure doesn't provide details.expected + // when it calls, it's implicit to also not show expected and diff stuff + // Also, we need to check details.expected existence, as it can exist and be undefined + if ( !details.result && hasOwn.call( details, "expected" ) ) { + if ( details.negative ) { + expected = "NOT " + QUnit.dump.parse( details.expected ); + } else { + expected = QUnit.dump.parse( details.expected ); + } + + actual = QUnit.dump.parse( details.actual ); + message += ""; + + if ( actual !== expected ) { + + message += ""; + + // Don't show diff if actual or expected are booleans + if ( !( /^(true|false)$/.test( actual ) ) && + !( /^(true|false)$/.test( expected ) ) ) { + diff = QUnit.diff( expected, actual ); + showDiff = stripHtml( diff ).length !== + stripHtml( expected ).length + + stripHtml( actual ).length; + } + + // Don't show diff if expected and actual are totally different + if ( showDiff ) { + message += ""; + } + } else if ( expected.indexOf( "[object Array]" ) !== -1 || + expected.indexOf( "[object Object]" ) !== -1 ) { + message += ""; + } else { + message += ""; + } + + if ( details.source ) { + message += ""; + } + + message += "
        Expected:
        " +
        +			escapeText( expected ) +
        +			"
        Result:
        " +
        +				escapeText( actual ) + "
        Diff:
        " +
        +					diff + "
        Message: " + + "Diff suppressed as the depth of object is more than current max depth (" + + QUnit.config.maxDepth + ").

        Hint: Use QUnit.dump.maxDepth to " + + " run with a higher max depth or " + + "Rerun without max depth.

        Message: " + + "Diff suppressed as the expected and actual results have an equivalent" + + " serialization
        Source:
        " +
        +				escapeText( details.source ) + "
        "; + + // This occurs when pushFailure is set and we have an extracted stack trace + } else if ( !details.result && details.source ) { + message += "" + + "" + + "
        Source:
        " +
        +			escapeText( details.source ) + "
        "; + } + + assertList = testItem.getElementsByTagName( "ol" )[ 0 ]; + + assertLi = document.createElement( "li" ); + assertLi.className = details.result ? "pass" : "fail"; + assertLi.innerHTML = message; + assertList.appendChild( assertLi ); +} ); + +QUnit.testDone( function( details ) { + var testTitle, time, testItem, assertList, + good, bad, testCounts, skipped, sourceName, + tests = id( "qunit-tests" ); + + if ( !tests ) { + return; + } + + testItem = id( "qunit-test-output-" + details.testId ); + + assertList = testItem.getElementsByTagName( "ol" )[ 0 ]; + + good = details.passed; + bad = details.failed; + + // Store result when possible + if ( config.reorder && defined.sessionStorage ) { + if ( bad ) { + sessionStorage.setItem( "qunit-test-" + details.module + "-" + details.name, bad ); + } else { + sessionStorage.removeItem( "qunit-test-" + details.module + "-" + details.name ); + } + } + + if ( bad === 0 ) { + + // Collapse the passing tests + addClass( assertList, "qunit-collapsed" ); + } else if ( bad && config.collapse && !collapseNext ) { + + // Skip collapsing the first failing test + collapseNext = true; + } else { + + // Collapse remaining tests + addClass( assertList, "qunit-collapsed" ); + } + + // The testItem.firstChild is the test name + testTitle = testItem.firstChild; + + testCounts = bad ? + "" + bad + ", " + "" + good + ", " : + ""; + + testTitle.innerHTML += " (" + testCounts + + details.assertions.length + ")"; + + if ( details.skipped ) { + testItem.className = "skipped"; + skipped = document.createElement( "em" ); + skipped.className = "qunit-skipped-label"; + skipped.innerHTML = "skipped"; + testItem.insertBefore( skipped, testTitle ); + } else { + addEvent( testTitle, "click", function() { + toggleClass( assertList, "qunit-collapsed" ); + } ); + + testItem.className = bad ? "fail" : "pass"; + + time = document.createElement( "span" ); + time.className = "runtime"; + time.innerHTML = details.runtime + " ms"; + testItem.insertBefore( time, assertList ); + } + + // Show the source of the test when showing assertions + if ( details.source ) { + sourceName = document.createElement( "p" ); + sourceName.innerHTML = "Source: " + details.source; + addClass( sourceName, "qunit-source" ); + if ( bad === 0 ) { + addClass( sourceName, "qunit-collapsed" ); + } + addEvent( testTitle, "click", function() { + toggleClass( sourceName, "qunit-collapsed" ); + } ); + testItem.appendChild( sourceName ); + } +} ); + +// Avoid readyState issue with phantomjs +// Ref: #818 +var notPhantom = ( function( p ) { + return !( p && p.version && p.version.major > 0 ); +} )( window.phantom ); + +if ( notPhantom && document.readyState === "complete" ) { + QUnit.load(); +} else { + addEvent( window, "load", QUnit.load ); +} + +/* + * This file is a modified version of google-diff-match-patch's JavaScript implementation + * (https://code.google.com/p/google-diff-match-patch/source/browse/trunk/javascript/diff_match_patch_uncompressed.js), + * modifications are licensed as more fully set forth in LICENSE.txt. + * + * The original source of google-diff-match-patch is attributable and licensed as follows: + * + * Copyright 2006 Google Inc. + * https://code.google.com/p/google-diff-match-patch/ + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * More Info: + * https://code.google.com/p/google-diff-match-patch/ + * + * Usage: QUnit.diff(expected, actual) + * + */ +QUnit.diff = ( function() { + function DiffMatchPatch() { + } + + // DIFF FUNCTIONS + + /** + * The data structure representing a diff is an array of tuples: + * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']] + * which means: delete 'Hello', add 'Goodbye' and keep ' world.' + */ + var DIFF_DELETE = -1, + DIFF_INSERT = 1, + DIFF_EQUAL = 0; + + /** + * Find the differences between two texts. Simplifies the problem by stripping + * any common prefix or suffix off the texts before diffing. + * @param {string} text1 Old string to be diffed. + * @param {string} text2 New string to be diffed. + * @param {boolean=} optChecklines Optional speedup flag. If present and false, + * then don't run a line-level diff first to identify the changed areas. + * Defaults to true, which does a faster, slightly less optimal diff. + * @return {!Array.} Array of diff tuples. + */ + DiffMatchPatch.prototype.DiffMain = function( text1, text2, optChecklines ) { + var deadline, checklines, commonlength, + commonprefix, commonsuffix, diffs; + + // The diff must be complete in up to 1 second. + deadline = ( new Date() ).getTime() + 1000; + + // Check for null inputs. + if ( text1 === null || text2 === null ) { + throw new Error( "Null input. (DiffMain)" ); + } + + // Check for equality (speedup). + if ( text1 === text2 ) { + if ( text1 ) { + return [ + [ DIFF_EQUAL, text1 ] + ]; + } + return []; + } + + if ( typeof optChecklines === "undefined" ) { + optChecklines = true; + } + + checklines = optChecklines; + + // Trim off common prefix (speedup). + commonlength = this.diffCommonPrefix( text1, text2 ); + commonprefix = text1.substring( 0, commonlength ); + text1 = text1.substring( commonlength ); + text2 = text2.substring( commonlength ); + + // Trim off common suffix (speedup). + commonlength = this.diffCommonSuffix( text1, text2 ); + commonsuffix = text1.substring( text1.length - commonlength ); + text1 = text1.substring( 0, text1.length - commonlength ); + text2 = text2.substring( 0, text2.length - commonlength ); + + // Compute the diff on the middle block. + diffs = this.diffCompute( text1, text2, checklines, deadline ); + + // Restore the prefix and suffix. + if ( commonprefix ) { + diffs.unshift( [ DIFF_EQUAL, commonprefix ] ); + } + if ( commonsuffix ) { + diffs.push( [ DIFF_EQUAL, commonsuffix ] ); + } + this.diffCleanupMerge( diffs ); + return diffs; + }; + + /** + * Reduce the number of edits by eliminating operationally trivial equalities. + * @param {!Array.} diffs Array of diff tuples. + */ + DiffMatchPatch.prototype.diffCleanupEfficiency = function( diffs ) { + var changes, equalities, equalitiesLength, lastequality, + pointer, preIns, preDel, postIns, postDel; + changes = false; + equalities = []; // Stack of indices where equalities are found. + equalitiesLength = 0; // Keeping our own length var is faster in JS. + /** @type {?string} */ + lastequality = null; + + // Always equal to diffs[equalities[equalitiesLength - 1]][1] + pointer = 0; // Index of current position. + + // Is there an insertion operation before the last equality. + preIns = false; + + // Is there a deletion operation before the last equality. + preDel = false; + + // Is there an insertion operation after the last equality. + postIns = false; + + // Is there a deletion operation after the last equality. + postDel = false; + while ( pointer < diffs.length ) { + + // Equality found. + if ( diffs[ pointer ][ 0 ] === DIFF_EQUAL ) { + if ( diffs[ pointer ][ 1 ].length < 4 && ( postIns || postDel ) ) { + + // Candidate found. + equalities[ equalitiesLength++ ] = pointer; + preIns = postIns; + preDel = postDel; + lastequality = diffs[ pointer ][ 1 ]; + } else { + + // Not a candidate, and can never become one. + equalitiesLength = 0; + lastequality = null; + } + postIns = postDel = false; + + // An insertion or deletion. + } else { + + if ( diffs[ pointer ][ 0 ] === DIFF_DELETE ) { + postDel = true; + } else { + postIns = true; + } + + /* + * Five types to be split: + * ABXYCD + * AXCD + * ABXC + * AXCD + * ABXC + */ + if ( lastequality && ( ( preIns && preDel && postIns && postDel ) || + ( ( lastequality.length < 2 ) && + ( preIns + preDel + postIns + postDel ) === 3 ) ) ) { + + // Duplicate record. + diffs.splice( + equalities[ equalitiesLength - 1 ], + 0, + [ DIFF_DELETE, lastequality ] + ); + + // Change second copy to insert. + diffs[ equalities[ equalitiesLength - 1 ] + 1 ][ 0 ] = DIFF_INSERT; + equalitiesLength--; // Throw away the equality we just deleted; + lastequality = null; + if ( preIns && preDel ) { + + // No changes made which could affect previous entry, keep going. + postIns = postDel = true; + equalitiesLength = 0; + } else { + equalitiesLength--; // Throw away the previous equality. + pointer = equalitiesLength > 0 ? equalities[ equalitiesLength - 1 ] : -1; + postIns = postDel = false; + } + changes = true; + } + } + pointer++; + } + + if ( changes ) { + this.diffCleanupMerge( diffs ); + } + }; + + /** + * Convert a diff array into a pretty HTML report. + * @param {!Array.} diffs Array of diff tuples. + * @param {integer} string to be beautified. + * @return {string} HTML representation. + */ + DiffMatchPatch.prototype.diffPrettyHtml = function( diffs ) { + var op, data, x, + html = []; + for ( x = 0; x < diffs.length; x++ ) { + op = diffs[ x ][ 0 ]; // Operation (insert, delete, equal) + data = diffs[ x ][ 1 ]; // Text of change. + switch ( op ) { + case DIFF_INSERT: + html[ x ] = "" + escapeText( data ) + ""; + break; + case DIFF_DELETE: + html[ x ] = "" + escapeText( data ) + ""; + break; + case DIFF_EQUAL: + html[ x ] = "" + escapeText( data ) + ""; + break; + } + } + return html.join( "" ); + }; + + /** + * Determine the common prefix of two strings. + * @param {string} text1 First string. + * @param {string} text2 Second string. + * @return {number} The number of characters common to the start of each + * string. + */ + DiffMatchPatch.prototype.diffCommonPrefix = function( text1, text2 ) { + var pointermid, pointermax, pointermin, pointerstart; + + // Quick check for common null cases. + if ( !text1 || !text2 || text1.charAt( 0 ) !== text2.charAt( 0 ) ) { + return 0; + } + + // Binary search. + // Performance analysis: https://neil.fraser.name/news/2007/10/09/ + pointermin = 0; + pointermax = Math.min( text1.length, text2.length ); + pointermid = pointermax; + pointerstart = 0; + while ( pointermin < pointermid ) { + if ( text1.substring( pointerstart, pointermid ) === + text2.substring( pointerstart, pointermid ) ) { + pointermin = pointermid; + pointerstart = pointermin; + } else { + pointermax = pointermid; + } + pointermid = Math.floor( ( pointermax - pointermin ) / 2 + pointermin ); + } + return pointermid; + }; + + /** + * Determine the common suffix of two strings. + * @param {string} text1 First string. + * @param {string} text2 Second string. + * @return {number} The number of characters common to the end of each string. + */ + DiffMatchPatch.prototype.diffCommonSuffix = function( text1, text2 ) { + var pointermid, pointermax, pointermin, pointerend; + + // Quick check for common null cases. + if ( !text1 || + !text2 || + text1.charAt( text1.length - 1 ) !== text2.charAt( text2.length - 1 ) ) { + return 0; + } + + // Binary search. + // Performance analysis: https://neil.fraser.name/news/2007/10/09/ + pointermin = 0; + pointermax = Math.min( text1.length, text2.length ); + pointermid = pointermax; + pointerend = 0; + while ( pointermin < pointermid ) { + if ( text1.substring( text1.length - pointermid, text1.length - pointerend ) === + text2.substring( text2.length - pointermid, text2.length - pointerend ) ) { + pointermin = pointermid; + pointerend = pointermin; + } else { + pointermax = pointermid; + } + pointermid = Math.floor( ( pointermax - pointermin ) / 2 + pointermin ); + } + return pointermid; + }; + + /** + * Find the differences between two texts. Assumes that the texts do not + * have any common prefix or suffix. + * @param {string} text1 Old string to be diffed. + * @param {string} text2 New string to be diffed. + * @param {boolean} checklines Speedup flag. If false, then don't run a + * line-level diff first to identify the changed areas. + * If true, then run a faster, slightly less optimal diff. + * @param {number} deadline Time when the diff should be complete by. + * @return {!Array.} Array of diff tuples. + * @private + */ + DiffMatchPatch.prototype.diffCompute = function( text1, text2, checklines, deadline ) { + var diffs, longtext, shorttext, i, hm, + text1A, text2A, text1B, text2B, + midCommon, diffsA, diffsB; + + if ( !text1 ) { + + // Just add some text (speedup). + return [ + [ DIFF_INSERT, text2 ] + ]; + } + + if ( !text2 ) { + + // Just delete some text (speedup). + return [ + [ DIFF_DELETE, text1 ] + ]; + } + + longtext = text1.length > text2.length ? text1 : text2; + shorttext = text1.length > text2.length ? text2 : text1; + i = longtext.indexOf( shorttext ); + if ( i !== -1 ) { + + // Shorter text is inside the longer text (speedup). + diffs = [ + [ DIFF_INSERT, longtext.substring( 0, i ) ], + [ DIFF_EQUAL, shorttext ], + [ DIFF_INSERT, longtext.substring( i + shorttext.length ) ] + ]; + + // Swap insertions for deletions if diff is reversed. + if ( text1.length > text2.length ) { + diffs[ 0 ][ 0 ] = diffs[ 2 ][ 0 ] = DIFF_DELETE; + } + return diffs; + } + + if ( shorttext.length === 1 ) { + + // Single character string. + // After the previous speedup, the character can't be an equality. + return [ + [ DIFF_DELETE, text1 ], + [ DIFF_INSERT, text2 ] + ]; + } + + // Check to see if the problem can be split in two. + hm = this.diffHalfMatch( text1, text2 ); + if ( hm ) { + + // A half-match was found, sort out the return data. + text1A = hm[ 0 ]; + text1B = hm[ 1 ]; + text2A = hm[ 2 ]; + text2B = hm[ 3 ]; + midCommon = hm[ 4 ]; + + // Send both pairs off for separate processing. + diffsA = this.DiffMain( text1A, text2A, checklines, deadline ); + diffsB = this.DiffMain( text1B, text2B, checklines, deadline ); + + // Merge the results. + return diffsA.concat( [ + [ DIFF_EQUAL, midCommon ] + ], diffsB ); + } + + if ( checklines && text1.length > 100 && text2.length > 100 ) { + return this.diffLineMode( text1, text2, deadline ); + } + + return this.diffBisect( text1, text2, deadline ); + }; + + /** + * Do the two texts share a substring which is at least half the length of the + * longer text? + * This speedup can produce non-minimal diffs. + * @param {string} text1 First string. + * @param {string} text2 Second string. + * @return {Array.} Five element Array, containing the prefix of + * text1, the suffix of text1, the prefix of text2, the suffix of + * text2 and the common middle. Or null if there was no match. + * @private + */ + DiffMatchPatch.prototype.diffHalfMatch = function( text1, text2 ) { + var longtext, shorttext, dmp, + text1A, text2B, text2A, text1B, midCommon, + hm1, hm2, hm; + + longtext = text1.length > text2.length ? text1 : text2; + shorttext = text1.length > text2.length ? text2 : text1; + if ( longtext.length < 4 || shorttext.length * 2 < longtext.length ) { + return null; // Pointless. + } + dmp = this; // 'this' becomes 'window' in a closure. + + /** + * Does a substring of shorttext exist within longtext such that the substring + * is at least half the length of longtext? + * Closure, but does not reference any external variables. + * @param {string} longtext Longer string. + * @param {string} shorttext Shorter string. + * @param {number} i Start index of quarter length substring within longtext. + * @return {Array.} Five element Array, containing the prefix of + * longtext, the suffix of longtext, the prefix of shorttext, the suffix + * of shorttext and the common middle. Or null if there was no match. + * @private + */ + function diffHalfMatchI( longtext, shorttext, i ) { + var seed, j, bestCommon, prefixLength, suffixLength, + bestLongtextA, bestLongtextB, bestShorttextA, bestShorttextB; + + // Start with a 1/4 length substring at position i as a seed. + seed = longtext.substring( i, i + Math.floor( longtext.length / 4 ) ); + j = -1; + bestCommon = ""; + while ( ( j = shorttext.indexOf( seed, j + 1 ) ) !== -1 ) { + prefixLength = dmp.diffCommonPrefix( longtext.substring( i ), + shorttext.substring( j ) ); + suffixLength = dmp.diffCommonSuffix( longtext.substring( 0, i ), + shorttext.substring( 0, j ) ); + if ( bestCommon.length < suffixLength + prefixLength ) { + bestCommon = shorttext.substring( j - suffixLength, j ) + + shorttext.substring( j, j + prefixLength ); + bestLongtextA = longtext.substring( 0, i - suffixLength ); + bestLongtextB = longtext.substring( i + prefixLength ); + bestShorttextA = shorttext.substring( 0, j - suffixLength ); + bestShorttextB = shorttext.substring( j + prefixLength ); + } + } + if ( bestCommon.length * 2 >= longtext.length ) { + return [ bestLongtextA, bestLongtextB, + bestShorttextA, bestShorttextB, bestCommon + ]; + } else { + return null; + } + } + + // First check if the second quarter is the seed for a half-match. + hm1 = diffHalfMatchI( longtext, shorttext, + Math.ceil( longtext.length / 4 ) ); + + // Check again based on the third quarter. + hm2 = diffHalfMatchI( longtext, shorttext, + Math.ceil( longtext.length / 2 ) ); + if ( !hm1 && !hm2 ) { + return null; + } else if ( !hm2 ) { + hm = hm1; + } else if ( !hm1 ) { + hm = hm2; + } else { + + // Both matched. Select the longest. + hm = hm1[ 4 ].length > hm2[ 4 ].length ? hm1 : hm2; + } + + // A half-match was found, sort out the return data. + text1A, text1B, text2A, text2B; + if ( text1.length > text2.length ) { + text1A = hm[ 0 ]; + text1B = hm[ 1 ]; + text2A = hm[ 2 ]; + text2B = hm[ 3 ]; + } else { + text2A = hm[ 0 ]; + text2B = hm[ 1 ]; + text1A = hm[ 2 ]; + text1B = hm[ 3 ]; + } + midCommon = hm[ 4 ]; + return [ text1A, text1B, text2A, text2B, midCommon ]; + }; + + /** + * Do a quick line-level diff on both strings, then rediff the parts for + * greater accuracy. + * This speedup can produce non-minimal diffs. + * @param {string} text1 Old string to be diffed. + * @param {string} text2 New string to be diffed. + * @param {number} deadline Time when the diff should be complete by. + * @return {!Array.} Array of diff tuples. + * @private + */ + DiffMatchPatch.prototype.diffLineMode = function( text1, text2, deadline ) { + var a, diffs, linearray, pointer, countInsert, + countDelete, textInsert, textDelete, j; + + // Scan the text on a line-by-line basis first. + a = this.diffLinesToChars( text1, text2 ); + text1 = a.chars1; + text2 = a.chars2; + linearray = a.lineArray; + + diffs = this.DiffMain( text1, text2, false, deadline ); + + // Convert the diff back to original text. + this.diffCharsToLines( diffs, linearray ); + + // Eliminate freak matches (e.g. blank lines) + this.diffCleanupSemantic( diffs ); + + // Rediff any replacement blocks, this time character-by-character. + // Add a dummy entry at the end. + diffs.push( [ DIFF_EQUAL, "" ] ); + pointer = 0; + countDelete = 0; + countInsert = 0; + textDelete = ""; + textInsert = ""; + while ( pointer < diffs.length ) { + switch ( diffs[ pointer ][ 0 ] ) { + case DIFF_INSERT: + countInsert++; + textInsert += diffs[ pointer ][ 1 ]; + break; + case DIFF_DELETE: + countDelete++; + textDelete += diffs[ pointer ][ 1 ]; + break; + case DIFF_EQUAL: + + // Upon reaching an equality, check for prior redundancies. + if ( countDelete >= 1 && countInsert >= 1 ) { + + // Delete the offending records and add the merged ones. + diffs.splice( pointer - countDelete - countInsert, + countDelete + countInsert ); + pointer = pointer - countDelete - countInsert; + a = this.DiffMain( textDelete, textInsert, false, deadline ); + for ( j = a.length - 1; j >= 0; j-- ) { + diffs.splice( pointer, 0, a[ j ] ); + } + pointer = pointer + a.length; + } + countInsert = 0; + countDelete = 0; + textDelete = ""; + textInsert = ""; + break; + } + pointer++; + } + diffs.pop(); // Remove the dummy entry at the end. + + return diffs; + }; + + /** + * Find the 'middle snake' of a diff, split the problem in two + * and return the recursively constructed diff. + * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations. + * @param {string} text1 Old string to be diffed. + * @param {string} text2 New string to be diffed. + * @param {number} deadline Time at which to bail if not yet complete. + * @return {!Array.} Array of diff tuples. + * @private + */ + DiffMatchPatch.prototype.diffBisect = function( text1, text2, deadline ) { + var text1Length, text2Length, maxD, vOffset, vLength, + v1, v2, x, delta, front, k1start, k1end, k2start, + k2end, k2Offset, k1Offset, x1, x2, y1, y2, d, k1, k2; + + // Cache the text lengths to prevent multiple calls. + text1Length = text1.length; + text2Length = text2.length; + maxD = Math.ceil( ( text1Length + text2Length ) / 2 ); + vOffset = maxD; + vLength = 2 * maxD; + v1 = new Array( vLength ); + v2 = new Array( vLength ); + + // Setting all elements to -1 is faster in Chrome & Firefox than mixing + // integers and undefined. + for ( x = 0; x < vLength; x++ ) { + v1[ x ] = -1; + v2[ x ] = -1; + } + v1[ vOffset + 1 ] = 0; + v2[ vOffset + 1 ] = 0; + delta = text1Length - text2Length; + + // If the total number of characters is odd, then the front path will collide + // with the reverse path. + front = ( delta % 2 !== 0 ); + + // Offsets for start and end of k loop. + // Prevents mapping of space beyond the grid. + k1start = 0; + k1end = 0; + k2start = 0; + k2end = 0; + for ( d = 0; d < maxD; d++ ) { + + // Bail out if deadline is reached. + if ( ( new Date() ).getTime() > deadline ) { + break; + } + + // Walk the front path one step. + for ( k1 = -d + k1start; k1 <= d - k1end; k1 += 2 ) { + k1Offset = vOffset + k1; + if ( k1 === -d || ( k1 !== d && v1[ k1Offset - 1 ] < v1[ k1Offset + 1 ] ) ) { + x1 = v1[ k1Offset + 1 ]; + } else { + x1 = v1[ k1Offset - 1 ] + 1; + } + y1 = x1 - k1; + while ( x1 < text1Length && y1 < text2Length && + text1.charAt( x1 ) === text2.charAt( y1 ) ) { + x1++; + y1++; + } + v1[ k1Offset ] = x1; + if ( x1 > text1Length ) { + + // Ran off the right of the graph. + k1end += 2; + } else if ( y1 > text2Length ) { + + // Ran off the bottom of the graph. + k1start += 2; + } else if ( front ) { + k2Offset = vOffset + delta - k1; + if ( k2Offset >= 0 && k2Offset < vLength && v2[ k2Offset ] !== -1 ) { + + // Mirror x2 onto top-left coordinate system. + x2 = text1Length - v2[ k2Offset ]; + if ( x1 >= x2 ) { + + // Overlap detected. + return this.diffBisectSplit( text1, text2, x1, y1, deadline ); + } + } + } + } + + // Walk the reverse path one step. + for ( k2 = -d + k2start; k2 <= d - k2end; k2 += 2 ) { + k2Offset = vOffset + k2; + if ( k2 === -d || ( k2 !== d && v2[ k2Offset - 1 ] < v2[ k2Offset + 1 ] ) ) { + x2 = v2[ k2Offset + 1 ]; + } else { + x2 = v2[ k2Offset - 1 ] + 1; + } + y2 = x2 - k2; + while ( x2 < text1Length && y2 < text2Length && + text1.charAt( text1Length - x2 - 1 ) === + text2.charAt( text2Length - y2 - 1 ) ) { + x2++; + y2++; + } + v2[ k2Offset ] = x2; + if ( x2 > text1Length ) { + + // Ran off the left of the graph. + k2end += 2; + } else if ( y2 > text2Length ) { + + // Ran off the top of the graph. + k2start += 2; + } else if ( !front ) { + k1Offset = vOffset + delta - k2; + if ( k1Offset >= 0 && k1Offset < vLength && v1[ k1Offset ] !== -1 ) { + x1 = v1[ k1Offset ]; + y1 = vOffset + x1 - k1Offset; + + // Mirror x2 onto top-left coordinate system. + x2 = text1Length - x2; + if ( x1 >= x2 ) { + + // Overlap detected. + return this.diffBisectSplit( text1, text2, x1, y1, deadline ); + } + } + } + } + } + + // Diff took too long and hit the deadline or + // number of diffs equals number of characters, no commonality at all. + return [ + [ DIFF_DELETE, text1 ], + [ DIFF_INSERT, text2 ] + ]; + }; + + /** + * Given the location of the 'middle snake', split the diff in two parts + * and recurse. + * @param {string} text1 Old string to be diffed. + * @param {string} text2 New string to be diffed. + * @param {number} x Index of split point in text1. + * @param {number} y Index of split point in text2. + * @param {number} deadline Time at which to bail if not yet complete. + * @return {!Array.} Array of diff tuples. + * @private + */ + DiffMatchPatch.prototype.diffBisectSplit = function( text1, text2, x, y, deadline ) { + var text1a, text1b, text2a, text2b, diffs, diffsb; + text1a = text1.substring( 0, x ); + text2a = text2.substring( 0, y ); + text1b = text1.substring( x ); + text2b = text2.substring( y ); + + // Compute both diffs serially. + diffs = this.DiffMain( text1a, text2a, false, deadline ); + diffsb = this.DiffMain( text1b, text2b, false, deadline ); + + return diffs.concat( diffsb ); + }; + + /** + * Reduce the number of edits by eliminating semantically trivial equalities. + * @param {!Array.} diffs Array of diff tuples. + */ + DiffMatchPatch.prototype.diffCleanupSemantic = function( diffs ) { + var changes, equalities, equalitiesLength, lastequality, + pointer, lengthInsertions2, lengthDeletions2, lengthInsertions1, + lengthDeletions1, deletion, insertion, overlapLength1, overlapLength2; + changes = false; + equalities = []; // Stack of indices where equalities are found. + equalitiesLength = 0; // Keeping our own length var is faster in JS. + /** @type {?string} */ + lastequality = null; + + // Always equal to diffs[equalities[equalitiesLength - 1]][1] + pointer = 0; // Index of current position. + + // Number of characters that changed prior to the equality. + lengthInsertions1 = 0; + lengthDeletions1 = 0; + + // Number of characters that changed after the equality. + lengthInsertions2 = 0; + lengthDeletions2 = 0; + while ( pointer < diffs.length ) { + if ( diffs[ pointer ][ 0 ] === DIFF_EQUAL ) { // Equality found. + equalities[ equalitiesLength++ ] = pointer; + lengthInsertions1 = lengthInsertions2; + lengthDeletions1 = lengthDeletions2; + lengthInsertions2 = 0; + lengthDeletions2 = 0; + lastequality = diffs[ pointer ][ 1 ]; + } else { // An insertion or deletion. + if ( diffs[ pointer ][ 0 ] === DIFF_INSERT ) { + lengthInsertions2 += diffs[ pointer ][ 1 ].length; + } else { + lengthDeletions2 += diffs[ pointer ][ 1 ].length; + } + + // Eliminate an equality that is smaller or equal to the edits on both + // sides of it. + if ( lastequality && ( lastequality.length <= + Math.max( lengthInsertions1, lengthDeletions1 ) ) && + ( lastequality.length <= Math.max( lengthInsertions2, + lengthDeletions2 ) ) ) { + + // Duplicate record. + diffs.splice( + equalities[ equalitiesLength - 1 ], + 0, + [ DIFF_DELETE, lastequality ] + ); + + // Change second copy to insert. + diffs[ equalities[ equalitiesLength - 1 ] + 1 ][ 0 ] = DIFF_INSERT; + + // Throw away the equality we just deleted. + equalitiesLength--; + + // Throw away the previous equality (it needs to be reevaluated). + equalitiesLength--; + pointer = equalitiesLength > 0 ? equalities[ equalitiesLength - 1 ] : -1; + + // Reset the counters. + lengthInsertions1 = 0; + lengthDeletions1 = 0; + lengthInsertions2 = 0; + lengthDeletions2 = 0; + lastequality = null; + changes = true; + } + } + pointer++; + } + + // Normalize the diff. + if ( changes ) { + this.diffCleanupMerge( diffs ); + } + + // Find any overlaps between deletions and insertions. + // e.g: abcxxxxxxdef + // -> abcxxxdef + // e.g: xxxabcdefxxx + // -> defxxxabc + // Only extract an overlap if it is as big as the edit ahead or behind it. + pointer = 1; + while ( pointer < diffs.length ) { + if ( diffs[ pointer - 1 ][ 0 ] === DIFF_DELETE && + diffs[ pointer ][ 0 ] === DIFF_INSERT ) { + deletion = diffs[ pointer - 1 ][ 1 ]; + insertion = diffs[ pointer ][ 1 ]; + overlapLength1 = this.diffCommonOverlap( deletion, insertion ); + overlapLength2 = this.diffCommonOverlap( insertion, deletion ); + if ( overlapLength1 >= overlapLength2 ) { + if ( overlapLength1 >= deletion.length / 2 || + overlapLength1 >= insertion.length / 2 ) { + + // Overlap found. Insert an equality and trim the surrounding edits. + diffs.splice( + pointer, + 0, + [ DIFF_EQUAL, insertion.substring( 0, overlapLength1 ) ] + ); + diffs[ pointer - 1 ][ 1 ] = + deletion.substring( 0, deletion.length - overlapLength1 ); + diffs[ pointer + 1 ][ 1 ] = insertion.substring( overlapLength1 ); + pointer++; + } + } else { + if ( overlapLength2 >= deletion.length / 2 || + overlapLength2 >= insertion.length / 2 ) { + + // Reverse overlap found. + // Insert an equality and swap and trim the surrounding edits. + diffs.splice( + pointer, + 0, + [ DIFF_EQUAL, deletion.substring( 0, overlapLength2 ) ] + ); + + diffs[ pointer - 1 ][ 0 ] = DIFF_INSERT; + diffs[ pointer - 1 ][ 1 ] = + insertion.substring( 0, insertion.length - overlapLength2 ); + diffs[ pointer + 1 ][ 0 ] = DIFF_DELETE; + diffs[ pointer + 1 ][ 1 ] = + deletion.substring( overlapLength2 ); + pointer++; + } + } + pointer++; + } + pointer++; + } + }; + + /** + * Determine if the suffix of one string is the prefix of another. + * @param {string} text1 First string. + * @param {string} text2 Second string. + * @return {number} The number of characters common to the end of the first + * string and the start of the second string. + * @private + */ + DiffMatchPatch.prototype.diffCommonOverlap = function( text1, text2 ) { + var text1Length, text2Length, textLength, + best, length, pattern, found; + + // Cache the text lengths to prevent multiple calls. + text1Length = text1.length; + text2Length = text2.length; + + // Eliminate the null case. + if ( text1Length === 0 || text2Length === 0 ) { + return 0; + } + + // Truncate the longer string. + if ( text1Length > text2Length ) { + text1 = text1.substring( text1Length - text2Length ); + } else if ( text1Length < text2Length ) { + text2 = text2.substring( 0, text1Length ); + } + textLength = Math.min( text1Length, text2Length ); + + // Quick check for the worst case. + if ( text1 === text2 ) { + return textLength; + } + + // Start by looking for a single character match + // and increase length until no match is found. + // Performance analysis: https://neil.fraser.name/news/2010/11/04/ + best = 0; + length = 1; + while ( true ) { + pattern = text1.substring( textLength - length ); + found = text2.indexOf( pattern ); + if ( found === -1 ) { + return best; + } + length += found; + if ( found === 0 || text1.substring( textLength - length ) === + text2.substring( 0, length ) ) { + best = length; + length++; + } + } + }; + + /** + * Split two texts into an array of strings. Reduce the texts to a string of + * hashes where each Unicode character represents one line. + * @param {string} text1 First string. + * @param {string} text2 Second string. + * @return {{chars1: string, chars2: string, lineArray: !Array.}} + * An object containing the encoded text1, the encoded text2 and + * the array of unique strings. + * The zeroth element of the array of unique strings is intentionally blank. + * @private + */ + DiffMatchPatch.prototype.diffLinesToChars = function( text1, text2 ) { + var lineArray, lineHash, chars1, chars2; + lineArray = []; // E.g. lineArray[4] === 'Hello\n' + lineHash = {}; // E.g. lineHash['Hello\n'] === 4 + + // '\x00' is a valid character, but various debuggers don't like it. + // So we'll insert a junk entry to avoid generating a null character. + lineArray[ 0 ] = ""; + + /** + * Split a text into an array of strings. Reduce the texts to a string of + * hashes where each Unicode character represents one line. + * Modifies linearray and linehash through being a closure. + * @param {string} text String to encode. + * @return {string} Encoded string. + * @private + */ + function diffLinesToCharsMunge( text ) { + var chars, lineStart, lineEnd, lineArrayLength, line; + chars = ""; + + // Walk the text, pulling out a substring for each line. + // text.split('\n') would would temporarily double our memory footprint. + // Modifying text would create many large strings to garbage collect. + lineStart = 0; + lineEnd = -1; + + // Keeping our own length variable is faster than looking it up. + lineArrayLength = lineArray.length; + while ( lineEnd < text.length - 1 ) { + lineEnd = text.indexOf( "\n", lineStart ); + if ( lineEnd === -1 ) { + lineEnd = text.length - 1; + } + line = text.substring( lineStart, lineEnd + 1 ); + lineStart = lineEnd + 1; + + if ( lineHash.hasOwnProperty ? lineHash.hasOwnProperty( line ) : + ( lineHash[ line ] !== undefined ) ) { + chars += String.fromCharCode( lineHash[ line ] ); + } else { + chars += String.fromCharCode( lineArrayLength ); + lineHash[ line ] = lineArrayLength; + lineArray[ lineArrayLength++ ] = line; + } + } + return chars; + } + + chars1 = diffLinesToCharsMunge( text1 ); + chars2 = diffLinesToCharsMunge( text2 ); + return { + chars1: chars1, + chars2: chars2, + lineArray: lineArray + }; + }; + + /** + * Rehydrate the text in a diff from a string of line hashes to real lines of + * text. + * @param {!Array.} diffs Array of diff tuples. + * @param {!Array.} lineArray Array of unique strings. + * @private + */ + DiffMatchPatch.prototype.diffCharsToLines = function( diffs, lineArray ) { + var x, chars, text, y; + for ( x = 0; x < diffs.length; x++ ) { + chars = diffs[ x ][ 1 ]; + text = []; + for ( y = 0; y < chars.length; y++ ) { + text[ y ] = lineArray[ chars.charCodeAt( y ) ]; + } + diffs[ x ][ 1 ] = text.join( "" ); + } + }; + + /** + * Reorder and merge like edit sections. Merge equalities. + * Any edit section can move as long as it doesn't cross an equality. + * @param {!Array.} diffs Array of diff tuples. + */ + DiffMatchPatch.prototype.diffCleanupMerge = function( diffs ) { + var pointer, countDelete, countInsert, textInsert, textDelete, + commonlength, changes, diffPointer, position; + diffs.push( [ DIFF_EQUAL, "" ] ); // Add a dummy entry at the end. + pointer = 0; + countDelete = 0; + countInsert = 0; + textDelete = ""; + textInsert = ""; + commonlength; + while ( pointer < diffs.length ) { + switch ( diffs[ pointer ][ 0 ] ) { + case DIFF_INSERT: + countInsert++; + textInsert += diffs[ pointer ][ 1 ]; + pointer++; + break; + case DIFF_DELETE: + countDelete++; + textDelete += diffs[ pointer ][ 1 ]; + pointer++; + break; + case DIFF_EQUAL: + + // Upon reaching an equality, check for prior redundancies. + if ( countDelete + countInsert > 1 ) { + if ( countDelete !== 0 && countInsert !== 0 ) { + + // Factor out any common prefixes. + commonlength = this.diffCommonPrefix( textInsert, textDelete ); + if ( commonlength !== 0 ) { + if ( ( pointer - countDelete - countInsert ) > 0 && + diffs[ pointer - countDelete - countInsert - 1 ][ 0 ] === + DIFF_EQUAL ) { + diffs[ pointer - countDelete - countInsert - 1 ][ 1 ] += + textInsert.substring( 0, commonlength ); + } else { + diffs.splice( 0, 0, [ DIFF_EQUAL, + textInsert.substring( 0, commonlength ) + ] ); + pointer++; + } + textInsert = textInsert.substring( commonlength ); + textDelete = textDelete.substring( commonlength ); + } + + // Factor out any common suffixies. + commonlength = this.diffCommonSuffix( textInsert, textDelete ); + if ( commonlength !== 0 ) { + diffs[ pointer ][ 1 ] = textInsert.substring( textInsert.length - + commonlength ) + diffs[ pointer ][ 1 ]; + textInsert = textInsert.substring( 0, textInsert.length - + commonlength ); + textDelete = textDelete.substring( 0, textDelete.length - + commonlength ); + } + } + + // Delete the offending records and add the merged ones. + if ( countDelete === 0 ) { + diffs.splice( pointer - countInsert, + countDelete + countInsert, [ DIFF_INSERT, textInsert ] ); + } else if ( countInsert === 0 ) { + diffs.splice( pointer - countDelete, + countDelete + countInsert, [ DIFF_DELETE, textDelete ] ); + } else { + diffs.splice( + pointer - countDelete - countInsert, + countDelete + countInsert, + [ DIFF_DELETE, textDelete ], [ DIFF_INSERT, textInsert ] + ); + } + pointer = pointer - countDelete - countInsert + + ( countDelete ? 1 : 0 ) + ( countInsert ? 1 : 0 ) + 1; + } else if ( pointer !== 0 && diffs[ pointer - 1 ][ 0 ] === DIFF_EQUAL ) { + + // Merge this equality with the previous one. + diffs[ pointer - 1 ][ 1 ] += diffs[ pointer ][ 1 ]; + diffs.splice( pointer, 1 ); + } else { + pointer++; + } + countInsert = 0; + countDelete = 0; + textDelete = ""; + textInsert = ""; + break; + } + } + if ( diffs[ diffs.length - 1 ][ 1 ] === "" ) { + diffs.pop(); // Remove the dummy entry at the end. + } + + // Second pass: look for single edits surrounded on both sides by equalities + // which can be shifted sideways to eliminate an equality. + // e.g: ABAC -> ABAC + changes = false; + pointer = 1; + + // Intentionally ignore the first and last element (don't need checking). + while ( pointer < diffs.length - 1 ) { + if ( diffs[ pointer - 1 ][ 0 ] === DIFF_EQUAL && + diffs[ pointer + 1 ][ 0 ] === DIFF_EQUAL ) { + + diffPointer = diffs[ pointer ][ 1 ]; + position = diffPointer.substring( + diffPointer.length - diffs[ pointer - 1 ][ 1 ].length + ); + + // This is a single edit surrounded by equalities. + if ( position === diffs[ pointer - 1 ][ 1 ] ) { + + // Shift the edit over the previous equality. + diffs[ pointer ][ 1 ] = diffs[ pointer - 1 ][ 1 ] + + diffs[ pointer ][ 1 ].substring( 0, diffs[ pointer ][ 1 ].length - + diffs[ pointer - 1 ][ 1 ].length ); + diffs[ pointer + 1 ][ 1 ] = + diffs[ pointer - 1 ][ 1 ] + diffs[ pointer + 1 ][ 1 ]; + diffs.splice( pointer - 1, 1 ); + changes = true; + } else if ( diffPointer.substring( 0, diffs[ pointer + 1 ][ 1 ].length ) === + diffs[ pointer + 1 ][ 1 ] ) { + + // Shift the edit over the next equality. + diffs[ pointer - 1 ][ 1 ] += diffs[ pointer + 1 ][ 1 ]; + diffs[ pointer ][ 1 ] = + diffs[ pointer ][ 1 ].substring( diffs[ pointer + 1 ][ 1 ].length ) + + diffs[ pointer + 1 ][ 1 ]; + diffs.splice( pointer + 1, 1 ); + changes = true; + } + } + pointer++; + } + + // If shifts were made, the diff needs reordering and another shift sweep. + if ( changes ) { + this.diffCleanupMerge( diffs ); + } + }; + + return function( o, n ) { + var diff, output, text; + diff = new DiffMatchPatch(); + output = diff.DiffMain( o, n ); + diff.diffCleanupEfficiency( output ); + text = diff.diffPrettyHtml( output ); + + return text; + }; +}() ); + +}() ); diff --git a/src/tests/tests.html b/src/tests/tests.html index 1be8a5cf0..70e66895f 100644 --- a/src/tests/tests.html +++ b/src/tests/tests.html @@ -3,7 +3,7 @@ QUnit Tests for PuzzleScript - +
        @@ -25,7 +25,7 @@ - + From 5eb131315f2e827ff19332cca0012bfe962d527e Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 9 Mar 2022 15:58:27 +0100 Subject: [PATCH 084/122] Revert "code spring-cleaning - changing a bunch of VARs to CONSTs" This reverts commit 028f525ef462d657316970df865a9a795552d884. --- src/games_dat.js | 2 +- src/js/buildStandalone.js | 2 +- src/js/colors.js | 8 +++--- src/js/compiler.js | 22 ++++++++--------- src/js/debug.js | 8 +++--- src/js/debug_off.js | 8 +++--- src/js/editor.js | 17 +++++++++++++ src/js/engine.js | 23 ++++++++--------- src/js/font.js | 3 ++- src/js/globalVariables.js | 2 +- src/js/graphics.js | 2 +- src/js/inputoutput.js | 2 +- src/js/layout.js | 6 ++--- src/js/sfxr.js | 26 ++++++++++---------- src/tests/resources/errormessage_testdata.js | 3 ++- src/tests/resources/testdata.js | 2 +- src/tests/resources/tests.js | 2 +- 17 files changed, 79 insertions(+), 59 deletions(-) diff --git a/src/games_dat.js b/src/games_dat.js index bc656fa79..99a95f2dc 100644 --- a/src/games_dat.js +++ b/src/games_dat.js @@ -1,4 +1,4 @@ -const games_gallery = [ +var games_gallery = [ { "url": "https://www.puzzlescript.net/play.html?p=6841165", "thumb": "6841165.gif", diff --git a/src/js/buildStandalone.js b/src/js/buildStandalone.js index 38354cdec..dbedbd7a0 100644 --- a/src/js/buildStandalone.js +++ b/src/js/buildStandalone.js @@ -1,4 +1,4 @@ -const get_blob = function() { +var get_blob = function() { return self.Blob; } diff --git a/src/js/colors.js b/src/js/colors.js index 44f14a780..a8e59da1c 100644 --- a/src/js/colors.js +++ b/src/js/colors.js @@ -1,4 +1,4 @@ -const colorPalettesAliases = { +colorPalettesAliases = { 1 : "mastersystem", 2 : "gameboycolour", 3 : "amiga", @@ -15,7 +15,7 @@ const colorPalettesAliases = { 14 : "whitingjp" }; -const colorPalettes = { +colorPalettes = { mastersystem : { black : "#000000", white : "#FFFFFF", @@ -396,9 +396,9 @@ whitingjp : { } }; -const reg_color_names = /(black|white|darkgray|lightgray|gray|grey|darkgrey|lightgrey|red|darkred|lightred|brown|darkbrown|lightbrown|orange|yellow|green|darkgreen|lightgreen|blue|lightblue|darkblue|purple|pink|transparent)\s*/; +var reg_color_names = /(black|white|darkgray|lightgray|gray|grey|darkgrey|lightgrey|red|darkred|lightred|brown|darkbrown|lightbrown|orange|yellow|green|darkgreen|lightgreen|blue|lightblue|darkblue|purple|pink|transparent)\s*/; -const reg_color = /(black|white|gray|darkgray|lightgray|grey|darkgrey|lightgrey|red|darkred|lightred|brown|darkbrown|lightbrown|orange|yellow|green|darkgreen|lightgreen|blue|lightblue|darkblue|purple|pink|transparent|#(?:[0-9a-f]{3}){1,2})\s*/; +var reg_color = /(black|white|gray|darkgray|lightgray|grey|darkgrey|lightgrey|red|darkred|lightred|brown|darkbrown|lightbrown|orange|yellow|green|darkgreen|lightgreen|blue|lightblue|darkblue|purple|pink|transparent|#(?:[0-9a-f]{3}){1,2})\s*/; diff --git a/src/js/compiler.js b/src/js/compiler.js index c5c5f1a54..2b06451cf 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -511,7 +511,7 @@ function levelsToArray(state) { state.levels = processedLevels; } -const directionaggregates = { +var directionaggregates = { 'horizontal': ['left', 'right'], 'horizontal_par': ['left', 'right'], 'horizontal_perp': ['left', 'right'], @@ -524,12 +524,12 @@ const directionaggregates = { 'parallel': ['<', '>'] }; -const relativeDirections = ['^', 'v', '<', '>', 'perpendicular', 'parallel']; -const simpleAbsoluteDirections = ['up', 'down', 'left', 'right']; -const simpleRelativeDirections = ['^', 'v', '<', '>']; -const reg_directions_only = /^(\>|\<|\^|v|up|down|left|right|moving|stationary|no|randomdir|random|horizontal|vertical|orthogonal|perpendicular|parallel|action)$/; +var relativeDirections = ['^', 'v', '<', '>', 'perpendicular', 'parallel']; +var simpleAbsoluteDirections = ['up', 'down', 'left', 'right']; +var simpleRelativeDirections = ['^', 'v', '<', '>']; +var reg_directions_only = /^(\>|\<|\^|v|up|down|left|right|moving|stationary|no|randomdir|random|horizontal|vertical|orthogonal|perpendicular|parallel|action)$/; //redeclaring here, i don't know why -const commandwords = ["sfx0", "sfx1", "sfx2", "sfx3", "sfx4", "sfx5", "sfx6", "sfx7", "sfx8", "sfx9", "sfx10", "cancel", "checkpoint", "restart", "win", "message", "again"]; +var commandwords = ["sfx0", "sfx1", "sfx2", "sfx3", "sfx4", "sfx5", "sfx6", "sfx7", "sfx8", "sfx9", "sfx10", "cancel", "checkpoint", "restart", "win", "message", "again"]; function directionalRule(rule) { @@ -1542,9 +1542,9 @@ function convertRelativeDirsToAbsolute(rule) { } } -const relativeDirs = ['^', 'v', '<', '>', 'parallel', 'perpendicular']; //used to index the following +var relativeDirs = ['^', 'v', '<', '>', 'parallel', 'perpendicular']; //used to index the following //I use _par/_perp just to keep track of providence for replacement purposes later. -const relativeDict = { +var relativeDict = { 'right': ['up', 'down', 'left', 'right', 'horizontal_par', 'vertical_perp'], 'up': ['left', 'right', 'down', 'up', 'vertical_par', 'horizontal_perp'], 'down': ['right', 'left', 'up', 'down', 'vertical_par', 'horizontal_perp'], @@ -2517,7 +2517,7 @@ function validSeed(seed) { return /^\s*\d+\s*$/.exec(seed) !== null; } -const soundDirectionIndicatorMasks = { +var soundDirectionIndicatorMasks = { 'up': parseInt('00001', 2), 'down': parseInt('00010', 2), 'left': parseInt('00100', 2), @@ -2528,7 +2528,7 @@ const soundDirectionIndicatorMasks = { '___action____': parseInt('10000', 2) }; -const soundDirectionIndicators = ["up", "down", "left", "right", "horizontal", "vertical", "orthogonal", "___action____"]; +var soundDirectionIndicators = ["up", "down", "left", "right", "horizontal", "vertical", "orthogonal", "___action____"]; function generateSoundData(state) { @@ -2757,7 +2757,7 @@ function formatHomePage(state) { } } -const MAX_ERRORS = 5; +var MAX_ERRORS = 5; function loadFile(str) { var processor = new codeMirrorFn(); diff --git a/src/js/debug.js b/src/js/debug.js index 043707bae..61b94ddf1 100644 --- a/src/js/debug.js +++ b/src/js/debug.js @@ -1,10 +1,10 @@ -const canSetHTMLColors=false; -const canDump=true; +var canSetHTMLColors=false; +var canDump=true; var recordingStartsFromLevel=0; var inputHistory=[]; var compiledText; -const canOpenEditor=true; -const IDE=true; +var canOpenEditor=true; +var IDE=true; var debugger_turnIndex=0; var debug_visualisation_array=[]; diff --git a/src/js/debug_off.js b/src/js/debug_off.js index 883949cbc..927618f48 100644 --- a/src/js/debug_off.js +++ b/src/js/debug_off.js @@ -1,7 +1,7 @@ -const canSetHTMLColors=true; -const canDump=false; -const canOpenEditor=false; -const IDE=false; +var canSetHTMLColors=true; +var canDump=false; +var canOpenEditor=false; +var IDE=false; const diffToVisualize=null; function stripTags(str) { diff --git a/src/js/editor.js b/src/js/editor.js index 39b82ea9c..0f996d453 100644 --- a/src/js/editor.js +++ b/src/js/editor.js @@ -142,6 +142,23 @@ editor.on('change', function(cm, changeObj) { checkEditorDirty(); }); +var mapObj = { + parallel:"∥", + perpendicular:"⊥" +}; + +/* +editor.on("beforeChange", function(instance, change) { + var startline = + for (var i = 0; i < change.text.length; ++i) + text.push(change.text[i].replace(/parallel|perpendicular/gi, function(matched){ + return mapObj[matched]; + })); + + change.update(null, null, text); +});*/ + + code.editorreference = editor; editor.setOption('theme', 'midnight'); diff --git a/src/js/engine.js b/src/js/engine.js index f72159f08..b32382000 100644 --- a/src/js/engine.js +++ b/src/js/engine.js @@ -14,7 +14,7 @@ z to undo, r to restart........... var RandomGen = new RNG(); -const intro_template = [ +var intro_template = [ "..................................", "..................................", "..................................", @@ -30,7 +30,7 @@ const intro_template = [ ".................................." ]; -const messagecontainer_template = [ +var messagecontainer_template = [ "..................................", "..................................", "..................................", @@ -46,7 +46,7 @@ const messagecontainer_template = [ ".................................." ]; -const titletemplate_firstgo = [ +var titletemplate_firstgo = [ "..................................", "..................................", "..................................", @@ -61,7 +61,7 @@ const titletemplate_firstgo = [ ".Z to undo, R to restart..........", ".................................."]; -const titletemplate_select0 = [ +var titletemplate_select0 = [ "..................................", "..................................", "..................................", @@ -76,7 +76,7 @@ const titletemplate_select0 = [ ".Z to undo, R to restart..........", ".................................."]; - const titletemplate_select1 = [ +var titletemplate_select1 = [ "..................................", "..................................", "..................................", @@ -91,7 +91,8 @@ const titletemplate_select0 = [ ".Z to undo, R to restart..........", ".................................."]; -const titletemplate_firstgo_selected = [ + +var titletemplate_firstgo_selected = [ "..................................", "..................................", "..................................", @@ -106,7 +107,7 @@ const titletemplate_firstgo_selected = [ ".Z to undo, R to restart..........", ".................................."]; -const titletemplate_select0_selected = [ +var titletemplate_select0_selected = [ "..................................", "..................................", "..................................", @@ -121,7 +122,7 @@ const titletemplate_select0_selected = [ ".Z to undo, R to restart..........", ".................................."]; -const titletemplate_select1_selected = [ +var titletemplate_select1_selected = [ "..................................", "..................................", "..................................", @@ -137,8 +138,8 @@ const titletemplate_select1_selected = [ "................................."]; var titleImage=[]; -const titleWidth=titletemplate_select1[0].length; -const titleHeight=titletemplate_select1.length; +var titleWidth=titletemplate_select1[0].length; +var titleHeight=titletemplate_select1.length; var textMode=true; var titleScreen=true; var titleMode=0;//1 means there are options @@ -1281,7 +1282,7 @@ Level.prototype.setMovements = function(index, vec) { } -const ellipsisPattern = ['ellipsis']; +var ellipsisPattern = ['ellipsis']; function BitVec(init) { this.data = new Int32Array(init); diff --git a/src/js/font.js b/src/js/font.js index e236fdd0f..b8751182f 100644 --- a/src/js/font.js +++ b/src/js/font.js @@ -1,4 +1,5 @@ -const font = { + +var font = { '0':` 00000 00000 diff --git a/src/js/globalVariables.js b/src/js/globalVariables.js index 3a3c7621c..892ea74e5 100644 --- a/src/js/globalVariables.js +++ b/src/js/globalVariables.js @@ -35,7 +35,7 @@ var throttle_movement=false; var cache_console_messages=false; var quittingTitleScreen=false; var quittingMessageScreen=false; -const deltatime=17; +var deltatime=17; var timer=0; var repeatinterval=150; var autotick=0; diff --git a/src/js/graphics.js b/src/js/graphics.js index ba49fd3f4..f289c3951 100644 --- a/src/js/graphics.js +++ b/src/js/graphics.js @@ -48,7 +48,7 @@ function regenText(spritecanvas,spritectx) { } } -const editor_s_grille=[[0,1,1,1,0],[1,0,0,0,0],[0,1,1,1,0],[0,0,0,0,1],[0,1,1,1,0]]; +var editor_s_grille=[[0,1,1,1,0],[1,0,0,0,0],[0,1,1,1,0],[0,0,0,0,1],[0,1,1,1,0]]; var spriteimages; function regenSpriteImages() { diff --git a/src/js/inputoutput.js b/src/js/inputoutput.js index 33d11d750..79c152152 100644 --- a/src/js/inputoutput.js +++ b/src/js/inputoutput.js @@ -178,7 +178,7 @@ function matchGlyph(inputmask,glyphAndMask) { return '.'; } -const htmlEntityMap = { +var htmlEntityMap = { "&": "&", "<": "<", ">": ">", diff --git a/src/js/layout.js b/src/js/layout.js index 8d0835cf4..130270fa9 100644 --- a/src/js/layout.js +++ b/src/js/layout.js @@ -1,11 +1,11 @@ -const soundbarwidth = 100; +var soundbarwidth = 100; var lowerbarheight = document.getElementById("soundbar").clientHeight; var upperbarheight = document.getElementById("uppertoolbar").clientHeight; var winwidth = window.innerWidth; var winheight = window.innerHeight; var verticaldragbarWidth = document.getElementById("verticaldragbar").clientWidth; var horizontaldragbarHeight = document.getElementById("horizontaldragbar").clientHeight; -const minimumDimension = 100; +var minimumDimension = 100; function resize_widths(verticaldragbarX){ document.getElementById("leftpanel").style.width = verticaldragbarX + "px"; @@ -27,7 +27,7 @@ function resize_heights(horizontaldragbarY){ } function resize_all(e){ - const smallmovelimit = 100; + smallmovelimit = 100; hdiff = window.innerWidth - winwidth; verticaldragbarX = parseInt(document.getElementById("verticaldragbar").style.left.replace("px","")); diff --git a/src/js/sfxr.js b/src/js/sfxr.js index d42a20b48..94ebe692a 100644 --- a/src/js/sfxr.js +++ b/src/js/sfxr.js @@ -1,15 +1,15 @@ -const SOUND_VOL = 0.25; -const SAMPLE_RATE = 5512; -const BIT_DEPTH = 8; - -const SQUARE = 0; -const SAWTOOTH = 1; -const SINE = 2; -const NOISE = 3; -const TRIANGLE = 4; -const BREAKER = 5; - -const SHAPES = [ +var SOUND_VOL = 0.25; +var SAMPLE_RATE = 5512; +var BIT_DEPTH = 8; + +var SQUARE = 0; +var SAWTOOTH = 1; +var SINE = 2; +var NOISE = 3; +var TRIANGLE = 4; +var BREAKER = 5; + +var SHAPES = [ 'square', 'sawtooth', 'sine', 'noise', 'triangle', 'breaker' ]; @@ -986,7 +986,7 @@ if (typeof exports != 'undefined') { var sfxCache = {}; var cachedSeeds = []; -const CACHE_MAX = 50; +var CACHE_MAX = 50; function cacheSeed(seed){ if (seed in sfxCache) { diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index b2d8d9232..7286dec10 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -1,4 +1,5 @@ -const errormessage_testdata = [ + +var errormessage_testdata = [ [ `Background missing`, ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\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. = target\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\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["you have to define something to be the background"],1] diff --git a/src/tests/resources/testdata.js b/src/tests/resources/testdata.js index c0508c6c0..c78a5c276 100644 --- a/src/tests/resources/testdata.js +++ b/src/tests/resources/testdata.js @@ -1,4 +1,4 @@ -const testdata = [ +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"] diff --git a/src/tests/resources/tests.js b/src/tests/resources/tests.js index 963d93b3a..bf3873a4f 100644 --- a/src/tests/resources/tests.js +++ b/src/tests/resources/tests.js @@ -1,6 +1,6 @@ -const inputVals = {0 : "U",1: "L",2:"D",3:"R",4:"A",tick:"T",undo:" UNDO ",restart:" RESTART "}; +var inputVals = {0 : "U",1: "L",2:"D",3:"R",4:"A",tick:"T",undo:" UNDO ",restart:" RESTART "}; function testFunction(td) { From 0786c7752080e7b72abd1ea3dc367d3e8118078e Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 9 Mar 2022 16:12:58 +0100 Subject: [PATCH 085/122] fixes #770 --- src/js/parser.js | 9 ++++++++- src/tests/resources/errormessage_testdata.js | 4 ++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/js/parser.js b/src/js/parser.js index fee020958..9a5fe9d41 100644 --- a/src/js/parser.js +++ b/src/js/parser.js @@ -1284,13 +1284,16 @@ var codeMirrorFn = function() { } var foundOthers=[]; + var foundSelves=[]; for (var i=0;i=0){ - if (j!=state.collisionLayers.length-1){ + if (j!==state.collisionLayers.length-1){ foundOthers.push(j); + } else { + foundSelves.push(j); } } } @@ -1303,6 +1306,10 @@ var codeMirrorFn = function() { warningStr+="#"+state.collisionLayers.length; logWarning(warningStr +' ). You should fix this!',state.lineNumber); } + if (foundSelves.length>0){ + var warningStr = 'Object "'+candname.toUpperCase()+'" included multiple times (either directly or indirectly) in the same layer.'; + logWarning(warningStr,state.lineNumber); + } state.collisionLayers[state.collisionLayers.length - 1] = state.collisionLayers[state.collisionLayers.length - 1].concat(ar); if (ar.length>0) { diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index 7286dec10..a0848a0e5 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -863,4 +863,8 @@ var errormessage_testdata = [ "loop points in the middle of rule-groups", ["title loop points in the middle of rule-groups\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ player ]\nstartloop\n+ [ crate ] -> [ player ]\n+ [ player ] -> [ crate ]\n\n\n[ crate ] -> [ player ]\nendloop\n+ [ player ] -> [ crate ]\n\n\nstartloop\n[]->[]\n+ [] -> []\nendloop\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 82 : Found a loop point in the middle of a rule. You probably don't want to do this, right?","line 88 : Found a loop point in the middle of a rule. You probably don't want to do this, right?"],0] ], + [ + "can declare the same object to be on a layer multiple times #770", + ["title can declare the same object to be on a layer multiple times #770\nauthor increpare\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground (special, automatically placed in its own layer)\ngreen darkgreen\n11111\n01111\n11101\n11111\n10111\n\nPlayer (Required by game)\npink\n..0..\n00000\n..0..\n.000.\n.0.0.\n\nRobot\ngray black red\n.000.\n.200.\n...0.\n00000\n01010\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n* = Robot\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nPlayer, player, player, player, player, player\nrobot\nBackground\n\n======\nRULES\n======\n\n[ stationary Robot ] -> [ randomDir Robot ] \n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n...........\n.....*.....\n...........\n.....*.....\n...........\n.....*.....\n..P........\n.....*.....\n...........\n\n",["line 49 : Object \"PLAYER\" included multiple times (either directly or indirectly) in the same layer."],0] + ], ]; \ No newline at end of file From 9a25b4917cb05c9542f0d1ff171fd0daa17849ad Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Thu, 10 Mar 2022 02:01:55 +0100 Subject: [PATCH 086/122] fixes #889, fixes #768 --- src/js/compiler.js | 5 +++-- src/js/engine.js | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/js/compiler.js b/src/js/compiler.js index 2b06451cf..c5df29dc4 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -2535,7 +2535,7 @@ function generateSoundData(state) { var sfx_Events = {}; var sfx_CreationMasks = []; var sfx_DestructionMasks = []; - var sfx_MovementMasks = []; + var sfx_MovementMasks = state.collisionLayers.map(x => []); var sfx_MovementFailureMasks = []; for (var i = 0; i < state.sounds.length; i++) { @@ -2659,11 +2659,12 @@ function generateSoundData(state) { var o = { objectMask: objectMask, directionMask: shiftedDirectionMask, + layer:targetLayer, seed: seed }; if (verb === 'move') { - sfx_MovementMasks.push(o); + sfx_MovementMasks[targetLayer].push(o); } else { sfx_MovementFailureMasks.push(o); } diff --git a/src/js/engine.js b/src/js/engine.js index b32382000..a5c900fe0 100644 --- a/src/js/engine.js +++ b/src/js/engine.js @@ -1147,8 +1147,8 @@ function repositionEntitiesOnLayer(positionIndex,layer,dirMask) return false; } - for (var i=0;i Date: Thu, 10 Mar 2022 02:19:45 +0100 Subject: [PATCH 087/122] fixes #891 --- src/js/debug.js | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/src/js/debug.js b/src/js/debug.js index 61b94ddf1..689532f18 100644 --- a/src/js/debug.js +++ b/src/js/debug.js @@ -60,23 +60,26 @@ function dumpTestCase() { consolePrint("
        Compilation error/warning data (for error message tests - errormessage_testdata.js):


        "+resultstring+"


        ",true); - //normal session recording data - var levelDat = compiledText; - var input = inputHistory.concat([]); - var outputDat = convertLevelToString(); + //if the game is currently running and not on the title screen, dump the recording data + if (!titleScreen) { + //normal session recording data + var levelDat = compiledText; + var input = inputHistory.concat([]); + var outputDat = convertLevelToString(); - var resultarray = [levelDat,input,outputDat,recordingStartsFromLevel,loadedLevelSeed]; - var resultstring = JSON.stringify(resultarray); - resultstring = `
        - [
        - "${state.metadata.title||"untitled test"}",
        - ${resultstring}
        - ],`; - - selectableint++; - var tag = 'selectable'+selectableint; - - consolePrint("
        Recorded play session data (for play session tests - testdata.js):


        "+resultstring+"


        ",true); + var resultarray = [levelDat,input,outputDat,recordingStartsFromLevel,loadedLevelSeed]; + var resultstring = JSON.stringify(resultarray); + resultstring = `
        + [
        + "${state.metadata.title||"untitled test"}",
        + ${resultstring}
        + ],`; + + selectableint++; + var tag = 'selectable'+selectableint; + + consolePrint("
        Recorded play session data (for play session tests - testdata.js):


        "+resultstring+"


        ",true); + } } From 56b3246e813cff9823bf7089c75b39089725b6cc Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Thu, 10 Mar 2022 02:19:51 +0100 Subject: [PATCH 088/122] build --- .build/buildnumber.txt | 2 +- src/standalone_inlined.txt | 94 +++++++++++++++++++++++++++++++------- 2 files changed, 78 insertions(+), 18 deletions(-) diff --git a/.build/buildnumber.txt b/.build/buildnumber.txt index 9eef726a7..00b4913f1 100644 --- a/.build/buildnumber.txt +++ b/.build/buildnumber.txt @@ -1 +1 @@ -1727 \ No newline at end of file +1728 \ No newline at end of file diff --git a/src/standalone_inlined.txt b/src/standalone_inlined.txt index a21b9a67d..240f4f8b8 100644 --- a/src/standalone_inlined.txt +++ b/src/standalone_inlined.txt @@ -8329,8 +8329,8 @@ function repositionEntitiesOnLayer(positionIndex,layer,dirMask) return false; } - for (var i=0;i1; + addUndoState(bak); DoUndo(true,false); tryPlayCancelSound(); - return false; + return commandsleft; } if (level.commandQueue.indexOf('restart')>=0) { if (verbose_logging && runrulesonlevelstart_phase){ - logWarning('A "restart" command is being triggered in the "run_rules_on_level_start" section of level creation, which would cause an infinite loop if it was actually triggered, but it\'s being ignored, so it\'s not.',undefined,true); + var r = level.commandQueueSourceRules[level.commandQueue.indexOf('restart')]; + logWarning('A "restart" command is being triggered in the "run_rules_on_level_start" section of level creation, which would cause an infinite loop if it was actually triggered, but it\'s being ignored, so it\'s not.',r.lineNumber,true); } if (verbose_logging) { var r = level.commandQueueSourceRules[level.commandQueue.indexOf('restart')]; - consolePrintFromRule('RESTART command executed, reverting to restart state.',r); + consolePrintFromRule('RESTART command executed, reverting to restart state.',r.lineNumber); consoleCacheDump(); } - processOutputCommands(level.commandQueue); + if (!dontModify){ + processOutputCommands(level.commandQueue); + } addUndoState(bak); - DoRestart(true); + + if (!dontModify){ + DoRestart(true); + } return true; } @@ -9917,7 +9929,9 @@ function processInput(dir,dontDoWin,dontModify) { } } - processOutputCommands(level.commandQueue); + if (!dontModify){ + processOutputCommands(level.commandQueue); + } if (textMode===false) { if (verbose_logging) { @@ -11481,13 +11495,16 @@ var codeMirrorFn = function() { } var foundOthers=[]; + var foundSelves=[]; for (var i=0;i=0){ - if (j!=state.collisionLayers.length-1){ + if (j!==state.collisionLayers.length-1){ foundOthers.push(j); + } else { + foundSelves.push(j); } } } @@ -11500,6 +11517,10 @@ var codeMirrorFn = function() { warningStr+="#"+state.collisionLayers.length; logWarning(warningStr +' ). You should fix this!',state.lineNumber); } + if (foundSelves.length>0){ + var warningStr = 'Object "'+candname.toUpperCase()+'" included multiple times (either directly or indirectly) in the same layer.'; + logWarning(warningStr,state.lineNumber); + } state.collisionLayers[state.collisionLayers.length - 1] = state.collisionLayers[state.collisionLayers.length - 1].concat(ar); if (ar.length>0) { @@ -11757,11 +11778,16 @@ var codeMirrorFn = function() { } } else { stream.match(reg_notcommentstart, true); + state.tokenIndex++; var key = state [state.metadata.length-3]; var val = state.metadata[state.metadata.length-2]; var oldLineNum = state.metadata[state.metadata.length-1]; + if( state.tokenIndex>2){ + logWarning("Error: you can't embed comments in metadata values. Anything after the comment will be ignored.",state.lineNumber); + return 'ERROR'; + } if (key === "background_color" || key === "text_color"){ var candcol = val.trim().toLowerCase(); if (candcol in colorPalettes.arnecolors) { @@ -12537,7 +12563,7 @@ function processRuleString(rule, state, curRules) { } else if (token in directionaggregates) { directions = directions.concat(directionaggregates[token]); } else if (token === 'late') { - late = true; + late = true; } else if (token === 'rigid') { rigid = true; } else if (token === 'random') { @@ -12563,7 +12589,7 @@ function processRuleString(rule, state, curRules) { break; } case 1: - { + { if (token == '[') { bracketbalance++; if (bracketbalance > 1) { @@ -12619,6 +12645,14 @@ function processRuleString(rule, state, curRules) { curcellrow = []; incellrow = false; } else if (token === '->') { + + if (groupNumber !== lineNumber) { + var parentrule = curRules[curRules.length - 1]; + if (parentrule.late!==late){ + logWarning('Oh gosh you can mix late and non-late rules in a rule-group if you really want to, but gosh why would you want to do that? What do you expect to accomplish?', lineNumber); + } + } + if (incellrow) { logError('Encountered an unexpected "->" inside square brackets. It\'s used to separate states, it has no place inside them >:| .', lineNumber); } else if (rhs) { @@ -14032,6 +14066,10 @@ function checkObjectsAreLayered(state) { } } +function isInt(value) { +return !isNaN(value) && (function(x) { return (x | 0) === x; })(parseFloat(value)) +} + function twiddleMetaData(state) { var newmetadata = {}; for (var i = 0; i < state.metadata.length; i += 2) { @@ -14040,17 +14078,35 @@ function twiddleMetaData(state) { newmetadata[key] = val; } - var getCoords = function(str,lineNumber){ + + const getIntCheckedPositive = function(s,lineNumber){ + if (!isFinite(s) || !isInt(s)){ + logWarning(`Wasn't able to make sense of "${s}" as a (whole number) dimension.`,lineNumber); + return NaN; + } + var result = parseInt(s); + if (isNaN(result)){ + logWarning(`Wasn't able to make sense of "${s}" as an dimension.`,lineNumber); + } + if (result<=0){ + logWarning(`The dimension given to me (you gave "${s}") is baad - it should be greater than 0.`,lineNumber); + } + return result; + } + const getCoords = function(str,lineNumber){ var coords = val.split('x'); if (coords.length!==2){ logWarning("Dimensions must be of the form AxB.",lineNumber); return null; } else { - var intcoords = [parseInt(coords[0],10), parseInt(coords[1],10)]; + var intcoords = [getIntCheckedPositive(coords[0],lineNumber), getIntCheckedPositive(coords[0],lineNumber)]; if (!isFinite(coords[0]) || !isFinite(coords[1]) || isNaN(intcoords[0]) || isNaN(intcoords[1])) { logWarning(`Couldn't understand the dimensions given to me (you gave "${val}") - should be of the form AxB.`,lineNumber); return null } else { + if (intcoords[0]<=0 || intcoords[1]<=0){ + logWarning(`The dimensions given to me (you gave "${val}") are baad - they should be > 0.`,lineNumber); + } return intcoords; } } @@ -14277,6 +14333,9 @@ function generateLoopPoints(state) { var firstRuleLine = firstRule.lineNumber; var lastRuleLine = lastRule.lineNumber; + if (loop[0] >= firstRuleLine && loop[0] <= lastRuleLine) { + logWarning("Found a loop point in the middle of a rule. You probably don't want to do this, right?", loop[0]); + } if (outside) { if (firstRuleLine >= loop[0]) { target = i; @@ -14357,7 +14416,7 @@ function generateSoundData(state) { var sfx_Events = {}; var sfx_CreationMasks = []; var sfx_DestructionMasks = []; - var sfx_MovementMasks = []; + var sfx_MovementMasks = state.collisionLayers.map(x => []); var sfx_MovementFailureMasks = []; for (var i = 0; i < state.sounds.length; i++) { @@ -14481,11 +14540,12 @@ function generateSoundData(state) { var o = { objectMask: objectMask, directionMask: shiftedDirectionMask, + layer:targetLayer, seed: seed }; if (verb === 'move') { - sfx_MovementMasks.push(o); + sfx_MovementMasks[targetLayer].push(o); } else { sfx_MovementFailureMasks.push(o); } From 89c215eba6bda8985bb8557fc5023fe1b133e6d8 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Thu, 10 Mar 2022 02:40:32 +0100 Subject: [PATCH 089/122] Revert "update qunit 1.12.0->1.23.1" This reverts commit c30a4b2b5c4b33df6dbbebb23e96247320847eb5. It had an annoying behaviour of applying hashes to test cases rather than numerical ids, which is more useful for my workflow... --- .../{qunit-1.23.1.css => qunit-1.12.0.css} | 163 +- src/tests/resources/qunit-1.12.0.js | 2212 +++++++++ src/tests/resources/qunit-1.23.1.js | 4334 ----------------- src/tests/tests.html | 4 +- 4 files changed, 2265 insertions(+), 4448 deletions(-) rename src/tests/resources/{qunit-1.23.1.css => qunit-1.12.0.css} (52%) create mode 100644 src/tests/resources/qunit-1.12.0.js delete mode 100644 src/tests/resources/qunit-1.23.1.js diff --git a/src/tests/resources/qunit-1.23.1.css b/src/tests/resources/qunit-1.12.0.css similarity index 52% rename from src/tests/resources/qunit-1.23.1.css rename to src/tests/resources/qunit-1.12.0.css index ae68fc412..7ba3f9a30 100644 --- a/src/tests/resources/qunit-1.23.1.css +++ b/src/tests/resources/qunit-1.12.0.css @@ -1,27 +1,26 @@ -/*! - * QUnit 1.23.1 - * https://qunitjs.com/ +/** + * QUnit v1.12.0 - A JavaScript Unit Testing Framework * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license - * https://jquery.org/license + * http://qunitjs.com * - * Date: 2016-04-12T17:29Z + * Copyright 2012 jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license */ /** Font Family and Sizes */ -#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-filteredTest, #qunit-userAgent, #qunit-testresult { +#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult { font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif; } -#qunit-testrunner-toolbar, #qunit-filteredTest, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; } +#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; } #qunit-tests { font-size: smaller; } /** Resets */ -#qunit-tests, #qunit-header, #qunit-banner, #qunit-filteredTest, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter { +#qunit-tests, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter { margin: 0; padding: 0; } @@ -32,29 +31,32 @@ #qunit-header { padding: 0.5em 0 0.5em 1em; - color: #8699A4; - background-color: #0D3349; + color: #8699a4; + background-color: #0d3349; font-size: 1.5em; line-height: 1em; - font-weight: 400; + font-weight: normal; border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + -webkit-border-top-right-radius: 5px; + -webkit-border-top-left-radius: 5px; } #qunit-header a { text-decoration: none; - color: #C2CCD1; + color: #c2ccd1; } #qunit-header a:hover, #qunit-header a:focus { - color: #FFF; + color: #fff; } #qunit-testrunner-toolbar label { display: inline-block; - padding: 0 0.5em 0 0.1em; + padding: 0 .5em 0 .1em; } #qunit-banner { @@ -62,39 +64,21 @@ } #qunit-testrunner-toolbar { - padding: 0.5em 1em 0.5em 1em; + padding: 0.5em 0 0.5em 2em; color: #5E740B; - background-color: #EEE; + background-color: #eee; overflow: hidden; } -#qunit-filteredTest { - padding: 0.5em 1em 0.5em 1em; - background-color: #F4FF77; - color: #366097; -} - #qunit-userAgent { - padding: 0.5em 1em 0.5em 1em; - background-color: #2B81AF; - color: #FFF; + padding: 0.5em 0 0.5em 2.5em; + background-color: #2b81af; + color: #fff; text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px; } #qunit-modulefilter-container { float: right; - padding: 0.2em; -} - -.qunit-url-config { - display: inline-block; - padding: 0.1em; -} - -.qunit-filter { - display: block; - float: right; - margin-left: 1em; } /** Tests: Pass/Fail */ @@ -104,55 +88,24 @@ } #qunit-tests li { - padding: 0.4em 1em 0.4em 1em; - border-bottom: 1px solid #FFF; + padding: 0.4em 0.5em 0.4em 2.5em; + border-bottom: 1px solid #fff; list-style-position: inside; } -#qunit-tests > li { +#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running { display: none; } -#qunit-tests li.running, -#qunit-tests li.pass, -#qunit-tests li.fail, -#qunit-tests li.skipped { - display: list-item; -} - -#qunit-tests.hidepass { - position: relative; -} - -#qunit-tests.hidepass li.running, -#qunit-tests.hidepass li.pass { - visibility: hidden; - position: absolute; - width: 0; - height: 0; - padding: 0; - border: 0; - margin: 0; -} - #qunit-tests li strong { cursor: pointer; } -#qunit-tests li.skipped strong { - cursor: default; -} - #qunit-tests li a { padding: 0.5em; - color: #C2CCD1; + color: #c2ccd1; text-decoration: none; } - -#qunit-tests li p a { - padding: 0.25em; - color: #6B6464; -} #qunit-tests li a:hover, #qunit-tests li a:focus { color: #000; @@ -167,13 +120,11 @@ margin-top: 0.5em; padding: 0.5em; - background-color: #FFF; + background-color: #fff; border-radius: 5px; -} - -.qunit-source { - margin: 0.6em 0 0.3em; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; } .qunit-collapsed { @@ -182,13 +133,13 @@ #qunit-tests table { border-collapse: collapse; - margin-top: 0.2em; + margin-top: .2em; } #qunit-tests th { text-align: right; vertical-align: top; - padding: 0 0.5em 0 0; + padding: 0 .5em 0 0; } #qunit-tests td { @@ -202,26 +153,26 @@ } #qunit-tests del { - background-color: #E0F2BE; - color: #374E0C; + background-color: #e0f2be; + color: #374e0c; text-decoration: none; } #qunit-tests ins { - background-color: #FFCACA; + background-color: #ffcaca; color: #500; text-decoration: none; } /*** Test Counts */ -#qunit-tests b.counts { color: #000; } +#qunit-tests b.counts { color: black; } #qunit-tests b.passed { color: #5E740B; } #qunit-tests b.failed { color: #710909; } #qunit-tests li li { padding: 5px; - background-color: #FFF; + background-color: #fff; border-bottom: none; list-style-position: inside; } @@ -229,8 +180,8 @@ /*** Passing Styles */ #qunit-tests li li.pass { - color: #3C510C; - background-color: #FFF; + color: #3c510c; + background-color: #fff; border-left: 10px solid #C6E746; } @@ -238,7 +189,7 @@ #qunit-tests .pass .test-name { color: #366097; } #qunit-tests .pass .test-actual, -#qunit-tests .pass .test-expected { color: #999; } +#qunit-tests .pass .test-expected { color: #999999; } #qunit-banner.qunit-pass { background-color: #C6E746; } @@ -246,52 +197,40 @@ #qunit-tests li li.fail { color: #710909; - background-color: #FFF; + background-color: #fff; border-left: 10px solid #EE5757; white-space: pre; } #qunit-tests > li:last-child { border-radius: 0 0 5px 5px; + -moz-border-radius: 0 0 5px 5px; + -webkit-border-bottom-right-radius: 5px; + -webkit-border-bottom-left-radius: 5px; } -#qunit-tests .fail { color: #000; background-color: #EE5757; } +#qunit-tests .fail { color: #000000; background-color: #EE5757; } #qunit-tests .fail .test-name, -#qunit-tests .fail .module-name { color: #000; } +#qunit-tests .fail .module-name { color: #000000; } #qunit-tests .fail .test-actual { color: #EE5757; } -#qunit-tests .fail .test-expected { color: #008000; } +#qunit-tests .fail .test-expected { color: green; } #qunit-banner.qunit-fail { background-color: #EE5757; } -/*** Skipped tests */ - -#qunit-tests .skipped { - background-color: #EBECE9; -} - -#qunit-tests .qunit-skipped-label { - background-color: #F4FF77; - display: inline-block; - font-style: normal; - color: #366097; - line-height: 1.8em; - padding: 0 0.5em; - margin: -0.4em 0.4em -0.4em 0; -} /** Result */ #qunit-testresult { - padding: 0.5em 1em 0.5em 1em; + padding: 0.5em 0.5em 0.5em 2.5em; - color: #2B81AF; + color: #2b81af; background-color: #D2E0E6; - border-bottom: 1px solid #FFF; + border-bottom: 1px solid white; } #qunit-testresult .module-name { - font-weight: 700; + font-weight: bold; } /** Fixture */ diff --git a/src/tests/resources/qunit-1.12.0.js b/src/tests/resources/qunit-1.12.0.js new file mode 100644 index 000000000..84c73907d --- /dev/null +++ b/src/tests/resources/qunit-1.12.0.js @@ -0,0 +1,2212 @@ +/** + * QUnit v1.12.0 - A JavaScript Unit Testing Framework + * + * http://qunitjs.com + * + * Copyright 2013 jQuery Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license/ + */ + +(function( window ) { + +var QUnit, + assert, + config, + onErrorFnPrev, + testId = 0, + fileName = (sourceFromStacktrace( 0 ) || "" ).replace(/(:\d+)+\)?/, "").replace(/.+\//, ""), + toString = Object.prototype.toString, + hasOwn = Object.prototype.hasOwnProperty, + // Keep a local reference to Date (GH-283) + Date = window.Date, + setTimeout = window.setTimeout, + defined = { + setTimeout: typeof window.setTimeout !== "undefined", + sessionStorage: (function() { + var x = "qunit-test-string"; + try { + sessionStorage.setItem( x, x ); + sessionStorage.removeItem( x ); + return true; + } catch( e ) { + return false; + } + }()) + }, + /** + * Provides a normalized error string, correcting an issue + * with IE 7 (and prior) where Error.prototype.toString is + * not properly implemented + * + * Based on http://es5.github.com/#x15.11.4.4 + * + * @param {String|Error} error + * @return {String} error message + */ + errorString = function( error ) { + var name, message, + errorString = error.toString(); + if ( errorString.substring( 0, 7 ) === "[object" ) { + name = error.name ? error.name.toString() : "Error"; + message = error.message ? error.message.toString() : ""; + if ( name && message ) { + return name + ": " + message; + } else if ( name ) { + return name; + } else if ( message ) { + return message; + } else { + return "Error"; + } + } else { + return errorString; + } + }, + /** + * Makes a clone of an object using only Array or Object as base, + * and copies over the own enumerable properties. + * + * @param {Object} obj + * @return {Object} New object with only the own properties (recursively). + */ + objectValues = function( obj ) { + // Grunt 0.3.x uses an older version of jshint that still has jshint/jshint#392. + /*jshint newcap: false */ + var key, val, + vals = QUnit.is( "array", obj ) ? [] : {}; + for ( key in obj ) { + if ( hasOwn.call( obj, key ) ) { + val = obj[key]; + vals[key] = val === Object(val) ? objectValues(val) : val; + } + } + return vals; + }; + +function Test( settings ) { + extend( this, settings ); + this.assertions = []; + this.testNumber = ++Test.count; +} + +Test.count = 0; + +Test.prototype = { + init: function() { + var a, b, li, + tests = id( "qunit-tests" ); + + if ( tests ) { + b = document.createElement( "strong" ); + b.innerHTML = this.nameHtml; + + // `a` initialized at top of scope + a = document.createElement( "a" ); + a.innerHTML = "Rerun"; + a.href = QUnit.url({ testNumber: this.testNumber }); + + li = document.createElement( "li" ); + li.appendChild( b ); + li.appendChild( a ); + li.className = "running"; + li.id = this.id = "qunit-test-output" + testId++; + + tests.appendChild( li ); + } + }, + setup: function() { + if ( + // Emit moduleStart when we're switching from one module to another + this.module !== config.previousModule || + // They could be equal (both undefined) but if the previousModule property doesn't + // yet exist it means this is the first test in a suite that isn't wrapped in a + // module, in which case we'll just emit a moduleStart event for 'undefined'. + // Without this, reporters can get testStart before moduleStart which is a problem. + !hasOwn.call( config, "previousModule" ) + ) { + if ( hasOwn.call( config, "previousModule" ) ) { + runLoggingCallbacks( "moduleDone", QUnit, { + name: config.previousModule, + failed: config.moduleStats.bad, + passed: config.moduleStats.all - config.moduleStats.bad, + total: config.moduleStats.all + }); + } + config.previousModule = this.module; + config.moduleStats = { all: 0, bad: 0 }; + runLoggingCallbacks( "moduleStart", QUnit, { + name: this.module + }); + } + + config.current = this; + + this.testEnvironment = extend({ + setup: function() {}, + teardown: function() {} + }, this.moduleTestEnvironment ); + + this.started = +new Date(); + runLoggingCallbacks( "testStart", QUnit, { + name: this.testName, + module: this.module + }); + + /*jshint camelcase:false */ + + + /** + * Expose the current test environment. + * + * @deprecated since 1.12.0: Use QUnit.config.current.testEnvironment instead. + */ + QUnit.current_testEnvironment = this.testEnvironment; + + /*jshint camelcase:true */ + + if ( !config.pollution ) { + saveGlobal(); + } + if ( config.notrycatch ) { + this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert ); + return; + } + try { + this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert ); + } catch( e ) { + QUnit.pushFailure( "Setup failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) ); + } + }, + run: function() { + config.current = this; + + var running = id( "qunit-testresult" ); + + if ( running ) { + running.innerHTML = "Running:
        " + this.nameHtml; + } + + if ( this.async ) { + QUnit.stop(); + } + + this.callbackStarted = +new Date(); + + if ( config.notrycatch ) { + this.callback.call( this.testEnvironment, QUnit.assert ); + this.callbackRuntime = +new Date() - this.callbackStarted; + return; + } + + try { + this.callback.call( this.testEnvironment, QUnit.assert ); + this.callbackRuntime = +new Date() - this.callbackStarted; + } catch( e ) { + this.callbackRuntime = +new Date() - this.callbackStarted; + + QUnit.pushFailure( "Died on test #" + (this.assertions.length + 1) + " " + this.stack + ": " + ( e.message || e ), extractStacktrace( e, 0 ) ); + // else next test will carry the responsibility + saveGlobal(); + + // Restart the tests if they're blocking + if ( config.blocking ) { + QUnit.start(); + } + } + }, + teardown: function() { + config.current = this; + if ( config.notrycatch ) { + if ( typeof this.callbackRuntime === "undefined" ) { + this.callbackRuntime = +new Date() - this.callbackStarted; + } + this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert ); + return; + } else { + try { + this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert ); + } catch( e ) { + QUnit.pushFailure( "Teardown failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) ); + } + } + checkPollution(); + }, + finish: function() { + config.current = this; + if ( config.requireExpects && this.expected === null ) { + QUnit.pushFailure( "Expected number of assertions to be defined, but expect() was not called.", this.stack ); + } else if ( this.expected !== null && this.expected !== this.assertions.length ) { + QUnit.pushFailure( "Expected " + this.expected + " assertions, but " + this.assertions.length + " were run", this.stack ); + } else if ( this.expected === null && !this.assertions.length ) { + QUnit.pushFailure( "Expected at least one assertion, but none were run - call expect(0) to accept zero assertions.", this.stack ); + } + + var i, assertion, a, b, time, li, ol, + test = this, + good = 0, + bad = 0, + tests = id( "qunit-tests" ); + + this.runtime = +new Date() - this.started; + config.stats.all += this.assertions.length; + config.moduleStats.all += this.assertions.length; + + if ( tests ) { + ol = document.createElement( "ol" ); + ol.className = "qunit-assert-list"; + + for ( i = 0; i < this.assertions.length; i++ ) { + assertion = this.assertions[i]; + + li = document.createElement( "li" ); + li.className = assertion.result ? "pass" : "fail"; + li.innerHTML = assertion.message || ( assertion.result ? "okay" : "failed" ); + ol.appendChild( li ); + + if ( assertion.result ) { + good++; + } else { + bad++; + config.stats.bad++; + config.moduleStats.bad++; + } + } + + // store result when possible + if ( QUnit.config.reorder && defined.sessionStorage ) { + if ( bad ) { + sessionStorage.setItem( "qunit-test-" + this.module + "-" + this.testName, bad ); + } else { + sessionStorage.removeItem( "qunit-test-" + this.module + "-" + this.testName ); + } + } + + if ( bad === 0 ) { + addClass( ol, "qunit-collapsed" ); + } + + // `b` initialized at top of scope + b = document.createElement( "strong" ); + b.innerHTML = this.nameHtml + " (" + bad + ", " + good + ", " + this.assertions.length + ")"; + + addEvent(b, "click", function() { + var next = b.parentNode.lastChild, + collapsed = hasClass( next, "qunit-collapsed" ); + ( collapsed ? removeClass : addClass )( next, "qunit-collapsed" ); + }); + + addEvent(b, "dblclick", function( e ) { + var target = e && e.target ? e.target : window.event.srcElement; + if ( target.nodeName.toLowerCase() === "span" || target.nodeName.toLowerCase() === "b" ) { + target = target.parentNode; + } + if ( window.location && target.nodeName.toLowerCase() === "strong" ) { + window.location = QUnit.url({ testNumber: test.testNumber }); + } + }); + + // `time` initialized at top of scope + time = document.createElement( "span" ); + time.className = "runtime"; + time.innerHTML = this.runtime + " ms"; + + // `li` initialized at top of scope + li = id( this.id ); + li.className = bad ? "fail" : "pass"; + li.removeChild( li.firstChild ); + a = li.firstChild; + li.appendChild( b ); + li.appendChild( a ); + li.appendChild( time ); + li.appendChild( ol ); + + } else { + for ( i = 0; i < this.assertions.length; i++ ) { + if ( !this.assertions[i].result ) { + bad++; + config.stats.bad++; + config.moduleStats.bad++; + } + } + } + + runLoggingCallbacks( "testDone", QUnit, { + name: this.testName, + module: this.module, + failed: bad, + passed: this.assertions.length - bad, + total: this.assertions.length, + duration: this.runtime + }); + + QUnit.reset(); + + config.current = undefined; + }, + + queue: function() { + var bad, + test = this; + + synchronize(function() { + test.init(); + }); + function run() { + // each of these can by async + synchronize(function() { + test.setup(); + }); + synchronize(function() { + test.run(); + }); + synchronize(function() { + test.teardown(); + }); + synchronize(function() { + test.finish(); + }); + } + + // `bad` initialized at top of scope + // defer when previous test run passed, if storage is available + bad = QUnit.config.reorder && defined.sessionStorage && + +sessionStorage.getItem( "qunit-test-" + this.module + "-" + this.testName ); + + if ( bad ) { + run(); + } else { + synchronize( run, true ); + } + } +}; + +// Root QUnit object. +// `QUnit` initialized at top of scope +QUnit = { + + // call on start of module test to prepend name to all tests + module: function( name, testEnvironment ) { + config.currentModule = name; + config.currentModuleTestEnvironment = testEnvironment; + config.modules[name] = true; + }, + + asyncTest: function( testName, expected, callback ) { + if ( arguments.length === 2 ) { + callback = expected; + expected = null; + } + + QUnit.test( testName, expected, callback, true ); + }, + + test: function( testName, expected, callback, async ) { + var test, + nameHtml = "" + escapeText( testName ) + ""; + + if ( arguments.length === 2 ) { + callback = expected; + expected = null; + } + + if ( config.currentModule ) { + nameHtml = "" + escapeText( config.currentModule ) + ": " + nameHtml; + } + + test = new Test({ + nameHtml: nameHtml, + testName: testName, + expected: expected, + async: async, + callback: callback, + module: config.currentModule, + moduleTestEnvironment: config.currentModuleTestEnvironment, + stack: sourceFromStacktrace( 2 ) + }); + + if ( !validTest( test ) ) { + return; + } + + test.queue(); + }, + + // Specify the number of expected assertions to guarantee that failed test (no assertions are run at all) don't slip through. + expect: function( asserts ) { + if (arguments.length === 1) { + config.current.expected = asserts; + } else { + return config.current.expected; + } + }, + + start: function( count ) { + // QUnit hasn't been initialized yet. + // Note: RequireJS (et al) may delay onLoad + if ( config.semaphore === undefined ) { + QUnit.begin(function() { + // This is triggered at the top of QUnit.load, push start() to the event loop, to allow QUnit.load to finish first + setTimeout(function() { + QUnit.start( count ); + }); + }); + return; + } + + config.semaphore -= count || 1; + // don't start until equal number of stop-calls + if ( config.semaphore > 0 ) { + return; + } + // ignore if start is called more often then stop + if ( config.semaphore < 0 ) { + config.semaphore = 0; + QUnit.pushFailure( "Called start() while already started (QUnit.config.semaphore was 0 already)", null, sourceFromStacktrace(2) ); + return; + } + // A slight delay, to avoid any current callbacks + if ( defined.setTimeout ) { + setTimeout(function() { + if ( config.semaphore > 0 ) { + return; + } + if ( config.timeout ) { + clearTimeout( config.timeout ); + } + + config.blocking = false; + process( true ); + }, 13); + } else { + config.blocking = false; + process( true ); + } + }, + + stop: function( count ) { + config.semaphore += count || 1; + config.blocking = true; + + if ( config.testTimeout && defined.setTimeout ) { + clearTimeout( config.timeout ); + config.timeout = setTimeout(function() { + QUnit.ok( false, "Test timed out" ); + config.semaphore = 1; + QUnit.start(); + }, config.testTimeout ); + } + } +}; + +// `assert` initialized at top of scope +// Assert helpers +// All of these must either call QUnit.push() or manually do: +// - runLoggingCallbacks( "log", .. ); +// - config.current.assertions.push({ .. }); +// We attach it to the QUnit object *after* we expose the public API, +// otherwise `assert` will become a global variable in browsers (#341). +assert = { + /** + * Asserts rough true-ish result. + * @name ok + * @function + * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" ); + */ + ok: function( result, msg ) { + if ( !config.current ) { + throw new Error( "ok() assertion outside test context, was " + sourceFromStacktrace(2) ); + } + result = !!result; + msg = msg || (result ? "okay" : "failed" ); + + var source, + details = { + module: config.current.module, + name: config.current.testName, + result: result, + message: msg + }; + + msg = "" + escapeText( msg ) + ""; + + if ( !result ) { + source = sourceFromStacktrace( 2 ); + if ( source ) { + details.source = source; + msg += "
        Source:
        " + escapeText( source ) + "
        "; + } + } + runLoggingCallbacks( "log", QUnit, details ); + config.current.assertions.push({ + result: result, + message: msg + }); + }, + + /** + * Assert that the first two arguments are equal, with an optional message. + * Prints out both actual and expected values. + * @name equal + * @function + * @example equal( format( "Received {0} bytes.", 2), "Received 2 bytes.", "format() replaces {0} with next argument" ); + */ + equal: function( actual, expected, message ) { + /*jshint eqeqeq:false */ + QUnit.push( expected == actual, actual, expected, message ); + }, + + /** + * @name notEqual + * @function + */ + notEqual: function( actual, expected, message ) { + /*jshint eqeqeq:false */ + QUnit.push( expected != actual, actual, expected, message ); + }, + + /** + * @name propEqual + * @function + */ + propEqual: function( actual, expected, message ) { + actual = objectValues(actual); + expected = objectValues(expected); + QUnit.push( QUnit.equiv(actual, expected), actual, expected, message ); + }, + + /** + * @name notPropEqual + * @function + */ + notPropEqual: function( actual, expected, message ) { + actual = objectValues(actual); + expected = objectValues(expected); + QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message ); + }, + + /** + * @name deepEqual + * @function + */ + deepEqual: function( actual, expected, message ) { + QUnit.push( QUnit.equiv(actual, expected), actual, expected, message ); + }, + + /** + * @name notDeepEqual + * @function + */ + notDeepEqual: function( actual, expected, message ) { + QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message ); + }, + + /** + * @name strictEqual + * @function + */ + strictEqual: function( actual, expected, message ) { + QUnit.push( expected === actual, actual, expected, message ); + }, + + /** + * @name notStrictEqual + * @function + */ + notStrictEqual: function( actual, expected, message ) { + QUnit.push( expected !== actual, actual, expected, message ); + }, + + "throws": function( block, expected, message ) { + var actual, + expectedOutput = expected, + ok = false; + + // 'expected' is optional + if ( typeof expected === "string" ) { + message = expected; + expected = null; + } + + config.current.ignoreGlobalErrors = true; + try { + block.call( config.current.testEnvironment ); + } catch (e) { + actual = e; + } + config.current.ignoreGlobalErrors = false; + + if ( actual ) { + // we don't want to validate thrown error + if ( !expected ) { + ok = true; + expectedOutput = null; + // expected is a regexp + } else if ( QUnit.objectType( expected ) === "regexp" ) { + ok = expected.test( errorString( actual ) ); + // expected is a constructor + } else if ( actual instanceof expected ) { + ok = true; + // expected is a validation function which returns true is validation passed + } else if ( expected.call( {}, actual ) === true ) { + expectedOutput = null; + ok = true; + } + + QUnit.push( ok, actual, expectedOutput, message ); + } else { + QUnit.pushFailure( message, null, "No exception was thrown." ); + } + } +}; + +/** + * @deprecated since 1.8.0 + * Kept assertion helpers in root for backwards compatibility. + */ +extend( QUnit, assert ); + +/** + * @deprecated since 1.9.0 + * Kept root "raises()" for backwards compatibility. + * (Note that we don't introduce assert.raises). + */ +QUnit.raises = assert[ "throws" ]; + +/** + * @deprecated since 1.0.0, replaced with error pushes since 1.3.0 + * Kept to avoid TypeErrors for undefined methods. + */ +QUnit.equals = function() { + QUnit.push( false, false, false, "QUnit.equals has been deprecated since 2009 (e88049a0), use QUnit.equal instead" ); +}; +QUnit.same = function() { + QUnit.push( false, false, false, "QUnit.same has been deprecated since 2009 (e88049a0), use QUnit.deepEqual instead" ); +}; + +// We want access to the constructor's prototype +(function() { + function F() {} + F.prototype = QUnit; + QUnit = new F(); + // Make F QUnit's constructor so that we can add to the prototype later + QUnit.constructor = F; +}()); + +/** + * Config object: Maintain internal state + * Later exposed as QUnit.config + * `config` initialized at top of scope + */ +config = { + // The queue of tests to run + queue: [], + + // block until document ready + blocking: true, + + // when enabled, show only failing tests + // gets persisted through sessionStorage and can be changed in UI via checkbox + hidepassed: false, + + // by default, run previously failed tests first + // very useful in combination with "Hide passed tests" checked + reorder: true, + + // by default, modify document.title when suite is done + altertitle: true, + + // when enabled, all tests must call expect() + requireExpects: false, + + // add checkboxes that are persisted in the query-string + // when enabled, the id is set to `true` as a `QUnit.config` property + urlConfig: [ + { + id: "noglobals", + label: "Check for Globals", + tooltip: "Enabling this will test if any test introduces new properties on the `window` object. Stored as query-strings." + }, + { + id: "notrycatch", + label: "No try-catch", + tooltip: "Enabling this will run tests outside of a try-catch block. Makes debugging exceptions in IE reasonable. Stored as query-strings." + } + ], + + // Set of all modules. + modules: {}, + + // logging callback queues + begin: [], + done: [], + log: [], + testStart: [], + testDone: [], + moduleStart: [], + moduleDone: [] +}; + +// Export global variables, unless an 'exports' object exists, +// in that case we assume we're in CommonJS (dealt with on the bottom of the script) +if ( typeof exports === "undefined" ) { + extend( window, QUnit.constructor.prototype ); + + // Expose QUnit object + window.QUnit = QUnit; +} + +// Initialize more QUnit.config and QUnit.urlParams +(function() { + var i, + location = window.location || { search: "", protocol: "file:" }, + params = location.search.slice( 1 ).split( "&" ), + length = params.length, + urlParams = {}, + current; + + if ( params[ 0 ] ) { + for ( i = 0; i < length; i++ ) { + current = params[ i ].split( "=" ); + current[ 0 ] = decodeURIComponent( current[ 0 ] ); + // allow just a key to turn on a flag, e.g., test.html?noglobals + current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true; + urlParams[ current[ 0 ] ] = current[ 1 ]; + } + } + + QUnit.urlParams = urlParams; + + // String search anywhere in moduleName+testName + config.filter = urlParams.filter; + + // Exact match of the module name + config.module = urlParams.module; + + config.testNumber = parseInt( urlParams.testNumber, 10 ) || null; + + // Figure out if we're running the tests from a server or not + QUnit.isLocal = location.protocol === "file:"; +}()); + +// Extend QUnit object, +// these after set here because they should not be exposed as global functions +extend( QUnit, { + assert: assert, + + config: config, + + // Initialize the configuration options + init: function() { + extend( config, { + stats: { all: 0, bad: 0 }, + moduleStats: { all: 0, bad: 0 }, + started: +new Date(), + updateRate: 1000, + blocking: false, + autostart: true, + autorun: false, + filter: "", + queue: [], + semaphore: 1 + }); + + var tests, banner, result, + qunit = id( "qunit" ); + + if ( qunit ) { + qunit.innerHTML = + "

        " + escapeText( document.title ) + "

        " + + "

        " + + "
        " + + "

        " + + "
          "; + } + + tests = id( "qunit-tests" ); + banner = id( "qunit-banner" ); + result = id( "qunit-testresult" ); + + if ( tests ) { + tests.innerHTML = ""; + } + + if ( banner ) { + banner.className = ""; + } + + if ( result ) { + result.parentNode.removeChild( result ); + } + + if ( tests ) { + result = document.createElement( "p" ); + result.id = "qunit-testresult"; + result.className = "result"; + tests.parentNode.insertBefore( result, tests ); + result.innerHTML = "Running...
           "; + } + }, + + // Resets the test setup. Useful for tests that modify the DOM. + /* + DEPRECATED: Use multiple tests instead of resetting inside a test. + Use testStart or testDone for custom cleanup. + This method will throw an error in 2.0, and will be removed in 2.1 + */ + reset: function() { + var fixture = id( "qunit-fixture" ); + if ( fixture ) { + fixture.innerHTML = config.fixture; + } + }, + + // Trigger an event on an element. + // @example triggerEvent( document.body, "click" ); + triggerEvent: function( elem, type, event ) { + if ( document.createEvent ) { + event = document.createEvent( "MouseEvents" ); + event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView, + 0, 0, 0, 0, 0, false, false, false, false, 0, null); + + elem.dispatchEvent( event ); + } else if ( elem.fireEvent ) { + elem.fireEvent( "on" + type ); + } + }, + + // Safe object type checking + is: function( type, obj ) { + return QUnit.objectType( obj ) === type; + }, + + objectType: function( obj ) { + if ( typeof obj === "undefined" ) { + return "undefined"; + // consider: typeof null === object + } + if ( obj === null ) { + return "null"; + } + + var match = toString.call( obj ).match(/^\[object\s(.*)\]$/), + type = match && match[1] || ""; + + switch ( type ) { + case "Number": + if ( isNaN(obj) ) { + return "nan"; + } + return "number"; + case "String": + case "Boolean": + case "Array": + case "Date": + case "RegExp": + case "Function": + return type.toLowerCase(); + } + if ( typeof obj === "object" ) { + return "object"; + } + return undefined; + }, + + push: function( result, actual, expected, message ) { + if ( !config.current ) { + throw new Error( "assertion outside test context, was " + sourceFromStacktrace() ); + } + + var output, source, + details = { + module: config.current.module, + name: config.current.testName, + result: result, + message: message, + actual: actual, + expected: expected + }; + + message = escapeText( message ) || ( result ? "okay" : "failed" ); + message = "" + message + ""; + output = message; + + if ( !result ) { + expected = escapeText( QUnit.jsDump.parse(expected) ); + actual = escapeText( QUnit.jsDump.parse(actual) ); + output += ""; + + if ( actual !== expected ) { + output += ""; + output += ""; + } + + source = sourceFromStacktrace(); + + if ( source ) { + details.source = source; + output += ""; + } + + output += "
          Expected:
          " + expected + "
          Result:
          " + actual + "
          Diff:
          " + QUnit.diff( expected, actual ) + "
          Source:
          " + escapeText( source ) + "
          "; + } + + runLoggingCallbacks( "log", QUnit, details ); + + config.current.assertions.push({ + result: !!result, + message: output + }); + }, + + pushFailure: function( message, source, actual ) { + if ( !config.current ) { + throw new Error( "pushFailure() assertion outside test context, was " + sourceFromStacktrace(2) ); + } + + var output, + details = { + module: config.current.module, + name: config.current.testName, + result: false, + message: message + }; + + message = escapeText( message ) || "error"; + message = "" + message + ""; + output = message; + + output += ""; + + if ( actual ) { + output += ""; + } + + if ( source ) { + details.source = source; + output += ""; + } + + output += "
          Result:
          " + escapeText( actual ) + "
          Source:
          " + escapeText( source ) + "
          "; + + runLoggingCallbacks( "log", QUnit, details ); + + config.current.assertions.push({ + result: false, + message: output + }); + }, + + url: function( params ) { + params = extend( extend( {}, QUnit.urlParams ), params ); + var key, + querystring = "?"; + + for ( key in params ) { + if ( hasOwn.call( params, key ) ) { + querystring += encodeURIComponent( key ) + "=" + + encodeURIComponent( params[ key ] ) + "&"; + } + } + return window.location.protocol + "//" + window.location.host + + window.location.pathname + querystring.slice( 0, -1 ); + }, + + extend: extend, + id: id, + addEvent: addEvent, + addClass: addClass, + hasClass: hasClass, + removeClass: removeClass + // load, equiv, jsDump, diff: Attached later +}); + +/** + * @deprecated: Created for backwards compatibility with test runner that set the hook function + * into QUnit.{hook}, instead of invoking it and passing the hook function. + * QUnit.constructor is set to the empty F() above so that we can add to it's prototype here. + * Doing this allows us to tell if the following methods have been overwritten on the actual + * QUnit object. + */ +extend( QUnit.constructor.prototype, { + + // Logging callbacks; all receive a single argument with the listed properties + // run test/logs.html for any related changes + begin: registerLoggingCallback( "begin" ), + + // done: { failed, passed, total, runtime } + done: registerLoggingCallback( "done" ), + + // log: { result, actual, expected, message } + log: registerLoggingCallback( "log" ), + + // testStart: { name } + testStart: registerLoggingCallback( "testStart" ), + + // testDone: { name, failed, passed, total, duration } + testDone: registerLoggingCallback( "testDone" ), + + // moduleStart: { name } + moduleStart: registerLoggingCallback( "moduleStart" ), + + // moduleDone: { name, failed, passed, total } + moduleDone: registerLoggingCallback( "moduleDone" ) +}); + +if ( typeof document === "undefined" || document.readyState === "complete" ) { + config.autorun = true; +} + +QUnit.load = function() { + runLoggingCallbacks( "begin", QUnit, {} ); + + // Initialize the config, saving the execution queue + var banner, filter, i, label, len, main, ol, toolbar, userAgent, val, + urlConfigCheckboxesContainer, urlConfigCheckboxes, moduleFilter, + numModules = 0, + moduleNames = [], + moduleFilterHtml = "", + urlConfigHtml = "", + oldconfig = extend( {}, config ); + + QUnit.init(); + extend(config, oldconfig); + + config.blocking = false; + + len = config.urlConfig.length; + + for ( i = 0; i < len; i++ ) { + val = config.urlConfig[i]; + if ( typeof val === "string" ) { + val = { + id: val, + label: val, + tooltip: "[no tooltip available]" + }; + } + config[ val.id ] = QUnit.urlParams[ val.id ]; + urlConfigHtml += ""; + } + for ( i in config.modules ) { + if ( config.modules.hasOwnProperty( i ) ) { + moduleNames.push(i); + } + } + numModules = moduleNames.length; + moduleNames.sort( function( a, b ) { + return a.localeCompare( b ); + }); + moduleFilterHtml += ""; + + // `userAgent` initialized at top of scope + userAgent = id( "qunit-userAgent" ); + if ( userAgent ) { + userAgent.innerHTML = navigator.userAgent; + } + + // `banner` initialized at top of scope + banner = id( "qunit-header" ); + if ( banner ) { + banner.innerHTML = "" + banner.innerHTML + " "; + } + + // `toolbar` initialized at top of scope + toolbar = id( "qunit-testrunner-toolbar" ); + if ( toolbar ) { + // `filter` initialized at top of scope + filter = document.createElement( "input" ); + filter.type = "checkbox"; + filter.id = "qunit-filter-pass"; + + addEvent( filter, "click", function() { + var tmp, + ol = document.getElementById( "qunit-tests" ); + + if ( filter.checked ) { + ol.className = ol.className + " hidepass"; + } else { + tmp = " " + ol.className.replace( /[\n\t\r]/g, " " ) + " "; + ol.className = tmp.replace( / hidepass /, " " ); + } + if ( defined.sessionStorage ) { + if (filter.checked) { + sessionStorage.setItem( "qunit-filter-passed-tests", "true" ); + } else { + sessionStorage.removeItem( "qunit-filter-passed-tests" ); + } + } + }); + + if ( config.hidepassed || defined.sessionStorage && sessionStorage.getItem( "qunit-filter-passed-tests" ) ) { + filter.checked = true; + // `ol` initialized at top of scope + ol = document.getElementById( "qunit-tests" ); + ol.className = ol.className + " hidepass"; + } + toolbar.appendChild( filter ); + + // `label` initialized at top of scope + label = document.createElement( "label" ); + label.setAttribute( "for", "qunit-filter-pass" ); + label.setAttribute( "title", "Only show tests and assertions that fail. Stored in sessionStorage." ); + label.innerHTML = "Hide passed tests"; + toolbar.appendChild( label ); + + urlConfigCheckboxesContainer = document.createElement("span"); + urlConfigCheckboxesContainer.innerHTML = urlConfigHtml; + urlConfigCheckboxes = urlConfigCheckboxesContainer.getElementsByTagName("input"); + // For oldIE support: + // * Add handlers to the individual elements instead of the container + // * Use "click" instead of "change" + // * Fallback from event.target to event.srcElement + addEvents( urlConfigCheckboxes, "click", function( event ) { + var params = {}, + target = event.target || event.srcElement; + params[ target.name ] = target.checked ? true : undefined; + window.location = QUnit.url( params ); + }); + toolbar.appendChild( urlConfigCheckboxesContainer ); + + if (numModules > 1) { + moduleFilter = document.createElement( "span" ); + moduleFilter.setAttribute( "id", "qunit-modulefilter-container" ); + moduleFilter.innerHTML = moduleFilterHtml; + addEvent( moduleFilter.lastChild, "change", function() { + var selectBox = moduleFilter.getElementsByTagName("select")[0], + selectedModule = decodeURIComponent(selectBox.options[selectBox.selectedIndex].value); + + window.location = QUnit.url({ + module: ( selectedModule === "" ) ? undefined : selectedModule, + // Remove any existing filters + filter: undefined, + testNumber: undefined + }); + }); + toolbar.appendChild(moduleFilter); + } + } + + // `main` initialized at top of scope + main = id( "qunit-fixture" ); + if ( main ) { + config.fixture = main.innerHTML; + } + + if ( config.autostart ) { + QUnit.start(); + } +}; + +addEvent( window, "load", QUnit.load ); + +// `onErrorFnPrev` initialized at top of scope +// Preserve other handlers +onErrorFnPrev = window.onerror; + +// Cover uncaught exceptions +// Returning true will suppress the default browser handler, +// returning false will let it run. +window.onerror = function ( error, filePath, linerNr ) { + var ret = false; + if ( onErrorFnPrev ) { + ret = onErrorFnPrev( error, filePath, linerNr ); + } + + // Treat return value as window.onerror itself does, + // Only do our handling if not suppressed. + if ( ret !== true ) { + if ( QUnit.config.current ) { + if ( QUnit.config.current.ignoreGlobalErrors ) { + return true; + } + QUnit.pushFailure( error, filePath + ":" + linerNr ); + } else { + QUnit.test( "global failure", extend( function() { + QUnit.pushFailure( error, filePath + ":" + linerNr ); + }, { validTest: validTest } ) ); + } + return false; + } + + return ret; +}; + +function done() { + config.autorun = true; + + // Log the last module results + if ( config.currentModule ) { + runLoggingCallbacks( "moduleDone", QUnit, { + name: config.currentModule, + failed: config.moduleStats.bad, + passed: config.moduleStats.all - config.moduleStats.bad, + total: config.moduleStats.all + }); + } + delete config.previousModule; + + var i, key, + banner = id( "qunit-banner" ), + tests = id( "qunit-tests" ), + runtime = +new Date() - config.started, + passed = config.stats.all - config.stats.bad, + html = [ + "Tests completed in ", + runtime, + " milliseconds.
          ", + "", + passed, + " assertions of ", + config.stats.all, + " passed, ", + config.stats.bad, + " failed." + ].join( "" ); + + if ( banner ) { + banner.className = ( config.stats.bad ? "qunit-fail" : "qunit-pass" ); + } + + if ( tests ) { + id( "qunit-testresult" ).innerHTML = html; + } + + if ( config.altertitle && typeof document !== "undefined" && document.title ) { + // show ✖ for good, ✔ for bad suite result in title + // use escape sequences in case file gets loaded with non-utf-8-charset + document.title = [ + ( config.stats.bad ? "\u2716" : "\u2714" ), + document.title.replace( /^[\u2714\u2716] /i, "" ) + ].join( " " ); + } + + // clear own sessionStorage items if all tests passed + if ( config.reorder && defined.sessionStorage && config.stats.bad === 0 ) { + // `key` & `i` initialized at top of scope + for ( i = 0; i < sessionStorage.length; i++ ) { + key = sessionStorage.key( i++ ); + if ( key.indexOf( "qunit-test-" ) === 0 ) { + sessionStorage.removeItem( key ); + } + } + } + + // scroll back to top to show results + if ( window.scrollTo ) { + window.scrollTo(0, 0); + } + + runLoggingCallbacks( "done", QUnit, { + failed: config.stats.bad, + passed: passed, + total: config.stats.all, + runtime: runtime + }); +} + +/** @return Boolean: true if this test should be ran */ +function validTest( test ) { + var include, + filter = config.filter && config.filter.toLowerCase(), + module = config.module && config.module.toLowerCase(), + fullName = (test.module + ": " + test.testName).toLowerCase(); + + // Internally-generated tests are always valid + if ( test.callback && test.callback.validTest === validTest ) { + delete test.callback.validTest; + return true; + } + + if ( config.testNumber ) { + return test.testNumber === config.testNumber; + } + + if ( module && ( !test.module || test.module.toLowerCase() !== module ) ) { + return false; + } + + if ( !filter ) { + return true; + } + + include = filter.charAt( 0 ) !== "!"; + if ( !include ) { + filter = filter.slice( 1 ); + } + + // If the filter matches, we need to honour include + if ( fullName.indexOf( filter ) !== -1 ) { + return include; + } + + // Otherwise, do the opposite + return !include; +} + +// so far supports only Firefox, Chrome and Opera (buggy), Safari (for real exceptions) +// Later Safari and IE10 are supposed to support error.stack as well +// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack +function extractStacktrace( e, offset ) { + offset = offset === undefined ? 3 : offset; + + var stack, include, i; + + if ( e.stacktrace ) { + // Opera + return e.stacktrace.split( "\n" )[ offset + 3 ]; + } else if ( e.stack ) { + // Firefox, Chrome + stack = e.stack.split( "\n" ); + if (/^error$/i.test( stack[0] ) ) { + stack.shift(); + } + if ( fileName ) { + include = []; + for ( i = offset; i < stack.length; i++ ) { + if ( stack[ i ].indexOf( fileName ) !== -1 ) { + break; + } + include.push( stack[ i ] ); + } + if ( include.length ) { + return include.join( "\n" ); + } + } + return stack[ offset ]; + } else if ( e.sourceURL ) { + // Safari, PhantomJS + // hopefully one day Safari provides actual stacktraces + // exclude useless self-reference for generated Error objects + if ( /qunit.js$/.test( e.sourceURL ) ) { + return; + } + // for actual exceptions, this is useful + return e.sourceURL + ":" + e.line; + } +} +function sourceFromStacktrace( offset ) { + try { + throw new Error(); + } catch ( e ) { + return extractStacktrace( e, offset ); + } +} + +/** + * Escape text for attribute or text content. + */ +function escapeText( s ) { + if ( !s ) { + return ""; + } + s = s + ""; + // Both single quotes and double quotes (for attributes) + return s.replace( /['"<>&]/g, function( s ) { + switch( s ) { + case "'": + return "'"; + case "\"": + return """; + case "<": + return "<"; + case ">": + return ">"; + case "&": + return "&"; + } + }); +} + +function synchronize( callback, last ) { + config.queue.push( callback ); + + if ( config.autorun && !config.blocking ) { + process( last ); + } +} + +function process( last ) { + function next() { + process( last ); + } + var start = new Date().getTime(); + config.depth = config.depth ? config.depth + 1 : 1; + + while ( config.queue.length && !config.blocking ) { + if ( !defined.setTimeout || config.updateRate <= 0 || ( ( new Date().getTime() - start ) < config.updateRate ) ) { + config.queue.shift()(); + } else { + setTimeout( next, 13 ); + break; + } + } + config.depth--; + if ( last && !config.blocking && !config.queue.length && config.depth === 0 ) { + done(); + } +} + +function saveGlobal() { + config.pollution = []; + + if ( config.noglobals ) { + for ( var key in window ) { + if ( hasOwn.call( window, key ) ) { + // in Opera sometimes DOM element ids show up here, ignore them + if ( /^qunit-test-output/.test( key ) ) { + continue; + } + config.pollution.push( key ); + } + } + } +} + +function checkPollution() { + var newGlobals, + deletedGlobals, + old = config.pollution; + + saveGlobal(); + + newGlobals = diff( config.pollution, old ); + if ( newGlobals.length > 0 ) { + QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join(", ") ); + } + + deletedGlobals = diff( old, config.pollution ); + if ( deletedGlobals.length > 0 ) { + QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join(", ") ); + } +} + +// returns a new Array with the elements that are in a but not in b +function diff( a, b ) { + var i, j, + result = a.slice(); + + for ( i = 0; i < result.length; i++ ) { + for ( j = 0; j < b.length; j++ ) { + if ( result[i] === b[j] ) { + result.splice( i, 1 ); + i--; + break; + } + } + } + return result; +} + +function extend( a, b ) { + for ( var prop in b ) { + if ( hasOwn.call( b, prop ) ) { + // Avoid "Member not found" error in IE8 caused by messing with window.constructor + if ( !( prop === "constructor" && a === window ) ) { + if ( b[ prop ] === undefined ) { + delete a[ prop ]; + } else { + a[ prop ] = b[ prop ]; + } + } + } + } + + return a; +} + +/** + * @param {HTMLElement} elem + * @param {string} type + * @param {Function} fn + */ +function addEvent( elem, type, fn ) { + // Standards-based browsers + if ( elem.addEventListener ) { + elem.addEventListener( type, fn, false ); + // IE + } else { + elem.attachEvent( "on" + type, fn ); + } +} + +/** + * @param {Array|NodeList} elems + * @param {string} type + * @param {Function} fn + */ +function addEvents( elems, type, fn ) { + var i = elems.length; + while ( i-- ) { + addEvent( elems[i], type, fn ); + } +} + +function hasClass( elem, name ) { + return (" " + elem.className + " ").indexOf(" " + name + " ") > -1; +} + +function addClass( elem, name ) { + if ( !hasClass( elem, name ) ) { + elem.className += (elem.className ? " " : "") + name; + } +} + +function removeClass( elem, name ) { + var set = " " + elem.className + " "; + // Class name may appear multiple times + while ( set.indexOf(" " + name + " ") > -1 ) { + set = set.replace(" " + name + " " , " "); + } + // If possible, trim it for prettiness, but not necessarily + elem.className = typeof set.trim === "function" ? set.trim() : set.replace(/^\s+|\s+$/g, ""); +} + +function id( name ) { + return !!( typeof document !== "undefined" && document && document.getElementById ) && + document.getElementById( name ); +} + +function registerLoggingCallback( key ) { + return function( callback ) { + config[key].push( callback ); + }; +} + +// Supports deprecated method of completely overwriting logging callbacks +function runLoggingCallbacks( key, scope, args ) { + var i, callbacks; + if ( QUnit.hasOwnProperty( key ) ) { + QUnit[ key ].call(scope, args ); + } else { + callbacks = config[ key ]; + for ( i = 0; i < callbacks.length; i++ ) { + callbacks[ i ].call( scope, args ); + } + } +} + +// Test for equality any JavaScript type. +// Author: Philippe Rathé +QUnit.equiv = (function() { + + // Call the o related callback with the given arguments. + function bindCallbacks( o, callbacks, args ) { + var prop = QUnit.objectType( o ); + if ( prop ) { + if ( QUnit.objectType( callbacks[ prop ] ) === "function" ) { + return callbacks[ prop ].apply( callbacks, args ); + } else { + return callbacks[ prop ]; // or undefined + } + } + } + + // the real equiv function + var innerEquiv, + // stack to decide between skip/abort functions + callers = [], + // stack to avoiding loops from circular referencing + parents = [], + parentsB = [], + + getProto = Object.getPrototypeOf || function ( obj ) { + /*jshint camelcase:false */ + return obj.__proto__; + }, + callbacks = (function () { + + // for string, boolean, number and null + function useStrictEquality( b, a ) { + /*jshint eqeqeq:false */ + if ( b instanceof a.constructor || a instanceof b.constructor ) { + // to catch short annotation VS 'new' annotation of a + // declaration + // e.g. var i = 1; + // var j = new Number(1); + return a == b; + } else { + return a === b; + } + } + + return { + "string": useStrictEquality, + "boolean": useStrictEquality, + "number": useStrictEquality, + "null": useStrictEquality, + "undefined": useStrictEquality, + + "nan": function( b ) { + return isNaN( b ); + }, + + "date": function( b, a ) { + return QUnit.objectType( b ) === "date" && a.valueOf() === b.valueOf(); + }, + + "regexp": function( b, a ) { + return QUnit.objectType( b ) === "regexp" && + // the regex itself + a.source === b.source && + // and its modifiers + a.global === b.global && + // (gmi) ... + a.ignoreCase === b.ignoreCase && + a.multiline === b.multiline && + a.sticky === b.sticky; + }, + + // - skip when the property is a method of an instance (OOP) + // - abort otherwise, + // initial === would have catch identical references anyway + "function": function() { + var caller = callers[callers.length - 1]; + return caller !== Object && typeof caller !== "undefined"; + }, + + "array": function( b, a ) { + var i, j, len, loop, aCircular, bCircular; + + // b could be an object literal here + if ( QUnit.objectType( b ) !== "array" ) { + return false; + } + + len = a.length; + if ( len !== b.length ) { + // safe and faster + return false; + } + + // track reference to avoid circular references + parents.push( a ); + parentsB.push( b ); + for ( i = 0; i < len; i++ ) { + loop = false; + for ( j = 0; j < parents.length; j++ ) { + aCircular = parents[j] === a[i]; + bCircular = parentsB[j] === b[i]; + if ( aCircular || bCircular ) { + if ( a[i] === b[i] || aCircular && bCircular ) { + loop = true; + } else { + parents.pop(); + parentsB.pop(); + return false; + } + } + } + if ( !loop && !innerEquiv(a[i], b[i]) ) { + parents.pop(); + parentsB.pop(); + return false; + } + } + parents.pop(); + parentsB.pop(); + return true; + }, + + "object": function( b, a ) { + /*jshint forin:false */ + var i, j, loop, aCircular, bCircular, + // Default to true + eq = true, + aProperties = [], + bProperties = []; + + // comparing constructors is more strict than using + // instanceof + if ( a.constructor !== b.constructor ) { + // Allow objects with no prototype to be equivalent to + // objects with Object as their constructor. + if ( !(( getProto(a) === null && getProto(b) === Object.prototype ) || + ( getProto(b) === null && getProto(a) === Object.prototype ) ) ) { + return false; + } + } + + // stack constructor before traversing properties + callers.push( a.constructor ); + + // track reference to avoid circular references + parents.push( a ); + parentsB.push( b ); + + // be strict: don't ensure hasOwnProperty and go deep + for ( i in a ) { + loop = false; + for ( j = 0; j < parents.length; j++ ) { + aCircular = parents[j] === a[i]; + bCircular = parentsB[j] === b[i]; + if ( aCircular || bCircular ) { + if ( a[i] === b[i] || aCircular && bCircular ) { + loop = true; + } else { + eq = false; + break; + } + } + } + aProperties.push(i); + if ( !loop && !innerEquiv(a[i], b[i]) ) { + eq = false; + break; + } + } + + parents.pop(); + parentsB.pop(); + callers.pop(); // unstack, we are done + + for ( i in b ) { + bProperties.push( i ); // collect b's properties + } + + // Ensures identical properties name + return eq && innerEquiv( aProperties.sort(), bProperties.sort() ); + } + }; + }()); + + innerEquiv = function() { // can take multiple arguments + var args = [].slice.apply( arguments ); + if ( args.length < 2 ) { + return true; // end transition + } + + return (function( a, b ) { + if ( a === b ) { + return true; // catch the most you can + } else if ( a === null || b === null || typeof a === "undefined" || + typeof b === "undefined" || + QUnit.objectType(a) !== QUnit.objectType(b) ) { + return false; // don't lose time with error prone cases + } else { + return bindCallbacks(a, callbacks, [ b, a ]); + } + + // apply transition with (1..n) arguments + }( args[0], args[1] ) && innerEquiv.apply( this, args.splice(1, args.length - 1 )) ); + }; + + return innerEquiv; +}()); + +/** + * jsDump Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com | + * http://flesler.blogspot.com Licensed under BSD + * (http://www.opensource.org/licenses/bsd-license.php) Date: 5/15/2008 + * + * @projectDescription Advanced and extensible data dumping for Javascript. + * @version 1.0.0 + * @author Ariel Flesler + * @link {http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html} + */ +QUnit.jsDump = (function() { + function quote( str ) { + return "\"" + str.toString().replace( /"/g, "\\\"" ) + "\""; + } + function literal( o ) { + return o + ""; + } + function join( pre, arr, post ) { + var s = jsDump.separator(), + base = jsDump.indent(), + inner = jsDump.indent(1); + if ( arr.join ) { + arr = arr.join( "," + s + inner ); + } + if ( !arr ) { + return pre + post; + } + return [ pre, inner + arr, base + post ].join(s); + } + function array( arr, stack ) { + var i = arr.length, ret = new Array(i); + this.up(); + while ( i-- ) { + ret[i] = this.parse( arr[i] , undefined , stack); + } + this.down(); + return join( "[", ret, "]" ); + } + + var reName = /^function (\w+)/, + jsDump = { + // type is used mostly internally, you can fix a (custom)type in advance + parse: function( obj, type, stack ) { + stack = stack || [ ]; + var inStack, res, + parser = this.parsers[ type || this.typeOf(obj) ]; + + type = typeof parser; + inStack = inArray( obj, stack ); + + if ( inStack !== -1 ) { + return "recursion(" + (inStack - stack.length) + ")"; + } + if ( type === "function" ) { + stack.push( obj ); + res = parser.call( this, obj, stack ); + stack.pop(); + return res; + } + return ( type === "string" ) ? parser : this.parsers.error; + }, + typeOf: function( obj ) { + var type; + if ( obj === null ) { + type = "null"; + } else if ( typeof obj === "undefined" ) { + type = "undefined"; + } else if ( QUnit.is( "regexp", obj) ) { + type = "regexp"; + } else if ( QUnit.is( "date", obj) ) { + type = "date"; + } else if ( QUnit.is( "function", obj) ) { + type = "function"; + } else if ( typeof obj.setInterval !== undefined && typeof obj.document !== "undefined" && typeof obj.nodeType === "undefined" ) { + type = "window"; + } else if ( obj.nodeType === 9 ) { + type = "document"; + } else if ( obj.nodeType ) { + type = "node"; + } else if ( + // native arrays + toString.call( obj ) === "[object Array]" || + // NodeList objects + ( typeof obj.length === "number" && typeof obj.item !== "undefined" && ( obj.length ? obj.item(0) === obj[0] : ( obj.item( 0 ) === null && typeof obj[0] === "undefined" ) ) ) + ) { + type = "array"; + } else if ( obj.constructor === Error.prototype.constructor ) { + type = "error"; + } else { + type = typeof obj; + } + return type; + }, + separator: function() { + return this.multiline ? this.HTML ? "
          " : "\n" : this.HTML ? " " : " "; + }, + // extra can be a number, shortcut for increasing-calling-decreasing + indent: function( extra ) { + if ( !this.multiline ) { + return ""; + } + var chr = this.indentChar; + if ( this.HTML ) { + chr = chr.replace( /\t/g, " " ).replace( / /g, " " ); + } + return new Array( this.depth + ( extra || 0 ) ).join(chr); + }, + up: function( a ) { + this.depth += a || 1; + }, + down: function( a ) { + this.depth -= a || 1; + }, + setParser: function( name, parser ) { + this.parsers[name] = parser; + }, + // The next 3 are exposed so you can use them + quote: quote, + literal: literal, + join: join, + // + depth: 1, + // This is the list of parsers, to modify them, use jsDump.setParser + parsers: { + window: "[Window]", + document: "[Document]", + error: function(error) { + return "Error(\"" + error.message + "\")"; + }, + unknown: "[Unknown]", + "null": "null", + "undefined": "undefined", + "function": function( fn ) { + var ret = "function", + // functions never have name in IE + name = "name" in fn ? fn.name : (reName.exec(fn) || [])[1]; + + if ( name ) { + ret += " " + name; + } + ret += "( "; + + ret = [ ret, QUnit.jsDump.parse( fn, "functionArgs" ), "){" ].join( "" ); + return join( ret, QUnit.jsDump.parse(fn,"functionCode" ), "}" ); + }, + array: array, + nodelist: array, + "arguments": array, + object: function( map, stack ) { + /*jshint forin:false */ + var ret = [ ], keys, key, val, i; + QUnit.jsDump.up(); + keys = []; + for ( key in map ) { + keys.push( key ); + } + keys.sort(); + for ( i = 0; i < keys.length; i++ ) { + key = keys[ i ]; + val = map[ key ]; + ret.push( QUnit.jsDump.parse( key, "key" ) + ": " + QUnit.jsDump.parse( val, undefined, stack ) ); + } + QUnit.jsDump.down(); + return join( "{", ret, "}" ); + }, + node: function( node ) { + var len, i, val, + open = QUnit.jsDump.HTML ? "<" : "<", + close = QUnit.jsDump.HTML ? ">" : ">", + tag = node.nodeName.toLowerCase(), + ret = open + tag, + attrs = node.attributes; + + if ( attrs ) { + for ( i = 0, len = attrs.length; i < len; i++ ) { + val = attrs[i].nodeValue; + // IE6 includes all attributes in .attributes, even ones not explicitly set. + // Those have values like undefined, null, 0, false, "" or "inherit". + if ( val && val !== "inherit" ) { + ret += " " + attrs[i].nodeName + "=" + QUnit.jsDump.parse( val, "attribute" ); + } + } + } + ret += close; + + // Show content of TextNode or CDATASection + if ( node.nodeType === 3 || node.nodeType === 4 ) { + ret += node.nodeValue; + } + + return ret + open + "/" + tag + close; + }, + // function calls it internally, it's the arguments part of the function + functionArgs: function( fn ) { + var args, + l = fn.length; + + if ( !l ) { + return ""; + } + + args = new Array(l); + while ( l-- ) { + // 97 is 'a' + args[l] = String.fromCharCode(97+l); + } + return " " + args.join( ", " ) + " "; + }, + // object calls it internally, the key part of an item in a map + key: quote, + // function calls it internally, it's the content of the function + functionCode: "[code]", + // node calls it internally, it's an html attribute value + attribute: quote, + string: quote, + date: quote, + regexp: literal, + number: literal, + "boolean": literal + }, + // if true, entities are escaped ( <, >, \t, space and \n ) + HTML: false, + // indentation unit + indentChar: " ", + // if true, items in a collection, are separated by a \n, else just a space. + multiline: true + }; + + return jsDump; +}()); + +// from jquery.js +function inArray( elem, array ) { + if ( array.indexOf ) { + return array.indexOf( elem ); + } + + for ( var i = 0, length = array.length; i < length; i++ ) { + if ( array[ i ] === elem ) { + return i; + } + } + + return -1; +} + +/* + * Javascript Diff Algorithm + * By John Resig (http://ejohn.org/) + * Modified by Chu Alan "sprite" + * + * Released under the MIT license. + * + * More Info: + * http://ejohn.org/projects/javascript-diff-algorithm/ + * + * Usage: QUnit.diff(expected, actual) + * + * QUnit.diff( "the quick brown fox jumped over", "the quick fox jumps over" ) == "the quick brown fox jumped jumps over" + */ +QUnit.diff = (function() { + /*jshint eqeqeq:false, eqnull:true */ + function diff( o, n ) { + var i, + ns = {}, + os = {}; + + for ( i = 0; i < n.length; i++ ) { + if ( !hasOwn.call( ns, n[i] ) ) { + ns[ n[i] ] = { + rows: [], + o: null + }; + } + ns[ n[i] ].rows.push( i ); + } + + for ( i = 0; i < o.length; i++ ) { + if ( !hasOwn.call( os, o[i] ) ) { + os[ o[i] ] = { + rows: [], + n: null + }; + } + os[ o[i] ].rows.push( i ); + } + + for ( i in ns ) { + if ( hasOwn.call( ns, i ) ) { + if ( ns[i].rows.length === 1 && hasOwn.call( os, i ) && os[i].rows.length === 1 ) { + n[ ns[i].rows[0] ] = { + text: n[ ns[i].rows[0] ], + row: os[i].rows[0] + }; + o[ os[i].rows[0] ] = { + text: o[ os[i].rows[0] ], + row: ns[i].rows[0] + }; + } + } + } + + for ( i = 0; i < n.length - 1; i++ ) { + if ( n[i].text != null && n[ i + 1 ].text == null && n[i].row + 1 < o.length && o[ n[i].row + 1 ].text == null && + n[ i + 1 ] == o[ n[i].row + 1 ] ) { + + n[ i + 1 ] = { + text: n[ i + 1 ], + row: n[i].row + 1 + }; + o[ n[i].row + 1 ] = { + text: o[ n[i].row + 1 ], + row: i + 1 + }; + } + } + + for ( i = n.length - 1; i > 0; i-- ) { + if ( n[i].text != null && n[ i - 1 ].text == null && n[i].row > 0 && o[ n[i].row - 1 ].text == null && + n[ i - 1 ] == o[ n[i].row - 1 ]) { + + n[ i - 1 ] = { + text: n[ i - 1 ], + row: n[i].row - 1 + }; + o[ n[i].row - 1 ] = { + text: o[ n[i].row - 1 ], + row: i - 1 + }; + } + } + + return { + o: o, + n: n + }; + } + + return function( o, n ) { + o = o.replace( /\s+$/, "" ); + n = n.replace( /\s+$/, "" ); + + var i, pre, + str = "", + out = diff( o === "" ? [] : o.split(/\s+/), n === "" ? [] : n.split(/\s+/) ), + oSpace = o.match(/\s+/g), + nSpace = n.match(/\s+/g); + + if ( oSpace == null ) { + oSpace = [ " " ]; + } + else { + oSpace.push( " " ); + } + + if ( nSpace == null ) { + nSpace = [ " " ]; + } + else { + nSpace.push( " " ); + } + + if ( out.n.length === 0 ) { + for ( i = 0; i < out.o.length; i++ ) { + str += "" + out.o[i] + oSpace[i] + ""; + } + } + else { + if ( out.n[0].text == null ) { + for ( n = 0; n < out.o.length && out.o[n].text == null; n++ ) { + str += "" + out.o[n] + oSpace[n] + ""; + } + } + + for ( i = 0; i < out.n.length; i++ ) { + if (out.n[i].text == null) { + str += "" + out.n[i] + nSpace[i] + ""; + } + else { + // `pre` initialized at top of scope + pre = ""; + + for ( n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++ ) { + pre += "" + out.o[n] + oSpace[n] + ""; + } + str += " " + out.n[i].text + nSpace[i] + pre; + } + } + } + + return str; + }; +}()); + +// for CommonJS environments, export everything +if ( typeof exports !== "undefined" ) { + extend( exports, QUnit.constructor.prototype ); +} + +// get at whatever the global object is, like window in browsers +}( (function() {return this;}.call()) )); diff --git a/src/tests/resources/qunit-1.23.1.js b/src/tests/resources/qunit-1.23.1.js deleted file mode 100644 index 5df0822ea..000000000 --- a/src/tests/resources/qunit-1.23.1.js +++ /dev/null @@ -1,4334 +0,0 @@ -/*! - * QUnit 1.23.1 - * https://qunitjs.com/ - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license - * https://jquery.org/license - * - * Date: 2016-04-12T17:29Z - */ - -( function( global ) { - -var QUnit = {}; - -var Date = global.Date; -var now = Date.now || function() { - return new Date().getTime(); -}; - -var setTimeout = global.setTimeout; -var clearTimeout = global.clearTimeout; - -// Store a local window from the global to allow direct references. -var window = global.window; - -var defined = { - document: window && window.document !== undefined, - setTimeout: setTimeout !== undefined, - sessionStorage: ( function() { - var x = "qunit-test-string"; - try { - sessionStorage.setItem( x, x ); - sessionStorage.removeItem( x ); - return true; - } catch ( e ) { - return false; - } - }() ) -}; - -var fileName = ( sourceFromStacktrace( 0 ) || "" ).replace( /(:\d+)+\)?/, "" ).replace( /.+\//, "" ); -var globalStartCalled = false; -var runStarted = false; - -var toString = Object.prototype.toString, - hasOwn = Object.prototype.hasOwnProperty; - -// Returns a new Array with the elements that are in a but not in b -function diff( a, b ) { - var i, j, - result = a.slice(); - - for ( i = 0; i < result.length; i++ ) { - for ( j = 0; j < b.length; j++ ) { - if ( result[ i ] === b[ j ] ) { - result.splice( i, 1 ); - i--; - break; - } - } - } - return result; -} - -// From jquery.js -function inArray( elem, array ) { - if ( array.indexOf ) { - return array.indexOf( elem ); - } - - for ( var i = 0, length = array.length; i < length; i++ ) { - if ( array[ i ] === elem ) { - return i; - } - } - - return -1; -} - -/** - * Makes a clone of an object using only Array or Object as base, - * and copies over the own enumerable properties. - * - * @param {Object} obj - * @return {Object} New object with only the own properties (recursively). - */ -function objectValues ( obj ) { - var key, val, - vals = QUnit.is( "array", obj ) ? [] : {}; - for ( key in obj ) { - if ( hasOwn.call( obj, key ) ) { - val = obj[ key ]; - vals[ key ] = val === Object( val ) ? objectValues( val ) : val; - } - } - return vals; -} - -function extend( a, b, undefOnly ) { - for ( var prop in b ) { - if ( hasOwn.call( b, prop ) ) { - - // Avoid "Member not found" error in IE8 caused by messing with window.constructor - // This block runs on every environment, so `global` is being used instead of `window` - // to avoid errors on node. - if ( prop !== "constructor" || a !== global ) { - if ( b[ prop ] === undefined ) { - delete a[ prop ]; - } else if ( !( undefOnly && typeof a[ prop ] !== "undefined" ) ) { - a[ prop ] = b[ prop ]; - } - } - } - } - - return a; -} - -function objectType( obj ) { - if ( typeof obj === "undefined" ) { - return "undefined"; - } - - // Consider: typeof null === object - if ( obj === null ) { - return "null"; - } - - var match = toString.call( obj ).match( /^\[object\s(.*)\]$/ ), - type = match && match[ 1 ]; - - switch ( type ) { - case "Number": - if ( isNaN( obj ) ) { - return "nan"; - } - return "number"; - case "String": - case "Boolean": - case "Array": - case "Set": - case "Map": - case "Date": - case "RegExp": - case "Function": - case "Symbol": - return type.toLowerCase(); - } - if ( typeof obj === "object" ) { - return "object"; - } -} - -// Safe object type checking -function is( type, obj ) { - return QUnit.objectType( obj ) === type; -} - -// Doesn't support IE6 to IE9, it will return undefined on these browsers -// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack -function extractStacktrace( e, offset ) { - offset = offset === undefined ? 4 : offset; - - var stack, include, i; - - if ( e.stack ) { - stack = e.stack.split( "\n" ); - if ( /^error$/i.test( stack[ 0 ] ) ) { - stack.shift(); - } - if ( fileName ) { - include = []; - for ( i = offset; i < stack.length; i++ ) { - if ( stack[ i ].indexOf( fileName ) !== -1 ) { - break; - } - include.push( stack[ i ] ); - } - if ( include.length ) { - return include.join( "\n" ); - } - } - return stack[ offset ]; - - // Support: Safari <=6 only - } else if ( e.sourceURL ) { - - // Exclude useless self-reference for generated Error objects - if ( /qunit.js$/.test( e.sourceURL ) ) { - return; - } - - // For actual exceptions, this is useful - return e.sourceURL + ":" + e.line; - } -} - -function sourceFromStacktrace( offset ) { - var error = new Error(); - - // Support: Safari <=7 only, IE <=10 - 11 only - // Not all browsers generate the `stack` property for `new Error()`, see also #636 - if ( !error.stack ) { - try { - throw error; - } catch ( err ) { - error = err; - } - } - - return extractStacktrace( error, offset ); -} - -/** - * Config object: Maintain internal state - * Later exposed as QUnit.config - * `config` initialized at top of scope - */ -var config = { - - // The queue of tests to run - queue: [], - - // Block until document ready - blocking: true, - - // By default, run previously failed tests first - // very useful in combination with "Hide passed tests" checked - reorder: true, - - // By default, modify document.title when suite is done - altertitle: true, - - // HTML Reporter: collapse every test except the first failing test - // If false, all failing tests will be expanded - collapse: true, - - // By default, scroll to top of the page when suite is done - scrolltop: true, - - // Depth up-to which object will be dumped - maxDepth: 5, - - // When enabled, all tests must call expect() - requireExpects: false, - - // Placeholder for user-configurable form-exposed URL parameters - urlConfig: [], - - // Set of all modules. - modules: [], - - // Stack of nested modules - moduleStack: [], - - // The first unnamed module - currentModule: { - name: "", - tests: [] - }, - - callbacks: {} -}; - -// Push a loose unnamed module to the modules collection -config.modules.push( config.currentModule ); - -var loggingCallbacks = {}; - -// Register logging callbacks -function registerLoggingCallbacks( obj ) { - var i, l, key, - callbackNames = [ "begin", "done", "log", "testStart", "testDone", - "moduleStart", "moduleDone" ]; - - function registerLoggingCallback( key ) { - var loggingCallback = function( callback ) { - if ( objectType( callback ) !== "function" ) { - throw new Error( - "QUnit logging methods require a callback function as their first parameters." - ); - } - - config.callbacks[ key ].push( callback ); - }; - - // DEPRECATED: This will be removed on QUnit 2.0.0+ - // Stores the registered functions allowing restoring - // at verifyLoggingCallbacks() if modified - loggingCallbacks[ key ] = loggingCallback; - - return loggingCallback; - } - - for ( i = 0, l = callbackNames.length; i < l; i++ ) { - key = callbackNames[ i ]; - - // Initialize key collection of logging callback - if ( objectType( config.callbacks[ key ] ) === "undefined" ) { - config.callbacks[ key ] = []; - } - - obj[ key ] = registerLoggingCallback( key ); - } -} - -function runLoggingCallbacks( key, args ) { - var i, l, callbacks; - - callbacks = config.callbacks[ key ]; - for ( i = 0, l = callbacks.length; i < l; i++ ) { - callbacks[ i ]( args ); - } -} - -// DEPRECATED: This will be removed on 2.0.0+ -// This function verifies if the loggingCallbacks were modified by the user -// If so, it will restore it, assign the given callback and print a console warning -function verifyLoggingCallbacks() { - var loggingCallback, userCallback; - - for ( loggingCallback in loggingCallbacks ) { - if ( QUnit[ loggingCallback ] !== loggingCallbacks[ loggingCallback ] ) { - - userCallback = QUnit[ loggingCallback ]; - - // Restore the callback function - QUnit[ loggingCallback ] = loggingCallbacks[ loggingCallback ]; - - // Assign the deprecated given callback - QUnit[ loggingCallback ]( userCallback ); - - if ( global.console && global.console.warn ) { - global.console.warn( - "QUnit." + loggingCallback + " was replaced with a new value.\n" + - "Please, check out the documentation on how to apply logging callbacks.\n" + - "Reference: https://api.qunitjs.com/category/callbacks/" - ); - } - } - } -} - -( function() { - if ( !defined.document ) { - return; - } - - // `onErrorFnPrev` initialized at top of scope - // Preserve other handlers - var onErrorFnPrev = window.onerror; - - // Cover uncaught exceptions - // Returning true will suppress the default browser handler, - // returning false will let it run. - window.onerror = function( error, filePath, linerNr ) { - var ret = false; - if ( onErrorFnPrev ) { - ret = onErrorFnPrev( error, filePath, linerNr ); - } - - // Treat return value as window.onerror itself does, - // Only do our handling if not suppressed. - if ( ret !== true ) { - if ( QUnit.config.current ) { - if ( QUnit.config.current.ignoreGlobalErrors ) { - return true; - } - QUnit.pushFailure( error, filePath + ":" + linerNr ); - } else { - QUnit.test( "global failure", extend( function() { - QUnit.pushFailure( error, filePath + ":" + linerNr ); - }, { validTest: true } ) ); - } - return false; - } - - return ret; - }; -}() ); - -// Figure out if we're running the tests from a server or not -QUnit.isLocal = !( defined.document && window.location.protocol !== "file:" ); - -// Expose the current QUnit version -QUnit.version = "1.23.1"; - -extend( QUnit, { - - // Call on start of module test to prepend name to all tests - module: function( name, testEnvironment, executeNow ) { - var module, moduleFns; - var currentModule = config.currentModule; - - if ( arguments.length === 2 ) { - if ( objectType( testEnvironment ) === "function" ) { - executeNow = testEnvironment; - testEnvironment = undefined; - } - } - - // DEPRECATED: handles setup/teardown functions, - // beforeEach and afterEach should be used instead - if ( testEnvironment && testEnvironment.setup ) { - testEnvironment.beforeEach = testEnvironment.setup; - delete testEnvironment.setup; - } - if ( testEnvironment && testEnvironment.teardown ) { - testEnvironment.afterEach = testEnvironment.teardown; - delete testEnvironment.teardown; - } - - module = createModule(); - - moduleFns = { - beforeEach: setHook( module, "beforeEach" ), - afterEach: setHook( module, "afterEach" ) - }; - - if ( objectType( executeNow ) === "function" ) { - config.moduleStack.push( module ); - setCurrentModule( module ); - executeNow.call( module.testEnvironment, moduleFns ); - config.moduleStack.pop(); - module = module.parentModule || currentModule; - } - - setCurrentModule( module ); - - function createModule() { - var parentModule = config.moduleStack.length ? - config.moduleStack.slice( -1 )[ 0 ] : null; - var moduleName = parentModule !== null ? - [ parentModule.name, name ].join( " > " ) : name; - var module = { - name: moduleName, - parentModule: parentModule, - tests: [], - moduleId: generateHash( moduleName ) - }; - - var env = {}; - if ( parentModule ) { - extend( env, parentModule.testEnvironment ); - delete env.beforeEach; - delete env.afterEach; - } - extend( env, testEnvironment ); - module.testEnvironment = env; - - config.modules.push( module ); - return module; - } - - function setCurrentModule( module ) { - config.currentModule = module; - } - - }, - - // DEPRECATED: QUnit.asyncTest() will be removed in QUnit 2.0. - asyncTest: asyncTest, - - test: test, - - skip: skip, - - only: only, - - // DEPRECATED: The functionality of QUnit.start() will be altered in QUnit 2.0. - // In QUnit 2.0, invoking it will ONLY affect the `QUnit.config.autostart` blocking behavior. - start: function( count ) { - var globalStartAlreadyCalled = globalStartCalled; - - if ( !config.current ) { - globalStartCalled = true; - - if ( runStarted ) { - throw new Error( "Called start() outside of a test context while already started" ); - } else if ( globalStartAlreadyCalled || count > 1 ) { - throw new Error( "Called start() outside of a test context too many times" ); - } else if ( config.autostart ) { - throw new Error( "Called start() outside of a test context when " + - "QUnit.config.autostart was true" ); - } else if ( !config.pageLoaded ) { - - // The page isn't completely loaded yet, so bail out and let `QUnit.load` handle it - config.autostart = true; - return; - } - } else { - - // If a test is running, adjust its semaphore - config.current.semaphore -= count || 1; - - // If semaphore is non-numeric, throw error - if ( isNaN( config.current.semaphore ) ) { - config.current.semaphore = 0; - - QUnit.pushFailure( - "Called start() with a non-numeric decrement.", - sourceFromStacktrace( 2 ) - ); - return; - } - - // Don't start until equal number of stop-calls - if ( config.current.semaphore > 0 ) { - return; - } - - // Throw an Error if start is called more often than stop - if ( config.current.semaphore < 0 ) { - config.current.semaphore = 0; - - QUnit.pushFailure( - "Called start() while already started (test's semaphore was 0 already)", - sourceFromStacktrace( 2 ) - ); - return; - } - } - - resumeProcessing(); - }, - - // DEPRECATED: QUnit.stop() will be removed in QUnit 2.0. - stop: function( count ) { - - // If there isn't a test running, don't allow QUnit.stop() to be called - if ( !config.current ) { - throw new Error( "Called stop() outside of a test context" ); - } - - // If a test is running, adjust its semaphore - config.current.semaphore += count || 1; - - pauseProcessing(); - }, - - config: config, - - is: is, - - objectType: objectType, - - extend: extend, - - load: function() { - config.pageLoaded = true; - - // Initialize the configuration options - extend( config, { - stats: { all: 0, bad: 0 }, - moduleStats: { all: 0, bad: 0 }, - started: 0, - updateRate: 1000, - autostart: true, - filter: "" - }, true ); - - config.blocking = false; - - if ( config.autostart ) { - resumeProcessing(); - } - }, - - stack: function( offset ) { - offset = ( offset || 0 ) + 2; - return sourceFromStacktrace( offset ); - } -} ); - -registerLoggingCallbacks( QUnit ); - -function begin() { - var i, l, - modulesLog = []; - - // If the test run hasn't officially begun yet - if ( !config.started ) { - - // Record the time of the test run's beginning - config.started = now(); - - verifyLoggingCallbacks(); - - // Delete the loose unnamed module if unused. - if ( config.modules[ 0 ].name === "" && config.modules[ 0 ].tests.length === 0 ) { - config.modules.shift(); - } - - // Avoid unnecessary information by not logging modules' test environments - for ( i = 0, l = config.modules.length; i < l; i++ ) { - modulesLog.push( { - name: config.modules[ i ].name, - tests: config.modules[ i ].tests - } ); - } - - // The test run is officially beginning now - runLoggingCallbacks( "begin", { - totalTests: Test.count, - modules: modulesLog - } ); - } - - config.blocking = false; - process( true ); -} - -function process( last ) { - function next() { - process( last ); - } - var start = now(); - config.depth = ( config.depth || 0 ) + 1; - - while ( config.queue.length && !config.blocking ) { - if ( !defined.setTimeout || config.updateRate <= 0 || - ( ( now() - start ) < config.updateRate ) ) { - if ( config.current ) { - - // Reset async tracking for each phase of the Test lifecycle - config.current.usedAsync = false; - } - config.queue.shift()(); - } else { - setTimeout( next, 13 ); - break; - } - } - config.depth--; - if ( last && !config.blocking && !config.queue.length && config.depth === 0 ) { - done(); - } -} - -function pauseProcessing() { - config.blocking = true; - - if ( config.testTimeout && defined.setTimeout ) { - clearTimeout( config.timeout ); - config.timeout = setTimeout( function() { - if ( config.current ) { - config.current.semaphore = 0; - QUnit.pushFailure( "Test timed out", sourceFromStacktrace( 2 ) ); - } else { - throw new Error( "Test timed out" ); - } - resumeProcessing(); - }, config.testTimeout ); - } -} - -function resumeProcessing() { - runStarted = true; - - // A slight delay to allow this iteration of the event loop to finish (more assertions, etc.) - if ( defined.setTimeout ) { - setTimeout( function() { - if ( config.current && config.current.semaphore > 0 ) { - return; - } - if ( config.timeout ) { - clearTimeout( config.timeout ); - } - - begin(); - }, 13 ); - } else { - begin(); - } -} - -function done() { - var runtime, passed; - - config.autorun = true; - - // Log the last module results - if ( config.previousModule ) { - runLoggingCallbacks( "moduleDone", { - name: config.previousModule.name, - tests: config.previousModule.tests, - failed: config.moduleStats.bad, - passed: config.moduleStats.all - config.moduleStats.bad, - total: config.moduleStats.all, - runtime: now() - config.moduleStats.started - } ); - } - delete config.previousModule; - - runtime = now() - config.started; - passed = config.stats.all - config.stats.bad; - - runLoggingCallbacks( "done", { - failed: config.stats.bad, - passed: passed, - total: config.stats.all, - runtime: runtime - } ); -} - -function setHook( module, hookName ) { - if ( module.testEnvironment === undefined ) { - module.testEnvironment = {}; - } - - return function( callback ) { - module.testEnvironment[ hookName ] = callback; - }; -} - -var focused = false; -var priorityCount = 0; -var unitSampler; - -function Test( settings ) { - var i, l; - - ++Test.count; - - extend( this, settings ); - this.assertions = []; - this.semaphore = 0; - this.usedAsync = false; - this.module = config.currentModule; - this.stack = sourceFromStacktrace( 3 ); - - // Register unique strings - for ( i = 0, l = this.module.tests; i < l.length; i++ ) { - if ( this.module.tests[ i ].name === this.testName ) { - this.testName += " "; - } - } - - this.testId = generateHash( this.module.name, this.testName ); - - this.module.tests.push( { - name: this.testName, - testId: this.testId - } ); - - if ( settings.skip ) { - - // Skipped tests will fully ignore any sent callback - this.callback = function() {}; - this.async = false; - this.expected = 0; - } else { - this.assert = new Assert( this ); - } -} - -Test.count = 0; - -Test.prototype = { - before: function() { - if ( - - // Emit moduleStart when we're switching from one module to another - this.module !== config.previousModule || - - // They could be equal (both undefined) but if the previousModule property doesn't - // yet exist it means this is the first test in a suite that isn't wrapped in a - // module, in which case we'll just emit a moduleStart event for 'undefined'. - // Without this, reporters can get testStart before moduleStart which is a problem. - !hasOwn.call( config, "previousModule" ) - ) { - if ( hasOwn.call( config, "previousModule" ) ) { - runLoggingCallbacks( "moduleDone", { - name: config.previousModule.name, - tests: config.previousModule.tests, - failed: config.moduleStats.bad, - passed: config.moduleStats.all - config.moduleStats.bad, - total: config.moduleStats.all, - runtime: now() - config.moduleStats.started - } ); - } - config.previousModule = this.module; - config.moduleStats = { all: 0, bad: 0, started: now() }; - runLoggingCallbacks( "moduleStart", { - name: this.module.name, - tests: this.module.tests - } ); - } - - config.current = this; - - if ( this.module.testEnvironment ) { - delete this.module.testEnvironment.beforeEach; - delete this.module.testEnvironment.afterEach; - } - this.testEnvironment = extend( {}, this.module.testEnvironment ); - - this.started = now(); - runLoggingCallbacks( "testStart", { - name: this.testName, - module: this.module.name, - testId: this.testId - } ); - - if ( !config.pollution ) { - saveGlobal(); - } - }, - - run: function() { - var promise; - - config.current = this; - - if ( this.async ) { - QUnit.stop(); - } - - this.callbackStarted = now(); - - if ( config.notrycatch ) { - runTest( this ); - return; - } - - try { - runTest( this ); - } catch ( e ) { - this.pushFailure( "Died on test #" + ( this.assertions.length + 1 ) + " " + - this.stack + ": " + ( e.message || e ), extractStacktrace( e, 0 ) ); - - // Else next test will carry the responsibility - saveGlobal(); - - // Restart the tests if they're blocking - if ( config.blocking ) { - QUnit.start(); - } - } - - function runTest( test ) { - promise = test.callback.call( test.testEnvironment, test.assert ); - test.resolvePromise( promise ); - } - }, - - after: function() { - checkPollution(); - }, - - queueHook: function( hook, hookName ) { - var promise, - test = this; - return function runHook() { - config.current = test; - if ( config.notrycatch ) { - callHook(); - return; - } - try { - callHook(); - } catch ( error ) { - test.pushFailure( hookName + " failed on " + test.testName + ": " + - ( error.message || error ), extractStacktrace( error, 0 ) ); - } - - function callHook() { - promise = hook.call( test.testEnvironment, test.assert ); - test.resolvePromise( promise, hookName ); - } - }; - }, - - // Currently only used for module level hooks, can be used to add global level ones - hooks: function( handler ) { - var hooks = []; - - function processHooks( test, module ) { - if ( module.parentModule ) { - processHooks( test, module.parentModule ); - } - if ( module.testEnvironment && - QUnit.objectType( module.testEnvironment[ handler ] ) === "function" ) { - hooks.push( test.queueHook( module.testEnvironment[ handler ], handler ) ); - } - } - - // Hooks are ignored on skipped tests - if ( !this.skip ) { - processHooks( this, this.module ); - } - return hooks; - }, - - finish: function() { - config.current = this; - if ( config.requireExpects && this.expected === null ) { - this.pushFailure( "Expected number of assertions to be defined, but expect() was " + - "not called.", this.stack ); - } else if ( this.expected !== null && this.expected !== this.assertions.length ) { - this.pushFailure( "Expected " + this.expected + " assertions, but " + - this.assertions.length + " were run", this.stack ); - } else if ( this.expected === null && !this.assertions.length ) { - this.pushFailure( "Expected at least one assertion, but none were run - call " + - "expect(0) to accept zero assertions.", this.stack ); - } - - var i, - bad = 0; - - this.runtime = now() - this.started; - config.stats.all += this.assertions.length; - config.moduleStats.all += this.assertions.length; - - for ( i = 0; i < this.assertions.length; i++ ) { - if ( !this.assertions[ i ].result ) { - bad++; - config.stats.bad++; - config.moduleStats.bad++; - } - } - - runLoggingCallbacks( "testDone", { - name: this.testName, - module: this.module.name, - skipped: !!this.skip, - failed: bad, - passed: this.assertions.length - bad, - total: this.assertions.length, - runtime: this.runtime, - - // HTML Reporter use - assertions: this.assertions, - testId: this.testId, - - // Source of Test - source: this.stack, - - // DEPRECATED: this property will be removed in 2.0.0, use runtime instead - duration: this.runtime - } ); - - // QUnit.reset() is deprecated and will be replaced for a new - // fixture reset function on QUnit 2.0/2.1. - // It's still called here for backwards compatibility handling - QUnit.reset(); - - config.current = undefined; - }, - - queue: function() { - var priority, - test = this; - - if ( !this.valid() ) { - return; - } - - function run() { - - // Each of these can by async - synchronize( [ - function() { - test.before(); - }, - - test.hooks( "beforeEach" ), - function() { - test.run(); - }, - - test.hooks( "afterEach" ).reverse(), - - function() { - test.after(); - }, - function() { - test.finish(); - } - ] ); - } - - // Prioritize previously failed tests, detected from sessionStorage - priority = QUnit.config.reorder && defined.sessionStorage && - +sessionStorage.getItem( "qunit-test-" + this.module.name + "-" + this.testName ); - - return synchronize( run, priority, config.seed ); - }, - - pushResult: function( resultInfo ) { - - // Destructure of resultInfo = { result, actual, expected, message, negative } - var source, - details = { - module: this.module.name, - name: this.testName, - result: resultInfo.result, - message: resultInfo.message, - actual: resultInfo.actual, - expected: resultInfo.expected, - testId: this.testId, - negative: resultInfo.negative || false, - runtime: now() - this.started - }; - - if ( !resultInfo.result ) { - source = sourceFromStacktrace(); - - if ( source ) { - details.source = source; - } - } - - runLoggingCallbacks( "log", details ); - - this.assertions.push( { - result: !!resultInfo.result, - message: resultInfo.message - } ); - }, - - pushFailure: function( message, source, actual ) { - if ( !( this instanceof Test ) ) { - throw new Error( "pushFailure() assertion outside test context, was " + - sourceFromStacktrace( 2 ) ); - } - - var details = { - module: this.module.name, - name: this.testName, - result: false, - message: message || "error", - actual: actual || null, - testId: this.testId, - runtime: now() - this.started - }; - - if ( source ) { - details.source = source; - } - - runLoggingCallbacks( "log", details ); - - this.assertions.push( { - result: false, - message: message - } ); - }, - - resolvePromise: function( promise, phase ) { - var then, message, - test = this; - if ( promise != null ) { - then = promise.then; - if ( QUnit.objectType( then ) === "function" ) { - QUnit.stop(); - then.call( - promise, - function() { QUnit.start(); }, - function( error ) { - message = "Promise rejected " + - ( !phase ? "during" : phase.replace( /Each$/, "" ) ) + - " " + test.testName + ": " + ( error.message || error ); - test.pushFailure( message, extractStacktrace( error, 0 ) ); - - // Else next test will carry the responsibility - saveGlobal(); - - // Unblock - QUnit.start(); - } - ); - } - } - }, - - valid: function() { - var filter = config.filter, - regexFilter = /^(!?)\/([\w\W]*)\/(i?$)/.exec( filter ), - module = config.module && config.module.toLowerCase(), - fullName = ( this.module.name + ": " + this.testName ); - - function moduleChainNameMatch( testModule ) { - var testModuleName = testModule.name ? testModule.name.toLowerCase() : null; - if ( testModuleName === module ) { - return true; - } else if ( testModule.parentModule ) { - return moduleChainNameMatch( testModule.parentModule ); - } else { - return false; - } - } - - function moduleChainIdMatch( testModule ) { - return inArray( testModule.moduleId, config.moduleId ) > -1 || - testModule.parentModule && moduleChainIdMatch( testModule.parentModule ); - } - - // Internally-generated tests are always valid - if ( this.callback && this.callback.validTest ) { - return true; - } - - if ( config.moduleId && config.moduleId.length > 0 && - !moduleChainIdMatch( this.module ) ) { - - return false; - } - - if ( config.testId && config.testId.length > 0 && - inArray( this.testId, config.testId ) < 0 ) { - - return false; - } - - if ( module && !moduleChainNameMatch( this.module ) ) { - return false; - } - - if ( !filter ) { - return true; - } - - return regexFilter ? - this.regexFilter( !!regexFilter[ 1 ], regexFilter[ 2 ], regexFilter[ 3 ], fullName ) : - this.stringFilter( filter, fullName ); - }, - - regexFilter: function( exclude, pattern, flags, fullName ) { - var regex = new RegExp( pattern, flags ); - var match = regex.test( fullName ); - - return match !== exclude; - }, - - stringFilter: function( filter, fullName ) { - filter = filter.toLowerCase(); - fullName = fullName.toLowerCase(); - - var include = filter.charAt( 0 ) !== "!"; - if ( !include ) { - filter = filter.slice( 1 ); - } - - // If the filter matches, we need to honour include - if ( fullName.indexOf( filter ) !== -1 ) { - return include; - } - - // Otherwise, do the opposite - return !include; - } -}; - -// Resets the test setup. Useful for tests that modify the DOM. -/* -DEPRECATED: Use multiple tests instead of resetting inside a test. -Use testStart or testDone for custom cleanup. -This method will throw an error in 2.0, and will be removed in 2.1 -*/ -QUnit.reset = function() { - - // Return on non-browser environments - // This is necessary to not break on node tests - if ( !defined.document ) { - return; - } - - var fixture = defined.document && document.getElementById && - document.getElementById( "qunit-fixture" ); - - if ( fixture ) { - fixture.innerHTML = config.fixture; - } -}; - -QUnit.pushFailure = function() { - if ( !QUnit.config.current ) { - throw new Error( "pushFailure() assertion outside test context, in " + - sourceFromStacktrace( 2 ) ); - } - - // Gets current test obj - var currentTest = QUnit.config.current; - - return currentTest.pushFailure.apply( currentTest, arguments ); -}; - -// Based on Java's String.hashCode, a simple but not -// rigorously collision resistant hashing function -function generateHash( module, testName ) { - var hex, - i = 0, - hash = 0, - str = module + "\x1C" + testName, - len = str.length; - - for ( ; i < len; i++ ) { - hash = ( ( hash << 5 ) - hash ) + str.charCodeAt( i ); - hash |= 0; - } - - // Convert the possibly negative integer hash code into an 8 character hex string, which isn't - // strictly necessary but increases user understanding that the id is a SHA-like hash - hex = ( 0x100000000 + hash ).toString( 16 ); - if ( hex.length < 8 ) { - hex = "0000000" + hex; - } - - return hex.slice( -8 ); -} - -function synchronize( callback, priority, seed ) { - var last = !priority, - index; - - if ( QUnit.objectType( callback ) === "array" ) { - while ( callback.length ) { - synchronize( callback.shift() ); - } - return; - } - - if ( priority ) { - config.queue.splice( priorityCount++, 0, callback ); - } else if ( seed ) { - if ( !unitSampler ) { - unitSampler = unitSamplerGenerator( seed ); - } - - // Insert into a random position after all priority items - index = Math.floor( unitSampler() * ( config.queue.length - priorityCount + 1 ) ); - config.queue.splice( priorityCount + index, 0, callback ); - } else { - config.queue.push( callback ); - } - - if ( config.autorun && !config.blocking ) { - process( last ); - } -} - -function unitSamplerGenerator( seed ) { - - // 32-bit xorshift, requires only a nonzero seed - // http://excamera.com/sphinx/article-xorshift.html - var sample = parseInt( generateHash( seed ), 16 ) || -1; - return function() { - sample ^= sample << 13; - sample ^= sample >>> 17; - sample ^= sample << 5; - - // ECMAScript has no unsigned number type - if ( sample < 0 ) { - sample += 0x100000000; - } - - return sample / 0x100000000; - }; -} - -function saveGlobal() { - config.pollution = []; - - if ( config.noglobals ) { - for ( var key in global ) { - if ( hasOwn.call( global, key ) ) { - - // In Opera sometimes DOM element ids show up here, ignore them - if ( /^qunit-test-output/.test( key ) ) { - continue; - } - config.pollution.push( key ); - } - } - } -} - -function checkPollution() { - var newGlobals, - deletedGlobals, - old = config.pollution; - - saveGlobal(); - - newGlobals = diff( config.pollution, old ); - if ( newGlobals.length > 0 ) { - QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join( ", " ) ); - } - - deletedGlobals = diff( old, config.pollution ); - if ( deletedGlobals.length > 0 ) { - QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join( ", " ) ); - } -} - -// Will be exposed as QUnit.asyncTest -function asyncTest( testName, expected, callback ) { - if ( arguments.length === 2 ) { - callback = expected; - expected = null; - } - - QUnit.test( testName, expected, callback, true ); -} - -// Will be exposed as QUnit.test -function test( testName, expected, callback, async ) { - if ( focused ) { return; } - - var newTest; - - if ( arguments.length === 2 ) { - callback = expected; - expected = null; - } - - newTest = new Test( { - testName: testName, - expected: expected, - async: async, - callback: callback - } ); - - newTest.queue(); -} - -// Will be exposed as QUnit.skip -function skip( testName ) { - if ( focused ) { return; } - - var test = new Test( { - testName: testName, - skip: true - } ); - - test.queue(); -} - -// Will be exposed as QUnit.only -function only( testName, expected, callback, async ) { - var newTest; - - if ( focused ) { return; } - - QUnit.config.queue.length = 0; - focused = true; - - if ( arguments.length === 2 ) { - callback = expected; - expected = null; - } - - newTest = new Test( { - testName: testName, - expected: expected, - async: async, - callback: callback - } ); - - newTest.queue(); -} - -function Assert( testContext ) { - this.test = testContext; -} - -// Assert helpers -QUnit.assert = Assert.prototype = { - - // Specify the number of expected assertions to guarantee that failed test - // (no assertions are run at all) don't slip through. - expect: function( asserts ) { - if ( arguments.length === 1 ) { - this.test.expected = asserts; - } else { - return this.test.expected; - } - }, - - // Increment this Test's semaphore counter, then return a function that - // decrements that counter a maximum of once. - async: function( count ) { - var test = this.test, - popped = false, - acceptCallCount = count; - - if ( typeof acceptCallCount === "undefined" ) { - acceptCallCount = 1; - } - - test.semaphore += 1; - test.usedAsync = true; - pauseProcessing(); - - return function done() { - - if ( popped ) { - test.pushFailure( "Too many calls to the `assert.async` callback", - sourceFromStacktrace( 2 ) ); - return; - } - acceptCallCount -= 1; - if ( acceptCallCount > 0 ) { - return; - } - - test.semaphore -= 1; - popped = true; - resumeProcessing(); - }; - }, - - // Exports test.push() to the user API - // Alias of pushResult. - push: function( result, actual, expected, message, negative ) { - var currentAssert = this instanceof Assert ? this : QUnit.config.current.assert; - return currentAssert.pushResult( { - result: result, - actual: actual, - expected: expected, - message: message, - negative: negative - } ); - }, - - pushResult: function( resultInfo ) { - - // Destructure of resultInfo = { result, actual, expected, message, negative } - var assert = this, - currentTest = ( assert instanceof Assert && assert.test ) || QUnit.config.current; - - // Backwards compatibility fix. - // Allows the direct use of global exported assertions and QUnit.assert.* - // Although, it's use is not recommended as it can leak assertions - // to other tests from async tests, because we only get a reference to the current test, - // not exactly the test where assertion were intended to be called. - if ( !currentTest ) { - throw new Error( "assertion outside test context, in " + sourceFromStacktrace( 2 ) ); - } - - if ( currentTest.usedAsync === true && currentTest.semaphore === 0 ) { - currentTest.pushFailure( "Assertion after the final `assert.async` was resolved", - sourceFromStacktrace( 2 ) ); - - // Allow this assertion to continue running anyway... - } - - if ( !( assert instanceof Assert ) ) { - assert = currentTest.assert; - } - - return assert.test.pushResult( resultInfo ); - }, - - ok: function( result, message ) { - message = message || ( result ? "okay" : "failed, expected argument to be truthy, was: " + - QUnit.dump.parse( result ) ); - this.pushResult( { - result: !!result, - actual: result, - expected: true, - message: message - } ); - }, - - notOk: function( result, message ) { - message = message || ( !result ? "okay" : "failed, expected argument to be falsy, was: " + - QUnit.dump.parse( result ) ); - this.pushResult( { - result: !result, - actual: result, - expected: false, - message: message - } ); - }, - - equal: function( actual, expected, message ) { - /*jshint eqeqeq:false */ - this.pushResult( { - result: expected == actual, - actual: actual, - expected: expected, - message: message - } ); - }, - - notEqual: function( actual, expected, message ) { - /*jshint eqeqeq:false */ - this.pushResult( { - result: expected != actual, - actual: actual, - expected: expected, - message: message, - negative: true - } ); - }, - - propEqual: function( actual, expected, message ) { - actual = objectValues( actual ); - expected = objectValues( expected ); - this.pushResult( { - result: QUnit.equiv( actual, expected ), - actual: actual, - expected: expected, - message: message - } ); - }, - - notPropEqual: function( actual, expected, message ) { - actual = objectValues( actual ); - expected = objectValues( expected ); - this.pushResult( { - result: !QUnit.equiv( actual, expected ), - actual: actual, - expected: expected, - message: message, - negative: true - } ); - }, - - deepEqual: function( actual, expected, message ) { - this.pushResult( { - result: QUnit.equiv( actual, expected ), - actual: actual, - expected: expected, - message: message - } ); - }, - - notDeepEqual: function( actual, expected, message ) { - this.pushResult( { - result: !QUnit.equiv( actual, expected ), - actual: actual, - expected: expected, - message: message, - negative: true - } ); - }, - - strictEqual: function( actual, expected, message ) { - this.pushResult( { - result: expected === actual, - actual: actual, - expected: expected, - message: message - } ); - }, - - notStrictEqual: function( actual, expected, message ) { - this.pushResult( { - result: expected !== actual, - actual: actual, - expected: expected, - message: message, - negative: true - } ); - }, - - "throws": function( block, expected, message ) { - var actual, expectedType, - expectedOutput = expected, - ok = false, - currentTest = ( this instanceof Assert && this.test ) || QUnit.config.current; - - // 'expected' is optional unless doing string comparison - if ( message == null && typeof expected === "string" ) { - message = expected; - expected = null; - } - - currentTest.ignoreGlobalErrors = true; - try { - block.call( currentTest.testEnvironment ); - } catch ( e ) { - actual = e; - } - currentTest.ignoreGlobalErrors = false; - - if ( actual ) { - expectedType = QUnit.objectType( expected ); - - // We don't want to validate thrown error - if ( !expected ) { - ok = true; - expectedOutput = null; - - // Expected is a regexp - } else if ( expectedType === "regexp" ) { - ok = expected.test( errorString( actual ) ); - - // Expected is a string - } else if ( expectedType === "string" ) { - ok = expected === errorString( actual ); - - // Expected is a constructor, maybe an Error constructor - } else if ( expectedType === "function" && actual instanceof expected ) { - ok = true; - - // Expected is an Error object - } else if ( expectedType === "object" ) { - ok = actual instanceof expected.constructor && - actual.name === expected.name && - actual.message === expected.message; - - // Expected is a validation function which returns true if validation passed - } else if ( expectedType === "function" && expected.call( {}, actual ) === true ) { - expectedOutput = null; - ok = true; - } - } - - currentTest.assert.pushResult( { - result: ok, - actual: actual, - expected: expectedOutput, - message: message - } ); - } -}; - -// Provide an alternative to assert.throws(), for environments that consider throws a reserved word -// Known to us are: Closure Compiler, Narwhal -( function() { - /*jshint sub:true */ - Assert.prototype.raises = Assert.prototype [ "throws" ]; //jscs:ignore requireDotNotation -}() ); - -function errorString( error ) { - var name, message, - resultErrorString = error.toString(); - if ( resultErrorString.substring( 0, 7 ) === "[object" ) { - name = error.name ? error.name.toString() : "Error"; - message = error.message ? error.message.toString() : ""; - if ( name && message ) { - return name + ": " + message; - } else if ( name ) { - return name; - } else if ( message ) { - return message; - } else { - return "Error"; - } - } else { - return resultErrorString; - } -} - -// Test for equality any JavaScript type. -// Author: Philippe Rathé -QUnit.equiv = ( function() { - - // Stack to decide between skip/abort functions - var callers = []; - - // Stack to avoiding loops from circular referencing - var parents = []; - var parentsB = []; - - var getProto = Object.getPrototypeOf || function( obj ) { - - /*jshint proto: true */ - return obj.__proto__; - }; - - function useStrictEquality( b, a ) { - - // To catch short annotation VS 'new' annotation of a declaration. e.g.: - // `var i = 1;` - // `var j = new Number(1);` - if ( typeof a === "object" ) { - a = a.valueOf(); - } - if ( typeof b === "object" ) { - b = b.valueOf(); - } - - return a === b; - } - - function compareConstructors( a, b ) { - var protoA = getProto( a ); - var protoB = getProto( b ); - - // Comparing constructors is more strict than using `instanceof` - if ( a.constructor === b.constructor ) { - return true; - } - - // Ref #851 - // If the obj prototype descends from a null constructor, treat it - // as a null prototype. - if ( protoA && protoA.constructor === null ) { - protoA = null; - } - if ( protoB && protoB.constructor === null ) { - protoB = null; - } - - // Allow objects with no prototype to be equivalent to - // objects with Object as their constructor. - if ( ( protoA === null && protoB === Object.prototype ) || - ( protoB === null && protoA === Object.prototype ) ) { - return true; - } - - return false; - } - - function getRegExpFlags( regexp ) { - return "flags" in regexp ? regexp.flags : regexp.toString().match( /[gimuy]*$/ )[ 0 ]; - } - - var callbacks = { - "string": useStrictEquality, - "boolean": useStrictEquality, - "number": useStrictEquality, - "null": useStrictEquality, - "undefined": useStrictEquality, - "symbol": useStrictEquality, - "date": useStrictEquality, - - "nan": function() { - return true; - }, - - "regexp": function( b, a ) { - return a.source === b.source && - - // Include flags in the comparison - getRegExpFlags( a ) === getRegExpFlags( b ); - }, - - // - skip when the property is a method of an instance (OOP) - // - abort otherwise, - // initial === would have catch identical references anyway - "function": function() { - var caller = callers[ callers.length - 1 ]; - return caller !== Object && typeof caller !== "undefined"; - }, - - "array": function( b, a ) { - var i, j, len, loop, aCircular, bCircular; - - len = a.length; - if ( len !== b.length ) { - - // Safe and faster - return false; - } - - // Track reference to avoid circular references - parents.push( a ); - parentsB.push( b ); - for ( i = 0; i < len; i++ ) { - loop = false; - for ( j = 0; j < parents.length; j++ ) { - aCircular = parents[ j ] === a[ i ]; - bCircular = parentsB[ j ] === b[ i ]; - if ( aCircular || bCircular ) { - if ( a[ i ] === b[ i ] || aCircular && bCircular ) { - loop = true; - } else { - parents.pop(); - parentsB.pop(); - return false; - } - } - } - if ( !loop && !innerEquiv( a[ i ], b[ i ] ) ) { - parents.pop(); - parentsB.pop(); - return false; - } - } - parents.pop(); - parentsB.pop(); - return true; - }, - - "set": function( b, a ) { - var innerEq, - outerEq = true; - - if ( a.size !== b.size ) { - return false; - } - - a.forEach( function( aVal ) { - innerEq = false; - - b.forEach( function( bVal ) { - if ( innerEquiv( bVal, aVal ) ) { - innerEq = true; - } - } ); - - if ( !innerEq ) { - outerEq = false; - } - } ); - - return outerEq; - }, - - "map": function( b, a ) { - var innerEq, - outerEq = true; - - if ( a.size !== b.size ) { - return false; - } - - a.forEach( function( aVal, aKey ) { - innerEq = false; - - b.forEach( function( bVal, bKey ) { - if ( innerEquiv( [ bVal, bKey ], [ aVal, aKey ] ) ) { - innerEq = true; - } - } ); - - if ( !innerEq ) { - outerEq = false; - } - } ); - - return outerEq; - }, - - "object": function( b, a ) { - var i, j, loop, aCircular, bCircular; - - // Default to true - var eq = true; - var aProperties = []; - var bProperties = []; - - if ( compareConstructors( a, b ) === false ) { - return false; - } - - // Stack constructor before traversing properties - callers.push( a.constructor ); - - // Track reference to avoid circular references - parents.push( a ); - parentsB.push( b ); - - // Be strict: don't ensure hasOwnProperty and go deep - for ( i in a ) { - loop = false; - for ( j = 0; j < parents.length; j++ ) { - aCircular = parents[ j ] === a[ i ]; - bCircular = parentsB[ j ] === b[ i ]; - if ( aCircular || bCircular ) { - if ( a[ i ] === b[ i ] || aCircular && bCircular ) { - loop = true; - } else { - eq = false; - break; - } - } - } - aProperties.push( i ); - if ( !loop && !innerEquiv( a[ i ], b[ i ] ) ) { - eq = false; - break; - } - } - - parents.pop(); - parentsB.pop(); - - // Unstack, we are done - callers.pop(); - - for ( i in b ) { - - // Collect b's properties - bProperties.push( i ); - } - - // Ensures identical properties name - return eq && innerEquiv( aProperties.sort(), bProperties.sort() ); - } - }; - - function typeEquiv( a, b ) { - var type = QUnit.objectType( a ); - return QUnit.objectType( b ) === type && callbacks[ type ]( b, a ); - } - - // The real equiv function - function innerEquiv( a, b ) { - - // We're done when there's nothing more to compare - if ( arguments.length < 2 ) { - return true; - } - - // Require type-specific equality - return ( a === b || typeEquiv( a, b ) ) && - - // ...across all consecutive argument pairs - ( arguments.length === 2 || innerEquiv.apply( this, [].slice.call( arguments, 1 ) ) ); - } - - return innerEquiv; -}() ); - -// Based on jsDump by Ariel Flesler -// http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html -QUnit.dump = ( function() { - function quote( str ) { - return "\"" + str.toString().replace( /\\/g, "\\\\" ).replace( /"/g, "\\\"" ) + "\""; - } - function literal( o ) { - return o + ""; - } - function join( pre, arr, post ) { - var s = dump.separator(), - base = dump.indent(), - inner = dump.indent( 1 ); - if ( arr.join ) { - arr = arr.join( "," + s + inner ); - } - if ( !arr ) { - return pre + post; - } - return [ pre, inner + arr, base + post ].join( s ); - } - function array( arr, stack ) { - var i = arr.length, - ret = new Array( i ); - - if ( dump.maxDepth && dump.depth > dump.maxDepth ) { - return "[object Array]"; - } - - this.up(); - while ( i-- ) { - ret[ i ] = this.parse( arr[ i ], undefined, stack ); - } - this.down(); - return join( "[", ret, "]" ); - } - - var reName = /^function (\w+)/, - dump = { - - // The objType is used mostly internally, you can fix a (custom) type in advance - parse: function( obj, objType, stack ) { - stack = stack || []; - var res, parser, parserType, - inStack = inArray( obj, stack ); - - if ( inStack !== -1 ) { - return "recursion(" + ( inStack - stack.length ) + ")"; - } - - objType = objType || this.typeOf( obj ); - parser = this.parsers[ objType ]; - parserType = typeof parser; - - if ( parserType === "function" ) { - stack.push( obj ); - res = parser.call( this, obj, stack ); - stack.pop(); - return res; - } - return ( parserType === "string" ) ? parser : this.parsers.error; - }, - typeOf: function( obj ) { - var type; - if ( obj === null ) { - type = "null"; - } else if ( typeof obj === "undefined" ) { - type = "undefined"; - } else if ( QUnit.is( "regexp", obj ) ) { - type = "regexp"; - } else if ( QUnit.is( "date", obj ) ) { - type = "date"; - } else if ( QUnit.is( "function", obj ) ) { - type = "function"; - } else if ( obj.setInterval !== undefined && - obj.document !== undefined && - obj.nodeType === undefined ) { - type = "window"; - } else if ( obj.nodeType === 9 ) { - type = "document"; - } else if ( obj.nodeType ) { - type = "node"; - } else if ( - - // Native arrays - toString.call( obj ) === "[object Array]" || - - // NodeList objects - ( typeof obj.length === "number" && obj.item !== undefined && - ( obj.length ? obj.item( 0 ) === obj[ 0 ] : ( obj.item( 0 ) === null && - obj[ 0 ] === undefined ) ) ) - ) { - type = "array"; - } else if ( obj.constructor === Error.prototype.constructor ) { - type = "error"; - } else { - type = typeof obj; - } - return type; - }, - - separator: function() { - return this.multiline ? this.HTML ? "
          " : "\n" : this.HTML ? " " : " "; - }, - - // Extra can be a number, shortcut for increasing-calling-decreasing - indent: function( extra ) { - if ( !this.multiline ) { - return ""; - } - var chr = this.indentChar; - if ( this.HTML ) { - chr = chr.replace( /\t/g, " " ).replace( / /g, " " ); - } - return new Array( this.depth + ( extra || 0 ) ).join( chr ); - }, - up: function( a ) { - this.depth += a || 1; - }, - down: function( a ) { - this.depth -= a || 1; - }, - setParser: function( name, parser ) { - this.parsers[ name ] = parser; - }, - - // The next 3 are exposed so you can use them - quote: quote, - literal: literal, - join: join, - depth: 1, - maxDepth: QUnit.config.maxDepth, - - // This is the list of parsers, to modify them, use dump.setParser - parsers: { - window: "[Window]", - document: "[Document]", - error: function( error ) { - return "Error(\"" + error.message + "\")"; - }, - unknown: "[Unknown]", - "null": "null", - "undefined": "undefined", - "function": function( fn ) { - var ret = "function", - - // Functions never have name in IE - name = "name" in fn ? fn.name : ( reName.exec( fn ) || [] )[ 1 ]; - - if ( name ) { - ret += " " + name; - } - ret += "("; - - ret = [ ret, dump.parse( fn, "functionArgs" ), "){" ].join( "" ); - return join( ret, dump.parse( fn, "functionCode" ), "}" ); - }, - array: array, - nodelist: array, - "arguments": array, - object: function( map, stack ) { - var keys, key, val, i, nonEnumerableProperties, - ret = []; - - if ( dump.maxDepth && dump.depth > dump.maxDepth ) { - return "[object Object]"; - } - - dump.up(); - keys = []; - for ( key in map ) { - keys.push( key ); - } - - // Some properties are not always enumerable on Error objects. - nonEnumerableProperties = [ "message", "name" ]; - for ( i in nonEnumerableProperties ) { - key = nonEnumerableProperties[ i ]; - if ( key in map && inArray( key, keys ) < 0 ) { - keys.push( key ); - } - } - keys.sort(); - for ( i = 0; i < keys.length; i++ ) { - key = keys[ i ]; - val = map[ key ]; - ret.push( dump.parse( key, "key" ) + ": " + - dump.parse( val, undefined, stack ) ); - } - dump.down(); - return join( "{", ret, "}" ); - }, - node: function( node ) { - var len, i, val, - open = dump.HTML ? "<" : "<", - close = dump.HTML ? ">" : ">", - tag = node.nodeName.toLowerCase(), - ret = open + tag, - attrs = node.attributes; - - if ( attrs ) { - for ( i = 0, len = attrs.length; i < len; i++ ) { - val = attrs[ i ].nodeValue; - - // IE6 includes all attributes in .attributes, even ones not explicitly - // set. Those have values like undefined, null, 0, false, "" or - // "inherit". - if ( val && val !== "inherit" ) { - ret += " " + attrs[ i ].nodeName + "=" + - dump.parse( val, "attribute" ); - } - } - } - ret += close; - - // Show content of TextNode or CDATASection - if ( node.nodeType === 3 || node.nodeType === 4 ) { - ret += node.nodeValue; - } - - return ret + open + "/" + tag + close; - }, - - // Function calls it internally, it's the arguments part of the function - functionArgs: function( fn ) { - var args, - l = fn.length; - - if ( !l ) { - return ""; - } - - args = new Array( l ); - while ( l-- ) { - - // 97 is 'a' - args[ l ] = String.fromCharCode( 97 + l ); - } - return " " + args.join( ", " ) + " "; - }, - - // Object calls it internally, the key part of an item in a map - key: quote, - - // Function calls it internally, it's the content of the function - functionCode: "[code]", - - // Node calls it internally, it's a html attribute value - attribute: quote, - string: quote, - date: quote, - regexp: literal, - number: literal, - "boolean": literal - }, - - // If true, entities are escaped ( <, >, \t, space and \n ) - HTML: false, - - // Indentation unit - indentChar: " ", - - // If true, items in a collection, are separated by a \n, else just a space. - multiline: true - }; - - return dump; -}() ); - -// Back compat -QUnit.jsDump = QUnit.dump; - -// Deprecated -// Extend assert methods to QUnit for Backwards compatibility -( function() { - var i, - assertions = Assert.prototype; - - function applyCurrent( current ) { - return function() { - var assert = new Assert( QUnit.config.current ); - current.apply( assert, arguments ); - }; - } - - for ( i in assertions ) { - QUnit[ i ] = applyCurrent( assertions[ i ] ); - } -}() ); - -// For browser, export only select globals -if ( defined.document ) { - - ( function() { - var i, l, - keys = [ - "test", - "module", - "expect", - "asyncTest", - "start", - "stop", - "ok", - "notOk", - "equal", - "notEqual", - "propEqual", - "notPropEqual", - "deepEqual", - "notDeepEqual", - "strictEqual", - "notStrictEqual", - "throws", - "raises" - ]; - - for ( i = 0, l = keys.length; i < l; i++ ) { - window[ keys[ i ] ] = QUnit[ keys[ i ] ]; - } - }() ); - - window.QUnit = QUnit; -} - -// For nodejs -if ( typeof module !== "undefined" && module && module.exports ) { - module.exports = QUnit; - - // For consistency with CommonJS environments' exports - module.exports.QUnit = QUnit; -} - -// For CommonJS with exports, but without module.exports, like Rhino -if ( typeof exports !== "undefined" && exports ) { - exports.QUnit = QUnit; -} - -if ( typeof define === "function" && define.amd ) { - define( function() { - return QUnit; - } ); - QUnit.config.autostart = false; -} - -// Get a reference to the global object, like window in browsers -}( ( function() { - return this; -}() ) ) ); - -( function() { - -// Only interact with URLs via window.location -var location = typeof window !== "undefined" && window.location; -if ( !location ) { - return; -} - -var urlParams = getUrlParams(); - -QUnit.urlParams = urlParams; - -// Match module/test by inclusion in an array -QUnit.config.moduleId = [].concat( urlParams.moduleId || [] ); -QUnit.config.testId = [].concat( urlParams.testId || [] ); - -// Exact case-insensitive match of the module name -QUnit.config.module = urlParams.module; - -// Regular expression or case-insenstive substring match against "moduleName: testName" -QUnit.config.filter = urlParams.filter; - -// Test order randomization -if ( urlParams.seed === true ) { - - // Generate a random seed if the option is specified without a value - QUnit.config.seed = Math.random().toString( 36 ).slice( 2 ); -} else if ( urlParams.seed ) { - QUnit.config.seed = urlParams.seed; -} - -// Add URL-parameter-mapped config values with UI form rendering data -QUnit.config.urlConfig.push( - { - id: "hidepassed", - label: "Hide passed tests", - tooltip: "Only show tests and assertions that fail. Stored as query-strings." - }, - { - id: "noglobals", - label: "Check for Globals", - tooltip: "Enabling this will test if any test introduces new properties on the " + - "global object (`window` in Browsers). Stored as query-strings." - }, - { - id: "notrycatch", - label: "No try-catch", - tooltip: "Enabling this will run tests outside of a try-catch block. Makes debugging " + - "exceptions in IE reasonable. Stored as query-strings." - } -); - -QUnit.begin( function() { - var i, option, - urlConfig = QUnit.config.urlConfig; - - for ( i = 0; i < urlConfig.length; i++ ) { - - // Options can be either strings or objects with nonempty "id" properties - option = QUnit.config.urlConfig[ i ]; - if ( typeof option !== "string" ) { - option = option.id; - } - - if ( QUnit.config[ option ] === undefined ) { - QUnit.config[ option ] = urlParams[ option ]; - } - } -} ); - -function getUrlParams() { - var i, param, name, value; - var urlParams = {}; - var params = location.search.slice( 1 ).split( "&" ); - var length = params.length; - - for ( i = 0; i < length; i++ ) { - if ( params[ i ] ) { - param = params[ i ].split( "=" ); - name = decodeURIComponent( param[ 0 ] ); - - // Allow just a key to turn on a flag, e.g., test.html?noglobals - value = param.length === 1 || - decodeURIComponent( param.slice( 1 ).join( "=" ) ) ; - if ( urlParams[ name ] ) { - urlParams[ name ] = [].concat( urlParams[ name ], value ); - } else { - urlParams[ name ] = value; - } - } - } - - return urlParams; -} - -// Don't load the HTML Reporter on non-browser environments -if ( typeof window === "undefined" || !window.document ) { - return; -} - -// Deprecated QUnit.init - Ref #530 -// Re-initialize the configuration options -QUnit.init = function() { - var config = QUnit.config; - - config.stats = { all: 0, bad: 0 }; - config.moduleStats = { all: 0, bad: 0 }; - config.started = 0; - config.updateRate = 1000; - config.blocking = false; - config.autostart = true; - config.autorun = false; - config.filter = ""; - config.queue = []; - - appendInterface(); -}; - -var config = QUnit.config, - document = window.document, - collapseNext = false, - hasOwn = Object.prototype.hasOwnProperty, - unfilteredUrl = setUrl( { filter: undefined, module: undefined, - moduleId: undefined, testId: undefined } ), - defined = { - sessionStorage: ( function() { - var x = "qunit-test-string"; - try { - sessionStorage.setItem( x, x ); - sessionStorage.removeItem( x ); - return true; - } catch ( e ) { - return false; - } - }() ) - }, - modulesList = []; - -/** -* Escape text for attribute or text content. -*/ -function escapeText( s ) { - if ( !s ) { - return ""; - } - s = s + ""; - - // Both single quotes and double quotes (for attributes) - return s.replace( /['"<>&]/g, function( s ) { - switch ( s ) { - case "'": - return "'"; - case "\"": - return """; - case "<": - return "<"; - case ">": - return ">"; - case "&": - return "&"; - } - } ); -} - -/** - * @param {HTMLElement} elem - * @param {string} type - * @param {Function} fn - */ -function addEvent( elem, type, fn ) { - if ( elem.addEventListener ) { - - // Standards-based browsers - elem.addEventListener( type, fn, false ); - } else if ( elem.attachEvent ) { - - // Support: IE <9 - elem.attachEvent( "on" + type, function() { - var event = window.event; - if ( !event.target ) { - event.target = event.srcElement || document; - } - - fn.call( elem, event ); - } ); - } -} - -/** - * @param {Array|NodeList} elems - * @param {string} type - * @param {Function} fn - */ -function addEvents( elems, type, fn ) { - var i = elems.length; - while ( i-- ) { - addEvent( elems[ i ], type, fn ); - } -} - -function hasClass( elem, name ) { - return ( " " + elem.className + " " ).indexOf( " " + name + " " ) >= 0; -} - -function addClass( elem, name ) { - if ( !hasClass( elem, name ) ) { - elem.className += ( elem.className ? " " : "" ) + name; - } -} - -function toggleClass( elem, name, force ) { - if ( force || typeof force === "undefined" && !hasClass( elem, name ) ) { - addClass( elem, name ); - } else { - removeClass( elem, name ); - } -} - -function removeClass( elem, name ) { - var set = " " + elem.className + " "; - - // Class name may appear multiple times - while ( set.indexOf( " " + name + " " ) >= 0 ) { - set = set.replace( " " + name + " ", " " ); - } - - // Trim for prettiness - elem.className = typeof set.trim === "function" ? set.trim() : set.replace( /^\s+|\s+$/g, "" ); -} - -function id( name ) { - return document.getElementById && document.getElementById( name ); -} - -function getUrlConfigHtml() { - var i, j, val, - escaped, escapedTooltip, - selection = false, - urlConfig = config.urlConfig, - urlConfigHtml = ""; - - for ( i = 0; i < urlConfig.length; i++ ) { - - // Options can be either strings or objects with nonempty "id" properties - val = config.urlConfig[ i ]; - if ( typeof val === "string" ) { - val = { - id: val, - label: val - }; - } - - escaped = escapeText( val.id ); - escapedTooltip = escapeText( val.tooltip ); - - if ( !val.value || typeof val.value === "string" ) { - urlConfigHtml += ""; - } else { - urlConfigHtml += ""; - } - } - - return urlConfigHtml; -} - -// Handle "click" events on toolbar checkboxes and "change" for select menus. -// Updates the URL with the new state of `config.urlConfig` values. -function toolbarChanged() { - var updatedUrl, value, tests, - field = this, - params = {}; - - // Detect if field is a select menu or a checkbox - if ( "selectedIndex" in field ) { - value = field.options[ field.selectedIndex ].value || undefined; - } else { - value = field.checked ? ( field.defaultValue || true ) : undefined; - } - - params[ field.name ] = value; - updatedUrl = setUrl( params ); - - // Check if we can apply the change without a page refresh - if ( "hidepassed" === field.name && "replaceState" in window.history ) { - QUnit.urlParams[ field.name ] = value; - config[ field.name ] = value || false; - tests = id( "qunit-tests" ); - if ( tests ) { - toggleClass( tests, "hidepass", value || false ); - } - window.history.replaceState( null, "", updatedUrl ); - } else { - window.location = updatedUrl; - } -} - -function setUrl( params ) { - var key, arrValue, i, - querystring = "?", - location = window.location; - - params = QUnit.extend( QUnit.extend( {}, QUnit.urlParams ), params ); - - for ( key in params ) { - - // Skip inherited or undefined properties - if ( hasOwn.call( params, key ) && params[ key ] !== undefined ) { - - // Output a parameter for each value of this key (but usually just one) - arrValue = [].concat( params[ key ] ); - for ( i = 0; i < arrValue.length; i++ ) { - querystring += encodeURIComponent( key ); - if ( arrValue[ i ] !== true ) { - querystring += "=" + encodeURIComponent( arrValue[ i ] ); - } - querystring += "&"; - } - } - } - return location.protocol + "//" + location.host + - location.pathname + querystring.slice( 0, -1 ); -} - -function applyUrlParams() { - var selectedModule, - modulesList = id( "qunit-modulefilter" ), - filter = id( "qunit-filter-input" ).value; - - selectedModule = modulesList ? - decodeURIComponent( modulesList.options[ modulesList.selectedIndex ].value ) : - undefined; - - window.location = setUrl( { - module: ( selectedModule === "" ) ? undefined : selectedModule, - filter: ( filter === "" ) ? undefined : filter, - - // Remove moduleId and testId filters - moduleId: undefined, - testId: undefined - } ); -} - -function toolbarUrlConfigContainer() { - var urlConfigContainer = document.createElement( "span" ); - - urlConfigContainer.innerHTML = getUrlConfigHtml(); - addClass( urlConfigContainer, "qunit-url-config" ); - - // For oldIE support: - // * Add handlers to the individual elements instead of the container - // * Use "click" instead of "change" for checkboxes - addEvents( urlConfigContainer.getElementsByTagName( "input" ), "click", toolbarChanged ); - addEvents( urlConfigContainer.getElementsByTagName( "select" ), "change", toolbarChanged ); - - return urlConfigContainer; -} - -function toolbarLooseFilter() { - var filter = document.createElement( "form" ), - label = document.createElement( "label" ), - input = document.createElement( "input" ), - button = document.createElement( "button" ); - - addClass( filter, "qunit-filter" ); - - label.innerHTML = "Filter: "; - - input.type = "text"; - input.value = config.filter || ""; - input.name = "filter"; - input.id = "qunit-filter-input"; - - button.innerHTML = "Go"; - - label.appendChild( input ); - - filter.appendChild( label ); - filter.appendChild( button ); - addEvent( filter, "submit", function( ev ) { - applyUrlParams(); - - if ( ev && ev.preventDefault ) { - ev.preventDefault(); - } - - return false; - } ); - - return filter; -} - -function toolbarModuleFilterHtml() { - var i, - moduleFilterHtml = ""; - - if ( !modulesList.length ) { - return false; - } - - moduleFilterHtml += "" + - ""; - - return moduleFilterHtml; -} - -function toolbarModuleFilter() { - var toolbar = id( "qunit-testrunner-toolbar" ), - moduleFilter = document.createElement( "span" ), - moduleFilterHtml = toolbarModuleFilterHtml(); - - if ( !toolbar || !moduleFilterHtml ) { - return false; - } - - moduleFilter.setAttribute( "id", "qunit-modulefilter-container" ); - moduleFilter.innerHTML = moduleFilterHtml; - - addEvent( moduleFilter.lastChild, "change", applyUrlParams ); - - toolbar.appendChild( moduleFilter ); -} - -function appendToolbar() { - var toolbar = id( "qunit-testrunner-toolbar" ); - - if ( toolbar ) { - toolbar.appendChild( toolbarUrlConfigContainer() ); - toolbar.appendChild( toolbarLooseFilter() ); - toolbarModuleFilter(); - } -} - -function appendHeader() { - var header = id( "qunit-header" ); - - if ( header ) { - header.innerHTML = "" + header.innerHTML + - " "; - } -} - -function appendBanner() { - var banner = id( "qunit-banner" ); - - if ( banner ) { - banner.className = ""; - } -} - -function appendTestResults() { - var tests = id( "qunit-tests" ), - result = id( "qunit-testresult" ); - - if ( result ) { - result.parentNode.removeChild( result ); - } - - if ( tests ) { - tests.innerHTML = ""; - result = document.createElement( "p" ); - result.id = "qunit-testresult"; - result.className = "result"; - tests.parentNode.insertBefore( result, tests ); - result.innerHTML = "Running...
           "; - } -} - -function storeFixture() { - var fixture = id( "qunit-fixture" ); - if ( fixture ) { - config.fixture = fixture.innerHTML; - } -} - -function appendFilteredTest() { - var testId = QUnit.config.testId; - if ( !testId || testId.length <= 0 ) { - return ""; - } - return "
          Rerunning selected tests: " + - escapeText( testId.join( ", " ) ) + - " Run all tests
          "; -} - -function appendUserAgent() { - var userAgent = id( "qunit-userAgent" ); - - if ( userAgent ) { - userAgent.innerHTML = ""; - userAgent.appendChild( - document.createTextNode( - "QUnit " + QUnit.version + "; " + navigator.userAgent - ) - ); - } -} - -function appendInterface() { - var qunit = id( "qunit" ); - - if ( qunit ) { - qunit.innerHTML = - "

          " + escapeText( document.title ) + "

          " + - "

          " + - "
          " + - appendFilteredTest() + - "

          " + - "
            "; - } - - appendHeader(); - appendBanner(); - appendTestResults(); - appendUserAgent(); - appendToolbar(); -} - -function appendTestsList( modules ) { - var i, l, x, z, test, moduleObj; - - for ( i = 0, l = modules.length; i < l; i++ ) { - moduleObj = modules[ i ]; - - for ( x = 0, z = moduleObj.tests.length; x < z; x++ ) { - test = moduleObj.tests[ x ]; - - appendTest( test.name, test.testId, moduleObj.name ); - } - } -} - -function appendTest( name, testId, moduleName ) { - var title, rerunTrigger, testBlock, assertList, - tests = id( "qunit-tests" ); - - if ( !tests ) { - return; - } - - title = document.createElement( "strong" ); - title.innerHTML = getNameHtml( name, moduleName ); - - rerunTrigger = document.createElement( "a" ); - rerunTrigger.innerHTML = "Rerun"; - rerunTrigger.href = setUrl( { testId: testId } ); - - testBlock = document.createElement( "li" ); - testBlock.appendChild( title ); - testBlock.appendChild( rerunTrigger ); - testBlock.id = "qunit-test-output-" + testId; - - assertList = document.createElement( "ol" ); - assertList.className = "qunit-assert-list"; - - testBlock.appendChild( assertList ); - - tests.appendChild( testBlock ); -} - -// HTML Reporter initialization and load -QUnit.begin( function( details ) { - var i, moduleObj, tests; - - // Sort modules by name for the picker - for ( i = 0; i < details.modules.length; i++ ) { - moduleObj = details.modules[ i ]; - if ( moduleObj.name ) { - modulesList.push( moduleObj.name ); - } - } - modulesList.sort( function( a, b ) { - return a.localeCompare( b ); - } ); - - // Capture fixture HTML from the page - storeFixture(); - - // Initialize QUnit elements - appendInterface(); - appendTestsList( details.modules ); - tests = id( "qunit-tests" ); - if ( tests && config.hidepassed ) { - addClass( tests, "hidepass" ); - } -} ); - -QUnit.done( function( details ) { - var i, key, - banner = id( "qunit-banner" ), - tests = id( "qunit-tests" ), - html = [ - "Tests completed in ", - details.runtime, - " milliseconds.
            ", - "", - details.passed, - " assertions of ", - details.total, - " passed, ", - details.failed, - " failed." - ].join( "" ); - - if ( banner ) { - banner.className = details.failed ? "qunit-fail" : "qunit-pass"; - } - - if ( tests ) { - id( "qunit-testresult" ).innerHTML = html; - } - - if ( config.altertitle && document.title ) { - - // Show ✖ for good, ✔ for bad suite result in title - // use escape sequences in case file gets loaded with non-utf-8-charset - document.title = [ - ( details.failed ? "\u2716" : "\u2714" ), - document.title.replace( /^[\u2714\u2716] /i, "" ) - ].join( " " ); - } - - // Clear own sessionStorage items if all tests passed - if ( config.reorder && defined.sessionStorage && details.failed === 0 ) { - for ( i = 0; i < sessionStorage.length; i++ ) { - key = sessionStorage.key( i++ ); - if ( key.indexOf( "qunit-test-" ) === 0 ) { - sessionStorage.removeItem( key ); - } - } - } - - // Scroll back to top to show results - if ( config.scrolltop && window.scrollTo ) { - window.scrollTo( 0, 0 ); - } -} ); - -function getNameHtml( name, module ) { - var nameHtml = ""; - - if ( module ) { - nameHtml = "" + escapeText( module ) + ": "; - } - - nameHtml += "" + escapeText( name ) + ""; - - return nameHtml; -} - -QUnit.testStart( function( details ) { - var running, testBlock, bad; - - testBlock = id( "qunit-test-output-" + details.testId ); - if ( testBlock ) { - testBlock.className = "running"; - } else { - - // Report later registered tests - appendTest( details.name, details.testId, details.module ); - } - - running = id( "qunit-testresult" ); - if ( running ) { - bad = QUnit.config.reorder && defined.sessionStorage && - +sessionStorage.getItem( "qunit-test-" + details.module + "-" + details.name ); - - running.innerHTML = ( bad ? - "Rerunning previously failed test:
            " : - "Running:
            " ) + - getNameHtml( details.name, details.module ); - } - -} ); - -function stripHtml( string ) { - - // Strip tags, html entity and whitespaces - return string.replace( /<\/?[^>]+(>|$)/g, "" ).replace( /\"/g, "" ).replace( /\s+/g, "" ); -} - -QUnit.log( function( details ) { - var assertList, assertLi, - message, expected, actual, diff, - showDiff = false, - testItem = id( "qunit-test-output-" + details.testId ); - - if ( !testItem ) { - return; - } - - message = escapeText( details.message ) || ( details.result ? "okay" : "failed" ); - message = "" + message + ""; - message += "@ " + details.runtime + " ms"; - - // The pushFailure doesn't provide details.expected - // when it calls, it's implicit to also not show expected and diff stuff - // Also, we need to check details.expected existence, as it can exist and be undefined - if ( !details.result && hasOwn.call( details, "expected" ) ) { - if ( details.negative ) { - expected = "NOT " + QUnit.dump.parse( details.expected ); - } else { - expected = QUnit.dump.parse( details.expected ); - } - - actual = QUnit.dump.parse( details.actual ); - message += ""; - - if ( actual !== expected ) { - - message += ""; - - // Don't show diff if actual or expected are booleans - if ( !( /^(true|false)$/.test( actual ) ) && - !( /^(true|false)$/.test( expected ) ) ) { - diff = QUnit.diff( expected, actual ); - showDiff = stripHtml( diff ).length !== - stripHtml( expected ).length + - stripHtml( actual ).length; - } - - // Don't show diff if expected and actual are totally different - if ( showDiff ) { - message += ""; - } - } else if ( expected.indexOf( "[object Array]" ) !== -1 || - expected.indexOf( "[object Object]" ) !== -1 ) { - message += ""; - } else { - message += ""; - } - - if ( details.source ) { - message += ""; - } - - message += "
            Expected:
            " +
            -			escapeText( expected ) +
            -			"
            Result:
            " +
            -				escapeText( actual ) + "
            Diff:
            " +
            -					diff + "
            Message: " + - "Diff suppressed as the depth of object is more than current max depth (" + - QUnit.config.maxDepth + ").

            Hint: Use QUnit.dump.maxDepth to " + - " run with a higher max depth or " + - "Rerun without max depth.

            Message: " + - "Diff suppressed as the expected and actual results have an equivalent" + - " serialization
            Source:
            " +
            -				escapeText( details.source ) + "
            "; - - // This occurs when pushFailure is set and we have an extracted stack trace - } else if ( !details.result && details.source ) { - message += "" + - "" + - "
            Source:
            " +
            -			escapeText( details.source ) + "
            "; - } - - assertList = testItem.getElementsByTagName( "ol" )[ 0 ]; - - assertLi = document.createElement( "li" ); - assertLi.className = details.result ? "pass" : "fail"; - assertLi.innerHTML = message; - assertList.appendChild( assertLi ); -} ); - -QUnit.testDone( function( details ) { - var testTitle, time, testItem, assertList, - good, bad, testCounts, skipped, sourceName, - tests = id( "qunit-tests" ); - - if ( !tests ) { - return; - } - - testItem = id( "qunit-test-output-" + details.testId ); - - assertList = testItem.getElementsByTagName( "ol" )[ 0 ]; - - good = details.passed; - bad = details.failed; - - // Store result when possible - if ( config.reorder && defined.sessionStorage ) { - if ( bad ) { - sessionStorage.setItem( "qunit-test-" + details.module + "-" + details.name, bad ); - } else { - sessionStorage.removeItem( "qunit-test-" + details.module + "-" + details.name ); - } - } - - if ( bad === 0 ) { - - // Collapse the passing tests - addClass( assertList, "qunit-collapsed" ); - } else if ( bad && config.collapse && !collapseNext ) { - - // Skip collapsing the first failing test - collapseNext = true; - } else { - - // Collapse remaining tests - addClass( assertList, "qunit-collapsed" ); - } - - // The testItem.firstChild is the test name - testTitle = testItem.firstChild; - - testCounts = bad ? - "" + bad + ", " + "" + good + ", " : - ""; - - testTitle.innerHTML += " (" + testCounts + - details.assertions.length + ")"; - - if ( details.skipped ) { - testItem.className = "skipped"; - skipped = document.createElement( "em" ); - skipped.className = "qunit-skipped-label"; - skipped.innerHTML = "skipped"; - testItem.insertBefore( skipped, testTitle ); - } else { - addEvent( testTitle, "click", function() { - toggleClass( assertList, "qunit-collapsed" ); - } ); - - testItem.className = bad ? "fail" : "pass"; - - time = document.createElement( "span" ); - time.className = "runtime"; - time.innerHTML = details.runtime + " ms"; - testItem.insertBefore( time, assertList ); - } - - // Show the source of the test when showing assertions - if ( details.source ) { - sourceName = document.createElement( "p" ); - sourceName.innerHTML = "Source: " + details.source; - addClass( sourceName, "qunit-source" ); - if ( bad === 0 ) { - addClass( sourceName, "qunit-collapsed" ); - } - addEvent( testTitle, "click", function() { - toggleClass( sourceName, "qunit-collapsed" ); - } ); - testItem.appendChild( sourceName ); - } -} ); - -// Avoid readyState issue with phantomjs -// Ref: #818 -var notPhantom = ( function( p ) { - return !( p && p.version && p.version.major > 0 ); -} )( window.phantom ); - -if ( notPhantom && document.readyState === "complete" ) { - QUnit.load(); -} else { - addEvent( window, "load", QUnit.load ); -} - -/* - * This file is a modified version of google-diff-match-patch's JavaScript implementation - * (https://code.google.com/p/google-diff-match-patch/source/browse/trunk/javascript/diff_match_patch_uncompressed.js), - * modifications are licensed as more fully set forth in LICENSE.txt. - * - * The original source of google-diff-match-patch is attributable and licensed as follows: - * - * Copyright 2006 Google Inc. - * https://code.google.com/p/google-diff-match-patch/ - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * More Info: - * https://code.google.com/p/google-diff-match-patch/ - * - * Usage: QUnit.diff(expected, actual) - * - */ -QUnit.diff = ( function() { - function DiffMatchPatch() { - } - - // DIFF FUNCTIONS - - /** - * The data structure representing a diff is an array of tuples: - * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']] - * which means: delete 'Hello', add 'Goodbye' and keep ' world.' - */ - var DIFF_DELETE = -1, - DIFF_INSERT = 1, - DIFF_EQUAL = 0; - - /** - * Find the differences between two texts. Simplifies the problem by stripping - * any common prefix or suffix off the texts before diffing. - * @param {string} text1 Old string to be diffed. - * @param {string} text2 New string to be diffed. - * @param {boolean=} optChecklines Optional speedup flag. If present and false, - * then don't run a line-level diff first to identify the changed areas. - * Defaults to true, which does a faster, slightly less optimal diff. - * @return {!Array.} Array of diff tuples. - */ - DiffMatchPatch.prototype.DiffMain = function( text1, text2, optChecklines ) { - var deadline, checklines, commonlength, - commonprefix, commonsuffix, diffs; - - // The diff must be complete in up to 1 second. - deadline = ( new Date() ).getTime() + 1000; - - // Check for null inputs. - if ( text1 === null || text2 === null ) { - throw new Error( "Null input. (DiffMain)" ); - } - - // Check for equality (speedup). - if ( text1 === text2 ) { - if ( text1 ) { - return [ - [ DIFF_EQUAL, text1 ] - ]; - } - return []; - } - - if ( typeof optChecklines === "undefined" ) { - optChecklines = true; - } - - checklines = optChecklines; - - // Trim off common prefix (speedup). - commonlength = this.diffCommonPrefix( text1, text2 ); - commonprefix = text1.substring( 0, commonlength ); - text1 = text1.substring( commonlength ); - text2 = text2.substring( commonlength ); - - // Trim off common suffix (speedup). - commonlength = this.diffCommonSuffix( text1, text2 ); - commonsuffix = text1.substring( text1.length - commonlength ); - text1 = text1.substring( 0, text1.length - commonlength ); - text2 = text2.substring( 0, text2.length - commonlength ); - - // Compute the diff on the middle block. - diffs = this.diffCompute( text1, text2, checklines, deadline ); - - // Restore the prefix and suffix. - if ( commonprefix ) { - diffs.unshift( [ DIFF_EQUAL, commonprefix ] ); - } - if ( commonsuffix ) { - diffs.push( [ DIFF_EQUAL, commonsuffix ] ); - } - this.diffCleanupMerge( diffs ); - return diffs; - }; - - /** - * Reduce the number of edits by eliminating operationally trivial equalities. - * @param {!Array.} diffs Array of diff tuples. - */ - DiffMatchPatch.prototype.diffCleanupEfficiency = function( diffs ) { - var changes, equalities, equalitiesLength, lastequality, - pointer, preIns, preDel, postIns, postDel; - changes = false; - equalities = []; // Stack of indices where equalities are found. - equalitiesLength = 0; // Keeping our own length var is faster in JS. - /** @type {?string} */ - lastequality = null; - - // Always equal to diffs[equalities[equalitiesLength - 1]][1] - pointer = 0; // Index of current position. - - // Is there an insertion operation before the last equality. - preIns = false; - - // Is there a deletion operation before the last equality. - preDel = false; - - // Is there an insertion operation after the last equality. - postIns = false; - - // Is there a deletion operation after the last equality. - postDel = false; - while ( pointer < diffs.length ) { - - // Equality found. - if ( diffs[ pointer ][ 0 ] === DIFF_EQUAL ) { - if ( diffs[ pointer ][ 1 ].length < 4 && ( postIns || postDel ) ) { - - // Candidate found. - equalities[ equalitiesLength++ ] = pointer; - preIns = postIns; - preDel = postDel; - lastequality = diffs[ pointer ][ 1 ]; - } else { - - // Not a candidate, and can never become one. - equalitiesLength = 0; - lastequality = null; - } - postIns = postDel = false; - - // An insertion or deletion. - } else { - - if ( diffs[ pointer ][ 0 ] === DIFF_DELETE ) { - postDel = true; - } else { - postIns = true; - } - - /* - * Five types to be split: - * ABXYCD - * AXCD - * ABXC - * AXCD - * ABXC - */ - if ( lastequality && ( ( preIns && preDel && postIns && postDel ) || - ( ( lastequality.length < 2 ) && - ( preIns + preDel + postIns + postDel ) === 3 ) ) ) { - - // Duplicate record. - diffs.splice( - equalities[ equalitiesLength - 1 ], - 0, - [ DIFF_DELETE, lastequality ] - ); - - // Change second copy to insert. - diffs[ equalities[ equalitiesLength - 1 ] + 1 ][ 0 ] = DIFF_INSERT; - equalitiesLength--; // Throw away the equality we just deleted; - lastequality = null; - if ( preIns && preDel ) { - - // No changes made which could affect previous entry, keep going. - postIns = postDel = true; - equalitiesLength = 0; - } else { - equalitiesLength--; // Throw away the previous equality. - pointer = equalitiesLength > 0 ? equalities[ equalitiesLength - 1 ] : -1; - postIns = postDel = false; - } - changes = true; - } - } - pointer++; - } - - if ( changes ) { - this.diffCleanupMerge( diffs ); - } - }; - - /** - * Convert a diff array into a pretty HTML report. - * @param {!Array.} diffs Array of diff tuples. - * @param {integer} string to be beautified. - * @return {string} HTML representation. - */ - DiffMatchPatch.prototype.diffPrettyHtml = function( diffs ) { - var op, data, x, - html = []; - for ( x = 0; x < diffs.length; x++ ) { - op = diffs[ x ][ 0 ]; // Operation (insert, delete, equal) - data = diffs[ x ][ 1 ]; // Text of change. - switch ( op ) { - case DIFF_INSERT: - html[ x ] = "" + escapeText( data ) + ""; - break; - case DIFF_DELETE: - html[ x ] = "" + escapeText( data ) + ""; - break; - case DIFF_EQUAL: - html[ x ] = "" + escapeText( data ) + ""; - break; - } - } - return html.join( "" ); - }; - - /** - * Determine the common prefix of two strings. - * @param {string} text1 First string. - * @param {string} text2 Second string. - * @return {number} The number of characters common to the start of each - * string. - */ - DiffMatchPatch.prototype.diffCommonPrefix = function( text1, text2 ) { - var pointermid, pointermax, pointermin, pointerstart; - - // Quick check for common null cases. - if ( !text1 || !text2 || text1.charAt( 0 ) !== text2.charAt( 0 ) ) { - return 0; - } - - // Binary search. - // Performance analysis: https://neil.fraser.name/news/2007/10/09/ - pointermin = 0; - pointermax = Math.min( text1.length, text2.length ); - pointermid = pointermax; - pointerstart = 0; - while ( pointermin < pointermid ) { - if ( text1.substring( pointerstart, pointermid ) === - text2.substring( pointerstart, pointermid ) ) { - pointermin = pointermid; - pointerstart = pointermin; - } else { - pointermax = pointermid; - } - pointermid = Math.floor( ( pointermax - pointermin ) / 2 + pointermin ); - } - return pointermid; - }; - - /** - * Determine the common suffix of two strings. - * @param {string} text1 First string. - * @param {string} text2 Second string. - * @return {number} The number of characters common to the end of each string. - */ - DiffMatchPatch.prototype.diffCommonSuffix = function( text1, text2 ) { - var pointermid, pointermax, pointermin, pointerend; - - // Quick check for common null cases. - if ( !text1 || - !text2 || - text1.charAt( text1.length - 1 ) !== text2.charAt( text2.length - 1 ) ) { - return 0; - } - - // Binary search. - // Performance analysis: https://neil.fraser.name/news/2007/10/09/ - pointermin = 0; - pointermax = Math.min( text1.length, text2.length ); - pointermid = pointermax; - pointerend = 0; - while ( pointermin < pointermid ) { - if ( text1.substring( text1.length - pointermid, text1.length - pointerend ) === - text2.substring( text2.length - pointermid, text2.length - pointerend ) ) { - pointermin = pointermid; - pointerend = pointermin; - } else { - pointermax = pointermid; - } - pointermid = Math.floor( ( pointermax - pointermin ) / 2 + pointermin ); - } - return pointermid; - }; - - /** - * Find the differences between two texts. Assumes that the texts do not - * have any common prefix or suffix. - * @param {string} text1 Old string to be diffed. - * @param {string} text2 New string to be diffed. - * @param {boolean} checklines Speedup flag. If false, then don't run a - * line-level diff first to identify the changed areas. - * If true, then run a faster, slightly less optimal diff. - * @param {number} deadline Time when the diff should be complete by. - * @return {!Array.} Array of diff tuples. - * @private - */ - DiffMatchPatch.prototype.diffCompute = function( text1, text2, checklines, deadline ) { - var diffs, longtext, shorttext, i, hm, - text1A, text2A, text1B, text2B, - midCommon, diffsA, diffsB; - - if ( !text1 ) { - - // Just add some text (speedup). - return [ - [ DIFF_INSERT, text2 ] - ]; - } - - if ( !text2 ) { - - // Just delete some text (speedup). - return [ - [ DIFF_DELETE, text1 ] - ]; - } - - longtext = text1.length > text2.length ? text1 : text2; - shorttext = text1.length > text2.length ? text2 : text1; - i = longtext.indexOf( shorttext ); - if ( i !== -1 ) { - - // Shorter text is inside the longer text (speedup). - diffs = [ - [ DIFF_INSERT, longtext.substring( 0, i ) ], - [ DIFF_EQUAL, shorttext ], - [ DIFF_INSERT, longtext.substring( i + shorttext.length ) ] - ]; - - // Swap insertions for deletions if diff is reversed. - if ( text1.length > text2.length ) { - diffs[ 0 ][ 0 ] = diffs[ 2 ][ 0 ] = DIFF_DELETE; - } - return diffs; - } - - if ( shorttext.length === 1 ) { - - // Single character string. - // After the previous speedup, the character can't be an equality. - return [ - [ DIFF_DELETE, text1 ], - [ DIFF_INSERT, text2 ] - ]; - } - - // Check to see if the problem can be split in two. - hm = this.diffHalfMatch( text1, text2 ); - if ( hm ) { - - // A half-match was found, sort out the return data. - text1A = hm[ 0 ]; - text1B = hm[ 1 ]; - text2A = hm[ 2 ]; - text2B = hm[ 3 ]; - midCommon = hm[ 4 ]; - - // Send both pairs off for separate processing. - diffsA = this.DiffMain( text1A, text2A, checklines, deadline ); - diffsB = this.DiffMain( text1B, text2B, checklines, deadline ); - - // Merge the results. - return diffsA.concat( [ - [ DIFF_EQUAL, midCommon ] - ], diffsB ); - } - - if ( checklines && text1.length > 100 && text2.length > 100 ) { - return this.diffLineMode( text1, text2, deadline ); - } - - return this.diffBisect( text1, text2, deadline ); - }; - - /** - * Do the two texts share a substring which is at least half the length of the - * longer text? - * This speedup can produce non-minimal diffs. - * @param {string} text1 First string. - * @param {string} text2 Second string. - * @return {Array.} Five element Array, containing the prefix of - * text1, the suffix of text1, the prefix of text2, the suffix of - * text2 and the common middle. Or null if there was no match. - * @private - */ - DiffMatchPatch.prototype.diffHalfMatch = function( text1, text2 ) { - var longtext, shorttext, dmp, - text1A, text2B, text2A, text1B, midCommon, - hm1, hm2, hm; - - longtext = text1.length > text2.length ? text1 : text2; - shorttext = text1.length > text2.length ? text2 : text1; - if ( longtext.length < 4 || shorttext.length * 2 < longtext.length ) { - return null; // Pointless. - } - dmp = this; // 'this' becomes 'window' in a closure. - - /** - * Does a substring of shorttext exist within longtext such that the substring - * is at least half the length of longtext? - * Closure, but does not reference any external variables. - * @param {string} longtext Longer string. - * @param {string} shorttext Shorter string. - * @param {number} i Start index of quarter length substring within longtext. - * @return {Array.} Five element Array, containing the prefix of - * longtext, the suffix of longtext, the prefix of shorttext, the suffix - * of shorttext and the common middle. Or null if there was no match. - * @private - */ - function diffHalfMatchI( longtext, shorttext, i ) { - var seed, j, bestCommon, prefixLength, suffixLength, - bestLongtextA, bestLongtextB, bestShorttextA, bestShorttextB; - - // Start with a 1/4 length substring at position i as a seed. - seed = longtext.substring( i, i + Math.floor( longtext.length / 4 ) ); - j = -1; - bestCommon = ""; - while ( ( j = shorttext.indexOf( seed, j + 1 ) ) !== -1 ) { - prefixLength = dmp.diffCommonPrefix( longtext.substring( i ), - shorttext.substring( j ) ); - suffixLength = dmp.diffCommonSuffix( longtext.substring( 0, i ), - shorttext.substring( 0, j ) ); - if ( bestCommon.length < suffixLength + prefixLength ) { - bestCommon = shorttext.substring( j - suffixLength, j ) + - shorttext.substring( j, j + prefixLength ); - bestLongtextA = longtext.substring( 0, i - suffixLength ); - bestLongtextB = longtext.substring( i + prefixLength ); - bestShorttextA = shorttext.substring( 0, j - suffixLength ); - bestShorttextB = shorttext.substring( j + prefixLength ); - } - } - if ( bestCommon.length * 2 >= longtext.length ) { - return [ bestLongtextA, bestLongtextB, - bestShorttextA, bestShorttextB, bestCommon - ]; - } else { - return null; - } - } - - // First check if the second quarter is the seed for a half-match. - hm1 = diffHalfMatchI( longtext, shorttext, - Math.ceil( longtext.length / 4 ) ); - - // Check again based on the third quarter. - hm2 = diffHalfMatchI( longtext, shorttext, - Math.ceil( longtext.length / 2 ) ); - if ( !hm1 && !hm2 ) { - return null; - } else if ( !hm2 ) { - hm = hm1; - } else if ( !hm1 ) { - hm = hm2; - } else { - - // Both matched. Select the longest. - hm = hm1[ 4 ].length > hm2[ 4 ].length ? hm1 : hm2; - } - - // A half-match was found, sort out the return data. - text1A, text1B, text2A, text2B; - if ( text1.length > text2.length ) { - text1A = hm[ 0 ]; - text1B = hm[ 1 ]; - text2A = hm[ 2 ]; - text2B = hm[ 3 ]; - } else { - text2A = hm[ 0 ]; - text2B = hm[ 1 ]; - text1A = hm[ 2 ]; - text1B = hm[ 3 ]; - } - midCommon = hm[ 4 ]; - return [ text1A, text1B, text2A, text2B, midCommon ]; - }; - - /** - * Do a quick line-level diff on both strings, then rediff the parts for - * greater accuracy. - * This speedup can produce non-minimal diffs. - * @param {string} text1 Old string to be diffed. - * @param {string} text2 New string to be diffed. - * @param {number} deadline Time when the diff should be complete by. - * @return {!Array.} Array of diff tuples. - * @private - */ - DiffMatchPatch.prototype.diffLineMode = function( text1, text2, deadline ) { - var a, diffs, linearray, pointer, countInsert, - countDelete, textInsert, textDelete, j; - - // Scan the text on a line-by-line basis first. - a = this.diffLinesToChars( text1, text2 ); - text1 = a.chars1; - text2 = a.chars2; - linearray = a.lineArray; - - diffs = this.DiffMain( text1, text2, false, deadline ); - - // Convert the diff back to original text. - this.diffCharsToLines( diffs, linearray ); - - // Eliminate freak matches (e.g. blank lines) - this.diffCleanupSemantic( diffs ); - - // Rediff any replacement blocks, this time character-by-character. - // Add a dummy entry at the end. - diffs.push( [ DIFF_EQUAL, "" ] ); - pointer = 0; - countDelete = 0; - countInsert = 0; - textDelete = ""; - textInsert = ""; - while ( pointer < diffs.length ) { - switch ( diffs[ pointer ][ 0 ] ) { - case DIFF_INSERT: - countInsert++; - textInsert += diffs[ pointer ][ 1 ]; - break; - case DIFF_DELETE: - countDelete++; - textDelete += diffs[ pointer ][ 1 ]; - break; - case DIFF_EQUAL: - - // Upon reaching an equality, check for prior redundancies. - if ( countDelete >= 1 && countInsert >= 1 ) { - - // Delete the offending records and add the merged ones. - diffs.splice( pointer - countDelete - countInsert, - countDelete + countInsert ); - pointer = pointer - countDelete - countInsert; - a = this.DiffMain( textDelete, textInsert, false, deadline ); - for ( j = a.length - 1; j >= 0; j-- ) { - diffs.splice( pointer, 0, a[ j ] ); - } - pointer = pointer + a.length; - } - countInsert = 0; - countDelete = 0; - textDelete = ""; - textInsert = ""; - break; - } - pointer++; - } - diffs.pop(); // Remove the dummy entry at the end. - - return diffs; - }; - - /** - * Find the 'middle snake' of a diff, split the problem in two - * and return the recursively constructed diff. - * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations. - * @param {string} text1 Old string to be diffed. - * @param {string} text2 New string to be diffed. - * @param {number} deadline Time at which to bail if not yet complete. - * @return {!Array.} Array of diff tuples. - * @private - */ - DiffMatchPatch.prototype.diffBisect = function( text1, text2, deadline ) { - var text1Length, text2Length, maxD, vOffset, vLength, - v1, v2, x, delta, front, k1start, k1end, k2start, - k2end, k2Offset, k1Offset, x1, x2, y1, y2, d, k1, k2; - - // Cache the text lengths to prevent multiple calls. - text1Length = text1.length; - text2Length = text2.length; - maxD = Math.ceil( ( text1Length + text2Length ) / 2 ); - vOffset = maxD; - vLength = 2 * maxD; - v1 = new Array( vLength ); - v2 = new Array( vLength ); - - // Setting all elements to -1 is faster in Chrome & Firefox than mixing - // integers and undefined. - for ( x = 0; x < vLength; x++ ) { - v1[ x ] = -1; - v2[ x ] = -1; - } - v1[ vOffset + 1 ] = 0; - v2[ vOffset + 1 ] = 0; - delta = text1Length - text2Length; - - // If the total number of characters is odd, then the front path will collide - // with the reverse path. - front = ( delta % 2 !== 0 ); - - // Offsets for start and end of k loop. - // Prevents mapping of space beyond the grid. - k1start = 0; - k1end = 0; - k2start = 0; - k2end = 0; - for ( d = 0; d < maxD; d++ ) { - - // Bail out if deadline is reached. - if ( ( new Date() ).getTime() > deadline ) { - break; - } - - // Walk the front path one step. - for ( k1 = -d + k1start; k1 <= d - k1end; k1 += 2 ) { - k1Offset = vOffset + k1; - if ( k1 === -d || ( k1 !== d && v1[ k1Offset - 1 ] < v1[ k1Offset + 1 ] ) ) { - x1 = v1[ k1Offset + 1 ]; - } else { - x1 = v1[ k1Offset - 1 ] + 1; - } - y1 = x1 - k1; - while ( x1 < text1Length && y1 < text2Length && - text1.charAt( x1 ) === text2.charAt( y1 ) ) { - x1++; - y1++; - } - v1[ k1Offset ] = x1; - if ( x1 > text1Length ) { - - // Ran off the right of the graph. - k1end += 2; - } else if ( y1 > text2Length ) { - - // Ran off the bottom of the graph. - k1start += 2; - } else if ( front ) { - k2Offset = vOffset + delta - k1; - if ( k2Offset >= 0 && k2Offset < vLength && v2[ k2Offset ] !== -1 ) { - - // Mirror x2 onto top-left coordinate system. - x2 = text1Length - v2[ k2Offset ]; - if ( x1 >= x2 ) { - - // Overlap detected. - return this.diffBisectSplit( text1, text2, x1, y1, deadline ); - } - } - } - } - - // Walk the reverse path one step. - for ( k2 = -d + k2start; k2 <= d - k2end; k2 += 2 ) { - k2Offset = vOffset + k2; - if ( k2 === -d || ( k2 !== d && v2[ k2Offset - 1 ] < v2[ k2Offset + 1 ] ) ) { - x2 = v2[ k2Offset + 1 ]; - } else { - x2 = v2[ k2Offset - 1 ] + 1; - } - y2 = x2 - k2; - while ( x2 < text1Length && y2 < text2Length && - text1.charAt( text1Length - x2 - 1 ) === - text2.charAt( text2Length - y2 - 1 ) ) { - x2++; - y2++; - } - v2[ k2Offset ] = x2; - if ( x2 > text1Length ) { - - // Ran off the left of the graph. - k2end += 2; - } else if ( y2 > text2Length ) { - - // Ran off the top of the graph. - k2start += 2; - } else if ( !front ) { - k1Offset = vOffset + delta - k2; - if ( k1Offset >= 0 && k1Offset < vLength && v1[ k1Offset ] !== -1 ) { - x1 = v1[ k1Offset ]; - y1 = vOffset + x1 - k1Offset; - - // Mirror x2 onto top-left coordinate system. - x2 = text1Length - x2; - if ( x1 >= x2 ) { - - // Overlap detected. - return this.diffBisectSplit( text1, text2, x1, y1, deadline ); - } - } - } - } - } - - // Diff took too long and hit the deadline or - // number of diffs equals number of characters, no commonality at all. - return [ - [ DIFF_DELETE, text1 ], - [ DIFF_INSERT, text2 ] - ]; - }; - - /** - * Given the location of the 'middle snake', split the diff in two parts - * and recurse. - * @param {string} text1 Old string to be diffed. - * @param {string} text2 New string to be diffed. - * @param {number} x Index of split point in text1. - * @param {number} y Index of split point in text2. - * @param {number} deadline Time at which to bail if not yet complete. - * @return {!Array.} Array of diff tuples. - * @private - */ - DiffMatchPatch.prototype.diffBisectSplit = function( text1, text2, x, y, deadline ) { - var text1a, text1b, text2a, text2b, diffs, diffsb; - text1a = text1.substring( 0, x ); - text2a = text2.substring( 0, y ); - text1b = text1.substring( x ); - text2b = text2.substring( y ); - - // Compute both diffs serially. - diffs = this.DiffMain( text1a, text2a, false, deadline ); - diffsb = this.DiffMain( text1b, text2b, false, deadline ); - - return diffs.concat( diffsb ); - }; - - /** - * Reduce the number of edits by eliminating semantically trivial equalities. - * @param {!Array.} diffs Array of diff tuples. - */ - DiffMatchPatch.prototype.diffCleanupSemantic = function( diffs ) { - var changes, equalities, equalitiesLength, lastequality, - pointer, lengthInsertions2, lengthDeletions2, lengthInsertions1, - lengthDeletions1, deletion, insertion, overlapLength1, overlapLength2; - changes = false; - equalities = []; // Stack of indices where equalities are found. - equalitiesLength = 0; // Keeping our own length var is faster in JS. - /** @type {?string} */ - lastequality = null; - - // Always equal to diffs[equalities[equalitiesLength - 1]][1] - pointer = 0; // Index of current position. - - // Number of characters that changed prior to the equality. - lengthInsertions1 = 0; - lengthDeletions1 = 0; - - // Number of characters that changed after the equality. - lengthInsertions2 = 0; - lengthDeletions2 = 0; - while ( pointer < diffs.length ) { - if ( diffs[ pointer ][ 0 ] === DIFF_EQUAL ) { // Equality found. - equalities[ equalitiesLength++ ] = pointer; - lengthInsertions1 = lengthInsertions2; - lengthDeletions1 = lengthDeletions2; - lengthInsertions2 = 0; - lengthDeletions2 = 0; - lastequality = diffs[ pointer ][ 1 ]; - } else { // An insertion or deletion. - if ( diffs[ pointer ][ 0 ] === DIFF_INSERT ) { - lengthInsertions2 += diffs[ pointer ][ 1 ].length; - } else { - lengthDeletions2 += diffs[ pointer ][ 1 ].length; - } - - // Eliminate an equality that is smaller or equal to the edits on both - // sides of it. - if ( lastequality && ( lastequality.length <= - Math.max( lengthInsertions1, lengthDeletions1 ) ) && - ( lastequality.length <= Math.max( lengthInsertions2, - lengthDeletions2 ) ) ) { - - // Duplicate record. - diffs.splice( - equalities[ equalitiesLength - 1 ], - 0, - [ DIFF_DELETE, lastequality ] - ); - - // Change second copy to insert. - diffs[ equalities[ equalitiesLength - 1 ] + 1 ][ 0 ] = DIFF_INSERT; - - // Throw away the equality we just deleted. - equalitiesLength--; - - // Throw away the previous equality (it needs to be reevaluated). - equalitiesLength--; - pointer = equalitiesLength > 0 ? equalities[ equalitiesLength - 1 ] : -1; - - // Reset the counters. - lengthInsertions1 = 0; - lengthDeletions1 = 0; - lengthInsertions2 = 0; - lengthDeletions2 = 0; - lastequality = null; - changes = true; - } - } - pointer++; - } - - // Normalize the diff. - if ( changes ) { - this.diffCleanupMerge( diffs ); - } - - // Find any overlaps between deletions and insertions. - // e.g: abcxxxxxxdef - // -> abcxxxdef - // e.g: xxxabcdefxxx - // -> defxxxabc - // Only extract an overlap if it is as big as the edit ahead or behind it. - pointer = 1; - while ( pointer < diffs.length ) { - if ( diffs[ pointer - 1 ][ 0 ] === DIFF_DELETE && - diffs[ pointer ][ 0 ] === DIFF_INSERT ) { - deletion = diffs[ pointer - 1 ][ 1 ]; - insertion = diffs[ pointer ][ 1 ]; - overlapLength1 = this.diffCommonOverlap( deletion, insertion ); - overlapLength2 = this.diffCommonOverlap( insertion, deletion ); - if ( overlapLength1 >= overlapLength2 ) { - if ( overlapLength1 >= deletion.length / 2 || - overlapLength1 >= insertion.length / 2 ) { - - // Overlap found. Insert an equality and trim the surrounding edits. - diffs.splice( - pointer, - 0, - [ DIFF_EQUAL, insertion.substring( 0, overlapLength1 ) ] - ); - diffs[ pointer - 1 ][ 1 ] = - deletion.substring( 0, deletion.length - overlapLength1 ); - diffs[ pointer + 1 ][ 1 ] = insertion.substring( overlapLength1 ); - pointer++; - } - } else { - if ( overlapLength2 >= deletion.length / 2 || - overlapLength2 >= insertion.length / 2 ) { - - // Reverse overlap found. - // Insert an equality and swap and trim the surrounding edits. - diffs.splice( - pointer, - 0, - [ DIFF_EQUAL, deletion.substring( 0, overlapLength2 ) ] - ); - - diffs[ pointer - 1 ][ 0 ] = DIFF_INSERT; - diffs[ pointer - 1 ][ 1 ] = - insertion.substring( 0, insertion.length - overlapLength2 ); - diffs[ pointer + 1 ][ 0 ] = DIFF_DELETE; - diffs[ pointer + 1 ][ 1 ] = - deletion.substring( overlapLength2 ); - pointer++; - } - } - pointer++; - } - pointer++; - } - }; - - /** - * Determine if the suffix of one string is the prefix of another. - * @param {string} text1 First string. - * @param {string} text2 Second string. - * @return {number} The number of characters common to the end of the first - * string and the start of the second string. - * @private - */ - DiffMatchPatch.prototype.diffCommonOverlap = function( text1, text2 ) { - var text1Length, text2Length, textLength, - best, length, pattern, found; - - // Cache the text lengths to prevent multiple calls. - text1Length = text1.length; - text2Length = text2.length; - - // Eliminate the null case. - if ( text1Length === 0 || text2Length === 0 ) { - return 0; - } - - // Truncate the longer string. - if ( text1Length > text2Length ) { - text1 = text1.substring( text1Length - text2Length ); - } else if ( text1Length < text2Length ) { - text2 = text2.substring( 0, text1Length ); - } - textLength = Math.min( text1Length, text2Length ); - - // Quick check for the worst case. - if ( text1 === text2 ) { - return textLength; - } - - // Start by looking for a single character match - // and increase length until no match is found. - // Performance analysis: https://neil.fraser.name/news/2010/11/04/ - best = 0; - length = 1; - while ( true ) { - pattern = text1.substring( textLength - length ); - found = text2.indexOf( pattern ); - if ( found === -1 ) { - return best; - } - length += found; - if ( found === 0 || text1.substring( textLength - length ) === - text2.substring( 0, length ) ) { - best = length; - length++; - } - } - }; - - /** - * Split two texts into an array of strings. Reduce the texts to a string of - * hashes where each Unicode character represents one line. - * @param {string} text1 First string. - * @param {string} text2 Second string. - * @return {{chars1: string, chars2: string, lineArray: !Array.}} - * An object containing the encoded text1, the encoded text2 and - * the array of unique strings. - * The zeroth element of the array of unique strings is intentionally blank. - * @private - */ - DiffMatchPatch.prototype.diffLinesToChars = function( text1, text2 ) { - var lineArray, lineHash, chars1, chars2; - lineArray = []; // E.g. lineArray[4] === 'Hello\n' - lineHash = {}; // E.g. lineHash['Hello\n'] === 4 - - // '\x00' is a valid character, but various debuggers don't like it. - // So we'll insert a junk entry to avoid generating a null character. - lineArray[ 0 ] = ""; - - /** - * Split a text into an array of strings. Reduce the texts to a string of - * hashes where each Unicode character represents one line. - * Modifies linearray and linehash through being a closure. - * @param {string} text String to encode. - * @return {string} Encoded string. - * @private - */ - function diffLinesToCharsMunge( text ) { - var chars, lineStart, lineEnd, lineArrayLength, line; - chars = ""; - - // Walk the text, pulling out a substring for each line. - // text.split('\n') would would temporarily double our memory footprint. - // Modifying text would create many large strings to garbage collect. - lineStart = 0; - lineEnd = -1; - - // Keeping our own length variable is faster than looking it up. - lineArrayLength = lineArray.length; - while ( lineEnd < text.length - 1 ) { - lineEnd = text.indexOf( "\n", lineStart ); - if ( lineEnd === -1 ) { - lineEnd = text.length - 1; - } - line = text.substring( lineStart, lineEnd + 1 ); - lineStart = lineEnd + 1; - - if ( lineHash.hasOwnProperty ? lineHash.hasOwnProperty( line ) : - ( lineHash[ line ] !== undefined ) ) { - chars += String.fromCharCode( lineHash[ line ] ); - } else { - chars += String.fromCharCode( lineArrayLength ); - lineHash[ line ] = lineArrayLength; - lineArray[ lineArrayLength++ ] = line; - } - } - return chars; - } - - chars1 = diffLinesToCharsMunge( text1 ); - chars2 = diffLinesToCharsMunge( text2 ); - return { - chars1: chars1, - chars2: chars2, - lineArray: lineArray - }; - }; - - /** - * Rehydrate the text in a diff from a string of line hashes to real lines of - * text. - * @param {!Array.} diffs Array of diff tuples. - * @param {!Array.} lineArray Array of unique strings. - * @private - */ - DiffMatchPatch.prototype.diffCharsToLines = function( diffs, lineArray ) { - var x, chars, text, y; - for ( x = 0; x < diffs.length; x++ ) { - chars = diffs[ x ][ 1 ]; - text = []; - for ( y = 0; y < chars.length; y++ ) { - text[ y ] = lineArray[ chars.charCodeAt( y ) ]; - } - diffs[ x ][ 1 ] = text.join( "" ); - } - }; - - /** - * Reorder and merge like edit sections. Merge equalities. - * Any edit section can move as long as it doesn't cross an equality. - * @param {!Array.} diffs Array of diff tuples. - */ - DiffMatchPatch.prototype.diffCleanupMerge = function( diffs ) { - var pointer, countDelete, countInsert, textInsert, textDelete, - commonlength, changes, diffPointer, position; - diffs.push( [ DIFF_EQUAL, "" ] ); // Add a dummy entry at the end. - pointer = 0; - countDelete = 0; - countInsert = 0; - textDelete = ""; - textInsert = ""; - commonlength; - while ( pointer < diffs.length ) { - switch ( diffs[ pointer ][ 0 ] ) { - case DIFF_INSERT: - countInsert++; - textInsert += diffs[ pointer ][ 1 ]; - pointer++; - break; - case DIFF_DELETE: - countDelete++; - textDelete += diffs[ pointer ][ 1 ]; - pointer++; - break; - case DIFF_EQUAL: - - // Upon reaching an equality, check for prior redundancies. - if ( countDelete + countInsert > 1 ) { - if ( countDelete !== 0 && countInsert !== 0 ) { - - // Factor out any common prefixes. - commonlength = this.diffCommonPrefix( textInsert, textDelete ); - if ( commonlength !== 0 ) { - if ( ( pointer - countDelete - countInsert ) > 0 && - diffs[ pointer - countDelete - countInsert - 1 ][ 0 ] === - DIFF_EQUAL ) { - diffs[ pointer - countDelete - countInsert - 1 ][ 1 ] += - textInsert.substring( 0, commonlength ); - } else { - diffs.splice( 0, 0, [ DIFF_EQUAL, - textInsert.substring( 0, commonlength ) - ] ); - pointer++; - } - textInsert = textInsert.substring( commonlength ); - textDelete = textDelete.substring( commonlength ); - } - - // Factor out any common suffixies. - commonlength = this.diffCommonSuffix( textInsert, textDelete ); - if ( commonlength !== 0 ) { - diffs[ pointer ][ 1 ] = textInsert.substring( textInsert.length - - commonlength ) + diffs[ pointer ][ 1 ]; - textInsert = textInsert.substring( 0, textInsert.length - - commonlength ); - textDelete = textDelete.substring( 0, textDelete.length - - commonlength ); - } - } - - // Delete the offending records and add the merged ones. - if ( countDelete === 0 ) { - diffs.splice( pointer - countInsert, - countDelete + countInsert, [ DIFF_INSERT, textInsert ] ); - } else if ( countInsert === 0 ) { - diffs.splice( pointer - countDelete, - countDelete + countInsert, [ DIFF_DELETE, textDelete ] ); - } else { - diffs.splice( - pointer - countDelete - countInsert, - countDelete + countInsert, - [ DIFF_DELETE, textDelete ], [ DIFF_INSERT, textInsert ] - ); - } - pointer = pointer - countDelete - countInsert + - ( countDelete ? 1 : 0 ) + ( countInsert ? 1 : 0 ) + 1; - } else if ( pointer !== 0 && diffs[ pointer - 1 ][ 0 ] === DIFF_EQUAL ) { - - // Merge this equality with the previous one. - diffs[ pointer - 1 ][ 1 ] += diffs[ pointer ][ 1 ]; - diffs.splice( pointer, 1 ); - } else { - pointer++; - } - countInsert = 0; - countDelete = 0; - textDelete = ""; - textInsert = ""; - break; - } - } - if ( diffs[ diffs.length - 1 ][ 1 ] === "" ) { - diffs.pop(); // Remove the dummy entry at the end. - } - - // Second pass: look for single edits surrounded on both sides by equalities - // which can be shifted sideways to eliminate an equality. - // e.g: ABAC -> ABAC - changes = false; - pointer = 1; - - // Intentionally ignore the first and last element (don't need checking). - while ( pointer < diffs.length - 1 ) { - if ( diffs[ pointer - 1 ][ 0 ] === DIFF_EQUAL && - diffs[ pointer + 1 ][ 0 ] === DIFF_EQUAL ) { - - diffPointer = diffs[ pointer ][ 1 ]; - position = diffPointer.substring( - diffPointer.length - diffs[ pointer - 1 ][ 1 ].length - ); - - // This is a single edit surrounded by equalities. - if ( position === diffs[ pointer - 1 ][ 1 ] ) { - - // Shift the edit over the previous equality. - diffs[ pointer ][ 1 ] = diffs[ pointer - 1 ][ 1 ] + - diffs[ pointer ][ 1 ].substring( 0, diffs[ pointer ][ 1 ].length - - diffs[ pointer - 1 ][ 1 ].length ); - diffs[ pointer + 1 ][ 1 ] = - diffs[ pointer - 1 ][ 1 ] + diffs[ pointer + 1 ][ 1 ]; - diffs.splice( pointer - 1, 1 ); - changes = true; - } else if ( diffPointer.substring( 0, diffs[ pointer + 1 ][ 1 ].length ) === - diffs[ pointer + 1 ][ 1 ] ) { - - // Shift the edit over the next equality. - diffs[ pointer - 1 ][ 1 ] += diffs[ pointer + 1 ][ 1 ]; - diffs[ pointer ][ 1 ] = - diffs[ pointer ][ 1 ].substring( diffs[ pointer + 1 ][ 1 ].length ) + - diffs[ pointer + 1 ][ 1 ]; - diffs.splice( pointer + 1, 1 ); - changes = true; - } - } - pointer++; - } - - // If shifts were made, the diff needs reordering and another shift sweep. - if ( changes ) { - this.diffCleanupMerge( diffs ); - } - }; - - return function( o, n ) { - var diff, output, text; - diff = new DiffMatchPatch(); - output = diff.DiffMain( o, n ); - diff.diffCleanupEfficiency( output ); - text = diff.diffPrettyHtml( output ); - - return text; - }; -}() ); - -}() ); diff --git a/src/tests/tests.html b/src/tests/tests.html index 70e66895f..1be8a5cf0 100644 --- a/src/tests/tests.html +++ b/src/tests/tests.html @@ -3,7 +3,7 @@ QUnit Tests for PuzzleScript - +
            @@ -25,7 +25,7 @@ - + From 0b4d346dacddfeeed5e07c08725f4082153d853a Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Thu, 10 Mar 2022 03:22:24 +0100 Subject: [PATCH 090/122] fixes #890 --- src/js/debug.js | 11 ++++++++++- src/js/editor.js | 2 +- src/js/engine.js | 4 ++-- src/js/inputoutput.js | 1 + src/js/makegif.js | 4 +++- src/js/sfxr.js | 5 ++++- src/js/soundbar.js | 2 +- src/tests/resources/testdata.js | 13 +++++++++++++ src/tests/resources/testingFrameWork.js | 15 +++++++++++++-- src/tests/resources/tests.js | 10 ++++++++++ 10 files changed, 58 insertions(+), 9 deletions(-) diff --git a/src/js/debug.js b/src/js/debug.js index 689532f18..f594fac89 100644 --- a/src/js/debug.js +++ b/src/js/debug.js @@ -2,6 +2,7 @@ var canSetHTMLColors=false; var canDump=true; var recordingStartsFromLevel=0; var inputHistory=[]; +var soundHistory=[]; var compiledText; var canOpenEditor=true; var IDE=true; @@ -65,9 +66,10 @@ function dumpTestCase() { //normal session recording data var levelDat = compiledText; var input = inputHistory.concat([]); + var sounds = soundHistory.concat([]); var outputDat = convertLevelToString(); - var resultarray = [levelDat,input,outputDat,recordingStartsFromLevel,loadedLevelSeed]; + var resultarray = [levelDat,input,outputDat,recordingStartsFromLevel,loadedLevelSeed,sounds]; var resultstring = JSON.stringify(resultarray); resultstring = `
            [
            @@ -86,6 +88,7 @@ function dumpTestCase() { function clearInputHistory() { if (canDump===true) { inputHistory=[]; + soundHistory=[]; recordingStartsFromLevel = curlevel; } } @@ -94,4 +97,10 @@ function pushInput(inp) { if (canDump===true) { inputHistory.push(inp); } +} + +function pushSoundToHistory(seed) { + if (canDump===true) { + soundHistory.push(seed); + } } \ No newline at end of file diff --git a/src/js/editor.js b/src/js/editor.js index 0f996d453..11d2dd7aa 100644 --- a/src/js/editor.js +++ b/src/js/editor.js @@ -96,7 +96,7 @@ var editor = window.CodeMirror.fromTextArea(code, { editor.on('mousedown', function(cm, event) { if (event.target.className == 'cm-SOUND') { var seed = parseInt(event.target.innerHTML); - playSound(seed); + playSound(seed,true); } else if (event.target.className == 'cm-LEVEL') { if (event.ctrlKey||event.metaKey) { document.activeElement.blur(); // unfocus code panel diff --git a/src/js/engine.js b/src/js/engine.js index a5c900fe0..e9d83a768 100644 --- a/src/js/engine.js +++ b/src/js/engine.js @@ -526,7 +526,7 @@ canvasResize(); function tryPlaySimpleSound(soundname) { if (state.sfx_Events[soundname]!==undefined) { var seed = state.sfx_Events[soundname]; - playSound(seed); + playSound(seed,true); } } function tryPlayTitleSound() { @@ -2725,7 +2725,7 @@ function processInput(dir,dontDoWin,dontModify) { return false; } - for (var i=0;i' + seed.toString() + '',true); + consolePrint(generatorNames[instrument] + ' : ' + '' + seed.toString() + '',true); var params = generateFromSeed(seed); params.sound_vol = SOUND_VOL; params.sample_rate = SAMPLE_RATE; diff --git a/src/tests/resources/testdata.js b/src/tests/resources/testdata.js index c78a5c276..2e5811582 100644 --- a/src/tests/resources/testdata.js +++ b/src/tests/resources/testdata.js @@ -1564,5 +1564,18 @@ var testdata = [ "startloop stoploop vortex check", ["title startloop stoploop vortex check\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\nstartloop\n[ > Player | Crate ] -> [ > Player | > Crate ] \n[ > Player | > Crate ] -> [ > Player | Crate ] \nendloop\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[0,1,2,3,2,2,3,1,1,2,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,background player:4,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1646748363863.9624"] ], + [ + "Audio Test 1", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\nCrate cantmove 34411705\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\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[2,1,0,3,3,3,2,1,0,1,2,2],"background wall:0,0,0,0,0,0,\n0,0,background:1,background crate:2,background target:3,1,\n1,0,0,3,1,1,\nbackground player:4,2,0,0,0,0,\n1,1,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n","0","1646875706306.7224",["36772507","36772507","36772507","34411705"]] + ], + [ + "Audio Test 2", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nstartgame 1\nendgame 2\nstartlevel 3\nendlevel 4\ncrate move 5\ncrate cantmove 6\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\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[0,1,2,2,2],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,background target:2,background player:3,\nbackground crate:4,0,0,2,1,1,\n1,1,0,0,0,0,\n1,4,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n","0","1646876897098.8142",["5","5","6"]] + ], + [ + "Audio Test 3", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\ntemp \nblack\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 1\nCrate cantmove 2\ncrate create 3\ncrate destroy 4\nplayer move 5\nplayer cantmove 6\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ntemp\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n[action player | no temp no crate ] -> [ action player | temp crate ]\n[action player | no temp crate ] -> [ action player | temp ]\n[temp]->[]\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[2,1,0,1,4,0,3,2,2,4,3,0,1,1,1],"background wall:0,0,0,background crate:1,0,0,\n0,0,background:2,2,background crate target:3,2,\n2,0,0,background target:4,2,background player:5,\n2,2,0,0,0,0,\n2,2,0,0,2,2,\n0,2,2,0,2,2,\n2,0,0,0,0,2,\n",0,"1646877211807.3489",["5","5","1","5","6","3","4","5","5","1","5","1","5","3","4","5","5","1","5","2","6","2","6"]] + ], + ]; diff --git a/src/tests/resources/testingFrameWork.js b/src/tests/resources/testingFrameWork.js index ad240f7d3..f54c7ab95 100644 --- a/src/tests/resources/testingFrameWork.js +++ b/src/tests/resources/testingFrameWork.js @@ -14,6 +14,8 @@ function runTest(dataarray) { var randomseed = dataarray[4]!==undefined ? dataarray[4] : null; + var audio_output = dataarray[5]!==undefined ? dataarray[5] : null; + if (targetlevel===undefined) { targetlevel=0; } @@ -44,6 +46,15 @@ function runTest(dataarray) { unitTesting=false; var levelString = convertLevelToString(); var success = levelString == dataarray[2]; + if (audio_output!==null){ + //check if soundHistory array is same as audio_output + var audio_recorded = soundHistory.join(";"); + var audio_expected = audio_output.join(";"); + if (audio_recorded!=audio_expected){ + QUnit.assert.equal(audio_recorded,audio_expected,"Audio output is not as expected"); + success=false; + } + } if (success) { return true; } else { @@ -82,9 +93,9 @@ function runCompilationTest(dataarray) { } if (i_recorded0) { @@ -23,6 +26,13 @@ for (var i=0;i Date: Thu, 10 Mar 2022 03:34:48 +0100 Subject: [PATCH 091/122] fixes #892 --- src/tests/resources/testingFrameWork.js | 8 +++++++- src/tests/tests.html | 5 +++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/tests/resources/testingFrameWork.js b/src/tests/resources/testingFrameWork.js index f54c7ab95..efdae9cf8 100644 --- a/src/tests/resources/testingFrameWork.js +++ b/src/tests/resources/testingFrameWork.js @@ -46,13 +46,19 @@ function runTest(dataarray) { unitTesting=false; var levelString = convertLevelToString(); var success = levelString == dataarray[2]; + var success=true; + if (levelString !== dataarray[2]) { + success=false; + QUnit.pushFailure("Resulting level state is not the expected one."); + } + if (audio_output!==null){ //check if soundHistory array is same as audio_output var audio_recorded = soundHistory.join(";"); var audio_expected = audio_output.join(";"); if (audio_recorded!=audio_expected){ - QUnit.assert.equal(audio_recorded,audio_expected,"Audio output is not as expected"); success=false; + QUnit.assert.equal(audio_recorded,audio_expected,"Audio output is not as expected"); } } if (success) { diff --git a/src/tests/tests.html b/src/tests/tests.html index 1be8a5cf0..78a7dfbb7 100644 --- a/src/tests/tests.html +++ b/src/tests/tests.html @@ -4,6 +4,11 @@ QUnit Tests for PuzzleScript +
            From 5e85887b0cca25d37b396c9f705961699bce3eb6 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Thu, 10 Mar 2022 03:44:47 +0100 Subject: [PATCH 092/122] fixes #871 --- src/js/engine.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/js/engine.js b/src/js/engine.js index e9d83a768..fae618214 100644 --- a/src/js/engine.js +++ b/src/js/engine.js @@ -777,6 +777,8 @@ function RebuildLevelArrays() { level.mapCellContents = new BitVec(STRIDE_OBJ); level.mapCellContents_Movements = new BitVec(STRIDE_MOV); + //I have these to avoid dynamic allocation - I generate 3 because why not, + //but according to my tests I never seem to call this while a previous copy is still in scope _movementVecs = [new BitVec(STRIDE_MOV),new BitVec(STRIDE_MOV),new BitVec(STRIDE_MOV)]; _rigidVecs = [new BitVec(STRIDE_MOV),new BitVec(STRIDE_MOV),new BitVec(STRIDE_MOV)]; From 589a1f79ef6dd57f55095ed399646c49ce04feed Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Thu, 10 Mar 2022 03:59:30 +0100 Subject: [PATCH 093/122] fixes #893 --- src/js/engine.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/js/engine.js b/src/js/engine.js index fae618214..226c2d220 100644 --- a/src/js/engine.js +++ b/src/js/engine.js @@ -1174,7 +1174,6 @@ function repositionEntitiesOnLayer(positionIndex,layer,dirMask) level.colCellContents[colIndex].ior(movingEntities); level.rowCellContents[rowIndex].ior(movingEntities); - level.mapCellContents.ior(movingEntities); //corresponding movement stuff in setmovements return true; } From aa7e91b86ddd606263834d022c43fe47c728c953 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Thu, 10 Mar 2022 06:54:25 +0100 Subject: [PATCH 094/122] show the level diff --- src/tests/resources/testingFrameWork.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/resources/testingFrameWork.js b/src/tests/resources/testingFrameWork.js index efdae9cf8..1c4c28cb2 100644 --- a/src/tests/resources/testingFrameWork.js +++ b/src/tests/resources/testingFrameWork.js @@ -49,7 +49,7 @@ function runTest(dataarray) { var success=true; if (levelString !== dataarray[2]) { success=false; - QUnit.pushFailure("Resulting level state is not the expected one."); + QUnit.assert.equal(levelString,dataarray[2],"Resulting level state is not the expected one."); } if (audio_output!==null){ From 42af7b4093be888840abf81fb0066051304e4c80 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Thu, 10 Mar 2022 10:13:07 +0100 Subject: [PATCH 095/122] fixes #128 --- src/js/compiler.js | 35 +++++++++++++++++--- src/js/engine.js | 19 +++++++---- src/tests/resources/errormessage_testdata.js | 4 +-- src/tests/resources/testdata.js | 29 +++++++++++++++- 4 files changed, 74 insertions(+), 13 deletions(-) diff --git a/src/js/compiler.js b/src/js/compiler.js index c5df29dc4..6e4115efc 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -2159,6 +2159,22 @@ function generateMasks(state) { objectMask["\nall\n"] = all_obj; state.objectMasks = objectMask; + + + state.aggregateMasks = {}; + + //set aggregate masks similarly + for (var aggregateName of Object.keys(state.aggregatesDict)) { + var objectnames = state.aggregatesDict[aggregateName]; + + var aggregateMask = new BitVec(STRIDE_OBJ); + for (var i = 0; i < objectnames.length; i++) { + var n = objectnames[i]; + var o = state.objects[n]; + aggregateMask.ior(objectMask[n]); + } + state.aggregateMasks[aggregateName] = aggregateMask; + } } function checkObjectsAreLayered(state) { @@ -2276,17 +2292,28 @@ function processWinConditions(state) { var mask1 = 0; var mask2 = 0; + var aggr1 = false; + var aggr2 = false; + if (n1 in state.objectMasks) { + aggr1 = false; mask1 = state.objectMasks[n1]; + } else if (n1 in state.aggregateMasks){ + aggr1 = true; + mask1 = state.aggregateMasks[n1]; } else { - logError('Unwelcome term "' + n1 + '" found in win condition. Win conditions objects have to be objects or properties (defined using "or", in terms of other properties)', lineNumber); + logError('Unwelcome term "' + n1 + '" found in win condition. I don\'t know what I\'m supposed to do with this. ', lineNumber); } if (n2 in state.objectMasks) { + aggr2=false; mask2 = state.objectMasks[n2]; - } else { - logError('Unwelcome term "' + n2 + '" found in win condition. Win conditions objects have to be objects or properties (defined using "or", in terms of other properties)', lineNumber); + } else if (n2 in state.aggregateMasks){ + aggr2 = true; + mask2 = state.aggregateMasks[n2]; + } else { + logError('Unwelcome term "' + n1 + '" found in win condition. I don\'t know what I\'m supposed to do with this. ', lineNumber); } - var newcondition = [num, mask1, mask2, lineNumber]; + var newcondition = [num, mask1, mask2, lineNumber, aggr1, aggr2]; newconditions.push(newcondition); } state.winconditions = newconditions; diff --git a/src/js/engine.js b/src/js/engine.js index 226c2d220..1a987c193 100644 --- a/src/js/engine.js +++ b/src/js/engine.js @@ -2848,14 +2848,21 @@ function checkWin(dontDoWin) { var wincondition = state.winconditions[wcIndex]; var filter1 = wincondition[1]; var filter2 = wincondition[2]; + var aggr1 = wincondition[4]; + var aggr2 = wincondition[5]; + var rulePassed=true; + + const f1 = aggr1 ? c=>filter1.bitsSetInArray(c) : c=>!filter1.bitsClearInArray(c); + const f2 = aggr2 ? c=>filter2.bitsSetInArray(c) : c=>!filter2.bitsClearInArray(c); + switch(wincondition[0]) { case -1://NO { for (var i=0;i Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nfas\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 84 : Expecting the start of a win condition (\"ALL\",\"SOME\",\"NO\") but got \"FAS'.","line 84 : Unwelcome term \"84\" found in win condition. Win conditions objects have to be objects or properties (defined using \"or\", in terms of other properties)"],2] + ["title Expecting the start of a win condition\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nfas\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 84 : Expecting the start of a win condition (\"ALL\",\"SOME\",\"NO\") but got \"FAS'.","line 84 : Unwelcome term \"84\" found in win condition. I don't know what I'm supposed to do with this."],2] ], [ "Expecting the word ON but got CRATE", diff --git a/src/tests/resources/testdata.js b/src/tests/resources/testdata.js index 2e5811582..3a2350d14 100644 --- a/src/tests/resources/testdata.js +++ b/src/tests/resources/testdata.js @@ -1576,6 +1576,33 @@ var testdata = [ "Audio Test 3", ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\ntemp \nblack\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 1\nCrate cantmove 2\ncrate create 3\ncrate destroy 4\nplayer move 5\nplayer cantmove 6\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ntemp\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n[action player | no temp no crate ] -> [ action player | temp crate ]\n[action player | no temp crate ] -> [ action player | temp ]\n[temp]->[]\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[2,1,0,1,4,0,3,2,2,4,3,0,1,1,1],"background wall:0,0,0,background crate:1,0,0,\n0,0,background:2,2,background crate target:3,2,\n2,0,0,background target:4,2,background player:5,\n2,2,0,0,0,0,\n2,2,0,0,2,2,\n0,2,2,0,2,2,\n2,0,0,0,0,2,\n",0,"1646877211807.3489",["5","5","1","5","6","3","4","5","5","1","5","1","5","3","4","5","5","1","5","2","6","2","6"]] ], - + [ + "aggregates in win conditions 1", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\ncratedot\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ndotted = crate and cratedot\nk = cratedot\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ncratedot\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n[ > Player | cratedot ] -> [ > Player | > cratedot ] \n\n==============\nWINCONDITIONS\n==============\n\nall target on dotted\n\n=======\nLEVELS\n=======\n\npk@\n...\n\n.....\nkp..k\no*.*o\n.....\n\n....\no...\n",[0,1,2,3,3,2,3,0,0,3,2,1,2,1,1],"background:0,background target:1,0,0,\n0,0,0,0,\n",1,"1646902744672.2258",["36772507","36772507"]] + ], + [ + "aggregates in win conditions 2", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\ncratedot\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ndotted = crate and cratedot\nk = cratedot\n&=dotted\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ncratedot\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n[ > Player | cratedot ] -> [ > Player | > cratedot ] \n\n==============\nWINCONDITIONS\n==============\n\nall dotted on target\n\n=======\nLEVELS\n=======\n\npk@\n...\n\n.....\nkp..&\no*..o\n.....\n\n....\no...\n",[3,3,3,0,3,2],"background:0,background target:1,0,0,\n0,0,0,0,\n",0,"1646902824835.6414",["36772507"]] + ], + [ + "aggregates in win conditions 3", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\ncratedot\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ndotted = crate and cratedot\nk = cratedot\n&=dotted\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ncratedot\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n[ > Player | cratedot ] -> [ > Player | > cratedot ] \n\n==============\nWINCONDITIONS\n==============\n\nsome dotted\n\n=======\nLEVELS\n=======\n\npk@\n...\n\n.....\nkp..p\no*.oo\n.....\n\n....\no...\n",[0,1,2,3,3,2,2,1,1,0,2,3,0,3,0,1],"background:0,background target:1,0,0,\n0,0,0,0,\n",1,"1646903196185.7786",["36772507","36772507"]] + ], + [ + "aggregates in win conditions 4", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\ncratedot\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ndotted = crate and cratedot\nk = cratedot\n&=dotted\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ncratedot\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nno dotted\n\n=======\nLEVELS\n=======\n\npk@\n...\n\n.....\n.p...\n.&&&.\n.....\n\n....\no...\n",[3,2,1,2,3,3,0,1,0,0,3,3,3,2,2,1,1,1],"background:0,background target:1,0,0,\n0,0,0,0,\n",0,"1646903268108.808",["36772507","36772507","36772507","36772507","36772507","36772507","36772507"]] + ], + [ + "aggregates in win conditions 5", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\ncratedot\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ndotted = crate and cratedot\nk = cratedot\n&=dotted\nf = dotted and target\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ncratedot\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nno dotted on target\n\n=======\nLEVELS\n=======\n\npk@\n...\n\n.....\n.p...\n.&&&.\n.....\n\np.......\no.f.f.&.\n........\n\n\npk@\n...\n...\n",[3,3,3,2,1,1,0,3,3,"undo","undo","undo","undo","undo",0,3,3,2,1,3,0,3,3,2,1,1,0,1,1,1,3,2,"undo",1,2,0,3,2,0,3,2],"background player:0,background:1,1,\nbackground cratedot:2,1,1,\nbackground crate target:3,1,1,\n",2,"1646903377668.326",["36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507"]] + ], + [ + "aggregates in win conditions 6", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\ncratedot\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ndotted = crate and cratedot\nk = cratedot\n&=dotted\nf = dotted and target\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ncratedot\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n[ > Player | cratedot ] -> [ > Player | > cratedot ] \n\n==============\nWINCONDITIONS\n==============\n\nall dotted on target\n\n=======\nLEVELS\n=======\n\n..p..\n...k.\n.ooo.\n.&&*.\n.....\n\n..p..\n...k.\n.ooo.\n#&&*.\n.....\n\n..p..\n...k.\n.ooo.\n.&&*.\n.....\n\npk@\n...\n...\n",[1,1,2,2,2,2,3,3,3,0,3,0,0,0,1,2,3,2,2,2,1,1,0,2,1,0,3,2,3,2,2,2,1,0,2,1,1,3,0,1,3,2,2,3,2,2,1,0,2,1,1,0,3,2,3,3,0,0,1,3,2,2,1,0],"background player:0,background:1,1,\nbackground cratedot:2,1,1,\nbackground crate target:3,1,1,\n",0,"1646903481599.992",["36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507"]] + ], + [ + "aggregates in win conditions 7", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\ncratedot\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ndotted = crate and cratedot\nk = cratedot\n&=dotted\nf = dotted and target\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ncratedot\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n[ > Player | cratedot ] -> [ > Player | > cratedot ] \n\n==============\nWINCONDITIONS\n==============\n\nall target on dotted\n\n=======\nLEVELS\n=======\n\n..p..\n...k.\n.ooo.\n.&&*.\n.....\n\n..p..\n...k.\n.ooo.\n#&&*.\n.....\n\n..p..\n...k.\n.ooo.\n.&&*.\n.....\n\npk@\n...\n...\n",[3,2,3,2,2,2,1,0,2,1,1,0,2,3,3,3,0,0,1,2,2,1,1,0,3,2,3,0,3,3,2,2,2,2,1,0,2,2,1,1,0,2,3,3,1,0,3,3,0,0,1,2,0,0,1,1,2,3,0,3,2,3,2,2,2,1,0],"background:0,0,0,0,0,\n0,0,background target:1,background crate cratedot:2,0,\nbackground player:3,0,1,2,0,\n0,background cratedot:4,1,background crate:5,0,\n0,0,0,0,0,\n",0,"1646903516649.6477",["36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507"]] + ], ]; From d82482bf96168e037a12236bc295b3a15311ed95 Mon Sep 17 00:00:00 2001 From: increpare Date: Thu, 10 Mar 2022 11:18:36 +0100 Subject: [PATCH 096/122] Create LICENSE --- LICENSE | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..465ebdc28 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2013 Stephen Lavelle + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. From 6a426995ba0f321826bd01648bb24ad031bb0419 Mon Sep 17 00:00:00 2001 From: increpare Date: Thu, 10 Mar 2022 11:19:17 +0100 Subject: [PATCH 097/122] Update README.md --- README.md | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/README.md b/README.md index f22a0b5a7..785ad4b79 100644 --- a/README.md +++ b/README.md @@ -8,27 +8,3 @@ Try it out at https://www.puzzlescript.net. ----- If you're interested in recompiling/modifing/hacking the engine, there is [development setup info here](DEVELOPMENT.md). If you're just interested in learning how to use the engine/make games in it, [the documentation is here](https://www.puzzlescript.net/Documentation/documentation.html). - ------ - -The MIT License (MIT) - -Copyright (c) 2013 increpare - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. From 30f592cc0a95d2926ace5a37b95ef9853ea9bc69 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Thu, 10 Mar 2022 18:24:49 +0100 Subject: [PATCH 098/122] . --- src/js/compiler.js | 8 ++-- src/js/engine.js | 95 +++++++++++++++++++++++++++++++++++++--------- 2 files changed, 82 insertions(+), 21 deletions(-) diff --git a/src/js/compiler.js b/src/js/compiler.js index 6e4115efc..8cfb31178 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -1891,7 +1891,7 @@ function collapseRules(groups) { var newrule = [0, [], oldrule.rhs.length > 0, oldrule.lineNumber /*ellipses,group number,rigid,commands,randomrule,[cellrowmasks]*/ ]; var ellipses = []; for (var j = 0; j < oldrule.lhs.length; j++) { - ellipses.push(false); + ellipses.push(0); } newrule[0] = dirMasks[oldrule.direction]; @@ -1899,10 +1899,10 @@ function collapseRules(groups) { var cellrow_l = oldrule.lhs[j]; for (var k = 0; k < cellrow_l.length; k++) { if (cellrow_l[k] === ellipsisPattern) { - if (ellipses[j]) { - logError("You can't use two ellipses in a single cell match pattern. If you really want to, please implement it yourself and send me a patch :) ", oldrule.lineNumber); + ellipses[j] ++; + if (ellipses[j]>2) { + logError("You can't use more than two ellipses in a single cell match pattern.", oldrule.lineNumber); } - ellipses[j] = true; } } newrule[1][j] = cellrow_l; diff --git a/src/js/engine.js b/src/js/engine.js index 1a987c193..e28e82b41 100644 --- a/src/js/engine.js +++ b/src/js/engine.js @@ -1417,7 +1417,7 @@ function Rule(rule) { this.patterns = rule[1]; /* lists of CellPatterns to match */ this.hasReplacements = rule[2]; this.lineNumber = rule[3]; /* rule source for debugging */ - this.isEllipsis = rule[4]; /* true if pattern has ellipsis */ + this.ellipsisCount = rule[4]; /* number of ellipses present */ this.groupNumber = rule[5]; /* execution group number of rule */ this.isRigid = rule[6]; this.commands = rule[7]; /* cancel, restart, sfx, etc */ @@ -1433,15 +1433,15 @@ function Rule(rule) { this.cellRowMatches = []; for (var i=0;i0 ? tuple[cellRowIndex][0] : tuple[cellRowIndex]; for (var cellIndex=0;cellIndex Date: Fri, 11 Mar 2022 10:10:40 +0100 Subject: [PATCH 099/122] tidying up examples (for #844) --- src/demo/constellationz.txt | 22 ++++++++--------- src/demo/midas.txt | 46 ++++++++++++++++++------------------ src/demo/octat.txt | 9 ++++--- src/demo/whaleworld.txt | 8 +++---- src/demo/zenpuzzlegarden.txt | 2 +- 5 files changed, 43 insertions(+), 44 deletions(-) diff --git a/src/demo/constellationz.txt b/src/demo/constellationz.txt index ea14419ea..89fb5796b 100644 --- a/src/demo/constellationz.txt +++ b/src/demo/constellationz.txt @@ -22,7 +22,7 @@ red Teleport white -target +Target blue ..... .000. @@ -49,13 +49,13 @@ LEGEND . = Background P = Player O = Teleport -t = target +t = Target ========= SOUNDS ========= -sfx1 44641500 (teleport) +sfx1 44641500 (Teleport) startgame 26858107 startlevel 34443107 endlevel 34292905 @@ -65,27 +65,27 @@ COLLISIONLAYERS ================ Background -Teleport,BorderTile, target +Teleport,BorderTile, Target Player, AltPlayer ====== RULES ====== -late [ player Teleport ] -> [ altplayer Teleport ] sfx1 +late [ Player Teleport ] -> [ AltPlayer Teleport ] sfx1 -late [ altplayer Teleport ] [ Teleport no altplayer ] -> [ altplayer teleport ] [ Teleport player ] -late [ altplayer ] -> [ ] +late [ AltPlayer Teleport ] [ Teleport no AltPlayer ] -> [ AltPlayer Teleport ] [ Teleport Player ] +late [ AltPlayer ] -> [ ] -late [ player bordertile ] -> cancel +late [ Player BorderTile ] -> cancel ============== WINCONDITIONS ============== -some player -all player on target -all target on player +some Player +all Player on Target +all Target on Player ======= LEVELS diff --git a/src/demo/midas.txt b/src/demo/midas.txt index 82eaae3a8..2d984dddb 100644 --- a/src/demo/midas.txt +++ b/src/demo/midas.txt @@ -4,12 +4,12 @@ homepage https://web.archive.org/web/20160706204929/http://wanderlands.org/ ( -A port of the luxuriant Wanderlands game, Midas, with permission of the authors. It's a bit messy, if you can find a way to tidy it up, let me know : ] +A port of the luxuriant Wanderlands game, Midas, with permission of the authors. It's a bit messy, if you can find a way to tidy it UP, let me know : ] the original is here https://web.archive.org/web/20120219201941/http://wanderlands.org/main/midas -update: uh, it's flash, so not a playable link any more... +update: uh, it's flash, so not a playable link any more...also the original developer site is gone. ) @@ -20,7 +20,7 @@ OBJECTS Background white -lovebase +Lovebase white Target @@ -83,7 +83,7 @@ blue Wall gray -love +Love pink .0.0. 00000 @@ -111,7 +111,7 @@ D = GoldingBlock SOUNDS ========= -sfx0 28219707 (touch water) +sfx0 28219707 (touch Water) sfx1 45545307 (golding) sfx2 42491507 (make lady gold :/ ) StartGame 8892900 @@ -124,40 +124,40 @@ COLLISIONLAYERS ================ Background -lovebase +Lovebase PlayerGround, PlayerJump1,PlayerJump2, Wall, Water, GoldBlock, Target, GoldTarget, GoldingBlock Crown -love +Love ====== RULES ====== -UP [ Up PlayerGround | No Obstacle ] -> [ Up PlayerJump2 | ] -DOWN [ Up JumpingPlayer | no obstacle ] -> [ JumpingPlayer | ] -DOWN [ Up PlayerJump2 | no obstacle ] -> [ PlayerJump2 | ] +UP [ UP PlayerGround | NO Obstacle ] -> [ UP PlayerJump2 | ] +DOWN [ UP JumpingPlayer | NO Obstacle ] -> [ JumpingPlayer | ] +DOWN [ UP PlayerJump2 | NO Obstacle ] -> [ PlayerJump2 | ] -[ stationary CanFall ] -> [ Down CanFall ] +[ STATIONARY CanFall ] -> [ Down CanFall ] -horizontal [ > PlayerJump1 | NO obstacle ] -> [ | PlayerGround ] -horizontal [ > PlayerJump2 | NO obstacle ] -> [ | PlayerJump1 ] -LATE DOWN [ PlayerGround | NO obstacle ] -> [ | playerground ] +HORIZONTAL [ > PlayerJump1 | NO Obstacle ] -> [ | PlayerGround ] +HORIZONTAL [ > PlayerJump2 | NO Obstacle ] -> [ | PlayerJump1 ] +LATE DOWN [ PlayerGround | NO Obstacle ] -> [ | PlayerGround ] -LATE [ crown no player ] [ player ] -> [ ] [ crown player ] -LATE [ goldingblock ] -> [ goldblock ] -LATE [ crown | wall ] -> [ crown | goldingblock ] sfx1 -LATE [ crown | water ] -> [ | water ] sfx0 -LATE [ crown | target ] -> [ crown | goldtarget ] sfx2 +LATE [ Crown NO Player ] [ Player ] -> [ ] [ Crown Player ] +LATE [ GoldingBlock ] -> [ GoldBlock ] +LATE [ Crown | Wall ] -> [ Crown | GoldingBlock ] sfx1 +LATE [ Crown | Water ] -> [ | Water ] sfx0 +LATE [ Crown | Target ] -> [ Crown | GoldTarget ] sfx2 LATE DOWN [ JumpingPlayer | Obstacle ] -> [ PlayerGround | Obstacle ] -LATE [ player | target ] -> [ player lovebase | target ] -LATE UP [ lovebase | ] -> [ | love ] +LATE [ Player | Target ] -> [ Player Lovebase | Target ] +LATE UP [ Lovebase | ] -> [ | Love ] ============== WINCONDITIONS ============== -some love (Awwww!) +some Love (Awwww!) ======= LEVELS @@ -358,7 +358,7 @@ message Is she still waiting? #...................# ##################### -message Is love just fool's gold? +message Is Love just fool's gold? ##################### #...................# diff --git a/src/demo/octat.txt b/src/demo/octat.txt index 910b14e04..dbacc2cf6 100644 --- a/src/demo/octat.txt +++ b/src/demo/octat.txt @@ -85,13 +85,12 @@ RULES ====== [ > Player | no Activetile ] -> cancel -[ > Player | ] -> [ | Player ] -[ Activetile | Player ] -> [ Temp | Player ] -[ no Temp | Player ] -> [ Activetile | Player ] -[ Temp ] -> [ ] +late [ Activetile | Player ] -> [ Temp | Player ] +late [ no Temp | Player ] -> [ Activetile | Player ] +late [ Temp ] -> [ ] -[ Activetile Void ] -> [ Void ] +late [ Activetile Void ] -> [ Void ] ============== WINCONDITIONS diff --git a/src/demo/whaleworld.txt b/src/demo/whaleworld.txt index f25880f29..877d465cc 100644 --- a/src/demo/whaleworld.txt +++ b/src/demo/whaleworld.txt @@ -99,20 +99,20 @@ VBeam RULES ====== -(while we allow whales to move onto the void, player's aren't) +(While we allow whales to move onto the void, player's aren't) [ > player | void ] -> [ player | void ] -(beams detect motion) +(Beams detect motion) horizontal [ > Player | VBeam ] -> [ > Player | > VBeam ] vertical [ > Player | HBeam ] -> [ > Player | > HBeam ] (If beams detected motion, transfer that to the whales) [ Whale | ... | perpendicular Beam ] -> [ perpendicular Whale | ... | perpendicular Beam ] -(remove whales, if necessary) +(Remove whales, if necessary) late [ Whale Void ] -> [ Void ] -(remove beams) +(Remove beams) [ Beam ] -> [ ] (Place HVeams and VBeams) diff --git a/src/demo/zenpuzzlegarden.txt b/src/demo/zenpuzzlegarden.txt index 977122462..e38902a0c 100644 --- a/src/demo/zenpuzzlegarden.txt +++ b/src/demo/zenpuzzlegarden.txt @@ -95,7 +95,7 @@ Player, Rock RULES ====== -(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?) +(The h and v sand effects are cosmetic - how could this be done in a single line if there was only one type of brushed sand?) horizontal [ UnbrushedSand > Player ] -> [ HBrushedSand > Player ] vertical [ UnbrushedSand > Player ] -> [ VBrushedSand > Player ] From d2bfdc3e3280d9ad30c3c57b72d60fd7426d313d Mon Sep 17 00:00:00 2001 From: Adam Gashlin Date: Fri, 11 Mar 2022 15:39:31 -0800 Subject: [PATCH 100/122] Fix non-square flickscreen/zoomscreen coordinates Regressed in 0edceb98e8b28e21f97d80235c4277f697cf2e40 --- src/js/compiler.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/compiler.js b/src/js/compiler.js index 6e4115efc..c5e8b6d70 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -2234,7 +2234,7 @@ function twiddleMetaData(state) { logWarning("Dimensions must be of the form AxB.",lineNumber); return null; } else { - var intcoords = [getIntCheckedPositive(coords[0],lineNumber), getIntCheckedPositive(coords[0],lineNumber)]; + var intcoords = [getIntCheckedPositive(coords[0],lineNumber), getIntCheckedPositive(coords[1],lineNumber)]; if (!isFinite(coords[0]) || !isFinite(coords[1]) || isNaN(intcoords[0]) || isNaN(intcoords[1])) { logWarning(`Couldn't understand the dimensions given to me (you gave "${val}") - should be of the form AxB.`,lineNumber); return null From aeca8ea5cdd420673b30b250ec18db3fba9d9dee Mon Sep 17 00:00:00 2001 From: Adam Gashlin Date: Fri, 11 Mar 2022 16:02:17 -0800 Subject: [PATCH 101/122] Fix coordinates tests --- src/tests/resources/errormessage_testdata.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index 8da5cecc0..4077355de 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -849,7 +849,7 @@ var errormessage_testdata = [ ], [ "Dimensions should be positive and integral", - ["title Dimensions should be positive and integral\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nzoomscreen 0x4.23\nflickscreen 1.4x-4\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 6 : Wasn't able to make sense of \"1.4\" as a (whole number) dimension.","line 6 : Couldn't understand the dimensions given to me (you gave \"1.4x-4\") - should be of the form AxB.","line 5 : The dimension given to me (you gave \"0\") is baad - it should be greater than 0.","line 5 : The dimensions given to me (you gave \"0x4.23\") are baad - they should be > 0."],0] + ["title Dimensions should be positive and integral\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nzoomscreen 0x4.23\nflickscreen 1.4x-4\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 6 : Wasn't able to make sense of \"1.4\" as a (whole number) dimension.","line 6 : The dimension given to me (you gave \"-4\") is baad - it should be greater than 0.","line 6 : Couldn't understand the dimensions given to me (you gave \"1.4x-4\") - should be of the form AxB.","line 5 : The dimension given to me (you gave \"0\") is baad - it should be greater than 0.","line 5 : Wasn't able to make sense of \"4.23\" as a (whole number) dimension.","line 5 : Couldn't understand the dimensions given to me (you gave \"0x4.23\") - should be of the form AxB."],0] ], [ "Match 3 Block Push", @@ -867,4 +867,4 @@ var errormessage_testdata = [ "can declare the same object to be on a layer multiple times #770", ["title can declare the same object to be on a layer multiple times #770\nauthor increpare\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground (special, automatically placed in its own layer)\ngreen darkgreen\n11111\n01111\n11101\n11111\n10111\n\nPlayer (Required by game)\npink\n..0..\n00000\n..0..\n.000.\n.0.0.\n\nRobot\ngray black red\n.000.\n.200.\n...0.\n00000\n01010\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n* = Robot\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nPlayer, player, player, player, player, player\nrobot\nBackground\n\n======\nRULES\n======\n\n[ stationary Robot ] -> [ randomDir Robot ] \n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n...........\n.....*.....\n...........\n.....*.....\n...........\n.....*.....\n..P........\n.....*.....\n...........\n\n",["line 49 : Object \"PLAYER\" included multiple times (either directly or indirectly) in the same layer."],0] ], -]; \ No newline at end of file +]; From b510ee57fbfc09a883952a18208234b728fd9a95 Mon Sep 17 00:00:00 2001 From: Ben Small Date: Sat, 12 Mar 2022 17:17:18 -0800 Subject: [PATCH 102/122] Added missing pushSoundToHistory function to debug_off.js (This function was referenced by sfxr.js, but was only defined in debug.js. This caused breakage when trying to play sounds outside of the editor.) --- src/js/debug_off.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/js/debug_off.js b/src/js/debug_off.js index 927618f48..ffc71ff98 100644 --- a/src/js/debug_off.js +++ b/src/js/debug_off.js @@ -42,4 +42,5 @@ function logErrorNoLine(str){ } function clearInputHistory() {} -function pushInput(inp) {} \ No newline at end of file +function pushInput(inp) {} +function pushSoundToHistory(seed) {} From cd3115912dcdd90e63f73a7e7b8a851bc2ed4b37 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Mon, 14 Mar 2022 12:52:54 +0100 Subject: [PATCH 103/122] rest of implementation for #506 with tests + mention in documentation --- src/Documentation/rules.html | 11 ++- src/js/compiler.js | 4 + src/js/engine.js | 81 ++++++++++++++++---- src/tests/resources/errormessage_testdata.js | 16 ++-- src/tests/resources/testdata.js | 29 +++++++ 5 files changed, 117 insertions(+), 24 deletions(-) diff --git a/src/Documentation/rules.html b/src/Documentation/rules.html index b49030200..5efc347b0 100644 --- a/src/Documentation/rules.html +++ b/src/Documentation/rules.html @@ -123,7 +123,7 @@

            Left-hand Side

            The direction DOWN indicates what direction the pattern will be oriented.

            - One can also have ellipses in patterns, that allow for them to be variable length. Here's a lava gun that turns anyone in-line with it into a Corpse + One can also have ellipses in patterns, that allow for them to be variable length. Here's a lava gun that turns anyone in line with it into a Corpse:

             late [ LavaGun | ... | Mortal ] -> [ LavaGun | ... | Corpse ]

            @@ -137,7 +137,14 @@

            Left-hand Side

            and never finish compiling.

            - A technical point that might occasionally be relevant : ellipsis-based rules search from smallest to biggest. + A technical point that might occasionally be relevant : ellipsis-based rules search from smallest to biggest. +

            + Also, it's possible to use two ellipses in a single pattern, such as stiff like this. +

            (92) [ > Player | ... | Crate | ... | Crate ] -> [ > Player | ... | > Crate | ... | Crate ]
            +		
            +

            + (Please be a little bit careful with using multiple ellipses in a single rule - it might get a bit slow). +

            Right-hand Side

            If we had the following rule

            diff --git a/src/js/compiler.js b/src/js/compiler.js index 8cfb31178..219823383 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -1902,6 +1902,10 @@ function collapseRules(groups) { ellipses[j] ++; if (ellipses[j]>2) { logError("You can't use more than two ellipses in a single cell match pattern.", oldrule.lineNumber); + } else { + if (k>0 && cellrow_l[k-1]===ellipsisPattern){ + logWarning("Why would you go and have two ellipses in a row like that? It's exactly the same as just having a single ellipsis, right?", oldrule.lineNumber); + } } } } diff --git a/src/js/engine.js b/src/js/engine.js index e28e82b41..bb9d73d17 100644 --- a/src/js/engine.js +++ b/src/js/engine.js @@ -1522,7 +1522,7 @@ Rule.prototype.generateCellRowMatchesFunction = function(cellRow,ellipsisCount) fn+=") {\n"; //try match middle part - fn+=" for (var k1=kmin;k10 ? tuple[cellRowIndex][0] : tuple[cellRowIndex]; for (var cellIndex=0;cellIndexRule ${rule.lineNumber} ${ruleDirection} applied.`; + var gapMessage=""; + // var gapcount=0; + // if (anyellipses){ + // var added=0; + // for(var i=0;i0){ + // gapMessage+=", "; + // } + // gapMessage+=tuples_cellrow[j]; + // } + // } + // if (added===1){ + // gapMessage = " (ellipsis gap of length "+gapMessage+")"; + // } else { + // gapMessage = " (ellipsis gaps of length "+gapMessage+")"; + // } + // } + + var logString = `Rule ${rule.lineNumber} ${ruleDirection} applied${gapMessage}.`; consolePrint(logString,false,rule.lineNumber,inspect_ID); } diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index 8da5cecc0..4dd7d2499 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -32,10 +32,6 @@ var errormessage_testdata = [ `You can't have anything in with an ellipsis. Sorry.`, ["title Block Faker\nauthor Droqen\nhomepage www.droqen.com\n\nrequire_player_movement\nkey_repeat_interval 0.12\n\nbackground_color white\ntext_color black\n\ncolor_palette c64\n(\nA port of first several levels of Droqen's beautiful game:\n\nhttps://droqen.itch.io/block-faker\n\n(his game has secrets that this one does not)\n\n)\n\n========\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\nWallBlock\nBlack Grey\n01111\n01111\n01111\n01111\n00001\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 or WallBlock\nBlockObstacle = Player or Wall or WallBlock or Grille or Block or EndPoint\n. = Background\n# = Wall\n@ = WallBlock\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, WallBlock, PinkBlock, BlueBlock, PurpleBlock, OrangeBlock, GreenBlock\n\n======\nRULES\n======\n\n[ > Moveable | Moveable ] -> [ > Moveable | > Moveable ]\n\n[ > Block |... grille | Grille ] -> [ Block |... | Grille ]\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==============\nsome player on endpoint\n=======\nLEVELS\n=======\n\n........########\n################\n########@@@@@###\n####@@@@@...@###\n###@..OO....@@##\n##@..@@@@@....@#\n##@.@..@@@..E@@#\n#@..@.O...@@@@##\n##@...@.P.######\n####@.@@@@######\n####@@##########\n########........\n\nmessage congrats: level 2!\n\n##########\n####R.R###\n#x....#x##\n#xO#O.OxE#\n#xx##.#xx#\n#####R####\n#####P####\nO#########\n\nmessage congrats: level 3!\n\n......#######...\n.....##P.#####..\n....###....####.\n..#####O...#B..#\n..#####.#.##BB.#\n##EBB..O.O.....#\n..#####.#.#....#\n..######..#G.###\n....####..#.OOx.\n.....###.GG.#x..\n......#######...\n\nmessage congrats: level 4!\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\nmessage congrats: level 5!\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......##......\n\nmessage now go play the real game\n\n",["line 140 : You can't have anything in with an ellipsis. Sorry."],1] ], - [ - `You can't use two ellipses in a single cell match pattern.`, - ["title Block Faker\nauthor Droqen\nhomepage www.droqen.com\n\nrequire_player_movement\nkey_repeat_interval 0.12\n\nbackground_color white\ntext_color black\n\ncolor_palette c64\n(\nA port of first several levels of Droqen's beautiful game:\n\nhttps://droqen.itch.io/block-faker\n\n(his game has secrets that this one does not)\n\n)\n\n========\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\nWallBlock\nBlack Grey\n01111\n01111\n01111\n01111\n00001\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 or WallBlock\nBlockObstacle = Player or Wall or WallBlock or Grille or Block or EndPoint\n. = Background\n# = Wall\n@ = WallBlock\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, WallBlock, PinkBlock, BlueBlock, PurpleBlock, OrangeBlock, GreenBlock\n\n======\nRULES\n======\n\n[ > Moveable | Moveable ] -> [ > Moveable | > Moveable ]\n\n[ > Block |... | grille | ... | Grille ] -> [ Block |...| grille | ... | Grille ]\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==============\nsome player on endpoint\n=======\nLEVELS\n=======\n\n........########\n################\n########@@@@@###\n####@@@@@...@###\n###@..OO....@@##\n##@..@@@@@....@#\n##@.@..@@@..E@@#\n#@..@.O...@@@@##\n##@...@.P.######\n####@.@@@@######\n####@@##########\n########........\n\nmessage congrats: level 2!\n\n##########\n####R.R###\n#x....#x##\n#xO#O.OxE#\n#xx##.#xx#\n#####R####\n#####P####\nO#########\n\nmessage congrats: level 3!\n\n......#######...\n.....##P.#####..\n....###....####.\n..#####O...#B..#\n..#####.#.##BB.#\n##EBB..O.O.....#\n..#####.#.#....#\n..######..#G.###\n....####..#.OOx.\n.....###.GG.#x..\n......#######...\n\nmessage congrats: level 4!\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\nmessage congrats: level 5!\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......##......\n\nmessage now go play the real game\n\n",["line 140 : You can't use two ellipses in a single cell match pattern. If you really want to, please implement it yourself and send me a patch :)"],1] - ], [ `You named an object "^", but this is a keyword. Don't do that!`, ["title Microban\nauthor David Skinner\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\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^ = Target\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*O.#\n##.*P*.#\n#..O*O.#\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",["line 68 : You named an object \"^\", but this is a keyword. Don't do that!"],0] @@ -780,10 +776,6 @@ var errormessage_testdata = [ ["title WALL and CRATE can never overlap, but this rule requires that to happen, so it's being culled.\nauthor David Skinner\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\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[ > Player | Crate target wall ] -> [ > 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\n",["line 81 : WALL and CRATE can never overlap, but this rule requires that to happen, so it's being culled."],1] ], [ - "You can't use two ellipses in a single cell match pattern.", - ["title You can't use two ellipses in a single cell match pattern.\nauthor David Skinner\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\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[ > Player | ... | crate | ... | Crate ] ->[ > Player | ... | > crate | ... | > 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\n",["line 81 : You can't use two ellipses in a single cell match pattern. If you really want to, please implement it yourself and send me a patch :)"],1] - ], - [ "There can't be more than 30 rigid groups", ["title There can't be more than 30 rigid groups\nauthor David Skinner\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\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\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > 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\n",["line 141 : There can't be more than 30 rigid groups (rule groups containing rigid members)."],1] ], @@ -867,4 +859,12 @@ var errormessage_testdata = [ "can declare the same object to be on a layer multiple times #770", ["title can declare the same object to be on a layer multiple times #770\nauthor increpare\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground (special, automatically placed in its own layer)\ngreen darkgreen\n11111\n01111\n11101\n11111\n10111\n\nPlayer (Required by game)\npink\n..0..\n00000\n..0..\n.000.\n.0.0.\n\nRobot\ngray black red\n.000.\n.200.\n...0.\n00000\n01010\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n* = Robot\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nPlayer, player, player, player, player, player\nrobot\nBackground\n\n======\nRULES\n======\n\n[ stationary Robot ] -> [ randomDir Robot ] \n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n...........\n.....*.....\n...........\n.....*.....\n...........\n.....*.....\n..P........\n.....*.....\n...........\n\n",["line 49 : Object \"PLAYER\" included multiple times (either directly or indirectly) in the same layer."],0] ], + [ + "Double-Ellipsis error message neighbouring ellipses", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate | ... | ... | crate ] -> [ > Player | > Crate | ... | ... | crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 81 : Why would you go and have two ellipses in a row like that? It's exactly the same as just having a single ellipsis, right?"],0] + ], + [ + "Simple Block Pushing Game", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | ... | Crate| ... | Crate |... | Crate ] -> [ > Player |...| > Crate|...| > Crate|...| > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : You can't use more than two ellipses in a single cell match pattern."],1] + ], ]; \ No newline at end of file diff --git a/src/tests/resources/testdata.js b/src/tests/resources/testdata.js index 3a2350d14..04b4e96ac 100644 --- a/src/tests/resources/testdata.js +++ b/src/tests/resources/testdata.js @@ -1604,5 +1604,34 @@ var testdata = [ "aggregates in win conditions 7", ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\ncratedot\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ndotted = crate and cratedot\nk = cratedot\n&=dotted\nf = dotted and target\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ncratedot\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n[ > Player | cratedot ] -> [ > Player | > cratedot ] \n\n==============\nWINCONDITIONS\n==============\n\nall target on dotted\n\n=======\nLEVELS\n=======\n\n..p..\n...k.\n.ooo.\n.&&*.\n.....\n\n..p..\n...k.\n.ooo.\n#&&*.\n.....\n\n..p..\n...k.\n.ooo.\n.&&*.\n.....\n\npk@\n...\n...\n",[3,2,3,2,2,2,1,0,2,1,1,0,2,3,3,3,0,0,1,2,2,1,1,0,3,2,3,0,3,3,2,2,2,2,1,0,2,2,1,1,0,2,3,3,1,0,3,3,0,0,1,2,0,0,1,1,2,3,0,3,2,3,2,2,2,1,0],"background:0,0,0,0,0,\n0,0,background target:1,background crate cratedot:2,0,\nbackground player:3,0,1,2,0,\n0,background cratedot:4,1,background crate:5,0,\n0,0,0,0,0,\n",0,"1646903516649.6477",["36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507"]] ], + [ + "double ellipsis simple test", + ["title double ellipsis simple test\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | > Player | > Player | ... | Crate | Crate | ... | Target | Target | Target | Target ] -> [ > Player | > Player | > Player | ... | > Crate | > Crate | ... | > Target | > Target | > Target | > Target ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\nppp**.oooo..\nppp**oooo...\nppp.**oooo..\nppp.**.oooo.\n\n#######\n#.....#\n#.....#\n#p.*.o#\n#.....#\n#.....#\n#######\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[3],"background:0,0,0,0,background player:1,1,1,1,1,1,1,1,\n1,1,1,1,background crate:2,2,0,0,2,2,2,2,\n0,background target:3,2,2,3,3,3,0,3,3,3,3,\n3,3,3,3,3,0,3,3,0,0,0,3,\n",0,"1647256697085.1719",["36772507"]] + ], + [ + "double ellipsis simple test #2", + ["title double ellipsis simple test\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | > Player | ... | Crate | Crate | ... | Target | Target | Target | Target ] -> [ > Player | > Player | > Player | ... | > Crate | > Crate | ... | > Target | > Target | > Target | > Target ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n....................\nppp**.oooo.**.......\n...**oooo**.........\n....**oooo**........\n....**.oooo.**......\n....................\n\n#######\n#.....#\n#.....#\n#p.*.o#\n#.....#\n#.....#\n#######\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,0,1,2,1,1,1,0,1,2,1,1,1,3,3,3,3,2,1,1,1,1,1,"undo",1,3,3,3,3,3,3,2,0,0,1,2,2,1,0,3,2,1,0,1,2,1,1,1,"undo",1,1,3,3,3,3,3,3,2,3,3,1,1,1,1,1,1,1,"undo",1,"undo"],"background:0,background target:1,1,1,0,0,0,1,1,1,1,0,0,1,1,1,1,0,0,background crate target:2,\n2,1,1,0,0,background crate:3,3,3,2,0,0,3,3,3,3,0,0,3,3,3,\n3,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,background player:4,0,0,0,0,0,4,0,0,0,0,0,4,0,0,0,\n0,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,\n",0,"1647256758831.4763",["36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507"]] + ], + [ + "double ellipsis simple test #3", + ["title double ellipsis simple test\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | > Player | ... | Crate | Crate | ... | Target | Target | Target | Target ] -> [ > Player | > Player | > Player | ... | > Crate | > Crate | ... | > Target | > Target | > Target | > Target ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n\n....................\n....................\n....................\n....................\n....................\n....................\n......****..........\nppp...****.........\nppp.................\nppp**.oooo.**.......\n...**oooo**.........\n....**oooo**........\n....**.oooo.**......\n....................\n.......****.........\n.......****.........\n.......****.........\n....................\n....................\n....................\n....................\n....................\n\n#######\n#.....#\n#.....#\n#p.*.o#\n#.....#\n#.....#\n#######\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[2,2,2,3,2,2,2,2,2,2,2,2,3,3,3,2,3,3,3,3,1,0,"undo",0,"undo",1,0,1,1,0,3,3,3,0,"undo",0,"undo",0,2,2,2,3,3,3,3,3,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,1,2],"background: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,\n0,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,background crate:1,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,\n0,background target:2,2,1,1,0,0,0,0,0,0,0,0,0,0,0,0,background player:3,3,3,\n1,1,0,2,2,2,0,0,1,1,1,0,0,0,0,0,0,0,0,3,\n3,3,1,background crate target:4,2,2,2,0,1,1,1,0,0,0,0,0,0,0,0,0,\n0,3,3,3,0,1,1,2,4,2,2,1,1,1,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,1,4,2,0,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,1,0,1,2,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,\n0,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,\n0,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,\n0,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",0,"1647256841954.48",["36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507"]] + ], + [ + "double ellipsis simple test #4", + ["title double ellipsis simple test\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | > Player | ... | Crate | Crate | ... | stationary Target | stationary Target | stationary Target | stationary Target ] -> [ > Player | > Player | > Player | ... | > Crate | > Crate | ... | > Target | > Target | > Target | > Target ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n\n....................\n....................\n....................\n....................\n....................\n....................\n......****..........\nppp...****.........\nppp.................\nppp**.oooo.**.......\n...**oooo**.........\n....**oooo**........\n....**.oooo.**......\n....................\n.......****.........\n.......****.........\n.......****.........\n....................\n....................\n....................\n....................\n....................\n\n#######\n#.....#\n#.....#\n#p.*.o#\n#.....#\n#.....#\n#######\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,0,1,1,1,0,3,"undo","undo","undo",1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,0,3,2,0,2,0,2,3,3,3,3,3,3,3,2,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,1,1,1,0,"undo",0,0],"background: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,\n0,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,background crate:1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,\n1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\nbackground target:2,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,\n0,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background crate target:3,3,2,2,0,1,1,1,background player:4,4,4,0,0,0,0,0,0,\n0,0,0,0,0,3,3,2,2,0,1,1,1,4,4,4,0,0,0,0,\n0,0,0,0,1,1,0,2,1,2,2,0,1,1,1,4,4,4,0,0,\n0,0,0,0,0,0,0,0,0,0,1,1,2,0,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,\n0,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,\n0,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,\n0,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",0,"1647256905962.6406",["36772507","36772507","36772507"]] + ], + [ + "double ellipsis simple test #5", + ["title double ellipsis simple test\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | > Player | ... | Crate | Crate | ... | stationary Target | stationary Target | stationary Target | stationary Target ] -> [ > Player | > Player | > Player | ... | < Crate | < Crate | ... | > Target | > Target | > Target | > Target ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n\n....................\n....................\n....................\n....................\n....................\n....................\n......****..........\nppp...****.........\nppp.................\nppp**.oooo.**.......\n...**oooo**.........\n....**oooo**........\n....**.oooo.**......\n....................\n.......****.........\n.......****.........\n.......****.........\n....................\n....................\n....................\n....................\n....................\n\n#######\n#.....#\n#.....#\n#p.*.o#\n#.....#\n#.....#\n#######\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,0,"undo",0,3,3,3,3,3,3,3,3,0,3,0,0,0,0,0,0,0,0,0,0,2,2,2,1,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,1,1,1,1,0,"undo",1,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,3,0,3,3,3,3,3,2],"background: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,\n0,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,background crate:1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,background crate target:2,1,\n1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\nbackground target:3,2,1,0,0,0,0,0,0,0,0,0,0,background player:4,4,4,0,0,1,1,\n0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,4,4,4,0,1,\n1,0,0,3,3,3,3,0,1,0,1,1,0,0,0,0,0,4,4,4,\n0,0,1,1,3,3,0,3,0,0,1,0,1,1,0,0,0,0,0,0,\n0,0,0,0,1,1,0,3,0,0,3,0,1,1,1,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,1,0,3,0,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,\n0,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,\n0,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,\n0,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",0,"1647256954689.7512",["36772507","36772507","36772507","36772507","36772507"]] + ], + + [ + "Double-ellipsis testcase", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\nb\nred\n0....\n0....\n00000\n0...0\n00000\n\nc\nblue\n00000\n0....\n0....\n0....\n00000\n\nd\nyellow\n....0\n....0\n00000\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nb\nc\nd\n\n======\nRULES\n======\n\n[ > Player | ... | b | ... | c ] [ d | ... | b | ... | c ] -> [ > Player | ... | b | ... | c ] [ up d | ... | b | ... | down c ]\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n...........\n...........\n...........\n.d.p..b.c..\n...........\n.d.b.c.....\n...........\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[3],"background:0,0,0,0,0,0,0,0,0,background d:1,0,\n1,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,b background:2,0,0,0,0,background player:3,0,\n0,0,0,0,0,0,0,0,background c:4,0,0,\n0,2,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,4,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n",0,"1647258256850.6755",[]] + ], + [ + "Double-ellipsis delicate test case", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\nb\nred\n0....\n0....\n00000\n0...0\n00000\n\nc\nblue\n00000\n0....\n0....\n0....\n00000\n\nd\nyellow\n....0\n....0\n00000\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nb\nc\nd\n\n======\nRULES\n======\n\n[ > Player | ... | b | ... | c ] [ d | ... | b | ... | c ] -> [ Player | ... | b | ... | c ] [ up d | ... | b | ... | down c ]\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n...........\n...........\n...........\n.d.p..b.c..\n...........\n.d.b.c.....\n...........\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[3],"background:0,0,0,0,0,0,0,0,0,background d:1,0,\n0,1,0,0,0,0,0,0,0,0,0,\n0,0,background player:2,0,b background:3,0,0,0,0,0,0,\n0,0,0,0,0,0,0,background c:4,0,0,0,\n0,3,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,4,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n",0,"1647258285625.6372",[]] + ], ]; From e47b350a211a52af3e5d8a7beb710e3232ace660 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Tue, 15 Mar 2022 17:25:46 +0100 Subject: [PATCH 104/122] fixes #903 --- src/js/engine.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/js/engine.js b/src/js/engine.js index bb9d73d17..010523e65 100644 --- a/src/js/engine.js +++ b/src/js/engine.js @@ -1763,10 +1763,6 @@ CellPattern.prototype.replace = function(rule, currentIndex) { level.rowCellContents[rowIndex].ior(curCellMask); level.mapCellContents.ior(curCellMask); - level.colCellContents_Movements[colIndex].ior(curMovementMask); - level.rowCellContents_Movements[rowIndex].ior(curMovementMask); - level.mapCellContents_Movements.ior(curMovementMask); - } return result; From 306bcc26311442a3c682fd38f2d660a336193f3f Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 16 Mar 2022 16:03:27 +0100 Subject: [PATCH 105/122] fixes #904 - by your side has a warning --- src/js/parser.js | 14 +++++++++----- src/tests/resources/errormessage_testdata.js | 16 ++++++++++++++-- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/js/parser.js b/src/js/parser.js index 9a5fe9d41..e36e03b13 100644 --- a/src/js/parser.js +++ b/src/js/parser.js @@ -1211,6 +1211,8 @@ var codeMirrorFn = function() { if (sol) { //create new collision layer state.collisionLayers.push([]); + //empty current_line_wip_array + state.current_line_wip_array = []; state.tokenIndex=0; } @@ -1286,10 +1288,10 @@ var codeMirrorFn = function() { var foundOthers=[]; var foundSelves=[]; for (var i=0;i=0){ + if (clj.indexOf(tcandname)>=0){ if (j!==state.collisionLayers.length-1){ foundOthers.push(j); } else { @@ -1306,10 +1308,12 @@ var codeMirrorFn = function() { warningStr+="#"+state.collisionLayers.length; logWarning(warningStr +' ). You should fix this!',state.lineNumber); } - if (foundSelves.length>0){ - var warningStr = 'Object "'+candname.toUpperCase()+'" included multiple times (either directly or indirectly) in the same layer.'; - logWarning(warningStr,state.lineNumber); + + if (state.current_line_wip_array.indexOf(candname)>=0){ + var warningStr = 'Object "'+candname.toUpperCase()+'" included explicitly multiple times in the same layer. Don\'t do that innit.'; + logWarning(warningStr,state.lineNumber); } + state.current_line_wip_array.push(candname); state.collisionLayers[state.collisionLayers.length - 1] = state.collisionLayers[state.collisionLayers.length - 1].concat(ar); if (ar.length>0) { diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index 94b0c5768..0970deec9 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -158,7 +158,7 @@ var errormessage_testdata = [ ], [ `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.222.\n.323.\n.222.\n.222.\n.2.2.\n\nProtector\n#9CBD0F #8CAD0F #306230 #0F380F\n.333.\n.232.\n.333.\n.333.\n.3.3.\n\nProtectorSolo\n#9CBD0F #8CAD0F #306230 #0F380F\n.333.\n.232.\n.333.\n.333.\n.3.3.\n\nvictimSolo\n#9CBD0F #8CAD0F #306230 #0F380F\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\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",["line 168 : Object \"VICTIMSOLO\" included in multiple collision layers ( layers #4, #5 ). You should fix this!","line 168 : Object \"WALL\" included in multiple collision layers ( layers #4, #5 ). You should fix this!"],0] + ["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.222.\n.323.\n.222.\n.222.\n.2.2.\n\nProtector\n#9CBD0F #8CAD0F #306230 #0F380F\n.333.\n.232.\n.333.\n.333.\n.3.3.\n\nProtectorSolo\n#9CBD0F #8CAD0F #306230 #0F380F\n.333.\n.232.\n.333.\n.333.\n.3.3.\n\nvictimSolo\n#9CBD0F #8CAD0F #306230 #0F380F\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\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",["line 168 : Object \"PLAYER\" included in multiple collision layers ( layers #4, #5 ). You should fix this!","line 168 : Object \"WALL\" included in multiple collision layers ( layers #4, #5 ). You should fix this!"],0] ], [ `slidings`, @@ -857,7 +857,7 @@ var errormessage_testdata = [ ], [ "can declare the same object to be on a layer multiple times #770", - ["title can declare the same object to be on a layer multiple times #770\nauthor increpare\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground (special, automatically placed in its own layer)\ngreen darkgreen\n11111\n01111\n11101\n11111\n10111\n\nPlayer (Required by game)\npink\n..0..\n00000\n..0..\n.000.\n.0.0.\n\nRobot\ngray black red\n.000.\n.200.\n...0.\n00000\n01010\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n* = Robot\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nPlayer, player, player, player, player, player\nrobot\nBackground\n\n======\nRULES\n======\n\n[ stationary Robot ] -> [ randomDir Robot ] \n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n...........\n.....*.....\n...........\n.....*.....\n...........\n.....*.....\n..P........\n.....*.....\n...........\n\n",["line 49 : Object \"PLAYER\" included multiple times (either directly or indirectly) in the same layer."],0] + ["title can declare the same object to be on a layer multiple times #770\nauthor increpare\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground (special, automatically placed in its own layer)\ngreen darkgreen\n11111\n01111\n11101\n11111\n10111\n\nPlayer (Required by game)\npink\n..0..\n00000\n..0..\n.000.\n.0.0.\n\nRobot\ngray black red\n.000.\n.200.\n...0.\n00000\n01010\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n* = Robot\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nPlayer, player, player, player, player, player\nrobot\nBackground\n\n======\nRULES\n======\n\n[ stationary Robot ] -> [ randomDir Robot ] \n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n...........\n.....*.....\n...........\n.....*.....\n...........\n.....*.....\n..P........\n.....*.....\n...........\n\n",["line 49 : Object \"PLAYER\" included explicitly multiple times in the same layer. Don't do that innit."],0] ], [ "Double-Ellipsis error message neighbouring ellipses", @@ -867,4 +867,16 @@ var errormessage_testdata = [ "Simple Block Pushing Game", ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | ... | Crate| ... | Crate |... | Crate ] -> [ > Player |...| > Crate|...| > Crate|...| > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : You can't use more than two ellipses in a single cell match pattern."],1] ], + [ + "Warning for duplicate objects on layer", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, wall\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 72 : Object \"WALL\" included explicitly multiple times in the same layer. Don't do that innit."],0] + ], + [ + "No warning for duplicate objects on layer", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ncow = crate or wall\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, cow\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[],0] + ], + [ + "Warning for duplicate properties on layer", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ncow = crate or wall\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, cow, cow\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 72 : Object \"COW\" included explicitly multiple times in the same layer. Don't do that innit."],0] + ], ]; From 74f2fcfb84e370dc67f05bbd6f5668c8225f6dd1 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Wed, 16 Mar 2022 17:11:42 +0100 Subject: [PATCH 106/122] caught errors get their details printed to the console (including stack trace :) ) --- src/js/compiler.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/js/compiler.js b/src/js/compiler.js index 802d7f8f3..51ca2d0e9 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -2910,6 +2910,7 @@ function compile(command, text, randomseed) { var state = loadFile(text); } catch(error){ consolePrint(error); + console.log(error); } finally { compiling = false; } From 2b06c969c2edecdb4e5e6ec1bc9464ab81d853cd Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Fri, 6 May 2022 14:20:08 +0200 Subject: [PATCH 107/122] fixes #918 --- src/js/inputoutput.js | 72 ++++++++++++++++++++++--------------------- 1 file changed, 37 insertions(+), 35 deletions(-) diff --git a/src/js/inputoutput.js b/src/js/inputoutput.js index 4490feec1..968d0b6ee 100644 --- a/src/js/inputoutput.js +++ b/src/js/inputoutput.js @@ -734,41 +734,43 @@ function checkKey(e,justPressed) { if (state.levels.length===0) { //do nothing } else if (titleScreen) { - if (titleMode===0) { - if (inputdir===4&&justPressed) { - if (titleSelected===false) { - tryPlayStartGameSound(); - titleSelected=true; - messageselected=false; - timer=0; - quittingTitleScreen=true; - generateTitleScreen(); - canvasResize(); - clearInputHistory(); - } - } - } else { - if (inputdir==4&&justPressed) { - if (titleSelected===false) { - tryPlayStartGameSound(); - titleSelected=true; - messageselected=false; - timer=0; - quittingTitleScreen=true; - generateTitleScreen(); - redraw(); - } - } - else if (inputdir===0||inputdir===2) { - if (inputdir===0){ - titleSelection=0; - } else { - titleSelection=1; - } - generateTitleScreen(); - redraw(); - } - } + if (quittingTitleScreen===false){ + if (titleMode===0) { + if (inputdir===4&&justPressed) { + if (titleSelected===false) { + tryPlayStartGameSound(); + titleSelected=true; + messageselected=false; + timer=0; + quittingTitleScreen=true; + generateTitleScreen(); + canvasResize(); + clearInputHistory(); + } + } + } else { + if (inputdir==4&&justPressed) { + if (titleSelected===false) { + tryPlayStartGameSound(); + titleSelected=true; + messageselected=false; + timer=0; + quittingTitleScreen=true; + generateTitleScreen(); + redraw(); + } + } + else if (inputdir===0||inputdir===2) { + if (inputdir===0){ + titleSelection=0; + } else { + titleSelection=1; + } + generateTitleScreen(); + redraw(); + } + } + } } else { if (inputdir==4&&justPressed) { if (unitTesting) { From 3dcc07b3626f6da966868153543a34c836b77abe Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Tue, 5 Jul 2022 16:49:10 +0200 Subject: [PATCH 108/122] fixes #929 --- src/js/compiler.js | 1 + src/tests/resources/errormessage_testdata.js | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/src/js/compiler.js b/src/js/compiler.js index 51ca2d0e9..387de527c 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -1236,6 +1236,7 @@ function concretizePropertyRule(state, rule, lineNumber) { if (rhsPropertyRemains.length > 0) { logError('This rule has a property on the right-hand side, \"' + rhsPropertyRemains.toUpperCase() + "\", that can't be inferred from the left-hand side. (either for every property on the right there has to be a corresponding one on the left in the same cell, OR, if there's a single occurrence of a particular property name on the left, all properties of the same name on the right are assumed to be the same).", lineNumber); + return []; } return result; diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index 0970deec9..fc6635d96 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -878,5 +878,9 @@ var errormessage_testdata = [ [ "Warning for duplicate properties on layer", ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ncow = crate or wall\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, cow, cow\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 72 : Object \"COW\" included explicitly multiple times in the same layer. Don't do that innit."],0] + ], + [ + "Ambiguous properties throw an exception #929", + ["OBJECTS\n\nBackground\nblack\n\nPlayer\nblue\n\nA\ngreen\n\nB\nred\n\nLEGEND\nC = A or B\n\nSOUNDS\nCOLLISIONLAYERS\n\nA \nB\n\nRULES\nright [ C | C | ] -> [ C | C | C ]\n\nWINCONDITIONS\nLEVELS\n",["line 25 : This rule has a property on the right-hand side, \"C\", that can't be inferred from the left-hand side. (either for every property on the right there has to be a corresponding one on the left in the same cell, OR, if there's a single occurrence of a particular property name on the left, all properties of the same name on the right are assumed to be the same).","line 3 : Object \"BACKGROUND\" has been defined, but not assigned to a layer.","line 6 : Object \"PLAYER\" has been defined, but not assigned to a layer.","No levels found. Add some levels!"],4] ], ]; From c8612d80a5508250dda2d696ee0449f678a20387 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Tue, 5 Jul 2022 17:01:41 +0200 Subject: [PATCH 109/122] make toolbar scrollable fixes #921 --- src/css/layout.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/css/layout.css b/src/css/layout.css index d6b85d40c..01e7b4ff0 100644 --- a/src/css/layout.css +++ b/src/css/layout.css @@ -45,6 +45,8 @@ HTML, BODY top: 0px; background-color: #444444; overflow: hidden; + overflow-x: scroll; + white-space: nowrap; } .upperarea { From 597f9c4ec4372212cdf972160862446aaee768c0 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Fri, 8 Jul 2022 16:39:26 +0200 Subject: [PATCH 110/122] hide scrollbar if toolbar too narrow (related to #921 ) --- src/css/toolbar.css | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/css/toolbar.css b/src/css/toolbar.css index e725c5d77..e6ccb766f 100644 --- a/src/css/toolbar.css +++ b/src/css/toolbar.css @@ -10,10 +10,22 @@ }*/ -img { + +#uppertoolbar { image-rendering: -moz-crisp-edges; image-rendering: -webkit-crisp-edges; image-rendering: pixelated; image-rendering: crisp-edges; + scrollbar-width: none; + } - \ No newline at end of file + +#uppertoolbar::-webkit-scrollbar { + display: none; +} + + + /* Hide scrollbar for Chrome, Safari and Opera */ +.example::-webkit-scrollbar { + display: none; +} \ No newline at end of file From 12d10d2f998c552038ed3ed80f27cd7f0651a442 Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Fri, 8 Jul 2022 16:46:53 +0200 Subject: [PATCH 111/122] sfw-izing a test that slipped through --- src/tests/resources/testdata.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tests/resources/testdata.js b/src/tests/resources/testdata.js index 04b4e96ac..ac1af3c8a 100644 --- a/src/tests/resources/testdata.js +++ b/src/tests/resources/testdata.js @@ -1263,8 +1263,8 @@ var testdata = [ ["title SWIMMING TIME!\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\ncolor_palette 5\n\nrun_rules_on_level_start\n\nnorepeat_action\n\nagain_interval 0.2\n( debug )\n( verbose_logging )\n\nbackground_color #323c39\ntext_color #b4f7ff\n\n========\nOBJECTS\n========\n\nWall1 #\n#284580 #3b7ca9\n00000\n01010\n00000\n01010\n00000\n\nwall2 -\nbrown darkbrown\n11111\n00000\n11111\n00000\n11111\n\nBackground .\n#8b856e\n\ngoalarea ,\nlightblue\n\ntargetarea \n#8dc854\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\ntargetstrap\n#8dc854\n00000\n00000\n.....\n.....\n.....\n\nR0_Up 0\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\nR0_Down\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\nR0_Left\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\nR0_Right\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\n\nR1_Up 1\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR1_Down\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR1_Left\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR1_Right\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\n\nR2_Up 2\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR2_Down\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR2_Left\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR2_Right\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR3 3\n#e95db5 #e95db5\n.000.\n01110\n01110\n01110\n.000.\n\nConnector_Up\n#d9a066 #d9a066\n10001\n.000.\n.....\n.....\n.....\n\nConnector_Down\n#d9a066 #d9a066\n.....\n.....\n.....\n.000.\n10001\n\nConnector_Left\n#d9a066 #d9a066\n1....\n00...\n00...\n00...\n1....\n\nConnector_Right\n#d9a066 #d9a066\n....1\n...00\n...00\n...00\n....1\n\nMoved \ntransparent\n\nParent\ntransparent\n\nGrandParent\ntransparent\n\nNewRot\ntransparent\n\nNewRot2\ntransparent\n\nforce \ntransparent\n\nelephantbody_vanilla e\n#e9b886\n\nelephantbody_eye ;\n#e9b886 white brown\n00000\n01110\n01210\n01110\n00000\n\nelephantbody_hair h\nbrown #e9b886\n00000\n00000\n00000\n00000\n01010\n\nelephantbody_bs &\n#a1694e\n\nelephantbody_mouth '\n#e9b886 white red\n00000\n00000\n02220\n02220\n00000\n\nelephantbody_nose ~\n#e9b886 white black\n0....\n00...\n000..\n000..\n000..\n\n\nelephantbody_nose2 ?\n#e9b886 white black\n0....\n00...\n000..\n0000.\n00000\n\nelephantbody_nose3 %\n#e9b886\n00000\n.0000\n..000\n...00\n....0\n\nelephantbody_anchor a\n#d9a066\n\nelephant_armhighlight $\n#e9b886 #a1694e\n00001\n00001\n00001\n00001\n00001\n\nelephant_armhighlight2 !\n#e9b886 #a1694e\n00001\n00001\n10001\n10001\n11111\n\nelephant_reddot \"\n#e9b886 #e95db5\n00010\n00000\n00000\n00000\n00000\n\nendbarrier\ntransparent\n\nart y\npink\n\nart_eye u\npink white orange\n00000\n01110\n01210\n01210\n00000\n\n=======\nLEGEND\n=======\nwall = wall1 or wall2\nelephantbody = elephantbody_vanilla or elephantbody_anchor or elephantbody_eye or elephantbody_mouth or elephantbody_hair or elephantbody_nose or elephantbody_bs or elephantbody_nose2 or elephant_armhighlight or elephant_armhighlight2 or elephant_reddot or elephantbody_nose3\nR0 = R0_up or R0_down or R0_left or R0_right\nplayer = R0 or elephantbody\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} = endbarrier and goalarea\n=======\nSOUNDS\n=======\n\nsfx0 6951703\nendlevel 96389103\n\n================\nCOLLISIONLAYERS\n================\nBackground\ngoalarea\nMoved\nelephantbody\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\ntargetarea\nendbarrier\nart,art_eye\ntargetstrap\n\n======\nRULES\n======\n\n[stationary player ] -> [ left player ]\n\n[ connector ] -> [ ]\n\n[> elephantbody|wall]->cancel\n\n\n [ > R0 | wall ] -> cancel \n [ > R0 | R1 | wall ] -> cancel \n [ > R0 | R1 | R2 | wall ] -> cancel \n [ > R0 | R1 | R2 | R3 | wall ] -> cancel \n\n\n[ > R0 ] -> [ > R0 > force ]\n\n[ > R0 ] [ RobotPiece | wall ] -> [ > R0 ] [ RobotPiece < force| wall ]\n( [ > player | robotpiece | wall ] -> cancel )\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 ] -> [ RobotPiece Wall ] cancel\n[ > elephantbody | no elephantbody ] -> [ | elephantbody ]\n[RobotPiece elephantbody ] -> cancel\n\nright [elephantbody_anchor | no r0 ] -> cancel\n\n( [ > player | wall ] -> cancel )\n\n[targetarea]->[]\n[targetstrap]->[]\n\nright [||elephantbody_anchor|] -> [ targetarea|targetarea|elephantbody_anchor targetarea|targetarea]\n\ndown [ no targetarea | targetarea | no targetarea | ] -> [targetstrap targetarea | targetarea | targetarea | targetarea ]\n\n[goalarea RobotPiece no targetarea ] -> again sfx0 message AA! You can see his FUCKING DONG!\n\n\n==============\nWINCONDITIONS\n==============\n\nsome elephantbody_anchor on endbarrier\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\nmessage Cripes it just doesn't want to stay in a convenient position today.\n\n\n############################\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..........hh......,,,,},,,,\n#..........e;......,,,,},,,,\n#..........ee~.....,,,,},,,,\n#..........e'......,,,,},,,,\n#..........e.......,,,,},,,,\n#......#...e?......,,,,},,,,\n#..........$e......,,,,},,,,\n#..........$\"......,,,,},,,,\n#..........$e.3....,,,,},,,,\n#..........!e.2....,,,,},,,,\n#..........ee.1....,,,,},,,,\n#..........eea0....,,,,},,,,\n#..........%e&.....,,,,},,,,\n#...........e......,,,,},,,,\n#...........e......,,,,},,,,\n#...........e......,,,,},,,,\n#...........e......,,,,},,,,\n#...........ee.....,,,,},,,,\n#---------------------------\n\n\n\nmessage Time for a nice dip in the pool! Thanks for helping me adjust; that's what friends are for!\n\n\n\n", [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 0, 0, 1], "background wall1: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,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,background wall2:2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,\n1,1,background elephantbody_hair:3,background elephantbody_vanilla:4,4,4,4,4,background elephant_armhighlight:5,5,5,background elephant_armhighlight2:6,background elephantbody_vanilla targetarea targetstrap:7,background elephantbody_vanilla targetarea:8,background elephantbody_nose3 targetarea:9,background targetarea:10,1,1,1,1,1,1,1,1,2,0,1,1,\n1,1,1,1,1,1,1,3,background elephantbody_eye:11,4,background elephantbody_mouth:12,1,background elephantbody_nose2:13,4,background elephant_reddot:14,4,4,7,8,8,8,4,4,4,4,1,1,1,\n1,2,0,1,1,1,1,1,1,1,1,1,1,1,background elephantbody_nose:15,1,1,1,1,1,1,1,background targetarea targetstrap:16,background elephantbody_anchor targetarea:17,background elephantbody_bs targetarea:18,10,1,1,\n1,4,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,background connector_down connector_right r1_right targetarea targetstrap:19,\nbackground connector_up r0_up targetarea:20,10,10,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,background connector_left connector_right r2_right:21,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,background connector_left r3:22,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,2,0,background goalarea:23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,2,0,background endbarrier goalarea:24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,\n24,24,24,24,24,24,24,2,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,\n", 2, "1627893997860.5815"] ], [ - "Tugging a trapped pubic hair out from under one's foreskin", - ["title Tugging a trapped pubic hair out from under one's foreskin\nauthor increpare\nhomepage www.increpare.com\n\nnoaction\n\nbackground_color darkblue\n\ntext_color #d9a066\n\n(debug)\n(verbose_logging)\n\n========\nOBJECTS\n========\n\nBackground\n#306082\n\n\nskin\n#d9a066\n\ndarkskin\n#ba7d3f\n\nglans\n#d95763\n\npants\n#3f3f74\n\nselected\nyellow\n\n\nhair_core\nblack black\n.....\n..0..\n.010.\n..0..\n.....\n\nhair_up\nblack black\n.010.\n.010.\n.....\n.....\n.....\n\n\nhair_down\nblack black\n.....\n.....\n.....\n.010.\n.010.\n\nhair_left\nblack black\n.....\n00...\n11...\n00...\n.....\n\n\nhair_right\nblack black\n.....\n...00\n...11\n...00\n.....\n\nhair_root\nblack black\n.000.\n01110\n01110\n01110\n.000.\n\nhair_end \nred\n.....\n.....\n..0..\n.....\n.....\n\nretract\ntransparent\n\ndelve\ntransparent\n\nnewselection_horizontal\npink\n.....\n.....\n.000.\n.....\n.....\n\n\nnewselection_vertical\nlightgreen\n.....\n..0..\n..0..\n..0..\n.....\n\ninside\nred\n\nguide_up\nyellow\n..0..\n.....\n.....\n.....\n.....\n\nguide_down\nyellow\n.....\n.....\n.....\n.....\n..0..\n\nguide_left\nyellow\n.....\n.....\n0....\n.....\n.....\n\nguide_right\nyellow\n.....\n.....\n....0\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\nPlayer = selected\n\n& = inside and guide_down\n\n| = inside and guide_right\n\n{ = hair_core and hair_up and hair_end and inside and guide_down\n\\ = hair_core and hair_down and hair_end and inside and guide_down\n~ = hair_core and hair_up and hair_end and inside and guide_right\n` = hair_core and hair_left and hair_end and inside and guide_down\n¬ = hair_core and hair_right and hair_end and inside and guide_down\n\n} = hair_core and hair_up and hair_down and inside \n\n\n\nz = hair_core and hair_down and inside\nx = hair_core and hair_left and inside\nc = hair_core and hair_right and inside\n\n\nb = hair_core and hair_up and hair_left and inside\nn = hair_core and hair_up and hair_right and inside\n\nm = hair_core and hair_down and hair_left and inside\n: = hair_core and hair_down and hair_right and inside\n\n@ = hair_core and hair_left and hair_right and inside\n\n\n\n\n\n1 = hair_core and hair_up and hair_end\n2 = hair_core and hair_down\n3 = hair_core and hair_left \n4 = hair_core and hair_right\n\n\n5 = hair_core and hair_up and hair_down\n6 = hair_core and hair_up and hair_left\n7 = hair_core and hair_up and hair_right\n\n8 = hair_core and hair_down and hair_left\n9 = hair_core and hair_down and hair_right\n\n0 = hair_core and hair_left and hair_right\n\n\n\nq = hair_root and hair_up \nw = hair_root and hair_down \ne = hair_root and hair_left \nr = hair_root and hair_right \n\n\n\na = hair_core and hair_up and selected\ns = hair_core and hair_down and selected\nd = hair_core and hair_left and selected\nf = hair_core and hair_right and selected\n\n\ng = hair_core and hair_up and hair_down and selected\nh = hair_core and hair_up and hair_left and selected\nj = hair_core and hair_up and hair_right and selected\n\nk = hair_core and hair_down and hair_left and selected\nl = hair_core and hair_down and hair_right and selected\n\n; = hair_core and hair_left and hair_right and selected\n\n! = hair_core\n\n/ = hair_end and hair_down and hair_core \n\nhair_connection = hair_up or hair_down or hair_left or hair_right\n\nnewselection = newselection_horizontal or newselection_vertical\n\nguide = guide_up or guide_down or guide_left or guide_right\nwall = skin or glans or pants or darkskin\n\n# = skin\n% = darkskin\n\n\" = pants\n£ = glans\n\n=======\nSOUNDS\n=======\nstartlevel 3474903\nendlevel 99809305\nsfx0 22765907 (yank)\ncancel 68802704\nsfx1 53944706 (change selection)\n================\nCOLLISIONLAYERS\n================\n\nhair_end\nretract\ndelve\nguide\n\n\nnewselection_horizontal\nnewselection_vertical\n\nBackground\ninside\nselected\nWall\nhair_core, hair_root\nhair_up\nhair_down\nhair_left\nhair_right\n\n======\nRULES\n======\n\n[ down selected inside ] -> cancel\n[ left selected inside ] -> cancel\n[ right selected inside ] -> cancel\n\n\n [action player ] [hair_core no hair_connection | inside ] -> [action player ] [hair_core inside | inside ]\nup [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_up hair_core | hair_down ]\ndown [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_down hair_core | hair_up ]\nleft [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_left hair_core | hair_right ]\nright [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_right hair_core | hair_left ]\n\n[ down selected hair_end] -> cancel\n[ down selected hair_root] -> cancel\n\n(code for selected segment here)\n\ndown [ no selected | up selected | up selected ] -> [ no selected | selected newselection_horizontal | up selected ] sfx1\nup [ no selected | down selected | down selected ] -> [ no selected | selected newselection_horizontal | down selected ] sfx1\n\nleft [ no selected | right selected | right selected ] -> [ no selected | selected newselection_vertical | right selected ] sfx1\nright [ no selected | left selected | left selected ] -> [ no selected | selected newselection_vertical | left selected ] sfx1\n\n\n(if player is moving into an unconnected hair, then nope out)\nup [ > selected | hair_core no hair_down ] -> cancel\ndown [ > selected | hair_core no hair_up ] -> cancel\nleft [ > selected | hair_core no hair_right ] -> cancel\nright [ > selected | hair_core no hair_left ] -> cancel\n\n\n(removing existing selection)\n[ newselection ] [ selected ] -> [ newselection ] [ ]\n\n(grow new selection)\nright [ newselection_horizontal hair_right | ] -> [ newselection_horizontal hair_right | newselection_horizontal ]\nleft [ newselection_horizontal hair_left | ] -> [ newselection_horizontal hair_left | newselection_horizontal ]\n\nup [ newselection_vertical hair_up | ] -> [ newselection_vertical hair_up | newselection_vertical ]\ndown [ newselection_vertical hair_down | ] -> [ newselection_vertical hair_down | newselection_vertical ]\n\n\n\n[newselection]->[selected]\n\n\n\n\n\n(if player is reducing a lump, then remove some bits in the way )\n\t(either it's straight or it's bending away)\nleft [ > selected hair_left | hair_left hair_right hair_core ] -> [ > selected hair_left delve | ]\nleft [ > selected hair_left | hair_up hair_right hair_core ] -> [ > selected hair_up delve| ]\nleft [ > selected hair_left | hair_down hair_right hair_core ] -> [ > selected hair_down delve| ]\n\nright [ > selected hair_right | hair_right hair_left hair_core ] -> [ > selected hair_right delve | ]\nright [ > selected hair_right | hair_up hair_left hair_core ] -> [ > selected hair_up delve| ]\nright [ > selected hair_right | hair_down hair_left hair_core ] -> [ > selected hair_down delve| ]\n\n\n\ndown [ > selected hair_down | hair_down hair_up hair_core ] -> [ > selected hair_down delve | ]\ndown [ > selected hair_down | hair_right hair_up hair_core ] -> [ > selected hair_right delve| ]\ndown [ > selected hair_down | hair_left hair_up hair_core ] -> [ > selected hair_left delve| ]\n\n\n\nup [ > selected hair_up | hair_up hair_down hair_core ] -> [ > selected hair_up delve | ]\nup [ > selected hair_up | hair_right hair_down hair_core ] -> [ > selected hair_right delve| ]\nup [ > selected hair_up | hair_left hair_down hair_core ] -> [ > selected hair_left delve| ]\n\n(moves rest of hair with selection)\n[ > selected hair_connection hair_core ] -> [ > player > hair_connection > hair_core ]\n\n\n(if there's a gap, fill the gap)\nlate right [ hair_right | no hair_left | hair_left selected ] -> [ hair_right | hair_left hair_core hair_right retract| hair_left selected ]\nlate left [ hair_left | no hair_right | hair_right selected ] -> [ hair_left | hair_right hair_core hair_left retract| hair_right selected ]\nlate up [ hair_up | no hair_down | hair_down selected ] -> [ hair_up | hair_down hair_core hair_up retract| hair_down selected ]\nlate down [ hair_down | no hair_up | hair_up selected ] -> [ hair_down | hair_up hair_core hair_down retract| hair_up selected ]\n\n\nlate down [ retract ] [ hair_core hair_down | hair_core hair_up hair_end ] -> [] [ hair_core hair_end guide_down |] sfx0\n+late up [ retract ] [ hair_core hair_up | hair_core hair_down hair_end ] -> [] [ hair_core hair_end guide_up |] sfx0\n+late left [ retract ] [ hair_core hair_left | hair_core hair_right hair_end ] -> [] [ hair_core hair_end guide_left |] sfx0\n+late right [ retract ] [ hair_core hair_right | hair_core hair_left hair_end ] -> [] [ hair_core hair_end guide_right |] sfx0\n\nlate up [ delve ] [ hair_core hair_end guide_up | ] -> [] [ hair_core hair_up | hair_down hair_core hair_end] sfx0\n+late down [ delve ] [ hair_core hair_end guide_down | ] -> [] [ hair_core hair_down | hair_up hair_core hair_end] sfx0\n+late left [ delve ] [ hair_core hair_end guide_left | ] -> [] [ hair_core hair_left | hair_right hair_core hair_end] sfx0\n+late right [ delve ] [ hair_core hair_end guide_right | ] -> [] [ hair_core hair_right | hair_left hair_core hair_end] sfx0\n\nlate [hair_core wall ] -> cancel\n\n\n(Expand selection)\nlate up [ hair_up no selected | selected | selected ] -> [ hair_up selected | selected |selected ]\nlate down [ hair_down no selected | selected | selected ] -> [ hair_down selected | selected |selected ]\nlate left [ hair_left no selected | selected | selected ] -> [ hair_left selected | selected |selected ]\nlate right [ hair_right no selected | selected | selected ] -> [ hair_right selected | selected |selected ]\n\nlate [selected wall]->cancel\n\n\n==============\nWINCONDITIONS\n==============\n no hair_core on inside \n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"........\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"....908.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"....5.5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".9006.5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".5....5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".5...96.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".j;k.5..\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"...5.708............\"\"\"\"\"\"\"\n\"\".....5...5£££.£££...........\"\n\"..####q#.#}£££££££&#.######...\n\".#######.#}£££££££&#.#######..\n..#######.#}£££££££&#.#######..\n.########.#}£££££££&#.########.\n.########.#}£££££££&#.########.\n.#######..#}£££££££&#.########.\n.#######.#\\}£££££££&#.########.\n.#######.#}nm#####&&#.########.\n.#######.#n@b#####&&#.########.\n.#######..##########..########.\n.########..#########.#########.\n\nmessage Unnnh! So great!\n\nmessage Level 2 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"9000008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"5.....5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"5.....5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"7k.9006\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"9h.7008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"5908906\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"76.55..\"......\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"98.55...££.££..\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"...5706708£££££££..........\"\"\"\n\"\"..##q##.##}£££££££&#.######..\"\"\n\"\".#####.#:@b£££££££&#.#######.\"\"\n\"..#####.#n@m£££££££&#.#######..\"\n\".######.#:@b£££££££&#.########.\"\n\".######.#n@m£££££££&#.########.\"\n\".######..#:b£££££££&#.########.\"\n\".#######.#n@`#####&&#.########.\"\n\".#######..##########..########.\"\n\nmessage I feel so good!\n\nmessage Level 3 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"90008....908\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5...5....5.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5...5908.5.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"708.55.5.5.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"..5965.706.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"9065.7008..5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5..5....5.96\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5..7008.5.5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5.l;k.5.5.5..............\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"706.5.706.5.£££££.££££££...........\"\"\"\n\"\"..###q##.##}££££££££££££££|#.######..\"\"\n\"\".######.#:@b££££££££££££££|#.#######..\"\n\"..######.#n@m££££££££££££££|#.#######..\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######..##~||##########|||#.########.\"\n\".#########..################.#########.\"\n\n\nmessage I live for moments like this!\n\n\nmessage Level 4 of 5\n\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"900000008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"789890085\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".76769855\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".90085765\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".5.965906\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".78785708\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"..59678.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".lh7006.5......\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"..5.....96££.££.........\"\"\"\n\"\"..#q###.#nm£££££&#.#####..\"\"\n\"\".######.#:b£££££&#.######..\"\n\"..######.#nm£££££&#.######..\"\n\".#######.#:b£££££&#.#######.\"\n\".#######.#n`&###&&#.#######.\"\n\".#######..########..#######.\"\n\".########..######..########.\"\n\".#########.######.#########.\"\n\nmessage What a rush!\n\nmessage Level 5 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"...9008900008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"...5..55....5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"9006.965..906\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"789085.5985..\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\".76.5706576..\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\".lk.5.90698..........\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"...5706.70065££££.££££...........\"\"\"\n\"\"..##q#####.##}£££££££££&#.#######..\"\"\n\"\".########.#:@b£££££££££&#.########..\"\n\"..########.#n@m£££££££££&#.#########.\"\n\".#########.#:@b£££££££££&#.#########.\"\n\".#########.#n@m£££££££££&#.#########.\"\n\".#########.#:@b£££££££££&#.#########.\"\n\".#########.#n@m£££££££££&#.#########.\"\n\".#########.#:@b£££££££££&#.#########.\"\n\".#########.#~|||#######&&#.#########.\"\n\".##########.#############.##########.\"\n\nmessage Congratulations! You are pubic hair yanking champion of the universe!\n(\n###########\n#900000008#\n#789890085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########nm#\n########:b#\n########nm#\n########:b#\n########{##\n###########\n###########\n\n\nmessage Level 1\n###########\n#........##\n#....908.##\n#....5.5.##\n#.9006.5.##\n#.5....5.##\n#.5...96.##\n#.j;k.5..##\n#...5.708##\n#...5...5##\n####q###}##\n########}##\n########}##\n########}##\n########}##\n########}##\n########}##\n########{##\n########&##\n########&##\n###########\n\nmessage Level 2\n###########\n###########\n##l;;;;;k##\n##5.....5##\n##5.....5##\n##78.9006##\n##96.7008##\n##5908906##\n##76.55..##\n##98.55..##\n##5706708##\n##q#####}##\n########}##\n########}##\n########}##\n########{##\n########&##\n########&##\n###########\n\nmessage Level 3\n###########\n#900000008#\n#789890085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########nm#\n########:b#\n########nm#\n########:b#\n########{##\n###########\n###########\n\n\nmessage Level 4\n##############\n#90008....908#\n#5...5....5.5#\n#5...5908.5.5#\n#708.55.5.5.5#\n#..5965.706.5#\n#9065.7008..5#\n#5..5....5.96#\n#5..7008.5.5##\n#5.l;k.5.5.5##\n#706.5.706.5##\n#####q#####}##\n##########:b&#\n##########n@m#\n##########:@b#\n##########n@m#\n##########:@b#\n##########n@m#\n##########:@b#\n##########n@m#\n##########:@b#\n##########n@m#\n###########¬b#\n##############\n\n(hard)\nmessage Level 5\n###############\n#...9008900008#\n#...5..55....5#\n#9006.965..906#\n#789085.5985..#\n#.76.5706576..#\n#.lk.5.90698..#\n#.5706.70065..#\n##q########}###\n###########}:m#\n###########}}}#\n###########nb}#\n###########:m}#\n###########}nb#\n###########n@m#\n###########:@b#\n###########~||#\n###############\n\n(\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#...........##\n#...........##\n#..../......##\n#####q#####&##\n##########&&&#\n##########&&&#\n##########&&&#\n##########&&&#\n##############\n\n###########\n#900000008#\n#789890085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########nm#\n########:b#\n########nm#\n########cb#\n###########\n\n\n###########\n#900000008#\n#789890085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########}##\n########}##\n########}##\n########1##\n###########\n\n\n###############\n#...9008900008#\n#...5..55....5#\n#9006.965..906#\n#789085.5985..#\n#.76.5706576..#\n#.lk.5.90698..#\n#.5706.70065..#\n##q########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########{###\n###########&###\n###########&###\n###############\n###############\n\n\n\n###########\n###########\n##l;;;;;k##\n##5.....5##\n##5.....5##\n##5.....5##\n##5.....5##\n##5908906##\n##76.55..##\n##98.55..##\n##5706708##\n##q#####}##\n########}##\n########}##\n########}##\n########{##\n###########\n\n\n########### \n#.........#\n#...9008..#\n#...5..5..#\n#...7896..#\n#....55...#\n#.lk.55...#\n#.5706708.#\n##q#####5##\n########5##\n########5##\n########1##\n########.##\n###########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.lk......#\n#.5{!.....#\n##q#####.##\n########.##\n########.##\n########.##\n########.##\n###########\n\n###########\n#.........#\n#..9008...#\n#..7k.5...#\n#...g.5...#\n#...g.708.#\n#.90h...5.#\n#.5.....5.#\n##q#####}##\n########}##\n########}##\n########}##\n########{##\n###########\n))\n", [1, 3, 2, 1, 0, 2, 2, 3, 0, 3, 1, 0, 0, 0, 1, 0, 3, 3, 1, 1, 3, 2, 2, 1, 3, 3, 2, 1, 3, 1, 3, 2, 3, 2, 0, 3, 3, 2, 1, 0, 1, 3, 1, 1], "background pants: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,background:1,1,1,1,\n1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,background skin:2,2,2,2,2,2,2,2,2,2,0,background hair_core hair_down hair_right:3,background hair_core hair_right hair_up:4,1,1,1,1,1,3,background hair_core hair_down hair_up:5,\n4,1,2,2,2,2,2,2,2,2,2,2,2,2,0,background hair_core hair_left hair_right:6,background hair_core hair_down hair_left:7,5,5,5,5,5,background hair_core hair_left hair_up:8,1,6,2,2,2,2,2,2,2,2,2,2,2,2,2,0,background hair_core hair_down hair_left selected:9,background hair_core hair_down hair_up selected:10,\n10,10,10,10,10,background hair_core hair_right hair_up selected:11,1,6,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,1,1,1,1,6,3,8,2,2,2,2,2,2,2,2,2,\n2,2,2,2,0,1,1,1,1,1,1,1,6,7,5,background hair_root hair_up:12,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,3,5,5,4,1,6,1,1,2,2,\n2,2,2,2,2,2,2,2,2,2,2,0,1,1,6,1,1,6,1,7,5,4,2,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,7,5,4,\n6,1,1,1,6,1,2,2,2,2,2,2,2,2,2,2,1,2,0,1,1,1,1,6,6,1,1,1,6,2,background hair_core hair_down hair_right inside:13,background hair_core hair_right hair_up inside:14,13,14,13,14,13,14,13,14,2,\n1,0,3,5,5,5,8,7,5,5,5,8,2,background hair_core hair_left hair_right inside:15,15,15,15,15,15,15,15,15,15,2,1,0,6,1,1,1,1,1,3,5,5,5,background hair_core hair_down hair_up inside:16,background hair_core hair_left hair_up inside:17,background hair_core hair_down hair_left inside:18,17,18,\n17,18,17,18,17,18,14,2,0,7,5,5,5,5,5,8,1,1,1,background glans:19,19,19,19,19,19,19,19,19,19,19,15,2,0,0,0,0,0,0,0,0,0,\n1,19,19,19,19,19,19,19,19,19,19,19,19,background guide_right hair_core hair_end hair_left inside:20,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,\n0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,\n19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,1,19,\n19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,\n0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,\n2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,\n19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,background guide_right inside:21,2,0,0,0,0,0,0,0,0,\n0,1,1,19,19,19,19,19,19,19,19,19,19,19,21,2,0,0,0,0,0,0,0,0,0,0,1,21,21,21,21,21,21,21,21,21,21,21,21,2,0,\n0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,\n2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,\n0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,\n2,2,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,1,2,2,\n2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,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,0,0,0,0,0,0,0,\n", 7, "1627894024137.8354"] + "(NSFW / censored) Tugging a trapped XXX XXX out from under one's XXX", + ["title Tugging a trapped XXX XXX out from under one's XXX\nauthor increpare\nhomepage www.increpare.com\n\nnoaction\n\nbackground_color darkblue\n\ntext_color #ffffff\n\n(debug)\n(verbose_logging)\n\n========\nOBJECTS\n========\n\nBackground\n#ffffff\n\n\nskin\n#ffffff\n\ndarkskin\n#ffffff\n\nglans\n#ffffff\n\npants\n#ffffff\n\nselected\nyellow\n\n\nhair_core\nblack black\n00000\n00000\n00000\n00000\n00000\n\nhair_up\nblack black\n00000\n00000\n00000\n00000\n00000\n\n\nhair_down\nblack black\n00000\n00000\n00000\n00000\n00000\n\nhair_left\nblack black\n00000\n00000\n00000\n00000\n00000\n\n\nhair_right\nblack black\n00000\n00000\n00000\n00000\n00000\n\nhair_root\nblack black\n00000\n00000\n00000\n00000\n00000\n\nhair_end \nred\n00000\n00000\n00000\n00000\n00000\n\nretract\ntransparent\n\ndelve\ntransparent\n\nnewselection_horizontal\npink\n00000\n00000\n00000\n00000\n00000\n\n\nnewselection_vertical\nlightgreen\n00000\n00000\n00000\n00000\n00000\n\ninside\nred\n\nguide_up\nyellow\n00000\n00000\n00000\n00000\n00000\n\nguide_down\nyellow\n00000\n00000\n00000\n00000\n00000\n\nguide_left\nyellow\n00000\n00000\n00000\n00000\n00000\n\nguide_right\nyellow\n00000\n00000\n00000\n00000\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\nPlayer = selected\n\n& = inside and guide_down\n\n| = inside and guide_right\n\n{ = hair_core and hair_up and hair_end and inside and guide_down\n\\ = hair_core and hair_down and hair_end and inside and guide_down\n~ = hair_core and hair_up and hair_end and inside and guide_right\n` = hair_core and hair_left and hair_end and inside and guide_down\n¬ = hair_core and hair_right and hair_end and inside and guide_down\n\n} = hair_core and hair_up and hair_down and inside \n\n\n\nz = hair_core and hair_down and inside\nx = hair_core and hair_left and inside\nc = hair_core and hair_right and inside\n\n\nb = hair_core and hair_up and hair_left and inside\nn = hair_core and hair_up and hair_right and inside\n\nm = hair_core and hair_down and hair_left and inside\n: = hair_core and hair_down and hair_right and inside\n\n@ = hair_core and hair_left and hair_right and inside\n\n\n\n\n\n1 = hair_core and hair_up and hair_end\n2 = hair_core and hair_down\n3 = hair_core and hair_left \n4 = hair_core and hair_right\n\n\n5 = hair_core and hair_up and hair_down\n6 = hair_core and hair_up and hair_left\n7 = hair_core and hair_up and hair_right\n\n8 = hair_core and hair_down and hair_left\n9 = hair_core and hair_down and hair_right\n\n0 = hair_core and hair_left and hair_right\n\n\n\nq = hair_root and hair_up \nw = hair_root and hair_down \ne = hair_root and hair_left \nr = hair_root and hair_right \n\n\n\na = hair_core and hair_up and selected\ns = hair_core and hair_down and selected\nd = hair_core and hair_left and selected\nf = hair_core and hair_right and selected\n\n\ng = hair_core and hair_up and hair_down and selected\nh = hair_core and hair_up and hair_left and selected\nj = hair_core and hair_up and hair_right and selected\n\nk = hair_core and hair_down and hair_left and selected\nl = hair_core and hair_down and hair_right and selected\n\n; = hair_core and hair_left and hair_right and selected\n\n! = hair_core\n\n/ = hair_end and hair_down and hair_core \n\nhair_connection = hair_up or hair_down or hair_left or hair_right\n\nnewselection = newselection_horizontal or newselection_vertical\n\nguide = guide_up or guide_down or guide_left or guide_right\nwall = skin or glans or pants or darkskin\n\n# = skin\n% = darkskin\n\n\" = pants\n£ = glans\n\n=======\nSOUNDS\n=======\nstartlevel 3474903\nendlevel 99809305\nsfx0 22765907 (yank)\ncancel 68802704\nsfx1 53944706 (change selection)\n================\nCOLLISIONLAYERS\n================\n\nhair_end\nretract\ndelve\nguide\n\n\nnewselection_horizontal\nnewselection_vertical\n\nBackground\ninside\nselected\nWall\nhair_core, hair_root\nhair_up\nhair_down\nhair_left\nhair_right\n\n======\nRULES\n======\n\n[ down selected inside ] -> cancel\n[ left selected inside ] -> cancel\n[ right selected inside ] -> cancel\n\n\n [action player ] [hair_core no hair_connection | inside ] -> [action player ] [hair_core inside | inside ]\nup [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_up hair_core | hair_down ]\ndown [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_down hair_core | hair_up ]\nleft [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_left hair_core | hair_right ]\nright [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_right hair_core | hair_left ]\n\n[ down selected hair_end] -> cancel\n[ down selected hair_root] -> cancel\n\n(code for selected segment here)\n\ndown [ no selected | up selected | up selected ] -> [ no selected | selected newselection_horizontal | up selected ] sfx1\nup [ no selected | down selected | down selected ] -> [ no selected | selected newselection_horizontal | down selected ] sfx1\n\nleft [ no selected | right selected | right selected ] -> [ no selected | selected newselection_vertical | right selected ] sfx1\nright [ no selected | left selected | left selected ] -> [ no selected | selected newselection_vertical | left selected ] sfx1\n\n\n(if player is moving into an unconnected hair, then nope out)\nup [ > selected | hair_core no hair_down ] -> cancel\ndown [ > selected | hair_core no hair_up ] -> cancel\nleft [ > selected | hair_core no hair_right ] -> cancel\nright [ > selected | hair_core no hair_left ] -> cancel\n\n\n(removing existing selection)\n[ newselection ] [ selected ] -> [ newselection ] [ ]\n\n(grow new selection)\nright [ newselection_horizontal hair_right | ] -> [ newselection_horizontal hair_right | newselection_horizontal ]\nleft [ newselection_horizontal hair_left | ] -> [ newselection_horizontal hair_left | newselection_horizontal ]\n\nup [ newselection_vertical hair_up | ] -> [ newselection_vertical hair_up | newselection_vertical ]\ndown [ newselection_vertical hair_down | ] -> [ newselection_vertical hair_down | newselection_vertical ]\n\n\n\n[newselection]->[selected]\n\n\n\n\n\n(if player is reducing a lump, then remove some bits in the way )\n\t(either it's straight or it's bending away)\nleft [ > selected hair_left | hair_left hair_right hair_core ] -> [ > selected hair_left delve | ]\nleft [ > selected hair_left | hair_up hair_right hair_core ] -> [ > selected hair_up delve| ]\nleft [ > selected hair_left | hair_down hair_right hair_core ] -> [ > selected hair_down delve| ]\n\nright [ > selected hair_right | hair_right hair_left hair_core ] -> [ > selected hair_right delve | ]\nright [ > selected hair_right | hair_up hair_left hair_core ] -> [ > selected hair_up delve| ]\nright [ > selected hair_right | hair_down hair_left hair_core ] -> [ > selected hair_down delve| ]\n\n\n\ndown [ > selected hair_down | hair_down hair_up hair_core ] -> [ > selected hair_down delve | ]\ndown [ > selected hair_down | hair_right hair_up hair_core ] -> [ > selected hair_right delve| ]\ndown [ > selected hair_down | hair_left hair_up hair_core ] -> [ > selected hair_left delve| ]\n\n\n\nup [ > selected hair_up | hair_up hair_down hair_core ] -> [ > selected hair_up delve | ]\nup [ > selected hair_up | hair_right hair_down hair_core ] -> [ > selected hair_right delve| ]\nup [ > selected hair_up | hair_left hair_down hair_core ] -> [ > selected hair_left delve| ]\n\n(moves rest of hair with selection)\n[ > selected hair_connection hair_core ] -> [ > player > hair_connection > hair_core ]\n\n\n(if there's a gap, fill the gap)\nlate right [ hair_right | no hair_left | hair_left selected ] -> [ hair_right | hair_left hair_core hair_right retract| hair_left selected ]\nlate left [ hair_left | no hair_right | hair_right selected ] -> [ hair_left | hair_right hair_core hair_left retract| hair_right selected ]\nlate up [ hair_up | no hair_down | hair_down selected ] -> [ hair_up | hair_down hair_core hair_up retract| hair_down selected ]\nlate down [ hair_down | no hair_up | hair_up selected ] -> [ hair_down | hair_up hair_core hair_down retract| hair_up selected ]\n\n\nlate down [ retract ] [ hair_core hair_down | hair_core hair_up hair_end ] -> [] [ hair_core hair_end guide_down |] sfx0\n+late up [ retract ] [ hair_core hair_up | hair_core hair_down hair_end ] -> [] [ hair_core hair_end guide_up |] sfx0\n+late left [ retract ] [ hair_core hair_left | hair_core hair_right hair_end ] -> [] [ hair_core hair_end guide_left |] sfx0\n+late right [ retract ] [ hair_core hair_right | hair_core hair_left hair_end ] -> [] [ hair_core hair_end guide_right |] sfx0\n\nlate up [ delve ] [ hair_core hair_end guide_up | ] -> [] [ hair_core hair_up | hair_down hair_core hair_end] sfx0\n+late down [ delve ] [ hair_core hair_end guide_down | ] -> [] [ hair_core hair_down | hair_up hair_core hair_end] sfx0\n+late left [ delve ] [ hair_core hair_end guide_left | ] -> [] [ hair_core hair_left | hair_right hair_core hair_end] sfx0\n+late right [ delve ] [ hair_core hair_end guide_right | ] -> [] [ hair_core hair_right | hair_left hair_core hair_end] sfx0\n\nlate [hair_core wall ] -> cancel\n\n\n(Expand selection)\nlate up [ hair_up no selected | selected | selected ] -> [ hair_up selected | selected |selected ]\nlate down [ hair_down no selected | selected | selected ] -> [ hair_down selected | selected |selected ]\nlate left [ hair_left no selected | selected | selected ] -> [ hair_left selected | selected |selected ]\nlate right [ hair_right no selected | selected | selected ] -> [ hair_right selected | selected |selected ]\n\nlate [selected wall]->cancel\n\n\n==============\nWINCONDITIONS\n==============\n no hair_core on inside \n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"........\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"....908.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"....5.5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".9006.5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".5....5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".5...96.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".j;k.5..\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"...5.708............\"\"\"\"\"\"\"\n\"\".....5...5£££.£££...........\"\n\"..####q#.#}£££££££&#.######...\n\".#######.#}£££££££&#.#######..\n..#######.#}£££££££&#.#######..\n.########.#}£££££££&#.########.\n.########.#}£££££££&#.########.\n.#######..#}£££££££&#.########.\n.#######.#\\}£££££££&#.########.\n.#######.#}nm#####&&#.########.\n.#######.#n@b#####&&#.########.\n.#######..##########..########.\n.########..#########.#########.\n\nmessage Unnnh! So great!\n\nmessage Level 2 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"9000008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"5.....5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"5.....5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"7k.9006\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"9h.7008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"5908906\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"76.55..\"......\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"98.55...££.££..\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"...5706708£££££££..........\"\"\"\n\"\"..##q##.##}£££££££&#.######..\"\"\n\"\".#####.#:@b£££££££&#.#######.\"\"\n\"..#####.#n@m£££££££&#.#######..\"\n\".######.#:@b£££££££&#.########.\"\n\".######.#n@m£££££££&#.########.\"\n\".######..#:b£££££££&#.########.\"\n\".#######.#n@`#####&&#.########.\"\n\".#######..##########..########.\"\n\nmessage I feel so good!\n\nmessage Level 3 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"90008....908\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5...5....5.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5...5908.5.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"708.55.5.5.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"..5965.706.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"9065.7008..5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5..5....5.96\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5..7008.5.5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5.l;k.5.5.5..............\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"706.5.706.5.£££££.££££££...........\"\"\"\n\"\"..###q##.##}££££££££££££££|#.######..\"\"\n\"\".######.#:@b££££££££££££££|#.#######..\"\n\"..######.#n@m££££££££££££££|#.#######..\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######..##~||##########|||#.########.\"\n\".#########..################.#########.\"\n\n\nmessage I live for moments like this!\n\n\nmessage Level 4 of 5\n\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"900000008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"789890085\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".76769855\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".90085765\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".5.965906\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".78785708\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"..59678.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".lh7006.5......\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"..5.....96££.££.........\"\"\"\n\"\"..#q###.#nm£££££&#.#####..\"\"\n\"\".######.#:b£££££&#.######..\"\n\"..######.#nm£££££&#.######..\"\n\".#######.#:b£££££&#.#######.\"\n\".#######.#n`&###&&#.#######.\"\n\".#######..########..#######.\"\n\".########..######..########.\"\n\".#########.######.#########.\"\n\nmessage What a rush!\n\nmessage Level 5 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"...9008900008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"...5..55....5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"9006.965..906\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"789085.5985..\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\".76.5706576..\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\".lk.5.90698..........\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"...5706.70065££££.££££...........\"\"\"\n\"\"..##q#####.##}£££££££££&#.#######..\"\"\n\"\".########.#:@b£££££££££&#.########..\"\n\"..########.#n@m£££££££££&#.#########.\"\n\".#########.#:@b£££££££££&#.#########.\"\n\".#########.#n@m£££££££££&#.#########.\"\n\".#########.#:@b£££££££££&#.#########.\"\n\".#########.#n@m£££££££££&#.#########.\"\n\".#########.#:@b£££££££££&#.#########.\"\n\".#########.#~|||#######&&#.#########.\"\n\".##########.#############.##########.\"\n\nmessage Congratulations! You are XXX XXX yanking champion of the universe!\n(\n###########\n#ffffff008#\n#ffffff085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########nm#\n########:b#\n########nm#\n########:b#\n########{##\n###########\n###########\n\n\nmessage Level 1\n###########\n#........##\n#....908.##\n#....5.5.##\n#.9006.5.##\n#.5....5.##\n#.5...96.##\n#.j;k.5..##\n#...5.708##\n#...5...5##\n####q###}##\n########}##\n########}##\n########}##\n########}##\n########}##\n########}##\n########{##\n########&##\n########&##\n###########\n\nmessage Level 2\n###########\n###########\n##l;;;;;k##\n##5.....5##\n##5.....5##\n##78.9006##\n##96.7008##\n##ffffff6##\n##76.55..##\n##98.55..##\n##ffffff8##\n##q#####}##\n########}##\n########}##\n########}##\n########{##\n########&##\n########&##\n###########\n\nmessage Level 3\n###########\n#ffffff008#\n#ffffff085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########nm#\n########:b#\n########nm#\n########:b#\n########{##\n###########\n###########\n\n\nmessage Level 4\n##############\n#90008....908#\n#5...5....5.5#\n#5...5908.5.5#\n#708.55.5.5.5#\n#..5965.706.5#\n#9065.7008..5#\n#5..5....5.96#\n#5..7008.5.5##\n#5.l;k.5.5.5##\n#706.5.706.5##\n#####q#####}##\n##########:b&#\n##########n@m#\n##########:@b#\n##########n@m#\n##########:@b#\n##########n@m#\n##########:@b#\n##########n@m#\n##########:@b#\n##########n@m#\n###########¬b#\n##############\n\n(hard)\nmessage Level 5\n###############\n#...9008900008#\n#...5..55....5#\n#9006.965..906#\n#ffffff.5985..#\n#.76.5706576..#\n#.lk.5.90698..#\n#.5706.70065..#\n##q########}###\n###########}:m#\n###########}}}#\n###########nb}#\n###########:m}#\n###########}nb#\n###########n@m#\n###########:@b#\n###########~||#\n###############\n\n(\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#...........##\n#...........##\n#..../......##\n#####q#####&##\n##########&&&#\n##########&&&#\n##########&&&#\n##########&&&#\n##############\n\n###########\n#ffffff008#\n#ffffff085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########nm#\n########:b#\n########nm#\n########cb#\n###########\n\n\n###########\n#ffffff008#\n#ffffff085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########}##\n########}##\n########}##\n########1##\n###########\n\n\n###############\n#...9008900008#\n#...5..55....5#\n#9006.965..906#\n#ffffff.5985..#\n#.76.5706576..#\n#.lk.5.90698..#\n#.5706.70065..#\n##q########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########{###\n###########&###\n###########&###\n###############\n###############\n\n\n\n###########\n###########\n##l;;;;;k##\n##5.....5##\n##5.....5##\n##5.....5##\n##5.....5##\n##ffffff6##\n##76.55..##\n##98.55..##\n##ffffff8##\n##q#####}##\n########}##\n########}##\n########}##\n########{##\n###########\n\n\n########### \n#.........#\n#...9008..#\n#...5..5..#\n#...7896..#\n#....55...#\n#.lk.55...#\n#.5706708.#\n##q#####5##\n########5##\n########5##\n########1##\n########.##\n###########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.lk......#\n#.5{!.....#\n##q#####.##\n########.##\n########.##\n########.##\n########.##\n###########\n\n###########\n#.........#\n#..9008...#\n#..7k.5...#\n#...g.5...#\n#...g.708.#\n#.90h...5.#\n#.5.....5.#\n##q#####}##\n########}##\n########}##\n########}##\n########{##\n###########\n))\n", [1, 3, 2, 1, 0, 2, 2, 3, 0, 3, 1, 0, 0, 0, 1, 0, 3, 3, 1, 1, 3, 2, 2, 1, 3, 3, 2, 1, 3, 1, 3, 2, 3, 2, 0, 3, 3, 2, 1, 0, 1, 3, 1, 1], "background pants: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,background:1,1,1,1,\n1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,background skin:2,2,2,2,2,2,2,2,2,2,0,background hair_core hair_down hair_right:3,background hair_core hair_right hair_up:4,1,1,1,1,1,3,background hair_core hair_down hair_up:5,\n4,1,2,2,2,2,2,2,2,2,2,2,2,2,0,background hair_core hair_left hair_right:6,background hair_core hair_down hair_left:7,5,5,5,5,5,background hair_core hair_left hair_up:8,1,6,2,2,2,2,2,2,2,2,2,2,2,2,2,0,background hair_core hair_down hair_left selected:9,background hair_core hair_down hair_up selected:10,\n10,10,10,10,10,background hair_core hair_right hair_up selected:11,1,6,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,1,1,1,1,6,3,8,2,2,2,2,2,2,2,2,2,\n2,2,2,2,0,1,1,1,1,1,1,1,6,7,5,background hair_root hair_up:12,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,3,5,5,4,1,6,1,1,2,2,\n2,2,2,2,2,2,2,2,2,2,2,0,1,1,6,1,1,6,1,7,5,4,2,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,7,5,4,\n6,1,1,1,6,1,2,2,2,2,2,2,2,2,2,2,1,2,0,1,1,1,1,6,6,1,1,1,6,2,background hair_core hair_down hair_right inside:13,background hair_core hair_right hair_up inside:14,13,14,13,14,13,14,13,14,2,\n1,0,3,5,5,5,8,7,5,5,5,8,2,background hair_core hair_left hair_right inside:15,15,15,15,15,15,15,15,15,15,2,1,0,6,1,1,1,1,1,3,5,5,5,background hair_core hair_down hair_up inside:16,background hair_core hair_left hair_up inside:17,background hair_core hair_down hair_left inside:18,17,18,\n17,18,17,18,17,18,14,2,0,7,5,5,5,5,5,8,1,1,1,background glans:19,19,19,19,19,19,19,19,19,19,19,15,2,0,0,0,0,0,0,0,0,0,\n1,19,19,19,19,19,19,19,19,19,19,19,19,background guide_right hair_core hair_end hair_left inside:20,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,\n0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,\n19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,1,19,\n19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,\n0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,\n2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,\n19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,background guide_right inside:21,2,0,0,0,0,0,0,0,0,\n0,1,1,19,19,19,19,19,19,19,19,19,19,19,21,2,0,0,0,0,0,0,0,0,0,0,1,21,21,21,21,21,21,21,21,21,21,21,21,2,0,\n0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,\n2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,\n0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,\n2,2,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,1,2,2,\n2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,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,0,0,0,0,0,0,0,\n", 7, "1627894024137.8354"] ], [ "REALTIME DOG MOUNTAIN RESCUE", From 048bdb94f9e108b8ea81ddbd59fa4054926df1ee Mon Sep 17 00:00:00 2001 From: Stephen Lavelle Date: Fri, 8 Jul 2022 16:47:07 +0200 Subject: [PATCH 112/122] compile --- .build/buildnumber.txt | 2 +- src/standalone_inlined.txt | 331 +++++++++++++++++++++++++++---------- 2 files changed, 248 insertions(+), 85 deletions(-) diff --git a/.build/buildnumber.txt b/.build/buildnumber.txt index 00b4913f1..f9247955e 100644 --- a/.build/buildnumber.txt +++ b/.build/buildnumber.txt @@ -1 +1 @@ -1728 \ No newline at end of file +1732 \ No newline at end of file diff --git a/src/standalone_inlined.txt b/src/standalone_inlined.txt index 240f4f8b8..9697043dd 100644 --- a/src/standalone_inlined.txt +++ b/src/standalone_inlined.txt @@ -391,6 +391,8 @@ function logErrorNoLine(str){ function clearInputHistory() {} function pushInput(inp) {} +function pushSoundToHistory(seed) {} + diff --git a/src/games_dat.js b/src/games_dat.js index 099f0740d..99a95f2dc 100644 --- a/src/games_dat.js +++ b/src/games_dat.js @@ -1,206 +1,200 @@ var games_gallery = [ { - "url": "https://auroriax.itch.io/gridblocked", - "thumb": "plus_gridblocked.png", - "title": "Gridblocked", - "author": "Auroriax", - "homepage": "https://auroriax.itch.io/" + "url": "https://www.puzzlescript.net/play.html?p=6841165", + "thumb": "6841165.gif", + "title": "2D Whale World", + "author": "increpare", + "homepage": "www.increpare.com" }, { - "url": "https://minotalen.itch.io/bodenhorizont", - "thumb": "plus_bodenhorizont.png", - "title": "Bodenhorizont", - "author": "minotalen", - "homepage": "https://minotalen.itch.io/" + "url": "https://www.puzzlescript.net/play.html?p=6841219", + "thumb": "6841219.gif", + "title": "Microban", + "author": "David Skinner", + "homepage": "www.sneezingtiger.com/sokoban/levels/microbanText.html" }, { - "url": "https://minotalen.itch.io/pipetwist", - "thumb": "plus_pipetwist.png", - "title": "Pipe Twist", - "author": "minotalen", - "homepage": "https://minotalen.itch.io/" + "url": "https://www.puzzlescript.net/play.html?p=6841210", + "thumb": "6841210.gif", + "title": "Lime Rick", + "author": "Tommi Tuovinen", + "homepage": "https://www.kissmaj7.com/" }, { - "url": "https://minotalen.itch.io/crystalanomaly", - "thumb": "plus_anomaly.png", - "title": "Crystal Anomaly", - "author": "minotalen", - "homepage": "https://minotalen.itch.io/" + "url": "https://www.puzzlescript.net/play.html?p=6845074", + "thumb": "6845074.gif", + "title": "Multi-word Dictionary Game", + "author": "Sarah Northway", + "homepage": "www.sarahnorthway.com" }, { - "url": "https://boredmatt.itch.io/line-world", - "thumb": "plus_lineworld.gif", - "title": "Line World", - "author": "BoredMatt", - "homepage": "https://boredmatt.itch.io/" + "url": "https://www.puzzlescript.net/play.html?p=6878337", + "thumb": "6878337.gif", + "title": "Midas", + "author": "wanderlands", + "homepage": "www.wanderlands.org" }, { - "url": "https://boredmatt.itch.io/beams-and-flowers-2", - "thumb": "plus_beamsflowers.gif", - "title": "Beams and Flowers 2", - "author": "BoredMatt", - "homepage": "https://boredmatt.itch.io/" + "url": "https://www.puzzlescript.net/play.html?p=6847423", + "thumb": "6847423.gif", + "title": "It Dies In The Light", + "author": "Christopher Wells", + "homepage": "www.tophwells.com" }, { - "url": "https://boredmatt.itch.io/hex-road-blocks", - "thumb": "plus_hexroadblocks.gif", - "title": "Hex Road Blocks", - "author": "BoredMatt", - "homepage": "https://boredmatt.itch.io/" + "url": "https://www.puzzlescript.net/play.html?p=6846450", + "thumb": "6846450.gif", + "title": "Love and Pieces", + "author": "lexaloffle", + "homepage": "www.lexaloffle.com" }, { - "url": "https://vexorian.itch.io/kye-ps", - "thumb": "plus_kye.png", - "title": "Kye.ps", - "author": "vexorian", - "homepage": "https://vexorian.itch.io/" + "url": "https://www.puzzlescript.net/play.html?p=6860122", + "thumb": "6860122.gif", + "title": "Heroes of Sokoban", + "author": "Jonah Ostroff" }, { - "url": "https://stingby12.itch.io/simple-parallel-universe-game", - "thumb": "plus_spug.png", - "title": "Simple Parallel Universe Game", - "author": "Stingby12", - "homepage": "https://stingby12.itch.io/" + "url": "https://www.puzzlescript.net/play.html?p=6851495", + "thumb": "6851495.gif", + "title": "MC Escher's Equestrian Armageddon", + "author": "Anna Clarke" }, { - "url": "https://auroriax.github.io/PuzzleScript/play.html?p=ff57977aaf65938a33e7e224c807e2ef", - "thumb": "plus_stonehaven.png", - "title": "Stone Haven", - "author": "bregehr", - "homepage": "" + "url": "https://www.puzzlescript.net/play.html?p=6877049", + "thumb": "6877049.gif", + "title": "IceCrates", + "author": "Tyler Glaiel", + "homepage": "https://twitter.com/tylerglaiel" }, { - "url": "https://auroriax.github.io/PuzzleScript/play.html?p=669bd147a86d4011dcfafa6560172013", - "thumb": "plus_sokobandragged.png", - "title": "Sokoban: Dragged", - "author": "Jack Kutilek", - "homepage": "https://jackkutilek.itch.io/" + "url": "https://www.puzzlescript.net/play.html?p=6866423", + "thumb": "6866423.gif", + "title": "Dungeon Janitor", + "author": "Farbs", + "homepage": "www.farbs.org" }, { - "url": "https://auroriax.github.io/PuzzleScript/play.html?p=b7bd34b9e80fe29be270f01fc12ba35b", - "thumb": "plus_slideflipper.png", - "title": "SlideFlipper", - "author": "MinoMe", - "homepage": "" + "url": "https://www.puzzlescript.net/play.html?p=11358856", + "thumb": "11358856.gif", + "title": "Collapse", + "author": "Terry Cavanagh", + "homepage": "www.distractionware.com" }, { - "url": "https://jackkutilek.itch.io/conways-game-of-sokoban", - "thumb": "plus_conwaysokoban.gif", - "title": "Conway's Game of Sokoban", - "author": "Jack Kutilek", - "homepage": "https://jackkutilek.itch.io/" + "url": "https://www.puzzlescript.net/play.html?p=6877929", + "thumb": "6877929.gif", + "title": "Explod", + "author": "CHz", + "homepage": "https://quiteajolt.com/" }, { - "url": "https://auroriax.itch.io/ad-infinitum", - "thumb": "plus_adinfinitum.png", - "title": "Ad Infinitum", - "author": "Auroriax", - "homepage": "https://auroriax.itch.io/" + "url": "https://www.puzzlescript.net/play.html?p=fcf4b43ee6c679ef9389", + "thumb": "fcf4b43ee6c679ef9389.gif", + "title": "Cake Monsters", + "author": "Matt Rix", + "homepage": "www.magicule.com" }, { - "url": "https://rh9.itch.io/block-switch", - "thumb": "plus_blockswitch.png", - "title": "Block Switch", - "author": "RH9", - "homepage": "https://rh9.itch.io/" + "url": "https://www.puzzlescript.net/play.html?p=6878681", + "thumb": "6878681.gif", + "title": "Kettle", + "author": "stephen lavelle", + "homepage": "www.increpare.com" }, { - "url": "http://www.clickmazes.com/boxup/new-boxup.htm", - "thumb": "plus_boxup.png", - "title": "BoxUp", - "author": "Andrea Gilbert (clickmazes)", - "homepage": "http://www.clickmazes.com/index.htm" + "url": "https://www.puzzlescript.net/play.html?p=6879013", + "thumb": "6879013.gif", + "title": "Ebony & Ivory", + "author": "Guilherme T\u00f6ws", + "homepage": "zarat.us" }, { - "url": "https://auroriax.itch.io/magiciban", - "thumb": "plus_magiciban.png", - "title": "Magiciban", - "author": "Auroriax", - "homepage": "https://auroriax.itch.io/" + "url": "https://www.puzzlescript.net/play.html?p=9675709", + "thumb": "9675709.gif", + "title": "Bouncers", + "author": "Tyler Glaiel", + "homepage": "https://twitter.com/tylerglaiel" }, { - "url": "https://jackkutilek.itch.io/magicians-cat", - "thumb": "plus_magicianscat.png", - "title": "Magician's Cat", - "author": "Jack Kutilek", - "homepage": "https://jackkutilek.itch.io/" + "url": "https://www.puzzlescript.net/play.html?p=6880313", + "thumb": "6880313.gif", + "title": "The Legend of Zokoban", + "author": "Joshua Minor", + "homepage": "pixelverse.org" }, { - "url": "https://competor.itch.io/magicians-hat-witchs-hat", - "thumb": "plus_magicianwitchhat.png", - "title": "Magician's hat Witch's hat", - "author": "competor", - "homepage": "https://competor.itch.io/" + "url": "https://www.puzzlescript.net/play.html?p=9a76ddbe9e8f687c2a75", + "thumb": "9a76ddbe9e8f687c2a75.gif", + "title": "Dang I'm Huge", + "author": "Guilherme Tows", + "homepage": "zarat.us" }, { - "url": "https://competor.itch.io/cube", - "thumb": "plus_competorcube.png", - "title": "Cube", - "author": "competor", - "homepage": "https://competor.itch.io/" + "url": "https://www.puzzlescript.net/play.html?p=6893137", + "thumb": "6893137.gif", + "title": "tiny treasure hunt 1.0", + "author": "Weeble", + "homepage": "www.twitter.com/weeble" }, { - "url": "https://mariomak967.itch.io/stars-align", - "thumb": "plus_starsalign.png", - "title": "Stars Align", - "author": "MarioMak967", - "homepage": "https://mariomak967.itch.io/" + "url": "https://www.puzzlescript.net/play.html?p=6910207", + "thumb": "6910207.gif", + "title": "Heroes of Sokoban II: Monsters", + "author": "Jonah Ostroff" }, { - "url": "https://auroriax.github.io/PuzzleScript/play.html?p=e1d2c64c57911816acb115766a3ec090", - "thumb": "plus_puzzlesquad.png", - "title": "PuzzleSquad", - "author": "AlexB", - "homepage": "" + "url": "https://www.puzzlescript.net/play.html?p=6906326", + "thumb": "6906326.gif", + "title": "Sok7", + "author": "Kevin Cancienne", + "homepage": "https://twitter.com/potatojin" }, { - "url": "https://competor.itch.io/copernicus", - "thumb": "plus_copernicus.png", - "title": "Copernicus", - "author": "competor", - "homepage": "https://competor.itch.io" + "url": "https://www.puzzlescript.net/play.html?p=6902186", + "thumb": "6902186.gif", + "title": "Take Heart Lass", + "author": "Kevin Zuhn", + "homepage": "www.kevinzuhn.com" }, { - "url": "https://au-voleur.itch.io/microban-1", - "thumb": "plus_skinnermicroban1.png", - "title": "Microban I", - "author": "au voleur (levels by David W. Skinner)", - "homepage": "https://au-voleur.itch.io" + "url": "https://www.puzzlescript.net/play.html?p=6872613", + "thumb": "6872613.gif", + "title": "Ponies Jumping Synchronously", + "author": "vytah" }, { - "url": "https://auroriax.github.io/PuzzleScript/play.html?p=baf7a55d6879cf15362da9f4878f0890", - "thumb": "plus_23_lilypads.png", - "title": "23 Lily Pads", - "author": "Karoo", - "homepage": "https://karoo13.itch.io" + "url": "https://www.puzzlescript.net/play.html?p=9675998", + "thumb": "9675998.gif", + "title": "Closure Demake", + "author": "Tyler Glaiel", + "homepage": "www.closuregame.com" }, { - "url": "https://competor.itch.io/cookies-overlap-delicious", - "thumb": "plus_cookiesoverlapdelicious.png", - "title": "Cookies, Overlap, Delicious!", - "author": "competor", - "homepage": "https://competor.itch.io/" + "url": "https://www.puzzlescript.net/play.html?p=6976592", + "thumb": "6976592.gif", + "title": "Memories Of Castlemouse", + "author": "Wayne Myers", + "homepage": "www.conniptions.org" }, { - "url": "https://thinkycollective.itch.io/lab-rational-thinkings", - "thumb": "plus_labrat.png", - "title": "Lab Rat-ional Thinking", - "author": "Thinky Collective", - "homepage": "https://thinkycollective.itch.io/" + "url": "https://www.puzzlescript.net/play.html?p=6994394", + "thumb": "6994394.gif", + "title": "Atlas Shrank", + "author": "James Noeckel" }, { - "url": "https://thinkycollective.itch.io/flying-crowbar-factory-simulator-2022", - "thumb": "plus_crowbar.png", - "title": "Flying Crowbar Factory Simulator 2022", - "author": "Thinky Collective", - "homepage": "https://thinkycollective.itch.io/" + "url": "https://www.puzzlescript.net/play.html?p=6990366", + "thumb": "6990366.gif", + "title": "Colour Chained", + "author": "Dennis Au" }, { - "url": "https://karoo13.itch.io/sleight-of-hat", - "thumb": "plus_sleightofhat.png", - "title": "Sleight of Hat", - "author": "Karoo", - "homepage": "https://karoo13.itch.io" + "url": "https://www.sokobond.com/puzzlescript/", + "thumb": "sokobond.gif", + "title": "Sokobond: The Demake", + "author": "Jonah Ostroff", + "homepage": "https://www.sokobond.com/" }, { "url": "https://www.puzzlescript.net/play.html?p=7047165", @@ -399,11 +393,11 @@ var games_gallery = [ "homepage": "https://twitter.com/trevnewt" }, { - "url": "https://www.puzzlescript.net/play.html?p=d688de5e0e1e978f63fd", + "url": "https://www.puzzlescript.net/play.html?p=81b9430a6c09b355f6379c0f63beb04c", "thumb": "d688de5e0e1e978f63fd.gif", "title": "Marble Shoot", "author": "Stuart Burfield", - "homepage": "https://www.thepixelshelf.com" + "homepage": "https://www.stuartspixelgames.com" }, { "url": "https://www.draknek.org/games/puzzlescript/cyber-lasso.php", diff --git a/src/js/compiler.js b/src/js/compiler.js index 9655c7d43..3e3b594d9 100644 --- a/src/js/compiler.js +++ b/src/js/compiler.js @@ -565,7 +565,7 @@ function levelsToArray(state) { } var o; - if (level[0] == 'message') { + if (level[0] == 'message') { // PS+ o = { message: level[1], section: level[3] diff --git a/src/js/parser.js b/src/js/parser.js index eb124a92f..b32bdda5e 100644 --- a/src/js/parser.js +++ b/src/js/parser.js @@ -21,12 +21,19 @@ for post-launch credits, check out activty on github.com/increpare/PuzzleScript */ +const MAX_ERRORS_FOR_REAL=100; + var compiling = false; var errorStrings = [];//also stores warning strings var errorCount=0;//only counts errors - +// PS+ var twiddleable_params = ['background_color','text_color','key_repeat_interval','realtime_interval','again_interval','flickscreen','zoomscreen','smoothscreen','noundo','norestart','message_text_align']; //Please note that you have to add these twiddleable properties in more locations that just here! +function TooManyErrors(){ + consolePrint("Too many errors/warnings; aborting compilation.",true); + throw new Error("Too many errors/warnings; aborting compilation."); +} + function logErrorCacheable(str, lineNumber,urgent) { if (compiling||urgent) { if (lineNumber === undefined) { @@ -39,6 +46,9 @@ function logErrorCacheable(str, lineNumber,urgent) { consolePrint(errorString); errorStrings.push(errorString); errorCount++; + if (errorStrings.length>MAX_ERRORS_FOR_REAL){ + TooManyErrors(); + } } } } @@ -55,6 +65,9 @@ function logError(str, lineNumber,urgent) { consolePrint(errorString,true); errorStrings.push(errorString); errorCount++; + if (errorStrings.length>MAX_ERRORS_FOR_REAL){ + TooManyErrors(); + } } } } @@ -70,11 +83,14 @@ function logWarning(str, lineNumber,urgent) { } else { consolePrint(errorString,true); errorStrings.push(errorString); + if (errorStrings.length>MAX_ERRORS_FOR_REAL){ + TooManyErrors(); + } } } } -function logWarningNoLine(str,urgent, increaseErrorCount = true) { +function logWarningNoLine(str,urgent) { if (compiling||urgent) { var errorString = '' + str + ''; if (errorStrings.indexOf(errorString) >= 0 && !urgent) { @@ -85,6 +101,9 @@ function logWarningNoLine(str,urgent, increaseErrorCount = true) { } if (increaseErrorCount) { errorCount++; + if (errorStrings.length>MAX_ERRORS_FOR_REAL){ + TooManyErrors(); + } } } } @@ -98,11 +117,27 @@ function logErrorNoLine(str,urgent) { } else { consolePrint(errorString,true); errorStrings.push(errorString); + errorCount++; + if (errorStrings.length>MAX_ERRORS_FOR_REAL){ + TooManyErrors(); + } } - errorCount++; } } +// PS+ +function logBetaMessage(str,urgent){ + if (compiling||urgent) { + var errorString = '' + str + ''; + if (errorStrings.indexOf(errorString) >= 0 && !urgent) { + //do nothing, duplicate error + } else { + consoleError(errorString); + errorStrings.push(errorString); + } + } +} + function blankLineHandle(state) { if (state.section === 'levels') { if (state.levels[state.levels.length - 1].length > 0) @@ -195,21 +230,36 @@ var codeMirrorFn = function() { return; } } - - logError(`You're talking about ${candname.toUpperCase()} but it's not defined anywhere.`, state.lineNumber); + + logError(`You're talking about ${candname.toUpperCase()} but it's not defined anywhere.`, state.lineNumber); } - function registerOriginalCaseName(state,candname,mixedCase){ + // PS+ not used + // function searchStringInArray(str, strArray) { + // for (var j = 0; j < strArray.length; j++) { + // if (strArray[j] === str) { return j; } + // } + // return -1; + // } + + function registerOriginalCaseName(state,candname,mixedCase,lineNumber){ function escapeRegExp(str) { - return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); + return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); } - var nameFinder = new RegExp("\\b"+escapeRegExp(candname)+"\\b","i") + // PS+ + var nameFinder; + if (state.case_sensitive) { + nameFinder = new RegExp("\\b" + escapeRegExp(candname) + "\\b"); + } else { + nameFinder = new RegExp("\\b" + escapeRegExp(candname) + "\\b", "i"); + } var match = mixedCase.match(nameFinder); if (match!=null){ state.original_case_names[candname] = match[0]; - } + state.original_line_numbers[candname] = lineNumber; + } } const absolutedirs = ['up', 'down', 'right', 'left']; @@ -240,6 +290,11 @@ var codeMirrorFn = function() { const reg_winconditionquantifiers = /^(all|any|no|some)$/; const reg_keywords = /(checkpoint|objects|collisionlayers|legend|sounds|rules|winconditions|\.\.\.|levels|up|down|left|right|^|\||\[|\]|v|\>|\<|no|horizontal|orthogonal|vertical|any|all|no|some|moving|stationary|parallel|perpendicular|action|move|action|create|destroy|cantmove|sfx0|sfx1|sfx2|sfx3|Sfx4|sfx5|sfx6|sfx7|sfx8|sfx9|sfx10|cancel|checkpoint|restart|win|message|again|undo|restart|titlescreen|startgame|cancel|endgame|startlevel|endlevel|showmessage|closemessage)/; const keyword_array = ['checkpoint','objects', 'collisionlayers', 'legend', 'sounds', 'rules', '...','winconditions', 'levels','|','[',']','up', 'down', 'left', 'right', 'late','rigid', '^','v','\>','\<','no','randomdir','random', 'horizontal', 'vertical','any', 'all', 'no', 'some', 'moving','stationary','parallel','perpendicular','action','message', "move", "action", "create", "destroy", "cantmove", "sfx0", "sfx1", "sfx2", "sfx3", "Sfx4", "sfx5", "sfx6", "sfx7", "sfx8", "sfx9", "sfx10", "cancel", "checkpoint", "restart", "win", "message", "again", "undo", "restart", "titlescreen", "startgame", "cancel", "endgame", "startlevel", "endlevel", "showmessage", "closemessage"]; + // PS+ + const preamble_params = ['title', 'author', 'homepage', 'background_color', 'text_color', 'key_repeat_interval', 'realtime_interval', 'again_interval', 'flickscreen', 'zoomscreen', 'smoothscreen', 'color_palette', 'youtube', + 'sprite_size', 'level_select_unlocked_ahead', 'level_select_solve_symbol', 'custom_font', 'mouse_left', 'mouse_drag', 'mouse_right', 'mouse_rdrag', 'mouse_up', 'mouse_rup', 'local_radius', 'font_size', 'tween_length', "tween_easing", "tween_snap", "message_text_align", "text_controls", "text_message_continue", "level_select_unlocked_rollover", "sitelock_origin_whitelist", "sitelock_hostname_whitelist"]; + const preamble_keywords = ['run_rules_on_level_start', 'norepeat_action', 'require_player_movement', 'debug', 'verbose_logging', 'throttle_movement', 'noundo', 'noaction', 'norestart', 'scanline', + 'case_sensitive', 'level_select', 'continue_is_level_select', 'level_select_lock', 'settings', 'runtime_metadata_twiddling', 'runtime_metadata_twiddling_debug', 'smoothscreen_debug', 'skip_title_screen', 'nokeyboard']; function errorFallbackMatchToken(stream){ var match=stream.match(reg_match_until_commentstart_or_whitespace, true); @@ -247,16 +302,16 @@ var codeMirrorFn = function() { //just in case, I don't know for sure if it can happen but, just in case I don't //understand unicode and the above doesn't match anything, force some match progress. match=stream.match(reg_notcommentstart, true); - } - return match; } - + return match; + } + function processLegendLine(state, mixedCase){ var ok=true; var splits = state.current_line_wip_array; if (splits.length===0){ return; - } + } if (splits.length === 1) { logError('Incorrect format of legend - should be one of "A = B", "A = B or C [ or D ...]", "A = B and C [ and D ...]".', state.lineNumber); @@ -266,18 +321,18 @@ var codeMirrorFn = function() { ok=false; } else { var candname = splits[0]; - + var alreadyDefined = wordAlreadyDeclared(state,candname); if (alreadyDefined!==null){ logError(`Name "${candname.toUpperCase()}" already in use (on line line ${alreadyDefined.lineNumber}).`, state.lineNumber); ok=false; - } + } if (keyword_array.indexOf(candname)>=0) { logWarning('You named an object "' + candname.toUpperCase() + '", but this is a keyword. Don\'t do that!', state.lineNumber); } - - + + for (var i=2; i', 'moving','stationary','parallel','perpendicular', 'no']; - //var logicWords = ['all', 'no', 'on', 'some']; - var sectionNames = ['objects', 'legend', 'sounds', 'collisionlayers', 'rules', 'winconditions', 'levels']; - var commandwords = ["sfx0","sfx1","sfx2","sfx3","sfx4","sfx5","sfx6","sfx7","sfx8","sfx9","sfx10","cancel","checkpoint","restart","win","message","again","undo", - "nosave","quit","zoomscreen","flickscreen","smoothscreen","again_interval","realtime_interval","key_repeat_interval",'noundo','norestart','background_color','text_color','goto','message_text_align']; - - var reg_commands = /[\p{Z}\s]*(sfx0|sfx1|sfx2|sfx3|Sfx4|sfx5|sfx6|sfx7|sfx8|sfx9|sfx10|cancel|checkpoint|restart|win|message|again|undo|nosave)[\p{Z}\s]*/ui; - var reg_name = /[\p{L}\p{N}_]+[\p{Z}\s]*/u;///\w*[a-uw-zA-UW-Z0-9_]/; - var reg_number = /[\d]+/; - var reg_soundseed = /\d+\b/; - var reg_spriterow = /[\.0-9]{5}[\p{Z}\s]*/u; - var reg_sectionNames = /(objects|collisionlayers|legend|sounds|rules|winconditions|levels)(?![\p{L}\p{N}_])[\p{Z}\s]*/ui; - var reg_equalsrow = /[\=]+/; - var reg_notcommentstart = /[^\(]+/; - var reg_csv_separators = /[ \,]*/; - var reg_soundverbs = /(move|action|create|destroy|cantmove|undo|restart|titlescreen|startgame|cancel|endgame|startlevel|endlevel|showmessage|closemessage|sfx0|sfx1|sfx2|sfx3|sfx4|sfx5|sfx6|sfx7|sfx8|sfx9|sfx10)\b[\p{Z}\s]*/ui; - var reg_directions = /^(action|up|down|left|right|\^|v|\<|\>|moving|stationary|parallel|perpendicular|horizontal|orthogonal|vertical|no|randomdir|random)$/i; - var reg_loopmarker = /^(startloop|endloop)$/; - var reg_ruledirectionindicators = /^(up|down|left|right|horizontal|vertical|orthogonal|late|rigid)$/i; - var reg_sounddirectionindicators = /[\p{Z}\s]*(up|down|left|right|horizontal|vertical|orthogonal)(?![\p{L}\p{N}_])[\p{Z}\s]*/ui; - var reg_winconditionquantifiers = /^(all|any|no|some)$/i; - var reg_keywords = /(checkpoint|objects|collisionlayers|legend|sounds|rules|winconditions|\.\.\.|levels|up|down|left|right|^|\||\[|\]|v|\>|\<|no|horizontal|orthogonal|vertical|any|all|no|some|moving|stationary|parallel|perpendicular|action|nosave)/i; - var preamble_params = ['title','author','homepage','background_color','text_color','key_repeat_interval','realtime_interval','again_interval','flickscreen','zoomscreen','smoothscreen','color_palette','youtube', - 'sprite_size','level_select_unlocked_ahead','level_select_solve_symbol','custom_font', 'mouse_left','mouse_drag','mouse_right','mouse_rdrag','mouse_up','mouse_rup','local_radius','font_size', 'tween_length', "tween_easing", "tween_snap", "message_text_align", "text_controls", "text_message_continue", "level_select_unlocked_rollover", "sitelock_origin_whitelist", "sitelock_hostname_whitelist"]; - var preamble_keywords = ['run_rules_on_level_start','norepeat_action','require_player_movement','debug','verbose_logging','throttle_movement','noundo','noaction','norestart','scanline', - 'case_sensitive','level_select','continue_is_level_select','level_select_lock','settings', 'runtime_metadata_twiddling', 'runtime_metadata_twiddling_debug', 'smoothscreen_debug','skip_title_screen','nokeyboard']; - var keyword_array = ['checkpoint','objects', 'collisionlayers', 'legend', 'sounds', 'rules', '...','winconditions', 'levels','|','[',']','up', 'down', 'left', 'right', 'late','rigid', '^','v','\>','\<','no','randomdir','random', 'horizontal', 'vertical','any', 'all', 'no', 'some', 'moving','stationary','parallel','perpendicular','action','nosave','message','global','zoomscreen','flickscreen','smoothscreen','noundo','norestart','background_color','text_color','goto','message_text_align']; - - registerOriginalCaseName(state,newlegend[0],mixedCase); + + registerOriginalCaseName(state,newlegend[0],mixedCase,state.lineNumber); state.legend_aggregates.push(newlegend); - + } else if (splits[3]==='or'){ var malformed=true; @@ -384,7 +417,7 @@ var codeMirrorFn = function() { n = n.toLowerCase(); if (n in state.objects) { return [n]; - } + } for (var i=0;i= 0) { - logError('cannot duplicate sections (you tried to duplicate \"' + state.section + '").', state.lineNumber); + logError('cannot duplicate sections (you tried to duplicate \"' + state.section.toUpperCase() + '").', state.lineNumber); } state.line_should_end = true; state.line_should_end_because = `a section name ("${state.section.toUpperCase()}")`; @@ -724,13 +744,14 @@ var codeMirrorFn = function() { if (sectionIndex == 0) { state.objects_section = 0; if (state.visitedSections.length > 1) { - logError('section "' + state.section + '" must be the first section', state.lineNumber); + // PS+ to fix x3 + logError('section "' + state.section.toUpperCase() + '" must be the first section', state.lineNumber); } } else if (state.visitedSections.indexOf(sectionNames[sectionIndex - 1]) == -1) { if (sectionIndex===-1) { - logError('no such section as "' + state.section + '".', state.lineNumber); + logError('no such section as "' + state.section.toUpperCase() + '".', state.lineNumber); } else { - logError('section "' + state.section + '" is out of order, must follow "' + sectionNames[sectionIndex - 1] + '".', state.lineNumber); + logError('section "' + state.section.toUpperCase() + '" is out of order, must follow "' + sectionNames[sectionIndex - 1].toUpperCase() + '" (or it could be that the section "'+sectionNames[sectionIndex - 1].toUpperCase()+`"is just missing totally. You have to include all section headings, even if the section itself is empty).`, state.lineNumber); } } @@ -816,37 +837,42 @@ var codeMirrorFn = function() { var match_name = sol ? stream.match(reg_name, true) : stream.match(/[^\p{Z}\s\()]+[\p{Z}\s]*/u,true); if (match_name == null) { stream.match(reg_notcommentstart, true); - if (stream.pos>0){ - logWarning('Unknown junk in object section (possibly: the main names for objects have to be words containing only the letters a-z0.9 - if you want to call them something like ",", do it in the legend section).',state.lineNumber); + if (stream.pos>0){ + // PS+ to fix + logWarning('Unknown junk in object section (possibly: sprites have to be 5 pixels wide and 5 pixels high exactly. Or maybe: the main names for objects have to be words containing only the letters a-z0.9 - if you want to call them something like ",", do it in the legend section).',state.lineNumber); } return 'ERROR'; } else { var candname = match_name[0].trim(); if (state.objects[candname] !== undefined) { - logError('Object "' + candname + '" defined multiple times.', state.lineNumber); + // PS+ to fix + logError('Object "' + candname.toUpperCase() + '" defined multiple times.', state.lineNumber); return 'ERROR'; } for (var i=0;i=0) { - logWarning('You named an object "' + candname + '", but this is a keyword. Don\'t do that!', state.lineNumber); + // PS+ to fix + logWarning('You named an object "' + candname.toUpperCase() + '", but this is a keyword. Don\'t do that!', state.lineNumber); } if (sol) { state.objects_candname = candname; - registerOriginalCaseName(state,candname,mixedCase); + registerOriginalCaseName(state,candname,mixedCase,state.lineNumber); state.objects[state.objects_candname] = { lineNumber: state.lineNumber, colors: [], spritematrix: [], - cloneSprite: "" + cloneSprite: "" // PS+ }; } else { + // PS+ sprite copy //console.log(candname +" == "+ state.objects_candname); if (candname.substring(0, 5) == "copy:" && candname.length > 5) { var cloneName = candname.substring(5); @@ -863,12 +889,12 @@ var codeMirrorFn = function() { } } //set up alias - registerOriginalCaseName(state,candname,mixedCase); + registerOriginalCaseName(state,candname,mixedCase,state.lineNumber); var synonym = [candname,state.objects_candname]; synonym.lineNumber = state.lineNumber; state.legend_synonyms.push(synonym); - } - + } + // PS+ if(state.case_sensitive) { if((candname.toLowerCase() == "player" && candname != "player") || (candname.toLowerCase() == "background" && candname != "background")) { // setup aliases for special objects @@ -902,13 +928,15 @@ var codeMirrorFn = function() { case 2: { //LOOK FOR COLOR + // PS+ to fix stream.string = stream.string.toLowerCase(); state.tokenIndex = 0; var match_color = stream.match(reg_color, true); if (match_color == null) { var str = stream.match(reg_name, true) || stream.match(reg_notcommentstart, true); - logError('Was looking for color for object ' + state.objects_candname + ', got "' + str + '" instead.', state.lineNumber); + // PS+ to fix + logError('Was looking for color for object ' + state.objects_candname.toUpperCase() + ', got "' + str + '" instead.', state.lineNumber); return null; } else { if (state.objects[state.objects_candname].colors === undefined) { @@ -936,7 +964,8 @@ var codeMirrorFn = function() { if (spritematrix.length === 0) { return tryParseName(); } - logError('Unknown junk in spritematrix for object ' + state.objects_candname + '.', state.lineNumber); + // PS+ to fix + logError('Unknown junk in spritematrix for object ' + state.objects_candname.toUpperCase() + '.', state.lineNumber); stream.match(reg_notcommentstart, true); return null; } @@ -948,12 +977,14 @@ var codeMirrorFn = function() { var o = state.objects[state.objects_candname]; spritematrix[spritematrix.length - 1] += ch; + // PS+ to fix if (spritematrix[spritematrix.length-1].length>state.sprite_size){ logError('Sprites must be ' + state.sprite_size + ' wide and ' + state.sprite_size + ' high.', state.lineNumber); stream.match(reg_notcommentstart, true); return null; } o.spritematrix = state.objects_spritematrix; + // PS+ to fix if (spritematrix.length === state.sprite_size && spritematrix[spritematrix.length - 1].length == state.sprite_size) { state.objects_section = 0; } @@ -961,11 +992,13 @@ var codeMirrorFn = function() { if (ch!=='.') { var n = parseInt(ch); if (n>=o.colors.length) { - logError("Trying to access color number "+n+" from the color palette of sprite " +state.objects_candname+", but there are only "+o.colors.length+" defined in it.",state.lineNumber); + // PS+ to fix? + logError("Trying to access color number "+n+" from the color palette of sprite " +state.objects_candname.toUpperCase()+", but there are only "+o.colors.length+" defined in it.",state.lineNumber); return 'ERROR'; } if (isNaN(n)) { - logError('Invalid character "' + ch + '" in sprite for ' + state.objects_candname, state.lineNumber); + // PS+ to fix? + logError('Invalid character "' + ch + '" in sprite for ' + state.objects_candname.toUpperCase(), state.lineNumber); return 'ERROR'; } return 'COLOR BOLDCOLOR COLOR-' + o.colors[n].toUpperCase(); @@ -979,8 +1012,8 @@ var codeMirrorFn = function() { } break; } - case 'legend': - { + case 'legend': + { var resultToken=""; var match_name=null; if (state.tokenIndex === 0) { @@ -1022,7 +1055,7 @@ var codeMirrorFn = function() { if (candname !== state.current_line_wip_array[3]){ logError("Hey! You can't go mixing ANDs and ORs in a single legend entry.", state.lineNumber); resultToken = 'ERROR'; - } + } } } else { logError(`Expected and 'AND' or an 'OR' here, but got ${candname.toUpperCase()} instead. In the legend, define new items using the equals symbol - declarations must look like 'A = B' or 'A = B and C' or 'A = B or C'.`, state.lineNumber); @@ -1041,7 +1074,7 @@ var codeMirrorFn = function() { } else { var candname = match_name[0].trim(); if (wordAlreadyDeclared(state,candname)) - { + { resultToken = 'NAME'; } else { resultToken = 'ERROR'; @@ -1057,12 +1090,12 @@ var codeMirrorFn = function() { if (stream.eol()){ processLegendLine(state,mixedCase); - } + } return resultToken; break; - } - case 'sounds': + } + case 'sounds': { /* SOUND DEFINITION: @@ -1118,9 +1151,9 @@ var codeMirrorFn = function() { if (match !== null) { if (wordAlreadyDeclared(state, match[0])){ tokentype = 'NAME'; - } else { + } else { tokentype = 'ERROR'; - } + } } } @@ -1224,7 +1257,7 @@ var codeMirrorFn = function() { } else { match=errorFallbackMatchToken(stream); //depending on whether the verb is directional or not, we log different errors - logError(`Ah I were expecting direction or a sound seed here after ${state.current_line_wip_array[state.current_line_wip_array.length-1][0].toUpperCase()}, but I don't know what to make of "${match[0].trim().toUpperCase()}".`, state.lineNumber); + logError(`Ah I was expecting direction or a sound seed here after ${state.current_line_wip_array[state.current_line_wip_array.length-1][0].toUpperCase()}, but I don't know what to make of "${match[0].trim().toUpperCase()}".`, state.lineNumber); tokentype = 'ERROR'; state.current_line_wip_array.push("ERROR"); } @@ -1239,7 +1272,7 @@ var codeMirrorFn = function() { } else { match=errorFallbackMatchToken(stream); //depending on whether the verb is directional or not, we log different errors - logError(`Ah I were expecting a sound seed here after ${state.current_line_wip_array[state.current_line_wip_array.length-1][0].toUpperCase()}, but I don't know what to make of "${match[0].trim().toUpperCase()}".`, state.lineNumber); + logError(`Ah I was expecting a sound seed here after ${state.current_line_wip_array[state.current_line_wip_array.length-1][0].toUpperCase()}, but I don't know what to make of "${match[0].trim().toUpperCase()}".`, state.lineNumber); tokentype = 'ERROR'; state.current_line_wip_array.push("ERROR"); } @@ -1254,13 +1287,15 @@ var codeMirrorFn = function() { return tokentype; - break; - } + break; + } case 'collisionlayers': { if (sol) { //create new collision layer state.collisionLayers.push([]); + //empty current_line_wip_array + state.current_line_wip_array = []; state.tokenIndex=0; } @@ -1316,6 +1351,7 @@ var codeMirrorFn = function() { return result; } } + // PS+ to fix logError('Cannot add "' + candname + '" to a collision layer; it has not been declared.', state.lineNumber); return []; }; @@ -1336,19 +1372,23 @@ var codeMirrorFn = function() { } var foundOthers=[]; + var foundSelves=[]; for (var i=0;i=0){ - if (j!=state.collisionLayers.length-1){ + if (clj.indexOf(tcandname)>=0){ + if (j!==state.collisionLayers.length-1){ foundOthers.push(j); + } else { + foundSelves.push(j); } } } } if (foundOthers.length>0){ - var warningStr = 'Object "'+candname+'" included in multiple collision layers ( layers '; + // PS+ to fix + var warningStr = 'Object "'+candname.toUpperCase()+'" included in multiple collision layers ( layers '; for (var i=0;i=0){ + var warningStr = 'Object "'+candname.toUpperCase()+'" included explicitly multiple times in the same layer. Don\'t do that innit.'; + logWarning(warningStr,state.lineNumber); + } + state.current_line_wip_array.push(candname); + state.collisionLayers[state.collisionLayers.length - 1] = state.collisionLayers[state.collisionLayers.length - 1].concat(ar); if (ar.length>0) { return 'NAME'; @@ -1365,259 +1411,6 @@ var codeMirrorFn = function() { } break; } - case 'legend': - { - if (sol) { - - - //step 1 : verify format - var longer = stream.string.replace('=', ' = '); - longer = reg_notcommentstart.exec(longer)[0]; - - var splits = longer.split(/[\p{Z}\s]/u).filter(function(v) { - return v !== ''; - }); - var ok = true; - - if (splits.length>0) { - var candname = splits[0]; - if(!state.case_sensitive) { - candname = candname.toLowerCase(); - } - - if (keyword_array.indexOf(candname)>=0) { - logWarning('You named an object "' + candname + '", but this is a keyword. Don\'t do that!', state.lineNumber); - } - if (splits.indexOf(candname, 2)>=2) { - logError("You can't define object " + candname.toUpperCase() + " in terms of itself!", state.lineNumber); - var idx = splits.indexOf(candname, 2); - while (idx >=2){ - if (idx>=4){ - splits.splice(idx-1, 2); - } else { - splits.splice(idx, 2); - } - idx = splits.indexOf(candname, 2); - } - - // ok = false; - } - checkNameNew(state,candname); - } - - if (!ok) { - } else if (splits.length < 3) { - ok = false; - } else if (splits[1] !== '=') { - ok = false; - } /*else if (splits[0].charAt(splits[0].length - 1) == 'v') { - logError('names cannot end with the letter "v", because it\'s is used as a direction.', state.lineNumber); - stream.match(reg_notcommentstart, true); - return 'ERROR'; - } */ else if (splits.length === 3) { - var synonym = [splits[0], splits[2]]; - if(!state.case_sensitive) { - synonym[1] = synonym[1].toLowerCase(); - } - - synonym.lineNumber = state.lineNumber; - - registerOriginalCaseName(splits[0]); - state.legend_synonyms.push(synonym); - } else if (splits.length % 2 === 0) { - ok = false; - } else { - var lowertoken = splits[3].toLowerCase(); - if (lowertoken === 'and') { - - var substitutor = function(n) { - if(!state.case_sensitive) { - n = n.toLowerCase(); - } - if (n in state.objects) { - return [n]; - } - for (var i=0;i= 0) { if (sol) { - logError('Identifiers cannot appear outside of square brackets in rules, only directions can.', state.lineNumber); + logError('Objects cannot appear outside of square brackets in rules, only directions can.', state.lineNumber); return 'ERROR'; } else { stream.match(/[\p{Z}\s]*/u, true); @@ -1669,6 +1462,7 @@ var codeMirrorFn = function() { return 'DIRECTION'; } else if (m==='random') { return 'DIRECTION'; + // PS+ what is this??? } else if (m==='global') { return 'DIRECTION'; }else if (commandwords.indexOf(m)>=0) { @@ -1711,12 +1505,14 @@ var codeMirrorFn = function() { return 'LOGICWORD'; } else { + logError('Expecting the start of a win condition ("ALL","SOME","NO") but got "'+candword.toUpperCase()+"'.", state.lineNumber); return 'ERROR'; } } else if (state.tokenIndex === 2) { - if (candword.toLowerCase() != 'on') { - logError('Expecting the word "ON" but got "'+candword.toUpperCase()+"'.", state.lineNumber); + // PS+ to fix + if (candword != 'on') { + logError('Expecting the word "ON" but got "'+candword.toUpperCase()+"\".", state.lineNumber); return 'ERROR'; } else { return 'LOGICWORD'; @@ -1724,11 +1520,15 @@ var codeMirrorFn = function() { } else if (state.tokenIndex === 1 || state.tokenIndex === 3) { if (state.names.indexOf(candword)===-1) { + // PS+ to fix logError('Error in win condition: "' + candword + '" is not a valid object name.', state.lineNumber); return 'ERROR'; } else { return 'NAME'; } + } else { + logError("Error in win condition: I don't know what to do with "+candword.toUpperCase()+".", state.lineNumber); + return 'ERROR'; } } break; @@ -1737,13 +1537,10 @@ var codeMirrorFn = function() { { if (sol) { - // dmb merge problem? - //if (stream.match(/[\p{Z}\s]*message\b[\p{Z}\s]*/u, true)) { - // state.tokenIndex = -4;//-4/2 = message/level - // var newdat = ['\n', mixedCase.slice(stream.pos).trim(),state.lineNumber]; if (stream.match(/[\p{Z}\s]*message\b[\p{Z}\s]*/ui, true)) { - state.tokenIndex = 1;//1/2/3/4 = message/level/section/goto - var newdat = ['message', mixedCase.slice(stream.pos).trim(), state.lineNumber, state.currentSection]; + // PS+ -4/2/3/4 = message/level/section/goto ??? + state.tokenIndex = -4;//-4/2 = message/level + var newdat = ['message', mixedCase.slice(stream.pos).trim(),state.lineNumber]; if (state.levels[state.levels.length - 1].length == 0) { state.levels.splice(state.levels.length - 1, 0, newdat); } else { @@ -1752,16 +1549,16 @@ var codeMirrorFn = function() { return 'MESSAGE_VERB';//a duplicate of the previous section as a legacy thing for #589 } else if (stream.match(/[\p{Z}\s]*message[\p{Z}\s]*/ui, true)) {//duplicating previous section because of #589 logWarning("You probably meant to put a space after 'message' innit. That's ok, I'll still interpret it as a message, but you probably want to put a space there.",state.lineNumber); - // see above - // state.tokenIndex = 1;//1/2/3/4 = message/level/section/goto - // state.tokenIndex = -4;//-4/2 = message/level - var newdat = ['message', mixedCase.slice(stream.pos).trim(), state.lineNumber, state.currentSection]; + // PS+ //1/2/3/4 = message/level/section/goto??? + state.tokenIndex = -4;//-4/2 = message/level + var newdat = ['message', mixedCase.slice(stream.pos).trim(),state.lineNumber]; if (state.levels[state.levels.length - 1].length == 0) { state.levels.splice(state.levels.length - 1, 0, newdat); } else { state.levels.push(newdat); } return 'MESSAGE_VERB'; + // PS+ } else if (stream.match(/\s*section\s*/i, true)) { state.tokenIndex = 3;//1/2/3/4 = message/level/section/goto state.currentSection = mixedCase.slice(stream.pos).trim(); @@ -1792,11 +1589,13 @@ var codeMirrorFn = function() { if (lastlevel.length==0) { lastlevel.push(state.lineNumber); + // PS+ lastlevel.push(state.currentSection); } lastlevel.push(line); - if (lastlevel.length>2) + // PS+ + if (lastlevel.length>2) { if (line.length!=lastlevel[2].length) { logWarning("Maps must be rectangular, yo (In a level, the length of each row must be the same).",state.lineNumber); @@ -1809,6 +1608,7 @@ var codeMirrorFn = function() { if (state.tokenIndex == -4) { stream.skipToEnd(); return 'MESSAGE'; + // PS+ } else if (state.tokenIndex == 3) { stream.skipToEnd(); return 'SECTION'; @@ -1824,6 +1624,7 @@ var codeMirrorFn = function() { if (state.abbrevNames.indexOf(ch) >= 0) { return 'LEVEL'; } else { + // PS+ logError('Key "' + ch + '" not found. Do you need to add it to the legend, or define a new object?', state.lineNumber); return 'ERROR'; } @@ -1841,31 +1642,40 @@ var codeMirrorFn = function() { if (match!==null) { var token = match[0].trim(); if (sol) { - if (preamble_params.indexOf(token)>=0) { + // PS+ + if (preamble_params.indexOf(token)>=0) { - if (token==='author' || token==='homepage' || token==='title') { + // PS+ + if (token==='author' || token==='homepage' || token==='title' || token==='custom_font' || token==='text_controls' || token==='text_message_continue') { stream.string=mixedCase; } - + if (token==="youtube") { logWarning("Unfortunately, YouTube support hasn't been working properly for a long time - it was always a hack and it hasn't gotten less hacky over time, so I can no longer pretend to support it.",state.lineNumber); } - + var m2 = stream.match(reg_notcommentstart, false); - if(m2!=null) { + if(m2!==null) { + // PS+ if(token=='sprite_size') { state.sprite_size = parseInt(m2[0].trim(), 10); } else { state.metadata.push(token); state.metadata.push(m2[0].trim()); + if (token in state.metadata_lines){ + var otherline = state.metadata_lines[token]; + logWarning(`You've already defined a ${token.toUpperCase()} in the prelude on line =0) { + // PS+ + } else if (preamble_keywords.indexOf(token)>=0) { if(token == 'case_sensitive') { state.case_sensitive = true; @@ -1877,6 +1687,15 @@ var codeMirrorFn = function() { state.metadata.push(token); state.metadata.push("true"); state.tokenIndex=-1; + + + var m2 = stream.match(reg_notcommentstart, false); + + if(m2!==null) { + var extra = m2[0].trim(); + logWarning('MetaData '+token.toUpperCase()+' doesn\'t take any parameters, but you went and gave it "'+extra+'".',state.lineNumber); + } + return 'METADATA'; } else { logError('Unrecognised stuff in the prelude.', state.lineNumber); @@ -1890,11 +1709,35 @@ var codeMirrorFn = function() { } } else { stream.match(reg_notcommentstart, true); - return "METADATATEXT"; - } - break; - } - } + state.tokenIndex++; + + var key = state [state.metadata.length-3]; + var val = state.metadata[state.metadata.length-2]; + var oldLineNum = state.metadata[state.metadata.length-1]; + + if( state.tokenIndex>2){ + logWarning("Error: you can't embed comments in metadata values. Anything after the comment will be ignored.",state.lineNumber); + return 'ERROR'; + } + if (key === "background_color" || key === "text_color"){ + var candcol = val.trim().toLowerCase(); + if (candcol in colorPalettes.arnecolors) { + return 'COLOR COLOR-' + candcol.toUpperCase(); + } else if (candcol==="transparent") { + return 'COLOR FADECOLOR'; + } else if ( (candcol.length===4) || (candcol.length===7)) { + var color = candcol.match(/#[0-9a-fA-F]+/); + if (color!==null){ + return 'MULTICOLOR'+color[0]; + } + } + + } + return "METADATATEXT"; + } + break; + } + } if (stream.eol()) { @@ -1935,9 +1778,8 @@ var codeMirrorFn = function() { tokenIndex: 0, - current_line_wip_array: [], - currentSection: null, + current_line_wip_array: [], legend_synonyms: [], legend_aggregates: [], @@ -1950,12 +1792,14 @@ var codeMirrorFn = function() { winconditions: [], metadata: [], + metadata_lines: {}, sprite_size: 5, case_sensitive: false, original_case_names: {}, + original_line_numbers: {}, abbrevNames: [], diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index 7fbb39f5c..fc6635d96 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -32,10 +32,6 @@ var errormessage_testdata = [ `You can't have anything in with an ellipsis. Sorry.`, ["title Block Faker\nauthor Droqen\nhomepage www.droqen.com\n\nrequire_player_movement\nkey_repeat_interval 0.12\n\nbackground_color white\ntext_color black\n\ncolor_palette c64\n(\nA port of first several levels of Droqen's beautiful game:\n\nhttps://droqen.itch.io/block-faker\n\n(his game has secrets that this one does not)\n\n)\n\n========\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\nWallBlock\nBlack Grey\n01111\n01111\n01111\n01111\n00001\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 or WallBlock\nBlockObstacle = Player or Wall or WallBlock or Grille or Block or EndPoint\n. = Background\n# = Wall\n@ = WallBlock\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, WallBlock, PinkBlock, BlueBlock, PurpleBlock, OrangeBlock, GreenBlock\n\n======\nRULES\n======\n\n[ > Moveable | Moveable ] -> [ > Moveable | > Moveable ]\n\n[ > Block |... grille | Grille ] -> [ Block |... | Grille ]\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==============\nsome player on endpoint\n=======\nLEVELS\n=======\n\n........########\n################\n########@@@@@###\n####@@@@@...@###\n###@..OO....@@##\n##@..@@@@@....@#\n##@.@..@@@..E@@#\n#@..@.O...@@@@##\n##@...@.P.######\n####@.@@@@######\n####@@##########\n########........\n\nmessage congrats: level 2!\n\n##########\n####R.R###\n#x....#x##\n#xO#O.OxE#\n#xx##.#xx#\n#####R####\n#####P####\nO#########\n\nmessage congrats: level 3!\n\n......#######...\n.....##P.#####..\n....###....####.\n..#####O...#B..#\n..#####.#.##BB.#\n##EBB..O.O.....#\n..#####.#.#....#\n..######..#G.###\n....####..#.OOx.\n.....###.GG.#x..\n......#######...\n\nmessage congrats: level 4!\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\nmessage congrats: level 5!\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......##......\n\nmessage now go play the real game\n\n",["line 140 : You can't have anything in with an ellipsis. Sorry."],1] ], - [ - `You can't use two ellipses in a single cell match pattern.`, - ["title Block Faker\nauthor Droqen\nhomepage www.droqen.com\n\nrequire_player_movement\nkey_repeat_interval 0.12\n\nbackground_color white\ntext_color black\n\ncolor_palette c64\n(\nA port of first several levels of Droqen's beautiful game:\n\nhttps://droqen.itch.io/block-faker\n\n(his game has secrets that this one does not)\n\n)\n\n========\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\nWallBlock\nBlack Grey\n01111\n01111\n01111\n01111\n00001\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 or WallBlock\nBlockObstacle = Player or Wall or WallBlock or Grille or Block or EndPoint\n. = Background\n# = Wall\n@ = WallBlock\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, WallBlock, PinkBlock, BlueBlock, PurpleBlock, OrangeBlock, GreenBlock\n\n======\nRULES\n======\n\n[ > Moveable | Moveable ] -> [ > Moveable | > Moveable ]\n\n[ > Block |... | grille | ... | Grille ] -> [ Block |...| grille | ... | Grille ]\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==============\nsome player on endpoint\n=======\nLEVELS\n=======\n\n........########\n################\n########@@@@@###\n####@@@@@...@###\n###@..OO....@@##\n##@..@@@@@....@#\n##@.@..@@@..E@@#\n#@..@.O...@@@@##\n##@...@.P.######\n####@.@@@@######\n####@@##########\n########........\n\nmessage congrats: level 2!\n\n##########\n####R.R###\n#x....#x##\n#xO#O.OxE#\n#xx##.#xx#\n#####R####\n#####P####\nO#########\n\nmessage congrats: level 3!\n\n......#######...\n.....##P.#####..\n....###....####.\n..#####O...#B..#\n..#####.#.##BB.#\n##EBB..O.O.....#\n..#####.#.#....#\n..######..#G.###\n....####..#.OOx.\n.....###.GG.#x..\n......#######...\n\nmessage congrats: level 4!\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\nmessage congrats: level 5!\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......##......\n\nmessage now go play the real game\n\n",["line 140 : You can't use two ellipses in a single cell match pattern. If you really want to, please implement it yourself and send me a patch :)"],1] - ], [ `You named an object "^", but this is a keyword. Don't do that!`, ["title Microban\nauthor David Skinner\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\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^ = Target\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*O.#\n##.*P*.#\n#..O*O.#\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",["line 68 : You named an object \"^\", but this is a keyword. Don't do that!"],0] @@ -50,7 +46,7 @@ var errormessage_testdata = [ ], [ `Game title is too long to fit on screen, truncating to three lines.`, - ["title constellation z asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf \nauthor increpare\nhomepage www.increpare.com\n\n(a port of the first few levels of my game, the full version of which is\nhttp://ded.increpare.com/~locus/constellationz/\n)\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nBorderTile\nRed\n\nTeleport\nwhite\n\ntarget\nblue\n.....\n.000.\n.000.\n.000.\n.....\n\nPlayer\nPINK\n.....\n.000.\n.000.\n.000.\n.....\n\nAltPlayer\nBlack\n\n=======\nLEGEND\n=======\n\n# = BorderTile\n. = Background\nP = Player\nO = Teleport\nt = target\n\n\n=========\nSOUNDS\n=========\nsfx1 44641500 (teleport)\nstartgame 26858107\nstartlevel 34443107\nendlevel 34292905\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTeleport,BorderTile, target\nPlayer, AltPlayer\n\n======\nRULES\n======\n\nlate [ player Teleport ] -> [ altplayer Teleport ] sfx1\n\nlate [ altplayer Teleport ] [ Teleport no altplayer ] -> [altplayer teleport] [Teleport player ]\nlate [altplayer ] -> []\n\nlate [ player bordertile ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nsome player\nall player on target\nall target on player\n\n=======\nLEVELS\n=======\n\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#..P....t....#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#..P.o..O..t.#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\n##############\n#............#\n#............#\n#............#\n#............#\n#.......O.t..#\n#............#\n#..P....O....#\n#............#\n#.......O.t..#\n#............#\n#............#\n#............#\n##############\n\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#..P...O...t.#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\n\n##############\n#............#\n#............#\n#.......O.t..#\n#............#\n#.......O.t..#\n#............#\n#..P....O.t..#\n#............#\n#.......O.t..#\n#............#\n#.......O....#\n#............#\n##############\n\n###################################\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#..P.P.......OOOOOOOOO............#\n#................O........T.T.....#\n#..P.P.......O.O.O.O.O............#\n#.........................T.T.....#\n#............O.O.O.O.O............#\n#............O.......O............#\n#............OOOOOOOOO............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n###################################\n\n\n####################################\n#..................................#\n#...........p......................#\n#..................................#\n#.................o................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#............o....O....t.........t.#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\n\n####################################\n#..................................#\n#..................................#\n#....p.............................#\n#..................................#\n#..................................#\n#.......o....o....t....t....t......#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#.......o....o....t.........t......#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\n\n\n##############\n#............#\n#............#\n#............#\n#......o.....#\n#............#\n#......o.....#\n#............#\n#....o...o...#\n#............#\n#............#\n#............#\n#............#\n#......P.....#\n#............#\n#............#\n#....t...t...#\n#............#\n#....t.t.t...#\n#............#\n#....t...t...#\n#............#\n#............#\n#............#\n##############\n\n\n\n####################################\n#..................................#\n#..............tt...tt...tt........#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#.............o....o..o............#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#................pppp..............#\n#..................................#\n#..................................#\n####################################\n\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#.p..........#\n#.p..........#\n#.p..........#\n#.p..........#\n#.p....o.....#\n#.p..........#\n#.p....o..t..#\n#.p..........#\n#.p..........#\n#.p....o.....#\n#.p..........#\n#.p..........#\n#.p..........#\n#.p..........#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\nmessage congratulations!\n\n",["Game title is too long to fit on screen, truncating to three lines."],1] + ["title constellation z asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf \nauthor increpare\nhomepage www.increpare.com\n\n(a port of the first few levels of my game, the full version of which is\nhttp://ded.increpare.com/~locus/constellationz/\n)\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nBorderTile\nRed\n\nTeleport\nwhite\n\ntarget\nblue\n.....\n.000.\n.000.\n.000.\n.....\n\nPlayer\nPINK\n.....\n.000.\n.000.\n.000.\n.....\n\nAltPlayer\nBlack\n\n=======\nLEGEND\n=======\n\n# = BorderTile\n. = Background\nP = Player\nO = Teleport\nt = target\n\n\n=========\nSOUNDS\n=========\nsfx1 44641500 (teleport)\nstartgame 26858107\nstartlevel 34443107\nendlevel 34292905\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTeleport,BorderTile, target\nPlayer, AltPlayer\n\n======\nRULES\n======\n\nlate [ player Teleport ] -> [ altplayer Teleport ] sfx1\n\nlate [ altplayer Teleport ] [ Teleport no altplayer ] -> [altplayer teleport] [Teleport player ]\nlate [altplayer ] -> []\n\nlate [ player bordertile ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nsome player\nall player on target\nall target on player\n\n=======\nLEVELS\n=======\n\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#..P....t....#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#..P.o..O..t.#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\n##############\n#............#\n#............#\n#............#\n#............#\n#.......O.t..#\n#............#\n#..P....O....#\n#............#\n#.......O.t..#\n#............#\n#............#\n#............#\n##############\n\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#..P...O...t.#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\n\n##############\n#............#\n#............#\n#.......O.t..#\n#............#\n#.......O.t..#\n#............#\n#..P....O.t..#\n#............#\n#.......O.t..#\n#............#\n#.......O....#\n#............#\n##############\n\n###################################\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#..P.P.......OOOOOOOOO............#\n#................O........T.T.....#\n#..P.P.......O.O.O.O.O............#\n#.........................T.T.....#\n#............O.O.O.O.O............#\n#............O.......O............#\n#............OOOOOOOOO............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n###################################\n\n\n####################################\n#..................................#\n#...........p......................#\n#..................................#\n#.................o................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#............o....O....t.........t.#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\n\n####################################\n#..................................#\n#..................................#\n#....p.............................#\n#..................................#\n#..................................#\n#.......o....o....t....t....t......#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#.......o....o....t.........t......#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\n\n\n##############\n#............#\n#............#\n#............#\n#......o.....#\n#............#\n#......o.....#\n#............#\n#....o...o...#\n#............#\n#............#\n#............#\n#............#\n#......P.....#\n#............#\n#............#\n#....t...t...#\n#............#\n#....t.t.t...#\n#............#\n#....t...t...#\n#............#\n#............#\n#............#\n##############\n\n\n\n####################################\n#..................................#\n#..............tt...tt...tt........#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#.............o....o..o............#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#................pppp..............#\n#..................................#\n#..................................#\n####################################\n\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#.p..........#\n#.p..........#\n#.p..........#\n#.p..........#\n#.p....o.....#\n#.p..........#\n#.p....o..t..#\n#.p..........#\n#.p..........#\n#.p....o.....#\n#.p..........#\n#.p..........#\n#.p..........#\n#.p..........#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\nmessage congratulations!\n\n",["line 1 : Game title is too long to fit on screen, truncating to three lines."],0] ], [ `You probably meant to put a space after 'message' innit.`, @@ -162,7 +158,7 @@ var errormessage_testdata = [ ], [ `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.222.\n.323.\n.222.\n.222.\n.2.2.\n\nProtector\n#9CBD0F #8CAD0F #306230 #0F380F\n.333.\n.232.\n.333.\n.333.\n.3.3.\n\nProtectorSolo\n#9CBD0F #8CAD0F #306230 #0F380F\n.333.\n.232.\n.333.\n.333.\n.3.3.\n\nvictimSolo\n#9CBD0F #8CAD0F #306230 #0F380F\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\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",["line 168 : Object \"VICTIMSOLO\" included in multiple collision layers ( layers #4, #5 ). You should fix this!","line 168 : Object \"WALL\" included in multiple collision layers ( layers #4, #5 ). You should fix this!"],0] + ["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.222.\n.323.\n.222.\n.222.\n.2.2.\n\nProtector\n#9CBD0F #8CAD0F #306230 #0F380F\n.333.\n.232.\n.333.\n.333.\n.3.3.\n\nProtectorSolo\n#9CBD0F #8CAD0F #306230 #0F380F\n.333.\n.232.\n.333.\n.333.\n.3.3.\n\nvictimSolo\n#9CBD0F #8CAD0F #306230 #0F380F\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\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",["line 168 : Object \"PLAYER\" included in multiple collision layers ( layers #4, #5 ). You should fix this!","line 168 : Object \"WALL\" included in multiple collision layers ( layers #4, #5 ). You should fix this!"],0] ], [ `slidings`, @@ -485,7 +481,7 @@ var errormessage_testdata = [ ], [ "#805 untitled test (Error producing test)", - ["Objects are fun to use.\n\nBackground .\nBlack\n\nPlayer P\nGreen\n\nLEGEND\nSOUNDS\nCOLLISIONLAYERS\n\nBackground\nPlayer\n\nRULES\nWINCONDITIONS\n\nNo Fun\n\nLEVELS\n\nP...\n",["line 1 : Only comments should go after a section name (\"OBJECTS\") on a line.","line 19 : Error in win condition: \"FUN\" is not a valid object name.","line 19 : Unwelcome term \"fun\" found in win condition. Win conditions objects have to be objects or properties (defined using \"or\", in terms of other properties)"],3] + ["Objects are fun to use.\n\nBackground .\nBlack\n\nPlayer P\nGreen\n\nLEGEND\nSOUNDS\nCOLLISIONLAYERS\n\nBackground\nPlayer\n\nRULES\nWINCONDITIONS\n\nNo Fun\n\nLEVELS\n\nP...\n",["line 1 : Only comments should go after a section name (\"OBJECTS\") on a line.","line 19 : Error in win condition: \"FUN\" is not a valid object name.","line 19 : Unwelcome term \"fun\" found in win condition. I don't know what I'm supposed to do with this."],3] ], [ "#809 stress-test for legend+comments", @@ -517,7 +513,7 @@ var errormessage_testdata = [ ], [ "Testing error messages for incorrect semantic in the sounds section", - ["title Simple Block Pushing Game\nauthor David Skinner\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\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 up cat 31232\nCrate create up 31232\nCrate create cat 31232\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 67 : Ah I were expecting direction or a sound seed here after UP, but I don't know what to make of \"CAT\".","line 68 : Ah I were expecting a sound seed here after CREATE, but I don't know what to make of \"UP\".","line 69 : Ah I were expecting a sound seed here after CREATE, but I don't know what to make of \"CAT\"."],3] + ["title Simple Block Pushing Game\nauthor David Skinner\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\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 up cat 31232\nCrate create up 31232\nCrate create cat 31232\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 67 : Ah I was expecting direction or a sound seed here after UP, but I don't know what to make of \"CAT\".","line 68 : Ah I was expecting a sound seed here after CREATE, but I don't know what to make of \"UP\".","line 69 : Ah I was expecting a sound seed here after CREATE, but I don't know what to make of \"CAT\"."],3] ], [ "Sound section comment insertion stress test", @@ -527,4 +523,364 @@ var errormessage_testdata = [ "Sound effect already declared message", ["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 ten 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 234234 \nsfx0 3295707 (player jump)\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 10\n\n###################\n#.................#\n#.................#\n#............#....#\n#............#....#\n#.......#...##....#\n#..P....#...##..E.#\n###################\n###################\n..#...#...#...#...#\n#...#...#...#...#..\n###################\n###################\n###################\n###################\n\nmessage level 2 of 10\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 10\n\n###################\n#........#........#\n#........#........#\n###.............###\n#.................#\n#.....P.....E.....#\n#....###...###....#\n#..######.######..#\n#.......#.#.......#\n#.......###.......#\n###.............###\n#.................#\n#.................#\n######.......######\n###################\n\nmessage level 4 of 10\n\n###################\n#..#...........#..#\n#..#.....E.....#..#\n#..#....###....#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#.....P.....#..#\n###################\n\nmessage level 5 of 10\n\n###################\n#.................#\n#.................#\n#.................#\n#...C........C....#\n#..###......###...#\n#.................#\n#...P........E....#\n#########.##.#.####\n###################\n#.................#\n#.................#\n#.................#\n###################\n\nmessage level 6 of 10\n\n###################\n#..#.#....#..#....#\n#..#.#.E..#..######\n#########.#..#....#\n#....#..#.####....#\n#....#..#....######\n#########....#.#..#\n#....#..#....#.#..#\n#########.#########\n#....#....#..#....#\n######....#..#....#\n#.#..#....#########\n#.#..####.#..#..#.#\n#.#..#..#P#..#..#.#\n###################\n\nmessage level 7 of 10\n\n###################\n#.................#\n#...............C.#\n#............####.#\n#.................#\n#.......#...#.#...#\n#..P....#...#.#E..#\n#.###############.#\n#.###############.#\n#.#...#...#...#...#\n#...#...#...#...#.#\n###################\n#.................#\n#.................#\n###################\n\nmessage level 8 of 10\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 10\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 10\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#.E..........C....#\n####.##.....###...#\n#######.....###...#\n#.................#\n#.................#\n#...P.............#\n#..#############..#\n###################\n#.................#\n###################\n\n\nmessage congratulations!\n\n",["line 121 : SFX0 already declared."],0] ], -]; \ No newline at end of file + [ + "#855 Pushing It", + ["title Pushing It\nauthor Jack Lance\ntext_color #A20021\nbackground_color #C1FBC6A\nverbose_logging\nagain_interval 0.1\n\n========\nOBJECTS\n========\n\nBackground1\n#CCCCCC\n\nBackground2\n#C1FBC6\n\ncrateactivatedcoord00\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord01\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord02\ntransparent\n\ncrateactivatedcoord03\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord04\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord10\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord11\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord12\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord13\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord14\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord20\ntransparent\n\ncrateactivatedcoord21\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord22\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord23\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord24\ntransparent\n\ncrateactivatedcoord30\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord31\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord32\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord33\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord34\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord40\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord41\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord42\ntransparent\n\ncrateactivatedcoord43\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord44\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset1coord00\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord01\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord02\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord03\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord04\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord10\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord11\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord12\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord13\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord14\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord20\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord21\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord22\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord23\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord24\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord30\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord31\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord32\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord33\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord34\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord40\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord41\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord42\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord43\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord44\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset2coord00\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord01\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord02\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord03\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord04\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord10\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord11\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord12\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord13\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord14\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord20\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord21\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord22\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord23\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord24\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord30\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord31\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord32\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord33\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord34\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord40\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord41\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord42\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord43\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord44\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset3coord00\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord01\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord02\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord03\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord04\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord10\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord11\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord12\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord13\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord14\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord20\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord21\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord22\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord23\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord24\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord30\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord31\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord32\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord33\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord34\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord40\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord41\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord42\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord43\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord44\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset4coord00\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\n",["No collision layers defined. All objects need to be in collision layers.","you have to define something to be the background","error, didn't find any object called player, either in the objects section, or the legends section. there must be a player!","line 12 : Object \"BACKGROUND1\" has been defined, but not assigned to a layer.","line 15 : Object \"BACKGROUND2\" has been defined, but not assigned to a layer.","line 18 : Object \"CRATEACTIVATEDCOORD00\" has been defined, but not assigned to a layer.","line 26 : Object \"CRATEACTIVATEDCOORD01\" has been defined, but not assigned to a layer.","line 34 : Object \"CRATEACTIVATEDCOORD02\" has been defined, but not assigned to a layer.","line 37 : Object \"CRATEACTIVATEDCOORD03\" has been defined, but not assigned to a layer.","line 45 : Object \"CRATEACTIVATEDCOORD04\" has been defined, but not assigned to a layer.","line 53 : Object \"CRATEACTIVATEDCOORD10\" has been defined, but not assigned to a layer.","line 61 : Object \"CRATEACTIVATEDCOORD11\" has been defined, but not assigned to a layer.","line 69 : Object \"CRATEACTIVATEDCOORD12\" has been defined, but not assigned to a layer.","line 77 : Object \"CRATEACTIVATEDCOORD13\" has been defined, but not assigned to a layer.","line 85 : Object \"CRATEACTIVATEDCOORD14\" has been defined, but not assigned to a layer.","line 93 : Object \"CRATEACTIVATEDCOORD20\" has been defined, but not assigned to a layer.","line 96 : Object \"CRATEACTIVATEDCOORD21\" has been defined, but not assigned to a layer.","line 104 : Object \"CRATEACTIVATEDCOORD22\" has been defined, but not assigned to a layer.","line 112 : Object \"CRATEACTIVATEDCOORD23\" has been defined, but not assigned to a layer.","line 120 : Object \"CRATEACTIVATEDCOORD24\" has been defined, but not assigned to a layer.","line 123 : Object \"CRATEACTIVATEDCOORD30\" has been defined, but not assigned to a layer.","line 131 : Object \"CRATEACTIVATEDCOORD31\" has been defined, but not assigned to a layer.","line 139 : Object \"CRATEACTIVATEDCOORD32\" has been defined, but not assigned to a layer.","line 147 : Object \"CRATEACTIVATEDCOORD33\" has been defined, but not assigned to a layer.","line 155 : Object \"CRATEACTIVATEDCOORD34\" has been defined, but not assigned to a layer.","line 163 : Object \"CRATEACTIVATEDCOORD40\" has been defined, but not assigned to a layer.","line 171 : Object \"CRATEACTIVATEDCOORD41\" has been defined, but not assigned to a layer.","line 179 : Object \"CRATEACTIVATEDCOORD42\" has been defined, but not assigned to a layer.","line 182 : Object \"CRATEACTIVATEDCOORD43\" has been defined, but not assigned to a layer.","line 190 : Object \"CRATEACTIVATEDCOORD44\" has been defined, but not assigned to a layer.","line 198 : Object \"CRATEACTIVATEDYOFFSET1COORD00\" has been defined, but not assigned to a layer.","line 206 : Object \"CRATEACTIVATEDYOFFSET1COORD01\" has been defined, but not assigned to a layer.","line 214 : Object \"CRATEACTIVATEDYOFFSET1COORD02\" has been defined, but not assigned to a layer.","line 222 : Object \"CRATEACTIVATEDYOFFSET1COORD03\" has been defined, but not assigned to a layer.","line 230 : Object \"CRATEACTIVATEDYOFFSET1COORD04\" has been defined, but not assigned to a layer.","line 238 : Object \"CRATEACTIVATEDYOFFSET1COORD10\" has been defined, but not assigned to a layer.","line 246 : Object \"CRATEACTIVATEDYOFFSET1COORD11\" has been defined, but not assigned to a layer.","line 254 : Object \"CRATEACTIVATEDYOFFSET1COORD12\" has been defined, but not assigned to a layer.","line 262 : Object \"CRATEACTIVATEDYOFFSET1COORD13\" has been defined, but not assigned to a layer.","line 270 : Object \"CRATEACTIVATEDYOFFSET1COORD14\" has been defined, but not assigned to a layer.","line 278 : Object \"CRATEACTIVATEDYOFFSET1COORD20\" has been defined, but not assigned to a layer.","line 286 : Object \"CRATEACTIVATEDYOFFSET1COORD21\" has been defined, but not assigned to a layer.","line 294 : Object \"CRATEACTIVATEDYOFFSET1COORD22\" has been defined, but not assigned to a layer.","line 302 : Object \"CRATEACTIVATEDYOFFSET1COORD23\" has been defined, but not assigned to a layer.","line 310 : Object \"CRATEACTIVATEDYOFFSET1COORD24\" has been defined, but not assigned to a layer.","line 318 : Object \"CRATEACTIVATEDYOFFSET1COORD30\" has been defined, but not assigned to a layer.","line 326 : Object \"CRATEACTIVATEDYOFFSET1COORD31\" has been defined, but not assigned to a layer.","line 334 : Object \"CRATEACTIVATEDYOFFSET1COORD32\" has been defined, but not assigned to a layer.","line 342 : Object \"CRATEACTIVATEDYOFFSET1COORD33\" has been defined, but not assigned to a layer.","line 350 : Object \"CRATEACTIVATEDYOFFSET1COORD34\" has been defined, but not assigned to a layer.","line 358 : Object \"CRATEACTIVATEDYOFFSET1COORD40\" has been defined, but not assigned to a layer.","line 366 : Object \"CRATEACTIVATEDYOFFSET1COORD41\" has been defined, but not assigned to a layer.","line 374 : Object \"CRATEACTIVATEDYOFFSET1COORD42\" has been defined, but not assigned to a layer.","line 382 : Object \"CRATEACTIVATEDYOFFSET1COORD43\" has been defined, but not assigned to a layer.","line 390 : Object \"CRATEACTIVATEDYOFFSET1COORD44\" has been defined, but not assigned to a layer.","line 398 : Object \"CRATEACTIVATEDYOFFSET2COORD00\" has been defined, but not assigned to a layer.","line 406 : Object \"CRATEACTIVATEDYOFFSET2COORD01\" has been defined, but not assigned to a layer.","line 414 : Object \"CRATEACTIVATEDYOFFSET2COORD02\" has been defined, but not assigned to a layer.","line 422 : Object \"CRATEACTIVATEDYOFFSET2COORD03\" has been defined, but not assigned to a layer.","line 430 : Object \"CRATEACTIVATEDYOFFSET2COORD04\" has been defined, but not assigned to a layer.","line 438 : Object \"CRATEACTIVATEDYOFFSET2COORD10\" has been defined, but not assigned to a layer.","line 446 : Object \"CRATEACTIVATEDYOFFSET2COORD11\" has been defined, but not assigned to a layer.","line 454 : Object \"CRATEACTIVATEDYOFFSET2COORD12\" has been defined, but not assigned to a layer.","line 462 : Object \"CRATEACTIVATEDYOFFSET2COORD13\" has been defined, but not assigned to a layer.","line 470 : Object \"CRATEACTIVATEDYOFFSET2COORD14\" has been defined, but not assigned to a layer.","line 478 : Object \"CRATEACTIVATEDYOFFSET2COORD20\" has been defined, but not assigned to a layer.","line 486 : Object \"CRATEACTIVATEDYOFFSET2COORD21\" has been defined, but not assigned to a layer.","line 494 : Object \"CRATEACTIVATEDYOFFSET2COORD22\" has been defined, but not assigned to a layer.","line 502 : Object \"CRATEACTIVATEDYOFFSET2COORD23\" has been defined, but not assigned to a layer.","line 510 : Object \"CRATEACTIVATEDYOFFSET2COORD24\" has been defined, but not assigned to a layer.","line 518 : Object \"CRATEACTIVATEDYOFFSET2COORD30\" has been defined, but not assigned to a layer.","line 526 : Object \"CRATEACTIVATEDYOFFSET2COORD31\" has been defined, but not assigned to a layer.","line 534 : Object \"CRATEACTIVATEDYOFFSET2COORD32\" has been defined, but not assigned to a layer.","line 542 : Object \"CRATEACTIVATEDYOFFSET2COORD33\" has been defined, but not assigned to a layer.","line 550 : Object \"CRATEACTIVATEDYOFFSET2COORD34\" has been defined, but not assigned to a layer.","line 558 : Object \"CRATEACTIVATEDYOFFSET2COORD40\" has been defined, but not assigned to a layer.","line 566 : Object \"CRATEACTIVATEDYOFFSET2COORD41\" has been defined, but not assigned to a layer.","line 574 : Object \"CRATEACTIVATEDYOFFSET2COORD42\" has been defined, but not assigned to a layer.","line 582 : Object \"CRATEACTIVATEDYOFFSET2COORD43\" has been defined, but not assigned to a layer.","line 590 : Object \"CRATEACTIVATEDYOFFSET2COORD44\" has been defined, but not assigned to a layer.","line 598 : Object \"CRATEACTIVATEDYOFFSET3COORD00\" has been defined, but not assigned to a layer.","line 606 : Object \"CRATEACTIVATEDYOFFSET3COORD01\" has been defined, but not assigned to a layer.","line 614 : Object \"CRATEACTIVATEDYOFFSET3COORD02\" has been defined, but not assigned to a layer.","line 622 : Object \"CRATEACTIVATEDYOFFSET3COORD03\" has been defined, but not assigned to a layer.","line 630 : Object \"CRATEACTIVATEDYOFFSET3COORD04\" has been defined, but not assigned to a layer.","line 638 : Object \"CRATEACTIVATEDYOFFSET3COORD10\" has been defined, but not assigned to a layer.","line 646 : Object \"CRATEACTIVATEDYOFFSET3COORD11\" has been defined, but not assigned to a layer.","line 654 : Object \"CRATEACTIVATEDYOFFSET3COORD12\" has been defined, but not assigned to a layer.","line 662 : Object \"CRATEACTIVATEDYOFFSET3COORD13\" has been defined, but not assigned to a layer.","line 670 : Object \"CRATEACTIVATEDYOFFSET3COORD14\" has been defined, but not assigned to a layer.","line 678 : Object \"CRATEACTIVATEDYOFFSET3COORD20\" has been defined, but not assigned to a layer.","line 686 : Object \"CRATEACTIVATEDYOFFSET3COORD21\" has been defined, but not assigned to a layer.","line 694 : Object \"CRATEACTIVATEDYOFFSET3COORD22\" has been defined, but not assigned to a layer.","line 702 : Object \"CRATEACTIVATEDYOFFSET3COORD23\" has been defined, but not assigned to a layer.","line 710 : Object \"CRATEACTIVATEDYOFFSET3COORD24\" has been defined, but not assigned to a layer.","line 718 : Object \"CRATEACTIVATEDYOFFSET3COORD30\" has been defined, but not assigned to a layer.","line 726 : Object \"CRATEACTIVATEDYOFFSET3COORD31\" has been defined, but not assigned to a layer.","line 734 : Object \"CRATEACTIVATEDYOFFSET3COORD32\" has been defined, but not assigned to a layer.","line 742 : Object \"CRATEACTIVATEDYOFFSET3COORD33\" has been defined, but not assigned to a layer.","line 750 : Object \"CRATEACTIVATEDYOFFSET3COORD34\" has been defined, but not assigned to a layer.","line 758 : Object \"CRATEACTIVATEDYOFFSET3COORD40\" has been defined, but not assigned to a layer."],101] + ], + [ + "#863 Extended Bodies:Multiple Parallel Players, Multiple Extended Object", + ["title Extended Bodies:Multiple Parallel Players, Multiple Extended Object\nauthor Anonymous\nhomepage www.puzzlescript.net\n\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground \nwhite \n\nTarget \nDarkBlue \n\nWall \nDarkGrey\n\nPlayer\nBlue\n..0..\n..0.0\n00000\n.000.\n.0.0.\n\nShadow\nBlack\n..0..\n0.0..\n00000\n.000.\n.0.0.\n\n( three multi-cells blocks )\nCrate \norange\n\nChest\ngreen\n\nBox\nred\n\n( 1-cell small block )\nSmall\ndarkred\n.....\n.000.\n.000.\n.000.\n.....\n\n( sticky, multicellular block when in contact )\nGlue\npink\n.000.\n00000\n00000\n00000\n.000.\n\n( a flag to know what is allowed move )\nWanna_Move\n#ff00ff\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n( all things that can move and push blocks )\nMover = Player or Player \n\n. = Background\n# = Wall\nP = Player\nS = Shadow\n* = Crate\n+ = Box\n% = Chest\no = Small\ng = Glue\n\n( blocks that can be moved by the player )\nMovable = Crate or Box or Chest or Small or Glue\n\n\n( things that can stop a movement if they are stationary )\nObstacle = Wall or Mover\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nObstacle\nWanna_Move\nMovable\nShadow\n\n======\nRULES \n====== \n\n[ > player ] [ stationary shadow ] -> [ > player ] [ < shadow ]\n\n( 1. Propagate movements forward )\n[ > Mover | Movable ] -> [ > Mover | > Movable ]\n+ [ > Box ] [ Box ] -> [ > Box ] [ > Box ]\n+ [ > Crate ] [ Crate ] -> [ > Crate ] [ > Crate ]\n+ [ > Chest ] [ Chest ] -> [ > Chest ] [ > Chest ]\n+ [ moving Glue | Glue ] -> [ moving Glue | moving Glue ]\n\n( 2. Propagate obstructions backwards )\n[ > Mover | stationary Obstacle ] -> [ stationary Mover | Obstacle ]\n+ [ > Crate ] [ stationary Crate ] -> [ stationary Crate ] [ Crate ]\n+ [ > Box ] [ stationary Box ] -> [ stationary Box ] [ Box ]\n+ [ > Chest ] [ stationary Chest ] -> [ stationary Chest ] [ Chest ]\n+ [ moving Glue | stationary Glue ] -> [ stationary Glue | Glue ]\n\n( 3. remove all movement, keep a flag )\n[ > Movable ] -> [ Movable wanna_move ]\n\n( 4. propagate movement only on wanna_move things )\n( ie redo step 1 but with WANNA_MOVE added to the first line below )\n[ > Mover | Movable WANNA_MOVE ] -> [ > Mover | > Movable ]\n+ [ > Box ] [ Box ] -> [ > Box ] [ > Box ]\n+ [ > Crate ] [ Crate ] -> [ > Crate ] [ > Crate ]\n+ [ > Chest ] [ Chest ] -> [ > Chest ] [ > Chest ]\n+ [ moving Glue | Glue ] -> [ moving Glue | moving Glue ]\n\n( 5. cleanup, remove flag )\n[ wanna_move ] -> [ ]\n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\n###################\n#.................#\n#.................#\n#...*..g.g.#......#\n#...*......#...g###\n#...*...o.%%%.....#\n#...+++.o.%.......#\n#....+....%%%.....#\n#....+.....P...g..#\n#....p.gg.........#\n###################\n\n",["line 78 : You're repeating the object PLAYER here multiple times on the RHS. This makes no sense. Don't do that."],0] + ], + [ + "Startloop/endloop errors", + ["title Startloop/endloop errors\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\nstartloop\nstartloop\n[ > Player | Crate ] -> [ > Player | > Crate ] \nendloop\nendloop\nstartloop\n\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 82 : Found a STARTLOOP, but I'm already inside a loop? (Puzzlescript can't nest loops, FWIW).","line 84 : Found an ENDLOOP, but I'm not in a loop?","line 86 : Yo I found a STARTLOOP without a corresponding ENDLOOP."],3] + ], + [ + "You're talking about TAWETWAT but it's not defined anywhere", + ["\ntitle error message test\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\ntest = tawetwat\n=======\nSOUNDS\n=======\n\nCrate move 36772507\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\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 61 : You're talking about TAWETWAT but it's not defined anywhere."],1] + ], + [ + "broken legend syntax error", + ["title broken legend syntax error\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\nt\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 53 : Incorrect format of legend - should be one of \"A = B\", \"A = B or C [ or D ...]\", \"A = B and C [ and D ...]\"."],1] + ], + [ + "Cannot define an aggregate in terms of properties", + ["title Cannot define an aggregate in terms of properties\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n1 = crate or target\n2 = 1 and player\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 61 : Cannot define an aggregate (using 'and') in terms of properties (something that uses 'or').","Trying to define aggregate \"2\" in terms of property \"1\"."],2] + ], + [ + "Cannot define an property in terms of aggregates.", + ["title Cannot define an property in terms of aggregates\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n1 = crate and target\n2 = 1 or player\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 61 : Cannot define a property (something defined in terms of 'or') in terms of aggregates (something that uses 'and').","Trying to define property \"2\" in terms of aggregate \"1\"."],2] + ], + [ + "Cannot Duplicate Sections", + ["\ntitle Cannot Duplicate Sections\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 11 : cannot duplicate sections (you tried to duplicate \"OBJECTS\").","line 11 : section \"OBJECTS\" must be the first section"],2] + ], + [ + "OBJECTS must be the first section", + ["Died on test #1 at http://localhost:8000/src/tests/resources/tests.js:36:2: Error/Warning message testdata has wrong number of fields, invalid. Accidentally pasted in level recording data?\n\n\ntitle OBJECTS must be the first section\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nLEGEND\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 1 : Unrecognised stuff in the prelude.","line 8 : section \"LEGEND\" is out of order, must follow \"OBJECTS\" (or it could be that the section \"OBJECTS\"is just missing totally. You have to include all section headings, even if the section itself is empty).","line 11 : section \"OBJECTS\" must be the first section","line 55 : cannot duplicate sections (you tried to duplicate \"LEGEND\")."],4] + ], + [ + "WINCONDITIONS is out of order", + ["\n\ntitle WINCONDITIONS is out of order\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 77 : section \"WINCONDITIONS\" is out of order, must follow \"RULES\" (or it could be that the section \"RULES\"is just missing totally. You have to include all section headings, even if the section itself is empty)."],1] + ], + [ + "name B already in use", + ["\ntitle name B already in use\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground b\nlightgreen green\n11111\n01111\n11101\n11111\n10111\n\nb\nred\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 18 : Name \"B\" already in use.","line 18 : Object \"B\" has been defined, but not assigned to a layer."],2] + ], + [ + "Unknown junk in spritematrix", + ["\ntitle Unknown junk in spritematrix\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\n\nTarget\ndarkblue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nbrown darkbrown\n00010\n11111\n01000\n11A11\n00010\n\nPlayer\nblack orange white blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\norange\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 31 : Unknown junk in spritematrix for object WALL.","line 26 : Sprite graphics must be 5 wide and 5 high exactly."],1] + ], + [ + "In the legend, define new items using the equals symbol", + ["title In the legend, define new items using the equals symbol\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 53 : In the legend, define new items using the equals symbol - declarations must look like \"A = B\", \"A = B or C [ or D ...]\", \"A = B and C [ and D ...]\".","line 53 : Incorrect format of legend - should be one of \"A = B\", \"A = B or C [ or D ...]\", \"A = B and C [ and D ...]\", but it looks like you have a dangling \"ERROR\"?","line 90 : Key \".\" not found. Do you need to add it to the legend, or define a new object?","line 91 : Key \".\" not found. Do you need to add it to the legend, or define a new object?","line 92 : Key \".\" not found. Do you need to add it to the legend, or define a new object?","line 93 : Key \".\" not found. Do you need to add it to the legend, or define a new object?"],6] + ], + [ + "Something bad's happening in the LEGEND", + ["title Something bad's happening in the LEGEND\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate '\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 57 : Something bad's happening in the LEGEND"],1] + ], + [ + "Hey! You can't go mixing ANDs and ORs in a single legend entry.", + ["title Hey! You can't go mixing ANDs and ORs in a single legend entry.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target or Background\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 57 : Hey! You can't go mixing ANDs and ORs in a single legend entry."],1] + ], + [ + "Expected and 'AND' or an 'OR' here, but got POO instead.", + ["title Expected and 'AND' or an 'OR' here, but got POO instead.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate poo Target \nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n\n\n",["line 57 : Expected and 'AND' or an 'OR' here, but got POO instead. In the legend, define new items using the equals symbol - declarations must look like 'A = B' or 'A = B and C' or 'A = B or C'.","line 57 : This legend-entry is incorrectly-formatted - it should be one of A = B, A = B or C ( or D ...), A = B and C (and D ...)"],2] + ], + [ + "Was expecting a sound seed here", + ["title Was expecting a sound seed here\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nSfx0 123asdfa \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\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 64 : Was expecting a sound seed here (a number like 123123, like you generate by pressing the buttons above the console panel), but found something else."],1] + ], + [ + "Was expecting a sound event here", + ["title Was expecting a sound event here\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\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'\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\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 64 : Was expecting a sound event (like SFX3, or ENDLEVEL) or an object name, but didn't find either."],0] + ], + [ + "Was expecting a soundverb here", + ["title Was expecting a soundverb here\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate asdfasd 36772507\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\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 64 : Was expecting a soundverb here (MOVE, DESTROY, CANTMOVE, or the like), but found something else."],1] + ], + [ + "COLLISIONLAYERS - error detected - unexpected character ", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 70 : error detected - unexpected character '"],1] + ], + [ + "\"aggr\" is an aggregate (defined using \"and\"), and cannot be added to a single layer", + ["title \"aggr\" is an aggregate [defined using \"and\"], and cannot be added to a single layer\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\naggr = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\naggr\nPlayer, Wall\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 72 : \"aggr\" is an aggregate (defined using \"and\"), and cannot be added to a single layer because its constituent objects must be able to coexist.","line 57 : Object \"CRATE\" has been defined, but not assigned to a layer.","line 57 : Object \"TARGET\" has been defined, but not assigned to a layer.","line 58 : Object \"CRATE\" has been defined, but not assigned to a layer.","line 58 : Object \"TARGET\" has been defined, but not assigned to a layer.","line 17 : Object \"TARGET\" has been defined, but not assigned to a layer.","line 41 : Object \"CRATE\" has been defined, but not assigned to a layer."],7] + ], + [ + "Cannot add \"CAT\" to a collision layer; it has not been declared.", + ["title Cannot add \"CAT\" to a collision layer; it has not been declared.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground, cat\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\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 70 : Background must be in a layer by itself.","line 70 : Cannot add \"CAT\" to a collision layer; it has not been declared."],2] + ], + [ + "Background must be in a layer by itself.", + ["title Background must be in a layer by itself.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground, target\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\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 70 : Background must be in a layer by itself."],1] + ], + [ + "#2 Background must be in a layer by itself.", + ["title #2 Background must be in a layer by itself.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\n\ntarget, Background\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\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 71 : Background must be in a layer by itself."],1] + ], + [ + "no collision layers defined", + ["title No collision layers defined.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["No collision layers defined. All objects need to be in collision layers.","line 57 : Object \"CRATE\" has been defined, but not assigned to a layer.","line 57 : Object \"TARGET\" has been defined, but not assigned to a layer.","error, didn't find any object called player, either in the objects section, or the legends section. there must be a player!","you have to have a background layer"],5] + ], + [ + "Identifiers cannot appear outside of square brackets in rules", + ["title Identifiers cannot appear outside of square brackets in rules\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\nplayer [ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Objects cannot appear outside of square brackets in rules, only directions can.","line 78 : The start of a rule must consist of some number of directions (possibly 0), before the first bracket, specifying in what directions to look (with no direction specified, it applies in all four directions). It seems you've just entered \"PLAYER\"."],2] + ], + [ + "Name fasd, referred to in a rule, does not exist.", + ["title Name fasd, referred to in a rule, does not exist.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | fasd ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Name \"fasd\", referred to in a rule, does not exist.","line 78 : Error, malformed cell rule - was looking for cell contents, but found \"fasd\". What am I supposed to do with this, eh, please tell me that."],2] + ], + [ + "incorrect format of win condition", + ["title incorrect format of win condition\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target ' Crate \n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 84 : incorrect format of win condition."],1] + ], + [ + "Expecting the start of a win condition", + ["title Expecting the start of a win condition\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nfas\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 84 : Expecting the start of a win condition (\"ALL\",\"SOME\",\"NO\") but got \"FAS'.","line 84 : Unwelcome term \"84\" found in win condition. I don't know what I'm supposed to do with this."],2] + ], + [ + "Expecting the word ON but got CRATE", + ["title Expecting the word ON but got CRATE\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 84 : Expecting the word \"ON\" but got \"CRATE\"."],1] + ], + [ + "Key A not found", + ["title Key A not found\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..(fa)\n#..###\n#@P..#\n#..*a#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 92 : Key \"A\" not found. Do you need to add it to the legend, or define a new object?","line 92 : Error, symbol \"a\", used in map, not found."],2] + ], + [ + "Metadata needs a value", + ["title Metadata needs a value\nauthor David Skinner\nhomepage \n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..(fa)\n#..###\n#@P..#\n#..*a#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 3 : MetaData \"homepage\" needs a value.","line 92 : Key \"A\" not found. Do you need to add it to the legend, or define a new object?","line 92 : Error, symbol \"a\", used in map, not found."],3] + ], + [ + "a sprite cannot have more than 10 colors", + ["title a sprite cannot have more than 10 colors\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN GREEN GREEN GREEN GREEN GREEN GREEN GREEN GREEN 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\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[ > 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\n",["line 10 : a sprite cannot have more than 10 colors. Why you would want more than 10 is beyond me."],1] + ], + [ + "Object GREEN has been defined, but not assigned to a layer", + ["title Object GREEN has been defined, but not assigned to a layer\nauthor David Skinner\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\n00000\n0...0\n0...0\n0...0\n00000\n\ngreen\nblue\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[ > 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\n",["line 50 : Object \"GREEN\" has been defined, but not assigned to a layer."],1] + ], + [ + "ALMOST BLANK test", + ["========\nOBJECTS\n========\n\n\n=======\nLEGEND\n=======\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\n======\nRULES\n======\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n",["No collision layers defined. All objects need to be in collision layers.","you have to define something to be the background","error, didn't find any object called player, either in the objects section, or the legends section. there must be a player!","No levels found. Add some levels!"],4] + ], + [ + "BLANK FILE", + ["\n",["No collision layers defined. All objects need to be in collision layers.","you have to define something to be the background","error, didn't find any object called player, either in the objects section, or the legends section. there must be a player!","No levels found. Add some levels!"],4] + ], + [ + "background cannot be an aggregate", + ["title background cannot be an aggregate\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground1\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\nBackground2\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\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\nbackground = Background1 and Background2\n. = Background1\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\nBackground1\nBackground2\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 63 : background cannot be an aggregate (declared with 'and'), it has to be a simple type, or property (declared in terms of others using 'or')."],1] + ], + [ + "Background objects must be on the same layer", + ["title Background objects must be on the same layer\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground1\nlightgreen green\n11111\n01111\n11101\n11111\n10111\n\nbackground2\nblue\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\nbackground = Background1 or background2\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\n\nTarget, background1\nbackground2\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\n#\n\n",["line 56 : Background objects must be on the same layer"],1] + ], + [ + "Error, symbol A, used in map, not found", + ["title Error, symbol A, used in map, not found\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#Pa#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 100 : Key \"A\" not found. Do you need to add it to the legend, or define a new object?","line 100 : Error, symbol \"a\", used in map, not found."],2] + ], + [ + "Symbol is defined using OR, and therefore ambiguous - it cannot be used in a map. Did you mean to define it in terms of AND?", + ["title Symbol is defined using OR, and therefore ambiguous - it cannot be used in a map. Did you mean to define it in terms of AND?\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\na = Crate or Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#Pa#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 101 : Key \"A\" not found. Do you need to add it to the legend, or define a new object?","line 101 : Error, symbol \"a\" is defined using OR, and therefore ambiguous - it cannot be used in a map. Did you mean to define it in terms of AND?","line 1 : Game title is too long to fit on screen, truncating to three lines."],2] + ], + [ + "Message too long to fit on screen", + ["title Message too long to fit on screen\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage ajfoi wjoiefj ioaw jeiofj aiowefj oiawj eiofj oiawej foiawej oif jawoiefj oiaw ejoifj aweiof joiawej fioa jwoeipfj oipawe jfoipawj eoipfj apoiwe jfpio ajweiopf joipawe jfopiaw jeoipfj aoipwej foipawj eoipf joiapwe jfpioaw epoif jaiowpe jfoipaw ejoipfj aoipwef jipoawe jpfoi jawiopef jioawj eiofaj wopiefj oiapwej fo eiofaj wopiefj oiapwej fo eiofaj wopiefj oiapwej fo eiofaj wopiefj oiapwej fo\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 90 : Message too long to fit on screen."],0] + ], + [ + "A rule has to have an arrow in it.", + ["title A rule has to have an arrow in it.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : A rule has to have an arrow in it. There's no arrow here! Consider reading up about rules - you're clearly doing something weird","line 78 : Error, when specifying a rule, the number of matches (square bracketed bits) on the left hand side of the arrow must equal the number on the right"],2] + ], + [ + "The + symbol, for joining a rule with the group of the previous rule, needs a previous rule to be applied to", + ["title The + symbol, for joining a rule with the group of the previous rule, needs a previous rule to be applied to.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : The \"+\" symbol, for joining a rule with the group of the previous rule, needs a previous rule to be applied to."],1] + ], + [ + "The + symbol, for joining a rule with the group of the previous rule, must be the first symbol on the line", + ["title The + symbol, for joining a rule with the group of the previous rule, must be the first symbol on the line\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ ] -> [ ]\nup + [ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 79 : The \"+\" symbol, for joining a rule with the group of the previous rule, must be the first symbol on the line","line 1 : Game title is too long to fit on screen, truncating to three lines."],1] + ], + [ + "two +s appended to same rule", + ["title two +s appended to same rule\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ ] -> [ ]\n+ + [ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 79 : Two \"+\"s (the \"append to previous rule group\" symbol) applied to the same rule."],1] + ], + [ + "A rule-group can only be marked random by the opening rule in the group", + ["title A rule-group can only be marked random by the opening rule in the group\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ ] -> [ ]\n+ random [ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 79 : A rule-group can only be marked random by the opening rule in the group (aka, a '+' and 'random' can't appear as rule modifiers on the same line). Why? Well, you see \"random\" isn't a property of individual rules, but of whole rule groups. It indicates that a single possible application of some rule from the whole group should be applied at random."],1] + ], + [ + "You cannot use relative directions [^v<>] to indicate in which direction[s] a rule applies", + ["title You cannot use relative directions [^v<>] to indicate in which direction[s] a rule applies\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Name \"^\", referred to in a rule, does not exist.","line 78 : You cannot use relative directions (\"^v<>\") to indicate in which direction(s) a rule applies. Use absolute directions indicators (Up, Down, Left, Right, Horizontal, or Vertical, for instance), or, if you want the rule to apply in all four directions, do not specify directions"],2] + ], + [ + "The start of a rule must consist of some number of directions", + ["title The start of a rule must consist of some number of directions\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Name \"'\", referred to in a rule, does not exist.","line 78 : The start of a rule must consist of some number of directions (possibly 0), before the first bracket, specifying in what directions to look (with no direction specified, it applies in all four directions). It seems you've just entered \"'\"."],2] + ], + [ + "Error, malformed cell rule", + ["title Error, malformed cell rule \nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > [ Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Multiple opening brackets without closing brackets. Something fishy here. Every '[' has to be closed by a ']', and you can't nest them.","line 78 : Error, malformed cell rule - encountered a \"[\"\" before previous bracket was closed"],1] + ], + [ + "Invalid syntax. Directions should be placed at the start of a rule", + ["title Invalid syntax. Directions should be placed at the start of a rule\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] down -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Invalid syntax. Directions should be placed at the start of a rule."],0] + ], + [ + "Movements cannot appear in late rules.", + ["title Movements cannot appear in late rules.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\nlate [ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Movements cannot appear in late rules."],1] + ], + [ + "| should only be used inside cell rows", + ["title | should only be used inside cell rows\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] | -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Janky syntax. \"|\" should only be used inside cell rows (the square brackety bits)."],0] + ], + [ + "In a rule, if you specify a movement, it has to act on an object", + ["title In a rule, if you specify a movement, it has to act on an object.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ > | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : In a rule, if you specify a movement, it has to act on an object.","line 78 : In a rule, each pattern to match on the left must have a corresponding pattern on the right of equal length (number of cells)."],2] + ], + [ + "#2: In a rule, if you specify a movement, it has to act on an object", + ["title #2 In a rule, if you specify a movement, it has to act on an object.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : In a rule, if you specify a movement, it has to act on an object.","line 78 : Error, malformed cell rule - encountered a \"[\"\" before previous bracket was closed","line 78 : In a rule, each pattern to match on the left must have a corresponding pattern on the right of equal length (number of cells)."],3] + ], + [ + "Multiple closing brackets without corresponding opening brackets", + ["title Multiple closing brackets without corresponding opening brackets.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Multiple closing brackets without corresponding opening brackets. Something fishy here. Every '[' has to be closed by a ']', and you can't nest them.","line 78 : Error, when specifying a rule, the number of matches (square bracketed bits) on the left hand side of the arrow must equal the number on the right"],1] + ], + [ + "There's no point in putting an ellipsis at the very start or the end of a rule", + ["title There's no point in putting an ellipsis at the very start or the end of a rule\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ | ... ] -> [ | ]\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : There's no point in putting an ellipsis at the very start or the end of a rule"],1] + ], + [ + "An ellipsis on the right must be matched by one in the corresponding place on the left.", + ["title An ellipsis on the right must be matched by one in the corresponding place on the left.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ | ... ] -> [ ... | ]\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : An ellipsis on the right must be matched by one in the corresponding place on the left.","line 78 : There's no point in putting an ellipsis at the very start or the end of a rule"],2] + ], + [ + "You can't have anything in with an ellipsis. Sorry.", + ["title You can't have anything in with an ellipsis. Sorry.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ... ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : You can't have anything in with an ellipsis. Sorry."],1] + ], + [ + "RANDOM cannot be matched on the left-hand side", + ["title RANDOM cannot be matched on the left-hand side\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ random Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : RANDOM cannot be matched on the left-hand side, it can only appear on the right"],1] + ], + [ + "An ellipsis on the right must be matched by one in the corresponding place on the left.", + ["title An ellipsis on the right must be matched by one in the corresponding place on the left.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ ... | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : An ellipsis on the right must be matched by one in the corresponding place on the left."],1] + ], + [ + "123123 You can't have anything in with an ellipsis. Sorry.", + ["title 123123 You can't have anything in with an ellipsis. Sorry.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ crate ... | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : You can't have anything in with an ellipsis. Sorry."],1] + ], + [ + "This rule may try to spawn a WALL with random, but also requires a CRATE be here, which is on the same layer - they shouldn't be able to coexist!", + ["title This rule may try to spawn a WALL with random, but also requires a CRATE be here, which is on the same layer - they shouldn't be able to coexist!\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\nrange = crate or wall\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate random range ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 79 : This rule may try to spawn a WALL with random, but also requires a CRATE be here, which is on the same layer - they shouldn't be able to coexist!","line 1 : Game title is too long to fit on screen, truncating to three lines."],0] + ], + [ + "WALL and CRATE can never overlap, but this rule requires that to happen, so it's being culled.", + ["title WALL and CRATE can never overlap, but this rule requires that to happen, so it's being culled.\nauthor David Skinner\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\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[ > Player | Crate target wall ] -> [ > 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\n",["line 81 : WALL and CRATE can never overlap, but this rule requires that to happen, so it's being culled."],1] + ], + [ + "There can't be more than 30 rigid groups", + ["title There can't be more than 30 rigid groups\nauthor David Skinner\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\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\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > 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\n",["line 141 : There can't be more than 30 rigid groups (rule groups containing rigid members)."],1] + ], + [ + "error, didn't find any object called player", + ["title error, didn't find any object called player\nauthor David Skinner\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\nPlayer1\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player1\n* = Crate\n@ = Crate and Target\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer1, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player1 | Crate ] -> [ > Player1 | > 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\n",["error, didn't find any object called player, either in the objects section, or the legends section. there must be a player!"],1] + ], + [ + "I wasn't expecting anything after the sound declaration", + ["title I wasn't expecting anything after the sound declaration\nauthor David Skinner\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\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 asdasd\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 67 : I wasn't expecting anything after the sound declaration 36772507 on this line, so I don't know what to do with \"ASDASD\" here."],1] + ], + [ + "invalid text_color / background_color", + ["title invalid text_color / background_color\nauthor David Skinner\nhomepage www.puzzlescript.net\ntext_color 21r3r23r2\nbackground_color 21r3r23r2\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\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[ > 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\n",["line 4 : text_color in incorrect format - found 21r3r23r2, but I expect a color name (like 'pink') or hex-formatted color (like '#1412FA'). Defaulting to white.","line 5 : background_color in incorrect format - found 21r3r23r2, but I expect a color name (like 'pink') or hex-formatted color (like '#1412FA'). Defaulting to black."],2] + ], + [ + "Game title is too long to fit on screen, truncating to five lines.", + ["title Game title is too long to fit on screen, truncating to five lines.Simple Block Pushing Game Simple Block Pushing Game Simple Block Pushing Game Simple Block Pushing Game Simple Block Pushing Game Simple Block Pushing Game Simple Block Pushing Game\n\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 1 : Game title is too long to fit on screen, truncating to five lines."],0] + ], + [ + "Author list too long to fit on screen", + ["author David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 1 : Author list too long to fit on screen, truncating to three lines."],0] + ], + [ + "In this rule you're asking me to spawn a random CRATE for you, but that's already a concrete single object.", + ["title In this rule you're asking me to spawn a random CRATE for you, but that's already a concrete single object.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | random Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : In this rule you're asking me to spawn a random CRATE for you, but that's already a concrete single object. You wanna be using random with properties (things defined in terms of OR in the legend) so there's some things to select between.","line 1 : Game title is too long to fit on screen, truncating to three lines."],0] + ], + [ + "putting random before an aggregate has something funny, lol", + ["title putting random before an aggregate has something funny, lol\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\naggr = crate and target\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 | random aggr ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 82 : In this rule you're asking me to spawn a random CRATE for you, but that's already a concrete single object. You wanna be using random with properties (things defined in terms of OR in the legend) so there's some things to select between.","line 82 : In this rule you're asking me to spawn a random TARGET for you, but that's already a concrete single object. You wanna be using random with properties (things defined in terms of OR in the legend) so there's some things to select between."],0] + ], + [ + "MetaData DEBUG doesn't take any parameters, but you went and gave it", + ["title MetaData DEBUG doesn't take any parameters, but you went and gave it \ndebug baff\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 2 : MetaData DEBUG doesn't take any parameters, but you went and gave it \"baff\"."],0] + ], + [ + "metadata parameter errors Part 2", + ["title metadata parameter errors Part 2\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug asd\nnoaction asdf\nnorepeat_action asdf\nnoundo 4324\nnorestart nsfgn\nrequire_player_movement 123\nrun_rules_on_level_start 123\nscanline 4234\nthrottle_movement 434\nverbose_logging 232\n\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 5 : MetaData DEBUG doesn't take any parameters, but you went and gave it \"asd\".","line 6 : MetaData NOACTION doesn't take any parameters, but you went and gave it \"asdf\".","line 7 : MetaData NOREPEAT_ACTION doesn't take any parameters, but you went and gave it \"asdf\".","line 8 : MetaData NOUNDO doesn't take any parameters, but you went and gave it \"4324\".","line 9 : MetaData NORESTART doesn't take any parameters, but you went and gave it \"nsfgn\".","line 10 : MetaData REQUIRE_PLAYER_MOVEMENT doesn't take any parameters, but you went and gave it \"123\".","line 11 : MetaData RUN_RULES_ON_LEVEL_START doesn't take any parameters, but you went and gave it \"123\".","line 12 : MetaData SCANLINE doesn't take any parameters, but you went and gave it \"4234\".","line 13 : MetaData THROTTLE_MOVEMENT doesn't take any parameters, but you went and gave it \"434\".","line 14 : MetaData VERBOSE_LOGGING doesn't take any parameters, but you went and gave it \"232\"."],0] + ], + [ + "Error in win condition", + ["title Error in win condition\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 84 : Error in win condition: I don't know what to do with CRATE."],1] + ], + [ + "late+rigid rules", + ["title late+rigid rules\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\nlate rigid [ Player | Crate ] -> [ Player | ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Late rules cannot be marked as rigid (rigid rules are all about dealing with the consequences of unresolvable movements, and late rules can't even have movements)."],1] + ], + [ + "Duplicate prelude declarations", + ["title Duplicate prelude declarations\nauthor David Skinner\nhomepage www.puzzlescript.net\nhomepage www.puzzlescript.net\ndebug\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 4 : You've already defined a HOMEPAGE in the prelude on line"],0] + ], + [ + "flickscreen/zoomscreen formatting error #1", + ["title flickscreen/zoomscreen formatting error #1\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nzoomscreen 2ax10\nflickscreen 2ax10\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 6 : Couldn't understand the dimensions given to me (you gave \"2ax10\") - should be of the form AxB.","line 5 : Couldn't understand the dimensions given to me (you gave \"2ax10\") - should be of the form AxB."],0] + ], + [ + "flickscreen/zoomscreen formatting error #2", + ["title flickscreen/zoomscreen formatting error #2\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nzoomscreen 123\nflickscreen 123\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 6 : Dimensions must be of the form AxB.","line 5 : Dimensions must be of the form AxB."],0] + ], + [ + "Dimensions should be positive", + ["title Dimensions should be positive\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nflickscreen -1x-3\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 5 : The dimensions given to me (you gave \"-1x-3\") are baad - they should be > 0."],0] + ], + [ + "Dimensions should be positive and integral", + ["title Dimensions should be positive and integral\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nzoomscreen 0x4.23\nflickscreen 1.4x-4\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 6 : Wasn't able to make sense of \"1.4\" as a (whole number) dimension.","line 6 : The dimension given to me (you gave \"-4\") is baad - it should be greater than 0.","line 6 : Couldn't understand the dimensions given to me (you gave \"1.4x-4\") - should be of the form AxB.","line 5 : The dimension given to me (you gave \"0\") is baad - it should be greater than 0.","line 5 : Wasn't able to make sense of \"4.23\" as a (whole number) dimension.","line 5 : Couldn't understand the dimensions given to me (you gave \"0x4.23\") - should be of the form AxB."],0] + ], + [ + "Match 3 Block Push", + ["title Match 3 Block Push\nauthor increpare\nhomepage www.puzzlescript.net (hi) asfsadf (ho) r23r23r\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate [ Crate | Crate | 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.#O##..##\n##.##.*.#\n#.*..**.#\n#.OOO.#.#\n#.P.....#\n#########\n\n",["line 3 : Error: you can't embed comments in metadata values. Anything after the comment will be ignored."],0] + ], + [ + "Mixing late and non-late in rulegroups", + ["title Mixing late and non-late in rulegroups\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ player ]\n+ late [ crate ] -> [ player ]\n+ [ player ] -> [ crate ]\n\n\nlate [ crate ] -> [ player ]\n+ [ player ] -> [ crate ]\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 82 : Oh gosh you can mix late and non-late rules in a rule-group if you really want to, but gosh why would you want to do that? What do you expect to accomplish?","line 83 : Oh gosh you can mix late and non-late rules in a rule-group if you really want to, but gosh why would you want to do that? What do you expect to accomplish?","line 87 : Oh gosh you can mix late and non-late rules in a rule-group if you really want to, but gosh why would you want to do that? What do you expect to accomplish?"],0] + ], + [ + "loop points in the middle of rule-groups", + ["title loop points in the middle of rule-groups\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ player ]\nstartloop\n+ [ crate ] -> [ player ]\n+ [ player ] -> [ crate ]\n\n\n[ crate ] -> [ player ]\nendloop\n+ [ player ] -> [ crate ]\n\n\nstartloop\n[]->[]\n+ [] -> []\nendloop\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 82 : Found a loop point in the middle of a rule. You probably don't want to do this, right?","line 88 : Found a loop point in the middle of a rule. You probably don't want to do this, right?"],0] + ], + [ + "can declare the same object to be on a layer multiple times #770", + ["title can declare the same object to be on a layer multiple times #770\nauthor increpare\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground (special, automatically placed in its own layer)\ngreen darkgreen\n11111\n01111\n11101\n11111\n10111\n\nPlayer (Required by game)\npink\n..0..\n00000\n..0..\n.000.\n.0.0.\n\nRobot\ngray black red\n.000.\n.200.\n...0.\n00000\n01010\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n* = Robot\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nPlayer, player, player, player, player, player\nrobot\nBackground\n\n======\nRULES\n======\n\n[ stationary Robot ] -> [ randomDir Robot ] \n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n...........\n.....*.....\n...........\n.....*.....\n...........\n.....*.....\n..P........\n.....*.....\n...........\n\n",["line 49 : Object \"PLAYER\" included explicitly multiple times in the same layer. Don't do that innit."],0] + ], + [ + "Double-Ellipsis error message neighbouring ellipses", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate | ... | ... | crate ] -> [ > Player | > Crate | ... | ... | crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 81 : Why would you go and have two ellipses in a row like that? It's exactly the same as just having a single ellipsis, right?"],0] + ], + [ + "Simple Block Pushing Game", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | ... | Crate| ... | Crate |... | Crate ] -> [ > Player |...| > Crate|...| > Crate|...| > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : You can't use more than two ellipses in a single cell match pattern."],1] + ], + [ + "Warning for duplicate objects on layer", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, wall\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 72 : Object \"WALL\" included explicitly multiple times in the same layer. Don't do that innit."],0] + ], + [ + "No warning for duplicate objects on layer", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ncow = crate or wall\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, cow\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[],0] + ], + [ + "Warning for duplicate properties on layer", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ncow = crate or wall\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, cow, cow\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 72 : Object \"COW\" included explicitly multiple times in the same layer. Don't do that innit."],0] + ], + [ + "Ambiguous properties throw an exception #929", + ["OBJECTS\n\nBackground\nblack\n\nPlayer\nblue\n\nA\ngreen\n\nB\nred\n\nLEGEND\nC = A or B\n\nSOUNDS\nCOLLISIONLAYERS\n\nA \nB\n\nRULES\nright [ C | C | ] -> [ C | C | C ]\n\nWINCONDITIONS\nLEVELS\n",["line 25 : This rule has a property on the right-hand side, \"C\", that can't be inferred from the left-hand side. (either for every property on the right there has to be a corresponding one on the left in the same cell, OR, if there's a single occurrence of a particular property name on the left, all properties of the same name on the right are assumed to be the same).","line 3 : Object \"BACKGROUND\" has been defined, but not assigned to a layer.","line 6 : Object \"PLAYER\" has been defined, but not assigned to a layer.","No levels found. Add some levels!"],4] + ], +]; diff --git a/src/tests/resources/testdata.js b/src/tests/resources/testdata.js index b5aad3c1b..491d28878 100644 --- a/src/tests/resources/testdata.js +++ b/src/tests/resources/testdata.js @@ -1,388 +1,388 @@ 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"] + ["(\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"] + ["(\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"] + ["========\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"] + ["========\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"] + ["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"] + ["(\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"] + ["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"] + ["(\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"] + ["(\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"] + ["(\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"] + ["(\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"] + ["(\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] + ["========\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"] + ["(\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"] + ["(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"] + ["(\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"] + ["(\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] + ["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 increpare\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] + ["title Simple Block Pushing Game\nauthor increpare\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] + ["========\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] + ["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 increpare\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] + ["title Simple Block Pushing Game\nauthor increpare\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] + ["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] + ["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] + ["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] + ["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 increpare\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] + ["title Simple Block Pushing Game\nauthor increpare\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 increpare\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] + ["title Simple Block Pushing Game\nauthor increpare\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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["\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] + ["\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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] - ],*/ + /* [ + "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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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 increpare\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"] + ["title Kettle\nauthor increpare\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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["========\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"] + ["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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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 [ @@ -391,1042 +391,1247 @@ var testdata = [ ],*/ [ "100 objects", - ["title Simple Block Pushing Game\nauthor increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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 increpare\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"] + ["(\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 increpare\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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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"] + ["( 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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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"] + ["========\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"] + ["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"] + ["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"] + ["========\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"] + ["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 increpare\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"] + ["title EYE EYE EYE\nauthor increpare\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"] + ["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 increpare\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"] + ["title Several Rigid Bodies\nauthor increpare\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"] + ["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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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"] + ["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"] ], [ "Synonym confusion", - ["title Simple Block Pushing Game\nauthor increpare\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nRed\n\nPlayer\nOrange\n\nFloorB2\nYellow\n\nFloorB1\nGreen\n\nFloorMain\nBlue\n\n=======\nLEGEND\n=======\n\nFloorB2AndDown = FloorB2\nFloorB1AndDown = FloorB1 and FloorB2AndDown\nFloorMainAndDown = FloorMain and FloorB1AndDown\n\n. = Background\nP = Player\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFloorB2\nFloorB1\nFloorMain, Player\n\n======\nRULES\n======\n\n==============\nWINCONDITIONS\n==============\n\nno Player\n\n=======\nLEVELS\n=======\n\n...\n..P\n",[1],"background:0,0,0,\nbackground player:1,0,0,\n",0,"1496933845000"] + ["title Simple Block Pushing Game\nauthor increpare\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nRed\n\nPlayer\nOrange\n\nFloorB2\nYellow\n\nFloorB1\nGreen\n\nFloorMain\nBlue\n\n=======\nLEGEND\n=======\n\nFloorB2AndDown = FloorB2\nFloorB1AndDown = FloorB1 and FloorB2AndDown\nFloorMainAndDown = FloorMain and FloorB1AndDown\n\n. = Background\nP = Player\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFloorB2\nFloorB1\nFloorMain, Player\n\n======\nRULES\n======\n\n==============\nWINCONDITIONS\n==============\n\nno Player\n\n=======\nLEVELS\n=======\n\n...\n..P\n", [1], "background:0,0,0,\nbackground player:1,0,0,\n", 0, "1496933845000"] ], [ "a = b and b #393", - ["title Simple Block Pushing Game\nauthor increpare\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\nO = Target\n\nab = crate\n@ = ab and crate\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n\n======\nRULES\n======\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\n",[0,2,2,1,0],"background wall:0,0,0,0,0,0,\n0,0,background:1,background crate:2,background player:3,1,\n1,0,0,background target:4,1,1,\n1,1,0,0,0,0,\n1,2,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1499256887390.9216"] + ["title Simple Block Pushing Game\nauthor increpare\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\nO = Target\n\nab = crate\n@ = ab and crate\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n\n======\nRULES\n======\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\n", [0, 2, 2, 1, 0], "background wall:0,0,0,0,0,0,\n0,0,background:1,background crate:2,background player:3,1,\n1,0,0,background target:4,1,1,\n1,1,0,0,0,0,\n1,2,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 0, "1499256887390.9216"] ], [ "Rule direction inference test (#407)", - ["title Simple Block Pushing Game\nauthor increpare\nhomepage www.puzzlescript.net\ndebug\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[ > Player | Crate ] -> [ > Player | ^ Crate ]\n\n[ horizontal Player ] [ vertical Crate ] -> [ horizontal Player ] [ horizontal Crate ]\n\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#..*.#\n#....#\n######\n\n",[2,3,2,2,1,1,0,2,3,0,2,1,0,"undo",1,0,3,3,2,"undo","undo",2,3,3,0,1],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,1,1,\nbackground crate:2,1,0,0,1,1,\n1,background player:3,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n",1,"1503122963823.3987"] + ["title Simple Block Pushing Game\nauthor increpare\nhomepage www.puzzlescript.net\ndebug\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[ > Player | Crate ] -> [ > Player | ^ Crate ]\n\n[ horizontal Player ] [ vertical Crate ] -> [ horizontal Player ] [ horizontal Crate ]\n\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#..*.#\n#....#\n######\n\n", [2, 3, 2, 2, 1, 1, 0, 2, 3, 0, 2, 1, 0, "undo", 1, 0, 3, 3, 2, "undo", "undo", 2, 3, 3, 0, 1], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,1,1,\nbackground crate:2,1,0,0,1,1,\n1,background player:3,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n", 1, "1503122963823.3987"] ], [ "Reserved keywords are too greedy (#419)", - ["========\nOBJECTS(cat)\n========\n\nbackground \nwhite\n\nPlayer\nblue\n\nLevelscat\nblack\n\n=======\nLEGEND\n=======\n\nP = Player\n\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS \n================\n\nbackground\nplayer\nLevelscat\n\n======\nRULES\n======\n\n\n==============\nWINCONDITIONS\n==============\n\n(there's no way to win against a floating eyeball :S )\n\n=======\nLEVELS\n=======\n\np\n\n",[3,3,0],"background player:0,\n",0,"1506517029540.7014"] + ["========\nOBJECTS(cat)\n========\n\nbackground \nwhite\n\nPlayer\nblue\n\nLevelscat\nblack\n\n=======\nLEGEND\n=======\n\nP = Player\n\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS \n================\n\nbackground\nplayer\nLevelscat\n\n======\nRULES\n======\n\n\n==============\nWINCONDITIONS\n==============\n\n(there's no way to win against a floating eyeball :S )\n\n=======\nLEVELS\n=======\n\np\n\n", [3, 3, 0], "background player:0,\n", 0, "1506517029540.7014"] ], [ `Removing background tiles breaks "no X" wincondition (#534)`, - ["title no Coin, all Player on Target\nauthor Zachary Abel\nhomepage zacharyabel.com\n\nrun_rules_on_level_start\n\n=======\nOBJECTS\n=======\n\nBackground\ngreen\n\nPlayer\nRed\n.000.\n.0.0.\n.000.\n.0...\n.0...\n\n\n======\nLEGEND\n======\n\nP = Player\n. = Background\n\n======\nSOUNDS\n======\n\n===============\nCOLLISIONLAYERS\n===============\n\nBackground\nPlayer\n\n=====\nRULES\n=====\n\n[Background] -> []\n\n=============\nWINCONDITIONS\n=============\n\nno Player\n\n======\nLEVELS\n======\n\nP.\n\n",[3,3],":0,player:1,\n",0,"1612779741066.1199"] + ["title no Coin, all Player on Target\nauthor Zachary Abel\nhomepage zacharyabel.com\n\nrun_rules_on_level_start\n\n=======\nOBJECTS\n=======\n\nBackground\ngreen\n\nPlayer\nRed\n.000.\n.0.0.\n.000.\n.0...\n.0...\n\n\n======\nLEGEND\n======\n\nP = Player\n. = Background\n\n======\nSOUNDS\n======\n\n===============\nCOLLISIONLAYERS\n===============\n\nBackground\nPlayer\n\n=====\nRULES\n=====\n\n[Background] -> []\n\n=============\nWINCONDITIONS\n=============\n\nno Player\n\n======\nLEVELS\n======\n\nP.\n\n", [3, 3], ":0,player:1,\n", 0, "1612779741066.1199"] ], [ `should allow overlapping things #512`, - ["title Bloygizpo\nauthor increpare\nhomepage www.puzzlescript.net\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\ngreen GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\nTarget_aktiviert\nyellow\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall1\ndarkbrown darkbrown\n0.0.0\n.1.1.\n0.0.0\n.1.1.\n0.0.0\n\nWall2\ndarkbrown darkbrown\n.0.1.\n1.1.1\n.1.0.\n1.1.1\n.0.1.\n\nPlayer1\nBlack Orange White Blue\n..0..\n.1.1.\n2.2.2\n.3.3.\n.....\n\nPlayer2\nBlack Orange White Blue\n.0.0.\n..1..\n.2.2.\n..3..\n.3.3.\n\n\nCrate1\nOrange Yellow\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\n\nCrate2\nOrange Yellow\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nTuer1\nBlack brown\n..0..\n.1.1.\n0.1.0\n.1.1.\n0.0.0\n\nTuer2\nBlack brown\n.0.0.\n0.1.0\n.1.1.\n0.1.0\n.0.0.\n\nTuer_Offen\nyellow yellow\n.000.\n01110\n01110\n01110\n00000\n\n=======\nLEGEND\n=======\n\nPlayer = Player1 or player2\nCrate = Crate1 or Crate2\nWall = wall1 or wall2\ntuer = tuer1 or tuer2\n\n. = Background\n# = Wall1\nP = Player1 \n\n* = Crate1\n@ = Crate1\nO = Target\n\nq = crate1\nw = crate2\n\nt = tuer1 \n\ngewicht1 = player1 or Crate1 \ngewicht2 = player2 or Crate2\ngewicht = player or crate\n\n\n=======\nSOUNDS\n=======\n\nCrate1 MOVE 36772507\nCrate2 MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nTarget_aktiviert\ntuer_offen\nplayer1, crate1, wall1, tuer1\nplayer2, crate2, wall2, tuer2\n\n\n======\nRULES\n======\n\n[ player tuer ] -> [player tuer]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n#########\n#...t...#\n#.......#\n#.o...o.#\n#.......#\n#...q...#\n#.......#\n#...p...#\n#.......#\n#########\n\n(\n\nauszuprobieren\n\tteilweises Aufmachen\n 2 klötze\n)\n",[3,0,3,3],"background wall1:0,0,0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,1,1,1,\n1,0,0,1,1,background target:2,1,1,1,\n1,1,0,0,1,1,1,1,1,\n1,1,1,0,0,background tuer1:3,1,1,1,\nbackground crate1:4,1,1,1,0,0,1,1,1,\n1,1,1,1,1,0,0,1,1,\n2,1,1,1,1,1,0,0,1,\n1,1,1,1,background player1:5,1,1,0,0,\n0,0,0,0,0,0,0,0,0,\n",0,"1612782799099.4512"] + ["title Bloygizpo\nauthor increpare\nhomepage www.puzzlescript.net\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\ngreen GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\nTarget_aktiviert\nyellow\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall1\ndarkbrown darkbrown\n0.0.0\n.1.1.\n0.0.0\n.1.1.\n0.0.0\n\nWall2\ndarkbrown darkbrown\n.0.1.\n1.1.1\n.1.0.\n1.1.1\n.0.1.\n\nPlayer1\nBlack Orange White Blue\n..0..\n.1.1.\n2.2.2\n.3.3.\n.....\n\nPlayer2\nBlack Orange White Blue\n.0.0.\n..1..\n.2.2.\n..3..\n.3.3.\n\n\nCrate1\nOrange Yellow\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\n\nCrate2\nOrange Yellow\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nTuer1\nBlack brown\n..0..\n.1.1.\n0.1.0\n.1.1.\n0.0.0\n\nTuer2\nBlack brown\n.0.0.\n0.1.0\n.1.1.\n0.1.0\n.0.0.\n\nTuer_Offen\nyellow yellow\n.000.\n01110\n01110\n01110\n00000\n\n=======\nLEGEND\n=======\n\nPlayer = Player1 or player2\nCrate = Crate1 or Crate2\nWall = wall1 or wall2\ntuer = tuer1 or tuer2\n\n. = Background\n# = Wall1\nP = Player1 \n\n* = Crate1\n@ = Crate1\nO = Target\n\nq = crate1\nw = crate2\n\nt = tuer1 \n\ngewicht1 = player1 or Crate1 \ngewicht2 = player2 or Crate2\ngewicht = player or crate\n\n\n=======\nSOUNDS\n=======\n\nCrate1 MOVE 36772507\nCrate2 MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nTarget_aktiviert\ntuer_offen\nplayer1, crate1, wall1, tuer1\nplayer2, crate2, wall2, tuer2\n\n\n======\nRULES\n======\n\n[ player tuer ] -> [player tuer]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n#########\n#...t...#\n#.......#\n#.o...o.#\n#.......#\n#...q...#\n#.......#\n#...p...#\n#.......#\n#########\n\n(\n\nauszuprobieren\n\tteilweises Aufmachen\n 2 klötze\n)\n", [3, 0, 3, 3], "background wall1:0,0,0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,1,1,1,\n1,0,0,1,1,background target:2,1,1,1,\n1,1,0,0,1,1,1,1,1,\n1,1,1,0,0,background tuer1:3,1,1,1,\nbackground crate1:4,1,1,1,0,0,1,1,1,\n1,1,1,1,1,0,0,1,1,\n2,1,1,1,1,1,0,0,1,\n1,1,1,1,background player1:5,1,1,0,0,\n0,0,0,0,0,0,0,0,0,\n", 0, "1612782799099.4512"] ], [ `trouble parsing non-ascii in unicode #528`, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\n\n\n大\nred\n\nmauer\nBROWN \n\nPlayer\nwhite white white white\n.....\n.111.\n.111.\n.111.\n.....\n\n\nschlange_oben q\nlightgreen red yellow\n.....\n.....\n.000.\n.202.\n.000.\n\nschlange_mitte a \ngreen red white\n.000.\n.000.\n.000.\n.000.\n.000.\n\nschlange_unten z\nlightgreen red white brown\n.000.\n.000.\n.000.\n..0..\n.....\n\n\nleiter_oben w\nyellow \n.....\n.0.0.\n.000.\n.0.0.\n.000.\n\nleiter_mitte s\norange\n.0.0.\n.000.\n.0.0.\n.000.\n.0.0.\n\nleiter_unten x\nyellow\n.000.\n.0.0.\n.000.\n.0.0.\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = mauer\nP = Player\nO = 大\n\nleiter = leiter_oben or leiter_unten or leiter_mitte\nschlange = schlange_oben or schlange_unten or schlange_mitte\n\nmitte = leiter_mitte or schlange_mitte\noben = leiter_oben or schlange_oben\nunten = leiter_unten or schlange_unten\n\nstück = leiter or schlange\n\nobstacle = stück or mauer or player\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n大\nleiter, schlange\nPlayer, mauer\n\n======\nRULES\n======\n\nhorizontal [ > player | mitte ] -> [ > player | > mitte ]\n\nvertical [ left schlange_mitte | schlange ] -> [ left schlange_mitte | left schlange ] \nvertical [ right schlange_mitte | schlange ] -> [ right schlange_mitte | right schlange ] \n\nvertical [ left leiter_mitte | leiter ] -> [ left leiter_mitte | left leiter ] \n\nvertical [ right leiter_mitte | leiter ] -> [ right leiter_mitte | right leiter ] \n\n[> stück | stück] -> cancel\n[> stück | mauer] -> cancel\n\n\nlate up [ Player leiter_unten | ] -> [ leiter_unten | player ]\nlate up [ player leiter_mitte | ] -> [ leiter_mitte | player ]\n\n\nlate down [ Player schlange_oben | ] -> [ schlange_oben | player ]\nlate down [ player schlange_mitte | ] -> [ schlange_mitte | player ]\n\n==============\nWINCONDITIONS\n==============\n\nall player on 大\n\n=======\nLEVELS\n=======\n\n\n\n\n\n#######\n#o....#\n#.....#\n#.....#\n#.....#\n#.....#\n#p....#\n#######\n",[3,0,3],"background mauer:0,0,0,0,0,0,0,\n0,0,background 大:1,background:2,2,2,2,\n2,0,0,2,2,2,2,\n2,2,0,0,2,2,2,\n2,background player:3,2,0,0,2,2,\n2,2,2,2,0,0,2,\n2,2,2,2,2,0,0,\n0,0,0,0,0,0,0,\n",0,"1612797615322.4563"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\n\n\n大\nred\n\nmauer\nBROWN \n\nPlayer\nwhite white white white\n.....\n.111.\n.111.\n.111.\n.....\n\n\nschlange_oben q\nlightgreen red yellow\n.....\n.....\n.000.\n.202.\n.000.\n\nschlange_mitte a \ngreen red white\n.000.\n.000.\n.000.\n.000.\n.000.\n\nschlange_unten z\nlightgreen red white brown\n.000.\n.000.\n.000.\n..0..\n.....\n\n\nleiter_oben w\nyellow \n.....\n.0.0.\n.000.\n.0.0.\n.000.\n\nleiter_mitte s\norange\n.0.0.\n.000.\n.0.0.\n.000.\n.0.0.\n\nleiter_unten x\nyellow\n.000.\n.0.0.\n.000.\n.0.0.\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = mauer\nP = Player\nO = 大\n\nleiter = leiter_oben or leiter_unten or leiter_mitte\nschlange = schlange_oben or schlange_unten or schlange_mitte\n\nmitte = leiter_mitte or schlange_mitte\noben = leiter_oben or schlange_oben\nunten = leiter_unten or schlange_unten\n\nstück = leiter or schlange\n\nobstacle = stück or mauer or player\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n大\nleiter, schlange\nPlayer, mauer\n\n======\nRULES\n======\n\nhorizontal [ > player | mitte ] -> [ > player | > mitte ]\n\nvertical [ left schlange_mitte | schlange ] -> [ left schlange_mitte | left schlange ] \nvertical [ right schlange_mitte | schlange ] -> [ right schlange_mitte | right schlange ] \n\nvertical [ left leiter_mitte | leiter ] -> [ left leiter_mitte | left leiter ] \n\nvertical [ right leiter_mitte | leiter ] -> [ right leiter_mitte | right leiter ] \n\n[> stück | stück] -> cancel\n[> stück | mauer] -> cancel\n\n\nlate up [ Player leiter_unten | ] -> [ leiter_unten | player ]\nlate up [ player leiter_mitte | ] -> [ leiter_mitte | player ]\n\n\nlate down [ Player schlange_oben | ] -> [ schlange_oben | player ]\nlate down [ player schlange_mitte | ] -> [ schlange_mitte | player ]\n\n==============\nWINCONDITIONS\n==============\n\nall player on 大\n\n=======\nLEVELS\n=======\n\n\n\n\n\n#######\n#o....#\n#.....#\n#.....#\n#.....#\n#.....#\n#p....#\n#######\n", [3, 0, 3], "background mauer:0,0,0,0,0,0,0,\n0,0,background 大:1,background:2,2,2,2,\n2,0,0,2,2,2,2,\n2,2,0,0,2,2,2,\n2,background player:3,2,0,0,2,2,\n2,2,2,2,0,0,2,\n2,2,2,2,2,0,0,\n0,0,0,0,0,0,0,\n", 0, "1612797615322.4563"] ], [ `Can't start message with section keywords #490`, - ["title Simple Block Pushing Game\nauthor increpare\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage object swap\nmessage the objects swap\nmessage objectsswap\nmessage objects swap; comment me out!\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[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",4,"1612811326612.0864"] + ["title Simple Block Pushing Game\nauthor increpare\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage object swap\nmessage the objects swap\nmessage objectsswap\nmessage objects swap; comment me out!\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n", [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", 4, "1612811326612.0864"] ], [ `Bug: "norestart" prelude option can interfere with "restart" command #411`, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\nnorestart\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[ > Player | Crate ] -> restart\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\n",[0,"restart",1,2,2,"restart",2,2,0,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,background player:4,\n1,1,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1612832538428.8394"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\nnorestart\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[ > Player | Crate ] -> restart\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\n", [0, "restart", 1, 2, 2, "restart", 2, 2, 0, 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,background player:4,\n1,1,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 0, "1612832538428.8394"] ], [ `undoing reset undoes two steps, not one #453`, - ["title Simple Block Pushing Game\nauthor David Skinner\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[ > 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\n",[2,2,"restart","undo"],"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,background player:4,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1612997864833.277"] + ["title Simple Block Pushing Game\nauthor David Skinner\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[ > 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\n", [2, 2, "restart", "undo"], "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,background player:4,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 0, "1612997864833.277"] ], [ `Recent update broke some games with tabs in the source code #609`, - ["title Simple Block Pushing Game\nauthor David Skinner\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# \t= Wall\nP = \tPlayer\n* = Crate\n@ \t= Crate and Target\nK = \tCrate and Target\nM = Crate \tand Target\nN = Crate and \tTarget\nQ \t= Crate \tand 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[ > 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\n",[2,2,1,0,3,0,3,3,1,1,2,1,0],"background wall:0,0,0,0,0,0,\n0,0,background:1,background crate:2,background player target:3,1,\n1,0,0,background target:4,1,1,\n1,1,0,0,0,0,\n1,2,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1615587622342.6877"] + ["title Simple Block Pushing Game\nauthor David Skinner\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# \t= Wall\nP = \tPlayer\n* = Crate\n@ \t= Crate and Target\nK = \tCrate and Target\nM = Crate \tand Target\nN = Crate and \tTarget\nQ \t= Crate \tand 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[ > 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\n", [2, 2, 1, 0, 3, 0, 3, 3, 1, 1, 2, 1, 0], "background wall:0,0,0,0,0,0,\n0,0,background:1,background crate:2,background player target:3,1,\n1,0,0,background target:4,1,1,\n1,1,0,0,0,0,\n1,2,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 0, "1615587622342.6877"] ], [ `Test travelling through multiple levels`, - ["title Simple Block Pushing Game\nauthor David Skinner\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[ > 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\n",[2,1,0,3,3,3,2,1,0,1,1,2,2,3,0,1,0,3,0,0,1,2,3,2,2,3,3,0,1,2,1,0,0,3,2,2,1,0,0],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,0,background crate:2,\nbackground crate target:3,1,0,0,2,background player:4,\nbackground target:5,5,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n",0,"1627477832505.31"] + ["title Simple Block Pushing Game\nauthor David Skinner\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[ > 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\n", [2, 1, 0, 3, 3, 3, 2, 1, 0, 1, 1, 2, 2, 3, 0, 1, 0, 3, 0, 0, 1, 2, 3, 2, 2, 3, 3, 0, 1, 2, 1, 0, 0, 3, 2, 2, 1, 0, 0], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,0,background crate:2,\nbackground crate target:3,1,0,0,2,background player:4,\nbackground target:5,5,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n", 0, "1627477832505.31"] ], [ `Win condition test "NO X"`, - ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Crate ] -> [ > Player | ]\n\n==============\nWINCONDITIONS\n==============\n\nno crate\n\n=======\nLEVELS\n=======\n\n\n.....\n.@o*.\n.p...\n.....\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[0,3,3],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,0,background crate:2,\nbackground target:3,1,0,0,1,background player:4,\nbackground crate target:5,5,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n",0,"1627477994465.8933"] + ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Crate ] -> [ > Player | ]\n\n==============\nWINCONDITIONS\n==============\n\nno crate\n\n=======\nLEVELS\n=======\n\n\n.....\n.@o*.\n.p...\n.....\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n", [0, 3, 3], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,0,background crate:2,\nbackground target:3,1,0,0,1,background player:4,\nbackground crate target:5,5,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n", 0, "1627477994465.8933"] ], [ `Win condition test "SOME X"`, - ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Target ] -> [ Player | TARGET Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nsome crate\n\n=======\nLEVELS\n=======\n\n\n.....\n..oo.\n.p...\n.....\n\n..p..\n.....\n",[3,0,3],"background:0,0,0,0,0,\n0,background player:1,0,0,0,\n",0,"1627478110201.5347"] + ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Target ] -> [ Player | TARGET Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nsome crate\n\n=======\nLEVELS\n=======\n\n\n.....\n..oo.\n.p...\n.....\n\n..p..\n.....\n", [3, 0, 3], "background:0,0,0,0,0,\n0,background player:1,0,0,0,\n", 0, "1627478110201.5347"] ], [ `Win condition test "SOME X ON Y"`, - ["title Simple Block Pushing Game\nauthor David Skinner\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\nup [ action Player | ] -> [ action Player | Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nsome crate on target\n\n=======\nLEVELS\n=======\n\n\n.....\n..oo.\n.p...\n.....\n\n..p..\n.....\n",[1,4,3,0,4,2,3,4,2,4,1,1,4],"background crate:0,background player:1,background:2,2,0,\n2,2,2,2,2,\n",0,"1627478147227.8706"] + ["title Simple Block Pushing Game\nauthor David Skinner\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\nup [ action Player | ] -> [ action Player | Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nsome crate on target\n\n=======\nLEVELS\n=======\n\n\n.....\n..oo.\n.p...\n.....\n\n..p..\n.....\n", [1, 4, 3, 0, 4, 2, 3, 4, 2, 4, 1, 1, 4], "background crate:0,background player:1,background:2,2,0,\n2,2,2,2,2,\n", 0, "1627478147227.8706"] ], [ `Win condition test "NO X ON Y"`, - ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nno 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\n",[0,1,2,3,2,2,1,1,2,3],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,background crate:2,\n1,0,0,1,0,2,\nbackground target:3,1,0,0,1,1,\nbackground crate target:4,3,background player:5,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n",0,"1627478173305.2952"] + ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nno 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\n", [0, 1, 2, 3, 2, 2, 1, 1, 2, 3], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,background crate:2,\n1,0,0,1,0,2,\nbackground target:3,1,0,0,1,1,\nbackground crate target:4,3,background player:5,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n", 0, "1627478173305.2952"] ], [ `Test for cancel cancelling restart #374`, - ["title Simple Block Pushing Game\nauthor David Skinner\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[ action player ] -> restart \n[ action player ] -> cancel \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\n",[2,1,0,4,4,3,4,4],"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,\nbackground player:4,1,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1627560547946.0017"] + ["title Simple Block Pushing Game\nauthor David Skinner\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[ action player ] -> restart \n[ action player ] -> cancel \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\n", [2, 1, 0, 4, 4, 3, 4, 4], "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,\nbackground player:4,1,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 0, "1627560547946.0017"] ], - [ `Test for trigger message at same time as reset`, - ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n[action Player] -> restart message ACTION\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\n",[2,4,1,2,2,4,0],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,background crate target:2,1,\n1,0,0,background target:3,background player:4,1,\n1,1,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1627560815572.0037"] + [`Test for trigger message at same time as reset`, + ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n[action Player] -> restart message ACTION\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\n", [2, 4, 1, 2, 2, 4, 0], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,background crate target:2,1,\n1,0,0,background target:3,background player:4,1,\n1,1,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 0, "1627560815572.0037"] ], - [ `Test for trigger message at same time as cancel`, - ["title Simple Block Pushing Game\nauthor David Skinner\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[moving Player] -> cancel message ACTION\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\n",[2,2,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,background player:4,\n1,1,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1627560887718.9905"] + [`Test for trigger message at same time as cancel`, + ["title Simple Block Pushing Game\nauthor David Skinner\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[moving Player] -> cancel message ACTION\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\n", [2, 2, 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,background player:4,\n1,1,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 0, "1627560887718.9905"] ], [ `movement not getting correctly cleared from tile - #492`, - ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\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\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=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n(^ COMMENT ME OUT/DELETE ME)\n\n\n[ | < Player | Crate ] -> [ Player | Crate | Crate ]\n([ Crate | > Player | ] -> [ Crate | Crate | Player ])\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#....#\n#*P*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[3,0,1,1],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,background player:2,background crate:3,\n1,0,0,background target:4,1,1,\n3,1,0,0,0,0,\n1,1,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1627732650514.1125"] + ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\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\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=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n(^ COMMENT ME OUT/DELETE ME)\n\n\n[ | < Player | Crate ] -> [ Player | Crate | Crate ]\n([ Crate | > Player | ] -> [ Crate | Crate | Player ])\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#....#\n#*P*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n", [3, 0, 1, 1], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,background player:2,background crate:3,\n1,0,0,background target:4,1,1,\n3,1,0,0,0,0,\n1,1,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 0, "1627732650514.1125"] ], [ `second test for #492 movement not getting correctly cleared from tile`, - ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\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\nperson1\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nperson2\nlightbrown orange white red\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 = Person1\nd = Person2\n* = Crate\n@ = Crate and Target\nO = Target\n\nPlayer = Person1 or person2\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget, Wall\nPlayer, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n(^ COMMENT ME OUT/DELETE ME)\n\n[ | < Person1 | Crate ] -> [ Person1 | Crate | Crate ]\n[ | < Person2 | Crate ] -> [ stationary Person2 | Crate | Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n......#......\n......#......\n......#......\n......#......\n.*p*..#.*d*..\n......#......\no.....#o.....\n\n",[3],"background:0,0,0,0,0,0,background target:1,0,0,0,0,background crate:2,0,\n0,0,0,0,0,2,0,0,0,0,0,0,background person1:3,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background wall:4,4,4,4,4,4,4,0,0,0,\n0,0,0,1,0,0,0,0,2,0,0,0,0,\n0,0,2,0,0,0,0,0,0,background person2:5,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n",0,"1627732858112.287"] + ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\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\nperson1\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nperson2\nlightbrown orange white red\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 = Person1\nd = Person2\n* = Crate\n@ = Crate and Target\nO = Target\n\nPlayer = Person1 or person2\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget, Wall\nPlayer, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n(^ COMMENT ME OUT/DELETE ME)\n\n[ | < Person1 | Crate ] -> [ Person1 | Crate | Crate ]\n[ | < Person2 | Crate ] -> [ stationary Person2 | Crate | Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n......#......\n......#......\n......#......\n......#......\n.*p*..#.*d*..\n......#......\no.....#o.....\n\n", [3], "background:0,0,0,0,0,0,background target:1,0,0,0,0,background crate:2,0,\n0,0,0,0,0,2,0,0,0,0,0,0,background person1:3,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background wall:4,4,4,4,4,4,4,0,0,0,\n0,0,0,1,0,0,0,0,2,0,0,0,0,\n0,0,2,0,0,0,0,0,0,background person2:5,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 0, "1627732858112.287"] ], [ `third test for #492 movement not getting correctly cleared from tile`, - ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nplayer p\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n* = Crate\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n[ > Player | ] -> [ Crate | Player ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\np*.\n\n",[3],"background crate:0,background player:1,background:2,\n",0,"1627732919488.2104"] + ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nplayer p\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n* = Crate\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n[ > Player | ] -> [ Crate | Player ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\np*.\n\n", [3], "background crate:0,background player:1,background:2,\n", 0, "1627732919488.2104"] ], [ `fourth test for #492 movement not getting correctly cleared from tile`, - ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nplayer p\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\ncrate\nred\n\n\n=======\nLEGEND\n=======\n\n. = Background\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ncrate\n======\nRULES\n======\n\nright [> player | crate ] -> [ > player | > crate ]\nright [ > Player | ] -> [ Player | Player ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\npp.\n\n",[3],"background player:0,0,background:1,\n",0,"1627733021968.0657"] + ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nplayer p\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\ncrate\nred\n\n\n=======\nLEGEND\n=======\n\n. = Background\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ncrate\n======\nRULES\n======\n\nright [> player | crate ] -> [ > player | > crate ]\nright [ > Player | ] -> [ Player | Player ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\npp.\n\n", [3], "background player:0,0,background:1,\n", 0, "1627733021968.0657"] ], [ `fifth test for #492 movement not getting correctly cleared from tile`, - ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nplayer p\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\ncrate\nred\n\n\n=======\nLEGEND\n=======\n\n. = Background\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ncrate\n======\nRULES\n======\n\nright [ > Player | ] -> [ Player | Player ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\npp.\n\n",[3],"background player:0,0,background:1,\n",0,"1627733036654.9438"] + ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nplayer p\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\ncrate\nred\n\n\n=======\nLEGEND\n=======\n\n. = Background\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ncrate\n======\nRULES\n======\n\nright [ > Player | ] -> [ Player | Player ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\npp.\n\n", [3], "background player:0,0,background:1,\n", 0, "1627733036654.9438"] ], [ `test for convention #2 to issue right [ > Player | ] -> [ Player | Player ]🐱‍🐉 #679 : Should right [ Player | ] -> [ Player | Player ] propagate movements? (A: yes?) `, - ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nplayer p\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\ncrate\nred\n\n\n=======\nLEGEND\n=======\n\n. = Background\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ncrate\n======\nRULES\n======\n\nrandom right [ Player | ] -> [ | Player ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n..p....\n\n",[3],"background:0,0,0,background player:1,0,0,0,\n",0,"1627733171811.7598"] + ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nplayer p\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\ncrate\nred\n\n\n=======\nLEGEND\n=======\n\n. = Background\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ncrate\n======\nRULES\n======\n\nrandom right [ Player | ] -> [ | Player ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n..p....\n\n", [3], "background:0,0,0,background player:1,0,0,0,\n", 0, "1627733171811.7598"] ], [ `right [ vertical Player | perpendicular Player ] -> [ perpendicular Player | ] produces error #682`, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\nbaba = player or Background\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\n\n======\nRULES\n======\n\nright [ up player | up player ] -> [ up player | down player ]\nright [ vertical Player | perpendicular Player ] -> [ perpendicular Player | ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...pp..\n.......\n",[2],"background:0,0,0,0,0,0,0,\n0,0,0,0,background player:1,0,0,\n0,0,0,0,0,0,0,\n",0,"1627766697714.8755"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\nbaba = player or Background\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\n\n======\nRULES\n======\n\nright [ up player | up player ] -> [ up player | down player ]\nright [ vertical Player | perpendicular Player ] -> [ perpendicular Player | ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...pp..\n.......\n", [2], "background:0,0,0,0,0,0,0,\n0,0,0,0,background player:1,0,0,\n0,0,0,0,0,0,0,\n", 0, "1627766697714.8755"] ], [ `right [ horizontal TestObject1 | perpendicular TestObject1 ] -> [ perpendicular TestObject1 | ] produces an error #498`, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\n\n======\nRULES\n======\n\nright [ right player | right player ] -> [ right player | down player ]\nright [ horizontal Player | perpendicular Player ] -> [ perpendicular Player | ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...pp..\n.......\n\n",[3],"background:0,0,0,0,0,0,0,\n0,0,0,0,background player:1,0,0,\n0,0,0,0,0,0,0,\n",0,"1627766801845.8809"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\n\n======\nRULES\n======\n\nright [ right player | right player ] -> [ right player | down player ]\nright [ horizontal Player | perpendicular Player ] -> [ perpendicular Player | ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...pp..\n.......\n\n", [3], "background:0,0,0,0,0,0,0,\n0,0,0,0,background player:1,0,0,\n0,0,0,0,0,0,0,\n", 0, "1627766801845.8809"] ], [ `[ orthogonal a | moving a ] -> [ moving a | orthogonal a ] produces an error #496`, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\n\n======\nRULES\n======\n\nright [ down player | down player ] -> [ down player | action player ]\nright [ orthogonal player | moving player ] -> [ moving player | orthogonal player ]\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...pp..\n.......\n\n",[2],"background:0,0,0,0,0,0,0,\n0,0,0,background player:1,0,0,0,\n1,0,0,0,0,0,0,\n",0,"1627766972788.5994"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\n\n======\nRULES\n======\n\nright [ down player | down player ] -> [ down player | action player ]\nright [ orthogonal player | moving player ] -> [ moving player | orthogonal player ]\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...pp..\n.......\n\n", [2], "background:0,0,0,0,0,0,0,\n0,0,0,background player:1,0,0,0,\n1,0,0,0,0,0,0,\n", 0, "1627766972788.5994"] ], [ `1st alternative test for: right [ vertical Player | perpendicular Player ] -> [ perpendicular Player | ] produces error #682`, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\ncrate\nblue\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n* = crate\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer,crate\n\n======\nRULES\n======\n\n[crate]->[up crate]\nright [ horizontal Player | perpendicular crate ] -> [ perpendicular crate | ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...p*..\n.......\n\n",[3,"restart",3],"background:0,0,0,0,0,0,0,\n0,0,background crate:1,0,0,0,0,\n0,0,0,0,0,0,0,\n",0,"1627767245523.3818"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\ncrate\nblue\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n* = crate\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer,crate\n\n======\nRULES\n======\n\n[crate]->[up crate]\nright [ horizontal Player | perpendicular crate ] -> [ perpendicular crate | ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...p*..\n.......\n\n", [3, "restart", 3], "background:0,0,0,0,0,0,0,\n0,0,background crate:1,0,0,0,0,\n0,0,0,0,0,0,0,\n", 0, "1627767245523.3818"] ], [ `2nd alternative test for: right [ vertical Player | perpendicular Player ] -> [ perpendicular Player | ] produces error #682`, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\ncrate\nblue\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n* = crate\ncrateorbackground = crate or Background\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer,crate\n\n======\nRULES\n======\n\n[crate]->[up crate]\nright [ horizontal Player | perpendicular crateorbackground ] -> [ perpendicular crateorbackground | ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...p*..\n.......\n\n",[3],"background:0,0,0,0,0,0,0,\n0,0,background crate:1,0,0,0,0,\n0,0,0,0,0,0,0,\n",0,"1627767313362.127"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\ncrate\nblue\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n* = crate\ncrateorbackground = crate or Background\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer,crate\n\n======\nRULES\n======\n\n[crate]->[up crate]\nright [ horizontal Player | perpendicular crateorbackground ] -> [ perpendicular crateorbackground | ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...p*..\n.......\n\n", [3], "background:0,0,0,0,0,0,0,\n0,0,background crate:1,0,0,0,0,\n0,0,0,0,0,0,0,\n", 0, "1627767313362.127"] ], [ `super tricky (related to #469) right [ vertical playerortarget | vertical player ] -> [ vertical playerortarget | vertical playerortarget ] `, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\ntarget\nblue\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\nplayerortarget = player or target\n@ = target\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ntarget\n======\nRULES\n======\n\n[target]->[up target]\n\nright [ vertical playerortarget | vertical player ] -> [ vertical playerortarget | vertical playerortarget ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...@p..\n.......\n",[0],"background:0,0,0,0,0,0,0,\n0,0,background target:1,0,0,1,0,\n0,0,0,0,0,0,0,\n",0,"1627768267232.6797"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\ntarget\nblue\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\nplayerortarget = player or target\n@ = target\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ntarget\n======\nRULES\n======\n\n[target]->[up target]\n\nright [ vertical playerortarget | vertical player ] -> [ vertical playerortarget | vertical playerortarget ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...@p..\n.......\n", [0], "background:0,0,0,0,0,0,0,\n0,0,background target:1,0,0,1,0,\n0,0,0,0,0,0,0,\n", 0, "1627768267232.6797"] ], [ `right [ vertical playerortarget | vertical player ] -> [ vertical player | vertical playerortarget ]`, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\ntarget\nblue\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\nplayerortarget = player or target\n@ = target\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ntarget\n======\nRULES\n======\n\n[target]->[down target]\n\nright [ vertical playerortarget | vertical player ] -> [ vertical player | vertical playerortarget ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...@p..\n.......\n",[0],"background:0,0,0,0,0,0,0,\n0,0,background player:1,0,0,0,0,\nbackground target:2,0,0,0,0,0,0,\n",0,"1627768474619.1826"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\ntarget\nblue\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\nplayerortarget = player or target\n@ = target\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ntarget\n======\nRULES\n======\n\n[target]->[down target]\n\nright [ vertical playerortarget | vertical player ] -> [ vertical player | vertical playerortarget ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...@p..\n.......\n", [0], "background:0,0,0,0,0,0,0,\n0,0,background player:1,0,0,0,0,\nbackground target:2,0,0,0,0,0,0,\n", 0, "1627768474619.1826"] ], [ `gallery game: sokodig`, - ["title Sokodig\nauthor Ezra Szanton\nhomepage ezras.work\n\n========\nOBJECTS\n========\n\nstoneBackground\nBLACK darkgray\n11111\n11111\n11111\n11111\n11111\n\ngrassBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\nTarget\ndarkred red lightred\n.....\n.202.\n.010.\n.202.\n.....\n\nWall\nBROWN DARKBROWN\n11101\n10111\n11110\n00111\n11001\n\nPlayer0Dig\nBlack Orange White Blue\n.000.\n02020\n00000\n.000.\n.0.0.\n\nPlayer1Dig\n#573103 grey #6e6c69 \n..0..\n..0..\n..0..\n.111.\n..1..\n\nPlayer2Dig\n#573103 grey #6e6c69 \n..0..\n..0..\n.121.\n.111.\n..1..\n\nCrate\nOrange darkred red lightred\n22122\n2...2\n1...1\n2...2\n22122\n\nDoor\ndarkbrown\n.....\n.....\n..0..\n.....\n.....\n\ntemp\nbrown\n.....\n.....\n.....\n.....\n.....\n\nstairs\n #565756 #373b37 #212421 #1c1c29 Black\n00000\n11111\n22222\n33333\n44444\n\nshovel\ngrey #573103\n....1\n...1.\n0.1..\n00...\n000..\n\ngoldShovel\nyellow #573103\n....1\n...1.\n0.1..\n00...\n000..\n\nSuperPlayer\n#573103 yellow #d4bc37\n..0..\n..0..\n.121.\n.111.\n..1..\n\n\n=======\nLEGEND\n=======\n\nPlayer = Player0Dig or Player1Dig or Player2Dig or SuperPlayer\nBackground = stoneBackground or grassBackground\n\n\n# = Wall\n. = stoneBackground\nP = Player0Dig\n* = Crate\n@ = Crate and Target\nO = Target\nd = Door\ne = Player0Dig\ng = goldShovel\ns = stairs\nh = shovel\nr = grassBackground\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nPlayer move 17705907\n\nsfx0 66043100 (clink)\nsfx1 25555704 (dig)\nsfx2 51411503 (super)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget, Door, Stairs\nPlayer, Wall, Crate, goldShovel, shovel\ntemp\n\n======\nRULES\n======\n\n([DOWN Door] no [ Target no Crate] -> [] )\n\n( no [Target no Crate] -> [] no [no Crate] )\n\n[ > Player | shovel ] -> [ | Player2Dig ]\n\n[ > Player | goldShovel ] -> [ | SuperPlayer ] sfx2\n\n[ > Player | Crate ] [stairs] -> [ Player | Crate ] [stairs] sfx0\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n[ > Player2Dig | Wall ] -> [ | Player1Dig] sfx1\n\n[ > Player1Dig | Wall ] -> [ | Player0Dig] sfx1\n\n[ > Player0Dig | Wall ] -> [ Player0Dig | Wall ] sfx0\n\n[ > SuperPlayer | Wall ] -> [ | SuperPlayer] sfx1\n\n(Altogether makes the rule that the stairs will appear if all crates are on targets)\nlate [Target no Crate] [] -> [Target no Crate] [temp] \nlate random [door no temp] -> [ stairs ] \nlate [temp] -> [] \n\n==============\nWINCONDITIONS\n==============\n\nall player on stairs\n\n=======\nLEVELS\n=======\n\nmessage 1/10 runes in the stone\n\n#########\n#########\n##.....##\n##pd.*o##\n##.....##\n#########\n######### \n\nmessage 2/10 just me and my shovel\n\n#############\n#############\n##dph##.*o.##\n#############\n#############\n\nmessage 3/10 Remember, z to undo, r to restart\n\n############\n############\n#######d.###\n##ph###.*o##\n############\n###.....####\n############\n############\n\nmessage 4/10 How long have I been down here\n\n#######\n#######\n##...##\n##*o.##\n##hd.##\n##.p.##\n#######\n#######\n\nmessage 5/10 I can only go, down\n\n#######\n#.....#\n#.oo..#\n####*.#\n####*.#\n####dp#\n####h.#\n#######\n\nmessage 6/10 I lost my shovel ;-;\n\n#######\n#.o####\n##*.###\n##*h###\n#.p*..#\n#o.d..#\n#....o#\n#######\n\nmessage 7/10 riddles in the earth\n\n###########\n#.........#\n#.........#\n#.........#\n#..####...#\n#...*.#.o.#\n#..#**#.o.#\n#..##.#.o.#\n#.........#\n#.Ph....d.#\n#.........#\n###########\n\nmessage 8/10 will I ever see the light again\n\n##########\n##########\n##o.hp.d##\n##.##*#.##\n##.#@@#.##\n##......##\n##########\n##########\n\nmessage 9/10 I sense a great pressure\n\n###########\n###p..#h###\n###.#######\n#...###...#\n#.*.#d#**.#\n###h###ooo#\n###########\n\n#########\n####p####\n####.####\n####.####\n####.####\n####.####\n####.####\n####s####\n#########\n\n#######\n###p###\n###.###\n###.###\n###.###\n###s###\n#######\n\n#####\n##p##\n##.##\n##s##\n#####\n\nmessage 10/10 my final trial\n\n#######\n#######\n##oo.##\n###**##\n###dp##\n####h##\n#######\n#######\n\n\nmessage 11/10 deepest~\n\n#############\n#p.h##g##...#\n#########.d.#\n#########...#\n#############\n#############\n#############\n#############\n#############\n#.*.#########\n#...#########\n#.o.#########\n#############\n\n###########\n#####s#####\n###########\n###########\n###########\n###########\n###########\n###########\n#####g#####\n#####p#####\n###########\n\n#########\n####s####\n#########\n#########\n#########\n#########\n####g####\n####p####\n#########\n\n#######\n###s###\n#######\n#######\n###g###\n###p###\n#######\n\nmessage 0/10 freedom\n\nrrrr#####rrrr\nrrrrr#s#rrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrr###rrrrr\nrrrr#####rrrr\nrrr###h###rrr\n#####rpr#####\n\n\n\n\n\n\n\n",[3,3,3,3,3,2,2,1,1,2,2,3,3,2,2,2,1,1,1,2,1,0,1,1,2,3,0,3,2,2,3,3,3,3,3,3,3,0,0,0,0,0,0,0],"stonebackground wall:0,0,0,0,0,0,0,0,stonebackground:1,1,0,0,0,\n0,1,0,0,0,0,0,0,1,1,1,1,0,\n0,1,0,0,0,0,0,0,1,1,1,crate stonebackground target:2,0,\n0,1,0,0,0,0,0,0,1,1,1,1,0,\n0,1,0,1,1,1,0,0,1,0,1,0,0,\n0,1,0,1,0,1,0,0,1,0,1,0,0,\n0,1,1,1,0,1,1,1,1,0,1,0,0,\n0,0,0,0,0,0,0,0,0,0,1,0,0,\n0,0,0,0,0,0,0,0,0,0,1,0,0,\n0,1,1,stonebackground superplayer:3,1,1,1,1,1,1,1,0,0,\n0,1,stairs stonebackground:4,1,0,0,0,0,0,0,0,0,0,\n0,1,1,1,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n",24,"1627769218300.0015"] + ["title Sokodig\nauthor Ezra Szanton\nhomepage ezras.work\n\n========\nOBJECTS\n========\n\nstoneBackground\nBLACK darkgray\n11111\n11111\n11111\n11111\n11111\n\ngrassBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\nTarget\ndarkred red lightred\n.....\n.202.\n.010.\n.202.\n.....\n\nWall\nBROWN DARKBROWN\n11101\n10111\n11110\n00111\n11001\n\nPlayer0Dig\nBlack Orange White Blue\n.000.\n02020\n00000\n.000.\n.0.0.\n\nPlayer1Dig\n#573103 grey #6e6c69 \n..0..\n..0..\n..0..\n.111.\n..1..\n\nPlayer2Dig\n#573103 grey #6e6c69 \n..0..\n..0..\n.121.\n.111.\n..1..\n\nCrate\nOrange darkred red lightred\n22122\n2...2\n1...1\n2...2\n22122\n\nDoor\ndarkbrown\n.....\n.....\n..0..\n.....\n.....\n\ntemp\nbrown\n.....\n.....\n.....\n.....\n.....\n\nstairs\n #565756 #373b37 #212421 #1c1c29 Black\n00000\n11111\n22222\n33333\n44444\n\nshovel\ngrey #573103\n....1\n...1.\n0.1..\n00...\n000..\n\ngoldShovel\nyellow #573103\n....1\n...1.\n0.1..\n00...\n000..\n\nSuperPlayer\n#573103 yellow #d4bc37\n..0..\n..0..\n.121.\n.111.\n..1..\n\n\n=======\nLEGEND\n=======\n\nPlayer = Player0Dig or Player1Dig or Player2Dig or SuperPlayer\nBackground = stoneBackground or grassBackground\n\n\n# = Wall\n. = stoneBackground\nP = Player0Dig\n* = Crate\n@ = Crate and Target\nO = Target\nd = Door\ne = Player0Dig\ng = goldShovel\ns = stairs\nh = shovel\nr = grassBackground\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nPlayer move 17705907\n\nsfx0 66043100 (clink)\nsfx1 25555704 (dig)\nsfx2 51411503 (super)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget, Door, Stairs\nPlayer, Wall, Crate, goldShovel, shovel\ntemp\n\n======\nRULES\n======\n\n([DOWN Door] no [ Target no Crate] -> [] )\n\n( no [Target no Crate] -> [] no [no Crate] )\n\n[ > Player | shovel ] -> [ | Player2Dig ]\n\n[ > Player | goldShovel ] -> [ | SuperPlayer ] sfx2\n\n[ > Player | Crate ] [stairs] -> [ Player | Crate ] [stairs] sfx0\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n[ > Player2Dig | Wall ] -> [ | Player1Dig] sfx1\n\n[ > Player1Dig | Wall ] -> [ | Player0Dig] sfx1\n\n[ > Player0Dig | Wall ] -> [ Player0Dig | Wall ] sfx0\n\n[ > SuperPlayer | Wall ] -> [ | SuperPlayer] sfx1\n\n(Altogether makes the rule that the stairs will appear if all crates are on targets)\nlate [Target no Crate] [] -> [Target no Crate] [temp] \nlate random [door no temp] -> [ stairs ] \nlate [temp] -> [] \n\n==============\nWINCONDITIONS\n==============\n\nall player on stairs\n\n=======\nLEVELS\n=======\n\nmessage 1/10 runes in the stone\n\n#########\n#########\n##.....##\n##pd.*o##\n##.....##\n#########\n######### \n\nmessage 2/10 just me and my shovel\n\n#############\n#############\n##dph##.*o.##\n#############\n#############\n\nmessage 3/10 Remember, z to undo, r to restart\n\n############\n############\n#######d.###\n##ph###.*o##\n############\n###.....####\n############\n############\n\nmessage 4/10 How long have I been down here\n\n#######\n#######\n##...##\n##*o.##\n##hd.##\n##.p.##\n#######\n#######\n\nmessage 5/10 I can only go, down\n\n#######\n#.....#\n#.oo..#\n####*.#\n####*.#\n####dp#\n####h.#\n#######\n\nmessage 6/10 I lost my shovel ;-;\n\n#######\n#.o####\n##*.###\n##*h###\n#.p*..#\n#o.d..#\n#....o#\n#######\n\nmessage 7/10 riddles in the earth\n\n###########\n#.........#\n#.........#\n#.........#\n#..####...#\n#...*.#.o.#\n#..#**#.o.#\n#..##.#.o.#\n#.........#\n#.Ph....d.#\n#.........#\n###########\n\nmessage 8/10 will I ever see the light again\n\n##########\n##########\n##o.hp.d##\n##.##*#.##\n##.#@@#.##\n##......##\n##########\n##########\n\nmessage 9/10 I sense a great pressure\n\n###########\n###p..#h###\n###.#######\n#...###...#\n#.*.#d#**.#\n###h###ooo#\n###########\n\n#########\n####p####\n####.####\n####.####\n####.####\n####.####\n####.####\n####s####\n#########\n\n#######\n###p###\n###.###\n###.###\n###.###\n###s###\n#######\n\n#####\n##p##\n##.##\n##s##\n#####\n\nmessage 10/10 my final trial\n\n#######\n#######\n##oo.##\n###**##\n###dp##\n####h##\n#######\n#######\n\n\nmessage 11/10 deepest~\n\n#############\n#p.h##g##...#\n#########.d.#\n#########...#\n#############\n#############\n#############\n#############\n#############\n#.*.#########\n#...#########\n#.o.#########\n#############\n\n###########\n#####s#####\n###########\n###########\n###########\n###########\n###########\n###########\n#####g#####\n#####p#####\n###########\n\n#########\n####s####\n#########\n#########\n#########\n#########\n####g####\n####p####\n#########\n\n#######\n###s###\n#######\n#######\n###g###\n###p###\n#######\n\nmessage 0/10 freedom\n\nrrrr#####rrrr\nrrrrr#s#rrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrr###rrrrr\nrrrr#####rrrr\nrrr###h###rrr\n#####rpr#####\n\n\n\n\n\n\n\n", [3, 3, 3, 3, 3, 2, 2, 1, 1, 2, 2, 3, 3, 2, 2, 2, 1, 1, 1, 2, 1, 0, 1, 1, 2, 3, 0, 3, 2, 2, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0], "stonebackground wall:0,0,0,0,0,0,0,0,stonebackground:1,1,0,0,0,\n0,1,0,0,0,0,0,0,1,1,1,1,0,\n0,1,0,0,0,0,0,0,1,1,1,crate stonebackground target:2,0,\n0,1,0,0,0,0,0,0,1,1,1,1,0,\n0,1,0,1,1,1,0,0,1,0,1,0,0,\n0,1,0,1,0,1,0,0,1,0,1,0,0,\n0,1,1,1,0,1,1,1,1,0,1,0,0,\n0,0,0,0,0,0,0,0,0,0,1,0,0,\n0,0,0,0,0,0,0,0,0,0,1,0,0,\n0,1,1,stonebackground superplayer:3,1,1,1,1,1,1,1,0,0,\n0,1,stairs stonebackground:4,1,0,0,0,0,0,0,0,0,0,\n0,1,1,1,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 24, "1627769218300.0015"] ], [ `gallery game: at the hedges of time`, - ["title At the Hedges of Time\nauthor galactical\n\nbackground_color #222323\n\ntext_color #f0f6f0\n\nrun_rules_on_level_start\n\nnoundo\n\nzoomscreen 12x11\n\n========\nOBJECTS\n========\n\nBackground\n#c5ccb8\n\nDot\n#9a9a97\n.....\n.....\n.....\n..0..\n.....\n\nBounds\nTransparent\n\nBoundaryWall\nTransparent\n\nWall\n#93a167 #557064\n00000\n00000\n11111\n11111\n11111\n\nOverWall\n#93a167\n.....\n.....\n00000\n00000\n00000\n\nCrate\n#8d6268 #6E4D51\n00000\n00000\n11111\n11111\n11111\n\nOverCrate\n#8d6268\n.....\n.....\n.....\n00000\n00000\n\nTimeCrate\n#70568F #433455\n00000\n00000\n11111\n11111\n11111\n\nOverTimeCrate\n#70568F\n.....\n.....\n.....\n00000\n00000\n\nFadeCrate\n#8d6268 #6E4D51\n0.0.0\n.0.0.\n1.1.1\n.1.1.\n1.1.1\n\nOverFadeCrate\n#8d6268\n.....\n.....\n.....\n0.0.0\n.0.0.\n\nPlayer\nTransparent\n\nTarget\n#f7e26b #c5ccb8\n00000\n01110\n01010\n01110\n00000\n\nCam\nTransparent\n\nStatue\n#696969 (nice) #787878 #636363\n.111.\n.111.\n.000.\n.0.0.\n.....\n\nOverStatue\n#696969 #787878 #585858\n.....\n.222.\n.222.\n21112\n00000\n\nClock\n#f7e26b #f0f6f0 black\n.000.\n01110\n11211\n11221\n11111\n\nClockL\n#f7e26b\n.....\n.....\n....0\n....0\n....0\n\nClockR\n#f7e26b\n.....\n.....\n0....\n0....\n0....\n\nClockD\n#f7e26b #f0f6f0 #6e6962\n01110\n.000.\n..2..\n..2..\n.....\n\nPlayerSpr\n#F1C69B #4A403B Black\n.202.\n.000.\n.111.\n.1.1.\n.....\n\n\nUPlayer\n#F1C69B #4A403B Black #c5ccb8 #f7e26b\n4000.\n.000.\n.111.\n.1.1.\n.....\n\nRPlayer\n#F1C69B #4A403B Black #c5ccb8 #f7e26b\n.0024\n.000.\n.111.\n.1.1.\n.....\n\nLPlayer\n#F1C69B #4A403B Black #c5ccb8 #f7e26b\n4200.\n.000.\n.111.\n.1.1.\n.....\n\nDPlayer\n#F1C69B #4A403B Black #c5ccb8 #f7e26b\n.2424\n.004.\n.111.\n.1.1.\n.....\n\n\nOverPlayer\n#F1C69B #564A44 #3E3531 #4A403B\n.....\n.222.\n.222.\n21112\n33333\n\nExit\n#5F5A54\n.....\n.....\n.....\n00000\n.....\n\nExitR\n#6e6962 #c5ccb8 #5F5A54\n0....\n0....\n0....\n0....\n.....\n\nExitL\n#6e6962 #c5ccb8 #5F5A54\n....0\n....0\n....0\n....0\n.....\n\nExitU\n#6e6962 #5F5A54\n.111.\n10001\n00.00\n.....\n.....\n\nExitUR\n#c5ccb8 #6e6962 #5F5A54\n.....\n2....\n1....\n1....\n1....\n\nExitUL\n#c5ccb8 #6e6962 #5F5A54\n.....\n....2\n....1\n....1\n....1\n\nDoor\n#514D48\n0.0.0\n.0.0.\n0.0.0\n.....\n.....\n\nOverDoor\n#514D48\n.....\n.....\n.0.0.\n0.0.0\n.0.0.\n\nGate\n#f7e26b #ECD968\n.....\n.....\n.....\n00000\n.....\n\nGateR\n#f7e26b #ECD968\n0....\n0....\n0....\n0....\n.....\n\nGateL\n#f7e26b #ECD968\n....0\n....0\n....0\n....0\n.....\n\nGateU\n#f7e26b #ECD968\n.111.\n10001\n00.00\n.....\n.....\n\nGateUR\n#f7e26b #ECD968\n.....\n1....\n0....\n0....\n0....\n\nGateUL\n#f7e26b #ECD968\n.....\n....1\n....0\n....0\n....0\n\nOverBushR\n#93a167\n.....\n.....\n..000\n..000\n..000\n\nOverBushL\n#93a167\n.....\n.....\n000..\n000..\n000..\n\nBushR\n#93a167 #557064\n..000\n..000\n..111\n..111\n..111\n\nBushL\n#93a167 #557064\n000..\n000..\n111..\n111..\n111..\n\n0\n#f0f6f0 \n.....\n..0..\n.0.0.\n.0.0.\n..0..\n\n1\n#f0f6f0 \n.....\n..0..\n.00..\n..0..\n.000.\n\n2\n#f0f6f0 \n.....\n.00..\n...0.\n..0..\n.000.\n\n3\n#f0f6f0 \n.....\n.000.\n..00.\n...0.\n.000.\n\n4\n#f0f6f0 \n.....\n.0...\n.0.0.\n.000.\n...0.\n\n5\n#f0f6f0 \n.....\n.00..\n.000.\n...0.\n.000.\n\n6\n#f0f6f0 \n.....\n.0...\n.0...\n.000.\n.000.\n\n7\n#f0f6f0 \n.....\n.000.\n...0.\n..0..\n.0...\n\n8\n#f0f6f0 \n.....\n.000.\n.000.\n.0.0.\n.000.\n\n9\n#f0f6f0 \n.....\n.000.\n.0.0.\n.000.\n...0.\n\nSoundStop\ntransparent\n\nCountDown\ntransparent\n\nCountUp\ntransparent\n\ncp\nTransparent\n\nStop\nTransparent\n\nSame\nTransparent\n\nRewind\nTransparent\n\nNoMarks\ntransparent\n\nHighest\ntransparent\n\nz0\ntransparent\n\nx0\ntransparent\n\nq1\ntransparent\nq2\nTransparent\nq3\nTransparent\nq4\nTransparent\nq5\nTransparent\nq6\nTransparent\nq7\nTransparent\nq8\nTransparent\nq9\nTransparent\nq10\nTransparent\nq11\nTransparent\nq12\nTransparent\nq13\nTransparent\nq14\nTransparent\nq15\nTransparent\nq16\nTransparent\nq17\nTransparent\nq18\nTransparent\nq19\nTransparent\nq20\nTransparent\nq21\nTransparent\nq22\nTransparent\nq23\nTransparent\nq24\nTransparent\nq25\nTransparent\nq26\nTransparent\nq27\nTransparent\nq28\nTransparent\nq29\nTransparent\nq30\nTransparent\nq31\nTransparent\nq32\nTransparent\nq33\nTransparent\nq34\nTransparent\nq35\nTransparent\nq36\nTransparent\nq37\nTransparent\nq38\nTransparent\nq39\nTransparent\nq40\nTransparent\nq41\nTransparent\nq42\nTransparent\nq43\nTransparent\nq44\nTransparent\nq45\nTransparent\nq46\nTransparent\nq47\nTransparent\nq48\nTransparent\nq49\nTransparent\nq50\nTransparent\nq51\nTransparent\nq52\nTransparent\nq53\nTransparent\nq54\nTransparent\nq55\nTransparent\nq56\nTransparent\nq57\nTransparent\nq58\nTransparent\nq59\nTransparent\nq60\nTransparent\nq61\nTransparent\nq62\nTransparent\nq63\nTransparent\nq64\nTransparent\nq65\nTransparent\nq66\nTransparent\nq67\nTransparent\nq68\nTransparent\nq69\nTransparent\nq70\nTransparent\nq71\nTransparent\nq72\nTransparent\nq73\nTransparent\nq74\nTransparent\nq75\nTransparent\nq76\nTransparent\nq77\nTransparent\nq78\nTransparent\nq79\nTransparent\nq80\nTransparent\nq81\nTransparent\nq82\nTransparent\nq83\nTransparent\nq84\nTransparent\nq85\nTransparent\nq86\nTransparent\nq87\nTransparent\nq88\nTransparent\nq89\nTransparent\nq90\nTransparent\nq91\nTransparent\nq92\nTransparent\nq93\nTransparent\nq94\nTransparent\nq95\nTransparent\nq96\nTransparent\nq97\nTransparent\nq98\nTransparent\nq99\nTransparent\nq100\nTransparent\nq101\ntransparent\nq102\ntransparent\nq103\ntransparent\nq104\ntransparent\nq105\ntransparent\nq106\ntransparent\nq107\ntransparent\nq108\ntransparent\nq109\ntransparent\nq110\ntransparent\nq111\ntransparent\nq112\ntransparent\nq113\ntransparent\nq114\ntransparent\nq115\ntransparent\nq116\ntransparent\nq117\ntransparent\nq118\ntransparent\nq119\ntransparent\nq120\ntransparent\nq121\ntransparent\nq122\ntransparent\nq123\ntransparent\nq124\ntransparent\nq125\ntransparent\nq126\ntransparent\nq127\ntransparent\nq128\ntransparent\nq129\ntransparent\nq130\ntransparent\nq131\ntransparent\nq132\ntransparent\nq133\ntransparent\nq134\ntransparent\nq135\ntransparent\nq136\ntransparent\nq137\ntransparent\nq138\ntransparent\nq139\ntransparent\nq140\ntransparent\nq141\ntransparent\nq142\ntransparent\nq143\ntransparent\nq144\ntransparent\nq145\ntransparent\nq146\ntransparent\nq147\ntransparent\nq148\ntransparent\nq149\ntransparent\nq150\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n\n- = Bounds\n\n# = Wall\n! = BoundaryWall and Wall\np = PlayerSpr and q1\ne = Exit and Bounds\n* = Crate\nt = TimeCrate\no = Target\nc = clock and BoundaryWall and Wall\ng = gate\n\nWalls = Wall or BushR or BushL or Door\nCrates = Crate or TimeCrate\n\nWallOrExit = Walls or Exit\n\nremove = OverWall or OverPlayer or ExitR or ExitL or ExitU or ExitUR or ExitUL or Dot or OverBushR or OverBushL or OverCrate or OverTimeCrate or FadeCrate or OverFadeCrate or OverDoor or ClockR or ClockD or ClockL or OverStatue\n\nDirPlayer = UPlayer or RPlayer or DPlayer or LPlayer\n\nNumber = 0 or 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9\n\nClockSide = ClockL or ClockR\n\nMark = q150 or q149 or q148 or q147 or q146 or q145 or q144 or q143 or q142 or q141 or q140 or q139 or q138 or q137 or q136 or q135 or q134 or q133 or q132 or q131 or q130 or q129 or q128 or q127 or q126 or q125 or q124 or q123 or q122 or q121 or q120 or q119 or q118 or q117 or q116 or q115 or q114 or q113 or q112 or q111 or q110 or q109 or q108 or q107 or q106 or q105 or q104 or q103 or q102 or q101 or q100 or q99 or q98 or q97 or q96 or q95 or q94 or q93 or q92 or q91 or q90 or q89 or q88 or q87 or q86 or q85 or q84 or q83 or q82 or q81 or q80 or q79 or q78 or q77 or q76 or q75 or q74 or q73 or q72 or q71 or q70 or q69 or q68 or q67 or q66 or q65 or q64 or q63 or q62 or q61 or q60 or q59 or q58 or q57 or q56 or q55 or q54 or q53 or q52 or q51 or q50 or q49 or q48 or q47 or q46 or q45 or q44 or q43 or q42 or q41 or q40 or q39 or q38 or q37 or q36 or q35 or q34 or q33 or q32 or q31 or q30 or q29 or q28 or q27 or q26 or q25 or q24 or q23 or q22 or q21 or q20 or q19 or q18 or q17 or q16 or q15 or q14 or q13 or q12 or q11 or q10 or q9 or q8 or q7 or q6 or q5 or q4 or q3 or q2\n\n=======\nSOUNDS\n=======\n\nsfx0 76045107\nsfx1 32958905\nsfx2 11140903\nsfx3 3750107\n\nrestart 26711100\n\nshowmessage 76045107\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nDot\nExit\nGate\nCam\nBounds\nTarget\nSoundStop\ncp\nStop\nRewind\nSame\nNoMarks\nHighest\nz0\nx0\nq1\nq2\nq3\nq4\nq5\nq6\nq7\nq8\nq9\nq10\nq11\nq12\nq13\nq14\nq15\nq16\nq17\nq18\nq19\nq20\nq21\nq22\nq23\nq24\nq25\nq26\nq27\nq28\nq29\nq30\nq31\nq32\nq33\nq34\nq35\nq36\nq37\nq38\nq39\nq40\nq41\nq42\nq43\nq44\nq45\nq46\nq47\nq48\nq49\nq50\nq51\nq52\nq53\nq54\nq55\nq56\nq57\nq58\nq59\nq60\nq61\nq62\nq63\nq64\nq65\nq66\nq67\nq68\nq69\nq70\nq71\nq72\nq73\nq74\nq75\nq76\nq77\nq78\nq79\nq80\nq81\nq82\nq83\nq84\nq85\nq86\nq87\nq88\nq89\nq90\nq91\nq92\nq93\nq94\nq95\nq96\nq97\nq98\nq99\nq100\nq101\nq102\nq103\nq104\nq105\nq106\nq107\nq108\nq109\nq110\nq111\nq112\nq113\nq114\nq115\nq116\nq117\nq118\nq119\nq120\nq121\nq122\nq123\nq124\nq125\nq126\nq127\nq128\nq129\nq130\nq131\nq132\nq133\nq134\nq135\nq136\nq137\nq138\nq139\nq140\nq141\nq142\nq143\nq144\nq145\nq146\nq147\nq148\nq149\nq150\nExitR ExitL\nGateR GateL\nDoor\nCrate\nWall PlayerSpr BushR BushL\nUPlayer RPlayer DPlayer LPlayer\nStatue\nTimeCrate\nFadeCrate\nOverWall OverBushR OverBushL OverCrate OverTimeCrate\nOverFadeCrate\nExitU ExitUR ExitUL\nGateU GateUR GateUL\nOverDoor\nOverPlayer\nOverStatue\nClock\nClockR Clockd ClockL\nCountDown CountUp\nNumber\nPlayer\nBoundaryWall\n\n======\nRULES\n======\n\nup [PlayerSpr no DirPlayer no Statue] [ | Exit | ] -> [PlayerSpr] [cp | Exit | cp]\n\n[DirPlayer] -> []\n\n[stationary Player] -> cancel\n\n[> Player] [q150] -> cancel\n\n[] -> [NoMarks]\n[NoMarks] [Mark] -> [] [Mark]\n[action Player] [NoMarks] -> cancel\n\n(Movement)\n[> Player] [PlayerSpr] -> [Player] [> PlayerSpr] \n\n[> PlayerSpr Statue] -> [PlayerSpr Statue] cancel\n[> PlayerSpr | Crates | Crates] -> [PlayerSpr | Crates | Crates] cancel\n[> PlayerSpr | Crates | Walls] -> [PlayerSpr | Crates | Walls] cancel\n[> PlayerSpr | Walls] -> [PlayerSpr | Walls] cancel\n\n[> PlayerSpr] -> sfx0\n\n[OverPlayer Gate] -> [Gate] win\ndown [> PlayerSpr Gate] -> [Gate OverPlayer] again\n\n(Sprite direction)\nup [> PlayerSpr] -> [> PlayerSpr > UPlayer]\nright [> PlayerSpr] -> [> PlayerSpr > RPlayer]\ndown [> PlayerSpr] -> [> PlayerSpr > DPlayer]\nleft [> PlayerSpr] -> [> PlayerSpr > LPlayer]\n\n[> PlayerSpr | TimeCrate] -> [> PlayerSpr | > TimeCrate]\n\n[Stop] -> []\n[action Player] [PlayerSpr] -> [Player] [action PlayerSpr]\n\n\n(Placing Player Markers)\n(--Can this be refactored to be scalable?????? Probably not...)\n[> PlayerSpr no Stop] [q149]-> [> PlayerSpr > q150 Stop] [q149]\n[> PlayerSpr no Stop] [q148]-> [> PlayerSpr > q149 Stop] [q148]\n[> PlayerSpr no Stop] [q147]-> [> PlayerSpr > q148 Stop] [q147]\n[> PlayerSpr no Stop] [q146]-> [> PlayerSpr > q147 Stop] [q146]\n[> PlayerSpr no Stop] [q145]-> [> PlayerSpr > q146 Stop] [q145]\n[> PlayerSpr no Stop] [q144]-> [> PlayerSpr > q145 Stop] [q144]\n[> PlayerSpr no Stop] [q143]-> [> PlayerSpr > q144 Stop] [q143]\n[> PlayerSpr no Stop] [q142]-> [> PlayerSpr > q143 Stop] [q142]\n[> PlayerSpr no Stop] [q141]-> [> PlayerSpr > q142 Stop] [q141]\n[> PlayerSpr no Stop] [q140]-> [> PlayerSpr > q141 Stop] [q140]\n[> PlayerSpr no Stop] [q139]-> [> PlayerSpr > q140 Stop] [q139]\n[> PlayerSpr no Stop] [q138]-> [> PlayerSpr > q139 Stop] [q138]\n[> PlayerSpr no Stop] [q137]-> [> PlayerSpr > q138 Stop] [q137]\n[> PlayerSpr no Stop] [q136]-> [> PlayerSpr > q137 Stop] [q136]\n[> PlayerSpr no Stop] [q135]-> [> PlayerSpr > q136 Stop] [q135]\n[> PlayerSpr no Stop] [q134]-> [> PlayerSpr > q135 Stop] [q134]\n[> PlayerSpr no Stop] [q133]-> [> PlayerSpr > q134 Stop] [q133]\n[> PlayerSpr no Stop] [q132]-> [> PlayerSpr > q133 Stop] [q132]\n[> PlayerSpr no Stop] [q131]-> [> PlayerSpr > q132 Stop] [q131]\n[> PlayerSpr no Stop] [q130]-> [> PlayerSpr > q131 Stop] [q130]\n[> PlayerSpr no Stop] [q129]-> [> PlayerSpr > q130 Stop] [q129]\n[> PlayerSpr no Stop] [q128]-> [> PlayerSpr > q129 Stop] [q128]\n[> PlayerSpr no Stop] [q127]-> [> PlayerSpr > q128 Stop] [q127]\n[> PlayerSpr no Stop] [q126]-> [> PlayerSpr > q127 Stop] [q126]\n[> PlayerSpr no Stop] [q125]-> [> PlayerSpr > q126 Stop] [q125]\n[> PlayerSpr no Stop] [q124]-> [> PlayerSpr > q125 Stop] [q124]\n[> PlayerSpr no Stop] [q123]-> [> PlayerSpr > q124 Stop] [q123]\n[> PlayerSpr no Stop] [q122]-> [> PlayerSpr > q123 Stop] [q122]\n[> PlayerSpr no Stop] [q121]-> [> PlayerSpr > q122 Stop] [q121]\n[> PlayerSpr no Stop] [q120]-> [> PlayerSpr > q121 Stop] [q120]\n[> PlayerSpr no Stop] [q119]-> [> PlayerSpr > q120 Stop] [q119]\n[> PlayerSpr no Stop] [q118]-> [> PlayerSpr > q119 Stop] [q118]\n[> PlayerSpr no Stop] [q117]-> [> PlayerSpr > q118 Stop] [q117]\n[> PlayerSpr no Stop] [q116]-> [> PlayerSpr > q117 Stop] [q116]\n[> PlayerSpr no Stop] [q115]-> [> PlayerSpr > q116 Stop] [q115]\n[> PlayerSpr no Stop] [q114]-> [> PlayerSpr > q115 Stop] [q114]\n[> PlayerSpr no Stop] [q113]-> [> PlayerSpr > q114 Stop] [q113]\n[> PlayerSpr no Stop] [q112]-> [> PlayerSpr > q113 Stop] [q112]\n[> PlayerSpr no Stop] [q111]-> [> PlayerSpr > q112 Stop] [q111]\n[> PlayerSpr no Stop] [q110]-> [> PlayerSpr > q111 Stop] [q110]\n[> PlayerSpr no Stop] [q109]-> [> PlayerSpr > q110 Stop] [q109]\n[> PlayerSpr no Stop] [q108]-> [> PlayerSpr > q109 Stop] [q108]\n[> PlayerSpr no Stop] [q107]-> [> PlayerSpr > q108 Stop] [q107]\n[> PlayerSpr no Stop] [q106]-> [> PlayerSpr > q107 Stop] [q106]\n[> PlayerSpr no Stop] [q105]-> [> PlayerSpr > q106 Stop] [q105]\n[> PlayerSpr no Stop] [q104]-> [> PlayerSpr > q105 Stop] [q104]\n[> PlayerSpr no Stop] [q103]-> [> PlayerSpr > q104 Stop] [q103]\n[> PlayerSpr no Stop] [q102]-> [> PlayerSpr > q103 Stop] [q102]\n[> PlayerSpr no Stop] [q101]-> [> PlayerSpr > q102 Stop] [q101]\n[> PlayerSpr no Stop] [q100]-> [> PlayerSpr > q101 Stop] [q100]\n[> PlayerSpr no Stop] [q99] -> [> PlayerSpr > q100 Stop] [q99]\n[> PlayerSpr no Stop] [q98] -> [> PlayerSpr > q99 Stop] [q98]\n[> PlayerSpr no Stop] [q97] -> [> PlayerSpr > q98 Stop] [q97]\n[> PlayerSpr no Stop] [q96] -> [> PlayerSpr > q97 Stop] [q96]\n[> PlayerSpr no Stop] [q95] -> [> PlayerSpr > q96 Stop] [q95]\n[> PlayerSpr no Stop] [q94] -> [> PlayerSpr > q95 Stop] [q94]\n[> PlayerSpr no Stop] [q93] -> [> PlayerSpr > q94 Stop] [q93]\n[> PlayerSpr no Stop] [q92] -> [> PlayerSpr > q93 Stop] [q92]\n[> PlayerSpr no Stop] [q91] -> [> PlayerSpr > q92 Stop] [q91]\n[> PlayerSpr no Stop] [q90] -> [> PlayerSpr > q91 Stop] [q90]\n[> PlayerSpr no Stop] [q89] -> [> PlayerSpr > q90 Stop] [q89]\n[> PlayerSpr no Stop] [q88] -> [> PlayerSpr > q89 Stop] [q88]\n[> PlayerSpr no Stop] [q87] -> [> PlayerSpr > q88 Stop] [q87]\n[> PlayerSpr no Stop] [q86] -> [> PlayerSpr > q87 Stop] [q86]\n[> PlayerSpr no Stop] [q85] -> [> PlayerSpr > q86 Stop] [q85]\n[> PlayerSpr no Stop] [q84] -> [> PlayerSpr > q85 Stop] [q84]\n[> PlayerSpr no Stop] [q83] -> [> PlayerSpr > q84 Stop] [q83]\n[> PlayerSpr no Stop] [q82] -> [> PlayerSpr > q83 Stop] [q82]\n[> PlayerSpr no Stop] [q81] -> [> PlayerSpr > q82 Stop] [q81]\n[> PlayerSpr no Stop] [q80] -> [> PlayerSpr > q81 Stop] [q80]\n[> PlayerSpr no Stop] [q79] -> [> PlayerSpr > q80 Stop] [q79]\n[> PlayerSpr no Stop] [q78] -> [> PlayerSpr > q79 Stop] [q78]\n[> PlayerSpr no Stop] [q77] -> [> PlayerSpr > q78 Stop] [q77]\n[> PlayerSpr no Stop] [q76] -> [> PlayerSpr > q77 Stop] [q76]\n[> PlayerSpr no Stop] [q75] -> [> PlayerSpr > q76 Stop] [q75]\n[> PlayerSpr no Stop] [q74] -> [> PlayerSpr > q75 Stop] [q74]\n[> PlayerSpr no Stop] [q73] -> [> PlayerSpr > q74 Stop] [q73]\n[> PlayerSpr no Stop] [q72] -> [> PlayerSpr > q73 Stop] [q72]\n[> PlayerSpr no Stop] [q71] -> [> PlayerSpr > q72 Stop] [q71]\n[> PlayerSpr no Stop] [q70] -> [> PlayerSpr > q71 Stop] [q70]\n[> PlayerSpr no Stop] [q69] -> [> PlayerSpr > q70 Stop] [q69]\n[> PlayerSpr no Stop] [q68] -> [> PlayerSpr > q69 Stop] [q68]\n[> PlayerSpr no Stop] [q67] -> [> PlayerSpr > q68 Stop] [q67]\n[> PlayerSpr no Stop] [q66] -> [> PlayerSpr > q67 Stop] [q66]\n[> PlayerSpr no Stop] [q65] -> [> PlayerSpr > q66 Stop] [q65]\n[> PlayerSpr no Stop] [q64] -> [> PlayerSpr > q65 Stop] [q64]\n[> PlayerSpr no Stop] [q63] -> [> PlayerSpr > q64 Stop] [q63]\n[> PlayerSpr no Stop] [q62] -> [> PlayerSpr > q63 Stop] [q62]\n[> PlayerSpr no Stop] [q61] -> [> PlayerSpr > q62 Stop] [q61]\n[> PlayerSpr no Stop] [q60] -> [> PlayerSpr > q61 Stop] [q60]\n[> PlayerSpr no Stop] [q59] -> [> PlayerSpr > q60 Stop] [q59]\n[> PlayerSpr no Stop] [q58] -> [> PlayerSpr > q59 Stop] [q58]\n[> PlayerSpr no Stop] [q57] -> [> PlayerSpr > q58 Stop] [q57]\n[> PlayerSpr no Stop] [q56] -> [> PlayerSpr > q57 Stop] [q56]\n[> PlayerSpr no Stop] [q55] -> [> PlayerSpr > q56 Stop] [q55]\n[> PlayerSpr no Stop] [q54] -> [> PlayerSpr > q55 Stop] [q54]\n[> PlayerSpr no Stop] [q53] -> [> PlayerSpr > q54 Stop] [q53]\n[> PlayerSpr no Stop] [q52] -> [> PlayerSpr > q53 Stop] [q52]\n[> PlayerSpr no Stop] [q51] -> [> PlayerSpr > q52 Stop] [q51]\n[> PlayerSpr no Stop] [q50] -> [> PlayerSpr > q51 Stop] [q50]\n[> PlayerSpr no Stop] [q49] -> [> PlayerSpr > q50 Stop] [q49]\n[> PlayerSpr no Stop] [q48] -> [> PlayerSpr > q49 Stop] [q48]\n[> PlayerSpr no Stop] [q47] -> [> PlayerSpr > q48 Stop] [q47]\n[> PlayerSpr no Stop] [q46] -> [> PlayerSpr > q47 Stop] [q46]\n[> PlayerSpr no Stop] [q45] -> [> PlayerSpr > q46 Stop] [q45]\n[> PlayerSpr no Stop] [q44] -> [> PlayerSpr > q45 Stop] [q44]\n[> PlayerSpr no Stop] [q43] -> [> PlayerSpr > q44 Stop] [q43]\n[> PlayerSpr no Stop] [q42] -> [> PlayerSpr > q43 Stop] [q42]\n[> PlayerSpr no Stop] [q41] -> [> PlayerSpr > q42 Stop] [q41]\n[> PlayerSpr no Stop] [q40] -> [> PlayerSpr > q41 Stop] [q40]\n[> PlayerSpr no Stop] [q39] -> [> PlayerSpr > q40 Stop] [q39]\n[> PlayerSpr no Stop] [q38] -> [> PlayerSpr > q39 Stop] [q38]\n[> PlayerSpr no Stop] [q37] -> [> PlayerSpr > q38 Stop] [q37]\n[> PlayerSpr no Stop] [q36] -> [> PlayerSpr > q37 Stop] [q36]\n[> PlayerSpr no Stop] [q35] -> [> PlayerSpr > q36 Stop] [q35]\n[> PlayerSpr no Stop] [q34] -> [> PlayerSpr > q35 Stop] [q34]\n[> PlayerSpr no Stop] [q33] -> [> PlayerSpr > q34 Stop] [q33]\n[> PlayerSpr no Stop] [q32] -> [> PlayerSpr > q33 Stop] [q32]\n[> PlayerSpr no Stop] [q31] -> [> PlayerSpr > q32 Stop] [q31]\n[> PlayerSpr no Stop] [q30] -> [> PlayerSpr > q31 Stop] [q30]\n[> PlayerSpr no Stop] [q29] -> [> PlayerSpr > q30 Stop] [q29]\n[> PlayerSpr no Stop] [q28] -> [> PlayerSpr > q29 Stop] [q28]\n[> PlayerSpr no Stop] [q27] -> [> PlayerSpr > q28 Stop] [q27]\n[> PlayerSpr no Stop] [q26] -> [> PlayerSpr > q27 Stop] [q26]\n[> PlayerSpr no Stop] [q25] -> [> PlayerSpr > q26 Stop] [q25]\n[> PlayerSpr no Stop] [q24] -> [> PlayerSpr > q25 Stop] [q24]\n[> PlayerSpr no Stop] [q23] -> [> PlayerSpr > q24 Stop] [q23]\n[> PlayerSpr no Stop] [q22] -> [> PlayerSpr > q23 Stop] [q22]\n[> PlayerSpr no Stop] [q21] -> [> PlayerSpr > q22 Stop] [q21]\n[> PlayerSpr no Stop] [q20] -> [> PlayerSpr > q21 Stop] [q20]\n[> PlayerSpr no Stop] [q19] -> [> PlayerSpr > q20 Stop] [q19]\n[> PlayerSpr no Stop] [q18] -> [> PlayerSpr > q19 Stop] [q18]\n[> PlayerSpr no Stop] [q17] -> [> PlayerSpr > q18 Stop] [q17]\n[> PlayerSpr no Stop] [q16] -> [> PlayerSpr > q17 Stop] [q16]\n[> PlayerSpr no Stop] [q15] -> [> PlayerSpr > q16 Stop] [q15]\n[> PlayerSpr no Stop] [q14] -> [> PlayerSpr > q15 Stop] [q14]\n[> PlayerSpr no Stop] [q13] -> [> PlayerSpr > q14 Stop] [q13]\n[> PlayerSpr no Stop] [q12] -> [> PlayerSpr > q13 Stop] [q12]\n[> PlayerSpr no Stop] [q11] -> [> PlayerSpr > q12 Stop] [q11]\n[> PlayerSpr no Stop] [q10] -> [> PlayerSpr > q11 Stop] [q10]\n[> PlayerSpr no Stop] [q9] -> [> PlayerSpr > q10 Stop] [q9]\n[> PlayerSpr no Stop] [q8] -> [> PlayerSpr > q9 Stop] [q8]\n[> PlayerSpr no Stop] [q7] -> [> PlayerSpr > q8 Stop] [q7]\n[> PlayerSpr no Stop] [q6] -> [> PlayerSpr > q7 Stop] [q6]\n[> PlayerSpr no Stop] [q5] -> [> PlayerSpr > q6 Stop] [q5]\n[> PlayerSpr no Stop] [q4] -> [> PlayerSpr > q5 Stop] [q4]\n[> PlayerSpr no Stop] [q3] -> [> PlayerSpr > q4 Stop] [q3]\n[> PlayerSpr no Stop] [q2] -> [> PlayerSpr > q3 Stop] [q2]\n[> PlayerSpr no Stop] [q1] -> [> PlayerSpr > q2 Stop] [q1]\n\n(Placing Crate Markers)\n[> PlayerSpr > Mark | Crate] -> [> PlayerSpr > Mark | > Crate > Mark]\n\n(Rewinding)\n(Teleport the highest mark under the player and the highest mark that is under a crate next to each other at the x and z position)\n[Stop] -> []\n[action PlayerSpr Mark no Stop] [] -> [action PlayerSpr Mark Stop] [z0 Mark] sfx1\nright [z0 | ] -> [z0 | x0]\n[Stop] -> []\n[Highest] -> []\n[Mark Crate] [action PlayerSpr no Stop] [x0] -> [Crate Mark Highest] [action PlayerSpr Stop] [x0 Mark]\n\n(Try to move the objects together)\nright [z0 | Mark x0 ] -> [z0 | < Mark x0]\n\n(The rest of the code must be done \"late\" so I can see the result of the equality check, so I convert the action state to an object called \"Rewind\")\n[Rewind] -> []\n[action PlayerSpr] -> [Rewind PlayerSpr]\n\n(Place the PlayerD object if it's the first turn)\n[stationary PlayerSpr no Rewind] -> [PlayerSpr DPlayer]\n\n(Checks if the two objects failed to combine, if this is the case, then we know they are the same object)\nlate [x0 Mark] [Crate Highest] -> [x0] [Crate Mark Same]\nlate [Mark z0] -> [z0]\n\n(Rewinds a pushed crate)\nlate [Rewind PlayerSpr] [Crate Mark Same] -> [Rewind PlayerSpr Crate] []\n\n(Removes the highest mark that is under the player)\nlate [Stop] -> []\nlate [Rewind PlayerSpr Mark no Stop] -> [Rewind PlayerSpr Stop]\n(Teleports the player to the starting position if there are no marks)\nlate [] -> [NoMarks]\nlate [NoMarks] [Mark] -> [] [Mark]\nlate [NoMarks] [Rewind PlayerSpr no q1] [q1 no Crate] -> [NoMarks] [] [PlayerSpr q1 Rewind DPlayer]\n(Teleports the player to the highest mark)\nlate [Stop] -> []\nlate [Rewind PlayerSpr no Stop] [Mark no Crate no PlayerSpr] -> [] [PlayerSpr Mark Rewind Stop]\n\n(Faces the player in the correct direction after rewinding)\nlate [Stop] -> []\nlate [Highest] -> []\nlate [PlayerSpr no Stop] [Mark no Crate no PlayerSpr] -> [PlayerSpr Stop] [Mark Highest]\n\nlate [] -> [NoMarks]\nlate [NoMarks] [Mark no q2] -> [] [Mark]\n\nlate up [NoMarks] [Rewind PlayerSpr | q1] -> [][Rewind PlayerSpr DPlayer | q1]\nlate right[NoMarks] [Rewind PlayerSpr | q1] -> [][Rewind PlayerSpr LPlayer | q1]\nlate down[NoMarks] [Rewind PlayerSpr | q1] -> [] [Rewind PlayerSpr UPlayer | q1]\nlate left[NoMarks] [Rewind PlayerSpr | q1] -> [] [Rewind PlayerSpr RPlayer | q1]\n\nlate up [Rewind PlayerSpr | Highest] -> [Rewind PlayerSpr DPlayer | ]\nlate right [Rewind PlayerSpr | Highest] -> [Rewind PlayerSpr LPlayer | ]\nlate down [Rewind PlayerSpr | Highest] -> [Rewind PlayerSpr UPlayer | ]\nlate left [Rewind PlayerSpr | Highest] -> [Rewind PlayerSpr RPlayer | ]\n\n\n[Number no Wall] -> [Number Wall BoundaryWall]\n\n(Player/Camera)\nlate [PlayerSpr no Exit no Gate] [Player] -> [PlayerSpr] []\nlate [PlayerSpr no Exit no Gate] -> [PlayerSpr Player]\nlate [Player no BoundaryWall no Exit no Gate | ] -> [Player | Player]\n\n(Doors)\nlate [SoundStop] -> []\nlate [Door] -> [Door SoundStop]\nlate [Door] -> []\nlate [Player | | Exit] [Player Target no Crates] -> [Player | | Exit Door] [Player Target]\n\n[moving Player] [stationary Player] -> [moving Player] [moving Player]\n\nlate [PlayerSpr Exit] [Door] -> [PlayerSpr Exit] []\n\n(Door Sfx)\nlate [SoundStop Exit no Door] -> [Exit] sfx2\n\n(Checkpoint)\nlate [cp Player no PlayerSpr] -> [Player]\nlate [cp PlayerSpr] -> checkpoint\n\n(Timer)\n(Decrease when player moves)\nlate [ClockD Player | no 0 | 0] [PlayerSpr no Rewind] -> [ClockD Player | | 9 Countdown] [PlayerSpr]\nlate [ClockD Player | | 1] [PlayerSpr no Rewind] -> [ClockD Player | | 0] [PlayerSpr]\nlate [ClockD Player | | 2] [PlayerSpr no Rewind] -> [ClockD Player | | 1] [PlayerSpr]\nlate [ClockD Player | | 3] [PlayerSpr no Rewind] -> [ClockD Player | | 2] [PlayerSpr]\nlate [ClockD Player | | 4] [PlayerSpr no Rewind] -> [ClockD Player | | 3] [PlayerSpr]\nlate [ClockD Player | | 5] [PlayerSpr no Rewind] -> [ClockD Player | | 4] [PlayerSpr]\nlate [ClockD Player | | 6] [PlayerSpr no Rewind] -> [ClockD Player | | 5] [PlayerSpr]\nlate [ClockD Player | | 7] [PlayerSpr no Rewind] -> [ClockD Player | | 6] [PlayerSpr]\nlate [ClockD Player | | 8] [PlayerSpr no Rewind] -> [ClockD Player | | 7] [PlayerSpr]\nlate [ClockD Player | | 9 no CountDown] [PlayerSpr no Rewind] -> [ClockD Player | | 8] [PlayerSpr]\n\n(Increase when player rewinds)\nlate [ClockD Player | | 9] [Rewind PlayerSpr] -> [ClockD Player | | 0 CountUp] [Rewind PlayerSpr]\nlate [ClockD Player | | 8] [Rewind PlayerSpr] -> [ClockD Player | | 9] [Rewind PlayerSpr]\nlate [ClockD Player | | 7] [Rewind PlayerSpr] -> [ClockD Player | | 8] [Rewind PlayerSpr]\nlate [ClockD Player | | 6] [Rewind PlayerSpr] -> [ClockD Player | | 7] [Rewind PlayerSpr]\nlate [ClockD Player | | 5] [Rewind PlayerSpr] -> [ClockD Player | | 6] [Rewind PlayerSpr]\nlate [ClockD Player | | 4] [Rewind PlayerSpr] -> [ClockD Player | | 5] [Rewind PlayerSpr]\nlate [ClockD Player | | 3] [Rewind PlayerSpr] -> [ClockD Player | | 4] [Rewind PlayerSpr]\nlate [ClockD Player | | 2] [Rewind PlayerSpr] -> [ClockD Player | | 3] [Rewind PlayerSpr]\nlate [ClockD Player | | 1] [Rewind PlayerSpr] -> [ClockD Player | | 2] [Rewind PlayerSpr]\nlate [ClockD Player | | 0 no CountUp] [Rewind PlayerSpr] -> [ClockD Player | | 1] [Rewind PlayerSpr]\n\n(Tens digit countdown)\nlate down [1 | CountDown] -> [0 | ]\nlate down [2 | CountDown] -> [1 | ]\nlate down [3 | CountDown] -> [2 | ]\nlate down [4 | CountDown] -> [3 | ]\nlate down [5 | CountDown] -> [4 | ]\nlate down [6 | CountDown] -> [5 | ]\nlate down [7 | CountDown] -> [6 | ]\nlate down [8 | CountDown] -> [7 | ]\nlate down [9 | CountDown] -> [8 | ]\n\n(Tens digit countup)\nlate down [8 | CountUp] -> [9 | ]\nlate down [7 | CountUp] -> [8 | ]\nlate down [6 | CountUp] -> [7 | ]\nlate down [5 | CountUp] -> [6 | ]\nlate down [4 | CountUp] -> [5 | ]\nlate down [3 | CountUp] -> [4 | ]\nlate down [2 | CountUp] -> [3 | ]\nlate down [1 | CountUp] -> [2 | ]\nlate down [0 | CountUp] -> [1 | ]\n\n(Turns player into statue)\nlate [SoundStop] -> []\nlate [PlayerSpr no Statue] -> [PlayerSpr SoundStop]\nlate [Statue] -> []\nlate [0 | 0 Player] [PlayerSpr no Rewind] [ClockSide Player] -> [0 | 0] [PlayerSpr Statue] [ClockSide Player]\n\nlate [PlayerSpr SoundStop Statue] -> sfx3\n\n(Places the camera)\nlate down [Player | | | | | | | | | Player] -> [Player | | | | Cam | | | | | Player]\nlate right [Cam | Cam | Cam | Cam | Cam | Cam | Cam | Cam] -> [ | | | | Cam | | | ]\nlate [Player no Cam] -> []\n\n(Visuals)\nlate [remove no Gate] -> []\n\nlate [Crate TimeCrate] -> [Crate TimeCrate FadeCrate]\n\nlate [DirPlayer Statue] -> [Statue]\n\nlate up [Wall | ] -> [Wall | OverWall]\nlate up [Crate | ] -> [Crate | OverCrate]\nlate up [TimeCrate | ] -> [TimeCrate | OverTimeCrate]\nlate up [FadeCrate | ] -> [FadeCrate | OverFadeCrate]\nlate up [PlayerSpr | ] -> [PlayerSpr | OverPlayer]\nlate up [Statue | ] -> [Statue | OverStatue]\nlate up [Exit | ] -> [Exit | ExitU]\nlate up [Gate | ] -> [Gate | GateU]\nlate up [Door | ] -> [Door | OverDoor]\n\nlate right [Clock | ] -> [Clock | ClockR]\nlate down [Clock | ] -> [Clock | ClockD]\nlate left [Clock | ] -> [Clock | ClockL]\n\nlate right [Exit | ] -> [Exit | ExitR]\nlate left [Exit | ] -> [Exit | ExitL]\nlate right [ExitU | ] -> [ExitU | ExitUR]\nlate left [ExitU | ] -> [ExitU | ExitUL]\n\nlate right [Gate | ] -> [Gate | GateR]\nlate left [Gate | ] -> [Gate | GateL]\nlate right [GateU | ] -> [GateU | GateUR]\nlate left [GateU | ] -> [GateU | GateUL]\n\nlate right [Exit | Wall] -> [Exit | BushR]\nlate left [Exit | Wall] -> [Exit | BushL]\n\nlate right [Gate | Wall] -> [Gate | BushR]\nlate left [Gate | Wall] -> [Gate | BushL]\n\nlate up [BushR | ] -> [BushR | OverBushR]\nlate up [BushL | ] -> [BushL | OverBushL]\n\nlate right down [BackGround no Dot| BackGround no Dot] -> [BackGround | Dot BackGround]\nlate down [Dot | Dot] -> [Dot | BackGround]\nlate [Bounds Dot] -> [Bounds]\n\nlate [ExitU Dot] -> [ExitU]\nlate [PlayerSpr Dot] -> [PlayerSpr]\nlate [Gate | Dot] -> [Gate | ]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\nmessage It was a warm and sunny day\nmessage So into the hedges went Sir Montaclé\n\nmessage Then, a witch's curse befell the poor bloke\nmessage Now one step too many, will turn him to stone\n\nmessage Montaclé despaired, wandering lost in the maze\nmessage He knew freedom lay, just beyond the golden gate\n\nmessage But Montaclé was clever, and so are you, so fret not\nmessage Press R to restart, and space to turn back the clock\n\n---------------------\n-----!!!!!!!!!!------\n-----c......##!------\n-----!.t....##!------\n-----2#####.##!------\n-----1..o*..o.!------\n-----!...##...!------\n-----!...#####!------\n-----!........!------\n-----!........!------\n-!!!!!!!e!!!e!!!!!!!-\n-c........!........c-\n-!....####!....#o..!-\n-1.......#!........1-\n-6####..##!..#.to##7-\n-!###o.###!####.###!-\n-!##..####!...t....!-\n-!#.....t.!.....##.!-\n-!........!....#...!-\n-!!!e!!!!!!!!!!!!e!!-\n-c#...####!####....c-\n-!......##!...#.t#.!-\n-1.......o!.t.#*...1-\n-0.....#..!...#o###5-\n-!.......#!....o##.!-\n-!....#t.#!....o#..!-\n-!.......#!........!-\n-!#....###!........!-\n-!!!e!!!!!!!e!!!!!!!-\n-c#...####!.....###c-\n-!......##!......##!-\n-1..o....#!.*.....#2-\n-6...##..#!........1-\n-!....#..#!####....!-\n-!.....*.#!...#..o.!-\n-!#......#!#..#....!-\n-!######.#!.t.#....!-\n-!!!!!!!e!!!e!!!!e!!-\n-c....#...!...#....c-\n-!..#.....!..#.....!-\n-1..#.....!....#.t.2-\n-5..######!....#...0-\n-!...p....!....####!-\n-!....###.!...*o.##!-\n-!#####.#.!####...#!-\n-!....*t..!........!-\n-!!g!!!e!!!e!!!!!!!!-\n-----!...#...#c------\n-----!...#...#!------\n-----!...#...#1------\n-----!#.....##3------\n-----!##...###!------\n-----!########!------\n-----!#.....##!------\n-----!.......#!------\n-----!!!!!!!!!!------\n---------------------\n\nmessage Thank you for playing!\n\n(\n(Level1)\n---------------------\n-----!!!!!!!!!!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-!!!!!!!e!!!e!!!!!!!-\n-c....#...!........c-\n-!..#.....!........!-\n-1..#.....!........!-\n-5..######!........!-\n-!...p....!........!-\n-!....###.!........!-\n-!#####.#.!........!-\n-!....*t..!........!-\n-!!g!!!e!!!!e!!!!!!!-\n-----!........c------\n-----!........!------\n-----!........1------\n-----!........3------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!!!!!!!!!!------\n---------------------\n\n\n(Level2)\n-!........!.\n-!!!e!!!!!!!\n-c#...####!.\n-!......##!.\n-1..o....#!.\n-6...##..#!.\n-!....#..#!.\n-!.....*.#!.\n-!#......#!.\n-!######p#!.\n-!!!!!!!e!!!\n\n\n(Level3)\n-!........!.\n-!!!e!!!!!!!\n-c#...####!.\n-!......##!.\n-1.......o!.\n-0.....#..!.\n-!.......#!.\n-!....#t.#!.\n-!.......#!.\n-!#.p..###!.\n-!!!e!!!!!!!\n\n\n(Level4)\n-!........!.\n-!!!!!!!e!!!\n-c........!.\n-!....####!.\n-1.......#!.\n-6####..##!.\n-!###o.###!.\n-!##..####!.\n-!#.....t.!.\n-!..p.....!.\n-!!!e!!!!!!!\n\n\n(Level5)\n------------\n-!!!!!!!!!!-\n-c......##!-\n-!.t....##!-\n-2#####.##!-\n-1..o*..o.!-\n-!...##...!-\n-!...#####!-\n-!........!-\n-!..p.....!-\n!!!!e!!!e!!!\n\n(Level6)\n-!........!.\n!!!e!!!!!!!.\n-!.p......c.\n-!....#o..!.\n-!........1.\n-!..#.to##6.\n-!####.###!.\n-!...t....!.\n-!.....##.!.\n-!....#...!.\n!!!!!!!!e!!.\n\n(Level7)\n-!........!.\n!!!!!!!!e!!.\n-!####..p.c.\n-!...#.t#.!.\n-!.t.#*...1.\n-!...#o###5.\n-!....o##.!.\n-!....o#..!.\n-!........!.\n-!.......#!.\n!!!e!!!!!!!.\n\n(Level8)\n------------\n-!!e!!!!!!!-\n-!.p...###c-\n-!......##!-\n-!.*.....#2-\n-!........0-\n-!####....!-\n-!...#..o.!-\n-!#..#....!-\n-!.t.#....!-\n-!!e!!!!e!!-\n-!...#....c-\n-!..#.....!-\n-!....#.t.2-\n-!....#...0-\n-!....####!-\n-!...*o.##!-\n-!####...#!-\n-!........!-\n-!e!!!!!!!!-\n------------\n\n(Bottom Room, no puzzle)\n-.....!.....\n!!!e!!!e!!!!\n-!...#.p.#c.\n-!...#...#!.\n-!...#...#1.\n-!#.....##3.\n-!##...###!.\n-!########!.\n-!#.....##!.\n-!.......#!.\n-!!!!!!!!!!.\n)\n",[1,1,0,0,0,0,3,3,2,3,3,3,0,0,0,0,1,0,0,0,3,0,1,1,1,0,1,0,0,0,"restart",0,"restart",0,3,3,3,0,"undo",4,4,4,4,0,0,3,3,3,2,4,4,4,4,4,4,3,3,3,3,0,0,0,4,4,4,4,4,4,0,0,0,0,3,3,3,3],"background bounds z0:0,background bounds:1,1,1,1,1,1,1,1,1,1,background bounds clockl:2,1,1,1,1,1,1,1,1,2,\n1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,2,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background bounds x0:3,1,1,1,1,1,\n1,1,1,background bounds overwall:4,background boundarywall dot overwall wall:5,background boundarywall clock overwall wall:6,background boundarywall clockd dot overwall wall:7,1 background boundarywall overwall wall:8,6 background boundarywall dot overwall wall:9,background boundarywall overwall wall:10,5,10,5,10,background boundarywall clock dot overwall wall:11,background boundarywall clockd overwall wall:12,0 background boundarywall dot overwall wall:13,0 background boundarywall overwall wall:14,5,10,5,\n10,5,6,7,14,1 background boundarywall dot overwall wall:15,10,5,10,5,10,11,12,13,8,5,10,5,10,background boundarywall dot wall:16,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,background boundarywall wall:17,background clockr dot:18,\nbackground:19,background dot overwall:20,background overwall wall:21,background dot overwall wall:22,21,background dot wall:23,background overwall:24,5,background clockr wall:25,background dot:26,19,26,19,26,24,22,10,background clockr dot wall:27,19,26,19,\n26,24,22,21,16,background clockr:28,26,19,26,19,20,background wall:29,background dot gateul overbushl:30,background boundarywall bushl gatel:31,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,4,16,19,26,24,22,21,23,19,\nbackground dot exitul overbushl:32,background boundarywall bushl exitl:33,26,19,26,19,26,19,26,background exitul overbushl:34,background boundarywall bushl dot exitl:35,19,26,19,26,19,26,24,22,17,background dot q7:36,\nbackground q6:37,background dot q5:38,background q4:39,background dot q3:40,24,23,background gateu:41,background dot gate:42,1,1,1,1,1,1,1,1,1,1,1,1,2,\n1,1,1,1,1,1,4,17,26,19,20,21,23,19,26,background cp exitu:43,background bounds exit:44,19,26,19,26,\n19,26,background q32:45,background exitu q31:46,background bounds exit q30:47,background dot q29:48,background overcrate q28:49,background crate dot q26 target:50,19,26,19,20,21,16,background overwall q8:51,22,21,23,background q2:52,20,29,\nbackground dot gateur overbushr:53,background boundarywall bushr gater:54,1,1,1,1,1,1,1,1,1,1,4,10,11,12,2 background boundarywall dot overwall wall:55,8,5,10,5,\n10,16,19,26,24,23,background target:56,26,19,background dot exitur overbushr:57,background boundarywall bushr exitr:58,26,19,background dot q37:59,background q36:60,background dot q35:61,background q34:62,background dot q33:63,background exitur overbushr:64,background boundarywall bushr dot exitr:65,19,\nbackground dot q27:66,background overwall q25 q26:67,23,19,26,24,22,17,background dot q9:68,background q10:69,20,29,background dot q1:70,24,23,24,5,10,5,10,5,\n10,5,10,5,17,1,4,16,28,20,29,26,19,26,19,20,17,20,29,26,19,\n20,29,26,24,5,29,26,background q38:71,background cam dot player:72,24,23,19,20,10,23,19,background dot overwall q24 q25:73,background cam overwall wall:74,23,19,20,\n21,5,29,background dot q11:75,24,background cam dot wall:76,24,22,background overcrate wall:77,background crate dot exitul overbushl:78,33,26,19,20,21,22,21,23,24,16,1,\n4,17,background dot overtimecrate:79,background overwall timecrate:80,23,19,26,19,26,34,35,24,23,19,20,21,23,19,20,10,23,\n19,background dot highest overwall q39:81,29,26,19,20,21,5,29,26,background q21 q24:82,background dot q20 q21:83,background q19 q20:84,background dot q19:85,background overwall q18:86,background dot exitul overbushl wall:87,33,26,background q12:88,20,29,\n20,29,79,background exitu timecrate:89,44,background cp:90,26,19,20,21,23,19,20,17,1,4,16,19,20,29,background dot target:91,\n19,26,19,43,44,background cp dot overwall:92,29,20,21,22,background overtimecrate wall:93,background dot timecrate:94,24,5,21,background dot overplayer overstatue wall:95,background playerspr q40 soundstop statue stop:96,26,19,26,24,\n22,10,22,29,background dot q23:97,background q22:98,26,19,background dot q17:99,background exitu q16:100,background bounds exit q15:101,background q14:102,background dot q13:103,24,23,24,22,29,57,58,26,\n19,26,19,20,29,26,24,16,1,4,17,26,24,background dot overcrate wall:104,background crate overwall:105,22,29,26,64,65,24,\n22,21,22,21,23,19,20,10,22,93,background dot target timecrate:106,24,22,21,22,21,5,21,22,21,22,\n21,22,21,background dot exitur overbushr wall:107,58,26,19,20,29,26,19,26,24,5,21,22,29,26,24,23,19,\n20,17,1,4,16,19,20,29,20,21,23,19,20,10,5,10,5,10,5,10,5,\n10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,\n5,10,5,10,5,10,background boundarywall dot exitul overbushl wall:108,33,26,19,26,19,20,29,26,24,16,1,4,17,26,\n19,26,19,20,29,26,34,35,19,26,19,20,29,26,19,20,10,23,19,26,19,\n26,19,26,34,35,19,26,19,20,29,20,29,32,33,26,19,26,19,26,24,23,\n43,44,90,26,19,20,21,23,19,20,17,1,4,5,21,22,29,91,24,23,19,\n43,44,background cp dot:109,19,26,24,23,19,26,24,5,29,79,background timecrate:110,26,19,26,19,43,44,109,\nbackground overcrate:111,background crate dot:112,24,23,19,79,background cp exitu timecrate:113,44,90,26,19,26,19,20,29,57,58,26,19,20,21,\n22,21,23,24,16,1,4,10,22,21,23,19,20,29,26,64,65,19,26,24,22,\n29,26,19,20,10,23,19,26,19,26,19,26,64,65,19,26,19,20,29,26,19,\n57,58,20,29,26,19,26,24,23,24,5,background clockl overwall wall:114,22,21,22,21,22,21,22,17,1,\n4,5,10,5,10,5,10,5,10,5,17,26,19,26,24,background dot overtimecrate wall:115,110,26,24,5,21,\n22,21,23,19,26,19,20,17,26,19,26,24,22,21,22,21,5,29,26,19,26,\n111,background crate dot overwall:116,29,20,10,11,12,15,3 background boundarywall overwall wall:117,5,10,5,10,16,1,1,1,1,1,1,1,\n1,1,1,4,16,24,23,background overtimecrate:118,94,19,26,24,22,17,26,111,112,56,91,56,26,\n24,16,19,26,19,26,19,26,19,20,17,26,24,22,21,23,56,26,24,16,background bounds clockr:119,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,17,26,\n56,26,background overwall target:120,23,24,23,34,35,118,94,24,22,21,23,19,20,10,23,19,26,19,\n26,19,26,34,35,19,26,19,20,29,26,19,20,17,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,4,16,19,26,24,22,29,20,29,\n43,44,92,29,20,21,23,19,26,24,5,21,23,19,26,19,91,19,43,44,109,\n118,94,24,22,29,26,24,16,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,4,17,background clockl dot:121,19,20,21,23,19,26,64,65,background clockl:122,26,24,23,\n19,26,19,20,10,background clockl dot overwall wall:123,21,23,19,26,19,26,64,65,122,26,19,20,21,22,29,\n20,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n4,5,6,7,8,7 background boundarywall dot overwall wall:124,10,5,10,5,10,11,12,15,5 background boundarywall overwall wall:125,5,10,5,10,5,6,\n7,2 background boundarywall overwall wall:126,15,10,5,10,5,10,11,12,55,14,5,10,5,10,16,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,119,1,1,1,\n1,1,1,1,1,119,1,1,1,1,1,1,1,1,119,1,1,1,1,1,1,\n1,1,119,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n",8,"1627769376598.7021"] + ["title At the Hedges of Time\nauthor galactical\n\nbackground_color #222323\n\ntext_color #f0f6f0\n\nrun_rules_on_level_start\n\nnoundo\n\nzoomscreen 12x11\n\n========\nOBJECTS\n========\n\nBackground\n#c5ccb8\n\nDot\n#9a9a97\n.....\n.....\n.....\n..0..\n.....\n\nBounds\nTransparent\n\nBoundaryWall\nTransparent\n\nWall\n#93a167 #557064\n00000\n00000\n11111\n11111\n11111\n\nOverWall\n#93a167\n.....\n.....\n00000\n00000\n00000\n\nCrate\n#8d6268 #6E4D51\n00000\n00000\n11111\n11111\n11111\n\nOverCrate\n#8d6268\n.....\n.....\n.....\n00000\n00000\n\nTimeCrate\n#70568F #433455\n00000\n00000\n11111\n11111\n11111\n\nOverTimeCrate\n#70568F\n.....\n.....\n.....\n00000\n00000\n\nFadeCrate\n#8d6268 #6E4D51\n0.0.0\n.0.0.\n1.1.1\n.1.1.\n1.1.1\n\nOverFadeCrate\n#8d6268\n.....\n.....\n.....\n0.0.0\n.0.0.\n\nPlayer\nTransparent\n\nTarget\n#f7e26b #c5ccb8\n00000\n01110\n01010\n01110\n00000\n\nCam\nTransparent\n\nStatue\n#696969 (nice) #787878 #636363\n.111.\n.111.\n.000.\n.0.0.\n.....\n\nOverStatue\n#696969 #787878 #585858\n.....\n.222.\n.222.\n21112\n00000\n\nClock\n#f7e26b #f0f6f0 black\n.000.\n01110\n11211\n11221\n11111\n\nClockL\n#f7e26b\n.....\n.....\n....0\n....0\n....0\n\nClockR\n#f7e26b\n.....\n.....\n0....\n0....\n0....\n\nClockD\n#f7e26b #f0f6f0 #6e6962\n01110\n.000.\n..2..\n..2..\n.....\n\nPlayerSpr\n#F1C69B #4A403B Black\n.202.\n.000.\n.111.\n.1.1.\n.....\n\n\nUPlayer\n#F1C69B #4A403B Black #c5ccb8 #f7e26b\n4000.\n.000.\n.111.\n.1.1.\n.....\n\nRPlayer\n#F1C69B #4A403B Black #c5ccb8 #f7e26b\n.0024\n.000.\n.111.\n.1.1.\n.....\n\nLPlayer\n#F1C69B #4A403B Black #c5ccb8 #f7e26b\n4200.\n.000.\n.111.\n.1.1.\n.....\n\nDPlayer\n#F1C69B #4A403B Black #c5ccb8 #f7e26b\n.2424\n.004.\n.111.\n.1.1.\n.....\n\n\nOverPlayer\n#F1C69B #564A44 #3E3531 #4A403B\n.....\n.222.\n.222.\n21112\n33333\n\nExit\n#5F5A54\n.....\n.....\n.....\n00000\n.....\n\nExitR\n#6e6962 #c5ccb8 #5F5A54\n0....\n0....\n0....\n0....\n.....\n\nExitL\n#6e6962 #c5ccb8 #5F5A54\n....0\n....0\n....0\n....0\n.....\n\nExitU\n#6e6962 #5F5A54\n.111.\n10001\n00.00\n.....\n.....\n\nExitUR\n#c5ccb8 #6e6962 #5F5A54\n.....\n2....\n1....\n1....\n1....\n\nExitUL\n#c5ccb8 #6e6962 #5F5A54\n.....\n....2\n....1\n....1\n....1\n\nDoor\n#514D48\n0.0.0\n.0.0.\n0.0.0\n.....\n.....\n\nOverDoor\n#514D48\n.....\n.....\n.0.0.\n0.0.0\n.0.0.\n\nGate\n#f7e26b #ECD968\n.....\n.....\n.....\n00000\n.....\n\nGateR\n#f7e26b #ECD968\n0....\n0....\n0....\n0....\n.....\n\nGateL\n#f7e26b #ECD968\n....0\n....0\n....0\n....0\n.....\n\nGateU\n#f7e26b #ECD968\n.111.\n10001\n00.00\n.....\n.....\n\nGateUR\n#f7e26b #ECD968\n.....\n1....\n0....\n0....\n0....\n\nGateUL\n#f7e26b #ECD968\n.....\n....1\n....0\n....0\n....0\n\nOverBushR\n#93a167\n.....\n.....\n..000\n..000\n..000\n\nOverBushL\n#93a167\n.....\n.....\n000..\n000..\n000..\n\nBushR\n#93a167 #557064\n..000\n..000\n..111\n..111\n..111\n\nBushL\n#93a167 #557064\n000..\n000..\n111..\n111..\n111..\n\n0\n#f0f6f0 \n.....\n..0..\n.0.0.\n.0.0.\n..0..\n\n1\n#f0f6f0 \n.....\n..0..\n.00..\n..0..\n.000.\n\n2\n#f0f6f0 \n.....\n.00..\n...0.\n..0..\n.000.\n\n3\n#f0f6f0 \n.....\n.000.\n..00.\n...0.\n.000.\n\n4\n#f0f6f0 \n.....\n.0...\n.0.0.\n.000.\n...0.\n\n5\n#f0f6f0 \n.....\n.00..\n.000.\n...0.\n.000.\n\n6\n#f0f6f0 \n.....\n.0...\n.0...\n.000.\n.000.\n\n7\n#f0f6f0 \n.....\n.000.\n...0.\n..0..\n.0...\n\n8\n#f0f6f0 \n.....\n.000.\n.000.\n.0.0.\n.000.\n\n9\n#f0f6f0 \n.....\n.000.\n.0.0.\n.000.\n...0.\n\nSoundStop\ntransparent\n\nCountDown\ntransparent\n\nCountUp\ntransparent\n\ncp\nTransparent\n\nStop\nTransparent\n\nSame\nTransparent\n\nRewind\nTransparent\n\nNoMarks\ntransparent\n\nHighest\ntransparent\n\nz0\ntransparent\n\nx0\ntransparent\n\nq1\ntransparent\nq2\nTransparent\nq3\nTransparent\nq4\nTransparent\nq5\nTransparent\nq6\nTransparent\nq7\nTransparent\nq8\nTransparent\nq9\nTransparent\nq10\nTransparent\nq11\nTransparent\nq12\nTransparent\nq13\nTransparent\nq14\nTransparent\nq15\nTransparent\nq16\nTransparent\nq17\nTransparent\nq18\nTransparent\nq19\nTransparent\nq20\nTransparent\nq21\nTransparent\nq22\nTransparent\nq23\nTransparent\nq24\nTransparent\nq25\nTransparent\nq26\nTransparent\nq27\nTransparent\nq28\nTransparent\nq29\nTransparent\nq30\nTransparent\nq31\nTransparent\nq32\nTransparent\nq33\nTransparent\nq34\nTransparent\nq35\nTransparent\nq36\nTransparent\nq37\nTransparent\nq38\nTransparent\nq39\nTransparent\nq40\nTransparent\nq41\nTransparent\nq42\nTransparent\nq43\nTransparent\nq44\nTransparent\nq45\nTransparent\nq46\nTransparent\nq47\nTransparent\nq48\nTransparent\nq49\nTransparent\nq50\nTransparent\nq51\nTransparent\nq52\nTransparent\nq53\nTransparent\nq54\nTransparent\nq55\nTransparent\nq56\nTransparent\nq57\nTransparent\nq58\nTransparent\nq59\nTransparent\nq60\nTransparent\nq61\nTransparent\nq62\nTransparent\nq63\nTransparent\nq64\nTransparent\nq65\nTransparent\nq66\nTransparent\nq67\nTransparent\nq68\nTransparent\nq69\nTransparent\nq70\nTransparent\nq71\nTransparent\nq72\nTransparent\nq73\nTransparent\nq74\nTransparent\nq75\nTransparent\nq76\nTransparent\nq77\nTransparent\nq78\nTransparent\nq79\nTransparent\nq80\nTransparent\nq81\nTransparent\nq82\nTransparent\nq83\nTransparent\nq84\nTransparent\nq85\nTransparent\nq86\nTransparent\nq87\nTransparent\nq88\nTransparent\nq89\nTransparent\nq90\nTransparent\nq91\nTransparent\nq92\nTransparent\nq93\nTransparent\nq94\nTransparent\nq95\nTransparent\nq96\nTransparent\nq97\nTransparent\nq98\nTransparent\nq99\nTransparent\nq100\nTransparent\nq101\ntransparent\nq102\ntransparent\nq103\ntransparent\nq104\ntransparent\nq105\ntransparent\nq106\ntransparent\nq107\ntransparent\nq108\ntransparent\nq109\ntransparent\nq110\ntransparent\nq111\ntransparent\nq112\ntransparent\nq113\ntransparent\nq114\ntransparent\nq115\ntransparent\nq116\ntransparent\nq117\ntransparent\nq118\ntransparent\nq119\ntransparent\nq120\ntransparent\nq121\ntransparent\nq122\ntransparent\nq123\ntransparent\nq124\ntransparent\nq125\ntransparent\nq126\ntransparent\nq127\ntransparent\nq128\ntransparent\nq129\ntransparent\nq130\ntransparent\nq131\ntransparent\nq132\ntransparent\nq133\ntransparent\nq134\ntransparent\nq135\ntransparent\nq136\ntransparent\nq137\ntransparent\nq138\ntransparent\nq139\ntransparent\nq140\ntransparent\nq141\ntransparent\nq142\ntransparent\nq143\ntransparent\nq144\ntransparent\nq145\ntransparent\nq146\ntransparent\nq147\ntransparent\nq148\ntransparent\nq149\ntransparent\nq150\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n\n- = Bounds\n\n# = Wall\n! = BoundaryWall and Wall\np = PlayerSpr and q1\ne = Exit and Bounds\n* = Crate\nt = TimeCrate\no = Target\nc = clock and BoundaryWall and Wall\ng = gate\n\nWalls = Wall or BushR or BushL or Door\nCrates = Crate or TimeCrate\n\nWallOrExit = Walls or Exit\n\nremove = OverWall or OverPlayer or ExitR or ExitL or ExitU or ExitUR or ExitUL or Dot or OverBushR or OverBushL or OverCrate or OverTimeCrate or FadeCrate or OverFadeCrate or OverDoor or ClockR or ClockD or ClockL or OverStatue\n\nDirPlayer = UPlayer or RPlayer or DPlayer or LPlayer\n\nNumber = 0 or 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9\n\nClockSide = ClockL or ClockR\n\nMark = q150 or q149 or q148 or q147 or q146 or q145 or q144 or q143 or q142 or q141 or q140 or q139 or q138 or q137 or q136 or q135 or q134 or q133 or q132 or q131 or q130 or q129 or q128 or q127 or q126 or q125 or q124 or q123 or q122 or q121 or q120 or q119 or q118 or q117 or q116 or q115 or q114 or q113 or q112 or q111 or q110 or q109 or q108 or q107 or q106 or q105 or q104 or q103 or q102 or q101 or q100 or q99 or q98 or q97 or q96 or q95 or q94 or q93 or q92 or q91 or q90 or q89 or q88 or q87 or q86 or q85 or q84 or q83 or q82 or q81 or q80 or q79 or q78 or q77 or q76 or q75 or q74 or q73 or q72 or q71 or q70 or q69 or q68 or q67 or q66 or q65 or q64 or q63 or q62 or q61 or q60 or q59 or q58 or q57 or q56 or q55 or q54 or q53 or q52 or q51 or q50 or q49 or q48 or q47 or q46 or q45 or q44 or q43 or q42 or q41 or q40 or q39 or q38 or q37 or q36 or q35 or q34 or q33 or q32 or q31 or q30 or q29 or q28 or q27 or q26 or q25 or q24 or q23 or q22 or q21 or q20 or q19 or q18 or q17 or q16 or q15 or q14 or q13 or q12 or q11 or q10 or q9 or q8 or q7 or q6 or q5 or q4 or q3 or q2\n\n=======\nSOUNDS\n=======\n\nsfx0 76045107\nsfx1 32958905\nsfx2 11140903\nsfx3 3750107\n\nrestart 26711100\n\nshowmessage 76045107\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nDot\nExit\nGate\nCam\nBounds\nTarget\nSoundStop\ncp\nStop\nRewind\nSame\nNoMarks\nHighest\nz0\nx0\nq1\nq2\nq3\nq4\nq5\nq6\nq7\nq8\nq9\nq10\nq11\nq12\nq13\nq14\nq15\nq16\nq17\nq18\nq19\nq20\nq21\nq22\nq23\nq24\nq25\nq26\nq27\nq28\nq29\nq30\nq31\nq32\nq33\nq34\nq35\nq36\nq37\nq38\nq39\nq40\nq41\nq42\nq43\nq44\nq45\nq46\nq47\nq48\nq49\nq50\nq51\nq52\nq53\nq54\nq55\nq56\nq57\nq58\nq59\nq60\nq61\nq62\nq63\nq64\nq65\nq66\nq67\nq68\nq69\nq70\nq71\nq72\nq73\nq74\nq75\nq76\nq77\nq78\nq79\nq80\nq81\nq82\nq83\nq84\nq85\nq86\nq87\nq88\nq89\nq90\nq91\nq92\nq93\nq94\nq95\nq96\nq97\nq98\nq99\nq100\nq101\nq102\nq103\nq104\nq105\nq106\nq107\nq108\nq109\nq110\nq111\nq112\nq113\nq114\nq115\nq116\nq117\nq118\nq119\nq120\nq121\nq122\nq123\nq124\nq125\nq126\nq127\nq128\nq129\nq130\nq131\nq132\nq133\nq134\nq135\nq136\nq137\nq138\nq139\nq140\nq141\nq142\nq143\nq144\nq145\nq146\nq147\nq148\nq149\nq150\nExitR ExitL\nGateR GateL\nDoor\nCrate\nWall PlayerSpr BushR BushL\nUPlayer RPlayer DPlayer LPlayer\nStatue\nTimeCrate\nFadeCrate\nOverWall OverBushR OverBushL OverCrate OverTimeCrate\nOverFadeCrate\nExitU ExitUR ExitUL\nGateU GateUR GateUL\nOverDoor\nOverPlayer\nOverStatue\nClock\nClockR Clockd ClockL\nCountDown CountUp\nNumber\nPlayer\nBoundaryWall\n\n======\nRULES\n======\n\nup [PlayerSpr no DirPlayer no Statue] [ | Exit | ] -> [PlayerSpr] [cp | Exit | cp]\n\n[DirPlayer] -> []\n\n[stationary Player] -> cancel\n\n[> Player] [q150] -> cancel\n\n[] -> [NoMarks]\n[NoMarks] [Mark] -> [] [Mark]\n[action Player] [NoMarks] -> cancel\n\n(Movement)\n[> Player] [PlayerSpr] -> [Player] [> PlayerSpr] \n\n[> PlayerSpr Statue] -> [PlayerSpr Statue] cancel\n[> PlayerSpr | Crates | Crates] -> [PlayerSpr | Crates | Crates] cancel\n[> PlayerSpr | Crates | Walls] -> [PlayerSpr | Crates | Walls] cancel\n[> PlayerSpr | Walls] -> [PlayerSpr | Walls] cancel\n\n[> PlayerSpr] -> sfx0\n\n[OverPlayer Gate] -> [Gate] win\ndown [> PlayerSpr Gate] -> [Gate OverPlayer] again\n\n(Sprite direction)\nup [> PlayerSpr] -> [> PlayerSpr > UPlayer]\nright [> PlayerSpr] -> [> PlayerSpr > RPlayer]\ndown [> PlayerSpr] -> [> PlayerSpr > DPlayer]\nleft [> PlayerSpr] -> [> PlayerSpr > LPlayer]\n\n[> PlayerSpr | TimeCrate] -> [> PlayerSpr | > TimeCrate]\n\n[Stop] -> []\n[action Player] [PlayerSpr] -> [Player] [action PlayerSpr]\n\n\n(Placing Player Markers)\n(--Can this be refactored to be scalable?????? Probably not...)\n[> PlayerSpr no Stop] [q149]-> [> PlayerSpr > q150 Stop] [q149]\n[> PlayerSpr no Stop] [q148]-> [> PlayerSpr > q149 Stop] [q148]\n[> PlayerSpr no Stop] [q147]-> [> PlayerSpr > q148 Stop] [q147]\n[> PlayerSpr no Stop] [q146]-> [> PlayerSpr > q147 Stop] [q146]\n[> PlayerSpr no Stop] [q145]-> [> PlayerSpr > q146 Stop] [q145]\n[> PlayerSpr no Stop] [q144]-> [> PlayerSpr > q145 Stop] [q144]\n[> PlayerSpr no Stop] [q143]-> [> PlayerSpr > q144 Stop] [q143]\n[> PlayerSpr no Stop] [q142]-> [> PlayerSpr > q143 Stop] [q142]\n[> PlayerSpr no Stop] [q141]-> [> PlayerSpr > q142 Stop] [q141]\n[> PlayerSpr no Stop] [q140]-> [> PlayerSpr > q141 Stop] [q140]\n[> PlayerSpr no Stop] [q139]-> [> PlayerSpr > q140 Stop] [q139]\n[> PlayerSpr no Stop] [q138]-> [> PlayerSpr > q139 Stop] [q138]\n[> PlayerSpr no Stop] [q137]-> [> PlayerSpr > q138 Stop] [q137]\n[> PlayerSpr no Stop] [q136]-> [> PlayerSpr > q137 Stop] [q136]\n[> PlayerSpr no Stop] [q135]-> [> PlayerSpr > q136 Stop] [q135]\n[> PlayerSpr no Stop] [q134]-> [> PlayerSpr > q135 Stop] [q134]\n[> PlayerSpr no Stop] [q133]-> [> PlayerSpr > q134 Stop] [q133]\n[> PlayerSpr no Stop] [q132]-> [> PlayerSpr > q133 Stop] [q132]\n[> PlayerSpr no Stop] [q131]-> [> PlayerSpr > q132 Stop] [q131]\n[> PlayerSpr no Stop] [q130]-> [> PlayerSpr > q131 Stop] [q130]\n[> PlayerSpr no Stop] [q129]-> [> PlayerSpr > q130 Stop] [q129]\n[> PlayerSpr no Stop] [q128]-> [> PlayerSpr > q129 Stop] [q128]\n[> PlayerSpr no Stop] [q127]-> [> PlayerSpr > q128 Stop] [q127]\n[> PlayerSpr no Stop] [q126]-> [> PlayerSpr > q127 Stop] [q126]\n[> PlayerSpr no Stop] [q125]-> [> PlayerSpr > q126 Stop] [q125]\n[> PlayerSpr no Stop] [q124]-> [> PlayerSpr > q125 Stop] [q124]\n[> PlayerSpr no Stop] [q123]-> [> PlayerSpr > q124 Stop] [q123]\n[> PlayerSpr no Stop] [q122]-> [> PlayerSpr > q123 Stop] [q122]\n[> PlayerSpr no Stop] [q121]-> [> PlayerSpr > q122 Stop] [q121]\n[> PlayerSpr no Stop] [q120]-> [> PlayerSpr > q121 Stop] [q120]\n[> PlayerSpr no Stop] [q119]-> [> PlayerSpr > q120 Stop] [q119]\n[> PlayerSpr no Stop] [q118]-> [> PlayerSpr > q119 Stop] [q118]\n[> PlayerSpr no Stop] [q117]-> [> PlayerSpr > q118 Stop] [q117]\n[> PlayerSpr no Stop] [q116]-> [> PlayerSpr > q117 Stop] [q116]\n[> PlayerSpr no Stop] [q115]-> [> PlayerSpr > q116 Stop] [q115]\n[> PlayerSpr no Stop] [q114]-> [> PlayerSpr > q115 Stop] [q114]\n[> PlayerSpr no Stop] [q113]-> [> PlayerSpr > q114 Stop] [q113]\n[> PlayerSpr no Stop] [q112]-> [> PlayerSpr > q113 Stop] [q112]\n[> PlayerSpr no Stop] [q111]-> [> PlayerSpr > q112 Stop] [q111]\n[> PlayerSpr no Stop] [q110]-> [> PlayerSpr > q111 Stop] [q110]\n[> PlayerSpr no Stop] [q109]-> [> PlayerSpr > q110 Stop] [q109]\n[> PlayerSpr no Stop] [q108]-> [> PlayerSpr > q109 Stop] [q108]\n[> PlayerSpr no Stop] [q107]-> [> PlayerSpr > q108 Stop] [q107]\n[> PlayerSpr no Stop] [q106]-> [> PlayerSpr > q107 Stop] [q106]\n[> PlayerSpr no Stop] [q105]-> [> PlayerSpr > q106 Stop] [q105]\n[> PlayerSpr no Stop] [q104]-> [> PlayerSpr > q105 Stop] [q104]\n[> PlayerSpr no Stop] [q103]-> [> PlayerSpr > q104 Stop] [q103]\n[> PlayerSpr no Stop] [q102]-> [> PlayerSpr > q103 Stop] [q102]\n[> PlayerSpr no Stop] [q101]-> [> PlayerSpr > q102 Stop] [q101]\n[> PlayerSpr no Stop] [q100]-> [> PlayerSpr > q101 Stop] [q100]\n[> PlayerSpr no Stop] [q99] -> [> PlayerSpr > q100 Stop] [q99]\n[> PlayerSpr no Stop] [q98] -> [> PlayerSpr > q99 Stop] [q98]\n[> PlayerSpr no Stop] [q97] -> [> PlayerSpr > q98 Stop] [q97]\n[> PlayerSpr no Stop] [q96] -> [> PlayerSpr > q97 Stop] [q96]\n[> PlayerSpr no Stop] [q95] -> [> PlayerSpr > q96 Stop] [q95]\n[> PlayerSpr no Stop] [q94] -> [> PlayerSpr > q95 Stop] [q94]\n[> PlayerSpr no Stop] [q93] -> [> PlayerSpr > q94 Stop] [q93]\n[> PlayerSpr no Stop] [q92] -> [> PlayerSpr > q93 Stop] [q92]\n[> PlayerSpr no Stop] [q91] -> [> PlayerSpr > q92 Stop] [q91]\n[> PlayerSpr no Stop] [q90] -> [> PlayerSpr > q91 Stop] [q90]\n[> PlayerSpr no Stop] [q89] -> [> PlayerSpr > q90 Stop] [q89]\n[> PlayerSpr no Stop] [q88] -> [> PlayerSpr > q89 Stop] [q88]\n[> PlayerSpr no Stop] [q87] -> [> PlayerSpr > q88 Stop] [q87]\n[> PlayerSpr no Stop] [q86] -> [> PlayerSpr > q87 Stop] [q86]\n[> PlayerSpr no Stop] [q85] -> [> PlayerSpr > q86 Stop] [q85]\n[> PlayerSpr no Stop] [q84] -> [> PlayerSpr > q85 Stop] [q84]\n[> PlayerSpr no Stop] [q83] -> [> PlayerSpr > q84 Stop] [q83]\n[> PlayerSpr no Stop] [q82] -> [> PlayerSpr > q83 Stop] [q82]\n[> PlayerSpr no Stop] [q81] -> [> PlayerSpr > q82 Stop] [q81]\n[> PlayerSpr no Stop] [q80] -> [> PlayerSpr > q81 Stop] [q80]\n[> PlayerSpr no Stop] [q79] -> [> PlayerSpr > q80 Stop] [q79]\n[> PlayerSpr no Stop] [q78] -> [> PlayerSpr > q79 Stop] [q78]\n[> PlayerSpr no Stop] [q77] -> [> PlayerSpr > q78 Stop] [q77]\n[> PlayerSpr no Stop] [q76] -> [> PlayerSpr > q77 Stop] [q76]\n[> PlayerSpr no Stop] [q75] -> [> PlayerSpr > q76 Stop] [q75]\n[> PlayerSpr no Stop] [q74] -> [> PlayerSpr > q75 Stop] [q74]\n[> PlayerSpr no Stop] [q73] -> [> PlayerSpr > q74 Stop] [q73]\n[> PlayerSpr no Stop] [q72] -> [> PlayerSpr > q73 Stop] [q72]\n[> PlayerSpr no Stop] [q71] -> [> PlayerSpr > q72 Stop] [q71]\n[> PlayerSpr no Stop] [q70] -> [> PlayerSpr > q71 Stop] [q70]\n[> PlayerSpr no Stop] [q69] -> [> PlayerSpr > q70 Stop] [q69]\n[> PlayerSpr no Stop] [q68] -> [> PlayerSpr > q69 Stop] [q68]\n[> PlayerSpr no Stop] [q67] -> [> PlayerSpr > q68 Stop] [q67]\n[> PlayerSpr no Stop] [q66] -> [> PlayerSpr > q67 Stop] [q66]\n[> PlayerSpr no Stop] [q65] -> [> PlayerSpr > q66 Stop] [q65]\n[> PlayerSpr no Stop] [q64] -> [> PlayerSpr > q65 Stop] [q64]\n[> PlayerSpr no Stop] [q63] -> [> PlayerSpr > q64 Stop] [q63]\n[> PlayerSpr no Stop] [q62] -> [> PlayerSpr > q63 Stop] [q62]\n[> PlayerSpr no Stop] [q61] -> [> PlayerSpr > q62 Stop] [q61]\n[> PlayerSpr no Stop] [q60] -> [> PlayerSpr > q61 Stop] [q60]\n[> PlayerSpr no Stop] [q59] -> [> PlayerSpr > q60 Stop] [q59]\n[> PlayerSpr no Stop] [q58] -> [> PlayerSpr > q59 Stop] [q58]\n[> PlayerSpr no Stop] [q57] -> [> PlayerSpr > q58 Stop] [q57]\n[> PlayerSpr no Stop] [q56] -> [> PlayerSpr > q57 Stop] [q56]\n[> PlayerSpr no Stop] [q55] -> [> PlayerSpr > q56 Stop] [q55]\n[> PlayerSpr no Stop] [q54] -> [> PlayerSpr > q55 Stop] [q54]\n[> PlayerSpr no Stop] [q53] -> [> PlayerSpr > q54 Stop] [q53]\n[> PlayerSpr no Stop] [q52] -> [> PlayerSpr > q53 Stop] [q52]\n[> PlayerSpr no Stop] [q51] -> [> PlayerSpr > q52 Stop] [q51]\n[> PlayerSpr no Stop] [q50] -> [> PlayerSpr > q51 Stop] [q50]\n[> PlayerSpr no Stop] [q49] -> [> PlayerSpr > q50 Stop] [q49]\n[> PlayerSpr no Stop] [q48] -> [> PlayerSpr > q49 Stop] [q48]\n[> PlayerSpr no Stop] [q47] -> [> PlayerSpr > q48 Stop] [q47]\n[> PlayerSpr no Stop] [q46] -> [> PlayerSpr > q47 Stop] [q46]\n[> PlayerSpr no Stop] [q45] -> [> PlayerSpr > q46 Stop] [q45]\n[> PlayerSpr no Stop] [q44] -> [> PlayerSpr > q45 Stop] [q44]\n[> PlayerSpr no Stop] [q43] -> [> PlayerSpr > q44 Stop] [q43]\n[> PlayerSpr no Stop] [q42] -> [> PlayerSpr > q43 Stop] [q42]\n[> PlayerSpr no Stop] [q41] -> [> PlayerSpr > q42 Stop] [q41]\n[> PlayerSpr no Stop] [q40] -> [> PlayerSpr > q41 Stop] [q40]\n[> PlayerSpr no Stop] [q39] -> [> PlayerSpr > q40 Stop] [q39]\n[> PlayerSpr no Stop] [q38] -> [> PlayerSpr > q39 Stop] [q38]\n[> PlayerSpr no Stop] [q37] -> [> PlayerSpr > q38 Stop] [q37]\n[> PlayerSpr no Stop] [q36] -> [> PlayerSpr > q37 Stop] [q36]\n[> PlayerSpr no Stop] [q35] -> [> PlayerSpr > q36 Stop] [q35]\n[> PlayerSpr no Stop] [q34] -> [> PlayerSpr > q35 Stop] [q34]\n[> PlayerSpr no Stop] [q33] -> [> PlayerSpr > q34 Stop] [q33]\n[> PlayerSpr no Stop] [q32] -> [> PlayerSpr > q33 Stop] [q32]\n[> PlayerSpr no Stop] [q31] -> [> PlayerSpr > q32 Stop] [q31]\n[> PlayerSpr no Stop] [q30] -> [> PlayerSpr > q31 Stop] [q30]\n[> PlayerSpr no Stop] [q29] -> [> PlayerSpr > q30 Stop] [q29]\n[> PlayerSpr no Stop] [q28] -> [> PlayerSpr > q29 Stop] [q28]\n[> PlayerSpr no Stop] [q27] -> [> PlayerSpr > q28 Stop] [q27]\n[> PlayerSpr no Stop] [q26] -> [> PlayerSpr > q27 Stop] [q26]\n[> PlayerSpr no Stop] [q25] -> [> PlayerSpr > q26 Stop] [q25]\n[> PlayerSpr no Stop] [q24] -> [> PlayerSpr > q25 Stop] [q24]\n[> PlayerSpr no Stop] [q23] -> [> PlayerSpr > q24 Stop] [q23]\n[> PlayerSpr no Stop] [q22] -> [> PlayerSpr > q23 Stop] [q22]\n[> PlayerSpr no Stop] [q21] -> [> PlayerSpr > q22 Stop] [q21]\n[> PlayerSpr no Stop] [q20] -> [> PlayerSpr > q21 Stop] [q20]\n[> PlayerSpr no Stop] [q19] -> [> PlayerSpr > q20 Stop] [q19]\n[> PlayerSpr no Stop] [q18] -> [> PlayerSpr > q19 Stop] [q18]\n[> PlayerSpr no Stop] [q17] -> [> PlayerSpr > q18 Stop] [q17]\n[> PlayerSpr no Stop] [q16] -> [> PlayerSpr > q17 Stop] [q16]\n[> PlayerSpr no Stop] [q15] -> [> PlayerSpr > q16 Stop] [q15]\n[> PlayerSpr no Stop] [q14] -> [> PlayerSpr > q15 Stop] [q14]\n[> PlayerSpr no Stop] [q13] -> [> PlayerSpr > q14 Stop] [q13]\n[> PlayerSpr no Stop] [q12] -> [> PlayerSpr > q13 Stop] [q12]\n[> PlayerSpr no Stop] [q11] -> [> PlayerSpr > q12 Stop] [q11]\n[> PlayerSpr no Stop] [q10] -> [> PlayerSpr > q11 Stop] [q10]\n[> PlayerSpr no Stop] [q9] -> [> PlayerSpr > q10 Stop] [q9]\n[> PlayerSpr no Stop] [q8] -> [> PlayerSpr > q9 Stop] [q8]\n[> PlayerSpr no Stop] [q7] -> [> PlayerSpr > q8 Stop] [q7]\n[> PlayerSpr no Stop] [q6] -> [> PlayerSpr > q7 Stop] [q6]\n[> PlayerSpr no Stop] [q5] -> [> PlayerSpr > q6 Stop] [q5]\n[> PlayerSpr no Stop] [q4] -> [> PlayerSpr > q5 Stop] [q4]\n[> PlayerSpr no Stop] [q3] -> [> PlayerSpr > q4 Stop] [q3]\n[> PlayerSpr no Stop] [q2] -> [> PlayerSpr > q3 Stop] [q2]\n[> PlayerSpr no Stop] [q1] -> [> PlayerSpr > q2 Stop] [q1]\n\n(Placing Crate Markers)\n[> PlayerSpr > Mark | Crate] -> [> PlayerSpr > Mark | > Crate > Mark]\n\n(Rewinding)\n(Teleport the highest mark under the player and the highest mark that is under a crate next to each other at the x and z position)\n[Stop] -> []\n[action PlayerSpr Mark no Stop] [] -> [action PlayerSpr Mark Stop] [z0 Mark] sfx1\nright [z0 | ] -> [z0 | x0]\n[Stop] -> []\n[Highest] -> []\n[Mark Crate] [action PlayerSpr no Stop] [x0] -> [Crate Mark Highest] [action PlayerSpr Stop] [x0 Mark]\n\n(Try to move the objects together)\nright [z0 | Mark x0 ] -> [z0 | < Mark x0]\n\n(The rest of the code must be done \"late\" so I can see the result of the equality check, so I convert the action state to an object called \"Rewind\")\n[Rewind] -> []\n[action PlayerSpr] -> [Rewind PlayerSpr]\n\n(Place the PlayerD object if it's the first turn)\n[stationary PlayerSpr no Rewind] -> [PlayerSpr DPlayer]\n\n(Checks if the two objects failed to combine, if this is the case, then we know they are the same object)\nlate [x0 Mark] [Crate Highest] -> [x0] [Crate Mark Same]\nlate [Mark z0] -> [z0]\n\n(Rewinds a pushed crate)\nlate [Rewind PlayerSpr] [Crate Mark Same] -> [Rewind PlayerSpr Crate] []\n\n(Removes the highest mark that is under the player)\nlate [Stop] -> []\nlate [Rewind PlayerSpr Mark no Stop] -> [Rewind PlayerSpr Stop]\n(Teleports the player to the starting position if there are no marks)\nlate [] -> [NoMarks]\nlate [NoMarks] [Mark] -> [] [Mark]\nlate [NoMarks] [Rewind PlayerSpr no q1] [q1 no Crate] -> [NoMarks] [] [PlayerSpr q1 Rewind DPlayer]\n(Teleports the player to the highest mark)\nlate [Stop] -> []\nlate [Rewind PlayerSpr no Stop] [Mark no Crate no PlayerSpr] -> [] [PlayerSpr Mark Rewind Stop]\n\n(Faces the player in the correct direction after rewinding)\nlate [Stop] -> []\nlate [Highest] -> []\nlate [PlayerSpr no Stop] [Mark no Crate no PlayerSpr] -> [PlayerSpr Stop] [Mark Highest]\n\nlate [] -> [NoMarks]\nlate [NoMarks] [Mark no q2] -> [] [Mark]\n\nlate up [NoMarks] [Rewind PlayerSpr | q1] -> [][Rewind PlayerSpr DPlayer | q1]\nlate right[NoMarks] [Rewind PlayerSpr | q1] -> [][Rewind PlayerSpr LPlayer | q1]\nlate down[NoMarks] [Rewind PlayerSpr | q1] -> [] [Rewind PlayerSpr UPlayer | q1]\nlate left[NoMarks] [Rewind PlayerSpr | q1] -> [] [Rewind PlayerSpr RPlayer | q1]\n\nlate up [Rewind PlayerSpr | Highest] -> [Rewind PlayerSpr DPlayer | ]\nlate right [Rewind PlayerSpr | Highest] -> [Rewind PlayerSpr LPlayer | ]\nlate down [Rewind PlayerSpr | Highest] -> [Rewind PlayerSpr UPlayer | ]\nlate left [Rewind PlayerSpr | Highest] -> [Rewind PlayerSpr RPlayer | ]\n\n\n[Number no Wall] -> [Number Wall BoundaryWall]\n\n(Player/Camera)\nlate [PlayerSpr no Exit no Gate] [Player] -> [PlayerSpr] []\nlate [PlayerSpr no Exit no Gate] -> [PlayerSpr Player]\nlate [Player no BoundaryWall no Exit no Gate | ] -> [Player | Player]\n\n(Doors)\nlate [SoundStop] -> []\nlate [Door] -> [Door SoundStop]\nlate [Door] -> []\nlate [Player | | Exit] [Player Target no Crates] -> [Player | | Exit Door] [Player Target]\n\n[moving Player] [stationary Player] -> [moving Player] [moving Player]\n\nlate [PlayerSpr Exit] [Door] -> [PlayerSpr Exit] []\n\n(Door Sfx)\nlate [SoundStop Exit no Door] -> [Exit] sfx2\n\n(Checkpoint)\nlate [cp Player no PlayerSpr] -> [Player]\nlate [cp PlayerSpr] -> checkpoint\n\n(Timer)\n(Decrease when player moves)\nlate [ClockD Player | no 0 | 0] [PlayerSpr no Rewind] -> [ClockD Player | | 9 Countdown] [PlayerSpr]\nlate [ClockD Player | | 1] [PlayerSpr no Rewind] -> [ClockD Player | | 0] [PlayerSpr]\nlate [ClockD Player | | 2] [PlayerSpr no Rewind] -> [ClockD Player | | 1] [PlayerSpr]\nlate [ClockD Player | | 3] [PlayerSpr no Rewind] -> [ClockD Player | | 2] [PlayerSpr]\nlate [ClockD Player | | 4] [PlayerSpr no Rewind] -> [ClockD Player | | 3] [PlayerSpr]\nlate [ClockD Player | | 5] [PlayerSpr no Rewind] -> [ClockD Player | | 4] [PlayerSpr]\nlate [ClockD Player | | 6] [PlayerSpr no Rewind] -> [ClockD Player | | 5] [PlayerSpr]\nlate [ClockD Player | | 7] [PlayerSpr no Rewind] -> [ClockD Player | | 6] [PlayerSpr]\nlate [ClockD Player | | 8] [PlayerSpr no Rewind] -> [ClockD Player | | 7] [PlayerSpr]\nlate [ClockD Player | | 9 no CountDown] [PlayerSpr no Rewind] -> [ClockD Player | | 8] [PlayerSpr]\n\n(Increase when player rewinds)\nlate [ClockD Player | | 9] [Rewind PlayerSpr] -> [ClockD Player | | 0 CountUp] [Rewind PlayerSpr]\nlate [ClockD Player | | 8] [Rewind PlayerSpr] -> [ClockD Player | | 9] [Rewind PlayerSpr]\nlate [ClockD Player | | 7] [Rewind PlayerSpr] -> [ClockD Player | | 8] [Rewind PlayerSpr]\nlate [ClockD Player | | 6] [Rewind PlayerSpr] -> [ClockD Player | | 7] [Rewind PlayerSpr]\nlate [ClockD Player | | 5] [Rewind PlayerSpr] -> [ClockD Player | | 6] [Rewind PlayerSpr]\nlate [ClockD Player | | 4] [Rewind PlayerSpr] -> [ClockD Player | | 5] [Rewind PlayerSpr]\nlate [ClockD Player | | 3] [Rewind PlayerSpr] -> [ClockD Player | | 4] [Rewind PlayerSpr]\nlate [ClockD Player | | 2] [Rewind PlayerSpr] -> [ClockD Player | | 3] [Rewind PlayerSpr]\nlate [ClockD Player | | 1] [Rewind PlayerSpr] -> [ClockD Player | | 2] [Rewind PlayerSpr]\nlate [ClockD Player | | 0 no CountUp] [Rewind PlayerSpr] -> [ClockD Player | | 1] [Rewind PlayerSpr]\n\n(Tens digit countdown)\nlate down [1 | CountDown] -> [0 | ]\nlate down [2 | CountDown] -> [1 | ]\nlate down [3 | CountDown] -> [2 | ]\nlate down [4 | CountDown] -> [3 | ]\nlate down [5 | CountDown] -> [4 | ]\nlate down [6 | CountDown] -> [5 | ]\nlate down [7 | CountDown] -> [6 | ]\nlate down [8 | CountDown] -> [7 | ]\nlate down [9 | CountDown] -> [8 | ]\n\n(Tens digit countup)\nlate down [8 | CountUp] -> [9 | ]\nlate down [7 | CountUp] -> [8 | ]\nlate down [6 | CountUp] -> [7 | ]\nlate down [5 | CountUp] -> [6 | ]\nlate down [4 | CountUp] -> [5 | ]\nlate down [3 | CountUp] -> [4 | ]\nlate down [2 | CountUp] -> [3 | ]\nlate down [1 | CountUp] -> [2 | ]\nlate down [0 | CountUp] -> [1 | ]\n\n(Turns player into statue)\nlate [SoundStop] -> []\nlate [PlayerSpr no Statue] -> [PlayerSpr SoundStop]\nlate [Statue] -> []\nlate [0 | 0 Player] [PlayerSpr no Rewind] [ClockSide Player] -> [0 | 0] [PlayerSpr Statue] [ClockSide Player]\n\nlate [PlayerSpr SoundStop Statue] -> sfx3\n\n(Places the camera)\nlate down [Player | | | | | | | | | Player] -> [Player | | | | Cam | | | | | Player]\nlate right [Cam | Cam | Cam | Cam | Cam | Cam | Cam | Cam] -> [ | | | | Cam | | | ]\nlate [Player no Cam] -> []\n\n(Visuals)\nlate [remove no Gate] -> []\n\nlate [Crate TimeCrate] -> [Crate TimeCrate FadeCrate]\n\nlate [DirPlayer Statue] -> [Statue]\n\nlate up [Wall | ] -> [Wall | OverWall]\nlate up [Crate | ] -> [Crate | OverCrate]\nlate up [TimeCrate | ] -> [TimeCrate | OverTimeCrate]\nlate up [FadeCrate | ] -> [FadeCrate | OverFadeCrate]\nlate up [PlayerSpr | ] -> [PlayerSpr | OverPlayer]\nlate up [Statue | ] -> [Statue | OverStatue]\nlate up [Exit | ] -> [Exit | ExitU]\nlate up [Gate | ] -> [Gate | GateU]\nlate up [Door | ] -> [Door | OverDoor]\n\nlate right [Clock | ] -> [Clock | ClockR]\nlate down [Clock | ] -> [Clock | ClockD]\nlate left [Clock | ] -> [Clock | ClockL]\n\nlate right [Exit | ] -> [Exit | ExitR]\nlate left [Exit | ] -> [Exit | ExitL]\nlate right [ExitU | ] -> [ExitU | ExitUR]\nlate left [ExitU | ] -> [ExitU | ExitUL]\n\nlate right [Gate | ] -> [Gate | GateR]\nlate left [Gate | ] -> [Gate | GateL]\nlate right [GateU | ] -> [GateU | GateUR]\nlate left [GateU | ] -> [GateU | GateUL]\n\nlate right [Exit | Wall] -> [Exit | BushR]\nlate left [Exit | Wall] -> [Exit | BushL]\n\nlate right [Gate | Wall] -> [Gate | BushR]\nlate left [Gate | Wall] -> [Gate | BushL]\n\nlate up [BushR | ] -> [BushR | OverBushR]\nlate up [BushL | ] -> [BushL | OverBushL]\n\nlate right down [BackGround no Dot| BackGround no Dot] -> [BackGround | Dot BackGround]\nlate down [Dot | Dot] -> [Dot | BackGround]\nlate [Bounds Dot] -> [Bounds]\n\nlate [ExitU Dot] -> [ExitU]\nlate [PlayerSpr Dot] -> [PlayerSpr]\nlate [Gate | Dot] -> [Gate | ]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\nmessage It was a warm and sunny day\nmessage So into the hedges went Sir Montaclé\n\nmessage Then, a witch's curse befell the poor bloke\nmessage Now one step too many, will turn him to stone\n\nmessage Montaclé despaired, wandering lost in the maze\nmessage He knew freedom lay, just beyond the golden gate\n\nmessage But Montaclé was clever, and so are you, so fret not\nmessage Press R to restart, and space to turn back the clock\n\n---------------------\n-----!!!!!!!!!!------\n-----c......##!------\n-----!.t....##!------\n-----2#####.##!------\n-----1..o*..o.!------\n-----!...##...!------\n-----!...#####!------\n-----!........!------\n-----!........!------\n-!!!!!!!e!!!e!!!!!!!-\n-c........!........c-\n-!....####!....#o..!-\n-1.......#!........1-\n-6####..##!..#.to##7-\n-!###o.###!####.###!-\n-!##..####!...t....!-\n-!#.....t.!.....##.!-\n-!........!....#...!-\n-!!!e!!!!!!!!!!!!e!!-\n-c#...####!####....c-\n-!......##!...#.t#.!-\n-1.......o!.t.#*...1-\n-0.....#..!...#o###5-\n-!.......#!....o##.!-\n-!....#t.#!....o#..!-\n-!.......#!........!-\n-!#....###!........!-\n-!!!e!!!!!!!e!!!!!!!-\n-c#...####!.....###c-\n-!......##!......##!-\n-1..o....#!.*.....#2-\n-6...##..#!........1-\n-!....#..#!####....!-\n-!.....*.#!...#..o.!-\n-!#......#!#..#....!-\n-!######.#!.t.#....!-\n-!!!!!!!e!!!e!!!!e!!-\n-c....#...!...#....c-\n-!..#.....!..#.....!-\n-1..#.....!....#.t.2-\n-5..######!....#...0-\n-!...p....!....####!-\n-!....###.!...*o.##!-\n-!#####.#.!####...#!-\n-!....*t..!........!-\n-!!g!!!e!!!e!!!!!!!!-\n-----!...#...#c------\n-----!...#...#!------\n-----!...#...#1------\n-----!#.....##3------\n-----!##...###!------\n-----!########!------\n-----!#.....##!------\n-----!.......#!------\n-----!!!!!!!!!!------\n---------------------\n\nmessage Thank you for playing!\n\n(\n(Level1)\n---------------------\n-----!!!!!!!!!!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-!!!!!!!e!!!e!!!!!!!-\n-c....#...!........c-\n-!..#.....!........!-\n-1..#.....!........!-\n-5..######!........!-\n-!...p....!........!-\n-!....###.!........!-\n-!#####.#.!........!-\n-!....*t..!........!-\n-!!g!!!e!!!!e!!!!!!!-\n-----!........c------\n-----!........!------\n-----!........1------\n-----!........3------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!!!!!!!!!!------\n---------------------\n\n\n(Level2)\n-!........!.\n-!!!e!!!!!!!\n-c#...####!.\n-!......##!.\n-1..o....#!.\n-6...##..#!.\n-!....#..#!.\n-!.....*.#!.\n-!#......#!.\n-!######p#!.\n-!!!!!!!e!!!\n\n\n(Level3)\n-!........!.\n-!!!e!!!!!!!\n-c#...####!.\n-!......##!.\n-1.......o!.\n-0.....#..!.\n-!.......#!.\n-!....#t.#!.\n-!.......#!.\n-!#.p..###!.\n-!!!e!!!!!!!\n\n\n(Level4)\n-!........!.\n-!!!!!!!e!!!\n-c........!.\n-!....####!.\n-1.......#!.\n-6####..##!.\n-!###o.###!.\n-!##..####!.\n-!#.....t.!.\n-!..p.....!.\n-!!!e!!!!!!!\n\n\n(Level5)\n------------\n-!!!!!!!!!!-\n-c......##!-\n-!.t....##!-\n-2#####.##!-\n-1..o*..o.!-\n-!...##...!-\n-!...#####!-\n-!........!-\n-!..p.....!-\n!!!!e!!!e!!!\n\n(Level6)\n-!........!.\n!!!e!!!!!!!.\n-!.p......c.\n-!....#o..!.\n-!........1.\n-!..#.to##6.\n-!####.###!.\n-!...t....!.\n-!.....##.!.\n-!....#...!.\n!!!!!!!!e!!.\n\n(Level7)\n-!........!.\n!!!!!!!!e!!.\n-!####..p.c.\n-!...#.t#.!.\n-!.t.#*...1.\n-!...#o###5.\n-!....o##.!.\n-!....o#..!.\n-!........!.\n-!.......#!.\n!!!e!!!!!!!.\n\n(Level8)\n------------\n-!!e!!!!!!!-\n-!.p...###c-\n-!......##!-\n-!.*.....#2-\n-!........0-\n-!####....!-\n-!...#..o.!-\n-!#..#....!-\n-!.t.#....!-\n-!!e!!!!e!!-\n-!...#....c-\n-!..#.....!-\n-!....#.t.2-\n-!....#...0-\n-!....####!-\n-!...*o.##!-\n-!####...#!-\n-!........!-\n-!e!!!!!!!!-\n------------\n\n(Bottom Room, no puzzle)\n-.....!.....\n!!!e!!!e!!!!\n-!...#.p.#c.\n-!...#...#!.\n-!...#...#1.\n-!#.....##3.\n-!##...###!.\n-!########!.\n-!#.....##!.\n-!.......#!.\n-!!!!!!!!!!.\n)\n", [1, 1, 0, 0, 0, 0, 3, 3, 2, 3, 3, 3, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 1, 1, 1, 0, 1, 0, 0, 0, "restart", 0, "restart", 0, 3, 3, 3, 0, "undo", 4, 4, 4, 4, 0, 0, 3, 3, 3, 2, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 0, 0, 0, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 3, 3, 3, 3], "background bounds z0:0,background bounds:1,1,1,1,1,1,1,1,1,1,background bounds clockl:2,1,1,1,1,1,1,1,1,2,\n1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,2,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background bounds x0:3,1,1,1,1,1,\n1,1,1,background bounds overwall:4,background boundarywall dot overwall wall:5,background boundarywall clock overwall wall:6,background boundarywall clockd dot overwall wall:7,1 background boundarywall overwall wall:8,6 background boundarywall dot overwall wall:9,background boundarywall overwall wall:10,5,10,5,10,background boundarywall clock dot overwall wall:11,background boundarywall clockd overwall wall:12,0 background boundarywall dot overwall wall:13,0 background boundarywall overwall wall:14,5,10,5,\n10,5,6,7,14,1 background boundarywall dot overwall wall:15,10,5,10,5,10,11,12,13,8,5,10,5,10,background boundarywall dot wall:16,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,background boundarywall wall:17,background clockr dot:18,\nbackground:19,background dot overwall:20,background overwall wall:21,background dot overwall wall:22,21,background dot wall:23,background overwall:24,5,background clockr wall:25,background dot:26,19,26,19,26,24,22,10,background clockr dot wall:27,19,26,19,\n26,24,22,21,16,background clockr:28,26,19,26,19,20,background wall:29,background dot gateul overbushl:30,background boundarywall bushl gatel:31,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,4,16,19,26,24,22,21,23,19,\nbackground dot exitul overbushl:32,background boundarywall bushl exitl:33,26,19,26,19,26,19,26,background exitul overbushl:34,background boundarywall bushl dot exitl:35,19,26,19,26,19,26,24,22,17,background dot q7:36,\nbackground q6:37,background dot q5:38,background q4:39,background dot q3:40,24,23,background gateu:41,background dot gate:42,1,1,1,1,1,1,1,1,1,1,1,1,2,\n1,1,1,1,1,1,4,17,26,19,20,21,23,19,26,background cp exitu:43,background bounds exit:44,19,26,19,26,\n19,26,background q32:45,background exitu q31:46,background bounds exit q30:47,background dot q29:48,background overcrate q28:49,background crate dot q26 target:50,19,26,19,20,21,16,background overwall q8:51,22,21,23,background q2:52,20,29,\nbackground dot gateur overbushr:53,background boundarywall bushr gater:54,1,1,1,1,1,1,1,1,1,1,4,10,11,12,2 background boundarywall dot overwall wall:55,8,5,10,5,\n10,16,19,26,24,23,background target:56,26,19,background dot exitur overbushr:57,background boundarywall bushr exitr:58,26,19,background dot q37:59,background q36:60,background dot q35:61,background q34:62,background dot q33:63,background exitur overbushr:64,background boundarywall bushr dot exitr:65,19,\nbackground dot q27:66,background overwall q25 q26:67,23,19,26,24,22,17,background dot q9:68,background q10:69,20,29,background dot q1:70,24,23,24,5,10,5,10,5,\n10,5,10,5,17,1,4,16,28,20,29,26,19,26,19,20,17,20,29,26,19,\n20,29,26,24,5,29,26,background q38:71,background cam dot player:72,24,23,19,20,10,23,19,background dot overwall q24 q25:73,background cam overwall wall:74,23,19,20,\n21,5,29,background dot q11:75,24,background cam dot wall:76,24,22,background overcrate wall:77,background crate dot exitul overbushl:78,33,26,19,20,21,22,21,23,24,16,1,\n4,17,background dot overtimecrate:79,background overwall timecrate:80,23,19,26,19,26,34,35,24,23,19,20,21,23,19,20,10,23,\n19,background dot highest overwall q39:81,29,26,19,20,21,5,29,26,background q21 q24:82,background dot q20 q21:83,background q19 q20:84,background dot q19:85,background overwall q18:86,background dot exitul overbushl wall:87,33,26,background q12:88,20,29,\n20,29,79,background exitu timecrate:89,44,background cp:90,26,19,20,21,23,19,20,17,1,4,16,19,20,29,background dot target:91,\n19,26,19,43,44,background cp dot overwall:92,29,20,21,22,background overtimecrate wall:93,background dot timecrate:94,24,5,21,background dot overplayer overstatue wall:95,background playerspr q40 soundstop statue stop:96,26,19,26,24,\n22,10,22,29,background dot q23:97,background q22:98,26,19,background dot q17:99,background exitu q16:100,background bounds exit q15:101,background q14:102,background dot q13:103,24,23,24,22,29,57,58,26,\n19,26,19,20,29,26,24,16,1,4,17,26,24,background dot overcrate wall:104,background crate overwall:105,22,29,26,64,65,24,\n22,21,22,21,23,19,20,10,22,93,background dot target timecrate:106,24,22,21,22,21,5,21,22,21,22,\n21,22,21,background dot exitur overbushr wall:107,58,26,19,20,29,26,19,26,24,5,21,22,29,26,24,23,19,\n20,17,1,4,16,19,20,29,20,21,23,19,20,10,5,10,5,10,5,10,5,\n10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,\n5,10,5,10,5,10,background boundarywall dot exitul overbushl wall:108,33,26,19,26,19,20,29,26,24,16,1,4,17,26,\n19,26,19,20,29,26,34,35,19,26,19,20,29,26,19,20,10,23,19,26,19,\n26,19,26,34,35,19,26,19,20,29,20,29,32,33,26,19,26,19,26,24,23,\n43,44,90,26,19,20,21,23,19,20,17,1,4,5,21,22,29,91,24,23,19,\n43,44,background cp dot:109,19,26,24,23,19,26,24,5,29,79,background timecrate:110,26,19,26,19,43,44,109,\nbackground overcrate:111,background crate dot:112,24,23,19,79,background cp exitu timecrate:113,44,90,26,19,26,19,20,29,57,58,26,19,20,21,\n22,21,23,24,16,1,4,10,22,21,23,19,20,29,26,64,65,19,26,24,22,\n29,26,19,20,10,23,19,26,19,26,19,26,64,65,19,26,19,20,29,26,19,\n57,58,20,29,26,19,26,24,23,24,5,background clockl overwall wall:114,22,21,22,21,22,21,22,17,1,\n4,5,10,5,10,5,10,5,10,5,17,26,19,26,24,background dot overtimecrate wall:115,110,26,24,5,21,\n22,21,23,19,26,19,20,17,26,19,26,24,22,21,22,21,5,29,26,19,26,\n111,background crate dot overwall:116,29,20,10,11,12,15,3 background boundarywall overwall wall:117,5,10,5,10,16,1,1,1,1,1,1,1,\n1,1,1,4,16,24,23,background overtimecrate:118,94,19,26,24,22,17,26,111,112,56,91,56,26,\n24,16,19,26,19,26,19,26,19,20,17,26,24,22,21,23,56,26,24,16,background bounds clockr:119,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,17,26,\n56,26,background overwall target:120,23,24,23,34,35,118,94,24,22,21,23,19,20,10,23,19,26,19,\n26,19,26,34,35,19,26,19,20,29,26,19,20,17,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,4,16,19,26,24,22,29,20,29,\n43,44,92,29,20,21,23,19,26,24,5,21,23,19,26,19,91,19,43,44,109,\n118,94,24,22,29,26,24,16,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,4,17,background clockl dot:121,19,20,21,23,19,26,64,65,background clockl:122,26,24,23,\n19,26,19,20,10,background clockl dot overwall wall:123,21,23,19,26,19,26,64,65,122,26,19,20,21,22,29,\n20,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n4,5,6,7,8,7 background boundarywall dot overwall wall:124,10,5,10,5,10,11,12,15,5 background boundarywall overwall wall:125,5,10,5,10,5,6,\n7,2 background boundarywall overwall wall:126,15,10,5,10,5,10,11,12,55,14,5,10,5,10,16,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,119,1,1,1,\n1,1,1,1,1,119,1,1,1,1,1,1,1,1,119,1,1,1,1,1,1,\n1,1,119,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n", 8, "1627769376598.7021"] ], [ `gallery game: shall we golf?`, - ["title Shall We Golf?\nauthor nebu soku\nhomepage www.puzzlescript.net\n\nrealtime_interval 0.13\nrun_rules_on_level_Start\nbackground_color #3a6aa3\ntext_color lightblue\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nGreen\n#659b2d green\n11111\n10001\n10101\n10001\n11111\n\nWater\nlightblue \n\nAddWaterLUD\nlightblue \n0....\n.....\n.....\n.....\n0....\n\nAddWaterLU\nlightblue \n0....\n.....\n.....\n.....\n.....\n\nAddWaterLD\nlightblue \n.....\n.....\n.....\n.....\n0....\n\nAddWaterRUD\nlightblue \n....0\n.....\n.....\n.....\n....0\n\nAddWaterRU\nlightblue \n....0\n.....\n.....\n.....\n.....\n\nAddWaterRD\nlightblue \n.....\n.....\n.....\n.....\n....0\n\nRemoveWaterLUD\ngreen\n0....\n.....\n.....\n.....\n0....\n\nRemoveWaterLU\ngreen\n0....\n.....\n.....\n.....\n.....\n\nRemoveWaterLD\ngreen\n.....\n.....\n.....\n.....\n0....\n\nRemoveWaterRUD\ngreen\n....0\n.....\n.....\n.....\n....0\n\nRemoveWaterRU\ngreen\n....0\n.....\n.....\n.....\n.....\n\nRemoveWaterRD\ngreen\n.....\n.....\n.....\n.....\n....0\n\nBunker\nlightbrown orange #2a6b17\n00000\n00010\n00000\n01000\n00000\n\nAddBunkerLUD\nlightbrown\n0....\n.....\n.....\n.....\n0....\n\nAddBunkerLU\nlightbrown\n0....\n.....\n.....\n.....\n.....\n\nAddBunkerLD\nlightbrown\n.....\n.....\n.....\n.....\n0....\n\nAddBunkerRUD\nlightbrown\n....0\n.....\n.....\n.....\n....0\n\nAddBunkerRU\nlightbrown\n....0\n.....\n.....\n.....\n.....\n\nAddBunkerRD\nlightbrown\n.....\n.....\n.....\n.....\n....0\n\nRemoveBunkerLUD\ngreen\n0....\n.....\n.....\n.....\n0....\n\nRemoveBunkerLU\ngreen\n0....\n.....\n.....\n.....\n.....\n\nRemoveBunkerLD\ngreen\n.....\n.....\n.....\n.....\n0....\n\nRemoveBunkerRUD\ngreen\n....0\n.....\n.....\n.....\n....0\n\nRemoveBunkerRU\ngreen\n....0\n.....\n.....\n.....\n.....\n\nRemoveBunkerRD\ngreen\n.....\n.....\n.....\n.....\n....0\n\nOnBunker\nblack\n.....\n.....\n.....\n.....\n.....\n\nblank\n#3a6aa3\n\nWin1\n#3a6aa3\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\nWin2\n#3a6aa3\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nWinS1\nwhite\n\nWinS2\nblack\n\nRSVWin1\nblack\n.....\n.....\n.....\n.....\n.....\n\nRSVWin2\nblack\n.....\n.....\n.....\n.....\n.....\n\nTarget\nlightgray red darkblue\n..0..\n..0..\n..2..\n.....\n.....\n\nFlag\nred lightgray\n.....\n.....\n.....\n..00.\n..1..\n\nclubR\ngray darkgray white\n.....\n.....\n.0...\n.2...\n.11..\n\nclubL\ngray darkgray white\n.....\n.....\n...0.\n...2.\n..11.\n\nBall\nwhite\n.....\n.....\n..0..\n.....\n.....\n\nBallR\nwhite darkblue\n..0..\n.....\n..1..\n.....\n.....\n\nBallL\nwhite darkblue\n..0..\n.....\n..1..\n.....\n.....\n\nBallU\nwhite darkblue\n..0..\n.....\n..1..\n.....\n.....\n\nBallD\nwhite darkblue\n..0..\n.....\n..1..\n.....\n.....\n\nBallIn\ndarkblue\n.....\n.....\n..0..\n.....\n.....\n\nStart\nlightgreen green\n11111\n11111\n10111\n11111\n11101\n\nTree\ndarkgreen brown #134b3d\n.000.\n.000.\n..1..\n.....\n.....\n\nTreeU\ndarkgreen #134b3d\n.....\n.....\n.....\n.111.\n.111.\n\nLeftRSV\npurple\n\nUnmovableR\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n63636\n.3333\n.0330\n.3.6.\n\nUnmovableL\nwhite lightbrown lightgray darkblue brown blue black\n6666.\n63636\n3333.\n0330.\n.6.3.\n\nPlayerR\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n63636\n.2333\n.0330\n.776.\n\nWalkR1\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n63636\n.3233\n.3033\n3.776\n\nWalkR2\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n62636\n.2333\n.0332\n.773.\n\nWalkR3\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n63636\n23333\n03330\n77..3\n\nPlayerL\nwhite lightbrown lightgray darkblue brown blue black darkgray\n6666.\n63636\n3332.\n0330.\n.677.\n\nWalkL1\nwhite lightbrown lightgray darkblue brown blue black darkgray\n6666.\n63636\n3323.\n.303.\n677.3\n\nWalkL2\nwhite lightbrown lightgray darkblue brown blue black darkgray\n6666.\n63636\n3332.\n2330.\n.377.\n\nWalkL3\nwhite lightbrown lightgray darkblue brown blue black darkgray\n6666.\n63636\n33332\n03330\n3..77\n\nRSVR1\npink\n.....\n.....\n.....\n.....\n.....\n\nRSVL1\npink\n.....\n.....\n.....\n.....\n.....\n\nTM1R\nwhite lightbrown lightgray pink brown blue darkred\n.6666\n63636\n.3333\n.0330\n.3.6.\n\nTM1WalkR1\nwhite lightbrown lightgray pink brown blue darkred\n.6666\n63636\n.3333\n.3033\n3...6\n\nTM1WalkR2\nwhite lightbrown lightgray pink brown blue darkred\n.6666\n63636\n.3333\n.0332\n.6.3.\n\nTM1WalkR3\nwhite lightbrown lightgray pink brown blue darkred\n.6666\n63636\n.3333\n03330\n6...3\n\nTM1L\nwhite lightbrown lightgray pink brown blue darkred\n6666.\n63636\n3333.\n0330.\n.6.3.\n\nTM1WalkL1\nwhite lightbrown lightgray pink brown blue darkred\n6666.\n63636\n3333.\n3303.\n6...3\n\nTM1WalkL2\nwhite lightbrown lightgray pink brown blue darkred\n6666.\n63636\n3333.\n2330.\n.3.6.\n\nTM1WalkL3\nwhite lightbrown lightgray pink brown blue darkred\n6666.\n63636\n3333.\n03330\n3...6\n\nRSVR2\nyellow\n.....\n.....\n.....\n.....\n.....\n\nRSVL2\nyellow\n.....\n.....\n.....\n.....\n.....\n\nTM2R\nwhite lightbrown lightgray yellow brown blue orange\n.6666\n63636\n.3333\n.0330\n.3.6.\n\nTM2WalkR1\nwhite lightbrown lightgray yellow brown blue orange\n.6666\n63636\n.3333\n.3033\n3...6\n\nTM2WalkR2\nwhite lightbrown lightgray yellow brown blue orange\n.6666\n63636\n.3333\n.0332\n.6.3.\n\nTM2WalkR3\nwhite lightbrown lightgray yellow brown blue orange\n.6666\n63636\n.3333\n03330\n6...3\n\nTM2L\nwhite lightbrown lightgray yellow brown blue orange\n6666.\n63636\n3333.\n0330.\n.6.3.\n\nTM2WalkL1\nwhite lightbrown lightgray yellow brown blue orange\n6666.\n63636\n3333.\n3303.\n6...3\n\nTM2WalkL2\nwhite lightbrown lightgray yellow brown blue orange\n6666.\n63636\n3333.\n2330.\n.3.6.\n\nTM2WalkL3\nwhite lightbrown lightgray yellow brown blue orange\n6666.\n63636\n3333.\n03330\n3...6\n\nRSVR3\ngray\n.....\n.....\n.....\n.....\n.....\n\nRSVL3\ngray\n.....\n.....\n.....\n.....\n.....\n\nTM3R\nwhite lightbrown lightgray Blue brown blue #153759\n.6666\n63636\n.3333\n.0330\n.3.6.\n\nTM3WalkR1\nwhite lightbrown lightgray Blue brown blue #153759\n.6666\n63636\n.3333\n.3033\n3...6\n\nTM3WalkR2\nwhite lightbrown lightgray Blue brown blue #153759\n.6666\n63636\n.3333\n.0332\n.6.3.\n\nTM3WalkR3\nwhite lightbrown lightgray Blue brown blue #153759\n.6666\n63636\n.3333\n03330\n6...3\n\nTM3L\nwhite lightbrown lightgray Blue brown blue #153759\n6666.\n63636\n3333.\n0330.\n.6.3.\n\nTM3WalkL1\nwhite lightbrown lightgray Blue brown blue #153759\n6666.\n63636\n3333.\n3303.\n6...3\n\nTM3WalkL2\nwhite lightbrown lightgray Blue brown blue #153759\n6666.\n63636\n3333.\n2330.\n.3.6.\n\nTM3WalkL3\nwhite lightbrown lightgray Blue brown blue #153759\n6666.\n63636\n3333.\n03330\n3...6\n\nAddGreenLUD\ngreen\n0....\n.....\n.....\n.....\n0....\n\nAddGreenLU\ngreen\n0....\n.....\n.....\n.....\n.....\n\nAddGreenLD\ngreen\n.....\n.....\n.....\n.....\n0....\n\nAddGreenRUD\ngreen\n....0\n.....\n.....\n.....\n....0\n\nAddGreenRU\ngreen\n....0\n.....\n.....\n.....\n.....\n\nAddGreenRD\ngreen\n.....\n.....\n.....\n.....\n....0\n\nRemoveGreenLUD\n#1d4c2c\n0....\n.....\n.....\n.....\n0....\n\nRemoveGreenLU\n#1d4c2c\n0....\n.....\n.....\n.....\n.....\n\nRemoveGreenLD\n#1d4c2c\n.....\n.....\n.....\n.....\n0....\n\nRemoveGreenRUD\n#1d4c2c\n....0\n.....\n.....\n.....\n....0\n\nRemoveGreenRU\n#1d4c2c\n....0\n.....\n.....\n.....\n.....\n\nRemoveGreenRD\n#1d4c2c\n.....\n.....\n.....\n.....\n....0\n\nBorderR\n#1d4c2c\n0....\n0....\n0....\n0....\n0....\n\nBorderL\n#1d4c2c\n....0\n....0\n....0\n....0\n....0\n\nBorderU\n#1d4c2c\n.....\n.....\n.....\n.....\n00000\n\nBorderD\n#1d4c2c\n00000\n.....\n.....\n.....\n.....\n\nRemoveBorderRU\n#3a6aa3\n0....\n.....\n.....\n.....\n.....\n\nRemoveBorderLU\n#3a6aa3\n....0\n.....\n.....\n.....\n.....\n\nRemoveBorderRD\n#3a6aa3\n.....\n.....\n.....\n.....\n0....\n\nRemoveBorderLD\n#3a6aa3\n.....\n.....\n.....\n.....\n....0\n\nRipples1\nwhite\n.....\n.....\n..0..\n.....\n.....\n\nRipples2\nwhite #3a6aa3\n.....\n...0.\n.0...\n..1..\n.....\n\nRipples3\nwhite #3a6aa3\n.....\n.....\n.....\n.....\n..1..\n\nArrowR\ngray lightgray red\n.111.\n11211\n11121\n11211\n.111.\n\nArrowL\ngray lightgray red\n.111.\n11211\n12111\n11211\n.111.\n\nArrowU\ngray lightgray red\n.111.\n11211\n12121\n11111\n.111.\n\nArrowD\ngray lightgray red\n.111.\n11111\n12121\n11211\n.111.\n\nRSVText\npurple\n\nNT\n#fa5c5c\n0...0\n00..0\n0.0.0\n0..00\n0...0\n\nIT\norange yellow\n.0.11\n.0.1.\n.0.1.\n.0.1.\n.0.11\n\nCT\nyellow #27cc20\n000.1\n....1\n....1\n....1\n000.1\n\nET\n#27cc20\n0000.\n.....\n0000.\n.....\n0000.\n\nST\n#4bb6e3\n.0000\n.0...\n.0000\n.....\n.0000\n\nHT\n#4bb6e3 blue\n0.1..\n..1..\n0.111\n0.1..\n0.1..\n\nOT\nblue #bb4be2\n.0.11\n.0.1.\n00.1.\n.0.1.\n.0.11\n\nTT\n#bb4be2 pink\n000.1\n..0..\n..0..\n..0..\n000..\n\nTT2\npink\n0000.\n.0...\n.0...\n.0...\n.0...\n\nExT\n#fa5c5c\n.0...\n.0...\n.0...\n.....\n.0...\n\nCursor\nred\n0...0\n.....\n.....\n.....\n0...0\n\n=======\nLEGEND\n=======\n\nPlayer = PlayerR or PlayerL or WalkR1 or WalkR2 or WalkR3 or WalkL1 or WalkL2 or WalkL3 or clubR or clubL\nLeader = PlayerR or PlayerL or WalkR1 or WalkR2 or WalkR3 or WalkL1 or WalkL2 or WalkL3\nWalkR = WalkR1 or WalkR2 or WalkR3\nWalkL = WalkL1 or WalkL2 or WalkL3\n\nTM1 = TM1R or TM1L\nTM1WalkR = TM1R or TM1WalkR1 or TM1WalkR2 or TM1WalkR3\nTM1WalkL = TM1L or TM1WalkL1 or TM1WalkL2 or TM1WalkL3\nRSV1 = RSVR1 or RSVL1\n\nTM2 = TM2R or TM2L\nTM2WalkR = TM2R or TM2WalkR1 or TM2WalkR2 or TM2WalkR3\nTM2WalkL = TM2L or TM2WalkL1 or TM2WalkL2 or TM2WalkL3\nRSV2 = RSVR2 or RSVL2\n\nTM3 = TM3R or TM3L\nTM3WalkR = TM3R or TM3WalkR1 or TM3WalkR2 or TM3WalkR3\nTM3WalkL = TM3L or TM3WalkL1 or TM3WalkL2 or TM3WalkL3\nRSV3 = RSVR3 or RSVL3\n\nTMs = TM1WalkR or TM1WalkL or TM2WalkR or TM2WalkL or TM3WalkR or TM3WalkL or UnmovableR or UnmovableL\n\nclub = clubR or clubL\n\nArrows = ArrowR or ArrowL or ArrowU or ArrowD\n\nObstacles = Player or TMs or blank or Tree\nOBforP = Ball or blank or Target or Tree or Water\n\n. = Background\n, = Green\nP = PlayerR\nO = Target and Green\n_ = blank\nT = Tree and Green\nS = Start and PlayerR and Green\nB = Ball and Green\nW = Water and Green\n+ = Bunker and Green\nR = ArrowR and Green\nL = ArrowL and Green\nU = ArrowU and Green\nD = ArrowD and Green\n1 = WinS1 and blank\n2 = WinS2 and blank\n3 = RSVText and blank\n* = LeftRSV and blank\n\nAddGreenL = AddGreenLUD or AddGreenLU or AddGreenLD\nAddGreenR = AddGreenRUD or AddGreenRU or AddGreenRD\n\nRemoveGreenL = RemoveGreenLUD or RemoveGreenLU or RemoveGreenLD\nRemoveGreenR = RemoveGreenRUD or RemoveGreenRU or RemoveGreenRD\n\nAddWaterL = AddWaterLUD or AddWaterLU or AddWaterLD\nAddwaterR = AddWaterRUD or AddWaterRU or AddWaterRD\n\nRemoveWaterL = RemoveWaterLUD or RemoveWaterLU or RemoveWaterLD\nRemoveWaterR = RemoveWaterRUD or RemoveWaterRU or RemoveWaterRD\n\nAddBunkerL = AddBunkerLUD or AddBunkerLU or AddBunkerLD\nAddBunkerR = AddBunkerRUD or AddBunkerRU or AddBunkerRD\n\nRemoveBunkerL = RemoveBunkerLD or RemoveBunkerLU or RemoveBunkerLUD\nRemoveBunkerR = RemoveBunkerRUD or RemoveBunkerRU or RemoveBunkerRD\n\n=======\nSOUNDS\n=======\n\nLeader MOVE 62144707\nblank MOVE 16278507\nblank move 95612108\nTarget action 6210100\nclub move 44711106\nBall action 45846907\nRipples2 action 22937701\nRipples1 action 73444303\n\nsfx0 47327503\nsfx1 44711106\nsfx2 48837904\n\nrestart 58221102\nundo 12286707\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nStart, WinS1, WinS2, RSVText, LeftRSV\nGreen\nTarget, Bunker, Water\nAddWaterL\nAddwaterR\nAddBunkerL\nAddBunkerR\nRemoveWaterL\nRemoveWaterR\nRemoveBunkerL\nRemoveBunkerR\nRipples1, Ripples2, Ripples3\nRemoveGreenL\nRemoveGreenR\nArrows\nLeader, TM1WalkR, TM1WalkL, TM2WalkR, TM2WalkL, TM3WalkR, TM3WalkL, UnmovableR, UnmovableL, Ball, blank, Tree, BallIn\nclubR, clubL\nBallR, BallL, BallU, BallD\nRSV1, RSV2, RSV3\nOnBunker\nBorderR\nBorderL\nBorderU\nBorderD\nRemoveBorderRU\nRemoveBorderLU\nRemoveBorderRD\nRemoveBorderLD\nAddGreenL\nAddGreenR\nFlag, TreeU\nCursor\nWin1, RSVWin1\nWin2, RSVWin2\nNT, IT, CT, ET, ST, HT, OT, TT, TT2, ExT\n\n======\nRULES\n======\n\nup [ Target | no Flag ] -> [ Target | Flag ]\nup [ Tree | no TreeU ] -> [ Tree | TreeU ]\n\n[ > Player | OBforP ] -> [ Player | OBforP ]\n\n[ LeftRSV ] [ PlayerR ] -> [ ] [ PlayerL ]\n\n([ > Player | Arrows | no OBforP ] -> [ > Player | > Arrows | ]\n[ > Player | Arrows | OBforP ] -> [ Player | Arrows | OBforP ])\n\n(Arrows)\n\nright [ BallU ArrowR | no Obstacles ] -> [ ArrowR | BallU ]\nright [ BallD ArrowR | no Obstacles ] -> [ ArrowR | BallD ]\nright [ BallL ArrowR | no Obstacles ] -> [ ArrowR | Ball ]\nleft [ BallU ArrowL | no Obstacles ] -> [ ArrowL | BallU ]\nleft [ BallD ArrowL | no Obstacles ] -> [ ArrowL | BallD ]\nleft [ BallR ArrowL | no Obstacles ] -> [ ArrowL | Ball ]\nup [ BallR ArrowU | no Obstacles ] -> [ ArrowU | BallR ]\nup [ BallL ArrowU | no Obstacles ] -> [ ArrowU | BallL ]\nup [ BallD ArrowU | no Obstacles ] -> [ ArrowU | Ball ]\ndown [ BallR ArrowD | no Obstacles ] -> [ ArrowD | BallR ]\ndown [ BallL ArrowD | no Obstacles ] -> [ ArrowD | BallL ]\ndown [ BallU ArrowD | no Obstacles ] -> [ ArrowD | Ball ]\n\n(Water)\n\nleft [ no Water no AddWaterL | Water ] -> [ AddWaterLUD | Water ]\nright [ no Water no AddWaterR | Water ] -> [ AddWaterRUD | Water ]\n\nup [ AddWaterLUD | no Water ] -> [ AddWaterLD | ]\nup [ AddWaterRUD | no Water ] -> [ AddWaterRD | ]\n\ndown [ AddWaterLUD | no Water ] -> [ AddWaterLU | ]\ndown [ AddWaterRUD | no Water ] -> [ AddWaterRU | ]\n\ndown [ AddWaterLD | no Water ] -> [ | ]\ndown [ AddWaterRD | no Water ] -> [ | ]\n\nleft [ Water no RemoveWaterL | no Water ] -> [ Water RemoveWaterLUD | ]\nright [ Water no RemoveWaterR | no Water ] -> [ Water RemoveWaterRUD | ]\n\nup [ RemoveWaterLUD | Water ] -> [ RemoveWaterLD | Water ]\nup [ RemoveWaterRUD | Water ] -> [ RemoveWaterRD | Water ]\n\ndown [ RemoveWaterLUD | Water ] -> [ RemoveWaterLU | Water ]\ndown [ RemoveWaterRUD | Water ] -> [ RemoveWaterRU | Water ]\n\ndown [ RemoveWaterLD | Water ] -> [ | Water ]\ndown [ RemoveWaterRD | Water ] -> [ | Water ]\n\nright [ RemoveWaterRU | AddWaterLU ] -> [ RemoveWaterRU | ]\nright [ RemoveWaterRD | AddWaterLD ] -> [ RemoveWaterRD | ]\n\nright [ RemoveWaterRUD | AddWaterLU ] -> [ RemoveWaterRUD | ]\nright [ RemoveWaterRUD | AddWaterLD ] -> [ RemoveWaterRUD | ]\n\nleft [ RemoveWaterLU | AddWaterRU ] -> [ RemoveWaterLU | ]\nleft [ RemoveWaterLD | AddWaterRD ] -> [ RemoveWaterLD | ]\n\nleft [ RemoveWaterLUD | AddWaterRU ] -> [ RemoveWaterLUD | ]\nleft [ RemoveWaterLUD | AddWaterRD ] -> [ RemoveWaterLUD | ]\n\n[ Ball Water ] -> [ Ripples1 Water ]\n[ stationary Ripples3 ] -> [ ]\n[ stationary Ripples2 ] -> [ Ripples3 ]\n[ stationary Ripples1 ] -> [ action Ripples2 ]\n\n(Bunker)\n\nleft [ no Bunker no AddBunkerL | Bunker ] -> [ AddBunkerLUD | Bunker ]\nright [ no Bunker no AddBunkerR | Bunker ] -> [ AddBunkerRUD | Bunker ]\n\nup [ AddBunkerLUD | no Bunker ] -> [ AddBunkerLD | ]\nup [ AddBunkerRUD | no Bunker ] -> [ AddBunkerRD | ]\n\ndown [ AddBunkerLUD | no Bunker ] -> [ AddBunkerLU | ]\ndown [ AddBunkerRUD | no Bunker ] -> [ AddBunkerRU | ]\n\ndown [ AddBunkerLD | no Bunker ] -> [ | ]\ndown [ AddBunkerRD | no Bunker ] -> [ | ]\n\nleft [ Bunker no RemoveBunkerL | no Bunker ] -> [ Bunker RemoveBunkerLUD | ]\nright [ Bunker no RemoveBunkerR | no Bunker ] -> [ Bunker RemoveBunkerRUD | ]\n\nup [ RemoveBunkerLUD | Bunker ] -> [ RemoveBunkerLD | Bunker ]\nup [ RemoveBunkerRUD | Bunker ] -> [ RemoveBunkerRD | Bunker ]\n\ndown [ RemoveBunkerLUD | Bunker ] -> [ RemoveBunkerLU | Bunker ]\ndown [ RemoveBunkerRUD | Bunker ] -> [ RemoveBunkerRU | Bunker ]\n\ndown [ RemoveBunkerLD | Bunker ] -> [ | Bunker ]\ndown [ RemoveBunkerRD | Bunker ] -> [ | Bunker ]\n\nright [ RemoveBunkerRU | AddBunkerLU ] -> [ RemoveBunkerRU | ]\nright [ RemoveBunkerRD | AddBunkerLD ] -> [ RemoveBunkerRD | ]\n\nright [ RemoveBunkerRUD | AddBunkerLU ] -> [ RemoveBunkerRUD | ]\nright [ RemoveBunkerRUD | AddBunkerLD ] -> [ RemoveBunkerRUD | ]\n\nleft [ RemoveBunkerLU | AddBunkerRU ] -> [ RemoveBunkerLU | ]\nleft [ RemoveBunkerLD | AddBunkerRD ] -> [ RemoveBunkerLD | ]\n\nleft [ RemoveBunkerLUD | AddBunkerRU ] -> [ RemoveBunkerLUD | ]\nleft [ RemoveBunkerLUD | AddBunkerRD ] -> [ RemoveBunkerLUD | ]\n\n(Green)\n\nleft [ no Green no AddGreenL | Green ] -> [ AddGreenLUD | Green ]\nright [ no Green no AddGreenR | Green ] -> [ AddGreenRUD | Green ]\n\nup [ AddGreenLUD | no Green ] -> [ AddGreenLD | ]\nup [ AddGreenRUD | no Green ] -> [ AddGreenRD | ]\n\ndown [ AddGreenLUD | no Green ] -> [ AddGreenLU | ]\ndown [ AddGreenRUD | no Green ] -> [ AddGreenRU | ]\n\ndown [ AddGreenLD | no Green ] -> [ | ]\ndown [ AddGreenRD | no Green ] -> [ | ]\n\nleft [ Green no RemoveGreenL | no Green ] -> [ Green RemoveGreenLUD | ]\nright [ Green no RemoveGreenR | no Green ] -> [ Green RemoveGreenRUD | ]\n\nup [ RemoveGreenLUD | Green ] -> [ RemoveGreenLD | Green ]\nup [ RemoveGreenRUD | Green ] -> [ RemoveGreenRD | Green ]\n\ndown [ RemoveGreenLUD | Green ] -> [ RemoveGreenLU | Green ]\ndown [ RemoveGreenRUD | Green ] -> [ RemoveGreenRU | Green ]\n\ndown [ RemoveGreenLD | Green ] -> [ | Green ]\ndown [ RemoveGreenRD | Green ] -> [ | Green ]\n\nright [ RemoveGreenRU | AddGreenLU ] -> [ RemoveGreenRU | ]\nright [ RemoveGreenRD | AddGreenLD ] -> [ RemoveGreenRD | ]\n\nright [ RemoveGreenRUD | AddGreenLU ] -> [ RemoveGreenRUD | ]\nright [ RemoveGreenRUD | AddGreenLD ] -> [ RemoveGreenRUD | ]\n\nleft [ RemoveGreenLU | AddGreenRU ] -> [ RemoveGreenLU | ]\nleft [ RemoveGreenLD | AddGreenRD ] -> [ RemoveGreenLD | ]\n\nleft [ RemoveGreenLUD | AddGreenRU ] -> [ RemoveGreenLUD | ]\nleft [ RemoveGreenLUD | AddGreenRD ] -> [ RemoveGreenLUD | ]\n\n(Border)\n\nright [ Green | blank ] -> [ Green | BorderR blank ]\nleft [ Green | blank ] -> [ Green | BorderL blank ]\nup [ Green | blank ] -> [ Green | BorderU blank ]\ndown [ Green | blank ] -> [ Green | BorderD blank ]\n\nup [ BorderR | no BorderR ] -> [ BorderR RemoveBorderRU | ]\ndown [ BorderR | no BorderR ] -> [ BorderR RemoveBorderRD | ]\nup [ BorderL | no BorderL ] -> [ BorderL RemoveBorderLU | ]\ndown [ BorderL | no BorderL ] -> [ BorderL RemoveBorderLD | ]\nright [ BorderU | no BorderU ] -> [ BorderU RemoveBorderLD | ]\nleft [ BorderU | no BorderU ] -> [ BorderU RemoveBorderRD | ]\nright [ BorderD | no BorderD ] -> [ BorderD RemoveBorderLU | ]\nleft [ BorderD | no BorderD ] -> [ BorderD RemoveBorderRU | ]\n\n(club)\n\n[ > PlayerR | TMs ] -> [ UnmovableR | TMs clubR ] sfx1\n[ > WalkR | TMs ] -> [ UnmovableR | TMs clubR ] sfx1\n[ > PlayerL | TMs ] -> [ UnmovableL | TMs clubL ] sfx1\n[ > WalkL | TMs ] -> [ UnmovableL | TMs clubL ] sfx1\n\n[ > club | no TMs ] -> [ club | ]\nlate [ club UnmovableR ] -> [ clubR UnmovableR ]\nlate [ club UnmovableL ] -> [ clubL UnmovableL ]\nlate [ club TM1WalkR ] -> [ clubR TM1WalkR ]\nlate [ club TM1WalkL ] -> [ clubL TM1WalkL ]\nlate [ club TM2WalkR ] -> [ clubR TM2WalkR ]\nlate [ club TM2WalkL ] -> [ clubL TM2WalkL ]\nlate [ club TM3WalkR ] -> [ clubR TM3WalkR ]\nlate [ club TM3WalkL ] -> [ clubL TM3WalkL ]\n\nlate [ club UnmovableR ] -> [ PlayerR ]\nlate [ club UnmovableL ] -> [ PlayerL ]\n\nlate up [ club TMs no Cursor ] -> [ club TMs Cursor ]\nlate up [ no club TMs Cursor ] -> [ TMs ]\n\n(Hit)\n\n[ Ball Target ] -> [ BallIn Target ]\n\nright [ Bunker OnBunker | BallR ] -> [ Bunker | action Ball ]\nleft [ Bunker OnBunker | BallL ] -> [ Bunker | action Ball ]\nup [ Bunker OnBunker | BallU ] -> [ Bunker | action Ball ]\ndown [ Bunker OnBunker | BallD ] -> [ Bunker | action Ball ]\n\nright [ action Player | Ball no Bunker | no Obstacles ] -> [ Player | BallR | ] sfx0\nleft [ action Player | Ball no Bunker | no Obstacles ] -> [ Player | BallL | ] sfx0\nup [ action Player | Ball no Bunker | no Obstacles ] -> [ Player | BallU | ] sfx0\ndown [ action Player | Ball no Bunker | no Obstacles ] -> [ Player | BallD | ] sfx0\n\nright [ action Player | Ball Bunker | no Obstacles ] -> [ Player | BallR Bunker OnBunker | ] sfx2\nleft [ action Player | Ball Bunker | no Obstacles ] -> [ Player | BallL Bunker OnBunker | ] sfx2\nup [ action Player | Ball Bunker | no Obstacles ] -> [ Player | BallU Bunker OnBunker | ] sfx2\ndown [ action Player | Ball Bunker | no Obstacles ] -> [ Player | BallD Bunker OnBunker | ] sfx2\n\nright [ BallR | no Obstacles ] -> [ > BallR | ]\nright [ BallR | Obstacles ] -> [ action Ball | Obstacles ]\nleft [ BallL | no Obstacles ] -> [ > BallL | ]\nleft [ BallL | Obstacles ] -> [ action Ball | Obstacles ]\nup [ BallU | no Obstacles ] -> [ > BallU | ]\nup [ BallU | Obstacles ] -> [ action Ball | Obstacles ]\ndown [ BallD | no Obstacles ] -> [ > BallD | ]\ndown [ BallD | Obstacles ] -> [ action Ball | Obstacles ]\n\n(Follower)\n\n[ Start RSVR1 no Player ] -> [ Start TM1R RSVR1 ]\n\n[ PlayerR ] -> [ PlayerR RSVR1 ]\n[ WalkR ] -> [ WalkR RSVR1 ]\n[ PlayerL ] -> [ PlayerL RSVL1 ]\n[ WalkL ] -> [ WalkL RSVL1 ]\n\n[ > Leader ] [ RSVR3 ] -> [ > Leader ] [ RSVR1 ]\n[ > Leader ] [ RSVL3 ] -> [ > Leader ] [ RSVL1 ]\n[ > Leader ] [ RSVR2 ] -> [ > Leader ] [ RSVR3 ]\n[ > Leader ] [ RSVL2 ] -> [ > Leader ] [ RSVL3 ]\n[ > Leader ] [ RSVR1 no Player no TM3WalkR ] -> [ > Leader ] [ RSVR2 ]\n[ > Leader ] [ RSVL1 no Player no TM3WalkL no UnmovableR no UnmovableL ] -> [ > Leader ] [ RSVL2 ]\n\nlate [ TM2WalkR RSVR3 ] -> [ TM3WalkR1 RSVR3 ]\nlate [ TM2WalkL RSVL3 ] -> [ TM3WalkL1 RSVL3 ]\nlate [ TM1WalkR RSVR2 ] -> [ TM2WalkR1 RSVR2 ]\nlate [ TM1WalkL RSVL2 ] -> [ TM2WalkL1 RSVL2 ]\nlate [ RSVR1 no Player no TM1WalkR no UnmovableR no UnmovableL ] -> [ TM1WalkR1 RSVR1 ]\nlate [ RSVL1 no Player no TM1WalkL no UnmovableR no UnmovableL ] -> [ TM1WalkL1 RSVL1 ]\n\n(Walking anim)\n\nleft [ > PlayerR ] -> [ > PlayerL ]\nleft [ > WalkR1 ] -> [ > WalkL1 ]\nleft [ > WalkR2 ] -> [ > WalkL2 ]\nleft [ > WalkR3 ] -> [ > WalkL3 ]\nright [ > PlayerL ] -> [ > PlayerR ]\nright [ > WalkL1 ] -> [ > WalkR1 ]\nright [ > WalkL2 ] -> [ > WalkR2 ]\nright [ > WalkL3 ] -> [ > WalkR3 ]\n\n[ stationary TM3walkR3 ] -> [ TM3R ]\n[ stationary TM3WalkR2 ] -> [ TM3walkR3 ]\n[ stationary TM3WalkR1 ] -> [ TM3walkR2 ]\n[ stationary TM3walkL3 ] -> [ TM3L ]\n[ stationary TM3WalkL2 ] -> [ TM3walkL3 ]\n[ stationary TM3WalkL1 ] -> [ TM3walkL2 ]\n\n[ stationary TM2walkR3 ] -> [ TM2R ]\n[ stationary TM2WalkR2 ] -> [ TM2walkR3 ]\n[ stationary TM2WalkR1 ] -> [ TM2walkR2 ]\n[ stationary TM2walkL3 ] -> [ TM2L ]\n[ stationary TM2WalkL2 ] -> [ TM2walkL3 ]\n[ stationary TM2WalkL1 ] -> [ TM2walkL2 ]\n\n[ stationary TM1walkR3 ] -> [ TM1R ]\n[ stationary TM1WalkR2 ] -> [ TM1walkR3 ]\n[ stationary TM1WalkR1 ] -> [ TM1walkR2 ]\n[ stationary TM1walkL3 ] -> [ TM1L ]\n[ stationary TM1WalkL2 ] -> [ TM1walkL3 ]\n[ stationary TM1WalkL1 ] -> [ TM1walkL2 ]\n\n[ > PlayerR ] -> [ > WalkR1 ]\n[ stationary walkR3 ] -> [ PlayerR ]\n[ stationary WalkR2 ] -> [ walkR3 ]\n[ stationary WalkR1 ] -> [ walkR2 ]\n\n[ > PlayerL ] -> [ > WalkL1 ]\n[ stationary walkL3 ] -> [ PlayerL ]\n[ stationary WalkL2 ] -> [ walkL3 ]\n[ stationary WalkL1 ] -> [ walkL2 ]\n\n(Win)\n\nright [ BallIn Target ] [ WinS1 no Win1 ] [ WinS2 no Win2 ] [ RSVText | | ] -> [ BallIn action Target ] [ WinS1 Win1 ] [ WinS2 Win2 ] [ RSVText | | NT ]\n[ Win1 | no Win1 ] -> [ Win1 | RSVWin1 ]\n[ Win2 | no Win2 ] -> [ Win2 | RSVWin2 ]\n[ RSVWin1 ] -> [ Win1 ]\n[ RSVWin2 ] -> [ Win2 ]\n\nright [ NT | | | | | | | | | ] -> [ NT | IT | CT | ET | ST | HT | OT | TT | TT2 | ExT ]\n\n==============\nWINCONDITIONS\n==============\n\nAll WinS1 on Win2\n\n=======\nLEVELS\n=======\n\nmessage Hole 1 of 15\nmessage X to hit.\n______________\n______________\n_1____________\n__s,,,,,,,,,__\n___,,,,,,,o,__\n3__,,,,,,,,,__\n___,,b,,,,,,__\n___,,,,,,,,,__\n____________2_\n______________\n______________\n\nmessage Hole 2 of 15\nmessage Everybody can use the club.\nmessage Press move key towards followers.\n\n______________\n______________\n__1___________\n______o_______\n____,,,,,_____\n3___,,,,,_____\n____,,t,,_____\n____,,b,,_____\n___s,,,,,_____\n_________2____\n______________\n\nmessage Hole 3 of 15\n\n______________\n__1___________\n____,o________\n____,,________\n____,,,,,_____\n3___,,,,,_____\n____,t,,,_____\n____,,,,,_____\n____,b,,,_____\n___s,,,,,_____\n_________2____\n\nmessage Hole 4 of 15\n\n______________\n__1___________\n____,,,,,,____\n___,,,b,,,____\n___,,ttt,,____\n3__,,,o,,,____\n___,,ttt,,____\n___,,,,,,,____\n_________s____\n__________2___\n_____________*\n\nmessage Hole 5 of 15\n\n______________\n__1___________\n____,,,,,,____\n____,,,,,,____\n____,,,ow,____\n3___,,,,w,____\n____,,,,,,____\n____,bt,______\n___s,,,,______\n__________2___\n______________\n\nmessage Hole 6 of 15\n\n______________\n______________\n1_____________\n__,,,,,,,,,___\n__,,,,,,,,,___\n3_t,w,o,w,,___\n__,,tt,tt,,___\n__,bwwwww,,___\n_s,,,,,,,,,___\n___________2__\n______________\n\nmessage Hole 7 of 15\n\n1_____________\n__,,,,,,,,,,,_\n__,,,,,,,,,,,_\n__,,ww,,,ww,,_\n__,,ww,w,ww,,_\n3_,,ww,o,ww,,_\n__t,ww,b,ww,t_\n__,,wwwwwww,,_\n_s,,,,,,,,,,,_\n__,,,,,,,,,,,_\n_____________2\n\nmessage Hole 8 of 15\n\n______________\n1_____________\n__,,,,,,,,,,__\n__,b,,t,,t,,__\n__,,t,,,,,,,__\n3_,,ww,twow,__\n__,,t,,,www,__\n__,,t,t,,,,,__\n_s,,,,,,,,,,__\n____________2_\n______________\n\nmessage Hole 9 of 15\n\n______________\n__1___________\n_______o______\n___,,,,,,_____\n___,b,,,,_____\n3__,,,,,,_____\n___,,,,,,_____\n___,,,,,,_____\n_______s______\n_________2____\n_____________*\n\nmessage Hole 10 of 15\nmessage The bunker could be useful.\n\n______________\n______________\n______________\n_1____________\n___,,,,,,,,,__\n3__,,,,,,,,o__\n__s,b,+,,,,,__\n___,,,,,,,,,__\n____________2_\n______________\n______________\n\nmessage Hole 11 of 15\n\n______________\n_1____________\n_____,,_______\n_____,owwww___\n_____,,,,,,___\n3____,,+,,,___\n___,,,,,w,,___\n___,,,,,,,,___\n___,,,w,,b,___\n__s,,,,,,,,___\n___________2__\n\n\nmessage Hole 12 of 15\n\n______________\n_1____________\n___,,,,www____\n___,o,,,,,____\n___,,,,+++____\n3_s,ttt,+,____\n___,t,,,+,,,__\n___,,,,,,,,,__\n___,b,,,t,,,__\n___,,,,,,,____\n____________2_\n\n(______________\n______________\n_________o____\n______,,,,w___\n____,,,,,,w___\n____,,,b+,w___\n____,,,,,,w___\n____,,,,,,w___\n____,,,,,,w___\n___s,,,,,,w___\n______________\n\n______________\n______________\n__________o___\n_______,,,,w__\n____,,,,,,,w__\n___,,b,,,,,w__\n___,,,,,,,,w__\n___,,,,t,+,w__\n___,,,,,,,,w__\n__s,,,,,,,,w__\n______________)\n\nmessage Hole 13 of 15\n\n_1____________\n______s_______\n__,,,,,,,,,___\n__,,,tbt,,,___\n__,+++,+++,___\n3_,+++,+++,___\n__,+++,+++,___\n__,,+++++,,___\n__,,,wow,,,___\n__,,,www,,,___\n___________2__\n\nmessage Hole 14 of 15\n\n_1____________\n______s_______\n__,,,,,,,,,___\n__,+++b+++,___\n__,+++,+++,___\n3_,w++,++w,___\n__,+++,+++,___\n__,,+++++,,___\n__,,,wow,,,___\n__,,,www,,,___\n___________2__\n\nmessage Hole 15 of 15\n\n______________\n_1____________\n_______,,,,ow_\n____,,,,t,,,w_\n___,,b,,,,,,w_\n3__,,,,,,,,,w_\n___,,,,,,,+,w_\n___,,,,w,,,,w_\n__s,,,,,,,,,w_\n_____________2\n______________\n\n(______________\n______________\n_______s______\n__,,,,,,,,,,,_\n__,,,,,,,,,,,_\n__,,,,,b,,,,,_\n__,,,,,dttttt_\n__ttttt,,,,,o_\n______________\n______________\n______________\n\n______________\n__s,,,,,,,,,__\n___,t,,b,tt,__\n___,,,,t,,,,,_\n___,,,,,,,,,,_\n___,tt,,,tt,,_\n___,o,,t,,,,,_\n___,,,ltd,,,,_\n___,tt,,,tt,,_\n___,,,,,,,,,__\n______________\n\n______________\n_____,,,,,____\n_____,,o,,____\n_____,www,____\n_____,,l,,____\n_____,,r,,____\n_____,,,,,____\n_____,,,,,____\n_____,tbt,____\n____s,,,,,____\n______________)\n\nmessage Thanks for playing!\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick",3,"tick","tick",2,"tick",2,"tick",2,"tick",2,"tick","tick",3,"tick",3,"tick",3,"tick",3,"tick",3,"tick","tick",0,"tick","tick",0,"tick",4,"tick","tick","tick","tick","tick",2,"tick","tick","tick",2,"tick",1,"tick",1,"tick",1,"tick",1,"tick","tick","tick",1,"tick",0,4,"tick","tick","tick","tick","tick","tick",2,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","restart","tick","tick","tick",3,"tick",2,"tick","tick","tick",3,2,"tick",2,"tick","tick",2,3,"tick",3,"tick",3,"tick",3,"tick","tick",3,"tick",0,"tick","tick","tick",4,"tick","tick","tick",2,"tick",1,"tick",1,"tick",1,"tick",1,"tick","tick",1,0,"tick",4,"tick","tick","tick","tick",2,"tick","tick",4,"tick","tick","tick","tick",3,"tick",3,"tick",3,"tick",3,"tick",3,"tick",0,"tick","tick",0,"tick",0,"tick",0,"tick",1,"tick","tick","tick","tick","tick","tick","tick",4,"tick","tick",3,"tick",2,"tick","tick",2,"tick",2,"tick",2,1,"tick",4,"tick","tick","tick","tick",3,"tick",3,"tick",0,"tick",0,"tick",0,"tick",4,"tick",4,"tick","tick","tick","tick","tick"],"background blank:0,0,0,0,0,background blank rsvtext:1,0,0,0,0,0,0,0,background blank wins1:2,\nbackground blank borderl removeborderld removeborderlu:3,0,0,0,0,0,0,0,0,0,background blank borderu removeborderrd:4,background green removegreenlud rsvr1 start tm1r:5,addgreenru background blank borderd borderl removeborderlu removeborderru:6,background blank borderl:7,\n7,background blank borderl removeborderld:8,0,0,0,0,0,background blank borderu:9,background green rsvr3 tm3r:10,background green rsvr2 tm2r:11,background green:12,12,background green removegreenld:13,background blank borderd removeborderru:14,\n0,0,0,0,9,12,background green rsvr1 tm1r:15,10,11,15,background blank borderd:16,0,0,0,\n0,9,12,background ball green:17,12,12,10,16,0,0,0,0,9,12,\n12,12,12,11,16,0,0,0,0,9,12,12,12,12,\n15,16,0,0,0,0,9,background green rsvl1 unmovablel:18,12,12,12,10,16,0,\n0,0,0,9,15,background clubr cursor green rsvr2 tm2r:19,10,15,11,16,0,0,0,0,\n9,background flag green:20,background green target:21,12,12,12,16,0,0,0,0,background blank borderu removeborderld:22,background green removegreenru:23,12,\n12,12,background green removegreenrd:24,background blank borderd removeborderlu:25,0,0,0,0,0,background blank borderr removeborderru:26,background blank borderr:27,27,27,background blank borderr removeborderrd:28,\nbackground blank wins2:29,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",2,"1627770891133.2458"] + ["title Shall We Golf?\nauthor nebu soku\nhomepage www.puzzlescript.net\n\nrealtime_interval 0.13\nrun_rules_on_level_Start\nbackground_color #3a6aa3\ntext_color lightblue\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nGreen\n#659b2d green\n11111\n10001\n10101\n10001\n11111\n\nWater\nlightblue \n\nAddWaterLUD\nlightblue \n0....\n.....\n.....\n.....\n0....\n\nAddWaterLU\nlightblue \n0....\n.....\n.....\n.....\n.....\n\nAddWaterLD\nlightblue \n.....\n.....\n.....\n.....\n0....\n\nAddWaterRUD\nlightblue \n....0\n.....\n.....\n.....\n....0\n\nAddWaterRU\nlightblue \n....0\n.....\n.....\n.....\n.....\n\nAddWaterRD\nlightblue \n.....\n.....\n.....\n.....\n....0\n\nRemoveWaterLUD\ngreen\n0....\n.....\n.....\n.....\n0....\n\nRemoveWaterLU\ngreen\n0....\n.....\n.....\n.....\n.....\n\nRemoveWaterLD\ngreen\n.....\n.....\n.....\n.....\n0....\n\nRemoveWaterRUD\ngreen\n....0\n.....\n.....\n.....\n....0\n\nRemoveWaterRU\ngreen\n....0\n.....\n.....\n.....\n.....\n\nRemoveWaterRD\ngreen\n.....\n.....\n.....\n.....\n....0\n\nBunker\nlightbrown orange #2a6b17\n00000\n00010\n00000\n01000\n00000\n\nAddBunkerLUD\nlightbrown\n0....\n.....\n.....\n.....\n0....\n\nAddBunkerLU\nlightbrown\n0....\n.....\n.....\n.....\n.....\n\nAddBunkerLD\nlightbrown\n.....\n.....\n.....\n.....\n0....\n\nAddBunkerRUD\nlightbrown\n....0\n.....\n.....\n.....\n....0\n\nAddBunkerRU\nlightbrown\n....0\n.....\n.....\n.....\n.....\n\nAddBunkerRD\nlightbrown\n.....\n.....\n.....\n.....\n....0\n\nRemoveBunkerLUD\ngreen\n0....\n.....\n.....\n.....\n0....\n\nRemoveBunkerLU\ngreen\n0....\n.....\n.....\n.....\n.....\n\nRemoveBunkerLD\ngreen\n.....\n.....\n.....\n.....\n0....\n\nRemoveBunkerRUD\ngreen\n....0\n.....\n.....\n.....\n....0\n\nRemoveBunkerRU\ngreen\n....0\n.....\n.....\n.....\n.....\n\nRemoveBunkerRD\ngreen\n.....\n.....\n.....\n.....\n....0\n\nOnBunker\nblack\n.....\n.....\n.....\n.....\n.....\n\nblank\n#3a6aa3\n\nWin1\n#3a6aa3\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\nWin2\n#3a6aa3\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nWinS1\nwhite\n\nWinS2\nblack\n\nRSVWin1\nblack\n.....\n.....\n.....\n.....\n.....\n\nRSVWin2\nblack\n.....\n.....\n.....\n.....\n.....\n\nTarget\nlightgray red darkblue\n..0..\n..0..\n..2..\n.....\n.....\n\nFlag\nred lightgray\n.....\n.....\n.....\n..00.\n..1..\n\nclubR\ngray darkgray white\n.....\n.....\n.0...\n.2...\n.11..\n\nclubL\ngray darkgray white\n.....\n.....\n...0.\n...2.\n..11.\n\nBall\nwhite\n.....\n.....\n..0..\n.....\n.....\n\nBallR\nwhite darkblue\n..0..\n.....\n..1..\n.....\n.....\n\nBallL\nwhite darkblue\n..0..\n.....\n..1..\n.....\n.....\n\nBallU\nwhite darkblue\n..0..\n.....\n..1..\n.....\n.....\n\nBallD\nwhite darkblue\n..0..\n.....\n..1..\n.....\n.....\n\nBallIn\ndarkblue\n.....\n.....\n..0..\n.....\n.....\n\nStart\nlightgreen green\n11111\n11111\n10111\n11111\n11101\n\nTree\ndarkgreen brown #134b3d\n.000.\n.000.\n..1..\n.....\n.....\n\nTreeU\ndarkgreen #134b3d\n.....\n.....\n.....\n.111.\n.111.\n\nLeftRSV\npurple\n\nUnmovableR\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n63636\n.3333\n.0330\n.3.6.\n\nUnmovableL\nwhite lightbrown lightgray darkblue brown blue black\n6666.\n63636\n3333.\n0330.\n.6.3.\n\nPlayerR\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n63636\n.2333\n.0330\n.776.\n\nWalkR1\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n63636\n.3233\n.3033\n3.776\n\nWalkR2\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n62636\n.2333\n.0332\n.773.\n\nWalkR3\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n63636\n23333\n03330\n77..3\n\nPlayerL\nwhite lightbrown lightgray darkblue brown blue black darkgray\n6666.\n63636\n3332.\n0330.\n.677.\n\nWalkL1\nwhite lightbrown lightgray darkblue brown blue black darkgray\n6666.\n63636\n3323.\n.303.\n677.3\n\nWalkL2\nwhite lightbrown lightgray darkblue brown blue black darkgray\n6666.\n63636\n3332.\n2330.\n.377.\n\nWalkL3\nwhite lightbrown lightgray darkblue brown blue black darkgray\n6666.\n63636\n33332\n03330\n3..77\n\nRSVR1\npink\n.....\n.....\n.....\n.....\n.....\n\nRSVL1\npink\n.....\n.....\n.....\n.....\n.....\n\nTM1R\nwhite lightbrown lightgray pink brown blue darkred\n.6666\n63636\n.3333\n.0330\n.3.6.\n\nTM1WalkR1\nwhite lightbrown lightgray pink brown blue darkred\n.6666\n63636\n.3333\n.3033\n3...6\n\nTM1WalkR2\nwhite lightbrown lightgray pink brown blue darkred\n.6666\n63636\n.3333\n.0332\n.6.3.\n\nTM1WalkR3\nwhite lightbrown lightgray pink brown blue darkred\n.6666\n63636\n.3333\n03330\n6...3\n\nTM1L\nwhite lightbrown lightgray pink brown blue darkred\n6666.\n63636\n3333.\n0330.\n.6.3.\n\nTM1WalkL1\nwhite lightbrown lightgray pink brown blue darkred\n6666.\n63636\n3333.\n3303.\n6...3\n\nTM1WalkL2\nwhite lightbrown lightgray pink brown blue darkred\n6666.\n63636\n3333.\n2330.\n.3.6.\n\nTM1WalkL3\nwhite lightbrown lightgray pink brown blue darkred\n6666.\n63636\n3333.\n03330\n3...6\n\nRSVR2\nyellow\n.....\n.....\n.....\n.....\n.....\n\nRSVL2\nyellow\n.....\n.....\n.....\n.....\n.....\n\nTM2R\nwhite lightbrown lightgray yellow brown blue orange\n.6666\n63636\n.3333\n.0330\n.3.6.\n\nTM2WalkR1\nwhite lightbrown lightgray yellow brown blue orange\n.6666\n63636\n.3333\n.3033\n3...6\n\nTM2WalkR2\nwhite lightbrown lightgray yellow brown blue orange\n.6666\n63636\n.3333\n.0332\n.6.3.\n\nTM2WalkR3\nwhite lightbrown lightgray yellow brown blue orange\n.6666\n63636\n.3333\n03330\n6...3\n\nTM2L\nwhite lightbrown lightgray yellow brown blue orange\n6666.\n63636\n3333.\n0330.\n.6.3.\n\nTM2WalkL1\nwhite lightbrown lightgray yellow brown blue orange\n6666.\n63636\n3333.\n3303.\n6...3\n\nTM2WalkL2\nwhite lightbrown lightgray yellow brown blue orange\n6666.\n63636\n3333.\n2330.\n.3.6.\n\nTM2WalkL3\nwhite lightbrown lightgray yellow brown blue orange\n6666.\n63636\n3333.\n03330\n3...6\n\nRSVR3\ngray\n.....\n.....\n.....\n.....\n.....\n\nRSVL3\ngray\n.....\n.....\n.....\n.....\n.....\n\nTM3R\nwhite lightbrown lightgray Blue brown blue #153759\n.6666\n63636\n.3333\n.0330\n.3.6.\n\nTM3WalkR1\nwhite lightbrown lightgray Blue brown blue #153759\n.6666\n63636\n.3333\n.3033\n3...6\n\nTM3WalkR2\nwhite lightbrown lightgray Blue brown blue #153759\n.6666\n63636\n.3333\n.0332\n.6.3.\n\nTM3WalkR3\nwhite lightbrown lightgray Blue brown blue #153759\n.6666\n63636\n.3333\n03330\n6...3\n\nTM3L\nwhite lightbrown lightgray Blue brown blue #153759\n6666.\n63636\n3333.\n0330.\n.6.3.\n\nTM3WalkL1\nwhite lightbrown lightgray Blue brown blue #153759\n6666.\n63636\n3333.\n3303.\n6...3\n\nTM3WalkL2\nwhite lightbrown lightgray Blue brown blue #153759\n6666.\n63636\n3333.\n2330.\n.3.6.\n\nTM3WalkL3\nwhite lightbrown lightgray Blue brown blue #153759\n6666.\n63636\n3333.\n03330\n3...6\n\nAddGreenLUD\ngreen\n0....\n.....\n.....\n.....\n0....\n\nAddGreenLU\ngreen\n0....\n.....\n.....\n.....\n.....\n\nAddGreenLD\ngreen\n.....\n.....\n.....\n.....\n0....\n\nAddGreenRUD\ngreen\n....0\n.....\n.....\n.....\n....0\n\nAddGreenRU\ngreen\n....0\n.....\n.....\n.....\n.....\n\nAddGreenRD\ngreen\n.....\n.....\n.....\n.....\n....0\n\nRemoveGreenLUD\n#1d4c2c\n0....\n.....\n.....\n.....\n0....\n\nRemoveGreenLU\n#1d4c2c\n0....\n.....\n.....\n.....\n.....\n\nRemoveGreenLD\n#1d4c2c\n.....\n.....\n.....\n.....\n0....\n\nRemoveGreenRUD\n#1d4c2c\n....0\n.....\n.....\n.....\n....0\n\nRemoveGreenRU\n#1d4c2c\n....0\n.....\n.....\n.....\n.....\n\nRemoveGreenRD\n#1d4c2c\n.....\n.....\n.....\n.....\n....0\n\nBorderR\n#1d4c2c\n0....\n0....\n0....\n0....\n0....\n\nBorderL\n#1d4c2c\n....0\n....0\n....0\n....0\n....0\n\nBorderU\n#1d4c2c\n.....\n.....\n.....\n.....\n00000\n\nBorderD\n#1d4c2c\n00000\n.....\n.....\n.....\n.....\n\nRemoveBorderRU\n#3a6aa3\n0....\n.....\n.....\n.....\n.....\n\nRemoveBorderLU\n#3a6aa3\n....0\n.....\n.....\n.....\n.....\n\nRemoveBorderRD\n#3a6aa3\n.....\n.....\n.....\n.....\n0....\n\nRemoveBorderLD\n#3a6aa3\n.....\n.....\n.....\n.....\n....0\n\nRipples1\nwhite\n.....\n.....\n..0..\n.....\n.....\n\nRipples2\nwhite #3a6aa3\n.....\n...0.\n.0...\n..1..\n.....\n\nRipples3\nwhite #3a6aa3\n.....\n.....\n.....\n.....\n..1..\n\nArrowR\ngray lightgray red\n.111.\n11211\n11121\n11211\n.111.\n\nArrowL\ngray lightgray red\n.111.\n11211\n12111\n11211\n.111.\n\nArrowU\ngray lightgray red\n.111.\n11211\n12121\n11111\n.111.\n\nArrowD\ngray lightgray red\n.111.\n11111\n12121\n11211\n.111.\n\nRSVText\npurple\n\nNT\n#fa5c5c\n0...0\n00..0\n0.0.0\n0..00\n0...0\n\nIT\norange yellow\n.0.11\n.0.1.\n.0.1.\n.0.1.\n.0.11\n\nCT\nyellow #27cc20\n000.1\n....1\n....1\n....1\n000.1\n\nET\n#27cc20\n0000.\n.....\n0000.\n.....\n0000.\n\nST\n#4bb6e3\n.0000\n.0...\n.0000\n.....\n.0000\n\nHT\n#4bb6e3 blue\n0.1..\n..1..\n0.111\n0.1..\n0.1..\n\nOT\nblue #bb4be2\n.0.11\n.0.1.\n00.1.\n.0.1.\n.0.11\n\nTT\n#bb4be2 pink\n000.1\n..0..\n..0..\n..0..\n000..\n\nTT2\npink\n0000.\n.0...\n.0...\n.0...\n.0...\n\nExT\n#fa5c5c\n.0...\n.0...\n.0...\n.....\n.0...\n\nCursor\nred\n0...0\n.....\n.....\n.....\n0...0\n\n=======\nLEGEND\n=======\n\nPlayer = PlayerR or PlayerL or WalkR1 or WalkR2 or WalkR3 or WalkL1 or WalkL2 or WalkL3 or clubR or clubL\nLeader = PlayerR or PlayerL or WalkR1 or WalkR2 or WalkR3 or WalkL1 or WalkL2 or WalkL3\nWalkR = WalkR1 or WalkR2 or WalkR3\nWalkL = WalkL1 or WalkL2 or WalkL3\n\nTM1 = TM1R or TM1L\nTM1WalkR = TM1R or TM1WalkR1 or TM1WalkR2 or TM1WalkR3\nTM1WalkL = TM1L or TM1WalkL1 or TM1WalkL2 or TM1WalkL3\nRSV1 = RSVR1 or RSVL1\n\nTM2 = TM2R or TM2L\nTM2WalkR = TM2R or TM2WalkR1 or TM2WalkR2 or TM2WalkR3\nTM2WalkL = TM2L or TM2WalkL1 or TM2WalkL2 or TM2WalkL3\nRSV2 = RSVR2 or RSVL2\n\nTM3 = TM3R or TM3L\nTM3WalkR = TM3R or TM3WalkR1 or TM3WalkR2 or TM3WalkR3\nTM3WalkL = TM3L or TM3WalkL1 or TM3WalkL2 or TM3WalkL3\nRSV3 = RSVR3 or RSVL3\n\nTMs = TM1WalkR or TM1WalkL or TM2WalkR or TM2WalkL or TM3WalkR or TM3WalkL or UnmovableR or UnmovableL\n\nclub = clubR or clubL\n\nArrows = ArrowR or ArrowL or ArrowU or ArrowD\n\nObstacles = Player or TMs or blank or Tree\nOBforP = Ball or blank or Target or Tree or Water\n\n. = Background\n, = Green\nP = PlayerR\nO = Target and Green\n_ = blank\nT = Tree and Green\nS = Start and PlayerR and Green\nB = Ball and Green\nW = Water and Green\n+ = Bunker and Green\nR = ArrowR and Green\nL = ArrowL and Green\nU = ArrowU and Green\nD = ArrowD and Green\n1 = WinS1 and blank\n2 = WinS2 and blank\n3 = RSVText and blank\n* = LeftRSV and blank\n\nAddGreenL = AddGreenLUD or AddGreenLU or AddGreenLD\nAddGreenR = AddGreenRUD or AddGreenRU or AddGreenRD\n\nRemoveGreenL = RemoveGreenLUD or RemoveGreenLU or RemoveGreenLD\nRemoveGreenR = RemoveGreenRUD or RemoveGreenRU or RemoveGreenRD\n\nAddWaterL = AddWaterLUD or AddWaterLU or AddWaterLD\nAddwaterR = AddWaterRUD or AddWaterRU or AddWaterRD\n\nRemoveWaterL = RemoveWaterLUD or RemoveWaterLU or RemoveWaterLD\nRemoveWaterR = RemoveWaterRUD or RemoveWaterRU or RemoveWaterRD\n\nAddBunkerL = AddBunkerLUD or AddBunkerLU or AddBunkerLD\nAddBunkerR = AddBunkerRUD or AddBunkerRU or AddBunkerRD\n\nRemoveBunkerL = RemoveBunkerLD or RemoveBunkerLU or RemoveBunkerLUD\nRemoveBunkerR = RemoveBunkerRUD or RemoveBunkerRU or RemoveBunkerRD\n\n=======\nSOUNDS\n=======\n\nLeader MOVE 62144707\nblank MOVE 16278507\nblank move 95612108\nTarget action 6210100\nclub move 44711106\nBall action 45846907\nRipples2 action 22937701\nRipples1 action 73444303\n\nsfx0 47327503\nsfx1 44711106\nsfx2 48837904\n\nrestart 58221102\nundo 12286707\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nStart, WinS1, WinS2, RSVText, LeftRSV\nGreen\nTarget, Bunker, Water\nAddWaterL\nAddwaterR\nAddBunkerL\nAddBunkerR\nRemoveWaterL\nRemoveWaterR\nRemoveBunkerL\nRemoveBunkerR\nRipples1, Ripples2, Ripples3\nRemoveGreenL\nRemoveGreenR\nArrows\nLeader, TM1WalkR, TM1WalkL, TM2WalkR, TM2WalkL, TM3WalkR, TM3WalkL, UnmovableR, UnmovableL, Ball, blank, Tree, BallIn\nclubR, clubL\nBallR, BallL, BallU, BallD\nRSV1, RSV2, RSV3\nOnBunker\nBorderR\nBorderL\nBorderU\nBorderD\nRemoveBorderRU\nRemoveBorderLU\nRemoveBorderRD\nRemoveBorderLD\nAddGreenL\nAddGreenR\nFlag, TreeU\nCursor\nWin1, RSVWin1\nWin2, RSVWin2\nNT, IT, CT, ET, ST, HT, OT, TT, TT2, ExT\n\n======\nRULES\n======\n\nup [ Target | no Flag ] -> [ Target | Flag ]\nup [ Tree | no TreeU ] -> [ Tree | TreeU ]\n\n[ > Player | OBforP ] -> [ Player | OBforP ]\n\n[ LeftRSV ] [ PlayerR ] -> [ ] [ PlayerL ]\n\n([ > Player | Arrows | no OBforP ] -> [ > Player | > Arrows | ]\n[ > Player | Arrows | OBforP ] -> [ Player | Arrows | OBforP ])\n\n(Arrows)\n\nright [ BallU ArrowR | no Obstacles ] -> [ ArrowR | BallU ]\nright [ BallD ArrowR | no Obstacles ] -> [ ArrowR | BallD ]\nright [ BallL ArrowR | no Obstacles ] -> [ ArrowR | Ball ]\nleft [ BallU ArrowL | no Obstacles ] -> [ ArrowL | BallU ]\nleft [ BallD ArrowL | no Obstacles ] -> [ ArrowL | BallD ]\nleft [ BallR ArrowL | no Obstacles ] -> [ ArrowL | Ball ]\nup [ BallR ArrowU | no Obstacles ] -> [ ArrowU | BallR ]\nup [ BallL ArrowU | no Obstacles ] -> [ ArrowU | BallL ]\nup [ BallD ArrowU | no Obstacles ] -> [ ArrowU | Ball ]\ndown [ BallR ArrowD | no Obstacles ] -> [ ArrowD | BallR ]\ndown [ BallL ArrowD | no Obstacles ] -> [ ArrowD | BallL ]\ndown [ BallU ArrowD | no Obstacles ] -> [ ArrowD | Ball ]\n\n(Water)\n\nleft [ no Water no AddWaterL | Water ] -> [ AddWaterLUD | Water ]\nright [ no Water no AddWaterR | Water ] -> [ AddWaterRUD | Water ]\n\nup [ AddWaterLUD | no Water ] -> [ AddWaterLD | ]\nup [ AddWaterRUD | no Water ] -> [ AddWaterRD | ]\n\ndown [ AddWaterLUD | no Water ] -> [ AddWaterLU | ]\ndown [ AddWaterRUD | no Water ] -> [ AddWaterRU | ]\n\ndown [ AddWaterLD | no Water ] -> [ | ]\ndown [ AddWaterRD | no Water ] -> [ | ]\n\nleft [ Water no RemoveWaterL | no Water ] -> [ Water RemoveWaterLUD | ]\nright [ Water no RemoveWaterR | no Water ] -> [ Water RemoveWaterRUD | ]\n\nup [ RemoveWaterLUD | Water ] -> [ RemoveWaterLD | Water ]\nup [ RemoveWaterRUD | Water ] -> [ RemoveWaterRD | Water ]\n\ndown [ RemoveWaterLUD | Water ] -> [ RemoveWaterLU | Water ]\ndown [ RemoveWaterRUD | Water ] -> [ RemoveWaterRU | Water ]\n\ndown [ RemoveWaterLD | Water ] -> [ | Water ]\ndown [ RemoveWaterRD | Water ] -> [ | Water ]\n\nright [ RemoveWaterRU | AddWaterLU ] -> [ RemoveWaterRU | ]\nright [ RemoveWaterRD | AddWaterLD ] -> [ RemoveWaterRD | ]\n\nright [ RemoveWaterRUD | AddWaterLU ] -> [ RemoveWaterRUD | ]\nright [ RemoveWaterRUD | AddWaterLD ] -> [ RemoveWaterRUD | ]\n\nleft [ RemoveWaterLU | AddWaterRU ] -> [ RemoveWaterLU | ]\nleft [ RemoveWaterLD | AddWaterRD ] -> [ RemoveWaterLD | ]\n\nleft [ RemoveWaterLUD | AddWaterRU ] -> [ RemoveWaterLUD | ]\nleft [ RemoveWaterLUD | AddWaterRD ] -> [ RemoveWaterLUD | ]\n\n[ Ball Water ] -> [ Ripples1 Water ]\n[ stationary Ripples3 ] -> [ ]\n[ stationary Ripples2 ] -> [ Ripples3 ]\n[ stationary Ripples1 ] -> [ action Ripples2 ]\n\n(Bunker)\n\nleft [ no Bunker no AddBunkerL | Bunker ] -> [ AddBunkerLUD | Bunker ]\nright [ no Bunker no AddBunkerR | Bunker ] -> [ AddBunkerRUD | Bunker ]\n\nup [ AddBunkerLUD | no Bunker ] -> [ AddBunkerLD | ]\nup [ AddBunkerRUD | no Bunker ] -> [ AddBunkerRD | ]\n\ndown [ AddBunkerLUD | no Bunker ] -> [ AddBunkerLU | ]\ndown [ AddBunkerRUD | no Bunker ] -> [ AddBunkerRU | ]\n\ndown [ AddBunkerLD | no Bunker ] -> [ | ]\ndown [ AddBunkerRD | no Bunker ] -> [ | ]\n\nleft [ Bunker no RemoveBunkerL | no Bunker ] -> [ Bunker RemoveBunkerLUD | ]\nright [ Bunker no RemoveBunkerR | no Bunker ] -> [ Bunker RemoveBunkerRUD | ]\n\nup [ RemoveBunkerLUD | Bunker ] -> [ RemoveBunkerLD | Bunker ]\nup [ RemoveBunkerRUD | Bunker ] -> [ RemoveBunkerRD | Bunker ]\n\ndown [ RemoveBunkerLUD | Bunker ] -> [ RemoveBunkerLU | Bunker ]\ndown [ RemoveBunkerRUD | Bunker ] -> [ RemoveBunkerRU | Bunker ]\n\ndown [ RemoveBunkerLD | Bunker ] -> [ | Bunker ]\ndown [ RemoveBunkerRD | Bunker ] -> [ | Bunker ]\n\nright [ RemoveBunkerRU | AddBunkerLU ] -> [ RemoveBunkerRU | ]\nright [ RemoveBunkerRD | AddBunkerLD ] -> [ RemoveBunkerRD | ]\n\nright [ RemoveBunkerRUD | AddBunkerLU ] -> [ RemoveBunkerRUD | ]\nright [ RemoveBunkerRUD | AddBunkerLD ] -> [ RemoveBunkerRUD | ]\n\nleft [ RemoveBunkerLU | AddBunkerRU ] -> [ RemoveBunkerLU | ]\nleft [ RemoveBunkerLD | AddBunkerRD ] -> [ RemoveBunkerLD | ]\n\nleft [ RemoveBunkerLUD | AddBunkerRU ] -> [ RemoveBunkerLUD | ]\nleft [ RemoveBunkerLUD | AddBunkerRD ] -> [ RemoveBunkerLUD | ]\n\n(Green)\n\nleft [ no Green no AddGreenL | Green ] -> [ AddGreenLUD | Green ]\nright [ no Green no AddGreenR | Green ] -> [ AddGreenRUD | Green ]\n\nup [ AddGreenLUD | no Green ] -> [ AddGreenLD | ]\nup [ AddGreenRUD | no Green ] -> [ AddGreenRD | ]\n\ndown [ AddGreenLUD | no Green ] -> [ AddGreenLU | ]\ndown [ AddGreenRUD | no Green ] -> [ AddGreenRU | ]\n\ndown [ AddGreenLD | no Green ] -> [ | ]\ndown [ AddGreenRD | no Green ] -> [ | ]\n\nleft [ Green no RemoveGreenL | no Green ] -> [ Green RemoveGreenLUD | ]\nright [ Green no RemoveGreenR | no Green ] -> [ Green RemoveGreenRUD | ]\n\nup [ RemoveGreenLUD | Green ] -> [ RemoveGreenLD | Green ]\nup [ RemoveGreenRUD | Green ] -> [ RemoveGreenRD | Green ]\n\ndown [ RemoveGreenLUD | Green ] -> [ RemoveGreenLU | Green ]\ndown [ RemoveGreenRUD | Green ] -> [ RemoveGreenRU | Green ]\n\ndown [ RemoveGreenLD | Green ] -> [ | Green ]\ndown [ RemoveGreenRD | Green ] -> [ | Green ]\n\nright [ RemoveGreenRU | AddGreenLU ] -> [ RemoveGreenRU | ]\nright [ RemoveGreenRD | AddGreenLD ] -> [ RemoveGreenRD | ]\n\nright [ RemoveGreenRUD | AddGreenLU ] -> [ RemoveGreenRUD | ]\nright [ RemoveGreenRUD | AddGreenLD ] -> [ RemoveGreenRUD | ]\n\nleft [ RemoveGreenLU | AddGreenRU ] -> [ RemoveGreenLU | ]\nleft [ RemoveGreenLD | AddGreenRD ] -> [ RemoveGreenLD | ]\n\nleft [ RemoveGreenLUD | AddGreenRU ] -> [ RemoveGreenLUD | ]\nleft [ RemoveGreenLUD | AddGreenRD ] -> [ RemoveGreenLUD | ]\n\n(Border)\n\nright [ Green | blank ] -> [ Green | BorderR blank ]\nleft [ Green | blank ] -> [ Green | BorderL blank ]\nup [ Green | blank ] -> [ Green | BorderU blank ]\ndown [ Green | blank ] -> [ Green | BorderD blank ]\n\nup [ BorderR | no BorderR ] -> [ BorderR RemoveBorderRU | ]\ndown [ BorderR | no BorderR ] -> [ BorderR RemoveBorderRD | ]\nup [ BorderL | no BorderL ] -> [ BorderL RemoveBorderLU | ]\ndown [ BorderL | no BorderL ] -> [ BorderL RemoveBorderLD | ]\nright [ BorderU | no BorderU ] -> [ BorderU RemoveBorderLD | ]\nleft [ BorderU | no BorderU ] -> [ BorderU RemoveBorderRD | ]\nright [ BorderD | no BorderD ] -> [ BorderD RemoveBorderLU | ]\nleft [ BorderD | no BorderD ] -> [ BorderD RemoveBorderRU | ]\n\n(club)\n\n[ > PlayerR | TMs ] -> [ UnmovableR | TMs clubR ] sfx1\n[ > WalkR | TMs ] -> [ UnmovableR | TMs clubR ] sfx1\n[ > PlayerL | TMs ] -> [ UnmovableL | TMs clubL ] sfx1\n[ > WalkL | TMs ] -> [ UnmovableL | TMs clubL ] sfx1\n\n[ > club | no TMs ] -> [ club | ]\nlate [ club UnmovableR ] -> [ clubR UnmovableR ]\nlate [ club UnmovableL ] -> [ clubL UnmovableL ]\nlate [ club TM1WalkR ] -> [ clubR TM1WalkR ]\nlate [ club TM1WalkL ] -> [ clubL TM1WalkL ]\nlate [ club TM2WalkR ] -> [ clubR TM2WalkR ]\nlate [ club TM2WalkL ] -> [ clubL TM2WalkL ]\nlate [ club TM3WalkR ] -> [ clubR TM3WalkR ]\nlate [ club TM3WalkL ] -> [ clubL TM3WalkL ]\n\nlate [ club UnmovableR ] -> [ PlayerR ]\nlate [ club UnmovableL ] -> [ PlayerL ]\n\nlate up [ club TMs no Cursor ] -> [ club TMs Cursor ]\nlate up [ no club TMs Cursor ] -> [ TMs ]\n\n(Hit)\n\n[ Ball Target ] -> [ BallIn Target ]\n\nright [ Bunker OnBunker | BallR ] -> [ Bunker | action Ball ]\nleft [ Bunker OnBunker | BallL ] -> [ Bunker | action Ball ]\nup [ Bunker OnBunker | BallU ] -> [ Bunker | action Ball ]\ndown [ Bunker OnBunker | BallD ] -> [ Bunker | action Ball ]\n\nright [ action Player | Ball no Bunker | no Obstacles ] -> [ Player | BallR | ] sfx0\nleft [ action Player | Ball no Bunker | no Obstacles ] -> [ Player | BallL | ] sfx0\nup [ action Player | Ball no Bunker | no Obstacles ] -> [ Player | BallU | ] sfx0\ndown [ action Player | Ball no Bunker | no Obstacles ] -> [ Player | BallD | ] sfx0\n\nright [ action Player | Ball Bunker | no Obstacles ] -> [ Player | BallR Bunker OnBunker | ] sfx2\nleft [ action Player | Ball Bunker | no Obstacles ] -> [ Player | BallL Bunker OnBunker | ] sfx2\nup [ action Player | Ball Bunker | no Obstacles ] -> [ Player | BallU Bunker OnBunker | ] sfx2\ndown [ action Player | Ball Bunker | no Obstacles ] -> [ Player | BallD Bunker OnBunker | ] sfx2\n\nright [ BallR | no Obstacles ] -> [ > BallR | ]\nright [ BallR | Obstacles ] -> [ action Ball | Obstacles ]\nleft [ BallL | no Obstacles ] -> [ > BallL | ]\nleft [ BallL | Obstacles ] -> [ action Ball | Obstacles ]\nup [ BallU | no Obstacles ] -> [ > BallU | ]\nup [ BallU | Obstacles ] -> [ action Ball | Obstacles ]\ndown [ BallD | no Obstacles ] -> [ > BallD | ]\ndown [ BallD | Obstacles ] -> [ action Ball | Obstacles ]\n\n(Follower)\n\n[ Start RSVR1 no Player ] -> [ Start TM1R RSVR1 ]\n\n[ PlayerR ] -> [ PlayerR RSVR1 ]\n[ WalkR ] -> [ WalkR RSVR1 ]\n[ PlayerL ] -> [ PlayerL RSVL1 ]\n[ WalkL ] -> [ WalkL RSVL1 ]\n\n[ > Leader ] [ RSVR3 ] -> [ > Leader ] [ RSVR1 ]\n[ > Leader ] [ RSVL3 ] -> [ > Leader ] [ RSVL1 ]\n[ > Leader ] [ RSVR2 ] -> [ > Leader ] [ RSVR3 ]\n[ > Leader ] [ RSVL2 ] -> [ > Leader ] [ RSVL3 ]\n[ > Leader ] [ RSVR1 no Player no TM3WalkR ] -> [ > Leader ] [ RSVR2 ]\n[ > Leader ] [ RSVL1 no Player no TM3WalkL no UnmovableR no UnmovableL ] -> [ > Leader ] [ RSVL2 ]\n\nlate [ TM2WalkR RSVR3 ] -> [ TM3WalkR1 RSVR3 ]\nlate [ TM2WalkL RSVL3 ] -> [ TM3WalkL1 RSVL3 ]\nlate [ TM1WalkR RSVR2 ] -> [ TM2WalkR1 RSVR2 ]\nlate [ TM1WalkL RSVL2 ] -> [ TM2WalkL1 RSVL2 ]\nlate [ RSVR1 no Player no TM1WalkR no UnmovableR no UnmovableL ] -> [ TM1WalkR1 RSVR1 ]\nlate [ RSVL1 no Player no TM1WalkL no UnmovableR no UnmovableL ] -> [ TM1WalkL1 RSVL1 ]\n\n(Walking anim)\n\nleft [ > PlayerR ] -> [ > PlayerL ]\nleft [ > WalkR1 ] -> [ > WalkL1 ]\nleft [ > WalkR2 ] -> [ > WalkL2 ]\nleft [ > WalkR3 ] -> [ > WalkL3 ]\nright [ > PlayerL ] -> [ > PlayerR ]\nright [ > WalkL1 ] -> [ > WalkR1 ]\nright [ > WalkL2 ] -> [ > WalkR2 ]\nright [ > WalkL3 ] -> [ > WalkR3 ]\n\n[ stationary TM3walkR3 ] -> [ TM3R ]\n[ stationary TM3WalkR2 ] -> [ TM3walkR3 ]\n[ stationary TM3WalkR1 ] -> [ TM3walkR2 ]\n[ stationary TM3walkL3 ] -> [ TM3L ]\n[ stationary TM3WalkL2 ] -> [ TM3walkL3 ]\n[ stationary TM3WalkL1 ] -> [ TM3walkL2 ]\n\n[ stationary TM2walkR3 ] -> [ TM2R ]\n[ stationary TM2WalkR2 ] -> [ TM2walkR3 ]\n[ stationary TM2WalkR1 ] -> [ TM2walkR2 ]\n[ stationary TM2walkL3 ] -> [ TM2L ]\n[ stationary TM2WalkL2 ] -> [ TM2walkL3 ]\n[ stationary TM2WalkL1 ] -> [ TM2walkL2 ]\n\n[ stationary TM1walkR3 ] -> [ TM1R ]\n[ stationary TM1WalkR2 ] -> [ TM1walkR3 ]\n[ stationary TM1WalkR1 ] -> [ TM1walkR2 ]\n[ stationary TM1walkL3 ] -> [ TM1L ]\n[ stationary TM1WalkL2 ] -> [ TM1walkL3 ]\n[ stationary TM1WalkL1 ] -> [ TM1walkL2 ]\n\n[ > PlayerR ] -> [ > WalkR1 ]\n[ stationary walkR3 ] -> [ PlayerR ]\n[ stationary WalkR2 ] -> [ walkR3 ]\n[ stationary WalkR1 ] -> [ walkR2 ]\n\n[ > PlayerL ] -> [ > WalkL1 ]\n[ stationary walkL3 ] -> [ PlayerL ]\n[ stationary WalkL2 ] -> [ walkL3 ]\n[ stationary WalkL1 ] -> [ walkL2 ]\n\n(Win)\n\nright [ BallIn Target ] [ WinS1 no Win1 ] [ WinS2 no Win2 ] [ RSVText | | ] -> [ BallIn action Target ] [ WinS1 Win1 ] [ WinS2 Win2 ] [ RSVText | | NT ]\n[ Win1 | no Win1 ] -> [ Win1 | RSVWin1 ]\n[ Win2 | no Win2 ] -> [ Win2 | RSVWin2 ]\n[ RSVWin1 ] -> [ Win1 ]\n[ RSVWin2 ] -> [ Win2 ]\n\nright [ NT | | | | | | | | | ] -> [ NT | IT | CT | ET | ST | HT | OT | TT | TT2 | ExT ]\n\n==============\nWINCONDITIONS\n==============\n\nAll WinS1 on Win2\n\n=======\nLEVELS\n=======\n\nmessage Hole 1 of 15\nmessage X to hit.\n______________\n______________\n_1____________\n__s,,,,,,,,,__\n___,,,,,,,o,__\n3__,,,,,,,,,__\n___,,b,,,,,,__\n___,,,,,,,,,__\n____________2_\n______________\n______________\n\nmessage Hole 2 of 15\nmessage Everybody can use the club.\nmessage Press move key towards followers.\n\n______________\n______________\n__1___________\n______o_______\n____,,,,,_____\n3___,,,,,_____\n____,,t,,_____\n____,,b,,_____\n___s,,,,,_____\n_________2____\n______________\n\nmessage Hole 3 of 15\n\n______________\n__1___________\n____,o________\n____,,________\n____,,,,,_____\n3___,,,,,_____\n____,t,,,_____\n____,,,,,_____\n____,b,,,_____\n___s,,,,,_____\n_________2____\n\nmessage Hole 4 of 15\n\n______________\n__1___________\n____,,,,,,____\n___,,,b,,,____\n___,,ttt,,____\n3__,,,o,,,____\n___,,ttt,,____\n___,,,,,,,____\n_________s____\n__________2___\n_____________*\n\nmessage Hole 5 of 15\n\n______________\n__1___________\n____,,,,,,____\n____,,,,,,____\n____,,,ow,____\n3___,,,,w,____\n____,,,,,,____\n____,bt,______\n___s,,,,______\n__________2___\n______________\n\nmessage Hole 6 of 15\n\n______________\n______________\n1_____________\n__,,,,,,,,,___\n__,,,,,,,,,___\n3_t,w,o,w,,___\n__,,tt,tt,,___\n__,bwwwww,,___\n_s,,,,,,,,,___\n___________2__\n______________\n\nmessage Hole 7 of 15\n\n1_____________\n__,,,,,,,,,,,_\n__,,,,,,,,,,,_\n__,,ww,,,ww,,_\n__,,ww,w,ww,,_\n3_,,ww,o,ww,,_\n__t,ww,b,ww,t_\n__,,wwwwwww,,_\n_s,,,,,,,,,,,_\n__,,,,,,,,,,,_\n_____________2\n\nmessage Hole 8 of 15\n\n______________\n1_____________\n__,,,,,,,,,,__\n__,b,,t,,t,,__\n__,,t,,,,,,,__\n3_,,ww,twow,__\n__,,t,,,www,__\n__,,t,t,,,,,__\n_s,,,,,,,,,,__\n____________2_\n______________\n\nmessage Hole 9 of 15\n\n______________\n__1___________\n_______o______\n___,,,,,,_____\n___,b,,,,_____\n3__,,,,,,_____\n___,,,,,,_____\n___,,,,,,_____\n_______s______\n_________2____\n_____________*\n\nmessage Hole 10 of 15\nmessage The bunker could be useful.\n\n______________\n______________\n______________\n_1____________\n___,,,,,,,,,__\n3__,,,,,,,,o__\n__s,b,+,,,,,__\n___,,,,,,,,,__\n____________2_\n______________\n______________\n\nmessage Hole 11 of 15\n\n______________\n_1____________\n_____,,_______\n_____,owwww___\n_____,,,,,,___\n3____,,+,,,___\n___,,,,,w,,___\n___,,,,,,,,___\n___,,,w,,b,___\n__s,,,,,,,,___\n___________2__\n\n\nmessage Hole 12 of 15\n\n______________\n_1____________\n___,,,,www____\n___,o,,,,,____\n___,,,,+++____\n3_s,ttt,+,____\n___,t,,,+,,,__\n___,,,,,,,,,__\n___,b,,,t,,,__\n___,,,,,,,____\n____________2_\n\n(______________\n______________\n_________o____\n______,,,,w___\n____,,,,,,w___\n____,,,b+,w___\n____,,,,,,w___\n____,,,,,,w___\n____,,,,,,w___\n___s,,,,,,w___\n______________\n\n______________\n______________\n__________o___\n_______,,,,w__\n____,,,,,,,w__\n___,,b,,,,,w__\n___,,,,,,,,w__\n___,,,,t,+,w__\n___,,,,,,,,w__\n__s,,,,,,,,w__\n______________)\n\nmessage Hole 13 of 15\n\n_1____________\n______s_______\n__,,,,,,,,,___\n__,,,tbt,,,___\n__,+++,+++,___\n3_,+++,+++,___\n__,+++,+++,___\n__,,+++++,,___\n__,,,wow,,,___\n__,,,www,,,___\n___________2__\n\nmessage Hole 14 of 15\n\n_1____________\n______s_______\n__,,,,,,,,,___\n__,+++b+++,___\n__,+++,+++,___\n3_,w++,++w,___\n__,+++,+++,___\n__,,+++++,,___\n__,,,wow,,,___\n__,,,www,,,___\n___________2__\n\nmessage Hole 15 of 15\n\n______________\n_1____________\n_______,,,,ow_\n____,,,,t,,,w_\n___,,b,,,,,,w_\n3__,,,,,,,,,w_\n___,,,,,,,+,w_\n___,,,,w,,,,w_\n__s,,,,,,,,,w_\n_____________2\n______________\n\n(______________\n______________\n_______s______\n__,,,,,,,,,,,_\n__,,,,,,,,,,,_\n__,,,,,b,,,,,_\n__,,,,,dttttt_\n__ttttt,,,,,o_\n______________\n______________\n______________\n\n______________\n__s,,,,,,,,,__\n___,t,,b,tt,__\n___,,,,t,,,,,_\n___,,,,,,,,,,_\n___,tt,,,tt,,_\n___,o,,t,,,,,_\n___,,,ltd,,,,_\n___,tt,,,tt,,_\n___,,,,,,,,,__\n______________\n\n______________\n_____,,,,,____\n_____,,o,,____\n_____,www,____\n_____,,l,,____\n_____,,r,,____\n_____,,,,,____\n_____,,,,,____\n_____,tbt,____\n____s,,,,,____\n______________)\n\nmessage Thanks for playing!\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", 2, "tick", 2, "tick", 2, "tick", 2, "tick", "tick", 3, "tick", 3, "tick", 3, "tick", 3, "tick", 3, "tick", "tick", 0, "tick", "tick", 0, "tick", 4, "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", 1, "tick", 1, "tick", 1, "tick", 1, "tick", "tick", "tick", 1, "tick", 0, 4, "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "restart", "tick", "tick", "tick", 3, "tick", 2, "tick", "tick", "tick", 3, 2, "tick", 2, "tick", "tick", 2, 3, "tick", 3, "tick", 3, "tick", 3, "tick", "tick", 3, "tick", 0, "tick", "tick", "tick", 4, "tick", "tick", "tick", 2, "tick", 1, "tick", 1, "tick", 1, "tick", 1, "tick", "tick", 1, 0, "tick", 4, "tick", "tick", "tick", "tick", 2, "tick", "tick", 4, "tick", "tick", "tick", "tick", 3, "tick", 3, "tick", 3, "tick", 3, "tick", 3, "tick", 0, "tick", "tick", 0, "tick", 0, "tick", 0, "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", 4, "tick", "tick", 3, "tick", 2, "tick", "tick", 2, "tick", 2, "tick", 2, 1, "tick", 4, "tick", "tick", "tick", "tick", 3, "tick", 3, "tick", 0, "tick", 0, "tick", 0, "tick", 4, "tick", 4, "tick", "tick", "tick", "tick", "tick"], "background blank:0,0,0,0,0,background blank rsvtext:1,0,0,0,0,0,0,0,background blank wins1:2,\nbackground blank borderl removeborderld removeborderlu:3,0,0,0,0,0,0,0,0,0,background blank borderu removeborderrd:4,background green removegreenlud rsvr1 start tm1r:5,addgreenru background blank borderd borderl removeborderlu removeborderru:6,background blank borderl:7,\n7,background blank borderl removeborderld:8,0,0,0,0,0,background blank borderu:9,background green rsvr3 tm3r:10,background green rsvr2 tm2r:11,background green:12,12,background green removegreenld:13,background blank borderd removeborderru:14,\n0,0,0,0,9,12,background green rsvr1 tm1r:15,10,11,15,background blank borderd:16,0,0,0,\n0,9,12,background ball green:17,12,12,10,16,0,0,0,0,9,12,\n12,12,12,11,16,0,0,0,0,9,12,12,12,12,\n15,16,0,0,0,0,9,background green rsvl1 unmovablel:18,12,12,12,10,16,0,\n0,0,0,9,15,background clubr cursor green rsvr2 tm2r:19,10,15,11,16,0,0,0,0,\n9,background flag green:20,background green target:21,12,12,12,16,0,0,0,0,background blank borderu removeborderld:22,background green removegreenru:23,12,\n12,12,background green removegreenrd:24,background blank borderd removeborderlu:25,0,0,0,0,0,background blank borderr removeborderru:26,background blank borderr:27,27,27,background blank borderr removeborderrd:28,\nbackground blank wins2:29,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 2, "1627770891133.2458"] ], [ `gallery game: Indigestion`, - ["title Indigestion\nauthor Le Slo\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\n\nagain_interval 0.05\n\nnoaction\n\nbackground_color #5974eF\n\n========\nOBJECTS\n========\n\nBackground\n#A9E4EF\n\nBorderB\n#4026bf #5046ef #5565ef\n.....\n.....\n.1111\n.....\n00000\n\nBorderBL\n#4026bf #5046ef #5565ef\n.....\n.....\n.11..\n..1..\n0.1..\n\nBorderBR\n#4026bf #5046ef #5565ef\n.....\n.....\n..111\n..1..\n....0\n\n\nBorderL\n#4026bf #5046ef #5565ef\n0....\n0.1..\n0.1..\n0.1..\n0.1..\n\nBorderR\n#4026bf #5046ef #5565ef\n..1.0\n..1.0\n..1.0\n..1.0\n....0\n\n\nBorderT\n#4026bf #5046ef #5565ef\n00000\n.....\n1111.\n.....\n.....\n\nBorderTL\n#4026bf #5046ef #5565ef\n0....\n..1..\n111..\n.....\n.....\n\nBorderTR\n#4026bf #5046ef #5565ef\n..1.0\n..1..\n..11.\n.....\n.....\n\nCornerTR\n#4026bf #5046ef\n00000\n....0\n111.0\n..1.0\n....0\n\nCornerTL\n#4026bf #5046ef\n00000\n0....\n0.11.\n0.1..\n0.1..\n\nCornerBL\n#4026bf #5046ef\n0....\n0.1..\n0.111\n0....\n00000\n\nCornerBR\n#5046ef #4026bf\n..0.1\n..0.1\n.00.1\n....1\n11111\n\nTL\n#4026bf #5046ef\n00000\n0....\n0.111\n0....\n00000\n\nTB\n#4026bf #5046ef\n0.1.0\n0.1.0\n0.1.0\n0...0\n00000\n\nTR\n#4026bf #5046ef\n00000\n....0\n111.0\n....0\n00000\n\nTT\n#4026bf #5046ef\n00000\n0...0\n0.1.0\n0.1.0\n0.1.0\n\nCenter\n#4026bf #5046ef\n00000\n0...0\n0.1.0\n0...0\n00000\n\nPlayerR\n#96d550\n.....\n....0\n....0\n....0\n.....\n\nPlayerL\n#96d550\n.....\n0....\n0....\n0....\n.....\n\nPlayerT\n#96d550\n.000.\n.....\n.....\n.....\n.....\n\nPlayerB\n#96d550\n.....\n.....\n.....\n.....\n.000.\n\nPlayerExtraR\n#A9E4EF\n.....\n....0\n....0\n....0\n.....\n\nPlayerExtraL\n#A9E4EF\n.....\n0....\n0....\n0....\n.....\n\nPlayerExtraT\n#A9E4EF\n.000.\n.....\n.....\n.....\n.....\n\nPlayerExtraB\n#A9E4EF\n.....\n.....\n.....\n.....\n.000.\n\nThingR\n#7A306C #A9E4EF\n.....\n...00\n...1.\n...00\n.....\n\nThingL\n#7A306C #A9E4EF\n.....\n00...\n.1...\n00...\n.....\n\nThingB\n#7A306C #A9E4EF\n.....\n.....\n.....\n.010.\n.0.0.\n\nThingT\n#7A306C #A9E4EF\n.0.0.\n.010.\n.....\n.....\n.....\n\nThingJellyR\n#7A706C #96d550\n.....\n...00\n...1.\n...00\n.....\n\nThingJellyL\n#7A706C #96d550\n.....\n00...\n.1...\n00...\n.....\n\nThingJellyB\n#7A706C #96d550\n.....\n.....\n.....\n.010.\n.0.0.\n\nThingJellyT\n#7A706C #96d550\n.0.0.\n.010.\n.....\n.....\n.....\n\nTargetA\n#7A306C\n.....\n.....\n..0..\n.....\n.....\n\nTargetB\n#E15554\n.....\n.....\n..0..\n.....\n.....\n\nTargetC\n#499167\n.....\n.....\n..0..\n.....\n.....\n\nWall\n#5974eF\n\nPlayer\n#96d550 #499167\n11111\n10001\n10001\n10001\n11111\n\nPlayerExtra\n#499167\n00000\n0...0\n0...0\n0...0\n00000\n\nthing\n#7A306C\n.....\n.000.\n.0.0.\n.000.\n.....\n\nminiCrate\n#E15554\n.....\n.000.\n.0.0.\n.000.\n.....\n\nminiCrateJelly\n#E19564\n.....\n.000.\n.0.0.\n.000.\n.....\n\nthingJelly\n#7A706C\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTargetAJelly\n#7A706C\n.....\n.....\n..0..\n.....\n.....\n\nTargetBJelly\n#E19564\n.....\n.....\n..0..\n.....\n.....\n\nTargetCJelly\n#76b530\n.....\n.....\n..0..\n.....\n.....\n\nmove\ntransparent\n\ncanMovePlayer\ntransparent\n\nstart\ntransparent\n\ncantMovePlayer\n#c97167\n00000\n0...0\n0...0\n0...0\n00000\n\nendanimation\ntransparent\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player and start\n* = PlayerExtra\nO = TargetA\nb = TargetB\nd = TargetC\nx = thing\nc = miniCrate\ne = PlayerExtra and Thing\nf = playerExtra and miniCrate\ng = Player and Thing\nh = player and miniCrate\nj = player and TargetB\nk = playerExtra and TargetB\n\nTarget = TargetA or TargetB or TargetC\nplayers = Player or PlayerExtra\npushable = miniCrate or thing\n\ncorners = CornerTR or CornerTL or CornerBL or CornerBR or TL or TB or TR or TT or center\n\nplayerArt = PlayerR or PlayerL or PlayerT or PlayerB or PlayerExtraR or PlayerExtraL or PlayerExtraT or PlayerExtraB or thingR or ThingL or ThingB or ThingT or ThingJellyR or ThingJellyL or ThingJellyB or ThingJellyT or TargetAJelly or TargetBJelly or TargetCJelly\n\npushableArt = miniCrateJelly or thingJelly\n\n\n\n\n=======\nSOUNDS\n=======\n\nsfx0 91710308\nsfx1 92912108 (out of thing)\nplayer move 99671708 (jelly move)\n\nsfx3 39045308 (wrong move)\nsfx5 51693308 (jelly moveout)\nsfx4 26547308 (jelly move2)\n\nsfx6 12306908 (jello no move)\n\nstartgame 87148308\n\nshowmessage 26755108\nendlevel 33616908\n\nrestart 24552908\nundo 24552908\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncanMovePlayer, endanimation\nTarget\nPlayerExtra\nPlayer, Wall\nthing\nminiCrate\nmove\nstart\n\ncantMovePlayer,\n\nPlayerR\nPlayerL\nPlayerT\nPlayerB\n\nPlayerExtraR\nPlayerExtraL\nPlayerExtraT\nPlayerExtraB\n\npushableArt\n\nThingR\nThingL\nThingB\nThingT\n\nThingJellyR\nThingJellyL\nThingJellyB\nThingJellyT\n\nBorderTR\nBorderTL\nBorderBR\nBorderBL\nBorderT\nBorderB\nBorderR\nBorderL\n\ncorners\n\nTargetAJelly\nTargetBJelly\nTargetCJelly\n\n\n\n======\nRULES \n====== \n\n(----------------------------Aesthetic borders---------------------)\nright[start][wall | no wall] -> [start][wall BorderR | ]\nleft [start][wall | no wall] -> [start][wall BorderL | ]\nup [start][wall | no wall] -> [start][wall BorderT | ]\ndown [start][wall | no wall] -> [start][wall BorderB | ]\n\nright[start][no borderT wall | borderT] -> [start][wall borderTR | borderT]\nleft[start][no borderT wall | borderT] -> [start][wall borderTL | borderT]\nright[start][no borderB wall | borderB] -> [start][wall borderBR | borderB]\nleft [start][no borderB wall | borderB] -> [start][wall borderBL | borderB]\n\n[start][borderT borderB borderR borderL] -> [start][center]\n\n[start][borderT borderB borderR] -> [start][TR]\n[start][borderT borderB borderL] -> [start][TL]\n[start][borderL borderR borderT] -> [start][TT]\n[start][borderL borderR borderB] -> [start][TB]\n\n\n[start][borderT borderR] -> [start][CornerTR]\n[start][borderT borderL] -> [start][CornerTL]\n[start][borderL borderB] -> [start][CornerBL]\n[start][borderR borderB] -> [start][CornerBR]\n\n[start] -> []\n\n[canMovePlayer] -> []\n(-----------------------Player movement--------------------------)\n\n\n[moving player | stationary player] -> [moving player | moving player]\n\n[> players | wall] -> [players | wall]\n\n[moving players | stationary players] -> [ players | players]\n \n (------------------------Pushable movement --------------------)\n \n[> Players pushable | ] -> [ > Players move pushable |]\n[> players] [pushable move] -> [> players] [> pushable canMovePlayer]\n\n\nstartloop\n[moving thing canMovePlayer| stationary thing no canMovePlayer] -> [moving thing canMovePlayer| moving thing canMovePlayer]\n[moving thing | stationary thing] -> [moving thing | moving thing]\n[> pushable canMovePlayer| stationary pushable no canMovePlayer ] -> [> pushable canMovePlayer| > pushable canMovePlayer]\n[> pushable | stationary pushable ] -> [> pushable | > pushable ]\n\n(Move groups of jelly that are not the player)\n[> Pushable stationary PlayerExtra | ] -> [ > Pushable move playerExtra |]\n[> players] [PlayerExtra move] -> [> players] [> PlayerExtra]\n\n[moving playerExtra | playerExtra] -> [moving playerExtra | moving playerExtra]\n[> PlayerExtra stationary pushable | ] -> [ > PlayerExtra move pushable |]\n[> playerExtra] [pushable move] -> [> playerExtra] [> pushable]\nendloop\n\n[> pushable | wall] -> [pushable | wall]\n[> PlayerExtra | wall] -> [PlayerExtra | wall]\n\nstartloop\n[moving thing | stationary thing] -> [ thing | thing]\n[> pushable | stationary pushable] -> [ pushable | pushable]\n\n[stationary PlayerExtra moving pushable no canMovePlayer] -> [PlayerExtra pushable]\n\n[moving PlayerExtra stationary pushable canMovePlayer] -> [PlayerExtra pushable]\n[moving PlayerExtra | stationary PlayerExtra] -> [PlayerExtra | playerExtra]\n\n[stationary pushable | > miniCrate no players] -> [pushable | miniCrate]\nendloop\n\n[canMovePlayer] -> []\n[player] -> [player canMovePlayer]\n\n\nstartloop\n[canMovePlayer | moving pushable no canMovePlayer] -> [canMovePlayer | moving pushable canMovePlayer]\n[canMovePlayer | moving PlayerExtra no canMovePlayer] -> [canMovePlayer | moving PlayerExtra canMovePlayer]\nendloop\n\n[stationary pushable canMovePlayer] -> [pushable]\n[moving PlayerExtra no canMovePlayer] -> [playerExtra]\n[moving pushable no canMovePlayer] -> [pushable]\n\n(_--------------------------------------Sound RULES--------------------------------)\n\n[stationary pushable moving player] -> sfx4\n[stationary pushable moving player] -> sfx4\n\n\n[stationary player cantMovePlayer] -> [stationary player endAnimation]\n[stationary player no cantMovePlayer no endanimation] -> [stationary player cantMovePlayer] again sfx6\n[player cantMovePlayer][player] -> [player cantMovePlayer][player cantMovePlayer]\n\n[> player no pushable | stationary pushable no player] -> sfx3\n\n[endanimation]->[]\n\n(_--------------------------------------LATE RULES--------------------------------)\n\nlate[player | PlayerExtra] -> [player | player] sfx5\n\n\nlate[playerArt] -> []\nlate[pushableArt] -> []\nlate right [player | player] -> [player playerR | player playerL]\nlate down [player | player] -> [player playerB | player playerT]\n\nlate right [playerExtra | playerExtra] -> [playerExtra playerExtraR | playerExtra playerExtraL]\nlate down [playerExtra | playerExtra] -> [playerExtra playerExtraB | playerExtra playerExtraT]\n\nlate right [thing | thing] -> [thing thingR | thing thingL]\nlate down [thing | thing] -> [thing thingB | thing thingT]\n\nlate[miniCrate player] -> [miniCrate miniCrateJelly player]\nlate[thing player] -> [thing thingJelly player]\nlate[thingR player] -> [thingR thingJellyR player]\nlate[thingL player] -> [thingL thingJellyL player]\nlate[thingT player] -> [thingT thingJellyT player]\nlate[thingB player] -> [thingB thingJellyB player]\n\nlate[targetA player] -> [targetA TargetAJelly player]\nlate[TargetB player] -> [targetB TargetBJelly player]\nlate[targetC player] -> [targetC TargetCJelly player]\n\n==============\nWINCONDITIONS\n==============\n\nAll TargetA on thing \nAll TargetB on miniCrate\nAll TargetC on players\n\n======= \nLEVELS\n=======\n\nmessage . [o]o o o o o o o o o o o o o o\n\n#########\n#########\n###.c.###\n##p...b##\n##p...b##\n###.c.###\n#########\n#########\n\nmessage . [o o]o o o o o o o o o o o o o\n\n#########\n#########\n###.c.###\n##p...b##\n##....b##\n###.c.###\n#########\n#########\n\nmessage . [o o o]o o o o o o o o o o o o\n\n########\n########\n###ppb##\n##..b.##\n##.b..##\n##.ccc##\n########\n########\n\nmessage . [o o o o]o o o o o o o o o o o\n\n########\n########\n##.c####\n##.ccc##\n##.b..##\n##bbpp##\n##b.pp##\n########\n########\n\nmessage . [o o o o o] o o o o o o o o o o\n\n###########\n###########\n####.b.####\n###.cfc.###\n##.......##\n##*..*..*##\n##.......##\n###.bpb.###\n####...####\n###########\n###########\n\nmessage . [o o o o o] [o]o o o o o o o o o\n\n#########\n#########\n###.#.###\n##.pppp##\n##x...o##\n##x#.#o##\n#########\n#########\n\nmessage . [o o o o o] [o o]o o o o o o o o\n\n##########\n##########\n####b#x.##\n####.#x.##\n##......##\n##..pp..##\n##....c.##\n######*###\n######**##\n##########\n##########\n\nmessage . [o o o o o] [o o o]o o o o o o o\n\n#########\n#########\n##..o..##\n##.xxgp##\n##..c.p##\n##.bcb.##\n#########\n#########\n\nmessage . [o o o o o] [o o o o]o o o o o o\n\n###########\n###########\n##*k**#####\n###...cc.##\n##.......##\n##..g....##\n###ggg..o##\n###########\n###########\n\nmessage . [o o o o o] [o o o o o] o o o o o\n\n#############\n#############\n##.......####\n##.ggggg..###\n##.g...g..###\n##.gc...cbb##\n##.g...g..###\n##.ggggg..###\n##.......####\n#############\n#############\n\nmessage . [o o o o o] [o o o o o] [o]o o o o\n\n###########\n###########\n##x.o...o##\n##x...o..##\n##*#.ppxx##\n###e.pp..##\n####.....##\n###########\n###########\n\nmessage . [o o o o o] [o o o o o] [o o]o o o\n\n###########\n###########\n##k########\n##******k##\n##*.....###\n##*.xc.p###\n##*.....###\n##f.xx.x###\n##ex....###\n###########\n###########\n\nmessage . [o o o o o] [o o o o o] [o o o]o o\n\n##########\n##########\n##...o..##\n##..p..*##\n##..c.#*##\n##x..x#k##\n###xx#####\n##########\n##########\n\n\nmessage . [o o o o o] [o o o o o] [o o o o]o\n\n\n############\n############\n##....######\n##..c...####\n##p.bbc.####\n##pxxx#.####\n##p.....#*##\n##.x...c**##\n##......####\n############\n############\n\n\nmessage . [o o o o o] [o o o o o] [o o o o o]\n\n##########\n##########\n###....###\n##x.obb###\n##x.p..###\n##x.hh.###\n##..p..###\n###....###\n####..####\n##**fk.###\n##########\n##########\n\nmessage . [o o o o o] [o o o o o] [o o o o o]\n\nmessage . [x x x x x] [x x x x x] [x x x x x]\n\n############\n############\n##...x.xb.##\n##..ppp...##\n##..p.....##\n##..ppp...##\n##..coc.o.##\n############\n############\n\n\nmessage . [ ] [ ] [ ]\n\n\n\n",[0,2,2,3,0,0,0,1,"restart",3,3,0,0,0,2,2,2,2,1,0,0,3],"background wall:0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,background borderbr wall:1,background borderr wall:2,2,2,background bordertr wall:3,0,\n0,0,0,0,0,background borderb wall:4,background:5,5,5,background bordert wall:6,\n0,0,0,0,1,2,background cornerbr wall:7,5,5,5,\n6,0,0,0,0,4,background targetb:8,5,5,5,\n5,6,0,0,0,0,background borderbl borderbr wall:9,background borderl borderr wall:10,background tb wall:11,5,\n5,5,background cornertr wall:12,2,3,0,0,4,5,5,\n5,5,background player playerb playerr thing thingb thingjelly thingjellyb:13,background player playerb playert thing thingjelly thingjellyt thingt:14,background minicrate minicratejelly player playerr playert:15,6,0,0,4,5,\n5,5,5,background player playerl:16,background tl wall:17,16,6,0,0,background borderbl wall:18,\nbackground borderl wall:19,19,19,19,19,background borderbl bordertl wall:20,19,background bordertl wall:21,0,0,\n0,0,0,0,0,0,0,0,0,0,\n",13,"1627769708001.6777"] + ["title Indigestion\nauthor Le Slo\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\n\nagain_interval 0.05\n\nnoaction\n\nbackground_color #5974eF\n\n========\nOBJECTS\n========\n\nBackground\n#A9E4EF\n\nBorderB\n#4026bf #5046ef #5565ef\n.....\n.....\n.1111\n.....\n00000\n\nBorderBL\n#4026bf #5046ef #5565ef\n.....\n.....\n.11..\n..1..\n0.1..\n\nBorderBR\n#4026bf #5046ef #5565ef\n.....\n.....\n..111\n..1..\n....0\n\n\nBorderL\n#4026bf #5046ef #5565ef\n0....\n0.1..\n0.1..\n0.1..\n0.1..\n\nBorderR\n#4026bf #5046ef #5565ef\n..1.0\n..1.0\n..1.0\n..1.0\n....0\n\n\nBorderT\n#4026bf #5046ef #5565ef\n00000\n.....\n1111.\n.....\n.....\n\nBorderTL\n#4026bf #5046ef #5565ef\n0....\n..1..\n111..\n.....\n.....\n\nBorderTR\n#4026bf #5046ef #5565ef\n..1.0\n..1..\n..11.\n.....\n.....\n\nCornerTR\n#4026bf #5046ef\n00000\n....0\n111.0\n..1.0\n....0\n\nCornerTL\n#4026bf #5046ef\n00000\n0....\n0.11.\n0.1..\n0.1..\n\nCornerBL\n#4026bf #5046ef\n0....\n0.1..\n0.111\n0....\n00000\n\nCornerBR\n#5046ef #4026bf\n..0.1\n..0.1\n.00.1\n....1\n11111\n\nTL\n#4026bf #5046ef\n00000\n0....\n0.111\n0....\n00000\n\nTB\n#4026bf #5046ef\n0.1.0\n0.1.0\n0.1.0\n0...0\n00000\n\nTR\n#4026bf #5046ef\n00000\n....0\n111.0\n....0\n00000\n\nTT\n#4026bf #5046ef\n00000\n0...0\n0.1.0\n0.1.0\n0.1.0\n\nCenter\n#4026bf #5046ef\n00000\n0...0\n0.1.0\n0...0\n00000\n\nPlayerR\n#96d550\n.....\n....0\n....0\n....0\n.....\n\nPlayerL\n#96d550\n.....\n0....\n0....\n0....\n.....\n\nPlayerT\n#96d550\n.000.\n.....\n.....\n.....\n.....\n\nPlayerB\n#96d550\n.....\n.....\n.....\n.....\n.000.\n\nPlayerExtraR\n#A9E4EF\n.....\n....0\n....0\n....0\n.....\n\nPlayerExtraL\n#A9E4EF\n.....\n0....\n0....\n0....\n.....\n\nPlayerExtraT\n#A9E4EF\n.000.\n.....\n.....\n.....\n.....\n\nPlayerExtraB\n#A9E4EF\n.....\n.....\n.....\n.....\n.000.\n\nThingR\n#7A306C #A9E4EF\n.....\n...00\n...1.\n...00\n.....\n\nThingL\n#7A306C #A9E4EF\n.....\n00...\n.1...\n00...\n.....\n\nThingB\n#7A306C #A9E4EF\n.....\n.....\n.....\n.010.\n.0.0.\n\nThingT\n#7A306C #A9E4EF\n.0.0.\n.010.\n.....\n.....\n.....\n\nThingJellyR\n#7A706C #96d550\n.....\n...00\n...1.\n...00\n.....\n\nThingJellyL\n#7A706C #96d550\n.....\n00...\n.1...\n00...\n.....\n\nThingJellyB\n#7A706C #96d550\n.....\n.....\n.....\n.010.\n.0.0.\n\nThingJellyT\n#7A706C #96d550\n.0.0.\n.010.\n.....\n.....\n.....\n\nTargetA\n#7A306C\n.....\n.....\n..0..\n.....\n.....\n\nTargetB\n#E15554\n.....\n.....\n..0..\n.....\n.....\n\nTargetC\n#499167\n.....\n.....\n..0..\n.....\n.....\n\nWall\n#5974eF\n\nPlayer\n#96d550 #499167\n11111\n10001\n10001\n10001\n11111\n\nPlayerExtra\n#499167\n00000\n0...0\n0...0\n0...0\n00000\n\nthing\n#7A306C\n.....\n.000.\n.0.0.\n.000.\n.....\n\nminiCrate\n#E15554\n.....\n.000.\n.0.0.\n.000.\n.....\n\nminiCrateJelly\n#E19564\n.....\n.000.\n.0.0.\n.000.\n.....\n\nthingJelly\n#7A706C\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTargetAJelly\n#7A706C\n.....\n.....\n..0..\n.....\n.....\n\nTargetBJelly\n#E19564\n.....\n.....\n..0..\n.....\n.....\n\nTargetCJelly\n#76b530\n.....\n.....\n..0..\n.....\n.....\n\nmove\ntransparent\n\ncanMovePlayer\ntransparent\n\nstart\ntransparent\n\ncantMovePlayer\n#c97167\n00000\n0...0\n0...0\n0...0\n00000\n\nendanimation\ntransparent\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player and start\n* = PlayerExtra\nO = TargetA\nb = TargetB\nd = TargetC\nx = thing\nc = miniCrate\ne = PlayerExtra and Thing\nf = playerExtra and miniCrate\ng = Player and Thing\nh = player and miniCrate\nj = player and TargetB\nk = playerExtra and TargetB\n\nTarget = TargetA or TargetB or TargetC\nplayers = Player or PlayerExtra\npushable = miniCrate or thing\n\ncorners = CornerTR or CornerTL or CornerBL or CornerBR or TL or TB or TR or TT or center\n\nplayerArt = PlayerR or PlayerL or PlayerT or PlayerB or PlayerExtraR or PlayerExtraL or PlayerExtraT or PlayerExtraB or thingR or ThingL or ThingB or ThingT or ThingJellyR or ThingJellyL or ThingJellyB or ThingJellyT or TargetAJelly or TargetBJelly or TargetCJelly\n\npushableArt = miniCrateJelly or thingJelly\n\n\n\n\n=======\nSOUNDS\n=======\n\nsfx0 91710308\nsfx1 92912108 (out of thing)\nplayer move 99671708 (jelly move)\n\nsfx3 39045308 (wrong move)\nsfx5 51693308 (jelly moveout)\nsfx4 26547308 (jelly move2)\n\nsfx6 12306908 (jello no move)\n\nstartgame 87148308\n\nshowmessage 26755108\nendlevel 33616908\n\nrestart 24552908\nundo 24552908\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncanMovePlayer, endanimation\nTarget\nPlayerExtra\nPlayer, Wall\nthing\nminiCrate\nmove\nstart\n\ncantMovePlayer,\n\nPlayerR\nPlayerL\nPlayerT\nPlayerB\n\nPlayerExtraR\nPlayerExtraL\nPlayerExtraT\nPlayerExtraB\n\npushableArt\n\nThingR\nThingL\nThingB\nThingT\n\nThingJellyR\nThingJellyL\nThingJellyB\nThingJellyT\n\nBorderTR\nBorderTL\nBorderBR\nBorderBL\nBorderT\nBorderB\nBorderR\nBorderL\n\ncorners\n\nTargetAJelly\nTargetBJelly\nTargetCJelly\n\n\n\n======\nRULES \n====== \n\n(----------------------------Aesthetic borders---------------------)\nright[start][wall | no wall] -> [start][wall BorderR | ]\nleft [start][wall | no wall] -> [start][wall BorderL | ]\nup [start][wall | no wall] -> [start][wall BorderT | ]\ndown [start][wall | no wall] -> [start][wall BorderB | ]\n\nright[start][no borderT wall | borderT] -> [start][wall borderTR | borderT]\nleft[start][no borderT wall | borderT] -> [start][wall borderTL | borderT]\nright[start][no borderB wall | borderB] -> [start][wall borderBR | borderB]\nleft [start][no borderB wall | borderB] -> [start][wall borderBL | borderB]\n\n[start][borderT borderB borderR borderL] -> [start][center]\n\n[start][borderT borderB borderR] -> [start][TR]\n[start][borderT borderB borderL] -> [start][TL]\n[start][borderL borderR borderT] -> [start][TT]\n[start][borderL borderR borderB] -> [start][TB]\n\n\n[start][borderT borderR] -> [start][CornerTR]\n[start][borderT borderL] -> [start][CornerTL]\n[start][borderL borderB] -> [start][CornerBL]\n[start][borderR borderB] -> [start][CornerBR]\n\n[start] -> []\n\n[canMovePlayer] -> []\n(-----------------------Player movement--------------------------)\n\n\n[moving player | stationary player] -> [moving player | moving player]\n\n[> players | wall] -> [players | wall]\n\n[moving players | stationary players] -> [ players | players]\n \n (------------------------Pushable movement --------------------)\n \n[> Players pushable | ] -> [ > Players move pushable |]\n[> players] [pushable move] -> [> players] [> pushable canMovePlayer]\n\n\nstartloop\n[moving thing canMovePlayer| stationary thing no canMovePlayer] -> [moving thing canMovePlayer| moving thing canMovePlayer]\n[moving thing | stationary thing] -> [moving thing | moving thing]\n[> pushable canMovePlayer| stationary pushable no canMovePlayer ] -> [> pushable canMovePlayer| > pushable canMovePlayer]\n[> pushable | stationary pushable ] -> [> pushable | > pushable ]\n\n(Move groups of jelly that are not the player)\n[> Pushable stationary PlayerExtra | ] -> [ > Pushable move playerExtra |]\n[> players] [PlayerExtra move] -> [> players] [> PlayerExtra]\n\n[moving playerExtra | playerExtra] -> [moving playerExtra | moving playerExtra]\n[> PlayerExtra stationary pushable | ] -> [ > PlayerExtra move pushable |]\n[> playerExtra] [pushable move] -> [> playerExtra] [> pushable]\nendloop\n\n[> pushable | wall] -> [pushable | wall]\n[> PlayerExtra | wall] -> [PlayerExtra | wall]\n\nstartloop\n[moving thing | stationary thing] -> [ thing | thing]\n[> pushable | stationary pushable] -> [ pushable | pushable]\n\n[stationary PlayerExtra moving pushable no canMovePlayer] -> [PlayerExtra pushable]\n\n[moving PlayerExtra stationary pushable canMovePlayer] -> [PlayerExtra pushable]\n[moving PlayerExtra | stationary PlayerExtra] -> [PlayerExtra | playerExtra]\n\n[stationary pushable | > miniCrate no players] -> [pushable | miniCrate]\nendloop\n\n[canMovePlayer] -> []\n[player] -> [player canMovePlayer]\n\n\nstartloop\n[canMovePlayer | moving pushable no canMovePlayer] -> [canMovePlayer | moving pushable canMovePlayer]\n[canMovePlayer | moving PlayerExtra no canMovePlayer] -> [canMovePlayer | moving PlayerExtra canMovePlayer]\nendloop\n\n[stationary pushable canMovePlayer] -> [pushable]\n[moving PlayerExtra no canMovePlayer] -> [playerExtra]\n[moving pushable no canMovePlayer] -> [pushable]\n\n(_--------------------------------------Sound RULES--------------------------------)\n\n[stationary pushable moving player] -> sfx4\n[stationary pushable moving player] -> sfx4\n\n\n[stationary player cantMovePlayer] -> [stationary player endAnimation]\n[stationary player no cantMovePlayer no endanimation] -> [stationary player cantMovePlayer] again sfx6\n[player cantMovePlayer][player] -> [player cantMovePlayer][player cantMovePlayer]\n\n[> player no pushable | stationary pushable no player] -> sfx3\n\n[endanimation]->[]\n\n(_--------------------------------------LATE RULES--------------------------------)\n\nlate[player | PlayerExtra] -> [player | player] sfx5\n\n\nlate[playerArt] -> []\nlate[pushableArt] -> []\nlate right [player | player] -> [player playerR | player playerL]\nlate down [player | player] -> [player playerB | player playerT]\n\nlate right [playerExtra | playerExtra] -> [playerExtra playerExtraR | playerExtra playerExtraL]\nlate down [playerExtra | playerExtra] -> [playerExtra playerExtraB | playerExtra playerExtraT]\n\nlate right [thing | thing] -> [thing thingR | thing thingL]\nlate down [thing | thing] -> [thing thingB | thing thingT]\n\nlate[miniCrate player] -> [miniCrate miniCrateJelly player]\nlate[thing player] -> [thing thingJelly player]\nlate[thingR player] -> [thingR thingJellyR player]\nlate[thingL player] -> [thingL thingJellyL player]\nlate[thingT player] -> [thingT thingJellyT player]\nlate[thingB player] -> [thingB thingJellyB player]\n\nlate[targetA player] -> [targetA TargetAJelly player]\nlate[TargetB player] -> [targetB TargetBJelly player]\nlate[targetC player] -> [targetC TargetCJelly player]\n\n==============\nWINCONDITIONS\n==============\n\nAll TargetA on thing \nAll TargetB on miniCrate\nAll TargetC on players\n\n======= \nLEVELS\n=======\n\nmessage . [o]o o o o o o o o o o o o o o\n\n#########\n#########\n###.c.###\n##p...b##\n##p...b##\n###.c.###\n#########\n#########\n\nmessage . [o o]o o o o o o o o o o o o o\n\n#########\n#########\n###.c.###\n##p...b##\n##....b##\n###.c.###\n#########\n#########\n\nmessage . [o o o]o o o o o o o o o o o o\n\n########\n########\n###ppb##\n##..b.##\n##.b..##\n##.ccc##\n########\n########\n\nmessage . [o o o o]o o o o o o o o o o o\n\n########\n########\n##.c####\n##.ccc##\n##.b..##\n##bbpp##\n##b.pp##\n########\n########\n\nmessage . [o o o o o] o o o o o o o o o o\n\n###########\n###########\n####.b.####\n###.cfc.###\n##.......##\n##*..*..*##\n##.......##\n###.bpb.###\n####...####\n###########\n###########\n\nmessage . [o o o o o] [o]o o o o o o o o o\n\n#########\n#########\n###.#.###\n##.pppp##\n##x...o##\n##x#.#o##\n#########\n#########\n\nmessage . [o o o o o] [o o]o o o o o o o o\n\n##########\n##########\n####b#x.##\n####.#x.##\n##......##\n##..pp..##\n##....c.##\n######*###\n######**##\n##########\n##########\n\nmessage . [o o o o o] [o o o]o o o o o o o\n\n#########\n#########\n##..o..##\n##.xxgp##\n##..c.p##\n##.bcb.##\n#########\n#########\n\nmessage . [o o o o o] [o o o o]o o o o o o\n\n###########\n###########\n##*k**#####\n###...cc.##\n##.......##\n##..g....##\n###ggg..o##\n###########\n###########\n\nmessage . [o o o o o] [o o o o o] o o o o o\n\n#############\n#############\n##.......####\n##.ggggg..###\n##.g...g..###\n##.gc...cbb##\n##.g...g..###\n##.ggggg..###\n##.......####\n#############\n#############\n\nmessage . [o o o o o] [o o o o o] [o]o o o o\n\n###########\n###########\n##x.o...o##\n##x...o..##\n##*#.ppxx##\n###e.pp..##\n####.....##\n###########\n###########\n\nmessage . [o o o o o] [o o o o o] [o o]o o o\n\n###########\n###########\n##k########\n##******k##\n##*.....###\n##*.xc.p###\n##*.....###\n##f.xx.x###\n##ex....###\n###########\n###########\n\nmessage . [o o o o o] [o o o o o] [o o o]o o\n\n##########\n##########\n##...o..##\n##..p..*##\n##..c.#*##\n##x..x#k##\n###xx#####\n##########\n##########\n\n\nmessage . [o o o o o] [o o o o o] [o o o o]o\n\n\n############\n############\n##....######\n##..c...####\n##p.bbc.####\n##pxxx#.####\n##p.....#*##\n##.x...c**##\n##......####\n############\n############\n\n\nmessage . [o o o o o] [o o o o o] [o o o o o]\n\n##########\n##########\n###....###\n##x.obb###\n##x.p..###\n##x.hh.###\n##..p..###\n###....###\n####..####\n##**fk.###\n##########\n##########\n\nmessage . [o o o o o] [o o o o o] [o o o o o]\n\nmessage . [x x x x x] [x x x x x] [x x x x x]\n\n############\n############\n##...x.xb.##\n##..ppp...##\n##..p.....##\n##..ppp...##\n##..coc.o.##\n############\n############\n\n\nmessage . [ ] [ ] [ ]\n\n\n\n", [0, 2, 2, 3, 0, 0, 0, 1, "restart", 3, 3, 0, 0, 0, 2, 2, 2, 2, 1, 0, 0, 3], "background wall:0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,background borderbr wall:1,background borderr wall:2,2,2,background bordertr wall:3,0,\n0,0,0,0,0,background borderb wall:4,background:5,5,5,background bordert wall:6,\n0,0,0,0,1,2,background cornerbr wall:7,5,5,5,\n6,0,0,0,0,4,background targetb:8,5,5,5,\n5,6,0,0,0,0,background borderbl borderbr wall:9,background borderl borderr wall:10,background tb wall:11,5,\n5,5,background cornertr wall:12,2,3,0,0,4,5,5,\n5,5,background player playerb playerr thing thingb thingjelly thingjellyb:13,background player playerb playert thing thingjelly thingjellyt thingt:14,background minicrate minicratejelly player playerr playert:15,6,0,0,4,5,\n5,5,5,background player playerl:16,background tl wall:17,16,6,0,0,background borderbl wall:18,\nbackground borderl wall:19,19,19,19,19,background borderbl bordertl wall:20,19,background bordertl wall:21,0,0,\n0,0,0,0,0,0,0,0,0,0,\n", 13, "1627769708001.6777"] ], [ `gallery game: two worlds`, - ["title Two Worlds\nauthor nebu soku\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\nrealtime_interval 0.1\nagain_interval 0.05\nbackground_color #282818\ntext_color #c8c8a8\nflickscreen 19x16\n\n========\nOBJECTS\n========\n\nBackground \n#282818\n\nOutLine\n#282818\n\nBGBlue\n#c8c8a8 #c1e4f0\n\nBGPink\n#282818 #f8cefd\n\nTarget \n#a0a088\n00.00\n00000\n00000\n.000.\n..0..\n\nGhostTarget \n#a0a088\n00.00\n00000\n00000\n.000.\n..0..\n\nWall \n#a0a088 #686850 #282818\n01000\n02010\n00020\n00000\n11111\n\nWallAbove\n#a0a088\n.....\n.....\n.....\n.....\n00000\n\nWallBelow\n#686850\n00000\n.....\n.....\n.....\n.....\n\nZonePurple\n#282818 #a0a088 #3d1e7e\n00000\n00000\n00100\n00000\n00000\n\nZonePurpleBelow\n#686850 #a0a088\n00000\n.....\n.....\n.....\n.....\n\nZonePink\n#c8c8a8 #ef90e3\n\nPlayerBlueRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850 #54b4d5\n.0000\n.0000\n.0121\n5.33.\n..34.\n\nWalkAnimBR1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850(#4fbbdf #608b8c #d5f5f6 #1d7788 #1a6978 #53aecc)\n.0000\n.0000\n.0121\n5.33.\n.....\n\nWalkAnimBR2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n.4..3\n\nWalkAnimBR3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n..3..\n\nPlayerBlueLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.43..\n\nWalkAnimBL1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.....\n\nWalkAnimBL2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n3..4.\n\nWalkAnimBL3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n..3..\n\nStayBlueRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n..34.\n\nStayBlueLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.43..\n\nPlayerPinkRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818(#de4fdd #8a608b #f6d4f5 #871d86 #741978 #cc52c9 #d153d5)\n.5000\n.0000\n.0121\n..33.\n..34.\n\nWalkAnimPR1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.....\n\nWalkAnimPR2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nWalkAnimPR3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n..3..\n\nPlayerPinkLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.43..\n\nWalkAnimPL1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.....\n\nWalkAnimPL2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nWalkAnimPL3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n..3..\n\nStayPinkRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n..34.\n\nStayPinkLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.43..\n\nFallRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nFallLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nClimbRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nClimbLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nGhostPlayer\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAbove\n#c8c8a8\n.....\n.....\n.....\n.....\n.000.\n\nGhostPlayerAnim1\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAnim2\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAnim3\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nGhostPlayerAnim4\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nGhostPlayerAnim5\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nStuckRigid\nblack\n\nStuckCursor\n#282818\n0...0\n0...0\n0...0\n00000\n.....\n\nStuckCursorAbove\n#282818\n.....\n.....\n.....\n.....\n00000\n\nCrate \n#a0a088 #686850 #282818 #c8c8a8\n01110\n02220\n02020\n00000\n11111\n\nCrateAbove\n#a0a088\n.....\n.....\n.....\n.....\n00000\n\nCrateBelow\n#686850\n00000\n.....\n.....\n.....\n.....\n\nCrateLine\n#a0a088\n.....\n.....\n.....\n00000\n.....\n\nRigidCrate\n#a0a088 #282818\n11111\n11111\n11011\n11111\n11111\n\nRigidU\n#686850\n00000\n.....\n.....\n.....\n.....\n\nRigidUL\n#686850\n....0\n.....\n.....\n.....\n.....\n\nRigidUR\n#686850\n0....\n.....\n.....\n.....\n.....\n\nRigidD\n#a0a088 #686850\n.....\n.....\n.....\n00000\n11111\n\nRigidL\n#a0a088\n0....\n0....\n0....\n0....\n0....\n\nRigidR\n#a0a088\n....0\n....0\n....0\n....0\n....0\n\nRigidLR\n#a0a088\n0...0\n0...0\n0...0\n0...0\n0...0\n\nAboveRigidL\n#a0a088\n.....\n.....\n.....\n0....\n0....\n\nAboveRigidR\n#a0a088\n.....\n.....\n.....\n....0\n....0\n\nAboveRigidLR\n#a0a088\n.....\n.....\n.....\n0...0\n0...0\n\nAboveRigidLRwithR\n#a0a088\n....0\n....0\n....0\n0...0\n0...0\n\nAboveRigidLRwithL\n#a0a088\n0....\n0....\n0....\n0...0\n0...0\n\nrigid1\nblack\n\nrigid2\nblack\n\nBlock \n#c8c8a8 #a0a088 #686850\n12222\n21112\n21112\n21112\n22221\n\nGhostBlock\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim1\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim2\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim3\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\nGhostBlockAnim4\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\nGhostBlockAnim5\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\n\nClimbable\npink\n\nColBGPink\nblack\n.....\n.....\n.....\n.....\n.....\n\nFallBlock\nblack\n\nWinable\nblack\n\nAddPinkLUD\n#c8c8a8\n0....\n.....\n.....\n.....\n0....\n\nAddPinkLU\n#c8c8a8\n0....\n.....\n.....\n.....\n.....\n\nAddPinkLD\n#c8c8a8\n.....\n.....\n.....\n.....\n0....\n\nAddPinkRUD\n#c8c8a8\n....0\n.....\n.....\n.....\n....0\n\nAddPinkRU\n#c8c8a8\n....0\n.....\n.....\n.....\n.....\n\nAddPinkRD\n#c8c8a8\n.....\n.....\n.....\n.....\n....0\n\nRemovePinkLUD\n#282818\n0....\n.....\n.....\n.....\n0....\n\nRemovePinkLU\n#282818\n0....\n.....\n.....\n.....\n.....\n\nRemovePinkLD\n#282818\n.....\n.....\n.....\n.....\n0....\n\nRemovePinkRUD\n#282818\n....0\n.....\n.....\n.....\n....0\n\nRemovePinkRU\n#282818\n....0\n.....\n.....\n.....\n.....\n\nRemovePinkRD\n#282818\n.....\n.....\n.....\n.....\n....0\n\nTransition1\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransition2\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransition3\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransition4\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransition5\n#282818\n00000\n00000\n00000\n00000\n00000\n\nTransition6\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransition7\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransition8\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransition9\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransitionR1\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransitionR2\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransitionR3\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransitionR4\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransitionR5\n#282818\n00000\n00000\n00000\n00000\n00000\n\nTransitionR6\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransitionR7\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransitionR8\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransitionR9\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nHide\n#c8c8a8\n\nWinAnim1\n#c8c8a8\n.....\n.0...\n.....\n.....\n.....\n\nWinAnim2\n#c8c8a8\n.....\n.0...\n.....\n.....\n.....\n\nWinAnim3\n#c8c8a8\n.0...\n000..\n.0...\n...0.\n.....\n\nWinAnim4\n#c8c8a8\n.....\n.0...\n...0.\n..000\n...0.\n\nWinAnim5\n#c8c8a8\n.....\n.....\n.....\n...0.\n.....\n\nWinAnim6\n#c8c8a8\n.....\n.....\n.....\n.....\n.....\n\nLevelStart\n#282818\n\nPressX\n#686850 #282818\n0.0.0\n0.0.0\n00.00\n0.0.0\n0.0.0\n\nTCount1\nblack\n\nTCount2\nblack\n\nTCount3\nblack\n\nTCount4\nblack\n\nTCount5\nblack\n\n=======\nLEGEND\n=======\n\nBlueRight = PlayerBlueRight or WalkAnimBR1 or WalkAnimBR2 or WalkAnimBR3\nBlueLeft = PlayerBlueLeft or WalkAnimBL1 or WalkAnimBL2 or WalkAnimBL3\nPlayerBlue = BlueRight or BlueLeft\n\nPinkRight = PlayerPinkRight or WalkAnimPR1 or WalkAnimPR2 or WalkAnimPR3 \nPinkLeft = PlayerPinkLeft or WalkAnimPL1 or WalkAnimPL2 or WalkAnimPL3\nPlayerPink = PinkRight or PinkLeft\nPlayerFall = PlayerPink or FallRight or FallLeft\n\nPlayer = PlayerBlue or PlayerPink or ClimbRight or ClimbLeft\nPlayerMove = PlayerBlue or PlayerPink\n\nGBlock = GhostBlock or GhostBlockAnim1 or GhostBlockAnim2 or GhostBlockAnim3 or GhostBlockAnim4 or GhostBlockAnim5\n\nGPlayer = GhostPlayer or GhostPlayerAnim1 or GhostPlayerAnim2 or GhostPlayerAnim3 or GhostPlayerAnim4 or GhostPlayerAnim5\nGPAboveAnim = GhostPlayerAnim3 or GhostPlayerAnim4 or GhostPlayerAnim5\n\nRidable = BGPink or Block or ColBGPink\n\nRigids = rigid1 or rigid2\n\nAboveDeco = AboveRigidL or AboveRigidR or RigidL or RigidR or RigidLR\nRigidDeco = RigidU or AboveDeco or RigidD or AboveRigidLR or AboveRigidLRwithR or AboveRigidLRwithL or RigidUL or RigidUR\n\nAddPinkL = AddPinkLUD or AddPinkLU or AddPinkLD\nAddPinkR = AddPinkRUD or AddPinkRU or AddPinkRD\n\nRemovePinkL = RemovePinkLUD or RemovePinkLU or RemovePinkLD\nRemovePinkR = RemovePinkRUD or RemovePinkRU or RemovePinkRD\n\nTransition = Transition1 or Transition2 or Transition3 or Transition4 or Transition5 or Transition6 or Transition7 or Transition8 or Transition9\nTransitionR = TransitionR1 or TransitionR2 or TransitionR3 or TransitionR4 or TransitionR5 or TransitionR6 or TransitionR7 or TransitionR8 or TransitionR9\n\nWinAnim = WinAnim1 or WinAnim2 or WinAnim3 or WinAnim4 or WinAnim5 or WinAnim6\nTCount = TCount1 or TCount2 or TCount3 or TCount4\n\n. = Background\n, = BGBlue\n' = BGPink\n# = Wall and BGBlue\nB = PlayerBlueRight and BGBlue\nP = PlayerPinkRight and ZonePink\n* = Crate and BGBlue\n@ = RigidCrate and rigid1 and BGBlue\n2 = RigidCrate and rigid2 and BGBlue\nO = GhostTarget and ZonePurple\nx = ZonePurple and BGBlue\n+ = ZonePink\n\" = GhostBlock and ZonePurple and BGBlue\n! = GhostPlayer and ZonePurple and BGBlue\n($ = StayBlueRight and BGBlue)\n% = StayPinkRight and ZonePink\n石 = Block and ZonePink\n文 = PressX and BGBlue\n\n=======\nSOUNDS\n=======\n\nPlayerMove move 15203103\nCrate move 80987507\nRigidCrate move 80987507\nBlock action 70814309\nStuckCursor action 20002502 (boo)\nZonePurple move 95712903\nZonePink action 52706103\nTransition1 action 54782309\nTransitionR1 action 54782309\n\nsfx0 30806303\nsfx1 91797700 (fall)\nsfx2 99718300\nsfx3 65480100\nsfx4 80396503 (jump1)\nsfx5 80987507 (block)\nsfx6 45846907\nsfx7 28015305 (jump2)\nsfx8 10636903\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPressX\nTCount, TCount5\nLevelStart\nClimbable\nFallBlock\nWinable\nrigids\nStuckRigid\nBGBlue\nZonePink\nBGPink\nWallBelow\nTarget\nHide\nCrateBelow, ZonePurpleBelow\nPlayer, Wall, Crate, ZonePurple, StayBlueRight, StayBlueLeft, StayPinkRight, StayPinkLeft, FallRight, FallLeft, ClimbRight, ClimbLeft, Block, ColBGPink, RigidCrate\nRemovePinkL\nRemovePinkR\nGhostTarget\nRigidU, RigidUL, RigidUR\nGPlayer\nAboveRigidL, AboveRigidR, RigidL, RigidR, RigidLR\nRigidD, AboveRigidLR, AboveRigidLRwithR, AboveRigidLRwithL\nCrateAbove\nStuckCursorAbove\nWallAbove\nGBlock\nGhostPlayerAbove\nCrateLine\nStuckCursor\nAddPinkL\nAddPinkR\nOutLine\nWinAnim\nTransition, TransitionR\n\n======\nRULES \n====== \n[ > Player ] [ FallBlock ] -> cancel (bug?) \n\n(int)\n\n[ > Player Transition ] -> [ Player Transition ]\n[ ColBGPink ] -> [ ]\n[ BGPink ] -> [ BGPink ColBGPink ]\n[ Background no BGBlue no BGPink no ZonePurple no ZonePink ] -> [ Background OutLine ColBGPink ]\n\nright [ GhostTarget | | | | | | | | | | | | | | | | | | | ] -> [ GhostTarget | | | | | | | | | | | | | | | | | | | Target ]\n\ndown [ ZonePurple | no ZonePurple ] -> [ ZonePurple | ZonePurpleBelow ]\n\nup [ Wall | ] -> [ Wall | WallAbove ]\ndown [ Wall | ] -> [ Wall | WallBelow ]\n\n(Crate-ZonePink)\n\n[ CrateAbove ] -> [ ]\n[ CrateBelow ] -> [ ]\n[ CrateLine ] -> [ ]\nlate up [ | Crate | ] -> [ CrateBelow | Crate CrateLine | CrateAbove ]\n(late down [ Crate | ] -> [ Crate | CrateBelow ])\n\nlate right [ no Crate no ZonePurple no RigidCrate | | | | | | | | | | | | | | | | | | | ZonePink ] -> [ | | | | | | | | | | | | | | | | | | | BGPink ]\nlate right [ PlayerPink ] [ Crate | | | | | | | | | | | | | | | | | | | BGPink ] -> [ PlayerPink ] [ Crate | | | | | | | | | | | | | | | | | | | ZonePink ]\nlate right [ PlayerPink ] [ RigidCrate | | | | | | | | | | | | | | | | | | | BGPink ] -> [ PlayerPink ] [ RigidCrate | | | | | | | | | | | | | | | | | | | ZonePink ]\n\n(Block-GhostBlock)\n\n[ PlayerPink ] [ GBlock ] -> [ PlayerPink ] [ ]\nright [ PlayerPink ] [ | | | | | | | | | | | | | | | | | | | Block ] -> [ PlayerPink ] [ GhostBlock | | | | | | | | | | | | | | | | | | | Block ]\n\n[ PlayerBlue ] [ Block ] -> [ PlayerBlue ] [ ]\nright [ PlayerBlue ] [ GBlock | | | | | | | | | | | | | | | | | | | ] -> [ PlayerBlue ] [ GBlock | | | | | | | | | | | | | | | | | | | Block ]\n\n(Player-GhostPlayer)\n\n[ PlayerPink ] [ GPlayer ] -> [ PlayerPink ] [ ]\nright [ PlayerPink ] [ | | | | | | | | | | | | | | | | | | | PlayerPink ] -> [ PlayerPink ] [ GhostPlayer | | | | | | | | | | | | | | | | | | | PlayerPink ]\n\n(Switch)\n\n[ Target LevelStart ] [ action BlueRight ] [ StayPinkRight ] [ Background ] -> [ Target LevelStart ] [ BlueRight ] [ StayPinkRight ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueRight ] [ StayPinkRight ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueRight ] [ PlayerPinkRight ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueRight ] [ StayPinkLeft ] [ Background ] -> [ Target LevelStart ] [ BlueRight ] [ StayPinkLeft ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueRight ] [ StayPinkLeft ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueRight ] [ PlayerPinkLeft ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueLeft ] [ StayPinkRight ] [ Background ] -> [ Target LevelStart ] [ BlueLeft ] [ StayPinkRight ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueLeft ] [ StayPinkRight ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueLeft ] [ PlayerPinkRight ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueLeft ] [ StayPinkLeft ] [ Background ] -> [ Target LevelStart ] [ BlueLeft ] [ StayPinkLeft ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueLeft ] [ StayPinkLeft ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueLeft ] [ PlayerPinkLeft ] [ Transition6 ]\n\n[ action PlayerPinkRight no FallBlock ] [ StayBlueRight ] [ Background ] -> [ PlayerPinkRight ] [ StayBlueRight ] [ Background action TransitionR1 ]\n[ PlayerPinkRight ] [ StayBlueRight ] [ TransitionR6 ] -> [ StayPinkRight ] [ PlayerBlueRight ] [ TransitionR6 ]\n[ action PlayerPinkRight no FallBlock ] [ StayBlueLeft ] [ Background ] -> [ PlayerPinkRight ] [ StayBlueLeft ] [ Background action TransitionR1 ]\n[ PlayerPinkRight ] [ StayBlueLeft ] [ TransitionR6 ] -> [ StayPinkRight ] [ PlayerBlueLeft ] [ TransitionR6 ]\n[ action PlayerPinkLeft no FallBlock ] [ StayBlueRight ] [ Background ] -> [ PlayerPinkLeft ] [ StayBlueRight ] [ Background action TransitionR1 ]\n[ PlayerPinkLeft ] [ StayBlueRight ] [ TransitionR6 ] -> [ StayPinkLeft ] [ PlayerBlueRight ] [ TransitionR6 ]\n[ action PlayerPinkLeft no FallBlock ] [ StayBlueLeft ] [ Background ] -> [ PlayerPinkLeft ] [ StayBlueLeft ] [ Background action TransitionR1 ]\n[ PlayerPinkLeft ] [ StayBlueLeft ] [ TransitionR6 ] -> [ StayPinkLeft ] [ PlayerBlueLeft ] [ TransitionR6 ]\n\n(Climb)\n\n[ Climbable ] -> [ ]\nhorizontal [ BGPink | ZonePink ] -> [ BGPink Climbable | ZonePink ]\nhorizontal [ BGPink | Block ] -> [ BGPink | Block Climbable ]\nhorizontal [ Block | Block ] -> [ Block Climbable | Block Climbable ]\n\ndown [ ClimbRight | BGPink ] -> [ PlayerPinkRight | BGPink ]\ndown [ ClimbRight | Block ] -> [ PlayerPinkRight | Block ]\nright [ ClimbRight | ZonePink ] -> [ > ClimbRight | ZonePink ]\nright [ ClimbRight | Climbable ] -> [ FallRight | Climbable ]\nright [ > PinkRight no FallBlock | Climbable ] -> [ up ClimbRight | Climbable ] sfx7\n\ndown [ ClimbLeft | BGPink ] -> [ PlayerPinkLeft | BGPink ]\ndown [ ClimbLeft | Block ] -> [ PlayerPinkLeft | Block ]\nleft [ ClimbLeft | ZonePink ] -> [ > ClimbLeft | ZonePink ]\nleft [ ClimbLeft | Climbable ] -> [ FallLeft | Climbable ]\nleft [ > PinkLeft no FallBlock | Climbable ] -> [ up ClimbLeft | Climbable ] sfx7\n\n(Push)\n\n[ > Player | Crate no GPlayer no PressX no TCount ] -> [ > Player | > Crate ]\n[ > Player no FallBlock | Block ] -> [ > Player | > Block ] sfx5\n[ > Player | GBlock no rigids no ZonePurple | no Wall no ZonePurple no OutLine no Crate ] -> [ > Player | > GBlock | ]\n\n[ StuckCursor ] -> [ ] (Stuck effect)\n[ StuckCursorAbove ] -> [ ]\nlate up [ StuckCursor | ] -> [ StuckCursor | StuckCursorAbove ]\n[ > PlayerBlueRight | GPlayer Crate ] -> [ WalkAnimBR1 | GPlayer action StuckCursor Crate ]\n[ > PlayerBlueLeft | GPlayer Crate ] -> [ WalkAnimBL1 | GPlayer action StuckCursor Crate ]\n[ > PlayerBlueRight | StuckRigid ] [ GPlayer ] -> [ WalkAnimBR1 | StuckRigid ] [ GPlayer action StuckCursor ]\n[ > PlayerBlueLeft | StuckRigid ] [ GPlayer ] -> [ WalkAnimBL1 | StuckRigid ] [ GPlayer action StuckCursor ]\n\n[ StuckRigid ] -> [ ]\n[ Rigid1 GPlayer ] [ Rigid1 ] -> [ Rigid1 GPlayer StuckRigid ] [ Rigid1 StuckRigid ]\n[ Rigid2 GPlayer ] [ Rigid2 ] -> [ Rigid2 GPlayer StuckRigid ] [ Rigid2 StuckRigid ]\n\nrigid [ > Player | RigidCrate rigid1 no StuckRigid ] -> [ > Player | > RigidCrate > rigid1 ]\n+ rigid [ moving RigidCrate rigid1 | RigidCrate rigid1 ] -> [ moving RigidCrate moving rigid1 | moving RigidCrate moving rigid1 ]\n+ rigid [ moving rigid1 | GBlock rigid1 ] -> [ moving rigid1 | moving GBlock moving rigid1 ]\n\nrigid [ > Player | RigidCrate rigid2 no StuckRigid ] -> [ > Player | > RigidCrate > rigid2 ]\n+ rigid [ moving RigidCrate rigid2 | RigidCrate rigid2 ] -> [ moving RigidCrate moving rigid2 | moving RigidCrate moving rigid2 ]\n+ rigid [ moving rigid2 | GBlock rigid2 ] -> [ moving rigid2 | moving GBlock moving rigid2 ]\n\n(RigidCrate)\n\n[ RigidDeco ] -> [ ]\nlate down [ rigid1 | no rigid1 ] -> [ rigid1 RigidD | CrateBelow ]\nlate up [ rigid1 | no rigid1 ] -> [ rigid1 | CrateAbove ]\nlate left [ rigid1 | no rigid1 ] -> [ rigid1 RigidL | ]\nlate right [ rigid1 RigidL | no rigid1 ] -> [ rigid1 RigidLR | ]\nlate right [ rigid1 no AboveDeco | no rigid1 ] -> [ rigid1 RigidR | ]\n\nlate up [ RigidL rigid1 | rigid1 no AboveDeco ] -> [ RigidL rigid1 | rigid1 AboveRigidL ]\nlate up [ RigidR rigid1 | rigid1 no AboveDeco ] -> [ RigidR rigid1 | rigid1 AboveRigidR ]\nlate up [ RigidLR rigid1 | rigid1 ] -> [ RigidLR rigid1 | rigid1 AboveRigidLR ]\n\nlate up [ RigidL rigid1 | rigid1 RigidR ] -> [ RigidL rigid1 | rigid1 AboveRigidLRwithR ]\nlate up [ RigidR rigid1 | rigid1 RigidL ] -> [ RigidR rigid1 | rigid1 AboveRigidLRwithL ]\n\nlate up [ rigid1 | CrateAbove ] -> [ rigid1 RigidU | CrateAbove ]\n\nlate left [ rigid1 RigidU | rigid1 no RigidU ] -> [ rigid1 RigidU | rigid1 RigidUL ]\nlate right [ rigid1 RigidU | rigid1 no RigidU ] -> [ rigid1 RigidU | rigid1 RigidUR ]\n\n\nlate down [ rigid2 | no rigid2 ] -> [ rigid2 RigidD | CrateBelow ]\nlate up [ rigid2 | no rigid2 ] -> [ rigid2 | CrateAbove ]\nlate left [ rigid2 | no rigid2 ] -> [ rigid2 RigidL | ]\nlate right [ rigid2 RigidL | no rigid2 ] -> [ rigid2 RigidLR | ]\nlate right [ rigid2 no AboveDeco | no rigid2 ] -> [ rigid2 RigidR | ]\n\nlate up [ RigidL rigid2 | rigid2 no AboveDeco ] -> [ RigidL rigid2 | rigid2 AboveRigidL ]\nlate up [ RigidR rigid2 | rigid2 no AboveDeco ] -> [ RigidR rigid2 | rigid2 AboveRigidR ]\nlate up [ RigidLR rigid2 | rigid2 ] -> [ RigidLR rigid2 | rigid2 AboveRigidLR ]\n\nlate up [ RigidL rigid2 | rigid2 RigidR ] -> [ RigidL rigid2 | rigid2 AboveRigidLRwithR ]\nlate up [ RigidR rigid2 | rigid2 RigidL ] -> [ RigidR rigid2 | rigid2 AboveRigidLRwithL ]\n\nlate up [ rigid2 | CrateAbove ] -> [ rigid2 RigidU | CrateAbove ]\n\nlate left [ rigid2 RigidU | rigid2 no RigidU ] -> [ rigid2 RigidU | rigid2 RigidUL ]\nlate right [ rigid2 RigidU | rigid2 no RigidU ] -> [ rigid2 RigidU | rigid2 RigidUR ]\n\n(Fall)\n\ndown [ FallRight | Ridable ] -> [ PlayerPinkRight | Ridable ]\ndown [ FallRight no Transition | no Ridable ] -> [ > FallRight | ]\ndown [ PinkRight no Transition | no Ridable ] -> [ > FallRight | ] sfx7\n\ndown [ FallLeft | BGPink ] -> [ PlayerPinkLeft | BGPink ]\ndown [ FallLeft | Block ] -> [ PlayerPinkLeft | Block ]\ndown [ FallLeft no Transition | no Ridable ] -> [ > FallLeft | ]\ndown [ PinkLeft no Transition | no Ridable ] -> [ > FallLeft | ] sfx7\n\n[ FallBlock ] -> [ ]\ndown [ Block no Transition | no ColBGPink no Block no Player ] [ PlayerFall ] -> [ > Block | ] [ PlayerFall FallBlock ] sfx1\n\n(ZonePink border)\n\n[ AddPinkL ] -> [ ]\n[ RemovePinkL ] -> [ ]\n[ AddPinkR ] -> [ ]\n[ RemovePinkR ] -> [ ]\n\nlate left [ no ZonePink no AddPinkL | ZonePink ] -> [ AddPinkLUD | ZonePink ]\nlate right [ no ZonePink no AddPinkR | ZonePink ] -> [ AddPinkRUD | ZonePink ]\n\nlate up [ AddPinkLUD | no ZonePink ] -> [ AddPinkLD | ]\nlate up [ AddPinkRUD | no ZonePink ] -> [ AddPinkRD | ]\n\nlate down [ AddPinkLUD | no ZonePink ] -> [ AddPinkLU | ]\nlate down [ AddPinkRUD | no ZonePink ] -> [ AddPinkRU | ]\n\nlate down [ AddPinkLD | no ZonePink ] -> [ | ]\nlate down [ AddPinkRD | no ZonePink ] -> [ | ]\n\nlate left [ ZonePink no RemovePinkL | no ZonePink ] -> [ ZonePink RemovePinkLUD | ]\nlate right [ ZonePink no RemovePinkR | no ZonePink ] -> [ ZonePink RemovePinkRUD | ]\n\nlate up [ RemovePinkLUD | ZonePink ] -> [ RemovePinkLD | ZonePink ]\nlate up [ RemovePinkRUD | ZonePink ] -> [ RemovePinkRD | ZonePink ]\n\nlate down [ RemovePinkLUD | ZonePink ] -> [ RemovePinkLU | ZonePink ]\nlate down [ RemovePinkRUD | ZonePink ] -> [ RemovePinkRU | ZonePink ]\n\nlate down [ RemovePinkLD | ZonePink ] -> [ | ZonePink ]\nlate down [ RemovePinkRD | ZonePink ] -> [ | ZonePink ]\n\nlate right [ RemovePinkRU | AddPinkLU ] -> [ RemovePinkRU | ]\nlate right [ RemovePinkRD | AddPinkLD ] -> [ RemovePinkRD | ]\n\nlate right [ RemovePinkRUD | AddPinkLU ] -> [ RemovePinkRUD | ]\nlate right [ RemovePinkRUD | AddPinkLD ] -> [ RemovePinkRUD | ]\n\nlate left [ RemovePinkLU | AddPinkRU ] -> [ RemovePinkLU | ]\nlate left [ RemovePinkLD | AddPinkRD ] -> [ RemovePinkLD | ]\n\nlate left [ RemovePinkLUD | AddPinkRU ] -> [ RemovePinkLUD | ]\nlate left [ RemovePinkLUD | AddPinkRD ] -> [ RemovePinkLUD | ]\n\nlate left [ AddPinkLUD | RemovePinkRUD ] -> [ | RemovePinkRUD ]\nlate right [ AddPinkRUD | RemovePinkLUD ] -> [ | RemovePinkLUD ]\nlate left [ AddPinkLUD | RemovePinkRU ] -> [ AddPinkLD | RemovePinkRU ]\nlate right [ AddPinkRUD | RemovePinkLU ] -> [ AddPinkRD | RemovePinkLU ]\nlate left [ AddPinkLUD | RemovePinkRD ] -> [ AddPinkLU | RemovePinkRD ]\nlate right [ AddPinkRUD | RemovePinkLD ] -> [ AddPinkRU | RemovePinkLD ]\nlate left [ AddPinkLU | RemovePinkRU ] -> [ | RemovePinkRU ]\nlate right [ AddPinkRU | RemovePinkLU ] -> [ | RemovePinkLU ]\nlate left [ AddPinkLD | RemovePinkRD ] -> [ | RemovePinkRD ]\nlate right [ AddPinkRD | RemovePinkLD ] -> [ | RemovePinkLD ]\n\n(Animation)\n\nright [ > PlayerBlueLeft ] -> [ > PlayerBlueRight ]\nright [ > WalkAnimBL1 ] -> [ > WalkAnimBR1 ]\nright [ > WalkAnimBL2 ] -> [ > WalkAnimBR2 ]\nright [ > WalkAnimBL3 ] -> [ > WalkAnimBR3 ]\n\nleft [ > PlayerBlueRight ] -> [ > PlayerBlueLeft ]\nleft [ > WalkAnimBR1 ] -> [ > WalkAnimBL1 ]\nleft [ > WalkAnimBR2 ] -> [ > WalkAnimBL2 ]\nleft [ > WalkAnimBR3 ] -> [ > WalkAnimBL3 ]\n\n[ WalkAnimBR3 ] -> [ PlayerBlueRight ]\n[ WalkAnimBR2 ] -> [ WalkAnimBR3 ]\n[ WalkAnimBR1 ] -> [ WalkAnimBR2 ]\n[ > PlayerBlueRight ] -> [ > WalkAnimBR1 ]\n\n[ WalkAnimBL3 ] -> [ PlayerBlueLeft ]\n[ WalkAnimBL2 ] -> [ WalkAnimBL3 ]\n[ WalkAnimBL1 ] -> [ WalkAnimBL2 ]\n[ > PlayerBlueLeft ] -> [ > WalkAnimBL1 ]\n\nright [ > PlayerPinkLeft ] -> [ > PlayerPinkRight ]\nright [ > WalkAnimPL1 ] -> [ > WalkAnimPR1 ]\nright [ > WalkAnimPL2 ] -> [ > WalkAnimPR2 ]\nright [ > WalkAnimPL3 ] -> [ > WalkAnimPR3 ]\n\nleft [ > PlayerPinkRight ] -> [ > PlayerPinkLeft ]\nleft [ > WalkAnimPR1 ] -> [ > WalkAnimPL1 ]\nleft [ > WalkAnimPR2 ] -> [ > WalkAnimPL2 ]\nleft [ > WalkAnimPR3 ] -> [ > WalkAnimPL3 ]\n\n[ WalkAnimPR3 ] -> [ PlayerPinkRight ]\n[ WalkAnimPR2 ] -> [ WalkAnimPR3 ]\n[ WalkAnimPR1 ] -> [ WalkAnimPR2 ]\n[ > PlayerPinkRight ] -> [ > WalkAnimPR1 ]\n\n[ WalkAnimPL3 ] -> [ PlayerPinkLeft ]\n[ WalkAnimPL2 ] -> [ WalkAnimPL3 ]\n[ WalkAnimPL1 ] -> [ WalkAnimPL2 ]\n[ > PlayerPinkLeft ] -> [ > WalkAnimPL1 ]\n\n[ stationary Player ] [ stationary GhostBlockAnim5 ] -> [ Player ] [ action GhostBlock ]\n[ stationary Player ] [ stationary GhostBlockAnim4 ] -> [ Player ] [ action GhostBlockAnim5 ]\n[ stationary Player ] [ stationary GhostBlockAnim3 ] -> [ Player ] [ action GhostBlockAnim4 ]\n[ stationary Player ] [ stationary GhostBlockAnim2 ] -> [ Player ] [ action GhostBlockAnim3 ]\n[ stationary Player ] [ stationary GhostBlockAnim1 ] -> [ Player ] [ action GhostBlockAnim2 ]\n[ stationary Player ] [ stationary GhostBlock ] -> [ Player ] [ action GhostBlockAnim1 ]\n\n[ GhostPlayerAbove ] -> [ ]\nlate up [ GPAboveAnim | ] -> [ GPAboveAnim | GhostPlayerAbove ]\n\n[ stationary Player ] [ stationary GhostPlayerAnim5 ] -> [ Player ] [ action GhostPlayer ]\n[ stationary Player ] [ stationary GhostPlayerAnim4 ] -> [ Player ] [ action GhostPlayerAnim5 ]\n[ stationary Player ] [ stationary GhostPlayerAnim3 ] -> [ Player ] [ action GhostPlayerAnim4 ]\n[ stationary Player ] [ stationary GhostPlayerAnim2 ] -> [ Player ] [ action GhostPlayerAnim3 ]\n[ stationary Player ] [ stationary GhostPlayerAnim1 ] -> [ Player ] [ action GhostPlayerAnim2 ]\n[ stationary Player ] [ stationary GhostPlayer ] -> [ Player ] [ action GhostPlayerAnim1 ]\n\n[ Background Transition1 ] [ Background no Transition1 ] -> [ Background Transition1 ] [ Background Transition1 ]\n[ stationary Transition9 ] -> [ ] again\n[ stationary Transition8 ] -> [ action Transition9 ] again\n[ stationary Transition7 ] -> [ action Transition8 ] again\n[ stationary Transition6 ] -> [ action Transition7 ] again\n[ stationary Transition5 ] -> [ action Transition6 ] again\n[ stationary Transition4 ] -> [ action Transition5 ] again\n[ stationary Transition3 ] -> [ action Transition4 ] again\n[ stationary Transition2 ] -> [ action Transition3 ] again\n[ stationary Transition1 ] -> [ action Transition2 ] again\n\n[ Background TransitionR1 ] [ Background no TransitionR1 ] -> [ Background TransitionR1 ] [ Background TransitionR1 ]\n[ stationary TransitionR9 ] -> [ ] again\n[ stationary TransitionR8 ] -> [ action TransitionR9 ] again\n[ stationary TransitionR7 ] -> [ action TransitionR8 ] again\n[ stationary TransitionR6 ] -> [ action TransitionR7 ] again\n[ stationary TransitionR5 ] -> [ action TransitionR6 ] again\n[ stationary TransitionR4 ] -> [ action TransitionR5 ] again\n[ stationary TransitionR3 ] -> [ action TransitionR4 ] again\n[ stationary TransitionR2 ] -> [ action TransitionR3 ] again\n[ stationary TransitionR1 ] -> [ action TransitionR2 ] again\n\n(Level start)\n\n[ Target no LevelStart ] [ Background no Transition ] -> [ Target ] [ Background Transition5 ]\n[ Target Transition9 no LevelStart ] -> [ Target LevelStart ]\n\n(Win)\n\ndown [ PlayerPink no WinAnim Target no FallBlock | Ridable ]-> [ PlayerPink WinAnim1 Target | Ridable ] sfx8\n\n[ WinAnim6 ] [ Background no Transition ] -> [ WinAnim6 ] [ Background Transition1 ]\n[ WinAnim5 ] -> [ WinAnim6 ]\n[ WinAnim4 ] -> [ WinAnim5 ]\n[ WinAnim3 ] -> [ WinAnim4 ]\n[ WinAnim2 ] -> [ WinAnim3 ]\n[ WinAnim1 ] -> [ WinAnim2 ]\n\n[ > Player WinAnim ] -> cancel\n[ action Player WinAnim ] -> cancel\n\n[ Target WinAnim6 Transition5 ] -> [ Target WinAnim6 Transition5 Winable ]\n\n(tutorial)\n\n[ Crate PressX no TCount ] [ PressX ] -> [ Crate TCount1 ] [ ]\n\n[ TCount5 ] -> [ ]\n[ TCount4 ] -> [ TCount5 ] message X or spacebar to switch characters.\n[ TCount3 ] -> [ TCount4 ]\n[ TCount2 ] -> [ TCount3 ]\n[ TCount1 ] -> [ TCount2 ]\n\n[ > Player ] [ Crate PressX ] -> [ Player ] [ Crate PressX ]\n[ > Player ] [ Crate TCount ] -> [ Player ] [ Crate TCount ]\n[ PlayerPink ] [ PressX ] -> [ PlayerPink ] [ ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Winable \n\n======= \nLEVELS\n=======\n\n\n(Tutorial)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,!xxxxxxxxxo,,,..'''p++++++++++'''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxxx\"xxxxxx,,,..'''p+①+①++++++'''.\n.,,,,,,x,xxxoxx,,,..''''''+'++++++'''.\n.,,,xxxxxxxx,xx,,,..'''++++++++'++'''.\n.,,,xxxxxxxxxxx,,,..'''+++①+++++++'''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,!xxxxxxxx,,,,..''''p++++++++''''.\n.,,,,,,,xxxxxx,,,,..'''''''++++++''''.\n.,,,,,,xxxxxox,,,,..''''''+++++++''''.\n.,,,,xxxxxx\",x,,,,..''''++++++①'+''''.\n.,,,,xx\"xxx\"xx,,,,..''''++①+++①++''''.\n.,,,,xx\"x,,,,,,,,,..''''++①+'''''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxx!xxxx,,,,..''''++++p++++''''.\n.,,,,xxxx\"xxxx,,,,..''''++++①++++''''.\n.,,,,x,,,,,,,x,,,,..''''+'''''''+''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxx\"xxx,,,,..''''+++++①+++''''.\n.,,,,xxx\"o,\"xx,,,,..''''+++①+'①++''''.\n.,,,,xx\",xx\"xx,,,,..''''++①'++①++''''.\n.,,,,xx\"xx,,,,,,,,..''''++①++''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxox,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xx!xx\"xx,,,,,,..'''++p++①++''''''.\n.,,,,,,,,,,,,$,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(二つでスタックのチュートリアル)\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxx!xxxoxxx,,,..'''+++%+++++++'''.\n.,,,,xx\"x\"xxxx,,,,..''''+++++++++''''.\n.,,,,#########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,b,*,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.xxxxxxxxxxxxxxxxx..+++++++++++++++++.\n.x,,,,,,,,,,,,,,,x..+'''''''''''''''+.\n.x,,,,,,b,*,,,,,,x..+''''''''+''''''+.\n.x,,xxxxxxxxxxx,,x..+''+++++++++++''+.\n.x,,xxx!xxxoxxx,,x..+''+++%+++++++''+.\n.x,,,xx\"x\"xxxx,,,x..+'''+++++++++'''+.\n.x,,,,,,,,,,,,,,,x..+'''''''''''''''+.\n.xxxxxxxxxxxxxxxxx..+++++++++++++++++.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(一個なら押しのけて登れる)\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,xxxxxx,,,,,..''''''++++++'''''.\n.,,,,,,x\",x\"x,,,,,..''''''++'+++'''''.\n.,,,,,,,!,,,x,,,,,..'''''''%'''+'''''.\n.,,,,#b,,,*,x,,,,,..'''''''''''+'''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,oxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,,,,xxxxxx,,,,..'''''''++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage Reach the heart to win.\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,x!xxxxxox,,,,..''''+p+++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage You can climb one square.\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxox,,,,..''''+石+++++++''''.\n.,,,,,!,,,,,,,,,,,..'''''p'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage You can only push one block at a time.\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxox,,,,..''''+++++++++''''.\n.,,,,x!\"xxxx\"x,,,,..''''+p石++++石+''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 1. Two Worlds\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,!xxx,b,xxxxxo,,..''%+++'''++++++''.\n.,,,xxx,,,xxxx,,,,..'''+++'''++++''''.\n.,,,xxx,,,xxxx,,,,..'''+++'''++++''''.\n.,,,xxx,,,xxx,,,,,..'''+++'''+++'''''.\n.,,,xxxx*x\"xx,,,,,..'''++++'++++'''''.\n.,,,xxx,,,,,,,,,,,..'''+++'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,文,,,,,,,,..'''''''''''''''''.\n.,,,!xxx,,,xxxo,,,..'''%+++'''++++'''.\n.,,,,xxxx*xxx,,,,,..''''++++'+++'''''.\n.,,,,xxx,,,xx,,,,,..''''+++'''++'''''.\n.,,,,,,,,文,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 2. Delivery\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,oxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,,xxxxxx,,,,,..''''''++++++'''''.\n.,,,,,,x!x\"xx,,,,,..''''''+%++++'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,b*,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 3. One-way Tickets\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx,,,,,,,,,,,..''''++'''''''''''.\n.,,,,x\",,,b*,,,,,,..''''++'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx########,,,..''''++'''''''''''.\n.,,,,xxxxxxxxxx,,,..''''++++++++++'''.\n.,,,,xxxxxxxxxx,,,..''''++++++++++'''.\n.,,,,xxx!xxxoxx,,,..''''+++%++++++'''.\n.,,,,#xx\"x\"xxxx,,,..'''''+++++++++'''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(message Brain training\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,b*,,x\"x,,,,,,,..'''''''+++'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxx!xxxxxxx,,,..'''+++%+++++++'''.\n.,,,xxx,,,,,xxx,,,..'''+++'''''+++'''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxxxxx\"xxxx,,,..'''+++++++++++'''.\n.,,,xxxx\"o,\"xxx,,,..'''++++++'++++'''.\n.,,,xxx\",xx\"xx,,,,..'''++++'+++++''''.\n.,,,,xx\"xx####,,,,..''''+++++''''''''.\n.,,,,######,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(message 2 x 3\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,##,,,,,##,,,,..'''''''''''''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#,\"x\"x\",#,,,,..''''''+++++''''''.\n.,,,,#,,b,*,,#,,,,..'''''''''''''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,xxxxo,,,,,,..''''''+++++''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,xx!xx,,,,,,..''''''++%++''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,##,,,,,##,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 4. 3 x 6\n\n\n......................................\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,b*,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxo,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,!xxxxx,,,,,,..'''''%+++++''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,##########,,,,..'''''''''''''''''.\n.,,,#,,,,,,,,#,,,,..'''''''''''''''''.\n.,,,#,\"!\"x\"x,#,,,,..'''''+p++++''''''.\n.,,,#b,,,*,,,#,,,,..'''''''''''''''''.\n.,,,#,xxxxxx##,,,,..'''''++++++''''''.\n.,,,#,*,,,,,,o,,,,..''''''''''''+''''.\n.,,,#,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,,,,,,,,#,,,,..'''''''''''''''''.\n.,,,##########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 5. Too Small to Climb\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,ox\"#,,,,,,..'''''''+++'''''''.\n.,,,,,,,,,\"#,,,,,,..'''''''''+'''''''.\n.,,,,,,,x,\"#,,,,,,..'''''''+'+'''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,!b*,,,,,,,..'''''''%'''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,b@,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,@,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,oxxx,,,,,,,..''''''++++'''''''.\n.,,,,,#,xxx,,,,,,,..'''''''+++'''''''.\n.,,,,,!,xxx,,,,,,,..'''''%'+++'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 6. I Hope That's Enough\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,xox,,,,,..''''''''++++'''''.\n.,,,,,,,,,xxx\"xx,,..''''''''+++++++''.\n.,,,,,,,,,,,,\"xx,,..''''''''''''+++''.\n.,,######xxxx\"xx,,..''''''''+++++++''.\n.,,#,,,!#x\",,,,,,,..''''''%'++'''''''.\n.,,#,*,,xx\"x,*,*,,..'''''''++++''''''.\n.,,####,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,##,,,,,,b,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 7. The Larger, the Better\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,#,#,#,#,#,#,..'''''''''''''''''.\n.,,,,,xxxxxo,,,,,,..'''''++++++''''''.\n.,,,,,xx\",,,,,,,,,..'''''+++'''''''''.\n.,,,,,xx\",,,,,,,,,..'''''+++'''''''''.\n.,,,,,!x\",@@@@,,,,..'''''%++'''''''''.\n.,#,#,#,#,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,b,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 8. Cut the Screen\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,oxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,@@@@@@@,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"x#x,,,,,..'''''+++++'+'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,x!x\"xxx,,,,,..'''''+%+++++'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,oxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,2222222,,,,,..'''''''''''''''''.\n.,x,,,xxx\"xxx,,,,,..'+'''+++++++'''''.\n.,,,,,@@@@@@@,,,,,..'''''''''''''''''.\n.,,,,,,xxxx!x,,,,,..''''''++++%+'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 9. Transfer\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.#################..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,xx,,,2b@@@,,o,,..''++''''''''''+''.\n.,,!\",222,@,,,,x,,..''%+''''''''''+''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.#################..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 10. Do You Like Math Puzzles?\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,b,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,\"@#xx#xx#xx#x#..'''+''++++++++'+'.\n.,,\"\"@#xxxxxxxxxx#..''++''++++++++++'.\n.,,\"\"@#xx,xx,xx,o#..''++''++'++'++'+'.\n.,,,,@#!x,xx,xx,x#..''''''%+'++'++'+'.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 11. Haste Makes Waste\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,xxx,,,,,,,..'''''''+++'''''''.\n.,,xxx,,,,,,,xxx,,..''+++'''''''+++''.\n.,,xx\",,@@@,,xox,,..''+++'''''''+++''.\n.,,!x\",,@@@,,xxx,,..''%++'''''''+++''.\n.,,###,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 12. Neither Road Leads to Rome\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,#############,,,..'''''''''''''''''.\n.,#,,,,!\"\"\"x\"x###,..''''''%+++++++++'.\n.,#b@@,,,,,,,,xo#,..'''''''''''''+++'.\n.,#,,,,xxxxxx,xx#,..''''''++++++'+++'.\n.,#,,,,,,,,,,,###,..'''''''''''''''''.\n.,#############,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 13. This Elevator Will Be Taking No Passengers\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,o\"\"\"\"\",,,,,,..'''''++++++''''''.\n.,,b*,,\"\"\"\"\",,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.####xxx,,,xxx####..''''+++'''+++''''.\n.,,,,xxx@@@xxx,,,,..''''+++'''+++''''.\n.,,,,xxx@@@xxx,,,,..''''+++'''+++''''.\n.,,,,xxx,,,xxx,,,,..''''+++'''+++''''.\n.,,,,xxx,,,xxx,,,,..''''+++'''+++''''.\n.,,,,x!x,,,xxx,,,,..''''+%+'''+++''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................)\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx\"\"\"\"\"xx,,,,..''''+++++++++''''.\n.,b*,xx\"\"\"\"\"xx,,,,..''''+++++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#oxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#,xx@@@xxx#,,,..'''''++'''+++''''.\n.,,,#xxx@@@xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#x!x,,,xxx#,,,..''''+%+'''+++''''.\n.,,,###,,,,,###,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,xxxx\"\"\"xx,,,,..''''+++++++++''''.\n.,,,,xxx\"\"\"\"xx,,,,..''''+++++++++''''.\n.,b*,xx,\"\"\"\"xx,,,,..''''++'++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#oxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#,xx@@@xxx#,,,..'''''++'''+++''''.\n.,,,#xxx@@@xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#x!x,,,xxx#,,,..''''+%+'''+++''''.\n.,,,###,,,,,###,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 14. 3 x 21\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,#,,xxx\"\"\"o,,..''''''''+++++++''.\n.,,,,@@@,xxx\"\"\",,,..''''''''++++++'''.\n.,,,,@@@#\"\"\"\"\"\",,,..''''''''++++++'''.\n.,,,#@@@,\"\"\"\"\"\",,,..''''''''++++++'''.\n.,,,,@@@,\"\"\"\"\"\",#,..''''''''++++++'''.\n.,,,,@@@,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#,,,,b,,22,,,,..'''''''''''''''''.\n.,,,x!,,,,,,,2,,,,..'''+%''''''''''''.\n.,,,,#,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,#,#,#,#,#,..'''''''''''''''''.\n.,,,,,#,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\nmessage Thanks for playing!\n\n\n(......................................\n.,,,,,#,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#o,b,#,,,,,,..''''''+''''''''''.\n.,,,,,,,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#,*,*#,,,,,,..'''''''''''''''''.\n.,,,,,#,@@@#,,,,,,..'''''''''''''''''.\n.,,,,,#,@@@##,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,##,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,x,,#,,,,,..''''''''%''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,b,,,,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,o,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,\",,,,,,#,,..'''''''+'''''''''.\n.,*,*,*,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,#,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,@@,@@@#,,,,,,#,,..'''''''''''''''''.\n.,@@,,@@,,,,,,,,,,..'''''''''''''''''.\n.,@@@@@@#,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,#,!,#,#,,..''''''''''%''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,##!######,,,,..''''''%''''''''''.\n.,,,,#,,,,,,o#,,,,..'''''''''''+'''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#,,@b2,,#,,,,..'''''''+'+'''''''.\n.,,,,#,@@,22,#,,,,..''''''++'++''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,x\"\"\"x,,,,,,..''''''+++++''''''.\n.,,,,,,\"\"\"\"\",,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,#,xxx,,,,,oxx,#,..'''+++'''''+++'''.\n.,#,xxx,222,xxx,#,..'''+++'''''+++'''.\n.,#,xxx,,,,,xxx,#,..'''+++'''''+++'''.\n.,#,xxx,@@,,xxx,#,..'''+++'''''+++'''.\n.,#,x!x,,,,,xxx,#,..'''+%+'''''+++'''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,\"o,,#,,,..'''''''''++''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#xxx,,,,xxx#,,,..'''+++''''+++''''.\n.,,#xxx,,,,\"xx#,,,..'''+++''''+++''''.\n.,,#xxx,,,,\"xx#,,,..'''+++''''+++''''.\n.,,#xxx,2@,\"xx#,,,..'''+++''''+++''''.\n.,,#!xx22@@\"xx#,,,..'''%++''''+++''''.\n.,,#,,,2,,@,,,#,,,..'''''''''''''''''.\n.,,#,,,2,,@,,,#,,,..'''''''''''''''''.\n.,,#,b,22@@,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n......................................)",["tick","tick","tick","tick","tick","tick","tick","tick",2,"tick",2,"tick","tick",2,"tick","tick","tick",2,"tick",2,"tick","tick","tick","tick","tick","tick","tick",1,"tick","tick",2,"tick","tick","tick",3,"tick","tick","tick","tick",1,"tick",4,"tick","tick","tick",3,"tick",3,"tick","tick","tick",3,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background colbgpink outline:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background bgblue:1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,background bgblue zonepurple:2,background bgblue zonepurplebelow:3,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,2,2,2,3,1,1,1,1,0,0,1,1,1,1,1,1,2,2,background bgblue ghostplayeranim1 zonepurple:4,3,1,1,1,1,0,0,1,\n1,1,1,1,1,2,2,2,3,1,1,1,1,0,0,1,1,1,1,1,1,1,2,3,background bgblue stayblueleft:5,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,2,background bgblue crateabove zonepurplebelow:6,background bgblue crate crateline:7,background bgblue cratebelow:8,1,1,1,0,0,1,1,1,1,1,1,2,2,2,3,1,1,1,\n1,0,0,1,1,1,1,1,1,2,2,2,3,1,1,1,1,0,0,1,1,1,1,1,1,2,3,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,background ghosttarget zonepurple:9,3,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background bgpink colbgpink:10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,\n10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,background bgpink climbable colbgpink:11,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,background removepinklud zonepink:12,addpinkru background bgpink climbable colbgpink:13,11,10,10,\n10,10,10,0,0,10,10,10,10,10,10,background zonepink:14,14,background removepinkld zonepink:15,10,10,10,10,10,0,0,10,10,10,10,10,10,14,14,background playerpinkright zonepink:16,10,10,10,10,10,0,0,10,\n10,10,10,10,10,background removepinkru zonepink:17,14,background removepinkrd zonepink:18,10,10,10,10,10,0,0,10,10,10,10,10,10,addpinkld background bgpink climbable colbgpink:19,background removepinkrud zonepink:20,addpinklu background bgpink climbable colbgpink:21,10,10,10,10,10,0,0,10,10,10,10,10,10,10,\n11,10,11,10,10,10,10,0,0,10,10,10,10,10,10,addpinkrd background bgpink climbable colbgpink:22,12,13,background removepinklud removepinkrud zonepink:23,10,10,10,10,0,0,10,10,10,10,10,10,background removepinklu zonepink:24,14,15,11,10,10,10,\n10,0,0,10,10,10,10,10,10,14,14,18,10,10,10,10,10,0,0,10,10,10,10,10,10,14,21,11,10,10,10,10,10,0,0,10,10,10,\n10,10,10,background levelstart removepinkrud target zonepink:25,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,11,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,10,10,10,\n10,10,10,10,10,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n","7","1627769807359.2505"] + ["title Two Worlds\nauthor nebu soku\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\nrealtime_interval 0.1\nagain_interval 0.05\nbackground_color #282818\ntext_color #c8c8a8\nflickscreen 19x16\n\n========\nOBJECTS\n========\n\nBackground \n#282818\n\nOutLine\n#282818\n\nBGBlue\n#c8c8a8 #c1e4f0\n\nBGPink\n#282818 #f8cefd\n\nTarget \n#a0a088\n00.00\n00000\n00000\n.000.\n..0..\n\nGhostTarget \n#a0a088\n00.00\n00000\n00000\n.000.\n..0..\n\nWall \n#a0a088 #686850 #282818\n01000\n02010\n00020\n00000\n11111\n\nWallAbove\n#a0a088\n.....\n.....\n.....\n.....\n00000\n\nWallBelow\n#686850\n00000\n.....\n.....\n.....\n.....\n\nZonePurple\n#282818 #a0a088 #3d1e7e\n00000\n00000\n00100\n00000\n00000\n\nZonePurpleBelow\n#686850 #a0a088\n00000\n.....\n.....\n.....\n.....\n\nZonePink\n#c8c8a8 #ef90e3\n\nPlayerBlueRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850 #54b4d5\n.0000\n.0000\n.0121\n5.33.\n..34.\n\nWalkAnimBR1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850(#4fbbdf #608b8c #d5f5f6 #1d7788 #1a6978 #53aecc)\n.0000\n.0000\n.0121\n5.33.\n.....\n\nWalkAnimBR2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n.4..3\n\nWalkAnimBR3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n..3..\n\nPlayerBlueLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.43..\n\nWalkAnimBL1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.....\n\nWalkAnimBL2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n3..4.\n\nWalkAnimBL3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n..3..\n\nStayBlueRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n..34.\n\nStayBlueLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.43..\n\nPlayerPinkRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818(#de4fdd #8a608b #f6d4f5 #871d86 #741978 #cc52c9 #d153d5)\n.5000\n.0000\n.0121\n..33.\n..34.\n\nWalkAnimPR1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.....\n\nWalkAnimPR2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nWalkAnimPR3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n..3..\n\nPlayerPinkLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.43..\n\nWalkAnimPL1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.....\n\nWalkAnimPL2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nWalkAnimPL3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n..3..\n\nStayPinkRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n..34.\n\nStayPinkLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.43..\n\nFallRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nFallLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nClimbRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nClimbLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nGhostPlayer\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAbove\n#c8c8a8\n.....\n.....\n.....\n.....\n.000.\n\nGhostPlayerAnim1\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAnim2\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAnim3\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nGhostPlayerAnim4\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nGhostPlayerAnim5\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nStuckRigid\nblack\n\nStuckCursor\n#282818\n0...0\n0...0\n0...0\n00000\n.....\n\nStuckCursorAbove\n#282818\n.....\n.....\n.....\n.....\n00000\n\nCrate \n#a0a088 #686850 #282818 #c8c8a8\n01110\n02220\n02020\n00000\n11111\n\nCrateAbove\n#a0a088\n.....\n.....\n.....\n.....\n00000\n\nCrateBelow\n#686850\n00000\n.....\n.....\n.....\n.....\n\nCrateLine\n#a0a088\n.....\n.....\n.....\n00000\n.....\n\nRigidCrate\n#a0a088 #282818\n11111\n11111\n11011\n11111\n11111\n\nRigidU\n#686850\n00000\n.....\n.....\n.....\n.....\n\nRigidUL\n#686850\n....0\n.....\n.....\n.....\n.....\n\nRigidUR\n#686850\n0....\n.....\n.....\n.....\n.....\n\nRigidD\n#a0a088 #686850\n.....\n.....\n.....\n00000\n11111\n\nRigidL\n#a0a088\n0....\n0....\n0....\n0....\n0....\n\nRigidR\n#a0a088\n....0\n....0\n....0\n....0\n....0\n\nRigidLR\n#a0a088\n0...0\n0...0\n0...0\n0...0\n0...0\n\nAboveRigidL\n#a0a088\n.....\n.....\n.....\n0....\n0....\n\nAboveRigidR\n#a0a088\n.....\n.....\n.....\n....0\n....0\n\nAboveRigidLR\n#a0a088\n.....\n.....\n.....\n0...0\n0...0\n\nAboveRigidLRwithR\n#a0a088\n....0\n....0\n....0\n0...0\n0...0\n\nAboveRigidLRwithL\n#a0a088\n0....\n0....\n0....\n0...0\n0...0\n\nrigid1\nblack\n\nrigid2\nblack\n\nBlock \n#c8c8a8 #a0a088 #686850\n12222\n21112\n21112\n21112\n22221\n\nGhostBlock\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim1\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim2\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim3\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\nGhostBlockAnim4\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\nGhostBlockAnim5\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\n\nClimbable\npink\n\nColBGPink\nblack\n.....\n.....\n.....\n.....\n.....\n\nFallBlock\nblack\n\nWinable\nblack\n\nAddPinkLUD\n#c8c8a8\n0....\n.....\n.....\n.....\n0....\n\nAddPinkLU\n#c8c8a8\n0....\n.....\n.....\n.....\n.....\n\nAddPinkLD\n#c8c8a8\n.....\n.....\n.....\n.....\n0....\n\nAddPinkRUD\n#c8c8a8\n....0\n.....\n.....\n.....\n....0\n\nAddPinkRU\n#c8c8a8\n....0\n.....\n.....\n.....\n.....\n\nAddPinkRD\n#c8c8a8\n.....\n.....\n.....\n.....\n....0\n\nRemovePinkLUD\n#282818\n0....\n.....\n.....\n.....\n0....\n\nRemovePinkLU\n#282818\n0....\n.....\n.....\n.....\n.....\n\nRemovePinkLD\n#282818\n.....\n.....\n.....\n.....\n0....\n\nRemovePinkRUD\n#282818\n....0\n.....\n.....\n.....\n....0\n\nRemovePinkRU\n#282818\n....0\n.....\n.....\n.....\n.....\n\nRemovePinkRD\n#282818\n.....\n.....\n.....\n.....\n....0\n\nTransition1\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransition2\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransition3\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransition4\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransition5\n#282818\n00000\n00000\n00000\n00000\n00000\n\nTransition6\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransition7\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransition8\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransition9\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransitionR1\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransitionR2\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransitionR3\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransitionR4\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransitionR5\n#282818\n00000\n00000\n00000\n00000\n00000\n\nTransitionR6\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransitionR7\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransitionR8\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransitionR9\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nHide\n#c8c8a8\n\nWinAnim1\n#c8c8a8\n.....\n.0...\n.....\n.....\n.....\n\nWinAnim2\n#c8c8a8\n.....\n.0...\n.....\n.....\n.....\n\nWinAnim3\n#c8c8a8\n.0...\n000..\n.0...\n...0.\n.....\n\nWinAnim4\n#c8c8a8\n.....\n.0...\n...0.\n..000\n...0.\n\nWinAnim5\n#c8c8a8\n.....\n.....\n.....\n...0.\n.....\n\nWinAnim6\n#c8c8a8\n.....\n.....\n.....\n.....\n.....\n\nLevelStart\n#282818\n\nPressX\n#686850 #282818\n0.0.0\n0.0.0\n00.00\n0.0.0\n0.0.0\n\nTCount1\nblack\n\nTCount2\nblack\n\nTCount3\nblack\n\nTCount4\nblack\n\nTCount5\nblack\n\n=======\nLEGEND\n=======\n\nBlueRight = PlayerBlueRight or WalkAnimBR1 or WalkAnimBR2 or WalkAnimBR3\nBlueLeft = PlayerBlueLeft or WalkAnimBL1 or WalkAnimBL2 or WalkAnimBL3\nPlayerBlue = BlueRight or BlueLeft\n\nPinkRight = PlayerPinkRight or WalkAnimPR1 or WalkAnimPR2 or WalkAnimPR3 \nPinkLeft = PlayerPinkLeft or WalkAnimPL1 or WalkAnimPL2 or WalkAnimPL3\nPlayerPink = PinkRight or PinkLeft\nPlayerFall = PlayerPink or FallRight or FallLeft\n\nPlayer = PlayerBlue or PlayerPink or ClimbRight or ClimbLeft\nPlayerMove = PlayerBlue or PlayerPink\n\nGBlock = GhostBlock or GhostBlockAnim1 or GhostBlockAnim2 or GhostBlockAnim3 or GhostBlockAnim4 or GhostBlockAnim5\n\nGPlayer = GhostPlayer or GhostPlayerAnim1 or GhostPlayerAnim2 or GhostPlayerAnim3 or GhostPlayerAnim4 or GhostPlayerAnim5\nGPAboveAnim = GhostPlayerAnim3 or GhostPlayerAnim4 or GhostPlayerAnim5\n\nRidable = BGPink or Block or ColBGPink\n\nRigids = rigid1 or rigid2\n\nAboveDeco = AboveRigidL or AboveRigidR or RigidL or RigidR or RigidLR\nRigidDeco = RigidU or AboveDeco or RigidD or AboveRigidLR or AboveRigidLRwithR or AboveRigidLRwithL or RigidUL or RigidUR\n\nAddPinkL = AddPinkLUD or AddPinkLU or AddPinkLD\nAddPinkR = AddPinkRUD or AddPinkRU or AddPinkRD\n\nRemovePinkL = RemovePinkLUD or RemovePinkLU or RemovePinkLD\nRemovePinkR = RemovePinkRUD or RemovePinkRU or RemovePinkRD\n\nTransition = Transition1 or Transition2 or Transition3 or Transition4 or Transition5 or Transition6 or Transition7 or Transition8 or Transition9\nTransitionR = TransitionR1 or TransitionR2 or TransitionR3 or TransitionR4 or TransitionR5 or TransitionR6 or TransitionR7 or TransitionR8 or TransitionR9\n\nWinAnim = WinAnim1 or WinAnim2 or WinAnim3 or WinAnim4 or WinAnim5 or WinAnim6\nTCount = TCount1 or TCount2 or TCount3 or TCount4\n\n. = Background\n, = BGBlue\n' = BGPink\n# = Wall and BGBlue\nB = PlayerBlueRight and BGBlue\nP = PlayerPinkRight and ZonePink\n* = Crate and BGBlue\n@ = RigidCrate and rigid1 and BGBlue\n2 = RigidCrate and rigid2 and BGBlue\nO = GhostTarget and ZonePurple\nx = ZonePurple and BGBlue\n+ = ZonePink\n\" = GhostBlock and ZonePurple and BGBlue\n! = GhostPlayer and ZonePurple and BGBlue\n($ = StayBlueRight and BGBlue)\n% = StayPinkRight and ZonePink\n石 = Block and ZonePink\n文 = PressX and BGBlue\n\n=======\nSOUNDS\n=======\n\nPlayerMove move 15203103\nCrate move 80987507\nRigidCrate move 80987507\nBlock action 70814309\nStuckCursor action 20002502 (boo)\nZonePurple move 95712903\nZonePink action 52706103\nTransition1 action 54782309\nTransitionR1 action 54782309\n\nsfx0 30806303\nsfx1 91797700 (fall)\nsfx2 99718300\nsfx3 65480100\nsfx4 80396503 (jump1)\nsfx5 80987507 (block)\nsfx6 45846907\nsfx7 28015305 (jump2)\nsfx8 10636903\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPressX\nTCount, TCount5\nLevelStart\nClimbable\nFallBlock\nWinable\nrigids\nStuckRigid\nBGBlue\nZonePink\nBGPink\nWallBelow\nTarget\nHide\nCrateBelow, ZonePurpleBelow\nPlayer, Wall, Crate, ZonePurple, StayBlueRight, StayBlueLeft, StayPinkRight, StayPinkLeft, FallRight, FallLeft, ClimbRight, ClimbLeft, Block, ColBGPink, RigidCrate\nRemovePinkL\nRemovePinkR\nGhostTarget\nRigidU, RigidUL, RigidUR\nGPlayer\nAboveRigidL, AboveRigidR, RigidL, RigidR, RigidLR\nRigidD, AboveRigidLR, AboveRigidLRwithR, AboveRigidLRwithL\nCrateAbove\nStuckCursorAbove\nWallAbove\nGBlock\nGhostPlayerAbove\nCrateLine\nStuckCursor\nAddPinkL\nAddPinkR\nOutLine\nWinAnim\nTransition, TransitionR\n\n======\nRULES \n====== \n[ > Player ] [ FallBlock ] -> cancel (bug?) \n\n(int)\n\n[ > Player Transition ] -> [ Player Transition ]\n[ ColBGPink ] -> [ ]\n[ BGPink ] -> [ BGPink ColBGPink ]\n[ Background no BGBlue no BGPink no ZonePurple no ZonePink ] -> [ Background OutLine ColBGPink ]\n\nright [ GhostTarget | | | | | | | | | | | | | | | | | | | ] -> [ GhostTarget | | | | | | | | | | | | | | | | | | | Target ]\n\ndown [ ZonePurple | no ZonePurple ] -> [ ZonePurple | ZonePurpleBelow ]\n\nup [ Wall | ] -> [ Wall | WallAbove ]\ndown [ Wall | ] -> [ Wall | WallBelow ]\n\n(Crate-ZonePink)\n\n[ CrateAbove ] -> [ ]\n[ CrateBelow ] -> [ ]\n[ CrateLine ] -> [ ]\nlate up [ | Crate | ] -> [ CrateBelow | Crate CrateLine | CrateAbove ]\n(late down [ Crate | ] -> [ Crate | CrateBelow ])\n\nlate right [ no Crate no ZonePurple no RigidCrate | | | | | | | | | | | | | | | | | | | ZonePink ] -> [ | | | | | | | | | | | | | | | | | | | BGPink ]\nlate right [ PlayerPink ] [ Crate | | | | | | | | | | | | | | | | | | | BGPink ] -> [ PlayerPink ] [ Crate | | | | | | | | | | | | | | | | | | | ZonePink ]\nlate right [ PlayerPink ] [ RigidCrate | | | | | | | | | | | | | | | | | | | BGPink ] -> [ PlayerPink ] [ RigidCrate | | | | | | | | | | | | | | | | | | | ZonePink ]\n\n(Block-GhostBlock)\n\n[ PlayerPink ] [ GBlock ] -> [ PlayerPink ] [ ]\nright [ PlayerPink ] [ | | | | | | | | | | | | | | | | | | | Block ] -> [ PlayerPink ] [ GhostBlock | | | | | | | | | | | | | | | | | | | Block ]\n\n[ PlayerBlue ] [ Block ] -> [ PlayerBlue ] [ ]\nright [ PlayerBlue ] [ GBlock | | | | | | | | | | | | | | | | | | | ] -> [ PlayerBlue ] [ GBlock | | | | | | | | | | | | | | | | | | | Block ]\n\n(Player-GhostPlayer)\n\n[ PlayerPink ] [ GPlayer ] -> [ PlayerPink ] [ ]\nright [ PlayerPink ] [ | | | | | | | | | | | | | | | | | | | PlayerPink ] -> [ PlayerPink ] [ GhostPlayer | | | | | | | | | | | | | | | | | | | PlayerPink ]\n\n(Switch)\n\n[ Target LevelStart ] [ action BlueRight ] [ StayPinkRight ] [ Background ] -> [ Target LevelStart ] [ BlueRight ] [ StayPinkRight ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueRight ] [ StayPinkRight ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueRight ] [ PlayerPinkRight ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueRight ] [ StayPinkLeft ] [ Background ] -> [ Target LevelStart ] [ BlueRight ] [ StayPinkLeft ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueRight ] [ StayPinkLeft ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueRight ] [ PlayerPinkLeft ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueLeft ] [ StayPinkRight ] [ Background ] -> [ Target LevelStart ] [ BlueLeft ] [ StayPinkRight ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueLeft ] [ StayPinkRight ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueLeft ] [ PlayerPinkRight ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueLeft ] [ StayPinkLeft ] [ Background ] -> [ Target LevelStart ] [ BlueLeft ] [ StayPinkLeft ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueLeft ] [ StayPinkLeft ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueLeft ] [ PlayerPinkLeft ] [ Transition6 ]\n\n[ action PlayerPinkRight no FallBlock ] [ StayBlueRight ] [ Background ] -> [ PlayerPinkRight ] [ StayBlueRight ] [ Background action TransitionR1 ]\n[ PlayerPinkRight ] [ StayBlueRight ] [ TransitionR6 ] -> [ StayPinkRight ] [ PlayerBlueRight ] [ TransitionR6 ]\n[ action PlayerPinkRight no FallBlock ] [ StayBlueLeft ] [ Background ] -> [ PlayerPinkRight ] [ StayBlueLeft ] [ Background action TransitionR1 ]\n[ PlayerPinkRight ] [ StayBlueLeft ] [ TransitionR6 ] -> [ StayPinkRight ] [ PlayerBlueLeft ] [ TransitionR6 ]\n[ action PlayerPinkLeft no FallBlock ] [ StayBlueRight ] [ Background ] -> [ PlayerPinkLeft ] [ StayBlueRight ] [ Background action TransitionR1 ]\n[ PlayerPinkLeft ] [ StayBlueRight ] [ TransitionR6 ] -> [ StayPinkLeft ] [ PlayerBlueRight ] [ TransitionR6 ]\n[ action PlayerPinkLeft no FallBlock ] [ StayBlueLeft ] [ Background ] -> [ PlayerPinkLeft ] [ StayBlueLeft ] [ Background action TransitionR1 ]\n[ PlayerPinkLeft ] [ StayBlueLeft ] [ TransitionR6 ] -> [ StayPinkLeft ] [ PlayerBlueLeft ] [ TransitionR6 ]\n\n(Climb)\n\n[ Climbable ] -> [ ]\nhorizontal [ BGPink | ZonePink ] -> [ BGPink Climbable | ZonePink ]\nhorizontal [ BGPink | Block ] -> [ BGPink | Block Climbable ]\nhorizontal [ Block | Block ] -> [ Block Climbable | Block Climbable ]\n\ndown [ ClimbRight | BGPink ] -> [ PlayerPinkRight | BGPink ]\ndown [ ClimbRight | Block ] -> [ PlayerPinkRight | Block ]\nright [ ClimbRight | ZonePink ] -> [ > ClimbRight | ZonePink ]\nright [ ClimbRight | Climbable ] -> [ FallRight | Climbable ]\nright [ > PinkRight no FallBlock | Climbable ] -> [ up ClimbRight | Climbable ] sfx7\n\ndown [ ClimbLeft | BGPink ] -> [ PlayerPinkLeft | BGPink ]\ndown [ ClimbLeft | Block ] -> [ PlayerPinkLeft | Block ]\nleft [ ClimbLeft | ZonePink ] -> [ > ClimbLeft | ZonePink ]\nleft [ ClimbLeft | Climbable ] -> [ FallLeft | Climbable ]\nleft [ > PinkLeft no FallBlock | Climbable ] -> [ up ClimbLeft | Climbable ] sfx7\n\n(Push)\n\n[ > Player | Crate no GPlayer no PressX no TCount ] -> [ > Player | > Crate ]\n[ > Player no FallBlock | Block ] -> [ > Player | > Block ] sfx5\n[ > Player | GBlock no rigids no ZonePurple | no Wall no ZonePurple no OutLine no Crate ] -> [ > Player | > GBlock | ]\n\n[ StuckCursor ] -> [ ] (Stuck effect)\n[ StuckCursorAbove ] -> [ ]\nlate up [ StuckCursor | ] -> [ StuckCursor | StuckCursorAbove ]\n[ > PlayerBlueRight | GPlayer Crate ] -> [ WalkAnimBR1 | GPlayer action StuckCursor Crate ]\n[ > PlayerBlueLeft | GPlayer Crate ] -> [ WalkAnimBL1 | GPlayer action StuckCursor Crate ]\n[ > PlayerBlueRight | StuckRigid ] [ GPlayer ] -> [ WalkAnimBR1 | StuckRigid ] [ GPlayer action StuckCursor ]\n[ > PlayerBlueLeft | StuckRigid ] [ GPlayer ] -> [ WalkAnimBL1 | StuckRigid ] [ GPlayer action StuckCursor ]\n\n[ StuckRigid ] -> [ ]\n[ Rigid1 GPlayer ] [ Rigid1 ] -> [ Rigid1 GPlayer StuckRigid ] [ Rigid1 StuckRigid ]\n[ Rigid2 GPlayer ] [ Rigid2 ] -> [ Rigid2 GPlayer StuckRigid ] [ Rigid2 StuckRigid ]\n\nrigid [ > Player | RigidCrate rigid1 no StuckRigid ] -> [ > Player | > RigidCrate > rigid1 ]\n+ rigid [ moving RigidCrate rigid1 | RigidCrate rigid1 ] -> [ moving RigidCrate moving rigid1 | moving RigidCrate moving rigid1 ]\n+ rigid [ moving rigid1 | GBlock rigid1 ] -> [ moving rigid1 | moving GBlock moving rigid1 ]\n\nrigid [ > Player | RigidCrate rigid2 no StuckRigid ] -> [ > Player | > RigidCrate > rigid2 ]\n+ rigid [ moving RigidCrate rigid2 | RigidCrate rigid2 ] -> [ moving RigidCrate moving rigid2 | moving RigidCrate moving rigid2 ]\n+ rigid [ moving rigid2 | GBlock rigid2 ] -> [ moving rigid2 | moving GBlock moving rigid2 ]\n\n(RigidCrate)\n\n[ RigidDeco ] -> [ ]\nlate down [ rigid1 | no rigid1 ] -> [ rigid1 RigidD | CrateBelow ]\nlate up [ rigid1 | no rigid1 ] -> [ rigid1 | CrateAbove ]\nlate left [ rigid1 | no rigid1 ] -> [ rigid1 RigidL | ]\nlate right [ rigid1 RigidL | no rigid1 ] -> [ rigid1 RigidLR | ]\nlate right [ rigid1 no AboveDeco | no rigid1 ] -> [ rigid1 RigidR | ]\n\nlate up [ RigidL rigid1 | rigid1 no AboveDeco ] -> [ RigidL rigid1 | rigid1 AboveRigidL ]\nlate up [ RigidR rigid1 | rigid1 no AboveDeco ] -> [ RigidR rigid1 | rigid1 AboveRigidR ]\nlate up [ RigidLR rigid1 | rigid1 ] -> [ RigidLR rigid1 | rigid1 AboveRigidLR ]\n\nlate up [ RigidL rigid1 | rigid1 RigidR ] -> [ RigidL rigid1 | rigid1 AboveRigidLRwithR ]\nlate up [ RigidR rigid1 | rigid1 RigidL ] -> [ RigidR rigid1 | rigid1 AboveRigidLRwithL ]\n\nlate up [ rigid1 | CrateAbove ] -> [ rigid1 RigidU | CrateAbove ]\n\nlate left [ rigid1 RigidU | rigid1 no RigidU ] -> [ rigid1 RigidU | rigid1 RigidUL ]\nlate right [ rigid1 RigidU | rigid1 no RigidU ] -> [ rigid1 RigidU | rigid1 RigidUR ]\n\n\nlate down [ rigid2 | no rigid2 ] -> [ rigid2 RigidD | CrateBelow ]\nlate up [ rigid2 | no rigid2 ] -> [ rigid2 | CrateAbove ]\nlate left [ rigid2 | no rigid2 ] -> [ rigid2 RigidL | ]\nlate right [ rigid2 RigidL | no rigid2 ] -> [ rigid2 RigidLR | ]\nlate right [ rigid2 no AboveDeco | no rigid2 ] -> [ rigid2 RigidR | ]\n\nlate up [ RigidL rigid2 | rigid2 no AboveDeco ] -> [ RigidL rigid2 | rigid2 AboveRigidL ]\nlate up [ RigidR rigid2 | rigid2 no AboveDeco ] -> [ RigidR rigid2 | rigid2 AboveRigidR ]\nlate up [ RigidLR rigid2 | rigid2 ] -> [ RigidLR rigid2 | rigid2 AboveRigidLR ]\n\nlate up [ RigidL rigid2 | rigid2 RigidR ] -> [ RigidL rigid2 | rigid2 AboveRigidLRwithR ]\nlate up [ RigidR rigid2 | rigid2 RigidL ] -> [ RigidR rigid2 | rigid2 AboveRigidLRwithL ]\n\nlate up [ rigid2 | CrateAbove ] -> [ rigid2 RigidU | CrateAbove ]\n\nlate left [ rigid2 RigidU | rigid2 no RigidU ] -> [ rigid2 RigidU | rigid2 RigidUL ]\nlate right [ rigid2 RigidU | rigid2 no RigidU ] -> [ rigid2 RigidU | rigid2 RigidUR ]\n\n(Fall)\n\ndown [ FallRight | Ridable ] -> [ PlayerPinkRight | Ridable ]\ndown [ FallRight no Transition | no Ridable ] -> [ > FallRight | ]\ndown [ PinkRight no Transition | no Ridable ] -> [ > FallRight | ] sfx7\n\ndown [ FallLeft | BGPink ] -> [ PlayerPinkLeft | BGPink ]\ndown [ FallLeft | Block ] -> [ PlayerPinkLeft | Block ]\ndown [ FallLeft no Transition | no Ridable ] -> [ > FallLeft | ]\ndown [ PinkLeft no Transition | no Ridable ] -> [ > FallLeft | ] sfx7\n\n[ FallBlock ] -> [ ]\ndown [ Block no Transition | no ColBGPink no Block no Player ] [ PlayerFall ] -> [ > Block | ] [ PlayerFall FallBlock ] sfx1\n\n(ZonePink border)\n\n[ AddPinkL ] -> [ ]\n[ RemovePinkL ] -> [ ]\n[ AddPinkR ] -> [ ]\n[ RemovePinkR ] -> [ ]\n\nlate left [ no ZonePink no AddPinkL | ZonePink ] -> [ AddPinkLUD | ZonePink ]\nlate right [ no ZonePink no AddPinkR | ZonePink ] -> [ AddPinkRUD | ZonePink ]\n\nlate up [ AddPinkLUD | no ZonePink ] -> [ AddPinkLD | ]\nlate up [ AddPinkRUD | no ZonePink ] -> [ AddPinkRD | ]\n\nlate down [ AddPinkLUD | no ZonePink ] -> [ AddPinkLU | ]\nlate down [ AddPinkRUD | no ZonePink ] -> [ AddPinkRU | ]\n\nlate down [ AddPinkLD | no ZonePink ] -> [ | ]\nlate down [ AddPinkRD | no ZonePink ] -> [ | ]\n\nlate left [ ZonePink no RemovePinkL | no ZonePink ] -> [ ZonePink RemovePinkLUD | ]\nlate right [ ZonePink no RemovePinkR | no ZonePink ] -> [ ZonePink RemovePinkRUD | ]\n\nlate up [ RemovePinkLUD | ZonePink ] -> [ RemovePinkLD | ZonePink ]\nlate up [ RemovePinkRUD | ZonePink ] -> [ RemovePinkRD | ZonePink ]\n\nlate down [ RemovePinkLUD | ZonePink ] -> [ RemovePinkLU | ZonePink ]\nlate down [ RemovePinkRUD | ZonePink ] -> [ RemovePinkRU | ZonePink ]\n\nlate down [ RemovePinkLD | ZonePink ] -> [ | ZonePink ]\nlate down [ RemovePinkRD | ZonePink ] -> [ | ZonePink ]\n\nlate right [ RemovePinkRU | AddPinkLU ] -> [ RemovePinkRU | ]\nlate right [ RemovePinkRD | AddPinkLD ] -> [ RemovePinkRD | ]\n\nlate right [ RemovePinkRUD | AddPinkLU ] -> [ RemovePinkRUD | ]\nlate right [ RemovePinkRUD | AddPinkLD ] -> [ RemovePinkRUD | ]\n\nlate left [ RemovePinkLU | AddPinkRU ] -> [ RemovePinkLU | ]\nlate left [ RemovePinkLD | AddPinkRD ] -> [ RemovePinkLD | ]\n\nlate left [ RemovePinkLUD | AddPinkRU ] -> [ RemovePinkLUD | ]\nlate left [ RemovePinkLUD | AddPinkRD ] -> [ RemovePinkLUD | ]\n\nlate left [ AddPinkLUD | RemovePinkRUD ] -> [ | RemovePinkRUD ]\nlate right [ AddPinkRUD | RemovePinkLUD ] -> [ | RemovePinkLUD ]\nlate left [ AddPinkLUD | RemovePinkRU ] -> [ AddPinkLD | RemovePinkRU ]\nlate right [ AddPinkRUD | RemovePinkLU ] -> [ AddPinkRD | RemovePinkLU ]\nlate left [ AddPinkLUD | RemovePinkRD ] -> [ AddPinkLU | RemovePinkRD ]\nlate right [ AddPinkRUD | RemovePinkLD ] -> [ AddPinkRU | RemovePinkLD ]\nlate left [ AddPinkLU | RemovePinkRU ] -> [ | RemovePinkRU ]\nlate right [ AddPinkRU | RemovePinkLU ] -> [ | RemovePinkLU ]\nlate left [ AddPinkLD | RemovePinkRD ] -> [ | RemovePinkRD ]\nlate right [ AddPinkRD | RemovePinkLD ] -> [ | RemovePinkLD ]\n\n(Animation)\n\nright [ > PlayerBlueLeft ] -> [ > PlayerBlueRight ]\nright [ > WalkAnimBL1 ] -> [ > WalkAnimBR1 ]\nright [ > WalkAnimBL2 ] -> [ > WalkAnimBR2 ]\nright [ > WalkAnimBL3 ] -> [ > WalkAnimBR3 ]\n\nleft [ > PlayerBlueRight ] -> [ > PlayerBlueLeft ]\nleft [ > WalkAnimBR1 ] -> [ > WalkAnimBL1 ]\nleft [ > WalkAnimBR2 ] -> [ > WalkAnimBL2 ]\nleft [ > WalkAnimBR3 ] -> [ > WalkAnimBL3 ]\n\n[ WalkAnimBR3 ] -> [ PlayerBlueRight ]\n[ WalkAnimBR2 ] -> [ WalkAnimBR3 ]\n[ WalkAnimBR1 ] -> [ WalkAnimBR2 ]\n[ > PlayerBlueRight ] -> [ > WalkAnimBR1 ]\n\n[ WalkAnimBL3 ] -> [ PlayerBlueLeft ]\n[ WalkAnimBL2 ] -> [ WalkAnimBL3 ]\n[ WalkAnimBL1 ] -> [ WalkAnimBL2 ]\n[ > PlayerBlueLeft ] -> [ > WalkAnimBL1 ]\n\nright [ > PlayerPinkLeft ] -> [ > PlayerPinkRight ]\nright [ > WalkAnimPL1 ] -> [ > WalkAnimPR1 ]\nright [ > WalkAnimPL2 ] -> [ > WalkAnimPR2 ]\nright [ > WalkAnimPL3 ] -> [ > WalkAnimPR3 ]\n\nleft [ > PlayerPinkRight ] -> [ > PlayerPinkLeft ]\nleft [ > WalkAnimPR1 ] -> [ > WalkAnimPL1 ]\nleft [ > WalkAnimPR2 ] -> [ > WalkAnimPL2 ]\nleft [ > WalkAnimPR3 ] -> [ > WalkAnimPL3 ]\n\n[ WalkAnimPR3 ] -> [ PlayerPinkRight ]\n[ WalkAnimPR2 ] -> [ WalkAnimPR3 ]\n[ WalkAnimPR1 ] -> [ WalkAnimPR2 ]\n[ > PlayerPinkRight ] -> [ > WalkAnimPR1 ]\n\n[ WalkAnimPL3 ] -> [ PlayerPinkLeft ]\n[ WalkAnimPL2 ] -> [ WalkAnimPL3 ]\n[ WalkAnimPL1 ] -> [ WalkAnimPL2 ]\n[ > PlayerPinkLeft ] -> [ > WalkAnimPL1 ]\n\n[ stationary Player ] [ stationary GhostBlockAnim5 ] -> [ Player ] [ action GhostBlock ]\n[ stationary Player ] [ stationary GhostBlockAnim4 ] -> [ Player ] [ action GhostBlockAnim5 ]\n[ stationary Player ] [ stationary GhostBlockAnim3 ] -> [ Player ] [ action GhostBlockAnim4 ]\n[ stationary Player ] [ stationary GhostBlockAnim2 ] -> [ Player ] [ action GhostBlockAnim3 ]\n[ stationary Player ] [ stationary GhostBlockAnim1 ] -> [ Player ] [ action GhostBlockAnim2 ]\n[ stationary Player ] [ stationary GhostBlock ] -> [ Player ] [ action GhostBlockAnim1 ]\n\n[ GhostPlayerAbove ] -> [ ]\nlate up [ GPAboveAnim | ] -> [ GPAboveAnim | GhostPlayerAbove ]\n\n[ stationary Player ] [ stationary GhostPlayerAnim5 ] -> [ Player ] [ action GhostPlayer ]\n[ stationary Player ] [ stationary GhostPlayerAnim4 ] -> [ Player ] [ action GhostPlayerAnim5 ]\n[ stationary Player ] [ stationary GhostPlayerAnim3 ] -> [ Player ] [ action GhostPlayerAnim4 ]\n[ stationary Player ] [ stationary GhostPlayerAnim2 ] -> [ Player ] [ action GhostPlayerAnim3 ]\n[ stationary Player ] [ stationary GhostPlayerAnim1 ] -> [ Player ] [ action GhostPlayerAnim2 ]\n[ stationary Player ] [ stationary GhostPlayer ] -> [ Player ] [ action GhostPlayerAnim1 ]\n\n[ Background Transition1 ] [ Background no Transition1 ] -> [ Background Transition1 ] [ Background Transition1 ]\n[ stationary Transition9 ] -> [ ] again\n[ stationary Transition8 ] -> [ action Transition9 ] again\n[ stationary Transition7 ] -> [ action Transition8 ] again\n[ stationary Transition6 ] -> [ action Transition7 ] again\n[ stationary Transition5 ] -> [ action Transition6 ] again\n[ stationary Transition4 ] -> [ action Transition5 ] again\n[ stationary Transition3 ] -> [ action Transition4 ] again\n[ stationary Transition2 ] -> [ action Transition3 ] again\n[ stationary Transition1 ] -> [ action Transition2 ] again\n\n[ Background TransitionR1 ] [ Background no TransitionR1 ] -> [ Background TransitionR1 ] [ Background TransitionR1 ]\n[ stationary TransitionR9 ] -> [ ] again\n[ stationary TransitionR8 ] -> [ action TransitionR9 ] again\n[ stationary TransitionR7 ] -> [ action TransitionR8 ] again\n[ stationary TransitionR6 ] -> [ action TransitionR7 ] again\n[ stationary TransitionR5 ] -> [ action TransitionR6 ] again\n[ stationary TransitionR4 ] -> [ action TransitionR5 ] again\n[ stationary TransitionR3 ] -> [ action TransitionR4 ] again\n[ stationary TransitionR2 ] -> [ action TransitionR3 ] again\n[ stationary TransitionR1 ] -> [ action TransitionR2 ] again\n\n(Level start)\n\n[ Target no LevelStart ] [ Background no Transition ] -> [ Target ] [ Background Transition5 ]\n[ Target Transition9 no LevelStart ] -> [ Target LevelStart ]\n\n(Win)\n\ndown [ PlayerPink no WinAnim Target no FallBlock | Ridable ]-> [ PlayerPink WinAnim1 Target | Ridable ] sfx8\n\n[ WinAnim6 ] [ Background no Transition ] -> [ WinAnim6 ] [ Background Transition1 ]\n[ WinAnim5 ] -> [ WinAnim6 ]\n[ WinAnim4 ] -> [ WinAnim5 ]\n[ WinAnim3 ] -> [ WinAnim4 ]\n[ WinAnim2 ] -> [ WinAnim3 ]\n[ WinAnim1 ] -> [ WinAnim2 ]\n\n[ > Player WinAnim ] -> cancel\n[ action Player WinAnim ] -> cancel\n\n[ Target WinAnim6 Transition5 ] -> [ Target WinAnim6 Transition5 Winable ]\n\n(tutorial)\n\n[ Crate PressX no TCount ] [ PressX ] -> [ Crate TCount1 ] [ ]\n\n[ TCount5 ] -> [ ]\n[ TCount4 ] -> [ TCount5 ] message X or spacebar to switch characters.\n[ TCount3 ] -> [ TCount4 ]\n[ TCount2 ] -> [ TCount3 ]\n[ TCount1 ] -> [ TCount2 ]\n\n[ > Player ] [ Crate PressX ] -> [ Player ] [ Crate PressX ]\n[ > Player ] [ Crate TCount ] -> [ Player ] [ Crate TCount ]\n[ PlayerPink ] [ PressX ] -> [ PlayerPink ] [ ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Winable \n\n======= \nLEVELS\n=======\n\n\n(Tutorial)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,!xxxxxxxxxo,,,..'''p++++++++++'''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxxx\"xxxxxx,,,..'''p+①+①++++++'''.\n.,,,,,,x,xxxoxx,,,..''''''+'++++++'''.\n.,,,xxxxxxxx,xx,,,..'''++++++++'++'''.\n.,,,xxxxxxxxxxx,,,..'''+++①+++++++'''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,!xxxxxxxx,,,,..''''p++++++++''''.\n.,,,,,,,xxxxxx,,,,..'''''''++++++''''.\n.,,,,,,xxxxxox,,,,..''''''+++++++''''.\n.,,,,xxxxxx\",x,,,,..''''++++++①'+''''.\n.,,,,xx\"xxx\"xx,,,,..''''++①+++①++''''.\n.,,,,xx\"x,,,,,,,,,..''''++①+'''''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxx!xxxx,,,,..''''++++p++++''''.\n.,,,,xxxx\"xxxx,,,,..''''++++①++++''''.\n.,,,,x,,,,,,,x,,,,..''''+'''''''+''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxx\"xxx,,,,..''''+++++①+++''''.\n.,,,,xxx\"o,\"xx,,,,..''''+++①+'①++''''.\n.,,,,xx\",xx\"xx,,,,..''''++①'++①++''''.\n.,,,,xx\"xx,,,,,,,,..''''++①++''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxox,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xx!xx\"xx,,,,,,..'''++p++①++''''''.\n.,,,,,,,,,,,,$,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(二つでスタックのチュートリアル)\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxx!xxxoxxx,,,..'''+++%+++++++'''.\n.,,,,xx\"x\"xxxx,,,,..''''+++++++++''''.\n.,,,,#########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,b,*,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.xxxxxxxxxxxxxxxxx..+++++++++++++++++.\n.x,,,,,,,,,,,,,,,x..+'''''''''''''''+.\n.x,,,,,,b,*,,,,,,x..+''''''''+''''''+.\n.x,,xxxxxxxxxxx,,x..+''+++++++++++''+.\n.x,,xxx!xxxoxxx,,x..+''+++%+++++++''+.\n.x,,,xx\"x\"xxxx,,,x..+'''+++++++++'''+.\n.x,,,,,,,,,,,,,,,x..+'''''''''''''''+.\n.xxxxxxxxxxxxxxxxx..+++++++++++++++++.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(一個なら押しのけて登れる)\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,xxxxxx,,,,,..''''''++++++'''''.\n.,,,,,,x\",x\"x,,,,,..''''''++'+++'''''.\n.,,,,,,,!,,,x,,,,,..'''''''%'''+'''''.\n.,,,,#b,,,*,x,,,,,..'''''''''''+'''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,oxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,,,,xxxxxx,,,,..'''''''++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage Reach the heart to win.\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,x!xxxxxox,,,,..''''+p+++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage You can climb one square.\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxox,,,,..''''+石+++++++''''.\n.,,,,,!,,,,,,,,,,,..'''''p'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage You can only push one block at a time.\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxox,,,,..''''+++++++++''''.\n.,,,,x!\"xxxx\"x,,,,..''''+p石++++石+''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 1. Two Worlds\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,!xxx,b,xxxxxo,,..''%+++'''++++++''.\n.,,,xxx,,,xxxx,,,,..'''+++'''++++''''.\n.,,,xxx,,,xxxx,,,,..'''+++'''++++''''.\n.,,,xxx,,,xxx,,,,,..'''+++'''+++'''''.\n.,,,xxxx*x\"xx,,,,,..'''++++'++++'''''.\n.,,,xxx,,,,,,,,,,,..'''+++'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,文,,,,,,,,..'''''''''''''''''.\n.,,,!xxx,,,xxxo,,,..'''%+++'''++++'''.\n.,,,,xxxx*xxx,,,,,..''''++++'+++'''''.\n.,,,,xxx,,,xx,,,,,..''''+++'''++'''''.\n.,,,,,,,,文,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 2. Delivery\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,oxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,,xxxxxx,,,,,..''''''++++++'''''.\n.,,,,,,x!x\"xx,,,,,..''''''+%++++'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,b*,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 3. One-way Tickets\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx,,,,,,,,,,,..''''++'''''''''''.\n.,,,,x\",,,b*,,,,,,..''''++'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx########,,,..''''++'''''''''''.\n.,,,,xxxxxxxxxx,,,..''''++++++++++'''.\n.,,,,xxxxxxxxxx,,,..''''++++++++++'''.\n.,,,,xxx!xxxoxx,,,..''''+++%++++++'''.\n.,,,,#xx\"x\"xxxx,,,..'''''+++++++++'''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(message Brain training\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,b*,,x\"x,,,,,,,..'''''''+++'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxx!xxxxxxx,,,..'''+++%+++++++'''.\n.,,,xxx,,,,,xxx,,,..'''+++'''''+++'''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxxxxx\"xxxx,,,..'''+++++++++++'''.\n.,,,xxxx\"o,\"xxx,,,..'''++++++'++++'''.\n.,,,xxx\",xx\"xx,,,,..'''++++'+++++''''.\n.,,,,xx\"xx####,,,,..''''+++++''''''''.\n.,,,,######,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(message 2 x 3\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,##,,,,,##,,,,..'''''''''''''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#,\"x\"x\",#,,,,..''''''+++++''''''.\n.,,,,#,,b,*,,#,,,,..'''''''''''''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,xxxxo,,,,,,..''''''+++++''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,xx!xx,,,,,,..''''''++%++''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,##,,,,,##,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 4. 3 x 6\n\n\n......................................\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,b*,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxo,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,!xxxxx,,,,,,..'''''%+++++''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,##########,,,,..'''''''''''''''''.\n.,,,#,,,,,,,,#,,,,..'''''''''''''''''.\n.,,,#,\"!\"x\"x,#,,,,..'''''+p++++''''''.\n.,,,#b,,,*,,,#,,,,..'''''''''''''''''.\n.,,,#,xxxxxx##,,,,..'''''++++++''''''.\n.,,,#,*,,,,,,o,,,,..''''''''''''+''''.\n.,,,#,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,,,,,,,,#,,,,..'''''''''''''''''.\n.,,,##########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 5. Too Small to Climb\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,ox\"#,,,,,,..'''''''+++'''''''.\n.,,,,,,,,,\"#,,,,,,..'''''''''+'''''''.\n.,,,,,,,x,\"#,,,,,,..'''''''+'+'''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,!b*,,,,,,,..'''''''%'''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,b@,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,@,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,oxxx,,,,,,,..''''''++++'''''''.\n.,,,,,#,xxx,,,,,,,..'''''''+++'''''''.\n.,,,,,!,xxx,,,,,,,..'''''%'+++'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 6. I Hope That's Enough\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,xox,,,,,..''''''''++++'''''.\n.,,,,,,,,,xxx\"xx,,..''''''''+++++++''.\n.,,,,,,,,,,,,\"xx,,..''''''''''''+++''.\n.,,######xxxx\"xx,,..''''''''+++++++''.\n.,,#,,,!#x\",,,,,,,..''''''%'++'''''''.\n.,,#,*,,xx\"x,*,*,,..'''''''++++''''''.\n.,,####,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,##,,,,,,b,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 7. The Larger, the Better\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,#,#,#,#,#,#,..'''''''''''''''''.\n.,,,,,xxxxxo,,,,,,..'''''++++++''''''.\n.,,,,,xx\",,,,,,,,,..'''''+++'''''''''.\n.,,,,,xx\",,,,,,,,,..'''''+++'''''''''.\n.,,,,,!x\",@@@@,,,,..'''''%++'''''''''.\n.,#,#,#,#,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,b,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 8. Cut the Screen\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,oxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,@@@@@@@,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"x#x,,,,,..'''''+++++'+'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,x!x\"xxx,,,,,..'''''+%+++++'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,oxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,2222222,,,,,..'''''''''''''''''.\n.,x,,,xxx\"xxx,,,,,..'+'''+++++++'''''.\n.,,,,,@@@@@@@,,,,,..'''''''''''''''''.\n.,,,,,,xxxx!x,,,,,..''''''++++%+'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 9. Transfer\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.#################..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,xx,,,2b@@@,,o,,..''++''''''''''+''.\n.,,!\",222,@,,,,x,,..''%+''''''''''+''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.#################..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 10. Do You Like Math Puzzles?\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,b,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,\"@#xx#xx#xx#x#..'''+''++++++++'+'.\n.,,\"\"@#xxxxxxxxxx#..''++''++++++++++'.\n.,,\"\"@#xx,xx,xx,o#..''++''++'++'++'+'.\n.,,,,@#!x,xx,xx,x#..''''''%+'++'++'+'.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 11. Haste Makes Waste\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,xxx,,,,,,,..'''''''+++'''''''.\n.,,xxx,,,,,,,xxx,,..''+++'''''''+++''.\n.,,xx\",,@@@,,xox,,..''+++'''''''+++''.\n.,,!x\",,@@@,,xxx,,..''%++'''''''+++''.\n.,,###,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 12. Neither Road Leads to Rome\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,#############,,,..'''''''''''''''''.\n.,#,,,,!\"\"\"x\"x###,..''''''%+++++++++'.\n.,#b@@,,,,,,,,xo#,..'''''''''''''+++'.\n.,#,,,,xxxxxx,xx#,..''''''++++++'+++'.\n.,#,,,,,,,,,,,###,..'''''''''''''''''.\n.,#############,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 13. This Elevator Will Be Taking No Passengers\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,o\"\"\"\"\",,,,,,..'''''++++++''''''.\n.,,b*,,\"\"\"\"\",,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.####xxx,,,xxx####..''''+++'''+++''''.\n.,,,,xxx@@@xxx,,,,..''''+++'''+++''''.\n.,,,,xxx@@@xxx,,,,..''''+++'''+++''''.\n.,,,,xxx,,,xxx,,,,..''''+++'''+++''''.\n.,,,,xxx,,,xxx,,,,..''''+++'''+++''''.\n.,,,,x!x,,,xxx,,,,..''''+%+'''+++''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................)\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx\"\"\"\"\"xx,,,,..''''+++++++++''''.\n.,b*,xx\"\"\"\"\"xx,,,,..''''+++++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#oxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#,xx@@@xxx#,,,..'''''++'''+++''''.\n.,,,#xxx@@@xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#x!x,,,xxx#,,,..''''+%+'''+++''''.\n.,,,###,,,,,###,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,xxxx\"\"\"xx,,,,..''''+++++++++''''.\n.,,,,xxx\"\"\"\"xx,,,,..''''+++++++++''''.\n.,b*,xx,\"\"\"\"xx,,,,..''''++'++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#oxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#,xx@@@xxx#,,,..'''''++'''+++''''.\n.,,,#xxx@@@xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#x!x,,,xxx#,,,..''''+%+'''+++''''.\n.,,,###,,,,,###,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 14. 3 x 21\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,#,,xxx\"\"\"o,,..''''''''+++++++''.\n.,,,,@@@,xxx\"\"\",,,..''''''''++++++'''.\n.,,,,@@@#\"\"\"\"\"\",,,..''''''''++++++'''.\n.,,,#@@@,\"\"\"\"\"\",,,..''''''''++++++'''.\n.,,,,@@@,\"\"\"\"\"\",#,..''''''''++++++'''.\n.,,,,@@@,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#,,,,b,,22,,,,..'''''''''''''''''.\n.,,,x!,,,,,,,2,,,,..'''+%''''''''''''.\n.,,,,#,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,#,#,#,#,#,..'''''''''''''''''.\n.,,,,,#,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\nmessage Thanks for playing!\n\n\n(......................................\n.,,,,,#,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#o,b,#,,,,,,..''''''+''''''''''.\n.,,,,,,,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#,*,*#,,,,,,..'''''''''''''''''.\n.,,,,,#,@@@#,,,,,,..'''''''''''''''''.\n.,,,,,#,@@@##,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,##,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,x,,#,,,,,..''''''''%''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,b,,,,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,o,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,\",,,,,,#,,..'''''''+'''''''''.\n.,*,*,*,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,#,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,@@,@@@#,,,,,,#,,..'''''''''''''''''.\n.,@@,,@@,,,,,,,,,,..'''''''''''''''''.\n.,@@@@@@#,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,#,!,#,#,,..''''''''''%''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,##!######,,,,..''''''%''''''''''.\n.,,,,#,,,,,,o#,,,,..'''''''''''+'''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#,,@b2,,#,,,,..'''''''+'+'''''''.\n.,,,,#,@@,22,#,,,,..''''''++'++''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,x\"\"\"x,,,,,,..''''''+++++''''''.\n.,,,,,,\"\"\"\"\",,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,#,xxx,,,,,oxx,#,..'''+++'''''+++'''.\n.,#,xxx,222,xxx,#,..'''+++'''''+++'''.\n.,#,xxx,,,,,xxx,#,..'''+++'''''+++'''.\n.,#,xxx,@@,,xxx,#,..'''+++'''''+++'''.\n.,#,x!x,,,,,xxx,#,..'''+%+'''''+++'''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,\"o,,#,,,..'''''''''++''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#xxx,,,,xxx#,,,..'''+++''''+++''''.\n.,,#xxx,,,,\"xx#,,,..'''+++''''+++''''.\n.,,#xxx,,,,\"xx#,,,..'''+++''''+++''''.\n.,,#xxx,2@,\"xx#,,,..'''+++''''+++''''.\n.,,#!xx22@@\"xx#,,,..'''%++''''+++''''.\n.,,#,,,2,,@,,,#,,,..'''''''''''''''''.\n.,,#,,,2,,@,,,#,,,..'''''''''''''''''.\n.,,#,b,22@@,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n......................................)", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", 2, "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", 2, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 1, "tick", 4, "tick", "tick", "tick", 3, "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background colbgpink outline:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background bgblue:1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,background bgblue zonepurple:2,background bgblue zonepurplebelow:3,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,2,2,2,3,1,1,1,1,0,0,1,1,1,1,1,1,2,2,background bgblue ghostplayeranim1 zonepurple:4,3,1,1,1,1,0,0,1,\n1,1,1,1,1,2,2,2,3,1,1,1,1,0,0,1,1,1,1,1,1,1,2,3,background bgblue stayblueleft:5,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,2,background bgblue crateabove zonepurplebelow:6,background bgblue crate crateline:7,background bgblue cratebelow:8,1,1,1,0,0,1,1,1,1,1,1,2,2,2,3,1,1,1,\n1,0,0,1,1,1,1,1,1,2,2,2,3,1,1,1,1,0,0,1,1,1,1,1,1,2,3,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,background ghosttarget zonepurple:9,3,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background bgpink colbgpink:10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,\n10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,background bgpink climbable colbgpink:11,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,background removepinklud zonepink:12,addpinkru background bgpink climbable colbgpink:13,11,10,10,\n10,10,10,0,0,10,10,10,10,10,10,background zonepink:14,14,background removepinkld zonepink:15,10,10,10,10,10,0,0,10,10,10,10,10,10,14,14,background playerpinkright zonepink:16,10,10,10,10,10,0,0,10,\n10,10,10,10,10,background removepinkru zonepink:17,14,background removepinkrd zonepink:18,10,10,10,10,10,0,0,10,10,10,10,10,10,addpinkld background bgpink climbable colbgpink:19,background removepinkrud zonepink:20,addpinklu background bgpink climbable colbgpink:21,10,10,10,10,10,0,0,10,10,10,10,10,10,10,\n11,10,11,10,10,10,10,0,0,10,10,10,10,10,10,addpinkrd background bgpink climbable colbgpink:22,12,13,background removepinklud removepinkrud zonepink:23,10,10,10,10,0,0,10,10,10,10,10,10,background removepinklu zonepink:24,14,15,11,10,10,10,\n10,0,0,10,10,10,10,10,10,14,14,18,10,10,10,10,10,0,0,10,10,10,10,10,10,14,21,11,10,10,10,10,10,0,0,10,10,10,\n10,10,10,background levelstart removepinkrud target zonepink:25,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,11,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,10,10,10,\n10,10,10,10,10,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", "7", "1627769807359.2505"] ], [ `gallery game: mad queens`, - ["title Mad Queens\nauthor Chris Pickel\nhomepage https://sfiera.net/\ntext_color DarkRed\nbackground_color \t Gray\nkey_repeat_interval 0.25\nagain_interval 0.10\nnoaction\nrequire_player_movement\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBlack \n#222\n\nWhite .\n#ddd\n\nAlice Player @ \nBlue Brown White Yellow\n.333.\n.313.\n02020\n30203\n.000.\n\nKing K\nRed DarkRed\n..0..\n.010.\n..0..\n00001\n.....\n\nQueen Q\nRed DarkRed\n0.0.1\n.001.\n..1..\n00001\n.....\n\nRook R\nRed DarkRed\n0.0.1\n00001\n.111.\n00001\n.....\n\nBishop B\nRed DarkRed\n..0..\n.101.\n.010.\n00001\n.....\n\nKnight N\nRed DarkRed\n.101.\n0000.\n..01.\n00001\n.....\n\nPawn P\nRed DarkRed\n.....\n..0..\n..0..\n.001.\n.....\n\nThreatened\nRed\n.....\n.....\n..0..\n.....\n.....\n\nDying\nRed\n\nHorizontalThreat\nTransparent\n\nVerticalThreat\nTransparent\n\nDownRightThreat\nTransparent\n\nDownLeftThreat\nTransparent\n\nUpLeftThreat\nTransparent\n\nUpRightThreat\nTransparent\n\nFurtherRight\nTransparent\n\nFurtherDownRight\nTransparent\n\nFurtherDown\nTransparent\n\nFurtherDownLeft\nTransparent\n\nFurtherLeft\nTransparent\n\nFurtherUpLeft\nTransparent\n\nFurtherUp\nTransparent\n\nFurtherUpRight\nTransparent\n\n=======\nLEGEND\n=======\n\nBackground = Black or White\n\nPiece = King or Queen or Rook or Bishop or Knight or Pawn\nSolid = Alice or Piece\n\nDiagonally = Bishop or Queen\nOrthogonally = Rook or Queen\nRightward = Orthogonally or FurtherRight\nDownRightward = Diagonally or FurtherDownRight\nDownward = Orthogonally or FurtherDown\nDownLeftward = Diagonally or FurtherDownLeft\nLeftward = Orthogonally or FurtherLeft\nUpLeftward = Diagonally or FurtherUpLeft\nUpward = Orthogonally or FurtherUp\nUpRightward = Diagonally or FurtherUpRight\n\nFurther = FurtherRight or FurtherDownRight or FurtherDown or FurtherDownLeft or FurtherLeft or FurtherUpLeft or FurtherUp or FurtherUpRight\nThreat = HorizontalThreat or VerticalThreat or DownRightThreat or DownLeftThreat or UpLeftThreat or UpRightThreat\nTemporary = Threat or Further\n\n=======\nSOUNDS\n=======\n\nAlice move 93593507\nPiece move 69693707\nAlice destroy 31577701\nPiece destroy 2057504\nstartgame 92634708\nendlevel 63318705\nendgame 6260903\nundo 86245107\nrestart 2571701\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSolid\nHorizontalThreat\nVerticalThreat\nDownRightThreat\nDownLeftThreat\nUpLeftThreat\nUpRightThreat\nFurther\nThreatened\nDying\n\n======\nRULES \n====== \n\n[> Alice | Piece] -> [> Alice | > Piece]\n\nlate [Dying Solid] -> []\nlate [Threatened] -> []\n\nlate up [Pawn |] -> [Pawn | HorizontalThreat]\nlate vertical [King |] -> [King | Threatened HorizontalThreat]\nlate horizontal [King |] -> [King | Threatened VerticalThreat]\nlate vertical [Knight | |] -> [Knight | | HorizontalThreat]\nlate horizontal [Knight | |] -> [Knight | | VerticalThreat]\n\nlate horizontal [HorizontalThreat |] -> [HorizontalThreat | Threatened]\nlate vertical [VerticalThreat |] -> [VerticalThreat | Threatened]\n\nlate right [Rightward |] -> [Rightward | Threatened FurtherRight]\nlate down [Downward |] -> [Downward | Threatened FurtherDown]\nlate left [Leftward |] -> [Leftward | Threatened FurtherLeft]\nlate up [Upward |] -> [Upward | Threatened FurtherUp]\n\nlate down [DownRightward |] -> [DownRightward | DownRightThreat]\n+ late right [DownRightThreat |] -> [DownRightThreat | Threatened FurtherDownRight]\nlate down [DownLeftward |] -> [DownLeftward | DownLeftThreat]\n+ late left [DownLeftThreat |] -> [DownLeftThreat | Threatened FurtherDownLeft]\nlate up [UpLeftward |] -> [UpLeftward | UpLeftThreat]\n+ late left [UpLeftThreat |] -> [UpLeftThreat | Threatened FurtherUpLeft]\nlate up [UpRightward |] -> [UpRightward | UpRightThreat]\n+ late right [UpRightThreat |] -> [UpRightThreat | Threatened FurtherUpRight]\n\nlate [Temporary] -> []\n\nlate [Threatened Solid] -> [Dying Solid] again\n\n(Alice wins in the top row)\nlate up [||||||| Alice no Dying] -> win\n\n(Make the checkerboard pattern)\nlate right down [White | White] -> [White | Black]\nlate down [Black | Black] -> [Black | White]\n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\n(0)\n........\n........\n........\n........\n........\n........\n........\n...@....\n\n(1)\n........\n........\n........\n........\n........\n........\nPPPPPPPP\n...@....\n\n(2)\n........\n.N......\n....N...\n.N.....N\n........\n.....N..\n........\n...@....\n\n(3)\n........\n....N...\n...N....\n......N.\n.N......\n........\n.P.PPPPP\n...@....\n\n(4)\n......R.\n.R......\n........\n........\n........\n........\nP.PPPP.P\n...@....\n\n(5)\n......R.\n.....R..\n....R...\n.N......\n........\n........\nPPPP...P\n...@....\n\n(6)\n......B.\n........\n..B.....\n........\n........\n........\n.PN..P.N\n...@....\n\n(7)\n.....Q..\n........\n........\n...N....\nR.......\n........\n.PPPP.PP\n...@....\n\n(8)\n...K....\n.....B.N\n........\nR.......\n........\n...N....\n......PP\n...@....\n\n(9)\n.B......\n......Q.\n........\n........\n....B...\n........\nP..PPP..\n...@....\n\n(10)\n.K......\n.....N..\n.BB...N.\n........\n........\n........\nPPPPP..P\n...@....\n",[0,2,3,3,0,1,3,0,0,0,1,0,0,"undo"],"threatened white:0,black threatened:1,white:2,black:3,2,3,pawn white:4,3,\n1,rook white:5,1,0,1,0,1,0,\n0,1,2,3,2,1,4,3,\n1,0,3,2,3,0,black pawn:6,2,\n0,1,alice white:7,3,2,1,2,3,\n1,0,3,2,3,2,3,2,\n5,1,0,1,0,1,0,1,\n1,0,3,2,3,2,6,2,\n",4,"1627769866824.53"] + ["title Mad Queens\nauthor Chris Pickel\nhomepage https://sfiera.net/\ntext_color DarkRed\nbackground_color \t Gray\nkey_repeat_interval 0.25\nagain_interval 0.10\nnoaction\nrequire_player_movement\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBlack \n#222\n\nWhite .\n#ddd\n\nAlice Player @ \nBlue Brown White Yellow\n.333.\n.313.\n02020\n30203\n.000.\n\nKing K\nRed DarkRed\n..0..\n.010.\n..0..\n00001\n.....\n\nQueen Q\nRed DarkRed\n0.0.1\n.001.\n..1..\n00001\n.....\n\nRook R\nRed DarkRed\n0.0.1\n00001\n.111.\n00001\n.....\n\nBishop B\nRed DarkRed\n..0..\n.101.\n.010.\n00001\n.....\n\nKnight N\nRed DarkRed\n.101.\n0000.\n..01.\n00001\n.....\n\nPawn P\nRed DarkRed\n.....\n..0..\n..0..\n.001.\n.....\n\nThreatened\nRed\n.....\n.....\n..0..\n.....\n.....\n\nDying\nRed\n\nHorizontalThreat\nTransparent\n\nVerticalThreat\nTransparent\n\nDownRightThreat\nTransparent\n\nDownLeftThreat\nTransparent\n\nUpLeftThreat\nTransparent\n\nUpRightThreat\nTransparent\n\nFurtherRight\nTransparent\n\nFurtherDownRight\nTransparent\n\nFurtherDown\nTransparent\n\nFurtherDownLeft\nTransparent\n\nFurtherLeft\nTransparent\n\nFurtherUpLeft\nTransparent\n\nFurtherUp\nTransparent\n\nFurtherUpRight\nTransparent\n\n=======\nLEGEND\n=======\n\nBackground = Black or White\n\nPiece = King or Queen or Rook or Bishop or Knight or Pawn\nSolid = Alice or Piece\n\nDiagonally = Bishop or Queen\nOrthogonally = Rook or Queen\nRightward = Orthogonally or FurtherRight\nDownRightward = Diagonally or FurtherDownRight\nDownward = Orthogonally or FurtherDown\nDownLeftward = Diagonally or FurtherDownLeft\nLeftward = Orthogonally or FurtherLeft\nUpLeftward = Diagonally or FurtherUpLeft\nUpward = Orthogonally or FurtherUp\nUpRightward = Diagonally or FurtherUpRight\n\nFurther = FurtherRight or FurtherDownRight or FurtherDown or FurtherDownLeft or FurtherLeft or FurtherUpLeft or FurtherUp or FurtherUpRight\nThreat = HorizontalThreat or VerticalThreat or DownRightThreat or DownLeftThreat or UpLeftThreat or UpRightThreat\nTemporary = Threat or Further\n\n=======\nSOUNDS\n=======\n\nAlice move 93593507\nPiece move 69693707\nAlice destroy 31577701\nPiece destroy 2057504\nstartgame 92634708\nendlevel 63318705\nendgame 6260903\nundo 86245107\nrestart 2571701\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSolid\nHorizontalThreat\nVerticalThreat\nDownRightThreat\nDownLeftThreat\nUpLeftThreat\nUpRightThreat\nFurther\nThreatened\nDying\n\n======\nRULES \n====== \n\n[> Alice | Piece] -> [> Alice | > Piece]\n\nlate [Dying Solid] -> []\nlate [Threatened] -> []\n\nlate up [Pawn |] -> [Pawn | HorizontalThreat]\nlate vertical [King |] -> [King | Threatened HorizontalThreat]\nlate horizontal [King |] -> [King | Threatened VerticalThreat]\nlate vertical [Knight | |] -> [Knight | | HorizontalThreat]\nlate horizontal [Knight | |] -> [Knight | | VerticalThreat]\n\nlate horizontal [HorizontalThreat |] -> [HorizontalThreat | Threatened]\nlate vertical [VerticalThreat |] -> [VerticalThreat | Threatened]\n\nlate right [Rightward |] -> [Rightward | Threatened FurtherRight]\nlate down [Downward |] -> [Downward | Threatened FurtherDown]\nlate left [Leftward |] -> [Leftward | Threatened FurtherLeft]\nlate up [Upward |] -> [Upward | Threatened FurtherUp]\n\nlate down [DownRightward |] -> [DownRightward | DownRightThreat]\n+ late right [DownRightThreat |] -> [DownRightThreat | Threatened FurtherDownRight]\nlate down [DownLeftward |] -> [DownLeftward | DownLeftThreat]\n+ late left [DownLeftThreat |] -> [DownLeftThreat | Threatened FurtherDownLeft]\nlate up [UpLeftward |] -> [UpLeftward | UpLeftThreat]\n+ late left [UpLeftThreat |] -> [UpLeftThreat | Threatened FurtherUpLeft]\nlate up [UpRightward |] -> [UpRightward | UpRightThreat]\n+ late right [UpRightThreat |] -> [UpRightThreat | Threatened FurtherUpRight]\n\nlate [Temporary] -> []\n\nlate [Threatened Solid] -> [Dying Solid] again\n\n(Alice wins in the top row)\nlate up [||||||| Alice no Dying] -> win\n\n(Make the checkerboard pattern)\nlate right down [White | White] -> [White | Black]\nlate down [Black | Black] -> [Black | White]\n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\n(0)\n........\n........\n........\n........\n........\n........\n........\n...@....\n\n(1)\n........\n........\n........\n........\n........\n........\nPPPPPPPP\n...@....\n\n(2)\n........\n.N......\n....N...\n.N.....N\n........\n.....N..\n........\n...@....\n\n(3)\n........\n....N...\n...N....\n......N.\n.N......\n........\n.P.PPPPP\n...@....\n\n(4)\n......R.\n.R......\n........\n........\n........\n........\nP.PPPP.P\n...@....\n\n(5)\n......R.\n.....R..\n....R...\n.N......\n........\n........\nPPPP...P\n...@....\n\n(6)\n......B.\n........\n..B.....\n........\n........\n........\n.PN..P.N\n...@....\n\n(7)\n.....Q..\n........\n........\n...N....\nR.......\n........\n.PPPP.PP\n...@....\n\n(8)\n...K....\n.....B.N\n........\nR.......\n........\n...N....\n......PP\n...@....\n\n(9)\n.B......\n......Q.\n........\n........\n....B...\n........\nP..PPP..\n...@....\n\n(10)\n.K......\n.....N..\n.BB...N.\n........\n........\n........\nPPPPP..P\n...@....\n", [0, 2, 3, 3, 0, 1, 3, 0, 0, 0, 1, 0, 0, "undo"], "threatened white:0,black threatened:1,white:2,black:3,2,3,pawn white:4,3,\n1,rook white:5,1,0,1,0,1,0,\n0,1,2,3,2,1,4,3,\n1,0,3,2,3,0,black pawn:6,2,\n0,1,alice white:7,3,2,1,2,3,\n1,0,3,2,3,2,3,2,\n5,1,0,1,0,1,0,1,\n1,0,3,2,3,2,6,2,\n", 4, "1627769866824.53"] ], [ `gallery game: fall leaves`, - ["title Fall Leaves \nauthor Le Slo\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\nbackground_color #5d3a2f\n\n========\nOBJECTS\n========\n\nPlayerL\n#ad6545 #c96845 #d97865\n0.12.\n.0012\n.1112\n..111\n.....\n\n\nPlayerR\n#c96845 #ad6545 #d97865\n..222\n.0002\n.0100\n1100.\n.....\n\nPlayerN\n#c96845 #ad6545 #d97865\n.02..\n.002.\n11102\n.000.\n.00..\n\nVent1\n#485259 #7a8891 \n1..11\n01.0.\n..0..\n.0.01\n00..0\n\nVent2\n#485259 #7a8891\n..11.\n1.0..\n00001\n..0.0\n.00..\n\nAir0\n#86A2E4\n.0...\n...0.\n.0.0.\n.0...\n...0.\n\nAir1\n#86A2E4\n...0.\n.0.0.\n.0...\n...0.\n.0...\n\nAir2\n#86A2E4\n.0.0.\n.0...\n...0.\n.0...\n...0.\n\nAir3\n#86A2E4\n.0...\n...0.\n.0...\n...0.\n.0.0.\n\nAir4\n#86A2E4\n...0.\n.0...\n...0.\n.0.0.\n.0...\n\nCrate\n#7b865e #3d743d\n.000.\n11100\n11110\n11110\n.111.\n\nTarget\n#5d3a2f\n.....\n.000.\n.0.0.\n.000.\n.....\n\nBackground\n#cfb39b #f5bda2 #e6b3a1 #d9b193 #dba886 #f0cbb9\n01100\n23340\n44425\n42245\n32340\n\nBackground2\n#9d7a5f #5d3a2f\n11111\n11111\n11111\n11111\n11111\n\n\nWall\n#9d7a5f #d07953 #c96845 #906646 #ad6545 #dd906f\n01100\n23340\n44425\n42245\n32340\n\nauxAnim\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = PlayerN\n* = Crate\n@ = Crate and Target\nO = Target\nx = vent1\n` = vent2\ny = Background2\n\nvent = Vent1 or Vent2\ncollision = wall or crate or vent\nair = Air0 or Air1 or Air2 or Air3 or Air4\npushable = vent or crate\nplayer = PlayerL or PlayerR or playerN\n\n======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nvent move 19444907\nstartgame 60152908\nundo 31509107\nrestart 24415508\nshowmessage 5759908\n\nsfx1 37419308\nsfx0 36262108\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBackground2\nauxAnim\nTarget\nair\nPlayer, Wall, Crate, Vent\n\n======\nRULES\n======\n[right playerN no auxAnim] -> [right playerR auxAnim]\n[left playerN no auxAnim] -> [left playerL auxAnim]\n[right playerL no auxAnim] -> [right playerN auxAnim]\n[left playerR no auxAnim] -> [left playerN auxAnim]\n[down player no auxAnim] -> [down playerN auxAnim]\n\n[ up player no air] -> [ player] sfx1\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Player | Vent ] -> [ > Player | > Vent ]\n[ > pushable | pushable] -> [> pushable | > pushable]\n\n\nup[vent | ... | player air | no collision] -> [vent | ... | up player | no collision]\n\n(animations)\nlate [vent1] -> [vent2 auxAnim]\nlate [vent2 no auxAnim] -> [vent1]\n\n\nlate [air crate ] -> [crate]\nlate down[air | no air no vent] -> [ | ]\n\nlate [air0 no auxAnim] -> [ air1 auxAnim]\nlate [air1 no auxAnim] -> [ air2 auxAnim]\nlate [air2 no auxAnim] -> [ air3 auxAnim]\nlate [air3 no auxAnim] -> [ air4 auxAnim]\nlate [air4 no auxAnim] -> [ air0 auxAnim]\n\nlate [ auxAnim ] -> []\n\nstartLoop\nlate up[vent | no air no collision] -> [vent | Air0]\nlate up[air0 | no air no collision] -> [air0 | air1]\nlate up[air1 | no air no collision] -> [air1 | air2]\nlate up[air2 | no air no collision] -> [air2 | air3]\nlate up[air3 | no air no collision] -> [air3 | air4]\nlate up[air4 | no air no collision] -> [air4 | air0]\nendLoop\n\nlate up[vent | ... | player air | no collision] -> again sfx0\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n(##########\n#........#\n#..#.*...#\n#..p.#...#\n#.x....#.#\n#.....x..#\n#...x....#\n#..#o#...#\n#..###...#\n##########)\n\n\n\n(SOLVABLE)\n\nmessage 7 leaves left\n\n########\n#.p....#\n#...*..#\n#.*...`#\n#.o...##\n#...o.#y\n#.....#y\n#######y\n\nmessage 6 leaves left\n\n##########\n#........#\n#.*..p...#\n#.....o..#\n#.*o.....#\n#.....o..#\n#.*......#\n#........#\n###`##`###\nyy######yy\n\nmessage 5 leaves left\n\nyy#######\n###.....#\n#.....o.#\n#.*..*o.#\n#.p.....#\n#....*###\n##....#yy\ny##...#yy\nyy#xxx#yy\nyy#####yy\n\nmessage 4 leaves left\n\nyyy#######yyy\n####..p..####\n#.....#.....#\n#..*..#.....#\n#..#.....#o.#\n#...#.......#\n###...x...###\nyy####`####yy\nyyyyy###yyyyy\n\nmessage 3 leaves left\n\ny#########y\ny#.#.#.#.#y\n##.......##\n#..p......#\n#..*..#.o.#\n#..x......#\n#..x......#\n#..x......#\n###########\n\nmessage 2 leaves left\n\n##########\n#.....#o.#\n#.#p.....#\n#.....#..#\n#..*.....#\n#....x#..#\n#........#\n#........#\n#.x......#\n##########\n\nmessage 1 leaf left\n\nyyy#####yyy\nyyy#.#.#yyy\n####.o.####\n#.........#\n#....p.x..#\n#....*....#\n#..x......#\n#......x..#\n#.........#\n###########\n\nmessage no more leaves\nmessage welcome to winter\n\n\n",[3,1,1,1,2,1,1,1,2,3,2,0,0,1,2,3,"undo","undo","undo",2,3,3,1,3,0,1,1,1,2,2,2,3,0,1,0,3,3,1,2,1,2,3],"background wall:0,0,0,0,0,0,0,0,0,background background2:1,\n0,background:2,2,2,2,2,2,2,0,1,\n0,2,2,2,2,background playerr:3,2,2,0,0,\n0,2,background crate:4,2,background target:5,4,air3 background:6,air2 background:7,background vent1:8,0,\n0,2,2,2,2,2,4,2,0,0,\n0,2,2,2,2,2,2,2,0,0,\n0,7,7,air1 background target:9,air0 background:10,air4 background target:11,6,7,8,0,\n0,2,2,2,2,2,2,2,0,0,\n0,2,2,2,2,2,2,2,0,1,\n0,0,0,0,0,0,0,0,0,1,\n",3,"1627770803266.147"] + ["title Fall Leaves \nauthor Le Slo\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\nbackground_color #5d3a2f\n\n========\nOBJECTS\n========\n\nPlayerL\n#ad6545 #c96845 #d97865\n0.12.\n.0012\n.1112\n..111\n.....\n\n\nPlayerR\n#c96845 #ad6545 #d97865\n..222\n.0002\n.0100\n1100.\n.....\n\nPlayerN\n#c96845 #ad6545 #d97865\n.02..\n.002.\n11102\n.000.\n.00..\n\nVent1\n#485259 #7a8891 \n1..11\n01.0.\n..0..\n.0.01\n00..0\n\nVent2\n#485259 #7a8891\n..11.\n1.0..\n00001\n..0.0\n.00..\n\nAir0\n#86A2E4\n.0...\n...0.\n.0.0.\n.0...\n...0.\n\nAir1\n#86A2E4\n...0.\n.0.0.\n.0...\n...0.\n.0...\n\nAir2\n#86A2E4\n.0.0.\n.0...\n...0.\n.0...\n...0.\n\nAir3\n#86A2E4\n.0...\n...0.\n.0...\n...0.\n.0.0.\n\nAir4\n#86A2E4\n...0.\n.0...\n...0.\n.0.0.\n.0...\n\nCrate\n#7b865e #3d743d\n.000.\n11100\n11110\n11110\n.111.\n\nTarget\n#5d3a2f\n.....\n.000.\n.0.0.\n.000.\n.....\n\nBackground\n#cfb39b #f5bda2 #e6b3a1 #d9b193 #dba886 #f0cbb9\n01100\n23340\n44425\n42245\n32340\n\nBackground2\n#9d7a5f #5d3a2f\n11111\n11111\n11111\n11111\n11111\n\n\nWall\n#9d7a5f #d07953 #c96845 #906646 #ad6545 #dd906f\n01100\n23340\n44425\n42245\n32340\n\nauxAnim\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = PlayerN\n* = Crate\n@ = Crate and Target\nO = Target\nx = vent1\n` = vent2\ny = Background2\n\nvent = Vent1 or Vent2\ncollision = wall or crate or vent\nair = Air0 or Air1 or Air2 or Air3 or Air4\npushable = vent or crate\nplayer = PlayerL or PlayerR or playerN\n\n======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nvent move 19444907\nstartgame 60152908\nundo 31509107\nrestart 24415508\nshowmessage 5759908\n\nsfx1 37419308\nsfx0 36262108\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBackground2\nauxAnim\nTarget\nair\nPlayer, Wall, Crate, Vent\n\n======\nRULES\n======\n[right playerN no auxAnim] -> [right playerR auxAnim]\n[left playerN no auxAnim] -> [left playerL auxAnim]\n[right playerL no auxAnim] -> [right playerN auxAnim]\n[left playerR no auxAnim] -> [left playerN auxAnim]\n[down player no auxAnim] -> [down playerN auxAnim]\n\n[ up player no air] -> [ player] sfx1\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Player | Vent ] -> [ > Player | > Vent ]\n[ > pushable | pushable] -> [> pushable | > pushable]\n\n\nup[vent | ... | player air | no collision] -> [vent | ... | up player | no collision]\n\n(animations)\nlate [vent1] -> [vent2 auxAnim]\nlate [vent2 no auxAnim] -> [vent1]\n\n\nlate [air crate ] -> [crate]\nlate down[air | no air no vent] -> [ | ]\n\nlate [air0 no auxAnim] -> [ air1 auxAnim]\nlate [air1 no auxAnim] -> [ air2 auxAnim]\nlate [air2 no auxAnim] -> [ air3 auxAnim]\nlate [air3 no auxAnim] -> [ air4 auxAnim]\nlate [air4 no auxAnim] -> [ air0 auxAnim]\n\nlate [ auxAnim ] -> []\n\nstartLoop\nlate up[vent | no air no collision] -> [vent | Air0]\nlate up[air0 | no air no collision] -> [air0 | air1]\nlate up[air1 | no air no collision] -> [air1 | air2]\nlate up[air2 | no air no collision] -> [air2 | air3]\nlate up[air3 | no air no collision] -> [air3 | air4]\nlate up[air4 | no air no collision] -> [air4 | air0]\nendLoop\n\nlate up[vent | ... | player air | no collision] -> again sfx0\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n(##########\n#........#\n#..#.*...#\n#..p.#...#\n#.x....#.#\n#.....x..#\n#...x....#\n#..#o#...#\n#..###...#\n##########)\n\n\n\n(SOLVABLE)\n\nmessage 7 leaves left\n\n########\n#.p....#\n#...*..#\n#.*...`#\n#.o...##\n#...o.#y\n#.....#y\n#######y\n\nmessage 6 leaves left\n\n##########\n#........#\n#.*..p...#\n#.....o..#\n#.*o.....#\n#.....o..#\n#.*......#\n#........#\n###`##`###\nyy######yy\n\nmessage 5 leaves left\n\nyy#######\n###.....#\n#.....o.#\n#.*..*o.#\n#.p.....#\n#....*###\n##....#yy\ny##...#yy\nyy#xxx#yy\nyy#####yy\n\nmessage 4 leaves left\n\nyyy#######yyy\n####..p..####\n#.....#.....#\n#..*..#.....#\n#..#.....#o.#\n#...#.......#\n###...x...###\nyy####`####yy\nyyyyy###yyyyy\n\nmessage 3 leaves left\n\ny#########y\ny#.#.#.#.#y\n##.......##\n#..p......#\n#..*..#.o.#\n#..x......#\n#..x......#\n#..x......#\n###########\n\nmessage 2 leaves left\n\n##########\n#.....#o.#\n#.#p.....#\n#.....#..#\n#..*.....#\n#....x#..#\n#........#\n#........#\n#.x......#\n##########\n\nmessage 1 leaf left\n\nyyy#####yyy\nyyy#.#.#yyy\n####.o.####\n#.........#\n#....p.x..#\n#....*....#\n#..x......#\n#......x..#\n#.........#\n###########\n\nmessage no more leaves\nmessage welcome to winter\n\n\n", [3, 1, 1, 1, 2, 1, 1, 1, 2, 3, 2, 0, 0, 1, 2, 3, "undo", "undo", "undo", 2, 3, 3, 1, 3, 0, 1, 1, 1, 2, 2, 2, 3, 0, 1, 0, 3, 3, 1, 2, 1, 2, 3], "background wall:0,0,0,0,0,0,0,0,0,background background2:1,\n0,background:2,2,2,2,2,2,2,0,1,\n0,2,2,2,2,background playerr:3,2,2,0,0,\n0,2,background crate:4,2,background target:5,4,air3 background:6,air2 background:7,background vent1:8,0,\n0,2,2,2,2,2,4,2,0,0,\n0,2,2,2,2,2,2,2,0,0,\n0,7,7,air1 background target:9,air0 background:10,air4 background target:11,6,7,8,0,\n0,2,2,2,2,2,2,2,0,0,\n0,2,2,2,2,2,2,2,0,1,\n0,0,0,0,0,0,0,0,0,1,\n", 3, "1627770803266.147"] ], [ `gallery game: mini nomerads`, - ["title Mini Nomerads\nauthor Dan Williams\nhomepage www.activeupgames.com\n\n========\nOBJECTS\n========\n\nBackground\ngreen #11aa11\n00000\n01000\n00000\n00010\n00000\n\nTarget\nDarkBlue\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nWall\nBROWN orange darkbrown green\n31113\n10002\n10002\n10002\n32223\n\nPlayer\nBlack red White Blue\n.222.\n.020.\n11111\n.333.\n.3.3.\n\nball\nlightblue blue darkblue\n.011.\n01111\n11111\n11112\n.112.\n\nredball\nyellow orange\n..0..\n.000.\n00100\n.000.\n..0..\n\nballright\ntransparent\n\nballdown\ntransparent\n\nballleft\ntransparent\n\nballup\ntransparent\n\nrublock\nwhite lightgray gray\n0....\n01...\n011..\n0111.\n12222\n\nrdblock\nwhite lightgray gray\n00001\n0112.\n012..\n02...\n1....\n\nldblock\nwhite lightgray gray\n00001\n.1112\n..112\n...12\n....2\n\nlublock\nwhite lightgray gray\n....1\n...02\n..012\n.0112\n12222\n\nsrblock\npink #ffcccc #ff5599\n1....\n10...\n102..\n12...\n2....\n\nsdblock\npink #ffcccc #ff5599\n11110\n.002.\n..2..\n.....\n.....\n\nslblock\npink #ffcccc #ff5599\n....0\n...12\n..102\n...02\n....2\n\nsublock\npink #ffcccc #ff5599\n.....\n.....\n..1..\n.100.\n12222\n\nrugen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nrdgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nldgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nlugen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nsrgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nsdgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nslgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nsugen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nrugenbg\nyellow\n0....\n.....\n0.0..\n.....\n0.0.0\n\nrdgenbg\nyellow\n0.0.0\n.....\n0.0..\n.....\n0....\n\nldgenbg\nyellow\n0.0.0\n.....\n..0.0\n.....\n....0\n\nlugenbg\nyellow\n....0\n.....\n..0.0\n.....\n0.0.0\n\nsrgenbg\nyellow\n0....\n.....\n0.0..\n.....\n0....\n\nsdgenbg\nyellow\n0.0.0\n.....\n..0..\n.....\n.....\n\nslgenbg\nyellow\n....0\n.....\n..0.0\n.....\n....0\n\nsugenbg\nyellow\n.....\n.....\n..0..\n.....\n0.0.0\n\nstopper\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = Target\n* = ball\nX = redball\n@ = redball and Target\n1 = rublock\n2 = rdblock\n3 = ldblock\n4 = lublock\n5 = srblock\n6 = sdblock\n7 = slblock\n8 = sublock\na = rugen\nb = rdgen\nc = ldgen\nd = lugen\ne = srgen\nf = sdgen\ng = slgen\nh = sugen\nq = rugenbg\nw = rdgenbg\nv = ldgenbg\nr = lugenbg\nt = srgenbg\ny = sdgenbg\nu = slgenbg\ni = sugenbg\nblock = rublock or rdblock or lublock or ldblock or srblock or sdblock or slblock or sublock\nballdir = ballright or balldown or ballleft or ballup\ngenblock = rugen or rdgen or ldgen or lugen or srgen or sdgen or slgen or sugen\nbg = rugenbg or rdgenbg or ldgenbg or lugenbg or srgenbg or sdgenbg or slgenbg or sugenbg\n\n=======\nSOUNDS\n=======\n\nplayer MOVE 29986507\nblock create 8026309\ngenblock create 8026309\nstartgame 50407900\nrestart 90013309\nclosemessage 35794303\n\nundo 21150709\nsfx0 6213103 (redirect)\nsfx1 55324302 (split)\nsfx2 24543300 (get redball on target)\nsfx3 58317102 (destroy block)\nsfx4 21946837 (push block)\nsfx5 77326104 (ball thud against wall)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbg\nTarget, block, genblock\nPlayer, Wall, ball, redball\nballdir\nstopper\n\n======\nRULES\n======\n\n[ > Player | block ] -> [ > Player | > block ] sfx4\n[ > Player | ball ] -> [ > Player | > ball ] sfx4\n\n\n([ ball target ] -> [ redball target ])\n\n[ ball | redball ] -> [ redball | redball ] sfx2\n\n[ block wall ] -> [ wall ] sfx3\n\n\n(ball movement)\n[UP ball] -> [ball ballup]\n[DOWN ball] -> [ball balldown]\n[LEFT ball] -> [ball ballleft]\n[RIGHT ball] -> [ball ballright]\n\nUP [ ball ballup no stopper | no ball no Wall ] -> [ | ballup stopper ball ] again\nDOWN [ ball balldown no stopper | no ball no Wall ] -> [ | balldown stopper ball ] again\nLEFT [ ball ballleft no stopper | no ball no Wall ] -> [ | ballleft stopper ball ] again\nRIGHT [ ball ballright no stopper| no ball no Wall ] -> [ | ballright stopper ball ] again\n\n(ball collision)\nstartloop\nvertical [ | ballright slblock | ] -> [ ball balldown | no ball slblock | ball ballup ] sfx1\nhorizontal [ | balldown sublock | ] -> [ ball ballright | no ball sublock | ball ballleft ] sfx1\nvertical [ | ballleft srblock | ] -> [ ball balldown | no ball srblock | ball ballup ] sfx1\nhorizontal [ | ballup sdblock | ] -> [ ball ballright | no ball sdblock | ball ballleft ] sfx1\nendloop\n\n[ ballright lublock ] -> [ ballup lublock ] sfx0\n[ ballright ldblock ] -> [ ldblock balldown ] sfx0\n\n[ balldown rublock ] -> [ ballright rublock ] sfx0\n[ balldown lublock ] -> [ ballleft lublock ] sfx0\n\n[ ballleft rublock ] -> [ ballup rublock ] sfx0\n[ ballleft rdblock ] -> [ balldown rdblock ] sfx0\n\n[ ballup rdblock ] -> [ ballright rdblock ] sfx0\n[ ballup ldblock ] -> [ ballleft ldblock ] sfx0\n\n\n\n\n\n[ > ballleft ] -> [ > ballleft ]\n[ > ballright ] -> [ > ballright ]\n\n(block generation)\nlate up [ player rugen | no block ] -> [ player rugen | rublock ] \nlate up [ player rdgen | no block ] -> [ player rdgen | rdblock ] \nlate up [ player ldgen | no block ] -> [ player ldgen | ldblock ] \nlate up [ player lugen | no block ] -> [ player lugen | lublock ] \nlate up [ player srgen | no block ] -> [ player srgen | srblock ] \nlate up [ player sdgen | no block ] -> [ player sdgen | sdblock ] \nlate up [ player slgen | no block ] -> [ player slgen | slblock ] \nlate up [ player sugen | no block ] -> [ player sugen | sublock ] \n\n\n[stopper]->[]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll redball on Target\nAll target on redball\n\n=======\nLEVELS\n=======\n\nmessage Video games.\n\nMessage Push the blue ball. Blue balls stick to yellow targets and bounce off of blocks. You can push the blocks and generate them. Push blocks into walls to get rid of them.\n\nMessage Level 1 of 9\n\n\n###########\n#.........#\n#.p.*..O@.#\n#.........#\n###########\n\n\nMessage Level 2 of 9\n\n###########\n#.........#\n#.p.*..3..#\n#.........#\n#......O..#\n#......@..#\n###########\n\nmessage Level 3 of 9\n\n###########\n#.........#\n#.p.*...3.#\n#.........#\n#....O.4..#\n#....@....#\n###########\n\nmessage Level 4 of 9\n\n###########\n#......@..#\n#......O..#\n#.p.*.....#\n#..r......#\n#..d......#\n###########\n\nmessage Level 5 of 9\n\n#############\n#......O....#\n#......@....#\n#...........#\n#.p.*.......#\n#..q.w.v.r..#\n#..a.b.c.d..#\n#############\n\nmessage Level 6 of 9\n\n#############\n#...@O......#\n#....O......#\n#...........#\n#.p.*...7...#\n#...........#\n#..q.w.v.r..#\n#..a.b.c.d..#\n#############\n\nMessage Level 7 of 9\n\n###################\n#.................#\n#........o........#\n#.......o@o.......#\n#........o........#\n#.................#\n#.p.*.............#\n#.................#\n#.q.w.v.r.t.y.u.i.#\n#.a.b.c.d.e.f.g.h.#\n###################\n\nMessage Level 8 of 9\n\n###################\n#.................#\n#.................#\n#........@oo......#\n#........oo.......#\n#.................#\n#.p.*.............#\n#.................#\n#.q.w.v.r.t.y.u.i.#\n#.a.b.c.d.e.f.g.h.#\n###################\n\nMessage Level 9 of 9\n\n#######################\n#.....................#\n#.....................#\n#.....................#\n#.........ooo.........#\n#.........o@o.........#\n#.........ooo.........#\n#.....................#\n#...p.*...............#\n#.....................#\n#...q.w.v.r.t.y.u.i...#\n#...a.b.c.d.e.f.g.h...#\n#######################\n\nMessage You win! There will be a full version of this game coming out eventually. Follow @activeupgames if you want to know when that happens. I love video games!\n\n\n\n\n\n",[3,3,"undo",1,2,3,2,1,3,4,4,0,1,0,3,3,"undo","undo",0,0,3,2,2,1,2,3,3,3,2,3,0,1,1,1,0,3],"background wall:0,0,0,0,0,0,0,0,background:1,1,1,\n1,1,0,0,1,1,1,1,1,0,0,\n1,1,1,background lugenbg:2,background lugen:3,0,0,1,1,background player:4,1,\n1,0,0,1,1,1,1,1,0,0,background ballup redball:5,\n1,background lublock:6,1,1,0,0,background redball target:7,background target:8,1,1,1,\n0,0,1,1,1,1,1,0,0,1,1,\n1,1,1,0,0,0,0,0,0,0,0,\n",9,"1627769983359.2385"] + ["title Mini Nomerads\nauthor Dan Williams\nhomepage www.activeupgames.com\n\n========\nOBJECTS\n========\n\nBackground\ngreen #11aa11\n00000\n01000\n00000\n00010\n00000\n\nTarget\nDarkBlue\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nWall\nBROWN orange darkbrown green\n31113\n10002\n10002\n10002\n32223\n\nPlayer\nBlack red White Blue\n.222.\n.020.\n11111\n.333.\n.3.3.\n\nball\nlightblue blue darkblue\n.011.\n01111\n11111\n11112\n.112.\n\nredball\nyellow orange\n..0..\n.000.\n00100\n.000.\n..0..\n\nballright\ntransparent\n\nballdown\ntransparent\n\nballleft\ntransparent\n\nballup\ntransparent\n\nrublock\nwhite lightgray gray\n0....\n01...\n011..\n0111.\n12222\n\nrdblock\nwhite lightgray gray\n00001\n0112.\n012..\n02...\n1....\n\nldblock\nwhite lightgray gray\n00001\n.1112\n..112\n...12\n....2\n\nlublock\nwhite lightgray gray\n....1\n...02\n..012\n.0112\n12222\n\nsrblock\npink #ffcccc #ff5599\n1....\n10...\n102..\n12...\n2....\n\nsdblock\npink #ffcccc #ff5599\n11110\n.002.\n..2..\n.....\n.....\n\nslblock\npink #ffcccc #ff5599\n....0\n...12\n..102\n...02\n....2\n\nsublock\npink #ffcccc #ff5599\n.....\n.....\n..1..\n.100.\n12222\n\nrugen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nrdgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nldgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nlugen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nsrgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nsdgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nslgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nsugen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nrugenbg\nyellow\n0....\n.....\n0.0..\n.....\n0.0.0\n\nrdgenbg\nyellow\n0.0.0\n.....\n0.0..\n.....\n0....\n\nldgenbg\nyellow\n0.0.0\n.....\n..0.0\n.....\n....0\n\nlugenbg\nyellow\n....0\n.....\n..0.0\n.....\n0.0.0\n\nsrgenbg\nyellow\n0....\n.....\n0.0..\n.....\n0....\n\nsdgenbg\nyellow\n0.0.0\n.....\n..0..\n.....\n.....\n\nslgenbg\nyellow\n....0\n.....\n..0.0\n.....\n....0\n\nsugenbg\nyellow\n.....\n.....\n..0..\n.....\n0.0.0\n\nstopper\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = Target\n* = ball\nX = redball\n@ = redball and Target\n1 = rublock\n2 = rdblock\n3 = ldblock\n4 = lublock\n5 = srblock\n6 = sdblock\n7 = slblock\n8 = sublock\na = rugen\nb = rdgen\nc = ldgen\nd = lugen\ne = srgen\nf = sdgen\ng = slgen\nh = sugen\nq = rugenbg\nw = rdgenbg\nv = ldgenbg\nr = lugenbg\nt = srgenbg\ny = sdgenbg\nu = slgenbg\ni = sugenbg\nblock = rublock or rdblock or lublock or ldblock or srblock or sdblock or slblock or sublock\nballdir = ballright or balldown or ballleft or ballup\ngenblock = rugen or rdgen or ldgen or lugen or srgen or sdgen or slgen or sugen\nbg = rugenbg or rdgenbg or ldgenbg or lugenbg or srgenbg or sdgenbg or slgenbg or sugenbg\n\n=======\nSOUNDS\n=======\n\nplayer MOVE 29986507\nblock create 8026309\ngenblock create 8026309\nstartgame 50407900\nrestart 90013309\nclosemessage 35794303\n\nundo 21150709\nsfx0 6213103 (redirect)\nsfx1 55324302 (split)\nsfx2 24543300 (get redball on target)\nsfx3 58317102 (destroy block)\nsfx4 21946837 (push block)\nsfx5 77326104 (ball thud against wall)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbg\nTarget, block, genblock\nPlayer, Wall, ball, redball\nballdir\nstopper\n\n======\nRULES\n======\n\n[ > Player | block ] -> [ > Player | > block ] sfx4\n[ > Player | ball ] -> [ > Player | > ball ] sfx4\n\n\n([ ball target ] -> [ redball target ])\n\n[ ball | redball ] -> [ redball | redball ] sfx2\n\n[ block wall ] -> [ wall ] sfx3\n\n\n(ball movement)\n[UP ball] -> [ball ballup]\n[DOWN ball] -> [ball balldown]\n[LEFT ball] -> [ball ballleft]\n[RIGHT ball] -> [ball ballright]\n\nUP [ ball ballup no stopper | no ball no Wall ] -> [ | ballup stopper ball ] again\nDOWN [ ball balldown no stopper | no ball no Wall ] -> [ | balldown stopper ball ] again\nLEFT [ ball ballleft no stopper | no ball no Wall ] -> [ | ballleft stopper ball ] again\nRIGHT [ ball ballright no stopper| no ball no Wall ] -> [ | ballright stopper ball ] again\n\n(ball collision)\nstartloop\nvertical [ | ballright slblock | ] -> [ ball balldown | no ball slblock | ball ballup ] sfx1\nhorizontal [ | balldown sublock | ] -> [ ball ballright | no ball sublock | ball ballleft ] sfx1\nvertical [ | ballleft srblock | ] -> [ ball balldown | no ball srblock | ball ballup ] sfx1\nhorizontal [ | ballup sdblock | ] -> [ ball ballright | no ball sdblock | ball ballleft ] sfx1\nendloop\n\n[ ballright lublock ] -> [ ballup lublock ] sfx0\n[ ballright ldblock ] -> [ ldblock balldown ] sfx0\n\n[ balldown rublock ] -> [ ballright rublock ] sfx0\n[ balldown lublock ] -> [ ballleft lublock ] sfx0\n\n[ ballleft rublock ] -> [ ballup rublock ] sfx0\n[ ballleft rdblock ] -> [ balldown rdblock ] sfx0\n\n[ ballup rdblock ] -> [ ballright rdblock ] sfx0\n[ ballup ldblock ] -> [ ballleft ldblock ] sfx0\n\n\n\n\n\n[ > ballleft ] -> [ > ballleft ]\n[ > ballright ] -> [ > ballright ]\n\n(block generation)\nlate up [ player rugen | no block ] -> [ player rugen | rublock ] \nlate up [ player rdgen | no block ] -> [ player rdgen | rdblock ] \nlate up [ player ldgen | no block ] -> [ player ldgen | ldblock ] \nlate up [ player lugen | no block ] -> [ player lugen | lublock ] \nlate up [ player srgen | no block ] -> [ player srgen | srblock ] \nlate up [ player sdgen | no block ] -> [ player sdgen | sdblock ] \nlate up [ player slgen | no block ] -> [ player slgen | slblock ] \nlate up [ player sugen | no block ] -> [ player sugen | sublock ] \n\n\n[stopper]->[]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll redball on Target\nAll target on redball\n\n=======\nLEVELS\n=======\n\nmessage Video games.\n\nMessage Push the blue ball. Blue balls stick to yellow targets and bounce off of blocks. You can push the blocks and generate them. Push blocks into walls to get rid of them.\n\nMessage Level 1 of 9\n\n\n###########\n#.........#\n#.p.*..O@.#\n#.........#\n###########\n\n\nMessage Level 2 of 9\n\n###########\n#.........#\n#.p.*..3..#\n#.........#\n#......O..#\n#......@..#\n###########\n\nmessage Level 3 of 9\n\n###########\n#.........#\n#.p.*...3.#\n#.........#\n#....O.4..#\n#....@....#\n###########\n\nmessage Level 4 of 9\n\n###########\n#......@..#\n#......O..#\n#.p.*.....#\n#..r......#\n#..d......#\n###########\n\nmessage Level 5 of 9\n\n#############\n#......O....#\n#......@....#\n#...........#\n#.p.*.......#\n#..q.w.v.r..#\n#..a.b.c.d..#\n#############\n\nmessage Level 6 of 9\n\n#############\n#...@O......#\n#....O......#\n#...........#\n#.p.*...7...#\n#...........#\n#..q.w.v.r..#\n#..a.b.c.d..#\n#############\n\nMessage Level 7 of 9\n\n###################\n#.................#\n#........o........#\n#.......o@o.......#\n#........o........#\n#.................#\n#.p.*.............#\n#.................#\n#.q.w.v.r.t.y.u.i.#\n#.a.b.c.d.e.f.g.h.#\n###################\n\nMessage Level 8 of 9\n\n###################\n#.................#\n#.................#\n#........@oo......#\n#........oo.......#\n#.................#\n#.p.*.............#\n#.................#\n#.q.w.v.r.t.y.u.i.#\n#.a.b.c.d.e.f.g.h.#\n###################\n\nMessage Level 9 of 9\n\n#######################\n#.....................#\n#.....................#\n#.....................#\n#.........ooo.........#\n#.........o@o.........#\n#.........ooo.........#\n#.....................#\n#...p.*...............#\n#.....................#\n#...q.w.v.r.t.y.u.i...#\n#...a.b.c.d.e.f.g.h...#\n#######################\n\nMessage You win! There will be a full version of this game coming out eventually. Follow @activeupgames if you want to know when that happens. I love video games!\n\n\n\n\n\n", [3, 3, "undo", 1, 2, 3, 2, 1, 3, 4, 4, 0, 1, 0, 3, 3, "undo", "undo", 0, 0, 3, 2, 2, 1, 2, 3, 3, 3, 2, 3, 0, 1, 1, 1, 0, 3], "background wall:0,0,0,0,0,0,0,0,background:1,1,1,\n1,1,0,0,1,1,1,1,1,0,0,\n1,1,1,background lugenbg:2,background lugen:3,0,0,1,1,background player:4,1,\n1,0,0,1,1,1,1,1,0,0,background ballup redball:5,\n1,background lublock:6,1,1,0,0,background redball target:7,background target:8,1,1,1,\n0,0,1,1,1,1,1,0,0,1,1,\n1,1,1,0,0,0,0,0,0,0,0,\n", 9, "1627769983359.2385"] ], [ `gallery game: Broken Abacus`, - ["title Broken Abacus\nauthor Le Slo\nhomepage le-slo.itch.io/\n\nbackground_color #0A060f\nnoaction\nagain_interval 0.05\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nFloorL\n#9A9510 #7A4690\n01111\n01111\n01111\n01111\n01111\n\nFloorR\n#7A4690 #9A9510\n00001\n00001\n00001\n00001\n00001\n\nFloorT\n#9A9510 #8d6d9f\n00000\n11111\n11111\n11111\n11111\n\nFloorB\n#8d6d9f #9A9510\n00000\n00000\n00000\n00000\n11111\n\nCornerTL\n#9A9510 #7A4690\n00000\n01011\n00111\n01111\n01111\n\nCornerTR\n#9A9510 #7A4690\n00000\n11010\n11100\n11110\n11110\n\n\n\nCornerBL\n#9A9510 #7A4690\n01111\n01111\n00111\n01011\n00000\n\nCornerBR\n#7A4690 #9A9510\n00001\n00001\n00011\n00101\n11111\n\nPitT\n#5A3670 #3A2640 #1A1620\n00000\n11111\n11111\n22222\n22222\n\nPitWT\n #364355 #162335 #081118\n00000\n11111\n11111\n22222\n22222\n\n\nWallT\n#6187b9 #6d8caf\n00000\n00000\n00000\n00000\n00000\n\nPit\n#0A060f\n00000\n00000\n00000\n00000\n00000\n\nWall\n#6187b9 #6187b9 #465365\n00000\n11111\n11111\n11111\n22222\n\n\nBackground\n#7A4690 #7A4690\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\n#d6cF24\n.....\n.000.\n.0.0.\n.000.\n.....\n\nBarH\n#a69F10\n.....\n.....\n00000\n.....\n.....\n\nBarV\n#C6BF14 black\n..1..\n..1..\n..1..\n..1..\n..1..\n\nBarHN\nred\n.....\n.....\n00000\n.....\n.....\n\nBarVN\n#465365 #4A3500\n..1..\n..1..\n..1..\n..1..\n..1..\n\ncrate01\n#C6BF14 #7A7510 #9A9510 #d6cF24\n.....\n.003.\n.200.\n.120.\n.....\n\n\naux\ntransparent\n\ncantMove\ntransparent\n\n\ncantMove2\ntransparent\n\nauxPush\ntransparent\n\nauxSolid\n#23285b\n.....\n.000.\n.000.\n.000.\n.....\n\nauxPit\ntransparent\n\n\nAnim01\n#ccd7a5\n..0..\n.000.\n00.00\n.000.\n..0..\n\nAnim02\n#ccd7a5\n..0..\n.0.0.\n0.0.0\n.0.0.\n..0..\n\nAnim03\n#ccd7a5\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nAnim04\n#ccd7a5\n.....\n..0..\n.000.\n..0..\n.....\n\nAnim05\n#ccd7a5\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = barH\nI = barvn\nT = pit\n\nO = Target\n\n1 = Crate01\n2 = barH and BarVN and crate01\n\na = Crate01 and barh\nb = Crate01 and barvn\nc = barh and barvn\n\nd = CornerTL\ne = CornerTR\nf = CornerBL\ng = CornerBR\nh = FloorL\nj = FloorR\nk = FloorT\nl = FloorB\nplayer = barH or BarV or barhn or barvn\ncrate = crate01\n\nplayernotMove = barhn or barvn\n\nanims = anim01 or anim02 or anim03 or anim04 or anim05\n\nFloor = CornerTL or CornerTR or CornerBL or CornerBR or FloorL or FloorR or FloorT or FloorB\n=======\nSOUNDS\n=======\n\nsfx0 36772507\nsfx1 36772505\n\nbarh move 13941707\n\nsfx2 75593907\n\nsfx3 978108\n\nclosemessage 489108\n\nrestart 35665908\nundo 23271308\n\n(fall)\n\nsfx10 49054908\n\n(stumble)\n\nsfx9 8799108\n\nstartlevel 35665908\n\ntitlescreen 39484708\n\nendlevel 72619508\n\nstartgame 48479708\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFloor\n\npit\nauxPit\nauxSolid\ncantMove2\naux, auxPush\nTarget\npitT, pitWT\nbarvn, barv\n\nbarhn, BarH,\nWall, Crate\ncantMove\nWallT\nanims\n\n======\nRULES\n======\n\ndown [wall no WallT| wall] -> [Wall WallT | wall] \nup [pit no pitT | no pit no wall] -> [pit pitT | ] \nup [pit no pitWT | no pit wall] -> [pit pitWT | wall] \n\n(BLOQUEAMOS EL MOVIMIENTO DE LOS INACTIVOS)\n[> playernotMove] -> [playernotMove]\n\n(***************************HORIZONTAL ACTIVO*******************************)\n\n(-----------------CONTROLA HORIZONTAL------------------)\n\n(casos en los que se puede empujar la barra vertical)\nhorizontal[ > barh crate | barvn] -> [ > barh > crate | > barvn]\nhorizontal[ > barh crate | crate] -> [ > barh > crate| > crate ]\nhorizontal[ > barh crate barvn] -> [ > barh > crate > barvn]\n\n(hacemos el multiban)\nhorizontal[> Crate | crate] -> [> Crate | > Crate ]\n+ horizontal[> crate | barvn] -> [> crate | > barvn ] \n+ horizontal[> crate barvn] -> [> crate > barvn ]\n\n\n(Quitazmos el movimiento de las cajas)\nhorizontal[> crate ] -> [crate]\n\n(movemos todas las piezas verticales)\n[> barvn] [barvn] -> [> barvn] [> barvn]\n(horizontal[> barvn no auxSolid ] -> [> barvn auxSolid] sfx1\n+ vertical[auxSolid| barvn no auxSolid] -> [auxSolid | barvn auxSolid]\n\nhorizontal[> barvn][auxSolid barvn no auxPush] -> [> barvn][> barvn auxSolid auxPush] sfx0\n[auxSolid] -> [ ])\n\n(Empujamos cajas)\nhorizontal[ > barvn | Crate ] -> [ > barvn | > Crate]\n\n(hacemos el multiban)\nhorizontal[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ horizontal[> Crate | crate aux] -> [Crate aux | crate aux]\n+ horizontal[> Crate | wall] -> [crate aux | wall]\n\n(Vemos si nos chocamos)\nhorizontal[> barvn | crate Aux] -> [barvn cantMove | crate Aux] \nhorizontal [ > barvn | wall] -> [barvn cantMove | wall]\n\n(Paralizamos todas las barras)\nhorizontal[cantMove][> barvn] -> [cantMove] [barvn cantMove]\nhorizontal[cantMove][> crate] -> [cantMove] [crate ]\n\n(Empujar en horizontal)\nhorizontal[ > barh crate no BarVN| Crate no barh] -> [ > barh > crate| > Crate] \nhorizontal[ > barh crate no BarVN] -> [ > barh > crate]\n\nhorizontal[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ horizontal[> Crate | crate aux] -> [Crate aux | crate aux] \n+ horizontal[> Crate | wall] -> [crate aux | wall] \n+ horizontal[> Crate | cantMove] -> [crate aux | cantMove] \n\n(Vemos si nos chocamos)\nhorizontal[ > barh | wall ] -> [ barh cantMove2| wall]sfx9\n(Paralizamos todas las barras)\nhorizontal[> barh][barh cantMove2] -> [barh cantMove2][barh cantMove2]\n\nhorizontal[> crate cantMove] -> [crate cantMove]\nhorizontal[> crate cantMove2] -> [crate cantMove2]\nhorizontal[> crate | cantMove] -> [crate | cantMove]\n\n\nhorizontal[> barvn] [cantMove2] -> [barvn] [cantMove2] sfx9\n(Movemos lo que está pegado a la barra vertical)\n\nhorizontal[> barvn crate] -> [> barvn > crate]\nhorizontal[> crate] [cantMove2] -> [crate] [cantMove2]\n\n\nhorizontal[> barh crate no cantMove | no barvn] -> [> barh > crate no cantMove | no barvn]\n\n(Limpiamos el tablero)\n[aux] -> []\n[cantMove] -> []\n[cantMove2] -> []\n[auxPush] -> []\n\n\n(-----------------CONTROLA VERTICAL------------------)\n\nvertical [> crate ] -> [crate] \n(casos en los que se puede empujar la barra vertical)\nvertical[ > barh | crate] -> [ > barh | > crate ]\nvertical[ > barh crate barvn] -> [ > barh > crate > barvn] \n\n\n(hacemos el multiban)\nvertical[> Crate | crate] -> [> Crate | > Crate ] \n+ vertical[> crate | barvn crate] -> [> crate | > barvn crate] \n+ vertical[> crate barvn] -> [> crate > barvn ] \n\n\n(Quitazmos el movimiento de las cajas)\nvertical [> crate ] -> [crate] \nvertical [ > barvn | wall] -> [barvn cantMove | wall]\n\n(movemos todas las piezas verticales)\n[> barvn] [barvn] -> [> barvn] [> barvn]\n(vertical[> barvn no auxSolid ] -> [> barvn auxSolid] \n+ vertical[auxSolid| barvn no auxSolid] -> [auxSolid | barvn auxSolid]\n\nvertical[> barvn][auxSolid barvn no auxPush] -> [> barvn][> barvn auxSolid auxPush] sfx0\n[auxSolid] -> [ ])\n\n(Empujamos cajas)\nvertical[ > barvn crate| Crate ] -> [ > barvn crate| > Crate]\n\n(hacemos el multiban)\nvertical[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ vertical[> Crate | crate aux] -> [Crate aux | crate aux]\n+ vertical[> Crate | wall] -> [crate aux | wall]\n\n(Vemos si nos chocamos)\nvertical[ > barvn | wall] -> [barvn cantMove | wall] \n\n(Paralizamos todas las barras)\nvertical[cantMove][> barvn] -> [cantMove] [barvn cantMove]\nvertical[cantMove][> crate] -> [cantMove] [crate ]\n(En vertical)\nvertical[ > barh | Crate ] -> [ > barh | > Crate]\nvertical[ > barh crate] -> [ > barh > crate] \n\nvertical[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ vertical[> Crate | crate aux] -> [Crate aux | crate aux] \n+ vertical[> Crate | wall] -> [crate aux | wall] \n\n(Vemos si nos chocamos)\nvertical[ > barh | wall ] -> [ barh cantMove2| wall]\nvertical[ > barh | crate aux ] -> [ barh cantMove2| crate aux]\n(Paralizamos todas las barras)\nvertical[> barh][barh cantMove2] -> [barh cantMove2][barh cantMove2] sfx9\nvertical [> barvn] [cantMove2] -> [barvn] [cantMove2] sfx9\n\nvertical[> crate] [cantMove2] -> [crate] [cantMove2]\n\n(Movemos lo que está pegado a la barra vertical)\nvertical[> barvn crate] -> [> barvn > crate]\n\nvertical[> barh crate] -> [> barh > crate]\n(Limpiamos el tablero)\n[aux] -> []\n[cantMove] -> []\n[cantMove2] -> []\n[auxPush] -> []\n\n(\n(comprobamos si empujamos y nos chocamos con la barra vertical)\nhorizontal[ > barh crate | barvn] -> [ > barh > crate | > barvn auxPush]\nhorizontal[ > barh barvn crate ] -> [ > barh > crate > barvn auxPush]\n\n[> barVN auxPush] [barVn no auxPush] -> [> barVN auxPush][> barVN auxPush]\n\nhorizontal [ > barvn | wall] -> [barvn cantMove | wall]\n\n[cantMove][> barvn] -> [cantMove] [barvn cantMove]\n\nhorizontal[ > barvn | Crate ] -> [ > barvn | > Crate]\n\n[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ [> Crate | crate aux] -> [Crate aux | crate aux]\n+ [> Crate | wall] -> [crate aux | wall]\n\nhorizontal[> barvn | crate Aux] -> [barvn cantMove | crate Aux]\n\n[cantMove][> barvn] -> [cantMove] [barvn cantMove]\n\n[> barvn crate] -> [> barvn > crate]\n\nhorizontal[ > barh | wall ] -> [ barh cantMove| wall]\n\n(Movimiento básico)\n\n(Empujar en horizontal)\nhorizontal[ > barh crate | Crate no barh] -> [ > barh > crate| > Crate] sfx0\nhorizontal[ > barh crate no BarVN] -> [ > barh > crate]\n(En vertical)\nvertical[ > barh | Crate ] -> [ > barh | > Crate]\nvertical[ > barh crate] -> [ > barh > crate]\n\n[aux] -> []\n\n[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ [> Crate | crate aux] -> [Crate aux | crate aux]\n+ [> Crate | wall] -> [crate aux | wall]\n\nhorizontal[> barh | crate Aux] -> [> barh | crate Aux]\nvertical[> barh | wall] -> [barh cantMove | wall]\n[cantMove][> crate] -> [cantMove] [crate cantMove]\n\n[cantMove][> crate] -> [cantMove][crate]\n[cantMove][> barvn] -> [cantMove][barvn]\n\n[aux] -> []\n[cantMove] -> []\n[auxPush] -> []\n\n)\n\n\n(\nvertical[ > barh | Crate ] -> [ > barh | > Crate]\n\n\nhorizontal[ > barv | Crate ] -> [ > barv | > Crate]\nvertical[ > barv crate | Crate no barv] -> [ > barv > crate| > Crate] sfx0\n\n\n\nvertical[> barh | crate Aux] -> [barh cantMove | crate Aux]\nhorizontal[> barv | crate Aux] -> [barv cantMove | crate Aux]\n[> player | wall] -> [player cantMove| wall]\n\n\n\n\n[> player][cantMove] ->[player][cantMove]\nvertical [> barv no barHN crate] -> [> barv > crate]\nhorizontal [> barv crate] -> [> barv > crate]\nhorizontal [> barh no barvN crate] -> [> barh > crate]\nvertical [> barh crate] -> [> barh > crate]\n[aux] -> []\n[cantMove] -> [])\n\n(Cambiar los personajes)\n\nvertical [ > barvn | crate no barvn] -> [ > barvn | crate no barvn] sfx2\nhorizontal [ > barh | crate no barh] -> [ > barh | crate no barh] sfx2\nhorizontal [ > barh crate | barvn] -> [ > barh crate | barvn] sfx2\n[> crate no barh no barvn ] -> [> crate no barh no barvn ] sfx0\n\n[action player] [barVN]-> [action player][barV aux]\n[action player] [barV no aux]-> [action player][barVN]\n\n[aux] -> []\n\n[action player] [barHN]-> [action player][barH aux]\n[action player] [barH no aux]-> [action player][barHN]\n\n[aux] -> []\n\n\nlate[anim05] -> []\nlate[anim04] -> [anim05]\nlate[anim03] -> [anim04]\nlate[anim02] -> [anim03]\nlate[anim01] -> [anim02]\n\n\nlate random[] -> [cantMove]\n\nlate[barvn pit no auxSolid] -> [barVn pit auxSolid] \nlate[cantMove][barvn no pit] -> [cantMove2][barVn] \n\nlate[barvn barh crate auxSolid no auxPit] -> [barvn barh crate auxSolid auxPit]\n\nlate[auxPit][barh pit no auxPit] -> [auxPit][barh pit auxPit] \nlate[auxPit][cantMove][barh no pit] -> [auxPit][cantMove2][barh] \n\nlate [CantMove][barVn auxSolid] -> [CantMove] [Anim01 auxSolid]\nlate [CantMove][barH auxPit] -> [CantMove] [Anim01 auxPit]\n\nlate [CantMove] -> []\nlate [CantMove2] -> []\nlate [auxPit] -> []\nlate [auxSolid] -> [ ]\n\nlate [aux] -> []\n\nlate random[] -> [cantMove]\n\nlate[barh pit no auxPit] -> [barh pit auxPit] \nlate[cantMove][barh no pit] -> [cantMove2][barh] \n\nlate[barvn barh crate auxPit no auxSolid] -> [barvn barh crate auxSolid auxPit]\n\nlate[auxSolid][barvn pit no auxSolid] -> [auxSolid][barvn pit auxSolid] \nlate[auxSolid][cantMove][barvn no pit] -> [auxSolid][cantMove2][barvn] \n\nlate [CantMove][barVn auxSolid] -> [CantMove] [Anim01 auxSolid]\nlate [CantMove][barh auxPit] -> [CantMove] [Anim01 auxPit]\n\nlate [CantMove] -> []\nlate [CantMove2] -> []\nlate [auxPit] -> []\nlate [auxSolid] -> [ ]\n\nlate [aux] -> []\n\nlate[crate no player pit] -> [pit Anim01]\n\nlate [anims] -> [anims] again\nlate[Anim01] -> [Anim01] sfx10\n(late[barvn aux pit no auxSolid] -> [barvn auxSolid aux pit] \n+late vertical [barvn auxSolid| barvn pit no auxSolid] -> [barvn auxSolid | barvn pit auxSolid aux] \n+late vertical [cantMove][barvn auxSolid| barvn no pit] -> [cantMove2] [barvn auxSolid | barvn] \n+late [barvn auxSolid crate barh no auxPit] -> [barvn auxSolid auxPit crate barh] \n+late [barvn auxPit crate barh no auxSolid] -> [barvn auxSolid auxPit crate barh] \n+late horizontal [barh auxPit | barh pit no auxPit] -> [barh auxPit |pit barh auxPit aux] \n+late horizontal [cantMove][barh auxSolid| barh no pit] -> [cantMove2][barh auxSolid | barh] \n\nlate [CantMove][player auxSolid] -> [CantMove] [auxSolid]\nlate [CantMove][player auxPit] -> [CantMove] [auxPit]\n\nlate [CantMove] -> []\nlate [CantMove2] -> []\nlate [auxPit] -> []\nlate [auxSolid] -> [ ]\nlate [aux] -> []\n\nrandom late[barh no aux] -> [barh aux]\nrandom late [] -> [cantMove]\n\nlate[barh aux pit no auxPit] -> [barh auxPit aux pit] \n+late vertical [barvn auxSolid| barvn pit no auxSolid] -> [barvn auxSolid | barvn pit auxSolid aux] \n+late vertical [cantMove][barvn auxSolid| barvn no pit] -> [cantMove2] [barvn auxSolid | barvn] \n+late [barvn auxSolid crate barh no auxPit] -> [barvn auxSolid auxPit crate barh] \n+late [barvn auxPit crate barh no auxSolid] -> [barvn auxSolid auxPit crate barh] \n+late horizontal [barh auxPit | barh pit no auxSolid] -> [barh auxPit |pit barh auxPit aux] \n+late horizontal [cantMove][barh auxSolid| barh no pit] -> [cantMove2][barh auxSolid | barh] \n\nlate [CantMove][player auxSolid] -> [CantMove] [auxSolid]\nlate [CantMove][player auxPit] -> [CantMove] [auxPit])\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll target on crate\nAll barv on Crate\n(no barh)\n=======\nLEVELS\n=======\n\nmessage . ||||-----| |||||----- \n\n###########\n#d.......e#\n#..1.1.1..#\n#...ppp...#\n#...ooo...#\n#f.......g#\n###########\nttttttttttt\n\nmessage . |||-----|| |||||----- \n\n#########\n#d.....e#\n#...o1#.#\n#.ppo1..#\n#.#.o1..#\n#f.....g#\n#########\nttttttttt\n\nmessage . ||-----||| |||||----- \n\n#########\n#d..1..e#\n#.o..i..#\n#.pppi..#\n#.o..i..#\n#f..1..g#\n#########\nttttttttt\n\nmessage . |-----|||| |||||----- \n\n#############\n#d.....e#d.e#\n#.......#.o.#\n#..i.#1.#f..#\n#.pcp#1.##o.#\n#..i..1.....#\n#.........o.#\n#f.........g#\n#############\nttttttttttttt\n\nmessage . |||||----- ||||-----| \n\nttt###ttt\n####i####\n#d..i.oe#\n#..1i1..#\n#f..i.o.#\n##pp2...#\nt#f...og#\nt########\nttttttttt \n\nmessage . ||||-----| ||||-----| \n \n########### \n#d.......e# \n#........g# \n#.o.bo##### \n#...i.e#### \n#.apcag#### \n#.o.bo##### \n#........e# \n#f.......g# \n########### \nttttttttttt \n \nmessage . |||-----|| ||||-----| \n \n#######\n#d..1e#\n#o..i.#\n#.ppi.#\n#o..i.#\n#f..1g#\n#######\nttttttt \n \nmessage . ||-----||| ||||-----| \n \n \ntttt### \n#####o# \n#d....# \n#i.pp.# \n#i.11.# \n#f.g#o# \n####### \nttttttt \n \nmessage . |-----|||| ||||-----| \n \n \n###ttttt \n#o###### \n#.#d..e# \n#o#.ppg# \n#..i1.##\n#o.i.1e#\n#..i1..#\n#f....g#\n########\ntttttttt\n\nmessage . |||||----- |||-----|| \n\nttt######\nttt#de#1#\nttt#....#\n####i.1.#\n#de#i1..#\n#.o..pp.#\n#foog#fg#\n#########\nttttttttt\n\nmessage . ||||-----| |||-----|| \n\nt#####tttt\n##d.e##ttt\n#d.i.###tt\n#f.b..e#tt\n##..pa.###\n#o.#....e#\n#f...g#og#\n##########\ntttttttttt\n\nmessage . |||-----|| |||-----|| \n\nmessage CRACK!\n\n###ttttttttttt\n#d.tt.tt.#tttt\n#..ttttttt.t#t\n#...ttttt.t.#t\n#..i..tt.ttttt\n#.acpttttt.#tt\n#..i.tttttt#tt\n#...#t##tot#tt\n#f....ttt#tttt\n######tttttttt\ntttttttttttttt\n\nmessage . ||-----/|| |||-----|| \n\n##########\n#dooo..e##\n#.......e#\n#..i.#1..#\n#.pcp#1.g#\n#..i..1t##\n#......t#t\n#f.....t#t\n#########t\ntttttttttt\n\nmessage . |-----/\\|| |||-----|| \n\n############\n#d...tttttt#\n#.oootttttt#\n#...i..1ttt#\n#.aa2tt..o.#\n#f...tttttt#\n############\ntttttttttttt\n\nmessage . |\\//\\----- ||-----/|| \n\n#############\n#d....ettd.e#\n#......tt...#\n#.pp...tt#.o#\n#.1i...tt...#\n#.1i..#o....#\n#..i...tt...#\n#f....gttf.g#\n#############\nttttttttttttt\n\n\nmessage . |\\\\/-----/ ||-----/|\\ \n\n\n########\n#d..o.e#\n#..pp..#\n#ttttto#\n#..11b.#\n#f..oig#\n########\ntttttttt\n\nmessage . - || < \\ < / | | \\ / - / \n\n",[2,2,2,3,3,3,3,3,0,0,1,1,2,1,1,0,0,1,1,3,3,3,3,2,1,1,1,1,0,0,3,1,2,3,3,1,0,0,0,3,3,3],"background wall wallt:0,0,0,0,0,0,0,0,background wall:1,background pit pitwt:2,1,background cornertl:3,background:4,\n4,4,4,4,background cornerbl:5,1,2,1,4,4,4,4,4,\n4,4,1,2,1,4,4,4,4,4,4,4,1,\n2,1,background barvn:6,background barvn crate01:7,6,4,4,4,4,1,2,1,4,\nbackground barh:8,0,1,4,4,4,1,2,1,4,8,background crate01:9,9,\n4,4,4,1,2,1,background cornertr:10,8,4,4,4,4,4,\n1,2,0,0,0,0,1,4,4,4,1,2,1,\n3,4,5,1,4,4,4,1,2,1,4,background target:11,4,\n11,4,11,4,1,2,1,10,4,4,4,4,4,\nbackground cornerbr:12,1,2,0,0,0,0,0,0,0,0,1,2,\n",7,"1627770023925.0144"] + ["title Broken Abacus\nauthor Le Slo\nhomepage le-slo.itch.io/\n\nbackground_color #0A060f\nnoaction\nagain_interval 0.05\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nFloorL\n#9A9510 #7A4690\n01111\n01111\n01111\n01111\n01111\n\nFloorR\n#7A4690 #9A9510\n00001\n00001\n00001\n00001\n00001\n\nFloorT\n#9A9510 #8d6d9f\n00000\n11111\n11111\n11111\n11111\n\nFloorB\n#8d6d9f #9A9510\n00000\n00000\n00000\n00000\n11111\n\nCornerTL\n#9A9510 #7A4690\n00000\n01011\n00111\n01111\n01111\n\nCornerTR\n#9A9510 #7A4690\n00000\n11010\n11100\n11110\n11110\n\n\n\nCornerBL\n#9A9510 #7A4690\n01111\n01111\n00111\n01011\n00000\n\nCornerBR\n#7A4690 #9A9510\n00001\n00001\n00011\n00101\n11111\n\nPitT\n#5A3670 #3A2640 #1A1620\n00000\n11111\n11111\n22222\n22222\n\nPitWT\n #364355 #162335 #081118\n00000\n11111\n11111\n22222\n22222\n\n\nWallT\n#6187b9 #6d8caf\n00000\n00000\n00000\n00000\n00000\n\nPit\n#0A060f\n00000\n00000\n00000\n00000\n00000\n\nWall\n#6187b9 #6187b9 #465365\n00000\n11111\n11111\n11111\n22222\n\n\nBackground\n#7A4690 #7A4690\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\n#d6cF24\n.....\n.000.\n.0.0.\n.000.\n.....\n\nBarH\n#a69F10\n.....\n.....\n00000\n.....\n.....\n\nBarV\n#C6BF14 black\n..1..\n..1..\n..1..\n..1..\n..1..\n\nBarHN\nred\n.....\n.....\n00000\n.....\n.....\n\nBarVN\n#465365 #4A3500\n..1..\n..1..\n..1..\n..1..\n..1..\n\ncrate01\n#C6BF14 #7A7510 #9A9510 #d6cF24\n.....\n.003.\n.200.\n.120.\n.....\n\n\naux\ntransparent\n\ncantMove\ntransparent\n\n\ncantMove2\ntransparent\n\nauxPush\ntransparent\n\nauxSolid\n#23285b\n.....\n.000.\n.000.\n.000.\n.....\n\nauxPit\ntransparent\n\n\nAnim01\n#ccd7a5\n..0..\n.000.\n00.00\n.000.\n..0..\n\nAnim02\n#ccd7a5\n..0..\n.0.0.\n0.0.0\n.0.0.\n..0..\n\nAnim03\n#ccd7a5\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nAnim04\n#ccd7a5\n.....\n..0..\n.000.\n..0..\n.....\n\nAnim05\n#ccd7a5\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = barH\nI = barvn\nT = pit\n\nO = Target\n\n1 = Crate01\n2 = barH and BarVN and crate01\n\na = Crate01 and barh\nb = Crate01 and barvn\nc = barh and barvn\n\nd = CornerTL\ne = CornerTR\nf = CornerBL\ng = CornerBR\nh = FloorL\nj = FloorR\nk = FloorT\nl = FloorB\nplayer = barH or BarV or barhn or barvn\ncrate = crate01\n\nplayernotMove = barhn or barvn\n\nanims = anim01 or anim02 or anim03 or anim04 or anim05\n\nFloor = CornerTL or CornerTR or CornerBL or CornerBR or FloorL or FloorR or FloorT or FloorB\n=======\nSOUNDS\n=======\n\nsfx0 36772507\nsfx1 36772505\n\nbarh move 13941707\n\nsfx2 75593907\n\nsfx3 978108\n\nclosemessage 489108\n\nrestart 35665908\nundo 23271308\n\n(fall)\n\nsfx10 49054908\n\n(stumble)\n\nsfx9 8799108\n\nstartlevel 35665908\n\ntitlescreen 39484708\n\nendlevel 72619508\n\nstartgame 48479708\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFloor\n\npit\nauxPit\nauxSolid\ncantMove2\naux, auxPush\nTarget\npitT, pitWT\nbarvn, barv\n\nbarhn, BarH,\nWall, Crate\ncantMove\nWallT\nanims\n\n======\nRULES\n======\n\ndown [wall no WallT| wall] -> [Wall WallT | wall] \nup [pit no pitT | no pit no wall] -> [pit pitT | ] \nup [pit no pitWT | no pit wall] -> [pit pitWT | wall] \n\n(BLOQUEAMOS EL MOVIMIENTO DE LOS INACTIVOS)\n[> playernotMove] -> [playernotMove]\n\n(***************************HORIZONTAL ACTIVO*******************************)\n\n(-----------------CONTROLA HORIZONTAL------------------)\n\n(casos en los que se puede empujar la barra vertical)\nhorizontal[ > barh crate | barvn] -> [ > barh > crate | > barvn]\nhorizontal[ > barh crate | crate] -> [ > barh > crate| > crate ]\nhorizontal[ > barh crate barvn] -> [ > barh > crate > barvn]\n\n(hacemos el multiban)\nhorizontal[> Crate | crate] -> [> Crate | > Crate ]\n+ horizontal[> crate | barvn] -> [> crate | > barvn ] \n+ horizontal[> crate barvn] -> [> crate > barvn ]\n\n\n(Quitazmos el movimiento de las cajas)\nhorizontal[> crate ] -> [crate]\n\n(movemos todas las piezas verticales)\n[> barvn] [barvn] -> [> barvn] [> barvn]\n(horizontal[> barvn no auxSolid ] -> [> barvn auxSolid] sfx1\n+ vertical[auxSolid| barvn no auxSolid] -> [auxSolid | barvn auxSolid]\n\nhorizontal[> barvn][auxSolid barvn no auxPush] -> [> barvn][> barvn auxSolid auxPush] sfx0\n[auxSolid] -> [ ])\n\n(Empujamos cajas)\nhorizontal[ > barvn | Crate ] -> [ > barvn | > Crate]\n\n(hacemos el multiban)\nhorizontal[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ horizontal[> Crate | crate aux] -> [Crate aux | crate aux]\n+ horizontal[> Crate | wall] -> [crate aux | wall]\n\n(Vemos si nos chocamos)\nhorizontal[> barvn | crate Aux] -> [barvn cantMove | crate Aux] \nhorizontal [ > barvn | wall] -> [barvn cantMove | wall]\n\n(Paralizamos todas las barras)\nhorizontal[cantMove][> barvn] -> [cantMove] [barvn cantMove]\nhorizontal[cantMove][> crate] -> [cantMove] [crate ]\n\n(Empujar en horizontal)\nhorizontal[ > barh crate no BarVN| Crate no barh] -> [ > barh > crate| > Crate] \nhorizontal[ > barh crate no BarVN] -> [ > barh > crate]\n\nhorizontal[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ horizontal[> Crate | crate aux] -> [Crate aux | crate aux] \n+ horizontal[> Crate | wall] -> [crate aux | wall] \n+ horizontal[> Crate | cantMove] -> [crate aux | cantMove] \n\n(Vemos si nos chocamos)\nhorizontal[ > barh | wall ] -> [ barh cantMove2| wall]sfx9\n(Paralizamos todas las barras)\nhorizontal[> barh][barh cantMove2] -> [barh cantMove2][barh cantMove2]\n\nhorizontal[> crate cantMove] -> [crate cantMove]\nhorizontal[> crate cantMove2] -> [crate cantMove2]\nhorizontal[> crate | cantMove] -> [crate | cantMove]\n\n\nhorizontal[> barvn] [cantMove2] -> [barvn] [cantMove2] sfx9\n(Movemos lo que está pegado a la barra vertical)\n\nhorizontal[> barvn crate] -> [> barvn > crate]\nhorizontal[> crate] [cantMove2] -> [crate] [cantMove2]\n\n\nhorizontal[> barh crate no cantMove | no barvn] -> [> barh > crate no cantMove | no barvn]\n\n(Limpiamos el tablero)\n[aux] -> []\n[cantMove] -> []\n[cantMove2] -> []\n[auxPush] -> []\n\n\n(-----------------CONTROLA VERTICAL------------------)\n\nvertical [> crate ] -> [crate] \n(casos en los que se puede empujar la barra vertical)\nvertical[ > barh | crate] -> [ > barh | > crate ]\nvertical[ > barh crate barvn] -> [ > barh > crate > barvn] \n\n\n(hacemos el multiban)\nvertical[> Crate | crate] -> [> Crate | > Crate ] \n+ vertical[> crate | barvn crate] -> [> crate | > barvn crate] \n+ vertical[> crate barvn] -> [> crate > barvn ] \n\n\n(Quitazmos el movimiento de las cajas)\nvertical [> crate ] -> [crate] \nvertical [ > barvn | wall] -> [barvn cantMove | wall]\n\n(movemos todas las piezas verticales)\n[> barvn] [barvn] -> [> barvn] [> barvn]\n(vertical[> barvn no auxSolid ] -> [> barvn auxSolid] \n+ vertical[auxSolid| barvn no auxSolid] -> [auxSolid | barvn auxSolid]\n\nvertical[> barvn][auxSolid barvn no auxPush] -> [> barvn][> barvn auxSolid auxPush] sfx0\n[auxSolid] -> [ ])\n\n(Empujamos cajas)\nvertical[ > barvn crate| Crate ] -> [ > barvn crate| > Crate]\n\n(hacemos el multiban)\nvertical[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ vertical[> Crate | crate aux] -> [Crate aux | crate aux]\n+ vertical[> Crate | wall] -> [crate aux | wall]\n\n(Vemos si nos chocamos)\nvertical[ > barvn | wall] -> [barvn cantMove | wall] \n\n(Paralizamos todas las barras)\nvertical[cantMove][> barvn] -> [cantMove] [barvn cantMove]\nvertical[cantMove][> crate] -> [cantMove] [crate ]\n(En vertical)\nvertical[ > barh | Crate ] -> [ > barh | > Crate]\nvertical[ > barh crate] -> [ > barh > crate] \n\nvertical[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ vertical[> Crate | crate aux] -> [Crate aux | crate aux] \n+ vertical[> Crate | wall] -> [crate aux | wall] \n\n(Vemos si nos chocamos)\nvertical[ > barh | wall ] -> [ barh cantMove2| wall]\nvertical[ > barh | crate aux ] -> [ barh cantMove2| crate aux]\n(Paralizamos todas las barras)\nvertical[> barh][barh cantMove2] -> [barh cantMove2][barh cantMove2] sfx9\nvertical [> barvn] [cantMove2] -> [barvn] [cantMove2] sfx9\n\nvertical[> crate] [cantMove2] -> [crate] [cantMove2]\n\n(Movemos lo que está pegado a la barra vertical)\nvertical[> barvn crate] -> [> barvn > crate]\n\nvertical[> barh crate] -> [> barh > crate]\n(Limpiamos el tablero)\n[aux] -> []\n[cantMove] -> []\n[cantMove2] -> []\n[auxPush] -> []\n\n(\n(comprobamos si empujamos y nos chocamos con la barra vertical)\nhorizontal[ > barh crate | barvn] -> [ > barh > crate | > barvn auxPush]\nhorizontal[ > barh barvn crate ] -> [ > barh > crate > barvn auxPush]\n\n[> barVN auxPush] [barVn no auxPush] -> [> barVN auxPush][> barVN auxPush]\n\nhorizontal [ > barvn | wall] -> [barvn cantMove | wall]\n\n[cantMove][> barvn] -> [cantMove] [barvn cantMove]\n\nhorizontal[ > barvn | Crate ] -> [ > barvn | > Crate]\n\n[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ [> Crate | crate aux] -> [Crate aux | crate aux]\n+ [> Crate | wall] -> [crate aux | wall]\n\nhorizontal[> barvn | crate Aux] -> [barvn cantMove | crate Aux]\n\n[cantMove][> barvn] -> [cantMove] [barvn cantMove]\n\n[> barvn crate] -> [> barvn > crate]\n\nhorizontal[ > barh | wall ] -> [ barh cantMove| wall]\n\n(Movimiento básico)\n\n(Empujar en horizontal)\nhorizontal[ > barh crate | Crate no barh] -> [ > barh > crate| > Crate] sfx0\nhorizontal[ > barh crate no BarVN] -> [ > barh > crate]\n(En vertical)\nvertical[ > barh | Crate ] -> [ > barh | > Crate]\nvertical[ > barh crate] -> [ > barh > crate]\n\n[aux] -> []\n\n[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ [> Crate | crate aux] -> [Crate aux | crate aux]\n+ [> Crate | wall] -> [crate aux | wall]\n\nhorizontal[> barh | crate Aux] -> [> barh | crate Aux]\nvertical[> barh | wall] -> [barh cantMove | wall]\n[cantMove][> crate] -> [cantMove] [crate cantMove]\n\n[cantMove][> crate] -> [cantMove][crate]\n[cantMove][> barvn] -> [cantMove][barvn]\n\n[aux] -> []\n[cantMove] -> []\n[auxPush] -> []\n\n)\n\n\n(\nvertical[ > barh | Crate ] -> [ > barh | > Crate]\n\n\nhorizontal[ > barv | Crate ] -> [ > barv | > Crate]\nvertical[ > barv crate | Crate no barv] -> [ > barv > crate| > Crate] sfx0\n\n\n\nvertical[> barh | crate Aux] -> [barh cantMove | crate Aux]\nhorizontal[> barv | crate Aux] -> [barv cantMove | crate Aux]\n[> player | wall] -> [player cantMove| wall]\n\n\n\n\n[> player][cantMove] ->[player][cantMove]\nvertical [> barv no barHN crate] -> [> barv > crate]\nhorizontal [> barv crate] -> [> barv > crate]\nhorizontal [> barh no barvN crate] -> [> barh > crate]\nvertical [> barh crate] -> [> barh > crate]\n[aux] -> []\n[cantMove] -> [])\n\n(Cambiar los personajes)\n\nvertical [ > barvn | crate no barvn] -> [ > barvn | crate no barvn] sfx2\nhorizontal [ > barh | crate no barh] -> [ > barh | crate no barh] sfx2\nhorizontal [ > barh crate | barvn] -> [ > barh crate | barvn] sfx2\n[> crate no barh no barvn ] -> [> crate no barh no barvn ] sfx0\n\n[action player] [barVN]-> [action player][barV aux]\n[action player] [barV no aux]-> [action player][barVN]\n\n[aux] -> []\n\n[action player] [barHN]-> [action player][barH aux]\n[action player] [barH no aux]-> [action player][barHN]\n\n[aux] -> []\n\n\nlate[anim05] -> []\nlate[anim04] -> [anim05]\nlate[anim03] -> [anim04]\nlate[anim02] -> [anim03]\nlate[anim01] -> [anim02]\n\n\nlate random[] -> [cantMove]\n\nlate[barvn pit no auxSolid] -> [barVn pit auxSolid] \nlate[cantMove][barvn no pit] -> [cantMove2][barVn] \n\nlate[barvn barh crate auxSolid no auxPit] -> [barvn barh crate auxSolid auxPit]\n\nlate[auxPit][barh pit no auxPit] -> [auxPit][barh pit auxPit] \nlate[auxPit][cantMove][barh no pit] -> [auxPit][cantMove2][barh] \n\nlate [CantMove][barVn auxSolid] -> [CantMove] [Anim01 auxSolid]\nlate [CantMove][barH auxPit] -> [CantMove] [Anim01 auxPit]\n\nlate [CantMove] -> []\nlate [CantMove2] -> []\nlate [auxPit] -> []\nlate [auxSolid] -> [ ]\n\nlate [aux] -> []\n\nlate random[] -> [cantMove]\n\nlate[barh pit no auxPit] -> [barh pit auxPit] \nlate[cantMove][barh no pit] -> [cantMove2][barh] \n\nlate[barvn barh crate auxPit no auxSolid] -> [barvn barh crate auxSolid auxPit]\n\nlate[auxSolid][barvn pit no auxSolid] -> [auxSolid][barvn pit auxSolid] \nlate[auxSolid][cantMove][barvn no pit] -> [auxSolid][cantMove2][barvn] \n\nlate [CantMove][barVn auxSolid] -> [CantMove] [Anim01 auxSolid]\nlate [CantMove][barh auxPit] -> [CantMove] [Anim01 auxPit]\n\nlate [CantMove] -> []\nlate [CantMove2] -> []\nlate [auxPit] -> []\nlate [auxSolid] -> [ ]\n\nlate [aux] -> []\n\nlate[crate no player pit] -> [pit Anim01]\n\nlate [anims] -> [anims] again\nlate[Anim01] -> [Anim01] sfx10\n(late[barvn aux pit no auxSolid] -> [barvn auxSolid aux pit] \n+late vertical [barvn auxSolid| barvn pit no auxSolid] -> [barvn auxSolid | barvn pit auxSolid aux] \n+late vertical [cantMove][barvn auxSolid| barvn no pit] -> [cantMove2] [barvn auxSolid | barvn] \n+late [barvn auxSolid crate barh no auxPit] -> [barvn auxSolid auxPit crate barh] \n+late [barvn auxPit crate barh no auxSolid] -> [barvn auxSolid auxPit crate barh] \n+late horizontal [barh auxPit | barh pit no auxPit] -> [barh auxPit |pit barh auxPit aux] \n+late horizontal [cantMove][barh auxSolid| barh no pit] -> [cantMove2][barh auxSolid | barh] \n\nlate [CantMove][player auxSolid] -> [CantMove] [auxSolid]\nlate [CantMove][player auxPit] -> [CantMove] [auxPit]\n\nlate [CantMove] -> []\nlate [CantMove2] -> []\nlate [auxPit] -> []\nlate [auxSolid] -> [ ]\nlate [aux] -> []\n\nrandom late[barh no aux] -> [barh aux]\nrandom late [] -> [cantMove]\n\nlate[barh aux pit no auxPit] -> [barh auxPit aux pit] \n+late vertical [barvn auxSolid| barvn pit no auxSolid] -> [barvn auxSolid | barvn pit auxSolid aux] \n+late vertical [cantMove][barvn auxSolid| barvn no pit] -> [cantMove2] [barvn auxSolid | barvn] \n+late [barvn auxSolid crate barh no auxPit] -> [barvn auxSolid auxPit crate barh] \n+late [barvn auxPit crate barh no auxSolid] -> [barvn auxSolid auxPit crate barh] \n+late horizontal [barh auxPit | barh pit no auxSolid] -> [barh auxPit |pit barh auxPit aux] \n+late horizontal [cantMove][barh auxSolid| barh no pit] -> [cantMove2][barh auxSolid | barh] \n\nlate [CantMove][player auxSolid] -> [CantMove] [auxSolid]\nlate [CantMove][player auxPit] -> [CantMove] [auxPit])\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll target on crate\nAll barv on Crate\n(no barh)\n=======\nLEVELS\n=======\n\nmessage . ||||-----| |||||----- \n\n###########\n#d.......e#\n#..1.1.1..#\n#...ppp...#\n#...ooo...#\n#f.......g#\n###########\nttttttttttt\n\nmessage . |||-----|| |||||----- \n\n#########\n#d.....e#\n#...o1#.#\n#.ppo1..#\n#.#.o1..#\n#f.....g#\n#########\nttttttttt\n\nmessage . ||-----||| |||||----- \n\n#########\n#d..1..e#\n#.o..i..#\n#.pppi..#\n#.o..i..#\n#f..1..g#\n#########\nttttttttt\n\nmessage . |-----|||| |||||----- \n\n#############\n#d.....e#d.e#\n#.......#.o.#\n#..i.#1.#f..#\n#.pcp#1.##o.#\n#..i..1.....#\n#.........o.#\n#f.........g#\n#############\nttttttttttttt\n\nmessage . |||||----- ||||-----| \n\nttt###ttt\n####i####\n#d..i.oe#\n#..1i1..#\n#f..i.o.#\n##pp2...#\nt#f...og#\nt########\nttttttttt \n\nmessage . ||||-----| ||||-----| \n \n########### \n#d.......e# \n#........g# \n#.o.bo##### \n#...i.e#### \n#.apcag#### \n#.o.bo##### \n#........e# \n#f.......g# \n########### \nttttttttttt \n \nmessage . |||-----|| ||||-----| \n \n#######\n#d..1e#\n#o..i.#\n#.ppi.#\n#o..i.#\n#f..1g#\n#######\nttttttt \n \nmessage . ||-----||| ||||-----| \n \n \ntttt### \n#####o# \n#d....# \n#i.pp.# \n#i.11.# \n#f.g#o# \n####### \nttttttt \n \nmessage . |-----|||| ||||-----| \n \n \n###ttttt \n#o###### \n#.#d..e# \n#o#.ppg# \n#..i1.##\n#o.i.1e#\n#..i1..#\n#f....g#\n########\ntttttttt\n\nmessage . |||||----- |||-----|| \n\nttt######\nttt#de#1#\nttt#....#\n####i.1.#\n#de#i1..#\n#.o..pp.#\n#foog#fg#\n#########\nttttttttt\n\nmessage . ||||-----| |||-----|| \n\nt#####tttt\n##d.e##ttt\n#d.i.###tt\n#f.b..e#tt\n##..pa.###\n#o.#....e#\n#f...g#og#\n##########\ntttttttttt\n\nmessage . |||-----|| |||-----|| \n\nmessage CRACK!\n\n###ttttttttttt\n#d.tt.tt.#tttt\n#..ttttttt.t#t\n#...ttttt.t.#t\n#..i..tt.ttttt\n#.acpttttt.#tt\n#..i.tttttt#tt\n#...#t##tot#tt\n#f....ttt#tttt\n######tttttttt\ntttttttttttttt\n\nmessage . ||-----/|| |||-----|| \n\n##########\n#dooo..e##\n#.......e#\n#..i.#1..#\n#.pcp#1.g#\n#..i..1t##\n#......t#t\n#f.....t#t\n#########t\ntttttttttt\n\nmessage . |-----/\\|| |||-----|| \n\n############\n#d...tttttt#\n#.oootttttt#\n#...i..1ttt#\n#.aa2tt..o.#\n#f...tttttt#\n############\ntttttttttttt\n\nmessage . |\\//\\----- ||-----/|| \n\n#############\n#d....ettd.e#\n#......tt...#\n#.pp...tt#.o#\n#.1i...tt...#\n#.1i..#o....#\n#..i...tt...#\n#f....gttf.g#\n#############\nttttttttttttt\n\n\nmessage . |\\\\/-----/ ||-----/|\\ \n\n\n########\n#d..o.e#\n#..pp..#\n#ttttto#\n#..11b.#\n#f..oig#\n########\ntttttttt\n\nmessage . - || < \\ < / | | \\ / - / \n\n", [2, 2, 2, 3, 3, 3, 3, 3, 0, 0, 1, 1, 2, 1, 1, 0, 0, 1, 1, 3, 3, 3, 3, 2, 1, 1, 1, 1, 0, 0, 3, 1, 2, 3, 3, 1, 0, 0, 0, 3, 3, 3], "background wall wallt:0,0,0,0,0,0,0,0,background wall:1,background pit pitwt:2,1,background cornertl:3,background:4,\n4,4,4,4,background cornerbl:5,1,2,1,4,4,4,4,4,\n4,4,1,2,1,4,4,4,4,4,4,4,1,\n2,1,background barvn:6,background barvn crate01:7,6,4,4,4,4,1,2,1,4,\nbackground barh:8,0,1,4,4,4,1,2,1,4,8,background crate01:9,9,\n4,4,4,1,2,1,background cornertr:10,8,4,4,4,4,4,\n1,2,0,0,0,0,1,4,4,4,1,2,1,\n3,4,5,1,4,4,4,1,2,1,4,background target:11,4,\n11,4,11,4,1,2,1,10,4,4,4,4,4,\nbackground cornerbr:12,1,2,0,0,0,0,0,0,0,0,1,2,\n", 7, "1627770023925.0144"] ], [ `gallery game: soliquid`, - ["title Soliquid\nauthor Anton Klinger\nhomepage www.puzzlescript.net\ncolor_palette 7\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\ndarkgray Gray\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nwhite\n.....\n.000.\n.000.\n.000.\n.....\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nCrate\norange Yellow\n00000\n0...0\n0.1.0\n0...0\n00000\n\nFrom\norange\n.....\n.000.\n.....\n.000.\n.....\n\nTo\norange\n.....\n.0.0.\n.0.0.\n.0.0.\n.....\n\nLiquid\ntransparent Green green\n01110\n12001\n12201\n12221\n01110\n\nFrozen\ntransparent lightblue lightblue\n01110\n12221\n10221\n10021\n01110\n\nWantsToFreeze\nwhite\n.....\n.....\n.0...\n.....\n.....\n\nWantsToMelt\nblack\n.....\n.....\n...0.\n.....\n.....\n\nFreezer\nlightblue lightgray black\n1...1\n.202.\n.000.\n.202.\n1...1\n\nHeater\nyellow darkred black\n1...1\n.020.\n.202.\n.020.\n1...1\n\nFront1\nRed\n00000\n.....\n00000\n.....\n00000\n\nFront2\nblue\n00000\n.....\n00000\n.....\n00000\n\n\nUU\nYellow\n..0..\n..0..\n.....\n.....\n.....\n\nDD\nYellow\n.....\n.....\n.....\n..0..\n..0..\n\nLL\nYellow\n.....\n.....\n00...\n.....\n.....\n\nRR\nYellow\n.....\n.....\n...00\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Liquid\nPlayer = Liquid or Frozen\nO = Target\nC = Crate\nT = Target and Crate\nF = Target and Liquid\nObstacle = Wall or Crate\nK = Freezer\nH = Heater\n\nFront = Front1 or Front2\n\n=======\nSOUNDS\n=======\n\nLiquid MOVE 32774309\nFrozen Move 88300107\nendlevel 58794308\nendgame 37721308\nsfx0 35611100\nsfx1 66706102\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nFreezer, Heater\nLiquid, Wall, Crate, Frozen\nFront1, Front2\nUU,DD,LL,RR\nFrom, To\nWantsToFreeze, WantsToMelt\n\n======\nRULES\n======\n(establish front)\n[ > Player | Crate | NO Obstacle ] -> [ > Player | From | To ]\n[ > Liquid | Obstacle ] -> [ Front1 | Obstacle]\n[ > Frozen | Obstacle ] -> [ Front2 | Obstacle]\n[ UP Player ] -> [ up Player UU ]\n[ down Player ] -> [ down Player DD ]\n[ left Player ] -> [ left Player LL ]\n[ right Player ] -> [ right Player RR ]\n\n[Front] [From] -> [Front] [Crate]\n[Front] [To] -> [Front] []\n[Front] [> Player | NO Player NO Front] -> [Front] [ Front | ]\n\n(move all players)\n\n(create trail for liquid)\nlate UP [UU NO Obstacle | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | ]\nlate UP [UU NO Obstacle | Liquid | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | Liquid | ]\n\nlate down [DD NO Obstacle | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | ]\nlate down [DD NO Obstacle | Liquid | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | Liquid | ]\n\nlate left [LL NO Obstacle | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | ]\nlate left [LL NO Obstacle | Liquid | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | Liquid | ]\n\nlate right [RR NO Obstacle | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | ]\nlate right [RR NO Obstacle | Liquid | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | Liquid | ]\n\n\n(prevent frozen from getting smaller)\nlate UP [UU NO Obstacle | Frozen | Frozen Front| NO Frozen ] -> [Frozen | Frozen | Frozen | ]\nlate UP [UU NO Obstacle | Frozen Front| NO Frozen ] -> [Frozen | Frozen | ]\n\nlate down [DD NO Obstacle | Frozen | Frozen Front| NO Frozen ] -> [Frozen | Frozen | Frozen | ]\nlate down [DD NO Obstacle | Frozen Front| NO Frozen ] -> [Frozen | Frozen | ]\n\nlate left [LL NO Obstacle | Frozen | Frozen Front| NO Frozen ] -> [Frozen | Frozen | Frozen | ]\nlate left [LL NO Obstacle | Frozen Front| NO Frozen ] -> [Frozen | Frozen | ]\n\nlate right [RR NO Obstacle | Frozen | Frozen Front| NO Frozen ] -> [Frozen | Frozen | Frozen | ]\nlate right [RR NO Obstacle | Frozen Front| NO Frozen ] -> [Frozen | Frozen | ]\n\n(cleanup)\nlate [UU] -> []\nlate [DD] -> []\nlate [LL] -> []\nlate [RR] -> []\nlate [Front1] -> [ Liquid ]\nlate [Front2] -> [ Frozen ]\nlate [From] -> []\nlate [To] -> [Crate]\n\n(check freezing or heating)\nlate [Freezer Liquid] -> [Freezer WantsToFreeze]\nlate [Liquid NO Freezer][WantsToFreeze] -> [Liquid][Liquid]\nlate [WantsToFreeze] -> [Frozen] sfx0\n\nlate [Heater Frozen] -> [Heater WantsToMelt]\nlate [Frozen NO Heater][WantsToMelt] -> [Frozen][Frozen]\nlate [WantsToMelt] -> [Liquid] sfx1\n\n==============\nWINCONDITIONS\n==============\n\nAll Player on Target\nAll Target on Player\n\n=======\nLEVELS\n=======\n\n#########\n#.......#\n#.......#\n#...ooo.#\n#.p.ooo.#\n#...ooo.#\n#.......#\n#.......#\n#########\n\n#########\n####....#\n#.......#\n#.p.....#\n#.......#\n####o####\n####o####\n####o####\n#########\n\n#########\n#########\n#....####\n#.p..####\n#...oo.##\n###.oo.##\n###....##\n#########\n#########\n\n#########\n#.#...#.#\n#.#.p.#.#\n#.#...#.#\n#.#ccc#.#\n#.#ooo#.#\n#.#...#.#\n#.#...#.#\n#########\n\n##########\n#####...##\n#...c...##\n#.......##\n#....p.c##\n##c.o....#\n##.......#\n##...c...#\n##...#####\n##########\n\n#########\n#########\n#hh....k#\n#hh.p..k#\n#......k#\n##o######\n##o######\n##o######\n#########\n\n########\n#...####\n#.p....#\n#oo##..#\n#......#\n#..#.kk#\n####.kk#\n########\n\n############\n####hh######\n####..######\n#.......kk##\n#.p..o..kk##\n#..#.o##..##\n####......##\n############\n\n############\n#kk...#....#\n#kk.p.#.oo.#\n#.....#.oo.#\n#..####....#\n#..hh..hh..#\n#..hh..hh..#\n#hh..hh..hh#\n#hh..hh..hh#\n############\n\n#################\n#kkkkk.kk.kkk#oo#\n#k.kk#k#kkkk.#.##\n#kk#k.k.kkkkkkk.#\n#k...k.kkk#.kkkk#\n#k.p.kkkkkkkkk.k#\n#k...k.kk..kk#kk#\n#kkk#kk#kkk#.k.k#\n#k#.k#kkkk.kkkkk#\n#kkkkk..kkkkkkk.#\n#################\n\n##########\n#........#\n#.p......#\n#...cc...#\n#..cooc..#\n#..cooc..#\n#...cc...#\n#........#\n#........#\n##########\n\nmessage Thank you for playing my game!\n\n",[2,2,3,3,0,3,2,1,0,1,2,3,2,2,2,2,2,1,0,0],"background wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n0,1,1,1,background liquid:2,background liquid target:3,2,background crate:4,0,\n0,1,1,1,2,3,2,4,0,\n0,1,1,1,1,background target:5,1,4,0,\n0,0,0,0,0,0,0,0,0,\n0,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n",3,"1627770093173.774"] + ["title Soliquid\nauthor Anton Klinger\nhomepage www.puzzlescript.net\ncolor_palette 7\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\ndarkgray Gray\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nwhite\n.....\n.000.\n.000.\n.000.\n.....\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nCrate\norange Yellow\n00000\n0...0\n0.1.0\n0...0\n00000\n\nFrom\norange\n.....\n.000.\n.....\n.000.\n.....\n\nTo\norange\n.....\n.0.0.\n.0.0.\n.0.0.\n.....\n\nLiquid\ntransparent Green green\n01110\n12001\n12201\n12221\n01110\n\nFrozen\ntransparent lightblue lightblue\n01110\n12221\n10221\n10021\n01110\n\nWantsToFreeze\nwhite\n.....\n.....\n.0...\n.....\n.....\n\nWantsToMelt\nblack\n.....\n.....\n...0.\n.....\n.....\n\nFreezer\nlightblue lightgray black\n1...1\n.202.\n.000.\n.202.\n1...1\n\nHeater\nyellow darkred black\n1...1\n.020.\n.202.\n.020.\n1...1\n\nFront1\nRed\n00000\n.....\n00000\n.....\n00000\n\nFront2\nblue\n00000\n.....\n00000\n.....\n00000\n\n\nUU\nYellow\n..0..\n..0..\n.....\n.....\n.....\n\nDD\nYellow\n.....\n.....\n.....\n..0..\n..0..\n\nLL\nYellow\n.....\n.....\n00...\n.....\n.....\n\nRR\nYellow\n.....\n.....\n...00\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Liquid\nPlayer = Liquid or Frozen\nO = Target\nC = Crate\nT = Target and Crate\nF = Target and Liquid\nObstacle = Wall or Crate\nK = Freezer\nH = Heater\n\nFront = Front1 or Front2\n\n=======\nSOUNDS\n=======\n\nLiquid MOVE 32774309\nFrozen Move 88300107\nendlevel 58794308\nendgame 37721308\nsfx0 35611100\nsfx1 66706102\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nFreezer, Heater\nLiquid, Wall, Crate, Frozen\nFront1, Front2\nUU,DD,LL,RR\nFrom, To\nWantsToFreeze, WantsToMelt\n\n======\nRULES\n======\n(establish front)\n[ > Player | Crate | NO Obstacle ] -> [ > Player | From | To ]\n[ > Liquid | Obstacle ] -> [ Front1 | Obstacle]\n[ > Frozen | Obstacle ] -> [ Front2 | Obstacle]\n[ UP Player ] -> [ up Player UU ]\n[ down Player ] -> [ down Player DD ]\n[ left Player ] -> [ left Player LL ]\n[ right Player ] -> [ right Player RR ]\n\n[Front] [From] -> [Front] [Crate]\n[Front] [To] -> [Front] []\n[Front] [> Player | NO Player NO Front] -> [Front] [ Front | ]\n\n(move all players)\n\n(create trail for liquid)\nlate UP [UU NO Obstacle | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | ]\nlate UP [UU NO Obstacle | Liquid | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | Liquid | ]\n\nlate down [DD NO Obstacle | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | ]\nlate down [DD NO Obstacle | Liquid | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | Liquid | ]\n\nlate left [LL NO Obstacle | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | ]\nlate left [LL NO Obstacle | Liquid | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | Liquid | ]\n\nlate right [RR NO Obstacle | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | ]\nlate right [RR NO Obstacle | Liquid | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | Liquid | ]\n\n\n(prevent frozen from getting smaller)\nlate UP [UU NO Obstacle | Frozen | Frozen Front| NO Frozen ] -> [Frozen | Frozen | Frozen | ]\nlate UP [UU NO Obstacle | Frozen Front| NO Frozen ] -> [Frozen | Frozen | ]\n\nlate down [DD NO Obstacle | Frozen | Frozen Front| NO Frozen ] -> [Frozen | Frozen | Frozen | ]\nlate down [DD NO Obstacle | Frozen Front| NO Frozen ] -> [Frozen | Frozen | ]\n\nlate left [LL NO Obstacle | Frozen | Frozen Front| NO Frozen ] -> [Frozen | Frozen | Frozen | ]\nlate left [LL NO Obstacle | Frozen Front| NO Frozen ] -> [Frozen | Frozen | ]\n\nlate right [RR NO Obstacle | Frozen | Frozen Front| NO Frozen ] -> [Frozen | Frozen | Frozen | ]\nlate right [RR NO Obstacle | Frozen Front| NO Frozen ] -> [Frozen | Frozen | ]\n\n(cleanup)\nlate [UU] -> []\nlate [DD] -> []\nlate [LL] -> []\nlate [RR] -> []\nlate [Front1] -> [ Liquid ]\nlate [Front2] -> [ Frozen ]\nlate [From] -> []\nlate [To] -> [Crate]\n\n(check freezing or heating)\nlate [Freezer Liquid] -> [Freezer WantsToFreeze]\nlate [Liquid NO Freezer][WantsToFreeze] -> [Liquid][Liquid]\nlate [WantsToFreeze] -> [Frozen] sfx0\n\nlate [Heater Frozen] -> [Heater WantsToMelt]\nlate [Frozen NO Heater][WantsToMelt] -> [Frozen][Frozen]\nlate [WantsToMelt] -> [Liquid] sfx1\n\n==============\nWINCONDITIONS\n==============\n\nAll Player on Target\nAll Target on Player\n\n=======\nLEVELS\n=======\n\n#########\n#.......#\n#.......#\n#...ooo.#\n#.p.ooo.#\n#...ooo.#\n#.......#\n#.......#\n#########\n\n#########\n####....#\n#.......#\n#.p.....#\n#.......#\n####o####\n####o####\n####o####\n#########\n\n#########\n#########\n#....####\n#.p..####\n#...oo.##\n###.oo.##\n###....##\n#########\n#########\n\n#########\n#.#...#.#\n#.#.p.#.#\n#.#...#.#\n#.#ccc#.#\n#.#ooo#.#\n#.#...#.#\n#.#...#.#\n#########\n\n##########\n#####...##\n#...c...##\n#.......##\n#....p.c##\n##c.o....#\n##.......#\n##...c...#\n##...#####\n##########\n\n#########\n#########\n#hh....k#\n#hh.p..k#\n#......k#\n##o######\n##o######\n##o######\n#########\n\n########\n#...####\n#.p....#\n#oo##..#\n#......#\n#..#.kk#\n####.kk#\n########\n\n############\n####hh######\n####..######\n#.......kk##\n#.p..o..kk##\n#..#.o##..##\n####......##\n############\n\n############\n#kk...#....#\n#kk.p.#.oo.#\n#.....#.oo.#\n#..####....#\n#..hh..hh..#\n#..hh..hh..#\n#hh..hh..hh#\n#hh..hh..hh#\n############\n\n#################\n#kkkkk.kk.kkk#oo#\n#k.kk#k#kkkk.#.##\n#kk#k.k.kkkkkkk.#\n#k...k.kkk#.kkkk#\n#k.p.kkkkkkkkk.k#\n#k...k.kk..kk#kk#\n#kkk#kk#kkk#.k.k#\n#k#.k#kkkk.kkkkk#\n#kkkkk..kkkkkkk.#\n#################\n\n##########\n#........#\n#.p......#\n#...cc...#\n#..cooc..#\n#..cooc..#\n#...cc...#\n#........#\n#........#\n##########\n\nmessage Thank you for playing my game!\n\n", [2, 2, 3, 3, 0, 3, 2, 1, 0, 1, 2, 3, 2, 2, 2, 2, 2, 1, 0, 0], "background wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n0,1,1,1,background liquid:2,background liquid target:3,2,background crate:4,0,\n0,1,1,1,2,3,2,4,0,\n0,1,1,1,1,background target:5,1,4,0,\n0,0,0,0,0,0,0,0,0,\n0,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n", 3, "1627770093173.774"] ], [ `gallery game: vexd edit`, - ["title VEXT EDIT\nauthor JACK\n\nrun_rules_on_level_start\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\n#eeeeee\n\nPlayerTarget1mark\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1mark\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nPlayerTarget1\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0Mark\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nWall0 \n#884400 #f00\n00000\n00000\n00000\n00000\n00000\n\nwalll0 \nBrown #f00\n1....\n1....\n1....\n1....\n1....\n\nWallr0 \nBrown #f00\n....1\n....1\n....1\n....1\n....1\n\nWalld0 \nBrown #f00\n.....\n.....\n.....\n.....\n11111\n\nWallu0 \nBrown #f00\n11111\n.....\n.....\n.....\n.....\n\nBlack\nblack\n\nwall0ghost\ntransparent\n\nWall0Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1 \n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall2\n#884400 #00f\n00000\n00000\n00000\n00000\n00000\n\nwalll2\nBrown #00f\n1....\n1....\n1....\n1....\n1....\n\nWallr2 \nBrown #00f\n....1\n....1\n....1\n....1\n....1\n\nWalld2 \nBrown #00f\n.....\n.....\n.....\n.....\n11111\n\nWallu2 \nBrown #00f\n11111\n.....\n.....\n.....\n.....\n\nwalll1 \nBrown #ff0\n1....\n1....\n1....\n1....\n1....\n\nWallr1 \nBrown #ff0\n....1\n....1\n....1\n....1\n....1\n\nWalld1 \nBrown #ff0\n.....\n.....\n.....\n.....\n11111\n\nWallu1 \nBrown #ff0\n11111\n.....\n.....\n.....\n.....\n\nCrate1Mark\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate1\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate01\ntransparent\n\nCrate0\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate0mark\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\ncrate0ghost\ntransparent\n\nPlayer1Mark\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nPlayer1\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nDed1Mark\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nDed1\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nCrated0\n#f80 #f00\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu0\n#f80 #f00\n.010.\n.010.\n.....\n.....\n.....\n\nCratel0\n#f80 #f00\n.....\n00...\n11...\n00...\n.....\n\nCrater0\n#f80 #f00\n.....\n...00\n...11\n...00\n.....\n\nCrated1\n#f80 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu1\n#f80 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nCratel1\n#f80 #ff0\n.....\n00...\n11...\n00...\n.....\n\nCrater1\n#f80 #ff0\n.....\n...00\n...11\n...00\n.....\n\n\nPit1Mark\nblack #bbbb00 white\n.111.\n10001\n10001\n10001\n.111.\n\n\nPit1\nblack #bbbb00 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\npit0ghost\ntransparent\n\nPit0\nblack #bb0000 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\n\npit0u\nblack #bb0000\n10001\n.....\n.....\n.....\n.....\n\npit0d\nblack #bb0000\n.....\n.....\n.....\n.....\n10001\n\npit0l\nblack #bb0000\n1....\n0....\n0....\n0....\n1....\n\npit0r\nblack #bb0000\n....1\n....0\n....0\n....0\n....1\n\npit1u\nblack #bbbb00\n10001\n.....\n.....\n.....\n.....\n\npit1d\nblack #bbbb00\n.....\n.....\n.....\n.....\n10001\n\npit1l\nblack #bbbb00\n1....\n0....\n0....\n0....\n1....\n\npit1r\nblack #bbbb00\n....1\n....0\n....0\n....0\n....1\n\nrim0u\n#b00\n.000.\n.....\n.....\n.....\n.....\n\nrim0l\n#b00\n.....\n0....\n0....\n0....\n.....\n\nrim0r\n#b00\n.....\n....0\n....0\n....0\n.....\n\nrim0d\n#b00\n.....\n.....\n.....\n.....\n.000.\n\nrim1u\n#bb0\n.000.\n.....\n.....\n.....\n.....\n\nrim1l\n#bb0\n.....\n0....\n0....\n0....\n.....\n\nrim1r\n#bb0\n.....\n....0\n....0\n....0\n.....\n\nrim1d\n#bb0\n.....\n.....\n.....\n.....\n.000.\n\nblackul\nblack\n0....\n.....\n.....\n.....\n.....\n\nblackur\nblack\n....0\n.....\n.....\n.....\n.....\n\nblackdl\nblack\n.....\n.....\n.....\n.....\n0....\n\nblackdr\nblack\n.....\n.....\n.....\n.....\n....0\n\nfell0\n#884400 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1mark\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfelld1\n#884400 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nfellu1\n#884400 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nfelll1\n#884400 #ff0\n.....\n00...\n11...\n00...\n.....\n\nfellr1\n#884400 #ff0\n.....\n...00\n...11\n...00\n.....\n\nfell0ghost\ntransparent\n\nsupported\ntransparent\n\nfellcant1\ntransparent\n\ncant1\ntransparent\n\ncant0\ntransparent\n\nfellcant0\ntransparent\n\ndead0a\ndarkred\n.....\n.0.0.\n.....\n.0.0.\n.....\n\ncursor0a\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\ncursor0b\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\n\n\ncursor2a\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\ncursor2b\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\none2mark\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2mark\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2mark\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none2\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0mark\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0mark\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0mark\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\nfour0\n#f00\n.0.0.\n.0.0.\n..00.\n...0.\n...0.\n\nfive0\n#f00\n.000.\n.0...\n.00..\n...0.\n.00..\n\nsix0\n#f00\n..00.\n.0...\n.00..\n.0.0.\n..0..\n\nseven0\n#f00\n.000.\n...0.\n...0.\n..0..\n..0..\n\ninf0\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\ninf0mark\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\n\ndecrement\ntransparent\n\nholding\ntransparent\n\nactiveb\n#f00\n.....\n.0.0.\n.....\n.....\n.....\n\nactive\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\nactivefell\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\npickeda0\ntransparent\n\npickedb0\ntransparent\n\npickeda2\ntransparent\n\npickedb2\ntransparent\n\nchosepink\n#ff22ff\n\nchosecyan\n#22ffff\n\npink\n#ff88ff\n\ncyan\n#88ffff\n\nplacemark\ntransparent\n\nactivecurse0\ntransparent\n\npartb\ntransparent\n\npartc\ntransparent\n\ncursor0mark\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\nwall2ghost\ntransparent\n\ncant2\ntransparent\n\nshowhere\ntransparent\n\nshowthis\ntransparent\n=======\nLEGEND\n=======\n\n` = Background\n& = Wall2 and wall1 and wall0\n# = Wall1\nX = Wall0\n+ = Wall0 and Wall1\nP = Player1 and active\n\nn = crate0 and crate1 and crate01\no = Crate1\n- = crate1 and crater1\n: = crate1 and crateu1\nL = crate1 and crater1 and crateu1\n0 = pit1\n! = crate0\n? = pit0\n/ = pit0 and pit1\n\n@ = one0 and pit0\nz = player1 and pit0\n\n| = black\n\n' = partb\n\" = partc\n\n~ = cursor2a\n_ = cursor2b\n\n1 = one0\n2 = two0\n3 = three0\n4 = four0\n5 = five0\n6 = six0\n7 = seven0\n8 = inf0\n\n[ = one2\n{ = two2\n] = three2\n> = wall2\nactiveab = active or activeb or activefell\npartbc = partb or partc\n\ny = target0\nu = Target1 and pit1\nt = Target1\nq = playertarget1\nr = player1\nb = cursor0a\nc = cursor0a and activecurse0\nk = cursor0b and activecurse0\ncurse0a = cursor0a or dead0a\ncurse0 = curse0a or cursor0b\ncurse2 = cursor2a or cursor2b\ncursor0 = cursor0a or cursor0b\n \nplayer = curse2 or activecurse0 or active or dead0a or activefell\ndead0 = dead0a\nx1 = player1 or crate1 or wall1 or target1 or playertarget1 or pit1\nx0 = crate0 or wall0 or pit0 or fell0\nxx = x0 or x1 or curse0\nx0ghost = crate0ghost or wall0ghost or pit0ghost or fell0ghost\ncratex1 = cratel1 or crater1 or crated1 or crateu1\nwallx2 = walll2 or wallr2 or walld2 or wallu2\nwallx1 = walll1 or wallr1 or walld1 or wallu1\nwallx0 = walll0 or wallr0 or walld0 or wallu0\nfellx1 = felll1 or fellr1 or felld1 or fellu1\npit0x = pit0l or pit0r or pit0d or pit0u\npit1x = pit1l or pit1r or pit1d or pit1u\ncrateorfell1 = crate1 or fell1\nplayerormark1 = player1 or player1mark\n\nx0mark = one0mark or two0mark or three0mark or cursor0mark or wall0mark or target0mark or crate0mark or inf0mark\nx1mark = player1mark or crate1mark or pit1mark or wall1mark or fell1mark or ded1mark or crate1mark or Target1mark or PlayerTarget1mark\nx2mark = one2mark or two2mark or three2mark\nxmark = x0mark or x1mark or x2mark\nnumber0 = one0 or two0 or three0 or four0 or five0 or six0 or seven0 or inf0\nnumber2 = one2 or two2 or three2\npicked = pickeda0 or pickedb0 or pickeda2 or pickedb2\n\npickable = player1 or pit1 or crate1 or number0 or wall1 or number2 or fell1 or ded1 or target0 or PlayerTarget1 or Target1\npickable2 = curse0a or pickable or wall0 or crate0 \n\nblackcorner = blackul or blackdl or blackur or blackdr\nrim0x = rim0l or rim0d or rim0u or rim0r\nrim1x = rim1l or rim1d or rim1u or rim1r \n=======\nSOUNDS\n=======\n\nSFX0 51304502\n\nsfx1 22108304\n\nSFX2 84700307\n\nSFX3 78571302\n\nSFX4 25131906\n\nSFX5 13408901\n\nSFX6 50704903\n\nSFX7 24622504\n\nSFX8 29744504\n\nSFX9 13344503\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\npink, chosepink\ncyan, chosecyan\n\n\nPit1,\npit1r\npit1l\npit1d\npit1u\npit0, pit0ghost\npit0r\npit0l\npit0d\npit0u\nblackul\nblackur\nblackdr\nblackdl\nTarget1, PlayerTarget1, target0\n\nfell1, ded1\nfelll1\nfellr1\nfelld1\nfellu1\n\ndead0a, fell0, fell0ghost\nrim0l \nrim0d \nrim0u \nrim0r\n\nrim1l \nrim1d \nrim1u \nrim1r \nPlayer1, Wall1, Crate1, \npit1mark\nfell1mark, ded1mark, target0mark\nTarget1mark, PlayerTarget1mark\nplayer1mark, crate1mark\nwall1mark\none0mark, two0mark, three0mark, wall0mark, inf0mark\none2mark, two2mark, three2mark\ncursor0mark, crate0mark\nnumber0, number2\ncratel1, walll1, \ncrater1, wallr1, \ncrated1, walld1, \ncrateu1, wallu1, \ncursor0, wall0, crate0, wall0ghost, crate0ghost\n walll0, cratel0\n wallr0, crater0\n walld0, crated0\n wallu0, crateu0\n crate01\n wall2, wall2ghost\n wallr2\n wallu2\n walll2\n walld2\n cursor2a, cursor2b\n \nfellcant1\nfellcant0\ncant0\ncant1\ncant2\nsupported\nactivefell\nactive, activeb\nactivecurse0\nholding\ndecrement\npickeda0, pickeda2\npickedb0, pickedb2\nplacemark\npartb partc\nshowthis\nshowhere\nblack\n\n======\nRULES\n======\n\n(Deal with action-----------------------------------------------------------------------------)\n\n[action activecurse0 curse0] -> [activecurse0 action curse0]\n\n(pick up ready icon)\ndown[action curse0a no holding pickable|number0] -> [curse0a holding pickable|number0 pickeda0] SFX9\ndown[action cursor0b no holding pickable|number0] -> [cursor0b holding pickable|number0 pickedb0] SFX9\ndown[action cursor2a no holding pickable2|number2] -> [cursor2a holding pickable2|number2 pickeda2] SFX9\ndown[action cursor2b no holding pickable2|number2] -> [cursor2b holding pickable2|number2 pickedb2] SFX9\n(switch to new ready icon)\ndown [action curse0a pickable| number0 no pickeda0][pickeda0] -> [curse0a pickable | number0 pickeda0][] SFX9\ndown [action cursor0b pickable| number0 no pickedb0][pickedb0] -> [cursor0b pickable | number0 pickedb0][] SFX9\ndown [action cursor2a pickable2| number2 no pickeda2][pickeda2] -> [cursor2a pickable2 | number2 pickeda2][] SFX9\ndown [action cursor2b pickable2| number2 no pickedb2][pickedb2] -> [cursor2b pickable2 | number2 pickedb2][] SFX9\n\n(put down ready icon)\ndown [action curse0 holding pickable| picked] -> [curse0 pickable|] SFX8\ndown [action cursor2a holding pickable2| pickeda2] -> [cursor2a pickable2|] SFX8\ndown [action cursor2b holding pickable2| pickedb2] -> [cursor2b pickable2|] SFX8\n\n(show mark)\nlate [xmark] -> []\nlate [showthis] -> []\nlate [showhere] -> []\n\nlate down [ | number0 pickeda0][curse0a] -> [showthis | number0 pickeda0][curse0a showhere]\nlate down [ | number0 pickedb0][cursor0b] -> [showthis | number0 pickedb0][cursor0b showhere]\nlate down [ | number2 pickeda2][cursor2a] -> [showthis | number2 pickeda2][cursor2a showhere]\nlate down [ | number2 pickedb2][cursor2b] -> [showthis | number2 pickedb2][cursor2b showhere]\nlate [showthis player1][showhere] -> [showthis player1][showhere player1mark]\nlate [showthis pit1][showhere] -> [showthis pit1][showhere pit1mark]\nlate [showthis crate1][showhere] -> [showthis crate1][showhere crate1mark]\nlate [showthis wall1][showhere] -> [showthis wall1][showhere wall1mark]\nlate [showthis one0][showhere] -> [showthis one0][showhere one0mark]\nlate [showthis two0][showhere] -> [showthis two0][showhere two0mark]\nlate [showthis three0][showhere] -> [showthis three0][showhere three0mark]\nlate [showthis one2][showhere] -> [showthis one2][showhere one2mark]\nlate [showthis two2][showhere] -> [showthis two2][showhere two2mark]\nlate [showthis three2][showhere] -> [showthis three2][showhere three2mark]\nlate [showthis wall0][showhere] -> [showthis wall0][showhere wall0mark]\nlate [showthis fell1][showhere] -> [showthis fell1][showhere fell1mark]\nlate [showthis ded1][showhere] -> [showthis ded1][showhere ded1mark]\nlate [showthis target0][showhere] -> [showthis target0][showhere target0mark]\nlate [showthis crate0][showhere] -> [showthis crate0][showhere crate0mark]\nlate [showthis cursor0][showhere] -> [showthis cursor0][showhere cursor0mark]\nlate [showthis inf0][showhere] -> [showthis inf0][showhere inf0mark]\nlate [showthis Target1][showhere] -> [showthis target1][showhere Target1mark]\nlate [showthis PlayerTarget1][showhere] -> [showthis PlayerTarget1][showhere PlayerTarget1mark]\n(connect cratemark)\nup [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crateu1 | crate1 crated1]\ndown [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crated1 | crate1 crateu1]\nleft [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark cratel1 | crate1 crater1]\nright [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crater1 | crate1 cratel1]\nup [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crateu1 | fell1 felld1]\ndown [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crated1 | fell1 fellu1]\nleft [action curse0 holding fell1mark no xx no number0 no number2| fell1] -> [action curse0 holding fell1mark cratel1 | fell1 fellr1]\nright [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crater1 | fell1 felll1]\n\n(place mark)\n[placemark] -> []\n\ndown [action curse0a holding xmark no x1 no number0][pickeda0 number0] -> [curse0a holding xmark placemark][pickeda0 decrement number0] SFX7\ndown [action cursor0b holding xmark no x1 no number0][pickedb0 number0] -> [cursor0b holding xmark placemark][pickedb0 decrement number0] SFX7\n\ndown [action cursor2a holding xmark no xx no number0 no number2][pickeda2 number2] -> [cursor2a holding xmark placemark][pickeda2 decrement number2] SFX7\ndown [action cursor2b holding xmark no xx no number0 no number2][pickedb2 number2] -> [cursor2b holding xmark placemark][pickedb2 decrement number2] SFX7\n\n\n\n[placemark player1mark] -> [placemark player1 player1mark]\n[placemark pit1mark] -> [placemark pit1 pit1mark]\n[placemark crate1mark] -> [placemark crate1 crate1mark]\n[placemark wall1mark] -> [placemark wall1 wall1mark]\n[placemark one0mark] -> [placemark one0 one0mark]\n[placemark two0mark] -> [placemark two0 two0mark]\n[placemark three0mark] -> [placemark three0 three0mark]\n[placemark one2mark] -> [placemark one2 one2mark]\n[placemark two2mark] -> [placemark two2 two2mark]\n[placemark three2mark] -> [placemark three2 three2mark]\n[placemark wall0mark] -> [placemark wall0 wall0mark]\n[placemark fell1mark] -> [placemark fell1 fell1mark]\n[placemark ded1mark] -> [placemark ded1 ded1mark]\n[placemark target0mark] -> [placemark target0 target0mark]\n[placemark crate0mark] -> [placemark crate0 crate0mark]\n[placemark Target1mark] -> [placemark target1 Target1mark]\n[placemark inf0mark] -> [placemark inf0 inf0mark]\n[placemark PlayerTarget1mark] -> [placemark playertarget1 PlayerTarget1mark]\ndown [placemark cursor0mark][curse0a|no one2] -> [ cursor0b cursor0mark][curse0a|]\n[placemark cursor0mark] -> [placemark cursor0a cursor0mark]\n\n(decrement number of placed item)\ndown [xmark holding cursor2a][pickable2|one2 decrement pickeda2] -> [xmark holding cursor2a][|one2 decrement pickeda2]\ndown [xmark holding cursor2b][pickable2|one2 decrement pickedb2] -> [xmark holding cursor2b][|one2 decrement pickedb2]\ndown [xmark holding curse0a][pickable|one0 decrement pickeda0] -> [xmark holding curse0a][|one0 decrement pickeda0]\ndown [xmark holding cursor0b][pickable|one0 decrement pickedb0] -> [xmark holding cursor0b][|one0 decrement pickedb0]\ndown [xmark holding cursor2a][|one2 decrement pickeda2] -> [cursor2a][|]\ndown [xmark holding cursor2b][|one2 decrement pickedb2] -> [cursor2b][|]\ndown [xmark holding cursor0a][|one0 decrement pickeda0] -> [cursor0a][|]\ndown [xmark holding cursor0b][|one0 decrement pickedb0] -> [cursor0b][|]\n[one0 decrement] -> []\n[two0 decrement] -> [one0]\n[three0 decrement] -> [two0]\n[four0 decrement] -> [three0]\n[five0 decrement] -> [four0]\n[six0 decrement] -> [five0]\n[seven0 decrement] -> [six0]\n[one2 decrement] -> []\n[two2 decrement] -> [one2]\n[three2 decrement] -> [two2]\n\n\n\n(player -> cursor)\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [player1 action active no wall0ghost no crate0ghost][partbc] -> [cursor0a player1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [ded1 action activefell no wall0ghost no crate0ghost][partbc] -> [cursor0a ded1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\n\n(cursor holding -> player)\ndown [action curse0a activecurse0 player1 holding xmark][| number0 pickeda0] -> [active player1][ | number0] SFX6\ndown [action curse0a activecurse0 ded1 holding xmark][| number0 pickeda0] -> [activefell ded1][ | number0] SFX6\ndown [action cursor0b activecurse0 player1 holding xmark][| number0 pickedb0] -> [active player1][ | number0] SFX6\ndown [action cursor0b activecurse0 ded1 holding xmark][| number0 pickedb0] -> [activefell ded1][ | number0] SFX6\n(empty cursor -> player)\n[action curse0 player1 activecurse0 no holding] -> [active player1] SFX6\n[action curse0 ded1 activecurse0 no holding] -> [activefell ded1] SFX6\n(red -> blue)\n[action cursor0a activecurse0 holding xmark][partc][pickeda0] -> [cursor0a cursor2a][partc][] SFX5\n[action cursor0a activecurse0 ][partc] -> [cursor0a cursor2a][partc] SFX5\n[action cursor0b activecurse0 holding xmark][partc][pickedb0] -> [cursor0b cursor2b][partc][] SFX5\n[action cursor0b activecurse0 ][partc] -> [cursor0b cursor2b][partc] SFX5\n(blue holding -> red)\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\nrandom down [action curse2 curse0 holding xmark][| number2 pickeda2] -> [activecurse0 cursor0a][ | number2] SFX6\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\n(empty blue -> red)\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\nrandom [action curse2 curse0 no holding] -> [activecurse0 cursor0a] SFX6\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\n\n\n[action player] -> SFX0\n[action curse0] -> SFX0\n\n(Aesthetic----------------------------------------------------------------------------------------)\n\n\n\n(ghosts)\n[player1 active][pit0] -> [player1 active][pit0ghost]\n[pit0ghost][cursor0] -> [pit0][cursor0]\n[player1 active][wall0] -> [player1 active][wall0ghost]\n[wall0ghost][cursor0] -> [wall0][cursor0]\n[player1 active][crate0] -> [player1 active][crate0ghost]\n[crate0ghost][cursor0] -> [crate0][cursor0]\n[player1 active][fell0] -> [player1 active][fell0ghost]\n[fell0ghost][cursor0] -> [fell0][cursor0]\n[curse0 activecurse0][wall2] -> [curse0 activecurse0][wall2ghost]\n[wall2ghost][curse2] -> [wall2][curse2]\n\n\n(wall boundaries)\n[wallx2] -> []\n[wallx1] -> []\n[wallx0] -> []\nup [wall2 | no wall2] -> [wall2 wallu2 | ]\ndown [wall2 | no wall2] -> [wall2 walld2 | ]\nleft [wall2 | no wall2] -> [wall2 walll2 | ]\nright [wall2 | no wall2] -> [wall2 wallr2 | ]\nup [wall1 | no wall1] -> [wall1 wallu1 | ]\ndown [wall1 | no wall1] -> [wall1 walld1 | ]\nleft [wall1 | no wall1] -> [wall1 walll1 | ]\nright [wall1 | no wall1] -> [wall1 wallr1 | ]\nup [wall0 | no wall0] -> [wall0 wallu0 | ]\ndown [wall0 | no wall0] -> [wall0 walld0 | ]\nleft [wall0 | no wall0] -> [wall0 walll0 | ]\nright [wall0 | no wall0] -> [wall0 wallr0 | ]\n\n(crate connectors)\nup [crateu0|] -> [crateu0 | crated0]\nright [crater0|] -> [crater0 | cratel0]\nup [crateu1|] -> [crateu1 | crated1]\nright [crater1|] -> [crater1 | cratel1]\n(pit connectors)\n[blackcorner] -> []\n[pit0x] -> [] \n[pit1x] -> [] \nup [pit1 | pit1] -> [pit1u pit1|pit1d pit1]\nright [pit1 | pit1] -> [pit1r pit1|pit1l pit1]\nup [pit0 | pit0] -> [pit0u pit0|pit0d pit0]\nright [pit0 | pit0] -> [pit0r pit0|pit0l pit0]\n[pit1u pit1r] -> [pit1u pit1r blackur]\n[pit1u pit1l] -> [pit1u pit1l blackul]\n[pit1d pit1r] -> [pit1d pit1r blackdr]\n[pit1d pit1l] -> [pit1d pit1l blackdl]\n[pit0u pit0r] -> [pit0u pit0r blackur]\n[pit0u pit0l] -> [pit0u pit0l blackul]\n[pit0d pit0r] -> [pit0d pit0r blackdr]\n[pit0d pit0l] -> [pit0d pit0l blackdl]\n[rim1x] -> []\n[rim0x] -> []\nup[pit0|no pit0] -> [pit0 rim0u|]\ndown[pit0|no pit0] -> [pit0 rim0d|]\nleft[pit0|no pit0] -> [pit0 rim0l|]\nright[pit0|no pit0] -> [pit0 rim0r|]\nup[pit1|no pit1] -> [pit1 rim1u|]\ndown[pit1|no pit1] -> [pit1 rim1d|]\nleft[pit1|no pit1] -> [pit1 rim1l|]\nright[pit1|no pit1] -> [pit1 rim1r|]\nlate [pink] -> []\nlate [cyan] -> []\nlate [chosepink] -> []\nlate [chosecyan] -> []\nlate down [pickable |number0] -> [pickable pink | number0 pink]\nlate down [pickable2 |number2] -> [pickable2 cyan | number2 cyan]\nlate up [pink picked|pink] -> [chosepink picked|chosepink ]\nlate up [cyan picked|cyan ] -> [chosecyan picked|chosecyan ]\n\n(Movement----------------------------------------------------------------------------------------)\n\n(move attached items)\n[moving activecurse0 curse0] -> [moving activecurse0 moving curse0]\n[moving active player1] -> [moving active moving player1]\n[moving activefell ded1] -> [moving activefell moving ded1]\n[moving curse0 holding] -> [moving curse0 moving holding]\n[moving curse2 holding] -> [moving curse2 moving holding]\n\n(reset and propogate cant)\n[cant0] -> []\n[cant1] -> []\n[cant2] -> []\n[fellcant0] -> []\n[fellcant1] -> []\n\n[black no cant0 no cant1 no cant2] -> [black cant0 cant1 cant2]\n[wall2 no cant2] -> [wall2 cant2]\n[wall1 no cant1] -> [wall1 cant1]\n[wall0 no cant0] -> [wall0 cant0]\n[number0] -> [number0 cant1]\n[number2] -> [number2 cant1]\n[no pit1 no fellcant1] -> [fellcant1]\n[no pit0 no fellcant0] -> [fellcant0]\n\n[> ded1][fell1|fellcant1] -> [> ded1][fell1 fellcant1 | fellcant1]\n+ [> ded1][ded1|fellcant1] -> [> ded1][ded1 fellcant1 | fellcant1]\n+ up[fellu1|fellcant1] -> [fellu1 fellcant1 | fellcant1]\n+ left[felll1|fellcant1] -> [felll1 fellcant1 | fellcant1]\n+ down[felld1|fellcant1] -> [felld1 fellcant1 | fellcant1]\n+ right[fellr1|fellcant1] -> [fellr1 fellcant1 | fellcant1]\n\n+ [> player1][crate1|cant1] -> [> player1][crate1 cant1 | cant1]\n+ [> player1][player1|cant1] -> [> player1][player1 cant1 | cant1]\n+ up[crateu1|cant1] -> [crateu1 cant1 | cant1]\n+ left[cratel1|cant1] -> [cratel1 cant1 | cant1]\n+ down[crated1|cant1] -> [crated1 cant1 | cant1]\n+ right[crater1|cant1] -> [crater1 cant1 | cant1]\n+ [crate1 crate0 cant0] -> [crate1 crate0 cant0 cant1]\n+ [crate1 crate0 cant1] -> [crate1 crate0 cant0 cant1]\n+ [> dead0][dead0|fellcant0] -> [> dead0][dead0 fellcant0 | fellcant0]\n+ [> cursor0][cursor0|cant0] -> [> cursor0][cursor0 cant0 | cant0]\n+ [> cursor0][crate0 | number0] -> [> cursor0][crate0 cant0| number0]\n+ [> cursor0][crate0|cant0] -> [> cursor0][crate0 cant0 | cant0]\n+ up[crateu0|cant0] -> [crateu0 cant0 | cant0]\n+ left[cratel0|cant0] -> [cratel0 cant0 | cant0]\n+ down[crated0|cant0] -> [crated0 cant0 | cant0]\n+ right[crater0|cant0] -> [crater0 cant0 | cant0]\n\n[> curse2 | wall2] -> [stationary curse2 | wall2]\n[> curse2 | black] -> [stationary curse2 | black]\n[cursor0 cant0] -> [stationary cursor0 cant0]\n[player1 cant1] -> [stationary player1 cant1]\n[ded1 fellcant1] -> [stationary ded1 fellcant1]\n[dead0 fellcant0] -> [stationary dead0 fellcant0]\n\n\n(propagate movement)\n\n[ > Ded1 | Fell1 no fellcant1] -> [ > Ded1 | > Fell1 ]\n\n[ > Cursor0 | Crate0 ] -> [ > Cursor0 | > Crate0 ]\n+ [ > Cursor0 | Cursor0 ] -> [ > Cursor0 | > Cursor0 ]\n+ [ > Crate0 | Crate0 ] -> [ > Crate0 | > Crate0 ]\n\n+ [ > Player1 | Crate1 ] -> [ > Player1 | > Crate1 ]\n+ [ > Player1 | Player1] -> [ > Player1 | > Player1 ]\n+ [ > Crate1 | Player1 ] -> [ > Crate1 | > Player1 ]\n+ [> crate1|crate1] -> [> crate1 | > crate1]\n+ up[moving crate1 crateu1|crate1] -> [moving crate1 crateu1 | moving crate1]\n+ left[moving crate1 cratel1|crate1] -> [moving crate1 cratel1 | moving crate1]\n+ down[moving crate1 crated1|crate1] -> [moving crate1 crated1 | moving crate1]\n+ right[moving crate1 crater1|crate1] -> [moving crate1 crater1 | moving crate1]\n \n\n[> fell1|fell1] -> [> fell1 | > fell1]\n+ up[moving fell1 fellu1|fell1] -> [moving fell1 fellu1 | moving fell1]\n+ left[moving fell1 felll1|fell1] -> [moving fell1 felll1 | moving fell1]\n+ down[moving fell1 felld1|fell1] -> [moving fell1 felld1 | moving fell1]\n+ right[moving fell1 fellr1|fell1] -> [moving fell1 fellr1 | moving fell1]\n\n[moving crate1 cratex1] -> [moving crate1 moving cratex1]\n[moving fell1 fellx1] -> [moving fell1 moving fellx1]\n[moving crate1 crate0ghost] -> [moving crate1 moving crate0ghost]\n\n[active stationary player1] -> [stationary active stationary player1]\n[activecurse0 stationary curse0] -> [stationary activecurse0 stationary curse0]\n[activefell stationary ded1] -> [stationary activefell stationary ded1]\n[stationary cursor0 activecurse0 holding] -> [stationary cursor0 activecurse0 stationary holding]\n[stationary curse2 holding] -> [stationary curse2 stationary holding]\n\n\n(falling)\nlate [supported] -> []\n\nlate [crate1 ded1] -> [crate1 supported ded1]\nlate [crate1 no pit1] -> [crate1 supported]\nlate [crate1 fell1] -> [crate1 fell1 supported]\n\n\nlate up[crateu1|supported] -> [crateu1 supported | supported]\n+ late left[cratel1|supported] -> [cratel1 supported | supported]\n+ late down[crated1|supported] -> [crated1 supported | supported]\n+ late right[crater1|supported] -> [crater1 supported | supported]\n\n\nlate [cursor0 pit0 no fell0] -> [pit0 dead0a]SFX3\nlate [player1 active pit1 no fell1 no ded1] -> [pit1 ded1 activefell]SFX3\nlate [player1 pit1 no fell1 no ded1] -> [pit1 ded1 ]SFX3\nlate [crate0 pit0 no supported] -> [pit0 fell0]SFX3\nlate [crate1 pit1 no supported] -> [pit1 fell1] SFX3\n\n\n\nlate [crateu1 no crate1 fell1] -> [fellu1 fell1]\nlate [cratel1 no crate1 fell1] -> [felll1 fell1]\nlate [crater1 no crate1 fell1] -> [fellr1 fell1]\nlate [crated1 no crate1 fell1] -> [felld1 fell1]\n\nlate [crateu1 no crate1] -> []\nlate [cratel1 no crate1] -> []\nlate [crater1 no crate1] -> []\nlate [crated1 no crate1] -> []\nlate up [crateu1 |no crate1] -> [|]\nlate left [cratel1 |no crate1] -> [|]\nlate right [crater1 |no crate1] -> [|]\nlate down [crated1 |no crate1] -> [|]\nlate [player1 ded1] -> [player1 ded1] SFX0\nlate [player1 ded1] -> cancel \n\n[moving crate0] -> SFX2\n[moving crate1] -> SFX2\n\n==============\nWINCONDITIONS\n==============\n\n\nAll target0 on crate0\nAll Target1 on Crateorfell1\nAll PlayerTarget1 on Playerormark1\nno Cursor0 on target1\nno cursor0 on PlayerTarget1\n\n=======\nLEVELS\n=======\n\nmessage Book 1: BASE\n\nmessage Page 1.1: GOAL\n\n#######\n#`````#\n#`p`t`#\n#`````#\n#`o`q`#\n#`````#\n#######\n\nmessage Page 1.2: TOOL\n\n#######\n#`t`o`#\n#t`-:`#\n#``tlo#\n#p````#\n#######\n\nmessage Page 1.3: HOLE\n\n########\n##``0`##\n#```0``#\n#``o0`t#\n#po:0``#\n#``:0`t#\n#```0``#\n##``0`##\n########\n\nmessage Page 1.4: FALL\n\n########\n#00u``0#\n#00po`0#\n#`000`0#\n#`00```#\n#`000``#\n#`000``#\n########\n\nmessage Book 2: EDIT\n\nmessage Page 2.1: MINI\n\n||||||||||\n|```````'|\n|`######`|\n|`#````#`|\n|`#``t`#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 2.2: FORM\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 2.3: PLUG\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#ro`o`#`|\n|`#####`#`|\n|`###`o`#`|\n|`#``oLo#`|\n|`#````##`|\n|`#`q####`|\n|`#######`|\n|`````````|\n|``c`0````|\n|````8````|\n|`````````|\n|||||||||||\n\nmessage Page 2.4: TRAP\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#``````#`|\n|`#``t```#`|\n|`#`tqt``#`|\n|`#``t```#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````16````|\n|``````````|\n||||||||||||\n\nmessage Book 3: DUAL\n\nmessage Page 3.1: CO-OP\n\n#######\n####qq#\n#po000#\n#`o000#\n###o``#\n###r`'#\n#######\n\nmessage Page 3.2: REST\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#`r00q#`|\n|`#######`|\n|`````````|\n|``c`o````|\n|````2````|\n|`````````|\n|||||||||||\nmessage Page 3.3: SAIL\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#0000q#`|\n|`#00000#`|\n|`#00000#`|\n|`#```00#`|\n|`#```00#`|\n|`#######`|\n|`````````|\n|``c`ro```|\n|````23```|\n|`````````|\n|||||||||||\n\nmessage Page 3.4: TWIN\n\n|||||||||||||||||||||\n|`````````+````````'|\n|`#######`+`#######`|\n|`#`````#`+`#`````#`|\n|`#```q`#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`q```#`|\n|`#`````#`+`#`````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````6````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Book 4: WHAT\n\nmessage Page 4.1: GUIS\n\n\n#######\n#q#``'#\n#``8#`#\n#`#p#`#\n#`#o#`#\n#`#1``#\n#######\n\nmessage Page 4.2: IDEA\n\n||||||||||\n|```````'|\n|`######`|\n|`#```t#`|\n|`#```t#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```31```|\n|````````|\n||||||||||\n\nmessage Page 4.3: FILL\n\n\n######\n#0poq#\n#0`70#\n#'000#\n#0000#\n######\n\nmessage Page 4.4: A LOT\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|``````'|\n|`c3o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Book 5: UHHH\n\nmessage Page 5.1: WALL\n\n||||||||||\n|```````'|\n|`######`|\n|`#t`#`#`|\n|`#````#`|\n|`##`o`#`|\n|x+xxxx+x|\n|`#````#`|\n|`#````#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 5.2: SAFE\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#xxxxx#`|\n|`#x```x#`|\n|`#x`t`x#`|\n|`#x```x#`|\n|`#xxxxx#`|\n|`#######`|\n|`````````|\n|`c`o1r```|\n|```111```|\n|`````````|\n|||||||||||\n\nmessage Page 5.3: LOCK\n\n|||||||||||||\n|o```'`xxxcx|\n|1``x```qx!x|\n|`1!````qx`x|\n|``1?x`xxx?x|\n|r``1````!`x|\n|````2`xxxxx|\n|||||||||||||\n\n\n\nmessage Page 5.4: POST\n\n+++++++++\n+p#```#q+\n+`#``'#3+\n+`#`1`#`+\n+`#`2`#`+\n+`#```#`+\n+`#```#`+\n+++++++++\nmessage Book 6: BLUE\n\nmessage Page 6.1: META\n\n||||||||||||\n|++++++++++|\n|+````\"```+|\n|+`######`+|\n|+`#````#`+|\n|+`#``t`#`+|\n|+`#````#`+|\n|+`######`+|\n|+````````+|\n|+```ro```+|\n|+````````+|\n|+````````+|\n|++++++++++|\n|``````````|\n|``~`1b````|\n|````{[````|\n|``````````|\n||||||||||||\n\nmessage Page 6.2: WILD\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`#######`+|\n|+`#0000q#`+|\n|+`#00000#`+|\n|+`#`0000#`+|\n|+`#`0000#`+|\n|+`#```00#`+|\n|+`#######`+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\nmessage Page 6.3: UH OH\n\n|||||||||||\n|+++++++++|\n|+``````\"+|\n|+`+++++`+|\n|+`+```+`+|\n|+`+`t`+`+|\n|+`+```+`+|\n|+`+```+`+|\n|+`+++++`+|\n|+```````+|\n|+```o```+|\n|+```````+|\n|+```````+|\n|+++++++++|\n|`````````|\n|`````````|\n|`~`1br```|\n|```][[```|\n|`````````|\n|||||||||||\n\nmessage Page 6.4: VARY\n\n|||||||||||||||||||||||\n|++++++++++&++++++++++|\n|+``````\"`x&x````````+|\n|+`######`x&x`######`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`#`qt`#`x&x`#`tq`#`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`######`x&x`######`+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|++++++++++&++++++++++|\n|``````````&``````````|\n|`~`r1ob```&`_`r1ob```|\n|```[{[[```&```[[[[```|\n|``````````&``````````|\n|||||||||||||||||||||||\n\nmessage Book 7: ?!?!\n\nmessage Page 7.1: EACH\n\n+++++++\n+````'+\n+`###`+\n+`#q#`+\n+`#0#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`###`+\n+`````+\n+``c``+\n+`r0o`+\n+``4``+\n+`````+\n+++++++\n\nmessage Page 7.2: HOLD\n\n&&&&&&&&&\n&`8```+`&\n&`{po`+`&\n&`\"```+t&\n&&&&&&&&&\n\nmessage Page 7.3: TRIP\n\n&&&&&&&\n&```\"`&\n&`o`!`&\n&`````&\n&+++++&\n&`r2b`&\n&`[[{~&\n&y```t&\n&&&&&&&\n\nmessage Page 7.4: PLAN\n\n\n|||||||||\n|```t```|\n|```````|\n|+++++++|\n|```````|\n|```````|\n|>>>>>>>|\n|```````|\n|```````|\n|+++++++|\n|```~```|\n|[[`2\"11|\n|[[`[`[[|\n|&&`&&&&|\n|&&bor&&|\n|||||||||\n\n\n\n\n\nmessage Book 8: (RE)STAR(TS)\n\n\nmessage Page 8.1: (IN)FORM(ED)\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 8.2: (EN)TWIN(ED)\n\n|||||||||||||||||||||\n|`````````+`````````|\n|`#######`+`#######`|\n|`#````q#`+`#`````#`|\n|`#`````#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`````#`|\n|`#`````#`+`#q````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````5````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Page 8.3: (ZE)ALOT(RY)\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|```````|\n|`c2o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Page 8.4: (BE)WILD(ER)\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`+++++++`+|\n|+`+0000q+`+|\n|+`+00000+`+|\n|+`+00000+`+|\n|+`+`0000+`+|\n|+`+```00+`+|\n|+`+++++++`+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",[3,3,4,0,0,0,3,4,0,4,3,0,0,4,0,4,1,1,1,2,4,2,4,2,3,0,4,3,3,2,1,1,0,1,0,1,0,3,3,2,3,3,2,2],"background black cant0 cant1 cant2 fellcant0 fellcant1:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background fellcant0 fellcant1:1,1,1,1,1,1,\n1,1,1,1,1,1,0,0,1,background cant1 fellcant0 fellcant1 wall1 walll1 wallu1:2,background cant1 fellcant0 fellcant1 wall1 walll1 wallr1:3,3,3,3,3,background cant1 fellcant0 fellcant1 wall1 walld1 walll1:4,1,1,1,1,0,\n0,1,background cant1 fellcant0 fellcant1 wall1 walld1 wallu1:5,1,1,1,1,1,5,1,1,1,1,0,0,1,5,1,1,1,background cant1 crate1 crated1 fellcant0 fellcant1 supported:6,\nbackground cant1 crate1 crateu1 fellcant0 fellcant1 supported:7,5,1,1,1,1,0,0,1,5,1,1,1,1,1,5,1,1,1,1,0,\n0,1,5,background crate1 fellcant0 fellcant1 supported:8,background fellcant0 fellcant1 playertarget1:9,1,active background fellcant0 fellcant1 player1:10,1,5,1,1,1,1,0,0,1,5,background crate1 crated1 fellcant0 fellcant1 supported:11,background crate1 crateu1 fellcant0 fellcant1 supported:12,1,1,\n1,5,1,1,1,1,0,0,1,background cant1 fellcant0 fellcant1 wall1 wallr1 wallu1:13,3,3,3,3,3,background cant1 fellcant0 fellcant1 wall1 walld1 wallr1:14,1,1,1,1,0,\n0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,background cant1 fellcant0 fellcant1 wall0ghost wall1 walll1 wallr1 wallu1:15,background cant1 fellcant0 fellcant1 wall0ghost wall1 walll1 wallr1:16,16,16,16,16,\n16,16,16,16,16,background cant1 fellcant0 fellcant1 wall0ghost wall1 walld1 walll1 wallr1:17,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,2,3,3,3,3,3,4,1,1,1,1,0,0,1,5,1,11,12,1,\n1,5,1,1,1,1,0,0,1,5,1,1,1,background cant1 crate1 crated1 fellcant0 fellcant1 playertarget1 supported:18,7,5,1,1,1,1,0,\n0,1,5,1,1,1,1,1,5,1,1,1,1,0,0,1,5,1,1,1,10,\n1,5,1,1,1,1,0,0,1,5,11,12,1,1,1,5,1,1,1,1,0,\n0,1,13,3,3,3,3,3,14,1,1,1,1,0,0,background fellcant0 fellcant1 partb:19,1,1,1,1,1,\n1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",26,"1627770125763.7583"] + ["title VEXT EDIT\nauthor JACK\n\nrun_rules_on_level_start\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\n#eeeeee\n\nPlayerTarget1mark\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1mark\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nPlayerTarget1\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0Mark\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nWall0 \n#884400 #f00\n00000\n00000\n00000\n00000\n00000\n\nwalll0 \nBrown #f00\n1....\n1....\n1....\n1....\n1....\n\nWallr0 \nBrown #f00\n....1\n....1\n....1\n....1\n....1\n\nWalld0 \nBrown #f00\n.....\n.....\n.....\n.....\n11111\n\nWallu0 \nBrown #f00\n11111\n.....\n.....\n.....\n.....\n\nBlack\nblack\n\nwall0ghost\ntransparent\n\nWall0Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1 \n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall2\n#884400 #00f\n00000\n00000\n00000\n00000\n00000\n\nwalll2\nBrown #00f\n1....\n1....\n1....\n1....\n1....\n\nWallr2 \nBrown #00f\n....1\n....1\n....1\n....1\n....1\n\nWalld2 \nBrown #00f\n.....\n.....\n.....\n.....\n11111\n\nWallu2 \nBrown #00f\n11111\n.....\n.....\n.....\n.....\n\nwalll1 \nBrown #ff0\n1....\n1....\n1....\n1....\n1....\n\nWallr1 \nBrown #ff0\n....1\n....1\n....1\n....1\n....1\n\nWalld1 \nBrown #ff0\n.....\n.....\n.....\n.....\n11111\n\nWallu1 \nBrown #ff0\n11111\n.....\n.....\n.....\n.....\n\nCrate1Mark\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate1\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate01\ntransparent\n\nCrate0\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate0mark\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\ncrate0ghost\ntransparent\n\nPlayer1Mark\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nPlayer1\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nDed1Mark\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nDed1\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nCrated0\n#f80 #f00\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu0\n#f80 #f00\n.010.\n.010.\n.....\n.....\n.....\n\nCratel0\n#f80 #f00\n.....\n00...\n11...\n00...\n.....\n\nCrater0\n#f80 #f00\n.....\n...00\n...11\n...00\n.....\n\nCrated1\n#f80 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu1\n#f80 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nCratel1\n#f80 #ff0\n.....\n00...\n11...\n00...\n.....\n\nCrater1\n#f80 #ff0\n.....\n...00\n...11\n...00\n.....\n\n\nPit1Mark\nblack #bbbb00 white\n.111.\n10001\n10001\n10001\n.111.\n\n\nPit1\nblack #bbbb00 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\npit0ghost\ntransparent\n\nPit0\nblack #bb0000 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\n\npit0u\nblack #bb0000\n10001\n.....\n.....\n.....\n.....\n\npit0d\nblack #bb0000\n.....\n.....\n.....\n.....\n10001\n\npit0l\nblack #bb0000\n1....\n0....\n0....\n0....\n1....\n\npit0r\nblack #bb0000\n....1\n....0\n....0\n....0\n....1\n\npit1u\nblack #bbbb00\n10001\n.....\n.....\n.....\n.....\n\npit1d\nblack #bbbb00\n.....\n.....\n.....\n.....\n10001\n\npit1l\nblack #bbbb00\n1....\n0....\n0....\n0....\n1....\n\npit1r\nblack #bbbb00\n....1\n....0\n....0\n....0\n....1\n\nrim0u\n#b00\n.000.\n.....\n.....\n.....\n.....\n\nrim0l\n#b00\n.....\n0....\n0....\n0....\n.....\n\nrim0r\n#b00\n.....\n....0\n....0\n....0\n.....\n\nrim0d\n#b00\n.....\n.....\n.....\n.....\n.000.\n\nrim1u\n#bb0\n.000.\n.....\n.....\n.....\n.....\n\nrim1l\n#bb0\n.....\n0....\n0....\n0....\n.....\n\nrim1r\n#bb0\n.....\n....0\n....0\n....0\n.....\n\nrim1d\n#bb0\n.....\n.....\n.....\n.....\n.000.\n\nblackul\nblack\n0....\n.....\n.....\n.....\n.....\n\nblackur\nblack\n....0\n.....\n.....\n.....\n.....\n\nblackdl\nblack\n.....\n.....\n.....\n.....\n0....\n\nblackdr\nblack\n.....\n.....\n.....\n.....\n....0\n\nfell0\n#884400 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1mark\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfelld1\n#884400 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nfellu1\n#884400 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nfelll1\n#884400 #ff0\n.....\n00...\n11...\n00...\n.....\n\nfellr1\n#884400 #ff0\n.....\n...00\n...11\n...00\n.....\n\nfell0ghost\ntransparent\n\nsupported\ntransparent\n\nfellcant1\ntransparent\n\ncant1\ntransparent\n\ncant0\ntransparent\n\nfellcant0\ntransparent\n\ndead0a\ndarkred\n.....\n.0.0.\n.....\n.0.0.\n.....\n\ncursor0a\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\ncursor0b\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\n\n\ncursor2a\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\ncursor2b\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\none2mark\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2mark\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2mark\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none2\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0mark\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0mark\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0mark\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\nfour0\n#f00\n.0.0.\n.0.0.\n..00.\n...0.\n...0.\n\nfive0\n#f00\n.000.\n.0...\n.00..\n...0.\n.00..\n\nsix0\n#f00\n..00.\n.0...\n.00..\n.0.0.\n..0..\n\nseven0\n#f00\n.000.\n...0.\n...0.\n..0..\n..0..\n\ninf0\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\ninf0mark\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\n\ndecrement\ntransparent\n\nholding\ntransparent\n\nactiveb\n#f00\n.....\n.0.0.\n.....\n.....\n.....\n\nactive\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\nactivefell\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\npickeda0\ntransparent\n\npickedb0\ntransparent\n\npickeda2\ntransparent\n\npickedb2\ntransparent\n\nchosepink\n#ff22ff\n\nchosecyan\n#22ffff\n\npink\n#ff88ff\n\ncyan\n#88ffff\n\nplacemark\ntransparent\n\nactivecurse0\ntransparent\n\npartb\ntransparent\n\npartc\ntransparent\n\ncursor0mark\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\nwall2ghost\ntransparent\n\ncant2\ntransparent\n\nshowhere\ntransparent\n\nshowthis\ntransparent\n=======\nLEGEND\n=======\n\n` = Background\n& = Wall2 and wall1 and wall0\n# = Wall1\nX = Wall0\n+ = Wall0 and Wall1\nP = Player1 and active\n\nn = crate0 and crate1 and crate01\no = Crate1\n- = crate1 and crater1\n: = crate1 and crateu1\nL = crate1 and crater1 and crateu1\n0 = pit1\n! = crate0\n? = pit0\n/ = pit0 and pit1\n\n@ = one0 and pit0\nz = player1 and pit0\n\n| = black\n\n' = partb\n\" = partc\n\n~ = cursor2a\n_ = cursor2b\n\n1 = one0\n2 = two0\n3 = three0\n4 = four0\n5 = five0\n6 = six0\n7 = seven0\n8 = inf0\n\n[ = one2\n{ = two2\n] = three2\n> = wall2\nactiveab = active or activeb or activefell\npartbc = partb or partc\n\ny = target0\nu = Target1 and pit1\nt = Target1\nq = playertarget1\nr = player1\nb = cursor0a\nc = cursor0a and activecurse0\nk = cursor0b and activecurse0\ncurse0a = cursor0a or dead0a\ncurse0 = curse0a or cursor0b\ncurse2 = cursor2a or cursor2b\ncursor0 = cursor0a or cursor0b\n \nplayer = curse2 or activecurse0 or active or dead0a or activefell\ndead0 = dead0a\nx1 = player1 or crate1 or wall1 or target1 or playertarget1 or pit1\nx0 = crate0 or wall0 or pit0 or fell0\nxx = x0 or x1 or curse0\nx0ghost = crate0ghost or wall0ghost or pit0ghost or fell0ghost\ncratex1 = cratel1 or crater1 or crated1 or crateu1\nwallx2 = walll2 or wallr2 or walld2 or wallu2\nwallx1 = walll1 or wallr1 or walld1 or wallu1\nwallx0 = walll0 or wallr0 or walld0 or wallu0\nfellx1 = felll1 or fellr1 or felld1 or fellu1\npit0x = pit0l or pit0r or pit0d or pit0u\npit1x = pit1l or pit1r or pit1d or pit1u\ncrateorfell1 = crate1 or fell1\nplayerormark1 = player1 or player1mark\n\nx0mark = one0mark or two0mark or three0mark or cursor0mark or wall0mark or target0mark or crate0mark or inf0mark\nx1mark = player1mark or crate1mark or pit1mark or wall1mark or fell1mark or ded1mark or crate1mark or Target1mark or PlayerTarget1mark\nx2mark = one2mark or two2mark or three2mark\nxmark = x0mark or x1mark or x2mark\nnumber0 = one0 or two0 or three0 or four0 or five0 or six0 or seven0 or inf0\nnumber2 = one2 or two2 or three2\npicked = pickeda0 or pickedb0 or pickeda2 or pickedb2\n\npickable = player1 or pit1 or crate1 or number0 or wall1 or number2 or fell1 or ded1 or target0 or PlayerTarget1 or Target1\npickable2 = curse0a or pickable or wall0 or crate0 \n\nblackcorner = blackul or blackdl or blackur or blackdr\nrim0x = rim0l or rim0d or rim0u or rim0r\nrim1x = rim1l or rim1d or rim1u or rim1r \n=======\nSOUNDS\n=======\n\nSFX0 51304502\n\nsfx1 22108304\n\nSFX2 84700307\n\nSFX3 78571302\n\nSFX4 25131906\n\nSFX5 13408901\n\nSFX6 50704903\n\nSFX7 24622504\n\nSFX8 29744504\n\nSFX9 13344503\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\npink, chosepink\ncyan, chosecyan\n\n\nPit1,\npit1r\npit1l\npit1d\npit1u\npit0, pit0ghost\npit0r\npit0l\npit0d\npit0u\nblackul\nblackur\nblackdr\nblackdl\nTarget1, PlayerTarget1, target0\n\nfell1, ded1\nfelll1\nfellr1\nfelld1\nfellu1\n\ndead0a, fell0, fell0ghost\nrim0l \nrim0d \nrim0u \nrim0r\n\nrim1l \nrim1d \nrim1u \nrim1r \nPlayer1, Wall1, Crate1, \npit1mark\nfell1mark, ded1mark, target0mark\nTarget1mark, PlayerTarget1mark\nplayer1mark, crate1mark\nwall1mark\none0mark, two0mark, three0mark, wall0mark, inf0mark\none2mark, two2mark, three2mark\ncursor0mark, crate0mark\nnumber0, number2\ncratel1, walll1, \ncrater1, wallr1, \ncrated1, walld1, \ncrateu1, wallu1, \ncursor0, wall0, crate0, wall0ghost, crate0ghost\n walll0, cratel0\n wallr0, crater0\n walld0, crated0\n wallu0, crateu0\n crate01\n wall2, wall2ghost\n wallr2\n wallu2\n walll2\n walld2\n cursor2a, cursor2b\n \nfellcant1\nfellcant0\ncant0\ncant1\ncant2\nsupported\nactivefell\nactive, activeb\nactivecurse0\nholding\ndecrement\npickeda0, pickeda2\npickedb0, pickedb2\nplacemark\npartb partc\nshowthis\nshowhere\nblack\n\n======\nRULES\n======\n\n(Deal with action-----------------------------------------------------------------------------)\n\n[action activecurse0 curse0] -> [activecurse0 action curse0]\n\n(pick up ready icon)\ndown[action curse0a no holding pickable|number0] -> [curse0a holding pickable|number0 pickeda0] SFX9\ndown[action cursor0b no holding pickable|number0] -> [cursor0b holding pickable|number0 pickedb0] SFX9\ndown[action cursor2a no holding pickable2|number2] -> [cursor2a holding pickable2|number2 pickeda2] SFX9\ndown[action cursor2b no holding pickable2|number2] -> [cursor2b holding pickable2|number2 pickedb2] SFX9\n(switch to new ready icon)\ndown [action curse0a pickable| number0 no pickeda0][pickeda0] -> [curse0a pickable | number0 pickeda0][] SFX9\ndown [action cursor0b pickable| number0 no pickedb0][pickedb0] -> [cursor0b pickable | number0 pickedb0][] SFX9\ndown [action cursor2a pickable2| number2 no pickeda2][pickeda2] -> [cursor2a pickable2 | number2 pickeda2][] SFX9\ndown [action cursor2b pickable2| number2 no pickedb2][pickedb2] -> [cursor2b pickable2 | number2 pickedb2][] SFX9\n\n(put down ready icon)\ndown [action curse0 holding pickable| picked] -> [curse0 pickable|] SFX8\ndown [action cursor2a holding pickable2| pickeda2] -> [cursor2a pickable2|] SFX8\ndown [action cursor2b holding pickable2| pickedb2] -> [cursor2b pickable2|] SFX8\n\n(show mark)\nlate [xmark] -> []\nlate [showthis] -> []\nlate [showhere] -> []\n\nlate down [ | number0 pickeda0][curse0a] -> [showthis | number0 pickeda0][curse0a showhere]\nlate down [ | number0 pickedb0][cursor0b] -> [showthis | number0 pickedb0][cursor0b showhere]\nlate down [ | number2 pickeda2][cursor2a] -> [showthis | number2 pickeda2][cursor2a showhere]\nlate down [ | number2 pickedb2][cursor2b] -> [showthis | number2 pickedb2][cursor2b showhere]\nlate [showthis player1][showhere] -> [showthis player1][showhere player1mark]\nlate [showthis pit1][showhere] -> [showthis pit1][showhere pit1mark]\nlate [showthis crate1][showhere] -> [showthis crate1][showhere crate1mark]\nlate [showthis wall1][showhere] -> [showthis wall1][showhere wall1mark]\nlate [showthis one0][showhere] -> [showthis one0][showhere one0mark]\nlate [showthis two0][showhere] -> [showthis two0][showhere two0mark]\nlate [showthis three0][showhere] -> [showthis three0][showhere three0mark]\nlate [showthis one2][showhere] -> [showthis one2][showhere one2mark]\nlate [showthis two2][showhere] -> [showthis two2][showhere two2mark]\nlate [showthis three2][showhere] -> [showthis three2][showhere three2mark]\nlate [showthis wall0][showhere] -> [showthis wall0][showhere wall0mark]\nlate [showthis fell1][showhere] -> [showthis fell1][showhere fell1mark]\nlate [showthis ded1][showhere] -> [showthis ded1][showhere ded1mark]\nlate [showthis target0][showhere] -> [showthis target0][showhere target0mark]\nlate [showthis crate0][showhere] -> [showthis crate0][showhere crate0mark]\nlate [showthis cursor0][showhere] -> [showthis cursor0][showhere cursor0mark]\nlate [showthis inf0][showhere] -> [showthis inf0][showhere inf0mark]\nlate [showthis Target1][showhere] -> [showthis target1][showhere Target1mark]\nlate [showthis PlayerTarget1][showhere] -> [showthis PlayerTarget1][showhere PlayerTarget1mark]\n(connect cratemark)\nup [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crateu1 | crate1 crated1]\ndown [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crated1 | crate1 crateu1]\nleft [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark cratel1 | crate1 crater1]\nright [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crater1 | crate1 cratel1]\nup [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crateu1 | fell1 felld1]\ndown [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crated1 | fell1 fellu1]\nleft [action curse0 holding fell1mark no xx no number0 no number2| fell1] -> [action curse0 holding fell1mark cratel1 | fell1 fellr1]\nright [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crater1 | fell1 felll1]\n\n(place mark)\n[placemark] -> []\n\ndown [action curse0a holding xmark no x1 no number0][pickeda0 number0] -> [curse0a holding xmark placemark][pickeda0 decrement number0] SFX7\ndown [action cursor0b holding xmark no x1 no number0][pickedb0 number0] -> [cursor0b holding xmark placemark][pickedb0 decrement number0] SFX7\n\ndown [action cursor2a holding xmark no xx no number0 no number2][pickeda2 number2] -> [cursor2a holding xmark placemark][pickeda2 decrement number2] SFX7\ndown [action cursor2b holding xmark no xx no number0 no number2][pickedb2 number2] -> [cursor2b holding xmark placemark][pickedb2 decrement number2] SFX7\n\n\n\n[placemark player1mark] -> [placemark player1 player1mark]\n[placemark pit1mark] -> [placemark pit1 pit1mark]\n[placemark crate1mark] -> [placemark crate1 crate1mark]\n[placemark wall1mark] -> [placemark wall1 wall1mark]\n[placemark one0mark] -> [placemark one0 one0mark]\n[placemark two0mark] -> [placemark two0 two0mark]\n[placemark three0mark] -> [placemark three0 three0mark]\n[placemark one2mark] -> [placemark one2 one2mark]\n[placemark two2mark] -> [placemark two2 two2mark]\n[placemark three2mark] -> [placemark three2 three2mark]\n[placemark wall0mark] -> [placemark wall0 wall0mark]\n[placemark fell1mark] -> [placemark fell1 fell1mark]\n[placemark ded1mark] -> [placemark ded1 ded1mark]\n[placemark target0mark] -> [placemark target0 target0mark]\n[placemark crate0mark] -> [placemark crate0 crate0mark]\n[placemark Target1mark] -> [placemark target1 Target1mark]\n[placemark inf0mark] -> [placemark inf0 inf0mark]\n[placemark PlayerTarget1mark] -> [placemark playertarget1 PlayerTarget1mark]\ndown [placemark cursor0mark][curse0a|no one2] -> [ cursor0b cursor0mark][curse0a|]\n[placemark cursor0mark] -> [placemark cursor0a cursor0mark]\n\n(decrement number of placed item)\ndown [xmark holding cursor2a][pickable2|one2 decrement pickeda2] -> [xmark holding cursor2a][|one2 decrement pickeda2]\ndown [xmark holding cursor2b][pickable2|one2 decrement pickedb2] -> [xmark holding cursor2b][|one2 decrement pickedb2]\ndown [xmark holding curse0a][pickable|one0 decrement pickeda0] -> [xmark holding curse0a][|one0 decrement pickeda0]\ndown [xmark holding cursor0b][pickable|one0 decrement pickedb0] -> [xmark holding cursor0b][|one0 decrement pickedb0]\ndown [xmark holding cursor2a][|one2 decrement pickeda2] -> [cursor2a][|]\ndown [xmark holding cursor2b][|one2 decrement pickedb2] -> [cursor2b][|]\ndown [xmark holding cursor0a][|one0 decrement pickeda0] -> [cursor0a][|]\ndown [xmark holding cursor0b][|one0 decrement pickedb0] -> [cursor0b][|]\n[one0 decrement] -> []\n[two0 decrement] -> [one0]\n[three0 decrement] -> [two0]\n[four0 decrement] -> [three0]\n[five0 decrement] -> [four0]\n[six0 decrement] -> [five0]\n[seven0 decrement] -> [six0]\n[one2 decrement] -> []\n[two2 decrement] -> [one2]\n[three2 decrement] -> [two2]\n\n\n\n(player -> cursor)\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [player1 action active no wall0ghost no crate0ghost][partbc] -> [cursor0a player1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [ded1 action activefell no wall0ghost no crate0ghost][partbc] -> [cursor0a ded1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\n\n(cursor holding -> player)\ndown [action curse0a activecurse0 player1 holding xmark][| number0 pickeda0] -> [active player1][ | number0] SFX6\ndown [action curse0a activecurse0 ded1 holding xmark][| number0 pickeda0] -> [activefell ded1][ | number0] SFX6\ndown [action cursor0b activecurse0 player1 holding xmark][| number0 pickedb0] -> [active player1][ | number0] SFX6\ndown [action cursor0b activecurse0 ded1 holding xmark][| number0 pickedb0] -> [activefell ded1][ | number0] SFX6\n(empty cursor -> player)\n[action curse0 player1 activecurse0 no holding] -> [active player1] SFX6\n[action curse0 ded1 activecurse0 no holding] -> [activefell ded1] SFX6\n(red -> blue)\n[action cursor0a activecurse0 holding xmark][partc][pickeda0] -> [cursor0a cursor2a][partc][] SFX5\n[action cursor0a activecurse0 ][partc] -> [cursor0a cursor2a][partc] SFX5\n[action cursor0b activecurse0 holding xmark][partc][pickedb0] -> [cursor0b cursor2b][partc][] SFX5\n[action cursor0b activecurse0 ][partc] -> [cursor0b cursor2b][partc] SFX5\n(blue holding -> red)\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\nrandom down [action curse2 curse0 holding xmark][| number2 pickeda2] -> [activecurse0 cursor0a][ | number2] SFX6\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\n(empty blue -> red)\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\nrandom [action curse2 curse0 no holding] -> [activecurse0 cursor0a] SFX6\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\n\n\n[action player] -> SFX0\n[action curse0] -> SFX0\n\n(Aesthetic----------------------------------------------------------------------------------------)\n\n\n\n(ghosts)\n[player1 active][pit0] -> [player1 active][pit0ghost]\n[pit0ghost][cursor0] -> [pit0][cursor0]\n[player1 active][wall0] -> [player1 active][wall0ghost]\n[wall0ghost][cursor0] -> [wall0][cursor0]\n[player1 active][crate0] -> [player1 active][crate0ghost]\n[crate0ghost][cursor0] -> [crate0][cursor0]\n[player1 active][fell0] -> [player1 active][fell0ghost]\n[fell0ghost][cursor0] -> [fell0][cursor0]\n[curse0 activecurse0][wall2] -> [curse0 activecurse0][wall2ghost]\n[wall2ghost][curse2] -> [wall2][curse2]\n\n\n(wall boundaries)\n[wallx2] -> []\n[wallx1] -> []\n[wallx0] -> []\nup [wall2 | no wall2] -> [wall2 wallu2 | ]\ndown [wall2 | no wall2] -> [wall2 walld2 | ]\nleft [wall2 | no wall2] -> [wall2 walll2 | ]\nright [wall2 | no wall2] -> [wall2 wallr2 | ]\nup [wall1 | no wall1] -> [wall1 wallu1 | ]\ndown [wall1 | no wall1] -> [wall1 walld1 | ]\nleft [wall1 | no wall1] -> [wall1 walll1 | ]\nright [wall1 | no wall1] -> [wall1 wallr1 | ]\nup [wall0 | no wall0] -> [wall0 wallu0 | ]\ndown [wall0 | no wall0] -> [wall0 walld0 | ]\nleft [wall0 | no wall0] -> [wall0 walll0 | ]\nright [wall0 | no wall0] -> [wall0 wallr0 | ]\n\n(crate connectors)\nup [crateu0|] -> [crateu0 | crated0]\nright [crater0|] -> [crater0 | cratel0]\nup [crateu1|] -> [crateu1 | crated1]\nright [crater1|] -> [crater1 | cratel1]\n(pit connectors)\n[blackcorner] -> []\n[pit0x] -> [] \n[pit1x] -> [] \nup [pit1 | pit1] -> [pit1u pit1|pit1d pit1]\nright [pit1 | pit1] -> [pit1r pit1|pit1l pit1]\nup [pit0 | pit0] -> [pit0u pit0|pit0d pit0]\nright [pit0 | pit0] -> [pit0r pit0|pit0l pit0]\n[pit1u pit1r] -> [pit1u pit1r blackur]\n[pit1u pit1l] -> [pit1u pit1l blackul]\n[pit1d pit1r] -> [pit1d pit1r blackdr]\n[pit1d pit1l] -> [pit1d pit1l blackdl]\n[pit0u pit0r] -> [pit0u pit0r blackur]\n[pit0u pit0l] -> [pit0u pit0l blackul]\n[pit0d pit0r] -> [pit0d pit0r blackdr]\n[pit0d pit0l] -> [pit0d pit0l blackdl]\n[rim1x] -> []\n[rim0x] -> []\nup[pit0|no pit0] -> [pit0 rim0u|]\ndown[pit0|no pit0] -> [pit0 rim0d|]\nleft[pit0|no pit0] -> [pit0 rim0l|]\nright[pit0|no pit0] -> [pit0 rim0r|]\nup[pit1|no pit1] -> [pit1 rim1u|]\ndown[pit1|no pit1] -> [pit1 rim1d|]\nleft[pit1|no pit1] -> [pit1 rim1l|]\nright[pit1|no pit1] -> [pit1 rim1r|]\nlate [pink] -> []\nlate [cyan] -> []\nlate [chosepink] -> []\nlate [chosecyan] -> []\nlate down [pickable |number0] -> [pickable pink | number0 pink]\nlate down [pickable2 |number2] -> [pickable2 cyan | number2 cyan]\nlate up [pink picked|pink] -> [chosepink picked|chosepink ]\nlate up [cyan picked|cyan ] -> [chosecyan picked|chosecyan ]\n\n(Movement----------------------------------------------------------------------------------------)\n\n(move attached items)\n[moving activecurse0 curse0] -> [moving activecurse0 moving curse0]\n[moving active player1] -> [moving active moving player1]\n[moving activefell ded1] -> [moving activefell moving ded1]\n[moving curse0 holding] -> [moving curse0 moving holding]\n[moving curse2 holding] -> [moving curse2 moving holding]\n\n(reset and propogate cant)\n[cant0] -> []\n[cant1] -> []\n[cant2] -> []\n[fellcant0] -> []\n[fellcant1] -> []\n\n[black no cant0 no cant1 no cant2] -> [black cant0 cant1 cant2]\n[wall2 no cant2] -> [wall2 cant2]\n[wall1 no cant1] -> [wall1 cant1]\n[wall0 no cant0] -> [wall0 cant0]\n[number0] -> [number0 cant1]\n[number2] -> [number2 cant1]\n[no pit1 no fellcant1] -> [fellcant1]\n[no pit0 no fellcant0] -> [fellcant0]\n\n[> ded1][fell1|fellcant1] -> [> ded1][fell1 fellcant1 | fellcant1]\n+ [> ded1][ded1|fellcant1] -> [> ded1][ded1 fellcant1 | fellcant1]\n+ up[fellu1|fellcant1] -> [fellu1 fellcant1 | fellcant1]\n+ left[felll1|fellcant1] -> [felll1 fellcant1 | fellcant1]\n+ down[felld1|fellcant1] -> [felld1 fellcant1 | fellcant1]\n+ right[fellr1|fellcant1] -> [fellr1 fellcant1 | fellcant1]\n\n+ [> player1][crate1|cant1] -> [> player1][crate1 cant1 | cant1]\n+ [> player1][player1|cant1] -> [> player1][player1 cant1 | cant1]\n+ up[crateu1|cant1] -> [crateu1 cant1 | cant1]\n+ left[cratel1|cant1] -> [cratel1 cant1 | cant1]\n+ down[crated1|cant1] -> [crated1 cant1 | cant1]\n+ right[crater1|cant1] -> [crater1 cant1 | cant1]\n+ [crate1 crate0 cant0] -> [crate1 crate0 cant0 cant1]\n+ [crate1 crate0 cant1] -> [crate1 crate0 cant0 cant1]\n+ [> dead0][dead0|fellcant0] -> [> dead0][dead0 fellcant0 | fellcant0]\n+ [> cursor0][cursor0|cant0] -> [> cursor0][cursor0 cant0 | cant0]\n+ [> cursor0][crate0 | number0] -> [> cursor0][crate0 cant0| number0]\n+ [> cursor0][crate0|cant0] -> [> cursor0][crate0 cant0 | cant0]\n+ up[crateu0|cant0] -> [crateu0 cant0 | cant0]\n+ left[cratel0|cant0] -> [cratel0 cant0 | cant0]\n+ down[crated0|cant0] -> [crated0 cant0 | cant0]\n+ right[crater0|cant0] -> [crater0 cant0 | cant0]\n\n[> curse2 | wall2] -> [stationary curse2 | wall2]\n[> curse2 | black] -> [stationary curse2 | black]\n[cursor0 cant0] -> [stationary cursor0 cant0]\n[player1 cant1] -> [stationary player1 cant1]\n[ded1 fellcant1] -> [stationary ded1 fellcant1]\n[dead0 fellcant0] -> [stationary dead0 fellcant0]\n\n\n(propagate movement)\n\n[ > Ded1 | Fell1 no fellcant1] -> [ > Ded1 | > Fell1 ]\n\n[ > Cursor0 | Crate0 ] -> [ > Cursor0 | > Crate0 ]\n+ [ > Cursor0 | Cursor0 ] -> [ > Cursor0 | > Cursor0 ]\n+ [ > Crate0 | Crate0 ] -> [ > Crate0 | > Crate0 ]\n\n+ [ > Player1 | Crate1 ] -> [ > Player1 | > Crate1 ]\n+ [ > Player1 | Player1] -> [ > Player1 | > Player1 ]\n+ [ > Crate1 | Player1 ] -> [ > Crate1 | > Player1 ]\n+ [> crate1|crate1] -> [> crate1 | > crate1]\n+ up[moving crate1 crateu1|crate1] -> [moving crate1 crateu1 | moving crate1]\n+ left[moving crate1 cratel1|crate1] -> [moving crate1 cratel1 | moving crate1]\n+ down[moving crate1 crated1|crate1] -> [moving crate1 crated1 | moving crate1]\n+ right[moving crate1 crater1|crate1] -> [moving crate1 crater1 | moving crate1]\n \n\n[> fell1|fell1] -> [> fell1 | > fell1]\n+ up[moving fell1 fellu1|fell1] -> [moving fell1 fellu1 | moving fell1]\n+ left[moving fell1 felll1|fell1] -> [moving fell1 felll1 | moving fell1]\n+ down[moving fell1 felld1|fell1] -> [moving fell1 felld1 | moving fell1]\n+ right[moving fell1 fellr1|fell1] -> [moving fell1 fellr1 | moving fell1]\n\n[moving crate1 cratex1] -> [moving crate1 moving cratex1]\n[moving fell1 fellx1] -> [moving fell1 moving fellx1]\n[moving crate1 crate0ghost] -> [moving crate1 moving crate0ghost]\n\n[active stationary player1] -> [stationary active stationary player1]\n[activecurse0 stationary curse0] -> [stationary activecurse0 stationary curse0]\n[activefell stationary ded1] -> [stationary activefell stationary ded1]\n[stationary cursor0 activecurse0 holding] -> [stationary cursor0 activecurse0 stationary holding]\n[stationary curse2 holding] -> [stationary curse2 stationary holding]\n\n\n(falling)\nlate [supported] -> []\n\nlate [crate1 ded1] -> [crate1 supported ded1]\nlate [crate1 no pit1] -> [crate1 supported]\nlate [crate1 fell1] -> [crate1 fell1 supported]\n\n\nlate up[crateu1|supported] -> [crateu1 supported | supported]\n+ late left[cratel1|supported] -> [cratel1 supported | supported]\n+ late down[crated1|supported] -> [crated1 supported | supported]\n+ late right[crater1|supported] -> [crater1 supported | supported]\n\n\nlate [cursor0 pit0 no fell0] -> [pit0 dead0a]SFX3\nlate [player1 active pit1 no fell1 no ded1] -> [pit1 ded1 activefell]SFX3\nlate [player1 pit1 no fell1 no ded1] -> [pit1 ded1 ]SFX3\nlate [crate0 pit0 no supported] -> [pit0 fell0]SFX3\nlate [crate1 pit1 no supported] -> [pit1 fell1] SFX3\n\n\n\nlate [crateu1 no crate1 fell1] -> [fellu1 fell1]\nlate [cratel1 no crate1 fell1] -> [felll1 fell1]\nlate [crater1 no crate1 fell1] -> [fellr1 fell1]\nlate [crated1 no crate1 fell1] -> [felld1 fell1]\n\nlate [crateu1 no crate1] -> []\nlate [cratel1 no crate1] -> []\nlate [crater1 no crate1] -> []\nlate [crated1 no crate1] -> []\nlate up [crateu1 |no crate1] -> [|]\nlate left [cratel1 |no crate1] -> [|]\nlate right [crater1 |no crate1] -> [|]\nlate down [crated1 |no crate1] -> [|]\nlate [player1 ded1] -> [player1 ded1] SFX0\nlate [player1 ded1] -> cancel \n\n[moving crate0] -> SFX2\n[moving crate1] -> SFX2\n\n==============\nWINCONDITIONS\n==============\n\n\nAll target0 on crate0\nAll Target1 on Crateorfell1\nAll PlayerTarget1 on Playerormark1\nno Cursor0 on target1\nno cursor0 on PlayerTarget1\n\n=======\nLEVELS\n=======\n\nmessage Book 1: BASE\n\nmessage Page 1.1: GOAL\n\n#######\n#`````#\n#`p`t`#\n#`````#\n#`o`q`#\n#`````#\n#######\n\nmessage Page 1.2: TOOL\n\n#######\n#`t`o`#\n#t`-:`#\n#``tlo#\n#p````#\n#######\n\nmessage Page 1.3: HOLE\n\n########\n##``0`##\n#```0``#\n#``o0`t#\n#po:0``#\n#``:0`t#\n#```0``#\n##``0`##\n########\n\nmessage Page 1.4: FALL\n\n########\n#00u``0#\n#00po`0#\n#`000`0#\n#`00```#\n#`000``#\n#`000``#\n########\n\nmessage Book 2: EDIT\n\nmessage Page 2.1: MINI\n\n||||||||||\n|```````'|\n|`######`|\n|`#````#`|\n|`#``t`#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 2.2: FORM\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 2.3: PLUG\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#ro`o`#`|\n|`#####`#`|\n|`###`o`#`|\n|`#``oLo#`|\n|`#````##`|\n|`#`q####`|\n|`#######`|\n|`````````|\n|``c`0````|\n|````8````|\n|`````````|\n|||||||||||\n\nmessage Page 2.4: TRAP\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#``````#`|\n|`#``t```#`|\n|`#`tqt``#`|\n|`#``t```#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````16````|\n|``````````|\n||||||||||||\n\nmessage Book 3: DUAL\n\nmessage Page 3.1: CO-OP\n\n#######\n####qq#\n#po000#\n#`o000#\n###o``#\n###r`'#\n#######\n\nmessage Page 3.2: REST\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#`r00q#`|\n|`#######`|\n|`````````|\n|``c`o````|\n|````2````|\n|`````````|\n|||||||||||\nmessage Page 3.3: SAIL\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#0000q#`|\n|`#00000#`|\n|`#00000#`|\n|`#```00#`|\n|`#```00#`|\n|`#######`|\n|`````````|\n|``c`ro```|\n|````23```|\n|`````````|\n|||||||||||\n\nmessage Page 3.4: TWIN\n\n|||||||||||||||||||||\n|`````````+````````'|\n|`#######`+`#######`|\n|`#`````#`+`#`````#`|\n|`#```q`#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`q```#`|\n|`#`````#`+`#`````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````6````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Book 4: WHAT\n\nmessage Page 4.1: GUIS\n\n\n#######\n#q#``'#\n#``8#`#\n#`#p#`#\n#`#o#`#\n#`#1``#\n#######\n\nmessage Page 4.2: IDEA\n\n||||||||||\n|```````'|\n|`######`|\n|`#```t#`|\n|`#```t#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```31```|\n|````````|\n||||||||||\n\nmessage Page 4.3: FILL\n\n\n######\n#0poq#\n#0`70#\n#'000#\n#0000#\n######\n\nmessage Page 4.4: A LOT\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|``````'|\n|`c3o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Book 5: UHHH\n\nmessage Page 5.1: WALL\n\n||||||||||\n|```````'|\n|`######`|\n|`#t`#`#`|\n|`#````#`|\n|`##`o`#`|\n|x+xxxx+x|\n|`#````#`|\n|`#````#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 5.2: SAFE\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#xxxxx#`|\n|`#x```x#`|\n|`#x`t`x#`|\n|`#x```x#`|\n|`#xxxxx#`|\n|`#######`|\n|`````````|\n|`c`o1r```|\n|```111```|\n|`````````|\n|||||||||||\n\nmessage Page 5.3: LOCK\n\n|||||||||||||\n|o```'`xxxcx|\n|1``x```qx!x|\n|`1!````qx`x|\n|``1?x`xxx?x|\n|r``1````!`x|\n|````2`xxxxx|\n|||||||||||||\n\n\n\nmessage Page 5.4: POST\n\n+++++++++\n+p#```#q+\n+`#``'#3+\n+`#`1`#`+\n+`#`2`#`+\n+`#```#`+\n+`#```#`+\n+++++++++\nmessage Book 6: BLUE\n\nmessage Page 6.1: META\n\n||||||||||||\n|++++++++++|\n|+````\"```+|\n|+`######`+|\n|+`#````#`+|\n|+`#``t`#`+|\n|+`#````#`+|\n|+`######`+|\n|+````````+|\n|+```ro```+|\n|+````````+|\n|+````````+|\n|++++++++++|\n|``````````|\n|``~`1b````|\n|````{[````|\n|``````````|\n||||||||||||\n\nmessage Page 6.2: WILD\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`#######`+|\n|+`#0000q#`+|\n|+`#00000#`+|\n|+`#`0000#`+|\n|+`#`0000#`+|\n|+`#```00#`+|\n|+`#######`+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\nmessage Page 6.3: UH OH\n\n|||||||||||\n|+++++++++|\n|+``````\"+|\n|+`+++++`+|\n|+`+```+`+|\n|+`+`t`+`+|\n|+`+```+`+|\n|+`+```+`+|\n|+`+++++`+|\n|+```````+|\n|+```o```+|\n|+```````+|\n|+```````+|\n|+++++++++|\n|`````````|\n|`````````|\n|`~`1br```|\n|```][[```|\n|`````````|\n|||||||||||\n\nmessage Page 6.4: VARY\n\n|||||||||||||||||||||||\n|++++++++++&++++++++++|\n|+``````\"`x&x````````+|\n|+`######`x&x`######`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`#`qt`#`x&x`#`tq`#`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`######`x&x`######`+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|++++++++++&++++++++++|\n|``````````&``````````|\n|`~`r1ob```&`_`r1ob```|\n|```[{[[```&```[[[[```|\n|``````````&``````````|\n|||||||||||||||||||||||\n\nmessage Book 7: ?!?!\n\nmessage Page 7.1: EACH\n\n+++++++\n+````'+\n+`###`+\n+`#q#`+\n+`#0#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`###`+\n+`````+\n+``c``+\n+`r0o`+\n+``4``+\n+`````+\n+++++++\n\nmessage Page 7.2: HOLD\n\n&&&&&&&&&\n&`8```+`&\n&`{po`+`&\n&`\"```+t&\n&&&&&&&&&\n\nmessage Page 7.3: TRIP\n\n&&&&&&&\n&```\"`&\n&`o`!`&\n&`````&\n&+++++&\n&`r2b`&\n&`[[{~&\n&y```t&\n&&&&&&&\n\nmessage Page 7.4: PLAN\n\n\n|||||||||\n|```t```|\n|```````|\n|+++++++|\n|```````|\n|```````|\n|>>>>>>>|\n|```````|\n|```````|\n|+++++++|\n|```~```|\n|[[`2\"11|\n|[[`[`[[|\n|&&`&&&&|\n|&&bor&&|\n|||||||||\n\n\n\n\n\nmessage Book 8: (RE)STAR(TS)\n\n\nmessage Page 8.1: (IN)FORM(ED)\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 8.2: (EN)TWIN(ED)\n\n|||||||||||||||||||||\n|`````````+`````````|\n|`#######`+`#######`|\n|`#````q#`+`#`````#`|\n|`#`````#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`````#`|\n|`#`````#`+`#q````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````5````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Page 8.3: (ZE)ALOT(RY)\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|```````|\n|`c2o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Page 8.4: (BE)WILD(ER)\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`+++++++`+|\n|+`+0000q+`+|\n|+`+00000+`+|\n|+`+00000+`+|\n|+`+`0000+`+|\n|+`+```00+`+|\n|+`+++++++`+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", [3, 3, 4, 0, 0, 0, 3, 4, 0, 4, 3, 0, 0, 4, 0, 4, 1, 1, 1, 2, 4, 2, 4, 2, 3, 0, 4, 3, 3, 2, 1, 1, 0, 1, 0, 1, 0, 3, 3, 2, 3, 3, 2, 2], "background black cant0 cant1 cant2 fellcant0 fellcant1:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background fellcant0 fellcant1:1,1,1,1,1,1,\n1,1,1,1,1,1,0,0,1,background cant1 fellcant0 fellcant1 wall1 walll1 wallu1:2,background cant1 fellcant0 fellcant1 wall1 walll1 wallr1:3,3,3,3,3,background cant1 fellcant0 fellcant1 wall1 walld1 walll1:4,1,1,1,1,0,\n0,1,background cant1 fellcant0 fellcant1 wall1 walld1 wallu1:5,1,1,1,1,1,5,1,1,1,1,0,0,1,5,1,1,1,background cant1 crate1 crated1 fellcant0 fellcant1 supported:6,\nbackground cant1 crate1 crateu1 fellcant0 fellcant1 supported:7,5,1,1,1,1,0,0,1,5,1,1,1,1,1,5,1,1,1,1,0,\n0,1,5,background crate1 fellcant0 fellcant1 supported:8,background fellcant0 fellcant1 playertarget1:9,1,active background fellcant0 fellcant1 player1:10,1,5,1,1,1,1,0,0,1,5,background crate1 crated1 fellcant0 fellcant1 supported:11,background crate1 crateu1 fellcant0 fellcant1 supported:12,1,1,\n1,5,1,1,1,1,0,0,1,background cant1 fellcant0 fellcant1 wall1 wallr1 wallu1:13,3,3,3,3,3,background cant1 fellcant0 fellcant1 wall1 walld1 wallr1:14,1,1,1,1,0,\n0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,background cant1 fellcant0 fellcant1 wall0ghost wall1 walll1 wallr1 wallu1:15,background cant1 fellcant0 fellcant1 wall0ghost wall1 walll1 wallr1:16,16,16,16,16,\n16,16,16,16,16,background cant1 fellcant0 fellcant1 wall0ghost wall1 walld1 walll1 wallr1:17,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,2,3,3,3,3,3,4,1,1,1,1,0,0,1,5,1,11,12,1,\n1,5,1,1,1,1,0,0,1,5,1,1,1,background cant1 crate1 crated1 fellcant0 fellcant1 playertarget1 supported:18,7,5,1,1,1,1,0,\n0,1,5,1,1,1,1,1,5,1,1,1,1,0,0,1,5,1,1,1,10,\n1,5,1,1,1,1,0,0,1,5,11,12,1,1,1,5,1,1,1,1,0,\n0,1,13,3,3,3,3,3,14,1,1,1,1,0,0,background fellcant0 fellcant1 partb:19,1,1,1,1,1,\n1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 26, "1627770125763.7583"] ], [ `gallery game: I'm too far gone`, - ["title I'm too far gone\n\n\nzoomscreen 11x11\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground\nwhite\n\nb1\nwhite #dddddd\n00000\n00010\n00000\n10000\n00000\n\nb2\nwhite #dddddd\n00000\n00000\n00100\n00000\n00000\n\nb3\nwhite #dddddd\n01000\n00000\n00000\n00100\n00000\n\nb4\nwhite #dddddd\n00000\n00000\n00000\n00000\n00001\n\nb5\nwhite #dddddd\n00000\n10000\n00000\n00100\n00000\n\nfloor\ndarkgrey\n\nEe\ndarkgrey yellow\n01110\n01000\n01110\n01000\n01110\n\nNn\ndarkgrey yellow\n00000\n01110\n01010\n01010\n00000\n\nDd\ndarkgrey yellow\n01100\n01010\n01010\n01010\n01100\n\nwall\ngrey\n\nredgen\nred lightgrey\n11011\n11011\n01010\n10001\n11011\n\nbluegen\nblue lightgrey\n11011\n10001\n01010\n11011\n11011\n\nred\nlightred red\n.111.\n10001\n10001\n10001\n.111.\n\nblue\nlightblue blue\n.111.\n10001\n10001\n10001\n.111.\n\nred1\nred darkred\n11111\n10001\n10001\n10001\n11111\n\nblue1\nblue darkblue\n11111\n10001\n10001\n10001\n11111\n\nru\nlightred red\n10001\n.....\n.....\n.....\n.....\n\nrd\nlightred red\n.....\n.....\n.....\n.....\n10001\n\nrr\nlightred red\n....1\n....0\n....0\n....0\n....1\n\nrl\nlightred red\n1....\n0....\n0....\n0....\n1....\n\nbu\nlightblue blue\n10001\n.....\n.....\n.....\n.....\n\nbd\nlightblue blue\n.....\n.....\n.....\n.....\n10001\n\nbr\nlightblue blue\n....1\n....0\n....0\n....0\n....1\n\nbl\nlightblue blue\n1....\n0....\n0....\n0....\n1....\n\nded\nbrown\n.....\n.000.\n.000.\n.000.\n.....\n\nru1\nred darkred\n10001\n.....\n.....\n.....\n.....\n\nrd1\nred darkred\n.....\n.....\n.....\n.....\n10001\n\nrr1\nred darkred\n....1\n....0\n....0\n....0\n....1\n\nrl1\nred darkred\n1....\n0....\n0....\n0....\n1....\n\nbu1\nblue darkblue\n10001\n.....\n.....\n.....\n.....\n\nbd1\nblue darkblue\n.....\n.....\n.....\n.....\n10001\n\nbr1\nblue darkblue\n....1\n....0\n....0\n....0\n....1\n\nbl1\nblue darkblue\n1....\n0....\n0....\n0....\n1....\n\n\nplayer\nyellow\n.....\n.000.\n.000.\n.000.\n.....\n\nsupp\ntransparent\n\nmovee\ntransparent\n\nmoven\ntransparent\n\nmoved\ntransparent\n\nmem\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall and floor\nr = redgen and wall\nb = bluegen and wall\n- = floor\np = player and floor\nE = Ee\nN = Nn \nD = Dd \ncol = red or blue\ncol1 = red1 or blue1\nxx = rr or rl or ru or rd or br or bl or bd or bu\nxx1 = rr1 or rl1 or ru1 or rd1 or br1 or bl1 or bd1 or bu1\nend = ee or nn or dd\n! = red and floor\n? = mem\nbx = b1 or b2 or b3 or b4 or b5\n=======\nSOUNDS\n=======\nSFX1 9924503\nSFX2 79825304\nSFX3 17145902\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbx\nfloor, red1, blue1, ded\nrr1\nrl1\nru1\nrd1\nbr1\nbl1\nbd1\nbu1\nPlayer, Wall, red, blue, \nrr\nrl\nru\nrd\nbr\nbl\nbd\nbu\nredgen, bluegen, Ee, Nn, Dd\nsupp\nmovee\nmoven\nmoved\nmem\n======\nRULES\n======\n[background no bx] -> [background random bx]\nlate down [redgen|no player no red no blue] -> [redgen|red movee moven moved] SFX1\nlate up [bluegen|no player no red no blue] -> [bluegen|blue movee moven moved] SFX1\n\nlate right[movee][ee|] -> [][|ee]\nlate right[moven][nn|] -> [][|nn]\nlate right[moved][dd|] -> [][|dd]\n\n[> player | red] -> [> player| > red]\n[> player | blue] -> [> player| > blue]\n\n[moving red | red] -> [moving red | moving red]\n+[moving blue | blue] -> [moving blue | moving blue]\n+[moving red1 | red1] -> [moving red1 | moving red1]\n+[moving blue1 | blue1] -> [moving blue1 | moving blue1]\n+[moving red red1] -> [moving red moving red1]\n+[moving blue blue1] -> [moving blue moving blue1]\n+[ red moving red1] -> [moving red moving red1]\n+[ blue moving blue1] -> [moving blue moving blue1]\n+[> red | blue] -> [> red | > blue]\n+[> blue | red] -> [> blue | > red]\n+[> red1 | blue1] -> [> red1 | > blue1]\n+[> blue1 | red1] -> [> blue1 | > red1]\n\n[player moving col1] -> cancel\n[> col | wall] -> cancel\n[> col1 | floor] -> cancel\n\nlate [supp] -> []\nlate [col floor] -> [col supp floor]\nlate [col col1] -> [col supp col1]\nlate [red supp | red] -> [red supp | red supp]\nlate [blue supp | blue] -> [blue supp | blue supp]\n\nlate [red no supp] -> [red1] SFX2\nlate [blue no supp] -> [blue1] SFX2\nlate [player no col1 no floor] -> [ded] SFX3\n\nlate [xx] -> []\nlate [xx1] -> []\n\nlate up [red | red] -> [red ru | red rd]\nlate left [red | red] -> [red rl | red rr]\nlate up [blue | blue] -> [blue bu | blue bd]\nlate left [blue | blue] -> [blue bl | blue br]\nlate up [red1 | red1] -> [red1 ru1 | red1 rd1]\nlate left [red1 | red1] -> [red1 rl1 | red1 rr1]\nlate up [blue1 | blue1] -> [blue1 bu1 | blue1 bd1]\nlate left [blue1 | blue1] -> [blue1 bl1 | blue1 br1]\n\nlate [nn mem][player] -> [nn mem][ded] message YOU'VE GONE TOO FAR (THIS IS NOT A WIN)\n==============\nWINCONDITIONS\n==============\n\nall player on end\nno ded\n=======\nLEVELS\n=======\n\n\nmessage Level 25 of 25\n\n##########################################################################################################################################################################\n#.........................................................................................................................................................................\n#.-------.................................................................................................................................................................\n#.---r---.................................................................................................................................................................\n#.---!---E................................................................................................................................................................\n#.-----p-N...............................................................................................................................................................?\n#.-------D................................................................................................................................................................\n#.---b---.................................................................................................................................................................\n#.-------.................................................................................................................................................................\n#.........................................................................................................................................................................\n##########################################################################################################################################################################\n\n\n\n",[1,1,1,2,3,1,3,1,3,1,3,1,3,3,3,3,1,1,0,1,1,0,3,3,2,1,1,0,3,1,3,3,0,3,2,1,2,3,3,1,1,1,1,0,3,3,3,0,3,2,1,2,3,1,1,1,1,0,3,3,3,0,3,2,1,2,3,1,1,1,1,0,3,3,3,0,3,"undo","undo","undo",0,3,2,2,1,2,3,3,3,3,3,3,3],"b5 background floor wall:0,b3 background floor wall:1,b1 background floor wall:2,2,1,b2 background floor wall:3,3,1,b4 background floor wall:4,4,4,0,b4 background:5,b1 background:6,6,6,b5 background:7,b2 background:8,6,6,7,3,1,8,b4 background floor:9,b2 background floor:10,b5 background floor:11,9,10,10,b1 background floor:12,8,4,0,b3 background:13,9,11,12,11,11,10,9,13,0,3,8,11,10,12,10,10,10,10,5,3,1,13,b3 background floor:14,b3 background redgen wall:15,b1 background floor red supp:16,14,b1 background blue floor supp:17,b1 background bluegen wall:18,11,5,2,3,5,9,9,9,10,11,12,10,8,1,0,6,12,12,10,10,9,12,11,6,1,2,13,9,11,10,12,11,10,12,7,3,4,7,6,7,5,7,b3 background blue1 br1:19,5,7,6,0,0,7,7,8,13,5,b2 background bl1 blue1 br1:20,13,13,6,4,3,5,7,8,8,7,20,5,8,8,0,0,7,8,7,13,7,b3 background bl1 blue1 br1:21,6,6,6,0,2,6,7,6,6,13,b1 background bl1 blue1 player:22,13,6,7,1,2,8,7,13,13,b1 background rd red rr supp:23,b4 background red ru supp:24,7,7,6,3,1,8,13,13,7,\nb5 background red red1 rl rr1 supp:25,8,13,6,8,4,3,5,6,13,7,b5 background red1 rl1 rr1:26,5,13,8,7,1,2,5,7,6,6,b3 background red1 rl1:27,5,6,6,7,4,4,13,7,8,8,6,7,6,7,5,0,1,8,7,6,5,6,7,6,13,7,3,3,13,8,6,13,8,5,5,8,7,4,4,7,13,13,b2 background ee:28,b5 background nn:29,b5 background dd:30,7,13,13,1,4,5,5,8,13,5,13,13,8,6,1,4,13,5,5,8,6,7,7,8,7,3,3,8,7,8,5,8,13,7,8,5,1,4,6,6,8,8,5,13,13,13,8,0,0,8,5,7,7,13,13,7,8,5,2,2,13,7,6,7,8,13,13,13,13,3,3,5,13,13,6,6,6,6,8,7,4,1,5,8,13,5,5,8,13,6,13,1,4,13,7,8,8,6,7,8,6,6,\n3,1,5,5,13,6,7,8,7,5,13,1,1,7,5,8,13,6,5,7,6,7,0,0,7,7,6,5,13,7,5,8,6,2,0,8,6,5,6,6,5,13,13,7,1,2,7,5,6,6,6,6,5,8,8,0,1,6,5,5,13,7,5,7,13,5,2,4,5,8,5,5,6,7,6,6,8,2,0,5,6,7,5,8,7,7,7,5,3,0,5,7,8,6,5,6,8,5,6,4,1,8,13,8,5,5,5,8,6,5,1,4,5,13,7,8,5,13,13,13,5,3,3,7,5,5,13,8,7,6,5,13,2,3,8,6,13,7,13,8,6,7,8,0,3,5,5,5,8,7,7,5,6,13,3,1,6,5,8,13,7,7,8,8,6,0,4,8,13,7,\n5,13,5,6,13,13,4,3,7,5,5,6,5,6,6,8,5,0,2,7,8,7,7,7,5,13,8,13,3,1,6,5,6,7,8,6,6,6,7,2,4,5,5,6,7,13,13,7,5,5,2,4,6,7,13,13,7,5,8,13,5,3,1,8,6,7,5,5,13,13,6,8,0,1,7,6,7,7,6,8,8,6,5,0,4,5,7,6,13,6,13,13,8,5,2,0,13,13,6,8,6,7,7,6,6,0,4,7,13,8,8,7,8,5,5,13,3,3,5,13,7,5,6,8,13,6,5,0,1,6,6,6,6,7,5,8,8,5,0,1,7,13,7,6,5,7,8,5,8,0,3,6,13,5,8,5,8,5,7,7,3,4,5,6,5,7,13,8,13,5,\n5,4,3,8,5,6,5,13,8,6,6,6,1,2,7,7,8,13,5,6,5,5,7,2,2,13,8,6,8,6,8,13,6,7,0,4,7,7,5,7,8,7,6,8,8,3,4,8,5,13,6,6,13,13,6,6,4,3,6,7,13,5,8,6,7,8,13,0,4,5,13,7,13,6,5,7,13,7,0,4,8,7,8,6,5,13,7,8,13,4,0,5,6,8,7,5,5,13,5,13,2,1,13,13,7,8,8,8,5,8,8,4,1,6,13,8,7,7,7,7,13,13,4,4,7,6,8,8,6,8,6,5,7,4,4,8,13,6,5,8,7,6,7,6,1,2,5,5,5,8,6,6,7,7,6,0,0,8,13,8,6,13,5,5,6,8,2,1,13,5,\n7,6,8,5,13,5,13,0,2,13,5,5,5,7,13,6,5,13,2,4,13,13,7,5,8,7,13,8,6,1,3,8,7,7,8,6,7,13,5,6,1,2,7,8,13,13,6,8,7,5,13,4,2,5,5,6,5,7,6,13,6,5,1,4,8,6,7,13,8,7,8,7,8,4,4,8,13,5,5,5,5,7,13,7,2,0,8,8,5,5,13,8,7,6,13,2,4,7,8,8,8,13,5,13,6,5,1,4,7,5,13,13,8,8,6,5,7,0,1,13,7,8,6,7,5,7,8,6,2,1,8,13,8,7,13,8,7,5,8,1,0,6,13,8,8,13,6,8,13,6,4,0,8,6,5,8,6,8,7,8,8,2,0,7,8,8,6,8,6,7,\n5,6,4,4,5,5,13,5,8,8,5,13,13,3,2,8,7,6,5,7,5,13,6,8,3,4,7,6,7,13,13,13,8,6,13,0,0,7,5,6,13,13,6,6,5,5,0,2,13,7,7,6,5,7,6,8,5,4,4,8,5,7,8,6,5,6,8,7,0,2,8,7,5,8,6,13,5,7,13,0,4,8,8,13,7,5,13,13,5,7,0,3,8,7,7,8,13,8,7,6,6,1,3,6,5,5,5,13,13,13,8,7,1,1,6,7,7,5,6,6,5,6,5,4,0,8,6,6,7,5,8,7,7,6,2,1,13,5,13,8,5,8,6,7,13,3,0,8,5,6,6,13,13,5,8,8,1,3,8,5,7,7,6,7,7,5,8,2,4,6,\n8,7,5,7,7,8,13,5,2,1,13,6,7,7,8,8,8,13,8,1,3,5,13,13,5,6,8,6,7,13,4,0,6,13,6,13,13,13,13,6,5,0,2,13,7,5,5,8,8,6,8,5,4,3,5,6,5,6,13,5,13,6,6,2,2,7,5,13,7,13,5,6,13,8,3,0,13,7,8,13,6,13,7,8,6,4,2,7,8,8,6,13,5,8,7,5,0,2,5,7,13,7,6,8,6,5,6,4,0,6,7,5,6,6,8,8,7,5,2,0,6,6,8,13,5,13,6,6,7,4,0,13,5,7,13,8,13,6,8,13,2,0,7,13,6,5,5,7,6,5,6,2,4,7,13,5,6,5,7,7,6,7,0,0,8,5,6,13,13,6,\n5,13,13,1,1,7,7,13,6,5,8,13,6,8,0,1,6,13,8,13,7,7,8,6,5,3,4,6,8,13,13,5,5,13,13,7,3,3,6,13,6,7,13,8,5,6,5,0,2,8,13,8,5,5,7,13,5,6,2,0,7,7,13,8,6,6,13,13,6,3,4,8,8,5,13,5,13,5,8,5,1,0,5,7,8,8,5,8,7,7,6,2,3,6,6,8,13,13,6,7,5,6,3,1,13,8,8,5,13,8,7,8,7,3,1,8,7,13,13,6,8,8,7,7,2,0,7,13,7,8,7,5,8,8,7,0,0,5,6,13,5,6,5,7,5,13,4,4,5,6,6,7,13,7,7,13,6,2,4,6,8,6,5,13,8,7,8,13,0,0,\n7,6,6,7,8,5,13,7,5,4,4,7,13,7,7,6,13,5,6,8,1,1,7,7,13,6,13,7,5,7,6,0,3,13,7,5,13,5,13,5,7,7,3,1,8,6,8,5,6,5,13,7,5,0,0,8,13,7,6,5,8,6,13,6,4,1,13,13,5,13,5,5,5,6,8,1,2,7,5,13,13,6,13,6,8,6,4,1,13,8,8,13,13,5,8,8,8,0,2,7,6,8,7,8,6,5,6,7,3,1,8,5,7,6,6,6,5,6,5,4,0,8,13,5,5,13,8,6,7,7,2,2,5,5,8,8,8,6,5,6,8,3,4,7,7,7,7,5,6,7,8,8,4,3,8,5,5,13,7,8,7,5,7,2,1,8,13,13,5,6,\n5,13,7,5,2,3,5,8,13,6,8,7,13,13,13,3,3,6,6,13,5,8,6,8,5,6,2,1,7,8,8,5,13,6,7,5,7,2,3,8,7,6,5,6,5,7,6,7,3,0,7,8,13,8,13,5,6,7,8,1,4,6,5,8,6,13,8,7,7,5,4,1,6,13,7,5,7,7,7,7,6,3,1,5,13,5,6,8,6,13,6,13,1,4,6,8,7,6,5,8,7,5,6,3,4,8,8,7,7,8,7,7,8,6,3,1,13,6,13,13,13,7,13,5,6,0,1,5,7,7,5,13,7,13,7,6,4,1,7,8,6,13,13,5,7,13,6,2,0,13,5,7,7,13,8,8,5,6,0,4,7,6,5,6,b2 background mem:31,5,5,5,7,1,\n",1,"1627770159927.0508"] + ["title I'm too far gone\n\n\nzoomscreen 11x11\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground\nwhite\n\nb1\nwhite #dddddd\n00000\n00010\n00000\n10000\n00000\n\nb2\nwhite #dddddd\n00000\n00000\n00100\n00000\n00000\n\nb3\nwhite #dddddd\n01000\n00000\n00000\n00100\n00000\n\nb4\nwhite #dddddd\n00000\n00000\n00000\n00000\n00001\n\nb5\nwhite #dddddd\n00000\n10000\n00000\n00100\n00000\n\nfloor\ndarkgrey\n\nEe\ndarkgrey yellow\n01110\n01000\n01110\n01000\n01110\n\nNn\ndarkgrey yellow\n00000\n01110\n01010\n01010\n00000\n\nDd\ndarkgrey yellow\n01100\n01010\n01010\n01010\n01100\n\nwall\ngrey\n\nredgen\nred lightgrey\n11011\n11011\n01010\n10001\n11011\n\nbluegen\nblue lightgrey\n11011\n10001\n01010\n11011\n11011\n\nred\nlightred red\n.111.\n10001\n10001\n10001\n.111.\n\nblue\nlightblue blue\n.111.\n10001\n10001\n10001\n.111.\n\nred1\nred darkred\n11111\n10001\n10001\n10001\n11111\n\nblue1\nblue darkblue\n11111\n10001\n10001\n10001\n11111\n\nru\nlightred red\n10001\n.....\n.....\n.....\n.....\n\nrd\nlightred red\n.....\n.....\n.....\n.....\n10001\n\nrr\nlightred red\n....1\n....0\n....0\n....0\n....1\n\nrl\nlightred red\n1....\n0....\n0....\n0....\n1....\n\nbu\nlightblue blue\n10001\n.....\n.....\n.....\n.....\n\nbd\nlightblue blue\n.....\n.....\n.....\n.....\n10001\n\nbr\nlightblue blue\n....1\n....0\n....0\n....0\n....1\n\nbl\nlightblue blue\n1....\n0....\n0....\n0....\n1....\n\nded\nbrown\n.....\n.000.\n.000.\n.000.\n.....\n\nru1\nred darkred\n10001\n.....\n.....\n.....\n.....\n\nrd1\nred darkred\n.....\n.....\n.....\n.....\n10001\n\nrr1\nred darkred\n....1\n....0\n....0\n....0\n....1\n\nrl1\nred darkred\n1....\n0....\n0....\n0....\n1....\n\nbu1\nblue darkblue\n10001\n.....\n.....\n.....\n.....\n\nbd1\nblue darkblue\n.....\n.....\n.....\n.....\n10001\n\nbr1\nblue darkblue\n....1\n....0\n....0\n....0\n....1\n\nbl1\nblue darkblue\n1....\n0....\n0....\n0....\n1....\n\n\nplayer\nyellow\n.....\n.000.\n.000.\n.000.\n.....\n\nsupp\ntransparent\n\nmovee\ntransparent\n\nmoven\ntransparent\n\nmoved\ntransparent\n\nmem\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall and floor\nr = redgen and wall\nb = bluegen and wall\n- = floor\np = player and floor\nE = Ee\nN = Nn \nD = Dd \ncol = red or blue\ncol1 = red1 or blue1\nxx = rr or rl or ru or rd or br or bl or bd or bu\nxx1 = rr1 or rl1 or ru1 or rd1 or br1 or bl1 or bd1 or bu1\nend = ee or nn or dd\n! = red and floor\n? = mem\nbx = b1 or b2 or b3 or b4 or b5\n=======\nSOUNDS\n=======\nSFX1 9924503\nSFX2 79825304\nSFX3 17145902\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbx\nfloor, red1, blue1, ded\nrr1\nrl1\nru1\nrd1\nbr1\nbl1\nbd1\nbu1\nPlayer, Wall, red, blue, \nrr\nrl\nru\nrd\nbr\nbl\nbd\nbu\nredgen, bluegen, Ee, Nn, Dd\nsupp\nmovee\nmoven\nmoved\nmem\n======\nRULES\n======\n[background no bx] -> [background random bx]\nlate down [redgen|no player no red no blue] -> [redgen|red movee moven moved] SFX1\nlate up [bluegen|no player no red no blue] -> [bluegen|blue movee moven moved] SFX1\n\nlate right[movee][ee|] -> [][|ee]\nlate right[moven][nn|] -> [][|nn]\nlate right[moved][dd|] -> [][|dd]\n\n[> player | red] -> [> player| > red]\n[> player | blue] -> [> player| > blue]\n\n[moving red | red] -> [moving red | moving red]\n+[moving blue | blue] -> [moving blue | moving blue]\n+[moving red1 | red1] -> [moving red1 | moving red1]\n+[moving blue1 | blue1] -> [moving blue1 | moving blue1]\n+[moving red red1] -> [moving red moving red1]\n+[moving blue blue1] -> [moving blue moving blue1]\n+[ red moving red1] -> [moving red moving red1]\n+[ blue moving blue1] -> [moving blue moving blue1]\n+[> red | blue] -> [> red | > blue]\n+[> blue | red] -> [> blue | > red]\n+[> red1 | blue1] -> [> red1 | > blue1]\n+[> blue1 | red1] -> [> blue1 | > red1]\n\n[player moving col1] -> cancel\n[> col | wall] -> cancel\n[> col1 | floor] -> cancel\n\nlate [supp] -> []\nlate [col floor] -> [col supp floor]\nlate [col col1] -> [col supp col1]\nlate [red supp | red] -> [red supp | red supp]\nlate [blue supp | blue] -> [blue supp | blue supp]\n\nlate [red no supp] -> [red1] SFX2\nlate [blue no supp] -> [blue1] SFX2\nlate [player no col1 no floor] -> [ded] SFX3\n\nlate [xx] -> []\nlate [xx1] -> []\n\nlate up [red | red] -> [red ru | red rd]\nlate left [red | red] -> [red rl | red rr]\nlate up [blue | blue] -> [blue bu | blue bd]\nlate left [blue | blue] -> [blue bl | blue br]\nlate up [red1 | red1] -> [red1 ru1 | red1 rd1]\nlate left [red1 | red1] -> [red1 rl1 | red1 rr1]\nlate up [blue1 | blue1] -> [blue1 bu1 | blue1 bd1]\nlate left [blue1 | blue1] -> [blue1 bl1 | blue1 br1]\n\nlate [nn mem][player] -> [nn mem][ded] message YOU'VE GONE TOO FAR (THIS IS NOT A WIN)\n==============\nWINCONDITIONS\n==============\n\nall player on end\nno ded\n=======\nLEVELS\n=======\n\n\nmessage Level 25 of 25\n\n##########################################################################################################################################################################\n#.........................................................................................................................................................................\n#.-------.................................................................................................................................................................\n#.---r---.................................................................................................................................................................\n#.---!---E................................................................................................................................................................\n#.-----p-N...............................................................................................................................................................?\n#.-------D................................................................................................................................................................\n#.---b---.................................................................................................................................................................\n#.-------.................................................................................................................................................................\n#.........................................................................................................................................................................\n##########################################################################################################################################################################\n\n\n\n", [1, 1, 1, 2, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 3, 1, 1, 0, 1, 1, 0, 3, 3, 2, 1, 1, 0, 3, 1, 3, 3, 0, 3, 2, 1, 2, 3, 3, 1, 1, 1, 1, 0, 3, 3, 3, 0, 3, 2, 1, 2, 3, 1, 1, 1, 1, 0, 3, 3, 3, 0, 3, 2, 1, 2, 3, 1, 1, 1, 1, 0, 3, 3, 3, 0, 3, "undo", "undo", "undo", 0, 3, 2, 2, 1, 2, 3, 3, 3, 3, 3, 3, 3], "b5 background floor wall:0,b3 background floor wall:1,b1 background floor wall:2,2,1,b2 background floor wall:3,3,1,b4 background floor wall:4,4,4,0,b4 background:5,b1 background:6,6,6,b5 background:7,b2 background:8,6,6,7,3,1,8,b4 background floor:9,b2 background floor:10,b5 background floor:11,9,10,10,b1 background floor:12,8,4,0,b3 background:13,9,11,12,11,11,10,9,13,0,3,8,11,10,12,10,10,10,10,5,3,1,13,b3 background floor:14,b3 background redgen wall:15,b1 background floor red supp:16,14,b1 background blue floor supp:17,b1 background bluegen wall:18,11,5,2,3,5,9,9,9,10,11,12,10,8,1,0,6,12,12,10,10,9,12,11,6,1,2,13,9,11,10,12,11,10,12,7,3,4,7,6,7,5,7,b3 background blue1 br1:19,5,7,6,0,0,7,7,8,13,5,b2 background bl1 blue1 br1:20,13,13,6,4,3,5,7,8,8,7,20,5,8,8,0,0,7,8,7,13,7,b3 background bl1 blue1 br1:21,6,6,6,0,2,6,7,6,6,13,b1 background bl1 blue1 player:22,13,6,7,1,2,8,7,13,13,b1 background rd red rr supp:23,b4 background red ru supp:24,7,7,6,3,1,8,13,13,7,\nb5 background red red1 rl rr1 supp:25,8,13,6,8,4,3,5,6,13,7,b5 background red1 rl1 rr1:26,5,13,8,7,1,2,5,7,6,6,b3 background red1 rl1:27,5,6,6,7,4,4,13,7,8,8,6,7,6,7,5,0,1,8,7,6,5,6,7,6,13,7,3,3,13,8,6,13,8,5,5,8,7,4,4,7,13,13,b2 background ee:28,b5 background nn:29,b5 background dd:30,7,13,13,1,4,5,5,8,13,5,13,13,8,6,1,4,13,5,5,8,6,7,7,8,7,3,3,8,7,8,5,8,13,7,8,5,1,4,6,6,8,8,5,13,13,13,8,0,0,8,5,7,7,13,13,7,8,5,2,2,13,7,6,7,8,13,13,13,13,3,3,5,13,13,6,6,6,6,8,7,4,1,5,8,13,5,5,8,13,6,13,1,4,13,7,8,8,6,7,8,6,6,\n3,1,5,5,13,6,7,8,7,5,13,1,1,7,5,8,13,6,5,7,6,7,0,0,7,7,6,5,13,7,5,8,6,2,0,8,6,5,6,6,5,13,13,7,1,2,7,5,6,6,6,6,5,8,8,0,1,6,5,5,13,7,5,7,13,5,2,4,5,8,5,5,6,7,6,6,8,2,0,5,6,7,5,8,7,7,7,5,3,0,5,7,8,6,5,6,8,5,6,4,1,8,13,8,5,5,5,8,6,5,1,4,5,13,7,8,5,13,13,13,5,3,3,7,5,5,13,8,7,6,5,13,2,3,8,6,13,7,13,8,6,7,8,0,3,5,5,5,8,7,7,5,6,13,3,1,6,5,8,13,7,7,8,8,6,0,4,8,13,7,\n5,13,5,6,13,13,4,3,7,5,5,6,5,6,6,8,5,0,2,7,8,7,7,7,5,13,8,13,3,1,6,5,6,7,8,6,6,6,7,2,4,5,5,6,7,13,13,7,5,5,2,4,6,7,13,13,7,5,8,13,5,3,1,8,6,7,5,5,13,13,6,8,0,1,7,6,7,7,6,8,8,6,5,0,4,5,7,6,13,6,13,13,8,5,2,0,13,13,6,8,6,7,7,6,6,0,4,7,13,8,8,7,8,5,5,13,3,3,5,13,7,5,6,8,13,6,5,0,1,6,6,6,6,7,5,8,8,5,0,1,7,13,7,6,5,7,8,5,8,0,3,6,13,5,8,5,8,5,7,7,3,4,5,6,5,7,13,8,13,5,\n5,4,3,8,5,6,5,13,8,6,6,6,1,2,7,7,8,13,5,6,5,5,7,2,2,13,8,6,8,6,8,13,6,7,0,4,7,7,5,7,8,7,6,8,8,3,4,8,5,13,6,6,13,13,6,6,4,3,6,7,13,5,8,6,7,8,13,0,4,5,13,7,13,6,5,7,13,7,0,4,8,7,8,6,5,13,7,8,13,4,0,5,6,8,7,5,5,13,5,13,2,1,13,13,7,8,8,8,5,8,8,4,1,6,13,8,7,7,7,7,13,13,4,4,7,6,8,8,6,8,6,5,7,4,4,8,13,6,5,8,7,6,7,6,1,2,5,5,5,8,6,6,7,7,6,0,0,8,13,8,6,13,5,5,6,8,2,1,13,5,\n7,6,8,5,13,5,13,0,2,13,5,5,5,7,13,6,5,13,2,4,13,13,7,5,8,7,13,8,6,1,3,8,7,7,8,6,7,13,5,6,1,2,7,8,13,13,6,8,7,5,13,4,2,5,5,6,5,7,6,13,6,5,1,4,8,6,7,13,8,7,8,7,8,4,4,8,13,5,5,5,5,7,13,7,2,0,8,8,5,5,13,8,7,6,13,2,4,7,8,8,8,13,5,13,6,5,1,4,7,5,13,13,8,8,6,5,7,0,1,13,7,8,6,7,5,7,8,6,2,1,8,13,8,7,13,8,7,5,8,1,0,6,13,8,8,13,6,8,13,6,4,0,8,6,5,8,6,8,7,8,8,2,0,7,8,8,6,8,6,7,\n5,6,4,4,5,5,13,5,8,8,5,13,13,3,2,8,7,6,5,7,5,13,6,8,3,4,7,6,7,13,13,13,8,6,13,0,0,7,5,6,13,13,6,6,5,5,0,2,13,7,7,6,5,7,6,8,5,4,4,8,5,7,8,6,5,6,8,7,0,2,8,7,5,8,6,13,5,7,13,0,4,8,8,13,7,5,13,13,5,7,0,3,8,7,7,8,13,8,7,6,6,1,3,6,5,5,5,13,13,13,8,7,1,1,6,7,7,5,6,6,5,6,5,4,0,8,6,6,7,5,8,7,7,6,2,1,13,5,13,8,5,8,6,7,13,3,0,8,5,6,6,13,13,5,8,8,1,3,8,5,7,7,6,7,7,5,8,2,4,6,\n8,7,5,7,7,8,13,5,2,1,13,6,7,7,8,8,8,13,8,1,3,5,13,13,5,6,8,6,7,13,4,0,6,13,6,13,13,13,13,6,5,0,2,13,7,5,5,8,8,6,8,5,4,3,5,6,5,6,13,5,13,6,6,2,2,7,5,13,7,13,5,6,13,8,3,0,13,7,8,13,6,13,7,8,6,4,2,7,8,8,6,13,5,8,7,5,0,2,5,7,13,7,6,8,6,5,6,4,0,6,7,5,6,6,8,8,7,5,2,0,6,6,8,13,5,13,6,6,7,4,0,13,5,7,13,8,13,6,8,13,2,0,7,13,6,5,5,7,6,5,6,2,4,7,13,5,6,5,7,7,6,7,0,0,8,5,6,13,13,6,\n5,13,13,1,1,7,7,13,6,5,8,13,6,8,0,1,6,13,8,13,7,7,8,6,5,3,4,6,8,13,13,5,5,13,13,7,3,3,6,13,6,7,13,8,5,6,5,0,2,8,13,8,5,5,7,13,5,6,2,0,7,7,13,8,6,6,13,13,6,3,4,8,8,5,13,5,13,5,8,5,1,0,5,7,8,8,5,8,7,7,6,2,3,6,6,8,13,13,6,7,5,6,3,1,13,8,8,5,13,8,7,8,7,3,1,8,7,13,13,6,8,8,7,7,2,0,7,13,7,8,7,5,8,8,7,0,0,5,6,13,5,6,5,7,5,13,4,4,5,6,6,7,13,7,7,13,6,2,4,6,8,6,5,13,8,7,8,13,0,0,\n7,6,6,7,8,5,13,7,5,4,4,7,13,7,7,6,13,5,6,8,1,1,7,7,13,6,13,7,5,7,6,0,3,13,7,5,13,5,13,5,7,7,3,1,8,6,8,5,6,5,13,7,5,0,0,8,13,7,6,5,8,6,13,6,4,1,13,13,5,13,5,5,5,6,8,1,2,7,5,13,13,6,13,6,8,6,4,1,13,8,8,13,13,5,8,8,8,0,2,7,6,8,7,8,6,5,6,7,3,1,8,5,7,6,6,6,5,6,5,4,0,8,13,5,5,13,8,6,7,7,2,2,5,5,8,8,8,6,5,6,8,3,4,7,7,7,7,5,6,7,8,8,4,3,8,5,5,13,7,8,7,5,7,2,1,8,13,13,5,6,\n5,13,7,5,2,3,5,8,13,6,8,7,13,13,13,3,3,6,6,13,5,8,6,8,5,6,2,1,7,8,8,5,13,6,7,5,7,2,3,8,7,6,5,6,5,7,6,7,3,0,7,8,13,8,13,5,6,7,8,1,4,6,5,8,6,13,8,7,7,5,4,1,6,13,7,5,7,7,7,7,6,3,1,5,13,5,6,8,6,13,6,13,1,4,6,8,7,6,5,8,7,5,6,3,4,8,8,7,7,8,7,7,8,6,3,1,13,6,13,13,13,7,13,5,6,0,1,5,7,7,5,13,7,13,7,6,4,1,7,8,6,13,13,5,7,13,6,2,0,13,5,7,7,13,8,8,5,6,0,4,7,6,5,6,b2 background mem:31,5,5,5,7,1,\n", 1, "1627770159927.0508"] ], [ `gallery game: maera public works`, - ["(version 1.0)\ntitle Maera Public Works\nauthor CHz\nhomepage quiteajolt.com\n\nbackground_color DarkBlue\nrun_rules_on_level_start\nagain_interval 0.25\n\n\n========\nOBJECTS\n========\n\nBackground \nBlack\n\nSurface\n#DDDDDD\n\nWall \n#222222\n\nRomanNumeral1\n#FF0000\n.....\n..0..\n..0..\n..0..\n.....\n\nRomanNumeral2\n#FF0000\n.....\n.0.0.\n.0.0.\n.0.0.\n.....\n\nRomanNumeral3\n#FF0000\n.....\n0.0.0\n0.0.0\n0.0.0\n.....\n\nRomanNumeral4\n#FF0000\n.....\n0.0.0\n0.0.0\n0..0.\n.....\n\nRomanNumeral5\n#FF0000\n.....\n.0.0.\n.0.0.\n..0..\n.....\n\n\nWaterWheelHorizWet\n#555500 #777700 #0080FF\n22022\n00000\n01010\n00000\n22022\n\nWaterWheelHorizDry\n#555500 #777700 #999999\n22022\n00000\n01010\n00000\n22022\n\nWaterWheelVertWet\n#555500 #777700 #0080FF\n20002\n20102\n00000\n20102\n20002\n\nWaterWheelVertDry\n#555500 #777700 #999999\n20002\n20102\n00000\n20102\n20002\n\nWaterSource\nTransparent\n\n\nDitch\n#999999\n\nWater\n#0080FF\n\nSwitchOn\n#222222 #999999\n...1.\n...1.\n..1..\n.000.\n.....\n\nSwitchOff\n#222222 #999999\n.1...\n.1...\n..1..\n.000.\n.....\n\nSwitchToggleToken\nTransparent\n\n\nGateVertOpen\n#444444\n.000.\n.....\n.....\n.....\n.000.\n\nGateVertOpenWet\n#444444 #0080FF\n10001\n11111\n11111\n11111\n10001\n\nGateVertClosed\n#444444\n.000.\n.000.\n.000.\n.000.\n.000.\n\nGateVertClosedLeft\n#444444 #0080FF\n1000.\n1000.\n1000.\n1000.\n1000.\n\nGateVertClosedRight\n#444444 #0080FF\n.0001\n.0001\n.0001\n.0001\n.0001\n\nGateHorizOpen\n#444444\n.....\n0...0\n0...0\n0...0\n.....\n\nGateHorizOpenWet\n#444444 #0080FF\n11111\n01110\n01110\n01110\n11111\n\nGateHorizClosed\n#444444\n.....\n00000\n00000\n00000\n.....\n\nGateHorizClosedUp\n#444444 #0080FF\n11111\n00000\n00000\n00000\n.....\n\nGateHorizClosedDown\n#444444 #0080FF\n.....\n00000\n00000\n00000\n11111\n\n\nCrateDitch\n#F0B030 #D06000\n.....\n.111.\n.101.\n.111.\n.....\n\nCrateSurface\n#F0E060 #F08000 #0080FF\n21112\n10001\n10001\n10001\n21112\n\nBlock\n#555555 #222222\n11111\n10001\n10001\n10001\n11111\n\nBlockSurface\n#555555 #222222\n11111\n10001\n10001\n10001\n11111\n\n\nLadderUpTop\nBrown\n.....\n.....\n.....\n.....\n.000.\n\nLadderUp\nBrown\n..0..\n..0..\n..0..\n..0..\n.....\n\nLadderDown\nBrown\n.....\n..0..\n..0..\n..0..\n..0..\n\nLadderDownTop\nBrown\n.000.\n.....\n.....\n.....\n.....\n\nLadderLeft\nBrown\n.....\n.....\n0000.\n.....\n.....\n\nLadderLeftTop\nBrown\n.....\n....0\n....0\n....0\n.....\n\nLadderRight\nBrown\n.....\n.....\n.0000\n.....\n.....\n\nLadderRightTop\nBrown\n.....\n0....\n0....\n0....\n.....\n\n\nPlayerSurface\n#009020\n..0..\n.000.\n00000\n.000.\n..0..\n\nPlayerDitch\n#007010\n.....\n..0..\n.000.\n..0..\n.....\n\nPlayerDrowned\nDarkBrown\n.....\n..0..\n.000.\n..0..\n.....\n\n\nGoal\nTransparent\n\nDoorClosed\n#444444\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n\n\nTimer9\nTransparent\n\nTimer8\nTransparent\n\nTimer7\nTransparent\n\nTimer6\nTransparent\n\nTimer5\nTransparent\n\nTimer4\nTransparent\n\nTimer3\nTransparent\n\nTimer2\nTransparent\n\nTimer1\nTransparent\n\nTimer0\nTransparent\n\n\nBase1Token\nTransparent\n\nBase2Token\nTransparent\n\nBase3Token\nTransparent\n\nBase4Token\nTransparent\n\nBase5Token\nTransparent\n\nFakeSwitchOff\n#222222 #999999\n.1...\n.1...\n..1..\n.000.\n.....\n\nFakeSwitchOn\n#222222 #999999\n...1.\n...1.\n..1..\n.000.\n.....\n\nFakeWaterWheelVertWet\n#555500 #777700 #0080FF\n20002\n20102\n00000\n20102\n20002\n\nFakeGateHorizOpenWet\n#444444 #0080FF\n11111\n01110\n01110\n01110\n11111\n\nFakeDoorClosed\n#444444\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n\nBaseWheel11\nDarkBrown\n.....\n.....\n...00\n..000\n..000\n\nBaseWheel21\nDarkBrown\n.....\n.....\n.....\n0...0\n00.00\n\nBaseWheel31\nDarkBrown\n.....\n.....\n..000\n00000\n00...\n\nBaseWheel41\nDarkBrown\n.000.\n.000.\n00000\n00000\n.000.\n\nBaseWheel51\nDarkBrown\n.....\n.....\n000..\n00000\n...00\n\nBaseWheel61\nDarkBrown\n.....\n.....\n.....\n0...0\n00.00\n\nBaseWheel71\nDarkBrown\n.....\n.....\n00...\n000..\n000..\n\nBaseWheel71Wet\nDarkBrown #0080FF\n11111\n11111\n00111\n00011\n00011\n\nBaseWheel12\nDarkBrown\n...00\n....0\n.....\n....0\n...00\n\nBaseWheel22\nDarkBrown\n00000\n0000.\n00000\n00000\n0.000\n\nBaseWheel32\nDarkBrown\n.....\n.....\n.....\n0....\n00...\n\nBaseWheel42\nDarkBrown\n.000.\n.000.\n.000.\n.000.\n.000.\n\nBaseWheel52\nDarkBrown\n.....\n.....\n.....\n....0\n...00\n\nBaseWheel62\nDarkBrown\n00000\n.0000\n00000\n00000\n000.0\n\nBaseWheel72\nDarkBrown\n00...\n0....\n.....\n0....\n00...\n\nBaseWheel72Wet\nDarkBrown #0080FF\n00111\n01111\n11111\n01111\n00111\n\nBaseWheel13\nDarkBrown\n...00\n...00\n..00.\n..00.\n..00.\n\nBaseWheel23\nDarkBrown\n...00\n....0\n.....\n.....\n.....\n\nBaseWheel33\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheel43\nDarkBrown\n00000\n00000\n.000.\n00000\n00000\n\nBaseWheel53\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheel63\nDarkBrown\n00...\n0....\n.....\n.....\n.....\n\nBaseWheel73\nDarkBrown\n00...\n00...\n.00..\n.00..\n.00..\n\nBaseWheel73Wet\nDarkBrown #0080FF\n00111\n00111\n.0011\n.0011\n.0011\n\nBaseWheel14\nDarkBrown\n..00.\n00000\n00000\n00000\n..00.\n\nBaseWheel24\nDarkBrown\n.....\n00000\n00000\n00000\n.....\n\nBaseWheel34\nDarkBrown\n00.00\n00000\n00000\n00000\n00.00\n\nBaseWheel44\nDarkBrown DarkGray\n00000\n01110\n01110\n01110\n00000\n\nBaseWheel54\nDarkBrown\n00.00\n00000\n00000\n00000\n00.00\n\nBaseWheel64\nDarkBrown\n.....\n00000\n00000\n00000\n.....\n\nBaseWheel74\nDarkBrown\n.00..\n00000\n00000\n00000\n.00..\n\nBaseWheel74Wet1\nDarkBrown #0080FF\n.0011\n00000\n00000\n00000\n.00..\n\nBaseWheel74Wet2\nDarkBrown #0080FF\n.0011\n00000\n00000\n00000\n.0011\n\nBaseWheel15\nDarkBrown\n..00.\n..00.\n..00.\n...00\n...00\n\nBaseWheel25\nDarkBrown\n.....\n.....\n.....\n....0\n...00\n\nBaseWheel35\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheel45\nDarkBrown\n00000\n00000\n.000.\n00000\n00000\n\nBaseWheel55\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheel65\nDarkBrown\n.....\n.....\n.....\n0....\n00...\n\nBaseWheel75\nDarkBrown\n.00..\n.00..\n.00..\n00...\n00...\n\nBaseWheel75Wet\nDarkBrown #0080FF\n.0011\n.0011\n.0011\n00111\n00111\n\nBaseWheel16\nDarkBrown\n...00\n....0\n.....\n....0\n...00\n\nBaseWheel26\nDarkBrown\n0.000\n00000\n00000\n0000.\n00000\n\nBaseWheel36\nDarkBrown\n00...\n0....\n.....\n.....\n.....\n\nBaseWheel46\nDarkBrown\n.000.\n.000.\n.000.\n.000.\n.000.\n\nBaseWheel56\nDarkBrown\n...00\n....0\n.....\n.....\n.....\n\nBaseWheel66\nDarkBrown\n000.0\n00000\n00000\n.0000\n00000\n\nBaseWheel76\nDarkBrown\n00...\n0....\n.....\n0....\n00...\n\nBaseWheel76Wet\nDarkBrown #0080FF\n00111\n01111\n11111\n01111\n00111\n\nBaseWheel17\nDarkBrown\n..000\n..000\n...00\n.....\n.....\n\nBaseWheel27\nDarkBrown\n00.00\n0...0\n.....\n.....\n.....\n\nBaseWheel37\nDarkBrown\n00...\n00000\n..000\n.....\n.....\n\nBaseWheel47\nDarkBrown\n.000.\n00000\n00000\n.000.\n.000.\n\nBaseWheel57\nDarkBrown\n...00\n00000\n000..\n.....\n.....\n\nBaseWheel67\nDarkBrown\n00.00\n0...0\n.....\n.....\n.....\n\nBaseWheel77\nDarkBrown\n000..\n000..\n00...\n.....\n.....\n\nBaseWheel77Wet\nDarkBrown #0080FF\n00011\n00011\n00111\n11111\n11111\n\nBaseWheelT11\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT21\nDarkBrown\n..000\n...00\n...00\n...00\n...00\n\nBaseWheelT31\nDarkBrown\n.....\n0....\n00000\n00000\n000..\n\nBaseWheelT41\nDarkBrown\n.....\n.....\n00000\n00000\n.....\n\nBaseWheelT51\nDarkBrown\n.....\n....0\n00000\n00000\n..000\n\nBaseWheelT61\nDarkBrown\n000..\n00...\n00...\n00...\n00...\n\nBaseWheelT71\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT71Wet\nDarkBrown #0080FF\n11111\n11111\n11111\n11111\n11111\n\nBaseWheelT12\nDarkBrown\n.....\n.....\n0...0\n00000\n00000\n\nBaseWheelT22\nDarkBrown\n..000\n.000.\n00...\n00...\n0....\n\nBaseWheelT32\nDarkBrown\n000..\n0000.\n.000.\n.0000\n..000\n\nBaseWheelT42\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT52\nDarkBrown\n..000\n.0000\n.000.\n0000.\n000..\n\nBaseWheelT62\nDarkBrown\n000..\n.000.\n...00\n...00\n....0\n\nBaseWheelT72\nDarkBrown\n.....\n.....\n....0\n00000\n00000\n\nBaseWheelT72Wet\nDarkBrown #0080FF\n11111\n11111\n11110\n00000\n00000\n\nBaseWheelT13\nDarkBrown\n.0000\n..000\n..000\n..00.\n..00.\n\nBaseWheelT23\nDarkBrown\n00...\n0000.\n00000\n.0000\n...00\n\nBaseWheelT33\nDarkBrown\n..000\n..000\n00000\n000.0\n00000\n\nBaseWheelT43\nDarkBrown\n00000\n00000\n00.00\n00.00\n00000\n\nBaseWheelT53\nDarkBrown\n000..\n000..\n00000\n0.000\n00000\n\nBaseWheelT63\nDarkBrown\n...00\n.0000\n00000\n0000.\n00...\n\nBaseWheelT73\nDarkBrown\n0000.\n000..\n000..\n.00..\n.00..\n\nBaseWheelT73Wet\nDarkBrown #0080FF\n00001\n00011\n00011\n.0011\n.0011\n\nBaseWheelT14\nDarkBrown\n..00.\n..00.\n..00.\n..00.\n..00.\n\nBaseWheelT24\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT34\nDarkBrown\n00000\n00000\n00..0\n00000\n00000\n\nBaseWheelT44\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheelT54\nDarkBrown\n00000\n00000\n0..00\n00000\n00000\n\nBaseWheelT64\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT74\nDarkBrown\n.00..\n.00..\n.00..\n.00..\n.00..\n\nBaseWheelT74Wet\nDarkBrown #0080FF\n.0011\n.0011\n.0011\n.0011\n.0011\n\nBaseWheelT15\nDarkBrown\n..00.\n..00.\n..000\n..000\n.0000\n\nBaseWheelT25\nDarkBrown\n...00\n.0000\n00000\n0000.\n00...\n\nBaseWheelT35\nDarkBrown\n00000\n000.0\n00000\n..000\n..000\n\nBaseWheelT45\nDarkBrown\n00000\n00.00\n00.00\n00000\n00000\n\nBaseWheelT55\nDarkBrown\n00000\n0.000\n00000\n00...\n00...\n\nBaseWheelT65\nDarkBrown\n00...\n0000.\n00000\n.0000\n...00\n\nBaseWheelT75\nDarkBrown\n.00..\n.00..\n000..\n000..\n0000.\n\nBaseWheelT75Wet\nDarkBrown #0080FF\n.0011\n.0011\n00011\n00011\n00001\n\nBaseWheelT16\nDarkBrown\n00000\n00000\n0....\n.....\n.....\n\nBaseWheelT26\nDarkBrown\n0....\n00...\n00...\n.000.\n..000\n\nBaseWheelT36\nDarkBrown\n..000\n.0000\n.000.\n0000.\n000..\n\nBaseWheelT46\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT56\nDarkBrown\n000..\n0000.\n.000.\n.0000\n..000\n\nBaseWheelT66\nDarkBrown\n....0\n...00\n...00\n.000.\n00...\n\nBaseWheelT76\nDarkBrown\n00000\n00000\n....0\n.....\n.....\n\nBaseWheelT76Wet\nDarkBrown #0080FF\n00000\n00000\n11110\n11111\n11111\n\nBaseWheelT17\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT27\nDarkBrown\n...00\n...00\n...00\n...00\n..000\n\nBaseWheelT37\nDarkBrown\n000..\n00000\n00000\n0....\n.....\n\nBaseWheelT47\nDarkBrown\n.....\n00000\n00000\n.....\n.....\n\nBaseWheelT57\nDarkBrown\n..000\n00000\n00000\n....0\n.....\n\nBaseWheelT67\nDarkBrown\n00...\n00...\n00...\n00...\n000..\n\nBaseWheelT77\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT77Wet\nDarkBrown #0080FF\n11111\n11111\n11111\n11111\n11111\n\n\n\n\n\nCutsceneBackground\nGreen\n\nHouse\nDarkBrown\n\nHouseRoofLeft\nDarkBrown\n.....\n....0\n...00\n..000\n.0000\n\nHouseRoofRight\nDarkBrown\n.....\n0....\n00...\n000..\n0000.\n\nWindow\nLightBlue\n\nDoorClosedTop\nDarkBrown #383020\n11111\n10001\n10001\n10001\n10001\n\nDoorClosedBottom\nDarkBrown #383020\n10001\n10001\n10001\n10001\n10001\n\nRoadLeft\n#E0D010\n....0\n...00\n..000\n.0000\n00000\n\nRoad\n#E0D010\n\nRoadRight\n#E0D010\n.....\n0....\n00...\n000..\n0000.\n\nClockTowerLeft\n#252525\n\nClockTowerRight\n#252525\n0000.\n0000.\n0000.\n0000.\n0000.\n\nClock11\n#252525 White\n.....\n....0\n...00\n..000\n..001\n\nClock21\n#252525 White\n00000\n00000\n01111\n11101\n11101\n\nClock21b\n#252525 White\n00000\n00000\n01111\n11110\n11110\n\nClock31\n#252525 White\n0000.\n00000\n11100\n11110\n11111\n\nClock41\n#252525 White\n.....\n.....\n0....\n00...\n00...\n\nClock12\n#252525 White\n..001\n..001\n..001\n..001\n..001\n\nClock22\n#252525 White\n11110\n11110\n11110\n11111\n11111\n\nClock32\n#252525 White\n11111\n11111\n00011\n11111\n11111\n\nClock42\n#252525 White\n00...\n00...\n00...\n00...\n00...\n\nClock13\n#252525 White\n..001\n..000\n...00\n....0\n.....\n\nClock23\n#252525 White\n11111\n11111\n01111\n00000\n00000\n\nClock33\n#252525 White\n11111\n11110\n11100\n00000\n0000.\n\nClock43\n#252525 White\n00...\n00...\n0....\n.....\n.....\n\nDoorOpen\nBlack\n\nCutsceneWater\n#0080FF\n\nPlayerHead\n#009020 White\n..0..\n.000.\n00000\n.000.\n.101.\n\nPlayerBody\n#009020 White\n.111.\n.111.\n.111.\n.1.1.\n.1.1.\n\n\nSoundTrigger0\nTransparent\n\nSoundTrigger1\nTransparent\n\nSoundTrigger2\nTransparent\n\nSoundTrigger3\nTransparent\n\nSoundTrigger4\nTransparent\n\n\n=======\nLEGEND\n=======\n\n! = Background\n\n. = Surface\n# = Wall\n\nⅠ = Wall AND RomanNumeral1\nⅡ = Wall AND RomanNumeral2\nⅢ = Wall AND RomanNumeral3\nⅣ = Wall AND RomanNumeral4\nⅤ = Wall AND RomanNumeral5\nRomanNumeral = RomanNumeral1 OR RomanNumeral2 OR RomanNumeral3 OR RomanNumeral4 OR RomanNumeral5\n\n5 = WaterWheelHorizWet AND WaterSource\n6 = WaterWheelHorizDry\n7 = WaterWheelVertWet AND WaterSource\n8 = WaterWheelVertDry\nWaterWheel = WaterWheelHorizWet OR WaterWheelHorizDry OR WaterWheelVertWet OR WaterWheelVertDry OR FakeWaterWheelVertWet\nWaterPropagator = Water OR CrateSurface OR WaterSource OR GateVertOpenWet OR GateHorizOpenWet\n\n- = Ditch\n1 = GateVertOpen AND Ditch\n2 = GateVertClosed AND Ditch\n3 = GateHorizOpen AND Ditch\n4 = GateHorizClosed AND Ditch\n\n$ = CrateDitch AND Ditch\nCrate = CrateDitch OR CrateSurface\n% = Block AND Ditch\n\nPushable = CrateDitch OR Block\n\n/ = SwitchOn AND Surface\n\\ = SwitchOff AND Surface\nSwitch = SwitchOn OR SwitchOff OR FakeSwitchOn OR FakeSwitchOff\n\nU = LadderUp AND Ditch\nD = LadderDown AND Ditch\nL = LadderLeft AND Ditch\nR = LadderRight AND Ditch\nLadder = LadderUp OR LadderDown OR LadderLeft OR LadderRight\n\nGate = GateVertOpen OR GateVertOpenWet OR GateVertClosed OR GateVertClosedLeft OR GateVertClosedRight OR GateHorizOpen OR GateHorizOpenWet OR GateHorizClosed OR GateHorizClosedUp OR GateHorizClosedDown OR FakeGateHorizOpenWet\n\n@ = PlayerSurface AND Surface\nPlayer = PlayerSurface OR PlayerDitch\n\nG = Goal AND Surface\n\n一 = Timer1 AND CutsceneBackground\n二 = Timer2 AND CutsceneBackground\n三 = Timer3 AND CutsceneBackground\n四 = Timer4 AND CutsceneBackground\n五 = Timer5 AND CutsceneBackground\n六 = Timer6 AND CutsceneBackground\n七 = Timer7 AND CutsceneBackground\n八 = Timer8 AND CutsceneBackground\n九 = Timer9 AND CutsceneBackground\nTimer = Timer1 OR Timer2 OR Timer3 OR Timer4 OR Timer5 OR Timer6 OR Timer7 OR Timer8 OR Timer9 OR Timer0\n\nⒶ = BaseWheel11 AND Base1Token AND Ditch\nⒷ = BaseWheel11 AND Base2Token AND Ditch\nⒸ = BaseWheelT11 AND Base3Token AND Ditch\nⒹ = BaseWheel11 AND Base4Token AND Ditch\nⒺ = BaseWheelT11 AND Base5Token AND Ditch\nBaseToken = Base1Token OR Base2Token OR Base3Token OR Base4Token OR Base5Token\nBaseWheel = BaseWheel11 OR BaseWheel21 OR BaseWheel31 OR BaseWheel41 OR BaseWheel51 OR BaseWheel61 OR BaseWheel71 OR BaseWheel12 OR BaseWheel22 OR BaseWheel32 OR BaseWheel42 OR BaseWheel52 OR BaseWheel62 OR BaseWheel72 OR BaseWheel13 OR BaseWheel23 OR BaseWheel33 OR BaseWheel43 OR BaseWheel53 OR BaseWheel63 OR BaseWheel73 OR BaseWheel14 OR BaseWheel24 OR BaseWheel34 OR BaseWheel44 OR BaseWheel54 OR BaseWheel64 OR BaseWheel74 OR BaseWheel15 OR BaseWheel25 OR BaseWheel35 OR BaseWheel45 OR BaseWheel55 OR BaseWheel65 OR BaseWheel75 OR BaseWheel16 OR BaseWheel26 OR BaseWheel36 OR BaseWheel46 OR BaseWheel56 OR BaseWheel66 OR BaseWheel76 OR BaseWheel17 OR BaseWheel27 OR BaseWheel37 OR BaseWheel47 OR BaseWheel57 OR BaseWheel67 OR BaseWheel77 OR BaseWheel71Wet OR BaseWheel72Wet OR BaseWheel73Wet OR BaseWheel74Wet1 OR BaseWheel74Wet2 OR BaseWheel75Wet OR BaseWheel76Wet OR BaseWheel77Wet OR BaseWheelT11 OR BaseWheelT21 OR BaseWheelT31 OR BaseWheelT41 OR BaseWheelT51 OR BaseWheelT61 OR BaseWheelT71 OR BaseWheelT12 OR BaseWheelT22 OR BaseWheelT32 OR BaseWheelT42 OR BaseWheelT52 OR BaseWheelT62 OR BaseWheelT72 OR BaseWheelT13 OR BaseWheelT23 OR BaseWheelT33 OR BaseWheelT43 OR BaseWheelT53 OR BaseWheelT63 OR BaseWheelT73 OR BaseWheelT14 OR BaseWheelT24 OR BaseWheelT34 OR BaseWheelT44 OR BaseWheelT54 OR BaseWheelT64 OR BaseWheelT74 OR BaseWheelT15 OR BaseWheelT25 OR BaseWheelT35 OR BaseWheelT45 OR BaseWheelT55 OR BaseWheelT65 OR BaseWheelT75 OR BaseWheelT16 OR BaseWheelT26 OR BaseWheelT36 OR BaseWheelT46 OR BaseWheelT56 OR BaseWheelT66 OR BaseWheelT76 OR BaseWheelT17 OR BaseWheelT27 OR BaseWheelT37 OR BaseWheelT47 OR BaseWheelT57 OR BaseWheelT67 OR BaseWheelT77 OR BaseWheelT71Wet OR BaseWheelT72Wet OR BaseWheelT73Wet OR BaseWheelT74Wet OR BaseWheelT75Wet OR BaseWheelT76Wet OR BaseWheelT77Wet\n\nA = CutsceneBackground\nB = House AND CutsceneBackground\nC = HouseRoofLeft AND CutsceneBackground\nD = HouseRoofRight AND CutsceneBackground\nE = DoorClosedTop AND CutsceneBackground\nF = DoorClosedBottom AND CutsceneBackground\nG = Window AND CutsceneBackground\nH = RoadLeft AND CutsceneBackground\nI = Road AND CutsceneBackground\nJ = RoadRight AND CutsceneBackground\nK = ClockTowerLeft AND CutsceneBackground\nL = ClockTowerRight AND CutsceneBackground\nM = Clock11 AND CutsceneBackground\nN = Clock21 AND CutsceneBackground\nO = Clock31 AND CutsceneBackground\nP = Clock41 AND CutsceneBackground\nQ = Clock12 AND CutsceneBackground\nR = Clock22 AND CutsceneBackground\nS = Clock32 AND CutsceneBackground\nT = Clock42 AND CutsceneBackground\nU = Clock13 AND CutsceneBackground\nV = Clock23 AND CutsceneBackground\nW = Clock33 AND CutsceneBackground\nX = Clock43 AND CutsceneBackground\nY = DoorOpen AND PlayerHead AND CutsceneBackground\nZ = DoorOpen AND PlayerBody AND CutsceneBackground\n0 = DoorOpen AND CutsceneBackground\n1 = House AND PlayerHead AND CutsceneBackground\n2 = House AND PlayerBody AND CutsceneBackground\n3 = Clock21b AND CutsceneBackground\n~ = CutsceneWater AND CutsceneBackground\n\n⓪ = SoundTrigger0 AND CutsceneBackground\n① = SoundTrigger1 AND CutsceneBackground\n② = SoundTrigger2 AND CutsceneBackground\n③ = SoundTrigger3 AND CutsceneBackground\n④ = SoundTrigger4 AND CutsceneBackground\nSoundTrigger = SoundTrigger0 OR SoundTrigger1 OR SoundTrigger2 OR SoundTrigger3 OR SoundTrigger4\n\n=======\nSOUNDS\n=======\n\nPlayerSurface create 48266305 (climb up)\nPlayerDitch create 41817501 (climb down)\n\n(water movement)\nSwitchOn create 36552908\nSwitchOff create 36552908\nSoundTrigger0 destroy 36552908\nsfx1 36552908\n\nPlayerDrowned create 36552908 (play water movement too)\nPlayerDrowned create 66299108 (u ded)\n\nSoundTrigger1 destroy 56950107 (open door)\nSoundTrigger2 destroy 73601104 (close door)\n\nSoundTrigger3 destroy 20889900 (chime)\n\nSoundTrigger4 destroy 25204707 (wheel click)\n\nsfx0 9950900 (finish a puzzle level)\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nCutsceneBackground\nSurface, Ditch\nLadder\nLadderUpTop (tops all on separate layers so more than one can be on one tile)\nLadderDownTop\nLadderLeftTop\nLadderRightTop\nCrateSurface, BlockSurface\nPlayer, Wall, Water, Gate, Switch, CrateDitch, Block, WaterWheel, DoorClosed, FakeDoorClosed, BaseWheel\nGoal\nSwitchToggleToken, BaseToken\nWaterSource\nTimer, RomanNumeral, PlayerDrowned\nHouse, HouseRoofLeft, HouseRoofRight, DoorClosedTop, DoorClosedBottom, Window, RoadLeft, Road, RoadRight, ClockTowerLeft, ClockTowerRight, Clock11, Clock21, Clock21b, Clock31, Clock41, Clock12, Clock22, Clock32, Clock42, Clock13, Clock23, Clock33, Clock43, DoorOpen, CutsceneWater\nPlayerHead, PlayerBody\nSoundTrigger\n\n\n======\nRULES\n======\n\n(================\nLEVEL GENERATION\n================)\n\n(Generate the tops of the ladders.)\nDOWN [ | LadderUp ] -> [ LadderUpTop | LadderUp ]\nDOWN [ LadderDown | ] -> [ LadderDown | LadderDownTop ]\nRIGHT [ | LadderLeft ] -> [ LadderLeftTop | LadderLeft ]\nRIGHT [ LadderRight | ] -> [ LadderRight | LadderRightTop ]\n\n\n(========\nMOVEMENT\n========)\n\n(Convert blocks to and from fake surfaces when the player walks on and off them, because layers.)\n[ > Player Surface | Block Ditch ] -> [ > Player Surface | BlockSurface Surface ]\nLATE [ BlockSurface Surface no Player ] -> [ Block Ditch ]\n\n(Shove crates and blocks. They can never move to the surface.)\n[ > PlayerDitch | Pushable ] -> [ > PlayerDitch | > Pushable ]\n[ > Pushable | Surface ] -> [ Pushable | Surface ]\n\n(Cancel movement if the player walks into the void.)\n[ > Player | no Surface no Ditch ] -> [ Player | ]\n\n(Cancel movement if a player on the surface tries to move into a ditch without using a ladder.)\nDOWN [ > Player Surface | Ditch no LadderUp ] -> [ Player Surface | Ditch ]\nUP [ > Player Surface | Ditch no LadderDown ] -> [ Player Surface | Ditch ]\nLEFT [ > Player Surface | Ditch no LadderRight ] -> [ Player Surface | Ditch ]\nRIGHT [ > Player Surface | Ditch no LadderLeft ] -> [ Player Surface | Ditch ]\n\n(Cancel movement if a player in a ditch tries to move to the surface without using a ladder.)\nDOWN [ > Player Ditch no LadderDown | Surface ] -> [ Player Ditch | Surface ]\nUP [ > Player Ditch no LadderUp | Surface ] -> [ Player Ditch | Surface ]\nLEFT [ > Player Ditch no LadderLeft | Surface ] -> [ Player Ditch | Surface ]\nRIGHT [ > Player Ditch no LadderRight | Surface ] -> [ Player Ditch | Surface ]\n\n(Change the player sprite based on their height.)\nLATE [ PlayerSurface Ditch ] -> [ PlayerDitch Ditch ]\nLATE [ PlayerDitch Surface ] -> [ PlayerSurface Surface ]\n\n(Play a sound when the player finishes a puzzle level. Done like this so it doesn't happen on the cutscene levels.)\nLATE [ Player Goal ] -> sfx0\n\n\n(=============\nSPLISH SPLASH\n=============)\n\n(Get started by marking that we're toggling and clearing current water)\n[ > Player Surface | Switch ] -> [ > Player Surface | Switch SwitchToggleToken ]\n[ SwitchToggleToken ] [ Water ] -> [ SwitchToggleToken ] [ ]\n[ SwitchToggleToken ] [ GateVertOpenWet ] -> [ SwitchToggleToken ] [ GateVertOpen ]\n[ SwitchToggleToken ] [ GateVertClosedLeft ] -> [ SwitchToggleToken ] [ GateVertClosed ]\n[ SwitchToggleToken ] [ GateVertClosedRight ] -> [ SwitchToggleToken ] [ GateVertClosed ]\n[ SwitchToggleToken ] [ GateHorizOpenWet ] -> [ SwitchToggleToken ] [ GateHorizOpen ]\n[ SwitchToggleToken ] [ GateHorizClosedUp ] -> [ SwitchToggleToken ] [ GateHorizClosed ]\n[ SwitchToggleToken ] [ GateHorizClosedDown ] -> [ SwitchToggleToken ] [ GateHorizClosed ]\n[ SwitchToggleToken ] [ WaterWheelVertWet no WaterSource ] -> [ SwitchToggleToken ] [ WaterWheelVertDry ]\n[ SwitchToggleToken ] [ WaterWheelHorizWet no WaterSource ] -> [ SwitchToggleToken ] [ WaterWheelHorizDry ]\n[ SwitchToggleToken ] [ CrateSurface Surface ] -> [ SwitchToggleToken ] [ CrateDitch Ditch ]\n\n(Open the associated gate and send the water along.)\n[ SwitchOff SwitchToggleToken | GateVertClosed ] -> [ SwitchOff SwitchToggleToken | GateVertOpen ]\n[ SwitchOff SwitchToggleToken | GateHorizClosed ] -> [ SwitchOff SwitchToggleToken | GateHorizOpen ]\nstartloop\n\t(This water propagation is bad lmao, don't worry about it)\n\t(We do this LATE so we can propagate after a player moves a block.)\n\tLATE [ WaterPropagator | Ditch no Water no Gate no Crate no Block no Player ] -> [ WaterPropagator | Ditch Water ]\n LATE [ WaterPropagator | PlayerDitch ] -> [ WaterPropagator | PlayerDrowned ]\n\tLATE [ WaterPropagator | CrateDitch Ditch ] -> [ WaterPropagator | CrateSurface Surface ]\n LATE [ WaterPropagator | GateVertOpen ] -> [ WaterPropagator | GateVertOpenWet ]\n LATE RIGHT [ WaterPropagator | GateVertClosed ] -> [ WaterPropagator | GateVertClosedLeft ]\n LATE RIGHT [ GateVertClosed | WaterPropagator ] -> [ GateVertClosedRight | WaterPropagator ]\n LATE [ WaterPropagator | GateHorizOpen ] -> [ WaterPropagator | GateHorizOpenWet ]\n LATE DOWN [ WaterPropagator | GateHorizClosed ] -> [ WaterPropagator | GateHorizClosedUp ]\n LATE DOWN [ GateHorizClosed | WaterPropagator ] -> [ GateHorizClosedDown | WaterPropagator ]\nendloop\nLATE [ WaterPropagator | WaterWheelVertDry ] -> [ WaterPropagator | WaterWheelVertWet ]\nLATE [ WaterPropagator | WaterWheelHorizDry ] -> [ WaterPropagator | WaterWheelHorizWet ]\n[ SwitchOff SwitchToggleToken ] -> [ SwitchOn ]\n\n(Close the associated gate.)\n[ SwitchOn SwitchToggleToken | GateVertOpen ] -> [ SwitchOn SwitchToggleToken | GateVertClosed ]\n[ SwitchOn SwitchToggleToken | GateHorizOpen ] -> [ SwitchOn SwitchToggleToken | GateHorizClosed ]\n[ SwitchOn SwitchToggleToken ] -> [ SwitchOff ]\n\n(Open/close the door depending on whether the water wheel is powered.)\nLATE [ Goal DoorClosed ] -> [ Goal ]\nLATE [ WaterWheelVertDry ] [ Goal ] -> [ WaterWheelVertDry ] [ Goal DoorClosed ]\nLATE [ WaterWheelHorizDry ] [ Goal ] -> [ WaterWheelHorizDry ] [ Goal DoorClosed ]\n\n\n(=========\nCUTSCENES\n=========)\n\n(Wheel generation for the base levels - #1)\nRIGHT [ Base1Token ] [ BaseWheel11 | | | | | | ] -> [ Base1Token ] [ BaseWheel11 | BaseWheel21 | BaseWheel31 | BaseWheel41 | BaseWheel51 | BaseWheel61 | BaseWheel71 ]\nDOWN [ Base1Token ] [ BaseWheel11 | | | | | | ] -> [ Base1Token ] [ BaseWheel11 | BaseWheel12 | BaseWheel13 | BaseWheel14 | BaseWheel15 | BaseWheel16 | BaseWheel17 ]\nDOWN [ Base1Token ] [ BaseWheel21 | | | | | | ] -> [ Base1Token ] [ BaseWheel21 | BaseWheel22 | BaseWheel23 | BaseWheel24 | BaseWheel25 | BaseWheel26 | BaseWheel27 ]\nDOWN [ Base1Token ] [ BaseWheel31 | | | | | | ] -> [ Base1Token ] [ BaseWheel31 | BaseWheel32 | BaseWheel33 | BaseWheel34 | BaseWheel35 | BaseWheel36 | BaseWheel37 ]\nDOWN [ Base1Token ] [ BaseWheel41 | | | | | | ] -> [ Base1Token ] [ BaseWheel41 | BaseWheel42 | BaseWheel43 | BaseWheel44 | BaseWheel45 | BaseWheel46 | BaseWheel47 ]\nDOWN [ Base1Token ] [ BaseWheel51 | | | | | | ] -> [ Base1Token ] [ BaseWheel51 | BaseWheel52 | BaseWheel53 | BaseWheel54 | BaseWheel55 | BaseWheel56 | BaseWheel57 ]\nDOWN [ Base1Token ] [ BaseWheel61 | | | | | | ] -> [ Base1Token ] [ BaseWheel61 | BaseWheel62 | BaseWheel63 | BaseWheel64 | BaseWheel65 | BaseWheel66 | BaseWheel67 ]\nDOWN [ Base1Token ] [ BaseWheel71 | | | | | | ] -> [ Base1Token ] [ BaseWheel71 | BaseWheel72 | BaseWheel73 | BaseWheel74 | BaseWheel75 | BaseWheel76 | BaseWheel77 ]\n\n(Wheel generation for the base levels - #2)\nRIGHT [ Base2Token ] [ BaseWheel11 | | | | | | ] -> [ Base2Token ] [ BaseWheel11 | BaseWheel21 | BaseWheel31 | BaseWheel41 | BaseWheel51 | BaseWheel61 | BaseWheel71Wet ]\nDOWN [ Base2Token ] [ BaseWheel11 | | | | | | ] -> [ Base2Token ] [ BaseWheel11 | BaseWheel12 | BaseWheel13 | BaseWheel14 | BaseWheel15 | BaseWheel16 | BaseWheel17 ]\nDOWN [ Base2Token ] [ BaseWheel21 | | | | | | ] -> [ Base2Token ] [ BaseWheel21 | BaseWheel22 | BaseWheel23 | BaseWheel24 | BaseWheel25 | BaseWheel26 | BaseWheel27 ]\nDOWN [ Base2Token ] [ BaseWheel31 | | | | | | ] -> [ Base2Token ] [ BaseWheel31 | BaseWheel32 | BaseWheel33 | BaseWheel34 | BaseWheel35 | BaseWheel36 | BaseWheel37 ]\nDOWN [ Base2Token ] [ BaseWheel41 | | | | | | ] -> [ Base2Token ] [ BaseWheel41 | BaseWheel42 | BaseWheel43 | BaseWheel44 | BaseWheel45 | BaseWheel46 | BaseWheel47 ]\nDOWN [ Base2Token ] [ BaseWheel51 | | | | | | ] -> [ Base2Token ] [ BaseWheel51 | BaseWheel52 | BaseWheel53 | BaseWheel54 | BaseWheel55 | BaseWheel56 | BaseWheel57 ]\nDOWN [ Base2Token ] [ BaseWheel61 | | | | | | ] -> [ Base2Token ] [ BaseWheel61 | BaseWheel62 | BaseWheel63 | BaseWheel64 | BaseWheel65 | BaseWheel66 | BaseWheel67 ]\nDOWN [ Base2Token ] [ BaseWheel71Wet | | | | | | ] -> [ Base2Token ] [ BaseWheel71Wet | BaseWheel72Wet | BaseWheel73Wet | BaseWheel74Wet1 | BaseWheel75 | BaseWheel76 | BaseWheel77 ]\n\n(Wheel generation for the base levels - #3)\nRIGHT [ Base3Token ] [ BaseWheelT11 | | | | | | ] -> [ Base3Token ] [ BaseWheelT11 | BaseWheelT21 | BaseWheelT31 | BaseWheelT41 | BaseWheelT51 | BaseWheelT61 | BaseWheelT71Wet ]\nDOWN [ Base3Token ] [ BaseWheelT11 | | | | | | ] -> [ Base3Token ] [ BaseWheelT11 | BaseWheelT12 | BaseWheelT13 | BaseWheelT14 | BaseWheelT15 | BaseWheelT16 | BaseWheelT17 ]\nDOWN [ Base3Token ] [ BaseWheelT21 | | | | | | ] -> [ Base3Token ] [ BaseWheelT21 | BaseWheelT22 | BaseWheelT23 | BaseWheelT24 | BaseWheelT25 | BaseWheelT26 | BaseWheelT27 ]\nDOWN [ Base3Token ] [ BaseWheelT31 | | | | | | ] -> [ Base3Token ] [ BaseWheelT31 | BaseWheelT32 | BaseWheelT33 | BaseWheelT34 | BaseWheelT35 | BaseWheelT36 | BaseWheelT37 ]\nDOWN [ Base3Token ] [ BaseWheelT41 | | | | | | ] -> [ Base3Token ] [ BaseWheelT41 | BaseWheelT42 | BaseWheelT43 | BaseWheelT44 | BaseWheelT45 | BaseWheelT46 | BaseWheelT47 ]\nDOWN [ Base3Token ] [ BaseWheelT51 | | | | | | ] -> [ Base3Token ] [ BaseWheelT51 | BaseWheelT52 | BaseWheelT53 | BaseWheelT54 | BaseWheelT55 | BaseWheelT56 | BaseWheelT57 ]\nDOWN [ Base3Token ] [ BaseWheelT61 | | | | | | ] -> [ Base3Token ] [ BaseWheelT61 | BaseWheelT62 | BaseWheelT63 | BaseWheelT64 | BaseWheelT65 | BaseWheelT66 | BaseWheelT67 ]\nDOWN [ Base3Token ] [ BaseWheelT71Wet | | | | | | ] -> [ Base3Token ] [ BaseWheelT71Wet | BaseWheelT72Wet | BaseWheelT73Wet | BaseWheelT74Wet | BaseWheelT75Wet | BaseWheelT76 | BaseWheelT77 ]\n\n(Wheel generation for the base levels - #4)\nRIGHT [ Base4Token ] [ BaseWheel11 | | | | | | ] -> [ Base4Token ] [ BaseWheel11 | BaseWheel21 | BaseWheel31 | BaseWheel41 | BaseWheel51 | BaseWheel61 | BaseWheel71Wet ]\nDOWN [ Base4Token ] [ BaseWheel11 | | | | | | ] -> [ Base4Token ] [ BaseWheel11 | BaseWheel12 | BaseWheel13 | BaseWheel14 | BaseWheel15 | BaseWheel16 | BaseWheel17 ]\nDOWN [ Base4Token ] [ BaseWheel21 | | | | | | ] -> [ Base4Token ] [ BaseWheel21 | BaseWheel22 | BaseWheel23 | BaseWheel24 | BaseWheel25 | BaseWheel26 | BaseWheel27 ]\nDOWN [ Base4Token ] [ BaseWheel31 | | | | | | ] -> [ Base4Token ] [ BaseWheel31 | BaseWheel32 | BaseWheel33 | BaseWheel34 | BaseWheel35 | BaseWheel36 | BaseWheel37 ]\nDOWN [ Base4Token ] [ BaseWheel41 | | | | | | ] -> [ Base4Token ] [ BaseWheel41 | BaseWheel42 | BaseWheel43 | BaseWheel44 | BaseWheel45 | BaseWheel46 | BaseWheel47 ]\nDOWN [ Base4Token ] [ BaseWheel51 | | | | | | ] -> [ Base4Token ] [ BaseWheel51 | BaseWheel52 | BaseWheel53 | BaseWheel54 | BaseWheel55 | BaseWheel56 | BaseWheel57 ]\nDOWN [ Base4Token ] [ BaseWheel61 | | | | | | ] -> [ Base4Token ] [ BaseWheel61 | BaseWheel62 | BaseWheel63 | BaseWheel64 | BaseWheel65 | BaseWheel66 | BaseWheel67 ]\nDOWN [ Base4Token ] [ BaseWheel71Wet | | | | | | ] -> [ Base4Token ] [ BaseWheel71Wet | BaseWheel72Wet | BaseWheel73Wet | BaseWheel74Wet2 | BaseWheel75Wet | BaseWheel76Wet | BaseWheel77Wet ]\n\n(Wheel generation for the base levels - #5)\nRIGHT [ Base5Token ] [ BaseWheelT11 | | | | | | ] -> [ Base5Token ] [ BaseWheelT11 | BaseWheelT21 | BaseWheelT31 | BaseWheelT41 | BaseWheelT51 | BaseWheelT61 | BaseWheelT71Wet ]\nDOWN [ Base5Token ] [ BaseWheelT11 | | | | | | ] -> [ Base5Token ] [ BaseWheelT11 | BaseWheelT12 | BaseWheelT13 | BaseWheelT14 | BaseWheelT15 | BaseWheelT16 | BaseWheelT17 ]\nDOWN [ Base5Token ] [ BaseWheelT21 | | | | | | ] -> [ Base5Token ] [ BaseWheelT21 | BaseWheelT22 | BaseWheelT23 | BaseWheelT24 | BaseWheelT25 | BaseWheelT26 | BaseWheelT27 ]\nDOWN [ Base5Token ] [ BaseWheelT31 | | | | | | ] -> [ Base5Token ] [ BaseWheelT31 | BaseWheelT32 | BaseWheelT33 | BaseWheelT34 | BaseWheelT35 | BaseWheelT36 | BaseWheelT37 ]\nDOWN [ Base5Token ] [ BaseWheelT41 | | | | | | ] -> [ Base5Token ] [ BaseWheelT41 | BaseWheelT42 | BaseWheelT43 | BaseWheelT44 | BaseWheelT45 | BaseWheelT46 | BaseWheelT47 ]\nDOWN [ Base5Token ] [ BaseWheelT51 | | | | | | ] -> [ Base5Token ] [ BaseWheelT51 | BaseWheelT52 | BaseWheelT53 | BaseWheelT54 | BaseWheelT55 | BaseWheelT56 | BaseWheelT57 ]\nDOWN [ Base5Token ] [ BaseWheelT61 | | | | | | ] -> [ Base5Token ] [ BaseWheelT61 | BaseWheelT62 | BaseWheelT63 | BaseWheelT64 | BaseWheelT65 | BaseWheelT66 | BaseWheelT67 ]\nDOWN [ Base5Token ] [ BaseWheelT71Wet | | | | | | ] -> [ Base5Token ] [ BaseWheelT71Wet | BaseWheelT72Wet | BaseWheelT73Wet | BaseWheelT74Wet | BaseWheelT75Wet | BaseWheelT76Wet | BaseWheelT77Wet ]\n\n(Replace objects with fakes that don't do anything.)\n[ BaseToken ] [ CutsceneBackground ] -> [ BaseToken ] [ Wall ]\n[ BaseToken ] [ WaterWheelHorizWet WaterSource ] -> [ BaseToken ] [ FakeWaterWheelVertWet ]\n[ BaseToken ] [ SwitchOff ] -> [ BaseToken ] [ FakeSwitchOff ]\n[ BaseToken ] [ GateHorizOpen ] -> [ BaseToken ] [ FakeGateHorizOpenWet ]\n[ BaseToken ] [ Goal ] -> [ BaseToken ] [ FakeDoorClosed ]\n(Fill spaces with fake water in part 2 and beyond)\nDOWN [ BaseToken no Base1Token ] [ FakeGateHorizOpenWet | Ditch ] -> [ BaseToken ] [ FakeGateHorizOpenWet | Ditch CutsceneWater ]\n(Fill spaces with fake water in part 4 and beyond)\n[ BaseToken no Base1Token no Base2Token no Base3Token ] [ Ditch no BaseWheel ] -> [ BaseToken ] [ Ditch CutsceneWater ]\n[ BaseToken no Base1Token no Base2Token no Base3Token ] [ WaterWheelVertDry ] -> [ BaseToken ] [ FakeWaterWheelVertWet ]\n\n(Start autoplaying)\nRIGHT [ > Player | FakeSwitchOff ] -> [ Player | FakeSwitchOn Timer1 ] sfx1\nRIGHT [ FakeSwitchOn | GateHorizClosed ] -> [ FakeSwitchOn | FakeGateHorizOpenWet ]\nDOWN [ FakeSwitchOn ] [ FakeGateHorizOpenWet | | | | | ] -> [ FakeSwitchOn ] [ FakeGateHorizOpenWet | CutsceneWater | BaseWheel71Wet | BaseWheel72Wet | BaseWheel73Wet | BaseWheel74Wet1 ]\n\n[ BaseToken ] -> [ ]\n\n(Timer countdowns)\n[Timer0] -> win\n[Timer1] -> [Timer0] again\n[Timer2] -> [Timer1] again\n[Timer3] -> [Timer2] again\n[Timer4] -> [Timer3] again\n[Timer5] -> [Timer4] again\n[Timer6] -> [Timer5] again\n[Timer7] -> [Timer6] again\n[Timer8] -> [Timer7] again\n[Timer9] -> [Timer8] again\n\n[SoundTrigger] -> []\n\n\n==============\nWINCONDITIONS\n==============\n\nSome Player on Goal\n\n\n=======\nLEVELS\n=======\n\n(Opening cutscene)\nAAAAAAAAAAAAA六\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\n~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~\n\nAAAAAAAAAAAA⓪一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\n~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~\n\nAAAAAAAAAAAA⓪一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBEBBGBAKLABB\n~~~~~~~~~~~~~~\n\nAAAAAAAAAAAA⓪六\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBEBBGBAKLABB\nABBFBBBBHIIJBB\n\nAAAAAAAAAAAA①一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBYBBGBAKLABB\nABBZBBBBHIIJBB\n\nAAAAAAAAAAAAA一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nA1B0BBGBAKLABB\nA2B0BBBBHIIJBB\n\nAAAAAAAAAAAAA六\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\n\n(tutorial)\n###@######\n#.-......G\n52-......#\n#\\---%D$-6\n#.L.$..#.#\n#...L###.#\n#...-....#\n##########\n\n(1)\n##########Ⅰ\n@....#....#\n#/..U--...#\n51U--%-$D-6\n#...---...#\n#.........G\n###########\n\n(2)\n##################Ⅱ\n51----------------6\n#/...L-%$%$%--....#\n@....---------....G\n#....-#######-....#\n#..-----###-----..#\n#..-----###-----..#\n#..-###-###-###-..#\n#.---#---#---#---.#\n#.---#---#---#---.#\n#.L.-.R.-.-.-.L.R.#\n###################\n\n(3)\n################Ⅲ\n#...$.....-----.#\n#...-#U%---###-.#\n#...-#-$#---#--.#\n#...-#-%-------.#\n#...L#......---.G\n#\\..-#---#####$.#\n51DU%--$%-----$$6\n#/..-#---#####$.#\n@...L#......---.#\n#...-#-%-------.#\n#...-#-$#---#--.#\n#...-#D%---###-.#\n#...$.....-----.#\n#################\n\n(4)\n#############Ⅳ\n#..L--..L--..#\n#.##$#..#$##.#\n#.#---..---#.#\n#..-%-$$-%-..#\n@..-%-..-%-..G\n#/.-%-..-%-..#\n51U---#U-----6\n##############\n\n(5)\n############Ⅴ\n#...L...R...#\n@...-...-...#\n#/..-...-...#\n51U-%---$--U#\n#...-...-...#\n#...-...-...#\n#...-...-...#\n#D--$-U-%---#\n#...L...-...#\n#...-...-...#\n#...R...-...#\n########8#G##\n\n\n(ending cutscene - clocktower base)\n#########7#@#\n#.......\\4..#\n#.......#-..#\n#..Ⓐ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######G#8###\n\n#########7#.一\n#......@/3..④\n#.......#-..#\n#..Ⓒ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######G#8###\n\n#########7#.一\n#......@/3..④\n#.......#-..#\n#..Ⓓ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######.#8###\n\n#########7#.一\n#......@/3..④\n#.......#-..#\n#..Ⓔ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######.#8###\n\n#########7#.一\n#......@/3..④\n#.......#-..#\n#..Ⓓ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######.#8###\n\n\n(ending cutscene - town)\nAAAAAAAAAAAA④一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA④一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA④一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA③一\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA③一\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA③六\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAAA一\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nA1B0BBGBAKLABB\nA2B0BBBBHIIJBB\n\nAAAAAAAAAAAAA一\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBYBBGBAKLABB\nABBZBBBBHIIJBB\n\nAAAAAAAAAAAA②六\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBEBBGBAKLABB\nABBFBBBBHIIJBB\n\n",[3,3,0,1,1,0,0,1,0,3,0,1,1,0,3,3,1,3,2,2,3,3],"background wall:0,0,0,0,0,0,0,background watersource waterwheelhorizwet:1,0,background surface:2,0,0,0,0,0,0,2,\n2,2,2,2,background surface switchon:3,background ditch gatevertopenwet:4,background surface switchoff:5,2,2,2,2,2,0,0,2,2,2,\n2,2,2,background ditch ladderdown water:6,background ladderdowntop surface:7,2,2,2,2,2,0,0,2,2,2,2,background ladderlefttop surface:8,\nbackground ladderuptop surface:9,background ditch ladderup water:10,2,8,2,2,2,2,0,0,background cratesurface surface:11,background ditch water:12,12,12,background ditch ladderleft water:13,12,background ditch playerdrowned water:14,\nbackground block ditch:15,background ditch ladderleft:16,background ditch:17,17,17,background crateditch ditch:18,0,0,2,0,0,0,0,0,12,0,0,\n0,0,0,2,0,0,9,background ditch ladderup:19,17,17,2,12,12,12,2,17,17,\nbackground ditch ladderdown:20,7,0,0,2,15,18,15,2,12,11,12,2,15,18,15,2,\n0,0,2,17,0,17,2,12,15,12,2,17,0,17,2,0,0,\n2,17,17,17,2,0,17,0,2,17,17,17,2,0,0,17,17,\n17,17,2,0,17,0,2,17,17,17,17,0,0,17,0,17,17,\n2,0,17,0,2,17,17,0,17,0,0,17,0,0,17,17,0,\n17,0,17,17,0,0,17,0,0,17,0,17,17,17,0,17,0,\n17,17,17,0,17,0,0,17,17,17,17,17,18,18,18,17,17,\n17,17,17,0,0,2,2,2,2,2,2,18,2,2,2,2,2,\n2,0,background romannumeral3 wall:21,0,0,0,0,background doorclosed goal surface:22,0,background waterwheelhorizdry:23,0,0,0,0,0,0,0,\n",10,"1627770256142.56"] + ["(version 1.0)\ntitle Maera Public Works\nauthor CHz\nhomepage quiteajolt.com\n\nbackground_color DarkBlue\nrun_rules_on_level_start\nagain_interval 0.25\n\n\n========\nOBJECTS\n========\n\nBackground \nBlack\n\nSurface\n#DDDDDD\n\nWall \n#222222\n\nRomanNumeral1\n#FF0000\n.....\n..0..\n..0..\n..0..\n.....\n\nRomanNumeral2\n#FF0000\n.....\n.0.0.\n.0.0.\n.0.0.\n.....\n\nRomanNumeral3\n#FF0000\n.....\n0.0.0\n0.0.0\n0.0.0\n.....\n\nRomanNumeral4\n#FF0000\n.....\n0.0.0\n0.0.0\n0..0.\n.....\n\nRomanNumeral5\n#FF0000\n.....\n.0.0.\n.0.0.\n..0..\n.....\n\n\nWaterWheelHorizWet\n#555500 #777700 #0080FF\n22022\n00000\n01010\n00000\n22022\n\nWaterWheelHorizDry\n#555500 #777700 #999999\n22022\n00000\n01010\n00000\n22022\n\nWaterWheelVertWet\n#555500 #777700 #0080FF\n20002\n20102\n00000\n20102\n20002\n\nWaterWheelVertDry\n#555500 #777700 #999999\n20002\n20102\n00000\n20102\n20002\n\nWaterSource\nTransparent\n\n\nDitch\n#999999\n\nWater\n#0080FF\n\nSwitchOn\n#222222 #999999\n...1.\n...1.\n..1..\n.000.\n.....\n\nSwitchOff\n#222222 #999999\n.1...\n.1...\n..1..\n.000.\n.....\n\nSwitchToggleToken\nTransparent\n\n\nGateVertOpen\n#444444\n.000.\n.....\n.....\n.....\n.000.\n\nGateVertOpenWet\n#444444 #0080FF\n10001\n11111\n11111\n11111\n10001\n\nGateVertClosed\n#444444\n.000.\n.000.\n.000.\n.000.\n.000.\n\nGateVertClosedLeft\n#444444 #0080FF\n1000.\n1000.\n1000.\n1000.\n1000.\n\nGateVertClosedRight\n#444444 #0080FF\n.0001\n.0001\n.0001\n.0001\n.0001\n\nGateHorizOpen\n#444444\n.....\n0...0\n0...0\n0...0\n.....\n\nGateHorizOpenWet\n#444444 #0080FF\n11111\n01110\n01110\n01110\n11111\n\nGateHorizClosed\n#444444\n.....\n00000\n00000\n00000\n.....\n\nGateHorizClosedUp\n#444444 #0080FF\n11111\n00000\n00000\n00000\n.....\n\nGateHorizClosedDown\n#444444 #0080FF\n.....\n00000\n00000\n00000\n11111\n\n\nCrateDitch\n#F0B030 #D06000\n.....\n.111.\n.101.\n.111.\n.....\n\nCrateSurface\n#F0E060 #F08000 #0080FF\n21112\n10001\n10001\n10001\n21112\n\nBlock\n#555555 #222222\n11111\n10001\n10001\n10001\n11111\n\nBlockSurface\n#555555 #222222\n11111\n10001\n10001\n10001\n11111\n\n\nLadderUpTop\nBrown\n.....\n.....\n.....\n.....\n.000.\n\nLadderUp\nBrown\n..0..\n..0..\n..0..\n..0..\n.....\n\nLadderDown\nBrown\n.....\n..0..\n..0..\n..0..\n..0..\n\nLadderDownTop\nBrown\n.000.\n.....\n.....\n.....\n.....\n\nLadderLeft\nBrown\n.....\n.....\n0000.\n.....\n.....\n\nLadderLeftTop\nBrown\n.....\n....0\n....0\n....0\n.....\n\nLadderRight\nBrown\n.....\n.....\n.0000\n.....\n.....\n\nLadderRightTop\nBrown\n.....\n0....\n0....\n0....\n.....\n\n\nPlayerSurface\n#009020\n..0..\n.000.\n00000\n.000.\n..0..\n\nPlayerDitch\n#007010\n.....\n..0..\n.000.\n..0..\n.....\n\nPlayerDrowned\nDarkBrown\n.....\n..0..\n.000.\n..0..\n.....\n\n\nGoal\nTransparent\n\nDoorClosed\n#444444\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n\n\nTimer9\nTransparent\n\nTimer8\nTransparent\n\nTimer7\nTransparent\n\nTimer6\nTransparent\n\nTimer5\nTransparent\n\nTimer4\nTransparent\n\nTimer3\nTransparent\n\nTimer2\nTransparent\n\nTimer1\nTransparent\n\nTimer0\nTransparent\n\n\nBase1Token\nTransparent\n\nBase2Token\nTransparent\n\nBase3Token\nTransparent\n\nBase4Token\nTransparent\n\nBase5Token\nTransparent\n\nFakeSwitchOff\n#222222 #999999\n.1...\n.1...\n..1..\n.000.\n.....\n\nFakeSwitchOn\n#222222 #999999\n...1.\n...1.\n..1..\n.000.\n.....\n\nFakeWaterWheelVertWet\n#555500 #777700 #0080FF\n20002\n20102\n00000\n20102\n20002\n\nFakeGateHorizOpenWet\n#444444 #0080FF\n11111\n01110\n01110\n01110\n11111\n\nFakeDoorClosed\n#444444\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n\nBaseWheel11\nDarkBrown\n.....\n.....\n...00\n..000\n..000\n\nBaseWheel21\nDarkBrown\n.....\n.....\n.....\n0...0\n00.00\n\nBaseWheel31\nDarkBrown\n.....\n.....\n..000\n00000\n00...\n\nBaseWheel41\nDarkBrown\n.000.\n.000.\n00000\n00000\n.000.\n\nBaseWheel51\nDarkBrown\n.....\n.....\n000..\n00000\n...00\n\nBaseWheel61\nDarkBrown\n.....\n.....\n.....\n0...0\n00.00\n\nBaseWheel71\nDarkBrown\n.....\n.....\n00...\n000..\n000..\n\nBaseWheel71Wet\nDarkBrown #0080FF\n11111\n11111\n00111\n00011\n00011\n\nBaseWheel12\nDarkBrown\n...00\n....0\n.....\n....0\n...00\n\nBaseWheel22\nDarkBrown\n00000\n0000.\n00000\n00000\n0.000\n\nBaseWheel32\nDarkBrown\n.....\n.....\n.....\n0....\n00...\n\nBaseWheel42\nDarkBrown\n.000.\n.000.\n.000.\n.000.\n.000.\n\nBaseWheel52\nDarkBrown\n.....\n.....\n.....\n....0\n...00\n\nBaseWheel62\nDarkBrown\n00000\n.0000\n00000\n00000\n000.0\n\nBaseWheel72\nDarkBrown\n00...\n0....\n.....\n0....\n00...\n\nBaseWheel72Wet\nDarkBrown #0080FF\n00111\n01111\n11111\n01111\n00111\n\nBaseWheel13\nDarkBrown\n...00\n...00\n..00.\n..00.\n..00.\n\nBaseWheel23\nDarkBrown\n...00\n....0\n.....\n.....\n.....\n\nBaseWheel33\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheel43\nDarkBrown\n00000\n00000\n.000.\n00000\n00000\n\nBaseWheel53\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheel63\nDarkBrown\n00...\n0....\n.....\n.....\n.....\n\nBaseWheel73\nDarkBrown\n00...\n00...\n.00..\n.00..\n.00..\n\nBaseWheel73Wet\nDarkBrown #0080FF\n00111\n00111\n.0011\n.0011\n.0011\n\nBaseWheel14\nDarkBrown\n..00.\n00000\n00000\n00000\n..00.\n\nBaseWheel24\nDarkBrown\n.....\n00000\n00000\n00000\n.....\n\nBaseWheel34\nDarkBrown\n00.00\n00000\n00000\n00000\n00.00\n\nBaseWheel44\nDarkBrown DarkGray\n00000\n01110\n01110\n01110\n00000\n\nBaseWheel54\nDarkBrown\n00.00\n00000\n00000\n00000\n00.00\n\nBaseWheel64\nDarkBrown\n.....\n00000\n00000\n00000\n.....\n\nBaseWheel74\nDarkBrown\n.00..\n00000\n00000\n00000\n.00..\n\nBaseWheel74Wet1\nDarkBrown #0080FF\n.0011\n00000\n00000\n00000\n.00..\n\nBaseWheel74Wet2\nDarkBrown #0080FF\n.0011\n00000\n00000\n00000\n.0011\n\nBaseWheel15\nDarkBrown\n..00.\n..00.\n..00.\n...00\n...00\n\nBaseWheel25\nDarkBrown\n.....\n.....\n.....\n....0\n...00\n\nBaseWheel35\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheel45\nDarkBrown\n00000\n00000\n.000.\n00000\n00000\n\nBaseWheel55\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheel65\nDarkBrown\n.....\n.....\n.....\n0....\n00...\n\nBaseWheel75\nDarkBrown\n.00..\n.00..\n.00..\n00...\n00...\n\nBaseWheel75Wet\nDarkBrown #0080FF\n.0011\n.0011\n.0011\n00111\n00111\n\nBaseWheel16\nDarkBrown\n...00\n....0\n.....\n....0\n...00\n\nBaseWheel26\nDarkBrown\n0.000\n00000\n00000\n0000.\n00000\n\nBaseWheel36\nDarkBrown\n00...\n0....\n.....\n.....\n.....\n\nBaseWheel46\nDarkBrown\n.000.\n.000.\n.000.\n.000.\n.000.\n\nBaseWheel56\nDarkBrown\n...00\n....0\n.....\n.....\n.....\n\nBaseWheel66\nDarkBrown\n000.0\n00000\n00000\n.0000\n00000\n\nBaseWheel76\nDarkBrown\n00...\n0....\n.....\n0....\n00...\n\nBaseWheel76Wet\nDarkBrown #0080FF\n00111\n01111\n11111\n01111\n00111\n\nBaseWheel17\nDarkBrown\n..000\n..000\n...00\n.....\n.....\n\nBaseWheel27\nDarkBrown\n00.00\n0...0\n.....\n.....\n.....\n\nBaseWheel37\nDarkBrown\n00...\n00000\n..000\n.....\n.....\n\nBaseWheel47\nDarkBrown\n.000.\n00000\n00000\n.000.\n.000.\n\nBaseWheel57\nDarkBrown\n...00\n00000\n000..\n.....\n.....\n\nBaseWheel67\nDarkBrown\n00.00\n0...0\n.....\n.....\n.....\n\nBaseWheel77\nDarkBrown\n000..\n000..\n00...\n.....\n.....\n\nBaseWheel77Wet\nDarkBrown #0080FF\n00011\n00011\n00111\n11111\n11111\n\nBaseWheelT11\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT21\nDarkBrown\n..000\n...00\n...00\n...00\n...00\n\nBaseWheelT31\nDarkBrown\n.....\n0....\n00000\n00000\n000..\n\nBaseWheelT41\nDarkBrown\n.....\n.....\n00000\n00000\n.....\n\nBaseWheelT51\nDarkBrown\n.....\n....0\n00000\n00000\n..000\n\nBaseWheelT61\nDarkBrown\n000..\n00...\n00...\n00...\n00...\n\nBaseWheelT71\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT71Wet\nDarkBrown #0080FF\n11111\n11111\n11111\n11111\n11111\n\nBaseWheelT12\nDarkBrown\n.....\n.....\n0...0\n00000\n00000\n\nBaseWheelT22\nDarkBrown\n..000\n.000.\n00...\n00...\n0....\n\nBaseWheelT32\nDarkBrown\n000..\n0000.\n.000.\n.0000\n..000\n\nBaseWheelT42\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT52\nDarkBrown\n..000\n.0000\n.000.\n0000.\n000..\n\nBaseWheelT62\nDarkBrown\n000..\n.000.\n...00\n...00\n....0\n\nBaseWheelT72\nDarkBrown\n.....\n.....\n....0\n00000\n00000\n\nBaseWheelT72Wet\nDarkBrown #0080FF\n11111\n11111\n11110\n00000\n00000\n\nBaseWheelT13\nDarkBrown\n.0000\n..000\n..000\n..00.\n..00.\n\nBaseWheelT23\nDarkBrown\n00...\n0000.\n00000\n.0000\n...00\n\nBaseWheelT33\nDarkBrown\n..000\n..000\n00000\n000.0\n00000\n\nBaseWheelT43\nDarkBrown\n00000\n00000\n00.00\n00.00\n00000\n\nBaseWheelT53\nDarkBrown\n000..\n000..\n00000\n0.000\n00000\n\nBaseWheelT63\nDarkBrown\n...00\n.0000\n00000\n0000.\n00...\n\nBaseWheelT73\nDarkBrown\n0000.\n000..\n000..\n.00..\n.00..\n\nBaseWheelT73Wet\nDarkBrown #0080FF\n00001\n00011\n00011\n.0011\n.0011\n\nBaseWheelT14\nDarkBrown\n..00.\n..00.\n..00.\n..00.\n..00.\n\nBaseWheelT24\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT34\nDarkBrown\n00000\n00000\n00..0\n00000\n00000\n\nBaseWheelT44\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheelT54\nDarkBrown\n00000\n00000\n0..00\n00000\n00000\n\nBaseWheelT64\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT74\nDarkBrown\n.00..\n.00..\n.00..\n.00..\n.00..\n\nBaseWheelT74Wet\nDarkBrown #0080FF\n.0011\n.0011\n.0011\n.0011\n.0011\n\nBaseWheelT15\nDarkBrown\n..00.\n..00.\n..000\n..000\n.0000\n\nBaseWheelT25\nDarkBrown\n...00\n.0000\n00000\n0000.\n00...\n\nBaseWheelT35\nDarkBrown\n00000\n000.0\n00000\n..000\n..000\n\nBaseWheelT45\nDarkBrown\n00000\n00.00\n00.00\n00000\n00000\n\nBaseWheelT55\nDarkBrown\n00000\n0.000\n00000\n00...\n00...\n\nBaseWheelT65\nDarkBrown\n00...\n0000.\n00000\n.0000\n...00\n\nBaseWheelT75\nDarkBrown\n.00..\n.00..\n000..\n000..\n0000.\n\nBaseWheelT75Wet\nDarkBrown #0080FF\n.0011\n.0011\n00011\n00011\n00001\n\nBaseWheelT16\nDarkBrown\n00000\n00000\n0....\n.....\n.....\n\nBaseWheelT26\nDarkBrown\n0....\n00...\n00...\n.000.\n..000\n\nBaseWheelT36\nDarkBrown\n..000\n.0000\n.000.\n0000.\n000..\n\nBaseWheelT46\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT56\nDarkBrown\n000..\n0000.\n.000.\n.0000\n..000\n\nBaseWheelT66\nDarkBrown\n....0\n...00\n...00\n.000.\n00...\n\nBaseWheelT76\nDarkBrown\n00000\n00000\n....0\n.....\n.....\n\nBaseWheelT76Wet\nDarkBrown #0080FF\n00000\n00000\n11110\n11111\n11111\n\nBaseWheelT17\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT27\nDarkBrown\n...00\n...00\n...00\n...00\n..000\n\nBaseWheelT37\nDarkBrown\n000..\n00000\n00000\n0....\n.....\n\nBaseWheelT47\nDarkBrown\n.....\n00000\n00000\n.....\n.....\n\nBaseWheelT57\nDarkBrown\n..000\n00000\n00000\n....0\n.....\n\nBaseWheelT67\nDarkBrown\n00...\n00...\n00...\n00...\n000..\n\nBaseWheelT77\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT77Wet\nDarkBrown #0080FF\n11111\n11111\n11111\n11111\n11111\n\n\n\n\n\nCutsceneBackground\nGreen\n\nHouse\nDarkBrown\n\nHouseRoofLeft\nDarkBrown\n.....\n....0\n...00\n..000\n.0000\n\nHouseRoofRight\nDarkBrown\n.....\n0....\n00...\n000..\n0000.\n\nWindow\nLightBlue\n\nDoorClosedTop\nDarkBrown #383020\n11111\n10001\n10001\n10001\n10001\n\nDoorClosedBottom\nDarkBrown #383020\n10001\n10001\n10001\n10001\n10001\n\nRoadLeft\n#E0D010\n....0\n...00\n..000\n.0000\n00000\n\nRoad\n#E0D010\n\nRoadRight\n#E0D010\n.....\n0....\n00...\n000..\n0000.\n\nClockTowerLeft\n#252525\n\nClockTowerRight\n#252525\n0000.\n0000.\n0000.\n0000.\n0000.\n\nClock11\n#252525 White\n.....\n....0\n...00\n..000\n..001\n\nClock21\n#252525 White\n00000\n00000\n01111\n11101\n11101\n\nClock21b\n#252525 White\n00000\n00000\n01111\n11110\n11110\n\nClock31\n#252525 White\n0000.\n00000\n11100\n11110\n11111\n\nClock41\n#252525 White\n.....\n.....\n0....\n00...\n00...\n\nClock12\n#252525 White\n..001\n..001\n..001\n..001\n..001\n\nClock22\n#252525 White\n11110\n11110\n11110\n11111\n11111\n\nClock32\n#252525 White\n11111\n11111\n00011\n11111\n11111\n\nClock42\n#252525 White\n00...\n00...\n00...\n00...\n00...\n\nClock13\n#252525 White\n..001\n..000\n...00\n....0\n.....\n\nClock23\n#252525 White\n11111\n11111\n01111\n00000\n00000\n\nClock33\n#252525 White\n11111\n11110\n11100\n00000\n0000.\n\nClock43\n#252525 White\n00...\n00...\n0....\n.....\n.....\n\nDoorOpen\nBlack\n\nCutsceneWater\n#0080FF\n\nPlayerHead\n#009020 White\n..0..\n.000.\n00000\n.000.\n.101.\n\nPlayerBody\n#009020 White\n.111.\n.111.\n.111.\n.1.1.\n.1.1.\n\n\nSoundTrigger0\nTransparent\n\nSoundTrigger1\nTransparent\n\nSoundTrigger2\nTransparent\n\nSoundTrigger3\nTransparent\n\nSoundTrigger4\nTransparent\n\n\n=======\nLEGEND\n=======\n\n! = Background\n\n. = Surface\n# = Wall\n\nⅠ = Wall AND RomanNumeral1\nⅡ = Wall AND RomanNumeral2\nⅢ = Wall AND RomanNumeral3\nⅣ = Wall AND RomanNumeral4\nⅤ = Wall AND RomanNumeral5\nRomanNumeral = RomanNumeral1 OR RomanNumeral2 OR RomanNumeral3 OR RomanNumeral4 OR RomanNumeral5\n\n5 = WaterWheelHorizWet AND WaterSource\n6 = WaterWheelHorizDry\n7 = WaterWheelVertWet AND WaterSource\n8 = WaterWheelVertDry\nWaterWheel = WaterWheelHorizWet OR WaterWheelHorizDry OR WaterWheelVertWet OR WaterWheelVertDry OR FakeWaterWheelVertWet\nWaterPropagator = Water OR CrateSurface OR WaterSource OR GateVertOpenWet OR GateHorizOpenWet\n\n- = Ditch\n1 = GateVertOpen AND Ditch\n2 = GateVertClosed AND Ditch\n3 = GateHorizOpen AND Ditch\n4 = GateHorizClosed AND Ditch\n\n$ = CrateDitch AND Ditch\nCrate = CrateDitch OR CrateSurface\n% = Block AND Ditch\n\nPushable = CrateDitch OR Block\n\n/ = SwitchOn AND Surface\n\\ = SwitchOff AND Surface\nSwitch = SwitchOn OR SwitchOff OR FakeSwitchOn OR FakeSwitchOff\n\nU = LadderUp AND Ditch\nD = LadderDown AND Ditch\nL = LadderLeft AND Ditch\nR = LadderRight AND Ditch\nLadder = LadderUp OR LadderDown OR LadderLeft OR LadderRight\n\nGate = GateVertOpen OR GateVertOpenWet OR GateVertClosed OR GateVertClosedLeft OR GateVertClosedRight OR GateHorizOpen OR GateHorizOpenWet OR GateHorizClosed OR GateHorizClosedUp OR GateHorizClosedDown OR FakeGateHorizOpenWet\n\n@ = PlayerSurface AND Surface\nPlayer = PlayerSurface OR PlayerDitch\n\nG = Goal AND Surface\n\n一 = Timer1 AND CutsceneBackground\n二 = Timer2 AND CutsceneBackground\n三 = Timer3 AND CutsceneBackground\n四 = Timer4 AND CutsceneBackground\n五 = Timer5 AND CutsceneBackground\n六 = Timer6 AND CutsceneBackground\n七 = Timer7 AND CutsceneBackground\n八 = Timer8 AND CutsceneBackground\n九 = Timer9 AND CutsceneBackground\nTimer = Timer1 OR Timer2 OR Timer3 OR Timer4 OR Timer5 OR Timer6 OR Timer7 OR Timer8 OR Timer9 OR Timer0\n\nⒶ = BaseWheel11 AND Base1Token AND Ditch\nⒷ = BaseWheel11 AND Base2Token AND Ditch\nⒸ = BaseWheelT11 AND Base3Token AND Ditch\nⒹ = BaseWheel11 AND Base4Token AND Ditch\nⒺ = BaseWheelT11 AND Base5Token AND Ditch\nBaseToken = Base1Token OR Base2Token OR Base3Token OR Base4Token OR Base5Token\nBaseWheel = BaseWheel11 OR BaseWheel21 OR BaseWheel31 OR BaseWheel41 OR BaseWheel51 OR BaseWheel61 OR BaseWheel71 OR BaseWheel12 OR BaseWheel22 OR BaseWheel32 OR BaseWheel42 OR BaseWheel52 OR BaseWheel62 OR BaseWheel72 OR BaseWheel13 OR BaseWheel23 OR BaseWheel33 OR BaseWheel43 OR BaseWheel53 OR BaseWheel63 OR BaseWheel73 OR BaseWheel14 OR BaseWheel24 OR BaseWheel34 OR BaseWheel44 OR BaseWheel54 OR BaseWheel64 OR BaseWheel74 OR BaseWheel15 OR BaseWheel25 OR BaseWheel35 OR BaseWheel45 OR BaseWheel55 OR BaseWheel65 OR BaseWheel75 OR BaseWheel16 OR BaseWheel26 OR BaseWheel36 OR BaseWheel46 OR BaseWheel56 OR BaseWheel66 OR BaseWheel76 OR BaseWheel17 OR BaseWheel27 OR BaseWheel37 OR BaseWheel47 OR BaseWheel57 OR BaseWheel67 OR BaseWheel77 OR BaseWheel71Wet OR BaseWheel72Wet OR BaseWheel73Wet OR BaseWheel74Wet1 OR BaseWheel74Wet2 OR BaseWheel75Wet OR BaseWheel76Wet OR BaseWheel77Wet OR BaseWheelT11 OR BaseWheelT21 OR BaseWheelT31 OR BaseWheelT41 OR BaseWheelT51 OR BaseWheelT61 OR BaseWheelT71 OR BaseWheelT12 OR BaseWheelT22 OR BaseWheelT32 OR BaseWheelT42 OR BaseWheelT52 OR BaseWheelT62 OR BaseWheelT72 OR BaseWheelT13 OR BaseWheelT23 OR BaseWheelT33 OR BaseWheelT43 OR BaseWheelT53 OR BaseWheelT63 OR BaseWheelT73 OR BaseWheelT14 OR BaseWheelT24 OR BaseWheelT34 OR BaseWheelT44 OR BaseWheelT54 OR BaseWheelT64 OR BaseWheelT74 OR BaseWheelT15 OR BaseWheelT25 OR BaseWheelT35 OR BaseWheelT45 OR BaseWheelT55 OR BaseWheelT65 OR BaseWheelT75 OR BaseWheelT16 OR BaseWheelT26 OR BaseWheelT36 OR BaseWheelT46 OR BaseWheelT56 OR BaseWheelT66 OR BaseWheelT76 OR BaseWheelT17 OR BaseWheelT27 OR BaseWheelT37 OR BaseWheelT47 OR BaseWheelT57 OR BaseWheelT67 OR BaseWheelT77 OR BaseWheelT71Wet OR BaseWheelT72Wet OR BaseWheelT73Wet OR BaseWheelT74Wet OR BaseWheelT75Wet OR BaseWheelT76Wet OR BaseWheelT77Wet\n\nA = CutsceneBackground\nB = House AND CutsceneBackground\nC = HouseRoofLeft AND CutsceneBackground\nD = HouseRoofRight AND CutsceneBackground\nE = DoorClosedTop AND CutsceneBackground\nF = DoorClosedBottom AND CutsceneBackground\nG = Window AND CutsceneBackground\nH = RoadLeft AND CutsceneBackground\nI = Road AND CutsceneBackground\nJ = RoadRight AND CutsceneBackground\nK = ClockTowerLeft AND CutsceneBackground\nL = ClockTowerRight AND CutsceneBackground\nM = Clock11 AND CutsceneBackground\nN = Clock21 AND CutsceneBackground\nO = Clock31 AND CutsceneBackground\nP = Clock41 AND CutsceneBackground\nQ = Clock12 AND CutsceneBackground\nR = Clock22 AND CutsceneBackground\nS = Clock32 AND CutsceneBackground\nT = Clock42 AND CutsceneBackground\nU = Clock13 AND CutsceneBackground\nV = Clock23 AND CutsceneBackground\nW = Clock33 AND CutsceneBackground\nX = Clock43 AND CutsceneBackground\nY = DoorOpen AND PlayerHead AND CutsceneBackground\nZ = DoorOpen AND PlayerBody AND CutsceneBackground\n0 = DoorOpen AND CutsceneBackground\n1 = House AND PlayerHead AND CutsceneBackground\n2 = House AND PlayerBody AND CutsceneBackground\n3 = Clock21b AND CutsceneBackground\n~ = CutsceneWater AND CutsceneBackground\n\n⓪ = SoundTrigger0 AND CutsceneBackground\n① = SoundTrigger1 AND CutsceneBackground\n② = SoundTrigger2 AND CutsceneBackground\n③ = SoundTrigger3 AND CutsceneBackground\n④ = SoundTrigger4 AND CutsceneBackground\nSoundTrigger = SoundTrigger0 OR SoundTrigger1 OR SoundTrigger2 OR SoundTrigger3 OR SoundTrigger4\n\n=======\nSOUNDS\n=======\n\nPlayerSurface create 48266305 (climb up)\nPlayerDitch create 41817501 (climb down)\n\n(water movement)\nSwitchOn create 36552908\nSwitchOff create 36552908\nSoundTrigger0 destroy 36552908\nsfx1 36552908\n\nPlayerDrowned create 36552908 (play water movement too)\nPlayerDrowned create 66299108 (u ded)\n\nSoundTrigger1 destroy 56950107 (open door)\nSoundTrigger2 destroy 73601104 (close door)\n\nSoundTrigger3 destroy 20889900 (chime)\n\nSoundTrigger4 destroy 25204707 (wheel click)\n\nsfx0 9950900 (finish a puzzle level)\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nCutsceneBackground\nSurface, Ditch\nLadder\nLadderUpTop (tops all on separate layers so more than one can be on one tile)\nLadderDownTop\nLadderLeftTop\nLadderRightTop\nCrateSurface, BlockSurface\nPlayer, Wall, Water, Gate, Switch, CrateDitch, Block, WaterWheel, DoorClosed, FakeDoorClosed, BaseWheel\nGoal\nSwitchToggleToken, BaseToken\nWaterSource\nTimer, RomanNumeral, PlayerDrowned\nHouse, HouseRoofLeft, HouseRoofRight, DoorClosedTop, DoorClosedBottom, Window, RoadLeft, Road, RoadRight, ClockTowerLeft, ClockTowerRight, Clock11, Clock21, Clock21b, Clock31, Clock41, Clock12, Clock22, Clock32, Clock42, Clock13, Clock23, Clock33, Clock43, DoorOpen, CutsceneWater\nPlayerHead, PlayerBody\nSoundTrigger\n\n\n======\nRULES\n======\n\n(================\nLEVEL GENERATION\n================)\n\n(Generate the tops of the ladders.)\nDOWN [ | LadderUp ] -> [ LadderUpTop | LadderUp ]\nDOWN [ LadderDown | ] -> [ LadderDown | LadderDownTop ]\nRIGHT [ | LadderLeft ] -> [ LadderLeftTop | LadderLeft ]\nRIGHT [ LadderRight | ] -> [ LadderRight | LadderRightTop ]\n\n\n(========\nMOVEMENT\n========)\n\n(Convert blocks to and from fake surfaces when the player walks on and off them, because layers.)\n[ > Player Surface | Block Ditch ] -> [ > Player Surface | BlockSurface Surface ]\nLATE [ BlockSurface Surface no Player ] -> [ Block Ditch ]\n\n(Shove crates and blocks. They can never move to the surface.)\n[ > PlayerDitch | Pushable ] -> [ > PlayerDitch | > Pushable ]\n[ > Pushable | Surface ] -> [ Pushable | Surface ]\n\n(Cancel movement if the player walks into the void.)\n[ > Player | no Surface no Ditch ] -> [ Player | ]\n\n(Cancel movement if a player on the surface tries to move into a ditch without using a ladder.)\nDOWN [ > Player Surface | Ditch no LadderUp ] -> [ Player Surface | Ditch ]\nUP [ > Player Surface | Ditch no LadderDown ] -> [ Player Surface | Ditch ]\nLEFT [ > Player Surface | Ditch no LadderRight ] -> [ Player Surface | Ditch ]\nRIGHT [ > Player Surface | Ditch no LadderLeft ] -> [ Player Surface | Ditch ]\n\n(Cancel movement if a player in a ditch tries to move to the surface without using a ladder.)\nDOWN [ > Player Ditch no LadderDown | Surface ] -> [ Player Ditch | Surface ]\nUP [ > Player Ditch no LadderUp | Surface ] -> [ Player Ditch | Surface ]\nLEFT [ > Player Ditch no LadderLeft | Surface ] -> [ Player Ditch | Surface ]\nRIGHT [ > Player Ditch no LadderRight | Surface ] -> [ Player Ditch | Surface ]\n\n(Change the player sprite based on their height.)\nLATE [ PlayerSurface Ditch ] -> [ PlayerDitch Ditch ]\nLATE [ PlayerDitch Surface ] -> [ PlayerSurface Surface ]\n\n(Play a sound when the player finishes a puzzle level. Done like this so it doesn't happen on the cutscene levels.)\nLATE [ Player Goal ] -> sfx0\n\n\n(=============\nSPLISH SPLASH\n=============)\n\n(Get started by marking that we're toggling and clearing current water)\n[ > Player Surface | Switch ] -> [ > Player Surface | Switch SwitchToggleToken ]\n[ SwitchToggleToken ] [ Water ] -> [ SwitchToggleToken ] [ ]\n[ SwitchToggleToken ] [ GateVertOpenWet ] -> [ SwitchToggleToken ] [ GateVertOpen ]\n[ SwitchToggleToken ] [ GateVertClosedLeft ] -> [ SwitchToggleToken ] [ GateVertClosed ]\n[ SwitchToggleToken ] [ GateVertClosedRight ] -> [ SwitchToggleToken ] [ GateVertClosed ]\n[ SwitchToggleToken ] [ GateHorizOpenWet ] -> [ SwitchToggleToken ] [ GateHorizOpen ]\n[ SwitchToggleToken ] [ GateHorizClosedUp ] -> [ SwitchToggleToken ] [ GateHorizClosed ]\n[ SwitchToggleToken ] [ GateHorizClosedDown ] -> [ SwitchToggleToken ] [ GateHorizClosed ]\n[ SwitchToggleToken ] [ WaterWheelVertWet no WaterSource ] -> [ SwitchToggleToken ] [ WaterWheelVertDry ]\n[ SwitchToggleToken ] [ WaterWheelHorizWet no WaterSource ] -> [ SwitchToggleToken ] [ WaterWheelHorizDry ]\n[ SwitchToggleToken ] [ CrateSurface Surface ] -> [ SwitchToggleToken ] [ CrateDitch Ditch ]\n\n(Open the associated gate and send the water along.)\n[ SwitchOff SwitchToggleToken | GateVertClosed ] -> [ SwitchOff SwitchToggleToken | GateVertOpen ]\n[ SwitchOff SwitchToggleToken | GateHorizClosed ] -> [ SwitchOff SwitchToggleToken | GateHorizOpen ]\nstartloop\n\t(This water propagation is bad lmao, don't worry about it)\n\t(We do this LATE so we can propagate after a player moves a block.)\n\tLATE [ WaterPropagator | Ditch no Water no Gate no Crate no Block no Player ] -> [ WaterPropagator | Ditch Water ]\n LATE [ WaterPropagator | PlayerDitch ] -> [ WaterPropagator | PlayerDrowned ]\n\tLATE [ WaterPropagator | CrateDitch Ditch ] -> [ WaterPropagator | CrateSurface Surface ]\n LATE [ WaterPropagator | GateVertOpen ] -> [ WaterPropagator | GateVertOpenWet ]\n LATE RIGHT [ WaterPropagator | GateVertClosed ] -> [ WaterPropagator | GateVertClosedLeft ]\n LATE RIGHT [ GateVertClosed | WaterPropagator ] -> [ GateVertClosedRight | WaterPropagator ]\n LATE [ WaterPropagator | GateHorizOpen ] -> [ WaterPropagator | GateHorizOpenWet ]\n LATE DOWN [ WaterPropagator | GateHorizClosed ] -> [ WaterPropagator | GateHorizClosedUp ]\n LATE DOWN [ GateHorizClosed | WaterPropagator ] -> [ GateHorizClosedDown | WaterPropagator ]\nendloop\nLATE [ WaterPropagator | WaterWheelVertDry ] -> [ WaterPropagator | WaterWheelVertWet ]\nLATE [ WaterPropagator | WaterWheelHorizDry ] -> [ WaterPropagator | WaterWheelHorizWet ]\n[ SwitchOff SwitchToggleToken ] -> [ SwitchOn ]\n\n(Close the associated gate.)\n[ SwitchOn SwitchToggleToken | GateVertOpen ] -> [ SwitchOn SwitchToggleToken | GateVertClosed ]\n[ SwitchOn SwitchToggleToken | GateHorizOpen ] -> [ SwitchOn SwitchToggleToken | GateHorizClosed ]\n[ SwitchOn SwitchToggleToken ] -> [ SwitchOff ]\n\n(Open/close the door depending on whether the water wheel is powered.)\nLATE [ Goal DoorClosed ] -> [ Goal ]\nLATE [ WaterWheelVertDry ] [ Goal ] -> [ WaterWheelVertDry ] [ Goal DoorClosed ]\nLATE [ WaterWheelHorizDry ] [ Goal ] -> [ WaterWheelHorizDry ] [ Goal DoorClosed ]\n\n\n(=========\nCUTSCENES\n=========)\n\n(Wheel generation for the base levels - #1)\nRIGHT [ Base1Token ] [ BaseWheel11 | | | | | | ] -> [ Base1Token ] [ BaseWheel11 | BaseWheel21 | BaseWheel31 | BaseWheel41 | BaseWheel51 | BaseWheel61 | BaseWheel71 ]\nDOWN [ Base1Token ] [ BaseWheel11 | | | | | | ] -> [ Base1Token ] [ BaseWheel11 | BaseWheel12 | BaseWheel13 | BaseWheel14 | BaseWheel15 | BaseWheel16 | BaseWheel17 ]\nDOWN [ Base1Token ] [ BaseWheel21 | | | | | | ] -> [ Base1Token ] [ BaseWheel21 | BaseWheel22 | BaseWheel23 | BaseWheel24 | BaseWheel25 | BaseWheel26 | BaseWheel27 ]\nDOWN [ Base1Token ] [ BaseWheel31 | | | | | | ] -> [ Base1Token ] [ BaseWheel31 | BaseWheel32 | BaseWheel33 | BaseWheel34 | BaseWheel35 | BaseWheel36 | BaseWheel37 ]\nDOWN [ Base1Token ] [ BaseWheel41 | | | | | | ] -> [ Base1Token ] [ BaseWheel41 | BaseWheel42 | BaseWheel43 | BaseWheel44 | BaseWheel45 | BaseWheel46 | BaseWheel47 ]\nDOWN [ Base1Token ] [ BaseWheel51 | | | | | | ] -> [ Base1Token ] [ BaseWheel51 | BaseWheel52 | BaseWheel53 | BaseWheel54 | BaseWheel55 | BaseWheel56 | BaseWheel57 ]\nDOWN [ Base1Token ] [ BaseWheel61 | | | | | | ] -> [ Base1Token ] [ BaseWheel61 | BaseWheel62 | BaseWheel63 | BaseWheel64 | BaseWheel65 | BaseWheel66 | BaseWheel67 ]\nDOWN [ Base1Token ] [ BaseWheel71 | | | | | | ] -> [ Base1Token ] [ BaseWheel71 | BaseWheel72 | BaseWheel73 | BaseWheel74 | BaseWheel75 | BaseWheel76 | BaseWheel77 ]\n\n(Wheel generation for the base levels - #2)\nRIGHT [ Base2Token ] [ BaseWheel11 | | | | | | ] -> [ Base2Token ] [ BaseWheel11 | BaseWheel21 | BaseWheel31 | BaseWheel41 | BaseWheel51 | BaseWheel61 | BaseWheel71Wet ]\nDOWN [ Base2Token ] [ BaseWheel11 | | | | | | ] -> [ Base2Token ] [ BaseWheel11 | BaseWheel12 | BaseWheel13 | BaseWheel14 | BaseWheel15 | BaseWheel16 | BaseWheel17 ]\nDOWN [ Base2Token ] [ BaseWheel21 | | | | | | ] -> [ Base2Token ] [ BaseWheel21 | BaseWheel22 | BaseWheel23 | BaseWheel24 | BaseWheel25 | BaseWheel26 | BaseWheel27 ]\nDOWN [ Base2Token ] [ BaseWheel31 | | | | | | ] -> [ Base2Token ] [ BaseWheel31 | BaseWheel32 | BaseWheel33 | BaseWheel34 | BaseWheel35 | BaseWheel36 | BaseWheel37 ]\nDOWN [ Base2Token ] [ BaseWheel41 | | | | | | ] -> [ Base2Token ] [ BaseWheel41 | BaseWheel42 | BaseWheel43 | BaseWheel44 | BaseWheel45 | BaseWheel46 | BaseWheel47 ]\nDOWN [ Base2Token ] [ BaseWheel51 | | | | | | ] -> [ Base2Token ] [ BaseWheel51 | BaseWheel52 | BaseWheel53 | BaseWheel54 | BaseWheel55 | BaseWheel56 | BaseWheel57 ]\nDOWN [ Base2Token ] [ BaseWheel61 | | | | | | ] -> [ Base2Token ] [ BaseWheel61 | BaseWheel62 | BaseWheel63 | BaseWheel64 | BaseWheel65 | BaseWheel66 | BaseWheel67 ]\nDOWN [ Base2Token ] [ BaseWheel71Wet | | | | | | ] -> [ Base2Token ] [ BaseWheel71Wet | BaseWheel72Wet | BaseWheel73Wet | BaseWheel74Wet1 | BaseWheel75 | BaseWheel76 | BaseWheel77 ]\n\n(Wheel generation for the base levels - #3)\nRIGHT [ Base3Token ] [ BaseWheelT11 | | | | | | ] -> [ Base3Token ] [ BaseWheelT11 | BaseWheelT21 | BaseWheelT31 | BaseWheelT41 | BaseWheelT51 | BaseWheelT61 | BaseWheelT71Wet ]\nDOWN [ Base3Token ] [ BaseWheelT11 | | | | | | ] -> [ Base3Token ] [ BaseWheelT11 | BaseWheelT12 | BaseWheelT13 | BaseWheelT14 | BaseWheelT15 | BaseWheelT16 | BaseWheelT17 ]\nDOWN [ Base3Token ] [ BaseWheelT21 | | | | | | ] -> [ Base3Token ] [ BaseWheelT21 | BaseWheelT22 | BaseWheelT23 | BaseWheelT24 | BaseWheelT25 | BaseWheelT26 | BaseWheelT27 ]\nDOWN [ Base3Token ] [ BaseWheelT31 | | | | | | ] -> [ Base3Token ] [ BaseWheelT31 | BaseWheelT32 | BaseWheelT33 | BaseWheelT34 | BaseWheelT35 | BaseWheelT36 | BaseWheelT37 ]\nDOWN [ Base3Token ] [ BaseWheelT41 | | | | | | ] -> [ Base3Token ] [ BaseWheelT41 | BaseWheelT42 | BaseWheelT43 | BaseWheelT44 | BaseWheelT45 | BaseWheelT46 | BaseWheelT47 ]\nDOWN [ Base3Token ] [ BaseWheelT51 | | | | | | ] -> [ Base3Token ] [ BaseWheelT51 | BaseWheelT52 | BaseWheelT53 | BaseWheelT54 | BaseWheelT55 | BaseWheelT56 | BaseWheelT57 ]\nDOWN [ Base3Token ] [ BaseWheelT61 | | | | | | ] -> [ Base3Token ] [ BaseWheelT61 | BaseWheelT62 | BaseWheelT63 | BaseWheelT64 | BaseWheelT65 | BaseWheelT66 | BaseWheelT67 ]\nDOWN [ Base3Token ] [ BaseWheelT71Wet | | | | | | ] -> [ Base3Token ] [ BaseWheelT71Wet | BaseWheelT72Wet | BaseWheelT73Wet | BaseWheelT74Wet | BaseWheelT75Wet | BaseWheelT76 | BaseWheelT77 ]\n\n(Wheel generation for the base levels - #4)\nRIGHT [ Base4Token ] [ BaseWheel11 | | | | | | ] -> [ Base4Token ] [ BaseWheel11 | BaseWheel21 | BaseWheel31 | BaseWheel41 | BaseWheel51 | BaseWheel61 | BaseWheel71Wet ]\nDOWN [ Base4Token ] [ BaseWheel11 | | | | | | ] -> [ Base4Token ] [ BaseWheel11 | BaseWheel12 | BaseWheel13 | BaseWheel14 | BaseWheel15 | BaseWheel16 | BaseWheel17 ]\nDOWN [ Base4Token ] [ BaseWheel21 | | | | | | ] -> [ Base4Token ] [ BaseWheel21 | BaseWheel22 | BaseWheel23 | BaseWheel24 | BaseWheel25 | BaseWheel26 | BaseWheel27 ]\nDOWN [ Base4Token ] [ BaseWheel31 | | | | | | ] -> [ Base4Token ] [ BaseWheel31 | BaseWheel32 | BaseWheel33 | BaseWheel34 | BaseWheel35 | BaseWheel36 | BaseWheel37 ]\nDOWN [ Base4Token ] [ BaseWheel41 | | | | | | ] -> [ Base4Token ] [ BaseWheel41 | BaseWheel42 | BaseWheel43 | BaseWheel44 | BaseWheel45 | BaseWheel46 | BaseWheel47 ]\nDOWN [ Base4Token ] [ BaseWheel51 | | | | | | ] -> [ Base4Token ] [ BaseWheel51 | BaseWheel52 | BaseWheel53 | BaseWheel54 | BaseWheel55 | BaseWheel56 | BaseWheel57 ]\nDOWN [ Base4Token ] [ BaseWheel61 | | | | | | ] -> [ Base4Token ] [ BaseWheel61 | BaseWheel62 | BaseWheel63 | BaseWheel64 | BaseWheel65 | BaseWheel66 | BaseWheel67 ]\nDOWN [ Base4Token ] [ BaseWheel71Wet | | | | | | ] -> [ Base4Token ] [ BaseWheel71Wet | BaseWheel72Wet | BaseWheel73Wet | BaseWheel74Wet2 | BaseWheel75Wet | BaseWheel76Wet | BaseWheel77Wet ]\n\n(Wheel generation for the base levels - #5)\nRIGHT [ Base5Token ] [ BaseWheelT11 | | | | | | ] -> [ Base5Token ] [ BaseWheelT11 | BaseWheelT21 | BaseWheelT31 | BaseWheelT41 | BaseWheelT51 | BaseWheelT61 | BaseWheelT71Wet ]\nDOWN [ Base5Token ] [ BaseWheelT11 | | | | | | ] -> [ Base5Token ] [ BaseWheelT11 | BaseWheelT12 | BaseWheelT13 | BaseWheelT14 | BaseWheelT15 | BaseWheelT16 | BaseWheelT17 ]\nDOWN [ Base5Token ] [ BaseWheelT21 | | | | | | ] -> [ Base5Token ] [ BaseWheelT21 | BaseWheelT22 | BaseWheelT23 | BaseWheelT24 | BaseWheelT25 | BaseWheelT26 | BaseWheelT27 ]\nDOWN [ Base5Token ] [ BaseWheelT31 | | | | | | ] -> [ Base5Token ] [ BaseWheelT31 | BaseWheelT32 | BaseWheelT33 | BaseWheelT34 | BaseWheelT35 | BaseWheelT36 | BaseWheelT37 ]\nDOWN [ Base5Token ] [ BaseWheelT41 | | | | | | ] -> [ Base5Token ] [ BaseWheelT41 | BaseWheelT42 | BaseWheelT43 | BaseWheelT44 | BaseWheelT45 | BaseWheelT46 | BaseWheelT47 ]\nDOWN [ Base5Token ] [ BaseWheelT51 | | | | | | ] -> [ Base5Token ] [ BaseWheelT51 | BaseWheelT52 | BaseWheelT53 | BaseWheelT54 | BaseWheelT55 | BaseWheelT56 | BaseWheelT57 ]\nDOWN [ Base5Token ] [ BaseWheelT61 | | | | | | ] -> [ Base5Token ] [ BaseWheelT61 | BaseWheelT62 | BaseWheelT63 | BaseWheelT64 | BaseWheelT65 | BaseWheelT66 | BaseWheelT67 ]\nDOWN [ Base5Token ] [ BaseWheelT71Wet | | | | | | ] -> [ Base5Token ] [ BaseWheelT71Wet | BaseWheelT72Wet | BaseWheelT73Wet | BaseWheelT74Wet | BaseWheelT75Wet | BaseWheelT76Wet | BaseWheelT77Wet ]\n\n(Replace objects with fakes that don't do anything.)\n[ BaseToken ] [ CutsceneBackground ] -> [ BaseToken ] [ Wall ]\n[ BaseToken ] [ WaterWheelHorizWet WaterSource ] -> [ BaseToken ] [ FakeWaterWheelVertWet ]\n[ BaseToken ] [ SwitchOff ] -> [ BaseToken ] [ FakeSwitchOff ]\n[ BaseToken ] [ GateHorizOpen ] -> [ BaseToken ] [ FakeGateHorizOpenWet ]\n[ BaseToken ] [ Goal ] -> [ BaseToken ] [ FakeDoorClosed ]\n(Fill spaces with fake water in part 2 and beyond)\nDOWN [ BaseToken no Base1Token ] [ FakeGateHorizOpenWet | Ditch ] -> [ BaseToken ] [ FakeGateHorizOpenWet | Ditch CutsceneWater ]\n(Fill spaces with fake water in part 4 and beyond)\n[ BaseToken no Base1Token no Base2Token no Base3Token ] [ Ditch no BaseWheel ] -> [ BaseToken ] [ Ditch CutsceneWater ]\n[ BaseToken no Base1Token no Base2Token no Base3Token ] [ WaterWheelVertDry ] -> [ BaseToken ] [ FakeWaterWheelVertWet ]\n\n(Start autoplaying)\nRIGHT [ > Player | FakeSwitchOff ] -> [ Player | FakeSwitchOn Timer1 ] sfx1\nRIGHT [ FakeSwitchOn | GateHorizClosed ] -> [ FakeSwitchOn | FakeGateHorizOpenWet ]\nDOWN [ FakeSwitchOn ] [ FakeGateHorizOpenWet | | | | | ] -> [ FakeSwitchOn ] [ FakeGateHorizOpenWet | CutsceneWater | BaseWheel71Wet | BaseWheel72Wet | BaseWheel73Wet | BaseWheel74Wet1 ]\n\n[ BaseToken ] -> [ ]\n\n(Timer countdowns)\n[Timer0] -> win\n[Timer1] -> [Timer0] again\n[Timer2] -> [Timer1] again\n[Timer3] -> [Timer2] again\n[Timer4] -> [Timer3] again\n[Timer5] -> [Timer4] again\n[Timer6] -> [Timer5] again\n[Timer7] -> [Timer6] again\n[Timer8] -> [Timer7] again\n[Timer9] -> [Timer8] again\n\n[SoundTrigger] -> []\n\n\n==============\nWINCONDITIONS\n==============\n\nSome Player on Goal\n\n\n=======\nLEVELS\n=======\n\n(Opening cutscene)\nAAAAAAAAAAAAA六\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\n~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~\n\nAAAAAAAAAAAA⓪一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\n~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~\n\nAAAAAAAAAAAA⓪一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBEBBGBAKLABB\n~~~~~~~~~~~~~~\n\nAAAAAAAAAAAA⓪六\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBEBBGBAKLABB\nABBFBBBBHIIJBB\n\nAAAAAAAAAAAA①一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBYBBGBAKLABB\nABBZBBBBHIIJBB\n\nAAAAAAAAAAAAA一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nA1B0BBGBAKLABB\nA2B0BBBBHIIJBB\n\nAAAAAAAAAAAAA六\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\n\n(tutorial)\n###@######\n#.-......G\n52-......#\n#\\---%D$-6\n#.L.$..#.#\n#...L###.#\n#...-....#\n##########\n\n(1)\n##########Ⅰ\n@....#....#\n#/..U--...#\n51U--%-$D-6\n#...---...#\n#.........G\n###########\n\n(2)\n##################Ⅱ\n51----------------6\n#/...L-%$%$%--....#\n@....---------....G\n#....-#######-....#\n#..-----###-----..#\n#..-----###-----..#\n#..-###-###-###-..#\n#.---#---#---#---.#\n#.---#---#---#---.#\n#.L.-.R.-.-.-.L.R.#\n###################\n\n(3)\n################Ⅲ\n#...$.....-----.#\n#...-#U%---###-.#\n#...-#-$#---#--.#\n#...-#-%-------.#\n#...L#......---.G\n#\\..-#---#####$.#\n51DU%--$%-----$$6\n#/..-#---#####$.#\n@...L#......---.#\n#...-#-%-------.#\n#...-#-$#---#--.#\n#...-#D%---###-.#\n#...$.....-----.#\n#################\n\n(4)\n#############Ⅳ\n#..L--..L--..#\n#.##$#..#$##.#\n#.#---..---#.#\n#..-%-$$-%-..#\n@..-%-..-%-..G\n#/.-%-..-%-..#\n51U---#U-----6\n##############\n\n(5)\n############Ⅴ\n#...L...R...#\n@...-...-...#\n#/..-...-...#\n51U-%---$--U#\n#...-...-...#\n#...-...-...#\n#...-...-...#\n#D--$-U-%---#\n#...L...-...#\n#...-...-...#\n#...R...-...#\n########8#G##\n\n\n(ending cutscene - clocktower base)\n#########7#@#\n#.......\\4..#\n#.......#-..#\n#..Ⓐ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######G#8###\n\n#########7#.一\n#......@/3..④\n#.......#-..#\n#..Ⓒ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######G#8###\n\n#########7#.一\n#......@/3..④\n#.......#-..#\n#..Ⓓ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######.#8###\n\n#########7#.一\n#......@/3..④\n#.......#-..#\n#..Ⓔ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######.#8###\n\n#########7#.一\n#......@/3..④\n#.......#-..#\n#..Ⓓ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######.#8###\n\n\n(ending cutscene - town)\nAAAAAAAAAAAA④一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA④一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA④一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA③一\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA③一\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA③六\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAAA一\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nA1B0BBGBAKLABB\nA2B0BBBBHIIJBB\n\nAAAAAAAAAAAAA一\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBYBBGBAKLABB\nABBZBBBBHIIJBB\n\nAAAAAAAAAAAA②六\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBEBBGBAKLABB\nABBFBBBBHIIJBB\n\n", [3, 3, 0, 1, 1, 0, 0, 1, 0, 3, 0, 1, 1, 0, 3, 3, 1, 3, 2, 2, 3, 3], "background wall:0,0,0,0,0,0,0,background watersource waterwheelhorizwet:1,0,background surface:2,0,0,0,0,0,0,2,\n2,2,2,2,background surface switchon:3,background ditch gatevertopenwet:4,background surface switchoff:5,2,2,2,2,2,0,0,2,2,2,\n2,2,2,background ditch ladderdown water:6,background ladderdowntop surface:7,2,2,2,2,2,0,0,2,2,2,2,background ladderlefttop surface:8,\nbackground ladderuptop surface:9,background ditch ladderup water:10,2,8,2,2,2,2,0,0,background cratesurface surface:11,background ditch water:12,12,12,background ditch ladderleft water:13,12,background ditch playerdrowned water:14,\nbackground block ditch:15,background ditch ladderleft:16,background ditch:17,17,17,background crateditch ditch:18,0,0,2,0,0,0,0,0,12,0,0,\n0,0,0,2,0,0,9,background ditch ladderup:19,17,17,2,12,12,12,2,17,17,\nbackground ditch ladderdown:20,7,0,0,2,15,18,15,2,12,11,12,2,15,18,15,2,\n0,0,2,17,0,17,2,12,15,12,2,17,0,17,2,0,0,\n2,17,17,17,2,0,17,0,2,17,17,17,2,0,0,17,17,\n17,17,2,0,17,0,2,17,17,17,17,0,0,17,0,17,17,\n2,0,17,0,2,17,17,0,17,0,0,17,0,0,17,17,0,\n17,0,17,17,0,0,17,0,0,17,0,17,17,17,0,17,0,\n17,17,17,0,17,0,0,17,17,17,17,17,18,18,18,17,17,\n17,17,17,0,0,2,2,2,2,2,2,18,2,2,2,2,2,\n2,0,background romannumeral3 wall:21,0,0,0,0,background doorclosed goal surface:22,0,background waterwheelhorizdry:23,0,0,0,0,0,0,0,\n", 10, "1627770256142.56"] ], [ `gallery game: path lines`, - ["title Path lines\nauthor Rosden Shadow [Mark Signorelli]\nhomepage rosden.itch.io\nrun_rules_on_level_Start\n\nbackground_color #423D39\n\ntext_color #FFD9FC\n\n========\nOBJECTS\n========\n\nBackground\n#423D39 #5B4846\n00000\n01010\n00100\n01010\n00000\n(\n00101\n01110\n11011\n01111\n10110)\n(\n11101\n00101\n11111\n10100\n10111)\n\n\npathline\n#E0AAF2 #FFD9FC\n00000\n01010\n00100\n01010\n00000\n\nTarget\n #847A5C #E5C17E\n.....\n.010.\n.1.1.\n.010.\n.....\n\nWall\n#A87EE5 #E0AAF2 #705C84 #42393C\n20001\n20001\n22220\n23232\n32323\n\noverwall\n #A87EE5 #E0AAF2 #705C84 #42393C\n.....\n.....\n.....\n01111\n20001\n\n\nPlayerright\n#F3FFD9 #BCE57E #A87EE5 #705C84\n.000.\n11202\n11313\n11110\n.1.1.\n\nplayerleft\n#F3FFD9 #BCE57E #A87EE5 #705C84\n.000.\n20211\n31311\n01111\n.1.1.\n\nCrate2\n#82A17C #7EE58D #4F5B46 #394239 \n20011\n20001\n22001\n32223\n.333.\n\novercrate2\n#82A17C #7EE58D #4F5B46 #394239\n.....\n.....\n.....\n.....\n.111.\n\nCrate\n#E5C17E #F2F2AA #847A5C #5B5746\n20011\n20001\n22001\n32223\n.333.\n\novercrate\n#E5C17E #F2F2AA #847A5C #5B5746\n.....\n.....\n.....\n.....\n.111.\n\ncloner\n#E5C17E #DB7F55 #B32D2D #73342E\n.100.\n.210.\n.221.\n.332.\n.....\n\nswapcrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\nswapwall\nblack\n.....\n.....\n.....\n.....\n.....\n\nthefloor\n#423D39\n00000\n00000\n00000\n00000\n00000\n\nstopper\nblack\n.....\n.....\n.....\n.....\n.....\n\nshiftright\nblack\n.....\n.....\n.....\n.....\n.....\n\nshiftup\nblack\n.....\n.....\n.....\n.....\n.....\n\nshiftdown\nblack\n.....\n.....\n.....\n.....\n.....\n\nshiftleft\nblack\n.....\n.....\n.....\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background and stopper\n# = Wall\nP = Playerright\n* = Crate\n@ = Crate and Target\nO = Target\nc=cloner\n-=thefloor\n\nfeel=overwall or overcrate or overcrate2\npushable=crate or cloner or swapcrate or crate2\nwin=crate or wall\n\nplayer=playerright or playerleft\n\nshift=shiftright or shiftup or shiftdown or shiftleft\nmainlayer=player or wall or pushable or swapwall or thefloor\n=======\nSOUNDS\n=======\n\npushable MOVE 36772507\n\n\nsfx0 52836103\nsfx1 6257504\n================\nCOLLISIONLAYERS\n================\n\nBackground\npathline\nTarget\nshiftright\nshiftleft\nshiftup\nshiftdown\nPlayer, Wall, pushable,swapwall,thefloor\nstopper\nfeel\n\n======\nRULES\n======\n\n[feel]->[]\n[shift]->[]\n[stopper]->[]\n\n[Background no mainlayer] -> [background stopper]\n\n\n\n[crate]->[crate shiftright shiftleft shiftup shiftdown]\n\nright [shiftright| ]->[shiftright | shiftright]\n\nup [shiftup| ]->[shiftup | shiftup]\n\ndown [shiftdown| ]->[shiftdown | shiftdown]\n\nleft [shiftleft| ]->[shiftleft | shiftleft]\n\n[shift]->[shift pathline]\n[pathline stopper] -> [pathline]\n\n[ > Player | pushable ] -> [ > Player | > pushable ]\n\n([ > pushable | pushable ] -> [ > pushable | > pushable ])\n\n[> player | stopper] -> [ player | stopper]\n\n[ left Playerright] -> [ left playerleft]\n[ right Playerleft] -> [ right playerright]\n\n(-------------------)\nlate [shift]->[]\nlate [stopper]->[]\nlate [pathline]->[]\nlate [crate]->[crate shiftright shiftleft shiftup shiftdown]\n\nlate right [shiftright| ]->[shiftright | shiftright]\n\nlate up [shiftup| ]->[shiftup | shiftup]\n\nlate down [shiftdown| ]->[shiftdown | shiftdown]\n\nlate left [shiftleft| ]->[shiftleft | shiftleft]\n\nlate [shift]->[shift pathline]\nlate [pathline stopper] -> [pathline]\n\n(------------------)\n\nlate up [wall| ]-> [wall|overwall]\nlate up [crate| ]-> [crate|overcrate]\nlate up [crate2| ]-> [crate2|overcrate2]\n==============\nWINCONDITIONS\n==============\n\nAll Target on win\n\n=======\nLEVELS\n=======\n\nmessage cover up all targets with blocks \n\nmessage level 1 of 4\n--------\n-######-\n##.*..##\n#......#\n#...*..#\n#..O...#\n#......#\n#......#\n#..P...#\n##....##\n-######-\n\nmessage level 2 of 4\n--------\n-######-\n##....##\n#......#\n#......#\n#.O.*..#\n#..*.O.#\n#......#\n#..P...#\n##....##\n-######-\n\nmessage level 3 of 4\n--------\n#######-\n#O....#-\n#.....#-\n#O....#-\n##...##-\n##**###-\n#..*..#-\n#..P.O#-\n##...##-\n-#####--\n\nmessage level 4 of 4\n--------\n#######-\n##...O#-\n#.....#-\n#.*...#-\n#..*..#-\n#...*.#-\n#O.p.O#-\n#.....##\n####..*#\n---#####\n(\n--------\n#######-\n##...O#-\n#.....#-\n#.*...#-\n#..*..#-\n#...*.#-\n#..p..#-\n#O....#-\n#....O#-\n#######-\n)\n\n\n\nmessage The path is now clear\n\n\n(--------\n-######-\n##....##\n#......#\n#.*....#\n#....*.#\n#.O....#\n#.OO.*.#\n#.P....#\n##....##\n-######-)\n\n",[0,1,0,3,3,1,0,0,1,0,3,3,0,1,1,0,1,2,3,1,2,2,3,2,3,3,2,1,1],"background overwall thefloor:0,background overwall wall:1,1,1,background overwall pathline shiftleft wall:2,1,1,2,\n2,background wall:3,background thefloor:4,background overwall pathline shiftup thefloor:5,background pathline shiftup wall:6,background pathline shiftup target:7,background pathline shiftup:8,background overwall pathline shiftleft shiftup target:9,\nbackground overwall pathline shiftup wall:10,6,background overcrate pathline shiftleft shiftup:11,background crate overwall pathline shiftdown shiftleft shiftright shiftup:12,background overwall pathline shiftdown wall:13,background pathline shiftdown wall:14,0,3,\nbackground:15,15,background pathline shiftleft:16,15,15,16,background pathline playerleft shiftright:17,background overwall:18,\n3,0,3,15,15,16,15,15,\n16,background pathline shiftright:19,18,3,0,3,15,15,\n16,18,3,16,19,18,3,5,\n6,8,background overcrate pathline shiftup:20,12,background overwall pathline shiftdown shiftup wall:21,background overcrate pathline shiftdown shiftup wall:22,background crate pathline shiftdown shiftleft shiftright shiftup:23,background overwall pathline shiftdown shiftright target:24,\n13,14,0,1,1,1,background overwall pathline shiftright wall:25,1,\n1,25,25,3,4,4,4,4,\n4,background pathline shiftright thefloor:26,4,4,26,26,4,4,\n",6,"1627770350033.7073"] + ["title Path lines\nauthor Rosden Shadow [Mark Signorelli]\nhomepage rosden.itch.io\nrun_rules_on_level_Start\n\nbackground_color #423D39\n\ntext_color #FFD9FC\n\n========\nOBJECTS\n========\n\nBackground\n#423D39 #5B4846\n00000\n01010\n00100\n01010\n00000\n(\n00101\n01110\n11011\n01111\n10110)\n(\n11101\n00101\n11111\n10100\n10111)\n\n\npathline\n#E0AAF2 #FFD9FC\n00000\n01010\n00100\n01010\n00000\n\nTarget\n #847A5C #E5C17E\n.....\n.010.\n.1.1.\n.010.\n.....\n\nWall\n#A87EE5 #E0AAF2 #705C84 #42393C\n20001\n20001\n22220\n23232\n32323\n\noverwall\n #A87EE5 #E0AAF2 #705C84 #42393C\n.....\n.....\n.....\n01111\n20001\n\n\nPlayerright\n#F3FFD9 #BCE57E #A87EE5 #705C84\n.000.\n11202\n11313\n11110\n.1.1.\n\nplayerleft\n#F3FFD9 #BCE57E #A87EE5 #705C84\n.000.\n20211\n31311\n01111\n.1.1.\n\nCrate2\n#82A17C #7EE58D #4F5B46 #394239 \n20011\n20001\n22001\n32223\n.333.\n\novercrate2\n#82A17C #7EE58D #4F5B46 #394239\n.....\n.....\n.....\n.....\n.111.\n\nCrate\n#E5C17E #F2F2AA #847A5C #5B5746\n20011\n20001\n22001\n32223\n.333.\n\novercrate\n#E5C17E #F2F2AA #847A5C #5B5746\n.....\n.....\n.....\n.....\n.111.\n\ncloner\n#E5C17E #DB7F55 #B32D2D #73342E\n.100.\n.210.\n.221.\n.332.\n.....\n\nswapcrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\nswapwall\nblack\n.....\n.....\n.....\n.....\n.....\n\nthefloor\n#423D39\n00000\n00000\n00000\n00000\n00000\n\nstopper\nblack\n.....\n.....\n.....\n.....\n.....\n\nshiftright\nblack\n.....\n.....\n.....\n.....\n.....\n\nshiftup\nblack\n.....\n.....\n.....\n.....\n.....\n\nshiftdown\nblack\n.....\n.....\n.....\n.....\n.....\n\nshiftleft\nblack\n.....\n.....\n.....\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background and stopper\n# = Wall\nP = Playerright\n* = Crate\n@ = Crate and Target\nO = Target\nc=cloner\n-=thefloor\n\nfeel=overwall or overcrate or overcrate2\npushable=crate or cloner or swapcrate or crate2\nwin=crate or wall\n\nplayer=playerright or playerleft\n\nshift=shiftright or shiftup or shiftdown or shiftleft\nmainlayer=player or wall or pushable or swapwall or thefloor\n=======\nSOUNDS\n=======\n\npushable MOVE 36772507\n\n\nsfx0 52836103\nsfx1 6257504\n================\nCOLLISIONLAYERS\n================\n\nBackground\npathline\nTarget\nshiftright\nshiftleft\nshiftup\nshiftdown\nPlayer, Wall, pushable,swapwall,thefloor\nstopper\nfeel\n\n======\nRULES\n======\n\n[feel]->[]\n[shift]->[]\n[stopper]->[]\n\n[Background no mainlayer] -> [background stopper]\n\n\n\n[crate]->[crate shiftright shiftleft shiftup shiftdown]\n\nright [shiftright| ]->[shiftright | shiftright]\n\nup [shiftup| ]->[shiftup | shiftup]\n\ndown [shiftdown| ]->[shiftdown | shiftdown]\n\nleft [shiftleft| ]->[shiftleft | shiftleft]\n\n[shift]->[shift pathline]\n[pathline stopper] -> [pathline]\n\n[ > Player | pushable ] -> [ > Player | > pushable ]\n\n([ > pushable | pushable ] -> [ > pushable | > pushable ])\n\n[> player | stopper] -> [ player | stopper]\n\n[ left Playerright] -> [ left playerleft]\n[ right Playerleft] -> [ right playerright]\n\n(-------------------)\nlate [shift]->[]\nlate [stopper]->[]\nlate [pathline]->[]\nlate [crate]->[crate shiftright shiftleft shiftup shiftdown]\n\nlate right [shiftright| ]->[shiftright | shiftright]\n\nlate up [shiftup| ]->[shiftup | shiftup]\n\nlate down [shiftdown| ]->[shiftdown | shiftdown]\n\nlate left [shiftleft| ]->[shiftleft | shiftleft]\n\nlate [shift]->[shift pathline]\nlate [pathline stopper] -> [pathline]\n\n(------------------)\n\nlate up [wall| ]-> [wall|overwall]\nlate up [crate| ]-> [crate|overcrate]\nlate up [crate2| ]-> [crate2|overcrate2]\n==============\nWINCONDITIONS\n==============\n\nAll Target on win\n\n=======\nLEVELS\n=======\n\nmessage cover up all targets with blocks \n\nmessage level 1 of 4\n--------\n-######-\n##.*..##\n#......#\n#...*..#\n#..O...#\n#......#\n#......#\n#..P...#\n##....##\n-######-\n\nmessage level 2 of 4\n--------\n-######-\n##....##\n#......#\n#......#\n#.O.*..#\n#..*.O.#\n#......#\n#..P...#\n##....##\n-######-\n\nmessage level 3 of 4\n--------\n#######-\n#O....#-\n#.....#-\n#O....#-\n##...##-\n##**###-\n#..*..#-\n#..P.O#-\n##...##-\n-#####--\n\nmessage level 4 of 4\n--------\n#######-\n##...O#-\n#.....#-\n#.*...#-\n#..*..#-\n#...*.#-\n#O.p.O#-\n#.....##\n####..*#\n---#####\n(\n--------\n#######-\n##...O#-\n#.....#-\n#.*...#-\n#..*..#-\n#...*.#-\n#..p..#-\n#O....#-\n#....O#-\n#######-\n)\n\n\n\nmessage The path is now clear\n\n\n(--------\n-######-\n##....##\n#......#\n#.*....#\n#....*.#\n#.O....#\n#.OO.*.#\n#.P....#\n##....##\n-######-)\n\n", [0, 1, 0, 3, 3, 1, 0, 0, 1, 0, 3, 3, 0, 1, 1, 0, 1, 2, 3, 1, 2, 2, 3, 2, 3, 3, 2, 1, 1], "background overwall thefloor:0,background overwall wall:1,1,1,background overwall pathline shiftleft wall:2,1,1,2,\n2,background wall:3,background thefloor:4,background overwall pathline shiftup thefloor:5,background pathline shiftup wall:6,background pathline shiftup target:7,background pathline shiftup:8,background overwall pathline shiftleft shiftup target:9,\nbackground overwall pathline shiftup wall:10,6,background overcrate pathline shiftleft shiftup:11,background crate overwall pathline shiftdown shiftleft shiftright shiftup:12,background overwall pathline shiftdown wall:13,background pathline shiftdown wall:14,0,3,\nbackground:15,15,background pathline shiftleft:16,15,15,16,background pathline playerleft shiftright:17,background overwall:18,\n3,0,3,15,15,16,15,15,\n16,background pathline shiftright:19,18,3,0,3,15,15,\n16,18,3,16,19,18,3,5,\n6,8,background overcrate pathline shiftup:20,12,background overwall pathline shiftdown shiftup wall:21,background overcrate pathline shiftdown shiftup wall:22,background crate pathline shiftdown shiftleft shiftright shiftup:23,background overwall pathline shiftdown shiftright target:24,\n13,14,0,1,1,1,background overwall pathline shiftright wall:25,1,\n1,25,25,3,4,4,4,4,\n4,background pathline shiftright thefloor:26,4,4,26,26,4,4,\n", 6, "1627770350033.7073"] ], [ `gallery game: interconnection`, - ["title interconnection\nauthor Rosden Shadow [Mark Signorelli]\nhomepage rosden.itch.io\n\nrun_rules_on_level_Start\n\nbackground_color #66CC52\n\ntext_color #845C7A\n========\nOBJECTS\n========\n\nBackground\n#66CC52 #7EE58D #567353\n10001\n00100\n01010\n00100\n10001\n\n\nTarget\n#E57ED5 #FFD9FC #845C7A\n.....\n.011.\n.201.\n.220.\n.....\n\nWall\n#46595B #5C8484 #394240 #1F2026\n10001\n21001\n22120\n33232\n32333\n\noverwall\n#46595B #5C8484 #394240 #1F2026\n.....\n.....\n.....\n01121\n20012\n\n\nPlayerright\n#F3FFD9 #E5C17E #845C7A #423942 #66CC52 #2DB34E\n5000.\n11202\n11313\n11110\n5151.\n\nPlayerleft\n#F3FFD9 #E5C17E #845C7A #423942 #66CC52 #2DB34E\n5000.\n20211\n31311\n01111\n5151.\n\nplayershadowleft\n#2DB34E #66CC52\n.....\n....0\n....0\n....0\n.....\n\nplayershadowtop\n#2DB34E #66CC52\n.....\n.....\n.....\n.....\n.....\n\nplayershadowtopleft\n#2DB34E #66CC52\n.....\n.....\n.....\n.....\n.....\n\nCratey\n#9B7CA1 #423942 #E57ED5 #845C7A\n13220\n11000\n11100\n11000\n.110.\n\nCratex\n#9B7CA1 #423942 #E57ED5 #845C7A\n13220\n11000\n11100\n11000\n.110.\n\ncrateshadow\n#2DB34E #66CC52 #567353\n...01\n...00\n....0\n....0\n.....\n\ncrateshadowtop\n#2DB34E #66CC52 #567353 (#66CC52)(#394239 #567353 )\n.....\n.....\n.....\n....0\n...01\n\nCratetop\n#E57ED5 #845C7A #9B7CA1 #423942 #FFD9FC\n.....\n.....\n..0..\n.140.\n11040\n\nleftshift\nblack\n.....\n.....\n.....\n.....\n.....\n\nrightshift\nblack\n.....\n.....\n.....\n.....\n.....\n\nupshift\nblack\n.....\n.....\n.....\n.....\n.....\n\ndownshift\nblack\n.....\n.....\n.....\n.....\n.....\n\nleftshiftx\nblack\n.....\n.....\n..0..\n.....\n.....\n\nrightshiftx\nblack\n.....\n.....\n..0..\n.....\n.....\n\nupshiftx\nblack\n.....\n.....\n..0..\n.....\n.....\n\ndownshiftx\nblack\n.....\n.....\n..0..\n.....\n.....\n\nnoshift\nblack\n.....\n.....\n.....\n.....\n.....\n\nchan\nblack\n.....\n.....\n.....\n.....\n.....\n\nthefloor\n#66CC52\n00000\n00000\n00000\n00000\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Playerleft\n* = Cratey\n@ = Cratey and Target\nO = Target\nc=chan\n-=thefloor\n\nplayer=Playerright or playerleft\nfeel=cratetop or overwall\n\ncrate= cratey or cratex\n\nblocker=wall or crate\n\nshadow= crateshadow or crateshadowtop or playershadowleft or playershadowtop or playershadowtopleft\n\nshift =leftshiftx or rightshiftx or upshiftx or downshiftx or leftshift or rightshift or upshift or downshift\nshiftx=leftshiftx or rightshiftx or upshiftx or downshiftx\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\nsfx0 10685903\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncrateshadow\ncrateshadowtop\nplayershadowleft\nplayershadowtop\nplayershadowtopleft\nthefloor\nTarget\nPlayer, Wall, Crate\nfeel\nshift,noshift\nchan\n\n\n======\nRULES\n======\n[cratetop]->[]\n[shadow]->[]\n\n[chan]->[up chan]\n\n[chan]->[]\n\n[cratex]->[cratey]\n[ > Player | Cratey ] -> [ > Player | > Cratey]\n\n\n[ left Playerright] -> [ left playerleft]\n[ right Playerleft] -> [ right playerright]\n\n[left cratey] -> [left cratex left leftshiftx]\n[right cratey] -> [right cratex right rightshiftx]\n[up cratey] -> [up cratex up upshiftx]\n[down cratey] -> [down cratex down downshiftx]\n \n [parallel cratex | blocker] ->[parallel cratex noshift |blocker]\n\n[cratex Target] -> [cratex Target] sfx0\n\n[leftshiftx]->[leftshift]\n[rightshiftx]->[rightshift]\n[upshiftx]->[upshift]\n[downshiftx]->[downshift]\n\n\n[leftshift|no leftshift] ->[leftshift|leftshift]\n[upshift|no upshift] ->[upshift|upshift]\n[rightshift|no rightshift] ->[rightshift|rightshift]\n[downshift|no downshift] ->[downshift|downshift]\n\n[cratey |leftshift]->[left cratex | leftshift]\n[cratey |rightshift]->[right cratex | rightshift]\n[cratey |upshift]->[up cratex | upshift]\n[cratey |downshift]->[down cratex | downshift]\n\n\nlate up [crate| ]->[crate| cratetop]\nlate left [crate| ]->[crate| crateshadow]\nlate up [crateshadow| ]->[crateshadow| crateshadowtop]\n\nlate up [player| ]->[player| playershadowtop]\nlate left [player| ]->[player| playershadowleft]\nlate up [playershadowleft| ]->[playershadowleft| playershadowtopleft]\n\nlate up [wall| ]-> [wall|overwall]\n\nlate [leftshift] ->[]\nlate [rightshift] ->[]\nlate [upshift] -> []\nlate [downshift] -> []\n\n[]->again\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage cover up all the buttons\nmessage level 1 of 3\n--------\n########\n#c.....#\n#......#\n#.p..*.#\n#......#\n########\n#.....##\n#O...*.#\n#..#...#\n#.*....#\n#..O...#\n########\n\nmessage level 2 of 3\n--------\n########\n#c...###\n#....#O#\n###p.#.#\n###..#.#\n#...*#.#\n#.*..#.#\n#..**#.#\n#..*.#.#\n#.#.##.#\n#..#*..#\n########\n\nmessage level 3 of 3\n--------\n########\n####O###\n###...##\n##....c#\n#...#..#\n#.*..*.#\n#...p..#\n#.*..*.#\n#.....##\n##...###\n###O####\n########\n\nmessage interconnectivity is key\n",[0,3,3,3,3,2,1,1,1,0,1,1,2,3,3,0,3,2],"background overwall thefloor:0,background overwall wall:1,1,1,1,1,1,1,\n1,1,1,1,background wall:2,0,2,background:3,\n3,3,background overwall:4,2,3,background target:5,3,3,\n4,2,0,2,3,3,3,4,\n2,3,3,3,background crateshadowtop:6,background crateshadow overwall:7,2,0,\n2,3,background playershadowtopleft:8,background crateshadowtop playershadowleft:9,7,2,3,background crateshadowtop overwall:10,\nbackground crateshadow wall:11,background cratetop:12,background cratey overwall target:13,2,0,2,3,background playershadowtop:14,\nbackground cratetop playerright:15,background cratey overwall:16,2,3,12,background cratey:17,3,4,\n2,0,2,3,3,3,4,2,\n3,3,3,3,4,2,0,2,\n3,3,3,4,1,2,3,3,\n3,4,2,0,1,1,1,1,\n1,1,1,1,1,1,1,2,\n",2,"1627770378083.7458"] + ["title interconnection\nauthor Rosden Shadow [Mark Signorelli]\nhomepage rosden.itch.io\n\nrun_rules_on_level_Start\n\nbackground_color #66CC52\n\ntext_color #845C7A\n========\nOBJECTS\n========\n\nBackground\n#66CC52 #7EE58D #567353\n10001\n00100\n01010\n00100\n10001\n\n\nTarget\n#E57ED5 #FFD9FC #845C7A\n.....\n.011.\n.201.\n.220.\n.....\n\nWall\n#46595B #5C8484 #394240 #1F2026\n10001\n21001\n22120\n33232\n32333\n\noverwall\n#46595B #5C8484 #394240 #1F2026\n.....\n.....\n.....\n01121\n20012\n\n\nPlayerright\n#F3FFD9 #E5C17E #845C7A #423942 #66CC52 #2DB34E\n5000.\n11202\n11313\n11110\n5151.\n\nPlayerleft\n#F3FFD9 #E5C17E #845C7A #423942 #66CC52 #2DB34E\n5000.\n20211\n31311\n01111\n5151.\n\nplayershadowleft\n#2DB34E #66CC52\n.....\n....0\n....0\n....0\n.....\n\nplayershadowtop\n#2DB34E #66CC52\n.....\n.....\n.....\n.....\n.....\n\nplayershadowtopleft\n#2DB34E #66CC52\n.....\n.....\n.....\n.....\n.....\n\nCratey\n#9B7CA1 #423942 #E57ED5 #845C7A\n13220\n11000\n11100\n11000\n.110.\n\nCratex\n#9B7CA1 #423942 #E57ED5 #845C7A\n13220\n11000\n11100\n11000\n.110.\n\ncrateshadow\n#2DB34E #66CC52 #567353\n...01\n...00\n....0\n....0\n.....\n\ncrateshadowtop\n#2DB34E #66CC52 #567353 (#66CC52)(#394239 #567353 )\n.....\n.....\n.....\n....0\n...01\n\nCratetop\n#E57ED5 #845C7A #9B7CA1 #423942 #FFD9FC\n.....\n.....\n..0..\n.140.\n11040\n\nleftshift\nblack\n.....\n.....\n.....\n.....\n.....\n\nrightshift\nblack\n.....\n.....\n.....\n.....\n.....\n\nupshift\nblack\n.....\n.....\n.....\n.....\n.....\n\ndownshift\nblack\n.....\n.....\n.....\n.....\n.....\n\nleftshiftx\nblack\n.....\n.....\n..0..\n.....\n.....\n\nrightshiftx\nblack\n.....\n.....\n..0..\n.....\n.....\n\nupshiftx\nblack\n.....\n.....\n..0..\n.....\n.....\n\ndownshiftx\nblack\n.....\n.....\n..0..\n.....\n.....\n\nnoshift\nblack\n.....\n.....\n.....\n.....\n.....\n\nchan\nblack\n.....\n.....\n.....\n.....\n.....\n\nthefloor\n#66CC52\n00000\n00000\n00000\n00000\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Playerleft\n* = Cratey\n@ = Cratey and Target\nO = Target\nc=chan\n-=thefloor\n\nplayer=Playerright or playerleft\nfeel=cratetop or overwall\n\ncrate= cratey or cratex\n\nblocker=wall or crate\n\nshadow= crateshadow or crateshadowtop or playershadowleft or playershadowtop or playershadowtopleft\n\nshift =leftshiftx or rightshiftx or upshiftx or downshiftx or leftshift or rightshift or upshift or downshift\nshiftx=leftshiftx or rightshiftx or upshiftx or downshiftx\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\nsfx0 10685903\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncrateshadow\ncrateshadowtop\nplayershadowleft\nplayershadowtop\nplayershadowtopleft\nthefloor\nTarget\nPlayer, Wall, Crate\nfeel\nshift,noshift\nchan\n\n\n======\nRULES\n======\n[cratetop]->[]\n[shadow]->[]\n\n[chan]->[up chan]\n\n[chan]->[]\n\n[cratex]->[cratey]\n[ > Player | Cratey ] -> [ > Player | > Cratey]\n\n\n[ left Playerright] -> [ left playerleft]\n[ right Playerleft] -> [ right playerright]\n\n[left cratey] -> [left cratex left leftshiftx]\n[right cratey] -> [right cratex right rightshiftx]\n[up cratey] -> [up cratex up upshiftx]\n[down cratey] -> [down cratex down downshiftx]\n \n [parallel cratex | blocker] ->[parallel cratex noshift |blocker]\n\n[cratex Target] -> [cratex Target] sfx0\n\n[leftshiftx]->[leftshift]\n[rightshiftx]->[rightshift]\n[upshiftx]->[upshift]\n[downshiftx]->[downshift]\n\n\n[leftshift|no leftshift] ->[leftshift|leftshift]\n[upshift|no upshift] ->[upshift|upshift]\n[rightshift|no rightshift] ->[rightshift|rightshift]\n[downshift|no downshift] ->[downshift|downshift]\n\n[cratey |leftshift]->[left cratex | leftshift]\n[cratey |rightshift]->[right cratex | rightshift]\n[cratey |upshift]->[up cratex | upshift]\n[cratey |downshift]->[down cratex | downshift]\n\n\nlate up [crate| ]->[crate| cratetop]\nlate left [crate| ]->[crate| crateshadow]\nlate up [crateshadow| ]->[crateshadow| crateshadowtop]\n\nlate up [player| ]->[player| playershadowtop]\nlate left [player| ]->[player| playershadowleft]\nlate up [playershadowleft| ]->[playershadowleft| playershadowtopleft]\n\nlate up [wall| ]-> [wall|overwall]\n\nlate [leftshift] ->[]\nlate [rightshift] ->[]\nlate [upshift] -> []\nlate [downshift] -> []\n\n[]->again\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage cover up all the buttons\nmessage level 1 of 3\n--------\n########\n#c.....#\n#......#\n#.p..*.#\n#......#\n########\n#.....##\n#O...*.#\n#..#...#\n#.*....#\n#..O...#\n########\n\nmessage level 2 of 3\n--------\n########\n#c...###\n#....#O#\n###p.#.#\n###..#.#\n#...*#.#\n#.*..#.#\n#..**#.#\n#..*.#.#\n#.#.##.#\n#..#*..#\n########\n\nmessage level 3 of 3\n--------\n########\n####O###\n###...##\n##....c#\n#...#..#\n#.*..*.#\n#...p..#\n#.*..*.#\n#.....##\n##...###\n###O####\n########\n\nmessage interconnectivity is key\n", [0, 3, 3, 3, 3, 2, 1, 1, 1, 0, 1, 1, 2, 3, 3, 0, 3, 2], "background overwall thefloor:0,background overwall wall:1,1,1,1,1,1,1,\n1,1,1,1,background wall:2,0,2,background:3,\n3,3,background overwall:4,2,3,background target:5,3,3,\n4,2,0,2,3,3,3,4,\n2,3,3,3,background crateshadowtop:6,background crateshadow overwall:7,2,0,\n2,3,background playershadowtopleft:8,background crateshadowtop playershadowleft:9,7,2,3,background crateshadowtop overwall:10,\nbackground crateshadow wall:11,background cratetop:12,background cratey overwall target:13,2,0,2,3,background playershadowtop:14,\nbackground cratetop playerright:15,background cratey overwall:16,2,3,12,background cratey:17,3,4,\n2,0,2,3,3,3,4,2,\n3,3,3,3,4,2,0,2,\n3,3,3,4,1,2,3,3,\n3,4,2,0,1,1,1,1,\n1,1,1,1,1,1,1,2,\n", 2, "1627770378083.7458"] ], [ `gallery game: the art of cloning`, - ["title the art of cloning\nauthor Rosden Shadow [Mark Signorelli]\nhomepage rosden.itch.io\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\n#581AB2 #000000 #291E4C\n11111\n12121\n11211\n12121\n11111\n\n\nTarget\n#FF263B #911A45\n.....\n.0.0.\n..0..\n.0.0.\n.....\n(\n.0.0.\n.101.\n.010.\n.1.1.\n.....\n)\n(.....\n.0.0.\n..0..\n.0.0.\n.....)\n\n\n\n\n\nWall\n#1AB258 #0E664E #CBFF7F\n02222\n10002\n10002\n10002\n11110\n\nPlayer\n#4CB5FF #26FFEA #263BFF\n.000.\n.202.\n01110\n.111.\n.2.2.\n\nCrate\n#FFB37F #993D74 #FFFFFF\n02222\n10002\n10002\n10002\n11110\n\n\n\nCratepos\nred\n00000\n0...0\n0...0\n0...0\n00000\n\n\nCrateneg\nblue\n00000\n0...0\n0...0\n0...0\n00000\n\nfloor\nblack\n.....\n.....\n.....\n.....\n.....\n\nfloor0\nblack\n.....\n.....\n.....\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n+ = cratepos\n- = crateneg\n@ = Crate and Target\nt = Target\n\nObject = Crate or Player or Wall\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nfloor,floor0\nTarget\nPlayer, Wall, Crate,Cratepos,Crateneg\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ player | > Crate ]\n\n[ > crate | crate] -> [ > crate | > crate ]\n\n[ > Player | Cratepos ] -> [ > Player | > Cratepos ]\n\n[ > Player | Crateneg ] -> [ > Player | > Crateneg ]\n\nlate [Floor no Object] -> [no Floor Crate]\n\n[crate no Floor] -> [crate floor]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage the goal is to cover-up all the red crosses\n\nmessage level 1 of 1\n#########\n#ttttttt#\n#t.....t#\n#t.....t#\n#t..*.pt#\n#t.....t#\n#t.....t#\n#ttttttt#\n#########\n\nmessage Good work!\n\n",[1,1,1,0,1,2,2,1,1,2,1,2,2,3,3,3,2,3,3,3,3,3],"background wall:0,0,0,0,0,0,0,0,0,\n0,background target:1,1,1,1,1,1,1,0,\n0,1,background:2,2,background crate floor:3,3,2,1,0,\n0,1,2,2,3,3,background player:4,1,0,\n0,1,2,2,3,3,background crate:5,1,0,\n0,1,2,2,2,3,3,1,0,\n0,1,2,2,2,3,3,1,0,\n0,1,1,1,1,1,background crate target:6,1,0,\n0,0,0,0,0,0,0,0,0,\n",2,"1627770402138.347"] + ["title the art of cloning\nauthor Rosden Shadow [Mark Signorelli]\nhomepage rosden.itch.io\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\n#581AB2 #000000 #291E4C\n11111\n12121\n11211\n12121\n11111\n\n\nTarget\n#FF263B #911A45\n.....\n.0.0.\n..0..\n.0.0.\n.....\n(\n.0.0.\n.101.\n.010.\n.1.1.\n.....\n)\n(.....\n.0.0.\n..0..\n.0.0.\n.....)\n\n\n\n\n\nWall\n#1AB258 #0E664E #CBFF7F\n02222\n10002\n10002\n10002\n11110\n\nPlayer\n#4CB5FF #26FFEA #263BFF\n.000.\n.202.\n01110\n.111.\n.2.2.\n\nCrate\n#FFB37F #993D74 #FFFFFF\n02222\n10002\n10002\n10002\n11110\n\n\n\nCratepos\nred\n00000\n0...0\n0...0\n0...0\n00000\n\n\nCrateneg\nblue\n00000\n0...0\n0...0\n0...0\n00000\n\nfloor\nblack\n.....\n.....\n.....\n.....\n.....\n\nfloor0\nblack\n.....\n.....\n.....\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n+ = cratepos\n- = crateneg\n@ = Crate and Target\nt = Target\n\nObject = Crate or Player or Wall\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nfloor,floor0\nTarget\nPlayer, Wall, Crate,Cratepos,Crateneg\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ player | > Crate ]\n\n[ > crate | crate] -> [ > crate | > crate ]\n\n[ > Player | Cratepos ] -> [ > Player | > Cratepos ]\n\n[ > Player | Crateneg ] -> [ > Player | > Crateneg ]\n\nlate [Floor no Object] -> [no Floor Crate]\n\n[crate no Floor] -> [crate floor]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage the goal is to cover-up all the red crosses\n\nmessage level 1 of 1\n#########\n#ttttttt#\n#t.....t#\n#t.....t#\n#t..*.pt#\n#t.....t#\n#t.....t#\n#ttttttt#\n#########\n\nmessage Good work!\n\n", [1, 1, 1, 0, 1, 2, 2, 1, 1, 2, 1, 2, 2, 3, 3, 3, 2, 3, 3, 3, 3, 3], "background wall:0,0,0,0,0,0,0,0,0,\n0,background target:1,1,1,1,1,1,1,0,\n0,1,background:2,2,background crate floor:3,3,2,1,0,\n0,1,2,2,3,3,background player:4,1,0,\n0,1,2,2,3,3,background crate:5,1,0,\n0,1,2,2,2,3,3,1,0,\n0,1,2,2,2,3,3,1,0,\n0,1,1,1,1,1,background crate target:6,1,0,\n0,0,0,0,0,0,0,0,0,\n", 2, "1627770402138.347"] ], [ `galley game: easy enigma`, - ["title Easy Enigma\n\nrun_rules_on_level_start\nrealtime_interval 0.2\n\nnorepeat_action\n\nbackground_color black\n\nflickscreen 42x19\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nfakeground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\nfakeWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\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\ncapa あ\nblack transparent\n01100\n10010\n11110\n10010\n10010\n\ncapb い\nblack transparent\n11100\n10010\n11100\n10010\n11100\n\ncapc う\nblack transparent\n01110\n10000\n10000\n10000\n01110\n\ncapd え\nblack transparent\n11100\n10010\n10010\n10010\n11100\n\ncape 1\nblack transparent\n11110\n10000\n11100\n10000\n11110\n\ncapf お\nblack transparent\n11110\n10000\n11100\n10000\n10000\n\ncapg か\nblack transparent\n01110\n10000\n10110\n10010\n01100\n\ncaph き\nblack transparent\n10010\n10010\n11110\n10010\n10010\n\ncapi く\nblack transparent\n01110\n00100\n00100\n00100\n01110\n\ncapj け\nblack transparent\n11110\n00100\n00100\n10100\n01000\n\ncapk こ\nblack transparent\n10010\n10010\n11100\n10010\n10010\n\ncapl そ\nblack transparent\n10000\n10000\n10000\n10000\n11110\n\ncapm し\nblack transparent\n01010\n10101\n10101\n10101\n10101\n\ncapn ゐ\nblack transparent\n10010\n11010\n10110\n10010\n10010\n\ncapo る\nblack transparent\n01100\n10010\n10010\n10010\n01100\n\ncapp ら\nblack transparent\n11100\n10010\n11100\n10000\n10000\n\ncapq み\nblack transparent\n01100\n10010\n10010\n10110\n01110\n\ncapr 5\nblack transparent\n11100\n10010\n11100\n10010\n10010\n\ncaps 2\nblack transparent\n01110\n10000\n01100\n00010\n11100\n\ncapt わ\nblack transparent\n01110\n00100\n00100\n00100\n00100\n\ncapu ゆ\nblack transparent\n10010\n10010\n10010\n10010\n01100\n\ncapv を\nblack transparent\n10010\n10010\n10100\n11000\n10000\n\ncapw む\nblack transparent\n10001\n10101\n10101\n10101\n01010\n\ncapx 3\nblack transparent\n10010\n10010\n01100\n10010\n10010\n\ncapy ふ\nblack transparent\n10010\n10010\n01110\n00010\n11100\n\ncapz 4\nblack transparent\n11110\n00010\n00100\n01000\n11110\n\nlhash 6\nblack transparent\n01010\n11111\n01010\n11111\n01010\n\nrhash 0\nblack transparent\n01010\n11111\n01010\n11111\n01010\n\n\na\nblack transparent\n00000\n01110\n10010\n10010\n01110\n\nb\nblack transparent\n10000\n10000\n11100\n10010\n01100\n\nc\nblack transparent\n00000\n01110\n10000\n10000\n01110\n\nd\nblack transparent\n00010\n00010\n01110\n10010\n01100\n\ne\nblack transparent\n01100\n10010\n11100\n10000\n01100\n\nf\nblack transparent\n00000\n00110\n01000\n11100\n01000\n\ng\nblack transparent\n01100\n10010\n01110\n00010\n01100\n\nh\nblack transparent\n10000\n10000\n11100\n10010\n10010\n\ni\nblack transparent\n01000\n00000\n11000\n01000\n11100\n\nj\nblack transparent\n00100\n00000\n00100\n10100\n01000\n\nk\nblack transparent\n10000\n10010\n11100\n10010\n10010\n\nl\nblack transparent\n10000\n10000\n10000\n10010\n01100\n\nm\nblack transparent\n00000\n01010\n10101\n10101\n10101\n\nn\nblack transparent\n00000\n01100\n10010\n10010\n10010\n\no\nblack transparent\n00000\n01100\n10010\n10010\n01100\n\np\nblack transparent\n00000\n01100\n10010\n11100\n10000\n\nq\nblack transparent\n00000\n01100\n10010\n01110\n00010\n\nr\nblack transparent\n00000\n01110\n10000\n10000\n10000\n\ns\nblack transparent\n01110\n10000\n01100\n00010\n11100\n\nt\nblack transparent\n10000\n11000\n10000\n10010\n01100\n\nu\nblack transparent\n00000\n10010\n10010\n10010\n01100\n\nv\nblack transparent\n00000\n10010\n10100\n11000\n10000\n\nw\nblack transparent\n00000\n10001\n10101\n10101\n01010\n\nx\nblack transparent\n00000\n10010\n01100\n01100\n10010\n\ny\nblack transparent\n10010\n10010\n01110\n00010\n11100\n\nz\nblack transparent\n00000\n11110\n00100\n01000\n11110\n\nglitch1\ntransparent\n\nglitch2\ntransparent\n\nwhite\nwhite\n\nblack\nblack\n\nmark\ntransparent\n\nmark2\ntransparent\n\nglitchright1\n#af1239 #2167ee\n00000\n11111\n...1.\n00000\n.....\n\nglitchright2\n#3fa257 #1878ff #ae2629\n.....\n012..\n...20\n22222\n11111\n\nglitchright3\n#c0ffee #3de312 #087a55\n00000\n..00.\n1111.\n....1\n22222\n\n\n\nglitchright4\ntransparent\n\nglitchright5\n#e451b8 #cbff12\n.0...\n0.000\n.00..\n11111\n.....\n\nglitchright6\n#12baef #55efcb #f16743\n.....\n22222\n000.0\n.....\n.1111\n\nroulette1\ntransparent\n\nroulette2\ntransparent\n\nroulette3\ntransparent\n\nroulette4\ntransparent\n\nroulette5\ntransparent\n\nroulette6\ntransparent\n\nglitch3\ntransparent\n\nglitch4\ntransparent\n\nglitch6\ntransparent\n\nback1\n black\n.00.0\n.00.0\n.00.0\n.00.0\n.00.0\n\nback2\n black\n00.0.\n00.0.\n00.0.\n00.0.\n00.0.\n\nback3\n black\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n\nback4\n black\n..0..\n..0..\n..0..\n..0..\n..0..\n\ntimer9\ntransparent\n\ntimer8\ntransparent\n\ntimer7\ntransparent\n\ntimer6\ntransparent\n\ntimer5\ntransparent\n\ntimer4\ntransparent\n\ntimer3\ntransparent\n\ntimer2\ntransparent\n\ntimer1\ntransparent\n\ntimer0\ntransparent\n\npressaction\ntransparent\n\ncover\nblack\n\nplay1\ntransparent\n\nplay2\ntransparent\n\nglitch5\ntransparent\n\ntextgrass\nwhite black\n11111\n11111\n11111\n11011\n11111\n\ntextwall\nwhite black\n11111\n10101\n11011\n10101\n11111\n\ntextsecret\nwhite black\n10001\n11101\n11001\n11111\n11011\n\ntextplayer\nwhite black\n11011\n11011\n11011\n11111\n11011\n\ntextcrate\nwhite black\n11111\n10001\n01111\n01111\n10001\n\ntexttarget\nwhite black\n10001\n01101\n10001\n11101\n10011\n\nplay3\ntransparent\n\nleftbracket ろ\nblack transparent\n01100\n01000\n01000\n01000\n01100\n\nrightbracket ゑ\nblack transparent\n00110\n00010\n00010\n00010\n00110\n\n\ncolon\nblack transparent\n00000\n01000\n00000\n01000\n00000\n\narrow り\nblack transparent\n00100\n00010\n11101\n00010\n00100\n \nvertica や\nblack transparent\n00100\n00100\n00100\n00100\n00100\n\nequals ひ\nblack transparent\n00000\n11110\n00000\n11110\n00000\n\ncaret れ\nblack transparent\n00000\n01000\n00100\n01000\n00000\n\ncomma よ\nblack transparent\n00000\n00000\n00000\n00100\n01000\n\ntmark\ntransparent\n\npmark\ntransparent\n\ncmark\ntransparent\n\nplay4\ntransparent\n\nnott\ntransparent\n\nnota\ntransparent\n\nnotr\ntransparent\n\nnotg\ntransparent\n\nnote\ntransparent\n\nplay5\ntransparent\n\nblackwall に\nblack\n\nsgoal の\ntransparent\n\ntgoal さ\ntransparent\n\nagoal た\ntransparent\n\nrgoal な\ntransparent\n\nggoal は\ntransparent\n\nmgoal ぬ\ntransparent\n\negoal ま\ntransparent\n\nending \"\ntransparent\n\nsf2 |\ntransparent\n\nfakeTarget =\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\ngreen\n#10ae1c\n\npurple\n#a055c0\n\ngrey\n#888888\n\nred\n#c11d16\n\nsfa め\ntransparent\n\nsfb へ\ntransparent\n\n\n=======\nLEGEND\n=======\n\n7 = timer2 and cover\n8 = timer5 and cover\n9 = timer9 and cover\n. = Background\n, = fakeground\n+ = Wall and fakeground\n? = player and fakeground\n- = Crate and fakeground\n~ = target and fakeground\n} = Crate and Target and fakeground\nglitchright = glitchright1 or glitchright2 or glitchright3 or glitchright4 or glitchright5 or glitchright6\nroulette = roulette1 or roulette2 or roulette3 or roulette4 or roulette5 or roulette6\nback = back1 or back2 or back3 or back4\ntimer = timer0 or timer1 or timer2 or timer3 or timer4 or timer5 or timer6 or timer7 or timer8 or timer9\n$ = glitch1\n% = glitch2\n& = glitch3\n* = glitch4\n^ = mark\n` = pressaction\n\\ = cover and player\n/ = play1\n> = play2\n{ = play3\n< = glitch5\n; = glitch6\n[ = textsecret and fakeground\n] = play4 and mark\ntext = textplayer or textgrass or textwall or textcrate or texttarget\n' = play5\nせ = p and pmark\nす = t and tmark\nと = c and cmark\n# = colon\nxmark = pmark or tmark or cmark\nitem = player or crate or wall\ncapxx = capq or capw or cape or capr or capt or capy or capu or capi or capo or capp or capa or caps or capd or capf or capg or caph or capj or capk or capl or capz or capx or capc or capv or capv or capb or capn or capm\nletter = 1 or 2 or 3 or 4 or 5 or q or w or e or r or t or y or u or i or o or p or a or s or d or f or g or h or j or k or l or z or x or c or v or b or n or m or leftbracket or rightbracket or vertica or arrow or equals or comma or caret or capq or capw or cape or capr or capt or capy or capu or capi or capo or capp or capa or caps or capd or capf or capg or caph or capj or capk or capl or capz or capx or capc or capv or capv or capb or capn or capm or colon\n: = fakewall\nxgoal = sgoal or tgoal or agoal or rgoal or ggoal or mgoal or egoal\ncols = grey or purple or green or red\n=======\nSOUNDS\n=======\n\nSFX7 24019108\nSFX8 5183708\nSFX9 32607708\nSFX0 51652308\nSFX1 11432507\nSFX2 10961308\n================\nCOLLISIONLAYERS\n================\n\nBackground\nfakeground, \nblack\nTarget\nsfa\nsfb\nfaketarget\nxgoal\nwhite\nback\nfakewall\nPlayer, Wall, Crate, blackwall\nred, green, purple, grey\nletter\n6, rhash\nending\nglitch1, glitch2, glitch3, glitch4, glitch5, glitch6, play1, play2, play3, play4, play5\nglitchright\nroulette\ntimer\nmark\nmark2\npressaction\ntmark, \ncmark, pmark\nnott, nota,notr,notg,note\ntext, textsecret\ncover\nsf2\n\n======\nRULES\n======\n\n[faketarget] -> [faketarget fakeground]\n\n[sf2] -> SFX2\n[action player][pressaction] -> [player][]\n\n\n[player cover no timer] -> [player cover mark2]\n[player cover mark2][pressaction] -> [player cover ][pressaction]\n\n\nleft [player cover mark2][lhash|] -> [player cover mark2][lhash|lhash]\nright [player cover mark2][rhash|] -> [player cover mark2][rhash|rhash]\n[player cover mark2] -> [player cover]\n\n[timer0] -> []\n[timer1] -> [timer0]\n[timer2] -> [timer1]\n[timer3] -> [timer2]\n[timer4] -> [timer3]\n[timer5] -> [timer4]\n[timer6] -> [timer5]\n[timer7] -> [timer6]\n[timer8] -> [timer7]\n[timer9] -> [timer8]\n\n\n\nlate [letter no white] -> [letter white]\n\n[6 no white] -> [6 white]\n[0 no white] -> [0 white]\n\nup [glitch1][letter ] -> [glitch1][random letter mark]\nleft [glitch1][letter |...| no mark] -> [glitch1][letter mark | ... |letter]\ndown [glitch1][letter |...| no mark] -> [glitch1][letter mark| ... |letter]\n\n\n\n[glitch2][glitchright no roulette] -> [glitch2][glitchright random roulette]\n[glitch2][roulette6 glitchright] -> [glitch2][]\n[glitch2][roulette] -> [glitch2][]\ndown [glitch2][no glitchright|mark] -> [glitch2][random glitchright|mark]\nright [glitch2][glitchright|] -> [glitch2][glitchright|glitchright]\n\n\nleft [glitch3][letter no mark| no letter] -> [glitch3][letter mark|letter ]\nleft [glitch3][letter no mark| mark] -> [glitch3][letter mark|letter mark]\nup [glitch3][letter no mark| no letter] -> [glitch3][letter mark|letter ]\nup [glitch3][letter no mark| mark] -> [glitch3][letter mark|letter mark]\n[glitch3][letter mark] -> [glitch3][letter]\n\n[glitch5][mark] -> [glitch5][]\nright [glitch5][3 no mark | no 3 | ] -> [glitch5][3|3 mark | 3 mark]\n\n[glitch4][letter no mark] -> [glitch4][letter random back mark]\n[glitch4][mark] -> [glitch4][] SFX0\n\n[play1][moving player][wall no roulette] -> [play1][moving player][wall random roulette]\n[play1][moving player][wall roulette6 mark2] -> [play1][moving player][]\n[play1][moving player][wall roulette6 mark] -> [play1][moving player][wall mark2]\n[play1][moving player][wall roulette6] -> [play1][moving player][wall mark]\n[play1][moving player][roulette] -> [play1][moving player][]\n\n\n[play2][no fakeground no black] -> [play2][black]\n[play2][no fakeground] -> [play2][fakeground ]\n[play2][moving player][black] -> [play2][moving player][moving black]\n[play2][moving player][fakeground] -> [play2][moving player][moving fakeground]\n[play2][> fakeground no black no mark| black] -> [play2][> fakeground | mark]\n[play2][moving player] -> [play2][stationary player]\n[play2][> black | wall] -> [play2][> black | > wall]\n[play2][moving wall | wall] -> [play2][moving wall | moving wall]\n[play2][> wall | player] -> [play2][> wall | > player]\n[play2][> wall | crate] -> [play2][> wall | > crate]\n[play2][> player | wall] -> [play2][> player | > wall]\n[play2][> crate | wall] -> [play2][> crate | > wall]\n[play2][> crate | player] -> [play2][> crate | > player]\n[play2][> player | crate] -> [play2][> player | > crate]\n\nlate [play3][text] -> [play3][]\nlate [play3][crate] -> [play3][ textcrate crate]\nlate [play3][player] -> [play3 ][textplayer player]\n[play3][> player | letter no c no g] -> [play3][stationary player | letter]\n \nlate [play3][target no crate no player] -> [play3][ texttarget target]\nlate [play3][fakeground no crate no wall no player no target no textsecret] -> [play3 ][textgrass fakeground]\nlate [play3][wall] -> [play3 ][textwall wall]\n\nright [play4 mark][pmark | letter no comma no vertica] -> [play4 mark][pmark | pmark letter]\nright [play4 mark][tmark | letter] -> [play4 mark][tmark | tmark letter]\nright [play4 mark][cmark | letter no rightbracket no comma] -> [play4 mark][cmark | cmark letter]\n[play4 mark] -> [play4]\n\n[play4][t tmark no nott no nota no notr no notg no note] -> [play4][t tmark nott]\n[play4][a tmark no nott no nota no notr no notg no note] -> [play4][a tmark nota]\n[play4][r tmark no nott no nota no notr no notg no note] -> [play4][r tmark notr]\n[play4][g tmark no nott no nota no notr no notg no note] -> [play4][g tmark notg]\n[play4][e tmark no nott no nota no notr no notg no note] -> [play4][e tmark note]\n\nlate [play4][white no letter] -> [play4][]\n[play4][moving player][pmark letter] -> [play4][moving player][moving pmark moving letter]\n\n[play4][> pmark > letter| stationary letter no cmark no tmark no pmark] -> [play4][stationary pmark stationary letter | letter]\n+ [play4][> cmark > letter| stationary letter no tmark no cmark] -> [play4][stationary cmark stationary letter | letter]\n+ [play4][stationary letter stationary pmark | letter pmark] -> [play4][stationary letter stationary pmark |stationary letter stationary pmark]\n+ [play4][stationary letter stationary cmark | letter cmark] -> [play4][stationary letter stationary cmark |stationary letter stationary cmark]\n\n[play4][> letter > pmark | letter cmark] -> [play4][> letter > pmark |> letter > cmark]\n+ [play4][> letter > cmark | letter cmark] -> [play4][> letter > cmark |> letter > cmark]\n+ [play4][moving letter moving pmark | letter pmark] -> [play4][moving letter moving pmark |moving letter moving pmark]\n+ [play4][moving letter moving cmark | letter cmark] -> [play4][moving letter moving cmark |moving letter moving cmark]\n\n\n[sfa] -> SFX1\n[sfb] -> SFX7\n[sfb] -> SFX9\n\n\n[> letter | letter tmark no pmark no cmark] -> [> letter | tmark]\nlate [tmark no letter nott] -> [tmark t]\nlate [tmark no letter nota] -> [tmark a]\nlate [tmark no letter notg] -> [tmark g]\nlate [tmark no letter note] -> [tmark e]\nlate [tmark no letter notr] -> [tmark r]\n\nlate [play4][letter no white] -> [play4][letter white]\n\n\n[play4][> pmark > letter| stationary letter] -> [play4][stationary pmark stationary letter | letter]\n+ [play4][> cmark > letter| stationary letter] -> [play4][stationary cmark stationary letter | letter]\n+ [play4][stationary letter stationary pmark | letter pmark] -> [play4][stationary letter stationary pmark |stationary letter stationary pmark]\n+ [play4][stationary letter stationary cmark | letter cmark] -> [play4][stationary letter stationary cmark |stationary letter stationary cmark]\n\n\n[cover moving player] -> [cover stationary player]\n\n[> player | crate] -> [> player | > crate] SFX1\n\n\n[play3][> crate | letter] -> [play3][stationary crate |stationary letter]\n[play3][> player | stationary crate] -> [play3][stationary player |stationary crate]\n\n[play5][> player | wall] -> [play5][> player | > wall]\n\n[play5][> wall | letter] -> [play5][stationary wall | letter]\n[play5][> wall | blackwall] -> [play5][stationary wall | blackwall]\n[play5][> wall | lhash] -> [play5][stationary wall | lhash]\n[play5][> wall | rhash] -> [play5][stationary wall | rhash]\n[play5][> wall | wall] -> [play5][stationary wall | wall]\n[play5][> wall | crate] -> [play5][stationary wall | crate]\n\n[play5][> player | letter] -> [play5][> player | > letter]\nlate [play5][white no letter no 6 no 0] -> [play5][]\n\n[play5][> letter | wall] -> [play5][stationary letter | wall]\n[play5][> letter | letter] -> [play5][stationary letter | letter]\n[play5][> letter | blackwall] -> [play5][stationary letter | blackwall]\n[play5][> letter | lhash] -> [play5][stationary letter | lhash]\n[play5][> letter | rhash] -> [play5][stationary letter | rhash]\n[play5][> letter | crate] -> [play5][stationary letter | crate]\n[play5][> player | stationary letter] -> [play5][stationary player | stationary letter]\n[play5][> player | stationary wall] -> [play5][stationary player | stationary wall]\n\n[play5] -> [play5 mark2]\n[play5 mark2][sgoal no s] -> [play5][sgoal]\n[play5 mark2][tgoal no t] -> [play5][tgoal]\n[play5 mark2][agoal no a] -> [play5][agoal]\n[play5 mark2][rgoal no r] -> [play5][rgoal]\n[play5 mark2][ggoal no g] -> [play5][ggoal]\n[play5 mark2][mgoal no m] -> [play5][mgoal]\n[play5 mark2][egoal no e] -> [play5][egoal]\n\n[action player][play5 no mark2] -> [player][play5]\n[play5][action player][pressaction] -> [play5][player][]\n[play5 mark2][pressaction] -> [play5][pressaction]\n\n\n\nleft [play5 mark2][lhash| no target] -> [play5 mark2][lhash|lhash]\n[lhash | target] -> [lhash | target crate]\n[lhash crate] -> [lhash]\nright [play5 mark2][rhash|] -> [play5 mark2][rhash|rhash]\n\n[glitch1][mark] -> [glitch1][]\n\n[crate target][player ending][play5] -> [crate target][player ending][]\n\n[glitch6][item no roulette] -> [glitch6 ][ item random roulette]\n[glitch6][item roulette6] -> [glitch6][random item]\n[glitch6][roulette] -> [glitch6][]\n\n\n\nlate [fakeground][player no fakeground] -> [fakeground][player fakeground]\n\nlate [play4][xmark] -> [play4][xmark green]\nlate [play4][equals] -> [play4][equals grey]\nlate [play4][caret] -> [play4][caret red]\nlate [play4][arrow] -> [play4][arrow red]\nlate [play4][capxx] -> [play4][capxx purple]\nlate right [play4][white a no grey no green no red | ... | green ] -> [play4][white a purple | ... | green ]\nlate right [play4][white l no grey no green no red| ... | green ] -> [play4][white l purple | ... | green ]\nlate right [play4][white o no grey no green no red| ... | green ] -> [play4][white o purple | ... | green ]\nlate right [play4][white n no grey no green no red| ... | green ] -> [play4][white n purple | ... | green ]\nlate [play4][letter no rightbracket no leftbracket no vertica no purple no grey no red] -> [play4][letter green]\n\nlate [green no letter] -> []\nlate [red no letter] -> []\nlate [grey no letter] -> []\nlate [purple no letter] -> []\n==============\nWINCONDITIONS\n==============\nno timer\nall target on crate\nno pressaction\nall notg on cmark\nno play5\n\n\n\n=======\nLEVELS\n=======\n\n\n\n(..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++++,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n.........................................;)\n\n\n\n\n\n\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............,,,,,,,,,,,,,...............\n..............,+++++++++++,...............\n..............,+,?-,,,,~,+,...............\n..............,+++++++++++,...............\n..............,,,,,,,,,,,,,...............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n...you.can.only.push.one.box.at.a.time....\n..........................................\n..........................................\n..........................................\n...........press.3.to.continue............\n..........................................\n..........................................\n..........................................\n.........................................`\n.........................................\\\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++++,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..dont.forget.to.press.5.if.you.get.stuck.\n..........................................\n..........................................\n..........................................\n...........press.3.to.continue............\n..........................................\n..........................................\n.........................................`\n.........................................`\n.........................................\\\n\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,dont7forget.to.press.5.if.you.get.stuck,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,press.3.to.continue,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,????,,,................\n................,???,,???,................\n................,?+~,,~,?,................\n................,?,,--,,?,................\n................,????????,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+,,,,,,+,................\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time...|\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time...8\n...you.can.only.push.one.box.at.a.time....\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............,,,,,,,,,,,,,...............\n..............,+++++++++++,...............\n..dont.forget.to?pr-ss.5~if.you.get.stuck.\n..............,+++++++++++,...............\n..............,,,,,,,,,,,,,...............\n..........................................\n...........press.3.to.continue............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n++++,,++++++++,,++++++++,,++++++++,,++++++\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n++,,,,,,++++,,,,,,++++,,,,,,++++,,,,,,++++\n,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+\n,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n++++,,++++++++,,++++++++,,++++++++,,++++++\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n++,,,,,,++++,,,,,,++++,,,,,,++++,,,,,,++++\n,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+\n,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,9-\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n++++,,++++++++,,++++++++,,++++++++,,++++++\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n++,,,,,,++++,,,,,,++++,,,,,,++++,,,,,,++++\n,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+\n,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,へ-\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n++++,,++++++++,,++++++++,,++++++++,,++++++\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n++,,,,,,++++,,,,,,++++,,,,,,++++,,,,,,++++\n,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+\n,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n\n..........................................\n..........................................\n...............1ゐかくゐ1.155る5...............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.0..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n.........................................`\n.........................................\\\n\n&.........................................\n..........................................\n...............1ゐかくゐ1.155る5.........7.....\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.0..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n..........................................\n..........................................\n\n(..........................................\n..........................................\n...............1ngine.1rror...............\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++++,................\n................,,,,,,,,,,................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n..........................................\n.........................................>)\n\n\n\n\n\n..........................................\n..........................................\n..........................................\n..............2?+,~-}.....................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++++,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n\n%.....................................7...\n.....................^....................\n...............1ゐかくゐ1.155る5...............\n..........................................\n..........................................\n...........^..............................\n..........................................\n..........................................\n..............6.2tart.game.6..............\n.....................^....................\n..........................................\n..........................................\narrow.keys.to.move........................\n...^......................................\n3.to.action...............................\n..................................^.......\n4.to.undo..5.to.restart...................\n..........................................\n..............^...........................\n\nect.canmove.has.been.defined.but.not.assig\n..........................................\nule.matches.object.types.that.cant.overlap\n..........................................\n.name.crtae.referred.to.in.a.rule.does.not\n..........................................\no.indicate.in.which.direction.a.rule.appli\n..........................................\nch.on.the.left.must.have.a.corresponding.p\n..........................................\n.was.looking.for.color.for.object.playerle\n..........................................\ned.an.object.v.but.this.is.a.keyword.dont.\n................\\`````````````............\n...........press.3.to.continue............\n.........................................<\n.arrow.here.consider.reading.up.about.rule\n..........................................\nrors.detected.during.compilation.the.game.\n\n..........................................\n..........................................\n...............1ゐかくゐ1.155る5...............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.0..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undoよ.5.to.restart...................\n.........................................`\n.........................................\\\n\n*....................め....................\n..........................................\n...............1ゐかくゐ1.155る5..........8....\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.0..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n..........................................\n..........................................\n\n\n\n\n\n..........................................\n..........................................\nらrintin~.level.-ontents#..................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++[+,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n.........................................{\n\n$.....................................7...\n.....................^....................\n...............1ゐかくゐ1.155る5...............\n..........................................\n..........................................\n...........^..............................\n..........................................\n..........................................\n..............6.2tart.game.6..............\n.....................^....................\n..........................................\n..........................................\narrow.keys.to.move........................\n...^......................................\n3.to.action...............................\n..................................^.......\n4.to.undo..5.to.restart...................\n..........................................\n..............^...........................\n\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\n.........................................7\n\nひひひひひひひひひひひひひひひひ..........................\nうるそそく2くるゐそあふ152...........................\nひひひひひひひひひひひひひひひひ..........................\nbackground................................\nとrateよ.せlayer.............................\nすarget....................................\n..........................................\nひひひひひひ....................................\n5ゆそ12.....................................\nひひひひひひ....................................\nろれ.せlayerやとrateゑりろれ.せlayerやれ.とrateゑ.......\n..........................................\nひひひひひひひひひひひひひひ............................\nむくゐうるゐえくわくるゐ2.............................\nひひひひひひひひひひひひひひ............................\n..........................................\nall.すarget.on.とrate.......................\n.........................................\\\nひひひひひひひひひ................................]\n\n\n\n......................................\"............................................'\n......................................\".............................................\n......................................\".................1ngine.1rror................\n......................................\".............................................\n......................................\".............................................\n......................................\".............................................\n................,,,,,,,,,,............\".............................................\n................,++++++++,............\".............................................\n................,+?,~,-,+,............\"................6.のさたなさ.はたぬま.0...............\n................,++++++++,............\".............................................\n................,,,,,,,,,,............\".............................................\n......................................\".............................................\n......................................\"..arrow.keys.to.move.........................\n......................................\".............................................\n......................................\"..3.to.action................................\n......................................\".............................................\n......................................\"..4.to.undo..5.to.restart....................\n......................................\"...にににににににににににににににににににににににににににににににににににににににににに\n......................................\"...にににににににににににににににににににににににににににににににににににににににににに\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n(\n\n\n\n..........................................\n..........................................\n...............1ngine.1rror...............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.6..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n..........................................\n..........................................\n",["tick","tick","tick",3,3,"tick",3,"tick","tick",3,"tick",3,"tick","tick",4,"tick","tick","tick","tick",3,"tick",2,"tick",3,"tick",3,0,"tick",1,2,"tick","tick","tick",0,"tick","undo","tick","undo","tick","undo","tick",0,"tick",1,2,"tick",3,2,"tick","tick",3,"tick",3,0,"tick",1,"tick","tick","tick",0,"tick",0,3,"tick",3,"tick",3,2,"tick",3,3,2,"tick",1,"tick",1,"tick","tick",1,"tick",0,"tick",0,3,"tick",2,1,"tick",1,"tick",1,2,3,"tick","tick","tick",4,"tick","tick","tick","tick",4,"tick","tick","tick","tick","tick",2,"tick",2,"tick",2,"tick",2,"tick","tick","tick","tick"],"background: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,\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,\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,\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,\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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background fakeground:1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,background fakeground player:2,\n2,2,2,0,0,0,0,0,0,0,0,0,1,1,2,background fakeground wall:3,1,1,1,1,1,2,0,0,0,0,0,0,0,0,0,1,1,1,background fakeground target:4,1,2,2,1,1,2,0,\n0,0,0,0,0,0,0,0,1,1,1,1,1,2,background crate fakeground:5,1,1,2,0,0,0,0,0,0,0,0,0,1,1,1,1,1,2,5,1,1,2,0,0,0,0,0,\n0,0,0,0,1,1,1,4,1,2,2,1,1,2,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,2,1,1,2,0,0,0,0,0,0,0,0,0,\n1,1,1,1,1,1,2,2,2,2,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,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,\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,\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,\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,\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,\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,\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,\n",0,"1627770452561.3662"] + ["title Easy Enigma\n\nrun_rules_on_level_start\nrealtime_interval 0.2\n\nnorepeat_action\n\nbackground_color black\n\nflickscreen 42x19\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nfakeground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\nfakeWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\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\ncapa あ\nblack transparent\n01100\n10010\n11110\n10010\n10010\n\ncapb い\nblack transparent\n11100\n10010\n11100\n10010\n11100\n\ncapc う\nblack transparent\n01110\n10000\n10000\n10000\n01110\n\ncapd え\nblack transparent\n11100\n10010\n10010\n10010\n11100\n\ncape 1\nblack transparent\n11110\n10000\n11100\n10000\n11110\n\ncapf お\nblack transparent\n11110\n10000\n11100\n10000\n10000\n\ncapg か\nblack transparent\n01110\n10000\n10110\n10010\n01100\n\ncaph き\nblack transparent\n10010\n10010\n11110\n10010\n10010\n\ncapi く\nblack transparent\n01110\n00100\n00100\n00100\n01110\n\ncapj け\nblack transparent\n11110\n00100\n00100\n10100\n01000\n\ncapk こ\nblack transparent\n10010\n10010\n11100\n10010\n10010\n\ncapl そ\nblack transparent\n10000\n10000\n10000\n10000\n11110\n\ncapm し\nblack transparent\n01010\n10101\n10101\n10101\n10101\n\ncapn ゐ\nblack transparent\n10010\n11010\n10110\n10010\n10010\n\ncapo る\nblack transparent\n01100\n10010\n10010\n10010\n01100\n\ncapp ら\nblack transparent\n11100\n10010\n11100\n10000\n10000\n\ncapq み\nblack transparent\n01100\n10010\n10010\n10110\n01110\n\ncapr 5\nblack transparent\n11100\n10010\n11100\n10010\n10010\n\ncaps 2\nblack transparent\n01110\n10000\n01100\n00010\n11100\n\ncapt わ\nblack transparent\n01110\n00100\n00100\n00100\n00100\n\ncapu ゆ\nblack transparent\n10010\n10010\n10010\n10010\n01100\n\ncapv を\nblack transparent\n10010\n10010\n10100\n11000\n10000\n\ncapw む\nblack transparent\n10001\n10101\n10101\n10101\n01010\n\ncapx 3\nblack transparent\n10010\n10010\n01100\n10010\n10010\n\ncapy ふ\nblack transparent\n10010\n10010\n01110\n00010\n11100\n\ncapz 4\nblack transparent\n11110\n00010\n00100\n01000\n11110\n\nlhash 6\nblack transparent\n01010\n11111\n01010\n11111\n01010\n\nrhash 0\nblack transparent\n01010\n11111\n01010\n11111\n01010\n\n\na\nblack transparent\n00000\n01110\n10010\n10010\n01110\n\nb\nblack transparent\n10000\n10000\n11100\n10010\n01100\n\nc\nblack transparent\n00000\n01110\n10000\n10000\n01110\n\nd\nblack transparent\n00010\n00010\n01110\n10010\n01100\n\ne\nblack transparent\n01100\n10010\n11100\n10000\n01100\n\nf\nblack transparent\n00000\n00110\n01000\n11100\n01000\n\ng\nblack transparent\n01100\n10010\n01110\n00010\n01100\n\nh\nblack transparent\n10000\n10000\n11100\n10010\n10010\n\ni\nblack transparent\n01000\n00000\n11000\n01000\n11100\n\nj\nblack transparent\n00100\n00000\n00100\n10100\n01000\n\nk\nblack transparent\n10000\n10010\n11100\n10010\n10010\n\nl\nblack transparent\n10000\n10000\n10000\n10010\n01100\n\nm\nblack transparent\n00000\n01010\n10101\n10101\n10101\n\nn\nblack transparent\n00000\n01100\n10010\n10010\n10010\n\no\nblack transparent\n00000\n01100\n10010\n10010\n01100\n\np\nblack transparent\n00000\n01100\n10010\n11100\n10000\n\nq\nblack transparent\n00000\n01100\n10010\n01110\n00010\n\nr\nblack transparent\n00000\n01110\n10000\n10000\n10000\n\ns\nblack transparent\n01110\n10000\n01100\n00010\n11100\n\nt\nblack transparent\n10000\n11000\n10000\n10010\n01100\n\nu\nblack transparent\n00000\n10010\n10010\n10010\n01100\n\nv\nblack transparent\n00000\n10010\n10100\n11000\n10000\n\nw\nblack transparent\n00000\n10001\n10101\n10101\n01010\n\nx\nblack transparent\n00000\n10010\n01100\n01100\n10010\n\ny\nblack transparent\n10010\n10010\n01110\n00010\n11100\n\nz\nblack transparent\n00000\n11110\n00100\n01000\n11110\n\nglitch1\ntransparent\n\nglitch2\ntransparent\n\nwhite\nwhite\n\nblack\nblack\n\nmark\ntransparent\n\nmark2\ntransparent\n\nglitchright1\n#af1239 #2167ee\n00000\n11111\n...1.\n00000\n.....\n\nglitchright2\n#3fa257 #1878ff #ae2629\n.....\n012..\n...20\n22222\n11111\n\nglitchright3\n#c0ffee #3de312 #087a55\n00000\n..00.\n1111.\n....1\n22222\n\n\n\nglitchright4\ntransparent\n\nglitchright5\n#e451b8 #cbff12\n.0...\n0.000\n.00..\n11111\n.....\n\nglitchright6\n#12baef #55efcb #f16743\n.....\n22222\n000.0\n.....\n.1111\n\nroulette1\ntransparent\n\nroulette2\ntransparent\n\nroulette3\ntransparent\n\nroulette4\ntransparent\n\nroulette5\ntransparent\n\nroulette6\ntransparent\n\nglitch3\ntransparent\n\nglitch4\ntransparent\n\nglitch6\ntransparent\n\nback1\n black\n.00.0\n.00.0\n.00.0\n.00.0\n.00.0\n\nback2\n black\n00.0.\n00.0.\n00.0.\n00.0.\n00.0.\n\nback3\n black\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n\nback4\n black\n..0..\n..0..\n..0..\n..0..\n..0..\n\ntimer9\ntransparent\n\ntimer8\ntransparent\n\ntimer7\ntransparent\n\ntimer6\ntransparent\n\ntimer5\ntransparent\n\ntimer4\ntransparent\n\ntimer3\ntransparent\n\ntimer2\ntransparent\n\ntimer1\ntransparent\n\ntimer0\ntransparent\n\npressaction\ntransparent\n\ncover\nblack\n\nplay1\ntransparent\n\nplay2\ntransparent\n\nglitch5\ntransparent\n\ntextgrass\nwhite black\n11111\n11111\n11111\n11011\n11111\n\ntextwall\nwhite black\n11111\n10101\n11011\n10101\n11111\n\ntextsecret\nwhite black\n10001\n11101\n11001\n11111\n11011\n\ntextplayer\nwhite black\n11011\n11011\n11011\n11111\n11011\n\ntextcrate\nwhite black\n11111\n10001\n01111\n01111\n10001\n\ntexttarget\nwhite black\n10001\n01101\n10001\n11101\n10011\n\nplay3\ntransparent\n\nleftbracket ろ\nblack transparent\n01100\n01000\n01000\n01000\n01100\n\nrightbracket ゑ\nblack transparent\n00110\n00010\n00010\n00010\n00110\n\n\ncolon\nblack transparent\n00000\n01000\n00000\n01000\n00000\n\narrow り\nblack transparent\n00100\n00010\n11101\n00010\n00100\n \nvertica や\nblack transparent\n00100\n00100\n00100\n00100\n00100\n\nequals ひ\nblack transparent\n00000\n11110\n00000\n11110\n00000\n\ncaret れ\nblack transparent\n00000\n01000\n00100\n01000\n00000\n\ncomma よ\nblack transparent\n00000\n00000\n00000\n00100\n01000\n\ntmark\ntransparent\n\npmark\ntransparent\n\ncmark\ntransparent\n\nplay4\ntransparent\n\nnott\ntransparent\n\nnota\ntransparent\n\nnotr\ntransparent\n\nnotg\ntransparent\n\nnote\ntransparent\n\nplay5\ntransparent\n\nblackwall に\nblack\n\nsgoal の\ntransparent\n\ntgoal さ\ntransparent\n\nagoal た\ntransparent\n\nrgoal な\ntransparent\n\nggoal は\ntransparent\n\nmgoal ぬ\ntransparent\n\negoal ま\ntransparent\n\nending \"\ntransparent\n\nsf2 |\ntransparent\n\nfakeTarget =\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\ngreen\n#10ae1c\n\npurple\n#a055c0\n\ngrey\n#888888\n\nred\n#c11d16\n\nsfa め\ntransparent\n\nsfb へ\ntransparent\n\n\n=======\nLEGEND\n=======\n\n7 = timer2 and cover\n8 = timer5 and cover\n9 = timer9 and cover\n. = Background\n, = fakeground\n+ = Wall and fakeground\n? = player and fakeground\n- = Crate and fakeground\n~ = target and fakeground\n} = Crate and Target and fakeground\nglitchright = glitchright1 or glitchright2 or glitchright3 or glitchright4 or glitchright5 or glitchright6\nroulette = roulette1 or roulette2 or roulette3 or roulette4 or roulette5 or roulette6\nback = back1 or back2 or back3 or back4\ntimer = timer0 or timer1 or timer2 or timer3 or timer4 or timer5 or timer6 or timer7 or timer8 or timer9\n$ = glitch1\n% = glitch2\n& = glitch3\n* = glitch4\n^ = mark\n` = pressaction\n\\ = cover and player\n/ = play1\n> = play2\n{ = play3\n< = glitch5\n; = glitch6\n[ = textsecret and fakeground\n] = play4 and mark\ntext = textplayer or textgrass or textwall or textcrate or texttarget\n' = play5\nせ = p and pmark\nす = t and tmark\nと = c and cmark\n# = colon\nxmark = pmark or tmark or cmark\nitem = player or crate or wall\ncapxx = capq or capw or cape or capr or capt or capy or capu or capi or capo or capp or capa or caps or capd or capf or capg or caph or capj or capk or capl or capz or capx or capc or capv or capv or capb or capn or capm\nletter = 1 or 2 or 3 or 4 or 5 or q or w or e or r or t or y or u or i or o or p or a or s or d or f or g or h or j or k or l or z or x or c or v or b or n or m or leftbracket or rightbracket or vertica or arrow or equals or comma or caret or capq or capw or cape or capr or capt or capy or capu or capi or capo or capp or capa or caps or capd or capf or capg or caph or capj or capk or capl or capz or capx or capc or capv or capv or capb or capn or capm or colon\n: = fakewall\nxgoal = sgoal or tgoal or agoal or rgoal or ggoal or mgoal or egoal\ncols = grey or purple or green or red\n=======\nSOUNDS\n=======\n\nSFX7 24019108\nSFX8 5183708\nSFX9 32607708\nSFX0 51652308\nSFX1 11432507\nSFX2 10961308\n================\nCOLLISIONLAYERS\n================\n\nBackground\nfakeground, \nblack\nTarget\nsfa\nsfb\nfaketarget\nxgoal\nwhite\nback\nfakewall\nPlayer, Wall, Crate, blackwall\nred, green, purple, grey\nletter\n6, rhash\nending\nglitch1, glitch2, glitch3, glitch4, glitch5, glitch6, play1, play2, play3, play4, play5\nglitchright\nroulette\ntimer\nmark\nmark2\npressaction\ntmark, \ncmark, pmark\nnott, nota,notr,notg,note\ntext, textsecret\ncover\nsf2\n\n======\nRULES\n======\n\n[faketarget] -> [faketarget fakeground]\n\n[sf2] -> SFX2\n[action player][pressaction] -> [player][]\n\n\n[player cover no timer] -> [player cover mark2]\n[player cover mark2][pressaction] -> [player cover ][pressaction]\n\n\nleft [player cover mark2][lhash|] -> [player cover mark2][lhash|lhash]\nright [player cover mark2][rhash|] -> [player cover mark2][rhash|rhash]\n[player cover mark2] -> [player cover]\n\n[timer0] -> []\n[timer1] -> [timer0]\n[timer2] -> [timer1]\n[timer3] -> [timer2]\n[timer4] -> [timer3]\n[timer5] -> [timer4]\n[timer6] -> [timer5]\n[timer7] -> [timer6]\n[timer8] -> [timer7]\n[timer9] -> [timer8]\n\n\n\nlate [letter no white] -> [letter white]\n\n[6 no white] -> [6 white]\n[0 no white] -> [0 white]\n\nup [glitch1][letter ] -> [glitch1][random letter mark]\nleft [glitch1][letter |...| no mark] -> [glitch1][letter mark | ... |letter]\ndown [glitch1][letter |...| no mark] -> [glitch1][letter mark| ... |letter]\n\n\n\n[glitch2][glitchright no roulette] -> [glitch2][glitchright random roulette]\n[glitch2][roulette6 glitchright] -> [glitch2][]\n[glitch2][roulette] -> [glitch2][]\ndown [glitch2][no glitchright|mark] -> [glitch2][random glitchright|mark]\nright [glitch2][glitchright|] -> [glitch2][glitchright|glitchright]\n\n\nleft [glitch3][letter no mark| no letter] -> [glitch3][letter mark|letter ]\nleft [glitch3][letter no mark| mark] -> [glitch3][letter mark|letter mark]\nup [glitch3][letter no mark| no letter] -> [glitch3][letter mark|letter ]\nup [glitch3][letter no mark| mark] -> [glitch3][letter mark|letter mark]\n[glitch3][letter mark] -> [glitch3][letter]\n\n[glitch5][mark] -> [glitch5][]\nright [glitch5][3 no mark | no 3 | ] -> [glitch5][3|3 mark | 3 mark]\n\n[glitch4][letter no mark] -> [glitch4][letter random back mark]\n[glitch4][mark] -> [glitch4][] SFX0\n\n[play1][moving player][wall no roulette] -> [play1][moving player][wall random roulette]\n[play1][moving player][wall roulette6 mark2] -> [play1][moving player][]\n[play1][moving player][wall roulette6 mark] -> [play1][moving player][wall mark2]\n[play1][moving player][wall roulette6] -> [play1][moving player][wall mark]\n[play1][moving player][roulette] -> [play1][moving player][]\n\n\n[play2][no fakeground no black] -> [play2][black]\n[play2][no fakeground] -> [play2][fakeground ]\n[play2][moving player][black] -> [play2][moving player][moving black]\n[play2][moving player][fakeground] -> [play2][moving player][moving fakeground]\n[play2][> fakeground no black no mark| black] -> [play2][> fakeground | mark]\n[play2][moving player] -> [play2][stationary player]\n[play2][> black | wall] -> [play2][> black | > wall]\n[play2][moving wall | wall] -> [play2][moving wall | moving wall]\n[play2][> wall | player] -> [play2][> wall | > player]\n[play2][> wall | crate] -> [play2][> wall | > crate]\n[play2][> player | wall] -> [play2][> player | > wall]\n[play2][> crate | wall] -> [play2][> crate | > wall]\n[play2][> crate | player] -> [play2][> crate | > player]\n[play2][> player | crate] -> [play2][> player | > crate]\n\nlate [play3][text] -> [play3][]\nlate [play3][crate] -> [play3][ textcrate crate]\nlate [play3][player] -> [play3 ][textplayer player]\n[play3][> player | letter no c no g] -> [play3][stationary player | letter]\n \nlate [play3][target no crate no player] -> [play3][ texttarget target]\nlate [play3][fakeground no crate no wall no player no target no textsecret] -> [play3 ][textgrass fakeground]\nlate [play3][wall] -> [play3 ][textwall wall]\n\nright [play4 mark][pmark | letter no comma no vertica] -> [play4 mark][pmark | pmark letter]\nright [play4 mark][tmark | letter] -> [play4 mark][tmark | tmark letter]\nright [play4 mark][cmark | letter no rightbracket no comma] -> [play4 mark][cmark | cmark letter]\n[play4 mark] -> [play4]\n\n[play4][t tmark no nott no nota no notr no notg no note] -> [play4][t tmark nott]\n[play4][a tmark no nott no nota no notr no notg no note] -> [play4][a tmark nota]\n[play4][r tmark no nott no nota no notr no notg no note] -> [play4][r tmark notr]\n[play4][g tmark no nott no nota no notr no notg no note] -> [play4][g tmark notg]\n[play4][e tmark no nott no nota no notr no notg no note] -> [play4][e tmark note]\n\nlate [play4][white no letter] -> [play4][]\n[play4][moving player][pmark letter] -> [play4][moving player][moving pmark moving letter]\n\n[play4][> pmark > letter| stationary letter no cmark no tmark no pmark] -> [play4][stationary pmark stationary letter | letter]\n+ [play4][> cmark > letter| stationary letter no tmark no cmark] -> [play4][stationary cmark stationary letter | letter]\n+ [play4][stationary letter stationary pmark | letter pmark] -> [play4][stationary letter stationary pmark |stationary letter stationary pmark]\n+ [play4][stationary letter stationary cmark | letter cmark] -> [play4][stationary letter stationary cmark |stationary letter stationary cmark]\n\n[play4][> letter > pmark | letter cmark] -> [play4][> letter > pmark |> letter > cmark]\n+ [play4][> letter > cmark | letter cmark] -> [play4][> letter > cmark |> letter > cmark]\n+ [play4][moving letter moving pmark | letter pmark] -> [play4][moving letter moving pmark |moving letter moving pmark]\n+ [play4][moving letter moving cmark | letter cmark] -> [play4][moving letter moving cmark |moving letter moving cmark]\n\n\n[sfa] -> SFX1\n[sfb] -> SFX7\n[sfb] -> SFX9\n\n\n[> letter | letter tmark no pmark no cmark] -> [> letter | tmark]\nlate [tmark no letter nott] -> [tmark t]\nlate [tmark no letter nota] -> [tmark a]\nlate [tmark no letter notg] -> [tmark g]\nlate [tmark no letter note] -> [tmark e]\nlate [tmark no letter notr] -> [tmark r]\n\nlate [play4][letter no white] -> [play4][letter white]\n\n\n[play4][> pmark > letter| stationary letter] -> [play4][stationary pmark stationary letter | letter]\n+ [play4][> cmark > letter| stationary letter] -> [play4][stationary cmark stationary letter | letter]\n+ [play4][stationary letter stationary pmark | letter pmark] -> [play4][stationary letter stationary pmark |stationary letter stationary pmark]\n+ [play4][stationary letter stationary cmark | letter cmark] -> [play4][stationary letter stationary cmark |stationary letter stationary cmark]\n\n\n[cover moving player] -> [cover stationary player]\n\n[> player | crate] -> [> player | > crate] SFX1\n\n\n[play3][> crate | letter] -> [play3][stationary crate |stationary letter]\n[play3][> player | stationary crate] -> [play3][stationary player |stationary crate]\n\n[play5][> player | wall] -> [play5][> player | > wall]\n\n[play5][> wall | letter] -> [play5][stationary wall | letter]\n[play5][> wall | blackwall] -> [play5][stationary wall | blackwall]\n[play5][> wall | lhash] -> [play5][stationary wall | lhash]\n[play5][> wall | rhash] -> [play5][stationary wall | rhash]\n[play5][> wall | wall] -> [play5][stationary wall | wall]\n[play5][> wall | crate] -> [play5][stationary wall | crate]\n\n[play5][> player | letter] -> [play5][> player | > letter]\nlate [play5][white no letter no 6 no 0] -> [play5][]\n\n[play5][> letter | wall] -> [play5][stationary letter | wall]\n[play5][> letter | letter] -> [play5][stationary letter | letter]\n[play5][> letter | blackwall] -> [play5][stationary letter | blackwall]\n[play5][> letter | lhash] -> [play5][stationary letter | lhash]\n[play5][> letter | rhash] -> [play5][stationary letter | rhash]\n[play5][> letter | crate] -> [play5][stationary letter | crate]\n[play5][> player | stationary letter] -> [play5][stationary player | stationary letter]\n[play5][> player | stationary wall] -> [play5][stationary player | stationary wall]\n\n[play5] -> [play5 mark2]\n[play5 mark2][sgoal no s] -> [play5][sgoal]\n[play5 mark2][tgoal no t] -> [play5][tgoal]\n[play5 mark2][agoal no a] -> [play5][agoal]\n[play5 mark2][rgoal no r] -> [play5][rgoal]\n[play5 mark2][ggoal no g] -> [play5][ggoal]\n[play5 mark2][mgoal no m] -> [play5][mgoal]\n[play5 mark2][egoal no e] -> [play5][egoal]\n\n[action player][play5 no mark2] -> [player][play5]\n[play5][action player][pressaction] -> [play5][player][]\n[play5 mark2][pressaction] -> [play5][pressaction]\n\n\n\nleft [play5 mark2][lhash| no target] -> [play5 mark2][lhash|lhash]\n[lhash | target] -> [lhash | target crate]\n[lhash crate] -> [lhash]\nright [play5 mark2][rhash|] -> [play5 mark2][rhash|rhash]\n\n[glitch1][mark] -> [glitch1][]\n\n[crate target][player ending][play5] -> [crate target][player ending][]\n\n[glitch6][item no roulette] -> [glitch6 ][ item random roulette]\n[glitch6][item roulette6] -> [glitch6][random item]\n[glitch6][roulette] -> [glitch6][]\n\n\n\nlate [fakeground][player no fakeground] -> [fakeground][player fakeground]\n\nlate [play4][xmark] -> [play4][xmark green]\nlate [play4][equals] -> [play4][equals grey]\nlate [play4][caret] -> [play4][caret red]\nlate [play4][arrow] -> [play4][arrow red]\nlate [play4][capxx] -> [play4][capxx purple]\nlate right [play4][white a no grey no green no red | ... | green ] -> [play4][white a purple | ... | green ]\nlate right [play4][white l no grey no green no red| ... | green ] -> [play4][white l purple | ... | green ]\nlate right [play4][white o no grey no green no red| ... | green ] -> [play4][white o purple | ... | green ]\nlate right [play4][white n no grey no green no red| ... | green ] -> [play4][white n purple | ... | green ]\nlate [play4][letter no rightbracket no leftbracket no vertica no purple no grey no red] -> [play4][letter green]\n\nlate [green no letter] -> []\nlate [red no letter] -> []\nlate [grey no letter] -> []\nlate [purple no letter] -> []\n==============\nWINCONDITIONS\n==============\nno timer\nall target on crate\nno pressaction\nall notg on cmark\nno play5\n\n\n\n=======\nLEVELS\n=======\n\n\n\n(..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++++,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n.........................................;)\n\n\n\n\n\n\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............,,,,,,,,,,,,,...............\n..............,+++++++++++,...............\n..............,+,?-,,,,~,+,...............\n..............,+++++++++++,...............\n..............,,,,,,,,,,,,,...............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n...you.can.only.push.one.box.at.a.time....\n..........................................\n..........................................\n..........................................\n...........press.3.to.continue............\n..........................................\n..........................................\n..........................................\n.........................................`\n.........................................\\\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++++,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..dont.forget.to.press.5.if.you.get.stuck.\n..........................................\n..........................................\n..........................................\n...........press.3.to.continue............\n..........................................\n..........................................\n.........................................`\n.........................................`\n.........................................\\\n\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,dont7forget.to.press.5.if.you.get.stuck,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,press.3.to.continue,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,????,,,................\n................,???,,???,................\n................,?+~,,~,?,................\n................,?,,--,,?,................\n................,????????,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+,,,,,,+,................\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time...|\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time...8\n...you.can.only.push.one.box.at.a.time....\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............,,,,,,,,,,,,,...............\n..............,+++++++++++,...............\n..dont.forget.to?pr-ss.5~if.you.get.stuck.\n..............,+++++++++++,...............\n..............,,,,,,,,,,,,,...............\n..........................................\n...........press.3.to.continue............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n++++,,++++++++,,++++++++,,++++++++,,++++++\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n++,,,,,,++++,,,,,,++++,,,,,,++++,,,,,,++++\n,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+\n,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n++++,,++++++++,,++++++++,,++++++++,,++++++\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n++,,,,,,++++,,,,,,++++,,,,,,++++,,,,,,++++\n,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+\n,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,9-\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n++++,,++++++++,,++++++++,,++++++++,,++++++\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n++,,,,,,++++,,,,,,++++,,,,,,++++,,,,,,++++\n,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+\n,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,へ-\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n++++,,++++++++,,++++++++,,++++++++,,++++++\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n++,,,,,,++++,,,,,,++++,,,,,,++++,,,,,,++++\n,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+\n,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n\n..........................................\n..........................................\n...............1ゐかくゐ1.155る5...............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.0..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n.........................................`\n.........................................\\\n\n&.........................................\n..........................................\n...............1ゐかくゐ1.155る5.........7.....\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.0..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n..........................................\n..........................................\n\n(..........................................\n..........................................\n...............1ngine.1rror...............\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++++,................\n................,,,,,,,,,,................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n..........................................\n.........................................>)\n\n\n\n\n\n..........................................\n..........................................\n..........................................\n..............2?+,~-}.....................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++++,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n\n%.....................................7...\n.....................^....................\n...............1ゐかくゐ1.155る5...............\n..........................................\n..........................................\n...........^..............................\n..........................................\n..........................................\n..............6.2tart.game.6..............\n.....................^....................\n..........................................\n..........................................\narrow.keys.to.move........................\n...^......................................\n3.to.action...............................\n..................................^.......\n4.to.undo..5.to.restart...................\n..........................................\n..............^...........................\n\nect.canmove.has.been.defined.but.not.assig\n..........................................\nule.matches.object.types.that.cant.overlap\n..........................................\n.name.crtae.referred.to.in.a.rule.does.not\n..........................................\no.indicate.in.which.direction.a.rule.appli\n..........................................\nch.on.the.left.must.have.a.corresponding.p\n..........................................\n.was.looking.for.color.for.object.playerle\n..........................................\ned.an.object.v.but.this.is.a.keyword.dont.\n................\\`````````````............\n...........press.3.to.continue............\n.........................................<\n.arrow.here.consider.reading.up.about.rule\n..........................................\nrors.detected.during.compilation.the.game.\n\n..........................................\n..........................................\n...............1ゐかくゐ1.155る5...............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.0..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undoよ.5.to.restart...................\n.........................................`\n.........................................\\\n\n*....................め....................\n..........................................\n...............1ゐかくゐ1.155る5..........8....\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.0..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n..........................................\n..........................................\n\n\n\n\n\n..........................................\n..........................................\nらrintin~.level.-ontents#..................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++[+,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n.........................................{\n\n$.....................................7...\n.....................^....................\n...............1ゐかくゐ1.155る5...............\n..........................................\n..........................................\n...........^..............................\n..........................................\n..........................................\n..............6.2tart.game.6..............\n.....................^....................\n..........................................\n..........................................\narrow.keys.to.move........................\n...^......................................\n3.to.action...............................\n..................................^.......\n4.to.undo..5.to.restart...................\n..........................................\n..............^...........................\n\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\n.........................................7\n\nひひひひひひひひひひひひひひひひ..........................\nうるそそく2くるゐそあふ152...........................\nひひひひひひひひひひひひひひひひ..........................\nbackground................................\nとrateよ.せlayer.............................\nすarget....................................\n..........................................\nひひひひひひ....................................\n5ゆそ12.....................................\nひひひひひひ....................................\nろれ.せlayerやとrateゑりろれ.せlayerやれ.とrateゑ.......\n..........................................\nひひひひひひひひひひひひひひ............................\nむくゐうるゐえくわくるゐ2.............................\nひひひひひひひひひひひひひひ............................\n..........................................\nall.すarget.on.とrate.......................\n.........................................\\\nひひひひひひひひひ................................]\n\n\n\n......................................\"............................................'\n......................................\".............................................\n......................................\".................1ngine.1rror................\n......................................\".............................................\n......................................\".............................................\n......................................\".............................................\n................,,,,,,,,,,............\".............................................\n................,++++++++,............\".............................................\n................,+?,~,-,+,............\"................6.のさたなさ.はたぬま.0...............\n................,++++++++,............\".............................................\n................,,,,,,,,,,............\".............................................\n......................................\".............................................\n......................................\"..arrow.keys.to.move.........................\n......................................\".............................................\n......................................\"..3.to.action................................\n......................................\".............................................\n......................................\"..4.to.undo..5.to.restart....................\n......................................\"...にににににににににににににににににににににににににににににににににににににににににに\n......................................\"...にににににににににににににににににににににににににににににににににににににににににに\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n(\n\n\n\n..........................................\n..........................................\n...............1ngine.1rror...............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.6..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n..........................................\n..........................................\n", ["tick", "tick", "tick", 3, 3, "tick", 3, "tick", "tick", 3, "tick", 3, "tick", "tick", 4, "tick", "tick", "tick", "tick", 3, "tick", 2, "tick", 3, "tick", 3, 0, "tick", 1, 2, "tick", "tick", "tick", 0, "tick", "undo", "tick", "undo", "tick", "undo", "tick", 0, "tick", 1, 2, "tick", 3, 2, "tick", "tick", 3, "tick", 3, 0, "tick", 1, "tick", "tick", "tick", 0, "tick", 0, 3, "tick", 3, "tick", 3, 2, "tick", 3, 3, 2, "tick", 1, "tick", 1, "tick", "tick", 1, "tick", 0, "tick", 0, 3, "tick", 2, 1, "tick", 1, "tick", 1, 2, 3, "tick", "tick", "tick", 4, "tick", "tick", "tick", "tick", 4, "tick", "tick", "tick", "tick", "tick", 2, "tick", 2, "tick", 2, "tick", 2, "tick", "tick", "tick", "tick"], "background: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,\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,\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,\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,\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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background fakeground:1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,background fakeground player:2,\n2,2,2,0,0,0,0,0,0,0,0,0,1,1,2,background fakeground wall:3,1,1,1,1,1,2,0,0,0,0,0,0,0,0,0,1,1,1,background fakeground target:4,1,2,2,1,1,2,0,\n0,0,0,0,0,0,0,0,1,1,1,1,1,2,background crate fakeground:5,1,1,2,0,0,0,0,0,0,0,0,0,1,1,1,1,1,2,5,1,1,2,0,0,0,0,0,\n0,0,0,0,1,1,1,4,1,2,2,1,1,2,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,2,1,1,2,0,0,0,0,0,0,0,0,0,\n1,1,1,1,1,1,2,2,2,2,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,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,\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,\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,\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,\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,\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,\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,\n", 0, "1627770452561.3662"] ], [ `gallery game: coin collector`, - ["title Coin Counter\n\nverbose_logging\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground \nlightblue\n\nwall\ndarkbrown\n\nt\ntransparent\n\ntl\ntransparent\n\ntr\ntransparent\n\nm\ntransparent\n\nbl\ntransparent\n\nbr\ntransparent\n\nb\ntransparent\n\ncorner\ntransparent\n\non\nblue\n\noff\ndarkbrown\n\none 1\ntransparent\n\ntwo 2\ntransparent\n\nthree 3\ntransparent\n\nfour 4\ntransparent\n\nfive 5\ntransparent\n\nsix 6\ntransparent\n\nseven 7\ntransparent\n\neight 8\ntransparent\n\nnine 9\ntransparent\n\nzero 0\ntransparent\n\nplayer\ngreen\n\ncoin\n#ff0\n.....\n.000.\n.0.0.\n.000.\n.....\n\nending\ntransparent\n\ntens\ntransparent\n\ncarry\ntransparent\n\nfiver\n#ff0\n..0..\n.000.\n00.00\n.000.\n..0..\n\nstar\n#ff0 yellow orange\n0.0.0\n.121.\n02.20\n.121.\n0.0.0\n\nhund\ntransparent\n\nwon\ntransparent\n\nlast\ntransparent\n\nfakecoin\n#ff0\n.....\n.000.\n.0.0.\n.000.\n.....\n=======\nLEGEND\n=======\n\nc = corner\nl = tl\nr = tr\nw = bl\ne = br\nseg = t or l or r or m or w or e or b\nnum = zero or one or two or three or four or five or six or seven or eight or nine\np = player\nk = coin\n. = background\nx = wall\n\n! = t and coin\n@ = l and coin\n# = r and coin\n$ = m and coin\n% = w and coin\n^ = e and coin\n& = b and coin\n* = c and coin\n\n{ = t and fiver\n} = l and fiver\n; = r and fiver\n: = m and fiver\n' = w and fiver\n\" = e and fiver\n, = b and fiver\n/ = c and fiver\n\nf = fiver\n\n? = tens and wall\n\n- = fakecoin\n\nj = star\n` = hund\nz = ending\n~ = last\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nseg\ncorner\nnum\non\noff\ncoin, fiver\nstar\nplayer, wall\nending\ntens\ncarry\nwon\nhund\nlast\nfakecoin\n======\nRULES \n====== \n\n[last][ action player ]-> win\n[last ][moving player] -> win\nup [tens|no tens] -> [tens | tens]\ndown [tens|no tens] -> [tens | tens]\n\n[> player | off] -> [stationary player | off]\nlate [player off] -> [off]\n\nlate [player coin] -> again\nlate [player fiver] -> again\nlate [player star] -> again\n\n[player coin][zero no tens] -> [player][one]\n[player coin][one no tens] -> [player][two]\n[player coin][two no tens] -> [player][three]\n[player coin][three no tens] -> [player][four]\n[player coin][four no tens] -> [player][five]\n[player coin][five no tens] -> [player][six]\n[player coin][six no tens] -> [player][seven]\n[player coin][seven no tens] -> [player][eight]\n[player coin][eight no tens] -> [player][nine]\n[player coin][nine no tens] -> [player][zero carry]\n\n[player fiver][zero no tens] -> [player][five]\n[player fiver][one no tens] -> [player][six]\n[player fiver][two no tens] -> [player][seven]\n[player fiver][three no tens] -> [player][eight]\n[player fiver][four no tens] -> [player][nine]\n[player fiver][five no tens] -> [player][zero carry]\n[player fiver][six no tens] -> [player][one carry]\n[player fiver][seven no tens] -> [player][two carry]\n[player fiver][eight no tens] -> [player][three carry]\n[player fiver][nine no tens] -> [player][four carry]\n\n[carry no tens][zero tens] -> [][one tens]\n[carry no tens ][one tens] -> [][two tens]\n[carry no tens ][two tens] -> [][three tens]\n[carry no tens ][three tens] -> [][four tens]\n[carry no tens ][four tens] -> [][five tens]\n[carry no tens ][five tens] -> [][six tens]\n[carry no tens ][six tens] -> [][seven tens]\n[carry no tens ][seven tens] -> [][eight tens]\n[carry no tens ][eight tens] -> [][nine tens]\n[carry no tens ][nine tens] -> [][zero tens carry]\n\n\n\n[hund] -> [hund off]\n\n[tens carry][hund off] -> [tens carry][hund on]\n[player won] -> win\n\n[star player][tens carry] -> [player won][tens no carry] again\n\n[carry no tens] -> []\n[seg no on] -> [seg on]\n[seg off] -> [seg]\n\n[m no tens][zero no tens] -> [m off][zero]\n[l no tens][one no tens] -> [l off][one]\n[w no tens][one no tens] -> [w off][one]\n[m no tens][one no tens] -> [m off][one]\n[t no tens][one no tens] -> [t off][one]\n[b no tens][one no tens] -> [b off][one]\n[l no tens][two no tens] -> [l off][two]\n[e no tens][two no tens] -> [e off][two]\n[l no tens][three no tens] -> [l off][three]\n[w no tens][three no tens] -> [w off][three]\n[b no tens][four no tens] -> [b off][four]\n[w no tens][four no tens] -> [w off][four]\n[t no tens][four no tens] -> [t off][four]\n[r no tens][five no tens] -> [r off][five]\n[w no tens][five no tens] -> [w off][five]\n[r no tens][six no tens] -> [r off][six]\n[l no tens][seven no tens] -> [l off][seven]\n[w no tens][seven no tens] -> [w off][seven]\n[m no tens][seven no tens] -> [m off][seven]\n[b no tens][seven no tens] -> [b off][seven]\n[w no tens][nine no tens] -> [w off][nine]\n\n[seg tens][zero tens] -> [seg off tens][zero tens]\n[l tens][one tens] -> [l off tens][one tens]\n[w tens][one tens] -> [w off tens][one tens]\n[m tens][one tens] -> [m off tens][one tens]\n[t tens][one tens] -> [t off tens][one tens]\n[b tens][one tens] -> [b off tens][one tens]\n[l tens][two tens] -> [l off tens][two tens]\n[e tens][two tens] -> [e off tens][two tens]\n[l tens][three tens] -> [l off tens][three tens]\n[w tens][three tens] -> [w off tens][three tens]\n[b tens][four tens] -> [b off tens][four tens]\n[w tens][four tens] -> [w off tens][four tens]\n[t tens][four tens] -> [t off tens][four tens]\n[r tens][five tens] -> [r off tens][five tens]\n[w tens][five tens] -> [w off tens][five tens]\n[r tens][six tens] -> [r off tens][six tens]\n[l tens][seven tens] -> [l off tens][seven tens]\n[w tens][seven tens] -> [w off tens][seven tens]\n[m tens][seven tens] -> [m off tens][seven tens]\n[b tens][seven tens] -> [b off tens][seven tens]\n[w tens][nine tens] -> [w off tens][nine tens]\n\n [hund on][seg off] -> [hund on][seg on]\n [hund on][m on] -> [hund on][m off]\n\n[on off] -> [off]\n\n[corner no off] -> [corner off]\n[corner on] -> [corner]\n\n[corner off|seg on] -> [corner on| seg on]\n\n\n\n\n\n\n\n==============\nWINCONDITIONS\n==============\nno coin\nno fiver\nall ending on player\n======= \nLEVELS\n=======\n\n\n\n\n\n\nx-xxxxxxxxx\nxxxctcxctcx\nxxxlxrxlxrx\nxxxcmcxcmcx\nxxxwxexwxex\nxxxcbcxcbcx\nxjx???xxxxx\nxxxxxxxxxxx\nxp0k0.k..kz\nxxxxxxxxxxx\n\nxxxxxxxxxxxxxxx\nxxxxxxxctc....z\nxxxxxxxlxrxxxxx\nxxxxxxxcmcxxxxx\nxxxxxxxwxexxxxx\np.3k.k.cbcxxxxx\nxxxxxxxxxxxxxxx\n\nxxxxxxzx\nx?xxxx.x\nx......x\nx.xxxxxx\nxckctckx\nxrxlxrxx\nxcxc$cxx\nxexwxexx\nxckcbckx\nxxxxxx.x\np05....x\nxxxxxxxx\n\n\nx?xxxx?zx\nxxxxxxx0x\nxcx*!*x.x\nxrxlxrx.x\nxcx*$*x.x\nxexwxex.x\nxcx*&*1px\nxxxxxxx.x\n\nxx???xxxx?x\nz.ctc.c!c.x\nx.lxrx@x#.x\nx.cmcxc$c.x\nx9wxexwx^1x\nx.cbc.cbc.x\nxxxxxxxxxpx\n\nx????xxxxxx\nz.ctcfctc.p\nx.lxrxlx#.x\nx.cmcxcm*.x\nx2wxexwx^4x\nx.cbcfcbc.x\nxxxxxxxxxxx\n\nx????xxxxx\nxctc3ctcxx\nx@xrx}xrxx\nxc$cxc:c7p\nxwx^xwx\".x\nxc&cxc,c.x\nxxxxxxxxzx\n\nx????xxxpx\nxctc6ctc.x\nx}x;x@x#.x\nxcmcxc$c1x\nx'x\"xwx^.x\nxc,c.c&c.x\nxxxxxxxxzx\n\nxx???xxxxpx\nx..k91.k..x\nx.ctcxctc.x\nxklxrxlxrkx\nx.cmcxcmc.x\nxkwxexwxekx\nx.cbcxcbc.x\nx..k...k..x\nxzxxxxxxxxx\n\n\n\nxpxxxxxxxxx\nxkxxxxxxxxx\nx`xctcxctcx\nx`xlxrxlxrx\nx`xcmcxcmcx\nx`xwxexwxex\nx`xcbcxcbcx\nxjx???xxxxx\nxxxxxxxxxxx\nx.9.9.....z\nxxxxxxxxxxx\n\nxxx???xxxxxxxxxxxxxxxxxxxxxxxxxxxx\nxxx???xxxxxxxxxxxxxxxxxxxxxxxxxxxx\nxxx???.ctcxxxxxxxxxxxxxxxxxxxxxxxx\nxxx???xlxrxxxxxxxxxxxxxxxxxxxxxxxx\nxxx???xcmc..z.xxx.ctc..z.xxx.ctc.x\nxxx???xwxe.xx.xxxxlxr.xx.xxxxlxr.x\nxxx???xcbc.xx.xxxxcmc.xx.xxxxcmc.x\nxxx???xxxxzxx.xxxxwxe.xx.xxxxwxe.x\nxxx???xxxx.xx.xxx.cbc.xx.xxx.cbc.x\nxxxctc.ctc.xxxxxxxxxxzxxxxxxxxxx.x\nxxxl?rxlxr.xxxxxxxxxxxxxxxxxxxxxzx\nxxxcmcxcmc.xxxxxxxxxxxxxxxxxxxxx.x\nxxxw?exwxe.xxxxxx.....xxxxxxctcx.x\nxxxcbc.cbc.xxxx..xxxxx..xxxxlxrx.x\nxxx???xxxxzxxx.xxxxxxxxx.xxxcmcx.x\nxxx???xxxx.xxx.xx.xxx.xx.xxxwxex.x\nx..........xx.xxx.xxx.xxx.xxcbc..x\nx.xxx?xctc.xx.xxx.x.x.xxx.xxxxxx.x\nx.x?x?xlxr.xx.xxxxx~xxxxx.xxxxxxzx\nx.xxx?xcmc.xx.xx..xxx..xx.xxxxxx.x\nx.x?x?xwxe.xx.xx.......xx.x......x\nx.xxx?xcbc.xx..xx.....xx.xx.xxxxxx\nx..........xxx.xxx...xxx.xxx.ctc.x\nxzx???xxxxxxxxx..xxxxx..xxxxxlxrxx\nx.x???xxxxxxxxxxx.....xxxxxxxcmcxx\nxxxctcxctcxxxxxxxxxxxxxxxxxxxwxexx\nxxxl?rxlxrxxxxxxxxxxxxxxxxxx.cbc.x\nxxxcmcxcmcxxxxxxxxxxxxxxxxxxxxxx.x\nxxxw?exwxexxxxxxxxctc....z.......x\nxxxcbcxcbcxxxxxxxxlxrxxxxxxxxxxxxx\nxpx???xxxxxxxxxxxxcmcxxxxxxxxxxxxx\nxxx???xxxxxxxxxxxxwxexxxxxxxxxxxxx\n0...0.....z.......cbcxxxxxxxxxxxxx\nxxx???xxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\n",[2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,1,1,0,0,0,0,0,1,3,3,3,3,1,2,2,2,2,1,1,1,3,3,3,0,0,1],"background wall:0,0,0,0,0,0,0,0,\n0,0,background:1,0,background tens wall:2,2,background tens:3,3,\nbackground corner on tens:4,background on tens tr:5,4,background br on tens:6,4,2,background one tens:7,2,\n0,0,1,0,1,0,0,0,\n1,0,background zero:8,0,0,0,1,0,\nbackground corner on:9,background on tl:10,9,background bl on:11,9,0,1,0,\n0,0,1,0,background on t:12,0,background m off:13,0,\nb background on:14,0,1,0,0,0,1,0,\n9,background on tr:15,9,background br on:16,9,0,1,0,\nbackground ending:17,1,1,0,1,0,0,0,\n1,1,1,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n",0,"1627770506202.4248"] + ["title Coin Counter\n\nverbose_logging\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground \nlightblue\n\nwall\ndarkbrown\n\nt\ntransparent\n\ntl\ntransparent\n\ntr\ntransparent\n\nm\ntransparent\n\nbl\ntransparent\n\nbr\ntransparent\n\nb\ntransparent\n\ncorner\ntransparent\n\non\nblue\n\noff\ndarkbrown\n\none 1\ntransparent\n\ntwo 2\ntransparent\n\nthree 3\ntransparent\n\nfour 4\ntransparent\n\nfive 5\ntransparent\n\nsix 6\ntransparent\n\nseven 7\ntransparent\n\neight 8\ntransparent\n\nnine 9\ntransparent\n\nzero 0\ntransparent\n\nplayer\ngreen\n\ncoin\n#ff0\n.....\n.000.\n.0.0.\n.000.\n.....\n\nending\ntransparent\n\ntens\ntransparent\n\ncarry\ntransparent\n\nfiver\n#ff0\n..0..\n.000.\n00.00\n.000.\n..0..\n\nstar\n#ff0 yellow orange\n0.0.0\n.121.\n02.20\n.121.\n0.0.0\n\nhund\ntransparent\n\nwon\ntransparent\n\nlast\ntransparent\n\nfakecoin\n#ff0\n.....\n.000.\n.0.0.\n.000.\n.....\n=======\nLEGEND\n=======\n\nc = corner\nl = tl\nr = tr\nw = bl\ne = br\nseg = t or l or r or m or w or e or b\nnum = zero or one or two or three or four or five or six or seven or eight or nine\np = player\nk = coin\n. = background\nx = wall\n\n! = t and coin\n@ = l and coin\n# = r and coin\n$ = m and coin\n% = w and coin\n^ = e and coin\n& = b and coin\n* = c and coin\n\n{ = t and fiver\n} = l and fiver\n; = r and fiver\n: = m and fiver\n' = w and fiver\n\" = e and fiver\n, = b and fiver\n/ = c and fiver\n\nf = fiver\n\n? = tens and wall\n\n- = fakecoin\n\nj = star\n` = hund\nz = ending\n~ = last\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nseg\ncorner\nnum\non\noff\ncoin, fiver\nstar\nplayer, wall\nending\ntens\ncarry\nwon\nhund\nlast\nfakecoin\n======\nRULES \n====== \n\n[last][ action player ]-> win\n[last ][moving player] -> win\nup [tens|no tens] -> [tens | tens]\ndown [tens|no tens] -> [tens | tens]\n\n[> player | off] -> [stationary player | off]\nlate [player off] -> [off]\n\nlate [player coin] -> again\nlate [player fiver] -> again\nlate [player star] -> again\n\n[player coin][zero no tens] -> [player][one]\n[player coin][one no tens] -> [player][two]\n[player coin][two no tens] -> [player][three]\n[player coin][three no tens] -> [player][four]\n[player coin][four no tens] -> [player][five]\n[player coin][five no tens] -> [player][six]\n[player coin][six no tens] -> [player][seven]\n[player coin][seven no tens] -> [player][eight]\n[player coin][eight no tens] -> [player][nine]\n[player coin][nine no tens] -> [player][zero carry]\n\n[player fiver][zero no tens] -> [player][five]\n[player fiver][one no tens] -> [player][six]\n[player fiver][two no tens] -> [player][seven]\n[player fiver][three no tens] -> [player][eight]\n[player fiver][four no tens] -> [player][nine]\n[player fiver][five no tens] -> [player][zero carry]\n[player fiver][six no tens] -> [player][one carry]\n[player fiver][seven no tens] -> [player][two carry]\n[player fiver][eight no tens] -> [player][three carry]\n[player fiver][nine no tens] -> [player][four carry]\n\n[carry no tens][zero tens] -> [][one tens]\n[carry no tens ][one tens] -> [][two tens]\n[carry no tens ][two tens] -> [][three tens]\n[carry no tens ][three tens] -> [][four tens]\n[carry no tens ][four tens] -> [][five tens]\n[carry no tens ][five tens] -> [][six tens]\n[carry no tens ][six tens] -> [][seven tens]\n[carry no tens ][seven tens] -> [][eight tens]\n[carry no tens ][eight tens] -> [][nine tens]\n[carry no tens ][nine tens] -> [][zero tens carry]\n\n\n\n[hund] -> [hund off]\n\n[tens carry][hund off] -> [tens carry][hund on]\n[player won] -> win\n\n[star player][tens carry] -> [player won][tens no carry] again\n\n[carry no tens] -> []\n[seg no on] -> [seg on]\n[seg off] -> [seg]\n\n[m no tens][zero no tens] -> [m off][zero]\n[l no tens][one no tens] -> [l off][one]\n[w no tens][one no tens] -> [w off][one]\n[m no tens][one no tens] -> [m off][one]\n[t no tens][one no tens] -> [t off][one]\n[b no tens][one no tens] -> [b off][one]\n[l no tens][two no tens] -> [l off][two]\n[e no tens][two no tens] -> [e off][two]\n[l no tens][three no tens] -> [l off][three]\n[w no tens][three no tens] -> [w off][three]\n[b no tens][four no tens] -> [b off][four]\n[w no tens][four no tens] -> [w off][four]\n[t no tens][four no tens] -> [t off][four]\n[r no tens][five no tens] -> [r off][five]\n[w no tens][five no tens] -> [w off][five]\n[r no tens][six no tens] -> [r off][six]\n[l no tens][seven no tens] -> [l off][seven]\n[w no tens][seven no tens] -> [w off][seven]\n[m no tens][seven no tens] -> [m off][seven]\n[b no tens][seven no tens] -> [b off][seven]\n[w no tens][nine no tens] -> [w off][nine]\n\n[seg tens][zero tens] -> [seg off tens][zero tens]\n[l tens][one tens] -> [l off tens][one tens]\n[w tens][one tens] -> [w off tens][one tens]\n[m tens][one tens] -> [m off tens][one tens]\n[t tens][one tens] -> [t off tens][one tens]\n[b tens][one tens] -> [b off tens][one tens]\n[l tens][two tens] -> [l off tens][two tens]\n[e tens][two tens] -> [e off tens][two tens]\n[l tens][three tens] -> [l off tens][three tens]\n[w tens][three tens] -> [w off tens][three tens]\n[b tens][four tens] -> [b off tens][four tens]\n[w tens][four tens] -> [w off tens][four tens]\n[t tens][four tens] -> [t off tens][four tens]\n[r tens][five tens] -> [r off tens][five tens]\n[w tens][five tens] -> [w off tens][five tens]\n[r tens][six tens] -> [r off tens][six tens]\n[l tens][seven tens] -> [l off tens][seven tens]\n[w tens][seven tens] -> [w off tens][seven tens]\n[m tens][seven tens] -> [m off tens][seven tens]\n[b tens][seven tens] -> [b off tens][seven tens]\n[w tens][nine tens] -> [w off tens][nine tens]\n\n [hund on][seg off] -> [hund on][seg on]\n [hund on][m on] -> [hund on][m off]\n\n[on off] -> [off]\n\n[corner no off] -> [corner off]\n[corner on] -> [corner]\n\n[corner off|seg on] -> [corner on| seg on]\n\n\n\n\n\n\n\n==============\nWINCONDITIONS\n==============\nno coin\nno fiver\nall ending on player\n======= \nLEVELS\n=======\n\n\n\n\n\n\nx-xxxxxxxxx\nxxxctcxctcx\nxxxlxrxlxrx\nxxxcmcxcmcx\nxxxwxexwxex\nxxxcbcxcbcx\nxjx???xxxxx\nxxxxxxxxxxx\nxp0k0.k..kz\nxxxxxxxxxxx\n\nxxxxxxxxxxxxxxx\nxxxxxxxctc....z\nxxxxxxxlxrxxxxx\nxxxxxxxcmcxxxxx\nxxxxxxxwxexxxxx\np.3k.k.cbcxxxxx\nxxxxxxxxxxxxxxx\n\nxxxxxxzx\nx?xxxx.x\nx......x\nx.xxxxxx\nxckctckx\nxrxlxrxx\nxcxc$cxx\nxexwxexx\nxckcbckx\nxxxxxx.x\np05....x\nxxxxxxxx\n\n\nx?xxxx?zx\nxxxxxxx0x\nxcx*!*x.x\nxrxlxrx.x\nxcx*$*x.x\nxexwxex.x\nxcx*&*1px\nxxxxxxx.x\n\nxx???xxxx?x\nz.ctc.c!c.x\nx.lxrx@x#.x\nx.cmcxc$c.x\nx9wxexwx^1x\nx.cbc.cbc.x\nxxxxxxxxxpx\n\nx????xxxxxx\nz.ctcfctc.p\nx.lxrxlx#.x\nx.cmcxcm*.x\nx2wxexwx^4x\nx.cbcfcbc.x\nxxxxxxxxxxx\n\nx????xxxxx\nxctc3ctcxx\nx@xrx}xrxx\nxc$cxc:c7p\nxwx^xwx\".x\nxc&cxc,c.x\nxxxxxxxxzx\n\nx????xxxpx\nxctc6ctc.x\nx}x;x@x#.x\nxcmcxc$c1x\nx'x\"xwx^.x\nxc,c.c&c.x\nxxxxxxxxzx\n\nxx???xxxxpx\nx..k91.k..x\nx.ctcxctc.x\nxklxrxlxrkx\nx.cmcxcmc.x\nxkwxexwxekx\nx.cbcxcbc.x\nx..k...k..x\nxzxxxxxxxxx\n\n\n\nxpxxxxxxxxx\nxkxxxxxxxxx\nx`xctcxctcx\nx`xlxrxlxrx\nx`xcmcxcmcx\nx`xwxexwxex\nx`xcbcxcbcx\nxjx???xxxxx\nxxxxxxxxxxx\nx.9.9.....z\nxxxxxxxxxxx\n\nxxx???xxxxxxxxxxxxxxxxxxxxxxxxxxxx\nxxx???xxxxxxxxxxxxxxxxxxxxxxxxxxxx\nxxx???.ctcxxxxxxxxxxxxxxxxxxxxxxxx\nxxx???xlxrxxxxxxxxxxxxxxxxxxxxxxxx\nxxx???xcmc..z.xxx.ctc..z.xxx.ctc.x\nxxx???xwxe.xx.xxxxlxr.xx.xxxxlxr.x\nxxx???xcbc.xx.xxxxcmc.xx.xxxxcmc.x\nxxx???xxxxzxx.xxxxwxe.xx.xxxxwxe.x\nxxx???xxxx.xx.xxx.cbc.xx.xxx.cbc.x\nxxxctc.ctc.xxxxxxxxxxzxxxxxxxxxx.x\nxxxl?rxlxr.xxxxxxxxxxxxxxxxxxxxxzx\nxxxcmcxcmc.xxxxxxxxxxxxxxxxxxxxx.x\nxxxw?exwxe.xxxxxx.....xxxxxxctcx.x\nxxxcbc.cbc.xxxx..xxxxx..xxxxlxrx.x\nxxx???xxxxzxxx.xxxxxxxxx.xxxcmcx.x\nxxx???xxxx.xxx.xx.xxx.xx.xxxwxex.x\nx..........xx.xxx.xxx.xxx.xxcbc..x\nx.xxx?xctc.xx.xxx.x.x.xxx.xxxxxx.x\nx.x?x?xlxr.xx.xxxxx~xxxxx.xxxxxxzx\nx.xxx?xcmc.xx.xx..xxx..xx.xxxxxx.x\nx.x?x?xwxe.xx.xx.......xx.x......x\nx.xxx?xcbc.xx..xx.....xx.xx.xxxxxx\nx..........xxx.xxx...xxx.xxx.ctc.x\nxzx???xxxxxxxxx..xxxxx..xxxxxlxrxx\nx.x???xxxxxxxxxxx.....xxxxxxxcmcxx\nxxxctcxctcxxxxxxxxxxxxxxxxxxxwxexx\nxxxl?rxlxrxxxxxxxxxxxxxxxxxx.cbc.x\nxxxcmcxcmcxxxxxxxxxxxxxxxxxxxxxx.x\nxxxw?exwxexxxxxxxxctc....z.......x\nxxxcbcxcbcxxxxxxxxlxrxxxxxxxxxxxxx\nxpx???xxxxxxxxxxxxcmcxxxxxxxxxxxxx\nxxx???xxxxxxxxxxxxwxexxxxxxxxxxxxx\n0...0.....z.......cbcxxxxxxxxxxxxx\nxxx???xxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\n", [2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 1, 1, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 3, 3, 3, 3, 1, 2, 2, 2, 2, 1, 1, 1, 3, 3, 3, 0, 0, 1], "background wall:0,0,0,0,0,0,0,0,\n0,0,background:1,0,background tens wall:2,2,background tens:3,3,\nbackground corner on tens:4,background on tens tr:5,4,background br on tens:6,4,2,background one tens:7,2,\n0,0,1,0,1,0,0,0,\n1,0,background zero:8,0,0,0,1,0,\nbackground corner on:9,background on tl:10,9,background bl on:11,9,0,1,0,\n0,0,1,0,background on t:12,0,background m off:13,0,\nb background on:14,0,1,0,0,0,1,0,\n9,background on tr:15,9,background br on:16,9,0,1,0,\nbackground ending:17,1,1,0,1,0,0,0,\n1,1,1,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1627770506202.4248"] ], [ `gallery game: two worlds`, - ["title Two Worlds\nauthor nebu soku\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\nrealtime_interval 0.1\nagain_interval 0.05\nbackground_color #282818\ntext_color #c8c8a8\nflickscreen 19x16\n\n========\nOBJECTS\n========\n\nBackground \n#282818\n\nOutLine\n#282818\n\nBGBlue\n#c8c8a8 #c1e4f0\n\nBGPink\n#282818 #f8cefd\n\nTarget \n#a0a088\n00.00\n00000\n00000\n.000.\n..0..\n\nGhostTarget \n#a0a088\n00.00\n00000\n00000\n.000.\n..0..\n\nWall \n#a0a088 #686850 #282818\n01000\n02010\n00020\n00000\n11111\n\nWallAbove\n#a0a088\n.....\n.....\n.....\n.....\n00000\n\nWallBelow\n#686850\n00000\n.....\n.....\n.....\n.....\n\nZonePurple\n#282818 #a0a088 #3d1e7e\n00000\n00000\n00100\n00000\n00000\n\nZonePurpleBelow\n#686850 #a0a088\n00000\n.....\n.....\n.....\n.....\n\nZonePink\n#c8c8a8 #ef90e3\n\nPlayerBlueRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850 #54b4d5\n.0000\n.0000\n.0121\n5.33.\n..34.\n\nWalkAnimBR1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850(#4fbbdf #608b8c #d5f5f6 #1d7788 #1a6978 #53aecc)\n.0000\n.0000\n.0121\n5.33.\n.....\n\nWalkAnimBR2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n.4..3\n\nWalkAnimBR3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n..3..\n\nPlayerBlueLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.43..\n\nWalkAnimBL1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.....\n\nWalkAnimBL2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n3..4.\n\nWalkAnimBL3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n..3..\n\nStayBlueRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n..34.\n\nStayBlueLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.43..\n\nPlayerPinkRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818(#de4fdd #8a608b #f6d4f5 #871d86 #741978 #cc52c9 #d153d5)\n.5000\n.0000\n.0121\n..33.\n..34.\n\nWalkAnimPR1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.....\n\nWalkAnimPR2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nWalkAnimPR3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n..3..\n\nPlayerPinkLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.43..\n\nWalkAnimPL1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.....\n\nWalkAnimPL2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nWalkAnimPL3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n..3..\n\nStayPinkRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n..34.\n\nStayPinkLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.43..\n\nFallRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nFallLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nClimbRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nClimbLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nGhostPlayer\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAbove\n#c8c8a8\n.....\n.....\n.....\n.....\n.000.\n\nGhostPlayerAnim1\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAnim2\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAnim3\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nGhostPlayerAnim4\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nGhostPlayerAnim5\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nStuckRigid\nblack\n\nStuckCursor\n#282818\n0...0\n0...0\n0...0\n00000\n.....\n\nStuckCursorAbove\n#282818\n.....\n.....\n.....\n.....\n00000\n\nCrate \n#a0a088 #686850 #282818 #c8c8a8\n01110\n02220\n02020\n00000\n11111\n\nCrateAbove\n#a0a088\n.....\n.....\n.....\n.....\n00000\n\nCrateBelow\n#686850\n00000\n.....\n.....\n.....\n.....\n\nCrateLine\n#a0a088\n.....\n.....\n.....\n00000\n.....\n\nRigidCrate\n#a0a088 #282818\n11111\n11111\n11011\n11111\n11111\n\nRigidU\n#686850\n00000\n.....\n.....\n.....\n.....\n\nRigidUL\n#686850\n....0\n.....\n.....\n.....\n.....\n\nRigidUR\n#686850\n0....\n.....\n.....\n.....\n.....\n\nRigidD\n#a0a088 #686850\n.....\n.....\n.....\n00000\n11111\n\nRigidL\n#a0a088\n0....\n0....\n0....\n0....\n0....\n\nRigidR\n#a0a088\n....0\n....0\n....0\n....0\n....0\n\nRigidLR\n#a0a088\n0...0\n0...0\n0...0\n0...0\n0...0\n\nAboveRigidL\n#a0a088\n.....\n.....\n.....\n0....\n0....\n\nAboveRigidR\n#a0a088\n.....\n.....\n.....\n....0\n....0\n\nAboveRigidLR\n#a0a088\n.....\n.....\n.....\n0...0\n0...0\n\nAboveRigidLRwithR\n#a0a088\n....0\n....0\n....0\n0...0\n0...0\n\nAboveRigidLRwithL\n#a0a088\n0....\n0....\n0....\n0...0\n0...0\n\nrigid1\nblack\n\nrigid2\nblack\n\nBlock \n#c8c8a8 #a0a088 #686850\n12222\n21112\n21112\n21112\n22221\n\nGhostBlock\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim1\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim2\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim3\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\nGhostBlockAnim4\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\nGhostBlockAnim5\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\n\nClimbable\npink\n\nColBGPink\nblack\n.....\n.....\n.....\n.....\n.....\n\nFallBlock\nblack\n\nWinable\nblack\n\nAddPinkLUD\n#c8c8a8\n0....\n.....\n.....\n.....\n0....\n\nAddPinkLU\n#c8c8a8\n0....\n.....\n.....\n.....\n.....\n\nAddPinkLD\n#c8c8a8\n.....\n.....\n.....\n.....\n0....\n\nAddPinkRUD\n#c8c8a8\n....0\n.....\n.....\n.....\n....0\n\nAddPinkRU\n#c8c8a8\n....0\n.....\n.....\n.....\n.....\n\nAddPinkRD\n#c8c8a8\n.....\n.....\n.....\n.....\n....0\n\nRemovePinkLUD\n#282818\n0....\n.....\n.....\n.....\n0....\n\nRemovePinkLU\n#282818\n0....\n.....\n.....\n.....\n.....\n\nRemovePinkLD\n#282818\n.....\n.....\n.....\n.....\n0....\n\nRemovePinkRUD\n#282818\n....0\n.....\n.....\n.....\n....0\n\nRemovePinkRU\n#282818\n....0\n.....\n.....\n.....\n.....\n\nRemovePinkRD\n#282818\n.....\n.....\n.....\n.....\n....0\n\nTransition1\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransition2\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransition3\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransition4\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransition5\n#282818\n00000\n00000\n00000\n00000\n00000\n\nTransition6\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransition7\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransition8\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransition9\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransitionR1\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransitionR2\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransitionR3\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransitionR4\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransitionR5\n#282818\n00000\n00000\n00000\n00000\n00000\n\nTransitionR6\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransitionR7\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransitionR8\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransitionR9\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nHide\n#c8c8a8\n\nWinAnim1\n#c8c8a8\n.....\n.0...\n.....\n.....\n.....\n\nWinAnim2\n#c8c8a8\n.....\n.0...\n.....\n.....\n.....\n\nWinAnim3\n#c8c8a8\n.0...\n000..\n.0...\n...0.\n.....\n\nWinAnim4\n#c8c8a8\n.....\n.0...\n...0.\n..000\n...0.\n\nWinAnim5\n#c8c8a8\n.....\n.....\n.....\n...0.\n.....\n\nWinAnim6\n#c8c8a8\n.....\n.....\n.....\n.....\n.....\n\nLevelStart\n#282818\n\nPressX\n#686850 #282818\n0.0.0\n0.0.0\n00.00\n0.0.0\n0.0.0\n\nTCount1\nblack\n\nTCount2\nblack\n\nTCount3\nblack\n\nTCount4\nblack\n\nTCount5\nblack\n\n=======\nLEGEND\n=======\n\nBlueRight = PlayerBlueRight or WalkAnimBR1 or WalkAnimBR2 or WalkAnimBR3\nBlueLeft = PlayerBlueLeft or WalkAnimBL1 or WalkAnimBL2 or WalkAnimBL3\nPlayerBlue = BlueRight or BlueLeft\n\nPinkRight = PlayerPinkRight or WalkAnimPR1 or WalkAnimPR2 or WalkAnimPR3 \nPinkLeft = PlayerPinkLeft or WalkAnimPL1 or WalkAnimPL2 or WalkAnimPL3\nPlayerPink = PinkRight or PinkLeft\nPlayerFall = PlayerPink or FallRight or FallLeft\n\nPlayer = PlayerBlue or PlayerPink or ClimbRight or ClimbLeft\nPlayerMove = PlayerBlue or PlayerPink\n\nGBlock = GhostBlock or GhostBlockAnim1 or GhostBlockAnim2 or GhostBlockAnim3 or GhostBlockAnim4 or GhostBlockAnim5\n\nGPlayer = GhostPlayer or GhostPlayerAnim1 or GhostPlayerAnim2 or GhostPlayerAnim3 or GhostPlayerAnim4 or GhostPlayerAnim5\nGPAboveAnim = GhostPlayerAnim3 or GhostPlayerAnim4 or GhostPlayerAnim5\n\nRidable = BGPink or Block or ColBGPink\n\nRigids = rigid1 or rigid2\n\nAboveDeco = AboveRigidL or AboveRigidR or RigidL or RigidR or RigidLR\nRigidDeco = RigidU or AboveDeco or RigidD or AboveRigidLR or AboveRigidLRwithR or AboveRigidLRwithL or RigidUL or RigidUR\n\nAddPinkL = AddPinkLUD or AddPinkLU or AddPinkLD\nAddPinkR = AddPinkRUD or AddPinkRU or AddPinkRD\n\nRemovePinkL = RemovePinkLUD or RemovePinkLU or RemovePinkLD\nRemovePinkR = RemovePinkRUD or RemovePinkRU or RemovePinkRD\n\nTransition = Transition1 or Transition2 or Transition3 or Transition4 or Transition5 or Transition6 or Transition7 or Transition8 or Transition9\nTransitionR = TransitionR1 or TransitionR2 or TransitionR3 or TransitionR4 or TransitionR5 or TransitionR6 or TransitionR7 or TransitionR8 or TransitionR9\n\nWinAnim = WinAnim1 or WinAnim2 or WinAnim3 or WinAnim4 or WinAnim5 or WinAnim6\nTCount = TCount1 or TCount2 or TCount3 or TCount4\n\n. = Background\n, = BGBlue\n' = BGPink\n# = Wall and BGBlue\nB = PlayerBlueRight and BGBlue\nP = PlayerPinkRight and ZonePink\n* = Crate and BGBlue\n@ = RigidCrate and rigid1 and BGBlue\n2 = RigidCrate and rigid2 and BGBlue\nO = GhostTarget and ZonePurple\nx = ZonePurple and BGBlue\n+ = ZonePink\n\" = GhostBlock and ZonePurple and BGBlue\n! = GhostPlayer and ZonePurple and BGBlue\n($ = StayBlueRight and BGBlue)\n% = StayPinkRight and ZonePink\n石 = Block and ZonePink\n文 = PressX and BGBlue\n\n=======\nSOUNDS\n=======\n\nPlayerMove move 15203103\nCrate move 80987507\nRigidCrate move 80987507\nBlock action 70814309\nStuckCursor action 20002502 (boo)\nZonePurple move 95712903\nZonePink action 52706103\nTransition1 action 54782309\nTransitionR1 action 54782309\n\nsfx0 30806303\nsfx1 91797700 (fall)\nsfx2 99718300\nsfx3 65480100\nsfx4 80396503 (jump1)\nsfx5 80987507 (block)\nsfx6 45846907\nsfx7 28015305 (jump2)\nsfx8 10636903\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPressX\nTCount, TCount5\nLevelStart\nClimbable\nFallBlock\nWinable\nrigids\nStuckRigid\nBGBlue\nZonePink\nBGPink\nWallBelow\nTarget\nHide\nCrateBelow, ZonePurpleBelow\nPlayer, Wall, Crate, ZonePurple, StayBlueRight, StayBlueLeft, StayPinkRight, StayPinkLeft, FallRight, FallLeft, ClimbRight, ClimbLeft, Block, ColBGPink, RigidCrate\nRemovePinkL\nRemovePinkR\nGhostTarget\nRigidU, RigidUL, RigidUR\nGPlayer\nAboveRigidL, AboveRigidR, RigidL, RigidR, RigidLR\nRigidD, AboveRigidLR, AboveRigidLRwithR, AboveRigidLRwithL\nCrateAbove\nStuckCursorAbove\nWallAbove\nGBlock\nGhostPlayerAbove\nCrateLine\nStuckCursor\nAddPinkL\nAddPinkR\nOutLine\nWinAnim\nTransition, TransitionR\n\n======\nRULES \n====== \n[ > Player ] [ FallBlock ] -> cancel (bug?) \n\n(int)\n\n[ > Player Transition ] -> [ Player Transition ]\n[ ColBGPink ] -> [ ]\n[ BGPink ] -> [ BGPink ColBGPink ]\n[ Background no BGBlue no BGPink no ZonePurple no ZonePink ] -> [ Background OutLine ColBGPink ]\n\nright [ GhostTarget | | | | | | | | | | | | | | | | | | | ] -> [ GhostTarget | | | | | | | | | | | | | | | | | | | Target ]\n\ndown [ ZonePurple | no ZonePurple ] -> [ ZonePurple | ZonePurpleBelow ]\n\nup [ Wall | ] -> [ Wall | WallAbove ]\ndown [ Wall | ] -> [ Wall | WallBelow ]\n\n(Crate-ZonePink)\n\n[ CrateAbove ] -> [ ]\n[ CrateBelow ] -> [ ]\n[ CrateLine ] -> [ ]\nlate up [ | Crate | ] -> [ CrateBelow | Crate CrateLine | CrateAbove ]\n(late down [ Crate | ] -> [ Crate | CrateBelow ])\n\nlate right [ no Crate no ZonePurple no RigidCrate | | | | | | | | | | | | | | | | | | | ZonePink ] -> [ | | | | | | | | | | | | | | | | | | | BGPink ]\nlate right [ PlayerPink ] [ Crate | | | | | | | | | | | | | | | | | | | BGPink ] -> [ PlayerPink ] [ Crate | | | | | | | | | | | | | | | | | | | ZonePink ]\nlate right [ PlayerPink ] [ RigidCrate | | | | | | | | | | | | | | | | | | | BGPink ] -> [ PlayerPink ] [ RigidCrate | | | | | | | | | | | | | | | | | | | ZonePink ]\n\n(Block-GhostBlock)\n\n[ PlayerPink ] [ GBlock ] -> [ PlayerPink ] [ ]\nright [ PlayerPink ] [ | | | | | | | | | | | | | | | | | | | Block ] -> [ PlayerPink ] [ GhostBlock | | | | | | | | | | | | | | | | | | | Block ]\n\n[ PlayerBlue ] [ Block ] -> [ PlayerBlue ] [ ]\nright [ PlayerBlue ] [ GBlock | | | | | | | | | | | | | | | | | | | ] -> [ PlayerBlue ] [ GBlock | | | | | | | | | | | | | | | | | | | Block ]\n\n(Player-GhostPlayer)\n\n[ PlayerPink ] [ GPlayer ] -> [ PlayerPink ] [ ]\nright [ PlayerPink ] [ | | | | | | | | | | | | | | | | | | | PlayerPink ] -> [ PlayerPink ] [ GhostPlayer | | | | | | | | | | | | | | | | | | | PlayerPink ]\n\n(Switch)\n\n[ Target LevelStart ] [ action BlueRight ] [ StayPinkRight ] [ Background ] -> [ Target LevelStart ] [ BlueRight ] [ StayPinkRight ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueRight ] [ StayPinkRight ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueRight ] [ PlayerPinkRight ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueRight ] [ StayPinkLeft ] [ Background ] -> [ Target LevelStart ] [ BlueRight ] [ StayPinkLeft ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueRight ] [ StayPinkLeft ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueRight ] [ PlayerPinkLeft ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueLeft ] [ StayPinkRight ] [ Background ] -> [ Target LevelStart ] [ BlueLeft ] [ StayPinkRight ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueLeft ] [ StayPinkRight ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueLeft ] [ PlayerPinkRight ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueLeft ] [ StayPinkLeft ] [ Background ] -> [ Target LevelStart ] [ BlueLeft ] [ StayPinkLeft ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueLeft ] [ StayPinkLeft ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueLeft ] [ PlayerPinkLeft ] [ Transition6 ]\n\n[ action PlayerPinkRight no FallBlock ] [ StayBlueRight ] [ Background ] -> [ PlayerPinkRight ] [ StayBlueRight ] [ Background action TransitionR1 ]\n[ PlayerPinkRight ] [ StayBlueRight ] [ TransitionR6 ] -> [ StayPinkRight ] [ PlayerBlueRight ] [ TransitionR6 ]\n[ action PlayerPinkRight no FallBlock ] [ StayBlueLeft ] [ Background ] -> [ PlayerPinkRight ] [ StayBlueLeft ] [ Background action TransitionR1 ]\n[ PlayerPinkRight ] [ StayBlueLeft ] [ TransitionR6 ] -> [ StayPinkRight ] [ PlayerBlueLeft ] [ TransitionR6 ]\n[ action PlayerPinkLeft no FallBlock ] [ StayBlueRight ] [ Background ] -> [ PlayerPinkLeft ] [ StayBlueRight ] [ Background action TransitionR1 ]\n[ PlayerPinkLeft ] [ StayBlueRight ] [ TransitionR6 ] -> [ StayPinkLeft ] [ PlayerBlueRight ] [ TransitionR6 ]\n[ action PlayerPinkLeft no FallBlock ] [ StayBlueLeft ] [ Background ] -> [ PlayerPinkLeft ] [ StayBlueLeft ] [ Background action TransitionR1 ]\n[ PlayerPinkLeft ] [ StayBlueLeft ] [ TransitionR6 ] -> [ StayPinkLeft ] [ PlayerBlueLeft ] [ TransitionR6 ]\n\n(Climb)\n\n[ Climbable ] -> [ ]\nhorizontal [ BGPink | ZonePink ] -> [ BGPink Climbable | ZonePink ]\nhorizontal [ BGPink | Block ] -> [ BGPink | Block Climbable ]\nhorizontal [ Block | Block ] -> [ Block Climbable | Block Climbable ]\n\ndown [ ClimbRight | BGPink ] -> [ PlayerPinkRight | BGPink ]\ndown [ ClimbRight | Block ] -> [ PlayerPinkRight | Block ]\nright [ ClimbRight | ZonePink ] -> [ > ClimbRight | ZonePink ]\nright [ ClimbRight | Climbable ] -> [ FallRight | Climbable ]\nright [ > PinkRight no FallBlock | Climbable ] -> [ up ClimbRight | Climbable ] sfx7\n\ndown [ ClimbLeft | BGPink ] -> [ PlayerPinkLeft | BGPink ]\ndown [ ClimbLeft | Block ] -> [ PlayerPinkLeft | Block ]\nleft [ ClimbLeft | ZonePink ] -> [ > ClimbLeft | ZonePink ]\nleft [ ClimbLeft | Climbable ] -> [ FallLeft | Climbable ]\nleft [ > PinkLeft no FallBlock | Climbable ] -> [ up ClimbLeft | Climbable ] sfx7\n\n(Push)\n\n[ > Player | Crate no GPlayer no PressX no TCount ] -> [ > Player | > Crate ]\n[ > Player no FallBlock | Block ] -> [ > Player | > Block ] sfx5\n[ > Player | GBlock no rigids no ZonePurple | no Wall no ZonePurple no OutLine no Crate ] -> [ > Player | > GBlock | ]\n\n[ StuckCursor ] -> [ ] (Stuck effect)\n[ StuckCursorAbove ] -> [ ]\nlate up [ StuckCursor | ] -> [ StuckCursor | StuckCursorAbove ]\n[ > PlayerBlueRight | GPlayer Crate ] -> [ WalkAnimBR1 | GPlayer action StuckCursor Crate ]\n[ > PlayerBlueLeft | GPlayer Crate ] -> [ WalkAnimBL1 | GPlayer action StuckCursor Crate ]\n[ > PlayerBlueRight | StuckRigid ] [ GPlayer ] -> [ WalkAnimBR1 | StuckRigid ] [ GPlayer action StuckCursor ]\n[ > PlayerBlueLeft | StuckRigid ] [ GPlayer ] -> [ WalkAnimBL1 | StuckRigid ] [ GPlayer action StuckCursor ]\n\n[ StuckRigid ] -> [ ]\n[ Rigid1 GPlayer ] [ Rigid1 ] -> [ Rigid1 GPlayer StuckRigid ] [ Rigid1 StuckRigid ]\n[ Rigid2 GPlayer ] [ Rigid2 ] -> [ Rigid2 GPlayer StuckRigid ] [ Rigid2 StuckRigid ]\n\nrigid [ > Player | RigidCrate rigid1 no StuckRigid ] -> [ > Player | > RigidCrate > rigid1 ]\n+ rigid [ moving RigidCrate rigid1 | RigidCrate rigid1 ] -> [ moving RigidCrate moving rigid1 | moving RigidCrate moving rigid1 ]\n+ rigid [ moving rigid1 | GBlock rigid1 ] -> [ moving rigid1 | moving GBlock moving rigid1 ]\n\nrigid [ > Player | RigidCrate rigid2 no StuckRigid ] -> [ > Player | > RigidCrate > rigid2 ]\n+ rigid [ moving RigidCrate rigid2 | RigidCrate rigid2 ] -> [ moving RigidCrate moving rigid2 | moving RigidCrate moving rigid2 ]\n+ rigid [ moving rigid2 | GBlock rigid2 ] -> [ moving rigid2 | moving GBlock moving rigid2 ]\n\n(RigidCrate)\n\n[ RigidDeco ] -> [ ]\nlate down [ rigid1 | no rigid1 ] -> [ rigid1 RigidD | CrateBelow ]\nlate up [ rigid1 | no rigid1 ] -> [ rigid1 | CrateAbove ]\nlate left [ rigid1 | no rigid1 ] -> [ rigid1 RigidL | ]\nlate right [ rigid1 RigidL | no rigid1 ] -> [ rigid1 RigidLR | ]\nlate right [ rigid1 no AboveDeco | no rigid1 ] -> [ rigid1 RigidR | ]\n\nlate up [ RigidL rigid1 | rigid1 no AboveDeco ] -> [ RigidL rigid1 | rigid1 AboveRigidL ]\nlate up [ RigidR rigid1 | rigid1 no AboveDeco ] -> [ RigidR rigid1 | rigid1 AboveRigidR ]\nlate up [ RigidLR rigid1 | rigid1 ] -> [ RigidLR rigid1 | rigid1 AboveRigidLR ]\n\nlate up [ RigidL rigid1 | rigid1 RigidR ] -> [ RigidL rigid1 | rigid1 AboveRigidLRwithR ]\nlate up [ RigidR rigid1 | rigid1 RigidL ] -> [ RigidR rigid1 | rigid1 AboveRigidLRwithL ]\n\nlate up [ rigid1 | CrateAbove ] -> [ rigid1 RigidU | CrateAbove ]\n\nlate left [ rigid1 RigidU | rigid1 no RigidU ] -> [ rigid1 RigidU | rigid1 RigidUL ]\nlate right [ rigid1 RigidU | rigid1 no RigidU ] -> [ rigid1 RigidU | rigid1 RigidUR ]\n\n\nlate down [ rigid2 | no rigid2 ] -> [ rigid2 RigidD | CrateBelow ]\nlate up [ rigid2 | no rigid2 ] -> [ rigid2 | CrateAbove ]\nlate left [ rigid2 | no rigid2 ] -> [ rigid2 RigidL | ]\nlate right [ rigid2 RigidL | no rigid2 ] -> [ rigid2 RigidLR | ]\nlate right [ rigid2 no AboveDeco | no rigid2 ] -> [ rigid2 RigidR | ]\n\nlate up [ RigidL rigid2 | rigid2 no AboveDeco ] -> [ RigidL rigid2 | rigid2 AboveRigidL ]\nlate up [ RigidR rigid2 | rigid2 no AboveDeco ] -> [ RigidR rigid2 | rigid2 AboveRigidR ]\nlate up [ RigidLR rigid2 | rigid2 ] -> [ RigidLR rigid2 | rigid2 AboveRigidLR ]\n\nlate up [ RigidL rigid2 | rigid2 RigidR ] -> [ RigidL rigid2 | rigid2 AboveRigidLRwithR ]\nlate up [ RigidR rigid2 | rigid2 RigidL ] -> [ RigidR rigid2 | rigid2 AboveRigidLRwithL ]\n\nlate up [ rigid2 | CrateAbove ] -> [ rigid2 RigidU | CrateAbove ]\n\nlate left [ rigid2 RigidU | rigid2 no RigidU ] -> [ rigid2 RigidU | rigid2 RigidUL ]\nlate right [ rigid2 RigidU | rigid2 no RigidU ] -> [ rigid2 RigidU | rigid2 RigidUR ]\n\n(Fall)\n\ndown [ FallRight | Ridable ] -> [ PlayerPinkRight | Ridable ]\ndown [ FallRight no Transition | no Ridable ] -> [ > FallRight | ]\ndown [ PinkRight no Transition | no Ridable ] -> [ > FallRight | ] sfx7\n\ndown [ FallLeft | BGPink ] -> [ PlayerPinkLeft | BGPink ]\ndown [ FallLeft | Block ] -> [ PlayerPinkLeft | Block ]\ndown [ FallLeft no Transition | no Ridable ] -> [ > FallLeft | ]\ndown [ PinkLeft no Transition | no Ridable ] -> [ > FallLeft | ] sfx7\n\n[ FallBlock ] -> [ ]\ndown [ Block no Transition | no ColBGPink no Block no Player ] [ PlayerFall ] -> [ > Block | ] [ PlayerFall FallBlock ] sfx1\n\n(ZonePink border)\n\n[ AddPinkL ] -> [ ]\n[ RemovePinkL ] -> [ ]\n[ AddPinkR ] -> [ ]\n[ RemovePinkR ] -> [ ]\n\nlate left [ no ZonePink no AddPinkL | ZonePink ] -> [ AddPinkLUD | ZonePink ]\nlate right [ no ZonePink no AddPinkR | ZonePink ] -> [ AddPinkRUD | ZonePink ]\n\nlate up [ AddPinkLUD | no ZonePink ] -> [ AddPinkLD | ]\nlate up [ AddPinkRUD | no ZonePink ] -> [ AddPinkRD | ]\n\nlate down [ AddPinkLUD | no ZonePink ] -> [ AddPinkLU | ]\nlate down [ AddPinkRUD | no ZonePink ] -> [ AddPinkRU | ]\n\nlate down [ AddPinkLD | no ZonePink ] -> [ | ]\nlate down [ AddPinkRD | no ZonePink ] -> [ | ]\n\nlate left [ ZonePink no RemovePinkL | no ZonePink ] -> [ ZonePink RemovePinkLUD | ]\nlate right [ ZonePink no RemovePinkR | no ZonePink ] -> [ ZonePink RemovePinkRUD | ]\n\nlate up [ RemovePinkLUD | ZonePink ] -> [ RemovePinkLD | ZonePink ]\nlate up [ RemovePinkRUD | ZonePink ] -> [ RemovePinkRD | ZonePink ]\n\nlate down [ RemovePinkLUD | ZonePink ] -> [ RemovePinkLU | ZonePink ]\nlate down [ RemovePinkRUD | ZonePink ] -> [ RemovePinkRU | ZonePink ]\n\nlate down [ RemovePinkLD | ZonePink ] -> [ | ZonePink ]\nlate down [ RemovePinkRD | ZonePink ] -> [ | ZonePink ]\n\nlate right [ RemovePinkRU | AddPinkLU ] -> [ RemovePinkRU | ]\nlate right [ RemovePinkRD | AddPinkLD ] -> [ RemovePinkRD | ]\n\nlate right [ RemovePinkRUD | AddPinkLU ] -> [ RemovePinkRUD | ]\nlate right [ RemovePinkRUD | AddPinkLD ] -> [ RemovePinkRUD | ]\n\nlate left [ RemovePinkLU | AddPinkRU ] -> [ RemovePinkLU | ]\nlate left [ RemovePinkLD | AddPinkRD ] -> [ RemovePinkLD | ]\n\nlate left [ RemovePinkLUD | AddPinkRU ] -> [ RemovePinkLUD | ]\nlate left [ RemovePinkLUD | AddPinkRD ] -> [ RemovePinkLUD | ]\n\nlate left [ AddPinkLUD | RemovePinkRUD ] -> [ | RemovePinkRUD ]\nlate right [ AddPinkRUD | RemovePinkLUD ] -> [ | RemovePinkLUD ]\nlate left [ AddPinkLUD | RemovePinkRU ] -> [ AddPinkLD | RemovePinkRU ]\nlate right [ AddPinkRUD | RemovePinkLU ] -> [ AddPinkRD | RemovePinkLU ]\nlate left [ AddPinkLUD | RemovePinkRD ] -> [ AddPinkLU | RemovePinkRD ]\nlate right [ AddPinkRUD | RemovePinkLD ] -> [ AddPinkRU | RemovePinkLD ]\nlate left [ AddPinkLU | RemovePinkRU ] -> [ | RemovePinkRU ]\nlate right [ AddPinkRU | RemovePinkLU ] -> [ | RemovePinkLU ]\nlate left [ AddPinkLD | RemovePinkRD ] -> [ | RemovePinkRD ]\nlate right [ AddPinkRD | RemovePinkLD ] -> [ | RemovePinkLD ]\n\n(Animation)\n\nright [ > PlayerBlueLeft ] -> [ > PlayerBlueRight ]\nright [ > WalkAnimBL1 ] -> [ > WalkAnimBR1 ]\nright [ > WalkAnimBL2 ] -> [ > WalkAnimBR2 ]\nright [ > WalkAnimBL3 ] -> [ > WalkAnimBR3 ]\n\nleft [ > PlayerBlueRight ] -> [ > PlayerBlueLeft ]\nleft [ > WalkAnimBR1 ] -> [ > WalkAnimBL1 ]\nleft [ > WalkAnimBR2 ] -> [ > WalkAnimBL2 ]\nleft [ > WalkAnimBR3 ] -> [ > WalkAnimBL3 ]\n\n[ WalkAnimBR3 ] -> [ PlayerBlueRight ]\n[ WalkAnimBR2 ] -> [ WalkAnimBR3 ]\n[ WalkAnimBR1 ] -> [ WalkAnimBR2 ]\n[ > PlayerBlueRight ] -> [ > WalkAnimBR1 ]\n\n[ WalkAnimBL3 ] -> [ PlayerBlueLeft ]\n[ WalkAnimBL2 ] -> [ WalkAnimBL3 ]\n[ WalkAnimBL1 ] -> [ WalkAnimBL2 ]\n[ > PlayerBlueLeft ] -> [ > WalkAnimBL1 ]\n\nright [ > PlayerPinkLeft ] -> [ > PlayerPinkRight ]\nright [ > WalkAnimPL1 ] -> [ > WalkAnimPR1 ]\nright [ > WalkAnimPL2 ] -> [ > WalkAnimPR2 ]\nright [ > WalkAnimPL3 ] -> [ > WalkAnimPR3 ]\n\nleft [ > PlayerPinkRight ] -> [ > PlayerPinkLeft ]\nleft [ > WalkAnimPR1 ] -> [ > WalkAnimPL1 ]\nleft [ > WalkAnimPR2 ] -> [ > WalkAnimPL2 ]\nleft [ > WalkAnimPR3 ] -> [ > WalkAnimPL3 ]\n\n[ WalkAnimPR3 ] -> [ PlayerPinkRight ]\n[ WalkAnimPR2 ] -> [ WalkAnimPR3 ]\n[ WalkAnimPR1 ] -> [ WalkAnimPR2 ]\n[ > PlayerPinkRight ] -> [ > WalkAnimPR1 ]\n\n[ WalkAnimPL3 ] -> [ PlayerPinkLeft ]\n[ WalkAnimPL2 ] -> [ WalkAnimPL3 ]\n[ WalkAnimPL1 ] -> [ WalkAnimPL2 ]\n[ > PlayerPinkLeft ] -> [ > WalkAnimPL1 ]\n\n[ stationary Player ] [ stationary GhostBlockAnim5 ] -> [ Player ] [ action GhostBlock ]\n[ stationary Player ] [ stationary GhostBlockAnim4 ] -> [ Player ] [ action GhostBlockAnim5 ]\n[ stationary Player ] [ stationary GhostBlockAnim3 ] -> [ Player ] [ action GhostBlockAnim4 ]\n[ stationary Player ] [ stationary GhostBlockAnim2 ] -> [ Player ] [ action GhostBlockAnim3 ]\n[ stationary Player ] [ stationary GhostBlockAnim1 ] -> [ Player ] [ action GhostBlockAnim2 ]\n[ stationary Player ] [ stationary GhostBlock ] -> [ Player ] [ action GhostBlockAnim1 ]\n\n[ GhostPlayerAbove ] -> [ ]\nlate up [ GPAboveAnim | ] -> [ GPAboveAnim | GhostPlayerAbove ]\n\n[ stationary Player ] [ stationary GhostPlayerAnim5 ] -> [ Player ] [ action GhostPlayer ]\n[ stationary Player ] [ stationary GhostPlayerAnim4 ] -> [ Player ] [ action GhostPlayerAnim5 ]\n[ stationary Player ] [ stationary GhostPlayerAnim3 ] -> [ Player ] [ action GhostPlayerAnim4 ]\n[ stationary Player ] [ stationary GhostPlayerAnim2 ] -> [ Player ] [ action GhostPlayerAnim3 ]\n[ stationary Player ] [ stationary GhostPlayerAnim1 ] -> [ Player ] [ action GhostPlayerAnim2 ]\n[ stationary Player ] [ stationary GhostPlayer ] -> [ Player ] [ action GhostPlayerAnim1 ]\n\n[ Background Transition1 ] [ Background no Transition1 ] -> [ Background Transition1 ] [ Background Transition1 ]\n[ stationary Transition9 ] -> [ ] again\n[ stationary Transition8 ] -> [ action Transition9 ] again\n[ stationary Transition7 ] -> [ action Transition8 ] again\n[ stationary Transition6 ] -> [ action Transition7 ] again\n[ stationary Transition5 ] -> [ action Transition6 ] again\n[ stationary Transition4 ] -> [ action Transition5 ] again\n[ stationary Transition3 ] -> [ action Transition4 ] again\n[ stationary Transition2 ] -> [ action Transition3 ] again\n[ stationary Transition1 ] -> [ action Transition2 ] again\n\n[ Background TransitionR1 ] [ Background no TransitionR1 ] -> [ Background TransitionR1 ] [ Background TransitionR1 ]\n[ stationary TransitionR9 ] -> [ ] again\n[ stationary TransitionR8 ] -> [ action TransitionR9 ] again\n[ stationary TransitionR7 ] -> [ action TransitionR8 ] again\n[ stationary TransitionR6 ] -> [ action TransitionR7 ] again\n[ stationary TransitionR5 ] -> [ action TransitionR6 ] again\n[ stationary TransitionR4 ] -> [ action TransitionR5 ] again\n[ stationary TransitionR3 ] -> [ action TransitionR4 ] again\n[ stationary TransitionR2 ] -> [ action TransitionR3 ] again\n[ stationary TransitionR1 ] -> [ action TransitionR2 ] again\n\n(Level start)\n\n[ Target no LevelStart ] [ Background no Transition ] -> [ Target ] [ Background Transition5 ]\n[ Target Transition9 no LevelStart ] -> [ Target LevelStart ]\n\n(Win)\n\ndown [ PlayerPink no WinAnim Target no FallBlock | Ridable ]-> [ PlayerPink WinAnim1 Target | Ridable ] sfx8\n\n[ WinAnim6 ] [ Background no Transition ] -> [ WinAnim6 ] [ Background Transition1 ]\n[ WinAnim5 ] -> [ WinAnim6 ]\n[ WinAnim4 ] -> [ WinAnim5 ]\n[ WinAnim3 ] -> [ WinAnim4 ]\n[ WinAnim2 ] -> [ WinAnim3 ]\n[ WinAnim1 ] -> [ WinAnim2 ]\n\n[ > Player WinAnim ] -> cancel\n[ action Player WinAnim ] -> cancel\n\n[ Target WinAnim6 Transition5 ] -> [ Target WinAnim6 Transition5 Winable ]\n\n(tutorial)\n\n[ Crate PressX no TCount ] [ PressX ] -> [ Crate TCount1 ] [ ]\n\n[ TCount5 ] -> [ ]\n[ TCount4 ] -> [ TCount5 ] message X or spacebar to switch characters.\n[ TCount3 ] -> [ TCount4 ]\n[ TCount2 ] -> [ TCount3 ]\n[ TCount1 ] -> [ TCount2 ]\n\n[ > Player ] [ Crate PressX ] -> [ Player ] [ Crate PressX ]\n[ > Player ] [ Crate TCount ] -> [ Player ] [ Crate TCount ]\n[ PlayerPink ] [ PressX ] -> [ PlayerPink ] [ ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Winable \n\n======= \nLEVELS\n=======\n\n\n(Tutorial)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,!xxxxxxxxxo,,,..'''p++++++++++'''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxxx\"xxxxxx,,,..'''p+①+①++++++'''.\n.,,,,,,x,xxxoxx,,,..''''''+'++++++'''.\n.,,,xxxxxxxx,xx,,,..'''++++++++'++'''.\n.,,,xxxxxxxxxxx,,,..'''+++①+++++++'''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,!xxxxxxxx,,,,..''''p++++++++''''.\n.,,,,,,,xxxxxx,,,,..'''''''++++++''''.\n.,,,,,,xxxxxox,,,,..''''''+++++++''''.\n.,,,,xxxxxx\",x,,,,..''''++++++①'+''''.\n.,,,,xx\"xxx\"xx,,,,..''''++①+++①++''''.\n.,,,,xx\"x,,,,,,,,,..''''++①+'''''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxx!xxxx,,,,..''''++++p++++''''.\n.,,,,xxxx\"xxxx,,,,..''''++++①++++''''.\n.,,,,x,,,,,,,x,,,,..''''+'''''''+''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxx\"xxx,,,,..''''+++++①+++''''.\n.,,,,xxx\"o,\"xx,,,,..''''+++①+'①++''''.\n.,,,,xx\",xx\"xx,,,,..''''++①'++①++''''.\n.,,,,xx\"xx,,,,,,,,..''''++①++''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxox,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xx!xx\"xx,,,,,,..'''++p++①++''''''.\n.,,,,,,,,,,,,$,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(二つでスタックのチュートリアル)\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxx!xxxoxxx,,,..'''+++%+++++++'''.\n.,,,,xx\"x\"xxxx,,,,..''''+++++++++''''.\n.,,,,#########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,b,*,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.xxxxxxxxxxxxxxxxx..+++++++++++++++++.\n.x,,,,,,,,,,,,,,,x..+'''''''''''''''+.\n.x,,,,,,b,*,,,,,,x..+''''''''+''''''+.\n.x,,xxxxxxxxxxx,,x..+''+++++++++++''+.\n.x,,xxx!xxxoxxx,,x..+''+++%+++++++''+.\n.x,,,xx\"x\"xxxx,,,x..+'''+++++++++'''+.\n.x,,,,,,,,,,,,,,,x..+'''''''''''''''+.\n.xxxxxxxxxxxxxxxxx..+++++++++++++++++.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(一個なら押しのけて登れる)\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,xxxxxx,,,,,..''''''++++++'''''.\n.,,,,,,x\",x\"x,,,,,..''''''++'+++'''''.\n.,,,,,,,!,,,x,,,,,..'''''''%'''+'''''.\n.,,,,#b,,,*,x,,,,,..'''''''''''+'''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,oxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,,,,xxxxxx,,,,..'''''''++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage Reach the heart to win.\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,x!xxxxxox,,,,..''''+p+++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage You can climb one square.\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxox,,,,..''''+石+++++++''''.\n.,,,,,!,,,,,,,,,,,..'''''p'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage You can only push one block at a time.\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxox,,,,..''''+++++++++''''.\n.,,,,x!\"xxxx\"x,,,,..''''+p石++++石+''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 1. Two Worlds\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,!xxx,b,xxxxxo,,..''%+++'''++++++''.\n.,,,xxx,,,xxxx,,,,..'''+++'''++++''''.\n.,,,xxx,,,xxxx,,,,..'''+++'''++++''''.\n.,,,xxx,,,xxx,,,,,..'''+++'''+++'''''.\n.,,,xxxx*x\"xx,,,,,..'''++++'++++'''''.\n.,,,xxx,,,,,,,,,,,..'''+++'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,文,,,,,,,,..'''''''''''''''''.\n.,,,!xxx,,,xxxo,,,..'''%+++'''++++'''.\n.,,,,xxxx*xxx,,,,,..''''++++'+++'''''.\n.,,,,xxx,,,xx,,,,,..''''+++'''++'''''.\n.,,,,,,,,文,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 2. Delivery\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,oxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,,xxxxxx,,,,,..''''''++++++'''''.\n.,,,,,,x!x\"xx,,,,,..''''''+%++++'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,b*,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 3. One-way Tickets\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx,,,,,,,,,,,..''''++'''''''''''.\n.,,,,x\",,,b*,,,,,,..''''++'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx########,,,..''''++'''''''''''.\n.,,,,xxxxxxxxxx,,,..''''++++++++++'''.\n.,,,,xxxxxxxxxx,,,..''''++++++++++'''.\n.,,,,xxx!xxxoxx,,,..''''+++%++++++'''.\n.,,,,#xx\"x\"xxxx,,,..'''''+++++++++'''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(message Brain training\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,b*,,x\"x,,,,,,,..'''''''+++'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxx!xxxxxxx,,,..'''+++%+++++++'''.\n.,,,xxx,,,,,xxx,,,..'''+++'''''+++'''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxxxxx\"xxxx,,,..'''+++++++++++'''.\n.,,,xxxx\"o,\"xxx,,,..'''++++++'++++'''.\n.,,,xxx\",xx\"xx,,,,..'''++++'+++++''''.\n.,,,,xx\"xx####,,,,..''''+++++''''''''.\n.,,,,######,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(message 2 x 3\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,##,,,,,##,,,,..'''''''''''''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#,\"x\"x\",#,,,,..''''''+++++''''''.\n.,,,,#,,b,*,,#,,,,..'''''''''''''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,xxxxo,,,,,,..''''''+++++''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,xx!xx,,,,,,..''''''++%++''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,##,,,,,##,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 4. 3 x 6\n\n\n......................................\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,b*,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxo,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,!xxxxx,,,,,,..'''''%+++++''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,##########,,,,..'''''''''''''''''.\n.,,,#,,,,,,,,#,,,,..'''''''''''''''''.\n.,,,#,\"!\"x\"x,#,,,,..'''''+p++++''''''.\n.,,,#b,,,*,,,#,,,,..'''''''''''''''''.\n.,,,#,xxxxxx##,,,,..'''''++++++''''''.\n.,,,#,*,,,,,,o,,,,..''''''''''''+''''.\n.,,,#,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,,,,,,,,#,,,,..'''''''''''''''''.\n.,,,##########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 5. Too Small to Climb\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,ox\"#,,,,,,..'''''''+++'''''''.\n.,,,,,,,,,\"#,,,,,,..'''''''''+'''''''.\n.,,,,,,,x,\"#,,,,,,..'''''''+'+'''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,!b*,,,,,,,..'''''''%'''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,b@,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,@,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,oxxx,,,,,,,..''''''++++'''''''.\n.,,,,,#,xxx,,,,,,,..'''''''+++'''''''.\n.,,,,,!,xxx,,,,,,,..'''''%'+++'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 6. I Hope That's Enough\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,xox,,,,,..''''''''++++'''''.\n.,,,,,,,,,xxx\"xx,,..''''''''+++++++''.\n.,,,,,,,,,,,,\"xx,,..''''''''''''+++''.\n.,,######xxxx\"xx,,..''''''''+++++++''.\n.,,#,,,!#x\",,,,,,,..''''''%'++'''''''.\n.,,#,*,,xx\"x,*,*,,..'''''''++++''''''.\n.,,####,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,##,,,,,,b,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 7. The Larger, the Better\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,#,#,#,#,#,#,..'''''''''''''''''.\n.,,,,,xxxxxo,,,,,,..'''''++++++''''''.\n.,,,,,xx\",,,,,,,,,..'''''+++'''''''''.\n.,,,,,xx\",,,,,,,,,..'''''+++'''''''''.\n.,,,,,!x\",@@@@,,,,..'''''%++'''''''''.\n.,#,#,#,#,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,b,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 8. Cut the Screen\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,oxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,@@@@@@@,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"x#x,,,,,..'''''+++++'+'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,x!x\"xxx,,,,,..'''''+%+++++'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,oxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,2222222,,,,,..'''''''''''''''''.\n.,x,,,xxx\"xxx,,,,,..'+'''+++++++'''''.\n.,,,,,@@@@@@@,,,,,..'''''''''''''''''.\n.,,,,,,xxxx!x,,,,,..''''''++++%+'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 9. Transfer\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.#################..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,xx,,,2b@@@,,o,,..''++''''''''''+''.\n.,,!\",222,@,,,,x,,..''%+''''''''''+''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.#################..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 10. Do You Like Math Puzzles?\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,b,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,\"@#xx#xx#xx#x#..'''+''++++++++'+'.\n.,,\"\"@#xxxxxxxxxx#..''++''++++++++++'.\n.,,\"\"@#xx,xx,xx,o#..''++''++'++'++'+'.\n.,,,,@#!x,xx,xx,x#..''''''%+'++'++'+'.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 11. Haste Makes Waste\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,xxx,,,,,,,..'''''''+++'''''''.\n.,,xxx,,,,,,,xxx,,..''+++'''''''+++''.\n.,,xx\",,@@@,,xox,,..''+++'''''''+++''.\n.,,!x\",,@@@,,xxx,,..''%++'''''''+++''.\n.,,###,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 12. Neither Road Leads to Rome\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,#############,,,..'''''''''''''''''.\n.,#,,,,!\"\"\"x\"x###,..''''''%+++++++++'.\n.,#b@@,,,,,,,,xo#,..'''''''''''''+++'.\n.,#,,,,xxxxxx,xx#,..''''''++++++'+++'.\n.,#,,,,,,,,,,,###,..'''''''''''''''''.\n.,#############,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 13. This Elevator Will Be Taking No Passengers\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,o\"\"\"\"\",,,,,,..'''''++++++''''''.\n.,,b*,,\"\"\"\"\",,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.####xxx,,,xxx####..''''+++'''+++''''.\n.,,,,xxx@@@xxx,,,,..''''+++'''+++''''.\n.,,,,xxx@@@xxx,,,,..''''+++'''+++''''.\n.,,,,xxx,,,xxx,,,,..''''+++'''+++''''.\n.,,,,xxx,,,xxx,,,,..''''+++'''+++''''.\n.,,,,x!x,,,xxx,,,,..''''+%+'''+++''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................)\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx\"\"\"\"\"xx,,,,..''''+++++++++''''.\n.,b*,xx\"\"\"\"\"xx,,,,..''''+++++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#oxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#,xx@@@xxx#,,,..'''''++'''+++''''.\n.,,,#xxx@@@xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#x!x,,,xxx#,,,..''''+%+'''+++''''.\n.,,,###,,,,,###,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,xxxx\"\"\"xx,,,,..''''+++++++++''''.\n.,,,,xxx\"\"\"\"xx,,,,..''''+++++++++''''.\n.,b*,xx,\"\"\"\"xx,,,,..''''++'++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#oxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#,xx@@@xxx#,,,..'''''++'''+++''''.\n.,,,#xxx@@@xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#x!x,,,xxx#,,,..''''+%+'''+++''''.\n.,,,###,,,,,###,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 14. 3 x 21\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,#,,xxx\"\"\"o,,..''''''''+++++++''.\n.,,,,@@@,xxx\"\"\",,,..''''''''++++++'''.\n.,,,,@@@#\"\"\"\"\"\",,,..''''''''++++++'''.\n.,,,#@@@,\"\"\"\"\"\",,,..''''''''++++++'''.\n.,,,,@@@,\"\"\"\"\"\",#,..''''''''++++++'''.\n.,,,,@@@,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#,,,,b,,22,,,,..'''''''''''''''''.\n.,,,x!,,,,,,,2,,,,..'''+%''''''''''''.\n.,,,,#,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,#,#,#,#,#,..'''''''''''''''''.\n.,,,,,#,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\nmessage Thanks for playing!\n\n\n(......................................\n.,,,,,#,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#o,b,#,,,,,,..''''''+''''''''''.\n.,,,,,,,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#,*,*#,,,,,,..'''''''''''''''''.\n.,,,,,#,@@@#,,,,,,..'''''''''''''''''.\n.,,,,,#,@@@##,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,##,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,x,,#,,,,,..''''''''%''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,b,,,,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,o,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,\",,,,,,#,,..'''''''+'''''''''.\n.,*,*,*,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,#,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,@@,@@@#,,,,,,#,,..'''''''''''''''''.\n.,@@,,@@,,,,,,,,,,..'''''''''''''''''.\n.,@@@@@@#,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,#,!,#,#,,..''''''''''%''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,##!######,,,,..''''''%''''''''''.\n.,,,,#,,,,,,o#,,,,..'''''''''''+'''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#,,@b2,,#,,,,..'''''''+'+'''''''.\n.,,,,#,@@,22,#,,,,..''''''++'++''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,x\"\"\"x,,,,,,..''''''+++++''''''.\n.,,,,,,\"\"\"\"\",,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,#,xxx,,,,,oxx,#,..'''+++'''''+++'''.\n.,#,xxx,222,xxx,#,..'''+++'''''+++'''.\n.,#,xxx,,,,,xxx,#,..'''+++'''''+++'''.\n.,#,xxx,@@,,xxx,#,..'''+++'''''+++'''.\n.,#,x!x,,,,,xxx,#,..'''+%+'''''+++'''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,\"o,,#,,,..'''''''''++''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#xxx,,,,xxx#,,,..'''+++''''+++''''.\n.,,#xxx,,,,\"xx#,,,..'''+++''''+++''''.\n.,,#xxx,,,,\"xx#,,,..'''+++''''+++''''.\n.,,#xxx,2@,\"xx#,,,..'''+++''''+++''''.\n.,,#!xx22@@\"xx#,,,..'''%++''''+++''''.\n.,,#,,,2,,@,,,#,,,..'''''''''''''''''.\n.,,#,,,2,,@,,,#,,,..'''''''''''''''''.\n.,,#,b,22@@,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n......................................)\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick",2,"tick","tick",2,"tick",2,"tick","tick","tick",1,"tick","tick","tick","tick",4,"tick","tick","tick","tick"],"background colbgpink outline:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background bgblue:1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,background bgblue ghostplayeranim1 zonepurple:2,background bgblue zonepurplebelow:3,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,background bgblue zonepurple:4,4,4,3,1,1,1,1,0,0,1,1,1,1,1,1,4,4,4,3,1,1,1,1,0,0,1,\n1,1,1,1,1,4,4,4,3,1,1,1,1,0,0,1,1,1,1,1,1,1,4,background bgblue stayblueleft zonepurplebelow:5,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,background bgblue crateabove:6,background bgblue crate crateline:7,background bgblue cratebelow:8,1,1,1,0,0,1,1,1,1,1,1,1,4,3,1,1,1,1,1,0,0,1,1,1,1,1,1,4,4,4,3,1,1,1,\n1,0,0,1,1,1,1,1,1,4,4,4,3,1,1,1,1,0,0,1,1,1,1,1,1,4,3,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,background ghosttarget zonepurple:9,3,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background bgpink colbgpink:10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,\n10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,background bgpink climbable colbgpink:11,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,background playerpinkright removepinklud zonepink:12,addpinkru background bgpink climbable colbgpink:13,11,10,10,\n10,10,10,0,0,10,10,10,10,10,10,background zonepink:14,14,background removepinkld zonepink:15,10,10,10,10,10,0,0,10,10,10,10,10,10,14,14,14,10,10,10,10,10,0,0,10,\n10,10,10,10,10,background removepinkru zonepink:16,14,background removepinkrd zonepink:17,10,10,10,10,10,0,0,10,10,10,10,10,10,addpinkld background bgpink climbable colbgpink:18,background removepinkrud zonepink:19,addpinklu background bgpink climbable colbgpink:20,11,10,10,10,10,0,0,10,10,10,10,10,10,10,\n11,10,background removepinklud removepinkrud zonepink:21,10,10,10,10,0,0,10,10,10,10,10,10,addpinkrd background bgpink climbable colbgpink:22,background removepinklud zonepink:23,13,11,10,10,10,10,0,0,10,10,10,10,10,10,background removepinklu zonepink:24,14,15,10,10,10,10,\n10,0,0,10,10,10,10,10,10,14,14,17,10,10,10,10,10,0,0,10,10,10,10,10,10,14,20,11,10,10,10,10,10,0,0,10,10,10,\n10,10,10,background levelstart removepinkrud target zonepink:25,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,11,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,10,10,10,\n10,10,10,10,10,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n","7","1627770584313.9392"] + ["title Two Worlds\nauthor nebu soku\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\nrealtime_interval 0.1\nagain_interval 0.05\nbackground_color #282818\ntext_color #c8c8a8\nflickscreen 19x16\n\n========\nOBJECTS\n========\n\nBackground \n#282818\n\nOutLine\n#282818\n\nBGBlue\n#c8c8a8 #c1e4f0\n\nBGPink\n#282818 #f8cefd\n\nTarget \n#a0a088\n00.00\n00000\n00000\n.000.\n..0..\n\nGhostTarget \n#a0a088\n00.00\n00000\n00000\n.000.\n..0..\n\nWall \n#a0a088 #686850 #282818\n01000\n02010\n00020\n00000\n11111\n\nWallAbove\n#a0a088\n.....\n.....\n.....\n.....\n00000\n\nWallBelow\n#686850\n00000\n.....\n.....\n.....\n.....\n\nZonePurple\n#282818 #a0a088 #3d1e7e\n00000\n00000\n00100\n00000\n00000\n\nZonePurpleBelow\n#686850 #a0a088\n00000\n.....\n.....\n.....\n.....\n\nZonePink\n#c8c8a8 #ef90e3\n\nPlayerBlueRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850 #54b4d5\n.0000\n.0000\n.0121\n5.33.\n..34.\n\nWalkAnimBR1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850(#4fbbdf #608b8c #d5f5f6 #1d7788 #1a6978 #53aecc)\n.0000\n.0000\n.0121\n5.33.\n.....\n\nWalkAnimBR2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n.4..3\n\nWalkAnimBR3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n..3..\n\nPlayerBlueLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.43..\n\nWalkAnimBL1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.....\n\nWalkAnimBL2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n3..4.\n\nWalkAnimBL3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n..3..\n\nStayBlueRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n..34.\n\nStayBlueLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.43..\n\nPlayerPinkRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818(#de4fdd #8a608b #f6d4f5 #871d86 #741978 #cc52c9 #d153d5)\n.5000\n.0000\n.0121\n..33.\n..34.\n\nWalkAnimPR1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.....\n\nWalkAnimPR2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nWalkAnimPR3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n..3..\n\nPlayerPinkLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.43..\n\nWalkAnimPL1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.....\n\nWalkAnimPL2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nWalkAnimPL3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n..3..\n\nStayPinkRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n..34.\n\nStayPinkLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.43..\n\nFallRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nFallLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nClimbRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nClimbLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nGhostPlayer\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAbove\n#c8c8a8\n.....\n.....\n.....\n.....\n.000.\n\nGhostPlayerAnim1\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAnim2\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAnim3\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nGhostPlayerAnim4\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nGhostPlayerAnim5\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nStuckRigid\nblack\n\nStuckCursor\n#282818\n0...0\n0...0\n0...0\n00000\n.....\n\nStuckCursorAbove\n#282818\n.....\n.....\n.....\n.....\n00000\n\nCrate \n#a0a088 #686850 #282818 #c8c8a8\n01110\n02220\n02020\n00000\n11111\n\nCrateAbove\n#a0a088\n.....\n.....\n.....\n.....\n00000\n\nCrateBelow\n#686850\n00000\n.....\n.....\n.....\n.....\n\nCrateLine\n#a0a088\n.....\n.....\n.....\n00000\n.....\n\nRigidCrate\n#a0a088 #282818\n11111\n11111\n11011\n11111\n11111\n\nRigidU\n#686850\n00000\n.....\n.....\n.....\n.....\n\nRigidUL\n#686850\n....0\n.....\n.....\n.....\n.....\n\nRigidUR\n#686850\n0....\n.....\n.....\n.....\n.....\n\nRigidD\n#a0a088 #686850\n.....\n.....\n.....\n00000\n11111\n\nRigidL\n#a0a088\n0....\n0....\n0....\n0....\n0....\n\nRigidR\n#a0a088\n....0\n....0\n....0\n....0\n....0\n\nRigidLR\n#a0a088\n0...0\n0...0\n0...0\n0...0\n0...0\n\nAboveRigidL\n#a0a088\n.....\n.....\n.....\n0....\n0....\n\nAboveRigidR\n#a0a088\n.....\n.....\n.....\n....0\n....0\n\nAboveRigidLR\n#a0a088\n.....\n.....\n.....\n0...0\n0...0\n\nAboveRigidLRwithR\n#a0a088\n....0\n....0\n....0\n0...0\n0...0\n\nAboveRigidLRwithL\n#a0a088\n0....\n0....\n0....\n0...0\n0...0\n\nrigid1\nblack\n\nrigid2\nblack\n\nBlock \n#c8c8a8 #a0a088 #686850\n12222\n21112\n21112\n21112\n22221\n\nGhostBlock\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim1\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim2\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim3\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\nGhostBlockAnim4\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\nGhostBlockAnim5\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\n\nClimbable\npink\n\nColBGPink\nblack\n.....\n.....\n.....\n.....\n.....\n\nFallBlock\nblack\n\nWinable\nblack\n\nAddPinkLUD\n#c8c8a8\n0....\n.....\n.....\n.....\n0....\n\nAddPinkLU\n#c8c8a8\n0....\n.....\n.....\n.....\n.....\n\nAddPinkLD\n#c8c8a8\n.....\n.....\n.....\n.....\n0....\n\nAddPinkRUD\n#c8c8a8\n....0\n.....\n.....\n.....\n....0\n\nAddPinkRU\n#c8c8a8\n....0\n.....\n.....\n.....\n.....\n\nAddPinkRD\n#c8c8a8\n.....\n.....\n.....\n.....\n....0\n\nRemovePinkLUD\n#282818\n0....\n.....\n.....\n.....\n0....\n\nRemovePinkLU\n#282818\n0....\n.....\n.....\n.....\n.....\n\nRemovePinkLD\n#282818\n.....\n.....\n.....\n.....\n0....\n\nRemovePinkRUD\n#282818\n....0\n.....\n.....\n.....\n....0\n\nRemovePinkRU\n#282818\n....0\n.....\n.....\n.....\n.....\n\nRemovePinkRD\n#282818\n.....\n.....\n.....\n.....\n....0\n\nTransition1\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransition2\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransition3\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransition4\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransition5\n#282818\n00000\n00000\n00000\n00000\n00000\n\nTransition6\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransition7\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransition8\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransition9\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransitionR1\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransitionR2\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransitionR3\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransitionR4\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransitionR5\n#282818\n00000\n00000\n00000\n00000\n00000\n\nTransitionR6\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransitionR7\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransitionR8\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransitionR9\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nHide\n#c8c8a8\n\nWinAnim1\n#c8c8a8\n.....\n.0...\n.....\n.....\n.....\n\nWinAnim2\n#c8c8a8\n.....\n.0...\n.....\n.....\n.....\n\nWinAnim3\n#c8c8a8\n.0...\n000..\n.0...\n...0.\n.....\n\nWinAnim4\n#c8c8a8\n.....\n.0...\n...0.\n..000\n...0.\n\nWinAnim5\n#c8c8a8\n.....\n.....\n.....\n...0.\n.....\n\nWinAnim6\n#c8c8a8\n.....\n.....\n.....\n.....\n.....\n\nLevelStart\n#282818\n\nPressX\n#686850 #282818\n0.0.0\n0.0.0\n00.00\n0.0.0\n0.0.0\n\nTCount1\nblack\n\nTCount2\nblack\n\nTCount3\nblack\n\nTCount4\nblack\n\nTCount5\nblack\n\n=======\nLEGEND\n=======\n\nBlueRight = PlayerBlueRight or WalkAnimBR1 or WalkAnimBR2 or WalkAnimBR3\nBlueLeft = PlayerBlueLeft or WalkAnimBL1 or WalkAnimBL2 or WalkAnimBL3\nPlayerBlue = BlueRight or BlueLeft\n\nPinkRight = PlayerPinkRight or WalkAnimPR1 or WalkAnimPR2 or WalkAnimPR3 \nPinkLeft = PlayerPinkLeft or WalkAnimPL1 or WalkAnimPL2 or WalkAnimPL3\nPlayerPink = PinkRight or PinkLeft\nPlayerFall = PlayerPink or FallRight or FallLeft\n\nPlayer = PlayerBlue or PlayerPink or ClimbRight or ClimbLeft\nPlayerMove = PlayerBlue or PlayerPink\n\nGBlock = GhostBlock or GhostBlockAnim1 or GhostBlockAnim2 or GhostBlockAnim3 or GhostBlockAnim4 or GhostBlockAnim5\n\nGPlayer = GhostPlayer or GhostPlayerAnim1 or GhostPlayerAnim2 or GhostPlayerAnim3 or GhostPlayerAnim4 or GhostPlayerAnim5\nGPAboveAnim = GhostPlayerAnim3 or GhostPlayerAnim4 or GhostPlayerAnim5\n\nRidable = BGPink or Block or ColBGPink\n\nRigids = rigid1 or rigid2\n\nAboveDeco = AboveRigidL or AboveRigidR or RigidL or RigidR or RigidLR\nRigidDeco = RigidU or AboveDeco or RigidD or AboveRigidLR or AboveRigidLRwithR or AboveRigidLRwithL or RigidUL or RigidUR\n\nAddPinkL = AddPinkLUD or AddPinkLU or AddPinkLD\nAddPinkR = AddPinkRUD or AddPinkRU or AddPinkRD\n\nRemovePinkL = RemovePinkLUD or RemovePinkLU or RemovePinkLD\nRemovePinkR = RemovePinkRUD or RemovePinkRU or RemovePinkRD\n\nTransition = Transition1 or Transition2 or Transition3 or Transition4 or Transition5 or Transition6 or Transition7 or Transition8 or Transition9\nTransitionR = TransitionR1 or TransitionR2 or TransitionR3 or TransitionR4 or TransitionR5 or TransitionR6 or TransitionR7 or TransitionR8 or TransitionR9\n\nWinAnim = WinAnim1 or WinAnim2 or WinAnim3 or WinAnim4 or WinAnim5 or WinAnim6\nTCount = TCount1 or TCount2 or TCount3 or TCount4\n\n. = Background\n, = BGBlue\n' = BGPink\n# = Wall and BGBlue\nB = PlayerBlueRight and BGBlue\nP = PlayerPinkRight and ZonePink\n* = Crate and BGBlue\n@ = RigidCrate and rigid1 and BGBlue\n2 = RigidCrate and rigid2 and BGBlue\nO = GhostTarget and ZonePurple\nx = ZonePurple and BGBlue\n+ = ZonePink\n\" = GhostBlock and ZonePurple and BGBlue\n! = GhostPlayer and ZonePurple and BGBlue\n($ = StayBlueRight and BGBlue)\n% = StayPinkRight and ZonePink\n石 = Block and ZonePink\n文 = PressX and BGBlue\n\n=======\nSOUNDS\n=======\n\nPlayerMove move 15203103\nCrate move 80987507\nRigidCrate move 80987507\nBlock action 70814309\nStuckCursor action 20002502 (boo)\nZonePurple move 95712903\nZonePink action 52706103\nTransition1 action 54782309\nTransitionR1 action 54782309\n\nsfx0 30806303\nsfx1 91797700 (fall)\nsfx2 99718300\nsfx3 65480100\nsfx4 80396503 (jump1)\nsfx5 80987507 (block)\nsfx6 45846907\nsfx7 28015305 (jump2)\nsfx8 10636903\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPressX\nTCount, TCount5\nLevelStart\nClimbable\nFallBlock\nWinable\nrigids\nStuckRigid\nBGBlue\nZonePink\nBGPink\nWallBelow\nTarget\nHide\nCrateBelow, ZonePurpleBelow\nPlayer, Wall, Crate, ZonePurple, StayBlueRight, StayBlueLeft, StayPinkRight, StayPinkLeft, FallRight, FallLeft, ClimbRight, ClimbLeft, Block, ColBGPink, RigidCrate\nRemovePinkL\nRemovePinkR\nGhostTarget\nRigidU, RigidUL, RigidUR\nGPlayer\nAboveRigidL, AboveRigidR, RigidL, RigidR, RigidLR\nRigidD, AboveRigidLR, AboveRigidLRwithR, AboveRigidLRwithL\nCrateAbove\nStuckCursorAbove\nWallAbove\nGBlock\nGhostPlayerAbove\nCrateLine\nStuckCursor\nAddPinkL\nAddPinkR\nOutLine\nWinAnim\nTransition, TransitionR\n\n======\nRULES \n====== \n[ > Player ] [ FallBlock ] -> cancel (bug?) \n\n(int)\n\n[ > Player Transition ] -> [ Player Transition ]\n[ ColBGPink ] -> [ ]\n[ BGPink ] -> [ BGPink ColBGPink ]\n[ Background no BGBlue no BGPink no ZonePurple no ZonePink ] -> [ Background OutLine ColBGPink ]\n\nright [ GhostTarget | | | | | | | | | | | | | | | | | | | ] -> [ GhostTarget | | | | | | | | | | | | | | | | | | | Target ]\n\ndown [ ZonePurple | no ZonePurple ] -> [ ZonePurple | ZonePurpleBelow ]\n\nup [ Wall | ] -> [ Wall | WallAbove ]\ndown [ Wall | ] -> [ Wall | WallBelow ]\n\n(Crate-ZonePink)\n\n[ CrateAbove ] -> [ ]\n[ CrateBelow ] -> [ ]\n[ CrateLine ] -> [ ]\nlate up [ | Crate | ] -> [ CrateBelow | Crate CrateLine | CrateAbove ]\n(late down [ Crate | ] -> [ Crate | CrateBelow ])\n\nlate right [ no Crate no ZonePurple no RigidCrate | | | | | | | | | | | | | | | | | | | ZonePink ] -> [ | | | | | | | | | | | | | | | | | | | BGPink ]\nlate right [ PlayerPink ] [ Crate | | | | | | | | | | | | | | | | | | | BGPink ] -> [ PlayerPink ] [ Crate | | | | | | | | | | | | | | | | | | | ZonePink ]\nlate right [ PlayerPink ] [ RigidCrate | | | | | | | | | | | | | | | | | | | BGPink ] -> [ PlayerPink ] [ RigidCrate | | | | | | | | | | | | | | | | | | | ZonePink ]\n\n(Block-GhostBlock)\n\n[ PlayerPink ] [ GBlock ] -> [ PlayerPink ] [ ]\nright [ PlayerPink ] [ | | | | | | | | | | | | | | | | | | | Block ] -> [ PlayerPink ] [ GhostBlock | | | | | | | | | | | | | | | | | | | Block ]\n\n[ PlayerBlue ] [ Block ] -> [ PlayerBlue ] [ ]\nright [ PlayerBlue ] [ GBlock | | | | | | | | | | | | | | | | | | | ] -> [ PlayerBlue ] [ GBlock | | | | | | | | | | | | | | | | | | | Block ]\n\n(Player-GhostPlayer)\n\n[ PlayerPink ] [ GPlayer ] -> [ PlayerPink ] [ ]\nright [ PlayerPink ] [ | | | | | | | | | | | | | | | | | | | PlayerPink ] -> [ PlayerPink ] [ GhostPlayer | | | | | | | | | | | | | | | | | | | PlayerPink ]\n\n(Switch)\n\n[ Target LevelStart ] [ action BlueRight ] [ StayPinkRight ] [ Background ] -> [ Target LevelStart ] [ BlueRight ] [ StayPinkRight ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueRight ] [ StayPinkRight ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueRight ] [ PlayerPinkRight ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueRight ] [ StayPinkLeft ] [ Background ] -> [ Target LevelStart ] [ BlueRight ] [ StayPinkLeft ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueRight ] [ StayPinkLeft ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueRight ] [ PlayerPinkLeft ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueLeft ] [ StayPinkRight ] [ Background ] -> [ Target LevelStart ] [ BlueLeft ] [ StayPinkRight ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueLeft ] [ StayPinkRight ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueLeft ] [ PlayerPinkRight ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueLeft ] [ StayPinkLeft ] [ Background ] -> [ Target LevelStart ] [ BlueLeft ] [ StayPinkLeft ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueLeft ] [ StayPinkLeft ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueLeft ] [ PlayerPinkLeft ] [ Transition6 ]\n\n[ action PlayerPinkRight no FallBlock ] [ StayBlueRight ] [ Background ] -> [ PlayerPinkRight ] [ StayBlueRight ] [ Background action TransitionR1 ]\n[ PlayerPinkRight ] [ StayBlueRight ] [ TransitionR6 ] -> [ StayPinkRight ] [ PlayerBlueRight ] [ TransitionR6 ]\n[ action PlayerPinkRight no FallBlock ] [ StayBlueLeft ] [ Background ] -> [ PlayerPinkRight ] [ StayBlueLeft ] [ Background action TransitionR1 ]\n[ PlayerPinkRight ] [ StayBlueLeft ] [ TransitionR6 ] -> [ StayPinkRight ] [ PlayerBlueLeft ] [ TransitionR6 ]\n[ action PlayerPinkLeft no FallBlock ] [ StayBlueRight ] [ Background ] -> [ PlayerPinkLeft ] [ StayBlueRight ] [ Background action TransitionR1 ]\n[ PlayerPinkLeft ] [ StayBlueRight ] [ TransitionR6 ] -> [ StayPinkLeft ] [ PlayerBlueRight ] [ TransitionR6 ]\n[ action PlayerPinkLeft no FallBlock ] [ StayBlueLeft ] [ Background ] -> [ PlayerPinkLeft ] [ StayBlueLeft ] [ Background action TransitionR1 ]\n[ PlayerPinkLeft ] [ StayBlueLeft ] [ TransitionR6 ] -> [ StayPinkLeft ] [ PlayerBlueLeft ] [ TransitionR6 ]\n\n(Climb)\n\n[ Climbable ] -> [ ]\nhorizontal [ BGPink | ZonePink ] -> [ BGPink Climbable | ZonePink ]\nhorizontal [ BGPink | Block ] -> [ BGPink | Block Climbable ]\nhorizontal [ Block | Block ] -> [ Block Climbable | Block Climbable ]\n\ndown [ ClimbRight | BGPink ] -> [ PlayerPinkRight | BGPink ]\ndown [ ClimbRight | Block ] -> [ PlayerPinkRight | Block ]\nright [ ClimbRight | ZonePink ] -> [ > ClimbRight | ZonePink ]\nright [ ClimbRight | Climbable ] -> [ FallRight | Climbable ]\nright [ > PinkRight no FallBlock | Climbable ] -> [ up ClimbRight | Climbable ] sfx7\n\ndown [ ClimbLeft | BGPink ] -> [ PlayerPinkLeft | BGPink ]\ndown [ ClimbLeft | Block ] -> [ PlayerPinkLeft | Block ]\nleft [ ClimbLeft | ZonePink ] -> [ > ClimbLeft | ZonePink ]\nleft [ ClimbLeft | Climbable ] -> [ FallLeft | Climbable ]\nleft [ > PinkLeft no FallBlock | Climbable ] -> [ up ClimbLeft | Climbable ] sfx7\n\n(Push)\n\n[ > Player | Crate no GPlayer no PressX no TCount ] -> [ > Player | > Crate ]\n[ > Player no FallBlock | Block ] -> [ > Player | > Block ] sfx5\n[ > Player | GBlock no rigids no ZonePurple | no Wall no ZonePurple no OutLine no Crate ] -> [ > Player | > GBlock | ]\n\n[ StuckCursor ] -> [ ] (Stuck effect)\n[ StuckCursorAbove ] -> [ ]\nlate up [ StuckCursor | ] -> [ StuckCursor | StuckCursorAbove ]\n[ > PlayerBlueRight | GPlayer Crate ] -> [ WalkAnimBR1 | GPlayer action StuckCursor Crate ]\n[ > PlayerBlueLeft | GPlayer Crate ] -> [ WalkAnimBL1 | GPlayer action StuckCursor Crate ]\n[ > PlayerBlueRight | StuckRigid ] [ GPlayer ] -> [ WalkAnimBR1 | StuckRigid ] [ GPlayer action StuckCursor ]\n[ > PlayerBlueLeft | StuckRigid ] [ GPlayer ] -> [ WalkAnimBL1 | StuckRigid ] [ GPlayer action StuckCursor ]\n\n[ StuckRigid ] -> [ ]\n[ Rigid1 GPlayer ] [ Rigid1 ] -> [ Rigid1 GPlayer StuckRigid ] [ Rigid1 StuckRigid ]\n[ Rigid2 GPlayer ] [ Rigid2 ] -> [ Rigid2 GPlayer StuckRigid ] [ Rigid2 StuckRigid ]\n\nrigid [ > Player | RigidCrate rigid1 no StuckRigid ] -> [ > Player | > RigidCrate > rigid1 ]\n+ rigid [ moving RigidCrate rigid1 | RigidCrate rigid1 ] -> [ moving RigidCrate moving rigid1 | moving RigidCrate moving rigid1 ]\n+ rigid [ moving rigid1 | GBlock rigid1 ] -> [ moving rigid1 | moving GBlock moving rigid1 ]\n\nrigid [ > Player | RigidCrate rigid2 no StuckRigid ] -> [ > Player | > RigidCrate > rigid2 ]\n+ rigid [ moving RigidCrate rigid2 | RigidCrate rigid2 ] -> [ moving RigidCrate moving rigid2 | moving RigidCrate moving rigid2 ]\n+ rigid [ moving rigid2 | GBlock rigid2 ] -> [ moving rigid2 | moving GBlock moving rigid2 ]\n\n(RigidCrate)\n\n[ RigidDeco ] -> [ ]\nlate down [ rigid1 | no rigid1 ] -> [ rigid1 RigidD | CrateBelow ]\nlate up [ rigid1 | no rigid1 ] -> [ rigid1 | CrateAbove ]\nlate left [ rigid1 | no rigid1 ] -> [ rigid1 RigidL | ]\nlate right [ rigid1 RigidL | no rigid1 ] -> [ rigid1 RigidLR | ]\nlate right [ rigid1 no AboveDeco | no rigid1 ] -> [ rigid1 RigidR | ]\n\nlate up [ RigidL rigid1 | rigid1 no AboveDeco ] -> [ RigidL rigid1 | rigid1 AboveRigidL ]\nlate up [ RigidR rigid1 | rigid1 no AboveDeco ] -> [ RigidR rigid1 | rigid1 AboveRigidR ]\nlate up [ RigidLR rigid1 | rigid1 ] -> [ RigidLR rigid1 | rigid1 AboveRigidLR ]\n\nlate up [ RigidL rigid1 | rigid1 RigidR ] -> [ RigidL rigid1 | rigid1 AboveRigidLRwithR ]\nlate up [ RigidR rigid1 | rigid1 RigidL ] -> [ RigidR rigid1 | rigid1 AboveRigidLRwithL ]\n\nlate up [ rigid1 | CrateAbove ] -> [ rigid1 RigidU | CrateAbove ]\n\nlate left [ rigid1 RigidU | rigid1 no RigidU ] -> [ rigid1 RigidU | rigid1 RigidUL ]\nlate right [ rigid1 RigidU | rigid1 no RigidU ] -> [ rigid1 RigidU | rigid1 RigidUR ]\n\n\nlate down [ rigid2 | no rigid2 ] -> [ rigid2 RigidD | CrateBelow ]\nlate up [ rigid2 | no rigid2 ] -> [ rigid2 | CrateAbove ]\nlate left [ rigid2 | no rigid2 ] -> [ rigid2 RigidL | ]\nlate right [ rigid2 RigidL | no rigid2 ] -> [ rigid2 RigidLR | ]\nlate right [ rigid2 no AboveDeco | no rigid2 ] -> [ rigid2 RigidR | ]\n\nlate up [ RigidL rigid2 | rigid2 no AboveDeco ] -> [ RigidL rigid2 | rigid2 AboveRigidL ]\nlate up [ RigidR rigid2 | rigid2 no AboveDeco ] -> [ RigidR rigid2 | rigid2 AboveRigidR ]\nlate up [ RigidLR rigid2 | rigid2 ] -> [ RigidLR rigid2 | rigid2 AboveRigidLR ]\n\nlate up [ RigidL rigid2 | rigid2 RigidR ] -> [ RigidL rigid2 | rigid2 AboveRigidLRwithR ]\nlate up [ RigidR rigid2 | rigid2 RigidL ] -> [ RigidR rigid2 | rigid2 AboveRigidLRwithL ]\n\nlate up [ rigid2 | CrateAbove ] -> [ rigid2 RigidU | CrateAbove ]\n\nlate left [ rigid2 RigidU | rigid2 no RigidU ] -> [ rigid2 RigidU | rigid2 RigidUL ]\nlate right [ rigid2 RigidU | rigid2 no RigidU ] -> [ rigid2 RigidU | rigid2 RigidUR ]\n\n(Fall)\n\ndown [ FallRight | Ridable ] -> [ PlayerPinkRight | Ridable ]\ndown [ FallRight no Transition | no Ridable ] -> [ > FallRight | ]\ndown [ PinkRight no Transition | no Ridable ] -> [ > FallRight | ] sfx7\n\ndown [ FallLeft | BGPink ] -> [ PlayerPinkLeft | BGPink ]\ndown [ FallLeft | Block ] -> [ PlayerPinkLeft | Block ]\ndown [ FallLeft no Transition | no Ridable ] -> [ > FallLeft | ]\ndown [ PinkLeft no Transition | no Ridable ] -> [ > FallLeft | ] sfx7\n\n[ FallBlock ] -> [ ]\ndown [ Block no Transition | no ColBGPink no Block no Player ] [ PlayerFall ] -> [ > Block | ] [ PlayerFall FallBlock ] sfx1\n\n(ZonePink border)\n\n[ AddPinkL ] -> [ ]\n[ RemovePinkL ] -> [ ]\n[ AddPinkR ] -> [ ]\n[ RemovePinkR ] -> [ ]\n\nlate left [ no ZonePink no AddPinkL | ZonePink ] -> [ AddPinkLUD | ZonePink ]\nlate right [ no ZonePink no AddPinkR | ZonePink ] -> [ AddPinkRUD | ZonePink ]\n\nlate up [ AddPinkLUD | no ZonePink ] -> [ AddPinkLD | ]\nlate up [ AddPinkRUD | no ZonePink ] -> [ AddPinkRD | ]\n\nlate down [ AddPinkLUD | no ZonePink ] -> [ AddPinkLU | ]\nlate down [ AddPinkRUD | no ZonePink ] -> [ AddPinkRU | ]\n\nlate down [ AddPinkLD | no ZonePink ] -> [ | ]\nlate down [ AddPinkRD | no ZonePink ] -> [ | ]\n\nlate left [ ZonePink no RemovePinkL | no ZonePink ] -> [ ZonePink RemovePinkLUD | ]\nlate right [ ZonePink no RemovePinkR | no ZonePink ] -> [ ZonePink RemovePinkRUD | ]\n\nlate up [ RemovePinkLUD | ZonePink ] -> [ RemovePinkLD | ZonePink ]\nlate up [ RemovePinkRUD | ZonePink ] -> [ RemovePinkRD | ZonePink ]\n\nlate down [ RemovePinkLUD | ZonePink ] -> [ RemovePinkLU | ZonePink ]\nlate down [ RemovePinkRUD | ZonePink ] -> [ RemovePinkRU | ZonePink ]\n\nlate down [ RemovePinkLD | ZonePink ] -> [ | ZonePink ]\nlate down [ RemovePinkRD | ZonePink ] -> [ | ZonePink ]\n\nlate right [ RemovePinkRU | AddPinkLU ] -> [ RemovePinkRU | ]\nlate right [ RemovePinkRD | AddPinkLD ] -> [ RemovePinkRD | ]\n\nlate right [ RemovePinkRUD | AddPinkLU ] -> [ RemovePinkRUD | ]\nlate right [ RemovePinkRUD | AddPinkLD ] -> [ RemovePinkRUD | ]\n\nlate left [ RemovePinkLU | AddPinkRU ] -> [ RemovePinkLU | ]\nlate left [ RemovePinkLD | AddPinkRD ] -> [ RemovePinkLD | ]\n\nlate left [ RemovePinkLUD | AddPinkRU ] -> [ RemovePinkLUD | ]\nlate left [ RemovePinkLUD | AddPinkRD ] -> [ RemovePinkLUD | ]\n\nlate left [ AddPinkLUD | RemovePinkRUD ] -> [ | RemovePinkRUD ]\nlate right [ AddPinkRUD | RemovePinkLUD ] -> [ | RemovePinkLUD ]\nlate left [ AddPinkLUD | RemovePinkRU ] -> [ AddPinkLD | RemovePinkRU ]\nlate right [ AddPinkRUD | RemovePinkLU ] -> [ AddPinkRD | RemovePinkLU ]\nlate left [ AddPinkLUD | RemovePinkRD ] -> [ AddPinkLU | RemovePinkRD ]\nlate right [ AddPinkRUD | RemovePinkLD ] -> [ AddPinkRU | RemovePinkLD ]\nlate left [ AddPinkLU | RemovePinkRU ] -> [ | RemovePinkRU ]\nlate right [ AddPinkRU | RemovePinkLU ] -> [ | RemovePinkLU ]\nlate left [ AddPinkLD | RemovePinkRD ] -> [ | RemovePinkRD ]\nlate right [ AddPinkRD | RemovePinkLD ] -> [ | RemovePinkLD ]\n\n(Animation)\n\nright [ > PlayerBlueLeft ] -> [ > PlayerBlueRight ]\nright [ > WalkAnimBL1 ] -> [ > WalkAnimBR1 ]\nright [ > WalkAnimBL2 ] -> [ > WalkAnimBR2 ]\nright [ > WalkAnimBL3 ] -> [ > WalkAnimBR3 ]\n\nleft [ > PlayerBlueRight ] -> [ > PlayerBlueLeft ]\nleft [ > WalkAnimBR1 ] -> [ > WalkAnimBL1 ]\nleft [ > WalkAnimBR2 ] -> [ > WalkAnimBL2 ]\nleft [ > WalkAnimBR3 ] -> [ > WalkAnimBL3 ]\n\n[ WalkAnimBR3 ] -> [ PlayerBlueRight ]\n[ WalkAnimBR2 ] -> [ WalkAnimBR3 ]\n[ WalkAnimBR1 ] -> [ WalkAnimBR2 ]\n[ > PlayerBlueRight ] -> [ > WalkAnimBR1 ]\n\n[ WalkAnimBL3 ] -> [ PlayerBlueLeft ]\n[ WalkAnimBL2 ] -> [ WalkAnimBL3 ]\n[ WalkAnimBL1 ] -> [ WalkAnimBL2 ]\n[ > PlayerBlueLeft ] -> [ > WalkAnimBL1 ]\n\nright [ > PlayerPinkLeft ] -> [ > PlayerPinkRight ]\nright [ > WalkAnimPL1 ] -> [ > WalkAnimPR1 ]\nright [ > WalkAnimPL2 ] -> [ > WalkAnimPR2 ]\nright [ > WalkAnimPL3 ] -> [ > WalkAnimPR3 ]\n\nleft [ > PlayerPinkRight ] -> [ > PlayerPinkLeft ]\nleft [ > WalkAnimPR1 ] -> [ > WalkAnimPL1 ]\nleft [ > WalkAnimPR2 ] -> [ > WalkAnimPL2 ]\nleft [ > WalkAnimPR3 ] -> [ > WalkAnimPL3 ]\n\n[ WalkAnimPR3 ] -> [ PlayerPinkRight ]\n[ WalkAnimPR2 ] -> [ WalkAnimPR3 ]\n[ WalkAnimPR1 ] -> [ WalkAnimPR2 ]\n[ > PlayerPinkRight ] -> [ > WalkAnimPR1 ]\n\n[ WalkAnimPL3 ] -> [ PlayerPinkLeft ]\n[ WalkAnimPL2 ] -> [ WalkAnimPL3 ]\n[ WalkAnimPL1 ] -> [ WalkAnimPL2 ]\n[ > PlayerPinkLeft ] -> [ > WalkAnimPL1 ]\n\n[ stationary Player ] [ stationary GhostBlockAnim5 ] -> [ Player ] [ action GhostBlock ]\n[ stationary Player ] [ stationary GhostBlockAnim4 ] -> [ Player ] [ action GhostBlockAnim5 ]\n[ stationary Player ] [ stationary GhostBlockAnim3 ] -> [ Player ] [ action GhostBlockAnim4 ]\n[ stationary Player ] [ stationary GhostBlockAnim2 ] -> [ Player ] [ action GhostBlockAnim3 ]\n[ stationary Player ] [ stationary GhostBlockAnim1 ] -> [ Player ] [ action GhostBlockAnim2 ]\n[ stationary Player ] [ stationary GhostBlock ] -> [ Player ] [ action GhostBlockAnim1 ]\n\n[ GhostPlayerAbove ] -> [ ]\nlate up [ GPAboveAnim | ] -> [ GPAboveAnim | GhostPlayerAbove ]\n\n[ stationary Player ] [ stationary GhostPlayerAnim5 ] -> [ Player ] [ action GhostPlayer ]\n[ stationary Player ] [ stationary GhostPlayerAnim4 ] -> [ Player ] [ action GhostPlayerAnim5 ]\n[ stationary Player ] [ stationary GhostPlayerAnim3 ] -> [ Player ] [ action GhostPlayerAnim4 ]\n[ stationary Player ] [ stationary GhostPlayerAnim2 ] -> [ Player ] [ action GhostPlayerAnim3 ]\n[ stationary Player ] [ stationary GhostPlayerAnim1 ] -> [ Player ] [ action GhostPlayerAnim2 ]\n[ stationary Player ] [ stationary GhostPlayer ] -> [ Player ] [ action GhostPlayerAnim1 ]\n\n[ Background Transition1 ] [ Background no Transition1 ] -> [ Background Transition1 ] [ Background Transition1 ]\n[ stationary Transition9 ] -> [ ] again\n[ stationary Transition8 ] -> [ action Transition9 ] again\n[ stationary Transition7 ] -> [ action Transition8 ] again\n[ stationary Transition6 ] -> [ action Transition7 ] again\n[ stationary Transition5 ] -> [ action Transition6 ] again\n[ stationary Transition4 ] -> [ action Transition5 ] again\n[ stationary Transition3 ] -> [ action Transition4 ] again\n[ stationary Transition2 ] -> [ action Transition3 ] again\n[ stationary Transition1 ] -> [ action Transition2 ] again\n\n[ Background TransitionR1 ] [ Background no TransitionR1 ] -> [ Background TransitionR1 ] [ Background TransitionR1 ]\n[ stationary TransitionR9 ] -> [ ] again\n[ stationary TransitionR8 ] -> [ action TransitionR9 ] again\n[ stationary TransitionR7 ] -> [ action TransitionR8 ] again\n[ stationary TransitionR6 ] -> [ action TransitionR7 ] again\n[ stationary TransitionR5 ] -> [ action TransitionR6 ] again\n[ stationary TransitionR4 ] -> [ action TransitionR5 ] again\n[ stationary TransitionR3 ] -> [ action TransitionR4 ] again\n[ stationary TransitionR2 ] -> [ action TransitionR3 ] again\n[ stationary TransitionR1 ] -> [ action TransitionR2 ] again\n\n(Level start)\n\n[ Target no LevelStart ] [ Background no Transition ] -> [ Target ] [ Background Transition5 ]\n[ Target Transition9 no LevelStart ] -> [ Target LevelStart ]\n\n(Win)\n\ndown [ PlayerPink no WinAnim Target no FallBlock | Ridable ]-> [ PlayerPink WinAnim1 Target | Ridable ] sfx8\n\n[ WinAnim6 ] [ Background no Transition ] -> [ WinAnim6 ] [ Background Transition1 ]\n[ WinAnim5 ] -> [ WinAnim6 ]\n[ WinAnim4 ] -> [ WinAnim5 ]\n[ WinAnim3 ] -> [ WinAnim4 ]\n[ WinAnim2 ] -> [ WinAnim3 ]\n[ WinAnim1 ] -> [ WinAnim2 ]\n\n[ > Player WinAnim ] -> cancel\n[ action Player WinAnim ] -> cancel\n\n[ Target WinAnim6 Transition5 ] -> [ Target WinAnim6 Transition5 Winable ]\n\n(tutorial)\n\n[ Crate PressX no TCount ] [ PressX ] -> [ Crate TCount1 ] [ ]\n\n[ TCount5 ] -> [ ]\n[ TCount4 ] -> [ TCount5 ] message X or spacebar to switch characters.\n[ TCount3 ] -> [ TCount4 ]\n[ TCount2 ] -> [ TCount3 ]\n[ TCount1 ] -> [ TCount2 ]\n\n[ > Player ] [ Crate PressX ] -> [ Player ] [ Crate PressX ]\n[ > Player ] [ Crate TCount ] -> [ Player ] [ Crate TCount ]\n[ PlayerPink ] [ PressX ] -> [ PlayerPink ] [ ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Winable \n\n======= \nLEVELS\n=======\n\n\n(Tutorial)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,!xxxxxxxxxo,,,..'''p++++++++++'''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxxx\"xxxxxx,,,..'''p+①+①++++++'''.\n.,,,,,,x,xxxoxx,,,..''''''+'++++++'''.\n.,,,xxxxxxxx,xx,,,..'''++++++++'++'''.\n.,,,xxxxxxxxxxx,,,..'''+++①+++++++'''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,!xxxxxxxx,,,,..''''p++++++++''''.\n.,,,,,,,xxxxxx,,,,..'''''''++++++''''.\n.,,,,,,xxxxxox,,,,..''''''+++++++''''.\n.,,,,xxxxxx\",x,,,,..''''++++++①'+''''.\n.,,,,xx\"xxx\"xx,,,,..''''++①+++①++''''.\n.,,,,xx\"x,,,,,,,,,..''''++①+'''''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxx!xxxx,,,,..''''++++p++++''''.\n.,,,,xxxx\"xxxx,,,,..''''++++①++++''''.\n.,,,,x,,,,,,,x,,,,..''''+'''''''+''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxx\"xxx,,,,..''''+++++①+++''''.\n.,,,,xxx\"o,\"xx,,,,..''''+++①+'①++''''.\n.,,,,xx\",xx\"xx,,,,..''''++①'++①++''''.\n.,,,,xx\"xx,,,,,,,,..''''++①++''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxox,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xx!xx\"xx,,,,,,..'''++p++①++''''''.\n.,,,,,,,,,,,,$,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(二つでスタックのチュートリアル)\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxx!xxxoxxx,,,..'''+++%+++++++'''.\n.,,,,xx\"x\"xxxx,,,,..''''+++++++++''''.\n.,,,,#########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,b,*,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.xxxxxxxxxxxxxxxxx..+++++++++++++++++.\n.x,,,,,,,,,,,,,,,x..+'''''''''''''''+.\n.x,,,,,,b,*,,,,,,x..+''''''''+''''''+.\n.x,,xxxxxxxxxxx,,x..+''+++++++++++''+.\n.x,,xxx!xxxoxxx,,x..+''+++%+++++++''+.\n.x,,,xx\"x\"xxxx,,,x..+'''+++++++++'''+.\n.x,,,,,,,,,,,,,,,x..+'''''''''''''''+.\n.xxxxxxxxxxxxxxxxx..+++++++++++++++++.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(一個なら押しのけて登れる)\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,xxxxxx,,,,,..''''''++++++'''''.\n.,,,,,,x\",x\"x,,,,,..''''''++'+++'''''.\n.,,,,,,,!,,,x,,,,,..'''''''%'''+'''''.\n.,,,,#b,,,*,x,,,,,..'''''''''''+'''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,oxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,,,,xxxxxx,,,,..'''''''++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage Reach the heart to win.\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,x!xxxxxox,,,,..''''+p+++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage You can climb one square.\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxox,,,,..''''+石+++++++''''.\n.,,,,,!,,,,,,,,,,,..'''''p'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage You can only push one block at a time.\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxox,,,,..''''+++++++++''''.\n.,,,,x!\"xxxx\"x,,,,..''''+p石++++石+''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 1. Two Worlds\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,!xxx,b,xxxxxo,,..''%+++'''++++++''.\n.,,,xxx,,,xxxx,,,,..'''+++'''++++''''.\n.,,,xxx,,,xxxx,,,,..'''+++'''++++''''.\n.,,,xxx,,,xxx,,,,,..'''+++'''+++'''''.\n.,,,xxxx*x\"xx,,,,,..'''++++'++++'''''.\n.,,,xxx,,,,,,,,,,,..'''+++'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,文,,,,,,,,..'''''''''''''''''.\n.,,,!xxx,,,xxxo,,,..'''%+++'''++++'''.\n.,,,,xxxx*xxx,,,,,..''''++++'+++'''''.\n.,,,,xxx,,,xx,,,,,..''''+++'''++'''''.\n.,,,,,,,,文,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 2. Delivery\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,oxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,,xxxxxx,,,,,..''''''++++++'''''.\n.,,,,,,x!x\"xx,,,,,..''''''+%++++'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,b*,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 3. One-way Tickets\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx,,,,,,,,,,,..''''++'''''''''''.\n.,,,,x\",,,b*,,,,,,..''''++'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx########,,,..''''++'''''''''''.\n.,,,,xxxxxxxxxx,,,..''''++++++++++'''.\n.,,,,xxxxxxxxxx,,,..''''++++++++++'''.\n.,,,,xxx!xxxoxx,,,..''''+++%++++++'''.\n.,,,,#xx\"x\"xxxx,,,..'''''+++++++++'''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(message Brain training\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,b*,,x\"x,,,,,,,..'''''''+++'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxx!xxxxxxx,,,..'''+++%+++++++'''.\n.,,,xxx,,,,,xxx,,,..'''+++'''''+++'''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxxxxx\"xxxx,,,..'''+++++++++++'''.\n.,,,xxxx\"o,\"xxx,,,..'''++++++'++++'''.\n.,,,xxx\",xx\"xx,,,,..'''++++'+++++''''.\n.,,,,xx\"xx####,,,,..''''+++++''''''''.\n.,,,,######,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(message 2 x 3\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,##,,,,,##,,,,..'''''''''''''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#,\"x\"x\",#,,,,..''''''+++++''''''.\n.,,,,#,,b,*,,#,,,,..'''''''''''''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,xxxxo,,,,,,..''''''+++++''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,xx!xx,,,,,,..''''''++%++''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,##,,,,,##,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 4. 3 x 6\n\n\n......................................\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,b*,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxo,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,!xxxxx,,,,,,..'''''%+++++''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,##########,,,,..'''''''''''''''''.\n.,,,#,,,,,,,,#,,,,..'''''''''''''''''.\n.,,,#,\"!\"x\"x,#,,,,..'''''+p++++''''''.\n.,,,#b,,,*,,,#,,,,..'''''''''''''''''.\n.,,,#,xxxxxx##,,,,..'''''++++++''''''.\n.,,,#,*,,,,,,o,,,,..''''''''''''+''''.\n.,,,#,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,,,,,,,,#,,,,..'''''''''''''''''.\n.,,,##########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 5. Too Small to Climb\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,ox\"#,,,,,,..'''''''+++'''''''.\n.,,,,,,,,,\"#,,,,,,..'''''''''+'''''''.\n.,,,,,,,x,\"#,,,,,,..'''''''+'+'''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,!b*,,,,,,,..'''''''%'''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,b@,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,@,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,oxxx,,,,,,,..''''''++++'''''''.\n.,,,,,#,xxx,,,,,,,..'''''''+++'''''''.\n.,,,,,!,xxx,,,,,,,..'''''%'+++'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 6. I Hope That's Enough\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,xox,,,,,..''''''''++++'''''.\n.,,,,,,,,,xxx\"xx,,..''''''''+++++++''.\n.,,,,,,,,,,,,\"xx,,..''''''''''''+++''.\n.,,######xxxx\"xx,,..''''''''+++++++''.\n.,,#,,,!#x\",,,,,,,..''''''%'++'''''''.\n.,,#,*,,xx\"x,*,*,,..'''''''++++''''''.\n.,,####,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,##,,,,,,b,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 7. The Larger, the Better\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,#,#,#,#,#,#,..'''''''''''''''''.\n.,,,,,xxxxxo,,,,,,..'''''++++++''''''.\n.,,,,,xx\",,,,,,,,,..'''''+++'''''''''.\n.,,,,,xx\",,,,,,,,,..'''''+++'''''''''.\n.,,,,,!x\",@@@@,,,,..'''''%++'''''''''.\n.,#,#,#,#,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,b,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 8. Cut the Screen\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,oxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,@@@@@@@,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"x#x,,,,,..'''''+++++'+'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,x!x\"xxx,,,,,..'''''+%+++++'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,oxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,2222222,,,,,..'''''''''''''''''.\n.,x,,,xxx\"xxx,,,,,..'+'''+++++++'''''.\n.,,,,,@@@@@@@,,,,,..'''''''''''''''''.\n.,,,,,,xxxx!x,,,,,..''''''++++%+'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 9. Transfer\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.#################..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,xx,,,2b@@@,,o,,..''++''''''''''+''.\n.,,!\",222,@,,,,x,,..''%+''''''''''+''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.#################..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 10. Do You Like Math Puzzles?\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,b,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,\"@#xx#xx#xx#x#..'''+''++++++++'+'.\n.,,\"\"@#xxxxxxxxxx#..''++''++++++++++'.\n.,,\"\"@#xx,xx,xx,o#..''++''++'++'++'+'.\n.,,,,@#!x,xx,xx,x#..''''''%+'++'++'+'.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 11. Haste Makes Waste\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,xxx,,,,,,,..'''''''+++'''''''.\n.,,xxx,,,,,,,xxx,,..''+++'''''''+++''.\n.,,xx\",,@@@,,xox,,..''+++'''''''+++''.\n.,,!x\",,@@@,,xxx,,..''%++'''''''+++''.\n.,,###,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 12. Neither Road Leads to Rome\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,#############,,,..'''''''''''''''''.\n.,#,,,,!\"\"\"x\"x###,..''''''%+++++++++'.\n.,#b@@,,,,,,,,xo#,..'''''''''''''+++'.\n.,#,,,,xxxxxx,xx#,..''''''++++++'+++'.\n.,#,,,,,,,,,,,###,..'''''''''''''''''.\n.,#############,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 13. This Elevator Will Be Taking No Passengers\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,o\"\"\"\"\",,,,,,..'''''++++++''''''.\n.,,b*,,\"\"\"\"\",,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.####xxx,,,xxx####..''''+++'''+++''''.\n.,,,,xxx@@@xxx,,,,..''''+++'''+++''''.\n.,,,,xxx@@@xxx,,,,..''''+++'''+++''''.\n.,,,,xxx,,,xxx,,,,..''''+++'''+++''''.\n.,,,,xxx,,,xxx,,,,..''''+++'''+++''''.\n.,,,,x!x,,,xxx,,,,..''''+%+'''+++''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................)\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx\"\"\"\"\"xx,,,,..''''+++++++++''''.\n.,b*,xx\"\"\"\"\"xx,,,,..''''+++++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#oxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#,xx@@@xxx#,,,..'''''++'''+++''''.\n.,,,#xxx@@@xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#x!x,,,xxx#,,,..''''+%+'''+++''''.\n.,,,###,,,,,###,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,xxxx\"\"\"xx,,,,..''''+++++++++''''.\n.,,,,xxx\"\"\"\"xx,,,,..''''+++++++++''''.\n.,b*,xx,\"\"\"\"xx,,,,..''''++'++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#oxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#,xx@@@xxx#,,,..'''''++'''+++''''.\n.,,,#xxx@@@xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#x!x,,,xxx#,,,..''''+%+'''+++''''.\n.,,,###,,,,,###,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 14. 3 x 21\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,#,,xxx\"\"\"o,,..''''''''+++++++''.\n.,,,,@@@,xxx\"\"\",,,..''''''''++++++'''.\n.,,,,@@@#\"\"\"\"\"\",,,..''''''''++++++'''.\n.,,,#@@@,\"\"\"\"\"\",,,..''''''''++++++'''.\n.,,,,@@@,\"\"\"\"\"\",#,..''''''''++++++'''.\n.,,,,@@@,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#,,,,b,,22,,,,..'''''''''''''''''.\n.,,,x!,,,,,,,2,,,,..'''+%''''''''''''.\n.,,,,#,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,#,#,#,#,#,..'''''''''''''''''.\n.,,,,,#,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\nmessage Thanks for playing!\n\n\n(......................................\n.,,,,,#,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#o,b,#,,,,,,..''''''+''''''''''.\n.,,,,,,,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#,*,*#,,,,,,..'''''''''''''''''.\n.,,,,,#,@@@#,,,,,,..'''''''''''''''''.\n.,,,,,#,@@@##,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,##,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,x,,#,,,,,..''''''''%''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,b,,,,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,o,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,\",,,,,,#,,..'''''''+'''''''''.\n.,*,*,*,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,#,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,@@,@@@#,,,,,,#,,..'''''''''''''''''.\n.,@@,,@@,,,,,,,,,,..'''''''''''''''''.\n.,@@@@@@#,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,#,!,#,#,,..''''''''''%''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,##!######,,,,..''''''%''''''''''.\n.,,,,#,,,,,,o#,,,,..'''''''''''+'''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#,,@b2,,#,,,,..'''''''+'+'''''''.\n.,,,,#,@@,22,#,,,,..''''''++'++''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,x\"\"\"x,,,,,,..''''''+++++''''''.\n.,,,,,,\"\"\"\"\",,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,#,xxx,,,,,oxx,#,..'''+++'''''+++'''.\n.,#,xxx,222,xxx,#,..'''+++'''''+++'''.\n.,#,xxx,,,,,xxx,#,..'''+++'''''+++'''.\n.,#,xxx,@@,,xxx,#,..'''+++'''''+++'''.\n.,#,x!x,,,,,xxx,#,..'''+%+'''''+++'''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,\"o,,#,,,..'''''''''++''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#xxx,,,,xxx#,,,..'''+++''''+++''''.\n.,,#xxx,,,,\"xx#,,,..'''+++''''+++''''.\n.,,#xxx,,,,\"xx#,,,..'''+++''''+++''''.\n.,,#xxx,2@,\"xx#,,,..'''+++''''+++''''.\n.,,#!xx22@@\"xx#,,,..'''%++''''+++''''.\n.,,#,,,2,,@,,,#,,,..'''''''''''''''''.\n.,,#,,,2,,@,,,#,,,..'''''''''''''''''.\n.,,#,b,22@@,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n......................................)\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", 2, "tick", "tick", 2, "tick", 2, "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 4, "tick", "tick", "tick", "tick"], "background colbgpink outline:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background bgblue:1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,background bgblue ghostplayeranim1 zonepurple:2,background bgblue zonepurplebelow:3,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,background bgblue zonepurple:4,4,4,3,1,1,1,1,0,0,1,1,1,1,1,1,4,4,4,3,1,1,1,1,0,0,1,\n1,1,1,1,1,4,4,4,3,1,1,1,1,0,0,1,1,1,1,1,1,1,4,background bgblue stayblueleft zonepurplebelow:5,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,background bgblue crateabove:6,background bgblue crate crateline:7,background bgblue cratebelow:8,1,1,1,0,0,1,1,1,1,1,1,1,4,3,1,1,1,1,1,0,0,1,1,1,1,1,1,4,4,4,3,1,1,1,\n1,0,0,1,1,1,1,1,1,4,4,4,3,1,1,1,1,0,0,1,1,1,1,1,1,4,3,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,background ghosttarget zonepurple:9,3,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background bgpink colbgpink:10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,\n10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,background bgpink climbable colbgpink:11,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,background playerpinkright removepinklud zonepink:12,addpinkru background bgpink climbable colbgpink:13,11,10,10,\n10,10,10,0,0,10,10,10,10,10,10,background zonepink:14,14,background removepinkld zonepink:15,10,10,10,10,10,0,0,10,10,10,10,10,10,14,14,14,10,10,10,10,10,0,0,10,\n10,10,10,10,10,background removepinkru zonepink:16,14,background removepinkrd zonepink:17,10,10,10,10,10,0,0,10,10,10,10,10,10,addpinkld background bgpink climbable colbgpink:18,background removepinkrud zonepink:19,addpinklu background bgpink climbable colbgpink:20,11,10,10,10,10,0,0,10,10,10,10,10,10,10,\n11,10,background removepinklud removepinkrud zonepink:21,10,10,10,10,0,0,10,10,10,10,10,10,addpinkrd background bgpink climbable colbgpink:22,background removepinklud zonepink:23,13,11,10,10,10,10,0,0,10,10,10,10,10,10,background removepinklu zonepink:24,14,15,10,10,10,10,\n10,0,0,10,10,10,10,10,10,14,14,17,10,10,10,10,10,0,0,10,10,10,10,10,10,14,20,11,10,10,10,10,10,0,0,10,10,10,\n10,10,10,background levelstart removepinkrud target zonepink:25,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,11,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,10,10,10,\n10,10,10,10,10,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", "7", "1627770584313.9392"] ], [ `gallery: multi-word dictionary`, - ["title Multi-word Dictionary Game\nauthor Sarah Northway\nhomepage www.sarahnorthway.com\n\n(included with permission of Sarah Northway)\n\n========\nOBJECTS\n========\n\nBackground \npink \n\nWall \ngrey\n\nPlayer \nBlue \n\nWon\nyellow\n\nLetterC\nwhite black\n.111.\n1....\n1....\n1....\n.111.\n\nLetterA \nwhite black\n.111.\n1...1\n11111\n1...1\n1...1\n\nLetterT\nwhite black\n11111\n..1..\n..1..\n..1..\n..1..\n\n=======\nLEGEND\n=======\n\nLetter = LetterA or LetterC or LetterT\n. = Background\n# = Wall\nP = Player\nW = Won\nC = LetterC\nA = LetterA\nT = LetterT\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWon\nPlayer, Wall, Letter\n\n======\nRULES \n====== \n\n[ > Player | Letter ] -> [ > Player | > Letter ]\n[ < Player | Letter ] -> [ < Player | < Letter ]\n\nlate right [LetterC | LetterA | LetterT ] -> [ Won LetterC | Won LetterA | Won LetterT ] message You spelled CAT!\nlate right [LetterA | LetterC | LetterT] -> [ Won LetterA | Won LetterC | Won LetterT ] message You spelled ACT!\n\n==============\nWINCONDITIONS\n==============\n\nSome Won\n\n======= \nLEVELS\n=======\n\n#########\n#.......#\n#.A..C..#\n#.......#\n#...P...#\n#.T.....#\n#########\n\n",[1,1,1,0,0,3,0,3,2,2,3,3,3,0,1,1,1,1,0,1,2,2,2,3,3],"background wall:0,0,0,0,0,0,0,0,background:1,\n1,1,1,background letterc:2,0,0,1,1,1,\n1,background lettert:3,0,0,1,1,1,background player:4,1,\n0,0,1,1,1,background lettera:5,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,"1627777496017.3152"] + ["title Multi-word Dictionary Game\nauthor Sarah Northway\nhomepage www.sarahnorthway.com\n\n(included with permission of Sarah Northway)\n\n========\nOBJECTS\n========\n\nBackground \npink \n\nWall \ngrey\n\nPlayer \nBlue \n\nWon\nyellow\n\nLetterC\nwhite black\n.111.\n1....\n1....\n1....\n.111.\n\nLetterA \nwhite black\n.111.\n1...1\n11111\n1...1\n1...1\n\nLetterT\nwhite black\n11111\n..1..\n..1..\n..1..\n..1..\n\n=======\nLEGEND\n=======\n\nLetter = LetterA or LetterC or LetterT\n. = Background\n# = Wall\nP = Player\nW = Won\nC = LetterC\nA = LetterA\nT = LetterT\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWon\nPlayer, Wall, Letter\n\n======\nRULES \n====== \n\n[ > Player | Letter ] -> [ > Player | > Letter ]\n[ < Player | Letter ] -> [ < Player | < Letter ]\n\nlate right [LetterC | LetterA | LetterT ] -> [ Won LetterC | Won LetterA | Won LetterT ] message You spelled CAT!\nlate right [LetterA | LetterC | LetterT] -> [ Won LetterA | Won LetterC | Won LetterT ] message You spelled ACT!\n\n==============\nWINCONDITIONS\n==============\n\nSome Won\n\n======= \nLEVELS\n=======\n\n#########\n#.......#\n#.A..C..#\n#.......#\n#...P...#\n#.T.....#\n#########\n\n", [1, 1, 1, 0, 0, 3, 0, 3, 2, 2, 3, 3, 3, 0, 1, 1, 1, 1, 0, 1, 2, 2, 2, 3, 3], "background wall:0,0,0,0,0,0,0,0,background:1,\n1,1,1,background letterc:2,0,0,1,1,1,\n1,background lettert:3,0,0,1,1,1,background player:4,1,\n0,0,1,1,1,background lettera:5,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, "1627777496017.3152"] ], [ `gallery: midas`, - ["title Midas\nauthor wanderlands\nhomepage www.wanderlands.org\n\n(A port of the luxuriant Wanderlands game, Midas, with permission of the authors. It's a bit messy, if you can find a way to tidy it up, let me know :]\n\nthe original is here\nhttp://wanderlands.org/main/midas\n\n)\n\n========\nOBJECTS\n========\n\nBackground\nWHITE\n\nlovebase\nwhite\n\nTarget\nBLACK\n.....\n..0..\n.000.\n..0..\n.0.0.\n\n\nGoldTarget\nORANGE\n.....\n..0..\n.000.\n..0..\n.0.0.\n\nPlayerGround\nBLACK\n.....\n..0..\n.000.\n.000.\n.0.0.\n\nPlayerJump1\nBLACK\n.....\n..0..\n00000\n.000.\n.0.0.\n\nPlayerJump2\nBLACK\n.....\n..0..\n00000\n.000.\n.0.0.\n\nCrown\nOrange\n.000.\n.0.0.\n.....\n.....\n.....\n\n\nGoldBlock\nOrange\n\n\nGoldingBlock\nbrown\n\nWater\nBlue\n\nWall\nGRAY\n\nlove\npink\n.0.0.\n00000\n00000\n.000.\n..0..\n\n=======\nLEGEND\n=======\n\nJumpingPlayer = PlayerJump1 or PlayerJump2\nPlayer = PlayerGround or PlayerJump1 or PlayerJump2\nObstacle = Player or Wall or Water or GoldingBlock or GoldBlock or Target or GoldTarget\nCanFall = GoldBlock or Target or GoldTarget\n. = Background\n# = Wall\nP = PlayerGround and Crown\nT = Target\nW = Water\nG = GoldBlock\nD = GoldingBlock\n\n\n=========\nSOUNDS\n=========\nSFX0 28219707 (touch water)\nSFX1 45545307 (golding)\nSFX2 42491507 (make lady gold :/ )\nStartGame 8892900\nEndLevel 28067900\nEndGame 28067900\nCloseMessage 44855507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nlovebase\nPlayerGround, PlayerJump1,PlayerJump2, Wall, Water, GoldBlock, Target, GoldTarget, GoldingBlock\nCrown\nlove\n\n======\nRULES\n======\n\nUP [ Up PlayerGround | No Obstacle ] -> [ Up PlayerJump2 | ]\nDOWN [ Up JumpingPlayer | no obstacle ] -> [ JumpingPlayer | ]\nDOWN [ Up PlayerJump2 | no obstacle ] -> [ PlayerJump2 | ]\n\n[ Stationary CanFall ] -> [ Down CanFall ]\n\nHORIZONTAL [ > PlayerJump1 | NO obstacle ] -> [ | PlayerGround ]\nHORIZONTAL [ > PlayerJump2 | NO obstacle ] -> [ | PlayerJump1 ]\nLATE DOWN [ PlayerGround | NO obstacle ] -> [ | playerground ]\n\nLATE [ crown no player ] [ player ] -> [ ] [ crown player ]\nLATE [ goldingblock ] -> [goldblock]\nLATE [ crown | wall ] -> [crown | goldingblock] SFX1\nLATE [ crown | water ] -> [ | water ] SFX0\nLATE [ crown | target ] -> [ crown | goldtarget ] SFX2\nLATE DOWN [ JumpingPlayer | Obstacle ] -> [ PlayerGround | Obstacle ]\n\nLATE [ player | target ] -> [ player lovebase | target ]\nLATE UP [ lovebase | ] -> [ | love ]\n\n==============\nWINCONDITIONS\n==============\nsome love (Awwww!)\n\n=======\nLEVELS\n=======\n##############\n#............#\n#............#\n#.P.......T..#\n##G######WWW##\n##############\n\nmessage MIDAS\n\n###############\n#.............#\n#.............#\n#.....#.......#\n#.P..##..#.T..#\n##G#######WWW##\n###############\n\nmessage She waits for me every day\n\n###############\n#.............#\n#.............#\n#.............#\n#.....#.#.....#\n#.P..##.#..T..#\n##G#######WWW##\n###############\n\nmessage This is the price of gold:\n\n##############\n#............#\n#............#\n#.P..........#\n##G###T##WWW##\n##############\n\nmessage A heavy heart\n\n#################\n#...............#\n#...............#\n#......#.#......#\n#.....#####.....#\n#.......#.......#\n#.T.P...#.......#\n####G#######WWW##\n#################\n\nmessage I step in the same river\nmessage again and again\n\n#####################\n#...................#\n#...................#\n#...................#\n#.........#.#.......#\n#..P........#.......#\n#..d##########......#\n#.......######......#\n#...................#\n#.......T...........#\n#....#########WWW...#\n#...................#\n#...................#\n#...................#\n#####################\n\nmessage Just so I can touch her hand.\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#..P................#\n#..d##T########WWW..#\n#.....#.............#\n#...................#\n#...................#\n#####################\n\nmessage I am a prison to Pactolus\n\n#####################\n#...................#\n#........###........#\n#.......#####.......#\n#......##...##......#\n#.....T##.P.##W.....#\n#.....####d####.....#\n#.....#########.....#\n#...................#\n#####################\n\nmessage But I must have her!\n\n#####################\n#...................#\n#...................#\n#..T..#...###..W....#\n#..#####...#####....#\n#.....###...#.......#\n#........P..........#\n#.....###D###.......#\n#.....#######.......#\n#...................#\n#...................#\n#####################\n\nmessage My burden only grows\n\n#####################\n#...................#\n#........G..........#\n#.....W.GGG.T.......#\n#.....#######.......#\n#.....#.....#.......#\n#.....#..P..#.......#\n#.....###D###.......#\n#.....#######.......#\n#...................#\n#...................#\n#...................#\n#####################\n\nmessage My world collapses.\n\n#####################\n#...................#\n#...................#\n#..G....WW..........#\n#..##.####..........#\n#.....####..........#\n#...................#\n#.#...........T.....#\n#.##.......P..#.....#\n#..############.....#\n#...#.....####......#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\nmessage And she feels so distant\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#..P......#.........#\n#..GG...........WW..#\n#..##T############..#\n#....#..............#\n#...................#\n#...................#\n#####################\n\n\nmessage I live on borrowed time\n\n\n#####################\n#...................#\n#...................#\n#..........T........#\n#.........##........#\n#...................#\n#.......P...........#\n#.......D##.........#\n#...........#.......#\n#...................#\n#...................#\n#.......###W#.......#\n#####################\n\n\nmessage Is she still waiting?\n\n\n#####################\n#...................#\n#....###########....#\n#...................#\n#....P.........W....#\n#....###########....#\n#....#.........#....#\n#...................#\n#.........#.........#\n#......#..#..#......#\n#....T.#..#..#......#\n#....###########....#\n#...................#\n#...................#\n#...................#\n#####################\n\nmessage Is love just fool's gold?\n\n\n#####################\n#...................#\n#...................#\n#...........####....#\n#..T##.##..#...#....#\n#..#..#..#.#.P.#....#\n#..#.....#...G#.....#\n#...#...#....#......#\n#....#W#.....#......#\n#.....#.............#\n#............#......#\n#...................#\n#...................#\n#####################\n\n\nmessage Midas\n\n",[3,3,3,0,3,3],"background wall:0,0,0,0,0,0,0,background:1,1,1,0,0,0,1,\n1,1,background goldblock:2,0,0,1,1,1,2,0,0,1,1,1,\n2,0,0,1,1,1,2,0,0,1,1,1,0,0,\n0,1,1,background crown playerground:3,background goldingblock:4,0,0,1,1,1,0,0,0,1,\n1,1,background water:5,0,0,1,1,background target:6,5,0,0,1,1,1,\n5,0,0,1,1,1,0,0,0,0,0,0,0,0,\n",0,"1627777554778.3638"] + ["title Midas\nauthor wanderlands\nhomepage www.wanderlands.org\n\n(A port of the luxuriant Wanderlands game, Midas, with permission of the authors. It's a bit messy, if you can find a way to tidy it up, let me know :]\n\nthe original is here\nhttp://wanderlands.org/main/midas\n\n)\n\n========\nOBJECTS\n========\n\nBackground\nWHITE\n\nlovebase\nwhite\n\nTarget\nBLACK\n.....\n..0..\n.000.\n..0..\n.0.0.\n\n\nGoldTarget\nORANGE\n.....\n..0..\n.000.\n..0..\n.0.0.\n\nPlayerGround\nBLACK\n.....\n..0..\n.000.\n.000.\n.0.0.\n\nPlayerJump1\nBLACK\n.....\n..0..\n00000\n.000.\n.0.0.\n\nPlayerJump2\nBLACK\n.....\n..0..\n00000\n.000.\n.0.0.\n\nCrown\nOrange\n.000.\n.0.0.\n.....\n.....\n.....\n\n\nGoldBlock\nOrange\n\n\nGoldingBlock\nbrown\n\nWater\nBlue\n\nWall\nGRAY\n\nlove\npink\n.0.0.\n00000\n00000\n.000.\n..0..\n\n=======\nLEGEND\n=======\n\nJumpingPlayer = PlayerJump1 or PlayerJump2\nPlayer = PlayerGround or PlayerJump1 or PlayerJump2\nObstacle = Player or Wall or Water or GoldingBlock or GoldBlock or Target or GoldTarget\nCanFall = GoldBlock or Target or GoldTarget\n. = Background\n# = Wall\nP = PlayerGround and Crown\nT = Target\nW = Water\nG = GoldBlock\nD = GoldingBlock\n\n\n=========\nSOUNDS\n=========\nSFX0 28219707 (touch water)\nSFX1 45545307 (golding)\nSFX2 42491507 (make lady gold :/ )\nStartGame 8892900\nEndLevel 28067900\nEndGame 28067900\nCloseMessage 44855507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nlovebase\nPlayerGround, PlayerJump1,PlayerJump2, Wall, Water, GoldBlock, Target, GoldTarget, GoldingBlock\nCrown\nlove\n\n======\nRULES\n======\n\nUP [ Up PlayerGround | No Obstacle ] -> [ Up PlayerJump2 | ]\nDOWN [ Up JumpingPlayer | no obstacle ] -> [ JumpingPlayer | ]\nDOWN [ Up PlayerJump2 | no obstacle ] -> [ PlayerJump2 | ]\n\n[ Stationary CanFall ] -> [ Down CanFall ]\n\nHORIZONTAL [ > PlayerJump1 | NO obstacle ] -> [ | PlayerGround ]\nHORIZONTAL [ > PlayerJump2 | NO obstacle ] -> [ | PlayerJump1 ]\nLATE DOWN [ PlayerGround | NO obstacle ] -> [ | playerground ]\n\nLATE [ crown no player ] [ player ] -> [ ] [ crown player ]\nLATE [ goldingblock ] -> [goldblock]\nLATE [ crown | wall ] -> [crown | goldingblock] SFX1\nLATE [ crown | water ] -> [ | water ] SFX0\nLATE [ crown | target ] -> [ crown | goldtarget ] SFX2\nLATE DOWN [ JumpingPlayer | Obstacle ] -> [ PlayerGround | Obstacle ]\n\nLATE [ player | target ] -> [ player lovebase | target ]\nLATE UP [ lovebase | ] -> [ | love ]\n\n==============\nWINCONDITIONS\n==============\nsome love (Awwww!)\n\n=======\nLEVELS\n=======\n##############\n#............#\n#............#\n#.P.......T..#\n##G######WWW##\n##############\n\nmessage MIDAS\n\n###############\n#.............#\n#.............#\n#.....#.......#\n#.P..##..#.T..#\n##G#######WWW##\n###############\n\nmessage She waits for me every day\n\n###############\n#.............#\n#.............#\n#.............#\n#.....#.#.....#\n#.P..##.#..T..#\n##G#######WWW##\n###############\n\nmessage This is the price of gold:\n\n##############\n#............#\n#............#\n#.P..........#\n##G###T##WWW##\n##############\n\nmessage A heavy heart\n\n#################\n#...............#\n#...............#\n#......#.#......#\n#.....#####.....#\n#.......#.......#\n#.T.P...#.......#\n####G#######WWW##\n#################\n\nmessage I step in the same river\nmessage again and again\n\n#####################\n#...................#\n#...................#\n#...................#\n#.........#.#.......#\n#..P........#.......#\n#..d##########......#\n#.......######......#\n#...................#\n#.......T...........#\n#....#########WWW...#\n#...................#\n#...................#\n#...................#\n#####################\n\nmessage Just so I can touch her hand.\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#..P................#\n#..d##T########WWW..#\n#.....#.............#\n#...................#\n#...................#\n#####################\n\nmessage I am a prison to Pactolus\n\n#####################\n#...................#\n#........###........#\n#.......#####.......#\n#......##...##......#\n#.....T##.P.##W.....#\n#.....####d####.....#\n#.....#########.....#\n#...................#\n#####################\n\nmessage But I must have her!\n\n#####################\n#...................#\n#...................#\n#..T..#...###..W....#\n#..#####...#####....#\n#.....###...#.......#\n#........P..........#\n#.....###D###.......#\n#.....#######.......#\n#...................#\n#...................#\n#####################\n\nmessage My burden only grows\n\n#####################\n#...................#\n#........G..........#\n#.....W.GGG.T.......#\n#.....#######.......#\n#.....#.....#.......#\n#.....#..P..#.......#\n#.....###D###.......#\n#.....#######.......#\n#...................#\n#...................#\n#...................#\n#####################\n\nmessage My world collapses.\n\n#####################\n#...................#\n#...................#\n#..G....WW..........#\n#..##.####..........#\n#.....####..........#\n#...................#\n#.#...........T.....#\n#.##.......P..#.....#\n#..############.....#\n#...#.....####......#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\nmessage And she feels so distant\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#..P......#.........#\n#..GG...........WW..#\n#..##T############..#\n#....#..............#\n#...................#\n#...................#\n#####################\n\n\nmessage I live on borrowed time\n\n\n#####################\n#...................#\n#...................#\n#..........T........#\n#.........##........#\n#...................#\n#.......P...........#\n#.......D##.........#\n#...........#.......#\n#...................#\n#...................#\n#.......###W#.......#\n#####################\n\n\nmessage Is she still waiting?\n\n\n#####################\n#...................#\n#....###########....#\n#...................#\n#....P.........W....#\n#....###########....#\n#....#.........#....#\n#...................#\n#.........#.........#\n#......#..#..#......#\n#....T.#..#..#......#\n#....###########....#\n#...................#\n#...................#\n#...................#\n#####################\n\nmessage Is love just fool's gold?\n\n\n#####################\n#...................#\n#...................#\n#...........####....#\n#..T##.##..#...#....#\n#..#..#..#.#.P.#....#\n#..#.....#...G#.....#\n#...#...#....#......#\n#....#W#.....#......#\n#.....#.............#\n#............#......#\n#...................#\n#...................#\n#####################\n\n\nmessage Midas\n\n", [3, 3, 3, 0, 3, 3], "background wall:0,0,0,0,0,0,0,background:1,1,1,0,0,0,1,\n1,1,background goldblock:2,0,0,1,1,1,2,0,0,1,1,1,\n2,0,0,1,1,1,2,0,0,1,1,1,0,0,\n0,1,1,background crown playerground:3,background goldingblock:4,0,0,1,1,1,0,0,0,1,\n1,1,background water:5,0,0,1,1,background target:6,5,0,0,1,1,1,\n5,0,0,1,1,1,0,0,0,0,0,0,0,0,\n", 0, "1627777554778.3638"] ], [ `gallery: heroes of sokoban`, - ["title Heroes of Sokoban\nauthor Jonah Ostroff\ntext_color yellow\nkey_repeat_interval 0.25\n\n========\nOBJECTS\n========\n\nBackground \n#AAAAAA #DDDDDD\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 \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#00BB00 Pink DarkBrown\n.000.\n.010.\n00000\n.0.0.\n.0.0.\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\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\nTemp\nPink\n\nShadowDoor\nPurple\n\n=======\nLEGEND\n=======\n\nPlayer = Fighter or Wizard or Thief\nSPlayer = Swizard or Sthief or SFighter\nHero = Player or Splayer\nClosedDoor = PurpleDoor or YellowDoor\nOpenDoor = YellowOpen or PurpleOpen\nSwitch = PurpleSwitch or YellowSwitch\nMoveable = Crate or SPlayer\nStatic = Wall or ClosedDoor\nWeighing = Crate or Player or SPlayer\n. = Background\n# = Wall\nF = Fighter\nW = Wizard\nT = Thief\n1 = SFighter\n2 = SThief\n3 = SWizard\n* = Crate\nG = Goal\n[ = YellowDoor\n] = PurpleDoor\n{ = YellowSwitch\n} = PurpleSwitch\n\n=======\nSOUNDS\n=======\n\nMoveable move 82056307\nSfx0 21221308\nEndlevel 36315908\nSfx1 66399906\nSfx2 92172900\nSfx3 15129100\nEndGame 86793500\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTemp\nGoal, Switch, OpenDoor, ShadowDoor\nClosedDoor, Hero, Crate, Wall\n\n======\nRULES \n====== \n\n[ > Fighter | Moveable ] -> [ > Fighter | > Moveable ] \n[ > Moveable | Moveable ] [ Fighter] -> [ > Moveable | > Moveable ] [ Fighter]\n\n[ < Thief | Moveable ] -> [ < Thief | < Moveable ]\n\n[ > Wizard ] -> [ Wizard > Temp]\n[ > Temp | no Moveable no Static] -> [ | > Temp]\n[ > Temp | Static] [Wizard] -> [ | Static ] [> Wizard]\n[ > Temp | Moveable ] [Wizard] -> [ | Wizard Sfx0] [Moveable]\n\nLate [Temp] -> []\n\n[ Action Fighter] [SThief] -> [SFighter] [Thief Sfx1]\n[ Action Thief] [SWizard] -> [SThief] [Wizard Sfx1]\n[ Action Wizard] [SFighter] -> [SWizard] [Fighter Sfx1]\n[ Action Fighter] [no SThief] [SWizard] -> [SFighter] [no SThief] [Wizard Sfx1]\n[ Action Thief] [no Swizard] [SFighter] -> [SThief] [no SWizard] [Fighter Sfx1]\n[ Action Wizard] [no SFighter] [SThief] -> [SWizard] [no SFighter] [Thief Sfx1]\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\n==============\nWINCONDITIONS\n==============\n\nAll Hero on Goal \nAll Goal on Hero\n\n======= \nLEVELS\n=======\n\nMessage Walk to the exit.\n\n#############\n#...........#\n#.F.......G.#\n#...........#\n#############\n\nMessage Red warrior pushes blocks.\n\n#############\n#...#.*.#.*.#\n#.F...*.**G.#\n#...#.*.#.*.#\n#############\n\nMessage Hold down switches to open doors. \n\n#############\n#...#...#...#\n#.F.*.{.#.G.#\n#...#...[...#\n#############\n\nMessage Press multiple switches at once.\n\n#########\n#.....#G#\n#.#*..#[#\n#.**.F..#\n#.......#\n#.{.{.{.#\n#.......#\n#########\n\nMessage Green thief pulls blocks.\n\n#############\n#...#..*#...#\n#.T.*.{.#.G.#\n#...#..*[...#\n#############\n\n#########\n#.....#G#\n#.#*..#[#\n#.**.T..#\n#.......#\n#.{.{.{.#\n#.......#\n#########\n\n#########\n#...##G.#\n#.#..##[#\n#....{..#\n#.#.#.#.#\n#..*.T..#\n#########\n\nMessage Blue wizard teleports to blocks.\n\n#############\n#...*.{.#...#\n#.W.*.{.[.G.#\n#...#...#...#\n#############\n\n#########\n#.....#G# \n#.#*..#[#\n#.**.W..#\n#.......#\n#.{.{.{.#\n#.......#\n#########\n\n#######\n#W#G#*#\n#.#.#.#\n#*...*#\n#.###.#\n#*.*..#\n#######\n\nMessage Press action to switch heroes.\n\n#############\n#...#...#...#\n#.F...}.[.G.#\n#...#...#...#\n#############\n#...#...#...#\n#.3.].{...G.#\n#...#...#...#\n#############\n\nMessage Heroes can move each other.\n\n###########\n#*#..##G.G#\n#.#.2.#...#\n#.....#..##\n#W###.*..*#\n###########\n\n###########\n#F.*.#.*#{#\n#..#...*..#\n####...*.*#\n#..#.##[###\n#2...#*.GG#\n###########\n\n#############\n#.###########\n#*....{....3#\n#.####.######\n#.#..#.###..#\n#.#G....[].G#\n#.#..#.###..#\n#.####.######\n#.....}....T#\n#############\n\n#############\n##G.#F#*#...#\n#*..[.....{.#\n##G.#3###...#\n#############\n\n###########\n#W..{...[*#\n#######.#[#\n#G#G#G#.#2#\n#.......#1#\n###########\n\n#########\n#*......#\n#######.#\n#F23.]#.#\n#..##G#.#\n#..#GG#.#\n##.####.#\n#.......#\n##}####.#\n#########\n\n#############\n#...#G.G#...#\n#.*.#F23#.G.#\n#...#...#...#\n##[###.###[##\n#...#...#...#\n#.{...{...{.#\n#...#...#...#\n#############\n\n#######\n#G***F#\n#*****#\n#G***2#\n#*****#\n#G***3#\n#######\n\n########\n#3..G[*#\n########\n#F**G{{#\n########\n#2.[G..#\n########\n\n#############\n#...#...#...#\n#F#.*.#.*.#3#\n#...#...#...#\n######.######\n#...#...#####\n#2#.*.#...}*#\n#...#...#####\n######.######\n#G..#...#...#\n#G..].#...#.#\n#G..#...#...#\n#############\n\n#############\n#F.........G#\n#############\n#T.........G#\n#############\n#W.........G#\n#############\nMessage Thanks for playing!\n",[2,2,3,2,2,2,1,1,1,1,0,0,2,1,4,2,2,2,1,2,1,1,1,3,3,3,3,4,1,2],"background wall:0,0,0,0,0,0,0,0,0,0,background:1,1,1,\n0,1,1,1,0,0,1,background crate:2,1,background yellowdoor:3,1,background yellowswitch:4,1,\n0,0,1,1,1,0,1,1,1,0,0,0,0,\n0,0,0,1,0,0,0,background goal:5,1,1,0,1,background sfighter:6,\n1,0,0,1,background sthief:7,1,1,1,background wizard yellowswitch:8,1,0,0,5,\n1,1,0,1,1,1,0,0,0,0,0,0,0,\n1,0,0,0,1,1,1,0,1,1,1,0,0,\n1,5,1,3,1,4,1,0,0,1,1,1,0,\n1,1,1,0,0,0,0,0,0,0,0,0,0,\n",25,"1627777591387.1045"] + ["title Heroes of Sokoban\nauthor Jonah Ostroff\ntext_color yellow\nkey_repeat_interval 0.25\n\n========\nOBJECTS\n========\n\nBackground \n#AAAAAA #DDDDDD\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 \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#00BB00 Pink DarkBrown\n.000.\n.010.\n00000\n.0.0.\n.0.0.\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\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\nTemp\nPink\n\nShadowDoor\nPurple\n\n=======\nLEGEND\n=======\n\nPlayer = Fighter or Wizard or Thief\nSPlayer = Swizard or Sthief or SFighter\nHero = Player or Splayer\nClosedDoor = PurpleDoor or YellowDoor\nOpenDoor = YellowOpen or PurpleOpen\nSwitch = PurpleSwitch or YellowSwitch\nMoveable = Crate or SPlayer\nStatic = Wall or ClosedDoor\nWeighing = Crate or Player or SPlayer\n. = Background\n# = Wall\nF = Fighter\nW = Wizard\nT = Thief\n1 = SFighter\n2 = SThief\n3 = SWizard\n* = Crate\nG = Goal\n[ = YellowDoor\n] = PurpleDoor\n{ = YellowSwitch\n} = PurpleSwitch\n\n=======\nSOUNDS\n=======\n\nMoveable move 82056307\nSfx0 21221308\nEndlevel 36315908\nSfx1 66399906\nSfx2 92172900\nSfx3 15129100\nEndGame 86793500\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTemp\nGoal, Switch, OpenDoor, ShadowDoor\nClosedDoor, Hero, Crate, Wall\n\n======\nRULES \n====== \n\n[ > Fighter | Moveable ] -> [ > Fighter | > Moveable ] \n[ > Moveable | Moveable ] [ Fighter] -> [ > Moveable | > Moveable ] [ Fighter]\n\n[ < Thief | Moveable ] -> [ < Thief | < Moveable ]\n\n[ > Wizard ] -> [ Wizard > Temp]\n[ > Temp | no Moveable no Static] -> [ | > Temp]\n[ > Temp | Static] [Wizard] -> [ | Static ] [> Wizard]\n[ > Temp | Moveable ] [Wizard] -> [ | Wizard Sfx0] [Moveable]\n\nLate [Temp] -> []\n\n[ Action Fighter] [SThief] -> [SFighter] [Thief Sfx1]\n[ Action Thief] [SWizard] -> [SThief] [Wizard Sfx1]\n[ Action Wizard] [SFighter] -> [SWizard] [Fighter Sfx1]\n[ Action Fighter] [no SThief] [SWizard] -> [SFighter] [no SThief] [Wizard Sfx1]\n[ Action Thief] [no Swizard] [SFighter] -> [SThief] [no SWizard] [Fighter Sfx1]\n[ Action Wizard] [no SFighter] [SThief] -> [SWizard] [no SFighter] [Thief Sfx1]\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\n==============\nWINCONDITIONS\n==============\n\nAll Hero on Goal \nAll Goal on Hero\n\n======= \nLEVELS\n=======\n\nMessage Walk to the exit.\n\n#############\n#...........#\n#.F.......G.#\n#...........#\n#############\n\nMessage Red warrior pushes blocks.\n\n#############\n#...#.*.#.*.#\n#.F...*.**G.#\n#...#.*.#.*.#\n#############\n\nMessage Hold down switches to open doors. \n\n#############\n#...#...#...#\n#.F.*.{.#.G.#\n#...#...[...#\n#############\n\nMessage Press multiple switches at once.\n\n#########\n#.....#G#\n#.#*..#[#\n#.**.F..#\n#.......#\n#.{.{.{.#\n#.......#\n#########\n\nMessage Green thief pulls blocks.\n\n#############\n#...#..*#...#\n#.T.*.{.#.G.#\n#...#..*[...#\n#############\n\n#########\n#.....#G#\n#.#*..#[#\n#.**.T..#\n#.......#\n#.{.{.{.#\n#.......#\n#########\n\n#########\n#...##G.#\n#.#..##[#\n#....{..#\n#.#.#.#.#\n#..*.T..#\n#########\n\nMessage Blue wizard teleports to blocks.\n\n#############\n#...*.{.#...#\n#.W.*.{.[.G.#\n#...#...#...#\n#############\n\n#########\n#.....#G# \n#.#*..#[#\n#.**.W..#\n#.......#\n#.{.{.{.#\n#.......#\n#########\n\n#######\n#W#G#*#\n#.#.#.#\n#*...*#\n#.###.#\n#*.*..#\n#######\n\nMessage Press action to switch heroes.\n\n#############\n#...#...#...#\n#.F...}.[.G.#\n#...#...#...#\n#############\n#...#...#...#\n#.3.].{...G.#\n#...#...#...#\n#############\n\nMessage Heroes can move each other.\n\n###########\n#*#..##G.G#\n#.#.2.#...#\n#.....#..##\n#W###.*..*#\n###########\n\n###########\n#F.*.#.*#{#\n#..#...*..#\n####...*.*#\n#..#.##[###\n#2...#*.GG#\n###########\n\n#############\n#.###########\n#*....{....3#\n#.####.######\n#.#..#.###..#\n#.#G....[].G#\n#.#..#.###..#\n#.####.######\n#.....}....T#\n#############\n\n#############\n##G.#F#*#...#\n#*..[.....{.#\n##G.#3###...#\n#############\n\n###########\n#W..{...[*#\n#######.#[#\n#G#G#G#.#2#\n#.......#1#\n###########\n\n#########\n#*......#\n#######.#\n#F23.]#.#\n#..##G#.#\n#..#GG#.#\n##.####.#\n#.......#\n##}####.#\n#########\n\n#############\n#...#G.G#...#\n#.*.#F23#.G.#\n#...#...#...#\n##[###.###[##\n#...#...#...#\n#.{...{...{.#\n#...#...#...#\n#############\n\n#######\n#G***F#\n#*****#\n#G***2#\n#*****#\n#G***3#\n#######\n\n########\n#3..G[*#\n########\n#F**G{{#\n########\n#2.[G..#\n########\n\n#############\n#...#...#...#\n#F#.*.#.*.#3#\n#...#...#...#\n######.######\n#...#...#####\n#2#.*.#...}*#\n#...#...#####\n######.######\n#G..#...#...#\n#G..].#...#.#\n#G..#...#...#\n#############\n\n#############\n#F.........G#\n#############\n#T.........G#\n#############\n#W.........G#\n#############\nMessage Thanks for playing!\n", [2, 2, 3, 2, 2, 2, 1, 1, 1, 1, 0, 0, 2, 1, 4, 2, 2, 2, 1, 2, 1, 1, 1, 3, 3, 3, 3, 4, 1, 2], "background wall:0,0,0,0,0,0,0,0,0,0,background:1,1,1,\n0,1,1,1,0,0,1,background crate:2,1,background yellowdoor:3,1,background yellowswitch:4,1,\n0,0,1,1,1,0,1,1,1,0,0,0,0,\n0,0,0,1,0,0,0,background goal:5,1,1,0,1,background sfighter:6,\n1,0,0,1,background sthief:7,1,1,1,background wizard yellowswitch:8,1,0,0,5,\n1,1,0,1,1,1,0,0,0,0,0,0,0,\n1,0,0,0,1,1,1,0,1,1,1,0,0,\n1,5,1,3,1,4,1,0,0,1,1,1,0,\n1,1,1,0,0,0,0,0,0,0,0,0,0,\n", 25, "1627777591387.1045"] ], [ `gallery: cake monsters`, - ["title Cake Monsters\nauthor Matt Rix\nhomepage www.magicule.com\ncolor_palette whitingjp\ntext_color #FF5588\nbackground_color #050A0A\nnoaction\nyoutube Z6ih1aKeETk (tycho!)\n\n========\nOBJECTS\n========\n\n(-----------------------)\n(----MONSTER COLOURS----)\n(-----------------------)\n\nRedMon\n#D8144D #B00F3F BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nYellowMon\n#F3F333 #C7C829 BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nBlueMon\n#0366E3 #0A52BB BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nPurpleMon\n#9E14E2 #800FBA BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nOrangeMon\n#E68A25 #BB711E BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nGreenMon\n#1CED55 #15C346 BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nTrashMon\n#7C6953 #6D5239 BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\n\n(------------------------)\n(------CAKE COLOURS------)\n(------------------------)\n\nRedCake\n#D8144D #B00F3F\n.000.\n00000\n00000\n10001\n.111.\n\nYellowCake\n#F3F333 #C7C829\n.000.\n00000\n00000\n10001\n.111.\n\nBlueCake\n#0366E3 #0A52BB\n.000.\n00000\n00000\n10001\n.111.\n\n\nPurpleCake\n#9E14E2 #800FBA\n.000.\n00000\n00000\n10001\n.111.\n\nOrangeCake\n#E68A25 #BB711E\n.000.\n00000\n00000\n10001\n.111.\n\nGreenCake\n#1CED55 #15C346\n.000.\n00000\n00000\n10001\n.111.\n\nTrashCake\n#7C6953 #6D5239\n.000.\n00000\n00000\n10001\n.111.\n\n(-----------------------)\n(------OTHER STUFF------)\n(-----------------------)\n\nDestroyer\n#001111 #223333 #384949\n.222.\n20202\n12021\n10101\n.111.\n\nBackground\n#152020 #192525\n01101\n10110\n01101\n11010\n01010\n\n\nWall\n#334444 #384949 #445555 #475959 #4A6B6B\n34443\n23332\n12221\n01110\n00000\n\nBlackness\n#050A0A\n\n\n=======\nLEGEND\n=======\n\n\n. = Background\n_ = Blackness\n# = Wall\nX = Destroyer\n\nR = RedMon\nY = YellowMon\nB = BlueMon\nP = PurpleMon\nO = OrangeMon\nG = GreenMon\nT = TrashMon\n\nMonster = RedMon or YellowMon or BlueMon or PurpleMon or OrangeMon or GreenMon or TrashMon\nPlayer = Monster\n\nPrimaryMon = RedMon or YellowMon or BlueMon\nSecondaryMon = PurpleMon or OrangeMon or GreenMon\n\n(each cake char is the next letter in the alphabet after the monster char)\n(except for orange, sadly)\nS = RedCake\nZ = YellowCake\nC = BlueCake\nQ = PurpleCake\nA = OrangeCake\nH = GreenCake\nU = TrashCake\n\nCake = RedCake or YellowCake or BlueCake or PurpleCake or OrangeCake or GreenCake or TrashCake\n\n=======\nSOUNDS\n=======\n\nsfx0 8478107 (move)\nsfx1 18590508 (eat other monster)\nsfx2 61437309 (eat cake)\nsfx3 89161102 (monster destroyed)\nstartlevel 563108\nendlevel 76028308\nundo 82948709\nrestart 22851101\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBlackness, Wall, Destroyer\nMonster,Cake\n\n\n\n======\nRULES \n====== \n\n(------------------------)\n(----MONSTER MOVEMENT----)\n(------------------------)\n\n(movement sound)\n[ > Monster ] -> [ > Monster ] sfx0\n\n(stop the monster if it hits a wall)\n[ > Monster | Wall ] -> [ Monster | Wall] \n\n(if monster hits a destroyer, remove the monster)\n[ > Monster | Destroyer ] -> [ | Destroyer] sfx3\n\n(monster eats cakes of the same color)\n[ > RedMon | RedCake] -> [ | RedMon] sfx2 \n[ > BlueMon | BlueCake] -> [ | BlueMon] sfx2 \n[ > YellowMon | YellowCake] -> [ | YellowMon] sfx2 \n[ > PurpleMon | PurpleCake] -> [ | PurpleMon] sfx2 \n[ > OrangeMon | OrangeCake] -> [ | OrangeMon] sfx2 \n[ > GreenMon | GreenCake] -> [ | GreenMon] sfx2 \n[ > TrashMon | TrashCake] -> [ | TrashMon] sfx2 \n\n(stop the monster if it hits a cake of a different color)\n(note: this is necessary to make sure the monster is marked as stationary)\n[ > RedMon | Cake no RedCake] -> [ RedMon | Cake no RedCake]\n[ > BlueMon | Cake no BlueCake] -> [ BlueMon | Cake no BlueCake]\n[ > YellowMon | Cake no YellowCake] -> [ YellowMon | Cake no YellowCake]\n[ > PurpleMon | Cake no PurpleCake] -> [ PurpleMon | Cake no PurpleCake]\n[ > OrangeMon | Cake no OrangeCake] -> [ OrangeMon | Cake no OrangeCake]\n[ > GreenMon | Cake no GreenCake] -> [ GreenMon | Cake no GreenCake]\n[ > TrashMon | Cake no TrashCake] -> [ TrashMon | Cake no TrashCake]\n\n(--------------------------)\n(---MONSTER COLOR MIXING---)\n(--------------------------)\n\n(red+blue = purple)\n[ > BlueMon | stationary RedMon] -> [ | PurpleMon] sfx1\n[ > RedMon | stationary BlueMon] -> [ | PurpleMon] sfx1\n\n(red+yellow = orange)\n[ > RedMon | stationary YellowMon] -> [ | OrangeMon] sfx1\n[ > YellowMon | stationary RedMon] -> [ | OrangeMon] sfx1\n\n(blue+yellow = green)\n[ > BlueMon | stationary YellowMon] -> [ | GreenMon] sfx1\n[ > YellowMon | stationary BlueMon] -> [ | GreenMon] sfx1\n\n(primary color + secondary color = brown aka trash)\n[ > PrimaryMon | stationary SecondaryMon] -> [ | TrashMon] sfx1\n[ > SecondaryMon | stationary PrimaryMon] -> [ | TrashMon] sfx1\n\n(green+orange = trash)\n[ > GreenMon | stationary OrangeMon] -> [ | TrashMon] sfx1\n[ > OrangeMon | stationary GreenMon] -> [ | TrashMon] sfx1\n\n(purple+orange = trash)\n[ > PurpleMon | stationary OrangeMon] -> [ | TrashMon] sfx1\n[ > OrangeMon | stationary PurpleMon] -> [ | TrashMon] sfx1\n\n(green+purple = trash)\n[ > GreenMon | stationary PurpleMon] -> [ | TrashMon] sfx1\n[ > PurpleMon | stationary GreenMon] -> [ | TrashMon] sfx1\n\n(trash+anything = trash)\n[ > TrashMon | stationary Monster] -> [ | TrashMon] sfx1\n[ > Monster | stationary TrashMon] -> [ | TrashMon] sfx1\n\n(monster + monster of the same color = monster of the same color)\n[ > Monster | stationary Monster] -> [ | Monster] sfx1\n\n \n==============\nWINCONDITIONS\n==============\n \nNo Cake\n\n\n======= \nLEVELS\n======= \n\n\nmessage WELCOME TO CAKE MONSTERS!\nmessage MONSTERS LIKE EATING CAKE\n\n_______\n#######\n#.....#\n#.r...#\n#...s.#\n#.....#\n#######\n_______\n(diff 0)\n\nmessage YOU MOVE ALL OF THE MONSTERS\n\n######_######\n#....#_#z...#\n#.r..#_#....#\n#..s.#_#....#\n#....#_#...y#\n######_######\n_____________\n######_######\n#.c..#_#....#\n#....#_#...h#\n#..b.#_#g...#\n#....#_#....#\n######_######\n(diff 0)\n\nmessage MONSTERS ONLY LIKE THEIR OWN CAKE\nmessage REMEMBER: Z TO UNDO, R TO RESTART\n_________\n#########\n#r.z....#\n#######.#\n#.......#\n#.sy....#\n#########\n_________\n(diff 1)\n\nmessage MONSTERS MIX WHEN THEY GET EATEN\n_________\n#########\n#.......#\n#.#####.#\n#.r.q.b.#\n#.#####.#\n#.......#\n#########\n_________\n(diff 1)\n\n\nmessage BROWN + ANY COLOR = BROWN\n__________\n##########\n#........#\n#.rybpog.#\n#........#\n#........#\n#.szcqah.#\n#........#\n#........#\n#.uuuuuu.#\n#........#\n##########\n__________\n(diff 1)\n\n\nmessage HAVE FUN!\n############\n#y........c#\n#b........z#\n#####..#####\n____#..#____\n____#..#____\n____#hh#____\n____####____\n(diff 1)\n\n(----------------------------)\n\n\n_____\n#####\n#RCQ#\n#.CS#\n#Q.B#\n#####\n_____\n(diff 2)\n\n\n\n\n______\n######\n#R...#\n#B...#\n#Q.QQ#\n#CSCS#\n######\n______\n(diff 2)\n\n_______\n#######\n#R.H.B#\n#.....#\n#.....#\n#Y.Q.B#\n#######\n_______\n(diff 2)\n\n_______\n#######\n#CCHCB#\n#.....#\n#YZHZZ#\n#######\n_______\n(diff 2)\n\n\n______\n######\n#R..B#\n#S.C.#\n#.A.C#\n#Y.C.#\n######\n______\n(diff 2)\n\n\nmessage PIECE OF CAKE, RIGHT?\n\n\n#########\n#ccccccc#\n#bcccccc#\n######cc#\n_____#ch#\n######zz#\n#yzzzzzz#\n#yzzzzzz#\n######zz#\n_____#sa#\n######ss#\n#rssssss#\n#sssssss#\n#########\n(diff 3, fun)\n\n_______\n#######\n#R.B.Y#\n#Y.B.R#\n#R.B.Y#\n#Y.B.R#\n#AHQHA#\n#######\n_______\n(diff 3)\n\n\n_______\n#######\n#AR.BA#\n#.#.#.#\n#H...H#\n##.A.##\n#HY#YH#\n#######\n_______\n(diff 3)\n\n\n\nmessage X TILES DESTROY MONSTERS\n_________\n_###_###_\n#...#...#\n#.q.x.p.#\n#...x...#\n_#..x..#_\n__#...#__\n___#.#___\n____#____\n_________\n(diff 0, destroyerz)\n\n\n_____\n#####\n#RAR#\n#RXY#\n#YAY#\n#####\n_____\n(diff 1, destroyerz)\n\n______\n######\n#BHHB#\n#YXXY#\n#YXXY#\n#BHHB#\n######\n______\n(diff 1 destroyerz)\n\n_______\n#######\n#RQXQR#\n#SQXQS#\n#BQXQB#\n#######\n_______\n(diff 1 destroyerz)\n\n___________\n#####_#####\n#sss#_#qqq#\n#sss###qqq#\n#x.......x#\n##x.rxb.x##\n#x.......x#\n#qqq###ccc#\n#qqq#_#ccc#\n#####_#####\n___________\n(diff 2 destroyerz)\n\n___________\n###########\n#...#q#.b.#\n#sxr#.#xx.#\n#.x.....c.#\n###########\n___________\n(diff 3 destroyerz)\n\n\n\nmessage YOU'RE CAKING THIS LOOK EASY!\n\n______\n######\n#RZSZ#\n#YSZS#\n#..SZ#\n#..ZS#\n######\n______\n(diff 3)\n\n\n#######\n#Y#B#Y#\n#.#R#.#\n#.#.#.#\n#.....#\n#.###.#\n#HHAHH#\n#######\n(diff 3, fun!)\n\n\n\n####__####\n#qc####cb#\n#c......c#\n##.####.##\n_#.#xx#.#_\n_#.c.r#.#_\n##.####.##\n#c......c#\n#qc####cq#\n####__####\n(diff 3)\n\n\n\n\n_#########_\n_#rrr.sss#_\n_#.......#_\n_#yyy.zzz#_\n_#.......#_\n##bbb.ccc##\n#.........#\n#.q..a..h.#\n#.........#\n###########\n\n______\n######\n#RA.Y#\n#....#\n#HH..#\n#SBCY#\n######\n______\n(diff 4)\n\nmessage LET'S CAKE IT TO THE NEXT TIER!\n\n\n#############\n#...#.h.#...#\n#.r.#...#.y.#\n#...c#c#s...#\n###c.....s###\n#..#.#h#.#..#\n#z.h.z.c.s.c#\n#..#.#s#.#..#\n###......z###\n#....#z#z...#\n#.b.#...#.g.#\n#...#.s.#...#\n#############\n(diff 3, easy but fun)\n\n\n_____\n#####\n#B.B#\n#RRY#\n#.Q.#\n#S.S#\n#CHC#\n#####\n_____\n(diff 5 - fun!)\n\n\n______\n######\n#HYBH#\n#YBYB#\n#BBBB#\n#HHHH#\n######\n______\n(diff 4)\n\n\n\n\n______\n######\n#BR.Y#\n#..A.#\n#SCZA#\n#CSZA#\n######\n______\n(diff 4)\n\n\n\n\n______\n######\n#CZG.#\n#ZCR##\n###..#\n#SHY##\n#HSB.#\n######\n______\n(diff 5 - very fun!)\n\n\nmessage YOU'RE GETTING BATTER!\n\n______\n######\n#YYYY#\n#...R#\n#AAAA#\n#ZZZZ#\n######\n______\n(diff 5 - fun but surprisingly hard)\n\n\n_______\n#######\n#Y..YA#\n#.BB.H#\n#R..RQ#\n#Y..YH#\n#######\n_______\n(diff 4)\n\n\nmessage ICING ON THE CAKE!\n\n______\n######\n#ZBBZ#\n#YBYB#\n#....#\n#ZHCZ#\n######\n______\n(diff 5)\n\n\n\n\n_______\n#######\n#A.S.A#\n#.Z.Z.#\n#SYRYS#\n#.ZYZ.#\n#A.S.A#\n#######\n_______\n(diff 5 - not too hard)\n\n\n\nmessage WILL YOU CAKE IT OUT ALIVE?\n______\n######\n#ZZZZ#\n#SSSS#\n#CCCC#\n#YRB.#\n######\n______\n(diff 6 - fun but tricky)\n\n\n\n\nmessage THE FINAL CHALLENGE!\nmessage DOUGH YOU HAVE WHAT IT CAKES?\n_____\n#####\n#AYA#\n#...#\n#CBC#\n#SZY#\n#RZS#\n#CBC#\n#...#\n#HOH#\n#####\n_____\n(diff 8 - a pretty tough one)\n\n\n\nmessage WELL, YOU REALLY TOOK THE CAKE!\nmessage CONGRATS, YOU WIN! :)\n\n\n\n",[1,1,1,1,3,1,2,2,0,1,1,1,1,1,2,2,2,3,1,0,0,0,0,2,1,3,2,2,2,2,2,2,1],"background wall:0,0,0,0,background blackness:1,1,0,0,0,0,\n0,background purplecake:2,background:3,0,0,0,0,background bluecake:4,2,0,\n0,3,3,3,3,3,3,3,background bluemon:5,0,\n0,0,3,0,0,3,0,3,0,0,\n1,0,3,0,background destroyer:6,3,0,3,0,1,\n1,0,3,0,6,3,0,3,0,1,\n0,0,3,0,0,0,0,3,0,0,\n0,3,3,3,3,3,3,3,4,0,\n0,3,4,0,0,0,0,4,2,0,\n0,0,0,0,1,1,0,0,0,0,\n",33,"1627777633918.221"] + ["title Cake Monsters\nauthor Matt Rix\nhomepage www.magicule.com\ncolor_palette whitingjp\ntext_color #FF5588\nbackground_color #050A0A\nnoaction\nyoutube Z6ih1aKeETk (tycho!)\n\n========\nOBJECTS\n========\n\n(-----------------------)\n(----MONSTER COLOURS----)\n(-----------------------)\n\nRedMon\n#D8144D #B00F3F BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nYellowMon\n#F3F333 #C7C829 BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nBlueMon\n#0366E3 #0A52BB BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nPurpleMon\n#9E14E2 #800FBA BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nOrangeMon\n#E68A25 #BB711E BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nGreenMon\n#1CED55 #15C346 BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nTrashMon\n#7C6953 #6D5239 BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\n\n(------------------------)\n(------CAKE COLOURS------)\n(------------------------)\n\nRedCake\n#D8144D #B00F3F\n.000.\n00000\n00000\n10001\n.111.\n\nYellowCake\n#F3F333 #C7C829\n.000.\n00000\n00000\n10001\n.111.\n\nBlueCake\n#0366E3 #0A52BB\n.000.\n00000\n00000\n10001\n.111.\n\n\nPurpleCake\n#9E14E2 #800FBA\n.000.\n00000\n00000\n10001\n.111.\n\nOrangeCake\n#E68A25 #BB711E\n.000.\n00000\n00000\n10001\n.111.\n\nGreenCake\n#1CED55 #15C346\n.000.\n00000\n00000\n10001\n.111.\n\nTrashCake\n#7C6953 #6D5239\n.000.\n00000\n00000\n10001\n.111.\n\n(-----------------------)\n(------OTHER STUFF------)\n(-----------------------)\n\nDestroyer\n#001111 #223333 #384949\n.222.\n20202\n12021\n10101\n.111.\n\nBackground\n#152020 #192525\n01101\n10110\n01101\n11010\n01010\n\n\nWall\n#334444 #384949 #445555 #475959 #4A6B6B\n34443\n23332\n12221\n01110\n00000\n\nBlackness\n#050A0A\n\n\n=======\nLEGEND\n=======\n\n\n. = Background\n_ = Blackness\n# = Wall\nX = Destroyer\n\nR = RedMon\nY = YellowMon\nB = BlueMon\nP = PurpleMon\nO = OrangeMon\nG = GreenMon\nT = TrashMon\n\nMonster = RedMon or YellowMon or BlueMon or PurpleMon or OrangeMon or GreenMon or TrashMon\nPlayer = Monster\n\nPrimaryMon = RedMon or YellowMon or BlueMon\nSecondaryMon = PurpleMon or OrangeMon or GreenMon\n\n(each cake char is the next letter in the alphabet after the monster char)\n(except for orange, sadly)\nS = RedCake\nZ = YellowCake\nC = BlueCake\nQ = PurpleCake\nA = OrangeCake\nH = GreenCake\nU = TrashCake\n\nCake = RedCake or YellowCake or BlueCake or PurpleCake or OrangeCake or GreenCake or TrashCake\n\n=======\nSOUNDS\n=======\n\nsfx0 8478107 (move)\nsfx1 18590508 (eat other monster)\nsfx2 61437309 (eat cake)\nsfx3 89161102 (monster destroyed)\nstartlevel 563108\nendlevel 76028308\nundo 82948709\nrestart 22851101\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBlackness, Wall, Destroyer\nMonster,Cake\n\n\n\n======\nRULES \n====== \n\n(------------------------)\n(----MONSTER MOVEMENT----)\n(------------------------)\n\n(movement sound)\n[ > Monster ] -> [ > Monster ] sfx0\n\n(stop the monster if it hits a wall)\n[ > Monster | Wall ] -> [ Monster | Wall] \n\n(if monster hits a destroyer, remove the monster)\n[ > Monster | Destroyer ] -> [ | Destroyer] sfx3\n\n(monster eats cakes of the same color)\n[ > RedMon | RedCake] -> [ | RedMon] sfx2 \n[ > BlueMon | BlueCake] -> [ | BlueMon] sfx2 \n[ > YellowMon | YellowCake] -> [ | YellowMon] sfx2 \n[ > PurpleMon | PurpleCake] -> [ | PurpleMon] sfx2 \n[ > OrangeMon | OrangeCake] -> [ | OrangeMon] sfx2 \n[ > GreenMon | GreenCake] -> [ | GreenMon] sfx2 \n[ > TrashMon | TrashCake] -> [ | TrashMon] sfx2 \n\n(stop the monster if it hits a cake of a different color)\n(note: this is necessary to make sure the monster is marked as stationary)\n[ > RedMon | Cake no RedCake] -> [ RedMon | Cake no RedCake]\n[ > BlueMon | Cake no BlueCake] -> [ BlueMon | Cake no BlueCake]\n[ > YellowMon | Cake no YellowCake] -> [ YellowMon | Cake no YellowCake]\n[ > PurpleMon | Cake no PurpleCake] -> [ PurpleMon | Cake no PurpleCake]\n[ > OrangeMon | Cake no OrangeCake] -> [ OrangeMon | Cake no OrangeCake]\n[ > GreenMon | Cake no GreenCake] -> [ GreenMon | Cake no GreenCake]\n[ > TrashMon | Cake no TrashCake] -> [ TrashMon | Cake no TrashCake]\n\n(--------------------------)\n(---MONSTER COLOR MIXING---)\n(--------------------------)\n\n(red+blue = purple)\n[ > BlueMon | stationary RedMon] -> [ | PurpleMon] sfx1\n[ > RedMon | stationary BlueMon] -> [ | PurpleMon] sfx1\n\n(red+yellow = orange)\n[ > RedMon | stationary YellowMon] -> [ | OrangeMon] sfx1\n[ > YellowMon | stationary RedMon] -> [ | OrangeMon] sfx1\n\n(blue+yellow = green)\n[ > BlueMon | stationary YellowMon] -> [ | GreenMon] sfx1\n[ > YellowMon | stationary BlueMon] -> [ | GreenMon] sfx1\n\n(primary color + secondary color = brown aka trash)\n[ > PrimaryMon | stationary SecondaryMon] -> [ | TrashMon] sfx1\n[ > SecondaryMon | stationary PrimaryMon] -> [ | TrashMon] sfx1\n\n(green+orange = trash)\n[ > GreenMon | stationary OrangeMon] -> [ | TrashMon] sfx1\n[ > OrangeMon | stationary GreenMon] -> [ | TrashMon] sfx1\n\n(purple+orange = trash)\n[ > PurpleMon | stationary OrangeMon] -> [ | TrashMon] sfx1\n[ > OrangeMon | stationary PurpleMon] -> [ | TrashMon] sfx1\n\n(green+purple = trash)\n[ > GreenMon | stationary PurpleMon] -> [ | TrashMon] sfx1\n[ > PurpleMon | stationary GreenMon] -> [ | TrashMon] sfx1\n\n(trash+anything = trash)\n[ > TrashMon | stationary Monster] -> [ | TrashMon] sfx1\n[ > Monster | stationary TrashMon] -> [ | TrashMon] sfx1\n\n(monster + monster of the same color = monster of the same color)\n[ > Monster | stationary Monster] -> [ | Monster] sfx1\n\n \n==============\nWINCONDITIONS\n==============\n \nNo Cake\n\n\n======= \nLEVELS\n======= \n\n\nmessage WELCOME TO CAKE MONSTERS!\nmessage MONSTERS LIKE EATING CAKE\n\n_______\n#######\n#.....#\n#.r...#\n#...s.#\n#.....#\n#######\n_______\n(diff 0)\n\nmessage YOU MOVE ALL OF THE MONSTERS\n\n######_######\n#....#_#z...#\n#.r..#_#....#\n#..s.#_#....#\n#....#_#...y#\n######_######\n_____________\n######_######\n#.c..#_#....#\n#....#_#...h#\n#..b.#_#g...#\n#....#_#....#\n######_######\n(diff 0)\n\nmessage MONSTERS ONLY LIKE THEIR OWN CAKE\nmessage REMEMBER: Z TO UNDO, R TO RESTART\n_________\n#########\n#r.z....#\n#######.#\n#.......#\n#.sy....#\n#########\n_________\n(diff 1)\n\nmessage MONSTERS MIX WHEN THEY GET EATEN\n_________\n#########\n#.......#\n#.#####.#\n#.r.q.b.#\n#.#####.#\n#.......#\n#########\n_________\n(diff 1)\n\n\nmessage BROWN + ANY COLOR = BROWN\n__________\n##########\n#........#\n#.rybpog.#\n#........#\n#........#\n#.szcqah.#\n#........#\n#........#\n#.uuuuuu.#\n#........#\n##########\n__________\n(diff 1)\n\n\nmessage HAVE FUN!\n############\n#y........c#\n#b........z#\n#####..#####\n____#..#____\n____#..#____\n____#hh#____\n____####____\n(diff 1)\n\n(----------------------------)\n\n\n_____\n#####\n#RCQ#\n#.CS#\n#Q.B#\n#####\n_____\n(diff 2)\n\n\n\n\n______\n######\n#R...#\n#B...#\n#Q.QQ#\n#CSCS#\n######\n______\n(diff 2)\n\n_______\n#######\n#R.H.B#\n#.....#\n#.....#\n#Y.Q.B#\n#######\n_______\n(diff 2)\n\n_______\n#######\n#CCHCB#\n#.....#\n#YZHZZ#\n#######\n_______\n(diff 2)\n\n\n______\n######\n#R..B#\n#S.C.#\n#.A.C#\n#Y.C.#\n######\n______\n(diff 2)\n\n\nmessage PIECE OF CAKE, RIGHT?\n\n\n#########\n#ccccccc#\n#bcccccc#\n######cc#\n_____#ch#\n######zz#\n#yzzzzzz#\n#yzzzzzz#\n######zz#\n_____#sa#\n######ss#\n#rssssss#\n#sssssss#\n#########\n(diff 3, fun)\n\n_______\n#######\n#R.B.Y#\n#Y.B.R#\n#R.B.Y#\n#Y.B.R#\n#AHQHA#\n#######\n_______\n(diff 3)\n\n\n_______\n#######\n#AR.BA#\n#.#.#.#\n#H...H#\n##.A.##\n#HY#YH#\n#######\n_______\n(diff 3)\n\n\n\nmessage X TILES DESTROY MONSTERS\n_________\n_###_###_\n#...#...#\n#.q.x.p.#\n#...x...#\n_#..x..#_\n__#...#__\n___#.#___\n____#____\n_________\n(diff 0, destroyerz)\n\n\n_____\n#####\n#RAR#\n#RXY#\n#YAY#\n#####\n_____\n(diff 1, destroyerz)\n\n______\n######\n#BHHB#\n#YXXY#\n#YXXY#\n#BHHB#\n######\n______\n(diff 1 destroyerz)\n\n_______\n#######\n#RQXQR#\n#SQXQS#\n#BQXQB#\n#######\n_______\n(diff 1 destroyerz)\n\n___________\n#####_#####\n#sss#_#qqq#\n#sss###qqq#\n#x.......x#\n##x.rxb.x##\n#x.......x#\n#qqq###ccc#\n#qqq#_#ccc#\n#####_#####\n___________\n(diff 2 destroyerz)\n\n___________\n###########\n#...#q#.b.#\n#sxr#.#xx.#\n#.x.....c.#\n###########\n___________\n(diff 3 destroyerz)\n\n\n\nmessage YOU'RE CAKING THIS LOOK EASY!\n\n______\n######\n#RZSZ#\n#YSZS#\n#..SZ#\n#..ZS#\n######\n______\n(diff 3)\n\n\n#######\n#Y#B#Y#\n#.#R#.#\n#.#.#.#\n#.....#\n#.###.#\n#HHAHH#\n#######\n(diff 3, fun!)\n\n\n\n####__####\n#qc####cb#\n#c......c#\n##.####.##\n_#.#xx#.#_\n_#.c.r#.#_\n##.####.##\n#c......c#\n#qc####cq#\n####__####\n(diff 3)\n\n\n\n\n_#########_\n_#rrr.sss#_\n_#.......#_\n_#yyy.zzz#_\n_#.......#_\n##bbb.ccc##\n#.........#\n#.q..a..h.#\n#.........#\n###########\n\n______\n######\n#RA.Y#\n#....#\n#HH..#\n#SBCY#\n######\n______\n(diff 4)\n\nmessage LET'S CAKE IT TO THE NEXT TIER!\n\n\n#############\n#...#.h.#...#\n#.r.#...#.y.#\n#...c#c#s...#\n###c.....s###\n#..#.#h#.#..#\n#z.h.z.c.s.c#\n#..#.#s#.#..#\n###......z###\n#....#z#z...#\n#.b.#...#.g.#\n#...#.s.#...#\n#############\n(diff 3, easy but fun)\n\n\n_____\n#####\n#B.B#\n#RRY#\n#.Q.#\n#S.S#\n#CHC#\n#####\n_____\n(diff 5 - fun!)\n\n\n______\n######\n#HYBH#\n#YBYB#\n#BBBB#\n#HHHH#\n######\n______\n(diff 4)\n\n\n\n\n______\n######\n#BR.Y#\n#..A.#\n#SCZA#\n#CSZA#\n######\n______\n(diff 4)\n\n\n\n\n______\n######\n#CZG.#\n#ZCR##\n###..#\n#SHY##\n#HSB.#\n######\n______\n(diff 5 - very fun!)\n\n\nmessage YOU'RE GETTING BATTER!\n\n______\n######\n#YYYY#\n#...R#\n#AAAA#\n#ZZZZ#\n######\n______\n(diff 5 - fun but surprisingly hard)\n\n\n_______\n#######\n#Y..YA#\n#.BB.H#\n#R..RQ#\n#Y..YH#\n#######\n_______\n(diff 4)\n\n\nmessage ICING ON THE CAKE!\n\n______\n######\n#ZBBZ#\n#YBYB#\n#....#\n#ZHCZ#\n######\n______\n(diff 5)\n\n\n\n\n_______\n#######\n#A.S.A#\n#.Z.Z.#\n#SYRYS#\n#.ZYZ.#\n#A.S.A#\n#######\n_______\n(diff 5 - not too hard)\n\n\n\nmessage WILL YOU CAKE IT OUT ALIVE?\n______\n######\n#ZZZZ#\n#SSSS#\n#CCCC#\n#YRB.#\n######\n______\n(diff 6 - fun but tricky)\n\n\n\n\nmessage THE FINAL CHALLENGE!\nmessage DOUGH YOU HAVE WHAT IT CAKES?\n_____\n#####\n#AYA#\n#...#\n#CBC#\n#SZY#\n#RZS#\n#CBC#\n#...#\n#HOH#\n#####\n_____\n(diff 8 - a pretty tough one)\n\n\n\nmessage WELL, YOU REALLY TOOK THE CAKE!\nmessage CONGRATS, YOU WIN! :)\n\n\n\n", [1, 1, 1, 1, 3, 1, 2, 2, 0, 1, 1, 1, 1, 1, 2, 2, 2, 3, 1, 0, 0, 0, 0, 2, 1, 3, 2, 2, 2, 2, 2, 2, 1], "background wall:0,0,0,0,background blackness:1,1,0,0,0,0,\n0,background purplecake:2,background:3,0,0,0,0,background bluecake:4,2,0,\n0,3,3,3,3,3,3,3,background bluemon:5,0,\n0,0,3,0,0,3,0,3,0,0,\n1,0,3,0,background destroyer:6,3,0,3,0,1,\n1,0,3,0,6,3,0,3,0,1,\n0,0,3,0,0,0,0,3,0,0,\n0,3,3,3,3,3,3,3,4,0,\n0,3,4,0,0,0,0,4,2,0,\n0,0,0,0,1,1,0,0,0,0,\n", 33, "1627777633918.221"] ], [ `gallery: you're pulleying my leg`, - ["title You're Pulleying My Leg\nauthor Alan Hazelden\nhomepage www.draknek.org\n\nrun_rules_on_level_start\n\nagain_interval 0.1\n\n(verbose_logging)\n\nzoomscreen 17x13\n\nnoaction\n\n========\nOBJECTS\n========\n\nSky\nblue\n\nWall\n#8a5c23 #805520 #966426\n00001\n01020\n00000\n20100\n00000\n\nBackground\nDarkBrown\n\nGrass1\nGreen\n00000\n.....\n.....\n.....\n.....\n\nGrass2\nGreen\n00000\n....0\n.....\n.....\n.....\n\nGrass3\nGreen\n00000\n0....\n.....\n.....\n.....\n\nPlayerL\n#3c8ee7 #e6e4d5\n..1..\n.00..\n..0..\n.00..\n.0.0.\n\nPlayerR\n#3c8ee7 #e6e4d5\n..1..\n..00.\n..0..\n..00.\n.0.0.\n\nPlayerClimbing\n#3c8ee7 #e6e4d5\n..1..\n.000.\n..0..\n..0..\n.0.0.\n\nPlayerClimbingL\n#3c8ee7 #e6e4d5\n.1...\n00...\n.0...\n00...\n0....\n\nPlayerClimbingR\n#3c8ee7 #e6e4d5\n...1.\n...00\n...0.\n...0.\n....0\n\nLiftCorner\nGrey Yellow\n.000.\n00000\n00100\n00000\n.000.\n\nLiftRope\n#d97d3c #d9903c\n..0..\n..0..\n..1..\n..0..\n..0..\n\nLiftRopeH\n#d97d3c #d9903c\n.....\n.....\n00100\n.....\n.....\n\nLift\ntransparent\n\nLiftGraphic\nBlack\n00000\n.....\n.....\n.....\n.....\n\nShelf\n#8a5c23 #f4c56a\n00000\n..1..\n.....\n.....\n.....\n\nLadder\n#d97d3c #f4c56a\n.0.0.\n.010.\n.0.0.\n.010.\n.0.0.\n\nRopeL\n#d97d3c #d9903c\n0....\n0....\n1....\n0....\n0....\n\nRopeR\n#d97d3c #d9903c\n....0\n....0\n....1\n....0\n....0\n\n(Boulder\n#1b1207 #30200c #2c190a\n.100.\n00200\n00000\n20010\n.000.)\n\nBoulder\n#be2633 #eb8931 #732930\n.000.\n01100\n01000\n00002\n.022.\n\n(Dark0_odd\ntransparent\n\nDark0_even\ntransparent\n\nDark1_odd\ntransparent\n\nDark1_even\ntransparent\n\nDark2_odd\ntransparent\n\nDark2_even\ntransparent\n\nDark3_odd\nblack\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nDark3_even\nblack\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\nDark4_odd\nblack\n\nDark4_even\nblack\n\nDark5\nblack\n\nDarkPending\ntransparent)\n\nLightSource\ntransparent\n\nLightSource2\n#1d57f7 #3164ea #4471dd #587ed0 #6c8bc3\n01234\n01234\n01234\n01234\n01234\n\nLightSource3\n#7f97b6 #93a5aa #a7b19c #bbbf90 #cfcc83\n01234\n01234\n01234\n01234\n01234\n\nLightL\n#f4e46a\n\nLightR\n#f4e46a\n\nLightU\n#f4e46a\n\nLightD\n#f4e46a\n\n(LightBlockedL\n#f4e46a\n...00\n...00\n...00\n...00\n...00\n\nLightBlockedR\n#f4e46a\n00...\n00...\n00...\n00...\n00...\n\nLightBlockedU\n#f4e46a\n.....\n.....\n.....\n00000\n00000\n\nLightBlockedD\n#f4e46a\n00000\n00000\n.....\n.....\n.....)\n\nMirrorUL\n#e6e4d5 #909090 #4e5159\n....0\n...01\n..011\n.0111\n01112\n\nMirrorUR\n#e6e4d5 #909090 #4e5159\n0....\n10...\n110..\n1110.\n21110\n\nMirrorDL\n#e6e4d5 #909090 #4e5159\n01111\n.0111\n..011\n...01\n22222\n\nMirrorDR\n#e6e4d5 #909090 #4e5159\n11110\n1110.\n110..\n10...\n22222\n\nTarget\n#f4e46a #e6e4d5 #909090\n11211\n10001\n20002\n10001\n11211\n\nSeenMirror\ntransparent\n\nSeenTarget\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n~ = Sky\no = LiftCorner\nL = Lift\nU = Ladder\nB = Boulder\n[ = RopeL\n] = RopeR\n/ = MirrorUL\n\\ = MirrorUR\n` = MirrorDL\n' = MirrorDR\n- = Shelf\nT = Shelf and Ladder\n+ = Lift and Shelf\n* = Target\np = PlayerR\n% = Shelf and Target\n\nPlayer = PlayerL or PlayerR or PlayerClimbing or PlayerClimbingL or PlayerClimbingR\n\nGrass = Grass1 or Grass2 or Grass3\n\nLiftChain = LiftRope or LiftRopeH or LiftCorner\n\nMirror = MirrorUL or MirrorUR or MirrorDL or MirrorDR\n\nFalling = Player or Boulder or Mirror\n\nPushable = Boulder or Mirror\n\nSolid = Wall or Boulder or Mirror or Target\n\nFloor = Solid or LiftGraphic or Shelf or Target\n\nClimbable = Ladder or RopeL or RopeR\n\n\n! = LightSource and Sky and SeenMirror and SeenTarget\n(! = LightSource and Dark0_even and Sky\n\nDarkness = Dark0_even or Dark0_odd or Dark1_even or Dark1_odd or Dark2_even or Dark2_odd or Dark3_even or Dark3_odd or Dark4_even or Dark4_odd or Dark5\n\nDark1 = Dark1_even or Dark1_odd\nDark2 = Dark2_even or Dark2_odd)\n\n(LightBlocked = LightBlockedL or LightBlockedR or LightBlockedU or LightBlockedD)\n\nLight = LightSource or LightSource2 or LightSource3 or LightL or LightR or LightU or LightD\n\n\n=======\nSOUNDS\n=======\n\nEndLevel 55891508\nPlayer Move 82426907\nLift Move 47466509\nMirror Move 62036907\nBoulder Move 62036907\nTarget Destroy 38934902\n\n(16126909)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nLight\nSky\nLift, Wall\nShelf\nLiftRope\nClimbable\nBoulder, Mirror, Target\nLiftGraphic\nGrass, LiftCorner, LiftRopeH\nPlayer\nSeenMirror\nSeenTarget\n(Darkness\nDarkPending)\n\n======\nRULES\n======\n\n(Observations)\n\nhorizontal [ Player | MirrorUL ] [ SeenMirror ] -> [ Player | MirrorUL ] [] message A massive angled mirror, sloping towards the cave ceiling\nhorizontal [ Player | MirrorDL ] [ SeenMirror ] -> [ Player | MirrorDL ] [] message A massive angled mirror, sloping towards the cave floor\nhorizontal [ Player | Target ] [ SeenTarget ] -> [ Player | Target ] [] message A large stone block with an engraved image of the sun\n\nlate [ Player | MirrorUL ] [ SeenMirror ] -> again\nlate [ Player | MirrorDL ] [ SeenMirror ] -> again\nlate [ Player | Target ] [ SeenTarget ] -> again\n\n(Init)\n\ndown [ Sky | Wall no Grass ] -> [ Sky | Wall random Grass ]\n\nright [ LiftCorner | no LiftRopeH no Wall | ... | LiftCorner ] -> [ LiftCorner | LiftRopeH | ... | LiftCorner ]\nright [ LiftRopeH | no LiftRopeH no Wall | ... | LiftCorner ] -> [ LiftRopeH | LiftRopeH | ... | LiftCorner ]\n\n(Darkness: can be commented out easily)\n\n([ Darkness no Sky ] -> [])\n\n([ Dark0_even | no Wall no Darkness ] -> [ Dark0_even | Dark0_odd ]\n+ [ Dark0_odd | no Wall no Darkness ] -> [ Dark0_odd | Dark0_even ]\n\n[ Dark0_even | no Darkness ] -> [ Dark0_even | Dark1_odd ]\n[ Dark0_odd | no Darkness ] -> [ Dark0_odd | Dark1_even ]\n\n[ Dark1 | no Darkness no DarkPending ] -> [ Dark1 | DarkPending ]\n\nstartloop\nrandom [ DarkPending no Darkness ] -> [ action DarkPending ]\n\nrandom [ action DarkPending | stationary Dark1 no DarkPending ] -> [ action DarkPending | action Dark1 ]\n\n[ action DarkPending | stationary Dark1_even no DarkPending ] -> [ Dark1_odd DarkPending | Dark1_even ]\n[ action DarkPending | stationary Dark1_odd no DarkPending ] -> [ Dark1_even DarkPending | Dark1_odd ]\n\n[ action DarkPending ] -> []\n[ action Dark1 ] -> [ Dark1 ]\nendloop\n\n[ DarkPending ] -> []\n\n[ Dark1_even | no Darkness ] -> [ Dark1_even | Dark2_odd ]\n[ Dark1_odd | no Darkness ] -> [ Dark1_odd | Dark2_even ]\n\n[ Dark2_even | no Darkness ] -> [ Dark2_even | Dark3_odd ]\n[ Dark2_odd | no Darkness ] -> [ Dark2_odd | Dark3_even ]\n\n[ Dark3_even | no Darkness ] -> [ Dark3_even | Dark4_odd ]\n[ Dark3_odd | no Darkness ] -> [ Dark3_odd | Dark4_even ]\n\n[ Dark4_even | no Darkness ] -> [ Dark4_even | Dark5 ]\n[ Dark4_odd | no Darkness ] -> [ Dark4_odd | Dark5 ]\n\n[ Dark5 | no Darkness ] -> [ Dark5 | Dark5 ])\n\n(Movement)\n\nright [ Solid | < Player | LightSource ] -> [ Solid | Player | LightSource ]\n\ndown [ right PlayerClimbingL | Floor ] -> [ PlayerR | Floor ]\ndown [ left PlayerClimbingR | Floor ] -> [ PlayerL | Floor ]\n\n[ left Player ] -> [ left PlayerL ]\n[ right Player ] -> [ right PlayerR ]\n\nleft [ > Player RopeL | Wall ] -> [ PlayerClimbingL RopeL | Wall ]\nright [ > Player RopeR | Wall ] -> [ PlayerClimbingR RopeR | Wall ]\n\n[ > Player | Wall ] -> cancel\n[ > Player | Target ] -> cancel\n\n[ up Player no Lift no Climbable ] -> [ Player ]\ndown [ > Player no Lift no Climbable | no Climbable ] -> [ Player | ]\ndown [ > Player Climbable | Floor no Climbable ] -> cancel\n\nup [ > Player Climbable no Floor no Lift | no Climbable ] -> [ Player Climbable | ]\n\nhorizontal [ > Player | Pushable ] -> [ > Player | > Pushable ]\nvertical [ > Player | Pushable ] -> cancel\n\n[ > Pushable | Solid ] -> cancel\n\n(Lifts)\n\n[ vertical Player Lift no PlayerClimbing no PlayerClimbingL no PlayerClimbingR ] -> [ Player vertical Lift ]\n\nup [ > Lift Falling | LiftCorner ] -> [ Lift Falling | LiftCorner ]\nup [ > Lift | Wall ] -> [ Lift | Wall ]\ndown [ > Lift | Solid ] -> [ Lift | Solid ]\n\n[ moving Lift | stationary LiftChain ] -> [ moving Lift | moving LiftChain ]\n[ moving LiftChain | stationary LiftChain ] -> [ moving LiftChain | moving LiftChain ]\n\n[ up LiftChain stationary Lift ] -> [ up LiftChain down Lift ]\n[ down LiftChain stationary Lift ] -> [ down LiftChain up Lift ]\n\nup [ > Lift Falling | LiftCorner ] -> [ Lift Falling | LiftCorner ]\nup [ > Lift | Wall ] -> [ Lift | Wall ]\ndown [ > Lift | Solid ] -> [ Lift | Solid ]\n\n[ stationary Lift moving LiftChain ] -> [ Lift action LiftChain ]\n\n[ action LiftChain | LiftChain ] -> [ action LiftChain | action LiftChain ]\n[ action LiftChain moving Lift ] -> [ action LiftChain Lift ]\n\n[ moving LiftChain ] -> [ LiftChain ]\n\n[ moving Lift stationary Falling ] -> [ moving Lift moving Falling ]\n\nup [ > Falling | Falling ] -> cancel\n\n(Update graphics)\n\nlate [ LiftRope ] -> []\nlate [ LiftGraphic ] -> []\nlate down [ Lift | ] -> [ Lift LiftRope | LiftGraphic ]\nlate up [ LiftRope no LiftCorner | no LiftCorner ] -> [ LiftRope | LiftRope ]\n\nlate down [ Player Ladder no Lift | no Floor ] -> [ PlayerClimbing Ladder | ]\nlate down [ Player RopeL no Lift | no Floor ] -> [ PlayerClimbingL RopeL | ]\nlate down [ Player RopeR no Lift | no Floor ] -> [ PlayerClimbingR RopeR | ]\n\nlate [ PlayerClimbingL no Climbable ] -> [ PlayerL ]\nlate [ PlayerClimbingR no Climbable ] -> [ PlayerR ]\n\n( Gravity)\n\nlate down [ Falling no Climbable | no Floor ] -> again\n\ndown [ stationary Falling no Climbable | no Floor ] -> [ > Falling | ]\n\n(Light)\n\nlate [ Light no LightSource ] -> []\n\nlate right [ LightSource no MirrorUL no MirrorDL | no Light no MirrorUR no MirrorDR ] -> [ LightSource | LightSource2 ]\nlate right [ LightSource2 no Solid | no Light no MirrorUR no MirrorDR ] -> [ LightSource2 | LightSource3 ]\n\nlate right [ LightSource2 Boulder | no Light no MirrorUR no MirrorDR ] -> [ LightSource2 Boulder | LightSource3 ]\n\nlate right [ LightSource3 no Solid | no Light no Mirror ] -> [ LightSource3 | LightR ]\nlate right [ LightSource3 no Solid | MirrorUL ] -> [ LightSource3 | MirrorUL LightU ]\nlate right [ LightSource3 no Solid | MirrorDL ] -> [ LightSource3 | MirrorDL LightD ]\n\nlate left [ LightL | no Light no Solid ] -> [ LightL | LightL ]\n+ late right [ LightR | no Light no Solid ] -> [ LightR | LightR ]\n+ late up [ LightU | no Light no Solid ] -> [ LightU | LightU ]\n+ late down [ LightD | no Light no Solid ] -> [ LightD | LightD ]\n\n+ late left [ LightL | MirrorUR ] -> [ LightL | MirrorUR LightU ]\n+ late left [ LightL | MirrorDR ] -> [ LightL | MirrorDR LightD ]\n+ late right [ LightR | MirrorUL ] -> [ LightR | MirrorUL LightU ]\n+ late right [ LightR | MirrorDL ] -> [ LightR | MirrorDL LightD ]\n+ late up [ LightU | MirrorDL ] -> [ LightU | MirrorDL LightL ]\n+ late up [ LightU | MirrorDR ] -> [ LightU | MirrorDR LightR ]\n+ late down [ LightD | MirrorUL ] -> [ LightD | MirrorUL LightL ]\n+ late down [ LightD | MirrorUR ] -> [ LightD | MirrorUR LightR ]\n\n+ late left [ LightL | Boulder ] -> [ LightL | Boulder LightL ]\n+ late right [ LightR | Boulder ] -> [ LightR | Boulder LightL ]\n+ late up [ LightU | Boulder ] -> [ LightU | Boulder LightL ]\n+ late down [ LightD | Boulder ] -> [ LightD | Boulder LightL ]\n\n+ late left [ Boulder Light | no Light no Solid ] -> [ Boulder Light | LightL ]\n+ late right [ Boulder Light | no Light no Solid ] -> [ Boulder Light | LightR ]\n+ late up [ Boulder Light | no Light no Solid ] -> [ Boulder Light | LightU ]\n+ late down [ Boulder Light | no Light no Solid ] -> [ Boulder Light | LightD ]\n\nlate [ Boulder Light | Target ] -> [ Boulder Light | ] again\n\nlate left [ LightL | Target ] -> [ LightL | Target Sky ]\nlate right [ LightR | Target ] -> [ LightR | Target Sky ]\nlate up [ LightU | Target ] -> [ LightU | Target Sky ]\nlate down [ LightD | Target ] -> [ LightD | Target Sky ]\n\nlate down [ Target Sky | no Target ] -> checkpoint\nlate [ Target Sky ] -> [] again\n\n==============\nWINCONDITIONS\n==============\n\nall boulder on sky\nall player on sky\n\n=======\nLEVELS\n=======\n\n(~~~~~~~~~~~~~~~~\n~~~~##########~~\n~~~###o..o#####~\n~~~###....######\n~~~!p.l...######\n####-t----##o.o#\n###..u..`l.*l..#\n###--t----t----#\n#u*..u./..u....#\n#u##########---#\n#u##########...#\n#u.............#\n#u............l#\n#u.............#\n################)\n\n~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###....#######\n~~!..pl...#######\n#####t----###o.o#\n####.u..`l......#\n###..t----t-%---#\n#u*..u./..u.*l..#\n#u#--#######--t-#\n#uo..o###.....u.#\n#ul...`.....\\.ul#\n#t--t--t--t---t.#\n#u**u..u..u...u.#\n##-t--###########\n##.u...##o...o###\n#..u............#\n#..u'l.t-+-t....#\n#########*###-t##\n####.....*....u.#\n####..b..*...lu.#\n####.t-t.*....u.#\n#################\n\n(~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###....#######\n~~~!p.l...#######\n#####t----###o.o#\n####.u..`l......#\n###..t----t-----#\n#u*..u./..u.*l..#\n#u#--#######--t-#\n#uo..o###.....u.#\n#ul...`.....\\.ul#\n#t--t--t--t---t.#\n#u**u..u..u...u.#\n##-t--###########\n##.u...##########\n#..u.l..........#\n#..u....b..'..\\.#\n#################\n\n\n~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###....#######\n~~~!..l.`.#######\n#####t----###o.o#\n####.u..\\l..`.pl#\n###..t----t-----#\n#u...u../.u.....#\n#u#--#######--t-#\n#uo..o###.....u.#\n#ul...........u.#\n#t--t--t--t---t.#\n#u**u..u..u..lu.#\n##-t--###########\n##.u...##o....o##\n#..u.....l......#\n#..u'l.t---t....#\n#########*###t-##\n######...*...u..#\n######...*...u..#\n######.b.*...ul.#\n#################\n\n~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###....#######\n~~~!..l.`.#######\n#####t----###o.o#\n####.u..\\l..`...#\n###..t----t-----#\n#u...u....u..l..#\n#u#--#######--t-#\n#uo..o###.....u.#\n#ul...........ul#\n#t--t--t--t---t.#\n#u..u..u..u./.u.#\n##-t--###########\n##.u...##o....o##\n#..u.....l......#\n#..u'l.t---t....#\n#########*###t-##\n######...*...u..#\n######...*...u..#\n######.b.*...ul.#\n#################\n\n~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###l...#######\n~~~!....`.#######\n#####t----###o.o#\n####.u.........l#\n###..t---+t-----#\n#u..'u../.u.....#\n#u#--#######--t-#\n#uo..o###.....u.#\n#u...l........u.#\n#t--t--t--t---t.#\n#u..u..u..u..lu.#\n##-t--###########\n##.u...##o...o###\n#..u............#\n#.lu\\..t-+-t...`#\n#########.###-t##\n####..........u.#\n####..b......lu.#\n####.t-t...p..u.#\n#################)\n\n\n\n(````````````````\n````````````````\n`````!``````````\n#####[##########\n#####[#o..o#####\n#####[#...bu####\n####.[ul--lu####\n####.pu.\\..u####\n################)\n\nmessage Congrats! Thanks for playing :)\n\n",[2,2,2,3,3,3,3,3,0,0,3,3,3,2,2,3,3,2,1,1,1,1,1,1,0,0,1,1,1,2,3,3,3,2,2,1,1,3,3,0,0,0,2,1,1,1,3,3,3,0,0,1,1,1,2,2,1,2,2,3,1],"background sky:0,0,0,0,0,background grass3 wall:1,background wall:2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,0,0,0,0,0,1,2,2,background ladder:3,3,3,\n3,background ladder shelf:4,3,2,2,background:5,5,2,2,2,2,2,0,0,0,0,background lightsource seentarget sky:6,\n1,2,2,background target:7,2,background liftcorner:8,background lift liftrope:9,background liftgraphic shelf:10,7,background shelf:11,5,5,5,2,2,2,2,\n2,0,0,1,2,background lightsource2:12,2,2,5,5,11,background liftropeh:13,5,11,7,4,3,\n3,3,2,2,2,2,2,0,background grass2 wall:14,2,2,background lightsource3:15,2,5,5,background mirrordl:16,11,\n13,5,4,3,11,5,5,background mirrordr:17,2,5,5,5,2,0,14,2,2,\nbackground lightr:18,4,background ladder playerl:19,4,3,2,8,background liftrope:20,background liftrope shelf:21,20,21,20,20,9,background liftgraphic wall:22,5,5,\n4,2,0,background grass1 wall:23,8,20,background liftrope lightr:24,21,9,10,5,2,2,16,11,5,2,\n5,5,5,2,5,background boulder:25,11,2,0,14,13,5,18,11,5,11,5,\n2,2,5,4,3,2,2,5,4,2,5,5,4,2,0,23,13,\n5,18,11,5,11,5,2,2,5,11,5,2,2,5,11,2,5,\n5,5,2,0,1,8,20,background lift liftrope lightr:26,10,5,11,5,2,5,5,11,5,\n2,8,20,background lift liftrope shelf:27,background liftgraphic target:28,7,7,7,2,0,14,2,2,2,2,5,4,\n3,2,5,5,4,3,2,13,5,11,2,5,5,5,2,0,23,\n2,2,2,2,5,11,background mirrorul:29,2,5,5,11,5,2,13,5,4,2,\n5,5,5,2,0,1,2,2,2,2,5,background shelf target:30,7,11,5,background mirrorur:31,11,\n5,2,13,5,5,2,5,5,5,2,0,23,2,2,2,8,20,\n21,9,10,5,5,11,5,2,8,20,20,21,20,9,background liftgraphic:32,2,0,\n0,1,2,2,13,5,11,5,4,3,3,4,3,2,2,5,5,\n4,3,3,3,2,0,0,0,23,2,8,20,21,20,21,20,9,\n32,5,2,2,5,5,2,5,5,5,2,0,0,0,1,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n",0,"1627777767719.7332"] + ["title You're Pulleying My Leg\nauthor Alan Hazelden\nhomepage www.draknek.org\n\nrun_rules_on_level_start\n\nagain_interval 0.1\n\n(verbose_logging)\n\nzoomscreen 17x13\n\nnoaction\n\n========\nOBJECTS\n========\n\nSky\nblue\n\nWall\n#8a5c23 #805520 #966426\n00001\n01020\n00000\n20100\n00000\n\nBackground\nDarkBrown\n\nGrass1\nGreen\n00000\n.....\n.....\n.....\n.....\n\nGrass2\nGreen\n00000\n....0\n.....\n.....\n.....\n\nGrass3\nGreen\n00000\n0....\n.....\n.....\n.....\n\nPlayerL\n#3c8ee7 #e6e4d5\n..1..\n.00..\n..0..\n.00..\n.0.0.\n\nPlayerR\n#3c8ee7 #e6e4d5\n..1..\n..00.\n..0..\n..00.\n.0.0.\n\nPlayerClimbing\n#3c8ee7 #e6e4d5\n..1..\n.000.\n..0..\n..0..\n.0.0.\n\nPlayerClimbingL\n#3c8ee7 #e6e4d5\n.1...\n00...\n.0...\n00...\n0....\n\nPlayerClimbingR\n#3c8ee7 #e6e4d5\n...1.\n...00\n...0.\n...0.\n....0\n\nLiftCorner\nGrey Yellow\n.000.\n00000\n00100\n00000\n.000.\n\nLiftRope\n#d97d3c #d9903c\n..0..\n..0..\n..1..\n..0..\n..0..\n\nLiftRopeH\n#d97d3c #d9903c\n.....\n.....\n00100\n.....\n.....\n\nLift\ntransparent\n\nLiftGraphic\nBlack\n00000\n.....\n.....\n.....\n.....\n\nShelf\n#8a5c23 #f4c56a\n00000\n..1..\n.....\n.....\n.....\n\nLadder\n#d97d3c #f4c56a\n.0.0.\n.010.\n.0.0.\n.010.\n.0.0.\n\nRopeL\n#d97d3c #d9903c\n0....\n0....\n1....\n0....\n0....\n\nRopeR\n#d97d3c #d9903c\n....0\n....0\n....1\n....0\n....0\n\n(Boulder\n#1b1207 #30200c #2c190a\n.100.\n00200\n00000\n20010\n.000.)\n\nBoulder\n#be2633 #eb8931 #732930\n.000.\n01100\n01000\n00002\n.022.\n\n(Dark0_odd\ntransparent\n\nDark0_even\ntransparent\n\nDark1_odd\ntransparent\n\nDark1_even\ntransparent\n\nDark2_odd\ntransparent\n\nDark2_even\ntransparent\n\nDark3_odd\nblack\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nDark3_even\nblack\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\nDark4_odd\nblack\n\nDark4_even\nblack\n\nDark5\nblack\n\nDarkPending\ntransparent)\n\nLightSource\ntransparent\n\nLightSource2\n#1d57f7 #3164ea #4471dd #587ed0 #6c8bc3\n01234\n01234\n01234\n01234\n01234\n\nLightSource3\n#7f97b6 #93a5aa #a7b19c #bbbf90 #cfcc83\n01234\n01234\n01234\n01234\n01234\n\nLightL\n#f4e46a\n\nLightR\n#f4e46a\n\nLightU\n#f4e46a\n\nLightD\n#f4e46a\n\n(LightBlockedL\n#f4e46a\n...00\n...00\n...00\n...00\n...00\n\nLightBlockedR\n#f4e46a\n00...\n00...\n00...\n00...\n00...\n\nLightBlockedU\n#f4e46a\n.....\n.....\n.....\n00000\n00000\n\nLightBlockedD\n#f4e46a\n00000\n00000\n.....\n.....\n.....)\n\nMirrorUL\n#e6e4d5 #909090 #4e5159\n....0\n...01\n..011\n.0111\n01112\n\nMirrorUR\n#e6e4d5 #909090 #4e5159\n0....\n10...\n110..\n1110.\n21110\n\nMirrorDL\n#e6e4d5 #909090 #4e5159\n01111\n.0111\n..011\n...01\n22222\n\nMirrorDR\n#e6e4d5 #909090 #4e5159\n11110\n1110.\n110..\n10...\n22222\n\nTarget\n#f4e46a #e6e4d5 #909090\n11211\n10001\n20002\n10001\n11211\n\nSeenMirror\ntransparent\n\nSeenTarget\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n~ = Sky\no = LiftCorner\nL = Lift\nU = Ladder\nB = Boulder\n[ = RopeL\n] = RopeR\n/ = MirrorUL\n\\ = MirrorUR\n` = MirrorDL\n' = MirrorDR\n- = Shelf\nT = Shelf and Ladder\n+ = Lift and Shelf\n* = Target\np = PlayerR\n% = Shelf and Target\n\nPlayer = PlayerL or PlayerR or PlayerClimbing or PlayerClimbingL or PlayerClimbingR\n\nGrass = Grass1 or Grass2 or Grass3\n\nLiftChain = LiftRope or LiftRopeH or LiftCorner\n\nMirror = MirrorUL or MirrorUR or MirrorDL or MirrorDR\n\nFalling = Player or Boulder or Mirror\n\nPushable = Boulder or Mirror\n\nSolid = Wall or Boulder or Mirror or Target\n\nFloor = Solid or LiftGraphic or Shelf or Target\n\nClimbable = Ladder or RopeL or RopeR\n\n\n! = LightSource and Sky and SeenMirror and SeenTarget\n(! = LightSource and Dark0_even and Sky\n\nDarkness = Dark0_even or Dark0_odd or Dark1_even or Dark1_odd or Dark2_even or Dark2_odd or Dark3_even or Dark3_odd or Dark4_even or Dark4_odd or Dark5\n\nDark1 = Dark1_even or Dark1_odd\nDark2 = Dark2_even or Dark2_odd)\n\n(LightBlocked = LightBlockedL or LightBlockedR or LightBlockedU or LightBlockedD)\n\nLight = LightSource or LightSource2 or LightSource3 or LightL or LightR or LightU or LightD\n\n\n=======\nSOUNDS\n=======\n\nEndLevel 55891508\nPlayer Move 82426907\nLift Move 47466509\nMirror Move 62036907\nBoulder Move 62036907\nTarget Destroy 38934902\n\n(16126909)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nLight\nSky\nLift, Wall\nShelf\nLiftRope\nClimbable\nBoulder, Mirror, Target\nLiftGraphic\nGrass, LiftCorner, LiftRopeH\nPlayer\nSeenMirror\nSeenTarget\n(Darkness\nDarkPending)\n\n======\nRULES\n======\n\n(Observations)\n\nhorizontal [ Player | MirrorUL ] [ SeenMirror ] -> [ Player | MirrorUL ] [] message A massive angled mirror, sloping towards the cave ceiling\nhorizontal [ Player | MirrorDL ] [ SeenMirror ] -> [ Player | MirrorDL ] [] message A massive angled mirror, sloping towards the cave floor\nhorizontal [ Player | Target ] [ SeenTarget ] -> [ Player | Target ] [] message A large stone block with an engraved image of the sun\n\nlate [ Player | MirrorUL ] [ SeenMirror ] -> again\nlate [ Player | MirrorDL ] [ SeenMirror ] -> again\nlate [ Player | Target ] [ SeenTarget ] -> again\n\n(Init)\n\ndown [ Sky | Wall no Grass ] -> [ Sky | Wall random Grass ]\n\nright [ LiftCorner | no LiftRopeH no Wall | ... | LiftCorner ] -> [ LiftCorner | LiftRopeH | ... | LiftCorner ]\nright [ LiftRopeH | no LiftRopeH no Wall | ... | LiftCorner ] -> [ LiftRopeH | LiftRopeH | ... | LiftCorner ]\n\n(Darkness: can be commented out easily)\n\n([ Darkness no Sky ] -> [])\n\n([ Dark0_even | no Wall no Darkness ] -> [ Dark0_even | Dark0_odd ]\n+ [ Dark0_odd | no Wall no Darkness ] -> [ Dark0_odd | Dark0_even ]\n\n[ Dark0_even | no Darkness ] -> [ Dark0_even | Dark1_odd ]\n[ Dark0_odd | no Darkness ] -> [ Dark0_odd | Dark1_even ]\n\n[ Dark1 | no Darkness no DarkPending ] -> [ Dark1 | DarkPending ]\n\nstartloop\nrandom [ DarkPending no Darkness ] -> [ action DarkPending ]\n\nrandom [ action DarkPending | stationary Dark1 no DarkPending ] -> [ action DarkPending | action Dark1 ]\n\n[ action DarkPending | stationary Dark1_even no DarkPending ] -> [ Dark1_odd DarkPending | Dark1_even ]\n[ action DarkPending | stationary Dark1_odd no DarkPending ] -> [ Dark1_even DarkPending | Dark1_odd ]\n\n[ action DarkPending ] -> []\n[ action Dark1 ] -> [ Dark1 ]\nendloop\n\n[ DarkPending ] -> []\n\n[ Dark1_even | no Darkness ] -> [ Dark1_even | Dark2_odd ]\n[ Dark1_odd | no Darkness ] -> [ Dark1_odd | Dark2_even ]\n\n[ Dark2_even | no Darkness ] -> [ Dark2_even | Dark3_odd ]\n[ Dark2_odd | no Darkness ] -> [ Dark2_odd | Dark3_even ]\n\n[ Dark3_even | no Darkness ] -> [ Dark3_even | Dark4_odd ]\n[ Dark3_odd | no Darkness ] -> [ Dark3_odd | Dark4_even ]\n\n[ Dark4_even | no Darkness ] -> [ Dark4_even | Dark5 ]\n[ Dark4_odd | no Darkness ] -> [ Dark4_odd | Dark5 ]\n\n[ Dark5 | no Darkness ] -> [ Dark5 | Dark5 ])\n\n(Movement)\n\nright [ Solid | < Player | LightSource ] -> [ Solid | Player | LightSource ]\n\ndown [ right PlayerClimbingL | Floor ] -> [ PlayerR | Floor ]\ndown [ left PlayerClimbingR | Floor ] -> [ PlayerL | Floor ]\n\n[ left Player ] -> [ left PlayerL ]\n[ right Player ] -> [ right PlayerR ]\n\nleft [ > Player RopeL | Wall ] -> [ PlayerClimbingL RopeL | Wall ]\nright [ > Player RopeR | Wall ] -> [ PlayerClimbingR RopeR | Wall ]\n\n[ > Player | Wall ] -> cancel\n[ > Player | Target ] -> cancel\n\n[ up Player no Lift no Climbable ] -> [ Player ]\ndown [ > Player no Lift no Climbable | no Climbable ] -> [ Player | ]\ndown [ > Player Climbable | Floor no Climbable ] -> cancel\n\nup [ > Player Climbable no Floor no Lift | no Climbable ] -> [ Player Climbable | ]\n\nhorizontal [ > Player | Pushable ] -> [ > Player | > Pushable ]\nvertical [ > Player | Pushable ] -> cancel\n\n[ > Pushable | Solid ] -> cancel\n\n(Lifts)\n\n[ vertical Player Lift no PlayerClimbing no PlayerClimbingL no PlayerClimbingR ] -> [ Player vertical Lift ]\n\nup [ > Lift Falling | LiftCorner ] -> [ Lift Falling | LiftCorner ]\nup [ > Lift | Wall ] -> [ Lift | Wall ]\ndown [ > Lift | Solid ] -> [ Lift | Solid ]\n\n[ moving Lift | stationary LiftChain ] -> [ moving Lift | moving LiftChain ]\n[ moving LiftChain | stationary LiftChain ] -> [ moving LiftChain | moving LiftChain ]\n\n[ up LiftChain stationary Lift ] -> [ up LiftChain down Lift ]\n[ down LiftChain stationary Lift ] -> [ down LiftChain up Lift ]\n\nup [ > Lift Falling | LiftCorner ] -> [ Lift Falling | LiftCorner ]\nup [ > Lift | Wall ] -> [ Lift | Wall ]\ndown [ > Lift | Solid ] -> [ Lift | Solid ]\n\n[ stationary Lift moving LiftChain ] -> [ Lift action LiftChain ]\n\n[ action LiftChain | LiftChain ] -> [ action LiftChain | action LiftChain ]\n[ action LiftChain moving Lift ] -> [ action LiftChain Lift ]\n\n[ moving LiftChain ] -> [ LiftChain ]\n\n[ moving Lift stationary Falling ] -> [ moving Lift moving Falling ]\n\nup [ > Falling | Falling ] -> cancel\n\n(Update graphics)\n\nlate [ LiftRope ] -> []\nlate [ LiftGraphic ] -> []\nlate down [ Lift | ] -> [ Lift LiftRope | LiftGraphic ]\nlate up [ LiftRope no LiftCorner | no LiftCorner ] -> [ LiftRope | LiftRope ]\n\nlate down [ Player Ladder no Lift | no Floor ] -> [ PlayerClimbing Ladder | ]\nlate down [ Player RopeL no Lift | no Floor ] -> [ PlayerClimbingL RopeL | ]\nlate down [ Player RopeR no Lift | no Floor ] -> [ PlayerClimbingR RopeR | ]\n\nlate [ PlayerClimbingL no Climbable ] -> [ PlayerL ]\nlate [ PlayerClimbingR no Climbable ] -> [ PlayerR ]\n\n( Gravity)\n\nlate down [ Falling no Climbable | no Floor ] -> again\n\ndown [ stationary Falling no Climbable | no Floor ] -> [ > Falling | ]\n\n(Light)\n\nlate [ Light no LightSource ] -> []\n\nlate right [ LightSource no MirrorUL no MirrorDL | no Light no MirrorUR no MirrorDR ] -> [ LightSource | LightSource2 ]\nlate right [ LightSource2 no Solid | no Light no MirrorUR no MirrorDR ] -> [ LightSource2 | LightSource3 ]\n\nlate right [ LightSource2 Boulder | no Light no MirrorUR no MirrorDR ] -> [ LightSource2 Boulder | LightSource3 ]\n\nlate right [ LightSource3 no Solid | no Light no Mirror ] -> [ LightSource3 | LightR ]\nlate right [ LightSource3 no Solid | MirrorUL ] -> [ LightSource3 | MirrorUL LightU ]\nlate right [ LightSource3 no Solid | MirrorDL ] -> [ LightSource3 | MirrorDL LightD ]\n\nlate left [ LightL | no Light no Solid ] -> [ LightL | LightL ]\n+ late right [ LightR | no Light no Solid ] -> [ LightR | LightR ]\n+ late up [ LightU | no Light no Solid ] -> [ LightU | LightU ]\n+ late down [ LightD | no Light no Solid ] -> [ LightD | LightD ]\n\n+ late left [ LightL | MirrorUR ] -> [ LightL | MirrorUR LightU ]\n+ late left [ LightL | MirrorDR ] -> [ LightL | MirrorDR LightD ]\n+ late right [ LightR | MirrorUL ] -> [ LightR | MirrorUL LightU ]\n+ late right [ LightR | MirrorDL ] -> [ LightR | MirrorDL LightD ]\n+ late up [ LightU | MirrorDL ] -> [ LightU | MirrorDL LightL ]\n+ late up [ LightU | MirrorDR ] -> [ LightU | MirrorDR LightR ]\n+ late down [ LightD | MirrorUL ] -> [ LightD | MirrorUL LightL ]\n+ late down [ LightD | MirrorUR ] -> [ LightD | MirrorUR LightR ]\n\n+ late left [ LightL | Boulder ] -> [ LightL | Boulder LightL ]\n+ late right [ LightR | Boulder ] -> [ LightR | Boulder LightL ]\n+ late up [ LightU | Boulder ] -> [ LightU | Boulder LightL ]\n+ late down [ LightD | Boulder ] -> [ LightD | Boulder LightL ]\n\n+ late left [ Boulder Light | no Light no Solid ] -> [ Boulder Light | LightL ]\n+ late right [ Boulder Light | no Light no Solid ] -> [ Boulder Light | LightR ]\n+ late up [ Boulder Light | no Light no Solid ] -> [ Boulder Light | LightU ]\n+ late down [ Boulder Light | no Light no Solid ] -> [ Boulder Light | LightD ]\n\nlate [ Boulder Light | Target ] -> [ Boulder Light | ] again\n\nlate left [ LightL | Target ] -> [ LightL | Target Sky ]\nlate right [ LightR | Target ] -> [ LightR | Target Sky ]\nlate up [ LightU | Target ] -> [ LightU | Target Sky ]\nlate down [ LightD | Target ] -> [ LightD | Target Sky ]\n\nlate down [ Target Sky | no Target ] -> checkpoint\nlate [ Target Sky ] -> [] again\n\n==============\nWINCONDITIONS\n==============\n\nall boulder on sky\nall player on sky\n\n=======\nLEVELS\n=======\n\n(~~~~~~~~~~~~~~~~\n~~~~##########~~\n~~~###o..o#####~\n~~~###....######\n~~~!p.l...######\n####-t----##o.o#\n###..u..`l.*l..#\n###--t----t----#\n#u*..u./..u....#\n#u##########---#\n#u##########...#\n#u.............#\n#u............l#\n#u.............#\n################)\n\n~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###....#######\n~~!..pl...#######\n#####t----###o.o#\n####.u..`l......#\n###..t----t-%---#\n#u*..u./..u.*l..#\n#u#--#######--t-#\n#uo..o###.....u.#\n#ul...`.....\\.ul#\n#t--t--t--t---t.#\n#u**u..u..u...u.#\n##-t--###########\n##.u...##o...o###\n#..u............#\n#..u'l.t-+-t....#\n#########*###-t##\n####.....*....u.#\n####..b..*...lu.#\n####.t-t.*....u.#\n#################\n\n(~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###....#######\n~~~!p.l...#######\n#####t----###o.o#\n####.u..`l......#\n###..t----t-----#\n#u*..u./..u.*l..#\n#u#--#######--t-#\n#uo..o###.....u.#\n#ul...`.....\\.ul#\n#t--t--t--t---t.#\n#u**u..u..u...u.#\n##-t--###########\n##.u...##########\n#..u.l..........#\n#..u....b..'..\\.#\n#################\n\n\n~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###....#######\n~~~!..l.`.#######\n#####t----###o.o#\n####.u..\\l..`.pl#\n###..t----t-----#\n#u...u../.u.....#\n#u#--#######--t-#\n#uo..o###.....u.#\n#ul...........u.#\n#t--t--t--t---t.#\n#u**u..u..u..lu.#\n##-t--###########\n##.u...##o....o##\n#..u.....l......#\n#..u'l.t---t....#\n#########*###t-##\n######...*...u..#\n######...*...u..#\n######.b.*...ul.#\n#################\n\n~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###....#######\n~~~!..l.`.#######\n#####t----###o.o#\n####.u..\\l..`...#\n###..t----t-----#\n#u...u....u..l..#\n#u#--#######--t-#\n#uo..o###.....u.#\n#ul...........ul#\n#t--t--t--t---t.#\n#u..u..u..u./.u.#\n##-t--###########\n##.u...##o....o##\n#..u.....l......#\n#..u'l.t---t....#\n#########*###t-##\n######...*...u..#\n######...*...u..#\n######.b.*...ul.#\n#################\n\n~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###l...#######\n~~~!....`.#######\n#####t----###o.o#\n####.u.........l#\n###..t---+t-----#\n#u..'u../.u.....#\n#u#--#######--t-#\n#uo..o###.....u.#\n#u...l........u.#\n#t--t--t--t---t.#\n#u..u..u..u..lu.#\n##-t--###########\n##.u...##o...o###\n#..u............#\n#.lu\\..t-+-t...`#\n#########.###-t##\n####..........u.#\n####..b......lu.#\n####.t-t...p..u.#\n#################)\n\n\n\n(````````````````\n````````````````\n`````!``````````\n#####[##########\n#####[#o..o#####\n#####[#...bu####\n####.[ul--lu####\n####.pu.\\..u####\n################)\n\nmessage Congrats! Thanks for playing :)\n\n", [2, 2, 2, 3, 3, 3, 3, 3, 0, 0, 3, 3, 3, 2, 2, 3, 3, 2, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 2, 3, 3, 3, 2, 2, 1, 1, 3, 3, 0, 0, 0, 2, 1, 1, 1, 3, 3, 3, 0, 0, 1, 1, 1, 2, 2, 1, 2, 2, 3, 1], "background sky:0,0,0,0,0,background grass3 wall:1,background wall:2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,0,0,0,0,0,1,2,2,background ladder:3,3,3,\n3,background ladder shelf:4,3,2,2,background:5,5,2,2,2,2,2,0,0,0,0,background lightsource seentarget sky:6,\n1,2,2,background target:7,2,background liftcorner:8,background lift liftrope:9,background liftgraphic shelf:10,7,background shelf:11,5,5,5,2,2,2,2,\n2,0,0,1,2,background lightsource2:12,2,2,5,5,11,background liftropeh:13,5,11,7,4,3,\n3,3,2,2,2,2,2,0,background grass2 wall:14,2,2,background lightsource3:15,2,5,5,background mirrordl:16,11,\n13,5,4,3,11,5,5,background mirrordr:17,2,5,5,5,2,0,14,2,2,\nbackground lightr:18,4,background ladder playerl:19,4,3,2,8,background liftrope:20,background liftrope shelf:21,20,21,20,20,9,background liftgraphic wall:22,5,5,\n4,2,0,background grass1 wall:23,8,20,background liftrope lightr:24,21,9,10,5,2,2,16,11,5,2,\n5,5,5,2,5,background boulder:25,11,2,0,14,13,5,18,11,5,11,5,\n2,2,5,4,3,2,2,5,4,2,5,5,4,2,0,23,13,\n5,18,11,5,11,5,2,2,5,11,5,2,2,5,11,2,5,\n5,5,2,0,1,8,20,background lift liftrope lightr:26,10,5,11,5,2,5,5,11,5,\n2,8,20,background lift liftrope shelf:27,background liftgraphic target:28,7,7,7,2,0,14,2,2,2,2,5,4,\n3,2,5,5,4,3,2,13,5,11,2,5,5,5,2,0,23,\n2,2,2,2,5,11,background mirrorul:29,2,5,5,11,5,2,13,5,4,2,\n5,5,5,2,0,1,2,2,2,2,5,background shelf target:30,7,11,5,background mirrorur:31,11,\n5,2,13,5,5,2,5,5,5,2,0,23,2,2,2,8,20,\n21,9,10,5,5,11,5,2,8,20,20,21,20,9,background liftgraphic:32,2,0,\n0,1,2,2,13,5,11,5,4,3,3,4,3,2,2,5,5,\n4,3,3,3,2,0,0,0,23,2,8,20,21,20,21,20,9,\n32,5,2,2,5,5,2,5,5,5,2,0,0,0,1,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n", 0, "1627777767719.7332"] ], [ `gallery: beam islands`, - ["title Beam Islands\nauthor mjau\nhomepage http://twitter.com/kamjau\nrun_rules_on_level_start\nrealtime_interval 0.3\ntext_color #f197e9\n(debug)\n\n( for ludum dare 29 )\n\n=========\n OBJECTS\n=========\n\n(\n\t#000000 Black\n\t#df2619 Inactive border \n\t#078ffd Active border\n\t#a27d5b Bridge\n\t#6719ac Dark water\n\t#a13cb7 Light water\n\t#f197e9 Beam water\n\t#606060 Beam under\n\t#f7e26b Player\n\t#ffffff White\n)\n\nAnimate\nTransparent\n\nBgNW1 .\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNE1\n#6719ac #a13cb7\n00000\n00000\n00100\n00000\n00000\n\nBgSW1\n#6719ac #a13cb7\n00000\n00000\n00000\n01000\n00000\n\nBgSE1\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNW2\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNE2\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgSW2\n#6719ac #a13cb7\n00000\n00000\n00000\n01100\n00000\n\nBgSE2\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNW3\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNE3\n#6719ac #a13cb7\n00000\n00000\n01000\n00000\n00000\n\nBgSW3\n#6719ac #a13cb7\n00000\n00000\n00000\n00100\n00000\n\nBgSE3\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNW4\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNE4\n#6719ac #a13cb7\n00000\n00000\n01100\n00000\n00000\n\nBgSW4\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgSE4\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nPlayerTop\n#f7e26b\n.....\n.....\n.....\n.0.0.\n.000.\n\nPlayer\n#f7e26b #000000\n01010\n.000.\n.0.0.\n.....\n.....\n\nIsland #\n#000000\n\nFromBlockIsland\nTransparent\n\nIslandEdgeDetect\nTransparent\n\nIslandInterior\nTransparent\n\nIslandSide\n#000000\n00000\n.....\n.....\n.....\n.....\n\nBeamTop1\n#ffffff #f197e9 #a13cb7\n..2..\n..1..\n..0..\n..1..\n..0..\n\nBeamTop2\n#ffffff #f197e9 #a13cb7\n.....\n..2..\n..1..\n..0..\n..0..\n\nBeam o\n#ffffff #f197e9 #a13cb7\n.101.\n.000.\n.000.\n.000.\n.212.\n\nBeamReflect\n#a13cb7\n..0..\n.....\n.....\n.....\n.....\n\nBridge -\n#000000 #a27d5b\n.....\n.111.\n.101.\n.111.\n.000.\n\nBeamUnder\n#606060\n.....\n..0..\n.000.\n.000.\n.....\n\nPlayerIsland\nTransparent #078ffd\n.....\n.....\n..0..\n.....\n.....\n\nBlockIsland\nTransparent #df2619\n.....\n.....\n..0..\n.....\n.....\n\nIslandEdgeN\nTransparent #df2619\n11111\n.....\n.....\n.....\n.....\n\nPlayerIslandEdgeN\nTransparent #078ffd\n11111\n.....\n.....\n.....\n.....\n\nIslandEdgeS\nTransparent #df2619\n.....\n.....\n.....\n.....\n11111\n\nPlayerIslandEdgeS\nTransparent #078ffd\n.....\n.....\n.....\n.....\n11111\n\nIslandEdgeE\nTransparent #df2619\n....1\n....1\n....1\n....1\n....1\n\nPlayerIslandEdgeE\nTransparent #078ffd\n....1\n....1\n....1\n....1\n....1\n\nIslandEdgeW\nTransparent #df2619\n1....\n1....\n1....\n1....\n1....\n\nPlayerIslandEdgeW\nTransparent #078ffd\n1....\n1....\n1....\n1....\n1....\n\n\nIslandInnerEdgeNW\nTransparent #df2619\n1....\n.....\n.....\n.....\n.....\n\nPlayerIslandInnerEdgeNW\nTransparent #078ffd\n1....\n.....\n.....\n.....\n.....\n\nIslandInnerEdgeNE\nTransparent #df2619\n....1\n.....\n.....\n.....\n.....\n\nPlayerIslandInnerEdgeNE\nTransparent #078ffd\n....1\n.....\n.....\n.....\n.....\n\nIslandInnerEdgeSW\nTransparent #df2619\n.....\n.....\n.....\n.....\n1....\n\nPlayerIslandInnerEdgeSW\nTransparent #078ffd\n.....\n.....\n.....\n.....\n1....\n\nIslandInnerEdgeSE\nTransparent #df2619\n.....\n.....\n.....\n.....\n....1\n\nPlayerIslandInnerEdgeSE\nTransparent #078ffd\n.....\n.....\n.....\n.....\n....1\n\n========\n LEGEND\n========\n\n@ = Player and Island\n\nBackground = BgNW1 or BgNE1 or BgSW1 or BgSE1 or BgNW2 or BgNE2 or BgSW2 or BgSE2 or BgNW3 or BgNE3 or BgSW3 or BgSE3 or BgNW4 or BgNE4 or BgSW4 or BgSE4\n\nIslandEdgeV = IslandEdgeN or IslandEdgeS\nIslandEdgeH = IslandEdgeE or IslandEdgeW\nIslandInnerEdge = IslandInnerEdgeNW or IslandInnerEdgeNE or IslandInnerEdgeSW or IslandInnerEdgeSE\nIslandEdge = IslandEdgeH or IslandEdgeV or IslandInnerEdge or IslandEdgeDetect or IslandInterior\nMovable = Player or Island or IslandEdge or PlayerIsland\nMoveBlock = Island or Bridge\nWalkable = Island or Bridge\nBeamTop = BeamTop1 or BeamTop2\n\nIslandEdgeDetectN = IslandEdgeN or IslandEdgeDetect\nIslandEdgeDetectS = IslandEdgeS or IslandEdgeDetect\nIslandEdgeDetectE = IslandEdgeE or IslandEdgeDetect\nIslandEdgeDetectW = IslandEdgeW or IslandEdgeDetect\n\nCleanup = IslandInnerEdge or BeamTop or BeamUnder or IslandSide or PlayerTop or BeamReflect\n\nFrame2 = BgNW2 or BgNW4\n\n========\n SOUNDS\n========\n\nSFX0 57465701 ( beam )\nSFX1 45881509 ( merge )\nSFX2 70148904 ( can't move )\nSFX3 3171908 ( move )\nEndLevel 94824903\n\n=================\n COLLISIONLAYERS\n=================\n\nBackground\nAnimate\nIslandSide, BeamReflect\nBeam\nIsland, Bridge\nIslandEdgeN, PlayerIslandEdgeN\nIslandEdgeS, PlayerIslandEdgeS\nIslandEdgeE, PlayerIslandEdgeE\nIslandEdgeW, PlayerIslandEdgeW\nIslandInnerEdgeNW, PlayerIslandInnerEdgeNW\nIslandInnerEdgeNE, PlayerIslandInnerEdgeNE\nIslandInnerEdgeSW, PlayerIslandInnerEdgeSW\nIslandInnerEdgeSE, PlayerIslandInnerEdgeSE\nIslandInterior, IslandEdgeDetect\nBeamUnder\nPlayer\nPlayerIsland, BlockIsland, FromBlockIsland\nBeamTop\nPlayerTop\n\n=======\n RULES\n=======\n\n[ no Background ] -> [ BgNW1 ]\ndown [ BgNW1 | BgNW1 ] -> [ BgNW1 | BgSW1 ]\nright [ BgNW1 | BgNW1 ] -> [ BgNW1 | BgNE1 ]\nright [ BgSW1 | BgSW1 ] -> [ BgSW1 | BgSE1 ]\n\n[ stationary Player ][ Background ] -> [ Player ][ Background Animate ]\n[ BgNW1 Animate ] -> [ BgNW2 ]\n[ BgNE1 Animate ] -> [ BgNE2 ]\n[ BgSW1 Animate ] -> [ BgSW2 ]\n[ BgSE1 Animate ] -> [ BgSE2 ]\n[ BgNW2 Animate ] -> [ BgNW3 ]\n[ BgNE2 Animate ] -> [ BgNE3 ]\n[ BgSW2 Animate ] -> [ BgSW3 ]\n[ BgSE2 Animate ] -> [ BgSE3 ]\n[ BgNW3 Animate ] -> [ BgNW4 ]\n[ BgNE3 Animate ] -> [ BgNE4 ]\n[ BgSW3 Animate ] -> [ BgSW4 ]\n[ BgSE3 Animate ] -> [ BgSE4 ]\n[ BgNW4 Animate ] -> [ BgNW1 ]\n[ BgNE4 Animate ] -> [ BgNE1 ]\n[ BgSW4 Animate ] -> [ BgSW1 ]\n[ BgSE4 Animate ] -> [ BgSE1 ]\n\n[ Cleanup ] -> []\n\n( reset player island edges )\n[ PlayerIslandEdgeN ] -> [ IslandEdgeN ]\n[ PlayerIslandEdgeS ] -> [ IslandEdgeS ]\n[ PlayerIslandEdgeE ] -> [ IslandEdgeE ]\n[ PlayerIslandEdgeW ] -> [ IslandEdgeW ]\n[ PlayerIslandInnerEdgeNE ] -> [ IslandInnerEdgeNE ]\n[ PlayerIslandInnerEdgeNW ] -> [ IslandInnerEdgeNW ]\n[ PlayerIslandInnerEdgeSE ] -> [ IslandInnerEdgeSE ]\n[ PlayerIslandInnerEdgeSW ] -> [ IslandInnerEdgeSW ]\n\n( merge )\n[ action Player ][ IslandEdge ] -> [ action Player ][]\n[ action Player ] -> [ Player ] SFX1\n\n( simple movement )\n[ > Player | Walkable ] -> [ | Player Walkable ]\n[ > Player Bridge | no Walkable ] -> [ Player Bridge | ]\n\n( swap island types if player changed islands )\n[ Player Bridge ][ PlayerIsland ] -> [ Player Bridge ][ BlockIsland ]\n[ Player BlockIsland ] -> [ Player FromBlockIsland ]\n[ Player FromBlockIsland ][ BlockIsland ] -> [ Player FromBlockIsland ][ FromBlockIsland ]\n[ Player FromBlockIsland ][ PlayerIsland ] -> [ Player FromBlockIsland ][ BlockIsland ]\n[ FromBlockIsland ] -> []\n\n( beam holes in unoccupied islands )\n[ Beam Island BlockIsland IslandEdge ] -> [ Beam Island BlockIsland ]\n[ Beam Island BlockIsland ] -> [ up Beam ] SFX0\nup [ up Beam | BlockIsland ] -> [ up Beam | BlockIsland IslandEdgeS ]\ndown [ up Beam | BlockIsland ] -> [ up Beam | BlockIsland IslandEdgeN ]\nright [ up Beam | BlockIsland ] -> [ up Beam | BlockIsland IslandEdgeW ]\nleft [ up Beam | BlockIsland ] -> [ up Beam | BlockIsland IslandEdgeE ]\n[ up Beam ] -> [ Beam ]\n\n( edge detection )\n[ Island no IslandEdge ] -> [ Island IslandEdgeN IslandEdgeS IslandEdgeE IslandEdgeW IslandEdgeDetect ]\nup [ IslandEdgeDetect IslandEdgeN | IslandEdgeDetect ] -> [ IslandEdgeDetect | IslandEdgeDetect ]\ndown [ IslandEdgeDetect IslandEdgeS | IslandEdgeDetect ] -> [ IslandEdgeDetect | IslandEdgeDetect ]\nright [ IslandEdgeDetect IslandEdgeE | IslandEdgeDetect ] -> [ IslandEdgeDetect | IslandEdgeDetect ]\nleft [ IslandEdgeDetect IslandEdgeW | IslandEdgeDetect ] -> [ IslandEdgeDetect | IslandEdgeDetect ]\n[ IslandEdgeDetect ] -> [ IslandInterior ]\n\nright [ IslandEdgeN no IslandEdgeE | no IslandEdgeN ] -> [ IslandEdgeN | IslandInnerEdgeNW ]\nleft [ IslandEdgeN no IslandEdgeW | no IslandEdgeN ] -> [ IslandEdgeN | IslandInnerEdgeNE ]\nright [ IslandEdgeS no IslandEdgeE | no IslandEdgeS ] -> [ IslandEdgeS | IslandInnerEdgeSW ]\nleft [ IslandEdgeS no IslandEdgeW | no IslandEdgeS ] -> [ IslandEdgeS | IslandInnerEdgeSE ]\n\n( player island )\n[ Player Island ] -> [ Player Island PlayerIsland ]\n up [ PlayerIsland no IslandEdgeN | Island ] -> [ PlayerIsland | Island PlayerIsland ]\n+ down [ PlayerIsland no IslandEdgeS | Island ] -> [ PlayerIsland | Island PlayerIsland ]\n+ right [ PlayerIsland no IslandEdgeE | Island ] -> [ PlayerIsland | Island PlayerIsland ]\n+ left [ PlayerIsland no IslandEdgeW | Island ] -> [ PlayerIsland | Island PlayerIsland ]\n[ Island no PlayerIsland ] -> [ Island BlockIsland ]\n\n( rigid movement )\n[ > Player ][ PlayerIsland ] -> [ > Player ][ > PlayerIsland ]\n[ > PlayerIsland Island | no MoveBlock ] -> [ > PlayerIsland > Island | ]\n[ < Island | Island no BlockIsland ] -> [ < Island | < Island ]\n[ stationary Island PlayerIsland ][ moving Player ] -> [ Island PlayerIsland ][ stationary Player ] SFX2\n[ stationary Island PlayerIsland ][ moving Movable ] -> [ Island stationary PlayerIsland ][ stationary Movable ]\n\n[ > PlayerIsland IslandEdge ] -> [ > PlayerIsland > IslandEdge ]\n\n( highlight player island edges )\n[ PlayerIsland IslandEdgeN ] -> [ PlayerIsland PlayerIslandEdgeN ]\n[ PlayerIsland IslandEdgeS ] -> [ PlayerIsland PlayerIslandEdgeS ]\n[ PlayerIsland IslandEdgeE ] -> [ PlayerIsland PlayerIslandEdgeE ]\n[ PlayerIsland IslandEdgeW ] -> [ PlayerIsland PlayerIslandEdgeW ]\n[ PlayerIsland IslandInnerEdgeNE ] -> [ PlayerIsland PlayerIslandInnerEdgeNE ]\n[ PlayerIsland IslandInnerEdgeNW ] -> [ PlayerIsland PlayerIslandInnerEdgeNW ]\n[ PlayerIsland IslandInnerEdgeSE ] -> [ PlayerIsland PlayerIslandInnerEdgeSE ]\n[ PlayerIsland IslandInnerEdgeSW ] -> [ PlayerIsland PlayerIslandInnerEdgeSW ]\n\n( fx )\n[ > Island | no Island ] -> [ | Island ] SFX3\nup [ Beam no Island | ] -> [ Beam | BeamTop1 ]\ndown [ Beam | ] -> [ Beam | BeamReflect ]\n[ Beam Island ] -> [ Beam Island BeamUnder ]\ndown [ Island | ] -> [ Island | IslandSide ]\n[ > Player | Walkable ] -> [ | Player Walkable ]\nup [ Player | ] -> [ Player | PlayerTop ]\n[ BeamTop1 ][ Frame2 ] -> [ BeamTop2 ][ Frame2 ]\n\n===============\n WINCONDITIONS\n===============\n\nall Beam on BeamUnder\n\n======== \n LEVELS\n========\n\nmessage cover all beams\n\n(ok)\n...........\n...........\n...........\n......o....\n...##..o...\n...@#......\n...........\n...........\n\nmessage unattended beams are dangerous\n\n(ok)\n..............\n.......###....\n......#####...\n......#..##...\n.........##...\n...#####.##...\n..-#@#o#.##...\n...#####.##...\n.........##...\n.......###o...\n..............\n..............\n.........o....\n..............\n\nmessage merge adjacent platforms with X\n\n(ok)\n.............\n.............\n......o......\n...o...#.o...\n.......#.....\n...#..@#.....\n...##..#..#..\n.......-###..\n.............\n.............\n\nmessage good luck!\n\n(ok)\n...........\n...........\n.....-.....\n....###....\n...o.@.o...\n....###....\n.....-.....\n...........\n...........\n\n(ok)\n...............\n...............\n.......-.......\n..o............\n......###......\n....-.#o#.-....\n......##@......\n...........##..\n.......-.......\n...............\n...............\n\n(ok)\n..................\n..............###.\n....o...........#.\n.-..........##..#.\n............##..#.\n........#@......#.\n......#######.....\n.....-..#....-....\n...o..............\n.....-............\n..................\n\n(ok)\n...-.....-...\n.....o.o.....\n....-.-.-....\n.............\n.............\n........###..\n..###.o..##..\n..#@#........\n..###........\n.............\n\n(ok)\n............\n.....#......\n...o###.o...\n...#-#.-.#..\n..###.#.###.\n...#.#@#.#..\n....-.#-....\n...o.#..o...\n....###.....\n.....#......\n............\n\nmessage congratulations! you win!\n\n",["tick","tick","tick",3,"tick",3,"tick",1,"tick",0,"tick",3,"tick",3,"tick",2,"tick",2,"tick","tick",1,"tick","tick","tick",1,"tick","tick",2,"tick","tick",3,"tick",0,"tick",0,0,"tick",0,0,"tick",1,"tick",1,1,"tick",1,1,"tick",1,2,"tick",3,"tick",3,3,"tick",2,"tick",2,"tick","tick","tick","tick","tick",3,"tick",3,"tick","tick",2,1,"tick",1,"tick","tick","tick","tick","tick",0,"tick",0,"tick",0,0,"tick","tick","tick"],"bgnw3:0,bgsw3:1,0,1,0,1,0,1,0,1,bgne3:2,bgse3:3,2,\n3,2,3,2,3,2,3,0,1,0,1,0,1,\n0,1,0,1,2,3,beamtop1 bgne3:4,beam bgse3:5,beamreflect bgne3:6,bgse3 blockisland island islandedgee islandedgen islandedgew islandinterior:7,bgne3 blockisland island islandedges islandedgew islandinneredgene islandinterior islandside:8,bgse3 islandside:9,2,\n3,0,1,bgnw3 island islandinterior playerisland playerislandedgen playerislandedges playerislandedgew:10,bgsw3 islandside:11,0,1,bgnw3 blockisland island islandedgee islandedgen islandedges islandinterior:12,11,0,1,2,3,\nbgne3 island islandinterior playerisland playerislandedgen playerislandedges:13,9,2,3,2,3,2,3,bgnw3 playertop:14,bgsw3 island islandinterior player playerisland playerislandedgee playerislandedgen playerislandedgew:15,beam beamunder bgnw3 island islandinterior islandside playerisland playerislandedgee playerislandedges playerislandinneredgenw:16,11,0,\nbgsw3 blockisland island islandedgen islandedges islandedgew islandinterior:17,bgnw3 islandside:18,1,0,1,2,3,2,7,bgne3 blockisland island islandedgee islandedgew islandinterior islandside:19,bgse3 blockisland island islandedgee islandinneredgenw islandinneredgesw islandinterior islandside:20,bgne3 blockisland island islandedgee islandedges islandedgew islandinterior islandside:21,bgse3 bridge islandside:22,\n2,3,0,1,0,1,0,1,0,1,0,1,2,\n3,4,5,6,3,2,3,2,3,0,1,0,1,\n0,1,0,1,0,1,2,3,2,3,2,3,2,\n3,2,3,0,1,0,1,0,1,0,1,0,1,\n",5,"1627777817083.2576"] + ["title Beam Islands\nauthor mjau\nhomepage http://twitter.com/kamjau\nrun_rules_on_level_start\nrealtime_interval 0.3\ntext_color #f197e9\n(debug)\n\n( for ludum dare 29 )\n\n=========\n OBJECTS\n=========\n\n(\n\t#000000 Black\n\t#df2619 Inactive border \n\t#078ffd Active border\n\t#a27d5b Bridge\n\t#6719ac Dark water\n\t#a13cb7 Light water\n\t#f197e9 Beam water\n\t#606060 Beam under\n\t#f7e26b Player\n\t#ffffff White\n)\n\nAnimate\nTransparent\n\nBgNW1 .\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNE1\n#6719ac #a13cb7\n00000\n00000\n00100\n00000\n00000\n\nBgSW1\n#6719ac #a13cb7\n00000\n00000\n00000\n01000\n00000\n\nBgSE1\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNW2\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNE2\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgSW2\n#6719ac #a13cb7\n00000\n00000\n00000\n01100\n00000\n\nBgSE2\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNW3\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNE3\n#6719ac #a13cb7\n00000\n00000\n01000\n00000\n00000\n\nBgSW3\n#6719ac #a13cb7\n00000\n00000\n00000\n00100\n00000\n\nBgSE3\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNW4\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNE4\n#6719ac #a13cb7\n00000\n00000\n01100\n00000\n00000\n\nBgSW4\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgSE4\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nPlayerTop\n#f7e26b\n.....\n.....\n.....\n.0.0.\n.000.\n\nPlayer\n#f7e26b #000000\n01010\n.000.\n.0.0.\n.....\n.....\n\nIsland #\n#000000\n\nFromBlockIsland\nTransparent\n\nIslandEdgeDetect\nTransparent\n\nIslandInterior\nTransparent\n\nIslandSide\n#000000\n00000\n.....\n.....\n.....\n.....\n\nBeamTop1\n#ffffff #f197e9 #a13cb7\n..2..\n..1..\n..0..\n..1..\n..0..\n\nBeamTop2\n#ffffff #f197e9 #a13cb7\n.....\n..2..\n..1..\n..0..\n..0..\n\nBeam o\n#ffffff #f197e9 #a13cb7\n.101.\n.000.\n.000.\n.000.\n.212.\n\nBeamReflect\n#a13cb7\n..0..\n.....\n.....\n.....\n.....\n\nBridge -\n#000000 #a27d5b\n.....\n.111.\n.101.\n.111.\n.000.\n\nBeamUnder\n#606060\n.....\n..0..\n.000.\n.000.\n.....\n\nPlayerIsland\nTransparent #078ffd\n.....\n.....\n..0..\n.....\n.....\n\nBlockIsland\nTransparent #df2619\n.....\n.....\n..0..\n.....\n.....\n\nIslandEdgeN\nTransparent #df2619\n11111\n.....\n.....\n.....\n.....\n\nPlayerIslandEdgeN\nTransparent #078ffd\n11111\n.....\n.....\n.....\n.....\n\nIslandEdgeS\nTransparent #df2619\n.....\n.....\n.....\n.....\n11111\n\nPlayerIslandEdgeS\nTransparent #078ffd\n.....\n.....\n.....\n.....\n11111\n\nIslandEdgeE\nTransparent #df2619\n....1\n....1\n....1\n....1\n....1\n\nPlayerIslandEdgeE\nTransparent #078ffd\n....1\n....1\n....1\n....1\n....1\n\nIslandEdgeW\nTransparent #df2619\n1....\n1....\n1....\n1....\n1....\n\nPlayerIslandEdgeW\nTransparent #078ffd\n1....\n1....\n1....\n1....\n1....\n\n\nIslandInnerEdgeNW\nTransparent #df2619\n1....\n.....\n.....\n.....\n.....\n\nPlayerIslandInnerEdgeNW\nTransparent #078ffd\n1....\n.....\n.....\n.....\n.....\n\nIslandInnerEdgeNE\nTransparent #df2619\n....1\n.....\n.....\n.....\n.....\n\nPlayerIslandInnerEdgeNE\nTransparent #078ffd\n....1\n.....\n.....\n.....\n.....\n\nIslandInnerEdgeSW\nTransparent #df2619\n.....\n.....\n.....\n.....\n1....\n\nPlayerIslandInnerEdgeSW\nTransparent #078ffd\n.....\n.....\n.....\n.....\n1....\n\nIslandInnerEdgeSE\nTransparent #df2619\n.....\n.....\n.....\n.....\n....1\n\nPlayerIslandInnerEdgeSE\nTransparent #078ffd\n.....\n.....\n.....\n.....\n....1\n\n========\n LEGEND\n========\n\n@ = Player and Island\n\nBackground = BgNW1 or BgNE1 or BgSW1 or BgSE1 or BgNW2 or BgNE2 or BgSW2 or BgSE2 or BgNW3 or BgNE3 or BgSW3 or BgSE3 or BgNW4 or BgNE4 or BgSW4 or BgSE4\n\nIslandEdgeV = IslandEdgeN or IslandEdgeS\nIslandEdgeH = IslandEdgeE or IslandEdgeW\nIslandInnerEdge = IslandInnerEdgeNW or IslandInnerEdgeNE or IslandInnerEdgeSW or IslandInnerEdgeSE\nIslandEdge = IslandEdgeH or IslandEdgeV or IslandInnerEdge or IslandEdgeDetect or IslandInterior\nMovable = Player or Island or IslandEdge or PlayerIsland\nMoveBlock = Island or Bridge\nWalkable = Island or Bridge\nBeamTop = BeamTop1 or BeamTop2\n\nIslandEdgeDetectN = IslandEdgeN or IslandEdgeDetect\nIslandEdgeDetectS = IslandEdgeS or IslandEdgeDetect\nIslandEdgeDetectE = IslandEdgeE or IslandEdgeDetect\nIslandEdgeDetectW = IslandEdgeW or IslandEdgeDetect\n\nCleanup = IslandInnerEdge or BeamTop or BeamUnder or IslandSide or PlayerTop or BeamReflect\n\nFrame2 = BgNW2 or BgNW4\n\n========\n SOUNDS\n========\n\nSFX0 57465701 ( beam )\nSFX1 45881509 ( merge )\nSFX2 70148904 ( can't move )\nSFX3 3171908 ( move )\nEndLevel 94824903\n\n=================\n COLLISIONLAYERS\n=================\n\nBackground\nAnimate\nIslandSide, BeamReflect\nBeam\nIsland, Bridge\nIslandEdgeN, PlayerIslandEdgeN\nIslandEdgeS, PlayerIslandEdgeS\nIslandEdgeE, PlayerIslandEdgeE\nIslandEdgeW, PlayerIslandEdgeW\nIslandInnerEdgeNW, PlayerIslandInnerEdgeNW\nIslandInnerEdgeNE, PlayerIslandInnerEdgeNE\nIslandInnerEdgeSW, PlayerIslandInnerEdgeSW\nIslandInnerEdgeSE, PlayerIslandInnerEdgeSE\nIslandInterior, IslandEdgeDetect\nBeamUnder\nPlayer\nPlayerIsland, BlockIsland, FromBlockIsland\nBeamTop\nPlayerTop\n\n=======\n RULES\n=======\n\n[ no Background ] -> [ BgNW1 ]\ndown [ BgNW1 | BgNW1 ] -> [ BgNW1 | BgSW1 ]\nright [ BgNW1 | BgNW1 ] -> [ BgNW1 | BgNE1 ]\nright [ BgSW1 | BgSW1 ] -> [ BgSW1 | BgSE1 ]\n\n[ stationary Player ][ Background ] -> [ Player ][ Background Animate ]\n[ BgNW1 Animate ] -> [ BgNW2 ]\n[ BgNE1 Animate ] -> [ BgNE2 ]\n[ BgSW1 Animate ] -> [ BgSW2 ]\n[ BgSE1 Animate ] -> [ BgSE2 ]\n[ BgNW2 Animate ] -> [ BgNW3 ]\n[ BgNE2 Animate ] -> [ BgNE3 ]\n[ BgSW2 Animate ] -> [ BgSW3 ]\n[ BgSE2 Animate ] -> [ BgSE3 ]\n[ BgNW3 Animate ] -> [ BgNW4 ]\n[ BgNE3 Animate ] -> [ BgNE4 ]\n[ BgSW3 Animate ] -> [ BgSW4 ]\n[ BgSE3 Animate ] -> [ BgSE4 ]\n[ BgNW4 Animate ] -> [ BgNW1 ]\n[ BgNE4 Animate ] -> [ BgNE1 ]\n[ BgSW4 Animate ] -> [ BgSW1 ]\n[ BgSE4 Animate ] -> [ BgSE1 ]\n\n[ Cleanup ] -> []\n\n( reset player island edges )\n[ PlayerIslandEdgeN ] -> [ IslandEdgeN ]\n[ PlayerIslandEdgeS ] -> [ IslandEdgeS ]\n[ PlayerIslandEdgeE ] -> [ IslandEdgeE ]\n[ PlayerIslandEdgeW ] -> [ IslandEdgeW ]\n[ PlayerIslandInnerEdgeNE ] -> [ IslandInnerEdgeNE ]\n[ PlayerIslandInnerEdgeNW ] -> [ IslandInnerEdgeNW ]\n[ PlayerIslandInnerEdgeSE ] -> [ IslandInnerEdgeSE ]\n[ PlayerIslandInnerEdgeSW ] -> [ IslandInnerEdgeSW ]\n\n( merge )\n[ action Player ][ IslandEdge ] -> [ action Player ][]\n[ action Player ] -> [ Player ] SFX1\n\n( simple movement )\n[ > Player | Walkable ] -> [ | Player Walkable ]\n[ > Player Bridge | no Walkable ] -> [ Player Bridge | ]\n\n( swap island types if player changed islands )\n[ Player Bridge ][ PlayerIsland ] -> [ Player Bridge ][ BlockIsland ]\n[ Player BlockIsland ] -> [ Player FromBlockIsland ]\n[ Player FromBlockIsland ][ BlockIsland ] -> [ Player FromBlockIsland ][ FromBlockIsland ]\n[ Player FromBlockIsland ][ PlayerIsland ] -> [ Player FromBlockIsland ][ BlockIsland ]\n[ FromBlockIsland ] -> []\n\n( beam holes in unoccupied islands )\n[ Beam Island BlockIsland IslandEdge ] -> [ Beam Island BlockIsland ]\n[ Beam Island BlockIsland ] -> [ up Beam ] SFX0\nup [ up Beam | BlockIsland ] -> [ up Beam | BlockIsland IslandEdgeS ]\ndown [ up Beam | BlockIsland ] -> [ up Beam | BlockIsland IslandEdgeN ]\nright [ up Beam | BlockIsland ] -> [ up Beam | BlockIsland IslandEdgeW ]\nleft [ up Beam | BlockIsland ] -> [ up Beam | BlockIsland IslandEdgeE ]\n[ up Beam ] -> [ Beam ]\n\n( edge detection )\n[ Island no IslandEdge ] -> [ Island IslandEdgeN IslandEdgeS IslandEdgeE IslandEdgeW IslandEdgeDetect ]\nup [ IslandEdgeDetect IslandEdgeN | IslandEdgeDetect ] -> [ IslandEdgeDetect | IslandEdgeDetect ]\ndown [ IslandEdgeDetect IslandEdgeS | IslandEdgeDetect ] -> [ IslandEdgeDetect | IslandEdgeDetect ]\nright [ IslandEdgeDetect IslandEdgeE | IslandEdgeDetect ] -> [ IslandEdgeDetect | IslandEdgeDetect ]\nleft [ IslandEdgeDetect IslandEdgeW | IslandEdgeDetect ] -> [ IslandEdgeDetect | IslandEdgeDetect ]\n[ IslandEdgeDetect ] -> [ IslandInterior ]\n\nright [ IslandEdgeN no IslandEdgeE | no IslandEdgeN ] -> [ IslandEdgeN | IslandInnerEdgeNW ]\nleft [ IslandEdgeN no IslandEdgeW | no IslandEdgeN ] -> [ IslandEdgeN | IslandInnerEdgeNE ]\nright [ IslandEdgeS no IslandEdgeE | no IslandEdgeS ] -> [ IslandEdgeS | IslandInnerEdgeSW ]\nleft [ IslandEdgeS no IslandEdgeW | no IslandEdgeS ] -> [ IslandEdgeS | IslandInnerEdgeSE ]\n\n( player island )\n[ Player Island ] -> [ Player Island PlayerIsland ]\n up [ PlayerIsland no IslandEdgeN | Island ] -> [ PlayerIsland | Island PlayerIsland ]\n+ down [ PlayerIsland no IslandEdgeS | Island ] -> [ PlayerIsland | Island PlayerIsland ]\n+ right [ PlayerIsland no IslandEdgeE | Island ] -> [ PlayerIsland | Island PlayerIsland ]\n+ left [ PlayerIsland no IslandEdgeW | Island ] -> [ PlayerIsland | Island PlayerIsland ]\n[ Island no PlayerIsland ] -> [ Island BlockIsland ]\n\n( rigid movement )\n[ > Player ][ PlayerIsland ] -> [ > Player ][ > PlayerIsland ]\n[ > PlayerIsland Island | no MoveBlock ] -> [ > PlayerIsland > Island | ]\n[ < Island | Island no BlockIsland ] -> [ < Island | < Island ]\n[ stationary Island PlayerIsland ][ moving Player ] -> [ Island PlayerIsland ][ stationary Player ] SFX2\n[ stationary Island PlayerIsland ][ moving Movable ] -> [ Island stationary PlayerIsland ][ stationary Movable ]\n\n[ > PlayerIsland IslandEdge ] -> [ > PlayerIsland > IslandEdge ]\n\n( highlight player island edges )\n[ PlayerIsland IslandEdgeN ] -> [ PlayerIsland PlayerIslandEdgeN ]\n[ PlayerIsland IslandEdgeS ] -> [ PlayerIsland PlayerIslandEdgeS ]\n[ PlayerIsland IslandEdgeE ] -> [ PlayerIsland PlayerIslandEdgeE ]\n[ PlayerIsland IslandEdgeW ] -> [ PlayerIsland PlayerIslandEdgeW ]\n[ PlayerIsland IslandInnerEdgeNE ] -> [ PlayerIsland PlayerIslandInnerEdgeNE ]\n[ PlayerIsland IslandInnerEdgeNW ] -> [ PlayerIsland PlayerIslandInnerEdgeNW ]\n[ PlayerIsland IslandInnerEdgeSE ] -> [ PlayerIsland PlayerIslandInnerEdgeSE ]\n[ PlayerIsland IslandInnerEdgeSW ] -> [ PlayerIsland PlayerIslandInnerEdgeSW ]\n\n( fx )\n[ > Island | no Island ] -> [ | Island ] SFX3\nup [ Beam no Island | ] -> [ Beam | BeamTop1 ]\ndown [ Beam | ] -> [ Beam | BeamReflect ]\n[ Beam Island ] -> [ Beam Island BeamUnder ]\ndown [ Island | ] -> [ Island | IslandSide ]\n[ > Player | Walkable ] -> [ | Player Walkable ]\nup [ Player | ] -> [ Player | PlayerTop ]\n[ BeamTop1 ][ Frame2 ] -> [ BeamTop2 ][ Frame2 ]\n\n===============\n WINCONDITIONS\n===============\n\nall Beam on BeamUnder\n\n======== \n LEVELS\n========\n\nmessage cover all beams\n\n(ok)\n...........\n...........\n...........\n......o....\n...##..o...\n...@#......\n...........\n...........\n\nmessage unattended beams are dangerous\n\n(ok)\n..............\n.......###....\n......#####...\n......#..##...\n.........##...\n...#####.##...\n..-#@#o#.##...\n...#####.##...\n.........##...\n.......###o...\n..............\n..............\n.........o....\n..............\n\nmessage merge adjacent platforms with X\n\n(ok)\n.............\n.............\n......o......\n...o...#.o...\n.......#.....\n...#..@#.....\n...##..#..#..\n.......-###..\n.............\n.............\n\nmessage good luck!\n\n(ok)\n...........\n...........\n.....-.....\n....###....\n...o.@.o...\n....###....\n.....-.....\n...........\n...........\n\n(ok)\n...............\n...............\n.......-.......\n..o............\n......###......\n....-.#o#.-....\n......##@......\n...........##..\n.......-.......\n...............\n...............\n\n(ok)\n..................\n..............###.\n....o...........#.\n.-..........##..#.\n............##..#.\n........#@......#.\n......#######.....\n.....-..#....-....\n...o..............\n.....-............\n..................\n\n(ok)\n...-.....-...\n.....o.o.....\n....-.-.-....\n.............\n.............\n........###..\n..###.o..##..\n..#@#........\n..###........\n.............\n\n(ok)\n............\n.....#......\n...o###.o...\n...#-#.-.#..\n..###.#.###.\n...#.#@#.#..\n....-.#-....\n...o.#..o...\n....###.....\n.....#......\n............\n\nmessage congratulations! you win!\n\n", ["tick", "tick", "tick", 3, "tick", 3, "tick", 1, "tick", 0, "tick", 3, "tick", 3, "tick", 2, "tick", 2, "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", 2, "tick", "tick", 3, "tick", 0, "tick", 0, 0, "tick", 0, 0, "tick", 1, "tick", 1, 1, "tick", 1, 1, "tick", 1, 2, "tick", 3, "tick", 3, 3, "tick", 2, "tick", 2, "tick", "tick", "tick", "tick", "tick", 3, "tick", 3, "tick", "tick", 2, 1, "tick", 1, "tick", "tick", "tick", "tick", "tick", 0, "tick", 0, "tick", 0, 0, "tick", "tick", "tick"], "bgnw3:0,bgsw3:1,0,1,0,1,0,1,0,1,bgne3:2,bgse3:3,2,\n3,2,3,2,3,2,3,0,1,0,1,0,1,\n0,1,0,1,2,3,beamtop1 bgne3:4,beam bgse3:5,beamreflect bgne3:6,bgse3 blockisland island islandedgee islandedgen islandedgew islandinterior:7,bgne3 blockisland island islandedges islandedgew islandinneredgene islandinterior islandside:8,bgse3 islandside:9,2,\n3,0,1,bgnw3 island islandinterior playerisland playerislandedgen playerislandedges playerislandedgew:10,bgsw3 islandside:11,0,1,bgnw3 blockisland island islandedgee islandedgen islandedges islandinterior:12,11,0,1,2,3,\nbgne3 island islandinterior playerisland playerislandedgen playerislandedges:13,9,2,3,2,3,2,3,bgnw3 playertop:14,bgsw3 island islandinterior player playerisland playerislandedgee playerislandedgen playerislandedgew:15,beam beamunder bgnw3 island islandinterior islandside playerisland playerislandedgee playerislandedges playerislandinneredgenw:16,11,0,\nbgsw3 blockisland island islandedgen islandedges islandedgew islandinterior:17,bgnw3 islandside:18,1,0,1,2,3,2,7,bgne3 blockisland island islandedgee islandedgew islandinterior islandside:19,bgse3 blockisland island islandedgee islandinneredgenw islandinneredgesw islandinterior islandside:20,bgne3 blockisland island islandedgee islandedges islandedgew islandinterior islandside:21,bgse3 bridge islandside:22,\n2,3,0,1,0,1,0,1,0,1,0,1,2,\n3,4,5,6,3,2,3,2,3,0,1,0,1,\n0,1,0,1,0,1,2,3,2,3,2,3,2,\n3,2,3,0,1,0,1,0,1,0,1,0,1,\n", 5, "1627777817083.2576"] ], [ `gallery: singleton traffic`, - ["title Singleton Traffic\nauthor Toph Wells\nhomepage www.tophwells.com\nnoaction\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nPlayer\nWhite #ff0 #ff4\n22222\n21112\n21012\n21112\n22222\n\nBackground\nBlack\n\nIndicatorH\n#fa0\n.....\n0...0\n00.00\n0...0\n.....\n\nIndicatorV\n#f80\n.000.\n..0..\n.....\n..0..\n.000.\n\n=======\nLEGEND\n=======\n\n. = Background\no = Player\nIndicator = IndicatorH or IndicatorV\n\n=======\nSOUNDS\n=======\nEndLevel 93613502\nUndo 10562106\nSFX0 11806907\n\n================\nCOLLISIONLAYERS\n================\nBackground\nPlayer\nIndicatorH\nIndicatorV\n\n======\nRULES\n======\n\n[Perpendicular Player|Player] -> [Player|Player]\n\n[> Player|No Player] -> [|Player] SFX0\n\n[No Player|Player|No Player] -> [|Action Player|]\n[Player|Action Player|Player] -> [Player|Player|Player]\n[Action Player][Player] -> [Action Player][Action Player]\n[Stationary Player] -> Win\n[Action Player] -> [Stationary Player] \n\n[Indicator] -> []\nVertical [Player no IndicatorV|Player] -> [Player IndicatorV|Player]\nHorizontal [Player no IndicatorH|Player] -> [Player IndicatorH|Player]\n==============\nWINCONDITIONS\n==============\n=======\nLEVELS\n=======\n\nMessage Tiles can't move horizontally if there's something vertically adjacent.\nMessage Tiles can't move vertically if there's something horizontally adjacent.\nMessage You win when nothing can move.\nMessage 1 OF 3\n\nooooooooooo\no.........o\no.........o\no...ooo...o\no...ooo.o.o\no...ooo...o\no....o....o\no..o.o....o\nooooooooooo\n\nMessage 2 OF 3\n\noooooooooo\no........o\no.oo..o..o\no.....o..o\no........o\no........o\no........o\no........o\no........o\noooooooooo\n\nMessage 3 OF 3\n\noooooooo\no......o\no.o....o\no.o....o\no......o\no....o.o\no.....oo\noooooooo\nMessage 4 OF 3\n\noooooooo\no..o...o\no..o...o\nooo..ooo\no......o\no...o..o\no...o..o\noooooooo\n\nMessage 5 OF 3\n\nooooooooo\no.......o\no.ooooo.o\no.......o\no...o...o\no.......o\nooooooooo\no.......o\no.o.o...o\no.o.....o\no.o.....o\no.......o\nooooooooo\n\nMessage LAST OF 3\n\nooooooooooooo\no......oo...o\no......oo.o.o\no.o.oo..o...o\no.o.....o...o\no.o.........o\no...........o\nooooooooooooo\n",[3,2,2,1,1,3,3,3,3,0,1,2,2,2,2,2,2],"background indicatorh indicatorv player:0,background indicatorv player:1,1,1,1,1,1,1,1,0,\nbackground indicatorh player:2,background:3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,1,0,\n2,3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,1,1,1,0,\n2,3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,3,2,\n0,1,1,1,1,1,1,1,1,0,\n",6,"1627777857936.9624"] + ["title Singleton Traffic\nauthor Toph Wells\nhomepage www.tophwells.com\nnoaction\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nPlayer\nWhite #ff0 #ff4\n22222\n21112\n21012\n21112\n22222\n\nBackground\nBlack\n\nIndicatorH\n#fa0\n.....\n0...0\n00.00\n0...0\n.....\n\nIndicatorV\n#f80\n.000.\n..0..\n.....\n..0..\n.000.\n\n=======\nLEGEND\n=======\n\n. = Background\no = Player\nIndicator = IndicatorH or IndicatorV\n\n=======\nSOUNDS\n=======\nEndLevel 93613502\nUndo 10562106\nSFX0 11806907\n\n================\nCOLLISIONLAYERS\n================\nBackground\nPlayer\nIndicatorH\nIndicatorV\n\n======\nRULES\n======\n\n[Perpendicular Player|Player] -> [Player|Player]\n\n[> Player|No Player] -> [|Player] SFX0\n\n[No Player|Player|No Player] -> [|Action Player|]\n[Player|Action Player|Player] -> [Player|Player|Player]\n[Action Player][Player] -> [Action Player][Action Player]\n[Stationary Player] -> Win\n[Action Player] -> [Stationary Player] \n\n[Indicator] -> []\nVertical [Player no IndicatorV|Player] -> [Player IndicatorV|Player]\nHorizontal [Player no IndicatorH|Player] -> [Player IndicatorH|Player]\n==============\nWINCONDITIONS\n==============\n=======\nLEVELS\n=======\n\nMessage Tiles can't move horizontally if there's something vertically adjacent.\nMessage Tiles can't move vertically if there's something horizontally adjacent.\nMessage You win when nothing can move.\nMessage 1 OF 3\n\nooooooooooo\no.........o\no.........o\no...ooo...o\no...ooo.o.o\no...ooo...o\no....o....o\no..o.o....o\nooooooooooo\n\nMessage 2 OF 3\n\noooooooooo\no........o\no.oo..o..o\no.....o..o\no........o\no........o\no........o\no........o\no........o\noooooooooo\n\nMessage 3 OF 3\n\noooooooo\no......o\no.o....o\no.o....o\no......o\no....o.o\no.....oo\noooooooo\nMessage 4 OF 3\n\noooooooo\no..o...o\no..o...o\nooo..ooo\no......o\no...o..o\no...o..o\noooooooo\n\nMessage 5 OF 3\n\nooooooooo\no.......o\no.ooooo.o\no.......o\no...o...o\no.......o\nooooooooo\no.......o\no.o.o...o\no.o.....o\no.o.....o\no.......o\nooooooooo\n\nMessage LAST OF 3\n\nooooooooooooo\no......oo...o\no......oo.o.o\no.o.oo..o...o\no.o.....o...o\no.o.........o\no...........o\nooooooooooooo\n", [3, 2, 2, 1, 1, 3, 3, 3, 3, 0, 1, 2, 2, 2, 2, 2, 2], "background indicatorh indicatorv player:0,background indicatorv player:1,1,1,1,1,1,1,1,0,\nbackground indicatorh player:2,background:3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,1,0,\n2,3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,1,1,1,0,\n2,3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,3,2,\n0,1,1,1,1,1,1,1,1,0,\n", 6, "1627777857936.9624"] ], [ `gallery: aa I'm being attacked by a giant tentacle`, - ["title Aaaah! I'm Being Attacked by a Giant Tentacle!\nauthor Ricky Liu\nhomepage www.puzzlescript.net\n\nnoaction\nrealtime_interval 0.6\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\n#ccc #ddd #bee\n10000\n12220\n12220\n12220\n11110\n\nWall\n#555 #444 #333 #222\n00220\n11001\n02220\n00011\n31113\n\n\nFire\nOrange Yellow DarkBrown\n.0.0.\n000..\n0100.\n.010.\n2.2.2\n\nFire2\nOrange Yellow DarkBrown\n0..0.\n..000\n.0010\n.010.\n2.2.2\n\nPlayer\nBrown #fda Purple pink black\n.000.\n.111.\n22222\n22222\n.434.\n\n\nSweatR\n#6af\n.....\n0....\n.0...\n.....\n.....\n\nSweatL\n#6af\n.....\n....0\n...0.\n.....\n.....\n\nDeadPlayer\nBlack\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nLivePlayer\nBrown #fda Red Blue Black\n.000.\n.111.\n22222\n.333.\n.4.4.\n\nAsh\nDarkGray\n...0.\n.0...\n..0..\n.000.\n00000\n\nPrev\ntransparent\n\nPrevU\npurple pink\n.000.\n.000.\n.000.\n.....\n.....\n\nPrevD\npurple pink\n.....\n.....\n.000.\n.000.\n.000.\n\nPrevL\npurple pink\n.....\n000..\n000..\n000..\n.....\n\nPrevR\npurple pink\n.....\n..000\n..000\n..000\n.....\n\nNextU\npurple pink\n.001.\n.001.\n.000.\n.....\n.....\n\nNextD\npurple pink\n.....\n.....\n.000.\n.100.\n.100.\n\nNextL\npurple pink\n.....\n110..\n000..\n000..\n.....\n\nNextR\npurple pink\n.....\n..000\n..000\n..011\n.....\n\nNextU2\npurple pink\n..001\n..001\n..00.\n.....\n.....\n\nNextD2\npurple pink\n.....\n.....\n.00..\n100..\n100..\n\nNextL2\npurple pink\n11...\n000..\n000..\n.....\n.....\n\nNextR2\npurple pink\n.....\n.....\n..000\n..000\n...11\n\nTemp\ntransparent\n\nRNG1\ntransparent\n\nRNG2\ntransparent\n\nTick\ntransparent\n\n=======\nLEGEND\n=======\n. = Background\nP = Player and PrevL\nF = Fire\n# = Wall\nu = PrevU\nd = PrevD\nl = PrevL\nr = PrevR\n\nObstacle = Wall or Prev\nNext = NextU or NextD or NextL or NextR or NextU2 or NextD2 or NextL2 or NextR2\nRNG = RNG1 or RNG2\nSweats = SweatL or SweatR\n\n=======\nSOUNDS\n=======\n\nSFX0 8062509\nDeadPlayer create 73802302\nEndLevel 70964300\nStartGame 70964300\n(SFX1 94383907)\n\n================\nCOLLISIONLAYERS\n================\nBackground\nRNG1, RNG2\nTick\nTemp\nPrev\nPrevU, PrevD, PrevL, PrevR\nNext\nFire, Fire2, Ash\nPlayer, DeadPlayer, LivePlayer, Wall\nSweats\n\n\n======\nRULES \n======\n\n[stationary Player] -> [Player Tick]\n\n(simplify)\n[PrevU] -> [Up Prev]\n[PrevD] -> [Down Prev]\n[PrevL] -> [Left Prev]\n[PrevR] -> [Right Prev]\n[Next] -> []\n[Fire2] -> [Fire]\n[Sweats] -> []\n\n(calculate movement)\n[> Player > Prev | Prev] -> [ | Player Prev] (SFX1)\n[> Player | Obstacle] -> cancel\n[ | < Player > Prev] -> [Player > Prev| > Prev] (SFX1)\n[Moving Player] -> [Moving Player Moving Temp] (SFX1)\n\n[Perpendicular Temp > Prev | ] -> [Perpendicular Temp > Prev | Perpendicular Temp]\n[> Temp > Prev | ] -> [> Temp > Prev | Temp]\n[> Temp | Obstacle no Temp] [Player Temp] -> [ | Obstacle] [Player no Temp]\n[Player no Temp] [Temp] -> [Player] [no Temp]\n[> Player no Temp | ] -> [ | Player < Prev]\n[> Player > Temp Perpendicular Prev | ] -> [ | Player Perpendicular Prev]\n[> Temp Perpendicular Prev | ] -> [ | Perpendicular Prev]\n[> Temp > Prev | Temp] -> [ | ]\n[ | < Temp > Prev ] -> [> Prev | > Prev]\n[Temp] -> []\n\n(check fire)\n[Player Prev Fire] -> [DeadPlayer Prev Fire]\n[Player Prev] [Prev Fire] -> [LivePlayer Ash] [Prev Fire]\n[Prev Fire] [Prev no Fire] -> [Prev Fire] [Ash]\n[Prev Fire] -> [Ash]\n\n(draw)\n[Up Prev] -> [PrevU]\n[Down Prev] -> [PrevD]\n[Left Prev] -> [PrevL]\n[Right Prev] -> [PrevR]\nUp [PrevU | ] -> [PrevU | NextD]\nDown [PrevD | ] -> [PrevD | NextU]\nLeft [PrevL | ] -> [PrevL | NextR]\nRight [PrevR | ] -> [PrevR | NextL]\n\n(animation)\n[Tick] [RNG] -> [Tick] []\n\n[Tick] [Fire no RNG] -> [Tick] [Fire random RNG]\n[Fire RNG2] -> [Fire2 RNG2]\n\n[Tick] [Player no RNG] -> [Tick] [Player random RNG]\n[Tick] [Player RNG2] -> [Tick] [Player]\n[Tick] [Player no RNG] -> [Tick] [Player random RNG]\nright [Player RNG2 | ] -> [Player | SweatR]\n[Tick] [Player no RNG] -> [Tick] [Player random RNG]\nleft [Player RNG2 | ] -> [Player | SweatL] SFX0\n\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[Tick] [Next RNG2] -> [Tick] [Next]\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[Tick] [Next RNG2] -> [Tick] [Next]\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[Tick] [Next RNG2] -> [Tick] [Next]\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[NextU RNG2] -> [NextU2 RNG2]\n[NextD RNG2] -> [NextD2 RNG2]\n[NextL RNG2] -> [NextL2 RNG2]\n[NextR RNG2] -> [NextR2 RNG2]\n\n[Tick] -> []\n\n\n\n==============\nWINCONDITIONS\n==============\nSome LivePlayer\n\n======= \nLEVELS\n=======\n\nMessage Level 1: Aaaah!\n\n############\n#..........#\n#..........#\nlllp.......#\n#..........#\n#........#.#\n#..........#\n#..........#\n#....f.....#\n#....#.....#\n#..........#\n############\n\nMessage Level 2: Aaaaah!\n\n############\nlllp.......#\n#..........#\n#..........#\n#...##.##..#\n#.......#..#\n#...#f.....#\n#...##.##..#\n#..........#\n#..........#\n############\n\n\nMessage Level 3: Aaaaaah!\n\n###################\n##...............##\n#.................#\n#.................#\n#......######.....#\n#.......####......#\n#....#...##.......#\nlllp.##......#....#\n#.....##....##....#\n#......#.f.##.....#\n#......#####......#\n#.................#\n#.................#\n##................#\n###################\n\n\nMessage Level 4: Aaaaaaah!\n\n##############\n#............#\n#............#\nlllp.........#\n#............#\n#.....#......#\n#............#\n#........#...#\n#............#\n#...........f#\n##############\n\nMessage Level 5: Aaaaaaaah!\n\n#################\nlllp........#####\n#...........#####\n#...........#####\n#...........#####\n#...........#####\n#..#..#..#..##..#\n#...........#..f#\n#..............##\n#.............###\n#################\n\nMessage Level 6: Aaaaaaaaah!\n\n##################\n#................#\n#................#\nlllp.............#\n#................#\n#....#..#..#.....#\n#................#\n#................#\n#....#..#..#.....#\n#................#\n#................#\n#................#\n#................#\n#...............f#\n##################\n\n\nMessage Level 7: Aaaaaaaaaah!\n\n###################\nlllp......#########\n#.........#########\n#.........#########\n#.........#########\n#.#.#.#.#.#########\n#.........#########\n#.........#########\n##.........########\n###.........#######\n#####.......#######\n######.......######\n#######.......#####\n#########.....#####\n##########.....####\n###########.....###\n#############...###\n##############...##\n###############...#\n################f.#\n###################\n\nMessage Level 8: Aaaaaaaaaaah!\n\n####################\n#..................#\n#.#................#\n#..................#\nlllp...............#\n#..................#\n#..................#\n#..................#\n#..................#\n#....######........#\n#.........#........#\n#.......#.#........#\n#.........#........#\n#.........#........#\n#.......#.#........#\n#..................#\n#..................#\n#..................#\n#..............#...#\n#..................#\n#..................#\n#..................#\n#..................#\n#f.................#\n####################\n\nMessage Level 9: Aaaaaaaaaaaah!\n\n##################\nlllp.............#\n#................#\n#.......#.#.#.#..#\n#..#.............#\n#.......#.#.#.#..#\n#..#.#...........#\n#.........#.#.#..#\n#..#.#.#.........#\n#...........#.#..#\n#..#.#.#.#.......#\n#.............#..#\n#..#.#.#.#.#f.#..#\n#...........###..#\n#................#\n#................#\n##################\n\nMessage Level 10: Aaaaaaaaaaaaah!\n\n###################\nlllp..#.....#.....#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.....#..f..#.....#\n###################\n\nMessage Ahhhh! Thanks for playing!\n",["tick",0,0,"tick",3,3,"tick",3,3,"tick",2,2,3,2,"tick",2,3,"tick",3,"tick",0,"tick"],"background wall:0,0,0,0,0,0,0,ash background rng1:1,0,0,0,0,0,0,0,0,0,background:2,2,\n2,2,2,1,2,2,2,2,2,0,0,0,2,2,2,2,2,2,1,\n2,2,2,2,2,2,0,0,2,2,2,2,2,2,1,2,2,2,2,\n2,2,0,0,2,2,2,2,1,1,1,2,2,2,2,2,2,0,0,\n2,2,2,2,1,0,0,2,2,2,2,2,2,0,0,2,2,2,2,\n1,2,0,0,2,2,2,2,2,0,0,2,2,2,0,1,1,1,0,\n0,0,2,2,2,0,0,2,2,2,0,0,2,1,background rng1:3,2,0,2,2,\n2,0,0,2,2,2,0,0,0,ash background:4,4,ash background deadplayer rng1:5,0,2,2,2,0,0,2,\n2,2,0,0,0,2,2,2,0,2,2,2,0,0,2,2,2,0,0,\n2,2,2,0,0,2,2,2,0,0,2,2,2,0,2,2,2,0,0,\n2,2,2,2,0,0,2,2,2,2,2,2,0,0,2,2,2,2,2,\n0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,2,2,\n2,2,2,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,\n2,2,2,2,2,2,2,0,0,0,2,2,2,2,2,2,2,2,2,\n2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",5,"1627777889846.471"] + ["title Aaaah! I'm Being Attacked by a Giant Tentacle!\nauthor Ricky Liu\nhomepage www.puzzlescript.net\n\nnoaction\nrealtime_interval 0.6\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\n#ccc #ddd #bee\n10000\n12220\n12220\n12220\n11110\n\nWall\n#555 #444 #333 #222\n00220\n11001\n02220\n00011\n31113\n\n\nFire\nOrange Yellow DarkBrown\n.0.0.\n000..\n0100.\n.010.\n2.2.2\n\nFire2\nOrange Yellow DarkBrown\n0..0.\n..000\n.0010\n.010.\n2.2.2\n\nPlayer\nBrown #fda Purple pink black\n.000.\n.111.\n22222\n22222\n.434.\n\n\nSweatR\n#6af\n.....\n0....\n.0...\n.....\n.....\n\nSweatL\n#6af\n.....\n....0\n...0.\n.....\n.....\n\nDeadPlayer\nBlack\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nLivePlayer\nBrown #fda Red Blue Black\n.000.\n.111.\n22222\n.333.\n.4.4.\n\nAsh\nDarkGray\n...0.\n.0...\n..0..\n.000.\n00000\n\nPrev\ntransparent\n\nPrevU\npurple pink\n.000.\n.000.\n.000.\n.....\n.....\n\nPrevD\npurple pink\n.....\n.....\n.000.\n.000.\n.000.\n\nPrevL\npurple pink\n.....\n000..\n000..\n000..\n.....\n\nPrevR\npurple pink\n.....\n..000\n..000\n..000\n.....\n\nNextU\npurple pink\n.001.\n.001.\n.000.\n.....\n.....\n\nNextD\npurple pink\n.....\n.....\n.000.\n.100.\n.100.\n\nNextL\npurple pink\n.....\n110..\n000..\n000..\n.....\n\nNextR\npurple pink\n.....\n..000\n..000\n..011\n.....\n\nNextU2\npurple pink\n..001\n..001\n..00.\n.....\n.....\n\nNextD2\npurple pink\n.....\n.....\n.00..\n100..\n100..\n\nNextL2\npurple pink\n11...\n000..\n000..\n.....\n.....\n\nNextR2\npurple pink\n.....\n.....\n..000\n..000\n...11\n\nTemp\ntransparent\n\nRNG1\ntransparent\n\nRNG2\ntransparent\n\nTick\ntransparent\n\n=======\nLEGEND\n=======\n. = Background\nP = Player and PrevL\nF = Fire\n# = Wall\nu = PrevU\nd = PrevD\nl = PrevL\nr = PrevR\n\nObstacle = Wall or Prev\nNext = NextU or NextD or NextL or NextR or NextU2 or NextD2 or NextL2 or NextR2\nRNG = RNG1 or RNG2\nSweats = SweatL or SweatR\n\n=======\nSOUNDS\n=======\n\nSFX0 8062509\nDeadPlayer create 73802302\nEndLevel 70964300\nStartGame 70964300\n(SFX1 94383907)\n\n================\nCOLLISIONLAYERS\n================\nBackground\nRNG1, RNG2\nTick\nTemp\nPrev\nPrevU, PrevD, PrevL, PrevR\nNext\nFire, Fire2, Ash\nPlayer, DeadPlayer, LivePlayer, Wall\nSweats\n\n\n======\nRULES \n======\n\n[stationary Player] -> [Player Tick]\n\n(simplify)\n[PrevU] -> [Up Prev]\n[PrevD] -> [Down Prev]\n[PrevL] -> [Left Prev]\n[PrevR] -> [Right Prev]\n[Next] -> []\n[Fire2] -> [Fire]\n[Sweats] -> []\n\n(calculate movement)\n[> Player > Prev | Prev] -> [ | Player Prev] (SFX1)\n[> Player | Obstacle] -> cancel\n[ | < Player > Prev] -> [Player > Prev| > Prev] (SFX1)\n[Moving Player] -> [Moving Player Moving Temp] (SFX1)\n\n[Perpendicular Temp > Prev | ] -> [Perpendicular Temp > Prev | Perpendicular Temp]\n[> Temp > Prev | ] -> [> Temp > Prev | Temp]\n[> Temp | Obstacle no Temp] [Player Temp] -> [ | Obstacle] [Player no Temp]\n[Player no Temp] [Temp] -> [Player] [no Temp]\n[> Player no Temp | ] -> [ | Player < Prev]\n[> Player > Temp Perpendicular Prev | ] -> [ | Player Perpendicular Prev]\n[> Temp Perpendicular Prev | ] -> [ | Perpendicular Prev]\n[> Temp > Prev | Temp] -> [ | ]\n[ | < Temp > Prev ] -> [> Prev | > Prev]\n[Temp] -> []\n\n(check fire)\n[Player Prev Fire] -> [DeadPlayer Prev Fire]\n[Player Prev] [Prev Fire] -> [LivePlayer Ash] [Prev Fire]\n[Prev Fire] [Prev no Fire] -> [Prev Fire] [Ash]\n[Prev Fire] -> [Ash]\n\n(draw)\n[Up Prev] -> [PrevU]\n[Down Prev] -> [PrevD]\n[Left Prev] -> [PrevL]\n[Right Prev] -> [PrevR]\nUp [PrevU | ] -> [PrevU | NextD]\nDown [PrevD | ] -> [PrevD | NextU]\nLeft [PrevL | ] -> [PrevL | NextR]\nRight [PrevR | ] -> [PrevR | NextL]\n\n(animation)\n[Tick] [RNG] -> [Tick] []\n\n[Tick] [Fire no RNG] -> [Tick] [Fire random RNG]\n[Fire RNG2] -> [Fire2 RNG2]\n\n[Tick] [Player no RNG] -> [Tick] [Player random RNG]\n[Tick] [Player RNG2] -> [Tick] [Player]\n[Tick] [Player no RNG] -> [Tick] [Player random RNG]\nright [Player RNG2 | ] -> [Player | SweatR]\n[Tick] [Player no RNG] -> [Tick] [Player random RNG]\nleft [Player RNG2 | ] -> [Player | SweatL] SFX0\n\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[Tick] [Next RNG2] -> [Tick] [Next]\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[Tick] [Next RNG2] -> [Tick] [Next]\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[Tick] [Next RNG2] -> [Tick] [Next]\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[NextU RNG2] -> [NextU2 RNG2]\n[NextD RNG2] -> [NextD2 RNG2]\n[NextL RNG2] -> [NextL2 RNG2]\n[NextR RNG2] -> [NextR2 RNG2]\n\n[Tick] -> []\n\n\n\n==============\nWINCONDITIONS\n==============\nSome LivePlayer\n\n======= \nLEVELS\n=======\n\nMessage Level 1: Aaaah!\n\n############\n#..........#\n#..........#\nlllp.......#\n#..........#\n#........#.#\n#..........#\n#..........#\n#....f.....#\n#....#.....#\n#..........#\n############\n\nMessage Level 2: Aaaaah!\n\n############\nlllp.......#\n#..........#\n#..........#\n#...##.##..#\n#.......#..#\n#...#f.....#\n#...##.##..#\n#..........#\n#..........#\n############\n\n\nMessage Level 3: Aaaaaah!\n\n###################\n##...............##\n#.................#\n#.................#\n#......######.....#\n#.......####......#\n#....#...##.......#\nlllp.##......#....#\n#.....##....##....#\n#......#.f.##.....#\n#......#####......#\n#.................#\n#.................#\n##................#\n###################\n\n\nMessage Level 4: Aaaaaaah!\n\n##############\n#............#\n#............#\nlllp.........#\n#............#\n#.....#......#\n#............#\n#........#...#\n#............#\n#...........f#\n##############\n\nMessage Level 5: Aaaaaaaah!\n\n#################\nlllp........#####\n#...........#####\n#...........#####\n#...........#####\n#...........#####\n#..#..#..#..##..#\n#...........#..f#\n#..............##\n#.............###\n#################\n\nMessage Level 6: Aaaaaaaaah!\n\n##################\n#................#\n#................#\nlllp.............#\n#................#\n#....#..#..#.....#\n#................#\n#................#\n#....#..#..#.....#\n#................#\n#................#\n#................#\n#................#\n#...............f#\n##################\n\n\nMessage Level 7: Aaaaaaaaaah!\n\n###################\nlllp......#########\n#.........#########\n#.........#########\n#.........#########\n#.#.#.#.#.#########\n#.........#########\n#.........#########\n##.........########\n###.........#######\n#####.......#######\n######.......######\n#######.......#####\n#########.....#####\n##########.....####\n###########.....###\n#############...###\n##############...##\n###############...#\n################f.#\n###################\n\nMessage Level 8: Aaaaaaaaaaah!\n\n####################\n#..................#\n#.#................#\n#..................#\nlllp...............#\n#..................#\n#..................#\n#..................#\n#..................#\n#....######........#\n#.........#........#\n#.......#.#........#\n#.........#........#\n#.........#........#\n#.......#.#........#\n#..................#\n#..................#\n#..................#\n#..............#...#\n#..................#\n#..................#\n#..................#\n#..................#\n#f.................#\n####################\n\nMessage Level 9: Aaaaaaaaaaaah!\n\n##################\nlllp.............#\n#................#\n#.......#.#.#.#..#\n#..#.............#\n#.......#.#.#.#..#\n#..#.#...........#\n#.........#.#.#..#\n#..#.#.#.........#\n#...........#.#..#\n#..#.#.#.#.......#\n#.............#..#\n#..#.#.#.#.#f.#..#\n#...........###..#\n#................#\n#................#\n##################\n\nMessage Level 10: Aaaaaaaaaaaaah!\n\n###################\nlllp..#.....#.....#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.....#..f..#.....#\n###################\n\nMessage Ahhhh! Thanks for playing!\n", ["tick", 0, 0, "tick", 3, 3, "tick", 3, 3, "tick", 2, 2, 3, 2, "tick", 2, 3, "tick", 3, "tick", 0, "tick"], "background wall:0,0,0,0,0,0,0,ash background rng1:1,0,0,0,0,0,0,0,0,0,background:2,2,\n2,2,2,1,2,2,2,2,2,0,0,0,2,2,2,2,2,2,1,\n2,2,2,2,2,2,0,0,2,2,2,2,2,2,1,2,2,2,2,\n2,2,0,0,2,2,2,2,1,1,1,2,2,2,2,2,2,0,0,\n2,2,2,2,1,0,0,2,2,2,2,2,2,0,0,2,2,2,2,\n1,2,0,0,2,2,2,2,2,0,0,2,2,2,0,1,1,1,0,\n0,0,2,2,2,0,0,2,2,2,0,0,2,1,background rng1:3,2,0,2,2,\n2,0,0,2,2,2,0,0,0,ash background:4,4,ash background deadplayer rng1:5,0,2,2,2,0,0,2,\n2,2,0,0,0,2,2,2,0,2,2,2,0,0,2,2,2,0,0,\n2,2,2,0,0,2,2,2,0,0,2,2,2,0,2,2,2,0,0,\n2,2,2,2,0,0,2,2,2,2,2,2,0,0,2,2,2,2,2,\n0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,2,2,\n2,2,2,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,\n2,2,2,2,2,2,2,0,0,0,2,2,2,2,2,2,2,2,2,\n2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 5, "1627777889846.471"] ], [ - `gallery: censored version of NSFW game pornography for beginners`, - ["title censored version of NSFW game by Holly Gramazio\nauthor Holly\nhomepage hollygramazio.net\n\nyoutube K5Yd1iOAzBA\ntext_color red\nbackground_color gray\n\n========\nOBJECTS\n========\n\nPlayer\nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nAAAApedPlayer\nblack black black black black black\n00005\n55150\n12525\n05530\n01050\n\nAAAApedPlayer2\nblack black black black black black\n00005\n55150\n12525\n05530\n01050\n\n\nAAAApedPlayer3\nblack black black black black black\n00000\n55140\n12521\n05530\n01050\n\nAAAApedPlayer4\nblack black black black black black\n00000\n55140\n12521\n05530\n01050\n\nAAAApedPlayer5\nblack black black black black black\n00000\n55140\n12555\n03330\n01010\n\nAAAApedPlayer6\nblack black black black black black\n00000\n55140\n12555\n03330\n01010\n\n\nBBBNNNplayer \nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nBBBNNNplayer2 \nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nBBBNNNplayer3 \nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nBBBNNNplayer4 \nblack black black black black\n00000\n04040\n10201\n03030\n.....\n\n\n(Backgrounds)\n\nBackground\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nFlowertrigger\ngreen black\n00010\n00100\n10000\n00001\n01000\n\n\nFlowertrigger2\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoors\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage1\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage2\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage3\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nScoring\nblack black\n00100\n00100\n11111\n00100\n00100\n\nIntro\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nIntro2\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nIntro3\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nIntro4\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nTarget\nblack black\n00100\n00100\n11111\n00100\n00100\n\nOutdoortarget\ngreen black\n00010\n00100\n10000\n00001\n01000\n\n(CCCCCes)\n\nCCCCC\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCCa\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCCb\nblack black black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCCc\nblack black black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCCd\nblack green black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCCe\nblack black black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCC2\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC3\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC4\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC5\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC6\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC7\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC8\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC9\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC10\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nBBBNNNCCCCC\nblack black black \n.000.\n.020.\n.020.\n00200\n00000\n\nBBBNNNCCCCC2\nblack black black \n.....\n.010.\n.020.\n00200\n00000\n\nBBBNNNCCCCC3\nblack black black \n.....\n.....\n.010.\n11211\n01010\n\nBBBNNNCCCCC4\nblack black black \n.....\n.....\n.010.\n01210\n.....\n\n(DDDDs)\n\nDDDD\nblack black black black\n03310\n31111\n31012\n11112\n01220\n\nDDDD2\nblack black black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD2\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD3\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD4\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nDDDDularity\nblack black black black \n03310\n31111\n31012\n11112\n01220\n\nDDDDularity2\nblack black black black \n03310\n31111\n31012\n11112\n01220\n\nDDDDularity3\nblack black black black \n03310\n31111\n31012\n11112\n01220\n\n\n(tutorial EEEEparts) \n\nTuteFFFFFF\nblack black\n00100\n01010\n01010\n01010\n00100\n\nTuteGGG\nblack black black black black\n40000\n40040\n40240\n00200\n01010\n\nTuteface\nblack black black black\n00000\n02120\n01110\n01310\n00100\n\n\n(FFFFFFs)\n\nFFFFFF\nblack black\n00100\n01010\n01010\n01010\n00100\n\nFFFFFF2\nblack black\n00100\n01010\n01010\n01010\n00100\n\nFFFFFF3\nblack black black\n00100\n01210\n01210\n01210\n00100\n\nFFFFFF4\nblack black black\n00100\n01210\n01210\n01210\n00100\n\nFFFFFF5\nblack black black\n00200\n02120\n02120\n02120\n00200\n\n(YYYYYYYs)\nOOOOe\nblack black black black\n.020.\n02000\n20001\n20011\n01130\n\nTuteOOOOe\nblack black black black\n.020.\n02000\n20001\n20011\n01130\n\nTuteSSSSQQQQQQQQion\nblack black black black black\n01010\n.010.\n.020.\n.000.\n02020\n\nSSSSQQQQQQQQion\nblack black black black black\n01010\n.010.\n.020.\n.000.\n02020\n\nTuteRRRRRRQQQQQQQQion\nblack black black black\n.010.\n01010\n01010\n.030.\n02020\n\nRRRRRRQQQQQQQQion\nblack black black black\n.010.\n01010\n01010\n.030.\n02020\n\n\n(TTTTopalypse)\nd123d12d12derTTTT\nblack black black black black\n01010\n.010.\n.020.\n.000.\n02020\n\nd123d12d12derZZZZZZ1\nblack\n.000.\n00000\n00000\n.0000\n00000\n\nd123d12d12derZZZZZZ2\nblack\n00000\n00000\n00000\n00000\n00000\n\nd123d12d12derZZZZZZ3\nblack\n00000\n00000\n00000\n00000\n00000\n\n(k33k3k23s)\n\nk33k3k23\nblack black \n01010\n01010\n01010\n00000\n00000\n\nVVVV\nblack black \n01010\n00000\n00000\n00000\n00000\n\n(GGGs)\n\nGGG\nblack black black black black\n40000\n40040\n40240\n00200\n01010\n\nblackGGG\nblack black black black black green green \n05005\n56056\n56256\n05250\n01010\n\npinkGGG\nblack black black black black green green \n55556\n56556\n56256\n06261\n01010\n\nHHHHHHdGGG\nblack black black black green green green \n44446\n46446\n56256\n66256\n01010\n\nblackGGG2\nblack black black black black green green \n05005\n56056\n56256\n05250\n01010\n\npinkGGG2\nblack black black black black green green \n55556\n56556\n56256\n06261\n01010\n\nHHHHHHdGGG2\nblack black black black green green green \n44446\n46446\n56256\n66256\n01010\n\nUUUUU\nblack black\n.010.\n.000.\n.000.\n01010\n.....\n\nSAAAAon\nblack black black black black \n22422\n22422\n33433\n22022\n22022\n\n(faces)\n\nFace\nblack black black black\n00000\n02120\n01110\n01310\n00100\n\nif90345if0934i90f34\nblack black black black green \n00000\n02120\n04140\n04340\n00100\n\nif90345if0934i90f342\nblack black black black green \n00000\n02120\n04140\n04340\n00100\n\nif90345if0934i90f343\nblack black black black green \n00000\n02120\n04140\n04340\n00100\n\nSidefaceleft\nblack black black black\n00000\n01210\n01111\n01113\n0010.\n\nSidefaceright\nblack black black black\n00000\n01210\n11110\n31110\n.0100\n\nSidefaceup\nblack black black black\n.0130.\n0111\n02111\n01110\n00000\n\nSidefaceup2\nblack black black black\n.0130.\n0111\n02111\n01110\n00000\n\nSidefacedown\nblack black black black\n00000\n01110\n02111\n01110\n.0130\n\n(scoring)\n\nMMMM\nblack black black black black\n40304\n00311\n00212\n00123\n33333\n\nLLLLL\nblack black black\n00112\n00112\n00112\n00112\n00112\n\nLeftJJJJ\nblack black black black black black\n44542\n11221\n52135\n42143\n41223\n\nMidJJJJ\nblack black black black black\n44001\n14031\n41332\n43021\n33122\n\nRightJJJJ\nblack black black black black black\n42544\n24512\n55215\n31124\n13524\n\n(stuff)\n\nMess\nblack black black black black\n01234\n34021\n23140\n12403\n40312\n\n\nSocket\nblack black black\n00100\n00100\n00000\n11011\n00000\n\ng5432g5glass\ngreen black black black\n02220\n03330\n00100\n.000.\n00000\n\nZZZZZZglass\ngreen black black black\n00000\n01120\n00200\n.000.\n00000\n\nXXXXglass\ngreen black black \n00000\n02220\n00100\n.000.\n00000\n\nPhone\nblack black black\n00000\n02200\n00000\n01010\n10100\n\nWWWW\nblack black\n100..\n01010\n10001\n10001\n01110\n\nWWWW2\nblack black\n100..\n01010\n10101\n10001\n01110\n\nWWWWwarning\nblack \n.....\n.....\n.....\n.....\n.....\n\nWWWWwarning2\nblack\n.....\n.....\n.....\n.....\n.....\n\n(admin)\n\nKKKK\nblack black\n00001\n00010\n00100\n10100\n01000\n\nKKKK2\nblack black\n00001\n00010\n00100\n10100\n01000\n\nKKKK3\nblack black\n00001\n00010\n00100\n10100\n01000\n\nKKKK4\nblack black\n00000\n00000\n00000\n10100\n01000\n\nWall\nblack black\n01110\n01110\n01110\n01110\n01110\n\nBadKKKK\nblack black\n10001\n01010\n00100\n01010\n10001\n\nBadKKKK2\nblack black \n10001\n01010\n00100\n01010\n10001\n\nBadKKKK3\nblack black \n10001\n01010\n00100\n01010\n10001\n\nBadKKKK4\nblack black \n10001\n01010\n00100\n01010\n10001\n\n(architecture)\n\nDoor\nblack black\n00000\n00000\n00010\n00000\n00000\n\nHousewalltop\ngreen green green black green\n33333\n44444\n01210\n01210\n01210\n\nHousewallIIIII\ngreen green green green black\n01210\n01210\n01210\n01210\n01210\n\nFlowers\ngreen black green black black black\n30035\n02103\n24200\n02001\n01003\n\nPath\nblack black\n00001\n00000\n01000\n00010\n00000\n\nPathmessage1\nblack black\n00001\n00000\n01000\n00010\n00000\n\nPathmessage2\nblack black\n00001\n00000\n01000\n00010\n00000\n\nFakeOutdoors\ngreen black\n00010\n00100\n10000\n00001\n01000\n\n=======\nLEGEND\n=======\n\n, = Outdoors \n! = LLLLL\n. = Background\n[ = Intro\n] = Intro2\n- = intro3\n_ = intro4\n* = Player\n# = Wall\n+ = MMMM\n0 = Face\n1 = LeftJJJJ\n2 = MidJJJJ\n3 = RightJJJJ\n4 = VVVV\n5 = k33k3k23\n6 = SAAAAon\n7 = UUUUU\nA = FFFFFF\nB = GGG\ne = Scoring\nF = RRRRRRQQQQQQQQion\nI = XXXXglass\nL = WWWW\nM = SSSSQQQQQQQQion\nO = DDDD\nP = CCCCC\nQ = Target\nT = Socket\nU = OOOOe \nX = KKKK\nY = Phone \nZ = Outdoortarget\n9 = tuteGGG\n& = tuteFFFFFF \n£ = tuteface\n$ = WWWWwarning\n\" = flowertrigger\n' = flowertrigger2\n% = tuteOOOOe\n{ = tuteSSSSQQQQQQQQion\n} = tuteRRRRRRQQQQQQQQion\n(outdoors)\nG = Door \nJ = Flowers\nR = Path\nK = HousewallIIIII\nN = Housewalltop\nC = pathmessage1\nD = Pathmessage2\n8 = Outdoormessage1\nS = Outdoormessage2\nW = Outdoormessage3\n\ngap = background or outdoors or path or outdoormessage2 or outdoormessage1 or outdoormessage3\n\nDDDDularities = DDDDularity or DDDDularity2 or DDDDularity3\nDDDDs = DDDD or DDDD2 or blackDDDD or blackDDDD2 or blackDDDD3 or blackDDDD4 \n\nTTTTopalypse = d123d12d12derTTTT or d123d12d12derZZZZZZ1 or d123d12d12derZZZZZZ2 or d123d12d12derZZZZZZ3\nblackGGGs = blackGGG or blackGGG2\npinkGGGs = pinkGGG or pinkGGG2\nFFFFFFs = FFFFFF or FFFFFF2 or FFFFFF3 or FFFFFF4 or FFFFFF5\nHHHHHHdGGGs = HHHHHHdGGG or HHHHHHdGGG2\nif90345if0934i90f34s = if90345if0934i90f34 or if90345if0934i90f342 or if90345if0934i90f343\nslappedGGGs = pinkGGGs or pinkGGGs or HHHHHHdGGGs\nfaces = Face or Sidefaceleft or Sidefaceright or Sidefaceup or sidefacedown or if90345if0934i90f34s or sidefaceup2\nGGGs = GGG or blackGGGs or pinkGGGs or HHHHHHdGGGs\nTTTTs = CCCCC or CCCCC2 or CCCCC3 or CCCCC4 or CCCCC5 or CCCCC6 or CCCCC7 or CCCCC8 or CCCCC9 or CCCCC10 or CCCCCa or CCCCCb or CCCCCc or CCCCCd or CCCCCe\nWWWWs = WWWW or WWWW2\n\nResults = KKKK or badKKKK or KKKK2 or badKKKK2 or KKKK2 or badKKKK2 or KKKK3 or badKKKK3 or KKKK4 or badKKKK4\nStuff = UUUUU or sAAAAon or XXXXglass or phone or socket or g5432g5glass or ZZZZZZglass or WWWWs or mess\nArchitecture = wall or door \nYYYYYYYs = OOOOe or SSSSQQQQQQQQion or RRRRRRQQQQQQQQion or g5432g5glass or ZZZZZZglass or tuteRRRRRRQQQQQQQQion or tuteSSSSQQQQQQQQion or tuteOOOOe\nscoretrack = scoring or MMMM or LLLLL or leftJJJJ or midJJJJ or rightJJJJ or target or outdoortarget\n\nEEEE = TTTTs or k33k3k23 or GGGs or DDDDs or Faces or VVVV or FFFFFFs or BBBNNNCCCCC or BBBNNNCCCCC2 or BBBNNNCCCCC3 or BBBNNNCCCCC4 or BBBNNNplayer or BBBNNNplayer2 or BBBNNNplayer3 or BBBNNNplayer4 or tuteGGG or tuteFFFFFF or tuteface \n\nAAAApedplayers = AAAApedplayer or AAAApedplayer2 or AAAApedplayer3 or AAAApedplayer4 or AAAApedplayer5 or AAAApedplayer6\n\nStudio = flowers or housewalltop or housewallIIIII \nPaths = path or pathmessage1 or pathmessage2 \n\nEverything = YYYYYYYs or stuff or architecture or studio or paths or EEEE or results or outdoors or scoretrack or player \n\n=======\nSOUNDS\n=======\n\nTTTTs move 81432307\nFFFFFFs move 30911708\nGGGs move 76441308\nDDDDs move 59578908\nk33k3k23 move 83753708\nVVVV move 88751108\nFaces move 46152509\nEEEE move 53209307\n\nAAAApedplayers move 62896704\n\nplayer cantmove 77916504\nKKKK create 97214303\nbadKKKK create 11123702\n\nSSSSQQQQQQQQion move 51210708\nRRRRRRQQQQQQQQion move 30863108\nOOOOe move 80548907\n\nstuff move 34367907\n\nEndlevel 48242503\nEndgame 9005308\nclosemessage 71913507\nstartlevel 13337700\n\n================\nCOLLISIONLAYERS\n================\nBackground, \nOutdoors, Intro, Intro2, intro3, intro4, outdoormessage1, outdoormessage2, outdoormessage3 \nPaths\nPlayer, EEEE, YYYYYYYs, Results, stuff, architecture, studio, AAAApedplayers, \nScoretrack\nDDDDularities, BBBNNNplayer, TTTTopalypse, fakeoutdoors, WWWWwarning, WWWWwarning2, flowertrigger, flowertrigger2\n======\nRULES\n======\n\n(everything that moves)\n[ > Player | EEEE ] -> [ > Player | > EEEE ]\n[ > Player | YYYYYYYs ] -> [ > Player | > YYYYYYYs ]\n[ > Player | Stuff ] -> [ > Player | > Stuff ]\n\n(disasters )\n[ DDDDularities ] -> [ randomdir DDDDularities ]\n[ everything | ... | DDDDularities ] -> [ > everything | ... | DDDDularities ]\n\n[ > everything | DDDDularity ] -> [ background | DDDDularity2 ] Message THIS IS A MESSAGE\n[ > everything | DDDDularity2 ] -> [ | DDDDularity3 ]\n[ > everything | DDDDularity3 ] -> [ > everything | DDDDularity2 ]\n\n(facesitting)\n[ > FFFFFFs | faces ] -> [ background | badKKKK ] Message THIS IS A MESSAGE\n[ > GGGs | faces ] -> [ | badKKKK ] Message THIS IS A MESSAGE\n\n(one-offs)\n[ > DDDDs | XXXXglass ] -> [ DDDDs | XXXXglass ] Message THIS IS A MESSAGE\n[ > XXXXglass | DDDD ] -> Message DISPLAY MESSAGE\n\n[ > VVVV | k33k3k23 ] -> [ | badKKKK ] Message THIS IS A MESSAGE\n[ > k33k3k23 | VVVV ] -> [ k33k3k23 | VVVV ] Message THIS IS A MESSAGE\n\n\n(CCCCC level) \n\n[ > CCCCC | tuteGGG ] -> [ | KKKK ] Message THIS IS A MESSAGE\n[ > CCCCC | tuteFFFFFF ] -> [ | KKKK ] Message THIS IS A MESSAGE\n[ > CCCCC | tuteface ] -> [ | KKKK ] Message THIS IS A MESSAGE\n\n\n(scoring)\n\n[ KKKK4 ] -> [ ]\n[ KKKK3 ] -> [ KKKK4 ]\n[ KKKK2 ] -> [ KKKK3 ]\n\n[ BadKKKK4 ] -> [ ]\n[ BadKKKK3 ] -> [ BadKKKK4 ]\n[ BadKKKK2 ] -> [ BadKKKK3 ]\n\n[ KKKK ] [ LLLLL | MMMM | Scoring ] -> [ KKKK2 ] [ LLLLL | LLLLL | MMMM ]\n[ KKKK ] [ LLLLL | MMMM | Target ] -> [ KKKK2 ] [ LLLLL | LLLLL | MMMM ]\n[ BadKKKK ] [ LLLLL | LLLLL | MMMM ] -> [BadKKKK2] [ LLLLL | MMMM | Scoring ]\n\n(dead things crumble to dust)\n[ BBBNNNCCCCC4 ] -> [ ]\n[ BBBNNNCCCCC3 ] -> [ BBBNNNCCCCC4 ]\n[ BBBNNNCCCCC2 ] -> [ BBBNNNCCCCC3 ]\n[ BBBNNNCCCCC ] -> [ BBBNNNCCCCC2 ]\n\n[ BBBNNNplayer4 ] -> [ ]\n[ BBBNNNplayer3 ] -> [ BBBNNNplayer4 ]\n[ BBBNNNplayer2 ] -> [ BBBNNNplayer3 ]\n[ BBBNNNplayer ] -> [ BBBNNNplayer2 ]\n\n\n( special PPPPP instructions for level 2 )\n\nright [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 1\nleft [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 2\nup [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 3\ndown [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 4\n\nright [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 5\nleft [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 6\nup [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 7\ndown [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 8\n\nright [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ] \nleft [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ]\nup [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ]\ndown [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ]\n\nright [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 9\nleft [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 10\nup [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 11\ndown [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 12\n\nright [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 13\nleft [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 14\nup [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 15\ndown [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 16\n\nright [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 17\nleft [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 18\nup [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 19\ndown [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 20\n\n\n(objects)\n\n[ > phone | OOOOe ] -> [ > phone | OOOOe ] Message THIS IS A MESSAGE 21\n\n\n[ > phone | RRRRRRQQQQQQQQion ] -> [ | KKKK ] Message THIS IS A MESSAGE 22\n\n[ > phone | SSSSQQQQQQQQion ] -> [ | KKKK ] Message THIS IS A MESSAGE 23\n[ > phone | DDDDs ] -> [ | KKKK ] Message THIS IS A MESSAGE 24\n\n[ > phone | TTTTs ] -> [ phone | TTTTs ] Message THIS IS A MESSAGE 25\n\n[> UUUUU | XXXXglass ] -> [ UUUUU | XXXXglass ] Message THIS IS A MESSAGE 26\n[> SAAAAon | XXXXglass ] -> [ SAAAAon | XXXXglass ] Message THIS IS A MESSAGE 27\n\n[> XXXXglass | socket ] -> [ | socket ] Message THIS IS A MESSAGE 28 \n[> g5432g5glass | socket ] -> [ | socket ] Message THIS IS A MESSAGE 29\n[> ZZZZZZglass | socket ] -> [ | socket ] Message THIS IS A MESSAGE 30\n\n[ > YYYYYYYs | phone ] -> [ | phone ] Message THIS IS A MESSAGE 31\n[ > phone | XXXXglass ] -> [ | XXXXglass ] Message THIS IS A MESSAGE 32\n\n[> TTTTs | Socket ] -> [ BBBNNNCCCCC | Socket ] Message THIS IS A MESSAGE 33\n[> TTTTs | Phone ] -> [ TTTTs | Phone ] Message THIS IS A MESSAGE 34 \n[ > TTTTs | XXXXglass ] -> [ TTTTs | XXXXglass ] Message THIS IS A MESSAGE 35\n\n[> player | k33k3k23 | socket ] -> [ | BBBNNNplayer | socket ] Message THIS IS A MESSAGE 36\n[> player | VVVV | socket ] -> [ player | VVVV | socket ] Message THIS IS A MESSAGE 37\n[> EEEE | Socket ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 38\n[> Socket | EEEE ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 39\n\n[ > player | YYYYYYYs | socket ] -> [ | BBBNNNplayer | socket ] Message THIS IS A MESSAGE 40\n\n[> Phone | FFFFFFs ] -> [ Background | FFFFFFs ] Message THIS IS A MESSAGE 41\n[> Phone | GGGs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 42\n\n[ > g5432g5glass | face ] -> [ | badKKKK ] Message THIS IS A MESSAGE 43\n[ > g5432g5glass | EEEE ] -> [ | badKKKK ] Message THIS IS A MESSAGE 44\n\n[ > ZZZZZZglass | face ] -> [ | KKKK ] Message THIS IS A MESSAGE 45\n[ > face | ZZZZZZglass ] -> [ | KKKK ] Message THIS IS A MESSAGE 46\n[ > ZZZZZZglass | FFFFFF ] -> [ | FFFFFF ] Message THIS IS A MESSAGE 47\n[ > ZZZZZZglass | GGG ] -> [ | badKKKK ] Message THIS IS A MESSAGE 48\n\n[ > XXXXglass | faces ] -> [ | faces ] Message THIS IS A MESSAGE 49\n[ > faces | XXXXglass ] -> [ faces | ] Message THIS IS A MESSAGE 50\n\nup down [ > phone | stuff ] -> [ phone | stuff ] Message THIS IS A MESSAGE 51\nleft right [ > phone | stuff ] -> [ phone | stuff ] Message THIS IS A MESSAGE 52\n\n\n\n[ > phone | face ] -> [ phone | face ] Message THIS IS A MESSAGE 53\n[ > GGGs | phone ] -> [ GGGs | phone ] Message THIS IS A MESSAGE 54\n[ > face | phone ] -> [ face | phone ] Message THIS IS A MESSAGE 55\n\n[ > UUUUU | socket ] -> [ UUUUU | socket ] Message THIS IS A MESSAGE 56\n\n\n[ > stuff | XXXXglass ] -> [ | XXXXglass ]\n[ > stuff | g5432g5glass ] -> [ | g5432g5glass ]\n[ > stuff | ZZZZZZglass ] -> [ | ZZZZZZglass ]\n\n\n( WWWW )\n\n[ AAAApedplayer6 ] -> [ player ] Message THIS IS A MESSAGE 57\n[ AAAApedplayer5 ] -> [ AAAApedplayer6 ]\n[ AAAApedplayer4 ] -> [ AAAApedplayer5 ]\n[ AAAApedplayer3 ] -> [ AAAApedplayer4 ] \n[ AAAApedplayer2 ] -> [ AAAApedplayer3 ]\n[ AAAApedplayer ] -> [ AAAApedplayer2 ] Message THIS IS A MESSAGE 58\n[ > player | WWWWs ] -> [ | < AAAApedplayer ] Message THIS IS A MESSAGE 59\n\n[ WWWWwarning ] [ WWWWwarning2 ] -> [ WWWWwarning2 ] [ WWWWwarning2 ]\n[ > player | WWWWwarning ] -> [ > player | WWWWwarning2 ] Message THIS IS A MESSAGE 60\n\nup [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 61\ndown [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 62\nup [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 63\nup [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 64\n\n[ > DDDDs | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 65\n[ > CCCCC | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 66\n[ > FFFFFFs | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 67\n[ > GGGs | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 68\n[ > k33k3k23 | WWWWs ] -> [ | badKKKK ] Message THIS IS A MESSAGE 69\n[ > VVVV | WWWWs ] -> [ | badKKKK ] Message THIS IS A MESSAGE 70\n\n\n(basic sex acts)\n\nup down [ > TTTTs | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE 71\nleft right [ > TTTTs | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE 72\n\nup [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 73\nleft [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 74\ndown [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 75\nright [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 76\n\nleft [ > FFFFFF | TTTTs ] -> [ | KKKK ] Message THIS IS A MESSAGE 77\nright [ > FFFFFF | TTTTs ] -> [ | KKKK ] \nup [ > FFFFFF | TTTTs ] -> [ | KKKK ] Message THIS IS A MESSAGE 78\ndown [ > FFFFFF | TTTTs ] -> [ | KKKK ] \n[ > TTTTs | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE 79\nright [ > FFFFFF | FFFFFF ] -> [ FFFFFF2 | FFFFFF2 ] Message THIS IS A MESSAGE 80\nleft up down [ > FFFFFF | FFFFFF ] -> [ FFFFFF2 | FFFFFF2 ]\ndown [ > FFFFFF2 | FFFFFF2 ] -> [ | KKKK ] Message THIS IS A MESSAGE 81\nleft up right [ > FFFFFF2 | FFFFFF2 ] -> [ | KKKK ]\n\n(UUUUUs) \n[ > FFFFFF3 | UUUUU ] -> [ background | KKKK ] \n[ > FFFFFFs | UUUUU ] -> [ FFFFFF3 | UUUUU ] Message THIS IS A MESSAGE 82\n\n[ > UUUUU | FFFFFFs ] -> [ background | sAAAAon ] Message THIS IS A MESSAGE 83\n\n\n[ > UUUUU | face ] -> [ UUUUU | face ] Message THIS IS A MESSAGE 84\n[ > sAAAAon | face ] -> [ | KKKK ] Message THIS IS A MESSAGE 85\n\n(sAAAAons) \n[ > sAAAAon | FFFFFFs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 86\n[ > sAAAAon | GGGs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 87\n[ > sAAAAon | DDDDs ] -> [ sAAAAon | DDDDs ] Message THIS IS A MESSAGE 88\n[ > sAAAAon | faces ] -> [ background | KKKK ] \n\n[ > FFFFFFs | sAAAAon ] -> [ background | KKKK ] \n[ > GGGs | sAAAAon ] -> [ background | KKKK ]\n[ > EEEE | sAAAAon ] -> [ EEEE | sAAAAon ]\n[ > faces | sAAAAon ] -> [ faces | sAAAAon ] Message THIS IS A MESSAGE 89\n\nup down [ > UUUUU | GGGs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 90\nleft right [ > UUUUU | GGGs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 91 \n\n[ > stuff | stuff | stuff | stuff ] -> [ stuff| stuff | stuff | stuff ] Message THIS IS A MESSAGE 92\n\n\n(the k33k3k23's jobs)\n\n[ > k33k3k23 | FFFFFF ] -> [ k33k3k23 | FFFFFF2 ] Message THIS IS A MESSAGE 93\n[ > k33k3k23 | FFFFFF2 ] -> [ k33k3k23 | FFFFFF3 ] \n[ > k33k3k23 | FFFFFF3 ] -> [ k33k3k23 | FFFFFF4 ] \n[ > k33k3k23 | FFFFFF4 ] -> [ k33k3k23 | FFFFFF5 ]\nup [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 94\ndown [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 95\nleft [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 96\nright [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 97\n\n[ > k33k3k23 | k33k3k23 ] -> [ k33k3k23 | k33k3k23 ] Message THIS IS A MESSAGE 98\nleft down [ > VVVV | VVVV ] -> [ VVVV | VVVV ] Message THIS IS A MESSAGE 99\nup right [ > VVVV | VVVV ] -> [ VVVV | VVVV ]\n\n(FFFFFFs)\n\n[ > FFFFFFs | GGG ] -> [ FFFFFFs | GGG ] Message THIS IS A MESSAGE 100\n[ > FFFFFFs | DDDD ] -> [ FFFFFFs | DDDD ] Message THIS IS A MESSAGE q1\n\n(piss)\n\n[ > OOOOe | TTTTs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q2\n[ > OOOOe | FFFFFFs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q3\n[ > OOOOe | SSSSQQQQQQQQion ] -> [ Background | BadKKKK ] \n[ > OOOOe | RRRRRRQQQQQQQQion ] -> [ Background | OOOOe ] Message THIS IS A MESSAGE q4\n[ > OOOOe | Face ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q5\n[ > OOOOe | k33k3k23 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q6\n[ > OOOOe | VVVV ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q7\n[ > OOOOe | GGGs ] -> [ Background | BadKKKK ]\n\n[ > OOOOe | OOOOe ] -> [ | OOOOe ] \n\n[ > OOOOe | EEEE ] -> [ Background | BadKKKK ]\n[ > RRRRRRQQQQQQQQion | EEEE ] -> [ Background | BadKKKK ]\n\n[ > RRRRRRQQQQQQQQion | SSSSQQQQQQQQion ] -> [ | BadKKKK ] Message THIS IS A MESSAGE q8\n[ > SSSSQQQQQQQQion | RRRRRRQQQQQQQQion ] -> [ | KKKK ] Message THIS IS A MESSAGE q9\n\n[ > TTTTs | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q10\n[ > FFFFFFs | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q11\n[ > SSSSQQQQQQQQion | OOOOe ] -> [ Background | OOOOe ] Message THIS IS A MESSAGE q12\n[ > RRRRRRQQQQQQQQion | OOOOe ] -> [ Background | OOOOe ] Message THIS IS A MESSAGE q13\n[ > Face | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q14\n[ > k33k3k23 | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q15\n[ > VVVV | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q16\n[ > GGG | OOOOe ] -> [ Background | BadKKKK ] \n\n(complicated things with glasses) \n\n[ > OOOOe | XXXXglass ] -> [ | g5432g5glass ]\n[ > RRRRRRQQQQQQQQion | XXXXglass ] -> [ | g5432g5glass ]\n[ > SSSSQQQQQQQQion | XXXXglass ] -> [ | ZZZZZZglass ]\n\n[ > OOOOe | ZZZZZZglass ] -> [ | g5432g5glass ]\n[ > RRRRRRQQQQQQQQion | ZZZZZZglass ] -> [ | g5432g5glass ]\n\n[ > SSSSQQQQQQQQion | g5432g5glass ] -> [ | ZZZZZZglass ]\n\n\n(DDDDs)\n\n[ > DDDDs | TTTTs ] -> [ DDDDs | TTTTs ] Message THIS IS A MESSAGE q17\n\n[ > DDDDs | FFFFFFs ] -> [ DDDDs | FFFFFF ] Message THIS IS A MESSAGE q18\n[ > DDDDs | SSSSQQQQQQQQion ] -> [ DDDD | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q19\n[ > DDDDs | Face ] -> [ DDDDs | Face ] Message THIS IS A MESSAGE q20\n[ > DDDDs | k33k3k23 ] -> [ DDDDs | k33k3k23 ] Message THIS IS A MESSAGE q21\n[ > DDDDs | GGG ] -> [ DDDDs | GGG ] Message THIS IS A MESSAGE q22\n\n[ > FFFFFFs | DDDDs ] -> [ FFFFFFs | DDDD ]\n[ > SSSSQQQQQQQQion | DDDDs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q23\n[ > SSSSQQQQQQQQion | Face ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q24\n\n[ > Face | DDDDs ] -> [ Face | DDDDs ] Message THIS IS A MESSAGE q25\n[ > DDDDs | Face | DDDDs ] -> [ DDDDs | Face | DDDDs ] Message THIS IS A MESSAGE q26\n\n[ > VVVV | DDDDs ] -> [ Background | BadKKKK ]\n[ > GGG | DDDDs ] -> [ GGG | DDDDs ] Message THIS IS A MESSAGE q27\n\n[ DDDDs | DDDDs | DDDDS | DDDDs | DDDDs | DDDDs | DDDDs ] -> [ Background | Background | Background | DDDDularity | Background | Background | Background ] Message THIS IS A MESSAGE q29 \n[ > DDDDs | DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q29\n[ > DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q30\n[ > DDDDs | DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q31\n[ > DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q32\n[ > DDDDs | DDDDs ] -> [ DDDDs | DDDDs ] Message THIS IS A MESSAGE q33\n\n(kissing)\nright [ > Faces | Faces ] -> [ Sidefaceleft | Sidefaceright ] Message THIS IS A MESSAGE q34\nleft [ > Faces | Faces ] -> [ Sidefaceright | Sidefaceleft ] Message THIS IS A MESSAGE q35\nup [ > Faces | Faces ] -> [ Sidefaceup | Sidefacedown ] Message THIS IS A MESSAGE q36\ndown [ > Faces | Faces ] -> [ Sidefacedown | Sidefaceup ] Message\n\n[ > GGGs | Outdoors ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q38\n\nup down [ > TTTTs | GGGs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q39\nleft [ > TTTTs | GGGs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q40\nright [ > TTTTs | GGGs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q41\n[ > GGGs | TTTTs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q42\n\n\n[ > k33k3k23 | Outdoors ] -> [ > k33k3k23 | > Outdoors ]\n[ > FFFFFFs | Outdoors ] -> [ Background | BadKKKK ]\n[ > TTTTs | Outdoors ] -> [ Background | BadKKKK ]\n[ > SSSSQQQQQQQQion | Outdoors ] -> [ Background | BadKKKK ]\n[ > RRRRRRQQQQQQQQion | Outdoors ] -> [ Background | BadKKKK ]\n[ > OOOOe | Outdoors ] -> [ | Outdoors ] Message THIS IS A MESSAGE q43\n\n[ > FFFFFFs | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q44\n[ > TTTTs | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q45\n[ > SSSSQQQQQQQQion | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q46\n[ > RRRRRRQQQQQQQQion | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q47\n[ > OOOOe | Path | Path | Path ] -> [ > OOOOe | Path | Path | Path ] Message THIS IS A MESSAGE q48\n\n\n[ > Outdoors | Faces | Faces ] -> [ Outdoors | Faces | Faces ] Message THIS IS A MESSAGE q49\n\n\n(smacks and slaps)\nup down [ > k33k3k23 | GGG ] -> [ k33k3k23 | blackGGG ] Message THIS IS A MESSAGE q50\nleft right [ > k33k3k23 | GGG ] -> [ k33k3k23 | blackGGG ] Message THIS IS A MESSAGE q51\n[ > k33k3k23 | blackGGGs ] -> [k33k3k23 | blackGGG ] Message THIS IS A MESSAGE q52\n[ > k33k3k23 | blackGGGs ] -> [k33k3k23 | HHHHHHdGGG ] Message THIS IS A MESSAGE q53\n[ > k33k3k23 | HHHHHHdGGGs ] -> [Background | BadKKKK ] Message THIS IS A MESSAGE q54\n\n[> k33k3k23 | if90345if0934i90f34s ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q55\n[ > k33k3k23 | Faces ] -> [ k33k3k23 | if90345if0934i90f34 ] Message THIS IS A MESSAGE q56\n\n[> Faces | k33k3k23 ] -> [ Face | k33k3k23 ] Message THIS IS A MESSAGE q57\n\n[ > k33k3k23 | DDDD ] -> [ k33k3k23 | DDDD2 ] Message THIS IS A MESSAGE q58\n[ > k33k3k23 | DDDD2 ] -> [ k33k3k23 | blackDDDD4 ] Message THIS IS A MESSAGE q59\n[ > k33k3k23 | blackDDDD ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q60\n[ > k33k3k23 | blackDDDD2 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q61\n[ > k33k3k23 | blackDDDD3 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q62\n[ > k33k3k23 | blackDDDD4 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q63\n\n(VVVVing and punching)\n\n[> VVVV | Faces ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q64\n[ > VVVV | FFFFFFs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q65\n[ > VVVV | GGGs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q66\n\n[ > EEEE | VVVV ] -> [ EEEE | VVVV ] \n\n(remaining CCCCCes)\n[ > CCCCCA | CCCCCA ] -> [ CCCCCB | CCCCCB ]\n[ > CCCCCB | CCCCCB ] -> [ CCCCCC | CCCCCC ]\n[ > CCCCCC | CCCCCC ] -> [ CCCCCD | CCCCCD ]\n[ > CCCCCD | CCCCCD ] -> [ CCCCCE | CCCCCE ]\n[ > CCCCCE | CCCCCE ] -> [ | KKKK ]\n[ > TTTTs | TTTTs ] -> [ CCCCCA | CCCCCA ] Message THIS IS A MESSAGE q77\n\n[ > k33k3k23 | CCCCC ] -> [ k33k3k23 | CCCCC3 ] Message THIS IS A MESSAGE q78\n[ > k33k3k23 | CCCCC2 ] -> [ k33k3k23 | CCCCC5 ] Message THIS IS A MESSAGE q79\n[ > k33k3k23 | CCCCC3 ] -> [ k33k3k23 | CCCCC5 ] Message THIS IS A MESSAGE q80\n[ > k33k3k23 | CCCCC4 ] -> [ k33k3k23 | CCCCC7 ] Message THIS IS A MESSAGE q81\n[ > k33k3k23 | CCCCC5 ] -> [ k33k3k23 | CCCCC7 ] Message THIS IS A MESSAGE q82\n[ > k33k3k23 | CCCCC6 ] -> [ k33k3k23 | CCCCC9 ] Message THIS IS A MESSAGE q83\n[ > k33k3k23 | CCCCC7 ] -> [ k33k3k23 | CCCCC9 ] Message THIS IS A MESSAGE q84\n[ > k33k3k23 | CCCCC8 ] -> [ k33k3k23 | CCCCC10 ]\n[ > k33k3k23 | CCCCC9 ] -> [ background | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q85\n[ > k33k3k23 | CCCCC10 ] -> [ background | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q86\n\n[ > TTTTs | k33k3k23 ] -> [ Background | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q87\n\nright [ > Faces | FFFFFF ] -> [ sidefaceleft | FFFFFF2 ] Message THIS IS A MESSAGE q88\nleft [ > Faces | FFFFFF ] -> [ sidefaceright | FFFFFF2 ] Message THIS IS A MESSAGE q89\nup [ > faces | FFFFFF ] -> [ sidefaceup | FFFFFF2 ] Message THIS IS A MESSAGE q90\ndown [ > faces | FFFFFF ] -> [ sidefacedown | FFFFFF2 ] Message THIS IS A MESSAGE q91\n\n\n[ > Faces | FFFFFF2 ] -> [ Faces | FFFFFF3 ] \n[ > Faces | FFFFFF3 ] -> [ Faces | FFFFFF4 ]\n[ > Faces | FFFFFFs ] -> [ | KKKK ] \n[ > Faces | SSSSQQQQQQQQion ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 101\n\n[ > VVVV | GGG ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 102\n\n[ > CCCCC | DDDDs ] -> [ CCCCC | DDDDs ] Message THIS IS A MESSAGE\n[ > DDDDs | CCCCC | DDDDs ] -> [ DDDDs | SSSSQQQQQQQQion | DDDDs ] Message THIS IS A MESSAGE 103\n[ > CCCCC | DDDDs | DDDDs ] -> [ KKKK | | ] Message THIS IS A MESSAGE.104\n\n[ > CCCCC | EEEE ] -> [ CCCCC | EEEE ] Message THIS IS A MESSAGE.105\n[ > CCCCC | stuff ] -> [ CCCCC | stuff ] Message THIS IS A MESSAGE.106\n[ > stuff | CCCCC ] -> [ stuff | CCCCC ] Message THIS IS A MESSAGE.107\n\n( slaps fade )\n[ if90345if0934i90f343 ] -> [ face ]\n[ if90345if0934i90f342 ] -> [ if90345if0934i90f343 ]\n[ if90345if0934i90f34 ] -> [ if90345if0934i90f342 ]\n\n[ blackGGG2 ] -> [ GGG ]\n[ blackGGG ] -> [ blackGGG2 ]\n\n[ blackGGG2 ] -> [ blackGGG ]\n[ blackGGG ] -> [ blackGGG2 ]\n\n[ HHHHHHdGGG2 ] -> [ blackGGG ]\n[ HHHHHHdGGG ] -> [ HHHHHHdGGG2 ]\n\n[ blackDDDD2 ] -> [ DDDD ]\n[ blackDDDD3 ] -> [ blackDDDD2 ]\n[ blackDDDD4 ] -> [ blackDDDD3 ] \n\n(erections too)\n[ CCCCC2 ] -> [ CCCCC ]\n[ CCCCC3 ] -> [ CCCCC2 ]\n[ CCCCC4 ] -> [ CCCCC3 ]\n[ CCCCC5 ] -> [ CCCCC4 ]\n[ CCCCC6 ] -> [ CCCCC5 ]\n[ CCCCC7 ] -> [ CCCCC6 ]\n[ CCCCC8 ] -> [ CCCCC7 ]\n[ CCCCC9 ] -> [ CCCCC8 ]\n[ CCCCC10 ] -> [ CCCCC9 ]\n\n\n( faces and EEEE parts )\nright [ > Faces | GGGs ] -> [ Sidefaceleft | GGGs ]\nleft [ > Faces | GGGs ] -> [ Sidefaceright | GGGs ]\nup [ > sidefaceup2 | GGGs ] -> [ | KKKK ] Message THIS IS A MESSAGE.108\nup [ > Faces | GGGs ] -> [ Sidefaceup2 | GGGs ] Message THIS IS A MESSAGE.109\ndown [ > Faces | GGGs ] -> [ Sidefacedown | GGGs ] \n\n\nright [ > Faces | DDDDs ] -> [ Sidefaceleft | DDDDs ]\nleft [ > Faces | DDDDs ] -> [ Sidefaceright | DDDDs ]\nup [ > Faces | DDDDs ] -> [ Sidefaceup | DDDDs ] \ndown [ > Faces | DDDDs ] -> [ Sidefacedown | DDDDs ]\n\n[ > DDDDs | faces | DDDDs ] -> [ DDDDs | faces | DDDDs ] Message THIS IS A MESSAGE.110\n\nright [ > Faces | TTTTs ] -> [ Sidefaceleft | TTTTs ]\nleft [ > Faces | TTTTs ] -> [ Sidefaceright | TTTTs ]\nup [ > Faces | TTTTs ] -> [ Sidefaceup | TTTTs ] Message THIS IS A MESSAGE.111\ndown [ > Faces | TTTTs ] -> [ Sidefacedown | TTTTs ] Message THIS IS A MESSAGE.112\n\n[ > Sidefacedown | TTTTs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE.113\n\n(intro level)\nright [ > player | housewalltop ] -> [ player | housewalltop ] Message THIS IS A MESSAGE.114\nleft [ > player | housewalltop ] -> [ player | housewalltop ] Message THIS IS A MESSAGE.115\nright [ > player | housewallIIIII ] -> [ player | housewallIIIII ] Message THIS IS A MESSAGE.116\nleft [ > player | housewallIIIII ] -> [ player | housewallIIIII ] Message THIS IS A MESSAGE.117\n\n[ flowertrigger ] [> player | flowers ] -> [flowertrigger2] [ player | flowers ] Message THIS IS A MESSAGE.118\n[ flowertrigger2 ] [> player | flowers ] -> [ ] [ player | flowers ] Message THIS IS A MESSAGE.119\n\n[ > player | pathmessage1 ] -> [ > player | path ] Message THIS IS A MESSAGE.120\n[ > player | pathmessage2 ] -> [ > player | path ] Message THIS IS A MESSAGE.121\n\n[ outdoortarget ] [ > player | door ] -> [ outdoors ] [ > player | door ]\n\n(explanations)\n[ > player | intro ] -> [ > player | background ] Message THIS IS A MESSAGE.122\n[ > player | intro2 ] -> [ > player | background ] Message THIS IS A MESSAGE.123\n[ > player | intro3 ] -> [ > player | background ] Message THIS IS A MESSAGE.124\n[ > player | intro4 ] -> [ > player | background ] Message THIS IS A MESSAGE.125\n\n[ > player | outdoormessage1 ] -> [ > player | outdoors ] Message THIS IS A MESSAGE.126\n[ > player | outdoormessage2 ] -> [ > player | outdoors ] Message THIS IS A MESSAGE.127\n[ > player | outdoormessage3 ] -> [ > player | outdoors ] Message THIS IS A MESSAGE.128\n\n\n\n( ZZZZZZ, wanking, CCCCCes otherwise unaddressed ) \n[ > SSSSQQQQQQQQion | GGGs ] -> [ | KKKK ] Message THIS IS A MESSAGE.129\n[ > SSSSQQQQQQQQion | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE.130\nup down [ > SSSSQQQQQQQQion | faces ] -> [ | KKKK ] Message THIS IS A MESSAGE.131\nleft right [ > SSSSQQQQQQQQion | faces ] -> [ | KKKK ] Message THIS IS A MESSAGE.132\n[ > SSSSQQQQQQQQion | EEEE ] -> [ SSSSQQQQQQQQion | EEEE ] Message THIS IS A MESSAGE.133\n\n[ > CCCCC | VVVV ] -> [ | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.134\n[ > VVVV | CCCCC ] -> [ | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.135\n\n\n( TTTTopalypse )\n[ SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion ] -> [ d123d12d12derTTTT | d123d12d12derTTTT | d123d12d12derTTTT | d123d12d12derTTTT ] Message THIS IS A MESSAGE.136\n[ > SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion ] -> [ SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.137\n[ > SSSSQQQQQQQQion | SSSSQQQQQQQQion ] -> [ SSSSQQQQQQQQion | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.138\n\n[ d123d12d12derZZZZZZ2 ] -> [ d123d12d12derZZZZZZ3 ]\n[ d123d12d12derZZZZZZ1 ] -> [ d123d12d12derZZZZZZ2 ]\n\n[ | d123d12d12derZZZZZZ3 ] -> [ d123d12d12derZZZZZZ1 | d123d12d12derZZZZZZ3 ] \n[ | d123d12d12derZZZZZZ2 ] -> [ d123d12d12derZZZZZZ1 | d123d12d12derZZZZZZ2 ]\n[ | d123d12d12derTTTT ] -> [ d123d12d12derZZZZZZ1 | d123d12d12derTTTT ]\n\n[ d123d12d12derTTTT | ] -> [ d123d12d12derTTTT | d123d12d12derZZZZZZ1 ] \n\n(tuteYYYYYYYs) \n\n[ RRRRRRQQQQQQQQion ] [ tuteRRRRRRQQQQQQQQion ] -> [ RRRRRRQQQQQQQQion ] [ RRRRRRQQQQQQQQion] \n[ SSSSQQQQQQQQion ] [ tuteSSSSQQQQQQQQion ] -> [ SSSSQQQQQQQQion ] [ SSSSQQQQQQQQion ]\n[ OOOOe ] [ tuteOOOOe ] -> [ OOOOe ] [ OOOOe ]\n\n[ > player | tuteOOOOe ] -> [ > player | OOOOe ] Message THIS IS A MESSAGE.139\n[ > player | tuteSSSSQQQQQQQQion ] -> [ > player | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.140\n[ > player | tuteRRRRRRQQQQQQQQion ] -> [ > player | RRRRRRQQQQQQQQion ] Message THIS IS A MESSAGE.141\n \n[ > XXXXglass | YYYYYYYs ] -> [ XXXXglass | YYYYYYYs ] Message THIS IS A MESSAGE.142\n\n[ > YYYYYYYs | WWWW ] -> [ | WWWW ] Message THIS IS A MESSAGE.143\n\n[ > phone | EEEE ] -> [ > phone | EEEE ] Message THIS IS A MESSAGE.144\n\n[ > GGGs | GGGs ] -> [ GGGs | GGGs ] Message THIS IS A MESSAGE.145\n[ > GGGs | GGGs | GGGs ] -> [ GGGs | GGGs | GGGs ] Message THIS IS A MESSAGE.146\n[ > GGGs | GGGs | GGGs| GGGs ] -> [ GGGs | GGGs | GGGs | GGGs ] Message THIS IS A MESSAGE.147\n[ > GGGs | GGGs | GGGs | GGGs| GGGs ] -> [ GGGs | GGGs | GGGs | GGGs | GGGs ] Message THIS IS A MESSAGE.148\n\n==============\nWINCONDITIONS\n==============\n\nNo Target \nno outdoortarget \n\n=======\nLEVELS\n=======\n\nMessage AAAw1\n\nZJJ,NNNNNNNNN,JJJ\nJ,,,KKKKGKKKK,,,,\nJ,,,,,,JRJ,,,,,,,\nJ,,,,,,JRJJJ,,,,,\n,,,,,,,JDRRRJ,,,,\n,,,8,,,,JJJCRJ,,J\n,,,,,,,,,,JJRJ,,J\n,,,JJ,,,,,,,RJ*,J\n\",,,JJ,,,,,,R,,,,\n\n\nMessage AAAw2\n\n#eQe##I#T#9#Y#£#&#\n#eee#.............\n#eee#......P......\n#e+e#...P.....P...\n#e!e#......[......\n#e!e#######*######\n#123#,,,,J,R,,,,,,\n\nMessage AAAw3\n#eQe#..O...OO...O.\n#eee#..O.O..O..O..\n#e+e#.............\n#e!e#.I..%...}..{.\n#e!e#.............\n#e!e#.Y..%...}..{.\n#e!e#......]......\n#e!e#######*######\n#123#,,,,J,R,,,,,,\n\n\n\nMessage AAAw4\n\n#eQe#.....B.B.....\n#eee#.0.P.....A.A.\n#eee#.....5.5.....\n#eee#.O.4..5..5.P.\n#e+e#.............\n#e!e#..5..4.4..5..\n#e!e#......-......\n#e!e#######*######\n#e!e#,,,,J,R,,,,,,\n#123#,,S,,,R,J,J,,\n\n\nMessage AAAw5\n\n#eQe#.............\n#eee#.0..T...7..5.\n#eee#......M.$....\n#e+e#.B..I..$L$.A.\n#e!e#......F.$....\n#e!e#.O..Y...4..P.\n#e!e#.............\n#e!e#######*######\n#e!e#,,,,J,R,,,,,,\n#123#,,S,,,R,J,J,,\n\nMessage AAAw6\n\n#eQe#.....A.O...P.B.....\n#eee#.M.5..I..T..B..A.P.\n#eee#..U.....5.P.....A..\n#eee#.0.O..M..F..4..0.5.\n#eee#..I..L.......P..O..\n#eee#.A.U..7..O..P..0.T.\n#eee#..7.....4.5.....B..\n#eee#.P.Y..P..B..0..O.I.\n#e+e#........._.........\n#e!e##########*#########\n#e!e#,,,,,,,J,R,,,,,,,,,\n#e!e#,,,W,,,,,R,J,J,,,,,\n#123#,,,,,,,,JRRRRJ,,,,,\n\nMessage AAAw7\n\n\n",[0,0,0,3,0,1,1,1,2,2,2,1,0,0,3,3,3,3,2,3,3,0,0,3,0,1,1,1,1,1,1,2,1,1,2,1,1,0,3,3,2,3,0,0,1,1,1,0,0,3,3],"background wall:0,0,0,0,0,0,0,background scoring:1,1,1,1,1,1,background leftjjjj:2,background target:3,1,1,background mmmm:4,\nbackground lllll:5,5,background midjjjj:6,1,1,1,1,1,1,background rightjjjj:7,0,0,0,0,0,0,0,0,\nbackground:8,8,8,8,0,background outdoors:9,background xxxxglass:10,8,8,8,8,0,9,0,background player:11,8,8,8,\n0,9,background socket:12,background ccccca:13,8,8,8,0,9,0,13,background cccccc:14,8,8,0,background flowers:15,background tuteggg:16,8,\n8,8,8,0,9,0,8,8,8,8,8,background path:17,background phone:18,8,8,8,8,0,\n9,0,8,8,8,8,0,9,background tuteface:19,8,8,8,8,0,9,0,8,8,\n8,8,0,9,background tuteffffff:20,8,8,8,8,0,9,0,8,8,8,8,0,9,\n",3,"1645471800404.333"] + `gallery: censored version of NSFW game pornography for beginners`, + ["title censored version of NSFW game by Holly Gramazio\nauthor Holly\nhomepage hollygramazio.net\n\nyoutube K5Yd1iOAzBA\ntext_color red\nbackground_color gray\n\n========\nOBJECTS\n========\n\nPlayer\nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nAAAApedPlayer\nblack black black black black black\n00005\n55150\n12525\n05530\n01050\n\nAAAApedPlayer2\nblack black black black black black\n00005\n55150\n12525\n05530\n01050\n\n\nAAAApedPlayer3\nblack black black black black black\n00000\n55140\n12521\n05530\n01050\n\nAAAApedPlayer4\nblack black black black black black\n00000\n55140\n12521\n05530\n01050\n\nAAAApedPlayer5\nblack black black black black black\n00000\n55140\n12555\n03330\n01010\n\nAAAApedPlayer6\nblack black black black black black\n00000\n55140\n12555\n03330\n01010\n\n\nBBBNNNplayer \nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nBBBNNNplayer2 \nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nBBBNNNplayer3 \nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nBBBNNNplayer4 \nblack black black black black\n00000\n04040\n10201\n03030\n.....\n\n\n(Backgrounds)\n\nBackground\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nFlowertrigger\ngreen black\n00010\n00100\n10000\n00001\n01000\n\n\nFlowertrigger2\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoors\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage1\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage2\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage3\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nScoring\nblack black\n00100\n00100\n11111\n00100\n00100\n\nIntro\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nIntro2\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nIntro3\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nIntro4\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nTarget\nblack black\n00100\n00100\n11111\n00100\n00100\n\nOutdoortarget\ngreen black\n00010\n00100\n10000\n00001\n01000\n\n(CCCCCes)\n\nCCCCC\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCCa\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCCb\nblack black black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCCc\nblack black black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCCd\nblack green black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCCe\nblack black black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCC2\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC3\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC4\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC5\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC6\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC7\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC8\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC9\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC10\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nBBBNNNCCCCC\nblack black black \n.000.\n.020.\n.020.\n00200\n00000\n\nBBBNNNCCCCC2\nblack black black \n.....\n.010.\n.020.\n00200\n00000\n\nBBBNNNCCCCC3\nblack black black \n.....\n.....\n.010.\n11211\n01010\n\nBBBNNNCCCCC4\nblack black black \n.....\n.....\n.010.\n01210\n.....\n\n(DDDDs)\n\nDDDD\nblack black black black\n03310\n31111\n31012\n11112\n01220\n\nDDDD2\nblack black black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD2\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD3\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD4\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nDDDDularity\nblack black black black \n03310\n31111\n31012\n11112\n01220\n\nDDDDularity2\nblack black black black \n03310\n31111\n31012\n11112\n01220\n\nDDDDularity3\nblack black black black \n03310\n31111\n31012\n11112\n01220\n\n\n(tutorial EEEEparts) \n\nTuteFFFFFF\nblack black\n00100\n01010\n01010\n01010\n00100\n\nTuteGGG\nblack black black black black\n40000\n40040\n40240\n00200\n01010\n\nTuteface\nblack black black black\n00000\n02120\n01110\n01310\n00100\n\n\n(FFFFFFs)\n\nFFFFFF\nblack black\n00100\n01010\n01010\n01010\n00100\n\nFFFFFF2\nblack black\n00100\n01010\n01010\n01010\n00100\n\nFFFFFF3\nblack black black\n00100\n01210\n01210\n01210\n00100\n\nFFFFFF4\nblack black black\n00100\n01210\n01210\n01210\n00100\n\nFFFFFF5\nblack black black\n00200\n02120\n02120\n02120\n00200\n\n(YYYYYYYs)\nOOOOe\nblack black black black\n.020.\n02000\n20001\n20011\n01130\n\nTuteOOOOe\nblack black black black\n.020.\n02000\n20001\n20011\n01130\n\nTuteSSSSQQQQQQQQion\nblack black black black black\n01010\n.010.\n.020.\n.000.\n02020\n\nSSSSQQQQQQQQion\nblack black black black black\n01010\n.010.\n.020.\n.000.\n02020\n\nTuteRRRRRRQQQQQQQQion\nblack black black black\n.010.\n01010\n01010\n.030.\n02020\n\nRRRRRRQQQQQQQQion\nblack black black black\n.010.\n01010\n01010\n.030.\n02020\n\n\n(TTTTopalypse)\nd123d12d12derTTTT\nblack black black black black\n01010\n.010.\n.020.\n.000.\n02020\n\nd123d12d12derZZZZZZ1\nblack\n.000.\n00000\n00000\n.0000\n00000\n\nd123d12d12derZZZZZZ2\nblack\n00000\n00000\n00000\n00000\n00000\n\nd123d12d12derZZZZZZ3\nblack\n00000\n00000\n00000\n00000\n00000\n\n(k33k3k23s)\n\nk33k3k23\nblack black \n01010\n01010\n01010\n00000\n00000\n\nVVVV\nblack black \n01010\n00000\n00000\n00000\n00000\n\n(GGGs)\n\nGGG\nblack black black black black\n40000\n40040\n40240\n00200\n01010\n\nblackGGG\nblack black black black black green green \n05005\n56056\n56256\n05250\n01010\n\npinkGGG\nblack black black black black green green \n55556\n56556\n56256\n06261\n01010\n\nHHHHHHdGGG\nblack black black black green green green \n44446\n46446\n56256\n66256\n01010\n\nblackGGG2\nblack black black black black green green \n05005\n56056\n56256\n05250\n01010\n\npinkGGG2\nblack black black black black green green \n55556\n56556\n56256\n06261\n01010\n\nHHHHHHdGGG2\nblack black black black green green green \n44446\n46446\n56256\n66256\n01010\n\nUUUUU\nblack black\n.010.\n.000.\n.000.\n01010\n.....\n\nSAAAAon\nblack black black black black \n22422\n22422\n33433\n22022\n22022\n\n(faces)\n\nFace\nblack black black black\n00000\n02120\n01110\n01310\n00100\n\nif90345if0934i90f34\nblack black black black green \n00000\n02120\n04140\n04340\n00100\n\nif90345if0934i90f342\nblack black black black green \n00000\n02120\n04140\n04340\n00100\n\nif90345if0934i90f343\nblack black black black green \n00000\n02120\n04140\n04340\n00100\n\nSidefaceleft\nblack black black black\n00000\n01210\n01111\n01113\n0010.\n\nSidefaceright\nblack black black black\n00000\n01210\n11110\n31110\n.0100\n\nSidefaceup\nblack black black black\n.0130.\n0111\n02111\n01110\n00000\n\nSidefaceup2\nblack black black black\n.0130.\n0111\n02111\n01110\n00000\n\nSidefacedown\nblack black black black\n00000\n01110\n02111\n01110\n.0130\n\n(scoring)\n\nMMMM\nblack black black black black\n40304\n00311\n00212\n00123\n33333\n\nLLLLL\nblack black black\n00112\n00112\n00112\n00112\n00112\n\nLeftJJJJ\nblack black black black black black\n44542\n11221\n52135\n42143\n41223\n\nMidJJJJ\nblack black black black black\n44001\n14031\n41332\n43021\n33122\n\nRightJJJJ\nblack black black black black black\n42544\n24512\n55215\n31124\n13524\n\n(stuff)\n\nMess\nblack black black black black\n01234\n34021\n23140\n12403\n40312\n\n\nSocket\nblack black black\n00100\n00100\n00000\n11011\n00000\n\ng5432g5glass\ngreen black black black\n02220\n03330\n00100\n.000.\n00000\n\nZZZZZZglass\ngreen black black black\n00000\n01120\n00200\n.000.\n00000\n\nXXXXglass\ngreen black black \n00000\n02220\n00100\n.000.\n00000\n\nPhone\nblack black black\n00000\n02200\n00000\n01010\n10100\n\nWWWW\nblack black\n100..\n01010\n10001\n10001\n01110\n\nWWWW2\nblack black\n100..\n01010\n10101\n10001\n01110\n\nWWWWwarning\nblack \n.....\n.....\n.....\n.....\n.....\n\nWWWWwarning2\nblack\n.....\n.....\n.....\n.....\n.....\n\n(admin)\n\nKKKK\nblack black\n00001\n00010\n00100\n10100\n01000\n\nKKKK2\nblack black\n00001\n00010\n00100\n10100\n01000\n\nKKKK3\nblack black\n00001\n00010\n00100\n10100\n01000\n\nKKKK4\nblack black\n00000\n00000\n00000\n10100\n01000\n\nWall\nblack black\n01110\n01110\n01110\n01110\n01110\n\nBadKKKK\nblack black\n10001\n01010\n00100\n01010\n10001\n\nBadKKKK2\nblack black \n10001\n01010\n00100\n01010\n10001\n\nBadKKKK3\nblack black \n10001\n01010\n00100\n01010\n10001\n\nBadKKKK4\nblack black \n10001\n01010\n00100\n01010\n10001\n\n(architecture)\n\nDoor\nblack black\n00000\n00000\n00010\n00000\n00000\n\nHousewalltop\ngreen green green black green\n33333\n44444\n01210\n01210\n01210\n\nHousewallIIIII\ngreen green green green black\n01210\n01210\n01210\n01210\n01210\n\nFlowers\ngreen black green black black black\n30035\n02103\n24200\n02001\n01003\n\nPath\nblack black\n00001\n00000\n01000\n00010\n00000\n\nPathmessage1\nblack black\n00001\n00000\n01000\n00010\n00000\n\nPathmessage2\nblack black\n00001\n00000\n01000\n00010\n00000\n\nFakeOutdoors\ngreen black\n00010\n00100\n10000\n00001\n01000\n\n=======\nLEGEND\n=======\n\n, = Outdoors \n! = LLLLL\n. = Background\n[ = Intro\n] = Intro2\n- = intro3\n_ = intro4\n* = Player\n# = Wall\n+ = MMMM\n0 = Face\n1 = LeftJJJJ\n2 = MidJJJJ\n3 = RightJJJJ\n4 = VVVV\n5 = k33k3k23\n6 = SAAAAon\n7 = UUUUU\nA = FFFFFF\nB = GGG\ne = Scoring\nF = RRRRRRQQQQQQQQion\nI = XXXXglass\nL = WWWW\nM = SSSSQQQQQQQQion\nO = DDDD\nP = CCCCC\nQ = Target\nT = Socket\nU = OOOOe \nX = KKKK\nY = Phone \nZ = Outdoortarget\n9 = tuteGGG\n& = tuteFFFFFF \n£ = tuteface\n$ = WWWWwarning\n\" = flowertrigger\n' = flowertrigger2\n% = tuteOOOOe\n{ = tuteSSSSQQQQQQQQion\n} = tuteRRRRRRQQQQQQQQion\n(outdoors)\nG = Door \nJ = Flowers\nR = Path\nK = HousewallIIIII\nN = Housewalltop\nC = pathmessage1\nD = Pathmessage2\n8 = Outdoormessage1\nS = Outdoormessage2\nW = Outdoormessage3\n\ngap = background or outdoors or path or outdoormessage2 or outdoormessage1 or outdoormessage3\n\nDDDDularities = DDDDularity or DDDDularity2 or DDDDularity3\nDDDDs = DDDD or DDDD2 or blackDDDD or blackDDDD2 or blackDDDD3 or blackDDDD4 \n\nTTTTopalypse = d123d12d12derTTTT or d123d12d12derZZZZZZ1 or d123d12d12derZZZZZZ2 or d123d12d12derZZZZZZ3\nblackGGGs = blackGGG or blackGGG2\npinkGGGs = pinkGGG or pinkGGG2\nFFFFFFs = FFFFFF or FFFFFF2 or FFFFFF3 or FFFFFF4 or FFFFFF5\nHHHHHHdGGGs = HHHHHHdGGG or HHHHHHdGGG2\nif90345if0934i90f34s = if90345if0934i90f34 or if90345if0934i90f342 or if90345if0934i90f343\nslappedGGGs = pinkGGGs or pinkGGGs or HHHHHHdGGGs\nfaces = Face or Sidefaceleft or Sidefaceright or Sidefaceup or sidefacedown or if90345if0934i90f34s or sidefaceup2\nGGGs = GGG or blackGGGs or pinkGGGs or HHHHHHdGGGs\nTTTTs = CCCCC or CCCCC2 or CCCCC3 or CCCCC4 or CCCCC5 or CCCCC6 or CCCCC7 or CCCCC8 or CCCCC9 or CCCCC10 or CCCCCa or CCCCCb or CCCCCc or CCCCCd or CCCCCe\nWWWWs = WWWW or WWWW2\n\nResults = KKKK or badKKKK or KKKK2 or badKKKK2 or KKKK2 or badKKKK2 or KKKK3 or badKKKK3 or KKKK4 or badKKKK4\nStuff = UUUUU or sAAAAon or XXXXglass or phone or socket or g5432g5glass or ZZZZZZglass or WWWWs or mess\nArchitecture = wall or door \nYYYYYYYs = OOOOe or SSSSQQQQQQQQion or RRRRRRQQQQQQQQion or g5432g5glass or ZZZZZZglass or tuteRRRRRRQQQQQQQQion or tuteSSSSQQQQQQQQion or tuteOOOOe\nscoretrack = scoring or MMMM or LLLLL or leftJJJJ or midJJJJ or rightJJJJ or target or outdoortarget\n\nEEEE = TTTTs or k33k3k23 or GGGs or DDDDs or Faces or VVVV or FFFFFFs or BBBNNNCCCCC or BBBNNNCCCCC2 or BBBNNNCCCCC3 or BBBNNNCCCCC4 or BBBNNNplayer or BBBNNNplayer2 or BBBNNNplayer3 or BBBNNNplayer4 or tuteGGG or tuteFFFFFF or tuteface \n\nAAAApedplayers = AAAApedplayer or AAAApedplayer2 or AAAApedplayer3 or AAAApedplayer4 or AAAApedplayer5 or AAAApedplayer6\n\nStudio = flowers or housewalltop or housewallIIIII \nPaths = path or pathmessage1 or pathmessage2 \n\nEverything = YYYYYYYs or stuff or architecture or studio or paths or EEEE or results or outdoors or scoretrack or player \n\n=======\nSOUNDS\n=======\n\nTTTTs move 81432307\nFFFFFFs move 30911708\nGGGs move 76441308\nDDDDs move 59578908\nk33k3k23 move 83753708\nVVVV move 88751108\nFaces move 46152509\nEEEE move 53209307\n\nAAAApedplayers move 62896704\n\nplayer cantmove 77916504\nKKKK create 97214303\nbadKKKK create 11123702\n\nSSSSQQQQQQQQion move 51210708\nRRRRRRQQQQQQQQion move 30863108\nOOOOe move 80548907\n\nstuff move 34367907\n\nEndlevel 48242503\nEndgame 9005308\nclosemessage 71913507\nstartlevel 13337700\n\n================\nCOLLISIONLAYERS\n================\nBackground, \nOutdoors, Intro, Intro2, intro3, intro4, outdoormessage1, outdoormessage2, outdoormessage3 \nPaths\nPlayer, EEEE, YYYYYYYs, Results, stuff, architecture, studio, AAAApedplayers, \nScoretrack\nDDDDularities, BBBNNNplayer, TTTTopalypse, fakeoutdoors, WWWWwarning, WWWWwarning2, flowertrigger, flowertrigger2\n======\nRULES\n======\n\n(everything that moves)\n[ > Player | EEEE ] -> [ > Player | > EEEE ]\n[ > Player | YYYYYYYs ] -> [ > Player | > YYYYYYYs ]\n[ > Player | Stuff ] -> [ > Player | > Stuff ]\n\n(disasters )\n[ DDDDularities ] -> [ randomdir DDDDularities ]\n[ everything | ... | DDDDularities ] -> [ > everything | ... | DDDDularities ]\n\n[ > everything | DDDDularity ] -> [ background | DDDDularity2 ] Message THIS IS A MESSAGE\n[ > everything | DDDDularity2 ] -> [ | DDDDularity3 ]\n[ > everything | DDDDularity3 ] -> [ > everything | DDDDularity2 ]\n\n(facesitting)\n[ > FFFFFFs | faces ] -> [ background | badKKKK ] Message THIS IS A MESSAGE\n[ > GGGs | faces ] -> [ | badKKKK ] Message THIS IS A MESSAGE\n\n(one-offs)\n[ > DDDDs | XXXXglass ] -> [ DDDDs | XXXXglass ] Message THIS IS A MESSAGE\n[ > XXXXglass | DDDD ] -> Message DISPLAY MESSAGE\n\n[ > VVVV | k33k3k23 ] -> [ | badKKKK ] Message THIS IS A MESSAGE\n[ > k33k3k23 | VVVV ] -> [ k33k3k23 | VVVV ] Message THIS IS A MESSAGE\n\n\n(CCCCC level) \n\n[ > CCCCC | tuteGGG ] -> [ | KKKK ] Message THIS IS A MESSAGE\n[ > CCCCC | tuteFFFFFF ] -> [ | KKKK ] Message THIS IS A MESSAGE\n[ > CCCCC | tuteface ] -> [ | KKKK ] Message THIS IS A MESSAGE\n\n\n(scoring)\n\n[ KKKK4 ] -> [ ]\n[ KKKK3 ] -> [ KKKK4 ]\n[ KKKK2 ] -> [ KKKK3 ]\n\n[ BadKKKK4 ] -> [ ]\n[ BadKKKK3 ] -> [ BadKKKK4 ]\n[ BadKKKK2 ] -> [ BadKKKK3 ]\n\n[ KKKK ] [ LLLLL | MMMM | Scoring ] -> [ KKKK2 ] [ LLLLL | LLLLL | MMMM ]\n[ KKKK ] [ LLLLL | MMMM | Target ] -> [ KKKK2 ] [ LLLLL | LLLLL | MMMM ]\n[ BadKKKK ] [ LLLLL | LLLLL | MMMM ] -> [BadKKKK2] [ LLLLL | MMMM | Scoring ]\n\n(dead things crumble to dust)\n[ BBBNNNCCCCC4 ] -> [ ]\n[ BBBNNNCCCCC3 ] -> [ BBBNNNCCCCC4 ]\n[ BBBNNNCCCCC2 ] -> [ BBBNNNCCCCC3 ]\n[ BBBNNNCCCCC ] -> [ BBBNNNCCCCC2 ]\n\n[ BBBNNNplayer4 ] -> [ ]\n[ BBBNNNplayer3 ] -> [ BBBNNNplayer4 ]\n[ BBBNNNplayer2 ] -> [ BBBNNNplayer3 ]\n[ BBBNNNplayer ] -> [ BBBNNNplayer2 ]\n\n\n( special PPPPP instructions for level 2 )\n\nright [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 1\nleft [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 2\nup [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 3\ndown [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 4\n\nright [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 5\nleft [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 6\nup [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 7\ndown [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 8\n\nright [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ] \nleft [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ]\nup [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ]\ndown [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ]\n\nright [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 9\nleft [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 10\nup [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 11\ndown [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 12\n\nright [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 13\nleft [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 14\nup [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 15\ndown [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 16\n\nright [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 17\nleft [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 18\nup [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 19\ndown [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 20\n\n\n(objects)\n\n[ > phone | OOOOe ] -> [ > phone | OOOOe ] Message THIS IS A MESSAGE 21\n\n\n[ > phone | RRRRRRQQQQQQQQion ] -> [ | KKKK ] Message THIS IS A MESSAGE 22\n\n[ > phone | SSSSQQQQQQQQion ] -> [ | KKKK ] Message THIS IS A MESSAGE 23\n[ > phone | DDDDs ] -> [ | KKKK ] Message THIS IS A MESSAGE 24\n\n[ > phone | TTTTs ] -> [ phone | TTTTs ] Message THIS IS A MESSAGE 25\n\n[> UUUUU | XXXXglass ] -> [ UUUUU | XXXXglass ] Message THIS IS A MESSAGE 26\n[> SAAAAon | XXXXglass ] -> [ SAAAAon | XXXXglass ] Message THIS IS A MESSAGE 27\n\n[> XXXXglass | socket ] -> [ | socket ] Message THIS IS A MESSAGE 28 \n[> g5432g5glass | socket ] -> [ | socket ] Message THIS IS A MESSAGE 29\n[> ZZZZZZglass | socket ] -> [ | socket ] Message THIS IS A MESSAGE 30\n\n[ > YYYYYYYs | phone ] -> [ | phone ] Message THIS IS A MESSAGE 31\n[ > phone | XXXXglass ] -> [ | XXXXglass ] Message THIS IS A MESSAGE 32\n\n[> TTTTs | Socket ] -> [ BBBNNNCCCCC | Socket ] Message THIS IS A MESSAGE 33\n[> TTTTs | Phone ] -> [ TTTTs | Phone ] Message THIS IS A MESSAGE 34 \n[ > TTTTs | XXXXglass ] -> [ TTTTs | XXXXglass ] Message THIS IS A MESSAGE 35\n\n[> player | k33k3k23 | socket ] -> [ | BBBNNNplayer | socket ] Message THIS IS A MESSAGE 36\n[> player | VVVV | socket ] -> [ player | VVVV | socket ] Message THIS IS A MESSAGE 37\n[> EEEE | Socket ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 38\n[> Socket | EEEE ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 39\n\n[ > player | YYYYYYYs | socket ] -> [ | BBBNNNplayer | socket ] Message THIS IS A MESSAGE 40\n\n[> Phone | FFFFFFs ] -> [ Background | FFFFFFs ] Message THIS IS A MESSAGE 41\n[> Phone | GGGs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 42\n\n[ > g5432g5glass | face ] -> [ | badKKKK ] Message THIS IS A MESSAGE 43\n[ > g5432g5glass | EEEE ] -> [ | badKKKK ] Message THIS IS A MESSAGE 44\n\n[ > ZZZZZZglass | face ] -> [ | KKKK ] Message THIS IS A MESSAGE 45\n[ > face | ZZZZZZglass ] -> [ | KKKK ] Message THIS IS A MESSAGE 46\n[ > ZZZZZZglass | FFFFFF ] -> [ | FFFFFF ] Message THIS IS A MESSAGE 47\n[ > ZZZZZZglass | GGG ] -> [ | badKKKK ] Message THIS IS A MESSAGE 48\n\n[ > XXXXglass | faces ] -> [ | faces ] Message THIS IS A MESSAGE 49\n[ > faces | XXXXglass ] -> [ faces | ] Message THIS IS A MESSAGE 50\n\nup down [ > phone | stuff ] -> [ phone | stuff ] Message THIS IS A MESSAGE 51\nleft right [ > phone | stuff ] -> [ phone | stuff ] Message THIS IS A MESSAGE 52\n\n\n\n[ > phone | face ] -> [ phone | face ] Message THIS IS A MESSAGE 53\n[ > GGGs | phone ] -> [ GGGs | phone ] Message THIS IS A MESSAGE 54\n[ > face | phone ] -> [ face | phone ] Message THIS IS A MESSAGE 55\n\n[ > UUUUU | socket ] -> [ UUUUU | socket ] Message THIS IS A MESSAGE 56\n\n\n[ > stuff | XXXXglass ] -> [ | XXXXglass ]\n[ > stuff | g5432g5glass ] -> [ | g5432g5glass ]\n[ > stuff | ZZZZZZglass ] -> [ | ZZZZZZglass ]\n\n\n( WWWW )\n\n[ AAAApedplayer6 ] -> [ player ] Message THIS IS A MESSAGE 57\n[ AAAApedplayer5 ] -> [ AAAApedplayer6 ]\n[ AAAApedplayer4 ] -> [ AAAApedplayer5 ]\n[ AAAApedplayer3 ] -> [ AAAApedplayer4 ] \n[ AAAApedplayer2 ] -> [ AAAApedplayer3 ]\n[ AAAApedplayer ] -> [ AAAApedplayer2 ] Message THIS IS A MESSAGE 58\n[ > player | WWWWs ] -> [ | < AAAApedplayer ] Message THIS IS A MESSAGE 59\n\n[ WWWWwarning ] [ WWWWwarning2 ] -> [ WWWWwarning2 ] [ WWWWwarning2 ]\n[ > player | WWWWwarning ] -> [ > player | WWWWwarning2 ] Message THIS IS A MESSAGE 60\n\nup [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 61\ndown [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 62\nup [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 63\nup [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 64\n\n[ > DDDDs | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 65\n[ > CCCCC | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 66\n[ > FFFFFFs | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 67\n[ > GGGs | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 68\n[ > k33k3k23 | WWWWs ] -> [ | badKKKK ] Message THIS IS A MESSAGE 69\n[ > VVVV | WWWWs ] -> [ | badKKKK ] Message THIS IS A MESSAGE 70\n\n\n(basic sex acts)\n\nup down [ > TTTTs | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE 71\nleft right [ > TTTTs | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE 72\n\nup [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 73\nleft [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 74\ndown [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 75\nright [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 76\n\nleft [ > FFFFFF | TTTTs ] -> [ | KKKK ] Message THIS IS A MESSAGE 77\nright [ > FFFFFF | TTTTs ] -> [ | KKKK ] \nup [ > FFFFFF | TTTTs ] -> [ | KKKK ] Message THIS IS A MESSAGE 78\ndown [ > FFFFFF | TTTTs ] -> [ | KKKK ] \n[ > TTTTs | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE 79\nright [ > FFFFFF | FFFFFF ] -> [ FFFFFF2 | FFFFFF2 ] Message THIS IS A MESSAGE 80\nleft up down [ > FFFFFF | FFFFFF ] -> [ FFFFFF2 | FFFFFF2 ]\ndown [ > FFFFFF2 | FFFFFF2 ] -> [ | KKKK ] Message THIS IS A MESSAGE 81\nleft up right [ > FFFFFF2 | FFFFFF2 ] -> [ | KKKK ]\n\n(UUUUUs) \n[ > FFFFFF3 | UUUUU ] -> [ background | KKKK ] \n[ > FFFFFFs | UUUUU ] -> [ FFFFFF3 | UUUUU ] Message THIS IS A MESSAGE 82\n\n[ > UUUUU | FFFFFFs ] -> [ background | sAAAAon ] Message THIS IS A MESSAGE 83\n\n\n[ > UUUUU | face ] -> [ UUUUU | face ] Message THIS IS A MESSAGE 84\n[ > sAAAAon | face ] -> [ | KKKK ] Message THIS IS A MESSAGE 85\n\n(sAAAAons) \n[ > sAAAAon | FFFFFFs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 86\n[ > sAAAAon | GGGs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 87\n[ > sAAAAon | DDDDs ] -> [ sAAAAon | DDDDs ] Message THIS IS A MESSAGE 88\n[ > sAAAAon | faces ] -> [ background | KKKK ] \n\n[ > FFFFFFs | sAAAAon ] -> [ background | KKKK ] \n[ > GGGs | sAAAAon ] -> [ background | KKKK ]\n[ > EEEE | sAAAAon ] -> [ EEEE | sAAAAon ]\n[ > faces | sAAAAon ] -> [ faces | sAAAAon ] Message THIS IS A MESSAGE 89\n\nup down [ > UUUUU | GGGs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 90\nleft right [ > UUUUU | GGGs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 91 \n\n[ > stuff | stuff | stuff | stuff ] -> [ stuff| stuff | stuff | stuff ] Message THIS IS A MESSAGE 92\n\n\n(the k33k3k23's jobs)\n\n[ > k33k3k23 | FFFFFF ] -> [ k33k3k23 | FFFFFF2 ] Message THIS IS A MESSAGE 93\n[ > k33k3k23 | FFFFFF2 ] -> [ k33k3k23 | FFFFFF3 ] \n[ > k33k3k23 | FFFFFF3 ] -> [ k33k3k23 | FFFFFF4 ] \n[ > k33k3k23 | FFFFFF4 ] -> [ k33k3k23 | FFFFFF5 ]\nup [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 94\ndown [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 95\nleft [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 96\nright [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 97\n\n[ > k33k3k23 | k33k3k23 ] -> [ k33k3k23 | k33k3k23 ] Message THIS IS A MESSAGE 98\nleft down [ > VVVV | VVVV ] -> [ VVVV | VVVV ] Message THIS IS A MESSAGE 99\nup right [ > VVVV | VVVV ] -> [ VVVV | VVVV ]\n\n(FFFFFFs)\n\n[ > FFFFFFs | GGG ] -> [ FFFFFFs | GGG ] Message THIS IS A MESSAGE 100\n[ > FFFFFFs | DDDD ] -> [ FFFFFFs | DDDD ] Message THIS IS A MESSAGE q1\n\n(piss)\n\n[ > OOOOe | TTTTs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q2\n[ > OOOOe | FFFFFFs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q3\n[ > OOOOe | SSSSQQQQQQQQion ] -> [ Background | BadKKKK ] \n[ > OOOOe | RRRRRRQQQQQQQQion ] -> [ Background | OOOOe ] Message THIS IS A MESSAGE q4\n[ > OOOOe | Face ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q5\n[ > OOOOe | k33k3k23 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q6\n[ > OOOOe | VVVV ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q7\n[ > OOOOe | GGGs ] -> [ Background | BadKKKK ]\n\n[ > OOOOe | OOOOe ] -> [ | OOOOe ] \n\n[ > OOOOe | EEEE ] -> [ Background | BadKKKK ]\n[ > RRRRRRQQQQQQQQion | EEEE ] -> [ Background | BadKKKK ]\n\n[ > RRRRRRQQQQQQQQion | SSSSQQQQQQQQion ] -> [ | BadKKKK ] Message THIS IS A MESSAGE q8\n[ > SSSSQQQQQQQQion | RRRRRRQQQQQQQQion ] -> [ | KKKK ] Message THIS IS A MESSAGE q9\n\n[ > TTTTs | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q10\n[ > FFFFFFs | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q11\n[ > SSSSQQQQQQQQion | OOOOe ] -> [ Background | OOOOe ] Message THIS IS A MESSAGE q12\n[ > RRRRRRQQQQQQQQion | OOOOe ] -> [ Background | OOOOe ] Message THIS IS A MESSAGE q13\n[ > Face | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q14\n[ > k33k3k23 | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q15\n[ > VVVV | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q16\n[ > GGG | OOOOe ] -> [ Background | BadKKKK ] \n\n(complicated things with glasses) \n\n[ > OOOOe | XXXXglass ] -> [ | g5432g5glass ]\n[ > RRRRRRQQQQQQQQion | XXXXglass ] -> [ | g5432g5glass ]\n[ > SSSSQQQQQQQQion | XXXXglass ] -> [ | ZZZZZZglass ]\n\n[ > OOOOe | ZZZZZZglass ] -> [ | g5432g5glass ]\n[ > RRRRRRQQQQQQQQion | ZZZZZZglass ] -> [ | g5432g5glass ]\n\n[ > SSSSQQQQQQQQion | g5432g5glass ] -> [ | ZZZZZZglass ]\n\n\n(DDDDs)\n\n[ > DDDDs | TTTTs ] -> [ DDDDs | TTTTs ] Message THIS IS A MESSAGE q17\n\n[ > DDDDs | FFFFFFs ] -> [ DDDDs | FFFFFF ] Message THIS IS A MESSAGE q18\n[ > DDDDs | SSSSQQQQQQQQion ] -> [ DDDD | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q19\n[ > DDDDs | Face ] -> [ DDDDs | Face ] Message THIS IS A MESSAGE q20\n[ > DDDDs | k33k3k23 ] -> [ DDDDs | k33k3k23 ] Message THIS IS A MESSAGE q21\n[ > DDDDs | GGG ] -> [ DDDDs | GGG ] Message THIS IS A MESSAGE q22\n\n[ > FFFFFFs | DDDDs ] -> [ FFFFFFs | DDDD ]\n[ > SSSSQQQQQQQQion | DDDDs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q23\n[ > SSSSQQQQQQQQion | Face ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q24\n\n[ > Face | DDDDs ] -> [ Face | DDDDs ] Message THIS IS A MESSAGE q25\n[ > DDDDs | Face | DDDDs ] -> [ DDDDs | Face | DDDDs ] Message THIS IS A MESSAGE q26\n\n[ > VVVV | DDDDs ] -> [ Background | BadKKKK ]\n[ > GGG | DDDDs ] -> [ GGG | DDDDs ] Message THIS IS A MESSAGE q27\n\n[ DDDDs | DDDDs | DDDDS | DDDDs | DDDDs | DDDDs | DDDDs ] -> [ Background | Background | Background | DDDDularity | Background | Background | Background ] Message THIS IS A MESSAGE q29 \n[ > DDDDs | DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q29\n[ > DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q30\n[ > DDDDs | DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q31\n[ > DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q32\n[ > DDDDs | DDDDs ] -> [ DDDDs | DDDDs ] Message THIS IS A MESSAGE q33\n\n(kissing)\nright [ > Faces | Faces ] -> [ Sidefaceleft | Sidefaceright ] Message THIS IS A MESSAGE q34\nleft [ > Faces | Faces ] -> [ Sidefaceright | Sidefaceleft ] Message THIS IS A MESSAGE q35\nup [ > Faces | Faces ] -> [ Sidefaceup | Sidefacedown ] Message THIS IS A MESSAGE q36\ndown [ > Faces | Faces ] -> [ Sidefacedown | Sidefaceup ] Message\n\n[ > GGGs | Outdoors ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q38\n\nup down [ > TTTTs | GGGs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q39\nleft [ > TTTTs | GGGs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q40\nright [ > TTTTs | GGGs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q41\n[ > GGGs | TTTTs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q42\n\n\n[ > k33k3k23 | Outdoors ] -> [ > k33k3k23 | > Outdoors ]\n[ > FFFFFFs | Outdoors ] -> [ Background | BadKKKK ]\n[ > TTTTs | Outdoors ] -> [ Background | BadKKKK ]\n[ > SSSSQQQQQQQQion | Outdoors ] -> [ Background | BadKKKK ]\n[ > RRRRRRQQQQQQQQion | Outdoors ] -> [ Background | BadKKKK ]\n[ > OOOOe | Outdoors ] -> [ | Outdoors ] Message THIS IS A MESSAGE q43\n\n[ > FFFFFFs | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q44\n[ > TTTTs | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q45\n[ > SSSSQQQQQQQQion | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q46\n[ > RRRRRRQQQQQQQQion | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q47\n[ > OOOOe | Path | Path | Path ] -> [ > OOOOe | Path | Path | Path ] Message THIS IS A MESSAGE q48\n\n\n[ > Outdoors | Faces | Faces ] -> [ Outdoors | Faces | Faces ] Message THIS IS A MESSAGE q49\n\n\n(smacks and slaps)\nup down [ > k33k3k23 | GGG ] -> [ k33k3k23 | blackGGG ] Message THIS IS A MESSAGE q50\nleft right [ > k33k3k23 | GGG ] -> [ k33k3k23 | blackGGG ] Message THIS IS A MESSAGE q51\n[ > k33k3k23 | blackGGGs ] -> [k33k3k23 | blackGGG ] Message THIS IS A MESSAGE q52\n[ > k33k3k23 | blackGGGs ] -> [k33k3k23 | HHHHHHdGGG ] Message THIS IS A MESSAGE q53\n[ > k33k3k23 | HHHHHHdGGGs ] -> [Background | BadKKKK ] Message THIS IS A MESSAGE q54\n\n[> k33k3k23 | if90345if0934i90f34s ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q55\n[ > k33k3k23 | Faces ] -> [ k33k3k23 | if90345if0934i90f34 ] Message THIS IS A MESSAGE q56\n\n[> Faces | k33k3k23 ] -> [ Face | k33k3k23 ] Message THIS IS A MESSAGE q57\n\n[ > k33k3k23 | DDDD ] -> [ k33k3k23 | DDDD2 ] Message THIS IS A MESSAGE q58\n[ > k33k3k23 | DDDD2 ] -> [ k33k3k23 | blackDDDD4 ] Message THIS IS A MESSAGE q59\n[ > k33k3k23 | blackDDDD ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q60\n[ > k33k3k23 | blackDDDD2 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q61\n[ > k33k3k23 | blackDDDD3 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q62\n[ > k33k3k23 | blackDDDD4 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q63\n\n(VVVVing and punching)\n\n[> VVVV | Faces ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q64\n[ > VVVV | FFFFFFs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q65\n[ > VVVV | GGGs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q66\n\n[ > EEEE | VVVV ] -> [ EEEE | VVVV ] \n\n(remaining CCCCCes)\n[ > CCCCCA | CCCCCA ] -> [ CCCCCB | CCCCCB ]\n[ > CCCCCB | CCCCCB ] -> [ CCCCCC | CCCCCC ]\n[ > CCCCCC | CCCCCC ] -> [ CCCCCD | CCCCCD ]\n[ > CCCCCD | CCCCCD ] -> [ CCCCCE | CCCCCE ]\n[ > CCCCCE | CCCCCE ] -> [ | KKKK ]\n[ > TTTTs | TTTTs ] -> [ CCCCCA | CCCCCA ] Message THIS IS A MESSAGE q77\n\n[ > k33k3k23 | CCCCC ] -> [ k33k3k23 | CCCCC3 ] Message THIS IS A MESSAGE q78\n[ > k33k3k23 | CCCCC2 ] -> [ k33k3k23 | CCCCC5 ] Message THIS IS A MESSAGE q79\n[ > k33k3k23 | CCCCC3 ] -> [ k33k3k23 | CCCCC5 ] Message THIS IS A MESSAGE q80\n[ > k33k3k23 | CCCCC4 ] -> [ k33k3k23 | CCCCC7 ] Message THIS IS A MESSAGE q81\n[ > k33k3k23 | CCCCC5 ] -> [ k33k3k23 | CCCCC7 ] Message THIS IS A MESSAGE q82\n[ > k33k3k23 | CCCCC6 ] -> [ k33k3k23 | CCCCC9 ] Message THIS IS A MESSAGE q83\n[ > k33k3k23 | CCCCC7 ] -> [ k33k3k23 | CCCCC9 ] Message THIS IS A MESSAGE q84\n[ > k33k3k23 | CCCCC8 ] -> [ k33k3k23 | CCCCC10 ]\n[ > k33k3k23 | CCCCC9 ] -> [ background | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q85\n[ > k33k3k23 | CCCCC10 ] -> [ background | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q86\n\n[ > TTTTs | k33k3k23 ] -> [ Background | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q87\n\nright [ > Faces | FFFFFF ] -> [ sidefaceleft | FFFFFF2 ] Message THIS IS A MESSAGE q88\nleft [ > Faces | FFFFFF ] -> [ sidefaceright | FFFFFF2 ] Message THIS IS A MESSAGE q89\nup [ > faces | FFFFFF ] -> [ sidefaceup | FFFFFF2 ] Message THIS IS A MESSAGE q90\ndown [ > faces | FFFFFF ] -> [ sidefacedown | FFFFFF2 ] Message THIS IS A MESSAGE q91\n\n\n[ > Faces | FFFFFF2 ] -> [ Faces | FFFFFF3 ] \n[ > Faces | FFFFFF3 ] -> [ Faces | FFFFFF4 ]\n[ > Faces | FFFFFFs ] -> [ | KKKK ] \n[ > Faces | SSSSQQQQQQQQion ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 101\n\n[ > VVVV | GGG ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 102\n\n[ > CCCCC | DDDDs ] -> [ CCCCC | DDDDs ] Message THIS IS A MESSAGE\n[ > DDDDs | CCCCC | DDDDs ] -> [ DDDDs | SSSSQQQQQQQQion | DDDDs ] Message THIS IS A MESSAGE 103\n[ > CCCCC | DDDDs | DDDDs ] -> [ KKKK | | ] Message THIS IS A MESSAGE.104\n\n[ > CCCCC | EEEE ] -> [ CCCCC | EEEE ] Message THIS IS A MESSAGE.105\n[ > CCCCC | stuff ] -> [ CCCCC | stuff ] Message THIS IS A MESSAGE.106\n[ > stuff | CCCCC ] -> [ stuff | CCCCC ] Message THIS IS A MESSAGE.107\n\n( slaps fade )\n[ if90345if0934i90f343 ] -> [ face ]\n[ if90345if0934i90f342 ] -> [ if90345if0934i90f343 ]\n[ if90345if0934i90f34 ] -> [ if90345if0934i90f342 ]\n\n[ blackGGG2 ] -> [ GGG ]\n[ blackGGG ] -> [ blackGGG2 ]\n\n[ blackGGG2 ] -> [ blackGGG ]\n[ blackGGG ] -> [ blackGGG2 ]\n\n[ HHHHHHdGGG2 ] -> [ blackGGG ]\n[ HHHHHHdGGG ] -> [ HHHHHHdGGG2 ]\n\n[ blackDDDD2 ] -> [ DDDD ]\n[ blackDDDD3 ] -> [ blackDDDD2 ]\n[ blackDDDD4 ] -> [ blackDDDD3 ] \n\n(erections too)\n[ CCCCC2 ] -> [ CCCCC ]\n[ CCCCC3 ] -> [ CCCCC2 ]\n[ CCCCC4 ] -> [ CCCCC3 ]\n[ CCCCC5 ] -> [ CCCCC4 ]\n[ CCCCC6 ] -> [ CCCCC5 ]\n[ CCCCC7 ] -> [ CCCCC6 ]\n[ CCCCC8 ] -> [ CCCCC7 ]\n[ CCCCC9 ] -> [ CCCCC8 ]\n[ CCCCC10 ] -> [ CCCCC9 ]\n\n\n( faces and EEEE parts )\nright [ > Faces | GGGs ] -> [ Sidefaceleft | GGGs ]\nleft [ > Faces | GGGs ] -> [ Sidefaceright | GGGs ]\nup [ > sidefaceup2 | GGGs ] -> [ | KKKK ] Message THIS IS A MESSAGE.108\nup [ > Faces | GGGs ] -> [ Sidefaceup2 | GGGs ] Message THIS IS A MESSAGE.109\ndown [ > Faces | GGGs ] -> [ Sidefacedown | GGGs ] \n\n\nright [ > Faces | DDDDs ] -> [ Sidefaceleft | DDDDs ]\nleft [ > Faces | DDDDs ] -> [ Sidefaceright | DDDDs ]\nup [ > Faces | DDDDs ] -> [ Sidefaceup | DDDDs ] \ndown [ > Faces | DDDDs ] -> [ Sidefacedown | DDDDs ]\n\n[ > DDDDs | faces | DDDDs ] -> [ DDDDs | faces | DDDDs ] Message THIS IS A MESSAGE.110\n\nright [ > Faces | TTTTs ] -> [ Sidefaceleft | TTTTs ]\nleft [ > Faces | TTTTs ] -> [ Sidefaceright | TTTTs ]\nup [ > Faces | TTTTs ] -> [ Sidefaceup | TTTTs ] Message THIS IS A MESSAGE.111\ndown [ > Faces | TTTTs ] -> [ Sidefacedown | TTTTs ] Message THIS IS A MESSAGE.112\n\n[ > Sidefacedown | TTTTs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE.113\n\n(intro level)\nright [ > player | housewalltop ] -> [ player | housewalltop ] Message THIS IS A MESSAGE.114\nleft [ > player | housewalltop ] -> [ player | housewalltop ] Message THIS IS A MESSAGE.115\nright [ > player | housewallIIIII ] -> [ player | housewallIIIII ] Message THIS IS A MESSAGE.116\nleft [ > player | housewallIIIII ] -> [ player | housewallIIIII ] Message THIS IS A MESSAGE.117\n\n[ flowertrigger ] [> player | flowers ] -> [flowertrigger2] [ player | flowers ] Message THIS IS A MESSAGE.118\n[ flowertrigger2 ] [> player | flowers ] -> [ ] [ player | flowers ] Message THIS IS A MESSAGE.119\n\n[ > player | pathmessage1 ] -> [ > player | path ] Message THIS IS A MESSAGE.120\n[ > player | pathmessage2 ] -> [ > player | path ] Message THIS IS A MESSAGE.121\n\n[ outdoortarget ] [ > player | door ] -> [ outdoors ] [ > player | door ]\n\n(explanations)\n[ > player | intro ] -> [ > player | background ] Message THIS IS A MESSAGE.122\n[ > player | intro2 ] -> [ > player | background ] Message THIS IS A MESSAGE.123\n[ > player | intro3 ] -> [ > player | background ] Message THIS IS A MESSAGE.124\n[ > player | intro4 ] -> [ > player | background ] Message THIS IS A MESSAGE.125\n\n[ > player | outdoormessage1 ] -> [ > player | outdoors ] Message THIS IS A MESSAGE.126\n[ > player | outdoormessage2 ] -> [ > player | outdoors ] Message THIS IS A MESSAGE.127\n[ > player | outdoormessage3 ] -> [ > player | outdoors ] Message THIS IS A MESSAGE.128\n\n\n\n( ZZZZZZ, wanking, CCCCCes otherwise unaddressed ) \n[ > SSSSQQQQQQQQion | GGGs ] -> [ | KKKK ] Message THIS IS A MESSAGE.129\n[ > SSSSQQQQQQQQion | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE.130\nup down [ > SSSSQQQQQQQQion | faces ] -> [ | KKKK ] Message THIS IS A MESSAGE.131\nleft right [ > SSSSQQQQQQQQion | faces ] -> [ | KKKK ] Message THIS IS A MESSAGE.132\n[ > SSSSQQQQQQQQion | EEEE ] -> [ SSSSQQQQQQQQion | EEEE ] Message THIS IS A MESSAGE.133\n\n[ > CCCCC | VVVV ] -> [ | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.134\n[ > VVVV | CCCCC ] -> [ | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.135\n\n\n( TTTTopalypse )\n[ SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion ] -> [ d123d12d12derTTTT | d123d12d12derTTTT | d123d12d12derTTTT | d123d12d12derTTTT ] Message THIS IS A MESSAGE.136\n[ > SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion ] -> [ SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.137\n[ > SSSSQQQQQQQQion | SSSSQQQQQQQQion ] -> [ SSSSQQQQQQQQion | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.138\n\n[ d123d12d12derZZZZZZ2 ] -> [ d123d12d12derZZZZZZ3 ]\n[ d123d12d12derZZZZZZ1 ] -> [ d123d12d12derZZZZZZ2 ]\n\n[ | d123d12d12derZZZZZZ3 ] -> [ d123d12d12derZZZZZZ1 | d123d12d12derZZZZZZ3 ] \n[ | d123d12d12derZZZZZZ2 ] -> [ d123d12d12derZZZZZZ1 | d123d12d12derZZZZZZ2 ]\n[ | d123d12d12derTTTT ] -> [ d123d12d12derZZZZZZ1 | d123d12d12derTTTT ]\n\n[ d123d12d12derTTTT | ] -> [ d123d12d12derTTTT | d123d12d12derZZZZZZ1 ] \n\n(tuteYYYYYYYs) \n\n[ RRRRRRQQQQQQQQion ] [ tuteRRRRRRQQQQQQQQion ] -> [ RRRRRRQQQQQQQQion ] [ RRRRRRQQQQQQQQion] \n[ SSSSQQQQQQQQion ] [ tuteSSSSQQQQQQQQion ] -> [ SSSSQQQQQQQQion ] [ SSSSQQQQQQQQion ]\n[ OOOOe ] [ tuteOOOOe ] -> [ OOOOe ] [ OOOOe ]\n\n[ > player | tuteOOOOe ] -> [ > player | OOOOe ] Message THIS IS A MESSAGE.139\n[ > player | tuteSSSSQQQQQQQQion ] -> [ > player | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.140\n[ > player | tuteRRRRRRQQQQQQQQion ] -> [ > player | RRRRRRQQQQQQQQion ] Message THIS IS A MESSAGE.141\n \n[ > XXXXglass | YYYYYYYs ] -> [ XXXXglass | YYYYYYYs ] Message THIS IS A MESSAGE.142\n\n[ > YYYYYYYs | WWWW ] -> [ | WWWW ] Message THIS IS A MESSAGE.143\n\n[ > phone | EEEE ] -> [ > phone | EEEE ] Message THIS IS A MESSAGE.144\n\n[ > GGGs | GGGs ] -> [ GGGs | GGGs ] Message THIS IS A MESSAGE.145\n[ > GGGs | GGGs | GGGs ] -> [ GGGs | GGGs | GGGs ] Message THIS IS A MESSAGE.146\n[ > GGGs | GGGs | GGGs| GGGs ] -> [ GGGs | GGGs | GGGs | GGGs ] Message THIS IS A MESSAGE.147\n[ > GGGs | GGGs | GGGs | GGGs| GGGs ] -> [ GGGs | GGGs | GGGs | GGGs | GGGs ] Message THIS IS A MESSAGE.148\n\n==============\nWINCONDITIONS\n==============\n\nNo Target \nno outdoortarget \n\n=======\nLEVELS\n=======\n\nMessage AAAw1\n\nZJJ,NNNNNNNNN,JJJ\nJ,,,KKKKGKKKK,,,,\nJ,,,,,,JRJ,,,,,,,\nJ,,,,,,JRJJJ,,,,,\n,,,,,,,JDRRRJ,,,,\n,,,8,,,,JJJCRJ,,J\n,,,,,,,,,,JJRJ,,J\n,,,JJ,,,,,,,RJ*,J\n\",,,JJ,,,,,,R,,,,\n\n\nMessage AAAw2\n\n#eQe##I#T#9#Y#£#&#\n#eee#.............\n#eee#......P......\n#e+e#...P.....P...\n#e!e#......[......\n#e!e#######*######\n#123#,,,,J,R,,,,,,\n\nMessage AAAw3\n#eQe#..O...OO...O.\n#eee#..O.O..O..O..\n#e+e#.............\n#e!e#.I..%...}..{.\n#e!e#.............\n#e!e#.Y..%...}..{.\n#e!e#......]......\n#e!e#######*######\n#123#,,,,J,R,,,,,,\n\n\n\nMessage AAAw4\n\n#eQe#.....B.B.....\n#eee#.0.P.....A.A.\n#eee#.....5.5.....\n#eee#.O.4..5..5.P.\n#e+e#.............\n#e!e#..5..4.4..5..\n#e!e#......-......\n#e!e#######*######\n#e!e#,,,,J,R,,,,,,\n#123#,,S,,,R,J,J,,\n\n\nMessage AAAw5\n\n#eQe#.............\n#eee#.0..T...7..5.\n#eee#......M.$....\n#e+e#.B..I..$L$.A.\n#e!e#......F.$....\n#e!e#.O..Y...4..P.\n#e!e#.............\n#e!e#######*######\n#e!e#,,,,J,R,,,,,,\n#123#,,S,,,R,J,J,,\n\nMessage AAAw6\n\n#eQe#.....A.O...P.B.....\n#eee#.M.5..I..T..B..A.P.\n#eee#..U.....5.P.....A..\n#eee#.0.O..M..F..4..0.5.\n#eee#..I..L.......P..O..\n#eee#.A.U..7..O..P..0.T.\n#eee#..7.....4.5.....B..\n#eee#.P.Y..P..B..0..O.I.\n#e+e#........._.........\n#e!e##########*#########\n#e!e#,,,,,,,J,R,,,,,,,,,\n#e!e#,,,W,,,,,R,J,J,,,,,\n#123#,,,,,,,,JRRRRJ,,,,,\n\nMessage AAAw7\n\n\n", [0, 0, 0, 3, 0, 1, 1, 1, 2, 2, 2, 1, 0, 0, 3, 3, 3, 3, 2, 3, 3, 0, 0, 3, 0, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 0, 3, 3, 2, 3, 0, 0, 1, 1, 1, 0, 0, 3, 3], "background wall:0,0,0,0,0,0,0,background scoring:1,1,1,1,1,1,background leftjjjj:2,background target:3,1,1,background mmmm:4,\nbackground lllll:5,5,background midjjjj:6,1,1,1,1,1,1,background rightjjjj:7,0,0,0,0,0,0,0,0,\nbackground:8,8,8,8,0,background outdoors:9,background xxxxglass:10,8,8,8,8,0,9,0,background player:11,8,8,8,\n0,9,background socket:12,background ccccca:13,8,8,8,0,9,0,13,background cccccc:14,8,8,0,background flowers:15,background tuteggg:16,8,\n8,8,8,0,9,0,8,8,8,8,8,background path:17,background phone:18,8,8,8,8,0,\n9,0,8,8,8,8,0,9,background tuteface:19,8,8,8,8,0,9,0,8,8,\n8,8,0,9,background tuteffffff:20,8,8,8,8,0,9,0,8,8,8,8,0,9,\n", 3, "1645471800404.333"] ], [ `gallery: swap bot`, - ["title SwapBot\nauthor John M. Williams\nhomepage gate.itch.io\n\nrun_rules_on_level_start\nnorepeat_action\nagain_interval 0.05\n\n========\nOBJECTS\n========\n\nBackground\nGreen\n\nTrapDoor\nGreen Black\n00000\n01010\n00000\n01010\n00000\n\nHoleNormal\nBlack\n \nHoleTop\nBlack #282117\n11111\n00000\n00000\n00000\n00000\n\nSelected\nYellow\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\nCollectable\nYellow White\n.....\n..0..\n.000.\n..0..\n.....\n\nPasteTarget\nBlack\n\nDoor1\nRed DarkRed\n00000\n01010\n00000\n01010\n00000\n\nDoor1Down\nRed\n00000\n0...0\n0...0\n0...0\n00000\n\nDoor2\nBlue DarkBlue\n00000\n01010\n00000\n01010\n00000\n\nDoor2Down\nBlue\n00000\n0...0\n0...0\n0...0\n00000\n\nDoor3\nOrange Brown\n00000\n01010\n00000\n01010\n00000\n\nDoor3Down\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\nKey1\nRed Grey\n.....\n.100.\n.100.\n.100.\n.....\n\nKey2\nBlue Grey\n.....\n.100.\n.100.\n.100.\n.....\n\nKey3\nOrange Grey\n.....\n.100.\n.100.\n.100.\n.....\n\nKeyNoneMan\nWhite DarkGrey Yellow\n.000.\n0.2.0\n0...0\n10001\n.111.\n\nKey1Man\nRed DarkRed\n.000.\n0.0.0\n0...0\n10001\n.111.\n\nKey2Man\nBlue DarkBlue\n.000.\n0.0.0\n0...0\n10001\n.111.\n\nKey3Man\nOrange Brown\n.000.\n0.0.0\n0...0\n10001\n.111.\n\nUpMan\nGray White DarkGrey Yellow\n.111.\n00.00\n00200\n20002\n.222.\n\nDownMan\nGray White DarkGrey Yellow\n.000.\n00.00\n00200\n21112\n.222.\n\nLeftMan\nGray White DarkGrey Yellow\n.000.\n10.00\n10200\n20002\n.222.\n\nRightMan\nGray White DarkGrey Yellow\n.000.\n00.01\n00201\n20002\n.222.\n\nTeleportMan\nPurple\n.000.\n00000\n00000\n00000\n.000.\n\nTeleportMan2\nPurple\n.000.\n00000\n00000\n00000\n.000.\n\nTeleportMan3\nPurple\n.000.\n00000\n00000\n00000\n.000.\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTargetTest\nBlack\n\nTargetOn\nYellow\n.....\n.000.\n.0.0.\n.000.\n.....\n\nMagic\nPurple Grey DarkGrey\n.....\n.1.1.\n.222.\n.000.\n.000.\n\nMagicBar\nPurple\n.....\n...0.\n..0..\n...0.\n..0..\n\nMagicReplace\nPurple\n\nSwapAnim1\nPurple\n\nSwapAnim2\nPurple\n00000\n00000\n00.00\n00000\n00000\n\nSwapAnim3\nPurple\n00000\n00.00\n0...0\n00.00\n00000\n\nSwapAnim4\nPurple\n00.00\n0...0\n.....\n0...0\n00.00\n\nSwapAnim5\nPurple\n0...0\n.....\n.....\n.....\n0...0\n\nTeleportBeamTop\nPurple\n.....\n..0..\n.000.\n.000.\n.000.\n\nTeleportBeam\nPurple\n.000.\n.000.\n.000.\n.000.\n.000.\n\nTeleportBeamBottom\nPurple\n.000.\n.000.\n.000.\n..0..\n.....\n\nInfinitePower\nTransparent\n\nTempAnim\nTransparent\n\nMagicEnd\nTransparent\n\nCastPaste\nBlack\n\nNoSelected\nBlack\n\nDidNotMove\nBlack\n\nWallNormal\nDarkGreen Darkblue\n00000\n00000\n00000\n00000\n00000\n \nWallBottom\nDarkGreen Darkblue\n00000\n00000\n00000\n00000\n11111\n\nOne\nDarkblue\n...0.\n..00.\n...0.\n...0.\n..000\n\nTwo\nDarkblue\n.000.\n....0\n..00.\n.0...\n.0000\n\nThree\nDarkblue\n.000.\n....0\n..000\n....0\n.000.\n\nFour\nDarkblue\n.0..0\n.0..0\n.0000\n....0\n....0\n\nFive\nDarkblue\n.0000\n.0...\n.000.\n....0\n.000.\n\nSix\nDarkblue\n..00.\n.0...\n.000.\n.0..0\n..00.\n\nSeven\nDarkblue\n.0000\n....0\n...0.\n..0..\n.0...\n\nEight\nDarkblue\n..00.\n.0..0\n..00.\n.0..0\n..00.\n\nNine\nDarkblue\n..00.\n.0..0\n..000\n....0\n..00.\n\nZero\nDarkblue\n..00.\n.0..0\n.0..0\n.0..0\n..00.\n\n=======\nLEGEND\n=======\n\nWall = WallNormal or WallBottom\nBlackBackground = HoleNormal or HoleTop\nHole = BlackBackground\n\n. = Background\n# = WallNormal\nT = Target\nP = DownMan and KeyNoneMan\n* = Collectable\nM = Magic\nE = MagicReplace and HoleNormal\nB = HoleNormal\nF = TrapDoor\n\nU = InfinitePower and E\n\nQ = Key1\nW = Door1\n\nA = Key2\nS = Door2\n\nZ = Key3\nX = Door3\n\n1 = One and WallNormal\n2 = Two and WallNormal\n3 = Three and WallNormal\n4 = Four and WallNormal\n5 = Five and WallNormal\n6 = Six and WallNormal\n7 = Seven and WallNormal\n8 = Eight and WallNormal\n9 = Nine and WallNormal\n0 = Zero and WallNormal\n\nPlayer = UpMan or DownMan or LeftMan or RightMan\nMan = UpMan or DownMan or LeftMan or RightMan\nBlock = BlackBackground\n\nKeyMan = Key1Man or Key2Man or Key3Man or KeyNoneMan\nKey = Key1 or Key2 or Key3\nKeyDoor = Door1 or Door2 or Door3\nDoorDown = Door1Down or Door2Down or Door3Down\n\nNumbers = Zero or One or Two or Three or Four or Five or Six or Seven or Eight or Nine\n\nCopyable = Wall or Target or TargetOn or Magic or Player or Collectable or Key or KeyDoor or TrapDoor or Numbers or DoorDown\n\nSwapAnim = SwapAnim1 or SwapAnim2 or SwapAnim3 or SwapAnim4 or SwapAnim5\n\nTeleportAnim = TeleportBeamTop or TeleportBeam or TeleportBeamBottom or TeleportMan or TeleportMan2 or TeleportMan3\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBlackBackground\nTarget, TargetTest, TargetOn, KeyDoor, DoorDown, Key, Trapdoor\nKeyMan\nPlayer, Wall\nMagic, Collectable, Numbers\nMagicEnd, MagicReplace\nMagicBar, InfinitePower\nCastPaste\nNoSelected, PasteTarget\nDidNotMove\nSelected\nSwapAnim, TeleportAnim, TempAnim\n\n======\nRULES\n======\n\n(SetupSpellIcons)\n\n[Player] -> [Player DidNotMove]\n[MagicReplace] -> [MagicEnd]\n\n(Player Orientation)\n[ up Man no UpMan ] -> [ up UpMan ]\n[ down Man no DownMan ] -> [ down DownMan ]\n[ left Man no LeftMan ] -> [ left LeftMan ]\n[ right Man no RightMan ] -> [ right RightMan ]\n\n(Move crates)\n[ > Man | Block] -> [Man | Block]\n\n(Door collision)\n[ > Man no Key1Man | Door1 ] -> [ Man | Door1]\n[ > Man no Key2Man | Door2 ] -> [ Man | Door2]\n[ > Man no Key3Man | Door3 ] -> [ Man | Door3]\n\n(Put spell on player based on magic)\n\nup [action UpMan | Selected] -> [UpMan | ]\ndown [action DownMan | Selected] -> [DownMan | ]\nleft [action LeftMan | Selected] -> [LeftMan | ]\nright [action RightMan | Selected] -> [RightMan | ]\n\n[Man] -> [Man noSelected]\n[Selected] [NoSelected] -> [Selected] []\n\nup [action UpMan noSelected|no BlackBackground] -> [UpMan | Selected]\ndown [action DownMan noSelected|no BlackBackground] -> [DownMan | Selected]\nleft [action LeftMan noSelected|no BlackBackground] -> [LeftMan | Selected]\nright [action RightMan noSelected|no BlackBackground] -> [RightMan | Selected]\n\n[NoSelected] -> []\n\nup [action Man] [InfinitePower] [Selected] -> [Man CastPaste] [InfinitePower] [Selected]\nup [action Man] [MagicBar | no MagicBar] [Selected] -> [Man CastPaste] [|] [Selected]\n\n(Swap Anim)\n[SwapAnim5] -> [] again\n[SwapAnim4] -> [SwapAnim5] again\n[SwapAnim3] -> [SwapAnim4] again\n[SwapAnim2] -> [SwapAnim3] again\n[SwapAnim1] -> [SwapAnim2] again\n\n(Cast Paste)\n\nup [UpMan CastPaste | no BlackBackground] -> [UpMan | PasteTarget]\ndown [DownMan CastPaste | no BlackBackground] -> [DownMan | PasteTarget]\nleft [LeftMan CastPaste | no BlackBackground] -> [LeftMan | PasteTarget]\nright [RightMan CastPaste | no BlackBackground] -> [RightMan | PasteTarget]\n\n[Man CastPaste] -> cancel\n\n[PasteTarget Copyable] [MagicEnd] -> [PasteTarget] [MagicEnd Copyable]\n[PasteTarget] [Selected Copyable] -> [PasteTarget Copyable] [Selected]\n[MagicEnd Copyable] [Selected] -> [MagicEnd] [Selected Copyable]\n[PasteTarget] [Selected] [DidNotMove] -> [SwapAnim1] [SwapAnim1] [] again\n\n(Handle picking up magic and magic bar)\nlate [Player Collectable] -> [Player]\nlate [Player Magic] [MagicEnd no MagicBar] -> [Player] [MagicEnd MagicBar]\nlate up [Player Magic] [MagicBar | no MagicBar] -> [Player] [MagicBar | MagicBar]\n\n(Handle holding Keys)\n\nlate [Player no KeyMan] [KeyMan] -> [Player KeyMan] []\n\nlate [Player Key1] -> [Player Key1Man]\nlate [Player Key2] -> [Player Key2Man]\nlate [Player Key3] -> [Player Key3Man]\n\n(Trapdoor)\nlate [TrapDoor DidNotMove no Player] -> [HoleNormal DidNotMove]\nlate [Blackbackground Selected] -> [BlackBackground]\n\n(Target)\nlate [Collectable] [Target] -> [Collectable] [TargetTest]\nlate [Target] -> [TargetOn]\nlate [TargetTest] -> [Target]\n\n(clean up)\nlate [DidNotMove] -> []\n\n(Pretty Doors)\nlate [Door1 Player] -> [Door1Down Player]\nlate [Door2 Player] -> [Door2Down Player]\nlate [Door3 Player] -> [Door3Down Player]\n\nlate [Door1Down no Player] -> [Door1]\nlate [Door2Down no Player] -> [Door2]\nlate [Door3Down no Player] -> [Door3]\n\n(Pretty Walls)\nlate Down [ WallNormal | no Wall ] -> [ WallBottom | ]\nlate Down [ WallBottom | Wall ] -> [ WallNormal | Wall ]\n\n(PrettyHoles)\n \nlate Up [ HoleNormal | no Hole ] -> [ HoleTop | ]\nlate Up [ HoleTop | Hole ] -> [ HoleNormal | Hole ]\n\n(Teleport Anim)\nlate [TeleportMan3] -> [TeleportBeamBottom] again\nlate [TeleportBeamBottom] -> [TempAnim] again\nlate up [TempAnim | TeleportBeam] -> [ | TeleportBeamBottom] again\nlate up [TeleportBeamBottom | ] -> [TeleportBeamBottom | TeleportBeam] again\nlate up [TeleportBeam | ] -> [TeleportBeam | TeleportBeamTop] again\n\nlate [TeleportMan2] -> [TeleportMan3] again\nlate up [TeleportMan3|] -> [TeleportMan3 | TeleportBeam] again\nlate up [TeleportBeam|] -> [TeleportBeam| TeleportBeamTop] again\n\nlate [TeleportMan] -> [TeleportMan2] again\nlate up [TeleportMan2|] -> [Teleportman2|TeleportBeamTop] again\n\nlate [Player KeyMan TargetOn] -> [ TeleportMan TargetOn] again\n\nlate [TempAnim] -> []\n\n==============\nWINCONDITIONS\n==============\n\nNo Player\nNo TeleportAnim\n\n=======\nLEVELS\n=======\n\nMessage Collect '+' to activate teleporter\n\n#####b\n#***#b\n#*.*#b\n#.t.#b\n##p##b\n###01e\n\nMessage Press 'x' to select a tile\nMessage Press 'x' on another tile to swap\n\n#####b\n#*p*#b\n#...#b\n#.#.#b\n##t##b\n###02u\n\nMessage Swapping uses batteries\n\n#########b\n#*#####*#b\n#m##*##m#b\n#########b\n#########b\n#########b\n###mmm###b\n###mmm###b\n###.p.###b\n#########b\n####t####b\n#######03e\n\n#########b\n#*##m##*#b\n#########b\n#########b\n#########b\n###mmm###b\n###mp####b\n###mmm###b\n#########b\n####t####b\n#######04e\n\nMessage Collect key cards to access security tiles\n\n#######b\n#*#*#*#b\n#s###w#b\n#w#t#s#b\n#..x.z#b\n#a...q#b\n##...##b\n#p..mm#b\n#####05e\n\n##########b\n#*#*#*##t#b\n#w#s#w####b\n#.#.#.#..#b\n#s#w#s#..#b\n#m.m.m...#b\n###s#s####b\n#*wp..asq#b\n########06e\n\nMessage SwapBot cannot swap holes\n\nbbbbbbbbb\nbtwwwwwsb\nbbbbbbbsb\nbbbbbbbsb\nbbbbbbbsb\nb.xzpaxsb\nb..xxx..b\nb.bmmmb.b\nb.#mmm#.b\nb#*#b#q#b\nb#######b\nb#####07e\n\nb#######bb\n##..a..##b\nx..xws..sb\nmbbwsxbb*b\nbbbsxwbbbb\n*bbxwsbbtb\ns..wsx..xb\n##..m..##b\nb#qmmmz#bb\nb##.p.##bb\nbb###08bbe\n\nMessage Trapdoors create holes\n\n#######bbbbbb\n#####*#bbbbbb\n#####.#bbbbbb\n#####f#bbbtbb\n#*#q#m#bbbxbb\n#fz.spmazw#bb\n#..f#m#bbbbbb\n#####f#bbbbbb\n#####*#bbbbbb\n#####09bbbbeb\n\nbbbbbb###bbbbbbb\n#######*#######b\n#*s..#.z.#..f*#b\n#fb..w...w..bf#b\n#xbf###f###fbx#b\n#fbw#b#s#b#xbf#b\n#xbw###s###xbx#b\n#fb.........bf#b\n#tbbq.mmm.abb*#b\n#fxw...p...sxf#b\n#############10e\n\n##########bbbbbb\n####mfffz#bbbbbb\n##*qx###.######b\n####x###msssst#b\n####x##.m######b\n##########bbbbbb\n#a##x##m##bbbbbb\n##.#z##m##bbbbbb\n#..#pm#.##bbbbbb\n########11bbbbbe\n\n###############b\n#baffmbbbqffmb#b\n#b*fx*#.#*ff*b#b\n#bbxfbbbbbssbb#b\n#bbffffmffffbb#b\n#bbfff.pffffbb#b\n#bbbbbbwbbzfbb#b\n#bbbbbbfbbbbbb#b\n#bbbbbbtbbbbbb#b\n#############12e\n\nMessage SwapBot has swapped everything!\nMessage Congratulations!\n",[0,0,3,3,3,2,2,4,1,1,4,3,4,1,4,3,3,1,4,4,2,1,1,3,1,1,2,2,3,3,3,0,0,3,3,2,2,3,3,0,0,3,3,3,4,2,2,1,4,1,1,3,2,2,0,1,0],"background holenormal:0,0,0,0,0,0,0,0,0,\n0,0,0,0,background target:1,background holetop:2,0,0,background:3,\n3,3,3,background wallnormal:4,4,4,0,background door1:5,2,\n0,0,background door3:6,3,2,background wallbottom:7,background collectable:8,4,4,\n0,5,2,0,0,3,6,3,3,\n4,4,4,0,5,2,0,0,3,\n6,background magic:9,3,2,4,4,0,5,2,\n0,0,3,7,3,3,4,4,4,\n0,5,2,0,0,6,3,2,6,\nbackground key1man upman:10,4,background wallnormal zero:11,0,background door2:12,12,12,12,12,\n3,3,3,4,4,background seven wallnormal:13,0,0,0,\n0,0,0,0,0,background holenormal magicbar:14,14,14,background holenormal magicbar magicend:15,\n",12,"1627778061578.234"] + ["title SwapBot\nauthor John M. Williams\nhomepage gate.itch.io\n\nrun_rules_on_level_start\nnorepeat_action\nagain_interval 0.05\n\n========\nOBJECTS\n========\n\nBackground\nGreen\n\nTrapDoor\nGreen Black\n00000\n01010\n00000\n01010\n00000\n\nHoleNormal\nBlack\n \nHoleTop\nBlack #282117\n11111\n00000\n00000\n00000\n00000\n\nSelected\nYellow\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\nCollectable\nYellow White\n.....\n..0..\n.000.\n..0..\n.....\n\nPasteTarget\nBlack\n\nDoor1\nRed DarkRed\n00000\n01010\n00000\n01010\n00000\n\nDoor1Down\nRed\n00000\n0...0\n0...0\n0...0\n00000\n\nDoor2\nBlue DarkBlue\n00000\n01010\n00000\n01010\n00000\n\nDoor2Down\nBlue\n00000\n0...0\n0...0\n0...0\n00000\n\nDoor3\nOrange Brown\n00000\n01010\n00000\n01010\n00000\n\nDoor3Down\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\nKey1\nRed Grey\n.....\n.100.\n.100.\n.100.\n.....\n\nKey2\nBlue Grey\n.....\n.100.\n.100.\n.100.\n.....\n\nKey3\nOrange Grey\n.....\n.100.\n.100.\n.100.\n.....\n\nKeyNoneMan\nWhite DarkGrey Yellow\n.000.\n0.2.0\n0...0\n10001\n.111.\n\nKey1Man\nRed DarkRed\n.000.\n0.0.0\n0...0\n10001\n.111.\n\nKey2Man\nBlue DarkBlue\n.000.\n0.0.0\n0...0\n10001\n.111.\n\nKey3Man\nOrange Brown\n.000.\n0.0.0\n0...0\n10001\n.111.\n\nUpMan\nGray White DarkGrey Yellow\n.111.\n00.00\n00200\n20002\n.222.\n\nDownMan\nGray White DarkGrey Yellow\n.000.\n00.00\n00200\n21112\n.222.\n\nLeftMan\nGray White DarkGrey Yellow\n.000.\n10.00\n10200\n20002\n.222.\n\nRightMan\nGray White DarkGrey Yellow\n.000.\n00.01\n00201\n20002\n.222.\n\nTeleportMan\nPurple\n.000.\n00000\n00000\n00000\n.000.\n\nTeleportMan2\nPurple\n.000.\n00000\n00000\n00000\n.000.\n\nTeleportMan3\nPurple\n.000.\n00000\n00000\n00000\n.000.\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTargetTest\nBlack\n\nTargetOn\nYellow\n.....\n.000.\n.0.0.\n.000.\n.....\n\nMagic\nPurple Grey DarkGrey\n.....\n.1.1.\n.222.\n.000.\n.000.\n\nMagicBar\nPurple\n.....\n...0.\n..0..\n...0.\n..0..\n\nMagicReplace\nPurple\n\nSwapAnim1\nPurple\n\nSwapAnim2\nPurple\n00000\n00000\n00.00\n00000\n00000\n\nSwapAnim3\nPurple\n00000\n00.00\n0...0\n00.00\n00000\n\nSwapAnim4\nPurple\n00.00\n0...0\n.....\n0...0\n00.00\n\nSwapAnim5\nPurple\n0...0\n.....\n.....\n.....\n0...0\n\nTeleportBeamTop\nPurple\n.....\n..0..\n.000.\n.000.\n.000.\n\nTeleportBeam\nPurple\n.000.\n.000.\n.000.\n.000.\n.000.\n\nTeleportBeamBottom\nPurple\n.000.\n.000.\n.000.\n..0..\n.....\n\nInfinitePower\nTransparent\n\nTempAnim\nTransparent\n\nMagicEnd\nTransparent\n\nCastPaste\nBlack\n\nNoSelected\nBlack\n\nDidNotMove\nBlack\n\nWallNormal\nDarkGreen Darkblue\n00000\n00000\n00000\n00000\n00000\n \nWallBottom\nDarkGreen Darkblue\n00000\n00000\n00000\n00000\n11111\n\nOne\nDarkblue\n...0.\n..00.\n...0.\n...0.\n..000\n\nTwo\nDarkblue\n.000.\n....0\n..00.\n.0...\n.0000\n\nThree\nDarkblue\n.000.\n....0\n..000\n....0\n.000.\n\nFour\nDarkblue\n.0..0\n.0..0\n.0000\n....0\n....0\n\nFive\nDarkblue\n.0000\n.0...\n.000.\n....0\n.000.\n\nSix\nDarkblue\n..00.\n.0...\n.000.\n.0..0\n..00.\n\nSeven\nDarkblue\n.0000\n....0\n...0.\n..0..\n.0...\n\nEight\nDarkblue\n..00.\n.0..0\n..00.\n.0..0\n..00.\n\nNine\nDarkblue\n..00.\n.0..0\n..000\n....0\n..00.\n\nZero\nDarkblue\n..00.\n.0..0\n.0..0\n.0..0\n..00.\n\n=======\nLEGEND\n=======\n\nWall = WallNormal or WallBottom\nBlackBackground = HoleNormal or HoleTop\nHole = BlackBackground\n\n. = Background\n# = WallNormal\nT = Target\nP = DownMan and KeyNoneMan\n* = Collectable\nM = Magic\nE = MagicReplace and HoleNormal\nB = HoleNormal\nF = TrapDoor\n\nU = InfinitePower and E\n\nQ = Key1\nW = Door1\n\nA = Key2\nS = Door2\n\nZ = Key3\nX = Door3\n\n1 = One and WallNormal\n2 = Two and WallNormal\n3 = Three and WallNormal\n4 = Four and WallNormal\n5 = Five and WallNormal\n6 = Six and WallNormal\n7 = Seven and WallNormal\n8 = Eight and WallNormal\n9 = Nine and WallNormal\n0 = Zero and WallNormal\n\nPlayer = UpMan or DownMan or LeftMan or RightMan\nMan = UpMan or DownMan or LeftMan or RightMan\nBlock = BlackBackground\n\nKeyMan = Key1Man or Key2Man or Key3Man or KeyNoneMan\nKey = Key1 or Key2 or Key3\nKeyDoor = Door1 or Door2 or Door3\nDoorDown = Door1Down or Door2Down or Door3Down\n\nNumbers = Zero or One or Two or Three or Four or Five or Six or Seven or Eight or Nine\n\nCopyable = Wall or Target or TargetOn or Magic or Player or Collectable or Key or KeyDoor or TrapDoor or Numbers or DoorDown\n\nSwapAnim = SwapAnim1 or SwapAnim2 or SwapAnim3 or SwapAnim4 or SwapAnim5\n\nTeleportAnim = TeleportBeamTop or TeleportBeam or TeleportBeamBottom or TeleportMan or TeleportMan2 or TeleportMan3\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBlackBackground\nTarget, TargetTest, TargetOn, KeyDoor, DoorDown, Key, Trapdoor\nKeyMan\nPlayer, Wall\nMagic, Collectable, Numbers\nMagicEnd, MagicReplace\nMagicBar, InfinitePower\nCastPaste\nNoSelected, PasteTarget\nDidNotMove\nSelected\nSwapAnim, TeleportAnim, TempAnim\n\n======\nRULES\n======\n\n(SetupSpellIcons)\n\n[Player] -> [Player DidNotMove]\n[MagicReplace] -> [MagicEnd]\n\n(Player Orientation)\n[ up Man no UpMan ] -> [ up UpMan ]\n[ down Man no DownMan ] -> [ down DownMan ]\n[ left Man no LeftMan ] -> [ left LeftMan ]\n[ right Man no RightMan ] -> [ right RightMan ]\n\n(Move crates)\n[ > Man | Block] -> [Man | Block]\n\n(Door collision)\n[ > Man no Key1Man | Door1 ] -> [ Man | Door1]\n[ > Man no Key2Man | Door2 ] -> [ Man | Door2]\n[ > Man no Key3Man | Door3 ] -> [ Man | Door3]\n\n(Put spell on player based on magic)\n\nup [action UpMan | Selected] -> [UpMan | ]\ndown [action DownMan | Selected] -> [DownMan | ]\nleft [action LeftMan | Selected] -> [LeftMan | ]\nright [action RightMan | Selected] -> [RightMan | ]\n\n[Man] -> [Man noSelected]\n[Selected] [NoSelected] -> [Selected] []\n\nup [action UpMan noSelected|no BlackBackground] -> [UpMan | Selected]\ndown [action DownMan noSelected|no BlackBackground] -> [DownMan | Selected]\nleft [action LeftMan noSelected|no BlackBackground] -> [LeftMan | Selected]\nright [action RightMan noSelected|no BlackBackground] -> [RightMan | Selected]\n\n[NoSelected] -> []\n\nup [action Man] [InfinitePower] [Selected] -> [Man CastPaste] [InfinitePower] [Selected]\nup [action Man] [MagicBar | no MagicBar] [Selected] -> [Man CastPaste] [|] [Selected]\n\n(Swap Anim)\n[SwapAnim5] -> [] again\n[SwapAnim4] -> [SwapAnim5] again\n[SwapAnim3] -> [SwapAnim4] again\n[SwapAnim2] -> [SwapAnim3] again\n[SwapAnim1] -> [SwapAnim2] again\n\n(Cast Paste)\n\nup [UpMan CastPaste | no BlackBackground] -> [UpMan | PasteTarget]\ndown [DownMan CastPaste | no BlackBackground] -> [DownMan | PasteTarget]\nleft [LeftMan CastPaste | no BlackBackground] -> [LeftMan | PasteTarget]\nright [RightMan CastPaste | no BlackBackground] -> [RightMan | PasteTarget]\n\n[Man CastPaste] -> cancel\n\n[PasteTarget Copyable] [MagicEnd] -> [PasteTarget] [MagicEnd Copyable]\n[PasteTarget] [Selected Copyable] -> [PasteTarget Copyable] [Selected]\n[MagicEnd Copyable] [Selected] -> [MagicEnd] [Selected Copyable]\n[PasteTarget] [Selected] [DidNotMove] -> [SwapAnim1] [SwapAnim1] [] again\n\n(Handle picking up magic and magic bar)\nlate [Player Collectable] -> [Player]\nlate [Player Magic] [MagicEnd no MagicBar] -> [Player] [MagicEnd MagicBar]\nlate up [Player Magic] [MagicBar | no MagicBar] -> [Player] [MagicBar | MagicBar]\n\n(Handle holding Keys)\n\nlate [Player no KeyMan] [KeyMan] -> [Player KeyMan] []\n\nlate [Player Key1] -> [Player Key1Man]\nlate [Player Key2] -> [Player Key2Man]\nlate [Player Key3] -> [Player Key3Man]\n\n(Trapdoor)\nlate [TrapDoor DidNotMove no Player] -> [HoleNormal DidNotMove]\nlate [Blackbackground Selected] -> [BlackBackground]\n\n(Target)\nlate [Collectable] [Target] -> [Collectable] [TargetTest]\nlate [Target] -> [TargetOn]\nlate [TargetTest] -> [Target]\n\n(clean up)\nlate [DidNotMove] -> []\n\n(Pretty Doors)\nlate [Door1 Player] -> [Door1Down Player]\nlate [Door2 Player] -> [Door2Down Player]\nlate [Door3 Player] -> [Door3Down Player]\n\nlate [Door1Down no Player] -> [Door1]\nlate [Door2Down no Player] -> [Door2]\nlate [Door3Down no Player] -> [Door3]\n\n(Pretty Walls)\nlate Down [ WallNormal | no Wall ] -> [ WallBottom | ]\nlate Down [ WallBottom | Wall ] -> [ WallNormal | Wall ]\n\n(PrettyHoles)\n \nlate Up [ HoleNormal | no Hole ] -> [ HoleTop | ]\nlate Up [ HoleTop | Hole ] -> [ HoleNormal | Hole ]\n\n(Teleport Anim)\nlate [TeleportMan3] -> [TeleportBeamBottom] again\nlate [TeleportBeamBottom] -> [TempAnim] again\nlate up [TempAnim | TeleportBeam] -> [ | TeleportBeamBottom] again\nlate up [TeleportBeamBottom | ] -> [TeleportBeamBottom | TeleportBeam] again\nlate up [TeleportBeam | ] -> [TeleportBeam | TeleportBeamTop] again\n\nlate [TeleportMan2] -> [TeleportMan3] again\nlate up [TeleportMan3|] -> [TeleportMan3 | TeleportBeam] again\nlate up [TeleportBeam|] -> [TeleportBeam| TeleportBeamTop] again\n\nlate [TeleportMan] -> [TeleportMan2] again\nlate up [TeleportMan2|] -> [Teleportman2|TeleportBeamTop] again\n\nlate [Player KeyMan TargetOn] -> [ TeleportMan TargetOn] again\n\nlate [TempAnim] -> []\n\n==============\nWINCONDITIONS\n==============\n\nNo Player\nNo TeleportAnim\n\n=======\nLEVELS\n=======\n\nMessage Collect '+' to activate teleporter\n\n#####b\n#***#b\n#*.*#b\n#.t.#b\n##p##b\n###01e\n\nMessage Press 'x' to select a tile\nMessage Press 'x' on another tile to swap\n\n#####b\n#*p*#b\n#...#b\n#.#.#b\n##t##b\n###02u\n\nMessage Swapping uses batteries\n\n#########b\n#*#####*#b\n#m##*##m#b\n#########b\n#########b\n#########b\n###mmm###b\n###mmm###b\n###.p.###b\n#########b\n####t####b\n#######03e\n\n#########b\n#*##m##*#b\n#########b\n#########b\n#########b\n###mmm###b\n###mp####b\n###mmm###b\n#########b\n####t####b\n#######04e\n\nMessage Collect key cards to access security tiles\n\n#######b\n#*#*#*#b\n#s###w#b\n#w#t#s#b\n#..x.z#b\n#a...q#b\n##...##b\n#p..mm#b\n#####05e\n\n##########b\n#*#*#*##t#b\n#w#s#w####b\n#.#.#.#..#b\n#s#w#s#..#b\n#m.m.m...#b\n###s#s####b\n#*wp..asq#b\n########06e\n\nMessage SwapBot cannot swap holes\n\nbbbbbbbbb\nbtwwwwwsb\nbbbbbbbsb\nbbbbbbbsb\nbbbbbbbsb\nb.xzpaxsb\nb..xxx..b\nb.bmmmb.b\nb.#mmm#.b\nb#*#b#q#b\nb#######b\nb#####07e\n\nb#######bb\n##..a..##b\nx..xws..sb\nmbbwsxbb*b\nbbbsxwbbbb\n*bbxwsbbtb\ns..wsx..xb\n##..m..##b\nb#qmmmz#bb\nb##.p.##bb\nbb###08bbe\n\nMessage Trapdoors create holes\n\n#######bbbbbb\n#####*#bbbbbb\n#####.#bbbbbb\n#####f#bbbtbb\n#*#q#m#bbbxbb\n#fz.spmazw#bb\n#..f#m#bbbbbb\n#####f#bbbbbb\n#####*#bbbbbb\n#####09bbbbeb\n\nbbbbbb###bbbbbbb\n#######*#######b\n#*s..#.z.#..f*#b\n#fb..w...w..bf#b\n#xbf###f###fbx#b\n#fbw#b#s#b#xbf#b\n#xbw###s###xbx#b\n#fb.........bf#b\n#tbbq.mmm.abb*#b\n#fxw...p...sxf#b\n#############10e\n\n##########bbbbbb\n####mfffz#bbbbbb\n##*qx###.######b\n####x###msssst#b\n####x##.m######b\n##########bbbbbb\n#a##x##m##bbbbbb\n##.#z##m##bbbbbb\n#..#pm#.##bbbbbb\n########11bbbbbe\n\n###############b\n#baffmbbbqffmb#b\n#b*fx*#.#*ff*b#b\n#bbxfbbbbbssbb#b\n#bbffffmffffbb#b\n#bbfff.pffffbb#b\n#bbbbbbwbbzfbb#b\n#bbbbbbfbbbbbb#b\n#bbbbbbtbbbbbb#b\n#############12e\n\nMessage SwapBot has swapped everything!\nMessage Congratulations!\n", [0, 0, 3, 3, 3, 2, 2, 4, 1, 1, 4, 3, 4, 1, 4, 3, 3, 1, 4, 4, 2, 1, 1, 3, 1, 1, 2, 2, 3, 3, 3, 0, 0, 3, 3, 2, 2, 3, 3, 0, 0, 3, 3, 3, 4, 2, 2, 1, 4, 1, 1, 3, 2, 2, 0, 1, 0], "background holenormal:0,0,0,0,0,0,0,0,0,\n0,0,0,0,background target:1,background holetop:2,0,0,background:3,\n3,3,3,background wallnormal:4,4,4,0,background door1:5,2,\n0,0,background door3:6,3,2,background wallbottom:7,background collectable:8,4,4,\n0,5,2,0,0,3,6,3,3,\n4,4,4,0,5,2,0,0,3,\n6,background magic:9,3,2,4,4,0,5,2,\n0,0,3,7,3,3,4,4,4,\n0,5,2,0,0,6,3,2,6,\nbackground key1man upman:10,4,background wallnormal zero:11,0,background door2:12,12,12,12,12,\n3,3,3,4,4,background seven wallnormal:13,0,0,0,\n0,0,0,0,0,background holenormal magicbar:14,14,14,background holenormal magicbar magicend:15,\n", 12, "1627778061578.234"] ], [ `gallery: spaceokoban`, - ["Title Spacekoban\nAuthor Connorses [Loneship Games]\nbackground_color #00001F\nagain_interval 0.12\n========\nOBJECTS\n========\nbackground\ngrey lightgrey\n10001\n00000\n00000\n00000\n10001\n\nplayer\nwhite darkbrown\n.000.\n.010.\n00000\n.000.\n.0.0.\n\nwall\nblack\n\ncrate\nred pink\n.....\n.000.\n.010.\n.000.\n.....\n\ntarget\nred\n00.00\n0...0\n.....\n0...0\n00.00\n\nladder\ndarkgrey\n.....\n00000\n.....\n00000\n.....\n\nbeam\nblue\n.....\n..0..\n.0.0.\n..0..\n.....\n\nexit\nyellow\n00000\n0...0\n0...0\n0...0\n00000\n\ncover\nblack darkgrey\n.....\n.000.\n.010.\n.000.\n.....\n\nu\ntransparent\n.....\n..0..\n.....\n.....\n.....\nd\ntransparent\n.....\n.....\n.....\n..0..\n.....\nl\ntransparent\n.....\n.....\n.0...\n.....\n.....\nr\ntransparent\n.....\n.....\n...0.\n.....\n.....\n=======\nLEGEND\n=======\n. = background\np = player and background\n# = wall\n* = crate\n\" = ladder\n: = player and ladder\no = target\n@ = crate and target\n% = beam\n& = crate and beam\n! = beam and target\n$ = crate and ladder\n] = player and target\ne = exit and cover\n\nobj = player or crate\ndir = U or D or L or R\nsolid = wall or cover\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\nbackground\ntarget\nladder, exit\nplayer, wall, crate, cover\nbeam\nu,d,l,r\n======\nRULES\n======\n[cover] -> [ ]\n[exit] [crate no target] -> [exit cover] [crate]\n\n[< player no ladder|no solid no crate] -> [player| ]\n\nup [< player|solid] -> [player D|solid] again\ndown [< player|solid] -> [player U|solid] again\nleft [< player|solid] -> [player R|solid] again\nright [< player|solid] -> [player L|solid] again\n\n[up player ladder] -> [player U ladder]\n[down player ladder] -> [player D ladder]\n[left player ladder] -> [player L ladder]\n[right player ladder] -> [player R ladder]\n\nup [< player|crate] -> [player D|crate U] again\ndown [< player|crate] -> [player U|crate D] again\nleft [< player|crate] -> [player R|crate L] again\nright [< player|crate] -> [player L|crate R] again\n\nup [obj U|obj] -> [obj U|obj U]\ndown [obj D|obj] -> [obj D|obj D]\nleft [obj L|obj] -> [obj L|obj L]\nright [obj R|obj] -> [obj R|obj R]\n\n[obj U] -> [up obj up U] again\n[obj D] -> [down obj down D] again\n[obj L] -> [left obj left L] again\n[obj R] -> [right obj right R] again\n\n[> dir|solid] -> [ |solid]\n\nlate [player dir ladder] -> [player ladder]\nlate [obj dir beam] -> [obj beam]\n==============\nWINCONDITIONS\n==============\nall crate on target\nall exit on player\nno dir\n=======\nLEVELS\n=======\n###########\n###########\n#######.###\n#........##\n#p....*..o#\n#........##\n#######.###\n###########\n###########\n\n#########\n####o####\n###...###\n##..*..##\n#.......#\n##.....##\n##..p..##\n##..*..##\n##.....##\n##.....##\n##.....##\n##..o..##\n#########\n\n############\n###..#.....#\n###........#\n###........#\n#oo@.*p*...#\n############\n###.......##\n############\n\n#########\n##.o#####\n#...#####\n#*#.#####\n#o#.*.###\n###p..###\n#########\n#########\n\n########\n#o.*p..#\n#......#\n#......#\n#.#o***#\n#.....o#\n#...o.##\n########\n\n#########(*U_2)\n#...#####\n#..*#####\n#..*#...#\n#p.....o#\n######.o#\n#########\n#########\n\n###########(*U_2)\n#o.......##\n#.....o..##\n#o.......##\n#.....@.###\n#....#*..##\n#ooo@@***.#\n#.....*...#\n#.....*...#\n#.........#\n######...p#\n#######..##\n###########\n\n##########(*U_1)\n###o*..###\n##.....###\n##...#*###\n####*#..##\n####]*..##\n######oo##\n##########\n##########\n\n##:############################\n##\"\"\"##########################\n####\"##########################\n#..............................\n#o.**.......................\"..\n#...o..........................\n###############################\n###############################\n###############################\n\n###########\n##..o....##\n#.........#\n#...*.....#\n#o.*\"$.\".o#\n#.........#\n#...p.....#\n#...*..\"..#\n#......*..#\n##o.....o##\n###########\n\n##########\n#..#o@p..#\n#........#\n#...*....#\n#o*.....*#\n#...\".\".o#\n##########\n\n##########(*U_2)\n##oo..*..#\n##o*...#.#\n###.*....#\n###...\".p#\n###.\"..###\n##########\n\n#############\n#############\n#...........#\n#...........#\n#.!..*p...%.#\n#...........#\n#...........#\n#############\n#############\n\n###########\n###########\n#.........#\n#.........#\n#.!.*p*\"!.#\n#.........#\n#.........#\n###########\n###########\n\n########\n#.o...\"#\n##.#..\"#\n#..#.#\"#\n#o.%.$:#\n##.#..\"#\n#.....\"#\n#....$\"#\n#\"\"\"\"\"\"#\n########\n\n#############\n#############\n#############\n#############\n#p....*.%%!.#\n#############\n#############\n#############\n#############\n\n##########\n##.....o##\n#.......o#\n#..:\"\"\"..#\n#..\"**\"..#\n#..\"**\"..#\n#..\"\"\"\"..#\n#o...%...#\n##o.....##\n##########\n\n###########\n#.*.*.!..o#\n#.....%...#\n#\".:..%...#\n#.....%...#\n#.*.*.!..o#\n###########\n\n############\n#####o######\n#...\"\"*..o##\n#.........##\n#....*.#####\n#o...%....##\n#..#*..:\"\"##\n#.%.o..*$\".#\n##..#o..%#.#\n########...#\n############\n\n###########\n#######\"\"\"#\n#\"\"\"\"\"\"\"\"\"#\n#:...*..\"\"#\n#\"....#...#\n#\"..*##*..#\n#\"...#....#\n#\"..$...oo#\n########!!#\n########..#\n###########\n",[1,0,3,2],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,\nbackground crate target:1,0,0,0,0,0,0,0,1,0,0,0,\n0,background:2,2,2,background target:3,0,2,0,0,2,2,2,\nbackground player:4,0,2,0,0,0,2,2,2,0,2,0,\n0,2,2,2,2,0,2,0,0,2,2,2,\n2,0,2,0,0,2,2,2,2,0,2,0,\n0,2,2,2,2,0,2,0,0,2,2,2,\nbackground crate:5,0,0,0,0,0,0,0,0,0,0,0,\n",2,"1627778099494.4666"] + ["Title Spacekoban\nAuthor Connorses [Loneship Games]\nbackground_color #00001F\nagain_interval 0.12\n========\nOBJECTS\n========\nbackground\ngrey lightgrey\n10001\n00000\n00000\n00000\n10001\n\nplayer\nwhite darkbrown\n.000.\n.010.\n00000\n.000.\n.0.0.\n\nwall\nblack\n\ncrate\nred pink\n.....\n.000.\n.010.\n.000.\n.....\n\ntarget\nred\n00.00\n0...0\n.....\n0...0\n00.00\n\nladder\ndarkgrey\n.....\n00000\n.....\n00000\n.....\n\nbeam\nblue\n.....\n..0..\n.0.0.\n..0..\n.....\n\nexit\nyellow\n00000\n0...0\n0...0\n0...0\n00000\n\ncover\nblack darkgrey\n.....\n.000.\n.010.\n.000.\n.....\n\nu\ntransparent\n.....\n..0..\n.....\n.....\n.....\nd\ntransparent\n.....\n.....\n.....\n..0..\n.....\nl\ntransparent\n.....\n.....\n.0...\n.....\n.....\nr\ntransparent\n.....\n.....\n...0.\n.....\n.....\n=======\nLEGEND\n=======\n. = background\np = player and background\n# = wall\n* = crate\n\" = ladder\n: = player and ladder\no = target\n@ = crate and target\n% = beam\n& = crate and beam\n! = beam and target\n$ = crate and ladder\n] = player and target\ne = exit and cover\n\nobj = player or crate\ndir = U or D or L or R\nsolid = wall or cover\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\nbackground\ntarget\nladder, exit\nplayer, wall, crate, cover\nbeam\nu,d,l,r\n======\nRULES\n======\n[cover] -> [ ]\n[exit] [crate no target] -> [exit cover] [crate]\n\n[< player no ladder|no solid no crate] -> [player| ]\n\nup [< player|solid] -> [player D|solid] again\ndown [< player|solid] -> [player U|solid] again\nleft [< player|solid] -> [player R|solid] again\nright [< player|solid] -> [player L|solid] again\n\n[up player ladder] -> [player U ladder]\n[down player ladder] -> [player D ladder]\n[left player ladder] -> [player L ladder]\n[right player ladder] -> [player R ladder]\n\nup [< player|crate] -> [player D|crate U] again\ndown [< player|crate] -> [player U|crate D] again\nleft [< player|crate] -> [player R|crate L] again\nright [< player|crate] -> [player L|crate R] again\n\nup [obj U|obj] -> [obj U|obj U]\ndown [obj D|obj] -> [obj D|obj D]\nleft [obj L|obj] -> [obj L|obj L]\nright [obj R|obj] -> [obj R|obj R]\n\n[obj U] -> [up obj up U] again\n[obj D] -> [down obj down D] again\n[obj L] -> [left obj left L] again\n[obj R] -> [right obj right R] again\n\n[> dir|solid] -> [ |solid]\n\nlate [player dir ladder] -> [player ladder]\nlate [obj dir beam] -> [obj beam]\n==============\nWINCONDITIONS\n==============\nall crate on target\nall exit on player\nno dir\n=======\nLEVELS\n=======\n###########\n###########\n#######.###\n#........##\n#p....*..o#\n#........##\n#######.###\n###########\n###########\n\n#########\n####o####\n###...###\n##..*..##\n#.......#\n##.....##\n##..p..##\n##..*..##\n##.....##\n##.....##\n##.....##\n##..o..##\n#########\n\n############\n###..#.....#\n###........#\n###........#\n#oo@.*p*...#\n############\n###.......##\n############\n\n#########\n##.o#####\n#...#####\n#*#.#####\n#o#.*.###\n###p..###\n#########\n#########\n\n########\n#o.*p..#\n#......#\n#......#\n#.#o***#\n#.....o#\n#...o.##\n########\n\n#########(*U_2)\n#...#####\n#..*#####\n#..*#...#\n#p.....o#\n######.o#\n#########\n#########\n\n###########(*U_2)\n#o.......##\n#.....o..##\n#o.......##\n#.....@.###\n#....#*..##\n#ooo@@***.#\n#.....*...#\n#.....*...#\n#.........#\n######...p#\n#######..##\n###########\n\n##########(*U_1)\n###o*..###\n##.....###\n##...#*###\n####*#..##\n####]*..##\n######oo##\n##########\n##########\n\n##:############################\n##\"\"\"##########################\n####\"##########################\n#..............................\n#o.**.......................\"..\n#...o..........................\n###############################\n###############################\n###############################\n\n###########\n##..o....##\n#.........#\n#...*.....#\n#o.*\"$.\".o#\n#.........#\n#...p.....#\n#...*..\"..#\n#......*..#\n##o.....o##\n###########\n\n##########\n#..#o@p..#\n#........#\n#...*....#\n#o*.....*#\n#...\".\".o#\n##########\n\n##########(*U_2)\n##oo..*..#\n##o*...#.#\n###.*....#\n###...\".p#\n###.\"..###\n##########\n\n#############\n#############\n#...........#\n#...........#\n#.!..*p...%.#\n#...........#\n#...........#\n#############\n#############\n\n###########\n###########\n#.........#\n#.........#\n#.!.*p*\"!.#\n#.........#\n#.........#\n###########\n###########\n\n########\n#.o...\"#\n##.#..\"#\n#..#.#\"#\n#o.%.$:#\n##.#..\"#\n#.....\"#\n#....$\"#\n#\"\"\"\"\"\"#\n########\n\n#############\n#############\n#############\n#############\n#p....*.%%!.#\n#############\n#############\n#############\n#############\n\n##########\n##.....o##\n#.......o#\n#..:\"\"\"..#\n#..\"**\"..#\n#..\"**\"..#\n#..\"\"\"\"..#\n#o...%...#\n##o.....##\n##########\n\n###########\n#.*.*.!..o#\n#.....%...#\n#\".:..%...#\n#.....%...#\n#.*.*.!..o#\n###########\n\n############\n#####o######\n#...\"\"*..o##\n#.........##\n#....*.#####\n#o...%....##\n#..#*..:\"\"##\n#.%.o..*$\".#\n##..#o..%#.#\n########...#\n############\n\n###########\n#######\"\"\"#\n#\"\"\"\"\"\"\"\"\"#\n#:...*..\"\"#\n#\"....#...#\n#\"..*##*..#\n#\"...#....#\n#\"..$...oo#\n########!!#\n########..#\n###########\n", [1, 0, 3, 2], "background wall:0,0,0,0,0,0,0,0,0,0,0,0,\nbackground crate target:1,0,0,0,0,0,0,0,1,0,0,0,\n0,background:2,2,2,background target:3,0,2,0,0,2,2,2,\nbackground player:4,0,2,0,0,0,2,2,2,0,2,0,\n0,2,2,2,2,0,2,0,0,2,2,2,\n2,0,2,0,0,2,2,2,2,0,2,0,\n0,2,2,2,2,0,2,0,0,2,2,2,\nbackground crate:5,0,0,0,0,0,0,0,0,0,0,0,\n", 2, "1627778099494.4666"] ], [ `gallery: pretender to the crown`, - ["title pretender to the crown\nauthor colin thil\nhomepage http://pretendertothecrown.wordpress.com/\nrun_rules_on_level_start\nbackground_color #d7dbef\ntext_color #69729f\nyoutube dasz1sSax2k\n\nrealtime_interval 0.1\nthrottle_movement \n\n========\nOBJECTS\n========\nExit\nred\n..0..\n..0..\n00000\n.000.\n..0..\n\nsnow1\n#d7dbef\n....0\n.....\n.....\n.....\n.....\n\nsnow2\n#d7dbef\n.....\n...0.\n.....\n.....\n.....\n\nsnow3\n#d7dbef\n.....\n.....\n...0.\n.....\n.....\n\nsnow4\n#d7dbef\n.....\n.....\n.....\n...0.\n.....\n\nsnow5\n#d7dbef\n.....\n.....\n.....\n.....\n....0\n\nsnow6\n#d7dbef\n.....\n.....\n.....\n.....\n....0\n\nBackground\n#d7dbef #e4e6f4\n00100\n00000\n10000\n00000\n00001\n\nplant1\n#2c5a42 #225039\n..0..\n.001.\n.011.\n00111\n01111\n\nplant2\n#14796c #0c6358\n..0..\n.001.\n.011.\n00111\n01111\n\nplant3\n#2e6549 #225039 #0c6358\n22022\n20012\n20112\n00111\n01111\n\nplant4\n#14796c #0c6358 #225039\n22022\n20012\n20112\n00111\n01111\n\ncrate\nLIGHTBROWN BROWN DARKBROWN\n00000\n01102\n01112\n02112\n22222\n\nplayer\n#ead5a8 #e1c99b #69729f #454b69 #f2c835 #ecbc16\n4.4.5\n.445.\n.011.\n.223.\n.333.\n\nsoldier\n#ead5a8 #e1c99b #69729f #454b69 #343b5f #c5c5c4\n5.3..\n5223.\n10044\n.0044\n.1.1.\n\nprisoner\n#ead5a8 #e1c99b #69729f #454b69\n..3..\n.223.\n.000.\n.000.\n.1.1.\n\nenemy\n#ead5a8 #e1c99b #c56c57 #bc5e48 #a7523e #c5c5c4\n5.3..\n5223.\n10044\n.0044\n.1.1.\n\nUpMarker\nRED\n\nLeftMarker\nRED\n\nRightMarker\nRED\n\nDownMarker\nRED\n\n\n=======\nLEGEND\n=======\n. = Background\np = prisoner\ny = plant1\nt = plant2\nz = plant3\nr = plant4\ne = enemy\nc = crate\nx = exit \na = player\n\nMarker = UpMarker or LeftMarker or RightMarker or DownMarker\ncrew = Player or soldier or prisoner\nplant = plant1 or plant2 or plant3 or plant4\nsnow = snow1 or snow2 or snow3 or snow4 or snow5 or snow6\n\n=======\nSOUNDS\n=======\n\nSFX0 52755904 (hit)\nSFX1 150500 (rescue)\nSFX2 6007707 (push)\nSFX3 13396704 (crush)\nEndLevel 83714500\n\n================\nCOLLISIONLAYERS\n================\n\nMarker,exit\n\nBackground\n\nplayer,soldier,enemy,prisoner,plant,crate\n\nsnow\n\n======\nRULES \n====== \n\nrandom down [no snow|no snow|no snow|no snow|no snow] -> [snow1||||]\n\n[ snow4 ] -> [ snow5 ]\n[ snow3 ] -> [ snow4 ]\n[ snow2 ] -> [ snow3 ]\n[ snow1 ] -> [ snow2 ]\ndown [ snow6|] -> [ |snow1 ]\n[ snow6] -> [ ]\n[ snow5 ] -> [ snow6 ]\n\n[ > player | crate] -> [ > player | > crate ] SFX2\n[ > crate | crate] -> [ > crate | > crate ] SFX2\n\nleft [ > Player | enemy | prisoner ] -> [ player | soldier Rightmarker | ] SFX0\nright [ > Player | enemy | prisoner ] -> [ player | soldier Leftmarker | ] SFX0\nup [ > Player | enemy | prisoner ] -> [ player | soldier Downmarker | ] SFX0\ndown [ > Player | enemy | prisoner ] -> [ player | soldier Upmarker | ] SFX0\n\n[ > Player | enemy | soldier ] -> [ player | | soldier ] SFX0\n\n[ left player ] -> [ left player Leftmarker ]\n[ right player ] -> [ right player Rightmarker ]\n[ up player ] -> [ up player Upmarker ]\n[ down player ] -> [ down player Downmarker ]\n\nstartloop\nlate left [ soldier Leftmarker | No crew ] -> [ Leftmarker | soldier ]\nlate right [ soldier Rightmarker | No crew ] -> [ Rightmarker | soldier ]\nlate up [ soldier Upmarker | No crew ] -> [ Upmarker | soldier ]\nlate down [ soldier Downmarker | No crew ] -> [ Downmarker | soldier ]\nendloop\n\n==============\nWINCONDITIONS\n==============\n\nno prisoner \nsome player on exit\n\n======= \nLEVELS\n=======\n\nmessage je suis fatigue, mortellement fatigue\nmessage mais chaque nuit, quand j arrive a dormir, je suis roi de norvege\n\nzrzrzrzrzrz\nrzrzrzrzrzr\nzrzrz.eperz\nrzpzr.tet.r\nzre.....z.z\nr....a....r\nz.y.....etz\nr..et.typzr\nztepe.zryrz\nrztyt.rzrzr\nzrzrzxzrzrz\n\nmessage depuis ma plus lointaine jeunesse un mal me ronge\nmessage il me faut etre roi, il m’est impossible de vivre autrement!\n\nzrzrzrzrzrz\nrzrzrzrzrzr\nzrzrprprzrz\nrzrzeaezrzr\nzrze...ezrz\nrzepecepezr\nzrye...eyrz\nrzryt.tyrzr\nzrzrz.zrzrz\nrzrzr.rzrzr\nzrzrzxzrzrz\n\nmessage le ciel m a fait pour que je gouverne, il n y a pas d autres remede pour moi\nmessage toi, le tout-puissant, qui m’as mis dans cette situation, il faut que tu assumes les consequences!\n\nzrzrzrzrzrz\nrzrz...zrzr\nzrze.p.ezrz\nrzepeeepezr\nzr.ey.ye.rz\na.........x\nyt.ey.ye.ty\nrzepe.epezr\nzrye...eyrz\nrzry...yrzr\nzrzrytyrzrz\n\nmessage j’ai vaincu\nmessage d'un coup d'epee, j’ai fait sauter la couronne du roi\n\nzrzrzazrzrz\nrzrzr.rzrzr\nzrzrz.zrzrz\nrprpr.rprpr\nzezez.zezez\nr.........r\nz.yt.e.ty.z\nr....e....r\nztyty.ytytz\nrzrzr.rzrzr\nzrzrzxzrzrz\n\nmessage Les boucliers etaient enfonces dans la neige mais il n’y avais personnes derriere eux\n\nzrzrzazrzrz\nrzrzr.rzrzr\nzreez.zeerz\nrz..e....zr\nzpe.tet.epz\nry..zpz..yr\nzpe.rer.epz\nrye.....eyr\nzreey.yeerz\nrztpr.rptzr\nzrztzxztzrz\n\nmessage ils se sont enfuis dans la foret, par les plateux et les marais, et les coteaux\nmessage aussi loin que leurs jambes voulaient les porter\n\nzrzrzazrzrz\nrzrzr.rzrzr\nzrpe...rzrz\nrzty...epzr\nzrpe.c.tyrz\nrztycycepzr\nzrpe.c.tyrz\nrzty...epzr\nzrzrt.ttyrz\nrzrzr.rzrzr\nzrzrzxzrzrz\n\nmessage j’ai defendu l’oeuvre de ma vie et le salut de mon ame\n\nzrzrzazrzrz\nrzrzr.rzrzr\nzpe.z.z.epz\nretyr.r.ter\nz..c...c..z\nr.t.tyt.t.r\nz.z.zrz.z.z\nr..c...c..r\nzet.y.ytyez\nrpe.r.r.epr\nztytzxztttz\n\nmessage ai-je l’air d un roi maintenant?\n\nrzrzrarzrzr\nzpe...zpzpz\nryt..yrerer\nzrz..r....z\nrzpe...y..r\nzry..t..yez\nrpr.tpt.rpr\nzez.zez.ztz\nr...r.r..zr\nz..tz...yzz\nrzrzrxtyrzr\n\nmessage chaque jour je doit regarder l’avenir en souriant\nmessage comme si j’etait sur de mon droit, de ma victoire et de mon succes\n\nzrzrzazrzrz\nr.........r\nz.e.e.e.e.z\nrypypypypyr\nzryryr.ryrz\nrppzpe.epzr\nzeeryt..yrz\nr...rzt...r\nz.y..pe.y.z\nr...t.t...r\nztytzxztytz \n\nmessage n’y a t’il donc la haut aucune loi certaine sur laquelle tout doit se regler?\n\nzrzrzazrzrz\nrprzr.rzrzr\nzezpe.epzrz\nr..e...erzr\nz.y..t..zpz\nr...tzt..er\nzty.zrz.e.z\nrz..r.r...r\nzre.....etz\nrzptt.ttpzr\nzryrzxzryrz\n\nmessage il y a une peur secrete dans cette victoire\n\nrzrzrarzrzr\nz.........z\nr..ctyte..r\nz.epepepc.z\nrytet.tetyr\nzpzpz.zpzpz\nreryr.ryrer\nz..c...c..z\nr..y.y.y..r\nz..c...c..z\nrytztxtztyr\n\nmessage si j’essaie de me voir comme le juste roi, il faut que je le fasse par artifice,\nmessage par une construction astucieuse, une oeuvre audacieuse\n\nrzrzrarzrzr\nzrzrz.zrzrz\nrpe.....epr\nztyt.ty.ytz\nrpe..c..epr\nztycy.ycytz\nrpe..c..epr\nzty.y.y.ytz\nrzr..cc.rzr\nzrztyxytzrz\nrzrzrxrzrzr\n\nmessage le roi etait-il d une autre etoffe que moi?\nmessage serait-il parmis ceux qui ont de la chance?\n\nrzrzrarzrzr\nz.....zpe.z\nr.t.tcryt.r\nz.c.....z.z\nr.tytetcr.r\nz...cpz...z\nretctyr.t.r\nzpz.....c.z\nryrctyt.tyr\nz...c...epz\nrytytxtytyr\n\nmessage mon royaume?\nmessage il est sombre, comme celui de l’ange qui se dressa contre dieu.\n\nrzrzrarzrzr\nzrzr...rzrz\nrzpe....epr\nzrytccccytz\nrpe.....epr\nzty.yt.tytz\nrpe....epzr\nztycccctyrz\nrzpe...epzr\nzryt...tyrz\nrzrztxtzrrr\n\nmessage que n ai-je sacrifie pour ce trone ou je ne suis pas parvenu?\n\nrzrzrarzrzr\nzrz.....zpz\nrz..tct..er\nz..t.c.t..z\nr.tpecept.r\nz.zpecepz.z\nr..y.c.y..r\nz...ycy..tz\nret.....tzr\nzpzty.ytzrz\nryrzrxrzrzr\n\nmessage je voulais etre le plus grand dans ce pays\nmessage seigneur voyez, je m’humilie devant vous, je suis le plus minable de tous!\n\nrzrzrarzrzr\nzrz....rprz\nrz...y..ezr\nzt.e.r..epz\nrpe...ty.yr\nzt.ty...epz\nrpe..y.e.yr\nzte..r...rz\nrzpy....tzr\nzrzry.ytzrz\nrzrzrxrzrzr\n\nmessage je suis un pauvre homme, je n’ais que ma vie a donner\nmessage prennez la et sauvez la pensee royale\nmessage -vous avez perdu-\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick","tick",2,"tick","tick",2,"tick",3,"tick","tick",3,"tick",2,"tick","tick",2,"tick","tick",2,"tick",2,"tick","tick",2,"tick",1,"tick","tick",1,"tick","tick","tick","tick","tick","tick",1,"tick",1,"tick","tick",1,"tick","tick","tick",0,"tick","tick",0,"tick","tick","tick","tick","tick","tick","tick"],"background plant3:0,background plant4 snow3:1,0,background plant4:2,0,2,background plant3 snow4:3,2,0,2,0,\n2,0,background plant4 snow4:4,0,background prisoner:5,background plant1:6,5,6,background plant4 snow1:7,0,7,\n0,1,background enemy:8,background:9,8,9,8,background enemy snow3:10,8,background plant2:11,0,\n2,0,8,9,9,background player snow6:12,background soldier upmarker:13,background upmarker:14,8,5,11,\n0,2,0,8,11,background plant3 snow2:15,2,background leftmarker:16,6,2,background plant3 snow3:17,\nbackground downmarker:18,background downmarker snow2:19,background downmarker snow4:20,background rightmarker:21,8,5,8,16,background snow1:22,9,background exit:23,\n0,2,15,background rightmarker snow4:24,11,0,2,16,background plant1 snow6:25,2,0,\n2,0,8,18,18,20,18,16,14,9,11,\n0,2,8,background snow3:26,8,9,8,8,8,background plant2 snow1:27,15,\n2,0,background plant4 snow6:28,0,5,6,5,6,background plant4 snow2:29,0,2,\n0,2,0,4,15,2,0,2,0,29,17,\n",13,"1627778178860.0981"] + ["title pretender to the crown\nauthor colin thil\nhomepage http://pretendertothecrown.wordpress.com/\nrun_rules_on_level_start\nbackground_color #d7dbef\ntext_color #69729f\nyoutube dasz1sSax2k\n\nrealtime_interval 0.1\nthrottle_movement \n\n========\nOBJECTS\n========\nExit\nred\n..0..\n..0..\n00000\n.000.\n..0..\n\nsnow1\n#d7dbef\n....0\n.....\n.....\n.....\n.....\n\nsnow2\n#d7dbef\n.....\n...0.\n.....\n.....\n.....\n\nsnow3\n#d7dbef\n.....\n.....\n...0.\n.....\n.....\n\nsnow4\n#d7dbef\n.....\n.....\n.....\n...0.\n.....\n\nsnow5\n#d7dbef\n.....\n.....\n.....\n.....\n....0\n\nsnow6\n#d7dbef\n.....\n.....\n.....\n.....\n....0\n\nBackground\n#d7dbef #e4e6f4\n00100\n00000\n10000\n00000\n00001\n\nplant1\n#2c5a42 #225039\n..0..\n.001.\n.011.\n00111\n01111\n\nplant2\n#14796c #0c6358\n..0..\n.001.\n.011.\n00111\n01111\n\nplant3\n#2e6549 #225039 #0c6358\n22022\n20012\n20112\n00111\n01111\n\nplant4\n#14796c #0c6358 #225039\n22022\n20012\n20112\n00111\n01111\n\ncrate\nLIGHTBROWN BROWN DARKBROWN\n00000\n01102\n01112\n02112\n22222\n\nplayer\n#ead5a8 #e1c99b #69729f #454b69 #f2c835 #ecbc16\n4.4.5\n.445.\n.011.\n.223.\n.333.\n\nsoldier\n#ead5a8 #e1c99b #69729f #454b69 #343b5f #c5c5c4\n5.3..\n5223.\n10044\n.0044\n.1.1.\n\nprisoner\n#ead5a8 #e1c99b #69729f #454b69\n..3..\n.223.\n.000.\n.000.\n.1.1.\n\nenemy\n#ead5a8 #e1c99b #c56c57 #bc5e48 #a7523e #c5c5c4\n5.3..\n5223.\n10044\n.0044\n.1.1.\n\nUpMarker\nRED\n\nLeftMarker\nRED\n\nRightMarker\nRED\n\nDownMarker\nRED\n\n\n=======\nLEGEND\n=======\n. = Background\np = prisoner\ny = plant1\nt = plant2\nz = plant3\nr = plant4\ne = enemy\nc = crate\nx = exit \na = player\n\nMarker = UpMarker or LeftMarker or RightMarker or DownMarker\ncrew = Player or soldier or prisoner\nplant = plant1 or plant2 or plant3 or plant4\nsnow = snow1 or snow2 or snow3 or snow4 or snow5 or snow6\n\n=======\nSOUNDS\n=======\n\nSFX0 52755904 (hit)\nSFX1 150500 (rescue)\nSFX2 6007707 (push)\nSFX3 13396704 (crush)\nEndLevel 83714500\n\n================\nCOLLISIONLAYERS\n================\n\nMarker,exit\n\nBackground\n\nplayer,soldier,enemy,prisoner,plant,crate\n\nsnow\n\n======\nRULES \n====== \n\nrandom down [no snow|no snow|no snow|no snow|no snow] -> [snow1||||]\n\n[ snow4 ] -> [ snow5 ]\n[ snow3 ] -> [ snow4 ]\n[ snow2 ] -> [ snow3 ]\n[ snow1 ] -> [ snow2 ]\ndown [ snow6|] -> [ |snow1 ]\n[ snow6] -> [ ]\n[ snow5 ] -> [ snow6 ]\n\n[ > player | crate] -> [ > player | > crate ] SFX2\n[ > crate | crate] -> [ > crate | > crate ] SFX2\n\nleft [ > Player | enemy | prisoner ] -> [ player | soldier Rightmarker | ] SFX0\nright [ > Player | enemy | prisoner ] -> [ player | soldier Leftmarker | ] SFX0\nup [ > Player | enemy | prisoner ] -> [ player | soldier Downmarker | ] SFX0\ndown [ > Player | enemy | prisoner ] -> [ player | soldier Upmarker | ] SFX0\n\n[ > Player | enemy | soldier ] -> [ player | | soldier ] SFX0\n\n[ left player ] -> [ left player Leftmarker ]\n[ right player ] -> [ right player Rightmarker ]\n[ up player ] -> [ up player Upmarker ]\n[ down player ] -> [ down player Downmarker ]\n\nstartloop\nlate left [ soldier Leftmarker | No crew ] -> [ Leftmarker | soldier ]\nlate right [ soldier Rightmarker | No crew ] -> [ Rightmarker | soldier ]\nlate up [ soldier Upmarker | No crew ] -> [ Upmarker | soldier ]\nlate down [ soldier Downmarker | No crew ] -> [ Downmarker | soldier ]\nendloop\n\n==============\nWINCONDITIONS\n==============\n\nno prisoner \nsome player on exit\n\n======= \nLEVELS\n=======\n\nmessage je suis fatigue, mortellement fatigue\nmessage mais chaque nuit, quand j arrive a dormir, je suis roi de norvege\n\nzrzrzrzrzrz\nrzrzrzrzrzr\nzrzrz.eperz\nrzpzr.tet.r\nzre.....z.z\nr....a....r\nz.y.....etz\nr..et.typzr\nztepe.zryrz\nrztyt.rzrzr\nzrzrzxzrzrz\n\nmessage depuis ma plus lointaine jeunesse un mal me ronge\nmessage il me faut etre roi, il m’est impossible de vivre autrement!\n\nzrzrzrzrzrz\nrzrzrzrzrzr\nzrzrprprzrz\nrzrzeaezrzr\nzrze...ezrz\nrzepecepezr\nzrye...eyrz\nrzryt.tyrzr\nzrzrz.zrzrz\nrzrzr.rzrzr\nzrzrzxzrzrz\n\nmessage le ciel m a fait pour que je gouverne, il n y a pas d autres remede pour moi\nmessage toi, le tout-puissant, qui m’as mis dans cette situation, il faut que tu assumes les consequences!\n\nzrzrzrzrzrz\nrzrz...zrzr\nzrze.p.ezrz\nrzepeeepezr\nzr.ey.ye.rz\na.........x\nyt.ey.ye.ty\nrzepe.epezr\nzrye...eyrz\nrzry...yrzr\nzrzrytyrzrz\n\nmessage j’ai vaincu\nmessage d'un coup d'epee, j’ai fait sauter la couronne du roi\n\nzrzrzazrzrz\nrzrzr.rzrzr\nzrzrz.zrzrz\nrprpr.rprpr\nzezez.zezez\nr.........r\nz.yt.e.ty.z\nr....e....r\nztyty.ytytz\nrzrzr.rzrzr\nzrzrzxzrzrz\n\nmessage Les boucliers etaient enfonces dans la neige mais il n’y avais personnes derriere eux\n\nzrzrzazrzrz\nrzrzr.rzrzr\nzreez.zeerz\nrz..e....zr\nzpe.tet.epz\nry..zpz..yr\nzpe.rer.epz\nrye.....eyr\nzreey.yeerz\nrztpr.rptzr\nzrztzxztzrz\n\nmessage ils se sont enfuis dans la foret, par les plateux et les marais, et les coteaux\nmessage aussi loin que leurs jambes voulaient les porter\n\nzrzrzazrzrz\nrzrzr.rzrzr\nzrpe...rzrz\nrzty...epzr\nzrpe.c.tyrz\nrztycycepzr\nzrpe.c.tyrz\nrzty...epzr\nzrzrt.ttyrz\nrzrzr.rzrzr\nzrzrzxzrzrz\n\nmessage j’ai defendu l’oeuvre de ma vie et le salut de mon ame\n\nzrzrzazrzrz\nrzrzr.rzrzr\nzpe.z.z.epz\nretyr.r.ter\nz..c...c..z\nr.t.tyt.t.r\nz.z.zrz.z.z\nr..c...c..r\nzet.y.ytyez\nrpe.r.r.epr\nztytzxztttz\n\nmessage ai-je l’air d un roi maintenant?\n\nrzrzrarzrzr\nzpe...zpzpz\nryt..yrerer\nzrz..r....z\nrzpe...y..r\nzry..t..yez\nrpr.tpt.rpr\nzez.zez.ztz\nr...r.r..zr\nz..tz...yzz\nrzrzrxtyrzr\n\nmessage chaque jour je doit regarder l’avenir en souriant\nmessage comme si j’etait sur de mon droit, de ma victoire et de mon succes\n\nzrzrzazrzrz\nr.........r\nz.e.e.e.e.z\nrypypypypyr\nzryryr.ryrz\nrppzpe.epzr\nzeeryt..yrz\nr...rzt...r\nz.y..pe.y.z\nr...t.t...r\nztytzxztytz \n\nmessage n’y a t’il donc la haut aucune loi certaine sur laquelle tout doit se regler?\n\nzrzrzazrzrz\nrprzr.rzrzr\nzezpe.epzrz\nr..e...erzr\nz.y..t..zpz\nr...tzt..er\nzty.zrz.e.z\nrz..r.r...r\nzre.....etz\nrzptt.ttpzr\nzryrzxzryrz\n\nmessage il y a une peur secrete dans cette victoire\n\nrzrzrarzrzr\nz.........z\nr..ctyte..r\nz.epepepc.z\nrytet.tetyr\nzpzpz.zpzpz\nreryr.ryrer\nz..c...c..z\nr..y.y.y..r\nz..c...c..z\nrytztxtztyr\n\nmessage si j’essaie de me voir comme le juste roi, il faut que je le fasse par artifice,\nmessage par une construction astucieuse, une oeuvre audacieuse\n\nrzrzrarzrzr\nzrzrz.zrzrz\nrpe.....epr\nztyt.ty.ytz\nrpe..c..epr\nztycy.ycytz\nrpe..c..epr\nzty.y.y.ytz\nrzr..cc.rzr\nzrztyxytzrz\nrzrzrxrzrzr\n\nmessage le roi etait-il d une autre etoffe que moi?\nmessage serait-il parmis ceux qui ont de la chance?\n\nrzrzrarzrzr\nz.....zpe.z\nr.t.tcryt.r\nz.c.....z.z\nr.tytetcr.r\nz...cpz...z\nretctyr.t.r\nzpz.....c.z\nryrctyt.tyr\nz...c...epz\nrytytxtytyr\n\nmessage mon royaume?\nmessage il est sombre, comme celui de l’ange qui se dressa contre dieu.\n\nrzrzrarzrzr\nzrzr...rzrz\nrzpe....epr\nzrytccccytz\nrpe.....epr\nzty.yt.tytz\nrpe....epzr\nztycccctyrz\nrzpe...epzr\nzryt...tyrz\nrzrztxtzrrr\n\nmessage que n ai-je sacrifie pour ce trone ou je ne suis pas parvenu?\n\nrzrzrarzrzr\nzrz.....zpz\nrz..tct..er\nz..t.c.t..z\nr.tpecept.r\nz.zpecepz.z\nr..y.c.y..r\nz...ycy..tz\nret.....tzr\nzpzty.ytzrz\nryrzrxrzrzr\n\nmessage je voulais etre le plus grand dans ce pays\nmessage seigneur voyez, je m’humilie devant vous, je suis le plus minable de tous!\n\nrzrzrarzrzr\nzrz....rprz\nrz...y..ezr\nzt.e.r..epz\nrpe...ty.yr\nzt.ty...epz\nrpe..y.e.yr\nzte..r...rz\nrzpy....tzr\nzrzry.ytzrz\nrzrzrxrzrzr\n\nmessage je suis un pauvre homme, je n’ais que ma vie a donner\nmessage prennez la et sauvez la pensee royale\nmessage -vous avez perdu-\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", 2, "tick", "tick", 2, "tick", 3, "tick", "tick", 3, "tick", 2, "tick", "tick", 2, "tick", "tick", 2, "tick", 2, "tick", "tick", 2, "tick", 1, "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", 1, "tick", "tick", 1, "tick", "tick", "tick", 0, "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background plant3:0,background plant4 snow3:1,0,background plant4:2,0,2,background plant3 snow4:3,2,0,2,0,\n2,0,background plant4 snow4:4,0,background prisoner:5,background plant1:6,5,6,background plant4 snow1:7,0,7,\n0,1,background enemy:8,background:9,8,9,8,background enemy snow3:10,8,background plant2:11,0,\n2,0,8,9,9,background player snow6:12,background soldier upmarker:13,background upmarker:14,8,5,11,\n0,2,0,8,11,background plant3 snow2:15,2,background leftmarker:16,6,2,background plant3 snow3:17,\nbackground downmarker:18,background downmarker snow2:19,background downmarker snow4:20,background rightmarker:21,8,5,8,16,background snow1:22,9,background exit:23,\n0,2,15,background rightmarker snow4:24,11,0,2,16,background plant1 snow6:25,2,0,\n2,0,8,18,18,20,18,16,14,9,11,\n0,2,8,background snow3:26,8,9,8,8,8,background plant2 snow1:27,15,\n2,0,background plant4 snow6:28,0,5,6,5,6,background plant4 snow2:29,0,2,\n0,2,0,4,15,2,0,2,0,29,17,\n", 13, "1627778178860.0981"] ], [ `gallery: boxes & balloons`, - ["title Boxes & Balloons\nauthor Ben Reilly\nhomepage ben-reilly.com\ncolor_palette amiga\nrealtime_interval 0.1\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\nLightGrey LightGrey\n00010\n11111\n01000\n11111\n00010\n\nExit\nYellow Brown\n.111.\n11111\n11111\n10111\n11111\n\nWall\nDarkGrey DarkGrey\n00010\n11111\n01000\n11111\n00010\n\nPlayer\ndarkbrown LightBrown orange\n.000.\n.111.\n22222\n.222.\n.0.0.\n\nDeadPlayer\ndarkred lightred red darkred\n.000.\n.111.\n22222\n.222.\n.3.3.\n\nCrate\nOrange Lightbrown\n00000\n01110\n01110\n01110\n00000\n\nStuckCrate\nDarkGrey Grey\n00000\n01110\n01110\n01110\n00000\n\nBalloon\nBlue Grey\n.000.\n00000\n.000.\n..1..\n.11..\n\nPoppingBalloon\nBlue Grey\n.0.0.\n0...0\n.0.0.\n..1.\n.1...\n\nLadderMain\nBrown\n.0.0.\n.000.\n.0.0.\n.000.\n.0.0.\n\nLadderTop\nBrown\n.....\n.....\n.0.0.\n.000.\n.0.0.\n\nLadderBottom\nBrown\n.0.0.\n.000.\n.0.0.\n.....\n.....\n\nDownSpike\ndarkgrey red\n..0..\n..0..\n..1..\n.....\n.....\n\nUpSpike\ndarkgrey red\n.....\n.....\n..1..\n..0..\n..0..\n\nRightSpike\nDarkgrey red\n.....\n.....\n001..\n.....\n.....\n\nLeftSpike\nDarkgrey red\n.....\n.....\n..100\n.....\n.....\n\n(Weights/forces acting on objects; Wx, where x is the amount of downward pushing force applied to an object. Note that there is only one negative one, since we do top-down force calculations, so we only need to know if an object is moving up, not with how much force.)\nFreeBody\nWhite\n\nWn1\nGrey\n\nW0\nGrey\n\nW1\nGrey\n\nW2\nGrey\n\nW3\nGrey\n\nW4\nGrey\n\nW5\nGrey\n\nFinal\nBlack\n\nTimeTick\nBlue\n\nAllowMove\nRed\n\nShadow\nBlack\n\nSound\nGrey\n\n\n=======\nLEGEND\n=======\nLadder = LadderMain or LadderTop or LadderBottom\n\nStatus = TimeTick or AllowMove or Sound\n\n. = Background\n# = Wall and Background\nP = Player\nC = Crate\nB = Balloon\n\nt = LadderTop\nL = LadderMain\nm = LadderBottom\n\n- = Crate and LadderMain\n+ = Balloon and LadderMain\n* = Player and LadderMain\n\n/ = Crate and LadderTop\n\n0 = upspike\n1 = rightspike\n2 = downspike\n3 = leftspike\n\nX = Exit\n\nW = Wn1 or W0 or W1 or W2 or W3 or W4 or W5\nFB = FreeBody\n\nUpper = Balloon\nDowner = Crate or Player\nObj = Upper or Downer\n\nSpike = Upspike or Downspike or Leftspike or Rightspike\nvertspike = upspike or downspike\nhorizspike = leftspike or rightspike\n\nGround = Obj or StuckCrate or Wall or Ladder\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 53548707\nBalloon MOVE 798907\n\nsfx5 15551704\nsfx6 12412104\nsfx7 50943104\n\n================\nCOLLISIONLAYERS\n================\n\nStatus\nFB\nW, Final\nShadow\nBackground\nLadder, Exit\nPlayer, Wall, Crate, Balloon, StuckCrate, PoppingBalloon, DeadPlayer\nSpike\n\n======\nRULES\n======\n\n(Mark if player is moving or not.)\n[orthogonal Player] [Exit no AllowMove] -> CANCEL\n[orthogonal Player] [timetick] -> [orthogonal Player] [no timetick]\n[stationary Player] [Exit no timetick] -> [Player] [Exit TimeTick]\n\n(If player moves, resolve gravity on the player before allowing another move.)\n[Player no Shadow] -> [Player Shadow]\nlate [Exit no AllowMove] -> [Exit AllowMove]\nlate [Player no Shadow] [AllowMove] -> [Player] []\nlate [Shadow] -> []\n\n(**********************************************************)\n(***PLAYER-CAUSED MOTION***)\n(**********************************************************)\n\n(Player cannot move vertically, except on ladders, and to exit a ladder from below.)\n[Exit no TimeTick] [vertical Player no Ladder] -> [Exit] [Player]\nup [Exit no TimeTick] [> Player Ladder | no Ladder] -> [Exit] [ Player Ladder | ]\n\n(Player cannot move horizontally mid-air)\ndown [Exit no TimeTick] [horizontal Player no Ladder | no Ground] -> [Exit] [Player |]\n\n(Player pushes things, things push things. Includes vertical movement because players are strong and grip ladders really tightly.)\n[Exit no TimeTick] [> Obj | Obj] -> [Exit] [> Obj | > Obj]\n\n(**********************************************************)\n(***GRAVITY***)\n(**********************************************************)\n(Idea: Apply gravitational forces to objects that are not being moved by the player. Process them from the top of a stack of objects downward, balancing the sum of positive (downward) and negative (upward) forces.\n\nSince we're processing downward, any object determined to be moving upwards is definitely moving upwards. Such an object indicates the bottom of a sub-stack, and the next object in the stack starts the calculation over.\n\nWhen we reach the bottom of a (sub-)stack, the movement of the final, lowest object tells us how the whole (sub-)stack will move, so we apply that movement iteratively upwards.\n\nNOTE: Players can grip ladders really tightly, so they are only affected by stack gravity when the player is not on a ladder.\n)\n\n(***STEP 1: Mark the bodies that the player is not affecting.***)\n[TimeTick] [stationary Balloon no FB] -> [TimeTick] [Balloon FB]\n[TimeTick] [stationary Crate no FB] -> [TimeTick] [Crate FB]\n[TimeTick] [stationary Player no Ladder no FB] -> [TimeTick] [Player FB]\n\n(***STEP 2: Begin the gravity calc at top of each stack.***)\ndown [no FB | Upper FB] -> [ | < Upper FB Wn1]\ndown [no FB | Downer FB] -> [ | > Downer FB W1]\n\n(***STEP 3: Iteratively apply gravity downward on stack.***)\n(1. DOWNWARD MOTION)\n down [> Obj W1 | Upper FB] -> [ Obj | Upper FB W0]\n + down [> Obj W2 | Upper FB] -> [> Obj | > Upper FB W1]\n + down [> Obj W3 | Upper FB] -> [> Obj | > Upper FB W2]\n + down [> Obj W4 | Upper FB] -> [> Obj | > Upper FB W3]\n + down [> Obj W5 | Upper FB] -> [> Obj | > Upper FB W4]\n\n + down [> Obj W1 | Downer FB] -> [> Obj | > Downer FB W2]\n + down [> Obj W2 | Downer FB] -> [> Obj | > Downer FB W3]\n + down [> Obj W3 | Downer FB] -> [> Obj | > Downer FB W4]\n + down [> Obj W4 | Downer FB] -> [> Obj | > Downer FB W5]\n + down [> Obj W5 | Downer FB] -> [> Obj | > Downer FB W5](!!)\n(2. UPWARD MOTION)\n (doesn't affect next; re-apply top-of-stack rules)\n + down [< Obj W | Upper FB] -> [< Obj Final | < Upper FB Wn1]\n + down [< Obj W | Downer FB] -> [< Obj Final | > Downer FB W1]\n(3. NO MOTION)\n (possibly subject to next obj; re-apply top-of-stack rules)\n + down [stationary Obj W | Upper FB] -> [< Obj Final | < Upper FB Wn1]\n + down [stationary Obj W | Downer FB] -> [ Obj | > Downer FB W1]\n\n(***Step 4: Stop at bottom of stack.***)\n(As with beginning a stack, if the stack is pushing into a non-free object, the stack remains still or else it might interrupt the other object's motion.)\ndown [Obj W | no FB] -> [Obj Final | ]\n\n(***Step 5: Apply bottom-of-sub-stack motion to whole sub-stack.)\n(1. UPWARD MOTION)\n up [> Obj Final | Obj FB no Final] -> [> Obj Final| > Obj Final]\n(2. DOWNWARD MOTION)\n + up [< Obj Final | Obj FB no Final] -> [< Obj Final | Obj Final]\n(3. NO MOTION)\n + up [stationary Obj Final | Obj FB no Final] -> [Obj Final | Obj Final]\n\n(**********************************************************)\n(***Cleanup***)\nlate [W] -> []\nlate [Final] -> []\nlate [FreeBody] -> []\n\n(\n(Horizontal motion has the right-of-way.)\nvertical [> Obj | horizontal Obj] -> [Obj | horizontal Obj]\n)\n\n(Spikes)\n[poppingballoon] -> []\nvertical [> balloon | vertspike] -> [> poppingballoon | vertspike]\nhorizontal [> balloon | horizspike] -> [> poppingballoon | horizspike]\nlate [poppingballoon no spike] -> [balloon]\nlate [poppingballoon] -> sfx5\n\nvertical [> Crate | vertspike] -> [> stuckcrate | vertspike]\nhorizontal [> Crate | horizspike] -> [> stuckcrate | horizspike]\nlate [stuckcrate no spike] -> [Crate]\nlate [stuckcrate no Sound] -> [StuckCrate Sound] sfx6\n\nvertical [> Player | vertspike] -> [> DeadPlayer | vertspike]\nhorizontal [> Player | horizspike] -> [> DeadPlayer | horizspike]\nlate [DeadPlayer no spike] -> [Player]\nlate [DeadPlayer no Sound] -> [DeadPlayer Sound] sfx7\n\n==============\nWINCONDITIONS\n==============\n\nAny Exit on Player\n\n=======\nLEVELS\n=======\n\nMessage Version 1.2\n\nMessage Level 1\n\n##########\n##tcc.####\n##l##.####\n##l#..####\n##l#..####\n#pl#....x#\n#######.##\n#######.##\n##########\n\nMessage Level 2\n\n#########\n##..tp..#\n##..l#c.#\n##..l.c.#\n##t.l.c.#\n#.l######\n#.l....x#\n####...##\n#########\n\nMessage Level 3\n\n##########\n##tc....##\n##lc....##\n##lc....##\n##l#....##\n##l.....##\n##lp..#.##\n#.l####.x#\n#.l.....##\n##########\n\nMessage Level 4\n\n##############\n#t...........#\n#l#####......#\n#lc..........#\n#l####.......#\n#lc..........#\n#l###........#\n#lc..........#\n#l##.........#\n#lc..........#\n#l#.........x#\n#l...p....#.##\n##############\n\nMessage Level 5\n\n##########\n##########\n#p.tb..x.#\n###l#.####\n###lb.####\n##########\n##########\n\nMessage Level 6\n\n###############\n#..x.b.......t#\n#####.###.###l#\n#####.###.###l#\n#....p.b.....l#\n#######b#######\n#######b#######\n#######b#######\n###############\n\nMessage Level 7\n\n###############\n#t.......b.x..#\n#l###.###.#####\n#l###.###.#####\n#l...p.b......#\n#######b#######\n#######b#######\n#######b#######\n###############\n\nMessage Level 8\n\n####################\n##.#################\n##t...........x.####\n##l######.#######.##\n##l..............t##\n#######.###.#####l##\n#.#####.###.#####l##\n#t...............l##\n#l###.###.###.######\n#l###.###.###.######\n#l###.###.###.######\n#l.b...b...b...b..p#\n###b###b###b###b####\n###b###b###b###b####\n###b###b###b########\n####################\n\nMessage Level 9\n\n###########\n#####t...##\n#####l##.##\n#x.pclb..##\n##.###b####\n######.####\n###########\n###########\n\nMessage Level 10\n\n#############\n#...........#\n#.x...pt....#\n####c##l##c.#\n#...b..l..b.#\n#......l..b.#\n#############\n\nMessage Level 11\n\n############\n####.#######\n#.p.t.....##\n####lc###.##\n####lc....##\n####lc###.##\n####lb....##\n####lb....##\n####lb.....#\n####l.....x#\n######..#.##\n######..#.##\n############\n############\n\nMessage Level 12\n\n############\n#......c...#\n#t.p.t.b.x.#\n#l###-#b####\n#l...+..####\n#l...l..####\n############\n\nMessage Level 13\n\n###############\n#..cbc......t.#\n#..#.#######l##\n#..#.#.....cl.#\n#..#.#.....bl.#\n#..#.b..c..bl.#\n#..#.#..###.l.#\n#..#.#######l##\n#.t.........l.#\n##l############\n#.l...........#\n#.l.p.....x...#\n#######c#######\n#######b#######\n#######b#######\n###############\n\nMessage Level 14\n\n#############\n##########.##\n##########.##\n##########.##\n#t../..b.p.x#\n#l##+##b##.##\n#l..+...#####\n####+########\n####l########\n####l########\n#############\n\nMessage Level 15\n\n###########\n####ttt####\n####l-l####\n###pl-l.###\n####l+l####\n####l+l####\n#####m#####\n#####.#####\n#####.#####\n#####.#####\n####.....x#\n#####.#.###\n#######.###\n###########\n\nMessage Level 16\n\n###############\n#t.t.p.t.b..x3#\n#l#l###l#.#####\n#l#m###l#.#####\n#l#..bbm#.#####\n#l#####.b.#####\n#l#####.#######\n#l......#######\n###############\n\nMessage Level 17\n\n################\n#############.##\n#t..p.........x#\n#l######.##.#.##\n#l###t.t.##c####\n#l###l#l...c.###\n#l###l#l###b####\n#l###l#l###b####\n#l###l#l###.####\n#l###l.l########\n#l#####l########\n#lbbbbbl########\n#######l########\n#######0########\n################\n\nMessage Level 18\n\n#################\n####c############\n####c############\n####c############\n##t.c...........#\n##l####.........#\n##l.............#\n##l......p.t....#\n##l.....###l....#\n#.l........l....#\n#.l....0...l...x#\n#############.###\n#############.###\n#############.###\n#############.###\n#################\n\nMessage Level 19\n\n############\n#########2##\n#t........##\n#l###.###.##\n#l#tc3#t.t##\n#l#lb.#l#l##\n#l#lb3#l#l.#\n#l.l...l.l.#\n#l###.###-##\n#l###..x#+##\n#l###.###l##\n#l.p.0...l##\n############\n\nMessage Level 20\n\n############\n#t.p.....x.#\n#l#####.####\n#l#2#2#.####\n#l.t....####\n#l#l#c#.####\n#l.-.c..####\n#l#+#b..####\n#l.l###.####\n###l..b3####\n############\n\nMessage Level 21\n\n##########\n####2#####\n#tp..2.x3#\n#l##tt####\n#l..ll...#\n####--####\n#tb.++.bt#\n#l##ll##l#\n#l##ll##l#\n#l##ll##l#\n#l..ll..l#\n##########\n\nMessage Level 22\n\n#####################\n###...........t.#####\n###.##########l..####\n###.#####.....l...###\n#.t.t...2..c..l....##\n#.m#l###.#####l.....#\n##cbl#x.......l.....#\n##b.l###1.....l.p..t#\n##.#l###.##########l#\n##.bl###....2......l#\n##..l#######.###.##l#\n##0.l.........b....l#\n##############b######\n##############b######\n##############b######\n##############b######\n#####################\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick",1,"tick",1,"tick","tick",1,"tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick",1,"tick","tick",1,"tick",3,"tick","tick",3,"tick","tick",3,"tick","tick","tick","tick","tick",3,"tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","restart","tick","tick",1,"tick","tick",1,"tick",1,"tick","tick",1,"tick",1,"tick","tick",1,"tick",1,"tick","tick",1,"tick",1,"tick","tick",1,"tick","tick","tick",1,"tick","tick","tick","tick",1,"tick","tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick",1,"tick","tick","tick","tick",0,"tick","tick",0,"tick","tick","tick","tick",0,"tick",0,"tick","tick",0,"tick",3,"tick","tick",3,"tick","tick",3,"tick",3,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background balloon:1,background laddertop:2,background laddermain:3,3,3,3,0,0,0,0,0,background:4,2,3,3,0,0,4,\n0,0,0,4,0,0,0,0,0,0,4,0,4,0,0,4,0,0,0,1,\n1,1,4,0,0,0,4,0,4,0,0,4,0,0,0,4,0,0,0,0,\n0,0,4,0,4,0,0,4,4,4,4,background player:5,0,0,0,0,0,0,4,0,\n4,0,0,1,0,0,0,4,0,0,0,0,0,0,4,0,4,4,4,4,\n0,0,0,1,1,1,4,0,0,0,4,0,4,0,0,4,0,0,0,4,\n0,0,0,0,0,0,4,4,4,0,0,1,4,4,4,4,0,0,0,0,\n0,0,4,0,4,0,0,4,0,0,0,4,0,0,0,0,0,0,4,0,\n4,4,4,4,0,0,0,1,1,1,4,0,0,0,4,0,4,0,0,4,\n0,0,0,4,0,0,0,0,0,0,4,0,4,0,0,1,4,4,4,4,\n0,0,0,0,0,0,allowmove background exit:6,0,4,0,0,4,0,0,0,4,0,0,0,0,\n0,0,4,0,4,0,0,4,0,0,0,1,1,4,0,0,0,0,0,0,\n4,0,0,4,0,0,0,4,0,0,0,0,0,0,0,4,2,3,3,3,\n0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",16,"1627778214486.7048"] + ["title Boxes & Balloons\nauthor Ben Reilly\nhomepage ben-reilly.com\ncolor_palette amiga\nrealtime_interval 0.1\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\nLightGrey LightGrey\n00010\n11111\n01000\n11111\n00010\n\nExit\nYellow Brown\n.111.\n11111\n11111\n10111\n11111\n\nWall\nDarkGrey DarkGrey\n00010\n11111\n01000\n11111\n00010\n\nPlayer\ndarkbrown LightBrown orange\n.000.\n.111.\n22222\n.222.\n.0.0.\n\nDeadPlayer\ndarkred lightred red darkred\n.000.\n.111.\n22222\n.222.\n.3.3.\n\nCrate\nOrange Lightbrown\n00000\n01110\n01110\n01110\n00000\n\nStuckCrate\nDarkGrey Grey\n00000\n01110\n01110\n01110\n00000\n\nBalloon\nBlue Grey\n.000.\n00000\n.000.\n..1..\n.11..\n\nPoppingBalloon\nBlue Grey\n.0.0.\n0...0\n.0.0.\n..1.\n.1...\n\nLadderMain\nBrown\n.0.0.\n.000.\n.0.0.\n.000.\n.0.0.\n\nLadderTop\nBrown\n.....\n.....\n.0.0.\n.000.\n.0.0.\n\nLadderBottom\nBrown\n.0.0.\n.000.\n.0.0.\n.....\n.....\n\nDownSpike\ndarkgrey red\n..0..\n..0..\n..1..\n.....\n.....\n\nUpSpike\ndarkgrey red\n.....\n.....\n..1..\n..0..\n..0..\n\nRightSpike\nDarkgrey red\n.....\n.....\n001..\n.....\n.....\n\nLeftSpike\nDarkgrey red\n.....\n.....\n..100\n.....\n.....\n\n(Weights/forces acting on objects; Wx, where x is the amount of downward pushing force applied to an object. Note that there is only one negative one, since we do top-down force calculations, so we only need to know if an object is moving up, not with how much force.)\nFreeBody\nWhite\n\nWn1\nGrey\n\nW0\nGrey\n\nW1\nGrey\n\nW2\nGrey\n\nW3\nGrey\n\nW4\nGrey\n\nW5\nGrey\n\nFinal\nBlack\n\nTimeTick\nBlue\n\nAllowMove\nRed\n\nShadow\nBlack\n\nSound\nGrey\n\n\n=======\nLEGEND\n=======\nLadder = LadderMain or LadderTop or LadderBottom\n\nStatus = TimeTick or AllowMove or Sound\n\n. = Background\n# = Wall and Background\nP = Player\nC = Crate\nB = Balloon\n\nt = LadderTop\nL = LadderMain\nm = LadderBottom\n\n- = Crate and LadderMain\n+ = Balloon and LadderMain\n* = Player and LadderMain\n\n/ = Crate and LadderTop\n\n0 = upspike\n1 = rightspike\n2 = downspike\n3 = leftspike\n\nX = Exit\n\nW = Wn1 or W0 or W1 or W2 or W3 or W4 or W5\nFB = FreeBody\n\nUpper = Balloon\nDowner = Crate or Player\nObj = Upper or Downer\n\nSpike = Upspike or Downspike or Leftspike or Rightspike\nvertspike = upspike or downspike\nhorizspike = leftspike or rightspike\n\nGround = Obj or StuckCrate or Wall or Ladder\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 53548707\nBalloon MOVE 798907\n\nsfx5 15551704\nsfx6 12412104\nsfx7 50943104\n\n================\nCOLLISIONLAYERS\n================\n\nStatus\nFB\nW, Final\nShadow\nBackground\nLadder, Exit\nPlayer, Wall, Crate, Balloon, StuckCrate, PoppingBalloon, DeadPlayer\nSpike\n\n======\nRULES\n======\n\n(Mark if player is moving or not.)\n[orthogonal Player] [Exit no AllowMove] -> CANCEL\n[orthogonal Player] [timetick] -> [orthogonal Player] [no timetick]\n[stationary Player] [Exit no timetick] -> [Player] [Exit TimeTick]\n\n(If player moves, resolve gravity on the player before allowing another move.)\n[Player no Shadow] -> [Player Shadow]\nlate [Exit no AllowMove] -> [Exit AllowMove]\nlate [Player no Shadow] [AllowMove] -> [Player] []\nlate [Shadow] -> []\n\n(**********************************************************)\n(***PLAYER-CAUSED MOTION***)\n(**********************************************************)\n\n(Player cannot move vertically, except on ladders, and to exit a ladder from below.)\n[Exit no TimeTick] [vertical Player no Ladder] -> [Exit] [Player]\nup [Exit no TimeTick] [> Player Ladder | no Ladder] -> [Exit] [ Player Ladder | ]\n\n(Player cannot move horizontally mid-air)\ndown [Exit no TimeTick] [horizontal Player no Ladder | no Ground] -> [Exit] [Player |]\n\n(Player pushes things, things push things. Includes vertical movement because players are strong and grip ladders really tightly.)\n[Exit no TimeTick] [> Obj | Obj] -> [Exit] [> Obj | > Obj]\n\n(**********************************************************)\n(***GRAVITY***)\n(**********************************************************)\n(Idea: Apply gravitational forces to objects that are not being moved by the player. Process them from the top of a stack of objects downward, balancing the sum of positive (downward) and negative (upward) forces.\n\nSince we're processing downward, any object determined to be moving upwards is definitely moving upwards. Such an object indicates the bottom of a sub-stack, and the next object in the stack starts the calculation over.\n\nWhen we reach the bottom of a (sub-)stack, the movement of the final, lowest object tells us how the whole (sub-)stack will move, so we apply that movement iteratively upwards.\n\nNOTE: Players can grip ladders really tightly, so they are only affected by stack gravity when the player is not on a ladder.\n)\n\n(***STEP 1: Mark the bodies that the player is not affecting.***)\n[TimeTick] [stationary Balloon no FB] -> [TimeTick] [Balloon FB]\n[TimeTick] [stationary Crate no FB] -> [TimeTick] [Crate FB]\n[TimeTick] [stationary Player no Ladder no FB] -> [TimeTick] [Player FB]\n\n(***STEP 2: Begin the gravity calc at top of each stack.***)\ndown [no FB | Upper FB] -> [ | < Upper FB Wn1]\ndown [no FB | Downer FB] -> [ | > Downer FB W1]\n\n(***STEP 3: Iteratively apply gravity downward on stack.***)\n(1. DOWNWARD MOTION)\n down [> Obj W1 | Upper FB] -> [ Obj | Upper FB W0]\n + down [> Obj W2 | Upper FB] -> [> Obj | > Upper FB W1]\n + down [> Obj W3 | Upper FB] -> [> Obj | > Upper FB W2]\n + down [> Obj W4 | Upper FB] -> [> Obj | > Upper FB W3]\n + down [> Obj W5 | Upper FB] -> [> Obj | > Upper FB W4]\n\n + down [> Obj W1 | Downer FB] -> [> Obj | > Downer FB W2]\n + down [> Obj W2 | Downer FB] -> [> Obj | > Downer FB W3]\n + down [> Obj W3 | Downer FB] -> [> Obj | > Downer FB W4]\n + down [> Obj W4 | Downer FB] -> [> Obj | > Downer FB W5]\n + down [> Obj W5 | Downer FB] -> [> Obj | > Downer FB W5](!!)\n(2. UPWARD MOTION)\n (doesn't affect next; re-apply top-of-stack rules)\n + down [< Obj W | Upper FB] -> [< Obj Final | < Upper FB Wn1]\n + down [< Obj W | Downer FB] -> [< Obj Final | > Downer FB W1]\n(3. NO MOTION)\n (possibly subject to next obj; re-apply top-of-stack rules)\n + down [stationary Obj W | Upper FB] -> [< Obj Final | < Upper FB Wn1]\n + down [stationary Obj W | Downer FB] -> [ Obj | > Downer FB W1]\n\n(***Step 4: Stop at bottom of stack.***)\n(As with beginning a stack, if the stack is pushing into a non-free object, the stack remains still or else it might interrupt the other object's motion.)\ndown [Obj W | no FB] -> [Obj Final | ]\n\n(***Step 5: Apply bottom-of-sub-stack motion to whole sub-stack.)\n(1. UPWARD MOTION)\n up [> Obj Final | Obj FB no Final] -> [> Obj Final| > Obj Final]\n(2. DOWNWARD MOTION)\n + up [< Obj Final | Obj FB no Final] -> [< Obj Final | Obj Final]\n(3. NO MOTION)\n + up [stationary Obj Final | Obj FB no Final] -> [Obj Final | Obj Final]\n\n(**********************************************************)\n(***Cleanup***)\nlate [W] -> []\nlate [Final] -> []\nlate [FreeBody] -> []\n\n(\n(Horizontal motion has the right-of-way.)\nvertical [> Obj | horizontal Obj] -> [Obj | horizontal Obj]\n)\n\n(Spikes)\n[poppingballoon] -> []\nvertical [> balloon | vertspike] -> [> poppingballoon | vertspike]\nhorizontal [> balloon | horizspike] -> [> poppingballoon | horizspike]\nlate [poppingballoon no spike] -> [balloon]\nlate [poppingballoon] -> sfx5\n\nvertical [> Crate | vertspike] -> [> stuckcrate | vertspike]\nhorizontal [> Crate | horizspike] -> [> stuckcrate | horizspike]\nlate [stuckcrate no spike] -> [Crate]\nlate [stuckcrate no Sound] -> [StuckCrate Sound] sfx6\n\nvertical [> Player | vertspike] -> [> DeadPlayer | vertspike]\nhorizontal [> Player | horizspike] -> [> DeadPlayer | horizspike]\nlate [DeadPlayer no spike] -> [Player]\nlate [DeadPlayer no Sound] -> [DeadPlayer Sound] sfx7\n\n==============\nWINCONDITIONS\n==============\n\nAny Exit on Player\n\n=======\nLEVELS\n=======\n\nMessage Version 1.2\n\nMessage Level 1\n\n##########\n##tcc.####\n##l##.####\n##l#..####\n##l#..####\n#pl#....x#\n#######.##\n#######.##\n##########\n\nMessage Level 2\n\n#########\n##..tp..#\n##..l#c.#\n##..l.c.#\n##t.l.c.#\n#.l######\n#.l....x#\n####...##\n#########\n\nMessage Level 3\n\n##########\n##tc....##\n##lc....##\n##lc....##\n##l#....##\n##l.....##\n##lp..#.##\n#.l####.x#\n#.l.....##\n##########\n\nMessage Level 4\n\n##############\n#t...........#\n#l#####......#\n#lc..........#\n#l####.......#\n#lc..........#\n#l###........#\n#lc..........#\n#l##.........#\n#lc..........#\n#l#.........x#\n#l...p....#.##\n##############\n\nMessage Level 5\n\n##########\n##########\n#p.tb..x.#\n###l#.####\n###lb.####\n##########\n##########\n\nMessage Level 6\n\n###############\n#..x.b.......t#\n#####.###.###l#\n#####.###.###l#\n#....p.b.....l#\n#######b#######\n#######b#######\n#######b#######\n###############\n\nMessage Level 7\n\n###############\n#t.......b.x..#\n#l###.###.#####\n#l###.###.#####\n#l...p.b......#\n#######b#######\n#######b#######\n#######b#######\n###############\n\nMessage Level 8\n\n####################\n##.#################\n##t...........x.####\n##l######.#######.##\n##l..............t##\n#######.###.#####l##\n#.#####.###.#####l##\n#t...............l##\n#l###.###.###.######\n#l###.###.###.######\n#l###.###.###.######\n#l.b...b...b...b..p#\n###b###b###b###b####\n###b###b###b###b####\n###b###b###b########\n####################\n\nMessage Level 9\n\n###########\n#####t...##\n#####l##.##\n#x.pclb..##\n##.###b####\n######.####\n###########\n###########\n\nMessage Level 10\n\n#############\n#...........#\n#.x...pt....#\n####c##l##c.#\n#...b..l..b.#\n#......l..b.#\n#############\n\nMessage Level 11\n\n############\n####.#######\n#.p.t.....##\n####lc###.##\n####lc....##\n####lc###.##\n####lb....##\n####lb....##\n####lb.....#\n####l.....x#\n######..#.##\n######..#.##\n############\n############\n\nMessage Level 12\n\n############\n#......c...#\n#t.p.t.b.x.#\n#l###-#b####\n#l...+..####\n#l...l..####\n############\n\nMessage Level 13\n\n###############\n#..cbc......t.#\n#..#.#######l##\n#..#.#.....cl.#\n#..#.#.....bl.#\n#..#.b..c..bl.#\n#..#.#..###.l.#\n#..#.#######l##\n#.t.........l.#\n##l############\n#.l...........#\n#.l.p.....x...#\n#######c#######\n#######b#######\n#######b#######\n###############\n\nMessage Level 14\n\n#############\n##########.##\n##########.##\n##########.##\n#t../..b.p.x#\n#l##+##b##.##\n#l..+...#####\n####+########\n####l########\n####l########\n#############\n\nMessage Level 15\n\n###########\n####ttt####\n####l-l####\n###pl-l.###\n####l+l####\n####l+l####\n#####m#####\n#####.#####\n#####.#####\n#####.#####\n####.....x#\n#####.#.###\n#######.###\n###########\n\nMessage Level 16\n\n###############\n#t.t.p.t.b..x3#\n#l#l###l#.#####\n#l#m###l#.#####\n#l#..bbm#.#####\n#l#####.b.#####\n#l#####.#######\n#l......#######\n###############\n\nMessage Level 17\n\n################\n#############.##\n#t..p.........x#\n#l######.##.#.##\n#l###t.t.##c####\n#l###l#l...c.###\n#l###l#l###b####\n#l###l#l###b####\n#l###l#l###.####\n#l###l.l########\n#l#####l########\n#lbbbbbl########\n#######l########\n#######0########\n################\n\nMessage Level 18\n\n#################\n####c############\n####c############\n####c############\n##t.c...........#\n##l####.........#\n##l.............#\n##l......p.t....#\n##l.....###l....#\n#.l........l....#\n#.l....0...l...x#\n#############.###\n#############.###\n#############.###\n#############.###\n#################\n\nMessage Level 19\n\n############\n#########2##\n#t........##\n#l###.###.##\n#l#tc3#t.t##\n#l#lb.#l#l##\n#l#lb3#l#l.#\n#l.l...l.l.#\n#l###.###-##\n#l###..x#+##\n#l###.###l##\n#l.p.0...l##\n############\n\nMessage Level 20\n\n############\n#t.p.....x.#\n#l#####.####\n#l#2#2#.####\n#l.t....####\n#l#l#c#.####\n#l.-.c..####\n#l#+#b..####\n#l.l###.####\n###l..b3####\n############\n\nMessage Level 21\n\n##########\n####2#####\n#tp..2.x3#\n#l##tt####\n#l..ll...#\n####--####\n#tb.++.bt#\n#l##ll##l#\n#l##ll##l#\n#l##ll##l#\n#l..ll..l#\n##########\n\nMessage Level 22\n\n#####################\n###...........t.#####\n###.##########l..####\n###.#####.....l...###\n#.t.t...2..c..l....##\n#.m#l###.#####l.....#\n##cbl#x.......l.....#\n##b.l###1.....l.p..t#\n##.#l###.##########l#\n##.bl###....2......l#\n##..l#######.###.##l#\n##0.l.........b....l#\n##############b######\n##############b######\n##############b######\n##############b######\n#####################\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", 1, "tick", "tick", 1, "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", 1, "tick", 3, "tick", "tick", 3, "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "restart", "tick", "tick", 1, "tick", "tick", 1, "tick", 1, "tick", "tick", 1, "tick", 1, "tick", "tick", 1, "tick", 1, "tick", "tick", 1, "tick", 1, "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 0, "tick", "tick", 0, "tick", "tick", "tick", "tick", 0, "tick", 0, "tick", "tick", 0, "tick", 3, "tick", "tick", 3, "tick", "tick", 3, "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background balloon:1,background laddertop:2,background laddermain:3,3,3,3,0,0,0,0,0,background:4,2,3,3,0,0,4,\n0,0,0,4,0,0,0,0,0,0,4,0,4,0,0,4,0,0,0,1,\n1,1,4,0,0,0,4,0,4,0,0,4,0,0,0,4,0,0,0,0,\n0,0,4,0,4,0,0,4,4,4,4,background player:5,0,0,0,0,0,0,4,0,\n4,0,0,1,0,0,0,4,0,0,0,0,0,0,4,0,4,4,4,4,\n0,0,0,1,1,1,4,0,0,0,4,0,4,0,0,4,0,0,0,4,\n0,0,0,0,0,0,4,4,4,0,0,1,4,4,4,4,0,0,0,0,\n0,0,4,0,4,0,0,4,0,0,0,4,0,0,0,0,0,0,4,0,\n4,4,4,4,0,0,0,1,1,1,4,0,0,0,4,0,4,0,0,4,\n0,0,0,4,0,0,0,0,0,0,4,0,4,0,0,1,4,4,4,4,\n0,0,0,0,0,0,allowmove background exit:6,0,4,0,0,4,0,0,0,4,0,0,0,0,\n0,0,4,0,4,0,0,4,0,0,0,1,1,4,0,0,0,0,0,0,\n4,0,0,4,0,0,0,4,0,0,0,0,0,0,0,4,2,3,3,3,\n0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 16, "1627778214486.7048"] ], [ `gallery: pushcat junior`, - ["title Pushcat Jr\nauthor Zut!\nhomepage zutgames.com/pushcat\nrealtime_interval 0.3\n\n\n========\nOBJECTS\n========\n\nBackground \n#150f28 #320f45 #200f2e\n20000\n00100\n00002\n10000\n00020\n\nEarth\n #511d37 #1b1132 #9a5971\n20000\n00100\n00002\n10000\n00020\n\nWall \n#584a4e #70a169 #b4d157 \n11111\n12221\n12221\n11111\n00000\n\nPlayer \n#F4D0B4 #9746b2 White DarkBlue\n1...1\n11011\n13031\n12221\n.101.\n\n\nGem1\n#feeba0 #feb704 #ae1a0f\n..0..\n.011.\n01012\n.112.\n..2..\n\nGem2\n#aeddfe #43a9f7 #1f37be\n.001.\n00111\n01012\n01122\n.222.\n\n\n\nBoulder\n#94b4a6 #7d9282 #556a64\n.000.\n00001\n00012\n00122\n.122.\n\nCoin\nWhite\n.....\n..0..\n.000.\n..0..\n.....\n\nExp\nWhite\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nWarn\nBlack\n.....\n.....\n.....\n.....\n.....\n\nVoid\nBlack\n.....\n.....\n.....\n.....\n.....\n\n\nLost\nRed\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nGen\n#b2b2b2 #736c6c #4d4040 black\n.122.\n13232\n12222\n10002\n1...2\n\n\nBomb\n#94b4a6 #7d9282 #556a64 Green\n.000.\n03031\n00012\n03332\n.122.\n\nBoom1\n#94b4a6 #7d9282 #556a64 Red\n.000.\n03031\n00012\n03332\n.122.\n\nBoom2\n#94b4a6 #7d9282 #556a64 Red\n.000.\n03031\n00012\n03332\n.122.\n\n\nBoom3\n#94b4a6 #7d9282 #556a64 Red\n.000.\n03031\n00012\n03332\n.122.\n\nBoom4\nRed\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nBoom5\nRed\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\n+ = Earth\n# = Wall\nP = Player\n0 = Boulder\n1 = Gem1\n2 = Gem2\nC = Coin\nX = Exp\n- = Void\nG = Gen\nW = Warn\nB = Bomb\n\nPushable = Gem1 or Gem2 or 0 or C or B\nFallable = Pushable or C or B\nObstacle = Pushable or Wall or P or C or Earth or Exp \nScorer = Gem1 or Gem2 or C or Exp\nExplodes=Fallable or P or Obstacle or Pushable \n\n\n\n=======\nSOUNDS\n=======\nplayer move 99217507\nsfx0 53304307\nsfx1 35514907\nsfx2 80864700\nsfx3 19899703\n\nEndLevel 96487708\nRestart 32376701\n================\nCOLLISIONLAYERS\n================\n\nBackground\nVoid, Lost, Warn\nPlayer, Wall, Gem1, Gem2, Boulder, Coin, Exp, Gen, Earth, Bomb, Boom1, Boom2, Boom3, Boom4, Boom5\n\n\n======\nRULES \n====== \n\n\n\ndown [ stationary Fallable | no Obstacle] -> [ | down Fallable ] \n\n\n \n\n\n [ > P | C ] -> [ > P | ] SFX2\n [ > P | Earth ] -> [ > P | ] SFX1 \n [ Exp ] -> [ Coin ]\n\nHorizontal [ > P | Pushable ] -> [ > P | > Pushable ] SFX0\nHorizontal [ moving Pushable | Pushable ] -> [moving Pushable| moving Pushable]\n \n[Boom4 ]->[]\n[Explodes | Boom3 ] -> [ Boom4 | Boom3]\n[Explodes | Boom3 ] -> [ Boom4 | Boom4]\n[Boom2] -> [Boom3]\n[Boom1] -> [Boom2] \n\n\nlate [Scorer Warn] -> [Scorer Warn] message Don't lose any gems or coins!\n[Scorer Void] -> Restart\n[0 Void] -> [ Void ]\n[0 Warn] -> [ Warn ]\n\n\n\n\nlate [ Gem1 | Gem1 | Gem1 ] -> [ Exp | Exp | Exp ] SFX3\nlate [ Gem2 | Gem2 | Gem2 ] -> [ Exp | Exp | Exp ] SFX3\n\n\nlate [ Bomb | Bomb | Bomb ] -> [ Boom1 | Boom1 | Boom1 ] \nlate [Boom5]->[Boom4]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nNo Scorer \nNo Lost\n\n\n======= \nLEVELS\n=======\n\n\nMESSAGE Cave 1: School of Push\n\n############\n#p..1.1....#\n##########.#\n#...2..2.#.#\n#.###..#.#.#\n#........#1#\n#.0...2..#+#\n#++#######+#\n#++0+++++0+#\n#+++++0++++#\n############\n\n\nMESSAGE Cave 2: Dirty Paws\n\n........0.....\n.p........1...\n..........0.2.\n............0.\n+++++1++++++++\n+++2+++2+++++2\n++++++2++1++++\n11++2++++++++1\n+++++++1+++2++\n++2++++++++12+\n+1+++1++2+++++\n+++++++++++2++\n+++1++2++1++++\n##############\n\n\nMessage Cave 3: Block Party \n\n..0..000...0++0+++\n.#############+##0\n.#..............#+\n.#.p.......200..#+\n.#....001..010..#+\n0#....010..012..#+\n0#....100..###..#0\n0#....###.......#+\n+#........000...#+\n+#..201...102...#0\n+#..000...###...#+\n0#..000.........#+\n+#..###.....000.#0\n+#..........000.#0\n+#.000..010.020.#0\n+#.002..000.###.#+\n0#.###..100.....#0\n+#WWWWWW###WWWWW#+\n+#WWWWWWWWWWWWWW#+\n+#--------------#+\n\n\nMessage Cave 4: Transport Dept.\n\n.#################.\n##.......0.......##\n#.......00........#\n#....10.000.....0.#\n#..0000000000...0.#\n########+++########\np...............1..\n................#..\n#1................#\n##0............++##\n##+...........00+##\n#+++000+..0.0+0+++#\n#+0000+0.+0.000+++#\n##00++++0+0++0+++##\n.#################.\n\nMESSAGE Cave 5: Rocky One\n\n##############\n#++0+0+++0+0C#\n#+0C++0++01++#\n#++++2++++0++#\n#00+0++0+++0+#\n#0++10+++0+2+#\n#+0++++p++00+#\n#+000+++++++C#\n#+++++0+0+01+#\n#+2+++0++++0+#\n#+00++0+0+0+0#\n#C+0++0++++0+#\n##############\n\n\nMESSAGE Cave 6: Snoop Drop\n\n...............\n..200.020.001..\n..001.010.100..\n..020.000.002..\n..###.###.###..\n...............\n.......p.......\n...............\n...............\n...............\n...............\n...............\n.1...1...2...2.\nW#WWW#WWW#WWW#W\nW#WWW#WWW#WWW#W\n-#---#---#---#-\n\n\nMESSAGE Cave 7: Blockopolis\n\n##############\n#p...........#\n#..00121202..#\n#..12121011..#\n#..11200120..#\n#..22001010..#\n#..10121200..#\n#..02200212..#\n#..01020120..#\n#..10001201..#\n#..00000000..#\n#..########..#\n#WW.######.WW#\n#WW..####..WW#\n#--..####..--#\n\nMESSAGE Cave 8: Scramble\n\n#################\n#+++000+++000+++#\n#+++000+++000+++#\n#000+++000+++000#\n#020+++010+++020#\n#+++000+++000+++#\n#+++010+++010+++#\n#000+++000+++000#\n#000+++020+++000#\n#+++000+++000+++#\n#+++000+++000+++#\n#000+++000+++000#\n#000+++000+++000#\n#+++++++++++++++#\n#...............#\n#.......p.......#\n#WWWWWWWWWWWWWWW#\n#WWWWWWWWWWWWWWW#\n#---------------#\n\nMESSAGE You did it! *HIGH FIVES*\n",["tick","tick","tick",2,2,"tick",2,2,"tick",3,"tick",3,2,"tick",3,"tick",3,3,"tick","tick",0,"tick",0,"tick",3,"tick",0,"tick",1,2,"tick",2,"tick",2,"tick",3,3,"tick",0,"tick",3,3,"tick",2,"tick",3,1,"tick","tick",1,"tick",3,"tick"],"background:0,0,0,0,background earth:1,1,1,background gem1:2,1,1,1,1,1,background wall:3,\n0,0,0,0,0,0,1,2,1,1,2,1,1,3,\n0,0,0,0,1,0,0,1,1,background gem2:4,1,1,1,3,\n0,0,0,0,1,0,4,1,1,1,1,1,2,3,\n0,0,0,0,1,1,0,4,1,1,1,1,1,3,\n0,0,0,0,0,4,2,1,1,1,2,1,1,3,\n0,0,0,0,0,background boulder:5,4,1,1,1,1,1,4,3,\n0,0,0,0,0,0,1,1,2,1,1,1,1,3,\n0,0,0,0,0,background player:6,1,1,1,1,4,1,1,3,\n0,0,0,0,1,0,2,1,1,1,1,1,2,3,\n0,0,2,5,1,1,1,1,1,1,1,1,1,3,\n0,0,0,0,1,1,1,1,4,2,1,4,1,3,\n0,0,4,5,1,1,1,1,1,4,1,1,1,3,\n0,0,0,0,1,4,1,2,1,1,1,1,1,3,\n",3,"1627778261438.5264"] + ["title Pushcat Jr\nauthor Zut!\nhomepage zutgames.com/pushcat\nrealtime_interval 0.3\n\n\n========\nOBJECTS\n========\n\nBackground \n#150f28 #320f45 #200f2e\n20000\n00100\n00002\n10000\n00020\n\nEarth\n #511d37 #1b1132 #9a5971\n20000\n00100\n00002\n10000\n00020\n\nWall \n#584a4e #70a169 #b4d157 \n11111\n12221\n12221\n11111\n00000\n\nPlayer \n#F4D0B4 #9746b2 White DarkBlue\n1...1\n11011\n13031\n12221\n.101.\n\n\nGem1\n#feeba0 #feb704 #ae1a0f\n..0..\n.011.\n01012\n.112.\n..2..\n\nGem2\n#aeddfe #43a9f7 #1f37be\n.001.\n00111\n01012\n01122\n.222.\n\n\n\nBoulder\n#94b4a6 #7d9282 #556a64\n.000.\n00001\n00012\n00122\n.122.\n\nCoin\nWhite\n.....\n..0..\n.000.\n..0..\n.....\n\nExp\nWhite\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nWarn\nBlack\n.....\n.....\n.....\n.....\n.....\n\nVoid\nBlack\n.....\n.....\n.....\n.....\n.....\n\n\nLost\nRed\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nGen\n#b2b2b2 #736c6c #4d4040 black\n.122.\n13232\n12222\n10002\n1...2\n\n\nBomb\n#94b4a6 #7d9282 #556a64 Green\n.000.\n03031\n00012\n03332\n.122.\n\nBoom1\n#94b4a6 #7d9282 #556a64 Red\n.000.\n03031\n00012\n03332\n.122.\n\nBoom2\n#94b4a6 #7d9282 #556a64 Red\n.000.\n03031\n00012\n03332\n.122.\n\n\nBoom3\n#94b4a6 #7d9282 #556a64 Red\n.000.\n03031\n00012\n03332\n.122.\n\nBoom4\nRed\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nBoom5\nRed\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\n+ = Earth\n# = Wall\nP = Player\n0 = Boulder\n1 = Gem1\n2 = Gem2\nC = Coin\nX = Exp\n- = Void\nG = Gen\nW = Warn\nB = Bomb\n\nPushable = Gem1 or Gem2 or 0 or C or B\nFallable = Pushable or C or B\nObstacle = Pushable or Wall or P or C or Earth or Exp \nScorer = Gem1 or Gem2 or C or Exp\nExplodes=Fallable or P or Obstacle or Pushable \n\n\n\n=======\nSOUNDS\n=======\nplayer move 99217507\nsfx0 53304307\nsfx1 35514907\nsfx2 80864700\nsfx3 19899703\n\nEndLevel 96487708\nRestart 32376701\n================\nCOLLISIONLAYERS\n================\n\nBackground\nVoid, Lost, Warn\nPlayer, Wall, Gem1, Gem2, Boulder, Coin, Exp, Gen, Earth, Bomb, Boom1, Boom2, Boom3, Boom4, Boom5\n\n\n======\nRULES \n====== \n\n\n\ndown [ stationary Fallable | no Obstacle] -> [ | down Fallable ] \n\n\n \n\n\n [ > P | C ] -> [ > P | ] SFX2\n [ > P | Earth ] -> [ > P | ] SFX1 \n [ Exp ] -> [ Coin ]\n\nHorizontal [ > P | Pushable ] -> [ > P | > Pushable ] SFX0\nHorizontal [ moving Pushable | Pushable ] -> [moving Pushable| moving Pushable]\n \n[Boom4 ]->[]\n[Explodes | Boom3 ] -> [ Boom4 | Boom3]\n[Explodes | Boom3 ] -> [ Boom4 | Boom4]\n[Boom2] -> [Boom3]\n[Boom1] -> [Boom2] \n\n\nlate [Scorer Warn] -> [Scorer Warn] message Don't lose any gems or coins!\n[Scorer Void] -> Restart\n[0 Void] -> [ Void ]\n[0 Warn] -> [ Warn ]\n\n\n\n\nlate [ Gem1 | Gem1 | Gem1 ] -> [ Exp | Exp | Exp ] SFX3\nlate [ Gem2 | Gem2 | Gem2 ] -> [ Exp | Exp | Exp ] SFX3\n\n\nlate [ Bomb | Bomb | Bomb ] -> [ Boom1 | Boom1 | Boom1 ] \nlate [Boom5]->[Boom4]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nNo Scorer \nNo Lost\n\n\n======= \nLEVELS\n=======\n\n\nMESSAGE Cave 1: School of Push\n\n############\n#p..1.1....#\n##########.#\n#...2..2.#.#\n#.###..#.#.#\n#........#1#\n#.0...2..#+#\n#++#######+#\n#++0+++++0+#\n#+++++0++++#\n############\n\n\nMESSAGE Cave 2: Dirty Paws\n\n........0.....\n.p........1...\n..........0.2.\n............0.\n+++++1++++++++\n+++2+++2+++++2\n++++++2++1++++\n11++2++++++++1\n+++++++1+++2++\n++2++++++++12+\n+1+++1++2+++++\n+++++++++++2++\n+++1++2++1++++\n##############\n\n\nMessage Cave 3: Block Party \n\n..0..000...0++0+++\n.#############+##0\n.#..............#+\n.#.p.......200..#+\n.#....001..010..#+\n0#....010..012..#+\n0#....100..###..#0\n0#....###.......#+\n+#........000...#+\n+#..201...102...#0\n+#..000...###...#+\n0#..000.........#+\n+#..###.....000.#0\n+#..........000.#0\n+#.000..010.020.#0\n+#.002..000.###.#+\n0#.###..100.....#0\n+#WWWWWW###WWWWW#+\n+#WWWWWWWWWWWWWW#+\n+#--------------#+\n\n\nMessage Cave 4: Transport Dept.\n\n.#################.\n##.......0.......##\n#.......00........#\n#....10.000.....0.#\n#..0000000000...0.#\n########+++########\np...............1..\n................#..\n#1................#\n##0............++##\n##+...........00+##\n#+++000+..0.0+0+++#\n#+0000+0.+0.000+++#\n##00++++0+0++0+++##\n.#################.\n\nMESSAGE Cave 5: Rocky One\n\n##############\n#++0+0+++0+0C#\n#+0C++0++01++#\n#++++2++++0++#\n#00+0++0+++0+#\n#0++10+++0+2+#\n#+0++++p++00+#\n#+000+++++++C#\n#+++++0+0+01+#\n#+2+++0++++0+#\n#+00++0+0+0+0#\n#C+0++0++++0+#\n##############\n\n\nMESSAGE Cave 6: Snoop Drop\n\n...............\n..200.020.001..\n..001.010.100..\n..020.000.002..\n..###.###.###..\n...............\n.......p.......\n...............\n...............\n...............\n...............\n...............\n.1...1...2...2.\nW#WWW#WWW#WWW#W\nW#WWW#WWW#WWW#W\n-#---#---#---#-\n\n\nMESSAGE Cave 7: Blockopolis\n\n##############\n#p...........#\n#..00121202..#\n#..12121011..#\n#..11200120..#\n#..22001010..#\n#..10121200..#\n#..02200212..#\n#..01020120..#\n#..10001201..#\n#..00000000..#\n#..########..#\n#WW.######.WW#\n#WW..####..WW#\n#--..####..--#\n\nMESSAGE Cave 8: Scramble\n\n#################\n#+++000+++000+++#\n#+++000+++000+++#\n#000+++000+++000#\n#020+++010+++020#\n#+++000+++000+++#\n#+++010+++010+++#\n#000+++000+++000#\n#000+++020+++000#\n#+++000+++000+++#\n#+++000+++000+++#\n#000+++000+++000#\n#000+++000+++000#\n#+++++++++++++++#\n#...............#\n#.......p.......#\n#WWWWWWWWWWWWWWW#\n#WWWWWWWWWWWWWWW#\n#---------------#\n\nMESSAGE You did it! *HIGH FIVES*\n", ["tick", "tick", "tick", 2, 2, "tick", 2, 2, "tick", 3, "tick", 3, 2, "tick", 3, "tick", 3, 3, "tick", "tick", 0, "tick", 0, "tick", 3, "tick", 0, "tick", 1, 2, "tick", 2, "tick", 2, "tick", 3, 3, "tick", 0, "tick", 3, 3, "tick", 2, "tick", 3, 1, "tick", "tick", 1, "tick", 3, "tick"], "background:0,0,0,0,background earth:1,1,1,background gem1:2,1,1,1,1,1,background wall:3,\n0,0,0,0,0,0,1,2,1,1,2,1,1,3,\n0,0,0,0,1,0,0,1,1,background gem2:4,1,1,1,3,\n0,0,0,0,1,0,4,1,1,1,1,1,2,3,\n0,0,0,0,1,1,0,4,1,1,1,1,1,3,\n0,0,0,0,0,4,2,1,1,1,2,1,1,3,\n0,0,0,0,0,background boulder:5,4,1,1,1,1,1,4,3,\n0,0,0,0,0,0,1,1,2,1,1,1,1,3,\n0,0,0,0,0,background player:6,1,1,1,1,4,1,1,3,\n0,0,0,0,1,0,2,1,1,1,1,1,2,3,\n0,0,2,5,1,1,1,1,1,1,1,1,1,3,\n0,0,0,0,1,1,1,1,4,2,1,4,1,3,\n0,0,4,5,1,1,1,1,1,4,1,1,1,3,\n0,0,0,0,1,4,1,2,1,1,1,1,1,3,\n", 3, "1627778261438.5264"] ], [ `gallery: sokoboros`, -["title Sokoboros\nauthor Trevor Newton\nhomepage https://twitter.com/trevnewt\n\nflickscreen 13x13\nnoaction\nbackground_color #22170B\ntext_color lightgreen\n(youtube wPqwxBnNxWU)\n\n========\nOBJECTS\n========\n\nBackground \nDarkBrown DarkGrey\n00000\n00000\n00000\n00000\n00000\n\nMetal\n#333333\n00000\n00000\n00000\n00000\n00000\n\nEgg\nWhite\n..0..\n.000.\n00000\n00000\n.000.\n\nEggBottom\nLightGrey\n.....\n0....\n000.0\n00000\n.000.\n\nEggShell_1\nLightGrey\n.....\n.0...\n...0.\n..00.\n.....\n\nEggShell_2\nLightGrey\n.....\n.....\n.0...\n.....\n..0..\n\nButton\nRed DarkRed LightGrey\n11111\n11111\n11011\n11111\n11111\n\nPressed\nRed Grey\n00000\n00000\n00000\n00000\n00000\n\nYellowApple\nYellow Green Blue\n..1..\n.000.\n00000\n00000\n.000.\n\nBlueApple\nLightBlue Green Blue\n..1..\n.000.\n00000\n00000\n.000.\n\nNot_Just_Pressed\ntransparent\n\nKey\ntransparent\n\nCheckpoint_Marker\n#333333 #232323\n00000\n01010\n00100\n01010\n00000\n\nDoor1\nLightGrey #333333 LightRed\n00000\n00000\n00100\n00000\n00000\n\nDoor2\nLightGrey #333333 LightRed\n00000\n00000\n01010\n00000\n00000\n\nDoor2_1\nLightGrey #333333 LightRed\n00000\n00000\n02010\n00000\n00000\n\nDoor3\nLightGrey #333333 LightRed\n00000\n01010\n00000\n00100\n00000\n\nDoor3_1\nLightGrey #333333 LightRed\n00000\n02010\n00000\n00100\n00000\n\nDoor3_2\nLightGrey #333333 LightRed\n00000\n02020\n00000\n00100\n00000\n\nDoor4\nLightGrey #333333 LightRed\n00000\n01010\n00000\n01010\n00000\n\nDoor4_1\nLightGrey #333333 LightRed\n00000\n02010\n00000\n01010\n00000\n\nDoor4_2\nLightGrey #333333 LightRed\n00000\n02020\n00000\n01010\n00000\n\nDoor4_3\nLightGrey #333333 LightRed\n00000\n02020\n00000\n02010\n00000\n\n\nDoorXL\nLightGrey #333333\n00000\n00010\n00000\n00010\n00000\n\nDoorXL_1\nLightGrey #333333 LightRed\n00000\n00020\n00000\n00010\n00000\n\nDoorXL_6\nLightGrey #333333 LightRed\n00000\n00020\n00000\n00020\n00000\n\nDoorXM\nLightGrey #333333\n00000\n10101\n00000\n10101\n00000\n\nDoorXM_1\nLightGrey #333333\n00000\n10101\n00000\n10101\n00000\n\nDoorXM_2\nLightGrey #333333 LightRed\n00000\n20101\n00000\n10101\n00000\n\nDoorXM_3\nLightGrey #333333 LightRed\n00000\n20201\n00000\n10101\n00000\n\nDoorXM_4\nLightGrey #333333 LightRed\n00000\n20202\n00000\n10101\n00000\n\nDoorXM_5\nLightGrey #333333 LightRed\n00000\n20202\n00000\n10101\n00000\n\nDoorXM_6\nLightGrey #333333 LightRed\n00000\n20202\n00000\n10101\n00000\n\nDoorXM_7\nLightGrey #333333 LightRed\n00000\n20202\n00000\n20101\n00000\n\nDoorXM_8\nLightGrey #333333 LightRed\n00000\n20202\n00000\n20201\n00000\n\nDoorXM_9\nLightGrey #333333 LightRed\n00000\n20202\n00000\n20202\n00000\n\nDoorXM_10\ntransparent\n\nDoorXR\nLightGrey #333333\n00000\n01000\n00000\n01000\n00000\n\nDoorXR_5\nLightGrey #333333 LightRed\n00000\n02000\n00000\n01000\n00000\n\n\n\nWall \nOrange Brown\n1111.\n10111\n11111\n11101\n.1111\n\nWall_Metal_R\nGrey DarkGrey\n00001\n00001\n00001\n00001\n00001\n\nWall_Metal_L\nGrey DarkGrey\n10000\n10000\n10000\n10000\n10000\n\nWall_metal_U\nGrey DarkGrey\n11111\n00000\n00000\n00000\n00000\n\nWall_metal_D\nGrey DarkGrey\n00000\n00000\n00000\n00000\n11111\n\nWall_metal_DRC\nGrey DarkGrey\n00001\n00001\n00001\n00001\n11111\n\nWall_metal_DLC\nGrey DarkGrey\n10000\n10000\n10000\n10000\n11111\n\nWall_metal_URC\nGrey DarkGrey\n11111\n00001\n00001\n00001\n00001\n\nWall_metal_ULC\nGrey DarkGrey\n11111\n10000\n10000\n10000\n10000\n\nWall_metal_DR\nGrey DarkGrey\n00000\n00000\n00000\n00000\n00001\n\nWall_Metal_UR\nGrey DarkGrey\n00001\n00000\n00000\n00000\n00000\n\nWall_metal_DL\nGrey DarkGrey\n00000\n00000\n00000\n00000\n10000\n\nWall_metal_UL\nGrey DarkGrey\n10000\n00000\n00000\n00000\n00000\n\nPlayerLeft\nGreen Red\n0000.\n.0100\n..000\n.0000\n0000.\n\nPlayerAteLeft\nGreen Red LightGreen\n.000.\n00100\n20000\n00000\n.000.\n\nPlayerRight\nGreen Red\n.0000\n0010.\n000..\n0000.\n.0000\n\nPlayerAteRight\nGreen Red LightGreen\n.000.\n00100\n00002\n00000\n.000.\n\nPlayerUp\nGreen Red\n0...0\n00.00\n01000\n00000\n.000.\n\nPlayerAteUp\nGreen Red LightGreen\n.020.\n00000\n01000\n00000\n.000.\n\nPlayerDown\nGreen Red\n.000.\n00000\n00010\n00.00\n0...0\n\nPlayerAteDown\nGreen Red LightGreen\n.000.\n00000\n00010\n00000\n.020.\n\nBodyHorizontal\nGreen LightGreen\n.....\n00100\n00100\n00100\n.....\n\nBodyVertical\nGreen LightGreen\n.000.\n.000.\n.111.\n.000.\n.000.\n\n(BodyBend_1\nGreen LightGreen\n.....\n..000\n.0111\n.0100\n.010.)\n\nBodyBend_1\nGreen LightGreen\n.....\n..000\n.0100\n.0010\n.000.\n\nBodyBend_2\nGreen LightGreen\n.....\n000..\n0010.\n0100.\n.000.\n\nBodyBend_3\nGreen LightGreen\n.000.\n.0010\n.0100\n..000\n.....\n\nBodyBend_4\nGreen LightGreen\n.000.\n0100.\n0010.\n000..\n.....\n\nTail_1\nGreen LightGreen\n.....\n000..\n0000.\n000..\n.....\n\nTail_2\nGreen LightGreen\n.....\n..000\n.0000\n..000\n.....\n\nTail_3\nGreen LightGreen\n.000.\n.000.\n.000.\n..0..\n.....\n\nTail_4\nGreen LightGreen\n.....\n..0..\n.000.\n.000.\n.000.\n\nTowardsUp\nRED\n..0..\n.000.\n0.0.0\n..0..\n..0..\n\nTowardsLeft\nRED\n..0..\n.0...\n00000\n.0...\n..0..\n\nTowardsRight\nRED\n..0..\n...0.\n00000\n...0.\n..0..\n\nTowardsDown\nRED\n..0..\n..0..\n0.0.0\n.000.\n..0..\n\n=======\nLEGEND\n=======\n\n< = BodyHorizontal and TowardsLeft\n> = BodyBend_1 and TowardsRight and EggShell_2\n^ = BodyVertical and TowardsUp\nv = BodyVertical and TowardsDown\n\n(L = Tail and TowardsLeft\nR = Tail and TowardsRight)\nU = Tail_3 and TowardsUp and EggBottom\n(D = Tail and TowardsDown)\n\n. = Background\n- = Metal\n\n# = Wall\n% = Wall_Metal_R\n| = Wall_Metal_L\n' = Wall_Metal_U\n\" = Wall_Metal_D\n7 = Wall_Metal_UR\n6 = Wall_Metal_UL\n9 = Wall_Metal_DL\n8 = Wall_Metal_DR\n~ = Wall_Metal_URC\n@ = Wall_Metal_ULC\n_ = Wall_Metal_DRC\n! = Wall_Metal_DLC\n\nP = PlayerRight and TowardsRight\n1 = Door1 and Checkpoint_Marker\n2 = Door2 and Checkpoint_Marker\n3 = Door3 and Checkpoint_Marker\n4 = Door4 and Checkpoint_Marker\n+ = DoorXL and Checkpoint_Marker\nX = DoorXM and Checkpoint_Marker\n? = DoorXR and Checkpoint_Marker\nO = Button and Not_Just_Pressed\nA = YellowApple\nH = BlueApple\n\n\nE = EggShell_1\nB = EggBottom\nW = Egg\n\n\n\nMarker = TowardsLeft or TowardsRight or TowardsUp or TowardsDown\nPlayer = PlayerLeft or PlayerRight or PlayerUp or PlayerDown or PlayerAteLeft or PlayerAteRight or PlayerAteUp or PlayerAteDown\nTail = Tail_1 or Tail_2 or Tail_3 or Tail_4\nBodyBends = BodyBend_1 or BodyBend_2 or BodyBend_3 or BodyBend_4\nBodyPart = BodyHorizontal or BodyVertical or BodyBend_1 or BodyBend_2 or BodyBend_3 or BodyBend_4\nPlayerPart = Player or BodyPart or Tail\n\nDoorX = DoorXM or DoorXM_1 or DoorXM_2 or DoorXM_3 or DoorXM_4 or DoorXM_5 or DoorXM_6 or DoorXM_7 or DoorXM_8 or DoorXM_9 or DoorXM_10\n\nDoor = Door1 or Door2 or Door2_1 or Door3 or Door3_1 or Door3_2 or Door4 or Door4_1 or Door4_2 or Door4_3 or DoorXL or DoorXL_1 or DoorXL_6 or DoorXR or DoorXR_5 or DoorX\n\nWalls = Wall or Wall_Metal_U or Wall_Metal_L or Wall_Metal_R or Wall_Metal_D or Wall_Metal_UR or Wall_Metal_DR or Wall_Metal_DL or Wall_Metal_UL or Wall_Metal_URC or Wall_Metal_ULC or Wall_Metal_DRC or Wall_Metal_DLC\nObstacle = Walls or PlayerPart or Door\nApple = YellowApple or BlueApple or Egg\n\n=======\nSOUNDS\n=======\n\nUndo 50721302\n\nTitleScreen 46639909\nSFX0 66467307 (Walk on metal)\nSFX1 41037702 (Eat food)\nSFX2 78277102 (Press Button)\nSFX3 47230702 (Unpress Button)\nSFX4 44928302 (Open Door)\nSFX5 6466307 (Walk on dirt)\nSFX6 72511108 (Forboding...)\n\n================\nCOLLISIONLAYERS\n================\n\nNot_Just_Pressed\nKey\nMarker\nBackground\nMetal, Checkpoint_Marker\nEggShell_1, EggShell_2, EggBottom\nButton\nPressed\nPlayer, BodyPart, Door, Tail, Apple, Walls, Egg\n\n======\nRULES \n======\n\nleft [ > Player TowardsLeft | Apple ] -> [ BodyHorizontal TowardsLeft | PlayerAteLeft TowardsLeft ] SFX1\nleft [ > Player TowardsUp | Apple ] -> [ BodyBend_2 TowardsLeft | PlayerAteLeft TowardsLeft ] SFX1\nleft [ > Player TowardsDown | Apple ] -> [ BodyBend_4 TowardsLeft | PlayerAteLeft TowardsLeft ] SFX1\n\nright [ > Player TowardsRight | Apple ] -> [ BodyHorizontal TowardsRight | PlayerAteRight TowardsRight ] SFX1\nright [ > Player TowardsUp | Apple ] -> [ BodyBend_1 TowardsRight | PlayerAteRight TowardsRight ] SFX1\nright [ > Player TowardsDown | Apple ] -> [ BodyBend_3 TowardsRight | PlayerAteRight TowardsRight ] SFX1 \n\nup [ > Player TowardsUp | Apple ] -> [ BodyVertical TowardsUp | PlayerAteUp TowardsUp ] SFX1\nup [ > Player TowardsLeft | Apple ] -> [ BodyBend_3 TowardsUp | PlayerAteUp TowardsUp ] SFX1\nup [ > Player TowardsRight | Apple ] -> [ BodyBend_4 TowardsUp | PlayerAteUp TowardsUp ] SFX1\n\ndown [ > Player TowardsDown | Apple ] -> [ BodyVertical TowardsDown | PlayerAteDown TowardsDown ] SFX1\ndown [ > Player TowardsLeft | Apple ] -> [ BodyBend_1 TowardsDown | PlayerAteDown TowardsDown ] SFX1\ndown [ > Player TowardsRight | Apple ] -> [ BodyBend_2 TowardsDown | PlayerAteDown TowardsDown ] SFX1\n\n(If the player is NOT about to move onto a button, move the player normally.\nThis is actually somewhat complicated. When the snake head moves, we put a direction marker behind it, indicating which direction it went -- this gives the body parts directions to follow. But we ALSO put a direction marker, of the same direction, on the head's new space. This gets deleted on the next move and replaced with whatever move you make next. The purpose of the marker on top of the head is so that the game can keep in mind which direction you've come from. This is useful for creating new bodyparts when eating apples.)\n\nleft [ > player Marker | No Obstacle No Metal | ] -> [ TowardsLeft | PlayerLeft TowardsLeft | SFX5]\nright [ > player Marker | No Obstacle No Metal | ] -> [ TowardsRight | PlayerRight TowardsRight | SFX5]\nup [ > player Marker | No Obstacle No Metal | ] -> [ TowardsUp | PlayerUp TowardsUp | SFX5]\ndown [ > player Marker | No Obstacle No Metal | ] -> [ TowardsDown | PlayerDown TowardsDown | SFX5]\n\n(Moving on metal.)\n\nleft [ > player Marker | No Obstacle Metal | ] -> [ TowardsLeft | PlayerLeft Metal TowardsLeft | SFX0]\nright [ > player Marker | No Obstacle Metal | ] -> [ TowardsRight | PlayerRight Metal TowardsRight | SFX0]\nup [ > player Marker | No Obstacle Metal | ] -> [ TowardsUp | PlayerUp Metal TowardsUp | SFX0]\ndown [ > player Marker | No Obstacle Metal | ] -> [ TowardsDown | PlayerDown Metal TowardsDown | SFX0]\n\n\nstartloop\nlate left [ BodyPart TowardsLeft | No PlayerPart TowardsLeft ] -> [ TowardsLeft | BodyHorizontal TowardsLeft]\nlate left [ BodyPart TowardsLeft | No PlayerPart TowardsUp ] -> [ TowardsLeft | BodyBend_3 TowardsUp]\nlate left [ BodyPart TowardsLeft | No PlayerPart TowardsDown ] -> [ TowardsLeft | BodyBend_1 TowardsDown]\n\nlate right [ BodyPart TowardsRight | No PlayerPart TowardsRight] -> [ TowardsRight | BodyHorizontal TowardsRight]\nlate right [ BodyPart TowardsRight | No PlayerPart TowardsUp] -> [ TowardsRight | BodyBend_4 TowardsUp]\nlate right [ BodyPart TowardsRight | No PlayerPart TowardsDown] -> [ TowardsRight | BodyBend_2 TowardsDown ]\n\nlate up [ BodyPart TowardsUp | No PlayerPart TowardsUp] -> [ TowardsUp | BodyVertical TowardsUp]\nlate up [ BodyPart TowardsUp | No PlayerPart TowardsLeft] -> [ TowardsUp | BodyBend_2 TowardsLeft]\nlate up [ BodyPart TowardsUp | No PlayerPart TowardsRight] -> [ TowardsUp | BodyBend_1 TowardsRight]\n\nlate down [ BodyPart TowardsDown | No PlayerPart TowardsDown] -> [ TowardsDown | BodyVertical TowardsDown]\nlate down [ BodyPart TowardsDown | No PlayerPart TowardsLeft] -> [ TowardsDown | BodyBend_4 TowardsLeft]\nlate down [ BodyPart TowardsDown | No PlayerPart TowardsRight] -> [ TowardsDown | BodyBend_3 TowardsRight]\nendloop\n\n(If Tail is on button, move it off and handle that.)\n\nlate left [ Tail TowardsLeft Button Pressed | No PlayerPart ] -> [ Button Pressed | Tail_1 ] SFX3\nlate right [ Tail TowardsRight Button Pressed | No PlayerPart ] -> [ Button Pressed | Tail_2 ] SFX3\nlate up [ Tail TowardsUp Button Pressed | No PlayerPart ] -> [ Button Pressed | Tail_3 ] SFX3\nlate down [ Tail TowardsDown Button Pressed| No PlayerPart ] -> [ Button Pressed | Tail_4 ] SFX3\n\n(If Tail is not on button, just move it.)\n\nlate left [ Tail TowardsLeft No Button | No PlayerPart ] -> [ | Tail_1 ]\nlate right [ Tail TowardsRight No Button| No PlayerPart ] -> [ | Tail_2 ]\nlate up [ Tail TowardsUp No Button| No PlayerPart ] -> [ | Tail_3 ]\nlate down [ Tail TowardsDown No Button| No PlayerPart ] -> [ | Tail_4 ]\n\nlate [Tail TowardsRight] -> [Tail_2 TowardsRight]\nlate [Tail TowardsDown] -> [Tail_4 TowardsDown]\nlate [Tail TowardsUp] -> [Tail_3 TowardsUp]\nlate [Tail TowardsLeft] -> [Tail_1 TowardsLeft]\n\n\n\n\nlate [ Player Button No Pressed ] -> [ Player Button Pressed ] SFX2\n\nstartloop\nlate [ Player Button Not_Just_Pressed] [ Door No Key ] -> [ Player Button Not_Just_Pressed] [ Door Key ]\nendloop\n\nstartloop\nlate [ Player Button Not_Just_Pressed ] -> [ Player Button ]\nendloop\n\n\nlate [ Button Pressed No PlayerPart ] [ Door2_1 ] -> [ Button Pressed ] [ Door2 ]\n\nlate [ Button Pressed No PlayerPart ] [ Door3_1 ] -> [ Button Pressed ] [ Door3 ]\nlate [ Button Pressed No PlayerPart ] [ Door3_2 ] -> [ Button Pressed ] [ Door3_1 ]\n\nlate [ Button Pressed No PlayerPart ] [ Door4_1 ] -> [ Button Pressed ] [ Door4 ]\nlate [ Button Pressed No PlayerPart ] [ Door4_2 ] -> [ Button Pressed ] [ Door4_1 ]\nlate [ Button Pressed No PlayerPart ] [ Door4_3 ] -> [ Button Pressed ] [ Door4_2 ]\n\nlate [ Button Pressed No PlayerPart ] [ DoorXM_1 ] -> [ Button Pressed ] [ DoorXM ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_2 ] -> [ Button Pressed ] [ DoorXM_1 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_3 ] -> [ Button Pressed ] [ DoorXM_2 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_4 ] -> [ Button Pressed ] [ DoorXM_3 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_5 ] -> [ Button Pressed ] [ DoorXM_4 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_6 ] -> [ Button Pressed ] [ DoorXM_5 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_7 ] -> [ Button Pressed ] [ DoorXM_6 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_8 ] -> [ Button Pressed ] [ DoorXM_7 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_9 ] -> [ Button Pressed ] [ DoorXM_8 ]\n\n\n\nlate [ DoorXM_9 Key ] -> [ DoorXM_10] SFX6 checkpoint\nlate [ DoorXM_8 Key ] -> [ DoorXM_9 ]\nlate [ DoorXM_7 Key ] -> [ DoorXM_8 ]\nlate [ DoorXM_6 Key ] -> [ DoorXM_7 ]\nlate [ DoorXM_5 Key ] -> [ DoorXM_6 ]\nlate [ DoorXM_4 Key ] -> [ DoorXM_5 ]\nlate [ DoorXM_3 Key ] -> [ DoorXM_4 ]\nlate [ DoorXM_2 Key ] -> [ DoorXM_3 ]\nlate [ DoorXM_1 Key ] -> [ DoorXM_2 ]\nlate [ DoorXM Key ] -> [ DoorXM_1 ]\n\nlate [ Door4_3 Key ] -> [ ] SFX4 checkpoint\nlate [ Door4_2 Key ] -> [ Door4_3 ]\nlate [ Door4_1 Key ] -> [ Door4_2 ]\nlate [ Door4 Key ] -> [ Door4_1 ]\n\nlate [ Door3_2 Key ] -> [ ] SFX4 checkpoint\nlate [ Door3_1 Key ] -> [ Door3_2 ]\nlate [ Door3 Key ] -> [ Door3_1 ]\n\nlate [ Door2_1 Key ] -> [ ] SFX4 checkpoint\nlate [ Door2 Key ] -> [ Door2_1 ]\n\nlate [ Door1 Key ] -> [ ] SFX4 checkpoint\n\nlate [ DoorXM_1] [ DoorXL ] -> [ DoorXM_1 ] [ DoorXL_1 ]\nlate [ DoorXM] [ DoorXL_1 ] -> [ DoorXM ] [ DoorXL ]\nlate [ DoorXM_6] [ DoorXL_1 ] -> [ DoorXM_6 ] [ DoorXL_6 ]\nlate [ DoorXM_5] [ DoorXL_6 ] -> [ DoorXM ] [ DoorXL_1 ]\n\nlate [ DoorXM_5] [ DoorXR ] -> [ DoorXM_5 ] [ DoorXR_5 ]\nlate [ DoorXM_4] [ DoorXR_5 ] -> [ DoorXM ] [ DoorXR ]\n\nlate [ DoorXM_10 ] [ DoorXL_6 ] [ DoorXR_5 ] -> [ ] [ ] [ ]\n\n\nlate [ Button Pressed No PlayerPart ] -> [ Button Not_Just_Pressed ]\n\n(late [ Player Checkpoint_Marker ] -> [ Player Checkpoint_Marker] checkpoint)\n\n(Alternative solution: have a different key for each button, each on different layers. but unite them under a \"key\" word. Then do the multiple keys on doors method)\n\n==============\nWINCONDITIONS\n==============\n\nNo Egg \n\n======= \nLEVELS\n=======\n\nMessage Oh! A baby is born...\n\n#######################################.............\n#............#8\"\"\"\"\"\"\"\"\"9########haaha#.............\n#............#%---------|########aa.aa#.............\n#............#%-o-----o-|########aaaha#.............\n#............#%---------|####...#hhhaa#.............\n#............#%---------!####....hhaaa#.............\n#............#%---------4.......#haaha#.............\n#............#%---------@####....aaa.h#.............\n#............#%---------|####...#aahah#.............\n#............#%---o---o-|########ha.aa#.............\n#............#%---------|########ahaha#.............\n#............#7'''~-@'''6########haaah#.............\n###################.###################.............\n###################.################################\n###################.################################\n##...##########8\"\"_3!\"\"9############################\n##.a.#....#####_-------|####8\"\"\"\"\"\"\"9###############\n###..#..#......--o-o---|####%-------|#####...#######\n####.##.#######~-------|####%-----o-!###......#..###\n###..#...######%-------!####_--------.......#...a###\n##..##.h.######_-o------....2-------@####..####..###\n##.########....--------@####~-----o-|###############\n##...#####..###~-------|####%-------|###############\n##.#........###7''~3@''6####7''~-@''6###############\n##...##############.############.###################\n###################.############.###################\n###################.############.######.......######\n#...................############.######.............\n#.###########################8\"_1!\"9###.............\n#.#######...######.....######%-----|###.............\n#.........h.#####..###.######%-----|###.............\n###########.####..####.######%-----|###.............\n#h..........####.##>p..######%--o--|###.............\n#.#a#.......####.##ue########_-----|###.............\n#a#.#h##########.######......------|###.............\n#....h.#...h####..####..#####~-----|###.............\n#.####....aa#####......######7~+x?@6###.............\n#......#...a##################%---|####.............\n##############################%---|####.............\n..........................####%---|####.............\n..........................#8\"\"_---!\"\"9#.............\n..........................#%---------|#.............\n..........................#%-@'''''~-|#.............\n..........................#%-|#####%-|#.............\n..........................#%-|#...#%-|#.............\n..........................#%-|#.w.#%-|#.............\n..........................#%-|#...#%-|#.............\n..........................#%-|#.-.#%-|#.............\n..........................#%-!_---!_-|#.............\n..........................#%---------|#.............\n..........................#7'''''''''6#.............\n..........................#############.............\n\n(#######################################.............\n#............#8\"\"\"\"\"\"\"\"\"9#########aah##.............\n#............#%---------|########ahaaa#.............\n#............#%-o-----o-|########aaaha#.............\n#............#%---------|###....#hhhha#.............\n#............#%---------!###.....hhaaa#.............\n#............#%---------4.......#haaha#.............\n#............#%---------@###.....aaaah#.............\n#............#%---------|###....#aahah#.............\n#............#%--o----o-|########haaaa#.............\n#............#%---------|########ahaha#.............\n#............#7'''~-@'''6#########aaa##.............\n###################.###################.............\n###################.################################\n###################.################################\n##...##########8\"\"_3!\"\"9############################\n##.a.#....#####_-------|####8\"\"\"\"\"\"\"9###############\n###..#..#......---o----|####%-------|#####...#######\n####.##.#######~-------|####%-----o-!###......#..###\n###..#...######%-------!####_--------.......#...a###\n##..##.h.######_--o-o---....2-------@####..####..###\n##.########....--------@####~-----o-|###############\n##...#####..###~-------|####%-------|###############\n##.#........###7''~3@''6####7''~-@''6###############\n##...##############.############.###################\n###################.############.###################\n###################.############.######.......######\n#...................############.######.............\n#.###########################8\"_1!\"9###.............\n#.....a.....######.....######%-----|###.............\n#...a...h...#####..###.######%-----|###.............\n###########.####..####.######%-----|###.............\n#ha.........####.##>p..######%--o--|###.............\n#.#a#......a####.##uE########_-----|###.............\n#a#.#h##########.######......------|###.............\n#..h.ha.#..#####..####..#####~-----|###.............\n#.####....h.#####......######7~+X?@6###.............\n#......#....##################%---|####.............\n##############################%---|####.............\n..........................####%---|####.............\n..........................#8\"\"_---!\"\"9#.............\n..........................#%---------|#.............\n..........................#%-@'''''~-|#.............\n..........................#%-|#####%-|#.............\n..........................#%-|#...#%-|#.............\n..........................#%-|#.w.#%-|#.............\n..........................#%-|#...#%-|#.............\n..........................#%-|#.-.#%-|#.............\n..........................#%-!_---!_-|#.............\n..........................#%---------|#.............\n..........................#7'''''''''6#.............\n..........................#############.............)\n\nMessage Thank you for playing.\n\n(#######################################.............\n#............#8\"\"\"\"\"\"\"\"\"9#######aaaa###.............\n#............#%---------|#####...aaa###.............\n#............#%-o-----o-|####......####.............\n#............#%---------|####......####.............\n#............#%---------|#####.......##.............\n#............#%---------4........aaa.##.............\n#............#%---------|#####...aaa.##.............\n#............#%---------|#####...aaa.##.............\n#............#%--o---o--|#######.....##.............\n#............#%---------|#######....###.............\n#............#7''''-''''6########..####.............\n###################.###################.............\n###################.################################\n###################.################################\n##...##########8\"\"\"3\"\"\"9############################\n##.a.#....#####%-------|####8\"\"\"\"\"\"\"9###############\n###..#..#......---o----|####%-------|#####...#######\n####.##.#######%-------|####%-----o-|###......#..###\n###..#...######%-------|####%--------.......#...a###\n##..##.a.######%--o-o---....2-------|####..####..###\n##.########....--------|####%-----o-|###############\n##...#####..###%-------|####%-------|###############\n##.#........###7'''3'''6####7'''-'''6###############\n##...##############.############.###################\n###################.############.###################\n###################.############.######.......######\n###############.....############.######.............\n##..............#############8\"\"-\"\"9###.............\n##.###############.....######%-----|###.............\n##..a...a...#####..###.######%-----|###.............\n###...a...a.####..####.######%-----|###.............\n########a##.####.##>p..######%--o--|###.............\n##..a.......####.##u.########%-----|###.............\n##....a.########.######......------|###.............\n##.######...####..####..#####%-----|###.............\n##.........a#####......######7''4''6###.............\n#########...####################.######.............\n###############################...#####.............\n\n.............##########################.............\n.............#8\"\"\"\"\"\"\"\"\"9#######aaaa###.............\n.............#%---------|#####...aaa###.............\n.............#%-o-----o-|####......####.............\n.............#%---------|####......####.............\n.............#%---------|#####.......##.............\n.............#%---------4........aaa.##.............\n.............#%---------|#####...aaa.##.............\n.............#%---------|#####...aaa.##.............\n.............#%-o-----o-|#######.....##.............\n.............#%---------|#######....###.............\n.............#7''''-''''6########..####.............\n.............######.###################.............\n###################.################################\n###################.################################\n##...##########8\"\"\"3\"\"\"9############################\n##.a.#....#####%-------|####8\"\"\"\"\"\"\"9###############\n###..#..#......---o----|####%-------|#####...#######\n####.##.#######%-------|####%-----o-|###......#..###\n###..#...######%-------|####%--------.......#...a###\n##..##.a.######%--o-o---....2-------|####..####..###\n##.########....--------|####%-----o-|###############\n##...#####..###%-------|####%-------|###############\n##.#........###7'''3'''6####7'''-'''6###############\n##...##############.############.###################\n###################.############.###################\n###################.############.######.......######\n###############.....############.######.............\n##..............#####..######8\"\"-\"\"9###.............\n##.##a###########......######%-----|###.............\n##.##.#########....###.######%-----|###.............\n##.##.....#####..####..######%-----|###.............\n##.##.a...#####.##>p..#######%--o--|###.............\n##....###.#####.##u.#########%-----|###.............\n#######....####.######.......------|###.............\n#######a.a.####...####.######%-----|###.............\n#######a.a.######......######7''4''6###.............\n################################.######.............\n###############################...#####.............\n\n####################################################\n#..........###...........###########################\n#...........##...........###8\"\"\"\"\"\"\"9###############\n#...........##...........###%-------|###############\n#..#####.##.##...........###%-----o-|######..#######\n#..##..###..##...........###%-------|###.....##..###\n#.....#####.##..............2--------....##.....a###\n#..#..########...........###%-------|##########..###\n#..###.####.##...........###%-----o-|###############\n#.##..#####.##...........###%-------|###############\n#.#########.##...........###7'''-'''6###############\n#...........##...........#######.###################\n################################.###################\n################################.######.......######\n#...........####################.######.............\n#..########.#####......######8\"\"-\"\"9###.............\n#..########.#####.####.######%-----|###.............\n#..########.###...####.######%-----|###.............\n#..#######..###.#####..######%-----|###.............\n#..#######..###.##.P..#######%--o--|###.............\n#.########..###.##..#########%-----|###.............\n#.########..###.######.......------|###.............\n#.########..###...####.######%-----|###.............\n#.########..#####......######7''4''6###.............\n#...........####################.######.............\n###############################...#####.............\n\n#######################################\n#..........###...........##...........#\n#...........##...........##...........#\n#...........##...........##...........#\n#..#####.##.##...........##...........#\n#..##..###..##...........##...........#\n#.....#####.##...........##...o...o...#\n#..#..########...........##...........#\n#..###.####.##...........##...........#\n#.##..#####.##...........##...........#\n#.#########.##...........##...........#\n#...........##...........##...........#\n################################.######\n################################.######\n#...........####################.######\n#..########.#####......######8\"\"1\"\"9###\n#..########.#####.####.######%-----|###\n#..########.###...####.######%-----|###\n#..#######..###.#####..######%-----|###\n#..#######..###.##.p..#######%--o--|###\n#.########..###.##..#########%-----|###\n#.########..###.######.......------|###\n#.########..###...####.######%-----|###\n#.########..#####......######7''4''6###\n#...........####################.######\n###############################...#####\n\n############################################\n############.........#8\"\"\"\"\"\"\"\"\"##....##...#\n#.........###......o.#%---------...#..##.a.#\n#.........####.......#%-------o-####.###..##\n#.........##........##%---------###...##.###\n#..........3.o........2--o------###.aa##..##\n#.........##.........#%---------#########.##\n#.........####.....o.#%-------o-....###...##\n#.........#####......#%---------###.....#.##\n#.........#####..#####7'''---'''#######...##\n###############.###########.################\n###############.###########.################\n#############....######8\"\"\".\"\"\"9############\n#................######%-------|############\n#.#a###################%-------|############\n#.#......#####....#####%-------|############\n#.#.a....#####.....####%---o---|############\n#...####.#####...p.....--------|############\n######...#####.....####%-------|############\n######a.a.####b.e.#####%-------|############\n######a.a.#############7'''4'''6############\n##########################...###############\n\n#######################8\"\"\"\"\"\"\"\"\"\"\"#########\n############.........#8%----------....##...#\n#.........###......o.#%-------o---.#..##.a.#\n#.........####.......#%---------|'##.###..##\n#.........##........##%--------|6##...##.###\n#..........3.o........2--o-----####.aa##..##\n#.........##.........#%---------|\"#######.##\n#.........####.....o.#%-------o---..###...##\n#.........#####......#7%-----------.....#.##\n#.........#####..######7''---''''''####...##\n###############.###########.################\n###############.###########.################\n#############....######8\"\"\"1\"\"\"9############\n#................######%-------|############\n#.#a###################%-------|############\n#.#......#####....#####%-------|############\n#.#.a....#####.....####%---o---|############\n#...####.#####...p.....--------|############\n######...#####.....####%-------|############\n######a.a.####b.e.#####%-------|############\n######a.a.#############7'''4'''6############\n##########################...###############\n\n#########\n#.......#\n#..1..O.#\n#.P.1.O.#\n#.......#\n#.......#\n#########)\n\n",[3,3,0,0,0,1,1,1,3,1,1,2,2,1,2,1,2,1,2,2,2,3,2,3,2,3,3,3,3,0,3,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,0,3,3,3,3,3,3,3,3,3,0,3,3,2,3,3,3,0,1,2,2,"undo","undo","undo","undo",3,2,3,0,0,1,2,1,1,0,1,1,1,1,2,1,1,1,1,1,1,1,1,1,0,3,3,2,2,2],"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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,background blueapple:2,1,background yellowapple:3,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,0,0,0,1,1,1,1,1,0,0,1,0,0,1,0,1,0,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,3,1,0,1,1,0,1,0,1,0,0,1,0,0,1,0,1,3,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,0,0,1,1,1,0,0,1,0,0,1,0,1,0,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,2,2,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,1,1,0,0,1,0,0,0,1,0,0,1,0,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,2,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,1,0,1,1,0,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,1,0,1,2,0,1,1,0,1,3,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,1,0,1,1,1,1,1,0,2,3,3,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,background wall_metal_dr:4,background wall_metal_r:5,5,5,5,5,5,5,5,5,background wall_metal_ur:6,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,background wall_metal_d:7,background metal:8,8,8,8,8,8,8,8,8,background wall_metal_u:9,0,0,0,4,background wall_metal_drc:10,8,background wall_metal_urc:11,5,10,8,11,6,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,background button not_just_pressed:12,8,8,8,8,8,8,8,9,0,0,0,7,8,8,8,8,8,8,8,9,0,0,0,1,0,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,9,0,0,0,7,8,12,8,8,12,8,8,9,0,0,0,1,0,0,1,1,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,12,8,11,0,0,0,10,8,8,8,8,8,8,8,11,0,0,0,1,0,1,1,0,0,0,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,8,1,1,1,background checkpoint_marker door3_2:13,8,12,8,8,8,8,8,13,1,1,1,1,0,1,0,0,background eggshell_2:14,background eggbottom:15,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,background wall_metal_ulc:16,0,0,0,background wall_metal_dlc:17,8,8,8,8,8,8,8,16,0,0,0,0,0,1,0,0,1,background eggshell_1:18,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,9,0,0,0,7,8,8,8,8,8,8,8,9,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,12,8,8,8,8,8,12,8,9,0,0,0,7,8,8,8,8,8,8,8,9,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,9,0,0,0,background wall_metal_dl:19,background wall_metal_l:20,20,20,17,8,16,20,background wall_metal_ul:21,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,19,20,20,20,17,background checkpoint_marker door4_2:22,16,20,20,20,21,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,4,5,5,5,5,5,5,5,5,5,6,0,\n0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,4,5,5,10,background checkpoint_marker:23,11,5,6,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,7,8,8,8,8,8,8,8,8,8,9,0,\n0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,7,8,8,8,8,8,8,9,0,0,0,0,4,5,5,5,5,10,8,11,6,0,0,0,7,8,16,20,20,20,20,20,17,8,9,0,\n0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,7,8,8,8,8,8,8,9,0,0,0,0,7,8,8,8,8,8,8,8,11,5,5,5,10,8,9,0,0,0,0,0,10,8,9,0,\n0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,7,8,8,8,8,8,8,11,0,0,0,0,10,8,8,8,8,8,8,8,background checkpoint_marker doorxl_1 key:24,8,8,8,8,8,9,0,1,1,1,1,8,8,9,0,\n0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,7,8,8,8,8,8,8,8,1,1,1,1,23,8,8,8,12,8,8,8,background checkpoint_marker doorxm_2:25,8,8,8,8,8,9,0,1,background egg:26,1,8,8,8,9,0,\n0,2,3,3,2,2,2,3,3,2,3,2,0,0,0,0,7,8,8,8,8,8,8,16,0,0,0,0,17,8,8,8,8,8,8,8,background checkpoint_marker doorxr key:27,8,8,8,8,8,9,0,1,1,1,1,8,8,9,0,\n0,3,3,3,2,2,3,3,3,3,2,3,0,0,0,0,7,8,background button pressed tail_4 towardsdown:28,background bodyvertical metal towardsdown:29,29,background button playerdown pressed towardsdown:30,8,9,0,0,0,0,7,8,8,8,8,8,8,8,16,20,20,20,17,8,9,0,0,0,0,0,17,8,9,0,\n0,3,1,3,2,3,3,3,2,1,3,3,0,0,0,0,7,8,8,8,8,8,8,9,0,0,0,0,19,20,20,20,20,20,20,20,21,0,0,0,7,8,11,5,5,5,5,5,10,8,9,0,\n0,2,3,2,3,3,2,1,3,3,2,3,0,0,0,0,19,20,17,8,16,20,20,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8,8,8,8,8,8,8,8,9,0,\n0,3,3,3,3,3,3,2,2,3,3,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,20,20,20,20,20,20,20,20,20,21,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n",1,"1627778292986.5747"] + ["title Sokoboros\nauthor Trevor Newton\nhomepage https://twitter.com/trevnewt\n\nflickscreen 13x13\nnoaction\nbackground_color #22170B\ntext_color lightgreen\n(youtube wPqwxBnNxWU)\n\n========\nOBJECTS\n========\n\nBackground \nDarkBrown DarkGrey\n00000\n00000\n00000\n00000\n00000\n\nMetal\n#333333\n00000\n00000\n00000\n00000\n00000\n\nEgg\nWhite\n..0..\n.000.\n00000\n00000\n.000.\n\nEggBottom\nLightGrey\n.....\n0....\n000.0\n00000\n.000.\n\nEggShell_1\nLightGrey\n.....\n.0...\n...0.\n..00.\n.....\n\nEggShell_2\nLightGrey\n.....\n.....\n.0...\n.....\n..0..\n\nButton\nRed DarkRed LightGrey\n11111\n11111\n11011\n11111\n11111\n\nPressed\nRed Grey\n00000\n00000\n00000\n00000\n00000\n\nYellowApple\nYellow Green Blue\n..1..\n.000.\n00000\n00000\n.000.\n\nBlueApple\nLightBlue Green Blue\n..1..\n.000.\n00000\n00000\n.000.\n\nNot_Just_Pressed\ntransparent\n\nKey\ntransparent\n\nCheckpoint_Marker\n#333333 #232323\n00000\n01010\n00100\n01010\n00000\n\nDoor1\nLightGrey #333333 LightRed\n00000\n00000\n00100\n00000\n00000\n\nDoor2\nLightGrey #333333 LightRed\n00000\n00000\n01010\n00000\n00000\n\nDoor2_1\nLightGrey #333333 LightRed\n00000\n00000\n02010\n00000\n00000\n\nDoor3\nLightGrey #333333 LightRed\n00000\n01010\n00000\n00100\n00000\n\nDoor3_1\nLightGrey #333333 LightRed\n00000\n02010\n00000\n00100\n00000\n\nDoor3_2\nLightGrey #333333 LightRed\n00000\n02020\n00000\n00100\n00000\n\nDoor4\nLightGrey #333333 LightRed\n00000\n01010\n00000\n01010\n00000\n\nDoor4_1\nLightGrey #333333 LightRed\n00000\n02010\n00000\n01010\n00000\n\nDoor4_2\nLightGrey #333333 LightRed\n00000\n02020\n00000\n01010\n00000\n\nDoor4_3\nLightGrey #333333 LightRed\n00000\n02020\n00000\n02010\n00000\n\n\nDoorXL\nLightGrey #333333\n00000\n00010\n00000\n00010\n00000\n\nDoorXL_1\nLightGrey #333333 LightRed\n00000\n00020\n00000\n00010\n00000\n\nDoorXL_6\nLightGrey #333333 LightRed\n00000\n00020\n00000\n00020\n00000\n\nDoorXM\nLightGrey #333333\n00000\n10101\n00000\n10101\n00000\n\nDoorXM_1\nLightGrey #333333\n00000\n10101\n00000\n10101\n00000\n\nDoorXM_2\nLightGrey #333333 LightRed\n00000\n20101\n00000\n10101\n00000\n\nDoorXM_3\nLightGrey #333333 LightRed\n00000\n20201\n00000\n10101\n00000\n\nDoorXM_4\nLightGrey #333333 LightRed\n00000\n20202\n00000\n10101\n00000\n\nDoorXM_5\nLightGrey #333333 LightRed\n00000\n20202\n00000\n10101\n00000\n\nDoorXM_6\nLightGrey #333333 LightRed\n00000\n20202\n00000\n10101\n00000\n\nDoorXM_7\nLightGrey #333333 LightRed\n00000\n20202\n00000\n20101\n00000\n\nDoorXM_8\nLightGrey #333333 LightRed\n00000\n20202\n00000\n20201\n00000\n\nDoorXM_9\nLightGrey #333333 LightRed\n00000\n20202\n00000\n20202\n00000\n\nDoorXM_10\ntransparent\n\nDoorXR\nLightGrey #333333\n00000\n01000\n00000\n01000\n00000\n\nDoorXR_5\nLightGrey #333333 LightRed\n00000\n02000\n00000\n01000\n00000\n\n\n\nWall \nOrange Brown\n1111.\n10111\n11111\n11101\n.1111\n\nWall_Metal_R\nGrey DarkGrey\n00001\n00001\n00001\n00001\n00001\n\nWall_Metal_L\nGrey DarkGrey\n10000\n10000\n10000\n10000\n10000\n\nWall_metal_U\nGrey DarkGrey\n11111\n00000\n00000\n00000\n00000\n\nWall_metal_D\nGrey DarkGrey\n00000\n00000\n00000\n00000\n11111\n\nWall_metal_DRC\nGrey DarkGrey\n00001\n00001\n00001\n00001\n11111\n\nWall_metal_DLC\nGrey DarkGrey\n10000\n10000\n10000\n10000\n11111\n\nWall_metal_URC\nGrey DarkGrey\n11111\n00001\n00001\n00001\n00001\n\nWall_metal_ULC\nGrey DarkGrey\n11111\n10000\n10000\n10000\n10000\n\nWall_metal_DR\nGrey DarkGrey\n00000\n00000\n00000\n00000\n00001\n\nWall_Metal_UR\nGrey DarkGrey\n00001\n00000\n00000\n00000\n00000\n\nWall_metal_DL\nGrey DarkGrey\n00000\n00000\n00000\n00000\n10000\n\nWall_metal_UL\nGrey DarkGrey\n10000\n00000\n00000\n00000\n00000\n\nPlayerLeft\nGreen Red\n0000.\n.0100\n..000\n.0000\n0000.\n\nPlayerAteLeft\nGreen Red LightGreen\n.000.\n00100\n20000\n00000\n.000.\n\nPlayerRight\nGreen Red\n.0000\n0010.\n000..\n0000.\n.0000\n\nPlayerAteRight\nGreen Red LightGreen\n.000.\n00100\n00002\n00000\n.000.\n\nPlayerUp\nGreen Red\n0...0\n00.00\n01000\n00000\n.000.\n\nPlayerAteUp\nGreen Red LightGreen\n.020.\n00000\n01000\n00000\n.000.\n\nPlayerDown\nGreen Red\n.000.\n00000\n00010\n00.00\n0...0\n\nPlayerAteDown\nGreen Red LightGreen\n.000.\n00000\n00010\n00000\n.020.\n\nBodyHorizontal\nGreen LightGreen\n.....\n00100\n00100\n00100\n.....\n\nBodyVertical\nGreen LightGreen\n.000.\n.000.\n.111.\n.000.\n.000.\n\n(BodyBend_1\nGreen LightGreen\n.....\n..000\n.0111\n.0100\n.010.)\n\nBodyBend_1\nGreen LightGreen\n.....\n..000\n.0100\n.0010\n.000.\n\nBodyBend_2\nGreen LightGreen\n.....\n000..\n0010.\n0100.\n.000.\n\nBodyBend_3\nGreen LightGreen\n.000.\n.0010\n.0100\n..000\n.....\n\nBodyBend_4\nGreen LightGreen\n.000.\n0100.\n0010.\n000..\n.....\n\nTail_1\nGreen LightGreen\n.....\n000..\n0000.\n000..\n.....\n\nTail_2\nGreen LightGreen\n.....\n..000\n.0000\n..000\n.....\n\nTail_3\nGreen LightGreen\n.000.\n.000.\n.000.\n..0..\n.....\n\nTail_4\nGreen LightGreen\n.....\n..0..\n.000.\n.000.\n.000.\n\nTowardsUp\nRED\n..0..\n.000.\n0.0.0\n..0..\n..0..\n\nTowardsLeft\nRED\n..0..\n.0...\n00000\n.0...\n..0..\n\nTowardsRight\nRED\n..0..\n...0.\n00000\n...0.\n..0..\n\nTowardsDown\nRED\n..0..\n..0..\n0.0.0\n.000.\n..0..\n\n=======\nLEGEND\n=======\n\n< = BodyHorizontal and TowardsLeft\n> = BodyBend_1 and TowardsRight and EggShell_2\n^ = BodyVertical and TowardsUp\nv = BodyVertical and TowardsDown\n\n(L = Tail and TowardsLeft\nR = Tail and TowardsRight)\nU = Tail_3 and TowardsUp and EggBottom\n(D = Tail and TowardsDown)\n\n. = Background\n- = Metal\n\n# = Wall\n% = Wall_Metal_R\n| = Wall_Metal_L\n' = Wall_Metal_U\n\" = Wall_Metal_D\n7 = Wall_Metal_UR\n6 = Wall_Metal_UL\n9 = Wall_Metal_DL\n8 = Wall_Metal_DR\n~ = Wall_Metal_URC\n@ = Wall_Metal_ULC\n_ = Wall_Metal_DRC\n! = Wall_Metal_DLC\n\nP = PlayerRight and TowardsRight\n1 = Door1 and Checkpoint_Marker\n2 = Door2 and Checkpoint_Marker\n3 = Door3 and Checkpoint_Marker\n4 = Door4 and Checkpoint_Marker\n+ = DoorXL and Checkpoint_Marker\nX = DoorXM and Checkpoint_Marker\n? = DoorXR and Checkpoint_Marker\nO = Button and Not_Just_Pressed\nA = YellowApple\nH = BlueApple\n\n\nE = EggShell_1\nB = EggBottom\nW = Egg\n\n\n\nMarker = TowardsLeft or TowardsRight or TowardsUp or TowardsDown\nPlayer = PlayerLeft or PlayerRight or PlayerUp or PlayerDown or PlayerAteLeft or PlayerAteRight or PlayerAteUp or PlayerAteDown\nTail = Tail_1 or Tail_2 or Tail_3 or Tail_4\nBodyBends = BodyBend_1 or BodyBend_2 or BodyBend_3 or BodyBend_4\nBodyPart = BodyHorizontal or BodyVertical or BodyBend_1 or BodyBend_2 or BodyBend_3 or BodyBend_4\nPlayerPart = Player or BodyPart or Tail\n\nDoorX = DoorXM or DoorXM_1 or DoorXM_2 or DoorXM_3 or DoorXM_4 or DoorXM_5 or DoorXM_6 or DoorXM_7 or DoorXM_8 or DoorXM_9 or DoorXM_10\n\nDoor = Door1 or Door2 or Door2_1 or Door3 or Door3_1 or Door3_2 or Door4 or Door4_1 or Door4_2 or Door4_3 or DoorXL or DoorXL_1 or DoorXL_6 or DoorXR or DoorXR_5 or DoorX\n\nWalls = Wall or Wall_Metal_U or Wall_Metal_L or Wall_Metal_R or Wall_Metal_D or Wall_Metal_UR or Wall_Metal_DR or Wall_Metal_DL or Wall_Metal_UL or Wall_Metal_URC or Wall_Metal_ULC or Wall_Metal_DRC or Wall_Metal_DLC\nObstacle = Walls or PlayerPart or Door\nApple = YellowApple or BlueApple or Egg\n\n=======\nSOUNDS\n=======\n\nUndo 50721302\n\nTitleScreen 46639909\nSFX0 66467307 (Walk on metal)\nSFX1 41037702 (Eat food)\nSFX2 78277102 (Press Button)\nSFX3 47230702 (Unpress Button)\nSFX4 44928302 (Open Door)\nSFX5 6466307 (Walk on dirt)\nSFX6 72511108 (Forboding...)\n\n================\nCOLLISIONLAYERS\n================\n\nNot_Just_Pressed\nKey\nMarker\nBackground\nMetal, Checkpoint_Marker\nEggShell_1, EggShell_2, EggBottom\nButton\nPressed\nPlayer, BodyPart, Door, Tail, Apple, Walls, Egg\n\n======\nRULES \n======\n\nleft [ > Player TowardsLeft | Apple ] -> [ BodyHorizontal TowardsLeft | PlayerAteLeft TowardsLeft ] SFX1\nleft [ > Player TowardsUp | Apple ] -> [ BodyBend_2 TowardsLeft | PlayerAteLeft TowardsLeft ] SFX1\nleft [ > Player TowardsDown | Apple ] -> [ BodyBend_4 TowardsLeft | PlayerAteLeft TowardsLeft ] SFX1\n\nright [ > Player TowardsRight | Apple ] -> [ BodyHorizontal TowardsRight | PlayerAteRight TowardsRight ] SFX1\nright [ > Player TowardsUp | Apple ] -> [ BodyBend_1 TowardsRight | PlayerAteRight TowardsRight ] SFX1\nright [ > Player TowardsDown | Apple ] -> [ BodyBend_3 TowardsRight | PlayerAteRight TowardsRight ] SFX1 \n\nup [ > Player TowardsUp | Apple ] -> [ BodyVertical TowardsUp | PlayerAteUp TowardsUp ] SFX1\nup [ > Player TowardsLeft | Apple ] -> [ BodyBend_3 TowardsUp | PlayerAteUp TowardsUp ] SFX1\nup [ > Player TowardsRight | Apple ] -> [ BodyBend_4 TowardsUp | PlayerAteUp TowardsUp ] SFX1\n\ndown [ > Player TowardsDown | Apple ] -> [ BodyVertical TowardsDown | PlayerAteDown TowardsDown ] SFX1\ndown [ > Player TowardsLeft | Apple ] -> [ BodyBend_1 TowardsDown | PlayerAteDown TowardsDown ] SFX1\ndown [ > Player TowardsRight | Apple ] -> [ BodyBend_2 TowardsDown | PlayerAteDown TowardsDown ] SFX1\n\n(If the player is NOT about to move onto a button, move the player normally.\nThis is actually somewhat complicated. When the snake head moves, we put a direction marker behind it, indicating which direction it went -- this gives the body parts directions to follow. But we ALSO put a direction marker, of the same direction, on the head's new space. This gets deleted on the next move and replaced with whatever move you make next. The purpose of the marker on top of the head is so that the game can keep in mind which direction you've come from. This is useful for creating new bodyparts when eating apples.)\n\nleft [ > player Marker | No Obstacle No Metal | ] -> [ TowardsLeft | PlayerLeft TowardsLeft | SFX5]\nright [ > player Marker | No Obstacle No Metal | ] -> [ TowardsRight | PlayerRight TowardsRight | SFX5]\nup [ > player Marker | No Obstacle No Metal | ] -> [ TowardsUp | PlayerUp TowardsUp | SFX5]\ndown [ > player Marker | No Obstacle No Metal | ] -> [ TowardsDown | PlayerDown TowardsDown | SFX5]\n\n(Moving on metal.)\n\nleft [ > player Marker | No Obstacle Metal | ] -> [ TowardsLeft | PlayerLeft Metal TowardsLeft | SFX0]\nright [ > player Marker | No Obstacle Metal | ] -> [ TowardsRight | PlayerRight Metal TowardsRight | SFX0]\nup [ > player Marker | No Obstacle Metal | ] -> [ TowardsUp | PlayerUp Metal TowardsUp | SFX0]\ndown [ > player Marker | No Obstacle Metal | ] -> [ TowardsDown | PlayerDown Metal TowardsDown | SFX0]\n\n\nstartloop\nlate left [ BodyPart TowardsLeft | No PlayerPart TowardsLeft ] -> [ TowardsLeft | BodyHorizontal TowardsLeft]\nlate left [ BodyPart TowardsLeft | No PlayerPart TowardsUp ] -> [ TowardsLeft | BodyBend_3 TowardsUp]\nlate left [ BodyPart TowardsLeft | No PlayerPart TowardsDown ] -> [ TowardsLeft | BodyBend_1 TowardsDown]\n\nlate right [ BodyPart TowardsRight | No PlayerPart TowardsRight] -> [ TowardsRight | BodyHorizontal TowardsRight]\nlate right [ BodyPart TowardsRight | No PlayerPart TowardsUp] -> [ TowardsRight | BodyBend_4 TowardsUp]\nlate right [ BodyPart TowardsRight | No PlayerPart TowardsDown] -> [ TowardsRight | BodyBend_2 TowardsDown ]\n\nlate up [ BodyPart TowardsUp | No PlayerPart TowardsUp] -> [ TowardsUp | BodyVertical TowardsUp]\nlate up [ BodyPart TowardsUp | No PlayerPart TowardsLeft] -> [ TowardsUp | BodyBend_2 TowardsLeft]\nlate up [ BodyPart TowardsUp | No PlayerPart TowardsRight] -> [ TowardsUp | BodyBend_1 TowardsRight]\n\nlate down [ BodyPart TowardsDown | No PlayerPart TowardsDown] -> [ TowardsDown | BodyVertical TowardsDown]\nlate down [ BodyPart TowardsDown | No PlayerPart TowardsLeft] -> [ TowardsDown | BodyBend_4 TowardsLeft]\nlate down [ BodyPart TowardsDown | No PlayerPart TowardsRight] -> [ TowardsDown | BodyBend_3 TowardsRight]\nendloop\n\n(If Tail is on button, move it off and handle that.)\n\nlate left [ Tail TowardsLeft Button Pressed | No PlayerPart ] -> [ Button Pressed | Tail_1 ] SFX3\nlate right [ Tail TowardsRight Button Pressed | No PlayerPart ] -> [ Button Pressed | Tail_2 ] SFX3\nlate up [ Tail TowardsUp Button Pressed | No PlayerPart ] -> [ Button Pressed | Tail_3 ] SFX3\nlate down [ Tail TowardsDown Button Pressed| No PlayerPart ] -> [ Button Pressed | Tail_4 ] SFX3\n\n(If Tail is not on button, just move it.)\n\nlate left [ Tail TowardsLeft No Button | No PlayerPart ] -> [ | Tail_1 ]\nlate right [ Tail TowardsRight No Button| No PlayerPart ] -> [ | Tail_2 ]\nlate up [ Tail TowardsUp No Button| No PlayerPart ] -> [ | Tail_3 ]\nlate down [ Tail TowardsDown No Button| No PlayerPart ] -> [ | Tail_4 ]\n\nlate [Tail TowardsRight] -> [Tail_2 TowardsRight]\nlate [Tail TowardsDown] -> [Tail_4 TowardsDown]\nlate [Tail TowardsUp] -> [Tail_3 TowardsUp]\nlate [Tail TowardsLeft] -> [Tail_1 TowardsLeft]\n\n\n\n\nlate [ Player Button No Pressed ] -> [ Player Button Pressed ] SFX2\n\nstartloop\nlate [ Player Button Not_Just_Pressed] [ Door No Key ] -> [ Player Button Not_Just_Pressed] [ Door Key ]\nendloop\n\nstartloop\nlate [ Player Button Not_Just_Pressed ] -> [ Player Button ]\nendloop\n\n\nlate [ Button Pressed No PlayerPart ] [ Door2_1 ] -> [ Button Pressed ] [ Door2 ]\n\nlate [ Button Pressed No PlayerPart ] [ Door3_1 ] -> [ Button Pressed ] [ Door3 ]\nlate [ Button Pressed No PlayerPart ] [ Door3_2 ] -> [ Button Pressed ] [ Door3_1 ]\n\nlate [ Button Pressed No PlayerPart ] [ Door4_1 ] -> [ Button Pressed ] [ Door4 ]\nlate [ Button Pressed No PlayerPart ] [ Door4_2 ] -> [ Button Pressed ] [ Door4_1 ]\nlate [ Button Pressed No PlayerPart ] [ Door4_3 ] -> [ Button Pressed ] [ Door4_2 ]\n\nlate [ Button Pressed No PlayerPart ] [ DoorXM_1 ] -> [ Button Pressed ] [ DoorXM ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_2 ] -> [ Button Pressed ] [ DoorXM_1 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_3 ] -> [ Button Pressed ] [ DoorXM_2 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_4 ] -> [ Button Pressed ] [ DoorXM_3 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_5 ] -> [ Button Pressed ] [ DoorXM_4 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_6 ] -> [ Button Pressed ] [ DoorXM_5 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_7 ] -> [ Button Pressed ] [ DoorXM_6 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_8 ] -> [ Button Pressed ] [ DoorXM_7 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_9 ] -> [ Button Pressed ] [ DoorXM_8 ]\n\n\n\nlate [ DoorXM_9 Key ] -> [ DoorXM_10] SFX6 checkpoint\nlate [ DoorXM_8 Key ] -> [ DoorXM_9 ]\nlate [ DoorXM_7 Key ] -> [ DoorXM_8 ]\nlate [ DoorXM_6 Key ] -> [ DoorXM_7 ]\nlate [ DoorXM_5 Key ] -> [ DoorXM_6 ]\nlate [ DoorXM_4 Key ] -> [ DoorXM_5 ]\nlate [ DoorXM_3 Key ] -> [ DoorXM_4 ]\nlate [ DoorXM_2 Key ] -> [ DoorXM_3 ]\nlate [ DoorXM_1 Key ] -> [ DoorXM_2 ]\nlate [ DoorXM Key ] -> [ DoorXM_1 ]\n\nlate [ Door4_3 Key ] -> [ ] SFX4 checkpoint\nlate [ Door4_2 Key ] -> [ Door4_3 ]\nlate [ Door4_1 Key ] -> [ Door4_2 ]\nlate [ Door4 Key ] -> [ Door4_1 ]\n\nlate [ Door3_2 Key ] -> [ ] SFX4 checkpoint\nlate [ Door3_1 Key ] -> [ Door3_2 ]\nlate [ Door3 Key ] -> [ Door3_1 ]\n\nlate [ Door2_1 Key ] -> [ ] SFX4 checkpoint\nlate [ Door2 Key ] -> [ Door2_1 ]\n\nlate [ Door1 Key ] -> [ ] SFX4 checkpoint\n\nlate [ DoorXM_1] [ DoorXL ] -> [ DoorXM_1 ] [ DoorXL_1 ]\nlate [ DoorXM] [ DoorXL_1 ] -> [ DoorXM ] [ DoorXL ]\nlate [ DoorXM_6] [ DoorXL_1 ] -> [ DoorXM_6 ] [ DoorXL_6 ]\nlate [ DoorXM_5] [ DoorXL_6 ] -> [ DoorXM ] [ DoorXL_1 ]\n\nlate [ DoorXM_5] [ DoorXR ] -> [ DoorXM_5 ] [ DoorXR_5 ]\nlate [ DoorXM_4] [ DoorXR_5 ] -> [ DoorXM ] [ DoorXR ]\n\nlate [ DoorXM_10 ] [ DoorXL_6 ] [ DoorXR_5 ] -> [ ] [ ] [ ]\n\n\nlate [ Button Pressed No PlayerPart ] -> [ Button Not_Just_Pressed ]\n\n(late [ Player Checkpoint_Marker ] -> [ Player Checkpoint_Marker] checkpoint)\n\n(Alternative solution: have a different key for each button, each on different layers. but unite them under a \"key\" word. Then do the multiple keys on doors method)\n\n==============\nWINCONDITIONS\n==============\n\nNo Egg \n\n======= \nLEVELS\n=======\n\nMessage Oh! A baby is born...\n\n#######################################.............\n#............#8\"\"\"\"\"\"\"\"\"9########haaha#.............\n#............#%---------|########aa.aa#.............\n#............#%-o-----o-|########aaaha#.............\n#............#%---------|####...#hhhaa#.............\n#............#%---------!####....hhaaa#.............\n#............#%---------4.......#haaha#.............\n#............#%---------@####....aaa.h#.............\n#............#%---------|####...#aahah#.............\n#............#%---o---o-|########ha.aa#.............\n#............#%---------|########ahaha#.............\n#............#7'''~-@'''6########haaah#.............\n###################.###################.............\n###################.################################\n###################.################################\n##...##########8\"\"_3!\"\"9############################\n##.a.#....#####_-------|####8\"\"\"\"\"\"\"9###############\n###..#..#......--o-o---|####%-------|#####...#######\n####.##.#######~-------|####%-----o-!###......#..###\n###..#...######%-------!####_--------.......#...a###\n##..##.h.######_-o------....2-------@####..####..###\n##.########....--------@####~-----o-|###############\n##...#####..###~-------|####%-------|###############\n##.#........###7''~3@''6####7''~-@''6###############\n##...##############.############.###################\n###################.############.###################\n###################.############.######.......######\n#...................############.######.............\n#.###########################8\"_1!\"9###.............\n#.#######...######.....######%-----|###.............\n#.........h.#####..###.######%-----|###.............\n###########.####..####.######%-----|###.............\n#h..........####.##>p..######%--o--|###.............\n#.#a#.......####.##ue########_-----|###.............\n#a#.#h##########.######......------|###.............\n#....h.#...h####..####..#####~-----|###.............\n#.####....aa#####......######7~+x?@6###.............\n#......#...a##################%---|####.............\n##############################%---|####.............\n..........................####%---|####.............\n..........................#8\"\"_---!\"\"9#.............\n..........................#%---------|#.............\n..........................#%-@'''''~-|#.............\n..........................#%-|#####%-|#.............\n..........................#%-|#...#%-|#.............\n..........................#%-|#.w.#%-|#.............\n..........................#%-|#...#%-|#.............\n..........................#%-|#.-.#%-|#.............\n..........................#%-!_---!_-|#.............\n..........................#%---------|#.............\n..........................#7'''''''''6#.............\n..........................#############.............\n\n(#######################################.............\n#............#8\"\"\"\"\"\"\"\"\"9#########aah##.............\n#............#%---------|########ahaaa#.............\n#............#%-o-----o-|########aaaha#.............\n#............#%---------|###....#hhhha#.............\n#............#%---------!###.....hhaaa#.............\n#............#%---------4.......#haaha#.............\n#............#%---------@###.....aaaah#.............\n#............#%---------|###....#aahah#.............\n#............#%--o----o-|########haaaa#.............\n#............#%---------|########ahaha#.............\n#............#7'''~-@'''6#########aaa##.............\n###################.###################.............\n###################.################################\n###################.################################\n##...##########8\"\"_3!\"\"9############################\n##.a.#....#####_-------|####8\"\"\"\"\"\"\"9###############\n###..#..#......---o----|####%-------|#####...#######\n####.##.#######~-------|####%-----o-!###......#..###\n###..#...######%-------!####_--------.......#...a###\n##..##.h.######_--o-o---....2-------@####..####..###\n##.########....--------@####~-----o-|###############\n##...#####..###~-------|####%-------|###############\n##.#........###7''~3@''6####7''~-@''6###############\n##...##############.############.###################\n###################.############.###################\n###################.############.######.......######\n#...................############.######.............\n#.###########################8\"_1!\"9###.............\n#.....a.....######.....######%-----|###.............\n#...a...h...#####..###.######%-----|###.............\n###########.####..####.######%-----|###.............\n#ha.........####.##>p..######%--o--|###.............\n#.#a#......a####.##uE########_-----|###.............\n#a#.#h##########.######......------|###.............\n#..h.ha.#..#####..####..#####~-----|###.............\n#.####....h.#####......######7~+X?@6###.............\n#......#....##################%---|####.............\n##############################%---|####.............\n..........................####%---|####.............\n..........................#8\"\"_---!\"\"9#.............\n..........................#%---------|#.............\n..........................#%-@'''''~-|#.............\n..........................#%-|#####%-|#.............\n..........................#%-|#...#%-|#.............\n..........................#%-|#.w.#%-|#.............\n..........................#%-|#...#%-|#.............\n..........................#%-|#.-.#%-|#.............\n..........................#%-!_---!_-|#.............\n..........................#%---------|#.............\n..........................#7'''''''''6#.............\n..........................#############.............)\n\nMessage Thank you for playing.\n\n(#######################################.............\n#............#8\"\"\"\"\"\"\"\"\"9#######aaaa###.............\n#............#%---------|#####...aaa###.............\n#............#%-o-----o-|####......####.............\n#............#%---------|####......####.............\n#............#%---------|#####.......##.............\n#............#%---------4........aaa.##.............\n#............#%---------|#####...aaa.##.............\n#............#%---------|#####...aaa.##.............\n#............#%--o---o--|#######.....##.............\n#............#%---------|#######....###.............\n#............#7''''-''''6########..####.............\n###################.###################.............\n###################.################################\n###################.################################\n##...##########8\"\"\"3\"\"\"9############################\n##.a.#....#####%-------|####8\"\"\"\"\"\"\"9###############\n###..#..#......---o----|####%-------|#####...#######\n####.##.#######%-------|####%-----o-|###......#..###\n###..#...######%-------|####%--------.......#...a###\n##..##.a.######%--o-o---....2-------|####..####..###\n##.########....--------|####%-----o-|###############\n##...#####..###%-------|####%-------|###############\n##.#........###7'''3'''6####7'''-'''6###############\n##...##############.############.###################\n###################.############.###################\n###################.############.######.......######\n###############.....############.######.............\n##..............#############8\"\"-\"\"9###.............\n##.###############.....######%-----|###.............\n##..a...a...#####..###.######%-----|###.............\n###...a...a.####..####.######%-----|###.............\n########a##.####.##>p..######%--o--|###.............\n##..a.......####.##u.########%-----|###.............\n##....a.########.######......------|###.............\n##.######...####..####..#####%-----|###.............\n##.........a#####......######7''4''6###.............\n#########...####################.######.............\n###############################...#####.............\n\n.............##########################.............\n.............#8\"\"\"\"\"\"\"\"\"9#######aaaa###.............\n.............#%---------|#####...aaa###.............\n.............#%-o-----o-|####......####.............\n.............#%---------|####......####.............\n.............#%---------|#####.......##.............\n.............#%---------4........aaa.##.............\n.............#%---------|#####...aaa.##.............\n.............#%---------|#####...aaa.##.............\n.............#%-o-----o-|#######.....##.............\n.............#%---------|#######....###.............\n.............#7''''-''''6########..####.............\n.............######.###################.............\n###################.################################\n###################.################################\n##...##########8\"\"\"3\"\"\"9############################\n##.a.#....#####%-------|####8\"\"\"\"\"\"\"9###############\n###..#..#......---o----|####%-------|#####...#######\n####.##.#######%-------|####%-----o-|###......#..###\n###..#...######%-------|####%--------.......#...a###\n##..##.a.######%--o-o---....2-------|####..####..###\n##.########....--------|####%-----o-|###############\n##...#####..###%-------|####%-------|###############\n##.#........###7'''3'''6####7'''-'''6###############\n##...##############.############.###################\n###################.############.###################\n###################.############.######.......######\n###############.....############.######.............\n##..............#####..######8\"\"-\"\"9###.............\n##.##a###########......######%-----|###.............\n##.##.#########....###.######%-----|###.............\n##.##.....#####..####..######%-----|###.............\n##.##.a...#####.##>p..#######%--o--|###.............\n##....###.#####.##u.#########%-----|###.............\n#######....####.######.......------|###.............\n#######a.a.####...####.######%-----|###.............\n#######a.a.######......######7''4''6###.............\n################################.######.............\n###############################...#####.............\n\n####################################################\n#..........###...........###########################\n#...........##...........###8\"\"\"\"\"\"\"9###############\n#...........##...........###%-------|###############\n#..#####.##.##...........###%-----o-|######..#######\n#..##..###..##...........###%-------|###.....##..###\n#.....#####.##..............2--------....##.....a###\n#..#..########...........###%-------|##########..###\n#..###.####.##...........###%-----o-|###############\n#.##..#####.##...........###%-------|###############\n#.#########.##...........###7'''-'''6###############\n#...........##...........#######.###################\n################################.###################\n################################.######.......######\n#...........####################.######.............\n#..########.#####......######8\"\"-\"\"9###.............\n#..########.#####.####.######%-----|###.............\n#..########.###...####.######%-----|###.............\n#..#######..###.#####..######%-----|###.............\n#..#######..###.##.P..#######%--o--|###.............\n#.########..###.##..#########%-----|###.............\n#.########..###.######.......------|###.............\n#.########..###...####.######%-----|###.............\n#.########..#####......######7''4''6###.............\n#...........####################.######.............\n###############################...#####.............\n\n#######################################\n#..........###...........##...........#\n#...........##...........##...........#\n#...........##...........##...........#\n#..#####.##.##...........##...........#\n#..##..###..##...........##...........#\n#.....#####.##...........##...o...o...#\n#..#..########...........##...........#\n#..###.####.##...........##...........#\n#.##..#####.##...........##...........#\n#.#########.##...........##...........#\n#...........##...........##...........#\n################################.######\n################################.######\n#...........####################.######\n#..########.#####......######8\"\"1\"\"9###\n#..########.#####.####.######%-----|###\n#..########.###...####.######%-----|###\n#..#######..###.#####..######%-----|###\n#..#######..###.##.p..#######%--o--|###\n#.########..###.##..#########%-----|###\n#.########..###.######.......------|###\n#.########..###...####.######%-----|###\n#.########..#####......######7''4''6###\n#...........####################.######\n###############################...#####\n\n############################################\n############.........#8\"\"\"\"\"\"\"\"\"##....##...#\n#.........###......o.#%---------...#..##.a.#\n#.........####.......#%-------o-####.###..##\n#.........##........##%---------###...##.###\n#..........3.o........2--o------###.aa##..##\n#.........##.........#%---------#########.##\n#.........####.....o.#%-------o-....###...##\n#.........#####......#%---------###.....#.##\n#.........#####..#####7'''---'''#######...##\n###############.###########.################\n###############.###########.################\n#############....######8\"\"\".\"\"\"9############\n#................######%-------|############\n#.#a###################%-------|############\n#.#......#####....#####%-------|############\n#.#.a....#####.....####%---o---|############\n#...####.#####...p.....--------|############\n######...#####.....####%-------|############\n######a.a.####b.e.#####%-------|############\n######a.a.#############7'''4'''6############\n##########################...###############\n\n#######################8\"\"\"\"\"\"\"\"\"\"\"#########\n############.........#8%----------....##...#\n#.........###......o.#%-------o---.#..##.a.#\n#.........####.......#%---------|'##.###..##\n#.........##........##%--------|6##...##.###\n#..........3.o........2--o-----####.aa##..##\n#.........##.........#%---------|\"#######.##\n#.........####.....o.#%-------o---..###...##\n#.........#####......#7%-----------.....#.##\n#.........#####..######7''---''''''####...##\n###############.###########.################\n###############.###########.################\n#############....######8\"\"\"1\"\"\"9############\n#................######%-------|############\n#.#a###################%-------|############\n#.#......#####....#####%-------|############\n#.#.a....#####.....####%---o---|############\n#...####.#####...p.....--------|############\n######...#####.....####%-------|############\n######a.a.####b.e.#####%-------|############\n######a.a.#############7'''4'''6############\n##########################...###############\n\n#########\n#.......#\n#..1..O.#\n#.P.1.O.#\n#.......#\n#.......#\n#########)\n\n", [3, 3, 0, 0, 0, 1, 1, 1, 3, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 3, 2, 3, 2, 3, 3, 3, 3, 0, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 2, 3, 3, 3, 0, 1, 2, 2, "undo", "undo", "undo", "undo", 3, 2, 3, 0, 0, 1, 2, 1, 1, 0, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 3, 3, 2, 2, 2], "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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,background blueapple:2,1,background yellowapple:3,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,0,0,0,1,1,1,1,1,0,0,1,0,0,1,0,1,0,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,3,1,0,1,1,0,1,0,1,0,0,1,0,0,1,0,1,3,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,0,0,1,1,1,0,0,1,0,0,1,0,1,0,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,2,2,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,1,1,0,0,1,0,0,0,1,0,0,1,0,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,2,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,1,0,1,1,0,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,1,0,1,2,0,1,1,0,1,3,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,1,0,1,1,1,1,1,0,2,3,3,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,background wall_metal_dr:4,background wall_metal_r:5,5,5,5,5,5,5,5,5,background wall_metal_ur:6,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,background wall_metal_d:7,background metal:8,8,8,8,8,8,8,8,8,background wall_metal_u:9,0,0,0,4,background wall_metal_drc:10,8,background wall_metal_urc:11,5,10,8,11,6,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,background button not_just_pressed:12,8,8,8,8,8,8,8,9,0,0,0,7,8,8,8,8,8,8,8,9,0,0,0,1,0,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,9,0,0,0,7,8,12,8,8,12,8,8,9,0,0,0,1,0,0,1,1,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,12,8,11,0,0,0,10,8,8,8,8,8,8,8,11,0,0,0,1,0,1,1,0,0,0,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,8,1,1,1,background checkpoint_marker door3_2:13,8,12,8,8,8,8,8,13,1,1,1,1,0,1,0,0,background eggshell_2:14,background eggbottom:15,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,background wall_metal_ulc:16,0,0,0,background wall_metal_dlc:17,8,8,8,8,8,8,8,16,0,0,0,0,0,1,0,0,1,background eggshell_1:18,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,9,0,0,0,7,8,8,8,8,8,8,8,9,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,12,8,8,8,8,8,12,8,9,0,0,0,7,8,8,8,8,8,8,8,9,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,9,0,0,0,background wall_metal_dl:19,background wall_metal_l:20,20,20,17,8,16,20,background wall_metal_ul:21,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,19,20,20,20,17,background checkpoint_marker door4_2:22,16,20,20,20,21,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,4,5,5,5,5,5,5,5,5,5,6,0,\n0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,4,5,5,10,background checkpoint_marker:23,11,5,6,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,7,8,8,8,8,8,8,8,8,8,9,0,\n0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,7,8,8,8,8,8,8,9,0,0,0,0,4,5,5,5,5,10,8,11,6,0,0,0,7,8,16,20,20,20,20,20,17,8,9,0,\n0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,7,8,8,8,8,8,8,9,0,0,0,0,7,8,8,8,8,8,8,8,11,5,5,5,10,8,9,0,0,0,0,0,10,8,9,0,\n0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,7,8,8,8,8,8,8,11,0,0,0,0,10,8,8,8,8,8,8,8,background checkpoint_marker doorxl_1 key:24,8,8,8,8,8,9,0,1,1,1,1,8,8,9,0,\n0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,7,8,8,8,8,8,8,8,1,1,1,1,23,8,8,8,12,8,8,8,background checkpoint_marker doorxm_2:25,8,8,8,8,8,9,0,1,background egg:26,1,8,8,8,9,0,\n0,2,3,3,2,2,2,3,3,2,3,2,0,0,0,0,7,8,8,8,8,8,8,16,0,0,0,0,17,8,8,8,8,8,8,8,background checkpoint_marker doorxr key:27,8,8,8,8,8,9,0,1,1,1,1,8,8,9,0,\n0,3,3,3,2,2,3,3,3,3,2,3,0,0,0,0,7,8,background button pressed tail_4 towardsdown:28,background bodyvertical metal towardsdown:29,29,background button playerdown pressed towardsdown:30,8,9,0,0,0,0,7,8,8,8,8,8,8,8,16,20,20,20,17,8,9,0,0,0,0,0,17,8,9,0,\n0,3,1,3,2,3,3,3,2,1,3,3,0,0,0,0,7,8,8,8,8,8,8,9,0,0,0,0,19,20,20,20,20,20,20,20,21,0,0,0,7,8,11,5,5,5,5,5,10,8,9,0,\n0,2,3,2,3,3,2,1,3,3,2,3,0,0,0,0,19,20,17,8,16,20,20,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8,8,8,8,8,8,8,8,9,0,\n0,3,3,3,3,3,3,2,2,3,3,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,20,20,20,20,20,20,20,20,20,21,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n", 1, "1627778292986.5747"] ], [ `gallery: marble shot`, - ["title Marble Shoot\nauthor Stuart Burfield\nhomepage www.thepixelshelf.com\n\n========\nOBJECTS\n========\n\nBackground \n#CCFFCC\n\nPit\nBlack\n\nGoal \nBlack grey\n.000.\n00000\n00000\n00000\n.000.\n\nWall \nBlack #434f7b Blue #2ebdf5 #99CCFF darkblue #4DDBFF #B2F0FF\n13366\n12226\n52223\n52223\n55511\n\nHBlock\nBlack #293D3D #527A7A #85ADAD #99CCFF #0A0F0F #D1E0E0 white yellow #FF6600\n13367\n12226\n59993\n52223\n55511\n\nVBlock\nBlack #293D3D #527A7A #85ADAD #99CCFF #0A0F0F #D1E0E0 white #FFFF00 orange\n13367\n12826\n52823\n52823\n55511\n\nPlayerStill \nred Green orange Black grey darkred \n.333.\n.222.\n.121.\n20002\n.5.5.\n\nPlayerRight\nred Green orange Black grey\n.333.\n.222.\n.222.\n.0002\n.0.0.\n\nPlayerLeft\nred Green orange Black grey\n.333.\n.222.\n.222.\n2000.\n.0.0.\n\nPlayerDown\nred Green orange Black grey\n.333.\n.222.\n.121.\n20002\n.0.0.\n\nPlayerUp \nred Green orange Black grey\n.333.\n.222.\n22222\n.000.\n.0.0.\n\nGMarbStill\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbRight\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbLeft\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbDown\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbUp\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbGo1\n#001A00 Darkgreen green #b5e622 white\n.....\n.334.\n12234\n01223\n.011.\n\nGMarbGo2\n#001A00 Darkgreen green #b5e622 white\n.....\n.....\n.334.\n12234\n.122.\n\nGMarbGo3\nBlack Darkgreen green #b5e622 white\n.....\n.....\n.....\n.334.\n.223.\n\nGMarbGo4\nBlack Darkgreen green #b5e622 white\n.....\n.....\n.....\n.....\n.334.\n\nGMarbGo5\nBlack Darkgreen green #b5e622 white\n.....\n.....\n.....\n.....\n.....\n\nRMarbStill\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbRight\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbLeft\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbDown\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbUp\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbGo1\n#2E0000 DarkRed red orange yellow\n.....\n.334.\n12234\n01223\n.011.\n\nRMarbGo2\n#2E0000 DarkRed red orange yellow\n.....\n.....\n.334.\n12234\n.122.\n\nRMarbGo3\nBlack DarkRed red orange yellow\n.....\n.....\n.....\n.334.\n.223.\n\nRMarbGo4\nBlack DarkRed red orange yellow\n.....\n.....\n.....\n.....\n.334.\n\nRightArrow\n#2EB82E #FF3300#330000 #FFCC00\n21222\n21122\n21112\n21122\n21222\n\nRightArrowUsed\n#008AE6 #CCEBFF #001F7A #80CCFF \n21222\n21122\n21112\n21122\n21222\n\nLeftArrow\n#2EB82E #FF3300 #330000 #FFCC00 \n22212\n22112\n21112\n22112\n22212\n\nLeftArrowUsed\n#008AE6 #CCEBFF #001F7A #80CCFF \n22212\n22112\n21112\n22112\n22212\n\nUpArrow\n#2EB82E #FF3300 #330000 #FFCC00 \n22222\n22122\n21112\n11111\n22222\n\nUpArrowUsed\n#008AE6 #CCEBFF #001F7A #80CCFF \n22222\n22122\n21112\n11111\n22222\n\nDownArrow\n#2EB82E #FF3300 #330000 #FFCC00 \n22222\n11111\n21112\n22122\n22222\n\nDownArrowUsed\n#008AE6 #CCEBFF #001F7A #80CCFF \n22222\n11111\n21112\n22122\n22222\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = PlayerStill\nG = GMarbStill\nR = RMarbStill\nO = Goal\nH = RightArrow\nJ = LeftArrow\nK = UpArrow\nL = DownArrow\nX = Pit\nB = HBlock\nC = VBlock\n\nPlayer = PlayerStill or PlayerRight or PlayerLeft or PlayerDown or PlayerUp\nGreenMarble = GMarbStill or GMarbRight or GMarbLeft or GMarbDown or GMarbUp\nRedMarble = RMarbStill or RMarbRight or RMarbLeft or RMarbDown or RMarbUp or RMarbGo1 or RMarbGo2 or RMarbGo3 or RMarbGo4\nGreenDisappear = GMarbGo1 or GMarbGo2 or GMarbGo3 or GMarbGo4 or GMarbgo5\nObject = Player or wall or GreenMarble or RedMarble or Hblock or VBlock\nArrow = RightArrow or LeftArrow or DownArrow or UpArrow \nArrowUsed = RightArrowUsed or LeftArrowUsed or DownArrowUsed or UpArrowUsed\n\n\n=======\nSOUNDS\n=======\nsfx0 48153307 (push marble)\nsfx1 87174707 (marble hit)\nsfx2 41179907 (marble stopped)\nsfx3 72781708 (red marble in hole)\nsfx4 50556508 (green marble in hole)\nsfx5 91492107 (marble hit arrow)\nsfx6 90173307 (push arrow)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground \nGoal, RightArrow, LeftArrow, DownArrow, UpArrow, Pit, Arrow, ArrowUsed\nPlayer, Wall, GMarbStill, RMarbStill, Object, GreenDisappear\n\n======\nRULES \n======\n(Marble Disappear)\n[GMarbGo5] -> Restart\n[RMarbGo4] -> []\n[RMarbGo3] -> [RMarbGo4] again\n[RMarbGo2] -> [RMarbGo3] again\n[RMarbGo1] -> [RMarbGo2] again\n[GMarbGo4] -> [GMarbGo5] again\n[GMarbGo3] -> [GMarbGo4] again\n[GMarbGo2] -> [GMarbGo3] again\n[GMarbGo1] -> [GMarbGo2] again\n\n(Player Directions)\nright [ right Player ] -> [ right PlayerRight ]\nleft [ left Player ] -> [ left PlayerLeft ] \nup [ up Player ] -> [ up PlayerUp ] \ndown [ down Player ] -> [ down PlayerDown]\n\n(Block Push)\nHorizontal [ > Player | HBlock ] -> [ > Player | > HBlock ] \nVertical [ > Player | VBlock ] -> [ > Player | > VBlock ]\n\n(Can't Push)\n[ > Player | Goal ] -> [ Player | Goal ]\n\n(Arrow Push)\n[ > Player | Arrow | No Object ] -> [ > Player | > Arrow | No Object ] sfx6\n[ > Player | Arrow | Object ] -> [ Player | Arrow | Object ] sfx6\n[ > Player | Arrow | Arrow ] -> [ Player | Arrow | Arrow ] sfx6\n[ > Player | Arrow | ArrowUsed ] -> [ Player | Arrow | ArrowUsed ] sfx6\n\n[ > Player | ArrowUsed | No Object ] -> [ Player | ArrowUsed | No Object ] sfx6\n[ > Player | ArrowUsed | Object ] -> [ Player | ArrowUsed | Object ] sfx6\n[ > Player | ArrowUsed | Arrow ] -> [ Player | ArrowUsed | Arrow ] sfx6\n[ > Player | ArrowUsed | ArrowUsed ] -> [ Player | ArrowUsed | ArrowUsed ] sfx6\n\n(Marble Pushed)\n[ > PlayerRight | GMarbStill ] -> [ > PlayerStill | > GMarbRight ] sfx0\n[ > PlayerLeft | GMarbStill ] -> [ > PlayerStill | > GMarbLeft ] sfx0\n[ > PlayerDown | GMarbStill ] -> [ > PlayerStill | > GMarbDown ] sfx0\n[ > PlayerUp | GMarbStill ] -> [ > PlayerStill | > GMarbUp ] sfx0\n(Marble collision check)\nright [ GMarbRight | RMarbStill ] -> [ GMarbStill | > RMarbRight ] sfx1\nright [ RMarbRight | RMarbStill ] -> [ RMarbStill | > RMarbRight ] sfx1\nleft [ GMarbLeft | RMarbStill ] -> [ GMarbStill | > RMarbLeft ] sfx1\nleft [ RMarbLeft | RMarbStill ] -> [ RMarbStill | > RMarbLeft ] sfx1\nup [ GMarbUp | RMarbStill ] -> [ GMarbStill | > RMarbUp ] sfx1\nup [ RMarbUp | RMarbStill ] -> [ RMarbStill | > RMarbUp ] sfx1\ndown [ GMarbDown | RMarbStill ] -> [ GMarbStill | > RMarbDown ] sfx1\ndown [ RMarbDown | RMarbStill ] -> [ RMarbStill | > RMarbDown ] sfx1\n(MarblesOnArrows)\n[ RedMarble LeftArrow ] -> [ LEFT RMarbLeft LeftArrowUsed ] again sfx5\n[ RedMarble RightArrow ] -> [ RIGHT RMarbRight RightArrowUsed ] again sfx5\n[ RedMarble DownArrow ] -> [ DOWN RMarbDown DownArrowUsed ] again sfx5\n[ RedMarble UpArrow ] -> [ UP RMarbUp UpArrowUsed ] again sfx5\n[ GreenMarble LeftArrow ] -> [ LEFT GMarbLeft LeftArrowUsed ] again sfx5\n[ GreenMarble RightArrow ] -> [ RIGHT GMarbRight RightArrowUsed ] again sfx5\n[ GreenMarble DownArrow ] -> [ DOWN GMarbDown DownArrowUsed ] again sfx5\n[ GreenMarble UpArrow ] -> [ UP GMarbUp UpArrowUsed ] again sfx5\n\n[ RedMarble LeftArrowUsed ] -> [ LEFT RMarbLeft LeftArrowUsed ] again sfx5\n[ RedMarble RightArrowUsed ] -> [ RIGHT RMarbRight RightArrowUsed ] again sfx5\n[ RedMarble DownArrowUsed ] -> [ DOWN RMarbDown DownArrowUsed ] again sfx5\n[ RedMarble UpArrowUsed ] -> [ UP RMarbUp UpArrowUsed ] again sfx5\n[ GreenMarble LeftArrowUsed ] -> [ LEFT GMarbLeft LeftArrowUsed ] again sfx5\n[ GreenMarble RightArrowUsed ] -> [ RIGHT GMarbRight RightArrowUsed ] again sfx5\n[ GreenMarble DownArrowUsed ] -> [ DOWN GMarbDown DownArrowUsed ] again sfx5\n[ GreenMarble UpArrowUsed ] -> [ UP GMarbUp UpArrowUsed ] again sfx5\n(Marble In Hole)\nright [ RMarbRight | Goal ] -> [ > RMarbGo1 | Goal ] again sfx4\nleft [ RMarbLeft | Goal ] -> [ > RMarbGo1 | Goal ] again sfx4\nup [ RMarbUp | Goal ] -> [ > RMarbGo1 | Goal ] again sfx4\ndown [ RMarbDown | Goal ] -> [ > RMarbGo1 | Goal ] again sfx4\nright [ GMarbRight | Goal ] -> [ > GMarbGo1 | Goal ] again sfx3\nleft [ GMarbLeft | Goal ] -> [ > GMarbGo1 | Goal ] again sfx3\nup [ GMarbUp | Goal ] -> [ > GMarbGo1 | Goal ] again sfx3\ndown [ GMarbDown | Goal ] -> [ > GMarbGo1 | Goal ] again sfx3\n(Marble Move Loop)\nrandom left [ GMarbLeft | No Object ] -> [ | GMarbLeft ] again\nrandom left [ RMarbLeft | No Object ] -> [ | RMarbLeft ] again\nrandom right [ GMarbRight | No Object ] -> [ | GMarbRight ] again\nrandom right [ RMarbRight | No Object ] -> [ | RMarbRight ] again\nrandom down [ RMarbDown | No Object ] -> [ | RMarbDown ] again\nrandom down [ GMarbDown | No Object ] -> [ | GMarbDown ] again\nrandom up [ RMarbUp | No Object ] -> [ | RMarbUp ] again\nrandom up [ GMarbUp | No Object ] -> [ | GMarbUp ] again\n\n(Green Marble Stop)\nright [ GMarbRight | Wall ] -> [ GMarbStill | Wall ] sfx2\nleft [ GMarbLeft | Wall ] -> [ GMarbStill | Wall ] sfx2\ndown [ GMarbDown | Wall ] -> [ GMarbStill | Wall ] sfx2\nup [ GMarbUp | Wall ] -> [ GMarbStill | Wall ] sfx2\nright [ GMarbRight | HBlock ] -> [ GMarbStill | HBlock ] sfx2\nleft [ GMarbLeft | HBlock ] -> [ GMarbStill | HBlock ] sfx2\ndown [ GMarbDown | HBlock ] -> [ GMarbStill | HBlock ] sfx2\nup [ GMarbUp | HBlock ] -> [ GMarbStill | HBlock ] sfx2\n\n(Red Marble Stop)\nright [ RMarbRight | Wall ] -> [ RMarbStill | Wall ] sfx2\nleft [ RMarbLeft | Wall ] -> [ RMarbStill | Wall ] sfx2\ndown [ RMarbDown | Wall ] -> [ RMarbStill | Wall ] sfx2\nup [ RMarbUp | Wall ] -> [ RMarbStill | Wall ] sfx2\nright [ RMarbRight | HBlock ] -> [ RMarbStill | HBlock ] sfx2\nleft [ RMarbLeft | HBlock ] -> [ RMarbStill | HBlock ] sfx2\ndown [ RMarbDown | HBlock ] -> [ RMarbStill | HBlock ] sfx2\nup [ RMarbUp | HBlock ] -> [ RMarbStill | HBlock ] sfx2\n\n(Player Change Back)\nlate [ Player ] -> [ PlayerStill ]\n\n(cheat)\n([ action Player ] -> win)\n\n==============\nWINCONDITIONS\n==============\n\nNo RedMarble \n\n======= \nLEVELS\n=======\nMessage 1\n\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxx##########xx\n##############\n###........###\n##..#.......##\n##p.g..r..r.o#\n##..#.......##\n###........###\n##############\nxx##########xx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\n\nMessage 2\n\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\nx#######xx\n#########x\n###....##x\n#......##x\n#.......#x\n#..###..#x\n#p.###..#x\n#..###r.#x\n#.g.....#x\n#..###r.#x\nx#####o.#x\nxxxx####xx\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\n\nMessage 3\n\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxx#########xx\nxxx##......##xx\nx####.####..##x\n#p..#.......##x\n#...#..##...##x\n#.g.##....#r.#x\n#...#....##..#x\n#........##r.#x\n#######....o.#x\n##############x\nx########xxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n\nMessage 4\n\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxx#########xx\nx#############x\n#o...r........#\n######..#...#.#\n######..##....#\n#..g...r...####\n#p.........####\n#####.###....##\nx####......###x\nxxx##########xx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n\nMessage 5\n\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxx###x\nxxxxxxxxx##o#x\nx#####xxx##.#x\n##...######.##\n##.#.g..r...##\n##...........#\n##p....r....##\n##..#.......##\n###.......#.##\nx########...##\nxxxxxxx######x\nxxxxxxxxxx##xx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\n\nMessage 6\n\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\n###########\n##p......##\n###.g....##\n##....r..o#\n##.r....###\n##...r....#\n#o........#\n####...####\n#####o#####\n###########\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\n\nMessage 7\n\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nx###########x\n##.p#o..#####\n##.g#..r..###\n###.#.....###\n#o..r.....ro#\n##........###\n#####...r..##\n#####....#.##\n#####.##.#.##\nx####......#x\nxx#########xx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\n\nMessage 8\n\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nx#####xxxxxxx\nx#...#####xxx\n##.#.##..####\n##...##.....#\n###......#..#\n###....r....#\n###..r......#\n###.....#.g.#\n###.##...r.p#\n###o......#.#\nxx###########\nxx###########\nxx###########\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\n\nMessage 9\n\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxx##########x\n######......#\n######.####.#\n#o..........#\n###.###...r.#\n###r####....#\n#.....r.....#\n#.#.....r#..#\n#.#..g.#....#\n#..p......#o#\n#############\nxxxxxxxxxxx##\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\n\nMessage 10\n\nxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxx\nxxxxxxx######xxxx\nxx#######...#xxxx\nxx#....##.g.#xxxx\n###.##.##..####xx\n###........######\n#...#...p....####\n#.#.#.####.#.####\n#.....r....#.####\n###r#.##.......##\nxx#...##.....#.##\nxx#o...r.......##\nxxx#####..#####xx\nxxxxxxx####xxxxxx\nxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxx\n\nMessage 11\n\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\nxxxx#####x\nxxx#...###\nxxx#g..###\nxxx#..####\nx###.h..##\nx#####..##\nx######l##\n###..#..##\n#o.rpj..##\n###..#####\n##########\nxxx#######\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\n\nMessage 12\n\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxx####x\n######..##\n##h.....##\n##.####l##\n##g####.##\n##.p....##\n##o..##.##\n##..#l.j##\n##r.#.####\n##..#h.l##\n##.k.##..#\n##.......#\n######.#.#\nxxx###...#\nxxxxx####x\nxxxxxxxxxx\nxxxxxxxxxx\n\nMessage 13\n\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxx#####\nxxxxxxxxxx#...##\nx##########.g.##\n#.............##\n#.l##..##.##h##x\n#..#..........#x\n#...p...r.r...o#\n###############x\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\n\nMessage 14\n\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxx#####\nxxxxxx#...#\nxxxxxx#.#.#\nx######...#\n#.g.l....##\n#........##\n##....r.###\n###r....###\n###.ph.o###\nx##########\nx##########\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\n\nMessage 15\n\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n##########xxxxx\n##############x\n##..........o#x\n##.g..##...###x\n###.#.##.....#x\nx##.#...h....##\nx##.###...#...#\nx##.##...r#...#\nx##....k....###\nx#######.p...##\nx#########.#.##\nxx########...##\nxxxxxxxx######x\nxxxxxxxxxxx##xx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n\nMessage 16\n\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nx##############\nx##...p......o#\nx##.#...r.###.#\nx##.k..#..###.#\nx##.k....####.#\nx##...r.......#\nx##.###.#######\nx##.......k..##\nx##.g...##.#.##\nxx########...##\nxxxxxxxx######x\nxxxxxxxxxxx##xx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n\nMessage Congratulations! You won!\n",[0,3,3,3,2,3,3,0,3,0,0,0,0,1],"background pit:0,0,0,0,0,0,background wall:1,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,1,background goal:2,1,1,background:3,3,1,\n1,0,0,0,0,0,0,0,0,0,0,1,3,1,1,\n3,3,1,1,0,0,0,0,0,0,0,0,0,0,1,\n3,1,1,3,3,1,1,1,0,0,0,0,0,0,0,\n0,1,1,3,1,1,3,3,1,1,1,0,0,0,0,\n0,0,0,0,1,1,background gmarbstill:4,1,1,3,3,3,3,1,0,\n0,0,0,0,0,0,0,1,1,background playerstill:5,3,3,3,3,1,\n3,1,0,0,0,0,0,0,0,0,1,1,3,3,3,\n3,3,1,3,1,0,0,0,0,0,0,0,0,1,1,\n3,1,1,3,3,1,3,1,0,0,0,0,0,0,0,\n0,1,1,3,3,1,3,3,3,3,1,0,0,0,0,\n0,0,0,0,1,1,3,3,3,background rmarbstill:6,3,3,3,1,0,\n0,0,0,0,0,0,0,1,1,3,3,3,1,1,3,\n1,1,0,0,0,0,0,0,0,0,1,1,3,1,3,\n1,1,3,1,1,0,0,0,0,0,0,0,0,0,1,\n3,3,3,1,1,1,1,0,0,0,0,0,0,0,0,\n0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,\n",7,"1627778376637.0903"] + ["title Marble Shoot\nauthor Stuart Burfield\nhomepage www.thepixelshelf.com\n\n========\nOBJECTS\n========\n\nBackground \n#CCFFCC\n\nPit\nBlack\n\nGoal \nBlack grey\n.000.\n00000\n00000\n00000\n.000.\n\nWall \nBlack #434f7b Blue #2ebdf5 #99CCFF darkblue #4DDBFF #B2F0FF\n13366\n12226\n52223\n52223\n55511\n\nHBlock\nBlack #293D3D #527A7A #85ADAD #99CCFF #0A0F0F #D1E0E0 white yellow #FF6600\n13367\n12226\n59993\n52223\n55511\n\nVBlock\nBlack #293D3D #527A7A #85ADAD #99CCFF #0A0F0F #D1E0E0 white #FFFF00 orange\n13367\n12826\n52823\n52823\n55511\n\nPlayerStill \nred Green orange Black grey darkred \n.333.\n.222.\n.121.\n20002\n.5.5.\n\nPlayerRight\nred Green orange Black grey\n.333.\n.222.\n.222.\n.0002\n.0.0.\n\nPlayerLeft\nred Green orange Black grey\n.333.\n.222.\n.222.\n2000.\n.0.0.\n\nPlayerDown\nred Green orange Black grey\n.333.\n.222.\n.121.\n20002\n.0.0.\n\nPlayerUp \nred Green orange Black grey\n.333.\n.222.\n22222\n.000.\n.0.0.\n\nGMarbStill\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbRight\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbLeft\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbDown\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbUp\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbGo1\n#001A00 Darkgreen green #b5e622 white\n.....\n.334.\n12234\n01223\n.011.\n\nGMarbGo2\n#001A00 Darkgreen green #b5e622 white\n.....\n.....\n.334.\n12234\n.122.\n\nGMarbGo3\nBlack Darkgreen green #b5e622 white\n.....\n.....\n.....\n.334.\n.223.\n\nGMarbGo4\nBlack Darkgreen green #b5e622 white\n.....\n.....\n.....\n.....\n.334.\n\nGMarbGo5\nBlack Darkgreen green #b5e622 white\n.....\n.....\n.....\n.....\n.....\n\nRMarbStill\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbRight\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbLeft\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbDown\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbUp\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbGo1\n#2E0000 DarkRed red orange yellow\n.....\n.334.\n12234\n01223\n.011.\n\nRMarbGo2\n#2E0000 DarkRed red orange yellow\n.....\n.....\n.334.\n12234\n.122.\n\nRMarbGo3\nBlack DarkRed red orange yellow\n.....\n.....\n.....\n.334.\n.223.\n\nRMarbGo4\nBlack DarkRed red orange yellow\n.....\n.....\n.....\n.....\n.334.\n\nRightArrow\n#2EB82E #FF3300#330000 #FFCC00\n21222\n21122\n21112\n21122\n21222\n\nRightArrowUsed\n#008AE6 #CCEBFF #001F7A #80CCFF \n21222\n21122\n21112\n21122\n21222\n\nLeftArrow\n#2EB82E #FF3300 #330000 #FFCC00 \n22212\n22112\n21112\n22112\n22212\n\nLeftArrowUsed\n#008AE6 #CCEBFF #001F7A #80CCFF \n22212\n22112\n21112\n22112\n22212\n\nUpArrow\n#2EB82E #FF3300 #330000 #FFCC00 \n22222\n22122\n21112\n11111\n22222\n\nUpArrowUsed\n#008AE6 #CCEBFF #001F7A #80CCFF \n22222\n22122\n21112\n11111\n22222\n\nDownArrow\n#2EB82E #FF3300 #330000 #FFCC00 \n22222\n11111\n21112\n22122\n22222\n\nDownArrowUsed\n#008AE6 #CCEBFF #001F7A #80CCFF \n22222\n11111\n21112\n22122\n22222\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = PlayerStill\nG = GMarbStill\nR = RMarbStill\nO = Goal\nH = RightArrow\nJ = LeftArrow\nK = UpArrow\nL = DownArrow\nX = Pit\nB = HBlock\nC = VBlock\n\nPlayer = PlayerStill or PlayerRight or PlayerLeft or PlayerDown or PlayerUp\nGreenMarble = GMarbStill or GMarbRight or GMarbLeft or GMarbDown or GMarbUp\nRedMarble = RMarbStill or RMarbRight or RMarbLeft or RMarbDown or RMarbUp or RMarbGo1 or RMarbGo2 or RMarbGo3 or RMarbGo4\nGreenDisappear = GMarbGo1 or GMarbGo2 or GMarbGo3 or GMarbGo4 or GMarbgo5\nObject = Player or wall or GreenMarble or RedMarble or Hblock or VBlock\nArrow = RightArrow or LeftArrow or DownArrow or UpArrow \nArrowUsed = RightArrowUsed or LeftArrowUsed or DownArrowUsed or UpArrowUsed\n\n\n=======\nSOUNDS\n=======\nsfx0 48153307 (push marble)\nsfx1 87174707 (marble hit)\nsfx2 41179907 (marble stopped)\nsfx3 72781708 (red marble in hole)\nsfx4 50556508 (green marble in hole)\nsfx5 91492107 (marble hit arrow)\nsfx6 90173307 (push arrow)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground \nGoal, RightArrow, LeftArrow, DownArrow, UpArrow, Pit, Arrow, ArrowUsed\nPlayer, Wall, GMarbStill, RMarbStill, Object, GreenDisappear\n\n======\nRULES \n======\n(Marble Disappear)\n[GMarbGo5] -> Restart\n[RMarbGo4] -> []\n[RMarbGo3] -> [RMarbGo4] again\n[RMarbGo2] -> [RMarbGo3] again\n[RMarbGo1] -> [RMarbGo2] again\n[GMarbGo4] -> [GMarbGo5] again\n[GMarbGo3] -> [GMarbGo4] again\n[GMarbGo2] -> [GMarbGo3] again\n[GMarbGo1] -> [GMarbGo2] again\n\n(Player Directions)\nright [ right Player ] -> [ right PlayerRight ]\nleft [ left Player ] -> [ left PlayerLeft ] \nup [ up Player ] -> [ up PlayerUp ] \ndown [ down Player ] -> [ down PlayerDown]\n\n(Block Push)\nHorizontal [ > Player | HBlock ] -> [ > Player | > HBlock ] \nVertical [ > Player | VBlock ] -> [ > Player | > VBlock ]\n\n(Can't Push)\n[ > Player | Goal ] -> [ Player | Goal ]\n\n(Arrow Push)\n[ > Player | Arrow | No Object ] -> [ > Player | > Arrow | No Object ] sfx6\n[ > Player | Arrow | Object ] -> [ Player | Arrow | Object ] sfx6\n[ > Player | Arrow | Arrow ] -> [ Player | Arrow | Arrow ] sfx6\n[ > Player | Arrow | ArrowUsed ] -> [ Player | Arrow | ArrowUsed ] sfx6\n\n[ > Player | ArrowUsed | No Object ] -> [ Player | ArrowUsed | No Object ] sfx6\n[ > Player | ArrowUsed | Object ] -> [ Player | ArrowUsed | Object ] sfx6\n[ > Player | ArrowUsed | Arrow ] -> [ Player | ArrowUsed | Arrow ] sfx6\n[ > Player | ArrowUsed | ArrowUsed ] -> [ Player | ArrowUsed | ArrowUsed ] sfx6\n\n(Marble Pushed)\n[ > PlayerRight | GMarbStill ] -> [ > PlayerStill | > GMarbRight ] sfx0\n[ > PlayerLeft | GMarbStill ] -> [ > PlayerStill | > GMarbLeft ] sfx0\n[ > PlayerDown | GMarbStill ] -> [ > PlayerStill | > GMarbDown ] sfx0\n[ > PlayerUp | GMarbStill ] -> [ > PlayerStill | > GMarbUp ] sfx0\n(Marble collision check)\nright [ GMarbRight | RMarbStill ] -> [ GMarbStill | > RMarbRight ] sfx1\nright [ RMarbRight | RMarbStill ] -> [ RMarbStill | > RMarbRight ] sfx1\nleft [ GMarbLeft | RMarbStill ] -> [ GMarbStill | > RMarbLeft ] sfx1\nleft [ RMarbLeft | RMarbStill ] -> [ RMarbStill | > RMarbLeft ] sfx1\nup [ GMarbUp | RMarbStill ] -> [ GMarbStill | > RMarbUp ] sfx1\nup [ RMarbUp | RMarbStill ] -> [ RMarbStill | > RMarbUp ] sfx1\ndown [ GMarbDown | RMarbStill ] -> [ GMarbStill | > RMarbDown ] sfx1\ndown [ RMarbDown | RMarbStill ] -> [ RMarbStill | > RMarbDown ] sfx1\n(MarblesOnArrows)\n[ RedMarble LeftArrow ] -> [ LEFT RMarbLeft LeftArrowUsed ] again sfx5\n[ RedMarble RightArrow ] -> [ RIGHT RMarbRight RightArrowUsed ] again sfx5\n[ RedMarble DownArrow ] -> [ DOWN RMarbDown DownArrowUsed ] again sfx5\n[ RedMarble UpArrow ] -> [ UP RMarbUp UpArrowUsed ] again sfx5\n[ GreenMarble LeftArrow ] -> [ LEFT GMarbLeft LeftArrowUsed ] again sfx5\n[ GreenMarble RightArrow ] -> [ RIGHT GMarbRight RightArrowUsed ] again sfx5\n[ GreenMarble DownArrow ] -> [ DOWN GMarbDown DownArrowUsed ] again sfx5\n[ GreenMarble UpArrow ] -> [ UP GMarbUp UpArrowUsed ] again sfx5\n\n[ RedMarble LeftArrowUsed ] -> [ LEFT RMarbLeft LeftArrowUsed ] again sfx5\n[ RedMarble RightArrowUsed ] -> [ RIGHT RMarbRight RightArrowUsed ] again sfx5\n[ RedMarble DownArrowUsed ] -> [ DOWN RMarbDown DownArrowUsed ] again sfx5\n[ RedMarble UpArrowUsed ] -> [ UP RMarbUp UpArrowUsed ] again sfx5\n[ GreenMarble LeftArrowUsed ] -> [ LEFT GMarbLeft LeftArrowUsed ] again sfx5\n[ GreenMarble RightArrowUsed ] -> [ RIGHT GMarbRight RightArrowUsed ] again sfx5\n[ GreenMarble DownArrowUsed ] -> [ DOWN GMarbDown DownArrowUsed ] again sfx5\n[ GreenMarble UpArrowUsed ] -> [ UP GMarbUp UpArrowUsed ] again sfx5\n(Marble In Hole)\nright [ RMarbRight | Goal ] -> [ > RMarbGo1 | Goal ] again sfx4\nleft [ RMarbLeft | Goal ] -> [ > RMarbGo1 | Goal ] again sfx4\nup [ RMarbUp | Goal ] -> [ > RMarbGo1 | Goal ] again sfx4\ndown [ RMarbDown | Goal ] -> [ > RMarbGo1 | Goal ] again sfx4\nright [ GMarbRight | Goal ] -> [ > GMarbGo1 | Goal ] again sfx3\nleft [ GMarbLeft | Goal ] -> [ > GMarbGo1 | Goal ] again sfx3\nup [ GMarbUp | Goal ] -> [ > GMarbGo1 | Goal ] again sfx3\ndown [ GMarbDown | Goal ] -> [ > GMarbGo1 | Goal ] again sfx3\n(Marble Move Loop)\nrandom left [ GMarbLeft | No Object ] -> [ | GMarbLeft ] again\nrandom left [ RMarbLeft | No Object ] -> [ | RMarbLeft ] again\nrandom right [ GMarbRight | No Object ] -> [ | GMarbRight ] again\nrandom right [ RMarbRight | No Object ] -> [ | RMarbRight ] again\nrandom down [ RMarbDown | No Object ] -> [ | RMarbDown ] again\nrandom down [ GMarbDown | No Object ] -> [ | GMarbDown ] again\nrandom up [ RMarbUp | No Object ] -> [ | RMarbUp ] again\nrandom up [ GMarbUp | No Object ] -> [ | GMarbUp ] again\n\n(Green Marble Stop)\nright [ GMarbRight | Wall ] -> [ GMarbStill | Wall ] sfx2\nleft [ GMarbLeft | Wall ] -> [ GMarbStill | Wall ] sfx2\ndown [ GMarbDown | Wall ] -> [ GMarbStill | Wall ] sfx2\nup [ GMarbUp | Wall ] -> [ GMarbStill | Wall ] sfx2\nright [ GMarbRight | HBlock ] -> [ GMarbStill | HBlock ] sfx2\nleft [ GMarbLeft | HBlock ] -> [ GMarbStill | HBlock ] sfx2\ndown [ GMarbDown | HBlock ] -> [ GMarbStill | HBlock ] sfx2\nup [ GMarbUp | HBlock ] -> [ GMarbStill | HBlock ] sfx2\n\n(Red Marble Stop)\nright [ RMarbRight | Wall ] -> [ RMarbStill | Wall ] sfx2\nleft [ RMarbLeft | Wall ] -> [ RMarbStill | Wall ] sfx2\ndown [ RMarbDown | Wall ] -> [ RMarbStill | Wall ] sfx2\nup [ RMarbUp | Wall ] -> [ RMarbStill | Wall ] sfx2\nright [ RMarbRight | HBlock ] -> [ RMarbStill | HBlock ] sfx2\nleft [ RMarbLeft | HBlock ] -> [ RMarbStill | HBlock ] sfx2\ndown [ RMarbDown | HBlock ] -> [ RMarbStill | HBlock ] sfx2\nup [ RMarbUp | HBlock ] -> [ RMarbStill | HBlock ] sfx2\n\n(Player Change Back)\nlate [ Player ] -> [ PlayerStill ]\n\n(cheat)\n([ action Player ] -> win)\n\n==============\nWINCONDITIONS\n==============\n\nNo RedMarble \n\n======= \nLEVELS\n=======\nMessage 1\n\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxx##########xx\n##############\n###........###\n##..#.......##\n##p.g..r..r.o#\n##..#.......##\n###........###\n##############\nxx##########xx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\n\nMessage 2\n\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\nx#######xx\n#########x\n###....##x\n#......##x\n#.......#x\n#..###..#x\n#p.###..#x\n#..###r.#x\n#.g.....#x\n#..###r.#x\nx#####o.#x\nxxxx####xx\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\n\nMessage 3\n\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxx#########xx\nxxx##......##xx\nx####.####..##x\n#p..#.......##x\n#...#..##...##x\n#.g.##....#r.#x\n#...#....##..#x\n#........##r.#x\n#######....o.#x\n##############x\nx########xxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n\nMessage 4\n\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxx#########xx\nx#############x\n#o...r........#\n######..#...#.#\n######..##....#\n#..g...r...####\n#p.........####\n#####.###....##\nx####......###x\nxxx##########xx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n\nMessage 5\n\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxx###x\nxxxxxxxxx##o#x\nx#####xxx##.#x\n##...######.##\n##.#.g..r...##\n##...........#\n##p....r....##\n##..#.......##\n###.......#.##\nx########...##\nxxxxxxx######x\nxxxxxxxxxx##xx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\n\nMessage 6\n\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\n###########\n##p......##\n###.g....##\n##....r..o#\n##.r....###\n##...r....#\n#o........#\n####...####\n#####o#####\n###########\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\n\nMessage 7\n\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nx###########x\n##.p#o..#####\n##.g#..r..###\n###.#.....###\n#o..r.....ro#\n##........###\n#####...r..##\n#####....#.##\n#####.##.#.##\nx####......#x\nxx#########xx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\n\nMessage 8\n\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nx#####xxxxxxx\nx#...#####xxx\n##.#.##..####\n##...##.....#\n###......#..#\n###....r....#\n###..r......#\n###.....#.g.#\n###.##...r.p#\n###o......#.#\nxx###########\nxx###########\nxx###########\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\n\nMessage 9\n\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxx##########x\n######......#\n######.####.#\n#o..........#\n###.###...r.#\n###r####....#\n#.....r.....#\n#.#.....r#..#\n#.#..g.#....#\n#..p......#o#\n#############\nxxxxxxxxxxx##\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\n\nMessage 10\n\nxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxx\nxxxxxxx######xxxx\nxx#######...#xxxx\nxx#....##.g.#xxxx\n###.##.##..####xx\n###........######\n#...#...p....####\n#.#.#.####.#.####\n#.....r....#.####\n###r#.##.......##\nxx#...##.....#.##\nxx#o...r.......##\nxxx#####..#####xx\nxxxxxxx####xxxxxx\nxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxx\n\nMessage 11\n\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\nxxxx#####x\nxxx#...###\nxxx#g..###\nxxx#..####\nx###.h..##\nx#####..##\nx######l##\n###..#..##\n#o.rpj..##\n###..#####\n##########\nxxx#######\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\n\nMessage 12\n\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxx####x\n######..##\n##h.....##\n##.####l##\n##g####.##\n##.p....##\n##o..##.##\n##..#l.j##\n##r.#.####\n##..#h.l##\n##.k.##..#\n##.......#\n######.#.#\nxxx###...#\nxxxxx####x\nxxxxxxxxxx\nxxxxxxxxxx\n\nMessage 13\n\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxx#####\nxxxxxxxxxx#...##\nx##########.g.##\n#.............##\n#.l##..##.##h##x\n#..#..........#x\n#...p...r.r...o#\n###############x\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\n\nMessage 14\n\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxx#####\nxxxxxx#...#\nxxxxxx#.#.#\nx######...#\n#.g.l....##\n#........##\n##....r.###\n###r....###\n###.ph.o###\nx##########\nx##########\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\n\nMessage 15\n\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n##########xxxxx\n##############x\n##..........o#x\n##.g..##...###x\n###.#.##.....#x\nx##.#...h....##\nx##.###...#...#\nx##.##...r#...#\nx##....k....###\nx#######.p...##\nx#########.#.##\nxx########...##\nxxxxxxxx######x\nxxxxxxxxxxx##xx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n\nMessage 16\n\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nx##############\nx##...p......o#\nx##.#...r.###.#\nx##.k..#..###.#\nx##.k....####.#\nx##...r.......#\nx##.###.#######\nx##.......k..##\nx##.g...##.#.##\nxx########...##\nxxxxxxxx######x\nxxxxxxxxxxx##xx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n\nMessage Congratulations! You won!\n", [0, 3, 3, 3, 2, 3, 3, 0, 3, 0, 0, 0, 0, 1], "background pit:0,0,0,0,0,0,background wall:1,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,1,background goal:2,1,1,background:3,3,1,\n1,0,0,0,0,0,0,0,0,0,0,1,3,1,1,\n3,3,1,1,0,0,0,0,0,0,0,0,0,0,1,\n3,1,1,3,3,1,1,1,0,0,0,0,0,0,0,\n0,1,1,3,1,1,3,3,1,1,1,0,0,0,0,\n0,0,0,0,1,1,background gmarbstill:4,1,1,3,3,3,3,1,0,\n0,0,0,0,0,0,0,1,1,background playerstill:5,3,3,3,3,1,\n3,1,0,0,0,0,0,0,0,0,1,1,3,3,3,\n3,3,1,3,1,0,0,0,0,0,0,0,0,1,1,\n3,1,1,3,3,1,3,1,0,0,0,0,0,0,0,\n0,1,1,3,3,1,3,3,3,3,1,0,0,0,0,\n0,0,0,0,1,1,3,3,3,background rmarbstill:6,3,3,3,1,0,\n0,0,0,0,0,0,0,1,1,3,3,3,1,1,3,\n1,1,0,0,0,0,0,0,0,0,1,1,3,1,3,\n1,1,3,1,1,0,0,0,0,0,0,0,0,0,1,\n3,3,3,1,1,1,1,0,0,0,0,0,0,0,0,\n0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,\n", 7, "1627778376637.0903"] ], [ `gallery:cyber-lasso`, - ["title Cyber-Lasso\nauthor Alan Hazelden\nhomepage www.draknek.org\n\nnorepeat_action\n\nagain_interval 0.05\nrealtime_interval 0.05\n\n(verbose_logging)\n\nflickscreen 11x11\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\n#dddddd #ffffff\n11111\n10001\n10001\n10001\n11111\n\nElectricFloor\nLightBlue White\n00001\n00010\n00100\n01000\n10000\n\nElectricFloor1\nLightBlue White\n00001\n00010\n00100\n01000\n10000\n\nElectricFloor2\nLightBlue\n\nPowered\nLightBlue\n\nUnpowered\nWhite\n\nWasPowered\ntransparent\n\nHole\nBlack\n\nButton\nRed Grey\n10001\n00000\n00000\n00000\n10001\n\nCrate\nDarkGreen Green\n.....\n.111.\n.101.\n.111.\n.....\n\nElectricCrate1\nYellow\n.....\n.....\n..0..\n.....\n.....\n\n(ElectricCrate2\nOrange\n.....\n.....\n..0..\n.....\n.....)\n\nElectrifyingL\nYellow\n.....\n.....\n0....\n.....\n.....\n\nElectrifyingR\nYellow\n.....\n.....\n....0\n.....\n.....\n\nElectrifyingU\nYellow\n..0..\n.....\n.....\n.....\n.....\n\nElectrifyingD\nYellow\n.....\n.....\n.....\n.....\n..0..\n\nDisappearingCrate\nGreen\n.....\n.....\n..0..\n.....\n.....\n\nDisappearingPlayer\n#a46422\n.....\n.....\n..0..\n.....\n.....\n\nSquashedPlayer\n#a46422 #493c2b #000000 red\n....3\n.30..\n01110\n.2.2.\n3..3.\n\nWallNormal\nDarkGrey\n\nDoorUp\nDarkGrey #5a7bb6\n11111\n10001\n10001\n10001\n11111\n\nDoorDown\n#ffffff #dddddd\n11111\n1...1\n1.0.1\n1...1\n11111\n\nUpWhenPowered\ntransparent\n\nWalkway\n#dddddd #9d9e9e\n11111\n10001\n10001\n10001\n11111\n\nWalkwayStartL\n#9d9e9e\n....0\n....0\n....0\n....0\n....0\n\nWalkwayStartR\n#9d9e9e\n0....\n0....\n0....\n0....\n0....\n\nWalkwayStartU\n#9d9e9e\n.....\n.....\n.....\n.....\n00000\n\nWalkwayStartD\n#9d9e9e\n00000\n.....\n.....\n.....\n.....\n\nPlayerNormal\n#a46422 #493c2b #000000\n..0..\n.111.\n01110\n02220\n.2.2.\n\nPlayerHoldL\n#a46422 #493c2b #000000 orange\n..0..\n.111.\n3330.\n0222.\n.2.2.\n\nPlayerHoldR\n#a46422 #493c2b #000000 orange\n..0..\n.111.\n01110\n0222.\n.2.2.\n\nPlayerHoldU\n#a46422 #493c2b #000000 orange\n..00.\n.110.\n0111.\n0222.\n.2.2.\n\nPlayerHoldD\n#a46422 #493c2b #000000 orange\n..0..\n.111.\n0110.\n0232.\n.232.\n\n(RopeNextToPlayerR\n#a46422\n.....\n.....\n0....\n.....\n.....)\n\nPlayerAiming\n#a46422 #493c2b #000000\n..0.0\n.1110\n0111.\n0222.\n.2.2.\n\nPlayerDying\nyellow yellow yellow\n..0..\n.111.\n01110\n02220\n.2.2.\n\nLassoAboveHead1\nbrown orange\n.....\n..00.\n.0..0\n..001\n....1\n\nLassoAboveHead2\nbrown orange\n.....\n.000.\n0...0\n.0001\n....1\n\nLassoAboveHead3\nbrown orange\n.....\n.00..\n0..0.\n.00..\n...1.\n\nLassoAboveHead4\nbrown orange\n.00..\n0..0.\n0..0.\n.00..\n...1.\n\nLassoAboveHead5\nbrown orange\n.00..\n0..0.\n.00..\n..1..\n...1.\n\nLassoAboveHead6\nbrown orange\n.000.\n0...0\n.000.\n..1..\n...1.\n\nLassoAboveHead7\nbrown orange\n..00.\n.0..0\n..00.\n...1.\n...1.\n\nLassoAboveHead8\nbrown orange\n..00.\n.0..0\n.0..0\n..00.\n...1.\n\nLassoThrownL\nbrown orange\n.00..\n0..0.\n0..01\n0..0.\n.00..\n\nLassoThrownR\nbrown orange\n..00.\n.0..0\n10..0\n.0..0\n..00.\n\nLassoThrownU\nbrown orange\n.000.\n0...0\n0...0\n.000.\n..1..\n\nLassoThrownD\nbrown orange\n..1..\n.000.\n0...0\n0...0\n.000.\n\nLassoReturn\nbrown orange\n.000.\n0...0\n0...0\n0...0\n.000.\n\nLassoCaught\nbrown\n.000.\n0...0\n0...0\n0...0\n.000.\n\nRopeH\norange\n.....\n.....\n00000\n.....\n.....\n\nRopeV\norange\n..0..\n..0..\n..0..\n..0..\n..0..\n\nRopeUL\norange\n..0..\n..0..\n000..\n.....\n.....\n\nRopeUR\norange\n..0..\n..0..\n..000\n.....\n.....\n\nRopeDL\norange\n.....\n.....\n000..\n..0..\n..0..\n\nRopeDR\norange\n.....\n.....\n..000\n..0..\n..0..\n\nWireLR\n#ffffff #dddddd\n00000\n11111\n.....\n11111\n00000\n\nWireUD\n#ffffff #dddddd\n01.10\n01.10\n01.10\n01.10\n01.10\n\nWireUL\n#ffffff #dddddd\n01.10\n11.10\n...10\n11110\n00000\n\nWireUR\n#ffffff #dddddd\n01.10\n01.11\n01...\n01111\n00000\n\nWireDL\n#ffffff #dddddd\n00000\n11110\n...10\n11.10\n01.10\n\nWireDR\n#ffffff #dddddd\n00000\n01111\n01...\n01.11\n01.10\n\nWireULR\n#ffffff #dddddd\n01.10\n11.11\n.....\n11111\n00000\n\nWireDLR\n#ffffff #dddddd\n00000\n11111\n.....\n11.11\n01.10\n\nWireUDL\n#ffffff #dddddd\n01.10\n11.10\n...10\n11.10\n01.10\n\nWireUDR\n#ffffff #dddddd\n01.10\n01.11\n01...\n01.11\n01.10\n\nAndGate\nGrey Grey Red\n.000.\n00000\n02020\n00000\n.000.\n\nPower1\nYellow\n.....\n.....\n.0...\n.....\n.....\n\nPower2\nYellow\n.....\n.....\n.0.0.\n.....\n.....\n\nDone\ntransparent\n\nHere\ntransparent\n\nClaimed\ntransparent\n\nChanged\nred\n\nExit\ntransparent\n\nCheckpointTrigger\ntransparent\n\nReactorTrigger\ntransparent\n\nU\nred\n..0..\n.0.0.\n.....\n.....\n.....\n\nD\nred\n.....\n.....\n.....\n.0.0.\n..0..\n\nL\nred\n.....\n.0...\n0....\n.0...\n.....\n\nR\nred\n.....\n...0.\n....0\n...0.\n.....\n\nWallL\nDarkRed\n0....\n0....\n0....\n0....\n0....\n\nWallR\nDarkRed\n....0\n....0\n....0\n....0\n....0\n\nWallU\nDarkRed\n00000\n.....\n.....\n.....\n.....\n\nWallD\nDarkRed\n.....\n.....\n.....\n.....\n00000\n\nWallLR\nDarkRed\n0...0\n0...0\n0...0\n0...0\n0...0\n\nWallUD\nDarkRed\n00000\n.....\n.....\n.....\n00000\n\nWallUL\nDarkRed\n0....\n.....\n.....\n.....\n.....\n\nWallUR\nDarkRed\n....0\n.....\n.....\n.....\n.....\n\nWallDL\nDarkRed\n.....\n.....\n.....\n.....\n0....\n\nWallDR\nDarkRed\n.....\n.....\n.....\n.....\n....0\n\nWallDLR\nDarkRed\n.....\n.....\n.....\n.....\n0...0\n\nWallULR\nDarkRed\n0...0\n.....\n.....\n.....\n.....\n\nWallLUD\nDarkRed\n0....\n.....\n.....\n.....\n0....\n\nWallWireLR\nDarkGrey #61686c\n00000\n00000\n00000\n00000\n00000\n\nDangerL\n#be656d\n0....\n0....\n0....\n0....\n0....\n\nDangerR\n#be656d\n....0\n....0\n....0\n....0\n....0\n\nDangerU\n#be656d\n00000\n.....\n.....\n.....\n.....\n\nDangerD\n#be656d\n.....\n.....\n.....\n.....\n00000\n\nDangerLR\n#be656d\n0...0\n0...0\n0...0\n0...0\n0...0\n\nDangerUD\n#be656d\n00000\n.....\n.....\n.....\n00000\n\nReactor\n#ffffff #dddddd\n01.10\n11.11\n.....\n11.11\n01.10\n\nWarning1\nWhite Black\n01100\n01010\n01100\n01010\n01010\n\nWarning2\nWhite Black\n11100\n10001\n11001\n10001\n11101\n\nWarning3\nWhite Black\n10001\n01010\n11010\n01010\n01001\n\nWarning4\nWhite Black\n10111\n00010\n00010\n00010\n10010\n\nWarning5\nWhite Black\n00110\n01001\n01001\n01001\n00110\n\nWarning6\nWhite Black\n01100\n01010\n01100\n01010\n01010\n\n\n=======\nLEGEND\n=======\n\nPlayerHold = PlayerHoldL or PlayerHoldR or PlayerHoldU or PlayerHoldD\nPlayer = PlayerNormal or PlayerAiming or PlayerHold or DisappearingPlayer or PlayerDying\nDirection = U or D or L or R\nRope = RopeH or RopeV or RopeUL or RopeUR or RopeDL or RopeDR\nRopePullsL = RopeH or RopeUR or RopeDR\nRopePullsR = RopeH or RopeUL or RopeDL\nRopePullsU = RopeV or RopeDL or RopeDR\nRopePullsD = RopeV or RopeUL or RopeUR\n\n(RopeNextToPlayer = RopeNextToPlayerR)\n\nLassoAboveHead = LassoAboveHead1 or LassoAboveHead2 or LassoAboveHead3 or LassoAboveHead4 or LassoAboveHead5 or LassoAboveHead6 or LassoAboveHead7 or LassoAboveHead8\n\nWallWire = WallWireLR\nWall = WallNormal or WallWire\n\nSolid = Wall or Crate or DoorUp\nSolidUncatchable = Wall or DoorUp\nChain = Rope or LassoCaught or Player\nLassoThrown = LassoThrownL or LassoThrownR or LassoThrownU or LassoThrownD or LassoReturn\n\nWallCoverLR = WallL or WallR or WallLR\nWallCoverUD = WallU or WallD or WallUD\nWallCoverCorner = WallUL or WallUR or WallDL or WallDR or WallDLR or WallLUD or WallULR\n\nWallCover = WallCoverLR or WallCoverUD or WallCoverCorner\n\nDangerBorderLR = DangerL or DangerR or DangerLR\nDangerBorderUD = DangerU or DangerD or DangerUD\nDangerBorder = DangerBorderLR or DangerBorderUD\n\nWireL = WireLR or WireUL or WireDL or WireUDL or WireULR or WireDLR or WallWireLR\nWireR = WireLR or WireUR or WireDR or WireUDR or WireULR or WireDLR or WallWireLR\nWireU = WireUD or WireUL or WireUR or WireUDL or WireUDR or WireULR\nWireD = WireUD or WireDL or WireDR or WireUDL or WireUDR or WireDLR\nWire = WireL or WireR or WireU or WireD\n\nDoor = DoorUp or DoorDown\n\nWalkwayStart = WalkwayStartL or WalkwayStartR or WalkwayStartU or WalkwayStartD\n\nPowerTransfer = Button or ElectricFloor or Door or Walkway or WalkwayStart or Reactor\n\nElectrified = ElectricCrate1\n\nElectrifiable = Player or Crate\n\nElectrifyingDir = ElectrifyingL or ElectrifyingR or ElectrifyingU or ElectrifyingD\n\nChainUnder = Wire or PowerTransfer or AndGate\nChainUnderOver = Button or ElectricFloor\nChainOver = Electrifiable or ChainUnderOver\n\nDisappearing = DisappearingCrate or DisappearingPlayer\nSquashed = SquashedPlayer\n\nPowerLevel = Power1 or Power2\n\nElectricFloorCover = ElectricFloor1 or ElectricFloor2\n\nWarning = Warning1 or Warning2 or Warning3 or Warning4 or Warning5 or Warning6\n\n. = Background\n# = WallNormal\nP = PlayerNormal and DoorUp\n* = Crate\n! = ElectricFloor\no = Hole\n@ = Button\n_ = DoorDown\nn = DoorUp\n% = Button and Crate\n2 = AndGate\n& = Crate and ElectricFloor\n═ = WallWireLR\n$ = Reactor\nW = Warning1\nX = Exit and DoorUp\nz = ReactorTrigger and WireUD\n\n\n(ref http://unicode-search.net/unicode-namesearch.pl?term=box%20drawings)\n\n- = WireLR\n| = WireUD\n┐ = WireDL\n┤ = WireUDL\n┘ = WireUL\n┌ = WireDR\n├ = WireUDR\n└ = WireUR\n┬ = WireDLR\n┴ = WireULR\n\n← = WalkwayStartL and Hole\n→ = WalkwayStartR and Hole\n↑ = WalkwayStartU and Hole\n↓ = WalkwayStartD and Hole\n\n\n=======\nSOUNDS\n=======\n\nLassoAboveHead create 86845907\nPlayerAiming destroy 19629107\nsfx0 81428909 (throw lasso)\nLassoCaught create 1688102\nLassoCaught destroy 11489509\nPlayer move 75749507\nsfx1 12358709 (bending rope)\nWasPowered create 56141902 (power on)\nWasPowered destroy 25196302 (power off)\nDisappearing create 96367909\nPlayerDying create 9797709\nPlayerDying destroy 82870709\n\nUndo 77836307\nRestart 41565108\n\nEndLevel 42704508\nEndGame 10304308\n\n(\nTodo:\ntweak electrocution\ngetting crushed\npower on/off triggers too much\nending sound triggers too late\n)\n\n\n================\nCOLLISIONLAYERS\n================\n\nCheckpointTrigger, ReactorTrigger\nDirection, Done, Here\nClaimed\nBackground\nElectricFloor, UpWhenPowered\nWasPowered\nPowered, Unpowered\nElectricFloorCover, Warning, Exit\nHole, Button, Wire, Door, AndGate, Reactor\nDangerBorderLR, WalkwayStart, PowerLevel\nDangerBorderUD, Walkway\nPlayer, PlayerDying, Wall, Crate, Disappearing, Squashed\nWallCoverLR, Electrified\nWallCoverUD, WallCoverCorner\nLassoAboveHead\nLassoThrown, LassoCaught, Rope\nElectrifyingL\nElectrifyingR\nElectrifyingU\nElectrifyingD\nChanged\n\n======\nRULES\n======\n\n([ Changed ] -> [])\n\n([ RopeNextToPlayer ] -> [])\n\n(Lasso aiming animation)\n\n[ up Player Exit ] -> [ Player Exit ] win\n\nright [ Warning1 | | | | | ] -> [ Warning1 | Warning2 | Warning3 | Warning4 | Warning5 | Warning6 ]\n\nlate up [ PlayerAiming | no LassoAboveHead ] -> [ PlayerAiming | LassoAboveHead1 ]\nlate up [ no PlayerAiming | LassoAboveHead ] -> [ | ]\n\nup [ moving Player | LassoAboveHead ] -> [ moving Player | action LassoAboveHead ]\n\n[ stationary LassoAboveHead1 ] -> [ action LassoAboveHead2 ]\n[ stationary LassoAboveHead2 ] -> [ action LassoAboveHead3 ]\n[ stationary LassoAboveHead3 ] -> [ action LassoAboveHead4 ]\n[ stationary LassoAboveHead4 ] -> [ action LassoAboveHead5 ]\n[ stationary LassoAboveHead5 ] -> [ action LassoAboveHead6 ]\n[ stationary LassoAboveHead6 ] -> [ action LassoAboveHead7 ]\n[ stationary LassoAboveHead7 ] -> [ action LassoAboveHead8 ]\n[ stationary LassoAboveHead8 ] -> [ action LassoAboveHead1 ]\n\n(Pressing action)\n\n[ action PlayerHold ] [ LassoCaught Crate ] -> [ PlayerHold ] [ LassoReturn action Crate Changed ] again\n\n[ action PlayerAiming ] -> [ PlayerNormal ]\n[ action PlayerNormal ] -> [ PlayerAiming ]\n\n(Throwing lasso)\n\nleft [ > PlayerAiming | no SolidUncatchable ] -> [ PlayerHoldL | L action LassoThrownL ] sfx0 again\nright [ > PlayerAiming | no SolidUncatchable ] -> [ PlayerHoldR | R action LassoThrownR ] sfx0 again\nup [ > PlayerAiming | no SolidUncatchable ] -> [ PlayerHoldU | U action LassoThrownU ] sfx0 again\ndown [ > PlayerAiming | no SolidUncatchable ] -> [ PlayerHoldD | D action LassoThrownD ] sfx0 again\n\nleft [ L stationary LassoThrownL | no SolidUncatchable ] -> [ RopeH | L action LassoThrownL ] again\nright [ R stationary LassoThrownR | no SolidUncatchable ] -> [ RopeH | R action LassoThrownR ] again\nup [ U stationary LassoThrownU | no SolidUncatchable ] -> [ RopeV | U action LassoThrownU ] again\ndown [ D stationary LassoThrownD | no SolidUncatchable ] -> [ RopeV | D action LassoThrownD ] again\n\n[ LassoThrown stationary Crate no LassoReturn ] -> [ action LassoCaught Crate no Direction ]\n\n[ Player | | | | | LassoThrown Direction ] -> [ Player | | | | | action LassoThrown ]\n\n([ Player | | | | | | | | LassoThrown Direction ] -> [ Player | | | | | | | | action LassoThrown ])\n\n(Moving while attached)\n\n[ > Player | Hole no Walkway ] -> cancel\n\n[ > Player Hole no Walkway ] -> cancel\n\n[ moving Player ] [ LassoCaught Crate ] [ Rope ] -> [ moving Player action Done ] [ moving LassoCaught action Crate ] [ moving Rope ]\n\n[ moving Player | LassoCaught Crate ] -> [ moving Player action Done | moving LassoCaught action Crate ]\n\n[ > Player | stationary Solid ] -> cancel\n\nstartloop\n\n(Start loop)\n\nleft [ action Done | RopePullsL no Done ] -> [ < Done | RopePullsL Here ]\nright [ action Done | RopePullsR no Done ] -> [ < Done | RopePullsR Here ]\nup [ action Done | RopePullsU no Done ] -> [ < Done | RopePullsU Here ]\ndown [ action Done | RopePullsD no Done ] -> [ < Done | RopePullsD Here ]\n[ action Done | LassoCaught no Done ] -> [ < Done | LassoCaught Here ]\n\n(Check for collisions)\n\n[ stationary Here > Chain | stationary Solid ] -> [ action Here > Chain | Solid ] sfx1 (set 'action Here' on collision)\n\n[ < Done | action Here > Chain ] -> cancel\n\n[ action Here ] [ Done > Chain | moving Done ] -> cancel\n\n[ action Here ] [ moving Done ] [ Chain no Done ] -> [ action Here ] [ moving Done ] [ moving Chain ] (update movement of future parts of the chain)\n\n(Handle movement)\n\nleft [ moving Done down RopeUL | action Here ] -> cancel\nleft [ moving Done up RopeDL | action Here ] -> cancel\n\nleft [ moving Done down RopeH | action Here ] -> [ moving Done down RopeUR | action Here ]\nleft [ moving Done down RopeDL | action Here ] -> [ moving Done down RopeV | action Here ]\nleft [ moving Done up RopeH | action Here ] -> [ moving Done up RopeDR | action Here ]\nleft [ moving Done up RopeUL | action Here ] -> [ moving Done up RopeV | action Here ]\n\nleft [ moving Done down Chain | action Here < RopeH ] -> [ moving Done down Chain | action Here < RopeDL ]\nleft [ moving Done down Chain | action Here < RopeUR ] -> [ moving Done down Chain | action Here < RopeV ]\nleft [ moving Done up Chain | action Here < RopeH ] -> [ moving Done up Chain | action Here < RopeUL ]\nleft [ moving Done up Chain | action Here < RopeDR ] -> [ moving Done up Chain | action Here < RopeV ]\n\nright [ moving Done down RopeUR | action Here ] -> cancel\nright [ moving Done up RopeDR | action Here ] -> cancel\n\nright [ moving Done down RopeH | action Here ] -> [ moving Done down RopeUL | action Here ]\nright [ moving Done down RopeDR | action Here ] -> [ moving Done down RopeV | action Here ]\nright [ moving Done up RopeH | action Here ] -> [ moving Done up RopeDL | action Here ]\nright [ moving Done up RopeUR | action Here ] -> [ moving Done up RopeV | action Here ]\n\nright [ moving Done down Chain | action Here < RopeH ] -> [ moving Done down Chain | action Here < RopeDR ]\nright [ moving Done down Chain | action Here < RopeUL ] -> [ moving Done down Chain | action Here < RopeV ]\nright [ moving Done up Chain | action Here < RopeH ] -> [ moving Done up Chain | action Here < RopeUR ]\nright [ moving Done up Chain | action Here < RopeDL ] -> [ moving Done up Chain | action Here < RopeV ]\n\nup [ moving Done left RopeUR | action Here ] -> cancel\nup [ moving Done right RopeUL | action Here ] -> cancel\n\nup [ moving Done left RopeV | action Here ] -> [ moving Done left RopeDR | action Here ]\nup [ moving Done left RopeUL | action Here ] -> [ moving Done left RopeH | action Here ]\nup [ moving Done right RopeV | action Here ] -> [ moving Done right RopeDL | action Here ]\nup [ moving Done right RopeUR | action Here ] -> [ moving Done right RopeH | action Here ]\n\nup [ moving Done left Chain | action Here < RopeV ] -> [ moving Done left Chain | action Here < RopeUL ]\nup [ moving Done left Chain | action Here < RopeDR ] -> [ moving Done left Chain | action Here < RopeH ]\nup [ moving Done right Chain | action Here < RopeV ] -> [ moving Done right Chain | action Here < RopeUR ]\nup [ moving Done right Chain | action Here < RopeDL ] -> [ moving Done right Chain | action Here < RopeH ]\n\ndown [ moving Done left RopeDR | action Here ] -> cancel\ndown [ moving Done right RopeDL | action Here ] -> cancel\n\ndown [ moving Done left RopeV | action Here ] -> [ moving Done left RopeUR | action Here ]\ndown [ moving Done left RopeDL | action Here ] -> [ moving Done left RopeH | action Here ]\ndown [ moving Done right RopeV | action Here ] -> [ moving Done right RopeUL | action Here ]\ndown [ moving Done right RopeDR | action Here ] -> [ moving Done right RopeH | action Here ]\n\ndown [ moving Done left Chain | action Here < RopeV ] -> [ moving Done left Chain | action Here < RopeDL ]\ndown [ moving Done left Chain | action Here < RopeUR ] -> [ moving Done left Chain | action Here < RopeH ]\ndown [ moving Done right Chain | action Here < RopeV ] -> [ moving Done right Chain | action Here < RopeDR ]\ndown [ moving Done right Chain | action Here < RopeUL ] -> [ moving Done right Chain | action Here < RopeH ]\n\n[ Here > Chain | Claimed ] -> cancel\n[ Here > Chain | ] -> [ Here > Chain | Claimed ]\n\n[ moving Done ] -> [ Done ]\n\n[ Here ] -> [ action Done ]\n\n(End loop)\n\nendloop\n\n[ Claimed ] -> []\n[ Here ] -> []\n[ Done ] -> []\n\nlate [ Player Rope ] -> cancel\nlate [ Player LassoCaught ] -> cancel\n\n([ left Chain ] -> [ L action Chain ]\n[ right Chain ] -> [ R action Chain ]\n[ up Chain ] -> [ U action Chain ]\n[ down Chain ] -> [ D action Chain ]\n[ Direction moving Crate ] -> [ Direction Crate ])\n\n[ moving LassoCaught Crate ] -> [ moving LassoCaught moving Crate ]\n\n(Pull the end of the lasso towards the player by one tile)\n\n[ stationary LassoThrown Direction ] -> [ LassoThrown ] again\n\nleft [ stationary LassoThrown | RopePullsL ] -> [ > LassoThrown | ] again\nright [ stationary LassoThrown | RopePullsR ] -> [ > LassoThrown | ] again\nup [ stationary LassoThrown | RopePullsU ] -> [ > LassoThrown | ] again\ndown [ stationary LassoThrown | RopePullsD ] -> [ > LassoThrown | ] again\n\n[ stationary LassoThrown | Player ] -> [ | PlayerNormal no Direction ]\n\n[ LassoThrown Player ] -> [ PlayerNormal ]\n\n[ > Player | ] -> [ > Player Changed | Changed ]\n[ > LassoCaught | ] -> [ > LassoCaught Changed | Changed ]\n\n(Holes)\n\nlate [ Disappearing ] -> [] again\n\nlate [ Crate Hole no Walkway no LassoCaught ] -> [ DisappearingCrate Hole ] again\nlate [ DisappearingCrate ] [ LassoReturn ] -> [ Crate ] [ LassoReturn ]\n\nlate [ Player Hole no Walkway no PlayerHold ] -> [ DisappearingPlayer Hole ]\n\n(Squashing)\n\nlate [ Player DoorUp Changed ] -> [ SquashedPlayer DoorUp ]\n\n(Add graphics)\n\nlate left [ PlayerHold | RopePullsL ] -> [ Claimed PlayerHoldL | RopePullsL ]\nlate right [ PlayerHold | RopePullsR ] -> [ Claimed PlayerHoldR | RopePullsR ]\nlate up [ PlayerHold | RopePullsU ] -> [ Claimed PlayerHoldU | RopePullsU ]\nlate down [ PlayerHold | RopePullsD ] -> [ Claimed PlayerHoldD | RopePullsD ]\n\nlate left [ PlayerHold no Claimed | LassoCaught ] -> [ PlayerHoldL | LassoCaught ]\nlate right [ PlayerHold no Claimed | LassoCaught ] -> [ PlayerHoldR | LassoCaught ]\nlate up [ PlayerHold no Claimed | LassoCaught ] -> [ PlayerHoldU | LassoCaught ]\nlate down [ PlayerHold no Claimed | LassoCaught ] -> [ PlayerHoldD | LassoCaught ]\n\nlate [ Claimed ] -> []\n\n(Draw wall edges)\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\nleft [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallLUD | WallUD ]\nup [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallULR | WallLR ]\n\nright [ WallD | Wall no WallCover ] -> [ WallD | Wall WallDL ]\nleft [ WallD | Wall no WallCover ] -> [ WallD | Wall WallDR ]\n\nright [ WallU | Wall no WallCover ] -> [ WallU | Wall WallUL ]\nleft [ WallU | Wall no WallCover ] -> [ WallU | Wall WallUR ]\n\n(Draw electric floor)\n\nleft [ ElectricFloor no DangerBorderLR | no ElectricFloor ] -> [ ElectricFloor DangerL | ]\nright [ ElectricFloor no DangerBorderLR | no ElectricFloor ] -> [ ElectricFloor DangerR | ]\nright [ ElectricFloor DangerL | no ElectricFloor ] -> [ ElectricFloor DangerLR | ]\n\nup [ ElectricFloor no DangerBorderUD | no ElectricFloor ] -> [ ElectricFloor DangerU | ]\ndown [ ElectricFloor no DangerBorderUD | no ElectricFloor ] -> [ ElectricFloor DangerD | ]\ndown [ ElectricFloor DangerU | no ElectricFloor ] -> [ ElectricFloor DangerUD | ]\n\n[ ElectricFloor no Powered ] -> [ ElectricFloor no ElectricFloorCover ]\n\n[ Player no Changed ] [ ElectricFloor Powered no ElectricFloorCover no Claimed ] -> [ Player ] [ ElectricFloor Powered ElectricFloor1 Claimed ]\n[ Player no Changed ][ ElectricFloor Powered ElectricFloor1 no Claimed ] -> [ Player ] [ ElectricFloor Powered ElectricFloor2 Claimed ]\n[ Player no Changed ][ ElectricFloor Powered ElectricFloor2 no Claimed ] ->[ Player ] [ ElectricFloor Powered no ElectricFloor Claimed ]\n\nlate [ Claimed ] -> []\n\n(Power flow)\n\nlate [ Changed no ChainUnderOver ] -> []\n\nlate [ Changed Electrifiable | no Changed Electrifiable ] -> [ Changed Electrifiable | Changed Electrifiable ]\n+ late [ Changed ChainUnder | no Changed ChainUnder ] -> [ Changed ChainUnder | Changed ChainUnder ]\n\nlate [ Changed Powered ] -> [ Changed ]\nlate [ Changed Walkway ] -> [ Changed ]\nlate [ PowerLevel ] -> []\nlate [ Changed Electrified ] -> [ Changed ]\nlate [ Changed ElectrifyingDir ] -> [ Changed ]\n\nlate [ Button Crate ] -> [ Button Crate Powered ]\nlate [ Button Player ] -> [ Button Player Powered ]\n\nstartloop\n\nlate left [ WireL no Powered | Powered ] -> [ WireL Powered | Powered ]\nlate right [ WireR no Powered | Powered ] -> [ WireR Powered | Powered ]\nlate up [ WireU no Powered | Powered ] -> [ WireU Powered | Powered ]\nlate down [ WireD no Powered | Powered ] -> [ WireD Powered | Powered ]\n\nlate left [ WireL Powered no Claimed | AndGate no Claimed ] -> [ WireL Powered Claimed | AndGate Claimed ]\nlate right [ WireR Powered no Claimed | AndGate no Claimed ] -> [ WireR Powered Claimed | AndGate Claimed ]\nlate up [ WireU Powered no Claimed | AndGate no Claimed ] -> [ WireU Powered Claimed | AndGate Claimed ]\nlate down [ WireD Powered no Claimed | AndGate no Claimed ] -> [ WireD Powered Claimed | AndGate Claimed ]\n\nlate left [ WireL Powered | no Powered no AndGate ] -> [ WireL Powered | Powered ]\nlate right [ WireR Powered | no Powered no AndGate ] -> [ WireR Powered | Powered ]\nlate up [ WireU Powered | no Powered no AndGate ] -> [ WireU Powered | Powered ]\nlate down [ WireD Powered | no Powered no AndGate ] -> [ WireD Powered | Powered ]\n\nlate [ AndGate Power1 Claimed ] -> [ AndGate Power2 Powered ]\nlate [ AndGate no PowerLevel Claimed ] -> [ AndGate Power1 no Powered ]\nlate [ AndGate Claimed ] -> [ AndGate no Powered ]\n\nlate [ PowerTransfer Powered | PowerTransfer no Powered ] -> [ PowerTransfer Powered | PowerTransfer Powered ]\n\nlate left [ WalkwayStartL Powered | Hole no WalkwayStart ] -> [ WalkwayStartL Powered | WalkwayStartL Hole ]\nlate right [ WalkwayStartR Powered | Hole no WalkwayStart ] -> [ WalkwayStartR Powered | WalkwayStartR Hole ]\nlate up [ WalkwayStartU Powered | Hole no WalkwayStart ] -> [ WalkwayStartU Powered | WalkwayStartU Hole ]\nlate down [ WalkwayStartD Powered | Hole no WalkwayStart ] -> [ WalkwayStartD Powered | WalkwayStartD Hole ]\n\nlate [ WalkwayStart Powered ] -> [ WalkwayStart Walkway Powered ]\n\nlate [ Electrifiable no Electrified ElectricFloor Powered ] -> [ Electrifiable Electrified ElectricFloor Powered ]\n\nlate [ Electrifiable Electrified | Electrifiable no Electrified ] -> [ Electrifiable Electrified | Electrifiable Electrified ]\n\nlate [ Electrifiable Electrified ElectricFloor no Powered ] -> [ Electrifiable Electrified ElectricFloor Powered ]\n\nlate [ Electrified LassoCaught ] [ Player ] -> [ Electrified LassoCaught ] [ Player Electrified ]\nlate [ LassoCaught ] [ Electrified Player ] -> [ Electrified LassoCaught ] [ Player Electrified ]\n\nendloop\n\nlate [ Claimed ] -> []\n\nlate [ Door Powered no UpWhenPowered no CheckpointTrigger ] [ Player no Button no PlayerHold ] -> [ Door Powered CheckpointTrigger ] [ Player ] checkpoint\n\nlate [ WalkwayStart Powered no CheckpointTrigger ] [ Player no Button no PlayerHold ] -> [ WalkwayStart Powered CheckpointTrigger ] [ Player ] checkpoint\n\nlate left [ Hole | WalkwayStartL ] -> [ Hole | ]\nlate right [ Hole | WalkwayStartR ] -> [ Hole | ]\nlate up [ Hole | WalkwayStartU ] -> [ Hole | ]\nlate down [ Hole | WalkwayStartD ] -> [ Hole | ]\n\nlate [ Wire no Powered ] -> [ Wire Unpowered ]\nlate [ PowerTransfer no Powered ] -> [ PowerTransfer Unpowered ]\n\nlate [ Door Powered UpWhenPowered ] -> [ DoorUp Powered UpWhenPowered ]\nlate [ Door no Powered UpWhenPowered ] -> [ DoorDown UpWhenPowered ]\nlate [ Door Powered no UpWhenPowered ] -> [ DoorDown Powered ]\nlate [ Door no Powered no UpWhenPowered ] -> [ DoorUp ]\n\n(Electrocute)\n\nlate left [ Electrified | Electrified ] -> [ Electrified ElectrifyingL | Electrified ElectrifyingR ]\nlate up [ Electrified | Electrified ] -> [ Electrified ElectrifyingU | Electrified ElectrifyingD ]\n\nlate [ PlayerDying Electrified no Claimed ] -> [ PlayerNormal Electrified Claimed ]\nlate [ Player Electrified no Claimed ] -> [ PlayerDying Electrified Claimed ]\n\nlate [ Player Electrified ] -> [ Player ]\n\nlate [ Player Claimed ] -> again\n\nlate [ Claimed ] -> []\n\nlate [ Player DoorUp no Changed no SquashedPlayer ] -> [ Player DoorDown ]\n\nlate [ Changed ] -> []\n\nlate [ Powered Reactor ] -> win\n\nlate [ ReactorTrigger Player ] [ ReactorTrigger ] -> checkpoint\nlate [ ReactorTrigger Player ] [ ReactorTrigger ] -> message The reactor core! I have to take it down by any means necessary.\nlate [ ReactorTrigger Player ] [ ReactorTrigger no Player ] -> [ ReactorTrigger Player ] []\n\nlate [ ReactorTrigger Player ] -> [ Player ]\n\nlate [ Powered no WasPowered ] -> [ Powered WasPowered ]\nlate [ no Powered WasPowered ] -> []\n\n==============\nWINCONDITIONS\n==============\n\n(all button on Crate\nno LassoCaught\nno Rope\nno LassoReturn)\n\n=======\nLEVELS\n=======\n\n(############################################\n#.........##.........##..!......##.........#\n#...!!!!..##.......┌-----!......##.........#\n#....*|...##.......|.##..!......##.........#\n#.!.!!!!!!##!!!!!!!!!##.........##.........#\n#.!--┘.|..##.|..|....##.!!!.....##.........#\n#.&...!!!!##.!..|....##..|...!!!##.........#\n#.*.....└----!..├-@..##..|...!..##.........#\n#!&!......##.!..|....##..└-┐.!..##.........#\n#.........##....|....##....|.!..##.........#\n################n##########n#!..############\n################n##########n#!..############\n############....|....##....|.!......oo.....#\n############@---2---@##.@..|.!-----┐oo.....#\n############.........##.|..|.!.....└!!--%..#\n############@---┬---@##.2--┘.!!!##..oo..|..#\n############...o↓o...##.|.......##..oo..|..#\n############ooooooooooo.|.oo#...##..oooo↓oo#\n############oo.....oooo.|.oo#!!!##..ooooooo#\n############oo.....oooo.|.oo#.|.##.........#\n############oo.....ooooo↓ooo#.|.##.........#\n################.ooooooooooo##|##########.##\n################.ooooooooooo##|##########.##\n#....@----------┐oooooooooooo.|.##┌----!...#\n#.oooooooooooooo↓oooooo...ooo.├---┘...o!...#\n#.ooooooooooooooooooooo.@.ooo!&!##....o!┐..#\n#.oo...oooooooo...ooooo.|.ooo...####..oo|###\n#*oo.#.ooooooo←-@.oooooo|oooo...####..oo|###\n#.oo...oooooooo...ooo##o|o##########..oo|###\n#.oooooooooooooo.oooo##.|.......##....o!┘..#\n#.oooooooooooooo.....nn-┴-------nn┐...o!.*.#\n#.ooooooooooooooooooo##.........##└----!-┐.#\n###########################n#############n##\n###########################n#############n##\n#.........##.........##....|....##w........#\n#.......*.##.........##..@-2-@..##.........#\n#.........##......┌--nn-┐.......##o!!!o!!!o#\n#.........##...%..|..##.|.......##o!%ooo%!o#\n#p...┌--@.##...|..|..##!!!!#!!!!##o!!!!!!!o#\n#....|....##!!!!!!!!!##....#.|..##.........#\n#....|....##.........##.%--═-┘..##.!!!-!!!.#\n#....|....##.........##....#..*.##.!%!-!%!.#\n#....|....##.........##....#....##.!!!-!!!.#\n#####n########n##############..###.|||.|||.#\n#####n########n##############..###.|||.|||.#\n#.........##..|..oo..##...ooo...##.!!!-!!!.#\n#....*....##..|..oo..##...ooo...##.!%!-!%!.#\n#.........##..└@.oo..##...ooo...##.!!!-!!!.#\n#.........##.....oo..##...ooo.@.##.|||.|||.#\n#.........##.....oo..##...ooo.|.##.|||.|||.#\n#oooooooooooooooooo.......oo←-┘.##.!!!-!!!.#\n#oooooo↑oooooo↑oooo.......oo←...##.!%!-!%!.#\n#..@---┘......|..oo..##...ooo...##.!!!┬!!!.#\n#.............@..oo..##...ooo...##...|||...#\n#################oo##################|||####\n#####################################|||####\n#.........##.........##.........##@%!┴┴┘...#\n#.........##.........##.........##%@!......#\n#.........##.........##.........##@%!.*.*..#\n#.........##.........##.........##!!!......#\n#.........##.........##.........##ooooooooo#\n#.........##.........##.........##ooooooooo#\n#.........##.........##.........##oo!!!!!oo#\n#.........##.........##.........##oo!┴┬┴!oo#\n#.........##.........##.........##oo!┬$┬!oo#\n##################################oo!┤|├!oo#)\n\n###########################x#####\n#.........##.........##....|....#\n#.......*.##.........##..@-2-@..#\n#.........##......┌--nn-┐.......#\n#.........##...%..|..##.|.......#\np....┌--@.##...|..|..##!!!!#!!!!#\n#....|....##!!!!!!!!!##....#.|..#\n#....|....##.........##.%--═-┘..#\n#....|....##.........##....#..*.#\n#....|....##.........##....#....#\n#####n########n##############..##\n#####n########n##############..##\n#.........##..|..oo..##...ooo...#\n#....*....##..|..oo..##...ooo...#\n#.........##..└@.oo..##...ooo...#\n#.........##.....oo..##...ooo.@.#\n#.........##.....oo..##...ooo.|.#\n#oooooooooooooooooo.......oo←-┘.#\n#oooooo↑oooooo↑oooo.......oo←...#\n#..@---┘......|..oo..##...ooo...#\n#.............@..oo..##...ooo...#\n#################oo##############\n\n#######################################################\n#.........##.........##..!......##.........##.........#\n#...!!!!!.##.......┌-----!......##.........##.........#\n#....*|...##.......|.##..!......##.........##.........#\n#.!.!!!!!!##!!!!!!!!!##.........##.........##.........#\n#.!--┘.|..##.|..|....##.!!!.....##.........##.........#\n#.&..!!!!!##.!..|....##..|...!!!##.........##.........#\n#.*.....├----!..├-@..##..|...!..##.........##.........#\n#!&!..!!!!##.!..|....##..└-┐.!..##.........##.........#\n#.........##....|....##....|.!..##.........##.........#\n################n##########n#!..#######################\n################n##########n#!..#######################\n############....|....##....|.!......oo.....##.........#\n############@---2---@##.@..|.!-----┐oo.....##.........#\n############.........##.|..|.!.....└!!--%..##.........#\n############@---┬---@##.2--┘.!!!##..oo..|..##.........#\n############...o↓o...##.|.......##..oo..|..##.........#\n############ooooooooooo.|.oo#...##..oooo↓oo#═.........#\n############oo.....oooo.|.oo#!!!##..ooooooo##.........#\n############oo.....oooo.|.oo#.|.##.........##.........#\n############oo.....ooooo↓ooo#.|.##.........##.........#\n################.ooooooooooo##|##########.#######n#####\n################.ooooooooooo##|##########.#######x#####\n#....@----------┐oooooooooooo.|.##┌----!...##%!--┘..!%#\n#.oooooooooooooo↓oooooo...ooo.├---┘...o!...##!!!!!..!!#\n#.ooooooooooooooooooooo.@.ooo!&!##....o!┐..##!.|.!..|.#\n#.oo...oooooooo...ooooo.|.ooo...####..oo|####!.!.!.!|.#\n#*oo.#.ooooooo←-@.oooooo|oooo...####..oo|####!.!.!-!!!#\n#.oo...oooooooo...ooo##o|o##########..oo|####!.!.!.!..#\n#.oooooooooooooo.oooo##.|.......##....o!┘..##!.!...|..#\n#.oooooooooooooo.....nn-┴-------nn┐...o!.*┌nn..!!!!!!!#\n#.ooooooooooooooooooo##.........##└----!--┘##!!!....!%#\n###########################p###########################\n\n######################\n#....................#\n#....................#\n#oooooooooooo!!!o!!!oo\n#ooo↑oooooooo!%ooo%!oo\n#oo.|.ooooooo!!!!!!!oo\n#oo.|.oooo##.........#\n#o!!!!!!!o##.!!!-!!!.#\n#o!....@!o##.!%!-!%!.#\n#o!!!!!!!o##.!!!-!!!.#\n#oooo...oo##.|||.|||.#\n#oooo...oo##.|||.|||.#\n#oo┌--┐...##.!!!-!!!.#\n#oo@..|...##.!%!-!%!.#\n#oo###n#####.!!!-!!!.#\n#oo.......##.|||.|||.#\n#oo.......##.|||.|||.#\n#oo..*.*..##.!!!-!!!.#\n#oo.......##.!%!-!%!.#\n#oo.......##.!!!┬!!!.#\n#oo.......##...|||...#\n######p########|||####\n######n########zzz####\n#%!---┘.!%##@%!┴┴┘...#\n#!!!!!..!!##%@!......#\n#!.|.!..|.##@%!.*.*..#\n#!.!.!.!|.##!!!......#\n#!.!.!-!!!##ooooooooo#\n#!.!.!.!..##ooooooooo#\n#!.!...|..##oo!!!!!oo#\nn..!!!!!!!##oo!┴┬┴!oo#\n#!!!....!%##oo!┬$┬!oo#\n############oo!┤|├!oo#\n\n(#######################################################\n#.........##.....!...##.........##...#.....##.........#\n#...!!!!!.##.....!-┬-nn.........##...#.....##.........#\n#....*|...##...┌-!.|.##.........##.*.#...@.##.........#\n#.!.!!!!!!##...|.##|.##.........##...#...|.##.........#\n#.!-┬┘.|..##...@.##|.##.!!!.....##.@-n-@.2.##.........#\n#.&.|!!!!!##.!...##|.##..|...!!!##...#...|.##.........#\n#.*.|...├----!...!.|.##..|...!..##.*.#...@.##.........#\n#!!!┘.!!!!##.!--┐!-┘.##..└┐..!..##...#.....##.........#\n#.........##....|!...##...|..!..##...#.....##.........#\n################n#########n##!..#######################)\n\n\nmessage BOOM\nmessage You will be remembered as a hero\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",0,"tick","tick","tick",0,"tick","tick","tick","tick","tick","tick",0,"tick","tick","tick",4,"tick","tick","tick","tick","tick","tick","tick","tick","tick",0,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick",0,"tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick",2,"tick","tick","tick",3,"tick","tick","tick",4,"tick","tick",0,"tick","tick","tick","tick","tick","tick",3,"tick","tick","tick","tick","tick",0,"tick","tick","tick","tick",3,"tick","tick","tick","tick","tick","tick","tick","tick",3,"tick","tick","tick","tick","tick","tick",0,"tick","tick","tick","tick",0,"tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",4,"tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background walldr wallnormal:0,background wallnormal wallr:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background wallnormal wallur:2,\n0,1,1,1,1,1,1,background walld wallnormal wallr:3,background doorup unpowered:4,background wallnormal wallr wallu:5,2,background walld wallnormal:6,background:7,7,background hole:8,8,8,8,8,8,8,8,\n8,8,8,8,8,8,8,8,8,8,background wallnormal wallu:9,6,background button crate powered waspowered:10,background dangerl dangeru electricfloor powered waspowered:11,background dangerlr electricfloor powered waspowered:12,12,12,12,background dangerd dangerlr electricfloor powered waspowered:13,7,background dangerl dangerud electricfloor powered waspowered:14,9,\n6,7,7,8,8,8,8,background dangerl dangeru electricfloor unpowered:15,background dangerlr electricfloor unpowered:16,background dangerd dangerl electricfloor unpowered:17,8,8,8,8,8,8,8,8,8,8,8,9,\n6,background dangerlr dangeru electricfloor powered waspowered:18,background dangerd electricfloor powered waspowered:19,7,7,7,7,7,7,background dangerud electricfloor powered waspowered:20,9,6,7,7,8,8,7,7,background dangerud electricfloor unpowered:21,7,21,8,\n8,background unpowered wiredr:22,background button unpowered:23,background walll wallnormal wallud:24,7,7,7,7,7,7,9,6,background powered waspowered wirelr:25,20,background powered waspowered wireud:26,18,12,12,12,background dangerl electricfloor powered waspowered:27,background dangerd dangerr electricfloor powered waspowered:28,9,\n6,7,7,8,background hole unpowered walkwaystartu:29,background unpowered wireud:30,30,21,7,21,8,8,background unpowered wirelr:31,7,background wallnormal wallud:32,7,7,7,7,7,7,9,\n6,25,20,7,7,7,7,7,20,7,9,6,7,7,8,8,7,7,21,7,21,7,\n7,31,7,background wallnormal wallr wallud:33,7,background playernormal:34,7,7,7,7,5,3,25,background dangerr dangeru electricfloor powered waspowered:35,12,12,12,13,7,20,7,9,\n6,7,7,8,8,8,8,21,7,21,7,7,background unpowered wiredl:36,30,4,7,7,7,7,7,7,background checkpointtrigger doordown powered waspowered:37,\n37,background powered waspowered wireul:38,7,7,7,25,7,7,20,7,9,6,7,7,8,8,8,8,21,23,21,7,\n7,7,7,24,7,7,background crate:39,7,7,7,background walll wallnormal wallu:40,background walld walll wallnormal:41,7,7,7,18,27,13,26,20,7,9,\n6,7,7,8,8,8,8,background dangerr dangeru electricfloor unpowered:42,16,background dangerd dangerr electricfloor unpowered:43,8,8,7,7,32,7,7,39,7,7,7,9,\n6,18,background dangerd dangerl electricfloor powered waspowered:44,26,26,20,7,7,background dangeru electricfloor powered waspowered:45,13,9,6,7,7,8,8,8,8,8,8,8,8,\n8,7,7,32,7,7,7,7,7,7,9,6,10,background dangerr dangerud electricfloor powered waspowered:46,7,7,46,7,7,46,10,9,\n6,7,7,8,8,8,40,background walll wallnormal:47,47,47,47,47,47,47,background walllud wallnormal:48,47,47,47,47,47,47,background wallnormal wallul:49,\nbackground walldl wallnormal:50,47,47,47,47,47,47,47,47,47,49,6,7,7,8,8,8,5,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,\n6,7,7,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,\n6,background button powered waspowered:51,10,51,14,8,8,8,8,8,8,6,7,7,11,12,44,7,11,12,44,26,\n26,11,12,44,26,26,11,12,44,7,9,6,10,51,10,20,8,8,8,8,8,8,\n6,7,7,20,10,20,7,20,10,20,26,26,20,10,20,26,26,20,10,20,7,5,\n3,18,12,12,28,8,8,15,16,16,16,6,7,7,46,8,20,7,35,12,28,26,\n26,35,12,28,26,26,35,12,28,26,26,background powered reactortrigger waspowered wireud:52,background powered waspowered wireulr:53,7,7,7,8,8,21,background unpowered wireulr:54,background unpowered wiredlr:55,background unpowered wireudl:56,\n6,7,7,8,8,20,7,25,25,25,7,7,25,25,25,7,7,25,25,background powered waspowered wiredlr:57,26,26,\n52,53,7,39,7,8,8,21,55,background reactor unpowered:58,30,6,7,7,14,8,20,7,11,12,44,26,\n26,11,12,44,26,26,11,12,44,26,26,52,38,7,7,7,8,8,21,54,55,background unpowered wireudr:59,\n6,7,7,20,10,20,7,20,10,20,26,26,20,10,20,26,26,20,10,20,7,40,\n41,7,7,39,7,8,8,42,16,16,16,6,7,7,35,12,28,7,35,12,28,26,\n26,35,12,28,26,26,35,12,28,7,9,6,7,7,7,7,8,8,8,8,8,8,\n6,7,7,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,\n6,7,7,7,7,8,8,8,8,8,8,50,47,41,8,8,8,40,47,47,47,47,\n47,47,47,47,47,47,47,47,47,47,49,50,47,47,47,47,47,47,47,47,47,47,\n",2,"1627778403808.806"] + ["title Cyber-Lasso\nauthor Alan Hazelden\nhomepage www.draknek.org\n\nnorepeat_action\n\nagain_interval 0.05\nrealtime_interval 0.05\n\n(verbose_logging)\n\nflickscreen 11x11\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\n#dddddd #ffffff\n11111\n10001\n10001\n10001\n11111\n\nElectricFloor\nLightBlue White\n00001\n00010\n00100\n01000\n10000\n\nElectricFloor1\nLightBlue White\n00001\n00010\n00100\n01000\n10000\n\nElectricFloor2\nLightBlue\n\nPowered\nLightBlue\n\nUnpowered\nWhite\n\nWasPowered\ntransparent\n\nHole\nBlack\n\nButton\nRed Grey\n10001\n00000\n00000\n00000\n10001\n\nCrate\nDarkGreen Green\n.....\n.111.\n.101.\n.111.\n.....\n\nElectricCrate1\nYellow\n.....\n.....\n..0..\n.....\n.....\n\n(ElectricCrate2\nOrange\n.....\n.....\n..0..\n.....\n.....)\n\nElectrifyingL\nYellow\n.....\n.....\n0....\n.....\n.....\n\nElectrifyingR\nYellow\n.....\n.....\n....0\n.....\n.....\n\nElectrifyingU\nYellow\n..0..\n.....\n.....\n.....\n.....\n\nElectrifyingD\nYellow\n.....\n.....\n.....\n.....\n..0..\n\nDisappearingCrate\nGreen\n.....\n.....\n..0..\n.....\n.....\n\nDisappearingPlayer\n#a46422\n.....\n.....\n..0..\n.....\n.....\n\nSquashedPlayer\n#a46422 #493c2b #000000 red\n....3\n.30..\n01110\n.2.2.\n3..3.\n\nWallNormal\nDarkGrey\n\nDoorUp\nDarkGrey #5a7bb6\n11111\n10001\n10001\n10001\n11111\n\nDoorDown\n#ffffff #dddddd\n11111\n1...1\n1.0.1\n1...1\n11111\n\nUpWhenPowered\ntransparent\n\nWalkway\n#dddddd #9d9e9e\n11111\n10001\n10001\n10001\n11111\n\nWalkwayStartL\n#9d9e9e\n....0\n....0\n....0\n....0\n....0\n\nWalkwayStartR\n#9d9e9e\n0....\n0....\n0....\n0....\n0....\n\nWalkwayStartU\n#9d9e9e\n.....\n.....\n.....\n.....\n00000\n\nWalkwayStartD\n#9d9e9e\n00000\n.....\n.....\n.....\n.....\n\nPlayerNormal\n#a46422 #493c2b #000000\n..0..\n.111.\n01110\n02220\n.2.2.\n\nPlayerHoldL\n#a46422 #493c2b #000000 orange\n..0..\n.111.\n3330.\n0222.\n.2.2.\n\nPlayerHoldR\n#a46422 #493c2b #000000 orange\n..0..\n.111.\n01110\n0222.\n.2.2.\n\nPlayerHoldU\n#a46422 #493c2b #000000 orange\n..00.\n.110.\n0111.\n0222.\n.2.2.\n\nPlayerHoldD\n#a46422 #493c2b #000000 orange\n..0..\n.111.\n0110.\n0232.\n.232.\n\n(RopeNextToPlayerR\n#a46422\n.....\n.....\n0....\n.....\n.....)\n\nPlayerAiming\n#a46422 #493c2b #000000\n..0.0\n.1110\n0111.\n0222.\n.2.2.\n\nPlayerDying\nyellow yellow yellow\n..0..\n.111.\n01110\n02220\n.2.2.\n\nLassoAboveHead1\nbrown orange\n.....\n..00.\n.0..0\n..001\n....1\n\nLassoAboveHead2\nbrown orange\n.....\n.000.\n0...0\n.0001\n....1\n\nLassoAboveHead3\nbrown orange\n.....\n.00..\n0..0.\n.00..\n...1.\n\nLassoAboveHead4\nbrown orange\n.00..\n0..0.\n0..0.\n.00..\n...1.\n\nLassoAboveHead5\nbrown orange\n.00..\n0..0.\n.00..\n..1..\n...1.\n\nLassoAboveHead6\nbrown orange\n.000.\n0...0\n.000.\n..1..\n...1.\n\nLassoAboveHead7\nbrown orange\n..00.\n.0..0\n..00.\n...1.\n...1.\n\nLassoAboveHead8\nbrown orange\n..00.\n.0..0\n.0..0\n..00.\n...1.\n\nLassoThrownL\nbrown orange\n.00..\n0..0.\n0..01\n0..0.\n.00..\n\nLassoThrownR\nbrown orange\n..00.\n.0..0\n10..0\n.0..0\n..00.\n\nLassoThrownU\nbrown orange\n.000.\n0...0\n0...0\n.000.\n..1..\n\nLassoThrownD\nbrown orange\n..1..\n.000.\n0...0\n0...0\n.000.\n\nLassoReturn\nbrown orange\n.000.\n0...0\n0...0\n0...0\n.000.\n\nLassoCaught\nbrown\n.000.\n0...0\n0...0\n0...0\n.000.\n\nRopeH\norange\n.....\n.....\n00000\n.....\n.....\n\nRopeV\norange\n..0..\n..0..\n..0..\n..0..\n..0..\n\nRopeUL\norange\n..0..\n..0..\n000..\n.....\n.....\n\nRopeUR\norange\n..0..\n..0..\n..000\n.....\n.....\n\nRopeDL\norange\n.....\n.....\n000..\n..0..\n..0..\n\nRopeDR\norange\n.....\n.....\n..000\n..0..\n..0..\n\nWireLR\n#ffffff #dddddd\n00000\n11111\n.....\n11111\n00000\n\nWireUD\n#ffffff #dddddd\n01.10\n01.10\n01.10\n01.10\n01.10\n\nWireUL\n#ffffff #dddddd\n01.10\n11.10\n...10\n11110\n00000\n\nWireUR\n#ffffff #dddddd\n01.10\n01.11\n01...\n01111\n00000\n\nWireDL\n#ffffff #dddddd\n00000\n11110\n...10\n11.10\n01.10\n\nWireDR\n#ffffff #dddddd\n00000\n01111\n01...\n01.11\n01.10\n\nWireULR\n#ffffff #dddddd\n01.10\n11.11\n.....\n11111\n00000\n\nWireDLR\n#ffffff #dddddd\n00000\n11111\n.....\n11.11\n01.10\n\nWireUDL\n#ffffff #dddddd\n01.10\n11.10\n...10\n11.10\n01.10\n\nWireUDR\n#ffffff #dddddd\n01.10\n01.11\n01...\n01.11\n01.10\n\nAndGate\nGrey Grey Red\n.000.\n00000\n02020\n00000\n.000.\n\nPower1\nYellow\n.....\n.....\n.0...\n.....\n.....\n\nPower2\nYellow\n.....\n.....\n.0.0.\n.....\n.....\n\nDone\ntransparent\n\nHere\ntransparent\n\nClaimed\ntransparent\n\nChanged\nred\n\nExit\ntransparent\n\nCheckpointTrigger\ntransparent\n\nReactorTrigger\ntransparent\n\nU\nred\n..0..\n.0.0.\n.....\n.....\n.....\n\nD\nred\n.....\n.....\n.....\n.0.0.\n..0..\n\nL\nred\n.....\n.0...\n0....\n.0...\n.....\n\nR\nred\n.....\n...0.\n....0\n...0.\n.....\n\nWallL\nDarkRed\n0....\n0....\n0....\n0....\n0....\n\nWallR\nDarkRed\n....0\n....0\n....0\n....0\n....0\n\nWallU\nDarkRed\n00000\n.....\n.....\n.....\n.....\n\nWallD\nDarkRed\n.....\n.....\n.....\n.....\n00000\n\nWallLR\nDarkRed\n0...0\n0...0\n0...0\n0...0\n0...0\n\nWallUD\nDarkRed\n00000\n.....\n.....\n.....\n00000\n\nWallUL\nDarkRed\n0....\n.....\n.....\n.....\n.....\n\nWallUR\nDarkRed\n....0\n.....\n.....\n.....\n.....\n\nWallDL\nDarkRed\n.....\n.....\n.....\n.....\n0....\n\nWallDR\nDarkRed\n.....\n.....\n.....\n.....\n....0\n\nWallDLR\nDarkRed\n.....\n.....\n.....\n.....\n0...0\n\nWallULR\nDarkRed\n0...0\n.....\n.....\n.....\n.....\n\nWallLUD\nDarkRed\n0....\n.....\n.....\n.....\n0....\n\nWallWireLR\nDarkGrey #61686c\n00000\n00000\n00000\n00000\n00000\n\nDangerL\n#be656d\n0....\n0....\n0....\n0....\n0....\n\nDangerR\n#be656d\n....0\n....0\n....0\n....0\n....0\n\nDangerU\n#be656d\n00000\n.....\n.....\n.....\n.....\n\nDangerD\n#be656d\n.....\n.....\n.....\n.....\n00000\n\nDangerLR\n#be656d\n0...0\n0...0\n0...0\n0...0\n0...0\n\nDangerUD\n#be656d\n00000\n.....\n.....\n.....\n00000\n\nReactor\n#ffffff #dddddd\n01.10\n11.11\n.....\n11.11\n01.10\n\nWarning1\nWhite Black\n01100\n01010\n01100\n01010\n01010\n\nWarning2\nWhite Black\n11100\n10001\n11001\n10001\n11101\n\nWarning3\nWhite Black\n10001\n01010\n11010\n01010\n01001\n\nWarning4\nWhite Black\n10111\n00010\n00010\n00010\n10010\n\nWarning5\nWhite Black\n00110\n01001\n01001\n01001\n00110\n\nWarning6\nWhite Black\n01100\n01010\n01100\n01010\n01010\n\n\n=======\nLEGEND\n=======\n\nPlayerHold = PlayerHoldL or PlayerHoldR or PlayerHoldU or PlayerHoldD\nPlayer = PlayerNormal or PlayerAiming or PlayerHold or DisappearingPlayer or PlayerDying\nDirection = U or D or L or R\nRope = RopeH or RopeV or RopeUL or RopeUR or RopeDL or RopeDR\nRopePullsL = RopeH or RopeUR or RopeDR\nRopePullsR = RopeH or RopeUL or RopeDL\nRopePullsU = RopeV or RopeDL or RopeDR\nRopePullsD = RopeV or RopeUL or RopeUR\n\n(RopeNextToPlayer = RopeNextToPlayerR)\n\nLassoAboveHead = LassoAboveHead1 or LassoAboveHead2 or LassoAboveHead3 or LassoAboveHead4 or LassoAboveHead5 or LassoAboveHead6 or LassoAboveHead7 or LassoAboveHead8\n\nWallWire = WallWireLR\nWall = WallNormal or WallWire\n\nSolid = Wall or Crate or DoorUp\nSolidUncatchable = Wall or DoorUp\nChain = Rope or LassoCaught or Player\nLassoThrown = LassoThrownL or LassoThrownR or LassoThrownU or LassoThrownD or LassoReturn\n\nWallCoverLR = WallL or WallR or WallLR\nWallCoverUD = WallU or WallD or WallUD\nWallCoverCorner = WallUL or WallUR or WallDL or WallDR or WallDLR or WallLUD or WallULR\n\nWallCover = WallCoverLR or WallCoverUD or WallCoverCorner\n\nDangerBorderLR = DangerL or DangerR or DangerLR\nDangerBorderUD = DangerU or DangerD or DangerUD\nDangerBorder = DangerBorderLR or DangerBorderUD\n\nWireL = WireLR or WireUL or WireDL or WireUDL or WireULR or WireDLR or WallWireLR\nWireR = WireLR or WireUR or WireDR or WireUDR or WireULR or WireDLR or WallWireLR\nWireU = WireUD or WireUL or WireUR or WireUDL or WireUDR or WireULR\nWireD = WireUD or WireDL or WireDR or WireUDL or WireUDR or WireDLR\nWire = WireL or WireR or WireU or WireD\n\nDoor = DoorUp or DoorDown\n\nWalkwayStart = WalkwayStartL or WalkwayStartR or WalkwayStartU or WalkwayStartD\n\nPowerTransfer = Button or ElectricFloor or Door or Walkway or WalkwayStart or Reactor\n\nElectrified = ElectricCrate1\n\nElectrifiable = Player or Crate\n\nElectrifyingDir = ElectrifyingL or ElectrifyingR or ElectrifyingU or ElectrifyingD\n\nChainUnder = Wire or PowerTransfer or AndGate\nChainUnderOver = Button or ElectricFloor\nChainOver = Electrifiable or ChainUnderOver\n\nDisappearing = DisappearingCrate or DisappearingPlayer\nSquashed = SquashedPlayer\n\nPowerLevel = Power1 or Power2\n\nElectricFloorCover = ElectricFloor1 or ElectricFloor2\n\nWarning = Warning1 or Warning2 or Warning3 or Warning4 or Warning5 or Warning6\n\n. = Background\n# = WallNormal\nP = PlayerNormal and DoorUp\n* = Crate\n! = ElectricFloor\no = Hole\n@ = Button\n_ = DoorDown\nn = DoorUp\n% = Button and Crate\n2 = AndGate\n& = Crate and ElectricFloor\n═ = WallWireLR\n$ = Reactor\nW = Warning1\nX = Exit and DoorUp\nz = ReactorTrigger and WireUD\n\n\n(ref http://unicode-search.net/unicode-namesearch.pl?term=box%20drawings)\n\n- = WireLR\n| = WireUD\n┐ = WireDL\n┤ = WireUDL\n┘ = WireUL\n┌ = WireDR\n├ = WireUDR\n└ = WireUR\n┬ = WireDLR\n┴ = WireULR\n\n← = WalkwayStartL and Hole\n→ = WalkwayStartR and Hole\n↑ = WalkwayStartU and Hole\n↓ = WalkwayStartD and Hole\n\n\n=======\nSOUNDS\n=======\n\nLassoAboveHead create 86845907\nPlayerAiming destroy 19629107\nsfx0 81428909 (throw lasso)\nLassoCaught create 1688102\nLassoCaught destroy 11489509\nPlayer move 75749507\nsfx1 12358709 (bending rope)\nWasPowered create 56141902 (power on)\nWasPowered destroy 25196302 (power off)\nDisappearing create 96367909\nPlayerDying create 9797709\nPlayerDying destroy 82870709\n\nUndo 77836307\nRestart 41565108\n\nEndLevel 42704508\nEndGame 10304308\n\n(\nTodo:\ntweak electrocution\ngetting crushed\npower on/off triggers too much\nending sound triggers too late\n)\n\n\n================\nCOLLISIONLAYERS\n================\n\nCheckpointTrigger, ReactorTrigger\nDirection, Done, Here\nClaimed\nBackground\nElectricFloor, UpWhenPowered\nWasPowered\nPowered, Unpowered\nElectricFloorCover, Warning, Exit\nHole, Button, Wire, Door, AndGate, Reactor\nDangerBorderLR, WalkwayStart, PowerLevel\nDangerBorderUD, Walkway\nPlayer, PlayerDying, Wall, Crate, Disappearing, Squashed\nWallCoverLR, Electrified\nWallCoverUD, WallCoverCorner\nLassoAboveHead\nLassoThrown, LassoCaught, Rope\nElectrifyingL\nElectrifyingR\nElectrifyingU\nElectrifyingD\nChanged\n\n======\nRULES\n======\n\n([ Changed ] -> [])\n\n([ RopeNextToPlayer ] -> [])\n\n(Lasso aiming animation)\n\n[ up Player Exit ] -> [ Player Exit ] win\n\nright [ Warning1 | | | | | ] -> [ Warning1 | Warning2 | Warning3 | Warning4 | Warning5 | Warning6 ]\n\nlate up [ PlayerAiming | no LassoAboveHead ] -> [ PlayerAiming | LassoAboveHead1 ]\nlate up [ no PlayerAiming | LassoAboveHead ] -> [ | ]\n\nup [ moving Player | LassoAboveHead ] -> [ moving Player | action LassoAboveHead ]\n\n[ stationary LassoAboveHead1 ] -> [ action LassoAboveHead2 ]\n[ stationary LassoAboveHead2 ] -> [ action LassoAboveHead3 ]\n[ stationary LassoAboveHead3 ] -> [ action LassoAboveHead4 ]\n[ stationary LassoAboveHead4 ] -> [ action LassoAboveHead5 ]\n[ stationary LassoAboveHead5 ] -> [ action LassoAboveHead6 ]\n[ stationary LassoAboveHead6 ] -> [ action LassoAboveHead7 ]\n[ stationary LassoAboveHead7 ] -> [ action LassoAboveHead8 ]\n[ stationary LassoAboveHead8 ] -> [ action LassoAboveHead1 ]\n\n(Pressing action)\n\n[ action PlayerHold ] [ LassoCaught Crate ] -> [ PlayerHold ] [ LassoReturn action Crate Changed ] again\n\n[ action PlayerAiming ] -> [ PlayerNormal ]\n[ action PlayerNormal ] -> [ PlayerAiming ]\n\n(Throwing lasso)\n\nleft [ > PlayerAiming | no SolidUncatchable ] -> [ PlayerHoldL | L action LassoThrownL ] sfx0 again\nright [ > PlayerAiming | no SolidUncatchable ] -> [ PlayerHoldR | R action LassoThrownR ] sfx0 again\nup [ > PlayerAiming | no SolidUncatchable ] -> [ PlayerHoldU | U action LassoThrownU ] sfx0 again\ndown [ > PlayerAiming | no SolidUncatchable ] -> [ PlayerHoldD | D action LassoThrownD ] sfx0 again\n\nleft [ L stationary LassoThrownL | no SolidUncatchable ] -> [ RopeH | L action LassoThrownL ] again\nright [ R stationary LassoThrownR | no SolidUncatchable ] -> [ RopeH | R action LassoThrownR ] again\nup [ U stationary LassoThrownU | no SolidUncatchable ] -> [ RopeV | U action LassoThrownU ] again\ndown [ D stationary LassoThrownD | no SolidUncatchable ] -> [ RopeV | D action LassoThrownD ] again\n\n[ LassoThrown stationary Crate no LassoReturn ] -> [ action LassoCaught Crate no Direction ]\n\n[ Player | | | | | LassoThrown Direction ] -> [ Player | | | | | action LassoThrown ]\n\n([ Player | | | | | | | | LassoThrown Direction ] -> [ Player | | | | | | | | action LassoThrown ])\n\n(Moving while attached)\n\n[ > Player | Hole no Walkway ] -> cancel\n\n[ > Player Hole no Walkway ] -> cancel\n\n[ moving Player ] [ LassoCaught Crate ] [ Rope ] -> [ moving Player action Done ] [ moving LassoCaught action Crate ] [ moving Rope ]\n\n[ moving Player | LassoCaught Crate ] -> [ moving Player action Done | moving LassoCaught action Crate ]\n\n[ > Player | stationary Solid ] -> cancel\n\nstartloop\n\n(Start loop)\n\nleft [ action Done | RopePullsL no Done ] -> [ < Done | RopePullsL Here ]\nright [ action Done | RopePullsR no Done ] -> [ < Done | RopePullsR Here ]\nup [ action Done | RopePullsU no Done ] -> [ < Done | RopePullsU Here ]\ndown [ action Done | RopePullsD no Done ] -> [ < Done | RopePullsD Here ]\n[ action Done | LassoCaught no Done ] -> [ < Done | LassoCaught Here ]\n\n(Check for collisions)\n\n[ stationary Here > Chain | stationary Solid ] -> [ action Here > Chain | Solid ] sfx1 (set 'action Here' on collision)\n\n[ < Done | action Here > Chain ] -> cancel\n\n[ action Here ] [ Done > Chain | moving Done ] -> cancel\n\n[ action Here ] [ moving Done ] [ Chain no Done ] -> [ action Here ] [ moving Done ] [ moving Chain ] (update movement of future parts of the chain)\n\n(Handle movement)\n\nleft [ moving Done down RopeUL | action Here ] -> cancel\nleft [ moving Done up RopeDL | action Here ] -> cancel\n\nleft [ moving Done down RopeH | action Here ] -> [ moving Done down RopeUR | action Here ]\nleft [ moving Done down RopeDL | action Here ] -> [ moving Done down RopeV | action Here ]\nleft [ moving Done up RopeH | action Here ] -> [ moving Done up RopeDR | action Here ]\nleft [ moving Done up RopeUL | action Here ] -> [ moving Done up RopeV | action Here ]\n\nleft [ moving Done down Chain | action Here < RopeH ] -> [ moving Done down Chain | action Here < RopeDL ]\nleft [ moving Done down Chain | action Here < RopeUR ] -> [ moving Done down Chain | action Here < RopeV ]\nleft [ moving Done up Chain | action Here < RopeH ] -> [ moving Done up Chain | action Here < RopeUL ]\nleft [ moving Done up Chain | action Here < RopeDR ] -> [ moving Done up Chain | action Here < RopeV ]\n\nright [ moving Done down RopeUR | action Here ] -> cancel\nright [ moving Done up RopeDR | action Here ] -> cancel\n\nright [ moving Done down RopeH | action Here ] -> [ moving Done down RopeUL | action Here ]\nright [ moving Done down RopeDR | action Here ] -> [ moving Done down RopeV | action Here ]\nright [ moving Done up RopeH | action Here ] -> [ moving Done up RopeDL | action Here ]\nright [ moving Done up RopeUR | action Here ] -> [ moving Done up RopeV | action Here ]\n\nright [ moving Done down Chain | action Here < RopeH ] -> [ moving Done down Chain | action Here < RopeDR ]\nright [ moving Done down Chain | action Here < RopeUL ] -> [ moving Done down Chain | action Here < RopeV ]\nright [ moving Done up Chain | action Here < RopeH ] -> [ moving Done up Chain | action Here < RopeUR ]\nright [ moving Done up Chain | action Here < RopeDL ] -> [ moving Done up Chain | action Here < RopeV ]\n\nup [ moving Done left RopeUR | action Here ] -> cancel\nup [ moving Done right RopeUL | action Here ] -> cancel\n\nup [ moving Done left RopeV | action Here ] -> [ moving Done left RopeDR | action Here ]\nup [ moving Done left RopeUL | action Here ] -> [ moving Done left RopeH | action Here ]\nup [ moving Done right RopeV | action Here ] -> [ moving Done right RopeDL | action Here ]\nup [ moving Done right RopeUR | action Here ] -> [ moving Done right RopeH | action Here ]\n\nup [ moving Done left Chain | action Here < RopeV ] -> [ moving Done left Chain | action Here < RopeUL ]\nup [ moving Done left Chain | action Here < RopeDR ] -> [ moving Done left Chain | action Here < RopeH ]\nup [ moving Done right Chain | action Here < RopeV ] -> [ moving Done right Chain | action Here < RopeUR ]\nup [ moving Done right Chain | action Here < RopeDL ] -> [ moving Done right Chain | action Here < RopeH ]\n\ndown [ moving Done left RopeDR | action Here ] -> cancel\ndown [ moving Done right RopeDL | action Here ] -> cancel\n\ndown [ moving Done left RopeV | action Here ] -> [ moving Done left RopeUR | action Here ]\ndown [ moving Done left RopeDL | action Here ] -> [ moving Done left RopeH | action Here ]\ndown [ moving Done right RopeV | action Here ] -> [ moving Done right RopeUL | action Here ]\ndown [ moving Done right RopeDR | action Here ] -> [ moving Done right RopeH | action Here ]\n\ndown [ moving Done left Chain | action Here < RopeV ] -> [ moving Done left Chain | action Here < RopeDL ]\ndown [ moving Done left Chain | action Here < RopeUR ] -> [ moving Done left Chain | action Here < RopeH ]\ndown [ moving Done right Chain | action Here < RopeV ] -> [ moving Done right Chain | action Here < RopeDR ]\ndown [ moving Done right Chain | action Here < RopeUL ] -> [ moving Done right Chain | action Here < RopeH ]\n\n[ Here > Chain | Claimed ] -> cancel\n[ Here > Chain | ] -> [ Here > Chain | Claimed ]\n\n[ moving Done ] -> [ Done ]\n\n[ Here ] -> [ action Done ]\n\n(End loop)\n\nendloop\n\n[ Claimed ] -> []\n[ Here ] -> []\n[ Done ] -> []\n\nlate [ Player Rope ] -> cancel\nlate [ Player LassoCaught ] -> cancel\n\n([ left Chain ] -> [ L action Chain ]\n[ right Chain ] -> [ R action Chain ]\n[ up Chain ] -> [ U action Chain ]\n[ down Chain ] -> [ D action Chain ]\n[ Direction moving Crate ] -> [ Direction Crate ])\n\n[ moving LassoCaught Crate ] -> [ moving LassoCaught moving Crate ]\n\n(Pull the end of the lasso towards the player by one tile)\n\n[ stationary LassoThrown Direction ] -> [ LassoThrown ] again\n\nleft [ stationary LassoThrown | RopePullsL ] -> [ > LassoThrown | ] again\nright [ stationary LassoThrown | RopePullsR ] -> [ > LassoThrown | ] again\nup [ stationary LassoThrown | RopePullsU ] -> [ > LassoThrown | ] again\ndown [ stationary LassoThrown | RopePullsD ] -> [ > LassoThrown | ] again\n\n[ stationary LassoThrown | Player ] -> [ | PlayerNormal no Direction ]\n\n[ LassoThrown Player ] -> [ PlayerNormal ]\n\n[ > Player | ] -> [ > Player Changed | Changed ]\n[ > LassoCaught | ] -> [ > LassoCaught Changed | Changed ]\n\n(Holes)\n\nlate [ Disappearing ] -> [] again\n\nlate [ Crate Hole no Walkway no LassoCaught ] -> [ DisappearingCrate Hole ] again\nlate [ DisappearingCrate ] [ LassoReturn ] -> [ Crate ] [ LassoReturn ]\n\nlate [ Player Hole no Walkway no PlayerHold ] -> [ DisappearingPlayer Hole ]\n\n(Squashing)\n\nlate [ Player DoorUp Changed ] -> [ SquashedPlayer DoorUp ]\n\n(Add graphics)\n\nlate left [ PlayerHold | RopePullsL ] -> [ Claimed PlayerHoldL | RopePullsL ]\nlate right [ PlayerHold | RopePullsR ] -> [ Claimed PlayerHoldR | RopePullsR ]\nlate up [ PlayerHold | RopePullsU ] -> [ Claimed PlayerHoldU | RopePullsU ]\nlate down [ PlayerHold | RopePullsD ] -> [ Claimed PlayerHoldD | RopePullsD ]\n\nlate left [ PlayerHold no Claimed | LassoCaught ] -> [ PlayerHoldL | LassoCaught ]\nlate right [ PlayerHold no Claimed | LassoCaught ] -> [ PlayerHoldR | LassoCaught ]\nlate up [ PlayerHold no Claimed | LassoCaught ] -> [ PlayerHoldU | LassoCaught ]\nlate down [ PlayerHold no Claimed | LassoCaught ] -> [ PlayerHoldD | LassoCaught ]\n\nlate [ Claimed ] -> []\n\n(Draw wall edges)\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\nleft [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallLUD | WallUD ]\nup [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallULR | WallLR ]\n\nright [ WallD | Wall no WallCover ] -> [ WallD | Wall WallDL ]\nleft [ WallD | Wall no WallCover ] -> [ WallD | Wall WallDR ]\n\nright [ WallU | Wall no WallCover ] -> [ WallU | Wall WallUL ]\nleft [ WallU | Wall no WallCover ] -> [ WallU | Wall WallUR ]\n\n(Draw electric floor)\n\nleft [ ElectricFloor no DangerBorderLR | no ElectricFloor ] -> [ ElectricFloor DangerL | ]\nright [ ElectricFloor no DangerBorderLR | no ElectricFloor ] -> [ ElectricFloor DangerR | ]\nright [ ElectricFloor DangerL | no ElectricFloor ] -> [ ElectricFloor DangerLR | ]\n\nup [ ElectricFloor no DangerBorderUD | no ElectricFloor ] -> [ ElectricFloor DangerU | ]\ndown [ ElectricFloor no DangerBorderUD | no ElectricFloor ] -> [ ElectricFloor DangerD | ]\ndown [ ElectricFloor DangerU | no ElectricFloor ] -> [ ElectricFloor DangerUD | ]\n\n[ ElectricFloor no Powered ] -> [ ElectricFloor no ElectricFloorCover ]\n\n[ Player no Changed ] [ ElectricFloor Powered no ElectricFloorCover no Claimed ] -> [ Player ] [ ElectricFloor Powered ElectricFloor1 Claimed ]\n[ Player no Changed ][ ElectricFloor Powered ElectricFloor1 no Claimed ] -> [ Player ] [ ElectricFloor Powered ElectricFloor2 Claimed ]\n[ Player no Changed ][ ElectricFloor Powered ElectricFloor2 no Claimed ] ->[ Player ] [ ElectricFloor Powered no ElectricFloor Claimed ]\n\nlate [ Claimed ] -> []\n\n(Power flow)\n\nlate [ Changed no ChainUnderOver ] -> []\n\nlate [ Changed Electrifiable | no Changed Electrifiable ] -> [ Changed Electrifiable | Changed Electrifiable ]\n+ late [ Changed ChainUnder | no Changed ChainUnder ] -> [ Changed ChainUnder | Changed ChainUnder ]\n\nlate [ Changed Powered ] -> [ Changed ]\nlate [ Changed Walkway ] -> [ Changed ]\nlate [ PowerLevel ] -> []\nlate [ Changed Electrified ] -> [ Changed ]\nlate [ Changed ElectrifyingDir ] -> [ Changed ]\n\nlate [ Button Crate ] -> [ Button Crate Powered ]\nlate [ Button Player ] -> [ Button Player Powered ]\n\nstartloop\n\nlate left [ WireL no Powered | Powered ] -> [ WireL Powered | Powered ]\nlate right [ WireR no Powered | Powered ] -> [ WireR Powered | Powered ]\nlate up [ WireU no Powered | Powered ] -> [ WireU Powered | Powered ]\nlate down [ WireD no Powered | Powered ] -> [ WireD Powered | Powered ]\n\nlate left [ WireL Powered no Claimed | AndGate no Claimed ] -> [ WireL Powered Claimed | AndGate Claimed ]\nlate right [ WireR Powered no Claimed | AndGate no Claimed ] -> [ WireR Powered Claimed | AndGate Claimed ]\nlate up [ WireU Powered no Claimed | AndGate no Claimed ] -> [ WireU Powered Claimed | AndGate Claimed ]\nlate down [ WireD Powered no Claimed | AndGate no Claimed ] -> [ WireD Powered Claimed | AndGate Claimed ]\n\nlate left [ WireL Powered | no Powered no AndGate ] -> [ WireL Powered | Powered ]\nlate right [ WireR Powered | no Powered no AndGate ] -> [ WireR Powered | Powered ]\nlate up [ WireU Powered | no Powered no AndGate ] -> [ WireU Powered | Powered ]\nlate down [ WireD Powered | no Powered no AndGate ] -> [ WireD Powered | Powered ]\n\nlate [ AndGate Power1 Claimed ] -> [ AndGate Power2 Powered ]\nlate [ AndGate no PowerLevel Claimed ] -> [ AndGate Power1 no Powered ]\nlate [ AndGate Claimed ] -> [ AndGate no Powered ]\n\nlate [ PowerTransfer Powered | PowerTransfer no Powered ] -> [ PowerTransfer Powered | PowerTransfer Powered ]\n\nlate left [ WalkwayStartL Powered | Hole no WalkwayStart ] -> [ WalkwayStartL Powered | WalkwayStartL Hole ]\nlate right [ WalkwayStartR Powered | Hole no WalkwayStart ] -> [ WalkwayStartR Powered | WalkwayStartR Hole ]\nlate up [ WalkwayStartU Powered | Hole no WalkwayStart ] -> [ WalkwayStartU Powered | WalkwayStartU Hole ]\nlate down [ WalkwayStartD Powered | Hole no WalkwayStart ] -> [ WalkwayStartD Powered | WalkwayStartD Hole ]\n\nlate [ WalkwayStart Powered ] -> [ WalkwayStart Walkway Powered ]\n\nlate [ Electrifiable no Electrified ElectricFloor Powered ] -> [ Electrifiable Electrified ElectricFloor Powered ]\n\nlate [ Electrifiable Electrified | Electrifiable no Electrified ] -> [ Electrifiable Electrified | Electrifiable Electrified ]\n\nlate [ Electrifiable Electrified ElectricFloor no Powered ] -> [ Electrifiable Electrified ElectricFloor Powered ]\n\nlate [ Electrified LassoCaught ] [ Player ] -> [ Electrified LassoCaught ] [ Player Electrified ]\nlate [ LassoCaught ] [ Electrified Player ] -> [ Electrified LassoCaught ] [ Player Electrified ]\n\nendloop\n\nlate [ Claimed ] -> []\n\nlate [ Door Powered no UpWhenPowered no CheckpointTrigger ] [ Player no Button no PlayerHold ] -> [ Door Powered CheckpointTrigger ] [ Player ] checkpoint\n\nlate [ WalkwayStart Powered no CheckpointTrigger ] [ Player no Button no PlayerHold ] -> [ WalkwayStart Powered CheckpointTrigger ] [ Player ] checkpoint\n\nlate left [ Hole | WalkwayStartL ] -> [ Hole | ]\nlate right [ Hole | WalkwayStartR ] -> [ Hole | ]\nlate up [ Hole | WalkwayStartU ] -> [ Hole | ]\nlate down [ Hole | WalkwayStartD ] -> [ Hole | ]\n\nlate [ Wire no Powered ] -> [ Wire Unpowered ]\nlate [ PowerTransfer no Powered ] -> [ PowerTransfer Unpowered ]\n\nlate [ Door Powered UpWhenPowered ] -> [ DoorUp Powered UpWhenPowered ]\nlate [ Door no Powered UpWhenPowered ] -> [ DoorDown UpWhenPowered ]\nlate [ Door Powered no UpWhenPowered ] -> [ DoorDown Powered ]\nlate [ Door no Powered no UpWhenPowered ] -> [ DoorUp ]\n\n(Electrocute)\n\nlate left [ Electrified | Electrified ] -> [ Electrified ElectrifyingL | Electrified ElectrifyingR ]\nlate up [ Electrified | Electrified ] -> [ Electrified ElectrifyingU | Electrified ElectrifyingD ]\n\nlate [ PlayerDying Electrified no Claimed ] -> [ PlayerNormal Electrified Claimed ]\nlate [ Player Electrified no Claimed ] -> [ PlayerDying Electrified Claimed ]\n\nlate [ Player Electrified ] -> [ Player ]\n\nlate [ Player Claimed ] -> again\n\nlate [ Claimed ] -> []\n\nlate [ Player DoorUp no Changed no SquashedPlayer ] -> [ Player DoorDown ]\n\nlate [ Changed ] -> []\n\nlate [ Powered Reactor ] -> win\n\nlate [ ReactorTrigger Player ] [ ReactorTrigger ] -> checkpoint\nlate [ ReactorTrigger Player ] [ ReactorTrigger ] -> message The reactor core! I have to take it down by any means necessary.\nlate [ ReactorTrigger Player ] [ ReactorTrigger no Player ] -> [ ReactorTrigger Player ] []\n\nlate [ ReactorTrigger Player ] -> [ Player ]\n\nlate [ Powered no WasPowered ] -> [ Powered WasPowered ]\nlate [ no Powered WasPowered ] -> []\n\n==============\nWINCONDITIONS\n==============\n\n(all button on Crate\nno LassoCaught\nno Rope\nno LassoReturn)\n\n=======\nLEVELS\n=======\n\n(############################################\n#.........##.........##..!......##.........#\n#...!!!!..##.......┌-----!......##.........#\n#....*|...##.......|.##..!......##.........#\n#.!.!!!!!!##!!!!!!!!!##.........##.........#\n#.!--┘.|..##.|..|....##.!!!.....##.........#\n#.&...!!!!##.!..|....##..|...!!!##.........#\n#.*.....└----!..├-@..##..|...!..##.........#\n#!&!......##.!..|....##..└-┐.!..##.........#\n#.........##....|....##....|.!..##.........#\n################n##########n#!..############\n################n##########n#!..############\n############....|....##....|.!......oo.....#\n############@---2---@##.@..|.!-----┐oo.....#\n############.........##.|..|.!.....└!!--%..#\n############@---┬---@##.2--┘.!!!##..oo..|..#\n############...o↓o...##.|.......##..oo..|..#\n############ooooooooooo.|.oo#...##..oooo↓oo#\n############oo.....oooo.|.oo#!!!##..ooooooo#\n############oo.....oooo.|.oo#.|.##.........#\n############oo.....ooooo↓ooo#.|.##.........#\n################.ooooooooooo##|##########.##\n################.ooooooooooo##|##########.##\n#....@----------┐oooooooooooo.|.##┌----!...#\n#.oooooooooooooo↓oooooo...ooo.├---┘...o!...#\n#.ooooooooooooooooooooo.@.ooo!&!##....o!┐..#\n#.oo...oooooooo...ooooo.|.ooo...####..oo|###\n#*oo.#.ooooooo←-@.oooooo|oooo...####..oo|###\n#.oo...oooooooo...ooo##o|o##########..oo|###\n#.oooooooooooooo.oooo##.|.......##....o!┘..#\n#.oooooooooooooo.....nn-┴-------nn┐...o!.*.#\n#.ooooooooooooooooooo##.........##└----!-┐.#\n###########################n#############n##\n###########################n#############n##\n#.........##.........##....|....##w........#\n#.......*.##.........##..@-2-@..##.........#\n#.........##......┌--nn-┐.......##o!!!o!!!o#\n#.........##...%..|..##.|.......##o!%ooo%!o#\n#p...┌--@.##...|..|..##!!!!#!!!!##o!!!!!!!o#\n#....|....##!!!!!!!!!##....#.|..##.........#\n#....|....##.........##.%--═-┘..##.!!!-!!!.#\n#....|....##.........##....#..*.##.!%!-!%!.#\n#....|....##.........##....#....##.!!!-!!!.#\n#####n########n##############..###.|||.|||.#\n#####n########n##############..###.|||.|||.#\n#.........##..|..oo..##...ooo...##.!!!-!!!.#\n#....*....##..|..oo..##...ooo...##.!%!-!%!.#\n#.........##..└@.oo..##...ooo...##.!!!-!!!.#\n#.........##.....oo..##...ooo.@.##.|||.|||.#\n#.........##.....oo..##...ooo.|.##.|||.|||.#\n#oooooooooooooooooo.......oo←-┘.##.!!!-!!!.#\n#oooooo↑oooooo↑oooo.......oo←...##.!%!-!%!.#\n#..@---┘......|..oo..##...ooo...##.!!!┬!!!.#\n#.............@..oo..##...ooo...##...|||...#\n#################oo##################|||####\n#####################################|||####\n#.........##.........##.........##@%!┴┴┘...#\n#.........##.........##.........##%@!......#\n#.........##.........##.........##@%!.*.*..#\n#.........##.........##.........##!!!......#\n#.........##.........##.........##ooooooooo#\n#.........##.........##.........##ooooooooo#\n#.........##.........##.........##oo!!!!!oo#\n#.........##.........##.........##oo!┴┬┴!oo#\n#.........##.........##.........##oo!┬$┬!oo#\n##################################oo!┤|├!oo#)\n\n###########################x#####\n#.........##.........##....|....#\n#.......*.##.........##..@-2-@..#\n#.........##......┌--nn-┐.......#\n#.........##...%..|..##.|.......#\np....┌--@.##...|..|..##!!!!#!!!!#\n#....|....##!!!!!!!!!##....#.|..#\n#....|....##.........##.%--═-┘..#\n#....|....##.........##....#..*.#\n#....|....##.........##....#....#\n#####n########n##############..##\n#####n########n##############..##\n#.........##..|..oo..##...ooo...#\n#....*....##..|..oo..##...ooo...#\n#.........##..└@.oo..##...ooo...#\n#.........##.....oo..##...ooo.@.#\n#.........##.....oo..##...ooo.|.#\n#oooooooooooooooooo.......oo←-┘.#\n#oooooo↑oooooo↑oooo.......oo←...#\n#..@---┘......|..oo..##...ooo...#\n#.............@..oo..##...ooo...#\n#################oo##############\n\n#######################################################\n#.........##.........##..!......##.........##.........#\n#...!!!!!.##.......┌-----!......##.........##.........#\n#....*|...##.......|.##..!......##.........##.........#\n#.!.!!!!!!##!!!!!!!!!##.........##.........##.........#\n#.!--┘.|..##.|..|....##.!!!.....##.........##.........#\n#.&..!!!!!##.!..|....##..|...!!!##.........##.........#\n#.*.....├----!..├-@..##..|...!..##.........##.........#\n#!&!..!!!!##.!..|....##..└-┐.!..##.........##.........#\n#.........##....|....##....|.!..##.........##.........#\n################n##########n#!..#######################\n################n##########n#!..#######################\n############....|....##....|.!......oo.....##.........#\n############@---2---@##.@..|.!-----┐oo.....##.........#\n############.........##.|..|.!.....└!!--%..##.........#\n############@---┬---@##.2--┘.!!!##..oo..|..##.........#\n############...o↓o...##.|.......##..oo..|..##.........#\n############ooooooooooo.|.oo#...##..oooo↓oo#═.........#\n############oo.....oooo.|.oo#!!!##..ooooooo##.........#\n############oo.....oooo.|.oo#.|.##.........##.........#\n############oo.....ooooo↓ooo#.|.##.........##.........#\n################.ooooooooooo##|##########.#######n#####\n################.ooooooooooo##|##########.#######x#####\n#....@----------┐oooooooooooo.|.##┌----!...##%!--┘..!%#\n#.oooooooooooooo↓oooooo...ooo.├---┘...o!...##!!!!!..!!#\n#.ooooooooooooooooooooo.@.ooo!&!##....o!┐..##!.|.!..|.#\n#.oo...oooooooo...ooooo.|.ooo...####..oo|####!.!.!.!|.#\n#*oo.#.ooooooo←-@.oooooo|oooo...####..oo|####!.!.!-!!!#\n#.oo...oooooooo...ooo##o|o##########..oo|####!.!.!.!..#\n#.oooooooooooooo.oooo##.|.......##....o!┘..##!.!...|..#\n#.oooooooooooooo.....nn-┴-------nn┐...o!.*┌nn..!!!!!!!#\n#.ooooooooooooooooooo##.........##└----!--┘##!!!....!%#\n###########################p###########################\n\n######################\n#....................#\n#....................#\n#oooooooooooo!!!o!!!oo\n#ooo↑oooooooo!%ooo%!oo\n#oo.|.ooooooo!!!!!!!oo\n#oo.|.oooo##.........#\n#o!!!!!!!o##.!!!-!!!.#\n#o!....@!o##.!%!-!%!.#\n#o!!!!!!!o##.!!!-!!!.#\n#oooo...oo##.|||.|||.#\n#oooo...oo##.|||.|||.#\n#oo┌--┐...##.!!!-!!!.#\n#oo@..|...##.!%!-!%!.#\n#oo###n#####.!!!-!!!.#\n#oo.......##.|||.|||.#\n#oo.......##.|||.|||.#\n#oo..*.*..##.!!!-!!!.#\n#oo.......##.!%!-!%!.#\n#oo.......##.!!!┬!!!.#\n#oo.......##...|||...#\n######p########|||####\n######n########zzz####\n#%!---┘.!%##@%!┴┴┘...#\n#!!!!!..!!##%@!......#\n#!.|.!..|.##@%!.*.*..#\n#!.!.!.!|.##!!!......#\n#!.!.!-!!!##ooooooooo#\n#!.!.!.!..##ooooooooo#\n#!.!...|..##oo!!!!!oo#\nn..!!!!!!!##oo!┴┬┴!oo#\n#!!!....!%##oo!┬$┬!oo#\n############oo!┤|├!oo#\n\n(#######################################################\n#.........##.....!...##.........##...#.....##.........#\n#...!!!!!.##.....!-┬-nn.........##...#.....##.........#\n#....*|...##...┌-!.|.##.........##.*.#...@.##.........#\n#.!.!!!!!!##...|.##|.##.........##...#...|.##.........#\n#.!-┬┘.|..##...@.##|.##.!!!.....##.@-n-@.2.##.........#\n#.&.|!!!!!##.!...##|.##..|...!!!##...#...|.##.........#\n#.*.|...├----!...!.|.##..|...!..##.*.#...@.##.........#\n#!!!┘.!!!!##.!--┐!-┘.##..└┐..!..##...#.....##.........#\n#.........##....|!...##...|..!..##...#.....##.........#\n################n#########n##!..#######################)\n\n\nmessage BOOM\nmessage You will be remembered as a hero\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", 4, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", 3, "tick", "tick", "tick", 4, "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 4, "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background walldr wallnormal:0,background wallnormal wallr:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background wallnormal wallur:2,\n0,1,1,1,1,1,1,background walld wallnormal wallr:3,background doorup unpowered:4,background wallnormal wallr wallu:5,2,background walld wallnormal:6,background:7,7,background hole:8,8,8,8,8,8,8,8,\n8,8,8,8,8,8,8,8,8,8,background wallnormal wallu:9,6,background button crate powered waspowered:10,background dangerl dangeru electricfloor powered waspowered:11,background dangerlr electricfloor powered waspowered:12,12,12,12,background dangerd dangerlr electricfloor powered waspowered:13,7,background dangerl dangerud electricfloor powered waspowered:14,9,\n6,7,7,8,8,8,8,background dangerl dangeru electricfloor unpowered:15,background dangerlr electricfloor unpowered:16,background dangerd dangerl electricfloor unpowered:17,8,8,8,8,8,8,8,8,8,8,8,9,\n6,background dangerlr dangeru electricfloor powered waspowered:18,background dangerd electricfloor powered waspowered:19,7,7,7,7,7,7,background dangerud electricfloor powered waspowered:20,9,6,7,7,8,8,7,7,background dangerud electricfloor unpowered:21,7,21,8,\n8,background unpowered wiredr:22,background button unpowered:23,background walll wallnormal wallud:24,7,7,7,7,7,7,9,6,background powered waspowered wirelr:25,20,background powered waspowered wireud:26,18,12,12,12,background dangerl electricfloor powered waspowered:27,background dangerd dangerr electricfloor powered waspowered:28,9,\n6,7,7,8,background hole unpowered walkwaystartu:29,background unpowered wireud:30,30,21,7,21,8,8,background unpowered wirelr:31,7,background wallnormal wallud:32,7,7,7,7,7,7,9,\n6,25,20,7,7,7,7,7,20,7,9,6,7,7,8,8,7,7,21,7,21,7,\n7,31,7,background wallnormal wallr wallud:33,7,background playernormal:34,7,7,7,7,5,3,25,background dangerr dangeru electricfloor powered waspowered:35,12,12,12,13,7,20,7,9,\n6,7,7,8,8,8,8,21,7,21,7,7,background unpowered wiredl:36,30,4,7,7,7,7,7,7,background checkpointtrigger doordown powered waspowered:37,\n37,background powered waspowered wireul:38,7,7,7,25,7,7,20,7,9,6,7,7,8,8,8,8,21,23,21,7,\n7,7,7,24,7,7,background crate:39,7,7,7,background walll wallnormal wallu:40,background walld walll wallnormal:41,7,7,7,18,27,13,26,20,7,9,\n6,7,7,8,8,8,8,background dangerr dangeru electricfloor unpowered:42,16,background dangerd dangerr electricfloor unpowered:43,8,8,7,7,32,7,7,39,7,7,7,9,\n6,18,background dangerd dangerl electricfloor powered waspowered:44,26,26,20,7,7,background dangeru electricfloor powered waspowered:45,13,9,6,7,7,8,8,8,8,8,8,8,8,\n8,7,7,32,7,7,7,7,7,7,9,6,10,background dangerr dangerud electricfloor powered waspowered:46,7,7,46,7,7,46,10,9,\n6,7,7,8,8,8,40,background walll wallnormal:47,47,47,47,47,47,47,background walllud wallnormal:48,47,47,47,47,47,47,background wallnormal wallul:49,\nbackground walldl wallnormal:50,47,47,47,47,47,47,47,47,47,49,6,7,7,8,8,8,5,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,\n6,7,7,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,\n6,background button powered waspowered:51,10,51,14,8,8,8,8,8,8,6,7,7,11,12,44,7,11,12,44,26,\n26,11,12,44,26,26,11,12,44,7,9,6,10,51,10,20,8,8,8,8,8,8,\n6,7,7,20,10,20,7,20,10,20,26,26,20,10,20,26,26,20,10,20,7,5,\n3,18,12,12,28,8,8,15,16,16,16,6,7,7,46,8,20,7,35,12,28,26,\n26,35,12,28,26,26,35,12,28,26,26,background powered reactortrigger waspowered wireud:52,background powered waspowered wireulr:53,7,7,7,8,8,21,background unpowered wireulr:54,background unpowered wiredlr:55,background unpowered wireudl:56,\n6,7,7,8,8,20,7,25,25,25,7,7,25,25,25,7,7,25,25,background powered waspowered wiredlr:57,26,26,\n52,53,7,39,7,8,8,21,55,background reactor unpowered:58,30,6,7,7,14,8,20,7,11,12,44,26,\n26,11,12,44,26,26,11,12,44,26,26,52,38,7,7,7,8,8,21,54,55,background unpowered wireudr:59,\n6,7,7,20,10,20,7,20,10,20,26,26,20,10,20,26,26,20,10,20,7,40,\n41,7,7,39,7,8,8,42,16,16,16,6,7,7,35,12,28,7,35,12,28,26,\n26,35,12,28,26,26,35,12,28,7,9,6,7,7,7,7,8,8,8,8,8,8,\n6,7,7,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,\n6,7,7,7,7,8,8,8,8,8,8,50,47,41,8,8,8,40,47,47,47,47,\n47,47,47,47,47,47,47,47,47,47,49,50,47,47,47,47,47,47,47,47,47,47,\n", 2, "1627778403808.806"] ], [ `gallery: train braining`, - ["title Train Braining\nauthor Alan Hazelden\nhomepage http://www.draknek.org\n\ncolor_palette pastel\n\nnoaction\n\nagain_interval 0.08\nkey_repeat_interval 0.16\n\n(verbose_logging)\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nStart\ntransparent\n\nDelay\ntransparent\n\nMoveTrigger\ntransparent\n\nTutorial\ntransparent\n\nBackground\nlightgreen green\n01000\n00110\n10010\n10100\n01001\n\nPickupBG\nlightgrey lightgreen\n00000\n01110\n01110\n01110\n00000\n\nWater1\nblue white lightblue\n20010\n02002\n12020\n00220\n02002\n\nWater2\nblue white lightblue\n02000\n20210\n00202\n01022\n20200\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\n(Player\nyellow black\n.000.\n01010\n10001\n01110\n.000.)\n\nFromD\ngrey darkbrown\n.....\n.....\n1...1\n0...0\n0...0\n\nFromU\ngrey darkbrown\n0...0\n0...0\n1...1\n.....\n.....\n\nFromL\ngrey darkbrown\n001..\n.....\n.....\n.....\n001..\n\nFromR\ngrey darkbrown\n..100\n.....\n.....\n.....\n..100\n\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\nCrossing\ngrey grey\n01110\n1...1\n1...1\n1...1\n01110\n(01010\n1...1\n0...0\n1...1\n01010)\n\nDRTrack\ngrey darkbrown\n...00\n..0..\n.01..\n0..1.\n0...1\n\nDLTrack\ngrey darkbrown\n00...\n..0..\n..10.\n.1..0\n1...0\n\nULTrack\ngrey darkbrown\n1...0\n.1..0\n..10.\n..0..\n00...\n\nURTrack\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\n(Smoke1\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\nBluePassengerWaiting\nDarkBrown Blue DarkBrown DarkBlue\n..0..\n.111.\n21112\n23332\n.3.3.\n\nBluePassengerOnCart\nDarkBrown Blue DarkBrown DarkBlue\n.....\n..0..\n.111.\n.111.\n.....\n\nBlueTarget\nlightblue darkbrown\n00000\n01110\n01110\n01110\n00000\n\nRedPassengerWaiting\nDarkBrown Red DarkBrown DarkRed\n..0..\n.111.\n21112\n23332\n.3.3.\n\nRedPassengerOnCart\nDarkBrown Red DarkBrown DarkRed\n.....\n..0..\n.111.\n.111.\n.....\n\nRedTarget\nlightRed darkbrown\n00000\n01110\n01110\n01110\n00000\n\nZero 0\nWhite Black\n10011\n01101\n01101\n01101\n10011\n\nOne 1\nWhite Black\n10011\n11011\n11011\n11011\n10001\n\nTwo 2\nWhite Black\n10011\n11101\n11011\n10111\n10001\n\nThree 3\nWhite Black\n10011\n11101\n11011\n11101\n10011\n\nFour 4\nWhite Black\n10101\n10101\n10001\n11101\n11101\n\nFive 5\nWhite Black\n10001\n10111\n10011\n11101\n10011\n\nSix 6\nWhite Black\n11001\n10111\n10001\n10110\n11001\n\nSeven 7\nWhite Black\n10001\n11101\n11011\n11011\n11011\n\nEight 8\nWhite Black\n11001\n10110\n11001\n10110\n11001\n\nNine 9\nWhite Black\n11001\n10110\n11000\n11110\n11001\n\nBlack\nblack\n\n=======\nLEGEND\n=======\n\n. = Background\nM = Mountain\n% = Forest\n~ = Water1\n, = Beach\n? = Tutorial\n\n| = VTrack\n- = HTrack\n+ = Crossing\n\n# = Black\n\nConnectsL = DLTrack or ULTrack or HTrack\nConnectsR = DRTrack or URTrack or HTrack\nConnectsU = ULTrack or URTrack or VTrack\nConnectsD = DLTrack or DRTrack or VTrack\n\nU = FromD and Start\nD = FromU and Start\nL = FromR and Start\nR = FromL and Start\n\n* = BluePassengerWaiting and PickupBG\nO = BlueTarget\n\n@ = RedPassengerWaiting and PickupBG\n! = RedTarget\n\nPlayer = FromD or FromU or FromL or FromR\n\nWater = Water1 or Water2\n\nTrack = VTrack or HTrack or URTrack or ULTrack or DRTrack or DLTrack or Crossing\n\nTrain = UTrain or DTrain or LTrain or RTrain\n\nTarget = BlueTarget or RedTarget\n\nPassengerWaiting = BluePassengerWaiting or RedPassengerWaiting\nPassengerOnCart = BluePassengerOnCart or RedPassengerOnCart\n\nPassenger = PassengerWaiting or PassengerOnCart\n\nNumber = 0 or 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9\n\nSolid = Mountain or Forest or Water or Black or Number\n\n=======\nSOUNDS\n=======\n\nSFX0 91301709\nSFX1 53409305\nSFX2 38557307\nSFX3 99431502\n\nEndLevel 78709508\n\nTrain Move 88405308\n\nTrack Create 24611507\n\nUndo 77031907\nTrack Destroy 77031907\n\nPassengerOnCart Create 77365107\nPassengerWaiting Create 18891907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Beach, Number, Black\nTrack, Solid\nTrain, Cart, PickupBG\nStart, Delay, MoveTrigger, Target\nTutorial\nPassenger\n\n======\nRULES\n======\n\n(spawn train)\n\nleft [ Track | Start Player ] -> [ LTrain Track Start | Player ]\nright [ Track | Start Player ] -> [ RTrain Track Start | Player ]\nup [ Track | Start Player ] -> [ UTrain Track Start | Player ]\ndown [ Track | Start Player ] -> [ DTrain Track Start | Player ]\n\n[ Start | Track no Train no Cart ] -> [ Start | Track Cart Start ]\n\n[ Start ] -> []\n\n(lay track)\n\n[ > Player | Passenger ] -> cancel\n[ > Player | Target ] -> cancel\n[ > Player | Solid ] -> cancel\n[ > Player | Train ] -> cancel\n\nleft [ left FromL | ConnectsL no Train ] -> [ | FromL ]\nleft [ left FromL | ConnectsU no Train ] -> [ | FromU ]\nleft [ left FromL | ConnectsD no Train ] -> [ | FromD ]\n\nright [ right FromR | ConnectsR no Train ] -> [ | FromR ]\nright [ right FromR | ConnectsU no Train ] -> [ | FromU ]\nright [ right FromR | ConnectsD no Train ] -> [ | FromD ]\n\nup [ up FromU | ConnectsL no Train ] -> [ | FromL ]\nup [ up FromU | ConnectsR no Train ] -> [ | FromR ]\nup [ up FromU | ConnectsU no Train ] -> [ | FromU ]\n\ndown [ down FromD | ConnectsL no Train ] -> [ | FromL ]\ndown [ down FromD | ConnectsR no Train ] -> [ | FromR ]\ndown [ down FromD | ConnectsD no Train ] -> [ | FromD ]\n\n[ left FromU no Track ] -> [ left FromR ULTrack ]\n[ right FromU no Track ] -> [ right FromL URTrack ]\n[ down FromU no Track ] -> [ down FromU VTrack ]\n\n[ left FromD no Track ] -> [ left FromR DLTrack ]\n[ right FromD no Track ] -> [ right FromL DRTrack ]\n[ up FromD no Track ] -> [ up FromD VTrack ]\n\n[ up FromL no Track ] -> [ up FromD ULTrack ]\n[ down FromL no Track ] -> [ down FromU DLTrack ]\n[ right FromL no Track ] -> [ right FromL HTrack ]\n\n[ up FromR no Track ] -> [ up FromD URTrack ]\n[ down FromR no Track ] -> [ down FromU DRTrack ]\n[ left FromR no Track ] -> [ left FromR HTrack ]\n\nleft [ ConnectsL | < Player ] -> [ ConnectsL MoveTrigger | ]\nright [ ConnectsR | < Player ] -> [ ConnectsR MoveTrigger | ]\nup [ ConnectsU | < Player ] -> [ ConnectsU MoveTrigger | ]\ndown [ ConnectsD | < Player ] -> [ ConnectsD MoveTrigger | ]\n\nlate [ Player Track ] -> cancel\n\n(start train)\n\n[ MoveTrigger ] [ UTrain ] -> [ MoveTrigger ] [ up UTrain ]\n[ MoveTrigger ] [ DTrain ] -> [ MoveTrigger ] [ down DTrain ]\n[ MoveTrigger ] [ LTrain ] -> [ MoveTrigger ] [ left LTrain ]\n[ MoveTrigger ] [ RTrain ] -> [ MoveTrigger ] [ right RTrain ]\n\n[ Delay ] [ moving Train ] -> [ Delay ] [ Train ]\n\n[ Delay ] [ MoveTrigger ] -> [ Delay ] [ action MoveTrigger ]\n\n[ > Train | Solid ] -> cancel\n[ > Train | Passenger ] -> cancel\n\n(cart follows train)\n\nleft [ MoveTrigger Cart ConnectsL | Cart ] -> [ MoveTrigger < Cart ConnectsL | Cart ]\nright [ MoveTrigger Cart ConnectsR | Cart ] -> [ MoveTrigger < Cart ConnectsR | Cart ]\nup [ MoveTrigger Cart ConnectsU | Cart ] -> [ MoveTrigger < Cart ConnectsU | Cart ]\ndown [ MoveTrigger Cart ConnectsD | Cart ] -> [ MoveTrigger < Cart ConnectsD | Cart ]\n\n[ stationary Cart | moving Train ] -> [ > Cart | moving Train ] again\n[ stationary Cart | moving Cart ] -> [ > Cart | moving Cart ]\n\n[ PassengerOnCart moving Cart ] -> [ moving PassengerOnCart moving Cart ]\n\n(train turns when entering corners)\nup [ > UTrain | DRTrack ] -> [ > RTrain | DRTrack ]\nup [ > UTrain | DLTrack ] -> [ > LTrain | DLTrack ]\n\nright [ > RTrain | DLTrack ] -> [ > DTrain | DLTrack ]\nright [ > RTrain | ULTrack ] -> [ > UTrain | ULTrack ]\n\ndown [ > DTrain | URTrack ] -> [ > RTrain | URTrack ]\ndown [ > DTrain | ULTrack ] -> [ > LTrain | ULTrack ]\n\nleft [ > LTrain | DRTrack ] -> [ > DTrain | DRTrack ]\nleft [ > LTrain | URTrack ] -> [ > UTrain | URTrack ]\n\n(Passengers get on/off)\n\nlate [ Delay no PassengerWaiting no PassengerOnCart ] -> [] again\n\nlate [ BluePassengerWaiting Delay no Cart no Target | Cart no PassengerOnCart ] -> [ Delay | Cart BluePassengerOnCart ] again\nlate [ RedPassengerWaiting Delay no Cart no Target | Cart no PassengerOnCart ] -> [ Delay | Cart RedPassengerOnCart ] again\n\nlate [ PassengerWaiting Delay no Cart no Target | Cart PassengerOnCart ] -> [ PassengerWaiting | Cart PassengerOnCart ] again\nlate [ PassengerWaiting no Cart no Delay no Target | Cart no PassengerOnCart ] -> [ PassengerWaiting Delay | Cart ] again\n\nlate [ BluePassengerOnCart Delay Cart | no PassengerWaiting BlueTarget ] -> [ Delay Cart | BluePassengerWaiting BlueTarget ] again\nlate [ RedPassengerOnCart Delay Cart | no PassengerWaiting RedTarget ] -> [ Delay Cart | RedPassengerWaiting RedTarget ] again\n\nlate [ BluePassengerOnCart Cart no Delay | no PassengerWaiting BlueTarget ] -> [ BluePassengerOnCart Cart Delay | BlueTarget ] again\nlate [ RedPassengerOnCart Cart no Delay | no PassengerWaiting RedTarget ] -> [ RedPassengerOnCart Cart Delay | RedTarget ] again\n\n(Train leaves world)\n\n[ stationary MoveTrigger Train ] [ Tutorial ] [ Passenger no Target ] -> message You have to take all the passengers to the blue station\n\n[ stationary MoveTrigger Train ] -> [ MoveTrigger ] again\n[ MoveTrigger Cart ] -> [ MoveTrigger ] again\n[ MoveTrigger PassengerOnCart ] -> [ MoveTrigger ] again\n\n==============\nWINCONDITIONS\n==============\n\nNo train\nNo cart\nall target on passengerWaiting\n\n======= \nLEVELS\n=======\n\nmessage Being a train route planner is very satisfying\n\n.......|.....\n.............\n.............\n....%........\n..........%..\n---r.........\n.............\n......%......\n.............\n.............\n\nmessage Until you have to deal with passengers\n\n.............\n.............\n..o......*...\n..o......*...\n..o......*..-\n..o......*...\n......U......\n......|......\n.?....|......\n......|......\n1############\n\n.............\n..o......*...\n..o......*...\n%.o......*...\n..o......*..-\n..o......*...\n..o.....%*...\n.............\n---r.........\n.............\n2############\n\n.....|....\n..%.......\n..oo...*..\n..oo%..*..\n..........\n...%...*..\n.......*..\n..........\n---r......\n..........\n3#########\n\n............\n.....%......\n....@..!....\n....@..!.%..\n...........-\n.u..*..o.%..\n.|..*..o....\n.|....%.....\n.|..........\n4###########\n\n(............\n-...........\n........**..\n........**..\n.!..........\n.!..........\n.!.....o....\n.!.....o....\n.......o..u.\n...@@..o..|.\n...@@.....|.\n..........|.)\n\n............\n............\n-......o..*.\n.......o.%*.\n.......o..*.\n..@@@.......\n............\n...%........\n............\n..!!!...l---\n............\n5###########\n\n..............\n..............\n....!!!.**....\n..............\n.....@........\n---r.........-\n.....*........\n..............\n....ooo.@@....\n..............\n..............\n6#############\n\n...........%........\n....................\n....*.*.*..%..ooo...\n....................\n...........%........\n---r...............-\n...........%........\n....................\n....@.@.@..%..!!!...\n....................\n...........%........\n7###################\n\n............\n............\n....@...!...\n....@...!...\n....@%.%!...\n...........-\n....*%.%o...\n.u..*...o...\n.|..*...o...\n.|..........\n.|..........\n8###########\n\n..............\n.............-\n...@.......*..\n......!.o.....\n...*..!.o..@..\n.u....!.o.....\n.|.@.......*..\n.|............\n.|............\n9#############\n\n...........\n...........\n.o.....*...\n.o...%.*...\n.o.....*..-\n.o.%...*...\n.o.....*...\n...........\n...........\n---r.......\n...........\n10#########\n\n................\n................\n...@@@..........\n........ooo.....\n................\n---r...........-\n................\n........!!!.....\n...***..........\n................\n................\n11##############\n\nmessage Thanks for playing!\n\n",[3,3,3,0,0,0,0,0,0,1,0,0],"background:0,0,0,0,0,0,0,0,background htrack:1,0,\nbackground three:2,0,0,0,0,0,0,0,0,1,\n0,background black:3,0,background forest:4,background bluetarget:5,5,0,0,0,0,\n1,0,3,0,0,5,5,0,4,0,\n0,1,0,3,0,0,0,4,0,0,\n0,0,1,0,3,background movetrigger vtrack:6,background vtrack:7,background urtrack:8,0,0,\n0,0,0,1,0,3,0,0,background dltrack:9,7,\n7,7,7,7,background ultrack:10,0,3,0,0,background bluepassengerwaiting pickupbg:11,\n11,0,background pickupbg:12,12,0,0,0,3,0,0,\n0,0,0,0,0,0,0,0,3,0,\n0,0,0,0,0,0,0,0,0,3,\n",5,"1627778440298.4922"] + ["title Train Braining\nauthor Alan Hazelden\nhomepage http://www.draknek.org\n\ncolor_palette pastel\n\nnoaction\n\nagain_interval 0.08\nkey_repeat_interval 0.16\n\n(verbose_logging)\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nStart\ntransparent\n\nDelay\ntransparent\n\nMoveTrigger\ntransparent\n\nTutorial\ntransparent\n\nBackground\nlightgreen green\n01000\n00110\n10010\n10100\n01001\n\nPickupBG\nlightgrey lightgreen\n00000\n01110\n01110\n01110\n00000\n\nWater1\nblue white lightblue\n20010\n02002\n12020\n00220\n02002\n\nWater2\nblue white lightblue\n02000\n20210\n00202\n01022\n20200\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\n(Player\nyellow black\n.000.\n01010\n10001\n01110\n.000.)\n\nFromD\ngrey darkbrown\n.....\n.....\n1...1\n0...0\n0...0\n\nFromU\ngrey darkbrown\n0...0\n0...0\n1...1\n.....\n.....\n\nFromL\ngrey darkbrown\n001..\n.....\n.....\n.....\n001..\n\nFromR\ngrey darkbrown\n..100\n.....\n.....\n.....\n..100\n\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\nCrossing\ngrey grey\n01110\n1...1\n1...1\n1...1\n01110\n(01010\n1...1\n0...0\n1...1\n01010)\n\nDRTrack\ngrey darkbrown\n...00\n..0..\n.01..\n0..1.\n0...1\n\nDLTrack\ngrey darkbrown\n00...\n..0..\n..10.\n.1..0\n1...0\n\nULTrack\ngrey darkbrown\n1...0\n.1..0\n..10.\n..0..\n00...\n\nURTrack\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\n(Smoke1\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\nBluePassengerWaiting\nDarkBrown Blue DarkBrown DarkBlue\n..0..\n.111.\n21112\n23332\n.3.3.\n\nBluePassengerOnCart\nDarkBrown Blue DarkBrown DarkBlue\n.....\n..0..\n.111.\n.111.\n.....\n\nBlueTarget\nlightblue darkbrown\n00000\n01110\n01110\n01110\n00000\n\nRedPassengerWaiting\nDarkBrown Red DarkBrown DarkRed\n..0..\n.111.\n21112\n23332\n.3.3.\n\nRedPassengerOnCart\nDarkBrown Red DarkBrown DarkRed\n.....\n..0..\n.111.\n.111.\n.....\n\nRedTarget\nlightRed darkbrown\n00000\n01110\n01110\n01110\n00000\n\nZero 0\nWhite Black\n10011\n01101\n01101\n01101\n10011\n\nOne 1\nWhite Black\n10011\n11011\n11011\n11011\n10001\n\nTwo 2\nWhite Black\n10011\n11101\n11011\n10111\n10001\n\nThree 3\nWhite Black\n10011\n11101\n11011\n11101\n10011\n\nFour 4\nWhite Black\n10101\n10101\n10001\n11101\n11101\n\nFive 5\nWhite Black\n10001\n10111\n10011\n11101\n10011\n\nSix 6\nWhite Black\n11001\n10111\n10001\n10110\n11001\n\nSeven 7\nWhite Black\n10001\n11101\n11011\n11011\n11011\n\nEight 8\nWhite Black\n11001\n10110\n11001\n10110\n11001\n\nNine 9\nWhite Black\n11001\n10110\n11000\n11110\n11001\n\nBlack\nblack\n\n=======\nLEGEND\n=======\n\n. = Background\nM = Mountain\n% = Forest\n~ = Water1\n, = Beach\n? = Tutorial\n\n| = VTrack\n- = HTrack\n+ = Crossing\n\n# = Black\n\nConnectsL = DLTrack or ULTrack or HTrack\nConnectsR = DRTrack or URTrack or HTrack\nConnectsU = ULTrack or URTrack or VTrack\nConnectsD = DLTrack or DRTrack or VTrack\n\nU = FromD and Start\nD = FromU and Start\nL = FromR and Start\nR = FromL and Start\n\n* = BluePassengerWaiting and PickupBG\nO = BlueTarget\n\n@ = RedPassengerWaiting and PickupBG\n! = RedTarget\n\nPlayer = FromD or FromU or FromL or FromR\n\nWater = Water1 or Water2\n\nTrack = VTrack or HTrack or URTrack or ULTrack or DRTrack or DLTrack or Crossing\n\nTrain = UTrain or DTrain or LTrain or RTrain\n\nTarget = BlueTarget or RedTarget\n\nPassengerWaiting = BluePassengerWaiting or RedPassengerWaiting\nPassengerOnCart = BluePassengerOnCart or RedPassengerOnCart\n\nPassenger = PassengerWaiting or PassengerOnCart\n\nNumber = 0 or 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9\n\nSolid = Mountain or Forest or Water or Black or Number\n\n=======\nSOUNDS\n=======\n\nSFX0 91301709\nSFX1 53409305\nSFX2 38557307\nSFX3 99431502\n\nEndLevel 78709508\n\nTrain Move 88405308\n\nTrack Create 24611507\n\nUndo 77031907\nTrack Destroy 77031907\n\nPassengerOnCart Create 77365107\nPassengerWaiting Create 18891907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Beach, Number, Black\nTrack, Solid\nTrain, Cart, PickupBG\nStart, Delay, MoveTrigger, Target\nTutorial\nPassenger\n\n======\nRULES\n======\n\n(spawn train)\n\nleft [ Track | Start Player ] -> [ LTrain Track Start | Player ]\nright [ Track | Start Player ] -> [ RTrain Track Start | Player ]\nup [ Track | Start Player ] -> [ UTrain Track Start | Player ]\ndown [ Track | Start Player ] -> [ DTrain Track Start | Player ]\n\n[ Start | Track no Train no Cart ] -> [ Start | Track Cart Start ]\n\n[ Start ] -> []\n\n(lay track)\n\n[ > Player | Passenger ] -> cancel\n[ > Player | Target ] -> cancel\n[ > Player | Solid ] -> cancel\n[ > Player | Train ] -> cancel\n\nleft [ left FromL | ConnectsL no Train ] -> [ | FromL ]\nleft [ left FromL | ConnectsU no Train ] -> [ | FromU ]\nleft [ left FromL | ConnectsD no Train ] -> [ | FromD ]\n\nright [ right FromR | ConnectsR no Train ] -> [ | FromR ]\nright [ right FromR | ConnectsU no Train ] -> [ | FromU ]\nright [ right FromR | ConnectsD no Train ] -> [ | FromD ]\n\nup [ up FromU | ConnectsL no Train ] -> [ | FromL ]\nup [ up FromU | ConnectsR no Train ] -> [ | FromR ]\nup [ up FromU | ConnectsU no Train ] -> [ | FromU ]\n\ndown [ down FromD | ConnectsL no Train ] -> [ | FromL ]\ndown [ down FromD | ConnectsR no Train ] -> [ | FromR ]\ndown [ down FromD | ConnectsD no Train ] -> [ | FromD ]\n\n[ left FromU no Track ] -> [ left FromR ULTrack ]\n[ right FromU no Track ] -> [ right FromL URTrack ]\n[ down FromU no Track ] -> [ down FromU VTrack ]\n\n[ left FromD no Track ] -> [ left FromR DLTrack ]\n[ right FromD no Track ] -> [ right FromL DRTrack ]\n[ up FromD no Track ] -> [ up FromD VTrack ]\n\n[ up FromL no Track ] -> [ up FromD ULTrack ]\n[ down FromL no Track ] -> [ down FromU DLTrack ]\n[ right FromL no Track ] -> [ right FromL HTrack ]\n\n[ up FromR no Track ] -> [ up FromD URTrack ]\n[ down FromR no Track ] -> [ down FromU DRTrack ]\n[ left FromR no Track ] -> [ left FromR HTrack ]\n\nleft [ ConnectsL | < Player ] -> [ ConnectsL MoveTrigger | ]\nright [ ConnectsR | < Player ] -> [ ConnectsR MoveTrigger | ]\nup [ ConnectsU | < Player ] -> [ ConnectsU MoveTrigger | ]\ndown [ ConnectsD | < Player ] -> [ ConnectsD MoveTrigger | ]\n\nlate [ Player Track ] -> cancel\n\n(start train)\n\n[ MoveTrigger ] [ UTrain ] -> [ MoveTrigger ] [ up UTrain ]\n[ MoveTrigger ] [ DTrain ] -> [ MoveTrigger ] [ down DTrain ]\n[ MoveTrigger ] [ LTrain ] -> [ MoveTrigger ] [ left LTrain ]\n[ MoveTrigger ] [ RTrain ] -> [ MoveTrigger ] [ right RTrain ]\n\n[ Delay ] [ moving Train ] -> [ Delay ] [ Train ]\n\n[ Delay ] [ MoveTrigger ] -> [ Delay ] [ action MoveTrigger ]\n\n[ > Train | Solid ] -> cancel\n[ > Train | Passenger ] -> cancel\n\n(cart follows train)\n\nleft [ MoveTrigger Cart ConnectsL | Cart ] -> [ MoveTrigger < Cart ConnectsL | Cart ]\nright [ MoveTrigger Cart ConnectsR | Cart ] -> [ MoveTrigger < Cart ConnectsR | Cart ]\nup [ MoveTrigger Cart ConnectsU | Cart ] -> [ MoveTrigger < Cart ConnectsU | Cart ]\ndown [ MoveTrigger Cart ConnectsD | Cart ] -> [ MoveTrigger < Cart ConnectsD | Cart ]\n\n[ stationary Cart | moving Train ] -> [ > Cart | moving Train ] again\n[ stationary Cart | moving Cart ] -> [ > Cart | moving Cart ]\n\n[ PassengerOnCart moving Cart ] -> [ moving PassengerOnCart moving Cart ]\n\n(train turns when entering corners)\nup [ > UTrain | DRTrack ] -> [ > RTrain | DRTrack ]\nup [ > UTrain | DLTrack ] -> [ > LTrain | DLTrack ]\n\nright [ > RTrain | DLTrack ] -> [ > DTrain | DLTrack ]\nright [ > RTrain | ULTrack ] -> [ > UTrain | ULTrack ]\n\ndown [ > DTrain | URTrack ] -> [ > RTrain | URTrack ]\ndown [ > DTrain | ULTrack ] -> [ > LTrain | ULTrack ]\n\nleft [ > LTrain | DRTrack ] -> [ > DTrain | DRTrack ]\nleft [ > LTrain | URTrack ] -> [ > UTrain | URTrack ]\n\n(Passengers get on/off)\n\nlate [ Delay no PassengerWaiting no PassengerOnCart ] -> [] again\n\nlate [ BluePassengerWaiting Delay no Cart no Target | Cart no PassengerOnCart ] -> [ Delay | Cart BluePassengerOnCart ] again\nlate [ RedPassengerWaiting Delay no Cart no Target | Cart no PassengerOnCart ] -> [ Delay | Cart RedPassengerOnCart ] again\n\nlate [ PassengerWaiting Delay no Cart no Target | Cart PassengerOnCart ] -> [ PassengerWaiting | Cart PassengerOnCart ] again\nlate [ PassengerWaiting no Cart no Delay no Target | Cart no PassengerOnCart ] -> [ PassengerWaiting Delay | Cart ] again\n\nlate [ BluePassengerOnCart Delay Cart | no PassengerWaiting BlueTarget ] -> [ Delay Cart | BluePassengerWaiting BlueTarget ] again\nlate [ RedPassengerOnCart Delay Cart | no PassengerWaiting RedTarget ] -> [ Delay Cart | RedPassengerWaiting RedTarget ] again\n\nlate [ BluePassengerOnCart Cart no Delay | no PassengerWaiting BlueTarget ] -> [ BluePassengerOnCart Cart Delay | BlueTarget ] again\nlate [ RedPassengerOnCart Cart no Delay | no PassengerWaiting RedTarget ] -> [ RedPassengerOnCart Cart Delay | RedTarget ] again\n\n(Train leaves world)\n\n[ stationary MoveTrigger Train ] [ Tutorial ] [ Passenger no Target ] -> message You have to take all the passengers to the blue station\n\n[ stationary MoveTrigger Train ] -> [ MoveTrigger ] again\n[ MoveTrigger Cart ] -> [ MoveTrigger ] again\n[ MoveTrigger PassengerOnCart ] -> [ MoveTrigger ] again\n\n==============\nWINCONDITIONS\n==============\n\nNo train\nNo cart\nall target on passengerWaiting\n\n======= \nLEVELS\n=======\n\nmessage Being a train route planner is very satisfying\n\n.......|.....\n.............\n.............\n....%........\n..........%..\n---r.........\n.............\n......%......\n.............\n.............\n\nmessage Until you have to deal with passengers\n\n.............\n.............\n..o......*...\n..o......*...\n..o......*..-\n..o......*...\n......U......\n......|......\n.?....|......\n......|......\n1############\n\n.............\n..o......*...\n..o......*...\n%.o......*...\n..o......*..-\n..o......*...\n..o.....%*...\n.............\n---r.........\n.............\n2############\n\n.....|....\n..%.......\n..oo...*..\n..oo%..*..\n..........\n...%...*..\n.......*..\n..........\n---r......\n..........\n3#########\n\n............\n.....%......\n....@..!....\n....@..!.%..\n...........-\n.u..*..o.%..\n.|..*..o....\n.|....%.....\n.|..........\n4###########\n\n(............\n-...........\n........**..\n........**..\n.!..........\n.!..........\n.!.....o....\n.!.....o....\n.......o..u.\n...@@..o..|.\n...@@.....|.\n..........|.)\n\n............\n............\n-......o..*.\n.......o.%*.\n.......o..*.\n..@@@.......\n............\n...%........\n............\n..!!!...l---\n............\n5###########\n\n..............\n..............\n....!!!.**....\n..............\n.....@........\n---r.........-\n.....*........\n..............\n....ooo.@@....\n..............\n..............\n6#############\n\n...........%........\n....................\n....*.*.*..%..ooo...\n....................\n...........%........\n---r...............-\n...........%........\n....................\n....@.@.@..%..!!!...\n....................\n...........%........\n7###################\n\n............\n............\n....@...!...\n....@...!...\n....@%.%!...\n...........-\n....*%.%o...\n.u..*...o...\n.|..*...o...\n.|..........\n.|..........\n8###########\n\n..............\n.............-\n...@.......*..\n......!.o.....\n...*..!.o..@..\n.u....!.o.....\n.|.@.......*..\n.|............\n.|............\n9#############\n\n...........\n...........\n.o.....*...\n.o...%.*...\n.o.....*..-\n.o.%...*...\n.o.....*...\n...........\n...........\n---r.......\n...........\n10#########\n\n................\n................\n...@@@..........\n........ooo.....\n................\n---r...........-\n................\n........!!!.....\n...***..........\n................\n................\n11##############\n\nmessage Thanks for playing!\n\n", [3, 3, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0], "background:0,0,0,0,0,0,0,0,background htrack:1,0,\nbackground three:2,0,0,0,0,0,0,0,0,1,\n0,background black:3,0,background forest:4,background bluetarget:5,5,0,0,0,0,\n1,0,3,0,0,5,5,0,4,0,\n0,1,0,3,0,0,0,4,0,0,\n0,0,1,0,3,background movetrigger vtrack:6,background vtrack:7,background urtrack:8,0,0,\n0,0,0,1,0,3,0,0,background dltrack:9,7,\n7,7,7,7,background ultrack:10,0,3,0,0,background bluepassengerwaiting pickupbg:11,\n11,0,background pickupbg:12,12,0,0,0,3,0,0,\n0,0,0,0,0,0,0,0,3,0,\n0,0,0,0,0,0,0,0,0,3,\n", 5, "1627778440298.4922"] ], [ `gallery: enqueue`, - ["title Enqueue\nauthor Allen Webster\nhomepage www.pushthegame.com\n\nnorepeat_action\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground .\nBLACK\n\nWall #\nDARKGRAY\n00.00\n0.0.0\n.000.\n0.0.0\n00.00\n\nPlayer S\nTRANSPARENT\n\nSelector\nWHITE\n00.00\n0...0\n.....\n0...0\n00.00\n\nRedBlock R\n#990000\n\nBlueBlock B\n#000099\n\nGreenBlock G\n#009900\n\nYellowBlock Y\n#888800\n\nPurpleBlock P\n#660066\n\nOrangeBlock O\n#994400\n\nPinkBlock I\nPINK\n\nBrownBlock W\n#222200\n\nRedPad\n#990000\n.....\n..0..\n.000.\n..0..\n.....\n\nBluePad \n#000099\n.....\n..0..\n.000.\n..0..\n.....\n\nGreenPad\n#009900\n.....\n..0..\n.000.\n..0..\n.....\n\nYellowPad\n#888800\n.....\n..0..\n.000.\n..0..\n.....\n\nPurplePad\n#660066\n.....\n..0..\n.000.\n..0..\n.....\n\nOrangePad\n#994400\n.....\n..0..\n.000.\n..0..\n.....\n\nPinkPad\nPINK\n.....\n..0..\n.000.\n..0..\n.....\n\nBrownPad\n#222200\n.....\n..0..\n.000.\n..0..\n.....\n\nQueueLocation\nTRANSPARENT\n\nQueueHead\nTRANSPARENT\n\nEnqueueHead\nTRANSPARENT\n\nTaker\nTRANSPARENT\n\nFiller\nTRANSPARENT\n\nWaitingFiller\nTRANSPARENT\n\nFillerTakerLocation\nTRANSPARENT\n\nModeGen\nTRANSPARENT\n\nWaitingGen\nTRANSPARENT\n\nSendMode\nTRANSPARENT\n\nSendModePerm\nTRANSPARENT\n\nReceiveMode\nTRANSPARENT\n\nReceiveModePerm\nTRANSPARENT\n\n=======\nLEGEND\n=======\n\n@ = Wall and Player and QueueLocation\nH = Wall and QueueLocation\nx = SendMode and Wall\nz = ReceiveMode and ModeGen and Wall\n? = WaitingGen and Wall\n+ = SendModePerm\n- = ReceiveModePerm\n\nBlock = RedBlock or BlueBlock or GreenBlock or YellowBlock or OrangeBlock or PurpleBlock or PinkBlock or BrownBlock\nPad = RedPad or BluePad or GreenPad or YellowPad or OrangePad or PurplePad or PinkPad or BrownPad\nHead = QueueHead or EnqueueHead\n\nF = Filler and Wall\n! = Taker and Wall\na = Filler and FillerTakerLocation and Wall\n\n[ = RedPad\n{ = BluePad\n] = GreenPad\n} = YellowPad\n: = PurplePad\n; = OrangePad\n' = PinkPad\n\" = BrownPad\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nQueueHead\nEnqueueHead\nQueueLocation\nWall\nRedBlock, BlueBlock, GreenBlock, YellowBlock, PurpleBlock, OrangeBlock, PinkBlock, BrownBlock\nRedPad, BluePad, GreenPad, YellowPad, PurplePad, OrangePad, PinkPad, BrownPad\nSelector\nFiller\nWaitingFiller\nTaker\nFillerTakerLocation\nModeGen\nWaitingGen\nSendMode\nReceiveMode\nSendModePerm\nReceiveModePerm\nPlayer\n\n====== \nRULES \n====== \n\nvertical [ > Player ] -> [ Player ]\n[ > Player | ... | Head ] -> [ | ... | Player Head ]\n[ > Player | ... | No Head ] -> [ Player | ... | ]\n\n[SendModePerm][ action Player ][ Selector Block ][ Filler ] -> [SendModePerm][ action Player ][ Wall Selector ][ RIGHT Filler Block ]\n\n[ReceiveModePerm][ action Player ][ Selector ][ Taker Block ] -> [ReceiveModePerm][ action Player ][ Selector Block ][ RIGHT Taker Wall ]\n\n(kill pads)\n[RedBlock RedPad] -> [RedBlock]\n[BlueBlock BluePad] -> [BlueBlock]\n[GreenBlock GreenPad] -> [GreenBlock]\n[YellowBlock YellowPad] -> [YellowBlock]\n[PurpleBlock PurplePad] -> [PurpleBlock]\n[OrangeBlock OrangePad] -> [OrangeBlock]\n[PinkBlock PinkPad] -> [PinkBlock]\n[BrownBlock BrownPad] -> [BrownBlock]\n\n(queue locations generating appropriate management types)\nhorizontal [QueueLocation | ... | SendMode] -> [QueueLocation QueueHead | ... | SendMode]\n[SendMode][Player No Head][QueueLocation] -> [SendMode][][QueueLocation Player]\n[SendMode] [ReceiveModePerm] -> [] [SendModePerm]\n[SendMode] -> []\n\nhorizontal [QueueLocation | ... | ReceiveMode] -> [QueueLocation EnqueueHead | ... | ReceiveMode]\n[ReceiveMode][Player No Head][QueueLocation] -> [ReceiveMode][][QueueLocation Player]\n[ReceiveMode] [SendModePerm] -> [] [ReceiveModePerm]\n[ReceiveMode] -> []\n\n(moving the player, queuehead and selector upon an action)\n[ action Player Head ] -> [ RIGHT Player RIGHT Head ]\nlate down [ QueueHead | No Block ] -> [ | ]\nlate down [ EnqueueHead | Wall ] -> [ | Wall ]\nlate horizontal [ Player No Head | ... | Head ] -> [ | ... | Player Head ]\n\n(selector always goes with player)\nlate down [ Player | No Selector ] -> [ Player | Selector ]\nlate down [ No Player | Selector ] -> [ | ]\nlate [Selector Wall] -> [Wall]\n\n(fix filler/taker advance mode hack)\nlate up [ Filler Wall | No Wall ] -> [ Wall | Filler ]\nlate down [ Filler | ... | Filler ] -> [ Filler | ... | WaitingFiller ]\nlate up [ Taker Wall | No Taker ] -> [ Wall | Taker ]\n\n(killing the filler/taker when it is finished)\nlate [ Taker No Block ][ModeGen] -> [][SendMode] again\nlate up [ Filler Wall | Wall ][WaitingGen] up [FillerTakerLocation | Block ][WaitingFiller] -> [ Wall | Wall ][ModeGen ReceiveMode][ | Block Taker][Filler] again\n\n==============\nWINCONDITIONS\n==============\n\nNo Pad\n\n======= \nLEVELS\n=======\n\n(level 1)\n#@###H#x\n#RR##BB#\n########\n+.......\n########\n##{[{[##\n##F#####\n\n(level 2)\n#@###H#x\n#RB##GR#\n########\n+.......\n########\n##[]{[##\n##F#####\n\nMessage The problem grows\n\n(level 3)\n########\n##RBRB##\n##!#####\n-.......\n#@###H#z\n#..##..#\n########\n........\n########\n##{[{[##\n##F#####\n\n(level 4)\n########\n##RGBY##\n##!#####\n-.......\n#@###H#z\n#..##..#\n########\n........\n########\n##][}{##\n##F#####\n\n(level 5)\n##########\n##RGRROR##\n##!#######\n-.........\n#@####H##z\n#...##...#\n##########\n..........\n##########\n##[;[[][##\n##F#######\n\n(level 6)\n##########\n##RRGORR##\n##!#######\n-.........\n#@####H##z\n#...##...#\n##########\n..........\n##########\n##[;[[][##\n##F#######\n\nMessage Mind the subsequences\n\n(level 7)\n##########\n##RGBYOP##\n##!#######\n-.........\n#@####H##z\n#...##...#\n##########\n..........\n##########\n##[;]{}:##\n##F#######\n\n(level 8)\n##########\n##RGBYOP##\n##!#######\n-.........\n#@####H##z\n#...##...#\n##########\n..........\n##########\n##[];:{}##\n##F#######\n\nMessage One shall not be enough\n\n(level 9)\n############\n##RGGBBYYR##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##]][[}}{{##\n##F#########\n \n(level 10)\n############\n##RRGGBBYY##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##[}[}]{]{##\n##F#########\n\n(level 11)\n############\n##GRRRRRRB##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##{[[[[[[]##\n##F#########\n\n(level 13)\n############\n##RGBYOPIW##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##\";:']{}[##\n##F#########\n\n(level 14)\n############\n##RGBYOPIW##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##\"]{};:'[##\n##F#########\n\n(level 15)\n############\n##RGBYOPIW##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##\";:]'{}[##\n##F#########\n\nMessage Thanks for playing!\n",[3,0,4,1,1,4,3,4,1,4,2,4,3,4,4,4],"background wall:0,0,0,background sendmodeperm:1,0,0,0,background:2,\n0,0,0,0,0,0,2,background queuelocation wall:3,\n0,0,2,0,0,0,0,0,\n0,2,0,0,0,2,0,background greenblock:4,\n0,0,0,0,2,background player wall:5,0,0,\n2,0,background redblock:6,0,0,0,0,2,\n0,0,0,2,0,background blueblock yellowpad:7,0,0,\n0,0,2,3,0,0,2,0,\nbackground bluepad yellowblock:8,0,0,0,0,2,0,0,\n0,2,0,background filler wall:9,0,0,0,0,\n2,0,0,0,2,0,0,0,\n",4,"1627778464558.232"] + ["title Enqueue\nauthor Allen Webster\nhomepage www.pushthegame.com\n\nnorepeat_action\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground .\nBLACK\n\nWall #\nDARKGRAY\n00.00\n0.0.0\n.000.\n0.0.0\n00.00\n\nPlayer S\nTRANSPARENT\n\nSelector\nWHITE\n00.00\n0...0\n.....\n0...0\n00.00\n\nRedBlock R\n#990000\n\nBlueBlock B\n#000099\n\nGreenBlock G\n#009900\n\nYellowBlock Y\n#888800\n\nPurpleBlock P\n#660066\n\nOrangeBlock O\n#994400\n\nPinkBlock I\nPINK\n\nBrownBlock W\n#222200\n\nRedPad\n#990000\n.....\n..0..\n.000.\n..0..\n.....\n\nBluePad \n#000099\n.....\n..0..\n.000.\n..0..\n.....\n\nGreenPad\n#009900\n.....\n..0..\n.000.\n..0..\n.....\n\nYellowPad\n#888800\n.....\n..0..\n.000.\n..0..\n.....\n\nPurplePad\n#660066\n.....\n..0..\n.000.\n..0..\n.....\n\nOrangePad\n#994400\n.....\n..0..\n.000.\n..0..\n.....\n\nPinkPad\nPINK\n.....\n..0..\n.000.\n..0..\n.....\n\nBrownPad\n#222200\n.....\n..0..\n.000.\n..0..\n.....\n\nQueueLocation\nTRANSPARENT\n\nQueueHead\nTRANSPARENT\n\nEnqueueHead\nTRANSPARENT\n\nTaker\nTRANSPARENT\n\nFiller\nTRANSPARENT\n\nWaitingFiller\nTRANSPARENT\n\nFillerTakerLocation\nTRANSPARENT\n\nModeGen\nTRANSPARENT\n\nWaitingGen\nTRANSPARENT\n\nSendMode\nTRANSPARENT\n\nSendModePerm\nTRANSPARENT\n\nReceiveMode\nTRANSPARENT\n\nReceiveModePerm\nTRANSPARENT\n\n=======\nLEGEND\n=======\n\n@ = Wall and Player and QueueLocation\nH = Wall and QueueLocation\nx = SendMode and Wall\nz = ReceiveMode and ModeGen and Wall\n? = WaitingGen and Wall\n+ = SendModePerm\n- = ReceiveModePerm\n\nBlock = RedBlock or BlueBlock or GreenBlock or YellowBlock or OrangeBlock or PurpleBlock or PinkBlock or BrownBlock\nPad = RedPad or BluePad or GreenPad or YellowPad or OrangePad or PurplePad or PinkPad or BrownPad\nHead = QueueHead or EnqueueHead\n\nF = Filler and Wall\n! = Taker and Wall\na = Filler and FillerTakerLocation and Wall\n\n[ = RedPad\n{ = BluePad\n] = GreenPad\n} = YellowPad\n: = PurplePad\n; = OrangePad\n' = PinkPad\n\" = BrownPad\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nQueueHead\nEnqueueHead\nQueueLocation\nWall\nRedBlock, BlueBlock, GreenBlock, YellowBlock, PurpleBlock, OrangeBlock, PinkBlock, BrownBlock\nRedPad, BluePad, GreenPad, YellowPad, PurplePad, OrangePad, PinkPad, BrownPad\nSelector\nFiller\nWaitingFiller\nTaker\nFillerTakerLocation\nModeGen\nWaitingGen\nSendMode\nReceiveMode\nSendModePerm\nReceiveModePerm\nPlayer\n\n====== \nRULES \n====== \n\nvertical [ > Player ] -> [ Player ]\n[ > Player | ... | Head ] -> [ | ... | Player Head ]\n[ > Player | ... | No Head ] -> [ Player | ... | ]\n\n[SendModePerm][ action Player ][ Selector Block ][ Filler ] -> [SendModePerm][ action Player ][ Wall Selector ][ RIGHT Filler Block ]\n\n[ReceiveModePerm][ action Player ][ Selector ][ Taker Block ] -> [ReceiveModePerm][ action Player ][ Selector Block ][ RIGHT Taker Wall ]\n\n(kill pads)\n[RedBlock RedPad] -> [RedBlock]\n[BlueBlock BluePad] -> [BlueBlock]\n[GreenBlock GreenPad] -> [GreenBlock]\n[YellowBlock YellowPad] -> [YellowBlock]\n[PurpleBlock PurplePad] -> [PurpleBlock]\n[OrangeBlock OrangePad] -> [OrangeBlock]\n[PinkBlock PinkPad] -> [PinkBlock]\n[BrownBlock BrownPad] -> [BrownBlock]\n\n(queue locations generating appropriate management types)\nhorizontal [QueueLocation | ... | SendMode] -> [QueueLocation QueueHead | ... | SendMode]\n[SendMode][Player No Head][QueueLocation] -> [SendMode][][QueueLocation Player]\n[SendMode] [ReceiveModePerm] -> [] [SendModePerm]\n[SendMode] -> []\n\nhorizontal [QueueLocation | ... | ReceiveMode] -> [QueueLocation EnqueueHead | ... | ReceiveMode]\n[ReceiveMode][Player No Head][QueueLocation] -> [ReceiveMode][][QueueLocation Player]\n[ReceiveMode] [SendModePerm] -> [] [ReceiveModePerm]\n[ReceiveMode] -> []\n\n(moving the player, queuehead and selector upon an action)\n[ action Player Head ] -> [ RIGHT Player RIGHT Head ]\nlate down [ QueueHead | No Block ] -> [ | ]\nlate down [ EnqueueHead | Wall ] -> [ | Wall ]\nlate horizontal [ Player No Head | ... | Head ] -> [ | ... | Player Head ]\n\n(selector always goes with player)\nlate down [ Player | No Selector ] -> [ Player | Selector ]\nlate down [ No Player | Selector ] -> [ | ]\nlate [Selector Wall] -> [Wall]\n\n(fix filler/taker advance mode hack)\nlate up [ Filler Wall | No Wall ] -> [ Wall | Filler ]\nlate down [ Filler | ... | Filler ] -> [ Filler | ... | WaitingFiller ]\nlate up [ Taker Wall | No Taker ] -> [ Wall | Taker ]\n\n(killing the filler/taker when it is finished)\nlate [ Taker No Block ][ModeGen] -> [][SendMode] again\nlate up [ Filler Wall | Wall ][WaitingGen] up [FillerTakerLocation | Block ][WaitingFiller] -> [ Wall | Wall ][ModeGen ReceiveMode][ | Block Taker][Filler] again\n\n==============\nWINCONDITIONS\n==============\n\nNo Pad\n\n======= \nLEVELS\n=======\n\n(level 1)\n#@###H#x\n#RR##BB#\n########\n+.......\n########\n##{[{[##\n##F#####\n\n(level 2)\n#@###H#x\n#RB##GR#\n########\n+.......\n########\n##[]{[##\n##F#####\n\nMessage The problem grows\n\n(level 3)\n########\n##RBRB##\n##!#####\n-.......\n#@###H#z\n#..##..#\n########\n........\n########\n##{[{[##\n##F#####\n\n(level 4)\n########\n##RGBY##\n##!#####\n-.......\n#@###H#z\n#..##..#\n########\n........\n########\n##][}{##\n##F#####\n\n(level 5)\n##########\n##RGRROR##\n##!#######\n-.........\n#@####H##z\n#...##...#\n##########\n..........\n##########\n##[;[[][##\n##F#######\n\n(level 6)\n##########\n##RRGORR##\n##!#######\n-.........\n#@####H##z\n#...##...#\n##########\n..........\n##########\n##[;[[][##\n##F#######\n\nMessage Mind the subsequences\n\n(level 7)\n##########\n##RGBYOP##\n##!#######\n-.........\n#@####H##z\n#...##...#\n##########\n..........\n##########\n##[;]{}:##\n##F#######\n\n(level 8)\n##########\n##RGBYOP##\n##!#######\n-.........\n#@####H##z\n#...##...#\n##########\n..........\n##########\n##[];:{}##\n##F#######\n\nMessage One shall not be enough\n\n(level 9)\n############\n##RGGBBYYR##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##]][[}}{{##\n##F#########\n \n(level 10)\n############\n##RRGGBBYY##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##[}[}]{]{##\n##F#########\n\n(level 11)\n############\n##GRRRRRRB##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##{[[[[[[]##\n##F#########\n\n(level 13)\n############\n##RGBYOPIW##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##\";:']{}[##\n##F#########\n\n(level 14)\n############\n##RGBYOPIW##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##\"]{};:'[##\n##F#########\n\n(level 15)\n############\n##RGBYOPIW##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##\";:]'{}[##\n##F#########\n\nMessage Thanks for playing!\n", [3, 0, 4, 1, 1, 4, 3, 4, 1, 4, 2, 4, 3, 4, 4, 4], "background wall:0,0,0,background sendmodeperm:1,0,0,0,background:2,\n0,0,0,0,0,0,2,background queuelocation wall:3,\n0,0,2,0,0,0,0,0,\n0,2,0,0,0,2,0,background greenblock:4,\n0,0,0,0,2,background player wall:5,0,0,\n2,0,background redblock:6,0,0,0,0,2,\n0,0,0,2,0,background blueblock yellowpad:7,0,0,\n0,0,2,3,0,0,2,0,\nbackground bluepad yellowblock:8,0,0,0,0,2,0,0,\n0,2,0,background filler wall:9,0,0,0,0,\n2,0,0,0,2,0,0,0,\n", 4, "1627778464558.232"] ], [ `gallery: tidy the cafe`, - ["title Tidy the Cafe!\nauthor Sally Bridgwater\nhomepage http://sallyanne.itch.io\n\nrealtime_interval 0.1\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground \nGrey DarkGrey\n00000\n01110\n01010\n01110\n00000\n\nTable\nYellow Red White\n(12121\n21212\n12121\n21212\n0...0)\n.....\n.121.\n.212.\n.121.\n.0.0.\n\nChairRightLoose\nYellow Red\n.....\n...0.\n.110.\n.110.\n.0.0.\n\nChairRightTuckedIn\nYellow Red\n.....\n..0..\n110..\n110..\n0.0..\n\nChairLeftLoose\nYellow Red\n.....\n.0...\n.011.\n.011.\n.0.0.\n\nChairLeftTuckedIn\nYellow Red\n.....\n..0..\n..011\n..011\n..0.0\n\nChairUpLoose\nYellow Red\n.....\n.000.\n.111.\n.111.\n.0.0.\n\nChairUpTuckedIn\nYellow Red\n.....\n.....\n.000.\n.111.\n.111.\n\nChairUpTuckedInOverlay\nYellow Red\n.0.0.\n.....\n.....\n.....\n.....\n\nChairDownLoose\nYellow Red\n.....\n.000.\n.000.\n.000.\n.0.0.\n\nChairDownTuckedIn\nYellow Red\n.000.\n.000.\n.000.\n.0.0.\n.....\n\nPlayer \nBlack White Brown Red\n..2..\n21312\n.111.\n.000.\n.0.0.\n\nTidy\nPink\n.....\n.....\n.....\n.....\n.....\n\n\nPlant\nGreen Orange\n.000.\n.000.\n11111\n.111.\n.111.\n\n\n\nCandleStick1\nBlack yellow white orange\n3.1.1\n2.2.2\n00000\n..0..\n.000.\n\nCandleStick2\nBlack yellow white orange\n1.3.1\n2.2.2\n00000\n..0..\n.000.\n\nCandleStick3\nBlack yellow white orange\n1.1.3\n2.2.2\n00000\n..0..\n.000.\n\nCandleStick4\nBlack yellow white orange\n1.1.1\n2.2.2\n00000\n..0..\n.000.\n\n\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Table\n@ = Player\nP = Plant\nC = CandleStick1\nL = ChairLeftLoose\nR = ChairRightLoose\nU = ChairUpLoose\nD = ChairDownLoose\n\nChairUp = ChairUpLoose or ChairUpTuckedIn\nChairDown = ChairDownLoose or ChairDownTuckedIn\nChairLeft = ChairLeftLoose or ChairLeftTuckedIn\nChairRight = ChairRightLoose or ChairRightTuckedIn\n\nChair = ChairUp or ChairDown or ChairLeft or ChairRight\nPushable = Chair or Table\nCandle = CandleStick1 or CandleStick2 or CandleStick3 or CandleStick4\n\nObstacle = Table or Candle or Plant\n\nTidyLeft = Obstacle or ChairLeft\nTidyRight = Obstacle or ChairRight\nTidyUp = Obstacle or ChairUp\nTidyDown = Obstacle or ChairDown\n\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTidy\nTable,Chair,Player,Plant,Candle\nChairUpTuckedInOverlay\n\n\n\n======\nRULES \n====== \n\n[ > Player | Pushable ] -> [ > Player | > Pushable ] again\n\n[ Candle ] -> [ action Candle ]\n[ action Candle ] -> [ random Candle ]\n\n[Tidy] -> [ ]\n[Table] ->[ Tidy Table]\n\nLeft [ Tidy Table | No TidyLeft] -> [ Table | ]\nRight[ Tidy Table | No TidyRight] -> [ Table | ]\nUp [ Tidy Table | No TidyUp] -> [Table | ]\nDown [ Tidy Table | No TidyDown] -> [Table | ]\n\nLeft [ Tidy Table | ChairLeft] -> [ Tidy Table | ChairLeft Tidy]\nRight[ Tidy Table | ChairRight] -> [ Tidy Table | ChairRight Tidy]\nUp [ Tidy Table | ChairUp] -> [ Tidy Table | ChairUp Tidy]\nDown [ Tidy Table | ChairDown] -> [ Tidy Table | ChairDown Tidy]\n\n[ ChairUp ] -> [ ChairUpLoose ]\n[ ChairDown ] -> [ ChairDownLoose ]\n[ ChairLeft ] -> [ ChairLeftLoose ]\n[ ChairRight ] -> [ ChairRightLoose ]\n\n[ Tidy ChairUp ] -> [ Tidy ChairUpTuckedIn ]\n[ Tidy ChairDown ] -> [ Tidy ChairDownTuckedIn ]\n[ Tidy ChairLeft ] -> [ Tidy ChairLeftTuckedIn ]\n[ Tidy ChairRight ] -> [ Tidy ChairRightTuckedIn ]\n\nLate [ ChairUpTuckedInOverlay ] -> [ ]\nLate Down [ ChairUpTuckedIn | ] -> [ ChairUpTuckedIn | ChairUpTuckedInOverlay ]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Table on Tidy \nAll Chair on Tidy\nsome Table\nsome Chair\n\n======= \nLEVELS\n=======\n\n(...u.\n...#r\n.l.d.\n....@)\n\n(....U.\n.#.D.R\n.L.@..\n......)\n\nc.up\n@l.r\n.d#.\n....\n\n(....\n@.ur\n..#.\npl#.\nl.dr\n....)\n\n#...#\n.drd.\n.r@l.\n.ulu.\n#...#\n\n...c...\n.u.c.u.\nl#r.l.r\n.#.@.d.\n.d.c...\n...c...\n\n.......\n..u#u..\n.l#@#r.\n..d#d..\n.......\n\n(...@...\n..#u#..\n.l.c.r.\n..dud..\n.......)\n\nc..c..c\n...u...\nc@r#l.c\n...d...\nc..c..c\n\n..u..\n.l#r.\n..d..\n.l#r.\n..@..\n.....\n\n\n\n(........\n....D.R.\n.#.P....\n@.L..#.R\n.DUU.L..\n........)\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",0,"tick","tick",1,"tick",0,"tick","tick",3,"tick","tick",0,"tick","tick",3,"tick","tick",3,0,"tick",3,"tick",2,2,1,"tick",1,"tick","tick",2,"tick","tick","tick","tick","tick","tick"],"background:0,0,background chairlefttuckedin tidy:1,0,0,0,0,\nbackground chairuptuckedin tidy:2,background chairuptuckedinoverlay table tidy:3,background table:4,background chairdownloose:5,0,0,0,\nbackground chairrighttuckedin tidy:6,0,0,0,background candlestick1:7,background candlestick3:8,0,\n0,background candlestick2:9,8,0,background player:10,0,0,\n0,0,0,0,background chairleftloose:11,5,0,\n0,0,background chairuploose:12,background chairrightloose:13,0,0,0,\n",2,"1627778539761.4514"] + ["title Tidy the Cafe!\nauthor Sally Bridgwater\nhomepage http://sallyanne.itch.io\n\nrealtime_interval 0.1\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground \nGrey DarkGrey\n00000\n01110\n01010\n01110\n00000\n\nTable\nYellow Red White\n(12121\n21212\n12121\n21212\n0...0)\n.....\n.121.\n.212.\n.121.\n.0.0.\n\nChairRightLoose\nYellow Red\n.....\n...0.\n.110.\n.110.\n.0.0.\n\nChairRightTuckedIn\nYellow Red\n.....\n..0..\n110..\n110..\n0.0..\n\nChairLeftLoose\nYellow Red\n.....\n.0...\n.011.\n.011.\n.0.0.\n\nChairLeftTuckedIn\nYellow Red\n.....\n..0..\n..011\n..011\n..0.0\n\nChairUpLoose\nYellow Red\n.....\n.000.\n.111.\n.111.\n.0.0.\n\nChairUpTuckedIn\nYellow Red\n.....\n.....\n.000.\n.111.\n.111.\n\nChairUpTuckedInOverlay\nYellow Red\n.0.0.\n.....\n.....\n.....\n.....\n\nChairDownLoose\nYellow Red\n.....\n.000.\n.000.\n.000.\n.0.0.\n\nChairDownTuckedIn\nYellow Red\n.000.\n.000.\n.000.\n.0.0.\n.....\n\nPlayer \nBlack White Brown Red\n..2..\n21312\n.111.\n.000.\n.0.0.\n\nTidy\nPink\n.....\n.....\n.....\n.....\n.....\n\n\nPlant\nGreen Orange\n.000.\n.000.\n11111\n.111.\n.111.\n\n\n\nCandleStick1\nBlack yellow white orange\n3.1.1\n2.2.2\n00000\n..0..\n.000.\n\nCandleStick2\nBlack yellow white orange\n1.3.1\n2.2.2\n00000\n..0..\n.000.\n\nCandleStick3\nBlack yellow white orange\n1.1.3\n2.2.2\n00000\n..0..\n.000.\n\nCandleStick4\nBlack yellow white orange\n1.1.1\n2.2.2\n00000\n..0..\n.000.\n\n\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Table\n@ = Player\nP = Plant\nC = CandleStick1\nL = ChairLeftLoose\nR = ChairRightLoose\nU = ChairUpLoose\nD = ChairDownLoose\n\nChairUp = ChairUpLoose or ChairUpTuckedIn\nChairDown = ChairDownLoose or ChairDownTuckedIn\nChairLeft = ChairLeftLoose or ChairLeftTuckedIn\nChairRight = ChairRightLoose or ChairRightTuckedIn\n\nChair = ChairUp or ChairDown or ChairLeft or ChairRight\nPushable = Chair or Table\nCandle = CandleStick1 or CandleStick2 or CandleStick3 or CandleStick4\n\nObstacle = Table or Candle or Plant\n\nTidyLeft = Obstacle or ChairLeft\nTidyRight = Obstacle or ChairRight\nTidyUp = Obstacle or ChairUp\nTidyDown = Obstacle or ChairDown\n\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTidy\nTable,Chair,Player,Plant,Candle\nChairUpTuckedInOverlay\n\n\n\n======\nRULES \n====== \n\n[ > Player | Pushable ] -> [ > Player | > Pushable ] again\n\n[ Candle ] -> [ action Candle ]\n[ action Candle ] -> [ random Candle ]\n\n[Tidy] -> [ ]\n[Table] ->[ Tidy Table]\n\nLeft [ Tidy Table | No TidyLeft] -> [ Table | ]\nRight[ Tidy Table | No TidyRight] -> [ Table | ]\nUp [ Tidy Table | No TidyUp] -> [Table | ]\nDown [ Tidy Table | No TidyDown] -> [Table | ]\n\nLeft [ Tidy Table | ChairLeft] -> [ Tidy Table | ChairLeft Tidy]\nRight[ Tidy Table | ChairRight] -> [ Tidy Table | ChairRight Tidy]\nUp [ Tidy Table | ChairUp] -> [ Tidy Table | ChairUp Tidy]\nDown [ Tidy Table | ChairDown] -> [ Tidy Table | ChairDown Tidy]\n\n[ ChairUp ] -> [ ChairUpLoose ]\n[ ChairDown ] -> [ ChairDownLoose ]\n[ ChairLeft ] -> [ ChairLeftLoose ]\n[ ChairRight ] -> [ ChairRightLoose ]\n\n[ Tidy ChairUp ] -> [ Tidy ChairUpTuckedIn ]\n[ Tidy ChairDown ] -> [ Tidy ChairDownTuckedIn ]\n[ Tidy ChairLeft ] -> [ Tidy ChairLeftTuckedIn ]\n[ Tidy ChairRight ] -> [ Tidy ChairRightTuckedIn ]\n\nLate [ ChairUpTuckedInOverlay ] -> [ ]\nLate Down [ ChairUpTuckedIn | ] -> [ ChairUpTuckedIn | ChairUpTuckedInOverlay ]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Table on Tidy \nAll Chair on Tidy\nsome Table\nsome Chair\n\n======= \nLEVELS\n=======\n\n(...u.\n...#r\n.l.d.\n....@)\n\n(....U.\n.#.D.R\n.L.@..\n......)\n\nc.up\n@l.r\n.d#.\n....\n\n(....\n@.ur\n..#.\npl#.\nl.dr\n....)\n\n#...#\n.drd.\n.r@l.\n.ulu.\n#...#\n\n...c...\n.u.c.u.\nl#r.l.r\n.#.@.d.\n.d.c...\n...c...\n\n.......\n..u#u..\n.l#@#r.\n..d#d..\n.......\n\n(...@...\n..#u#..\n.l.c.r.\n..dud..\n.......)\n\nc..c..c\n...u...\nc@r#l.c\n...d...\nc..c..c\n\n..u..\n.l#r.\n..d..\n.l#r.\n..@..\n.....\n\n\n\n(........\n....D.R.\n.#.P....\n@.L..#.R\n.DUU.L..\n........)\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", 1, "tick", 0, "tick", "tick", 3, "tick", "tick", 0, "tick", "tick", 3, "tick", "tick", 3, 0, "tick", 3, "tick", 2, 2, 1, "tick", 1, "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick"], "background:0,0,background chairlefttuckedin tidy:1,0,0,0,0,\nbackground chairuptuckedin tidy:2,background chairuptuckedinoverlay table tidy:3,background table:4,background chairdownloose:5,0,0,0,\nbackground chairrighttuckedin tidy:6,0,0,0,background candlestick1:7,background candlestick3:8,0,\n0,background candlestick2:9,8,0,background player:10,0,0,\n0,0,0,0,background chairleftloose:11,5,0,\n0,0,background chairuploose:12,background chairrightloose:13,0,0,0,\n", 2, "1627778539761.4514"] ], [ `gallery: flower dance`, - ["title Flower Dance\nauthor quat\nbackground_color lightbrown\ntext_color darkbrown\n\nrequire_player_movement\n\ncolor_palette 14\n\nagain_interval 0.1\n\nnoaction\n\n========\nOBJECTS\n========\n\nBackground .\nlightbrown\n\nPlayer\nred lightred\n.110.\n10000\n00000\n00000\n.000.\n\nMarker\ntransparent\n\nCheck &\nbrown\n.....\n.000.\n.0...\n.000.\n.....\n\nBud\nred green lightgreen\n.....\n.....\n...2.\n...1.\n...1.\n\nPlant\nred green lightgreen\n..0..\n.020.\n..01.\n..11.\n...1.\n\nWall #\ndarkgrey\n(darkgrey grey\n00000\n00100\n01110\n00100\n00000)\n\nEnd W\nbrown\n.....\n.000.\n.0.0.\n.000.\n.....\n\n=======\nLEGEND\n=======\n\nCollidable = Wall or Plant\n\nP = Player and Marker\n\n=======\nSOUNDS\n=======\n\nsfx7 34533704\nsfx1 78722500\nsfx2 38016702\nEndLevel 82634105\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nEnd\nCheck\nMarker\nBud\nPlayer, Wall, Plant\n\n\n======\nRULES\n======\n\n[> Player | No Collidable] -> [ | > Player] sfx7\n\n[Player] -> [Marker Player]\n\n[Bud Player] -> sfx2\n\n[Bud] -> [Plant]\n[Marker no Player] -> [Bud]\n\n[Player Check] -> [Player] checkpoint sfx1\n\n==============\nWINCONDITIONS\n==============\n\nSome Player\nAll Player on End\n\n=======\nLEVELS\n=======\n\nMessage Arrow keys to run across the garden.\nMessage Plant flowers in the dirt.\nMessage Don't land on the flower buds...\n\n......................#............#.............\n............#......#..#..#...#...................\n...........###..##...#...#....#....#.............\n...........##.##....#.#..#.#..#...#....#.........\n....##....#..##...##..#..#....#..#.#...##........\n........###..######....##.##..##.#.#.##..........\n...#######.#.###.#######.######..##..##.#........\n...#.#.###############.#####.##..##.#......#.....\n.....#.######.####.############.#####.###.#......\n.....#####.#..#..#..#.########..#.#######..#.....\n.......##.###########.#...#..###########.##......\n......######......###.#...#..##.....###.##.......\n..##.####.#........####...#####.###.###..#....#..\n.....#..###.........###...#####.###.#####.####...\n.#...######&....................###.########.....\n..#..##.###.........###...#####..&..###.###......\n...#.#.####........####...######....#####.....#..\n...#.#######......#####...#######.#######..#...##\n...#.#.#######.########...#######.#####.##.###...\n....#.####...#.#######.....##...#.##.###.#.#.....\n..###.#.#.####.##...#.......#...#.####.####.#....\n....#####.#..#.##.P.....w......##.##..#.###...#.#\n....#.###.#..#.##...#.......#...#.####...###.#...\n......########.#######.....##...#.#######........\n..##.##.######.########...###...#.###...###......\n.....##.##..........####.####.#.#.#######.#......\n.....#.##...........####.####...#.....#.#####....\n.....###............####.####...###...##..##...#.\n...#####................&####...###...####..##...\n.....###............#########.........####...#...\n.......##...........#########.........#.#.#......\n.##....#.#....&.....####################.#..#....\n....####.#############..##.####.#.####.##.#......\n.......###...#.##.##...####.###.#.###......#.#...\n..#.#.##.##.####.#####.##.#.#.#.##.#.##.##.#.....\n......#####......####.##.#.##.#####...#.####.....\n.....############.####.#..#...#.#.#.......#......\n.....####.##...#..#..........#...##...#..........\n.....#...#.....##.#..####...#...#..#....#........\n........#...#.#...##.....#.#.........#...........\n...........#..#...#.......#.....#................\n..............#....##....##.....#....#...........\n\n",[3,3,0,1,2,2,3,3,0,1],"background: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,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,background wall:1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,\n0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,1,1,0,1,\n0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,\n1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,1,0,0,1,1,1,1,1,1,0,0,1,0,0,\n0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,0,1,0,1,1,1,1,0,0,0,0,\n0,0,0,0,0,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0,0,1,0,1,1,1,0,1,0,0,0,0,0,0,0,1,1,1,1,1,0,1,0,1,\n1,1,1,1,1,1,0,0,0,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,0,1,\n1,1,1,1,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,0,0,background check:2,0,0,1,1,0,1,0,0,1,1,0,0,0,\n0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,1,1,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,1,\n0,1,0,0,1,0,0,0,0,1,0,1,1,1,1,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,\n0,0,0,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,0,0,0,2,1,0,1,0,1,0,0,1,1,1,0,0,0,1,0,1,1,\n1,1,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,1,1,0,1,0,0,0,\n0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,0,0,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,\n0,0,1,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,0,0,0,1,1,1,0,background plant:3,0,1,1,0,0,0,\n0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,1,0,0,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,\n1,1,0,0,1,0,1,0,0,0,1,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,0,0,0,0,1,\n0,0,1,0,0,0,1,1,1,0,0,0,1,1,0,1,1,1,1,1,0,0,0,1,1,1,1,1,0,1,1,1,1,0,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,\n0,1,1,1,1,1,1,0,1,1,1,1,0,0,0,0,0,1,1,1,1,0,1,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,1,1,1,1,0,1,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,\nbackground end:4,0,0,0,0,0,0,2,1,1,1,1,1,1,0,0,0,1,0,0,0,0,1,1,1,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,\n1,1,1,1,1,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,0,1,1,\n0,1,0,0,0,1,1,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,1,0,0,\n0,0,0,0,0,0,1,0,1,1,0,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,0,1,0,0,0,0,1,\n1,1,1,1,1,1,1,0,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,3,1,1,1,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,\n0,1,1,1,1,3,0,3,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,\n1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,0,1,0,1,1,0,0,0,0,1,1,1,1,1,0,1,0,1,1,1,2,0,0,0,0,0,0,0,0,0,0,background marker player:5,1,1,0,0,1,0,0,1,\n1,0,1,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,1,1,0,0,0,0,\n1,0,1,0,1,1,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,\n1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,0,1,1,0,1,background bud:6,0,0,0,3,1,1,0,1,0,0,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,\n1,0,1,0,1,1,1,1,1,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,0,0,1,1,0,1,1,0,1,1,0,0,1,0,1,0,1,\n1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,0,1,1,1,0,1,0,1,\n1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,0,1,1,1,1,1,0,1,0,1,0,1,1,0,1,0,0,1,1,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,1,0,0,0,0,1,1,1,0,1,1,1,1,0,0,1,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,\n1,0,1,0,0,0,1,1,0,0,1,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,\n0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,\n0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,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,1,0,0,0,0,0,0,0,0,0,1,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,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",3,"1627778570211.9675"] + ["title Flower Dance\nauthor quat\nbackground_color lightbrown\ntext_color darkbrown\n\nrequire_player_movement\n\ncolor_palette 14\n\nagain_interval 0.1\n\nnoaction\n\n========\nOBJECTS\n========\n\nBackground .\nlightbrown\n\nPlayer\nred lightred\n.110.\n10000\n00000\n00000\n.000.\n\nMarker\ntransparent\n\nCheck &\nbrown\n.....\n.000.\n.0...\n.000.\n.....\n\nBud\nred green lightgreen\n.....\n.....\n...2.\n...1.\n...1.\n\nPlant\nred green lightgreen\n..0..\n.020.\n..01.\n..11.\n...1.\n\nWall #\ndarkgrey\n(darkgrey grey\n00000\n00100\n01110\n00100\n00000)\n\nEnd W\nbrown\n.....\n.000.\n.0.0.\n.000.\n.....\n\n=======\nLEGEND\n=======\n\nCollidable = Wall or Plant\n\nP = Player and Marker\n\n=======\nSOUNDS\n=======\n\nsfx7 34533704\nsfx1 78722500\nsfx2 38016702\nEndLevel 82634105\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nEnd\nCheck\nMarker\nBud\nPlayer, Wall, Plant\n\n\n======\nRULES\n======\n\n[> Player | No Collidable] -> [ | > Player] sfx7\n\n[Player] -> [Marker Player]\n\n[Bud Player] -> sfx2\n\n[Bud] -> [Plant]\n[Marker no Player] -> [Bud]\n\n[Player Check] -> [Player] checkpoint sfx1\n\n==============\nWINCONDITIONS\n==============\n\nSome Player\nAll Player on End\n\n=======\nLEVELS\n=======\n\nMessage Arrow keys to run across the garden.\nMessage Plant flowers in the dirt.\nMessage Don't land on the flower buds...\n\n......................#............#.............\n............#......#..#..#...#...................\n...........###..##...#...#....#....#.............\n...........##.##....#.#..#.#..#...#....#.........\n....##....#..##...##..#..#....#..#.#...##........\n........###..######....##.##..##.#.#.##..........\n...#######.#.###.#######.######..##..##.#........\n...#.#.###############.#####.##..##.#......#.....\n.....#.######.####.############.#####.###.#......\n.....#####.#..#..#..#.########..#.#######..#.....\n.......##.###########.#...#..###########.##......\n......######......###.#...#..##.....###.##.......\n..##.####.#........####...#####.###.###..#....#..\n.....#..###.........###...#####.###.#####.####...\n.#...######&....................###.########.....\n..#..##.###.........###...#####..&..###.###......\n...#.#.####........####...######....#####.....#..\n...#.#######......#####...#######.#######..#...##\n...#.#.#######.########...#######.#####.##.###...\n....#.####...#.#######.....##...#.##.###.#.#.....\n..###.#.#.####.##...#.......#...#.####.####.#....\n....#####.#..#.##.P.....w......##.##..#.###...#.#\n....#.###.#..#.##...#.......#...#.####...###.#...\n......########.#######.....##...#.#######........\n..##.##.######.########...###...#.###...###......\n.....##.##..........####.####.#.#.#######.#......\n.....#.##...........####.####...#.....#.#####....\n.....###............####.####...###...##..##...#.\n...#####................&####...###...####..##...\n.....###............#########.........####...#...\n.......##...........#########.........#.#.#......\n.##....#.#....&.....####################.#..#....\n....####.#############..##.####.#.####.##.#......\n.......###...#.##.##...####.###.#.###......#.#...\n..#.#.##.##.####.#####.##.#.#.#.##.#.##.##.#.....\n......#####......####.##.#.##.#####...#.####.....\n.....############.####.#..#...#.#.#.......#......\n.....####.##...#..#..........#...##...#..........\n.....#...#.....##.#..####...#...#..#....#........\n........#...#.#...##.....#.#.........#...........\n...........#..#...#.......#.....#................\n..............#....##....##.....#....#...........\n\n", [3, 3, 0, 1, 2, 2, 3, 3, 0, 1], "background: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,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,background wall:1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,\n0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,1,1,0,1,\n0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,\n1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,1,0,0,1,1,1,1,1,1,0,0,1,0,0,\n0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,0,1,0,1,1,1,1,0,0,0,0,\n0,0,0,0,0,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0,0,1,0,1,1,1,0,1,0,0,0,0,0,0,0,1,1,1,1,1,0,1,0,1,\n1,1,1,1,1,1,0,0,0,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,0,1,\n1,1,1,1,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,0,0,background check:2,0,0,1,1,0,1,0,0,1,1,0,0,0,\n0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,1,1,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,1,\n0,1,0,0,1,0,0,0,0,1,0,1,1,1,1,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,\n0,0,0,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,0,0,0,2,1,0,1,0,1,0,0,1,1,1,0,0,0,1,0,1,1,\n1,1,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,1,1,0,1,0,0,0,\n0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,0,0,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,\n0,0,1,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,0,0,0,1,1,1,0,background plant:3,0,1,1,0,0,0,\n0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,1,0,0,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,\n1,1,0,0,1,0,1,0,0,0,1,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,0,0,0,0,1,\n0,0,1,0,0,0,1,1,1,0,0,0,1,1,0,1,1,1,1,1,0,0,0,1,1,1,1,1,0,1,1,1,1,0,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,\n0,1,1,1,1,1,1,0,1,1,1,1,0,0,0,0,0,1,1,1,1,0,1,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,1,1,1,1,0,1,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,\nbackground end:4,0,0,0,0,0,0,2,1,1,1,1,1,1,0,0,0,1,0,0,0,0,1,1,1,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,\n1,1,1,1,1,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,0,1,1,\n0,1,0,0,0,1,1,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,1,0,0,\n0,0,0,0,0,0,1,0,1,1,0,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,0,1,0,0,0,0,1,\n1,1,1,1,1,1,1,0,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,3,1,1,1,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,\n0,1,1,1,1,3,0,3,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,\n1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,0,1,0,1,1,0,0,0,0,1,1,1,1,1,0,1,0,1,1,1,2,0,0,0,0,0,0,0,0,0,0,background marker player:5,1,1,0,0,1,0,0,1,\n1,0,1,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,1,1,0,0,0,0,\n1,0,1,0,1,1,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,\n1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,0,1,1,0,1,background bud:6,0,0,0,3,1,1,0,1,0,0,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,\n1,0,1,0,1,1,1,1,1,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,0,0,1,1,0,1,1,0,1,1,0,0,1,0,1,0,1,\n1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,0,1,1,1,0,1,0,1,\n1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,0,1,1,1,1,1,0,1,0,1,0,1,1,0,1,0,0,1,1,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,1,0,0,0,0,1,1,1,0,1,1,1,1,0,0,1,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,\n1,0,1,0,0,0,1,1,0,0,1,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,\n0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,\n0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,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,1,0,0,0,0,0,0,0,0,0,1,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,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 3, "1627778570211.9675"] ], [ `gallery: stairways`, - ["title Stairways\nauthor Franklin P. Dyer\n\n========\nOBJECTS\n========\n\nBackground .\nLightgray\n\nWall x\nDarkgray Gray\n00000\n01110\n01010\n01110\n00000\n\nBlock o\nDarkbrown Brown\n00000\n01110\n01010\n01110\n00000\n\nPlayer p\nBlack Brown #d2b48c Blue\n.000.\n00000\n.121.\n.333.\n.3.3.\n\nStairs s\nLightgray Gray Darkgray Black\n00000\n01110\n02220\n03330\n00000\n\n=======\nLEGEND\n=======\n\n@ = Block and Stairs\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nStairs\nPlayer, Wall, Block\n\n======\nRULES\n======\n\n[> Player|Block No Stairs] -> [> Player|> Block No Stairs]\n[> Player|Block Stairs] -> [Player|> Block Stairs]\n[> Block|...|Block|Wall] -> [Block|...|Block|Wall]\n[Wall|< Block|...|Block] -> [Wall|Block|...|Block]\n[Background|< Block|...|Block] -> [Background|< Block|...|< Block]\n[> Block|...|Block|Background] -> [> Block|...|> Block|Background]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Player on Stairs\n\n=======\nLEVELS\n=======\n\nmessage Find the stairs, and go down them.\nmessage All of the boxes in a row or column move together.\n\nxxxxxx\nx.po.x\nx.oo.x\nx....x\nx@o..x\nxxxxxx\n\nxxxxxxx\nx...oxx\nxoo.@xx\nxopoo.x\nx.o.oxx\nx.xxxxx\nxxxxxxx\n\nxxxxxxx\nxoooo.x\nxo@...x\nx.opo.x\nx...o.x\nx.o...x\nxxxxxxx\n\nmessage You win!\n\n\n",[0,3,3,0,2,1,3,2,2,1,0,0,3,1,3,2,2,3,0],"background wall:0,0,0,0,0,0,0,\n0,background:1,background block:2,1,1,1,0,\n0,2,1,2,1,0,0,\n0,1,1,2,2,0,0,\n0,2,background block stairs:3,background player:4,2,0,0,\n0,0,0,2,0,0,0,\n0,0,0,0,0,0,0,\n",3,"1627778592073.838"] + ["title Stairways\nauthor Franklin P. Dyer\n\n========\nOBJECTS\n========\n\nBackground .\nLightgray\n\nWall x\nDarkgray Gray\n00000\n01110\n01010\n01110\n00000\n\nBlock o\nDarkbrown Brown\n00000\n01110\n01010\n01110\n00000\n\nPlayer p\nBlack Brown #d2b48c Blue\n.000.\n00000\n.121.\n.333.\n.3.3.\n\nStairs s\nLightgray Gray Darkgray Black\n00000\n01110\n02220\n03330\n00000\n\n=======\nLEGEND\n=======\n\n@ = Block and Stairs\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nStairs\nPlayer, Wall, Block\n\n======\nRULES\n======\n\n[> Player|Block No Stairs] -> [> Player|> Block No Stairs]\n[> Player|Block Stairs] -> [Player|> Block Stairs]\n[> Block|...|Block|Wall] -> [Block|...|Block|Wall]\n[Wall|< Block|...|Block] -> [Wall|Block|...|Block]\n[Background|< Block|...|Block] -> [Background|< Block|...|< Block]\n[> Block|...|Block|Background] -> [> Block|...|> Block|Background]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Player on Stairs\n\n=======\nLEVELS\n=======\n\nmessage Find the stairs, and go down them.\nmessage All of the boxes in a row or column move together.\n\nxxxxxx\nx.po.x\nx.oo.x\nx....x\nx@o..x\nxxxxxx\n\nxxxxxxx\nx...oxx\nxoo.@xx\nxopoo.x\nx.o.oxx\nx.xxxxx\nxxxxxxx\n\nxxxxxxx\nxoooo.x\nxo@...x\nx.opo.x\nx...o.x\nx.o...x\nxxxxxxx\n\nmessage You win!\n\n\n", [0, 3, 3, 0, 2, 1, 3, 2, 2, 1, 0, 0, 3, 1, 3, 2, 2, 3, 0], "background wall:0,0,0,0,0,0,0,\n0,background:1,background block:2,1,1,1,0,\n0,2,1,2,1,0,0,\n0,1,1,2,2,0,0,\n0,2,background block stairs:3,background player:4,2,0,0,\n0,0,0,2,0,0,0,\n0,0,0,0,0,0,0,\n", 3, "1627778592073.838"] ], [ `gallery: rock, paper, scissors`, - ["title Rock, Paper, Scissors (v0.90 = v1.alpha)\nauthor chaotic_iak\nhomepage chaosatthesky.wordpress.com\n\nagain_interval 0.15\nkey_repeat_interval 0.2\nrun_rules_on_level_start\nverbose_logging\n\n(\n\"Rock, Paper, Scissors\" by chaotic_iak\nThe popular game can't be that hard, right?\n\nChangelog:\n09-Jul-2015 v0.10: Original mechanics\n10-Jul-2015 : Gems, sticky paper\n10-Jul-2015 v0.20: Add 1-8\n11-Jul-2015 : Skip level\n11-Jul-2015 v0.50: Add 9,10\n12-Jul-2015 v0.51: Change 3,5,6\n13-Jul-2015 v0.52: Change 7,8,9\n14-Jul-2015 v0.60: Move 10>12, add 10,11\n15-Jul-2015 v0.61: Change 9,11\n17-Jul-2015 v0.70: Move 11>12, add 11,13,14\n01-Aug-2015 v1.00: Move a lot, change 14, add 10,13,17\n)\n\n=======\nOBJECTS\n=======\nbackground\nlightgreen yellow\n00000\n00010\n00000\n01000\n00000\n\nwall\ndarkgreen green\n01110\n10001\n01110\n10001\n00000\n\nlevel0\ndarkgreen green\n01100\n10010\n10010\n10010\n01100\n\nlevel1\ndarkgreen green\n00100\n01100\n00100\n00100\n01110\n\nlevel2\ndarkgreen green\n01100\n10010\n00100\n01000\n11110\n\nlevel3\ndarkgreen green\n11100\n00010\n01100\n00010\n11100\n\nlevel4\ndarkgreen green\n00100\n01100\n10100\n11110\n00100\n\nlevel5\ndarkgreen green\n11110\n10000\n11100\n00010\n11100\n\nlevel6\ndarkgreen green\n01100\n10000\n11100\n10010\n01100\n\nlevel7\ndarkgreen green\n11110\n00010\n00100\n01000\n01000\n\nlevel8\ndarkgreen green\n01100\n10010\n01100\n10010\n01100\n\nlevel9\ndarkgreen green\n01100\n10010\n01110\n00010\n11100\n\nplayer\nblack orange red blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nrock\ndarkbrown brown orange\n.112.\n01112\n01112\n01111\n.000.\n\npaper\nlightgray gray\n0001.\n00001\n00000\n00000\n00000\n\npaperborderl\nwhite\n0....\n0....\n0....\n0....\n0....\n\npaperborderd\nwhite\n.....\n.....\n.....\n.....\n00000\n\npaperborderld\nwhite\n.....\n.....\n.....\n.....\n0....\n\npapernexttoborderl\ntransparent\n\npapernexttoborderd\ntransparent\n\npapernofold\nlightgray\n...00\n....0\n.....\n.....\n.....\n\nscissorsu\ndarkgray gray red darkred\n1...1\n01.10\n.010.\n22.22\n23.23\n\nscissorsl\ndarkgray gray red darkred\n10.22\n.1023\n..1..\n.1022\n10.23\n\nscissorsd\ndarkgray gray red darkred\n22.22\n23.23\n.010.\n01.10\n1...1\n\nscissorsr\ndarkgray gray red darkred\n22.01\n2301.\n..1..\n2201.\n23.01\n\ngem\nblue lightblue\n.....\n.011.\n00001\n.000.\n..0..\n\nstar\ndarkred red\n.....\n.011.\n00001\n.000.\n..0..\n\nnostar\ndarkgreen green\n00000\n01110\n11111\n01110\n00100\n\nstarcover\ndarkred red\n.....\n.011.\n00001\n.000.\n..0..\n\nexit\nblue lightblue\n.001.\n01011\n00011\n00101\n.011.\n\nexitholder\ntransparent\n\nstartlevel\ntransparent\n\nskipcheck\ntransparent\n\nnextstar\ntransparent\n\nprocessedstar\ntransparent\n\n======\nLEGEND\n======\n. = background\n# = wall\no = player and startlevel\ng = gem\ne = exit and exitholder\nr = rock\np = paper\nw = scissorsu\na = scissorsl\ns = scissorsd\nd = scissorsr\n0 = wall and level0\n1 = wall and level1\n2 = wall and level2\n3 = wall and level3\n4 = wall and level4\n5 = wall and level5\n6 = wall and level6\n7 = wall and level7\n8 = wall and level8\n9 = wall and level9\n* = star\n\nscissors = scissorsu or scissorsl or scissorsd or scissorsr\nobject = wall or player or rock or paper or scissors or gem or star or exitholder\nlvnum = level0 or level1 or level2 or level3 or level4 or level5 or level6 or level7 or level8 or level9\npaperborder = paperborderl or paperborderd or paperborderld or papernofold or papernexttoborderl or papernexttoborderd\nsprites = lvnum or paperborder\n\n======\nSOUNDS\n======\nplayer cantmove 88720304\n\nrock move 12612307\npaper move 96873507\nscissors move 93218507\n\nrock destroy 98086501\npaper destroy 41726709\nscissors destroy 5523702\ngem destroy 73128500\nstar destroy 64247508\n\nundo 28911504\nsfx0 13629103\nsfx9 31899108 (skip check)\nendlevel 18800703\n\n===============\nCOLLISIONLAYERS\n===============\nprocessedstar, nextstar, startlevel, skipcheck\npapernexttoborderd\npapernexttoborderl\nbackground\nexit\nobject\nlvnum, nostar\nstarcover\npaperborderl\npaperborderd\npaperborderld\npapernofold\n\n=====\nRULES\n=====\n(LEVEL START)\nright [startlevel][lvnum|no lvnum] -> [startlevel][lvnum|nextstar]\nright [startlevel][star no processedstar][nextstar|] -> [startlevel][star processedstar][nostar|nextstar]\n[startlevel][nextstar] -> [startlevel][]\n[startlevel][processedstar] -> [startlevel][]\nright [startlevel][lvnum|nostar] -> [startlevel][lvnum|nostar nextstar]\n[startlevel] -> []\n\n(STUFF)\n[action player skipcheck] -> [player] win\n[orthogonal player skipcheck] -> [orthogonal player]\n[action player no skipcheck] -> [player skipcheck] sfx9\n[skipcheck] -> message ********** SKIP LEVEL? *********** * - ACTION TWICE to CONFIRM * * - ACTION then MOVE to CANCEL *\n\n(MOVEMENT)\nstartloop\n(rock)\n[> player|rock] -> [> player|> rock]\n(scissors)\ndown [> object|scissors no scissorsu] -> [> object|> scissors]\ndown [> scissors|scissorsu] -> [> scissors|> scissorsu]\ndown [> gem|scissorsu] -> [> gem|> scissorsu]\nright [> object|scissors no scissorsl] -> [> object|> scissors]\nright [> scissors|scissorsl] -> [> scissors|> scissorsl]\nright [> gem|scissorsl] -> [> gem|> scissorsl]\nup [> object|scissors no scissorsd] -> [> object|> scissors]\nup [> scissors|scissorsd] -> [> scissors|> scissorsd]\nup [> gem|scissorsd] -> [> gem|> scissorsd]\nleft [> object|scissors no scissorsr] -> [> object|> scissors]\nleft [> scissors|scissorsr] -> [> scissors|> scissorsr]\nleft [> gem|scissorsr] -> [> gem|> scissorsr]\n(paper)\n rigid down [> object no rock no scissorsd|paper] -> [> object|> paper]\n+ rigid right [> object no rock no scissorsr|paper] -> [> object|> paper]\n+ rigid up [> object no rock no scissorsu|paper] -> [> object|> paper]\n+ rigid left [> object no rock no scissorsl|paper] -> [> object|> paper]\n+ rigid [orthogonal paper|paper] -> [orthogonal paper|orthogonal paper]\n(gem/star)\n[> player|gem] -> [> player|]\n[> player|star] -> [> player|processedstar]\n[> object|gem] -> [> object|> gem]\n[> object|star] -> [> object|> star]\nendloop\n(exit)\n[> player|exitholder] -> [> player|]\n\n(INTERACTION)\n(rock/paper)\n[> rock|stationary paper] -> [|paper]\n[> paper|stationary rock] -> [> paper|]\n(paper/scissors)\ndown [> paper|stationary scissorsu] -> [|scissorsu]\ndown [> scissorsd|stationary paper] -> [> scissorsd|]\nright [> paper|stationary scissorsl] -> [|scissorsl]\nright [> scissorsr|stationary paper] -> [> scissorsr|]\nup [> paper|stationary scissorsd] -> [|scissorsd]\nup [> scissorsu|stationary paper] -> [> scissorsu|]\nleft [> paper|stationary scissorsr] -> [|scissorsr]\nleft [> scissorsl|stationary paper] -> [> scissorsl|]\n(scissors/rock)\ndown [> scissorsd|stationary rock] -> [|rock]\ndown [> rock|stationary scissorsu] -> [> rock|]\nright [> scissorsr|stationary rock] -> [|rock]\nright [> rock|stationary scissorsl] -> [> rock|]\nup [> scissorsu|stationary rock] -> [|rock]\nup [> rock|stationary scissorsd] -> [> rock|]\nleft [> scissorsl|stationary rock] -> [|rock]\nleft [> rock|stationary scissorsr] -> [> rock|]\n\n(FINISH)\n(paper border)\nlate [paperborder] -> []\nlate left [paper|no paper] -> [paper paperborderl|]\nlate down [paper|no paper] -> [paper paperborderd|]\nlate up [paperborderl|paper] -> [paperborderl|paper papernexttoborderl]\nlate right [paperborderd|paper] -> [paperborderd|paper papernexttoborderd]\nlate [papernexttoborderl papernexttoborderd] -> [paperborderld]\nlate up [paper|paper] -> [paper papernofold|paper]\nlate right [paper|paper] -> [paper papernofold|paper]\n(star check)\nlate right [processedstar][nextstar|] -> [][starcover|nextstar]\n(exit check)\nlate [player exit][gem] -> sfx0\nlate [exit no player] -> [exit exitholder]\n\n=============\nWINCONDITIONS\n=============\nno gem\nall player on exit\n\n======\nLEVELS\n======\n(and unofficial titles!)\n\nmessage ROCKS are HEAVY\n\n(Rockfall)\n############\n#......#...#\n#.....rr...#\n##r##..#r.r#\n#...####rr.#\n#...##.r..r#\n#.o.#e..rr.#\n#...##..r..#\n01##########\n\nmessage BLUE GEMS are IMPORTANT\n\nmessage RED GEMS are DIFFICULT\n\n(Excavation)\n############\n#..........#\n#.g...r.rr.#\n##.##.rr.r.#\n#.e.##..rr.#\n#...#grr..##\n#.o.##.r.rg#\n#...##.*r.##\n02##########\n\nmessage GEMS are LIGHT\n\n(Gems in a Rock Pile)\n############\n#...#......#\n#.g..ergr..#\n#...##.#####\n##r##.grgr.#\n#...#.rgr*.#\n#.o.#.grgr.#\n#...#.rgrg.#\n03##########\n\nmessage PAPER is STICKY\n\n(Think Before You Stick)\n############\n#......*#e##\n#......#pp.#\n#ppp#..p..p#\n#p.p#.p.p.p#\n#...#.p..p.#\n#.o.#..pp..#\n#...#......#\n04##########\n\nmessage SCISSORS have SHARP BLADES\n\n(Ouch)\n############\n#..a.....###\n#..ag....###\n##d##...we.#\n#...#.a.s#.#\n#...#.s..#*#\n#.o.#....w.#\n#...#...#..#\n05##########\n\nmessage ROCK crushes SCISSORS\n\n(Demolition Derby)\n############\n#...#..#..##\n#.r.ad....##\n#...#..#.w*#\n##w##....w##\n#...##...w##\n#.o.#ew....#\n#...##w....#\n06##########\n\nmessage PAPER covers ROCK\n\n(One Versus Twenty-Two)\n############\n#.p.prrre#*#\n#...prr.r#r#\n##r##r.r.r.#\n#...#.r.r.r#\n#...#r.r.r.#\n#.o.#.rpr.r#\n#...#r.r.r.#\n07##########\n\nmessage SCISSORS cut PAPER\n\n(Big Paper is Useless)\n############\n#...p..e##*#\n#.p.p.a###p#\n#...p......#\n##w##...pp.#\n#...#.d.pp.#\n#.o.#...pp.#\n#...#......#\n08##########\n\nmessage ROCK must be PUSHED DIRECTLY\n\nmessage EVERYTHING ELSE can PUSH EACH OTHER\n\n(Light and Heavy)\n############\n#....r*..r.#\n#...g#r.#.e#\n#.dpp#g.ppp#\n##p###w.#..#\n#...#...#..#\n#.o.#......#\n#...#......#\n09##########\n\nmessage DISCOVER other SECRETS\n\nmessage GOOD LUCK\n\n(More Gems, More Rock Piles)\n#############\n#o...e#.....#\n#rgrgr#*rgrg#\n#grgrg#rgrgr#\n#ggrgrggrgrg#\n#rggrg#rgrgr#\n#grggr#gggrg#\n#.....#.....#\n10###########\n\n(Scissors Field)\n################\n#....#.....#e..#\n#.*.#.s..#a.#..#\n#...#.#.....#..#\n#s#s#...#...#..#\n#.........#.#s##\n#......#.....o.#\n#..............#\n11##############\n\n(Littered Boulders)\n############\n#...#...a..#\n#..g..#.#.e#\n#.rrr.rr##s#\n#..r.#....o#\n#.#r..rr##w#\n#..r..#.#..#\n#..r....a*.#\n12##########\n\n(Cleaning Job)\n###########\n#.....o#e.#\n#......#..#\n#..######s#\n#grggrgggr#\n#grrggrrrg#\n#rrgrrrggr#\n#.prrggrr*#\n#.rggrggrr#\n13#########\n\n(Clearing the Path)\n##############\n#p.........rr#\n#p...ss.aa.rr#\n#p...ss.aa.#r#\n#ppp...r...#*#\n#pop.dd.ww.###\n#p...dd.ww##e#\n#ppppp...rrrr#\n14############\n\n(A-maze-ing Paper)\n#################\n#..............r#\n#.ppppppppp.###.#\n#.p.....prp.#...#\n#.p.ppp...p.#.*.#\n#.p...pp..p.#...#\n#.ppp.ppppp.#####\n#.p...p...p.#...#\n#.pp.pp.p.p.#.e.#\n#.p.....p.o.a...#\n#.ppppppppp.#.w.#\n#...........#...#\n15###############\n\n(Exercising Into Shape)\n#############\n###.......#e#\n#....ppp..#r#\n#....ppp..o.#\n#....ppp....#\n#.#.........#\n#r#..w.a..###\n#*#.......###\n16###########\n\n(Surrounded)\n#######################\n#ppp....p....ppp......#\n#p.............p......#\n#p.............p......#\n#...p...p...p.........#\n#.....................#\n#...............#.....#\n#...............#.....#\n#p..p...p...p..p#.....#\n#...............#.....#\n#...............#..w..#\n#...............#..e..#\n#...p...p...p...#######\n#ppp...........p...ppp#\n#pop...........p...p*p#\n#ppp....p....ppp...ppp#\n17#####################\n\n(The Killer)\n##########\n#........#\n#.ppp....#\n#.prp.g..#\n#.ppp....#\n#....a...#\n###....aa#\n#ero.##*##\n18########\n\nmessage CONGRATULATIONS\n",[0,0,0,0,3,3,3,3,2,2,2,2,2,3,3,3,3,0,0,0,0,2,1,1,3,3,2,2,1,0,3,0,1,2,1,0],"background wall:0,0,0,0,0,0,0,0,background level0 wall:1,0,background:2,2,\n2,2,2,2,2,background level4 wall:3,0,2,2,2,2,2,\n2,2,background nextstar nostar wall:4,0,2,2,2,2,2,2,2,0,\n0,background paper paperborderl papernexttoborderl papernofold:5,background paper paperborderd paperborderl papernofold:6,0,0,0,0,0,0,0,background paper paperborderd papernofold:7,2,\nbackground paper paperborderl papernexttoborderl:8,6,2,2,2,0,0,background paper paperborderld:9,6,2,background paper paperborderd papernexttoborderd papernofold:10,2,\n2,2,0,0,background star:11,0,background paper paperborderl papernofold:12,10,background player:13,2,2,0,\n0,0,12,7,2,2,2,2,0,0,background exit exitholder:14,background paper papernofold:15,\n10,2,2,2,2,0,0,0,background paper:16,10,2,2,\n2,2,0,0,0,0,0,0,0,0,0,0,\n",8,"1627778623784.798"] + ["title Rock, Paper, Scissors (v0.90 = v1.alpha)\nauthor chaotic_iak\nhomepage chaosatthesky.wordpress.com\n\nagain_interval 0.15\nkey_repeat_interval 0.2\nrun_rules_on_level_start\nverbose_logging\n\n(\n\"Rock, Paper, Scissors\" by chaotic_iak\nThe popular game can't be that hard, right?\n\nChangelog:\n09-Jul-2015 v0.10: Original mechanics\n10-Jul-2015 : Gems, sticky paper\n10-Jul-2015 v0.20: Add 1-8\n11-Jul-2015 : Skip level\n11-Jul-2015 v0.50: Add 9,10\n12-Jul-2015 v0.51: Change 3,5,6\n13-Jul-2015 v0.52: Change 7,8,9\n14-Jul-2015 v0.60: Move 10>12, add 10,11\n15-Jul-2015 v0.61: Change 9,11\n17-Jul-2015 v0.70: Move 11>12, add 11,13,14\n01-Aug-2015 v1.00: Move a lot, change 14, add 10,13,17\n)\n\n=======\nOBJECTS\n=======\nbackground\nlightgreen yellow\n00000\n00010\n00000\n01000\n00000\n\nwall\ndarkgreen green\n01110\n10001\n01110\n10001\n00000\n\nlevel0\ndarkgreen green\n01100\n10010\n10010\n10010\n01100\n\nlevel1\ndarkgreen green\n00100\n01100\n00100\n00100\n01110\n\nlevel2\ndarkgreen green\n01100\n10010\n00100\n01000\n11110\n\nlevel3\ndarkgreen green\n11100\n00010\n01100\n00010\n11100\n\nlevel4\ndarkgreen green\n00100\n01100\n10100\n11110\n00100\n\nlevel5\ndarkgreen green\n11110\n10000\n11100\n00010\n11100\n\nlevel6\ndarkgreen green\n01100\n10000\n11100\n10010\n01100\n\nlevel7\ndarkgreen green\n11110\n00010\n00100\n01000\n01000\n\nlevel8\ndarkgreen green\n01100\n10010\n01100\n10010\n01100\n\nlevel9\ndarkgreen green\n01100\n10010\n01110\n00010\n11100\n\nplayer\nblack orange red blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nrock\ndarkbrown brown orange\n.112.\n01112\n01112\n01111\n.000.\n\npaper\nlightgray gray\n0001.\n00001\n00000\n00000\n00000\n\npaperborderl\nwhite\n0....\n0....\n0....\n0....\n0....\n\npaperborderd\nwhite\n.....\n.....\n.....\n.....\n00000\n\npaperborderld\nwhite\n.....\n.....\n.....\n.....\n0....\n\npapernexttoborderl\ntransparent\n\npapernexttoborderd\ntransparent\n\npapernofold\nlightgray\n...00\n....0\n.....\n.....\n.....\n\nscissorsu\ndarkgray gray red darkred\n1...1\n01.10\n.010.\n22.22\n23.23\n\nscissorsl\ndarkgray gray red darkred\n10.22\n.1023\n..1..\n.1022\n10.23\n\nscissorsd\ndarkgray gray red darkred\n22.22\n23.23\n.010.\n01.10\n1...1\n\nscissorsr\ndarkgray gray red darkred\n22.01\n2301.\n..1..\n2201.\n23.01\n\ngem\nblue lightblue\n.....\n.011.\n00001\n.000.\n..0..\n\nstar\ndarkred red\n.....\n.011.\n00001\n.000.\n..0..\n\nnostar\ndarkgreen green\n00000\n01110\n11111\n01110\n00100\n\nstarcover\ndarkred red\n.....\n.011.\n00001\n.000.\n..0..\n\nexit\nblue lightblue\n.001.\n01011\n00011\n00101\n.011.\n\nexitholder\ntransparent\n\nstartlevel\ntransparent\n\nskipcheck\ntransparent\n\nnextstar\ntransparent\n\nprocessedstar\ntransparent\n\n======\nLEGEND\n======\n. = background\n# = wall\no = player and startlevel\ng = gem\ne = exit and exitholder\nr = rock\np = paper\nw = scissorsu\na = scissorsl\ns = scissorsd\nd = scissorsr\n0 = wall and level0\n1 = wall and level1\n2 = wall and level2\n3 = wall and level3\n4 = wall and level4\n5 = wall and level5\n6 = wall and level6\n7 = wall and level7\n8 = wall and level8\n9 = wall and level9\n* = star\n\nscissors = scissorsu or scissorsl or scissorsd or scissorsr\nobject = wall or player or rock or paper or scissors or gem or star or exitholder\nlvnum = level0 or level1 or level2 or level3 or level4 or level5 or level6 or level7 or level8 or level9\npaperborder = paperborderl or paperborderd or paperborderld or papernofold or papernexttoborderl or papernexttoborderd\nsprites = lvnum or paperborder\n\n======\nSOUNDS\n======\nplayer cantmove 88720304\n\nrock move 12612307\npaper move 96873507\nscissors move 93218507\n\nrock destroy 98086501\npaper destroy 41726709\nscissors destroy 5523702\ngem destroy 73128500\nstar destroy 64247508\n\nundo 28911504\nsfx0 13629103\nsfx9 31899108 (skip check)\nendlevel 18800703\n\n===============\nCOLLISIONLAYERS\n===============\nprocessedstar, nextstar, startlevel, skipcheck\npapernexttoborderd\npapernexttoborderl\nbackground\nexit\nobject\nlvnum, nostar\nstarcover\npaperborderl\npaperborderd\npaperborderld\npapernofold\n\n=====\nRULES\n=====\n(LEVEL START)\nright [startlevel][lvnum|no lvnum] -> [startlevel][lvnum|nextstar]\nright [startlevel][star no processedstar][nextstar|] -> [startlevel][star processedstar][nostar|nextstar]\n[startlevel][nextstar] -> [startlevel][]\n[startlevel][processedstar] -> [startlevel][]\nright [startlevel][lvnum|nostar] -> [startlevel][lvnum|nostar nextstar]\n[startlevel] -> []\n\n(STUFF)\n[action player skipcheck] -> [player] win\n[orthogonal player skipcheck] -> [orthogonal player]\n[action player no skipcheck] -> [player skipcheck] sfx9\n[skipcheck] -> message ********** SKIP LEVEL? *********** * - ACTION TWICE to CONFIRM * * - ACTION then MOVE to CANCEL *\n\n(MOVEMENT)\nstartloop\n(rock)\n[> player|rock] -> [> player|> rock]\n(scissors)\ndown [> object|scissors no scissorsu] -> [> object|> scissors]\ndown [> scissors|scissorsu] -> [> scissors|> scissorsu]\ndown [> gem|scissorsu] -> [> gem|> scissorsu]\nright [> object|scissors no scissorsl] -> [> object|> scissors]\nright [> scissors|scissorsl] -> [> scissors|> scissorsl]\nright [> gem|scissorsl] -> [> gem|> scissorsl]\nup [> object|scissors no scissorsd] -> [> object|> scissors]\nup [> scissors|scissorsd] -> [> scissors|> scissorsd]\nup [> gem|scissorsd] -> [> gem|> scissorsd]\nleft [> object|scissors no scissorsr] -> [> object|> scissors]\nleft [> scissors|scissorsr] -> [> scissors|> scissorsr]\nleft [> gem|scissorsr] -> [> gem|> scissorsr]\n(paper)\n rigid down [> object no rock no scissorsd|paper] -> [> object|> paper]\n+ rigid right [> object no rock no scissorsr|paper] -> [> object|> paper]\n+ rigid up [> object no rock no scissorsu|paper] -> [> object|> paper]\n+ rigid left [> object no rock no scissorsl|paper] -> [> object|> paper]\n+ rigid [orthogonal paper|paper] -> [orthogonal paper|orthogonal paper]\n(gem/star)\n[> player|gem] -> [> player|]\n[> player|star] -> [> player|processedstar]\n[> object|gem] -> [> object|> gem]\n[> object|star] -> [> object|> star]\nendloop\n(exit)\n[> player|exitholder] -> [> player|]\n\n(INTERACTION)\n(rock/paper)\n[> rock|stationary paper] -> [|paper]\n[> paper|stationary rock] -> [> paper|]\n(paper/scissors)\ndown [> paper|stationary scissorsu] -> [|scissorsu]\ndown [> scissorsd|stationary paper] -> [> scissorsd|]\nright [> paper|stationary scissorsl] -> [|scissorsl]\nright [> scissorsr|stationary paper] -> [> scissorsr|]\nup [> paper|stationary scissorsd] -> [|scissorsd]\nup [> scissorsu|stationary paper] -> [> scissorsu|]\nleft [> paper|stationary scissorsr] -> [|scissorsr]\nleft [> scissorsl|stationary paper] -> [> scissorsl|]\n(scissors/rock)\ndown [> scissorsd|stationary rock] -> [|rock]\ndown [> rock|stationary scissorsu] -> [> rock|]\nright [> scissorsr|stationary rock] -> [|rock]\nright [> rock|stationary scissorsl] -> [> rock|]\nup [> scissorsu|stationary rock] -> [|rock]\nup [> rock|stationary scissorsd] -> [> rock|]\nleft [> scissorsl|stationary rock] -> [|rock]\nleft [> rock|stationary scissorsr] -> [> rock|]\n\n(FINISH)\n(paper border)\nlate [paperborder] -> []\nlate left [paper|no paper] -> [paper paperborderl|]\nlate down [paper|no paper] -> [paper paperborderd|]\nlate up [paperborderl|paper] -> [paperborderl|paper papernexttoborderl]\nlate right [paperborderd|paper] -> [paperborderd|paper papernexttoborderd]\nlate [papernexttoborderl papernexttoborderd] -> [paperborderld]\nlate up [paper|paper] -> [paper papernofold|paper]\nlate right [paper|paper] -> [paper papernofold|paper]\n(star check)\nlate right [processedstar][nextstar|] -> [][starcover|nextstar]\n(exit check)\nlate [player exit][gem] -> sfx0\nlate [exit no player] -> [exit exitholder]\n\n=============\nWINCONDITIONS\n=============\nno gem\nall player on exit\n\n======\nLEVELS\n======\n(and unofficial titles!)\n\nmessage ROCKS are HEAVY\n\n(Rockfall)\n############\n#......#...#\n#.....rr...#\n##r##..#r.r#\n#...####rr.#\n#...##.r..r#\n#.o.#e..rr.#\n#...##..r..#\n01##########\n\nmessage BLUE GEMS are IMPORTANT\n\nmessage RED GEMS are DIFFICULT\n\n(Excavation)\n############\n#..........#\n#.g...r.rr.#\n##.##.rr.r.#\n#.e.##..rr.#\n#...#grr..##\n#.o.##.r.rg#\n#...##.*r.##\n02##########\n\nmessage GEMS are LIGHT\n\n(Gems in a Rock Pile)\n############\n#...#......#\n#.g..ergr..#\n#...##.#####\n##r##.grgr.#\n#...#.rgr*.#\n#.o.#.grgr.#\n#...#.rgrg.#\n03##########\n\nmessage PAPER is STICKY\n\n(Think Before You Stick)\n############\n#......*#e##\n#......#pp.#\n#ppp#..p..p#\n#p.p#.p.p.p#\n#...#.p..p.#\n#.o.#..pp..#\n#...#......#\n04##########\n\nmessage SCISSORS have SHARP BLADES\n\n(Ouch)\n############\n#..a.....###\n#..ag....###\n##d##...we.#\n#...#.a.s#.#\n#...#.s..#*#\n#.o.#....w.#\n#...#...#..#\n05##########\n\nmessage ROCK crushes SCISSORS\n\n(Demolition Derby)\n############\n#...#..#..##\n#.r.ad....##\n#...#..#.w*#\n##w##....w##\n#...##...w##\n#.o.#ew....#\n#...##w....#\n06##########\n\nmessage PAPER covers ROCK\n\n(One Versus Twenty-Two)\n############\n#.p.prrre#*#\n#...prr.r#r#\n##r##r.r.r.#\n#...#.r.r.r#\n#...#r.r.r.#\n#.o.#.rpr.r#\n#...#r.r.r.#\n07##########\n\nmessage SCISSORS cut PAPER\n\n(Big Paper is Useless)\n############\n#...p..e##*#\n#.p.p.a###p#\n#...p......#\n##w##...pp.#\n#...#.d.pp.#\n#.o.#...pp.#\n#...#......#\n08##########\n\nmessage ROCK must be PUSHED DIRECTLY\n\nmessage EVERYTHING ELSE can PUSH EACH OTHER\n\n(Light and Heavy)\n############\n#....r*..r.#\n#...g#r.#.e#\n#.dpp#g.ppp#\n##p###w.#..#\n#...#...#..#\n#.o.#......#\n#...#......#\n09##########\n\nmessage DISCOVER other SECRETS\n\nmessage GOOD LUCK\n\n(More Gems, More Rock Piles)\n#############\n#o...e#.....#\n#rgrgr#*rgrg#\n#grgrg#rgrgr#\n#ggrgrggrgrg#\n#rggrg#rgrgr#\n#grggr#gggrg#\n#.....#.....#\n10###########\n\n(Scissors Field)\n################\n#....#.....#e..#\n#.*.#.s..#a.#..#\n#...#.#.....#..#\n#s#s#...#...#..#\n#.........#.#s##\n#......#.....o.#\n#..............#\n11##############\n\n(Littered Boulders)\n############\n#...#...a..#\n#..g..#.#.e#\n#.rrr.rr##s#\n#..r.#....o#\n#.#r..rr##w#\n#..r..#.#..#\n#..r....a*.#\n12##########\n\n(Cleaning Job)\n###########\n#.....o#e.#\n#......#..#\n#..######s#\n#grggrgggr#\n#grrggrrrg#\n#rrgrrrggr#\n#.prrggrr*#\n#.rggrggrr#\n13#########\n\n(Clearing the Path)\n##############\n#p.........rr#\n#p...ss.aa.rr#\n#p...ss.aa.#r#\n#ppp...r...#*#\n#pop.dd.ww.###\n#p...dd.ww##e#\n#ppppp...rrrr#\n14############\n\n(A-maze-ing Paper)\n#################\n#..............r#\n#.ppppppppp.###.#\n#.p.....prp.#...#\n#.p.ppp...p.#.*.#\n#.p...pp..p.#...#\n#.ppp.ppppp.#####\n#.p...p...p.#...#\n#.pp.pp.p.p.#.e.#\n#.p.....p.o.a...#\n#.ppppppppp.#.w.#\n#...........#...#\n15###############\n\n(Exercising Into Shape)\n#############\n###.......#e#\n#....ppp..#r#\n#....ppp..o.#\n#....ppp....#\n#.#.........#\n#r#..w.a..###\n#*#.......###\n16###########\n\n(Surrounded)\n#######################\n#ppp....p....ppp......#\n#p.............p......#\n#p.............p......#\n#...p...p...p.........#\n#.....................#\n#...............#.....#\n#...............#.....#\n#p..p...p...p..p#.....#\n#...............#.....#\n#...............#..w..#\n#...............#..e..#\n#...p...p...p...#######\n#ppp...........p...ppp#\n#pop...........p...p*p#\n#ppp....p....ppp...ppp#\n17#####################\n\n(The Killer)\n##########\n#........#\n#.ppp....#\n#.prp.g..#\n#.ppp....#\n#....a...#\n###....aa#\n#ero.##*##\n18########\n\nmessage CONGRATULATIONS\n", [0, 0, 0, 0, 3, 3, 3, 3, 2, 2, 2, 2, 2, 3, 3, 3, 3, 0, 0, 0, 0, 2, 1, 1, 3, 3, 2, 2, 1, 0, 3, 0, 1, 2, 1, 0], "background wall:0,0,0,0,0,0,0,0,background level0 wall:1,0,background:2,2,\n2,2,2,2,2,background level4 wall:3,0,2,2,2,2,2,\n2,2,background nextstar nostar wall:4,0,2,2,2,2,2,2,2,0,\n0,background paper paperborderl papernexttoborderl papernofold:5,background paper paperborderd paperborderl papernofold:6,0,0,0,0,0,0,0,background paper paperborderd papernofold:7,2,\nbackground paper paperborderl papernexttoborderl:8,6,2,2,2,0,0,background paper paperborderld:9,6,2,background paper paperborderd papernexttoborderd papernofold:10,2,\n2,2,0,0,background star:11,0,background paper paperborderl papernofold:12,10,background player:13,2,2,0,\n0,0,12,7,2,2,2,2,0,0,background exit exitholder:14,background paper papernofold:15,\n10,2,2,2,2,0,0,0,background paper:16,10,2,2,\n2,2,0,0,0,0,0,0,0,0,0,0,\n", 8, "1627778623784.798"] ], [ `gallery: hazard golf`, - ["title Hazard Golf\nauthor Mark Richardson\nagain_interval 0.1\nrun_rules_on_level_start\nzoomscreen 14x13\n(verbose_logging)\n\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nHud\nBlack\n\nStroke\nLightGray Gray DarkGray\n...0.\n...0.\n..02.\n111..\n.12..\n\nOverPar\n#F22 #D00 #800\n...0.\n...0.\n..02.\n111..\n.12..\n\nPlayer\nWhite Pink DarkBlue Red LightGray\n.00..\n.11..\n22224\n.03.4\n.30.4\n\nBall\nWhite\n.....\n.....\n..0..\n.....\n.....\n\nAirBall\nWhite\n.....\n.00..\n.00..\n.....\n.....\n\nTee\nRed #A00\n.....\n.....\n0...0\n..1..\n.....\n\nHole\nBlack White\n..1..\n..1..\n..0..\n.....\n.....\n\nPin\nRed White\n..0..\n..00.\n..000\n..1..\n..1..\n\nGreen\n#6F6\n\nFairway\n#2F2\n\nRough\n#0D0\n\nWater\nBlue\n\nBridgeV\n#C83 #D94 #B72 #A61\n01110\n02220\n03330\n01110\n02220\n\nBridgeH\n#C83 #D94 #B72 #A61\n00000\n21321\n21321\n21321\n00000\n\nSand\n#FF4 #FF0 #DD0\n00022\n12110\n22120\n00121\n21001\n\nTree\nBrown #7F7 #3F3 #0B0\n.111.\n32221\n32221\n.333.\n..0..\n\nConcrete\n#AAA #999\n10000\n10000\n10000\n10000\n01111\n\nIce\n#FF8\n\nCrack\n#FFD\n....0\n0.00.\n.0.0.\n..0..\n..0..\n\nBrokenGlass\n#FFF #BBF #77F\n11020\n01100\n20202\n11001\n20110\n\nDuck\nWhite Yellow Gray\n.....\n...0.\n02001\n.000.\n.....\n\nAirDuck\nWhite Yellow Gray\n.....\n22.0.\n02201\n.000.\n.....\n\nBear\nRed Black #B72 #A61\n.....\n.222.\n22221\n22220\n3..3.\n\nAimH\nWhite\n.....\n.....\n.000.\n.....\n.....\n\nAimV\nWhite\n.....\n..0..\n..0..\n..0..\n.....\n\nCursor1\nTransparent Yellow\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nCursor2\nWhite\n.....\n..0..\n.000.\n..0..\n.....\n\nCursor3\nTransparent Yellow\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nCheatMessage\nTransparent\n\nBrokenGlassMessage\nTransparent\n\nHole12Message\nTransparent\n\nBlood\nRed\n0...0\n.0...\n00000\n0..0.\n...0.\n\nOutOfBounds\n#F88\n0...0\n.....\n.....\n.....\n0...0\n\nInit\nTransparent\n\n\n=======\nLEGEND\n=======\n\n/ = Stroke and Hud and Rough\n_ = Hud and Rough\n@ = Player and Rough\nY = Fairway and Tee and Ball and CheatMessage and Init\nW = Rough and BrokenGlassMessage\nZ = Rough and Duck and Hole12Message\nP = Hole and Green\n: = Green\n, = Fairway\n. = Rough\n~ = Water\n# = BridgeV\nH = BridgeH\n- = Sand\nT = Tree and Rough\nQ = Tree and Fairway\n+ = Concrete\n% = Ice\n\" = BrokenGlass\nd = Duck and Rough\ne = Duck and Fairway\nf = Duck and Green\ng = Duck and Water\nA = Bear and Rough\nB = Bear and Fairway\n* = Blood and Fairway\n(Hole planning)\nx = Rough\nc = Rough\n\nDeadly = Bear\nEdible = Player or Duck\nHitable = Ball or Duck or Bear\nAirHitable = AirBall or AirDuck\nSinkable = Ball or Player\nSwimable = Duck\nWalkStop = Water or Tree or BrokenGlass or OutOfBounds\nAirStop = Tree or OutOfBounds\nRollGo = Green or BridgeV or BridgeH or Concrete or Ice\nRollStop = AirStop or Duck or Player or Bear\nScore = Stroke or OverPar\nAim = AimH or AimV\nHit2 = Green or Fairway or Concrete or Ice or Rough or BridgeV or BridgeH or Water or Sand or BrokenGlass\nHit3 = Green or Fairway or Concrete or Ice or Rough or BridgeV or BridgeH or Water\nHit5 = Green or Fairway or Concrete or Ice\nAirDeco = Pin or OutOfBounds or CheatMessage or BrokenGlassMessage or Hole12Message\n\n\n=======\nSOUNDS\n=======\n\nAirBall Create 58489507\nAirDuck Create 60653709\nBlood Create 50259908\nCrack Create 93556707\nWater Create 48152908\nEndLevel 26251903\nsfx1 26251903 (Sink ball)\nsfx2 96277908 (Splash)\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground (I don't need this layer)\nRollGo, Hit2 (Surfaces)\nTee, Hole, Crack, Blood (Ground decoration)\nHitable (Ground objects)\nPlayer, Tree, Bear (Obstacles)\nAirHitable (Airborne objects)\nAirDeco (Air decoration)\nCursor1, Cursor2, Cursor3, Init (Cursors)\nHud (Hud underlay)\nAim, Stroke, OverPar (Hud overlay)\n\n\n======\nRULES\n======\n\n(Decoration)\nup[Init][Hole|no Pin]->[Init][Hole|Pin]\n[Init][no AirDeco]->[Init][left OutOfBounds]\nleft[Init][||||||left OutOfBounds|||||||]->[Init][||||||down OutOfBounds|||||||]\ndown[Init][||||||down OutOfBounds||||||]->[Init][||||||||||||]\n[Init][moving OutOfBounds]->[Init][OutOfBounds]\n[Init]->[]\n\n(Cheat)\nup[moving Player][OverPar|OverPar][CheatMessage]->[moving Player][OverPar|OverPar][]message Psst... If you want to cheat, just walk up the hole and press X.\n[action Player Hole][OverPar]->[action Player Hole][]\n[action Player Hole][Ball]->[Player Hole Ball][]again message ♪ Nobody's watching, and... Hooray! I scored par!\n\n(Dead)\n[Edible|Deadly]->[Blood|Deadly]\n\n(Adjust aim)\n[moving Player][Cursor2]->[Player][moving Cursor2]\n[> Cursor2|Cursor1][Aim]->[> Cursor2|Cursor1][]\n[> Cursor2|Cursor1]->[|]\n[action Cursor2 Hitable]->cancel\n\n(Ready swing)\n[> Player|Hitable]->[Player|^ Hitable action Cursor1]\n[> Hitable Hit2 action Cursor1 |no AirStop no AimH]->[> Hitable Hit2 Cursor1|AimH Cursor2]\n[> Hitable Hit2|AimH |no AirStop no AimH]->[> Hitable Hit2|AimH|AimH]\n[> Hitable Hit3|AimH|AimH |no AirStop no AimH]->[> Hitable Hit3|AimH|AimH|AimH]\n[> Hitable Hit5|AimH|AimH|AimH |no AirStop no AimH]->[> Hitable Hit5|AimH|AimH|AimH|AimH]\n[> Hitable Hit5|AimH|AimH|AimH|AimH|no AirStop no AimH]->[> Hitable Hit5|AimH|AimH|AimH|AimH|AimH]\n[vertical Hitable][AimH]->[vertical Hitable][AimV]\n[action Cursor1]->[] \n[> Hitable]->[Hitable]\n\n(Swim)\n[moving Player][stationary Swimable Water]->[moving Player][randomdir Swimable Water]\n[Cursor1][moving Swimable]->[Cursor1][Swimable]\n[> Swimable|no Water]->[Swimable|]\n\n(Cancel aim)\n[Player|Cursor1 Ball][> Cursor2][Aim]->[> Player|Cursor1 Ball][> Cursor2][]\n[Player|Cursor1][< Cursor2][Aim]->[< Player|Cursor1][< Cursor2][]\n[Player|Cursor1 Ball][> Cursor2]->[> Player|Ball][]\n[Player|Cursor1][< Cursor2]->[< Player|][]\n[> Cursor2|no Aim]->[Cursor2|]\n\n(Move ball)\n[Cursor1|stationary Cursor3 stationary Ball RollGo|no RollStop]->[> Cursor1|> Cursor3 > Ball RollGo|]again\n[Cursor1|stationary Cursor3 stationary Ball]->[|Ball]\nlate[Cursor1 AirBall|Cursor3 Ice]->[Cursor1|Cursor3 Ice Crack]\nlate[Cursor1 AirBall|Cursor3]->[Cursor1|Cursor3 Ball]again\nlate[Cursor1 AirDuck|Cursor3]->[|Duck]\n[Cursor1 AirHitable|...|Cursor3]->[> Cursor1 > AirHitable|...|Cursor3]again\n\n(Sink)\nlate[Player Ice Crack]->[Player Water]again\n[Water Sinkable]->[Water]sfx2\n\n(Hit ball)\n[action Cursor2][Aim]->[action Cursor2][]\nup[Cursor1 Ball][action Cursor2][Stroke|no Stroke]->[Cursor1 AirBall][Cursor3][|]again\nup[Cursor1 Ball][action Cursor2][OverPar|Hud no OverPar]->[Cursor1 AirBall][Cursor3][OverPar|Hud OverPar]again\nup[Cursor1 Ball][action Cursor2][Hud||||||||||||Hud]->[Cursor1 AirBall][Cursor3][Hud OverPar||||||||||||Hud]again\n[Cursor1 Duck][action Cursor2]->[Cursor1 AirDuck][Cursor3]again\n\n(Walk)\n[> Player|BrokenGlass][BrokenGlassMessage]->[Player|BrokenGlass][]message Ouch! That's broken glass!\n[> Player|WalkStop]->cancel\n[> Player][stationary Score]->[> Player][> Score]\n[> Player][stationary Hud]->[> Player][> Hud]\nlate[Player|Deadly]->again\n\n(Start Hole 12)\nlate down[Player Hole12Message][Hud||||||||||||Hud]->[Player][Hud|||||||||Stroke|Stroke|Stroke|Hud Stroke]message Hole 12, Par 4\n\n(Fail)\nlate [Ball Hole][OverPar]->[Ball Hole][OverPar]again sfx1 message I'm over par. Let's pretend that never happened and try again.\n[Ball Hole][OverPar]->restart\n\n\n==============\nWINCONDITIONS\n==============\n\nsome Player\nall Hole on Ball\nno OverPar\n\n\n=======\nLEVELS\n=======\n\nmessage What a lovely day to play a round of golf.\nmessage Hole 1, Par 3\n\n.......................\n.......................\n.......................\n..T....................\n...................T...\n.......................\n.........T.............\n..........,,,,,........\n......T..,,:::,,.......\n.........,:::::,.......\n........,,::P::,..+++++\n........,,,::::,.......\n.T......,,,,::,,.......\n.._.....,,,,,,,........\n.._.....,,,,,..........\n.._.....,,,,,.T........\n.._.T....,,,...........\n.._....................\n.._....................\n.._......@Y...T........\n.._T...................\n.._....................\n.._.......+.......T....\n../.......+............\n../..T....+............\n../.......+............\n..........+............\n\nmessage Hole 2, Par 4\n\n.....T................\n......................\n............T.........\n......................\n.......T.........T....\n......................\n...............T......\n..........,,,.........\n..T......,,:,,....T...\n.........,:P:,........\n.........,,:,,........\n.........,,,,,...T....\n........,,,,,--.......\n.....T..,,,----.......\n........,,,---........\n.........,,,,,........\n..T......,,,,,........\n..........,,,,,.......\n..........,,,,,...T...\n..........,,,,,.......\n......T..,,,,,........\n.........,,,,,........\n..._.....---,,,.......\nT.._....----,,,.......\n..._....--,,,,........\n..._.....,,,,.........\n..._T.................\n..._............T.....\n..._......@Y..........\n..._..................\n..._..T..............T\n.../.......+..........\n.../.......+..........\n.../.......+....T.....\n.T./.......+..........\n...........+..........\n\nmessage Hole 3, Par 5\n\n.....+.T..T..T..T........\n...T.+............T......\n.....+++++++++++.........\n...............+.........\n...T..T..T..T..+..T......\n.........................\n.........................\n..............,,,....T...\n..T..........,,:,,.......\n.............,:P:,.......\n.............,,:,,.......\n.............,,,,,.....T.\n.............,,,,,.......\n.........T...,,,,,.......\n...T.........,,,,,..T....\n.............,,,,........\n............,,,,.........\n............,,,,......T..\n.....T.....,,,,,.........\n._.........,,,,...T......\nT_........,,,,...........\n._......,,,,,............\n._......,,,,..........T..\n._.............T.........\n._.......................\n._T.....@Y...............\n._...............T.......\n./.......................\n./.......+.T...........T.\n./.......+...............\n./.......+.........T.....\n./...T...+...............\n.........+...............\n\nmessage Hole 4, Par 4\n\n..............T..+..........\n.................+..........\n.........T.......+..........\n.................+.....T..T.\n.....T...........+..T.......\n.................+......~~~~\n......T.....T.T..+.~~g~~~~~~\n..........T.....~#~~~~g~~~..\n..T.....T....~~~~#~~~~......\n...........~~~~~.,,,....T.T.\n......T..~~~~~.,,,:,,.T.....\n....T...~~~~.,,,,:P:,.......\n......~~~~.,,,,,,,:,,...T...\n._T..~~~~~,,,,,,,,,,........\n._..~~~~~,,,,,,,............\n._T.~~~.,,,,,,........T.....\n._..~~~.,,,.................\n._.~~~~.........T...........\n._.~g~~.....................\n._.~~~..@Y..................\n._.~~~......T.......T.......\n._~~~~......................\n./~~~~...+..................\n./~~~~...+........T.........\n./~~~....+.....T............\n./~~~....+..................\n..~~~....+..................\n\nmessage There's ducks on the fairway! Why am I paying green fees?\nmessage Hole 5, Par 3\n\n~~~~...T.................\n~~~~~~...T......T........\n++~~~~~~...T..........T..\n.++++~~~~~...T...........\n....++++~~~~...T...T.....\n.......+..~~~~...........\n............~~~..T.......\n.........,,,.~~~.........\n........,,:,,.~~~..T.....\n........,:P:,.~~~~....T..\n........,,:,,..~~~..T....\n......_.,,,,,...~~~......\n......_.,,e,,,,,~~~~.T...\n......_.,e,,,,,,,~~~.....\n......_..,,e,,,,,~~~.T...\n......_.......d..~~~.....\n......_..........~~~.T...\n......_......@Y..~~~.....\n......_.........~g~~.T...\n......_.........~~~......\n......_.......+~~~~.T....\n....../......++~~~.......\n....../......+~~~~.T..T..\n....../.....++~~~........\n............+~~~~.T......\n\nmessage What's that sparkly stuff?\nmessage Hole 6, Par 4\n\n........................\n...T....................\n..................T.....\n........................\n............T...........\n.......T................\n.....................T..\n....T....,,,...T........\n........,,:,,...........\n++++++..,:P:,.....T.....\n........,,:,,...........\n..T......,,,,,..........\n......._.,,,,,,.......T.\n......._\"\",,,,,\"\".......\n......._\"\",,,,,\"\".......\n...T..._....,,,.........\n......._............T...\n......._.T..............\n......._......@YW.++++++\n......._................\n.T....._................\n......./...T........T...\n......./................\n......./........T.......\n......./................\n.....T..................\n\nmessage Hole 7, Par 5\n\n...T.....T.......T.......T...\n.T...T.......T......T........\n........T........T.....T.....\n...T........T...T........T...\n.T....T...T..........T.......\n....T........T....T.....T....\n.T.....T........T..........T.\n....T......T..T...,,,.T......\n..T......T......T,,:,,....T..\n......T.....T....,:P:,..T....\n...T....\"\"...T.T.,,:,,..+++++\n._...T..\"\",,,,,..T,,,...T....\n._T.....,,,,,,,,T.,,,T....T..\n._...T..,,,,,\"\",.T,,,........\nT_.....T,,,T.,,,,,,,,.T...T..\n._..T.......T,,,,,\"\",...T....\n._T........T..,,,,\"\".........\n._....T.@Y......T....T.....T.\n._............T....T...T.....\n./.T.....T.....T.............\nT/....T.+...T....T...T...T...\n./......+T....T.......T....T.\n./..T...+....T....T......T...\n./....T.+..T..........T......\n.T......+T......T........T...\n\nmessage That's a bear sleeping there. I'd better not disturb him.\nmessage Hole 8, Par 5\n\n..............................\n..............................\n..............................\n..............................\n..............................\n..............................\n.T.T..........................\n.....T.T...........--.........\n+++......T.........---........\n~~+++++....T......,,---.......\n~~~~~~++++...T...,,:,--.......\n~~~~~~~~~+++.....,:P:,........\n~~~~~~~~~~~++++..,,:,,...T....\n...T~~~~~~~~#~~~~~,,,......T.T\nT........~~~#~~~g~~~~~~~~.....\n..T...---.....~~~~~~~~~~~~~~~~\nT.....----.........~~g~~~~~~~~\n.T.....---,,,,,,,,,,,...~~~~~~\n._.....,,,,,,,,,,,B,,,..T....T\n._T....,,,,,,,,,,,,,,,....T...\nT_.....,,,,,,,,,,,,---..T....T\n._.T....,,,,,,,,,,,----....T..\n._..................---..T....\n._..T......................T..\nT_......@Y..............T.....\n._.T.............T...T....T.T.\n./....T......T.....T....T.....\nT/..T....+.....T......T....T..\n./.T...T.+..T.T......T..T....T\n./...T...+.......T........T...\n./T......+.....T...T...T......\nT.....T..+...T...T.........T..\n\nmessage Oh. Now I see why the course isn't being maintained...\nmessage Hole 9, Par 5\n\n....T...T...T.......T....T.\n.T..T..........T.......T...\n.........T...T....T........\n......T............T....T..\n..T............T...........\n......T..T.T..T..........T.\n.T..T......................\n........T..T....,,,........\n....T..........,,:,,.......\n.T........T....,:P:,..+++++\n...T..T.....T..,,:,,.......\n........T.....,,,,,........\n..T..........,,,,,,........\n......T....,,,B,,,.........\n...T.....,,,,,,,,,.........\n........,,,B*,,--,.........\n.....T..,,,,,,,----........\n..T.....,,,,,,,.---........\n........,,,,,..............\n.._.T...,,,,,..............\n.._.....,,,,,..............\n.._.....,,,,,............T.\n.._......,,,.........T.T...\n.._................T....+++\n.._............T.T...++++~~\n.._......@Y..T....++++~~~~~\n.._............++++~~~g~~~.\n../....T....++++~~~~~~~....\n../T.T.......~~~~~~~....T.T\n.T/.......~g~~~~~.....T....\n../....~~~~~~~....T.T......\n../.~~~~~~~.....T..........\n.~~~~~~~....T.T............\n\nmessage Maybe I'll take up lawn bowls instead.\n\n",[2,3,4,0,3,1,3,0,0,0,0,2,2,3,3,3,1,4,2,3,3,3,0,0,4],"background outofbounds rough:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background outofbounds rough tree:1,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,\n1,0,0,1,0,0,0,0,0,0,0,0,0,1,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,\n0,background hud outofbounds rough:2,2,2,2,2,2,2,2,2,2,background hud outofbounds rough stroke:3,3,3,0,background concrete outofbounds:4,4,4,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,\n4,0,1,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,1,0,4,0,0,0,background rough:5,5,5,5,5,5,5,5,5,5,5,5,5,\n5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,4,0,0,0,5,5,5,5,5,\n5,5,5,5,5,5,5,5,5,5,background fairway:6,6,5,5,5,5,0,0,0,0,0,0,0,0,4,\n0,1,0,5,5,5,5,5,5,5,background rough tree:7,5,5,5,5,5,5,5,6,6,5,5,background cheatmessage fairway tee:8,5,0,\n4,4,4,4,4,1,0,4,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,\n6,6,6,5,5,5,5,0,0,0,0,0,0,0,0,4,0,0,0,5,5,5,5,5,5,\n5,5,5,5,5,5,6,6,6,6,6,5,5,background player rough:9,5,0,1,0,0,0,0,0,0,4,0,\n1,0,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,background ball rough:10,5,5,5,5,0,0,\n0,0,0,0,1,0,4,0,0,0,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,\n5,5,5,5,5,5,0,0,0,0,0,0,0,0,4,0,0,0,5,6,6,background green:11,6,6,6,\n6,6,6,6,6,6,6,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,4,4,4,\n0,5,6,background green pin:12,background green hole:13,11,6,6,6,6,6,6,6,6,5,5,5,5,7,5,5,5,0,0,0,\n0,0,0,1,0,0,0,0,0,5,6,6,11,6,6,6,6,6,6,5,5,5,5,5,5,\n5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,5,5,6,6,6,6,6,6,\n6,5,5,5,5,5,5,5,5,5,5,5,7,0,0,0,0,0,0,0,1,0,0,1,0,\n5,5,5,5,5,5,5,5,5,5,5,5,5,7,5,5,5,5,5,5,5,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,\n0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,\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,\n1,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,1,0,0,0,0,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,1,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,\n",6,"1627778649364.9995"] + ["title Hazard Golf\nauthor Mark Richardson\nagain_interval 0.1\nrun_rules_on_level_start\nzoomscreen 14x13\n(verbose_logging)\n\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nHud\nBlack\n\nStroke\nLightGray Gray DarkGray\n...0.\n...0.\n..02.\n111..\n.12..\n\nOverPar\n#F22 #D00 #800\n...0.\n...0.\n..02.\n111..\n.12..\n\nPlayer\nWhite Pink DarkBlue Red LightGray\n.00..\n.11..\n22224\n.03.4\n.30.4\n\nBall\nWhite\n.....\n.....\n..0..\n.....\n.....\n\nAirBall\nWhite\n.....\n.00..\n.00..\n.....\n.....\n\nTee\nRed #A00\n.....\n.....\n0...0\n..1..\n.....\n\nHole\nBlack White\n..1..\n..1..\n..0..\n.....\n.....\n\nPin\nRed White\n..0..\n..00.\n..000\n..1..\n..1..\n\nGreen\n#6F6\n\nFairway\n#2F2\n\nRough\n#0D0\n\nWater\nBlue\n\nBridgeV\n#C83 #D94 #B72 #A61\n01110\n02220\n03330\n01110\n02220\n\nBridgeH\n#C83 #D94 #B72 #A61\n00000\n21321\n21321\n21321\n00000\n\nSand\n#FF4 #FF0 #DD0\n00022\n12110\n22120\n00121\n21001\n\nTree\nBrown #7F7 #3F3 #0B0\n.111.\n32221\n32221\n.333.\n..0..\n\nConcrete\n#AAA #999\n10000\n10000\n10000\n10000\n01111\n\nIce\n#FF8\n\nCrack\n#FFD\n....0\n0.00.\n.0.0.\n..0..\n..0..\n\nBrokenGlass\n#FFF #BBF #77F\n11020\n01100\n20202\n11001\n20110\n\nDuck\nWhite Yellow Gray\n.....\n...0.\n02001\n.000.\n.....\n\nAirDuck\nWhite Yellow Gray\n.....\n22.0.\n02201\n.000.\n.....\n\nBear\nRed Black #B72 #A61\n.....\n.222.\n22221\n22220\n3..3.\n\nAimH\nWhite\n.....\n.....\n.000.\n.....\n.....\n\nAimV\nWhite\n.....\n..0..\n..0..\n..0..\n.....\n\nCursor1\nTransparent Yellow\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nCursor2\nWhite\n.....\n..0..\n.000.\n..0..\n.....\n\nCursor3\nTransparent Yellow\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nCheatMessage\nTransparent\n\nBrokenGlassMessage\nTransparent\n\nHole12Message\nTransparent\n\nBlood\nRed\n0...0\n.0...\n00000\n0..0.\n...0.\n\nOutOfBounds\n#F88\n0...0\n.....\n.....\n.....\n0...0\n\nInit\nTransparent\n\n\n=======\nLEGEND\n=======\n\n/ = Stroke and Hud and Rough\n_ = Hud and Rough\n@ = Player and Rough\nY = Fairway and Tee and Ball and CheatMessage and Init\nW = Rough and BrokenGlassMessage\nZ = Rough and Duck and Hole12Message\nP = Hole and Green\n: = Green\n, = Fairway\n. = Rough\n~ = Water\n# = BridgeV\nH = BridgeH\n- = Sand\nT = Tree and Rough\nQ = Tree and Fairway\n+ = Concrete\n% = Ice\n\" = BrokenGlass\nd = Duck and Rough\ne = Duck and Fairway\nf = Duck and Green\ng = Duck and Water\nA = Bear and Rough\nB = Bear and Fairway\n* = Blood and Fairway\n(Hole planning)\nx = Rough\nc = Rough\n\nDeadly = Bear\nEdible = Player or Duck\nHitable = Ball or Duck or Bear\nAirHitable = AirBall or AirDuck\nSinkable = Ball or Player\nSwimable = Duck\nWalkStop = Water or Tree or BrokenGlass or OutOfBounds\nAirStop = Tree or OutOfBounds\nRollGo = Green or BridgeV or BridgeH or Concrete or Ice\nRollStop = AirStop or Duck or Player or Bear\nScore = Stroke or OverPar\nAim = AimH or AimV\nHit2 = Green or Fairway or Concrete or Ice or Rough or BridgeV or BridgeH or Water or Sand or BrokenGlass\nHit3 = Green or Fairway or Concrete or Ice or Rough or BridgeV or BridgeH or Water\nHit5 = Green or Fairway or Concrete or Ice\nAirDeco = Pin or OutOfBounds or CheatMessage or BrokenGlassMessage or Hole12Message\n\n\n=======\nSOUNDS\n=======\n\nAirBall Create 58489507\nAirDuck Create 60653709\nBlood Create 50259908\nCrack Create 93556707\nWater Create 48152908\nEndLevel 26251903\nsfx1 26251903 (Sink ball)\nsfx2 96277908 (Splash)\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground (I don't need this layer)\nRollGo, Hit2 (Surfaces)\nTee, Hole, Crack, Blood (Ground decoration)\nHitable (Ground objects)\nPlayer, Tree, Bear (Obstacles)\nAirHitable (Airborne objects)\nAirDeco (Air decoration)\nCursor1, Cursor2, Cursor3, Init (Cursors)\nHud (Hud underlay)\nAim, Stroke, OverPar (Hud overlay)\n\n\n======\nRULES\n======\n\n(Decoration)\nup[Init][Hole|no Pin]->[Init][Hole|Pin]\n[Init][no AirDeco]->[Init][left OutOfBounds]\nleft[Init][||||||left OutOfBounds|||||||]->[Init][||||||down OutOfBounds|||||||]\ndown[Init][||||||down OutOfBounds||||||]->[Init][||||||||||||]\n[Init][moving OutOfBounds]->[Init][OutOfBounds]\n[Init]->[]\n\n(Cheat)\nup[moving Player][OverPar|OverPar][CheatMessage]->[moving Player][OverPar|OverPar][]message Psst... If you want to cheat, just walk up the hole and press X.\n[action Player Hole][OverPar]->[action Player Hole][]\n[action Player Hole][Ball]->[Player Hole Ball][]again message ♪ Nobody's watching, and... Hooray! I scored par!\n\n(Dead)\n[Edible|Deadly]->[Blood|Deadly]\n\n(Adjust aim)\n[moving Player][Cursor2]->[Player][moving Cursor2]\n[> Cursor2|Cursor1][Aim]->[> Cursor2|Cursor1][]\n[> Cursor2|Cursor1]->[|]\n[action Cursor2 Hitable]->cancel\n\n(Ready swing)\n[> Player|Hitable]->[Player|^ Hitable action Cursor1]\n[> Hitable Hit2 action Cursor1 |no AirStop no AimH]->[> Hitable Hit2 Cursor1|AimH Cursor2]\n[> Hitable Hit2|AimH |no AirStop no AimH]->[> Hitable Hit2|AimH|AimH]\n[> Hitable Hit3|AimH|AimH |no AirStop no AimH]->[> Hitable Hit3|AimH|AimH|AimH]\n[> Hitable Hit5|AimH|AimH|AimH |no AirStop no AimH]->[> Hitable Hit5|AimH|AimH|AimH|AimH]\n[> Hitable Hit5|AimH|AimH|AimH|AimH|no AirStop no AimH]->[> Hitable Hit5|AimH|AimH|AimH|AimH|AimH]\n[vertical Hitable][AimH]->[vertical Hitable][AimV]\n[action Cursor1]->[] \n[> Hitable]->[Hitable]\n\n(Swim)\n[moving Player][stationary Swimable Water]->[moving Player][randomdir Swimable Water]\n[Cursor1][moving Swimable]->[Cursor1][Swimable]\n[> Swimable|no Water]->[Swimable|]\n\n(Cancel aim)\n[Player|Cursor1 Ball][> Cursor2][Aim]->[> Player|Cursor1 Ball][> Cursor2][]\n[Player|Cursor1][< Cursor2][Aim]->[< Player|Cursor1][< Cursor2][]\n[Player|Cursor1 Ball][> Cursor2]->[> Player|Ball][]\n[Player|Cursor1][< Cursor2]->[< Player|][]\n[> Cursor2|no Aim]->[Cursor2|]\n\n(Move ball)\n[Cursor1|stationary Cursor3 stationary Ball RollGo|no RollStop]->[> Cursor1|> Cursor3 > Ball RollGo|]again\n[Cursor1|stationary Cursor3 stationary Ball]->[|Ball]\nlate[Cursor1 AirBall|Cursor3 Ice]->[Cursor1|Cursor3 Ice Crack]\nlate[Cursor1 AirBall|Cursor3]->[Cursor1|Cursor3 Ball]again\nlate[Cursor1 AirDuck|Cursor3]->[|Duck]\n[Cursor1 AirHitable|...|Cursor3]->[> Cursor1 > AirHitable|...|Cursor3]again\n\n(Sink)\nlate[Player Ice Crack]->[Player Water]again\n[Water Sinkable]->[Water]sfx2\n\n(Hit ball)\n[action Cursor2][Aim]->[action Cursor2][]\nup[Cursor1 Ball][action Cursor2][Stroke|no Stroke]->[Cursor1 AirBall][Cursor3][|]again\nup[Cursor1 Ball][action Cursor2][OverPar|Hud no OverPar]->[Cursor1 AirBall][Cursor3][OverPar|Hud OverPar]again\nup[Cursor1 Ball][action Cursor2][Hud||||||||||||Hud]->[Cursor1 AirBall][Cursor3][Hud OverPar||||||||||||Hud]again\n[Cursor1 Duck][action Cursor2]->[Cursor1 AirDuck][Cursor3]again\n\n(Walk)\n[> Player|BrokenGlass][BrokenGlassMessage]->[Player|BrokenGlass][]message Ouch! That's broken glass!\n[> Player|WalkStop]->cancel\n[> Player][stationary Score]->[> Player][> Score]\n[> Player][stationary Hud]->[> Player][> Hud]\nlate[Player|Deadly]->again\n\n(Start Hole 12)\nlate down[Player Hole12Message][Hud||||||||||||Hud]->[Player][Hud|||||||||Stroke|Stroke|Stroke|Hud Stroke]message Hole 12, Par 4\n\n(Fail)\nlate [Ball Hole][OverPar]->[Ball Hole][OverPar]again sfx1 message I'm over par. Let's pretend that never happened and try again.\n[Ball Hole][OverPar]->restart\n\n\n==============\nWINCONDITIONS\n==============\n\nsome Player\nall Hole on Ball\nno OverPar\n\n\n=======\nLEVELS\n=======\n\nmessage What a lovely day to play a round of golf.\nmessage Hole 1, Par 3\n\n.......................\n.......................\n.......................\n..T....................\n...................T...\n.......................\n.........T.............\n..........,,,,,........\n......T..,,:::,,.......\n.........,:::::,.......\n........,,::P::,..+++++\n........,,,::::,.......\n.T......,,,,::,,.......\n.._.....,,,,,,,........\n.._.....,,,,,..........\n.._.....,,,,,.T........\n.._.T....,,,...........\n.._....................\n.._....................\n.._......@Y...T........\n.._T...................\n.._....................\n.._.......+.......T....\n../.......+............\n../..T....+............\n../.......+............\n..........+............\n\nmessage Hole 2, Par 4\n\n.....T................\n......................\n............T.........\n......................\n.......T.........T....\n......................\n...............T......\n..........,,,.........\n..T......,,:,,....T...\n.........,:P:,........\n.........,,:,,........\n.........,,,,,...T....\n........,,,,,--.......\n.....T..,,,----.......\n........,,,---........\n.........,,,,,........\n..T......,,,,,........\n..........,,,,,.......\n..........,,,,,...T...\n..........,,,,,.......\n......T..,,,,,........\n.........,,,,,........\n..._.....---,,,.......\nT.._....----,,,.......\n..._....--,,,,........\n..._.....,,,,.........\n..._T.................\n..._............T.....\n..._......@Y..........\n..._..................\n..._..T..............T\n.../.......+..........\n.../.......+..........\n.../.......+....T.....\n.T./.......+..........\n...........+..........\n\nmessage Hole 3, Par 5\n\n.....+.T..T..T..T........\n...T.+............T......\n.....+++++++++++.........\n...............+.........\n...T..T..T..T..+..T......\n.........................\n.........................\n..............,,,....T...\n..T..........,,:,,.......\n.............,:P:,.......\n.............,,:,,.......\n.............,,,,,.....T.\n.............,,,,,.......\n.........T...,,,,,.......\n...T.........,,,,,..T....\n.............,,,,........\n............,,,,.........\n............,,,,......T..\n.....T.....,,,,,.........\n._.........,,,,...T......\nT_........,,,,...........\n._......,,,,,............\n._......,,,,..........T..\n._.............T.........\n._.......................\n._T.....@Y...............\n._...............T.......\n./.......................\n./.......+.T...........T.\n./.......+...............\n./.......+.........T.....\n./...T...+...............\n.........+...............\n\nmessage Hole 4, Par 4\n\n..............T..+..........\n.................+..........\n.........T.......+..........\n.................+.....T..T.\n.....T...........+..T.......\n.................+......~~~~\n......T.....T.T..+.~~g~~~~~~\n..........T.....~#~~~~g~~~..\n..T.....T....~~~~#~~~~......\n...........~~~~~.,,,....T.T.\n......T..~~~~~.,,,:,,.T.....\n....T...~~~~.,,,,:P:,.......\n......~~~~.,,,,,,,:,,...T...\n._T..~~~~~,,,,,,,,,,........\n._..~~~~~,,,,,,,............\n._T.~~~.,,,,,,........T.....\n._..~~~.,,,.................\n._.~~~~.........T...........\n._.~g~~.....................\n._.~~~..@Y..................\n._.~~~......T.......T.......\n._~~~~......................\n./~~~~...+..................\n./~~~~...+........T.........\n./~~~....+.....T............\n./~~~....+..................\n..~~~....+..................\n\nmessage There's ducks on the fairway! Why am I paying green fees?\nmessage Hole 5, Par 3\n\n~~~~...T.................\n~~~~~~...T......T........\n++~~~~~~...T..........T..\n.++++~~~~~...T...........\n....++++~~~~...T...T.....\n.......+..~~~~...........\n............~~~..T.......\n.........,,,.~~~.........\n........,,:,,.~~~..T.....\n........,:P:,.~~~~....T..\n........,,:,,..~~~..T....\n......_.,,,,,...~~~......\n......_.,,e,,,,,~~~~.T...\n......_.,e,,,,,,,~~~.....\n......_..,,e,,,,,~~~.T...\n......_.......d..~~~.....\n......_..........~~~.T...\n......_......@Y..~~~.....\n......_.........~g~~.T...\n......_.........~~~......\n......_.......+~~~~.T....\n....../......++~~~.......\n....../......+~~~~.T..T..\n....../.....++~~~........\n............+~~~~.T......\n\nmessage What's that sparkly stuff?\nmessage Hole 6, Par 4\n\n........................\n...T....................\n..................T.....\n........................\n............T...........\n.......T................\n.....................T..\n....T....,,,...T........\n........,,:,,...........\n++++++..,:P:,.....T.....\n........,,:,,...........\n..T......,,,,,..........\n......._.,,,,,,.......T.\n......._\"\",,,,,\"\".......\n......._\"\",,,,,\"\".......\n...T..._....,,,.........\n......._............T...\n......._.T..............\n......._......@YW.++++++\n......._................\n.T....._................\n......./...T........T...\n......./................\n......./........T.......\n......./................\n.....T..................\n\nmessage Hole 7, Par 5\n\n...T.....T.......T.......T...\n.T...T.......T......T........\n........T........T.....T.....\n...T........T...T........T...\n.T....T...T..........T.......\n....T........T....T.....T....\n.T.....T........T..........T.\n....T......T..T...,,,.T......\n..T......T......T,,:,,....T..\n......T.....T....,:P:,..T....\n...T....\"\"...T.T.,,:,,..+++++\n._...T..\"\",,,,,..T,,,...T....\n._T.....,,,,,,,,T.,,,T....T..\n._...T..,,,,,\"\",.T,,,........\nT_.....T,,,T.,,,,,,,,.T...T..\n._..T.......T,,,,,\"\",...T....\n._T........T..,,,,\"\".........\n._....T.@Y......T....T.....T.\n._............T....T...T.....\n./.T.....T.....T.............\nT/....T.+...T....T...T...T...\n./......+T....T.......T....T.\n./..T...+....T....T......T...\n./....T.+..T..........T......\n.T......+T......T........T...\n\nmessage That's a bear sleeping there. I'd better not disturb him.\nmessage Hole 8, Par 5\n\n..............................\n..............................\n..............................\n..............................\n..............................\n..............................\n.T.T..........................\n.....T.T...........--.........\n+++......T.........---........\n~~+++++....T......,,---.......\n~~~~~~++++...T...,,:,--.......\n~~~~~~~~~+++.....,:P:,........\n~~~~~~~~~~~++++..,,:,,...T....\n...T~~~~~~~~#~~~~~,,,......T.T\nT........~~~#~~~g~~~~~~~~.....\n..T...---.....~~~~~~~~~~~~~~~~\nT.....----.........~~g~~~~~~~~\n.T.....---,,,,,,,,,,,...~~~~~~\n._.....,,,,,,,,,,,B,,,..T....T\n._T....,,,,,,,,,,,,,,,....T...\nT_.....,,,,,,,,,,,,---..T....T\n._.T....,,,,,,,,,,,----....T..\n._..................---..T....\n._..T......................T..\nT_......@Y..............T.....\n._.T.............T...T....T.T.\n./....T......T.....T....T.....\nT/..T....+.....T......T....T..\n./.T...T.+..T.T......T..T....T\n./...T...+.......T........T...\n./T......+.....T...T...T......\nT.....T..+...T...T.........T..\n\nmessage Oh. Now I see why the course isn't being maintained...\nmessage Hole 9, Par 5\n\n....T...T...T.......T....T.\n.T..T..........T.......T...\n.........T...T....T........\n......T............T....T..\n..T............T...........\n......T..T.T..T..........T.\n.T..T......................\n........T..T....,,,........\n....T..........,,:,,.......\n.T........T....,:P:,..+++++\n...T..T.....T..,,:,,.......\n........T.....,,,,,........\n..T..........,,,,,,........\n......T....,,,B,,,.........\n...T.....,,,,,,,,,.........\n........,,,B*,,--,.........\n.....T..,,,,,,,----........\n..T.....,,,,,,,.---........\n........,,,,,..............\n.._.T...,,,,,..............\n.._.....,,,,,..............\n.._.....,,,,,............T.\n.._......,,,.........T.T...\n.._................T....+++\n.._............T.T...++++~~\n.._......@Y..T....++++~~~~~\n.._............++++~~~g~~~.\n../....T....++++~~~~~~~....\n../T.T.......~~~~~~~....T.T\n.T/.......~g~~~~~.....T....\n../....~~~~~~~....T.T......\n../.~~~~~~~.....T..........\n.~~~~~~~....T.T............\n\nmessage Maybe I'll take up lawn bowls instead.\n\n", [2, 3, 4, 0, 3, 1, 3, 0, 0, 0, 0, 2, 2, 3, 3, 3, 1, 4, 2, 3, 3, 3, 0, 0, 4], "background outofbounds rough:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background outofbounds rough tree:1,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,\n1,0,0,1,0,0,0,0,0,0,0,0,0,1,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,\n0,background hud outofbounds rough:2,2,2,2,2,2,2,2,2,2,background hud outofbounds rough stroke:3,3,3,0,background concrete outofbounds:4,4,4,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,\n4,0,1,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,1,0,4,0,0,0,background rough:5,5,5,5,5,5,5,5,5,5,5,5,5,\n5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,4,0,0,0,5,5,5,5,5,\n5,5,5,5,5,5,5,5,5,5,background fairway:6,6,5,5,5,5,0,0,0,0,0,0,0,0,4,\n0,1,0,5,5,5,5,5,5,5,background rough tree:7,5,5,5,5,5,5,5,6,6,5,5,background cheatmessage fairway tee:8,5,0,\n4,4,4,4,4,1,0,4,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,\n6,6,6,5,5,5,5,0,0,0,0,0,0,0,0,4,0,0,0,5,5,5,5,5,5,\n5,5,5,5,5,5,6,6,6,6,6,5,5,background player rough:9,5,0,1,0,0,0,0,0,0,4,0,\n1,0,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,background ball rough:10,5,5,5,5,0,0,\n0,0,0,0,1,0,4,0,0,0,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,\n5,5,5,5,5,5,0,0,0,0,0,0,0,0,4,0,0,0,5,6,6,background green:11,6,6,6,\n6,6,6,6,6,6,6,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,4,4,4,\n0,5,6,background green pin:12,background green hole:13,11,6,6,6,6,6,6,6,6,5,5,5,5,7,5,5,5,0,0,0,\n0,0,0,1,0,0,0,0,0,5,6,6,11,6,6,6,6,6,6,5,5,5,5,5,5,\n5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,5,5,6,6,6,6,6,6,\n6,5,5,5,5,5,5,5,5,5,5,5,7,0,0,0,0,0,0,0,1,0,0,1,0,\n5,5,5,5,5,5,5,5,5,5,5,5,5,7,5,5,5,5,5,5,5,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,\n0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,\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,\n1,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,1,0,0,0,0,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,1,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,\n", 6, "1627778649364.9995"] ], [ `gallery: collapsable sokoban`, - ["title Collapsable Sokoban\nauthor Franklin P. Dyer\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\n@ = Player\no = Crate\n& = Crate and Target\n+ = 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[Wall|...|Player] -> [> Wall|...|Player]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 3\n\n..........\n.////////.\n./....../.\n./....@./.\n./..+.../.\n./..o.../.\n./....../.\n./....../.\n.////////.\n..........\n\nmessage Level 2 of 3\n\n..........\n......+o..\n..........\n///////...\n....../...\n.@..../...\n....../...\n....../...\n///////...\n..........\n\nmessage Level 3 of 3\n\n.........@\n......./..\n./..o.....\n...../....\n......../.\n../.+..o..\n....+.....\n......./..\n..../.....\n..........\n\n\nmessage Congratulations! You win!\n",[3,3,3,0,0,1,2,3,3,2,1,2,2,3,3,3,3],"background:0,0,0,background wall:1,0,0,0,0,0,0,\n0,0,0,0,1,0,0,0,1,0,\n0,0,0,0,1,1,0,1,0,0,\n0,0,0,0,0,0,1,1,1,0,\n0,0,0,0,0,1,1,1,1,0,\n0,0,0,0,1,0,0,0,1,0,\n0,background target:2,0,0,1,1,0,0,0,1,\n0,background crate:3,0,0,0,0,0,0,0,background player:4,\n0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,\n",3,"1627778695403.4497"] + ["title Collapsable Sokoban\nauthor Franklin P. Dyer\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\n@ = Player\no = Crate\n& = Crate and Target\n+ = 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[Wall|...|Player] -> [> Wall|...|Player]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 3\n\n..........\n.////////.\n./....../.\n./....@./.\n./..+.../.\n./..o.../.\n./....../.\n./....../.\n.////////.\n..........\n\nmessage Level 2 of 3\n\n..........\n......+o..\n..........\n///////...\n....../...\n.@..../...\n....../...\n....../...\n///////...\n..........\n\nmessage Level 3 of 3\n\n.........@\n......./..\n./..o.....\n...../....\n......../.\n../.+..o..\n....+.....\n......./..\n..../.....\n..........\n\n\nmessage Congratulations! You win!\n", [3, 3, 3, 0, 0, 1, 2, 3, 3, 2, 1, 2, 2, 3, 3, 3, 3], "background:0,0,0,background wall:1,0,0,0,0,0,0,\n0,0,0,0,1,0,0,0,1,0,\n0,0,0,0,1,1,0,1,0,0,\n0,0,0,0,0,0,1,1,1,0,\n0,0,0,0,0,1,1,1,1,0,\n0,0,0,0,1,0,0,0,1,0,\n0,background target:2,0,0,1,1,0,0,0,1,\n0,background crate:3,0,0,0,0,0,0,0,background player:4,\n0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,\n", 3, "1627778695403.4497"] ], [ `gallery: skipping stones to lonely homes`, - ["title Skipping Stones to Lonely Homes\nauthor Alan Hazelden\nhomepage www.draknek.org\n\n(verbose_logging)\n\nrun_rules_on_level_start\n\nrealtime_interval 0.1\nagain_interval 0.1\n(key_repeat_interval 0.2)\n\nflickscreen 19x14\n\nnoaction\n\n(youtube UuKbLbC1zw0)\n\n========\nOBJECTS\n========\n\nBackground\nLightBlue Blue\n11111\n11101\n11111\n10111\n11111\n\nSand .\n#dfcc4f yellow\n11111\n01111\n11101\n11111\n10111\n\nTree\nBrown Green\n..11.\n111..\n1.011\n..0.1\n..0..\n\n(Hole\n#c5b446 #dfcc4f\n11111\n01111\n11101\n11111\n10111\n\nCrate\nBrown Orange\n00000\n01110\n01110\n01110\n00000)\n\nLily\nGreen LightGreen\n.111.\n10001\n10001\n10001\n.111.\n\n\nRipple1\nBlue LightBlue\n00000\n01110\n01010\n01110\n00000\n\nRipple2\nBlue LightBlue\n01110\n10001\n10001\n10001\n01110\n\nRippleH\nBlue LightBlue\n00000\n00000\n01110\n00000\n00000\n\nRippleH2\nBlue LightBlue\n00000\n01110\n01010\n01110\n00000\n\nRippleH3\ntransparent\n\nRippleH4\ntransparent\n\nRippleH5\ntransparent\n\nRippleV\nBlue LightBlue\n00000\n00100\n00100\n00100\n00000\n\nRippleV2\nBlue LightBlue\n00000\n01110\n01010\n01110\n00000\n\nRippleV3\ntransparent\n\nRippleV4\ntransparent\n\nRippleV5\ntransparent\n\n(WaterNew\nwhite LightBlue\n11111\n01111\n11101\n11111\n10111)\n\n\nTreasure\n#d0be4a Yellow Yellow\n.111.\n10201\n12021\n10201\n.111.\n\nTreasure2\n#dfcc4f yellow\n1111.\n01111\n11101\n11111\n10111\n\nTreasure3\n#dfcc4f yellow #d0be4a orange white\n1111.\n11111\n12211\n10011\n11111\n\nTreasure4\n#dfcc4f yellow #d0be4a orange white\n1111.\n12221\n10001\n10001\n11111\n\nTreasure5\n#dfcc4f yellow #d0be4a orange white\n1111.\n22222\n00000\n00000\n11111\n\nTreasure6\n#dfcc4f yellow #d0be4a orange white\n1222.\n20002\n00300\n00000\n10001\n\nTreasure7\n#dfcc4f yellow #d0be4a orange white\n1222.\n20002\n03430\n03330\n10001\n\nTreasureTaken\n#dfcc4f yellow #d0be4a\n1222.\n20002\n00000\n00000\n10001\n\n\n\nTarget\ntransparent\n\nTarget2\ntransparent\n\nRemoveTarget\ntransparent\n\n(\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTarget2\nRed\n.....\n.000.\n.0.0.\n.000.\n.....\n\nRemoveTarget\nRed\n.....\n.....\n..0..\n.....\n.....\n)\n\nPlayerNormal\nDarkRed #493c2b #000000\n..0..\n.111.\n01110\n02220\n.2.2.\n\nPlayerInWater\nDarkRed #493c2b #000000\n..0..\n.111.\n01110\n02220\n.....\n\nPebble\nGrey DarkGrey LightGrey\n.....\n..00.\n.0001\n.0111\n...1.\n\nSubmergedPebble\nDarkGrey #263546 Blue LightBlue\n22222\n22232\n20022\n00012\n01112\n\nU\ntransparent\n\nD\ntransparent\n\nL\ntransparent\n\nR\ntransparent\n\n\nAddLandLUD\nYellow\n0....\n.....\n.....\n.....\n0....\n\nAddLandLU\nYellow\n0....\n.....\n.....\n.....\n.....\n\nAddLandLD\nYellow\n.....\n.....\n.....\n.....\n0....\n\nAddLandRUD\nYellow\n....0\n.....\n.....\n.....\n....0\n\nAddLandRU\nYellow\n....0\n.....\n.....\n.....\n.....\n\nAddLandRD\nYellow\n.....\n.....\n.....\n.....\n....0\n\nRemoveLandLUD\nBlue\n0....\n.....\n.....\n.....\n0....\n\nRemoveLandLU\nBlue\n0....\n.....\n.....\n.....\n.....\n\nRemoveLandLD\nBlue\n.....\n.....\n.....\n.....\n0....\n\nRemoveLandRUD\nBlue\n....0\n.....\n.....\n.....\n....0\n\nRemoveLandRU\nBlue\n....0\n.....\n.....\n.....\n.....\n\nRemoveLandRD\nBlue\n.....\n.....\n.....\n.....\n....0\n\n\nFlowL1 ←\n#3166f7 #cbe4ef\n00100\n00000\n00001\n00000\n01000\n\nFlowL2\n#3166f7 #cbe4ef\n01000\n00000\n00010\n00000\n10000\n\nFlowL3\n#3166f7 #cbe4ef\n10000\n00000\n00100\n00000\n00001\n\nFlowL4\n#3166f7 #cbe4ef\n00001\n00000\n01000\n00000\n00010\n\nFlowL5\n#3166f7 #cbe4ef\n00010\n00000\n10000\n00000\n00100\n\nFlowR1 →\n#3166f7 #cbe4ef\n10000\n00000\n00100\n00000\n00001\n\nFlowR2\n#3166f7 #cbe4ef\n01000\n00000\n00010\n00000\n10000\n\nFlowR3\n#3166f7 #cbe4ef\n00100\n00000\n00001\n00000\n01000\n\nFlowR4\n#3166f7 #cbe4ef\n00010\n00000\n10000\n00000\n00100\n\nFlowR5\n#3166f7 #cbe4ef\n00001\n00000\n01000\n00000\n00010\n\nFlowU1 ↑\n#3166f7 #cbe4ef\n10000\n00001\n00000\n00100\n00000\n\nFlowU2\n#3166f7 #cbe4ef\n00001\n00000\n00100\n00000\n10000\n\nFlowU3\n#3166f7 #cbe4ef\n00000\n00100\n00000\n10000\n00001\n\nFlowU4\n#3166f7 #cbe4ef\n00100\n00000\n10000\n00001\n00000\n\nFlowU5\n#3166f7 #cbe4ef\n00000\n10000\n00001\n00000\n00100\n\nFlowD1 ↓\n#3166f7 #cbe4ef\n10000\n00001\n00000\n00100\n00000\n\nFlowD2\n#3166f7 #cbe4ef\n00000\n10000\n00001\n00000\n00100\n\nFlowD3\n#3166f7 #cbe4ef\n00100\n00000\n10000\n00001\n00000\n\nFlowD4\n#3166f7 #cbe4ef\n00000\n00100\n00000\n10000\n00001\n\nFlowD5\n#3166f7 #cbe4ef\n00001\n00000\n00100\n00000\n10000\n\nStopFlow\ntransparent\n\nShip_Left\n#eb8931 #732930 #2f2416 #ffffff\n..030\n.0331\n01121\n.0111\n..000\n\nShip_Right1\n#eb8931 #732930 #2f2416 #ffffff\n3330.\n12110\n12110\n11110\n0000.\n\nShip_Right2\n#eb8931 #732930 #2f2416 #ffffff\n3330.\n12110\n12110\n11110\n0000.\n\nShip_Sails\n#ffffff\n.....\n.....\n.....\n.00..\n00...\n\nDarkness\nblack\n\nDeath\nLightBlue Blue\n11111\n11101\n11111\n10111\n11111\n\nSpeedup\ntransparent\n\nLight_trigger\ntransparent\n\nLight\nwhite\n\nMyMistake\ntransparent\n\n=======\nLEGEND\n=======\n\nw = Background\n\nDirection = U or D or L or R\n\nPlayer = PlayerNormal or PlayerInWater\n\nRipple = Ripple1 or Ripple2 or RippleH or RippleV or RippleH2 or RippleV2 or RippleH3 or RippleV3 or RippleH4 or RippleV4 or RippleH5 or RippleV5\n\nFloor = Lily or Sand or SubmergedPebble or Ship_Left or Ship_Right1 or Ship_Right2\n\nFlowL = FlowL1 or FlowL2 or FlowL3 or FlowL4 or FlowL5\nFlowR = FlowR1 or FlowR2 or FlowR3 or FlowR4 or FlowR5\nFlowU = FlowU1 or FlowU2 or FlowU3 or FlowU4 or FlowU5\nFlowD = FlowD1 or FlowD2 or FlowD3 or FlowD4 or FlowD5\n\nFlow = FlowL or FlowR or FlowU or FlowD\n\nFlow5 = FlowL5 or FlowR5 or FlowU5 or FlowD5\n\nP = PlayerNormal and Sand\n* = Pebble and Sand\nO = Lily\n@ = Target and Sand and Light_trigger\nx = Target2 and Sand and Light_trigger\n% = RemoveTarget and Sand\n! = Target and Light_trigger\n? = RemoveTarget\nn = SubmergedPebble\nT = Treasure and Sand\nS = Ship_Left\n1 = Ship_Right1 and TreasureTaken\n2 = Ship_Right2\n/ = Ship_Sails\n$ = Tree and Sand\n[ = FlowR1 and Speedup\n] = FlowD1 and Speedup\n{ = FlowU1 and Speedup\n} = FlowL1 and Speedup\nY = Death\n\nAddLandL = AddLandLUD or AddLandLU or AddLandLD\nAddLandR = AddLandRUD or AddLandRU or AddLandRD\n\nRemoveLandL = RemoveLandLUD or RemoveLandLU or RemoveLandLD\nRemoveLandR = RemoveLandRUD or RemoveLandRU or RemoveLandRD\n\nShip = Ship_Left or Ship_Right1 or Ship_Right2\n\n\n=======\nSOUNDS\n=======\n\nsfx1 60997509 ( 13158309) (bounce pebble)\nsfx2 53480307 (push pebble)\nsfx3 45570309 (rock submerging)\nsfx4 73166102 (rock landing on ground)\nsfx5 56148307 (player move)\nsfx6 14433907 (player can't move)\nsfx7 58358104 (rock hits rock)\nsfx8 97863107 (dig 1)\nsfx9 75661907 (dig 2)\nsfx0 23172308 (whirlpool death)\n\n(63191902)\n\nEndLevel 32481708\n\nUndo 8098307\nRestart 7235102\n\n(Treasure3 Create 97863107\nTreasure6 Create 75661907)\n\n(Treasure2 Create 55366107)\n(Treasure3 Create 47174507)\n(Treasure4 Create 71981107)\n(Treasure5 Create 40321302)\n(Treasure6 Create 33433507)\n(Treasure7 Create 97863107)\n\nTreasureTaken Create 2479500\nLight Create 71916703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSand, FlowL, FlowR, FlowU, FlowD\nSubmergedPebble, StopFlow\nAddLandL, RemoveLandL\nAddLandR, RemoveLandR\nRipple, Tree\nLily\nTarget, Target2, RemoveTarget, Treasure, Treasure2, Treasure3, Treasure4, Treasure5, Treasure6, Treasure7, TreasureTaken\nPlayer, Pebble\nDirection\nShip_Left, Ship_Right1, Ship_Right2, Ship_Sails, Light_trigger\nMyMistake\nSpeedup, Death, Darkness, Light\n\n\n======\nRULES\n======\n\n(oops)\n\n[ MyMistake ] -> [ MyMistake Death ]\n\ndown [ MyMistake ] [ no Sand | . no Target|.|.|.|.|.|.|.|. no Target|.|.|no Sand|.|.|.|no Sand|no Sand|no Sand|.|.|no Sand ] -> [] [no Sand | . no Target|.|.|.|.|.|.|.|. no Target|.|.|no Sand|.|.|.|no Sand|no Sand|no Sand|.|.|no Sand] message Sorry but I screwed up and this puzzle might not be possible. Please start over? My fault not yours :( :( :(\n\n(Island border)\n\nleft [ no Sand no AddLandL | Sand ] -> [ no Sand AddLandLUD | Sand ]\nright [ no Sand no AddLandR | Sand ] -> [ no Sand AddLandRUD | Sand ]\n\nup [ AddLandLUD | no Sand ] -> [ AddLandLD | no Sand ]\nup [ AddLandRUD | no Sand ] -> [ AddLandRD | no Sand ]\n\ndown [ AddLandLUD | no Sand ] -> [ AddLandLU | no Sand ]\ndown [ AddLandRUD | no Sand ] -> [ AddLandRU | no Sand ]\n\ndown [ AddLandLD | no Sand ] -> [ | no Sand ]\ndown [ AddLandRD | no Sand ] -> [ | no Sand ]\n\nleft [ Sand no RemoveLandL | no Sand ] -> [ Sand RemoveLandLUD | no Sand ]\nright [ Sand no RemoveLandR | no Sand ] -> [ Sand RemoveLandRUD | no Sand ]\n\nup [ RemoveLandLUD | Sand ] -> [ RemoveLandLD | Sand ]\nup [ RemoveLandRUD | Sand ] -> [ RemoveLandRD | Sand ]\n\ndown [ RemoveLandLUD | Sand ] -> [ RemoveLandLU | Sand ]\ndown [ RemoveLandRUD | Sand ] -> [ RemoveLandRU | Sand ]\n\ndown [ RemoveLandLD | Sand ] -> [ | Sand ]\ndown [ RemoveLandRD | Sand ] -> [ | Sand ]\n\nright [ RemoveLandRU | AddLandLU ] -> [ RemoveLandRU | ]\nright [ RemoveLandRD | AddLandLD ] -> [ RemoveLandRD | ]\n\nright [ RemoveLandRUD | AddLandLU ] -> [ RemoveLandRUD | ]\nright [ RemoveLandRUD | AddLandLD ] -> [ RemoveLandRUD | ]\n\nleft [ RemoveLandLU | AddLandRU ] -> [ RemoveLandLU | ]\nleft [ RemoveLandLD | AddLandRD ] -> [ RemoveLandLD | ]\n\nleft [ RemoveLandLUD | AddLandRU ] -> [ RemoveLandLUD | ]\nleft [ RemoveLandLUD | AddLandRD ] -> [ RemoveLandLUD | ]\n\n(water redirection)\n\nleft [ stationary FlowL5 | no Flow no Sand no SubmergedPebble ] -> [ FlowL5 | action FlowL5 ]\nright [ stationary FlowR5 | no Flow no Sand no SubmergedPebble ] -> [ FlowR5 | action FlowR5 ]\nup [ stationary FlowU5 | no Flow no Sand no SubmergedPebble ] -> [ FlowU5 | action FlowU5 ]\ndown [ stationary FlowD5 | no Flow no Sand no SubmergedPebble ] -> [ FlowD5 | action FlowD5 ]\n\n[ action Flow ] -> [ Flow ]\n\nleft [ FlowL | Flow SubmergedPebble no Ripple ] -> [ action FlowL | Flow action SubmergedPebble ]\nright [ FlowR | Flow SubmergedPebble no Ripple ] -> [ action FlowR | Flow action SubmergedPebble ]\nup [ FlowU | Flow SubmergedPebble no Ripple ] -> [ action FlowU | Flow action SubmergedPebble ]\ndown [ FlowD | Flow SubmergedPebble no Ripple ] -> [ action FlowD | Flow action SubmergedPebble ]\n\n[ Flow5 StopFlow ] -> [ Flow5 action StopFlow ]\n\nleft [ action StopFlow FlowL | Flow ] -> [ | Flow StopFlow ]\nright [ action StopFlow FlowR | Flow ] -> [ | Flow StopFlow ]\nup [ action StopFlow FlowU | Flow ] -> [ | Flow StopFlow ]\ndown [ action StopFlow FlowD | Flow ] -> [ | Flow StopFlow ]\n\n[ action StopFlow Flow ] -> []\n\n[ StopFlow RemoveTarget Flow ] -> [ RemoveTarget ]\n\nleft [ action SubmergedPebble FlowL | Flow ] -> [ action SubmergedPebble FlowL | Flow StopFlow ]\nright [ action SubmergedPebble FlowR | Flow ] -> [ action SubmergedPebble FlowR | Flow StopFlow ]\nup [ action SubmergedPebble FlowU | Flow ] -> [ action SubmergedPebble FlowU | Flow StopFlow ]\ndown [ action SubmergedPebble FlowD | Flow ] -> [ action SubmergedPebble FlowD | Flow StopFlow ]\n\ndown [ FlowD action SubmergedPebble ] [ action FlowL | no Floor ] -> [ FlowD action SubmergedPebble ] [ FlowD1 | FlowD ]\nup [ Flow action SubmergedPebble ] [ action FlowL | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowU1 | Flow ]\ndown [ Flow action SubmergedPebble ] [ action FlowL | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowD1 | Flow ]\n\nup [ FlowU action SubmergedPebble ] [ action FlowR | no Floor ] -> [ FlowU action SubmergedPebble ] [ FlowU1 | FlowU ]\ndown [ Flow action SubmergedPebble ] [ action FlowR | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowD1 | Flow ]\nup [ Flow action SubmergedPebble ] [ action FlowR | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowU1 | Flow ]\n\nright [ FlowR action SubmergedPebble ] [ action FlowD | no Floor ] -> [ FlowR action SubmergedPebble ] [ FlowR1 | FlowR ]\nleft [ Flow action SubmergedPebble ] [ action FlowD | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowL1 | Flow ]\nright [ Flow action SubmergedPebble ] [ action FlowD | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowR1 | Flow ]\n\nleft [ FlowL action SubmergedPebble ] [ action FlowU | no Floor ] -> [ FlowL action SubmergedPebble ] [ FlowL1 | FlowL ]\nright [ Flow action SubmergedPebble ] [ action FlowU | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowR1 | Flow ]\nleft [ Flow action SubmergedPebble ] [ action FlowU | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowL1 | Flow ]\n\n[ action SubmergedPebble Flow ] -> [ SubmergedPebble ]\n\n(Currents anim)\n\n[ stationary Player ] [ stationary FlowL5 ] -> [Player] [ action FlowL1 ]\n[ stationary Player ] [ stationary FlowL4 ] -> [Player] [ action FlowL5 ]\n[ stationary Player ] [ stationary FlowL3 ] -> [Player] [ action FlowL4 ]\n[ stationary Player ] [ stationary FlowL2 ] -> [Player] [ action FlowL3 ]\n[ stationary Player ] [ stationary FlowL1 ] -> [Player] [ action FlowL2 ]\n\n[ stationary Player ] [ stationary FlowR5 ] -> [Player] [ action FlowR1 ]\n[ stationary Player ] [ stationary FlowR4 ] -> [Player] [ action FlowR5 ]\n[ stationary Player ] [ stationary FlowR3 ] -> [Player] [ action FlowR4 ]\n[ stationary Player ] [ stationary FlowR2 ] -> [Player] [ action FlowR3 ]\n[ stationary Player ] [ stationary FlowR1 ] -> [Player] [ action FlowR2 ]\n\n[ stationary Player ] [ stationary FlowU5 ] -> [Player] [ action FlowU1 ]\n[ stationary Player ] [ stationary FlowU4 ] -> [Player] [ action FlowU5 ]\n[ stationary Player ] [ stationary FlowU3 ] -> [Player] [ action FlowU4 ]\n[ stationary Player ] [ stationary FlowU2 ] -> [Player] [ action FlowU3 ]\n[ stationary Player ] [ stationary FlowU1 ] -> [Player] [ action FlowU2 ]\n\n[ stationary Player ] [ stationary FlowD5 ] -> [Player] [ action FlowD1 ]\n[ stationary Player ] [ stationary FlowD4 ] -> [Player] [ action FlowD5 ]\n[ stationary Player ] [ stationary FlowD3 ] -> [Player] [ action FlowD4 ]\n[ stationary Player ] [ stationary FlowD2 ] -> [Player] [ action FlowD3 ]\n[ stationary Player ] [ stationary FlowD1 ] -> [Player] [ action FlowD2 ]\n\n[ stationary Player Speedup action FlowL4 ] -> [ Player Speedup stationary FlowL5 ]\n[ stationary Player Speedup action FlowL3 ] -> [ Player Speedup stationary FlowL4 ]\n[ stationary Player Speedup action FlowL2 ] -> [ Player Speedup stationary FlowL3 ]\n[ stationary Player Speedup action FlowL1 ] -> [ Player Speedup stationary FlowL2 ]\n\n[ stationary Player Speedup action FlowR4 ] -> [ Player Speedup stationary FlowR5 ]\n[ stationary Player Speedup action FlowR3 ] -> [ Player Speedup stationary FlowR4 ]\n[ stationary Player Speedup action FlowR2 ] -> [ Player Speedup stationary FlowR3 ]\n[ stationary Player Speedup action FlowR1 ] -> [ Player Speedup stationary FlowR2 ]\n\n[ stationary Player Speedup action FlowU4 ] -> [ Player Speedup stationary FlowU5 ]\n[ stationary Player Speedup action FlowU3 ] -> [ Player Speedup stationary FlowU4 ]\n[ stationary Player Speedup action FlowU2 ] -> [ Player Speedup stationary FlowU3 ]\n[ stationary Player Speedup action FlowU1 ] -> [ Player Speedup stationary FlowU2 ]\n\n[ stationary Player Speedup action FlowD4 ] -> [ Player Speedup stationary FlowD5 ]\n[ stationary Player Speedup action FlowD3 ] -> [ Player Speedup stationary FlowD4 ]\n[ stationary Player Speedup action FlowD2 ] -> [ Player Speedup stationary FlowD3 ]\n[ stationary Player Speedup action FlowD1 ] -> [ Player Speedup stationary FlowD2 ]\n\n[ stationary Player Speedup FlowD5 ] [ stationary Death ] -> [ Player Speedup FlowD5 ] [ right Death ]\n\n[ > Death | ] -> [ | Death ]\n\n[ moving Death ] [ Player ] -> [ Death Player ] [ no Lily ] sfx0\n\n[ Lily no Player Speedup FlowD5 ] -> [ Speedup FlowD5 no Pebble ]\n\n(Gameplay)\n\n[ stationary Player ] [ FlowL5 Lily ] -> [Player] [ FlowL5 left Lily ]\n[ stationary Player ] [ FlowR5 Lily ] -> [Player] [ FlowR5 right Lily ]\n[ stationary Player ] [ FlowU5 Lily ] -> [Player] [ FlowU5 up Lily ]\n[ stationary Player ] [ FlowD5 Lily ] -> [Player] [ FlowD5 down Lily ]\n\n[ Ripple1 | moving Lily ] -> [ Ripple1 | Lily ] (makes sure that we don't miss any when skimming past a current)\n\n[ Ripple2 no SubmergedPebble | Lily | no Floor ] -> [ Ripple2 | > Lily | ]\nhorizontal [ RippleH4 | stationary Lily no Flow ] -> [ RippleH4 | > Lily ]\nvertical [ RippleV4 | stationary Lily no Flow ] -> [ RippleV4 | > Lily ]\n\n[ Ripple1 | moving Lily | no Floor ] -> [ Ripple1 | Lily | ] (makes sure that we don't miss any when skimming past an already moving lily)\n\n([ > Lily | stationary Lily ] -> [ > Lily | > Lily ])\n\n[ stationary Player ] [ RippleH4 ] -> [Player] []\n[ stationary Player ] [ RippleV4 ] -> [Player] []\n[ stationary Player ] [ RippleH3 ] -> [Player] [ RippleH4 ]\n[ stationary Player ] [ RippleV3 ] -> [Player] [ RippleV4 ]\n[ stationary Player ] [ RippleH2 ] -> [Player] [ RippleH3 ]\n[ stationary Player ] [ RippleV2 ] -> [Player] [ RippleV3 ]\n[ stationary Player ] [ RippleH ] -> [Player] [ RippleH2 ]\n[ stationary Player ] [ RippleV ] -> [Player] [ RippleV2 ]\n\n(horizontal [ Lily | RippleH | no Ripple2 ] -> [ Lily | | ]\nvertical [ Lily | RippleV | no Ripple2 ] -> [ Lily | | ])\n\n[ stationary Player ] [ Ripple2 ] -> [Player] []\n[ stationary Player ] [ Ripple1 ] -> [Player] [ Ripple2 ]\n\nhorizontal [ > Lily Pebble | no Floor no Flow ] -> [ RippleH | Lily Pebble ]\nhorizontal [ > Lily Player | no Floor no Flow ] -> [ RippleH | Lily Player ]\nhorizontal [ > Lily | no Floor no Flow ] -> [ RippleH | Lily ]\nvertical [ > Lily Pebble | no Floor no Flow ] -> [ RippleV | Lily Pebble ]\nvertical [ > Lily Player | no Floor no Flow ] -> [ RippleV | Lily Player ]\nvertical [ > Lily | no Floor no Flow ] -> [ RippleV | Lily ]\n\n[ > Lily Pebble | no Floor no Pebble ] -> [ | Lily Pebble ]\n+ [ > Lily Player | no Floor no Pebble ] -> [ | Lily Player ]\n+ [ > Lily no Pebble no Player | no Floor ] -> [ | Lily ]\n\n[ > Lily Pebble | no Floor Pebble ] -> [ Lily Pebble | Pebble ]\n[ > Lily Player | no Floor Pebble ] -> [ Lily Player | Pebble ]\n\n[ > Lily | no Floor ] -> [ | Lily ]\n\n[ > Lily | Floor ] -> [ Lily | Floor ]\n\n[ stationary Player ] [ U Pebble ] -> [Player] [ U up Pebble ]\n[ stationary Player ] [ D Pebble ] -> [Player] [ D down Pebble ]\n[ stationary Player ] [ L Pebble ] -> [Player] [ L left Pebble ]\n[ stationary Player ] [ R Pebble ] -> [Player] [ R right Pebble ]\n\n[ Pebble Direction Floor ] -> [ stationary Pebble Floor ] sfx4 (pebble moves onto moving lily)\n\n[ > Player | no Floor ] -> [ Player | ] (sfx6)\n\n[ stationary Pebble no Floor no Direction ] -> [ SubmergedPebble Ripple1 ] sfx3\n\n[ > Pebble Floor | stationary Pebble ] -> [ Pebble Floor | Pebble ]\n[ > Pebble | stationary Pebble ] -> [ stationary Pebble no Direction | Pebble ] sfx7\n\n[ > Player | Pebble Treasure | Floor no Pebble ] -> [ | Treasure Player | Pebble Floor ] sfx2\n[ > Player | Pebble | Floor no Pebble no Treasure7 no Ship no Tree ] -> [ > Player | | Pebble Floor ] sfx2\n[ > Player | Pebble | no Floor no Pebble ] -> [ > Player | > Pebble | ]\n\n[ > Pebble | Ship ] -> [ Pebble no Direction | Ship ]\n\n[ left Pebble ] -> [ L left Pebble ]\n[ right Pebble ] -> [ R right Pebble ]\n[ up Pebble ] -> [ U up Pebble ]\n[ down Pebble ] -> [ D down Pebble ]\n\n[ moving Pebble no Floor ] -> [ moving Pebble Ripple1 ] sfx1\n\n[ > Pebble Direction | ] -> [ | Pebble Direction ]\n\n[ stationary Pebble Direction Floor ] -> [ Pebble Floor ] sfx4 (landing on floor)\n\n[ moving Pebble ] -> []\n\n[ moving Lily Pebble ] -> []\n[ moving Lily ] -> []\n\n(late [ Player Water ] -> [ PlayerInWater Water ]\nlate [ Player no Water ] -> [ PlayerNormal no Water ])\n\n(victory)\n\n[ > Player | Tree no Ship ] [ Ship_Right1 ] -> [ Player | TreasureTaken ] [ Ship_Right1 Tree ] message A palm tree! You can repair your ship with this.\n\n[ > Player | Ship_Right1 no Tree ] -> [ Player | Ship_Right1 ] message Your ship is damaged. You need to find some WOOD to repair it.\n\n[ Lily Ship_Right1 ] -> win\n[ Lily Ship_Right2 ] -> win\n\n[ > Player | Ship_Right1 Tree ] -> [ | Player action Ship_Right1 Tree Darkness ]\n[ > Player | Ship_Right2 ] -> [ | Player action Ship_Right2 Darkness ]\n\n[ Player Ship_Right1 ] -> again\n[ Player Ship_Right2 ] -> again\n\n[ Darkness | no Darkness ] -> [ Darkness | Darkness ]\n\n[ action Ship_Right1 TreasureTaken ] -> [ Ship_Right1 Lily TreasureTaken ] message You repair your ship and sail away to your next adventure!\n\n[ Ship_Right1 StopFlow Treasure ] -> [ Ship_Right1 Lily ] message Treasures found: 1/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure2 ] -> [ Ship_Right1 Lily ] message Treasures found: 2/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure3 ] -> [ Ship_Right1 Lily ] message Treasures found: 3/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure4 ] -> [ Ship_Right1 Lily ] message Treasures found: 4/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure5 ] -> [ Ship_Right1 Lily ] message Treasures found: 5/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure6 ] -> [ Ship_Right1 Lily ] message Treasures found: 6/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure7 ] -> [ Ship_Right1 Lily ] message Treasures found: 7/7, Kept: 0/7\n\n[ Ship_Right1 SubmergedPebble ] -> [ Ship_Right1 StopFlow ] message You reluctantly leave your spoils behind. Later you try to return, but you never manage to find the mysterious islands again.\n\n[ action Ship_Right1 no TreasureTaken ] -> [ Ship_Right1 SubmergedPebble ] message You repair it as best you can, but your battered ship isn't seaworthy enough to carry heavy treasure!\n\n[ Ship_Right2 StopFlow ] [ Ship_right1 TreasureTaken ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 0/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 1/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure2 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 2/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure3 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 3/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure4 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 4/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure5 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 5/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure6 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 6/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure7 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 7/7\n\n[ Ship_Right2 SubmergedPebble ] -> [ Ship_Right2 StopFlow ] message You sail away on your new ship, onwards to your next adventure!\n\n[ action Ship_Right2 ] -> [ Ship_Right2 SubmergedPebble ] message You find a strange ship, conveniently unguarded. It's probably haunted, but it seems seaworthy enough to carry you and your treasure.\n\n(treasure)\n\n[ TreasureTaken Lily | RemoveTarget ] -> message But are you stuck here with it?\n\n[ TreasureTaken Lily no Ship ] -> [ TreasureTaken ]\n\n[ > Player | Treasure no Pebble ] -> [ Player | action Treasure ]\n\n[ Treasure6 Sand ] -> [ Treasure7 Sand ] sfx8 again\n[ Treasure5 Sand ] -> [ Treasure6 Sand ] again\n[ Treasure4 Sand ] -> [ Treasure5 Sand ] again\n[ Treasure3 Sand ] -> [ Treasure4 Sand ] again\n[ Treasure2 Sand ] -> [ Treasure3 Sand ] sfx9 again\n\n[ action Treasure Sand ] -> [ Treasure2 Sand ] again\n\n[ > Player | Treasure7 ] -> [ Player | action TreasureTaken Lily ]\n\n[ action TreasureTaken ] [ no Sand TreasureTaken ] -> [ TreasureTaken ] [ Treasure ] message Found treasure! (1/7)\n[ action TreasureTaken ] [ no Sand Treasure ] -> [ TreasureTaken ] [ Treasure2 ] message Found treasure! (2/7)\n[ action TreasureTaken ] [ no Sand Treasure2 ] -> [ TreasureTaken ] [ Treasure3 ] message Found treasure! (3/7)\n[ action TreasureTaken ] [ no Sand Treasure3 ] -> [ TreasureTaken ] [ Treasure4 ] message Found treasure! (4/7)\n[ action TreasureTaken ] [ no Sand Treasure4 ] -> [ TreasureTaken ] [ Treasure5 ] message Found treasure! (5/7)\n[ action TreasureTaken ] [ no Sand Treasure5 ] -> [ TreasureTaken ] [ Treasure6 ] message Found treasure! (6/7)\n[ action TreasureTaken ] [ no Sand Treasure6 ] -> [ TreasureTaken ] [ Treasure7 ] message Found treasure! (7/7)\n([ action TreasureTaken ] [ no Sand Treasure7 ] -> [ TreasureTaken ] [ SubmergedPebble Lily ] message Found treasure! (8/8))\n\n(checkpoints)\n\n[ > Player | no Pebble ] -> [ | Player ] sfx5\n\n([ > Player | Pebble ] -> sfx6) (can't move)\n\n\n[ Player Target ] -> [ Player action Target ]\n[ action Target | stationary Target ] -> [ action Target | action Target ]\n[ action Target | RemoveTarget ] -> [ action Target | action RemoveTarget ]\n[ action Target Light_trigger ] -> [ action Target action Light_trigger ]\n[ action Target ] -> [] checkpoint\n\n\n[ Pebble Target2 ] -> [ Pebble action Target2 ]\n[ action Target2 | stationary Target2 ] -> [ action Target2 | action Target2 ]\n[ Player stationary Target2 ] -> [ Player Target2 StopFlow ]\n[ Target2 StopFlow | Target2 ] -> [ Target2 StopFlow | Target2 StopFlow ]\n[ Target2 StopFlow ] -> [ no Light_trigger ]\n[ action Target2 | RemoveTarget ] -> [ action Target2 | action RemoveTarget ]\n[ action Target2 Light_trigger ] -> [ action Target2 action Light_trigger ]\n[ action Target2 ] -> [] checkpoint\n\n\n[ action RemoveTarget | stationary RemoveTarget ] -> [ action RemoveTarget | action RemoveTarget ]\n[ action RemoveTarget ] -> []\n\n\n[ Pebble RemoveTarget ] -> [ Pebble action RemoveTarget ]\n[ action RemoveTarget | stationary RemoveTarget ] -> [ action RemoveTarget | action RemoveTarget ]\n[ action RemoveTarget | Target ] -> [ action RemoveTarget | no Light_trigger ]\n[ action RemoveTarget | Target2 ] -> [ action RemoveTarget | no Light_trigger ]\n\n\n[ Light ] -> [] checkpoint\n\n\n[ Player Light_trigger ] -> [ Player action Light_trigger ]\n\n[ action Light_trigger | Sand ] -> [ action Light_trigger | action Light_trigger Sand ]\n\n[ Player action Light_trigger | Sand ] -> [ Player action Light_trigger | action Sand Light ]\n\n[ action Sand Light | stationary Sand ] -> [ action Sand Light | action Sand Light no Light_trigger ]\n\n[ Light | no Light no Death no Speedup ] -> [ Light | Light ] again\n\n[ Light action Light_trigger ] -> [ Light ]\n\n\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww↓wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nwww/wwwwwwwwwwwwwwwwwwwwwwwwwwww↓wwwwwwwwwww...wwwwwwwn@wwwwwwwwwwwwwwwwwwww\nwws2w..wwwwwwwwwwwww...wwwwwwwwo↓wwwwwwwwww.....w..ww.w%%%.wwwwww.wwwwwwwwww\nwww......wwwwwwwwwwww....wwwowww↓wwwwwww.ww....↑wx....ww.%@.www...wwwwwwwwww\nwww......wwww.wwwwwww....wwwwwww↓ww..ww..www.ww↑xx...wwww?..........wwwwwwww\nww....@@wwwww...wwww....ww/wwwww↓....ww..w...ww↑....wwwoww.......*...wwwwwww\nww....@wwwww.....www....ws1..www↓@@w...@....www↑www.wowwwwww...t...wwwwwwwww\nwww..wwwww...t%...www..www.pww.w↓www...@.*.wwww↑w.*.wwwwwwwww....wwwwwwwwwww\nwwwwwwwwww....%%.wwwww.www...*....www..@....www↑w..←←←←←←←←←←←←←←←←←←←←←←←←←\nwwwwwwww.....w.%%w..ww..www....w*..ww..@.wwwwow↑wwww@wwwwwwwwwwwwwwwwwwwwwww\nwwwwwwwww..wwwww%%%x*w....ww..ww...wwww.wwwowww↑www..wwwwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwww.....ww..wwwwwwww..wwwwwwwwwwww↑www...wwwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwww...wwwwwwwwwwwww.→→→→→→→→→→→→→↑nwww...wwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwwwww..wwwwwwwwwwwwwwwwwwwwwwwwwww...wwwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwwwww.x?wwwwwwwwwwwwwwwwwwwwwwwwww...wwwwwwwwwwwwwwwwwwwwww\nwww..w.wwwwwwwwwwwwwwww%wwwwwwwwwwwwwwwnwwwwwwwww..@..wwwwwwwwwwwww...wwwwww\nww....@wwwwwwwwwwwwwwww..wwwwwwwwwwwwwwwwwwww.....*.wwww..wwwwwwwww....wwwww\nww.*..wwwwwww..wwwwww....wwwwwwww...wwwwwwwww...wwwwwww....?wwwwwwww....wwww\nwww...wwwwww...wwwwwww...wwwwwww..*..wwwwwwww.*.wwwwwww....x.wwwwowwn...wwww\nwwww.wwwwwww..wwowwwwww...wwwww......wwwwwww...wowwwwwww...x*.wwwwwww.....ww\nwwwwwwwwwwww..wwwwwwww....wwwww..t.....wnwww..wwwowwwwww...x..wwwwwwww....ww\nwwwwwwwwwwwww..wwwwww.....wwwwww.......!owww↑wwwwww.ww.....x..wwwwwoww...www\nwwwwwwwwwwwww.....ww....wwwwwwwww.w....??wwn↑←←←←←........wx.wwww.www...wwww\nwwwwwwwwwwwwww.........wwwwwwwwwwwww...w?www@..www........w...w...ww@.....ww\nwwwwwwwwwwwwwwww.....wwwwwwwwwwwowwwwwww?ww!..ww....ww..wwww...*...www...www\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww?????...@..www..wwwwww......ww..wwww\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww.....wwwww.wwwwwwwww..wwwww!wwww\nwwwwwwwwwwwwwwwwnwwwwwwwwwwwwwwwwwwwwwwwwnwwwwwwwwwwwwwwwwwwwwwwwwwwwww...ww\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww@@@ww\nww...wwwwwwwwwwwwwwwww.wwwwwwwwwwwwwwwwwwwww....w..wwwwwwwwwwwwwwwwwww..*.ww\nw...*.wwwwowwwwwwwwwnr...wwwwww..wwwwwwwwww.*.....*.w??...wwwwwwwwwwwww..www\nw.*...wwwwwww....nwwww..@wwwwwww...wwwwwww....w.*.%x.%x....wwwww.....ww..www\nw..w.→→→→→→→*....wwnwww.@wwwwowww....wwwww..wwwww.%x.%x.....www..*....wwnwww\nww.w→↑.*w.ww....wwnwww..@@wwwwwww.*..wwwwwwwwwwwww%x.wwwww..www.wwww..wwnwww\nwwww↑....@@www..wnwwn...@@wwwwww...*xwwwwwwwwowwwww.wwwwww....wwwwwww.w.wwww\nwwww↑..*.@←←←←←←←←!←←.w@@ww..www....xwwwwwwwwwwwwwwww..www.....!wwoww..@wwww\nwwow↑w...wwnw....www↑nw@@ww.....*.xxx...wwwwwwwwwwww...www.......wwww....www\nwwww↑wwwwwww.xxx.wnw↑wwwwwwwwww...xw...%%%ww...wwwwwww..www......wwww....www\nwwww↑wwowwwww...wwwn↑wwowwwwwww.w..wwww%xx.w....ww.@ww.wwwww.w...wwwww..wwww\nwwww↑wwwwwwww..wwwww↑wnwwwwwwwwww.wwwww%x.w..........wwwwwwwww...wwwwwwwwwww\nwwww↑wwwwnwww..→→→→→↑nwwwwwwwwwww.wwwwww..www..www...wwwwwwww...wwwwwwwwwnww\nwwww↑wwwwwww...wwwwwwwwwwwwwnwwwwwwnwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwnwwwwwwww\nwwww↑wwwwwww...wwnwwwwwwwwwwwwwwwwwnwwwwwwwwwwwwwwwwwwwnwwwwwwwwwwwwwwnwwwww\nwwww↑..wwwwww.x.wwwwww...wwww*.w...@.wwnwwwwww..wwwwwwwwwwwwwwwnwwwnwwwwnwww\nwwww...wwwwwww...wwww....wwww..*.t...wwwnwwww....w..wwwwwnwwnnwwwnwwwwwnwwww\nwww...wwwwowww....www.t..wwwww.....wwwnwwwwwww......wwwwnwnwwwnww↓↓↓↓wwwwwnw\nwww.....wwwwww....ww...wwwwwwwwwwwwwwwwwwwwwwww*...wnwwwwwwwwwww→→→→→↓wwnwww\nwwww....@↓←?←.....ww..wwwnwwwwwwwwwwwwwww→→→→→→→→→→→→→→→→→→→→→?→↑↓←←←↓←wwwww\nwww.*..ww?ww↑w....ww@@wwn→→→→→→→→→→→→→→→→↑n@@wwwwwwwwwwwwwwwww?→↑↓[]↑←←wwnww\nwwww..wwn↓ww?ww..wwwwwwww↑wwwwwwwwwwwwwwwww..%wwwwww@@wnwwnwwwn→↑↓{}←↓←wwwwn\nwwwww.wow→?→↑wwwwwww...ww!wwwnwwwwwwwwwwww.*x%...ww...wwwnwwwww→↑→→→↑↓←wnwwn\nwwwww↑wwwwowww@wwwww.....↑wwwwnww.w.wwwwww.xx%*.www....wwwwwwnww↑←←←←←wnwwww\nwwwww↑wwwwwwww@@@w....*.w↑wwwwww.....wwwwww%%%..www....wwwwnwwwww↑↑↑↑nwwwwnw\nwwwww↑wwwwwww@@.......www↑wwwwww.....wwwowwww..wwwww..wwwwwwnwwnw↑nwwwwwywww\nwwwww↑wwowwww...ww...wwow↑wwww......wwwwwwww..wwww...wwwnwnwwwwww↑wwnwwwnwww\nwwwww↑wwwwwwwwwwwwwwwwnww↑www.......wwwwwnwwwwwww.....wwwwwwwwwwn↑wwwwwwwwww\nwwwww↑wwwnwwwwwwwwwwwwwww↑www.......wnwwwwwwwwwww.....wwwwwwwwwww↑wwwwwwwwww\nwwwww↑wwwwwwnwww..wwww...↑ww..$....wwwwwwww......@@@@@.wwwwwwwwww↑wwwwwwwwww\nwwwww↑wwww..www.x.nnww...↑w......wwwwwwww...*..wwww.....wwwwwwwww↑www...wwww\nwwwww↑wnww..*.....wwn...w↑w....wwwww.www..*.wwwwnwwww.*.www..wwww↑ww...wwwww\nwwwww↑www.....*..www...ww↑www..www...www..wwwwowwnwww..www.....ww↑nw.t.wwwww\nnwwww↑www.t.ww..wwww...ww↑wwwwwww....wwww.wwwwwwwwww...wwwww.*...↑w.....wwww\nwwwww↑ww...*wwwwwwwww....↑wwwwwww..←←←←←←←←←←←←←←←←←..wwwww...*..↑.*...wwwww\nwwwww↑www....wwwwwww.....↑wwwwwwww.wwwwwwww......www...wnn@.....w↑ww.wwwwwww\nwwwnw↑wwwww..wwwwwwww....↑wwwwwwwwwww..www.x%%%*.wwww..wwww....ww↑wwwwwwwwww\nwwwww↑wwwwwwwwwwwwwwwwn.w↑wwww..w*...%x.ww.%w...wwoww..wwwwww...w↑wwwwwwwwww\nwwwww↑wwnwwwwwwwwowwwwwww↑wwow..*..*.%x..w..ww..wwwww..wwwwwwwwww↑wwwwwwwwww\nwwwww↑wwwwwwwwwwwwwwwwwww↑wwwww...w....wwwwwwwwwwww....wwnwwowwww↑wwwwwwwwww\nwwnww↑wwwwwwwwwwwwwwnwwww↑wwwwwwwwwwwwwwwwwwwowwww....wwwwnwwwwow↑wwwwwwwwww\nwwwww↑wwwwwwwwwwwwwwwwwww↑wwwwwwwwwwwwwwwwwwwwwwwwwwwwwnwwwwwwwww↑wwwwwwwwww\n\n\n(\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwww..ww.wwwwww\nwwwww.......w..wwwww\nwwww...........wwwww\nwww..*.www....wwwwww\nww....wwwwwwwwwww..w\nw..*wwwwowwwwwww...w\nw..p.wwwwwwwww.w.t.w\nw.*..wwwwwwwww.....w\nww..wwwwwwwwww....ww\nwww.wwwwwwwwwwww.www\nwwwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwwww\nwww...ww.....wwwwww\nwwww....w.....wwwww\nwwwww..wwww*.wwwwow\nwwwww.wwoww..wwwwww\nwww...wwwww..wwwoww\nw...*.wwww..←←←←←←←\nw.p..wwwwwwww.wwwww\nww..wwwwwwww..wwwww\nwwwwwwwwwww..@..www\nwwwwwwwwwwww...wwww\nwwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwww\nwwwwwww...ww\nwww.....*.ww\nwww.*.wwwwww\nwww.p.wwwwww\nww...wowwwww\nww..wwwowwww\nww↑wwwwww..w\nww↑←←←←←.@.w\nww...www...w\nw...ww....ww\nw........www\nwww....wwwww\nwwwwwwwwwwww\n\nwwwwwwwwwwwwwwww\nwwwwwwwwww...www\nwwwwwwwwwww...ww\nw...wwwwwww....w\nw.*.wwwwoww....w\nw..*.wwwwwww.@.w\nww..wwwwwwww...w\nw...wwwwwwoww..w\nww..wwww.www..ww\nww.p.w...ww...ww\nwww...*...www.ww\nwwwww......wwwww\nwwwwwww..wwwwwww\nwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwww\nwwwwwww.....wwwwww\nwwww.w....*..wwwww\nwwww....wwww.wwwww\nwww....wwwwwwwwwww\nwww....wwowww..www\nwww....wwww......w\nwww....wwww..@..ww\nwwww.*wwwww....www\nwwwwwwwwwww...wwww\nwww.....wwww..wwww\nwww...*.wwwwwwwwww\nww...p..wwwwwwwwww\nwwwww...wwwwwwwwww\nwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwww\nwwwwww..w....www\nwwwww.*.....*.ww\nwwww....*.w....w\nwwww..p.wwwww..w\nwwww.*.wwwwww.ww\nwwww...wwwwwwwww\nwwwww.wwwwwowwww\nw...wwwwwwwwwwww\nww...wwwwwwwwwww\nww.wwwwwww..wwww\nwwwww.www.@.wwww\nwwww.........www\nwwww...www.wwwww\nwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwww\nwwwww..wwwwww..wrw\nwww...wwwwwww...ww\nw...pwwwowww...wrw\nw..*.wwwwwww.@..ww\nw.*...wwwwww.....w\nww..*.www..ww..w.w\nwww..*.....www.www\nwwww...wwwwwwwwwww\nwwwwww.wwwwwwwwwww\nwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwww...ww\nwwwwwwwwowwww.*...w\nww....wwwwwww...*.w\nww....*←←←←←←←.w..w\nww.....ww.w*.↑←w.ww\nwww..wwww..p..↑wwww\nwwwwwwwww..*..↑wwww\nww....wwww...w↑woww\nww.@...wwwwwww↑wwww\nwww...wwwwwoww↑wwww\nwwwwwwwwwwwwww↑wwww\n\nwwwwwwwwwwwwwwwww\nwwwwwwwwwwww..www\nwww..wwwwwww...ww\nww...wwwwowww...w\nw.p.*wwwwww.*...w\nw.....→→→↓.....ww\nw.*..w↑ww↓ww....w\nww..ww↑ww↓www..ww\nwwwwww↑←←←wow.www\nwwww.wwwowwww↑www\nww...wwwwwwww↑www\nww.@..wwwwwww↑www\nwwww..wwwwoww↑www\nwwwwwwwwwwwww↑www\n\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwww..wwww\nwww...wwwwww..wwrow\nww....wwwww.....www\nww..@.wwwww.*.p..ww\nwww...wwww.....*.ww\nwww..wwwwwwww.*.www\nwwwwwwwwwwwwww..www\n←←←←←←←←←←←←←←←←←←←\nwwwwwwww....wwwwwww\nwwwwwww......wwwwww\nwwwwwww..w...wwwwww\nwwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwwww\nwwwww...ww.ww.wwwww\nwww........w...wwww\nwww...*.........www\nww..*.wwww.......ww\nw...w.wwowwww.*...w\nww..wwwwwwwwww..p.w\n←←←←←←←←←←←←←←....w\nwwwww.ww...www....←\nwwww.......wwww...w\nwww...w.@.wwoww...w\nwwww.www..wwwww..ww\nwwwwwwwwwwwwww...ww\nwwwwwwwwwwwwwwwwwww\n)\n\n(wwwwwwwwwwwwwwwwwww\nw...wwwwwwwwwwwwwww\nw.*..wwwwwwwwwwwwww\nw...wwwwowwwwwwwwww\nwp*.wwwwwwwwwwwwwww\nw.*.wwwoooooooooooo\nw..←←←←←←←←←←←←←←←←\nwwww.wwwwwwwwwwwwww\nwww..wwwwwwwwwwwwww\nww..@..wwwwwwwwwwww\nwww...wwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww)\n\n(wwwwwwwwwww\nw....ww..ww\nw...*.....w\nww..ww.p..w\nwwwwww...ww\nwwwowww.www\nwwwwwwwwwww\n\nwwwwwww\nww...ww\nww.p..w\nwww.*.w\nwow..ww\nww...ww\nwwwwwww)\n\n",["tick","tick","tick","tick","tick","tick","tick","tick",0,"tick","tick",1,"tick","tick","tick",1,"tick","tick","tick","tick",2,"tick","tick",2,"tick",3,"tick","tick",3,"tick","tick","tick",2,"tick",3,"tick",0,"tick","tick",0,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick","tick","tick","tick",3,"tick","tick",3,"tick","tick","tick","tick",0,"tick",0,"tick","tick","tick",3,"tick","tick","tick","tick","tick","tick","tick"],"background: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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background submergedpebble:1,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,addlandrd background:2,background removelandlu sand:3,background sand:4,background removelandld sand:5,addlandru background:6,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,background ship_left:7,0,2,3,5,6,0,0,0,0,\n0,0,0,2,3,5,6,0,0,0,0,0,0,0,0,0,0,3,4,background pebble sand:8,4,background removelandld removelandrd sand:9,0,0,background lily:10,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,1,0,0,background ship_sails:11,background ship_right2:12,3,4,4,4,5,0,0,0,0,0,0,0,3,4,8,\n5,6,0,0,0,0,0,0,0,0,0,4,4,4,addlandlu addlandru background:13,0,0,0,0,0,0,0,0,0,0,0,2,3,5,addlandrud background:14,background removelandlud sand:15,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,4,4,4,4,background removelandrd sand:16,0,0,0,0,0,0,0,background removelandru sand:17,4,4,4,9,0,0,0,0,\n0,0,0,0,0,17,8,4,9,background flowr4:18,background flowu4:19,19,19,19,19,19,19,19,19,addlandrd background flowu4:20,3,4,4,4,8,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,4,4,4,4,addlandlu background:21,0,0,0,0,0,0,0,addlandld addlandrd background:22,4,4,16,21,0,0,0,0,0,0,0,0,0,addlandld background:23,\n17,16,addlandlu background flowr4:24,20,3,5,6,0,0,0,0,0,0,3,4,4,4,4,4,4,9,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,0,0,17,4,4,background light_trigger sand target:25,background light_trigger removelandrd sand target:26,0,0,0,0,0,0,0,0,background removelandlu removelandru sand:27,26,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,3,4,4,\n5,0,0,0,0,0,0,17,16,addlandlud background:28,4,4,16,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,4,4,26,21,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,18,background pebble removelandru sand:29,4,8,4,0,10,0,0,0,\n0,0,0,0,17,4,21,0,10,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,17,16,21,0,0,0,15,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,22,4,4,16,0,0,0,0,0,0,0,0,0,23,background light_trigger removelandrud sand target:30,\n0,1,0,0,0,0,10,0,0,0,0,0,0,2,15,6,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,27,25,26,21,0,0,0,1,0,0,0,0,0,0,background flowd4:31,background flowd4 removetarget:32,31,18,0,0,0,\n0,0,1,0,0,2,3,4,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,3,4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,18,23,30,addlandlu background flowl4:33,0,0,0,0,0,0,0,0,0,10,0,background flowl4:34,0,0,background flowr4 removetarget:35,10,0,0,0,0,0,0,3,4,\n4,background sand treasure:36,4,4,6,0,0,0,0,0,0,0,0,0,0,0,2,4,4,4,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,34,1,0,0,0,0,0,0,0,0,0,0,background flowl4 removetarget:37,0,0,18,0,0,0,0,0,0,0,17,4,4,4,8,4,5,0,\n0,0,0,0,0,0,0,0,0,2,3,4,4,16,0,0,0,0,0,0,0,2,3,4,5,6,0,0,0,0,0,0,0,0,0,2,background pebble removelandlu sand:38,5,0,34,2,15,6,0,2,3,5,6,0,0,0,34,19,background flowu4 removetarget:39,19,0,0,0,0,0,0,1,23,8,4,21,23,17,16,0,0,0,0,0,0,0,\n0,0,27,4,4,36,4,13,0,0,0,0,0,0,0,3,4,4,4,4,5,6,0,0,0,0,0,0,0,3,4,4,6,34,3,background light_trigger sand target2:40,4,4,4,4,4,5,6,0,2,15,6,0,0,0,2,background light_trigger removelandlu sand target:41,5,0,0,0,0,4,4,6,0,0,0,0,0,0,0,0,0,0,0,0,23,4,4,background removetarget sand:42,\n42,5,0,0,0,0,0,0,0,17,16,21,23,17,4,5,0,0,0,0,0,0,0,4,4,4,5,34,4,40,4,4,4,4,4,40,4,4,4,4,5,6,0,background light_trigger removelandlu removelandru sand target:43,25,25,4,0,0,0,2,4,8,5,0,0,0,0,0,0,0,0,0,0,0,0,0,17,4,4,42,42,6,0,0,0,\n0,0,0,0,0,0,0,23,4,4,6,0,0,0,0,0,0,4,4,4,16,34,4,40,16,21,18,0,23,17,4,4,4,4,4,5,0,23,25,4,16,0,0,2,3,4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,23,17,4,4,42,42,5,6,0,0,0,0,0,0,10,\n0,0,4,4,5,0,0,1,0,0,0,17,16,21,0,34,17,16,21,0,18,0,0,23,17,4,4,4,4,16,0,0,background light_trigger removelandru sand target:44,4,21,0,0,3,40,4,16,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,background removelandrud sand:45,21,22,42,4,5,0,0,0,0,0,0,0,0,0,17,4,4,0,\n0,0,0,0,0,1,0,0,1,34,0,0,0,0,18,0,1,0,23,17,4,4,16,21,0,0,22,4,6,0,0,17,4,16,21,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,3,42,4,4,0,0,0,0,0,0,0,0,0,23,4,4,0,0,0,0,0,0,0,\n0,1,0,background flowl4 light_trigger target:46,0,1,0,0,18,0,0,0,0,0,0,0,0,0,0,0,3,4,5,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,40,4,16,0,0,0,0,0,0,0,0,0,2,4,4,0,0,0,0,0,0,0,1,0,0,34,0,0,\n1,0,18,0,0,0,0,0,0,0,0,0,0,2,4,4,4,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,15,6,2,3,5,6,0,23,29,16,21,0,0,0,0,0,0,0,0,2,3,4,16,0,0,0,0,0,1,0,0,0,1,34,19,19,19,19,19,0,0,0,\n0,2,3,4,background light_trigger removelandld sand target:47,0,3,4,4,4,16,0,0,0,0,addlandrd background submergedpebble:48,3,5,14,15,6,0,0,0,1,0,0,0,4,4,4,4,4,5,6,0,0,0,0,0,0,0,0,15,6,0,2,3,4,4,21,0,0,0,0,0,background r:49,0,0,2,3,9,1,0,0,0,1,0,0,2,3,4,4,4,26,0,\n4,4,4,16,21,0,0,0,2,3,4,4,4,4,5,0,0,0,0,0,0,0,17,4,4,4,4,4,4,4,5,6,0,3,5,6,2,4,5,14,3,4,4,16,0,0,0,0,0,27,4,5,14,3,4,13,0,0,0,1,0,0,0,3,4,36,16,21,0,0,17,4,8,21,0,1,\n0,3,4,4,4,4,4,4,4,addlandru background submergedpebble:50,0,0,0,0,0,0,23,4,4,4,16,21,23,17,4,5,0,17,40,42,4,4,4,4,4,4,16,21,0,0,0,0,0,23,4,4,4,4,4,25,47,0,10,0,0,0,0,4,4,4,21,0,0,0,23,4,16,0,10,0,0,4,4,16,21,23,\n4,4,4,9,0,0,0,0,0,0,0,17,16,21,0,0,0,23,4,16,0,0,background removetarget:51,23,17,4,4,4,4,4,21,0,0,0,0,0,0,0,17,25,25,25,25,25,26,0,0,0,0,0,0,17,4,16,0,0,1,0,0,45,21,0,0,0,0,17,16,21,0,0,17,4,16,21,0,0,\n0,0,0,0,0,0,0,0,7,0,0,0,45,21,0,0,0,0,0,0,23,17,4,16,0,0,0,0,0,0,0,0,0,0,23,44,26,21,0,0,0,0,0,0,0,0,0,0,0,1,18,19,background flowu4 light_trigger target:52,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,0,0,0,0,\n0,11,addlandrd background ship_right1 treasuretaken:53,3,5,6,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,18,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,3,4,4,5,\n6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,5,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,0,2,3,5,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,45,28,4,4,5,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,4,0,0,0,0,1,0,0,0,0,0,0,18,0,0,0,0,0,0,0,2,3,4,4,6,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,2,4,4,16,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,10,0,0,23,4,0,0,0,0,0,0,38,5,6,0,0,18,0,1,0,0,0,2,3,4,4,4,4,5,0,0,0,0,0,0,0,0,0,background u:54,0,0,0,0,0,0,27,4,16,21,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,4,6,0,0,0,0,0,17,4,5,0,0,18,0,0,1,0,0,3,4,4,background sand tree:55,4,4,16,0,0,0,0,3,5,6,0,0,0,0,0,0,0,0,0,23,4,13,0,0,0,0,0,0,0,0,2,3,5,6,0,0,0,0,0,0,0,0,15,6,0,0,\n0,2,4,4,9,0,0,0,0,22,8,4,0,0,18,0,0,0,0,2,4,4,4,4,4,21,0,0,0,0,0,17,4,5,0,0,31,31,31,31,31,31,31,background flowd4 lily playernormal:56,4,8,5,6,0,0,0,0,0,2,3,4,4,5,6,0,10,0,0,0,0,0,17,5,6,2,3,4,8,4,13,0,\n0,0,0,3,4,4,0,0,18,0,0,2,3,4,4,4,4,4,16,0,0,0,0,0,0,22,8,4,0,0,0,0,0,0,0,3,47,0,17,4,4,4,9,0,0,0,0,3,4,4,36,4,9,0,0,0,0,0,0,0,23,4,4,4,4,4,4,4,4,4,9,0,0,4,36,4,\n0,0,18,0,0,27,4,4,4,4,4,4,21,0,2,3,5,6,0,38,4,16,0,0,0,0,0,0,2,4,26,0,23,17,4,16,24,0,0,0,0,4,8,4,4,4,13,0,0,0,0,0,0,0,0,17,4,8,4,4,40,40,16,21,0,0,0,4,4,16,0,0,18,0,0,22,\n4,4,4,4,4,16,0,0,3,4,4,9,0,4,4,13,0,0,0,0,0,0,3,4,13,0,0,0,0,0,18,0,0,0,0,17,4,4,4,4,5,6,0,0,0,0,0,0,0,23,4,4,8,4,40,13,0,0,0,1,1,25,4,21,0,0,18,0,0,27,4,4,4,4,16,21,\n0,2,4,4,33,0,0,4,8,5,0,0,0,0,0,0,17,4,4,5,6,0,0,0,18,0,0,0,0,23,17,4,4,4,4,5,0,0,0,0,0,0,0,0,17,4,40,40,40,5,0,0,0,0,0,17,16,0,0,0,18,0,0,23,17,16,21,0,0,0,0,27,4,16,34,0,\n2,4,4,4,0,0,0,0,0,0,0,23,4,4,4,5,0,0,18,0,0,0,0,0,0,23,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,23,4,4,0,0,0,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,1,0,0,0,0,0,34,0,3,42,42,4,0,0,\n0,0,0,0,0,2,4,4,4,4,6,0,18,0,0,0,0,0,0,0,17,4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,4,4,6,0,0,0,0,0,0,1,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,17,40,40,16,0,0,0,0,0,2,3,4,\n25,25,25,25,9,0,18,0,0,1,0,0,0,0,0,background light_trigger target:57,51,0,0,0,0,0,0,0,0,0,0,0,0,0,17,42,42,background removelandld removetarget sand:58,6,0,0,1,0,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,23,17,4,21,0,0,0,0,0,27,4,4,4,4,4,16,21,0,\n18,0,0,0,0,0,0,0,1,10,51,51,51,51,0,0,0,0,0,0,0,0,0,0,23,42,40,40,5,0,0,0,1,0,0,0,18,0,0,0,0,10,0,0,0,0,2,3,5,6,34,0,0,23,45,0,0,0,0,0,0,0,0,22,4,8,4,21,0,0,18,0,0,0,0,0,\n0,0,0,0,0,0,0,51,0,1,0,0,0,0,0,0,0,0,0,background removelandru removetarget sand:59,40,4,16,0,0,0,0,0,0,18,19,0,0,0,0,0,0,1,0,0,3,4,4,9,34,0,0,0,0,0,0,0,0,0,0,0,0,3,4,4,4,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,\n0,51,0,0,0,0,2,3,5,0,0,0,0,23,45,21,0,0,0,0,0,0,0,18,1,2,3,5,6,0,0,0,0,2,4,8,21,0,34,2,3,4,5,0,0,0,0,2,3,5,14,4,16,28,45,0,10,0,18,0,0,0,0,0,0,0,0,0,1,0,57,51,0,0,0,2,\n3,4,16,0,0,0,0,0,2,15,0,0,0,0,0,0,0,18,41,4,8,40,58,0,0,0,0,3,4,16,0,0,34,3,40,42,16,0,0,0,0,3,4,4,4,16,21,0,0,0,0,0,18,0,0,0,0,0,2,3,5,19,19,41,5,addlandrud background removetarget:60,15,0,0,3,8,4,21,0,0,0,\n0,3,4,4,6,0,0,0,0,0,0,18,44,4,40,40,42,14,15,0,0,4,8,21,0,0,34,4,42,13,0,0,0,0,0,4,4,4,21,0,0,0,0,10,0,0,18,0,0,0,3,4,4,4,16,0,34,4,4,4,4,0,0,4,4,16,0,0,10,0,0,4,4,4,5,0,\n0,2,15,6,0,18,23,59,42,42,42,4,16,0,0,4,4,0,0,0,34,4,42,5,6,0,10,0,0,17,4,16,0,0,0,0,0,0,0,0,18,0,0,0,4,4,8,16,21,0,34,45,28,4,4,0,0,4,4,13,0,0,0,0,0,17,4,4,16,0,0,3,4,5,6,18,\n0,23,4,8,4,16,21,0,0,4,16,0,10,0,34,4,42,4,5,0,0,0,0,23,45,addlandlu background flowu4:61,19,19,19,19,19,19,19,19,19,0,0,0,4,4,16,21,0,0,34,0,2,4,4,0,0,17,4,5,0,0,0,0,0,23,17,4,21,0,0,17,4,4,background pebble removelandld sand:62,18,0,0,4,4,16,21,\n0,0,0,4,21,0,0,0,34,4,8,4,16,0,0,0,0,0,0,2,background light_trigger removelandlu sand target2:63,5,0,0,0,0,0,0,1,0,0,2,4,21,0,10,0,0,34,0,3,25,16,0,0,22,4,8,6,0,0,0,0,0,23,4,0,0,0,23,17,4,4,18,0,0,45,21,0,0,0,0,2,4,0,1,\n0,0,34,17,16,21,0,0,0,0,0,0,3,40,40,4,0,3,5,0,0,0,0,0,0,3,4,0,0,0,10,0,34,2,4,4,21,0,0,3,4,4,5,6,0,0,0,0,2,4,6,0,0,0,22,4,4,18,0,0,0,0,0,0,2,3,4,25,0,0,1,0,34,0,0,0,\n0,0,0,0,0,0,17,4,4,4,14,8,16,0,0,0,0,0,2,4,8,0,0,0,0,2,3,4,4,16,0,0,0,17,8,42,42,58,6,0,0,0,3,4,5,0,0,0,3,4,16,18,0,0,0,0,0,0,3,4,4,25,6,0,0,0,34,0,0,10,0,2,15,0,0,0,\n23,4,4,4,4,16,33,2,3,5,14,3,4,25,16,0,0,0,0,27,4,4,16,21,0,0,0,23,17,40,40,40,9,0,0,0,44,4,4,0,0,0,17,16,21,18,0,2,3,4,5,14,4,4,4,25,5,0,0,0,34,0,0,0,0,3,4,0,0,0,2,4,16,21,0,0,\n34,43,4,4,4,4,4,4,21,0,0,0,0,23,4,4,21,0,0,0,0,0,23,4,4,16,21,2,15,0,23,17,16,0,0,0,0,0,1,18,0,41,4,4,4,4,4,4,4,25,4,6,2,3,4,5,6,0,2,4,4,0,0,0,27,16,21,0,10,0,34,0,23,17,4,4,\n4,16,0,0,0,0,0,2,4,4,6,0,0,0,0,0,51,42,42,21,0,3,4,6,0,0,0,0,0,0,0,0,0,18,0,44,4,4,4,16,28,17,4,25,4,4,4,4,4,4,4,4,4,4,16,0,0,1,0,0,0,0,0,0,34,0,0,23,45,21,0,0,0,0,0,0,\n0,3,4,4,4,4,9,0,0,0,addlandrd background removetarget:64,40,40,0,0,17,4,4,9,0,0,0,0,0,0,0,0,18,0,0,23,17,16,21,0,0,23,17,4,8,4,16,28,17,4,4,4,16,21,0,0,43,58,6,0,10,0,0,34,0,0,0,0,0,0,0,2,3,5,6,2,4,4,4,4,16,\n21,0,0,0,3,4,4,0,0,0,23,45,21,0,0,0,1,0,0,0,0,18,0,1,0,0,0,0,0,0,0,23,17,16,21,0,0,0,0,0,0,0,0,1,0,23,42,5,0,0,0,0,34,0,0,0,0,0,0,0,3,4,4,4,4,4,4,4,21,0,0,0,0,0,4,4,\n4,0,0,0,0,0,0,0,0,0,0,0,0,1,0,18,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,42,42,addlandru background removetarget:65,0,0,0,34,0,0,0,0,0,0,0,17,4,4,4,4,4,4,16,0,0,0,0,0,0,17,4,4,6,0,0,0,0,\n0,0,0,0,0,0,1,0,0,18,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,17,25,4,5,0,0,34,0,0,0,0,0,0,0,23,17,4,4,4,4,13,0,0,0,0,0,0,0,23,17,4,4,4,4,5,6,0,0,0,0,0,0,\n0,1,0,18,0,1,0,0,0,0,1,0,0,0,0,2,15,0,2,background light_trigger removelandlud sand target:66,6,0,0,0,1,0,0,0,23,17,4,4,6,0,34,0,0,0,0,0,0,0,0,addlandld background removetarget:67,40,40,40,40,40,5,6,0,0,0,0,0,0,23,17,4,4,4,4,5,6,0,0,0,0,0,0,0,0,18,0,0,\n0,0,1,0,0,0,0,0,0,3,4,14,3,4,5,0,0,0,0,0,0,0,0,23,4,4,5,6,34,0,0,0,0,0,0,0,0,0,17,8,4,4,4,4,5,0,0,0,0,0,0,0,0,23,4,4,4,4,9,0,0,0,0,0,1,0,0,18,0,0,0,0,0,1,0,0,\n0,0,0,17,4,4,4,4,4,6,0,10,0,0,0,0,0,0,4,4,4,5,34,0,0,0,0,0,0,0,0,0,23,17,4,16,28,17,4,6,0,0,0,0,0,0,0,0,17,4,4,4,13,2,15,0,0,0,1,0,0,18,0,0,0,1,0,0,0,0,0,0,0,23,4,8,\n4,4,4,5,0,0,0,0,0,0,0,2,4,4,4,4,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,22,4,5,0,0,0,0,0,0,0,0,23,17,4,4,4,4,4,0,0,0,0,1,0,35,51,1,0,0,0,0,0,0,0,0,0,0,17,4,8,4,4,4,0,0,\n0,0,0,0,0,3,4,4,36,4,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,8,4,6,0,0,0,0,2,3,9,0,addlandld background light_trigger target:68,4,4,4,4,16,0,0,1,0,0,0,18,18,18,18,0,0,1,0,0,0,0,0,0,23,4,4,16,28,45,0,0,10,0,0,0,2,4,\n4,4,4,16,34,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,4,4,5,0,0,0,0,3,4,21,0,0,17,4,4,16,21,0,0,0,0,0,18,19,19,19,19,19,0,0,0,1,0,0,0,0,0,17,16,21,0,0,0,0,0,0,0,0,27,4,4,8,4,21,34,0,\n0,0,0,0,0,0,0,0,10,0,0,0,27,4,4,4,16,0,0,0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,1,31,18,31,31,31,18,34,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,0,0,0,23,4,4,16,0,34,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,23,17,4,21,0,0,0,0,4,4,0,0,10,0,0,0,0,0,0,0,0,0,31,18,34,background flowr4 speedup:69,background flowu4 speedup:70,18,34,19,1,0,0,0,0,0,0,1,2,15,0,0,0,0,0,0,0,0,0,0,0,17,4,21,0,34,0,0,0,0,0,0,3,5,6,0,0,0,10,\n0,0,23,45,0,0,0,0,0,4,4,6,0,0,0,0,0,0,0,1,0,1,0,31,18,34,background flowd4 speedup:71,background flowl4 speedup:72,18,34,19,0,0,0,0,0,0,0,2,3,8,6,0,0,0,0,0,0,0,0,0,0,23,45,0,0,34,0,0,0,0,0,0,4,4,5,50,0,0,0,2,66,0,0,0,0,\n0,0,0,17,4,5,6,0,0,0,0,0,0,0,0,0,0,31,18,34,19,34,19,34,19,0,1,0,0,0,2,3,4,4,4,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,17,4,4,4,5,6,2,3,4,6,0,0,0,0,0,0,23,17,4,\n4,4,4,5,6,0,0,0,0,0,0,0,31,31,34,31,31,34,1,0,0,0,0,0,3,4,36,4,4,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,23,17,4,4,4,4,4,4,4,4,5,0,0,2,15,6,0,0,0,22,4,4,4,5,0,\n0,0,1,0,0,0,0,34,34,34,34,0,0,0,0,0,0,0,4,4,4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,23,17,4,4,4,4,4,4,4,16,57,3,25,4,4,5,0,0,27,25,4,4,16,0,0,0,0,0,1,0,\n0,0,0,0,0,1,0,0,0,0,0,0,45,21,23,45,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,0,0,23,4,4,16,28,4,16,21,0,4,25,8,4,16,1,1,0,23,17,16,21,0,0,0,0,1,0,0,1,0,0,0,1,0,\n0,background death:73,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,0,0,0,17,16,21,0,45,21,0,0,17,25,16,21,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,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,34,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,1,0,0,0,0,0,0,1,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,34,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,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",0,"1627778728427.8804"] + ["title Skipping Stones to Lonely Homes\nauthor Alan Hazelden\nhomepage www.draknek.org\n\n(verbose_logging)\n\nrun_rules_on_level_start\n\nrealtime_interval 0.1\nagain_interval 0.1\n(key_repeat_interval 0.2)\n\nflickscreen 19x14\n\nnoaction\n\n(youtube UuKbLbC1zw0)\n\n========\nOBJECTS\n========\n\nBackground\nLightBlue Blue\n11111\n11101\n11111\n10111\n11111\n\nSand .\n#dfcc4f yellow\n11111\n01111\n11101\n11111\n10111\n\nTree\nBrown Green\n..11.\n111..\n1.011\n..0.1\n..0..\n\n(Hole\n#c5b446 #dfcc4f\n11111\n01111\n11101\n11111\n10111\n\nCrate\nBrown Orange\n00000\n01110\n01110\n01110\n00000)\n\nLily\nGreen LightGreen\n.111.\n10001\n10001\n10001\n.111.\n\n\nRipple1\nBlue LightBlue\n00000\n01110\n01010\n01110\n00000\n\nRipple2\nBlue LightBlue\n01110\n10001\n10001\n10001\n01110\n\nRippleH\nBlue LightBlue\n00000\n00000\n01110\n00000\n00000\n\nRippleH2\nBlue LightBlue\n00000\n01110\n01010\n01110\n00000\n\nRippleH3\ntransparent\n\nRippleH4\ntransparent\n\nRippleH5\ntransparent\n\nRippleV\nBlue LightBlue\n00000\n00100\n00100\n00100\n00000\n\nRippleV2\nBlue LightBlue\n00000\n01110\n01010\n01110\n00000\n\nRippleV3\ntransparent\n\nRippleV4\ntransparent\n\nRippleV5\ntransparent\n\n(WaterNew\nwhite LightBlue\n11111\n01111\n11101\n11111\n10111)\n\n\nTreasure\n#d0be4a Yellow Yellow\n.111.\n10201\n12021\n10201\n.111.\n\nTreasure2\n#dfcc4f yellow\n1111.\n01111\n11101\n11111\n10111\n\nTreasure3\n#dfcc4f yellow #d0be4a orange white\n1111.\n11111\n12211\n10011\n11111\n\nTreasure4\n#dfcc4f yellow #d0be4a orange white\n1111.\n12221\n10001\n10001\n11111\n\nTreasure5\n#dfcc4f yellow #d0be4a orange white\n1111.\n22222\n00000\n00000\n11111\n\nTreasure6\n#dfcc4f yellow #d0be4a orange white\n1222.\n20002\n00300\n00000\n10001\n\nTreasure7\n#dfcc4f yellow #d0be4a orange white\n1222.\n20002\n03430\n03330\n10001\n\nTreasureTaken\n#dfcc4f yellow #d0be4a\n1222.\n20002\n00000\n00000\n10001\n\n\n\nTarget\ntransparent\n\nTarget2\ntransparent\n\nRemoveTarget\ntransparent\n\n(\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTarget2\nRed\n.....\n.000.\n.0.0.\n.000.\n.....\n\nRemoveTarget\nRed\n.....\n.....\n..0..\n.....\n.....\n)\n\nPlayerNormal\nDarkRed #493c2b #000000\n..0..\n.111.\n01110\n02220\n.2.2.\n\nPlayerInWater\nDarkRed #493c2b #000000\n..0..\n.111.\n01110\n02220\n.....\n\nPebble\nGrey DarkGrey LightGrey\n.....\n..00.\n.0001\n.0111\n...1.\n\nSubmergedPebble\nDarkGrey #263546 Blue LightBlue\n22222\n22232\n20022\n00012\n01112\n\nU\ntransparent\n\nD\ntransparent\n\nL\ntransparent\n\nR\ntransparent\n\n\nAddLandLUD\nYellow\n0....\n.....\n.....\n.....\n0....\n\nAddLandLU\nYellow\n0....\n.....\n.....\n.....\n.....\n\nAddLandLD\nYellow\n.....\n.....\n.....\n.....\n0....\n\nAddLandRUD\nYellow\n....0\n.....\n.....\n.....\n....0\n\nAddLandRU\nYellow\n....0\n.....\n.....\n.....\n.....\n\nAddLandRD\nYellow\n.....\n.....\n.....\n.....\n....0\n\nRemoveLandLUD\nBlue\n0....\n.....\n.....\n.....\n0....\n\nRemoveLandLU\nBlue\n0....\n.....\n.....\n.....\n.....\n\nRemoveLandLD\nBlue\n.....\n.....\n.....\n.....\n0....\n\nRemoveLandRUD\nBlue\n....0\n.....\n.....\n.....\n....0\n\nRemoveLandRU\nBlue\n....0\n.....\n.....\n.....\n.....\n\nRemoveLandRD\nBlue\n.....\n.....\n.....\n.....\n....0\n\n\nFlowL1 ←\n#3166f7 #cbe4ef\n00100\n00000\n00001\n00000\n01000\n\nFlowL2\n#3166f7 #cbe4ef\n01000\n00000\n00010\n00000\n10000\n\nFlowL3\n#3166f7 #cbe4ef\n10000\n00000\n00100\n00000\n00001\n\nFlowL4\n#3166f7 #cbe4ef\n00001\n00000\n01000\n00000\n00010\n\nFlowL5\n#3166f7 #cbe4ef\n00010\n00000\n10000\n00000\n00100\n\nFlowR1 →\n#3166f7 #cbe4ef\n10000\n00000\n00100\n00000\n00001\n\nFlowR2\n#3166f7 #cbe4ef\n01000\n00000\n00010\n00000\n10000\n\nFlowR3\n#3166f7 #cbe4ef\n00100\n00000\n00001\n00000\n01000\n\nFlowR4\n#3166f7 #cbe4ef\n00010\n00000\n10000\n00000\n00100\n\nFlowR5\n#3166f7 #cbe4ef\n00001\n00000\n01000\n00000\n00010\n\nFlowU1 ↑\n#3166f7 #cbe4ef\n10000\n00001\n00000\n00100\n00000\n\nFlowU2\n#3166f7 #cbe4ef\n00001\n00000\n00100\n00000\n10000\n\nFlowU3\n#3166f7 #cbe4ef\n00000\n00100\n00000\n10000\n00001\n\nFlowU4\n#3166f7 #cbe4ef\n00100\n00000\n10000\n00001\n00000\n\nFlowU5\n#3166f7 #cbe4ef\n00000\n10000\n00001\n00000\n00100\n\nFlowD1 ↓\n#3166f7 #cbe4ef\n10000\n00001\n00000\n00100\n00000\n\nFlowD2\n#3166f7 #cbe4ef\n00000\n10000\n00001\n00000\n00100\n\nFlowD3\n#3166f7 #cbe4ef\n00100\n00000\n10000\n00001\n00000\n\nFlowD4\n#3166f7 #cbe4ef\n00000\n00100\n00000\n10000\n00001\n\nFlowD5\n#3166f7 #cbe4ef\n00001\n00000\n00100\n00000\n10000\n\nStopFlow\ntransparent\n\nShip_Left\n#eb8931 #732930 #2f2416 #ffffff\n..030\n.0331\n01121\n.0111\n..000\n\nShip_Right1\n#eb8931 #732930 #2f2416 #ffffff\n3330.\n12110\n12110\n11110\n0000.\n\nShip_Right2\n#eb8931 #732930 #2f2416 #ffffff\n3330.\n12110\n12110\n11110\n0000.\n\nShip_Sails\n#ffffff\n.....\n.....\n.....\n.00..\n00...\n\nDarkness\nblack\n\nDeath\nLightBlue Blue\n11111\n11101\n11111\n10111\n11111\n\nSpeedup\ntransparent\n\nLight_trigger\ntransparent\n\nLight\nwhite\n\nMyMistake\ntransparent\n\n=======\nLEGEND\n=======\n\nw = Background\n\nDirection = U or D or L or R\n\nPlayer = PlayerNormal or PlayerInWater\n\nRipple = Ripple1 or Ripple2 or RippleH or RippleV or RippleH2 or RippleV2 or RippleH3 or RippleV3 or RippleH4 or RippleV4 or RippleH5 or RippleV5\n\nFloor = Lily or Sand or SubmergedPebble or Ship_Left or Ship_Right1 or Ship_Right2\n\nFlowL = FlowL1 or FlowL2 or FlowL3 or FlowL4 or FlowL5\nFlowR = FlowR1 or FlowR2 or FlowR3 or FlowR4 or FlowR5\nFlowU = FlowU1 or FlowU2 or FlowU3 or FlowU4 or FlowU5\nFlowD = FlowD1 or FlowD2 or FlowD3 or FlowD4 or FlowD5\n\nFlow = FlowL or FlowR or FlowU or FlowD\n\nFlow5 = FlowL5 or FlowR5 or FlowU5 or FlowD5\n\nP = PlayerNormal and Sand\n* = Pebble and Sand\nO = Lily\n@ = Target and Sand and Light_trigger\nx = Target2 and Sand and Light_trigger\n% = RemoveTarget and Sand\n! = Target and Light_trigger\n? = RemoveTarget\nn = SubmergedPebble\nT = Treasure and Sand\nS = Ship_Left\n1 = Ship_Right1 and TreasureTaken\n2 = Ship_Right2\n/ = Ship_Sails\n$ = Tree and Sand\n[ = FlowR1 and Speedup\n] = FlowD1 and Speedup\n{ = FlowU1 and Speedup\n} = FlowL1 and Speedup\nY = Death\n\nAddLandL = AddLandLUD or AddLandLU or AddLandLD\nAddLandR = AddLandRUD or AddLandRU or AddLandRD\n\nRemoveLandL = RemoveLandLUD or RemoveLandLU or RemoveLandLD\nRemoveLandR = RemoveLandRUD or RemoveLandRU or RemoveLandRD\n\nShip = Ship_Left or Ship_Right1 or Ship_Right2\n\n\n=======\nSOUNDS\n=======\n\nsfx1 60997509 ( 13158309) (bounce pebble)\nsfx2 53480307 (push pebble)\nsfx3 45570309 (rock submerging)\nsfx4 73166102 (rock landing on ground)\nsfx5 56148307 (player move)\nsfx6 14433907 (player can't move)\nsfx7 58358104 (rock hits rock)\nsfx8 97863107 (dig 1)\nsfx9 75661907 (dig 2)\nsfx0 23172308 (whirlpool death)\n\n(63191902)\n\nEndLevel 32481708\n\nUndo 8098307\nRestart 7235102\n\n(Treasure3 Create 97863107\nTreasure6 Create 75661907)\n\n(Treasure2 Create 55366107)\n(Treasure3 Create 47174507)\n(Treasure4 Create 71981107)\n(Treasure5 Create 40321302)\n(Treasure6 Create 33433507)\n(Treasure7 Create 97863107)\n\nTreasureTaken Create 2479500\nLight Create 71916703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSand, FlowL, FlowR, FlowU, FlowD\nSubmergedPebble, StopFlow\nAddLandL, RemoveLandL\nAddLandR, RemoveLandR\nRipple, Tree\nLily\nTarget, Target2, RemoveTarget, Treasure, Treasure2, Treasure3, Treasure4, Treasure5, Treasure6, Treasure7, TreasureTaken\nPlayer, Pebble\nDirection\nShip_Left, Ship_Right1, Ship_Right2, Ship_Sails, Light_trigger\nMyMistake\nSpeedup, Death, Darkness, Light\n\n\n======\nRULES\n======\n\n(oops)\n\n[ MyMistake ] -> [ MyMistake Death ]\n\ndown [ MyMistake ] [ no Sand | . no Target|.|.|.|.|.|.|.|. no Target|.|.|no Sand|.|.|.|no Sand|no Sand|no Sand|.|.|no Sand ] -> [] [no Sand | . no Target|.|.|.|.|.|.|.|. no Target|.|.|no Sand|.|.|.|no Sand|no Sand|no Sand|.|.|no Sand] message Sorry but I screwed up and this puzzle might not be possible. Please start over? My fault not yours :( :( :(\n\n(Island border)\n\nleft [ no Sand no AddLandL | Sand ] -> [ no Sand AddLandLUD | Sand ]\nright [ no Sand no AddLandR | Sand ] -> [ no Sand AddLandRUD | Sand ]\n\nup [ AddLandLUD | no Sand ] -> [ AddLandLD | no Sand ]\nup [ AddLandRUD | no Sand ] -> [ AddLandRD | no Sand ]\n\ndown [ AddLandLUD | no Sand ] -> [ AddLandLU | no Sand ]\ndown [ AddLandRUD | no Sand ] -> [ AddLandRU | no Sand ]\n\ndown [ AddLandLD | no Sand ] -> [ | no Sand ]\ndown [ AddLandRD | no Sand ] -> [ | no Sand ]\n\nleft [ Sand no RemoveLandL | no Sand ] -> [ Sand RemoveLandLUD | no Sand ]\nright [ Sand no RemoveLandR | no Sand ] -> [ Sand RemoveLandRUD | no Sand ]\n\nup [ RemoveLandLUD | Sand ] -> [ RemoveLandLD | Sand ]\nup [ RemoveLandRUD | Sand ] -> [ RemoveLandRD | Sand ]\n\ndown [ RemoveLandLUD | Sand ] -> [ RemoveLandLU | Sand ]\ndown [ RemoveLandRUD | Sand ] -> [ RemoveLandRU | Sand ]\n\ndown [ RemoveLandLD | Sand ] -> [ | Sand ]\ndown [ RemoveLandRD | Sand ] -> [ | Sand ]\n\nright [ RemoveLandRU | AddLandLU ] -> [ RemoveLandRU | ]\nright [ RemoveLandRD | AddLandLD ] -> [ RemoveLandRD | ]\n\nright [ RemoveLandRUD | AddLandLU ] -> [ RemoveLandRUD | ]\nright [ RemoveLandRUD | AddLandLD ] -> [ RemoveLandRUD | ]\n\nleft [ RemoveLandLU | AddLandRU ] -> [ RemoveLandLU | ]\nleft [ RemoveLandLD | AddLandRD ] -> [ RemoveLandLD | ]\n\nleft [ RemoveLandLUD | AddLandRU ] -> [ RemoveLandLUD | ]\nleft [ RemoveLandLUD | AddLandRD ] -> [ RemoveLandLUD | ]\n\n(water redirection)\n\nleft [ stationary FlowL5 | no Flow no Sand no SubmergedPebble ] -> [ FlowL5 | action FlowL5 ]\nright [ stationary FlowR5 | no Flow no Sand no SubmergedPebble ] -> [ FlowR5 | action FlowR5 ]\nup [ stationary FlowU5 | no Flow no Sand no SubmergedPebble ] -> [ FlowU5 | action FlowU5 ]\ndown [ stationary FlowD5 | no Flow no Sand no SubmergedPebble ] -> [ FlowD5 | action FlowD5 ]\n\n[ action Flow ] -> [ Flow ]\n\nleft [ FlowL | Flow SubmergedPebble no Ripple ] -> [ action FlowL | Flow action SubmergedPebble ]\nright [ FlowR | Flow SubmergedPebble no Ripple ] -> [ action FlowR | Flow action SubmergedPebble ]\nup [ FlowU | Flow SubmergedPebble no Ripple ] -> [ action FlowU | Flow action SubmergedPebble ]\ndown [ FlowD | Flow SubmergedPebble no Ripple ] -> [ action FlowD | Flow action SubmergedPebble ]\n\n[ Flow5 StopFlow ] -> [ Flow5 action StopFlow ]\n\nleft [ action StopFlow FlowL | Flow ] -> [ | Flow StopFlow ]\nright [ action StopFlow FlowR | Flow ] -> [ | Flow StopFlow ]\nup [ action StopFlow FlowU | Flow ] -> [ | Flow StopFlow ]\ndown [ action StopFlow FlowD | Flow ] -> [ | Flow StopFlow ]\n\n[ action StopFlow Flow ] -> []\n\n[ StopFlow RemoveTarget Flow ] -> [ RemoveTarget ]\n\nleft [ action SubmergedPebble FlowL | Flow ] -> [ action SubmergedPebble FlowL | Flow StopFlow ]\nright [ action SubmergedPebble FlowR | Flow ] -> [ action SubmergedPebble FlowR | Flow StopFlow ]\nup [ action SubmergedPebble FlowU | Flow ] -> [ action SubmergedPebble FlowU | Flow StopFlow ]\ndown [ action SubmergedPebble FlowD | Flow ] -> [ action SubmergedPebble FlowD | Flow StopFlow ]\n\ndown [ FlowD action SubmergedPebble ] [ action FlowL | no Floor ] -> [ FlowD action SubmergedPebble ] [ FlowD1 | FlowD ]\nup [ Flow action SubmergedPebble ] [ action FlowL | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowU1 | Flow ]\ndown [ Flow action SubmergedPebble ] [ action FlowL | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowD1 | Flow ]\n\nup [ FlowU action SubmergedPebble ] [ action FlowR | no Floor ] -> [ FlowU action SubmergedPebble ] [ FlowU1 | FlowU ]\ndown [ Flow action SubmergedPebble ] [ action FlowR | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowD1 | Flow ]\nup [ Flow action SubmergedPebble ] [ action FlowR | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowU1 | Flow ]\n\nright [ FlowR action SubmergedPebble ] [ action FlowD | no Floor ] -> [ FlowR action SubmergedPebble ] [ FlowR1 | FlowR ]\nleft [ Flow action SubmergedPebble ] [ action FlowD | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowL1 | Flow ]\nright [ Flow action SubmergedPebble ] [ action FlowD | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowR1 | Flow ]\n\nleft [ FlowL action SubmergedPebble ] [ action FlowU | no Floor ] -> [ FlowL action SubmergedPebble ] [ FlowL1 | FlowL ]\nright [ Flow action SubmergedPebble ] [ action FlowU | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowR1 | Flow ]\nleft [ Flow action SubmergedPebble ] [ action FlowU | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowL1 | Flow ]\n\n[ action SubmergedPebble Flow ] -> [ SubmergedPebble ]\n\n(Currents anim)\n\n[ stationary Player ] [ stationary FlowL5 ] -> [Player] [ action FlowL1 ]\n[ stationary Player ] [ stationary FlowL4 ] -> [Player] [ action FlowL5 ]\n[ stationary Player ] [ stationary FlowL3 ] -> [Player] [ action FlowL4 ]\n[ stationary Player ] [ stationary FlowL2 ] -> [Player] [ action FlowL3 ]\n[ stationary Player ] [ stationary FlowL1 ] -> [Player] [ action FlowL2 ]\n\n[ stationary Player ] [ stationary FlowR5 ] -> [Player] [ action FlowR1 ]\n[ stationary Player ] [ stationary FlowR4 ] -> [Player] [ action FlowR5 ]\n[ stationary Player ] [ stationary FlowR3 ] -> [Player] [ action FlowR4 ]\n[ stationary Player ] [ stationary FlowR2 ] -> [Player] [ action FlowR3 ]\n[ stationary Player ] [ stationary FlowR1 ] -> [Player] [ action FlowR2 ]\n\n[ stationary Player ] [ stationary FlowU5 ] -> [Player] [ action FlowU1 ]\n[ stationary Player ] [ stationary FlowU4 ] -> [Player] [ action FlowU5 ]\n[ stationary Player ] [ stationary FlowU3 ] -> [Player] [ action FlowU4 ]\n[ stationary Player ] [ stationary FlowU2 ] -> [Player] [ action FlowU3 ]\n[ stationary Player ] [ stationary FlowU1 ] -> [Player] [ action FlowU2 ]\n\n[ stationary Player ] [ stationary FlowD5 ] -> [Player] [ action FlowD1 ]\n[ stationary Player ] [ stationary FlowD4 ] -> [Player] [ action FlowD5 ]\n[ stationary Player ] [ stationary FlowD3 ] -> [Player] [ action FlowD4 ]\n[ stationary Player ] [ stationary FlowD2 ] -> [Player] [ action FlowD3 ]\n[ stationary Player ] [ stationary FlowD1 ] -> [Player] [ action FlowD2 ]\n\n[ stationary Player Speedup action FlowL4 ] -> [ Player Speedup stationary FlowL5 ]\n[ stationary Player Speedup action FlowL3 ] -> [ Player Speedup stationary FlowL4 ]\n[ stationary Player Speedup action FlowL2 ] -> [ Player Speedup stationary FlowL3 ]\n[ stationary Player Speedup action FlowL1 ] -> [ Player Speedup stationary FlowL2 ]\n\n[ stationary Player Speedup action FlowR4 ] -> [ Player Speedup stationary FlowR5 ]\n[ stationary Player Speedup action FlowR3 ] -> [ Player Speedup stationary FlowR4 ]\n[ stationary Player Speedup action FlowR2 ] -> [ Player Speedup stationary FlowR3 ]\n[ stationary Player Speedup action FlowR1 ] -> [ Player Speedup stationary FlowR2 ]\n\n[ stationary Player Speedup action FlowU4 ] -> [ Player Speedup stationary FlowU5 ]\n[ stationary Player Speedup action FlowU3 ] -> [ Player Speedup stationary FlowU4 ]\n[ stationary Player Speedup action FlowU2 ] -> [ Player Speedup stationary FlowU3 ]\n[ stationary Player Speedup action FlowU1 ] -> [ Player Speedup stationary FlowU2 ]\n\n[ stationary Player Speedup action FlowD4 ] -> [ Player Speedup stationary FlowD5 ]\n[ stationary Player Speedup action FlowD3 ] -> [ Player Speedup stationary FlowD4 ]\n[ stationary Player Speedup action FlowD2 ] -> [ Player Speedup stationary FlowD3 ]\n[ stationary Player Speedup action FlowD1 ] -> [ Player Speedup stationary FlowD2 ]\n\n[ stationary Player Speedup FlowD5 ] [ stationary Death ] -> [ Player Speedup FlowD5 ] [ right Death ]\n\n[ > Death | ] -> [ | Death ]\n\n[ moving Death ] [ Player ] -> [ Death Player ] [ no Lily ] sfx0\n\n[ Lily no Player Speedup FlowD5 ] -> [ Speedup FlowD5 no Pebble ]\n\n(Gameplay)\n\n[ stationary Player ] [ FlowL5 Lily ] -> [Player] [ FlowL5 left Lily ]\n[ stationary Player ] [ FlowR5 Lily ] -> [Player] [ FlowR5 right Lily ]\n[ stationary Player ] [ FlowU5 Lily ] -> [Player] [ FlowU5 up Lily ]\n[ stationary Player ] [ FlowD5 Lily ] -> [Player] [ FlowD5 down Lily ]\n\n[ Ripple1 | moving Lily ] -> [ Ripple1 | Lily ] (makes sure that we don't miss any when skimming past a current)\n\n[ Ripple2 no SubmergedPebble | Lily | no Floor ] -> [ Ripple2 | > Lily | ]\nhorizontal [ RippleH4 | stationary Lily no Flow ] -> [ RippleH4 | > Lily ]\nvertical [ RippleV4 | stationary Lily no Flow ] -> [ RippleV4 | > Lily ]\n\n[ Ripple1 | moving Lily | no Floor ] -> [ Ripple1 | Lily | ] (makes sure that we don't miss any when skimming past an already moving lily)\n\n([ > Lily | stationary Lily ] -> [ > Lily | > Lily ])\n\n[ stationary Player ] [ RippleH4 ] -> [Player] []\n[ stationary Player ] [ RippleV4 ] -> [Player] []\n[ stationary Player ] [ RippleH3 ] -> [Player] [ RippleH4 ]\n[ stationary Player ] [ RippleV3 ] -> [Player] [ RippleV4 ]\n[ stationary Player ] [ RippleH2 ] -> [Player] [ RippleH3 ]\n[ stationary Player ] [ RippleV2 ] -> [Player] [ RippleV3 ]\n[ stationary Player ] [ RippleH ] -> [Player] [ RippleH2 ]\n[ stationary Player ] [ RippleV ] -> [Player] [ RippleV2 ]\n\n(horizontal [ Lily | RippleH | no Ripple2 ] -> [ Lily | | ]\nvertical [ Lily | RippleV | no Ripple2 ] -> [ Lily | | ])\n\n[ stationary Player ] [ Ripple2 ] -> [Player] []\n[ stationary Player ] [ Ripple1 ] -> [Player] [ Ripple2 ]\n\nhorizontal [ > Lily Pebble | no Floor no Flow ] -> [ RippleH | Lily Pebble ]\nhorizontal [ > Lily Player | no Floor no Flow ] -> [ RippleH | Lily Player ]\nhorizontal [ > Lily | no Floor no Flow ] -> [ RippleH | Lily ]\nvertical [ > Lily Pebble | no Floor no Flow ] -> [ RippleV | Lily Pebble ]\nvertical [ > Lily Player | no Floor no Flow ] -> [ RippleV | Lily Player ]\nvertical [ > Lily | no Floor no Flow ] -> [ RippleV | Lily ]\n\n[ > Lily Pebble | no Floor no Pebble ] -> [ | Lily Pebble ]\n+ [ > Lily Player | no Floor no Pebble ] -> [ | Lily Player ]\n+ [ > Lily no Pebble no Player | no Floor ] -> [ | Lily ]\n\n[ > Lily Pebble | no Floor Pebble ] -> [ Lily Pebble | Pebble ]\n[ > Lily Player | no Floor Pebble ] -> [ Lily Player | Pebble ]\n\n[ > Lily | no Floor ] -> [ | Lily ]\n\n[ > Lily | Floor ] -> [ Lily | Floor ]\n\n[ stationary Player ] [ U Pebble ] -> [Player] [ U up Pebble ]\n[ stationary Player ] [ D Pebble ] -> [Player] [ D down Pebble ]\n[ stationary Player ] [ L Pebble ] -> [Player] [ L left Pebble ]\n[ stationary Player ] [ R Pebble ] -> [Player] [ R right Pebble ]\n\n[ Pebble Direction Floor ] -> [ stationary Pebble Floor ] sfx4 (pebble moves onto moving lily)\n\n[ > Player | no Floor ] -> [ Player | ] (sfx6)\n\n[ stationary Pebble no Floor no Direction ] -> [ SubmergedPebble Ripple1 ] sfx3\n\n[ > Pebble Floor | stationary Pebble ] -> [ Pebble Floor | Pebble ]\n[ > Pebble | stationary Pebble ] -> [ stationary Pebble no Direction | Pebble ] sfx7\n\n[ > Player | Pebble Treasure | Floor no Pebble ] -> [ | Treasure Player | Pebble Floor ] sfx2\n[ > Player | Pebble | Floor no Pebble no Treasure7 no Ship no Tree ] -> [ > Player | | Pebble Floor ] sfx2\n[ > Player | Pebble | no Floor no Pebble ] -> [ > Player | > Pebble | ]\n\n[ > Pebble | Ship ] -> [ Pebble no Direction | Ship ]\n\n[ left Pebble ] -> [ L left Pebble ]\n[ right Pebble ] -> [ R right Pebble ]\n[ up Pebble ] -> [ U up Pebble ]\n[ down Pebble ] -> [ D down Pebble ]\n\n[ moving Pebble no Floor ] -> [ moving Pebble Ripple1 ] sfx1\n\n[ > Pebble Direction | ] -> [ | Pebble Direction ]\n\n[ stationary Pebble Direction Floor ] -> [ Pebble Floor ] sfx4 (landing on floor)\n\n[ moving Pebble ] -> []\n\n[ moving Lily Pebble ] -> []\n[ moving Lily ] -> []\n\n(late [ Player Water ] -> [ PlayerInWater Water ]\nlate [ Player no Water ] -> [ PlayerNormal no Water ])\n\n(victory)\n\n[ > Player | Tree no Ship ] [ Ship_Right1 ] -> [ Player | TreasureTaken ] [ Ship_Right1 Tree ] message A palm tree! You can repair your ship with this.\n\n[ > Player | Ship_Right1 no Tree ] -> [ Player | Ship_Right1 ] message Your ship is damaged. You need to find some WOOD to repair it.\n\n[ Lily Ship_Right1 ] -> win\n[ Lily Ship_Right2 ] -> win\n\n[ > Player | Ship_Right1 Tree ] -> [ | Player action Ship_Right1 Tree Darkness ]\n[ > Player | Ship_Right2 ] -> [ | Player action Ship_Right2 Darkness ]\n\n[ Player Ship_Right1 ] -> again\n[ Player Ship_Right2 ] -> again\n\n[ Darkness | no Darkness ] -> [ Darkness | Darkness ]\n\n[ action Ship_Right1 TreasureTaken ] -> [ Ship_Right1 Lily TreasureTaken ] message You repair your ship and sail away to your next adventure!\n\n[ Ship_Right1 StopFlow Treasure ] -> [ Ship_Right1 Lily ] message Treasures found: 1/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure2 ] -> [ Ship_Right1 Lily ] message Treasures found: 2/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure3 ] -> [ Ship_Right1 Lily ] message Treasures found: 3/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure4 ] -> [ Ship_Right1 Lily ] message Treasures found: 4/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure5 ] -> [ Ship_Right1 Lily ] message Treasures found: 5/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure6 ] -> [ Ship_Right1 Lily ] message Treasures found: 6/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure7 ] -> [ Ship_Right1 Lily ] message Treasures found: 7/7, Kept: 0/7\n\n[ Ship_Right1 SubmergedPebble ] -> [ Ship_Right1 StopFlow ] message You reluctantly leave your spoils behind. Later you try to return, but you never manage to find the mysterious islands again.\n\n[ action Ship_Right1 no TreasureTaken ] -> [ Ship_Right1 SubmergedPebble ] message You repair it as best you can, but your battered ship isn't seaworthy enough to carry heavy treasure!\n\n[ Ship_Right2 StopFlow ] [ Ship_right1 TreasureTaken ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 0/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 1/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure2 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 2/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure3 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 3/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure4 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 4/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure5 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 5/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure6 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 6/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure7 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 7/7\n\n[ Ship_Right2 SubmergedPebble ] -> [ Ship_Right2 StopFlow ] message You sail away on your new ship, onwards to your next adventure!\n\n[ action Ship_Right2 ] -> [ Ship_Right2 SubmergedPebble ] message You find a strange ship, conveniently unguarded. It's probably haunted, but it seems seaworthy enough to carry you and your treasure.\n\n(treasure)\n\n[ TreasureTaken Lily | RemoveTarget ] -> message But are you stuck here with it?\n\n[ TreasureTaken Lily no Ship ] -> [ TreasureTaken ]\n\n[ > Player | Treasure no Pebble ] -> [ Player | action Treasure ]\n\n[ Treasure6 Sand ] -> [ Treasure7 Sand ] sfx8 again\n[ Treasure5 Sand ] -> [ Treasure6 Sand ] again\n[ Treasure4 Sand ] -> [ Treasure5 Sand ] again\n[ Treasure3 Sand ] -> [ Treasure4 Sand ] again\n[ Treasure2 Sand ] -> [ Treasure3 Sand ] sfx9 again\n\n[ action Treasure Sand ] -> [ Treasure2 Sand ] again\n\n[ > Player | Treasure7 ] -> [ Player | action TreasureTaken Lily ]\n\n[ action TreasureTaken ] [ no Sand TreasureTaken ] -> [ TreasureTaken ] [ Treasure ] message Found treasure! (1/7)\n[ action TreasureTaken ] [ no Sand Treasure ] -> [ TreasureTaken ] [ Treasure2 ] message Found treasure! (2/7)\n[ action TreasureTaken ] [ no Sand Treasure2 ] -> [ TreasureTaken ] [ Treasure3 ] message Found treasure! (3/7)\n[ action TreasureTaken ] [ no Sand Treasure3 ] -> [ TreasureTaken ] [ Treasure4 ] message Found treasure! (4/7)\n[ action TreasureTaken ] [ no Sand Treasure4 ] -> [ TreasureTaken ] [ Treasure5 ] message Found treasure! (5/7)\n[ action TreasureTaken ] [ no Sand Treasure5 ] -> [ TreasureTaken ] [ Treasure6 ] message Found treasure! (6/7)\n[ action TreasureTaken ] [ no Sand Treasure6 ] -> [ TreasureTaken ] [ Treasure7 ] message Found treasure! (7/7)\n([ action TreasureTaken ] [ no Sand Treasure7 ] -> [ TreasureTaken ] [ SubmergedPebble Lily ] message Found treasure! (8/8))\n\n(checkpoints)\n\n[ > Player | no Pebble ] -> [ | Player ] sfx5\n\n([ > Player | Pebble ] -> sfx6) (can't move)\n\n\n[ Player Target ] -> [ Player action Target ]\n[ action Target | stationary Target ] -> [ action Target | action Target ]\n[ action Target | RemoveTarget ] -> [ action Target | action RemoveTarget ]\n[ action Target Light_trigger ] -> [ action Target action Light_trigger ]\n[ action Target ] -> [] checkpoint\n\n\n[ Pebble Target2 ] -> [ Pebble action Target2 ]\n[ action Target2 | stationary Target2 ] -> [ action Target2 | action Target2 ]\n[ Player stationary Target2 ] -> [ Player Target2 StopFlow ]\n[ Target2 StopFlow | Target2 ] -> [ Target2 StopFlow | Target2 StopFlow ]\n[ Target2 StopFlow ] -> [ no Light_trigger ]\n[ action Target2 | RemoveTarget ] -> [ action Target2 | action RemoveTarget ]\n[ action Target2 Light_trigger ] -> [ action Target2 action Light_trigger ]\n[ action Target2 ] -> [] checkpoint\n\n\n[ action RemoveTarget | stationary RemoveTarget ] -> [ action RemoveTarget | action RemoveTarget ]\n[ action RemoveTarget ] -> []\n\n\n[ Pebble RemoveTarget ] -> [ Pebble action RemoveTarget ]\n[ action RemoveTarget | stationary RemoveTarget ] -> [ action RemoveTarget | action RemoveTarget ]\n[ action RemoveTarget | Target ] -> [ action RemoveTarget | no Light_trigger ]\n[ action RemoveTarget | Target2 ] -> [ action RemoveTarget | no Light_trigger ]\n\n\n[ Light ] -> [] checkpoint\n\n\n[ Player Light_trigger ] -> [ Player action Light_trigger ]\n\n[ action Light_trigger | Sand ] -> [ action Light_trigger | action Light_trigger Sand ]\n\n[ Player action Light_trigger | Sand ] -> [ Player action Light_trigger | action Sand Light ]\n\n[ action Sand Light | stationary Sand ] -> [ action Sand Light | action Sand Light no Light_trigger ]\n\n[ Light | no Light no Death no Speedup ] -> [ Light | Light ] again\n\n[ Light action Light_trigger ] -> [ Light ]\n\n\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww↓wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nwww/wwwwwwwwwwwwwwwwwwwwwwwwwwww↓wwwwwwwwwww...wwwwwwwn@wwwwwwwwwwwwwwwwwwww\nwws2w..wwwwwwwwwwwww...wwwwwwwwo↓wwwwwwwwww.....w..ww.w%%%.wwwwww.wwwwwwwwww\nwww......wwwwwwwwwwww....wwwowww↓wwwwwww.ww....↑wx....ww.%@.www...wwwwwwwwww\nwww......wwww.wwwwwww....wwwwwww↓ww..ww..www.ww↑xx...wwww?..........wwwwwwww\nww....@@wwwww...wwww....ww/wwwww↓....ww..w...ww↑....wwwoww.......*...wwwwwww\nww....@wwwww.....www....ws1..www↓@@w...@....www↑www.wowwwwww...t...wwwwwwwww\nwww..wwwww...t%...www..www.pww.w↓www...@.*.wwww↑w.*.wwwwwwwww....wwwwwwwwwww\nwwwwwwwwww....%%.wwwww.www...*....www..@....www↑w..←←←←←←←←←←←←←←←←←←←←←←←←←\nwwwwwwww.....w.%%w..ww..www....w*..ww..@.wwwwow↑wwww@wwwwwwwwwwwwwwwwwwwwwww\nwwwwwwwww..wwwww%%%x*w....ww..ww...wwww.wwwowww↑www..wwwwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwww.....ww..wwwwwwww..wwwwwwwwwwww↑www...wwwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwww...wwwwwwwwwwwww.→→→→→→→→→→→→→↑nwww...wwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwwwww..wwwwwwwwwwwwwwwwwwwwwwwwwww...wwwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwwwww.x?wwwwwwwwwwwwwwwwwwwwwwwwww...wwwwwwwwwwwwwwwwwwwwww\nwww..w.wwwwwwwwwwwwwwww%wwwwwwwwwwwwwwwnwwwwwwwww..@..wwwwwwwwwwwww...wwwwww\nww....@wwwwwwwwwwwwwwww..wwwwwwwwwwwwwwwwwwww.....*.wwww..wwwwwwwww....wwwww\nww.*..wwwwwww..wwwwww....wwwwwwww...wwwwwwwww...wwwwwww....?wwwwwwww....wwww\nwww...wwwwww...wwwwwww...wwwwwww..*..wwwwwwww.*.wwwwwww....x.wwwwowwn...wwww\nwwww.wwwwwww..wwowwwwww...wwwww......wwwwwww...wowwwwwww...x*.wwwwwww.....ww\nwwwwwwwwwwww..wwwwwwww....wwwww..t.....wnwww..wwwowwwwww...x..wwwwwwww....ww\nwwwwwwwwwwwww..wwwwww.....wwwwww.......!owww↑wwwwww.ww.....x..wwwwwoww...www\nwwwwwwwwwwwww.....ww....wwwwwwwww.w....??wwn↑←←←←←........wx.wwww.www...wwww\nwwwwwwwwwwwwww.........wwwwwwwwwwwww...w?www@..www........w...w...ww@.....ww\nwwwwwwwwwwwwwwww.....wwwwwwwwwwwowwwwwww?ww!..ww....ww..wwww...*...www...www\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww?????...@..www..wwwwww......ww..wwww\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww.....wwwww.wwwwwwwww..wwwww!wwww\nwwwwwwwwwwwwwwwwnwwwwwwwwwwwwwwwwwwwwwwwwnwwwwwwwwwwwwwwwwwwwwwwwwwwwww...ww\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww@@@ww\nww...wwwwwwwwwwwwwwwww.wwwwwwwwwwwwwwwwwwwww....w..wwwwwwwwwwwwwwwwwww..*.ww\nw...*.wwwwowwwwwwwwwnr...wwwwww..wwwwwwwwww.*.....*.w??...wwwwwwwwwwwww..www\nw.*...wwwwwww....nwwww..@wwwwwww...wwwwwww....w.*.%x.%x....wwwww.....ww..www\nw..w.→→→→→→→*....wwnwww.@wwwwowww....wwwww..wwwww.%x.%x.....www..*....wwnwww\nww.w→↑.*w.ww....wwnwww..@@wwwwwww.*..wwwwwwwwwwwww%x.wwwww..www.wwww..wwnwww\nwwww↑....@@www..wnwwn...@@wwwwww...*xwwwwwwwwowwwww.wwwwww....wwwwwww.w.wwww\nwwww↑..*.@←←←←←←←←!←←.w@@ww..www....xwwwwwwwwwwwwwwww..www.....!wwoww..@wwww\nwwow↑w...wwnw....www↑nw@@ww.....*.xxx...wwwwwwwwwwww...www.......wwww....www\nwwww↑wwwwwww.xxx.wnw↑wwwwwwwwww...xw...%%%ww...wwwwwww..www......wwww....www\nwwww↑wwowwwww...wwwn↑wwowwwwwww.w..wwww%xx.w....ww.@ww.wwwww.w...wwwww..wwww\nwwww↑wwwwwwww..wwwww↑wnwwwwwwwwww.wwwww%x.w..........wwwwwwwww...wwwwwwwwwww\nwwww↑wwwwnwww..→→→→→↑nwwwwwwwwwww.wwwwww..www..www...wwwwwwww...wwwwwwwwwnww\nwwww↑wwwwwww...wwwwwwwwwwwwwnwwwwwwnwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwnwwwwwwww\nwwww↑wwwwwww...wwnwwwwwwwwwwwwwwwwwnwwwwwwwwwwwwwwwwwwwnwwwwwwwwwwwwwwnwwwww\nwwww↑..wwwwww.x.wwwwww...wwww*.w...@.wwnwwwwww..wwwwwwwwwwwwwwwnwwwnwwwwnwww\nwwww...wwwwwww...wwww....wwww..*.t...wwwnwwww....w..wwwwwnwwnnwwwnwwwwwnwwww\nwww...wwwwowww....www.t..wwwww.....wwwnwwwwwww......wwwwnwnwwwnww↓↓↓↓wwwwwnw\nwww.....wwwwww....ww...wwwwwwwwwwwwwwwwwwwwwwww*...wnwwwwwwwwwww→→→→→↓wwnwww\nwwww....@↓←?←.....ww..wwwnwwwwwwwwwwwwwww→→→→→→→→→→→→→→→→→→→→→?→↑↓←←←↓←wwwww\nwww.*..ww?ww↑w....ww@@wwn→→→→→→→→→→→→→→→→↑n@@wwwwwwwwwwwwwwwww?→↑↓[]↑←←wwnww\nwwww..wwn↓ww?ww..wwwwwwww↑wwwwwwwwwwwwwwwww..%wwwwww@@wnwwnwwwn→↑↓{}←↓←wwwwn\nwwwww.wow→?→↑wwwwwww...ww!wwwnwwwwwwwwwwww.*x%...ww...wwwnwwwww→↑→→→↑↓←wnwwn\nwwwww↑wwwwowww@wwwww.....↑wwwwnww.w.wwwwww.xx%*.www....wwwwwwnww↑←←←←←wnwwww\nwwwww↑wwwwwwww@@@w....*.w↑wwwwww.....wwwwww%%%..www....wwwwnwwwww↑↑↑↑nwwwwnw\nwwwww↑wwwwwww@@.......www↑wwwwww.....wwwowwww..wwwww..wwwwwwnwwnw↑nwwwwwywww\nwwwww↑wwowwww...ww...wwow↑wwww......wwwwwwww..wwww...wwwnwnwwwwww↑wwnwwwnwww\nwwwww↑wwwwwwwwwwwwwwwwnww↑www.......wwwwwnwwwwwww.....wwwwwwwwwwn↑wwwwwwwwww\nwwwww↑wwwnwwwwwwwwwwwwwww↑www.......wnwwwwwwwwwww.....wwwwwwwwwww↑wwwwwwwwww\nwwwww↑wwwwwwnwww..wwww...↑ww..$....wwwwwwww......@@@@@.wwwwwwwwww↑wwwwwwwwww\nwwwww↑wwww..www.x.nnww...↑w......wwwwwwww...*..wwww.....wwwwwwwww↑www...wwww\nwwwww↑wnww..*.....wwn...w↑w....wwwww.www..*.wwwwnwwww.*.www..wwww↑ww...wwwww\nwwwww↑www.....*..www...ww↑www..www...www..wwwwowwnwww..www.....ww↑nw.t.wwwww\nnwwww↑www.t.ww..wwww...ww↑wwwwwww....wwww.wwwwwwwwww...wwwww.*...↑w.....wwww\nwwwww↑ww...*wwwwwwwww....↑wwwwwww..←←←←←←←←←←←←←←←←←..wwwww...*..↑.*...wwwww\nwwwww↑www....wwwwwww.....↑wwwwwwww.wwwwwwww......www...wnn@.....w↑ww.wwwwwww\nwwwnw↑wwwww..wwwwwwww....↑wwwwwwwwwww..www.x%%%*.wwww..wwww....ww↑wwwwwwwwww\nwwwww↑wwwwwwwwwwwwwwwwn.w↑wwww..w*...%x.ww.%w...wwoww..wwwwww...w↑wwwwwwwwww\nwwwww↑wwnwwwwwwwwowwwwwww↑wwow..*..*.%x..w..ww..wwwww..wwwwwwwwww↑wwwwwwwwww\nwwwww↑wwwwwwwwwwwwwwwwwww↑wwwww...w....wwwwwwwwwwww....wwnwwowwww↑wwwwwwwwww\nwwnww↑wwwwwwwwwwwwwwnwwww↑wwwwwwwwwwwwwwwwwwwowwww....wwwwnwwwwow↑wwwwwwwwww\nwwwww↑wwwwwwwwwwwwwwwwwww↑wwwwwwwwwwwwwwwwwwwwwwwwwwwwwnwwwwwwwww↑wwwwwwwwww\n\n\n(\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwww..ww.wwwwww\nwwwww.......w..wwwww\nwwww...........wwwww\nwww..*.www....wwwwww\nww....wwwwwwwwwww..w\nw..*wwwwowwwwwww...w\nw..p.wwwwwwwww.w.t.w\nw.*..wwwwwwwww.....w\nww..wwwwwwwwww....ww\nwww.wwwwwwwwwwww.www\nwwwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwwww\nwww...ww.....wwwwww\nwwww....w.....wwwww\nwwwww..wwww*.wwwwow\nwwwww.wwoww..wwwwww\nwww...wwwww..wwwoww\nw...*.wwww..←←←←←←←\nw.p..wwwwwwww.wwwww\nww..wwwwwwww..wwwww\nwwwwwwwwwww..@..www\nwwwwwwwwwwww...wwww\nwwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwww\nwwwwwww...ww\nwww.....*.ww\nwww.*.wwwwww\nwww.p.wwwwww\nww...wowwwww\nww..wwwowwww\nww↑wwwwww..w\nww↑←←←←←.@.w\nww...www...w\nw...ww....ww\nw........www\nwww....wwwww\nwwwwwwwwwwww\n\nwwwwwwwwwwwwwwww\nwwwwwwwwww...www\nwwwwwwwwwww...ww\nw...wwwwwww....w\nw.*.wwwwoww....w\nw..*.wwwwwww.@.w\nww..wwwwwwww...w\nw...wwwwwwoww..w\nww..wwww.www..ww\nww.p.w...ww...ww\nwww...*...www.ww\nwwwww......wwwww\nwwwwwww..wwwwwww\nwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwww\nwwwwwww.....wwwwww\nwwww.w....*..wwwww\nwwww....wwww.wwwww\nwww....wwwwwwwwwww\nwww....wwowww..www\nwww....wwww......w\nwww....wwww..@..ww\nwwww.*wwwww....www\nwwwwwwwwwww...wwww\nwww.....wwww..wwww\nwww...*.wwwwwwwwww\nww...p..wwwwwwwwww\nwwwww...wwwwwwwwww\nwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwww\nwwwwww..w....www\nwwwww.*.....*.ww\nwwww....*.w....w\nwwww..p.wwwww..w\nwwww.*.wwwwww.ww\nwwww...wwwwwwwww\nwwwww.wwwwwowwww\nw...wwwwwwwwwwww\nww...wwwwwwwwwww\nww.wwwwwww..wwww\nwwwww.www.@.wwww\nwwww.........www\nwwww...www.wwwww\nwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwww\nwwwww..wwwwww..wrw\nwww...wwwwwww...ww\nw...pwwwowww...wrw\nw..*.wwwwwww.@..ww\nw.*...wwwwww.....w\nww..*.www..ww..w.w\nwww..*.....www.www\nwwww...wwwwwwwwwww\nwwwwww.wwwwwwwwwww\nwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwww...ww\nwwwwwwwwowwww.*...w\nww....wwwwwww...*.w\nww....*←←←←←←←.w..w\nww.....ww.w*.↑←w.ww\nwww..wwww..p..↑wwww\nwwwwwwwww..*..↑wwww\nww....wwww...w↑woww\nww.@...wwwwwww↑wwww\nwww...wwwwwoww↑wwww\nwwwwwwwwwwwwww↑wwww\n\nwwwwwwwwwwwwwwwww\nwwwwwwwwwwww..www\nwww..wwwwwww...ww\nww...wwwwowww...w\nw.p.*wwwwww.*...w\nw.....→→→↓.....ww\nw.*..w↑ww↓ww....w\nww..ww↑ww↓www..ww\nwwwwww↑←←←wow.www\nwwww.wwwowwww↑www\nww...wwwwwwww↑www\nww.@..wwwwwww↑www\nwwww..wwwwoww↑www\nwwwwwwwwwwwww↑www\n\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwww..wwww\nwww...wwwwww..wwrow\nww....wwwww.....www\nww..@.wwwww.*.p..ww\nwww...wwww.....*.ww\nwww..wwwwwwww.*.www\nwwwwwwwwwwwwww..www\n←←←←←←←←←←←←←←←←←←←\nwwwwwwww....wwwwwww\nwwwwwww......wwwwww\nwwwwwww..w...wwwwww\nwwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwwww\nwwwww...ww.ww.wwwww\nwww........w...wwww\nwww...*.........www\nww..*.wwww.......ww\nw...w.wwowwww.*...w\nww..wwwwwwwwww..p.w\n←←←←←←←←←←←←←←....w\nwwwww.ww...www....←\nwwww.......wwww...w\nwww...w.@.wwoww...w\nwwww.www..wwwww..ww\nwwwwwwwwwwwwww...ww\nwwwwwwwwwwwwwwwwwww\n)\n\n(wwwwwwwwwwwwwwwwwww\nw...wwwwwwwwwwwwwww\nw.*..wwwwwwwwwwwwww\nw...wwwwowwwwwwwwww\nwp*.wwwwwwwwwwwwwww\nw.*.wwwoooooooooooo\nw..←←←←←←←←←←←←←←←←\nwwww.wwwwwwwwwwwwww\nwww..wwwwwwwwwwwwww\nww..@..wwwwwwwwwwww\nwww...wwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww)\n\n(wwwwwwwwwww\nw....ww..ww\nw...*.....w\nww..ww.p..w\nwwwwww...ww\nwwwowww.www\nwwwwwwwwwww\n\nwwwwwww\nww...ww\nww.p..w\nwww.*.w\nwow..ww\nww...ww\nwwwwwww)\n\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 2, "tick", "tick", 2, "tick", 3, "tick", "tick", 3, "tick", "tick", "tick", 2, "tick", 3, "tick", 0, "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", 3, "tick", "tick", 3, "tick", "tick", "tick", "tick", 0, "tick", 0, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background: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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background submergedpebble:1,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,addlandrd background:2,background removelandlu sand:3,background sand:4,background removelandld sand:5,addlandru background:6,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,background ship_left:7,0,2,3,5,6,0,0,0,0,\n0,0,0,2,3,5,6,0,0,0,0,0,0,0,0,0,0,3,4,background pebble sand:8,4,background removelandld removelandrd sand:9,0,0,background lily:10,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,1,0,0,background ship_sails:11,background ship_right2:12,3,4,4,4,5,0,0,0,0,0,0,0,3,4,8,\n5,6,0,0,0,0,0,0,0,0,0,4,4,4,addlandlu addlandru background:13,0,0,0,0,0,0,0,0,0,0,0,2,3,5,addlandrud background:14,background removelandlud sand:15,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,4,4,4,4,background removelandrd sand:16,0,0,0,0,0,0,0,background removelandru sand:17,4,4,4,9,0,0,0,0,\n0,0,0,0,0,17,8,4,9,background flowr4:18,background flowu4:19,19,19,19,19,19,19,19,19,addlandrd background flowu4:20,3,4,4,4,8,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,4,4,4,4,addlandlu background:21,0,0,0,0,0,0,0,addlandld addlandrd background:22,4,4,16,21,0,0,0,0,0,0,0,0,0,addlandld background:23,\n17,16,addlandlu background flowr4:24,20,3,5,6,0,0,0,0,0,0,3,4,4,4,4,4,4,9,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,0,0,17,4,4,background light_trigger sand target:25,background light_trigger removelandrd sand target:26,0,0,0,0,0,0,0,0,background removelandlu removelandru sand:27,26,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,3,4,4,\n5,0,0,0,0,0,0,17,16,addlandlud background:28,4,4,16,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,4,4,26,21,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,18,background pebble removelandru sand:29,4,8,4,0,10,0,0,0,\n0,0,0,0,17,4,21,0,10,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,17,16,21,0,0,0,15,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,22,4,4,16,0,0,0,0,0,0,0,0,0,23,background light_trigger removelandrud sand target:30,\n0,1,0,0,0,0,10,0,0,0,0,0,0,2,15,6,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,27,25,26,21,0,0,0,1,0,0,0,0,0,0,background flowd4:31,background flowd4 removetarget:32,31,18,0,0,0,\n0,0,1,0,0,2,3,4,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,3,4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,18,23,30,addlandlu background flowl4:33,0,0,0,0,0,0,0,0,0,10,0,background flowl4:34,0,0,background flowr4 removetarget:35,10,0,0,0,0,0,0,3,4,\n4,background sand treasure:36,4,4,6,0,0,0,0,0,0,0,0,0,0,0,2,4,4,4,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,34,1,0,0,0,0,0,0,0,0,0,0,background flowl4 removetarget:37,0,0,18,0,0,0,0,0,0,0,17,4,4,4,8,4,5,0,\n0,0,0,0,0,0,0,0,0,2,3,4,4,16,0,0,0,0,0,0,0,2,3,4,5,6,0,0,0,0,0,0,0,0,0,2,background pebble removelandlu sand:38,5,0,34,2,15,6,0,2,3,5,6,0,0,0,34,19,background flowu4 removetarget:39,19,0,0,0,0,0,0,1,23,8,4,21,23,17,16,0,0,0,0,0,0,0,\n0,0,27,4,4,36,4,13,0,0,0,0,0,0,0,3,4,4,4,4,5,6,0,0,0,0,0,0,0,3,4,4,6,34,3,background light_trigger sand target2:40,4,4,4,4,4,5,6,0,2,15,6,0,0,0,2,background light_trigger removelandlu sand target:41,5,0,0,0,0,4,4,6,0,0,0,0,0,0,0,0,0,0,0,0,23,4,4,background removetarget sand:42,\n42,5,0,0,0,0,0,0,0,17,16,21,23,17,4,5,0,0,0,0,0,0,0,4,4,4,5,34,4,40,4,4,4,4,4,40,4,4,4,4,5,6,0,background light_trigger removelandlu removelandru sand target:43,25,25,4,0,0,0,2,4,8,5,0,0,0,0,0,0,0,0,0,0,0,0,0,17,4,4,42,42,6,0,0,0,\n0,0,0,0,0,0,0,23,4,4,6,0,0,0,0,0,0,4,4,4,16,34,4,40,16,21,18,0,23,17,4,4,4,4,4,5,0,23,25,4,16,0,0,2,3,4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,23,17,4,4,42,42,5,6,0,0,0,0,0,0,10,\n0,0,4,4,5,0,0,1,0,0,0,17,16,21,0,34,17,16,21,0,18,0,0,23,17,4,4,4,4,16,0,0,background light_trigger removelandru sand target:44,4,21,0,0,3,40,4,16,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,background removelandrud sand:45,21,22,42,4,5,0,0,0,0,0,0,0,0,0,17,4,4,0,\n0,0,0,0,0,1,0,0,1,34,0,0,0,0,18,0,1,0,23,17,4,4,16,21,0,0,22,4,6,0,0,17,4,16,21,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,3,42,4,4,0,0,0,0,0,0,0,0,0,23,4,4,0,0,0,0,0,0,0,\n0,1,0,background flowl4 light_trigger target:46,0,1,0,0,18,0,0,0,0,0,0,0,0,0,0,0,3,4,5,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,40,4,16,0,0,0,0,0,0,0,0,0,2,4,4,0,0,0,0,0,0,0,1,0,0,34,0,0,\n1,0,18,0,0,0,0,0,0,0,0,0,0,2,4,4,4,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,15,6,2,3,5,6,0,23,29,16,21,0,0,0,0,0,0,0,0,2,3,4,16,0,0,0,0,0,1,0,0,0,1,34,19,19,19,19,19,0,0,0,\n0,2,3,4,background light_trigger removelandld sand target:47,0,3,4,4,4,16,0,0,0,0,addlandrd background submergedpebble:48,3,5,14,15,6,0,0,0,1,0,0,0,4,4,4,4,4,5,6,0,0,0,0,0,0,0,0,15,6,0,2,3,4,4,21,0,0,0,0,0,background r:49,0,0,2,3,9,1,0,0,0,1,0,0,2,3,4,4,4,26,0,\n4,4,4,16,21,0,0,0,2,3,4,4,4,4,5,0,0,0,0,0,0,0,17,4,4,4,4,4,4,4,5,6,0,3,5,6,2,4,5,14,3,4,4,16,0,0,0,0,0,27,4,5,14,3,4,13,0,0,0,1,0,0,0,3,4,36,16,21,0,0,17,4,8,21,0,1,\n0,3,4,4,4,4,4,4,4,addlandru background submergedpebble:50,0,0,0,0,0,0,23,4,4,4,16,21,23,17,4,5,0,17,40,42,4,4,4,4,4,4,16,21,0,0,0,0,0,23,4,4,4,4,4,25,47,0,10,0,0,0,0,4,4,4,21,0,0,0,23,4,16,0,10,0,0,4,4,16,21,23,\n4,4,4,9,0,0,0,0,0,0,0,17,16,21,0,0,0,23,4,16,0,0,background removetarget:51,23,17,4,4,4,4,4,21,0,0,0,0,0,0,0,17,25,25,25,25,25,26,0,0,0,0,0,0,17,4,16,0,0,1,0,0,45,21,0,0,0,0,17,16,21,0,0,17,4,16,21,0,0,\n0,0,0,0,0,0,0,0,7,0,0,0,45,21,0,0,0,0,0,0,23,17,4,16,0,0,0,0,0,0,0,0,0,0,23,44,26,21,0,0,0,0,0,0,0,0,0,0,0,1,18,19,background flowu4 light_trigger target:52,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,0,0,0,0,\n0,11,addlandrd background ship_right1 treasuretaken:53,3,5,6,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,18,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,3,4,4,5,\n6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,5,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,0,2,3,5,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,45,28,4,4,5,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,4,0,0,0,0,1,0,0,0,0,0,0,18,0,0,0,0,0,0,0,2,3,4,4,6,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,2,4,4,16,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,10,0,0,23,4,0,0,0,0,0,0,38,5,6,0,0,18,0,1,0,0,0,2,3,4,4,4,4,5,0,0,0,0,0,0,0,0,0,background u:54,0,0,0,0,0,0,27,4,16,21,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,4,6,0,0,0,0,0,17,4,5,0,0,18,0,0,1,0,0,3,4,4,background sand tree:55,4,4,16,0,0,0,0,3,5,6,0,0,0,0,0,0,0,0,0,23,4,13,0,0,0,0,0,0,0,0,2,3,5,6,0,0,0,0,0,0,0,0,15,6,0,0,\n0,2,4,4,9,0,0,0,0,22,8,4,0,0,18,0,0,0,0,2,4,4,4,4,4,21,0,0,0,0,0,17,4,5,0,0,31,31,31,31,31,31,31,background flowd4 lily playernormal:56,4,8,5,6,0,0,0,0,0,2,3,4,4,5,6,0,10,0,0,0,0,0,17,5,6,2,3,4,8,4,13,0,\n0,0,0,3,4,4,0,0,18,0,0,2,3,4,4,4,4,4,16,0,0,0,0,0,0,22,8,4,0,0,0,0,0,0,0,3,47,0,17,4,4,4,9,0,0,0,0,3,4,4,36,4,9,0,0,0,0,0,0,0,23,4,4,4,4,4,4,4,4,4,9,0,0,4,36,4,\n0,0,18,0,0,27,4,4,4,4,4,4,21,0,2,3,5,6,0,38,4,16,0,0,0,0,0,0,2,4,26,0,23,17,4,16,24,0,0,0,0,4,8,4,4,4,13,0,0,0,0,0,0,0,0,17,4,8,4,4,40,40,16,21,0,0,0,4,4,16,0,0,18,0,0,22,\n4,4,4,4,4,16,0,0,3,4,4,9,0,4,4,13,0,0,0,0,0,0,3,4,13,0,0,0,0,0,18,0,0,0,0,17,4,4,4,4,5,6,0,0,0,0,0,0,0,23,4,4,8,4,40,13,0,0,0,1,1,25,4,21,0,0,18,0,0,27,4,4,4,4,16,21,\n0,2,4,4,33,0,0,4,8,5,0,0,0,0,0,0,17,4,4,5,6,0,0,0,18,0,0,0,0,23,17,4,4,4,4,5,0,0,0,0,0,0,0,0,17,4,40,40,40,5,0,0,0,0,0,17,16,0,0,0,18,0,0,23,17,16,21,0,0,0,0,27,4,16,34,0,\n2,4,4,4,0,0,0,0,0,0,0,23,4,4,4,5,0,0,18,0,0,0,0,0,0,23,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,23,4,4,0,0,0,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,1,0,0,0,0,0,34,0,3,42,42,4,0,0,\n0,0,0,0,0,2,4,4,4,4,6,0,18,0,0,0,0,0,0,0,17,4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,4,4,6,0,0,0,0,0,0,1,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,17,40,40,16,0,0,0,0,0,2,3,4,\n25,25,25,25,9,0,18,0,0,1,0,0,0,0,0,background light_trigger target:57,51,0,0,0,0,0,0,0,0,0,0,0,0,0,17,42,42,background removelandld removetarget sand:58,6,0,0,1,0,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,23,17,4,21,0,0,0,0,0,27,4,4,4,4,4,16,21,0,\n18,0,0,0,0,0,0,0,1,10,51,51,51,51,0,0,0,0,0,0,0,0,0,0,23,42,40,40,5,0,0,0,1,0,0,0,18,0,0,0,0,10,0,0,0,0,2,3,5,6,34,0,0,23,45,0,0,0,0,0,0,0,0,22,4,8,4,21,0,0,18,0,0,0,0,0,\n0,0,0,0,0,0,0,51,0,1,0,0,0,0,0,0,0,0,0,background removelandru removetarget sand:59,40,4,16,0,0,0,0,0,0,18,19,0,0,0,0,0,0,1,0,0,3,4,4,9,34,0,0,0,0,0,0,0,0,0,0,0,0,3,4,4,4,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,\n0,51,0,0,0,0,2,3,5,0,0,0,0,23,45,21,0,0,0,0,0,0,0,18,1,2,3,5,6,0,0,0,0,2,4,8,21,0,34,2,3,4,5,0,0,0,0,2,3,5,14,4,16,28,45,0,10,0,18,0,0,0,0,0,0,0,0,0,1,0,57,51,0,0,0,2,\n3,4,16,0,0,0,0,0,2,15,0,0,0,0,0,0,0,18,41,4,8,40,58,0,0,0,0,3,4,16,0,0,34,3,40,42,16,0,0,0,0,3,4,4,4,16,21,0,0,0,0,0,18,0,0,0,0,0,2,3,5,19,19,41,5,addlandrud background removetarget:60,15,0,0,3,8,4,21,0,0,0,\n0,3,4,4,6,0,0,0,0,0,0,18,44,4,40,40,42,14,15,0,0,4,8,21,0,0,34,4,42,13,0,0,0,0,0,4,4,4,21,0,0,0,0,10,0,0,18,0,0,0,3,4,4,4,16,0,34,4,4,4,4,0,0,4,4,16,0,0,10,0,0,4,4,4,5,0,\n0,2,15,6,0,18,23,59,42,42,42,4,16,0,0,4,4,0,0,0,34,4,42,5,6,0,10,0,0,17,4,16,0,0,0,0,0,0,0,0,18,0,0,0,4,4,8,16,21,0,34,45,28,4,4,0,0,4,4,13,0,0,0,0,0,17,4,4,16,0,0,3,4,5,6,18,\n0,23,4,8,4,16,21,0,0,4,16,0,10,0,34,4,42,4,5,0,0,0,0,23,45,addlandlu background flowu4:61,19,19,19,19,19,19,19,19,19,0,0,0,4,4,16,21,0,0,34,0,2,4,4,0,0,17,4,5,0,0,0,0,0,23,17,4,21,0,0,17,4,4,background pebble removelandld sand:62,18,0,0,4,4,16,21,\n0,0,0,4,21,0,0,0,34,4,8,4,16,0,0,0,0,0,0,2,background light_trigger removelandlu sand target2:63,5,0,0,0,0,0,0,1,0,0,2,4,21,0,10,0,0,34,0,3,25,16,0,0,22,4,8,6,0,0,0,0,0,23,4,0,0,0,23,17,4,4,18,0,0,45,21,0,0,0,0,2,4,0,1,\n0,0,34,17,16,21,0,0,0,0,0,0,3,40,40,4,0,3,5,0,0,0,0,0,0,3,4,0,0,0,10,0,34,2,4,4,21,0,0,3,4,4,5,6,0,0,0,0,2,4,6,0,0,0,22,4,4,18,0,0,0,0,0,0,2,3,4,25,0,0,1,0,34,0,0,0,\n0,0,0,0,0,0,17,4,4,4,14,8,16,0,0,0,0,0,2,4,8,0,0,0,0,2,3,4,4,16,0,0,0,17,8,42,42,58,6,0,0,0,3,4,5,0,0,0,3,4,16,18,0,0,0,0,0,0,3,4,4,25,6,0,0,0,34,0,0,10,0,2,15,0,0,0,\n23,4,4,4,4,16,33,2,3,5,14,3,4,25,16,0,0,0,0,27,4,4,16,21,0,0,0,23,17,40,40,40,9,0,0,0,44,4,4,0,0,0,17,16,21,18,0,2,3,4,5,14,4,4,4,25,5,0,0,0,34,0,0,0,0,3,4,0,0,0,2,4,16,21,0,0,\n34,43,4,4,4,4,4,4,21,0,0,0,0,23,4,4,21,0,0,0,0,0,23,4,4,16,21,2,15,0,23,17,16,0,0,0,0,0,1,18,0,41,4,4,4,4,4,4,4,25,4,6,2,3,4,5,6,0,2,4,4,0,0,0,27,16,21,0,10,0,34,0,23,17,4,4,\n4,16,0,0,0,0,0,2,4,4,6,0,0,0,0,0,51,42,42,21,0,3,4,6,0,0,0,0,0,0,0,0,0,18,0,44,4,4,4,16,28,17,4,25,4,4,4,4,4,4,4,4,4,4,16,0,0,1,0,0,0,0,0,0,34,0,0,23,45,21,0,0,0,0,0,0,\n0,3,4,4,4,4,9,0,0,0,addlandrd background removetarget:64,40,40,0,0,17,4,4,9,0,0,0,0,0,0,0,0,18,0,0,23,17,16,21,0,0,23,17,4,8,4,16,28,17,4,4,4,16,21,0,0,43,58,6,0,10,0,0,34,0,0,0,0,0,0,0,2,3,5,6,2,4,4,4,4,16,\n21,0,0,0,3,4,4,0,0,0,23,45,21,0,0,0,1,0,0,0,0,18,0,1,0,0,0,0,0,0,0,23,17,16,21,0,0,0,0,0,0,0,0,1,0,23,42,5,0,0,0,0,34,0,0,0,0,0,0,0,3,4,4,4,4,4,4,4,21,0,0,0,0,0,4,4,\n4,0,0,0,0,0,0,0,0,0,0,0,0,1,0,18,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,42,42,addlandru background removetarget:65,0,0,0,34,0,0,0,0,0,0,0,17,4,4,4,4,4,4,16,0,0,0,0,0,0,17,4,4,6,0,0,0,0,\n0,0,0,0,0,0,1,0,0,18,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,17,25,4,5,0,0,34,0,0,0,0,0,0,0,23,17,4,4,4,4,13,0,0,0,0,0,0,0,23,17,4,4,4,4,5,6,0,0,0,0,0,0,\n0,1,0,18,0,1,0,0,0,0,1,0,0,0,0,2,15,0,2,background light_trigger removelandlud sand target:66,6,0,0,0,1,0,0,0,23,17,4,4,6,0,34,0,0,0,0,0,0,0,0,addlandld background removetarget:67,40,40,40,40,40,5,6,0,0,0,0,0,0,23,17,4,4,4,4,5,6,0,0,0,0,0,0,0,0,18,0,0,\n0,0,1,0,0,0,0,0,0,3,4,14,3,4,5,0,0,0,0,0,0,0,0,23,4,4,5,6,34,0,0,0,0,0,0,0,0,0,17,8,4,4,4,4,5,0,0,0,0,0,0,0,0,23,4,4,4,4,9,0,0,0,0,0,1,0,0,18,0,0,0,0,0,1,0,0,\n0,0,0,17,4,4,4,4,4,6,0,10,0,0,0,0,0,0,4,4,4,5,34,0,0,0,0,0,0,0,0,0,23,17,4,16,28,17,4,6,0,0,0,0,0,0,0,0,17,4,4,4,13,2,15,0,0,0,1,0,0,18,0,0,0,1,0,0,0,0,0,0,0,23,4,8,\n4,4,4,5,0,0,0,0,0,0,0,2,4,4,4,4,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,22,4,5,0,0,0,0,0,0,0,0,23,17,4,4,4,4,4,0,0,0,0,1,0,35,51,1,0,0,0,0,0,0,0,0,0,0,17,4,8,4,4,4,0,0,\n0,0,0,0,0,3,4,4,36,4,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,8,4,6,0,0,0,0,2,3,9,0,addlandld background light_trigger target:68,4,4,4,4,16,0,0,1,0,0,0,18,18,18,18,0,0,1,0,0,0,0,0,0,23,4,4,16,28,45,0,0,10,0,0,0,2,4,\n4,4,4,16,34,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,4,4,5,0,0,0,0,3,4,21,0,0,17,4,4,16,21,0,0,0,0,0,18,19,19,19,19,19,0,0,0,1,0,0,0,0,0,17,16,21,0,0,0,0,0,0,0,0,27,4,4,8,4,21,34,0,\n0,0,0,0,0,0,0,0,10,0,0,0,27,4,4,4,16,0,0,0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,1,31,18,31,31,31,18,34,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,0,0,0,23,4,4,16,0,34,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,23,17,4,21,0,0,0,0,4,4,0,0,10,0,0,0,0,0,0,0,0,0,31,18,34,background flowr4 speedup:69,background flowu4 speedup:70,18,34,19,1,0,0,0,0,0,0,1,2,15,0,0,0,0,0,0,0,0,0,0,0,17,4,21,0,34,0,0,0,0,0,0,3,5,6,0,0,0,10,\n0,0,23,45,0,0,0,0,0,4,4,6,0,0,0,0,0,0,0,1,0,1,0,31,18,34,background flowd4 speedup:71,background flowl4 speedup:72,18,34,19,0,0,0,0,0,0,0,2,3,8,6,0,0,0,0,0,0,0,0,0,0,23,45,0,0,34,0,0,0,0,0,0,4,4,5,50,0,0,0,2,66,0,0,0,0,\n0,0,0,17,4,5,6,0,0,0,0,0,0,0,0,0,0,31,18,34,19,34,19,34,19,0,1,0,0,0,2,3,4,4,4,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,17,4,4,4,5,6,2,3,4,6,0,0,0,0,0,0,23,17,4,\n4,4,4,5,6,0,0,0,0,0,0,0,31,31,34,31,31,34,1,0,0,0,0,0,3,4,36,4,4,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,23,17,4,4,4,4,4,4,4,4,5,0,0,2,15,6,0,0,0,22,4,4,4,5,0,\n0,0,1,0,0,0,0,34,34,34,34,0,0,0,0,0,0,0,4,4,4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,23,17,4,4,4,4,4,4,4,16,57,3,25,4,4,5,0,0,27,25,4,4,16,0,0,0,0,0,1,0,\n0,0,0,0,0,1,0,0,0,0,0,0,45,21,23,45,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,0,0,23,4,4,16,28,4,16,21,0,4,25,8,4,16,1,1,0,23,17,16,21,0,0,0,0,1,0,0,1,0,0,0,1,0,\n0,background death:73,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,0,0,0,17,16,21,0,45,21,0,0,17,25,16,21,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,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,34,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,1,0,0,0,0,0,0,1,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,34,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,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 0, "1627778728427.8804"] ], [ `gallery: the undertaking`, - ["title the undertaking\nauthor anna anthropy\nhomepage www.auntiepixelante.com\nnoaction\nnoundo\nnorestart\nrun_rules_on_level_start\nrealtime_interval 0.01\n\n========\nOBJECTS\n========\n\nBackground \nBlack\n\nExit \nTransparent\n\nWall \nWhite\n\nPlayer\nWhite\n..0..\n.000.\n00000\n.000.\n.0.0.\n\nAutoplayer\nGrey\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\np = Player\nq = Autoplayer\nE = Exit\n\n=======\nSOUNDS\n=======\n\nPlayer Move 20440307\nPlayer CantMove 24953107\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nExit\nPlayer, Autoplayer, Wall\n\n======\nRULES \n====== \n\n[ Autoplayer ] -> [ Player Exit ]\n\n==============\nWINCONDITIONS\n==============\n\nall Player on Exit\n\n======= \nLEVELS\n=======\n\nmessage the void\n\nEEEEEEEEEEE\nE.........E\nE.........E\nE.........E\nE.........E\nE....p....E\nE.........E\nE.........E\nE.........E\nE.........E\nEEEEEEEEEEE\n\nmessage deep in the woods\n\n###.EE.##..\n####..####.\n.#......#.#\n#.........#\n##.......##\n###.p...#.#\n#......##..\n.#....####.\n###..#..#..\n####.##...#\n.#..####.##\n\nmessage an ancient temple\n\n####EEE####\n#..#...#..#\n#.##...##.#\n#.........#\n#.........#\n#.#.....#.#\n#.........#\n#.........#\n#.##...##.#\n#..#.p.#..#\n####...####\n\nmessage the crumbling ruins\n\n......###EE\n#..#.##...E\n.##.#.#...#\n#.........#\n.#.#......#\n#...#....#.\n#.........#\n#.......#..\n#...#.....#\n....#.#...#\n.p.########\n\nmessage a lonely shoreline\n\n###########\n###.#######\n#.#####..##\n.##...####.\n#..###...##\n.##...###..\n#........##\n..........E\n.....####.E\np.########E\n###########\n\nmessage a forbidding cave\n\n##..#####EE\n..#.##.#..E\n##...#....E\n..#..#....#\n#.........#\n.........##\n.......####\np........##\n......#....\n#.#...#.#.#\n.#.#.#.#.#.\n\nmessage a rocky tunnel\n\n###########\n###.#####.#\n#.####.#..#\n#.#.#..#..E\n..#.......E\np.........E\n......#...E\n#.......#.E\n#.#.#..##.#\n###.##.####\n###########\n\nmessage a deserted cavern\n\n######EE###\n###..#....#\n#.........#\n...#.....##\n.........##\np.........#\n..........#\n..#......##\n#......#..#\n##.#....###\n###########\n\nmessage a huge mushroom\n\n...#.#..#.#\n.#.#....#.#\n.#.#.###..#\n###.#####.#\n#.#...#...#\n#....##..##\n.#...##...E\n#.........E\n#..#......E\n##.#....#.#\n####.p.####\n\nmessage a collapsed passage\n\n#######.EE#\n###...##..#\n##..#..##.#\n#.#..#.#..#\n#....#.#.##\n##.##..#..#\n#...#.....#\n#.#..#.#..#\n####.#...##\np.....#####\n###########\n\nmessage a mysterious house\n\n####...####\n#.#......##\n....#####.#\n#####...#.#\n#E#.#...#..\n#.#.....#.#\n#...#...#..\n######.##..\n...........\n##...#....#\n#######.p.#\n\nmessage a secret passage\n\n.####......\n.####......\n###########\n.#p#.......\n.#.##..#..#\n.#..##.....\n.##..######\n..##......#\n...######.#\n.#...#..#.#\n...#....#E#\n\nmessage standing stones\n\n..###.###..\n.#...p...#.\n#...#.#...#\n#.#.#.#.#.E\n#.#.....#.E\n#.........E\n#.#..#....E\n#.#.....#.E\n#...#.#.#.#\n.#..#.#..#.\n..#######..\n\nmessage high technology\n\n###########\n#....#....#\n#.##.######\n#....#....E\n..........E\np.........E\n..........E\n#....#....E\n#.##.######\n#....#....#\n###########\n\nmessage a strange factory\n\n###########\n..#.#.#.#.#\np.........#\n..........#\n#.#.#.###.#\n#######.#.#\n#.#.#.###.#\n#.........#\n#.........#\n#.#.#.#.#.#\n#E#########\n\nmessage the vestibule\n\n#####p#####\n#...#.#...#\n##.......##\n#.........#\n###.....###\n#.#.....#.#\n####...####\n#..#...#..#\n#####.#####\n#...#.#...#\n#####E#####\n\nmessage the device\n\n###########\n#....p....#\n#.........#\n#.........#\n#.###.###.#\n#..#...#..#\n####EEE####\n#..#...#..#\n#.###.###.#\n#.........#\n###########\n\nmessage the void\n\nEEEEEEEEEEE\nE.........E\nE.........E\nE.........E\nE.........E\nE....p....E\nE.........E\nE.........E\nE.........E\nE.........E\nEEEEEEEEEEE\n\nmessage a glimmer\n\n.......E...\n......E#E..\n.....E###E.\n....E##.##E\n.....E###E.\n......E#E..\n.......E...\n...........\n...........\n..p........\n...........\n\nmessage a flash\n\n.....#.....\n.....#.....\n.....#.....\n.....#.....\n.....#.....\n#####q#####\n.....#.....\n.....#.....\n.....#.....\n.....#.....\n.....#.....\n\n.....#.....\n....#.#....\n...#...#...\n..#..#..#..\n.#..#.#..#.\n#..#.q.#..#\n.#..#.#..#.\n..#..#..#..\n...#...#...\n....#.#....\n.....#.....\n\n###########\n#.........#\n#.#######.#\n#.#.....#.#\n#.#.###.#.#\n#.#.#q#.#.#\n#.#...#.#.#\n#.#####.#.#\n#.......#.#\n#########.#\n..........#\n\n...........\n...###.....\n.###....#..\n###...#####\n###....###.\n###..q.#.#.\n###........\n###.....#..\n####...##..\n.#######...\n..#####....\n\n....#......\n.....#.....\n......#....\n.....#.....\n....#......\n...#.q.....\n..#.#......\n.#...#.....\n..#..#.....\n.#########.\n###########\n\n#######.###\n#.....#...#\n#.#.#####.#\n#.#.#...#.#\n###.#.#.#.#\n#...#q#...#\n#.###.#.#.#\n#.....#.#.#\n#.###.###.#\n#...#..#..#\n###.#######\n\n\n..#...#...#\n.#.#.#.#.#.\n#...#...#..\n...........\n..#...#...#\n.#.#.q.#.#.\n#...#...#..\n...........\n..#...#...#\n.#.#.#.#.#.\n#...#...#..\n\n....###....\n..##.#.##..\n.#..#.#..#.\n.#..#.#..#.\n#..#...#..#\n#..#.q.#..#\n#.#.....#.#\n.#########.\n.#.......#.\n..##...##..\n....###....\n\n###########\n#.........#\n#.#######.#\n#.#.....#.#\n#.#.###.#.#\n#.#.#q#.#.#\n#.#.###.#.#\n#.#.....#.#\n#.#######.#\n#.........#\n###########\n\n...#####...\n..#..#..#..\n.#...#...#.\n.#...#...#.\n.#..#.#..#.\n..###q###..\n..#######..\n...#.#.#...\n...........\n...#.#.#...\n....###....\n\n.....#.....\n.....#.....\n..#######..\n..#..#..#..\n..#.....#..\n####.q.####\n..#.....#..\n..#..#..#..\n..#######..\n.....#.....\n.....#.....\n\n....###....\n..#######..\n.#########.\n.##..#..##.\n##..#.#..##\n#..#.q.#..#\n##..#.#..##\n.##..#..##.\n.#########.\n..#######..\n....###....\n\n#####.#####\n####.#.####\n###.###.###\n##.##.##.##\n#.##.#.##.#\n.##.#q#.##.\n#.##.#.##.#\n##.##.##.##\n###.###.###\n####.#.####\n#####.#####\n\n#..........\n#.#########\n#.#.......#\n#.#.#####.#\n#.#.#...#.#\n#.#.#q#.#.#\n#.#.###.#.#\n#.#.....#.#\n#.#######.#\n#.........#\n###########\n\n#####.#####\n#####.#####\n#####.#####\n#####.#####\n#####.#####\n.....q.....\n#####.#####\n#####.#####\n#####.#####\n#####.#####\n#####.#####\n\n###########\n###########\n###########\n###########\n###########\n#####q#####\n###########\n###########\n###########\n###########\n###########\n\nmessage the undertaking\n\n.....#.....\n....#.#....\n...#...#...\n###.....###\n#.........#\n.#...q...#.\n..#.....#..\n..#.....#..\n..#..#..#..\n..#.#.#.#..\n..##...##..\n\n.....#.....\n....#.#....\n...#...#...\n###.....###\n#.........#\n.#...q...#.\n..#.....#..\n..#.....#..\n..#..#..#..\n..#.#.#.#..\n..##...##..\n\n.....#.....\n....#.#....\n...#...#...\n###.....###\n#.........#\n.#...q...#.\n..#.....#..\n..#.....#..\n..#..#..#..\n..#.#.#.#..\n..##...##..\n\nmessage end\n\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background wall:0,0,0,0,0,0,0,0,0,0,0,\n0,background:1,0,1,0,1,0,1,0,1,0,\n0,1,1,1,0,0,0,1,0,1,0,\n0,1,1,1,1,1,0,0,0,1,0,\n0,0,1,background player:2,1,1,1,1,0,0,0,\n1,1,1,1,1,1,1,1,1,1,background exit:3,\n0,0,1,1,1,1,1,1,0,0,0,\n0,1,1,1,1,1,0,0,0,1,0,\n0,1,1,1,0,0,0,1,0,1,0,\n0,1,0,1,0,1,0,1,0,1,0,\n0,0,0,0,0,0,0,0,0,0,0,\n",31,"1627778765711.7197"] + ["title the undertaking\nauthor anna anthropy\nhomepage www.auntiepixelante.com\nnoaction\nnoundo\nnorestart\nrun_rules_on_level_start\nrealtime_interval 0.01\n\n========\nOBJECTS\n========\n\nBackground \nBlack\n\nExit \nTransparent\n\nWall \nWhite\n\nPlayer\nWhite\n..0..\n.000.\n00000\n.000.\n.0.0.\n\nAutoplayer\nGrey\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\np = Player\nq = Autoplayer\nE = Exit\n\n=======\nSOUNDS\n=======\n\nPlayer Move 20440307\nPlayer CantMove 24953107\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nExit\nPlayer, Autoplayer, Wall\n\n======\nRULES \n====== \n\n[ Autoplayer ] -> [ Player Exit ]\n\n==============\nWINCONDITIONS\n==============\n\nall Player on Exit\n\n======= \nLEVELS\n=======\n\nmessage the void\n\nEEEEEEEEEEE\nE.........E\nE.........E\nE.........E\nE.........E\nE....p....E\nE.........E\nE.........E\nE.........E\nE.........E\nEEEEEEEEEEE\n\nmessage deep in the woods\n\n###.EE.##..\n####..####.\n.#......#.#\n#.........#\n##.......##\n###.p...#.#\n#......##..\n.#....####.\n###..#..#..\n####.##...#\n.#..####.##\n\nmessage an ancient temple\n\n####EEE####\n#..#...#..#\n#.##...##.#\n#.........#\n#.........#\n#.#.....#.#\n#.........#\n#.........#\n#.##...##.#\n#..#.p.#..#\n####...####\n\nmessage the crumbling ruins\n\n......###EE\n#..#.##...E\n.##.#.#...#\n#.........#\n.#.#......#\n#...#....#.\n#.........#\n#.......#..\n#...#.....#\n....#.#...#\n.p.########\n\nmessage a lonely shoreline\n\n###########\n###.#######\n#.#####..##\n.##...####.\n#..###...##\n.##...###..\n#........##\n..........E\n.....####.E\np.########E\n###########\n\nmessage a forbidding cave\n\n##..#####EE\n..#.##.#..E\n##...#....E\n..#..#....#\n#.........#\n.........##\n.......####\np........##\n......#....\n#.#...#.#.#\n.#.#.#.#.#.\n\nmessage a rocky tunnel\n\n###########\n###.#####.#\n#.####.#..#\n#.#.#..#..E\n..#.......E\np.........E\n......#...E\n#.......#.E\n#.#.#..##.#\n###.##.####\n###########\n\nmessage a deserted cavern\n\n######EE###\n###..#....#\n#.........#\n...#.....##\n.........##\np.........#\n..........#\n..#......##\n#......#..#\n##.#....###\n###########\n\nmessage a huge mushroom\n\n...#.#..#.#\n.#.#....#.#\n.#.#.###..#\n###.#####.#\n#.#...#...#\n#....##..##\n.#...##...E\n#.........E\n#..#......E\n##.#....#.#\n####.p.####\n\nmessage a collapsed passage\n\n#######.EE#\n###...##..#\n##..#..##.#\n#.#..#.#..#\n#....#.#.##\n##.##..#..#\n#...#.....#\n#.#..#.#..#\n####.#...##\np.....#####\n###########\n\nmessage a mysterious house\n\n####...####\n#.#......##\n....#####.#\n#####...#.#\n#E#.#...#..\n#.#.....#.#\n#...#...#..\n######.##..\n...........\n##...#....#\n#######.p.#\n\nmessage a secret passage\n\n.####......\n.####......\n###########\n.#p#.......\n.#.##..#..#\n.#..##.....\n.##..######\n..##......#\n...######.#\n.#...#..#.#\n...#....#E#\n\nmessage standing stones\n\n..###.###..\n.#...p...#.\n#...#.#...#\n#.#.#.#.#.E\n#.#.....#.E\n#.........E\n#.#..#....E\n#.#.....#.E\n#...#.#.#.#\n.#..#.#..#.\n..#######..\n\nmessage high technology\n\n###########\n#....#....#\n#.##.######\n#....#....E\n..........E\np.........E\n..........E\n#....#....E\n#.##.######\n#....#....#\n###########\n\nmessage a strange factory\n\n###########\n..#.#.#.#.#\np.........#\n..........#\n#.#.#.###.#\n#######.#.#\n#.#.#.###.#\n#.........#\n#.........#\n#.#.#.#.#.#\n#E#########\n\nmessage the vestibule\n\n#####p#####\n#...#.#...#\n##.......##\n#.........#\n###.....###\n#.#.....#.#\n####...####\n#..#...#..#\n#####.#####\n#...#.#...#\n#####E#####\n\nmessage the device\n\n###########\n#....p....#\n#.........#\n#.........#\n#.###.###.#\n#..#...#..#\n####EEE####\n#..#...#..#\n#.###.###.#\n#.........#\n###########\n\nmessage the void\n\nEEEEEEEEEEE\nE.........E\nE.........E\nE.........E\nE.........E\nE....p....E\nE.........E\nE.........E\nE.........E\nE.........E\nEEEEEEEEEEE\n\nmessage a glimmer\n\n.......E...\n......E#E..\n.....E###E.\n....E##.##E\n.....E###E.\n......E#E..\n.......E...\n...........\n...........\n..p........\n...........\n\nmessage a flash\n\n.....#.....\n.....#.....\n.....#.....\n.....#.....\n.....#.....\n#####q#####\n.....#.....\n.....#.....\n.....#.....\n.....#.....\n.....#.....\n\n.....#.....\n....#.#....\n...#...#...\n..#..#..#..\n.#..#.#..#.\n#..#.q.#..#\n.#..#.#..#.\n..#..#..#..\n...#...#...\n....#.#....\n.....#.....\n\n###########\n#.........#\n#.#######.#\n#.#.....#.#\n#.#.###.#.#\n#.#.#q#.#.#\n#.#...#.#.#\n#.#####.#.#\n#.......#.#\n#########.#\n..........#\n\n...........\n...###.....\n.###....#..\n###...#####\n###....###.\n###..q.#.#.\n###........\n###.....#..\n####...##..\n.#######...\n..#####....\n\n....#......\n.....#.....\n......#....\n.....#.....\n....#......\n...#.q.....\n..#.#......\n.#...#.....\n..#..#.....\n.#########.\n###########\n\n#######.###\n#.....#...#\n#.#.#####.#\n#.#.#...#.#\n###.#.#.#.#\n#...#q#...#\n#.###.#.#.#\n#.....#.#.#\n#.###.###.#\n#...#..#..#\n###.#######\n\n\n..#...#...#\n.#.#.#.#.#.\n#...#...#..\n...........\n..#...#...#\n.#.#.q.#.#.\n#...#...#..\n...........\n..#...#...#\n.#.#.#.#.#.\n#...#...#..\n\n....###....\n..##.#.##..\n.#..#.#..#.\n.#..#.#..#.\n#..#...#..#\n#..#.q.#..#\n#.#.....#.#\n.#########.\n.#.......#.\n..##...##..\n....###....\n\n###########\n#.........#\n#.#######.#\n#.#.....#.#\n#.#.###.#.#\n#.#.#q#.#.#\n#.#.###.#.#\n#.#.....#.#\n#.#######.#\n#.........#\n###########\n\n...#####...\n..#..#..#..\n.#...#...#.\n.#...#...#.\n.#..#.#..#.\n..###q###..\n..#######..\n...#.#.#...\n...........\n...#.#.#...\n....###....\n\n.....#.....\n.....#.....\n..#######..\n..#..#..#..\n..#.....#..\n####.q.####\n..#.....#..\n..#..#..#..\n..#######..\n.....#.....\n.....#.....\n\n....###....\n..#######..\n.#########.\n.##..#..##.\n##..#.#..##\n#..#.q.#..#\n##..#.#..##\n.##..#..##.\n.#########.\n..#######..\n....###....\n\n#####.#####\n####.#.####\n###.###.###\n##.##.##.##\n#.##.#.##.#\n.##.#q#.##.\n#.##.#.##.#\n##.##.##.##\n###.###.###\n####.#.####\n#####.#####\n\n#..........\n#.#########\n#.#.......#\n#.#.#####.#\n#.#.#...#.#\n#.#.#q#.#.#\n#.#.###.#.#\n#.#.....#.#\n#.#######.#\n#.........#\n###########\n\n#####.#####\n#####.#####\n#####.#####\n#####.#####\n#####.#####\n.....q.....\n#####.#####\n#####.#####\n#####.#####\n#####.#####\n#####.#####\n\n###########\n###########\n###########\n###########\n###########\n#####q#####\n###########\n###########\n###########\n###########\n###########\n\nmessage the undertaking\n\n.....#.....\n....#.#....\n...#...#...\n###.....###\n#.........#\n.#...q...#.\n..#.....#..\n..#.....#..\n..#..#..#..\n..#.#.#.#..\n..##...##..\n\n.....#.....\n....#.#....\n...#...#...\n###.....###\n#.........#\n.#...q...#.\n..#.....#..\n..#.....#..\n..#..#..#..\n..#.#.#.#..\n..##...##..\n\n.....#.....\n....#.#....\n...#...#...\n###.....###\n#.........#\n.#...q...#.\n..#.....#..\n..#.....#..\n..#..#..#..\n..#.#.#.#..\n..##...##..\n\nmessage end\n\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background wall:0,0,0,0,0,0,0,0,0,0,0,\n0,background:1,0,1,0,1,0,1,0,1,0,\n0,1,1,1,0,0,0,1,0,1,0,\n0,1,1,1,1,1,0,0,0,1,0,\n0,0,1,background player:2,1,1,1,1,0,0,0,\n1,1,1,1,1,1,1,1,1,1,background exit:3,\n0,0,1,1,1,1,1,1,0,0,0,\n0,1,1,1,1,1,0,0,0,1,0,\n0,1,1,1,0,0,0,1,0,1,0,\n0,1,0,1,0,1,0,1,0,1,0,\n0,0,0,0,0,0,0,0,0,0,0,\n", 31, "1627778765711.7197"] ], [ `gallery: JAM3 Game`, - ["title JAM3 Game\nauthor chaotic_iak\n\nagain_interval 0.07\nkey_repeat_interval 0.2\nrun_rules_on_level_start\nverbose_logging\n\n========\nOBJECTS\n========\n(need better sprites)\n\nbackground\nwhite\n\ntarget\n#9ff\n\nplayer\nblack\n.....\n..0..\n.000.\n..0..\n.....\n\ngem1\n#c00 #f33\n.....\n.001.\n.000.\n.000.\n.....\n\ngem2\n#990 #cc3\n.....\n.001.\n.000.\n.000.\n.....\n\ngem3\n#0c0 #3f3\n.....\n.001.\n.000.\n.000.\n.....\n\ngem4\n#00c #33f\n.....\n.001.\n.000.\n.000.\n.....\n\ngem5\n#909 #c3c\n.....\n.001.\n.000.\n.000.\n.....\n\ngem1pop\n#c00\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\ngem2pop\n#990\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\ngem3pop\n#0c0\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\ngem4pop\n#00c\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\ngem5pop\n#909\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\nwall0\n#333 white\n00000\n00000\n00000\n00000\n00100\n\nwall1\n#333 #f33\n00000\n00000\n00000\n00000\n00100\n\nwall2\n#333 #cc3\n00000\n00000\n00000\n00000\n00100\n\nwall3\n#333 #3f3\n00000\n00000\n00000\n00000\n00100\n\nwall4\n#333 #33f\n00000\n00000\n00000\n00000\n00100\n\nwall5\n#333 #c3c\n00000\n00000\n00000\n00000\n00100\n\nwalls\n#333\n\nlv1\nwhite\n.00..\n..0..\n..0..\n..0..\n.000.\n\nlv2\nwhite\n.000.\n...0.\n.000.\n.0...\n.000.\n\nlv3\nwhite\n.000.\n...0.\n.000.\n...0.\n.000.\n\nlv4\nwhite\n.0.0.\n.0.0.\n.000.\n...0.\n...0.\n\nlv5\nwhite\n.000.\n.0...\n.000.\n...0.\n.000.\n\nlv6\nwhite\n.000.\n.0...\n.000.\n.0.0.\n.000.\n\nlv7\nwhite\n.000.\n...0.\n..0..\n..0..\n..0..\n\nlv8\nwhite\n.000.\n.0.0.\n.000.\n.0.0.\n.000.\n\nlv9\nwhite\n.000.\n.0.0.\n.000.\n...0.\n.000.\n\nlv10\nwhite\n0.000\n0.0.0\n0.0.0\n0.0.0\n0.000\n\nlv11\nwhite\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n\nlv12\nwhite\n0.000\n0...0\n0.000\n0.0..\n0.000\n\nlv13\nwhite\n0.000\n0...0\n0.000\n0...0\n0.000\n\nlv14\nwhite\n0.0.0\n0.0.0\n0.000\n0...0\n0...0\n\nlv15\nwhite\n0.000\n0.0..\n0.000\n0...0\n0.000\n\nlvbin0\nred\n\nlvbin1\nblue\n\nstartlevel\nblack\n\npop\nblack\n\nremnant\nblack\n\nresume\nblack\n\nwinmarker\nblack\n\n=======\nLEGEND\n=======\n. = background\n* = target\n# = walls\np = wall0\nq = wall1\nw = wall2\ne = wall3\nr = wall4\nt = wall5\n& = player and startlevel\n0 = walls and lvbin0\n1 = walls and lvbin1\n\ngem = gem1 or gem2 or gem3 or gem4 or gem5\ngempop = gem1pop or gem2pop or gem3pop or gem4pop or gem5pop\nmovable = player or gem\nwall = walls or wall0 or wall1 or wall2 or wall3 or wall4 or wall5\nobject = player or gem or gempop or wall\nmarker = startlevel or pop or remnant or winmarker\nlv = lv1 or lv2 or lv3 or lv4 or lv5 or lv6 or lv7 or lv8 or lv9 or lv10 or lv11 or lv12 or lv13 or lv14 or lv15\n\n=======\nSOUNDS\n=======\ngempop create 66716500\nendlevel 54419303\n\n================\nCOLLISIONLAYERS\n================\nresume\nmarker\nbackground\ntarget\nwall, player\ngem, gempop\nlv, lvbin0, lvbin1\n\n======\nRULES\n======\n(start level: generate gems)\n[startlevel][no wall no player no gem] -> [startlevel][random gem]\nstartloop\n [startlevel][gem1|gem1|gem1] -> [startlevel][random gem|random gem|random gem]\n+[startlevel][gem2|gem2|gem2] -> [startlevel][random gem|random gem|random gem]\n+[startlevel][gem3|gem3|gem3] -> [startlevel][random gem|random gem|random gem]\n+[startlevel][gem4|gem4|gem4] -> [startlevel][random gem|random gem|random gem]\n+[startlevel][gem5|gem5|gem5] -> [startlevel][random gem|random gem|random gem]\ndown [startlevel][wall1|gem no gem1] -> [startlevel][wall1|gem1]\n+ [startlevel][wall2|gem no gem2] -> [startlevel][wall2|gem2]\n+ [startlevel][wall3|gem no gem3] -> [startlevel][wall3|gem3]\n+ [startlevel][wall4|gem no gem4] -> [startlevel][wall4|gem4]\n+ [startlevel][wall5|gem no gem5] -> [startlevel][wall5|gem5]\nendloop\n\n(start level: generate level number)\nright [startlevel][lvbin0|lvbin0|lvbin0|lvbin1] -> [startlevel][lv1|||]\nright [startlevel][lvbin0|lvbin0|lvbin1|lvbin0] -> [startlevel][lv2|||]\nright [startlevel][lvbin0|lvbin0|lvbin1|lvbin1] -> [startlevel][lv3|||]\nright [startlevel][lvbin0|lvbin1|lvbin0|lvbin0] -> [startlevel][lv4|||]\nright [startlevel][lvbin0|lvbin1|lvbin0|lvbin1] -> [startlevel][lv5|||]\nright [startlevel][lvbin0|lvbin1|lvbin1|lvbin0] -> [startlevel][lv6|||]\nright [startlevel][lvbin0|lvbin1|lvbin1|lvbin1] -> [startlevel][lv7|||]\nright [startlevel][lvbin1|lvbin0|lvbin0|lvbin0] -> [startlevel][lv8|||]\nright [startlevel][lvbin1|lvbin0|lvbin0|lvbin1] -> [startlevel][lv9|||]\nright [startlevel][lvbin1|lvbin0|lvbin1|lvbin0] -> [startlevel][lv10|||]\nright [startlevel][lvbin1|lvbin0|lvbin1|lvbin1] -> [startlevel][lv11|||]\nright [startlevel][lvbin1|lvbin1|lvbin0|lvbin0] -> [startlevel][lv12|||]\nright [startlevel][lvbin1|lvbin1|lvbin0|lvbin1] -> [startlevel][lv13|||]\nright [startlevel][lvbin1|lvbin1|lvbin1|lvbin0] -> [startlevel][lv14|||]\nright [startlevel][lvbin1|lvbin1|lvbin1|lvbin1] -> [startlevel][lv15|||]\n[startlevel] -> []\n\n(move)\n[> player|gem] -> [gem|player]\n\n(drop gems)\n[resume] -> []\n[lv][remnant] -> [lv resume][]\ndown [movable|no object][lv] -> [> movable|][lv resume]\ndown [movable|> movable][lv] -> [> movable|> movable][lv resume]\nlate down [resume][wall0|no object] -> [resume][wall0|random gem] again\nlate down [resume][wall1|no object] -> [resume][wall1|gem1] again\nlate down [resume][wall2|no object] -> [resume][wall2|gem2] again\nlate down [resume][wall3|no object] -> [resume][wall3|gem3] again\nlate down [resume][wall4|no object] -> [resume][wall4|gem4] again\nlate down [resume][wall5|no object] -> [resume][wall5|gem5] again\n\n(pop, with animation)\n[gempop] -> [remnant] again\n[gem1 pop] -> [gem1pop]\n[gem2 pop] -> [gem2pop]\n[gem3 pop] -> [gem3pop]\n[gem4 pop] -> [gem4pop]\n[gem5 pop] -> [gem5pop]\n[gempop] -> again\n\n(win check)\nlate [lv] -> [lv winmarker]\nlate [winmarker][target player] -> [][target player]\nlate [winmarker][target gem] -> [][target gem]\nlate [winmarker][target gem1pop][target gem2pop] -> [][target gem1pop][target gem2pop]\nlate [winmarker][target gem1pop][target gem3pop] -> [][target gem1pop][target gem3pop]\nlate [winmarker][target gem1pop][target gem4pop] -> [][target gem1pop][target gem4pop]\nlate [winmarker][target gem1pop][target gem5pop] -> [][target gem1pop][target gem5pop]\nlate [winmarker][target gem2pop][target gem3pop] -> [][target gem2pop][target gem3pop]\nlate [winmarker][target gem2pop][target gem4pop] -> [][target gem2pop][target gem4pop]\nlate [winmarker][target gem2pop][target gem5pop] -> [][target gem2pop][target gem5pop]\nlate [winmarker][target gem3pop][target gem4pop] -> [][target gem3pop][target gem4pop]\nlate [winmarker][target gem3pop][target gem5pop] -> [][target gem3pop][target gem5pop]\nlate [winmarker][target gem4pop][target gem5pop] -> [][target gem4pop][target gem5pop]\n\n(prepare popping)\nlate [lv no resume][gem1|gem1|gem1] -> [lv][gem1 pop|gem1 pop|gem1 pop]\nlate [lv no resume][gem2|gem2|gem2] -> [lv][gem2 pop|gem2 pop|gem2 pop]\nlate [lv no resume][gem3|gem3|gem3] -> [lv][gem3 pop|gem3 pop|gem3 pop]\nlate [lv no resume][gem4|gem4|gem4] -> [lv][gem4 pop|gem4 pop|gem4 pop]\nlate [lv no resume][gem5|gem5|gem5] -> [lv][gem5 pop|gem5 pop|gem5 pop]\nlate [gem pop] -> again\n\n==============\nWINCONDITIONS\n==============\nsome winmarker\n\n=======\nLEVELS\n=======\nmessage JUST ANOTHER MATCH 3 GAME\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#.....&....#\n#..........#\n#..........#\n#...****...#\n#..........#\n#..........#\n#..........#\n0001########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#....*.....#\n#...****...#\n#....*.....#\n#....*.&...#\n#..........#\n#..........#\n#..........#\n0010########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#.....&....#\n#..........#\n#..........#\n#..******..#\n#..........#\n#..........#\n#..........#\n0011########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#...#*#....#\n#...#*#....#\n#...#*#....#\n#...ppp&...#\n#..........#\n#..........#\n#..........#\n0100########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#.....&....#\n#....qr#...#\n#...***#...#\n#....ppp...#\n#..........#\n#..........#\n#..........#\n0101########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#....***...#\n#..........#\n#......&...#\n#...***....#\n#..........#\n#..........#\n#..........#\n0110########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#...***....#\n#...*&*....#\n#...***....#\n#..........#\n#..........#\n#..........#\n0111########\n\n",[0,1,1,2,2,3,3,0,0,0,0,3,0],"background walls:0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background lv3 walls:1,background wall0:2,background gem1:3,background gem4:4,background gem3:5,background gem2:6,6,3,6,\n6,5,background gem5:7,5,6,4,5,0,2,6,3,5,\n7,6,4,3,7,5,4,5,5,6,5,0,\n2,3,5,7,5,4,6,7,6,7,3,background gem4 target:8,\n6,7,6,0,2,4,7,3,4,4,3,3,\n4,3,7,background gem2 target:9,5,6,6,0,2,4,4,5,\n7,5,4,7,4,6,6,background gem5 target:10,3,4,3,0,\n2,5,7,3,3,6,7,4,3,3,4,9,\n6,4,4,0,2,6,4,4,5,4,background player:11,5,\n3,4,7,8,5,7,7,0,2,5,4,7,\n5,6,5,3,7,7,3,background gem3 target:12,3,4,6,0,\n2,4,5,7,3,4,6,5,4,6,6,4,\n3,7,5,0,2,3,6,6,4,6,6,3,\n7,7,4,5,5,7,3,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,\n",3,"1627778784846.1284"] + ["title JAM3 Game\nauthor chaotic_iak\n\nagain_interval 0.07\nkey_repeat_interval 0.2\nrun_rules_on_level_start\nverbose_logging\n\n========\nOBJECTS\n========\n(need better sprites)\n\nbackground\nwhite\n\ntarget\n#9ff\n\nplayer\nblack\n.....\n..0..\n.000.\n..0..\n.....\n\ngem1\n#c00 #f33\n.....\n.001.\n.000.\n.000.\n.....\n\ngem2\n#990 #cc3\n.....\n.001.\n.000.\n.000.\n.....\n\ngem3\n#0c0 #3f3\n.....\n.001.\n.000.\n.000.\n.....\n\ngem4\n#00c #33f\n.....\n.001.\n.000.\n.000.\n.....\n\ngem5\n#909 #c3c\n.....\n.001.\n.000.\n.000.\n.....\n\ngem1pop\n#c00\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\ngem2pop\n#990\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\ngem3pop\n#0c0\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\ngem4pop\n#00c\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\ngem5pop\n#909\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\nwall0\n#333 white\n00000\n00000\n00000\n00000\n00100\n\nwall1\n#333 #f33\n00000\n00000\n00000\n00000\n00100\n\nwall2\n#333 #cc3\n00000\n00000\n00000\n00000\n00100\n\nwall3\n#333 #3f3\n00000\n00000\n00000\n00000\n00100\n\nwall4\n#333 #33f\n00000\n00000\n00000\n00000\n00100\n\nwall5\n#333 #c3c\n00000\n00000\n00000\n00000\n00100\n\nwalls\n#333\n\nlv1\nwhite\n.00..\n..0..\n..0..\n..0..\n.000.\n\nlv2\nwhite\n.000.\n...0.\n.000.\n.0...\n.000.\n\nlv3\nwhite\n.000.\n...0.\n.000.\n...0.\n.000.\n\nlv4\nwhite\n.0.0.\n.0.0.\n.000.\n...0.\n...0.\n\nlv5\nwhite\n.000.\n.0...\n.000.\n...0.\n.000.\n\nlv6\nwhite\n.000.\n.0...\n.000.\n.0.0.\n.000.\n\nlv7\nwhite\n.000.\n...0.\n..0..\n..0..\n..0..\n\nlv8\nwhite\n.000.\n.0.0.\n.000.\n.0.0.\n.000.\n\nlv9\nwhite\n.000.\n.0.0.\n.000.\n...0.\n.000.\n\nlv10\nwhite\n0.000\n0.0.0\n0.0.0\n0.0.0\n0.000\n\nlv11\nwhite\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n\nlv12\nwhite\n0.000\n0...0\n0.000\n0.0..\n0.000\n\nlv13\nwhite\n0.000\n0...0\n0.000\n0...0\n0.000\n\nlv14\nwhite\n0.0.0\n0.0.0\n0.000\n0...0\n0...0\n\nlv15\nwhite\n0.000\n0.0..\n0.000\n0...0\n0.000\n\nlvbin0\nred\n\nlvbin1\nblue\n\nstartlevel\nblack\n\npop\nblack\n\nremnant\nblack\n\nresume\nblack\n\nwinmarker\nblack\n\n=======\nLEGEND\n=======\n. = background\n* = target\n# = walls\np = wall0\nq = wall1\nw = wall2\ne = wall3\nr = wall4\nt = wall5\n& = player and startlevel\n0 = walls and lvbin0\n1 = walls and lvbin1\n\ngem = gem1 or gem2 or gem3 or gem4 or gem5\ngempop = gem1pop or gem2pop or gem3pop or gem4pop or gem5pop\nmovable = player or gem\nwall = walls or wall0 or wall1 or wall2 or wall3 or wall4 or wall5\nobject = player or gem or gempop or wall\nmarker = startlevel or pop or remnant or winmarker\nlv = lv1 or lv2 or lv3 or lv4 or lv5 or lv6 or lv7 or lv8 or lv9 or lv10 or lv11 or lv12 or lv13 or lv14 or lv15\n\n=======\nSOUNDS\n=======\ngempop create 66716500\nendlevel 54419303\n\n================\nCOLLISIONLAYERS\n================\nresume\nmarker\nbackground\ntarget\nwall, player\ngem, gempop\nlv, lvbin0, lvbin1\n\n======\nRULES\n======\n(start level: generate gems)\n[startlevel][no wall no player no gem] -> [startlevel][random gem]\nstartloop\n [startlevel][gem1|gem1|gem1] -> [startlevel][random gem|random gem|random gem]\n+[startlevel][gem2|gem2|gem2] -> [startlevel][random gem|random gem|random gem]\n+[startlevel][gem3|gem3|gem3] -> [startlevel][random gem|random gem|random gem]\n+[startlevel][gem4|gem4|gem4] -> [startlevel][random gem|random gem|random gem]\n+[startlevel][gem5|gem5|gem5] -> [startlevel][random gem|random gem|random gem]\ndown [startlevel][wall1|gem no gem1] -> [startlevel][wall1|gem1]\n+ [startlevel][wall2|gem no gem2] -> [startlevel][wall2|gem2]\n+ [startlevel][wall3|gem no gem3] -> [startlevel][wall3|gem3]\n+ [startlevel][wall4|gem no gem4] -> [startlevel][wall4|gem4]\n+ [startlevel][wall5|gem no gem5] -> [startlevel][wall5|gem5]\nendloop\n\n(start level: generate level number)\nright [startlevel][lvbin0|lvbin0|lvbin0|lvbin1] -> [startlevel][lv1|||]\nright [startlevel][lvbin0|lvbin0|lvbin1|lvbin0] -> [startlevel][lv2|||]\nright [startlevel][lvbin0|lvbin0|lvbin1|lvbin1] -> [startlevel][lv3|||]\nright [startlevel][lvbin0|lvbin1|lvbin0|lvbin0] -> [startlevel][lv4|||]\nright [startlevel][lvbin0|lvbin1|lvbin0|lvbin1] -> [startlevel][lv5|||]\nright [startlevel][lvbin0|lvbin1|lvbin1|lvbin0] -> [startlevel][lv6|||]\nright [startlevel][lvbin0|lvbin1|lvbin1|lvbin1] -> [startlevel][lv7|||]\nright [startlevel][lvbin1|lvbin0|lvbin0|lvbin0] -> [startlevel][lv8|||]\nright [startlevel][lvbin1|lvbin0|lvbin0|lvbin1] -> [startlevel][lv9|||]\nright [startlevel][lvbin1|lvbin0|lvbin1|lvbin0] -> [startlevel][lv10|||]\nright [startlevel][lvbin1|lvbin0|lvbin1|lvbin1] -> [startlevel][lv11|||]\nright [startlevel][lvbin1|lvbin1|lvbin0|lvbin0] -> [startlevel][lv12|||]\nright [startlevel][lvbin1|lvbin1|lvbin0|lvbin1] -> [startlevel][lv13|||]\nright [startlevel][lvbin1|lvbin1|lvbin1|lvbin0] -> [startlevel][lv14|||]\nright [startlevel][lvbin1|lvbin1|lvbin1|lvbin1] -> [startlevel][lv15|||]\n[startlevel] -> []\n\n(move)\n[> player|gem] -> [gem|player]\n\n(drop gems)\n[resume] -> []\n[lv][remnant] -> [lv resume][]\ndown [movable|no object][lv] -> [> movable|][lv resume]\ndown [movable|> movable][lv] -> [> movable|> movable][lv resume]\nlate down [resume][wall0|no object] -> [resume][wall0|random gem] again\nlate down [resume][wall1|no object] -> [resume][wall1|gem1] again\nlate down [resume][wall2|no object] -> [resume][wall2|gem2] again\nlate down [resume][wall3|no object] -> [resume][wall3|gem3] again\nlate down [resume][wall4|no object] -> [resume][wall4|gem4] again\nlate down [resume][wall5|no object] -> [resume][wall5|gem5] again\n\n(pop, with animation)\n[gempop] -> [remnant] again\n[gem1 pop] -> [gem1pop]\n[gem2 pop] -> [gem2pop]\n[gem3 pop] -> [gem3pop]\n[gem4 pop] -> [gem4pop]\n[gem5 pop] -> [gem5pop]\n[gempop] -> again\n\n(win check)\nlate [lv] -> [lv winmarker]\nlate [winmarker][target player] -> [][target player]\nlate [winmarker][target gem] -> [][target gem]\nlate [winmarker][target gem1pop][target gem2pop] -> [][target gem1pop][target gem2pop]\nlate [winmarker][target gem1pop][target gem3pop] -> [][target gem1pop][target gem3pop]\nlate [winmarker][target gem1pop][target gem4pop] -> [][target gem1pop][target gem4pop]\nlate [winmarker][target gem1pop][target gem5pop] -> [][target gem1pop][target gem5pop]\nlate [winmarker][target gem2pop][target gem3pop] -> [][target gem2pop][target gem3pop]\nlate [winmarker][target gem2pop][target gem4pop] -> [][target gem2pop][target gem4pop]\nlate [winmarker][target gem2pop][target gem5pop] -> [][target gem2pop][target gem5pop]\nlate [winmarker][target gem3pop][target gem4pop] -> [][target gem3pop][target gem4pop]\nlate [winmarker][target gem3pop][target gem5pop] -> [][target gem3pop][target gem5pop]\nlate [winmarker][target gem4pop][target gem5pop] -> [][target gem4pop][target gem5pop]\n\n(prepare popping)\nlate [lv no resume][gem1|gem1|gem1] -> [lv][gem1 pop|gem1 pop|gem1 pop]\nlate [lv no resume][gem2|gem2|gem2] -> [lv][gem2 pop|gem2 pop|gem2 pop]\nlate [lv no resume][gem3|gem3|gem3] -> [lv][gem3 pop|gem3 pop|gem3 pop]\nlate [lv no resume][gem4|gem4|gem4] -> [lv][gem4 pop|gem4 pop|gem4 pop]\nlate [lv no resume][gem5|gem5|gem5] -> [lv][gem5 pop|gem5 pop|gem5 pop]\nlate [gem pop] -> again\n\n==============\nWINCONDITIONS\n==============\nsome winmarker\n\n=======\nLEVELS\n=======\nmessage JUST ANOTHER MATCH 3 GAME\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#.....&....#\n#..........#\n#..........#\n#...****...#\n#..........#\n#..........#\n#..........#\n0001########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#....*.....#\n#...****...#\n#....*.....#\n#....*.&...#\n#..........#\n#..........#\n#..........#\n0010########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#.....&....#\n#..........#\n#..........#\n#..******..#\n#..........#\n#..........#\n#..........#\n0011########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#...#*#....#\n#...#*#....#\n#...#*#....#\n#...ppp&...#\n#..........#\n#..........#\n#..........#\n0100########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#.....&....#\n#....qr#...#\n#...***#...#\n#....ppp...#\n#..........#\n#..........#\n#..........#\n0101########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#....***...#\n#..........#\n#......&...#\n#...***....#\n#..........#\n#..........#\n#..........#\n0110########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#...***....#\n#...*&*....#\n#...***....#\n#..........#\n#..........#\n#..........#\n0111########\n\n", [0, 1, 1, 2, 2, 3, 3, 0, 0, 0, 0, 3, 0], "background walls:0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background lv3 walls:1,background wall0:2,background gem1:3,background gem4:4,background gem3:5,background gem2:6,6,3,6,\n6,5,background gem5:7,5,6,4,5,0,2,6,3,5,\n7,6,4,3,7,5,4,5,5,6,5,0,\n2,3,5,7,5,4,6,7,6,7,3,background gem4 target:8,\n6,7,6,0,2,4,7,3,4,4,3,3,\n4,3,7,background gem2 target:9,5,6,6,0,2,4,4,5,\n7,5,4,7,4,6,6,background gem5 target:10,3,4,3,0,\n2,5,7,3,3,6,7,4,3,3,4,9,\n6,4,4,0,2,6,4,4,5,4,background player:11,5,\n3,4,7,8,5,7,7,0,2,5,4,7,\n5,6,5,3,7,7,3,background gem3 target:12,3,4,6,0,\n2,4,5,7,3,4,6,5,4,6,6,4,\n3,7,5,0,2,3,6,6,4,6,6,3,\n7,7,4,5,5,7,3,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,\n", 3, "1627778784846.1284"] ], [ `gallery: dharma dojo demake`, - ["(version 1.2.1)\ntitle Dharma Dojo demake\nauthor Metro [cloned by CHz]\nhomepage quiteajolt.com\n\nagain_interval 0.03\nrun_rules_on_level_start\n\n\n========\nOBJECTS\n========\n\nBackground \nGreen \n\nWall \nBrown\n\nCeiling\nBrown\n\n\nPlayer\nBlack\n...00\n..000\n..000\n..0..\n.0...\n\nDeadPlayer\nBlack\n...00\n..000\n..000\n..0..\n.0...\n\nPlayerSmacking\nBlack\n000..\n0000.\n000..\n.0...\n.0...\n\n\nBlock1\nRed\n.000.\n00000\n00000\n00000\n.000.\n\nBlock2\nBlue\n..0..\n.000.\n00000\n.000.\n..0..\n\nBlock3\nYellow\n..0..\n.000.\n.000.\n00000\n00000\n\nBlock4\nWhite\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nBlock5\nDarkBrown\n..0..\n..0..\n00000\n..0..\n..0..\n\nBlock6\nLightBlue\n00000\n00000\n.....\n00000\n00000\n\nBlock7\nOrange\n00.00\n00.00\n00.00\n00.00\n00.00\n\n\nChute\nGray Black\n01110\n01110\n01110\n01110\n01110\n\nFeeder\nGray Black\n01110\n01111\n01111\n01111\n00000\n\nHopper\nGray Black\n00000\n11111\n11111\n11111\n00000\n\n\nSetsToken1\nTransparent\n\nSetsToken2\nTransparent\n\nSetsToken3\nTransparent\n\nSetsToken4\nTransparent\n\nSetsToken5\nTransparent\n\nSetsToken6\nTransparent\n\nSetsToken7\nTransparent\n\nBlockToken\nTransparent\n\nField\nTransparent\n\n\nAssertGravityToken\nTransparent\n\nMatchTokenPositive\nTransparent\n\nMatchTokenNegative\nTransparent\n\nCheckMatchToken\nTransparent\n\n\nDeathCoverSeed1\nTransparent\n\nDeathCoverSeed2\nTransparent\n\nDeathCover1\nRed\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\nDeathCover1Token\nTransparent\n\nDeathCover2\nRed\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nDeathCover2Token\nTransparent\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nx = Ceiling\n\nP = Player\n\n| = Chute\n- = Hopper\n1 = Feeder and SetsToken1\n2 = Feeder and SetsToken1 and SetsToken2\n3 = Feeder and SetsToken1 and SetsToken2 and SetsToken3\n4 = Feeder and SetsToken1 and SetsToken2 and SetsToken3 and SetsToken4\n5 = Feeder and SetsToken1 and SetsToken2 and SetsToken3 and SetsToken4 and SetsToken5\n6 = Feeder and SetsToken1 and SetsToken2 and SetsToken3 and SetsToken4 and SetsToken5 and SetsToken6\n7 = Feeder and SetsToken1 and SetsToken2 and SetsToken3 and SetsToken4 and SetsToken5 and SetsToken6 and SetsToken7\nSetsToken = SetsToken1 or SetsToken2 or SetsToken3 or SetsToken4 or SetsToken5 or SetsToken6 or SetsToken7\n\nF = Field\n\nBlock = Block1 or Block2 or Block3 or Block4 or Block5 or Block6 or Block7\n\nMatchToken = MatchTokenPositive or MatchTokenNegative\n\nDeathCover = DeathCoverSeed1 or DeathCoverSeed2 or DeathCover1 or DeathCover2\nDeathCoverToken = DeathCover1Token or DeathCover2Token\n\n\n=======\nSOUNDS\n=======\n\nsfx0 23301902 (death)\nsfx1 79689507 (smack)\nsfx2 69201902 (clear)\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nCeiling Chute Feeder Hopper\nWall Block Field\nPlayer DeadPlayer PlayerSmacking\nBlockToken AssertGravityToken MatchToken CheckMatchToken DeathCover DeathCoverToken\nSetsToken1\nSetsToken2\nSetsToken3\nSetsToken4\nSetsToken5\nSetsToken6\nSetsToken7\n\n\n======\nRULES \n====== \n\n(================\n LEVEL GENERATION\n ================)\n\n(Randomly splat down N blocks for each requested color, where N is the length of the hopper.)\n[SetsToken1] [Hopper] -> [SetsToken1] [Hopper BlockToken]\nstartloop\nrandom [Field] [BlockToken] [SetsToken1] -> [Block1] [BlockToken] [SetsToken1]\nrandom [Field] [BlockToken] [SetsToken2] -> [Block2] [BlockToken] [SetsToken2]\nrandom [Field] [BlockToken] [SetsToken3] -> [Block3] [BlockToken] [SetsToken3]\nrandom [Field] [BlockToken] [SetsToken4] -> [Block4] [BlockToken] [SetsToken4]\nrandom [Field] [BlockToken] [SetsToken5] -> [Block5] [BlockToken] [SetsToken5]\nrandom [Field] [BlockToken] [SetsToken6] -> [Block6] [BlockToken] [SetsToken6]\nrandom [Field] [BlockToken] [SetsToken7] -> [Block7] [BlockToken] [SetsToken7]\nrandom [BlockToken] -> []\nendloop\n[SetsToken] -> [no SetsToken]\n\n(Shove all the blocks down and then to the left.)\nDOWN [Block | Field] -> [Field | Block]\nRIGHT [Field | Block] -> [Block | Field]\n[Field] -> []\n\n\n(===============\n PLAYER MOVEMENT\n ===============)\n\n(Player can only move up and down, and they'll automatically snap to the end of the row. If the player tries to move into the frame, then cancel the move.)\n[Left Player] -> [Action Player]\nlate RIGHT [no Block no Chute | Player] -> [Player | ]\nlate RIGHT [Player Block | ] -> [Block | Player]\nlate [Player Feeder] -> cancel\nlate [Player Wall] -> cancel\nlate [Player Ceiling] -> cancel\n\n\n(============\n ROW SMACKING\n ============)\n\n(These rules are listed in reverse order so that they can happen sequentially with again statements for animation.)\n\n(4. When the receptacle is full, clear it if it's all the same color or push the stack up if it's mixed.)\nRIGHT [Feeder | MatchToken] [PlayerSmacking] -> [Feeder | MatchToken] [PlayerSmacking CheckMatchToken]\n[MatchTokenNegative] [PlayerSmacking CheckMatchToken] -> [MatchTokenNegative] [PlayerSmacking]\n[PlayerSmacking CheckMatchToken] [Block MatchToken] -> [PlayerSmacking CheckMatchToken] [] sfx2\n[PlayerSmacking CheckMatchToken] -> [Player]\nRIGHT [Feeder | Block MatchToken] -> [Feeder | ^ Block MatchToken]\nRIGHT [^ Block Hopper | Block] -> [^ Block Hopper | ^ Block]\nDOWN [Block | < Block] -> [< Block | < Block]\nDOWN [PlayerSmacking | < Block] -> [< PlayerSmacking | < Block]\nlate [MatchToken no Block] [PlayerSmacking] -> [] [Player] again\nlate [MatchToken no Block] -> [] \n\n(3. Pull the block in the chute to the right when it's at the bottom and check if its color matches the block it's next to.)\nRIGHT [Block no MatchToken | Hopper] -> [> Block no MatchToken | Hopper] again\nlate RIGHT [PlayerSmacking] [Block no MatchToken | Wall] -> [Player] [Block MatchTokenPositive | Wall]\nlate RIGHT [PlayerSmacking] [Block1 no MatchToken | Block1 MatchTokenPositive] -> [Player] [Block1 MatchTokenPositive | Block1 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block2 no MatchToken | Block2 MatchTokenPositive] -> [Player] [Block2 MatchTokenPositive | Block2 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block3 no MatchToken | Block3 MatchTokenPositive] -> [Player] [Block3 MatchTokenPositive | Block3 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block4 no MatchToken | Block4 MatchTokenPositive] -> [Player] [Block4 MatchTokenPositive | Block4 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block5 no MatchToken | Block5 MatchTokenPositive] -> [Player] [Block5 MatchTokenPositive | Block5 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block6 no MatchToken | Block6 MatchTokenPositive] -> [Player] [Block6 MatchTokenPositive | Block6 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block7 no MatchToken | Block7 MatchTokenPositive] -> [Player] [Block7 MatchTokenPositive | Block7 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block no MatchToken | Block MatchToken] -> [Player] [Block MatchTokenNegative | Block MatchToken]\n(When the block is moved into position, control is returned to the player above. But when the hopper is full, we still have stuff to do, so we'll cancel that.)\nlate RIGHT [Player] [Feeder | Block] -> [PlayerSmacking] [Feeder | Block]\n\n(2. Assert gravity: pull the stack and the block in the chute down.)\nDOWN [AssertGravityToken] [Block | no Wall no Hopper] -> [AssertGravityToken] [> Block | ] again\n[AssertGravityToken] -> []\n(The AssertGravityToken rule in the step 1 block below will continue to trigger until the block reaches the bottom left corner, repeating this block.)\n\n(1. Push the row to the left.)\nRIGHT [Block | Action Player] -> [Block | Action PlayerSmacking] sfx1\nRIGHT [Block | Action PlayerSmacking] -> [< Block | Action PlayerSmacking]\nRIGHT [Block | < Block] -> [< Block | < Block]\nlate [Block Chute] [PlayerSmacking] -> [Block Chute] [PlayerSmacking AssertGravityToken] again\n\n\n(=========\n GAME OVER\n =========)\n\n(If a block hits the kill zone at the top, cover the screen with the death overlay and kill the player.)\nrandom [Block Ceiling no DeathCover] -> [Block Ceiling DeathCoverSeed1]\nstartloop\n[Block Ceiling DeathCoverSeed1 | Block Ceiling no DeathCover] -> [Block Ceiling DeathCoverSeed1 | Block Ceiling DeathCoverSeed2]\n[Block Ceiling DeathCoverSeed2 | Block Ceiling no DeathCover] -> [Block Ceiling DeathCoverSeed2 | Block Ceiling DeathCoverSeed1]\nendloop\n[DeathCoverSeed1 | no DeathCover] -> [DeathCoverSeed1 | DeathCover1Token]\n[DeathCoverSeed2 | no DeathCover] -> [DeathCoverSeed2 | DeathCover2Token]\n\n[Player] [DeathCoverToken] -> [DeadPlayer] [DeathCoverToken] sfx0\n[DeathCover1 | no DeathCover] -> [DeathCover1 | DeathCover2Token]\n[DeathCover2 | no DeathCover] -> [DeathCover2 | DeathCover1Token]\nlate [DeathCover1Token] -> [DeathCover1 no DeathCover1Token] again\nlate [DeathCover2Token] -> [DeathCover2 no DeathCover2Token] again\n \n\n==============\nWINCONDITIONS\n==============\n\nNo Block\n\n\n======= \nLEVELS\n=======\n\nmessage Move up and down with the arrows and hammer a row with X.\nmessage Fill the hopper with blocks of the same color to clear them. A mismatched row will be pushed back up into the stack.\nmessage Clear all the blocks to proceed.\n\nxxxxxxx\n|.....#\n|.....#\n|.....#\n|.....#\n|.....#\n|.....#\n|FFFF.#\n|FFFF.#\n|FFFF.#\n|FFFFP#\n4---###\n\nmessage Don't let blocks hit the ceiling!\nmessage Z undoes moves. R will reset with a new puzzle.\n\nxxxxxxxx\n|......#\n|......#\n|FFFFF.#\n|FFFFF.#\n|FFFFF.#\n|FFFFF.#\n|FFFFFP#\n5----###\n\nxxxxxxxxx\n|.......#\n|.......#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFFP#\n6-----###\n\nxxxxxxxxxx\n|........#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFFP#\n7------###\n\nxxxxxxxxx\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFFP#\n4------##\n\nmessage :)\n",[0,1,0,1,1,2,1,2,1,1,2,1,0,0,1,1],"background ceiling:0,background chute:1,1,1,1,1,1,\n1,1,1,1,background feeder:2,0,background:3,\n3,3,3,3,3,background block2:4,background block1:5,\n4,background block4:6,background hopper:7,0,3,3,3,\n3,3,3,background player:8,6,6,5,\n7,0,3,3,3,3,3,\n3,3,3,3,5,7,0,\n3,3,3,3,3,3,3,\n3,3,4,background wall:9,0,3,3,\n3,3,3,3,3,3,3,\n3,9,0,9,9,9,9,\n9,9,9,9,9,9,9,\n",3,"1627778809256.5396"] + ["(version 1.2.1)\ntitle Dharma Dojo demake\nauthor Metro [cloned by CHz]\nhomepage quiteajolt.com\n\nagain_interval 0.03\nrun_rules_on_level_start\n\n\n========\nOBJECTS\n========\n\nBackground \nGreen \n\nWall \nBrown\n\nCeiling\nBrown\n\n\nPlayer\nBlack\n...00\n..000\n..000\n..0..\n.0...\n\nDeadPlayer\nBlack\n...00\n..000\n..000\n..0..\n.0...\n\nPlayerSmacking\nBlack\n000..\n0000.\n000..\n.0...\n.0...\n\n\nBlock1\nRed\n.000.\n00000\n00000\n00000\n.000.\n\nBlock2\nBlue\n..0..\n.000.\n00000\n.000.\n..0..\n\nBlock3\nYellow\n..0..\n.000.\n.000.\n00000\n00000\n\nBlock4\nWhite\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nBlock5\nDarkBrown\n..0..\n..0..\n00000\n..0..\n..0..\n\nBlock6\nLightBlue\n00000\n00000\n.....\n00000\n00000\n\nBlock7\nOrange\n00.00\n00.00\n00.00\n00.00\n00.00\n\n\nChute\nGray Black\n01110\n01110\n01110\n01110\n01110\n\nFeeder\nGray Black\n01110\n01111\n01111\n01111\n00000\n\nHopper\nGray Black\n00000\n11111\n11111\n11111\n00000\n\n\nSetsToken1\nTransparent\n\nSetsToken2\nTransparent\n\nSetsToken3\nTransparent\n\nSetsToken4\nTransparent\n\nSetsToken5\nTransparent\n\nSetsToken6\nTransparent\n\nSetsToken7\nTransparent\n\nBlockToken\nTransparent\n\nField\nTransparent\n\n\nAssertGravityToken\nTransparent\n\nMatchTokenPositive\nTransparent\n\nMatchTokenNegative\nTransparent\n\nCheckMatchToken\nTransparent\n\n\nDeathCoverSeed1\nTransparent\n\nDeathCoverSeed2\nTransparent\n\nDeathCover1\nRed\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\nDeathCover1Token\nTransparent\n\nDeathCover2\nRed\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nDeathCover2Token\nTransparent\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nx = Ceiling\n\nP = Player\n\n| = Chute\n- = Hopper\n1 = Feeder and SetsToken1\n2 = Feeder and SetsToken1 and SetsToken2\n3 = Feeder and SetsToken1 and SetsToken2 and SetsToken3\n4 = Feeder and SetsToken1 and SetsToken2 and SetsToken3 and SetsToken4\n5 = Feeder and SetsToken1 and SetsToken2 and SetsToken3 and SetsToken4 and SetsToken5\n6 = Feeder and SetsToken1 and SetsToken2 and SetsToken3 and SetsToken4 and SetsToken5 and SetsToken6\n7 = Feeder and SetsToken1 and SetsToken2 and SetsToken3 and SetsToken4 and SetsToken5 and SetsToken6 and SetsToken7\nSetsToken = SetsToken1 or SetsToken2 or SetsToken3 or SetsToken4 or SetsToken5 or SetsToken6 or SetsToken7\n\nF = Field\n\nBlock = Block1 or Block2 or Block3 or Block4 or Block5 or Block6 or Block7\n\nMatchToken = MatchTokenPositive or MatchTokenNegative\n\nDeathCover = DeathCoverSeed1 or DeathCoverSeed2 or DeathCover1 or DeathCover2\nDeathCoverToken = DeathCover1Token or DeathCover2Token\n\n\n=======\nSOUNDS\n=======\n\nsfx0 23301902 (death)\nsfx1 79689507 (smack)\nsfx2 69201902 (clear)\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nCeiling Chute Feeder Hopper\nWall Block Field\nPlayer DeadPlayer PlayerSmacking\nBlockToken AssertGravityToken MatchToken CheckMatchToken DeathCover DeathCoverToken\nSetsToken1\nSetsToken2\nSetsToken3\nSetsToken4\nSetsToken5\nSetsToken6\nSetsToken7\n\n\n======\nRULES \n====== \n\n(================\n LEVEL GENERATION\n ================)\n\n(Randomly splat down N blocks for each requested color, where N is the length of the hopper.)\n[SetsToken1] [Hopper] -> [SetsToken1] [Hopper BlockToken]\nstartloop\nrandom [Field] [BlockToken] [SetsToken1] -> [Block1] [BlockToken] [SetsToken1]\nrandom [Field] [BlockToken] [SetsToken2] -> [Block2] [BlockToken] [SetsToken2]\nrandom [Field] [BlockToken] [SetsToken3] -> [Block3] [BlockToken] [SetsToken3]\nrandom [Field] [BlockToken] [SetsToken4] -> [Block4] [BlockToken] [SetsToken4]\nrandom [Field] [BlockToken] [SetsToken5] -> [Block5] [BlockToken] [SetsToken5]\nrandom [Field] [BlockToken] [SetsToken6] -> [Block6] [BlockToken] [SetsToken6]\nrandom [Field] [BlockToken] [SetsToken7] -> [Block7] [BlockToken] [SetsToken7]\nrandom [BlockToken] -> []\nendloop\n[SetsToken] -> [no SetsToken]\n\n(Shove all the blocks down and then to the left.)\nDOWN [Block | Field] -> [Field | Block]\nRIGHT [Field | Block] -> [Block | Field]\n[Field] -> []\n\n\n(===============\n PLAYER MOVEMENT\n ===============)\n\n(Player can only move up and down, and they'll automatically snap to the end of the row. If the player tries to move into the frame, then cancel the move.)\n[Left Player] -> [Action Player]\nlate RIGHT [no Block no Chute | Player] -> [Player | ]\nlate RIGHT [Player Block | ] -> [Block | Player]\nlate [Player Feeder] -> cancel\nlate [Player Wall] -> cancel\nlate [Player Ceiling] -> cancel\n\n\n(============\n ROW SMACKING\n ============)\n\n(These rules are listed in reverse order so that they can happen sequentially with again statements for animation.)\n\n(4. When the receptacle is full, clear it if it's all the same color or push the stack up if it's mixed.)\nRIGHT [Feeder | MatchToken] [PlayerSmacking] -> [Feeder | MatchToken] [PlayerSmacking CheckMatchToken]\n[MatchTokenNegative] [PlayerSmacking CheckMatchToken] -> [MatchTokenNegative] [PlayerSmacking]\n[PlayerSmacking CheckMatchToken] [Block MatchToken] -> [PlayerSmacking CheckMatchToken] [] sfx2\n[PlayerSmacking CheckMatchToken] -> [Player]\nRIGHT [Feeder | Block MatchToken] -> [Feeder | ^ Block MatchToken]\nRIGHT [^ Block Hopper | Block] -> [^ Block Hopper | ^ Block]\nDOWN [Block | < Block] -> [< Block | < Block]\nDOWN [PlayerSmacking | < Block] -> [< PlayerSmacking | < Block]\nlate [MatchToken no Block] [PlayerSmacking] -> [] [Player] again\nlate [MatchToken no Block] -> [] \n\n(3. Pull the block in the chute to the right when it's at the bottom and check if its color matches the block it's next to.)\nRIGHT [Block no MatchToken | Hopper] -> [> Block no MatchToken | Hopper] again\nlate RIGHT [PlayerSmacking] [Block no MatchToken | Wall] -> [Player] [Block MatchTokenPositive | Wall]\nlate RIGHT [PlayerSmacking] [Block1 no MatchToken | Block1 MatchTokenPositive] -> [Player] [Block1 MatchTokenPositive | Block1 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block2 no MatchToken | Block2 MatchTokenPositive] -> [Player] [Block2 MatchTokenPositive | Block2 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block3 no MatchToken | Block3 MatchTokenPositive] -> [Player] [Block3 MatchTokenPositive | Block3 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block4 no MatchToken | Block4 MatchTokenPositive] -> [Player] [Block4 MatchTokenPositive | Block4 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block5 no MatchToken | Block5 MatchTokenPositive] -> [Player] [Block5 MatchTokenPositive | Block5 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block6 no MatchToken | Block6 MatchTokenPositive] -> [Player] [Block6 MatchTokenPositive | Block6 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block7 no MatchToken | Block7 MatchTokenPositive] -> [Player] [Block7 MatchTokenPositive | Block7 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block no MatchToken | Block MatchToken] -> [Player] [Block MatchTokenNegative | Block MatchToken]\n(When the block is moved into position, control is returned to the player above. But when the hopper is full, we still have stuff to do, so we'll cancel that.)\nlate RIGHT [Player] [Feeder | Block] -> [PlayerSmacking] [Feeder | Block]\n\n(2. Assert gravity: pull the stack and the block in the chute down.)\nDOWN [AssertGravityToken] [Block | no Wall no Hopper] -> [AssertGravityToken] [> Block | ] again\n[AssertGravityToken] -> []\n(The AssertGravityToken rule in the step 1 block below will continue to trigger until the block reaches the bottom left corner, repeating this block.)\n\n(1. Push the row to the left.)\nRIGHT [Block | Action Player] -> [Block | Action PlayerSmacking] sfx1\nRIGHT [Block | Action PlayerSmacking] -> [< Block | Action PlayerSmacking]\nRIGHT [Block | < Block] -> [< Block | < Block]\nlate [Block Chute] [PlayerSmacking] -> [Block Chute] [PlayerSmacking AssertGravityToken] again\n\n\n(=========\n GAME OVER\n =========)\n\n(If a block hits the kill zone at the top, cover the screen with the death overlay and kill the player.)\nrandom [Block Ceiling no DeathCover] -> [Block Ceiling DeathCoverSeed1]\nstartloop\n[Block Ceiling DeathCoverSeed1 | Block Ceiling no DeathCover] -> [Block Ceiling DeathCoverSeed1 | Block Ceiling DeathCoverSeed2]\n[Block Ceiling DeathCoverSeed2 | Block Ceiling no DeathCover] -> [Block Ceiling DeathCoverSeed2 | Block Ceiling DeathCoverSeed1]\nendloop\n[DeathCoverSeed1 | no DeathCover] -> [DeathCoverSeed1 | DeathCover1Token]\n[DeathCoverSeed2 | no DeathCover] -> [DeathCoverSeed2 | DeathCover2Token]\n\n[Player] [DeathCoverToken] -> [DeadPlayer] [DeathCoverToken] sfx0\n[DeathCover1 | no DeathCover] -> [DeathCover1 | DeathCover2Token]\n[DeathCover2 | no DeathCover] -> [DeathCover2 | DeathCover1Token]\nlate [DeathCover1Token] -> [DeathCover1 no DeathCover1Token] again\nlate [DeathCover2Token] -> [DeathCover2 no DeathCover2Token] again\n \n\n==============\nWINCONDITIONS\n==============\n\nNo Block\n\n\n======= \nLEVELS\n=======\n\nmessage Move up and down with the arrows and hammer a row with X.\nmessage Fill the hopper with blocks of the same color to clear them. A mismatched row will be pushed back up into the stack.\nmessage Clear all the blocks to proceed.\n\nxxxxxxx\n|.....#\n|.....#\n|.....#\n|.....#\n|.....#\n|.....#\n|FFFF.#\n|FFFF.#\n|FFFF.#\n|FFFFP#\n4---###\n\nmessage Don't let blocks hit the ceiling!\nmessage Z undoes moves. R will reset with a new puzzle.\n\nxxxxxxxx\n|......#\n|......#\n|FFFFF.#\n|FFFFF.#\n|FFFFF.#\n|FFFFF.#\n|FFFFFP#\n5----###\n\nxxxxxxxxx\n|.......#\n|.......#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFFP#\n6-----###\n\nxxxxxxxxxx\n|........#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFFP#\n7------###\n\nxxxxxxxxx\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFFP#\n4------##\n\nmessage :)\n", [0, 1, 0, 1, 1, 2, 1, 2, 1, 1, 2, 1, 0, 0, 1, 1], "background ceiling:0,background chute:1,1,1,1,1,1,\n1,1,1,1,background feeder:2,0,background:3,\n3,3,3,3,3,background block2:4,background block1:5,\n4,background block4:6,background hopper:7,0,3,3,3,\n3,3,3,background player:8,6,6,5,\n7,0,3,3,3,3,3,\n3,3,3,3,5,7,0,\n3,3,3,3,3,3,3,\n3,3,4,background wall:9,0,3,3,\n3,3,3,3,3,3,3,\n3,9,0,9,9,9,9,\n9,9,9,9,9,9,9,\n", 3, "1627778809256.5396"] ], [ `gallery: vines`, - ["title Vines\nauthor Stefan Peeters\n\nrealtime_interval .1\n\nzoomscreen 11x9\n\n(verbose_logging)\nrun_rules_on_level_start\nnoaction\n\n========\nOBJECTS\n========\n\nBackground \n#404040\n\nTarget\ntransparent\n\nVineUpEnd\nGreen darkgreen\n.....\n..1..\n.10..\n..1..\n..01.\n\nVineLeftEnd\nGreen darkgreen\n.....\n...0.\n..111\n.....\n.....\n\nVineRightEnd\nGreen darkgreen\n.....\n.0...\n011..\n.....\n.....\n\nVineLeftUp\nGreen darkgreen\n..1..\n.10..\n..011\n..1..\n.....\n\nVineRightUp\nGreen darkgreen\n..1..\n..1..\n1101.\n.1...\n.....\n\nVineUpUp\nGreen darkgreen\n.11..\n..01.\n..1..\n.10..\n..1..\n\nVineUpLeft\nGreen darkgreen\n.....\n.1...\n101..\n..01.\n..1..\n\nVineUpRight\nGreen darkgreen\n.....\n...1.\n..101\n.10.0\n..1..\n\nLadder\nlightbrown brown\n0...0\n0...0\n01110\n0...0\n01110\n\nPlatform\nBROWN\n00000\n.....\n.....\n.....\n.....\n\nWall\n#4d2700 #663300 #804100\n00000\n11111\n22222\n00000\n11111\n\nGlass\nWhite LightBlue\n00010\n1...0\n0...1\n0...0\n00101\n\nPlayer \nRed Brown Blue\n.000.\n.111.\n12021\n.222.\n.2.2.\n\nBox\nBROWN darkbrown lightBrown\n00000\n02110\n01210\n01120\n00000\n\nDirt\nBrown\n\nlightSource\ntransparent\n\nLightRight\nyellow\n00000\n.0000\n..000\n...00\n....0\n\nLightRightDown\nyellow\n0....\n00...\n000..\n0000.\n00000\n\nLightLeft\nyellow\n00000\n0000.\n000..\n00...\n0....\n\nLightLeftDown\nyellow\n....0\n...00\n..000\n.0000\n00000\n\nPot\nbrown\n00000\n00000\n.000.\n.000.\n.000.\n\nCheck\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n| = VineUpEnd\nH = Ladder\nT = Ladder and Platform\n_ = platform\nW = Wall\nD = Dirt\nB = Box\nP = Player\nO = Target\nG = Glass\nL = lightSource\nE = Glass and LightSource\nU = Pot\nC = Check\n\nVineEnd = VineLeftEnd or VineRightEnd or VineUpEnd\nVine = VineEnd or VineLeftUp or VineRightUp or VineUpUp or VineUpLeft or VineUpRight\n\nLight = LightRight or LightRightDown or LightLeft or LightLeftDown\nLightBlocker = Box or Wall\nVineBlocker = Box or Wall or Glass or Vine\n\nPushAble = Box\nClimable = Vine or Ladder\nFallAble = Box\nFloor = Wall or Platform or Player or Box\n\n=======\nSOUNDS\n=======\n\nBox move 67547707\nPlayer move horizontal 5015507\nplayer move vertical 54490507\n\nSfx0 85068307\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nLightSource\nLightRight\nLightRightDown\nLightLeft\nLightLeftDown\nTarget\nVine\nLadder\nPlatform\nCheck\nPlayer,Box, Wall, Glass, Dirt, Pot\n\n======\nRULES \n======\n\n[Player Check] -> [Player] checkpoint\n\n(Movement)\n[up Player no Climable] -> [Player]\nup [> Player Climable no Floor|no Climable] -> [Player Climable|]\ndown [> Player|Floor no Climable] -> [Player|Floor]\n\nhorizontal [> Player | PushAble] -> [> Player|> PushAble]\n\n(Gravity)\ndown [stationary Player no Climable | no Floor] -> [> Player|]\ndown [stationary FallAble | no Floor] -> [> FallAble|]\nlate down [Player no Climable | no Floor] -> again\nlate down [FallAble | no Floor] -> again\n\n(Light creation)\nlate right [LightSource no LightBlocker no LightRightDown] -> [LightSource LightRightDown]\n+ late right [LightRight|no LightRightDown no LightBlocker] -> [LightRight|LightRightDown] again\n+ late down [LightRightDown|no LightRight no LightBlocker] -> [LightRightDown|LightRight] again\n+ late left [LightLeft|no LightLeftDown no LightBlocker] -> [LightLeft|LightLeftDown] again\n+ late down [LightLeftDown|no LightLeft no LightBlocker] -> [LightLeftDown|LightLeft] again\n\n(Light removal)\nlate right [LightBlocker Light] -> [LightBlocker]\n+ late right [no LightRight|LightRightDown no lightSource] -> [|]\n+ late down [no LightRightDown|LightRight] -> [|]\n+ late left [no LightLeft|LightLeftDown] -> [|]\n+ late down [no LightLeftDown|LightLeft] -> [|]\n\n(Vine growth)\n\nup [VineEnd|Light no VineBlocker] -> [> VineEnd|Light] again Sfx0\nhorizontal [stationary VineUpEnd|Light no VineBlocker] -> [> VineUpEnd|Light] again Sfx0\n\nup [> VineUpEnd|] -> [VineUpUp | VineUpEnd]\nup [> VineLeftEnd|] -> [VineLeftUp | VineUpEnd]\nup [> VineRightEnd|] -> [VineRightUp| VineUpEnd]\n\nright [> VineUpEnd|] -> [VineUpRight| VineRightEnd]\nleft [> VineUpEnd|] -> [VineUpLeft | VineLeftEnd]\n\n==============\nWINCONDITIONS\n==============\n\nAll Player on Target\n\n======= \nLEVELS\n=======\n\nlllllllllll\nl..........\nl..........\nl..........\nl..........\nl..........\nl..........\nlooo.......\nl...ooooooo\nl...______w\nw.........g\ne..b......g\ne_________g\ne..b......g\ne__gt.....w\ne...h.....w\ne...h.w__ww\ne...h.g...g\ne...h.g..|g\ne...h....uw\ne.b.h.wwwww\nw.b.h.....w\nww__t.....g\nww..h.....g\ne...h.....g\ne.c.h.....w\ne_________w\ne.........w\ne.b......|w\ne.____twwdw\ne..gc.h.www\nw..g___.www\nw___.....ww\nww........w\nwww..b....w\nwww_t_____w\nwwwwh.|.p.w\nwwwwwddddww\n\nMessage \"Finally, out of the factory\"\n\n\n",["tick","tick","tick","tick","tick","tick","tick",1,"tick","tick",1,"tick","tick","tick",1,"tick","tick",3,"tick","tick",0,"tick","tick","tick","tick","tick","tick",1,"tick",1,"tick","tick",0,"tick","tick",0,"tick","tick",3,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background lightrightdown lightsource:0,background lightright lightrightdown lightsource:1,1,1,1,1,1,1,1,1,background wall:2,\nbackground glass lightrightdown lightsource:3,background glass lightright lightrightdown lightsource:4,4,4,4,4,4,4,4,4,2,\n2,2,3,4,4,4,4,4,4,2,2,\n2,2,2,2,2,0,background lightright lightrightdown:5,5,5,5,5,\n5,background lightright lightrightdown target:6,5,5,background lightright:7,background:8,background lightrightdown platform:9,5,background lightright lightrightdown platform:10,5,5,\n5,5,5,5,7,2,2,8,background lightrightdown:11,10,5,\n5,5,5,7,background platform:12,2,2,2,2,2,0,\n5,5,5,5,5,5,6,5,5,5,7,\n12,11,10,5,5,5,5,5,background box:13,13,12,\n8,8,background check:14,9,5,13,9,5,5,background lightright platform:15,8,\n2,2,2,2,0,5,5,5,5,5,5,\n6,5,5,5,13,12,13,background glass lightrightdown:16,5,5,5,\n5,5,7,8,12,8,8,8,12,11,7,\n12,16,background glass lightright lightrightdown:17,10,7,8,12,2,2,0,5,\n5,5,5,5,5,5,6,10,5,7,12,\n8,background ladder platform:18,background ladder lightrightdown:19,background ladder lightright lightrightdown:20,20,20,20,20,background ladder lightright:21,18,background ladder:22,\n22,22,12,8,11,15,14,background lightrightdown platform vineupend:23,background lightright lightrightdown vineleftup:24,5,7,\n18,22,2,0,5,5,5,5,5,5,5,\n6,10,5,5,15,8,8,8,11,5,5,\n5,5,5,7,8,8,8,12,8,8,9,\n7,12,background lightrightdown vineupleft:25,background lightright lightrightdown vineupup:26,background lightright lightrightdown player vineupup:27,background lightright platform vineleftup:28,8,background dirt:29,0,5,5,\n5,5,5,5,5,6,10,5,5,10,7,\n8,8,2,16,17,5,2,11,5,7,8,\n8,12,8,8,18,19,15,8,11,13,background lightrightdown platform vineupleft:30,\nbackground lightright vineupup:31,29,0,5,5,5,5,5,5,5,6,\n10,5,5,10,5,7,8,12,8,11,5,\n2,8,11,5,7,8,12,8,8,2,8,\n11,7,8,8,12,11,background dirt lightright:32,0,5,5,5,\n5,5,5,5,6,10,5,5,10,5,5,\n7,12,8,8,11,2,8,8,11,5,7,\n12,8,8,2,2,2,11,7,8,12,8,\nbackground dirt lightrightdown:33,0,5,5,5,5,5,5,5,6,10,\n5,5,10,5,5,5,2,8,background vineupend:34,background pot:35,2,\n8,8,8,11,5,15,8,34,29,2,2,\n2,11,7,12,8,2,0,5,5,5,5,\n5,5,5,6,2,16,17,17,17,2,2,\n2,background glass:36,36,2,2,2,36,36,36,2,2,\n2,2,2,2,2,2,2,2,2,2,2,\n",0,"1627778846524.428"] + ["title Vines\nauthor Stefan Peeters\n\nrealtime_interval .1\n\nzoomscreen 11x9\n\n(verbose_logging)\nrun_rules_on_level_start\nnoaction\n\n========\nOBJECTS\n========\n\nBackground \n#404040\n\nTarget\ntransparent\n\nVineUpEnd\nGreen darkgreen\n.....\n..1..\n.10..\n..1..\n..01.\n\nVineLeftEnd\nGreen darkgreen\n.....\n...0.\n..111\n.....\n.....\n\nVineRightEnd\nGreen darkgreen\n.....\n.0...\n011..\n.....\n.....\n\nVineLeftUp\nGreen darkgreen\n..1..\n.10..\n..011\n..1..\n.....\n\nVineRightUp\nGreen darkgreen\n..1..\n..1..\n1101.\n.1...\n.....\n\nVineUpUp\nGreen darkgreen\n.11..\n..01.\n..1..\n.10..\n..1..\n\nVineUpLeft\nGreen darkgreen\n.....\n.1...\n101..\n..01.\n..1..\n\nVineUpRight\nGreen darkgreen\n.....\n...1.\n..101\n.10.0\n..1..\n\nLadder\nlightbrown brown\n0...0\n0...0\n01110\n0...0\n01110\n\nPlatform\nBROWN\n00000\n.....\n.....\n.....\n.....\n\nWall\n#4d2700 #663300 #804100\n00000\n11111\n22222\n00000\n11111\n\nGlass\nWhite LightBlue\n00010\n1...0\n0...1\n0...0\n00101\n\nPlayer \nRed Brown Blue\n.000.\n.111.\n12021\n.222.\n.2.2.\n\nBox\nBROWN darkbrown lightBrown\n00000\n02110\n01210\n01120\n00000\n\nDirt\nBrown\n\nlightSource\ntransparent\n\nLightRight\nyellow\n00000\n.0000\n..000\n...00\n....0\n\nLightRightDown\nyellow\n0....\n00...\n000..\n0000.\n00000\n\nLightLeft\nyellow\n00000\n0000.\n000..\n00...\n0....\n\nLightLeftDown\nyellow\n....0\n...00\n..000\n.0000\n00000\n\nPot\nbrown\n00000\n00000\n.000.\n.000.\n.000.\n\nCheck\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n| = VineUpEnd\nH = Ladder\nT = Ladder and Platform\n_ = platform\nW = Wall\nD = Dirt\nB = Box\nP = Player\nO = Target\nG = Glass\nL = lightSource\nE = Glass and LightSource\nU = Pot\nC = Check\n\nVineEnd = VineLeftEnd or VineRightEnd or VineUpEnd\nVine = VineEnd or VineLeftUp or VineRightUp or VineUpUp or VineUpLeft or VineUpRight\n\nLight = LightRight or LightRightDown or LightLeft or LightLeftDown\nLightBlocker = Box or Wall\nVineBlocker = Box or Wall or Glass or Vine\n\nPushAble = Box\nClimable = Vine or Ladder\nFallAble = Box\nFloor = Wall or Platform or Player or Box\n\n=======\nSOUNDS\n=======\n\nBox move 67547707\nPlayer move horizontal 5015507\nplayer move vertical 54490507\n\nSfx0 85068307\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nLightSource\nLightRight\nLightRightDown\nLightLeft\nLightLeftDown\nTarget\nVine\nLadder\nPlatform\nCheck\nPlayer,Box, Wall, Glass, Dirt, Pot\n\n======\nRULES \n======\n\n[Player Check] -> [Player] checkpoint\n\n(Movement)\n[up Player no Climable] -> [Player]\nup [> Player Climable no Floor|no Climable] -> [Player Climable|]\ndown [> Player|Floor no Climable] -> [Player|Floor]\n\nhorizontal [> Player | PushAble] -> [> Player|> PushAble]\n\n(Gravity)\ndown [stationary Player no Climable | no Floor] -> [> Player|]\ndown [stationary FallAble | no Floor] -> [> FallAble|]\nlate down [Player no Climable | no Floor] -> again\nlate down [FallAble | no Floor] -> again\n\n(Light creation)\nlate right [LightSource no LightBlocker no LightRightDown] -> [LightSource LightRightDown]\n+ late right [LightRight|no LightRightDown no LightBlocker] -> [LightRight|LightRightDown] again\n+ late down [LightRightDown|no LightRight no LightBlocker] -> [LightRightDown|LightRight] again\n+ late left [LightLeft|no LightLeftDown no LightBlocker] -> [LightLeft|LightLeftDown] again\n+ late down [LightLeftDown|no LightLeft no LightBlocker] -> [LightLeftDown|LightLeft] again\n\n(Light removal)\nlate right [LightBlocker Light] -> [LightBlocker]\n+ late right [no LightRight|LightRightDown no lightSource] -> [|]\n+ late down [no LightRightDown|LightRight] -> [|]\n+ late left [no LightLeft|LightLeftDown] -> [|]\n+ late down [no LightLeftDown|LightLeft] -> [|]\n\n(Vine growth)\n\nup [VineEnd|Light no VineBlocker] -> [> VineEnd|Light] again Sfx0\nhorizontal [stationary VineUpEnd|Light no VineBlocker] -> [> VineUpEnd|Light] again Sfx0\n\nup [> VineUpEnd|] -> [VineUpUp | VineUpEnd]\nup [> VineLeftEnd|] -> [VineLeftUp | VineUpEnd]\nup [> VineRightEnd|] -> [VineRightUp| VineUpEnd]\n\nright [> VineUpEnd|] -> [VineUpRight| VineRightEnd]\nleft [> VineUpEnd|] -> [VineUpLeft | VineLeftEnd]\n\n==============\nWINCONDITIONS\n==============\n\nAll Player on Target\n\n======= \nLEVELS\n=======\n\nlllllllllll\nl..........\nl..........\nl..........\nl..........\nl..........\nl..........\nlooo.......\nl...ooooooo\nl...______w\nw.........g\ne..b......g\ne_________g\ne..b......g\ne__gt.....w\ne...h.....w\ne...h.w__ww\ne...h.g...g\ne...h.g..|g\ne...h....uw\ne.b.h.wwwww\nw.b.h.....w\nww__t.....g\nww..h.....g\ne...h.....g\ne.c.h.....w\ne_________w\ne.........w\ne.b......|w\ne.____twwdw\ne..gc.h.www\nw..g___.www\nw___.....ww\nww........w\nwww..b....w\nwww_t_____w\nwwwwh.|.p.w\nwwwwwddddww\n\nMessage \"Finally, out of the factory\"\n\n\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", 3, "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", 1, "tick", "tick", 0, "tick", "tick", 0, "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background lightrightdown lightsource:0,background lightright lightrightdown lightsource:1,1,1,1,1,1,1,1,1,background wall:2,\nbackground glass lightrightdown lightsource:3,background glass lightright lightrightdown lightsource:4,4,4,4,4,4,4,4,4,2,\n2,2,3,4,4,4,4,4,4,2,2,\n2,2,2,2,2,0,background lightright lightrightdown:5,5,5,5,5,\n5,background lightright lightrightdown target:6,5,5,background lightright:7,background:8,background lightrightdown platform:9,5,background lightright lightrightdown platform:10,5,5,\n5,5,5,5,7,2,2,8,background lightrightdown:11,10,5,\n5,5,5,7,background platform:12,2,2,2,2,2,0,\n5,5,5,5,5,5,6,5,5,5,7,\n12,11,10,5,5,5,5,5,background box:13,13,12,\n8,8,background check:14,9,5,13,9,5,5,background lightright platform:15,8,\n2,2,2,2,0,5,5,5,5,5,5,\n6,5,5,5,13,12,13,background glass lightrightdown:16,5,5,5,\n5,5,7,8,12,8,8,8,12,11,7,\n12,16,background glass lightright lightrightdown:17,10,7,8,12,2,2,0,5,\n5,5,5,5,5,5,6,10,5,7,12,\n8,background ladder platform:18,background ladder lightrightdown:19,background ladder lightright lightrightdown:20,20,20,20,20,background ladder lightright:21,18,background ladder:22,\n22,22,12,8,11,15,14,background lightrightdown platform vineupend:23,background lightright lightrightdown vineleftup:24,5,7,\n18,22,2,0,5,5,5,5,5,5,5,\n6,10,5,5,15,8,8,8,11,5,5,\n5,5,5,7,8,8,8,12,8,8,9,\n7,12,background lightrightdown vineupleft:25,background lightright lightrightdown vineupup:26,background lightright lightrightdown player vineupup:27,background lightright platform vineleftup:28,8,background dirt:29,0,5,5,\n5,5,5,5,5,6,10,5,5,10,7,\n8,8,2,16,17,5,2,11,5,7,8,\n8,12,8,8,18,19,15,8,11,13,background lightrightdown platform vineupleft:30,\nbackground lightright vineupup:31,29,0,5,5,5,5,5,5,5,6,\n10,5,5,10,5,7,8,12,8,11,5,\n2,8,11,5,7,8,12,8,8,2,8,\n11,7,8,8,12,11,background dirt lightright:32,0,5,5,5,\n5,5,5,5,6,10,5,5,10,5,5,\n7,12,8,8,11,2,8,8,11,5,7,\n12,8,8,2,2,2,11,7,8,12,8,\nbackground dirt lightrightdown:33,0,5,5,5,5,5,5,5,6,10,\n5,5,10,5,5,5,2,8,background vineupend:34,background pot:35,2,\n8,8,8,11,5,15,8,34,29,2,2,\n2,11,7,12,8,2,0,5,5,5,5,\n5,5,5,6,2,16,17,17,17,2,2,\n2,background glass:36,36,2,2,2,36,36,36,2,2,\n2,2,2,2,2,2,2,2,2,2,2,\n", 0, "1627778846524.428"] ], [ `gallery: unconventional guns`, - ["title Unconventional Guns\nauthor rectangular Tim\n\n(run_rules_on_level_start)\nbackground_color darkblue\nagain_interval 0.07\nkey_repeat_interval 0.15\n(verbose_logging)\n\nhomepage http://ludumdare.com/compo/ludum-dare-32/?action=preview&uid=39396\n\n========\nOBJECTS\n========\n\nBackground\nlightGray\n\nGun\nBlack\n.....\n.....\n.000.\n.0...\n.....\n\nPlayerU\nBlue LightRed Brown White\n.222.\n.222.\n10001\n.000.\n.2.2.\n\nPlayerD\nBlue LightRed Brown White\n.222.\n.313.\n10001\n.000.\n.2.2.\n\nPlayerL\nBlue LightRed Brown White\n.222.\n.312.\n.010.\n.000.\n..22.\n\nPlayerR\nBlue LightRed Brown White\n.222.\n.213.\n.010.\n.000.\n.22..\n\nZombiePlayerU\nBlue Green Brown Red\n.222.\n.222.\n10001\n.000.\n.2.2.\n\nZombiePlayerD\nBlue Green Brown Red\n.222.\n.313.\n10001\n.000.\n.2.2.\n\nZombiePlayerL\nBlue Green Brown Red\n.222.\n.312.\n.010.\n.000.\n..22.\n\nZombiePlayerR\nBlue Green Brown Red\n.222.\n.213.\n.010.\n.000.\n.22..\n\nZombieAsleep\nDarkRed Green Black Red\n.222.\n.111.\n10001\n.000.\n.2.2.\n\nZombieAwake\nDarkRed Green Black Red\n.222.\n.313.\n10001\n.000.\n.2.2.\n\nWerewolf\nBrown Black\n.000.\n.101.\n00000\n.000.\n.0.0.\n\nSnakeHeadU\nLightGreen Green White\n.000.\n12021\n11011\n11011\n.101.\n\nSnakeHeadD\nLightGreen Green White Black\n.101.\n12021\n10001\n13331\n.111.\n\nSnakeHeadL\nLightGreen Green White\n000..\n.1200\n..111\n.1111\n111..\n\nSnakeHeadR\nLightGreen Green White\n..000\n0021.\n111..\n1111.\n..111\n\nSnakeU\nLightGreen Green\n.101.\n.101.\n.....\n.....\n.....\n\nSnakeD\nLightGreen Green\n.....\n.....\n.101.\n.101.\n.101.\n\nSnakeL\nLightGreen Green\n.....\n000..\n111..\n111..\n.....\n\nSnakeR\nLightGreen Green\n.....\n..000\n..111\n..111\n.....\n\nWater\nBlue lightBlue\n10000\n00000\n00010\n00000\n00100\n\nFloodingR\nBlue lightBlue\n100..\n000..\n000..\n000..\n001..\n\nFloodingL\nBlue lightBlue\n..000\n..000\n..010\n..000\n..100\n\nFloodingU\nBlue lightBlue\n.....\n.....\n00010\n00000\n00100\n\nFloodingD\nBlue lightBlue\n10000\n00000\n00010\n.....\n.....\n\nWaterDrown0\nBlue #000033 lightBlue\n21110\n01110\n11111\n01110\n01210\n\nWaterDrown1\nBlue #000066 lightBlue\n21110\n01110\n11111\n01110\n01210\n\nWaterSinking0\n#000044 lightBlue\n10000\n00000\n00010\n00000\n00100\n\nWaterSinking1\n#000088 lightBlue\n10000\n00000\n00010\n00000\n00100\n\nWaterSinking2\nBlue lightBlue #000088\n10000\n02220\n02210\n02220\n00100\n\nWaterSinking3\nBlue lightBlue #0000BB\n10000\n02220\n02210\n02220\n00100\n\nWaterSinking4\nBlue lightBlue #0000BB\n10000\n00000\n00210\n00000\n00100\n\nCrate\nBrown Orange LightBrown\n12221\n20002\n20002\n20002\n12221\n\nWall\ndarkblue\n\nWallL\nBlack\n0....\n0....\n0....\n0....\n0....\n\nWallR\nBlack\n....0\n....0\n....0\n....0\n....0\n\nWallU\nBlack\n00000\n.....\n.....\n.....\n.....\n\nWallD\nBlack\n.....\n.....\n.....\n.....\n00000\n\nDigit0\nWhite\n..00.\n.0..0\n.0..0\n.0..0\n..00.\n\nDigit1\nWhite\n...0.\n..00.\n...0.\n...0.\n..000\n\nDigit2\nWhite\n..00.\n.0..0\n...0.\n..0..\n.0000\n\nDigit3\nWhite\n.000.\n....0\n..00.\n....0\n.000.\n\nDigit4\nWhite\n...0.\n..0..\n.0.0.\n.0000\n...0.\n\nDigit5\nWhite\n.0000\n.0...\n.000.\n....0\n.000.\n\nDigit6\nWhite\n..00.\n.0...\n.000.\n.0..0\n..00.\n\nDigit7\nWhite\n.0000\n....0\n...0.\n..0..\n.0...\n\nDigit8\nWhite\n..00.\n.0..0\n..00.\n.0..0\n..00.\n\nDigit9\nWhite\n..00.\n.0..0\n..000\n....0\n..00.\n\npreviousHead\ntransparent\n\npreviousCollision\ntransparent\n\nCollider\ntransparent\n\nGoU\ntransparent\n\nGoD\ntransparent\n\nGoL\ntransparent\n\nGoR\ntransparent\n\nVision\ntransparent\n\nLoLevelTarget\ntransparent\n\nHiLevelTarget\ntransparent\n\nSnakeGun\ntransparent\n\nWaterGun\ntransparent\n\ncanMove\ntransparent\n\nrecoil\ntransparent\n\npreviousPosition\ntransparent\n\nWinning\ntransparent\n\nCover\ndarkblue\n\nq\nBlack\n0....\n0....\n.0...\n..0..\n...00\n\ni\nBlack\n00...\n..0..\n...0.\n....0\n....0\n\ne\nBlack\n00000\n.....\n.....\n.....\n.....\n\nr\nBlack\n0....\n0....\n0....\n0....\n0....\n\nt\nBlack\n...00\n.00..\n.0...\n0....\n0....\n\ny\nBlack\n....0\n....0\n...0.\n..00.\n00...\n\nx\nGray\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nu\nGray\n.....\n..0..\n.000.\n0.0.0\n..0..\n\nl\nGray\n...0.\n..0..\n.0000\n..0..\n...0.\n\n=======\nLEGEND\n=======\n\nWallOutline = WallU or WallD or WallL or WallR\n\nAnyDigit = Digit0 or Digit1 or Digit2 or Digit3 or Digit4 or Digit5 or Digit6 or Digit7 or Digit8 or Digit9\n\nPlayer = PlayerU or PlayerD or PlayerL or PlayerR\nZombiePlayer = ZombiePlayerU or ZombiePlayerD or ZombiePlayerL or ZombiePlayerR\nAnyPlayer = Player or ZombiePlayer\nZombie = ZombieAwake or ZombieAsleep or ZombiePlayer\nMonster = Zombie or Werewolf\n\nSnakeHead = SnakeHeadU or SnakeHeadD or SnakeHeadL or SnakeHeadR\nSnakeBody = SnakeU or SnakeD or SnakeL or SnakeR\nSnake = SnakeHead or SnakeBody\n\nSnakeFood = AnyPlayer or Zombie or Werewolf\nWerewolfFood = AnyPlayer or Zombie\n\nWaterBlocker = Snake or Wall\nDrownable = Player or Werewolf\nSinking = WaterDrown0 or WaterDrown1 or WaterSinking0 or WaterSinking1 or WaterSinking2 or WaterSinking3 or WaterSinking4\nFlooding = FloodingU or FloodingD or FloodingL or FloodingR\nAnyWater = Water or Sinking\n\nAnimation = Flooding or Sinking\n\nNoSnakeBody = AnyPlayer or Zombie or Werewolf or Crate or Wall or SnakeHead\nObstacle = AnyPlayer or Zombie or Werewolf or Crate or Wall or SnakeHead or Collider\nDirection = GoU or GoD or GoL or GoR\n\nPushable = Crate or Zombie\nPusher = Player or SnakeHead or Pushable\n\nLines = q or i or e or r or t or y\nDecoration = Gun or Lines or x or u or l\n\nTarget = LoLevelTarget or HiLevelTarget\n\n. = Background\n# = Wall\n~ = Water\np = PlayerD and canMove\ns = PlayerD and SnakeGun and canMove\no = PlayerD and WaterGun and canMove\nz = ZombieAsleep\nw = Werewolf\ng = Gun\nc = Crate\n\" = PlayerD and Cover\n\n0 = Wall and Digit0\n1 = Wall and Digit1\n2 = Wall and Digit2\n3 = Wall and Digit3\n4 = Wall and Digit4\n5 = Wall and Digit5\n6 = Wall and Digit6\n7 = Wall and Digit7\n8 = Wall and Digit8\n9 = Wall and Digit9\n\n=======\nSOUNDS\n=======\n\nPlayer Move 23783707\nPlayer Create 23783707\nWerewolf Move 23783707\nsfx1 84569108 (death)\nsfx2 27012908 (snake shot)\nsfx3 17311702 (collide)\nsfx4 55941902 (eat)\nsfx5 59606702 (bat)\nsfx6 52112502 (impossible)\nsfx7 89706502 (crowbar)\nsfx8 1782108 (water shot)\nsfx9 59937708 (drown)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nAnyWater Flooding\nSnakeU Decoration\nSnakeL Direction\nSnakeR\nObstacle\nSnakeD\nWallL Vision Target\nWallR SnakeGun WaterGun\nWallU previousCollision previousPosition\nWallD recoil\nAnyDigit canMove previousHead Cover\nWinning\n\n======\nRULES\n======\n\n(Editing convenience: Automatically add outlines to walls)\n([ WallOutline ] -> [ ]\nup [ Wall | No Wall ] -> [ Wall WallU | ]\ndown [ Wall | No Wall ] -> [ Wall WallD | ]\nleft [ Wall | No Wall ] -> [ Wall WallL | ]\nright[ Wall | No Wall ] -> [ Wall WallR | ])\n\n(player faces a certain direction)\n[ up Player no PlayerU ] [ canMove ] -> [ PlayerU ] [ canMove ]\n[ down Player no PlayerD ] [ canMove ] -> [ PlayerD ] [ canMove ]\n[ left Player no PlayerL ] [ canMove ] -> [ PlayerL ] [ canMove ]\n[ right Player no PlayerR ] [ canMove ] -> [ PlayerR ] [ canMove ]\n\n(shoot the Snake Gun)\nup [ action PlayerU | no Wall no Crate ] [ canMove SnakeGun ] -> [ PlayerU recoil | SnakeHeadU ] [ SnakeGun ] sfx2\ndown [ action PlayerD | no Wall no Crate ] [ canMove SnakeGun ] -> [ PlayerD recoil | SnakeHeadD ] [ SnakeGun ] sfx2\nleft [ action PlayerL | no Wall no Crate ] [ canMove SnakeGun ] -> [ PlayerL recoil | SnakeHeadL ] [ SnakeGun ] sfx2\nright [ action PlayerR | no Wall no Crate ] [ canMove SnakeGun ] -> [ PlayerR recoil | SnakeHeadR ] [ SnakeGun ] sfx2\n[ action Player ] [ canMove SnakeGun ] -> [ Player ] [ canMove SnakeGun ] sfx6\n(choose snake direction, when it can't move anymore)\n[ moving Player ] [ SnakeHead previousHead ] -> [ stationary Player ] [ moving SnakeHead previousHead ]\n(snake head moves forwards)\nup [ stationary SnakeHeadU ] -> [ > SnakeHeadU ]\ndown [ stationary SnakeHeadD ] -> [ > SnakeHeadD ]\nleft [ stationary SnakeHeadL ] -> [ > SnakeHeadL ]\nright [ stationary SnakeHeadR ] -> [ > SnakeHeadR ]\n(BONK!)\nlate [ SnakeHead previousHead no previousCollision ] -> [ SnakeHead previousHead previousCollision] sfx3\nlate [ SnakeHead no previousHead ] [ previousCollision ] -> [ SnakeHead no previousHead ] [ ]\n(snakes eat things)\nup [ > SnakeHead | SnakeFood ] -> [ > SnakeHead | no SnakeBody ] sfx4\ndown [ > SnakeHead | SnakeFood ] -> [ > SnakeHead | no SnakeBody ] sfx4\nleft [ > SnakeHead | SnakeFood ] -> [ > SnakeHead | no SnakeBody ] sfx4\nright [ > SnakeHead | SnakeFood ] -> [ > SnakeHead | no SnakeBody ] sfx4\n(remember previous position of snake head)\n[ previousHead ] -> [ ]\n[ SnakeHead ] -> [ SnakeHead previousHead ]\n(set the snake head orientation)\nlate up [ previousHead | SnakeHead ] -> [ previousHead | SnakeHeadU ]\nlate down [ previousHead | SnakeHead ] -> [ previousHead | SnakeHeadD ]\nlate left [ previousHead | SnakeHead ] -> [ previousHead | SnakeHeadL ]\nlate right [ previousHead | SnakeHead ] -> [ previousHead | SnakeHeadR ]\n(create the snake body)\nup [ PlayerU no SnakeU ] [ Snake ] [ SnakeGun ] -> [ PlayerU SnakeU ] [ Snake ] [ SnakeGun ]\ndown [ PlayerD no SnakeD ] [ Snake ] [ SnakeGun ] -> [ PlayerD SnakeD ] [ Snake ] [ SnakeGun ]\nleft [ PlayerL no SnakeL ] [ Snake ] [ SnakeGun ] -> [ PlayerL SnakeL ] [ Snake ] [ SnakeGun ]\nright [ PlayerR no SnakeR ] [ Snake ] [ SnakeGun ] -> [ PlayerR SnakeR ] [ Snake ] [ SnakeGun ]\nlate up [ no SnakeU no AnyPlayer | SnakeHeadU ] -> [ SnakeU | SnakeHeadU ]\nlate down [ no SnakeD no AnyPlayer | SnakeHeadD ] -> [ SnakeD | SnakeHeadD ]\nlate left [ no SnakeL no AnyPlayer | SnakeHeadL ] -> [ SnakeL | SnakeHeadL ]\nlate right [ no SnakeR no AnyPlayer | SnakeHeadR ] -> [ SnakeR | SnakeHeadR ]\n(connect the snake body)\nlate up [ SnakeU | no SnakeD no NoSnakeBody ] -> [ SnakeU | SnakeD ]\nlate down [ SnakeD | no SnakeU no NoSnakeBody ] -> [ SnakeD | SnakeU ]\nlate left [ SnakeL | no SnakeR no NoSnakeBody ] -> [ SnakeL | SnakeR ]\nlate right [ SnakeR | no SnakeL no NoSnakeBody ] -> [ SnakeR | SnakeL ]\n(make the snake body impassable)\nlate [ SnakeBody no Obstacle ] -> [ SnakeBody Collider ]\n\n(recoil)\n[ previousPosition ] -> [ ]\n[ Player ] -> [ Player previousPosition ]\nup [ stationary PlayerU ] [ recoil ] -> [ < PlayerU ] [ recoil ]\ndown [ stationary PlayerD ] [ recoil ] -> [ < PlayerD ] [ recoil ]\nleft [ stationary PlayerL ] [ recoil ] -> [ < PlayerL ] [ recoil ]\nright [ stationary PlayerR ] [ recoil ] -> [ < PlayerR ] [ recoil ]\nlate [ Player previousPosition ] [ recoil ] -> [ Player previousPosition ] [ ]\n\n(flooding animation)\n[ Flooding ] -> [ Water ]\n(shoot the water gun)\n[ action Player ] [ canMove WaterGun ] -> [ action Player ] [ WaterGun ]\nup [ action PlayerU | no Water ] [ WaterGun ] -> [ PlayerU | FloodingU ] [ WaterGun ] sfx8\ndown [ action PlayerD | no Water ] [ WaterGun ] -> [ PlayerD | FloodingD ] [ WaterGun ] sfx8\nleft [ action PlayerL | no Water ] [ WaterGun ] -> [ PlayerL | FloodingL ] [ WaterGun ] sfx8\nright [ action PlayerR | no Water ] [ WaterGun ] -> [ PlayerR | FloodingR ] [ WaterGun ] sfx8\nup [ action PlayerU | Water ] [ WaterGun ] -> [ PlayerU | > FloodingU ] [ WaterGun ] sfx8\ndown [ action PlayerD | Water ] [ WaterGun ] -> [ PlayerD | > FloodingD ] [ WaterGun ] sfx8\nleft [ action PlayerL | Water ] [ WaterGun ] -> [ PlayerL | > FloodingL ] [ WaterGun ] sfx8\nright [ action PlayerR | Water ] [ WaterGun ] -> [ PlayerR | > FloodingR ] [ WaterGun ] sfx8\n[ action Player ] [ canMove WaterGun ] -> [ Player ] [ canMove WaterGun ] sfx6\nlate up [ PlayerU | no Flooding ] [ WaterGun no canMove ] -> [ PlayerU | Water ] [ WaterGun ] sfx8\nlate down [ PlayerD | no Flooding ] [ WaterGun no canMove ] -> [ PlayerD | Water ] [ WaterGun ] sfx8\nlate left [ PlayerL | no Flooding ] [ WaterGun no canMove ] -> [ PlayerL | Water ] [ WaterGun ] sfx8\nlate right [ PlayerR | no Flooding ] [ WaterGun no canMove ] -> [ PlayerR | Water ] [ WaterGun ] sfx8\nlate [ Player ] [ no canMove WaterGun ] -> [ Player ] [ canMove WaterGun ]\n[ > Flooding | WaterBlocker ] -> [ Flooding | WaterBlocker ]\n[ > Flooding | stationary Water ] -> [ > Water | > Flooding ]\n(sinking animation)\n[ WaterSinking4 ] -> [ Water ]\n[ WaterSinking3 ] -> [ WaterSinking4 ]\n[ WaterSinking2 ] -> [ WaterSinking3 ]\n[ WaterSinking1 ] -> [ WaterSinking2 ]\n[ WaterDrown1 ] -> [ WaterSinking2 ]\n[ WaterSinking0 ] -> [ WaterSinking1 ]\n[ WaterDrown0 ] -> [ WaterDrown1 ]\n(water interacts with stuff)\nlate [ AnyWater Crate ] -> [ WaterSinking0 ] sfx9\nlate [ AnyWater Drownable ] -> [ WaterDrown0 ] sfx9\nlate [ AnyWater WaterBlocker ] -> [ WaterBlocker ]\n[ > Water | stationary Zombie ] -> [ > Water | > Zombie ]\n[ > Flooding | stationary Zombie ] -> [ > Flooding | > Zombie ]\n\n(move crates)\n[ > Pusher | stationary Pushable ] -> [ > Pusher | > Pushable ]\n\n(zombies)\n[ PlayerU | ZombieAsleep ] -> [ stationary ZombiePlayerU | ZombieAwake ] sfx1\n[ PlayerD | ZombieAsleep ] -> [ stationary ZombiePlayerD | ZombieAwake ] sfx1\n[ PlayerL | ZombieAsleep ] -> [ stationary ZombiePlayerL | ZombieAwake ] sfx1\n[ PlayerR | ZombieAsleep ] -> [ stationary ZombiePlayerR | ZombieAwake ] sfx1\n\n(werewolves)\nup [ stationary Werewolf GoU | no Direction ] -> [ > Werewolf | GoU ]\ndown [ stationary Werewolf GoD | no Direction ] -> [ > Werewolf | GoD ]\nleft [ stationary Werewolf GoL | no Direction ] -> [ > Werewolf | GoL ]\nright [ stationary Werewolf GoR | no Direction ] -> [ > Werewolf | GoR ]\nup [ stationary Werewolf | GoU WerewolfFood ] -> [ > Werewolf | ] sfx1\ndown [ stationary Werewolf | GoD WerewolfFood ] -> [ > Werewolf | ] sfx1\nleft [ stationary Werewolf | GoL WerewolfFood ] -> [ > Werewolf | ] sfx1\nright [ stationary Werewolf | GoR WerewolfFood ] -> [ > Werewolf | ] sfx1\n[ Vision ] -> [ ]\n[ Target ] -> [ ]\n[ stationary Werewolf no Direction | no Obstacle no Vision | ... | WerewolfFood ] -> [ Werewolf | > Vision | ... | WerewolfFood ]\n[ > Vision | no Obstacle no Vision ] -> [ | > Vision ]\n[ > Vision | Zombie ] -> [ > HiLevelTarget | Zombie ]\n[ > Vision | Player ] -> [ > LoLevelTarget | Player ]\n[ no Werewolf | > Target ] -> [ > Target | ]\nup [ stationary Werewolf | > HiLevelTarget ] -> [ > Werewolf | GoU ]\ndown [ stationary Werewolf | > HiLevelTarget ] -> [ > Werewolf | GoD ]\nleft [ stationary Werewolf | > HiLevelTarget ] -> [ > Werewolf | GoL ]\nright [ stationary Werewolf | > HiLevelTarget ] -> [ > Werewolf | GoR ]\n[ stationary Werewolf no Direction | WerewolfFood ] -> [ > Werewolf | no Direction ] sfx1\nup [ stationary Werewolf | > LoLevelTarget ] -> [ > Werewolf | GoU ]\ndown [ stationary Werewolf | > LoLevelTarget ] -> [ > Werewolf | GoD ]\nleft [ stationary Werewolf | > LoLevelTarget ] -> [ > Werewolf | GoL ]\nright [ stationary Werewolf | > LoLevelTarget ] -> [ > Werewolf | GoR ]\n\nlate [ Player ] -> [ Player Winning ]\nlate [ Monster ] [ Winning ] -> [ Monster ] [ ]\nlate [ Animation ] [ Winning ] -> [ Animation ] [ ]\nlate [ SnakeHead no previousHead ] [ Winning ] -> [ SnakeHead ] [ ]\nlate [ Player Gun ] -> Win\nlate [ Lines ] -> Win\n\n[]->[] again (let's hope there's no infinite loop)\n\n==============\nWINCONDITIONS\n==============\n\nSome Winning\n\n=======\nLEVELS\n=======\n\nmessage Oh no. Zombies!\n\n1######\n#zl...#\n#..z..#\n#p...g#\n#..z..#\n#..u..#\n#..x..#\n#######\n\nmessage What's this?\n\n............\n.......tq...\n......y.ti..\n.....t.y.t..\n....y.t.y...\n...t.y.t....\n..y.t.yi....\n..qyyeqy....\n...eq..q....\n.....q..r...\n......qy....\n............\n\nmessage A snake gun! Just what I needed.\n\n1######\n#zl...#\n#..z..#\n#....s#\n#..z..#\n#..u..#\n#..x..#\n#######\n\nmessage Take that, zombie scum!\n\n2########\n#.......#\n#.#.z.#.#\n#..z.z..#\n#.......#\n#.......#\n#.s.#...#\n#.......#\n#...z...#\n#########\n\nmessage Victory, thy name is snake gun!\n\n3######\n#z..#z#\n#...z.#\n#.s...#\n#.....#\n#.c...#\n#..#..#\n#######\n\nmessage Oh no. Werewolves!\n\n4######\n#..w.w#\n#z....#\n#c#...#\n#sc...#\n#######\n\nmessage I'm almost out of snake bullets!\n\n5######\n#..w..#\n#....z#\n#w....#\n##s..##\n#.....#\n#.c...#\n#.....#\n#######\n\nmessage There's only one snake left.\n\n6############\n#.c....w....#\n#z#.....w.w.#\n#.c.cz......#\n#...........#\n#...........#\n#.#...w.....#\n#s..........#\n#############\n\nmessage What do I do now? Without snakes?\n\n7#######\n#g.....#\n#..w...#\n#.c....#\n#..~...#\n#..~..w#\n#p.#...#\n########\n\nmessage What's this? Another snake gun?\n\n............\n......tq....\n......rtq...\n...tqy.r.r..\n...r..y.y...\n..y.te.t....\n.t.y..yi....\n.qt.teqy....\n..eeq..i....\n.....i..r...\n......qy....\n............\n\n(water gun, snake gun gun, snake rocket launcher, crowbar, explosive werewolf food gun...)\nmessage No, it's an ocean gun!\n\n7#######\n#o.....#\n#.cw...#\n#......#\n#..~...#\n#..~...#\n#..#...#\n########\n\nmessage I wonder if zombies can swim.\n\n8########\n#....o..#\n#.......#\n#.z.....#\n#.....z.#\n#w......#\n#......w#\n#########\n\nmessage Take that, werewolf scum!\n\n9#########\n##.....w##\n#w.......#\n#........#\n#...z....#\n#.z.....z#\n#...cc...#\n##...o..##\n##########\n\nmessage I'm almost out of water!\n\n10########\n#....o...#\n#........#\n#.z.....z#\n#...z....#\n#........#\n#w.......#\n##########\n\nmessage Only a few monsters are left.\nmessage But I ran out of bullets.\nmessage What shall I do?\n\n11##########\n#\"##......w#\n###..p.....#\n##....c....#\n#..........#\n#..z..z....#\n#z......z..#\n#z.z.......#\n#.........~#\n#........~~#\n#.....z.~~~#\n############\n\nmessage A noble sacrifice.\nmessage Thanks for playing!\nmessage THE END\n",[2,0,4,0,3,2,3,0,1],"background digit6 wall:0,background wall:1,1,1,1,1,1,1,1,1,background collider snaked snaker:2,background collider snaked snakeu:3,3,\n3,3,3,background playeru previousposition snakegun snakeu:4,1,1,background collider snakel snaker:5,1,background crate:6,background:7,7,1,7,\n1,1,5,7,7,7,7,7,7,1,1,5,7,\n6,7,7,7,7,1,1,background collider snaked snakel:8,3,3,3,3,3,\nbackground collider snaker snakeu:9,1,1,6,7,7,7,7,background werewolf:10,5,1,1,background previouscollision previoushead snakeheadl:11,\n7,7,7,7,7,5,1,1,5,10,7,7,7,\n7,5,1,1,5,7,7,7,7,7,5,1,1,\n5,10,7,7,7,7,5,1,1,8,3,3,3,\n3,3,background collider snakel snakeu:12,1,1,1,1,1,1,1,1,1,1,\n",15,"1627778871030.2454"] + ["title Unconventional Guns\nauthor rectangular Tim\n\n(run_rules_on_level_start)\nbackground_color darkblue\nagain_interval 0.07\nkey_repeat_interval 0.15\n(verbose_logging)\n\nhomepage http://ludumdare.com/compo/ludum-dare-32/?action=preview&uid=39396\n\n========\nOBJECTS\n========\n\nBackground\nlightGray\n\nGun\nBlack\n.....\n.....\n.000.\n.0...\n.....\n\nPlayerU\nBlue LightRed Brown White\n.222.\n.222.\n10001\n.000.\n.2.2.\n\nPlayerD\nBlue LightRed Brown White\n.222.\n.313.\n10001\n.000.\n.2.2.\n\nPlayerL\nBlue LightRed Brown White\n.222.\n.312.\n.010.\n.000.\n..22.\n\nPlayerR\nBlue LightRed Brown White\n.222.\n.213.\n.010.\n.000.\n.22..\n\nZombiePlayerU\nBlue Green Brown Red\n.222.\n.222.\n10001\n.000.\n.2.2.\n\nZombiePlayerD\nBlue Green Brown Red\n.222.\n.313.\n10001\n.000.\n.2.2.\n\nZombiePlayerL\nBlue Green Brown Red\n.222.\n.312.\n.010.\n.000.\n..22.\n\nZombiePlayerR\nBlue Green Brown Red\n.222.\n.213.\n.010.\n.000.\n.22..\n\nZombieAsleep\nDarkRed Green Black Red\n.222.\n.111.\n10001\n.000.\n.2.2.\n\nZombieAwake\nDarkRed Green Black Red\n.222.\n.313.\n10001\n.000.\n.2.2.\n\nWerewolf\nBrown Black\n.000.\n.101.\n00000\n.000.\n.0.0.\n\nSnakeHeadU\nLightGreen Green White\n.000.\n12021\n11011\n11011\n.101.\n\nSnakeHeadD\nLightGreen Green White Black\n.101.\n12021\n10001\n13331\n.111.\n\nSnakeHeadL\nLightGreen Green White\n000..\n.1200\n..111\n.1111\n111..\n\nSnakeHeadR\nLightGreen Green White\n..000\n0021.\n111..\n1111.\n..111\n\nSnakeU\nLightGreen Green\n.101.\n.101.\n.....\n.....\n.....\n\nSnakeD\nLightGreen Green\n.....\n.....\n.101.\n.101.\n.101.\n\nSnakeL\nLightGreen Green\n.....\n000..\n111..\n111..\n.....\n\nSnakeR\nLightGreen Green\n.....\n..000\n..111\n..111\n.....\n\nWater\nBlue lightBlue\n10000\n00000\n00010\n00000\n00100\n\nFloodingR\nBlue lightBlue\n100..\n000..\n000..\n000..\n001..\n\nFloodingL\nBlue lightBlue\n..000\n..000\n..010\n..000\n..100\n\nFloodingU\nBlue lightBlue\n.....\n.....\n00010\n00000\n00100\n\nFloodingD\nBlue lightBlue\n10000\n00000\n00010\n.....\n.....\n\nWaterDrown0\nBlue #000033 lightBlue\n21110\n01110\n11111\n01110\n01210\n\nWaterDrown1\nBlue #000066 lightBlue\n21110\n01110\n11111\n01110\n01210\n\nWaterSinking0\n#000044 lightBlue\n10000\n00000\n00010\n00000\n00100\n\nWaterSinking1\n#000088 lightBlue\n10000\n00000\n00010\n00000\n00100\n\nWaterSinking2\nBlue lightBlue #000088\n10000\n02220\n02210\n02220\n00100\n\nWaterSinking3\nBlue lightBlue #0000BB\n10000\n02220\n02210\n02220\n00100\n\nWaterSinking4\nBlue lightBlue #0000BB\n10000\n00000\n00210\n00000\n00100\n\nCrate\nBrown Orange LightBrown\n12221\n20002\n20002\n20002\n12221\n\nWall\ndarkblue\n\nWallL\nBlack\n0....\n0....\n0....\n0....\n0....\n\nWallR\nBlack\n....0\n....0\n....0\n....0\n....0\n\nWallU\nBlack\n00000\n.....\n.....\n.....\n.....\n\nWallD\nBlack\n.....\n.....\n.....\n.....\n00000\n\nDigit0\nWhite\n..00.\n.0..0\n.0..0\n.0..0\n..00.\n\nDigit1\nWhite\n...0.\n..00.\n...0.\n...0.\n..000\n\nDigit2\nWhite\n..00.\n.0..0\n...0.\n..0..\n.0000\n\nDigit3\nWhite\n.000.\n....0\n..00.\n....0\n.000.\n\nDigit4\nWhite\n...0.\n..0..\n.0.0.\n.0000\n...0.\n\nDigit5\nWhite\n.0000\n.0...\n.000.\n....0\n.000.\n\nDigit6\nWhite\n..00.\n.0...\n.000.\n.0..0\n..00.\n\nDigit7\nWhite\n.0000\n....0\n...0.\n..0..\n.0...\n\nDigit8\nWhite\n..00.\n.0..0\n..00.\n.0..0\n..00.\n\nDigit9\nWhite\n..00.\n.0..0\n..000\n....0\n..00.\n\npreviousHead\ntransparent\n\npreviousCollision\ntransparent\n\nCollider\ntransparent\n\nGoU\ntransparent\n\nGoD\ntransparent\n\nGoL\ntransparent\n\nGoR\ntransparent\n\nVision\ntransparent\n\nLoLevelTarget\ntransparent\n\nHiLevelTarget\ntransparent\n\nSnakeGun\ntransparent\n\nWaterGun\ntransparent\n\ncanMove\ntransparent\n\nrecoil\ntransparent\n\npreviousPosition\ntransparent\n\nWinning\ntransparent\n\nCover\ndarkblue\n\nq\nBlack\n0....\n0....\n.0...\n..0..\n...00\n\ni\nBlack\n00...\n..0..\n...0.\n....0\n....0\n\ne\nBlack\n00000\n.....\n.....\n.....\n.....\n\nr\nBlack\n0....\n0....\n0....\n0....\n0....\n\nt\nBlack\n...00\n.00..\n.0...\n0....\n0....\n\ny\nBlack\n....0\n....0\n...0.\n..00.\n00...\n\nx\nGray\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nu\nGray\n.....\n..0..\n.000.\n0.0.0\n..0..\n\nl\nGray\n...0.\n..0..\n.0000\n..0..\n...0.\n\n=======\nLEGEND\n=======\n\nWallOutline = WallU or WallD or WallL or WallR\n\nAnyDigit = Digit0 or Digit1 or Digit2 or Digit3 or Digit4 or Digit5 or Digit6 or Digit7 or Digit8 or Digit9\n\nPlayer = PlayerU or PlayerD or PlayerL or PlayerR\nZombiePlayer = ZombiePlayerU or ZombiePlayerD or ZombiePlayerL or ZombiePlayerR\nAnyPlayer = Player or ZombiePlayer\nZombie = ZombieAwake or ZombieAsleep or ZombiePlayer\nMonster = Zombie or Werewolf\n\nSnakeHead = SnakeHeadU or SnakeHeadD or SnakeHeadL or SnakeHeadR\nSnakeBody = SnakeU or SnakeD or SnakeL or SnakeR\nSnake = SnakeHead or SnakeBody\n\nSnakeFood = AnyPlayer or Zombie or Werewolf\nWerewolfFood = AnyPlayer or Zombie\n\nWaterBlocker = Snake or Wall\nDrownable = Player or Werewolf\nSinking = WaterDrown0 or WaterDrown1 or WaterSinking0 or WaterSinking1 or WaterSinking2 or WaterSinking3 or WaterSinking4\nFlooding = FloodingU or FloodingD or FloodingL or FloodingR\nAnyWater = Water or Sinking\n\nAnimation = Flooding or Sinking\n\nNoSnakeBody = AnyPlayer or Zombie or Werewolf or Crate or Wall or SnakeHead\nObstacle = AnyPlayer or Zombie or Werewolf or Crate or Wall or SnakeHead or Collider\nDirection = GoU or GoD or GoL or GoR\n\nPushable = Crate or Zombie\nPusher = Player or SnakeHead or Pushable\n\nLines = q or i or e or r or t or y\nDecoration = Gun or Lines or x or u or l\n\nTarget = LoLevelTarget or HiLevelTarget\n\n. = Background\n# = Wall\n~ = Water\np = PlayerD and canMove\ns = PlayerD and SnakeGun and canMove\no = PlayerD and WaterGun and canMove\nz = ZombieAsleep\nw = Werewolf\ng = Gun\nc = Crate\n\" = PlayerD and Cover\n\n0 = Wall and Digit0\n1 = Wall and Digit1\n2 = Wall and Digit2\n3 = Wall and Digit3\n4 = Wall and Digit4\n5 = Wall and Digit5\n6 = Wall and Digit6\n7 = Wall and Digit7\n8 = Wall and Digit8\n9 = Wall and Digit9\n\n=======\nSOUNDS\n=======\n\nPlayer Move 23783707\nPlayer Create 23783707\nWerewolf Move 23783707\nsfx1 84569108 (death)\nsfx2 27012908 (snake shot)\nsfx3 17311702 (collide)\nsfx4 55941902 (eat)\nsfx5 59606702 (bat)\nsfx6 52112502 (impossible)\nsfx7 89706502 (crowbar)\nsfx8 1782108 (water shot)\nsfx9 59937708 (drown)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nAnyWater Flooding\nSnakeU Decoration\nSnakeL Direction\nSnakeR\nObstacle\nSnakeD\nWallL Vision Target\nWallR SnakeGun WaterGun\nWallU previousCollision previousPosition\nWallD recoil\nAnyDigit canMove previousHead Cover\nWinning\n\n======\nRULES\n======\n\n(Editing convenience: Automatically add outlines to walls)\n([ WallOutline ] -> [ ]\nup [ Wall | No Wall ] -> [ Wall WallU | ]\ndown [ Wall | No Wall ] -> [ Wall WallD | ]\nleft [ Wall | No Wall ] -> [ Wall WallL | ]\nright[ Wall | No Wall ] -> [ Wall WallR | ])\n\n(player faces a certain direction)\n[ up Player no PlayerU ] [ canMove ] -> [ PlayerU ] [ canMove ]\n[ down Player no PlayerD ] [ canMove ] -> [ PlayerD ] [ canMove ]\n[ left Player no PlayerL ] [ canMove ] -> [ PlayerL ] [ canMove ]\n[ right Player no PlayerR ] [ canMove ] -> [ PlayerR ] [ canMove ]\n\n(shoot the Snake Gun)\nup [ action PlayerU | no Wall no Crate ] [ canMove SnakeGun ] -> [ PlayerU recoil | SnakeHeadU ] [ SnakeGun ] sfx2\ndown [ action PlayerD | no Wall no Crate ] [ canMove SnakeGun ] -> [ PlayerD recoil | SnakeHeadD ] [ SnakeGun ] sfx2\nleft [ action PlayerL | no Wall no Crate ] [ canMove SnakeGun ] -> [ PlayerL recoil | SnakeHeadL ] [ SnakeGun ] sfx2\nright [ action PlayerR | no Wall no Crate ] [ canMove SnakeGun ] -> [ PlayerR recoil | SnakeHeadR ] [ SnakeGun ] sfx2\n[ action Player ] [ canMove SnakeGun ] -> [ Player ] [ canMove SnakeGun ] sfx6\n(choose snake direction, when it can't move anymore)\n[ moving Player ] [ SnakeHead previousHead ] -> [ stationary Player ] [ moving SnakeHead previousHead ]\n(snake head moves forwards)\nup [ stationary SnakeHeadU ] -> [ > SnakeHeadU ]\ndown [ stationary SnakeHeadD ] -> [ > SnakeHeadD ]\nleft [ stationary SnakeHeadL ] -> [ > SnakeHeadL ]\nright [ stationary SnakeHeadR ] -> [ > SnakeHeadR ]\n(BONK!)\nlate [ SnakeHead previousHead no previousCollision ] -> [ SnakeHead previousHead previousCollision] sfx3\nlate [ SnakeHead no previousHead ] [ previousCollision ] -> [ SnakeHead no previousHead ] [ ]\n(snakes eat things)\nup [ > SnakeHead | SnakeFood ] -> [ > SnakeHead | no SnakeBody ] sfx4\ndown [ > SnakeHead | SnakeFood ] -> [ > SnakeHead | no SnakeBody ] sfx4\nleft [ > SnakeHead | SnakeFood ] -> [ > SnakeHead | no SnakeBody ] sfx4\nright [ > SnakeHead | SnakeFood ] -> [ > SnakeHead | no SnakeBody ] sfx4\n(remember previous position of snake head)\n[ previousHead ] -> [ ]\n[ SnakeHead ] -> [ SnakeHead previousHead ]\n(set the snake head orientation)\nlate up [ previousHead | SnakeHead ] -> [ previousHead | SnakeHeadU ]\nlate down [ previousHead | SnakeHead ] -> [ previousHead | SnakeHeadD ]\nlate left [ previousHead | SnakeHead ] -> [ previousHead | SnakeHeadL ]\nlate right [ previousHead | SnakeHead ] -> [ previousHead | SnakeHeadR ]\n(create the snake body)\nup [ PlayerU no SnakeU ] [ Snake ] [ SnakeGun ] -> [ PlayerU SnakeU ] [ Snake ] [ SnakeGun ]\ndown [ PlayerD no SnakeD ] [ Snake ] [ SnakeGun ] -> [ PlayerD SnakeD ] [ Snake ] [ SnakeGun ]\nleft [ PlayerL no SnakeL ] [ Snake ] [ SnakeGun ] -> [ PlayerL SnakeL ] [ Snake ] [ SnakeGun ]\nright [ PlayerR no SnakeR ] [ Snake ] [ SnakeGun ] -> [ PlayerR SnakeR ] [ Snake ] [ SnakeGun ]\nlate up [ no SnakeU no AnyPlayer | SnakeHeadU ] -> [ SnakeU | SnakeHeadU ]\nlate down [ no SnakeD no AnyPlayer | SnakeHeadD ] -> [ SnakeD | SnakeHeadD ]\nlate left [ no SnakeL no AnyPlayer | SnakeHeadL ] -> [ SnakeL | SnakeHeadL ]\nlate right [ no SnakeR no AnyPlayer | SnakeHeadR ] -> [ SnakeR | SnakeHeadR ]\n(connect the snake body)\nlate up [ SnakeU | no SnakeD no NoSnakeBody ] -> [ SnakeU | SnakeD ]\nlate down [ SnakeD | no SnakeU no NoSnakeBody ] -> [ SnakeD | SnakeU ]\nlate left [ SnakeL | no SnakeR no NoSnakeBody ] -> [ SnakeL | SnakeR ]\nlate right [ SnakeR | no SnakeL no NoSnakeBody ] -> [ SnakeR | SnakeL ]\n(make the snake body impassable)\nlate [ SnakeBody no Obstacle ] -> [ SnakeBody Collider ]\n\n(recoil)\n[ previousPosition ] -> [ ]\n[ Player ] -> [ Player previousPosition ]\nup [ stationary PlayerU ] [ recoil ] -> [ < PlayerU ] [ recoil ]\ndown [ stationary PlayerD ] [ recoil ] -> [ < PlayerD ] [ recoil ]\nleft [ stationary PlayerL ] [ recoil ] -> [ < PlayerL ] [ recoil ]\nright [ stationary PlayerR ] [ recoil ] -> [ < PlayerR ] [ recoil ]\nlate [ Player previousPosition ] [ recoil ] -> [ Player previousPosition ] [ ]\n\n(flooding animation)\n[ Flooding ] -> [ Water ]\n(shoot the water gun)\n[ action Player ] [ canMove WaterGun ] -> [ action Player ] [ WaterGun ]\nup [ action PlayerU | no Water ] [ WaterGun ] -> [ PlayerU | FloodingU ] [ WaterGun ] sfx8\ndown [ action PlayerD | no Water ] [ WaterGun ] -> [ PlayerD | FloodingD ] [ WaterGun ] sfx8\nleft [ action PlayerL | no Water ] [ WaterGun ] -> [ PlayerL | FloodingL ] [ WaterGun ] sfx8\nright [ action PlayerR | no Water ] [ WaterGun ] -> [ PlayerR | FloodingR ] [ WaterGun ] sfx8\nup [ action PlayerU | Water ] [ WaterGun ] -> [ PlayerU | > FloodingU ] [ WaterGun ] sfx8\ndown [ action PlayerD | Water ] [ WaterGun ] -> [ PlayerD | > FloodingD ] [ WaterGun ] sfx8\nleft [ action PlayerL | Water ] [ WaterGun ] -> [ PlayerL | > FloodingL ] [ WaterGun ] sfx8\nright [ action PlayerR | Water ] [ WaterGun ] -> [ PlayerR | > FloodingR ] [ WaterGun ] sfx8\n[ action Player ] [ canMove WaterGun ] -> [ Player ] [ canMove WaterGun ] sfx6\nlate up [ PlayerU | no Flooding ] [ WaterGun no canMove ] -> [ PlayerU | Water ] [ WaterGun ] sfx8\nlate down [ PlayerD | no Flooding ] [ WaterGun no canMove ] -> [ PlayerD | Water ] [ WaterGun ] sfx8\nlate left [ PlayerL | no Flooding ] [ WaterGun no canMove ] -> [ PlayerL | Water ] [ WaterGun ] sfx8\nlate right [ PlayerR | no Flooding ] [ WaterGun no canMove ] -> [ PlayerR | Water ] [ WaterGun ] sfx8\nlate [ Player ] [ no canMove WaterGun ] -> [ Player ] [ canMove WaterGun ]\n[ > Flooding | WaterBlocker ] -> [ Flooding | WaterBlocker ]\n[ > Flooding | stationary Water ] -> [ > Water | > Flooding ]\n(sinking animation)\n[ WaterSinking4 ] -> [ Water ]\n[ WaterSinking3 ] -> [ WaterSinking4 ]\n[ WaterSinking2 ] -> [ WaterSinking3 ]\n[ WaterSinking1 ] -> [ WaterSinking2 ]\n[ WaterDrown1 ] -> [ WaterSinking2 ]\n[ WaterSinking0 ] -> [ WaterSinking1 ]\n[ WaterDrown0 ] -> [ WaterDrown1 ]\n(water interacts with stuff)\nlate [ AnyWater Crate ] -> [ WaterSinking0 ] sfx9\nlate [ AnyWater Drownable ] -> [ WaterDrown0 ] sfx9\nlate [ AnyWater WaterBlocker ] -> [ WaterBlocker ]\n[ > Water | stationary Zombie ] -> [ > Water | > Zombie ]\n[ > Flooding | stationary Zombie ] -> [ > Flooding | > Zombie ]\n\n(move crates)\n[ > Pusher | stationary Pushable ] -> [ > Pusher | > Pushable ]\n\n(zombies)\n[ PlayerU | ZombieAsleep ] -> [ stationary ZombiePlayerU | ZombieAwake ] sfx1\n[ PlayerD | ZombieAsleep ] -> [ stationary ZombiePlayerD | ZombieAwake ] sfx1\n[ PlayerL | ZombieAsleep ] -> [ stationary ZombiePlayerL | ZombieAwake ] sfx1\n[ PlayerR | ZombieAsleep ] -> [ stationary ZombiePlayerR | ZombieAwake ] sfx1\n\n(werewolves)\nup [ stationary Werewolf GoU | no Direction ] -> [ > Werewolf | GoU ]\ndown [ stationary Werewolf GoD | no Direction ] -> [ > Werewolf | GoD ]\nleft [ stationary Werewolf GoL | no Direction ] -> [ > Werewolf | GoL ]\nright [ stationary Werewolf GoR | no Direction ] -> [ > Werewolf | GoR ]\nup [ stationary Werewolf | GoU WerewolfFood ] -> [ > Werewolf | ] sfx1\ndown [ stationary Werewolf | GoD WerewolfFood ] -> [ > Werewolf | ] sfx1\nleft [ stationary Werewolf | GoL WerewolfFood ] -> [ > Werewolf | ] sfx1\nright [ stationary Werewolf | GoR WerewolfFood ] -> [ > Werewolf | ] sfx1\n[ Vision ] -> [ ]\n[ Target ] -> [ ]\n[ stationary Werewolf no Direction | no Obstacle no Vision | ... | WerewolfFood ] -> [ Werewolf | > Vision | ... | WerewolfFood ]\n[ > Vision | no Obstacle no Vision ] -> [ | > Vision ]\n[ > Vision | Zombie ] -> [ > HiLevelTarget | Zombie ]\n[ > Vision | Player ] -> [ > LoLevelTarget | Player ]\n[ no Werewolf | > Target ] -> [ > Target | ]\nup [ stationary Werewolf | > HiLevelTarget ] -> [ > Werewolf | GoU ]\ndown [ stationary Werewolf | > HiLevelTarget ] -> [ > Werewolf | GoD ]\nleft [ stationary Werewolf | > HiLevelTarget ] -> [ > Werewolf | GoL ]\nright [ stationary Werewolf | > HiLevelTarget ] -> [ > Werewolf | GoR ]\n[ stationary Werewolf no Direction | WerewolfFood ] -> [ > Werewolf | no Direction ] sfx1\nup [ stationary Werewolf | > LoLevelTarget ] -> [ > Werewolf | GoU ]\ndown [ stationary Werewolf | > LoLevelTarget ] -> [ > Werewolf | GoD ]\nleft [ stationary Werewolf | > LoLevelTarget ] -> [ > Werewolf | GoL ]\nright [ stationary Werewolf | > LoLevelTarget ] -> [ > Werewolf | GoR ]\n\nlate [ Player ] -> [ Player Winning ]\nlate [ Monster ] [ Winning ] -> [ Monster ] [ ]\nlate [ Animation ] [ Winning ] -> [ Animation ] [ ]\nlate [ SnakeHead no previousHead ] [ Winning ] -> [ SnakeHead ] [ ]\nlate [ Player Gun ] -> Win\nlate [ Lines ] -> Win\n\n[]->[] again (let's hope there's no infinite loop)\n\n==============\nWINCONDITIONS\n==============\n\nSome Winning\n\n=======\nLEVELS\n=======\n\nmessage Oh no. Zombies!\n\n1######\n#zl...#\n#..z..#\n#p...g#\n#..z..#\n#..u..#\n#..x..#\n#######\n\nmessage What's this?\n\n............\n.......tq...\n......y.ti..\n.....t.y.t..\n....y.t.y...\n...t.y.t....\n..y.t.yi....\n..qyyeqy....\n...eq..q....\n.....q..r...\n......qy....\n............\n\nmessage A snake gun! Just what I needed.\n\n1######\n#zl...#\n#..z..#\n#....s#\n#..z..#\n#..u..#\n#..x..#\n#######\n\nmessage Take that, zombie scum!\n\n2########\n#.......#\n#.#.z.#.#\n#..z.z..#\n#.......#\n#.......#\n#.s.#...#\n#.......#\n#...z...#\n#########\n\nmessage Victory, thy name is snake gun!\n\n3######\n#z..#z#\n#...z.#\n#.s...#\n#.....#\n#.c...#\n#..#..#\n#######\n\nmessage Oh no. Werewolves!\n\n4######\n#..w.w#\n#z....#\n#c#...#\n#sc...#\n#######\n\nmessage I'm almost out of snake bullets!\n\n5######\n#..w..#\n#....z#\n#w....#\n##s..##\n#.....#\n#.c...#\n#.....#\n#######\n\nmessage There's only one snake left.\n\n6############\n#.c....w....#\n#z#.....w.w.#\n#.c.cz......#\n#...........#\n#...........#\n#.#...w.....#\n#s..........#\n#############\n\nmessage What do I do now? Without snakes?\n\n7#######\n#g.....#\n#..w...#\n#.c....#\n#..~...#\n#..~..w#\n#p.#...#\n########\n\nmessage What's this? Another snake gun?\n\n............\n......tq....\n......rtq...\n...tqy.r.r..\n...r..y.y...\n..y.te.t....\n.t.y..yi....\n.qt.teqy....\n..eeq..i....\n.....i..r...\n......qy....\n............\n\n(water gun, snake gun gun, snake rocket launcher, crowbar, explosive werewolf food gun...)\nmessage No, it's an ocean gun!\n\n7#######\n#o.....#\n#.cw...#\n#......#\n#..~...#\n#..~...#\n#..#...#\n########\n\nmessage I wonder if zombies can swim.\n\n8########\n#....o..#\n#.......#\n#.z.....#\n#.....z.#\n#w......#\n#......w#\n#########\n\nmessage Take that, werewolf scum!\n\n9#########\n##.....w##\n#w.......#\n#........#\n#...z....#\n#.z.....z#\n#...cc...#\n##...o..##\n##########\n\nmessage I'm almost out of water!\n\n10########\n#....o...#\n#........#\n#.z.....z#\n#...z....#\n#........#\n#w.......#\n##########\n\nmessage Only a few monsters are left.\nmessage But I ran out of bullets.\nmessage What shall I do?\n\n11##########\n#\"##......w#\n###..p.....#\n##....c....#\n#..........#\n#..z..z....#\n#z......z..#\n#z.z.......#\n#.........~#\n#........~~#\n#.....z.~~~#\n############\n\nmessage A noble sacrifice.\nmessage Thanks for playing!\nmessage THE END\n", [2, 0, 4, 0, 3, 2, 3, 0, 1], "background digit6 wall:0,background wall:1,1,1,1,1,1,1,1,1,background collider snaked snaker:2,background collider snaked snakeu:3,3,\n3,3,3,background playeru previousposition snakegun snakeu:4,1,1,background collider snakel snaker:5,1,background crate:6,background:7,7,1,7,\n1,1,5,7,7,7,7,7,7,1,1,5,7,\n6,7,7,7,7,1,1,background collider snaked snakel:8,3,3,3,3,3,\nbackground collider snaker snakeu:9,1,1,6,7,7,7,7,background werewolf:10,5,1,1,background previouscollision previoushead snakeheadl:11,\n7,7,7,7,7,5,1,1,5,10,7,7,7,\n7,5,1,1,5,7,7,7,7,7,5,1,1,\n5,10,7,7,7,7,5,1,1,8,3,3,3,\n3,3,background collider snakel snakeu:12,1,1,1,1,1,1,1,1,1,1,\n", 15, "1627778871030.2454"] ], [ `gallery: newton's crates`, - ["title Newton's Crates\nauthor Andrey Shevchuk\nhomepage shevchuk.net\n\nbackground_color darkbrown\ntext_color lightgrey\nnoaction\n\nagain_interval 0.1\n\n========\nOBJECTS\n========\n\nBackground\nlightgrey\n00000\n00000\n00000\n00000\n00000\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nBROWN darkbrown\n11111\n11111\n11111\n11111\n11111\n\nPlayer\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nCrate\norange Yellow\n00000\n00000\n00000\n00000\n00000\n\nFinalist0\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nFinalist1\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nFinalist2\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nGenius\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner001\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner002\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner003\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.433.\n...4.\n\nWinner004\nGrey Orange White Brown Black\n.000.\n3010.\n.0303\n.334.\n.4...\n\nWinner005\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.433.\n...4.\n\nWinner006\nGrey Orange White Brown Black\n.000.\n3010.\n.0303\n.334.\n.4...\n\nWinner007\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.433.\n...4.\n\nWinner008\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nm1\ntransparent\n\nm2\ntransparent\n\nm3\ntransparent\n\nm4\ntransparent\n\nm5\ntransparent\n\nm6\ntransparent\n\n\nWinner101\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner102\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner103\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner104\nGrey Orange White Brown Black\n.000.\n.013.\n3033.\n.333.\n.4.4.\n\nWinner105\nGrey Orange White Brown Black\n.000.\n.030.\n3033.\n.333.\n.4.4.\n\nWinner106\nGrey Orange White Brown Black\n.000.\n.013.\n3033.\n.333.\n.4.4.\n\nWinner107\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner108\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner109\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner201\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner202\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner203\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner204\nGrey Orange White Brown Black\n.....\n.0003\n3000.\n.030.\n.4.4.\n\nWinner205\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner206\nGrey Orange White Brown Black\n.....\n.0003\n3000.\n.030.\n.4.4.\n\nWinner207\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner208\nGrey Orange White Brown Black\n.....\n.0003\n3000.\n.030.\n.4.4.\n\nWinner209\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner210\nGrey Orange White Brown Black\n.....\n.0003\n3000.\n.030.\n.4.4.\n\nWinner211\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner301\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner302\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner303\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.343.\n.4...\n\nWinner304\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.334.\n.4...\n\n\nWinner305\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4..4\n\nWinner306\nGrey Orange White Brown Black\n.000.\n3010.\n.0303\n.333.\n.4..4\n\nWinner307\nGrey Orange White Brown Black\n.000.\n30103\n.030.\n.333.\n.4..4\n\nWinner308\nGrey Orange White Brown Black DarkBrown\n.000.\n3010.\n.030.\n.3335\n.4..4\n\nWinner309\nGrey Orange White Brown Black DarkBrown\n.000.\n3010.\n.030.\n.3335\n.4..4\n\n(Hiding amongst the winners, a fruit)\n\nApple\nGreen Red Transparent DarkRed\n22200\n21032\n11133\n11133\n21332\n\nAppleCore\nGreen Red Transparent DarkRed White\n22200\n21032\n22422\n22342\n21332\n\nWinner401\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner402\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner403\nGrey Orange White Brown Black\n.000.\n30103\n.030.\n.333.\n.4.4.\n\nWinner404\nGrey Orange White Brown Black\n.000.\n.313.\n.333.\n.333.\n.4.4.\n\nWinner405\nGrey Orange White Brown Black\n.000.\n30103\n.030.\n.333.\n.4.4.\n\nWinner406\nGrey Orange White Brown Black\n.000.\n.313.\n.333.\n.333.\n.4.4.\n\nWinner407\nGrey Orange White Brown Black\n.000.\n30103\n.030.\n.333.\n.4.4.\n\nWinner408\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner409\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner501\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner502\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner503\nGrey Orange White Brown Black\n.....\n.000.\n30103\n.030.\n.4.4.\n\nWinner504\nGrey Orange White Brown Black DarkGrey\n.....\n.000.\n30003\n.030.\n.5.5.\n\nWinner505\nGrey Orange White Brown Black DarkGrey\n.....\n.000.\n30003\n.000.\n.5.5.\n\nWinner506\nGrey Orange White Brown Black DarkGrey\n.....\n30003\n.000.\n.000.\n.5.5.\n\nWinner507\nGrey Orange White Brown Black DarkGrey\n.....\n30003\n.000.\n.000.\n.5.5.\n\nWinner508\nGrey Orange White Brown Black DarkGrey\n.....\n30003\n.000.\n.000.\n.5.5.\n\nWinner509\nGrey Orange White Brown Black DarkGrey\n.....\n30003\n.000.\n.000.\n.5.5.\n\nwait0\ntransparent\n\nwait1\ntransparent\n\nwait2\ntransparent\n\nwait3\ntransparent\n\nwait4\ntransparent\n\nwait5\ntransparent\n\nCloud\ngreen (as usual)\n.....\n.....\n.....\n.....\n.....\n\nclearsky1\ntransparent yellow\n\nclearsky2\ntransparent yellow\n\nclearsky3\ntransparent yellow\n\nfapple0\nGreen #9a1f2a Transparent DarkRed\n22200\n21032\n11133\n11133\n21332\n\nfapple1\n#2a6308 DarkRed Transparent DarkRed\n22002\n21100\n11113\n11133\n23332\n\nfapple2\n#59a72a Red Transparent Red\n22202\n21032\n11133\n11333\n21332\n\nfapple3\n#32720C #9a1f2a Transparent #9a1f2a\n00222\n21032\n11133\n11133\n23332\n\nsquashUL\nGreen Red Transparent DarkRed\n11122\n12222\n22222\n22222\n22222\n\nsquashUR\nGreen Red Transparent Red\n22333\n22223\n22222\n22222\n22222\n\nsquashDL\nGreen Red Transparent DarkRed\n22222\n22222\n22222\n22222\n12222\n\nsquashDR\nGreen Red Transparent Red\n22222\n22222\n22222\n22223\n22233\n\nfappleg\n#29580d #71ae4c Transparent #50723b\n22200\n21032\n11133\n11133\n21332\n\nsquashgU\n#50723b Red Transparent DarkRed\n20022\n22222\n22222\n22222\n22222\n\nsquashgR\n#29580d #71ae4c Transparent #50723b\n22222\n22222\n22222\n22222\n22223\n\nsquashgL\n#29580d #71ae4c Transparent #50723b\n22222\n22222\n22222\n22222\n32222\n\nsquashgD\n#29580d #71ae4c Transparent #50723b\n22222\n22222\n22222\n22222\n32222\n\nsquashU\ntransparent\n\nsquashR\ntransparent\n\nsquashL\ntransparent\n\nsquashD\ntransparent\n\nspaace\nblue\n.....\n.....\n.....\n.....\n.....\n\nzCrate\nOrange Yellow\n00000\n0...0\n0.0.0\n0...0\n00000\n\nlastCrateOnTarget\nRed Yellow\n00000\n00000\n00000\n00000\n00000\n\nlastTarget\ntransparent\n\nyeaCrate\nOrange Yellow\n00000\n0...0\n0.0.0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\nz = zCrate\n0 = Crate and Target\n@ = zCrate and Target\no = Target\na = Apple\nc = AppleCore\n1 = m1 and Apple and Crate\n2 = m2 and Apple\n3 = m3 and Apple and Crate\n4 = m4 and Apple and Crate\n5 = m5 and Apple and Crate\n6 = m6 and Apple and Crate\ny = cloud\n, = spaace\ng = lastTarget\nh = lastTarget and Crate\n\nInertial = Crate or zCrate or Wall or lastCrateOnTarget\n\nMumbling = m1 or m2 or m3 or m4 or m5 or m6\n\nClearsky = clearsky1 or clearsky2 or clearsky3\nFapple = fapple0 or fapple1 or fapple2 or fapple3\nFapples = Fapple or fappleg\nFinalists = Finalist0 or Finalist1 or Finalist2\nPlayers = Player or Finalists or Genius\nSquashing = fapple or Wall or fappleg or lastCrateOnTarget\n\nWaitFrames = wait0 or wait1 or wait2 or wait3 or wait4 or wait5\n\nWinAnimationStartFrame = Winner001 or Winner101 or Winner201 or Winner301 or Winner401 or Winner501\n\nWinnerFrames = Winner001 or Winner002 or Winner003 or Winner004 or Winner005 or Winner006 or Winner007 or Winner008 or Winner101 or Winner102 or Winner103 or Winner104 or Winner105 or Winner106 or Winner107 or Winner108 or Winner109 or Winner201 or Winner202 or Winner203 or Winner204 or Winner205 or Winner206 or Winner207 or Winner208 or Winner209 or Winner210 or Winner211 or Winner301 or Winner302 or Winner303 or Winner304 or Winner305 or Winner306 or Winner307 or Winner308 or Winner309 or Winner401 or Winner402 or Winner403 or Winner404 or Winner405 or Winner406 or Winner407 or Winner408 or Winner409 or Winner501 or Winner502 or Winner503 or Winner504 or Winner505 or Winner506 or Winner507 or Winner508 or Winner509\n\n=======\nSOUNDS\n=======\n\nInertial MOVE 62522307 (66976107) (36772507) (36718107)\n(Player Move 61661707) (too repetitive on long runs)\nsfx0 60497100 (zCrate moves on target)\n(sfx1 (58358104) (16763304) (bumping into a wall))\n\nsfx1 17123907 (green)\nsfx2 74112904\nsfx3 60342907\nsfx5 47189907\nsfx6 68393107\nsfx4 21039704 (wall)\nsfx10 70198308\nsfx7 65707900 (Level Complete)\nUndo 54083907\nRestart 5315306\nsfx9 94701308 (30980508) (16825502) (apple!)\nsfx8 67172908 (eurika)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nsquashUL \nsquashUR\nsquashDL\nsquashDR\nsquashgU\nsquashgD\nsquashgL\nsquashgR\nsquashU\nsquashL\nsquashD\nsquashR, WaitFrames, Mumbling\nTarget, Apple, AppleCore, cloud, Clearsky, spaace, lastTarget\nPlayers, Inertial, yeaCrate, WinnerFrames, fapples\n\n======\nRULES\n======\n\n(The actual rules of the game)\n\n[ > Player | Inertial ] -> [ > Player | > Inertial ]\n[ > Inertial | Inertial ] -> [ Inertial | > Inertial ]\n[ > Wall ] -> [ Wall ]\n[ > zCrate | Target ] -> [ > zCrate | Target ] sfx0\n\n\n(Win conditions, convoluted for the purposes of animation)\n\nlate [ zCrate Target ] -> [ yeaCrate Target ]\nlate [ yeaCrate ][ zCrate ] -> [ zCrate ][ zCrate ]\nlate [ yeaCrate ][Player] -> [yeaCrate][ wait0 random WinAnimationStartFrame ] sfx7\n\n\n(Win animations)\n\nlate [wait4] -> [wait5] again\nlate [wait3] -> [wait4] again\nlate [wait2] -> [wait3] again\nlate [wait1] -> [wait2] again\nlate [wait0] -> [wait1] again\n\nlate [ Winner509 ] -> Win\nlate [ Winner508 ][wait3] -> [ Winner509 ][wait0] again\nlate [ Winner507 ][wait3] -> [ Winner508 ][wait0] again\nlate [ Winner506 ][wait3] -> [ Winner507 ][wait0] again\nlate [ Winner505 ][wait3] -> [ Winner506 ][wait0] again\nlate [ Winner504 ][wait3] -> [ Winner505 ][wait0] again\nlate [ Winner503 ][wait3] -> [ Winner504 ][wait0] again\nlate [ Winner502 ][wait3] -> [ Winner503 ][wait0] again\nlate [ Winner501 ][wait3] -> [ Winner502 ][wait0] again\n\nlate [ Winner409 ] -> Win\nlate [ Winner408 ][wait3] -> [ Winner409 ][wait0] again\nlate [ Winner407 ][wait3] -> [ Winner408 ][wait0] again\nlate [ Winner406 ][wait3] -> [ Winner407 ][wait0] again\nlate [ Winner405 ][wait3] -> [ Winner406 ][wait0] again\nlate [ Winner404 ][wait3] -> [ Winner405 ][wait0] again\nlate [ Winner403 ][wait3] -> [ Winner404 ][wait0] again\nlate [ Winner402 ][wait3] -> [ Winner403 ][wait0] again\nlate [ Winner401 ][wait3] -> [ Winner402 ][wait0] again\n\nlate [ Winner309 ] -> Win\nlate [ Winner308 ][wait3] -> [ Winner309 ][wait0] again\nlate [ Winner307 ][wait3] -> [ Winner308 ][wait0] again\nlate [ Winner306 ][wait3] -> [ Winner307 ][wait0] again\nlate [ Winner305 ][wait3] -> [ Winner306 ][wait0] again\nlate [ Winner304 ][wait3] -> [ Winner305 ][wait0] again\nlate [ Winner303 ][wait3] -> [ Winner304 ][wait0] again\nlate [ Winner302 ][wait3] -> [ Winner303 ][wait0] again\nlate [ Winner301 ][wait3] -> [ Winner302 ][wait0] again\n\nlate [ Winner211 ] -> Win\nlate [ Winner210 ][wait3] -> [ Winner211 ][wait0] again\nlate [ Winner209 ][wait3] -> [ Winner210 ][wait0] again\nlate [ Winner208 ][wait3] -> [ Winner209 ][wait0] again\nlate [ Winner207 ][wait3] -> [ Winner208 ][wait0] again\nlate [ Winner206 ][wait3] -> [ Winner207 ][wait0] again\nlate [ Winner205 ][wait3] -> [ Winner206 ][wait0] again\nlate [ Winner204 ][wait3] -> [ Winner205 ][wait0] again\nlate [ Winner203 ][wait3] -> [ Winner204 ][wait0] again\nlate [ Winner202 ][wait3] -> [ Winner203 ][wait0] again\nlate [ Winner201 ][wait3] -> [ Winner202 ][wait0] again\n\nlate [ Winner109 ] -> Win\nlate [ Winner108 ][wait3] -> [ Winner109 ][wait0] again\nlate [ Winner107 ][wait3] -> [ Winner108 ][wait0] again\nlate [ Winner106 ][wait3] -> [ Winner107 ][wait0] again\nlate [ Winner105 ][wait3] -> [ Winner106 ][wait0] again\nlate [ Winner104 ][wait3] -> [ Winner105 ][wait0] again\nlate [ Winner103 ][wait3] -> [ Winner104 ][wait0] again\nlate [ Winner102 ][wait3] -> [ Winner103 ][wait0] again\nlate [ Winner101 ][wait3] -> [ Winner102 ][wait0] again\n\nlate [ Winner008 ] -> Win\nlate [ Winner007 ][wait3] -> [ Winner008 ][wait0] again\nlate [ Winner006 ][wait3] -> [ Winner007 ][wait0] again\nlate [ Winner005 ][wait3] -> [ Winner006 ][wait0] again\nlate [ Winner004 ][wait3] -> [ Winner005 ][wait0] again\nlate [ Winner003 ][wait3] -> [ Winner004 ][wait0] again\nlate [ Winner002 ][wait3] -> [ Winner003 ][wait0] again\nlate [ Winner001 ][wait3] -> [ Winner002 ][wait0] again\n\n\n(Apples and Mumblings)\n\nlate [ Player Apple ] -> [ Player AppleCore] sfx9\n\nlate [ Player m1 ] -> [ Player ] message Doesn't make much sense to put easter eggs into an open source game, does it? :)\nlate [ Player m2 ] -> [ Player ] message Ooooo! An apple!\nlate [ Player m3 ] -> [ Player ] message Who even builds warehouses like this!?\nlate [ Player m4 ] -> [ Player ] message Boy, has science funding in this country seen better days...\nlate [ Player m5 ] -> [ Player ] message You've gained +3 health!\nlate [ Player m6 ] -> [ Player ] message Wait... how was I supposed to find this one!?\n\n\n\n(The cutscene ;)\n\nlate [ Crate lastTarget ] -> [ yeaCrate lastTarget ]\nlate [lastTarget][ Crate ][ yeaCrate ] -> [lastTarget][ Crate ][ Crate ]\nlate down [yeaCrate][cloud | ... | Player] -> [lastCrateOnTarget][cloud fapple0 | ... | Player] sfx10 (the aimed apple spawn)\n\ndown [ fapple | Player ] -> [ fapple | Finalist0 wait0 ] sfx8 again\n\n(The intriguing pause)\n[Finalist2 wait5] -> [Genius] again\n[Finalist1 wait5] -> [Finalist2 wait0] again\n[Finalist0 wait5] -> [Finalist1 wait0] again\n\nrandom [cloud no fapple][Genius] -> [cloud random fapple][Genius]\ndown [ cloud fapple | ... | spaace no fapples | fapples] -> [ cloud fappleg | ... | spaace | fapples]\ndown [ fapples | no wall no players no fapples no lastCrateOnTarget] -> [> fapples |] again\ndown [fapples | ... | moving fapples] -> [ | ... | moving fapples]\n\n(These are only for sfx)\n[> fapples | | wall] -> [ | fapples | wall] sfx4\n[> fapples | | lastCrateOnTarget] -> [ | fapples | lastCrateOnTarget] sfx4\n[> fappleg | | fapples] -> [ | fappleg | fapples] sfx1\n[> fapple0 | | fapples] -> [ | fapple0 | fapples] sfx2\n[> fapple1 | | fapples] -> [ | fapple1 | fapples] sfx3\n[> fapple2 | | fapples] -> [ | fapple2 | fapples] sfx5\n[> fapple3 | | fapples] -> [ | fapple3 | fapples] sfx6\n\n(Randomize clouds for the next iteration)\n[Clearsky] -> [cloud]\n[moving fapple][cloud] -> [moving fapple][random Clearsky]\n[clearsky1] -> [cloud]\n[cloud] -> [cloud] again\n\n(Squashing)\nleft [stationary fapples | stationary squashing] -> [fapples squashL | squashing]\nright [stationary fapples | stationary squashing] -> [fapples squashR | squashing]\ndown [stationary fapples | stationary squashing] -> [fapples squashD | squashing]\nup [stationary fapples | stationary squashing] -> [fapples squashU | squashing]\n[squashU squashL] -> [squashU squashL squashUL]\n[squashU squashR] -> [squashU squashR squashUR]\n[squashD squashL] -> [squashD squashL squashDL]\n[squashD squashR] -> [squashD squashR squashDR]\n[squashD squashU squashL squashR] -> []\n\nright [stationary fappleg | stationary fappleg] -> [fappleg squashgR | squashgL fappleg]\ndown [stationary fappleg | stationary fappleg] -> [fappleg squashgD | squashgU fappleg]\n\n==============\nWINCONDITIONS\n==============\n\n(All zCrate on Target)\n\n=======\nLEVELS\n=======\n\n#####################\n#####################\n#####################\n#####################\n#######o#############\n#######.......#######\n#######.####1.#######\n#######z#...#.#######\n#######.#.p.#.#######\n#######.#...#.#######\n#######.##.##.#######\n#######......z#######\n#############o#######\n#####################\n#####################\n#####################\n#####################\n\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n###...............###\n###.......p.......###\n###..###########..###\n###o.z..*...*..z.o###\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n###...............###\n###.......p.......###\n##########*#####..###\n###o.z*********z.o###\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n\n####################\n####################\n####################\n####################\n######........######\n######....*...######\n######..####..######\n######..#..#..######\n######....z#..######\n######...###..######\n######.o......######\n######...p....######\n####################\n####################\n####################\n####################\n####################\n\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n########.....########\n###########..########\n########..z*.########\n########.p###########\n########....o########\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n\n#####################\n######.........######\n#####...........#####\n#####....p.z....#####\n#####...##.##...#####\n#####...#...#...#####\n#####...#.#.#...#####\n#####...#.@.#...#####\n#####...#.o.#...#####\n#####...#####...#####\n#####...#####...#####\n#####....####...#####\n#####...#####...#####\n#####....####...#####\n#####..2..####..#####\n#####..########.#####\n#####################\n\n####################\n####################\n####################\n####################\n##................##\n##....p...........##\n##..#####..#####..##\n##..#z**#..#zzz#..##\n##..#*#*#..#*.*#..##\n##..#**o#..#000#..##\n##..#####..#####..##\n##................##\n##................##\n####################\n####################\n####################\n####################\n\n#####################\n#####################\n#####################\n####.............####\n####.***********.####\n####.*.........*.####\n####.*.#######.*.####\n####.*.#######.*.####\n####.*.##.*.##.3.####\n####.*.##.*.##.*.####\n####.*.##.*.##.*.####\n####.*.##.*....*.####\n####.*p##.******.####\n####.zo##........####\n#####################\n#####################\n#####################\n\n#####################\n#####################\n#####..........######\n#####..........######\n#####........p.######\n#####...####*########\n#####...#***#....####\n#####...#*..*....####\n#####...#*..*....####\n#####...*#**z...o####\n#####...#........####\n#####...#...z....####\n#########...o....####\n#########........####\n#####################\n#####################\n#####################\n\n#####################\n#####################\n#####################\n##.............#...##\n##.............#...##\n##.............#...##\n##......z......#...##\n##...#####*##..#...##\n##...#..#o*.#..#...##\n##...#..###.####...##\n##...#....*........##\n##...#....*.p......##\n##...#.............##\n##...#.............##\n#####################\n#####################\n#####################\n\n####################\n######....##########\n######.#############\n###o##.......#######\n###z########.#######\n###.##******.#...###\n###......***.#.#.###\n######***.**.#.#.###\n######***.**.#.#.###\n####......***#.#.###\n####.#*******#.#####\n####.#*******..#####\n####.###############\n####.....p...#######\n############.#######\n#########....#######\n####################\n\n#####################\n#####################\n###.......p.......###\n###.#z##.###.#.##.###\n###.#*##.###.#.##.###\n###.#*##.###.#z##.###\n###.#*##.###*#*##.###\n###..*..*...*.*oo.###\n#####*##*###*#*######\n#####*##6###*#*######\n#####*##*###*#.######\n#####*##*###*#.######\n########.###.########\n############.########\n#####################\n#####################\n#####################\n\n#####################\n#####################\n###.######.######.###\n###..####...####..###\n###...##.....##...###\n###...#4******#...###\n###...#***z***#...###\n###...#***#***#...###\n###...#*******#...###\n###...#*******#...###\n###...####.####...###\n###...............###\n###...o.......p...###\n###...............###\n#####################\n#####################\n#####################\n\n#####################\n#####################\n####*#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*..*.####\n####p#*..*.#*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n####o.*.#*..*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#z.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n#####################\n#####################\n\n#####################\n#####################\n#####################\n############..#######\n#####.........#######\n#####..######.#######\n#####.p****5#.#######\n#####.##***##.#######\n#####.#.***.#.#######\n#####.#.****#########\n#####.#****....######\n#####.#######.z.#####\n#####.......#..o#####\n#####################\n#####################\n#####################\n#####################\n\nmessage No more than one more...\n\n##########.....########.o###########\n###........###...........###########\n###.######.#.z..####z#z#z###########\n###.######.#...#####...#o###########\n###.######.o.####.##.###.###########\n###.#######..#######.#...#####..####\n#.o.**#####.########.###o.####..z...\n#.###.#####.########......####.##o..\n....z.#####....#####....######*###.#\n..###.########.##############..o##.#\n#.....########.##############.p.z..#\n##############.###############.##..#\n############...##########.####.#####\n############z.o#########.#####.#####\n###########.*...##############.#####\n###########..#.................#####\n###########..#..####################\n\nmessage That's it!\nmessage I'm done!\nmessage I quit!\nmessage I'm going back to my calculus!\n\n#################################################\n#yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy#\n#...............................................#\n#..................................,............#\n#.....,,,,,,.......................,,...........#\n#.....,....,...................,,,,,,,..........#\n#.....,.........................................#\n#.....,................,,,.,,....,,,,...........#\n#.....,,,,.....,,,,,...,..,..,..,...,...........#\n#.....,................,..,..,..,...,...........#\n#.....,........,,,,,...,..,..,..,...,...........#\n#.....,................,..,..,..,...,..,,.......#\n#.....,................,..,..,...,,,,..,,.......#\n#.......................................,.......#\n#......................................,........#\n#...............................................#\n#.........,.............,.......................#\n#.........,.............,.......................#\n#.........,.............,.......................#\n#.........,.............,...............,.......#\n#......,,,,..,...,...,,,,...,,,.....,,...,......#\n#.....,...,..,...,..,...,..,...,....,,...,,.....#\n#.....,...,..,...,..,...,..,,,,,.........,,.....#\n#.....,...,..,...,..,...,..,........,,...,,.....#\n#.....,...,..,...,..,...,..,........,,...,,.....#\n#......,,,,...,,,,...,,,,...,,,......,...,......#\n#...................................,...,.......#\n#...............................................#\n#..................*........*...................#\n#.................***.......*..**...............#\n#................#####ggggg#####*...............#\n#................#####g###g#####*...............#\n#................#####g#h#g#####................#\n#.......p........#####h###g#####................#\n######################hhhhh######################\n\n",[1,1,1,1,1,3,0,0,0,0,0,2,0,1,2,1,0,0,1,1,1,1,0,0,3,3,0,3,0,0,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,\n0,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,background:1,1,1,1,1,1,1,1,1,1,\n1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,\n0,0,0,0,0,1,1,background player:2,1,1,1,1,1,1,1,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,1,background target:3,1,0,0,0,0,0,0,0,0,apple background crate m4:4,1,\nbackground crate:5,5,5,0,1,1,1,0,0,0,0,0,0,0,1,5,5,5,5,5,0,\n1,1,1,0,0,0,0,0,0,1,5,5,5,5,5,5,0,1,1,1,0,\n0,0,0,0,1,1,5,background zcrate:6,1,0,5,5,1,1,1,1,0,0,0,0,0,\n0,1,1,5,5,5,5,5,0,1,1,1,0,0,0,0,0,0,0,1,5,\n5,5,5,5,0,1,1,1,0,0,0,0,0,0,0,0,5,5,5,5,5,\n0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,\n0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,\n0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",12,"1627778916845.6555"] + ["title Newton's Crates\nauthor Andrey Shevchuk\nhomepage shevchuk.net\n\nbackground_color darkbrown\ntext_color lightgrey\nnoaction\n\nagain_interval 0.1\n\n========\nOBJECTS\n========\n\nBackground\nlightgrey\n00000\n00000\n00000\n00000\n00000\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nBROWN darkbrown\n11111\n11111\n11111\n11111\n11111\n\nPlayer\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nCrate\norange Yellow\n00000\n00000\n00000\n00000\n00000\n\nFinalist0\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nFinalist1\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nFinalist2\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nGenius\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner001\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner002\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner003\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.433.\n...4.\n\nWinner004\nGrey Orange White Brown Black\n.000.\n3010.\n.0303\n.334.\n.4...\n\nWinner005\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.433.\n...4.\n\nWinner006\nGrey Orange White Brown Black\n.000.\n3010.\n.0303\n.334.\n.4...\n\nWinner007\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.433.\n...4.\n\nWinner008\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nm1\ntransparent\n\nm2\ntransparent\n\nm3\ntransparent\n\nm4\ntransparent\n\nm5\ntransparent\n\nm6\ntransparent\n\n\nWinner101\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner102\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner103\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner104\nGrey Orange White Brown Black\n.000.\n.013.\n3033.\n.333.\n.4.4.\n\nWinner105\nGrey Orange White Brown Black\n.000.\n.030.\n3033.\n.333.\n.4.4.\n\nWinner106\nGrey Orange White Brown Black\n.000.\n.013.\n3033.\n.333.\n.4.4.\n\nWinner107\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner108\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner109\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner201\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner202\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner203\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner204\nGrey Orange White Brown Black\n.....\n.0003\n3000.\n.030.\n.4.4.\n\nWinner205\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner206\nGrey Orange White Brown Black\n.....\n.0003\n3000.\n.030.\n.4.4.\n\nWinner207\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner208\nGrey Orange White Brown Black\n.....\n.0003\n3000.\n.030.\n.4.4.\n\nWinner209\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner210\nGrey Orange White Brown Black\n.....\n.0003\n3000.\n.030.\n.4.4.\n\nWinner211\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner301\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner302\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner303\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.343.\n.4...\n\nWinner304\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.334.\n.4...\n\n\nWinner305\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4..4\n\nWinner306\nGrey Orange White Brown Black\n.000.\n3010.\n.0303\n.333.\n.4..4\n\nWinner307\nGrey Orange White Brown Black\n.000.\n30103\n.030.\n.333.\n.4..4\n\nWinner308\nGrey Orange White Brown Black DarkBrown\n.000.\n3010.\n.030.\n.3335\n.4..4\n\nWinner309\nGrey Orange White Brown Black DarkBrown\n.000.\n3010.\n.030.\n.3335\n.4..4\n\n(Hiding amongst the winners, a fruit)\n\nApple\nGreen Red Transparent DarkRed\n22200\n21032\n11133\n11133\n21332\n\nAppleCore\nGreen Red Transparent DarkRed White\n22200\n21032\n22422\n22342\n21332\n\nWinner401\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner402\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner403\nGrey Orange White Brown Black\n.000.\n30103\n.030.\n.333.\n.4.4.\n\nWinner404\nGrey Orange White Brown Black\n.000.\n.313.\n.333.\n.333.\n.4.4.\n\nWinner405\nGrey Orange White Brown Black\n.000.\n30103\n.030.\n.333.\n.4.4.\n\nWinner406\nGrey Orange White Brown Black\n.000.\n.313.\n.333.\n.333.\n.4.4.\n\nWinner407\nGrey Orange White Brown Black\n.000.\n30103\n.030.\n.333.\n.4.4.\n\nWinner408\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner409\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner501\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner502\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner503\nGrey Orange White Brown Black\n.....\n.000.\n30103\n.030.\n.4.4.\n\nWinner504\nGrey Orange White Brown Black DarkGrey\n.....\n.000.\n30003\n.030.\n.5.5.\n\nWinner505\nGrey Orange White Brown Black DarkGrey\n.....\n.000.\n30003\n.000.\n.5.5.\n\nWinner506\nGrey Orange White Brown Black DarkGrey\n.....\n30003\n.000.\n.000.\n.5.5.\n\nWinner507\nGrey Orange White Brown Black DarkGrey\n.....\n30003\n.000.\n.000.\n.5.5.\n\nWinner508\nGrey Orange White Brown Black DarkGrey\n.....\n30003\n.000.\n.000.\n.5.5.\n\nWinner509\nGrey Orange White Brown Black DarkGrey\n.....\n30003\n.000.\n.000.\n.5.5.\n\nwait0\ntransparent\n\nwait1\ntransparent\n\nwait2\ntransparent\n\nwait3\ntransparent\n\nwait4\ntransparent\n\nwait5\ntransparent\n\nCloud\ngreen (as usual)\n.....\n.....\n.....\n.....\n.....\n\nclearsky1\ntransparent yellow\n\nclearsky2\ntransparent yellow\n\nclearsky3\ntransparent yellow\n\nfapple0\nGreen #9a1f2a Transparent DarkRed\n22200\n21032\n11133\n11133\n21332\n\nfapple1\n#2a6308 DarkRed Transparent DarkRed\n22002\n21100\n11113\n11133\n23332\n\nfapple2\n#59a72a Red Transparent Red\n22202\n21032\n11133\n11333\n21332\n\nfapple3\n#32720C #9a1f2a Transparent #9a1f2a\n00222\n21032\n11133\n11133\n23332\n\nsquashUL\nGreen Red Transparent DarkRed\n11122\n12222\n22222\n22222\n22222\n\nsquashUR\nGreen Red Transparent Red\n22333\n22223\n22222\n22222\n22222\n\nsquashDL\nGreen Red Transparent DarkRed\n22222\n22222\n22222\n22222\n12222\n\nsquashDR\nGreen Red Transparent Red\n22222\n22222\n22222\n22223\n22233\n\nfappleg\n#29580d #71ae4c Transparent #50723b\n22200\n21032\n11133\n11133\n21332\n\nsquashgU\n#50723b Red Transparent DarkRed\n20022\n22222\n22222\n22222\n22222\n\nsquashgR\n#29580d #71ae4c Transparent #50723b\n22222\n22222\n22222\n22222\n22223\n\nsquashgL\n#29580d #71ae4c Transparent #50723b\n22222\n22222\n22222\n22222\n32222\n\nsquashgD\n#29580d #71ae4c Transparent #50723b\n22222\n22222\n22222\n22222\n32222\n\nsquashU\ntransparent\n\nsquashR\ntransparent\n\nsquashL\ntransparent\n\nsquashD\ntransparent\n\nspaace\nblue\n.....\n.....\n.....\n.....\n.....\n\nzCrate\nOrange Yellow\n00000\n0...0\n0.0.0\n0...0\n00000\n\nlastCrateOnTarget\nRed Yellow\n00000\n00000\n00000\n00000\n00000\n\nlastTarget\ntransparent\n\nyeaCrate\nOrange Yellow\n00000\n0...0\n0.0.0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\nz = zCrate\n0 = Crate and Target\n@ = zCrate and Target\no = Target\na = Apple\nc = AppleCore\n1 = m1 and Apple and Crate\n2 = m2 and Apple\n3 = m3 and Apple and Crate\n4 = m4 and Apple and Crate\n5 = m5 and Apple and Crate\n6 = m6 and Apple and Crate\ny = cloud\n, = spaace\ng = lastTarget\nh = lastTarget and Crate\n\nInertial = Crate or zCrate or Wall or lastCrateOnTarget\n\nMumbling = m1 or m2 or m3 or m4 or m5 or m6\n\nClearsky = clearsky1 or clearsky2 or clearsky3\nFapple = fapple0 or fapple1 or fapple2 or fapple3\nFapples = Fapple or fappleg\nFinalists = Finalist0 or Finalist1 or Finalist2\nPlayers = Player or Finalists or Genius\nSquashing = fapple or Wall or fappleg or lastCrateOnTarget\n\nWaitFrames = wait0 or wait1 or wait2 or wait3 or wait4 or wait5\n\nWinAnimationStartFrame = Winner001 or Winner101 or Winner201 or Winner301 or Winner401 or Winner501\n\nWinnerFrames = Winner001 or Winner002 or Winner003 or Winner004 or Winner005 or Winner006 or Winner007 or Winner008 or Winner101 or Winner102 or Winner103 or Winner104 or Winner105 or Winner106 or Winner107 or Winner108 or Winner109 or Winner201 or Winner202 or Winner203 or Winner204 or Winner205 or Winner206 or Winner207 or Winner208 or Winner209 or Winner210 or Winner211 or Winner301 or Winner302 or Winner303 or Winner304 or Winner305 or Winner306 or Winner307 or Winner308 or Winner309 or Winner401 or Winner402 or Winner403 or Winner404 or Winner405 or Winner406 or Winner407 or Winner408 or Winner409 or Winner501 or Winner502 or Winner503 or Winner504 or Winner505 or Winner506 or Winner507 or Winner508 or Winner509\n\n=======\nSOUNDS\n=======\n\nInertial MOVE 62522307 (66976107) (36772507) (36718107)\n(Player Move 61661707) (too repetitive on long runs)\nsfx0 60497100 (zCrate moves on target)\n(sfx1 (58358104) (16763304) (bumping into a wall))\n\nsfx1 17123907 (green)\nsfx2 74112904\nsfx3 60342907\nsfx5 47189907\nsfx6 68393107\nsfx4 21039704 (wall)\nsfx10 70198308\nsfx7 65707900 (Level Complete)\nUndo 54083907\nRestart 5315306\nsfx9 94701308 (30980508) (16825502) (apple!)\nsfx8 67172908 (eurika)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nsquashUL \nsquashUR\nsquashDL\nsquashDR\nsquashgU\nsquashgD\nsquashgL\nsquashgR\nsquashU\nsquashL\nsquashD\nsquashR, WaitFrames, Mumbling\nTarget, Apple, AppleCore, cloud, Clearsky, spaace, lastTarget\nPlayers, Inertial, yeaCrate, WinnerFrames, fapples\n\n======\nRULES\n======\n\n(The actual rules of the game)\n\n[ > Player | Inertial ] -> [ > Player | > Inertial ]\n[ > Inertial | Inertial ] -> [ Inertial | > Inertial ]\n[ > Wall ] -> [ Wall ]\n[ > zCrate | Target ] -> [ > zCrate | Target ] sfx0\n\n\n(Win conditions, convoluted for the purposes of animation)\n\nlate [ zCrate Target ] -> [ yeaCrate Target ]\nlate [ yeaCrate ][ zCrate ] -> [ zCrate ][ zCrate ]\nlate [ yeaCrate ][Player] -> [yeaCrate][ wait0 random WinAnimationStartFrame ] sfx7\n\n\n(Win animations)\n\nlate [wait4] -> [wait5] again\nlate [wait3] -> [wait4] again\nlate [wait2] -> [wait3] again\nlate [wait1] -> [wait2] again\nlate [wait0] -> [wait1] again\n\nlate [ Winner509 ] -> Win\nlate [ Winner508 ][wait3] -> [ Winner509 ][wait0] again\nlate [ Winner507 ][wait3] -> [ Winner508 ][wait0] again\nlate [ Winner506 ][wait3] -> [ Winner507 ][wait0] again\nlate [ Winner505 ][wait3] -> [ Winner506 ][wait0] again\nlate [ Winner504 ][wait3] -> [ Winner505 ][wait0] again\nlate [ Winner503 ][wait3] -> [ Winner504 ][wait0] again\nlate [ Winner502 ][wait3] -> [ Winner503 ][wait0] again\nlate [ Winner501 ][wait3] -> [ Winner502 ][wait0] again\n\nlate [ Winner409 ] -> Win\nlate [ Winner408 ][wait3] -> [ Winner409 ][wait0] again\nlate [ Winner407 ][wait3] -> [ Winner408 ][wait0] again\nlate [ Winner406 ][wait3] -> [ Winner407 ][wait0] again\nlate [ Winner405 ][wait3] -> [ Winner406 ][wait0] again\nlate [ Winner404 ][wait3] -> [ Winner405 ][wait0] again\nlate [ Winner403 ][wait3] -> [ Winner404 ][wait0] again\nlate [ Winner402 ][wait3] -> [ Winner403 ][wait0] again\nlate [ Winner401 ][wait3] -> [ Winner402 ][wait0] again\n\nlate [ Winner309 ] -> Win\nlate [ Winner308 ][wait3] -> [ Winner309 ][wait0] again\nlate [ Winner307 ][wait3] -> [ Winner308 ][wait0] again\nlate [ Winner306 ][wait3] -> [ Winner307 ][wait0] again\nlate [ Winner305 ][wait3] -> [ Winner306 ][wait0] again\nlate [ Winner304 ][wait3] -> [ Winner305 ][wait0] again\nlate [ Winner303 ][wait3] -> [ Winner304 ][wait0] again\nlate [ Winner302 ][wait3] -> [ Winner303 ][wait0] again\nlate [ Winner301 ][wait3] -> [ Winner302 ][wait0] again\n\nlate [ Winner211 ] -> Win\nlate [ Winner210 ][wait3] -> [ Winner211 ][wait0] again\nlate [ Winner209 ][wait3] -> [ Winner210 ][wait0] again\nlate [ Winner208 ][wait3] -> [ Winner209 ][wait0] again\nlate [ Winner207 ][wait3] -> [ Winner208 ][wait0] again\nlate [ Winner206 ][wait3] -> [ Winner207 ][wait0] again\nlate [ Winner205 ][wait3] -> [ Winner206 ][wait0] again\nlate [ Winner204 ][wait3] -> [ Winner205 ][wait0] again\nlate [ Winner203 ][wait3] -> [ Winner204 ][wait0] again\nlate [ Winner202 ][wait3] -> [ Winner203 ][wait0] again\nlate [ Winner201 ][wait3] -> [ Winner202 ][wait0] again\n\nlate [ Winner109 ] -> Win\nlate [ Winner108 ][wait3] -> [ Winner109 ][wait0] again\nlate [ Winner107 ][wait3] -> [ Winner108 ][wait0] again\nlate [ Winner106 ][wait3] -> [ Winner107 ][wait0] again\nlate [ Winner105 ][wait3] -> [ Winner106 ][wait0] again\nlate [ Winner104 ][wait3] -> [ Winner105 ][wait0] again\nlate [ Winner103 ][wait3] -> [ Winner104 ][wait0] again\nlate [ Winner102 ][wait3] -> [ Winner103 ][wait0] again\nlate [ Winner101 ][wait3] -> [ Winner102 ][wait0] again\n\nlate [ Winner008 ] -> Win\nlate [ Winner007 ][wait3] -> [ Winner008 ][wait0] again\nlate [ Winner006 ][wait3] -> [ Winner007 ][wait0] again\nlate [ Winner005 ][wait3] -> [ Winner006 ][wait0] again\nlate [ Winner004 ][wait3] -> [ Winner005 ][wait0] again\nlate [ Winner003 ][wait3] -> [ Winner004 ][wait0] again\nlate [ Winner002 ][wait3] -> [ Winner003 ][wait0] again\nlate [ Winner001 ][wait3] -> [ Winner002 ][wait0] again\n\n\n(Apples and Mumblings)\n\nlate [ Player Apple ] -> [ Player AppleCore] sfx9\n\nlate [ Player m1 ] -> [ Player ] message Doesn't make much sense to put easter eggs into an open source game, does it? :)\nlate [ Player m2 ] -> [ Player ] message Ooooo! An apple!\nlate [ Player m3 ] -> [ Player ] message Who even builds warehouses like this!?\nlate [ Player m4 ] -> [ Player ] message Boy, has science funding in this country seen better days...\nlate [ Player m5 ] -> [ Player ] message You've gained +3 health!\nlate [ Player m6 ] -> [ Player ] message Wait... how was I supposed to find this one!?\n\n\n\n(The cutscene ;)\n\nlate [ Crate lastTarget ] -> [ yeaCrate lastTarget ]\nlate [lastTarget][ Crate ][ yeaCrate ] -> [lastTarget][ Crate ][ Crate ]\nlate down [yeaCrate][cloud | ... | Player] -> [lastCrateOnTarget][cloud fapple0 | ... | Player] sfx10 (the aimed apple spawn)\n\ndown [ fapple | Player ] -> [ fapple | Finalist0 wait0 ] sfx8 again\n\n(The intriguing pause)\n[Finalist2 wait5] -> [Genius] again\n[Finalist1 wait5] -> [Finalist2 wait0] again\n[Finalist0 wait5] -> [Finalist1 wait0] again\n\nrandom [cloud no fapple][Genius] -> [cloud random fapple][Genius]\ndown [ cloud fapple | ... | spaace no fapples | fapples] -> [ cloud fappleg | ... | spaace | fapples]\ndown [ fapples | no wall no players no fapples no lastCrateOnTarget] -> [> fapples |] again\ndown [fapples | ... | moving fapples] -> [ | ... | moving fapples]\n\n(These are only for sfx)\n[> fapples | | wall] -> [ | fapples | wall] sfx4\n[> fapples | | lastCrateOnTarget] -> [ | fapples | lastCrateOnTarget] sfx4\n[> fappleg | | fapples] -> [ | fappleg | fapples] sfx1\n[> fapple0 | | fapples] -> [ | fapple0 | fapples] sfx2\n[> fapple1 | | fapples] -> [ | fapple1 | fapples] sfx3\n[> fapple2 | | fapples] -> [ | fapple2 | fapples] sfx5\n[> fapple3 | | fapples] -> [ | fapple3 | fapples] sfx6\n\n(Randomize clouds for the next iteration)\n[Clearsky] -> [cloud]\n[moving fapple][cloud] -> [moving fapple][random Clearsky]\n[clearsky1] -> [cloud]\n[cloud] -> [cloud] again\n\n(Squashing)\nleft [stationary fapples | stationary squashing] -> [fapples squashL | squashing]\nright [stationary fapples | stationary squashing] -> [fapples squashR | squashing]\ndown [stationary fapples | stationary squashing] -> [fapples squashD | squashing]\nup [stationary fapples | stationary squashing] -> [fapples squashU | squashing]\n[squashU squashL] -> [squashU squashL squashUL]\n[squashU squashR] -> [squashU squashR squashUR]\n[squashD squashL] -> [squashD squashL squashDL]\n[squashD squashR] -> [squashD squashR squashDR]\n[squashD squashU squashL squashR] -> []\n\nright [stationary fappleg | stationary fappleg] -> [fappleg squashgR | squashgL fappleg]\ndown [stationary fappleg | stationary fappleg] -> [fappleg squashgD | squashgU fappleg]\n\n==============\nWINCONDITIONS\n==============\n\n(All zCrate on Target)\n\n=======\nLEVELS\n=======\n\n#####################\n#####################\n#####################\n#####################\n#######o#############\n#######.......#######\n#######.####1.#######\n#######z#...#.#######\n#######.#.p.#.#######\n#######.#...#.#######\n#######.##.##.#######\n#######......z#######\n#############o#######\n#####################\n#####################\n#####################\n#####################\n\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n###...............###\n###.......p.......###\n###..###########..###\n###o.z..*...*..z.o###\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n###...............###\n###.......p.......###\n##########*#####..###\n###o.z*********z.o###\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n\n####################\n####################\n####################\n####################\n######........######\n######....*...######\n######..####..######\n######..#..#..######\n######....z#..######\n######...###..######\n######.o......######\n######...p....######\n####################\n####################\n####################\n####################\n####################\n\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n########.....########\n###########..########\n########..z*.########\n########.p###########\n########....o########\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n\n#####################\n######.........######\n#####...........#####\n#####....p.z....#####\n#####...##.##...#####\n#####...#...#...#####\n#####...#.#.#...#####\n#####...#.@.#...#####\n#####...#.o.#...#####\n#####...#####...#####\n#####...#####...#####\n#####....####...#####\n#####...#####...#####\n#####....####...#####\n#####..2..####..#####\n#####..########.#####\n#####################\n\n####################\n####################\n####################\n####################\n##................##\n##....p...........##\n##..#####..#####..##\n##..#z**#..#zzz#..##\n##..#*#*#..#*.*#..##\n##..#**o#..#000#..##\n##..#####..#####..##\n##................##\n##................##\n####################\n####################\n####################\n####################\n\n#####################\n#####################\n#####################\n####.............####\n####.***********.####\n####.*.........*.####\n####.*.#######.*.####\n####.*.#######.*.####\n####.*.##.*.##.3.####\n####.*.##.*.##.*.####\n####.*.##.*.##.*.####\n####.*.##.*....*.####\n####.*p##.******.####\n####.zo##........####\n#####################\n#####################\n#####################\n\n#####################\n#####################\n#####..........######\n#####..........######\n#####........p.######\n#####...####*########\n#####...#***#....####\n#####...#*..*....####\n#####...#*..*....####\n#####...*#**z...o####\n#####...#........####\n#####...#...z....####\n#########...o....####\n#########........####\n#####################\n#####################\n#####################\n\n#####################\n#####################\n#####################\n##.............#...##\n##.............#...##\n##.............#...##\n##......z......#...##\n##...#####*##..#...##\n##...#..#o*.#..#...##\n##...#..###.####...##\n##...#....*........##\n##...#....*.p......##\n##...#.............##\n##...#.............##\n#####################\n#####################\n#####################\n\n####################\n######....##########\n######.#############\n###o##.......#######\n###z########.#######\n###.##******.#...###\n###......***.#.#.###\n######***.**.#.#.###\n######***.**.#.#.###\n####......***#.#.###\n####.#*******#.#####\n####.#*******..#####\n####.###############\n####.....p...#######\n############.#######\n#########....#######\n####################\n\n#####################\n#####################\n###.......p.......###\n###.#z##.###.#.##.###\n###.#*##.###.#.##.###\n###.#*##.###.#z##.###\n###.#*##.###*#*##.###\n###..*..*...*.*oo.###\n#####*##*###*#*######\n#####*##6###*#*######\n#####*##*###*#.######\n#####*##*###*#.######\n########.###.########\n############.########\n#####################\n#####################\n#####################\n\n#####################\n#####################\n###.######.######.###\n###..####...####..###\n###...##.....##...###\n###...#4******#...###\n###...#***z***#...###\n###...#***#***#...###\n###...#*******#...###\n###...#*******#...###\n###...####.####...###\n###...............###\n###...o.......p...###\n###...............###\n#####################\n#####################\n#####################\n\n#####################\n#####################\n####*#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*..*.####\n####p#*..*.#*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n####o.*.#*..*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#z.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n#####################\n#####################\n\n#####################\n#####################\n#####################\n############..#######\n#####.........#######\n#####..######.#######\n#####.p****5#.#######\n#####.##***##.#######\n#####.#.***.#.#######\n#####.#.****#########\n#####.#****....######\n#####.#######.z.#####\n#####.......#..o#####\n#####################\n#####################\n#####################\n#####################\n\nmessage No more than one more...\n\n##########.....########.o###########\n###........###...........###########\n###.######.#.z..####z#z#z###########\n###.######.#...#####...#o###########\n###.######.o.####.##.###.###########\n###.#######..#######.#...#####..####\n#.o.**#####.########.###o.####..z...\n#.###.#####.########......####.##o..\n....z.#####....#####....######*###.#\n..###.########.##############..o##.#\n#.....########.##############.p.z..#\n##############.###############.##..#\n############...##########.####.#####\n############z.o#########.#####.#####\n###########.*...##############.#####\n###########..#.................#####\n###########..#..####################\n\nmessage That's it!\nmessage I'm done!\nmessage I quit!\nmessage I'm going back to my calculus!\n\n#################################################\n#yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy#\n#...............................................#\n#..................................,............#\n#.....,,,,,,.......................,,...........#\n#.....,....,...................,,,,,,,..........#\n#.....,.........................................#\n#.....,................,,,.,,....,,,,...........#\n#.....,,,,.....,,,,,...,..,..,..,...,...........#\n#.....,................,..,..,..,...,...........#\n#.....,........,,,,,...,..,..,..,...,...........#\n#.....,................,..,..,..,...,..,,.......#\n#.....,................,..,..,...,,,,..,,.......#\n#.......................................,.......#\n#......................................,........#\n#...............................................#\n#.........,.............,.......................#\n#.........,.............,.......................#\n#.........,.............,.......................#\n#.........,.............,...............,.......#\n#......,,,,..,...,...,,,,...,,,.....,,...,......#\n#.....,...,..,...,..,...,..,...,....,,...,,.....#\n#.....,...,..,...,..,...,..,,,,,.........,,.....#\n#.....,...,..,...,..,...,..,........,,...,,.....#\n#.....,...,..,...,..,...,..,........,,...,,.....#\n#......,,,,...,,,,...,,,,...,,,......,...,......#\n#...................................,...,.......#\n#...............................................#\n#..................*........*...................#\n#.................***.......*..**...............#\n#................#####ggggg#####*...............#\n#................#####g###g#####*...............#\n#................#####g#h#g#####................#\n#.......p........#####h###g#####................#\n######################hhhhh######################\n\n", [1, 1, 1, 1, 1, 3, 0, 0, 0, 0, 0, 2, 0, 1, 2, 1, 0, 0, 1, 1, 1, 1, 0, 0, 3, 3, 0, 3, 0, 0, 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,\n0,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,background:1,1,1,1,1,1,1,1,1,1,\n1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,\n0,0,0,0,0,1,1,background player:2,1,1,1,1,1,1,1,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,1,background target:3,1,0,0,0,0,0,0,0,0,apple background crate m4:4,1,\nbackground crate:5,5,5,0,1,1,1,0,0,0,0,0,0,0,1,5,5,5,5,5,0,\n1,1,1,0,0,0,0,0,0,1,5,5,5,5,5,5,0,1,1,1,0,\n0,0,0,0,1,1,5,background zcrate:6,1,0,5,5,1,1,1,1,0,0,0,0,0,\n0,1,1,5,5,5,5,5,0,1,1,1,0,0,0,0,0,0,0,1,5,\n5,5,5,5,0,1,1,1,0,0,0,0,0,0,0,0,5,5,5,5,5,\n0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,\n0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,\n0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 12, "1627778916845.6555"] ], [ `gallery: count mover`, - ["title Count Mover\nauthor Jonah Ostroff\nrun_rules_on_level_start\nkey_repeat_interval .5\nagain_interval 1\n\n========\nOBJECTS\n========\nBackground\n#AAA #EEE\n00000\n00010\n00000\n00100\n00000\n\nWall\n#842 #420\n01000\n11111\n00010\n11111\n01000\n\nPlayer\n#222 #57F #111\n.111.\n.111.\n00100\n.000.\n00.00\n\nGoal\nRed Yellow\n.000.\n01110\n01010\n01110\n.000.\n\nCrate\n#630 #951\n.....\n.000.\n.010.\n.000.\n.....\n\nN1\nWhite\n...0.\n..00.\n...0.\n...0.\n...0.\n\nN2\nWhite\n..00.\n.0..0\n...0.\n..0..\n.0000\n\nN3\nWhite\n..00.\n.0..0\n...0.\n.0..0\n..00.\n\nN4\nWhite\n.0..0\n.0..0\n.0000\n....0\n....0\n\nN5\nWhite\n.0000\n.0...\n.000.\n....0\n.000.\n\nN6\nWhite\n..00.\n.0...\n.000.\n.0..0\n..00.\n\nN7\nWhite\n.0000\n....0\n...0.\n..0..\n..0..\n\nN8\nWhite\n..00.\n.0..0\n..00.\n.0..0\n..00.\n\nN9\nWhite\n..00.\n.0..0\n..000\n....0\n..00.\n\nN0\nWhite\n..00.\n.0..0\n.0..0\n.0..0\n..00.\n\nPlus\nTransparent\n\nMinus\nTransparent\n\nNback\nBlack\n\nCountstart\nTransparent\n\nOnes\nTransparent\n\nStep1\nWhite\n.....\n....0\n.....\n.....\n....0\n\nStep2\nWhite\n00.00\n....0\n0...0\n.0..0\n0...0\n\nStep3\nWhite\n0.000\n..0..\n..00.\n..0..\n..000\n\nStep4\nWhite\n.00..\n.0.0.\n.00..\n.0...\n.0...\n\nStep5\nWhite\n.00..\n0...0\n.0...\n..0.0\n00...\n\nMin1\nWhite\n...00\n..0..\n..0.0\n..0..\n...00\n\nMin2\nWhite\n...0.\n..0.0\n0.0.0\n0.0.0\n...0.\n\nMin3\nWhite\n..0..\n.0.0.\n.000.\n.0.0.\n.0.0.\n\nMin4\nWhite\n0....\n0...0\n0....\n0...0\n000..\n\nDone\nTransparent\n\nResultBox\n#BBB\n.....\n.000.\n.0.0.\n.000.\n.....\n\nCheckBox\n#22F\n....0\n....0\n0..0.\n.0.0.\n..0..\n\nXBox\n#F00\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\n\nEnding1\nTransparent\n\nEnding2\nTransparent\n\nEnding3\nTransparent\n\nEnding4\nTransparent\n\n=======\nLEGEND\n=======\nMin = Min1 or Min2 or Min3 or Min4\nSteps = Step1 or Step2 or Step3 or Step4 or Step5\nNumber = N0 or N1 or N2 or N3 or N4 or N5 or N6 or N7 or N8 or N9\n\nEnding = Ending1 or Ending2 or Ending3 or Ending4\n\n# = Wall\n. = Background\n@ = Player\n* = Crate\nG = Goal\n0 = N0 and Nback\n! = N0 and Ones and Nback\n~ = Nback\n5 = Step5 and NBack\nR = Resultbox and NBack\n\n=======\nSOUNDS\n=======\nSfx1 97503900 (Done)\nSfx2 96982503 (See goal)\nSfx3 62353502 (Fail)\nSfx4 25691300 (Success!)\nPlayer CantMove 74490707\nCrate Move 76468107\n================\nCOLLISIONLAYERS\n================\nBackground\nNBack\nGoal ResultBox\nWall Player Crate Number Steps Min XBox Checkbox\nOnes Done Ending\nPlus Minus\nCountstart\n======\nRULES\n======\nRight[||||Step5] -> [Step1|Step2|Step3|Step4|Step5]\n\n[Player] -> [Player Countstart]\n\n[> Player|Crate] -> [> Player|> Crate]\n\nlate [Player no Countstart][Ones] -> [Player][Ones Plus]\n\n(Are we done?)\nlate [Player no Ending] -> [Player Done]\nlate [Done][Goal no Crate] -> [][Goal]\nlate [Ending3] -> [Ending4]\nlate [Ending2] -> [Ending3]\nlate [Ending1] -> [Ending2] Sfx2\nlate [Done] -> [Ending1] Sfx1\n\nlate [Ending4][Checkbox] -> [Ending4][Checkbox] Message Very efficient!\n\nlate [Ending4][XBox] -> [Ending4][XBox] Message I solved the puzzle! But I wasn't very efficient.\n\nlate RIGHT [Ending3][Step5|N0|N0][ResultBox] -> [Ending3][Step5|N0|N0][Resultbox Checkbox] Sfx4\nlate RIGHT [Ending3][ResultBox no CheckBox] -> [Ending3][ResultBox XBox] Sfx3\n\n\nstartloop\nlate [Plus N0] -> [N1]\nlate [Plus N1] -> [N2]\nlate [Plus N2] -> [N3]\nlate [Plus N3] -> [N4]\nlate [Plus N4] -> [N5]\nlate [Plus N5] -> [N6]\nlate [Plus N6] -> [N7]\nlate [Plus N7] -> [N8]\nlate [Plus N8] -> [N9]\nlate LEFT [Plus N9|] -> [N0|Plus]\nendloop\n\nlate [Plus] -> []\n\nlate UP [Ending2][Number||no Number] -> [Ending2][Number||Number]\nlate UP [Ending2][Ones||][Step5||] -> [Ending2][||Minus][Step5||Min4]\nlate Right [||||Min4] -> [ResultBox|Min1|Min2|Min3|Min4]\n\nstartloop\nlate [Minus N1] -> [N0]\nlate [Minus N2] -> [N1]\nlate [Minus N3] -> [N2]\nlate [Minus N4] -> [N3]\nlate [Minus N5] -> [N4]\nlate [Minus N6] -> [N5]\nlate [Minus N7] -> [N6]\nlate [Minus N8] -> [N7]\nlate [Minus N9] -> [N8]\nlate LEFT [Minus N0|] -> [N9|Minus]\nendloop\n\nlate [Minus] -> []\n\nlate [Countstart] -> []\n\nlate [Ending] -> [Ending] again\n\n==============\nWINCONDITIONS\n==============\nAll Crate on Goal\nSome Ending4\n=======\nLEVELS\n=======\nMessage Here at Count Mover's Moving Company, you can count on me to move your boxes as efficiently as possible.\n\n~~~~~~~~~\n~~~~~~~~~\n~~~~~~50!\n#########\n#...#...#\n#.G.#.@.#\n#.*.#...#\n#.G*##.##\n#.*GGG*.#\n#.G***G.#\n#.......#\n#########\n\n\n",[0,2,2,2,2,3,2,1,1,0,1,1,1,1,1,0,1,0,0,3,2],"background nback:0,0,0,background wall:1,1,1,1,1,1,\n1,1,1,0,0,0,1,background:2,2,\n2,2,background crate:3,2,2,1,0,0,background nback step1:4,\n1,2,background goal:5,background player:6,background crate goal:7,2,5,2,1,\n0,0,background nback step2:8,1,2,2,2,3,5,\n3,2,1,0,0,background nback step3:9,1,1,1,\n1,1,5,3,2,1,0,0,background nback step4:10,\n1,2,2,2,1,5,3,2,1,\n0,0,background nback step5:11,1,2,2,2,2,2,\n7,2,1,0,0,background n1 nback:12,1,2,2,\n2,1,2,2,2,1,0,0,background n9 nback ones:13,\n1,1,1,1,1,1,1,1,1,\n",1,"1627778943492.7725"] + ["title Count Mover\nauthor Jonah Ostroff\nrun_rules_on_level_start\nkey_repeat_interval .5\nagain_interval 1\n\n========\nOBJECTS\n========\nBackground\n#AAA #EEE\n00000\n00010\n00000\n00100\n00000\n\nWall\n#842 #420\n01000\n11111\n00010\n11111\n01000\n\nPlayer\n#222 #57F #111\n.111.\n.111.\n00100\n.000.\n00.00\n\nGoal\nRed Yellow\n.000.\n01110\n01010\n01110\n.000.\n\nCrate\n#630 #951\n.....\n.000.\n.010.\n.000.\n.....\n\nN1\nWhite\n...0.\n..00.\n...0.\n...0.\n...0.\n\nN2\nWhite\n..00.\n.0..0\n...0.\n..0..\n.0000\n\nN3\nWhite\n..00.\n.0..0\n...0.\n.0..0\n..00.\n\nN4\nWhite\n.0..0\n.0..0\n.0000\n....0\n....0\n\nN5\nWhite\n.0000\n.0...\n.000.\n....0\n.000.\n\nN6\nWhite\n..00.\n.0...\n.000.\n.0..0\n..00.\n\nN7\nWhite\n.0000\n....0\n...0.\n..0..\n..0..\n\nN8\nWhite\n..00.\n.0..0\n..00.\n.0..0\n..00.\n\nN9\nWhite\n..00.\n.0..0\n..000\n....0\n..00.\n\nN0\nWhite\n..00.\n.0..0\n.0..0\n.0..0\n..00.\n\nPlus\nTransparent\n\nMinus\nTransparent\n\nNback\nBlack\n\nCountstart\nTransparent\n\nOnes\nTransparent\n\nStep1\nWhite\n.....\n....0\n.....\n.....\n....0\n\nStep2\nWhite\n00.00\n....0\n0...0\n.0..0\n0...0\n\nStep3\nWhite\n0.000\n..0..\n..00.\n..0..\n..000\n\nStep4\nWhite\n.00..\n.0.0.\n.00..\n.0...\n.0...\n\nStep5\nWhite\n.00..\n0...0\n.0...\n..0.0\n00...\n\nMin1\nWhite\n...00\n..0..\n..0.0\n..0..\n...00\n\nMin2\nWhite\n...0.\n..0.0\n0.0.0\n0.0.0\n...0.\n\nMin3\nWhite\n..0..\n.0.0.\n.000.\n.0.0.\n.0.0.\n\nMin4\nWhite\n0....\n0...0\n0....\n0...0\n000..\n\nDone\nTransparent\n\nResultBox\n#BBB\n.....\n.000.\n.0.0.\n.000.\n.....\n\nCheckBox\n#22F\n....0\n....0\n0..0.\n.0.0.\n..0..\n\nXBox\n#F00\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\n\nEnding1\nTransparent\n\nEnding2\nTransparent\n\nEnding3\nTransparent\n\nEnding4\nTransparent\n\n=======\nLEGEND\n=======\nMin = Min1 or Min2 or Min3 or Min4\nSteps = Step1 or Step2 or Step3 or Step4 or Step5\nNumber = N0 or N1 or N2 or N3 or N4 or N5 or N6 or N7 or N8 or N9\n\nEnding = Ending1 or Ending2 or Ending3 or Ending4\n\n# = Wall\n. = Background\n@ = Player\n* = Crate\nG = Goal\n0 = N0 and Nback\n! = N0 and Ones and Nback\n~ = Nback\n5 = Step5 and NBack\nR = Resultbox and NBack\n\n=======\nSOUNDS\n=======\nSfx1 97503900 (Done)\nSfx2 96982503 (See goal)\nSfx3 62353502 (Fail)\nSfx4 25691300 (Success!)\nPlayer CantMove 74490707\nCrate Move 76468107\n================\nCOLLISIONLAYERS\n================\nBackground\nNBack\nGoal ResultBox\nWall Player Crate Number Steps Min XBox Checkbox\nOnes Done Ending\nPlus Minus\nCountstart\n======\nRULES\n======\nRight[||||Step5] -> [Step1|Step2|Step3|Step4|Step5]\n\n[Player] -> [Player Countstart]\n\n[> Player|Crate] -> [> Player|> Crate]\n\nlate [Player no Countstart][Ones] -> [Player][Ones Plus]\n\n(Are we done?)\nlate [Player no Ending] -> [Player Done]\nlate [Done][Goal no Crate] -> [][Goal]\nlate [Ending3] -> [Ending4]\nlate [Ending2] -> [Ending3]\nlate [Ending1] -> [Ending2] Sfx2\nlate [Done] -> [Ending1] Sfx1\n\nlate [Ending4][Checkbox] -> [Ending4][Checkbox] Message Very efficient!\n\nlate [Ending4][XBox] -> [Ending4][XBox] Message I solved the puzzle! But I wasn't very efficient.\n\nlate RIGHT [Ending3][Step5|N0|N0][ResultBox] -> [Ending3][Step5|N0|N0][Resultbox Checkbox] Sfx4\nlate RIGHT [Ending3][ResultBox no CheckBox] -> [Ending3][ResultBox XBox] Sfx3\n\n\nstartloop\nlate [Plus N0] -> [N1]\nlate [Plus N1] -> [N2]\nlate [Plus N2] -> [N3]\nlate [Plus N3] -> [N4]\nlate [Plus N4] -> [N5]\nlate [Plus N5] -> [N6]\nlate [Plus N6] -> [N7]\nlate [Plus N7] -> [N8]\nlate [Plus N8] -> [N9]\nlate LEFT [Plus N9|] -> [N0|Plus]\nendloop\n\nlate [Plus] -> []\n\nlate UP [Ending2][Number||no Number] -> [Ending2][Number||Number]\nlate UP [Ending2][Ones||][Step5||] -> [Ending2][||Minus][Step5||Min4]\nlate Right [||||Min4] -> [ResultBox|Min1|Min2|Min3|Min4]\n\nstartloop\nlate [Minus N1] -> [N0]\nlate [Minus N2] -> [N1]\nlate [Minus N3] -> [N2]\nlate [Minus N4] -> [N3]\nlate [Minus N5] -> [N4]\nlate [Minus N6] -> [N5]\nlate [Minus N7] -> [N6]\nlate [Minus N8] -> [N7]\nlate [Minus N9] -> [N8]\nlate LEFT [Minus N0|] -> [N9|Minus]\nendloop\n\nlate [Minus] -> []\n\nlate [Countstart] -> []\n\nlate [Ending] -> [Ending] again\n\n==============\nWINCONDITIONS\n==============\nAll Crate on Goal\nSome Ending4\n=======\nLEVELS\n=======\nMessage Here at Count Mover's Moving Company, you can count on me to move your boxes as efficiently as possible.\n\n~~~~~~~~~\n~~~~~~~~~\n~~~~~~50!\n#########\n#...#...#\n#.G.#.@.#\n#.*.#...#\n#.G*##.##\n#.*GGG*.#\n#.G***G.#\n#.......#\n#########\n\n\n", [0, 2, 2, 2, 2, 3, 2, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 3, 2], "background nback:0,0,0,background wall:1,1,1,1,1,1,\n1,1,1,0,0,0,1,background:2,2,\n2,2,background crate:3,2,2,1,0,0,background nback step1:4,\n1,2,background goal:5,background player:6,background crate goal:7,2,5,2,1,\n0,0,background nback step2:8,1,2,2,2,3,5,\n3,2,1,0,0,background nback step3:9,1,1,1,\n1,1,5,3,2,1,0,0,background nback step4:10,\n1,2,2,2,1,5,3,2,1,\n0,0,background nback step5:11,1,2,2,2,2,2,\n7,2,1,0,0,background n1 nback:12,1,2,2,\n2,1,2,2,2,1,0,0,background n9 nback ones:13,\n1,1,1,1,1,1,1,1,1,\n", 1, "1627778943492.7725"] ], [ `gallery: boxes love boxing gloves`, - ["title Boxes Love Boxing Gloves\nauthor Alan Hazelden\nhomepage www.draknek.org\n\nkey_repeat_interval 0.16\nagain_interval 0.16\nrealtime_interval 0.16\n\n(verbose_logging)\n\nnoaction\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\nBlack DarkBlue\n00000\n01110\n01110\n01110\n00000\n\n\nTarget\nWhite\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nGrey\n\nPlayer\n#a46422 #495e2b #493c2b #000000\n..0..\n.111.\n01110\n02220\n.2.2.\n\nBoxL L\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #d9c554\n01234\n92345\n93456\n94567\n45678\n\nBoxR R\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #edd964\n01234\n12349\n23459\n34569\n45678\n\nBoxU U\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #d9c554\n09994\n12345\n23456\n34567\n45678\n\nBoxD D\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #edd964\n01234\n12345\n23456\n34567\n49998\n\nSplatL\nred\n0....\n0....\n0....\n0....\n0....\n\nSplatR\nred\n....0\n....0\n....0\n....0\n....0\n\nSplatU\nred\n00000\n.....\n.....\n.....\n.....\n\nSplatD\nred\n.....\n.....\n.....\n.....\n00000\n\nSplatL2\nred\n0....\n0.0..\n00...\n0.0..\n0....\n\nSplatR2\nred\n....0\n..0.0\n...00\n..0.0\n....0\n\nSplatU2\nred\n00000\n..0..\n.0.0.\n.....\n.....\n\nSplatD2\nred\n.....\n.....\n.0.0.\n..0..\n00000\n\nGloveL\n#f2de68 #edd964 #e9d460 #e4cf5b #dfca57 #d9c554 #d5c14f #e5842d\n.012.\n01734\n12777\n23756\n.456.\n\nGloveR\n#f2de68 #edd964 #e9d460 #e4cf5b #dfca57 #d9c554 #d5c14f #d37521\n.012.\n01734\n77745\n23756\n.456.\n\nGloveU\n#f2de68 #edd964 #e9d460 #e4cf5b #dfca57 #d9c554 #d5c14f #e5842d\n.012.\n01234\n17775\n23756\n.476.\n\nGloveD\n#f2de68 #edd964 #e9d460 #e4cf5b #dfca57 #d9c554 #d5c14f #d37521\n.072.\n01734\n17775\n23456\n.456.\n\nCantTrigger\ntransparent\n\nTriggeredTemp\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #d9c554\n..2..\n.234.\n23456\n.456.\n..6..\n\nTriggeredFinal\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 Brown White\n..2..\n.777.\n27876\n.777.\n..6..\n\nPriority0\ntransparent\n\nPriority1\ntransparent\n\nPriority2\ntransparent\n\nPriority3\ntransparent\n\nPriority4\ntransparent\n\nTriggerCheck\ntransparent\n\nMoveHere\ntransparent\n\nPreventMove\ntransparent\n\nWallL\nDarkGrey\n0....\n0....\n0....\n0....\n0....\n\nWallR\nDarkGrey\n....0\n....0\n....0\n....0\n....0\n\nWallU\nDarkGrey\n00000\n.....\n.....\n.....\n.....\n\nWallD\nDarkGrey\n.....\n.....\n.....\n.....\n00000\n\nWallLR\nDarkGrey\n0...0\n0...0\n0...0\n0...0\n0...0\n\nWallUD\nDarkGrey\n00000\n.....\n.....\n.....\n00000\n \nWallUL\nDarkGrey\n0....\n.....\n.....\n.....\n.....\n \nWallUR\nDarkGrey\n....0\n.....\n.....\n.....\n.....\n \nWallDL\nDarkGrey\n.....\n.....\n.....\n.....\n0....\n \nWallDR\nDarkGrey\n.....\n.....\n.....\n.....\n....0\n \nWallDLR\nDarkGrey\n.....\n.....\n.....\n.....\n0...0\n \nWallULR\nDarkGrey\n0...0\n.....\n.....\n.....\n.....\n \nWallLUD\nDarkGrey\n0....\n.....\n.....\n.....\n0....\n \nWallRUD\nDarkGrey\n....0\n.....\n.....\n.....\n....0\n\nZero\nDarkGreen\n.000.\n.0.0.\n.0.0.\n.0.0.\n.000.\n\nOne\nDarkGreen\n.00..\n..0..\n..0..\n..0..\n.000.\n\nTwo\nDarkGreen\n.000.\n...0.\n.000.\n.0...\n.000.\n\nThree\nDarkGreen\n.000.\n...0.\n.000.\n...0.\n.000.\n\nFour\nDarkGreen\n.0.0.\n.0.0.\n.000.\n...0.\n...0.\n\nFive\nDarkGreen\n.000.\n.0...\n.000.\n...0.\n.000.\n\nSix\nDarkGreen\n.000.\n.0...\n.000.\n.0.0.\n.000.\n\nSeven\nDarkGreen\n.000.\n...0.\n...0.\n...0.\n...0.\n\nEight\nDarkGreen\n.000.\n.0.0.\n.000.\n.0.0.\n.000.\n\nNine\nDarkGreen\n.000.\n.0.0.\n.000.\n...0.\n.000.\n\nOnce\nBrown #dddddd\n.....\n.000.\n.010.\n.000.\n.....\n\n\n=======\nLEGEND\n=======\n\nCounter = Once\n\nCrate = BoxL or BoxR or BoxU or BoxD\n\nGlove = GloveL or GloveR or GloveU or GloveD\n\nHittable = Crate or Player or Glove\n\nPushable = Crate or Glove\n\nSolid = Crate or Wall or Glove\n\nSplat1 = SplatL or SplatR or SplatU or SplatD\nSplat2 = SplatL2 or SplatR2 or SplatU2 or SplatD2\n\nPriority = Priority1 or Priority2 or Priority3 or Priority4\n\nTriggered = TriggeredTemp or TriggeredFinal\n\n. = Background\n# = Wall\nP = Player\n* = Target\n! = Priority0\n? = Priority0 and BoxD\n$ = Priority0 and BoxU\n\nA = BoxL and Once\nB = BoxR and Once\nC = BoxU and Once\nE = BoxD and Once\n\nWallCoverLR = WallL or WallR or WallLR\nWallCoverUD = WallU or WallD or WallUD\nWallCoverCorner = WallUL or WallUR or WallDL or WallDR or WallDLR or WallLUD or WallRUD or WallULR\nWallCover = WallCoverLR or WallCoverUD or WallCoverCorner\n\nCoverLR = WallCoverLR\nCoverUD = WallCoverUD\n\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\n\n=======\nSOUNDS\n=======\n\nrestart 26040109\nundo 54997907\n\nendlevel 7293908\n\nPlayer move 88095307\nCrate move 5814507\n\nGlove create 55998304\nSplat1 create 2968302\n(67932504)\n\nsfx1 32201704 ( can't move )\nsfx2 5814507 ( crate move )\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget, Priority0\nPlayer, Wall, Crate, Glove\nTriggered, CantTrigger, Priority\nTriggerCheck, MoveHere\nWallCoverUD, Number, PreventMove\nWallCoverCorner, Counter\nWallCoverLR\nSplat1, Splat2\n\n\n======\nRULES\n======\n\n( Splat )\n\n[ SplatL ] -> [ SplatL2 ]\n[ SplatR ] -> [ SplatR2 ]\n[ SplatU ] -> [ SplatU2 ]\n[ SplatD ] -> [ SplatD2 ]\n\n( Set up temporary info we use for choosing a box )\n\n[ BoxL ] -> [ left BoxL ]\n[ BoxR ] -> [ right BoxR ]\n[ BoxU ] -> [ up BoxU ]\n[ BoxD ] -> [ down BoxD ]\n\n[ stationary Player ] -> [ action Player ]\n\n[ action Player Priority1 ] [ BoxL no Triggered no CantTrigger ] -> [ action Player Priority1 ] [ BoxL Priority1 ]\n[ action Player Priority1 ] [ BoxR no Triggered no CantTrigger ] -> [ action Player Priority1 ] [ BoxR Priority2 ]\n[ action Player Priority1 ] [ BoxU no Triggered no CantTrigger ] -> [ action Player Priority1 ] [ BoxU Priority4 ]\n[ action Player Priority1 ] [ BoxD no Triggered no CantTrigger ] -> [ action Player Priority1 ] [ BoxD Priority3 ]\n\n[ action Player Priority2 ] [ BoxL no Triggered no CantTrigger ] -> [ action Player Priority2 ] [ BoxL Priority2 ]\n[ action Player Priority2 ] [ BoxR no Triggered no CantTrigger ] -> [ action Player Priority2 ] [ BoxR Priority1 ]\n[ action Player Priority2 ] [ BoxU no Triggered no CantTrigger ] -> [ action Player Priority2 ] [ BoxU Priority4 ]\n[ action Player Priority2 ] [ BoxD no Triggered no CantTrigger ] -> [ action Player Priority2 ] [ BoxD Priority3 ]\n\n[ action Player Priority3 ] [ BoxL no Triggered no CantTrigger ] -> [ action Player Priority3 ] [ BoxL Priority3 ]\n[ action Player Priority3 ] [ BoxR no Triggered no CantTrigger ] -> [ action Player Priority3 ] [ BoxR Priority4 ]\n[ action Player Priority3 ] [ BoxU no Triggered no CantTrigger ] -> [ action Player Priority3 ] [ BoxU Priority1 ]\n[ action Player Priority3 ] [ BoxD no Triggered no CantTrigger ] -> [ action Player Priority3 ] [ BoxD Priority2 ]\n\n[ action Player Priority4 ] [ BoxL no Triggered no CantTrigger ] -> [ action Player Priority4 ] [ BoxL Priority3 ]\n[ action Player Priority4 ] [ BoxR no Triggered no CantTrigger ] -> [ action Player Priority4 ] [ BoxR Priority4 ]\n[ action Player Priority4 ] [ BoxU no Triggered no CantTrigger ] -> [ action Player Priority4 ] [ BoxU Priority2 ]\n[ action Player Priority4 ] [ BoxD no Triggered no CantTrigger ] -> [ action Player Priority4 ] [ BoxD Priority1 ]\n\n( Loop until we've chosen a box to trigger )\n\nstartloop\n\n( Choose a box )\n\nrandom [ action Player ] [ > Crate Priority0 Priority no Counter | Hittable ] -> [ Player ] [ > Crate Priority0 action TriggeredTemp | Hittable ]\n\nrandom [ action Player ] [ > Crate Priority1 no Counter | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority2 no Counter | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority3 no Counter | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority4 no Counter | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\n\nrandom [ action Player ] [ > Crate Priority1 | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority2 | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority3 | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority4 | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\n\n( Once we've chosen a box, choose the box behind it if that can also trigger )\n\n[ > Crate Priority | > Crate action Triggered ] -> [ > Crate action Triggered | > Crate Priority ]\n\n( Check if this box has space to push things forwards )\n( N.B. we use stationary TriggerCheck on the active box to prevent this loop thinking things are always going on )\n\n[ > Crate action Triggered no TriggerCheck | ] -> [ > Crate action Triggered TriggerCheck | > TriggerCheck ]\n\n[ > TriggerCheck Pushable | no MoveHere ] -> [ > TriggerCheck Pushable | > TriggerCheck ]\n+ [ perpendicular TriggerCheck Glove | no TriggerCheck < Crate Triggered ] -> [ perpendicular TriggerCheck Glove | perpendicular TriggerCheck < Crate Triggered ]\n+ [ perpendicular TriggerCheck > Crate Triggered | no TriggerCheck Glove ] -> [ perpendicular TriggerCheck > Crate Triggered | perpendicular TriggerCheck Glove ]\n\n( If can't move forwards )\n\n[ TriggerCheck Wall ] [ > TriggerCheck no Wall ] -> [ TriggerCheck Wall ] []\n[ TriggerCheck Wall ] -> [ action Wall ]\n\n( If can move forwards )\n\n[ > TriggerCheck no Solid ] -> [ > MoveHere ]\n\n( If can't move forwards, check if this box has space to push things backwards )\n\nrandom [ action Wall ] [ | > Crate action Triggered ] -> [ Wall ] [ < TriggerCheck | > Crate action Triggered ]\n\n[ action Wall ] -> [ Wall ]\n\n[ > TriggerCheck Pushable | no MoveHere ] -> [ > TriggerCheck Pushable | > TriggerCheck ]\n+ [ perpendicular TriggerCheck Glove | no TriggerCheck < Crate Triggered ] -> [ perpendicular TriggerCheck Glove | perpendicular TriggerCheck < Crate Triggered ]\n+ [ perpendicular TriggerCheck > Crate Triggered | no TriggerCheck Glove ] -> [ perpendicular TriggerCheck > Crate Triggered | perpendicular TriggerCheck Glove ]\n\n( If can't move backwards )\n\n[ TriggerCheck Wall ] [ Crate action Triggered ] -> [ TriggerCheck Wall ] [ Crate CantTrigger ]\n\n[ TriggerCheck Wall ] [ TriggerCheck no Wall ] -> [ TriggerCheck Wall ] []\n\n[ TriggerCheck Wall ] [ stationary Player ] -> [ Wall ] [ action Player ]\n\n[ TriggerCheck Wall ] -> [ Wall ]\n\n( If can move backwards )\n\n[ > TriggerCheck no Solid ] [ Crate action Triggered ] -> [ > MoveHere ] [ Crate > Triggered ]\n\n[ > TriggerCheck no Solid ] -> [ > MoveHere ]\n\nendloop\n\n[ moving TriggeredTemp Once ] -> [ moving TriggeredFinal ]\n\n[ > Crate TriggeredFinal | Glove ] -> [ > Crate TriggeredFinal | action Glove ]\n\n( now we've chosen a box or there's no suitable boxes )\n\n[ Priority no Player ] -> []\n\n[ moving Crate ] -> [ Crate ]\n\n( If all boxes triggered, remove all boxing gloves )\n\n[ action Player ] [ stationary Glove ] -> [ action Player ] []\n[ action Player ] [ TriggeredTemp ] -> [ action Player ] []\n[ action Player ] [ PreventMove ] -> [ action Player ] []\n[ CantTrigger ] -> []\n\n[ action Glove ] -> [ Glove ]\n\n( Push player - push untriggered boxes )\n\n[ MoveHere Player ] -> [ MoveHere Player PreventMove ]\n\n[ > MoveHere Player | BoxL Counter | no Solid ] -> [ > MoveHere no Priority | Player Priority1 | BoxL Counter ]\n[ > MoveHere Player | BoxR Counter | no Solid ] -> [ > MoveHere no Priority | Player Priority2 | BoxR Counter ]\n[ > MoveHere Player | BoxU Counter | no Solid ] -> [ > MoveHere no Priority | Player Priority3 | BoxU Counter ]\n[ > MoveHere Player | BoxD Counter | no Solid ] -> [ > MoveHere no Priority | Player Priority4 | BoxD Counter ]\n\n[ > MoveHere Player | BoxL no Triggered | no Solid ] -> [ > MoveHere no Priority | Player Priority1 | BoxL ]\n[ > MoveHere Player | BoxR no Triggered | no Solid ] -> [ > MoveHere no Priority | Player Priority2 | BoxR ]\n[ > MoveHere Player | BoxU no Triggered | no Solid ] -> [ > MoveHere no Priority | Player Priority3 | BoxU ]\n[ > MoveHere Player | BoxD no Triggered | no Solid ] -> [ > MoveHere no Priority | Player Priority4 | BoxD ]\n\n( Push player - push triggered boxes )\n\n[ > MoveHere Player | Crate Triggered ] -> [ > MoveHere Player | > Crate Triggered ]\n\n[ > MoveHere Player | Glove ] -> [ > MoveHere Player | > Glove ]\n\nleft [ GloveR | moving Crate Triggered ] -> [ moving GloveR | moving Crate Triggered ]\nright [ GloveL | moving Crate Triggered ] -> [ moving GloveL | moving Crate Triggered ]\nup [ GloveD | moving Crate Triggered ] -> [ moving GloveD | moving Crate Triggered ]\ndown [ GloveU | moving Crate Triggered ] -> [ moving GloveU | moving Crate Triggered ]\n\nleft [ moving GloveR | Crate Triggered ] -> [ moving GloveR | moving Crate Triggered ]\nright [ moving GloveL | Crate Triggered ] -> [ moving GloveL | moving Crate Triggered ]\nup [ moving GloveD | Crate Triggered ] -> [ moving GloveD | moving Crate Triggered ]\ndown [ moving GloveU | Crate Triggered ] -> [ moving GloveU | moving Crate Triggered ]\n\n[ > Crate | stationary Solid ] [ > Glove ] -> [ Crate | Solid ] [ Glove ]\n[ > Glove | stationary Solid ] [ > Crate ] -> [ Glove | Solid ] [ Crate ]\n\n[ > Crate Triggered | no Solid ] -> [ | Crate Triggered ]\n+ [ > Glove | no Solid ] -> [ | Glove ]\n\n[ > Pushable ] -> [ Pushable ]\n\n( Push player - push triggered box backwards )\n\n[ no Solid | Crate action Triggered | > MoveHere Player | Solid ] -> [ action Crate action Triggered | | Player | Solid ]\n\nleft [ action BoxL action Triggered | no Solid ] -> [ BoxL Triggered | GloveL ]\nright [ action BoxR action Triggered | no Solid ] -> [ BoxR Triggered | GloveR ]\nup [ action BoxU action Triggered | no Solid ] -> [ BoxU Triggered | GloveU ]\ndown [ action BoxD action Triggered | no Solid ] -> [ BoxD Triggered | GloveD ]\n\n( Push player - splat )\n\nleft [ > MoveHere Player | Solid ] -> [ > MoveHere SplatL | Solid SplatR ]\nright [ > MoveHere Player | Solid ] -> [ > MoveHere SplatR | Solid SplatL ]\nup [ > MoveHere Player | Solid ] -> [ > MoveHere SplatU | Solid SplatD ]\ndown [ > MoveHere Player | Solid ] -> [ > MoveHere SplatD | Solid SplatU ]\n\n( Push player - move safely )\n\nright [ > MoveHere Player | no Solid ] -> [ > MoveHere no Priority | Player Priority1 ]\nleft [ > MoveHere Player | no Solid ] -> [ > MoveHere no Priority | Player Priority2 ]\nup [ > MoveHere Player | no Solid ] -> [ > MoveHere no Priority | Player Priority3 ]\ndown [ > MoveHere Player | no Solid ] -> [ > MoveHere no Priority | Player Priority4 ]\n\n( Push boxes )\n\n[ > TriggerCheck Counter ] -> [ > TriggerCheck > Counter ]\n\n[ < MoveHere | < TriggerCheck Pushable no Triggered ] -> [ Pushable | < MoveHere ]\n+ [ < MoveHere | < TriggerCheck Pushable stationary Triggered ] -> [ Pushable Triggered | < MoveHere ]\n\nleft [ < MoveHere | Pushable < Triggered ] -> [ Pushable Triggered | GloveL ]\nright [ < MoveHere | Pushable < Triggered ] -> [ Pushable Triggered | GloveR ]\nup [ < MoveHere | Pushable < Triggered ] -> [ Pushable Triggered | GloveU ]\ndown [ < MoveHere | Pushable < Triggered ] -> [ Pushable Triggered | GloveD ]\n\nleft [ < MoveHere | Pushable action Triggered ] -> [ GloveR | Pushable Triggered ]\nright [ < MoveHere | Pushable action Triggered ] -> [ GloveL | Pushable Triggered ]\nup [ < MoveHere | Pushable action Triggered ] -> [ GloveD | Pushable Triggered ]\ndown [ < MoveHere | Pushable action Triggered ] -> [ GloveU | Pushable Triggered ]\n\n( Player movement - set trigger priority and mark which things to push )\n\n[ > Player | BoxL no Triggered ] -> [ > Player Priority1 | > BoxL ]\n[ > Player | BoxR no Triggered ] -> [ > Player Priority2 | > BoxR ]\n[ > Player | BoxU no Triggered ] -> [ > Player Priority3 | > BoxU ]\n[ > Player | BoxD no Triggered ] -> [ > Player Priority4 | > BoxD ]\n\n[ > Player | Glove ] -> [ > Player | > Glove ]\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nright [ > Player | no Crate ] -> [ > Player Priority1 | ]\nleft [ > Player | no Crate ] -> [ > Player Priority2 | ]\ndown [ > Player | no Crate ] -> [ > Player Priority3 | ]\nup [ > Player | no Crate ] -> [ > Player Priority4 | ]\n\nright [ > Player | Crate Triggered ] -> [ > Player Priority1 | Crate Triggered ]\nleft [ > Player | Crate Triggered ] -> [ > Player Priority2 | Crate Triggered ]\ndown [ > Player | Crate Triggered ] -> [ > Player Priority3 | Crate Triggered ]\nup [ > Player | Crate Triggered ] -> [ > Player Priority4 | Crate Triggered ]\n\n( Player movement - if part of a 2x1 box is moving, set the other part too )\n\nleft [ GloveR | moving Crate Triggered ] -> [ moving GloveR | moving Crate moving Triggered ]\nright [ GloveL | moving Crate Triggered ] -> [ moving GloveL | moving Crate moving Triggered ]\nup [ GloveD | moving Crate Triggered ] -> [ moving GloveD | moving Crate moving Triggered ]\ndown [ GloveU | moving Crate Triggered ] -> [ moving GloveU | moving Crate moving Triggered ]\n\nleft [ moving GloveR | Crate Triggered ] -> [ moving GloveR | moving Crate moving Triggered ]\nright [ moving GloveL | Crate Triggered ] -> [ moving GloveL | moving Crate moving Triggered ]\nup [ moving GloveD | Crate Triggered ] -> [ moving GloveD | moving Crate moving Triggered ]\ndown [ moving GloveU | Crate Triggered ] -> [ moving GloveU | moving Crate moving Triggered ]\n\n( Player movement - mark boxes which can't move )\n\n[ > Pushable | stationary Solid ] -> [ action Pushable | Solid ]\n\n[ action Crate | moving Glove ] -> [ Crate | Glove ]\n[ moving Crate | action Glove ] -> [ Crate | Glove ]\n\n[ action Pushable ] -> [ Pushable ]\n\n[ > Player | stationary Solid ] -> [ Player | Solid ] sfx1 ( can't move )\n\n[ stationary Crate moving Triggered ] -> [ Crate Triggered ]\n\n( Player movement - actually move )\n\n[ > Player Priority ] -> [ > Player > Priority ]\n[ > Crate Counter ] -> [ > Crate > Counter ]\n\n[ > Crate > Triggered | no Solid ] -> [ | action Crate Triggered ] sfx2\n+ [ > Crate | no Solid ] -> [ | action Crate ] sfx2\n+ [ > Glove | no Solid ] -> [ | action Glove ]\n\n( Cleanup and prevent player movement sometimes )\n\n[ > Glove ] -> cancel\n[ > Crate ] -> cancel\n\n[ TriggerCheck ] -> []\n[ MoveHere ] -> []\n\nleft [ stationary BoxL | action Pushable ] -> [ BoxL | Pushable PreventMove ]\nright [ stationary BoxR | action Pushable ] -> [ BoxR | Pushable PreventMove ]\nup [ stationary BoxU | action Pushable ] -> [ BoxU | Pushable PreventMove ]\ndown [ stationary BoxD | action Pushable ] -> [ BoxD | Pushable PreventMove ]\n\nleft [ action BoxL | stationary Pushable ] -> [ BoxL | Pushable PreventMove ]\nright [ action BoxR | stationary Pushable ] -> [ BoxR | Pushable PreventMove ]\nup [ action BoxU | stationary Pushable ] -> [ BoxU | Pushable PreventMove ]\ndown [ action BoxD | stationary Pushable ] -> [ BoxD | Pushable PreventMove ]\n\nlate left [ BoxL | Player ] -> [ BoxL | Player PreventMove ]\nlate right [ BoxR | Player ] -> [ BoxR | Player PreventMove ]\nlate up [ BoxU | Player ] -> [ BoxU | Player PreventMove ]\nlate down [ BoxD | Player ] -> [ BoxD | Player PreventMove ]\n\nlate [ PreventMove ] -> again\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\nleft [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallLUD | WallUD ]\nright [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallRUD | WallUD ]\nup [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallULR | WallLR ]\ndown [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallDLR | WallLR ]\n\nright [ WallD | Wall no WallCoverCorner no WallCoverUD ] -> [ WallD | Wall WallDL ]\nleft [ WallD | Wall no WallCoverCorner no WallCoverUD ] -> [ WallD | Wall WallDR ]\n \nright [ WallU | Wall no WallCoverCorner no WallCoverUD ] -> [ WallU | Wall WallUL ]\nleft [ WallU | Wall no WallCoverCorner no WallCoverUD ] -> [ WallU | Wall WallUR ]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll target on player\nAll player on target\n\n=======\nLEVELS\n=======\n\n##########\n#....d...#\n#..u.....#\n#.###.##.#\n#.....##.*\n###p######\n\n#####*##\n#.....##\n#.#.####\n#d..l..#\n#...#..#\n#r.....#\n#.!.u..#\n##p#####\n\n############\n#..r......##\n#..d..#uu.l#\np.....#...##\n#..u..#...##\n#r...l#....*\n############\n\n###########\n#r..#.....#\n*...#..u..#\n##?##..#..#\n#...#..#..#\n#.r....l..#\n#...#..#..#\n##p########\n\n##########p########\n######.........####\n######r#######.####\n#..dd...#####...l.#\n*........d......#.#\n#..........u....#.#\n#..uu...#####.....#\n###################\n\n############*##\n#.....#.#..#.##\n#.r.d......#.##\np.....#u#r....#\n#.r.u.###.lu..#\n#..........####\n###############\n\n###########\n#.....#####\n#.r.l..d.##\n#.........*\n#..u..u..##\n#.....#..l#\n###p#######\n\n####p######\n#......####\n#.u.#..####\n#.d.#..####\n#......####\n#.##...#..#\n#....l.#..*\n#......#r.#\n#....l.#d.#\n#.........#\n###########\n\n#############\n#....##d#.###\n#.r.........*\np.....a.u...#\n#.r..####.###\n#....####.###\n#############\n\n################\n#...####......##\n#.eu#......#..##\n#..........#..##\n#.......####.u.*\n##...#######..l#\n##p#############\n\n##############\n###..........#\n###....e.....#\n#.#..r...l..##\n#.#...###..u##\n*d#...###...a#\n#.....###...##\n#.#######...##\n##########p###\n\n##################\n#..............###\n#.e.......l.#..###\np.....#u#......###\n#.r.#########r.###\n#.b.#########r...#\n#...#########....#\n###############*##\n\n###############\n#............##\n#.r#......#...#\n#..#......!...#\n#..#......#u.##\n#..#...e..#r.##\n#..u......#..##\n#.........#...*\n#######p#######\n\n###########\n#####.....#\n###.......#\n*.#.e.r...#\n#.........#\n#!!$$.l...#\n#####.....#\n#######p###\n\n##############\n#########...##\n#########.u.##\n*.....##b...##\n#..u#........#\n#..d#.r.#..l.p\n#.......#....#\n##############\n\n#####*#########\n#####..####.d.#\n#...#.........#\n#.r.#.uu..#...#\n#.r.####..#.#.#\np.r.#.....#.#.#\n#.d.#.........#\n#...........a##\n#########uu####\n###############\n\n############\n#####...#..*\n#####.u.#..#\n#####.l.#d.#\np.#........#\n#.r.#.....l#\n#........###\n#####u######\n############\n\n#####p####\n#b.e....##\n#......a.#\n#..#..c..#\n*..#....##\n##########\n\n#################\n#.....###########\n#.e.e......a#####\np.....####.######\n#.b.b.d###.######\n#......d##.######\n####r...d#.######\n#####r.......#..*\n######r......#..#\n#######.........#\n#######....uu...#\n#################\n\n####################\n##...###.###########\n#..c.............###\n#..e........l.#..###\n#.....#u#u#.a....###\n#..b..#####...#r.###\n#..r..#####.c.#r...#\n#.............#....#\n########p########*##\n\n###*#########\n##..#..#..###\n##.lr..l..###\n##d##.##..###\n#..#........#\np..r..#.u...#\n#..#..#.d...#\n#..#........#\n#..r..u.#...#\n#..##########\n#############\n\n\n(alt levels)\n\n(###*######12#\n##..#..#..###\n##.lr..l..###\n##d##.##..###\n#..#........#\np..d..#.u...#\n#..#..#.d...#\n#..#........#\n#..r.u.###..#\n#..##########\n#############)\n\n\n(trashed levels)\n\n(############\n#####d######\n#.dd.......p\n#......r...#\n#..#.......#\n*..#...lu###\n####...#####\n####...#####\n############\n\n############\n####.......#\n####....#u##\n#.......#..*\n#.a#d#b.#d##\n#..........#\n###...######\n####p#######)\n\n\n(wip levels)\n\n(\n\n########\n####r..#\n####...*\n###d...#\n#....###\n#...u###\n#..#.###\n#......#\n#.r..l.p\n#......#\n########\n\n)\n\nmessage Thanks for playing :)\n\n( debug levels\n\n##############\n#.........##*#\n#....dr.r.####\n#...d.....####\n#........d...#\n#pr.r.r.u....#\n#........#####\n##############\n\n##############\n#...#.....##*#\n#....dr.r.####\n#...u.....####\n#........d...#\n#pr.r.r.u....#\n#........#####\n##############\n\n###########\n#.....#####\n#.p......##\n#........#*\n#.r......##\n#r.l#######\n###########\n\n############\n############\n####..######\n####..##d.##\n####..#...r#\n#.....#r..r#\n#...*.##ur##\n#.....###.##\n#########p##\n############\n\n\n###########\n#.....###*#\n#.p.r.d####\n#......d###\n####r...d##\n#####r....#\n######r...#\n#######...#\n###########\n\n)\n\n(11x7 screenshot)\n\n(###########\n####d###d##\n#r...r...##\n##.#.p.#.##\n##...l...l#\n##u###u####\n###########)\n\n",["tick","tick","tick","tick",3,"tick",2,"tick",2,"tick",3,"tick",3,"tick",0,"tick","tick",0,"tick",3,"tick",3,"tick",0,"tick","tick","tick","tick","tick",2,"tick",3,"tick",3,0,"tick","tick","tick"],"background wall:0,0,0,background wall walld:1,background:2,background wall wallr wallu:3,background wall wallr:4,background wall wallur:5,0,0,0,0,\n1,2,background boxr:6,2,background wall wallu:7,0,0,0,0,background wall walldlr:8,background wall walld walllr:9,2,\n2,7,0,0,0,0,1,2,2,2,7,0,\nbackground wall walldr:10,4,4,background wall walld wallr:11,2,background wall walllr wallud:12,2,3,5,1,2,background boxu:13,\n2,2,2,2,13,7,1,2,2,2,2,2,\n2,background wall walll wallu:14,background wall wallul:15,1,2,background boxl:16,background player priority1:17,2,2,2,7,0,\n8,background wall walllr:18,18,9,2,2,2,7,0,1,2,2,\nbackground boxd:19,2,2,14,15,0,1,2,2,2,2,16,\n7,0,0,1,background target:20,14,background wall walll:21,21,21,15,0,0,\n",16,"1627778966225.3145"] + ["title Boxes Love Boxing Gloves\nauthor Alan Hazelden\nhomepage www.draknek.org\n\nkey_repeat_interval 0.16\nagain_interval 0.16\nrealtime_interval 0.16\n\n(verbose_logging)\n\nnoaction\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\nBlack DarkBlue\n00000\n01110\n01110\n01110\n00000\n\n\nTarget\nWhite\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nGrey\n\nPlayer\n#a46422 #495e2b #493c2b #000000\n..0..\n.111.\n01110\n02220\n.2.2.\n\nBoxL L\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #d9c554\n01234\n92345\n93456\n94567\n45678\n\nBoxR R\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #edd964\n01234\n12349\n23459\n34569\n45678\n\nBoxU U\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #d9c554\n09994\n12345\n23456\n34567\n45678\n\nBoxD D\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #edd964\n01234\n12345\n23456\n34567\n49998\n\nSplatL\nred\n0....\n0....\n0....\n0....\n0....\n\nSplatR\nred\n....0\n....0\n....0\n....0\n....0\n\nSplatU\nred\n00000\n.....\n.....\n.....\n.....\n\nSplatD\nred\n.....\n.....\n.....\n.....\n00000\n\nSplatL2\nred\n0....\n0.0..\n00...\n0.0..\n0....\n\nSplatR2\nred\n....0\n..0.0\n...00\n..0.0\n....0\n\nSplatU2\nred\n00000\n..0..\n.0.0.\n.....\n.....\n\nSplatD2\nred\n.....\n.....\n.0.0.\n..0..\n00000\n\nGloveL\n#f2de68 #edd964 #e9d460 #e4cf5b #dfca57 #d9c554 #d5c14f #e5842d\n.012.\n01734\n12777\n23756\n.456.\n\nGloveR\n#f2de68 #edd964 #e9d460 #e4cf5b #dfca57 #d9c554 #d5c14f #d37521\n.012.\n01734\n77745\n23756\n.456.\n\nGloveU\n#f2de68 #edd964 #e9d460 #e4cf5b #dfca57 #d9c554 #d5c14f #e5842d\n.012.\n01234\n17775\n23756\n.476.\n\nGloveD\n#f2de68 #edd964 #e9d460 #e4cf5b #dfca57 #d9c554 #d5c14f #d37521\n.072.\n01734\n17775\n23456\n.456.\n\nCantTrigger\ntransparent\n\nTriggeredTemp\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #d9c554\n..2..\n.234.\n23456\n.456.\n..6..\n\nTriggeredFinal\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 Brown White\n..2..\n.777.\n27876\n.777.\n..6..\n\nPriority0\ntransparent\n\nPriority1\ntransparent\n\nPriority2\ntransparent\n\nPriority3\ntransparent\n\nPriority4\ntransparent\n\nTriggerCheck\ntransparent\n\nMoveHere\ntransparent\n\nPreventMove\ntransparent\n\nWallL\nDarkGrey\n0....\n0....\n0....\n0....\n0....\n\nWallR\nDarkGrey\n....0\n....0\n....0\n....0\n....0\n\nWallU\nDarkGrey\n00000\n.....\n.....\n.....\n.....\n\nWallD\nDarkGrey\n.....\n.....\n.....\n.....\n00000\n\nWallLR\nDarkGrey\n0...0\n0...0\n0...0\n0...0\n0...0\n\nWallUD\nDarkGrey\n00000\n.....\n.....\n.....\n00000\n \nWallUL\nDarkGrey\n0....\n.....\n.....\n.....\n.....\n \nWallUR\nDarkGrey\n....0\n.....\n.....\n.....\n.....\n \nWallDL\nDarkGrey\n.....\n.....\n.....\n.....\n0....\n \nWallDR\nDarkGrey\n.....\n.....\n.....\n.....\n....0\n \nWallDLR\nDarkGrey\n.....\n.....\n.....\n.....\n0...0\n \nWallULR\nDarkGrey\n0...0\n.....\n.....\n.....\n.....\n \nWallLUD\nDarkGrey\n0....\n.....\n.....\n.....\n0....\n \nWallRUD\nDarkGrey\n....0\n.....\n.....\n.....\n....0\n\nZero\nDarkGreen\n.000.\n.0.0.\n.0.0.\n.0.0.\n.000.\n\nOne\nDarkGreen\n.00..\n..0..\n..0..\n..0..\n.000.\n\nTwo\nDarkGreen\n.000.\n...0.\n.000.\n.0...\n.000.\n\nThree\nDarkGreen\n.000.\n...0.\n.000.\n...0.\n.000.\n\nFour\nDarkGreen\n.0.0.\n.0.0.\n.000.\n...0.\n...0.\n\nFive\nDarkGreen\n.000.\n.0...\n.000.\n...0.\n.000.\n\nSix\nDarkGreen\n.000.\n.0...\n.000.\n.0.0.\n.000.\n\nSeven\nDarkGreen\n.000.\n...0.\n...0.\n...0.\n...0.\n\nEight\nDarkGreen\n.000.\n.0.0.\n.000.\n.0.0.\n.000.\n\nNine\nDarkGreen\n.000.\n.0.0.\n.000.\n...0.\n.000.\n\nOnce\nBrown #dddddd\n.....\n.000.\n.010.\n.000.\n.....\n\n\n=======\nLEGEND\n=======\n\nCounter = Once\n\nCrate = BoxL or BoxR or BoxU or BoxD\n\nGlove = GloveL or GloveR or GloveU or GloveD\n\nHittable = Crate or Player or Glove\n\nPushable = Crate or Glove\n\nSolid = Crate or Wall or Glove\n\nSplat1 = SplatL or SplatR or SplatU or SplatD\nSplat2 = SplatL2 or SplatR2 or SplatU2 or SplatD2\n\nPriority = Priority1 or Priority2 or Priority3 or Priority4\n\nTriggered = TriggeredTemp or TriggeredFinal\n\n. = Background\n# = Wall\nP = Player\n* = Target\n! = Priority0\n? = Priority0 and BoxD\n$ = Priority0 and BoxU\n\nA = BoxL and Once\nB = BoxR and Once\nC = BoxU and Once\nE = BoxD and Once\n\nWallCoverLR = WallL or WallR or WallLR\nWallCoverUD = WallU or WallD or WallUD\nWallCoverCorner = WallUL or WallUR or WallDL or WallDR or WallDLR or WallLUD or WallRUD or WallULR\nWallCover = WallCoverLR or WallCoverUD or WallCoverCorner\n\nCoverLR = WallCoverLR\nCoverUD = WallCoverUD\n\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\n\n=======\nSOUNDS\n=======\n\nrestart 26040109\nundo 54997907\n\nendlevel 7293908\n\nPlayer move 88095307\nCrate move 5814507\n\nGlove create 55998304\nSplat1 create 2968302\n(67932504)\n\nsfx1 32201704 ( can't move )\nsfx2 5814507 ( crate move )\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget, Priority0\nPlayer, Wall, Crate, Glove\nTriggered, CantTrigger, Priority\nTriggerCheck, MoveHere\nWallCoverUD, Number, PreventMove\nWallCoverCorner, Counter\nWallCoverLR\nSplat1, Splat2\n\n\n======\nRULES\n======\n\n( Splat )\n\n[ SplatL ] -> [ SplatL2 ]\n[ SplatR ] -> [ SplatR2 ]\n[ SplatU ] -> [ SplatU2 ]\n[ SplatD ] -> [ SplatD2 ]\n\n( Set up temporary info we use for choosing a box )\n\n[ BoxL ] -> [ left BoxL ]\n[ BoxR ] -> [ right BoxR ]\n[ BoxU ] -> [ up BoxU ]\n[ BoxD ] -> [ down BoxD ]\n\n[ stationary Player ] -> [ action Player ]\n\n[ action Player Priority1 ] [ BoxL no Triggered no CantTrigger ] -> [ action Player Priority1 ] [ BoxL Priority1 ]\n[ action Player Priority1 ] [ BoxR no Triggered no CantTrigger ] -> [ action Player Priority1 ] [ BoxR Priority2 ]\n[ action Player Priority1 ] [ BoxU no Triggered no CantTrigger ] -> [ action Player Priority1 ] [ BoxU Priority4 ]\n[ action Player Priority1 ] [ BoxD no Triggered no CantTrigger ] -> [ action Player Priority1 ] [ BoxD Priority3 ]\n\n[ action Player Priority2 ] [ BoxL no Triggered no CantTrigger ] -> [ action Player Priority2 ] [ BoxL Priority2 ]\n[ action Player Priority2 ] [ BoxR no Triggered no CantTrigger ] -> [ action Player Priority2 ] [ BoxR Priority1 ]\n[ action Player Priority2 ] [ BoxU no Triggered no CantTrigger ] -> [ action Player Priority2 ] [ BoxU Priority4 ]\n[ action Player Priority2 ] [ BoxD no Triggered no CantTrigger ] -> [ action Player Priority2 ] [ BoxD Priority3 ]\n\n[ action Player Priority3 ] [ BoxL no Triggered no CantTrigger ] -> [ action Player Priority3 ] [ BoxL Priority3 ]\n[ action Player Priority3 ] [ BoxR no Triggered no CantTrigger ] -> [ action Player Priority3 ] [ BoxR Priority4 ]\n[ action Player Priority3 ] [ BoxU no Triggered no CantTrigger ] -> [ action Player Priority3 ] [ BoxU Priority1 ]\n[ action Player Priority3 ] [ BoxD no Triggered no CantTrigger ] -> [ action Player Priority3 ] [ BoxD Priority2 ]\n\n[ action Player Priority4 ] [ BoxL no Triggered no CantTrigger ] -> [ action Player Priority4 ] [ BoxL Priority3 ]\n[ action Player Priority4 ] [ BoxR no Triggered no CantTrigger ] -> [ action Player Priority4 ] [ BoxR Priority4 ]\n[ action Player Priority4 ] [ BoxU no Triggered no CantTrigger ] -> [ action Player Priority4 ] [ BoxU Priority2 ]\n[ action Player Priority4 ] [ BoxD no Triggered no CantTrigger ] -> [ action Player Priority4 ] [ BoxD Priority1 ]\n\n( Loop until we've chosen a box to trigger )\n\nstartloop\n\n( Choose a box )\n\nrandom [ action Player ] [ > Crate Priority0 Priority no Counter | Hittable ] -> [ Player ] [ > Crate Priority0 action TriggeredTemp | Hittable ]\n\nrandom [ action Player ] [ > Crate Priority1 no Counter | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority2 no Counter | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority3 no Counter | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority4 no Counter | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\n\nrandom [ action Player ] [ > Crate Priority1 | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority2 | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority3 | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority4 | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\n\n( Once we've chosen a box, choose the box behind it if that can also trigger )\n\n[ > Crate Priority | > Crate action Triggered ] -> [ > Crate action Triggered | > Crate Priority ]\n\n( Check if this box has space to push things forwards )\n( N.B. we use stationary TriggerCheck on the active box to prevent this loop thinking things are always going on )\n\n[ > Crate action Triggered no TriggerCheck | ] -> [ > Crate action Triggered TriggerCheck | > TriggerCheck ]\n\n[ > TriggerCheck Pushable | no MoveHere ] -> [ > TriggerCheck Pushable | > TriggerCheck ]\n+ [ perpendicular TriggerCheck Glove | no TriggerCheck < Crate Triggered ] -> [ perpendicular TriggerCheck Glove | perpendicular TriggerCheck < Crate Triggered ]\n+ [ perpendicular TriggerCheck > Crate Triggered | no TriggerCheck Glove ] -> [ perpendicular TriggerCheck > Crate Triggered | perpendicular TriggerCheck Glove ]\n\n( If can't move forwards )\n\n[ TriggerCheck Wall ] [ > TriggerCheck no Wall ] -> [ TriggerCheck Wall ] []\n[ TriggerCheck Wall ] -> [ action Wall ]\n\n( If can move forwards )\n\n[ > TriggerCheck no Solid ] -> [ > MoveHere ]\n\n( If can't move forwards, check if this box has space to push things backwards )\n\nrandom [ action Wall ] [ | > Crate action Triggered ] -> [ Wall ] [ < TriggerCheck | > Crate action Triggered ]\n\n[ action Wall ] -> [ Wall ]\n\n[ > TriggerCheck Pushable | no MoveHere ] -> [ > TriggerCheck Pushable | > TriggerCheck ]\n+ [ perpendicular TriggerCheck Glove | no TriggerCheck < Crate Triggered ] -> [ perpendicular TriggerCheck Glove | perpendicular TriggerCheck < Crate Triggered ]\n+ [ perpendicular TriggerCheck > Crate Triggered | no TriggerCheck Glove ] -> [ perpendicular TriggerCheck > Crate Triggered | perpendicular TriggerCheck Glove ]\n\n( If can't move backwards )\n\n[ TriggerCheck Wall ] [ Crate action Triggered ] -> [ TriggerCheck Wall ] [ Crate CantTrigger ]\n\n[ TriggerCheck Wall ] [ TriggerCheck no Wall ] -> [ TriggerCheck Wall ] []\n\n[ TriggerCheck Wall ] [ stationary Player ] -> [ Wall ] [ action Player ]\n\n[ TriggerCheck Wall ] -> [ Wall ]\n\n( If can move backwards )\n\n[ > TriggerCheck no Solid ] [ Crate action Triggered ] -> [ > MoveHere ] [ Crate > Triggered ]\n\n[ > TriggerCheck no Solid ] -> [ > MoveHere ]\n\nendloop\n\n[ moving TriggeredTemp Once ] -> [ moving TriggeredFinal ]\n\n[ > Crate TriggeredFinal | Glove ] -> [ > Crate TriggeredFinal | action Glove ]\n\n( now we've chosen a box or there's no suitable boxes )\n\n[ Priority no Player ] -> []\n\n[ moving Crate ] -> [ Crate ]\n\n( If all boxes triggered, remove all boxing gloves )\n\n[ action Player ] [ stationary Glove ] -> [ action Player ] []\n[ action Player ] [ TriggeredTemp ] -> [ action Player ] []\n[ action Player ] [ PreventMove ] -> [ action Player ] []\n[ CantTrigger ] -> []\n\n[ action Glove ] -> [ Glove ]\n\n( Push player - push untriggered boxes )\n\n[ MoveHere Player ] -> [ MoveHere Player PreventMove ]\n\n[ > MoveHere Player | BoxL Counter | no Solid ] -> [ > MoveHere no Priority | Player Priority1 | BoxL Counter ]\n[ > MoveHere Player | BoxR Counter | no Solid ] -> [ > MoveHere no Priority | Player Priority2 | BoxR Counter ]\n[ > MoveHere Player | BoxU Counter | no Solid ] -> [ > MoveHere no Priority | Player Priority3 | BoxU Counter ]\n[ > MoveHere Player | BoxD Counter | no Solid ] -> [ > MoveHere no Priority | Player Priority4 | BoxD Counter ]\n\n[ > MoveHere Player | BoxL no Triggered | no Solid ] -> [ > MoveHere no Priority | Player Priority1 | BoxL ]\n[ > MoveHere Player | BoxR no Triggered | no Solid ] -> [ > MoveHere no Priority | Player Priority2 | BoxR ]\n[ > MoveHere Player | BoxU no Triggered | no Solid ] -> [ > MoveHere no Priority | Player Priority3 | BoxU ]\n[ > MoveHere Player | BoxD no Triggered | no Solid ] -> [ > MoveHere no Priority | Player Priority4 | BoxD ]\n\n( Push player - push triggered boxes )\n\n[ > MoveHere Player | Crate Triggered ] -> [ > MoveHere Player | > Crate Triggered ]\n\n[ > MoveHere Player | Glove ] -> [ > MoveHere Player | > Glove ]\n\nleft [ GloveR | moving Crate Triggered ] -> [ moving GloveR | moving Crate Triggered ]\nright [ GloveL | moving Crate Triggered ] -> [ moving GloveL | moving Crate Triggered ]\nup [ GloveD | moving Crate Triggered ] -> [ moving GloveD | moving Crate Triggered ]\ndown [ GloveU | moving Crate Triggered ] -> [ moving GloveU | moving Crate Triggered ]\n\nleft [ moving GloveR | Crate Triggered ] -> [ moving GloveR | moving Crate Triggered ]\nright [ moving GloveL | Crate Triggered ] -> [ moving GloveL | moving Crate Triggered ]\nup [ moving GloveD | Crate Triggered ] -> [ moving GloveD | moving Crate Triggered ]\ndown [ moving GloveU | Crate Triggered ] -> [ moving GloveU | moving Crate Triggered ]\n\n[ > Crate | stationary Solid ] [ > Glove ] -> [ Crate | Solid ] [ Glove ]\n[ > Glove | stationary Solid ] [ > Crate ] -> [ Glove | Solid ] [ Crate ]\n\n[ > Crate Triggered | no Solid ] -> [ | Crate Triggered ]\n+ [ > Glove | no Solid ] -> [ | Glove ]\n\n[ > Pushable ] -> [ Pushable ]\n\n( Push player - push triggered box backwards )\n\n[ no Solid | Crate action Triggered | > MoveHere Player | Solid ] -> [ action Crate action Triggered | | Player | Solid ]\n\nleft [ action BoxL action Triggered | no Solid ] -> [ BoxL Triggered | GloveL ]\nright [ action BoxR action Triggered | no Solid ] -> [ BoxR Triggered | GloveR ]\nup [ action BoxU action Triggered | no Solid ] -> [ BoxU Triggered | GloveU ]\ndown [ action BoxD action Triggered | no Solid ] -> [ BoxD Triggered | GloveD ]\n\n( Push player - splat )\n\nleft [ > MoveHere Player | Solid ] -> [ > MoveHere SplatL | Solid SplatR ]\nright [ > MoveHere Player | Solid ] -> [ > MoveHere SplatR | Solid SplatL ]\nup [ > MoveHere Player | Solid ] -> [ > MoveHere SplatU | Solid SplatD ]\ndown [ > MoveHere Player | Solid ] -> [ > MoveHere SplatD | Solid SplatU ]\n\n( Push player - move safely )\n\nright [ > MoveHere Player | no Solid ] -> [ > MoveHere no Priority | Player Priority1 ]\nleft [ > MoveHere Player | no Solid ] -> [ > MoveHere no Priority | Player Priority2 ]\nup [ > MoveHere Player | no Solid ] -> [ > MoveHere no Priority | Player Priority3 ]\ndown [ > MoveHere Player | no Solid ] -> [ > MoveHere no Priority | Player Priority4 ]\n\n( Push boxes )\n\n[ > TriggerCheck Counter ] -> [ > TriggerCheck > Counter ]\n\n[ < MoveHere | < TriggerCheck Pushable no Triggered ] -> [ Pushable | < MoveHere ]\n+ [ < MoveHere | < TriggerCheck Pushable stationary Triggered ] -> [ Pushable Triggered | < MoveHere ]\n\nleft [ < MoveHere | Pushable < Triggered ] -> [ Pushable Triggered | GloveL ]\nright [ < MoveHere | Pushable < Triggered ] -> [ Pushable Triggered | GloveR ]\nup [ < MoveHere | Pushable < Triggered ] -> [ Pushable Triggered | GloveU ]\ndown [ < MoveHere | Pushable < Triggered ] -> [ Pushable Triggered | GloveD ]\n\nleft [ < MoveHere | Pushable action Triggered ] -> [ GloveR | Pushable Triggered ]\nright [ < MoveHere | Pushable action Triggered ] -> [ GloveL | Pushable Triggered ]\nup [ < MoveHere | Pushable action Triggered ] -> [ GloveD | Pushable Triggered ]\ndown [ < MoveHere | Pushable action Triggered ] -> [ GloveU | Pushable Triggered ]\n\n( Player movement - set trigger priority and mark which things to push )\n\n[ > Player | BoxL no Triggered ] -> [ > Player Priority1 | > BoxL ]\n[ > Player | BoxR no Triggered ] -> [ > Player Priority2 | > BoxR ]\n[ > Player | BoxU no Triggered ] -> [ > Player Priority3 | > BoxU ]\n[ > Player | BoxD no Triggered ] -> [ > Player Priority4 | > BoxD ]\n\n[ > Player | Glove ] -> [ > Player | > Glove ]\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nright [ > Player | no Crate ] -> [ > Player Priority1 | ]\nleft [ > Player | no Crate ] -> [ > Player Priority2 | ]\ndown [ > Player | no Crate ] -> [ > Player Priority3 | ]\nup [ > Player | no Crate ] -> [ > Player Priority4 | ]\n\nright [ > Player | Crate Triggered ] -> [ > Player Priority1 | Crate Triggered ]\nleft [ > Player | Crate Triggered ] -> [ > Player Priority2 | Crate Triggered ]\ndown [ > Player | Crate Triggered ] -> [ > Player Priority3 | Crate Triggered ]\nup [ > Player | Crate Triggered ] -> [ > Player Priority4 | Crate Triggered ]\n\n( Player movement - if part of a 2x1 box is moving, set the other part too )\n\nleft [ GloveR | moving Crate Triggered ] -> [ moving GloveR | moving Crate moving Triggered ]\nright [ GloveL | moving Crate Triggered ] -> [ moving GloveL | moving Crate moving Triggered ]\nup [ GloveD | moving Crate Triggered ] -> [ moving GloveD | moving Crate moving Triggered ]\ndown [ GloveU | moving Crate Triggered ] -> [ moving GloveU | moving Crate moving Triggered ]\n\nleft [ moving GloveR | Crate Triggered ] -> [ moving GloveR | moving Crate moving Triggered ]\nright [ moving GloveL | Crate Triggered ] -> [ moving GloveL | moving Crate moving Triggered ]\nup [ moving GloveD | Crate Triggered ] -> [ moving GloveD | moving Crate moving Triggered ]\ndown [ moving GloveU | Crate Triggered ] -> [ moving GloveU | moving Crate moving Triggered ]\n\n( Player movement - mark boxes which can't move )\n\n[ > Pushable | stationary Solid ] -> [ action Pushable | Solid ]\n\n[ action Crate | moving Glove ] -> [ Crate | Glove ]\n[ moving Crate | action Glove ] -> [ Crate | Glove ]\n\n[ action Pushable ] -> [ Pushable ]\n\n[ > Player | stationary Solid ] -> [ Player | Solid ] sfx1 ( can't move )\n\n[ stationary Crate moving Triggered ] -> [ Crate Triggered ]\n\n( Player movement - actually move )\n\n[ > Player Priority ] -> [ > Player > Priority ]\n[ > Crate Counter ] -> [ > Crate > Counter ]\n\n[ > Crate > Triggered | no Solid ] -> [ | action Crate Triggered ] sfx2\n+ [ > Crate | no Solid ] -> [ | action Crate ] sfx2\n+ [ > Glove | no Solid ] -> [ | action Glove ]\n\n( Cleanup and prevent player movement sometimes )\n\n[ > Glove ] -> cancel\n[ > Crate ] -> cancel\n\n[ TriggerCheck ] -> []\n[ MoveHere ] -> []\n\nleft [ stationary BoxL | action Pushable ] -> [ BoxL | Pushable PreventMove ]\nright [ stationary BoxR | action Pushable ] -> [ BoxR | Pushable PreventMove ]\nup [ stationary BoxU | action Pushable ] -> [ BoxU | Pushable PreventMove ]\ndown [ stationary BoxD | action Pushable ] -> [ BoxD | Pushable PreventMove ]\n\nleft [ action BoxL | stationary Pushable ] -> [ BoxL | Pushable PreventMove ]\nright [ action BoxR | stationary Pushable ] -> [ BoxR | Pushable PreventMove ]\nup [ action BoxU | stationary Pushable ] -> [ BoxU | Pushable PreventMove ]\ndown [ action BoxD | stationary Pushable ] -> [ BoxD | Pushable PreventMove ]\n\nlate left [ BoxL | Player ] -> [ BoxL | Player PreventMove ]\nlate right [ BoxR | Player ] -> [ BoxR | Player PreventMove ]\nlate up [ BoxU | Player ] -> [ BoxU | Player PreventMove ]\nlate down [ BoxD | Player ] -> [ BoxD | Player PreventMove ]\n\nlate [ PreventMove ] -> again\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\nleft [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallLUD | WallUD ]\nright [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallRUD | WallUD ]\nup [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallULR | WallLR ]\ndown [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallDLR | WallLR ]\n\nright [ WallD | Wall no WallCoverCorner no WallCoverUD ] -> [ WallD | Wall WallDL ]\nleft [ WallD | Wall no WallCoverCorner no WallCoverUD ] -> [ WallD | Wall WallDR ]\n \nright [ WallU | Wall no WallCoverCorner no WallCoverUD ] -> [ WallU | Wall WallUL ]\nleft [ WallU | Wall no WallCoverCorner no WallCoverUD ] -> [ WallU | Wall WallUR ]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll target on player\nAll player on target\n\n=======\nLEVELS\n=======\n\n##########\n#....d...#\n#..u.....#\n#.###.##.#\n#.....##.*\n###p######\n\n#####*##\n#.....##\n#.#.####\n#d..l..#\n#...#..#\n#r.....#\n#.!.u..#\n##p#####\n\n############\n#..r......##\n#..d..#uu.l#\np.....#...##\n#..u..#...##\n#r...l#....*\n############\n\n###########\n#r..#.....#\n*...#..u..#\n##?##..#..#\n#...#..#..#\n#.r....l..#\n#...#..#..#\n##p########\n\n##########p########\n######.........####\n######r#######.####\n#..dd...#####...l.#\n*........d......#.#\n#..........u....#.#\n#..uu...#####.....#\n###################\n\n############*##\n#.....#.#..#.##\n#.r.d......#.##\np.....#u#r....#\n#.r.u.###.lu..#\n#..........####\n###############\n\n###########\n#.....#####\n#.r.l..d.##\n#.........*\n#..u..u..##\n#.....#..l#\n###p#######\n\n####p######\n#......####\n#.u.#..####\n#.d.#..####\n#......####\n#.##...#..#\n#....l.#..*\n#......#r.#\n#....l.#d.#\n#.........#\n###########\n\n#############\n#....##d#.###\n#.r.........*\np.....a.u...#\n#.r..####.###\n#....####.###\n#############\n\n################\n#...####......##\n#.eu#......#..##\n#..........#..##\n#.......####.u.*\n##...#######..l#\n##p#############\n\n##############\n###..........#\n###....e.....#\n#.#..r...l..##\n#.#...###..u##\n*d#...###...a#\n#.....###...##\n#.#######...##\n##########p###\n\n##################\n#..............###\n#.e.......l.#..###\np.....#u#......###\n#.r.#########r.###\n#.b.#########r...#\n#...#########....#\n###############*##\n\n###############\n#............##\n#.r#......#...#\n#..#......!...#\n#..#......#u.##\n#..#...e..#r.##\n#..u......#..##\n#.........#...*\n#######p#######\n\n###########\n#####.....#\n###.......#\n*.#.e.r...#\n#.........#\n#!!$$.l...#\n#####.....#\n#######p###\n\n##############\n#########...##\n#########.u.##\n*.....##b...##\n#..u#........#\n#..d#.r.#..l.p\n#.......#....#\n##############\n\n#####*#########\n#####..####.d.#\n#...#.........#\n#.r.#.uu..#...#\n#.r.####..#.#.#\np.r.#.....#.#.#\n#.d.#.........#\n#...........a##\n#########uu####\n###############\n\n############\n#####...#..*\n#####.u.#..#\n#####.l.#d.#\np.#........#\n#.r.#.....l#\n#........###\n#####u######\n############\n\n#####p####\n#b.e....##\n#......a.#\n#..#..c..#\n*..#....##\n##########\n\n#################\n#.....###########\n#.e.e......a#####\np.....####.######\n#.b.b.d###.######\n#......d##.######\n####r...d#.######\n#####r.......#..*\n######r......#..#\n#######.........#\n#######....uu...#\n#################\n\n####################\n##...###.###########\n#..c.............###\n#..e........l.#..###\n#.....#u#u#.a....###\n#..b..#####...#r.###\n#..r..#####.c.#r...#\n#.............#....#\n########p########*##\n\n###*#########\n##..#..#..###\n##.lr..l..###\n##d##.##..###\n#..#........#\np..r..#.u...#\n#..#..#.d...#\n#..#........#\n#..r..u.#...#\n#..##########\n#############\n\n\n(alt levels)\n\n(###*######12#\n##..#..#..###\n##.lr..l..###\n##d##.##..###\n#..#........#\np..d..#.u...#\n#..#..#.d...#\n#..#........#\n#..r.u.###..#\n#..##########\n#############)\n\n\n(trashed levels)\n\n(############\n#####d######\n#.dd.......p\n#......r...#\n#..#.......#\n*..#...lu###\n####...#####\n####...#####\n############\n\n############\n####.......#\n####....#u##\n#.......#..*\n#.a#d#b.#d##\n#..........#\n###...######\n####p#######)\n\n\n(wip levels)\n\n(\n\n########\n####r..#\n####...*\n###d...#\n#....###\n#...u###\n#..#.###\n#......#\n#.r..l.p\n#......#\n########\n\n)\n\nmessage Thanks for playing :)\n\n( debug levels\n\n##############\n#.........##*#\n#....dr.r.####\n#...d.....####\n#........d...#\n#pr.r.r.u....#\n#........#####\n##############\n\n##############\n#...#.....##*#\n#....dr.r.####\n#...u.....####\n#........d...#\n#pr.r.r.u....#\n#........#####\n##############\n\n###########\n#.....#####\n#.p......##\n#........#*\n#.r......##\n#r.l#######\n###########\n\n############\n############\n####..######\n####..##d.##\n####..#...r#\n#.....#r..r#\n#...*.##ur##\n#.....###.##\n#########p##\n############\n\n\n###########\n#.....###*#\n#.p.r.d####\n#......d###\n####r...d##\n#####r....#\n######r...#\n#######...#\n###########\n\n)\n\n(11x7 screenshot)\n\n(###########\n####d###d##\n#r...r...##\n##.#.p.#.##\n##...l...l#\n##u###u####\n###########)\n\n", ["tick", "tick", "tick", "tick", 3, "tick", 2, "tick", 2, "tick", 3, "tick", 3, "tick", 0, "tick", "tick", 0, "tick", 3, "tick", 3, "tick", 0, "tick", "tick", "tick", "tick", "tick", 2, "tick", 3, "tick", 3, 0, "tick", "tick", "tick"], "background wall:0,0,0,background wall walld:1,background:2,background wall wallr wallu:3,background wall wallr:4,background wall wallur:5,0,0,0,0,\n1,2,background boxr:6,2,background wall wallu:7,0,0,0,0,background wall walldlr:8,background wall walld walllr:9,2,\n2,7,0,0,0,0,1,2,2,2,7,0,\nbackground wall walldr:10,4,4,background wall walld wallr:11,2,background wall walllr wallud:12,2,3,5,1,2,background boxu:13,\n2,2,2,2,13,7,1,2,2,2,2,2,\n2,background wall walll wallu:14,background wall wallul:15,1,2,background boxl:16,background player priority1:17,2,2,2,7,0,\n8,background wall walllr:18,18,9,2,2,2,7,0,1,2,2,\nbackground boxd:19,2,2,14,15,0,1,2,2,2,2,16,\n7,0,0,1,background target:20,14,background wall walll:21,21,21,15,0,0,\n", 16, "1627778966225.3145"] ], [ `gallery: vacuum`, - ["title Vacuum\nauthor Mark Richardson\nagain_interval 0.3\nflickscreen 9x9\nkey_repeat_interval 0.15\nnoaction\n(verbose_logging)\n\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nSpacemanD\nWhite Black\n.000.\n.010.\n00000\n.000.\n00.00\n\nSpacemanL\nWhite Black\n0.0..\n00000\n.0010\n00000\n0.0..\n\nSpacemanR\nWhite Black\n..0.0\n00000\n0100.\n00000\n..0.0\n\nSpacemanU\nWhite Black\n00.00\n.000.\n00000\n.010.\n.000.\n\nCorpse\nWhite Black\n.....\n.....\n000..\n01000\n00000\n\nDoorwaySpace\nTransparent\n\nDoorwayGrate\n#333 #222\n.....\n.001.\n.0...\n.1...\n.....\n\nGrate\n#333 #222\n.....\n.001.\n.0...\n.1...\n.....\n\nSpace\nBlack\n\nAir7\n#003870\n\nAir6\n#003060\n\nAir5\n#002850\n\nAir4\n#002040\n\nAir3\n#001830\n\nAir2\n#001020\n\nAir1\n#000810\n\nAir0\n#000000\n\nWall\nWhite\n\nCracks\nWhite #AAA #888\n02000\n01000\n20102\n00010\n00020\n\nWindow\n#8EF #0DE\n00000\n01111\n01111\n01111\n01111\n\nCrateS\n#AAA #888 #666 #444 #222\n10001\n02420\n04230\n02320\n10001\n\nCrateL\n#AAA #888 #666 #444 #222\n10000\n02444\n04222\n02333\n10000\n\nCrateR\n#AAA #888 #666 #444 #222\n00001\n44420\n22230\n33320\n00001\n\nCrateU\n#AAA #888 #666 #444 #222\n10001\n02420\n04230\n04230\n04230\n\nCrateD\n#AAA #888 #666 #444 #222\n04230\n04230\n04230\n02320\n10001\n\nCrateUL\n#AAA #888 #666 #444 #222\n10000\n02444\n04222\n04222\n04222\n\nCrateUR\n#AAA #888 #666 #444 #222\n00001\n44420\n22230\n22230\n22230\n\nCrateDL\n#AAA #888 #666 #444 #222\n04222\n04222\n04222\n02333\n10000\n\nCrateDR\n#AAA #888 #666 #444 #222\n22230\n22230\n22230\n33320\n00001\n\nDoorD\n#AAA #555\n..1..\n.101.\n.101.\n.101.\n.101.\n\nDoorL\n#AAA #555\n.....\n1111.\n00001\n1111.\n.....\n\nDoorR\n#AAA #555\n.....\n.1111\n10000\n.1111\n.....\n\nDoorU\n#AAA #555\n.101.\n.101.\n.101.\n.101.\n..1..\n\nDoorDR\n#AAA #555\n.....\n.11..\n.101.\n..101\n...10\n\nDoorDL\n#AAA #555\n.....\n..11.\n.101.\n101..\n01...\n\nDoorUR\n#AAA #555\n...10\n..101\n.101.\n.11..\n.....\n\nDoorUL\n#AAA #555\n01...\n101..\n.101.\n..11.\n.....\n\nAirlockO\n#AAA White\n.....\n....0\n....0\n....0\n.....\n\nAirlockC\n#AAA #A50\n.....\n00000\n01110\n00000\n.....\n\nAirlockG\n#AAA #0A0\n.....\n00000\n01110\n00000\n.....\n\nAirlockL\n#AAA #A00\n.....\n00000\n01110\n00000\n.....\n\nLog\nWhite Green Black\n00000\n12121\n21212\n12121\n00000\n\nLogAction\nWhite Black Green\n00000\n12121\n21212\n12121\n00000\n\nAirlockOn\nWhite #0A0\n00100\n01100\n01110\n00110\n00100\n\nAirlockOff\nWhite #A00\n00000\n00000\n01110\n00000\n00000\n\nClampOnL\nWhite #0A0\n01100\n00100\n01110\n00100\n01100\n\nClampOnR\nWhite #0A0\n00110\n00100\n01110\n00100\n00110\n\nClampOffL\nWhite #A00\n00100\n00100\n00110\n00100\n00100\n\nClampOffR\nWhite #A00\n00100\n00100\n01100\n00100\n00100\n\nNumber0\n#0A0\n.00..\n0..0.\n0..0.\n0..0.\n.00..\n\nNumber1\n#0A0\n..0..\n.00..\n..0..\n..0..\n.000.\n\nNumber2\n#0A0\n000..\n...0.\n.00..\n0....\n0000.\n\nNumber3\n#0A0\n000..\n...0.\n.00..\n...0.\n000..\n\nNumber4\n#0A0\n0....\n0..0.\n0000.\n...0.\n...0.\n\nNumber5\n#0A0\n0000.\n0....\n000..\n...0.\n000..\n\nNumber6\n#0A0\n.00..\n0....\n000..\n0..0.\n.00..\n\nNumber7\n#0A0\n0000.\n...0.\n..0..\n.0...\n0....\n\nNumber8\n#0A0\n.00..\n0..0.\n.00..\n0..0.\n.00..\n\nNumber9\n#0A0\n.00..\n0..0.\n.000.\n...0.\n.00..\n\nClampArm\n#AAA #888 #555\n.....\n00000\n11111\n22222\n.....\n\nClampL\n#AAA #888 #555 Yellow Black\n...33\n00034\n11133\n22234\n...33\n\nClampR\n#AAA #888 #555 Yellow Black\n33...\n43000\n33111\n43222\n33...\n\nPlayer\nTransparent\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nStory1\nTransparent\n\nStory2\nTransparent\n\nStory3\nTransparent\n\nStory4\nTransparent\n\nStory5\nTransparent\n\nStory6\nTransparent\n\nStory7\nTransparent\n\nStory8\nTransparent\n\nStory9\nTransparent\n\nDockU\nTransparent\n\nDockD\nTransparent\n\nGoal\nTransparent\n\nFlip\nTransparent\n\nBreech\nTransparent\n\nThrusterL [\n#AAA #999 #888 #777\n00123\n01223\n01223\n01223\n00123\n\nThrusterR ]\n#777 #666 #555 #444\n01233\n01123\n01123\n01123\n01233\n\nWingUR `\n#FFF #EEE #DDD #BBB\n32100\n.2100\n..100\n...00\n....0\n\nWingUL '\n#FFF #EEE #DDD #BBB\n00123\n0012.\n001..\n00...\n0....\n\nWingDR /\n#FFF #EEE #DDD #BBB\n....0\n...00\n..100\n.2100\n32100\n\nWingDL \\\n#FFF #EEE #DDD #BBB\n0....\n00...\n001..\n0012.\n00123\n\nShuttleL {\n#FFF #EEE #DDD #BBB\n32100\n32100\n32100\n32100\n32100\n\nShuttleR }\n#FFF #EEE #DDD #BBB\n00123\n00123\n00123\n00123\n00123\n\nWall1 α\nWhite #AAA\n00000\n00001\n11111\n01001\n00000\n\nWall2 β\nWhite #AAA\n00000\n01001\n10101\n10101\n10011\n\nWall3 γ\nWhite #AAA\n00000\n01010\n10101\n10101\n10001\n\nWall4 δ\nWhite #AAA\n00000\n01111\n00100\n00100\n11100\n\nWall5 ε\nWhite #AAA\n00000\n10010\n10101\n10101\n11101\n\nPlanetUL ┌\n#F60 #A40 #520\n..221\n.2110\n21110\n21100\n21100\n\nPlanetUR ┐\n#F60 #A40 #520\n112..\n0011.\n00012\n00001\n00001\n\nPlanetDL └\n#F60 #A40 #520\n21100\n21100\n21110\n.2110\n..221\n\nPlanetDR ┘\n#F60 #A40 #520\n00001\n00001\n00012\n0011.\n112..\n\nStar\n#FFA #FF5 #AA0 #550\n...3.\n3212.\n.101.\n.2123\n.3...\n\n\n=======\nLEGEND\n=======\n\n. = Air0\n░ = Space\n, = Air0 and DoorwaySpace\n* = Air0 and Grate\n\" = Air0 and Flip\n¤ = Air0 and Star\n█ = Wall\n▒ = Window\n▓ = Cracks\n! = Wall and Number9\n$ = Air0 and Number9\n~ = Air7\n↓ = DoorD and DoorwayGrate and Air0\n← = DoorL and DoorwayGrate and Air0\n→ = DoorR and DoorwayGrate and Air0\n↑ = DoorU and DoorwayGrate and Air0\n□ = Air0 and CrateS\n╞ = Air0 and CrateL\n╡ = Air0 and CrateR\n╥ = Air0 and CrateU\n╨ = Air0 and CrateD\n╔ = Air0 and CrateUL\n╗ = Air0 and CrateUR\n╚ = Air0 and CrateDL\n╝ = Air0 and CrateDR\na = Player and SpacemanD and Air7\nb = Story1 and Log\nc = DockU and AirlockG and Air7\ne = DockU and AirlockC and Air0 and DoorwayGrate\nf = DockU and AirlockOn\ng = DockU and ClampOnL\nh = DockU and ClampL and Air0\ni = DockU and ClampR and Air0\nj = DockU and ClampArm and Air0\nm = Player and SpacemanD and Air0\nn = Air0 and DoorwayGrate and Breech\no = DockD and ClampArm and Air0\np = DockD and ClampL and Air0\nq = DockD and ClampR and Air0\ns = DockD and AirlockOff\nt = DockD and ClampOnR\nw = DockD and AirlockL and Air0 and DoorwayGrate\nx = DockD and AirlockL and Air7\ny = Story9 and Log\nz = Goal and Air7\n2 = Story2 and Air0\n3 = Story3 and Air0\n4 = Story4 and Air0\n5 = Story5 and Air0\n6 = Story6 and Air0\n7 = Story7 and Air0\n8 = Story8 and Air0\n\nAirT = Air1 or Air2 or Air3 or Air4 or Air5 or Air6\nAirlockA = AirlockC or AirlockG or AirlockO or AirlockL\nAirlockU = AirlockC or AirlockG or AirlockO\nAirlockControl = AirlockOn or AirlockOff\nClamp = ClampL or ClampR\nClampOn = ClampOnL or ClampOnR\nClampOff = ClampOffL or ClampOffR\nClampControl = ClampOn or ClampOff\nCrate = CrateS or CrateD or CrateL or CrateR or CrateU or CrateDL or CrateDR or CrateUL or CrateUR\nCrateDX = CrateD or CrateDL or CrateDR\nCrateLX = CrateL or CrateDL or CrateUL\nCrateRX = CrateR or CrateDR or CrateUR\nCrateUX = CrateU or CrateUL or CrateUR\nDock = DockU or DockD\nDoor = DoorD or DoorL or DoorR or DoorU or DoorDL or DoorDR or DoorUL or DoorUR\nDoorH = DoorL or DoorR\nDoorV = DoorD or DoorU\nDoorS = DoorDL or DoorDR or DoorUL or DoorUR\nDoorway = DoorwayGrate or DoorwaySpace\nNumber = Number0 or Number1 or Number2 or Number3 or Number4 or Number5 or Number6 or Number7 or Number8 or Number9\nPlanet = PlanetDL or PlanetDR or PlanetUL or PlanetUR\nShuttle = ThrusterL or ThrusterR or WingDL or WingDR or WingUL or WingUR or ShuttleL or ShuttleR\nSpaceman = SpacemanD or SpacemanL or SpacemanR or SpacemanU or Corpse\nStory = Story1 or Story2 or Story3 or Story4 or Story5 or Story6 or Story7 or Story8 or Story9\nImmovable = Wall or Window or Cracks or Space or AirlockL or ClampArm or Shuttle or Wall1 or Wall2 or Wall3 or Wall4 or Wall5\nObstruction = Immovable or Crate or Door or AirlockC or AirlockG or Log or LogAction or AirlockControl or ClampControl\nPushObstruction = Obstruction or Grate or DoorwayGrate\n\n\n=======\nSOUNDS\n=======\n\nsfx0 92775908 (Depressrisaion)\nsfx1 28333308 (Repressrisaion)\nsfx3 5427908 (Power down airlock)\nsfx4 68678908 (Power up airlock)\nLogAction Create 35901509 (Checkpoint)\nClampL Move 95348908 (Engage/release clamp)\nAirlockO Create 12359908 (Open airlock)\nAirlockO Destroy 12359908 (Close airlock)\nDoor Destroy 12359908 (Open door)\nCrate Move 58179108 (Crate pushed)\nEndLevel 63640708 (Start of win)\nEndGame 87777508 (Finished win!)\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nAir0, AirT, Air7\nDoorwaySpace, DoorwayGrate, Grate, Goal, Flip, Planet, Star\nPlayer, Obstruction\nDock\nSpaceman\nAirlockO, Clamp, Number, Story, Breech\n\n\n======\nRULES\n======\n\n[> Player Corpse]->cancel\n[> Player|Immovable]->cancel\n\n(Crates)\n[> Player|Crate]->[> Player|> Crate]\nup [moving CrateDX|stationary CrateUX]->[moving CrateDX|moving CrateUX]\ndown [moving CrateUX|stationary CrateDX]->[moving CrateUX|moving CrateDX]\nleft [moving CrateRX|stationary CrateLX]->[moving CrateRX|moving CrateLX]\nright[moving CrateLX|stationary CrateRX]->[moving CrateLX|moving CrateRX]\n[> Crate|stationary PushObstruction]->cancel\n\n(Doors)\nvertical [> Player|DoorH]->[> Player|> DoorH]\nhorizontal[> Player|DoorV]->[> Player|> DoorV]\n[> Player|DoorS]->[> Player|> DoorS]\n[> Door|Door]->[|> Door]\n[horizontal DoorH]->cancel\n[vertical DoorV]->cancel\n[up DoorDL]->[left DoorDL]\n[right DoorDL]->[down DoorDL]\n[up DoorDR]->[right DoorDR]\n[left DoorDR]->[down DoorDR]\n[down DoorUL]->[left DoorUL]\n[right DoorUL]->[up DoorUL]\n[down DoorUR]->[right DoorUR]\n[left DoorUR]->[up DoorUR]\nup [> DoorL|no Obstruction]->[|DoorDL]\ndown [> DoorL|no Obstruction]->[|DoorUL]\nup [> DoorR|no Obstruction]->[|DoorDR]\ndown [> DoorR|no Obstruction]->[|DoorUR]\nleft [> DoorU|no Obstruction]->[|DoorUR]\nright[> DoorU|no Obstruction]->[|DoorUL]\nleft [> DoorD|no Obstruction]->[|DoorDR]\nright[> DoorD|no Obstruction]->[|DoorDL]\ndown [> DoorDL|no Obstruction]->[|DoorL]\nleft [> DoorDL|no Obstruction]->[|DoorD]\ndown [> DoorDR|no Obstruction]->[|DoorR]\nright[> DoorDR|no Obstruction]->[|DoorD]\nup [> DoorUL|no Obstruction]->[|DoorL]\nleft [> DoorUL|no Obstruction]->[|DoorU]\nup [> DoorUR|no Obstruction]->[|DoorR]\nright[> DoorUR|no Obstruction]->[|DoorU]\n[Door DoorwayGrate|no Door DoorwayGrate]->[Door DoorwayGrate|Door DoorwayGrate]\n[> Door|Obstruction]->cancel\n\n(Airlock)\n[> Player|AirlockG]->[Player|AirlockO]\n[AirlockO|AirlockU]->[AirlockO|AirlockO]\n\n(Repressurisation)\n[Air7|Spaceman Air6|]->[Air7|Spaceman Air7|Air7]\n[Air7|Spaceman Air5|]->[Air7|Spaceman Air6|Air6]again\n[Air7|Spaceman Air4|]->[Air7|Spaceman Air5|Air5]again\n[Air7|Spaceman Air3|]->[Air7|Spaceman Air4|Air4]again\n[Air7|Spaceman Air2|]->[Air7|Spaceman Air3|Air3]again\n[Air7|Spaceman Air1|]->[Air7|Spaceman Air2|Air2]again\n[AirlockC Air7|< Player||AirlockU Air0]->[AirlockC Air7|Player Air1|Air1|AirlockC Air0]sfx1 again\n\n(Oxygen)\nright[Number0|Number0][Player Spaceman]->[Number0|Number0][Player Corpse]\nright[Number|Number]->[Number|down Number]\n[Corpse][down Number]->[Corpse][Number]\n[stationary Player AirT][down Number]->[stationary Player AirT][Number]\n[> Player Doorway|Doorway][down Number]->[> Player Doorway|Doorway][Number]\nright[Number|down Number0]->[down Number|Number9]\nright[no Number|down Number0|Number9]->[|Number0|Number0]\n[down Number1]->[Number0]\n[down Number2]->[Number1]\n[down Number3]->[Number2]\n[down Number4]->[Number3]\n[down Number5]->[Number4]\n[down Number6]->[Number5]\n[down Number7]->[Number6]\n[down Number8]->[Number7]\n[down Number9]->[Number8]\n[Spaceman Air7][Number]->[SpacemanD Air7][Number9]\n\n(Depressurisation)\n[Air0|Spaceman Air1|]->[Air0|Spaceman Air0|Air0]\n[Air0|Spaceman Air2|]->[Air0|Spaceman Air1|Air1]again\n[Air0|Spaceman Air3|]->[Air0|Spaceman Air2|Air2]again\n[Air0|Spaceman Air4|]->[Air0|Spaceman Air3|Air3]again\n[Air0|Spaceman Air5|]->[Air0|Spaceman Air4|Air4]again\n[Air0|Spaceman Air6|]->[Air0|Spaceman Air5|Air5]again\n[AirlockC Air0|< Player||AirlockU Air7]->[AirlockC Air0|Player Air6|Air6|AirlockC Air7]sfx0 again\n\n(Airlock link)\n[Air7|AirlockC Air7|Air7]->[Air7|AirlockG Air7|Air7]\n[Air0|AirlockC Air0|Air0]->[Air0|AirlockG Air0|Air0]\n[AirlockC|AirlockO]->[AirlockC|AirlockC]\n\n(Log)\n[LogAction]->[Log]checkpoint\n[> Player|Log no Story]->[> Player|LogAction]again\n[Player Air6|Log Story1]->[Player Air6|Log]again checkpoint message Press [R] to rewind to your last log entry. If you really stuff up, start a new game.\n[> Player Air7|Log Story1]->[Player Air5|Log Story1]again message I record a log of my experiences. It may be useful if I need to retrace my steps.\n\n(Story)\nlate[Player|Story2]->[Player|]message The station is devoid of air. The micro-meteors must have hit here too.\nlate[Player|Story3]->[Player|]message I'll have to find the other shuttle quickly.\nlate[Player|Story4]->[Player|]message These are typical zero-G crates that clamp to the floor when not being moved.\nlate[Player|Story5]->[Player|]message Let's see what useful stuff they're full of...\nlate[Player|Story6]->[Player|]message They're full of vacuum cleaners!\nlate[Player|Story7]->[Player|]message This looks promising!\nlate[Player|Story8]->[Player|]message They just don't make space stations like they used to.\nlate[Player|Story9]->[Player|]message Now I just need to release the docking clamps.\n\n(Power up/down airlock)\n[> Player|AirlockOff][AirlockOn]->[Player|AirlockOff][AirlockOn]message ERROR: Only one airlock may be powered at a time.\n[> Player|AirlockControl DockU][AirlockA DockU]->[> Player|AirlockControl DockU][action AirlockA DockU]\n[> Player|AirlockControl DockD][AirlockA DockD]->[> Player|AirlockControl DockD][action AirlockA DockD]\n[action AirlockU]->[AirlockL]\n[action AirlockL]->[AirlockC]\n[Air0|Air0 AirlockC|Air0]->[Air0|Air0 AirlockG|Air0]\n[> Player|AirlockOn]->[Player|AirlockOff]sfx3\n[> Player|AirlockOff]->[Player|AirlockOn]sfx4\n\n(Clamp/release new shuttle)\n[> Player|ClampOn DockU]->[Player|ClampOn DockU]message No, I'm not releasing the docking clamp on my shuttle. That's my only life line right now.\n[> Player|ClampOn DockD][ClampL DockD][ClampR DockD]->[Player|action ClampOn DockD][left ClampL DockD][right ClampR DockD]\n[> Player|ClampOff DockD][ClampL DockD][ClampR DockD]->[Player|action ClampOff DockD][right ClampL DockD][left ClampR DockD]\n[action ClampOnL ]->[ClampOffL]\n[action ClampOnR ]->[ClampOffR]\n[action ClampOffL]->[ClampOnL ]\n[action ClampOffR]->[ClampOnR ]\n\n(Space walking)\nright[> Player SpacemanR Breech|Breech]->[Breech|Player SpacemanD Breech]\nright[Breech|< Player SpacemanD Breech]->[Player SpacemanR Breech|Breech]\ndown [> Player SpacemanD Breech|Breech]->[Breech|Player SpacemanU Breech]\ndown [Breech|< Player SpacemanU Breech]->[Player SpacemanD Breech|Breech]\nleft [> Player SpacemanD|Flip]->[|Flip down Player down SpacemanR]\nright[> Player SpacemanD|Flip]->[|Flip down Player down SpacemanL]\ndown [> Player SpacemanL|Flip]->[|Flip left Player left SpacemanU]\nup [> Player SpacemanL|Flip]->[|Flip left Player left SpacemanD]\ndown [> Player SpacemanR|Flip]->[|Flip right Player right SpacemanU]\nup [> Player SpacemanR|Flip]->[|Flip right Player right SpacemanD]\nleft [> Player SpacemanU|Flip]->[|Flip up Player up SpacemanR]\nright[> Player SpacemanU|Flip]->[|Flip up Player up SpacemanL]\n\n(Move spaceman)\nlate[Spaceman][no Spaceman Player]->[][Spaceman Player]\n\n\n==============\nWINCONDITIONS\n==============\n\nall Goal on Player\nno ClampOn on DockD\n\n\n=======\nLEVELS\n=======\n\nmessage That micro-meteor storm came out of nowhere!\nmessage My shuttle is badly damaged. My engines are stuttering. My comms are out. I need help fast.\nmessage There's a space station with another shuttle docked there. I have to dock there.\nmessage The station's docking clamps automatically guide me in and affix me to the airlock.\n\n...............................................................\n...............................................................\n...............................................................\n...............................................................\n...............................................................\n.¤........¤........¤........¤........¤........¤........¤.......\n......░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░......\n......░\",,.......,,.......,,\".....\".,,......,,.......,,\"░......\n...┌┐.░$!██▒███▒!!██▒███▒!!█,[]█[]$!██▒███▒!!██▒███▒!!█,░....$$\n......░,█α█▒███▒██β█▒███▒██γ,[]█[],█δ█▒███▒██ε█▒███▒███,░......\n......░.█α╞╡...*.█α╥......█α.`{b}'.█α...□...█α.....□.██.░......\n......░.▒▒.╞╡.╞╡.██╨...╔╗.██.░{a}░.██.╞╡....██□..□.□.▒▒.░......\n......░.██...╥...██╔╗╥.╚╝.██jh{~}ij██.....□*██...□...██.░......\n......░.██.□.╨╞╡*↑↑╚╝╨..╥.██▒▒{~}▒▒██□╞╡╞╡╞╡↑↑5□.□□..██.░......\n.¤....░.██.╥╔╗.□.██.╞╡□.╨*██.▒`c'▒.██.□...╥.██□╞╡.□.□██¤░......\n......░.▒▒*╨╚╝.╞╡██......□↓↓.f/~\\g.↓↓.╥...╨.██.□..□..▒▒.░......\n...┌┐.░.██......□██╞╡.....██.▒{~}▒.██.╨.4...██.□□....██.░......\n...└┘.░$!████→██!!████←██!!████e██!!████←██!!████→██!!█,░....$$\n......░,█α███→████β███←████γ███e████δ███←████ε███→█████,░......\n......░.█β□.□...□█β....□..█β..*2*..█β.......█β.╥.6...██.░......\n......░.▒▒.□.□.□.██..╥.╥..██..*.*..██□□□□□□□██*╨..╔╗*▒▒.░......\n......░.██□.□.□.□██╞╡╨.╨╞╡██.╥..□..██.......██..╞╡╚╝.██.░......\n......░.██.□.□.□.↓↓..□.□..↓↓.╨╔╗...↓↓3╞╡.╞╡.↓↓.╞╡╥...██.░......\n.¤....░.██□.□.□.□██╞╡╥.╥╞╡██**╚╝.**██.╞╡.╞╡.██╞╡.╨...██¤░......\n...┌┐.░.▒▒.□.□.□.██..╨.╨..██..*╞╡..██□□□□□□.██.╞╡.□□□▒▒.░......\n...└┘.░.██□.□.□.□██....□..██..*....██.......██.......██.░......\n......░$!████→██!!████←██!!████→██!!████←██!!████→██!!█,░....$$\n......░,█α███→████β███←████γ███→████δ███←████ε███→█████,░......\n......░.█γ.....╞╡█γ*.*.*.*█γ..╥..╞╡█γ╥.□....█γ.......██.░......\n......░.▒▒╞╡.....██.╥.╞╡╥□██.*╨╔╗.□██╨╥.....██.╔╗.╔╗.▒▒.░......\n......░.██.╞╡╞╡╔╗██*╨*.*╨*██..*╚╝..██.╨╥...□██.╚╝.╚╝.██.░......\n......░.██.....╚╝↑↑...╥╞╡.↑↑...*╞╡.↑↑..╨╥...↑↑.╔╗.╔╗.██.░......\n.¤.┌┐.░.██.╞╡╔╗..██*□*╨*╥*██....*..██╔╗.╨╥..██.╚╝.╚╝.██¤░......\n...└┘.░.▒▒...╚╝..██..╞╡.╨.██.....*.██╚╝..╨╔╗██.╔╗.╔╗.▒▒.░......\n......░.██╞╡....□██*□*.*.*██.......██.....╚╝██.╚╝.╚╝.██.░......\n......░$!████→██!!████←██!!████w██!!████←██!!████→██!!█,░....$$\n......░,█α███→████β███←████γ███w████δ███←████ε███→█████,░......\n......░.█δ□..8..□█δ╥..╞╡..█δ.▒{.}▒.█δ.╔╗.╔╗.█δ..╥....██.░......\n......░.▒▒╔╗.*...██╨╞╡....↑↑.t`.'s7↑↑.╚╝.╚╝.██.╥╨╞╡╥.▒▒.░......\n......░.██╚╝╞╡□╔╗██╥......██.▒/x\\▒.██.╥.╥...██.╨...╨.██.░......\n...┌┐.░.██...*.╚╝↓↓╨......██▒▒{~}▒▒██.╨.╨╔╗.↓↓.╞╡.╥╞╡██.░......\n.¤.└┘.░.▓▓..╞╡□..██.......██op{~}qo██.╥..╚╝.██.□..╨..██¤░......\n......░.nn...*...██.......██.░{z}░.██.╨...╔╗██...╥...▒▒.░......\n......░.▓▓□.╞╡..□██.......██./{y}\\.██...□.╚╝██..□╨...██.░......\n......░$!██▒███▒!!█▓n▓██▒!!█,[]█[]$!██▒███▒!!██▒███▒!!█,░....$$\n......░,███▒███▒███▓n▓██▒███,[]█[],███▒███▒████▒███▒███,░......\n......░\",,.......,,.......,,\".....\",,.......,,.......,,\"░......\n......░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░......\n...┌┐......┌┐......┌┐......┌┐.......┐..........................\n...└┘......└┘......└┘......└┘.......┘..........................\n.¤........¤........¤........¤........¤........¤........¤.......\n...............................................................\n...............................................................\n.......$$.......$$.......$$.......$$.......$$.......$$.......$$\n\nmessage Life support: CHECK\nmessage Clamp released: CHECK\nmessage Airlock disengaged: CHECK\nmessage Engine power: CHECK\nmessage Still alive: ...\nmessage CHECK!\n\n",[2,2,2,2,2,2,2,2,2,2,2,2,2,3,0,3,2,2,3,2,3,3,3,3],"air0 background: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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,air0 background star:1,0,0,0,\n0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,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,0,background planetul:2,0,0,0,0,0,0,0,2,background planetdl:3,0,0,0,0,0,0,2,3,0,\n0,0,0,0,0,2,3,0,0,0,0,0,0,2,3,0,0,0,0,0,0,2,3,0,0,0,0,0,0,0,0,0,0,0,0,background planetur:4,0,0,0,0,0,0,0,4,background planetdr:5,0,0,0,0,0,0,4,5,0,0,0,0,0,0,4,5,0,0,\n0,0,0,0,4,5,0,0,0,0,0,0,4,5,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,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background space:6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,\n0,0,0,0,0,0,6,air0 background flip:7,air0 background number8:8,air0 background doorwayspace:9,0,0,0,0,0,0,0,8,9,0,0,0,0,0,0,0,8,9,0,0,0,0,0,0,0,8,9,0,0,0,0,0,0,0,8,9,7,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,background number5 wall:10,\nbackground wall:11,11,background window:12,11,11,11,12,11,10,11,11,12,11,11,11,12,11,10,11,11,12,11,11,11,12,11,10,11,11,12,11,11,background cracks:13,air0 background breech doorwaygrate:14,13,10,11,9,6,0,0,0,0,0,air0 background number5:15,0,0,0,0,0,0,6,9,11,background wall1:16,16,12,11,11,11,12,11,11,\n16,background wall2:17,12,11,11,11,12,11,11,16,background wall3:18,12,11,11,11,12,11,11,16,background wall4:19,12,11,11,13,14,13,11,11,9,6,0,0,0,0,0,0,0,0,0,0,0,1,6,0,11,11,air0 background cratel:20,0,0,0,0,air0 background grate:21,0,11,11,air0 background crates:22,0,22,0,22,0,22,11,\n11,0,20,0,0,0,0,20,11,11,22,air0 background crateul:23,air0 background cratedl:24,0,0,0,22,11,11,0,6,0,0,1,0,0,0,0,0,0,0,0,0,6,0,12,12,air0 background crater:25,20,0,22,air0 background crateu:26,air0 background crated:27,0,11,11,0,22,0,22,0,22,0,11,11,0,25,20,0,20,0,25,11,\n11,0,air0 background crateur:28,air0 background cratedr:29,0,0,0,0,12,12,0,6,2,3,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,25,0,0,23,24,0,11,11,22,0,22,0,22,0,22,11,11,0,0,25,0,25,0,0,11,11,0,0,20,0,20,0,20,11,\n11,0,6,4,5,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,0,26,27,28,29,0,air0 background doorr doorwaygrate:30,30,0,22,0,22,0,22,0,30,30,0,0,20,0,23,24,0,30,30,air0 background story8:31,21,25,21,25,21,25,11,11,0,6,0,0,0,0,0,0,\n0,0,0,0,0,0,6,0,11,11,0,20,0,20,0,0,0,11,11,0,0,22,0,22,0,22,11,11,0,0,25,0,28,29,0,11,11,0,0,22,0,22,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,12,\n12,21,25,0,25,22,20,0,11,11,0,22,0,22,0,22,0,11,11,20,0,23,24,0,0,0,11,11,0,0,23,24,0,0,0,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,background number8 wall:32,11,0,0,0,21,0,25,22,32,\n11,22,0,22,0,22,0,22,32,11,25,0,28,29,0,0,22,32,11,22,0,28,29,0,0,22,32,11,0,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,10,11,11,11,11,air0 background dooru doorwaygrate:33,11,11,11,10,11,11,11,11,air0 background doord doorwaygrate:34,11,11,11,10,\n11,11,11,11,33,11,11,11,10,11,11,11,11,34,11,11,11,10,11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,17,16,11,11,33,11,11,11,11,17,17,11,11,34,11,11,11,11,17,18,11,11,33,11,11,11,11,\n17,19,11,11,34,11,11,11,11,11,9,6,0,0,0,0,0,0,0,0,0,0,0,1,6,0,11,11,26,27,23,24,0,0,20,11,11,0,0,20,0,20,0,0,11,11,21,0,21,0,21,0,21,11,11,26,27,26,27,0,0,0,13,\n13,0,6,2,3,1,0,0,0,0,0,0,0,0,0,6,0,12,12,0,0,28,29,20,0,25,11,11,0,0,25,0,25,0,0,11,11,0,26,27,0,22,0,22,11,11,0,20,0,0,0,0,0,14,14,0,6,4,5,0,0,0,0,\n0,0,0,0,0,0,6,0,11,11,0,0,26,27,25,0,0,11,11,0,26,27,22,26,27,0,11,11,21,0,21,0,21,20,21,11,11,0,25,0,0,0,0,0,13,13,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,\n11,0,0,0,0,22,0,0,air0 background doorl doorwaygrate:35,35,0,0,0,0,0,0,0,35,35,0,20,0,26,27,25,0,35,35,20,0,0,0,0,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,23,24,0,0,0,0,11,\n11,22,26,27,22,26,27,22,11,11,21,25,21,20,21,0,21,11,11,25,0,0,0,0,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,12,12,0,28,29,26,27,0,0,11,11,0,0,20,0,20,0,0,11,\n11,0,26,27,25,26,27,0,11,11,0,0,0,0,0,0,0,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,32,11,0,0,0,0,21,22,0,32,11,0,0,25,0,25,0,0,32,11,21,22,21,0,21,0,21,32,\n11,0,0,0,0,0,0,0,32,11,0,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,10,11,11,11,11,11,11,34,11,10,11,11,11,11,34,11,11,11,10,11,11,11,11,33,11,11,11,10,11,11,33,11,11,11,11,11,10,\n11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,18,16,11,11,11,11,34,11,11,18,17,11,11,34,11,11,11,11,18,18,11,11,33,11,11,11,11,18,19,33,11,11,11,11,11,11,11,9,6,2,3,0,0,0,0,\n0,0,0,0,0,1,6,7,9,9,0,0,air0 background clamparm docku:36,12,0,0,0,11,11,0,0,0,0,21,0,0,11,11,0,0,0,0,0,0,0,11,11,0,0,0,12,air0 background clamparm dockd:37,0,0,9,9,7,6,4,5,1,0,0,0,0,0,0,0,0,0,6,0,background thrusterl:38,\n38,background wingur:39,6,air0 background clampl docku:40,12,12,airlockon background docku:41,12,11,11,0,0,26,27,21,0,0,11,11,0,21,0,0,0,0,0,11,11,12,background clamponr dockd:42,12,12,air0 background clampl dockd:43,6,background wingdr:44,38,38,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,background thrusterr:45,45,background shuttlel:46,46,46,46,39,44,46,11,\n11,21,21,0,23,24,21,21,11,11,26,27,21,0,0,0,0,11,11,46,39,44,46,46,46,46,45,45,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,background log story1:47,air7 background:48,48,48,air7 airlockc background docku:49,0,0,air0 airlocko background docku doorwaygrate:50,50,0,0,0,28,29,20,0,30,\n30,0,23,24,21,0,0,0,air0 airlockl background dockd doorwaygrate:51,51,0,0,air7 airlockl background dockd:52,48,48,air7 background goal:53,background log story9:54,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,38,38,background shuttler:55,55,55,55,background wingul:56,background wingdl:57,55,11,11,21,21,0,0,0,25,0,11,11,0,28,29,20,21,0,0,11,\n11,55,56,57,55,55,55,55,38,38,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,45,45,56,6,air0 background clampr docku:58,12,12,background clamponl docku:59,12,11,11,0,0,0,22,21,0,0,11,11,20,0,0,25,0,21,0,11,11,12,airlockoff background dockd:60,12,12,air0 background clampr dockd:61,6,57,45,\n45,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,7,8,9,0,0,36,12,0,0,0,32,11,0,0,0,0,21,0,0,32,11,25,22,0,0,0,0,0,32,11,0,air0 background story7:62,0,12,37,0,0,8,9,7,6,0,0,0,0,0,8,\n0,0,0,0,0,0,6,0,10,11,11,11,11,11,11,34,11,10,11,11,11,11,air0 background doorwaygrate:63,11,11,11,10,11,11,11,11,33,11,11,11,10,11,11,33,11,11,11,11,11,10,11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,\n19,16,11,11,11,11,34,11,11,19,17,11,11,63,11,11,11,11,19,18,11,11,33,11,11,11,11,19,19,33,11,11,11,11,11,11,11,9,6,4,5,0,0,0,0,0,0,0,0,0,1,6,9,11,11,0,0,0,22,0,0,0,11,\n11,0,22,0,0,air0 background doorl:64,22,0,11,11,26,27,0,0,23,24,0,11,11,0,0,0,0,0,0,0,11,11,0,6,0,0,1,0,0,0,0,0,0,0,0,0,6,0,12,12,0,20,0,20,22,26,27,11,11,0,22,0,air0 background player spacemand:65,20,22,0,11,\n11,0,26,27,0,28,29,0,11,11,23,24,26,27,26,27,0,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,25,0,25,0,0,0,11,11,0,22,0,20,25,22,0,11,11,22,0,26,27,0,0,0,11,\n11,28,29,0,0,0,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,22,0,0,20,0,0,air0 background story4:66,35,35,0,22,0,25,0,22,0,35,35,0,0,0,26,27,0,0,35,35,0,0,26,27,0,0,22,11,\n11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,0,0,25,0,0,0,11,11,0,22,0,20,20,22,0,11,11,0,0,0,0,26,27,0,11,11,23,24,0,23,24,0,0,11,11,0,6,0,0,0,0,0,0,\n0,0,0,0,0,0,6,0,12,12,0,0,22,20,26,27,0,11,11,0,22,0,25,25,22,0,11,11,0,0,0,0,0,23,24,11,11,28,29,0,28,29,23,24,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,32,\n11,0,0,21,25,0,0,0,32,11,0,22,0,0,0,0,0,32,11,0,0,22,0,0,28,29,32,11,0,0,0,0,0,28,29,32,11,0,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,10,11,11,11,11,33,11,11,11,10,\n11,11,11,11,34,11,11,11,10,11,11,11,11,33,11,11,11,10,11,11,11,11,34,11,11,11,10,11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,background wall5:67,16,11,11,33,11,11,11,11,67,17,11,11,34,11,11,11,11,\n67,18,11,11,33,11,11,11,11,67,19,11,11,34,11,11,11,11,11,9,6,0,0,0,0,0,0,0,0,0,0,0,1,6,0,11,11,0,22,0,air0 background story5:68,22,0,0,11,11,0,21,0,0,20,0,0,11,11,0,0,0,0,0,0,0,11,\n11,0,0,0,0,0,0,0,11,11,0,6,0,0,1,0,0,0,0,0,0,0,0,0,6,0,12,12,0,0,0,22,20,22,22,11,11,26,27,0,20,25,20,0,11,11,0,23,24,23,24,23,24,11,11,0,26,27,20,22,0,0,12,\n12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,0,0,0,25,0,22,11,11,0,0,20,25,0,25,0,11,11,0,28,29,28,29,28,29,11,11,26,27,0,25,0,0,22,11,11,0,6,0,0,0,0,0,0,\n0,0,0,0,0,0,6,0,11,11,0,22,22,22,0,0,0,30,30,air0 background story6:69,0,25,26,27,0,0,30,30,0,0,0,0,0,0,0,30,30,0,20,0,0,0,26,27,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,\n11,0,0,0,22,22,22,0,11,11,0,23,24,0,0,22,0,11,11,0,23,24,23,24,23,24,11,11,0,25,0,26,27,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,12,12,22,22,0,0,0,0,0,11,\n11,0,28,29,0,0,22,0,11,11,0,28,29,28,29,28,29,11,11,0,26,27,20,0,0,0,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,32,11,0,0,0,0,22,0,0,32,11,0,21,0,0,0,22,0,32,\n11,0,0,0,0,0,0,0,32,11,0,0,0,25,0,0,0,32,11,0,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,10,11,11,12,11,11,11,12,11,10,11,11,12,11,11,11,12,11,10,11,11,12,11,11,11,12,11,10,\n11,11,12,11,11,11,12,11,10,11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,11,11,12,11,11,11,12,11,11,11,11,12,11,11,11,12,11,11,11,11,12,11,11,11,12,11,11,11,11,12,11,11,11,12,11,11,\n11,9,6,0,0,0,0,0,0,0,0,0,0,0,1,6,7,9,9,0,0,0,0,1,0,0,9,9,0,0,0,0,1,0,0,9,9,0,0,0,0,1,0,0,9,9,0,0,0,0,1,0,0,9,9,7,6,0,0,1,0,0,0,\n0,0,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,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,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,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,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,8,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,8,\n0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,\n",4,"1627779001776.2905"] + ["title Vacuum\nauthor Mark Richardson\nagain_interval 0.3\nflickscreen 9x9\nkey_repeat_interval 0.15\nnoaction\n(verbose_logging)\n\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nSpacemanD\nWhite Black\n.000.\n.010.\n00000\n.000.\n00.00\n\nSpacemanL\nWhite Black\n0.0..\n00000\n.0010\n00000\n0.0..\n\nSpacemanR\nWhite Black\n..0.0\n00000\n0100.\n00000\n..0.0\n\nSpacemanU\nWhite Black\n00.00\n.000.\n00000\n.010.\n.000.\n\nCorpse\nWhite Black\n.....\n.....\n000..\n01000\n00000\n\nDoorwaySpace\nTransparent\n\nDoorwayGrate\n#333 #222\n.....\n.001.\n.0...\n.1...\n.....\n\nGrate\n#333 #222\n.....\n.001.\n.0...\n.1...\n.....\n\nSpace\nBlack\n\nAir7\n#003870\n\nAir6\n#003060\n\nAir5\n#002850\n\nAir4\n#002040\n\nAir3\n#001830\n\nAir2\n#001020\n\nAir1\n#000810\n\nAir0\n#000000\n\nWall\nWhite\n\nCracks\nWhite #AAA #888\n02000\n01000\n20102\n00010\n00020\n\nWindow\n#8EF #0DE\n00000\n01111\n01111\n01111\n01111\n\nCrateS\n#AAA #888 #666 #444 #222\n10001\n02420\n04230\n02320\n10001\n\nCrateL\n#AAA #888 #666 #444 #222\n10000\n02444\n04222\n02333\n10000\n\nCrateR\n#AAA #888 #666 #444 #222\n00001\n44420\n22230\n33320\n00001\n\nCrateU\n#AAA #888 #666 #444 #222\n10001\n02420\n04230\n04230\n04230\n\nCrateD\n#AAA #888 #666 #444 #222\n04230\n04230\n04230\n02320\n10001\n\nCrateUL\n#AAA #888 #666 #444 #222\n10000\n02444\n04222\n04222\n04222\n\nCrateUR\n#AAA #888 #666 #444 #222\n00001\n44420\n22230\n22230\n22230\n\nCrateDL\n#AAA #888 #666 #444 #222\n04222\n04222\n04222\n02333\n10000\n\nCrateDR\n#AAA #888 #666 #444 #222\n22230\n22230\n22230\n33320\n00001\n\nDoorD\n#AAA #555\n..1..\n.101.\n.101.\n.101.\n.101.\n\nDoorL\n#AAA #555\n.....\n1111.\n00001\n1111.\n.....\n\nDoorR\n#AAA #555\n.....\n.1111\n10000\n.1111\n.....\n\nDoorU\n#AAA #555\n.101.\n.101.\n.101.\n.101.\n..1..\n\nDoorDR\n#AAA #555\n.....\n.11..\n.101.\n..101\n...10\n\nDoorDL\n#AAA #555\n.....\n..11.\n.101.\n101..\n01...\n\nDoorUR\n#AAA #555\n...10\n..101\n.101.\n.11..\n.....\n\nDoorUL\n#AAA #555\n01...\n101..\n.101.\n..11.\n.....\n\nAirlockO\n#AAA White\n.....\n....0\n....0\n....0\n.....\n\nAirlockC\n#AAA #A50\n.....\n00000\n01110\n00000\n.....\n\nAirlockG\n#AAA #0A0\n.....\n00000\n01110\n00000\n.....\n\nAirlockL\n#AAA #A00\n.....\n00000\n01110\n00000\n.....\n\nLog\nWhite Green Black\n00000\n12121\n21212\n12121\n00000\n\nLogAction\nWhite Black Green\n00000\n12121\n21212\n12121\n00000\n\nAirlockOn\nWhite #0A0\n00100\n01100\n01110\n00110\n00100\n\nAirlockOff\nWhite #A00\n00000\n00000\n01110\n00000\n00000\n\nClampOnL\nWhite #0A0\n01100\n00100\n01110\n00100\n01100\n\nClampOnR\nWhite #0A0\n00110\n00100\n01110\n00100\n00110\n\nClampOffL\nWhite #A00\n00100\n00100\n00110\n00100\n00100\n\nClampOffR\nWhite #A00\n00100\n00100\n01100\n00100\n00100\n\nNumber0\n#0A0\n.00..\n0..0.\n0..0.\n0..0.\n.00..\n\nNumber1\n#0A0\n..0..\n.00..\n..0..\n..0..\n.000.\n\nNumber2\n#0A0\n000..\n...0.\n.00..\n0....\n0000.\n\nNumber3\n#0A0\n000..\n...0.\n.00..\n...0.\n000..\n\nNumber4\n#0A0\n0....\n0..0.\n0000.\n...0.\n...0.\n\nNumber5\n#0A0\n0000.\n0....\n000..\n...0.\n000..\n\nNumber6\n#0A0\n.00..\n0....\n000..\n0..0.\n.00..\n\nNumber7\n#0A0\n0000.\n...0.\n..0..\n.0...\n0....\n\nNumber8\n#0A0\n.00..\n0..0.\n.00..\n0..0.\n.00..\n\nNumber9\n#0A0\n.00..\n0..0.\n.000.\n...0.\n.00..\n\nClampArm\n#AAA #888 #555\n.....\n00000\n11111\n22222\n.....\n\nClampL\n#AAA #888 #555 Yellow Black\n...33\n00034\n11133\n22234\n...33\n\nClampR\n#AAA #888 #555 Yellow Black\n33...\n43000\n33111\n43222\n33...\n\nPlayer\nTransparent\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nStory1\nTransparent\n\nStory2\nTransparent\n\nStory3\nTransparent\n\nStory4\nTransparent\n\nStory5\nTransparent\n\nStory6\nTransparent\n\nStory7\nTransparent\n\nStory8\nTransparent\n\nStory9\nTransparent\n\nDockU\nTransparent\n\nDockD\nTransparent\n\nGoal\nTransparent\n\nFlip\nTransparent\n\nBreech\nTransparent\n\nThrusterL [\n#AAA #999 #888 #777\n00123\n01223\n01223\n01223\n00123\n\nThrusterR ]\n#777 #666 #555 #444\n01233\n01123\n01123\n01123\n01233\n\nWingUR `\n#FFF #EEE #DDD #BBB\n32100\n.2100\n..100\n...00\n....0\n\nWingUL '\n#FFF #EEE #DDD #BBB\n00123\n0012.\n001..\n00...\n0....\n\nWingDR /\n#FFF #EEE #DDD #BBB\n....0\n...00\n..100\n.2100\n32100\n\nWingDL \\\n#FFF #EEE #DDD #BBB\n0....\n00...\n001..\n0012.\n00123\n\nShuttleL {\n#FFF #EEE #DDD #BBB\n32100\n32100\n32100\n32100\n32100\n\nShuttleR }\n#FFF #EEE #DDD #BBB\n00123\n00123\n00123\n00123\n00123\n\nWall1 α\nWhite #AAA\n00000\n00001\n11111\n01001\n00000\n\nWall2 β\nWhite #AAA\n00000\n01001\n10101\n10101\n10011\n\nWall3 γ\nWhite #AAA\n00000\n01010\n10101\n10101\n10001\n\nWall4 δ\nWhite #AAA\n00000\n01111\n00100\n00100\n11100\n\nWall5 ε\nWhite #AAA\n00000\n10010\n10101\n10101\n11101\n\nPlanetUL ┌\n#F60 #A40 #520\n..221\n.2110\n21110\n21100\n21100\n\nPlanetUR ┐\n#F60 #A40 #520\n112..\n0011.\n00012\n00001\n00001\n\nPlanetDL └\n#F60 #A40 #520\n21100\n21100\n21110\n.2110\n..221\n\nPlanetDR ┘\n#F60 #A40 #520\n00001\n00001\n00012\n0011.\n112..\n\nStar\n#FFA #FF5 #AA0 #550\n...3.\n3212.\n.101.\n.2123\n.3...\n\n\n=======\nLEGEND\n=======\n\n. = Air0\n░ = Space\n, = Air0 and DoorwaySpace\n* = Air0 and Grate\n\" = Air0 and Flip\n¤ = Air0 and Star\n█ = Wall\n▒ = Window\n▓ = Cracks\n! = Wall and Number9\n$ = Air0 and Number9\n~ = Air7\n↓ = DoorD and DoorwayGrate and Air0\n← = DoorL and DoorwayGrate and Air0\n→ = DoorR and DoorwayGrate and Air0\n↑ = DoorU and DoorwayGrate and Air0\n□ = Air0 and CrateS\n╞ = Air0 and CrateL\n╡ = Air0 and CrateR\n╥ = Air0 and CrateU\n╨ = Air0 and CrateD\n╔ = Air0 and CrateUL\n╗ = Air0 and CrateUR\n╚ = Air0 and CrateDL\n╝ = Air0 and CrateDR\na = Player and SpacemanD and Air7\nb = Story1 and Log\nc = DockU and AirlockG and Air7\ne = DockU and AirlockC and Air0 and DoorwayGrate\nf = DockU and AirlockOn\ng = DockU and ClampOnL\nh = DockU and ClampL and Air0\ni = DockU and ClampR and Air0\nj = DockU and ClampArm and Air0\nm = Player and SpacemanD and Air0\nn = Air0 and DoorwayGrate and Breech\no = DockD and ClampArm and Air0\np = DockD and ClampL and Air0\nq = DockD and ClampR and Air0\ns = DockD and AirlockOff\nt = DockD and ClampOnR\nw = DockD and AirlockL and Air0 and DoorwayGrate\nx = DockD and AirlockL and Air7\ny = Story9 and Log\nz = Goal and Air7\n2 = Story2 and Air0\n3 = Story3 and Air0\n4 = Story4 and Air0\n5 = Story5 and Air0\n6 = Story6 and Air0\n7 = Story7 and Air0\n8 = Story8 and Air0\n\nAirT = Air1 or Air2 or Air3 or Air4 or Air5 or Air6\nAirlockA = AirlockC or AirlockG or AirlockO or AirlockL\nAirlockU = AirlockC or AirlockG or AirlockO\nAirlockControl = AirlockOn or AirlockOff\nClamp = ClampL or ClampR\nClampOn = ClampOnL or ClampOnR\nClampOff = ClampOffL or ClampOffR\nClampControl = ClampOn or ClampOff\nCrate = CrateS or CrateD or CrateL or CrateR or CrateU or CrateDL or CrateDR or CrateUL or CrateUR\nCrateDX = CrateD or CrateDL or CrateDR\nCrateLX = CrateL or CrateDL or CrateUL\nCrateRX = CrateR or CrateDR or CrateUR\nCrateUX = CrateU or CrateUL or CrateUR\nDock = DockU or DockD\nDoor = DoorD or DoorL or DoorR or DoorU or DoorDL or DoorDR or DoorUL or DoorUR\nDoorH = DoorL or DoorR\nDoorV = DoorD or DoorU\nDoorS = DoorDL or DoorDR or DoorUL or DoorUR\nDoorway = DoorwayGrate or DoorwaySpace\nNumber = Number0 or Number1 or Number2 or Number3 or Number4 or Number5 or Number6 or Number7 or Number8 or Number9\nPlanet = PlanetDL or PlanetDR or PlanetUL or PlanetUR\nShuttle = ThrusterL or ThrusterR or WingDL or WingDR or WingUL or WingUR or ShuttleL or ShuttleR\nSpaceman = SpacemanD or SpacemanL or SpacemanR or SpacemanU or Corpse\nStory = Story1 or Story2 or Story3 or Story4 or Story5 or Story6 or Story7 or Story8 or Story9\nImmovable = Wall or Window or Cracks or Space or AirlockL or ClampArm or Shuttle or Wall1 or Wall2 or Wall3 or Wall4 or Wall5\nObstruction = Immovable or Crate or Door or AirlockC or AirlockG or Log or LogAction or AirlockControl or ClampControl\nPushObstruction = Obstruction or Grate or DoorwayGrate\n\n\n=======\nSOUNDS\n=======\n\nsfx0 92775908 (Depressrisaion)\nsfx1 28333308 (Repressrisaion)\nsfx3 5427908 (Power down airlock)\nsfx4 68678908 (Power up airlock)\nLogAction Create 35901509 (Checkpoint)\nClampL Move 95348908 (Engage/release clamp)\nAirlockO Create 12359908 (Open airlock)\nAirlockO Destroy 12359908 (Close airlock)\nDoor Destroy 12359908 (Open door)\nCrate Move 58179108 (Crate pushed)\nEndLevel 63640708 (Start of win)\nEndGame 87777508 (Finished win!)\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nAir0, AirT, Air7\nDoorwaySpace, DoorwayGrate, Grate, Goal, Flip, Planet, Star\nPlayer, Obstruction\nDock\nSpaceman\nAirlockO, Clamp, Number, Story, Breech\n\n\n======\nRULES\n======\n\n[> Player Corpse]->cancel\n[> Player|Immovable]->cancel\n\n(Crates)\n[> Player|Crate]->[> Player|> Crate]\nup [moving CrateDX|stationary CrateUX]->[moving CrateDX|moving CrateUX]\ndown [moving CrateUX|stationary CrateDX]->[moving CrateUX|moving CrateDX]\nleft [moving CrateRX|stationary CrateLX]->[moving CrateRX|moving CrateLX]\nright[moving CrateLX|stationary CrateRX]->[moving CrateLX|moving CrateRX]\n[> Crate|stationary PushObstruction]->cancel\n\n(Doors)\nvertical [> Player|DoorH]->[> Player|> DoorH]\nhorizontal[> Player|DoorV]->[> Player|> DoorV]\n[> Player|DoorS]->[> Player|> DoorS]\n[> Door|Door]->[|> Door]\n[horizontal DoorH]->cancel\n[vertical DoorV]->cancel\n[up DoorDL]->[left DoorDL]\n[right DoorDL]->[down DoorDL]\n[up DoorDR]->[right DoorDR]\n[left DoorDR]->[down DoorDR]\n[down DoorUL]->[left DoorUL]\n[right DoorUL]->[up DoorUL]\n[down DoorUR]->[right DoorUR]\n[left DoorUR]->[up DoorUR]\nup [> DoorL|no Obstruction]->[|DoorDL]\ndown [> DoorL|no Obstruction]->[|DoorUL]\nup [> DoorR|no Obstruction]->[|DoorDR]\ndown [> DoorR|no Obstruction]->[|DoorUR]\nleft [> DoorU|no Obstruction]->[|DoorUR]\nright[> DoorU|no Obstruction]->[|DoorUL]\nleft [> DoorD|no Obstruction]->[|DoorDR]\nright[> DoorD|no Obstruction]->[|DoorDL]\ndown [> DoorDL|no Obstruction]->[|DoorL]\nleft [> DoorDL|no Obstruction]->[|DoorD]\ndown [> DoorDR|no Obstruction]->[|DoorR]\nright[> DoorDR|no Obstruction]->[|DoorD]\nup [> DoorUL|no Obstruction]->[|DoorL]\nleft [> DoorUL|no Obstruction]->[|DoorU]\nup [> DoorUR|no Obstruction]->[|DoorR]\nright[> DoorUR|no Obstruction]->[|DoorU]\n[Door DoorwayGrate|no Door DoorwayGrate]->[Door DoorwayGrate|Door DoorwayGrate]\n[> Door|Obstruction]->cancel\n\n(Airlock)\n[> Player|AirlockG]->[Player|AirlockO]\n[AirlockO|AirlockU]->[AirlockO|AirlockO]\n\n(Repressurisation)\n[Air7|Spaceman Air6|]->[Air7|Spaceman Air7|Air7]\n[Air7|Spaceman Air5|]->[Air7|Spaceman Air6|Air6]again\n[Air7|Spaceman Air4|]->[Air7|Spaceman Air5|Air5]again\n[Air7|Spaceman Air3|]->[Air7|Spaceman Air4|Air4]again\n[Air7|Spaceman Air2|]->[Air7|Spaceman Air3|Air3]again\n[Air7|Spaceman Air1|]->[Air7|Spaceman Air2|Air2]again\n[AirlockC Air7|< Player||AirlockU Air0]->[AirlockC Air7|Player Air1|Air1|AirlockC Air0]sfx1 again\n\n(Oxygen)\nright[Number0|Number0][Player Spaceman]->[Number0|Number0][Player Corpse]\nright[Number|Number]->[Number|down Number]\n[Corpse][down Number]->[Corpse][Number]\n[stationary Player AirT][down Number]->[stationary Player AirT][Number]\n[> Player Doorway|Doorway][down Number]->[> Player Doorway|Doorway][Number]\nright[Number|down Number0]->[down Number|Number9]\nright[no Number|down Number0|Number9]->[|Number0|Number0]\n[down Number1]->[Number0]\n[down Number2]->[Number1]\n[down Number3]->[Number2]\n[down Number4]->[Number3]\n[down Number5]->[Number4]\n[down Number6]->[Number5]\n[down Number7]->[Number6]\n[down Number8]->[Number7]\n[down Number9]->[Number8]\n[Spaceman Air7][Number]->[SpacemanD Air7][Number9]\n\n(Depressurisation)\n[Air0|Spaceman Air1|]->[Air0|Spaceman Air0|Air0]\n[Air0|Spaceman Air2|]->[Air0|Spaceman Air1|Air1]again\n[Air0|Spaceman Air3|]->[Air0|Spaceman Air2|Air2]again\n[Air0|Spaceman Air4|]->[Air0|Spaceman Air3|Air3]again\n[Air0|Spaceman Air5|]->[Air0|Spaceman Air4|Air4]again\n[Air0|Spaceman Air6|]->[Air0|Spaceman Air5|Air5]again\n[AirlockC Air0|< Player||AirlockU Air7]->[AirlockC Air0|Player Air6|Air6|AirlockC Air7]sfx0 again\n\n(Airlock link)\n[Air7|AirlockC Air7|Air7]->[Air7|AirlockG Air7|Air7]\n[Air0|AirlockC Air0|Air0]->[Air0|AirlockG Air0|Air0]\n[AirlockC|AirlockO]->[AirlockC|AirlockC]\n\n(Log)\n[LogAction]->[Log]checkpoint\n[> Player|Log no Story]->[> Player|LogAction]again\n[Player Air6|Log Story1]->[Player Air6|Log]again checkpoint message Press [R] to rewind to your last log entry. If you really stuff up, start a new game.\n[> Player Air7|Log Story1]->[Player Air5|Log Story1]again message I record a log of my experiences. It may be useful if I need to retrace my steps.\n\n(Story)\nlate[Player|Story2]->[Player|]message The station is devoid of air. The micro-meteors must have hit here too.\nlate[Player|Story3]->[Player|]message I'll have to find the other shuttle quickly.\nlate[Player|Story4]->[Player|]message These are typical zero-G crates that clamp to the floor when not being moved.\nlate[Player|Story5]->[Player|]message Let's see what useful stuff they're full of...\nlate[Player|Story6]->[Player|]message They're full of vacuum cleaners!\nlate[Player|Story7]->[Player|]message This looks promising!\nlate[Player|Story8]->[Player|]message They just don't make space stations like they used to.\nlate[Player|Story9]->[Player|]message Now I just need to release the docking clamps.\n\n(Power up/down airlock)\n[> Player|AirlockOff][AirlockOn]->[Player|AirlockOff][AirlockOn]message ERROR: Only one airlock may be powered at a time.\n[> Player|AirlockControl DockU][AirlockA DockU]->[> Player|AirlockControl DockU][action AirlockA DockU]\n[> Player|AirlockControl DockD][AirlockA DockD]->[> Player|AirlockControl DockD][action AirlockA DockD]\n[action AirlockU]->[AirlockL]\n[action AirlockL]->[AirlockC]\n[Air0|Air0 AirlockC|Air0]->[Air0|Air0 AirlockG|Air0]\n[> Player|AirlockOn]->[Player|AirlockOff]sfx3\n[> Player|AirlockOff]->[Player|AirlockOn]sfx4\n\n(Clamp/release new shuttle)\n[> Player|ClampOn DockU]->[Player|ClampOn DockU]message No, I'm not releasing the docking clamp on my shuttle. That's my only life line right now.\n[> Player|ClampOn DockD][ClampL DockD][ClampR DockD]->[Player|action ClampOn DockD][left ClampL DockD][right ClampR DockD]\n[> Player|ClampOff DockD][ClampL DockD][ClampR DockD]->[Player|action ClampOff DockD][right ClampL DockD][left ClampR DockD]\n[action ClampOnL ]->[ClampOffL]\n[action ClampOnR ]->[ClampOffR]\n[action ClampOffL]->[ClampOnL ]\n[action ClampOffR]->[ClampOnR ]\n\n(Space walking)\nright[> Player SpacemanR Breech|Breech]->[Breech|Player SpacemanD Breech]\nright[Breech|< Player SpacemanD Breech]->[Player SpacemanR Breech|Breech]\ndown [> Player SpacemanD Breech|Breech]->[Breech|Player SpacemanU Breech]\ndown [Breech|< Player SpacemanU Breech]->[Player SpacemanD Breech|Breech]\nleft [> Player SpacemanD|Flip]->[|Flip down Player down SpacemanR]\nright[> Player SpacemanD|Flip]->[|Flip down Player down SpacemanL]\ndown [> Player SpacemanL|Flip]->[|Flip left Player left SpacemanU]\nup [> Player SpacemanL|Flip]->[|Flip left Player left SpacemanD]\ndown [> Player SpacemanR|Flip]->[|Flip right Player right SpacemanU]\nup [> Player SpacemanR|Flip]->[|Flip right Player right SpacemanD]\nleft [> Player SpacemanU|Flip]->[|Flip up Player up SpacemanR]\nright[> Player SpacemanU|Flip]->[|Flip up Player up SpacemanL]\n\n(Move spaceman)\nlate[Spaceman][no Spaceman Player]->[][Spaceman Player]\n\n\n==============\nWINCONDITIONS\n==============\n\nall Goal on Player\nno ClampOn on DockD\n\n\n=======\nLEVELS\n=======\n\nmessage That micro-meteor storm came out of nowhere!\nmessage My shuttle is badly damaged. My engines are stuttering. My comms are out. I need help fast.\nmessage There's a space station with another shuttle docked there. I have to dock there.\nmessage The station's docking clamps automatically guide me in and affix me to the airlock.\n\n...............................................................\n...............................................................\n...............................................................\n...............................................................\n...............................................................\n.¤........¤........¤........¤........¤........¤........¤.......\n......░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░......\n......░\",,.......,,.......,,\".....\".,,......,,.......,,\"░......\n...┌┐.░$!██▒███▒!!██▒███▒!!█,[]█[]$!██▒███▒!!██▒███▒!!█,░....$$\n......░,█α█▒███▒██β█▒███▒██γ,[]█[],█δ█▒███▒██ε█▒███▒███,░......\n......░.█α╞╡...*.█α╥......█α.`{b}'.█α...□...█α.....□.██.░......\n......░.▒▒.╞╡.╞╡.██╨...╔╗.██.░{a}░.██.╞╡....██□..□.□.▒▒.░......\n......░.██...╥...██╔╗╥.╚╝.██jh{~}ij██.....□*██...□...██.░......\n......░.██.□.╨╞╡*↑↑╚╝╨..╥.██▒▒{~}▒▒██□╞╡╞╡╞╡↑↑5□.□□..██.░......\n.¤....░.██.╥╔╗.□.██.╞╡□.╨*██.▒`c'▒.██.□...╥.██□╞╡.□.□██¤░......\n......░.▒▒*╨╚╝.╞╡██......□↓↓.f/~\\g.↓↓.╥...╨.██.□..□..▒▒.░......\n...┌┐.░.██......□██╞╡.....██.▒{~}▒.██.╨.4...██.□□....██.░......\n...└┘.░$!████→██!!████←██!!████e██!!████←██!!████→██!!█,░....$$\n......░,█α███→████β███←████γ███e████δ███←████ε███→█████,░......\n......░.█β□.□...□█β....□..█β..*2*..█β.......█β.╥.6...██.░......\n......░.▒▒.□.□.□.██..╥.╥..██..*.*..██□□□□□□□██*╨..╔╗*▒▒.░......\n......░.██□.□.□.□██╞╡╨.╨╞╡██.╥..□..██.......██..╞╡╚╝.██.░......\n......░.██.□.□.□.↓↓..□.□..↓↓.╨╔╗...↓↓3╞╡.╞╡.↓↓.╞╡╥...██.░......\n.¤....░.██□.□.□.□██╞╡╥.╥╞╡██**╚╝.**██.╞╡.╞╡.██╞╡.╨...██¤░......\n...┌┐.░.▒▒.□.□.□.██..╨.╨..██..*╞╡..██□□□□□□.██.╞╡.□□□▒▒.░......\n...└┘.░.██□.□.□.□██....□..██..*....██.......██.......██.░......\n......░$!████→██!!████←██!!████→██!!████←██!!████→██!!█,░....$$\n......░,█α███→████β███←████γ███→████δ███←████ε███→█████,░......\n......░.█γ.....╞╡█γ*.*.*.*█γ..╥..╞╡█γ╥.□....█γ.......██.░......\n......░.▒▒╞╡.....██.╥.╞╡╥□██.*╨╔╗.□██╨╥.....██.╔╗.╔╗.▒▒.░......\n......░.██.╞╡╞╡╔╗██*╨*.*╨*██..*╚╝..██.╨╥...□██.╚╝.╚╝.██.░......\n......░.██.....╚╝↑↑...╥╞╡.↑↑...*╞╡.↑↑..╨╥...↑↑.╔╗.╔╗.██.░......\n.¤.┌┐.░.██.╞╡╔╗..██*□*╨*╥*██....*..██╔╗.╨╥..██.╚╝.╚╝.██¤░......\n...└┘.░.▒▒...╚╝..██..╞╡.╨.██.....*.██╚╝..╨╔╗██.╔╗.╔╗.▒▒.░......\n......░.██╞╡....□██*□*.*.*██.......██.....╚╝██.╚╝.╚╝.██.░......\n......░$!████→██!!████←██!!████w██!!████←██!!████→██!!█,░....$$\n......░,█α███→████β███←████γ███w████δ███←████ε███→█████,░......\n......░.█δ□..8..□█δ╥..╞╡..█δ.▒{.}▒.█δ.╔╗.╔╗.█δ..╥....██.░......\n......░.▒▒╔╗.*...██╨╞╡....↑↑.t`.'s7↑↑.╚╝.╚╝.██.╥╨╞╡╥.▒▒.░......\n......░.██╚╝╞╡□╔╗██╥......██.▒/x\\▒.██.╥.╥...██.╨...╨.██.░......\n...┌┐.░.██...*.╚╝↓↓╨......██▒▒{~}▒▒██.╨.╨╔╗.↓↓.╞╡.╥╞╡██.░......\n.¤.└┘.░.▓▓..╞╡□..██.......██op{~}qo██.╥..╚╝.██.□..╨..██¤░......\n......░.nn...*...██.......██.░{z}░.██.╨...╔╗██...╥...▒▒.░......\n......░.▓▓□.╞╡..□██.......██./{y}\\.██...□.╚╝██..□╨...██.░......\n......░$!██▒███▒!!█▓n▓██▒!!█,[]█[]$!██▒███▒!!██▒███▒!!█,░....$$\n......░,███▒███▒███▓n▓██▒███,[]█[],███▒███▒████▒███▒███,░......\n......░\",,.......,,.......,,\".....\",,.......,,.......,,\"░......\n......░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░......\n...┌┐......┌┐......┌┐......┌┐.......┐..........................\n...└┘......└┘......└┘......└┘.......┘..........................\n.¤........¤........¤........¤........¤........¤........¤.......\n...............................................................\n...............................................................\n.......$$.......$$.......$$.......$$.......$$.......$$.......$$\n\nmessage Life support: CHECK\nmessage Clamp released: CHECK\nmessage Airlock disengaged: CHECK\nmessage Engine power: CHECK\nmessage Still alive: ...\nmessage CHECK!\n\n", [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 0, 3, 2, 2, 3, 2, 3, 3, 3, 3], "air0 background: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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,air0 background star:1,0,0,0,\n0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,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,0,background planetul:2,0,0,0,0,0,0,0,2,background planetdl:3,0,0,0,0,0,0,2,3,0,\n0,0,0,0,0,2,3,0,0,0,0,0,0,2,3,0,0,0,0,0,0,2,3,0,0,0,0,0,0,0,0,0,0,0,0,background planetur:4,0,0,0,0,0,0,0,4,background planetdr:5,0,0,0,0,0,0,4,5,0,0,0,0,0,0,4,5,0,0,\n0,0,0,0,4,5,0,0,0,0,0,0,4,5,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,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background space:6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,\n0,0,0,0,0,0,6,air0 background flip:7,air0 background number8:8,air0 background doorwayspace:9,0,0,0,0,0,0,0,8,9,0,0,0,0,0,0,0,8,9,0,0,0,0,0,0,0,8,9,0,0,0,0,0,0,0,8,9,7,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,background number5 wall:10,\nbackground wall:11,11,background window:12,11,11,11,12,11,10,11,11,12,11,11,11,12,11,10,11,11,12,11,11,11,12,11,10,11,11,12,11,11,background cracks:13,air0 background breech doorwaygrate:14,13,10,11,9,6,0,0,0,0,0,air0 background number5:15,0,0,0,0,0,0,6,9,11,background wall1:16,16,12,11,11,11,12,11,11,\n16,background wall2:17,12,11,11,11,12,11,11,16,background wall3:18,12,11,11,11,12,11,11,16,background wall4:19,12,11,11,13,14,13,11,11,9,6,0,0,0,0,0,0,0,0,0,0,0,1,6,0,11,11,air0 background cratel:20,0,0,0,0,air0 background grate:21,0,11,11,air0 background crates:22,0,22,0,22,0,22,11,\n11,0,20,0,0,0,0,20,11,11,22,air0 background crateul:23,air0 background cratedl:24,0,0,0,22,11,11,0,6,0,0,1,0,0,0,0,0,0,0,0,0,6,0,12,12,air0 background crater:25,20,0,22,air0 background crateu:26,air0 background crated:27,0,11,11,0,22,0,22,0,22,0,11,11,0,25,20,0,20,0,25,11,\n11,0,air0 background crateur:28,air0 background cratedr:29,0,0,0,0,12,12,0,6,2,3,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,25,0,0,23,24,0,11,11,22,0,22,0,22,0,22,11,11,0,0,25,0,25,0,0,11,11,0,0,20,0,20,0,20,11,\n11,0,6,4,5,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,0,26,27,28,29,0,air0 background doorr doorwaygrate:30,30,0,22,0,22,0,22,0,30,30,0,0,20,0,23,24,0,30,30,air0 background story8:31,21,25,21,25,21,25,11,11,0,6,0,0,0,0,0,0,\n0,0,0,0,0,0,6,0,11,11,0,20,0,20,0,0,0,11,11,0,0,22,0,22,0,22,11,11,0,0,25,0,28,29,0,11,11,0,0,22,0,22,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,12,\n12,21,25,0,25,22,20,0,11,11,0,22,0,22,0,22,0,11,11,20,0,23,24,0,0,0,11,11,0,0,23,24,0,0,0,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,background number8 wall:32,11,0,0,0,21,0,25,22,32,\n11,22,0,22,0,22,0,22,32,11,25,0,28,29,0,0,22,32,11,22,0,28,29,0,0,22,32,11,0,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,10,11,11,11,11,air0 background dooru doorwaygrate:33,11,11,11,10,11,11,11,11,air0 background doord doorwaygrate:34,11,11,11,10,\n11,11,11,11,33,11,11,11,10,11,11,11,11,34,11,11,11,10,11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,17,16,11,11,33,11,11,11,11,17,17,11,11,34,11,11,11,11,17,18,11,11,33,11,11,11,11,\n17,19,11,11,34,11,11,11,11,11,9,6,0,0,0,0,0,0,0,0,0,0,0,1,6,0,11,11,26,27,23,24,0,0,20,11,11,0,0,20,0,20,0,0,11,11,21,0,21,0,21,0,21,11,11,26,27,26,27,0,0,0,13,\n13,0,6,2,3,1,0,0,0,0,0,0,0,0,0,6,0,12,12,0,0,28,29,20,0,25,11,11,0,0,25,0,25,0,0,11,11,0,26,27,0,22,0,22,11,11,0,20,0,0,0,0,0,14,14,0,6,4,5,0,0,0,0,\n0,0,0,0,0,0,6,0,11,11,0,0,26,27,25,0,0,11,11,0,26,27,22,26,27,0,11,11,21,0,21,0,21,20,21,11,11,0,25,0,0,0,0,0,13,13,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,\n11,0,0,0,0,22,0,0,air0 background doorl doorwaygrate:35,35,0,0,0,0,0,0,0,35,35,0,20,0,26,27,25,0,35,35,20,0,0,0,0,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,23,24,0,0,0,0,11,\n11,22,26,27,22,26,27,22,11,11,21,25,21,20,21,0,21,11,11,25,0,0,0,0,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,12,12,0,28,29,26,27,0,0,11,11,0,0,20,0,20,0,0,11,\n11,0,26,27,25,26,27,0,11,11,0,0,0,0,0,0,0,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,32,11,0,0,0,0,21,22,0,32,11,0,0,25,0,25,0,0,32,11,21,22,21,0,21,0,21,32,\n11,0,0,0,0,0,0,0,32,11,0,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,10,11,11,11,11,11,11,34,11,10,11,11,11,11,34,11,11,11,10,11,11,11,11,33,11,11,11,10,11,11,33,11,11,11,11,11,10,\n11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,18,16,11,11,11,11,34,11,11,18,17,11,11,34,11,11,11,11,18,18,11,11,33,11,11,11,11,18,19,33,11,11,11,11,11,11,11,9,6,2,3,0,0,0,0,\n0,0,0,0,0,1,6,7,9,9,0,0,air0 background clamparm docku:36,12,0,0,0,11,11,0,0,0,0,21,0,0,11,11,0,0,0,0,0,0,0,11,11,0,0,0,12,air0 background clamparm dockd:37,0,0,9,9,7,6,4,5,1,0,0,0,0,0,0,0,0,0,6,0,background thrusterl:38,\n38,background wingur:39,6,air0 background clampl docku:40,12,12,airlockon background docku:41,12,11,11,0,0,26,27,21,0,0,11,11,0,21,0,0,0,0,0,11,11,12,background clamponr dockd:42,12,12,air0 background clampl dockd:43,6,background wingdr:44,38,38,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,background thrusterr:45,45,background shuttlel:46,46,46,46,39,44,46,11,\n11,21,21,0,23,24,21,21,11,11,26,27,21,0,0,0,0,11,11,46,39,44,46,46,46,46,45,45,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,background log story1:47,air7 background:48,48,48,air7 airlockc background docku:49,0,0,air0 airlocko background docku doorwaygrate:50,50,0,0,0,28,29,20,0,30,\n30,0,23,24,21,0,0,0,air0 airlockl background dockd doorwaygrate:51,51,0,0,air7 airlockl background dockd:52,48,48,air7 background goal:53,background log story9:54,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,38,38,background shuttler:55,55,55,55,background wingul:56,background wingdl:57,55,11,11,21,21,0,0,0,25,0,11,11,0,28,29,20,21,0,0,11,\n11,55,56,57,55,55,55,55,38,38,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,45,45,56,6,air0 background clampr docku:58,12,12,background clamponl docku:59,12,11,11,0,0,0,22,21,0,0,11,11,20,0,0,25,0,21,0,11,11,12,airlockoff background dockd:60,12,12,air0 background clampr dockd:61,6,57,45,\n45,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,7,8,9,0,0,36,12,0,0,0,32,11,0,0,0,0,21,0,0,32,11,25,22,0,0,0,0,0,32,11,0,air0 background story7:62,0,12,37,0,0,8,9,7,6,0,0,0,0,0,8,\n0,0,0,0,0,0,6,0,10,11,11,11,11,11,11,34,11,10,11,11,11,11,air0 background doorwaygrate:63,11,11,11,10,11,11,11,11,33,11,11,11,10,11,11,33,11,11,11,11,11,10,11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,\n19,16,11,11,11,11,34,11,11,19,17,11,11,63,11,11,11,11,19,18,11,11,33,11,11,11,11,19,19,33,11,11,11,11,11,11,11,9,6,4,5,0,0,0,0,0,0,0,0,0,1,6,9,11,11,0,0,0,22,0,0,0,11,\n11,0,22,0,0,air0 background doorl:64,22,0,11,11,26,27,0,0,23,24,0,11,11,0,0,0,0,0,0,0,11,11,0,6,0,0,1,0,0,0,0,0,0,0,0,0,6,0,12,12,0,20,0,20,22,26,27,11,11,0,22,0,air0 background player spacemand:65,20,22,0,11,\n11,0,26,27,0,28,29,0,11,11,23,24,26,27,26,27,0,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,25,0,25,0,0,0,11,11,0,22,0,20,25,22,0,11,11,22,0,26,27,0,0,0,11,\n11,28,29,0,0,0,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,22,0,0,20,0,0,air0 background story4:66,35,35,0,22,0,25,0,22,0,35,35,0,0,0,26,27,0,0,35,35,0,0,26,27,0,0,22,11,\n11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,0,0,25,0,0,0,11,11,0,22,0,20,20,22,0,11,11,0,0,0,0,26,27,0,11,11,23,24,0,23,24,0,0,11,11,0,6,0,0,0,0,0,0,\n0,0,0,0,0,0,6,0,12,12,0,0,22,20,26,27,0,11,11,0,22,0,25,25,22,0,11,11,0,0,0,0,0,23,24,11,11,28,29,0,28,29,23,24,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,32,\n11,0,0,21,25,0,0,0,32,11,0,22,0,0,0,0,0,32,11,0,0,22,0,0,28,29,32,11,0,0,0,0,0,28,29,32,11,0,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,10,11,11,11,11,33,11,11,11,10,\n11,11,11,11,34,11,11,11,10,11,11,11,11,33,11,11,11,10,11,11,11,11,34,11,11,11,10,11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,background wall5:67,16,11,11,33,11,11,11,11,67,17,11,11,34,11,11,11,11,\n67,18,11,11,33,11,11,11,11,67,19,11,11,34,11,11,11,11,11,9,6,0,0,0,0,0,0,0,0,0,0,0,1,6,0,11,11,0,22,0,air0 background story5:68,22,0,0,11,11,0,21,0,0,20,0,0,11,11,0,0,0,0,0,0,0,11,\n11,0,0,0,0,0,0,0,11,11,0,6,0,0,1,0,0,0,0,0,0,0,0,0,6,0,12,12,0,0,0,22,20,22,22,11,11,26,27,0,20,25,20,0,11,11,0,23,24,23,24,23,24,11,11,0,26,27,20,22,0,0,12,\n12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,0,0,0,25,0,22,11,11,0,0,20,25,0,25,0,11,11,0,28,29,28,29,28,29,11,11,26,27,0,25,0,0,22,11,11,0,6,0,0,0,0,0,0,\n0,0,0,0,0,0,6,0,11,11,0,22,22,22,0,0,0,30,30,air0 background story6:69,0,25,26,27,0,0,30,30,0,0,0,0,0,0,0,30,30,0,20,0,0,0,26,27,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,\n11,0,0,0,22,22,22,0,11,11,0,23,24,0,0,22,0,11,11,0,23,24,23,24,23,24,11,11,0,25,0,26,27,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,12,12,22,22,0,0,0,0,0,11,\n11,0,28,29,0,0,22,0,11,11,0,28,29,28,29,28,29,11,11,0,26,27,20,0,0,0,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,32,11,0,0,0,0,22,0,0,32,11,0,21,0,0,0,22,0,32,\n11,0,0,0,0,0,0,0,32,11,0,0,0,25,0,0,0,32,11,0,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,10,11,11,12,11,11,11,12,11,10,11,11,12,11,11,11,12,11,10,11,11,12,11,11,11,12,11,10,\n11,11,12,11,11,11,12,11,10,11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,11,11,12,11,11,11,12,11,11,11,11,12,11,11,11,12,11,11,11,11,12,11,11,11,12,11,11,11,11,12,11,11,11,12,11,11,\n11,9,6,0,0,0,0,0,0,0,0,0,0,0,1,6,7,9,9,0,0,0,0,1,0,0,9,9,0,0,0,0,1,0,0,9,9,0,0,0,0,1,0,0,9,9,0,0,0,0,1,0,0,9,9,7,6,0,0,1,0,0,0,\n0,0,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,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,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,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,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,8,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,8,\n0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,\n", 4, "1627779001776.2905"] ], [ `gallery: paralands`, - ["title ParaLands\nauthor Lukas\nrun_rules_on_level_start\nagain_interval 0.05\nnorepeat_action\n\n========\nOBJECTS\n========\n\n\nBackground\ndarkgray\n\nFloor1\ndarkgray\n\nFloor2\n#444444\n\nWall\ngray #444444 #bbbbbb\n.222.\n20001\n20001\n20001\n.111.\n\nWallConnectorN\ngray #444444 #bbbbbb\n20001\n.....\n.....\n.....\n.....\n\nWallConnectorS\ngray #444444 #bbbbbb\n.....\n.....\n.....\n.....\n20001\n\nWallConnectorE\ngray #444444 #bbbbbb\n....2\n....0\n....0\n....0\n....1\n\nWallConnectorW\ngray #444444 #bbbbbb\n2....\n0....\n0....\n0....\n1....\n\nWallConnectorNE\ngray\n....0\n.....\n.....\n.....\n.....\n\nWallConnectorNW\ngray\n0....\n.....\n.....\n.....\n.....\n\nWallConnectorSE\ngray\n.....\n.....\n.....\n.....\n....0\n\nWallConnectorSW\ngray\n.....\n.....\n.....\n.....\n0....\n\nPit\nblack\n\nPlayerOrange\norange blue\n.000.\n.101.\n00000\n.000.\n.0.0.\n\nPlayerBlue\nblue orange\n.000.\n.101.\n00000\n.000.\n.0.0.\n\nPlayerTrans1\norange blue black\n.....\n.000.\n.101.\n22222\n.222.\n\nPlayerTrans2\nblack\n.....\n.....\n.000.\n00000\n.000.\n\nPlayerTrans3\nblue orange black\n.....\n.000.\n.101.\n22222\n.222.\n\nCrateOrange\norange #ffbb88 #bb6600\n11112\n10002\n10002\n10002\n22222\n\nCrateBlue\nblue #8888ff #0000bb\n11112\n10002\n10002\n10002\n22222\n\nCrateOmni\norange #ffbb88 #bb6600 blue #8888ff #0000bb\n11145\n10035\n10035\n10335\n22555\n\nBallOrange\norange #ffbb88 #bb6600\n.002.\n01002\n00002\n20002\n.222.\n\nBallBlue\nblue #8888ff #0000bb\n.002.\n01002\n00002\n20002\n.222.\n\nBallOmni\norange #ffbb88 #bb6600 blue #0000bb\n.004.\n01034\n00034\n20334\n.244.\n\nDoorOrange\norange #bb6600\n.000.\n00000\n10001\n11111\n.111.\n\nDoorOpenOrange\norange\n.....\n.....\n.000.\n00000\n.000.\n\nDoorBlue\nblue #0000bb\n.000.\n00000\n10001\n11111\n.111.\n\nDoorOpenBlue\nblue\n.....\n.....\n.000.\n00000\n.000.\n\nDoorOmni\norange #bb6600 blue #0000bb\n.002.\n00022\n10223\n11333\n.133.\n\nDoorOpenOmni\norange blue\n.....\n.....\n.001.\n00011\n.011.\n\nSwitchOrange\norange\n.....\n..0..\n.000.\n..0..\n.....\n\nSwitchBlue\nblue\n.....\n..0..\n.000.\n..0..\n.....\n\nSwitchOmni\norange blue\n.....\n..0..\n.001.\n..1..\n.....\n\nTrapdoorOrange\norange #ffbb88\n.000.\n01010\n00000\n01010\n.000.\n\nTrapdoorBlue\nblue #8888ff\n.000.\n01010\n00000\n01010\n.000.\n\nTrapdoorOmni\norange #ffbb88 blue #8888ff\n.002.\n01032\n00022\n01232\n.022.\n\nEnemyOrangeIdle\norange #ffbb88\n.....\n..0..\n.101.\n.0.0.\n.0.0.\n\nEnemyOrangeActive\norange #ffbb88\n.....\n.....\n..0..\n.101.\n.0.0.\n\nEnemyBlueIdle\nblue #8888ff\n.....\n..0..\n.101.\n.0.0.\n.0.0.\n\nEnemyBlueActive\nblue #8888ff\n.....\n.....\n..0..\n.101.\n.0.0.\n\nEnemyOmniIdle\norange #ffbb88 blue #8888ff\n.....\n..0..\n.123.\n.0.2.\n.0.2.\n\nEnemyOmniActive\norange #ffbb88 blue #8888ff\n.....\n.....\n..0..\n.123.\n.0.2.\n\nPlatformOrange\n#bb6600\n.....\n.000.\n.000.\n.000.\n.....\n\nPlatformBlue\n#0000bb\n.....\n.000.\n.000.\n.000.\n.....\n\nPlatformOmni\n#bb6600 #0000bb\n.....\n.001.\n.001.\n.011.\n.....\n\nGoalFr1\ngray lightgray\n.000.\n00111\n01001\n00011\n.111.\n\nGoalFr2\ngray lightgray\n.111.\n01011\n01001\n00101\n.000.\n\nGoalFr3\ngray lightgray \n.111.\n11000\n10010\n11100\n.000.\n\nGoalFr4\ngray lightgray\n.000.\n10100\n10010\n11010\n.111.\n\nBlood\nred\n\nInactiveCrate\nwhite\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\nInactiveBall\nwhite\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nInactivePlatform\nwhite\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nInactiveDoor\nwhite\n.0.0.\n0...0\n.0.0.\n.....\n.....\n\nInactiveDoorOpen\nwhite\n.....\n.....\n.0.0.\n0...0\n.0.0.\n\nInactiveSwitch\ntransparent\n\nInactiveTrapdoor\nwhite\n0...0\n.....\n.....\n.....\n0...0\n\nInactiveEnemy\nwhite\n.....\n..0..\n.0.0.\n.....\n.0.0.\n\nTempCrate\ntransparent\n\nTempBall\ntransparent\n\nTempPlatform\ntransparent\n\ntempDoor\ntransparent\n\ntempDoorOpen\ntransparent\n\ntempSwitch\ntransparent\n\nTempTrapdoor\ntransparent\n\nTempEnemy\ntransparent\n\nInit\ntransparent\n\nEnemyTurn\ntransparent\n\nBuffer\ntransparent\n\nAnimate\ntransparent\n\nPlayerShadow\ntransparent\n\nOrangeToBlue\ntransparent\n\nBlueToOrange\ntransparent\n\nJumpNow\ntransparent\n\nPlayerCrosshair\ntransparent\n\nTrapdoorTriggered\ntransparent\n\nInactiveTrapdoorTriggered\ntransparent\n\nTempTrapdoorTriggered\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n@ = PlayerOrange and Init\n! = GoalFr1\n1 = CrateOrange and InactiveCrate\na = CrateOmni\n2 = BallOrange and InactiveBall\nb = BallOmni\n3 = EnemyOrangeIdle and InactiveEnemy\nc = EnemyOmniIdle\n4 = DoorOrange and InactiveDoor\nd = DoorOmni\n5 = SwitchOrange and InactiveSwitch\ne = SwitchOmni\n6 = Pit and TrapdoorOrange and InactiveTrapdoor\nf = Pit and TrapdoorOmni\n* = Pit\n\n(main game objects)\nFloor = Floor1 or Floor2\nPlayer = PlayerOrange or PlayerBlue or PlayerTrans1 or PlayerTrans2 or PlayerTrans3\nGoal = GoalFr1 or GoalFr2 or GoalFr3 or GoalFr4\n\n(PU game objects)\nMonoCrate = CrateOrange or CrateBlue\nCrate = MonoCrate or CrateOmni\nMonoBall = BallOrange or BallBlue\nBall = MonoBall or BallOmni\nMonoPlatform = PlatformOrange or PlatformBlue\nPlatform = MonoPlatform or PlatformOmni\nMonoDoor = DoorOrange or DoorBlue\nDoor = DoorOmni or MonoDoor\nMonoDoorOpen = DoorOpenOrange or DoorOpenBlue\nDoorOpen = DoorOpenOmni or MonoDoorOpen\nMonoSwitch = SwitchOrange or SwitchBlue\nSwitch = SwitchOmni or MonoSwitch\nMonoTrapdoor = TrapdoorOrange or TrapdoorBlue\nTrapdoor = MonoTrapdoor or TrapdoorOmni\n\nPushable = Ball or Crate\nInactivePushable = InactiveBall or InactiveCrate\nPushableOmni = BallOmni or CrateOmni\n\nEnemyOrange = EnemyOrangeIdle or EnemyOrangeActive\nEnemyBlue = EnemyBlueIdle or EnemyBlueActive\nEnemyOmni = EnemyOmniIdle or EnemyOmniActive\nMonoEnemy = EnemyOrange or EnemyBlue\nEnemy = MonoEnemy or EnemyOmni\nMonoEnemyActive = EnemyBlueActive or EnemyOrangeActive\nEnemyActive = MonoEnemyActive or EnemyOmniActive\n\n(general obstacles)\nObstacle = Wall or Player or Crate or Ball or Enemy or Door\n\n(inactive obstacles)\nInactiveObstacle = InactiveCrate or InactiveBall or InactiveEnemy or InactiveDoor\n\n(obstacles for inactive objects)\nObstacleForInactive = InactiveObstacle or Wall or CrateOmni or BallOmni or EnemyOmni\n\n(obstacles for active enemy)\nObstacleForMonoEnemy = Wall or Enemy or Door\n\n(obstacles for omni enemy)\nObstacleForOmniEnemy = ObstacleForMonoEnemy or InactiveEnemy or InactiveDoor\n\n(Have 4 different Pitfillers, so the correct platform is built)\nPitFillerOrange = CrateOrange or BallOrange\nPitFillerBlue = CrateBlue or BallBlue\nPitFillerOmni = CrateOmni or BallOmni\nPitFillerInactive = InactiveCrate or InactiveBall\n\n(Fillings)\nFilling = Platform or Trapdoor\nInactiveFilling = InactivePlatform or InactiveTrapdoor or PlatformOmni or TrapdoorOmni\n\n(Weights for doors)\nWeight = Player or Crate or Ball or Enemy\nInactiveWeight = InactiveCrate or InactiveBall or InactiveEnemy or CrateOmni or BallOmni or EnemyOmni\n\n(Trapdoor triggers)\nTrigger = Player or Enemy\nInactiveTrigger = InactiveEnemy or EnemyOmni\nOmniTrigger = Trigger or InactiveTrigger\n\n(Temporary objects, eg buffers, flags, ...)\nTempAnimTurn = Init or Buffer or EnemyTurn or Animate or PlayerCrosshair\nTempInputTurn = PlayerShadow\n\n=======\nSOUNDS\n=======\n\nsfx1 27102304\nsfx2 11336309\nPushable move 69429507\nsfx3 47602107\nsfx4 91878702\nTrapdoor Destroy 77067304\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFloor1, Floor2\nGoal, Pit, Switch, DoorOpen\nPlatform, Trapdoor\nInactivePlatform, InactiveTrapdoor\nTempPlatform, TempTrapdoor\nInactiveTrapdoorTriggered\nTempTrapdoorTriggered\nTrapdoorTriggered\nPlayer, Wall, Crate, Ball, Enemy, Door\nInactiveSwitch, InactiveDoorOpen\nTempSwitch, TempDoorOpen\nInactiveCrate, InactiveBall, InactiveEnemy, InactiveDoor\nTempCrate, TempBall, TempEnemy, TempDoor\n\n(Some flags. Just to be sure, might as well use a seperate layer for each)\nAnimate\nBuffer\nInit\nEnemyTurn\nPlayerShadow\nOrangeToBlue, BlueToOrange\nJumpNow\nPlayerCrosshair\n\n(wall connector sprites. Unfortunately, each one needs its own layer)\nWallConnectorN\nWallConnectorE\nWallConnectorS\nWallConnectorW\nWallConnectorNE\nWallConnectorNW\nWallConnectorSE\nWallConnectorSW\n\n(DEATH)\nBlood\n\n======\nRULES \n======\n\n(INIT TURN)\n(Rules in this section are only run once on level start)\n\n(init floor)\n[Init][Player] -> [Init][Player Floor1]\n[Floor1|no Floor] -> [Floor1|Floor2]\n+[Floor2|no Floor] -> [Floor2|Floor1]\n\n(init walls)\nright [Init][Wall|Wall] -> [Init][Wall WallConnectorE|Wall WallConnectorW]\ndown [Init][Wall|Wall] -> [Init][Wall WallConnectorS|Wall WallConnectorN]\n[Init][WallConnectorN WallConnectorE] -> [Init][WallConnectorN WallConnectorE WallConnectorNE]\n[Init][WallConnectorN WallConnectorW] -> [Init][WallConnectorN WallConnectorW WallConnectorNW]\n[Init][WallConnectorS WallConnectorE] -> [Init][WallConnectorS WallConnectorE WallConnectorSE]\n[Init][WallConnectorS WallConnectorW] -> [Init][WallConnectorS WallConnectorW WallConnectorSW]\n\n\n(UNIVERSE HOPPING)\n\n[PlayerTrans3 OrangeToBlue] -> [PlayerBlue]\n[PlayerTrans2 OrangeToBlue JumpNow] -> [PlayerTrans3 OrangeToBlue Animate] again\n[PlayerTrans2 OrangeToBlue no JumpNow] -> [PlayerTrans2 OrangeToBlue JumpNow Animate] again\n[PlayerTrans1 OrangeToBlue] -> [PlayerTrans2 OrangeToBlue Animate] again\n[action PlayerOrange no InactiveObstacle no Pit] -> [PlayerTrans1 OrangeToBlue Animate] again sfx2\n\n[PlayerTrans1 BlueToOrange] -> [PlayerOrange]\n[PlayerTrans2 BlueToOrange JumpNow] -> [PlayerTrans1 BlueToOrange Animate] again\n[PlayerTrans2 BlueToOrange no JumpNow] -> [PlayerTrans2 BlueToOrange JumpNow Animate] again\n[PlayerTrans3 BlueToOrange] -> [PlayerTrans2 BlueToOrange Animate] again\n[action PlayerBlue no InactiveObstacle no Pit] -> [PlayerTrans3 BlueToOrange Animate] again sfx2\n\n[action Player] -> sfx1\n\n\n(PARALLEL UNIVERSE OBJECTS)\n(lots of very similiar code, but no way to avoid that I guess)\n\n(buffer inactive objects)\n[JumpNow][InactiveCrate] -> [JumpNow][TempCrate]\n[JumpNow][InactiveBall] -> [JumpNow][TempBall]\n[JumpNow][InactivePlatform] -> [JumpNow][TempPlatform]\n[JumpNow][InactiveDoor] -> [JumpNow][TempDoor]\n[JumpNow][InactiveDoorOpen] -> [JumpNow][TempDoorOpen]\n[JumpNow][InactiveSwitch] -> [JumpNow][TempSwitch]\n[JumpNow][InactiveTrapdoor] -> [JumpNow][TempTrapdoor]\n[JumpNow][InactiveTrapdoorTriggered] -> [JumpNow][TempTrapdoorTriggered]\n[JumpNow][InactiveEnemy] -> [JumpNow][TempEnemy]\n\n(toggle active objects)\n[JumpNow][MonoCrate] -> [JumpNow][InactiveCrate]\n[JumpNow][MonoBall] -> [JumpNow][InactiveBall]\n[JumpNow][MonoPlatform] -> [JumpNow][InactivePlatform]\n[JumpNow][MonoDoor] -> [JumpNow][InactiveDoor]\n[JumpNow][MonoDoorOpen] -> [JumpNow][InactiveDoorOpen]\n[JumpNow][MonoSwitch] -> [JumpNow][InactiveSwitch]\n[JumpNow][MonoTrapdoor] -> [JumpNow][InactiveTrapdoor]\n[JumpNow][TrapdoorTriggered] -> [JumpNow][InactiveTrapdoorTriggered]\n[JumpNow][MonoEnemy] -> [JumpNow][InactiveEnemy]\n\n(\"load\" inactive objects)\n[TempCrate][OrangeToBlue] -> [CrateBlue][OrangeToBlue]\n[TempCrate][BlueToOrange] -> [CrateOrange][BlueToOrange]\n\n[TempBall][OrangeToBlue] -> [BallBlue][OrangeToBlue]\n[TempBall][BlueToOrange] -> [BallOrange][BlueToOrange]\n\n[TempPlatform][OrangeToBlue] -> [PlatformBlue][OrangeToBlue]\n[TempPlatform][BlueToOrange] -> [PlatformOrange][BlueToOrange]\n\n[TempDoor][OrangeToBlue] -> [DoorBlue][OrangeToBlue]\n[TempDoor][BlueToOrange] -> [DoorOrange][BlueToOrange]\n\n[TempDoorOpen][OrangeToBlue] -> [DoorOpenBlue][OrangeToBlue]\n[TempDoorOpen][BlueToOrange] -> [DoorOpenOrange][BlueToOrange]\n\n[TempSwitch][OrangeToBlue] -> [SwitchBlue][OrangeToBlue]\n[TempSwitch][BlueToOrange] -> [SwitchOrange][BlueToOrange]\n\n[TempTrapdoor][OrangeToBlue] -> [TrapdoorBlue][OrangeToBlue]\n[TempTrapdoor][BlueToOrange] -> [TrapdoorOrange][BlueToOrange]\n\n[TempTrapdoorTriggered] -> [TrapdoorTriggered]\n\n[TempEnemy][OrangeToBlue] -> [EnemyBlueIdle][OrangeToBlue]\n[TempEnemy][BlueToOrange] -> [EnemyOrangeIdle][BlueToOrange]\n\n\n(ENEMY TURN - Kinda nasty)\n\n(Vertical preference, of course - DROD rules!)\nvertical [stationary EnemyActive|...|Player] -> [> EnemyActive|...|Player]\nvertical [stationary EnemyActive|...|PlayerCrosshair] -> [> EnemyActive|...|PlayerCrosshair]\n\n(Do some basic checks if the move is possible)\n[> EnemyActive|ObstacleForMonoEnemy] -> [EnemyActive|ObstacleForMonoEnemy]\n[> EnemyActive|Pushable|Obstacle] -> [EnemyActive|Pushable|Obstacle]\n[> EnemyActive|Pit no Filling] -> [EnemyActive|Pit]\n\n(of course, an omni pushable can't be pushed if the inactive universe blocks it)\n[> EnemyActive|PushableOmni|ObstacleForInactive] -> [EnemyActive|PushableOmni|ObstacleForInactive]\n\n(Special attention to an omni enemy)\n[> EnemyOmniActive|ObstacleForOmniEnemy] -> [EnemyOmniActive|ObstacleForOmniEnemy]\n[> EnemyOmniActive|InactivePushable|ObstacleForInactive] -> [EnemyOmniActive|InactivePushable|ObstacleForInactive]\n[> EnemyOmniActive|Pit no InactiveFilling] -> [EnemyOmniActive|Pit]\n\n(Don't think this is possible without some code duplication)\nhorizontal [stationary EnemyActive|...|Player] -> [> EnemyActive|...|Player]\nhorizontal [stationary EnemyActive|...|PlayerCrosshair] -> [> EnemyActive|...|PlayerCrosshair]\n\n[> EnemyActive|ObstacleForMonoEnemy] -> [EnemyActive|ObstacleForMonoEnemy]\n[> EnemyActive|Pushable|Obstacle] -> [EnemyActive|Pushable|Obstacle]\n[> EnemyActive|Pit no Filling] -> [EnemyActive|Pit]\n\n[> EnemyActive|PushableOmni|ObstacleForInactive] -> [EnemyActive|PushableOmni|ObstacleForInactive]\n\n[> EnemyOmniActive|ObstacleForOmniEnemy] -> [EnemyOmniActive|ObstacleForOmniEnemy]\n[> EnemyOmniActive|InactivePushable|ObstacleForInactive] -> [EnemyOmniActive|InactivePushable|ObstacleForInactive]\n[> EnemyOmniActive|Pit no InactiveFilling] -> [EnemyOmniActive|Pit]\n\n(Move balls - special attention to \"double balls\")\n(do this check first so you might save the player from an unfair death)\n[> EnemyOmniActive|Ball InactiveBall] -> [EnemyOmniActive|> Ball > InactiveBall]\n[> EnemyActive|Ball] -> [EnemyActive|> Ball]\n[> EnemyOmniActive|InactiveBall] -> [EnemyOmniActive|> InactiveBall]\n\n(if able to move into the player, do so)\n[> EnemyActive|Player] -> [|Blood] sfx4\n\n(Move crates)\n[> EnemyActive|Crate] -> [> EnemyActive|> Crate]\n[> EnemyOmniActive|InactiveCrate] -> [> EnemyOmniActive|> InactiveCrate]\n\n\n(ANIMATION TURN)\n\n(Goal animation)\n[Animate][GoalFr4] -> [Animate][GoalFr1 Buffer]\n[Animate][GoalFr3] -> [Animate][GoalFr4]\n[Animate][GoalFr2] -> [Animate][GoalFr3]\n[Animate][GoalFr1 no Buffer] -> [Animate][GoalFr2]\n\n(Turn active monsters back into idle ones)\n[EnemyOrangeActive] -> [EnemyOrangeIdle]\n[EnemyBlueActive] -> [EnemyBlueIdle]\n[EnemyOmniActive] -> [EnemyOmniIdle]\n\n(Death animation)\n[Blood Buffer|] -> [Blood Buffer|Blood]\n\n(kill all temporary objects used by the Anim Turn)\n[TempAnimTurn] -> []\n\n(mark blood tiles)\n[Blood] -> [Blood Buffer] again\n\n\n(PLAYER TURN)\n\n(init player Shadow)\n[Player] -> [Player PlayerShadow]\n\n(don't move into pits)\n[> Player|Pit no Filling] -> [Player|Pit]\n\n(push stuff)\n[> Player|Crate] -> [> Player|> Crate]\n[> CrateOmni|InactiveObstacle] -> [CrateOmni|InactiveObstacle]\n\n[> Player|MonoBall|no Obstacle] -> [Player Animate EnemyTurn|> MonoBall|] again\n[> Player|BallOmni|no Obstacle no InactiveObstacle] -> [Player Animate EnemyTurn|> BallOmni|] again\n\n(move balls)\n[> BallOmni|InactiveObstacle] -> [BallOmni|InactiveObstacle]\n+[> Ball|no Obstacle] -> [|> Ball] sfx3\n+[> MonoBall Pit no Filling] -> [MonoBall Pit]\n+[> BallOmni Pit no Filling no InactiveFilling] -> [BallOmni Pit]\n\n(inactive ones, too)\n[> InactiveBall|ObstacleForInactive] -> [InactiveBall|ObstacleForInactive]\n+[> InactiveBall|no ObstacleForInactive] -> [|> InactiveBall]\n+[> InactiveBall Pit no InactiveFilling] -> [InactiveBall Pit]\n\n(LATE TURN)\n\n(is a trapdoor triggered?)\nlate [MonoTrapdoor Trigger] -> [MonoTrapdoor Trigger TrapdoorTriggered]\nlate [InactiveTrapdoor InactiveTrigger] -> [InactiveTrapdoor InactiveTrigger InactiveTrapdoorTriggered]\nlate [TrapdoorOmni OmniTrigger] -> [TrapdoorOmni OmniTrigger TrapdoorTriggered]\n\n(make triggered trapdoors fall if there's no more weight on top of them)\nlate [MonoTrapdoor TrapdoorTriggered no Weight] -> []\nlate [InactiveTrapdoor InactiveTrapdoorTriggered no InactiveWeight] -> []\nlate [TrapdoorOmni TrapdoorTriggered no Weight no InactiveWeight] -> []\n\n(if something is on top of a pit that can fill it, build a platform)\nlate [Pit no Filling PitFillerOrange] -> [Pit PlatformOrange]\nlate [Pit no Filling PitFillerBlue] -> [Pit PlatformBlue]\nlate [Pit no Filling no InactiveFilling PitFillerOmni] -> [Pit PlatformOmni]\nlate [Pit no InactiveFilling PitFillerInactive] -> [Pit InactivePlatform]\n\n(check door states)\n(start by pretending the doors ar open)\nlate [DoorOrange] -> [DoorOpenOrange]\nlate [DoorBlue] -> [DoorOpenBlue]\nlate [DoorOmni] -> [DoorOpenOmni]\nlate [InactiveDoor] -> [InactiveDoorOpen]\n\n(if there's nothing on top of the door and there's a switch without a weight, close the door)\n(again, this requires a lot of similiar code, but I don't know how to improve that)\nlate [DoorOpenOrange no Obstacle][MonoSwitch no Weight] -> [DoorOrange][MonoSwitch]\nlate [DoorOpenBlue no Obstacle][MonoSwitch no Weight] -> [DoorBlue][MonoSwitch]\nlate [DoorOpenOmni no Obstacle][MonoSwitch no Weight] -> [DoorOmni][MonoSwitch]\nlate [InactiveDoorOpen no ObstacleForInactive][InactiveSwitch no InactiveWeight] -> [InactiveDoor][InactiveSwitch]\n\n(an omni door additionaly needs inactive switches to be held down)\nlate [DoorOpenOmni no Obstacle][InactiveSwitch no InactiveWeight] -> [DoorOmni][InactiveSwitch]\n\n(note that omni switches can be held down in either dimension)\nlate [DoorOpenOrange no Obstacle][SwitchOmni no Weight no InactiveWeight] -> [DoorOrange][SwitchOmni]\nlate [DoorOpenBlue no Obstacle][SwitchOmni no Weight no InactiveWeight] -> [DoorBlue][SwitchOmni]\nlate [DoorOpenOmni no Obstacle][SwitchOmni no Weight no InactiveWeight] -> [DoorOmni][SwitchOmni]\nlate [InactiveDoorOpen no ObstacleForInactive][SwitchOmni no Weight no InactiveWeight] -> [InactiveDoor][SwitchOmni]\n\n(if the player has actually moved, it's the game's turn)\nlate [Player no PlayerShadow] -> [Player Animate EnemyTurn] again\n\n(is an enemy turn coming up? Turn idle monsters into active ones)\nlate [EnemyTurn][EnemyOrangeIdle] -> [EnemyTurn][EnemyOrangeActive]\nlate [EnemyTurn][EnemyBlueIdle] -> [EnemyTurn][EnemyBlueActive]\nlate [EnemyTurn][EnemyOmniIdle] -> [EnemyTurn][EnemyOmniActive]\n\n(also do that crosshair thing)\nlate [EnemyTurn][Player|...|] -> [EnemyTurn][Player|...|PlayerCrosshair]\n\n(kill all temporary objects used by the Player Turn)\nlate [TempInputTurn] -> []\n\n\n==============\nWINCONDITIONS\n==============\n\nsome Player on Goal\n\n======= \nLEVELS\n=======\n\n\nmessage Have you ever wondered ...\nmessage ... if you weren't there ...\nmessage ... would the universe really care?\n\n\nmessage I - Nothing New Under the Sun\n\n#####****###\n#@..#*####c#\n#.a.###d##.#\n#.####d!d#.#\n#*#..##d##.#\n#.#.b#.e.#.#\n#.f..#.e.#.#\n####.#...#.#\n**#..##f##.#\n###..*..##.#\n#.a..#..##.#\n#....#####.#\n######***###\n\n\nmessage II - Universe Hopper\n\n########*\n#..1.1.##\n#..1.1.!#\n#..1.1.##\n#.#######\n#.#*****#\n#.#*1*1*#\n#.#**1**#\n#.#*1*1*#\n#.#*****#\n#.#######\n#*.@.1..#\n#########\n\n\nmessage III - The Best of Both Worlds\n\n****#########****\n#####.......#****\n#...#.#.#.#.#####\n#.1.........*.*!#\n#####.#.#.#.#####\n#.b............@#\n#...#.#.#.#.#####\n#####.......#****\n****#########****\n\n\nmessage IV - Two Times Two\n\n*##########\n##...*#.*!#\n#.11....#*#\n##..#*#.#.#\n*#.##.*...#\n*########@#\n********###\n\nmessage V - Dimensional Prelude\n\n*####****\n*#d!#****\n##*###***\n#*.*.#***\n#@.#*###*\n#....4.##\n#.1#5#a.#\n#.1.....#\n#..######\n####*****\n\n\nmessage VI - Dimensional Gateways\n\n******#####******\n******#...#******\n#######.5.#######\n#...#...@...#...#\n#!.*d.1.e.a.4.1.#\n#...#.......#...#\n#######.5.#######\n******#...#******\n******#####******\n\n\nmessage VII - Two Times Four\n\n****###******\n**###.#######\n###..1..#eee#\n#!d@1.1..ee##\n###..1..#eee#\n**###.#######\n****###******\n\n\nmessage VIII - Game of Marbles\n\n#########**\n#.......#**\n#.2...2.#**\n#.@.....###\n#...5...d!#\n#.b.....###\n#.2...2.#**\n#.......#**\n#########**\n\n\nmessage IX - Fixing a Hole\n\n#######*********\n#..**!#*********\n#..####*********\n##6##########***\n##..........###*\n*#.##d##d##d#.##\n*#.##.##.##....#\n*#@..6..6...2.##\n*#.##.##.##...#*\n*#d##d##d##...#*\n*#............#*\n*####.1.b.....##\n*#**5..........#\n*###############\n\n\nmessage X - Half Time\n\n*****###*******\n*#####*#*******\n*#!..#*###*****\n*#.#d#.a.#*****\n*#.d5...5#*****\n####.....#####*\n#**...5..6...#*\n###a.....#...#*\n**#.5...5#...#*\n**####6###...#*\n*****#....2.2##\n*****#.....2..#\n*****#....2.b.#\n*****######..@#\n**********#####\n\n\nmessage XI - Nemesis\n\n#########******\n#.......#******\n#.#####.#***###\n#.#c#@#.#***#c#\n#.#a#.#.#####d#\n#.#*....b..f.e#\n#.#######b###.#\n###*#..3#f#*#.#\n****#.###.###.#\n****#....*...*#\n****#########d#\n************#!#\n************###\n\n\nmessage XII - Every Breath You Take\n\n****######***\n****#....#***\n****#.##.#***\n****#....#***\n****##c######\n****#*@*****#\n****#*.....*#\n****#*.b...*#\n****#*.....*#\n****#*...b.*#\n****#*.....*#\n****#*****.*#\n##########.##\n#!*b*b*b....#\n########.##.#\n*******#....#\n*******######\n\n\nmessage XIII - Stalking Across Universes\n\n**#########***\n**#.......#***\n**#.#...#.#***\n###.......####\n#c@...1...b*!#\n###.......####\n**#.#...#.#***\n**#.......#***\n**#########***\n\n\nmessage XIV - A Little Help From My Friends\n\n********######\n#########....#\n#.........##3#\n#.#####.b.####\n#.#.####..#***\n#.#..*!#.##***\n#.##.###..#***\n#..#......#***\n##.#.######***\n*#@#.#********\n*#####********\n\n\nmessage XV - Hope Spot\n\n***#####*###\n***#...#*#!#\n***#.1.#*#*#\n####.#####.#\n#.c#.e.2d..#\n#.##.#.###.#\n#.#@...#*#.#\n#.##.#.###.#\n#....#.....#\n############\n\n\nmessage XVI - Hope for the Hopeless\n\n***######*****\n***#*##*#####*\n***#....#*#*##\n***#.**.....*#\n***#.**.*.*.##\n####....*...##\n#!*b.e1..4.@c#\n####....*...##\n***#.**.*.*.##\n***#.**.....*#\n***#....#*#*##\n***#*##*#####*\n***######*****\n\n\nmessage XVII - Blockade\n\n**###\n**#!#\n###*#\n#.#.#\n#.b.#\n#.b.#\n#3#@#\n#####\n\n\n\nmessage XVIII - Pas de Trois\n\n###########\n#.........#\n#.........#\n#....3....#\n#.........#\n#..e...e..#\n#.........#\n#.........#\n#####@#####\n****#d#****\n****#!#****\n****###****\n\n\nmessage XIX - Orange Blues\n\n********###**\n********#!###\n#########6.3#\n#...c...d.###\n#.......#f#**\n#..#.#..#.#**\n#..#5#..###**\n#..###..#****\n#.......#****\n#.1...1.#****\n#.##@##.#****\n#.......#****\n#########****\n\n\nmessage XX - The Last Waltz\n\n**********###****\n**#########3#****\n**#c.##...#d#****\n**##.##.#2#.#****\n**#..#......#****\n###.##.#..#.#****\n#...*.......#****\n#.#a##......#****\n#.#6##.#..1.#****\n#.#6#.......#****\n#...#e#b##b####**\n###f#f#d##d##.#**\n**#@#e.*..*.#.###\n**#########..bb.#\n**********#!#.#f#\n**********###..3#\n************#####\n\n\nmessage Congratulations! Thanks for playing, hope you enjoyed.\n\nmessage Encore\nmessage [Might be a bit too much trial-and-error for an \"official\" level]\n\n###*###**********\n#c#*#e#*########*\n#d###a#*#......#*\n#...#@###....#.#*\n#.#b#........d3#*\n###.#.###..a.####\n###.#.#*#....dbc#\n#!.*f*###....####\n###f#..##....#***\n**#.##f#######***\n**####.#*********\n***#cd.#*********\n***#####*********\n",[3,0,3,3,2,3,3,3,1,1,1,0,1,2,1,2,1,1,4,3,0,3,3,2,3,3,3,1,1,1,1,0,1,1,2,3,3,3,3,3,3,4],"background floor1 pit:0,background floor2 pit:1,background floor1 wall wallconnectore wallconnectors wallconnectorse:2,background floor2 wall wallconnectorn wallconnectors:3,background floor1 wall wallconnectore wallconnectorn wallconnectorne:4,1,0,1,0,background floor2 wall wallconnectore wallconnectorw:5,background floor1 goalfr3:6,5,0,\n1,0,background floor2 wall wallconnectore wallconnectors wallconnectorse:7,background floor1 wall wallconnectorn wallconnectornw wallconnectorw:8,background dooromni floor2:9,background floor1 wall wallconnectors wallconnectorsw wallconnectorw:10,background floor2 wall wallconnectore wallconnectorn wallconnectorne:11,0,1,background floor1 wall wallconnectore wallconnectorw:12,background floor2:13,background floor1:14,13,\n12,1,2,background floor2 wall wallconnectorn wallconnectornw wallconnectorw:15,14,13,14,background floor2 wall wallconnectors wallconnectorsw wallconnectorw:16,4,5,14,13,background crateorange floor1:17,\nbackground crateorange floor2 inactivecrate:18,14,5,10,11,14,13,background crateorange floor1 inactivecrate:19,7,8,1,12,18,\n14,13,12,1,0,background floor2 wall wallconnectore wallconnectors wallconnectorse wallconnectorsw wallconnectorw:20,background floor1 wall wallconnectorn:21,13,background floor1 wall wallconnectors:22,background floor2 wall wallconnectore wallconnectorn wallconnectorne wallconnectornw wallconnectorw:23,0,1,12,\nbackground floor2 switchomni:24,background floor1 playerorange switchomni:25,24,12,1,0,5,background floor1 switchomni:26,background floor2 inactivecrate switchomni:27,26,5,0,1,\n12,24,background floor1 wall wallconnectore:28,24,12,1,0,16,background floor1 wall wallconnectorn wallconnectors:29,background floor2 wall wallconnectorn wallconnectornw wallconnectors wallconnectorsw wallconnectorw:30,29,15,0,\n",16,"1627779079985.3457"] + ["title ParaLands\nauthor Lukas\nrun_rules_on_level_start\nagain_interval 0.05\nnorepeat_action\n\n========\nOBJECTS\n========\n\n\nBackground\ndarkgray\n\nFloor1\ndarkgray\n\nFloor2\n#444444\n\nWall\ngray #444444 #bbbbbb\n.222.\n20001\n20001\n20001\n.111.\n\nWallConnectorN\ngray #444444 #bbbbbb\n20001\n.....\n.....\n.....\n.....\n\nWallConnectorS\ngray #444444 #bbbbbb\n.....\n.....\n.....\n.....\n20001\n\nWallConnectorE\ngray #444444 #bbbbbb\n....2\n....0\n....0\n....0\n....1\n\nWallConnectorW\ngray #444444 #bbbbbb\n2....\n0....\n0....\n0....\n1....\n\nWallConnectorNE\ngray\n....0\n.....\n.....\n.....\n.....\n\nWallConnectorNW\ngray\n0....\n.....\n.....\n.....\n.....\n\nWallConnectorSE\ngray\n.....\n.....\n.....\n.....\n....0\n\nWallConnectorSW\ngray\n.....\n.....\n.....\n.....\n0....\n\nPit\nblack\n\nPlayerOrange\norange blue\n.000.\n.101.\n00000\n.000.\n.0.0.\n\nPlayerBlue\nblue orange\n.000.\n.101.\n00000\n.000.\n.0.0.\n\nPlayerTrans1\norange blue black\n.....\n.000.\n.101.\n22222\n.222.\n\nPlayerTrans2\nblack\n.....\n.....\n.000.\n00000\n.000.\n\nPlayerTrans3\nblue orange black\n.....\n.000.\n.101.\n22222\n.222.\n\nCrateOrange\norange #ffbb88 #bb6600\n11112\n10002\n10002\n10002\n22222\n\nCrateBlue\nblue #8888ff #0000bb\n11112\n10002\n10002\n10002\n22222\n\nCrateOmni\norange #ffbb88 #bb6600 blue #8888ff #0000bb\n11145\n10035\n10035\n10335\n22555\n\nBallOrange\norange #ffbb88 #bb6600\n.002.\n01002\n00002\n20002\n.222.\n\nBallBlue\nblue #8888ff #0000bb\n.002.\n01002\n00002\n20002\n.222.\n\nBallOmni\norange #ffbb88 #bb6600 blue #0000bb\n.004.\n01034\n00034\n20334\n.244.\n\nDoorOrange\norange #bb6600\n.000.\n00000\n10001\n11111\n.111.\n\nDoorOpenOrange\norange\n.....\n.....\n.000.\n00000\n.000.\n\nDoorBlue\nblue #0000bb\n.000.\n00000\n10001\n11111\n.111.\n\nDoorOpenBlue\nblue\n.....\n.....\n.000.\n00000\n.000.\n\nDoorOmni\norange #bb6600 blue #0000bb\n.002.\n00022\n10223\n11333\n.133.\n\nDoorOpenOmni\norange blue\n.....\n.....\n.001.\n00011\n.011.\n\nSwitchOrange\norange\n.....\n..0..\n.000.\n..0..\n.....\n\nSwitchBlue\nblue\n.....\n..0..\n.000.\n..0..\n.....\n\nSwitchOmni\norange blue\n.....\n..0..\n.001.\n..1..\n.....\n\nTrapdoorOrange\norange #ffbb88\n.000.\n01010\n00000\n01010\n.000.\n\nTrapdoorBlue\nblue #8888ff\n.000.\n01010\n00000\n01010\n.000.\n\nTrapdoorOmni\norange #ffbb88 blue #8888ff\n.002.\n01032\n00022\n01232\n.022.\n\nEnemyOrangeIdle\norange #ffbb88\n.....\n..0..\n.101.\n.0.0.\n.0.0.\n\nEnemyOrangeActive\norange #ffbb88\n.....\n.....\n..0..\n.101.\n.0.0.\n\nEnemyBlueIdle\nblue #8888ff\n.....\n..0..\n.101.\n.0.0.\n.0.0.\n\nEnemyBlueActive\nblue #8888ff\n.....\n.....\n..0..\n.101.\n.0.0.\n\nEnemyOmniIdle\norange #ffbb88 blue #8888ff\n.....\n..0..\n.123.\n.0.2.\n.0.2.\n\nEnemyOmniActive\norange #ffbb88 blue #8888ff\n.....\n.....\n..0..\n.123.\n.0.2.\n\nPlatformOrange\n#bb6600\n.....\n.000.\n.000.\n.000.\n.....\n\nPlatformBlue\n#0000bb\n.....\n.000.\n.000.\n.000.\n.....\n\nPlatformOmni\n#bb6600 #0000bb\n.....\n.001.\n.001.\n.011.\n.....\n\nGoalFr1\ngray lightgray\n.000.\n00111\n01001\n00011\n.111.\n\nGoalFr2\ngray lightgray\n.111.\n01011\n01001\n00101\n.000.\n\nGoalFr3\ngray lightgray \n.111.\n11000\n10010\n11100\n.000.\n\nGoalFr4\ngray lightgray\n.000.\n10100\n10010\n11010\n.111.\n\nBlood\nred\n\nInactiveCrate\nwhite\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\nInactiveBall\nwhite\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nInactivePlatform\nwhite\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nInactiveDoor\nwhite\n.0.0.\n0...0\n.0.0.\n.....\n.....\n\nInactiveDoorOpen\nwhite\n.....\n.....\n.0.0.\n0...0\n.0.0.\n\nInactiveSwitch\ntransparent\n\nInactiveTrapdoor\nwhite\n0...0\n.....\n.....\n.....\n0...0\n\nInactiveEnemy\nwhite\n.....\n..0..\n.0.0.\n.....\n.0.0.\n\nTempCrate\ntransparent\n\nTempBall\ntransparent\n\nTempPlatform\ntransparent\n\ntempDoor\ntransparent\n\ntempDoorOpen\ntransparent\n\ntempSwitch\ntransparent\n\nTempTrapdoor\ntransparent\n\nTempEnemy\ntransparent\n\nInit\ntransparent\n\nEnemyTurn\ntransparent\n\nBuffer\ntransparent\n\nAnimate\ntransparent\n\nPlayerShadow\ntransparent\n\nOrangeToBlue\ntransparent\n\nBlueToOrange\ntransparent\n\nJumpNow\ntransparent\n\nPlayerCrosshair\ntransparent\n\nTrapdoorTriggered\ntransparent\n\nInactiveTrapdoorTriggered\ntransparent\n\nTempTrapdoorTriggered\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n@ = PlayerOrange and Init\n! = GoalFr1\n1 = CrateOrange and InactiveCrate\na = CrateOmni\n2 = BallOrange and InactiveBall\nb = BallOmni\n3 = EnemyOrangeIdle and InactiveEnemy\nc = EnemyOmniIdle\n4 = DoorOrange and InactiveDoor\nd = DoorOmni\n5 = SwitchOrange and InactiveSwitch\ne = SwitchOmni\n6 = Pit and TrapdoorOrange and InactiveTrapdoor\nf = Pit and TrapdoorOmni\n* = Pit\n\n(main game objects)\nFloor = Floor1 or Floor2\nPlayer = PlayerOrange or PlayerBlue or PlayerTrans1 or PlayerTrans2 or PlayerTrans3\nGoal = GoalFr1 or GoalFr2 or GoalFr3 or GoalFr4\n\n(PU game objects)\nMonoCrate = CrateOrange or CrateBlue\nCrate = MonoCrate or CrateOmni\nMonoBall = BallOrange or BallBlue\nBall = MonoBall or BallOmni\nMonoPlatform = PlatformOrange or PlatformBlue\nPlatform = MonoPlatform or PlatformOmni\nMonoDoor = DoorOrange or DoorBlue\nDoor = DoorOmni or MonoDoor\nMonoDoorOpen = DoorOpenOrange or DoorOpenBlue\nDoorOpen = DoorOpenOmni or MonoDoorOpen\nMonoSwitch = SwitchOrange or SwitchBlue\nSwitch = SwitchOmni or MonoSwitch\nMonoTrapdoor = TrapdoorOrange or TrapdoorBlue\nTrapdoor = MonoTrapdoor or TrapdoorOmni\n\nPushable = Ball or Crate\nInactivePushable = InactiveBall or InactiveCrate\nPushableOmni = BallOmni or CrateOmni\n\nEnemyOrange = EnemyOrangeIdle or EnemyOrangeActive\nEnemyBlue = EnemyBlueIdle or EnemyBlueActive\nEnemyOmni = EnemyOmniIdle or EnemyOmniActive\nMonoEnemy = EnemyOrange or EnemyBlue\nEnemy = MonoEnemy or EnemyOmni\nMonoEnemyActive = EnemyBlueActive or EnemyOrangeActive\nEnemyActive = MonoEnemyActive or EnemyOmniActive\n\n(general obstacles)\nObstacle = Wall or Player or Crate or Ball or Enemy or Door\n\n(inactive obstacles)\nInactiveObstacle = InactiveCrate or InactiveBall or InactiveEnemy or InactiveDoor\n\n(obstacles for inactive objects)\nObstacleForInactive = InactiveObstacle or Wall or CrateOmni or BallOmni or EnemyOmni\n\n(obstacles for active enemy)\nObstacleForMonoEnemy = Wall or Enemy or Door\n\n(obstacles for omni enemy)\nObstacleForOmniEnemy = ObstacleForMonoEnemy or InactiveEnemy or InactiveDoor\n\n(Have 4 different Pitfillers, so the correct platform is built)\nPitFillerOrange = CrateOrange or BallOrange\nPitFillerBlue = CrateBlue or BallBlue\nPitFillerOmni = CrateOmni or BallOmni\nPitFillerInactive = InactiveCrate or InactiveBall\n\n(Fillings)\nFilling = Platform or Trapdoor\nInactiveFilling = InactivePlatform or InactiveTrapdoor or PlatformOmni or TrapdoorOmni\n\n(Weights for doors)\nWeight = Player or Crate or Ball or Enemy\nInactiveWeight = InactiveCrate or InactiveBall or InactiveEnemy or CrateOmni or BallOmni or EnemyOmni\n\n(Trapdoor triggers)\nTrigger = Player or Enemy\nInactiveTrigger = InactiveEnemy or EnemyOmni\nOmniTrigger = Trigger or InactiveTrigger\n\n(Temporary objects, eg buffers, flags, ...)\nTempAnimTurn = Init or Buffer or EnemyTurn or Animate or PlayerCrosshair\nTempInputTurn = PlayerShadow\n\n=======\nSOUNDS\n=======\n\nsfx1 27102304\nsfx2 11336309\nPushable move 69429507\nsfx3 47602107\nsfx4 91878702\nTrapdoor Destroy 77067304\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFloor1, Floor2\nGoal, Pit, Switch, DoorOpen\nPlatform, Trapdoor\nInactivePlatform, InactiveTrapdoor\nTempPlatform, TempTrapdoor\nInactiveTrapdoorTriggered\nTempTrapdoorTriggered\nTrapdoorTriggered\nPlayer, Wall, Crate, Ball, Enemy, Door\nInactiveSwitch, InactiveDoorOpen\nTempSwitch, TempDoorOpen\nInactiveCrate, InactiveBall, InactiveEnemy, InactiveDoor\nTempCrate, TempBall, TempEnemy, TempDoor\n\n(Some flags. Just to be sure, might as well use a seperate layer for each)\nAnimate\nBuffer\nInit\nEnemyTurn\nPlayerShadow\nOrangeToBlue, BlueToOrange\nJumpNow\nPlayerCrosshair\n\n(wall connector sprites. Unfortunately, each one needs its own layer)\nWallConnectorN\nWallConnectorE\nWallConnectorS\nWallConnectorW\nWallConnectorNE\nWallConnectorNW\nWallConnectorSE\nWallConnectorSW\n\n(DEATH)\nBlood\n\n======\nRULES \n======\n\n(INIT TURN)\n(Rules in this section are only run once on level start)\n\n(init floor)\n[Init][Player] -> [Init][Player Floor1]\n[Floor1|no Floor] -> [Floor1|Floor2]\n+[Floor2|no Floor] -> [Floor2|Floor1]\n\n(init walls)\nright [Init][Wall|Wall] -> [Init][Wall WallConnectorE|Wall WallConnectorW]\ndown [Init][Wall|Wall] -> [Init][Wall WallConnectorS|Wall WallConnectorN]\n[Init][WallConnectorN WallConnectorE] -> [Init][WallConnectorN WallConnectorE WallConnectorNE]\n[Init][WallConnectorN WallConnectorW] -> [Init][WallConnectorN WallConnectorW WallConnectorNW]\n[Init][WallConnectorS WallConnectorE] -> [Init][WallConnectorS WallConnectorE WallConnectorSE]\n[Init][WallConnectorS WallConnectorW] -> [Init][WallConnectorS WallConnectorW WallConnectorSW]\n\n\n(UNIVERSE HOPPING)\n\n[PlayerTrans3 OrangeToBlue] -> [PlayerBlue]\n[PlayerTrans2 OrangeToBlue JumpNow] -> [PlayerTrans3 OrangeToBlue Animate] again\n[PlayerTrans2 OrangeToBlue no JumpNow] -> [PlayerTrans2 OrangeToBlue JumpNow Animate] again\n[PlayerTrans1 OrangeToBlue] -> [PlayerTrans2 OrangeToBlue Animate] again\n[action PlayerOrange no InactiveObstacle no Pit] -> [PlayerTrans1 OrangeToBlue Animate] again sfx2\n\n[PlayerTrans1 BlueToOrange] -> [PlayerOrange]\n[PlayerTrans2 BlueToOrange JumpNow] -> [PlayerTrans1 BlueToOrange Animate] again\n[PlayerTrans2 BlueToOrange no JumpNow] -> [PlayerTrans2 BlueToOrange JumpNow Animate] again\n[PlayerTrans3 BlueToOrange] -> [PlayerTrans2 BlueToOrange Animate] again\n[action PlayerBlue no InactiveObstacle no Pit] -> [PlayerTrans3 BlueToOrange Animate] again sfx2\n\n[action Player] -> sfx1\n\n\n(PARALLEL UNIVERSE OBJECTS)\n(lots of very similiar code, but no way to avoid that I guess)\n\n(buffer inactive objects)\n[JumpNow][InactiveCrate] -> [JumpNow][TempCrate]\n[JumpNow][InactiveBall] -> [JumpNow][TempBall]\n[JumpNow][InactivePlatform] -> [JumpNow][TempPlatform]\n[JumpNow][InactiveDoor] -> [JumpNow][TempDoor]\n[JumpNow][InactiveDoorOpen] -> [JumpNow][TempDoorOpen]\n[JumpNow][InactiveSwitch] -> [JumpNow][TempSwitch]\n[JumpNow][InactiveTrapdoor] -> [JumpNow][TempTrapdoor]\n[JumpNow][InactiveTrapdoorTriggered] -> [JumpNow][TempTrapdoorTriggered]\n[JumpNow][InactiveEnemy] -> [JumpNow][TempEnemy]\n\n(toggle active objects)\n[JumpNow][MonoCrate] -> [JumpNow][InactiveCrate]\n[JumpNow][MonoBall] -> [JumpNow][InactiveBall]\n[JumpNow][MonoPlatform] -> [JumpNow][InactivePlatform]\n[JumpNow][MonoDoor] -> [JumpNow][InactiveDoor]\n[JumpNow][MonoDoorOpen] -> [JumpNow][InactiveDoorOpen]\n[JumpNow][MonoSwitch] -> [JumpNow][InactiveSwitch]\n[JumpNow][MonoTrapdoor] -> [JumpNow][InactiveTrapdoor]\n[JumpNow][TrapdoorTriggered] -> [JumpNow][InactiveTrapdoorTriggered]\n[JumpNow][MonoEnemy] -> [JumpNow][InactiveEnemy]\n\n(\"load\" inactive objects)\n[TempCrate][OrangeToBlue] -> [CrateBlue][OrangeToBlue]\n[TempCrate][BlueToOrange] -> [CrateOrange][BlueToOrange]\n\n[TempBall][OrangeToBlue] -> [BallBlue][OrangeToBlue]\n[TempBall][BlueToOrange] -> [BallOrange][BlueToOrange]\n\n[TempPlatform][OrangeToBlue] -> [PlatformBlue][OrangeToBlue]\n[TempPlatform][BlueToOrange] -> [PlatformOrange][BlueToOrange]\n\n[TempDoor][OrangeToBlue] -> [DoorBlue][OrangeToBlue]\n[TempDoor][BlueToOrange] -> [DoorOrange][BlueToOrange]\n\n[TempDoorOpen][OrangeToBlue] -> [DoorOpenBlue][OrangeToBlue]\n[TempDoorOpen][BlueToOrange] -> [DoorOpenOrange][BlueToOrange]\n\n[TempSwitch][OrangeToBlue] -> [SwitchBlue][OrangeToBlue]\n[TempSwitch][BlueToOrange] -> [SwitchOrange][BlueToOrange]\n\n[TempTrapdoor][OrangeToBlue] -> [TrapdoorBlue][OrangeToBlue]\n[TempTrapdoor][BlueToOrange] -> [TrapdoorOrange][BlueToOrange]\n\n[TempTrapdoorTriggered] -> [TrapdoorTriggered]\n\n[TempEnemy][OrangeToBlue] -> [EnemyBlueIdle][OrangeToBlue]\n[TempEnemy][BlueToOrange] -> [EnemyOrangeIdle][BlueToOrange]\n\n\n(ENEMY TURN - Kinda nasty)\n\n(Vertical preference, of course - DROD rules!)\nvertical [stationary EnemyActive|...|Player] -> [> EnemyActive|...|Player]\nvertical [stationary EnemyActive|...|PlayerCrosshair] -> [> EnemyActive|...|PlayerCrosshair]\n\n(Do some basic checks if the move is possible)\n[> EnemyActive|ObstacleForMonoEnemy] -> [EnemyActive|ObstacleForMonoEnemy]\n[> EnemyActive|Pushable|Obstacle] -> [EnemyActive|Pushable|Obstacle]\n[> EnemyActive|Pit no Filling] -> [EnemyActive|Pit]\n\n(of course, an omni pushable can't be pushed if the inactive universe blocks it)\n[> EnemyActive|PushableOmni|ObstacleForInactive] -> [EnemyActive|PushableOmni|ObstacleForInactive]\n\n(Special attention to an omni enemy)\n[> EnemyOmniActive|ObstacleForOmniEnemy] -> [EnemyOmniActive|ObstacleForOmniEnemy]\n[> EnemyOmniActive|InactivePushable|ObstacleForInactive] -> [EnemyOmniActive|InactivePushable|ObstacleForInactive]\n[> EnemyOmniActive|Pit no InactiveFilling] -> [EnemyOmniActive|Pit]\n\n(Don't think this is possible without some code duplication)\nhorizontal [stationary EnemyActive|...|Player] -> [> EnemyActive|...|Player]\nhorizontal [stationary EnemyActive|...|PlayerCrosshair] -> [> EnemyActive|...|PlayerCrosshair]\n\n[> EnemyActive|ObstacleForMonoEnemy] -> [EnemyActive|ObstacleForMonoEnemy]\n[> EnemyActive|Pushable|Obstacle] -> [EnemyActive|Pushable|Obstacle]\n[> EnemyActive|Pit no Filling] -> [EnemyActive|Pit]\n\n[> EnemyActive|PushableOmni|ObstacleForInactive] -> [EnemyActive|PushableOmni|ObstacleForInactive]\n\n[> EnemyOmniActive|ObstacleForOmniEnemy] -> [EnemyOmniActive|ObstacleForOmniEnemy]\n[> EnemyOmniActive|InactivePushable|ObstacleForInactive] -> [EnemyOmniActive|InactivePushable|ObstacleForInactive]\n[> EnemyOmniActive|Pit no InactiveFilling] -> [EnemyOmniActive|Pit]\n\n(Move balls - special attention to \"double balls\")\n(do this check first so you might save the player from an unfair death)\n[> EnemyOmniActive|Ball InactiveBall] -> [EnemyOmniActive|> Ball > InactiveBall]\n[> EnemyActive|Ball] -> [EnemyActive|> Ball]\n[> EnemyOmniActive|InactiveBall] -> [EnemyOmniActive|> InactiveBall]\n\n(if able to move into the player, do so)\n[> EnemyActive|Player] -> [|Blood] sfx4\n\n(Move crates)\n[> EnemyActive|Crate] -> [> EnemyActive|> Crate]\n[> EnemyOmniActive|InactiveCrate] -> [> EnemyOmniActive|> InactiveCrate]\n\n\n(ANIMATION TURN)\n\n(Goal animation)\n[Animate][GoalFr4] -> [Animate][GoalFr1 Buffer]\n[Animate][GoalFr3] -> [Animate][GoalFr4]\n[Animate][GoalFr2] -> [Animate][GoalFr3]\n[Animate][GoalFr1 no Buffer] -> [Animate][GoalFr2]\n\n(Turn active monsters back into idle ones)\n[EnemyOrangeActive] -> [EnemyOrangeIdle]\n[EnemyBlueActive] -> [EnemyBlueIdle]\n[EnemyOmniActive] -> [EnemyOmniIdle]\n\n(Death animation)\n[Blood Buffer|] -> [Blood Buffer|Blood]\n\n(kill all temporary objects used by the Anim Turn)\n[TempAnimTurn] -> []\n\n(mark blood tiles)\n[Blood] -> [Blood Buffer] again\n\n\n(PLAYER TURN)\n\n(init player Shadow)\n[Player] -> [Player PlayerShadow]\n\n(don't move into pits)\n[> Player|Pit no Filling] -> [Player|Pit]\n\n(push stuff)\n[> Player|Crate] -> [> Player|> Crate]\n[> CrateOmni|InactiveObstacle] -> [CrateOmni|InactiveObstacle]\n\n[> Player|MonoBall|no Obstacle] -> [Player Animate EnemyTurn|> MonoBall|] again\n[> Player|BallOmni|no Obstacle no InactiveObstacle] -> [Player Animate EnemyTurn|> BallOmni|] again\n\n(move balls)\n[> BallOmni|InactiveObstacle] -> [BallOmni|InactiveObstacle]\n+[> Ball|no Obstacle] -> [|> Ball] sfx3\n+[> MonoBall Pit no Filling] -> [MonoBall Pit]\n+[> BallOmni Pit no Filling no InactiveFilling] -> [BallOmni Pit]\n\n(inactive ones, too)\n[> InactiveBall|ObstacleForInactive] -> [InactiveBall|ObstacleForInactive]\n+[> InactiveBall|no ObstacleForInactive] -> [|> InactiveBall]\n+[> InactiveBall Pit no InactiveFilling] -> [InactiveBall Pit]\n\n(LATE TURN)\n\n(is a trapdoor triggered?)\nlate [MonoTrapdoor Trigger] -> [MonoTrapdoor Trigger TrapdoorTriggered]\nlate [InactiveTrapdoor InactiveTrigger] -> [InactiveTrapdoor InactiveTrigger InactiveTrapdoorTriggered]\nlate [TrapdoorOmni OmniTrigger] -> [TrapdoorOmni OmniTrigger TrapdoorTriggered]\n\n(make triggered trapdoors fall if there's no more weight on top of them)\nlate [MonoTrapdoor TrapdoorTriggered no Weight] -> []\nlate [InactiveTrapdoor InactiveTrapdoorTriggered no InactiveWeight] -> []\nlate [TrapdoorOmni TrapdoorTriggered no Weight no InactiveWeight] -> []\n\n(if something is on top of a pit that can fill it, build a platform)\nlate [Pit no Filling PitFillerOrange] -> [Pit PlatformOrange]\nlate [Pit no Filling PitFillerBlue] -> [Pit PlatformBlue]\nlate [Pit no Filling no InactiveFilling PitFillerOmni] -> [Pit PlatformOmni]\nlate [Pit no InactiveFilling PitFillerInactive] -> [Pit InactivePlatform]\n\n(check door states)\n(start by pretending the doors ar open)\nlate [DoorOrange] -> [DoorOpenOrange]\nlate [DoorBlue] -> [DoorOpenBlue]\nlate [DoorOmni] -> [DoorOpenOmni]\nlate [InactiveDoor] -> [InactiveDoorOpen]\n\n(if there's nothing on top of the door and there's a switch without a weight, close the door)\n(again, this requires a lot of similiar code, but I don't know how to improve that)\nlate [DoorOpenOrange no Obstacle][MonoSwitch no Weight] -> [DoorOrange][MonoSwitch]\nlate [DoorOpenBlue no Obstacle][MonoSwitch no Weight] -> [DoorBlue][MonoSwitch]\nlate [DoorOpenOmni no Obstacle][MonoSwitch no Weight] -> [DoorOmni][MonoSwitch]\nlate [InactiveDoorOpen no ObstacleForInactive][InactiveSwitch no InactiveWeight] -> [InactiveDoor][InactiveSwitch]\n\n(an omni door additionaly needs inactive switches to be held down)\nlate [DoorOpenOmni no Obstacle][InactiveSwitch no InactiveWeight] -> [DoorOmni][InactiveSwitch]\n\n(note that omni switches can be held down in either dimension)\nlate [DoorOpenOrange no Obstacle][SwitchOmni no Weight no InactiveWeight] -> [DoorOrange][SwitchOmni]\nlate [DoorOpenBlue no Obstacle][SwitchOmni no Weight no InactiveWeight] -> [DoorBlue][SwitchOmni]\nlate [DoorOpenOmni no Obstacle][SwitchOmni no Weight no InactiveWeight] -> [DoorOmni][SwitchOmni]\nlate [InactiveDoorOpen no ObstacleForInactive][SwitchOmni no Weight no InactiveWeight] -> [InactiveDoor][SwitchOmni]\n\n(if the player has actually moved, it's the game's turn)\nlate [Player no PlayerShadow] -> [Player Animate EnemyTurn] again\n\n(is an enemy turn coming up? Turn idle monsters into active ones)\nlate [EnemyTurn][EnemyOrangeIdle] -> [EnemyTurn][EnemyOrangeActive]\nlate [EnemyTurn][EnemyBlueIdle] -> [EnemyTurn][EnemyBlueActive]\nlate [EnemyTurn][EnemyOmniIdle] -> [EnemyTurn][EnemyOmniActive]\n\n(also do that crosshair thing)\nlate [EnemyTurn][Player|...|] -> [EnemyTurn][Player|...|PlayerCrosshair]\n\n(kill all temporary objects used by the Player Turn)\nlate [TempInputTurn] -> []\n\n\n==============\nWINCONDITIONS\n==============\n\nsome Player on Goal\n\n======= \nLEVELS\n=======\n\n\nmessage Have you ever wondered ...\nmessage ... if you weren't there ...\nmessage ... would the universe really care?\n\n\nmessage I - Nothing New Under the Sun\n\n#####****###\n#@..#*####c#\n#.a.###d##.#\n#.####d!d#.#\n#*#..##d##.#\n#.#.b#.e.#.#\n#.f..#.e.#.#\n####.#...#.#\n**#..##f##.#\n###..*..##.#\n#.a..#..##.#\n#....#####.#\n######***###\n\n\nmessage II - Universe Hopper\n\n########*\n#..1.1.##\n#..1.1.!#\n#..1.1.##\n#.#######\n#.#*****#\n#.#*1*1*#\n#.#**1**#\n#.#*1*1*#\n#.#*****#\n#.#######\n#*.@.1..#\n#########\n\n\nmessage III - The Best of Both Worlds\n\n****#########****\n#####.......#****\n#...#.#.#.#.#####\n#.1.........*.*!#\n#####.#.#.#.#####\n#.b............@#\n#...#.#.#.#.#####\n#####.......#****\n****#########****\n\n\nmessage IV - Two Times Two\n\n*##########\n##...*#.*!#\n#.11....#*#\n##..#*#.#.#\n*#.##.*...#\n*########@#\n********###\n\nmessage V - Dimensional Prelude\n\n*####****\n*#d!#****\n##*###***\n#*.*.#***\n#@.#*###*\n#....4.##\n#.1#5#a.#\n#.1.....#\n#..######\n####*****\n\n\nmessage VI - Dimensional Gateways\n\n******#####******\n******#...#******\n#######.5.#######\n#...#...@...#...#\n#!.*d.1.e.a.4.1.#\n#...#.......#...#\n#######.5.#######\n******#...#******\n******#####******\n\n\nmessage VII - Two Times Four\n\n****###******\n**###.#######\n###..1..#eee#\n#!d@1.1..ee##\n###..1..#eee#\n**###.#######\n****###******\n\n\nmessage VIII - Game of Marbles\n\n#########**\n#.......#**\n#.2...2.#**\n#.@.....###\n#...5...d!#\n#.b.....###\n#.2...2.#**\n#.......#**\n#########**\n\n\nmessage IX - Fixing a Hole\n\n#######*********\n#..**!#*********\n#..####*********\n##6##########***\n##..........###*\n*#.##d##d##d#.##\n*#.##.##.##....#\n*#@..6..6...2.##\n*#.##.##.##...#*\n*#d##d##d##...#*\n*#............#*\n*####.1.b.....##\n*#**5..........#\n*###############\n\n\nmessage X - Half Time\n\n*****###*******\n*#####*#*******\n*#!..#*###*****\n*#.#d#.a.#*****\n*#.d5...5#*****\n####.....#####*\n#**...5..6...#*\n###a.....#...#*\n**#.5...5#...#*\n**####6###...#*\n*****#....2.2##\n*****#.....2..#\n*****#....2.b.#\n*****######..@#\n**********#####\n\n\nmessage XI - Nemesis\n\n#########******\n#.......#******\n#.#####.#***###\n#.#c#@#.#***#c#\n#.#a#.#.#####d#\n#.#*....b..f.e#\n#.#######b###.#\n###*#..3#f#*#.#\n****#.###.###.#\n****#....*...*#\n****#########d#\n************#!#\n************###\n\n\nmessage XII - Every Breath You Take\n\n****######***\n****#....#***\n****#.##.#***\n****#....#***\n****##c######\n****#*@*****#\n****#*.....*#\n****#*.b...*#\n****#*.....*#\n****#*...b.*#\n****#*.....*#\n****#*****.*#\n##########.##\n#!*b*b*b....#\n########.##.#\n*******#....#\n*******######\n\n\nmessage XIII - Stalking Across Universes\n\n**#########***\n**#.......#***\n**#.#...#.#***\n###.......####\n#c@...1...b*!#\n###.......####\n**#.#...#.#***\n**#.......#***\n**#########***\n\n\nmessage XIV - A Little Help From My Friends\n\n********######\n#########....#\n#.........##3#\n#.#####.b.####\n#.#.####..#***\n#.#..*!#.##***\n#.##.###..#***\n#..#......#***\n##.#.######***\n*#@#.#********\n*#####********\n\n\nmessage XV - Hope Spot\n\n***#####*###\n***#...#*#!#\n***#.1.#*#*#\n####.#####.#\n#.c#.e.2d..#\n#.##.#.###.#\n#.#@...#*#.#\n#.##.#.###.#\n#....#.....#\n############\n\n\nmessage XVI - Hope for the Hopeless\n\n***######*****\n***#*##*#####*\n***#....#*#*##\n***#.**.....*#\n***#.**.*.*.##\n####....*...##\n#!*b.e1..4.@c#\n####....*...##\n***#.**.*.*.##\n***#.**.....*#\n***#....#*#*##\n***#*##*#####*\n***######*****\n\n\nmessage XVII - Blockade\n\n**###\n**#!#\n###*#\n#.#.#\n#.b.#\n#.b.#\n#3#@#\n#####\n\n\n\nmessage XVIII - Pas de Trois\n\n###########\n#.........#\n#.........#\n#....3....#\n#.........#\n#..e...e..#\n#.........#\n#.........#\n#####@#####\n****#d#****\n****#!#****\n****###****\n\n\nmessage XIX - Orange Blues\n\n********###**\n********#!###\n#########6.3#\n#...c...d.###\n#.......#f#**\n#..#.#..#.#**\n#..#5#..###**\n#..###..#****\n#.......#****\n#.1...1.#****\n#.##@##.#****\n#.......#****\n#########****\n\n\nmessage XX - The Last Waltz\n\n**********###****\n**#########3#****\n**#c.##...#d#****\n**##.##.#2#.#****\n**#..#......#****\n###.##.#..#.#****\n#...*.......#****\n#.#a##......#****\n#.#6##.#..1.#****\n#.#6#.......#****\n#...#e#b##b####**\n###f#f#d##d##.#**\n**#@#e.*..*.#.###\n**#########..bb.#\n**********#!#.#f#\n**********###..3#\n************#####\n\n\nmessage Congratulations! Thanks for playing, hope you enjoyed.\n\nmessage Encore\nmessage [Might be a bit too much trial-and-error for an \"official\" level]\n\n###*###**********\n#c#*#e#*########*\n#d###a#*#......#*\n#...#@###....#.#*\n#.#b#........d3#*\n###.#.###..a.####\n###.#.#*#....dbc#\n#!.*f*###....####\n###f#..##....#***\n**#.##f#######***\n**####.#*********\n***#cd.#*********\n***#####*********\n", [3, 0, 3, 3, 2, 3, 3, 3, 1, 1, 1, 0, 1, 2, 1, 2, 1, 1, 4, 3, 0, 3, 3, 2, 3, 3, 3, 1, 1, 1, 1, 0, 1, 1, 2, 3, 3, 3, 3, 3, 3, 4], "background floor1 pit:0,background floor2 pit:1,background floor1 wall wallconnectore wallconnectors wallconnectorse:2,background floor2 wall wallconnectorn wallconnectors:3,background floor1 wall wallconnectore wallconnectorn wallconnectorne:4,1,0,1,0,background floor2 wall wallconnectore wallconnectorw:5,background floor1 goalfr3:6,5,0,\n1,0,background floor2 wall wallconnectore wallconnectors wallconnectorse:7,background floor1 wall wallconnectorn wallconnectornw wallconnectorw:8,background dooromni floor2:9,background floor1 wall wallconnectors wallconnectorsw wallconnectorw:10,background floor2 wall wallconnectore wallconnectorn wallconnectorne:11,0,1,background floor1 wall wallconnectore wallconnectorw:12,background floor2:13,background floor1:14,13,\n12,1,2,background floor2 wall wallconnectorn wallconnectornw wallconnectorw:15,14,13,14,background floor2 wall wallconnectors wallconnectorsw wallconnectorw:16,4,5,14,13,background crateorange floor1:17,\nbackground crateorange floor2 inactivecrate:18,14,5,10,11,14,13,background crateorange floor1 inactivecrate:19,7,8,1,12,18,\n14,13,12,1,0,background floor2 wall wallconnectore wallconnectors wallconnectorse wallconnectorsw wallconnectorw:20,background floor1 wall wallconnectorn:21,13,background floor1 wall wallconnectors:22,background floor2 wall wallconnectore wallconnectorn wallconnectorne wallconnectornw wallconnectorw:23,0,1,12,\nbackground floor2 switchomni:24,background floor1 playerorange switchomni:25,24,12,1,0,5,background floor1 switchomni:26,background floor2 inactivecrate switchomni:27,26,5,0,1,\n12,24,background floor1 wall wallconnectore:28,24,12,1,0,16,background floor1 wall wallconnectorn wallconnectors:29,background floor2 wall wallconnectorn wallconnectornw wallconnectors wallconnectorsw wallconnectorw:30,29,15,0,\n", 16, "1627779079985.3457"] ], [ `gallery: Some lines were meant to be crossed`, - ["title Some lines were meant to be crossed\nauthor Frpzzd\nagain_interval 0.08\nrealtime_interval 0.06\nkey_repeat_interval 0.12\nrequire_player_movement off\nbackground_color darkblue\ntext_color red\n\n========\nOBJECTS\n========\n\nBackground .\nDarkblue\n\nPlayer\nDarkred\n\nTail\nDarkred\n.....\n.....\n..0..\n.....\n.....\n\nPathvert |\nBlue\n.000.\n.000.\n.000.\n.000.\n.000.\n\nPathhoriz -\nBlue\n.....\n00000\n00000\n00000\n.....\n\nWallvert\nRed\n.000.\n.000.\n.000.\n.000.\n.000.\n\nWallhoriz\nred\n.....\n00000\n00000\n00000\n.....\n\nStart\nlightblue\n\n=======\nLEGEND\n=======\n\n@ = player and start\n+ = pathvert and pathhoriz\n\nPath = pathvert or pathhoriz\nWall = wallvert or wallhoriz\n\n=========\nSOUNDS\n=========\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ntail\nstart\npathvert, wallvert\npathhoriz, wallhoriz\nPlayer\n\n======\nRULES\n======\n\n[> player|wall]->cancel\n[> player|tail]->cancel\n[player pathvert]->[player wallvert]\n[player pathhoriz]->[player wallhoriz]\nLATE VERTICAL[ wallvert|pathvert]->[wallvert|wallvert]again\nLATE HORIZONTAL[ wallhoriz|pathhoriz]->[wallhoriz|wallhoriz]again\n\nLATE[player no start]->[player tail]\n\n==============\nWINCONDITIONS\n==============\n\nno path\nall player on start\n\n=======\nLEVELS\n=======\n\nmessage Cross all of the lines, then come back to where you began.\n\n.......\n.+---+.\n.|...|.\n.|.@.|.\n.|...|.\n.+---+.\n.......\n\n...............\n.+---+---+---+.\n.|...|...|...|.\n.|.@.|...|...|.\n.|...|...|...|.\n.+---+---+---+.\n...............\n\n...............\n.+---+---+---+.\n.|...|...|...|.\n.|.@.+---+...|.\n.|...|...|...|.\n.+---+---+---+.\n...............\n\n...........\n...+---+...\n...|...|...\n...|...|...\n...|...|...\n.+-+-+-+-+.\n.|...|...|.\n.|.@.|...|.\n.|...|...|.\n.+---+---+.\n...........\n\n...........\n...+---+...\n...|...|...\n...|.@.|...\n...|...|...\n.+-+-+-+-+.\n.|...|...|.\n.|...|...|.\n.|...|...|.\n.+---+---+.\n...........\n\n...........\n.....+---+.\n.....|...|.\n.....|.@.|.\n.....|...|.\n.+---+---+.\n.|...|.....\n.|...|.....\n.|...|.....\n.+---+.....\n...........\n\n...............\n.+---+...+---+.\n.|...|...|...|.\n.|...+---+...|.\n.|...|...|...|.\n.+-+-+...+-+-+.\n...|.......|...\n...|...@...|...\n...|.......|...\n.+-+-+...+-+-+.\n.|...|...|...|.\n.|...+---+...|.\n.|...|...|...|.\n.+---+...+---+.\n...............\n\n\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick",1,"tick","tick",2,"tick","tick","tick",2,"tick",2,"tick","tick",3,"tick","tick",2,"tick","tick","tick","tick","tick","tick",1,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick",3,"tick","tick","tick",3,"tick","tick",3,"tick","tick","tick",3,"tick","tick","tick","tick","tick",2,"tick","tick",3,"tick","tick",3,"tick","tick","tick","tick",2,"tick","tick",1,"tick","tick",0,"tick","tick","tick","tick",2,"tick","tick",2,"tick",2,"tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",3,"tick",3,"tick",0,"tick","tick","tick",0,"tick","tick",0,"tick","tick","tick",0,"tick","tick",0,"tick","tick","tick","tick",0,"tick","tick",1,"tick","tick","tick",1,"tick","tick","tick",1,"tick","tick",0,"tick","tick","tick",0,"tick","tick","tick",1,"tick",0,"tick","tick","tick",0,"tick","tick","tick",0,"tick",0,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background:0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background pathvert wallhoriz:1,background pathvert:2,2,2,1,0,\n0,0,0,background tail:3,3,background tail wallhoriz:4,3,0,0,background wallhoriz:5,0,\n0,background wallhoriz wallvert:6,background wallvert:7,background tail wallvert:8,7,6,3,0,0,5,0,\n0,5,0,3,0,5,3,0,0,5,0,\n0,5,0,background start:9,0,6,8,7,7,6,0,\nbackground player tail:10,4,3,3,3,5,3,3,0,5,0,\n0,6,7,7,8,6,0,3,3,4,3,\n0,0,0,0,3,5,0,3,3,5,3,\n0,0,0,0,3,1,2,2,2,1,3,\n0,0,0,0,3,3,3,3,3,3,3,\n",5,"1627779102633.4878"] + ["title Some lines were meant to be crossed\nauthor Frpzzd\nagain_interval 0.08\nrealtime_interval 0.06\nkey_repeat_interval 0.12\nrequire_player_movement off\nbackground_color darkblue\ntext_color red\n\n========\nOBJECTS\n========\n\nBackground .\nDarkblue\n\nPlayer\nDarkred\n\nTail\nDarkred\n.....\n.....\n..0..\n.....\n.....\n\nPathvert |\nBlue\n.000.\n.000.\n.000.\n.000.\n.000.\n\nPathhoriz -\nBlue\n.....\n00000\n00000\n00000\n.....\n\nWallvert\nRed\n.000.\n.000.\n.000.\n.000.\n.000.\n\nWallhoriz\nred\n.....\n00000\n00000\n00000\n.....\n\nStart\nlightblue\n\n=======\nLEGEND\n=======\n\n@ = player and start\n+ = pathvert and pathhoriz\n\nPath = pathvert or pathhoriz\nWall = wallvert or wallhoriz\n\n=========\nSOUNDS\n=========\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ntail\nstart\npathvert, wallvert\npathhoriz, wallhoriz\nPlayer\n\n======\nRULES\n======\n\n[> player|wall]->cancel\n[> player|tail]->cancel\n[player pathvert]->[player wallvert]\n[player pathhoriz]->[player wallhoriz]\nLATE VERTICAL[ wallvert|pathvert]->[wallvert|wallvert]again\nLATE HORIZONTAL[ wallhoriz|pathhoriz]->[wallhoriz|wallhoriz]again\n\nLATE[player no start]->[player tail]\n\n==============\nWINCONDITIONS\n==============\n\nno path\nall player on start\n\n=======\nLEVELS\n=======\n\nmessage Cross all of the lines, then come back to where you began.\n\n.......\n.+---+.\n.|...|.\n.|.@.|.\n.|...|.\n.+---+.\n.......\n\n...............\n.+---+---+---+.\n.|...|...|...|.\n.|.@.|...|...|.\n.|...|...|...|.\n.+---+---+---+.\n...............\n\n...............\n.+---+---+---+.\n.|...|...|...|.\n.|.@.+---+...|.\n.|...|...|...|.\n.+---+---+---+.\n...............\n\n...........\n...+---+...\n...|...|...\n...|...|...\n...|...|...\n.+-+-+-+-+.\n.|...|...|.\n.|.@.|...|.\n.|...|...|.\n.+---+---+.\n...........\n\n...........\n...+---+...\n...|...|...\n...|.@.|...\n...|...|...\n.+-+-+-+-+.\n.|...|...|.\n.|...|...|.\n.|...|...|.\n.+---+---+.\n...........\n\n...........\n.....+---+.\n.....|...|.\n.....|.@.|.\n.....|...|.\n.+---+---+.\n.|...|.....\n.|...|.....\n.|...|.....\n.+---+.....\n...........\n\n...............\n.+---+...+---+.\n.|...|...|...|.\n.|...+---+...|.\n.|...|...|...|.\n.+-+-+...+-+-+.\n...|.......|...\n...|...@...|...\n...|.......|...\n.+-+-+...+-+-+.\n.|...|...|...|.\n.|...+---+...|.\n.|...|...|...|.\n.+---+...+---+.\n...............\n\n\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", 2, "tick", "tick", 3, "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", 3, "tick", "tick", 3, "tick", "tick", "tick", "tick", 2, "tick", "tick", 1, "tick", "tick", 0, "tick", "tick", "tick", "tick", 2, "tick", "tick", 2, "tick", 2, "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", 3, "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", 0, "tick", "tick", "tick", "tick", 0, "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", 1, "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background:0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background pathvert wallhoriz:1,background pathvert:2,2,2,1,0,\n0,0,0,background tail:3,3,background tail wallhoriz:4,3,0,0,background wallhoriz:5,0,\n0,background wallhoriz wallvert:6,background wallvert:7,background tail wallvert:8,7,6,3,0,0,5,0,\n0,5,0,3,0,5,3,0,0,5,0,\n0,5,0,background start:9,0,6,8,7,7,6,0,\nbackground player tail:10,4,3,3,3,5,3,3,0,5,0,\n0,6,7,7,8,6,0,3,3,4,3,\n0,0,0,0,3,5,0,3,3,5,3,\n0,0,0,0,3,1,2,2,2,1,3,\n0,0,0,0,3,3,3,3,3,3,3,\n", 5, "1627779102633.4878"] ], [ `gallery: Stand Off`, - ["title Stand Off\nauthor Mark Richardson\nagain_interval 0.05\nnorepeat_action\n(verbose_logging)\n\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nWall\n#555 #444\n01110\n10001\n10001\n10001\n01110\n\nWindow\n#555 #444 #cff\n01110\n12221\n12221\n12221\n01110\n\nBrokenWindow\n#555 #444 #cff #9bb #000\n01110\n12321\n13431\n12321\n01110\n\nExit\n#555 #444\n01110\n1...1\n1...1\n1...1\n0...0\n\nPlayer\n#642 #963\n.000.\n01110\n01010\n00100\n.000.\n\nGunMode\n#963 #c84\n.000.\n01110\n01010\n00100\n.000.\n\nBadGuy\n#b31 #f00\n.000.\n01110\n01010\n00100\n.000.\n\nCrate\n#642 #963\n.....\n.111.\n.100.\n.100.\n.....\n\nGunU\n#963 #fd9 #aaa\n.....\n..2..\n..2..\n..1..\n..0..\n\nGunD\n#963 #fd9 #aaa\n..0..\n..1..\n..2..\n..2..\n.....\n\nGunL\n#963 #fd9 #aaa\n.....\n.....\n.2210\n.....\n.....\n\nGunR\n#963 #fd9 #aaa\n.....\n.....\n0122.\n.....\n.....\n\nBullet\n#888 #444\n.....\n..1..\n.101.\n..1..\n.....\n\nCorpse\n#f00 #a00\n.1...\n..01.\n1000.\n..0.1\n1.1..\n\nLoS\nTransparent\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n+ = Window\nP = Player\nB = BadGuy\nC = Crate\nX = Exit\n\nGun = GunU or GunD or GunL or GunR\nObstacle = Wall or Window or BrokenWindow or BadGuy or Crate\nShroud = Wall or BadGuy or Crate or Gun or Exit or Bullet\n\n\n=======\nSOUNDS\n=======\n\nGun Create 80432507\nGun Destroy 74204901\nCrate Move 58388907\nBullet Create 38215704\nBrokenWindow Create 99929700\nCorpse Create 95969308\nEndLevel 44184703\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWall, Window, BrokenWindow, Player, BadGuy, Crate, Gun, Corpse\nExit, GunMode, LoS, Bullet\n\n\n======\nRULES\n======\n\n(Move bullet)\n[stationary Bullet|...|Player]->[> Bullet|...|Player]again\n[stationary Bullet|...|Corpse]->[> Bullet|...|Corpse]again\n[> Bullet|Player]->[|Corpse]\n[> Bullet|Corpse]->[|Corpse]\n\n(Toggle mode)\n[action Player GunMode]->[Player]\n[action Player]->[Player GunMode]\n\n(Holster gun)\n[> Player GunMode|Gun]->[Player|]\n\n(Draw gun)\n [> Player GunMode| Obstacle]->cancel\nup [> Player GunMode|no Obstacle]->[Player|GunU]\ndown [> Player GunMode|no Obstacle]->[Player|GunD]\nleft [> Player GunMode|no Obstacle]->[Player|GunL]\nright [> Player GunMode|no Obstacle]->[Player|GunR]\n\n(Validate number of guns)\nrandom [stationary Gun]->[up Gun]\nrandom [stationary Gun]->[down Gun]\nrandom [stationary Gun]->cancel\n[moving Gun]->[Gun]\n\n(Move player)\n[> Player|Crate|Obstacle]->cancel\n[> Player|Crate]->[> Player|> Crate]\n[> Player|stationary Obstacle]->cancel\n[> Player][stationary Gun]->[> Player][> Gun]\n[> Gun|Obstacle]->[|Obstacle]\n\n(Remove gun from exit)\nlate[Gun Exit]->[Exit]\n\n(Bad guys shoot)\nlate[Player|BadGuy]->[Player Bullet|BadGuy]\nlate[Player Bullet]->[Corpse]\nlate[Corpse Bullet]->[Corpse]\nlate[Player|no Shroud]->[Player|LoS]\nlate[Player|...|LoS|no Shroud]->[Player|...|LoS|LoS]\nlate[Player|...|LoS|BadGuy]->[Player|...|Bullet|BadGuy]again\nlate[LoS]->[]\nlate[Bullet Window]->[Bullet BrokenWindow]\nlate[Corpse GunMode]->[Corpse]\n\n\n==============\nWINCONDITIONS\n==============\n\nany Exit on Player\n\n\n=======\nLEVELS\n=======\n\nmessage Don't let them varmints point a gun at ya unless yer pointin' one at them too.\nmessage Press X 'n' an arrow to draw or holster one o' yer two guns.\n\n##########\n#...#.+..#\n#.P.#.#..#\n#...#.+..#\n#...#.#..#\n#...#B+..X\n#...#.#..#\n#........#\n#........#\n#...#....#\n##########\n\n#############\n#......B....#\nX...........#\n#...........#\n#...#B..#...#\n#........B..#\n#B..........#\n#...B.......#\n#...#...#..B#\n#...........#\n#.P.........#\n#.......B...#\n#############\n\n.##########X##.\n.#....#B#....#.\n.#.CC.#.#....#.\n.#....#.#....#.\n##...##.##...##\n#....#...#....#\n#B...........B#\n#....#...#....#\n##...##.##...##\n.#....#.#....#.\n.#.P..#.#....#.\n.#....#B#....#.\n.#############.\n\n#############\n#.B....#.B..#\n#......#....#\n#......#...P#\n#......#....#\n#...#..#....#\n#B..#.......#\n#...#.......#\n###C###...###\n#.....+.....#\n#.....+.....#\n#.....+B...B#\n#########X###\n\n#################\n#B..B...#B......#\n#.......#.......#\n#+......#.......#\nX..............B#\n#+......#.......#\n#.....C.#B.....B#\n#B......#.......#\n####.#######.####\n#.......#......B#\n#...C...#.......#\n#.......#.......#\n#...............#\n#.......#.....C.#\n#.P.....#.......#\n#......B#...B...#\n#################\n\n#####X#X#####\n#...#B#B#...#\n#...#+#+#...X\n#...C....C..#\n###C..C.C.###\nXB+....C..+BX\n###.C...C.###\nXB+..C....+BX\n###C..C..C###\n#...C...C...#\n#.P.#+#+#...#\n#...#B#B#...#\n#####X#X#####\n\n#####X#####\n#B.......B#\n#B........#\n#........B#\n#B........#\n#..C...C.B#\n#...P.....#\n#.........#\n#..B.B.B..#\n###########\n\n#################\n#......#.#......#\n#.....B#.#B.....#\n#B....++.++.....#\n#...##+...+##...#\n#...#.......#.#.#\n#...C...P...C...#\n#.#.#.......#.#.#\n#...##+...+##...#\n#B....++.++....B#\n#.....B#.#B..C..#\n#......#.#......#\n########X########\n\n+++++++X+++++++\n+B...+...+...B+\n+B...+...+...B+\n+B...+...+...B+\n+B...+...+...B+\n+B...+...+...B+\n+++..+...+..+++\n.+.....+.....+.\n.+.C.+...+.C.+.\n.+.C.+...+.C.+.\n.+.C.+...+.C.+.\n.+.C.+...+.C.+.\n.+.P.+...+...+.\n.++++++B++++++.\n\n.....#######.....\n...###..B..###...\n..##.........##..\n.##..B.....B..##.\n.#.............#.\n##.B.........B.##\n#.....P...C.....#\n#...............#\n#B......B......B#\n#...............#\n#.....C.....#...#\n##.B..........B##\n.#........#.X..#.\n.##..B.......B##.\n..##.......B.##..\n...###..B..###...\n.....#######.....\n\nmessage Man, am I glad to be outta that town.\n\n",[3,4,1,0,0,0,0],"background:0,0,0,0,background wall:1,1,1,1,1,0,0,0,0,1,1,\n1,1,1,0,background badguy:2,0,1,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,1,1,0,background crate:3,0,0,0,\nbackground gunl:4,0,0,0,0,0,1,1,0,3,0,0,0,background corpse:5,0,\n0,0,0,0,1,1,0,0,0,1,1,0,1,1,0,\n0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,\n1,1,2,0,0,0,0,0,0,0,0,0,2,1,1,\n1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,\n0,1,1,0,1,1,0,0,0,1,1,0,0,0,0,\n0,0,0,0,0,0,0,1,background exit:6,0,0,0,0,0,0,\n0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,\n0,0,0,1,1,1,1,1,1,0,2,0,1,1,1,\n1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,\n",4,"1627779129731.5793"] + ["title Stand Off\nauthor Mark Richardson\nagain_interval 0.05\nnorepeat_action\n(verbose_logging)\n\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nWall\n#555 #444\n01110\n10001\n10001\n10001\n01110\n\nWindow\n#555 #444 #cff\n01110\n12221\n12221\n12221\n01110\n\nBrokenWindow\n#555 #444 #cff #9bb #000\n01110\n12321\n13431\n12321\n01110\n\nExit\n#555 #444\n01110\n1...1\n1...1\n1...1\n0...0\n\nPlayer\n#642 #963\n.000.\n01110\n01010\n00100\n.000.\n\nGunMode\n#963 #c84\n.000.\n01110\n01010\n00100\n.000.\n\nBadGuy\n#b31 #f00\n.000.\n01110\n01010\n00100\n.000.\n\nCrate\n#642 #963\n.....\n.111.\n.100.\n.100.\n.....\n\nGunU\n#963 #fd9 #aaa\n.....\n..2..\n..2..\n..1..\n..0..\n\nGunD\n#963 #fd9 #aaa\n..0..\n..1..\n..2..\n..2..\n.....\n\nGunL\n#963 #fd9 #aaa\n.....\n.....\n.2210\n.....\n.....\n\nGunR\n#963 #fd9 #aaa\n.....\n.....\n0122.\n.....\n.....\n\nBullet\n#888 #444\n.....\n..1..\n.101.\n..1..\n.....\n\nCorpse\n#f00 #a00\n.1...\n..01.\n1000.\n..0.1\n1.1..\n\nLoS\nTransparent\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n+ = Window\nP = Player\nB = BadGuy\nC = Crate\nX = Exit\n\nGun = GunU or GunD or GunL or GunR\nObstacle = Wall or Window or BrokenWindow or BadGuy or Crate\nShroud = Wall or BadGuy or Crate or Gun or Exit or Bullet\n\n\n=======\nSOUNDS\n=======\n\nGun Create 80432507\nGun Destroy 74204901\nCrate Move 58388907\nBullet Create 38215704\nBrokenWindow Create 99929700\nCorpse Create 95969308\nEndLevel 44184703\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWall, Window, BrokenWindow, Player, BadGuy, Crate, Gun, Corpse\nExit, GunMode, LoS, Bullet\n\n\n======\nRULES\n======\n\n(Move bullet)\n[stationary Bullet|...|Player]->[> Bullet|...|Player]again\n[stationary Bullet|...|Corpse]->[> Bullet|...|Corpse]again\n[> Bullet|Player]->[|Corpse]\n[> Bullet|Corpse]->[|Corpse]\n\n(Toggle mode)\n[action Player GunMode]->[Player]\n[action Player]->[Player GunMode]\n\n(Holster gun)\n[> Player GunMode|Gun]->[Player|]\n\n(Draw gun)\n [> Player GunMode| Obstacle]->cancel\nup [> Player GunMode|no Obstacle]->[Player|GunU]\ndown [> Player GunMode|no Obstacle]->[Player|GunD]\nleft [> Player GunMode|no Obstacle]->[Player|GunL]\nright [> Player GunMode|no Obstacle]->[Player|GunR]\n\n(Validate number of guns)\nrandom [stationary Gun]->[up Gun]\nrandom [stationary Gun]->[down Gun]\nrandom [stationary Gun]->cancel\n[moving Gun]->[Gun]\n\n(Move player)\n[> Player|Crate|Obstacle]->cancel\n[> Player|Crate]->[> Player|> Crate]\n[> Player|stationary Obstacle]->cancel\n[> Player][stationary Gun]->[> Player][> Gun]\n[> Gun|Obstacle]->[|Obstacle]\n\n(Remove gun from exit)\nlate[Gun Exit]->[Exit]\n\n(Bad guys shoot)\nlate[Player|BadGuy]->[Player Bullet|BadGuy]\nlate[Player Bullet]->[Corpse]\nlate[Corpse Bullet]->[Corpse]\nlate[Player|no Shroud]->[Player|LoS]\nlate[Player|...|LoS|no Shroud]->[Player|...|LoS|LoS]\nlate[Player|...|LoS|BadGuy]->[Player|...|Bullet|BadGuy]again\nlate[LoS]->[]\nlate[Bullet Window]->[Bullet BrokenWindow]\nlate[Corpse GunMode]->[Corpse]\n\n\n==============\nWINCONDITIONS\n==============\n\nany Exit on Player\n\n\n=======\nLEVELS\n=======\n\nmessage Don't let them varmints point a gun at ya unless yer pointin' one at them too.\nmessage Press X 'n' an arrow to draw or holster one o' yer two guns.\n\n##########\n#...#.+..#\n#.P.#.#..#\n#...#.+..#\n#...#.#..#\n#...#B+..X\n#...#.#..#\n#........#\n#........#\n#...#....#\n##########\n\n#############\n#......B....#\nX...........#\n#...........#\n#...#B..#...#\n#........B..#\n#B..........#\n#...B.......#\n#...#...#..B#\n#...........#\n#.P.........#\n#.......B...#\n#############\n\n.##########X##.\n.#....#B#....#.\n.#.CC.#.#....#.\n.#....#.#....#.\n##...##.##...##\n#....#...#....#\n#B...........B#\n#....#...#....#\n##...##.##...##\n.#....#.#....#.\n.#.P..#.#....#.\n.#....#B#....#.\n.#############.\n\n#############\n#.B....#.B..#\n#......#....#\n#......#...P#\n#......#....#\n#...#..#....#\n#B..#.......#\n#...#.......#\n###C###...###\n#.....+.....#\n#.....+.....#\n#.....+B...B#\n#########X###\n\n#################\n#B..B...#B......#\n#.......#.......#\n#+......#.......#\nX..............B#\n#+......#.......#\n#.....C.#B.....B#\n#B......#.......#\n####.#######.####\n#.......#......B#\n#...C...#.......#\n#.......#.......#\n#...............#\n#.......#.....C.#\n#.P.....#.......#\n#......B#...B...#\n#################\n\n#####X#X#####\n#...#B#B#...#\n#...#+#+#...X\n#...C....C..#\n###C..C.C.###\nXB+....C..+BX\n###.C...C.###\nXB+..C....+BX\n###C..C..C###\n#...C...C...#\n#.P.#+#+#...#\n#...#B#B#...#\n#####X#X#####\n\n#####X#####\n#B.......B#\n#B........#\n#........B#\n#B........#\n#..C...C.B#\n#...P.....#\n#.........#\n#..B.B.B..#\n###########\n\n#################\n#......#.#......#\n#.....B#.#B.....#\n#B....++.++.....#\n#...##+...+##...#\n#...#.......#.#.#\n#...C...P...C...#\n#.#.#.......#.#.#\n#...##+...+##...#\n#B....++.++....B#\n#.....B#.#B..C..#\n#......#.#......#\n########X########\n\n+++++++X+++++++\n+B...+...+...B+\n+B...+...+...B+\n+B...+...+...B+\n+B...+...+...B+\n+B...+...+...B+\n+++..+...+..+++\n.+.....+.....+.\n.+.C.+...+.C.+.\n.+.C.+...+.C.+.\n.+.C.+...+.C.+.\n.+.C.+...+.C.+.\n.+.P.+...+...+.\n.++++++B++++++.\n\n.....#######.....\n...###..B..###...\n..##.........##..\n.##..B.....B..##.\n.#.............#.\n##.B.........B.##\n#.....P...C.....#\n#...............#\n#B......B......B#\n#...............#\n#.....C.....#...#\n##.B..........B##\n.#........#.X..#.\n.##..B.......B##.\n..##.......B.##..\n...###..B..###...\n.....#######.....\n\nmessage Man, am I glad to be outta that town.\n\n", [3, 4, 1, 0, 0, 0, 0], "background:0,0,0,0,background wall:1,1,1,1,1,0,0,0,0,1,1,\n1,1,1,0,background badguy:2,0,1,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,1,1,0,background crate:3,0,0,0,\nbackground gunl:4,0,0,0,0,0,1,1,0,3,0,0,0,background corpse:5,0,\n0,0,0,0,1,1,0,0,0,1,1,0,1,1,0,\n0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,\n1,1,2,0,0,0,0,0,0,0,0,0,2,1,1,\n1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,\n0,1,1,0,1,1,0,0,0,1,1,0,0,0,0,\n0,0,0,0,0,0,0,1,background exit:6,0,0,0,0,0,0,\n0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,\n0,0,0,1,1,1,1,1,1,0,2,0,1,1,1,\n1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,\n", 4, "1627779129731.5793"] ], [ `gallery: 🍡 -ooo- 🍡`, - ["title 🍡 -ooo- 🍡\nauthor Baku\nhomepage http://baku89.com\n\n========\nOBJECTS\n========\n\nDark +\nBlack\n00000\n00000\n00000\n00000\n00000\n\nBackgroundSolid .\n#EEEEEE\n00000\n00000\n00000\n00000\n00000\n\nInstructionT T\n#EEEEEE #dce2e5\n00100\n01110\n10101\n00100\n00100\n\nInstructionK K\n#EEEEEE #dce2e5\n00100\n01000\n11110\n01000\n00100\n\nInstructionD D\n#EEEEEE #dce2e5\n00100\n00010\n01111\n00010\n00100\n\nInstructionI I\n#EEEEEE #dce2e5\n00100\n00100\n00100\n00100\n00100\n\n\nInstruction1 1\n#EEEEEE #dce2e5\n01100\n00100\n00100\n00100\n01110\n\n\nInstruction2 2\n#EEEEEE #dce2e5\n11110\n00001\n01110\n10000\n11111\n\n\nInstruction3 3\n#EEEEEE #dce2e5\n01110\n10001\n00111\n10001\n01110\n\nWall #\n#d7b7a2\n00000\n00000\n00000\n00000\n00000\n\nPlayerV $\n#d5bd7d\n..0..\n..0..\n..0..\n..0..\n..0..\n\nStickV |\n#e3cc8e\n..0..\n..0..\n..0..\n..0..\n..0..\n\nPlayerH ~\n#d5bd7d\n.....\n.....\n00000\n.....\n.....\n\nStickH -\n#e3cc8e\n.....\n.....\n00000\n.....\n.....\n\nFloatA A\n#ffb1c5\n.000.\n00000\n00000\n00000\n.000.\n\nFloatB B\nWHITE\n.000.\n00000\n00000\n00000\n.000.\n\nFloatC C\n#d0dc6e\n.000.\n00000\n00000\n00000\n.000.\n\nFixedA X\n#ffb1c5\n.000.\n00000\n00000\n00000\n.000.\n\nFixedB Y\nWHITE\n.000.\n00000\n00000\n00000\n.000.\n\nFixedC Z\n#d0dc6e\n.000.\n00000\n00000\n00000\n.000.\n\n\n=======\nLEGEND\n=======\n\nBackground = BackgroundSolid or InstructionT or InstructionI or InstructionK or InstructionD or Instruction1 or Instruction2 or Instruction3\n\nStick = StickV or StickH\nPlayer = PlayerV or PlayerH\n\nFloat \t= FloatA or FloatB or FloatC\nFloatAB = FloatA or FloatB\nFloatAC = FloatA or FloatC\nFloatBC = FloatB or FloatC\n\nFixed = FixedA or FixedB or FixedC\n\nDango = Float or Fixed\n\nBody = Player or Fixed\n\nAxisV = PlayerV or StickV\nAxisH = PlayerH or StickH\nAxis = Player or Stick\n\n\n=======\nSOUNDS\n=======\n\nSFX0 17033707\n\nSFX1 63191907\n\nSFX2 83893307\n\nEndLevel 28146300\nEndGame 78733301\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nStick\nPlayer, Wall, Dango, Fixed, Dark\n\n======\nRULES\n======\n\n(-------------MOVING PROPAGATION-------------)\n\n(Not to break apart body)\n[ Moving Player ] [ Stick ] -> [ Moving Player ] [ Moving Stick ]\n[ Moving Player ] [ Fixed ] -> [ Moving Player ] [ Moving Fixed ]\n\n\n(Translate Dango by stick)\n(|)\n[ Horizontal StickV Dango ] -> [ Horizontal StickV Horizontal Dango ]\n(-)\n[ Vertical StickH Dango ] -> [ Vertical StickH Vertical Dango ]\n\n(Push by player)\n(|)\n(\nVertical [ > PlayerV | Dango StickV ] -> [ > PlayerV | > Dango StickV ]\nVertical [ > Dango StickV | Dango StickV ] -> [ > Dango StickV | > Dango StickV ]\n(-)\nHorizontal [ > PlayerH | Dango StickH ] -> [ > PlayerH | > Dango StickH ]\nHorizontal [ > Dango StickH | Dango StickH ] -> [ > Dango StickH | > Dango StickH ]\n)\n\n(-------------CAN'T MOVE-------------)\n\n(Wall Collision)\n[ > Axis | Wall ] -> Cancel\n\n(Cannot push Float in incorrect ways)\n(|)\nHorizontal [ > AxisV | Stationary Float ] -> Cancel \t(push by side)\nVertical [ > PlayerV | Stationary Float ] -> Cancel \t(push by root)\n(-)\nVertical [ > AxisH | Stationary Float ] -> Cancel \t(push by side)\nHorizontal [ > PlayerH | Stationary Float ] -> Cancel \t(push by root)\n\n(Too heavy)\n[ > Dango | > Dango | > Dango | Dango ] -> cancel\n\n(-------------CONVERT-------------)\n\n(Convert Dango to Fixed)\n(|)\nlate Vertical [PlayerV | FloatC StickV ] -> [ PlayerV | FixedC StickV ]\nlate Vertical [FixedC | FloatB StickV ] -> [ FixedC | FixedB StickV ]\nlate Vertical [FixedB | FloatA StickV ] -> [ FixedB | FixedA StickV ]\n(-)\nlate Horizontal [PlayerH | FloatC StickH ] -> [ PlayerH | FixedC StickH ]\nlate Horizontal [FixedC | FloatB StickH ] -> [ FixedC | FixedB StickH ]\nlate Horizontal [FixedB | FloatA StickH ] -> [ FixedB | FixedA StickH ]\n\n\n(-------------SOUND-------------)\n\n(Incorrect order SFX)\n(|)\nVertical [ > PlayerV | StickV | Stationary FloatAB ] -> SFX1\nVertical [ > FixedC | StickV | Stationary FloatAC ] -> SFX1\nVertical [ > FixedB | StickV | Stationary FloatBC ] -> SFX1\n(-)\nHorizontal [ > PlayerH | StickH | Stationary FloatAB ] -> SFX1\nHorizontal [ > FixedC | StickH | Stationary FloatAC ] -> SFX1\nHorizontal [ > FixedB | StickH | Stationary FloatBC ] -> SFX1\n\n(Stik SFX)\n(|)\nVertical [ > Player | StickV | StickV | StickV | Stationary Float ] -> SFX2\n(-)\nHorizontal [ > Player | StickH | StickH | StickH | Stationary Float ] -> SFX2\n\n(Glue SFX)\n(|)\nVertical [ > PlayerV | StickV | FloatC ] -> SFX0\nVertical [ > FixedC | StickV | FloatB ] -> SFX0\nVertical [ > FixedB | StickV | FloatA ] -> SFX0\n(-)\nHorizontal [ > PlayerH | StickH | FloatC ] -> SFX0\nHorizontal [ > FixedC | StickH | FloatB ] -> SFX0\nHorizontal [ > FixedB | StickH | FloatA ] -> SFX0\n\n\n==============\nWINCONDITIONS\n==============\n\nNo Float\n\n=======\nLEVELS\n=======\n\n\n###############\n#.............#\n#......a.1....#\n#.............#\n#....T........#\n#....I.b.2....#\n#....I........#\n#.............#\n#......c.3....#\n#.............#\n#......|K1....#\n#....2D|......#\n#......|K3....#\n#......$......#\n#.............#\n###############\n\n\n###############\n#.............#\n#.............#\n#.........cK3.#\n#.............#\n#......bK2....#\n#.............#\n#...aK1.......#\n#.............#\n#.............#\n#......|K1....#\n#....2D|......#\n#......|K3....#\n#......$......#\n#.............#\n###############\n\n\n+++++++++++++++\n+++++#####+++++\n+++++#...#+++++\n+++++#.#.#+++++\n+++++#.c.#+++++\n+++++#...#+++++\n+++++#.b.#+++++\n+++++#...#+++++\n+++++#.a.#+++++\n+++++#.|.#+++++\n+++++#.|.#+++++\n+++++##|.#+++++\n++++++#$.#+++++\n++++++####+++++\n+++++++++++++++\n+++++++++++++++\n\n\n+++++++++++++++\n+++#########+++\n+++##.#.#.##+++\n+++#b.....b#+++\n+++#.......#+++\n+++#..|.|..#+++\n+++#..|c|..#+++\n+++#..|c|..#+++\n+++#..$.$..#+++\n+++#.a...a.#+++\n+++#.......#+++\n+++#.......#+++\n+++#.......#+++\n+++#.......#+++\n+++#########+++\n+++++++++++++++\n\n\n\n++###########++\n++#.........#++\n++#.........#++\n++#...bac...#++\n++#...acb...#++\n###...cba...###\n#.............#\n#.............#\n#.............#\n#.....|||.....#\n###...|||...###\n++#...|||...#++\n++#...$$$...#++\n++#.........#++\n++#.........#++\n++###########++\n\n\n+++++#####+++++\n+++###..a###+++\n++##.......##++\n+##...c.....##+\n+#......|....#+\n##......|b...##\n#.......|.....#\n#.......$.....#\n#.....$.......#\n#.....|.......#\n##...b|......##\n+#....|......#+\n+##.....c...##+\n++##.......##++\n+++###a..###+++\n+++++#####+++++\n\n\n+++++++++++++++\n+#############+\n+#...........#+\n+#.....|.....#+\n+#..#..|..b.##+\n+#.....|.....#+\n+#.....$....b#+\n+#.---~......#+\n+#...........#+\n+#...........#+\n+#..c.c......#+\n+#...........#+\n+#..a.a......#+\n+#############+\n+++++++++++++++\n\n\n##############+\n#............##\n#........a....#\n#.............#\n#......|c.....#\n#...a..|.b....#\n#..b...|......#\n#..c...$......#\n#..---~.~---..#\n#......$...c..#\n#......|..b.a.#\n#......|......#\n#....c.|......#\n#.....b.......#\n##...a........#\n+##############\n\n\n\n\n",[2,2,2,1,3,0,0,0,0,1,1,0,0,3,2,2,2,2,3,1,1,2,2,2,0,0,0,0,0,1,2,2,2,2,0,0,0,0,2,2,2,2,2,3,2,2,3,3,0,0,0,0,3,3,3,0,1,1],"backgroundsolid dark:0,0,0,0,0,backgroundsolid wall:1,1,1,1,1,1,0,0,0,0,\n0,0,0,0,1,1,1,backgroundsolid:2,2,2,2,1,1,1,0,\n0,0,0,0,1,1,2,2,2,2,2,2,2,2,1,\n1,0,0,0,1,1,2,2,2,2,2,2,2,2,2,\n2,1,1,0,0,1,2,2,2,2,2,2,2,2,2,\n2,2,2,1,0,1,1,2,2,2,backgroundsolid playerv:3,backgroundsolid stickv:4,4,4,2,\n2,2,2,2,1,1,1,2,2,backgroundsolid floatc:5,2,2,2,2,2,\n2,backgroundsolid floatb:6,2,2,2,backgroundsolid floata:7,1,1,backgroundsolid floata stickv:8,4,4,3,2,2,2,\n2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,\n2,2,2,2,2,5,2,2,1,1,1,2,2,2,6,\n2,2,2,2,2,2,2,2,1,1,0,1,2,2,2,\n2,2,2,2,2,2,2,2,2,1,0,0,1,1,2,\n2,2,2,2,2,2,2,2,2,1,1,0,0,0,1,\n1,2,2,2,2,2,2,2,2,1,1,0,0,0,0,\n0,1,1,1,2,2,2,2,1,1,1,0,0,0,0,\n0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,\n",5,"1627779151924.9846"] + ["title 🍡 -ooo- 🍡\nauthor Baku\nhomepage http://baku89.com\n\n========\nOBJECTS\n========\n\nDark +\nBlack\n00000\n00000\n00000\n00000\n00000\n\nBackgroundSolid .\n#EEEEEE\n00000\n00000\n00000\n00000\n00000\n\nInstructionT T\n#EEEEEE #dce2e5\n00100\n01110\n10101\n00100\n00100\n\nInstructionK K\n#EEEEEE #dce2e5\n00100\n01000\n11110\n01000\n00100\n\nInstructionD D\n#EEEEEE #dce2e5\n00100\n00010\n01111\n00010\n00100\n\nInstructionI I\n#EEEEEE #dce2e5\n00100\n00100\n00100\n00100\n00100\n\n\nInstruction1 1\n#EEEEEE #dce2e5\n01100\n00100\n00100\n00100\n01110\n\n\nInstruction2 2\n#EEEEEE #dce2e5\n11110\n00001\n01110\n10000\n11111\n\n\nInstruction3 3\n#EEEEEE #dce2e5\n01110\n10001\n00111\n10001\n01110\n\nWall #\n#d7b7a2\n00000\n00000\n00000\n00000\n00000\n\nPlayerV $\n#d5bd7d\n..0..\n..0..\n..0..\n..0..\n..0..\n\nStickV |\n#e3cc8e\n..0..\n..0..\n..0..\n..0..\n..0..\n\nPlayerH ~\n#d5bd7d\n.....\n.....\n00000\n.....\n.....\n\nStickH -\n#e3cc8e\n.....\n.....\n00000\n.....\n.....\n\nFloatA A\n#ffb1c5\n.000.\n00000\n00000\n00000\n.000.\n\nFloatB B\nWHITE\n.000.\n00000\n00000\n00000\n.000.\n\nFloatC C\n#d0dc6e\n.000.\n00000\n00000\n00000\n.000.\n\nFixedA X\n#ffb1c5\n.000.\n00000\n00000\n00000\n.000.\n\nFixedB Y\nWHITE\n.000.\n00000\n00000\n00000\n.000.\n\nFixedC Z\n#d0dc6e\n.000.\n00000\n00000\n00000\n.000.\n\n\n=======\nLEGEND\n=======\n\nBackground = BackgroundSolid or InstructionT or InstructionI or InstructionK or InstructionD or Instruction1 or Instruction2 or Instruction3\n\nStick = StickV or StickH\nPlayer = PlayerV or PlayerH\n\nFloat \t= FloatA or FloatB or FloatC\nFloatAB = FloatA or FloatB\nFloatAC = FloatA or FloatC\nFloatBC = FloatB or FloatC\n\nFixed = FixedA or FixedB or FixedC\n\nDango = Float or Fixed\n\nBody = Player or Fixed\n\nAxisV = PlayerV or StickV\nAxisH = PlayerH or StickH\nAxis = Player or Stick\n\n\n=======\nSOUNDS\n=======\n\nSFX0 17033707\n\nSFX1 63191907\n\nSFX2 83893307\n\nEndLevel 28146300\nEndGame 78733301\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nStick\nPlayer, Wall, Dango, Fixed, Dark\n\n======\nRULES\n======\n\n(-------------MOVING PROPAGATION-------------)\n\n(Not to break apart body)\n[ Moving Player ] [ Stick ] -> [ Moving Player ] [ Moving Stick ]\n[ Moving Player ] [ Fixed ] -> [ Moving Player ] [ Moving Fixed ]\n\n\n(Translate Dango by stick)\n(|)\n[ Horizontal StickV Dango ] -> [ Horizontal StickV Horizontal Dango ]\n(-)\n[ Vertical StickH Dango ] -> [ Vertical StickH Vertical Dango ]\n\n(Push by player)\n(|)\n(\nVertical [ > PlayerV | Dango StickV ] -> [ > PlayerV | > Dango StickV ]\nVertical [ > Dango StickV | Dango StickV ] -> [ > Dango StickV | > Dango StickV ]\n(-)\nHorizontal [ > PlayerH | Dango StickH ] -> [ > PlayerH | > Dango StickH ]\nHorizontal [ > Dango StickH | Dango StickH ] -> [ > Dango StickH | > Dango StickH ]\n)\n\n(-------------CAN'T MOVE-------------)\n\n(Wall Collision)\n[ > Axis | Wall ] -> Cancel\n\n(Cannot push Float in incorrect ways)\n(|)\nHorizontal [ > AxisV | Stationary Float ] -> Cancel \t(push by side)\nVertical [ > PlayerV | Stationary Float ] -> Cancel \t(push by root)\n(-)\nVertical [ > AxisH | Stationary Float ] -> Cancel \t(push by side)\nHorizontal [ > PlayerH | Stationary Float ] -> Cancel \t(push by root)\n\n(Too heavy)\n[ > Dango | > Dango | > Dango | Dango ] -> cancel\n\n(-------------CONVERT-------------)\n\n(Convert Dango to Fixed)\n(|)\nlate Vertical [PlayerV | FloatC StickV ] -> [ PlayerV | FixedC StickV ]\nlate Vertical [FixedC | FloatB StickV ] -> [ FixedC | FixedB StickV ]\nlate Vertical [FixedB | FloatA StickV ] -> [ FixedB | FixedA StickV ]\n(-)\nlate Horizontal [PlayerH | FloatC StickH ] -> [ PlayerH | FixedC StickH ]\nlate Horizontal [FixedC | FloatB StickH ] -> [ FixedC | FixedB StickH ]\nlate Horizontal [FixedB | FloatA StickH ] -> [ FixedB | FixedA StickH ]\n\n\n(-------------SOUND-------------)\n\n(Incorrect order SFX)\n(|)\nVertical [ > PlayerV | StickV | Stationary FloatAB ] -> SFX1\nVertical [ > FixedC | StickV | Stationary FloatAC ] -> SFX1\nVertical [ > FixedB | StickV | Stationary FloatBC ] -> SFX1\n(-)\nHorizontal [ > PlayerH | StickH | Stationary FloatAB ] -> SFX1\nHorizontal [ > FixedC | StickH | Stationary FloatAC ] -> SFX1\nHorizontal [ > FixedB | StickH | Stationary FloatBC ] -> SFX1\n\n(Stik SFX)\n(|)\nVertical [ > Player | StickV | StickV | StickV | Stationary Float ] -> SFX2\n(-)\nHorizontal [ > Player | StickH | StickH | StickH | Stationary Float ] -> SFX2\n\n(Glue SFX)\n(|)\nVertical [ > PlayerV | StickV | FloatC ] -> SFX0\nVertical [ > FixedC | StickV | FloatB ] -> SFX0\nVertical [ > FixedB | StickV | FloatA ] -> SFX0\n(-)\nHorizontal [ > PlayerH | StickH | FloatC ] -> SFX0\nHorizontal [ > FixedC | StickH | FloatB ] -> SFX0\nHorizontal [ > FixedB | StickH | FloatA ] -> SFX0\n\n\n==============\nWINCONDITIONS\n==============\n\nNo Float\n\n=======\nLEVELS\n=======\n\n\n###############\n#.............#\n#......a.1....#\n#.............#\n#....T........#\n#....I.b.2....#\n#....I........#\n#.............#\n#......c.3....#\n#.............#\n#......|K1....#\n#....2D|......#\n#......|K3....#\n#......$......#\n#.............#\n###############\n\n\n###############\n#.............#\n#.............#\n#.........cK3.#\n#.............#\n#......bK2....#\n#.............#\n#...aK1.......#\n#.............#\n#.............#\n#......|K1....#\n#....2D|......#\n#......|K3....#\n#......$......#\n#.............#\n###############\n\n\n+++++++++++++++\n+++++#####+++++\n+++++#...#+++++\n+++++#.#.#+++++\n+++++#.c.#+++++\n+++++#...#+++++\n+++++#.b.#+++++\n+++++#...#+++++\n+++++#.a.#+++++\n+++++#.|.#+++++\n+++++#.|.#+++++\n+++++##|.#+++++\n++++++#$.#+++++\n++++++####+++++\n+++++++++++++++\n+++++++++++++++\n\n\n+++++++++++++++\n+++#########+++\n+++##.#.#.##+++\n+++#b.....b#+++\n+++#.......#+++\n+++#..|.|..#+++\n+++#..|c|..#+++\n+++#..|c|..#+++\n+++#..$.$..#+++\n+++#.a...a.#+++\n+++#.......#+++\n+++#.......#+++\n+++#.......#+++\n+++#.......#+++\n+++#########+++\n+++++++++++++++\n\n\n\n++###########++\n++#.........#++\n++#.........#++\n++#...bac...#++\n++#...acb...#++\n###...cba...###\n#.............#\n#.............#\n#.............#\n#.....|||.....#\n###...|||...###\n++#...|||...#++\n++#...$$$...#++\n++#.........#++\n++#.........#++\n++###########++\n\n\n+++++#####+++++\n+++###..a###+++\n++##.......##++\n+##...c.....##+\n+#......|....#+\n##......|b...##\n#.......|.....#\n#.......$.....#\n#.....$.......#\n#.....|.......#\n##...b|......##\n+#....|......#+\n+##.....c...##+\n++##.......##++\n+++###a..###+++\n+++++#####+++++\n\n\n+++++++++++++++\n+#############+\n+#...........#+\n+#.....|.....#+\n+#..#..|..b.##+\n+#.....|.....#+\n+#.....$....b#+\n+#.---~......#+\n+#...........#+\n+#...........#+\n+#..c.c......#+\n+#...........#+\n+#..a.a......#+\n+#############+\n+++++++++++++++\n\n\n##############+\n#............##\n#........a....#\n#.............#\n#......|c.....#\n#...a..|.b....#\n#..b...|......#\n#..c...$......#\n#..---~.~---..#\n#......$...c..#\n#......|..b.a.#\n#......|......#\n#....c.|......#\n#.....b.......#\n##...a........#\n+##############\n\n\n\n\n", [2, 2, 2, 1, 3, 0, 0, 0, 0, 1, 1, 0, 0, 3, 2, 2, 2, 2, 3, 1, 1, 2, 2, 2, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 3, 2, 2, 3, 3, 0, 0, 0, 0, 3, 3, 3, 0, 1, 1], "backgroundsolid dark:0,0,0,0,0,backgroundsolid wall:1,1,1,1,1,1,0,0,0,0,\n0,0,0,0,1,1,1,backgroundsolid:2,2,2,2,1,1,1,0,\n0,0,0,0,1,1,2,2,2,2,2,2,2,2,1,\n1,0,0,0,1,1,2,2,2,2,2,2,2,2,2,\n2,1,1,0,0,1,2,2,2,2,2,2,2,2,2,\n2,2,2,1,0,1,1,2,2,2,backgroundsolid playerv:3,backgroundsolid stickv:4,4,4,2,\n2,2,2,2,1,1,1,2,2,backgroundsolid floatc:5,2,2,2,2,2,\n2,backgroundsolid floatb:6,2,2,2,backgroundsolid floata:7,1,1,backgroundsolid floata stickv:8,4,4,3,2,2,2,\n2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,\n2,2,2,2,2,5,2,2,1,1,1,2,2,2,6,\n2,2,2,2,2,2,2,2,1,1,0,1,2,2,2,\n2,2,2,2,2,2,2,2,2,1,0,0,1,1,2,\n2,2,2,2,2,2,2,2,2,1,1,0,0,0,1,\n1,2,2,2,2,2,2,2,2,1,1,0,0,0,0,\n0,1,1,1,2,2,2,2,1,1,1,0,0,0,0,\n0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,\n", 5, "1627779151924.9846"] ], [ `gallery: Rose`, - ["title Rose\nhomepage www.puzzlescript.net\nnorepeat_action\nverbose_logging\nflickscreen 11x11\ntext_color #be2633\n\nagain_interval 1\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\n\nBackground\ngrey\n\nPhysicalWall \n#1a2d38\n00000\n00000\n00000\n00000\n00000\n\nWall\n#d4ca8e \n\nmanleft\n#ff7245 #2f2f3c #3d2c29 #ff8058\n.100.\n.300.\n0222.\n.300.\n.300.\n\nmanup\n#ff7245 #2f2f3c #3d2c29 #ff8058\n.300.\n.300.\n02220\n.300.\n.300.\n\nmanright\n#ff7245 #2f2f3c #3d2c29 #ff8058\n.301.\n.300.\n.2220\n.300.\n.300.\n\nmandown\n#ff7245 #2f2f3c #3d2c29 #ff8058\n.101.\n.300.\n02220\n.300.\n.300.\n\nrosetilestart\ntransparent\n\nrosetile1\n#88b32f #be2633 \n10000\n01000\n00010\n00101\n00010\n\nrosetile2\n#88b32f #be2633 \n00000\n01000\n10100\n01000\n00000\n\nrosetile3\n#88b32f #be2633 \n00000\n00100\n01010\n00100\n00000\n\ndirttile \n#a46422 #83501b #be2633\n10100\n01010\n00101\n10010\n02021\n\nrose1\n#fce6ad #dfe989\n00000\n00000\n00000\n00001\n00001\n\nrose2\n#fce6ad #dfe989 #a3ce27\n00000\n00000\n00000\n00010\n22222\n\nrose3\n#fce6ad #dfe989 #a3ce27\n00000\n00000\n00000\n00000\n00012\n\nrose4\n#fce6ad #dfe989 #a3ce27 #be2633 #9f2436\n00000\n03334\n33343\n33433\n24333\n\nrose5\n#fce6ad #dfe989 #a3ce27 #be2633 #9f2436\n00000\n40000\n30300\n33300\n34300\n\nrose6\n#fce6ad #dfe989 #a3ce27 #88b32f\n00002\n00022\n02333\n03330\n00000\n\nrose7\n#fce6ad #dfe989 #a3ce27 #88b32f\n23332\n30003\n00000\n00000\n00000\n\nrose8\n#fce6ad #dfe989 #a3ce27 #88b32f\n20012\n22223\n13330\n10000\n00000\n\nrose9\n#fce6ad #dfe989 #a3ce27 #88b32f #be2633 #9f2436\n33445\n00554\n00000\n00000\n00000\n\nrose10\n#fce6ad #dfe989 #a3ce27 #88b32f #be2633 #9f2436\n54004\n40040\n00000\n00000\n00000\n\n(scenery - tower exterior)\npathstart\ngrey\n\npathhoriz\n#d1ccb2 #dad6c3\n11111\n00000\n00000\n00000\n11111\n\npathvert\n#d1ccb2 #dad6c3\n10001\n10001\n10001\n10001\n10001\n\npathend\n#d1ccb2 #dad6c3\n..1..\n.111.\n.101.\n10001\n10001\n\npathtri\n#d1ccb2 #dad6c3\n10001\n00000\n00000\n00000\n11111\n\npathrightbend\n#d1ccb2 #dad6c3\n..111\n.1000\n10000\n10000\n10001\n\npathupbend\n#d1ccb2 #dad6c3\n10001\n00001\n00001\n0001.\n111..\n\ngroundstart\n#c5c4be #eaeae8\n00000\n00000\n00000\n00000\n00000\n\nground1\n#c5c4be #eaeae8\n00000\n00000\n00000\n01000\n00000\n\nground2\n#c5c4be #eaeae8\n00000\n00000\n00000\n00000\n00000\n\nground3\n#c5c4be #eaeae8\n00100\n00000\n00000\n00000\n00000\n\npuddlecenter\n#b8d9e9 #d4e8f2 #c5c4be\n10101\n01010\n00000\n10101\n01010\n\npuddleleft\n#b8d9e9 #d4e8f2 #c5c4be\n.1101\n.1010\n.1000\n.1101\n.1010\n\npuddleright\n#b8d9e9 #d4e8f2 #c5c4be\n1011.\n0101.\n001..\n101..\n0101.\n\npuddletop\n#b8d9e9 #d4e8f2 #c5c4be\n.....\n11111\n00000\n10101\n01010\n\npuddlebottom\n#b8d9e9 #d4e8f2 #c5c4be\n10101\n01010\n00000\n11111\n.....\n\npuddlecornertr\n#b8d9e9 #d4e8f2 #c5c4be\n.....\n111..\n0011.\n1011.\n0101.\n\npuddlecornertl\n#b8d9e9 #d4e8f2 #c5c4be\n.....\n...11\n..100\n..101\n.1010\n\npuddlecornerbl\n#b8d9e9 #d4e8f2 #c5c4be\n..101\n...10\n...10\n....1\n.....\n\npuddlecornerbr\n#b8d9e9 #d4e8f2 #c5c4be\n1011.\n0101.\n0011.\n111..\n.....\n\nhousewall\n#fbdf98\n\nhousewallcrack\n#fbdf98 #e2d4b1\n01000\n00100\n01000\n00000\n00000\n\nhousewallside\n#fbdf98 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\nhouseroof\n#b4865a #2d303f\n00100\n01000\n10000\n00001\n00010\n\nhouseroofside\n#b4865a #bc926b #2d303f\n....1\n...10\n..110\n.1002\n11020\n\nhouseentrance\n#41555f black\n00000\n01110\n01110\n01110\n01110\n\nhousewindow\n#b7ab69 #41555f #5c7787 #4f6774\n11012\n11023\n00000\n12011\n23011\n\ntowerwall1\n#1a2d38 #86858d\n01000\n01000\n01000\n11111\n00010\n\ntowerwall2\n#1a2d38 #86858d\n00010\n00010\n00010\n11111\n01000\n\ntowerbase \n#1a2d38 #86858d \n01010\n01010\n01010\n11111\n00100\n\ntowerwall1left\n#1a2d38 #86858d #365e6b #9e9da4\n23000\n23000\n23000\n33111\n22010\n\ntowerwall2left\n#1a2d38 #86858d #365e6b #9e9da4\n22010\n22010\n22010\n33111\n23000\n\ntowerbaseleft\n#1a2d38 #86858d #365e6b #9e9da4\n23010\n23010\n23010\n33111\n22100\n\ntowerwall1right\n#1a2d38 #86858d #15242d #6b6a71\n01022\n01022\n01022\n11133\n00032\n\ntowerwall2right\n#1a2d38 #86858d #15242d #6b6a71\n00032\n00032\n00032\n11133\n01022\n\ntowerbaseright\n#1a2d38 #86858d #15242d #6b6a71\n01032\n01032\n01032\n11133\n00122\n\ntowerentrance\nblack\n\ntowerentrancefront\nblack\n\n(scenery - house interior)\n\nhousefloornorm\n#dfaa18 #c99916\n10001\n10001\n10001\n10001\n10001\n\nhousefloor1\n#dfaa18 #c99916\n10001\n10001\n11111\n10001\n10001\n\nhousefloor2\n#dfaa18 #c99916\n10001\n10001\n10001\n10001\n11111\n\nhousewallinttop\n#fce6ad\n\nhousewallintright\n#f9d371 #fce6ad\n00001\n00001\n00001\n00001\n00001\n\nhousewallintleft\n#f9d371 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\nhousewallintdown\n#f9d371\n\nhousefloorstart\ntransparent\n\nhiddendoor\n#dfaa18 #c99916\n10001\n10001\n10001\n10001\n10001\n\nhiddendoortemp\ntransparent\n\n(scenery - tower interior)\n\ntowertile\n#587ba2 #4f6e92 #7895b6 #354961 #425a78\n21111\n20003\n20003\n20003\n44443\n\ntowertilecrack\n#587ba2 #4f6e92 #7895b6 #354961 #425a78\n21111\n20003\n20003\n20003\n44443\n\ntowertilecrack1\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #a6b0bc\n21111\n20003\n20553\n25003\n44443\n\ntowertilecrack2\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #a6b0bc\n21111\n50005\n50003\n25003\n45443\n\ntowertilecrack3\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #a6b0bc\n25111\n55003\n20005\n20053\n44453\n\ntowerwallbottomleft\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #1a2d38\n51111\n55003\n55503\n55553\n55555\n\ntowerwallbottomright\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #1a2d38 #354961\n21116\n20065\n20655\n26555\n65555\n\ntowerwallinttop\n#354961 #0f1b2d\n11111\n11111\n00000\n00000\n00000\n\ntowerwallinttoppermanent\n#354961 #0f1b2d\n11111\n11111\n00000\n00000\n00000\n\ntowerwallintbottom\n#1a2d38 #354961\n11111\n00000\n00000\n00000\n00000\n\ntowerwallintleft\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #354961 #0f1b2d\n65551\n55503\n55003\n50003\n44443\n\ntowerwallintleftmid\n#354961 #0f1b2d\n00011\n00111\n01110\n11100\n11000\n\ntowerwallintlefttop\n#354961 #0f1b2d\n....0\n...00\n..000\n.0000\n00001\n\ntowerwallintright\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #354961 #0f1b2d\n25556\n20555\n20055\n20005\n44443\n\ntowerwallintrightmid\n#354961 #0f1b2d\n11000\n11100\n01110\n00111\n00011\n\ntowerwallintrighttop\n#354961 #0f1b2d\n0....\n00...\n000..\n0000.\n10000\n\ntowerpillar1\n#1d304b #b7c5c4 #8da3a2 #7c9594 #28814b #be2633\n00230\n01530\n01240\n01230\n00000\n\ntowerpillartop1\n#7c9594 \n.....\n.....\n.....\n.....\n...0.\n\ntowerpillar2\n#1d304b #b7c5c4 #8da3a2 #7c9594 #28814b\n01230\n01240\n01430\n04230\n00000\n\ntowerpillartop2\n#7baab2 #b7c5c4 #8da3a2 #7c9594 #28814b\n.....\n.1...\n.12..\n.143.\n.423.\n\ntowerpillar2special\n#1d304b #b7c5c4 #2ff5d6 #7c9594 #28814b\n01230\n01230\n01230\n01230\n00000\n\ntowerpillartop2special\n#7baab2 #b7c5c4 #2ff5d6 #7c9594 #28814b\n.....\n.1...\n.12..\n.123.\n.123.\n\ntowerpillar3\n#1d304b #b7c5c4 #2ff5d6 #7c9594 #28814b\n01230\n01230\n01230\n01230\n00000\n\ntowerpillarmid3\n#7baab2 #b7c5c4 #2ff5d6 #7c9594 #28814b\n.123.\n.123.\n.123.\n.123.\n.123.\n\ntowerpillartop3\n#7baab2 #b7c5c4 #2ff5d6 #7c9594 #6f8c82 #6e98a1\n45554\n44444\n.123.\n.123.\n.123.\n\ntowerstairsup\n#d4dcdc #a4b5b5 #b5c4c3\n....1\n...22\n..110\n.2200\n11000\n\ntowerstairsdown1\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\ntowerstairsuptemp\n#d4dcdc #a4b5b5 #b5c4c3\n....1\n...22\n..110\n.2200\n11000\n\ntowerstairsdowntemp\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\ntowerwallint\ntransparent\n\n(tower balcony)\n\ntowertilehalflight\n#829d97 #b6c6b0 #94aba6 #66827d #7693a4 #91a8b6 #526b7c #354961\n10000\n12223\n52226\n54446\n66667\n\n\ntowertileoutside\n#94aba6 #829d97 #a9bcb8 #72908a #66827d\n21111\n20004\n20004\n20004\n33334\n\ntowerbalconyleft\n#94aba6 #829d97 #72908a #66827d #deddd1 #617978 #415150\n45611\n45603\n45603\n45603\n45623\n\ntowerbalconyright\n#94aba6 #829d97 #72908a #a9bcb8 #deddd1 #617978 #415150\n31654\n30654\n30654\n30654\n22654\n\ntowerbalconytop\n#415150 #deddd1 #617978 #94aba6 #a9bcb8 #72908a #66827d\n00000\n00000\n12011\n43336\n55556\n\ntowerbalconytopright\n#415150 #deddd1 #617978 #a9bcb8 #72908a\n21111\n02111\n00211\n30021\n44021\n\ntowerbalconytopleft\n#415150 #deddd1 #617978 #66827d #72908a\n11112\n11120\n11200\n12003\n12043\n\nhighgroundstart\n#deddd1\n\nhighground1\n#deddd1 #b8d9e9\n00000\n00000\n00000\n01000\n00000\n\nhighground2\n#deddd1 #d4e8f2 #b8d9e9\n00000\n01000\n00000\n00000\n00120\n\nhighground3\n#deddd1 #d4e8f2\n00010\n00000\n10000\n00001\n00000\n\nhighpuddletopleft1\n#deddd1 #d4e8f2 #b8d9e9\n00000\n00000\n00011\n00122\n00122\n\nhighpuddletopleft2\n#deddd1 #d4e8f2 #b8d9e9\n00000\n00000\n01111\n01222\n01122\n\nhighpuddletopright1\n#deddd1 #d4e8f2 #b8d9e9\n00000\n00000\n11000\n21000\n21000\n\nhighpuddletopright2\n#deddd1 #d4e8f2 #b8d9e9\n00000\n01110\n12221\n22221\n21110\n\nhighpuddlebottomleft1\n#deddd1 #d4e8f2 #b8d9e9\n00122\n01222\n01222\n00111\n00000\n\nhighpuddlebottomleft2\n#deddd1 #d4e8f2 #b8d9e9\n00122\n00111\n00001\n00001\n00000\n\nhighpuddlebottomright\n#deddd1 #d4e8f2 #b8d9e9\n21000\n21000\n10000\n10000\n00000\n\n(tower roof)\n\nroofpattern\ntransparent\n\nroofleft\n#829d97 #99b0ab\n.....\n.....\n100..\n.....\n.....\n\nroofup\n#829d97 #72908a\n..1..\n..0..\n..0..\n.....\n.....\n\nroofright\n#829d97 #5c7571\n.....\n.....\n..001\n.....\n.....\n\nroofdown\n#829d97 #66827d\n.....\n.....\n..0..\n..0..\n..1..\n\nbasementpattern\ntransparent\n\nbaseleft\n#2e5648 #376759\n.....\n.....\n100..\n.....\n.....\n\nbaseup\n#2e5648 #294d41\n..1..\n..0..\n..0..\n.....\n.....\n\nbaseright\n#2e5648 #1c332c\n.....\n.....\n..001\n.....\n.....\n\nbasedown\n#2e5648 #233e37\n.....\n.....\n..0..\n..0..\n..1..\n\nhalftilebottomright\n#94aba6 #829d97 #a9bcb8 #8aa47f #66827d\n21111\n2000.\n200..\n20...\n3....\n\nhalftilebottomleft\n#94aba6 #829d97 #a9bcb8 #72908a #66827d\n21111\n.0004\n..004\n...04\n....4\n\nhalftiletopright\n#94aba6 #829d97 #a9bcb8 #72908a #66827d\n211..\n2000.\n20004\n20004\n33334\n\nhalftiletopleft\n#94aba6 #829d97 #a9bcb8 #72908a #66827d\n..111\n.0004\n20004\n20004\n33334\n\ntowerbalconytoprightroof\n#415150 #deddd1 #617978 #a9bcb8 #72908a\n21111\n02111\n00211\n30021\n44002\n\ntowerbalconytopleftroof\n#415150 #deddd1 #617978 #66827d #72908a\n11112\n11120\n11200\n12003\n20043\n\ntowerbalconyrightroof\n#6f90bc #6388b7 #8da9cb #5077ab #466998 #415150\n21.55\n200.5\n2000.\n20004\n33334\n\ntowerbalconyleftroof\n#6f90bc #6388b7 #8da9cb #5077ab #466998 #415150\n55.11\n5.004\n.0004\n20004\n33334\n\n(tower basement)\n\nbasemententrance\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\nbasemententrance1\n#b7c5c4 #8da3a2 #98acab #335f50 #396959 #447f6c\n33331\n54422\n54110\n52200\n11000\n\nbasemententrance2\n#a7c7c4 #91b9b5 #6ba093 #b8d2d0 #7daca8\n11112\n30002\n30002\n30002\n34444\n\nbasementstairsdown\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\nbasementstairsdowntemp\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\nbasementtile\n#396959 #335f50 #223f36 #447f6c #2b4d43\n11112\n30002\n30002\n30002\n34444\n\nbasementstairsdownblocked\n#396959 #335f50 #223f36 #447f6c #2b4d43\n11112\n30002\n30002\n30002\n34444\n\ntowerstairsdown2\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\nbasementlinetile\n#a7c7c4 #91b9b5 #6ba093 #b8d2d0 #7daca8\n11112\n30002\n30002\n30002\n34444\n\nbasementblocktile\n#396959 #335f50 #223f36 #447f6c #2b4d43\n11112\n30002\n30002\n30002\n34444\n\nbasementlineblocktile\n#a7c7c4 #91b9b5 #6ba093 #b8d2d0 #7daca8\n11112\n30002\n30002\n30002\n34444\n\nbasementwallright\n#396959 #335f50 #46826c #447f6c #2b4d43 #78b6a0\n12225\n30222\n30022\n30002\n34444\n\nbasementwallrightmid\n#46826c #78b6a0\n11000\n11100\n01110\n00111\n00011\n\nbasementwallrighttop\n#46826c #78b6a0 #12261b\n02222\n00222\n00022\n00002\n10000 \n\nbasementwallleft\n#396959 #46826c #223f36 #447f6c #2b4d43 #78b6a0\n51112\n11102\n11002\n10002\n44444\n\nbasementwallleftmid\n#46826c #78b6a0\n00011\n00111\n01110\n11100\n11000\n\nbasementwalllefttop\n#46826c #78b6a0 #12261b\n22220\n22200\n22000\n20000\n00001\n\nbasementwallbottomleft\n#396959 #335f50 #223f36 #12261b\n31112\n33002\n33302\n33332\n33333\n\nbasementwallbottomright\n#396959 #335f50 #12261b #447f6c\n11112\n30022\n30222\n32222\n22222\n\nbasementwall\ngrey\n\nbasementphysicalwall\n#12261b\n\nbasementphysicalwallperm\n#12261b\n\nbasementpillar1\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.1...\n.1...\n.12..\n.123.\n00000\n\nbasementpillar2\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n00000\n\nbasementpillartop2\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.....\n...3.\n..23.\n.123.\n.123.\n\nbasementpillar3\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n00000\n\nbasementpillarmid3\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n.123.\n\nbasementpillartop3\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.....\n.....\n.1.3.\n.123.\n.123.\n\nbasementpillar4\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n00000\n\nbasementpillartop4\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.....\n.1...\n.12..\n.123.\n.123.\n\nbasementpillar5\n#6f8c82 #d77e57 #d16b3f #c55d2f\n...3.\n...3.\n..23.\n.123.\n00000\n\nbasementpillar6\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n00000\n\nbasementpillarmid6\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n.123.\n\nbasementpillartop6\n#6f8c82 #d77e57 #d16b3f #c55d2f #6f8c82 #6e98a1\n54445\n55555\n.123.\n.123.\n.123.\n\nend\n#123456\n000..\n.000.\n..000\n...00\n....0\n\n(Drawing)\n\ndrawingboardcenter\n#ffffb3\n\ndrawingboardleft\n#ffffb3 #f7f7bb\n10000\n10000\n10000\n10000\n10000\n\ndrawingboardtop\n#ffffb3 #f7f7bb\n11111\n00000\n00000\n00000\n00000\n\ndrawingboardright\n#ffffb3 #f7f7bb\n00001\n00001\n00001\n00001\n00001\n\ndrawingboarddown\n#ffffb3 #f7f7bb\n00000\n00000\n00000\n00000\n11111\n\ndrawingboardtopleft\n#ffffb3 #f7f7bb\n11111\n10000\n10000\n10000\n10000\n\ndrawingboarddownleft\n#ffffb3 #f7f7bb\n10000\n10000\n10000\n10000\n11111\n\ndrawingboardtopright\n#ffffb3 #f7f7bb\n11111\n00001\n00001\n00001\n00001\n\ndrawingboarddownright\n#ffffb3 #f7f7bb\n00001\n00001\n00001\n00001\n11111\n\ndrawleft\n#281904\n.....\n.....\n000..\n.....\n.....\n\ndrawup\n#281904\n..0..\n..0..\n..0..\n.....\n.....\n\ndrawright\n#281904\n.....\n.....\n..000\n.....\n.....\n\ndrawdown\n#281904\n.....\n.....\n..0..\n..0..\n..0..\n\ndrawgoal0\ntransparent\n\ndrawgoal1\ntransparent\n\ndrawgoal2\ntransparent\n\ndrawgoal3\ntransparent\n\ndrawgoal4\ntransparent\n\ndrawchange\ntransparent\n\ndrawgood\ntransparent\n\ndrawwrong\ntransparent\n\n(Earth Puzzle)\n\npuzzletilewrongnorm\n#2ff5d6\n0...0\n.0.0.\n.....\n.0.0.\n0...0\n\npuzzletilewrongend\n#2ff5d6\n0...0\n.0.0.\n.....\n.0.0.\n0...0\n\npuzzletilegoodnorm\n#39f52f\n0...0\n.0.0.\n.....\n.0.0.\n0...0\n\npuzzletilewronghidden\n#3d7162 #3a6b5a #2b5146 #478572 #335c50\n31111\n30002\n30002\n30002\n44442\n\npuzzletilegoodhidden\n#386759 #3a6b5a #2b5146 #478572 #335c50\n31111\n30002\n30002\n30002\n44442\n\npuzzletilehidden\ntransparent\n\npuzzlepanel\n#d4ca8e #e5dfbb #c0b25b #27a0fc\n.....\n10002\n10302\n10002\n.....\n\npuzzlestartbadnorm\n#2ff5d6\n\npuzzlestartbadend\n#2ff5d6\n\npuzzlestartgood\n#39f52f\n\nbalancespace\n#c4cbc3\n00000\n00000\n00000\n00000\n00000\n\nnodrawspace\n#c4cbc3\n00000\n00000\n00000\n00000\n00000\n\nimbalancespace\n#c4cbc3\n00000\n00000\n00000\n00000\n00000\n\nimbalancespacerandom\n#c4cbc3\n00000\n00000\n00000\n00000\n00000\n\nclearspace\n#c4cbc3 #d11320\n10001\n01010\n00100\n01010\n10001\n\nclear\ntransparent\n\nnodraw\ntransparent\n\nimbalance\ntransparent\n\nimbalancerandom\ntransparent\n.....\n.....\n.....\n.....\n.....\n\n1left\n#71806f\n.....\n.....\n00...\n.....\n.....\n\n1up\n#71806f\n..0..\n..0..\n.....\n.....\n.....\n\n1right\n#71806f\n.....\n.....\n...00\n.....\n.....\n\n1down\n#71806f\n.....\n.....\n.....\n..0..\n..0..\n\n(Earth - selectors)\n\nselector\n#da7c7c\n00.00\n0...0\n.....\n0...0\n00.00\n\nredselector\nred\n00.00\n0...0\n.....\n0...0\n00.00\n\nnumber1\n#15ae85\n.....\n.0...\n.....\n.....\n.....\n\nnumber2\n#157bae\n.....\n.0.0.\n.....\n.....\n.....\n\nnumber3\n#1520ae\n.....\n.0.0.\n.....\n.0...\n.....\n\nnumber4\n#6615ae\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nnumberQ\n#fdfe10\n.....\n.....\n..0..\n.....\n.....\n\nnumberE\n#0fb209\n.....\n.000.\n.0.0.\n.000.\n.....\n\nnumberEwrong\n#a70f17\n.....\n.000.\n.0.0.\n.000.\n.....\n\nnumberO\n#0fb209\n.....\n.000.\n.0.0.\n.000.\n.....\n\nnumberOwrong\n#a70f17\n.....\n.000.\n.0.0.\n.000.\n.....\n\nnumber0\ntransparent\n\nGood\n#39f52f\n.....\n.....\n..0..\n.....\n.....\n\ngoodtemp\ntransparent\n\nWrong\n#d11320\n.....\n.....\n..0..\n.....\n.....\n\nblocker\nblack\n.....\n.....\n..0..\n.....\n.....\n\nwrongtemp\ntransparent\n\nchange\ntransparent\n\n(Earth - count)\n\ncount0\ntransparent\n\ncount1\ntransparent\n\ncount2\ntransparent\n\ncount3\ntransparent\n\ncount4\ntransparent\n\ncountup\ntransparent\n\ncountdown\ntransparent\n\n(Earth - goals)\n\ngoal0\ntransparent\n\ngoal1\ntransparent\n\ngoal2\ntransparent\n\ngoal3\ntransparent\n\ngoal4\ntransparent\n\ngoale\ntransparent\n\ngoalo\ntransparent\n\nchain\ntransparent\n\nchainstart\ntransparent\n\nchaingoal\ntransparent\n\nchaingoaltemp\ntransparent\n\nchainstarttemp\ntransparent\n\nleftmark\ntransparent\n\nrightmark\ntransparent\n\nupmark\ntransparent\n\ndownmark\ntransparent\n\ndrawsetup1\ntransparent\n\ndrawsetup2\ntransparent\n\ndrawsetup3\ntransparent\n\ndrawsetup4\ntransparent\n\ndrawsetup5\ntransparent\n\nhousewallsecret\ntransparent\n\n(Darkness)\n\nDark\n#d4ca8e\n\nLight\ntransparent\n\nDarkbarrier\ntransparent\n\nlightout\ntransparent\n\nmark\ntransparent\n\nsecret\n#f9d371 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\nsecret2\n#f9d371 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\nsecretsetup\n#f9d371 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\ndrawmark\ntransparent\n\ndrawmarknegative\ntransparent\n\nbasementprogressmark\ntransparent\n\ntowerprogressmark\ntransparent\n\ntowerstairsupblocked\n#587ba2 #4f6e92 #7895b6 #354961 #425a78\n21111\n20003\n20003\n20003\n44443\n\n(messages)\n\nfloor0mesage\ntransparent\n\nfloor1mesage\ntransparent\n\nfloor2mesage\ntransparent\n\nfloor3mesage\ntransparent\n\nfloor4mesage\ntransparent\n\nfloor5mesage\ntransparent\n\nfloor6mesage\ntransparent\n\nfloor7mesage\ntransparent\n\nfloor8mesage\ntransparent\n\nfloor9mesage\ntransparent\n\nbfloor1mesage\ntransparent\n\nbfloor2mesage\ntransparent\n\nbfloor3mesage\ntransparent\n\nbfloor4mesage\ntransparent\n\nbfloor5mesage\ntransparent\n\nbfloor6mesage\ntransparent\n\nbfloor7mesage\ntransparent\n\nbfloor8mesage\ntransparent\n\nbfloor9mesage\ntransparent\n\nmessagemarkup\ntransparent\n\nmessagemarkdown\ntransparent\n\nentrancemesage\ntransparent\n\npuzzle1mesage1\ntransparent\n\npuzzle1mesage2\ntransparent\n\npuzzle2mesage1\ntransparent\n\npuzzle2mesage2\ntransparent\n\npuzzle3mesage1\ntransparent\n\npuzzle3mesage2\ntransparent\n\npuzzle4mesage1\ntransparent\n\npuzzle4mesage2\ntransparent\n\npuzzle5mesage1\ntransparent\n\npuzzle5mesage2\ntransparent\n\npuzzle6mesage1\ntransparent\n\npuzzle6mesage2\ntransparent\n\npuzzle8mesage1\ntransparent\n\npuzzle8mesage2\ntransparent\n\nbpuzzle1mesage\ntransparent\n\nbpuzzle2mesage\ntransparent\n\nbpuzzle3mesage\ntransparent\n\nbpuzzle4mesage\ntransparent\n\nbpuzzle5mesage\ntransparent\n\nbpuzzle6mesage\ntransparent\n\nbpuzzle7mesage\ntransparent\n\nbpuzzle8mesage\ntransparent\n\nbpuzzle9mesage\ntransparent\n\nimbalancemesage1\ntransparent\n\nimbalancemesage2\ntransparent\n\nbalancemesagefinal\ntransparent\n\nbalancemesagefinal2\ntransparent\n\nhiddenmesage\ntransparent\n\nbloomstart\ntransparent\n\nbloom1\n#d94148 #be2633 #96222d\n.....\n.....\n....1\n..012\n00222\n\nbloom2\n#d94148 #be2633 #96222d #ab222c\n.....\n.....\n1...3\n21332\n22122\n\nbloom3\n#be2633 #96222d #ab222c #d52c37\n.....\n2....\n2000.\n2220.\n13310\n\nbloom4\n#d94148 #b12833 #96222d\n....0\n....0\n....0\n..001\n..012\n\nbloom5\n#d94148 #b12833 #96222d #d52c37\n12233\n10323\n01223\n01232\n02322\n\nbloom6\n#96222d #d52c37 #be2633\n00200\n01102\n10010\n00010\n00001\n\nbloom7\n#96222d #d52c37 #be2633 #b5242a\n00100\n20101\n02001\n00111\n00131\n\nbloom8\n#871f27 #9a1f26 #be2633\n2....\n02...\n012..\n012..\n012..\n\nbloom9\n#d94148 #b12833 #96222d\n..010\n..012\n..012\n.0112\n..012\n\nbloom10\n#d94148 #b12833 #96222d #d52c37 #ac2322\n23234\n03234\n03234\n02232\n01232\n\nbloom11\n#d52c37 #5b1111 #7d1717 #ab222c\n00010\n02112\n01001\n31021\n32110\n\nbloom12\n#96222d #d52c37 #871f27 #b5242a\n00131\n01001\n01111\n11002\n00002\n\nbloom13\n#871f27 #9a1f26 #be2633 #d52c37\n0012.\n0012.\n013..\n013..\n03...\n\nbloom14\n#d94148 #b12833 #96222d\n..010\n..012\n.0012\n..000\n....0\n\nbloom15\n#d94148 #b12833 #96222d #d52c37\n01233\n02323\n02323\n32322\n32332\n\nbloom16\n#96222d #d52c37 #ab222c\n22222\n00000\n10001\n11111\n10000\n\nbloom17\n#96222d #d52c37 #b5242a #871f27 #9a1f26\n10001\n11113\n00213\n00113\n01134\n\nbloom18\n#d52c37 #9a1f26\n00...\n10...\n10...\n10...\n0....\n\nbloom19\n#96222d #d52c37\n11010\n.1110\n...10\n.....\n.....\n\nbloom20\n#96222d #d52c37\n11011\n01100\n10111\n.1...\n.....\n\nbloom21\n#96222d #d52c37\n11001\n0111.\n1....\n.....\n.....\n\nfinalleft\n#71806f\n.....\n.....\n00...\n.....\n.....\n\nfinalup\n#71806f\n..0..\n..0..\n.....\n.....\n.....\n\nfinalright\n#71806f\n.....\n.....\n...00\n.....\n.....\n\nfinaldown\n#71806f\n.....\n.....\n.....\n..0..\n..0..\n\nfinalpattern\ntransparent\n\nbloomend\ntransparent\n\nbloomend1\ntransparent\n\ntarget\ngreen\n\n=======\nLEGEND\n=======\n\nman = manup or mandown or manright or manleft\nPlayer = man or selector or redselector or bloomend1\nground = ground1 or ground2 or ground3\npuddle = puddlecenter or puddleleft or puddleright or puddletop or puddlebottom or puddlecornertr or puddlecornertl or puddlecornerbr or puddlecornerbl\nhighpuddletopleft = highpuddletopleft1 or highpuddletopleft2\nhighpuddletopright = highpuddletopright1 or highpuddletopright2 \nhighpuddlebottomleft = highpuddlebottomleft1 or highpuddlebottomleft2\nhighpuddle = highpuddletopleft1 or highpuddletopleft2 or highpuddletopright1 or highpuddletopright2 or highpuddlebottomleft1 or highpuddlebottomleft2 or highpuddlebottomright\nhighground = highground1 or highground2 or highground3\npuzzletilewrong = puzzletilewronghidden or puzzletilewrongnorm\npuzzletilegood = puzzletilegoodhidden or puzzletilegoodnorm\npuzzletile = puzzletilewrong or puzzletilegood or puzzletilehidden\ndirection = leftmark or rightmark or upmark or downmark\npuzzlespace = balancespace or imbalancespace or imbalancespacerandom\ndrawingboard = drawingboardcenter or drawingboardleft or drawingboardright or drawingboardtop or drawingboarddown or drawingboardtopleft or drawingboardtopright or drawingboarddownright or drawingboarddownleft\nhousefloor = housefloornorm or housefloor1 or housefloor2\nhousefloorcrease = housefloor1 or housefloor2\nrose = rose1 or rose2 or rose3 or rose4 or rose5 or rose6 or rose7 or rose8 or rose9 or rose10 \ntowertilepick = towertilecrack1 or towertilecrack2 or towertilecrack3\nblocktile = basementblocktile or basementlineblocktile\ntowerstairsdown = towerstairsdown1 or towerstairsdown2\ntowerstairs = towerstairsdown1 or towerstairsdown2 or towerstairsup\npath = pathupbend or pathrightbend or pathhoriz or pathvert or pathend or pathtri or pathstart\nfloormesage = floor1mesage or floor2mesage or floor3mesage or floor4mesage or floor5mesage or floor6mesage or floor7mesage or floor8mesage or floor9mesage or bfloor1mesage or bfloor2mesage or bfloor3mesage or bfloor4mesage or bfloor5mesage or bfloor6mesage or bfloor7mesage or bfloor8mesage or bfloor9mesage or floor0mesage\nrosetile = rosetile1 or rosetile2 or rosetile3\npuzzlestartbad = puzzlestartbadnorm or puzzlestartbadend\npuzzlestart = puzzlestartbad or puzzlestartgood\n\n# = Darkbarrier and Wall\n* = Wall and chainstarttemp\n@ = Wall and chaingoaltemp\n_ = PhysicalWall\n! = imbalance and wall\n: = imbalancerandom and wall\n⸝ = nodraw and wall\n£ = clearspace\n\n(outside)\nP = manright and pathvert and floor0mesage\n. = groundstart\n- = puddlecenter\nz = pathstart and groundstart\n` = housewall\n~ = houseroof\nh = houseentrance\n꠸ = housewindow\nq = towerwall1\nw = towerwall2\n$ = towerbase\nt = towerentrance\n(inside)\n, = towertile\nl = towertilecrack\n/ = towerpillar2 and towertile\n[ = towerpillar1 and towertile\n{ = towerpillar3 and towertile\n⥁ = towerpillar2special and towertile\n↥ = towerstairsup and towertile\nx = puzzletilewrongnorm and towertile\nᵽ = puzzletilewrongend and housefloornorm and balancemesagefinal\n¥ = puzzletilewrongnorm and towertileoutside and imbalancemesage1\nᵶ = puzzletilewrongnorm and towertile and imbalancemesage2\nᶍ = puzzletilewrongnorm and towertileoutside\n☌ = puzzletilehidden and towertile\ny = puzzlestartbadnorm and dark\nᵯ = puzzlestartbadend and dark and balancemesagefinal2 and end\n↓ = towerstairsdown1\n% = towerwallint\nc = towerwallinttoppermanent\n⏙ = towerstairsupblocked and towertile\n\n(balcony)\n& = highgroundstart\n+ = highpuddlebottomright\n' = towertileoutside\n⤫ = towertileoutside and rosetilestart\n\n\n(roof)\nk = roofpattern and towertileoutside\n\n(basement)\n\" = basementtile\n; = basementlinetile\nb = basemententrance1\nn = basemententrance2 and bpuzzle1mesage\n\\ = basementpillar4 and basementtile\n] = basementpillar5 and basementtile\n} = basementpillar6 and basementtile\n| = basementblocktile\n⚎ = basementphysicalwallperm\nᵹ = puzzletilewronghidden and basementtile\n\n\n(puzzle tiles/ messages)\n\n⅕ = puzzletilewrongnorm and towertile and puzzle2mesage1\n⅙ = puzzletilewrongnorm and towertileoutside and puzzle2mesage2\n⅛ = puzzletilewrongnorm and towertile and puzzle3mesage1\n⅔ = puzzletilewrongnorm and towertile and puzzle3mesage2\n⅖ = puzzletilewrongnorm and towertile and puzzle4mesage1\n⅗ = puzzletilewrongnorm and towertile and puzzle4mesage2\n⅘ = puzzletilewrongnorm and towertile and puzzle5mesage1\n⅜ = puzzletilewrongnorm and towertile and puzzle5mesage2\n⅚ = puzzletilewrongnorm and towertile and puzzle6mesage1\n⅐ = puzzletilewrongnorm and towertileoutside and puzzle6mesage2\n⅝ = puzzletilewrongnorm and towertile and puzzle8mesage1\n↉ = puzzletilewrongnorm and towertile and puzzle8mesage2\n⅑ = towerstairsdown1 and bpuzzle2mesage\n⅒ = towerstairsdown2 and bpuzzle3mesage\n⅞ = towerstairsdown2 and bpuzzle4mesage\n⥊ = towerstairsdown2 and bpuzzle5mesage\n⥋ = towerstairsdown2 and bpuzzle6mesage\n⥌ = towerstairsdown2 and bpuzzle7mesage\n⥍ = towerstairsdown2 and bpuzzle8mesage\n⥎ = towerstairsdown2 and bpuzzle9mesage\n⥏ = towerentrance and puzzle1mesage1\n¢ = puzzletilehidden and puzzle1mesage2 and towertile\n\n\n\n(earth)\n(s = selector and goal1 and count0 and number1 and wrongtemp and puzzlespace)\n0 = balancespace and goal0 and count0 and number0 and goodtemp and dark\n1 = balancespace and goal1 and count0 and number1 and wrongtemp and dark\n2 = balancespace and goal2 and count0 and number2 and wrongtemp and dark\n3 = balancespace and goal3 and count0 and number3 and wrongtemp and dark\n4 = balancespace and goal4 and count0 and number4 and wrongtemp and dark\n? = balancespace and count0 and numberQ and goodtemp and dark\ne = balancespace and goale and count0 and numbere and goodtemp and dark\no = balancespace and goalo and count0 and numberowrong and wrongtemp and dark\n(goals with blocker and no number)\n5 = balancespace and goal0 and count0 and goodtemp and dark and blocker\n6 = balancespace and goal1 and count0 and wrongtemp and dark and blocker\n7 = balancespace and goal2 and count0 and wrongtemp and dark and blocker\n8 = balancespace and goal3 and count0 and wrongtemp and dark and blocker\n9 = balancespace and goal4 and count0 and wrongtemp and dark and blocker\n\n(drawing)\na = secret\ns = drawingboardcenter and count0 and drawgoal0\nd = drawingboardcenter and count0 and drawgoal1\nf = drawingboardcenter and count0 and drawgoal2\ng = drawingboardcenter and count0 and drawgoal3\nj = drawingboardcenter and count0 and drawgoal4\nm = housewallintdown\nu = housefloornorm\ni = housefloorstart\nr = rose1\nÐ = housewallintleft and housewallsecret\nᶃ = hiddendoor and hiddenmesage\n\nᶊ = end\n\n► = bloomstart and balancespace and blocker\n◄ = target and balancespace and blocker\n¤ = balancespace and goal0 and count0 and goodtemp and blocker and finalpattern\n┰ = balancespace and goal0 and count0 and goodtemp and blocker\n\n\n=======\nSOUNDS\n=======\n\nsfx1 50548908\nsfx2 70091308\nsfx3 2038108\nsfx4 55009308\nsfx5 88082508\nsfx6 59276308\nsfx7 68756908\nsfx8 20891708\nsfx9 71493108\nsfx10 34050308\n\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ndrawgood, drawwrong, target, bloomstart\nmark, drawmark, drawmarknegative, housefloorstart\nground1, ground2, ground3, groundstart, towertile, towertilecrack1, towertilecrack2, towertilecrack,towertilehalflight,towertileoutside,towertilecrack3,end, balancespace, drawingboardcenter, drawingboardleft, drawingboardright, drawingboardtop, drawingboarddown, drawingboardtopleft, drawingboardtopright, drawingboarddownright, drawingboarddownleft, imbalancespace, imbalancespacerandom, housefloor, blocktile, nodrawspace, clearspace\npath, pathstart, messagemarkup, messagemarkdown\nbasementtile, basementlinetile, puddlecenter, puddleleft, puddleright, puddletop, puddlebottom, puddlecornertr, puddlecornertl, puddlecornerbr, puddlecornerbl\ngood, wrong, goodtemp, wrongtemp puzzletilewrong, puzzletilegood, puzzlestartbad, puzzlestartgood, puzzletilehidden, puzzletilewrongend\nLight, Darkbarrier, number1, number2, number3, number4, number0, numberQ, numbere, numbero, numberewrong, numberowrong, chainstart, chaingoal, chaingoaltemp, chainstarttemp, imbalance, imbalancerandom, nodraw, floormesage, balancemesagefinal2\nchain, leftmark, rightmark, upmark, downmark, countup, countdown, roofpattern,imbalancemesage1, imbalancemesage2, balancemesagefinal, basementpattern, finalpattern\n1Left, drawleft, roofleft, baseleft, finalleft,clear\n1right, drawright, roofright, baseright, finalright\n1up, drawup, roofup, baseup, finalup,towerwallint, Physicalwall, basementwall, basementphysicalwall, basementphysicalwallperm\n1down, drawdown, roofdown, basedown, finaldown\ncount0, count1, count2, count3, count4, drawsetup1, drawsetup2, drawsetup3, drawsetup4, drawsetup5, highgroundstart,highground1, highground2, highground3, highpuddletopright1,highpuddletopright2,highpuddletopleft1,highpuddletopleft2, highpuddlebottomleft1,highpuddlebottomleft2, highpuddlebottomright, towerbalconytopleft, towerbalconytopright\nchange, drawchange, houseentrance, towerentrance, towerentrancefront, towerstairsup, towerstairsdown1, towerstairsuptemp, towerstairsdowntemp,towerwallintleftmid, towerwallintlefttop,towerwallintrightmid, towerwallintrighttop, towerwallinttoppermanent, basementstairsdown, basementstairsdowntemp, secret, secret2, hiddendoortemp, hiddendoor,basementwallrightmid, basementwallrighttop, basementwallleftmid, basementwalllefttop, towerbalconytoprightroof, towerbalconytopleftroof, basemententrance, basemententrance1, basemententrance2, basementstairsdownblocked, towerstairsdown2, towerstairsupblocked, dirttile\nPlayer, Wall, housewall, housewallcrack, housewallside,houseroof, houseroofside, housewindow, towerbase, towerbaseleft, towerbaseright, towerpillar1, towerpillar2, towerpillar2special, towerpillar3,towerwallintleft, towerwallintright, towerwallbottomleft, towerwallbottomright, towerwallinttop, towerwallintbottom,towerwallinttoppermanent, towerbalconyleft, towerbalconyright, towerbalconytop, housewallinttop, housewallintright, housewallintleft, housewallintdown, rose, basementwallbottomleft, basementwallbottomright, basementwallleft, basementwallright, towerwall1, towerwall2, towerbalconyrightroof, towerbalconyleftroof, basementpillar1, basementpillar2, basementpillar3, basementpillar4, basementpillar5, basementpillar6, bloomend, rosetile, rosetilestart, towerwall1right, towerwall1left, towerwall2right, towerwall2left\ngoal0, goal1, goal2, goal3, goal4, goale, goalo, drawgoal0, drawgoal1, drawgoal2, drawgoal3, drawgoal4, puzzlepanel,towerpillartop2, towerpillartop2special, towerpillarmid3, towerpillartop3, basementpillartop2, basementpillarmid3, basementpillartop3, basementpillartop4, basementpillarmid6, basementpillartop6, towerpillartop1\nDark, light, lightout, halftiletopright, halftiletopleft, halftilebottomright, halftilebottomleft\nblocker, basementprogressmark, towerprogressmark, bloom1, bloom2, bloom3, bloom4, bloom5, bloom6, bloom7, bloom8, bloom9, bloom10, bloom11, bloom12, bloom13,bloom14, bloom15, bloom16, bloom17, bloom18, bloom19, bloom20, bloom21\npuzzle1mesage1, puzzle1mesage2, puzzle2mesage1, puzzle2mesage2, puzzle3mesage1, puzzle3mesage2, puzzle4mesage1, puzzle4mesage2, puzzle5mesage1, puzzle5mesage2, puzzle6mesage1, puzzle6mesage2, puzzle8mesage1, puzzle8mesage2, bpuzzle1mesage, bpuzzle2mesage, bpuzzle3mesage, bpuzzle4mesage, bpuzzle5mesage, bpuzzle6mesage, bpuzzle7mesage, bpuzzle8mesage, bpuzzle9mesage, entrancemesage, hiddenmesage, housewallsecret,secretsetup\n\n======\nRULES \n====== \n\n(World Creation)\n\n[groundstart] -> [random ground]\n\n[rosetilestart] -> [random rosetile]\n\n[basementtile| towertileoutside roofpattern] -> [basementtile| basementtile basementpattern]\n\nvertical[pathvert | pathstart] -> [pathvert|pathvert]\nhorizontal[pathvert|pathstart] -> [pathrightbend|pathhoriz]\nhorizontal[pathhoriz|pathstart] -> [pathhoriz|pathhoriz]\nup[pathhoriz|pathstart] -> [pathtri|pathvert]\nright[pathtri|no path] -> [pathupbend|no path]\nup[pathvert|no path] -> [pathend|no path]\n\nright [puddlecenter| no puddle] -> [puddlecenter| puddleright]\nleft [puddlecenter| no puddle] -> [puddlecenter| puddleleft]\nup [puddlecenter| no puddle] -> [puddlecenter| puddletop]\ndown [puddlecenter| no puddle] -> [puddlecenter| puddlebottom]\n\nup[puddleright| no puddle] -> [puddleright| puddlecornertr]\ndown[puddleright| no puddle] -> [puddleright| puddlecornerbr]\nup[puddleleft| no puddle] -> [puddleleft| puddlecornertl]\ndown[puddleleft| no puddle] -> [puddleleft| puddlecornerbl]\n\nleft[houseroof| no houseroof] -> [houseroof| houseroofside]\nleft[housewall|ground] -> [housewallside| ground]\n\nleft[housewindow|]-> [housewindow|housewallcrack]\n\ndown[towerentrance | ground] -> [towerentrance | towerentrancefront]\n\nleft[towerwall1|ground] -> [towerwall1left|ground]\nleft[towerwall2|ground] -> [towerwall2left|ground]\nleft[towerbase|ground] -> [towerbaseleft|ground]\n\nright[towerwall1|ground] -> [towerwall1right|ground]\nright[towerwall2|ground] -> [towerwall2right|ground]\nright[towerbase|ground] -> [towerbaseright|ground]\n\ndown[towertileoutside|towertile] -> [towertileoutside|towertilehalflight]\n\n[towerwallint|basementtile] -> [basementwall|basementtile]\n[basementwall|physicalwall] -> [basementwall|basementphysicalwall]\n[basementtile|physicalwall] -> [basementtile|basementphysicalwall]\n[basementphysicalwall|physicalwall] -> [basementphysicalwall|basementphysicalwall]\n\n[towertile|basementtile] -> [basementtile|basementtile]\n\n[towertile|basementlinetile] -> [basementlinetile|basementlinetile]\n\n[towerpillar1|basementtile] -> [basementpillar1|basementtile]\n[towerpillar2|basementtile] -> [basementpillar2|basementtile]\n[towerpillar3|basementtile] -> [basementpillar3|basementtile]\n\nup[towerpillar1|] -> [towerpillar1|towerpillartop1]\nup[towerpillar2|] -> [towerpillar2|towerpillartop2]\nup[towerpillar2special|] -> [towerpillar2special|towerpillartop2special]\nup[towerpillar3||] ->[towerpillar3|towerpillarmid3|towerpillartop3]\nup[basementpillar2|] -> [basementpillar2|basementpillartop2]\nup[basementpillar3||] -> [basementpillar3|basementpillarmid3|basementpillartop3]\nup[basementpillar4|] -> [basementpillar4|basementpillartop4]\nup[basementpillar6||] -> [basementpillar6|basementpillarmid6|basementpillartop6]\n\ndown[towerwallint|towertile] -> [towerwallinttop|towertile]\nup[towerwallint|towertile] -> [towerwallintbottom|towertile]\nleft[towerwallinttop|towertile] -> [towerwallintright|towertile]\nright[towerwallinttop|towertile] -> [towerwallintleft|towertile]\nleft[towerwallintbottom|towertile] -> [towerwallbottomright|towertile]\nright[towerwallintbottom|towertile] -> [towerwallbottomleft|towertile]\nup[towerwallintleft|]-> [towerwallintleft|towerwallintleftmid]\nup[towerwallintright|]-> [towerwallintright|towerwallintrightmid]\nleft[towerwallintleftmid|] -> [towerwallintleftmid|towerwallintlefttop]\nright[towerwallintrightmid|] -> [towerwallintrightmid|towerwallintrighttop]\n\n\ndown[towertileoutside|towerwallint|towerwall1] -> [towertileoutside|halftilebottomleft towerwall2left|towerwall1]\ndown[towertileoutside|towerwallint|towerwall2] -> [towertileoutside|halftilebottomleft towerwall1left|towerwall2]\nleft[halftilebottomleft towerwall1left|towertileoutside] -> [halftilebottomright towerwall1right|towertileoutside]\nleft[halftilebottomleft towerwall2left|towertileoutside] -> [halftilebottomright towerwall2right|towertileoutside]\nup[towerwallint|towertileoutside] -> [towerwall1|towertileoutside]\n\nup[towertileoutside|towerwallint|highgroundstart]->[towertileoutside|halftiletopleft highgroundstart|highgroundstart]\nleft[halftiletopleft|towertileoutside]->[halftiletopright |towertileoutside]\nup[towertileoutside|towerwallint]->[towertileoutside|highgroundstart]\n\nup[towerbaseleft|towerwall1] -> [towerbaseleft|towerwall1left]\nup[towerbaseleft|towerwall2] -> [towerbaseleft|towerwall2left]\nup[towerbaseright|towerwall1] -> [towerbaseright|towerwall1right]\nup[towerbaseright|towerwall2] -> [towerbaseright|towerwall2right]\nvertical[towerwall1right|towerwall2] -> [towerwall1right|towerwall2right]\nvertical[towerwall2right|towerwall1] -> [towerwall2right|towerwall1right]\nvertical[towerwall1left|towerwall2] -> [towerwall1left|towerwall2left]\nvertical[towerwall2left|towerwall1] -> [towerwall2left|towerwall1left]\n\nup [towertileoutside | towertile] -> [towertileoutside| towertileoutside]\n\n[highgroundstart] -> [random highground]\n\nleft [highpuddlebottomright| no highpuddle] -> [highpuddlebottomright|random highpuddlebottomleft]\nup [highpuddlebottomright| no highpuddle ] -> [highpuddlebottomright|random highpuddletopright]\nup [highpuddlebottomleft| no highpuddle ] -> [highpuddlebottomleft|random highpuddletopleft]\n\nleft[towertileoutside | no halftiletopleft highground] -> [towertileoutside|no halftiletopleft towerbalconyleft]\nright[towertileoutside |no halftiletopright highground] -> [towertileoutside|no halftiletopright towerbalconyright]\nup[towertileoutside | highground] -> [towertileoutside|towerbalconytop]\nup[towerbalconyleft | highground] -> [towerbalconyleft|towerbalconytopleft]\nup[towerbalconyright | highground] -> [towerbalconyright|towerbalconytopright]\n\nleft[towerbalconytop | highground] -> [towerbalconytop|towerbalconytopleftroof]\nright[towerbalconytop | highground] -> [towerbalconytop|towerbalconytoprightroof]\ndown[towerbalconytopleftroof|towerbalconytop] -> [towerbalconytopleftroof| towerbalconyleftroof]\ndown[towerbalconytoprightroof|towerbalconytop] -> [towerbalconytoprightroof|towerbalconyrightroof]\n\nleft[roofpattern|roofpattern] -> [roofpattern roofleft| roofpattern roofright]\nup[roofpattern|roofpattern] -> [roofpattern roofup| roofpattern roofdown]\n\nleft[finalpattern|finalpattern] -> [finalpattern finalleft| finalpattern finalright]\nup[finalpattern|finalpattern] -> [finalpattern finalup| finalpattern finaldown]\n\nleft[basementpattern|basementpattern] -> [basementpattern baseleft| basementpattern baseright]\nup[basementpattern|basementpattern] -> [basementpattern baseup| basementpattern basedown]\n\nup[puzzletilewrong no basementtile no basementlinetile | no puzzlepanel] -> [puzzletilewrong|puzzlepanel]\n\n[imbalance | balancespace] -> [imbalance | imbalancespace]\n[imbalancerandom | balancespace] -> [imbalancerandom | imbalancespacerandom]\n[imbalancespace | balancespace] -> [imbalancespace | imbalancespace]\n[imbalancespacerandom | balancespace] -> [imbalancespacerandom | imbalancespacerandom]\n[nodraw | balancespace] -> [nodraw|nodrawspace blocker]\n[nodrawspace|balancespace] -> [nodrawspace|nodrawspace blocker]\n\nleft[drawingboardcenter|housefloor] -> [drawingboardleft|housefloor]\nright[drawingboardcenter|housefloor] -> [drawingboardright|housefloor]\nup[drawingboardcenter|housefloor] -> [drawingboardtop|housefloor]\ndown[drawingboardcenter|housefloor] -> [drawingboarddown|housefloor]\nup[drawingboardleft|housefloor] -> [drawingboardtopleft|housefloor]\nup[drawingboardright|housefloor] -> [drawingboardtopright|housefloor]\ndown[drawingboardleft|housefloor] -> [drawingboarddownleft|housefloor]\ndown[drawingboardright|housefloor] -> [drawingboarddownright|housefloor]\n\n[housefloorstart] -> [random housefloorcrease]\nright [housewallintdown|housefloor] -> [housewallintright|housefloor]\nleft[housewallintdown|housefloor]-> [housewallintleft|housefloor]\ndown [housewallintdown|housewallintdown|housefloor] -> [housewallinttop|housewallinttop|housefloor]\nleft [housewallinttop|housewallintdown] -> [housewallinttop|housewallintright]\nright [housewallinttop|housewallintdown] -> [housewallinttop|housewallintleft]\n\nright[rose1||||] -> [rose1|rose2|rose3|rose4|rose5]\ndown[rose1|] -> [rose1|rose6]\nright[rose6||||] -> [rose6|rose7|rose8|rose9|rose10]\n\nup[basementtile|basementwall] -> [basementtile|basementwallleft]\nleft[basementwallleft|basementtile] -> [basementwallright|basementtile]\nleft[basementwallleft|basementblocktile] -> [basementwallright|basementblocktile]\nup[basementwallleft|basementphysicalwall]->[basementwallleft|basementwallleftmid]\nup[basementwallright|basementphysicalwall]->[basementwallright|basementwallrightmid]\nup[basementwallleftmid|no basementphysicalwallperm basementphysicalwall]->[basementwallleftmid|basementwalllefttop]\nup[basementwallrightmid|no basementphysicalwallperm basementphysicalwall]->[basementwallrightmid|basementwallrighttop]\ndown[basementtile|basementwall] -> [basementtile|basementwallbottomleft]\nleft[basementwallbottomleft|basementtile] -> [basementwallbottomright|basementtile]\nleft[basementwallbottomleft|basementblocktile] -> [basementwallbottomright|basementblocktile]\n\nvertical [ basementlinetile|basementblocktile] -> [basementlinetile|basementlineblocktile]\n[basementlinetile|basementtile puzzletilewrong] -> [basementlinetile| basementlinetile puzzletilewrong]\n\n[basementtile|towerstairsdown1] -> [basementtile|basementstairsdownblocked]\n\n[towertilecrack] -> [random towertilepick]\n\nhorizontal[towerentrance no puzzle1mesage1|puzzle1mesage1] -> [towerentrance no puzzle1mesage1| no puzzle1mesage1]\n\nup[rosetile| |rosetile] -> [rosetile| dirttile| rosetile]\n\ndown [basemententrance|||||||housewallsecret] -> [basemententrance|||||||secretsetup]\n\n[secretsetup] up [houseentrance||drawgoal0||||] -> [secretsetup] up [houseentrance||drawsetup1|drawsetup2|drawsetup3|drawsetup4|drawsetup5]\n\nright[drawsetup1||||||] -> [drawgoal2 count0|drawgoal1|drawgoal0|drawgoal0|drawgoal0|drawgoal0|drawgoal0]\nright[drawsetup2||||||] -> [drawgoal1 count0|drawgoal0|drawgoal0|drawgoal0|drawgoal2|drawgoal2|drawgoal0]\nright[drawsetup3||||||] -> [drawgoal0 count2|drawgoal2|drawgoal2|drawgoal0|drawgoal2|drawgoal2|drawgoal0]\nright[drawsetup4||||||] -> [drawgoal0 count3|drawgoal2|drawgoal2|drawgoal0|drawgoal0|drawgoal0|drawgoal1]\nright[drawsetup5||||||] -> [drawgoal0 count2|drawgoal0|drawgoal0|drawgoal0|drawgoal0|drawgoal1|drawgoal2]\n\n[secretsetup housewallintleft] -> [secret2 no housewallintleft]\n\n\n(Transportation Messages)\n[action man puzzle2mesage1] -> [action man] sfx1 message I've been watching you\n[action man puzzle2mesage2] -> [action man] sfx4 message Every connection draws us closer\n[action man puzzle3mesage1] -> [action man] sfx7 message If you don't want to, its ok\n[action man puzzle3mesage2] -> [action man] sfx4 message All you need to do is be here \n[action man puzzle4mesage1] -> [action man] sfx5 message I'll be waiting at the top\n[action man puzzle4mesage2] -> [action man] sfx6 message Take as much time as you need\n[action man puzzle5mesage1] -> [action man] sfx2 message My mind is above and heart below\n[action man puzzle5mesage2] -> [action man] sfx2 message Both parts equally important\n[action man puzzle6mesage1] -> [action man] sfx7 message I so enjoy you being here\n[action man puzzle6mesage2] -> [action man] sfx1 message Can you see it in my eyes?\n[action man puzzle8mesage1] -> [action man] sfx8 message I'd like it if you stay\n[action man puzzle8mesage2] -> [action man] sfx10 message I trust you feel the same\n[action man bpuzzle2mesage] -> [action man] sfx5 message I'll be waiting at the bottom\n[action man bpuzzle3mesage] -> [action man] sfx6 message I can't wait till you're here\n[action man bpuzzle4mesage] -> [action man] sfx10 message I know you feel the same\n[action man bpuzzle5mesage] -> [action man] sfx8 message I can't solve your problems\n[action man bpuzzle6mesage] -> [action man] sfx2 message But I will see them through with you\n[action man bpuzzle7mesage] -> [action man] sfx9 message I see you\n[action man bpuzzle8mesage] -> [action man] sfx9 message And you see me\n[action man bpuzzle9mesage] -> [action man] sfx3 message Where have you been?\n[action man puzzle1mesage2] -> [action man] sfx6 message Heart and mind together as one\n\n\n[action man imbalancemesage1] -> [action man imbalancemesage1] sfx9 message You can only do so much\n[action man imbalancemesage2] -> [action man imbalancemesage2] sfx9 message You can leave it if you want to\n[action man balancemesagefinal] -> [action man balancemesagefinal] sfx1 message I've been watching you... From thee empty floor\n[action selector balancemesagefinal2] -> [action selector balancemesagefinal2] sfx4 message Look me in the eyes\n\n(Transportation)\n\n[> man floormesage | puzzlepanel] -> [man floormesage| puzzlepanel]\n\n\nup [towerentrance man floormesage puzzle1mesage1 | | | towerentrance | ] -> [towerentrance | | | towerentrance | man floormesage messagemarkup] sfx3 message Where have you been?\nup [towerentrance man floormesage | | | towerentrance | ] -> [towerentrance | || towerentrance | man floormesage messagemarkup]\ndown [towerentrance man floormesage | | | towerentrance | ] -> [towerentrance | | | towerentrance | man floormesage messagemarkdown]\n\n [action man puzzletilewrongend] [puzzlestartbadend] -> [puzzletilewrongend] [selector puzzlestartbadend light] checkpoint\n [action selector puzzlestartbadend] [puzzletilewrongend] -> [puzzlestartbadend lightout] [mandown puzzletilewrongend] checkpoint\n\nhorizontal [action man puzzletile| ... | puzzlestart] -> [puzzletile|...| puzzlestart selector light] checkpoint\n\nhorizontal [action selector puzzlestart|...| puzzletile] -> [puzzlestart lightout|...|puzzletile mandown] checkpoint\n\n up [action man floormesage towerstairsup|...|towerstairsdown] -> [towerstairsup|...|towerstairsdown messagemarkup man floormesage ]\ndown [action man floormesage towerstairsdown|...|towerstairsup] -> [towerstairsdown|...|towerstairsup messagemarkdown man floormesage]\n[towerstairsuptemp no man] -> [towerstairsup]\n[towerstairsdowntemp no man] -> [towerstairsdown2]\n\n[houseentrance man floormesage no mark] [houseentrance no man] -> [houseentrance] [ houseentrance man floormesage mark]\n\n[hiddendoor man floormesage no mark hiddenmesage] [hiddendoor no man] -> [hiddendoor] [ hiddendoor man floormesage mark] sfx6 message My heart is yours\n[hiddendoor man floormesage no mark] [hiddendoor no man] -> [hiddendoor] [ hiddendoor man floormesage mark]\n\n[basemententrance man floormesage no mark] [basemententrance1 no man] -> [basemententrance] [basemententrance1 man floormesage mark messagemarkdown]\n[basemententrance1 man floormesage no mark] [basemententrance no man] -> [basemententrance1] [basemententrance man floormesage mark messagemarkup]\n[basemententrance2 man floormesage no mark bpuzzle1mesage] [basemententrance2 no man bpuzzle1mesage] -> [basemententrance2] [basemententrance2 man floormesage mark] sfx6 message My mind is yours\n[basemententrance2 man floormesage no mark] [basemententrance2 no man] -> [basemententrance2] [basemententrance2 man floormesage mark]\n\ndown [down man blocktile floormesage | blocktile] -> [man blocktile floormesage | blocktile]\nup [up man blocktile floormesage | blocktile] -> [man blocktile floormesage | blocktile]\n\n [ > man floormesage] -> [> man > floormesage]\n late [man] [floormesage no man] -> [man floormesage] []\n \n \n [> bloomend1] -> [bloomend1]\n(darkness)\n\n[light | dark] -> [light|light]\n\n[lightout | light] -> [lightout | lightout]\n\n[lightout] -> [dark]\n\n(man movement)\n[left man] -> [left manleft]\n[right man] -> [right manright]\n[up man] -> [up manup]\n[down man] -> [down mandown]\n\n(drawing)\n\nleft [left man drawingboard no drawleft | drawingboard] -> [drawingboard drawleft drawmark | drawingboard drawright man drawmark]\nright [right man drawingboard no drawright | drawingboard] -> [drawingboard drawright drawmark | drawingboard drawleft man drawmark]\nup [up man drawingboard no drawup | drawingboard] -> [drawingboard drawup drawmark| drawingboard drawdown man drawmark]\ndown [down man drawingboard no drawdown | drawingboard] -> [drawingboard drawdown drawmark| drawingboard drawup man drawmark]\n\nleft [left man drawingboard drawleft | drawingboard drawright] -> [drawingboard no drawleft drawmarknegative| drawingboard no drawright man drawmarknegative]\nright [right man drawingboard drawright | drawingboard drawleft] -> [drawingboard no drawright drawmarknegative| drawingboard no drawleft man drawmarknegative]\nup [up man drawingboard drawup | drawingboard drawdown] -> [drawingboard no drawup drawmarknegative| drawingboard no drawdown man drawmarknegative]\ndown [down man drawingboard drawdown | drawingboard drawup] -> [drawingboard no drawdown drawmarknegative| drawingboard no drawup man drawmarknegative]\n\n[count0 drawmark] -> [count1 drawchange]\n[count1 drawmark] -> [count2 drawchange]\n[count2 drawmark] -> [count3 drawchange]\n[count3 drawmark] -> [count4 drawchange]\n\n[count4 drawmarknegative] -> [count3 drawchange]\n[count3 drawmarknegative] -> [count2 drawchange]\n[count2 drawmarknegative] -> [count1 drawchange]\n[count1 drawmarknegative] -> [count0 drawchange]\n\n[count4 drawgoal4] [drawchange] -> [count4 drawgoal4 drawgood] [drawchange]\n[count3 drawgoal3] [drawchange] -> [count3 drawgoal3 drawgood] [drawchange]\n[count2 drawgoal2] [drawchange] -> [count2 drawgoal2 drawgood] [drawchange]\n[count1 drawgoal1] [drawchange] -> [count1 drawgoal1 drawgood] [drawchange]\n[count0 drawgoal0] [drawchange] -> [count0 drawgoal0 drawgood] [drawchange]\n\n[drawingboard no drawgood] [drawchange] -> [drawingboard drawwrong] [drawchange]\n\n[secret] -> [basementstairsdowntemp]\n[secret2] -> [hiddendoortemp]\n\n[basementstairsdowntemp] [drawingboard drawwrong]-> [secret] [drawingboard drawwrong]\n[basementstairsdowntemp] [drawchange]-> [basemententrance] [drawchange]\n[basementstairsdowntemp] -> [secret]\n[hiddendoortemp] [drawingboard drawwrong]-> [secret2] [drawingboard drawwrong]\n[hiddendoortemp] [drawchange]-> [hiddendoor] [drawchange]\n[hiddendoortemp] -> [secret2]\n\n\n[drawingboard drawgood] -> [drawingboard]\n[ > man | secret] -> [ man | secret]\n[ > man | secret2] -> [ man | secret2]\n[ > man | basementphysicalwall] -> [man | basementphysicalwall]\n\n(Earth)\n\n(clearing)\n[action selector clearspace| balancespace] -> [selector clearspace | clear balancespace]\n\nstartloop\n\n[clear 1right] -> [clear]\n[clear 1down] -> [clear]\n[clear 1up] -> [clear]\n[clear | balancespace] -> [clear |balancespace clear]\n\nendloop\n\n[clear] -> [count0 wrong change]\n\n(selector controls)\n\n[Action selector] -> [redselector]\n[Action redselector] -> [selector]\n\n[> redselector | puzzlestart] -> [redselector | puzzlestart]\n[> redselector nodrawspace] -> [redselector nodrawspace]\n[> redselector | clearspace] -> [redselector | clearspace]\n\n[wrongtemp light] -> [wrong light]\n[goodtemp light] -> [good light]\n[good dark] -> [goodtemp dark]\n[wrong dark] -> [wrongtemp dark]\n\n(marking for connection)\nright [right redselector balancespace | balancespace] -> right[redselector balancespace rightmark|balancespace leftmark]\nleft [left redselector balancespace | balancespace] -> left[redselector balancespace leftmark|balancespace rightmark]\nup [up redselector balancespace | balancespace] -> up[redselector balancespace upmark|balancespace downmark]\ndown [down redselector balancespace | balancespace] -> down[redselector balancespace downmark|balancespace upmark]\n\n(marking for connection in imbalance)\nright [right redselector imbalancespace | imbalancespace] -> right[redselector imbalancespace rightmark|imbalancespace rightmark]\nleft [left redselector imbalancespace | imbalancespace] -> left[redselector imbalancespace leftmark|imbalancespace leftmark]\nup [up redselector imbalancespace | imbalancespace] -> up[redselector imbalancespace upmark|imbalancespace upmark]\ndown [down redselector imbalancespace | imbalancespace] -> down[redselector imbalancespace downmark|imbalancespace downmark]\n\n(marking for connection in imbalance random)\nright [right redselector imbalancespacerandom | imbalancespacerandom] -> right[redselector imbalancespacerandom rightmark|imbalancespacerandom random direction]\nleft [left redselector imbalancespacerandom | imbalancespacerandom] -> left[redselector imbalancespacerandom leftmark|imbalancespacerandom random direction]\nup [up redselector imbalancespacerandom | imbalancespacerandom] -> up[redselector imbalancespacerandom upmark|imbalancespacerandom random direction]\ndown [down redselector imbalancespacerandom | imbalancespacerandom] -> down[redselector imbalancespacerandom downmark|imbalancespacerandom random direction]\n\n\n(making connection)\n[puzzlespace leftmark no 1left] -> [puzzlespace 1left countup]\n[puzzlespace leftmark 1left] -> [puzzlespace no 1left countdown]\n[puzzlespace rightmark no 1right] -> [puzzlespace 1right countup]\n[puzzlespace rightmark 1right] -> [puzzlespace no 1right countdown]\n[puzzlespace upmark no 1up] -> [puzzlespace 1up countup]\n[puzzlespace upmark 1up] -> [puzzlespace no 1up countdown]\n[puzzlespace downmark no 1down] -> [puzzlespace 1down countup]\n[puzzlespace downmark 1down] -> [puzzlespace no 1down countdown]\n\n(changing the count)\n[count0 countup] -> [count1 change]\n[count1 countup] -> [count2 change]\n[count2 countup] -> [count3 change]\n[count3 countup] -> [count4 change]\n[count4 countdown] -> [count3 change]\n[count3 countdown] -> [count2 change]\n[count2 countdown] -> [count1 change]\n[count1 countdown] -> [count0 change]\n\n(good and bad)\n\n[change numbere] -> [change numberewrong]\n[change numbero] -> [change numberowrong]\n[change good] -> [wrong]\n\n\n[count1 goal1 no goodtemp] -> [count1 goal1 good]\n[count2 goal2 no goodtemp] -> [count2 goal2 good]\n[count3 goal3 no goodtemp] -> [count3 goal3 good]\n[count4 goal4 no goodtemp] -> [count4 goal4 good]\n[count0 goal0 no goodtemp] -> [count0 goal0 good]\n[numberQ no goodtemp] -> [numberQ good]\n\n[count1 goalo no goodtemp numberowrong] -> [count1 goalo good numbero]\n[count2 goale no goodtemp numberewrong] -> [count2 goale good numbere]\n[count3 goalo no goodtemp numberowrong] -> [count3 goalo good numbero]\n[count4 goale no goodtemp numberewrong] -> [count4 goale good numbere]\n[count0 goale no goodtemp numberewrong] -> [count0 goale good numbere]\n\n\n(Chain)\n[chain] -> []\n\n[chainstarttemp | light] -> [chainstart | light]\n[chainstart | dark] -> [chainstarttemp | dark]\n[chaingoaltemp | light] -> [chaingoal | light]\n[chaingoal | dark] -> [chaingoaltemp | dark]\n\n[chainstart | puzzlespace] -> [chainstart | puzzlespace chain]\n[chainstart | imbalancespace] -> [chainstart | imbalancespace chain]\n[chainstart | imbalancespacerandom] -> [chainstart | imbalancespacerandom chain]\n\nstartloop\n\nright [chain 1right | ] -> [chain 1right | chain]\nleft [chain 1left | ] -> [chain 1left | chain]\nup [chain 1up | ] -> [chain 1up | chain]\ndown [chain 1down | ] -> [chain 1down | chain]\n\nendloop\n\n[chain | chaingoal] -> [chain | chaingoal chain]\n\n[mark no man] -> []\n[drawmark] -> []\n[drawmarknegative] -> []\n[drawchange] -> []\n\n(chacking for solution)\nhorizontal[puzzlestartbad|dark|...|puzzletilewrong] -> [puzzlestartbad|dark|...|puzzletilewrong mark]\nhorizontal[puzzlestartbad|...|puzzletilewrong] [chaingoal no chain] -> [puzzlestartbad|...|puzzletilewrong mark] [chaingoal no chain] \nhorizontal[puzzlestartbad|...|puzzletilewrong] [wrong] -> [puzzlestartbad|...|puzzletilewrong mark] [wrong]\n\nhorizontal[puzzletilewrongnorm no mark|...|puzzlestartbad] -> [puzzletilegoodnorm|...|puzzlestartgood]\nhorizontal[puzzletilewronghidden no mark|...|puzzlestartbad] -> [puzzletilegoodhidden|...|puzzlestartgood]\n\nup [puzzletilegood||||] -> [puzzletilegood||||basementprogressmark]\nleft [puzzletilegood||] -> [puzzletilegood||basementprogressmark]\n[basementprogressmark|basementstairsdownblocked] -> [basementprogressmark|towerstairsdown2]\n\n(messages)\n[man floor1mesage messagemarkup] -> [man floor2mesage] message Floor 2\n[man floor2mesage messagemarkup] -> [man floor3mesage] message Floor 3\n[man floor3mesage messagemarkup] -> [man floor4mesage] message Floor 4\n[man floor4mesage messagemarkup] -> [man floor5mesage] message Floor 5\n[man floor5mesage messagemarkup] -> [man floor6mesage] message Floor 6\n[man floor6mesage messagemarkup] -> [man floor7mesage] message Floor 7\n[man floor7mesage messagemarkup] -> [man floor8mesage] message Floor 8\n[man floor8mesage messagemarkup] -> [man floor9mesage] message Rooftop Garden\n[man floor9mesage messagemarkdown] -> [man floor8mesage] message Floor 8\n[man floor8mesage messagemarkdown] -> [man floor7mesage] message Floor 7\n[man floor7mesage messagemarkdown] -> [man floor6mesage] message Floor 6\n[man floor6mesage messagemarkdown] -> [man floor5mesage] message Floor 5\n[man floor5mesage messagemarkdown] -> [man floor4mesage] message Floor 4\n[man floor4mesage messagemarkdown] -> [man floor3mesage] message Floor 3\n[man floor3mesage messagemarkdown] -> [man floor2mesage] message Floor 2\n[man floor2mesage messagemarkdown] -> [man floor1mesage] message Floor 1\n[man floor1mesage messagemarkdown] -> [man floor0mesage]\n[man floor0mesage messagemarkdown] -> [man bfloor1mesage] message Basement Floor 1\n[man bfloor1mesage messagemarkdown] -> [man bfloor2mesage] message Basement Floor 2\n[man bfloor2mesage messagemarkdown] -> [man bfloor3mesage] message Basement Floor 3\n[man bfloor3mesage messagemarkdown] -> [man bfloor4mesage] message Basement Floor 4\n[man bfloor4mesage messagemarkdown] -> [man bfloor5mesage] message Basement Floor 5\n[man bfloor5mesage messagemarkdown] -> [man bfloor6mesage] message Basement Floor 6\n[man bfloor6mesage messagemarkdown] -> [man bfloor7mesage] message Basement Floor 7\n[man bfloor7mesage messagemarkdown] -> [man bfloor8mesage] message Basement Floor 8\n[man bfloor8mesage messagemarkdown] [drawingboard] -> [man bfloor9mesage] [drawingboard clear]\n[man bfloor9mesage messagemarkup] -> [man bfloor8mesage] message Basement Floor 8\n[man bfloor8mesage messagemarkup] -> [man bfloor7mesage] message Basement Floor 7\n[man bfloor7mesage messagemarkup] -> [man bfloor6mesage] message Basement Floor 6\n[man bfloor6mesage messagemarkup] -> [man bfloor5mesage] message Basement Floor 5\n[man bfloor5mesage messagemarkup] -> [man bfloor4mesage] message Basement Floor 4\n[man bfloor4mesage messagemarkup] -> [man bfloor3mesage] message Basement Floor 3\n[man bfloor3mesage messagemarkup] -> [man bfloor2mesage] message Basement Floor 2\n[man bfloor2mesage messagemarkup] -> [man bfloor1mesage] message Basement Floor 1\n[man bfloor1mesage messagemarkup] -> [man floor0mesage]\n[man floor0mesage messagemarkup] -> [man floor1mesage] message Floor 1\n\n[drawingboard clear| drawingboard] -> [drawingboard clear| drawingboard clear]\n\n[drawright clear] -> [clear]\n[drawup clear] -> [clear]\n[drawdown clear] -> [clear]\n[clear] -> [count0]\n\n(end)\nright[bloom21|] -> [bloom21|bloomend1]\n\nright[bloom17|] -> [bloom17|bloom18]\nright[bloom20|] -> [bloom20|bloom21] again\n\nright[bloom12|] -> [bloom12|bloom13]\nright[bloom16|] -> [bloom16|bloom17]\nright[bloom19|] -> [bloom19|bloom20] again\n\nright[bloom7|] -> [bloom7|bloom8]\nright[bloom11|] -> [bloom11|bloom12]\nright[bloom15|] -> [bloom15|bloom16]\ndown[bloom15|] -> [bloom15|bloom19 again]\n\nright[bloom6|] -> [bloom6|bloom7]\nright[bloom10|] -> [bloom10|bloom11]\nright[bloom14|] -> [bloom14|bloom15] again\n\nright[bloom2|] -> [bloom2|bloom3]\nright[bloom5|] -> [bloom5|bloom6]\nright[bloom9|] -> [bloom9|bloom10]\ndown[bloom9|] -> [bloom9|bloom14] again\n\nright[bloom1|] -> [bloom1|bloom2]\nright[bloom4|] -> [bloom4|bloom5]\ndown[bloom4|] -> [bloom4|bloom9] again\n\nright[bloomstart|] -> [bloomstart|bloom1]\ndown[bloomstart|] -> [bloomstart|bloom4] again\n\n[action bloomend1] -> [bloomend]\n\n\n==============\nWINCONDITIONS\n==============\n\n\nAll end on puzzlestartgood\n\nAll target on bloomend\n\n======= \nLEVELS\n=======\n\n###########&&&%%%%%&&&###########\n###########&&%⤫⤫⤫⤫⤫%&&###########\n###########&%kk'''kk%&###########\n###########%⤫kkk'kkk⤫%###########\n###########'⤫kkk'kkk⤫'###########\n###########'⤫'k''/k'⤫'###########\n###########'⤫'kkkkk'⤫'###########\n###########%⤫'/'''''⤫%###########\n###########q%''''↓''%q###########\n###########ww%⤫⤫⤫⤫⤫%ww###########\n###########qqq%%%%%qqq###########\n###########___%%%%%___###########\n##@###@####__%,,,,,%__###@###@###\n##221222###_%,[,{,,[%_##1221122##\n#y222222@##%[⅝,,[,,,[%##2302221@#\n#£122132###,[,[[[l,,,,#*2323121##\n##221212###,{,,,[[↉,{,##1241222y#\n#*222222@##,[[[,[[[[,,##13202?3£#\n##222232###%,,[↓/,,,,%##12?3222##\n##233212###_%,{[[↥,,%_#@2202232@#\n######@####__%,[,,[%__##2??2321##\n###########___%%%%%___###@###@###\n###########___%%%%%___###########\n###########__%,,,,,%__###########\n###########_%,,,l,,,%_######⸝####\n###########%,,⥁,,,{,,%###02110###\n###########,,,,{,{,,l,###22032###\n###########,,,,,¢,,,,,###23140y##\n###########,,,,{,{,,,,###10211###\n###########%,,{↥,↓{,,%###02100###\n###########_%,,,l,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########&&&&&&&&&&&###########\n###########&&&&&&&&&&&#####@#####\n###########&&+&&+&&+&&##22?2212@#\n###########&&&&&&&&&&&#@2101222##\n###########&&&&&&&&&&&##2222222##\n###########&&&&&&&&&&&##2212422*#\n###########&&&'''''&&&#@2220202£#\n###########&&&''⅐''&&&##222?222y#\n###########&&&'''''&&&#######@###\n###########&&&'''''&&&###########\n###########___c'''c___###########\n###########___c'''c___###########\n###########__%,,,,,%__###########\n#####*#####_%,l,,,,,%_###########\n##y13121###%,,,,⅚,,,,%###0220:###\n##£23232@##[[[,,,,,[[[###2222####\n###o3?33###,l,,,,,,,,ᵶ##@2222y###\n###12222###///,,l,,///###0220####\n###12121@##%,,,↓[↥,,,%#####*#####\n###@#######_%,l,,,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########___%%%%%___#######@###\n###########__%,⅜,[,%__###21?22y##\n###########_%,,,/l,,%_##@21022£##\n#####@#####%,,,,,,,,,%###23?22###\n###y11?####,,,,[,⅘,,,,###23023@##\n###*223####,,,,,/,,,,,##*12?11###\n####?32####,l,,,,,,,,,###########\n###########%,,,↥,↓,,,%###########\n###########_%,,l/,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########&&&&&&&&&&&###########\n###########&+&&&&&&&&&###########\n###########&&&&&&&&&&&###########\n###########&&&&&+&&&&&###@#!#####\n###########&&&&&&&&&&&###2221@###\n###########&&&&&&&&&&&###3221####\n###########&&&'''''&&&###3221####\n###########+&&''¥''&&&##@2221y###\n###########&&&'''''&&&#####*#####\n###########&&&'''''&&&###########\n###########___c'''c___###########\n###########___c'''c___###########\n#######@###__%,,,,,%__###########\n###*e2o1###_%,,,/,,,%_####@######\n####2o3o###%,,/,,,/,,%###e1321*##\n###yo1e1###,,⅗,,,,,,,,###2e232###\n###£2e3o@##,l,,,,,,⅖,,###21oe1y##\n####o3e2###,,,,,,,,l,,###1e3oo£##\n####@######%,,,↓/↥,,,%##@2o112###\n###########_%,,,l,,,%_#######@###\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########___%%%%%___###########\n###########__%/,,,,%__######@####\n###########_%/,,,,l,%_####e211@##\n######@####%,[⅔,,,/,,%####2432y##\n###@2oe####,,,[,,,,/,,###@133e£##\n###yee3####,,,,,l,⅛[,,####1212###\n####12o@###,l,,,,,[l,,#####*#####\n####*######%,,,↥,↓,,,%###########\n###########_%,,,,,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########&&&&&&&&&&&###########\n####@##@###&&&&&&&&+&&###########\n###122221##&&+&&&&&&&&###########\n###112132@#&&&&&&&&&&&###########\n##*222022##&&&&&&&&&&&###########\n###230232##&&&&&&&&&&&###########\n##£232331@#&&&'''''&&+###########\n##y222121##&&&''⅙''&&&###########\n####@##@###&&&'''''&&&###########\n###########&&&'''''&&&###########\n###########___c'''c___###########\n###########___c'''c___###########\n###########__%,,,,,%__###########\n####*######_%,,l,,,,%_###########\n##y22221@##%,⅕[,,,,,,%###1222####\n##£23232###,,,,,,l,,,,##@2331####\n###12212###,,l,,,,,,,,###2332£###\n###22421###,,,,,x,,,,,###1212y###\n###12221@##%,,,↓/↥,l,%####*######\n###@##@####_%,,,,,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########___%%%%%___###########\n###########__%,,,,,%__###########\n#####*#####_%,,l,,,,%_###########\n###12321###%x/,,,,,/,%##@22200y##\n##y12321###,,,,,,x,,l,###20201£##\n###@###@###,l,,,,,,,,,###22323###\n###########,,,,,,,,,,,###02101###\n###########%,,,↥/,,,,%###02100###\n###y121####_%xl,,,,,%_####*######\n###########__%,,,,,%__###########\n###########___%ttt%___###########\n.......$qqqqqqqqqqqqqqqqq$...~~~~\n..---...$$wwwwwwwwwwwww$$...~~~~~\n..-.......$$$qq⥏⥏⥏qq$$$....``````\n.............$$...$$.......```꠸``\n................z..........`h````\n................z...........z....\n............-...z...........z....\n...zzzzzzzzzzzzzzzzzzzzzzzzzz....\n...p....--............---........\n...z.........................--..\n...---...........................\nmmmmmmmmmmmmmmrmmmmmmm___________\nmmmmmmmmmmmmmmmmmmmmmm___________\nmmmmmmmmmmmmuiuuiuuuua___________\nmmmmmmmmmmmmuuiuuiuuum___________\nmiuiuᵽmmmmmmiffsssffim_\"\"\"\"\"\"____\nᶃuiuuummmmmmugjfsfjgumn;;;;;;____\nmmmmmmmmmmmmifjfsfjfum_\"\"\"\"\"\"____\nmmmmmmmmmmmmusfsssfsum____\"\"\"____\nmmmmmmmmmmmmusfffffsum____\"\"\"____\nmmmmmmmmmmmmuuuiuuiuiÐ____\"\"\"____\nmmmmmmmmmmmmmhmmmmmmmm____\"b\"____\n###########__%\"\";\"\"%__###########\n###########_%\"[⅑;\"]\"%_###@#######\n####@######%\"\"\"\"x\"\"\"\"%###2167y###\n###2167####\"/\"\"\";\"\"\"\\\"###3278£###\n##@3388*###\"\"\"\"\";\"\"\"\"\"###1276@###\n##y8888####;;;;;x;;;;n#####*#####\n##£7667####\"\"\"\"\";\"\"\"\"\"###########\n#####@#####\"/\"\"\";\"\"\"\\\"###########\n###########%\"\"\"\";\"\"\"\"%###########\n###########_%\"[\";\"]\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"↥;⅒\"\"%_###########\n###########%/\"\"\";\"\"\"{%######@####\n###########\"\"\"\"\";\"\"\"\"\"##@1232####\n###########\"\"\"]\";\"\\\"\"\"###3232*###\n###########\"\"\"\"\"x\"\"\"\"\"###2332y###\n###########\"\"\"/\";\"[\"\"\"##@7878£###\n###########\"\"\"\"\";\"\"\"\"\"###7876####\n###########%{\"\"\";\"\"\"\\%######@####\n###########_%\"\"\";\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"[⅞\"↥/\"%_###########\n###########%\"\"\"\"\"\"\"\"\"%###@###*###\n###########\"/\"\"\"\"\"\"\"\\\"###28677###\n###########\"\"\"\"\"\"\"\"\"\"\"###33892###\n###########\"\"\"\"\"x\"\"\"\"\"##@20731y##\n###########\"\"\"\"\"\"\"\"\"\"\"###37533£##\n###########\"[\"\"\"\"\"\"\"]\"###78782###\n###########%\"\"\"\"\"\"\"\"\"%###@###@###\n###########_%\"]\"\"\"\\\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"↥\"⥊\"\"%_###########\n###########%/\"]\"\"\"/\"/%###@#######\n###########\"\"\"\"\"\"\"\"\"\"\"###6866@###\n###########\"/\"\"\"\"\"\"\"]\"###6383####\n###########\"\"\"\"\"x\"\"\"\"\"##*8886y###\n###########\"]\"\"\"\"\"\"\"/\"###6181£###\n###########\"\"\"\"\"\"\"\"\"\"\"#####@#####\n###########%/\"/\"\"\"]\"/%###########\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"⥋\"↥\"\"%_###########\n###########%\"\"/\"\"\"{\"\"%###@#######\n###########\"[\"\"\"{\"\"\"/\"###2332@###\n###########\"\"\"\"\"\"\"\"\"\"\"###2222####\n###########;;;;;x;;;;;###7777y###\n###########\"\"\"\"\"\"\"\"\"\"\"##*7667£###\n###########\"{\"\"\"[\"\"\"/\"######@####\n###########%\"\"/\"\"\"[\"\"%###########\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"↥\"⥌\"\"%_#####@#####\n###########%\"\"\"\"\"\"\"\"\"%##222777###\n###########\"\"/[\"\"\"{\\\"\"#@343656###\n###########\"\"\"\"{\"]\"\"\"\"##222777###\n###########\"\"\"\"\"x\"\"\"\"\"##777777y##\n###########\"\"\"\"[\"{\"\"\"\"##656898£##\n###########\"\"/{\"\"\"]\\\"\"##777777###\n###########%\"\"\"\"\"\"\"\"\"%##*####@###\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"⥍\"↥\"\"%_###########\n###########%\"\"\"\"\"\"\"\"\"%######⸝####\n###########\"\"\"}\"\"\"}\"\"\"###00220###\n###########\"\"\"\"}\"}\"\"\"\"###14231###\n###########\"\"\"\"\"¢\"\"\"\"\"###11303y##\n###########\"\"\"\"}\"}\"\"\"\"###02410###\n###########\"\"\"{\"\"\"}\"\"\"###00210###\n###########%\"\"\"\"\"\"\"\"\"%###########\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\\↥\"⥎]\"%_###########\n##y6866*###%\"\"\"\"\"\"\"ᵹ\"%###########\n##£7777####\"/\"\"\"\"\"\"\"]\"###########\n###8687####\"\"\"\"\"\"\"\"\"\"\"######⸝####\n##@8797####\"\"\"\"\"\"\"\"\"\"\"###12332###\n###7676####\"\"\"\"\"\"\"\"\"\"\"###32121###\n###########\"[\"\"\"\"\"\"\"\\\"###12342###\n###########%\"x\"\"\"\"\"\"\"%###12221y##\n###########_%\"[\"\"\"/\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"\"\"↥\"\"%_###########\n###########%{\"\"\"\"\"\"\"{%###########\n###########\"\"\"\"\"\"\"kk\"\"###57875###\n###########\"\"\"kk\"\"\"k\"\"###79997###\n########ᵹ##\"\"\"kk\"kk\"\"\"###89998ᵯ##\n###########\"\"k\"\"\"kk\"\"\"###79997£##\n###########\"\"kk\"\"\"\"\"\"\"###57875###\n###########%{\"\"\"\"\"\"\"{%###########\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n\n\n###########\n###########\n###########\n###►¤¤¤┰###\n###¤¤¤¤¤###\n###¤¤¤¤¤###\n###¤¤¤¤¤###\n###┰¤¤¤◄###\n###########\n###########\n###########\n\nmessage Rose\nmessage By Jared Piers\n\n\n",[0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,1,1,4,3,3,4,1,4,3,1,4,3,1,1,1,1,4,1,1,4,3],"background darkbarrier 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,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,\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,\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,\nbackground ground1:1,background ground3:2,1,background ground2:3,1,1,1,2,1,3,2,background housewallintdown:4,4,background housewallintright:5,5,5,background hiddendoor hiddenmesage:6,4,4,4,4,4,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,\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,\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,\n0,0,0,background dark puzzlestartbadnorm:7,background clearspace:8,0,background chainstarttemp wall:9,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background ground3 puddlecornertl:10,background ground1 puddleleft:11,11,background ground1 puddlecornerbl:12,1,2,1,2,2,3,3,\n4,4,background housewallinttop:13,13,background housefloor1:14,background housefloornorm:15,4,4,4,4,4,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background chaingoaltemp wall:16,background balancespace count0 dark goal2 number2 wrongtemp:17,17,background balancespace count0 dark goal1 number1 wrongtemp:18,17,17,17,17,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,7,8,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,8,7,0,0,0,0,0,0,7,8,0,0,0,0,0,0,\n0,0,0,0,7,0,0,0,0,0,0,background ground1 puddletop:19,background puddlecenter:20,20,background ground1 puddlebottom:21,1,3,3,2,2,background ground2 puddlecornertl:22,11,background housewallintdown puddlecornerbl:23,4,13,13,15,background housefloor2:24,4,4,4,4,4,\n0,0,0,0,16,7,8,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,0,16,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,17,17,17,17,17,17,background balancespace count0 dark goal3 number3 wrongtemp:25,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,18,17,background balancespace count0 dark goalo numberowrong wrongtemp:26,18,18,16,0,0,0,0,0,0,7,9,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,7,8,0,0,0,0,0,0,0,0,0,16,7,0,0,0,0,0,\n0,0,18,18,17,17,17,17,0,0,0,0,0,0,17,17,18,17,18,16,0,0,0,0,0,18,18,16,0,0,background dark puzzlestartgood:27,0,0,\n19,20,background ground3 puddleright:28,background ground1 puddlecornerbr:29,3,3,2,background ground2 pathrightbend:30,background pathvert:31,background ground3 pathvert puddletop:32,20,background housewallintdown puddlebottom:33,4,13,13,14,15,4,4,4,4,4,0,0,0,17,25,background balancespace blocker count0 dark goal3 wrongtemp:34,background balancespace blocker count0 dark goal2 wrongtemp:35,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,\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,\n0,0,background balancespace blocker count0 dark goal1 wrongtemp:36,35,34,34,35,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,18,17,17,18,17,17,25,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,25,25,25,17,17,0,0,0,0,0,0,0,18,17,background balancespace count0 dark goodtemp numberq:37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background balancespace count0 dark goale goodtemp numbere:38,17,26,17,26,16,0,0,0,0,0,0,0,17,38,18,9,0,0,0,0,16,17,18,17,25,25,17,16,0,0,\n0,0,9,17,25,17,17,17,0,0,0,0,0,0,17,17,0,0,0,1right background balancespace count1 dark goal1 goodtemp number1:39,0,0,19,20,background ground2 puddlebottom:40,1,1,1,2,background ground1 pathhoriz:41,3,background ground3 puddletop:42,20,\n33,4,13,13,15,15,4,4,4,4,4,0,0,16,18,25,34,36,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,35,36,35,36,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,17,17,18,17,17,17,17,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,9,18,17,37,17,18,0,0,0,\n0,0,0,16,18,17,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,26,18,38,25,0,0,0,0,\n0,0,0,0,26,38,17,0,0,0,0,0,0,17,17,17,background balancespace count0 dark goal0 goodtemp number0:43,17,17,0,0,0,0,0,0,17,17,17,background balancespace count0 dark goal4 number4 wrongtemp:44,17,0,0,0,\n0,0,9,25,25,0,0,0,1left 1right background balancespace count2 dark goal2 goodtemp number2:45,0,0,background ground2 puddlecornertr:46,background ground2 puddleright:47,background ground3 puddlecornerbr:48,1,2,1,2,background ground3 pathhoriz:49,3,42,20,33,4,13,13,background balancemesagefinal housefloornorm puzzletilewrongend:50,15,4,4,4,4,4,\n0,0,0,36,34,34,36,16,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,36,35,34,background balancespace blocker count0 dark goal4 wrongtemp:51,35,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,16,17,17,25,18,17,25,18,16,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,17,25,25,17,17,0,0,0,0,0,0,0,37,25,17,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,26,25,38,25,38,0,0,0,0,0,0,0,16,38,25,26,0,0,0,0,\n0,0,17,18,43,17,25,18,0,0,0,0,0,0,17,25,18,17,17,16,0,0,0,0,0,17,17,0,0,0,1left background balancespace count1 dark goal1 goodtemp number1:52,0,0,\n3,3,1,3,2,2,2,41,2,background ground3 puddlecornertr:53,47,background housewallintdown puddlecornerbr:54,4,background housewallintleft:55,55,55,55,4,4,4,4,4,0,0,0,35,34,34,35,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,\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,\n0,0,36,35,35,35,36,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,17,17,17,17,17,17,17,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,18,17,25,17,18,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,16,18,26,18,26,17,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,16,17,25,17,25,25,17,16,0,0,\n0,0,0,18,17,17,18,18,0,0,0,0,0,0,18,18,16,0,0,0,0,0,background towerbaseleft:56,1,2,3,3,1,2,background ground1 pathhoriz puddlecornertl:57,background ground3 puddleleft:58,12,2,\n4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,9,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,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,16,0,0,16,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,16,0,0,16,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,16,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,18,17,17,17,18,18,0,0,0,0,0,0,16,0,0,0,16,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,background towerwall1left:59,56,1,1,1,1,3,background ground3 pathhoriz puddletop:60,20,background ground3 puddlebottom:61,3,4,4,4,4,4,4,4,4,4,4,4,\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,\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,\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,background basementtile mark puzzletilewronghidden:62,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,\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,\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,\n0,0,0,16,0,0,16,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,\nbackground towerwall1:63,background towerbase:64,3,2,2,3,3,60,20,61,3,4,4,4,4,4,4,4,4,4,4,4,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,\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,\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,\n0,0,background darkbarrier towerwallintlefttop wall:65,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,65,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background darkbarrier highpuddletopleft2 wall:66,background darkbarrier highpuddlebottomleft1 wall:67,0,0,0,\n0,0,65,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,65,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,0,0,0,59,background towerwall2left:68,56,2,3,2,1,background ground3 pathhoriz puddlecornertr:69,28,48,3,\n4,4,4,4,4,4,4,4,4,4,4,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,background highground3:70,background highground1:71,background towerbalconytopleftroof:72,background halftiletopleft towerbalconyleftroof:73,background towertileoutside:74,74,74,background halftilebottomleft towerwall2left:75,59,68,59,background physicalwall:76,background physicalwall towerwallintlefttop:77,background physicalwall towerwallintleftmid:78,background towerwallintleft:79,background towertile:80,80,80,background towerwallbottomleft:81,76,76,76,\n76,77,78,79,80,80,80,81,76,76,76,70,background highground2:82,71,71,70,71,71,70,82,82,76,76,77,78,background towerpillartop1 towerwallintleft:83,background towerpillar1 towertile:84,background towerpillartop2 towertile:85,background towerpillar2 towertile:86,81,76,76,76,\n76,77,78,79,80,80,80,81,76,76,76,background highpuddletopleft2:87,background highpuddlebottomleft2:88,71,82,71,71,background highpuddletopright1:89,background highpuddlebottomright:90,82,82,76,76,77,78,79,80,80,80,81,76,76,76,\n76,77,78,79,80,80,80,81,76,76,76,82,82,70,82,70,70,70,82,71,82,76,76,77,78,79,80,80,80,81,76,76,76,\n76,77,78,79,80,80,80,81,background basementprogressmark physicalwall:91,76,76,63,background towerwall2:92,64,1,1,10,background ground2 puddleleft:93,background ground1 pathhoriz puddlecornerbl:94,1,3,1,5,5,5,5,5,5,5,5,5,5,4,\nbackground basementwalllefttop:95,background basementwallleftmid:96,background basementwallleft:97,background basementtile:98,98,background basementlinetile:99,98,98,background basementwallbottomleft:100,background basementphysicalwall:101,101,95,96,97,98,98,98,98,98,100,101,101,95,96,97,98,98,98,98,98,100,101,101,\n95,96,97,98,98,98,98,98,100,101,101,95,96,97,98,98,99,98,98,100,101,101,95,96,97,98,98,98,98,98,100,101,101,\n95,96,97,98,98,98,98,98,100,101,101,95,96,97,98,98,98,98,98,100,101,101,95,96,97,98,98,98,98,98,100,101,101,\n82,72,73,background rosetile1 towertileoutside:102,background dirttile rosetile1 towertileoutside:103,103,background dirttile rosetile2 towertileoutside:104,102,background halftilebottomleft towerwall1left:105,68,59,77,78,83,background towerpillar1 towerpillartop3 towertile:106,background towerpillar1 towerpillarmid3 towertile:107,background towerpillar3 towerpillartop1 towertile:108,84,80,81,76,76,77,78,79,80,80,80,80,80,81,76,76,\n71,87,88,82,82,70,82,71,71,71,76,77,78,79,background towerpillartop1 towertile:109,84,background towerpillartop2 towertilecrack3:110,86,80,81,76,76,77,78,79,80,80,80,background towertilecrack2:111,80,81,76,76,\n89,90,82,71,82,82,70,82,82,82,76,77,78,79,80,80,111,80,80,81,76,76,77,78,79,80,80,80,111,80,81,76,76,\n82,background highpuddletopleft1:112,88,71,71,70,70,71,70,71,76,77,78,79,80,80,80,80,80,81,76,76,77,78,background puzzlepanel towerwallintleft:113,background mark puzzletilewrongnorm towertile:114,80,111,80,80,81,76,76,\n63,92,64,1,1,background ground2 puddletop:115,20,background ground1 pathhoriz puddlebottom:116,2,3,3,13,13,15,15,24,15,24,15,15,15,4,96,97,background basementpillartop2 basementtile:117,background basementpillar2 basementtile:118,98,99,117,118,98,100,background basementphysicalwallperm:119,\n96,background basementpillartop2 basementwallleft:120,118,98,98,98,background basementpillartop3 basementtile:121,background basementpillarmid3 basementtile:122,background basementpillar3 basementtile:123,100,119,96,97,117,118,98,98,98,background basementpillar1 basementtile:124,98,100,119,96,120,118,117,118,98,background basementpillar5 basementtile:125,117,118,100,119,\n96,97,98,124,98,background basementlinetile basementpillartop3:126,122,123,98,100,119,96,97,98,98,98,98,98,98,98,100,119,96,97,98,98,98,98,98,98,98,100,119,\n96,97,117,118,98,98,98,124,98,100,119,background basementpillartop3 basementwallleftmid:127,background basementpillarmid3 basementwallleft:128,123,98,98,98,121,122,123,100,119,72,73,background roofdown roofpattern roofright towertileoutside:129,background roofdown roofpattern roofright roofup towertileoutside:130,background roofpattern roofright roofup towertileoutside:131,74,74,74,74,75,59,\n78,79,background puzzlepanel towertile:132,background mark puzzle8mesage1 puzzletilewrongnorm towertile:133,80,109,84,80,80,81,76,78,79,80,80,80,80,80,80,80,81,76,82,background highpuddletopright2:134,90,82,82,background towerbalconytopleft:135,background towerbalconyleft:136,136,136,136,76,\n78,79,80,109,84,85,86,80,80,81,76,78,79,80,80,80,80,80,80,80,81,76,70,82,70,71,71,135,136,136,136,136,76,\n78,79,80,132,background mark puzzle4mesage2 puzzletilewrongnorm towertile:137,80,80,80,80,81,76,78,background towerpillartop2 towerwallintleft:138,background towerpillar2 towerpillartop1 towertile:139,84,80,80,80,80,80,81,76,82,89,90,70,71,135,136,136,136,136,76,\n78,79,132,background mark puzzle2mesage1 puzzletilewrongnorm towertile:140,80,background towertilecrack1:141,80,80,80,81,76,78,79,85,86,background basementprogressmark towertile:142,80,80,132,background puzzletilegoodnorm towertile:143,81,76,59,68,59,56,1,46,47,background ground1 pathhoriz puddlecornerbr:144,1,1,2,\n13,13,14,15,background count0 drawgoal2 drawingboardtop:145,background count0 drawgoal3 drawingboardleft:146,background count0 drawgoal2 drawingboardleft:147,background count0 drawgoal0 drawingboardleft:148,background count0 drawgoal0 drawingboarddownleft:149,15,background houseentrance:150,97,98,98,98,98,99,98,98,98,98,100,97,98,98,98,98,98,98,98,98,98,100,\n97,98,98,98,98,98,98,98,98,98,100,97,98,98,98,98,98,98,98,98,98,100,97,98,98,98,98,99,98,98,98,98,100,\n97,98,117,118,98,98,117,118,98,98,100,97,98,98,98,98,98,98,98,98,98,100,97,98,98,98,98,98,98,98,background basementtile mark puzzletilewrongnorm:151,98,100,\n97,98,98,98,98,98,background basedown basementpattern basementtile:152,background basementpattern basementtile baseright baseup:153,98,98,100,background towerbalconytop:154,background rosetile2 towertileoutside:155,background roofdown roofleft roofpattern towertileoutside:156,background roofdown roofleft roofpattern roofright roofup towertileoutside:157,157,background roofdown roofpattern roofup towertileoutside:158,background roofpattern roofright roofup towerpillartop2 towertileoutside:159,background towerpillar2 towertilehalflight:160,74,155,63,background towerwallinttop:161,109,84,109,84,109,106,107,background towerpillar3 towertile:162,80,background towerwallintbottom:163,\n161,80,background towerpillartop2special towertile:164,background towerpillar2special towertile:165,80,background towerpillartop3 towertile:166,background towerpillarmid3 towertile:167,162,80,80,163,70,82,82,70,82,154,74,74,74,74,background towerwallinttoppermanent:168,168,80,background towertilecrack3:169,80,80,80,80,80,141,80,163,\n161,80,80,80,80,80,80,80,80,80,163,82,71,70,82,70,154,74,74,74,74,168,168,80,85,86,80,80,80,80,80,80,163,\nbackground towerpillartop2 towerwallinttop:170,86,132,background mark puzzle3mesage2 puzzletilewrongnorm towerpillartop1 towertile:171,84,80,80,80,80,80,163,70,70,70,71,71,154,74,74,74,74,168,168,80,109,84,80,80,80,80,80,80,163,\n161,80,80,80,80,80,80,80,background floor1mesage manright towertilecrack2:172,80,163,63,92,63,64,1,1,3,41,3,2,1,background rose1:173,background rose6:174,15,14,145,background count0 drawgoal4 drawingboardcenter:175,175,background count0 drawgoal2 drawingboardcenter:176,background count0 drawgoal2 drawingboarddown:177,15,4,\n98,124,98,98,98,99,98,98,98,124,background basementblocktile:178,178,98,98,98,125,117,118,98,98,98,178,178,124,98,98,98,98,98,98,98,125,178,\n178,98,125,98,98,98,98,117,118,98,178,178,117,118,98,98,99,98,117,118,98,178,178,98,98,124,98,121,122,123,98,98,178,\n178,background basementpillartop6 basementtile:179,background basementpillarmid6 basementtile:180,background basementpillar6 basementtile:181,98,121,122,123,98,98,178,background basementblocktile basementpillartop4:182,background basementpillar4 basementtile:183,98,98,98,98,98,98,98,124,178,178,98,98,98,background basedown basementpattern basementtile baseright:184,153,98,background baseleft basementpattern basementtile:185,98,98,178,\n154,background rosetile3 towertileoutside:186,74,156,background roofleft roofpattern roofup towertileoutside:187,74,background roofleft roofpattern roofright towertileoutside:188,74,74,155,63,161,80,80,109,84,80,80,background towerpillartop1 towerstairsdown1:189,background towerpillar1 towerpillartop1 towertile:190,84,163,161,80,166,167,background towerpillar3 towerpillartop3 towertile:191,167,162,background towerstairsup towertile:192,80,80,163,\n71,87,88,82,71,154,74,74,74,74,74,74,background towertilehalflight:193,80,80,80,80,80,background towerstairsdown1:194,80,80,163,background puzzlepanel towerwallinttop:195,background mark puzzle5mesage2 puzzletilewrongnorm towertile:196,80,109,84,80,80,192,111,80,163,\n71,71,112,background highpuddlebottomleft1:197,82,154,74,74,74,74,74,74,193,80,80,80,80,80,194,80,80,163,161,80,80,80,80,80,80,192,80,80,163,\n82,71,70,71,70,154,74,74,74,74,74,74,193,111,80,80,80,80,194,80,80,163,161,80,141,80,80,80,80,192,80,80,background towerentrance:198,\n63,92,198,background towerentrancefront:199,1,3,1,41,1,2,3,background rose2:200,background rose7:201,15,15,background count0 drawgoal0 drawingboardtop:202,176,176,background count0 drawgoal0 drawingboardcenter:203,177,24,4,98,background basementstairsdownblocked bpuzzle2mesage:204,98,98,98,99,98,98,98,98,178,\n178,background basementtile towerstairsup:205,98,98,98,98,98,98,98,98,178,178,background bpuzzle4mesage towerstairsdown2:206,98,98,98,98,98,98,98,98,178,178,205,98,98,98,98,98,98,98,98,178,\n178,background bpuzzle6mesage towerstairsdown2:207,98,98,98,99,98,98,98,98,178,178,205,121,122,123,98,124,98,98,98,178,178,background bpuzzle8mesage towerstairsdown2:208,179,180,background basementpillar6 basementpillartop6 basementtile:209,180,181,98,98,98,178,\n178,205,98,98,98,98,98,98,98,98,178,178,98,98,98,background basedown baseleft basementpattern basementtile:210,background baseleft basementpattern basementtile baseup:211,98,98,98,98,178,154,102,74,74,74,74,188,74,74,186,63,\nbackground towerpillartop3 towerwallinttop:212,167,108,190,190,190,background towerpillar1 towerpillartop2 towertile:213,139,84,80,163,161,80,141,80,80,background puzzle1mesage2 puzzletilehidden towertile:214,80,80,169,80,163,70,134,90,71,71,154,background puzzlepanel towertileoutside:215,background mark puzzle6mesage2 puzzletilewrongnorm towertileoutside:216,74,74,74,\n74,193,132,background mark puzzle6mesage1 puzzletilewrongnorm towertile:217,80,80,background towerpillartop1 towertilecrack1:218,84,80,80,163,161,85,86,80,85,86,80,85,86,80,163,71,82,89,90,82,154,215,background imbalancemesage1 mark puzzletilewrongnorm towertileoutside:219,74,74,74,\n74,background towerpillartop2 towertilehalflight:220,86,80,80,80,85,86,111,80,163,161,80,80,80,80,141,80,80,80,80,163,71,82,71,82,70,154,215,background mark puzzle2mesage2 puzzletilewrongnorm towertileoutside:221,74,74,74,\n74,193,80,80,80,132,background mark puzzletilewrongnorm towerpillartop2 towertile:222,86,80,80,163,161,80,80,80,80,80,85,86,80,80,198,63,92,198,199,background ground1 pathend:223,background ground3 pathvert:224,background ground1 pathvert:225,background ground2 pathtri:226,2,3,3,\nbackground rose3:227,background rose8:228,24,15,202,203,203,203,177,15,4,99,99,background basementlinetile mark puzzletilewrongnorm:229,99,99,229,99,99,99,99,background basementlineblocktile:230,230,99,99,99,99,229,99,99,99,99,230,\n178,98,98,98,98,151,98,98,98,98,178,178,98,98,98,98,151,98,98,98,98,178,178,121,122,123,98,229,98,124,98,98,178,\n178,98,98,98,98,151,98,98,98,98,178,178,98,98,98,98,background basementtile puzzle1mesage2 puzzletilehidden:231,98,98,98,98,178,178,98,98,98,98,98,98,98,98,98,178,\n178,98,98,98,98,98,98,98,98,98,178,154,155,74,129,159,160,188,74,194,102,63,161,80,80,80,218,190,84,80,192,80,163,\n161,80,166,167,191,167,162,194,80,80,163,70,82,82,71,71,154,74,74,74,74,74,74,193,80,80,80,80,80,192,80,80,163,\nbackground towerpillartop1 towerwallinttop:232,84,169,132,background mark puzzle5mesage1 puzzletilewrongnorm towertile:233,80,80,194,80,80,163,71,82,71,82,71,154,74,74,74,74,74,74,193,80,80,80,80,80,192,80,80,163,\n161,80,80,80,80,80,80,194,80,80,163,70,71,71,82,70,154,74,74,74,74,74,74,193,80,80,141,80,80,192,80,80,163,\n161,80,80,132,114,80,80,80,80,80,198,63,92,198,199,1,3,1,41,3,3,1,background rose4:234,background rose9:235,15,24,202,176,176,203,177,15,4,\n98,98,98,98,98,99,98,98,98,98,178,178,background bpuzzle3mesage towerstairsdown2:236,98,98,98,98,98,98,98,98,178,178,205,98,98,98,98,98,98,98,98,178,\n178,background bpuzzle5mesage towerstairsdown2:237,98,98,98,98,98,98,98,98,178,178,205,98,98,98,99,98,98,98,98,178,178,background bpuzzle7mesage towerstairsdown2:238,98,98,background basementpillar5 basementpillartop3 basementtile:239,122,123,98,98,98,178,\n178,205,179,180,209,180,181,98,98,98,178,178,background bpuzzle9mesage towerstairsdown2:240,98,98,98,98,98,98,98,98,178,178,205,98,98,98,184,153,98,98,98,178,\n154,155,129,157,157,158,187,74,74,102,63,161,80,80,80,132,background mark puzzle8mesage2 puzzletilewrongnorm towerpillartop1 towertile:241,84,80,109,84,163,161,166,167,162,80,166,167,162,80,80,163,\n71,87,88,70,70,154,74,74,74,74,168,168,80,80,80,80,80,80,80,80,80,163,161,80,80,80,80,80,80,80,80,80,163,\n71,71,82,82,82,154,74,74,74,74,168,168,80,85,86,80,80,80,80,80,80,163,161,80,background towerpillartop2 towertilecrack2:242,86,132,background mark puzzle3mesage1 puzzletilewrongnorm towerpillartop1 towertile:243,84,80,80,80,163,\n112,88,70,71,82,154,74,74,74,74,168,168,80,80,80,80,80,80,80,80,80,163,161,80,80,80,80,80,80,80,80,80,163,\n63,92,63,64,1,1,3,49,3,2,1,background rose5:244,background rose10:245,15,15,145,175,175,176,177,24,4,98,125,98,98,98,99,98,98,98,125,178,\n178,98,98,background basementpillartop4 basementtile:246,183,98,124,98,98,98,178,background basementblocktile basementpillartop2:247,118,98,98,98,98,98,98,246,183,178,178,117,118,98,98,98,98,98,125,98,178,\nbackground basementblocktile basementpillartop3:248,122,123,98,98,99,98,98,124,98,178,178,121,122,123,98,98,98,125,98,98,178,178,179,180,181,98,179,180,181,98,98,178,\n178,125,98,98,98,98,98,98,117,118,178,178,98,98,background basementpattern basementtile baseright:249,98,210,211,98,98,98,178,background towerbalconytoprightroof:250,background halftiletopright towerbalconyrightroof:251,156,background roofdown roofleft roofpattern roofup towertileoutside:252,187,74,74,74,74,background halftilebottomright towerwall2right:253,background towerwall1right:254,\nbackground physicalwall towerwallintrightmid:255,background towerpillartop1 towerwallintright:256,84,80,80,109,84,80,80,background towerwallbottomright:257,76,255,background towerwallintright:258,80,80,80,80,80,80,80,257,76,70,89,90,70,70,background towerbalconytopright:259,background towerbalconyright:260,260,260,260,76,\n255,258,80,109,84,85,86,80,80,257,76,255,258,80,80,80,80,80,80,80,257,76,71,71,82,82,70,259,260,260,260,260,76,\n255,258,80,80,132,background mark puzzle4mesage1 puzzletilewrongnorm towertile:261,141,80,80,257,76,255,258,80,85,139,84,169,80,80,257,76,89,90,71,70,70,259,260,260,260,260,76,\n255,258,80,80,80,80,80,111,80,257,76,255,258,85,86,80,80,80,80,80,257,76,254,background towerwall2right:262,254,background towerbaseright:263,2,3,2,41,2,3,1,\n13,13,15,15,145,background count0 drawgoal3 drawingboardright:264,background count0 drawgoal2 drawingboardright:265,background count0 drawgoal0 drawingboardright:266,background count0 drawgoal0 drawingboarddownright:267,15,4,background basementwallright:268,98,98,98,98,99,98,98,98,98,background basementwallbottomright:269,268,98,98,98,98,98,98,98,98,98,269,\n268,98,98,98,98,98,98,98,98,98,269,268,98,98,98,98,98,98,98,98,98,269,268,98,98,98,98,99,98,98,98,98,269,\n268,98,246,183,98,98,246,183,98,98,269,268,98,98,98,98,98,98,98,98,98,269,268,98,62,98,98,98,98,98,98,98,269,\n268,98,98,210,background basementpattern basementtile baseup:270,98,98,98,98,98,269,71,250,251,102,background dirttile rosetile3 towertileoutside:271,104,271,186,background halftilebottomright towerwall1right:272,262,254,background physicalwall towerwallintrighttop:273,255,256,106,167,162,80,80,257,76,76,\n273,255,258,80,111,80,80,80,257,76,76,71,82,82,71,70,71,70,82,71,82,76,273,255,258,109,84,85,86,80,257,76,76,\n273,255,258,80,80,80,80,80,257,76,76,70,82,82,70,71,71,70,71,82,71,76,273,255,258,80,80,80,80,80,257,76,76,\n273,255,258,80,80,80,80,80,257,76,76,82,71,70,70,70,87,197,82,70,70,76,273,255,258,80,80,80,80,80,257,76,76,\n273,255,258,80,169,80,80,80,257,76,76,63,92,64,3,1,3,2,41,1,2,2,13,13,15,15,14,15,15,15,15,24,4,\nbackground basementwallrightmid:274,268,246,183,98,99,246,183,98,269,119,background basementpillartop3 basementwallrightmid:275,background basementpillarmid3 basementwallright:276,123,98,98,98,98,246,183,269,119,274,268,246,183,98,98,98,125,98,269,119,\n274,background basementpillartop2 basementwallright:277,118,98,125,117,118,117,118,269,119,274,268,117,118,98,99,117,118,98,269,119,274,268,98,98,98,98,98,98,98,269,119,\n274,268,98,98,98,98,98,98,98,269,119,274,268,98,125,98,98,246,183,98,269,119,275,276,123,98,98,98,121,122,123,269,119,\n71,82,250,251,74,74,74,253,254,262,254,76,273,255,258,80,80,80,257,76,76,76,76,273,255,258,80,80,80,257,76,76,76,\n82,82,82,82,82,82,71,82,70,82,76,76,273,255,256,background puzzlepanel towerpillar1 towertile:278,background imbalancemesage2 mark puzzletilewrongnorm towerpillartop2 towertile:279,86,257,76,76,76,76,273,255,258,80,80,80,257,76,76,76,\n82,82,71,71,71,70,70,70,71,70,76,76,273,255,258,80,80,80,257,76,76,76,76,273,255,258,80,80,80,257,76,76,76,\n70,70,71,82,70,134,90,82,70,71,76,76,273,255,258,80,80,80,257,76,76,76,76,273,255,258,80,80,80,257,76,76,76,\n63,92,64,3,1,2,3,background ground3 pathhoriz puddlecornertl:280,93,background ground2 puddlecornerbl:281,2,55,55,background secret:282,55,55,55,55,55,55,background housewallintleft housewallsecret:283,4,background basementwallrighttop:284,274,268,98,98,background basemententrance2 bpuzzle1mesage:285,98,98,269,101,101,\n284,274,268,98,98,98,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,\n284,274,268,98,98,99,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,\n284,274,268,98,98,98,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background darkbarrier towerwallintrighttop wall:286,0,0,0,0,0,0,0,0,0,0,286,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,286,0,0,0,0,0,0,0,0,0,0,286,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,286,0,0,0,0,0,0,0,0,0,0,286,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,286,0,0,0,0,0,0,0,0,0,0,286,0,0,0,0,0,0,0,0,254,262,263,2,2,2,3,background ground2 pathhoriz puddletop:287,20,40,1,\n101,101,101,101,101,285,101,101,101,101,101,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,\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,\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,9,0,0,0,16,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,16,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,63,64,3,3,3,1,3,287,20,40,1,101,101,101,101,98,99,98,101,101,101,101,\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,\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,16,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,18,17,17,18,18,18,17,17,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,17,17,17,17,17,17,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,16,0,0,9,0,0,0,0,0,\n0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,16,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,16,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,\n254,263,2,3,1,3,3,background ground1 pathhoriz puddletop:288,20,61,1,101,101,101,101,98,99,98,101,101,101,101,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,16,0,0,16,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,\n0,0,0,0,0,0,9,0,0,0,0,0,0,17,25,17,35,36,35,9,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,\n0,16,17,25,25,17,25,17,17,37,16,0,0,0,background blocker count0 dark goal0 goodtemp nodrawspace number0:289,background blocker count0 dark goal2 nodrawspace number2 wrongtemp:290,290,background blocker count0 dark goal1 nodrawspace number1 wrongtemp:291,289,0,0,0,0,0,17,18,17,17,17,17,0,0,0,\n0,0,0,background count0 dark goal0 goodtemp imbalancespacerandom number0:292,background count0 dark goal2 imbalancespacerandom number2 wrongtemp:293,293,292,0,0,0,0,0,17,17,17,17,18,0,0,0,0,0,0,0,0,16,background count0 dark goal2 imbalancespace number2 wrongtemp:294,background count0 dark goal3 imbalancespace number3 wrongtemp:295,295,294,0,0,0,\n0,0,0,38,17,17,18,17,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,18,17,17,18,0,0,0,0,0,0,0,17,17,17,43,43,0,0,0,263,2,3,2,3,3,3,background ground1 pathhoriz puddlecornertr:296,47,29,3,\n101,101,101,101,98,99,98,101,101,101,101,0,16,17,25,18,0,0,0,0,0,0,0,0,0,18,25,17,35,35,0,0,0,\n0,0,16,17,25,17,25,35,16,0,0,0,0,16,36,36,34,36,0,0,0,0,0,0,16,17,17,35,35,0,0,0,0,\n0,0,17,44,17,35,background balancespace blocker count0 dark goal0 goodtemp:297,35,0,0,0,0,0,0,289,291,291,289,289,0,0,0,0,0,0,0,0,291,background blocker count0 dark goal3 nodrawspace number3 wrongtemp:298,291,291,0,0,\n0,0,0,297,35,34,35,297,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,43,17,44,17,37,43,37,0,\n0,0,0,290,290,298,289,290,0,0,0,0,0,37,43,17,18,17,17,0,0,0,0,0,0,293,293,293,293,0,0,0,0,\n0,18,18,25,25,17,0,0,0,0,0,0,0,0,0,294,294,294,294,0,0,0,0,0,16,18,38,18,38,26,0,0,0,\n0,0,38,17,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,25,25,17,9,0,0,0,\n0,0,0,17,43,17,17,17,9,0,0,3,2,1,1,3,1,2,41,2,2,3,101,101,101,101,98,99,98,98,98,98,98,\n0,0,18,17,17,0,0,0,0,0,0,0,0,0,17,17,25,34,34,0,0,0,0,0,0,34,25,43,35,34,0,0,0,\n0,0,0,34,25,34,18,0,0,0,0,0,0,0,25,17,35,36,0,0,0,0,0,0,17,25,17,35,36,35,0,0,0,\n0,0,0,289,background blocker count0 dark goal4 nodrawspace number4 wrongtemp:299,291,290,289,0,0,0,0,0,0,0,0,290,290,290,290,0,0,0,0,0,35,51,51,51,35,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,18,17,25,18,43,25,17,17,0,0,0,0,291,289,291,290,291,0,0,0,\n0,16,17,18,17,17,43,37,0,0,0,0,0,0,293,293,293,293,9,0,0,0,0,37,43,37,43,37,0,0,0,0,0,\n0,0,0,background imbalance wall:300,294,294,294,294,9,0,0,0,0,0,25,17,26,25,18,0,0,0,0,0,17,44,25,17,9,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,25,25,18,0,0,0,0,0,0,0,17,17,25,18,18,0,0,0,\n2,background ground3 houseroofside:301,background housewallside:302,302,302,3,2,41,2,1,3,101,101,101,101,98,99,98,98,98,98,background basemententrance1:303,0,0,36,35,35,9,0,0,0,0,0,\n0,0,0,25,25,25,35,35,0,0,0,0,0,0,36,34,35,297,35,0,0,0,0,0,0,36,34,34,34,16,0,0,0,\n0,0,0,25,17,35,36,0,0,0,0,0,16,35,36,35,35,34,35,0,0,0,0,0,0,290,290,298,299,290,0,0,0,\n0,0,0,0,0,298,291,298,290,0,0,0,0,0,34,51,51,51,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,18,17,18,17,17,17,17,25,0,0,0,background nodraw wall:304,291,298,299,291,289,0,0,0,0,0,17,17,17,44,17,17,0,0,0,\n0,0,0,292,293,293,292,0,0,0,0,0,17,17,17,17,18,0,0,0,0,0,0,0,0,0,background count0 dark goal1 imbalancespace number1 wrongtemp:305,305,305,305,0,0,0,\n0,0,0,17,25,38,26,18,0,0,0,0,16,18,25,25,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,17,18,17,17,0,0,0,0,0,0,0,43,43,17,43,43,0,0,0,301,background houseroof:306,background housewall:307,307,150,background ground3 pathend:308,background ground2 pathvert:309,background ground1 pathupbend:310,background ground1 puddlecornertl:311,58,12,\n101,101,101,101,98,99,98,98,98,98,98,0,0,35,34,36,0,0,0,0,0,0,0,0,16,17,17,17,34,36,16,0,0,\n0,0,0,35,51,25,25,34,0,0,0,0,0,0,36,25,36,18,0,0,0,0,0,0,0,17,17,35,35,16,0,0,0,\n0,0,35,297,35,35,51,35,0,0,0,0,0,304,290,298,289,291,291,0,0,0,0,0,0,0,304,298,290,299,290,0,0,\n0,0,0,35,51,51,51,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,17,17,17,17,37,17,25,17,16,\n0,0,0,289,290,289,291,289,0,0,0,0,0,18,17,17,17,43,17,16,0,0,0,0,0,background imbalancerandom wall:312,0,7,0,0,0,0,0,\n16,17,17,17,25,18,0,0,0,0,0,0,0,0,0,16,0,0,7,0,0,0,0,0,0,18,17,18,26,17,16,0,0,\n0,0,18,17,38,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,7,0,0,0,0,\n0,0,0,43,18,25,18,43,0,0,0,306,306,307,background housewallcrack:313,307,2,1,1,42,20,40,101,101,101,101,101,101,101,101,101,101,101,\n0,0,7,8,16,0,0,0,0,0,0,0,0,0,0,9,7,8,0,0,0,0,0,0,9,35,17,18,25,17,16,0,0,\n0,0,0,16,0,7,8,0,0,0,0,0,0,0,16,0,7,8,0,0,0,0,0,0,35,36,35,35,34,35,16,0,0,\n0,0,0,289,291,298,289,289,0,0,0,0,0,0,0,0,290,291,290,291,0,0,0,0,0,297,35,34,35,297,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,17,18,18,17,25,17,17,18,0,0,0,0,0,0,7,0,0,0,0,0,\n0,0,17,17,17,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,0,16,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,7,8,0,0,0,0,0,0,16,7,8,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,7,8,0,0,0,0,0,0,\n306,306,307,background housewindow:314,307,2,2,3,42,20,21,101,101,101,101,101,101,101,101,101,101,101,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,7,8,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,7,8,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,\n0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,background balancemesagefinal2 dark end puzzlestartbadend:315,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,16,0,7,8,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,9,8,7,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,306,306,307,307,307,2,2,1,background ground1 puddlecornertr:316,47,background ground2 puddlecornerbr:317,\n101,101,101,101,101,101,101,101,101,101,101,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,\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,\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,\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,\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,\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,\n0,0,0,0,0,0,0,0,0,0,0,306,306,307,307,307,1,1,2,3,2,1,101,101,101,101,101,101,101,101,101,101,101,\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,\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,\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,\n",0,"1627779185736.9275"] + ["title Rose\nhomepage www.puzzlescript.net\nnorepeat_action\nverbose_logging\nflickscreen 11x11\ntext_color #be2633\n\nagain_interval 1\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\n\nBackground\ngrey\n\nPhysicalWall \n#1a2d38\n00000\n00000\n00000\n00000\n00000\n\nWall\n#d4ca8e \n\nmanleft\n#ff7245 #2f2f3c #3d2c29 #ff8058\n.100.\n.300.\n0222.\n.300.\n.300.\n\nmanup\n#ff7245 #2f2f3c #3d2c29 #ff8058\n.300.\n.300.\n02220\n.300.\n.300.\n\nmanright\n#ff7245 #2f2f3c #3d2c29 #ff8058\n.301.\n.300.\n.2220\n.300.\n.300.\n\nmandown\n#ff7245 #2f2f3c #3d2c29 #ff8058\n.101.\n.300.\n02220\n.300.\n.300.\n\nrosetilestart\ntransparent\n\nrosetile1\n#88b32f #be2633 \n10000\n01000\n00010\n00101\n00010\n\nrosetile2\n#88b32f #be2633 \n00000\n01000\n10100\n01000\n00000\n\nrosetile3\n#88b32f #be2633 \n00000\n00100\n01010\n00100\n00000\n\ndirttile \n#a46422 #83501b #be2633\n10100\n01010\n00101\n10010\n02021\n\nrose1\n#fce6ad #dfe989\n00000\n00000\n00000\n00001\n00001\n\nrose2\n#fce6ad #dfe989 #a3ce27\n00000\n00000\n00000\n00010\n22222\n\nrose3\n#fce6ad #dfe989 #a3ce27\n00000\n00000\n00000\n00000\n00012\n\nrose4\n#fce6ad #dfe989 #a3ce27 #be2633 #9f2436\n00000\n03334\n33343\n33433\n24333\n\nrose5\n#fce6ad #dfe989 #a3ce27 #be2633 #9f2436\n00000\n40000\n30300\n33300\n34300\n\nrose6\n#fce6ad #dfe989 #a3ce27 #88b32f\n00002\n00022\n02333\n03330\n00000\n\nrose7\n#fce6ad #dfe989 #a3ce27 #88b32f\n23332\n30003\n00000\n00000\n00000\n\nrose8\n#fce6ad #dfe989 #a3ce27 #88b32f\n20012\n22223\n13330\n10000\n00000\n\nrose9\n#fce6ad #dfe989 #a3ce27 #88b32f #be2633 #9f2436\n33445\n00554\n00000\n00000\n00000\n\nrose10\n#fce6ad #dfe989 #a3ce27 #88b32f #be2633 #9f2436\n54004\n40040\n00000\n00000\n00000\n\n(scenery - tower exterior)\npathstart\ngrey\n\npathhoriz\n#d1ccb2 #dad6c3\n11111\n00000\n00000\n00000\n11111\n\npathvert\n#d1ccb2 #dad6c3\n10001\n10001\n10001\n10001\n10001\n\npathend\n#d1ccb2 #dad6c3\n..1..\n.111.\n.101.\n10001\n10001\n\npathtri\n#d1ccb2 #dad6c3\n10001\n00000\n00000\n00000\n11111\n\npathrightbend\n#d1ccb2 #dad6c3\n..111\n.1000\n10000\n10000\n10001\n\npathupbend\n#d1ccb2 #dad6c3\n10001\n00001\n00001\n0001.\n111..\n\ngroundstart\n#c5c4be #eaeae8\n00000\n00000\n00000\n00000\n00000\n\nground1\n#c5c4be #eaeae8\n00000\n00000\n00000\n01000\n00000\n\nground2\n#c5c4be #eaeae8\n00000\n00000\n00000\n00000\n00000\n\nground3\n#c5c4be #eaeae8\n00100\n00000\n00000\n00000\n00000\n\npuddlecenter\n#b8d9e9 #d4e8f2 #c5c4be\n10101\n01010\n00000\n10101\n01010\n\npuddleleft\n#b8d9e9 #d4e8f2 #c5c4be\n.1101\n.1010\n.1000\n.1101\n.1010\n\npuddleright\n#b8d9e9 #d4e8f2 #c5c4be\n1011.\n0101.\n001..\n101..\n0101.\n\npuddletop\n#b8d9e9 #d4e8f2 #c5c4be\n.....\n11111\n00000\n10101\n01010\n\npuddlebottom\n#b8d9e9 #d4e8f2 #c5c4be\n10101\n01010\n00000\n11111\n.....\n\npuddlecornertr\n#b8d9e9 #d4e8f2 #c5c4be\n.....\n111..\n0011.\n1011.\n0101.\n\npuddlecornertl\n#b8d9e9 #d4e8f2 #c5c4be\n.....\n...11\n..100\n..101\n.1010\n\npuddlecornerbl\n#b8d9e9 #d4e8f2 #c5c4be\n..101\n...10\n...10\n....1\n.....\n\npuddlecornerbr\n#b8d9e9 #d4e8f2 #c5c4be\n1011.\n0101.\n0011.\n111..\n.....\n\nhousewall\n#fbdf98\n\nhousewallcrack\n#fbdf98 #e2d4b1\n01000\n00100\n01000\n00000\n00000\n\nhousewallside\n#fbdf98 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\nhouseroof\n#b4865a #2d303f\n00100\n01000\n10000\n00001\n00010\n\nhouseroofside\n#b4865a #bc926b #2d303f\n....1\n...10\n..110\n.1002\n11020\n\nhouseentrance\n#41555f black\n00000\n01110\n01110\n01110\n01110\n\nhousewindow\n#b7ab69 #41555f #5c7787 #4f6774\n11012\n11023\n00000\n12011\n23011\n\ntowerwall1\n#1a2d38 #86858d\n01000\n01000\n01000\n11111\n00010\n\ntowerwall2\n#1a2d38 #86858d\n00010\n00010\n00010\n11111\n01000\n\ntowerbase \n#1a2d38 #86858d \n01010\n01010\n01010\n11111\n00100\n\ntowerwall1left\n#1a2d38 #86858d #365e6b #9e9da4\n23000\n23000\n23000\n33111\n22010\n\ntowerwall2left\n#1a2d38 #86858d #365e6b #9e9da4\n22010\n22010\n22010\n33111\n23000\n\ntowerbaseleft\n#1a2d38 #86858d #365e6b #9e9da4\n23010\n23010\n23010\n33111\n22100\n\ntowerwall1right\n#1a2d38 #86858d #15242d #6b6a71\n01022\n01022\n01022\n11133\n00032\n\ntowerwall2right\n#1a2d38 #86858d #15242d #6b6a71\n00032\n00032\n00032\n11133\n01022\n\ntowerbaseright\n#1a2d38 #86858d #15242d #6b6a71\n01032\n01032\n01032\n11133\n00122\n\ntowerentrance\nblack\n\ntowerentrancefront\nblack\n\n(scenery - house interior)\n\nhousefloornorm\n#dfaa18 #c99916\n10001\n10001\n10001\n10001\n10001\n\nhousefloor1\n#dfaa18 #c99916\n10001\n10001\n11111\n10001\n10001\n\nhousefloor2\n#dfaa18 #c99916\n10001\n10001\n10001\n10001\n11111\n\nhousewallinttop\n#fce6ad\n\nhousewallintright\n#f9d371 #fce6ad\n00001\n00001\n00001\n00001\n00001\n\nhousewallintleft\n#f9d371 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\nhousewallintdown\n#f9d371\n\nhousefloorstart\ntransparent\n\nhiddendoor\n#dfaa18 #c99916\n10001\n10001\n10001\n10001\n10001\n\nhiddendoortemp\ntransparent\n\n(scenery - tower interior)\n\ntowertile\n#587ba2 #4f6e92 #7895b6 #354961 #425a78\n21111\n20003\n20003\n20003\n44443\n\ntowertilecrack\n#587ba2 #4f6e92 #7895b6 #354961 #425a78\n21111\n20003\n20003\n20003\n44443\n\ntowertilecrack1\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #a6b0bc\n21111\n20003\n20553\n25003\n44443\n\ntowertilecrack2\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #a6b0bc\n21111\n50005\n50003\n25003\n45443\n\ntowertilecrack3\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #a6b0bc\n25111\n55003\n20005\n20053\n44453\n\ntowerwallbottomleft\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #1a2d38\n51111\n55003\n55503\n55553\n55555\n\ntowerwallbottomright\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #1a2d38 #354961\n21116\n20065\n20655\n26555\n65555\n\ntowerwallinttop\n#354961 #0f1b2d\n11111\n11111\n00000\n00000\n00000\n\ntowerwallinttoppermanent\n#354961 #0f1b2d\n11111\n11111\n00000\n00000\n00000\n\ntowerwallintbottom\n#1a2d38 #354961\n11111\n00000\n00000\n00000\n00000\n\ntowerwallintleft\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #354961 #0f1b2d\n65551\n55503\n55003\n50003\n44443\n\ntowerwallintleftmid\n#354961 #0f1b2d\n00011\n00111\n01110\n11100\n11000\n\ntowerwallintlefttop\n#354961 #0f1b2d\n....0\n...00\n..000\n.0000\n00001\n\ntowerwallintright\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #354961 #0f1b2d\n25556\n20555\n20055\n20005\n44443\n\ntowerwallintrightmid\n#354961 #0f1b2d\n11000\n11100\n01110\n00111\n00011\n\ntowerwallintrighttop\n#354961 #0f1b2d\n0....\n00...\n000..\n0000.\n10000\n\ntowerpillar1\n#1d304b #b7c5c4 #8da3a2 #7c9594 #28814b #be2633\n00230\n01530\n01240\n01230\n00000\n\ntowerpillartop1\n#7c9594 \n.....\n.....\n.....\n.....\n...0.\n\ntowerpillar2\n#1d304b #b7c5c4 #8da3a2 #7c9594 #28814b\n01230\n01240\n01430\n04230\n00000\n\ntowerpillartop2\n#7baab2 #b7c5c4 #8da3a2 #7c9594 #28814b\n.....\n.1...\n.12..\n.143.\n.423.\n\ntowerpillar2special\n#1d304b #b7c5c4 #2ff5d6 #7c9594 #28814b\n01230\n01230\n01230\n01230\n00000\n\ntowerpillartop2special\n#7baab2 #b7c5c4 #2ff5d6 #7c9594 #28814b\n.....\n.1...\n.12..\n.123.\n.123.\n\ntowerpillar3\n#1d304b #b7c5c4 #2ff5d6 #7c9594 #28814b\n01230\n01230\n01230\n01230\n00000\n\ntowerpillarmid3\n#7baab2 #b7c5c4 #2ff5d6 #7c9594 #28814b\n.123.\n.123.\n.123.\n.123.\n.123.\n\ntowerpillartop3\n#7baab2 #b7c5c4 #2ff5d6 #7c9594 #6f8c82 #6e98a1\n45554\n44444\n.123.\n.123.\n.123.\n\ntowerstairsup\n#d4dcdc #a4b5b5 #b5c4c3\n....1\n...22\n..110\n.2200\n11000\n\ntowerstairsdown1\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\ntowerstairsuptemp\n#d4dcdc #a4b5b5 #b5c4c3\n....1\n...22\n..110\n.2200\n11000\n\ntowerstairsdowntemp\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\ntowerwallint\ntransparent\n\n(tower balcony)\n\ntowertilehalflight\n#829d97 #b6c6b0 #94aba6 #66827d #7693a4 #91a8b6 #526b7c #354961\n10000\n12223\n52226\n54446\n66667\n\n\ntowertileoutside\n#94aba6 #829d97 #a9bcb8 #72908a #66827d\n21111\n20004\n20004\n20004\n33334\n\ntowerbalconyleft\n#94aba6 #829d97 #72908a #66827d #deddd1 #617978 #415150\n45611\n45603\n45603\n45603\n45623\n\ntowerbalconyright\n#94aba6 #829d97 #72908a #a9bcb8 #deddd1 #617978 #415150\n31654\n30654\n30654\n30654\n22654\n\ntowerbalconytop\n#415150 #deddd1 #617978 #94aba6 #a9bcb8 #72908a #66827d\n00000\n00000\n12011\n43336\n55556\n\ntowerbalconytopright\n#415150 #deddd1 #617978 #a9bcb8 #72908a\n21111\n02111\n00211\n30021\n44021\n\ntowerbalconytopleft\n#415150 #deddd1 #617978 #66827d #72908a\n11112\n11120\n11200\n12003\n12043\n\nhighgroundstart\n#deddd1\n\nhighground1\n#deddd1 #b8d9e9\n00000\n00000\n00000\n01000\n00000\n\nhighground2\n#deddd1 #d4e8f2 #b8d9e9\n00000\n01000\n00000\n00000\n00120\n\nhighground3\n#deddd1 #d4e8f2\n00010\n00000\n10000\n00001\n00000\n\nhighpuddletopleft1\n#deddd1 #d4e8f2 #b8d9e9\n00000\n00000\n00011\n00122\n00122\n\nhighpuddletopleft2\n#deddd1 #d4e8f2 #b8d9e9\n00000\n00000\n01111\n01222\n01122\n\nhighpuddletopright1\n#deddd1 #d4e8f2 #b8d9e9\n00000\n00000\n11000\n21000\n21000\n\nhighpuddletopright2\n#deddd1 #d4e8f2 #b8d9e9\n00000\n01110\n12221\n22221\n21110\n\nhighpuddlebottomleft1\n#deddd1 #d4e8f2 #b8d9e9\n00122\n01222\n01222\n00111\n00000\n\nhighpuddlebottomleft2\n#deddd1 #d4e8f2 #b8d9e9\n00122\n00111\n00001\n00001\n00000\n\nhighpuddlebottomright\n#deddd1 #d4e8f2 #b8d9e9\n21000\n21000\n10000\n10000\n00000\n\n(tower roof)\n\nroofpattern\ntransparent\n\nroofleft\n#829d97 #99b0ab\n.....\n.....\n100..\n.....\n.....\n\nroofup\n#829d97 #72908a\n..1..\n..0..\n..0..\n.....\n.....\n\nroofright\n#829d97 #5c7571\n.....\n.....\n..001\n.....\n.....\n\nroofdown\n#829d97 #66827d\n.....\n.....\n..0..\n..0..\n..1..\n\nbasementpattern\ntransparent\n\nbaseleft\n#2e5648 #376759\n.....\n.....\n100..\n.....\n.....\n\nbaseup\n#2e5648 #294d41\n..1..\n..0..\n..0..\n.....\n.....\n\nbaseright\n#2e5648 #1c332c\n.....\n.....\n..001\n.....\n.....\n\nbasedown\n#2e5648 #233e37\n.....\n.....\n..0..\n..0..\n..1..\n\nhalftilebottomright\n#94aba6 #829d97 #a9bcb8 #8aa47f #66827d\n21111\n2000.\n200..\n20...\n3....\n\nhalftilebottomleft\n#94aba6 #829d97 #a9bcb8 #72908a #66827d\n21111\n.0004\n..004\n...04\n....4\n\nhalftiletopright\n#94aba6 #829d97 #a9bcb8 #72908a #66827d\n211..\n2000.\n20004\n20004\n33334\n\nhalftiletopleft\n#94aba6 #829d97 #a9bcb8 #72908a #66827d\n..111\n.0004\n20004\n20004\n33334\n\ntowerbalconytoprightroof\n#415150 #deddd1 #617978 #a9bcb8 #72908a\n21111\n02111\n00211\n30021\n44002\n\ntowerbalconytopleftroof\n#415150 #deddd1 #617978 #66827d #72908a\n11112\n11120\n11200\n12003\n20043\n\ntowerbalconyrightroof\n#6f90bc #6388b7 #8da9cb #5077ab #466998 #415150\n21.55\n200.5\n2000.\n20004\n33334\n\ntowerbalconyleftroof\n#6f90bc #6388b7 #8da9cb #5077ab #466998 #415150\n55.11\n5.004\n.0004\n20004\n33334\n\n(tower basement)\n\nbasemententrance\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\nbasemententrance1\n#b7c5c4 #8da3a2 #98acab #335f50 #396959 #447f6c\n33331\n54422\n54110\n52200\n11000\n\nbasemententrance2\n#a7c7c4 #91b9b5 #6ba093 #b8d2d0 #7daca8\n11112\n30002\n30002\n30002\n34444\n\nbasementstairsdown\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\nbasementstairsdowntemp\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\nbasementtile\n#396959 #335f50 #223f36 #447f6c #2b4d43\n11112\n30002\n30002\n30002\n34444\n\nbasementstairsdownblocked\n#396959 #335f50 #223f36 #447f6c #2b4d43\n11112\n30002\n30002\n30002\n34444\n\ntowerstairsdown2\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\nbasementlinetile\n#a7c7c4 #91b9b5 #6ba093 #b8d2d0 #7daca8\n11112\n30002\n30002\n30002\n34444\n\nbasementblocktile\n#396959 #335f50 #223f36 #447f6c #2b4d43\n11112\n30002\n30002\n30002\n34444\n\nbasementlineblocktile\n#a7c7c4 #91b9b5 #6ba093 #b8d2d0 #7daca8\n11112\n30002\n30002\n30002\n34444\n\nbasementwallright\n#396959 #335f50 #46826c #447f6c #2b4d43 #78b6a0\n12225\n30222\n30022\n30002\n34444\n\nbasementwallrightmid\n#46826c #78b6a0\n11000\n11100\n01110\n00111\n00011\n\nbasementwallrighttop\n#46826c #78b6a0 #12261b\n02222\n00222\n00022\n00002\n10000 \n\nbasementwallleft\n#396959 #46826c #223f36 #447f6c #2b4d43 #78b6a0\n51112\n11102\n11002\n10002\n44444\n\nbasementwallleftmid\n#46826c #78b6a0\n00011\n00111\n01110\n11100\n11000\n\nbasementwalllefttop\n#46826c #78b6a0 #12261b\n22220\n22200\n22000\n20000\n00001\n\nbasementwallbottomleft\n#396959 #335f50 #223f36 #12261b\n31112\n33002\n33302\n33332\n33333\n\nbasementwallbottomright\n#396959 #335f50 #12261b #447f6c\n11112\n30022\n30222\n32222\n22222\n\nbasementwall\ngrey\n\nbasementphysicalwall\n#12261b\n\nbasementphysicalwallperm\n#12261b\n\nbasementpillar1\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.1...\n.1...\n.12..\n.123.\n00000\n\nbasementpillar2\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n00000\n\nbasementpillartop2\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.....\n...3.\n..23.\n.123.\n.123.\n\nbasementpillar3\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n00000\n\nbasementpillarmid3\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n.123.\n\nbasementpillartop3\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.....\n.....\n.1.3.\n.123.\n.123.\n\nbasementpillar4\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n00000\n\nbasementpillartop4\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.....\n.1...\n.12..\n.123.\n.123.\n\nbasementpillar5\n#6f8c82 #d77e57 #d16b3f #c55d2f\n...3.\n...3.\n..23.\n.123.\n00000\n\nbasementpillar6\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n00000\n\nbasementpillarmid6\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n.123.\n\nbasementpillartop6\n#6f8c82 #d77e57 #d16b3f #c55d2f #6f8c82 #6e98a1\n54445\n55555\n.123.\n.123.\n.123.\n\nend\n#123456\n000..\n.000.\n..000\n...00\n....0\n\n(Drawing)\n\ndrawingboardcenter\n#ffffb3\n\ndrawingboardleft\n#ffffb3 #f7f7bb\n10000\n10000\n10000\n10000\n10000\n\ndrawingboardtop\n#ffffb3 #f7f7bb\n11111\n00000\n00000\n00000\n00000\n\ndrawingboardright\n#ffffb3 #f7f7bb\n00001\n00001\n00001\n00001\n00001\n\ndrawingboarddown\n#ffffb3 #f7f7bb\n00000\n00000\n00000\n00000\n11111\n\ndrawingboardtopleft\n#ffffb3 #f7f7bb\n11111\n10000\n10000\n10000\n10000\n\ndrawingboarddownleft\n#ffffb3 #f7f7bb\n10000\n10000\n10000\n10000\n11111\n\ndrawingboardtopright\n#ffffb3 #f7f7bb\n11111\n00001\n00001\n00001\n00001\n\ndrawingboarddownright\n#ffffb3 #f7f7bb\n00001\n00001\n00001\n00001\n11111\n\ndrawleft\n#281904\n.....\n.....\n000..\n.....\n.....\n\ndrawup\n#281904\n..0..\n..0..\n..0..\n.....\n.....\n\ndrawright\n#281904\n.....\n.....\n..000\n.....\n.....\n\ndrawdown\n#281904\n.....\n.....\n..0..\n..0..\n..0..\n\ndrawgoal0\ntransparent\n\ndrawgoal1\ntransparent\n\ndrawgoal2\ntransparent\n\ndrawgoal3\ntransparent\n\ndrawgoal4\ntransparent\n\ndrawchange\ntransparent\n\ndrawgood\ntransparent\n\ndrawwrong\ntransparent\n\n(Earth Puzzle)\n\npuzzletilewrongnorm\n#2ff5d6\n0...0\n.0.0.\n.....\n.0.0.\n0...0\n\npuzzletilewrongend\n#2ff5d6\n0...0\n.0.0.\n.....\n.0.0.\n0...0\n\npuzzletilegoodnorm\n#39f52f\n0...0\n.0.0.\n.....\n.0.0.\n0...0\n\npuzzletilewronghidden\n#3d7162 #3a6b5a #2b5146 #478572 #335c50\n31111\n30002\n30002\n30002\n44442\n\npuzzletilegoodhidden\n#386759 #3a6b5a #2b5146 #478572 #335c50\n31111\n30002\n30002\n30002\n44442\n\npuzzletilehidden\ntransparent\n\npuzzlepanel\n#d4ca8e #e5dfbb #c0b25b #27a0fc\n.....\n10002\n10302\n10002\n.....\n\npuzzlestartbadnorm\n#2ff5d6\n\npuzzlestartbadend\n#2ff5d6\n\npuzzlestartgood\n#39f52f\n\nbalancespace\n#c4cbc3\n00000\n00000\n00000\n00000\n00000\n\nnodrawspace\n#c4cbc3\n00000\n00000\n00000\n00000\n00000\n\nimbalancespace\n#c4cbc3\n00000\n00000\n00000\n00000\n00000\n\nimbalancespacerandom\n#c4cbc3\n00000\n00000\n00000\n00000\n00000\n\nclearspace\n#c4cbc3 #d11320\n10001\n01010\n00100\n01010\n10001\n\nclear\ntransparent\n\nnodraw\ntransparent\n\nimbalance\ntransparent\n\nimbalancerandom\ntransparent\n.....\n.....\n.....\n.....\n.....\n\n1left\n#71806f\n.....\n.....\n00...\n.....\n.....\n\n1up\n#71806f\n..0..\n..0..\n.....\n.....\n.....\n\n1right\n#71806f\n.....\n.....\n...00\n.....\n.....\n\n1down\n#71806f\n.....\n.....\n.....\n..0..\n..0..\n\n(Earth - selectors)\n\nselector\n#da7c7c\n00.00\n0...0\n.....\n0...0\n00.00\n\nredselector\nred\n00.00\n0...0\n.....\n0...0\n00.00\n\nnumber1\n#15ae85\n.....\n.0...\n.....\n.....\n.....\n\nnumber2\n#157bae\n.....\n.0.0.\n.....\n.....\n.....\n\nnumber3\n#1520ae\n.....\n.0.0.\n.....\n.0...\n.....\n\nnumber4\n#6615ae\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nnumberQ\n#fdfe10\n.....\n.....\n..0..\n.....\n.....\n\nnumberE\n#0fb209\n.....\n.000.\n.0.0.\n.000.\n.....\n\nnumberEwrong\n#a70f17\n.....\n.000.\n.0.0.\n.000.\n.....\n\nnumberO\n#0fb209\n.....\n.000.\n.0.0.\n.000.\n.....\n\nnumberOwrong\n#a70f17\n.....\n.000.\n.0.0.\n.000.\n.....\n\nnumber0\ntransparent\n\nGood\n#39f52f\n.....\n.....\n..0..\n.....\n.....\n\ngoodtemp\ntransparent\n\nWrong\n#d11320\n.....\n.....\n..0..\n.....\n.....\n\nblocker\nblack\n.....\n.....\n..0..\n.....\n.....\n\nwrongtemp\ntransparent\n\nchange\ntransparent\n\n(Earth - count)\n\ncount0\ntransparent\n\ncount1\ntransparent\n\ncount2\ntransparent\n\ncount3\ntransparent\n\ncount4\ntransparent\n\ncountup\ntransparent\n\ncountdown\ntransparent\n\n(Earth - goals)\n\ngoal0\ntransparent\n\ngoal1\ntransparent\n\ngoal2\ntransparent\n\ngoal3\ntransparent\n\ngoal4\ntransparent\n\ngoale\ntransparent\n\ngoalo\ntransparent\n\nchain\ntransparent\n\nchainstart\ntransparent\n\nchaingoal\ntransparent\n\nchaingoaltemp\ntransparent\n\nchainstarttemp\ntransparent\n\nleftmark\ntransparent\n\nrightmark\ntransparent\n\nupmark\ntransparent\n\ndownmark\ntransparent\n\ndrawsetup1\ntransparent\n\ndrawsetup2\ntransparent\n\ndrawsetup3\ntransparent\n\ndrawsetup4\ntransparent\n\ndrawsetup5\ntransparent\n\nhousewallsecret\ntransparent\n\n(Darkness)\n\nDark\n#d4ca8e\n\nLight\ntransparent\n\nDarkbarrier\ntransparent\n\nlightout\ntransparent\n\nmark\ntransparent\n\nsecret\n#f9d371 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\nsecret2\n#f9d371 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\nsecretsetup\n#f9d371 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\ndrawmark\ntransparent\n\ndrawmarknegative\ntransparent\n\nbasementprogressmark\ntransparent\n\ntowerprogressmark\ntransparent\n\ntowerstairsupblocked\n#587ba2 #4f6e92 #7895b6 #354961 #425a78\n21111\n20003\n20003\n20003\n44443\n\n(messages)\n\nfloor0mesage\ntransparent\n\nfloor1mesage\ntransparent\n\nfloor2mesage\ntransparent\n\nfloor3mesage\ntransparent\n\nfloor4mesage\ntransparent\n\nfloor5mesage\ntransparent\n\nfloor6mesage\ntransparent\n\nfloor7mesage\ntransparent\n\nfloor8mesage\ntransparent\n\nfloor9mesage\ntransparent\n\nbfloor1mesage\ntransparent\n\nbfloor2mesage\ntransparent\n\nbfloor3mesage\ntransparent\n\nbfloor4mesage\ntransparent\n\nbfloor5mesage\ntransparent\n\nbfloor6mesage\ntransparent\n\nbfloor7mesage\ntransparent\n\nbfloor8mesage\ntransparent\n\nbfloor9mesage\ntransparent\n\nmessagemarkup\ntransparent\n\nmessagemarkdown\ntransparent\n\nentrancemesage\ntransparent\n\npuzzle1mesage1\ntransparent\n\npuzzle1mesage2\ntransparent\n\npuzzle2mesage1\ntransparent\n\npuzzle2mesage2\ntransparent\n\npuzzle3mesage1\ntransparent\n\npuzzle3mesage2\ntransparent\n\npuzzle4mesage1\ntransparent\n\npuzzle4mesage2\ntransparent\n\npuzzle5mesage1\ntransparent\n\npuzzle5mesage2\ntransparent\n\npuzzle6mesage1\ntransparent\n\npuzzle6mesage2\ntransparent\n\npuzzle8mesage1\ntransparent\n\npuzzle8mesage2\ntransparent\n\nbpuzzle1mesage\ntransparent\n\nbpuzzle2mesage\ntransparent\n\nbpuzzle3mesage\ntransparent\n\nbpuzzle4mesage\ntransparent\n\nbpuzzle5mesage\ntransparent\n\nbpuzzle6mesage\ntransparent\n\nbpuzzle7mesage\ntransparent\n\nbpuzzle8mesage\ntransparent\n\nbpuzzle9mesage\ntransparent\n\nimbalancemesage1\ntransparent\n\nimbalancemesage2\ntransparent\n\nbalancemesagefinal\ntransparent\n\nbalancemesagefinal2\ntransparent\n\nhiddenmesage\ntransparent\n\nbloomstart\ntransparent\n\nbloom1\n#d94148 #be2633 #96222d\n.....\n.....\n....1\n..012\n00222\n\nbloom2\n#d94148 #be2633 #96222d #ab222c\n.....\n.....\n1...3\n21332\n22122\n\nbloom3\n#be2633 #96222d #ab222c #d52c37\n.....\n2....\n2000.\n2220.\n13310\n\nbloom4\n#d94148 #b12833 #96222d\n....0\n....0\n....0\n..001\n..012\n\nbloom5\n#d94148 #b12833 #96222d #d52c37\n12233\n10323\n01223\n01232\n02322\n\nbloom6\n#96222d #d52c37 #be2633\n00200\n01102\n10010\n00010\n00001\n\nbloom7\n#96222d #d52c37 #be2633 #b5242a\n00100\n20101\n02001\n00111\n00131\n\nbloom8\n#871f27 #9a1f26 #be2633\n2....\n02...\n012..\n012..\n012..\n\nbloom9\n#d94148 #b12833 #96222d\n..010\n..012\n..012\n.0112\n..012\n\nbloom10\n#d94148 #b12833 #96222d #d52c37 #ac2322\n23234\n03234\n03234\n02232\n01232\n\nbloom11\n#d52c37 #5b1111 #7d1717 #ab222c\n00010\n02112\n01001\n31021\n32110\n\nbloom12\n#96222d #d52c37 #871f27 #b5242a\n00131\n01001\n01111\n11002\n00002\n\nbloom13\n#871f27 #9a1f26 #be2633 #d52c37\n0012.\n0012.\n013..\n013..\n03...\n\nbloom14\n#d94148 #b12833 #96222d\n..010\n..012\n.0012\n..000\n....0\n\nbloom15\n#d94148 #b12833 #96222d #d52c37\n01233\n02323\n02323\n32322\n32332\n\nbloom16\n#96222d #d52c37 #ab222c\n22222\n00000\n10001\n11111\n10000\n\nbloom17\n#96222d #d52c37 #b5242a #871f27 #9a1f26\n10001\n11113\n00213\n00113\n01134\n\nbloom18\n#d52c37 #9a1f26\n00...\n10...\n10...\n10...\n0....\n\nbloom19\n#96222d #d52c37\n11010\n.1110\n...10\n.....\n.....\n\nbloom20\n#96222d #d52c37\n11011\n01100\n10111\n.1...\n.....\n\nbloom21\n#96222d #d52c37\n11001\n0111.\n1....\n.....\n.....\n\nfinalleft\n#71806f\n.....\n.....\n00...\n.....\n.....\n\nfinalup\n#71806f\n..0..\n..0..\n.....\n.....\n.....\n\nfinalright\n#71806f\n.....\n.....\n...00\n.....\n.....\n\nfinaldown\n#71806f\n.....\n.....\n.....\n..0..\n..0..\n\nfinalpattern\ntransparent\n\nbloomend\ntransparent\n\nbloomend1\ntransparent\n\ntarget\ngreen\n\n=======\nLEGEND\n=======\n\nman = manup or mandown or manright or manleft\nPlayer = man or selector or redselector or bloomend1\nground = ground1 or ground2 or ground3\npuddle = puddlecenter or puddleleft or puddleright or puddletop or puddlebottom or puddlecornertr or puddlecornertl or puddlecornerbr or puddlecornerbl\nhighpuddletopleft = highpuddletopleft1 or highpuddletopleft2\nhighpuddletopright = highpuddletopright1 or highpuddletopright2 \nhighpuddlebottomleft = highpuddlebottomleft1 or highpuddlebottomleft2\nhighpuddle = highpuddletopleft1 or highpuddletopleft2 or highpuddletopright1 or highpuddletopright2 or highpuddlebottomleft1 or highpuddlebottomleft2 or highpuddlebottomright\nhighground = highground1 or highground2 or highground3\npuzzletilewrong = puzzletilewronghidden or puzzletilewrongnorm\npuzzletilegood = puzzletilegoodhidden or puzzletilegoodnorm\npuzzletile = puzzletilewrong or puzzletilegood or puzzletilehidden\ndirection = leftmark or rightmark or upmark or downmark\npuzzlespace = balancespace or imbalancespace or imbalancespacerandom\ndrawingboard = drawingboardcenter or drawingboardleft or drawingboardright or drawingboardtop or drawingboarddown or drawingboardtopleft or drawingboardtopright or drawingboarddownright or drawingboarddownleft\nhousefloor = housefloornorm or housefloor1 or housefloor2\nhousefloorcrease = housefloor1 or housefloor2\nrose = rose1 or rose2 or rose3 or rose4 or rose5 or rose6 or rose7 or rose8 or rose9 or rose10 \ntowertilepick = towertilecrack1 or towertilecrack2 or towertilecrack3\nblocktile = basementblocktile or basementlineblocktile\ntowerstairsdown = towerstairsdown1 or towerstairsdown2\ntowerstairs = towerstairsdown1 or towerstairsdown2 or towerstairsup\npath = pathupbend or pathrightbend or pathhoriz or pathvert or pathend or pathtri or pathstart\nfloormesage = floor1mesage or floor2mesage or floor3mesage or floor4mesage or floor5mesage or floor6mesage or floor7mesage or floor8mesage or floor9mesage or bfloor1mesage or bfloor2mesage or bfloor3mesage or bfloor4mesage or bfloor5mesage or bfloor6mesage or bfloor7mesage or bfloor8mesage or bfloor9mesage or floor0mesage\nrosetile = rosetile1 or rosetile2 or rosetile3\npuzzlestartbad = puzzlestartbadnorm or puzzlestartbadend\npuzzlestart = puzzlestartbad or puzzlestartgood\n\n# = Darkbarrier and Wall\n* = Wall and chainstarttemp\n@ = Wall and chaingoaltemp\n_ = PhysicalWall\n! = imbalance and wall\n: = imbalancerandom and wall\n⸝ = nodraw and wall\n£ = clearspace\n\n(outside)\nP = manright and pathvert and floor0mesage\n. = groundstart\n- = puddlecenter\nz = pathstart and groundstart\n` = housewall\n~ = houseroof\nh = houseentrance\n꠸ = housewindow\nq = towerwall1\nw = towerwall2\n$ = towerbase\nt = towerentrance\n(inside)\n, = towertile\nl = towertilecrack\n/ = towerpillar2 and towertile\n[ = towerpillar1 and towertile\n{ = towerpillar3 and towertile\n⥁ = towerpillar2special and towertile\n↥ = towerstairsup and towertile\nx = puzzletilewrongnorm and towertile\nᵽ = puzzletilewrongend and housefloornorm and balancemesagefinal\n¥ = puzzletilewrongnorm and towertileoutside and imbalancemesage1\nᵶ = puzzletilewrongnorm and towertile and imbalancemesage2\nᶍ = puzzletilewrongnorm and towertileoutside\n☌ = puzzletilehidden and towertile\ny = puzzlestartbadnorm and dark\nᵯ = puzzlestartbadend and dark and balancemesagefinal2 and end\n↓ = towerstairsdown1\n% = towerwallint\nc = towerwallinttoppermanent\n⏙ = towerstairsupblocked and towertile\n\n(balcony)\n& = highgroundstart\n+ = highpuddlebottomright\n' = towertileoutside\n⤫ = towertileoutside and rosetilestart\n\n\n(roof)\nk = roofpattern and towertileoutside\n\n(basement)\n\" = basementtile\n; = basementlinetile\nb = basemententrance1\nn = basemententrance2 and bpuzzle1mesage\n\\ = basementpillar4 and basementtile\n] = basementpillar5 and basementtile\n} = basementpillar6 and basementtile\n| = basementblocktile\n⚎ = basementphysicalwallperm\nᵹ = puzzletilewronghidden and basementtile\n\n\n(puzzle tiles/ messages)\n\n⅕ = puzzletilewrongnorm and towertile and puzzle2mesage1\n⅙ = puzzletilewrongnorm and towertileoutside and puzzle2mesage2\n⅛ = puzzletilewrongnorm and towertile and puzzle3mesage1\n⅔ = puzzletilewrongnorm and towertile and puzzle3mesage2\n⅖ = puzzletilewrongnorm and towertile and puzzle4mesage1\n⅗ = puzzletilewrongnorm and towertile and puzzle4mesage2\n⅘ = puzzletilewrongnorm and towertile and puzzle5mesage1\n⅜ = puzzletilewrongnorm and towertile and puzzle5mesage2\n⅚ = puzzletilewrongnorm and towertile and puzzle6mesage1\n⅐ = puzzletilewrongnorm and towertileoutside and puzzle6mesage2\n⅝ = puzzletilewrongnorm and towertile and puzzle8mesage1\n↉ = puzzletilewrongnorm and towertile and puzzle8mesage2\n⅑ = towerstairsdown1 and bpuzzle2mesage\n⅒ = towerstairsdown2 and bpuzzle3mesage\n⅞ = towerstairsdown2 and bpuzzle4mesage\n⥊ = towerstairsdown2 and bpuzzle5mesage\n⥋ = towerstairsdown2 and bpuzzle6mesage\n⥌ = towerstairsdown2 and bpuzzle7mesage\n⥍ = towerstairsdown2 and bpuzzle8mesage\n⥎ = towerstairsdown2 and bpuzzle9mesage\n⥏ = towerentrance and puzzle1mesage1\n¢ = puzzletilehidden and puzzle1mesage2 and towertile\n\n\n\n(earth)\n(s = selector and goal1 and count0 and number1 and wrongtemp and puzzlespace)\n0 = balancespace and goal0 and count0 and number0 and goodtemp and dark\n1 = balancespace and goal1 and count0 and number1 and wrongtemp and dark\n2 = balancespace and goal2 and count0 and number2 and wrongtemp and dark\n3 = balancespace and goal3 and count0 and number3 and wrongtemp and dark\n4 = balancespace and goal4 and count0 and number4 and wrongtemp and dark\n? = balancespace and count0 and numberQ and goodtemp and dark\ne = balancespace and goale and count0 and numbere and goodtemp and dark\no = balancespace and goalo and count0 and numberowrong and wrongtemp and dark\n(goals with blocker and no number)\n5 = balancespace and goal0 and count0 and goodtemp and dark and blocker\n6 = balancespace and goal1 and count0 and wrongtemp and dark and blocker\n7 = balancespace and goal2 and count0 and wrongtemp and dark and blocker\n8 = balancespace and goal3 and count0 and wrongtemp and dark and blocker\n9 = balancespace and goal4 and count0 and wrongtemp and dark and blocker\n\n(drawing)\na = secret\ns = drawingboardcenter and count0 and drawgoal0\nd = drawingboardcenter and count0 and drawgoal1\nf = drawingboardcenter and count0 and drawgoal2\ng = drawingboardcenter and count0 and drawgoal3\nj = drawingboardcenter and count0 and drawgoal4\nm = housewallintdown\nu = housefloornorm\ni = housefloorstart\nr = rose1\nÐ = housewallintleft and housewallsecret\nᶃ = hiddendoor and hiddenmesage\n\nᶊ = end\n\n► = bloomstart and balancespace and blocker\n◄ = target and balancespace and blocker\n¤ = balancespace and goal0 and count0 and goodtemp and blocker and finalpattern\n┰ = balancespace and goal0 and count0 and goodtemp and blocker\n\n\n=======\nSOUNDS\n=======\n\nsfx1 50548908\nsfx2 70091308\nsfx3 2038108\nsfx4 55009308\nsfx5 88082508\nsfx6 59276308\nsfx7 68756908\nsfx8 20891708\nsfx9 71493108\nsfx10 34050308\n\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ndrawgood, drawwrong, target, bloomstart\nmark, drawmark, drawmarknegative, housefloorstart\nground1, ground2, ground3, groundstart, towertile, towertilecrack1, towertilecrack2, towertilecrack,towertilehalflight,towertileoutside,towertilecrack3,end, balancespace, drawingboardcenter, drawingboardleft, drawingboardright, drawingboardtop, drawingboarddown, drawingboardtopleft, drawingboardtopright, drawingboarddownright, drawingboarddownleft, imbalancespace, imbalancespacerandom, housefloor, blocktile, nodrawspace, clearspace\npath, pathstart, messagemarkup, messagemarkdown\nbasementtile, basementlinetile, puddlecenter, puddleleft, puddleright, puddletop, puddlebottom, puddlecornertr, puddlecornertl, puddlecornerbr, puddlecornerbl\ngood, wrong, goodtemp, wrongtemp puzzletilewrong, puzzletilegood, puzzlestartbad, puzzlestartgood, puzzletilehidden, puzzletilewrongend\nLight, Darkbarrier, number1, number2, number3, number4, number0, numberQ, numbere, numbero, numberewrong, numberowrong, chainstart, chaingoal, chaingoaltemp, chainstarttemp, imbalance, imbalancerandom, nodraw, floormesage, balancemesagefinal2\nchain, leftmark, rightmark, upmark, downmark, countup, countdown, roofpattern,imbalancemesage1, imbalancemesage2, balancemesagefinal, basementpattern, finalpattern\n1Left, drawleft, roofleft, baseleft, finalleft,clear\n1right, drawright, roofright, baseright, finalright\n1up, drawup, roofup, baseup, finalup,towerwallint, Physicalwall, basementwall, basementphysicalwall, basementphysicalwallperm\n1down, drawdown, roofdown, basedown, finaldown\ncount0, count1, count2, count3, count4, drawsetup1, drawsetup2, drawsetup3, drawsetup4, drawsetup5, highgroundstart,highground1, highground2, highground3, highpuddletopright1,highpuddletopright2,highpuddletopleft1,highpuddletopleft2, highpuddlebottomleft1,highpuddlebottomleft2, highpuddlebottomright, towerbalconytopleft, towerbalconytopright\nchange, drawchange, houseentrance, towerentrance, towerentrancefront, towerstairsup, towerstairsdown1, towerstairsuptemp, towerstairsdowntemp,towerwallintleftmid, towerwallintlefttop,towerwallintrightmid, towerwallintrighttop, towerwallinttoppermanent, basementstairsdown, basementstairsdowntemp, secret, secret2, hiddendoortemp, hiddendoor,basementwallrightmid, basementwallrighttop, basementwallleftmid, basementwalllefttop, towerbalconytoprightroof, towerbalconytopleftroof, basemententrance, basemententrance1, basemententrance2, basementstairsdownblocked, towerstairsdown2, towerstairsupblocked, dirttile\nPlayer, Wall, housewall, housewallcrack, housewallside,houseroof, houseroofside, housewindow, towerbase, towerbaseleft, towerbaseright, towerpillar1, towerpillar2, towerpillar2special, towerpillar3,towerwallintleft, towerwallintright, towerwallbottomleft, towerwallbottomright, towerwallinttop, towerwallintbottom,towerwallinttoppermanent, towerbalconyleft, towerbalconyright, towerbalconytop, housewallinttop, housewallintright, housewallintleft, housewallintdown, rose, basementwallbottomleft, basementwallbottomright, basementwallleft, basementwallright, towerwall1, towerwall2, towerbalconyrightroof, towerbalconyleftroof, basementpillar1, basementpillar2, basementpillar3, basementpillar4, basementpillar5, basementpillar6, bloomend, rosetile, rosetilestart, towerwall1right, towerwall1left, towerwall2right, towerwall2left\ngoal0, goal1, goal2, goal3, goal4, goale, goalo, drawgoal0, drawgoal1, drawgoal2, drawgoal3, drawgoal4, puzzlepanel,towerpillartop2, towerpillartop2special, towerpillarmid3, towerpillartop3, basementpillartop2, basementpillarmid3, basementpillartop3, basementpillartop4, basementpillarmid6, basementpillartop6, towerpillartop1\nDark, light, lightout, halftiletopright, halftiletopleft, halftilebottomright, halftilebottomleft\nblocker, basementprogressmark, towerprogressmark, bloom1, bloom2, bloom3, bloom4, bloom5, bloom6, bloom7, bloom8, bloom9, bloom10, bloom11, bloom12, bloom13,bloom14, bloom15, bloom16, bloom17, bloom18, bloom19, bloom20, bloom21\npuzzle1mesage1, puzzle1mesage2, puzzle2mesage1, puzzle2mesage2, puzzle3mesage1, puzzle3mesage2, puzzle4mesage1, puzzle4mesage2, puzzle5mesage1, puzzle5mesage2, puzzle6mesage1, puzzle6mesage2, puzzle8mesage1, puzzle8mesage2, bpuzzle1mesage, bpuzzle2mesage, bpuzzle3mesage, bpuzzle4mesage, bpuzzle5mesage, bpuzzle6mesage, bpuzzle7mesage, bpuzzle8mesage, bpuzzle9mesage, entrancemesage, hiddenmesage, housewallsecret,secretsetup\n\n======\nRULES \n====== \n\n(World Creation)\n\n[groundstart] -> [random ground]\n\n[rosetilestart] -> [random rosetile]\n\n[basementtile| towertileoutside roofpattern] -> [basementtile| basementtile basementpattern]\n\nvertical[pathvert | pathstart] -> [pathvert|pathvert]\nhorizontal[pathvert|pathstart] -> [pathrightbend|pathhoriz]\nhorizontal[pathhoriz|pathstart] -> [pathhoriz|pathhoriz]\nup[pathhoriz|pathstart] -> [pathtri|pathvert]\nright[pathtri|no path] -> [pathupbend|no path]\nup[pathvert|no path] -> [pathend|no path]\n\nright [puddlecenter| no puddle] -> [puddlecenter| puddleright]\nleft [puddlecenter| no puddle] -> [puddlecenter| puddleleft]\nup [puddlecenter| no puddle] -> [puddlecenter| puddletop]\ndown [puddlecenter| no puddle] -> [puddlecenter| puddlebottom]\n\nup[puddleright| no puddle] -> [puddleright| puddlecornertr]\ndown[puddleright| no puddle] -> [puddleright| puddlecornerbr]\nup[puddleleft| no puddle] -> [puddleleft| puddlecornertl]\ndown[puddleleft| no puddle] -> [puddleleft| puddlecornerbl]\n\nleft[houseroof| no houseroof] -> [houseroof| houseroofside]\nleft[housewall|ground] -> [housewallside| ground]\n\nleft[housewindow|]-> [housewindow|housewallcrack]\n\ndown[towerentrance | ground] -> [towerentrance | towerentrancefront]\n\nleft[towerwall1|ground] -> [towerwall1left|ground]\nleft[towerwall2|ground] -> [towerwall2left|ground]\nleft[towerbase|ground] -> [towerbaseleft|ground]\n\nright[towerwall1|ground] -> [towerwall1right|ground]\nright[towerwall2|ground] -> [towerwall2right|ground]\nright[towerbase|ground] -> [towerbaseright|ground]\n\ndown[towertileoutside|towertile] -> [towertileoutside|towertilehalflight]\n\n[towerwallint|basementtile] -> [basementwall|basementtile]\n[basementwall|physicalwall] -> [basementwall|basementphysicalwall]\n[basementtile|physicalwall] -> [basementtile|basementphysicalwall]\n[basementphysicalwall|physicalwall] -> [basementphysicalwall|basementphysicalwall]\n\n[towertile|basementtile] -> [basementtile|basementtile]\n\n[towertile|basementlinetile] -> [basementlinetile|basementlinetile]\n\n[towerpillar1|basementtile] -> [basementpillar1|basementtile]\n[towerpillar2|basementtile] -> [basementpillar2|basementtile]\n[towerpillar3|basementtile] -> [basementpillar3|basementtile]\n\nup[towerpillar1|] -> [towerpillar1|towerpillartop1]\nup[towerpillar2|] -> [towerpillar2|towerpillartop2]\nup[towerpillar2special|] -> [towerpillar2special|towerpillartop2special]\nup[towerpillar3||] ->[towerpillar3|towerpillarmid3|towerpillartop3]\nup[basementpillar2|] -> [basementpillar2|basementpillartop2]\nup[basementpillar3||] -> [basementpillar3|basementpillarmid3|basementpillartop3]\nup[basementpillar4|] -> [basementpillar4|basementpillartop4]\nup[basementpillar6||] -> [basementpillar6|basementpillarmid6|basementpillartop6]\n\ndown[towerwallint|towertile] -> [towerwallinttop|towertile]\nup[towerwallint|towertile] -> [towerwallintbottom|towertile]\nleft[towerwallinttop|towertile] -> [towerwallintright|towertile]\nright[towerwallinttop|towertile] -> [towerwallintleft|towertile]\nleft[towerwallintbottom|towertile] -> [towerwallbottomright|towertile]\nright[towerwallintbottom|towertile] -> [towerwallbottomleft|towertile]\nup[towerwallintleft|]-> [towerwallintleft|towerwallintleftmid]\nup[towerwallintright|]-> [towerwallintright|towerwallintrightmid]\nleft[towerwallintleftmid|] -> [towerwallintleftmid|towerwallintlefttop]\nright[towerwallintrightmid|] -> [towerwallintrightmid|towerwallintrighttop]\n\n\ndown[towertileoutside|towerwallint|towerwall1] -> [towertileoutside|halftilebottomleft towerwall2left|towerwall1]\ndown[towertileoutside|towerwallint|towerwall2] -> [towertileoutside|halftilebottomleft towerwall1left|towerwall2]\nleft[halftilebottomleft towerwall1left|towertileoutside] -> [halftilebottomright towerwall1right|towertileoutside]\nleft[halftilebottomleft towerwall2left|towertileoutside] -> [halftilebottomright towerwall2right|towertileoutside]\nup[towerwallint|towertileoutside] -> [towerwall1|towertileoutside]\n\nup[towertileoutside|towerwallint|highgroundstart]->[towertileoutside|halftiletopleft highgroundstart|highgroundstart]\nleft[halftiletopleft|towertileoutside]->[halftiletopright |towertileoutside]\nup[towertileoutside|towerwallint]->[towertileoutside|highgroundstart]\n\nup[towerbaseleft|towerwall1] -> [towerbaseleft|towerwall1left]\nup[towerbaseleft|towerwall2] -> [towerbaseleft|towerwall2left]\nup[towerbaseright|towerwall1] -> [towerbaseright|towerwall1right]\nup[towerbaseright|towerwall2] -> [towerbaseright|towerwall2right]\nvertical[towerwall1right|towerwall2] -> [towerwall1right|towerwall2right]\nvertical[towerwall2right|towerwall1] -> [towerwall2right|towerwall1right]\nvertical[towerwall1left|towerwall2] -> [towerwall1left|towerwall2left]\nvertical[towerwall2left|towerwall1] -> [towerwall2left|towerwall1left]\n\nup [towertileoutside | towertile] -> [towertileoutside| towertileoutside]\n\n[highgroundstart] -> [random highground]\n\nleft [highpuddlebottomright| no highpuddle] -> [highpuddlebottomright|random highpuddlebottomleft]\nup [highpuddlebottomright| no highpuddle ] -> [highpuddlebottomright|random highpuddletopright]\nup [highpuddlebottomleft| no highpuddle ] -> [highpuddlebottomleft|random highpuddletopleft]\n\nleft[towertileoutside | no halftiletopleft highground] -> [towertileoutside|no halftiletopleft towerbalconyleft]\nright[towertileoutside |no halftiletopright highground] -> [towertileoutside|no halftiletopright towerbalconyright]\nup[towertileoutside | highground] -> [towertileoutside|towerbalconytop]\nup[towerbalconyleft | highground] -> [towerbalconyleft|towerbalconytopleft]\nup[towerbalconyright | highground] -> [towerbalconyright|towerbalconytopright]\n\nleft[towerbalconytop | highground] -> [towerbalconytop|towerbalconytopleftroof]\nright[towerbalconytop | highground] -> [towerbalconytop|towerbalconytoprightroof]\ndown[towerbalconytopleftroof|towerbalconytop] -> [towerbalconytopleftroof| towerbalconyleftroof]\ndown[towerbalconytoprightroof|towerbalconytop] -> [towerbalconytoprightroof|towerbalconyrightroof]\n\nleft[roofpattern|roofpattern] -> [roofpattern roofleft| roofpattern roofright]\nup[roofpattern|roofpattern] -> [roofpattern roofup| roofpattern roofdown]\n\nleft[finalpattern|finalpattern] -> [finalpattern finalleft| finalpattern finalright]\nup[finalpattern|finalpattern] -> [finalpattern finalup| finalpattern finaldown]\n\nleft[basementpattern|basementpattern] -> [basementpattern baseleft| basementpattern baseright]\nup[basementpattern|basementpattern] -> [basementpattern baseup| basementpattern basedown]\n\nup[puzzletilewrong no basementtile no basementlinetile | no puzzlepanel] -> [puzzletilewrong|puzzlepanel]\n\n[imbalance | balancespace] -> [imbalance | imbalancespace]\n[imbalancerandom | balancespace] -> [imbalancerandom | imbalancespacerandom]\n[imbalancespace | balancespace] -> [imbalancespace | imbalancespace]\n[imbalancespacerandom | balancespace] -> [imbalancespacerandom | imbalancespacerandom]\n[nodraw | balancespace] -> [nodraw|nodrawspace blocker]\n[nodrawspace|balancespace] -> [nodrawspace|nodrawspace blocker]\n\nleft[drawingboardcenter|housefloor] -> [drawingboardleft|housefloor]\nright[drawingboardcenter|housefloor] -> [drawingboardright|housefloor]\nup[drawingboardcenter|housefloor] -> [drawingboardtop|housefloor]\ndown[drawingboardcenter|housefloor] -> [drawingboarddown|housefloor]\nup[drawingboardleft|housefloor] -> [drawingboardtopleft|housefloor]\nup[drawingboardright|housefloor] -> [drawingboardtopright|housefloor]\ndown[drawingboardleft|housefloor] -> [drawingboarddownleft|housefloor]\ndown[drawingboardright|housefloor] -> [drawingboarddownright|housefloor]\n\n[housefloorstart] -> [random housefloorcrease]\nright [housewallintdown|housefloor] -> [housewallintright|housefloor]\nleft[housewallintdown|housefloor]-> [housewallintleft|housefloor]\ndown [housewallintdown|housewallintdown|housefloor] -> [housewallinttop|housewallinttop|housefloor]\nleft [housewallinttop|housewallintdown] -> [housewallinttop|housewallintright]\nright [housewallinttop|housewallintdown] -> [housewallinttop|housewallintleft]\n\nright[rose1||||] -> [rose1|rose2|rose3|rose4|rose5]\ndown[rose1|] -> [rose1|rose6]\nright[rose6||||] -> [rose6|rose7|rose8|rose9|rose10]\n\nup[basementtile|basementwall] -> [basementtile|basementwallleft]\nleft[basementwallleft|basementtile] -> [basementwallright|basementtile]\nleft[basementwallleft|basementblocktile] -> [basementwallright|basementblocktile]\nup[basementwallleft|basementphysicalwall]->[basementwallleft|basementwallleftmid]\nup[basementwallright|basementphysicalwall]->[basementwallright|basementwallrightmid]\nup[basementwallleftmid|no basementphysicalwallperm basementphysicalwall]->[basementwallleftmid|basementwalllefttop]\nup[basementwallrightmid|no basementphysicalwallperm basementphysicalwall]->[basementwallrightmid|basementwallrighttop]\ndown[basementtile|basementwall] -> [basementtile|basementwallbottomleft]\nleft[basementwallbottomleft|basementtile] -> [basementwallbottomright|basementtile]\nleft[basementwallbottomleft|basementblocktile] -> [basementwallbottomright|basementblocktile]\n\nvertical [ basementlinetile|basementblocktile] -> [basementlinetile|basementlineblocktile]\n[basementlinetile|basementtile puzzletilewrong] -> [basementlinetile| basementlinetile puzzletilewrong]\n\n[basementtile|towerstairsdown1] -> [basementtile|basementstairsdownblocked]\n\n[towertilecrack] -> [random towertilepick]\n\nhorizontal[towerentrance no puzzle1mesage1|puzzle1mesage1] -> [towerentrance no puzzle1mesage1| no puzzle1mesage1]\n\nup[rosetile| |rosetile] -> [rosetile| dirttile| rosetile]\n\ndown [basemententrance|||||||housewallsecret] -> [basemententrance|||||||secretsetup]\n\n[secretsetup] up [houseentrance||drawgoal0||||] -> [secretsetup] up [houseentrance||drawsetup1|drawsetup2|drawsetup3|drawsetup4|drawsetup5]\n\nright[drawsetup1||||||] -> [drawgoal2 count0|drawgoal1|drawgoal0|drawgoal0|drawgoal0|drawgoal0|drawgoal0]\nright[drawsetup2||||||] -> [drawgoal1 count0|drawgoal0|drawgoal0|drawgoal0|drawgoal2|drawgoal2|drawgoal0]\nright[drawsetup3||||||] -> [drawgoal0 count2|drawgoal2|drawgoal2|drawgoal0|drawgoal2|drawgoal2|drawgoal0]\nright[drawsetup4||||||] -> [drawgoal0 count3|drawgoal2|drawgoal2|drawgoal0|drawgoal0|drawgoal0|drawgoal1]\nright[drawsetup5||||||] -> [drawgoal0 count2|drawgoal0|drawgoal0|drawgoal0|drawgoal0|drawgoal1|drawgoal2]\n\n[secretsetup housewallintleft] -> [secret2 no housewallintleft]\n\n\n(Transportation Messages)\n[action man puzzle2mesage1] -> [action man] sfx1 message I've been watching you\n[action man puzzle2mesage2] -> [action man] sfx4 message Every connection draws us closer\n[action man puzzle3mesage1] -> [action man] sfx7 message If you don't want to, its ok\n[action man puzzle3mesage2] -> [action man] sfx4 message All you need to do is be here \n[action man puzzle4mesage1] -> [action man] sfx5 message I'll be waiting at the top\n[action man puzzle4mesage2] -> [action man] sfx6 message Take as much time as you need\n[action man puzzle5mesage1] -> [action man] sfx2 message My mind is above and heart below\n[action man puzzle5mesage2] -> [action man] sfx2 message Both parts equally important\n[action man puzzle6mesage1] -> [action man] sfx7 message I so enjoy you being here\n[action man puzzle6mesage2] -> [action man] sfx1 message Can you see it in my eyes?\n[action man puzzle8mesage1] -> [action man] sfx8 message I'd like it if you stay\n[action man puzzle8mesage2] -> [action man] sfx10 message I trust you feel the same\n[action man bpuzzle2mesage] -> [action man] sfx5 message I'll be waiting at the bottom\n[action man bpuzzle3mesage] -> [action man] sfx6 message I can't wait till you're here\n[action man bpuzzle4mesage] -> [action man] sfx10 message I know you feel the same\n[action man bpuzzle5mesage] -> [action man] sfx8 message I can't solve your problems\n[action man bpuzzle6mesage] -> [action man] sfx2 message But I will see them through with you\n[action man bpuzzle7mesage] -> [action man] sfx9 message I see you\n[action man bpuzzle8mesage] -> [action man] sfx9 message And you see me\n[action man bpuzzle9mesage] -> [action man] sfx3 message Where have you been?\n[action man puzzle1mesage2] -> [action man] sfx6 message Heart and mind together as one\n\n\n[action man imbalancemesage1] -> [action man imbalancemesage1] sfx9 message You can only do so much\n[action man imbalancemesage2] -> [action man imbalancemesage2] sfx9 message You can leave it if you want to\n[action man balancemesagefinal] -> [action man balancemesagefinal] sfx1 message I've been watching you... From thee empty floor\n[action selector balancemesagefinal2] -> [action selector balancemesagefinal2] sfx4 message Look me in the eyes\n\n(Transportation)\n\n[> man floormesage | puzzlepanel] -> [man floormesage| puzzlepanel]\n\n\nup [towerentrance man floormesage puzzle1mesage1 | | | towerentrance | ] -> [towerentrance | | | towerentrance | man floormesage messagemarkup] sfx3 message Where have you been?\nup [towerentrance man floormesage | | | towerentrance | ] -> [towerentrance | || towerentrance | man floormesage messagemarkup]\ndown [towerentrance man floormesage | | | towerentrance | ] -> [towerentrance | | | towerentrance | man floormesage messagemarkdown]\n\n [action man puzzletilewrongend] [puzzlestartbadend] -> [puzzletilewrongend] [selector puzzlestartbadend light] checkpoint\n [action selector puzzlestartbadend] [puzzletilewrongend] -> [puzzlestartbadend lightout] [mandown puzzletilewrongend] checkpoint\n\nhorizontal [action man puzzletile| ... | puzzlestart] -> [puzzletile|...| puzzlestart selector light] checkpoint\n\nhorizontal [action selector puzzlestart|...| puzzletile] -> [puzzlestart lightout|...|puzzletile mandown] checkpoint\n\n up [action man floormesage towerstairsup|...|towerstairsdown] -> [towerstairsup|...|towerstairsdown messagemarkup man floormesage ]\ndown [action man floormesage towerstairsdown|...|towerstairsup] -> [towerstairsdown|...|towerstairsup messagemarkdown man floormesage]\n[towerstairsuptemp no man] -> [towerstairsup]\n[towerstairsdowntemp no man] -> [towerstairsdown2]\n\n[houseentrance man floormesage no mark] [houseentrance no man] -> [houseentrance] [ houseentrance man floormesage mark]\n\n[hiddendoor man floormesage no mark hiddenmesage] [hiddendoor no man] -> [hiddendoor] [ hiddendoor man floormesage mark] sfx6 message My heart is yours\n[hiddendoor man floormesage no mark] [hiddendoor no man] -> [hiddendoor] [ hiddendoor man floormesage mark]\n\n[basemententrance man floormesage no mark] [basemententrance1 no man] -> [basemententrance] [basemententrance1 man floormesage mark messagemarkdown]\n[basemententrance1 man floormesage no mark] [basemententrance no man] -> [basemententrance1] [basemententrance man floormesage mark messagemarkup]\n[basemententrance2 man floormesage no mark bpuzzle1mesage] [basemententrance2 no man bpuzzle1mesage] -> [basemententrance2] [basemententrance2 man floormesage mark] sfx6 message My mind is yours\n[basemententrance2 man floormesage no mark] [basemententrance2 no man] -> [basemententrance2] [basemententrance2 man floormesage mark]\n\ndown [down man blocktile floormesage | blocktile] -> [man blocktile floormesage | blocktile]\nup [up man blocktile floormesage | blocktile] -> [man blocktile floormesage | blocktile]\n\n [ > man floormesage] -> [> man > floormesage]\n late [man] [floormesage no man] -> [man floormesage] []\n \n \n [> bloomend1] -> [bloomend1]\n(darkness)\n\n[light | dark] -> [light|light]\n\n[lightout | light] -> [lightout | lightout]\n\n[lightout] -> [dark]\n\n(man movement)\n[left man] -> [left manleft]\n[right man] -> [right manright]\n[up man] -> [up manup]\n[down man] -> [down mandown]\n\n(drawing)\n\nleft [left man drawingboard no drawleft | drawingboard] -> [drawingboard drawleft drawmark | drawingboard drawright man drawmark]\nright [right man drawingboard no drawright | drawingboard] -> [drawingboard drawright drawmark | drawingboard drawleft man drawmark]\nup [up man drawingboard no drawup | drawingboard] -> [drawingboard drawup drawmark| drawingboard drawdown man drawmark]\ndown [down man drawingboard no drawdown | drawingboard] -> [drawingboard drawdown drawmark| drawingboard drawup man drawmark]\n\nleft [left man drawingboard drawleft | drawingboard drawright] -> [drawingboard no drawleft drawmarknegative| drawingboard no drawright man drawmarknegative]\nright [right man drawingboard drawright | drawingboard drawleft] -> [drawingboard no drawright drawmarknegative| drawingboard no drawleft man drawmarknegative]\nup [up man drawingboard drawup | drawingboard drawdown] -> [drawingboard no drawup drawmarknegative| drawingboard no drawdown man drawmarknegative]\ndown [down man drawingboard drawdown | drawingboard drawup] -> [drawingboard no drawdown drawmarknegative| drawingboard no drawup man drawmarknegative]\n\n[count0 drawmark] -> [count1 drawchange]\n[count1 drawmark] -> [count2 drawchange]\n[count2 drawmark] -> [count3 drawchange]\n[count3 drawmark] -> [count4 drawchange]\n\n[count4 drawmarknegative] -> [count3 drawchange]\n[count3 drawmarknegative] -> [count2 drawchange]\n[count2 drawmarknegative] -> [count1 drawchange]\n[count1 drawmarknegative] -> [count0 drawchange]\n\n[count4 drawgoal4] [drawchange] -> [count4 drawgoal4 drawgood] [drawchange]\n[count3 drawgoal3] [drawchange] -> [count3 drawgoal3 drawgood] [drawchange]\n[count2 drawgoal2] [drawchange] -> [count2 drawgoal2 drawgood] [drawchange]\n[count1 drawgoal1] [drawchange] -> [count1 drawgoal1 drawgood] [drawchange]\n[count0 drawgoal0] [drawchange] -> [count0 drawgoal0 drawgood] [drawchange]\n\n[drawingboard no drawgood] [drawchange] -> [drawingboard drawwrong] [drawchange]\n\n[secret] -> [basementstairsdowntemp]\n[secret2] -> [hiddendoortemp]\n\n[basementstairsdowntemp] [drawingboard drawwrong]-> [secret] [drawingboard drawwrong]\n[basementstairsdowntemp] [drawchange]-> [basemententrance] [drawchange]\n[basementstairsdowntemp] -> [secret]\n[hiddendoortemp] [drawingboard drawwrong]-> [secret2] [drawingboard drawwrong]\n[hiddendoortemp] [drawchange]-> [hiddendoor] [drawchange]\n[hiddendoortemp] -> [secret2]\n\n\n[drawingboard drawgood] -> [drawingboard]\n[ > man | secret] -> [ man | secret]\n[ > man | secret2] -> [ man | secret2]\n[ > man | basementphysicalwall] -> [man | basementphysicalwall]\n\n(Earth)\n\n(clearing)\n[action selector clearspace| balancespace] -> [selector clearspace | clear balancespace]\n\nstartloop\n\n[clear 1right] -> [clear]\n[clear 1down] -> [clear]\n[clear 1up] -> [clear]\n[clear | balancespace] -> [clear |balancespace clear]\n\nendloop\n\n[clear] -> [count0 wrong change]\n\n(selector controls)\n\n[Action selector] -> [redselector]\n[Action redselector] -> [selector]\n\n[> redselector | puzzlestart] -> [redselector | puzzlestart]\n[> redselector nodrawspace] -> [redselector nodrawspace]\n[> redselector | clearspace] -> [redselector | clearspace]\n\n[wrongtemp light] -> [wrong light]\n[goodtemp light] -> [good light]\n[good dark] -> [goodtemp dark]\n[wrong dark] -> [wrongtemp dark]\n\n(marking for connection)\nright [right redselector balancespace | balancespace] -> right[redselector balancespace rightmark|balancespace leftmark]\nleft [left redselector balancespace | balancespace] -> left[redselector balancespace leftmark|balancespace rightmark]\nup [up redselector balancespace | balancespace] -> up[redselector balancespace upmark|balancespace downmark]\ndown [down redselector balancespace | balancespace] -> down[redselector balancespace downmark|balancespace upmark]\n\n(marking for connection in imbalance)\nright [right redselector imbalancespace | imbalancespace] -> right[redselector imbalancespace rightmark|imbalancespace rightmark]\nleft [left redselector imbalancespace | imbalancespace] -> left[redselector imbalancespace leftmark|imbalancespace leftmark]\nup [up redselector imbalancespace | imbalancespace] -> up[redselector imbalancespace upmark|imbalancespace upmark]\ndown [down redselector imbalancespace | imbalancespace] -> down[redselector imbalancespace downmark|imbalancespace downmark]\n\n(marking for connection in imbalance random)\nright [right redselector imbalancespacerandom | imbalancespacerandom] -> right[redselector imbalancespacerandom rightmark|imbalancespacerandom random direction]\nleft [left redselector imbalancespacerandom | imbalancespacerandom] -> left[redselector imbalancespacerandom leftmark|imbalancespacerandom random direction]\nup [up redselector imbalancespacerandom | imbalancespacerandom] -> up[redselector imbalancespacerandom upmark|imbalancespacerandom random direction]\ndown [down redselector imbalancespacerandom | imbalancespacerandom] -> down[redselector imbalancespacerandom downmark|imbalancespacerandom random direction]\n\n\n(making connection)\n[puzzlespace leftmark no 1left] -> [puzzlespace 1left countup]\n[puzzlespace leftmark 1left] -> [puzzlespace no 1left countdown]\n[puzzlespace rightmark no 1right] -> [puzzlespace 1right countup]\n[puzzlespace rightmark 1right] -> [puzzlespace no 1right countdown]\n[puzzlespace upmark no 1up] -> [puzzlespace 1up countup]\n[puzzlespace upmark 1up] -> [puzzlespace no 1up countdown]\n[puzzlespace downmark no 1down] -> [puzzlespace 1down countup]\n[puzzlespace downmark 1down] -> [puzzlespace no 1down countdown]\n\n(changing the count)\n[count0 countup] -> [count1 change]\n[count1 countup] -> [count2 change]\n[count2 countup] -> [count3 change]\n[count3 countup] -> [count4 change]\n[count4 countdown] -> [count3 change]\n[count3 countdown] -> [count2 change]\n[count2 countdown] -> [count1 change]\n[count1 countdown] -> [count0 change]\n\n(good and bad)\n\n[change numbere] -> [change numberewrong]\n[change numbero] -> [change numberowrong]\n[change good] -> [wrong]\n\n\n[count1 goal1 no goodtemp] -> [count1 goal1 good]\n[count2 goal2 no goodtemp] -> [count2 goal2 good]\n[count3 goal3 no goodtemp] -> [count3 goal3 good]\n[count4 goal4 no goodtemp] -> [count4 goal4 good]\n[count0 goal0 no goodtemp] -> [count0 goal0 good]\n[numberQ no goodtemp] -> [numberQ good]\n\n[count1 goalo no goodtemp numberowrong] -> [count1 goalo good numbero]\n[count2 goale no goodtemp numberewrong] -> [count2 goale good numbere]\n[count3 goalo no goodtemp numberowrong] -> [count3 goalo good numbero]\n[count4 goale no goodtemp numberewrong] -> [count4 goale good numbere]\n[count0 goale no goodtemp numberewrong] -> [count0 goale good numbere]\n\n\n(Chain)\n[chain] -> []\n\n[chainstarttemp | light] -> [chainstart | light]\n[chainstart | dark] -> [chainstarttemp | dark]\n[chaingoaltemp | light] -> [chaingoal | light]\n[chaingoal | dark] -> [chaingoaltemp | dark]\n\n[chainstart | puzzlespace] -> [chainstart | puzzlespace chain]\n[chainstart | imbalancespace] -> [chainstart | imbalancespace chain]\n[chainstart | imbalancespacerandom] -> [chainstart | imbalancespacerandom chain]\n\nstartloop\n\nright [chain 1right | ] -> [chain 1right | chain]\nleft [chain 1left | ] -> [chain 1left | chain]\nup [chain 1up | ] -> [chain 1up | chain]\ndown [chain 1down | ] -> [chain 1down | chain]\n\nendloop\n\n[chain | chaingoal] -> [chain | chaingoal chain]\n\n[mark no man] -> []\n[drawmark] -> []\n[drawmarknegative] -> []\n[drawchange] -> []\n\n(chacking for solution)\nhorizontal[puzzlestartbad|dark|...|puzzletilewrong] -> [puzzlestartbad|dark|...|puzzletilewrong mark]\nhorizontal[puzzlestartbad|...|puzzletilewrong] [chaingoal no chain] -> [puzzlestartbad|...|puzzletilewrong mark] [chaingoal no chain] \nhorizontal[puzzlestartbad|...|puzzletilewrong] [wrong] -> [puzzlestartbad|...|puzzletilewrong mark] [wrong]\n\nhorizontal[puzzletilewrongnorm no mark|...|puzzlestartbad] -> [puzzletilegoodnorm|...|puzzlestartgood]\nhorizontal[puzzletilewronghidden no mark|...|puzzlestartbad] -> [puzzletilegoodhidden|...|puzzlestartgood]\n\nup [puzzletilegood||||] -> [puzzletilegood||||basementprogressmark]\nleft [puzzletilegood||] -> [puzzletilegood||basementprogressmark]\n[basementprogressmark|basementstairsdownblocked] -> [basementprogressmark|towerstairsdown2]\n\n(messages)\n[man floor1mesage messagemarkup] -> [man floor2mesage] message Floor 2\n[man floor2mesage messagemarkup] -> [man floor3mesage] message Floor 3\n[man floor3mesage messagemarkup] -> [man floor4mesage] message Floor 4\n[man floor4mesage messagemarkup] -> [man floor5mesage] message Floor 5\n[man floor5mesage messagemarkup] -> [man floor6mesage] message Floor 6\n[man floor6mesage messagemarkup] -> [man floor7mesage] message Floor 7\n[man floor7mesage messagemarkup] -> [man floor8mesage] message Floor 8\n[man floor8mesage messagemarkup] -> [man floor9mesage] message Rooftop Garden\n[man floor9mesage messagemarkdown] -> [man floor8mesage] message Floor 8\n[man floor8mesage messagemarkdown] -> [man floor7mesage] message Floor 7\n[man floor7mesage messagemarkdown] -> [man floor6mesage] message Floor 6\n[man floor6mesage messagemarkdown] -> [man floor5mesage] message Floor 5\n[man floor5mesage messagemarkdown] -> [man floor4mesage] message Floor 4\n[man floor4mesage messagemarkdown] -> [man floor3mesage] message Floor 3\n[man floor3mesage messagemarkdown] -> [man floor2mesage] message Floor 2\n[man floor2mesage messagemarkdown] -> [man floor1mesage] message Floor 1\n[man floor1mesage messagemarkdown] -> [man floor0mesage]\n[man floor0mesage messagemarkdown] -> [man bfloor1mesage] message Basement Floor 1\n[man bfloor1mesage messagemarkdown] -> [man bfloor2mesage] message Basement Floor 2\n[man bfloor2mesage messagemarkdown] -> [man bfloor3mesage] message Basement Floor 3\n[man bfloor3mesage messagemarkdown] -> [man bfloor4mesage] message Basement Floor 4\n[man bfloor4mesage messagemarkdown] -> [man bfloor5mesage] message Basement Floor 5\n[man bfloor5mesage messagemarkdown] -> [man bfloor6mesage] message Basement Floor 6\n[man bfloor6mesage messagemarkdown] -> [man bfloor7mesage] message Basement Floor 7\n[man bfloor7mesage messagemarkdown] -> [man bfloor8mesage] message Basement Floor 8\n[man bfloor8mesage messagemarkdown] [drawingboard] -> [man bfloor9mesage] [drawingboard clear]\n[man bfloor9mesage messagemarkup] -> [man bfloor8mesage] message Basement Floor 8\n[man bfloor8mesage messagemarkup] -> [man bfloor7mesage] message Basement Floor 7\n[man bfloor7mesage messagemarkup] -> [man bfloor6mesage] message Basement Floor 6\n[man bfloor6mesage messagemarkup] -> [man bfloor5mesage] message Basement Floor 5\n[man bfloor5mesage messagemarkup] -> [man bfloor4mesage] message Basement Floor 4\n[man bfloor4mesage messagemarkup] -> [man bfloor3mesage] message Basement Floor 3\n[man bfloor3mesage messagemarkup] -> [man bfloor2mesage] message Basement Floor 2\n[man bfloor2mesage messagemarkup] -> [man bfloor1mesage] message Basement Floor 1\n[man bfloor1mesage messagemarkup] -> [man floor0mesage]\n[man floor0mesage messagemarkup] -> [man floor1mesage] message Floor 1\n\n[drawingboard clear| drawingboard] -> [drawingboard clear| drawingboard clear]\n\n[drawright clear] -> [clear]\n[drawup clear] -> [clear]\n[drawdown clear] -> [clear]\n[clear] -> [count0]\n\n(end)\nright[bloom21|] -> [bloom21|bloomend1]\n\nright[bloom17|] -> [bloom17|bloom18]\nright[bloom20|] -> [bloom20|bloom21] again\n\nright[bloom12|] -> [bloom12|bloom13]\nright[bloom16|] -> [bloom16|bloom17]\nright[bloom19|] -> [bloom19|bloom20] again\n\nright[bloom7|] -> [bloom7|bloom8]\nright[bloom11|] -> [bloom11|bloom12]\nright[bloom15|] -> [bloom15|bloom16]\ndown[bloom15|] -> [bloom15|bloom19 again]\n\nright[bloom6|] -> [bloom6|bloom7]\nright[bloom10|] -> [bloom10|bloom11]\nright[bloom14|] -> [bloom14|bloom15] again\n\nright[bloom2|] -> [bloom2|bloom3]\nright[bloom5|] -> [bloom5|bloom6]\nright[bloom9|] -> [bloom9|bloom10]\ndown[bloom9|] -> [bloom9|bloom14] again\n\nright[bloom1|] -> [bloom1|bloom2]\nright[bloom4|] -> [bloom4|bloom5]\ndown[bloom4|] -> [bloom4|bloom9] again\n\nright[bloomstart|] -> [bloomstart|bloom1]\ndown[bloomstart|] -> [bloomstart|bloom4] again\n\n[action bloomend1] -> [bloomend]\n\n\n==============\nWINCONDITIONS\n==============\n\n\nAll end on puzzlestartgood\n\nAll target on bloomend\n\n======= \nLEVELS\n=======\n\n###########&&&%%%%%&&&###########\n###########&&%⤫⤫⤫⤫⤫%&&###########\n###########&%kk'''kk%&###########\n###########%⤫kkk'kkk⤫%###########\n###########'⤫kkk'kkk⤫'###########\n###########'⤫'k''/k'⤫'###########\n###########'⤫'kkkkk'⤫'###########\n###########%⤫'/'''''⤫%###########\n###########q%''''↓''%q###########\n###########ww%⤫⤫⤫⤫⤫%ww###########\n###########qqq%%%%%qqq###########\n###########___%%%%%___###########\n##@###@####__%,,,,,%__###@###@###\n##221222###_%,[,{,,[%_##1221122##\n#y222222@##%[⅝,,[,,,[%##2302221@#\n#£122132###,[,[[[l,,,,#*2323121##\n##221212###,{,,,[[↉,{,##1241222y#\n#*222222@##,[[[,[[[[,,##13202?3£#\n##222232###%,,[↓/,,,,%##12?3222##\n##233212###_%,{[[↥,,%_#@2202232@#\n######@####__%,[,,[%__##2??2321##\n###########___%%%%%___###@###@###\n###########___%%%%%___###########\n###########__%,,,,,%__###########\n###########_%,,,l,,,%_######⸝####\n###########%,,⥁,,,{,,%###02110###\n###########,,,,{,{,,l,###22032###\n###########,,,,,¢,,,,,###23140y##\n###########,,,,{,{,,,,###10211###\n###########%,,{↥,↓{,,%###02100###\n###########_%,,,l,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########&&&&&&&&&&&###########\n###########&&&&&&&&&&&#####@#####\n###########&&+&&+&&+&&##22?2212@#\n###########&&&&&&&&&&&#@2101222##\n###########&&&&&&&&&&&##2222222##\n###########&&&&&&&&&&&##2212422*#\n###########&&&'''''&&&#@2220202£#\n###########&&&''⅐''&&&##222?222y#\n###########&&&'''''&&&#######@###\n###########&&&'''''&&&###########\n###########___c'''c___###########\n###########___c'''c___###########\n###########__%,,,,,%__###########\n#####*#####_%,l,,,,,%_###########\n##y13121###%,,,,⅚,,,,%###0220:###\n##£23232@##[[[,,,,,[[[###2222####\n###o3?33###,l,,,,,,,,ᵶ##@2222y###\n###12222###///,,l,,///###0220####\n###12121@##%,,,↓[↥,,,%#####*#####\n###@#######_%,l,,,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########___%%%%%___#######@###\n###########__%,⅜,[,%__###21?22y##\n###########_%,,,/l,,%_##@21022£##\n#####@#####%,,,,,,,,,%###23?22###\n###y11?####,,,,[,⅘,,,,###23023@##\n###*223####,,,,,/,,,,,##*12?11###\n####?32####,l,,,,,,,,,###########\n###########%,,,↥,↓,,,%###########\n###########_%,,l/,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########&&&&&&&&&&&###########\n###########&+&&&&&&&&&###########\n###########&&&&&&&&&&&###########\n###########&&&&&+&&&&&###@#!#####\n###########&&&&&&&&&&&###2221@###\n###########&&&&&&&&&&&###3221####\n###########&&&'''''&&&###3221####\n###########+&&''¥''&&&##@2221y###\n###########&&&'''''&&&#####*#####\n###########&&&'''''&&&###########\n###########___c'''c___###########\n###########___c'''c___###########\n#######@###__%,,,,,%__###########\n###*e2o1###_%,,,/,,,%_####@######\n####2o3o###%,,/,,,/,,%###e1321*##\n###yo1e1###,,⅗,,,,,,,,###2e232###\n###£2e3o@##,l,,,,,,⅖,,###21oe1y##\n####o3e2###,,,,,,,,l,,###1e3oo£##\n####@######%,,,↓/↥,,,%##@2o112###\n###########_%,,,l,,,%_#######@###\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########___%%%%%___###########\n###########__%/,,,,%__######@####\n###########_%/,,,,l,%_####e211@##\n######@####%,[⅔,,,/,,%####2432y##\n###@2oe####,,,[,,,,/,,###@133e£##\n###yee3####,,,,,l,⅛[,,####1212###\n####12o@###,l,,,,,[l,,#####*#####\n####*######%,,,↥,↓,,,%###########\n###########_%,,,,,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########&&&&&&&&&&&###########\n####@##@###&&&&&&&&+&&###########\n###122221##&&+&&&&&&&&###########\n###112132@#&&&&&&&&&&&###########\n##*222022##&&&&&&&&&&&###########\n###230232##&&&&&&&&&&&###########\n##£232331@#&&&'''''&&+###########\n##y222121##&&&''⅙''&&&###########\n####@##@###&&&'''''&&&###########\n###########&&&'''''&&&###########\n###########___c'''c___###########\n###########___c'''c___###########\n###########__%,,,,,%__###########\n####*######_%,,l,,,,%_###########\n##y22221@##%,⅕[,,,,,,%###1222####\n##£23232###,,,,,,l,,,,##@2331####\n###12212###,,l,,,,,,,,###2332£###\n###22421###,,,,,x,,,,,###1212y###\n###12221@##%,,,↓/↥,l,%####*######\n###@##@####_%,,,,,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########___%%%%%___###########\n###########__%,,,,,%__###########\n#####*#####_%,,l,,,,%_###########\n###12321###%x/,,,,,/,%##@22200y##\n##y12321###,,,,,,x,,l,###20201£##\n###@###@###,l,,,,,,,,,###22323###\n###########,,,,,,,,,,,###02101###\n###########%,,,↥/,,,,%###02100###\n###y121####_%xl,,,,,%_####*######\n###########__%,,,,,%__###########\n###########___%ttt%___###########\n.......$qqqqqqqqqqqqqqqqq$...~~~~\n..---...$$wwwwwwwwwwwww$$...~~~~~\n..-.......$$$qq⥏⥏⥏qq$$$....``````\n.............$$...$$.......```꠸``\n................z..........`h````\n................z...........z....\n............-...z...........z....\n...zzzzzzzzzzzzzzzzzzzzzzzzzz....\n...p....--............---........\n...z.........................--..\n...---...........................\nmmmmmmmmmmmmmmrmmmmmmm___________\nmmmmmmmmmmmmmmmmmmmmmm___________\nmmmmmmmmmmmmuiuuiuuuua___________\nmmmmmmmmmmmmuuiuuiuuum___________\nmiuiuᵽmmmmmmiffsssffim_\"\"\"\"\"\"____\nᶃuiuuummmmmmugjfsfjgumn;;;;;;____\nmmmmmmmmmmmmifjfsfjfum_\"\"\"\"\"\"____\nmmmmmmmmmmmmusfsssfsum____\"\"\"____\nmmmmmmmmmmmmusfffffsum____\"\"\"____\nmmmmmmmmmmmmuuuiuuiuiÐ____\"\"\"____\nmmmmmmmmmmmmmhmmmmmmmm____\"b\"____\n###########__%\"\";\"\"%__###########\n###########_%\"[⅑;\"]\"%_###@#######\n####@######%\"\"\"\"x\"\"\"\"%###2167y###\n###2167####\"/\"\"\";\"\"\"\\\"###3278£###\n##@3388*###\"\"\"\"\";\"\"\"\"\"###1276@###\n##y8888####;;;;;x;;;;n#####*#####\n##£7667####\"\"\"\"\";\"\"\"\"\"###########\n#####@#####\"/\"\"\";\"\"\"\\\"###########\n###########%\"\"\"\";\"\"\"\"%###########\n###########_%\"[\";\"]\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"↥;⅒\"\"%_###########\n###########%/\"\"\";\"\"\"{%######@####\n###########\"\"\"\"\";\"\"\"\"\"##@1232####\n###########\"\"\"]\";\"\\\"\"\"###3232*###\n###########\"\"\"\"\"x\"\"\"\"\"###2332y###\n###########\"\"\"/\";\"[\"\"\"##@7878£###\n###########\"\"\"\"\";\"\"\"\"\"###7876####\n###########%{\"\"\";\"\"\"\\%######@####\n###########_%\"\"\";\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"[⅞\"↥/\"%_###########\n###########%\"\"\"\"\"\"\"\"\"%###@###*###\n###########\"/\"\"\"\"\"\"\"\\\"###28677###\n###########\"\"\"\"\"\"\"\"\"\"\"###33892###\n###########\"\"\"\"\"x\"\"\"\"\"##@20731y##\n###########\"\"\"\"\"\"\"\"\"\"\"###37533£##\n###########\"[\"\"\"\"\"\"\"]\"###78782###\n###########%\"\"\"\"\"\"\"\"\"%###@###@###\n###########_%\"]\"\"\"\\\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"↥\"⥊\"\"%_###########\n###########%/\"]\"\"\"/\"/%###@#######\n###########\"\"\"\"\"\"\"\"\"\"\"###6866@###\n###########\"/\"\"\"\"\"\"\"]\"###6383####\n###########\"\"\"\"\"x\"\"\"\"\"##*8886y###\n###########\"]\"\"\"\"\"\"\"/\"###6181£###\n###########\"\"\"\"\"\"\"\"\"\"\"#####@#####\n###########%/\"/\"\"\"]\"/%###########\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"⥋\"↥\"\"%_###########\n###########%\"\"/\"\"\"{\"\"%###@#######\n###########\"[\"\"\"{\"\"\"/\"###2332@###\n###########\"\"\"\"\"\"\"\"\"\"\"###2222####\n###########;;;;;x;;;;;###7777y###\n###########\"\"\"\"\"\"\"\"\"\"\"##*7667£###\n###########\"{\"\"\"[\"\"\"/\"######@####\n###########%\"\"/\"\"\"[\"\"%###########\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"↥\"⥌\"\"%_#####@#####\n###########%\"\"\"\"\"\"\"\"\"%##222777###\n###########\"\"/[\"\"\"{\\\"\"#@343656###\n###########\"\"\"\"{\"]\"\"\"\"##222777###\n###########\"\"\"\"\"x\"\"\"\"\"##777777y##\n###########\"\"\"\"[\"{\"\"\"\"##656898£##\n###########\"\"/{\"\"\"]\\\"\"##777777###\n###########%\"\"\"\"\"\"\"\"\"%##*####@###\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"⥍\"↥\"\"%_###########\n###########%\"\"\"\"\"\"\"\"\"%######⸝####\n###########\"\"\"}\"\"\"}\"\"\"###00220###\n###########\"\"\"\"}\"}\"\"\"\"###14231###\n###########\"\"\"\"\"¢\"\"\"\"\"###11303y##\n###########\"\"\"\"}\"}\"\"\"\"###02410###\n###########\"\"\"{\"\"\"}\"\"\"###00210###\n###########%\"\"\"\"\"\"\"\"\"%###########\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\\↥\"⥎]\"%_###########\n##y6866*###%\"\"\"\"\"\"\"ᵹ\"%###########\n##£7777####\"/\"\"\"\"\"\"\"]\"###########\n###8687####\"\"\"\"\"\"\"\"\"\"\"######⸝####\n##@8797####\"\"\"\"\"\"\"\"\"\"\"###12332###\n###7676####\"\"\"\"\"\"\"\"\"\"\"###32121###\n###########\"[\"\"\"\"\"\"\"\\\"###12342###\n###########%\"x\"\"\"\"\"\"\"%###12221y##\n###########_%\"[\"\"\"/\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"\"\"↥\"\"%_###########\n###########%{\"\"\"\"\"\"\"{%###########\n###########\"\"\"\"\"\"\"kk\"\"###57875###\n###########\"\"\"kk\"\"\"k\"\"###79997###\n########ᵹ##\"\"\"kk\"kk\"\"\"###89998ᵯ##\n###########\"\"k\"\"\"kk\"\"\"###79997£##\n###########\"\"kk\"\"\"\"\"\"\"###57875###\n###########%{\"\"\"\"\"\"\"{%###########\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n\n\n###########\n###########\n###########\n###►¤¤¤┰###\n###¤¤¤¤¤###\n###¤¤¤¤¤###\n###¤¤¤¤¤###\n###┰¤¤¤◄###\n###########\n###########\n###########\n\nmessage Rose\nmessage By Jared Piers\n\n\n", [0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 1, 1, 4, 3, 3, 4, 1, 4, 3, 1, 4, 3, 1, 1, 1, 1, 4, 1, 1, 4, 3], "background darkbarrier 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,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,\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,\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,\nbackground ground1:1,background ground3:2,1,background ground2:3,1,1,1,2,1,3,2,background housewallintdown:4,4,background housewallintright:5,5,5,background hiddendoor hiddenmesage:6,4,4,4,4,4,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,\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,\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,\n0,0,0,background dark puzzlestartbadnorm:7,background clearspace:8,0,background chainstarttemp wall:9,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background ground3 puddlecornertl:10,background ground1 puddleleft:11,11,background ground1 puddlecornerbl:12,1,2,1,2,2,3,3,\n4,4,background housewallinttop:13,13,background housefloor1:14,background housefloornorm:15,4,4,4,4,4,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background chaingoaltemp wall:16,background balancespace count0 dark goal2 number2 wrongtemp:17,17,background balancespace count0 dark goal1 number1 wrongtemp:18,17,17,17,17,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,7,8,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,8,7,0,0,0,0,0,0,7,8,0,0,0,0,0,0,\n0,0,0,0,7,0,0,0,0,0,0,background ground1 puddletop:19,background puddlecenter:20,20,background ground1 puddlebottom:21,1,3,3,2,2,background ground2 puddlecornertl:22,11,background housewallintdown puddlecornerbl:23,4,13,13,15,background housefloor2:24,4,4,4,4,4,\n0,0,0,0,16,7,8,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,0,16,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,17,17,17,17,17,17,background balancespace count0 dark goal3 number3 wrongtemp:25,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,18,17,background balancespace count0 dark goalo numberowrong wrongtemp:26,18,18,16,0,0,0,0,0,0,7,9,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,7,8,0,0,0,0,0,0,0,0,0,16,7,0,0,0,0,0,\n0,0,18,18,17,17,17,17,0,0,0,0,0,0,17,17,18,17,18,16,0,0,0,0,0,18,18,16,0,0,background dark puzzlestartgood:27,0,0,\n19,20,background ground3 puddleright:28,background ground1 puddlecornerbr:29,3,3,2,background ground2 pathrightbend:30,background pathvert:31,background ground3 pathvert puddletop:32,20,background housewallintdown puddlebottom:33,4,13,13,14,15,4,4,4,4,4,0,0,0,17,25,background balancespace blocker count0 dark goal3 wrongtemp:34,background balancespace blocker count0 dark goal2 wrongtemp:35,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,\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,\n0,0,background balancespace blocker count0 dark goal1 wrongtemp:36,35,34,34,35,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,18,17,17,18,17,17,25,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,25,25,25,17,17,0,0,0,0,0,0,0,18,17,background balancespace count0 dark goodtemp numberq:37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background balancespace count0 dark goale goodtemp numbere:38,17,26,17,26,16,0,0,0,0,0,0,0,17,38,18,9,0,0,0,0,16,17,18,17,25,25,17,16,0,0,\n0,0,9,17,25,17,17,17,0,0,0,0,0,0,17,17,0,0,0,1right background balancespace count1 dark goal1 goodtemp number1:39,0,0,19,20,background ground2 puddlebottom:40,1,1,1,2,background ground1 pathhoriz:41,3,background ground3 puddletop:42,20,\n33,4,13,13,15,15,4,4,4,4,4,0,0,16,18,25,34,36,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,35,36,35,36,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,17,17,18,17,17,17,17,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,9,18,17,37,17,18,0,0,0,\n0,0,0,16,18,17,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,26,18,38,25,0,0,0,0,\n0,0,0,0,26,38,17,0,0,0,0,0,0,17,17,17,background balancespace count0 dark goal0 goodtemp number0:43,17,17,0,0,0,0,0,0,17,17,17,background balancespace count0 dark goal4 number4 wrongtemp:44,17,0,0,0,\n0,0,9,25,25,0,0,0,1left 1right background balancespace count2 dark goal2 goodtemp number2:45,0,0,background ground2 puddlecornertr:46,background ground2 puddleright:47,background ground3 puddlecornerbr:48,1,2,1,2,background ground3 pathhoriz:49,3,42,20,33,4,13,13,background balancemesagefinal housefloornorm puzzletilewrongend:50,15,4,4,4,4,4,\n0,0,0,36,34,34,36,16,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,36,35,34,background balancespace blocker count0 dark goal4 wrongtemp:51,35,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,16,17,17,25,18,17,25,18,16,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,17,25,25,17,17,0,0,0,0,0,0,0,37,25,17,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,26,25,38,25,38,0,0,0,0,0,0,0,16,38,25,26,0,0,0,0,\n0,0,17,18,43,17,25,18,0,0,0,0,0,0,17,25,18,17,17,16,0,0,0,0,0,17,17,0,0,0,1left background balancespace count1 dark goal1 goodtemp number1:52,0,0,\n3,3,1,3,2,2,2,41,2,background ground3 puddlecornertr:53,47,background housewallintdown puddlecornerbr:54,4,background housewallintleft:55,55,55,55,4,4,4,4,4,0,0,0,35,34,34,35,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,\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,\n0,0,36,35,35,35,36,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,17,17,17,17,17,17,17,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,18,17,25,17,18,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,16,18,26,18,26,17,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,16,17,25,17,25,25,17,16,0,0,\n0,0,0,18,17,17,18,18,0,0,0,0,0,0,18,18,16,0,0,0,0,0,background towerbaseleft:56,1,2,3,3,1,2,background ground1 pathhoriz puddlecornertl:57,background ground3 puddleleft:58,12,2,\n4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,9,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,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,16,0,0,16,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,16,0,0,16,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,16,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,18,17,17,17,18,18,0,0,0,0,0,0,16,0,0,0,16,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,background towerwall1left:59,56,1,1,1,1,3,background ground3 pathhoriz puddletop:60,20,background ground3 puddlebottom:61,3,4,4,4,4,4,4,4,4,4,4,4,\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,\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,\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,background basementtile mark puzzletilewronghidden:62,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,\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,\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,\n0,0,0,16,0,0,16,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,\nbackground towerwall1:63,background towerbase:64,3,2,2,3,3,60,20,61,3,4,4,4,4,4,4,4,4,4,4,4,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,\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,\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,\n0,0,background darkbarrier towerwallintlefttop wall:65,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,65,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background darkbarrier highpuddletopleft2 wall:66,background darkbarrier highpuddlebottomleft1 wall:67,0,0,0,\n0,0,65,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,65,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,0,0,0,59,background towerwall2left:68,56,2,3,2,1,background ground3 pathhoriz puddlecornertr:69,28,48,3,\n4,4,4,4,4,4,4,4,4,4,4,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,background highground3:70,background highground1:71,background towerbalconytopleftroof:72,background halftiletopleft towerbalconyleftroof:73,background towertileoutside:74,74,74,background halftilebottomleft towerwall2left:75,59,68,59,background physicalwall:76,background physicalwall towerwallintlefttop:77,background physicalwall towerwallintleftmid:78,background towerwallintleft:79,background towertile:80,80,80,background towerwallbottomleft:81,76,76,76,\n76,77,78,79,80,80,80,81,76,76,76,70,background highground2:82,71,71,70,71,71,70,82,82,76,76,77,78,background towerpillartop1 towerwallintleft:83,background towerpillar1 towertile:84,background towerpillartop2 towertile:85,background towerpillar2 towertile:86,81,76,76,76,\n76,77,78,79,80,80,80,81,76,76,76,background highpuddletopleft2:87,background highpuddlebottomleft2:88,71,82,71,71,background highpuddletopright1:89,background highpuddlebottomright:90,82,82,76,76,77,78,79,80,80,80,81,76,76,76,\n76,77,78,79,80,80,80,81,76,76,76,82,82,70,82,70,70,70,82,71,82,76,76,77,78,79,80,80,80,81,76,76,76,\n76,77,78,79,80,80,80,81,background basementprogressmark physicalwall:91,76,76,63,background towerwall2:92,64,1,1,10,background ground2 puddleleft:93,background ground1 pathhoriz puddlecornerbl:94,1,3,1,5,5,5,5,5,5,5,5,5,5,4,\nbackground basementwalllefttop:95,background basementwallleftmid:96,background basementwallleft:97,background basementtile:98,98,background basementlinetile:99,98,98,background basementwallbottomleft:100,background basementphysicalwall:101,101,95,96,97,98,98,98,98,98,100,101,101,95,96,97,98,98,98,98,98,100,101,101,\n95,96,97,98,98,98,98,98,100,101,101,95,96,97,98,98,99,98,98,100,101,101,95,96,97,98,98,98,98,98,100,101,101,\n95,96,97,98,98,98,98,98,100,101,101,95,96,97,98,98,98,98,98,100,101,101,95,96,97,98,98,98,98,98,100,101,101,\n82,72,73,background rosetile1 towertileoutside:102,background dirttile rosetile1 towertileoutside:103,103,background dirttile rosetile2 towertileoutside:104,102,background halftilebottomleft towerwall1left:105,68,59,77,78,83,background towerpillar1 towerpillartop3 towertile:106,background towerpillar1 towerpillarmid3 towertile:107,background towerpillar3 towerpillartop1 towertile:108,84,80,81,76,76,77,78,79,80,80,80,80,80,81,76,76,\n71,87,88,82,82,70,82,71,71,71,76,77,78,79,background towerpillartop1 towertile:109,84,background towerpillartop2 towertilecrack3:110,86,80,81,76,76,77,78,79,80,80,80,background towertilecrack2:111,80,81,76,76,\n89,90,82,71,82,82,70,82,82,82,76,77,78,79,80,80,111,80,80,81,76,76,77,78,79,80,80,80,111,80,81,76,76,\n82,background highpuddletopleft1:112,88,71,71,70,70,71,70,71,76,77,78,79,80,80,80,80,80,81,76,76,77,78,background puzzlepanel towerwallintleft:113,background mark puzzletilewrongnorm towertile:114,80,111,80,80,81,76,76,\n63,92,64,1,1,background ground2 puddletop:115,20,background ground1 pathhoriz puddlebottom:116,2,3,3,13,13,15,15,24,15,24,15,15,15,4,96,97,background basementpillartop2 basementtile:117,background basementpillar2 basementtile:118,98,99,117,118,98,100,background basementphysicalwallperm:119,\n96,background basementpillartop2 basementwallleft:120,118,98,98,98,background basementpillartop3 basementtile:121,background basementpillarmid3 basementtile:122,background basementpillar3 basementtile:123,100,119,96,97,117,118,98,98,98,background basementpillar1 basementtile:124,98,100,119,96,120,118,117,118,98,background basementpillar5 basementtile:125,117,118,100,119,\n96,97,98,124,98,background basementlinetile basementpillartop3:126,122,123,98,100,119,96,97,98,98,98,98,98,98,98,100,119,96,97,98,98,98,98,98,98,98,100,119,\n96,97,117,118,98,98,98,124,98,100,119,background basementpillartop3 basementwallleftmid:127,background basementpillarmid3 basementwallleft:128,123,98,98,98,121,122,123,100,119,72,73,background roofdown roofpattern roofright towertileoutside:129,background roofdown roofpattern roofright roofup towertileoutside:130,background roofpattern roofright roofup towertileoutside:131,74,74,74,74,75,59,\n78,79,background puzzlepanel towertile:132,background mark puzzle8mesage1 puzzletilewrongnorm towertile:133,80,109,84,80,80,81,76,78,79,80,80,80,80,80,80,80,81,76,82,background highpuddletopright2:134,90,82,82,background towerbalconytopleft:135,background towerbalconyleft:136,136,136,136,76,\n78,79,80,109,84,85,86,80,80,81,76,78,79,80,80,80,80,80,80,80,81,76,70,82,70,71,71,135,136,136,136,136,76,\n78,79,80,132,background mark puzzle4mesage2 puzzletilewrongnorm towertile:137,80,80,80,80,81,76,78,background towerpillartop2 towerwallintleft:138,background towerpillar2 towerpillartop1 towertile:139,84,80,80,80,80,80,81,76,82,89,90,70,71,135,136,136,136,136,76,\n78,79,132,background mark puzzle2mesage1 puzzletilewrongnorm towertile:140,80,background towertilecrack1:141,80,80,80,81,76,78,79,85,86,background basementprogressmark towertile:142,80,80,132,background puzzletilegoodnorm towertile:143,81,76,59,68,59,56,1,46,47,background ground1 pathhoriz puddlecornerbr:144,1,1,2,\n13,13,14,15,background count0 drawgoal2 drawingboardtop:145,background count0 drawgoal3 drawingboardleft:146,background count0 drawgoal2 drawingboardleft:147,background count0 drawgoal0 drawingboardleft:148,background count0 drawgoal0 drawingboarddownleft:149,15,background houseentrance:150,97,98,98,98,98,99,98,98,98,98,100,97,98,98,98,98,98,98,98,98,98,100,\n97,98,98,98,98,98,98,98,98,98,100,97,98,98,98,98,98,98,98,98,98,100,97,98,98,98,98,99,98,98,98,98,100,\n97,98,117,118,98,98,117,118,98,98,100,97,98,98,98,98,98,98,98,98,98,100,97,98,98,98,98,98,98,98,background basementtile mark puzzletilewrongnorm:151,98,100,\n97,98,98,98,98,98,background basedown basementpattern basementtile:152,background basementpattern basementtile baseright baseup:153,98,98,100,background towerbalconytop:154,background rosetile2 towertileoutside:155,background roofdown roofleft roofpattern towertileoutside:156,background roofdown roofleft roofpattern roofright roofup towertileoutside:157,157,background roofdown roofpattern roofup towertileoutside:158,background roofpattern roofright roofup towerpillartop2 towertileoutside:159,background towerpillar2 towertilehalflight:160,74,155,63,background towerwallinttop:161,109,84,109,84,109,106,107,background towerpillar3 towertile:162,80,background towerwallintbottom:163,\n161,80,background towerpillartop2special towertile:164,background towerpillar2special towertile:165,80,background towerpillartop3 towertile:166,background towerpillarmid3 towertile:167,162,80,80,163,70,82,82,70,82,154,74,74,74,74,background towerwallinttoppermanent:168,168,80,background towertilecrack3:169,80,80,80,80,80,141,80,163,\n161,80,80,80,80,80,80,80,80,80,163,82,71,70,82,70,154,74,74,74,74,168,168,80,85,86,80,80,80,80,80,80,163,\nbackground towerpillartop2 towerwallinttop:170,86,132,background mark puzzle3mesage2 puzzletilewrongnorm towerpillartop1 towertile:171,84,80,80,80,80,80,163,70,70,70,71,71,154,74,74,74,74,168,168,80,109,84,80,80,80,80,80,80,163,\n161,80,80,80,80,80,80,80,background floor1mesage manright towertilecrack2:172,80,163,63,92,63,64,1,1,3,41,3,2,1,background rose1:173,background rose6:174,15,14,145,background count0 drawgoal4 drawingboardcenter:175,175,background count0 drawgoal2 drawingboardcenter:176,background count0 drawgoal2 drawingboarddown:177,15,4,\n98,124,98,98,98,99,98,98,98,124,background basementblocktile:178,178,98,98,98,125,117,118,98,98,98,178,178,124,98,98,98,98,98,98,98,125,178,\n178,98,125,98,98,98,98,117,118,98,178,178,117,118,98,98,99,98,117,118,98,178,178,98,98,124,98,121,122,123,98,98,178,\n178,background basementpillartop6 basementtile:179,background basementpillarmid6 basementtile:180,background basementpillar6 basementtile:181,98,121,122,123,98,98,178,background basementblocktile basementpillartop4:182,background basementpillar4 basementtile:183,98,98,98,98,98,98,98,124,178,178,98,98,98,background basedown basementpattern basementtile baseright:184,153,98,background baseleft basementpattern basementtile:185,98,98,178,\n154,background rosetile3 towertileoutside:186,74,156,background roofleft roofpattern roofup towertileoutside:187,74,background roofleft roofpattern roofright towertileoutside:188,74,74,155,63,161,80,80,109,84,80,80,background towerpillartop1 towerstairsdown1:189,background towerpillar1 towerpillartop1 towertile:190,84,163,161,80,166,167,background towerpillar3 towerpillartop3 towertile:191,167,162,background towerstairsup towertile:192,80,80,163,\n71,87,88,82,71,154,74,74,74,74,74,74,background towertilehalflight:193,80,80,80,80,80,background towerstairsdown1:194,80,80,163,background puzzlepanel towerwallinttop:195,background mark puzzle5mesage2 puzzletilewrongnorm towertile:196,80,109,84,80,80,192,111,80,163,\n71,71,112,background highpuddlebottomleft1:197,82,154,74,74,74,74,74,74,193,80,80,80,80,80,194,80,80,163,161,80,80,80,80,80,80,192,80,80,163,\n82,71,70,71,70,154,74,74,74,74,74,74,193,111,80,80,80,80,194,80,80,163,161,80,141,80,80,80,80,192,80,80,background towerentrance:198,\n63,92,198,background towerentrancefront:199,1,3,1,41,1,2,3,background rose2:200,background rose7:201,15,15,background count0 drawgoal0 drawingboardtop:202,176,176,background count0 drawgoal0 drawingboardcenter:203,177,24,4,98,background basementstairsdownblocked bpuzzle2mesage:204,98,98,98,99,98,98,98,98,178,\n178,background basementtile towerstairsup:205,98,98,98,98,98,98,98,98,178,178,background bpuzzle4mesage towerstairsdown2:206,98,98,98,98,98,98,98,98,178,178,205,98,98,98,98,98,98,98,98,178,\n178,background bpuzzle6mesage towerstairsdown2:207,98,98,98,99,98,98,98,98,178,178,205,121,122,123,98,124,98,98,98,178,178,background bpuzzle8mesage towerstairsdown2:208,179,180,background basementpillar6 basementpillartop6 basementtile:209,180,181,98,98,98,178,\n178,205,98,98,98,98,98,98,98,98,178,178,98,98,98,background basedown baseleft basementpattern basementtile:210,background baseleft basementpattern basementtile baseup:211,98,98,98,98,178,154,102,74,74,74,74,188,74,74,186,63,\nbackground towerpillartop3 towerwallinttop:212,167,108,190,190,190,background towerpillar1 towerpillartop2 towertile:213,139,84,80,163,161,80,141,80,80,background puzzle1mesage2 puzzletilehidden towertile:214,80,80,169,80,163,70,134,90,71,71,154,background puzzlepanel towertileoutside:215,background mark puzzle6mesage2 puzzletilewrongnorm towertileoutside:216,74,74,74,\n74,193,132,background mark puzzle6mesage1 puzzletilewrongnorm towertile:217,80,80,background towerpillartop1 towertilecrack1:218,84,80,80,163,161,85,86,80,85,86,80,85,86,80,163,71,82,89,90,82,154,215,background imbalancemesage1 mark puzzletilewrongnorm towertileoutside:219,74,74,74,\n74,background towerpillartop2 towertilehalflight:220,86,80,80,80,85,86,111,80,163,161,80,80,80,80,141,80,80,80,80,163,71,82,71,82,70,154,215,background mark puzzle2mesage2 puzzletilewrongnorm towertileoutside:221,74,74,74,\n74,193,80,80,80,132,background mark puzzletilewrongnorm towerpillartop2 towertile:222,86,80,80,163,161,80,80,80,80,80,85,86,80,80,198,63,92,198,199,background ground1 pathend:223,background ground3 pathvert:224,background ground1 pathvert:225,background ground2 pathtri:226,2,3,3,\nbackground rose3:227,background rose8:228,24,15,202,203,203,203,177,15,4,99,99,background basementlinetile mark puzzletilewrongnorm:229,99,99,229,99,99,99,99,background basementlineblocktile:230,230,99,99,99,99,229,99,99,99,99,230,\n178,98,98,98,98,151,98,98,98,98,178,178,98,98,98,98,151,98,98,98,98,178,178,121,122,123,98,229,98,124,98,98,178,\n178,98,98,98,98,151,98,98,98,98,178,178,98,98,98,98,background basementtile puzzle1mesage2 puzzletilehidden:231,98,98,98,98,178,178,98,98,98,98,98,98,98,98,98,178,\n178,98,98,98,98,98,98,98,98,98,178,154,155,74,129,159,160,188,74,194,102,63,161,80,80,80,218,190,84,80,192,80,163,\n161,80,166,167,191,167,162,194,80,80,163,70,82,82,71,71,154,74,74,74,74,74,74,193,80,80,80,80,80,192,80,80,163,\nbackground towerpillartop1 towerwallinttop:232,84,169,132,background mark puzzle5mesage1 puzzletilewrongnorm towertile:233,80,80,194,80,80,163,71,82,71,82,71,154,74,74,74,74,74,74,193,80,80,80,80,80,192,80,80,163,\n161,80,80,80,80,80,80,194,80,80,163,70,71,71,82,70,154,74,74,74,74,74,74,193,80,80,141,80,80,192,80,80,163,\n161,80,80,132,114,80,80,80,80,80,198,63,92,198,199,1,3,1,41,3,3,1,background rose4:234,background rose9:235,15,24,202,176,176,203,177,15,4,\n98,98,98,98,98,99,98,98,98,98,178,178,background bpuzzle3mesage towerstairsdown2:236,98,98,98,98,98,98,98,98,178,178,205,98,98,98,98,98,98,98,98,178,\n178,background bpuzzle5mesage towerstairsdown2:237,98,98,98,98,98,98,98,98,178,178,205,98,98,98,99,98,98,98,98,178,178,background bpuzzle7mesage towerstairsdown2:238,98,98,background basementpillar5 basementpillartop3 basementtile:239,122,123,98,98,98,178,\n178,205,179,180,209,180,181,98,98,98,178,178,background bpuzzle9mesage towerstairsdown2:240,98,98,98,98,98,98,98,98,178,178,205,98,98,98,184,153,98,98,98,178,\n154,155,129,157,157,158,187,74,74,102,63,161,80,80,80,132,background mark puzzle8mesage2 puzzletilewrongnorm towerpillartop1 towertile:241,84,80,109,84,163,161,166,167,162,80,166,167,162,80,80,163,\n71,87,88,70,70,154,74,74,74,74,168,168,80,80,80,80,80,80,80,80,80,163,161,80,80,80,80,80,80,80,80,80,163,\n71,71,82,82,82,154,74,74,74,74,168,168,80,85,86,80,80,80,80,80,80,163,161,80,background towerpillartop2 towertilecrack2:242,86,132,background mark puzzle3mesage1 puzzletilewrongnorm towerpillartop1 towertile:243,84,80,80,80,163,\n112,88,70,71,82,154,74,74,74,74,168,168,80,80,80,80,80,80,80,80,80,163,161,80,80,80,80,80,80,80,80,80,163,\n63,92,63,64,1,1,3,49,3,2,1,background rose5:244,background rose10:245,15,15,145,175,175,176,177,24,4,98,125,98,98,98,99,98,98,98,125,178,\n178,98,98,background basementpillartop4 basementtile:246,183,98,124,98,98,98,178,background basementblocktile basementpillartop2:247,118,98,98,98,98,98,98,246,183,178,178,117,118,98,98,98,98,98,125,98,178,\nbackground basementblocktile basementpillartop3:248,122,123,98,98,99,98,98,124,98,178,178,121,122,123,98,98,98,125,98,98,178,178,179,180,181,98,179,180,181,98,98,178,\n178,125,98,98,98,98,98,98,117,118,178,178,98,98,background basementpattern basementtile baseright:249,98,210,211,98,98,98,178,background towerbalconytoprightroof:250,background halftiletopright towerbalconyrightroof:251,156,background roofdown roofleft roofpattern roofup towertileoutside:252,187,74,74,74,74,background halftilebottomright towerwall2right:253,background towerwall1right:254,\nbackground physicalwall towerwallintrightmid:255,background towerpillartop1 towerwallintright:256,84,80,80,109,84,80,80,background towerwallbottomright:257,76,255,background towerwallintright:258,80,80,80,80,80,80,80,257,76,70,89,90,70,70,background towerbalconytopright:259,background towerbalconyright:260,260,260,260,76,\n255,258,80,109,84,85,86,80,80,257,76,255,258,80,80,80,80,80,80,80,257,76,71,71,82,82,70,259,260,260,260,260,76,\n255,258,80,80,132,background mark puzzle4mesage1 puzzletilewrongnorm towertile:261,141,80,80,257,76,255,258,80,85,139,84,169,80,80,257,76,89,90,71,70,70,259,260,260,260,260,76,\n255,258,80,80,80,80,80,111,80,257,76,255,258,85,86,80,80,80,80,80,257,76,254,background towerwall2right:262,254,background towerbaseright:263,2,3,2,41,2,3,1,\n13,13,15,15,145,background count0 drawgoal3 drawingboardright:264,background count0 drawgoal2 drawingboardright:265,background count0 drawgoal0 drawingboardright:266,background count0 drawgoal0 drawingboarddownright:267,15,4,background basementwallright:268,98,98,98,98,99,98,98,98,98,background basementwallbottomright:269,268,98,98,98,98,98,98,98,98,98,269,\n268,98,98,98,98,98,98,98,98,98,269,268,98,98,98,98,98,98,98,98,98,269,268,98,98,98,98,99,98,98,98,98,269,\n268,98,246,183,98,98,246,183,98,98,269,268,98,98,98,98,98,98,98,98,98,269,268,98,62,98,98,98,98,98,98,98,269,\n268,98,98,210,background basementpattern basementtile baseup:270,98,98,98,98,98,269,71,250,251,102,background dirttile rosetile3 towertileoutside:271,104,271,186,background halftilebottomright towerwall1right:272,262,254,background physicalwall towerwallintrighttop:273,255,256,106,167,162,80,80,257,76,76,\n273,255,258,80,111,80,80,80,257,76,76,71,82,82,71,70,71,70,82,71,82,76,273,255,258,109,84,85,86,80,257,76,76,\n273,255,258,80,80,80,80,80,257,76,76,70,82,82,70,71,71,70,71,82,71,76,273,255,258,80,80,80,80,80,257,76,76,\n273,255,258,80,80,80,80,80,257,76,76,82,71,70,70,70,87,197,82,70,70,76,273,255,258,80,80,80,80,80,257,76,76,\n273,255,258,80,169,80,80,80,257,76,76,63,92,64,3,1,3,2,41,1,2,2,13,13,15,15,14,15,15,15,15,24,4,\nbackground basementwallrightmid:274,268,246,183,98,99,246,183,98,269,119,background basementpillartop3 basementwallrightmid:275,background basementpillarmid3 basementwallright:276,123,98,98,98,98,246,183,269,119,274,268,246,183,98,98,98,125,98,269,119,\n274,background basementpillartop2 basementwallright:277,118,98,125,117,118,117,118,269,119,274,268,117,118,98,99,117,118,98,269,119,274,268,98,98,98,98,98,98,98,269,119,\n274,268,98,98,98,98,98,98,98,269,119,274,268,98,125,98,98,246,183,98,269,119,275,276,123,98,98,98,121,122,123,269,119,\n71,82,250,251,74,74,74,253,254,262,254,76,273,255,258,80,80,80,257,76,76,76,76,273,255,258,80,80,80,257,76,76,76,\n82,82,82,82,82,82,71,82,70,82,76,76,273,255,256,background puzzlepanel towerpillar1 towertile:278,background imbalancemesage2 mark puzzletilewrongnorm towerpillartop2 towertile:279,86,257,76,76,76,76,273,255,258,80,80,80,257,76,76,76,\n82,82,71,71,71,70,70,70,71,70,76,76,273,255,258,80,80,80,257,76,76,76,76,273,255,258,80,80,80,257,76,76,76,\n70,70,71,82,70,134,90,82,70,71,76,76,273,255,258,80,80,80,257,76,76,76,76,273,255,258,80,80,80,257,76,76,76,\n63,92,64,3,1,2,3,background ground3 pathhoriz puddlecornertl:280,93,background ground2 puddlecornerbl:281,2,55,55,background secret:282,55,55,55,55,55,55,background housewallintleft housewallsecret:283,4,background basementwallrighttop:284,274,268,98,98,background basemententrance2 bpuzzle1mesage:285,98,98,269,101,101,\n284,274,268,98,98,98,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,\n284,274,268,98,98,99,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,\n284,274,268,98,98,98,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background darkbarrier towerwallintrighttop wall:286,0,0,0,0,0,0,0,0,0,0,286,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,286,0,0,0,0,0,0,0,0,0,0,286,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,286,0,0,0,0,0,0,0,0,0,0,286,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,286,0,0,0,0,0,0,0,0,0,0,286,0,0,0,0,0,0,0,0,254,262,263,2,2,2,3,background ground2 pathhoriz puddletop:287,20,40,1,\n101,101,101,101,101,285,101,101,101,101,101,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,\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,\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,9,0,0,0,16,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,16,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,63,64,3,3,3,1,3,287,20,40,1,101,101,101,101,98,99,98,101,101,101,101,\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,\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,16,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,18,17,17,18,18,18,17,17,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,17,17,17,17,17,17,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,16,0,0,9,0,0,0,0,0,\n0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,16,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,16,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,\n254,263,2,3,1,3,3,background ground1 pathhoriz puddletop:288,20,61,1,101,101,101,101,98,99,98,101,101,101,101,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,16,0,0,16,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,\n0,0,0,0,0,0,9,0,0,0,0,0,0,17,25,17,35,36,35,9,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,\n0,16,17,25,25,17,25,17,17,37,16,0,0,0,background blocker count0 dark goal0 goodtemp nodrawspace number0:289,background blocker count0 dark goal2 nodrawspace number2 wrongtemp:290,290,background blocker count0 dark goal1 nodrawspace number1 wrongtemp:291,289,0,0,0,0,0,17,18,17,17,17,17,0,0,0,\n0,0,0,background count0 dark goal0 goodtemp imbalancespacerandom number0:292,background count0 dark goal2 imbalancespacerandom number2 wrongtemp:293,293,292,0,0,0,0,0,17,17,17,17,18,0,0,0,0,0,0,0,0,16,background count0 dark goal2 imbalancespace number2 wrongtemp:294,background count0 dark goal3 imbalancespace number3 wrongtemp:295,295,294,0,0,0,\n0,0,0,38,17,17,18,17,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,18,17,17,18,0,0,0,0,0,0,0,17,17,17,43,43,0,0,0,263,2,3,2,3,3,3,background ground1 pathhoriz puddlecornertr:296,47,29,3,\n101,101,101,101,98,99,98,101,101,101,101,0,16,17,25,18,0,0,0,0,0,0,0,0,0,18,25,17,35,35,0,0,0,\n0,0,16,17,25,17,25,35,16,0,0,0,0,16,36,36,34,36,0,0,0,0,0,0,16,17,17,35,35,0,0,0,0,\n0,0,17,44,17,35,background balancespace blocker count0 dark goal0 goodtemp:297,35,0,0,0,0,0,0,289,291,291,289,289,0,0,0,0,0,0,0,0,291,background blocker count0 dark goal3 nodrawspace number3 wrongtemp:298,291,291,0,0,\n0,0,0,297,35,34,35,297,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,43,17,44,17,37,43,37,0,\n0,0,0,290,290,298,289,290,0,0,0,0,0,37,43,17,18,17,17,0,0,0,0,0,0,293,293,293,293,0,0,0,0,\n0,18,18,25,25,17,0,0,0,0,0,0,0,0,0,294,294,294,294,0,0,0,0,0,16,18,38,18,38,26,0,0,0,\n0,0,38,17,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,25,25,17,9,0,0,0,\n0,0,0,17,43,17,17,17,9,0,0,3,2,1,1,3,1,2,41,2,2,3,101,101,101,101,98,99,98,98,98,98,98,\n0,0,18,17,17,0,0,0,0,0,0,0,0,0,17,17,25,34,34,0,0,0,0,0,0,34,25,43,35,34,0,0,0,\n0,0,0,34,25,34,18,0,0,0,0,0,0,0,25,17,35,36,0,0,0,0,0,0,17,25,17,35,36,35,0,0,0,\n0,0,0,289,background blocker count0 dark goal4 nodrawspace number4 wrongtemp:299,291,290,289,0,0,0,0,0,0,0,0,290,290,290,290,0,0,0,0,0,35,51,51,51,35,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,18,17,25,18,43,25,17,17,0,0,0,0,291,289,291,290,291,0,0,0,\n0,16,17,18,17,17,43,37,0,0,0,0,0,0,293,293,293,293,9,0,0,0,0,37,43,37,43,37,0,0,0,0,0,\n0,0,0,background imbalance wall:300,294,294,294,294,9,0,0,0,0,0,25,17,26,25,18,0,0,0,0,0,17,44,25,17,9,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,25,25,18,0,0,0,0,0,0,0,17,17,25,18,18,0,0,0,\n2,background ground3 houseroofside:301,background housewallside:302,302,302,3,2,41,2,1,3,101,101,101,101,98,99,98,98,98,98,background basemententrance1:303,0,0,36,35,35,9,0,0,0,0,0,\n0,0,0,25,25,25,35,35,0,0,0,0,0,0,36,34,35,297,35,0,0,0,0,0,0,36,34,34,34,16,0,0,0,\n0,0,0,25,17,35,36,0,0,0,0,0,16,35,36,35,35,34,35,0,0,0,0,0,0,290,290,298,299,290,0,0,0,\n0,0,0,0,0,298,291,298,290,0,0,0,0,0,34,51,51,51,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,18,17,18,17,17,17,17,25,0,0,0,background nodraw wall:304,291,298,299,291,289,0,0,0,0,0,17,17,17,44,17,17,0,0,0,\n0,0,0,292,293,293,292,0,0,0,0,0,17,17,17,17,18,0,0,0,0,0,0,0,0,0,background count0 dark goal1 imbalancespace number1 wrongtemp:305,305,305,305,0,0,0,\n0,0,0,17,25,38,26,18,0,0,0,0,16,18,25,25,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,17,18,17,17,0,0,0,0,0,0,0,43,43,17,43,43,0,0,0,301,background houseroof:306,background housewall:307,307,150,background ground3 pathend:308,background ground2 pathvert:309,background ground1 pathupbend:310,background ground1 puddlecornertl:311,58,12,\n101,101,101,101,98,99,98,98,98,98,98,0,0,35,34,36,0,0,0,0,0,0,0,0,16,17,17,17,34,36,16,0,0,\n0,0,0,35,51,25,25,34,0,0,0,0,0,0,36,25,36,18,0,0,0,0,0,0,0,17,17,35,35,16,0,0,0,\n0,0,35,297,35,35,51,35,0,0,0,0,0,304,290,298,289,291,291,0,0,0,0,0,0,0,304,298,290,299,290,0,0,\n0,0,0,35,51,51,51,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,17,17,17,17,37,17,25,17,16,\n0,0,0,289,290,289,291,289,0,0,0,0,0,18,17,17,17,43,17,16,0,0,0,0,0,background imbalancerandom wall:312,0,7,0,0,0,0,0,\n16,17,17,17,25,18,0,0,0,0,0,0,0,0,0,16,0,0,7,0,0,0,0,0,0,18,17,18,26,17,16,0,0,\n0,0,18,17,38,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,7,0,0,0,0,\n0,0,0,43,18,25,18,43,0,0,0,306,306,307,background housewallcrack:313,307,2,1,1,42,20,40,101,101,101,101,101,101,101,101,101,101,101,\n0,0,7,8,16,0,0,0,0,0,0,0,0,0,0,9,7,8,0,0,0,0,0,0,9,35,17,18,25,17,16,0,0,\n0,0,0,16,0,7,8,0,0,0,0,0,0,0,16,0,7,8,0,0,0,0,0,0,35,36,35,35,34,35,16,0,0,\n0,0,0,289,291,298,289,289,0,0,0,0,0,0,0,0,290,291,290,291,0,0,0,0,0,297,35,34,35,297,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,17,18,18,17,25,17,17,18,0,0,0,0,0,0,7,0,0,0,0,0,\n0,0,17,17,17,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,0,16,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,7,8,0,0,0,0,0,0,16,7,8,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,7,8,0,0,0,0,0,0,\n306,306,307,background housewindow:314,307,2,2,3,42,20,21,101,101,101,101,101,101,101,101,101,101,101,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,7,8,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,7,8,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,\n0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,background balancemesagefinal2 dark end puzzlestartbadend:315,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,16,0,7,8,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,9,8,7,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,306,306,307,307,307,2,2,1,background ground1 puddlecornertr:316,47,background ground2 puddlecornerbr:317,\n101,101,101,101,101,101,101,101,101,101,101,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,\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,\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,\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,\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,\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,\n0,0,0,0,0,0,0,0,0,0,0,306,306,307,307,307,1,1,2,3,2,1,101,101,101,101,101,101,101,101,101,101,101,\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,\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,\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,\n", 0, "1627779185736.9275"] ], [ `gallery: season finale`, - ["title Season Finale\nrun_rules_on_level_start\nbackground_color #222\ntext_color #DDD\nagain_interval 0\n\n========\nOBJECTS\n========\n\nBackground 1\nblack\n\nsunlit \n#78D448\n\nmunlit\n#70F044\n\nsnlit \n#58BBE0\n\nwnlit\n#C0FFEE\n\nait\n#FEB047\n\nwit \n#EFC040\n\nmlit \n#FBFB68\n\nalit\n#FFFB66\n\nablock\n#C84202\n\nsblock w\n#043804\n\nmblock\n#14D0D0\n\nwblock\n#6094B2\n\nwdoor\n#6094B2 #5074A2\n11100\n11110\n11111\n11110\n11100\n\nadoor \n#FD712D #C84202\n00011\n00001\n00000\n00001\n00011\n\nsdoor e\n#109010 #043804\n00011\n00001\n00000\n00001\n00011\n\nmdoor\n#80F4F4 #14D0D0\n00011\n00001\n00000\n00001\n00011\n\nspring\n#109010 #041904\n.000.\n00000\n01010\n00000\n.000.\n\nbunnyd ,\n#745004 black pink white\n..3..\n.000.\n.000.\n.101.\n..2..\n\nbunnyl <\n#745004 black pink white \n.....\n.100.\n20003\n.100.\n.....\n\nbunnyu .\n#745004 black pink white\n..2..\n.101.\n.000.\n.000.\n..3..\n\nbunnyr >\n#745004 black pink white\n.....\n.001.\n30002\n.001.\n.....\n\n\n\ncrat 7\n#745004 #C47004\n.000.\n01110\n01110\n01110\n.000.\n\nglass q\n#745004 #C47004 white\n.000.\n02110\n02120\n01120\n.000.\n\nflower\n#043804 #109010\n.....\n..1..\n.101.\n..1..\n.....\n\nwater o\n#1040E0 \n\nice p\nlightblue\n\n\n\ndrowned\n#1040E0 #745004 \n00000\n00100\n01110\n00100\n00000\n\nnodoor\ntransparent\n\nstart\ntransparent\n\nvert\ntransparent\n\nmoved\ntransparent\n\nnomoved\ntransparent\n\n\n\neaten\ntransparent\n\nwatermark\ntransparent\n\n\n\n\n\nsummer\n#f41010 #600404 #FFB008\n.000.\n00000\n01010\n00000\n.000.\n\n\n\nlightu \n#FFC008\n.....\n..0..\n.0.0.\n.....\n.....\n\n\n\nlightr \n#FFC008\n.....\n..0..\n...0.\n..0..\n.....\n\nlightl \n#FFC008\n.....\n..0..\n.0...\n..0..\n.....\n\nlightd \n#FFC008\n.....\n.....\n.0.0.\n..0..\n.....\n\n\nu1\n#FF5800\n.....\n..0..\n.0.0.\n.....\n.....\n\nr1\n#FF5800\n.....\n..0..\n...0.\n..0..\n.....\n\nl1\n#FF5800\n.....\n..0..\n.0...\n..0..\n.....\n\nd1\n#FF5800\n.....\n.....\n.0.0.\n..0..\n.....\n\nu2\n#FF7800\n.....\n..0..\n.0.0.\n.....\n.....\n\nr2\n#FF7800\n.....\n..0..\n...0.\n..0..\n.....\n\nl2\n#FF7800\n.....\n..0..\n.0...\n..0..\n.....\n\nd2\n#FF7800\n.....\n.....\n.0.0.\n..0..\n.....\n\nu3\n#FF9800\n.....\n..0..\n.0.0.\n.....\n.....\n\nr3\n#FF9800\n.....\n..0..\n...0.\n..0..\n.....\n\nl3\n#FF9800\n.....\n..0..\n.0...\n..0..\n.....\n\nd3\n#FF9800\n.....\n.....\n.0.0.\n..0..\n.....\n\nu4\n#FFA800\n.....\n..0..\n.0.0.\n.....\n.....\n\nr4\n#FFA800\n.....\n..0..\n...0.\n..0..\n.....\n\nl4\n#FFA800\n.....\n..0..\n.0...\n..0..\n.....\n\nd4\n#FFA800\n.....\n.....\n.0.0.\n..0..\n.....\n\nx0\ntransparent\n\nx1\ntransparent\n\nx2\ntransparent\n\nx3\ntransparent\n\nx4\ntransparent\n\nx5\ntransparent\n\nplusone\ntransparent\n\n\nver\n#1040E0 #A07004\n01110\n01110\n01110\n01110\n01110\n\nhor\n#1040E0 #A07004\n00000\n11111\n11111\n11111\n00000\n\nwver\nlightblue #A07004\n01110\n01110\n01110\n01110\n01110\n\nwhor\nlightblue #A07004\n00000\n11111\n11111\n11111\n00000\n\nbloomed\n#209A00\n.000.\n00000\n00000\n00000\n.000.\n\n\n\n\nbad\n#985000 white #ff5064\n..2..\n.000.\n.000.\n.000.\n..1..\n\n\n\n\nlose\n#985000 white #ff5064 black\n..2..\n.303.\n.000.\n.000.\n..1..\n\nnemir z\n#985000 #14D0D0\n0....\n00...\n0.0..\n0..0.\n00000\n\nsemir x\n#985000 #14D0D0\n00000\n0..0.\n0.0..\n00...\n0....\n\nnwmir c\n#985000 #14D0D0\n....0\n...00\n..0.0\n.0..0\n00000\nswmir v\n#985000 #14D0D0\n00000\n.0..0\n..0.0\n...00\n....0\n\ndiag b\n#985000 #14D0D0\n00000\n00..0\n0.0.0\n0..00\n00000\n\ndiago n\n#985000 #14D0D0\n00000\n0..00\n0.0.0\n00..0\n00000\n\n\nwins\ntransparent\n\nnew\ntransparent\n\nmore\ntransparent\n\n\n\nautumn \n#F45305 #6A2402\n.000.\n00000\n01010\n00000\n.000.\n\n\nbird m\ndarkblue blue lightblue black\n..1..\n2.1.2\n11111\n.010.\n..1..\n\n\n\nfella\n#7E2D00\n.000.\n00000\n00000\n00000\n.000.\n\nfellb\n#9A0501\n.000.\n00000\n00000\n00000\n.000.\n\nfellc\n#CD0601\n.000.\n00000\n00000\n00000\n.000.\n\nfelld\n#CCC926\n.000.\n00000\n00000\n00000\n.000.\n\nfelle\n#F7C709\n.000.\n00000\n00000\n00000\n.000.\n\nfellf\n#F45305\n.000.\n00000\n00000\n00000\n.000.\n\nfellg\n#DA4528\n.000.\n00000\n00000\n00000\n.000.\n\nfellh\n#FD712D\n.000.\n00000\n00000\n00000\n.000.\n\nconnected\ntransparent\n\nfirst\ntransparent\n\nnotfirst\ntransparent\n\n\nwinter\n#1010B0 #101030\n.000.\n00000\n01010\n00000\n.000.\n\n\ndead\nbrown\n..0..\n..0..\n00000\n..0..\n..0..\n\ntemp\ntransparent\n\ntemp2\ntransparent\n\nlef\ntransparent\n\nrigh\ntransparent\n\ndow\ntransparent\n\nuq\ntransparent\n\nbunn\ntransparent\n\niffy \ntransparent\n\nwinner1\ntransparent\n\nwinner2\ntransparent\n\nwinner3\ntransparent\n=======\nLEGEND\n=======\n\nbunny = bunnyl or bunnyr or bunnyd or bunnyu\naqua = water or ice\n\nfell = fella or fellb or fellc or felld or felle or fellh or fellg or fellf\nflow = flower or bloomed or dead\n\ni = spring and start\n\nplayer = spring or summer or autumn or winter\n\nmirror = swmir or semir or nwmir or nemir\n\ndiags = diag or diago\nlight = lightu or lightd or lightr or lightl \nblock = sblock or ablock or wblock or mblock\nlit = alit or mlit\nunlit = munlit or sunlit\nnlit = snlit or wnlit\nit = wit or ait\nfloor = unlit or nlit or lit or it\nl= snlit\na = flower and snlit\nwinner = winner1 or winner2 or winner3\ndoor = sdoor or adoor or mdoor or wdoor\ncra = crat or block or mirror or diags or fell or dead or bunny\ncratd = crat or block or fell or dead\ncred = crat or diags or mirror or fell\ncre = spring or block or crat or glass or door or bunny or ice or mirror or diags\ncrae = block or glass or bad or flow\ncrate = crat or block or glass or aqua\ncrated = block or glass or mirror or bad or diags or summer or flow\npush = mirror or diags\nt = bad and mlit\nfir = u1 or d1 or l1 or r1\nsec = u2 or d2 or l2 or r2\nthi = u3 or d3 or l3 or r3\nfou = u4 or d4 or l4 or r4\nxs = x0 or x1 or x2 or x3 or x4 or x5\n2 = summer and start\n\nk= water \n\n\n\n\n\n=======\nSOUNDS\n=======\nSFX1 80425104\nSFX2 16467501\nSFX3 80127507\nSFX4 71317504\nSFX5 25216505\nSFX6 16917301\nSFX7 92204307\nSFX8 54283103\nSFX9 32265107\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nvert\nnodoor,wins, lose\nwatermark, connected\nfloor\nice\nmoved, nomoved\nflow, eaten\nwater,\nhor, ver, whor, wver\nlightu, first, notfirst\nlightr\nlightd\nlightl\nmore\nbad\nstart, new\ntemp, temp2\nplayer, glass, crat, block, door, bunny, mirror, diags, fell, bird,\nwinner\nlef, righ, dow, uq\nbunn\niffy\nstart, drowned\nplusone\nx0\nx1\nx2\nx3\nx4\nx5\nu1, u2, u3, u4\nd1, d2, d3, d4\nl1, l2, l3, l4\nr1, r2, r3, r4\n\n\n\n======\nRULES\n======\n\n\n\n[spring][start watermark] -> restart\n[spring][drowned][start] -> [spring][drowned][start watermark]\n\n[action spring no unlit no flower no aqua] -> [spring flower] SFX1\n[action spring flower] -> [spring eaten]\n\n[spring][floor] -> [spring][]\n[> spring| water] -> [spring|water]\n[> spring | crat| no cre no aqua flower] -> [|spring|crat] SFX3\n[> spring | crat| no cre no aqua] -> [|spring|crat] SFX7\n[> spring | mirror| no cre no aqua flower] -> [|spring|mirror] SFX3\n[> spring | mirror| no cre no aqua] -> [|spring|mirror] SFX7\n[spring][vert] ->[spring][]\n[spring][eaten]->[spring][]\n[spring][nomoved] -> [spring][]\n[spring][moved] -> [spring][]\n\nlate [spring ice] -> [spring ice watermark]\nlate [spring][no spring ice watermark] -> [spring][water watermark] SFX2\n\nlate [spring][bunny watermark] -> [spring][drowned] SFX6\n\nlate up [spring][bunnyu no moved |no cre flower] ->[spring] [|bunnyu moved eaten] SFX3 \nlate left [spring][bunnyl no moved |no cre flower] -> [spring][|bunnyl moved eaten] SFX3 \nlate right [spring][bunnyr no moved |no cre flower] -> [spring][|bunnyr moved eaten] SFX3 \nlate down [spring][bunnyd no moved |no cre flower] -> [spring][|bunnyd moved eaten] SFX3\n\n\nlate up [spring][bunnyu no moved |no cre no flower] ->[spring] [|bunnyu moved] \nlate left [spring][bunnyl no moved |no cre no flower] -> [spring][|bunnyl moved] \nlate right [spring][bunnyr no moved |no cre no flower] -> [spring][|bunnyr moved] \nlate down [spring][bunnyd no moved |no cre no flower] -> [spring][|bunnyd moved] \n\nlate right [|nodoor spring][eaten] -> [spring|sdoor][eaten]\nlate [spring][nodoor][eaten] -> [spring][sdoor][eaten]\n\nlate [spring] -> [spring nomoved]\nlate [nomoved spring][moved] -> [spring][moved]\nlate [spring][moved no spring]->[spring moved][] again\n\n\nlate [spring][no block no aqua] -> [spring][snlit]\nlate [spring][nodoor floor] -> [spring][nodoor sunlit]\nlate [spring][start floor] -> [spring][start sunlit]\n\nlate [spring][flow nlit] -> [spring][flow sunlit]\nlate [spring][flow |nlit] -> [spring][flow|sunlit]\nlate [spring][flow |ice] -> [spring][flow |water watermark]\nlate vertical [spring][flower|] -> [spring][flower|vert]\nlate horizontal [spring][vert|nlit] -> [spring][vert|sunlit]\nlate horizontal [spring][vert|ice] -> [spring][vert|water watermark]\n\nlate up [spring][nomoved][bunnyu | cre] -> [spring][nomoved][bunnyr|cre]\nlate right [spring][nomoved][bunnyr|cre] -> [spring][nomoved][bunnyd| cre]\nlate down [spring][nomoved][bunnyd| cre] -> [spring][nomoved][bunnyl| cre]\nlate left [spring][nomoved][bunnyl| cre] -> [spring][nomoved][bunnyu| cre]\nlate up [spring][nomoved][bunnyu | cre] -> [spring][nomoved][bunnyr|cre]\nlate right [spring][nomoved][bunnyr|cre] -> [spring][nomoved][bunnyd| cre]\nlate down [spring][nomoved][bunnyd| cre] -> [spring][nomoved][bunnyl| cre]\nlate left [spring][nomoved][bunnyl| cre] -> [spring][nomoved][bunnyu| cre]\nlate up [spring][nomoved][bunnyu | cre] -> [spring][nomoved][bunnyr|cre]\nlate right [spring][nomoved][bunnyr|cre] -> [spring][nomoved][bunnyd| cre]\nlate down [spring][nomoved][bunnyd| cre] -> [spring][nomoved][bunnyl| cre]\nlate left [spring][nomoved][bunnyl| cre] -> [spring][nomoved][bunnyu| cre]\nlate up [spring][nomoved][bunnyu | cre] -> [spring][nomoved][bunnyr|cre]\nlate right [spring][nomoved][bunnyr|cre] -> [spring][nomoved][bunnyd| cre]\nlate down [spring][nomoved][bunnyd| cre] -> [spring][nomoved][bunnyl| cre]\nlate left [spring][nomoved][bunnyl| cre] -> [spring][nomoved][bunnyu| cre]\n\nlate [spring][door] -> [spring][nodoor vert sunlit]\nlate [spring][nodoor vert floor no player][nlit] -> [spring][sdoor][snlit]\nlate [spring][nodoor vert floor no player][ice] -> [spring][sdoor][ice]\nlate [spring][nodoor floor no player][snlit] -> [spring][sdoor][snlit]\nlate [spring][nodoor floor no player][ice] -> [spring][sdoor][ice]\nlate [spring][nodoor vert] -> [spring][nodoor] SFX8\n\nlate [drowned][spring nodoor] -> [drowned][spring nodoor watermark]\n\n\n\n\n\n\nlate [start summer][bunny] -> [start summer][mlit bad]\nlate [summer][sunlit] -> [summer][munlit]\nlate [summer][sblock] -> [summer][mblock]\n\n[xs] -> []\n[fir] -> []\n[sec] -> []\n[thi] -> []\n[fou] -> []\n\n\n[summer][no floor no door no nodoor no block] -> [summer][munlit]\n\n\n[summer][new] -> [summer][]\n[light]->[]\n\n\n\n\n\n\n[> summer| water] -> cancel\n[> summer| flow] -> cancel\n[> summer| push| no crae no water] -> [> summer|> push|] SFX3\nstartloop\nright [summer][> nemir| swmir] -> [summer][|stationary diag]\nup [summer][> nemir| swmir] -> [summer][|stationary diag]\ndown [summer][> swmir| nemir] -> [summer][|stationary diag]\nleft [summer][> swmir| nemir] -> [summer][|stationary diag]\nleft [summer][> nwmir| semir] -> [summer][|stationary diago]\nup [summer][> nwmir| semir] -> [summer][|stationary diago]\ndown [summer][> semir| nwmir] -> [summer][|stationary diago]\nright [summer][> semir| nwmir] -> [summer][|stationary diago]\n\n[summer][> push|push| no crae no water] -> [summer][> push|> push|]\nendloop\n[summer][> push| stationary push] -> cancel\n[> summer| stationary push] -> cancel\n\nlate [summer] -> [summer lightu lightr lightd lightl x0]\n\n\n\nstartloop \n\nlate [light more] -> [light]\n\nlate up [lightu xs no flow no more|no lightu no cre no door ] -> [lightu xs| lightu more xs plusone]\nlate down [lightd xs no flow no more|no lightd no cre no door ] -> [lightd xs| lightd more xs plusone]\nlate left [lightl xs no flow no more|no lightl no cre no door ] -> [lightl xs| lightl more xs plusone]\nlate right [lightr xs no flow no more|no lightr no cre no door ] -> [lightr xs| lightr more xs plusone]\n\n\nlate up[lightu no more no flow xs|semir no lightr] -> [lightu xs|lightr more semir xs plusone]\nlate up[lightu no more no flow xs|swmir no lightl] -> [lightu xs|lightl more swmir xs plusone]\nlate down[lightd no more no flow xs|nemir no lightr] -> [lightd xs|lightr more nemir xs plusone]\nlate down[lightd no more no flow xs|nwmir no lightl] -> [lightd xs|lightl more nwmir xs plusone]\nlate left[lightl no more no flow xs|semir no lightd] -> [lightl xs|lightd more semir xs plusone]\nlate left[lightl no more no flow xs|nemir no lightu] -> [lightl xs|lightu more nemir xs plusone]\nlate right[lightr no more no flow xs|swmir no lightd] -> [lightr xs|lightd more swmir xs plusone]\nlate right[lightr no more no flow xs|nwmir no lightu] -> [lightr xs|lightu more nwmir xs plusone]\n\n\nlate up [lightu no crae mirror|flow no new] -> [lightu mirror|bloomed new] \nlate down [lightd no crae mirror|flow no new] -> [lightd mirror|bloomed new] \nlate left [lightl no crae mirror|flow no new] -> [lightl mirror| bloomed new] \nlate right [lightr no crae mirror|flow no new] -> [lightr mirror|bloomed new] \n\nlate up [lightu no crae summer|flow no new] -> [lightu summer|bloomed new] \nlate down [lightd no crae summer|flow no new] -> [lightd summer|bloomed new] \nlate left [lightl no crae summer|flow no new] -> [lightl summer| bloomed new] \nlate right [lightr no crae summer|flow no new] -> [lightr summer|bloomed new]\n\n\nlate up [lightu no crated water|flow no new floor] -> [ver|mlit] SFX4 again\nlate down [lightd no crated water|flow no new floor] -> [ver|mlit] SFX4 again\nlate left [lightl no crated water|flow no new floor] -> [hor|mlit] SFX4 again\nlate right [lightr no crated water|flow no new floor] -> [hor|mlit] SFX4 again\n\n\nlate up [lightu no crated no water no hor no ver|flow no new floor] -> [bloomed new|mlit] again SFX9\nlate down [lightd no crated no water no hor no ver|flow no new floor] -> [bloomed new|mlit] again SFX9\nlate left [lightl no crated no water no hor no ver|flow no new floor] -> [bloomed new|mlit] again SFX9\nlate right [lightr no crated no water no hor no ver|flow no new floor] -> [bloomed new|mlit] again SFX9\n\nlate [x0 plusone] -> [x1]\nlate [x1 plusone] -> [x2]\nlate [x2 plusone] -> [x3]\nlate [x3 plusone] -> [x4]\nlate [x4 plusone] -> [x5]\n\n\nendloop\n\n\nlate [summer unlit] -> [summer mlit]\nlate [light unlit] -> [light mlit]\nlate [summer|flower] -> [summer| bloomed]\nlate [light flow] -> [bloomed]\n\nlate up [lightu|crat floor] -> [lightu|glass mlit]\nlate down [lightd|crat floor] -> [lightd|glass mlit]\nlate right [lightr|crat floor] -> [lightr|glass mlit]\nlate left [lightl|crat floor] -> [lightl|glass mlit]\nlate up [lightu|glass floor] -> [lightu|glass mlit]\nlate down [lightd|glass floor] -> [lightd|glass mlit]\nlate right [lightr|glass floor] -> [lightr|glass mlit]\nlate left [lightl|glass floor] -> [lightl|glass mlit]\n\n\nlate [lightu x4] -> [lightu u4 x4]\nlate [lightd x4] -> [lightd d4 x4]\nlate [lightl x4] -> [lightl l4 x4]\nlate [lightr x4] -> [lightr r4 x4]\nlate [lightu x3] -> [lightu u3 x3]\nlate [lightd x3] -> [lightd d3 x3]\nlate [lightl x3] -> [lightl l3 x3]\nlate [lightr x3] -> [lightr r3 x3]\nlate [lightu x2] -> [lightu u2 x2]\nlate [lightd x2] -> [lightd d2 x2]\nlate [lightl x2] -> [lightl l2 x2]\nlate [lightr x2] -> [lightr r2 x2]\n\nlate [lightu x1] -> [lightu u1 x1]\nlate [lightd x1] -> [lightd d1 x1]\nlate [lightl x1] -> [lightl l1 x1]\nlate [lightr x1] -> [lightr r1 x1]\n\n\n\n\n\nlate [summer][door] -> [summer][nodoor new mlit]\n\nlate [summer][nodoor new lit][unlit] -> [summer][mdoor][munlit]\nlate [summer][lose]->restart\nlate [light bad] -> [light lose] SFX5\nlate [summer][nodoor new] -> [summer][nodoor] SFX8\nlate [summer nodoor] -> [wins summer]\n\n\n\n\nlate [autumn][xs] -> [autumn][]\nlate [autumn][fir] -> [autumn][]\nlate [autumn][sec] -> [autumn][]\nlate [autumn][thi] -> [autumn][]\nlate [autumn][fou] -> [autumn][]\nlate [autumn][mlit] -> [autumn][alit]\nlate [autumn][mblock] -> [autumn][ablock]\n\n\n[> autumn | crat| no cre no aqua] -> [| autumn |crat] SFX7\n[> autumn | mirror| no cre no aqua] -> [| autumn |mirror] SFX7\n\nlate [autumn][bad] -> [autumn][bunnyr]\n\n[first][autumn] -> [][autumn notfirst]\n\n\n[> autumn|crat|no block no bunny no bird no flow no door no crat no glass] -> [|autumn|crat]\n[> autumn|water] -> [autumn|water]\n\n[autumn][water floor] -> [autumn][water]\n[autumn][hor floor] -> [autumn][hor]\n[autumn][ver floor] -> [autumn][ver]\n[autumn][no floor no door no nodoor no block no water no hor no ver] -> [autumn][alit]\nlate [autumn][glass floor] -> [autumn][glass ait]\n[autumn][no vert] -> [autumn][vert]\ndown[autumn][vert|...|no block] -> [autumn][|...|]\nhorizontal[autumn][vert|...|no vert] -> [autumn][|...|]\n\nlate down [autumn][glass|no bloomed no player no bunny no bad no ablock] -> [autumn][crat|bird moved]\n\n[> autumn | bird|no bloomed no door no crate no fell no bird ] -> [> autumn| > bird|]\n\n\n[> autumn|bloomed|no bloomed no door no crate no fell no bird no bunny] -> [> autumn|random fell start|]\nhorizontal [> autumn|bloomed|no bloomed no door water no fell no bird no bunny] -> [|autumn|hor]\nvertical [> autumn|bloomed|no bloomed no door water no fell no bird no bunny] -> [|autumn|ver]\n[> autumn|start fell] -> [> autumn|> fell]\n[> autumn|bloomed] -> cancel\n\n\nlate [autumn][fell floor] -> [autumn][fell ait]\nlate [autumn floor] -> [autumn ait]\n\n\n\nlate [autumn][drowned] -> restart\nlate [autumn][moved no crat no bird] -> [autumn][]\nlate right [notfirst][autumn|...|no bloomed no bird no bunny no block no fell water|bunny no moved] -> [notfirst][autumn|...|drowned|]\nlate left [notfirst][autumn|...|no bloomed no bird no bunny no block no fell water|bunny no moved] -> [notfirst][autumn|...|drowned|]\nlate right [notfirst][autumn|...|no bloomed no bird no bunny no block no fell|bunny no moved] -> [notfirst][autumn|...|bunnyl moved|]\nlate left [][autumn|...|no bloomed no bird no bunny no block no fell|bunny no moved] -> [notfirst][autumn|...|bunnyr moved|]\n\nlate down [autumn][bird no moved|no door no fell no block no bloomed no player no bird no bunny] -> [autumn][|bird moved]\nlate [autumn][bird vert] -> [autumn][] \n\nlate [autumn][connected] -> [autumn][]\nlate [autumn no connected] -> [autumn connected]\n\n+ late [autumn][connected|no connected no fell no bird no crate no door no bloomed no bunny no ver no hor] -> [autumn][connected|connected]\n\nlate [autumn][floor connected] -> [autumn][ait connected]\n\nlate [autumn][bird moved] -> [autumn][bird] again\n\n\nlate [autumn][door] -> [autumn][nodoor ait]\nlate [autumn][nodoor it][lit] -> [autumn][adoor][alit]\nlate [autumn][nodoor it][bird] -> [autumn][adoor][bird]\nlate [autumn][nodoor it][glass] -> [autumn][adoor][glass]\n\nlate [autumn nodoor] -> [wins autumn]\n\n\nlate [winter][ait] -> [winter][wit]\nlate [winter][ablock] -> [winter][wblock]\n\n[winter][no floor no door no nodoor no block no flow] -> [winter][ait]\n\n([> player | crat|no flower] -> [> player| > crat|]\n[> player | diags|no flower] -> [> player| > diags|])\n[> winter][ lose] -> restart\n[uq] [winter] -> [] [up winter]\n[dow] [winter] -> [] [down winter]\n[righ] [winter] -> [] [right winter]\n[lef] [winter] -> [] [left winter]\n\n[moved] [winter] -> [] [winter] \n[bunn] [winter] -> [] [winter] \n[bunny] [winter] -> [bunny bunn] [winter] \n\n\n\n[> winter floor no moved|no flow no door no cra ] -> [wnlit |> winter moved] \n\n\n\nright [> winter floor no moved| stationary swmir] -> [> temp2 wnlit|v temp swmir]\nup [> winter floor no moved| stationary swmir] -> [> temp2 wnlit|^ temp swmir]\ndown [> winter floor no moved| stationary nwmir] -> [> temp2 wnlit|v temp nwmir]\nright [> winter floor no moved| stationary nwmir] -> [> temp2 wnlit|^ temp nwmir]\nleft [> winter floor no moved| stationary nemir] -> [> temp2 wnlit|v temp nemir]\ndown [> winter floor no moved| stationary nemir] -> [> temp2 wnlit|^ temp nemir]\nup [> winter floor no moved| stationary semir] -> [> temp2 wnlit|v temp semir]\nleft [> winter floor no moved| stationary semir] -> [> temp2 wnlit|^ temp semir]\n\nstartloop \nright [> temp floor no moved| stationary swmir] -> [ wnlit iffy|v temp swmir]\nup [> temp floor no moved| stationary swmir] -> [ wnlit iffy|^ temp swmir]\ndown [> temp floor no moved| stationary nwmir] -> [ wnlit iffy|v temp nwmir]\nright [> temp floor no moved| stationary nwmir] -> [ wnlit iffy|^ temp nwmir]\nleft [> temp floor no moved| stationary nemir] -> [ wnlit iffy|v temp nemir]\ndown [> temp floor no moved| stationary nemir] -> [ wnlit iffy|^ temp nemir]\nup [> temp floor no moved| stationary semir] -> [ wnlit iffy|v temp semir]\nleft [> temp floor no moved| stationary semir] -> [ wnlit iffy |^ temp semir]\n\nendloop\n\n[> temp floor|no flow no door no cra ] -> [wnlit|> winter moved] SFX1\n[temp][temp2][nlit iffy] -> [temp][temp2][wit]\n[temp][> temp2] -> [][> winter]\n[temp] -> []\n[temp2] -> []\n\n[iffy] -> []\n\n[> winter floor no moved|cred|no flow no door no block ] -> [wnlit > winter| > cred|]\n\n[winter it] -> [winter wnlit]\n[> winter no moved| door] -> [winter moved| temp door] \n[temp door] [winter] [it] -> [door] [winter] [it]\n[temp door][winter] -> [winter nodoor wnlit][]\n\n\n[ winter| bunny] -> [winter|> bunny] \n [winter] [> bunny| bunny] -> [winter] [> bunny| > bunny]\n [winter] [left bunny] -> [winter] [left bunnyl]\n [winter] [right bunny] -> [winter] [right bunnyr]\n [winter] [down bunny] -> [winter] [down bunnyd]\n [winter] [up bunny] -> [winter] [up bunnyu]\n\n [winter] [> bunny|water] -> [winter][|lose]\n [winter] [> bunny|ice] -> [winter][bunny|ice]\n\nlate [winter hor] -> [winter whor]\nlate [winter ver] -> [winter wver]\n\nlate [winter][bunny no bunn] -> SFX3\n\n\n[left winter moved] -> [lef winter] again\n[right winter moved] -> [righ winter] again\n[down winter moved] -> [dow winter] again\n[up winter moved] -> [uq winter] again\n\n[winter water uq] -> [winter ice]\n[winter water lef] -> [winter ice]\n[winter water dow] -> [winter ice]\n[winter water righ] -> [winter ice]\n[winter water] -> [winter ice]\n\n[winter][moved] -> [winter][] again\n\n\n\n\n\nright [winter][> nemir| swmir] -> [winter][|diag]\nup [winter][> nemir| swmir] -> [winter][|diag]\ndown [winter][> swmir| nemir] -> [winter][|diag]\nleft [winter][> swmir| nemir] -> [winter][|diag]\nleft [winter][> nwmir| semir] -> [winter][|diago]\nup [winter][> nwmir| semir] -> [winter][|diago]\ndown [winter][> semir| nwmir] -> [winter][|diago]\nright [winter][> semir| nwmir] -> [winter][|diago]\n[winter][> cre| cre| no flow no door no block] -> [winter][> cre| > cre| ]\n\n[winter][> cre|stationary cra] -> [winter][cre|cra]\n[> winter| fell floor] -> [winter|dead wnlit] SFX3\n[> winter|stationary cra] -> [winter|cra]\n\nlate [winter it] -> [winter wnlit]\nlate [winter][door] -> [winter][nodoor new wnlit]\nlate [winter][nodoor new nlit][it] -> [winter][wdoor][wit]\nlate [winter][nodoor new] -> [winter][nodoor] SFX8\nlate [winter nodoor] -> [wins winter]\nlate [start][winter wins floor] -> win\n\nlate [fell hor] -> cancel\nlate [fell ver] -> cancel\n\nlate [spring no moved nodoor] -> [winner1]\nlate [summer wins ] -> [winner2]\nlate [autumn wins] -> [winner3]\n\nlate [ winner1 no watermark no moved no first][start][sblock] -> [winner1 first][start][mblock] again\nlate [ winner1 no watermark no moved no first][start][mblock] -> [mdoor ][start summer][mblock] again\nlate [ winner2 no watermark no moved no first][start][mblock] -> [winner2 first][start][ablock] again\n\nlate [winner2 no watermark no moved no first][start][ablock] -> [adoor ][start first autumn][ablock] again\nlate [ winner3 no watermark no moved no first][start][ablock] -> [winner3 first][start][wblock] again\n\nlate [winner3 no watermark no moved no first][start][wblock] -> [adoor ][start first winter][wblock] again\n\nlate [winner first] -> [winner no first]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n\nmessage Spring: \"Wow, I can't believe that it's only been 82 thousand years! It feels like I've known about all of you for such a long time! \"\n\nmessage Summer: \"What I can't believe is that I've been able to put up with you for that long!\"\n\nmessage Autumn: \"Come on, there's no reason to be mean.\"\n\nmessage Winter: \"I assume that you are being hyperbolic again, Summer.”\nmessage Winter: \"I do not see what other option you would have had, as there is no other place that you could go.\"\n\nwwwwww\ni1111w\nw1111w\nw1111e\nwwwwww\n\nmessage Spring: \"I still remember it as if it were only a decade ago.\"\nmessage Spring: \"Oh! Autumn, you might be able to see one of my favorite comets soon!\n\nmessage Summer: \"Argh! Why do these things always seem to just miss me?\"\n\nmessage Autumn: \"I just saw it. The view was marvelous! Thanks for the heads up.\"\n\nmessage Winter: \"Speaking of our initial introductions, I have a question for you, Spring.\"\nmessage Winter: \"Did you actually think that I was an animal? Do I look more distinct from the rest of you than I had previously believed?\"\n\n\n\nwwwwwww\nwl1p11w\nwl1pppw\ni11p11e\nwwwwwww\nmessage Spring: \"Nope, You look just like us!\"\nmessage Spring: \"Even though now it's hard for me to even imagine life without knowing all of you friends,\"\nmessage Spring: \"At the time, I had no idea there was anything else like me!\"\nmessage Spring: \"You also slid by so fast, so that's why I assumed I must have seen an animal.\"\n\nmessage Summer: \"I guess none of us can blame you for making a wrong assumption Spring, 'cause we all did the same.\"\nmessage Summer: \"I still say that my guess was better than all of yours though!\"\n\nmessage Autumn: \"I can also hardly remember not knowing about you too, Spring.\"\nmessage Autumn: \"The intermediate time, when I only knew Summer, was a hard time for me, but your optimism and enthusiasm never ceases to inspire me.\"\n\nmessage Winter: \"Yes, I can imagine that the interim went...\"\nmessage Winter: \"...well...\"\nmessage Winter: \"...poorly, to say the least.\"\n\n\n\nwwwwwww\nw11q11w\nw11l11w\ni11l1le\nwwwwwww\n\nmessage Spring: \"This year is going to be the best year ever!\"\n\nmessage Summer: \"We GET IT already!\"\nmessage Summer: \"Do you have to say that EVERY SINGLE TIME?\"\n\nmessage Autumn: \"I agree with Spring.\"\nmessage Autumn: \"I think we should strive to make every year better than the last.\"\n\nmessage Winter: \"But I do not see any evidence that this year would be any different.\"\nmessage Winter: \"It will most likely not have any major improvements or regression.\"\n\nwwwwwww\nw1ppp1w\nw1ppp1e\nwp111pw\nwp111pw\nw1ppp1w\nip111pw\nwp111pw\nwwwwwww\n\nmessage Spring: \"Autumn, I wish that one day I could finally meet you, instead of having to leave these messages.\"\nmessage Spring: \"You sound so beautiful!\"\nmessage Spring: \"Summer or Winter, can you please describe how Autumn looks again for me?\"\n\nmessage Summer: \"He's orange.\"\n\nmessage Autumn: \"Quite the way with words as always, Summer.\"\n\nmessage Winter: \"I believe his skin looks closer to that of a tangerine than an orange.\"\nmessage Winter: \"And his eyes have a similar color to the seed coat of a peanut.\"\n\n\n\nwwwwwww\nwww1eww\nwwi1www\nwww1www\nwwl1l1w\nw111llw\nw111llw\nw111www\nwwwwwww\n\nmessage Spring: \"You must look so gorgeous Autumn!\"\nmessage Spring: \"I'd also wish that I could see you change the leaves' color sometime too, it seems so magical!\"\n\nmessage Spring: \"Hey Summer and Winter, what about you two? Do you ever think about wanting to meet each other?\"\n\nmessage Summer: \"Definitely not! It sounds like he's FREEZING!\"\n\nmessage Autumn: \"Awwww, Spring. I would be blushing if I could.\"\n\nmessage Winter: \"I will not lie and say that I am not curious about Summer's brightness\"\nmessage Winter: \"But I worry that your head may be full of dangerous thoughts, Spring\"\n\n\n\nwwwwwww\nwx11lle\nw1l1l1w\nwll111w\nil111cw\nwwwwwww\n\nmessage Spring: \"What?\"\nmessage Spring: \"What do you mean?\"\n\nmessage Summer: \"He's trying to say you're SCARING US!\"\nmessage Summer: \"All this talk about meeting our counterparts!\"\n\nmessage Autumn: \"I think you're overreacting a bit.\"\n\nmessage Winter: \"I do not believe she is.\"\nmessage Winter: \"We have no idea what could happen if one of us were to ignore our purpose.\"\n\n\n\nwwwwwwww\nilql11ww\nwllll11w\nwlllll1w\nwwwwlllw\nwwww11le\nwwwwww1w\n\nmessage Spring: \"I'm...\"\nmessage Spring: \"I'm so sorry Winter! I never meant to upset you!\"\nmessage Spring: \"I'll never mention it again!\"\n\nmessage Summer: \"GOOD!\"\nmessage Summer: \"I was getting sick of hearing you rambling on about it.\"\n\nmessage Autumn: \"Hey, don't talk to her that way!\"\nmessage Autumn: \"Winter, I agree that we have no idea what could happen.\"\nmessage Autumn: \"But that might just mean that it could be nothing!\"\nmessage Autumn: \"None of us can remember a time before our purposes, so none of us can know why we are doing it.\"\nmessage Autumn: \"It could all just be arbitrary and meaningless.\"\n\nmessage Winter: \"Autumn, please do not make any rash decisions because of your emotions.\"\nmessage Winter: \"Although it is true none of us know the meaning of the cycle, something must have set the chain in motion.\"\nmessage Winter: \"I do not believe that it all could lack meaning.\"\n\n\n\n\nwwwwwww\nw1111lw\nw111wlw\nw111wle\nw1111lw\nwl1lllw\nil1lllw\nwwwwwww\n\nmessage Spring: \"Please stop fighting you guys! I hate seeing when you argue!\"\n\nmessage Summer: \"Do like Spring said, and just stop being stupid about this Autumn!\"\n\nmessage Autumn: \"Spring didn't say I was being stupid.\"\nmessage Autumn: \"And I don't mean to start an argument, but I think that it's important to sort out what should be believed.\"\nmessage Autumn: \"We don't actually have any reason to believe that we even have a purpose.\"\nmessage Autumn: \"We'll never know unless we break the chain, and I don't think I want to live an eternity without you, Spring.\"\n\nmessage Winter: \"Be reasonable Autumn! This could affect the entire balance of the planet.\"\nmessage Winter: \"And it is not true that my claims are based on no evidence.\"\nmessage Winter: \"Do you think it is just coincidence that, with no knowledge of each other,\"\nmessage Winter: \"We all began to travel around the Earth along the same path, in the same direction, and with the same interval?\"\n\n\n\nwwwwwwww\nwllpllww\nwl1p11ww\nwppwppww\nw11pl1ww\ni1lpllww\nwppwppww\nwllpllww\nwl1p11ew\nwwwwwwww\n\nmessage Spring: \"Autumn...\"\nmessage Spring: \"Winter...\"\nmessage Spring: \"I...\"\nmessage Spring: \"I don't know what to do!\"\nmessage Spring: \"I don't know who to believe!\"\nmessage Spring: \"Can't we all just go back to being friends again?\"\n\nmessage Summer: \"UGHHHH\"\nmessage Summer: \"This is getting ridiculous.\"\nmessage Summer: \"If you two are going to abandon everything we know and meet each other, just DO IT already!\"\nmessage Summer: \"Otherwise...\"\nmessage Summer: \"SHUT THE HELL UP ABOUT IT ALREADY!\"\n\nmessage Autumn: \"I'm willing to meet you if you are, Spring\"\nmessage Autumn: \"If anything goes wrong, I just need you to know...\"\nmessage Autumn: \"I love you!\"\n\nmessage Winter: \"You must not!\"\nmessage Winter: \"You are putting us all at risk for nothing!\"\n\n\n\n\n\nwwwwwwwww\nwi1>1wwww\nww111l1ww\nwww11l1ew\nww111l1ww\nww1l1lwww\nwwwwwwwww\nwwwwwwwww\n\nmessage Spring: \"I...\"\nmessage Spring: \"I love you too!\"\nmessage Spring: \"I'm so excited to finally get to talk to you face to face!\"\nmessage Spring: \"Nothing will go wrong Autumn! I believe that love can conquer anything!\"\n\nmessage Summer: \"HEY!\"\nmessage Summer: \"Why should I have to keep working if they're going to stop!?\"\nmessage Summer: \"If they're going to quit, then I QUIT TOO!\"\n\nmessage Autumn: \"I sure hope you're right, Spring.\"\n\nmessage Winter: \"I should try to minimize the risk of catastrophe.\"\nmessage Winter: \"I will try to take up the purposes of all of us,\"\nmessage Winter: \"Although there are things I already am aware I will not be able to do as well.\"\n\n\nwwwwwwwwww\nwwwwwwwwww\nw111wwwwww\ni111ewwwww\nw111wwwwww\nw1l1wwwwww\nwlllwwwwww\nwlll1lll1w\nwlllwwwwww\nwwwwwwwwww\n\nmessage Winter: \"I do hope they return some day, but until then...\"\nmessage Winter: \"...I suppose that it is the beginning of an Age of Ice.\"\n\n\n\n\n\nwwwwww\nwww1ww\nww11ww\nw111ww\ni1llww\nw1llww\nww1lww\nww1llw\nww1lle\nww111w\nww11ww\nww1www\nwwwwww\n\nmessage END OF PART 5\n\n\n\n",[3,3,2,2,2,3,3,3,0,3,3,1,1,0,1,4,2,2,4,3,3,0,4,2,1,1,1,4,3,2,3,4,1,1,0,4,3,3,3,3,1,1,1,1,4,4,3,1,1,1,1,3,1,1,3,3,2,1,4,3,3,4,0,"undo",1,1,1,3,3,0,0,3,1,3,4,3,3,3,3,3,2,2,2,1,"undo",2,"undo",0,"undo",2,"undo","undo","undo","undo",2,2,2,2,2,"undo","undo","undo",0,3,"undo","undo","undo","undo","undo","undo",3,2,3,2,2,1,2,"undo",2,"undo",0,3,3,"undo","undo"],"background mblock:0,0,0,0,0,0,0,0,0,\nbackground mlit start:1,0,0,0,0,0,0,0,background mlit:2,\n2,0,background munlit:3,3,0,0,0,background mlit vert:4,2,\n4,background munlit vert:5,background flower munlit:6,background mblock vert:7,0,0,2,background bloomed mlit new x1:8,2,\n2,2,0,0,0,0,background lightd lightl lightr lightu mlit summer vert x0:9,8,5,\n6,7,0,0,0,background lightr mlit r1 x1:10,3,background bad mlit:11,0,\n0,0,0,0,0,background mdoor nomoved:12,0,0,0,\n0,0,0,0,0,0,0,0,0,\n",98,"1627779217716.8293"] + ["title Season Finale\nrun_rules_on_level_start\nbackground_color #222\ntext_color #DDD\nagain_interval 0\n\n========\nOBJECTS\n========\n\nBackground 1\nblack\n\nsunlit \n#78D448\n\nmunlit\n#70F044\n\nsnlit \n#58BBE0\n\nwnlit\n#C0FFEE\n\nait\n#FEB047\n\nwit \n#EFC040\n\nmlit \n#FBFB68\n\nalit\n#FFFB66\n\nablock\n#C84202\n\nsblock w\n#043804\n\nmblock\n#14D0D0\n\nwblock\n#6094B2\n\nwdoor\n#6094B2 #5074A2\n11100\n11110\n11111\n11110\n11100\n\nadoor \n#FD712D #C84202\n00011\n00001\n00000\n00001\n00011\n\nsdoor e\n#109010 #043804\n00011\n00001\n00000\n00001\n00011\n\nmdoor\n#80F4F4 #14D0D0\n00011\n00001\n00000\n00001\n00011\n\nspring\n#109010 #041904\n.000.\n00000\n01010\n00000\n.000.\n\nbunnyd ,\n#745004 black pink white\n..3..\n.000.\n.000.\n.101.\n..2..\n\nbunnyl <\n#745004 black pink white \n.....\n.100.\n20003\n.100.\n.....\n\nbunnyu .\n#745004 black pink white\n..2..\n.101.\n.000.\n.000.\n..3..\n\nbunnyr >\n#745004 black pink white\n.....\n.001.\n30002\n.001.\n.....\n\n\n\ncrat 7\n#745004 #C47004\n.000.\n01110\n01110\n01110\n.000.\n\nglass q\n#745004 #C47004 white\n.000.\n02110\n02120\n01120\n.000.\n\nflower\n#043804 #109010\n.....\n..1..\n.101.\n..1..\n.....\n\nwater o\n#1040E0 \n\nice p\nlightblue\n\n\n\ndrowned\n#1040E0 #745004 \n00000\n00100\n01110\n00100\n00000\n\nnodoor\ntransparent\n\nstart\ntransparent\n\nvert\ntransparent\n\nmoved\ntransparent\n\nnomoved\ntransparent\n\n\n\neaten\ntransparent\n\nwatermark\ntransparent\n\n\n\n\n\nsummer\n#f41010 #600404 #FFB008\n.000.\n00000\n01010\n00000\n.000.\n\n\n\nlightu \n#FFC008\n.....\n..0..\n.0.0.\n.....\n.....\n\n\n\nlightr \n#FFC008\n.....\n..0..\n...0.\n..0..\n.....\n\nlightl \n#FFC008\n.....\n..0..\n.0...\n..0..\n.....\n\nlightd \n#FFC008\n.....\n.....\n.0.0.\n..0..\n.....\n\n\nu1\n#FF5800\n.....\n..0..\n.0.0.\n.....\n.....\n\nr1\n#FF5800\n.....\n..0..\n...0.\n..0..\n.....\n\nl1\n#FF5800\n.....\n..0..\n.0...\n..0..\n.....\n\nd1\n#FF5800\n.....\n.....\n.0.0.\n..0..\n.....\n\nu2\n#FF7800\n.....\n..0..\n.0.0.\n.....\n.....\n\nr2\n#FF7800\n.....\n..0..\n...0.\n..0..\n.....\n\nl2\n#FF7800\n.....\n..0..\n.0...\n..0..\n.....\n\nd2\n#FF7800\n.....\n.....\n.0.0.\n..0..\n.....\n\nu3\n#FF9800\n.....\n..0..\n.0.0.\n.....\n.....\n\nr3\n#FF9800\n.....\n..0..\n...0.\n..0..\n.....\n\nl3\n#FF9800\n.....\n..0..\n.0...\n..0..\n.....\n\nd3\n#FF9800\n.....\n.....\n.0.0.\n..0..\n.....\n\nu4\n#FFA800\n.....\n..0..\n.0.0.\n.....\n.....\n\nr4\n#FFA800\n.....\n..0..\n...0.\n..0..\n.....\n\nl4\n#FFA800\n.....\n..0..\n.0...\n..0..\n.....\n\nd4\n#FFA800\n.....\n.....\n.0.0.\n..0..\n.....\n\nx0\ntransparent\n\nx1\ntransparent\n\nx2\ntransparent\n\nx3\ntransparent\n\nx4\ntransparent\n\nx5\ntransparent\n\nplusone\ntransparent\n\n\nver\n#1040E0 #A07004\n01110\n01110\n01110\n01110\n01110\n\nhor\n#1040E0 #A07004\n00000\n11111\n11111\n11111\n00000\n\nwver\nlightblue #A07004\n01110\n01110\n01110\n01110\n01110\n\nwhor\nlightblue #A07004\n00000\n11111\n11111\n11111\n00000\n\nbloomed\n#209A00\n.000.\n00000\n00000\n00000\n.000.\n\n\n\n\nbad\n#985000 white #ff5064\n..2..\n.000.\n.000.\n.000.\n..1..\n\n\n\n\nlose\n#985000 white #ff5064 black\n..2..\n.303.\n.000.\n.000.\n..1..\n\nnemir z\n#985000 #14D0D0\n0....\n00...\n0.0..\n0..0.\n00000\n\nsemir x\n#985000 #14D0D0\n00000\n0..0.\n0.0..\n00...\n0....\n\nnwmir c\n#985000 #14D0D0\n....0\n...00\n..0.0\n.0..0\n00000\nswmir v\n#985000 #14D0D0\n00000\n.0..0\n..0.0\n...00\n....0\n\ndiag b\n#985000 #14D0D0\n00000\n00..0\n0.0.0\n0..00\n00000\n\ndiago n\n#985000 #14D0D0\n00000\n0..00\n0.0.0\n00..0\n00000\n\n\nwins\ntransparent\n\nnew\ntransparent\n\nmore\ntransparent\n\n\n\nautumn \n#F45305 #6A2402\n.000.\n00000\n01010\n00000\n.000.\n\n\nbird m\ndarkblue blue lightblue black\n..1..\n2.1.2\n11111\n.010.\n..1..\n\n\n\nfella\n#7E2D00\n.000.\n00000\n00000\n00000\n.000.\n\nfellb\n#9A0501\n.000.\n00000\n00000\n00000\n.000.\n\nfellc\n#CD0601\n.000.\n00000\n00000\n00000\n.000.\n\nfelld\n#CCC926\n.000.\n00000\n00000\n00000\n.000.\n\nfelle\n#F7C709\n.000.\n00000\n00000\n00000\n.000.\n\nfellf\n#F45305\n.000.\n00000\n00000\n00000\n.000.\n\nfellg\n#DA4528\n.000.\n00000\n00000\n00000\n.000.\n\nfellh\n#FD712D\n.000.\n00000\n00000\n00000\n.000.\n\nconnected\ntransparent\n\nfirst\ntransparent\n\nnotfirst\ntransparent\n\n\nwinter\n#1010B0 #101030\n.000.\n00000\n01010\n00000\n.000.\n\n\ndead\nbrown\n..0..\n..0..\n00000\n..0..\n..0..\n\ntemp\ntransparent\n\ntemp2\ntransparent\n\nlef\ntransparent\n\nrigh\ntransparent\n\ndow\ntransparent\n\nuq\ntransparent\n\nbunn\ntransparent\n\niffy \ntransparent\n\nwinner1\ntransparent\n\nwinner2\ntransparent\n\nwinner3\ntransparent\n=======\nLEGEND\n=======\n\nbunny = bunnyl or bunnyr or bunnyd or bunnyu\naqua = water or ice\n\nfell = fella or fellb or fellc or felld or felle or fellh or fellg or fellf\nflow = flower or bloomed or dead\n\ni = spring and start\n\nplayer = spring or summer or autumn or winter\n\nmirror = swmir or semir or nwmir or nemir\n\ndiags = diag or diago\nlight = lightu or lightd or lightr or lightl \nblock = sblock or ablock or wblock or mblock\nlit = alit or mlit\nunlit = munlit or sunlit\nnlit = snlit or wnlit\nit = wit or ait\nfloor = unlit or nlit or lit or it\nl= snlit\na = flower and snlit\nwinner = winner1 or winner2 or winner3\ndoor = sdoor or adoor or mdoor or wdoor\ncra = crat or block or mirror or diags or fell or dead or bunny\ncratd = crat or block or fell or dead\ncred = crat or diags or mirror or fell\ncre = spring or block or crat or glass or door or bunny or ice or mirror or diags\ncrae = block or glass or bad or flow\ncrate = crat or block or glass or aqua\ncrated = block or glass or mirror or bad or diags or summer or flow\npush = mirror or diags\nt = bad and mlit\nfir = u1 or d1 or l1 or r1\nsec = u2 or d2 or l2 or r2\nthi = u3 or d3 or l3 or r3\nfou = u4 or d4 or l4 or r4\nxs = x0 or x1 or x2 or x3 or x4 or x5\n2 = summer and start\n\nk= water \n\n\n\n\n\n=======\nSOUNDS\n=======\nSFX1 80425104\nSFX2 16467501\nSFX3 80127507\nSFX4 71317504\nSFX5 25216505\nSFX6 16917301\nSFX7 92204307\nSFX8 54283103\nSFX9 32265107\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nvert\nnodoor,wins, lose\nwatermark, connected\nfloor\nice\nmoved, nomoved\nflow, eaten\nwater,\nhor, ver, whor, wver\nlightu, first, notfirst\nlightr\nlightd\nlightl\nmore\nbad\nstart, new\ntemp, temp2\nplayer, glass, crat, block, door, bunny, mirror, diags, fell, bird,\nwinner\nlef, righ, dow, uq\nbunn\niffy\nstart, drowned\nplusone\nx0\nx1\nx2\nx3\nx4\nx5\nu1, u2, u3, u4\nd1, d2, d3, d4\nl1, l2, l3, l4\nr1, r2, r3, r4\n\n\n\n======\nRULES\n======\n\n\n\n[spring][start watermark] -> restart\n[spring][drowned][start] -> [spring][drowned][start watermark]\n\n[action spring no unlit no flower no aqua] -> [spring flower] SFX1\n[action spring flower] -> [spring eaten]\n\n[spring][floor] -> [spring][]\n[> spring| water] -> [spring|water]\n[> spring | crat| no cre no aqua flower] -> [|spring|crat] SFX3\n[> spring | crat| no cre no aqua] -> [|spring|crat] SFX7\n[> spring | mirror| no cre no aqua flower] -> [|spring|mirror] SFX3\n[> spring | mirror| no cre no aqua] -> [|spring|mirror] SFX7\n[spring][vert] ->[spring][]\n[spring][eaten]->[spring][]\n[spring][nomoved] -> [spring][]\n[spring][moved] -> [spring][]\n\nlate [spring ice] -> [spring ice watermark]\nlate [spring][no spring ice watermark] -> [spring][water watermark] SFX2\n\nlate [spring][bunny watermark] -> [spring][drowned] SFX6\n\nlate up [spring][bunnyu no moved |no cre flower] ->[spring] [|bunnyu moved eaten] SFX3 \nlate left [spring][bunnyl no moved |no cre flower] -> [spring][|bunnyl moved eaten] SFX3 \nlate right [spring][bunnyr no moved |no cre flower] -> [spring][|bunnyr moved eaten] SFX3 \nlate down [spring][bunnyd no moved |no cre flower] -> [spring][|bunnyd moved eaten] SFX3\n\n\nlate up [spring][bunnyu no moved |no cre no flower] ->[spring] [|bunnyu moved] \nlate left [spring][bunnyl no moved |no cre no flower] -> [spring][|bunnyl moved] \nlate right [spring][bunnyr no moved |no cre no flower] -> [spring][|bunnyr moved] \nlate down [spring][bunnyd no moved |no cre no flower] -> [spring][|bunnyd moved] \n\nlate right [|nodoor spring][eaten] -> [spring|sdoor][eaten]\nlate [spring][nodoor][eaten] -> [spring][sdoor][eaten]\n\nlate [spring] -> [spring nomoved]\nlate [nomoved spring][moved] -> [spring][moved]\nlate [spring][moved no spring]->[spring moved][] again\n\n\nlate [spring][no block no aqua] -> [spring][snlit]\nlate [spring][nodoor floor] -> [spring][nodoor sunlit]\nlate [spring][start floor] -> [spring][start sunlit]\n\nlate [spring][flow nlit] -> [spring][flow sunlit]\nlate [spring][flow |nlit] -> [spring][flow|sunlit]\nlate [spring][flow |ice] -> [spring][flow |water watermark]\nlate vertical [spring][flower|] -> [spring][flower|vert]\nlate horizontal [spring][vert|nlit] -> [spring][vert|sunlit]\nlate horizontal [spring][vert|ice] -> [spring][vert|water watermark]\n\nlate up [spring][nomoved][bunnyu | cre] -> [spring][nomoved][bunnyr|cre]\nlate right [spring][nomoved][bunnyr|cre] -> [spring][nomoved][bunnyd| cre]\nlate down [spring][nomoved][bunnyd| cre] -> [spring][nomoved][bunnyl| cre]\nlate left [spring][nomoved][bunnyl| cre] -> [spring][nomoved][bunnyu| cre]\nlate up [spring][nomoved][bunnyu | cre] -> [spring][nomoved][bunnyr|cre]\nlate right [spring][nomoved][bunnyr|cre] -> [spring][nomoved][bunnyd| cre]\nlate down [spring][nomoved][bunnyd| cre] -> [spring][nomoved][bunnyl| cre]\nlate left [spring][nomoved][bunnyl| cre] -> [spring][nomoved][bunnyu| cre]\nlate up [spring][nomoved][bunnyu | cre] -> [spring][nomoved][bunnyr|cre]\nlate right [spring][nomoved][bunnyr|cre] -> [spring][nomoved][bunnyd| cre]\nlate down [spring][nomoved][bunnyd| cre] -> [spring][nomoved][bunnyl| cre]\nlate left [spring][nomoved][bunnyl| cre] -> [spring][nomoved][bunnyu| cre]\nlate up [spring][nomoved][bunnyu | cre] -> [spring][nomoved][bunnyr|cre]\nlate right [spring][nomoved][bunnyr|cre] -> [spring][nomoved][bunnyd| cre]\nlate down [spring][nomoved][bunnyd| cre] -> [spring][nomoved][bunnyl| cre]\nlate left [spring][nomoved][bunnyl| cre] -> [spring][nomoved][bunnyu| cre]\n\nlate [spring][door] -> [spring][nodoor vert sunlit]\nlate [spring][nodoor vert floor no player][nlit] -> [spring][sdoor][snlit]\nlate [spring][nodoor vert floor no player][ice] -> [spring][sdoor][ice]\nlate [spring][nodoor floor no player][snlit] -> [spring][sdoor][snlit]\nlate [spring][nodoor floor no player][ice] -> [spring][sdoor][ice]\nlate [spring][nodoor vert] -> [spring][nodoor] SFX8\n\nlate [drowned][spring nodoor] -> [drowned][spring nodoor watermark]\n\n\n\n\n\n\nlate [start summer][bunny] -> [start summer][mlit bad]\nlate [summer][sunlit] -> [summer][munlit]\nlate [summer][sblock] -> [summer][mblock]\n\n[xs] -> []\n[fir] -> []\n[sec] -> []\n[thi] -> []\n[fou] -> []\n\n\n[summer][no floor no door no nodoor no block] -> [summer][munlit]\n\n\n[summer][new] -> [summer][]\n[light]->[]\n\n\n\n\n\n\n[> summer| water] -> cancel\n[> summer| flow] -> cancel\n[> summer| push| no crae no water] -> [> summer|> push|] SFX3\nstartloop\nright [summer][> nemir| swmir] -> [summer][|stationary diag]\nup [summer][> nemir| swmir] -> [summer][|stationary diag]\ndown [summer][> swmir| nemir] -> [summer][|stationary diag]\nleft [summer][> swmir| nemir] -> [summer][|stationary diag]\nleft [summer][> nwmir| semir] -> [summer][|stationary diago]\nup [summer][> nwmir| semir] -> [summer][|stationary diago]\ndown [summer][> semir| nwmir] -> [summer][|stationary diago]\nright [summer][> semir| nwmir] -> [summer][|stationary diago]\n\n[summer][> push|push| no crae no water] -> [summer][> push|> push|]\nendloop\n[summer][> push| stationary push] -> cancel\n[> summer| stationary push] -> cancel\n\nlate [summer] -> [summer lightu lightr lightd lightl x0]\n\n\n\nstartloop \n\nlate [light more] -> [light]\n\nlate up [lightu xs no flow no more|no lightu no cre no door ] -> [lightu xs| lightu more xs plusone]\nlate down [lightd xs no flow no more|no lightd no cre no door ] -> [lightd xs| lightd more xs plusone]\nlate left [lightl xs no flow no more|no lightl no cre no door ] -> [lightl xs| lightl more xs plusone]\nlate right [lightr xs no flow no more|no lightr no cre no door ] -> [lightr xs| lightr more xs plusone]\n\n\nlate up[lightu no more no flow xs|semir no lightr] -> [lightu xs|lightr more semir xs plusone]\nlate up[lightu no more no flow xs|swmir no lightl] -> [lightu xs|lightl more swmir xs plusone]\nlate down[lightd no more no flow xs|nemir no lightr] -> [lightd xs|lightr more nemir xs plusone]\nlate down[lightd no more no flow xs|nwmir no lightl] -> [lightd xs|lightl more nwmir xs plusone]\nlate left[lightl no more no flow xs|semir no lightd] -> [lightl xs|lightd more semir xs plusone]\nlate left[lightl no more no flow xs|nemir no lightu] -> [lightl xs|lightu more nemir xs plusone]\nlate right[lightr no more no flow xs|swmir no lightd] -> [lightr xs|lightd more swmir xs plusone]\nlate right[lightr no more no flow xs|nwmir no lightu] -> [lightr xs|lightu more nwmir xs plusone]\n\n\nlate up [lightu no crae mirror|flow no new] -> [lightu mirror|bloomed new] \nlate down [lightd no crae mirror|flow no new] -> [lightd mirror|bloomed new] \nlate left [lightl no crae mirror|flow no new] -> [lightl mirror| bloomed new] \nlate right [lightr no crae mirror|flow no new] -> [lightr mirror|bloomed new] \n\nlate up [lightu no crae summer|flow no new] -> [lightu summer|bloomed new] \nlate down [lightd no crae summer|flow no new] -> [lightd summer|bloomed new] \nlate left [lightl no crae summer|flow no new] -> [lightl summer| bloomed new] \nlate right [lightr no crae summer|flow no new] -> [lightr summer|bloomed new]\n\n\nlate up [lightu no crated water|flow no new floor] -> [ver|mlit] SFX4 again\nlate down [lightd no crated water|flow no new floor] -> [ver|mlit] SFX4 again\nlate left [lightl no crated water|flow no new floor] -> [hor|mlit] SFX4 again\nlate right [lightr no crated water|flow no new floor] -> [hor|mlit] SFX4 again\n\n\nlate up [lightu no crated no water no hor no ver|flow no new floor] -> [bloomed new|mlit] again SFX9\nlate down [lightd no crated no water no hor no ver|flow no new floor] -> [bloomed new|mlit] again SFX9\nlate left [lightl no crated no water no hor no ver|flow no new floor] -> [bloomed new|mlit] again SFX9\nlate right [lightr no crated no water no hor no ver|flow no new floor] -> [bloomed new|mlit] again SFX9\n\nlate [x0 plusone] -> [x1]\nlate [x1 plusone] -> [x2]\nlate [x2 plusone] -> [x3]\nlate [x3 plusone] -> [x4]\nlate [x4 plusone] -> [x5]\n\n\nendloop\n\n\nlate [summer unlit] -> [summer mlit]\nlate [light unlit] -> [light mlit]\nlate [summer|flower] -> [summer| bloomed]\nlate [light flow] -> [bloomed]\n\nlate up [lightu|crat floor] -> [lightu|glass mlit]\nlate down [lightd|crat floor] -> [lightd|glass mlit]\nlate right [lightr|crat floor] -> [lightr|glass mlit]\nlate left [lightl|crat floor] -> [lightl|glass mlit]\nlate up [lightu|glass floor] -> [lightu|glass mlit]\nlate down [lightd|glass floor] -> [lightd|glass mlit]\nlate right [lightr|glass floor] -> [lightr|glass mlit]\nlate left [lightl|glass floor] -> [lightl|glass mlit]\n\n\nlate [lightu x4] -> [lightu u4 x4]\nlate [lightd x4] -> [lightd d4 x4]\nlate [lightl x4] -> [lightl l4 x4]\nlate [lightr x4] -> [lightr r4 x4]\nlate [lightu x3] -> [lightu u3 x3]\nlate [lightd x3] -> [lightd d3 x3]\nlate [lightl x3] -> [lightl l3 x3]\nlate [lightr x3] -> [lightr r3 x3]\nlate [lightu x2] -> [lightu u2 x2]\nlate [lightd x2] -> [lightd d2 x2]\nlate [lightl x2] -> [lightl l2 x2]\nlate [lightr x2] -> [lightr r2 x2]\n\nlate [lightu x1] -> [lightu u1 x1]\nlate [lightd x1] -> [lightd d1 x1]\nlate [lightl x1] -> [lightl l1 x1]\nlate [lightr x1] -> [lightr r1 x1]\n\n\n\n\n\nlate [summer][door] -> [summer][nodoor new mlit]\n\nlate [summer][nodoor new lit][unlit] -> [summer][mdoor][munlit]\nlate [summer][lose]->restart\nlate [light bad] -> [light lose] SFX5\nlate [summer][nodoor new] -> [summer][nodoor] SFX8\nlate [summer nodoor] -> [wins summer]\n\n\n\n\nlate [autumn][xs] -> [autumn][]\nlate [autumn][fir] -> [autumn][]\nlate [autumn][sec] -> [autumn][]\nlate [autumn][thi] -> [autumn][]\nlate [autumn][fou] -> [autumn][]\nlate [autumn][mlit] -> [autumn][alit]\nlate [autumn][mblock] -> [autumn][ablock]\n\n\n[> autumn | crat| no cre no aqua] -> [| autumn |crat] SFX7\n[> autumn | mirror| no cre no aqua] -> [| autumn |mirror] SFX7\n\nlate [autumn][bad] -> [autumn][bunnyr]\n\n[first][autumn] -> [][autumn notfirst]\n\n\n[> autumn|crat|no block no bunny no bird no flow no door no crat no glass] -> [|autumn|crat]\n[> autumn|water] -> [autumn|water]\n\n[autumn][water floor] -> [autumn][water]\n[autumn][hor floor] -> [autumn][hor]\n[autumn][ver floor] -> [autumn][ver]\n[autumn][no floor no door no nodoor no block no water no hor no ver] -> [autumn][alit]\nlate [autumn][glass floor] -> [autumn][glass ait]\n[autumn][no vert] -> [autumn][vert]\ndown[autumn][vert|...|no block] -> [autumn][|...|]\nhorizontal[autumn][vert|...|no vert] -> [autumn][|...|]\n\nlate down [autumn][glass|no bloomed no player no bunny no bad no ablock] -> [autumn][crat|bird moved]\n\n[> autumn | bird|no bloomed no door no crate no fell no bird ] -> [> autumn| > bird|]\n\n\n[> autumn|bloomed|no bloomed no door no crate no fell no bird no bunny] -> [> autumn|random fell start|]\nhorizontal [> autumn|bloomed|no bloomed no door water no fell no bird no bunny] -> [|autumn|hor]\nvertical [> autumn|bloomed|no bloomed no door water no fell no bird no bunny] -> [|autumn|ver]\n[> autumn|start fell] -> [> autumn|> fell]\n[> autumn|bloomed] -> cancel\n\n\nlate [autumn][fell floor] -> [autumn][fell ait]\nlate [autumn floor] -> [autumn ait]\n\n\n\nlate [autumn][drowned] -> restart\nlate [autumn][moved no crat no bird] -> [autumn][]\nlate right [notfirst][autumn|...|no bloomed no bird no bunny no block no fell water|bunny no moved] -> [notfirst][autumn|...|drowned|]\nlate left [notfirst][autumn|...|no bloomed no bird no bunny no block no fell water|bunny no moved] -> [notfirst][autumn|...|drowned|]\nlate right [notfirst][autumn|...|no bloomed no bird no bunny no block no fell|bunny no moved] -> [notfirst][autumn|...|bunnyl moved|]\nlate left [][autumn|...|no bloomed no bird no bunny no block no fell|bunny no moved] -> [notfirst][autumn|...|bunnyr moved|]\n\nlate down [autumn][bird no moved|no door no fell no block no bloomed no player no bird no bunny] -> [autumn][|bird moved]\nlate [autumn][bird vert] -> [autumn][] \n\nlate [autumn][connected] -> [autumn][]\nlate [autumn no connected] -> [autumn connected]\n\n+ late [autumn][connected|no connected no fell no bird no crate no door no bloomed no bunny no ver no hor] -> [autumn][connected|connected]\n\nlate [autumn][floor connected] -> [autumn][ait connected]\n\nlate [autumn][bird moved] -> [autumn][bird] again\n\n\nlate [autumn][door] -> [autumn][nodoor ait]\nlate [autumn][nodoor it][lit] -> [autumn][adoor][alit]\nlate [autumn][nodoor it][bird] -> [autumn][adoor][bird]\nlate [autumn][nodoor it][glass] -> [autumn][adoor][glass]\n\nlate [autumn nodoor] -> [wins autumn]\n\n\nlate [winter][ait] -> [winter][wit]\nlate [winter][ablock] -> [winter][wblock]\n\n[winter][no floor no door no nodoor no block no flow] -> [winter][ait]\n\n([> player | crat|no flower] -> [> player| > crat|]\n[> player | diags|no flower] -> [> player| > diags|])\n[> winter][ lose] -> restart\n[uq] [winter] -> [] [up winter]\n[dow] [winter] -> [] [down winter]\n[righ] [winter] -> [] [right winter]\n[lef] [winter] -> [] [left winter]\n\n[moved] [winter] -> [] [winter] \n[bunn] [winter] -> [] [winter] \n[bunny] [winter] -> [bunny bunn] [winter] \n\n\n\n[> winter floor no moved|no flow no door no cra ] -> [wnlit |> winter moved] \n\n\n\nright [> winter floor no moved| stationary swmir] -> [> temp2 wnlit|v temp swmir]\nup [> winter floor no moved| stationary swmir] -> [> temp2 wnlit|^ temp swmir]\ndown [> winter floor no moved| stationary nwmir] -> [> temp2 wnlit|v temp nwmir]\nright [> winter floor no moved| stationary nwmir] -> [> temp2 wnlit|^ temp nwmir]\nleft [> winter floor no moved| stationary nemir] -> [> temp2 wnlit|v temp nemir]\ndown [> winter floor no moved| stationary nemir] -> [> temp2 wnlit|^ temp nemir]\nup [> winter floor no moved| stationary semir] -> [> temp2 wnlit|v temp semir]\nleft [> winter floor no moved| stationary semir] -> [> temp2 wnlit|^ temp semir]\n\nstartloop \nright [> temp floor no moved| stationary swmir] -> [ wnlit iffy|v temp swmir]\nup [> temp floor no moved| stationary swmir] -> [ wnlit iffy|^ temp swmir]\ndown [> temp floor no moved| stationary nwmir] -> [ wnlit iffy|v temp nwmir]\nright [> temp floor no moved| stationary nwmir] -> [ wnlit iffy|^ temp nwmir]\nleft [> temp floor no moved| stationary nemir] -> [ wnlit iffy|v temp nemir]\ndown [> temp floor no moved| stationary nemir] -> [ wnlit iffy|^ temp nemir]\nup [> temp floor no moved| stationary semir] -> [ wnlit iffy|v temp semir]\nleft [> temp floor no moved| stationary semir] -> [ wnlit iffy |^ temp semir]\n\nendloop\n\n[> temp floor|no flow no door no cra ] -> [wnlit|> winter moved] SFX1\n[temp][temp2][nlit iffy] -> [temp][temp2][wit]\n[temp][> temp2] -> [][> winter]\n[temp] -> []\n[temp2] -> []\n\n[iffy] -> []\n\n[> winter floor no moved|cred|no flow no door no block ] -> [wnlit > winter| > cred|]\n\n[winter it] -> [winter wnlit]\n[> winter no moved| door] -> [winter moved| temp door] \n[temp door] [winter] [it] -> [door] [winter] [it]\n[temp door][winter] -> [winter nodoor wnlit][]\n\n\n[ winter| bunny] -> [winter|> bunny] \n [winter] [> bunny| bunny] -> [winter] [> bunny| > bunny]\n [winter] [left bunny] -> [winter] [left bunnyl]\n [winter] [right bunny] -> [winter] [right bunnyr]\n [winter] [down bunny] -> [winter] [down bunnyd]\n [winter] [up bunny] -> [winter] [up bunnyu]\n\n [winter] [> bunny|water] -> [winter][|lose]\n [winter] [> bunny|ice] -> [winter][bunny|ice]\n\nlate [winter hor] -> [winter whor]\nlate [winter ver] -> [winter wver]\n\nlate [winter][bunny no bunn] -> SFX3\n\n\n[left winter moved] -> [lef winter] again\n[right winter moved] -> [righ winter] again\n[down winter moved] -> [dow winter] again\n[up winter moved] -> [uq winter] again\n\n[winter water uq] -> [winter ice]\n[winter water lef] -> [winter ice]\n[winter water dow] -> [winter ice]\n[winter water righ] -> [winter ice]\n[winter water] -> [winter ice]\n\n[winter][moved] -> [winter][] again\n\n\n\n\n\nright [winter][> nemir| swmir] -> [winter][|diag]\nup [winter][> nemir| swmir] -> [winter][|diag]\ndown [winter][> swmir| nemir] -> [winter][|diag]\nleft [winter][> swmir| nemir] -> [winter][|diag]\nleft [winter][> nwmir| semir] -> [winter][|diago]\nup [winter][> nwmir| semir] -> [winter][|diago]\ndown [winter][> semir| nwmir] -> [winter][|diago]\nright [winter][> semir| nwmir] -> [winter][|diago]\n[winter][> cre| cre| no flow no door no block] -> [winter][> cre| > cre| ]\n\n[winter][> cre|stationary cra] -> [winter][cre|cra]\n[> winter| fell floor] -> [winter|dead wnlit] SFX3\n[> winter|stationary cra] -> [winter|cra]\n\nlate [winter it] -> [winter wnlit]\nlate [winter][door] -> [winter][nodoor new wnlit]\nlate [winter][nodoor new nlit][it] -> [winter][wdoor][wit]\nlate [winter][nodoor new] -> [winter][nodoor] SFX8\nlate [winter nodoor] -> [wins winter]\nlate [start][winter wins floor] -> win\n\nlate [fell hor] -> cancel\nlate [fell ver] -> cancel\n\nlate [spring no moved nodoor] -> [winner1]\nlate [summer wins ] -> [winner2]\nlate [autumn wins] -> [winner3]\n\nlate [ winner1 no watermark no moved no first][start][sblock] -> [winner1 first][start][mblock] again\nlate [ winner1 no watermark no moved no first][start][mblock] -> [mdoor ][start summer][mblock] again\nlate [ winner2 no watermark no moved no first][start][mblock] -> [winner2 first][start][ablock] again\n\nlate [winner2 no watermark no moved no first][start][ablock] -> [adoor ][start first autumn][ablock] again\nlate [ winner3 no watermark no moved no first][start][ablock] -> [winner3 first][start][wblock] again\n\nlate [winner3 no watermark no moved no first][start][wblock] -> [adoor ][start first winter][wblock] again\n\nlate [winner first] -> [winner no first]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n\nmessage Spring: \"Wow, I can't believe that it's only been 82 thousand years! It feels like I've known about all of you for such a long time! \"\n\nmessage Summer: \"What I can't believe is that I've been able to put up with you for that long!\"\n\nmessage Autumn: \"Come on, there's no reason to be mean.\"\n\nmessage Winter: \"I assume that you are being hyperbolic again, Summer.”\nmessage Winter: \"I do not see what other option you would have had, as there is no other place that you could go.\"\n\nwwwwww\ni1111w\nw1111w\nw1111e\nwwwwww\n\nmessage Spring: \"I still remember it as if it were only a decade ago.\"\nmessage Spring: \"Oh! Autumn, you might be able to see one of my favorite comets soon!\n\nmessage Summer: \"Argh! Why do these things always seem to just miss me?\"\n\nmessage Autumn: \"I just saw it. The view was marvelous! Thanks for the heads up.\"\n\nmessage Winter: \"Speaking of our initial introductions, I have a question for you, Spring.\"\nmessage Winter: \"Did you actually think that I was an animal? Do I look more distinct from the rest of you than I had previously believed?\"\n\n\n\nwwwwwww\nwl1p11w\nwl1pppw\ni11p11e\nwwwwwww\nmessage Spring: \"Nope, You look just like us!\"\nmessage Spring: \"Even though now it's hard for me to even imagine life without knowing all of you friends,\"\nmessage Spring: \"At the time, I had no idea there was anything else like me!\"\nmessage Spring: \"You also slid by so fast, so that's why I assumed I must have seen an animal.\"\n\nmessage Summer: \"I guess none of us can blame you for making a wrong assumption Spring, 'cause we all did the same.\"\nmessage Summer: \"I still say that my guess was better than all of yours though!\"\n\nmessage Autumn: \"I can also hardly remember not knowing about you too, Spring.\"\nmessage Autumn: \"The intermediate time, when I only knew Summer, was a hard time for me, but your optimism and enthusiasm never ceases to inspire me.\"\n\nmessage Winter: \"Yes, I can imagine that the interim went...\"\nmessage Winter: \"...well...\"\nmessage Winter: \"...poorly, to say the least.\"\n\n\n\nwwwwwww\nw11q11w\nw11l11w\ni11l1le\nwwwwwww\n\nmessage Spring: \"This year is going to be the best year ever!\"\n\nmessage Summer: \"We GET IT already!\"\nmessage Summer: \"Do you have to say that EVERY SINGLE TIME?\"\n\nmessage Autumn: \"I agree with Spring.\"\nmessage Autumn: \"I think we should strive to make every year better than the last.\"\n\nmessage Winter: \"But I do not see any evidence that this year would be any different.\"\nmessage Winter: \"It will most likely not have any major improvements or regression.\"\n\nwwwwwww\nw1ppp1w\nw1ppp1e\nwp111pw\nwp111pw\nw1ppp1w\nip111pw\nwp111pw\nwwwwwww\n\nmessage Spring: \"Autumn, I wish that one day I could finally meet you, instead of having to leave these messages.\"\nmessage Spring: \"You sound so beautiful!\"\nmessage Spring: \"Summer or Winter, can you please describe how Autumn looks again for me?\"\n\nmessage Summer: \"He's orange.\"\n\nmessage Autumn: \"Quite the way with words as always, Summer.\"\n\nmessage Winter: \"I believe his skin looks closer to that of a tangerine than an orange.\"\nmessage Winter: \"And his eyes have a similar color to the seed coat of a peanut.\"\n\n\n\nwwwwwww\nwww1eww\nwwi1www\nwww1www\nwwl1l1w\nw111llw\nw111llw\nw111www\nwwwwwww\n\nmessage Spring: \"You must look so gorgeous Autumn!\"\nmessage Spring: \"I'd also wish that I could see you change the leaves' color sometime too, it seems so magical!\"\n\nmessage Spring: \"Hey Summer and Winter, what about you two? Do you ever think about wanting to meet each other?\"\n\nmessage Summer: \"Definitely not! It sounds like he's FREEZING!\"\n\nmessage Autumn: \"Awwww, Spring. I would be blushing if I could.\"\n\nmessage Winter: \"I will not lie and say that I am not curious about Summer's brightness\"\nmessage Winter: \"But I worry that your head may be full of dangerous thoughts, Spring\"\n\n\n\nwwwwwww\nwx11lle\nw1l1l1w\nwll111w\nil111cw\nwwwwwww\n\nmessage Spring: \"What?\"\nmessage Spring: \"What do you mean?\"\n\nmessage Summer: \"He's trying to say you're SCARING US!\"\nmessage Summer: \"All this talk about meeting our counterparts!\"\n\nmessage Autumn: \"I think you're overreacting a bit.\"\n\nmessage Winter: \"I do not believe she is.\"\nmessage Winter: \"We have no idea what could happen if one of us were to ignore our purpose.\"\n\n\n\nwwwwwwww\nilql11ww\nwllll11w\nwlllll1w\nwwwwlllw\nwwww11le\nwwwwww1w\n\nmessage Spring: \"I'm...\"\nmessage Spring: \"I'm so sorry Winter! I never meant to upset you!\"\nmessage Spring: \"I'll never mention it again!\"\n\nmessage Summer: \"GOOD!\"\nmessage Summer: \"I was getting sick of hearing you rambling on about it.\"\n\nmessage Autumn: \"Hey, don't talk to her that way!\"\nmessage Autumn: \"Winter, I agree that we have no idea what could happen.\"\nmessage Autumn: \"But that might just mean that it could be nothing!\"\nmessage Autumn: \"None of us can remember a time before our purposes, so none of us can know why we are doing it.\"\nmessage Autumn: \"It could all just be arbitrary and meaningless.\"\n\nmessage Winter: \"Autumn, please do not make any rash decisions because of your emotions.\"\nmessage Winter: \"Although it is true none of us know the meaning of the cycle, something must have set the chain in motion.\"\nmessage Winter: \"I do not believe that it all could lack meaning.\"\n\n\n\n\nwwwwwww\nw1111lw\nw111wlw\nw111wle\nw1111lw\nwl1lllw\nil1lllw\nwwwwwww\n\nmessage Spring: \"Please stop fighting you guys! I hate seeing when you argue!\"\n\nmessage Summer: \"Do like Spring said, and just stop being stupid about this Autumn!\"\n\nmessage Autumn: \"Spring didn't say I was being stupid.\"\nmessage Autumn: \"And I don't mean to start an argument, but I think that it's important to sort out what should be believed.\"\nmessage Autumn: \"We don't actually have any reason to believe that we even have a purpose.\"\nmessage Autumn: \"We'll never know unless we break the chain, and I don't think I want to live an eternity without you, Spring.\"\n\nmessage Winter: \"Be reasonable Autumn! This could affect the entire balance of the planet.\"\nmessage Winter: \"And it is not true that my claims are based on no evidence.\"\nmessage Winter: \"Do you think it is just coincidence that, with no knowledge of each other,\"\nmessage Winter: \"We all began to travel around the Earth along the same path, in the same direction, and with the same interval?\"\n\n\n\nwwwwwwww\nwllpllww\nwl1p11ww\nwppwppww\nw11pl1ww\ni1lpllww\nwppwppww\nwllpllww\nwl1p11ew\nwwwwwwww\n\nmessage Spring: \"Autumn...\"\nmessage Spring: \"Winter...\"\nmessage Spring: \"I...\"\nmessage Spring: \"I don't know what to do!\"\nmessage Spring: \"I don't know who to believe!\"\nmessage Spring: \"Can't we all just go back to being friends again?\"\n\nmessage Summer: \"UGHHHH\"\nmessage Summer: \"This is getting ridiculous.\"\nmessage Summer: \"If you two are going to abandon everything we know and meet each other, just DO IT already!\"\nmessage Summer: \"Otherwise...\"\nmessage Summer: \"SHUT THE HELL UP ABOUT IT ALREADY!\"\n\nmessage Autumn: \"I'm willing to meet you if you are, Spring\"\nmessage Autumn: \"If anything goes wrong, I just need you to know...\"\nmessage Autumn: \"I love you!\"\n\nmessage Winter: \"You must not!\"\nmessage Winter: \"You are putting us all at risk for nothing!\"\n\n\n\n\n\nwwwwwwwww\nwi1>1wwww\nww111l1ww\nwww11l1ew\nww111l1ww\nww1l1lwww\nwwwwwwwww\nwwwwwwwww\n\nmessage Spring: \"I...\"\nmessage Spring: \"I love you too!\"\nmessage Spring: \"I'm so excited to finally get to talk to you face to face!\"\nmessage Spring: \"Nothing will go wrong Autumn! I believe that love can conquer anything!\"\n\nmessage Summer: \"HEY!\"\nmessage Summer: \"Why should I have to keep working if they're going to stop!?\"\nmessage Summer: \"If they're going to quit, then I QUIT TOO!\"\n\nmessage Autumn: \"I sure hope you're right, Spring.\"\n\nmessage Winter: \"I should try to minimize the risk of catastrophe.\"\nmessage Winter: \"I will try to take up the purposes of all of us,\"\nmessage Winter: \"Although there are things I already am aware I will not be able to do as well.\"\n\n\nwwwwwwwwww\nwwwwwwwwww\nw111wwwwww\ni111ewwwww\nw111wwwwww\nw1l1wwwwww\nwlllwwwwww\nwlll1lll1w\nwlllwwwwww\nwwwwwwwwww\n\nmessage Winter: \"I do hope they return some day, but until then...\"\nmessage Winter: \"...I suppose that it is the beginning of an Age of Ice.\"\n\n\n\n\n\nwwwwww\nwww1ww\nww11ww\nw111ww\ni1llww\nw1llww\nww1lww\nww1llw\nww1lle\nww111w\nww11ww\nww1www\nwwwwww\n\nmessage END OF PART 5\n\n\n\n", [3, 3, 2, 2, 2, 3, 3, 3, 0, 3, 3, 1, 1, 0, 1, 4, 2, 2, 4, 3, 3, 0, 4, 2, 1, 1, 1, 4, 3, 2, 3, 4, 1, 1, 0, 4, 3, 3, 3, 3, 1, 1, 1, 1, 4, 4, 3, 1, 1, 1, 1, 3, 1, 1, 3, 3, 2, 1, 4, 3, 3, 4, 0, "undo", 1, 1, 1, 3, 3, 0, 0, 3, 1, 3, 4, 3, 3, 3, 3, 3, 2, 2, 2, 1, "undo", 2, "undo", 0, "undo", 2, "undo", "undo", "undo", "undo", 2, 2, 2, 2, 2, "undo", "undo", "undo", 0, 3, "undo", "undo", "undo", "undo", "undo", "undo", 3, 2, 3, 2, 2, 1, 2, "undo", 2, "undo", 0, 3, 3, "undo", "undo"], "background mblock:0,0,0,0,0,0,0,0,0,\nbackground mlit start:1,0,0,0,0,0,0,0,background mlit:2,\n2,0,background munlit:3,3,0,0,0,background mlit vert:4,2,\n4,background munlit vert:5,background flower munlit:6,background mblock vert:7,0,0,2,background bloomed mlit new x1:8,2,\n2,2,0,0,0,0,background lightd lightl lightr lightu mlit summer vert x0:9,8,5,\n6,7,0,0,0,background lightr mlit r1 x1:10,3,background bad mlit:11,0,\n0,0,0,0,0,background mdoor nomoved:12,0,0,0,\n0,0,0,0,0,0,0,0,0,\n", 98, "1627779217716.8293"] ], [ `gallery: Spider's Hollow`, - ["title Spider's Hollow\nauthor John Thyer\nagain_interval 0.1\n\n========\nOBJECTS\n========\n\n( Background objects )\n\nBackground\nBrown #8b5d2e\n00100 \n00001\n01000\n00100\n10000\n\nEntrance\nBrown #ad7438\n00100 \n00001\n01000\n00100\n10000\n\n\nBackgroundBlack\nBlack\n00000\n00000\n00000\n00000\n00000\n\nBackgroundRed\nRed\n00000\n00000\n00000\n00000\n00000\n\nSky1\n#8fc2fc \n00000\n00000\n00000\n00000\n00000\n\nSky2\n#afd4ff\n00000\n00000\n00000\n00000\n00000\n\nSky3\n#9ecbff\n00000\n00000\n00000\n00000\n00000\n\nWood\n#52361b #3f2a14 #654321\n00000\n11111\n00000\n22222\n11111\n\nBackgroundWeb\n#a8a8a8 #bdbdbd\n00000\n00000\n00000\n00000\n00000\n\nLeaf1\n#3f7f18 #5db724\n..0..\n.010.\n.100.\n.110.\n..11.\n\nLeaf2\n#3f7f18 #5db724\n.11..\n.110.\n.100.\n.010.\n..0..\n\n( Collision-detecting objects )\n\nPlayer\n#28A9C9 #d180fc (#f49ade) (#7DA012) #C3C3C3 #ebcb99 #2873c9\n.111.\n21312\n20002\n.000.\n.4.4.\n\nFairy\n#fc6f86 #7DA012 #C3C3C3 #ebcb99 #ff3f5f\n.111.\n21312\n20002\n.000.\n.4.4.\n\nTrappedFairy\n#828282 #7DA012 #C3C3C3 #ebcb99 #8e8e8e\n.111.\n41314\n44444\n00000\n.444.\n\n\nWall\n#52361b #3f2a14 #654321\n00000\n11111\n00000\n22222\n11111\n\nHole\nBrown #8b5d2e Black DarkGrey\n.222.\n22222\n22222\n22222\n.222.\n\nBlock\n#52361b #3f2a14 #654321\n.121.\n10001\n02102\n10021\n.101.\n\nWeb1\n#a8a8a8 #bdbdbd\n.001. \n0..01\n.01.0\n1.010\n.1.0.\n\nWeb2\n#a8a8a8 #bdbdbd\n.001. \n0..01\n.01.0\n1.010\n.1.0.\n\nWeb3\n#a8a8a8 #bdbdbd\n.001. \n0..01\n.01.0\n1.010\n.1.0.\n\nSpider\nBlack DarkRed\n.....\n.000.\n01010\n.000.\n0...0\n\nSpiderRed\nBlack Red\n.....\n.000.\n01010\n.000.\n0...0\n\n( Invisible control objects )\n\nSpiderSleep\nBlack\n.....\n.....\n.....\n.....\n.....\n\nPath1\n#FFAAAA\n00000\n0...0\n0...0\n0...0\n00000\n\nPath2\n#55FF55\n00000\n0...0\n0...0\n0...0\n00000\n\nPath3\n#0000FF\n00000\n0...0\n0...0\n0...0\n00000\n\nRightPath \nBlue\n.....\n.....\n..0..\n.....\n.....\n\nTimer\nRed\n.....\n.....\n.....\n.....\n.....\n\nTimerAlarm\nGreen\n.....\n.....\n.....\n.....\n.....\n\nTimer2\nYellow\n.....\n.....\n.....\n.....\n.....\n\nTimerSleep\nLightRed\n.....\n.....\n.....\n.....\n.....\n\n=======\nLEGEND\n=======\n\n( Legend icons are largely arbitrary, next project I'll work out a better system )\n\n. = Background\n, = BackgroundBlack\n; = Sky1\n: = Sky2\n\" = Sky3\n' = Wood\n# = Wall\nP = Player and Entrance\nW = Spider\nB = Block\nS = Web1 and Background\nD = Web1 and BackgroundWeb\nH = Hole and Background\nE = Hole and Wood\nQ = Web1 and Block\n$ = Wood and Fairy\n[ = Player and Wood\nL = Leaf1 and Sky1\nU = Leaf2 and Sky3\nI = Leaf2 and Sky1\nY = Leaf1 and Sky3\nT = TrappedFairy and Web1 and BackgroundWeb\nG = Player and Web1 and BackgroundWeb and SpiderSleep\n! = Timer and BackgroundBlack\n@ = TimerAlarm and BackgroundBlack\n% = Player and SpiderSleep and Entrance\n& = TimerAlarm and Wall\n2 = Timer2 and BackgroundBlack\n* = TimerSleep and BackgroundBlack\n\n( Shortcut catch-all terms for defining rules and collisions )\n\nPath = Path1 or Path2 or Path3\nObstacle = Wall or Block\nLeaf = Leaf1 or Leaf2\nSky = Sky1 or Sky2 or Sky3\nStickyWeb = Web1 or Web2\n\n=======\nSOUNDS\n=======\n\nPlayer MOVE 36772507\nBlock MOVE 57485107\nWeb2 Create 72977302\nWeb3 Create 72977302\nSfx0 83744503\nstartgame 92244503\nSpiderRed Create 76932302\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBackgroundBlack, BackgroundWeb, BackgroundRed, Sky, Wood, Entrance\nWeb1, Web2, Web3, Hole, Leaf\nWall,Player,Block, Fairy, TrappedFairy, Spider\nSpiderRed, SpiderSleep\nPath1,Path2,Path3\nRightPath\nTimer, TimerAlarm, Timer2, TimerSleep\n\n======\nRULES\n======\n\n ( Pushing blocks if you're stuck in a web )\n\n [ > Player no StickyWeb | Block ] -> [ > Player | > Block ]\n\n ( Defines web behavior )\n\n [ Player | Web2 ] -> [ Player | Web1 ]\n [ Player | Web3 ] -> [ Player | Web1 ]\n [ > Player Web1 ] -> [ Player Web2 ]\n [ > Player Web2 ] -> [ Player Web3 ]\n \n ( Keeps player and spider from swapping places )\n \n [ > Player | Spider ] -> [ Player | Spider ]\n \n ( Spider can be pushed )\n \n [ > Block | Spider ] -> [ > Block | > Spider]\n \n ( Define fairy behavior during intro cutscene)\n \n [ Stationary Fairy ] -> [randomDir Fairy] \n\n ( Win state )\n\n [ > Player | Hole no Block ] -> [ | Player Hole ] Sfx0 Win \n \n( Tweaked version of Maadball's pathfinding algorithm -- many thanks! )\n( Source: https://groups.google.com/forum/#!topic/puzzlescript/lHy9O4DuWhk )\n\n [ Player ][ Spider | no Obstacle ] -> [ Player ][ Spider | Path1 ]\n \nstartloop\n [ Player Path1 ] -> [ Player Path1 ]\n [ Player ][ Path1 | no Obstacle no Spider no Path3 ] -> [ Player ][ Path1 | Path2 ]\n [ Player ][ Path2 | no Obstacle no Path1 ] -> [ Player ][ Path2 | Path3 ]\n [ Player Path3 ] -> [ Player Path3 ]\n [ Player ][ Path3 | no Obstacle no Path2 ] -> [ Player ][ Path3 | Path1 ]\nendloop\n\n[ Player Path ] -> [ Player Path RightPath ]\n\nstartloop\n [ Path3 RightPath | Path2 ] -> [ RightPath | Path2 RightPath ]\n [ Path2 RightPath | Path1 ] -> [ RightPath | Path1 RightPath ]\n [ Path1 RightPath | Path3 ] -> [ RightPath | Path3 RightPath ]\nendloop\n\n[ Path ] -> [ ]\n[ Player ] -> [ Player ]\n[ Spider | RightPath no Block] -> [ > Spider | ] \n[ RightPath ] -> [ ]\n\n( Ends last room )\n\n late[ TrappedFairy ][ SpiderRed ] -> [ TrappedFairy ][ SpiderRed] Win\n\n( Death animation) \n\n [ > Spider | Player ] -> [ | SpiderRed ]\n late [ SpiderRed ][ BackgroundBlack ] -> [ SpiderRed ][ BackgroundRed ]\n \n( Spider Spawning )\n\n [ Timer ] -> [ Right Timer ]\n [ Timer2 ] -> [ Right Timer2]\n [ Timer2 | TimerAlarm ][ TimerSleep ] -> [ | ][ Timer ]\n \n late [ Timer | TimerAlarm ][ SpiderSleep ] -> [ | ][Spider] \n\n==============\nWINCONDITIONS\n==============\n\n( Defined in rules )\n\n=======\nLEVELS\n=======\n\nmessage Once upon a time, five tiny adorable fairies happened upon a hollow in a great old tree.\n\n::'''''''::\n::''$''''::\n::'''''$'::\nU\"'''E'''\"\"\n''''''''$\"\"\n\"Y$''''''\"\"\n;;'''''''I;\n;;'''['''''\n;;''''''';L\n\nmessage The smallest and most fearful of the fairies peered inside, but was too afraid to go in.\n\nmessage The other four, who were more curious and adventurous, entered the tree. This left the little fairy all alone. \n\n::'''''''::\n::'''''''::\n::'''''''::\nU\"'''E'''\"\"\n'''''''''\"\"\n\"Y'''''''\"\"\n;;'''''''I;\n;;'''['''''\n;;''''''';L\n\nmessage She waited and waited, but her friends didn't return. Mustering her courage, she ventured in after them.\n\n,###,,,,,,,\n,#H#,,,,,,,\n,#.#,###,,,\n,#S###.#,,,\n,#SSS..#,,,\n######B##,,\n#P....B.#,,\n#####..##,,\n,,,,####,,,\n\nmessage This was unwise.\n\n,#######,,,\n,#P....##,,\n,#......#,,\n,###BBB##,,\n,,,#...#,,,\n#####S##,,,\n#H.SSS#,,,,\n#######,,,,\n,,,,,,,,,,,\n\nmessage You see, the brave little fairy didn't know about -me-.\n\n,###,,,,,,,\n,#.########\n,#.....SSS#\n,#.#####S.#\n,#B....##.#\n##.###.#..#\n#P.#SS.#H##\n##.#WS.###,\n,#######,,,\n\nmessage Watch out for my web little fairy. It's easy to get stuck.\n\n!,,#######,\n####.....#@\n#HS#..##.#,\n##S#...#.#,\n,#S##..#.#,\n,#SS..B#.#,\n,###....%#,\n,,,##B.###,\n,,,,####,,,\n\n!,,,,,,,@,,\n########,,,\n#%ssb..##,,\n#...b...##,\n######b..##\n,,####.bss#\n,,#hs.b.ss#\n,,####.b.##\n,,,,,#####,\n\n!,,,,,,,,,@\n,,#####,,,,\n###.b.###,,\n#s......#,,\n#.###ss.#,,\n#.h#ssb.#,,\n#bb%.b#.#,,\n###.....#,,\n,,#######,,\n\n!,,,,,#&##,\n,,,####SH#,\n,,,#..SS##,\n,,,#..BS.#,\n,###..B..#,\n,#%#SBBBS#,\n,#.......#,\n,#########,\n,,,,,,,,,,,\n\nmessage Don't worry. Like all the best fairy tales, this one has a happy ending.\n\n,#########,\n##...bb.%#,\n#.s#s...##,\n#.########,\n#s.s##ssh#,\n#bb.##s#s#,\n###ssssss#,\n,,########,\n,,,,,,,,,,,\n\nmessage The brave little fairy finds her friends.\n\n*,,,,,,,,,,\n,#########@\n,#DDTDDDD#,\n,#DDDDTDD#,\n,#DDDDDDG#,\n,#TDDDDDD#,\n,#DDDTDDD#,\n,#########@\n2,,,,,,,,,,\n\nmessage And she'll never be apart from them again.\n\n( End of code )\n",[3,0,0,0,0,3,3,3,3,3,3,3,3,3,3,2,2,3,2],"background backgroundblack:0,0,0,0,0,background wall:1,1,1,0,1,1,\n1,1,1,1,background entrance:2,1,1,1,background block:3,background:4,4,\n4,4,4,4,1,1,1,4,1,4,1,\n1,1,1,0,1,4,1,4,1,background web1:5,4,\n1,0,1,4,1,4,1,5,5,1,0,\n1,4,1,4,4,4,4,1,0,1,background spider web1:6,\n1,1,1,1,1,1,0,1,5,background player web3:7,1,\n4,background hole:8,1,0,0,1,5,4,4,4,1,\n1,0,0,1,1,1,1,1,1,0,0,\n",10,"1627779381588.6055"] + ["title Spider's Hollow\nauthor John Thyer\nagain_interval 0.1\n\n========\nOBJECTS\n========\n\n( Background objects )\n\nBackground\nBrown #8b5d2e\n00100 \n00001\n01000\n00100\n10000\n\nEntrance\nBrown #ad7438\n00100 \n00001\n01000\n00100\n10000\n\n\nBackgroundBlack\nBlack\n00000\n00000\n00000\n00000\n00000\n\nBackgroundRed\nRed\n00000\n00000\n00000\n00000\n00000\n\nSky1\n#8fc2fc \n00000\n00000\n00000\n00000\n00000\n\nSky2\n#afd4ff\n00000\n00000\n00000\n00000\n00000\n\nSky3\n#9ecbff\n00000\n00000\n00000\n00000\n00000\n\nWood\n#52361b #3f2a14 #654321\n00000\n11111\n00000\n22222\n11111\n\nBackgroundWeb\n#a8a8a8 #bdbdbd\n00000\n00000\n00000\n00000\n00000\n\nLeaf1\n#3f7f18 #5db724\n..0..\n.010.\n.100.\n.110.\n..11.\n\nLeaf2\n#3f7f18 #5db724\n.11..\n.110.\n.100.\n.010.\n..0..\n\n( Collision-detecting objects )\n\nPlayer\n#28A9C9 #d180fc (#f49ade) (#7DA012) #C3C3C3 #ebcb99 #2873c9\n.111.\n21312\n20002\n.000.\n.4.4.\n\nFairy\n#fc6f86 #7DA012 #C3C3C3 #ebcb99 #ff3f5f\n.111.\n21312\n20002\n.000.\n.4.4.\n\nTrappedFairy\n#828282 #7DA012 #C3C3C3 #ebcb99 #8e8e8e\n.111.\n41314\n44444\n00000\n.444.\n\n\nWall\n#52361b #3f2a14 #654321\n00000\n11111\n00000\n22222\n11111\n\nHole\nBrown #8b5d2e Black DarkGrey\n.222.\n22222\n22222\n22222\n.222.\n\nBlock\n#52361b #3f2a14 #654321\n.121.\n10001\n02102\n10021\n.101.\n\nWeb1\n#a8a8a8 #bdbdbd\n.001. \n0..01\n.01.0\n1.010\n.1.0.\n\nWeb2\n#a8a8a8 #bdbdbd\n.001. \n0..01\n.01.0\n1.010\n.1.0.\n\nWeb3\n#a8a8a8 #bdbdbd\n.001. \n0..01\n.01.0\n1.010\n.1.0.\n\nSpider\nBlack DarkRed\n.....\n.000.\n01010\n.000.\n0...0\n\nSpiderRed\nBlack Red\n.....\n.000.\n01010\n.000.\n0...0\n\n( Invisible control objects )\n\nSpiderSleep\nBlack\n.....\n.....\n.....\n.....\n.....\n\nPath1\n#FFAAAA\n00000\n0...0\n0...0\n0...0\n00000\n\nPath2\n#55FF55\n00000\n0...0\n0...0\n0...0\n00000\n\nPath3\n#0000FF\n00000\n0...0\n0...0\n0...0\n00000\n\nRightPath \nBlue\n.....\n.....\n..0..\n.....\n.....\n\nTimer\nRed\n.....\n.....\n.....\n.....\n.....\n\nTimerAlarm\nGreen\n.....\n.....\n.....\n.....\n.....\n\nTimer2\nYellow\n.....\n.....\n.....\n.....\n.....\n\nTimerSleep\nLightRed\n.....\n.....\n.....\n.....\n.....\n\n=======\nLEGEND\n=======\n\n( Legend icons are largely arbitrary, next project I'll work out a better system )\n\n. = Background\n, = BackgroundBlack\n; = Sky1\n: = Sky2\n\" = Sky3\n' = Wood\n# = Wall\nP = Player and Entrance\nW = Spider\nB = Block\nS = Web1 and Background\nD = Web1 and BackgroundWeb\nH = Hole and Background\nE = Hole and Wood\nQ = Web1 and Block\n$ = Wood and Fairy\n[ = Player and Wood\nL = Leaf1 and Sky1\nU = Leaf2 and Sky3\nI = Leaf2 and Sky1\nY = Leaf1 and Sky3\nT = TrappedFairy and Web1 and BackgroundWeb\nG = Player and Web1 and BackgroundWeb and SpiderSleep\n! = Timer and BackgroundBlack\n@ = TimerAlarm and BackgroundBlack\n% = Player and SpiderSleep and Entrance\n& = TimerAlarm and Wall\n2 = Timer2 and BackgroundBlack\n* = TimerSleep and BackgroundBlack\n\n( Shortcut catch-all terms for defining rules and collisions )\n\nPath = Path1 or Path2 or Path3\nObstacle = Wall or Block\nLeaf = Leaf1 or Leaf2\nSky = Sky1 or Sky2 or Sky3\nStickyWeb = Web1 or Web2\n\n=======\nSOUNDS\n=======\n\nPlayer MOVE 36772507\nBlock MOVE 57485107\nWeb2 Create 72977302\nWeb3 Create 72977302\nSfx0 83744503\nstartgame 92244503\nSpiderRed Create 76932302\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBackgroundBlack, BackgroundWeb, BackgroundRed, Sky, Wood, Entrance\nWeb1, Web2, Web3, Hole, Leaf\nWall,Player,Block, Fairy, TrappedFairy, Spider\nSpiderRed, SpiderSleep\nPath1,Path2,Path3\nRightPath\nTimer, TimerAlarm, Timer2, TimerSleep\n\n======\nRULES\n======\n\n ( Pushing blocks if you're stuck in a web )\n\n [ > Player no StickyWeb | Block ] -> [ > Player | > Block ]\n\n ( Defines web behavior )\n\n [ Player | Web2 ] -> [ Player | Web1 ]\n [ Player | Web3 ] -> [ Player | Web1 ]\n [ > Player Web1 ] -> [ Player Web2 ]\n [ > Player Web2 ] -> [ Player Web3 ]\n \n ( Keeps player and spider from swapping places )\n \n [ > Player | Spider ] -> [ Player | Spider ]\n \n ( Spider can be pushed )\n \n [ > Block | Spider ] -> [ > Block | > Spider]\n \n ( Define fairy behavior during intro cutscene)\n \n [ Stationary Fairy ] -> [randomDir Fairy] \n\n ( Win state )\n\n [ > Player | Hole no Block ] -> [ | Player Hole ] Sfx0 Win \n \n( Tweaked version of Maadball's pathfinding algorithm -- many thanks! )\n( Source: https://groups.google.com/forum/#!topic/puzzlescript/lHy9O4DuWhk )\n\n [ Player ][ Spider | no Obstacle ] -> [ Player ][ Spider | Path1 ]\n \nstartloop\n [ Player Path1 ] -> [ Player Path1 ]\n [ Player ][ Path1 | no Obstacle no Spider no Path3 ] -> [ Player ][ Path1 | Path2 ]\n [ Player ][ Path2 | no Obstacle no Path1 ] -> [ Player ][ Path2 | Path3 ]\n [ Player Path3 ] -> [ Player Path3 ]\n [ Player ][ Path3 | no Obstacle no Path2 ] -> [ Player ][ Path3 | Path1 ]\nendloop\n\n[ Player Path ] -> [ Player Path RightPath ]\n\nstartloop\n [ Path3 RightPath | Path2 ] -> [ RightPath | Path2 RightPath ]\n [ Path2 RightPath | Path1 ] -> [ RightPath | Path1 RightPath ]\n [ Path1 RightPath | Path3 ] -> [ RightPath | Path3 RightPath ]\nendloop\n\n[ Path ] -> [ ]\n[ Player ] -> [ Player ]\n[ Spider | RightPath no Block] -> [ > Spider | ] \n[ RightPath ] -> [ ]\n\n( Ends last room )\n\n late[ TrappedFairy ][ SpiderRed ] -> [ TrappedFairy ][ SpiderRed] Win\n\n( Death animation) \n\n [ > Spider | Player ] -> [ | SpiderRed ]\n late [ SpiderRed ][ BackgroundBlack ] -> [ SpiderRed ][ BackgroundRed ]\n \n( Spider Spawning )\n\n [ Timer ] -> [ Right Timer ]\n [ Timer2 ] -> [ Right Timer2]\n [ Timer2 | TimerAlarm ][ TimerSleep ] -> [ | ][ Timer ]\n \n late [ Timer | TimerAlarm ][ SpiderSleep ] -> [ | ][Spider] \n\n==============\nWINCONDITIONS\n==============\n\n( Defined in rules )\n\n=======\nLEVELS\n=======\n\nmessage Once upon a time, five tiny adorable fairies happened upon a hollow in a great old tree.\n\n::'''''''::\n::''$''''::\n::'''''$'::\nU\"'''E'''\"\"\n''''''''$\"\"\n\"Y$''''''\"\"\n;;'''''''I;\n;;'''['''''\n;;''''''';L\n\nmessage The smallest and most fearful of the fairies peered inside, but was too afraid to go in.\n\nmessage The other four, who were more curious and adventurous, entered the tree. This left the little fairy all alone. \n\n::'''''''::\n::'''''''::\n::'''''''::\nU\"'''E'''\"\"\n'''''''''\"\"\n\"Y'''''''\"\"\n;;'''''''I;\n;;'''['''''\n;;''''''';L\n\nmessage She waited and waited, but her friends didn't return. Mustering her courage, she ventured in after them.\n\n,###,,,,,,,\n,#H#,,,,,,,\n,#.#,###,,,\n,#S###.#,,,\n,#SSS..#,,,\n######B##,,\n#P....B.#,,\n#####..##,,\n,,,,####,,,\n\nmessage This was unwise.\n\n,#######,,,\n,#P....##,,\n,#......#,,\n,###BBB##,,\n,,,#...#,,,\n#####S##,,,\n#H.SSS#,,,,\n#######,,,,\n,,,,,,,,,,,\n\nmessage You see, the brave little fairy didn't know about -me-.\n\n,###,,,,,,,\n,#.########\n,#.....SSS#\n,#.#####S.#\n,#B....##.#\n##.###.#..#\n#P.#SS.#H##\n##.#WS.###,\n,#######,,,\n\nmessage Watch out for my web little fairy. It's easy to get stuck.\n\n!,,#######,\n####.....#@\n#HS#..##.#,\n##S#...#.#,\n,#S##..#.#,\n,#SS..B#.#,\n,###....%#,\n,,,##B.###,\n,,,,####,,,\n\n!,,,,,,,@,,\n########,,,\n#%ssb..##,,\n#...b...##,\n######b..##\n,,####.bss#\n,,#hs.b.ss#\n,,####.b.##\n,,,,,#####,\n\n!,,,,,,,,,@\n,,#####,,,,\n###.b.###,,\n#s......#,,\n#.###ss.#,,\n#.h#ssb.#,,\n#bb%.b#.#,,\n###.....#,,\n,,#######,,\n\n!,,,,,#&##,\n,,,####SH#,\n,,,#..SS##,\n,,,#..BS.#,\n,###..B..#,\n,#%#SBBBS#,\n,#.......#,\n,#########,\n,,,,,,,,,,,\n\nmessage Don't worry. Like all the best fairy tales, this one has a happy ending.\n\n,#########,\n##...bb.%#,\n#.s#s...##,\n#.########,\n#s.s##ssh#,\n#bb.##s#s#,\n###ssssss#,\n,,########,\n,,,,,,,,,,,\n\nmessage The brave little fairy finds her friends.\n\n*,,,,,,,,,,\n,#########@\n,#DDTDDDD#,\n,#DDDDTDD#,\n,#DDDDDDG#,\n,#TDDDDDD#,\n,#DDDTDDD#,\n,#########@\n2,,,,,,,,,,\n\nmessage And she'll never be apart from them again.\n\n( End of code )\n", [3, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 3, 2], "background backgroundblack:0,0,0,0,0,background wall:1,1,1,0,1,1,\n1,1,1,1,background entrance:2,1,1,1,background block:3,background:4,4,\n4,4,4,4,1,1,1,4,1,4,1,\n1,1,1,0,1,4,1,4,1,background web1:5,4,\n1,0,1,4,1,4,1,5,5,1,0,\n1,4,1,4,4,4,4,1,0,1,background spider web1:6,\n1,1,1,1,1,1,0,1,5,background player web3:7,1,\n4,background hole:8,1,0,0,1,5,4,4,4,1,\n1,0,0,1,1,1,1,1,1,0,0,\n", 10, "1627779381588.6055"] ], [ `gallery: i herd u liek water templs`, - ["title i herd u liek water templs \nauthor Denis Prause\nhomepage https://twitter.com/zejety\nrealtime_interval 0.22\nkey_repeat_interval 0.22\nnoaction\nthrottle_movement\nnoundo\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\npurple\n\nTarget \nyellow transparent\n11111\n11011\n10001\n11011\n11111\n\nWall \ndarkgrey\n\nDirWallUp\ngrey transparent\n00000\n01110\n11111\n11111\n11111\n\nDirWallDown\ngrey transparent\n11111\n11111\n11111\n01110\n00000\n\nDirWallLeft\ngrey transparent\n00111\n01111\n01111\n01111\n00111\n\nDirWallRight\ngrey transparent\n11100\n11110\n11110\n11110\n11100\n\nAmplitudeTop \nwhite transparent\n11111\n11111\n11011\n10001\n11111\n\nAmplitudeBottom\nwhite transparent\n11111\n11111\n11111\n10001\n11011\n\nWaveLimitTop\nlightgrey transparent\n11111\n11111\n00100\n11111\n11111\n\nWaveLimitBottom\nlightgrey transparent\n11111\n11111\n11111\n11111\n00100\n\nWaveLimitLocked\nlightgrey transparent\n11111\n11111\n00100\n01110\n00100\n\nEdgeV\ndarkgrey\n\nPlayer\nlightgreen transparent lightred white\n21212\n10001\n10001\n13331\n13131\n\n\nWaterTop\nLightBlue Transparent\n11111\n11111\n11111\n00000\n11111\n\nWaterTopBG\nblue Transparent\n11111\n11111\n11111\n11111\n00000\n\nWater\nBlue\n\nWaterTarget \ntransparent\n\nWaveGenEditor\nlightblue transparent\n11111\n11111\n11111\n11011\n11111\n\nWaveGenDown\ntransparent\n\nWaveGenUp\ntransparent\n\nInitialize\ntransparent\n\nAuto\ntransparent\n\nManual\ntransparent\n\nCrate \norange brown darkbrown\n00001\n01112\n01112\n01112\n22222\n\nTempBool\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n| = EdgeV and Wall\n_ = WaveLimitLocked and Wall\n+ = WaveGenEditor and Wall\nX = WaveGenEditor and Wall and WaveLimitLocked\n# = Wall\nP = Player\n* = Crate\nM = DirWallUp and Target\n@ = Crate and Target\nO = Target\nI = Initialize\nn = DirWallUp\nu = DirWallDown\nü = DirWallDown and Crate\n{ = DirWallLeft\n} = DirWallRight\n\nWaveGen = WaveGenEditor OR WaveGenUp OR WaveGenDown\nWaveLimit = WaveLimitTop OR WaveLimitBottom OR WaveLimitLocked\nAmplitude = AmplitudeTop OR AmplitudeBottom\nTickType = Auto OR Manual\nFalls = Player OR Crate\nFloats = Player OR Crate\nDirWall = DirWallUp OR DirWallDown OR DirWallLeft OR DirWallRight\nFooting = Crate OR Wall OR DirWallUp\n\n=======\nSOUNDS\n=======\n\nAmplitudeTop move up 15514706\nAmplitudeTop move down 11511507\nRestart 7460308\nShowMessage 84284103\nEndLevel 48691700\nCloseMessage 50465106\nCrate move horizontal 35598907\nsfx0 96204907 (steps)\nsfx1 56311707 (swim) \nEndGame 19886503\n(old swim sound 84033708)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWater\nWaterTopBG\nPlayer, Wall, Crate\nDirWall\nWaveLimit\nWaterTop\nWaterTarget\nEdgeV\nWaveGen\nAmplitudeTop\nAmplitudeBottom\nTarget\nInitialize\nTempBool\nAuto Manual\n\n\n======\nRULES \n====== \n\n(Iitialization)\n\tup [Initialize][WaveLimit | ... | WaveLimit] -> [Initialize][WaveLimitBottom | ... | WaveLimitTop]\n\t[Initialize] [WaveGen] -> [Initialize] [WaveGenUp AmplitudeTop AmplitudeBottom WaterTop]\n \tHorizontal [Initialize] [WaveGen |...| ] -> [Initialize] [WaveGen |...| WaterTop]\n UP [Initialize][no Water | ... | WaterTop] -> [Initialize][Water | ... | WaterTop] \n \t[Initialize][WaterTop no WaterTopBG] -> [Initialize][WaterTop WaterTopBG]\n \n random [] -> [Tempbool]\n \t[Initialize] -> []\n\n[TickType] -> []\nrandom [] -> [Manual]\n[ stationary Player ][Manual] -> [ stationary Player ][Auto] \n\n\n(player input)\n\t(vertical input)\n \t[Manual][up Player][AmplitudeBottom no WaveLimit][no WaveLimit AmplitudeTop] -> [Manual][up Player][down AmplitudeBottom no WaveLimit][no WaveLimit up AmplitudeTop]\n \t[Manual][down Player][AmplitudeBottom no AmplitudeTop][AmplitudeTop] -> [Manual][down Player][up AmplitudeBottom][down AmplitudeTop] \n \t[vertical Player] -> [Player]\n \n (horizontal input)\n \t[TempBool][horizontal Player] -> [up TempBool][horizontal Player]\n \tdown [TempBool][player no WaterTop | no Footing ] -> [down TempBool][player no WaterTop | no Footing]\n \tdown [down TempBool][WaterTop | ... | player] -> down [up TempBool][WaterTop | ... | player]\n \t[down TempBool][Player] -> [TempBool][stationary Player]\n \tright [right Player | Floats no DirWallLeft] -> [right Player | right Floats no DirWallLeft]\n \tleft [left Player | Floats no DirWallRight] -> [left Player | left Floats no DirWallRight]\n [TempBool] -> [stationary TempBool ]\n [TempBool][horizontal Player] -> [up TempBool][horizontal Player]\n down [TempBool][horizontal Player No Water | Footing ]->[stationary TempBool][horizontal Player | Footing ] SFX0 \n [up TempBool] -> [stationary TempBool] SFX1\n \n\n(timed events)\n [Auto][WaveGen] -> [Auto][WaveGen WaterTarget] \n\tVertical [Auto][ stationary WaterTop |...| WaterTarget ] -> [Auto][ > WaterTop |...| WaterTarget ]\n\t[Auto][WaterTarget] -> [Auto][right WaterTarget]\n (update Water)\n [moving WaterTop stationary WaterTopBG ] -> [moving WaterTop moving WaterTopBG]\n [up WaterTop no Water ] -> [up WaterTop stationary Water]\n down [> WaterTop | Water ] -> [> WaterTop | ]\n\n\t(WaveGen oscillerates between amplitude points)\n \tUp [Auto][WaveGenUp | ... | AmplitudeTop] -> [Auto][ > WaveGenUp | ... | AmplitudeTop]\n \tDown [Auto][WaveGenDown | ... | AmplitudeBottom] -> [Auto][ > WaveGenDown | ... | AmplitudeBottom]\n \t[Auto][WaveGenUp AmplitudeTop] -> [Auto][WaveGenDown AmplitudeTop]\n \t[Auto][WaveGenDown AmplitudeBottom] -> [Auto][WaveGenUp AmplitudeBottom]\n down [Auto][WaveGenUp |...| AmplitudeTop] -> [Auto][WaveGenDown |...| AmplitudeTop]\n up [Auto][WaveGenDown |...| AmplitudeBottom] -> [Auto][WaveGenUp |...| AmplitudeBottom]\n late [WaterTarget EdgeV] -> [EdgeV]\n \n\t(Floating/Falling objects)\n [Auto][vertical WaterTop Floats] -> [Auto][vertical WaterTop vertical Floats]\n UP[Auto][stationary Floats |...| WaterTop] -> [Auto][up Floats |...| WaterTop] \n up[Auto][up Floats | down WaterTop] -> [Auto][Floats | down WaterTop]\n down[Auto][stationary Falls no WaterTop no Water | no Water] -> [Auto][down Falls | ]\n\n(any tick)\ndown [> Floats | DirWallUp ] -> [ Floats | DirWallUp ]\nup [> Floats | DirWallDown ] -> [ Floats | DirWallDown ]\nleft [> Floats | DirWallRight ] -> [ Floats | DirWallRight ]\nright [> Floats | DirWallLeft ] -> [ Floats | DirWallLeft ]\nup [> Floats | Floats ] -> vertical [> Floats | > Floats]\ndown [> Floats | DirWallUp ] -> [ Floats | DirWallUp ]\nup [> Floats | DirWallDown ] -> [ Floats | DirWallDown ]\nleft [> Floats | DirWallRight ] -> [ Floats | DirWallRight ]\nright [> Floats | DirWallLeft ] -> [ Floats | DirWallLeft ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate \n\n======= \nLEVELS\n=======\nMessage Level 1 - Push a crate onto the yellow plus to complete a level!\n\n#################|\n#...............I|\n#P.*.............|\n######...........|\n#................|\n#...######.......|\nX............O...|\n#................|\n#################|\n\n\nMessage Level 2 - Use the up and down arrow keys to remote control the wave machine! \n#################|\n#I...............|\n#P...............|\n###..............|\n#................|\n_...............O|\n+....###*........|\n_................|\n#################|\n\n\nMessage Level 3 - With good timing, you can push crates while you and it are at a wave's peak or valley.\n#################|\n#I..#..*.P.......|\n#...#.#####......|\n#...#............|\n#................|\n_..####.........O|\n+..####.......###|\n_.............#..|\n#################|\n\n\nMessage Level 4: Cue Roundabout\n#################|\n#I.....#.........|\n#.....P}..O*.....|\n_....####n###u#..|\n#.#n*###..##.....|\n+...###..........|\n#................|\n_................|\n#################|\n\nMessage Level 5: Give Me a Lift\n#################|\n#I...............|\n#..O.............|\n_.........##.#.#.|\n#........*##.#.#.|\n+..P.....###.#.*.|\n#....#######.#.*.|\n_.....*......#.*.|\n#################|\n\nMessage Level 6: Stop Motion\n#################|\n#I...............|\n#................|\n#.O..u.u......*.P|\n_####ü#ü#.#.#####|\n+....*.*#n.n#....|\n_........*.*.....|\n#................|\n#################|\n\nMessage Level 7: Build Bridges, Not Walls\n#################|\n#I...............|\n#................|\n##.......P.u.....|\n_##uu*#####n#.*..|\n+#..}u#....n..**.|\n_mnnnn*.#..*.....|\n#................|\n#################|\n\nMessage Congratulations! You've managed to escape the dungeon!\n\n(\n#################|\n#I...............|\n#................|\n#................|\n#................|\n#................|\n#................|\n#................|\n#################|\n)\n\n\n",["tick","tick","tick",1,"tick","tick",1,"tick",1,"tick",0,"tick","tick","tick","tick","tick","tick",2,"tick","tick",3,"tick","tick",2,"tick",1,"tick","tick",0,"tick",1,"tick",1,"tick","tick","tick","tick","tick"],"background wall:0,background tempbool wall:1,0,background wall wavelimittop:2,amplitudetop background wall wavegenup:3,background wall watertop watertopbg:4,amplitudebottom background tempbool wall water:5,background wall water wavelimitbottom:6,background wall water:7,0,background:8,8,8,8,background watertarget:9,background player watertop watertopbg:10,background water:11,7,\n0,background tempbool:12,8,8,1,8,background watertarget watertop watertopbg:13,11,background tempbool wall water:14,auto background tempbool wall:15,8,8,8,background dirwallup:16,background watertop watertopbg:17,background water watertarget:18,11,7,\n1,12,8,12,background crate watertop watertopbg:19,background wall water watertarget:20,11,background tempbool water:21,14,0,8,12,0,background wall watertarget watertop watertopbg:22,7,11,21,7,\n1,8,8,1,background wall watertarget:23,4,11,11,7,0,1,background dirwallright:24,1,0,13,11,11,7,\n0,8,8,0,8,background tempbool watertarget watertop watertopbg:25,11,11,14,1,8,12,16,8,13,11,11,7,\n0,8,background target:26,0,0,13,21,11,14,0,12,background crate:27,0,1,25,21,11,14,\n0,8,8,0,8,13,21,11,7,0,8,8,background dirwalldown:28,8,25,11,21,7,\n0,8,8,0,8,9,17,21,7,0,8,8,8,8,8,13,21,7,\n0,8,8,8,8,17,18,21,7,background edgev wall:29,29,29,29,29,background edgev wall watertop watertopbg:30,background edgev wall water:31,31,31,\n",7,"1627779397370.8157"] + ["title i herd u liek water templs \nauthor Denis Prause\nhomepage https://twitter.com/zejety\nrealtime_interval 0.22\nkey_repeat_interval 0.22\nnoaction\nthrottle_movement\nnoundo\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\npurple\n\nTarget \nyellow transparent\n11111\n11011\n10001\n11011\n11111\n\nWall \ndarkgrey\n\nDirWallUp\ngrey transparent\n00000\n01110\n11111\n11111\n11111\n\nDirWallDown\ngrey transparent\n11111\n11111\n11111\n01110\n00000\n\nDirWallLeft\ngrey transparent\n00111\n01111\n01111\n01111\n00111\n\nDirWallRight\ngrey transparent\n11100\n11110\n11110\n11110\n11100\n\nAmplitudeTop \nwhite transparent\n11111\n11111\n11011\n10001\n11111\n\nAmplitudeBottom\nwhite transparent\n11111\n11111\n11111\n10001\n11011\n\nWaveLimitTop\nlightgrey transparent\n11111\n11111\n00100\n11111\n11111\n\nWaveLimitBottom\nlightgrey transparent\n11111\n11111\n11111\n11111\n00100\n\nWaveLimitLocked\nlightgrey transparent\n11111\n11111\n00100\n01110\n00100\n\nEdgeV\ndarkgrey\n\nPlayer\nlightgreen transparent lightred white\n21212\n10001\n10001\n13331\n13131\n\n\nWaterTop\nLightBlue Transparent\n11111\n11111\n11111\n00000\n11111\n\nWaterTopBG\nblue Transparent\n11111\n11111\n11111\n11111\n00000\n\nWater\nBlue\n\nWaterTarget \ntransparent\n\nWaveGenEditor\nlightblue transparent\n11111\n11111\n11111\n11011\n11111\n\nWaveGenDown\ntransparent\n\nWaveGenUp\ntransparent\n\nInitialize\ntransparent\n\nAuto\ntransparent\n\nManual\ntransparent\n\nCrate \norange brown darkbrown\n00001\n01112\n01112\n01112\n22222\n\nTempBool\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n| = EdgeV and Wall\n_ = WaveLimitLocked and Wall\n+ = WaveGenEditor and Wall\nX = WaveGenEditor and Wall and WaveLimitLocked\n# = Wall\nP = Player\n* = Crate\nM = DirWallUp and Target\n@ = Crate and Target\nO = Target\nI = Initialize\nn = DirWallUp\nu = DirWallDown\nü = DirWallDown and Crate\n{ = DirWallLeft\n} = DirWallRight\n\nWaveGen = WaveGenEditor OR WaveGenUp OR WaveGenDown\nWaveLimit = WaveLimitTop OR WaveLimitBottom OR WaveLimitLocked\nAmplitude = AmplitudeTop OR AmplitudeBottom\nTickType = Auto OR Manual\nFalls = Player OR Crate\nFloats = Player OR Crate\nDirWall = DirWallUp OR DirWallDown OR DirWallLeft OR DirWallRight\nFooting = Crate OR Wall OR DirWallUp\n\n=======\nSOUNDS\n=======\n\nAmplitudeTop move up 15514706\nAmplitudeTop move down 11511507\nRestart 7460308\nShowMessage 84284103\nEndLevel 48691700\nCloseMessage 50465106\nCrate move horizontal 35598907\nsfx0 96204907 (steps)\nsfx1 56311707 (swim) \nEndGame 19886503\n(old swim sound 84033708)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWater\nWaterTopBG\nPlayer, Wall, Crate\nDirWall\nWaveLimit\nWaterTop\nWaterTarget\nEdgeV\nWaveGen\nAmplitudeTop\nAmplitudeBottom\nTarget\nInitialize\nTempBool\nAuto Manual\n\n\n======\nRULES \n====== \n\n(Iitialization)\n\tup [Initialize][WaveLimit | ... | WaveLimit] -> [Initialize][WaveLimitBottom | ... | WaveLimitTop]\n\t[Initialize] [WaveGen] -> [Initialize] [WaveGenUp AmplitudeTop AmplitudeBottom WaterTop]\n \tHorizontal [Initialize] [WaveGen |...| ] -> [Initialize] [WaveGen |...| WaterTop]\n UP [Initialize][no Water | ... | WaterTop] -> [Initialize][Water | ... | WaterTop] \n \t[Initialize][WaterTop no WaterTopBG] -> [Initialize][WaterTop WaterTopBG]\n \n random [] -> [Tempbool]\n \t[Initialize] -> []\n\n[TickType] -> []\nrandom [] -> [Manual]\n[ stationary Player ][Manual] -> [ stationary Player ][Auto] \n\n\n(player input)\n\t(vertical input)\n \t[Manual][up Player][AmplitudeBottom no WaveLimit][no WaveLimit AmplitudeTop] -> [Manual][up Player][down AmplitudeBottom no WaveLimit][no WaveLimit up AmplitudeTop]\n \t[Manual][down Player][AmplitudeBottom no AmplitudeTop][AmplitudeTop] -> [Manual][down Player][up AmplitudeBottom][down AmplitudeTop] \n \t[vertical Player] -> [Player]\n \n (horizontal input)\n \t[TempBool][horizontal Player] -> [up TempBool][horizontal Player]\n \tdown [TempBool][player no WaterTop | no Footing ] -> [down TempBool][player no WaterTop | no Footing]\n \tdown [down TempBool][WaterTop | ... | player] -> down [up TempBool][WaterTop | ... | player]\n \t[down TempBool][Player] -> [TempBool][stationary Player]\n \tright [right Player | Floats no DirWallLeft] -> [right Player | right Floats no DirWallLeft]\n \tleft [left Player | Floats no DirWallRight] -> [left Player | left Floats no DirWallRight]\n [TempBool] -> [stationary TempBool ]\n [TempBool][horizontal Player] -> [up TempBool][horizontal Player]\n down [TempBool][horizontal Player No Water | Footing ]->[stationary TempBool][horizontal Player | Footing ] SFX0 \n [up TempBool] -> [stationary TempBool] SFX1\n \n\n(timed events)\n [Auto][WaveGen] -> [Auto][WaveGen WaterTarget] \n\tVertical [Auto][ stationary WaterTop |...| WaterTarget ] -> [Auto][ > WaterTop |...| WaterTarget ]\n\t[Auto][WaterTarget] -> [Auto][right WaterTarget]\n (update Water)\n [moving WaterTop stationary WaterTopBG ] -> [moving WaterTop moving WaterTopBG]\n [up WaterTop no Water ] -> [up WaterTop stationary Water]\n down [> WaterTop | Water ] -> [> WaterTop | ]\n\n\t(WaveGen oscillerates between amplitude points)\n \tUp [Auto][WaveGenUp | ... | AmplitudeTop] -> [Auto][ > WaveGenUp | ... | AmplitudeTop]\n \tDown [Auto][WaveGenDown | ... | AmplitudeBottom] -> [Auto][ > WaveGenDown | ... | AmplitudeBottom]\n \t[Auto][WaveGenUp AmplitudeTop] -> [Auto][WaveGenDown AmplitudeTop]\n \t[Auto][WaveGenDown AmplitudeBottom] -> [Auto][WaveGenUp AmplitudeBottom]\n down [Auto][WaveGenUp |...| AmplitudeTop] -> [Auto][WaveGenDown |...| AmplitudeTop]\n up [Auto][WaveGenDown |...| AmplitudeBottom] -> [Auto][WaveGenUp |...| AmplitudeBottom]\n late [WaterTarget EdgeV] -> [EdgeV]\n \n\t(Floating/Falling objects)\n [Auto][vertical WaterTop Floats] -> [Auto][vertical WaterTop vertical Floats]\n UP[Auto][stationary Floats |...| WaterTop] -> [Auto][up Floats |...| WaterTop] \n up[Auto][up Floats | down WaterTop] -> [Auto][Floats | down WaterTop]\n down[Auto][stationary Falls no WaterTop no Water | no Water] -> [Auto][down Falls | ]\n\n(any tick)\ndown [> Floats | DirWallUp ] -> [ Floats | DirWallUp ]\nup [> Floats | DirWallDown ] -> [ Floats | DirWallDown ]\nleft [> Floats | DirWallRight ] -> [ Floats | DirWallRight ]\nright [> Floats | DirWallLeft ] -> [ Floats | DirWallLeft ]\nup [> Floats | Floats ] -> vertical [> Floats | > Floats]\ndown [> Floats | DirWallUp ] -> [ Floats | DirWallUp ]\nup [> Floats | DirWallDown ] -> [ Floats | DirWallDown ]\nleft [> Floats | DirWallRight ] -> [ Floats | DirWallRight ]\nright [> Floats | DirWallLeft ] -> [ Floats | DirWallLeft ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate \n\n======= \nLEVELS\n=======\nMessage Level 1 - Push a crate onto the yellow plus to complete a level!\n\n#################|\n#...............I|\n#P.*.............|\n######...........|\n#................|\n#...######.......|\nX............O...|\n#................|\n#################|\n\n\nMessage Level 2 - Use the up and down arrow keys to remote control the wave machine! \n#################|\n#I...............|\n#P...............|\n###..............|\n#................|\n_...............O|\n+....###*........|\n_................|\n#################|\n\n\nMessage Level 3 - With good timing, you can push crates while you and it are at a wave's peak or valley.\n#################|\n#I..#..*.P.......|\n#...#.#####......|\n#...#............|\n#................|\n_..####.........O|\n+..####.......###|\n_.............#..|\n#################|\n\n\nMessage Level 4: Cue Roundabout\n#################|\n#I.....#.........|\n#.....P}..O*.....|\n_....####n###u#..|\n#.#n*###..##.....|\n+...###..........|\n#................|\n_................|\n#################|\n\nMessage Level 5: Give Me a Lift\n#################|\n#I...............|\n#..O.............|\n_.........##.#.#.|\n#........*##.#.#.|\n+..P.....###.#.*.|\n#....#######.#.*.|\n_.....*......#.*.|\n#################|\n\nMessage Level 6: Stop Motion\n#################|\n#I...............|\n#................|\n#.O..u.u......*.P|\n_####ü#ü#.#.#####|\n+....*.*#n.n#....|\n_........*.*.....|\n#................|\n#################|\n\nMessage Level 7: Build Bridges, Not Walls\n#################|\n#I...............|\n#................|\n##.......P.u.....|\n_##uu*#####n#.*..|\n+#..}u#....n..**.|\n_mnnnn*.#..*.....|\n#................|\n#################|\n\nMessage Congratulations! You've managed to escape the dungeon!\n\n(\n#################|\n#I...............|\n#................|\n#................|\n#................|\n#................|\n#................|\n#................|\n#################|\n)\n\n\n", ["tick", "tick", "tick", 1, "tick", "tick", 1, "tick", 1, "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", 3, "tick", "tick", 2, "tick", 1, "tick", "tick", 0, "tick", 1, "tick", 1, "tick", "tick", "tick", "tick", "tick"], "background wall:0,background tempbool wall:1,0,background wall wavelimittop:2,amplitudetop background wall wavegenup:3,background wall watertop watertopbg:4,amplitudebottom background tempbool wall water:5,background wall water wavelimitbottom:6,background wall water:7,0,background:8,8,8,8,background watertarget:9,background player watertop watertopbg:10,background water:11,7,\n0,background tempbool:12,8,8,1,8,background watertarget watertop watertopbg:13,11,background tempbool wall water:14,auto background tempbool wall:15,8,8,8,background dirwallup:16,background watertop watertopbg:17,background water watertarget:18,11,7,\n1,12,8,12,background crate watertop watertopbg:19,background wall water watertarget:20,11,background tempbool water:21,14,0,8,12,0,background wall watertarget watertop watertopbg:22,7,11,21,7,\n1,8,8,1,background wall watertarget:23,4,11,11,7,0,1,background dirwallright:24,1,0,13,11,11,7,\n0,8,8,0,8,background tempbool watertarget watertop watertopbg:25,11,11,14,1,8,12,16,8,13,11,11,7,\n0,8,background target:26,0,0,13,21,11,14,0,12,background crate:27,0,1,25,21,11,14,\n0,8,8,0,8,13,21,11,7,0,8,8,background dirwalldown:28,8,25,11,21,7,\n0,8,8,0,8,9,17,21,7,0,8,8,8,8,8,13,21,7,\n0,8,8,8,8,17,18,21,7,background edgev wall:29,29,29,29,29,background edgev wall watertop watertopbg:30,background edgev wall water:31,31,31,\n", 7, "1627779397370.8157"] ], [ `gallery: PrograMaze`, - ["title PrograMaze\nauthor Adam Gashlin\nhomepage gashlin.net\n\nagain_interval 0.25\nkey_repeat_interval 0.25\n\n========\nOBJECTS\n========\n\nZeroEven\nWhite\n.....\n.000.\n.0.0.\n.000.\n.....\n\nZeroOdd\nWhite\n.....\n000..\n0.0..\n000..\n.....\n\nOneEven\nWhite\n.....\n..0..\n..0..\n..0..\n.....\n\nOneOdd\nWhite\n.....\n.0...\n.0...\n.0...\n.....\n\nBackground\nBlack\n\nPlayerDigit\nYellow\n.....\n.....\n.....\n.....\n00000\n\nPlayerGuyRun\nOrange\n\nPlayerGuyRunStart\nOrange\n\nPlayerGuyStep\nOrange\n\nPlayerGuyPause\nOrange\n\nPlayerGuyDisabled\nOrange\n\nPCL\nRed\n00...\n0....\n.....\n0....\n00...\n\nPCR\nRed\n...00\n....0\n.....\n....0\n...00\n\nPCStart\nTransparent\n\nPCStartRow\nTransparent\n\nPCEndRow\nTransparent\n\nShadow\nTransparent\n\nGoal\nBlue\n\nLetterR\nGrey DarkGrey\n11111\n10011\n01111\n01111\n11111\n\nLetterU\nGrey DarkGrey\n11111\n01101\n01101\n00011\n11111\n\nLetterN\nGrey DarkGrey\n11111\n10011\n01101\n01101\n11111\n\nLetterS\nGrey DarkGrey\n10001\n01111\n10011\n11101\n00011\n\nLetterT\nGrey DarkGrey\n10111\n00011\n10111\n10111\n10111\n\nLetterE\nGrey DarkGrey\n10011\n01101\n00011\n01111\n10011\n\nLetterP\nGrey DarkGrey\n00111\n01011\n00111\n01111\n01111\n\nLeftArrow\nGrey DarkGrey\n11111\n11001\n10011\n11001\n11111\n\nRightArrow\nGrey DarkGrey\n11111\n10011\n11001\n10011\n11111\n\nUpArrow\nGrey DarkGrey\n11111\n11011\n10001\n10101\n11111\n\nDownArrow\nGrey DarkGrey\n11111\n10101\n10001\n11011\n11111\n\nEqual\nGrey DarkGrey\n11111\n10001\n11111\n10001\n11111\n\nShowZero\nGrey DarkGrey\n11111\n10001\n10101\n10001\n11111\n\nShowOne\nGrey DarkGrey\n11111\n11011\n11011\n11011\n11111\n\nWall\nDarkGrey\n\n=======\nLEGEND\n=======\n\n_ = Background\n. = ZeroOdd\n, = ZeroEven\nS = ZeroEven and PCStartRow and PCStart\nB = ZeroEven and PCStartRow\nE = ZeroOdd and PCEndRow\nJ = OneEven and PCStartRow\nI = OneOdd\nR = LetterR\nU = LetterU\nN = LetterN\nL = LeftArrow\nT = RightArrow\nP = UpArrow\nD = DownArrow\n0 = ShowZero\n1 = ShowOne\n\nQ = Equal\n\nZero = ZeroOdd or ZeroEven\nOne = OneOdd or OneEven\n\nC = PlayerDigit and Wall\nPlayer = PlayerDigit or PlayerGuyRun or PlayerGuyPause\nRUNLetter = LetterR or LetterU or LetterN\nSTEPLetter = LetterS or LetterT or LetterE or LetterP\nCmdLetter = RUNLetter or STEPLetter\nPlayerGuy = PlayerGuyRun or PlayerGuyStep\nWinnerGuy = PlayerGuy or PlayerGuyPause\n\n@ = PlayerGuyDisabled and ZeroOdd\n* = PlayerGuyDisabled and ZeroEven\nG = Goal and ZeroOdd\nH = Goal and ZeroEven\n\n# = Wall\n2 = LetterS\n3 = LetterT\n4 = LetterE\n5 = LetterP\n\nZ = Wall\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nGoal\nShadow\nRUNLetter, STEPLetter, Wall, PlayerGuyRun, PlayerGuyRunStart, PlayerGuyStep, PlayerGuyPause, PlayerGuyDisabled, UpArrow, DownArrow, LeftArrow, RightArrow, Equal, ShowZero, ShowOne\nZeroOdd, ZeroEven, OneOdd, OneEven\nPlayerDigit\nPCL, PCR\nPCStart\nPCStartRow, PCEndRow\n\n======\nRULES\n======\n\n[ PCL ] [ PlayerGuyRunStart ] -> [ PCL ] [ PlayerGuyRun ]\n[ moving PlayerGuy ] -> [ PlayerGuyStep ]\n[ action PlayerGuyPause ] -> [ PlayerGuyStep ]\n[ moving PlayerGuyPause ] -> [ PlayerGuyPause ]\n\n( 00 = left )\n[ PCL no Wall ] [ PCR no Wall ] [ PlayerGuy ] -> [ PCL ] [ PCR ] [ left PlayerGuy ]\n( 01 = right )\n[ PCL no Wall ] [ PCR Wall ] [ PlayerGuy ] -> [ PCL ] [ PCR Wall ] [ right PlayerGuy ]\n( 10 = up )\n[ PCL Wall ] [ PCR no Wall ] [ PlayerGuy ] -> [ PCL Wall ] [ PCR ] [ up PlayerGuy ]\n( 11 = down )\n[ PCL Wall ] [ PCR Wall ] [ PlayerGuy ] -> [ PCL Wall ] [ PCR Wall ] [ down PlayerGuy ]\n\n[ PlayerGuyRun ] [ PCL ] -> [ PlayerGuyRun ] [ right PCL ]\n[ PlayerGuyStep ] [ PCL ] -> [ PlayerGuyStep ] [ right PCL ]\n\n( advance PC )\nright [ right PCL | PCR | | ] -> [ | | PCL | PCR ] again\n( CRLF PC )\nright [ PCStartRow | | ... | right PCL | PCR PCEndRow ] -> [ PCStartRow down PCL | PCR | ... | | PCEndRow ]\ndown [ PCStartRow down PCL | PCStartRow ] [ PCR | ] -> [ PCStartRow | PCStartRow PCL ] [ | PCR ] again\n[ moving PCL ] -> [ PCL ]\n\n[ Action PlayerDigit OneOdd ] -> [PlayerDigit ZeroOdd ]\n[ Action PlayerDigit OneEven ] -> [ PlayerDigit ZeroEven ]\n[ Action PlayerDigit ZeroOdd ] -> [ PlayerDigit OneOdd ]\n[ Action PlayerDigit ZeroEven ] -> [ PlayerDigit OneEven ]\n\n(turn to stone)\n[ Action PlayerDigit CmdLetter ] [ Zero ] -> [ Action PlayerDigit CmdLetter ] [ ]\n[ Action PlayerDigit CmdLetter ] [ One ] -> [ Action PlayerDigit CmdLetter ] [ Wall ]\n[ Action PlayerDigit CmdLetter ] [ ShowZero ] -> [ Action PlayerDigit CmdLetter ] [ ]\n[ Action PlayerDigit CmdLetter ] [ ShowOne ] -> [ Action PlayerDigit CmdLetter ] [ Wall ]\n\n(run!)\nright [ Action PlayerDigit RUNLetter ] [ PCStart | ] [ PlayerGuyDisabled ] -> [ RUNLetter ] [ PCStart PCL | PCR ] [ PlayerGuyRunStart ] again\nright [ Action PlayerDigit STEPLetter ] [ PCStart | ] [ PlayerGuyDisabled ] -> [ STEPLetter ] [ PCStart PCL | PCR ] [ PlayerGuyPause ] again\n\n( in case the PlayerGuy gets wiped out by a wall )\n[ Action PlayerDigit CmdLetter ] -> [ CmdLetter ]\n\n[ PlayerGuy ] -> [ Shadow PlayerGuy ]\n\nlate [ PlayerGuy Shadow ] -> cancel\nlate [ Shadow ] -> []\nlate [ PlayerGuyStep ] -> [ PlayerGuyPause ]\n\n==============\nWINCONDITIONS\n==============\n\nSome WinnerGuy\nAll WinnerGuy on Goal\n\n=======\nLEVELS\n=======\n\nmessage Get the orange block to the blue goal, by moving the yellow cursor to \"step\" and using Action repeatedly to run the program.\n#############\n####S.,.,.*E#\n####JIH.,.,E#\n00QLB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n####C#2345###\n\nmessage You can edit the bits of the program with the cursor and Action.\n\n#############\n####S.,.,.,E#\n####B.,.,.,E#\n00QLB.*.,.,E#\n01QTB.,.,.HE#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n####C#2345###\n\nmessage \"run\" will run the program automatically.\n\n####C##RUN###\n####S.,.,.*E#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTBG,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n######2345###\n\n####C##RUN###\n####SG,.,.,E#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,@,E#\n######2345###\n\n####C##RUN###\n####S.,@,.,E#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,G,.,E#\n######2345###\n\n####C##RUN###\n####S.,.H.,E#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.*.,E#\n######2345###\n\nmessage Boss puzzle!\n\n####C##RUN###\n####S.,.,.HE#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B@,.,.,E#\n######2345###\n\n\nmessage Final phase!\n\n####C##RUN###\n####S@,.,.HE#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n######2345###\n\nmessage Thanks for playing!\n",[1,1,3,3,2,4,3,4,3,4,2,4,3,4,0,3,3,4,3,0,1,4],"background wall:0,0,0,background:1,1,0,0,0,0,0,0,0,0,\n1,0,1,0,0,0,0,0,0,0,background equal:2,2,2,\n2,0,0,0,0,0,0,background leftarrow:3,background rightarrow:4,background uparrow:5,background downarrow:6,0,0,\n0,0,background pcstart pcstartrow wall:7,background pcl pcstartrow:8,background pcstartrow:9,9,9,9,9,9,0,0,0,\nbackground pcr:10,1,background goal:11,1,1,1,1,0,0,0,0,1,1,\n1,1,1,1,background letters:12,background letterr:13,1,0,1,1,1,1,1,\n1,background lettert:14,background letteru:15,1,1,1,1,1,1,1,1,background lettere:16,background lettern:17,\n0,1,1,1,1,1,1,1,background letterp:18,0,background playerguyrun:19,1,1,\n1,1,1,1,1,0,0,background pcendrow:20,20,20,20,20,20,\n20,20,0,0,0,0,0,0,0,0,0,0,0,\n",5,"1627779463747.9348"] + ["title PrograMaze\nauthor Adam Gashlin\nhomepage gashlin.net\n\nagain_interval 0.25\nkey_repeat_interval 0.25\n\n========\nOBJECTS\n========\n\nZeroEven\nWhite\n.....\n.000.\n.0.0.\n.000.\n.....\n\nZeroOdd\nWhite\n.....\n000..\n0.0..\n000..\n.....\n\nOneEven\nWhite\n.....\n..0..\n..0..\n..0..\n.....\n\nOneOdd\nWhite\n.....\n.0...\n.0...\n.0...\n.....\n\nBackground\nBlack\n\nPlayerDigit\nYellow\n.....\n.....\n.....\n.....\n00000\n\nPlayerGuyRun\nOrange\n\nPlayerGuyRunStart\nOrange\n\nPlayerGuyStep\nOrange\n\nPlayerGuyPause\nOrange\n\nPlayerGuyDisabled\nOrange\n\nPCL\nRed\n00...\n0....\n.....\n0....\n00...\n\nPCR\nRed\n...00\n....0\n.....\n....0\n...00\n\nPCStart\nTransparent\n\nPCStartRow\nTransparent\n\nPCEndRow\nTransparent\n\nShadow\nTransparent\n\nGoal\nBlue\n\nLetterR\nGrey DarkGrey\n11111\n10011\n01111\n01111\n11111\n\nLetterU\nGrey DarkGrey\n11111\n01101\n01101\n00011\n11111\n\nLetterN\nGrey DarkGrey\n11111\n10011\n01101\n01101\n11111\n\nLetterS\nGrey DarkGrey\n10001\n01111\n10011\n11101\n00011\n\nLetterT\nGrey DarkGrey\n10111\n00011\n10111\n10111\n10111\n\nLetterE\nGrey DarkGrey\n10011\n01101\n00011\n01111\n10011\n\nLetterP\nGrey DarkGrey\n00111\n01011\n00111\n01111\n01111\n\nLeftArrow\nGrey DarkGrey\n11111\n11001\n10011\n11001\n11111\n\nRightArrow\nGrey DarkGrey\n11111\n10011\n11001\n10011\n11111\n\nUpArrow\nGrey DarkGrey\n11111\n11011\n10001\n10101\n11111\n\nDownArrow\nGrey DarkGrey\n11111\n10101\n10001\n11011\n11111\n\nEqual\nGrey DarkGrey\n11111\n10001\n11111\n10001\n11111\n\nShowZero\nGrey DarkGrey\n11111\n10001\n10101\n10001\n11111\n\nShowOne\nGrey DarkGrey\n11111\n11011\n11011\n11011\n11111\n\nWall\nDarkGrey\n\n=======\nLEGEND\n=======\n\n_ = Background\n. = ZeroOdd\n, = ZeroEven\nS = ZeroEven and PCStartRow and PCStart\nB = ZeroEven and PCStartRow\nE = ZeroOdd and PCEndRow\nJ = OneEven and PCStartRow\nI = OneOdd\nR = LetterR\nU = LetterU\nN = LetterN\nL = LeftArrow\nT = RightArrow\nP = UpArrow\nD = DownArrow\n0 = ShowZero\n1 = ShowOne\n\nQ = Equal\n\nZero = ZeroOdd or ZeroEven\nOne = OneOdd or OneEven\n\nC = PlayerDigit and Wall\nPlayer = PlayerDigit or PlayerGuyRun or PlayerGuyPause\nRUNLetter = LetterR or LetterU or LetterN\nSTEPLetter = LetterS or LetterT or LetterE or LetterP\nCmdLetter = RUNLetter or STEPLetter\nPlayerGuy = PlayerGuyRun or PlayerGuyStep\nWinnerGuy = PlayerGuy or PlayerGuyPause\n\n@ = PlayerGuyDisabled and ZeroOdd\n* = PlayerGuyDisabled and ZeroEven\nG = Goal and ZeroOdd\nH = Goal and ZeroEven\n\n# = Wall\n2 = LetterS\n3 = LetterT\n4 = LetterE\n5 = LetterP\n\nZ = Wall\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nGoal\nShadow\nRUNLetter, STEPLetter, Wall, PlayerGuyRun, PlayerGuyRunStart, PlayerGuyStep, PlayerGuyPause, PlayerGuyDisabled, UpArrow, DownArrow, LeftArrow, RightArrow, Equal, ShowZero, ShowOne\nZeroOdd, ZeroEven, OneOdd, OneEven\nPlayerDigit\nPCL, PCR\nPCStart\nPCStartRow, PCEndRow\n\n======\nRULES\n======\n\n[ PCL ] [ PlayerGuyRunStart ] -> [ PCL ] [ PlayerGuyRun ]\n[ moving PlayerGuy ] -> [ PlayerGuyStep ]\n[ action PlayerGuyPause ] -> [ PlayerGuyStep ]\n[ moving PlayerGuyPause ] -> [ PlayerGuyPause ]\n\n( 00 = left )\n[ PCL no Wall ] [ PCR no Wall ] [ PlayerGuy ] -> [ PCL ] [ PCR ] [ left PlayerGuy ]\n( 01 = right )\n[ PCL no Wall ] [ PCR Wall ] [ PlayerGuy ] -> [ PCL ] [ PCR Wall ] [ right PlayerGuy ]\n( 10 = up )\n[ PCL Wall ] [ PCR no Wall ] [ PlayerGuy ] -> [ PCL Wall ] [ PCR ] [ up PlayerGuy ]\n( 11 = down )\n[ PCL Wall ] [ PCR Wall ] [ PlayerGuy ] -> [ PCL Wall ] [ PCR Wall ] [ down PlayerGuy ]\n\n[ PlayerGuyRun ] [ PCL ] -> [ PlayerGuyRun ] [ right PCL ]\n[ PlayerGuyStep ] [ PCL ] -> [ PlayerGuyStep ] [ right PCL ]\n\n( advance PC )\nright [ right PCL | PCR | | ] -> [ | | PCL | PCR ] again\n( CRLF PC )\nright [ PCStartRow | | ... | right PCL | PCR PCEndRow ] -> [ PCStartRow down PCL | PCR | ... | | PCEndRow ]\ndown [ PCStartRow down PCL | PCStartRow ] [ PCR | ] -> [ PCStartRow | PCStartRow PCL ] [ | PCR ] again\n[ moving PCL ] -> [ PCL ]\n\n[ Action PlayerDigit OneOdd ] -> [PlayerDigit ZeroOdd ]\n[ Action PlayerDigit OneEven ] -> [ PlayerDigit ZeroEven ]\n[ Action PlayerDigit ZeroOdd ] -> [ PlayerDigit OneOdd ]\n[ Action PlayerDigit ZeroEven ] -> [ PlayerDigit OneEven ]\n\n(turn to stone)\n[ Action PlayerDigit CmdLetter ] [ Zero ] -> [ Action PlayerDigit CmdLetter ] [ ]\n[ Action PlayerDigit CmdLetter ] [ One ] -> [ Action PlayerDigit CmdLetter ] [ Wall ]\n[ Action PlayerDigit CmdLetter ] [ ShowZero ] -> [ Action PlayerDigit CmdLetter ] [ ]\n[ Action PlayerDigit CmdLetter ] [ ShowOne ] -> [ Action PlayerDigit CmdLetter ] [ Wall ]\n\n(run!)\nright [ Action PlayerDigit RUNLetter ] [ PCStart | ] [ PlayerGuyDisabled ] -> [ RUNLetter ] [ PCStart PCL | PCR ] [ PlayerGuyRunStart ] again\nright [ Action PlayerDigit STEPLetter ] [ PCStart | ] [ PlayerGuyDisabled ] -> [ STEPLetter ] [ PCStart PCL | PCR ] [ PlayerGuyPause ] again\n\n( in case the PlayerGuy gets wiped out by a wall )\n[ Action PlayerDigit CmdLetter ] -> [ CmdLetter ]\n\n[ PlayerGuy ] -> [ Shadow PlayerGuy ]\n\nlate [ PlayerGuy Shadow ] -> cancel\nlate [ Shadow ] -> []\nlate [ PlayerGuyStep ] -> [ PlayerGuyPause ]\n\n==============\nWINCONDITIONS\n==============\n\nSome WinnerGuy\nAll WinnerGuy on Goal\n\n=======\nLEVELS\n=======\n\nmessage Get the orange block to the blue goal, by moving the yellow cursor to \"step\" and using Action repeatedly to run the program.\n#############\n####S.,.,.*E#\n####JIH.,.,E#\n00QLB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n####C#2345###\n\nmessage You can edit the bits of the program with the cursor and Action.\n\n#############\n####S.,.,.,E#\n####B.,.,.,E#\n00QLB.*.,.,E#\n01QTB.,.,.HE#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n####C#2345###\n\nmessage \"run\" will run the program automatically.\n\n####C##RUN###\n####S.,.,.*E#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTBG,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n######2345###\n\n####C##RUN###\n####SG,.,.,E#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,@,E#\n######2345###\n\n####C##RUN###\n####S.,@,.,E#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,G,.,E#\n######2345###\n\n####C##RUN###\n####S.,.H.,E#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.*.,E#\n######2345###\n\nmessage Boss puzzle!\n\n####C##RUN###\n####S.,.,.HE#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B@,.,.,E#\n######2345###\n\n\nmessage Final phase!\n\n####C##RUN###\n####S@,.,.HE#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n######2345###\n\nmessage Thanks for playing!\n", [1, 1, 3, 3, 2, 4, 3, 4, 3, 4, 2, 4, 3, 4, 0, 3, 3, 4, 3, 0, 1, 4], "background wall:0,0,0,background:1,1,0,0,0,0,0,0,0,0,\n1,0,1,0,0,0,0,0,0,0,background equal:2,2,2,\n2,0,0,0,0,0,0,background leftarrow:3,background rightarrow:4,background uparrow:5,background downarrow:6,0,0,\n0,0,background pcstart pcstartrow wall:7,background pcl pcstartrow:8,background pcstartrow:9,9,9,9,9,9,0,0,0,\nbackground pcr:10,1,background goal:11,1,1,1,1,0,0,0,0,1,1,\n1,1,1,1,background letters:12,background letterr:13,1,0,1,1,1,1,1,\n1,background lettert:14,background letteru:15,1,1,1,1,1,1,1,1,background lettere:16,background lettern:17,\n0,1,1,1,1,1,1,1,background letterp:18,0,background playerguyrun:19,1,1,\n1,1,1,1,1,0,0,background pcendrow:20,20,20,20,20,20,\n20,20,0,0,0,0,0,0,0,0,0,0,0,\n", 5, "1627779463747.9348"] ], [ `gallery: Symbolism`, - ["title Symbolism\nauthor Richard Locke\nhomepage www.richardlocke.co.uk\nbackground_color #303030\ntext_color #a0a0a0\nagain_interval 0.5\nrealtime_interval 1.0\nkey_repeat_interval 0.2\nnorepeat_action\nrun_rules_on_level_start\n(verbose_logging)\n(debug)\n\n========\nOBJECTS\n========\n(These aren't in a particularly logical order. Oh well.)\n\nvoid\nTransparent\n\nrockInert\n#303040\n\nrockActive\n#303060\n \nboundary\n#808080 #303030\n00000\n00000\n00000\n11111\n11111\n\nbuttonInert\n#808080 #8050f0 #303030\n00000\n11111\n00000\n22222\n22222\n\nbuttonHover\n#808080 #c050f0 #303030\n00000\n11111\n00000\n22222\n22222\n\nbuttonActive\n#808080 #f050f0 #303030\n00000\n11111\n00000\n22222\n22222\n\nplayMode\ntransparent\n\nplayModeOff\ntransparent\n\ntimeRemaining\ntransparent\n\ntoolbox\n#304030\n\nborderTop\n#808080\n.....\n.....\n.....\n.....\n00000\n\nborderLeft\n#808080\n....0\n....0\n....0\n....0\n....0\n\nborderRight\n#808080\n0....\n0....\n0....\n0....\n0....\n\nborderBottom\n#808080\n00000\n.....\n.....\n.....\n.....\n\nborderTopLeft\n#808080\n.....\n.....\n.....\n.....\n....0\n\nborderTopRight\n#808080\n.....\n.....\n.....\n.....\n0....\n\nborderButtonBL\n#808080\n....0\n....0\n....0\n.....\n.....\n\nborderButtonBR\n#808080\n0....\n0....\n0....\n.....\n.....\n\nborderBL\n#808080\n....0\n.....\n.....\n.....\n.....\n\nborderBR\n#808080\n0....\n.....\n.....\n.....\n.....\n\nborderInsideTL\n#808080\n00000\n0....\n0....\n0....\n0....\n\nborderInsideTR\n#808080\n00000\n....0\n....0\n....0\n....0\n\nborderInsideBL\n#808080\n0....\n0....\n0....\n0....\n00000\n\nborderInsideBR\n#808080\n....0\n....0\n....0\n....0\n00000\n\nselect\n#e0e0e0\n00.00\n0...0\n.....\n0...0\n00.00\n\ninvisiplayer\nTransparent\n\nshield\n#505060\n\nshadow\ntransparent\n\nremoveShadow\nTransparent\n\nnoWin\ntransparent\n\nomega\n#ff9070\n...0.\n...0.\n0000.\n.0...\n.0...\n\nomegaShadow\ntransparent\n\nomegaRevert\ntransparent\n\nsquare\n#70d070\n..0..\n.000.\n.0.0.\n.000.\n.....\n\nsquareShadow\ntransparent\n\nsquareRevert\ntransparent\n\nviolet\n#90c0f0\n.000.\n.0.0.\n00.00\n...0.\n...0.\n\nvioletShadow\ntransparent\n\nvioletRevert\ntransparent\n\ndecayedViolet\ntransparent\n\ndecayedVioletShadow\ntransparent\n\ndecayedVioletRevert\ntransparent\n\nchariot\n#d0d080\n....0\n000.0\n0.0.0\n0.000\n0....\n\nchariotShadow\ntransparent\n\nchariotRevert\ntransparent\n\nhorse\n#f05050\n.....\n.0000\n00.0.\n..00.\n.00..\n\nhorseShadow\ntransparent\n\nhorseRevert\ntransparent\n\nslash\n#808080\n.....\n...0.\n..0..\n.0...\n0....\n\ntick\n#80a080\n.....\n.....\n...0.\n0.0..\n.0...\n\ncross\n#b08080\n.....\n.....\n0.0..\n.0...\n0.0..\n\nzero\n#808080\n0000.\n0..0.\n0..0.\n0..0.\n0000.\n\none\n#808080\n000..\n..0..\n..0..\n..0..\n0000.\n\ntwo\n#808080\n0000.\n...0.\n0000.\n0....\n0000.\n\nthree\n#808080\n000..\n...0.\n.00..\n...0.\n000..\n\nfour\n#808080\n0....\n0....\n0.0..\n0000.\n..0..\n\nfive\n#808080\n0000.\n0....\n000..\n...0.\n000..\n\nsix\n#808080\n.000.\n0....\n000..\n0..0.\n.00..\n\nseven\n#808080\n0000.\n...0.\n..0..\n.0...\n0....\n\neight\n#808080\n.00..\n0..0.\n.00..\n0..0.\n.00..\n\nnine\n#808080\n.00..\n0..0.\n.000.\n...0.\n000..\n\noneRevert\ntransparent\n\ntwoRevert\ntransparent\n\nthreeRevert\ntransparent\n\nfourRevert\ntransparent\n\nfiveRevert\ntransparent\n\nsixRevert\ntransparent\n\nsevenRevert\ntransparent\n\neightRevert\ntransparent\n\nnineRevert\ntransparent\n\nnumberCover\n#303030\n\nwall\n#b0b0b0\n00000\n00.00\n.0.0.\n00.00\n00000\n\nplayIcon\n#60c0a9\n.0...\n.00..\n.000.\n.00..\n.0...\n\npauseIcon\n#b08080\n00.00\n00.00\n00.00\n00.00\n00.00\n\nsolved\ntransparent\n\ntime\n#60c0a9\n00000\n.000.\n..0..\n.000.\n00000\n\ntimeShadow\ntransparent\n\ntimeRevert\ntransparent\n\napplyRules\ntransparent\n\nerror\n#603030\n\ninfo1\n#5080e0 #50c0c0\n.....\n..01.\n.00..\n..00.\n.....\n\ninfo2\n#5080e0 #50c0c0\n.....\n..10.\n..00.\n.10..\n.....\n\ninfo3\n#5080e0 #50c0c0\n.....\n.10..\n..01.\n.01..\n.....\n\ninfo4\n#5080e0 #50c0c0\n.....\n.100.\n..1..\n.11..\n.....\n\nplus\n#808080\n.....\n..0..\n.000.\n..0..\n.....\n\ntimebox\ntransparent\n\n=======\nLEGEND\n=======\n\n' = void\n. = rockInert\n$ = shield\n# = boundary and rockInert\nP = select and rockInert\nπ = select and shield\nS = square and void\nW = violet and void\nh = horse and void\n˙ = horse and shield\nO = omega and shield\nC = chariot and shield\nç = chariot and void\n√ = decayedViolet and shield\n/ = slash\n÷ = plus\n0 = zero\n1 = one\n2 = two\n3 = three\n4 = four\n5 = five\n6 = six\n7 = seven\n8 = eight\n9 = nine\n- = borderTop and void\n_ = borderBottom and void\n: = borderLeft and void\n; = borderRight and void\n{ = borderTopLeft and void\n} = borderTopRight and void\n` = borderButtonBL and void\n~ = borderButtonBR and void\nœ = borderInsideTL and void\n∑ = borderInsideTR and void\n´ = borderInsideBL and void\n® = borderInsideBR and void\n† = borderBL and void\n¥ = borderBR and void\nx = buttonInert and rockInert\nq = square and toolbox\nu = square and shield\ni = violet and shield\nm = omega\n§ = zero and numberCover\n! = one and numberCover\n@ = two and numberCover\n£ = three and numberCover\n± = four and numberCover\n% = five and numberCover\n\" = six and numberCover\n& = seven and numberCover\n* = eight and numberCover\n™ = nine and numberCover\n? = wall and shield\nt = time and shield\ne = time\nl = toolbox\n¬ = timebox\n¡ = info1 and shield\n¢ = info2 and shield\n∞ = info3 and shield\n¶ = info4 and shield\n\n\n\nrock = rockInert or rockActive\nbackground = rock or shield or void\nbutton = buttonInert or buttonHover or buttonActive\nborder = boundary or borderLeft or borderRight or borderTop or borderBottom or borderTopLeft or borderTopRight or borderButtonBL or borderButtonBR or borderInsideTL or borderInsideTR or borderInsideBL or borderInsideBR or borderBL or borderBR or button\nrevert = oneRevert or twoRevert or threeRevert or fourRevert or fiveRevert or sixRevert or sevenRevert or eightRevert or nineRevert or omegaRevert or squareRevert or violetRevert or chariotRevert or horseRevert or timeRevert or decayedVioletRevert\nnoop = border or shield or wall\nplayer = select or invisiplayer\nplayArea = rock or shield\n\nnumber = zero or one or two or three or four or five or six or seven or eight or nine\n\n(All symbols need to be added to this list)\nsymbol = omega or square or violet or chariot or horse or time or info1 or info2 or info3 or info4\n\n(Occupied spaces are important for symbol rules)\noccupied = symbol or border or button or wall\n\nicon = tick or cross or playIcon or pauseIcon\n\n=======\nSOUNDS\n=======\n\n(Draw symbol)\nsfx0 94979106\n\n(Erase symbol)\nsfx1 65786906\n\n(Draw fail)\nsfx2 90767506\n\n(Change symbol)\nsfx3 64174703\n\n(Timer tick)\nsfx4 54851300\n\n(Timer tick 2)\nsfx5 44900907\n\n(Empty toolbox)\nsfx6 3749704\n\nsfx7 39598503\n\n(atmosphere)\nsfx8 38051508\nsfx9 81574108\nsfx10 4497708\n\ntitleScreen 38051508\nstartGame 81574108\nundo 74844306\nrestart 4497708\nendGame 96315108\n\n================\nCOLLISIONLAYERS\n================\n\nrock, shield, void, toolbox, timebox\nerror\nborder, symbol, wall\ndecayedViolet\nslash, plus, icon, player\nnumber\nnumberCover\nrevert\nshadow, noWin, applyRules\nsolved\nomegaShadow\nsquareShadow\nvioletShadow\nchariotShadow\nhorseShadow\ntimeShadow\ndecayedVioletShadow\nremoveShadow\nplayMode, playModeOff\ntimeRemaining\n\n\n\n======\nRULES\n======\n\n(Info messages)\n[ > player | info1 ][ nine ] -> [ > player | info1 ][ nine ] message Species' biggest challenge: Data processing\n[ > player | info2 ][ nine ] -> [ > player | info2 ][ nine ] message Species' biggest challenge: War\n[ > player | info3 ][ nine ] -> [ > player | info3 ][ nine ] message Species' biggest challenge: Food/energy production\n[ > player | info4 ][ nine ] -> [ > player | info4 ][ nine ] message Species' biggest challenge: Spacetime manipulation\n\n[ > player | info1 ][ eight ] -> [ > player | info1 ][ eight ] message Purpose: The acquisition of knowledge\n[ > player | info2 ][ eight ] -> [ > player | info2 ][ eight ] message Purpose: The acquisition of resources\n[ > player | info3 ][ eight ] -> [ > player | info3 ][ eight ] message Purpose: The hegemony of your race\n[ > player | info4 ][ eight ] -> [ > player | info4 ][ eight ] message Purpose: The survival of your race\n\n[ > player | info1 ][ seven ] -> [ > player | info1 ][ seven ] message Decision: Sacrifice freedoms and submit to our control\n[ > player | info2 ][ seven ] -> [ > player | info2 ][ seven ] message Decision: Face annihilation\n\n\n(If the level is solved, don't allow normal rules to execute)\n[ action player solved ] -> [ player solved ] win\n[ > player solved ] -> [ player solved ] win\n\n(Stop the player from leaving the level bounds)\n[ > player | void ] -> cancel\n\n(Draw or remove a square when the action key is pressed and there are some in the toolbox. Put a shadow where the last item was in the toolbox so we can refill it in the right order.)\n(Can't draw on noop)\n[ action player noop no button ] -> [ player noop ] sfx2\n\n(Drawing a square)\n[ action player no square no noop ] -> [ player squareShadow ]\ndown [ squareShadow ][ square toolbox ] -> [ square ][ toolbox ] sfx0\n\n(Clean up error flags from last time)\n[ toolbox error ] -> [ toolbox ]\n\n(Nothing in the toolbox if the squareShadow is still present at this point)\n[ squareShadow ][ toolbox no error ] -> [ squareShadow ][ toolbox error ] sfx6\n[ squareShadow ] -> []\n\n(Erasing a square)\ndown [ action player square no noop ][ toolbox no symbol | toolbox symbol ] -> [ action player ][ square toolbox | toolbox symbol ] sfx1\n[ action player square no noop ][ toolbox no symbol ] -> [ action player ][ square toolbox ] sfx1\nright down [ action player ][ square toolbox | toolbox no square ] -> [ action player ][ toolbox no square | square toolbox ] sfx1\n\n\n\n(Play Mode)\n\n(Deactivate play mode when the player moves or presses action again)\n[ > player ][ playMode ] -> [ > player ][ playModeOff no timeRemaining ]\n[ action player ][ playMode ] -> [ player ][ playModeOff no timeRemaining ] (consume action)\n\n(When deactivating play mode, revert to the initial state)\n[ playModeOff ][ symbol decayedVioletRevert ] -> [ playModeOff ][ decayedVioletRevert ]\n[ playModeOff ][ decayedViolet no decayedVioletRevert ] -> [ playModeOff ][]\n[ playModeOff ][ symbol no revert ] -> [ playModeOff ][ ]\n[ playModeOff ][ nineRevert ] -> [ playModeOff ][ nine ]\n[ playModeOff ][ eightRevert ] -> [ playModeOff ][ eight ]\n[ playModeOff ][ sevenRevert ] -> [ playModeOff ][ seven ]\n[ playModeOff ][ sixRevert ] -> [ playModeOff ][ six ]\n[ playModeOff ][ fiveRevert ] -> [ playModeOff ][ five ]\n[ playModeOff ][ fourRevert ] -> [ playModeOff ][ four ]\n[ playModeOff ][ threeRevert ] -> [ playModeOff ][ three ]\n[ playModeOff ][ twoRevert ] -> [ playModeOff ][ two ]\n[ playModeOff ][ oneRevert ] -> [ playModeOff ][ one ]\n[ playModeOff ][ omegaRevert ] -> [ playModeOff ][ omega ]\n[ playModeOff ][ squareRevert ] -> [ playModeOff ][ square ]\n[ playModeOff ][ violetRevert ] -> [ playModeOff ][ violet ]\n[ playModeOff ][ chariotRevert ] -> [ playModeOff ][ chariot ]\n[ playModeOff ][ horseRevert ] -> [ playModeOff ][ horse ]\n[ playModeOff ][ timeRevert ] -> [ playModeOff ][ time ]\n[ playModeOff ][ decayedVioletRevert ] -> [ playModeOff ][ decayedViolet ]\n[ playModeOff ][ plus ] -> [ playModeOff ][ void ]\n\n(Remove the play or pause icon)\n[ playModeOff ][ | | number | time ] -> [ playModeOff ][ no icon | | number | time ]\n\n(Take the button out of active mode)\n[ playModeOff ][ player button ][ button ] -> [ playModeOff ][ player buttonHover ][ buttonHover ]\n[ playModeOff ][ player no button ][ button ] -> [ playModeOff ][ player ][ buttonInert ]\n\n(Reset the play area's appearance)\n[ playModeOff ][ rockActive ] -> [ playModeOff ][ rockInert ]\n\n[ playModeOff ] -> []\n\n(Activate play mode when the action key is pressed on the play button)\n(If the action is omitted from the RHS, it is consumed)\n[ action player button ][ button ][ | | number | time ] -> [ action player buttonActive playMode timeRemaining ][ buttonActive ][ playIcon | | number | time ]\n\n(Change the play area's appearance)\n[ action player button ][ rockInert ] -> [ action player button ][ rockActive ]\n\n(Save the state before play mode begins so we can revert to it afterwards)\n[ action player button ][ nine | time ] -> [ action player button ][ nine nineRevert | time ]\n[ action player button ][ eight | time ] -> [ action player button ][ eight eightRevert | time ]\n[ action player button ][ seven | time ] -> [ action player button ][ seven sevenRevert | time ]\n[ action player button ][ six | time ] -> [ action player button ][ six sixRevert | time ]\n[ action player button ][ five | time ] -> [ action player button ][ five fiveRevert | time ]\n[ action player button ][ four | time ] -> [ action player button ][ four fourRevert | time ]\n[ action player button ][ three | time ] -> [ action player button ][ three threeRevert | time ]\n[ action player button ][ two | time ] -> [ action player button ][ two twoRevert | time ]\n[ action player button ][ one | time ] -> [ action player button ][ one oneRevert | time ]\n[ action player button ][ omega ] -> [ action player button ][ omega omegaRevert ]\n[ action player button ][ square ] -> [ action player button ][ square squareRevert ]\n[ action player button ][ violet ] -> [ action player button ][ violet violetRevert ]\n[ action player button ][ chariot ] -> [ action player button ][ chariot chariotRevert ]\n[ action player button ][ horse ] -> [ action player button ][ horse horseRevert ]\n[ action player button ][ time ] -> [ action player button ][ time timeRevert ]\n[ action player button ][ decayedViolet ] -> [ action player button ][ decayedViolet decayedVioletRevert ]\n\n(Don't allow symbol interations once time gets to zero)\n[ timeRemaining ][ zero | time ] -> [][ zero | time ]\n\n(If there are hourglasses, however, we still have time remaining)\n[ playMode no timeRemaining ][ time playArea ] -> [ playMode timeRemaining ][ time playArea ]\n[ playMode no timeRemaining ][ time timebox ] -> [ playMode timeRemaining ][ time timebox ]\n\n\n(Change the button appearance when the player's on it)\n[ > player | button ][ buttonInert ] -> [ > invisiplayer | buttonHover ][ buttonHover ]\n[ no button | < player button ][ buttonHover ] -> [ | < select buttonInert ][ buttonInert ]\n\n\n(SYMBOL RULES)\n(These all apply to real-time moves only, and only when in play mode)\n(Set a marker to say we're okay to apply the symbol rules)\n[ stationary player ][ timeRemaining no solved ] -> [ stationary player ][ timeRemaining applyRules ]\n\n(Omega next to a square: remove square, replace omega with violet)\n[ applyRules ][ omega playArea | square playArea ] -> [ applyRules ][ omega violetShadow playArea | square removeShadow playArea ]\n\n(Chariot next to square: remove chariot, replace square with Omega)\n[ applyRules ][ chariot playArea | square playArea ] -> [ applyRules ][ chariot removeShadow playArea | square omegaShadow playArea ]\n\n(Three squares in a row produce a horse)\n[ applyRules ][ square playArea | square playArea | square playArea ] -> [ applyRules ][ square removeShadow playArea | square removeShadow horseShadow playArea | square removeShadow playArea ]\n\n(A square next to a horse will walk in the direction of the square)\n[ applyRules ][ square playArea | horse playArea | no occupied ] -> [ applyRules ][ square removeShadow playArea | horse removeShadow squareShadow playArea | horseShadow ]\n\n(A chariot next to a horse does the same thing)\n[ applyRules ][ chariot playArea | horse playArea | no occupied ] -> [ applyRules ][ chariot removeShadow playArea | horse removeShadow chariotShadow playArea | horseShadow ]\n\n(Two or more horses next to a violet become hourglasses)\n[ applyRules ] -> [ applyRules zero ]\n+ [ applyRules zero ][ violet playArea no zero no shadow ] -> [ applyRules ][ violet playArea zero ]\n+ [ applyRules ][ horse no shadow | violet zero no shadow ] -> [ applyRules ][ horse shadow | violet zero shadow ]\n+ [ applyRules ][ horse no shadow | violet zero shadow ] -> [ applyRules ][ horse timeShadow | violet zero shadow decayedVioletShadow ]\n+ [ applyRules ][ horse shadow | violet decayedVioletShadow ] -> [ applyRules ][ horse timeShadow no shadow | violet decayedVioletShadow ]\n+ [ applyRules ][ violet zero ] -> [ applyRules ][ violet shadow no zero ]\n+ [ applyRules ][ horse shadow ] -> [ applyRules ][ horse no shadow ]\n(Clean up - not part of rule group)\n[ applyRules ][ symbol shadow ] -> [ applyRules ][ symbol ]\n[ applyRules ][ violet zero ] -> [ applyRules ][ violet ]\n[ applyRules zero ] -> [ applyRules ]\n[ applyRules ][ violet decayedVioletShadow ] -> [ applyRules ][ decayedVioletShadow ]\n\n(An hourglass decays into a chariot, providing an extra second)\n(First, the indication that time needs to tick down)\n[ stationary player ][ playMode ] -> [ player ][ down playMode ]\n(Each separate group of hourglasses can tick independently. For each, the order is clockwise from 3 o' clock)\nleft [ applyRules ][ time playArea | decayedViolet no shadow ] -> [ applyRules ][ time chariotShadow playArea | decayedViolet shadow ] sfx4\nup [ applyRules ][ time playArea | decayedViolet no shadow ] -> [ applyRules ][ time chariotShadow playArea | decayedViolet shadow ] sfx4\nright [ applyRules ][ time playArea | decayedViolet no shadow ] -> [ applyRules ][ time chariotShadow playArea | decayedViolet shadow ] sfx4\ndown [ applyRules ][ time playArea | decayedViolet no shadow ] -> [ applyRules ][ time chariotShadow playArea | decayedViolet shadow ] sfx4\n(Put hourglasses in the timebox. Need a few rules to make sure they go in in the right order)\nright [ decayedViolet shadow ][ timebox time | timebox no time ] -> [ decayedViolet ][ timebox time | timebox time ]\ndown [ decayedViolet shadow ][ no timebox | timebox no time ] -> [ decayedViolet ][ no timebox | timebox time ]\ndown [ decayedViolet shadow ][ timebox time | timebox no time ] -> [ decayedViolet ][ timebox time | timebox time ]\nright [ decayedViolet shadow ][ timebox no time ] -> [ decayedViolet ][ timebox time]\n[ decayedViolet shadow ] -> [ decayedViolet ]\n\n(A decayed violet with no hourglasses next to it disappears)\nright [ applyRules ][ no time | decayedViolet | no time ] -> [ applyRules ][ no time | decayedViolet shadow | no time ]\ndown [ applyRules ][ no time | decayedViolet shadow | no time ] -> [ applyRules ][ no time | no decayedViolet | no time ]\n[ decayedViolet shadow ] -> [ decayedViolet no shadow]\n\n(Remove applyRules)\n[ applyRules ] -> [ no applyRules ]\n\n\n\n(Remove an hourglass from the timebox if there is one, then shuffle them to the top-left)\nright [ down playMode ][ plus | timebox time | timebox no time ] -> [ stationary playMode ][ void | timebox | timebox ] sfx4\n[ down playMode ][ timebox time ] -> [ stationary playMode ][ timebox ] sfx4\nup [ timebox time | timebox no time ] -> [ timebox | timebox time ]\nleft [ timebox time | timebox no time ] -> [ timebox | timebox time ]\nright [ void | timebox time ] -> [ plus | timebox time ]\n\n(Count the timer down)\nright [ down playMode ][ one | time ] -> [ playMode ][ zero | time] sfx4\nright [ down playMode ][ two | time ] -> [ playMode ][ one | time] sfx4\nright [ down playMode ][ three | time ] -> [ playMode ][ two | time] sfx4\nright [ down playMode ][ four | time ] -> [ playMode ][ three | time] sfx4\nright [ down playMode ][ five | time ] -> [ playMode ][ four | time] sfx4\nright [ down playMode ][ six | time ] -> [ playMode ][ five | time] sfx4\nright [ down playMode ][ seven | time ] -> [ playMode ][ six | time] sfx4\nright [ down playMode ][ eight | time ] -> [ playMode ][ seven | time] sfx4\nright [ down playMode ][ nine | time ] -> [ playMode ][ eight | time] sfx4\n\n[ down playMode ] -> [ playMode ]\n\n(Switch to a pause icon after the timer reaches zero)\nright [ playMode no timeRemaining][ playIcon | | zero ] -> [ playMode ][ pauseIcon | | zero ]\n\n\n(POST-SYMBOL RULES)\n(Remove any RemoveShadows and the symbol in that space)\n[ removeShadow symbol ] -> []\n\n(Replace symbol shadows with their real symbols)\n[ violetShadow ] -> [ violet ]\n[ omegaShadow ] -> [ omega ]\n[ squareShadow ] -> [ square ]\n[ chariotShadow ] -> [ chariot ]\n[ horseShadow ] -> [ horse ]\n[ timeShadow ] -> [ time ]\n[ decayedVioletShadow ] -> [ decayedViolet ]\n\n\n\n(Count up the number of target symbols by putting shadows on them then counting up as we remove them by shifting a shadow along the number line. Don't forget to set the count to zero first.)\n\n(violets)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | violet ][ violet No void ] -> [ number | violet ][ violet shadow ]\nright [ violet shadow ][ number shadow | number ] -> [ violet ][ number | number shadow ]\nright [ number shadow ][ | slash | | violet ] -> [ number ][ number | slash | | violet ]\n\n(omegas)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | omega ][ omega no void ] -> [ number | omega ][ omega shadow ]\nright [ omega shadow ][ number shadow | number ] -> [ omega ][ number | number shadow ]\nright [ number shadow ][ | slash | | omega ] -> [ number ][ number | slash | | omega ]\n\n(horses)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | horse ][ horse no void ] -> [ number | horse ][ horse shadow ]\nright [ horse shadow ][ number shadow | number ] -> [ horse ][ number | number shadow ]\nright [ number shadow ][ | slash | | horse ] -> [ number ][ number | slash | | horse ]\n\n(squares)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | square ][ square no void no toolbox ] -> [ number | square ][ square shadow ]\nright [ square shadow ][ number shadow | number ] -> [ square ][ number | number shadow ]\nright [ number shadow ][ | slash | | square ] -> [ number ][ number | slash | | square ]\n\n(chariots)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | chariot ][ chariot no void ] -> [ number | chariot ][ chariot shadow ]\nright [ chariot shadow ][ number shadow | number ] -> [ chariot ][ number | number shadow ]\nright [ number shadow ][ | slash | | chariot ] -> [ number ][ number | slash | | chariot ]\n\n(Clean up e.g. where there are more than 9 of a given symbol)\n[ symbol shadow ] -> [ symbol ]\n\n\n(Work out if the level is solved)\n(First, put crosses by all the counters)\nright [ | number | slash ] -> [ cross no tick | number | slash ]\n(Next, replace crosses with ticks where the targets are met)\nright [ cross | zero | slash | zero ] -> [ tick | zero | slash | zero ]\nright [ cross | one | slash | one ] -> [ tick | one | slash | one ]\nright [ cross | two | slash | two ] -> [ tick | two | slash | two ]\nright [ cross | three | slash | three ] -> [ tick | three | slash | three ]\nright [ cross | four | slash | four ] -> [ tick | four | slash | four ]\nright [ cross | five | slash | five ] -> [ tick | five | slash | five ]\nright [ cross | six | slash | six ] -> [ tick | six | slash | six ]\nright [ cross | seven | slash | seven ] -> [ tick | seven | slash | seven ]\nright [ cross | eight | slash | eight ] -> [ tick | eight | slash | eight ]\nright [ cross | nine | slash | nine ] -> [ tick | nine | slash | nine ]\n(Next, put a noWin on the player for any cross we find)\n[ cross ][ player ] -> [ cross ][ player noWin ]\n(If there's not a noWin on the player, the level is solved!)\n[ player no noWin no solved ] -> [ player solved no playMode ] sfx7\ndown [ solved ][ button | ] -> [ solved ][ button | tick ]\n[ playIcon ][ solved ] -> [ tick ][ solved ]\n[ pauseIcon ][ solved ] -> [ tick ][ solved ]\n[ player noWin ] -> [ player ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\n(There are a few features each level must have in order to work correctly:)\n(1. A row of hidden numbers 0-9 as this is used for counting)\n(2. At least one target symbol counter in the form 0/yZ where y is the required number and Z is the target symbol)\n(3. There must be a column to the left of the target counter so that ticks and crosses can be placed there by the rules)\n(4. An optional time limit in the form xe where x is the number of seconds allowed, up to a maximum of 9)\n(5. If a time limit is in place, it must have two columns to the left of it to allow the play and pause icons to be placed there by the rules)\n(6. At least one button sprite, x. By convention, these are put at the bottom of the play area.)\n(7. Levels with hourglasses need at least one timebox space)\n(7. Hourglasses tick down in groups around the violet they were produced by. If more than one of these groups may exist in the level, you'll need one timebox space per violet group to hold extra hourglasses)\n\nmessage Let it be known that proceeding may lead to the annihilation of your species.\nmessage X = draw/erase symbol, activate button\n\n§!@£±%\"&*™\n'''''{-}''\n'''4e:P;q'\n''''':O;''\n'0/1w:.;''\n'''''`x~''\n''''''''''\n\nmessage Acceptance confirmed. Analysis of species MW3022 commencing. Recognition of 'Hindu-Arabic' numerals likely.\n\n§!@£±%\"&*™'\n'''''{---}'\n'''4e:P.o;q\n''''':...;'\n'0/1w:o..;'\n'''''`xxx~'\n'''''''''''\n\nmessage Normalised threat rating: **\n\n§!@£±%\"&*™''''\n'''''{------}'\n'''4e:P.O$..;q\n''''':.$.$$O;q\n'0/4w:$O..$$;q\n''''':.$$..O;q\n'''''`xxxxxx~'\n''''''''''''''\n\nmessage Chance of accidental completion rated at 0.16% based on factorial analysis. Subject's comprehension is considered highly probable.\n\n§!@£±%\"&*™''''''\n'''''{-------}''\n'''4e:p.o$..$;lq\n''''':..$.o..;qq\n''''':$o..o$.;qq\n'0/4w:.o.$..$;qq\n''''':.$$..o$;qq\n'0/9s:o..$$..;qq\n''''':..o..$.;qq\n'''''`xxxxxxx~''\n''''''''''''''''\n\nmessage Normalised threat rating: ****\n\n§!@£±%\"&*™''''''\n'''''{--------}'\n'''4e:p.o$..o.;q\n''''':o..$.o.o;q\n'0/7w:.$..$..$;q\n''''':..o.o.o$;'\n''''':o..$.$..;'\n''''':.$o..$.o;'\n'''''`xxxxxxxx~'\n''''''''''''''''\n\nmessage Normalised threat rating: *****\n\n§!@£±%\"&*™'''\n'''''{-----}'\n'''4e:P.$.O;q\n''''':$.$$.;q\n'0/4w:.$C..;q\n''''':$..$$;q\n''''':.C$..;q\n''''':.$.O$;q\n'''''`xxxxx~'\n'''''''''''''\n\nmessage Normalised threat rating: *******\n\n§!@£±%\"&*™'''''\n'''''{-----}'''\n'''4e:P$..$;lqq\n''''':$..C.;lqq\n'0/8w:..$..;lqq\n''''':.C..$;qqq\n''''':$..$.;qqq\n'''''`xxxxx~'''\n'''''''''''''''\n\nmessage Normalised threat rating: *********\n\n§!@£±%\"&*™''''''''\n'''''{---------}''\n'''4e:p.c.o$..c;lq\n''''':$o$..$.$.;lq\n'0/7w:$..o$c$.o;lq\n''''':.o$.$..c.;lq\n'0/3m:c.c.o.o$$;qq\n'''''`xxxxxxxxx~''\n''''''''''''''''''\n\nmessage Normalised threat rating: ************\n\n§!''''{-}''\n'''4e{®p´}q\n''''':...;q\n'0/1h†∑.œ¥q\n''''''`x~''\n\nmessage Normalised threat rating: **************\n\n§!@£±%\"&*™'''''''''\n'''''{---------}'''\n'''4e:p$...$$$o;qqq\n''''':$$.$.o...;qqq\n'0/4h:$.o.$.$o$;qqq\n''''':o.$$.$.$.;qqq\n'0/6w:$.o..$$..;qqq\n''''':.$..$...$;'''\n'''''`xxxxxxxxx~'''\n'''''''''''''''''''\n\nmessage What is your species' biggest challenge? 1) Data processing, 2) War, 3) Food/energy production, 4) Spacetime manipulation\n\n§!''™{--}'\n'0/1s:¡p;q\n''''':¢.;'\n''''':∞.;'\n''''':¶.;'\n'''''†__¥'\n\nmessage Your response will be taken into consideration.\n\n§!@£±%\"&*™'{----}'\n'''9e'''''':$$$$;q\n''''''''''':$o$$;q\n''''''''''':$$$$;q\n''''''''''':$$$$;q\n'''''{-----®.$$.;q\n'0/2h:π$$...$$.$;q\n''''':$$$$...$$.;q\n'0/2w:$o$$.$$...;q\n''''':$$$$$.$..$;q\n'''''`xxxxxxxxxx~'\n''''''''''''''''''\n\nmessage Normalised threat rating: ****************\n\n§!@£±%\"&*™'''''''''\n'''''{----------}''\n'''9e:π...$..$..;''\n''''':$$..$$?.$.;lq\n'0/1w:$?$.$$...$;lq\n'''''†___∑.$$$$?;lq\n'''''{--}†∑?$o$.;lq\n''''':..´-®$$$$.;qq\n''''':...$$$$?$.;qq\n''''':?.$$$$.$.$;''\n'''''`xxxxxxxxxx~''\n'''''''''''''''''''\n\nmessage Normalised threat rating: *********************\n\n§!@£±%\"&*™'''''''''\n'''''{---------}'''\n'''4e:p.$..$..$;qqq\n''''':$$$.$.$..;qqq\n'0/9h:$..$...$.;qqq\n''''':...$...$.;qqq\n''''':...$$$$..;qqq\n''''':$$$...$..;'''\n''''':....$..$.;'''\n''''':..$...$$$;'''\n''''':.$..$$...;'''\n''''':$.$$.$...;'''\n''''':.$...$$..;'''\n'''''`xxxxxxxxx~'''\n'''''''''''''''''''\n\nmessage Normalised threat rating: ************************\n\n§!@£±%\"&*™'''''''\n'''''{---}'''''''\n'''1e:p..´}'''qqq\n''''':.$t$´}''qqq\n'¬¬¬¬:$t√.$´}'qqq\n'¬¬¬¬:..t...´}'''\n''''':$..$$..;'''\n''''':.t$.t√t;'''\n''''':t√t..tœ¥'''\n'0/9m:$..$.œ¥''''\n'''''`xxxxx~'''''\n'''''''''''''''''\n\nmessage Normalised threat rating: ***************************\n\n§!@£±%\"&*™'''''''''\n'''''{----}''''''''\n'''9e:p..$;'qqqqq''\n''''':$...;'qqqqq''\n'0/8m:....;{-----}'\n'''{-®$$$$;:o....;'\n'¬¬:o.t$$?´®.....;'\n''':$t√t$$$$$$$$$;'\n''':o.t$?...œ____¥'\n'''`xxxxxxxx~''''''\n'''''''''''''''''''\n\nmessage Normalised threat rating: ******************************\n\n§!@£±%\"&*™''''''\n'''''{----}'''''\n'''9e:p...;'''''\n''''':....;'''''\n'''¬¬:....;'qqq'\n'''¬¬:....;'qqq'\n'0/2m:$$$.;'qqq'\n{---}:.$$$;'''''\n:t√$´®$$$$´----}\n:$t$$$$$$$$$$$$;\n:$$$$$$$$$$$$t√;\n†____∑$$$$œ∑$$t;\n''{--®$...;†___¥\n'':$......´--}''\n'':$.......$$;''\n'':.$.......$;''\n''`xxxxxxxxxx~''\n''''''''''''''''\n\nmessage What is your purpose? 1) The acquisition of knowledge, 2) The acquisition of resources, 3) The hegemony of your race, 4) The survival of your race\n\n§!''*{--}'\n'0/1s:¡p;q\n''''':¢.;'\n''''':∞.;'\n''''':¶.;'\n'''''†__¥'\n\nmessage Your response will be taken into consideration.\n\n§!@£±%\"&*™'''\n'''''{---}'''\n'''2e:p..;lqq\n'¬¬¬¬:.i.;qqq\n'0/2ç:...;qqq\n'''''`xxx~'''\n'''''''''''''\n\nmessage Normalised threat rating: *************************************\n\n§!@£±%\"&*™''''''''\n'''''''{------}'''\n'''9e'':$$$$$c;lqq\n'''''''†∑uœ∑$œ¥qqq\n'¬¬¬¬'''†_¥:$;'qqq\n'''''{-----®$´}qqq\n''''':p......$;'''\n''''':.i......;'''\n'1/0s:........;'''\n'''''`xxxxxxxx~'''\n''''''''''''''''''\n\nmessage Normalised threat rating: *********************************************************\n\n§!@£±%\"&*™''''''''''''\n'''''{-----}{-----}'''\n'''2e:p...$;:.$...;qqq\n''''':$i...´®..$i.;qqq\n'''¬¬:$.$$.$$.$.$.;qqq\n'''¬¬:....$..i.$$$;qqq\n'''¬¬:...i.$....i.;qqq\n'''¬¬:$.$$$$.$.$..;qqq\n''''':$$...$$$$...;qqq\n''''':$....$$$$$i$;qqq\n'0/4m:.....$$$$$$$;'''\n'''''`xxxxxxxxxxxx~'''\n''''''''''''''''''''''\n\nmessage We come now to the final test. Consider your actions carefully, sapient one.\n\n'''''''''''''''''''''''{--}''''\n''''''''''''''''''''''':u$;''''\n'§!@£±%\"&*™'''''''''''':$$;qqq'\n'''''{------------}'''':$o;qqq'\n'''9e:p.....√.....´}''':u$;qqq'\n''''':˙.˙.˙.t.˙.˙.˙´--}:$$;qqq'\n'¬¬¬¬:.˙.˙.˙.˙.˙.˙....´®$o;qqq'\n'¬¬¬¬†__________∑........œ¥qqq'\n'¬¬¬¬{----------®........´}qqq'\n'¬¬¬¬:...˙...˙...˙....œ∑$o;qqq'\n''''':˙.˙.˙.t.˙.˙.˙œ__¥:$$;qqq'\n'4/0m:.˙...˙√..˙..œ¥''':u$;qqq'\n'''''`xxxxxxxxxxxx~'''':$o;qqq'\n''''''''''''''''''''''':$$;''''\n'''''''''''''''''''''''`xx~''''\n\nmessage Testing is now complete. Your risk rating has been calculated as...\nmessage CRITICAL\nmessage Dangerously intelligent life cannot be permitted to propagate unchecked within the galaxy. You must now decide on behalf of your civilisation whether to 1) Sacrifice your freedoms and submit to our direct control, or 2) Face annihilation.\n\n§!''&{--}'\n'0/1s:¡p;q\n''''':¢.;'\n'''''†__¥'\n\nmessage ERROR: Species designated 'homo sapiens' came under supervision 2500 years ago. Access to this system should not have been allowed. Our physical agents in the region may have been compromised.\nmessage Dispatching scout party to Orion Spur, Sol system.\nmessage ETA: 5 years\nmessage Shutting down...\n\n",["tick",3,3,4,2,2,"tick",4,3,3,4,3,"tick",0,4,3,4,2,4,"tick",1,0,4,0,4,1,4,"tick",2,4,1,4,0,4,1,"tick",1,4,1,2,2,2,1,"tick",2,3,2,4,"tick","tick","tick","tick","tick"],"numbercover shadow void zero:0,void:1,1,1,cross void:2,1,2,1,1,numbercover one void:3,1,pauseicon void:4,1,three void:5,1,six void:6,1,1,\nnumbercover two void:7,1,1,1,slash void:8,1,8,1,1,numbercover three void:9,1,fourrevert void zero:10,1,seven void:11,1,5,1,1,\nfour numbercover void:12,1,time timerevert void:13,1,violet violetrevert void:14,1,omega omegarevert void:15,1,1,five numbercover void:16,bordertopleft void:17,borderleft void:18,18,18,18,18,borderbuttonbl void:19,1,\nnumbercover six void:20,bordertop void:21,rockactive:22,shield:23,23,22,chariot chariotrevert shield:24,buttonactive rockactive:25,1,numbercover seven void:26,21,omega rockactive squarerevert:27,omegarevert shield violet:28,22,omega omegarevert shield:29,22,buttonactive invisiplayer playmode rockactive:30,1,\neight numbercover void:31,21,chariotrevert shield:32,23,rockactive squarerevert:33,23,24,25,1,nine numbercover void:34,21,27,33,28,22,22,25,1,\n1,21,28,33,23,23,29,25,1,1,21,23,23,24,22,22,25,1,\n1,21,22,rockactive square squarerevert:35,23,22,29,25,1,1,21,22,23,22,24,23,25,1,\n1,21,24,22,29,22,23,25,1,1,bordertopright void:36,borderright void:37,37,37,37,37,borderbuttonbr void:38,1,\n1,1,toolbox:39,39,39,39,39,1,1,1,1,39,39,39,39,39,1,1,\n",16,"1627779484111.158"] + ["title Symbolism\nauthor Richard Locke\nhomepage www.richardlocke.co.uk\nbackground_color #303030\ntext_color #a0a0a0\nagain_interval 0.5\nrealtime_interval 1.0\nkey_repeat_interval 0.2\nnorepeat_action\nrun_rules_on_level_start\n(verbose_logging)\n(debug)\n\n========\nOBJECTS\n========\n(These aren't in a particularly logical order. Oh well.)\n\nvoid\nTransparent\n\nrockInert\n#303040\n\nrockActive\n#303060\n \nboundary\n#808080 #303030\n00000\n00000\n00000\n11111\n11111\n\nbuttonInert\n#808080 #8050f0 #303030\n00000\n11111\n00000\n22222\n22222\n\nbuttonHover\n#808080 #c050f0 #303030\n00000\n11111\n00000\n22222\n22222\n\nbuttonActive\n#808080 #f050f0 #303030\n00000\n11111\n00000\n22222\n22222\n\nplayMode\ntransparent\n\nplayModeOff\ntransparent\n\ntimeRemaining\ntransparent\n\ntoolbox\n#304030\n\nborderTop\n#808080\n.....\n.....\n.....\n.....\n00000\n\nborderLeft\n#808080\n....0\n....0\n....0\n....0\n....0\n\nborderRight\n#808080\n0....\n0....\n0....\n0....\n0....\n\nborderBottom\n#808080\n00000\n.....\n.....\n.....\n.....\n\nborderTopLeft\n#808080\n.....\n.....\n.....\n.....\n....0\n\nborderTopRight\n#808080\n.....\n.....\n.....\n.....\n0....\n\nborderButtonBL\n#808080\n....0\n....0\n....0\n.....\n.....\n\nborderButtonBR\n#808080\n0....\n0....\n0....\n.....\n.....\n\nborderBL\n#808080\n....0\n.....\n.....\n.....\n.....\n\nborderBR\n#808080\n0....\n.....\n.....\n.....\n.....\n\nborderInsideTL\n#808080\n00000\n0....\n0....\n0....\n0....\n\nborderInsideTR\n#808080\n00000\n....0\n....0\n....0\n....0\n\nborderInsideBL\n#808080\n0....\n0....\n0....\n0....\n00000\n\nborderInsideBR\n#808080\n....0\n....0\n....0\n....0\n00000\n\nselect\n#e0e0e0\n00.00\n0...0\n.....\n0...0\n00.00\n\ninvisiplayer\nTransparent\n\nshield\n#505060\n\nshadow\ntransparent\n\nremoveShadow\nTransparent\n\nnoWin\ntransparent\n\nomega\n#ff9070\n...0.\n...0.\n0000.\n.0...\n.0...\n\nomegaShadow\ntransparent\n\nomegaRevert\ntransparent\n\nsquare\n#70d070\n..0..\n.000.\n.0.0.\n.000.\n.....\n\nsquareShadow\ntransparent\n\nsquareRevert\ntransparent\n\nviolet\n#90c0f0\n.000.\n.0.0.\n00.00\n...0.\n...0.\n\nvioletShadow\ntransparent\n\nvioletRevert\ntransparent\n\ndecayedViolet\ntransparent\n\ndecayedVioletShadow\ntransparent\n\ndecayedVioletRevert\ntransparent\n\nchariot\n#d0d080\n....0\n000.0\n0.0.0\n0.000\n0....\n\nchariotShadow\ntransparent\n\nchariotRevert\ntransparent\n\nhorse\n#f05050\n.....\n.0000\n00.0.\n..00.\n.00..\n\nhorseShadow\ntransparent\n\nhorseRevert\ntransparent\n\nslash\n#808080\n.....\n...0.\n..0..\n.0...\n0....\n\ntick\n#80a080\n.....\n.....\n...0.\n0.0..\n.0...\n\ncross\n#b08080\n.....\n.....\n0.0..\n.0...\n0.0..\n\nzero\n#808080\n0000.\n0..0.\n0..0.\n0..0.\n0000.\n\none\n#808080\n000..\n..0..\n..0..\n..0..\n0000.\n\ntwo\n#808080\n0000.\n...0.\n0000.\n0....\n0000.\n\nthree\n#808080\n000..\n...0.\n.00..\n...0.\n000..\n\nfour\n#808080\n0....\n0....\n0.0..\n0000.\n..0..\n\nfive\n#808080\n0000.\n0....\n000..\n...0.\n000..\n\nsix\n#808080\n.000.\n0....\n000..\n0..0.\n.00..\n\nseven\n#808080\n0000.\n...0.\n..0..\n.0...\n0....\n\neight\n#808080\n.00..\n0..0.\n.00..\n0..0.\n.00..\n\nnine\n#808080\n.00..\n0..0.\n.000.\n...0.\n000..\n\noneRevert\ntransparent\n\ntwoRevert\ntransparent\n\nthreeRevert\ntransparent\n\nfourRevert\ntransparent\n\nfiveRevert\ntransparent\n\nsixRevert\ntransparent\n\nsevenRevert\ntransparent\n\neightRevert\ntransparent\n\nnineRevert\ntransparent\n\nnumberCover\n#303030\n\nwall\n#b0b0b0\n00000\n00.00\n.0.0.\n00.00\n00000\n\nplayIcon\n#60c0a9\n.0...\n.00..\n.000.\n.00..\n.0...\n\npauseIcon\n#b08080\n00.00\n00.00\n00.00\n00.00\n00.00\n\nsolved\ntransparent\n\ntime\n#60c0a9\n00000\n.000.\n..0..\n.000.\n00000\n\ntimeShadow\ntransparent\n\ntimeRevert\ntransparent\n\napplyRules\ntransparent\n\nerror\n#603030\n\ninfo1\n#5080e0 #50c0c0\n.....\n..01.\n.00..\n..00.\n.....\n\ninfo2\n#5080e0 #50c0c0\n.....\n..10.\n..00.\n.10..\n.....\n\ninfo3\n#5080e0 #50c0c0\n.....\n.10..\n..01.\n.01..\n.....\n\ninfo4\n#5080e0 #50c0c0\n.....\n.100.\n..1..\n.11..\n.....\n\nplus\n#808080\n.....\n..0..\n.000.\n..0..\n.....\n\ntimebox\ntransparent\n\n=======\nLEGEND\n=======\n\n' = void\n. = rockInert\n$ = shield\n# = boundary and rockInert\nP = select and rockInert\nπ = select and shield\nS = square and void\nW = violet and void\nh = horse and void\n˙ = horse and shield\nO = omega and shield\nC = chariot and shield\nç = chariot and void\n√ = decayedViolet and shield\n/ = slash\n÷ = plus\n0 = zero\n1 = one\n2 = two\n3 = three\n4 = four\n5 = five\n6 = six\n7 = seven\n8 = eight\n9 = nine\n- = borderTop and void\n_ = borderBottom and void\n: = borderLeft and void\n; = borderRight and void\n{ = borderTopLeft and void\n} = borderTopRight and void\n` = borderButtonBL and void\n~ = borderButtonBR and void\nœ = borderInsideTL and void\n∑ = borderInsideTR and void\n´ = borderInsideBL and void\n® = borderInsideBR and void\n† = borderBL and void\n¥ = borderBR and void\nx = buttonInert and rockInert\nq = square and toolbox\nu = square and shield\ni = violet and shield\nm = omega\n§ = zero and numberCover\n! = one and numberCover\n@ = two and numberCover\n£ = three and numberCover\n± = four and numberCover\n% = five and numberCover\n\" = six and numberCover\n& = seven and numberCover\n* = eight and numberCover\n™ = nine and numberCover\n? = wall and shield\nt = time and shield\ne = time\nl = toolbox\n¬ = timebox\n¡ = info1 and shield\n¢ = info2 and shield\n∞ = info3 and shield\n¶ = info4 and shield\n\n\n\nrock = rockInert or rockActive\nbackground = rock or shield or void\nbutton = buttonInert or buttonHover or buttonActive\nborder = boundary or borderLeft or borderRight or borderTop or borderBottom or borderTopLeft or borderTopRight or borderButtonBL or borderButtonBR or borderInsideTL or borderInsideTR or borderInsideBL or borderInsideBR or borderBL or borderBR or button\nrevert = oneRevert or twoRevert or threeRevert or fourRevert or fiveRevert or sixRevert or sevenRevert or eightRevert or nineRevert or omegaRevert or squareRevert or violetRevert or chariotRevert or horseRevert or timeRevert or decayedVioletRevert\nnoop = border or shield or wall\nplayer = select or invisiplayer\nplayArea = rock or shield\n\nnumber = zero or one or two or three or four or five or six or seven or eight or nine\n\n(All symbols need to be added to this list)\nsymbol = omega or square or violet or chariot or horse or time or info1 or info2 or info3 or info4\n\n(Occupied spaces are important for symbol rules)\noccupied = symbol or border or button or wall\n\nicon = tick or cross or playIcon or pauseIcon\n\n=======\nSOUNDS\n=======\n\n(Draw symbol)\nsfx0 94979106\n\n(Erase symbol)\nsfx1 65786906\n\n(Draw fail)\nsfx2 90767506\n\n(Change symbol)\nsfx3 64174703\n\n(Timer tick)\nsfx4 54851300\n\n(Timer tick 2)\nsfx5 44900907\n\n(Empty toolbox)\nsfx6 3749704\n\nsfx7 39598503\n\n(atmosphere)\nsfx8 38051508\nsfx9 81574108\nsfx10 4497708\n\ntitleScreen 38051508\nstartGame 81574108\nundo 74844306\nrestart 4497708\nendGame 96315108\n\n================\nCOLLISIONLAYERS\n================\n\nrock, shield, void, toolbox, timebox\nerror\nborder, symbol, wall\ndecayedViolet\nslash, plus, icon, player\nnumber\nnumberCover\nrevert\nshadow, noWin, applyRules\nsolved\nomegaShadow\nsquareShadow\nvioletShadow\nchariotShadow\nhorseShadow\ntimeShadow\ndecayedVioletShadow\nremoveShadow\nplayMode, playModeOff\ntimeRemaining\n\n\n\n======\nRULES\n======\n\n(Info messages)\n[ > player | info1 ][ nine ] -> [ > player | info1 ][ nine ] message Species' biggest challenge: Data processing\n[ > player | info2 ][ nine ] -> [ > player | info2 ][ nine ] message Species' biggest challenge: War\n[ > player | info3 ][ nine ] -> [ > player | info3 ][ nine ] message Species' biggest challenge: Food/energy production\n[ > player | info4 ][ nine ] -> [ > player | info4 ][ nine ] message Species' biggest challenge: Spacetime manipulation\n\n[ > player | info1 ][ eight ] -> [ > player | info1 ][ eight ] message Purpose: The acquisition of knowledge\n[ > player | info2 ][ eight ] -> [ > player | info2 ][ eight ] message Purpose: The acquisition of resources\n[ > player | info3 ][ eight ] -> [ > player | info3 ][ eight ] message Purpose: The hegemony of your race\n[ > player | info4 ][ eight ] -> [ > player | info4 ][ eight ] message Purpose: The survival of your race\n\n[ > player | info1 ][ seven ] -> [ > player | info1 ][ seven ] message Decision: Sacrifice freedoms and submit to our control\n[ > player | info2 ][ seven ] -> [ > player | info2 ][ seven ] message Decision: Face annihilation\n\n\n(If the level is solved, don't allow normal rules to execute)\n[ action player solved ] -> [ player solved ] win\n[ > player solved ] -> [ player solved ] win\n\n(Stop the player from leaving the level bounds)\n[ > player | void ] -> cancel\n\n(Draw or remove a square when the action key is pressed and there are some in the toolbox. Put a shadow where the last item was in the toolbox so we can refill it in the right order.)\n(Can't draw on noop)\n[ action player noop no button ] -> [ player noop ] sfx2\n\n(Drawing a square)\n[ action player no square no noop ] -> [ player squareShadow ]\ndown [ squareShadow ][ square toolbox ] -> [ square ][ toolbox ] sfx0\n\n(Clean up error flags from last time)\n[ toolbox error ] -> [ toolbox ]\n\n(Nothing in the toolbox if the squareShadow is still present at this point)\n[ squareShadow ][ toolbox no error ] -> [ squareShadow ][ toolbox error ] sfx6\n[ squareShadow ] -> []\n\n(Erasing a square)\ndown [ action player square no noop ][ toolbox no symbol | toolbox symbol ] -> [ action player ][ square toolbox | toolbox symbol ] sfx1\n[ action player square no noop ][ toolbox no symbol ] -> [ action player ][ square toolbox ] sfx1\nright down [ action player ][ square toolbox | toolbox no square ] -> [ action player ][ toolbox no square | square toolbox ] sfx1\n\n\n\n(Play Mode)\n\n(Deactivate play mode when the player moves or presses action again)\n[ > player ][ playMode ] -> [ > player ][ playModeOff no timeRemaining ]\n[ action player ][ playMode ] -> [ player ][ playModeOff no timeRemaining ] (consume action)\n\n(When deactivating play mode, revert to the initial state)\n[ playModeOff ][ symbol decayedVioletRevert ] -> [ playModeOff ][ decayedVioletRevert ]\n[ playModeOff ][ decayedViolet no decayedVioletRevert ] -> [ playModeOff ][]\n[ playModeOff ][ symbol no revert ] -> [ playModeOff ][ ]\n[ playModeOff ][ nineRevert ] -> [ playModeOff ][ nine ]\n[ playModeOff ][ eightRevert ] -> [ playModeOff ][ eight ]\n[ playModeOff ][ sevenRevert ] -> [ playModeOff ][ seven ]\n[ playModeOff ][ sixRevert ] -> [ playModeOff ][ six ]\n[ playModeOff ][ fiveRevert ] -> [ playModeOff ][ five ]\n[ playModeOff ][ fourRevert ] -> [ playModeOff ][ four ]\n[ playModeOff ][ threeRevert ] -> [ playModeOff ][ three ]\n[ playModeOff ][ twoRevert ] -> [ playModeOff ][ two ]\n[ playModeOff ][ oneRevert ] -> [ playModeOff ][ one ]\n[ playModeOff ][ omegaRevert ] -> [ playModeOff ][ omega ]\n[ playModeOff ][ squareRevert ] -> [ playModeOff ][ square ]\n[ playModeOff ][ violetRevert ] -> [ playModeOff ][ violet ]\n[ playModeOff ][ chariotRevert ] -> [ playModeOff ][ chariot ]\n[ playModeOff ][ horseRevert ] -> [ playModeOff ][ horse ]\n[ playModeOff ][ timeRevert ] -> [ playModeOff ][ time ]\n[ playModeOff ][ decayedVioletRevert ] -> [ playModeOff ][ decayedViolet ]\n[ playModeOff ][ plus ] -> [ playModeOff ][ void ]\n\n(Remove the play or pause icon)\n[ playModeOff ][ | | number | time ] -> [ playModeOff ][ no icon | | number | time ]\n\n(Take the button out of active mode)\n[ playModeOff ][ player button ][ button ] -> [ playModeOff ][ player buttonHover ][ buttonHover ]\n[ playModeOff ][ player no button ][ button ] -> [ playModeOff ][ player ][ buttonInert ]\n\n(Reset the play area's appearance)\n[ playModeOff ][ rockActive ] -> [ playModeOff ][ rockInert ]\n\n[ playModeOff ] -> []\n\n(Activate play mode when the action key is pressed on the play button)\n(If the action is omitted from the RHS, it is consumed)\n[ action player button ][ button ][ | | number | time ] -> [ action player buttonActive playMode timeRemaining ][ buttonActive ][ playIcon | | number | time ]\n\n(Change the play area's appearance)\n[ action player button ][ rockInert ] -> [ action player button ][ rockActive ]\n\n(Save the state before play mode begins so we can revert to it afterwards)\n[ action player button ][ nine | time ] -> [ action player button ][ nine nineRevert | time ]\n[ action player button ][ eight | time ] -> [ action player button ][ eight eightRevert | time ]\n[ action player button ][ seven | time ] -> [ action player button ][ seven sevenRevert | time ]\n[ action player button ][ six | time ] -> [ action player button ][ six sixRevert | time ]\n[ action player button ][ five | time ] -> [ action player button ][ five fiveRevert | time ]\n[ action player button ][ four | time ] -> [ action player button ][ four fourRevert | time ]\n[ action player button ][ three | time ] -> [ action player button ][ three threeRevert | time ]\n[ action player button ][ two | time ] -> [ action player button ][ two twoRevert | time ]\n[ action player button ][ one | time ] -> [ action player button ][ one oneRevert | time ]\n[ action player button ][ omega ] -> [ action player button ][ omega omegaRevert ]\n[ action player button ][ square ] -> [ action player button ][ square squareRevert ]\n[ action player button ][ violet ] -> [ action player button ][ violet violetRevert ]\n[ action player button ][ chariot ] -> [ action player button ][ chariot chariotRevert ]\n[ action player button ][ horse ] -> [ action player button ][ horse horseRevert ]\n[ action player button ][ time ] -> [ action player button ][ time timeRevert ]\n[ action player button ][ decayedViolet ] -> [ action player button ][ decayedViolet decayedVioletRevert ]\n\n(Don't allow symbol interations once time gets to zero)\n[ timeRemaining ][ zero | time ] -> [][ zero | time ]\n\n(If there are hourglasses, however, we still have time remaining)\n[ playMode no timeRemaining ][ time playArea ] -> [ playMode timeRemaining ][ time playArea ]\n[ playMode no timeRemaining ][ time timebox ] -> [ playMode timeRemaining ][ time timebox ]\n\n\n(Change the button appearance when the player's on it)\n[ > player | button ][ buttonInert ] -> [ > invisiplayer | buttonHover ][ buttonHover ]\n[ no button | < player button ][ buttonHover ] -> [ | < select buttonInert ][ buttonInert ]\n\n\n(SYMBOL RULES)\n(These all apply to real-time moves only, and only when in play mode)\n(Set a marker to say we're okay to apply the symbol rules)\n[ stationary player ][ timeRemaining no solved ] -> [ stationary player ][ timeRemaining applyRules ]\n\n(Omega next to a square: remove square, replace omega with violet)\n[ applyRules ][ omega playArea | square playArea ] -> [ applyRules ][ omega violetShadow playArea | square removeShadow playArea ]\n\n(Chariot next to square: remove chariot, replace square with Omega)\n[ applyRules ][ chariot playArea | square playArea ] -> [ applyRules ][ chariot removeShadow playArea | square omegaShadow playArea ]\n\n(Three squares in a row produce a horse)\n[ applyRules ][ square playArea | square playArea | square playArea ] -> [ applyRules ][ square removeShadow playArea | square removeShadow horseShadow playArea | square removeShadow playArea ]\n\n(A square next to a horse will walk in the direction of the square)\n[ applyRules ][ square playArea | horse playArea | no occupied ] -> [ applyRules ][ square removeShadow playArea | horse removeShadow squareShadow playArea | horseShadow ]\n\n(A chariot next to a horse does the same thing)\n[ applyRules ][ chariot playArea | horse playArea | no occupied ] -> [ applyRules ][ chariot removeShadow playArea | horse removeShadow chariotShadow playArea | horseShadow ]\n\n(Two or more horses next to a violet become hourglasses)\n[ applyRules ] -> [ applyRules zero ]\n+ [ applyRules zero ][ violet playArea no zero no shadow ] -> [ applyRules ][ violet playArea zero ]\n+ [ applyRules ][ horse no shadow | violet zero no shadow ] -> [ applyRules ][ horse shadow | violet zero shadow ]\n+ [ applyRules ][ horse no shadow | violet zero shadow ] -> [ applyRules ][ horse timeShadow | violet zero shadow decayedVioletShadow ]\n+ [ applyRules ][ horse shadow | violet decayedVioletShadow ] -> [ applyRules ][ horse timeShadow no shadow | violet decayedVioletShadow ]\n+ [ applyRules ][ violet zero ] -> [ applyRules ][ violet shadow no zero ]\n+ [ applyRules ][ horse shadow ] -> [ applyRules ][ horse no shadow ]\n(Clean up - not part of rule group)\n[ applyRules ][ symbol shadow ] -> [ applyRules ][ symbol ]\n[ applyRules ][ violet zero ] -> [ applyRules ][ violet ]\n[ applyRules zero ] -> [ applyRules ]\n[ applyRules ][ violet decayedVioletShadow ] -> [ applyRules ][ decayedVioletShadow ]\n\n(An hourglass decays into a chariot, providing an extra second)\n(First, the indication that time needs to tick down)\n[ stationary player ][ playMode ] -> [ player ][ down playMode ]\n(Each separate group of hourglasses can tick independently. For each, the order is clockwise from 3 o' clock)\nleft [ applyRules ][ time playArea | decayedViolet no shadow ] -> [ applyRules ][ time chariotShadow playArea | decayedViolet shadow ] sfx4\nup [ applyRules ][ time playArea | decayedViolet no shadow ] -> [ applyRules ][ time chariotShadow playArea | decayedViolet shadow ] sfx4\nright [ applyRules ][ time playArea | decayedViolet no shadow ] -> [ applyRules ][ time chariotShadow playArea | decayedViolet shadow ] sfx4\ndown [ applyRules ][ time playArea | decayedViolet no shadow ] -> [ applyRules ][ time chariotShadow playArea | decayedViolet shadow ] sfx4\n(Put hourglasses in the timebox. Need a few rules to make sure they go in in the right order)\nright [ decayedViolet shadow ][ timebox time | timebox no time ] -> [ decayedViolet ][ timebox time | timebox time ]\ndown [ decayedViolet shadow ][ no timebox | timebox no time ] -> [ decayedViolet ][ no timebox | timebox time ]\ndown [ decayedViolet shadow ][ timebox time | timebox no time ] -> [ decayedViolet ][ timebox time | timebox time ]\nright [ decayedViolet shadow ][ timebox no time ] -> [ decayedViolet ][ timebox time]\n[ decayedViolet shadow ] -> [ decayedViolet ]\n\n(A decayed violet with no hourglasses next to it disappears)\nright [ applyRules ][ no time | decayedViolet | no time ] -> [ applyRules ][ no time | decayedViolet shadow | no time ]\ndown [ applyRules ][ no time | decayedViolet shadow | no time ] -> [ applyRules ][ no time | no decayedViolet | no time ]\n[ decayedViolet shadow ] -> [ decayedViolet no shadow]\n\n(Remove applyRules)\n[ applyRules ] -> [ no applyRules ]\n\n\n\n(Remove an hourglass from the timebox if there is one, then shuffle them to the top-left)\nright [ down playMode ][ plus | timebox time | timebox no time ] -> [ stationary playMode ][ void | timebox | timebox ] sfx4\n[ down playMode ][ timebox time ] -> [ stationary playMode ][ timebox ] sfx4\nup [ timebox time | timebox no time ] -> [ timebox | timebox time ]\nleft [ timebox time | timebox no time ] -> [ timebox | timebox time ]\nright [ void | timebox time ] -> [ plus | timebox time ]\n\n(Count the timer down)\nright [ down playMode ][ one | time ] -> [ playMode ][ zero | time] sfx4\nright [ down playMode ][ two | time ] -> [ playMode ][ one | time] sfx4\nright [ down playMode ][ three | time ] -> [ playMode ][ two | time] sfx4\nright [ down playMode ][ four | time ] -> [ playMode ][ three | time] sfx4\nright [ down playMode ][ five | time ] -> [ playMode ][ four | time] sfx4\nright [ down playMode ][ six | time ] -> [ playMode ][ five | time] sfx4\nright [ down playMode ][ seven | time ] -> [ playMode ][ six | time] sfx4\nright [ down playMode ][ eight | time ] -> [ playMode ][ seven | time] sfx4\nright [ down playMode ][ nine | time ] -> [ playMode ][ eight | time] sfx4\n\n[ down playMode ] -> [ playMode ]\n\n(Switch to a pause icon after the timer reaches zero)\nright [ playMode no timeRemaining][ playIcon | | zero ] -> [ playMode ][ pauseIcon | | zero ]\n\n\n(POST-SYMBOL RULES)\n(Remove any RemoveShadows and the symbol in that space)\n[ removeShadow symbol ] -> []\n\n(Replace symbol shadows with their real symbols)\n[ violetShadow ] -> [ violet ]\n[ omegaShadow ] -> [ omega ]\n[ squareShadow ] -> [ square ]\n[ chariotShadow ] -> [ chariot ]\n[ horseShadow ] -> [ horse ]\n[ timeShadow ] -> [ time ]\n[ decayedVioletShadow ] -> [ decayedViolet ]\n\n\n\n(Count up the number of target symbols by putting shadows on them then counting up as we remove them by shifting a shadow along the number line. Don't forget to set the count to zero first.)\n\n(violets)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | violet ][ violet No void ] -> [ number | violet ][ violet shadow ]\nright [ violet shadow ][ number shadow | number ] -> [ violet ][ number | number shadow ]\nright [ number shadow ][ | slash | | violet ] -> [ number ][ number | slash | | violet ]\n\n(omegas)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | omega ][ omega no void ] -> [ number | omega ][ omega shadow ]\nright [ omega shadow ][ number shadow | number ] -> [ omega ][ number | number shadow ]\nright [ number shadow ][ | slash | | omega ] -> [ number ][ number | slash | | omega ]\n\n(horses)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | horse ][ horse no void ] -> [ number | horse ][ horse shadow ]\nright [ horse shadow ][ number shadow | number ] -> [ horse ][ number | number shadow ]\nright [ number shadow ][ | slash | | horse ] -> [ number ][ number | slash | | horse ]\n\n(squares)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | square ][ square no void no toolbox ] -> [ number | square ][ square shadow ]\nright [ square shadow ][ number shadow | number ] -> [ square ][ number | number shadow ]\nright [ number shadow ][ | slash | | square ] -> [ number ][ number | slash | | square ]\n\n(chariots)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | chariot ][ chariot no void ] -> [ number | chariot ][ chariot shadow ]\nright [ chariot shadow ][ number shadow | number ] -> [ chariot ][ number | number shadow ]\nright [ number shadow ][ | slash | | chariot ] -> [ number ][ number | slash | | chariot ]\n\n(Clean up e.g. where there are more than 9 of a given symbol)\n[ symbol shadow ] -> [ symbol ]\n\n\n(Work out if the level is solved)\n(First, put crosses by all the counters)\nright [ | number | slash ] -> [ cross no tick | number | slash ]\n(Next, replace crosses with ticks where the targets are met)\nright [ cross | zero | slash | zero ] -> [ tick | zero | slash | zero ]\nright [ cross | one | slash | one ] -> [ tick | one | slash | one ]\nright [ cross | two | slash | two ] -> [ tick | two | slash | two ]\nright [ cross | three | slash | three ] -> [ tick | three | slash | three ]\nright [ cross | four | slash | four ] -> [ tick | four | slash | four ]\nright [ cross | five | slash | five ] -> [ tick | five | slash | five ]\nright [ cross | six | slash | six ] -> [ tick | six | slash | six ]\nright [ cross | seven | slash | seven ] -> [ tick | seven | slash | seven ]\nright [ cross | eight | slash | eight ] -> [ tick | eight | slash | eight ]\nright [ cross | nine | slash | nine ] -> [ tick | nine | slash | nine ]\n(Next, put a noWin on the player for any cross we find)\n[ cross ][ player ] -> [ cross ][ player noWin ]\n(If there's not a noWin on the player, the level is solved!)\n[ player no noWin no solved ] -> [ player solved no playMode ] sfx7\ndown [ solved ][ button | ] -> [ solved ][ button | tick ]\n[ playIcon ][ solved ] -> [ tick ][ solved ]\n[ pauseIcon ][ solved ] -> [ tick ][ solved ]\n[ player noWin ] -> [ player ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\n(There are a few features each level must have in order to work correctly:)\n(1. A row of hidden numbers 0-9 as this is used for counting)\n(2. At least one target symbol counter in the form 0/yZ where y is the required number and Z is the target symbol)\n(3. There must be a column to the left of the target counter so that ticks and crosses can be placed there by the rules)\n(4. An optional time limit in the form xe where x is the number of seconds allowed, up to a maximum of 9)\n(5. If a time limit is in place, it must have two columns to the left of it to allow the play and pause icons to be placed there by the rules)\n(6. At least one button sprite, x. By convention, these are put at the bottom of the play area.)\n(7. Levels with hourglasses need at least one timebox space)\n(7. Hourglasses tick down in groups around the violet they were produced by. If more than one of these groups may exist in the level, you'll need one timebox space per violet group to hold extra hourglasses)\n\nmessage Let it be known that proceeding may lead to the annihilation of your species.\nmessage X = draw/erase symbol, activate button\n\n§!@£±%\"&*™\n'''''{-}''\n'''4e:P;q'\n''''':O;''\n'0/1w:.;''\n'''''`x~''\n''''''''''\n\nmessage Acceptance confirmed. Analysis of species MW3022 commencing. Recognition of 'Hindu-Arabic' numerals likely.\n\n§!@£±%\"&*™'\n'''''{---}'\n'''4e:P.o;q\n''''':...;'\n'0/1w:o..;'\n'''''`xxx~'\n'''''''''''\n\nmessage Normalised threat rating: **\n\n§!@£±%\"&*™''''\n'''''{------}'\n'''4e:P.O$..;q\n''''':.$.$$O;q\n'0/4w:$O..$$;q\n''''':.$$..O;q\n'''''`xxxxxx~'\n''''''''''''''\n\nmessage Chance of accidental completion rated at 0.16% based on factorial analysis. Subject's comprehension is considered highly probable.\n\n§!@£±%\"&*™''''''\n'''''{-------}''\n'''4e:p.o$..$;lq\n''''':..$.o..;qq\n''''':$o..o$.;qq\n'0/4w:.o.$..$;qq\n''''':.$$..o$;qq\n'0/9s:o..$$..;qq\n''''':..o..$.;qq\n'''''`xxxxxxx~''\n''''''''''''''''\n\nmessage Normalised threat rating: ****\n\n§!@£±%\"&*™''''''\n'''''{--------}'\n'''4e:p.o$..o.;q\n''''':o..$.o.o;q\n'0/7w:.$..$..$;q\n''''':..o.o.o$;'\n''''':o..$.$..;'\n''''':.$o..$.o;'\n'''''`xxxxxxxx~'\n''''''''''''''''\n\nmessage Normalised threat rating: *****\n\n§!@£±%\"&*™'''\n'''''{-----}'\n'''4e:P.$.O;q\n''''':$.$$.;q\n'0/4w:.$C..;q\n''''':$..$$;q\n''''':.C$..;q\n''''':.$.O$;q\n'''''`xxxxx~'\n'''''''''''''\n\nmessage Normalised threat rating: *******\n\n§!@£±%\"&*™'''''\n'''''{-----}'''\n'''4e:P$..$;lqq\n''''':$..C.;lqq\n'0/8w:..$..;lqq\n''''':.C..$;qqq\n''''':$..$.;qqq\n'''''`xxxxx~'''\n'''''''''''''''\n\nmessage Normalised threat rating: *********\n\n§!@£±%\"&*™''''''''\n'''''{---------}''\n'''4e:p.c.o$..c;lq\n''''':$o$..$.$.;lq\n'0/7w:$..o$c$.o;lq\n''''':.o$.$..c.;lq\n'0/3m:c.c.o.o$$;qq\n'''''`xxxxxxxxx~''\n''''''''''''''''''\n\nmessage Normalised threat rating: ************\n\n§!''''{-}''\n'''4e{®p´}q\n''''':...;q\n'0/1h†∑.œ¥q\n''''''`x~''\n\nmessage Normalised threat rating: **************\n\n§!@£±%\"&*™'''''''''\n'''''{---------}'''\n'''4e:p$...$$$o;qqq\n''''':$$.$.o...;qqq\n'0/4h:$.o.$.$o$;qqq\n''''':o.$$.$.$.;qqq\n'0/6w:$.o..$$..;qqq\n''''':.$..$...$;'''\n'''''`xxxxxxxxx~'''\n'''''''''''''''''''\n\nmessage What is your species' biggest challenge? 1) Data processing, 2) War, 3) Food/energy production, 4) Spacetime manipulation\n\n§!''™{--}'\n'0/1s:¡p;q\n''''':¢.;'\n''''':∞.;'\n''''':¶.;'\n'''''†__¥'\n\nmessage Your response will be taken into consideration.\n\n§!@£±%\"&*™'{----}'\n'''9e'''''':$$$$;q\n''''''''''':$o$$;q\n''''''''''':$$$$;q\n''''''''''':$$$$;q\n'''''{-----®.$$.;q\n'0/2h:π$$...$$.$;q\n''''':$$$$...$$.;q\n'0/2w:$o$$.$$...;q\n''''':$$$$$.$..$;q\n'''''`xxxxxxxxxx~'\n''''''''''''''''''\n\nmessage Normalised threat rating: ****************\n\n§!@£±%\"&*™'''''''''\n'''''{----------}''\n'''9e:π...$..$..;''\n''''':$$..$$?.$.;lq\n'0/1w:$?$.$$...$;lq\n'''''†___∑.$$$$?;lq\n'''''{--}†∑?$o$.;lq\n''''':..´-®$$$$.;qq\n''''':...$$$$?$.;qq\n''''':?.$$$$.$.$;''\n'''''`xxxxxxxxxx~''\n'''''''''''''''''''\n\nmessage Normalised threat rating: *********************\n\n§!@£±%\"&*™'''''''''\n'''''{---------}'''\n'''4e:p.$..$..$;qqq\n''''':$$$.$.$..;qqq\n'0/9h:$..$...$.;qqq\n''''':...$...$.;qqq\n''''':...$$$$..;qqq\n''''':$$$...$..;'''\n''''':....$..$.;'''\n''''':..$...$$$;'''\n''''':.$..$$...;'''\n''''':$.$$.$...;'''\n''''':.$...$$..;'''\n'''''`xxxxxxxxx~'''\n'''''''''''''''''''\n\nmessage Normalised threat rating: ************************\n\n§!@£±%\"&*™'''''''\n'''''{---}'''''''\n'''1e:p..´}'''qqq\n''''':.$t$´}''qqq\n'¬¬¬¬:$t√.$´}'qqq\n'¬¬¬¬:..t...´}'''\n''''':$..$$..;'''\n''''':.t$.t√t;'''\n''''':t√t..tœ¥'''\n'0/9m:$..$.œ¥''''\n'''''`xxxxx~'''''\n'''''''''''''''''\n\nmessage Normalised threat rating: ***************************\n\n§!@£±%\"&*™'''''''''\n'''''{----}''''''''\n'''9e:p..$;'qqqqq''\n''''':$...;'qqqqq''\n'0/8m:....;{-----}'\n'''{-®$$$$;:o....;'\n'¬¬:o.t$$?´®.....;'\n''':$t√t$$$$$$$$$;'\n''':o.t$?...œ____¥'\n'''`xxxxxxxx~''''''\n'''''''''''''''''''\n\nmessage Normalised threat rating: ******************************\n\n§!@£±%\"&*™''''''\n'''''{----}'''''\n'''9e:p...;'''''\n''''':....;'''''\n'''¬¬:....;'qqq'\n'''¬¬:....;'qqq'\n'0/2m:$$$.;'qqq'\n{---}:.$$$;'''''\n:t√$´®$$$$´----}\n:$t$$$$$$$$$$$$;\n:$$$$$$$$$$$$t√;\n†____∑$$$$œ∑$$t;\n''{--®$...;†___¥\n'':$......´--}''\n'':$.......$$;''\n'':.$.......$;''\n''`xxxxxxxxxx~''\n''''''''''''''''\n\nmessage What is your purpose? 1) The acquisition of knowledge, 2) The acquisition of resources, 3) The hegemony of your race, 4) The survival of your race\n\n§!''*{--}'\n'0/1s:¡p;q\n''''':¢.;'\n''''':∞.;'\n''''':¶.;'\n'''''†__¥'\n\nmessage Your response will be taken into consideration.\n\n§!@£±%\"&*™'''\n'''''{---}'''\n'''2e:p..;lqq\n'¬¬¬¬:.i.;qqq\n'0/2ç:...;qqq\n'''''`xxx~'''\n'''''''''''''\n\nmessage Normalised threat rating: *************************************\n\n§!@£±%\"&*™''''''''\n'''''''{------}'''\n'''9e'':$$$$$c;lqq\n'''''''†∑uœ∑$œ¥qqq\n'¬¬¬¬'''†_¥:$;'qqq\n'''''{-----®$´}qqq\n''''':p......$;'''\n''''':.i......;'''\n'1/0s:........;'''\n'''''`xxxxxxxx~'''\n''''''''''''''''''\n\nmessage Normalised threat rating: *********************************************************\n\n§!@£±%\"&*™''''''''''''\n'''''{-----}{-----}'''\n'''2e:p...$;:.$...;qqq\n''''':$i...´®..$i.;qqq\n'''¬¬:$.$$.$$.$.$.;qqq\n'''¬¬:....$..i.$$$;qqq\n'''¬¬:...i.$....i.;qqq\n'''¬¬:$.$$$$.$.$..;qqq\n''''':$$...$$$$...;qqq\n''''':$....$$$$$i$;qqq\n'0/4m:.....$$$$$$$;'''\n'''''`xxxxxxxxxxxx~'''\n''''''''''''''''''''''\n\nmessage We come now to the final test. Consider your actions carefully, sapient one.\n\n'''''''''''''''''''''''{--}''''\n''''''''''''''''''''''':u$;''''\n'§!@£±%\"&*™'''''''''''':$$;qqq'\n'''''{------------}'''':$o;qqq'\n'''9e:p.....√.....´}''':u$;qqq'\n''''':˙.˙.˙.t.˙.˙.˙´--}:$$;qqq'\n'¬¬¬¬:.˙.˙.˙.˙.˙.˙....´®$o;qqq'\n'¬¬¬¬†__________∑........œ¥qqq'\n'¬¬¬¬{----------®........´}qqq'\n'¬¬¬¬:...˙...˙...˙....œ∑$o;qqq'\n''''':˙.˙.˙.t.˙.˙.˙œ__¥:$$;qqq'\n'4/0m:.˙...˙√..˙..œ¥''':u$;qqq'\n'''''`xxxxxxxxxxxx~'''':$o;qqq'\n''''''''''''''''''''''':$$;''''\n'''''''''''''''''''''''`xx~''''\n\nmessage Testing is now complete. Your risk rating has been calculated as...\nmessage CRITICAL\nmessage Dangerously intelligent life cannot be permitted to propagate unchecked within the galaxy. You must now decide on behalf of your civilisation whether to 1) Sacrifice your freedoms and submit to our direct control, or 2) Face annihilation.\n\n§!''&{--}'\n'0/1s:¡p;q\n''''':¢.;'\n'''''†__¥'\n\nmessage ERROR: Species designated 'homo sapiens' came under supervision 2500 years ago. Access to this system should not have been allowed. Our physical agents in the region may have been compromised.\nmessage Dispatching scout party to Orion Spur, Sol system.\nmessage ETA: 5 years\nmessage Shutting down...\n\n", ["tick", 3, 3, 4, 2, 2, "tick", 4, 3, 3, 4, 3, "tick", 0, 4, 3, 4, 2, 4, "tick", 1, 0, 4, 0, 4, 1, 4, "tick", 2, 4, 1, 4, 0, 4, 1, "tick", 1, 4, 1, 2, 2, 2, 1, "tick", 2, 3, 2, 4, "tick", "tick", "tick", "tick", "tick"], "numbercover shadow void zero:0,void:1,1,1,cross void:2,1,2,1,1,numbercover one void:3,1,pauseicon void:4,1,three void:5,1,six void:6,1,1,\nnumbercover two void:7,1,1,1,slash void:8,1,8,1,1,numbercover three void:9,1,fourrevert void zero:10,1,seven void:11,1,5,1,1,\nfour numbercover void:12,1,time timerevert void:13,1,violet violetrevert void:14,1,omega omegarevert void:15,1,1,five numbercover void:16,bordertopleft void:17,borderleft void:18,18,18,18,18,borderbuttonbl void:19,1,\nnumbercover six void:20,bordertop void:21,rockactive:22,shield:23,23,22,chariot chariotrevert shield:24,buttonactive rockactive:25,1,numbercover seven void:26,21,omega rockactive squarerevert:27,omegarevert shield violet:28,22,omega omegarevert shield:29,22,buttonactive invisiplayer playmode rockactive:30,1,\neight numbercover void:31,21,chariotrevert shield:32,23,rockactive squarerevert:33,23,24,25,1,nine numbercover void:34,21,27,33,28,22,22,25,1,\n1,21,28,33,23,23,29,25,1,1,21,23,23,24,22,22,25,1,\n1,21,22,rockactive square squarerevert:35,23,22,29,25,1,1,21,22,23,22,24,23,25,1,\n1,21,24,22,29,22,23,25,1,1,bordertopright void:36,borderright void:37,37,37,37,37,borderbuttonbr void:38,1,\n1,1,toolbox:39,39,39,39,39,1,1,1,1,39,39,39,39,39,1,1,\n", 16, "1627779484111.158"] ], [ `gallery: The Flames`, - ["title The Flames\nauthor Rosden Shadow [Mark Signorelli]\nhomepage rosden.itch.io\n\n========\nOBJECTS\n========\n\nBackground\n#5BB205 #34960A #18820A\n11010\n20101\n02010\n20201\n02022\n\nfilledground\n#AD6A06 #7F370B #59160A \n11010\n20101\n02010\n20201\n02022\n\nTarget\nDarkBlue\n(\n.....\n.000.\n.0.0.\n.000.\n.....\n)\n.....\n.....\n.....\n.....\n.....\n\nWall\n#787878 #444444 #a7a6a6\n02222\n10002\n10002\n10002\n11110\n\nwoodWall\n#7F370B #59160A #C67B09\n02222\n10002\n10002\n10002\n11110\n\nwoodWallx\n#7F370B #59160A #C67B09\n02222\n10002\n10002\n10002\n11110\n\nPlayer\n#EE1C24 white blue\n.011.\n.012.\n.011.\n.000.\n.0.0.\n(\n#62199E #A91ABF\n.011.\n01111\n01111\n01.01\n...01)\n\nPlayer1\n#62199E #A91ABF\n.011.\n01111\n01111\n01.01\n01...\nPlayerx1\n#62199E #A91ABF\n.011.\n01111\n01111\n01.01\n01...\n\nPlayerx2\n#62199E #A91ABF\n.011.\n01111\n01111\n01.01\n01...\n\n\n\nCrate\n#BA4D0E #91290D #F99807\n.222.\n10022\n10002\n11002\n.111.\n\nfireCrate1\n#BA4D0E #91290D #F99807 red yellow\n.3.3.\n10022\n10002\n11002\n.111.\n\nfireCrate2\n#BA4D0E #91290D #F99807 red yellow\n..3..\n.343.\n10002\n11002\n.111.\n\nfireCrate3\n#BA4D0E #91290D #F99807 red yellow\n.3.3.\n34343\n43434\n11002\n.111.\n\nfireCrate4\n#BA4D0E #91290D #F99807 red yellow\n..3..\n.343.\n34343\n43434\n.111.\n\n\n(\nfireper1\nred yellow\n.0.0.\n01010\n10101\n01010\n.010.\n\nfireper2\nred yellow\n..0..\n.010.\n01010\n10101\n.101.\n)\n\nfireper1\nred yellow\n00000\n01110\n01010\n01110\n00000\n\nfireper2\nred yellow\n00000\n00000\n00100\n00000\n00000\n\nfireper1x\nred yellow\n00000\n01110\n01010\n01110\n00000\n\nfireper2x\nred yellow\n00000\n00000\n00100\n00000\n00000\n\nfireper1xx\nred yellow\n00000\n01110\n01010\n01110\n00000\n\nfireper2xx\nred yellow\n00000\n00000\n00100\n00000\n00000\n\nfirex1\nred \n\n\nfirex2\nred\n\nfirex3\nred \n\n\nfirex4\nred\n\nfirex5\nred \n\nfirex6\nred\n\nash\nblack #333333\n.....\n.....\n..1..\n.011.\n00001\n\npit\nblack #7F370B\n11111\n11111\n00000\n00000\n00000\n\n\nbarrel\nred #444444 black yellow\n.0.0.\n.303.\n.211.\n.211.\n.222.\n\nbarrel1\nred #444444 black yellow\n..0..\n.030.\n.211.\n.211.\n.222.\n\nbarrelx1\nred \n\n\nbarrelx2\nred \n\nendflame\nblack \n.....\n.....\n.....\n.....\n.....\n\nflametrigger\nblack \n.....\n.....\n.....\n.....\n.....\n\nend1\nblack \n.....\n.....\n.....\n.....\n.....\n\nend2\nblack \n.....\n.....\n.....\n.....\n.....\n\nend3\nblack \n.....\n.....\n.....\n.....\n.....\n\nsrs\nblack \n.....\n.....\n.....\n.....\n.....\n\nbedup\nwhite #D7D7D7 #99122D #EE1C24 \n00000\n00000\n11111\n23333\n23333\n\nbeddown\nwhite #D7D7D7 #99122D #EE1C24 \n23333\n23333\n23333\n23333\n22222\n\ntable \n#FFC300 #BA6803 #FFF465\n22222\n00000\n0...0\n0...0\n0...0\n\nchair\n #BA6803 #FFC300 #FFF465\n.2...\n.2...\n.2...\n.211.\n.2.1.\n\nchair2\n #BA6803 #FFC300 #FFF465\n...2.\n...2.\n...2.\n.112.\n.1.2.\n\ncupboard\n#FFC300 #BA6803 black #FFF465\n.333.\n10003\n10003\n11110\n0...0\n=======\nLEGEND\n=======\n\n(Player = Player1 or fireper1x)\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\n(O = endarea)\ne = Target\n\nf = fireper1\nk = fireper2\n\nw = woodwall\nr=woodwallx\nd = pit\nj= filledground\nl = filledground and player\ng = pit and Target\nb=barrel\nx=barrel1\nt=barrel1 and target\na=ash\no=ash and player\n\ny=endflame and filledground\n%=endflame and filledground and end1 and flametrigger and srs\ni=endflame and filledground and flametrigger\nq=filledground and endflame and player\nu=filledground and target\n\nn=bedup\nm=beddown\nz=table and filledground\nc=chair and filledground\nh=chair2 and filledground\n&=cupboard and filledground\n\n\n=======\nSOUNDS\n=======\n\nplayer MOVE 35431509(97509308)\nbarrel MOVE 61477902\nbarrel1 MOVE 61477902\n\n\nCrate MOVE 36772507\n\nsfx1 2322302 (flame)\nsfx2 78713302(5964902) (woodwall flame)\nsfx3 47353904 (pit fill)\n\nsfx4 77411903 (test sound)\n\nshowmessage 42200307\nclosemessage 42200307\n\nstartgame 9611309\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nfilledground\nTarget(, endarea)\nflametrigger\nash,endflame\nPlayer,player1, Wall, woodwall,woodwallx, Crate, fireper1,fireper2,firex3,firex4,firex1,firex2,playerx1,playerx2,pit,barrel,barrel1,barrelx1,barrelx2,firecrate1,firecrate2,firecrate3,firecrate4,bedup,beddown,table,chair,chair2,cupboard\nend1,end2,end3\nfireper1x,fireper2x,fireper1xx,fireper2xx,firex5,firex6\nsrs\n\n======\nRULES\n======\n\n\n([> player][ player1] -> [> player] [> player1])\n\n(Horizontal [< player] -> [< player1]))\n\n[flametrigger|player] [ woodwallx] ->[flametrigger|player] [fireper1x]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n([ > Player1 | Crate ] -> [ > Player1 | > Crate ])\n\n[ > Player | barrel ] -> [ > Player | > barrel ]\n[ > Player | barrel1 ] -> [ > Player | > barrel1 ]\n\n[ > Player | firecrate1 ] -> [ > Player | > firecrate1 ] \n[ > Player | firecrate2 ] -> [ > Player | > firecrate2 ] \n[ > Player | firecrate3 ] -> [ > Player | > firecrate3 ] \n[ > Player | firecrate4 ] -> [ > Player | > firecrate4 ]\n\n[> crate | pit]-> [|filledground] sfx3\n[> firecrate1 | pit]-> [|filledground]sfx3\n[> firecrate2 | pit]-> [|filledground]sfx3\n[> firecrate3 | pit]-> [|filledground]sfx3\n[> firecrate4 | pit]-> [|filledground]sfx3\n\n(ee\n[> crate | pitx]-> [|filledground] sfx3\n[> firecrate1 | pitx]-> [|filledground]sfx3\n[> firecrate2 | pitx]-> [|filledground]sfx3\n[> firecrate3 | pitx]-> [|filledground]sfx3\n[> firecrate4 | pitx]-> [|filledground]sfx3\n)\n[player|fireper1x]->[|fireper1x]\n[player|fireper2x]->[|fireper2x]\n\n\n[barrel | woodwall] ->[barrel|fireper1]\n[barrel1 | woodwall] ->[barrel1|fireper1]\n\n\n\n[fireper2 | woodwall] ->[fireper2|fireper1]\n[fireper2x | woodwall] ->[fireper2x|fireper1x]\n\n[fireper2x | endflame] ->[fireper2x|fireper1x]\n\n([firecrate1 | woodwall] ->[firecrate1|fireper1])\n([firecrate1 |crate] -> [firecrate1|firecrate1])\n\n[firecrate2 | woodwall] ->[firecrate2|fireper1]\n[firecrate2 |crate] -> [firecrate2|firecrate1]\n\n[firecrate3 | woodwall] ->[firecrate3|fireper1]\n[firecrate3 |crate] -> [firecrate3|firecrate1]\n\n[firecrate4 | woodwall] ->[firecrate4|fireper1]\n[firecrate4 |crate] -> [firecrate4|firecrate1]\n\n(\n[Action Player | crate] -> [Action Player |fire]\n[Action Player1 | crate] -> [Action Player1 |fire])\n\n\n\nlate [end3|fireper1x]-> [target|player]\nlate [srs|target] -> [fireper1xx|target]\n\nlate [end2] -> [end3]\nlate [end1|fireper2x]->[end2|fireper2x]\n\nlate [firecrate4] -> [ash] sfx1\nlate [firecrate3] -> [firecrate4] sfx1\nlate [firecrate2] -> [firecrate3] sfx1\nlate [firecrate1] -> [firecrate2] sfx1\n\nlate [barrel|crate] -> [barrel|firecrate1] sfx1\nlate [barrel1|crate] -> [barrel1|firecrate1] sfx1\n\nlate [fireper2 |crate] -> [fireper2|firecrate1] sfx1\nlate [fireper1 |crate] -> [fireper1|firecrate1] sfx1\n\nlate [fireper1] -> [firex1]\nlate [fireper2] -> [firex2]\nlate [firex1] -> [fireper2] \nlate [firex2] -> [fireper1] \n\nlate [fireper1x] -> [firex3]\nlate [fireper2x] -> [firex4]\nlate [firex3] -> [fireper2x] \nlate [firex4] -> [fireper1x] \n\nlate [fireper1xx] -> [firex5]\nlate [fireper2xx] -> [firex6]\nlate [firex5] -> [fireper2xx] \nlate [firex6] -> [fireper1xx] \n\nlate [barrel] -> [barrelx1]\nlate [barrel1] -> [barrelx2]\nlate [barrelx1] -> [barrel1]\nlate [barrelx2] -> [barrel]\n(\nlate [player] -> [playerx1]\nlate [player1] -> [playerx2]\nlate [playerx1] -> [player1]\nlate [playerx2] -> [player])\n\n==============\nWINCONDITIONS\n==============\n\nsome Player on target\n\n(some Player1 on target)\n(All Player on endarea)\n\n=======\nLEVELS\n=======\n\nmessage zzz..z.zz\n\nmessage z.zzzz.z.z\n\nmessage zz.zz..z.z\n\nmessage z....(blink) (blink)\n\n..........\n.wwwwwwww.\n.wnjjj&jw.\n.wmljjjjw#\n.wjjjjjjje\n.wjczhjjw#\n.wjjjjjjw.\n.wwwwwwww.\n..........\n\n..........\nwwwwwww...\nnjjj&jw..e\nmjjjjjw###\njjjjjjle..\njczhjjw###\njjjjjjw...\nwwwwwww...\n..........\n\n..........\nwwwww.....\njj&jw..e..\njjjjw#####\njjjjjpe...\nzhjjw#####\njjjjw.....\nwwwww.....\n..........\n\n........##\nwww.....#.\n&jw.....#.\njjw######.\njjj.pe....\njjw######b\njjw.....#.\nwww.....#.\n........##\n\n......####\nw.....#...\nw.....#...\nw######...\nj..pee....\nw######x.*\nw.....#...\nw.....#.##\n......####\n\nmessage so I am on a journey to ignite the flames\n\n....######\n....#...##\n....#....#\n#####....*\n..pe.....#\n#####b.*.#\n....#...##\n....#.####\n....######\n\n..########\n..#...####\n..#....###\n###....**#\n.pe....#..\n###x.*.#..\n..#...##..\n..#.####..\n..########\n\n##########\n#...######\n#....#####\n#....**###\npe...#...#\n#b.*.#...#\n#...##...e\n#.####...#\n##########\n\nmessage 1 of 10\n\n##########\n#...######\n#....#####\n#....**###\n.p...#...#\n#b.*.#...#\n#...##...e\n#.####...#\n##########\n\n(move)\n########..\n..######..\n...#####..\n..aaa###..\n...#...#..\n...#...###\n..##...pe.\n####...##.\n##########\n\n######....\n######....\n.#####....\naaa###....\n.#...#....\n.#...####.\n##....pe##\n##...##...\n##########\n\n####......\n####......\n####......\na###......\n...#......\n...####...\n.....p####\n...##.e...\n##########\n\n##......##\n##......#w\n##......#w\n##......#.\n.#......#.\n.####...#.\n....######\n.##.pe....\n##########\n\nmessage even though the fire fills me with terror\n\n......####\n......#www\n......#www\n......#...\n......#..*\n###...#...\n..######..\n#..pe....#\n##########\n\n....######\n....#www##\n....#wwwww\n....#.....\n....#..*..\n#...#...x.\n######..##\n..pe...###\n##########\n\n..########\n..#www##.*\n..#wwwwwdw\n..#.....b.\n..#..*....\n..#...b..#\n####..####\n.pe..#####\n##########\n\n##########\n#www##.*d.\n#wwwwwdw##\n#.....x.##\n#..*....##\n#...x..###\n##..######\npe.#######\n##########\n\nmessage 2 of 10\n##########\n#www##.*de\n#wwwwwdw##\n#.....b.##\n#..*....##\n#...b..###\n##..######\n.p.#######\n##########\n\n(move)\n\n##########\nkf##..jpe.\nfkfkjw####\n......##..\n......##..\n.....###..\n.x######..\n.#######..\n########..\n\n##########\n##..j.pe..\nkfjw#####.\n....##..#.\n....##..#.\n...###..#.\n######..#.\n######..#.\n######..##\n\n#########.\n..j..pe.#.\njw#####.#.\n..##..#.#.\n..##..#.#.\n.###..#.#.\n####..#.##\n####..#...\n####..####\n\n#######.#w\nj...pe#.#w\n#####.#.ww\n##..#.#.ww\n##..#.#.ww\n##..#.#.ww\n##..#.##w.\n##..#.....\n##..######\n\n\nmessage I was scared by what the fire could seem to claim\n\n#####.#www\n...p#.#w..\n###.#.ww.w\n..#.#.ww..\n..#.#.ww.w\n..#.#.ww.w\n..#.##w.*w\n..#.e.....\n..########\n\n\n###.#wwwww\n..#.#w....\n#.#.ww.www\n#.#.ww....\n#.#.ww.www\n#.#.ww.w..\n#.##w.*www\n#.pee.....\n##########\n\n\n#.#wwwwwww\n#.#w....*.\n#.ww.wwww.\n#.ww....w.\n#.ww.wwww.\n#.ww.w....\n##w.*www..\n.pe.......\n##########\n\n#wwwwwww##\n#w....*..g\nww.wwww..#\nww....w..#\nww.wwww..#\nww.w.....#\nw.*www.b.#\npe.......#\n##########\n\nmessage 3 of 10\n#wwwwwww##\n#w....*..g\nww.wwww..#\nww....w..#\nww.wwww..#\nww.w.....#\nw.*www.b.#\n.p.......#\n##########\n\n(move)\nfkfkfk####\n.......le.\n.kfkf..###\na...k..#..\n.kfkf..#..\n.f.....#..\n.kfk...#..\n.......#..\n########..\n\nkfkf######\n.....jpe..\nkfk..#####\n..f..#...#\nkfk..#....\n.....#....\nkf...#....\n.....#....\n######....\n\nfk########\n...j.pe..#\nf..#####..\nk..#...###\nf..#......\n...#......\n...#......\n...#......\n####......\n\n##########\n.j..pe.##.\n.#####....\n.#...####.\n.#......#.\n.#......#.\n.#......#.\n.#......#.\n##......##\n\nmessage all my excuses made the fire seem scarier\n\n##########\n...pe##...\n####.....w\n...####...\n......#..w\n......#.**\n......#..w\n......#..w\n......####\n\n##########\n..p##.....\n##.e...www\n.####.....\n....#..w.#\n....#.**..\n....#..w..\n....#..ww.\n....######\n\n##########\n.##.......\n.pe..wwww.\n###.......\n..#..w.###\n..#.**..##\n..#..w..b.\n..#..ww...\n..########\n\n##########\n#.......##\npe.wwww.*e\n#........#\n#..w.###.#\n#.**..##.#\n#..w..b..#\n#..ww....#\n##########\n\nmessage 4 of 10\n##########\n#.......##\n.p.wwww.*e\n#........#\n#..w.###.#\n#.**..##.#\n#..w..b..#\n#..ww...##\n##########\n\n(move)\n########..\n......####\n.kfkf..pe.\n..a...a###\n.k.###.#..\n...b##.#..\n.w.....#..\n.ww...##..\n########..\n\n\n######....\n....######\nkfk..ape..\na...a#####\n.###.#...#\n.x##.#...#\n.....#...#\nw...##....\n######....\n\n\n####......\n..########\nf..a.pe..#\n..a#####.#\n##.#...#.#\n##.#...#..\n...#...###\n..##......\n####......\n\n\n##......##\n##########\n.a..pe.###\na#####.##.\n.#...#.##.\n.#...#....\n.#...#####\n##......##\n##......##\n\nmessage I avoided the flames until it was too much to bear\n\n......###w\n########*.\n...pe###..\n####.##...\n...#.##.*.\n...#......\n...######.\n......###.\n......####\n\n....###www\n######*...\n..p###..ww\n##.##....w\n.#.##.*.*w\n.#.e......\n.######.*.\n....###...\n....######\n\n..###wwwww\n####*...d.\n.###..wwww\n.##....www\n.##.*.*www\n.pe......w\n#####.*.b.\n..###.....\n..########\n\n###wwwwww#\n##*...d..g\n##..wwwwww\n#....wwww#\n#.*.*wwww#\npe.....ww#\n###.*.x.w#\n###.....w#\n##########\n\nmessage 5 of 10\n###wwwwww#\n##*...d..g\n##..wwwwww\n#....wwww#\n#.*.*wwww#\n.P.....ww#\n###.*.b.w#\n###.....w#\n##########\n(move)\n\n#wwwwww###\na...j..le.\na.wwwwww##\n...wwww#..\n...wwww#..\n.....ww#..\n#.....w#..\n#.....w#..\n########..\n\nwwwww#####\n..j..jpe..\nwwwwww####\n.wwww#...#\n.wwww#...#\n...ww#...#\n....w#...#\n....w#...#\n######....\n\nwww#######\nj..j.pe..#\nwwww####.#\nwww#...#.#\nwww#...#.#\n.ww#...#.#\n..w#...#..\n..w#...###\n####......\n\nw#########\n.j..pe.###\nww####.##.\nw#...#.##.\nw#...#.##.\nw#...#.##.\nw#...#....\nw#...####.\n##......##\n\nmessage now its time to start controlling the fire\n\n##########\n...pe###..\n####.##...\n...#.##...\n...#.##...\n...#.##...\n...#......\n...####.b.\n......####\n\n##########\n..p###....\n##.##.....\n.#.##.....\n.#.##...##\n.#.##...##\n.#.e.....#\n.####.x..#\n....######\n\n##########\n.###......\n.##.....*.\n.##......*\n.##...##*.\n.##...##.*\n.pe....#*.\n###.b..#..\n..########\n\n##########\n##......##\n#.....*..#\n#......*.#\n#...##*..#\n#...##.*.#\npe...#*..#\n#.x..#..*e\n##########\n\nmessage 6 of 10\n##########\n##......##\n#.....*..#\n#......*.#\n#...##*..#\n#...##.*.#\n.p...#*..#\n#.b..#..*e\n##########\n\n(move)\n########..\n.a....##..\n.....a.#..\n.......#..\na.##...#..\n..##a..#..\n...#...###\n...#.a.oe.\n##########\n\n######....\n....##....\n...a.#....\n.....#....\n##...#...#\n##a..#...#\n.#...#####\n.#.a.ape..\n##########\n\n####......\n..##......\n.a.#......\n...#......\n...#...###\na..#...#..\n...#####.#\n.a.a.pe..#\n##########\n\n##......##\n##......##\n.#......##\n.#......##\n.#...####.\n.#...#....\n.#####.##.\n.a..pe.###\n##########\n\nmessage now its time to get ready and prepare\n\n......####\n......####\n......####\n......##..\n...####...\n...#....b.\n####.##...\n...pe###..\n##########\n\n....######\n....#####*\n....####..\n....##..*.\n.####...w.\n.#.e..x.*.\n##.##...w.\n..p###....\n##########\n\n..########\n..#####*.d\n..####...#\n..##..*...\n###...w...\n.pe.b.*.*.\n.##...w...\n.###.....#\n##########\n\n##########\n#####*.ddg\n####...###\n##..*...##\n#...w...##\npex.*.*.##\n#...w...##\n##.....###\n##########\n\nmessage 7 of 10\n##########\n#####*.ddg\n####...###\n##..*...##\n#...w...##\n.pb.*.*.##\n#...w...##\n##.....###\n##########\n(move)\n\n##########\n###a.jjle.\n##b..#####\n......##..\n..f...##..\n......##..\n..w...##..\n.....###..\n########..\n\n##########\n#a.jjjpe..\nx..#######\n....##...#\nk...##...#\n....##...#\nw...##...#\n...###....\n######....\n\n##########\n.jjj.pee.#\n.#######.#\n..##...#.#\n..##...#.#\n..##...#..\n..##...###\n.###......\n####......\n\n########ww\njj..pe.#w#\n######.#w#\n##...#.#ww\n##...#.###\n##...#....\n##...####.\n##......##\n##......##\n\nmessage the time is gone to just aspire\n\n######wwww\n...pe#w##.\n####.#w##.\n...#.#www.\n...#.###w.\n...#...b..\n...####...\n......##..\n......####\n\n####wwwwww\n..p#w##...\n##.#w##...\n.#.#www.*.\n.#.###w...\n.#.e.x....\n.####.....\n....##....\n....######\n\n##wwwwwwww\n.#w##.....\n.#w##.....\n.#www.*.*.\n.###w.....\n.peb......\n###......d\n..##....dd\n..########\n\nwwwwwwwwww\nw##......w\nw##......w\nwww.*.*..w\n##w......w\npt.......w\n#......dww\n##....dd*g\n##########\n\nmessage 8 of 10\nwwwwwwwwww\nw##......w\nw##......w\nwww.*.*..w\n##w......w\n.pb......w\n#......dww\n##....dd*g\n##########\n\n(move)\n\nfkfkfkfk..\n#......f..\n#......k..\nk......f..\nf......k..\n.b.....f..\n.....jfk##\n....dj.le.\n##########\n\nkfkfkf....\n.....k....\n.....f....\n.....k...#\n.....f...#\n.....k...#\n...jkf####\n..dj.jpe..\n##########\n\nfkfk......\n...f......\n...k......\n...f...###\n...k...#..\n...f...#.#\n.jfk####.#\ndj.j.pe..#\n##########\n\nkf......##\n.k......##\n.f......##\n.k...####.\n.f...#....\n.k...#.##.\nkf####.###\n.j..pe.###\n##########\n\nmessage no more excuses for playing unnecessary games\n\n......####\n......###b\n......###.\n...####...\n...#......\n...#.##...\n####.####.\n...pe####.\n##########\n\n....######\n....###b#.\n....###...\n.####.....\n.#.e.....*\n.#.##...**\n##.####..*\n..p####...\n##########\n\n..########\n..###b#..#\n..###.....\n###.......\n.pe....***\n.##...**.*\n.####..***\n.####...wd\n########ww\n\n##########\n###b#..###\n###.....##\n#........#\npe...***.#\n#...**.*.#\n###..***w#\n###...wd*e\n######www#\n\nmessage 9 of 10\n##########\n###b#..###\n###.....##\n#........#\n.p...***.#\n#...**.*.#\n###..***w#\n###...wd*e\n######www#\n\n(move)\n\n########..\n#b#..###..\n#aa...##..\n.....a.#..\n....aa.#..\n....a..#..\n#...a.f###\n#...kj.oe.\n####fkf###\n\n######....\n#..###....\na...##....\n...a.#....\n..aa.#....\n..a..#...#\n..a.k#####\n..fj.ape..\n##kfk#####\n\n####......\n.###......\n..##......\n.a.#......\naa.#......\na..#...###\na.f#####..\nkj.a.pe..#\nfkf#######\n\n##......##\n##......##\n##......##\n.#......##\n.#......#.\n.#...####.\nk#####....\n.a..pe.###\nk#########\n\nmessage I will avoid my fears\n\n......####\n......####\n......####\n......###.\n......#...\n...####...\n####....*.\n...pe###..\n##########\n\n....######\n....####bb\n....####bb\n....###.bb\n....#....b\n.####...b.\n##.e..*..b\n..p###..bb\n##########\n\n..########\n..####xx..\n..####xx.x\n..###.xx.x\n..#....x..\n###...x.xx\n.pe.*..x..\n.###..xx##\n##########\n\n##########\n####bb..de\n####bb.b.w\n###.bb.b.w\n#....b...w\n#...b.bb.w\npe*..b...w\n##..bb####\n##########\n\nmessage 10 of 10\n##########\n####bb..de\n####bb.b.w\n###.bb.b.w\n#....b...w\n#...b.bb.w\n.p*..b...w\n##..bb####\n##########\n\n(move)\n##########\n##xx..jpe.\n##xx..xk##\n#xxx...f.#\nx......k.#\n......xf.#\n.....xxk.#\n..xx####.#\n########.#\n\n##########\nbb..j.pe.#\nbb..bf##.#\nbb...k.#.#\n.....f.#.#\n....bk.#.#\n...bbf.#.#\nbb####.#.#\n######.#.#\n\n########..\n..j..pe#..\n..xk##.#..\n...f.#.#..\n...k.#.#..\n..xf.#.#..\n.xxk.#.#..\n####.#.#..\n####.#.#..\n\n\n######....\nj...p#....\nbf##e#....\n.k.#.#....\n.f.#.#....\nbk.#.#....\nbf.#.#....\n##.#.#....\n##.#.#....\n\nxk##p#....\n.f.#e#....\n.k.#.#....\nxf.#.#....\nxk.#.#....\n##.#.#....\n##.#.#....\n...#.#....\nwwwwywwwww\n\n.k.#p#....\n.f.#e#....\nbk.#.#....\nbf.#.#....\n##.#.#....\n##.#.#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\n \n message I will be consumed by these flames\n \n.k.#p#....\nxf.#e#....\nxk.#.#....\n##.#.#....\n##.#.#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\n\n\nbk.#p#....\nbf.#e#....\n##.#.#....\n##.#.#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\n\nxk.#p#....\n##.#e#....\n##.#.#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\n\n##.#p#....\n##.#e#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\n##.#p#....\n...#e#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\n...#p#....\nwwwwuwwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\nrwwwqwwwwr\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwiii%%iiiw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nrwwwwwwwwr\n\n\n message I will become more than I am\nmessage THE END\n(\n#www######\n#*.wwwwww#\n#.d...d.de\n#p.###b.b#\n#...##...#\n#.b....*.#\n##..*.*..#\n#####...##\n##########)\n(\n##########\n##.*.....@\n#..wwww.##\n#p.ww...##\n#.....*.##\n#.*.www.##\n#...###w##\n##.b.www##\n####www###)\n\n\n\n\n\n",[3,0,0,3,3,0,3,3,2,2],"background wall:0,0,0,0,0,background:1,0,0,0,0,\n0,0,0,1,1,1,0,0,0,0,\n0,1,1,1,1,1,0,0,0,0,\n1,1,background barrel:2,1,1,0,0,0,1,1,\nbackground fireper1:3,ash background:4,3,1,0,0,background crate:5,1,4,1,\n1,1,1,0,0,1,1,1,background player:6,5,\n1,1,0,0,background pit:7,0,1,1,1,1,\n0,0,0,7,0,0,0,0,0,0,\n0,0,background pit target:8,0,0,0,0,0,0,0,\n",80,"1627779570245.4102"] + ["title The Flames\nauthor Rosden Shadow [Mark Signorelli]\nhomepage rosden.itch.io\n\n========\nOBJECTS\n========\n\nBackground\n#5BB205 #34960A #18820A\n11010\n20101\n02010\n20201\n02022\n\nfilledground\n#AD6A06 #7F370B #59160A \n11010\n20101\n02010\n20201\n02022\n\nTarget\nDarkBlue\n(\n.....\n.000.\n.0.0.\n.000.\n.....\n)\n.....\n.....\n.....\n.....\n.....\n\nWall\n#787878 #444444 #a7a6a6\n02222\n10002\n10002\n10002\n11110\n\nwoodWall\n#7F370B #59160A #C67B09\n02222\n10002\n10002\n10002\n11110\n\nwoodWallx\n#7F370B #59160A #C67B09\n02222\n10002\n10002\n10002\n11110\n\nPlayer\n#EE1C24 white blue\n.011.\n.012.\n.011.\n.000.\n.0.0.\n(\n#62199E #A91ABF\n.011.\n01111\n01111\n01.01\n...01)\n\nPlayer1\n#62199E #A91ABF\n.011.\n01111\n01111\n01.01\n01...\nPlayerx1\n#62199E #A91ABF\n.011.\n01111\n01111\n01.01\n01...\n\nPlayerx2\n#62199E #A91ABF\n.011.\n01111\n01111\n01.01\n01...\n\n\n\nCrate\n#BA4D0E #91290D #F99807\n.222.\n10022\n10002\n11002\n.111.\n\nfireCrate1\n#BA4D0E #91290D #F99807 red yellow\n.3.3.\n10022\n10002\n11002\n.111.\n\nfireCrate2\n#BA4D0E #91290D #F99807 red yellow\n..3..\n.343.\n10002\n11002\n.111.\n\nfireCrate3\n#BA4D0E #91290D #F99807 red yellow\n.3.3.\n34343\n43434\n11002\n.111.\n\nfireCrate4\n#BA4D0E #91290D #F99807 red yellow\n..3..\n.343.\n34343\n43434\n.111.\n\n\n(\nfireper1\nred yellow\n.0.0.\n01010\n10101\n01010\n.010.\n\nfireper2\nred yellow\n..0..\n.010.\n01010\n10101\n.101.\n)\n\nfireper1\nred yellow\n00000\n01110\n01010\n01110\n00000\n\nfireper2\nred yellow\n00000\n00000\n00100\n00000\n00000\n\nfireper1x\nred yellow\n00000\n01110\n01010\n01110\n00000\n\nfireper2x\nred yellow\n00000\n00000\n00100\n00000\n00000\n\nfireper1xx\nred yellow\n00000\n01110\n01010\n01110\n00000\n\nfireper2xx\nred yellow\n00000\n00000\n00100\n00000\n00000\n\nfirex1\nred \n\n\nfirex2\nred\n\nfirex3\nred \n\n\nfirex4\nred\n\nfirex5\nred \n\nfirex6\nred\n\nash\nblack #333333\n.....\n.....\n..1..\n.011.\n00001\n\npit\nblack #7F370B\n11111\n11111\n00000\n00000\n00000\n\n\nbarrel\nred #444444 black yellow\n.0.0.\n.303.\n.211.\n.211.\n.222.\n\nbarrel1\nred #444444 black yellow\n..0..\n.030.\n.211.\n.211.\n.222.\n\nbarrelx1\nred \n\n\nbarrelx2\nred \n\nendflame\nblack \n.....\n.....\n.....\n.....\n.....\n\nflametrigger\nblack \n.....\n.....\n.....\n.....\n.....\n\nend1\nblack \n.....\n.....\n.....\n.....\n.....\n\nend2\nblack \n.....\n.....\n.....\n.....\n.....\n\nend3\nblack \n.....\n.....\n.....\n.....\n.....\n\nsrs\nblack \n.....\n.....\n.....\n.....\n.....\n\nbedup\nwhite #D7D7D7 #99122D #EE1C24 \n00000\n00000\n11111\n23333\n23333\n\nbeddown\nwhite #D7D7D7 #99122D #EE1C24 \n23333\n23333\n23333\n23333\n22222\n\ntable \n#FFC300 #BA6803 #FFF465\n22222\n00000\n0...0\n0...0\n0...0\n\nchair\n #BA6803 #FFC300 #FFF465\n.2...\n.2...\n.2...\n.211.\n.2.1.\n\nchair2\n #BA6803 #FFC300 #FFF465\n...2.\n...2.\n...2.\n.112.\n.1.2.\n\ncupboard\n#FFC300 #BA6803 black #FFF465\n.333.\n10003\n10003\n11110\n0...0\n=======\nLEGEND\n=======\n\n(Player = Player1 or fireper1x)\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\n(O = endarea)\ne = Target\n\nf = fireper1\nk = fireper2\n\nw = woodwall\nr=woodwallx\nd = pit\nj= filledground\nl = filledground and player\ng = pit and Target\nb=barrel\nx=barrel1\nt=barrel1 and target\na=ash\no=ash and player\n\ny=endflame and filledground\n%=endflame and filledground and end1 and flametrigger and srs\ni=endflame and filledground and flametrigger\nq=filledground and endflame and player\nu=filledground and target\n\nn=bedup\nm=beddown\nz=table and filledground\nc=chair and filledground\nh=chair2 and filledground\n&=cupboard and filledground\n\n\n=======\nSOUNDS\n=======\n\nplayer MOVE 35431509(97509308)\nbarrel MOVE 61477902\nbarrel1 MOVE 61477902\n\n\nCrate MOVE 36772507\n\nsfx1 2322302 (flame)\nsfx2 78713302(5964902) (woodwall flame)\nsfx3 47353904 (pit fill)\n\nsfx4 77411903 (test sound)\n\nshowmessage 42200307\nclosemessage 42200307\n\nstartgame 9611309\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nfilledground\nTarget(, endarea)\nflametrigger\nash,endflame\nPlayer,player1, Wall, woodwall,woodwallx, Crate, fireper1,fireper2,firex3,firex4,firex1,firex2,playerx1,playerx2,pit,barrel,barrel1,barrelx1,barrelx2,firecrate1,firecrate2,firecrate3,firecrate4,bedup,beddown,table,chair,chair2,cupboard\nend1,end2,end3\nfireper1x,fireper2x,fireper1xx,fireper2xx,firex5,firex6\nsrs\n\n======\nRULES\n======\n\n\n([> player][ player1] -> [> player] [> player1])\n\n(Horizontal [< player] -> [< player1]))\n\n[flametrigger|player] [ woodwallx] ->[flametrigger|player] [fireper1x]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n([ > Player1 | Crate ] -> [ > Player1 | > Crate ])\n\n[ > Player | barrel ] -> [ > Player | > barrel ]\n[ > Player | barrel1 ] -> [ > Player | > barrel1 ]\n\n[ > Player | firecrate1 ] -> [ > Player | > firecrate1 ] \n[ > Player | firecrate2 ] -> [ > Player | > firecrate2 ] \n[ > Player | firecrate3 ] -> [ > Player | > firecrate3 ] \n[ > Player | firecrate4 ] -> [ > Player | > firecrate4 ]\n\n[> crate | pit]-> [|filledground] sfx3\n[> firecrate1 | pit]-> [|filledground]sfx3\n[> firecrate2 | pit]-> [|filledground]sfx3\n[> firecrate3 | pit]-> [|filledground]sfx3\n[> firecrate4 | pit]-> [|filledground]sfx3\n\n(ee\n[> crate | pitx]-> [|filledground] sfx3\n[> firecrate1 | pitx]-> [|filledground]sfx3\n[> firecrate2 | pitx]-> [|filledground]sfx3\n[> firecrate3 | pitx]-> [|filledground]sfx3\n[> firecrate4 | pitx]-> [|filledground]sfx3\n)\n[player|fireper1x]->[|fireper1x]\n[player|fireper2x]->[|fireper2x]\n\n\n[barrel | woodwall] ->[barrel|fireper1]\n[barrel1 | woodwall] ->[barrel1|fireper1]\n\n\n\n[fireper2 | woodwall] ->[fireper2|fireper1]\n[fireper2x | woodwall] ->[fireper2x|fireper1x]\n\n[fireper2x | endflame] ->[fireper2x|fireper1x]\n\n([firecrate1 | woodwall] ->[firecrate1|fireper1])\n([firecrate1 |crate] -> [firecrate1|firecrate1])\n\n[firecrate2 | woodwall] ->[firecrate2|fireper1]\n[firecrate2 |crate] -> [firecrate2|firecrate1]\n\n[firecrate3 | woodwall] ->[firecrate3|fireper1]\n[firecrate3 |crate] -> [firecrate3|firecrate1]\n\n[firecrate4 | woodwall] ->[firecrate4|fireper1]\n[firecrate4 |crate] -> [firecrate4|firecrate1]\n\n(\n[Action Player | crate] -> [Action Player |fire]\n[Action Player1 | crate] -> [Action Player1 |fire])\n\n\n\nlate [end3|fireper1x]-> [target|player]\nlate [srs|target] -> [fireper1xx|target]\n\nlate [end2] -> [end3]\nlate [end1|fireper2x]->[end2|fireper2x]\n\nlate [firecrate4] -> [ash] sfx1\nlate [firecrate3] -> [firecrate4] sfx1\nlate [firecrate2] -> [firecrate3] sfx1\nlate [firecrate1] -> [firecrate2] sfx1\n\nlate [barrel|crate] -> [barrel|firecrate1] sfx1\nlate [barrel1|crate] -> [barrel1|firecrate1] sfx1\n\nlate [fireper2 |crate] -> [fireper2|firecrate1] sfx1\nlate [fireper1 |crate] -> [fireper1|firecrate1] sfx1\n\nlate [fireper1] -> [firex1]\nlate [fireper2] -> [firex2]\nlate [firex1] -> [fireper2] \nlate [firex2] -> [fireper1] \n\nlate [fireper1x] -> [firex3]\nlate [fireper2x] -> [firex4]\nlate [firex3] -> [fireper2x] \nlate [firex4] -> [fireper1x] \n\nlate [fireper1xx] -> [firex5]\nlate [fireper2xx] -> [firex6]\nlate [firex5] -> [fireper2xx] \nlate [firex6] -> [fireper1xx] \n\nlate [barrel] -> [barrelx1]\nlate [barrel1] -> [barrelx2]\nlate [barrelx1] -> [barrel1]\nlate [barrelx2] -> [barrel]\n(\nlate [player] -> [playerx1]\nlate [player1] -> [playerx2]\nlate [playerx1] -> [player1]\nlate [playerx2] -> [player])\n\n==============\nWINCONDITIONS\n==============\n\nsome Player on target\n\n(some Player1 on target)\n(All Player on endarea)\n\n=======\nLEVELS\n=======\n\nmessage zzz..z.zz\n\nmessage z.zzzz.z.z\n\nmessage zz.zz..z.z\n\nmessage z....(blink) (blink)\n\n..........\n.wwwwwwww.\n.wnjjj&jw.\n.wmljjjjw#\n.wjjjjjjje\n.wjczhjjw#\n.wjjjjjjw.\n.wwwwwwww.\n..........\n\n..........\nwwwwwww...\nnjjj&jw..e\nmjjjjjw###\njjjjjjle..\njczhjjw###\njjjjjjw...\nwwwwwww...\n..........\n\n..........\nwwwww.....\njj&jw..e..\njjjjw#####\njjjjjpe...\nzhjjw#####\njjjjw.....\nwwwww.....\n..........\n\n........##\nwww.....#.\n&jw.....#.\njjw######.\njjj.pe....\njjw######b\njjw.....#.\nwww.....#.\n........##\n\n......####\nw.....#...\nw.....#...\nw######...\nj..pee....\nw######x.*\nw.....#...\nw.....#.##\n......####\n\nmessage so I am on a journey to ignite the flames\n\n....######\n....#...##\n....#....#\n#####....*\n..pe.....#\n#####b.*.#\n....#...##\n....#.####\n....######\n\n..########\n..#...####\n..#....###\n###....**#\n.pe....#..\n###x.*.#..\n..#...##..\n..#.####..\n..########\n\n##########\n#...######\n#....#####\n#....**###\npe...#...#\n#b.*.#...#\n#...##...e\n#.####...#\n##########\n\nmessage 1 of 10\n\n##########\n#...######\n#....#####\n#....**###\n.p...#...#\n#b.*.#...#\n#...##...e\n#.####...#\n##########\n\n(move)\n########..\n..######..\n...#####..\n..aaa###..\n...#...#..\n...#...###\n..##...pe.\n####...##.\n##########\n\n######....\n######....\n.#####....\naaa###....\n.#...#....\n.#...####.\n##....pe##\n##...##...\n##########\n\n####......\n####......\n####......\na###......\n...#......\n...####...\n.....p####\n...##.e...\n##########\n\n##......##\n##......#w\n##......#w\n##......#.\n.#......#.\n.####...#.\n....######\n.##.pe....\n##########\n\nmessage even though the fire fills me with terror\n\n......####\n......#www\n......#www\n......#...\n......#..*\n###...#...\n..######..\n#..pe....#\n##########\n\n....######\n....#www##\n....#wwwww\n....#.....\n....#..*..\n#...#...x.\n######..##\n..pe...###\n##########\n\n..########\n..#www##.*\n..#wwwwwdw\n..#.....b.\n..#..*....\n..#...b..#\n####..####\n.pe..#####\n##########\n\n##########\n#www##.*d.\n#wwwwwdw##\n#.....x.##\n#..*....##\n#...x..###\n##..######\npe.#######\n##########\n\nmessage 2 of 10\n##########\n#www##.*de\n#wwwwwdw##\n#.....b.##\n#..*....##\n#...b..###\n##..######\n.p.#######\n##########\n\n(move)\n\n##########\nkf##..jpe.\nfkfkjw####\n......##..\n......##..\n.....###..\n.x######..\n.#######..\n########..\n\n##########\n##..j.pe..\nkfjw#####.\n....##..#.\n....##..#.\n...###..#.\n######..#.\n######..#.\n######..##\n\n#########.\n..j..pe.#.\njw#####.#.\n..##..#.#.\n..##..#.#.\n.###..#.#.\n####..#.##\n####..#...\n####..####\n\n#######.#w\nj...pe#.#w\n#####.#.ww\n##..#.#.ww\n##..#.#.ww\n##..#.#.ww\n##..#.##w.\n##..#.....\n##..######\n\n\nmessage I was scared by what the fire could seem to claim\n\n#####.#www\n...p#.#w..\n###.#.ww.w\n..#.#.ww..\n..#.#.ww.w\n..#.#.ww.w\n..#.##w.*w\n..#.e.....\n..########\n\n\n###.#wwwww\n..#.#w....\n#.#.ww.www\n#.#.ww....\n#.#.ww.www\n#.#.ww.w..\n#.##w.*www\n#.pee.....\n##########\n\n\n#.#wwwwwww\n#.#w....*.\n#.ww.wwww.\n#.ww....w.\n#.ww.wwww.\n#.ww.w....\n##w.*www..\n.pe.......\n##########\n\n#wwwwwww##\n#w....*..g\nww.wwww..#\nww....w..#\nww.wwww..#\nww.w.....#\nw.*www.b.#\npe.......#\n##########\n\nmessage 3 of 10\n#wwwwwww##\n#w....*..g\nww.wwww..#\nww....w..#\nww.wwww..#\nww.w.....#\nw.*www.b.#\n.p.......#\n##########\n\n(move)\nfkfkfk####\n.......le.\n.kfkf..###\na...k..#..\n.kfkf..#..\n.f.....#..\n.kfk...#..\n.......#..\n########..\n\nkfkf######\n.....jpe..\nkfk..#####\n..f..#...#\nkfk..#....\n.....#....\nkf...#....\n.....#....\n######....\n\nfk########\n...j.pe..#\nf..#####..\nk..#...###\nf..#......\n...#......\n...#......\n...#......\n####......\n\n##########\n.j..pe.##.\n.#####....\n.#...####.\n.#......#.\n.#......#.\n.#......#.\n.#......#.\n##......##\n\nmessage all my excuses made the fire seem scarier\n\n##########\n...pe##...\n####.....w\n...####...\n......#..w\n......#.**\n......#..w\n......#..w\n......####\n\n##########\n..p##.....\n##.e...www\n.####.....\n....#..w.#\n....#.**..\n....#..w..\n....#..ww.\n....######\n\n##########\n.##.......\n.pe..wwww.\n###.......\n..#..w.###\n..#.**..##\n..#..w..b.\n..#..ww...\n..########\n\n##########\n#.......##\npe.wwww.*e\n#........#\n#..w.###.#\n#.**..##.#\n#..w..b..#\n#..ww....#\n##########\n\nmessage 4 of 10\n##########\n#.......##\n.p.wwww.*e\n#........#\n#..w.###.#\n#.**..##.#\n#..w..b..#\n#..ww...##\n##########\n\n(move)\n########..\n......####\n.kfkf..pe.\n..a...a###\n.k.###.#..\n...b##.#..\n.w.....#..\n.ww...##..\n########..\n\n\n######....\n....######\nkfk..ape..\na...a#####\n.###.#...#\n.x##.#...#\n.....#...#\nw...##....\n######....\n\n\n####......\n..########\nf..a.pe..#\n..a#####.#\n##.#...#.#\n##.#...#..\n...#...###\n..##......\n####......\n\n\n##......##\n##########\n.a..pe.###\na#####.##.\n.#...#.##.\n.#...#....\n.#...#####\n##......##\n##......##\n\nmessage I avoided the flames until it was too much to bear\n\n......###w\n########*.\n...pe###..\n####.##...\n...#.##.*.\n...#......\n...######.\n......###.\n......####\n\n....###www\n######*...\n..p###..ww\n##.##....w\n.#.##.*.*w\n.#.e......\n.######.*.\n....###...\n....######\n\n..###wwwww\n####*...d.\n.###..wwww\n.##....www\n.##.*.*www\n.pe......w\n#####.*.b.\n..###.....\n..########\n\n###wwwwww#\n##*...d..g\n##..wwwwww\n#....wwww#\n#.*.*wwww#\npe.....ww#\n###.*.x.w#\n###.....w#\n##########\n\nmessage 5 of 10\n###wwwwww#\n##*...d..g\n##..wwwwww\n#....wwww#\n#.*.*wwww#\n.P.....ww#\n###.*.b.w#\n###.....w#\n##########\n(move)\n\n#wwwwww###\na...j..le.\na.wwwwww##\n...wwww#..\n...wwww#..\n.....ww#..\n#.....w#..\n#.....w#..\n########..\n\nwwwww#####\n..j..jpe..\nwwwwww####\n.wwww#...#\n.wwww#...#\n...ww#...#\n....w#...#\n....w#...#\n######....\n\nwww#######\nj..j.pe..#\nwwww####.#\nwww#...#.#\nwww#...#.#\n.ww#...#.#\n..w#...#..\n..w#...###\n####......\n\nw#########\n.j..pe.###\nww####.##.\nw#...#.##.\nw#...#.##.\nw#...#.##.\nw#...#....\nw#...####.\n##......##\n\nmessage now its time to start controlling the fire\n\n##########\n...pe###..\n####.##...\n...#.##...\n...#.##...\n...#.##...\n...#......\n...####.b.\n......####\n\n##########\n..p###....\n##.##.....\n.#.##.....\n.#.##...##\n.#.##...##\n.#.e.....#\n.####.x..#\n....######\n\n##########\n.###......\n.##.....*.\n.##......*\n.##...##*.\n.##...##.*\n.pe....#*.\n###.b..#..\n..########\n\n##########\n##......##\n#.....*..#\n#......*.#\n#...##*..#\n#...##.*.#\npe...#*..#\n#.x..#..*e\n##########\n\nmessage 6 of 10\n##########\n##......##\n#.....*..#\n#......*.#\n#...##*..#\n#...##.*.#\n.p...#*..#\n#.b..#..*e\n##########\n\n(move)\n########..\n.a....##..\n.....a.#..\n.......#..\na.##...#..\n..##a..#..\n...#...###\n...#.a.oe.\n##########\n\n######....\n....##....\n...a.#....\n.....#....\n##...#...#\n##a..#...#\n.#...#####\n.#.a.ape..\n##########\n\n####......\n..##......\n.a.#......\n...#......\n...#...###\na..#...#..\n...#####.#\n.a.a.pe..#\n##########\n\n##......##\n##......##\n.#......##\n.#......##\n.#...####.\n.#...#....\n.#####.##.\n.a..pe.###\n##########\n\nmessage now its time to get ready and prepare\n\n......####\n......####\n......####\n......##..\n...####...\n...#....b.\n####.##...\n...pe###..\n##########\n\n....######\n....#####*\n....####..\n....##..*.\n.####...w.\n.#.e..x.*.\n##.##...w.\n..p###....\n##########\n\n..########\n..#####*.d\n..####...#\n..##..*...\n###...w...\n.pe.b.*.*.\n.##...w...\n.###.....#\n##########\n\n##########\n#####*.ddg\n####...###\n##..*...##\n#...w...##\npex.*.*.##\n#...w...##\n##.....###\n##########\n\nmessage 7 of 10\n##########\n#####*.ddg\n####...###\n##..*...##\n#...w...##\n.pb.*.*.##\n#...w...##\n##.....###\n##########\n(move)\n\n##########\n###a.jjle.\n##b..#####\n......##..\n..f...##..\n......##..\n..w...##..\n.....###..\n########..\n\n##########\n#a.jjjpe..\nx..#######\n....##...#\nk...##...#\n....##...#\nw...##...#\n...###....\n######....\n\n##########\n.jjj.pee.#\n.#######.#\n..##...#.#\n..##...#.#\n..##...#..\n..##...###\n.###......\n####......\n\n########ww\njj..pe.#w#\n######.#w#\n##...#.#ww\n##...#.###\n##...#....\n##...####.\n##......##\n##......##\n\nmessage the time is gone to just aspire\n\n######wwww\n...pe#w##.\n####.#w##.\n...#.#www.\n...#.###w.\n...#...b..\n...####...\n......##..\n......####\n\n####wwwwww\n..p#w##...\n##.#w##...\n.#.#www.*.\n.#.###w...\n.#.e.x....\n.####.....\n....##....\n....######\n\n##wwwwwwww\n.#w##.....\n.#w##.....\n.#www.*.*.\n.###w.....\n.peb......\n###......d\n..##....dd\n..########\n\nwwwwwwwwww\nw##......w\nw##......w\nwww.*.*..w\n##w......w\npt.......w\n#......dww\n##....dd*g\n##########\n\nmessage 8 of 10\nwwwwwwwwww\nw##......w\nw##......w\nwww.*.*..w\n##w......w\n.pb......w\n#......dww\n##....dd*g\n##########\n\n(move)\n\nfkfkfkfk..\n#......f..\n#......k..\nk......f..\nf......k..\n.b.....f..\n.....jfk##\n....dj.le.\n##########\n\nkfkfkf....\n.....k....\n.....f....\n.....k...#\n.....f...#\n.....k...#\n...jkf####\n..dj.jpe..\n##########\n\nfkfk......\n...f......\n...k......\n...f...###\n...k...#..\n...f...#.#\n.jfk####.#\ndj.j.pe..#\n##########\n\nkf......##\n.k......##\n.f......##\n.k...####.\n.f...#....\n.k...#.##.\nkf####.###\n.j..pe.###\n##########\n\nmessage no more excuses for playing unnecessary games\n\n......####\n......###b\n......###.\n...####...\n...#......\n...#.##...\n####.####.\n...pe####.\n##########\n\n....######\n....###b#.\n....###...\n.####.....\n.#.e.....*\n.#.##...**\n##.####..*\n..p####...\n##########\n\n..########\n..###b#..#\n..###.....\n###.......\n.pe....***\n.##...**.*\n.####..***\n.####...wd\n########ww\n\n##########\n###b#..###\n###.....##\n#........#\npe...***.#\n#...**.*.#\n###..***w#\n###...wd*e\n######www#\n\nmessage 9 of 10\n##########\n###b#..###\n###.....##\n#........#\n.p...***.#\n#...**.*.#\n###..***w#\n###...wd*e\n######www#\n\n(move)\n\n########..\n#b#..###..\n#aa...##..\n.....a.#..\n....aa.#..\n....a..#..\n#...a.f###\n#...kj.oe.\n####fkf###\n\n######....\n#..###....\na...##....\n...a.#....\n..aa.#....\n..a..#...#\n..a.k#####\n..fj.ape..\n##kfk#####\n\n####......\n.###......\n..##......\n.a.#......\naa.#......\na..#...###\na.f#####..\nkj.a.pe..#\nfkf#######\n\n##......##\n##......##\n##......##\n.#......##\n.#......#.\n.#...####.\nk#####....\n.a..pe.###\nk#########\n\nmessage I will avoid my fears\n\n......####\n......####\n......####\n......###.\n......#...\n...####...\n####....*.\n...pe###..\n##########\n\n....######\n....####bb\n....####bb\n....###.bb\n....#....b\n.####...b.\n##.e..*..b\n..p###..bb\n##########\n\n..########\n..####xx..\n..####xx.x\n..###.xx.x\n..#....x..\n###...x.xx\n.pe.*..x..\n.###..xx##\n##########\n\n##########\n####bb..de\n####bb.b.w\n###.bb.b.w\n#....b...w\n#...b.bb.w\npe*..b...w\n##..bb####\n##########\n\nmessage 10 of 10\n##########\n####bb..de\n####bb.b.w\n###.bb.b.w\n#....b...w\n#...b.bb.w\n.p*..b...w\n##..bb####\n##########\n\n(move)\n##########\n##xx..jpe.\n##xx..xk##\n#xxx...f.#\nx......k.#\n......xf.#\n.....xxk.#\n..xx####.#\n########.#\n\n##########\nbb..j.pe.#\nbb..bf##.#\nbb...k.#.#\n.....f.#.#\n....bk.#.#\n...bbf.#.#\nbb####.#.#\n######.#.#\n\n########..\n..j..pe#..\n..xk##.#..\n...f.#.#..\n...k.#.#..\n..xf.#.#..\n.xxk.#.#..\n####.#.#..\n####.#.#..\n\n\n######....\nj...p#....\nbf##e#....\n.k.#.#....\n.f.#.#....\nbk.#.#....\nbf.#.#....\n##.#.#....\n##.#.#....\n\nxk##p#....\n.f.#e#....\n.k.#.#....\nxf.#.#....\nxk.#.#....\n##.#.#....\n##.#.#....\n...#.#....\nwwwwywwwww\n\n.k.#p#....\n.f.#e#....\nbk.#.#....\nbf.#.#....\n##.#.#....\n##.#.#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\n \n message I will be consumed by these flames\n \n.k.#p#....\nxf.#e#....\nxk.#.#....\n##.#.#....\n##.#.#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\n\n\nbk.#p#....\nbf.#e#....\n##.#.#....\n##.#.#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\n\nxk.#p#....\n##.#e#....\n##.#.#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\n\n##.#p#....\n##.#e#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\n##.#p#....\n...#e#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\n...#p#....\nwwwwuwwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\nrwwwqwwwwr\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwiii%%iiiw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nrwwwwwwwwr\n\n\n message I will become more than I am\nmessage THE END\n(\n#www######\n#*.wwwwww#\n#.d...d.de\n#p.###b.b#\n#...##...#\n#.b....*.#\n##..*.*..#\n#####...##\n##########)\n(\n##########\n##.*.....@\n#..wwww.##\n#p.ww...##\n#.....*.##\n#.*.www.##\n#...###w##\n##.b.www##\n####www###)\n\n\n\n\n\n", [3, 0, 0, 3, 3, 0, 3, 3, 2, 2], "background wall:0,0,0,0,0,background:1,0,0,0,0,\n0,0,0,1,1,1,0,0,0,0,\n0,1,1,1,1,1,0,0,0,0,\n1,1,background barrel:2,1,1,0,0,0,1,1,\nbackground fireper1:3,ash background:4,3,1,0,0,background crate:5,1,4,1,\n1,1,1,0,0,1,1,1,background player:6,5,\n1,1,0,0,background pit:7,0,1,1,1,1,\n0,0,0,7,0,0,0,0,0,0,\n0,0,background pit target:8,0,0,0,0,0,0,0,\n", 80, "1627779570245.4102"] ], [ `gallery: Watch Your Step`, - ["title Watch Your Step\nauthor Aaron Steed\nhomepage www.puzzlescript.net\nrequire_player_movement\n\n========\nOBJECTS\n========\n\nBackground\n#2c2c2c #4f4f4f #ff0000 #ff0000 \n11110\n11111\n11111\n11110\n11100\n\nFloor0\n#ff0202 #ffc680 #ff952b #400040 \n.....\n..2..\n..0..\n.....\n.....\n\nFloor1\n#ff0202 #ffc680 #ff952b #400040 \n.2...\n.0...\n...2.\n...0.\n.....\n\nFloor2\n#ff0202 #ffc680 #ff952b #400040 \n.2...\n.01..\n..02.\n...0.\n.....\n\nFloor3\n#ff0202 #ffc680 #ff952b #400040 \n.2.2.\n.0.0.\n.2.2.\n.0.0.\n.....\n\nFloor4\n#ff0202 #ffc680 #ff952b #400040 \n.2.2.\n.010.\n.202.\n.0.0.\n.....\n\nTarget \n#2c2c2c #000000 #000040 #ff0000 \n02112\n21111\n11111\n11111\n21112\n\nWall \n#808080 #c0c0c0 #ff0000 #ff0000 \n11110\n11111\n11110\n11110\n01000\n\nPlayer\n#ffffff #c0c0c0 #000000 #ff0000 \n.000.\n00000\n02020\n00001\n11111\n\nCrate0\n#ff0202 #ffc680 #ff952b #000000 \n11111\n12220\n12320\n12220\n00000\n\nCrate1\n#ff0202 #ffc680 #ff952b #000000 \n11111\n13220\n12220\n12230\n00000\n\nCrate2\n#ff0202 #ffc680 #ff952b #000000 \n11111\n13220\n12320\n12230\n00000\n\nCrate3\n#ff0202 #ffc680 #ff952b #000000 \n11111\n13230\n12220\n13230\n00000\n\nCrate4\n#ff0202 #ffc680 #ff952b #000000 \n11111\n13230\n12320\n13230\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n0 = Crate0\n1 = Crate1\n2 = Crate2\n3 = Crate3\n4 = Crate4\n* = Target\n\nCrate = Crate0 or Crate1 or Crate2 or Crate3 or Crate4\nFloor = Floor0 or Floor1 or Floor2 or Floor3 or Floor4\nObject = Crate or Player or Wall\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFloor\nTarget\nPlayer, Wall, Crate \n\n======\nRULES \n====== \n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Crate0 | Crate0 ] -> [ | Crate1 ]\n[ > Crate1 | Crate1 ] -> [ | Crate2 ]\n[ > Crate2 | Crate2 ] -> [ | Crate3 ]\n[ > Crate3 | Crate3 ] -> [ | Crate4 ]\n\nlate [Floor4 no Object] -> [no Floor Crate0]\n\nlate [Floor3 no Object] -> [Floor4 no Object]\n[Floor2 no Object] -> [Floor3 no Object]\n[Floor1 no Object] -> [Floor2 no Object]\n[Floor0 no Object] -> [Floor1 no Object]\n[Player no Floor] -> [Player Floor0]\n\n==============\nWINCONDITIONS\n==============\n\nAny Crate4\n\n======= \nLEVELS\n=======\n\nmessage each step you take leaves a seed that grows into a no 1 crate\n\nmessage push two crates of the same number together to make a higher number crate\n\nmessage make a no 5 crate\n\n#########\n#.......#\n#.......#\n#.......#\n#...p...#\n#.......#\n#.......#\n#.......#\n#########\n\nmessage well done, I couldn't be bothered to find out myself, do let me know\n",[3,3,2,1,1,0,0,3,3],"background wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,0,\n0,1,background crate0:2,background floor1:3,background floor2:4,background floor4:5,1,1,0,\n0,1,1,background floor0:6,2,2,1,1,0,\n0,1,1,background player:7,2,2,1,1,0,\n0,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n",3,"1627779589660.2917"] + ["title Watch Your Step\nauthor Aaron Steed\nhomepage www.puzzlescript.net\nrequire_player_movement\n\n========\nOBJECTS\n========\n\nBackground\n#2c2c2c #4f4f4f #ff0000 #ff0000 \n11110\n11111\n11111\n11110\n11100\n\nFloor0\n#ff0202 #ffc680 #ff952b #400040 \n.....\n..2..\n..0..\n.....\n.....\n\nFloor1\n#ff0202 #ffc680 #ff952b #400040 \n.2...\n.0...\n...2.\n...0.\n.....\n\nFloor2\n#ff0202 #ffc680 #ff952b #400040 \n.2...\n.01..\n..02.\n...0.\n.....\n\nFloor3\n#ff0202 #ffc680 #ff952b #400040 \n.2.2.\n.0.0.\n.2.2.\n.0.0.\n.....\n\nFloor4\n#ff0202 #ffc680 #ff952b #400040 \n.2.2.\n.010.\n.202.\n.0.0.\n.....\n\nTarget \n#2c2c2c #000000 #000040 #ff0000 \n02112\n21111\n11111\n11111\n21112\n\nWall \n#808080 #c0c0c0 #ff0000 #ff0000 \n11110\n11111\n11110\n11110\n01000\n\nPlayer\n#ffffff #c0c0c0 #000000 #ff0000 \n.000.\n00000\n02020\n00001\n11111\n\nCrate0\n#ff0202 #ffc680 #ff952b #000000 \n11111\n12220\n12320\n12220\n00000\n\nCrate1\n#ff0202 #ffc680 #ff952b #000000 \n11111\n13220\n12220\n12230\n00000\n\nCrate2\n#ff0202 #ffc680 #ff952b #000000 \n11111\n13220\n12320\n12230\n00000\n\nCrate3\n#ff0202 #ffc680 #ff952b #000000 \n11111\n13230\n12220\n13230\n00000\n\nCrate4\n#ff0202 #ffc680 #ff952b #000000 \n11111\n13230\n12320\n13230\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n0 = Crate0\n1 = Crate1\n2 = Crate2\n3 = Crate3\n4 = Crate4\n* = Target\n\nCrate = Crate0 or Crate1 or Crate2 or Crate3 or Crate4\nFloor = Floor0 or Floor1 or Floor2 or Floor3 or Floor4\nObject = Crate or Player or Wall\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFloor\nTarget\nPlayer, Wall, Crate \n\n======\nRULES \n====== \n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Crate0 | Crate0 ] -> [ | Crate1 ]\n[ > Crate1 | Crate1 ] -> [ | Crate2 ]\n[ > Crate2 | Crate2 ] -> [ | Crate3 ]\n[ > Crate3 | Crate3 ] -> [ | Crate4 ]\n\nlate [Floor4 no Object] -> [no Floor Crate0]\n\nlate [Floor3 no Object] -> [Floor4 no Object]\n[Floor2 no Object] -> [Floor3 no Object]\n[Floor1 no Object] -> [Floor2 no Object]\n[Floor0 no Object] -> [Floor1 no Object]\n[Player no Floor] -> [Player Floor0]\n\n==============\nWINCONDITIONS\n==============\n\nAny Crate4\n\n======= \nLEVELS\n=======\n\nmessage each step you take leaves a seed that grows into a no 1 crate\n\nmessage push two crates of the same number together to make a higher number crate\n\nmessage make a no 5 crate\n\n#########\n#.......#\n#.......#\n#.......#\n#...p...#\n#.......#\n#.......#\n#.......#\n#########\n\nmessage well done, I couldn't be bothered to find out myself, do let me know\n", [3, 3, 2, 1, 1, 0, 0, 3, 3], "background wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,0,\n0,1,background crate0:2,background floor1:3,background floor2:4,background floor4:5,1,1,0,\n0,1,1,background floor0:6,2,2,1,1,0,\n0,1,1,background player:7,2,2,1,1,0,\n0,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n", 3, "1627779589660.2917"] ], [ `gallery: Spikes 'n' Stuff`, - ["title Spikes 'n' Stuff\n\nauthor Alan Hazelden\n\n(verbose_logging)\n\nagain_interval 0.05\nrealtime_interval 0.05\n\nflickscreen 11x11\n\nnoaction\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\n\nBackground\nDARKBLUE BLACK\n11111\n01111\n11101\n11111\n10111\n\nWall\n#767d80 #697175\n00111\n11101\n01001\n11110\n10011\n\nTarget\ntransparent\n(DarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....)\n\nExit\ntransparent\n\nArrowTrapUpReady\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n.123.\n0.2.4\n..2..\n..2..\n\nArrowTrapUpArmed\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n.153.\n0.5.4\n..5..\n..2..\n\nArrowTrapUpFired\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n01234\n..2..\n..2..\n..2..\n\nArrowTrapUpFired2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n.123.\n0.2.4\n..2..\n..2..\n\nArrowTrapUpFired3\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.....\n..2..\n.123.\n0.2.4\n..2..\n\nArrowTrapUpRearming\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.....\n.....\n..2..\n.123.\n0.2.4\n\nArrowTrapUpRearming2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.....\n..2..\n.123.\n0.2.4\n..2..\n\nArrowTrapDownReady\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n..2..\n0.2.4\n.123.\n..2..\n\nArrowTrapDownArmed\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n..5..\n0.5.4\n.153.\n..2..\n\nArrowTrapDownFired\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n..2..\n..2..\n01234\n..2..\n\nArrowTrapDownFired2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n..2..\n0.2.4\n.123.\n..2..\n\nArrowTrapDownFired3\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n0.2.4\n.123.\n..2..\n.....\n\nArrowTrapDownRearming\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n0.2.4\n.123.\n..2..\n.....\n.....\n\nArrowTrapDownRearming2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n0.2.4\n.123.\n..2..\n.....\n\nArrowTrapLeftReady\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n.1...\n22222\n.3...\n..4..\n\nArrowTrapLeftArmed\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n.1...\n25552\n.3...\n..4..\n\nArrowTrapLeftFired\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.0...\n.1...\n22222\n.3...\n.4...\n\nArrowTrapLeftFired2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n.1...\n22222\n.3...\n..4..\n\nArrowTrapLeftFired3\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n...0.\n..1..\n.2222\n..3..\n...4.\n\nArrowTrapLeftRearming\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n....0\n...1.\n..222\n...3.\n....4\n\nArrowTrapLeftRearming2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n...0.\n..1..\n.2222\n..3..\n...4.\n\nArrowTrapRightReady\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n...1.\n22222\n...3.\n..4..\n\nArrowTrapRightArmed\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n...1.\n25552\n...3.\n..4..\n\nArrowTrapRightFired\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n...0.\n...1.\n22222\n...3.\n...4.\n\nArrowTrapRightFired2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n...1.\n22222\n...3.\n..4..\n\nArrowTrapRightFired3\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.0...\n..1..\n2220.\n..3..\n.4...\n\nArrowTrapRightRearming\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n0....\n.1...\n222..\n.3...\n4....\n\nArrowTrapRightRearming2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.0...\n..1..\n2220.\n..3..\n.4...\n\n(#524432 #4d4030 #4a3c2c #443929 #403527)\n\nPlayer\n#a46422 #495e2b #493c2b #000000\n..0..\n.111.\n01110\n02220\n.2.2.\n\nPlayerDead\n#a46422 #495e2b #493c2b black white\n..00.\n.1122\n0112.\n.1122\n..00.\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\nGem\nYellow White Orange\n.000.\n01100\n01000\n00002\n.022.\n\nGemBroken\nYellow White Orange black\n.000.\n.313.\n01.0.\n03002\n..22.\n\nNoPattern\nblack\n\nSpikeTrap\ntransparent darkgreen black\n00000\n01210\n02220\n01210\n00000\n\nSpikeTrapArmed\ntransparent white transparent grey\n00000\n01210\n02220\n01210\n00000\n\nSpikeTrapDeadly\ntransparent white transparent grey\n01010\n03230\n01210\n03230\n00000\n\nArrowUp\nwhite\n.....\n..0..\n..0..\n..0..\n.....\n\nArrowDown\nwhite\n.....\n..0..\n..0..\n..0..\n.....\n\nArrowLeft\nwhite\n.....\n.....\n.000.\n.....\n.....\n\nArrowRight\nwhite\n.....\n.....\n.000.\n.....\n.....\n\nArrowCollision\nwhite\n.....\n..0..\n.000.\n..0..\n.....\n\nArrowCollision2\nwhite\n...0.\n.....\n.0...\n....0\n.....\n\nLOS\nwhite\n\nWallL\n#373c3f\n0....\n0....\n0....\n0....\n0....\n\nWallR\n#373c3f\n....0\n....0\n....0\n....0\n....0\n\nWallU\n#373c3f\n00000\n.....\n.....\n.....\n.....\n\nWallD\n#373c3f\n.....\n.....\n.....\n.....\n00000\n\nWallLR\n#373c3f\n0...0\n0...0\n0...0\n0...0\n0...0\n\nWallUD\n#373c3f\n00000\n.....\n.....\n.....\n00000\n \nWallUL\n#373c3f\n0....\n.....\n.....\n.....\n.....\n \nWallUR\n#373c3f\n....0\n.....\n.....\n.....\n.....\n \nWallDL\n#373c3f\n.....\n.....\n.....\n.....\n0....\n \nWallDR\n#373c3f\n.....\n.....\n.....\n.....\n....0\n \nWallDLR\n#373c3f\n.....\n.....\n.....\n.....\n0...0\n \nWallULR\n#373c3f\n0...0\n.....\n.....\n.....\n.....\n \nWallLUD\n#373c3f\n0....\n.....\n.....\n.....\n0....\n \nWallRUD\n#373c3f\n....0\n.....\n.....\n.....\n....0\n\nBloodL1\nred\n.....\n.....\n....0\n.....\n.....\n\nBloodL2\nred\n.....\n....0\n....0\n....0\n.....\n\nBloodL3\nred\n....0\n....0\n....0\n....0\n....0\n\nBloodL4_1\nred\n....0\n....0\n...00\n...00\n....0\n\nBloodL4_2\nred\n....0\n...00\n...00\n....0\n....0\n\nBloodR1\nred\n.....\n.....\n0....\n.....\n.....\n\nBloodR2\nred\n.....\n0....\n0....\n0....\n.....\n\nBloodR3\nred\n0....\n0....\n0....\n0....\n0....\n\nBloodR4_1\nred\n0....\n0....\n00...\n00...\n0....\n\nBloodR4_2\nred\n0....\n0....\n00...\n00...\n0....\n\nBloodU1\nred\n.....\n.....\n.....\n.....\n..0..\n\nBloodU2\nred\n.....\n.....\n.....\n.....\n.000.\n\nBloodU3\nred\n.....\n.....\n.....\n.....\n00000\n\nBloodU4_1\nred\n.....\n.....\n.....\n.00..\n00000\n\nBloodU4_2\nred\n.....\n.....\n.....\n..00.\n00000\n\nBloodD1\nred\n..0..\n.....\n.....\n.....\n.....\n\nBloodD2\nred\n.000.\n.....\n.....\n.....\n.....\n\nBloodD3\nred\n00000\n.....\n.....\n.....\n.....\n\nBloodD4_1\nred\n00000\n..00.\n.....\n.....\n.....\n\nBloodD4_2\nred\n00000\n.00..\n.....\n.....\n.....\n\nBloodD4_3\nred\n00000\n.....\n.....\n.....\n.....\n\nGemMarker\ntransparent\n\n\n=======\nLEGEND\n=======\n\n\n\nArrow = ArrowLeft or ArrowRight or ArrowUp or ArrowDown\nSpikeTrapAny = SpikeTrap or SpikeTrapArmed or SpikeTrapDeadly\n\nArrowTrapReady = ArrowTrapUpReady or ArrowTrapDownReady or ArrowTrapLeftReady or ArrowTrapRightReady\nArrowTrapArmed = ArrowTrapLeftArmed or ArrowTrapRightArmed or ArrowTrapUpArmed or ArrowTrapDownArmed\nArrowTrapRearming = ArrowTrapLeftRearming or ArrowTrapRightRearming or ArrowTrapUpRearming or ArrowTrapDownRearming\nArrowTrapRearming2 = ArrowTrapLeftRearming2 or ArrowTrapRightRearming2 or ArrowTrapUpRearming2 or ArrowTrapDownRearming2\n\nArrowTrapLeftFiredAny = ArrowTrapLeftFired or ArrowTrapLeftFired2 or ArrowTrapLeftFired3\nArrowTrapRightFiredAny = ArrowTrapRightFired or ArrowTrapRightFired2 or ArrowTrapRightFired3\nArrowTrapUpFiredAny = ArrowTrapUpFired or ArrowTrapUpFired2 or ArrowTrapUpFired3\nArrowTrapDownFiredAny = ArrowTrapDownFired or ArrowTrapDownFired2 or ArrowTrapDownFired3\n\nArrowTrapFiredAnim = ArrowTrapLeftFired or ArrowTrapLeftFired2 or ArrowTrapLeftFired3 or ArrowTrapRightFired or ArrowTrapRightFired2 or ArrowTrapRightFired3 or ArrowTrapUpFired or ArrowTrapUpFired2 or ArrowTrapUpFired3 or ArrowTrapDownFired or ArrowTrapDownFired2 or ArrowTrapDownFired3\n\nArrowTrapAny = ArrowTrapReady or ArrowTrapArmed or ArrowTrapRearming or ArrowTrapRearming2 or ArrowTrapFiredAnim\n\nTriggersSpikes = Crate or Gem or Player\nTriggersArrow = Player\nKillable = Player\nNeedsTick = SpikeTrap or SpikeTrapArmed or SpikeTrapDeadly or ArrowTrapAny\n\n\nSolid = Wall or Crate or Gem or ArrowTrapAny\n\n. = Background\n# = Wall\nP = Player and exit\nq = exit\n* = Crate\n(@ = SwitchOff)\nO = Target\n% = SpikeTrap and NoPattern\n~ = Gem and GemMarker\n\ni = ArrowTrapUpReady and NoPattern\n! = ArrowTrapDownReady and NoPattern\n{ = ArrowTrapLeftReady and NoPattern\n} = ArrowTrapRightReady and NoPattern\n\nBloodLeft = BloodL1 or BloodL2 or BloodL3 or BloodL4_1 or BloodL4_2\nBloodRight = BloodR1 or BloodR2 or BloodR3 or BloodR4_1 or BloodR4_2\nBloodUp = BloodU1 or BloodU2 or BloodU3 or BloodU4_1 or BloodU4_2\nBloodDown = BloodD1 or BloodD2 or BloodD3 or BloodD4_1 or BloodD4_2 or BloodD4_3\n\nBloodL4 = BloodL4_1 or BloodL4_2\nBloodR4 = BloodR4_1 or BloodR4_2\nBloodU4 = BloodU4_1 or BloodU4_2\nBloodD4 = BloodD4_1 or BloodD4_2 or BloodD4_3\n\nBloodFinal = BloodL4 or BloodR4 or BloodU4 or BloodD4\n\nBlood = BloodLeft or BloodRight or BloodUp or BloodDown\n\nWallCoverLR = WallL or WallR or WallLR\nWallCoverUD = WallU or WallD or WallUD\nWallCoverCorner = WallUL or WallUR or WallDL or WallDR or WallDLR or WallLUD or WallRUD or WallULR\nWallCover = WallCoverLR or WallCoverUD or WallCoverCorner\n\nCoverLR = WallCoverLR\nCoverUD = WallCoverUD\n\n\n=======\nSOUNDS\n=======\n\n(Player Create 1326707)\n\nSpikeTrapDeadly Create 85964907\nArrowTrapArmed Create 9956307\nArrowTrapRearming Create 95334907\n\n(Arrow Create 3367509)\n\nArrowCollision Create 3790700\nPlayerDead Create 97930904\nGemBroken Create 48343102\n\n(sfx1 76483702) (arrow hits wall)\nsfx2 13478508 (pick up gem for first time)\n\nUndo 8748307\n(Cancel 1326707)\nRestart 28758302\n\nEndLevel 73821303\nStartGame 47020108\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nNoPattern\nBloodLeft\nBloodRight\nBloodUp\nBloodDown\nTarget, SpikeTrap, SpikeTrapArmed, SpikeTrapDeadly, Exit, GemMarker\nGemBroken\nPlayer, Wall, Crate, Gem, PlayerDead\nWallCoverUD\nWallCoverCorner\nWallCoverLR, LOS\nArrowTrapAny\nArrow, ArrowCollision, ArrowCollision2\n\n======\nRULES\n======\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\nleft [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallLUD | WallUD ]\nright [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallRUD | WallUD ]\nup [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallULR | WallLR ]\ndown [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallDLR | WallLR ]\n\nright [ WallD | Wall no WallCoverCorner no WallCoverUD ] -> [ WallD | Wall WallDL ]\nleft [ WallD | Wall no WallCoverCorner no WallCoverUD ] -> [ WallD | Wall WallDR ]\n \nright [ WallU | Wall no WallCoverCorner no WallCoverUD ] -> [ WallU | Wall WallUL ]\nleft [ WallU | Wall no WallCoverCorner no WallCoverUD ] -> [ WallU | Wall WallUR ]\n\n(Blood)\n\n[ PlayerDead Blood ] -> [ PlayerDead action Blood ] again\n\nrandom [ PlayerDead | no Blood ] -> [ > PlayerDead no SpikeTrapAny | ]\n\n[ left PlayerDead no BloodRight ] -> [ PlayerDead BloodR1 ] again\n[ right PlayerDead no BloodLeft ] -> [ PlayerDead BloodL1 ] again\n[ up PlayerDead no BloodDown ] -> [ PlayerDead BloodD1 ] again\n[ down PlayerDead no BloodUp ] -> [ PlayerDead BloodU1 ] again\n\nrandom [ PlayerDead | no Blood ] -> [ > PlayerDead no SpikeTrapDeadly | ]\n\n[ left PlayerDead no BloodRight ] -> [ PlayerDead BloodR1 ] again\n[ right PlayerDead no BloodLeft ] -> [ PlayerDead BloodL1 ] again\n[ up PlayerDead no BloodDown ] -> [ PlayerDead BloodD1 ] again\n[ down PlayerDead no BloodUp ] -> [ PlayerDead BloodU1 ] again\n\n[ PlayerDead ] -> [ stationary PlayerDead ]\n\n[ action BloodL3 ] -> [ random BloodL4 ] again\n[ action BloodL2 ] -> [ BloodL3 ] again\n[ action BloodL1 ] -> [ BloodL2 ] again\n\n[ action BloodR3 ] -> [ random BloodR4 ] again\n[ action BloodR2 ] -> [ BloodR3 ] again\n[ action BloodR1 ] -> [ BloodR2 ] again\n\n[ action BloodU3 ] -> [ random BloodU4 ] again\n[ action BloodU2 ] -> [ BloodU3 ] again\n[ action BloodU1 ] -> [ BloodU2 ] again\n\n[ action BloodD3 ] -> [ random BloodD4 ] again\n[ action BloodD2 ] -> [ BloodD3 ] again\n[ action BloodD1 ] -> [ BloodD2 ] again\n\n[ BloodL3 no PlayerDead ] -> [ random BloodL4 ] again\n[ BloodL2 no PlayerDead ] -> [ BloodL3 ] again\n[ BloodL1 no PlayerDead ] -> [ BloodL2 ] again\n\n[ BloodR3 no PlayerDead ] -> [ random BloodR4 ] again\n[ BloodR2 no PlayerDead ] -> [ BloodR3 ] again\n[ BloodR1 no PlayerDead ] -> [ BloodR2 ] again\n\n[ BloodU3 no PlayerDead ] -> [ random BloodU4 ] again\n[ BloodU2 no PlayerDead ] -> [ BloodU3 ] again\n[ BloodU1 no PlayerDead ] -> [ BloodU2 ] again\n\n[ BloodD3 no PlayerDead ] -> [ random BloodD4 ] again\n[ BloodD2 no PlayerDead ] -> [ BloodD3 ] again\n[ BloodD1 no PlayerDead ] -> [ BloodD2 ] again\n\nleft [ action BloodR4 | no Blood ] -> [ BloodR4 | BloodL1 ] again\nright [ action BloodL4 | no Blood ] -> [ BloodL4 | BloodR1 ] again\nup [ action BloodD4 | no Blood ] -> [ BloodD4 | BloodU1 ] again\ndown [ action BloodU4 | no Blood ] -> [ BloodU4 | BloodD1 ] again\n\n[ Blood no BloodFinal ] -> again\n\n(arrow firing anim)\n\n[ stationary Player ] [ ArrowTrapFiredAnim ] -> [ Player ] [ action ArrowTrapFiredAnim ]\n[ PlayerDead ] [ ArrowTrapFiredAnim ] -> [ PlayerDead ] [ action ArrowTrapFiredAnim ]\n\n[ ArrowTrapAny no ArrowTrapFiredAnim Target ] -> [ ArrowTrapAny ]\n\n[ action ArrowTrapUpFired3 ] -> [ ArrowTrapUpRearming ]\n[ action ArrowTrapUpFired2 Target ] -> [ ArrowTrapUpFired3 ]\n[ action ArrowTrapUpFired2 no Target ] -> [ ArrowTrapUpFired2 Target ]\n[ action ArrowTrapUpFired Target ] -> [ ArrowTrapUpFired2 ]\n[ action ArrowTrapUpFired no Target ] -> [ ArrowTrapUpFired Target ]\n\n[ action ArrowTrapDownFired3 ] -> [ ArrowTrapDownRearming ]\n[ action ArrowTrapDownFired2 Target ] -> [ ArrowTrapDownFired3 ]\n[ action ArrowTrapDownFired2 no Target ] -> [ ArrowTrapDownFired2 Target ]\n[ action ArrowTrapDownFired Target ] -> [ ArrowTrapDownFired2 ]\n[ action ArrowTrapDownFired no Target ] -> [ ArrowTrapDownFired Target ]\n\n[ action ArrowTrapLeftFired3 ] -> [ ArrowTrapLeftRearming ]\n[ action ArrowTrapLeftFired2 Target ] -> [ ArrowTrapLeftFired3 ]\n[ action ArrowTrapLeftFired2 no Target ] -> [ ArrowTrapLeftFired2 Target ]\n[ action ArrowTrapLeftFired Target ] -> [ ArrowTrapLeftFired2 ]\n[ action ArrowTrapLeftFired no Target ] -> [ ArrowTrapLeftFired Target ]\n\n[ action ArrowTrapRightFired3 ] -> [ ArrowTrapRightRearming ]\n[ action ArrowTrapRightFired2 Target ] -> [ ArrowTrapRightFired3 ]\n[ action ArrowTrapRightFired2 no Target ] -> [ ArrowTrapRightFired2 Target ]\n[ action ArrowTrapRightFired Target ] -> [ ArrowTrapRightFired2 ]\n[ action ArrowTrapRightFired no Target ] -> [ ArrowTrapRightFired Target ]\n\n(Start of turn)\n\n[ Gem | moving Player ] -> [ > Gem | moving Player ]\n\n[ ArrowCollision2 ] -> []\n[ ArrowCollision ] -> [ ArrowCollision2 ] again\n\n[ moving Player ] [ NeedsTick ] -> [ moving Player ] [ action NeedsTick ]\n\n[ TriggersSpikes action SpikeTrapArmed ] -> [ TriggersSpikes SpikeTrapArmed ]\n\n[ action SpikeTrapDeadly ] -> [ SpikeTrap ]\n\n[ action SpikeTrapArmed ] -> [ SpikeTrapDeadly ]\n\n[ TriggersSpikes action SpikeTrap ] -> [ TriggersSpikes SpikeTrapArmed ]\n\n(prevent player moving out of path of arrow)\nleft [ ArrowLeft | ... | moving Player ] -> cancel\nright [ ArrowRight | ... | moving Player ] -> cancel\nup [ ArrowUp | ... | moving Player ] -> cancel\ndown [ ArrowDown | ... | moving Player ] -> cancel\n\nleft [ ArrowLeft | ... | moving Gem ] -> cancel\nright [ ArrowRight | ... | moving Gem ] -> cancel\nup [ ArrowUp | ... | moving Gem ] -> cancel\ndown [ ArrowDown | ... | moving Gem ] -> cancel\n\n[ moving Player ] [ Arrow ] -> [ moving Player ] [ action Arrow ]\n\n(movement)\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Player | Gem ] -> [ > Player | > Gem ]\n\n[ > Gem | Solid ] -> cancel\n[ > Crate | Solid ] -> cancel\n[ > Player | stationary Solid ] -> cancel\n[ > Player | ArrowTrapAny ] -> cancel\n\n[ > Player | no Solid ] -> [ | Player ]\n[ > Crate | no Solid ] -> [ | Crate ]\n[ > Gem | no Solid ] -> [ | Gem ]\n[ > Player | no Solid ] -> [ | Player ]\n\n( death )\n\n[ Player SpikeTrapDeadly ] -> [ PlayerDead SpikeTrapDeadly ] again\n\n\n( end of turn )\n\n[ action ArrowTrapUpReady ] -> [ ArrowTrapUpReady up LOS ]\n[ action ArrowTrapDownReady ] -> [ ArrowTrapDownReady down LOS ]\n[ action ArrowTrapLeftReady ] -> [ ArrowTrapLeftReady left LOS ]\n[ action ArrowTrapRightReady ] -> [ ArrowTrapRightReady right LOS ]\n\n[ > LOS | Solid ] -> [ | Solid ]\n+ [ > LOS | no Solid no LOS no TriggersArrow ] -> [ | > LOS ]\n\n[ > LOS | TriggersArrow ] -> [ < LOS | TriggersArrow ]\n\n[ > LOS no ArrowTrapReady | no Solid no LOS ] -> [ | > LOS ]\n[ > LOS no ArrowTrapReady | ArrowTrapReady ] -> [ | LOS ArrowTrapReady ]\n\n[ LOS ArrowTrapUpReady ] -> [ ArrowTrapUpArmed ]\n[ LOS ArrowTrapDownReady ] -> [ ArrowTrapDownArmed ]\n[ LOS ArrowTrapLeftReady ] -> [ ArrowTrapLeftArmed ]\n[ LOS ArrowTrapRightReady ] -> [ ArrowTrapRightArmed ]\n\n[ LOS ] -> []\n\n[ action ArrowTrapUpArmed ] -> [ ArrowTrapUpFired ArrowUp ]\n[ action ArrowTrapDownArmed ] -> [ ArrowTrapDownFired ArrowDown ]\n[ action ArrowTrapLeftArmed ] -> [ ArrowTrapLeftFired ArrowLeft ]\n[ action ArrowTrapRightArmed ] -> [ ArrowTrapRightFired ArrowRight ]\n\n[ action ArrowTrapUpFiredAny ] -> [ ArrowTrapUpRearming2 ]\n[ action ArrowTrapDownFiredAny ] -> [ ArrowTrapDownRearming2 ]\n[ action ArrowTrapLeftFiredAny ] -> [ ArrowTrapLeftRearming2 ]\n[ action ArrowTrapRightFiredAny ] -> [ ArrowTrapRightRearming2 ]\n\n[ action ArrowTrapUpRearming ] -> [ ArrowTrapUpRearming2 ]\n[ action ArrowTrapDownRearming ] -> [ ArrowTrapDownRearming2 ]\n[ action ArrowTrapLeftRearming ] -> [ ArrowTrapLeftRearming2 ]\n[ action ArrowTrapRightRearming ] -> [ ArrowTrapRightRearming2 ]\n\n[ action ArrowTrapUpRearming2 ] -> [ ArrowTrapUpReady ]\n[ action ArrowTrapDownRearming2 ] -> [ ArrowTrapDownReady ]\n[ action ArrowTrapLeftRearming2 ] -> [ ArrowTrapLeftReady ]\n[ action ArrowTrapRightRearming2 ] -> [ ArrowTrapRightReady ]\n\n(arrows)\n\n[ stationary ArrowUp ] -> [ up ArrowUp ]\n[ stationary ArrowDown ] -> [ down ArrowDown ]\n[ stationary ArrowLeft ] -> [ left ArrowLeft ]\n[ stationary ArrowRight ] -> [ right ArrowRight ]\n\n[ > Arrow | Player ] -> [ | PlayerDead ] again\n[ > Arrow | no Solid no Arrow ] -> [ | Arrow ] (again)\n[ > Arrow | Gem ] -> [ | GemBroken no SpikeTrapAny ]\n[ > Arrow | Solid ] -> [ | Solid ] sfx1\n[ > Arrow | no Solid no Arrow ] -> [ | Arrow ] (again)\n+ [ > Arrow | stationary Arrow ] -> [ | ArrowCollision ] (again)\n[ > Arrow | Gem ] -> [ | GemBroken no SpikeTrapAny ]\n[ > Arrow | Solid ] -> [ | Solid ] sfx1\n\n([ Arrow SpikeTrapArmed ] -> [ SpikeTrapArmed ]\n[ Arrow SpikeTrapDeadly ] -> [ SpikeTrapDeadly ])\n\n(checkpoints)\n\n[ Player Target ] -> [ Player action Target ]\n[ Gem Target ] -> [ Gem action Target ]\n\n[ Gem ] [ action Target ] -> checkpoint\n\n[ Player | GemMarker ] -> [ Player | ] sfx2\n\n\n==============\nWINCONDITIONS\n==============\n\nall player on exit\nall gem on exit\nsome player\nsome gem\n\n=======\nLEVELS\n=======\n\n(###p##################\n###q##############!###\n##...############...o.\n##....###########...##\n##...%.#!########..###\n###.%..%..##........##\n####..~%.o..o.......##\n#####..%..##........##\n##############i#######\n######################\n\n#####!!!!##\n#####%%%.##\n#....%.%.##\n#o###%%%###\n..#..%%%###\n###.....###\n###..#...##\n###..##...o\n##}......##\n###########)\n\n(###p###################################################\n###q##############!####################################\n###.#############...#############################!#####\n##...############...o..o...%%########....o..o.#!#%#!###\n##....###########...######%%%########.%%##..o...%.%.###\n##...%.###########.#####}%%%%#########%%#######.#%#.###\n###.%..%..##........#####%%%%######}%%%%#####...#.%.###\n####...%.o..o.......######%....#####.%#######....%#..##\n#####..%..##........######....o....o..###########.....o\n##############i########################################\n#######################################################\n\n#######################################################\n################!!!!#############################!#####\n####!!##########%%%.#########...o.o.############...####\n##.......###....%.%.#########...o.o.######...o.....####\n##......o###o###%%%#####}.....#####....###o#####....{##\n####..##.....#..%%%######.....#####..%.##..#####...####\n####%%########.....#####}.....####}.%......######.#####\n####..########..#...#####.....#####..%.##..##}......###\n.o....########..##...o.o..#i#i#####....########......o.\n#############}......#################i#########.....###\n#######################################################\n\n#######################################################\n###########################!########!###!##############\n######..o....o..!#!#######%.%#####...%.%...###.......##\n######...#####.....#######%.%#####...%.%...###.......##\n##}..%%#######}..%%#####..%.%..{###..###..####.......##\n##}.%%.%#######..%%#####..%.%%%{##}..###..####...~...##\n####..%%######}....#####..###%%###}..###..####.......##\n##..%.%%##########...o.o..###..####..###...o.o.......##\n..o##ii###########...o.o..###..o..o..###...o.o.......##\n#############################........##################\n#######################################################)\n\n###p#################################################################################################################################################################\n###q##############!####################################################!!!!#############################!################################!########!###!##############\n###.#############...#############################!#########!!##########%%%.#########...o.o.############...##########..o....o..!#!#######%.%#####...%.%...###.......##\n##...############...o..o...%%########....o..o.#!#%#!#####.......###....%.%.#########...o.o.######...o.....##########...#####.....#######%.%#####...%.%...###.......##\n##....###########...######%%%########.%%##..o...%.%.#####......o###o###%%%#####}.....#####....###o#####....{####}..%%#######}..%%#####..%.%..{###..###..####.......##\n##...%.###########.#####}%%%%#########%%#######.#%#.#######..##.....#..%%%######.....#####..%.##..#####...######}.%%.%#######..%%#####..%.%%%{##}..###..####...~...##\n###.%..%..##........#####%%%%######}%%%%#####...#.%.#######%%########.....#####}.....####}.%......######.#########..%%######}....#####..###%%###}..###..####.......##\n####...%.o..o.......######%....#####.%#######....%#..######..########..#...#####.....#####..%.##..##}......#####..%.%%##########...o.o..###..####..###...o.o.......##\n#####..%..##........######....o....o..###########.....o.o....########..##...o.o..#i#i#####....########......o...o##ii###########...o.o..###..o..o..###...o.o.......##\n##############i#####################################################}......#################i#########.....################################........##################\n#####################################################################################################################################################################\n\n\nmessage Thanks for playing :)\n\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",0,"tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick","tick",3,"tick","tick","tick",2,"tick","tick","tick","tick",2,3,"tick","tick","tick","tick",3,"tick","tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick","tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick","tick",3,"tick","tick","tick","tick","tick",3,"tick","tick","tick","tick",0,"tick","tick","tick",1,"tick","tick","tick","tick","tick",0,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick","tick","tick","tick","undo","tick","tick","tick","undo","tick","tick","tick","tick","tick","tick",3,"tick","tick","tick","tick",1,"tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick",3,"tick","tick","tick","tick","tick",0,"tick","tick","tick","tick","tick",0,"tick","tick",3,"tick","tick","tick","tick","tick",0,"tick","tick","tick",3,"tick","tick","tick","tick",3,"tick","tick","tick","tick",3,"tick","tick","tick","tick","tick","tick",3,"tick","tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick","tick",2,"tick","tick","tick","tick","tick",2,"tick","tick","tick","tick",2,"tick","tick","tick","tick",2,"tick","tick","tick","tick","tick","tick",3,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,background wall walldr:1,background wall wallr:2,2,2,background wall wallur:3,0,0,0,0,2,2,background wall walld wallr:4,background:5,5,5,background wall wallr wallu:6,3,0,0,0,background exit:7,7,5,5,5,5,5,6,3,0,0,background wall walll:8,8,background wall walld walll:9,5,5,5,background nopattern spiketrap:10,5,6,3,0,0,0,background wall walldl:11,9,5,10,5,5,5,background wall wallu:12,0,0,0,0,11,9,5,5,5,5,12,0,0,0,0,0,11,9,10,10,10,12,0,0,0,0,0,0,background wall walld:13,5,5,5,12,0,0,0,0,0,0,13,5,background target:14,5,12,0,0,0,0,0,0,11,9,5,background wall walll wallu:15,background wall wallul:16,0,0,0,0,0,0,1,4,5,6,3,0,0,0,0,0,0,13,5,14,5,12,0,0,0,0,0,0,13,5,5,5,6,3,0,0,0,0,0,13,5,5,5,arrowtrapupready background nopattern:17,12,\n0,0,0,0,0,13,5,5,5,15,16,0,1,2,2,2,background wall walld wallrud:18,5,5,5,12,0,1,4,5,5,5,background wall wallr wallud:19,5,5,5,12,0,13,arrowtrapdownready background nopattern:20,5,5,5,5,5,5,5,12,0,11,9,5,5,5,background wall walll wallud:21,5,5,5,12,0,0,11,9,14,15,background wall walllud:22,8,8,8,16,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,14,background wall wallrud wallu:23,2,3,0,0,0,0,0,0,13,5,background wall wallud:24,arrowtraprightready background nopattern:25,6,3,0,0,0,0,0,13,5,19,10,10,6,2,3,0,0,0,13,5,10,10,background nopattern spiketrapdeadly:26,background nopattern spiketraparmed:27,5,12,0,0,0,13,10,10,10,10,background player:28,5,12,0,0,0,13,10,10,10,10,5,5,12,0,0,0,11,8,8,8,9,5,5,12,0,\n0,0,0,0,0,0,13,5,14,12,0,0,0,0,0,0,0,11,9,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,1,2,18,5,12,0,0,0,0,0,0,13,25,19,14,12,0,0,0,1,2,2,18,10,5,5,12,0,0,0,13,5,5,19,10,10,5,12,0,0,0,13,5,10,10,10,15,8,16,0,0,0,13,5,10,10,10,12,0,0,0,0,0,13,5,15,8,8,16,0,0,0,0,0,13,14,6,3,0,0,0,0,0,0,0,13,5,5,12,0,0,0,0,0,0,0,13,5,5,12,0,0,0,0,0,0,0,13,14,14,23,2,2,3,0,0,\n0,0,13,5,5,24,5,5,12,0,0,0,0,background wall walldlr:29,background wall walld walllr:30,5,19,5,5,12,0,0,0,0,13,20,5,5,5,5,12,0,0,0,1,background wall walldlr wallr:31,30,10,background wall walllr wallu:32,30,5,6,3,0,0,13,20,10,5,10,5,10,5,12,0,0,11,background wall walldlr walll:33,30,10,background wall walllr wallud:34,10,34,5,12,0,0,0,13,20,5,5,5,5,5,12,0,0,0,11,8,8,8,9,5,5,12,0,0,0,0,0,0,0,11,9,5,12,0,0,0,0,0,0,0,0,13,14,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,1,2,2,3,0,13,14,12,0,0,0,13,5,5,12,0,13,5,12,0,0,1,4,5,5,6,2,4,5,12,0,0,13,20,5,5,5,10,5,5,12,0,\n0,13,20,5,5,5,10,5,5,12,0,0,11,9,5,5,15,8,8,8,16,0,0,0,13,5,5,6,3,0,0,0,0,0,0,13,5,14,5,12,0,0,0,0,0,0,11,8,9,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,1,2,4,5,12,0,0,0,0,0,0,13,5,14,5,12,0,1,2,3,0,0,13,5,background wall walll wallrud wallu:35,background wall walllr:36,background wall wallr wallulr:37,2,4,25,12,0,0,13,5,24,5,5,5,5,5,12,1,2,4,5,19,5,5,5,5,5,12,13,20,10,10,10,10,5,32,background wall walld walll wallrud:38,5,12,13,20,10,5,10,10,5,5,19,5,12,13,20,10,10,10,10,5,5,5,5,12,13,20,5,5,15,8,9,5,5,5,12,\n11,8,8,8,16,0,11,9,5,15,16,0,0,0,0,0,0,0,13,14,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,1,2,background wall wallrud:39,2,18,14,12,0,0,0,0,13,25,19,25,19,5,12,0,0,0,0,13,5,5,5,5,5,12,0,0,0,0,13,5,5,5,5,32,background wall wallulr:40,0,0,0,0,13,5,5,5,5,17,12,0,0,1,2,4,5,5,5,5,32,40,0,0,13,5,5,5,5,5,5,17,12,0,0,13,5,5,15,8,8,8,8,16,0,0,13,5,5,12,0,0,0,0,0,0,0,13,14,14,12,0,0,0,0,0,0,0,13,5,5,12,1,2,3,0,0,0,0,13,14,14,6,4,25,6,2,3,0,\n0,13,5,5,5,5,5,5,5,12,0,0,11,8,9,5,5,10,5,5,6,3,0,0,0,13,5,10,5,10,5,17,12,0,0,0,13,5,5,5,5,5,15,16,0,0,0,11,8,9,5,15,8,16,0,0,0,0,0,1,4,5,6,3,0,0,0,0,1,2,4,5,5,5,12,0,0,0,0,13,5,14,5,5,5,12,0,0,0,0,13,5,15,8,8,8,16,0,0,0,0,13,5,12,0,1,2,3,0,0,0,0,13,14,12,0,13,25,12,0,0,0,0,13,5,12,0,13,5,6,2,3,0,1,4,5,6,2,18,5,5,5,12,1,4,5,5,5,5,19,5,5,5,12,13,20,5,5,5,5,5,5,5,5,12,\n11,9,5,5,5,5,21,5,5,5,12,0,11,8,9,5,15,background wall walld walllud:41,5,5,5,12,0,0,0,13,arrowtrapleftready background nopattern:42,12,11,9,5,15,16,0,0,0,11,8,16,0,13,14,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,1,2,2,39,4,5,12,0,0,0,0,13,25,25,24,5,14,12,0,0,0,0,13,5,5,19,5,15,16,0,0,0,0,13,5,10,5,10,6,3,0,0,1,2,4,10,10,5,5,17,12,0,0,13,5,5,10,5,10,10,17,12,0,0,13,5,5,21,10,10,10,15,16,0,0,13,14,5,background wall walllud wallu:43,8,8,8,16,0,0,0,13,5,15,16,0,0,0,0,0,0,\n0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,14,6,2,39,2,3,0,0,0,0,13,5,5,25,19,25,12,0,0,0,0,13,5,5,5,5,5,12,0,0,0,0,13,20,5,5,5,5,12,0,0,0,0,29,30,5,10,10,5,6,2,3,0,0,13,20,5,10,10,5,5,5,12,0,0,11,8,8,8,8,9,5,5,12,0,0,0,0,0,0,0,13,5,5,12,0,0,0,0,0,0,0,13,14,14,12,0,0,0,0,0,0,0,13,5,5,12,0,0,0,0,1,2,2,4,14,14,12,0,0,0,0,13,5,5,5,5,5,12,0,\n0,1,2,4,5,5,5,5,5,12,0,1,4,10,10,10,10,15,8,8,16,0,13,20,5,5,5,5,12,0,0,0,0,11,9,10,10,10,10,6,2,2,2,3,0,11,8,9,5,10,10,5,5,5,12,0,0,0,13,5,10,10,5,5,5,12,0,0,0,13,42,42,15,9,14,5,12,0,0,0,11,8,8,16,13,5,5,12,0,1,2,2,39,2,2,18,5,5,12,0,13,5,5,19,25,25,19,14,5,12,1,4,5,5,5,5,5,5,5,5,12,13,20,5,5,5,5,5,5,5,5,12,11,9,10,10,15,8,8,8,8,8,16,0,13,5,5,12,0,0,0,0,0,0,1,4,10,10,6,2,2,2,2,3,0,\n13,20,5,5,5,5,5,5,5,12,0,11,9,5,5,5,5,5,5,5,12,0,0,13,5,5,15,8,9,5,5,12,0,0,11,8,8,16,0,13,14,14,12,0,0,0,0,0,0,0,13,5,5,12,0,0,1,2,2,2,2,4,14,14,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,background gem gemmarker:44,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,11,8,8,8,8,8,8,8,16,0,0,0,0,0,0,0,0,0,0,0,0,\n",0,"1627779607469.4893"] + ["title Spikes 'n' Stuff\n\nauthor Alan Hazelden\n\n(verbose_logging)\n\nagain_interval 0.05\nrealtime_interval 0.05\n\nflickscreen 11x11\n\nnoaction\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\n\nBackground\nDARKBLUE BLACK\n11111\n01111\n11101\n11111\n10111\n\nWall\n#767d80 #697175\n00111\n11101\n01001\n11110\n10011\n\nTarget\ntransparent\n(DarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....)\n\nExit\ntransparent\n\nArrowTrapUpReady\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n.123.\n0.2.4\n..2..\n..2..\n\nArrowTrapUpArmed\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n.153.\n0.5.4\n..5..\n..2..\n\nArrowTrapUpFired\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n01234\n..2..\n..2..\n..2..\n\nArrowTrapUpFired2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n.123.\n0.2.4\n..2..\n..2..\n\nArrowTrapUpFired3\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.....\n..2..\n.123.\n0.2.4\n..2..\n\nArrowTrapUpRearming\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.....\n.....\n..2..\n.123.\n0.2.4\n\nArrowTrapUpRearming2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.....\n..2..\n.123.\n0.2.4\n..2..\n\nArrowTrapDownReady\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n..2..\n0.2.4\n.123.\n..2..\n\nArrowTrapDownArmed\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n..5..\n0.5.4\n.153.\n..2..\n\nArrowTrapDownFired\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n..2..\n..2..\n01234\n..2..\n\nArrowTrapDownFired2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n..2..\n0.2.4\n.123.\n..2..\n\nArrowTrapDownFired3\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n0.2.4\n.123.\n..2..\n.....\n\nArrowTrapDownRearming\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n0.2.4\n.123.\n..2..\n.....\n.....\n\nArrowTrapDownRearming2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n0.2.4\n.123.\n..2..\n.....\n\nArrowTrapLeftReady\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n.1...\n22222\n.3...\n..4..\n\nArrowTrapLeftArmed\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n.1...\n25552\n.3...\n..4..\n\nArrowTrapLeftFired\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.0...\n.1...\n22222\n.3...\n.4...\n\nArrowTrapLeftFired2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n.1...\n22222\n.3...\n..4..\n\nArrowTrapLeftFired3\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n...0.\n..1..\n.2222\n..3..\n...4.\n\nArrowTrapLeftRearming\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n....0\n...1.\n..222\n...3.\n....4\n\nArrowTrapLeftRearming2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n...0.\n..1..\n.2222\n..3..\n...4.\n\nArrowTrapRightReady\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n...1.\n22222\n...3.\n..4..\n\nArrowTrapRightArmed\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n...1.\n25552\n...3.\n..4..\n\nArrowTrapRightFired\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n...0.\n...1.\n22222\n...3.\n...4.\n\nArrowTrapRightFired2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n...1.\n22222\n...3.\n..4..\n\nArrowTrapRightFired3\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.0...\n..1..\n2220.\n..3..\n.4...\n\nArrowTrapRightRearming\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n0....\n.1...\n222..\n.3...\n4....\n\nArrowTrapRightRearming2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.0...\n..1..\n2220.\n..3..\n.4...\n\n(#524432 #4d4030 #4a3c2c #443929 #403527)\n\nPlayer\n#a46422 #495e2b #493c2b #000000\n..0..\n.111.\n01110\n02220\n.2.2.\n\nPlayerDead\n#a46422 #495e2b #493c2b black white\n..00.\n.1122\n0112.\n.1122\n..00.\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\nGem\nYellow White Orange\n.000.\n01100\n01000\n00002\n.022.\n\nGemBroken\nYellow White Orange black\n.000.\n.313.\n01.0.\n03002\n..22.\n\nNoPattern\nblack\n\nSpikeTrap\ntransparent darkgreen black\n00000\n01210\n02220\n01210\n00000\n\nSpikeTrapArmed\ntransparent white transparent grey\n00000\n01210\n02220\n01210\n00000\n\nSpikeTrapDeadly\ntransparent white transparent grey\n01010\n03230\n01210\n03230\n00000\n\nArrowUp\nwhite\n.....\n..0..\n..0..\n..0..\n.....\n\nArrowDown\nwhite\n.....\n..0..\n..0..\n..0..\n.....\n\nArrowLeft\nwhite\n.....\n.....\n.000.\n.....\n.....\n\nArrowRight\nwhite\n.....\n.....\n.000.\n.....\n.....\n\nArrowCollision\nwhite\n.....\n..0..\n.000.\n..0..\n.....\n\nArrowCollision2\nwhite\n...0.\n.....\n.0...\n....0\n.....\n\nLOS\nwhite\n\nWallL\n#373c3f\n0....\n0....\n0....\n0....\n0....\n\nWallR\n#373c3f\n....0\n....0\n....0\n....0\n....0\n\nWallU\n#373c3f\n00000\n.....\n.....\n.....\n.....\n\nWallD\n#373c3f\n.....\n.....\n.....\n.....\n00000\n\nWallLR\n#373c3f\n0...0\n0...0\n0...0\n0...0\n0...0\n\nWallUD\n#373c3f\n00000\n.....\n.....\n.....\n00000\n \nWallUL\n#373c3f\n0....\n.....\n.....\n.....\n.....\n \nWallUR\n#373c3f\n....0\n.....\n.....\n.....\n.....\n \nWallDL\n#373c3f\n.....\n.....\n.....\n.....\n0....\n \nWallDR\n#373c3f\n.....\n.....\n.....\n.....\n....0\n \nWallDLR\n#373c3f\n.....\n.....\n.....\n.....\n0...0\n \nWallULR\n#373c3f\n0...0\n.....\n.....\n.....\n.....\n \nWallLUD\n#373c3f\n0....\n.....\n.....\n.....\n0....\n \nWallRUD\n#373c3f\n....0\n.....\n.....\n.....\n....0\n\nBloodL1\nred\n.....\n.....\n....0\n.....\n.....\n\nBloodL2\nred\n.....\n....0\n....0\n....0\n.....\n\nBloodL3\nred\n....0\n....0\n....0\n....0\n....0\n\nBloodL4_1\nred\n....0\n....0\n...00\n...00\n....0\n\nBloodL4_2\nred\n....0\n...00\n...00\n....0\n....0\n\nBloodR1\nred\n.....\n.....\n0....\n.....\n.....\n\nBloodR2\nred\n.....\n0....\n0....\n0....\n.....\n\nBloodR3\nred\n0....\n0....\n0....\n0....\n0....\n\nBloodR4_1\nred\n0....\n0....\n00...\n00...\n0....\n\nBloodR4_2\nred\n0....\n0....\n00...\n00...\n0....\n\nBloodU1\nred\n.....\n.....\n.....\n.....\n..0..\n\nBloodU2\nred\n.....\n.....\n.....\n.....\n.000.\n\nBloodU3\nred\n.....\n.....\n.....\n.....\n00000\n\nBloodU4_1\nred\n.....\n.....\n.....\n.00..\n00000\n\nBloodU4_2\nred\n.....\n.....\n.....\n..00.\n00000\n\nBloodD1\nred\n..0..\n.....\n.....\n.....\n.....\n\nBloodD2\nred\n.000.\n.....\n.....\n.....\n.....\n\nBloodD3\nred\n00000\n.....\n.....\n.....\n.....\n\nBloodD4_1\nred\n00000\n..00.\n.....\n.....\n.....\n\nBloodD4_2\nred\n00000\n.00..\n.....\n.....\n.....\n\nBloodD4_3\nred\n00000\n.....\n.....\n.....\n.....\n\nGemMarker\ntransparent\n\n\n=======\nLEGEND\n=======\n\n\n\nArrow = ArrowLeft or ArrowRight or ArrowUp or ArrowDown\nSpikeTrapAny = SpikeTrap or SpikeTrapArmed or SpikeTrapDeadly\n\nArrowTrapReady = ArrowTrapUpReady or ArrowTrapDownReady or ArrowTrapLeftReady or ArrowTrapRightReady\nArrowTrapArmed = ArrowTrapLeftArmed or ArrowTrapRightArmed or ArrowTrapUpArmed or ArrowTrapDownArmed\nArrowTrapRearming = ArrowTrapLeftRearming or ArrowTrapRightRearming or ArrowTrapUpRearming or ArrowTrapDownRearming\nArrowTrapRearming2 = ArrowTrapLeftRearming2 or ArrowTrapRightRearming2 or ArrowTrapUpRearming2 or ArrowTrapDownRearming2\n\nArrowTrapLeftFiredAny = ArrowTrapLeftFired or ArrowTrapLeftFired2 or ArrowTrapLeftFired3\nArrowTrapRightFiredAny = ArrowTrapRightFired or ArrowTrapRightFired2 or ArrowTrapRightFired3\nArrowTrapUpFiredAny = ArrowTrapUpFired or ArrowTrapUpFired2 or ArrowTrapUpFired3\nArrowTrapDownFiredAny = ArrowTrapDownFired or ArrowTrapDownFired2 or ArrowTrapDownFired3\n\nArrowTrapFiredAnim = ArrowTrapLeftFired or ArrowTrapLeftFired2 or ArrowTrapLeftFired3 or ArrowTrapRightFired or ArrowTrapRightFired2 or ArrowTrapRightFired3 or ArrowTrapUpFired or ArrowTrapUpFired2 or ArrowTrapUpFired3 or ArrowTrapDownFired or ArrowTrapDownFired2 or ArrowTrapDownFired3\n\nArrowTrapAny = ArrowTrapReady or ArrowTrapArmed or ArrowTrapRearming or ArrowTrapRearming2 or ArrowTrapFiredAnim\n\nTriggersSpikes = Crate or Gem or Player\nTriggersArrow = Player\nKillable = Player\nNeedsTick = SpikeTrap or SpikeTrapArmed or SpikeTrapDeadly or ArrowTrapAny\n\n\nSolid = Wall or Crate or Gem or ArrowTrapAny\n\n. = Background\n# = Wall\nP = Player and exit\nq = exit\n* = Crate\n(@ = SwitchOff)\nO = Target\n% = SpikeTrap and NoPattern\n~ = Gem and GemMarker\n\ni = ArrowTrapUpReady and NoPattern\n! = ArrowTrapDownReady and NoPattern\n{ = ArrowTrapLeftReady and NoPattern\n} = ArrowTrapRightReady and NoPattern\n\nBloodLeft = BloodL1 or BloodL2 or BloodL3 or BloodL4_1 or BloodL4_2\nBloodRight = BloodR1 or BloodR2 or BloodR3 or BloodR4_1 or BloodR4_2\nBloodUp = BloodU1 or BloodU2 or BloodU3 or BloodU4_1 or BloodU4_2\nBloodDown = BloodD1 or BloodD2 or BloodD3 or BloodD4_1 or BloodD4_2 or BloodD4_3\n\nBloodL4 = BloodL4_1 or BloodL4_2\nBloodR4 = BloodR4_1 or BloodR4_2\nBloodU4 = BloodU4_1 or BloodU4_2\nBloodD4 = BloodD4_1 or BloodD4_2 or BloodD4_3\n\nBloodFinal = BloodL4 or BloodR4 or BloodU4 or BloodD4\n\nBlood = BloodLeft or BloodRight or BloodUp or BloodDown\n\nWallCoverLR = WallL or WallR or WallLR\nWallCoverUD = WallU or WallD or WallUD\nWallCoverCorner = WallUL or WallUR or WallDL or WallDR or WallDLR or WallLUD or WallRUD or WallULR\nWallCover = WallCoverLR or WallCoverUD or WallCoverCorner\n\nCoverLR = WallCoverLR\nCoverUD = WallCoverUD\n\n\n=======\nSOUNDS\n=======\n\n(Player Create 1326707)\n\nSpikeTrapDeadly Create 85964907\nArrowTrapArmed Create 9956307\nArrowTrapRearming Create 95334907\n\n(Arrow Create 3367509)\n\nArrowCollision Create 3790700\nPlayerDead Create 97930904\nGemBroken Create 48343102\n\n(sfx1 76483702) (arrow hits wall)\nsfx2 13478508 (pick up gem for first time)\n\nUndo 8748307\n(Cancel 1326707)\nRestart 28758302\n\nEndLevel 73821303\nStartGame 47020108\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nNoPattern\nBloodLeft\nBloodRight\nBloodUp\nBloodDown\nTarget, SpikeTrap, SpikeTrapArmed, SpikeTrapDeadly, Exit, GemMarker\nGemBroken\nPlayer, Wall, Crate, Gem, PlayerDead\nWallCoverUD\nWallCoverCorner\nWallCoverLR, LOS\nArrowTrapAny\nArrow, ArrowCollision, ArrowCollision2\n\n======\nRULES\n======\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\nleft [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallLUD | WallUD ]\nright [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallRUD | WallUD ]\nup [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallULR | WallLR ]\ndown [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallDLR | WallLR ]\n\nright [ WallD | Wall no WallCoverCorner no WallCoverUD ] -> [ WallD | Wall WallDL ]\nleft [ WallD | Wall no WallCoverCorner no WallCoverUD ] -> [ WallD | Wall WallDR ]\n \nright [ WallU | Wall no WallCoverCorner no WallCoverUD ] -> [ WallU | Wall WallUL ]\nleft [ WallU | Wall no WallCoverCorner no WallCoverUD ] -> [ WallU | Wall WallUR ]\n\n(Blood)\n\n[ PlayerDead Blood ] -> [ PlayerDead action Blood ] again\n\nrandom [ PlayerDead | no Blood ] -> [ > PlayerDead no SpikeTrapAny | ]\n\n[ left PlayerDead no BloodRight ] -> [ PlayerDead BloodR1 ] again\n[ right PlayerDead no BloodLeft ] -> [ PlayerDead BloodL1 ] again\n[ up PlayerDead no BloodDown ] -> [ PlayerDead BloodD1 ] again\n[ down PlayerDead no BloodUp ] -> [ PlayerDead BloodU1 ] again\n\nrandom [ PlayerDead | no Blood ] -> [ > PlayerDead no SpikeTrapDeadly | ]\n\n[ left PlayerDead no BloodRight ] -> [ PlayerDead BloodR1 ] again\n[ right PlayerDead no BloodLeft ] -> [ PlayerDead BloodL1 ] again\n[ up PlayerDead no BloodDown ] -> [ PlayerDead BloodD1 ] again\n[ down PlayerDead no BloodUp ] -> [ PlayerDead BloodU1 ] again\n\n[ PlayerDead ] -> [ stationary PlayerDead ]\n\n[ action BloodL3 ] -> [ random BloodL4 ] again\n[ action BloodL2 ] -> [ BloodL3 ] again\n[ action BloodL1 ] -> [ BloodL2 ] again\n\n[ action BloodR3 ] -> [ random BloodR4 ] again\n[ action BloodR2 ] -> [ BloodR3 ] again\n[ action BloodR1 ] -> [ BloodR2 ] again\n\n[ action BloodU3 ] -> [ random BloodU4 ] again\n[ action BloodU2 ] -> [ BloodU3 ] again\n[ action BloodU1 ] -> [ BloodU2 ] again\n\n[ action BloodD3 ] -> [ random BloodD4 ] again\n[ action BloodD2 ] -> [ BloodD3 ] again\n[ action BloodD1 ] -> [ BloodD2 ] again\n\n[ BloodL3 no PlayerDead ] -> [ random BloodL4 ] again\n[ BloodL2 no PlayerDead ] -> [ BloodL3 ] again\n[ BloodL1 no PlayerDead ] -> [ BloodL2 ] again\n\n[ BloodR3 no PlayerDead ] -> [ random BloodR4 ] again\n[ BloodR2 no PlayerDead ] -> [ BloodR3 ] again\n[ BloodR1 no PlayerDead ] -> [ BloodR2 ] again\n\n[ BloodU3 no PlayerDead ] -> [ random BloodU4 ] again\n[ BloodU2 no PlayerDead ] -> [ BloodU3 ] again\n[ BloodU1 no PlayerDead ] -> [ BloodU2 ] again\n\n[ BloodD3 no PlayerDead ] -> [ random BloodD4 ] again\n[ BloodD2 no PlayerDead ] -> [ BloodD3 ] again\n[ BloodD1 no PlayerDead ] -> [ BloodD2 ] again\n\nleft [ action BloodR4 | no Blood ] -> [ BloodR4 | BloodL1 ] again\nright [ action BloodL4 | no Blood ] -> [ BloodL4 | BloodR1 ] again\nup [ action BloodD4 | no Blood ] -> [ BloodD4 | BloodU1 ] again\ndown [ action BloodU4 | no Blood ] -> [ BloodU4 | BloodD1 ] again\n\n[ Blood no BloodFinal ] -> again\n\n(arrow firing anim)\n\n[ stationary Player ] [ ArrowTrapFiredAnim ] -> [ Player ] [ action ArrowTrapFiredAnim ]\n[ PlayerDead ] [ ArrowTrapFiredAnim ] -> [ PlayerDead ] [ action ArrowTrapFiredAnim ]\n\n[ ArrowTrapAny no ArrowTrapFiredAnim Target ] -> [ ArrowTrapAny ]\n\n[ action ArrowTrapUpFired3 ] -> [ ArrowTrapUpRearming ]\n[ action ArrowTrapUpFired2 Target ] -> [ ArrowTrapUpFired3 ]\n[ action ArrowTrapUpFired2 no Target ] -> [ ArrowTrapUpFired2 Target ]\n[ action ArrowTrapUpFired Target ] -> [ ArrowTrapUpFired2 ]\n[ action ArrowTrapUpFired no Target ] -> [ ArrowTrapUpFired Target ]\n\n[ action ArrowTrapDownFired3 ] -> [ ArrowTrapDownRearming ]\n[ action ArrowTrapDownFired2 Target ] -> [ ArrowTrapDownFired3 ]\n[ action ArrowTrapDownFired2 no Target ] -> [ ArrowTrapDownFired2 Target ]\n[ action ArrowTrapDownFired Target ] -> [ ArrowTrapDownFired2 ]\n[ action ArrowTrapDownFired no Target ] -> [ ArrowTrapDownFired Target ]\n\n[ action ArrowTrapLeftFired3 ] -> [ ArrowTrapLeftRearming ]\n[ action ArrowTrapLeftFired2 Target ] -> [ ArrowTrapLeftFired3 ]\n[ action ArrowTrapLeftFired2 no Target ] -> [ ArrowTrapLeftFired2 Target ]\n[ action ArrowTrapLeftFired Target ] -> [ ArrowTrapLeftFired2 ]\n[ action ArrowTrapLeftFired no Target ] -> [ ArrowTrapLeftFired Target ]\n\n[ action ArrowTrapRightFired3 ] -> [ ArrowTrapRightRearming ]\n[ action ArrowTrapRightFired2 Target ] -> [ ArrowTrapRightFired3 ]\n[ action ArrowTrapRightFired2 no Target ] -> [ ArrowTrapRightFired2 Target ]\n[ action ArrowTrapRightFired Target ] -> [ ArrowTrapRightFired2 ]\n[ action ArrowTrapRightFired no Target ] -> [ ArrowTrapRightFired Target ]\n\n(Start of turn)\n\n[ Gem | moving Player ] -> [ > Gem | moving Player ]\n\n[ ArrowCollision2 ] -> []\n[ ArrowCollision ] -> [ ArrowCollision2 ] again\n\n[ moving Player ] [ NeedsTick ] -> [ moving Player ] [ action NeedsTick ]\n\n[ TriggersSpikes action SpikeTrapArmed ] -> [ TriggersSpikes SpikeTrapArmed ]\n\n[ action SpikeTrapDeadly ] -> [ SpikeTrap ]\n\n[ action SpikeTrapArmed ] -> [ SpikeTrapDeadly ]\n\n[ TriggersSpikes action SpikeTrap ] -> [ TriggersSpikes SpikeTrapArmed ]\n\n(prevent player moving out of path of arrow)\nleft [ ArrowLeft | ... | moving Player ] -> cancel\nright [ ArrowRight | ... | moving Player ] -> cancel\nup [ ArrowUp | ... | moving Player ] -> cancel\ndown [ ArrowDown | ... | moving Player ] -> cancel\n\nleft [ ArrowLeft | ... | moving Gem ] -> cancel\nright [ ArrowRight | ... | moving Gem ] -> cancel\nup [ ArrowUp | ... | moving Gem ] -> cancel\ndown [ ArrowDown | ... | moving Gem ] -> cancel\n\n[ moving Player ] [ Arrow ] -> [ moving Player ] [ action Arrow ]\n\n(movement)\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Player | Gem ] -> [ > Player | > Gem ]\n\n[ > Gem | Solid ] -> cancel\n[ > Crate | Solid ] -> cancel\n[ > Player | stationary Solid ] -> cancel\n[ > Player | ArrowTrapAny ] -> cancel\n\n[ > Player | no Solid ] -> [ | Player ]\n[ > Crate | no Solid ] -> [ | Crate ]\n[ > Gem | no Solid ] -> [ | Gem ]\n[ > Player | no Solid ] -> [ | Player ]\n\n( death )\n\n[ Player SpikeTrapDeadly ] -> [ PlayerDead SpikeTrapDeadly ] again\n\n\n( end of turn )\n\n[ action ArrowTrapUpReady ] -> [ ArrowTrapUpReady up LOS ]\n[ action ArrowTrapDownReady ] -> [ ArrowTrapDownReady down LOS ]\n[ action ArrowTrapLeftReady ] -> [ ArrowTrapLeftReady left LOS ]\n[ action ArrowTrapRightReady ] -> [ ArrowTrapRightReady right LOS ]\n\n[ > LOS | Solid ] -> [ | Solid ]\n+ [ > LOS | no Solid no LOS no TriggersArrow ] -> [ | > LOS ]\n\n[ > LOS | TriggersArrow ] -> [ < LOS | TriggersArrow ]\n\n[ > LOS no ArrowTrapReady | no Solid no LOS ] -> [ | > LOS ]\n[ > LOS no ArrowTrapReady | ArrowTrapReady ] -> [ | LOS ArrowTrapReady ]\n\n[ LOS ArrowTrapUpReady ] -> [ ArrowTrapUpArmed ]\n[ LOS ArrowTrapDownReady ] -> [ ArrowTrapDownArmed ]\n[ LOS ArrowTrapLeftReady ] -> [ ArrowTrapLeftArmed ]\n[ LOS ArrowTrapRightReady ] -> [ ArrowTrapRightArmed ]\n\n[ LOS ] -> []\n\n[ action ArrowTrapUpArmed ] -> [ ArrowTrapUpFired ArrowUp ]\n[ action ArrowTrapDownArmed ] -> [ ArrowTrapDownFired ArrowDown ]\n[ action ArrowTrapLeftArmed ] -> [ ArrowTrapLeftFired ArrowLeft ]\n[ action ArrowTrapRightArmed ] -> [ ArrowTrapRightFired ArrowRight ]\n\n[ action ArrowTrapUpFiredAny ] -> [ ArrowTrapUpRearming2 ]\n[ action ArrowTrapDownFiredAny ] -> [ ArrowTrapDownRearming2 ]\n[ action ArrowTrapLeftFiredAny ] -> [ ArrowTrapLeftRearming2 ]\n[ action ArrowTrapRightFiredAny ] -> [ ArrowTrapRightRearming2 ]\n\n[ action ArrowTrapUpRearming ] -> [ ArrowTrapUpRearming2 ]\n[ action ArrowTrapDownRearming ] -> [ ArrowTrapDownRearming2 ]\n[ action ArrowTrapLeftRearming ] -> [ ArrowTrapLeftRearming2 ]\n[ action ArrowTrapRightRearming ] -> [ ArrowTrapRightRearming2 ]\n\n[ action ArrowTrapUpRearming2 ] -> [ ArrowTrapUpReady ]\n[ action ArrowTrapDownRearming2 ] -> [ ArrowTrapDownReady ]\n[ action ArrowTrapLeftRearming2 ] -> [ ArrowTrapLeftReady ]\n[ action ArrowTrapRightRearming2 ] -> [ ArrowTrapRightReady ]\n\n(arrows)\n\n[ stationary ArrowUp ] -> [ up ArrowUp ]\n[ stationary ArrowDown ] -> [ down ArrowDown ]\n[ stationary ArrowLeft ] -> [ left ArrowLeft ]\n[ stationary ArrowRight ] -> [ right ArrowRight ]\n\n[ > Arrow | Player ] -> [ | PlayerDead ] again\n[ > Arrow | no Solid no Arrow ] -> [ | Arrow ] (again)\n[ > Arrow | Gem ] -> [ | GemBroken no SpikeTrapAny ]\n[ > Arrow | Solid ] -> [ | Solid ] sfx1\n[ > Arrow | no Solid no Arrow ] -> [ | Arrow ] (again)\n+ [ > Arrow | stationary Arrow ] -> [ | ArrowCollision ] (again)\n[ > Arrow | Gem ] -> [ | GemBroken no SpikeTrapAny ]\n[ > Arrow | Solid ] -> [ | Solid ] sfx1\n\n([ Arrow SpikeTrapArmed ] -> [ SpikeTrapArmed ]\n[ Arrow SpikeTrapDeadly ] -> [ SpikeTrapDeadly ])\n\n(checkpoints)\n\n[ Player Target ] -> [ Player action Target ]\n[ Gem Target ] -> [ Gem action Target ]\n\n[ Gem ] [ action Target ] -> checkpoint\n\n[ Player | GemMarker ] -> [ Player | ] sfx2\n\n\n==============\nWINCONDITIONS\n==============\n\nall player on exit\nall gem on exit\nsome player\nsome gem\n\n=======\nLEVELS\n=======\n\n(###p##################\n###q##############!###\n##...############...o.\n##....###########...##\n##...%.#!########..###\n###.%..%..##........##\n####..~%.o..o.......##\n#####..%..##........##\n##############i#######\n######################\n\n#####!!!!##\n#####%%%.##\n#....%.%.##\n#o###%%%###\n..#..%%%###\n###.....###\n###..#...##\n###..##...o\n##}......##\n###########)\n\n(###p###################################################\n###q##############!####################################\n###.#############...#############################!#####\n##...############...o..o...%%########....o..o.#!#%#!###\n##....###########...######%%%########.%%##..o...%.%.###\n##...%.###########.#####}%%%%#########%%#######.#%#.###\n###.%..%..##........#####%%%%######}%%%%#####...#.%.###\n####...%.o..o.......######%....#####.%#######....%#..##\n#####..%..##........######....o....o..###########.....o\n##############i########################################\n#######################################################\n\n#######################################################\n################!!!!#############################!#####\n####!!##########%%%.#########...o.o.############...####\n##.......###....%.%.#########...o.o.######...o.....####\n##......o###o###%%%#####}.....#####....###o#####....{##\n####..##.....#..%%%######.....#####..%.##..#####...####\n####%%########.....#####}.....####}.%......######.#####\n####..########..#...#####.....#####..%.##..##}......###\n.o....########..##...o.o..#i#i#####....########......o.\n#############}......#################i#########.....###\n#######################################################\n\n#######################################################\n###########################!########!###!##############\n######..o....o..!#!#######%.%#####...%.%...###.......##\n######...#####.....#######%.%#####...%.%...###.......##\n##}..%%#######}..%%#####..%.%..{###..###..####.......##\n##}.%%.%#######..%%#####..%.%%%{##}..###..####...~...##\n####..%%######}....#####..###%%###}..###..####.......##\n##..%.%%##########...o.o..###..####..###...o.o.......##\n..o##ii###########...o.o..###..o..o..###...o.o.......##\n#############################........##################\n#######################################################)\n\n###p#################################################################################################################################################################\n###q##############!####################################################!!!!#############################!################################!########!###!##############\n###.#############...#############################!#########!!##########%%%.#########...o.o.############...##########..o....o..!#!#######%.%#####...%.%...###.......##\n##...############...o..o...%%########....o..o.#!#%#!#####.......###....%.%.#########...o.o.######...o.....##########...#####.....#######%.%#####...%.%...###.......##\n##....###########...######%%%########.%%##..o...%.%.#####......o###o###%%%#####}.....#####....###o#####....{####}..%%#######}..%%#####..%.%..{###..###..####.......##\n##...%.###########.#####}%%%%#########%%#######.#%#.#######..##.....#..%%%######.....#####..%.##..#####...######}.%%.%#######..%%#####..%.%%%{##}..###..####...~...##\n###.%..%..##........#####%%%%######}%%%%#####...#.%.#######%%########.....#####}.....####}.%......######.#########..%%######}....#####..###%%###}..###..####.......##\n####...%.o..o.......######%....#####.%#######....%#..######..########..#...#####.....#####..%.##..##}......#####..%.%%##########...o.o..###..####..###...o.o.......##\n#####..%..##........######....o....o..###########.....o.o....########..##...o.o..#i#i#####....########......o...o##ii###########...o.o..###..o..o..###...o.o.......##\n##############i#####################################################}......#################i#########.....################################........##################\n#####################################################################################################################################################################\n\n\nmessage Thanks for playing :)\n\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", 2, 3, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "undo", "tick", "tick", "tick", "undo", "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,background wall walldr:1,background wall wallr:2,2,2,background wall wallur:3,0,0,0,0,2,2,background wall walld wallr:4,background:5,5,5,background wall wallr wallu:6,3,0,0,0,background exit:7,7,5,5,5,5,5,6,3,0,0,background wall walll:8,8,background wall walld walll:9,5,5,5,background nopattern spiketrap:10,5,6,3,0,0,0,background wall walldl:11,9,5,10,5,5,5,background wall wallu:12,0,0,0,0,11,9,5,5,5,5,12,0,0,0,0,0,11,9,10,10,10,12,0,0,0,0,0,0,background wall walld:13,5,5,5,12,0,0,0,0,0,0,13,5,background target:14,5,12,0,0,0,0,0,0,11,9,5,background wall walll wallu:15,background wall wallul:16,0,0,0,0,0,0,1,4,5,6,3,0,0,0,0,0,0,13,5,14,5,12,0,0,0,0,0,0,13,5,5,5,6,3,0,0,0,0,0,13,5,5,5,arrowtrapupready background nopattern:17,12,\n0,0,0,0,0,13,5,5,5,15,16,0,1,2,2,2,background wall walld wallrud:18,5,5,5,12,0,1,4,5,5,5,background wall wallr wallud:19,5,5,5,12,0,13,arrowtrapdownready background nopattern:20,5,5,5,5,5,5,5,12,0,11,9,5,5,5,background wall walll wallud:21,5,5,5,12,0,0,11,9,14,15,background wall walllud:22,8,8,8,16,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,14,background wall wallrud wallu:23,2,3,0,0,0,0,0,0,13,5,background wall wallud:24,arrowtraprightready background nopattern:25,6,3,0,0,0,0,0,13,5,19,10,10,6,2,3,0,0,0,13,5,10,10,background nopattern spiketrapdeadly:26,background nopattern spiketraparmed:27,5,12,0,0,0,13,10,10,10,10,background player:28,5,12,0,0,0,13,10,10,10,10,5,5,12,0,0,0,11,8,8,8,9,5,5,12,0,\n0,0,0,0,0,0,13,5,14,12,0,0,0,0,0,0,0,11,9,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,1,2,18,5,12,0,0,0,0,0,0,13,25,19,14,12,0,0,0,1,2,2,18,10,5,5,12,0,0,0,13,5,5,19,10,10,5,12,0,0,0,13,5,10,10,10,15,8,16,0,0,0,13,5,10,10,10,12,0,0,0,0,0,13,5,15,8,8,16,0,0,0,0,0,13,14,6,3,0,0,0,0,0,0,0,13,5,5,12,0,0,0,0,0,0,0,13,5,5,12,0,0,0,0,0,0,0,13,14,14,23,2,2,3,0,0,\n0,0,13,5,5,24,5,5,12,0,0,0,0,background wall walldlr:29,background wall walld walllr:30,5,19,5,5,12,0,0,0,0,13,20,5,5,5,5,12,0,0,0,1,background wall walldlr wallr:31,30,10,background wall walllr wallu:32,30,5,6,3,0,0,13,20,10,5,10,5,10,5,12,0,0,11,background wall walldlr walll:33,30,10,background wall walllr wallud:34,10,34,5,12,0,0,0,13,20,5,5,5,5,5,12,0,0,0,11,8,8,8,9,5,5,12,0,0,0,0,0,0,0,11,9,5,12,0,0,0,0,0,0,0,0,13,14,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,1,2,2,3,0,13,14,12,0,0,0,13,5,5,12,0,13,5,12,0,0,1,4,5,5,6,2,4,5,12,0,0,13,20,5,5,5,10,5,5,12,0,\n0,13,20,5,5,5,10,5,5,12,0,0,11,9,5,5,15,8,8,8,16,0,0,0,13,5,5,6,3,0,0,0,0,0,0,13,5,14,5,12,0,0,0,0,0,0,11,8,9,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,1,2,4,5,12,0,0,0,0,0,0,13,5,14,5,12,0,1,2,3,0,0,13,5,background wall walll wallrud wallu:35,background wall walllr:36,background wall wallr wallulr:37,2,4,25,12,0,0,13,5,24,5,5,5,5,5,12,1,2,4,5,19,5,5,5,5,5,12,13,20,10,10,10,10,5,32,background wall walld walll wallrud:38,5,12,13,20,10,5,10,10,5,5,19,5,12,13,20,10,10,10,10,5,5,5,5,12,13,20,5,5,15,8,9,5,5,5,12,\n11,8,8,8,16,0,11,9,5,15,16,0,0,0,0,0,0,0,13,14,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,1,2,background wall wallrud:39,2,18,14,12,0,0,0,0,13,25,19,25,19,5,12,0,0,0,0,13,5,5,5,5,5,12,0,0,0,0,13,5,5,5,5,32,background wall wallulr:40,0,0,0,0,13,5,5,5,5,17,12,0,0,1,2,4,5,5,5,5,32,40,0,0,13,5,5,5,5,5,5,17,12,0,0,13,5,5,15,8,8,8,8,16,0,0,13,5,5,12,0,0,0,0,0,0,0,13,14,14,12,0,0,0,0,0,0,0,13,5,5,12,1,2,3,0,0,0,0,13,14,14,6,4,25,6,2,3,0,\n0,13,5,5,5,5,5,5,5,12,0,0,11,8,9,5,5,10,5,5,6,3,0,0,0,13,5,10,5,10,5,17,12,0,0,0,13,5,5,5,5,5,15,16,0,0,0,11,8,9,5,15,8,16,0,0,0,0,0,1,4,5,6,3,0,0,0,0,1,2,4,5,5,5,12,0,0,0,0,13,5,14,5,5,5,12,0,0,0,0,13,5,15,8,8,8,16,0,0,0,0,13,5,12,0,1,2,3,0,0,0,0,13,14,12,0,13,25,12,0,0,0,0,13,5,12,0,13,5,6,2,3,0,1,4,5,6,2,18,5,5,5,12,1,4,5,5,5,5,19,5,5,5,12,13,20,5,5,5,5,5,5,5,5,12,\n11,9,5,5,5,5,21,5,5,5,12,0,11,8,9,5,15,background wall walld walllud:41,5,5,5,12,0,0,0,13,arrowtrapleftready background nopattern:42,12,11,9,5,15,16,0,0,0,11,8,16,0,13,14,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,1,2,2,39,4,5,12,0,0,0,0,13,25,25,24,5,14,12,0,0,0,0,13,5,5,19,5,15,16,0,0,0,0,13,5,10,5,10,6,3,0,0,1,2,4,10,10,5,5,17,12,0,0,13,5,5,10,5,10,10,17,12,0,0,13,5,5,21,10,10,10,15,16,0,0,13,14,5,background wall walllud wallu:43,8,8,8,16,0,0,0,13,5,15,16,0,0,0,0,0,0,\n0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,14,6,2,39,2,3,0,0,0,0,13,5,5,25,19,25,12,0,0,0,0,13,5,5,5,5,5,12,0,0,0,0,13,20,5,5,5,5,12,0,0,0,0,29,30,5,10,10,5,6,2,3,0,0,13,20,5,10,10,5,5,5,12,0,0,11,8,8,8,8,9,5,5,12,0,0,0,0,0,0,0,13,5,5,12,0,0,0,0,0,0,0,13,14,14,12,0,0,0,0,0,0,0,13,5,5,12,0,0,0,0,1,2,2,4,14,14,12,0,0,0,0,13,5,5,5,5,5,12,0,\n0,1,2,4,5,5,5,5,5,12,0,1,4,10,10,10,10,15,8,8,16,0,13,20,5,5,5,5,12,0,0,0,0,11,9,10,10,10,10,6,2,2,2,3,0,11,8,9,5,10,10,5,5,5,12,0,0,0,13,5,10,10,5,5,5,12,0,0,0,13,42,42,15,9,14,5,12,0,0,0,11,8,8,16,13,5,5,12,0,1,2,2,39,2,2,18,5,5,12,0,13,5,5,19,25,25,19,14,5,12,1,4,5,5,5,5,5,5,5,5,12,13,20,5,5,5,5,5,5,5,5,12,11,9,10,10,15,8,8,8,8,8,16,0,13,5,5,12,0,0,0,0,0,0,1,4,10,10,6,2,2,2,2,3,0,\n13,20,5,5,5,5,5,5,5,12,0,11,9,5,5,5,5,5,5,5,12,0,0,13,5,5,15,8,9,5,5,12,0,0,11,8,8,16,0,13,14,14,12,0,0,0,0,0,0,0,13,5,5,12,0,0,1,2,2,2,2,4,14,14,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,background gem gemmarker:44,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,11,8,8,8,8,8,8,8,16,0,0,0,0,0,0,0,0,0,0,0,0,\n", 0, "1627779607469.4893"] ], [ `gallery: XL-Plan`, - ["title XL-Plan\nauthor Mark Richardson\nflickscreen 9x11\nkey_repeat_interval 0.5\nnoaction\nrequire_player_movement\nrun_rules_on_level_start\n(verbose_logging)\n\n\n========\nOBJECTS\n========\n\nBackground .\nBlack\n\nPlayer\n#800\n\nNext $\n#008\n\nRefill &\nTransparent (#066)\n\nGoal {\n#660\n\nCursor1\n#080\n\nCursor2\n#080\n\nCursor3\n#080\n\nWall #\n#222\n\nZ\nWhite\n.....\n.....\n..0..\n.....\n.....\n\nI\nWhite\n.....\n..0..\n..0..\n..0..\n.....\n\nU\nWhite\n.....\n.0.0.\n.0.0.\n..0..\n.....\n\nX\nWhite\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nL\nWhite\n.....\n.0...\n.0...\n.000.\n.....\n\nC\nWhite\n.....\n..00.\n.0...\n..00.\n.....\n\nD\nWhite\n.....\n.00..\n.0.0.\n.00..\n.....\n\nM\nWhite Gray\n.....\n.000.\n.010.\n.0.0.\n.....\n\nHyphen -\nWhite\n.....\n.....\n00000\n.....\n.....\n\nP\nWhite\n.00..\n.0.0.\n.00..\n.0...\n.....\n\nA\nWhite\n.....\n..00.\n.0.0.\n..00.\n.....\n\nN\nWhite\n.....\n.00..\n.0.0.\n.0.0.\n.....\n\n\n=======\nLEGEND\n=======\n\n@ = Player and Z\n1 = Cursor1 and Z\n2 = Cursor2 and Z\n3 = Cursor3 and Z\n\nNumeral = I or U or X or L or C or D or M or Z\nNotI = U or X or L or C or D or M or Z\nNotU = I or X or L or C or D or M or Z\nNotX = I or U or L or C or D or M or Z\nNotL = I or U or X or C or D or M or Z\nNotC = I or U or X or L or D or M or Z\nNotD = I or U or X or L or C or M or Z\nNotM = I or U or X or L or C or D or Z\nNotZ = I or U or X or L or C or D or M\nText = P or A or N or Hyphen\nCursor = Cursor1 or Cursor2 or Cursor3\n\n=======\nSOUNDS\n=======\n\nPlayer Move 73969707\nCancel 87888304\nUndo 87888304\nRestart 38699508\nEndLevel 16741708\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Next, Refill, Cursor1, Cursor2, Cursor3\nNumeral, Text, Goal\n\n\n======\nRULES\n======\n\n[Next I][> Player|NotI]->cancel\n[Next U][> Player|NotU]->cancel\n[Next X][> Player|NotX]->cancel\n[Next L][> Player|NotL]->cancel\n[Next C][> Player|NotC]->cancel\n[Next D][> Player|NotD]->cancel\n[Next M][> Player|NotM]->cancel\n[Next Z][> Player|NotZ]->cancel\n\nlate[Next Numeral][Player]->[Next][Player Numeral]\nlate right[Next no Numeral|Numeral]->[Next Numeral|]\nlate right[Next|...|no Numeral|Numeral]->[Next|...|Numeral|]\n\nstartloop\nlate random down[Refill no Numeral][Cursor1|]->[Refill][|Cursor1]\nlate down[||||||||||Cursor1][Cursor2|]->[Cursor1||||||||||][|Cursor2]\nlate down[||||||||||Cursor2][Cursor3|]->[Cursor2||||||||||][|Cursor3]\nlate down[||||||||||Cursor3]->win\nlate right[Refill no Numeral|...|no Numeral][Cursor3 Numeral|]->[Refill|...|Numeral][Numeral|Cursor3]\nlate right[Refill no Numeral|...|no Numeral][Cursor2 Numeral|]->[Refill|...|Numeral][Numeral|Cursor2]\nlate right[Refill no Numeral|...|no Numeral][Cursor1 Numeral|]->[Refill|...|Numeral][Numeral|Cursor1]\nlate right[Numeral|Cursor]->[Numeral Cursor|]\nlate right[Refill no Numeral|...|Z]->[Refill|...|]\nlate right[Refill no Numeral|...|no Numeral|Numeral]->[Refill no Numeral|...|Numeral|]\nlate random right[Refill no Numeral|...|no Numeral]->[Refill|...|Z]\n late right[Next no Numeral|Numeral]->[Next Numeral|]\n+ late right[Next|...|no Numeral|Numeral]->[Next|...|Numeral|]\nendloop\n\nlate right[Goal|Cursor1][Goal|Cursor2][Goal|Cursor3][Refill]->[|][|][|][]\nlate[Next no Numeral]->win\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\nmessage XL-Plan is a variant of the XL-Up maze.\nmessage The goal of XL-Plan is to build and walk through a grid of figures, writing out roman numerals in ascending order.\nmessage The final roman numeral is shown at the top of the screen. The next figures are shown at the bottom of the screen.\nmessage Each step you take must be on to a space showing the next figure, or an empty space that will become the next figure.\n\nUII--PLAN{3ZZZ{2ZZZ.1ZZZ.\n..........CZZZ.XZZZ.IZZZ.\n..........CCZZ.XXZZ.IIZZ.\n..#####...CCCZ.XXXZ.IIIZ.\n..#...#...CDZZ.XLZZ.IUZZ.\n..#.@.#...DZZZ.LZZZ.UZZZ.\n..#...#...DCZZ.LXZZ.UIZZ.\n..#####...DCCZ.LXXZ{UIIZ.\n..........DCCC.LXXX.UIII.\n..........CMZZ.XCZZ.IXZZ.\n$.......&................\n\nXXI--PLAN{3ZZZ.2ZZZ.1ZZZ.\n..........CZZZ{XZZZ.IZZZ.\n.#######..CCZZ.XXZZ.IIZZ.\n.#.....#..CCCZ.XXXZ.IIIZ.\n.#.....#..CDZZ.XLZZ.IUZZ.\n.#..@..#..DZZZ.LZZZ.UZZZ.\n.#.....#..DCZZ.LXZZ.UIZZ.\n.#######..DCCZ.LXXZ.UIIZ.\n..........DCCC.LXXX.UIII.\n..........CMZZ.XCZZ{IXZZ.\n$.......&................\n\nXXU--PLAN{3ZZZ.2ZZZ.1ZZZ.\n..........CZZZ.XZZZ.IZZZ.\n.#######..CCZZ{XXZZ.IIZZ.\n.#.....#..CCCZ.XXXZ.IIIZ.\n.#.....#..CDZZ.XLZZ.IUZZ.\n.#..@..#..DZZZ.LZZZ{UZZZ.\n.#.....#..DCZZ.LXZZ.UIZZ.\n.#.....#..DCCZ.LXXZ.UIIZ.\n.#######..DCCC.LXXX.UIII.\n..........CMZZ.XCZZ.IXZZ.\n$.......&................\n\n.L--PLAN.{3ZZZ.2ZZZ{1ZZZ.\n#########.CZZZ.XZZZ.IZZZ.\n#.......#.CCZZ.XXZZ.IIZZ.\n#.......#.CCCZ.XXXZ.IIIZ.\n#.......#.CDZZ.XLZZ.IUZZ.\n#...@...#.DZZZ{LZZZ.UZZZ.\n#.......#.DCZZ.LXZZ.UIZZ.\n#.......#.DCCZ.LXXZ.UIIZ.\n#.......#.DCCC.LXXX.UIII.\n#########.CMZZ.XCZZ.IXZZ.\n$.......&................\n\n",[3,0,1,1,2,2,3,1,0,0,0,3,1,3,1,2,1,0,2],"background x:0,background:1,1,1,1,1,1,1,1,1,background i next:2,0,1,background wall:3,3,3,3,3,3,3,1,background i:4,background u:5,1,3,\nbackground player u:6,background z:7,1,1,1,3,1,7,background hyphen:8,1,3,5,4,7,4,1,3,1,5,8,1,3,7,4,7,\n4,1,3,1,4,background p:9,1,3,1,7,4,1,1,3,1,4,background l:10,1,3,1,1,1,1,1,3,\n1,4,a background:11,1,3,3,3,3,3,3,3,1,7,background n:12,1,1,1,1,1,1,1,1,1,background i refill:13,background goal:14,\n1,1,1,1,1,1,1,1,1,0,background cursor3 z:15,background c:16,16,16,16,background d:17,17,17,17,16,7,7,7,16,16,\n17,7,16,16,16,background m:18,1,7,7,7,16,7,7,7,16,16,7,1,7,7,7,7,7,7,7,\n7,16,7,1,1,1,14,1,1,1,1,1,1,1,1,background cursor2 z:19,0,0,0,0,10,10,10,10,0,\n1,7,7,0,0,10,7,0,0,0,16,1,7,7,7,0,7,7,7,0,0,7,1,7,7,\n7,7,7,7,7,7,0,7,1,1,1,1,1,1,14,1,1,1,1,1,7,4,4,4,4,\n5,5,5,5,background cursor1 i:20,1,7,7,4,4,5,7,4,4,4,0,1,7,7,7,4,7,7,7,4,\n4,7,1,7,7,7,7,7,7,7,7,4,7,1,1,1,1,1,1,1,1,1,1,1,1,\n",6,"1627779632918.6895"] + ["title XL-Plan\nauthor Mark Richardson\nflickscreen 9x11\nkey_repeat_interval 0.5\nnoaction\nrequire_player_movement\nrun_rules_on_level_start\n(verbose_logging)\n\n\n========\nOBJECTS\n========\n\nBackground .\nBlack\n\nPlayer\n#800\n\nNext $\n#008\n\nRefill &\nTransparent (#066)\n\nGoal {\n#660\n\nCursor1\n#080\n\nCursor2\n#080\n\nCursor3\n#080\n\nWall #\n#222\n\nZ\nWhite\n.....\n.....\n..0..\n.....\n.....\n\nI\nWhite\n.....\n..0..\n..0..\n..0..\n.....\n\nU\nWhite\n.....\n.0.0.\n.0.0.\n..0..\n.....\n\nX\nWhite\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nL\nWhite\n.....\n.0...\n.0...\n.000.\n.....\n\nC\nWhite\n.....\n..00.\n.0...\n..00.\n.....\n\nD\nWhite\n.....\n.00..\n.0.0.\n.00..\n.....\n\nM\nWhite Gray\n.....\n.000.\n.010.\n.0.0.\n.....\n\nHyphen -\nWhite\n.....\n.....\n00000\n.....\n.....\n\nP\nWhite\n.00..\n.0.0.\n.00..\n.0...\n.....\n\nA\nWhite\n.....\n..00.\n.0.0.\n..00.\n.....\n\nN\nWhite\n.....\n.00..\n.0.0.\n.0.0.\n.....\n\n\n=======\nLEGEND\n=======\n\n@ = Player and Z\n1 = Cursor1 and Z\n2 = Cursor2 and Z\n3 = Cursor3 and Z\n\nNumeral = I or U or X or L or C or D or M or Z\nNotI = U or X or L or C or D or M or Z\nNotU = I or X or L or C or D or M or Z\nNotX = I or U or L or C or D or M or Z\nNotL = I or U or X or C or D or M or Z\nNotC = I or U or X or L or D or M or Z\nNotD = I or U or X or L or C or M or Z\nNotM = I or U or X or L or C or D or Z\nNotZ = I or U or X or L or C or D or M\nText = P or A or N or Hyphen\nCursor = Cursor1 or Cursor2 or Cursor3\n\n=======\nSOUNDS\n=======\n\nPlayer Move 73969707\nCancel 87888304\nUndo 87888304\nRestart 38699508\nEndLevel 16741708\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Next, Refill, Cursor1, Cursor2, Cursor3\nNumeral, Text, Goal\n\n\n======\nRULES\n======\n\n[Next I][> Player|NotI]->cancel\n[Next U][> Player|NotU]->cancel\n[Next X][> Player|NotX]->cancel\n[Next L][> Player|NotL]->cancel\n[Next C][> Player|NotC]->cancel\n[Next D][> Player|NotD]->cancel\n[Next M][> Player|NotM]->cancel\n[Next Z][> Player|NotZ]->cancel\n\nlate[Next Numeral][Player]->[Next][Player Numeral]\nlate right[Next no Numeral|Numeral]->[Next Numeral|]\nlate right[Next|...|no Numeral|Numeral]->[Next|...|Numeral|]\n\nstartloop\nlate random down[Refill no Numeral][Cursor1|]->[Refill][|Cursor1]\nlate down[||||||||||Cursor1][Cursor2|]->[Cursor1||||||||||][|Cursor2]\nlate down[||||||||||Cursor2][Cursor3|]->[Cursor2||||||||||][|Cursor3]\nlate down[||||||||||Cursor3]->win\nlate right[Refill no Numeral|...|no Numeral][Cursor3 Numeral|]->[Refill|...|Numeral][Numeral|Cursor3]\nlate right[Refill no Numeral|...|no Numeral][Cursor2 Numeral|]->[Refill|...|Numeral][Numeral|Cursor2]\nlate right[Refill no Numeral|...|no Numeral][Cursor1 Numeral|]->[Refill|...|Numeral][Numeral|Cursor1]\nlate right[Numeral|Cursor]->[Numeral Cursor|]\nlate right[Refill no Numeral|...|Z]->[Refill|...|]\nlate right[Refill no Numeral|...|no Numeral|Numeral]->[Refill no Numeral|...|Numeral|]\nlate random right[Refill no Numeral|...|no Numeral]->[Refill|...|Z]\n late right[Next no Numeral|Numeral]->[Next Numeral|]\n+ late right[Next|...|no Numeral|Numeral]->[Next|...|Numeral|]\nendloop\n\nlate right[Goal|Cursor1][Goal|Cursor2][Goal|Cursor3][Refill]->[|][|][|][]\nlate[Next no Numeral]->win\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\nmessage XL-Plan is a variant of the XL-Up maze.\nmessage The goal of XL-Plan is to build and walk through a grid of figures, writing out roman numerals in ascending order.\nmessage The final roman numeral is shown at the top of the screen. The next figures are shown at the bottom of the screen.\nmessage Each step you take must be on to a space showing the next figure, or an empty space that will become the next figure.\n\nUII--PLAN{3ZZZ{2ZZZ.1ZZZ.\n..........CZZZ.XZZZ.IZZZ.\n..........CCZZ.XXZZ.IIZZ.\n..#####...CCCZ.XXXZ.IIIZ.\n..#...#...CDZZ.XLZZ.IUZZ.\n..#.@.#...DZZZ.LZZZ.UZZZ.\n..#...#...DCZZ.LXZZ.UIZZ.\n..#####...DCCZ.LXXZ{UIIZ.\n..........DCCC.LXXX.UIII.\n..........CMZZ.XCZZ.IXZZ.\n$.......&................\n\nXXI--PLAN{3ZZZ.2ZZZ.1ZZZ.\n..........CZZZ{XZZZ.IZZZ.\n.#######..CCZZ.XXZZ.IIZZ.\n.#.....#..CCCZ.XXXZ.IIIZ.\n.#.....#..CDZZ.XLZZ.IUZZ.\n.#..@..#..DZZZ.LZZZ.UZZZ.\n.#.....#..DCZZ.LXZZ.UIZZ.\n.#######..DCCZ.LXXZ.UIIZ.\n..........DCCC.LXXX.UIII.\n..........CMZZ.XCZZ{IXZZ.\n$.......&................\n\nXXU--PLAN{3ZZZ.2ZZZ.1ZZZ.\n..........CZZZ.XZZZ.IZZZ.\n.#######..CCZZ{XXZZ.IIZZ.\n.#.....#..CCCZ.XXXZ.IIIZ.\n.#.....#..CDZZ.XLZZ.IUZZ.\n.#..@..#..DZZZ.LZZZ{UZZZ.\n.#.....#..DCZZ.LXZZ.UIZZ.\n.#.....#..DCCZ.LXXZ.UIIZ.\n.#######..DCCC.LXXX.UIII.\n..........CMZZ.XCZZ.IXZZ.\n$.......&................\n\n.L--PLAN.{3ZZZ.2ZZZ{1ZZZ.\n#########.CZZZ.XZZZ.IZZZ.\n#.......#.CCZZ.XXZZ.IIZZ.\n#.......#.CCCZ.XXXZ.IIIZ.\n#.......#.CDZZ.XLZZ.IUZZ.\n#...@...#.DZZZ{LZZZ.UZZZ.\n#.......#.DCZZ.LXZZ.UIZZ.\n#.......#.DCCZ.LXXZ.UIIZ.\n#.......#.DCCC.LXXX.UIII.\n#########.CMZZ.XCZZ.IXZZ.\n$.......&................\n\n", [3, 0, 1, 1, 2, 2, 3, 1, 0, 0, 0, 3, 1, 3, 1, 2, 1, 0, 2], "background x:0,background:1,1,1,1,1,1,1,1,1,background i next:2,0,1,background wall:3,3,3,3,3,3,3,1,background i:4,background u:5,1,3,\nbackground player u:6,background z:7,1,1,1,3,1,7,background hyphen:8,1,3,5,4,7,4,1,3,1,5,8,1,3,7,4,7,\n4,1,3,1,4,background p:9,1,3,1,7,4,1,1,3,1,4,background l:10,1,3,1,1,1,1,1,3,\n1,4,a background:11,1,3,3,3,3,3,3,3,1,7,background n:12,1,1,1,1,1,1,1,1,1,background i refill:13,background goal:14,\n1,1,1,1,1,1,1,1,1,0,background cursor3 z:15,background c:16,16,16,16,background d:17,17,17,17,16,7,7,7,16,16,\n17,7,16,16,16,background m:18,1,7,7,7,16,7,7,7,16,16,7,1,7,7,7,7,7,7,7,\n7,16,7,1,1,1,14,1,1,1,1,1,1,1,1,background cursor2 z:19,0,0,0,0,10,10,10,10,0,\n1,7,7,0,0,10,7,0,0,0,16,1,7,7,7,0,7,7,7,0,0,7,1,7,7,\n7,7,7,7,7,7,0,7,1,1,1,1,1,1,14,1,1,1,1,1,7,4,4,4,4,\n5,5,5,5,background cursor1 i:20,1,7,7,4,4,5,7,4,4,4,0,1,7,7,7,4,7,7,7,4,\n4,7,1,7,7,7,7,7,7,7,7,4,7,1,1,1,1,1,1,1,1,1,1,1,1,\n", 6, "1627779632918.6895"] ], [ `gallery: Play Mini Gemini Replay (PMGRP)`, - ["title Play Mini Gemini Replay PMGRP\nauthor Pedro PSI\nhomepage pedropsi.github.io\n(License: Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0))\n\n(last updated 20/06/2018)\n\nbackground_color #044700 (darkest green)\ntext_color #FFFF2C (yellow)\n\nyoutube Qelelnc1NKg (Space Flight by Tim Beek)\n\nrealtime_interval 0.166\nkey_repeat_interval 0.166\nthrottle_movement\n\nrun_rules_on_level_start\n\n(Palette\n-----------------\n#044700 (darkest green)\n#087102 (dark green)\n#FFFF2C (yellow)\n\n#FF9703 (player orange)\n#FF8403 (pdayer orange)\n)\n========\nOBJECTS\n========\n\nBackground\n#044700 (darkest green)\n\nWall\n#087102 (dark green)\n\ncUL\n#044700 (darkest green)\n..0..\n..0..\n000..\n.....\n.....\n\ncUR\n#044700 (darkest green)\n..0..\n..0..\n..000\n.....\n.....\n\ncDL\n#044700 (darkest green)\n.....\n.....\n000..\n..0..\n..0..\n\ncDR\n#044700 (darkest green)\n.....\n.....\n..000\n..0..\n..0..\n\n\ncH\n#044700 (darkest green)\n.....\n.....\n00000\n.....\n.....\n\ncV\n#044700 (darkest green)\n..0..\n..0..\n..0..\n..0..\n..0..\n\ncDot\n#044700 (darkest green)\n.....\n.000.\n.0.0.\n.000.\n.....\n\ncl\n#044700 (darkest green)\n.....\n.....\n0....\n.....\n.....\n\ncu\n#044700 (darkest green)\n..0..\n.....\n.....\n.....\n.....\n\ncr\n#044700 (darkest green)\n.....\n.....\n....0\n.....\n.....\n\ncd\n#044700 (darkest green)\n.....\n.....\n.....\n.....\n..0..\n\n\ntrycD\ntransparent\ntrycU\ntransparent\ntrycL\ntransparent\ntrycR\ntransparent\n\nHubDotL\n#087102 (dark green) #044700 (darkest green)\n.....\n0...0\n0111.\n0....\n.....\n\nHubDotR\n#087102 (dark green) #044700 (darkest green)\n.....\n0...0\n.1110\n....0\n.....\n\n\nHubUp\n#044700 (darkest green)\n.....\n00000\n00.00\n.....\n.....\n\nHubUp2\n#044700 (darkest green)\n.....\n.0.0.\n00000\n.....\n.....\n\nHubDown\n#044700 (darkest green)\n.....\n.....\n00.00\n00000\n.....\n\nHubDown2\n#044700 (darkest green)\n.....\n.....\n00000\n.000.\n.....\n\n\nThrownLeft1\n#FFFF2C (yellow)\n.....\n..000\n.000.\n..000\n.....\n\nThrownLeft2\n#FFFF2C (yellow)\n.....\n..00.\n.00..\n..00.\n.....\n\nThrownLeft3\n#FFFF2C (yellow)\n.....\n..0..\n.0...\n..0..\n.....\n\nThrownRight1\n#FFFF2C (yellow)\n.....\n000..\n.000.\n000..\n.....\n\nThrownRight2\n#FFFF2C (yellow)\n.....\n.00..\n..00.\n.00..\n.....\n\nThrownRight3\n#FFFF2C (yellow)\n.....\n..0..\n...0.\n..0..\n.....\n\nGoal\ntransparent \n\nGoal1\n#FFFF2C (yellow)\n.....\n...0.\n.....\n.....\n.....\n\nGoal2\n#FFFF2C (yellow)\n.....\n...0.\n..0..\n.....\n.....\n\nGoal3\n#FFFF2C (yellow)\n.....\n...0.\n..0..\n.0...\n.....\n\nGoal4\n#FFFF2C (yellow)\n.....\n.0.0.\n..0..\n.0...\n.....\n\nGoal5\n#FFFF2C (yellow)\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nGoal6\ntransparent\n\nDeco5\n#FFFF2C (yellow)\n.....\n00000\n.....\n.....\n.....\n\nDeco4\n#FFFF2C (yellow)\n.000.\n.....\n.....\n.....\n.....\n\nDeco3\n#FFFF2C (yellow)\n.....\n.....\n.....\n.....\n.0.0.\n\nDeco2\n#FFFF2C (yellow)\n.....\n.....\n.....\n.000.\n.....\n\nDeco1\n#FFFF2C (yellow)\n.....\n.....\n00000\n.....\n.....\n\nOver10\n#044700 (darkest green)\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n\nOver9\n#044700 (darkest green)\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n.....\n\nOver8\n#044700 (darkest green)\n.0.0.\n.0.0.\n.0.0.\n.....\n.....\n\nOver7\n#044700 (darkest green)\n.0.0.\n.0.0.\n.....\n.....\n.....\n\nOver6\n#044700 (darkest green)\n.0.0.\n.....\n.....\n.....\n.....\n\nOver5\n#044700 (darkest green)\n.000.\n00000\n00000\n.000.\n.0.0.\n\nOver4\n#044700 (darkest green)\n.000.\n00000\n00000\n.000.\n.....\n\nOver3\n#044700 (darkest green)\n.000.\n00000\n00000\n.....\n.....\n\nOver2\n#044700 (darkest green)\n.000.\n00000\n.....\n.....\n.....\n\nOver1\n#044700 (darkest green)\n.000.\n.....\n.....\n.....\n.....\n\n\n\nO\n#FFFF2C (yellow) #087102 (dark green) \n.....\n.000.\n.010.\n.000.\n.....\n\n\nAr\n#FFFF2C (yellow) #044700 (darkest green)\n11111\n10011\n11001\n10011\n11111\n\nAl\n#FFFF2C (yellow) #044700 (darkest green)\n11111\n11001\n10011\n11001\n11111\n\nAd\n#FFFF2C (yellow) #044700 (darkest green)\n11111\n10101\n10001\n11011\n11111\n\nAu\n#FFFF2C (yellow) #044700 (darkest green)\n11111\n11011\n10001\n10101\n11111\n\nArI\n#044700 (darkest green) #FFFF2C (yellow)\n11111\n10011\n11001\n10011\n11111\n\nAlI\n#044700 (darkest green) #FFFF2C (yellow)\n11111\n11001\n10011\n11001\n11111\n\nAdI\n#044700 (darkest green) #FFFF2C (yellow)\n11111\n10101\n10001\n11011\n11111\n\nAuI\n#044700 (darkest green) #FFFF2C (yellow)\n11111\n11011\n10001\n10101\n11111\n\n\nStorageTick T\n#FFFF2C (yellow)\n0...0\n.....\n..0..\n.....\n0...0\n\nStorage -\n#087102 (dark green)\n.....\n.....\n..0..\n.....\n.....\n\nReplay »\ntransparent\n(white \n.0...\n.000.\n.0.0.\n.000.\n...0.)\n\nFreePlay !\ntransparent\n(white \n.....\n0000.\n.0000\n0000.\n.....\n)\n\nStopPlay _\ntransparent (white \n.0...\n.0.0.\n.....\n.0.0.\n...0.\n)\nOnce\ntransparent\nRead\ntransparent\nTry\ntransparent\n\nRegisterSymbol &\nred\n\nPlayer\n#FF9703 (player orange) #FF8403 (pdayer orange)\n.000.\n00000\n10001\n.111.\n.1.1.\n\nPlayerLegs\n#FF9703 (pdayer orange) #FF8403 (player orange)\n.1.1.\n.1.1.\n.1.1.\n.1.1.\n.0.0.\n\nPlayer2\n#FF9703 (player orange) #FF8403 (pdayer orange)\n.000.\n00000\n10001\n.111.\n.1.1.\n\nPlayerLegs2\n#FF9703 (pdayer orange) #FF8403 (player orange)\n.1.1.\n.1.1.\n.1.1.\n.1.1.\n.0.0.\n\nPlayer2Cover\n#FFFF2C (yellow)\n.000.\n00000\n00000\n.000.\n.0.0.\n\nPlayerLegs2Cover\n#FFFF2C (yellow)\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n\nThrArmR\n#044700 (darkest green) #FF8403 (pdayer orange)\n1....\n.....\n0....\n.....\n.....\n\nThrArmL\n#044700 (darkest green) #FF8403 (pdayer orange)\n....1\n.....\n....0\n.....\n.....\n\nThrArmRCover\n#044700 (darkest green) #FFFF2C (yellow)\n1....\n.....\n0....\n.....\n.....\n\nThrArmLCover\n#044700 (darkest green) #FFFF2C (yellow)\n....1\n.....\n....0\n.....\n.....\n\nNextLegs\ntransparent\n\nPlayerDrop\ntransparent\n\nGravity G\ntransparent\n\nWait\ntransparent\n\nAnimate A\ntransparent\n\nStorageFull\ntransparent\n\nHint1\ntransparent\n\nAniReplay\n#FFFF2C (yellow)\n.....\n.....\n.000.\n.....\n.....\n\nReplayDelay1\ntransparent\n\nReplayDelay2\ntransparent\n\nReplayDelay3\ntransparent\n\nReplayNow\ntransparent\n\nWinNow\ntransparent\n\nFixed\ntransparent\n\n=======\nLEGEND\n=======\n\n# = Wall\n. = Background\n$ = Goal\nD = PlayerDrop\n\nP = Player and D\n\n\nAs = Ar or Al or Au or Ad\nAsi= ArI or AlI or AuI or AdI \n\nBlock = O\n\nPlayers = Player or Player2\n\nPlayerBody = Player or Playerlegs\nPlayerBody2 = Player2 or Playerlegs2\n\nPlayerLegsAny = Playerlegs or Playerlegs2\n\nPlayerBodies = PlayerBody or PlayerBody2\nSymbol = Block or PlayerBodies\nItem = Symbol or Wall\n\nconnectionUnDot = cUL or cUR or cDL or CDR or CV or CH\nconnection = connectionUnDot or CDot\noverdot = cl or cu or cu or cr or cd \n\nHub = HubUp or HubUp2 or HubDown or HubDown2\n\nc_R = cDR or cUR or cH or cDot\nc_U = cUL or cUR or cV or cDot\nc_L = cDL or cUL or cH or cDot\nc_D = cDL or cDR or cV or cDot\n\ncOR = c_R or Hub or cDot\ncOU = c_U or cDot\ncOL = c_L or Hub or cDot\ncOD = c_D or cDot\n\ncXL = cDR or cUR or cV \ncXD = cUL or cUR or cH or HubUp or HubUp2\ncXR = cDL or cUL or cV\ncXU = cDL or cDR or cH or HubDown or HubDown2\n\ntryc = trycr or trycd or trycl or trycu\n\ntrycall = trycr and trycd and trycl and trycu\n\ntrycnor = trycd and trycl and trycu\ntrycnol = trycd and trycr and trycu\ntrycnou = trycd and trycr and trycl\ntrycnod = trycu and trycr and trycl\n\n\nPlay = Freeplay or Replay or StopPlay \n\n(anima)\nDeco = Deco1 or Deco2 or Deco3 or Deco4 or Deco5\nGDeco = Goal1 or Goal2 or Goal3 or Goal4 or Goal5 or Goal6\nWinDeco = Over1 or Over2 or Over3 or Over4 or Over5 or Over6 or Over7 or Over8 or Over9 or Over10\n\nThrownDeco = ThrownRight1 or ThrownRight2 or ThrownRight3 or ThrownLeft1 or ThrownLeft2 or ThrownLeft3\nThrownDeco1 = ThrownRight1 or ThrownLeft1\nThrownDeco3 = ThrownRight3 or ThrownLeft3\n\nPlayerThrownDeco = ThrArmL or ThrArmR\n\nPlayerCover = Player2Cover or Playerlegs2Cover\nPlayerThrArmCover = ThrArmLCover or ThrArmRCover\n\n? = FreePlay and Hint1\n\nAniDot = Storage\n\nReplayDelay = ReplayDelay1 or ReplayDelay2 or ReplayDelay3\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\nbackground\nGoal, PlayerDrop\nDeco, GDeco\nThrownDeco\nGravity, Wait\nPlay\nOnce\nTry\nStorage\nAniReplay\nRead\nStorageTick\n\nAs\nAsi\nItem\nPlayerCover\nNextlegs\n\ntrycr\ntrycd\ntrycl\ntrycu\nConnection\nHub\ncd\ncu\ncr, hubdotr\ncl, hubdotl\n\nPlayerThrownDeco\nPlayerThrArmCover\n\nFixed\n\nWinDeco\nwinNow\nRegisterSymbol\nAnimate\n\nStorageFull\nHint1\n\nReplayDelay, ReplayNow\n\n======\nRULES\n======\n\n[Animate]->[]\n[stationary Player no Animate]->[stationary Player Animate]\n\n(Decoration)\n(---------------------------------------------------)\n[Play no wall]->[Play Wall]\n\n(circuit hubs)\nup [wall no Hub|Goal]-> [wall HubUp|Goal]\nup [wall no Hub|D ]-> [wall HubUp2|D ]\n\ndown [wall no Hub|Goal]-> [wall HubDown|Goal]\ndown [wall no Hub|D ]-> [wall HubDown2|D ]\n\nright[Hub|no wall]->[Hub hubdotr|]\nleft [Hub|no wall]->[Hub hubdotl|]\n\n(circuit connection borders)\n\n(prolong)\n[tryc]->[]\nright [cOR|wall no hub no connection no tryc][A]->[cOR|wall trycall][A]\nup [cOU|wall no hub no connection no tryc][A]->[cOU|wall trycall][A]\nleft [cOL|wall no hub no connection no tryc][A]->[cOL|wall trycall][A]\ndown [cOD|wall no hub no connection no tryc][A]->[cOD|wall trycall][A]\n\n(remove dead ends)\nright [trycr|no wall]->[|]\nup [trycu|no wall]->[|]\nleft [trycl|no wall]->[|]\ndown [trycd|no wall]->[|]\n\nright [trycr|cXL]->[|cXL]\nup [trycu|cXD]->[|cXD]\nleft [trycl|cXR]->[|cXR]\ndown [trycd|cXU]->[|cXU]\n\n[. tryc ]->[tryc random connectionUnDot no .]\n\n[no . ch no trycl]->[.]\n[no . ch no trycr]->[.]\n[no . cv no trycu]->[.]\n[no . cv no trycd]->[.]\n\n[no . cul no trycu]->[.]\n[no . cul no trycl]->[.]\n\n[no . cur no trycr]->[.]\n[no . cur no trycu]->[.]\n\n[no . cdr no trycd]->[.]\n[no . cdr no trycr]->[.]\n\n[no . cdl no trycl]->[.]\n[no . cdl no trycd]->[.]\n\nright [no . CXR|COL]->[.|COL]\nup [no . CXU|COD]->[.|COD]\nleft [no . CXL|COR]->[.|COR]\ndown [no . CXD|COU]->[.|COU]\n\n[tryc]->[no tryc]\n\nrandom [A][wall no hub no connection no tryc]->[A][wall cDot]\n\n[no .]->[.]\n\nleft [cDot no cL|COR]->[cDot cL|COR]\nup [cDot no cU|COD]->[cDot cU|COD]\nright [cDot no cR|COL]->[cDot cR|COL]\ndown [cDot no cD|COU]->[cDot cD|COU]\n\n\n(animated)\n[A][D no Deco]->[A][D Deco5]\n[A][Deco1]->[A][Deco5 no .]\n[A][Deco2]->[A][Deco1]\n[A][Deco3]->[A][Deco2]\n[A][Deco4]->[A][Deco3]\n[A][Deco5 .]->[A][Deco4 .]\n[A][Deco5 no .]->[A][Deco5 .]\n\nlate [A][Deco][player][player2]->[A][][player][player2]\nlate [A][Deco no D]->[A][]\n\n[A][Goal no GDeco]->[A][Goal Goal1]\n[A][Goal6]->[A][Goal1 no .]\n[A][Goal5]->[A][Goal6]\n[A][Goal4]->[A][Goal5]\n[A][Goal3]->[A][Goal4]\n[A][Goal2]->[A][Goal3]\n[A][Goal1 .]->[A][Goal2]\n[A][Goal1 no .]->[A][Goal1 .]\n\n[A][Players Goal no WinDeco]->[A][Players Goal Over1]\n\n(winning animation)\n[A][Over9]->[A][Over10 winNow]\n[A][Over8] ->[A][Over9]\n[A][Over7] ->[A][Over8]\n[A][Over6] ->[A][Over7]\ndown [Over5 |PlayerLegsAny no WinDeco][A]->[Over5|Over6 PlayerLegsAny][A]\n\n[A][Over4]->[A][Over5 winNow]\ndown [Over5 winNow|PlayerLegsAny no WinDeco][A]->[Over5| PlayerLegsAny][A]\n\n[A][Over3]->[A][Over4]\n[A][Over2]->[A][Over3]\n[A][Over1 .]->[A][Over2]\n[A][Over1 no .]->[A][Over1 .]\n\n\n[ThrownDeco3][PlayerThrownDeco]->[ThrownDeco3][] (put down raised arm)\n[PlayerThrownDeco no Player]->[]\n\n[ThrownRight3]->[]\n[ThrownRight2]->[ThrownRight3]\n[ThrownRight1]->[ThrownRight2]\n[ThrownLeft3]->[]\n[ThrownLeft2]->[ThrownLeft3]\n[ThrownLeft1]->[ThrownLeft2]\n[throwndeco symbol]->[symbol]\n\n(animate replay)\n[AniReplay]->[]\n[»][AniDot no AniReplay]->[»][AniDot AniReplay]\n\n\n(Switch Read/Write Phases & Gravity)\n(---------------------------------------------------)\n(Manage Player Spawn)\n[Player D][no Player D]->[Player][D](avoid overspawn)\n\n(RePlay)\n[Wait]->[]\n[ThrownDeco][Player no Wait]->[ThrownDeco][Player Wait] (pause until after thrown)\n[!][action player][D Item no Playerlegs] ->[!][Player][D item] (prevent respawn if blocked)\n[!][action player D] ->[!][Player D] \n[!][action player][D] ->[»][Player2][D Player Wait]\n[Player2][D]->[Player2][] (remove after spawning)\n\n[!][action player][player2]->[»][Player2][Player Wait]\n\n(StopPlay)\n[_][moving player]->[_][player]\n[_][action player]->[_][player]\n\n(clean read moves after stopping)\n[_][Read]->[_][]\n\n(GravityPlay)\n[G]->[]\ndown [Symbol |no Item][Play]-> [Symbol|][Play G]\n\n\n(Delay in Replay Mode)\n(---------------------------------------------------)\n[ReplayNow]->[]\n[ReplayDelay3]->[ReplayNow]\n[ReplayDelay2]->[ReplayDelay3]\n[ReplayDelay1]->[ReplayDelay2]\n\n[» no ReplayDelay no ReplayNow]->[» ReplayDelay1]\n[» ReplayDelay no ReplayNow][Player]->[» ReplayDelay Once][stationary Player Wait]\n\n(Action Storage)\n(---------------------------------------------------)\n(initialise or respawn ticker)\n[!][T]->[!][]\nrandom [!][- no As]->[!][- T]\n[!][G][T]->[!][G][] (don't register gravity)\n\n(place ticker at first emply position)\ndown [- T |- no T][!]->[-|- T][!]\nright[- T |- no T][!]->[-|- T][!]\n\nup [- T| - no T no As][!]->[-|- T][!]\nleft [- T| - no T no As][!]->[-|- T][!]\n\n(register player moves once, and keep ticker)\n[left Player][T][! no Once]->[left Player][T Al][! Once]\n[up Player][T][! no Once]->[up Player][T Au][! Once]\n[right Player][T][! no Once]->[right Player][T Ar][! Once]\n[down Player][T][! no Once]->[down Player][T Ad][! Once]\n[!][Try]->[!][]\n[! Once]->[! Try]\n\n(block action if no more space is available)\n[!]->[! Once]\n[T][! Once]->[T][!]\n[! Once][moving player]->[!][stationary player]\n[! Once]->[!]\n\n\n(Action Readage)\n(---------------------------------------------------)\n(initialise or respawn ticker)\n[»][T]->[»][]\nrandom [»][-]->[»][- T]\n[»][G][T]->[»][G][] (don't register gravity)\n\n(place ticker at last unread position)\ndown [- T |- no T][»]->[-|- T][»]\nright[- T |- no T][»]->[-|- T][»]\n[»][T Read]->[_ Once][Read StorageFull] (exit if no more unread moves)\n\nup [- T |- no T no Read][»]->[-|- T][»]\nleft [- T |- no T no Read][»]->[-|- T][»]\n\n(replay player moves once, and keep ticker)\n[Player no Wait][T Al][» no Once]->[left Player][T Al Read][» Once]\n[Player no Wait][T Au][» no Once]->[up Player][T Au Read][» Once]\n[Player no Wait][T Ar][» no Once]->[right Player][T Ar Read][» Once]\n[Player no Wait][T Ad][» no Once]->[down Player][T Ad Read][» Once]\n[» Once]->[»]\n\n(end after no more available moves and switch player)\n[»][T no As]->[! Once][]\n\n[! Once][Player][Player2]->[!][stationary Player2][stationary Player]\n[_ Once][Player][Player2]->[_][stationary Player2][stationary Player]\n[! Once]->[!]\n[_ Once]->[!]\n\n(embellish read arrows)\n[Al Read]->[Al Ali Read]\n[Au Read]->[Au Aui Read]\n[Ar Read]->[Ar Ari Read]\n[Ad Read]->[Ad Adi Read]\n\n\n(Player picks Blocks)\n(---------------------------------------------------)\n(Drop)\n(up [no playerlegs|down player|Symbol|Symbol] ->[|player|Symbol|Symbol])\nup [ playerlegs|down player|Symbol][no &]->[ |player|Symbol][&] (register)\nup [no playerlegs|down player|Symbol][no &]->[ |Symbol|player][&] (register)\n\n(Pick)\ndown [down player|Symbol no playerlegs][no &]->[Symbol|player][&]\n\n\n(Gravity)\n(---------------------------------------------------)\n\n(symbols fall, walls don't)\n[G][symbol]->[G][down symbol]\n[G][wall]->[G][stationary wall]\n\n(stationary items support other items on top)\ndown [G][down symbol | stationary Item]->[G][stationary symbol| stationary Item]\n\n\n(Player's Long Legs)\n(---------------------------------------------------)\n(swap legs)\nup [playerlegs|player2 ]->[playerlegs2| player2]\nup [playerlegs2|player ]->[playerlegs | player ]\n\n(remove legs on down press or horizonal movement)\nup [playerlegs |down player ][no &]->[stationary player |][&] \nup [playerlegs2|down player2]->[stationary player2|] \nup [playerlegs |up player ]->[playerlegs |stationary player ] \nup [playerlegs2|up player2]->[playerlegs2|stationary player2] \n\n(remove orphan legs)\nlate up [playerlegs |no player ]->[|]\nlate up [playerlegs2|no player2]->[|]\n\n(Rise )\n[up Player]->[up Player Nextlegs]\n[up Player2]->[up Player2 Nextlegs]\nlate [Nextlegs no Item]->[playerlegs] (player 2 is irrelevant)\nlate [Nextlegs]->[]\n\n[Fixed]->[]\nstartloop\n(Transport)\n(---------------------------------------------------)\nup [moving Symbol|Symbol no Fixed]->[moving Symbol|moving Symbol]\n\n(Player Push)\n(---------------------------------------------------)\n[> Player | Symbol]->[> Player|> Symbol]\n\n(Collision)\n(---------------------------------------------------)\nhorizontal [playerlegs2|< symbol ]->[ |< symbol ]\nhorizontal [playerlegs |< symbol ]->[ |< symbol]\n[> Symbol | stationary Symbol]->[> symbol |> symbol]\n\n(De-register Phase: deregister unacomplished moves)\n(---------------------------------------------------)\n[> Symbol | stationary Item]->[stationary Symbol Fixed|stationary Item]\nendloop\n\n(animate throw)\nup [stationary player |...|left Symbol]->[stationary player ThrArmL|...|left Symbol ThrownLeft1 ]\nup [stationary player |...|right Symbol]->[stationary player ThrArmR|...|right Symbol ThrownRight1]\n\n\n[!]->[! Once]\n[moving Symbol][! Once]->[moving Symbol][!]\n [&][! Once]->[][!]\n[! Once][T As]->[!][T no As]\n[! Once]->[!]\n[&]->[]\n\n(Don't move player after win)\n(---------------------------------------------------)\n[player][WinDeco]->[stationary player][WinDeco]\n\n\n(display hint in tutorial level)\n(---------------------------------------------------)\n[Windeco][StorageFull]->[Windeco][]\n[StorageFull][Hint1]->[][] message No more moves. Retry (R)?\n\n(highlight player)\nlate [PlayerCover]->[]\nlate [Player2 no Player2Cover]->[Player2 Player2Cover]\nlate [PlayerLegs2 no PlayerLegs2Cover]->[PlayerLegs2 PlayerLegs2Cover]\n\n\nlate [»][PlayerCover]->[»][]\nlate [»][Player no Player2Cover]->[»][Player Player2Cover]\nlate [»][PlayerLegs no PlayerLegs2Cover]->[»][PlayerLegs PlayerLegs2Cover]\n\n[PlayerThrArmCover]->[]\nlate [ThrArmL Player2Cover]->[ThrArmL ThrarmLCover Player2Cover]\nlate [ThrArmR Player2Cover]->[ThrArmR ThrarmRCover Player2Cover]\n\n==============\nWINCONDITIONS\n==============\nAny WinNow\n\n=======\nLEVELS\n=======\n\nmessage \"So you want to reach your goals?\"\nmessage \"Well, start by helping yourself!\" \nmessage Lesson 1 of 11\nmessage Arrows to play a move...\nmessage ...X to replay moves!\n\n(introduce game mechanics)\n############\n#P..D..#####\n######.#####\n######...$.#\n############\n#----?######\n############\n\n(introduce carrying)\nmessage \"You seem to have some potential.\" \nmessage Lesson 2 * \nmessage \"Carry on...\" \n\n##########\n#.......P#\n#.....####\n#$..######\n##########\n##########\n##-----!##\n##########\n\n(introduce go up)\nmessage Lesson 3 * \nmessage \"..through ups and downs.\" \n##########\n#P......$#\n##..#..###\n##########\n##########\n##------!#\n##########\n\n(introduce push over)\nmessage Lesson 4 * \nmessage \"If you push yourself over the edge...\"\n##########\n#$......P#\n#####...##\n#####...##\n##########\n##!-----##\n##########\n\n(introduce floating respawn spot)\nmessage Lesson 5 *\nmessage \"... do lift yourself up.\"\n##########\n#.d......#\n#........#\n#.......$#\n#.....####\n#.....####\n#.P...####\n##########\n##########\n##-----!##\n##########\n\n(fun: force carrying, great distance and height)\nmessage Lesson 6 **\nmessage \"Never give up,...\"\n############\n#$.........#\n###........#\n#####......#\n#####......#\n#######....#\n#########.P#\n############\n############\n#!--------##\n############\n\n(fun reverse directions, move blockade)\nmessage Lesson 7 **\nmessage \"...but change direction instead.\" \n#######\n#$#####\n#..D..#\n#.###.#\n#P....#\n#######\n#-----#\n#-----!\n#######\n\n\n(introduce blocks and under leg respawn)\nmessage Lesson 8 **\nmessage \"For every block...\"\n########\n#..O..##\n#.##..##\n#.....$#\n#P##.###\n####.###\n##!#####\n########\n#------#\n########\n\n(push and carry at same time)\nmessage Lesson 9 ***\nmessage \"... is a stepping stone...\"\n#########\n#......$#\n#......##\n#P.....##\n##o....##\n###....##\n#########\n#########\n#!#----##\n###----##\n#########\n\n(fun: five storey, so close but so far)\nmessage Lesson 10 ***\nmessage \"... to greater heights!\"\n#######\n#...D$#\n#...###\n#...#!#\n#...###\n#O.P###\n#######\n#######\n#-----#\n#-----#\n#######\n\n(fun: double block constraint)\nmessage Lesson 11 ****\nmessage \"Barriers... are to be knocked!\"\n#########\n##..##.$#\n##..o..##\n##P.o..##\n#########\n#########\n##-----!#\n#########\n\nmessage \"Congratulations, pupil...\"\nmessage \"...you've learned all...\"\nmessage \"... and became your own master.\"\n\nmessage \"So what are you waiting for?\"\nmessage \"Go and chase your dreams!\"\n \nmessage > Play Mini Gemini Replay PMGRP < > > > > > Pedro PSI 2018 < < < < < \nmessage > > > > > > > Music < < < < < < < > Space Flight > < < < Tim Beek < \n\n",["tick","tick","tick","tick","tick","tick","tick",0,"tick",1,"tick","tick",0,"tick","tick",1,"tick","tick","tick",3,"tick",2,"tick",1,"tick",3,"tick","tick","tick",3,"tick","tick",0,4,"tick",4,"tick",4,"tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background ch wall:0,background cdl wall:1,background cd cdot cu wall:2,2,2,background cul wall:3,background cdr wall:4,\nbackground cur wall:5,1,2,3,background cdot cl cr wall:6,background:7,7,\n7,7,background o:8,background cdot cl wall:9,0,au aui background read storage:10,ar ari background read storage:11,\nbackground cdot cr wall:12,3,7,7,7,7,7,\n4,3,al ali background read storage:13,10,9,12,7,\n7,animate background player:14,background player2 player2cover:15,background playerlegs2 playerlegs2cover:16,background hubup2 wall:17,12,10,\nbackground storage storagetick:18,4,background hubdown2 wall:19,7,background hubdotl hubup2 wall:20,4,background cv wall:21,\nbackground cdot cr cu wall:22,0,6,13,background storage:23,0,background hubdown wall:24,\nbackground goal goal3:25,background hubup wall:26,background ch freeplay wall:27,background cdot wall:28,0,1,3,\n11,23,6,0,4,3,1,\n21,background cd cdot cl cu wall:29,2,21,2,5,1,\n",33,"1627779684110.5146"] + ["title Play Mini Gemini Replay PMGRP\nauthor Pedro PSI\nhomepage pedropsi.github.io\n(License: Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0))\n\n(last updated 20/06/2018)\n\nbackground_color #044700 (darkest green)\ntext_color #FFFF2C (yellow)\n\nyoutube Qelelnc1NKg (Space Flight by Tim Beek)\n\nrealtime_interval 0.166\nkey_repeat_interval 0.166\nthrottle_movement\n\nrun_rules_on_level_start\n\n(Palette\n-----------------\n#044700 (darkest green)\n#087102 (dark green)\n#FFFF2C (yellow)\n\n#FF9703 (player orange)\n#FF8403 (pdayer orange)\n)\n========\nOBJECTS\n========\n\nBackground\n#044700 (darkest green)\n\nWall\n#087102 (dark green)\n\ncUL\n#044700 (darkest green)\n..0..\n..0..\n000..\n.....\n.....\n\ncUR\n#044700 (darkest green)\n..0..\n..0..\n..000\n.....\n.....\n\ncDL\n#044700 (darkest green)\n.....\n.....\n000..\n..0..\n..0..\n\ncDR\n#044700 (darkest green)\n.....\n.....\n..000\n..0..\n..0..\n\n\ncH\n#044700 (darkest green)\n.....\n.....\n00000\n.....\n.....\n\ncV\n#044700 (darkest green)\n..0..\n..0..\n..0..\n..0..\n..0..\n\ncDot\n#044700 (darkest green)\n.....\n.000.\n.0.0.\n.000.\n.....\n\ncl\n#044700 (darkest green)\n.....\n.....\n0....\n.....\n.....\n\ncu\n#044700 (darkest green)\n..0..\n.....\n.....\n.....\n.....\n\ncr\n#044700 (darkest green)\n.....\n.....\n....0\n.....\n.....\n\ncd\n#044700 (darkest green)\n.....\n.....\n.....\n.....\n..0..\n\n\ntrycD\ntransparent\ntrycU\ntransparent\ntrycL\ntransparent\ntrycR\ntransparent\n\nHubDotL\n#087102 (dark green) #044700 (darkest green)\n.....\n0...0\n0111.\n0....\n.....\n\nHubDotR\n#087102 (dark green) #044700 (darkest green)\n.....\n0...0\n.1110\n....0\n.....\n\n\nHubUp\n#044700 (darkest green)\n.....\n00000\n00.00\n.....\n.....\n\nHubUp2\n#044700 (darkest green)\n.....\n.0.0.\n00000\n.....\n.....\n\nHubDown\n#044700 (darkest green)\n.....\n.....\n00.00\n00000\n.....\n\nHubDown2\n#044700 (darkest green)\n.....\n.....\n00000\n.000.\n.....\n\n\nThrownLeft1\n#FFFF2C (yellow)\n.....\n..000\n.000.\n..000\n.....\n\nThrownLeft2\n#FFFF2C (yellow)\n.....\n..00.\n.00..\n..00.\n.....\n\nThrownLeft3\n#FFFF2C (yellow)\n.....\n..0..\n.0...\n..0..\n.....\n\nThrownRight1\n#FFFF2C (yellow)\n.....\n000..\n.000.\n000..\n.....\n\nThrownRight2\n#FFFF2C (yellow)\n.....\n.00..\n..00.\n.00..\n.....\n\nThrownRight3\n#FFFF2C (yellow)\n.....\n..0..\n...0.\n..0..\n.....\n\nGoal\ntransparent \n\nGoal1\n#FFFF2C (yellow)\n.....\n...0.\n.....\n.....\n.....\n\nGoal2\n#FFFF2C (yellow)\n.....\n...0.\n..0..\n.....\n.....\n\nGoal3\n#FFFF2C (yellow)\n.....\n...0.\n..0..\n.0...\n.....\n\nGoal4\n#FFFF2C (yellow)\n.....\n.0.0.\n..0..\n.0...\n.....\n\nGoal5\n#FFFF2C (yellow)\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nGoal6\ntransparent\n\nDeco5\n#FFFF2C (yellow)\n.....\n00000\n.....\n.....\n.....\n\nDeco4\n#FFFF2C (yellow)\n.000.\n.....\n.....\n.....\n.....\n\nDeco3\n#FFFF2C (yellow)\n.....\n.....\n.....\n.....\n.0.0.\n\nDeco2\n#FFFF2C (yellow)\n.....\n.....\n.....\n.000.\n.....\n\nDeco1\n#FFFF2C (yellow)\n.....\n.....\n00000\n.....\n.....\n\nOver10\n#044700 (darkest green)\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n\nOver9\n#044700 (darkest green)\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n.....\n\nOver8\n#044700 (darkest green)\n.0.0.\n.0.0.\n.0.0.\n.....\n.....\n\nOver7\n#044700 (darkest green)\n.0.0.\n.0.0.\n.....\n.....\n.....\n\nOver6\n#044700 (darkest green)\n.0.0.\n.....\n.....\n.....\n.....\n\nOver5\n#044700 (darkest green)\n.000.\n00000\n00000\n.000.\n.0.0.\n\nOver4\n#044700 (darkest green)\n.000.\n00000\n00000\n.000.\n.....\n\nOver3\n#044700 (darkest green)\n.000.\n00000\n00000\n.....\n.....\n\nOver2\n#044700 (darkest green)\n.000.\n00000\n.....\n.....\n.....\n\nOver1\n#044700 (darkest green)\n.000.\n.....\n.....\n.....\n.....\n\n\n\nO\n#FFFF2C (yellow) #087102 (dark green) \n.....\n.000.\n.010.\n.000.\n.....\n\n\nAr\n#FFFF2C (yellow) #044700 (darkest green)\n11111\n10011\n11001\n10011\n11111\n\nAl\n#FFFF2C (yellow) #044700 (darkest green)\n11111\n11001\n10011\n11001\n11111\n\nAd\n#FFFF2C (yellow) #044700 (darkest green)\n11111\n10101\n10001\n11011\n11111\n\nAu\n#FFFF2C (yellow) #044700 (darkest green)\n11111\n11011\n10001\n10101\n11111\n\nArI\n#044700 (darkest green) #FFFF2C (yellow)\n11111\n10011\n11001\n10011\n11111\n\nAlI\n#044700 (darkest green) #FFFF2C (yellow)\n11111\n11001\n10011\n11001\n11111\n\nAdI\n#044700 (darkest green) #FFFF2C (yellow)\n11111\n10101\n10001\n11011\n11111\n\nAuI\n#044700 (darkest green) #FFFF2C (yellow)\n11111\n11011\n10001\n10101\n11111\n\n\nStorageTick T\n#FFFF2C (yellow)\n0...0\n.....\n..0..\n.....\n0...0\n\nStorage -\n#087102 (dark green)\n.....\n.....\n..0..\n.....\n.....\n\nReplay »\ntransparent\n(white \n.0...\n.000.\n.0.0.\n.000.\n...0.)\n\nFreePlay !\ntransparent\n(white \n.....\n0000.\n.0000\n0000.\n.....\n)\n\nStopPlay _\ntransparent (white \n.0...\n.0.0.\n.....\n.0.0.\n...0.\n)\nOnce\ntransparent\nRead\ntransparent\nTry\ntransparent\n\nRegisterSymbol &\nred\n\nPlayer\n#FF9703 (player orange) #FF8403 (pdayer orange)\n.000.\n00000\n10001\n.111.\n.1.1.\n\nPlayerLegs\n#FF9703 (pdayer orange) #FF8403 (player orange)\n.1.1.\n.1.1.\n.1.1.\n.1.1.\n.0.0.\n\nPlayer2\n#FF9703 (player orange) #FF8403 (pdayer orange)\n.000.\n00000\n10001\n.111.\n.1.1.\n\nPlayerLegs2\n#FF9703 (pdayer orange) #FF8403 (player orange)\n.1.1.\n.1.1.\n.1.1.\n.1.1.\n.0.0.\n\nPlayer2Cover\n#FFFF2C (yellow)\n.000.\n00000\n00000\n.000.\n.0.0.\n\nPlayerLegs2Cover\n#FFFF2C (yellow)\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n\nThrArmR\n#044700 (darkest green) #FF8403 (pdayer orange)\n1....\n.....\n0....\n.....\n.....\n\nThrArmL\n#044700 (darkest green) #FF8403 (pdayer orange)\n....1\n.....\n....0\n.....\n.....\n\nThrArmRCover\n#044700 (darkest green) #FFFF2C (yellow)\n1....\n.....\n0....\n.....\n.....\n\nThrArmLCover\n#044700 (darkest green) #FFFF2C (yellow)\n....1\n.....\n....0\n.....\n.....\n\nNextLegs\ntransparent\n\nPlayerDrop\ntransparent\n\nGravity G\ntransparent\n\nWait\ntransparent\n\nAnimate A\ntransparent\n\nStorageFull\ntransparent\n\nHint1\ntransparent\n\nAniReplay\n#FFFF2C (yellow)\n.....\n.....\n.000.\n.....\n.....\n\nReplayDelay1\ntransparent\n\nReplayDelay2\ntransparent\n\nReplayDelay3\ntransparent\n\nReplayNow\ntransparent\n\nWinNow\ntransparent\n\nFixed\ntransparent\n\n=======\nLEGEND\n=======\n\n# = Wall\n. = Background\n$ = Goal\nD = PlayerDrop\n\nP = Player and D\n\n\nAs = Ar or Al or Au or Ad\nAsi= ArI or AlI or AuI or AdI \n\nBlock = O\n\nPlayers = Player or Player2\n\nPlayerBody = Player or Playerlegs\nPlayerBody2 = Player2 or Playerlegs2\n\nPlayerLegsAny = Playerlegs or Playerlegs2\n\nPlayerBodies = PlayerBody or PlayerBody2\nSymbol = Block or PlayerBodies\nItem = Symbol or Wall\n\nconnectionUnDot = cUL or cUR or cDL or CDR or CV or CH\nconnection = connectionUnDot or CDot\noverdot = cl or cu or cu or cr or cd \n\nHub = HubUp or HubUp2 or HubDown or HubDown2\n\nc_R = cDR or cUR or cH or cDot\nc_U = cUL or cUR or cV or cDot\nc_L = cDL or cUL or cH or cDot\nc_D = cDL or cDR or cV or cDot\n\ncOR = c_R or Hub or cDot\ncOU = c_U or cDot\ncOL = c_L or Hub or cDot\ncOD = c_D or cDot\n\ncXL = cDR or cUR or cV \ncXD = cUL or cUR or cH or HubUp or HubUp2\ncXR = cDL or cUL or cV\ncXU = cDL or cDR or cH or HubDown or HubDown2\n\ntryc = trycr or trycd or trycl or trycu\n\ntrycall = trycr and trycd and trycl and trycu\n\ntrycnor = trycd and trycl and trycu\ntrycnol = trycd and trycr and trycu\ntrycnou = trycd and trycr and trycl\ntrycnod = trycu and trycr and trycl\n\n\nPlay = Freeplay or Replay or StopPlay \n\n(anima)\nDeco = Deco1 or Deco2 or Deco3 or Deco4 or Deco5\nGDeco = Goal1 or Goal2 or Goal3 or Goal4 or Goal5 or Goal6\nWinDeco = Over1 or Over2 or Over3 or Over4 or Over5 or Over6 or Over7 or Over8 or Over9 or Over10\n\nThrownDeco = ThrownRight1 or ThrownRight2 or ThrownRight3 or ThrownLeft1 or ThrownLeft2 or ThrownLeft3\nThrownDeco1 = ThrownRight1 or ThrownLeft1\nThrownDeco3 = ThrownRight3 or ThrownLeft3\n\nPlayerThrownDeco = ThrArmL or ThrArmR\n\nPlayerCover = Player2Cover or Playerlegs2Cover\nPlayerThrArmCover = ThrArmLCover or ThrArmRCover\n\n? = FreePlay and Hint1\n\nAniDot = Storage\n\nReplayDelay = ReplayDelay1 or ReplayDelay2 or ReplayDelay3\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\nbackground\nGoal, PlayerDrop\nDeco, GDeco\nThrownDeco\nGravity, Wait\nPlay\nOnce\nTry\nStorage\nAniReplay\nRead\nStorageTick\n\nAs\nAsi\nItem\nPlayerCover\nNextlegs\n\ntrycr\ntrycd\ntrycl\ntrycu\nConnection\nHub\ncd\ncu\ncr, hubdotr\ncl, hubdotl\n\nPlayerThrownDeco\nPlayerThrArmCover\n\nFixed\n\nWinDeco\nwinNow\nRegisterSymbol\nAnimate\n\nStorageFull\nHint1\n\nReplayDelay, ReplayNow\n\n======\nRULES\n======\n\n[Animate]->[]\n[stationary Player no Animate]->[stationary Player Animate]\n\n(Decoration)\n(---------------------------------------------------)\n[Play no wall]->[Play Wall]\n\n(circuit hubs)\nup [wall no Hub|Goal]-> [wall HubUp|Goal]\nup [wall no Hub|D ]-> [wall HubUp2|D ]\n\ndown [wall no Hub|Goal]-> [wall HubDown|Goal]\ndown [wall no Hub|D ]-> [wall HubDown2|D ]\n\nright[Hub|no wall]->[Hub hubdotr|]\nleft [Hub|no wall]->[Hub hubdotl|]\n\n(circuit connection borders)\n\n(prolong)\n[tryc]->[]\nright [cOR|wall no hub no connection no tryc][A]->[cOR|wall trycall][A]\nup [cOU|wall no hub no connection no tryc][A]->[cOU|wall trycall][A]\nleft [cOL|wall no hub no connection no tryc][A]->[cOL|wall trycall][A]\ndown [cOD|wall no hub no connection no tryc][A]->[cOD|wall trycall][A]\n\n(remove dead ends)\nright [trycr|no wall]->[|]\nup [trycu|no wall]->[|]\nleft [trycl|no wall]->[|]\ndown [trycd|no wall]->[|]\n\nright [trycr|cXL]->[|cXL]\nup [trycu|cXD]->[|cXD]\nleft [trycl|cXR]->[|cXR]\ndown [trycd|cXU]->[|cXU]\n\n[. tryc ]->[tryc random connectionUnDot no .]\n\n[no . ch no trycl]->[.]\n[no . ch no trycr]->[.]\n[no . cv no trycu]->[.]\n[no . cv no trycd]->[.]\n\n[no . cul no trycu]->[.]\n[no . cul no trycl]->[.]\n\n[no . cur no trycr]->[.]\n[no . cur no trycu]->[.]\n\n[no . cdr no trycd]->[.]\n[no . cdr no trycr]->[.]\n\n[no . cdl no trycl]->[.]\n[no . cdl no trycd]->[.]\n\nright [no . CXR|COL]->[.|COL]\nup [no . CXU|COD]->[.|COD]\nleft [no . CXL|COR]->[.|COR]\ndown [no . CXD|COU]->[.|COU]\n\n[tryc]->[no tryc]\n\nrandom [A][wall no hub no connection no tryc]->[A][wall cDot]\n\n[no .]->[.]\n\nleft [cDot no cL|COR]->[cDot cL|COR]\nup [cDot no cU|COD]->[cDot cU|COD]\nright [cDot no cR|COL]->[cDot cR|COL]\ndown [cDot no cD|COU]->[cDot cD|COU]\n\n\n(animated)\n[A][D no Deco]->[A][D Deco5]\n[A][Deco1]->[A][Deco5 no .]\n[A][Deco2]->[A][Deco1]\n[A][Deco3]->[A][Deco2]\n[A][Deco4]->[A][Deco3]\n[A][Deco5 .]->[A][Deco4 .]\n[A][Deco5 no .]->[A][Deco5 .]\n\nlate [A][Deco][player][player2]->[A][][player][player2]\nlate [A][Deco no D]->[A][]\n\n[A][Goal no GDeco]->[A][Goal Goal1]\n[A][Goal6]->[A][Goal1 no .]\n[A][Goal5]->[A][Goal6]\n[A][Goal4]->[A][Goal5]\n[A][Goal3]->[A][Goal4]\n[A][Goal2]->[A][Goal3]\n[A][Goal1 .]->[A][Goal2]\n[A][Goal1 no .]->[A][Goal1 .]\n\n[A][Players Goal no WinDeco]->[A][Players Goal Over1]\n\n(winning animation)\n[A][Over9]->[A][Over10 winNow]\n[A][Over8] ->[A][Over9]\n[A][Over7] ->[A][Over8]\n[A][Over6] ->[A][Over7]\ndown [Over5 |PlayerLegsAny no WinDeco][A]->[Over5|Over6 PlayerLegsAny][A]\n\n[A][Over4]->[A][Over5 winNow]\ndown [Over5 winNow|PlayerLegsAny no WinDeco][A]->[Over5| PlayerLegsAny][A]\n\n[A][Over3]->[A][Over4]\n[A][Over2]->[A][Over3]\n[A][Over1 .]->[A][Over2]\n[A][Over1 no .]->[A][Over1 .]\n\n\n[ThrownDeco3][PlayerThrownDeco]->[ThrownDeco3][] (put down raised arm)\n[PlayerThrownDeco no Player]->[]\n\n[ThrownRight3]->[]\n[ThrownRight2]->[ThrownRight3]\n[ThrownRight1]->[ThrownRight2]\n[ThrownLeft3]->[]\n[ThrownLeft2]->[ThrownLeft3]\n[ThrownLeft1]->[ThrownLeft2]\n[throwndeco symbol]->[symbol]\n\n(animate replay)\n[AniReplay]->[]\n[»][AniDot no AniReplay]->[»][AniDot AniReplay]\n\n\n(Switch Read/Write Phases & Gravity)\n(---------------------------------------------------)\n(Manage Player Spawn)\n[Player D][no Player D]->[Player][D](avoid overspawn)\n\n(RePlay)\n[Wait]->[]\n[ThrownDeco][Player no Wait]->[ThrownDeco][Player Wait] (pause until after thrown)\n[!][action player][D Item no Playerlegs] ->[!][Player][D item] (prevent respawn if blocked)\n[!][action player D] ->[!][Player D] \n[!][action player][D] ->[»][Player2][D Player Wait]\n[Player2][D]->[Player2][] (remove after spawning)\n\n[!][action player][player2]->[»][Player2][Player Wait]\n\n(StopPlay)\n[_][moving player]->[_][player]\n[_][action player]->[_][player]\n\n(clean read moves after stopping)\n[_][Read]->[_][]\n\n(GravityPlay)\n[G]->[]\ndown [Symbol |no Item][Play]-> [Symbol|][Play G]\n\n\n(Delay in Replay Mode)\n(---------------------------------------------------)\n[ReplayNow]->[]\n[ReplayDelay3]->[ReplayNow]\n[ReplayDelay2]->[ReplayDelay3]\n[ReplayDelay1]->[ReplayDelay2]\n\n[» no ReplayDelay no ReplayNow]->[» ReplayDelay1]\n[» ReplayDelay no ReplayNow][Player]->[» ReplayDelay Once][stationary Player Wait]\n\n(Action Storage)\n(---------------------------------------------------)\n(initialise or respawn ticker)\n[!][T]->[!][]\nrandom [!][- no As]->[!][- T]\n[!][G][T]->[!][G][] (don't register gravity)\n\n(place ticker at first emply position)\ndown [- T |- no T][!]->[-|- T][!]\nright[- T |- no T][!]->[-|- T][!]\n\nup [- T| - no T no As][!]->[-|- T][!]\nleft [- T| - no T no As][!]->[-|- T][!]\n\n(register player moves once, and keep ticker)\n[left Player][T][! no Once]->[left Player][T Al][! Once]\n[up Player][T][! no Once]->[up Player][T Au][! Once]\n[right Player][T][! no Once]->[right Player][T Ar][! Once]\n[down Player][T][! no Once]->[down Player][T Ad][! Once]\n[!][Try]->[!][]\n[! Once]->[! Try]\n\n(block action if no more space is available)\n[!]->[! Once]\n[T][! Once]->[T][!]\n[! Once][moving player]->[!][stationary player]\n[! Once]->[!]\n\n\n(Action Readage)\n(---------------------------------------------------)\n(initialise or respawn ticker)\n[»][T]->[»][]\nrandom [»][-]->[»][- T]\n[»][G][T]->[»][G][] (don't register gravity)\n\n(place ticker at last unread position)\ndown [- T |- no T][»]->[-|- T][»]\nright[- T |- no T][»]->[-|- T][»]\n[»][T Read]->[_ Once][Read StorageFull] (exit if no more unread moves)\n\nup [- T |- no T no Read][»]->[-|- T][»]\nleft [- T |- no T no Read][»]->[-|- T][»]\n\n(replay player moves once, and keep ticker)\n[Player no Wait][T Al][» no Once]->[left Player][T Al Read][» Once]\n[Player no Wait][T Au][» no Once]->[up Player][T Au Read][» Once]\n[Player no Wait][T Ar][» no Once]->[right Player][T Ar Read][» Once]\n[Player no Wait][T Ad][» no Once]->[down Player][T Ad Read][» Once]\n[» Once]->[»]\n\n(end after no more available moves and switch player)\n[»][T no As]->[! Once][]\n\n[! Once][Player][Player2]->[!][stationary Player2][stationary Player]\n[_ Once][Player][Player2]->[_][stationary Player2][stationary Player]\n[! Once]->[!]\n[_ Once]->[!]\n\n(embellish read arrows)\n[Al Read]->[Al Ali Read]\n[Au Read]->[Au Aui Read]\n[Ar Read]->[Ar Ari Read]\n[Ad Read]->[Ad Adi Read]\n\n\n(Player picks Blocks)\n(---------------------------------------------------)\n(Drop)\n(up [no playerlegs|down player|Symbol|Symbol] ->[|player|Symbol|Symbol])\nup [ playerlegs|down player|Symbol][no &]->[ |player|Symbol][&] (register)\nup [no playerlegs|down player|Symbol][no &]->[ |Symbol|player][&] (register)\n\n(Pick)\ndown [down player|Symbol no playerlegs][no &]->[Symbol|player][&]\n\n\n(Gravity)\n(---------------------------------------------------)\n\n(symbols fall, walls don't)\n[G][symbol]->[G][down symbol]\n[G][wall]->[G][stationary wall]\n\n(stationary items support other items on top)\ndown [G][down symbol | stationary Item]->[G][stationary symbol| stationary Item]\n\n\n(Player's Long Legs)\n(---------------------------------------------------)\n(swap legs)\nup [playerlegs|player2 ]->[playerlegs2| player2]\nup [playerlegs2|player ]->[playerlegs | player ]\n\n(remove legs on down press or horizonal movement)\nup [playerlegs |down player ][no &]->[stationary player |][&] \nup [playerlegs2|down player2]->[stationary player2|] \nup [playerlegs |up player ]->[playerlegs |stationary player ] \nup [playerlegs2|up player2]->[playerlegs2|stationary player2] \n\n(remove orphan legs)\nlate up [playerlegs |no player ]->[|]\nlate up [playerlegs2|no player2]->[|]\n\n(Rise )\n[up Player]->[up Player Nextlegs]\n[up Player2]->[up Player2 Nextlegs]\nlate [Nextlegs no Item]->[playerlegs] (player 2 is irrelevant)\nlate [Nextlegs]->[]\n\n[Fixed]->[]\nstartloop\n(Transport)\n(---------------------------------------------------)\nup [moving Symbol|Symbol no Fixed]->[moving Symbol|moving Symbol]\n\n(Player Push)\n(---------------------------------------------------)\n[> Player | Symbol]->[> Player|> Symbol]\n\n(Collision)\n(---------------------------------------------------)\nhorizontal [playerlegs2|< symbol ]->[ |< symbol ]\nhorizontal [playerlegs |< symbol ]->[ |< symbol]\n[> Symbol | stationary Symbol]->[> symbol |> symbol]\n\n(De-register Phase: deregister unacomplished moves)\n(---------------------------------------------------)\n[> Symbol | stationary Item]->[stationary Symbol Fixed|stationary Item]\nendloop\n\n(animate throw)\nup [stationary player |...|left Symbol]->[stationary player ThrArmL|...|left Symbol ThrownLeft1 ]\nup [stationary player |...|right Symbol]->[stationary player ThrArmR|...|right Symbol ThrownRight1]\n\n\n[!]->[! Once]\n[moving Symbol][! Once]->[moving Symbol][!]\n [&][! Once]->[][!]\n[! Once][T As]->[!][T no As]\n[! Once]->[!]\n[&]->[]\n\n(Don't move player after win)\n(---------------------------------------------------)\n[player][WinDeco]->[stationary player][WinDeco]\n\n\n(display hint in tutorial level)\n(---------------------------------------------------)\n[Windeco][StorageFull]->[Windeco][]\n[StorageFull][Hint1]->[][] message No more moves. Retry (R)?\n\n(highlight player)\nlate [PlayerCover]->[]\nlate [Player2 no Player2Cover]->[Player2 Player2Cover]\nlate [PlayerLegs2 no PlayerLegs2Cover]->[PlayerLegs2 PlayerLegs2Cover]\n\n\nlate [»][PlayerCover]->[»][]\nlate [»][Player no Player2Cover]->[»][Player Player2Cover]\nlate [»][PlayerLegs no PlayerLegs2Cover]->[»][PlayerLegs PlayerLegs2Cover]\n\n[PlayerThrArmCover]->[]\nlate [ThrArmL Player2Cover]->[ThrArmL ThrarmLCover Player2Cover]\nlate [ThrArmR Player2Cover]->[ThrArmR ThrarmRCover Player2Cover]\n\n==============\nWINCONDITIONS\n==============\nAny WinNow\n\n=======\nLEVELS\n=======\n\nmessage \"So you want to reach your goals?\"\nmessage \"Well, start by helping yourself!\" \nmessage Lesson 1 of 11\nmessage Arrows to play a move...\nmessage ...X to replay moves!\n\n(introduce game mechanics)\n############\n#P..D..#####\n######.#####\n######...$.#\n############\n#----?######\n############\n\n(introduce carrying)\nmessage \"You seem to have some potential.\" \nmessage Lesson 2 * \nmessage \"Carry on...\" \n\n##########\n#.......P#\n#.....####\n#$..######\n##########\n##########\n##-----!##\n##########\n\n(introduce go up)\nmessage Lesson 3 * \nmessage \"..through ups and downs.\" \n##########\n#P......$#\n##..#..###\n##########\n##########\n##------!#\n##########\n\n(introduce push over)\nmessage Lesson 4 * \nmessage \"If you push yourself over the edge...\"\n##########\n#$......P#\n#####...##\n#####...##\n##########\n##!-----##\n##########\n\n(introduce floating respawn spot)\nmessage Lesson 5 *\nmessage \"... do lift yourself up.\"\n##########\n#.d......#\n#........#\n#.......$#\n#.....####\n#.....####\n#.P...####\n##########\n##########\n##-----!##\n##########\n\n(fun: force carrying, great distance and height)\nmessage Lesson 6 **\nmessage \"Never give up,...\"\n############\n#$.........#\n###........#\n#####......#\n#####......#\n#######....#\n#########.P#\n############\n############\n#!--------##\n############\n\n(fun reverse directions, move blockade)\nmessage Lesson 7 **\nmessage \"...but change direction instead.\" \n#######\n#$#####\n#..D..#\n#.###.#\n#P....#\n#######\n#-----#\n#-----!\n#######\n\n\n(introduce blocks and under leg respawn)\nmessage Lesson 8 **\nmessage \"For every block...\"\n########\n#..O..##\n#.##..##\n#.....$#\n#P##.###\n####.###\n##!#####\n########\n#------#\n########\n\n(push and carry at same time)\nmessage Lesson 9 ***\nmessage \"... is a stepping stone...\"\n#########\n#......$#\n#......##\n#P.....##\n##o....##\n###....##\n#########\n#########\n#!#----##\n###----##\n#########\n\n(fun: five storey, so close but so far)\nmessage Lesson 10 ***\nmessage \"... to greater heights!\"\n#######\n#...D$#\n#...###\n#...#!#\n#...###\n#O.P###\n#######\n#######\n#-----#\n#-----#\n#######\n\n(fun: double block constraint)\nmessage Lesson 11 ****\nmessage \"Barriers... are to be knocked!\"\n#########\n##..##.$#\n##..o..##\n##P.o..##\n#########\n#########\n##-----!#\n#########\n\nmessage \"Congratulations, pupil...\"\nmessage \"...you've learned all...\"\nmessage \"... and became your own master.\"\n\nmessage \"So what are you waiting for?\"\nmessage \"Go and chase your dreams!\"\n \nmessage > Play Mini Gemini Replay PMGRP < > > > > > Pedro PSI 2018 < < < < < \nmessage > > > > > > > Music < < < < < < < > Space Flight > < < < Tim Beek < \n\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", 1, "tick", "tick", 0, "tick", "tick", 1, "tick", "tick", "tick", 3, "tick", 2, "tick", 1, "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", 0, 4, "tick", 4, "tick", 4, "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background ch wall:0,background cdl wall:1,background cd cdot cu wall:2,2,2,background cul wall:3,background cdr wall:4,\nbackground cur wall:5,1,2,3,background cdot cl cr wall:6,background:7,7,\n7,7,background o:8,background cdot cl wall:9,0,au aui background read storage:10,ar ari background read storage:11,\nbackground cdot cr wall:12,3,7,7,7,7,7,\n4,3,al ali background read storage:13,10,9,12,7,\n7,animate background player:14,background player2 player2cover:15,background playerlegs2 playerlegs2cover:16,background hubup2 wall:17,12,10,\nbackground storage storagetick:18,4,background hubdown2 wall:19,7,background hubdotl hubup2 wall:20,4,background cv wall:21,\nbackground cdot cr cu wall:22,0,6,13,background storage:23,0,background hubdown wall:24,\nbackground goal goal3:25,background hubup wall:26,background ch freeplay wall:27,background cdot wall:28,0,1,3,\n11,23,6,0,4,3,1,\n21,background cd cdot cl cu wall:29,2,21,2,5,1,\n", 33, "1627779684110.5146"] ], [ `vertebrae`, - ["title Vertebrae\nauthor Ali Nikkhah\n\nnoaction\nbackground_color #000000\ntext_color #a98c47\nyoutube No3kOKsgIXE (dpndP-cBE60)\nrun_rules_on_level_start\nagain_interval 0.05\nkey_repeat_interval 0.12\n\n========\nOBJECTS\n========\n\nBackground\nWhite\n.....\n.....\n..0..\n.....\n.....\n\nGround \n#ac9071\n00000\n00000\n00000\n00000\n00000\n\nGroundCornerTRG\n#a99b8c #ac9071\n....0\n.....\n.....\n.....\n.....\n\nGroundCornerTRW\n#a99b8c #246894\n.11..\n...1.\n....1\n....1\n.....\n\nGroundCornerTLG\n#a99b8c #ac9071\n0....\n.....\n.....\n.....\n.....\n\nGroundCornerTLW\n#a99b8c #246894\n..11.\n.1...\n1....\n1....\n.....\n\nGroundCornerBRG\n#a99b8c #ac9071\n.....\n.....\n.....\n.....\n....0\n\nGroundCornerBRW\n#a99b8c #246894\n.....\n....1\n....1\n...1.\n.11..\n\nGroundCornerBLG\n#a99b8c #ac9071\n.....\n.....\n.....\n.....\n0....\n\nGroundCornerBLW\n#a99b8c #246894\n.....\n1....\n1....\n.1...\n..11.\n\nGroundEdgeUG\n#a99b8c #246894\n00000\n.....\n.....\n.....\n.....\n\nGroundEdgeUW\n#a99b8c #246894\n11111\n.....\n.....\n.....\n.....\n\nGroundEdgeRG\n#a99b8c #246894\n....0\n....0\n....0\n....0\n....0\n\nGroundEdgeRW\n#a99b8c #246894\n....1\n....1\n....1\n....1\n....1\n\nGroundEdgeDG\n#a99b8c #246894\n.....\n.....\n.....\n.....\n00000\n\nGroundEdgeDW\n#a99b8c #246894\n.....\n.....\n.....\n.....\n11111\n\nGroundEdgeLG\n#a99b8c #246894\n0....\n0....\n0....\n0....\n0....\n\nGroundEdgeLW\n#a99b8c #246894\n1....\n1....\n1....\n1....\n1....\n\nDirtWall \n#392800 #5a4000 #5e412b #433021 #4f3622 #744d2e #8b5a33\n.655.\n65122\n15243\n21443\n24433\n\nDoorVertical\n#d89005\n.000.\n.000.\n.000.\n.000.\n.000.\n\nOpenDoorVertical\n#d68708\n.0.0.\n.....\n.....\n.....\n.0.0.\n\nDoorHorizontal\n#d89005\n.....\n00000\n00000\n00000\n.....\n\nOpenDoorHorizontal\n#d68708\n.....\n0...0\n.....\n0...0\n.....\n\nGoal\nDarkBlue\n.....\n.....\n.....\n.....\n.....\n\nTrigger\nDarkBlue\n.....\n.....\n.....\n.....\n.....\n\nopen\ntransparent\n\nclose\ntransparent\n\nWater\n#1780c5 LightBlue\n10000\n00010\n01000\n00001\n00000\n\nWaterCornerTR\n#246894 #a99b8c\n.1110\n...11\n....1\n....1\n.....\n\nWaterCornerTL\n#246894 #a99b8c\n0111.\n11...\n1....\n1....\n.....\n\nWaterCornerBR\n#246894 #a99b8c\n.....\n....1\n....1\n...11\n.1110\n\nWaterCornerBL\n#246894 #a99b8c\n.....\n1....\n1....\n11...\n0111.\n\nLava\n#dd4e00 #ea5d00\n10000\n00010\n01000\n00001\n00000\n\nblood\nDarkred\n.000.\n00000\n00000\n00000\n.000.\n\nPlayerL\nBlack Brown Pink\n.....\n...2.\n2101.\n.1111\n11111\n\nPlayerU\nBlack Brown Pink\n..2..\n.010.\n21112\n11111\n.111.\n\nPlayerR\nBlack Brown Pink\n.....\n.2...\n.1012\n1111.\n11111\n\nPlayerD\nBlack Brown Pink\n.111.\n11111\n21112\n.010.\n..2..\n\nHeadL\nWhite\n.000.\n0.000\n...00\n..00.\n000..\n\nHeadD\nWhite\n.000.\n00000\n0.0.0\n0.0.0\n.000.\n\nHeadU\nWhite\n.000.\n0.0.0\n0.0.0\n00000\n.000.\n\nHeadR\nWhite\n.000.\n000.0\n00...\n.00..\n..000\n\nBodyRL\nWhite LightGrey\n.....\n..1..\n00000\n..1..\n.....\n\nBodyUD\nWhite LightGrey\n..0..\n..0..\n.101.\n..0..\n..0..\n\nBodyDR\nWhite LightGrey\n.....\n.1...\n..000\n..01.\n..0..\n\nBodyDL\nWhite LightGrey\n.....\n...1.\n000..\n.10..\n..0..\n\nBodyUR\nWhite LightGrey\n..0..\n..01.\n..000\n.1...\n.....\n\nBodyUL\nWhite LightGrey\n..0..\n.10..\n000..\n...1.\n.....\n\nTailL\nWhite LightGrey\n.....\n..1..\n0000.\n..1..\n.....\n\nTailR\nWhite LightGrey\n.....\n..1..\n.0000\n..1..\n.....\n\nTailU\nWhite LightGrey\n..0..\n..0..\n.101.\n..0..\n.....\n\nTailD\nWhite LightGrey\n.....\n..0..\n.101.\n..0..\n..0..\n\nDetachedTail\nWhite LightGray\n.....\n..0..\n.101.\n..0..\n.....\n\nBox\n#694632 #7c543d #563428\n.....\n.212.\n.101.\n.212.\n.....\n\nBoxBondU\n#766846\n..0..\n.....\n.....\n.....\n.....\n\nBoxBondR\n#766846\n.....\n.....\n....0\n.....\n.....\n\nBoxBondD\n#766846\n.....\n.....\n.....\n.....\n..0..\n\nBoxBondL\n#766846\n.....\n.....\n0....\n.....\n.....\n\nStep\n#9f835d #927051\n.111.\n10001\n10001\n10001\n.111.\n\nButton\n#7157df #360d8b Gray\n00011\n02221\n12221\n12220\n11000\n\nDartWallU\nBlack DarkGray Gray\n.....\n.112.\n12111\n11212\n11112\n\nDartWallL\nBlack DarkGray Gray\n.....\n.111.\n12112\n10112\n10111\n\nDartWallR\nBlack DarkGray Gray\n.....\n.111.\n21121\n21101\n11101\n\nDartWallD\nBlack DarkGray Gray\n.....\n.112.\n12111\n11012\n11012\n\nDartU\nLightGray\n.....\n..0..\n..0..\n.....\n.....\n\nDartR\nLightGray\n.....\n.....\n..00.\n.....\n.....\n\nDartD\nLightGray\n.....\n.....\n..0..\n..0..\n.....\n\nDartL\nLightGray\n.....\n.....\n.00..\n.....\n.....\n\nN1\nBlack\n..0..\n.00..\n..0..\n..0..\n.000.\n\nN2\nBlack\n000..\n...0.\n.00..\n0....\n0000.\n\nN3\nBlack\n000..\n...0.\n.00..\n...0.\n000..\n\nN4\nBlack\n...0.\n..00.\n.0.0.\n00000\n...0.\n\nN5\nBlack\n0000.\n0....\n000..\n...0.\n000..\n\nN6\nBlack\n.00..\n0....\n000..\n0..0.\n.00..\n\nN7\nBlack\n0000.\n...0.\n..0..\n.0...\n0....\n\nN8\nBlack\n.00..\n0..0.\n.00..\n0..0.\n.00..\n\nN9\nBlack\n.00..\n0..0.\n.000.\n...0.\n.00..\n\nN0\nBlack\n.00..\n0..0.\n0..0.\n0..0.\n.00..\n\nAttachR\ntransparent\n\nAttachL\ntransparent\n\nAttachD\ntransparent\n\nAttachU\ntransparent\n\nArrowU\ntransparent\n\nArrowL\ntransparent\n\nArrowR\ntransparent\n\nArrowD\ntransparent\n\nbreak\ntransparent\n\nclear\ntransparent\n\ncontinue\ntransparent\n\npull\ntransparent\n\nonGround\ntransparent\n\nblockedU\ntransparent\n\nblockedR\ntransparent\n\nblockedD\ntransparent\n\nblockedL\ntransparent\n\nstopU\ntransparent\n\nstopR\ntransparent\n\nstopD\ntransparent\n\nstopL\ntransparent\n\ntailit\ntransparent\n\npink\ntransparent\n\ngreen\ntransparent\n\nstart\ntransparent\n\nrayU\ntransparent\n\nrayR\ntransparent\n\nrayD\ntransparent\n\nrayL\ntransparent\n\nrayreturnU\ntransparent\n\nrayreturnR\ntransparent\n\nrayreturnD\ntransparent\n\nrayreturnL\ntransparent\n\n\nmessage0\ntransparent\n\nmessage1\ntransparent\n\nmessage2\ntransparent\n\nmessage3\ntransparent\n\nsavepoint\ntransparent\n\n\nedgeU\ntransparent\n\nedgeR\ntransparent\n\nedgeD\ntransparent\n\nedgeL\ntransparent\n\nfree\ntransparent\n\nredDot\nRed\n.....\n.....\n..0..\n.....\n.....\n\nblueDot\nblue\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n! = HeadL and ground\n& = HeadR and Water\n¤ = DetachedTail and Water\n\nw = water\nl = Lava\n. = ground\n# = DirtWall and ground\np = PlayerR and start and ground\n> = PlayerR and HeadR and start and ground\n^ = PlayerU and HeadU and start and ground\nv = PlayerD and HeadD and start and ground\n< = PlayerL and HeadL and start and ground\nd = DetachedTail and ground\n? = DetachedTail and Step and Water\n\" = DetachedTail and Box and Button and ground\nj = DetachedTail and Box and ground\ni = DetachedTail and Box and Step and Water\nb = box and ground\nn = box and button and ground\nm = box and water\nu = box and Step and water\nx = button and ground\ng = Step and Water\n$ = box and button and OpenDoorHorizontal and ground\n\nt = DoorVertical and ground\nz = DoorHorizontal and ground\n1 = DoorVertical and Step and Water\n2 = DoorHorizontal and Step and Water\n\no = Goal and ground\n0 = Goal and Step and Water\n- = Trigger and ground\n_ = trigger and water\n/ = trigger and DirtWall and ground\n: = Trigger and Step and Water\n\nA = DartWallU and ground\nY = DartWallR and ground\nK = DartWallD and ground\n7 = DartWallL and ground\n\n۱ = N1 and Water\n۲ = N2 and Water\n۳ = N3 and Water\n۴ = N4 and Water\n۵ = N5 and Water\n۶ = N6 and Water\n۷ = N7 and Water\n۸ = N8 and Water\n۹ = N9 and Water\n۰ = N0 and Water\n\nMarker = ArrowL or ArrowR or ArrowU or ArrowD\nAttachMarker = AttachU or AttachR or AttachD or AttachL\nBlockMarker = blockedU or blockedR or blockedD or blockedL\n\nBoxBondMarker = BoxBondU or BoxBondR or BoxBondD or BoxBondL\n\nPlayer = PlayerL or PlayerR or PlayerU or PlayerD\nTail = TailD or TailU or TailL or TailR\nHead = HeadL or HeadD or HeadR or HeadU\nVertebra = BodyRL or BodyUD or BodyUL or BodyDL or BodyUR or BodyDR or Tail\nMoveable = Vertebra or Head or DetachedTail or Box\n\nVertebraU = TailU or BodyUL or BodyUR or BodyUD\nVertebraR = TailR or BodyUR or BodyDR or BodyRL\nVertebraD = TailD or BodyDL or BodyDR or BodyUD\nVertebraL = TailL or BodyUL or BodyDL or BodyRL\n\nAttachable = Tail or DetachedTail\n\nDoor = DoorHorizontal or DoorVertical\nOpenDoor = OpenDoorHorizontal or OpenDoorVertical\n\nDartWall = DartWallU or DartWallR or DartWallD or DartWallL\nDart = DartU or DartR or DartD or DartL\n\nWall = DirtWall or Door or DartWall\nRayBlocker = Wall or Box or Vertebra or Dart or DetachedTail\nRay = rayU or rayR or rayD or rayL or rayreturnU or rayreturnR or rayreturnD or rayreturnL\n\nMapBackground = Water or Ground\nWalkable = Step or Ground\nNoGround = Button or DirtWall or Step\n\nWaterCorner = WaterCornerTR or WaterCornerTL or WaterCornerBR or WaterCornerBL\nGroundCorner = GroundCornerTRG or GroundCornerTLG or GroundCornerBRG or GroundCornerBLG or GroundCornerTRW or GroundCornerTLW or GroundCornerBRW or GroundCornerBLW\nGroundCornerU = GroundCornerTRG or GroundCornerTLG\nGroundCornerR = GroundCornerTRG or GroundCornerBRG\nGroundCornerD = GroundCornerBRG or GroundCornerBLG\nGroundCornerL = GroundCornerBLG or GroundCornerBRG\n\nedge = edgeU or edgeR or edgeD or edgeL\n=======\nSOUNDS\n=======\n\nUndo 33805504\n\nTitleScreen 92220309\n\nsfx1 98765764\nsfx2 74917107 (30004904)\nsfx3 3004904\nsfx4 32969702\nsfx5 75918304\nsfx6 88800304\nsfx7 1729107\nsfx8 30678307\n\n================\nCOLLISIONLAYERS\n================\n\nAttachU\nAttachD\nAttachL\nAttachR\n\nblockedU\nblockedR\nblockedD\nblockedL\n\nstopU\nstopR\nstopD\nstopL\n\nArrowU\nArrowR\nArrowD\nArrowL\n\nbreak\nclear\ncontinue\npull\nstart\nonground\n\ntailit\n\npink \ngreen\n\nBackground\nWater\nLava\nGround\n\nGroundCornerTRW\nGroundCornerTLW\nGroundCornerBRW\nGroundCornerBLW\nGroundEdgeUW\nGroundEdgeRW\nGroundEdgeDW\nGroundEdgeLW\n\nGroundCornerTRG\nGroundCornerTLG\nGroundCornerBRG\nGroundCornerBLG\nGroundEdgeUG\nGroundEdgeRG\nGroundEdgeDG\nGroundEdgeLG\n\nWaterCornerTR\nWaterCornerTL\nWaterCornerBR\nWaterCornerBL\n\nN0,N1,N2,N3,N4,N5,N6,N7,N8,N9\n\nStep\ngoal\nButton\nBlood\nOpenDoor\nPlayer\nWall, BodyRL, BodyUD, BodyUL, BodyDL, BodyUR, BodyDR, Head, DetachedTail \nTail\nBox\n\nBoxBondU\nBoxBondR\nBoxBondD\nBoxBondL\n\nDart\n\ntrigger\nopen\nclose\n\nray\n\nredDot\nbluedot\n\nmessage0\nmessage1\nmessage2\nmessage3\nsavepoint\n\nedgeU\nedgeR\nedgeD\nedgeL\n\nfree\n\n======\nRULES \n======\n\nup [ start ] [ Wall | Water no Wall ] -> [ start ] [ Wall WaterCornerTR WaterCornerTL | Water no GroundCornerBRG GroundCornerBLG ]\n\n[ start ] [ ] -> [ start ] [ edgeU edgeR edgeD edgeL ]\n\nup [ start ] [ edgeU | MapBackground ] -> [ start ] [ | MapBackground ]\nright [ start ] [ edgeR | MapBackground ] -> [ start ] [ | MapBackground ]\ndown [ start ] [ edgeD | MapBackground ] -> [ start ] [ | MapBackground ]\nleft [ start ] [ edgeL | MapBackground ] -> [ start ] [ | MapBackground ]\n\n[ start ] [ Step | Ground no NoGround | Step ] -> [ start ] [ Step | Step Water | Step ]\n\nup [ start ] [ DirtWall | Water no clear ] -> [ start ] [ Dirtwall no Ground | Water clear ]\n[ Water clear ] -> [ Water ]\n\n[ start ] [ Ground ] -> [ start ] [ Ground WaterCornerTR WaterCornerTL WaterCornerBR WaterCornerBL ]\n[ start ] [ Water ] -> [ start ] [ Water GroundCornerTRG GroundCornerTLG GroundCornerBRG GroundCornerBLG ]\n\nup [ start ] [ Ground | Ground ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerTR | Ground no WaterCornerBL no WaterCornerBR ]\nright [ start ] [ Ground | Ground ] -> [ start ] [ Ground no WaterCornerTR no WaterCornerBR | Ground no WaterCornerBL no WaterCornerTL ]\n\nup [ start ] [ Water | Water ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerTRG | Water no GroundCornerBLG no GroundCornerBRG ]\nright [ start ] [ Water | Water ] -> [ start ] [ Water no GroundCornerTRG no GroundCornerBRG | Water no GroundCornerBLG no GroundCornerTLG ]\n\nup [ start ] [ Water | DirtWall ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerTRG | DirtWall ]\nright [ start ] [ Water | DirtWall ] -> [ start ] [ Water no GroundCornerTRG no GroundCornerBRG | DirtWall ]\ndown [ start ] [ Water | DirtWall ] -> [ start ] [ Water no GroundCornerBLG no GroundCornerBRG | DirtWall ]\nleft [ start ] [ Water | DirtWall ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerBLG | DirtWall ]\n\nup [ start ] [ Ground | NoGround ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerTR | NoGround ]\nright [ start ] [ Ground | NoGround ] -> [ start ] [ Ground no WaterCornerTR no WaterCornerBR | NoGround ]\ndown [ start ] [ Ground | NoGround ] -> [ start ] [ Ground no WaterCornerBL no WaterCornerBR | NoGround ]\nleft [ start ] [ Ground | NoGround ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerBL | NoGround ]\n\n[ start ] [ Step WaterCorner ] -> [ start ] [ Step ]\n\n[ start ] [ Ground edgeD ] -> [ start ] [ Ground no WaterCornerBL no WaterCornerBR edgeD ]\n[ start ] [ Ground edgeL ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerBL edgeL ]\n[ start ] [ Ground edgeU ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerTR edgeU ]\n[ start ] [ Ground edgeR ] -> [ start ] [ Ground no WaterCornerTR no WaterCornerBR edgeR ]\n\n[ start ] [ Water edgeD ] -> [ start ] [ Water no GroundCornerBLG no GroundCornerBRG edgeD ]\n[ start ] [ Water edgeL ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerBLG edgeL ]\n[ start ] [ Water edgeU ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerTRG edgeU ]\n[ start ] [ Water edgeR ] -> [ start ] [ Water no GroundCornerTRG no GroundCornerBRG edgeR ]\n\nup [ start ] [ Water | Ground ] -> [ start ] [ Water GroundEdgeUW | Ground GroundEdgeDG ]\nright [ start ] [ Water | Ground ] -> [ start ] [ Water GroundEdgeRW | Ground GroundEdgeLG ]\ndown [ start ] [ Water | Ground ] -> [ start ] [ Water GroundEdgeDW | Ground GroundEdgeUG ]\nleft [ start ] [ Water | Ground ] -> [ start ] [ Water GroundEdgeLW | Ground GroundEdgeRG ]\n\n[ start ] [ GroundCornerTRG ] -> [ start ] [ GroundCornerTRG GroundCornerTRW ]\n[ start ] [ GroundCornerTLG ] -> [ start ] [ GroundCornerTLG GroundCornerTLW ]\n[ start ] [ GroundCornerBRG ] -> [ start ] [ GroundCornerBRG GroundCornerBRW ]\n[ start ] [ GroundCornerBLG ] -> [ start ] [ GroundCornerBLG GroundCornerBLW ]\n\n[ start ] [ GroundEdgeUG ] -> [ start ] [ GroundEdgeUG GroundEdgeUW ]\n[ start ] [ GroundEdgeRG ] -> [ start ] [ GroundEdgeRG GroundEdgeRW ]\n[ start ] [ GroundEdgeDG ] -> [ start ] [ GroundEdgeDG GroundEdgeDW ]\n[ start ] [ GroundEdgeLG ] -> [ start ] [ GroundEdgeLG GroundEdgeLW ]\n\n[ start ] [ GroundCorner | Button ] -> [ start ] [ | Button ]\n[ start ] [ | Button ] -> [ start ] [ | Button ]\n\n[ start ] [ no Ground ] -> [ start ] [ Water ]\n\n[ Player ] -> [ free Player ]\n\nup [ HeadU edgeU ] [ > Player ] -> [ HeadU edgeU ] [ no free > Player ]\nright [ HeadR edgeR ] [ > Player ] -> [ HeadR edgeR ] [ no free > Player ]\ndown [ HeadD edgeD ] [ > Player ] -> [ HeadD edgeD ] [ no free > Player ]\nleft [ HeadL edgeL ] [ > Player ] -> [ HeadL edgeL ] [ no free > Player ]\n\nup [ > Player no ArrowD ] -> [ free > Player ]\nright [ > Player no ArrowL ] -> [ free > Player ]\ndown [ > Player no ArrowU ] -> [ free > Player ]\nleft [ > Player no ArrowR ] -> [ free > Player ] \n\nlate [ Player Head savepoint ] -> [ Player Head ] checkpoint\n[ > Player Head message3 ] -> [ > Player Head > savepoint ] message \"Let's see what else is around here...\"\n[ Player Head message2 ] -> [ Player Head message3 ] message \"It's a bit too big, but I can use it if I fit my whole body into it.\"\n[ > Player message1 | Head ] -> [ > Player | Head message2 ] again message \"Oh, this skull seems like a fine helmet to wear.\"\n[ > Player no message0 | | Head ] -> [ > Player message0 | message1 | Head ] again message A predator! But no worry, it seems to have been dead for a long time!\n\nup [ Head start | DetachedTail no start ] -> [ Head start | start AttachD DetachedTail ]\nright [ Head start | DetachedTail no start ] -> [ Head start | start AttachL DetachedTail ]\ndown [ Head start | DetachedTail no start ] -> [ Head start | start AttachU DetachedTail ]\nleft [ Head start | DetachedTail no start ] -> [ Head start | start AttachR DetachedTail ]\n\n(Change player moving direction on corners)\n[ up Player HeadU WaterCornerTR no WaterCornerTL ] -> [ left Player HeadU WaterCornerTR ]\n[ up Player HeadU WaterCornerTL no WaterCornerTR ] -> [ right Player HeadU WaterCornerTL ]\n\n[ right Player HeadR WaterCornerTR no WaterCornerBR ] -> [ down Player HeadR WaterCornerTR ]\n[ right Player HeadR WaterCornerBR no WaterCornerTR ] -> [ up Player HeadR WaterCornerBR ]\n\n[ down Player HeadD WaterCornerBR no WaterCornerBL ] -> [ left Player HeadD WaterCornerBR ]\n[ down Player HeadD WaterCornerBL no WaterCornerBR ] -> [ right Player HeadD WaterCornerBL ]\n\n[ left Player HeadL WaterCornerTL no WaterCornerBL ] -> [ down Player HeadL WaterCornerTL ]\n[ left Player HeadL WaterCornerBL no WaterCornerTL ] -> [ up Player HeadL WaterCornerBL ]\n\n(Change sprite direction based on moving direction)\nup [ > Player ] -> [ > PlayerU ]\nright [ > Player ] -> [ > PlayerR ]\ndown [ > Player ] -> [ > PlayerD ]\nleft [ > Player ] -> [ > PlayerL ]\n\n(Stop player when moving toward water or leading the skeleton out of the map)\n[ > Player | no Walkable ] -> [ stationary Player | ]\n[ > Player no free ] -> [ stationary Player ]\n[ free ] -> []\n\n[ DartU ] -> [ up DartU ] again\n[ DartR ] -> [ right DartR ] again\n[ DartD ] -> [ down DartD ] again\n[ DartL ] -> [ left DartL ] again\n\n[ Dart Player ] -> [ Blood clear ] sfx6 again (Shot)\n\nup [ DartU | RayBlocker ] -> [ | Rayblocker ]\nright [ DartR | RayBlocker ] -> [ | Rayblocker ]\ndown [ DartD | RayBlocker ] -> [ | Rayblocker ]\nleft [ DartL | RayBlocker ] -> [ | Rayblocker ]\n\n[ > Player | Wall ] -> [ stationary Player | Wall ]\n[ > Player Head ] -> [ > Player > Head ]\n\nlate [ BlockMarker ] -> [ ]\n\n(Remove the direction and tail markers from the skeleton if the player is pushing, and not pulling, the skelleton)\nup [ > Head | VertebraD ] -> [ > Head clear | clear VertebraD ]\nright [ > Head | VertebraL ] -> [ > Head clear | clear VertebraL ] \ndown [ > Head | VertebraU ] -> [ > Head clear | clear VertebraU ]\nleft [ > Head | VertebraR ] -> [ > Head clear | clear VertebraR ]\n\nstartloop\n\nup [ clear VertebraU | VertebraD ] -> [ clear VertebraU | clear VertebraD ]\nright [ clear VertebraR | VertebraL ] -> [ clear VertebraR | clear VertebraL ]\ndown [ clear VertebraD | VertebraU ] -> [ clear VertebraD | clear VertebraU ]\nleft [ clear VertebraL | VertebraR ] -> [ clear VertebraL | clear VertebraR ]\n\nendloop\n\n[ clear Marker ] -> []\n[ clear break ] -> [] (break is also a marker for the tail)\n\n(Determine in which direction which objects represent an obstacle)\nstartloop\n\nup [ Moveable no break no Marker | Wall ] -> [ Moveable blockedD | Wall ]\nright [ Moveable no break no Marker | Wall ] -> [ Moveable blockedL | Wall ]\ndown [ Moveable no break no Marker | Wall ] -> [ Moveable blockedU | Wall ]\nleft [ Moveable no break no Marker | Wall ] -> [ Moveable blockedR | Wall ]\n\nup [ Moveable no break | Head Marker ] -> [ Moveable blockedD | Head Marker ] \nright [ Moveable no break | Head Marker ] -> [ Moveable blockedL | Head Marker ]\ndown [ Moveable no break | Head Marker ] -> [ Moveable blockedU | Head Marker ]\nleft [ Moveable no break | Head Marker ] -> [ Moveable blockedR | Head Marker]\n\nup [ Moveable no break | blockedD ] -> [ Moveable blockedD | blockedD ]\nright [ Moveable no break | blockedL ] -> [ Moveable blockedL | blockedL ]\ndown [ Moveable no break | blockedU ] -> [ Moveable blockedU | blockedU ]\nleft [ Moveable no break | blockedR ] -> [ Moveable blockedR | blockedR ]\n\nup [ ArrowD | Tail break | Wall ] -> [ ArrowD | Tail break blockedD | Wall ]\nright [ ArrowL | Tail break | Wall ] -> [ ArrowL | Tail break blockedL | Wall ]\ndown [ ArrowU | Tail break | Wall ] -> [ ArrowU | Tail break blockedU | Wall ]\nleft [ ArrowR | Tail break | Wall ] -> [ ArrowR | Tail break blockedR | Wall ] \n\nup [ ArrowD | Tail break | Head Marker ] -> [ ArrowD | Tail break blockedD | Head Marker ]\nright [ ArrowL | Tail break | Head Marker ] -> [ ArrowL | Tail break blockedL | Head Marker ]\ndown [ ArrowU | Tail break | Head Marker ] -> [ ArrowU | Tail break blockedU | Head Marker ]\nleft [ ArrowR | Tail break | Head Marker ] -> [ ArrowR | Tail break blockedR | Head Marker ] \n\nup [ ArrowD | Tail break | blockedD ] -> [ ArrowD | Tail break blockedD | blockedD ]\nright [ ArrowL | Tail break | blockedL ] -> [ ArrowL | Tail break blockedL | blockedL ]\ndown [ ArrowU | Tail break | blockedU ] -> [ ArrowU | Tail break blockedU | blockedU ]\nleft [ ArrowR | Tail break | blockedR ] -> [ ArrowR | Tail break blockedR | blockedR ] \n\nendloop\n\n(If head moves onto a vertebra directly, break the spine at that location)\nup [ > Head | Vertebra Marker no break ] -> [ > Head | break Marker ] sfx3\nright [ > Head | Vertebra Marker no break ] -> [ > Head | break Marker ] sfx3\ndown [ > Head | Vertebra Marker no break ] -> [ > Head | break Marker ] sfx3\nleft [ > Head | Vertebra Marker no break ] -> [ > Head | break Marker ] sfx3\n\n(Determine what object moves onto a moving vertebra indirectly)\nstartloop\n\n[ > Moveable | Moveable no Marker no break ] -> [ > Moveable | > Moveable ]\n\nup [ left VertebraU no blockedR | VertebraD no blockedR ] -> [ left VertebraU | left VertebraD ]\nup [ right VertebraU no blockedL | VertebraD no blockedL] -> [ right VertebraU | right VertebraD ]\n\nright [ up VertebraR no blockedD | VertebraL no blockedD] -> [ up VertebraR | up VertebraL ]\nright [ down VertebraR no blockedU | VertebraL no blockedU] -> [ down VertebraR | down VertebraL ]\n\ndown [ left VertebraD no blockedR | VertebraU no blockedR] -> [ left VertebraD | left VertebraU ]\ndown [ right VertebraD no blockedL | VertebraU no blockedL] -> [ right VertebraD | right VertebraU ]\n\nleft [ up VertebraL no BlockedD | VertebraR no blockedD] -> [ up VertebraL | up VertebraR ]\nleft [ down VertebraL no blockedU | VertebraR no blockedU] -> [ down VertebraL | down VertebraR ]\n\nup [ down VertebraU | VertebraD ] -> [ down VertebraU | down VertebraD ]\nright [ left VertebraR | VertebraL ] -> [ left VertebraR | left VertebraL ]\ndown [ up VertebraD | VertebraU ] -> [ up VertebraD | up VertebraU ]\nleft [ right VertebraL | VertebraR ] -> [ right VertebraL | right VertebraR ]\n\nendloop\n\n(Break the spine indirectly) \nup [ > Moveable no break | Marker no break ] -> [ > Moveable | break Marker ] sfx3\nright [ > Moveable no break | Marker no break ] -> [ > Moveable | break Marker ] sfx3\ndown [ > Moveable no break | Marker no break ] -> [ > Moveable | break Marker ] sfx3\nleft [ > Moveable no break | Marker no break ] -> [ > Moveable | break Marker ] sfx3\n\n(Removing the tail marker so that it doesn't interfere with the breaking process, it's add back later)\n[ Tail break ] -> [ Tail ]\n\n(Finding the broken spot nearest to the head to determine what chunk of the tail/body to cut off)\nstartloop\n\nup [ break VertebraU ArrowD | ] -> [ break VertebraU ArrowD | break ]\nright [ break VertebraR ArrowL | ] -> [ break VertebraR ArrowL | break ]\ndown [ break VertebraD ArrowU | ] -> [ break VertebraD ArrowU | break ]\nleft [ break VertebraL ArrowR | ] -> [ break VertebraL ArrowR | break ]\n\nendloop\n\n[ Tail break ] -> [ Tail break clear ]\n\nstartloop\n\nup [ break clear | break ArrowU ] -> [ | clear break ArrowU ]\nright [ break clear | break ArrowR ] -> [ | clear break ArrowR ]\ndown [ break clear | break ArrowD ] -> [ | clear break ArrowD ]\nleft [ break clear | break ArrowL ] -> [ | clear break ArrowL ]\n\nendloop\n\n[ break ] -> [ break bluedot ]\n[ no break ] -> [ no bluedot ]\n\n(Doing all the work again in case we break off a part that was actually supposed to block us from moving, thus also from breaking anything in the first place)\n[ > Moveable ] -> [ stationary Moveable ] \n[ > Player Head ] -> [ > Player > Head ] \n\nstartloop\n\nup [ Moveable no break | Wall ] -> [ Moveable blockedD | Wall ]\nright [ Moveable no break | Wall ] -> [ Moveable blockedL | Wall ]\ndown [ Moveable no break | Wall ] -> [ Moveable blockedU | Wall ]\nleft [ Moveable no break | Wall ] -> [ Moveable blockedR | Wall ]\n\nup [ Moveable no break | Head Marker ] -> [ Moveable blockedD | Head Marker ] \nright [ Moveable no break | Head Marker ] -> [ Moveable blockedL | Head Marker ]\ndown [ Moveable no break | Head Marker ] -> [ Moveable blockedU | Head Marker ]\nleft [ Moveable no break | Head Marker ] -> [ Moveable blockedR | Head Marker]\n\nup [ Moveable no break | blockedD ] -> [ Moveable blockedD | blockedD ]\nright [ Moveable no break | blockedL ] -> [ Moveable blockedL | blockedL ]\ndown [ Moveable no break | blockedU ] -> [ Moveable blockedU | blockedU ]\nleft [ Moveable no break | blockedR ] -> [ Moveable blockedR | blockedR ]\n\nup [ ArrowD | Tail break | Wall ] -> [ ArrowD | Tail break blockedD | Wall ]\nright [ ArrowL | Tail break | Wall ] -> [ ArrowL | Tail break blockedL | Wall ]\ndown [ ArrowU | Tail break | Wall ] -> [ ArrowU | Tail break blockedU | Wall ]\nleft [ ArrowR | Tail break | Wall ] -> [ ArrowR | Tail break blockedR | Wall ] \n\nup [ ArrowD | Tail break | Head Marker ] -> [ ArrowD | Tail break blockedD | Head Marker ]\nright [ ArrowL | Tail break | Head Marker ] -> [ ArrowL | Tail break blockedL | Head Marker ]\ndown [ ArrowU | Tail break | Head Marker ] -> [ ArrowU | Tail break blockedU | Head Marker ]\nleft [ ArrowR | Tail break | Head Marker ] -> [ ArrowR | Tail break blockedR | Head Marker ] \n\nup [ ArrowD | Tail break | blockedD ] -> [ ArrowD | Tail break blockedD | blockedD ]\nright [ ArrowL | Tail break | blockedL ] -> [ ArrowL | Tail break blockedL | blockedL ]\ndown [ ArrowU | Tail break | blockedU ] -> [ ArrowU | Tail break blockedU | blockedU ]\nleft [ ArrowR | Tail break | blockedR ] -> [ ArrowR | Tail break blockedR | blockedR ] \n\nendloop\n\nstartloop\n\n[ > Moveable | Moveable no Marker no break ] -> [ > Moveable | > Moveable ]\n\nup [ left VertebraU no blockedR | VertebraD no blockedR ] -> [ left VertebraU | left VertebraD ]\nup [ right VertebraU no blockedL | VertebraD no blockedL] -> [ right VertebraU | right VertebraD ]\n\nright [ up VertebraR no blockedD | VertebraL no blockedD] -> [ up VertebraR | up VertebraL ]\nright [ down VertebraR no blockedU | VertebraL no blockedU] -> [ down VertebraR | down VertebraL ]\n\ndown [ left VertebraD no blockedR | VertebraU no blockedR] -> [ left VertebraD | left VertebraU ]\ndown [ right VertebraD no blockedL | VertebraU no blockedL] -> [ right VertebraD | right VertebraU ]\n\nleft [ up VertebraL no BlockedD | VertebraR no blockedD] -> [ up VertebraL | up VertebraR ]\nleft [ down VertebraL no blockedU | VertebraR no blockedU] -> [ down VertebraL | down VertebraR ]\n\nup [ down VertebraU | VertebraD ] -> [ down VertebraU | down VertebraD ]\nright [ left VertebraR | VertebraL ] -> [ left VertebraR | left VertebraL ]\ndown [ up VertebraD | VertebraU ] -> [ up VertebraD | up VertebraU ]\nleft [ right VertebraL | VertebraR ] -> [ right VertebraL | right VertebraR ]\n\nendloop\n\n(Cancel the breaking in case we weren't supposed to break)\n[ > Head ] [ stationary Moveable | break ] -> [ > Head ] [ Moveable | ]\n\n(Find the spot that needs to be separated and do the action)\n[ > Vertebra ] -> [ stationary Vertebra ]\n[ > Attachable ] -> [ stationary Attachable ]\n[ > Box ] -> [ stationary Box ]\n[ Tail break ] -> [ Tail ]\n[ Vertebra break ] -> [ break ]\n\nrandom up [ break | ArrowU ] -> [ break TailU | ArrowU ]\n+right [ break | ArrowR ] -> [ break TailR | ArrowR ]\n+down [ break | ArrowD ] -> [ break TailD | ArrowD ]\n+left [ break | ArrowL ] -> [ break TailL | ArrowL ]\n\nrandom up [ Tail | ArrowU break ] -> [ DetachedTail | break ]\n+right [ Tail | ArrowR break ] -> [ DetachedTail | break ]\n+down [ Tail | ArrowD break ] -> [ DetachedTail | break ]\n+left [ Tail | ArrowL break ] -> [ DetachedTail | break ]\n\nrandom up [ Vertebra | ArrowU break ] -> [ break Vertebra | break ] \n+right [ Vertebra | ArrowR break ] -> [ break Vertebra | break ]\n+down [ Vertebra | ArrowD break ] -> [ break Vertebra | break ]\n+left [ Vertebra | ArrowL break ] -> [ break Vertebra | break ]\n\n[ Vertebra ArrowU break ] -> [ TailD clear ]\n[ Vertebra ArrowR break ] -> [ TailL clear ]\n[ Vertebra ArrowD break ] -> [ TailU clear ]\n[ Vertebra ArrowL break ] -> [ TailR clear ]\n\nup [ break TailU | no ArrowU ] -> [ TailU |]\nright [ break TailR | no ArrowR ] -> [ TailR |]\ndown [ break TailD | no ArrowD ] -> [ TailD |]\nleft [ break TailL | no ArrowL ] -> [ TailL |]\n\n(Clearing markers on the detached rest)\nstartloop\n\nup [ VertebraU clear | VertebraD Marker ] -> [ VertebraU | VertebraD clear ]\nright [ VertebraR clear | VertebraL Marker ] -> [ VertebraR | VertebraL clear ]\ndown [ VertebraD clear | VertebraU Marker ] -> [ VertebraD | VertebraU clear ]\nleft [ VertebraL clear | VertebraR Marker ] -> [ VertebraL | VertebraR clear ]\n\nendloop\n\n[ clear ] -> []\n\n(Marking the new tail)\nup [ TailU | ArrowU ] -> [ break TailU | ArrowU ]\nright [ TailR | ArrowR ] -> [ break TailR | ArrowR ]\ndown [ TailD | ArrowD ] -> [ break TailD | ArrowD ]\nleft [ TailL | ArrowL ] -> [ break TailL | ArrowL ]\n\n[ blockMarker ] -> []\n\n(Determine in which direction which objects represent an obstacle, this time if we are to block movement/break other sections)\nstartloop\n\nup [ Moveable no break no Marker | Wall ] -> [ Moveable blockedD | Wall ]\nright [ Moveable no break no Marker | Wall ] -> [ Moveable blockedL | Wall ]\ndown [ Moveable no break no Marker | Wall ] -> [ Moveable blockedU | Wall ]\nleft [ Moveable no break no Marker | Wall ] -> [ Moveable blockedR | Wall ]\n\nup [ Moveable no break | Head Marker ] -> [ Moveable blockedD | Head Marker ] \nright [ Moveable no break | Head Marker ] -> [ Moveable blockedL | Head Marker ]\ndown [ Moveable no break | Head Marker ] -> [ Moveable blockedU | Head Marker ]\nleft [ Moveable no break | Head Marker ] -> [ Moveable blockedR | Head Marker ]\n\nup [ Moveable no break | blockedD ] -> [ Moveable blockedD | blockedD ]\nright [ Moveable no break | blockedL ] -> [ Moveable blockedL | blockedL ]\ndown [ Moveable no break | blockedU ] -> [ Moveable blockedU | blockedU ]\nleft [ Moveable no break | blockedR ] -> [ Moveable blockedR | blockedR ]\n\nup [ ArrowD | Tail break | Wall ] -> [ ArrowD | Tail break blockedD | Wall ]\nright [ ArrowL | Tail break | Wall ] -> [ ArrowL | Tail break blockedL | Wall ]\ndown [ ArrowU | Tail break | Wall ] -> [ ArrowU | Tail break blockedU | Wall ]\nleft [ ArrowR | Tail break | Wall ] -> [ ArrowR | Tail break blockedR | Wall ] \n\nup [ ArrowD | Tail break | Head Marker ] -> [ ArrowD | Tail break blockedD | Head Marker ]\nright [ ArrowL | Tail break | Head Marker ] -> [ ArrowL | Tail break blockedL | Head Marker ]\ndown [ ArrowU | Tail break | Head Marker ] -> [ ArrowU | Tail break blockedU | Head Marker ]\nleft [ ArrowR | Tail break | Head Marker ] -> [ ArrowR | Tail break blockedR | Head Marker ] \n\nup [ ArrowD | Tail break | blockedD ] -> [ ArrowD | Tail break blockedD | blockedD ]\nright [ ArrowL | Tail break | blockedL ] -> [ ArrowL | Tail break blockedL | blockedL ]\ndown [ ArrowU | Tail break | blockedU ] -> [ ArrowU | Tail break blockedU | blockedU ]\nleft [ ArrowR | Tail break | blockedR ] -> [ ArrowR | Tail break blockedR | blockedR ]\n\nendloop\n\n(Determining which spots are supposed to break and which spots are supposed to be connected)\nstartloop\n\n[ > Moveable | Moveable no Marker no break ] -> [ > Moveable | > Moveable ]\n\n[ up Moveable Marker blockedD ] -> [ stationary Moveable Marker blockedD ]\n[ right Moveable Marker blockedL ] -> [ stationary Moveable Marker blockedL ]\n[ down Moveable Marker blockedU ] -> [ stationary Moveable Marker blockedU ]\n[ left Moveable Marker blockedR ] -> [ stationary Moveable Marker blockedR ]\n\nup [ left VertebraU no blockedR | VertebraD blockedR ] -> [ left VertebraU tailit | VertebraD tailit blockedR ]\nup [ right VertebraU no blockedL | VertebraD blockedL ] -> [ right VertebraU tailit | VertebraD tailit blockedL ]\n\nright [ up VertebraR no blockedD | VertebraL blockedD ] -> [ up VertebraR tailit | VertebraL tailit blockedD ]\nright [ down VertebraR no blockedU | VertebraL blockedU ] -> [ down VertebraR tailit | VertebraL tailit blockedU ]\n\ndown [ left VertebraD no blockedR | VertebraU blockedR ] -> [ left VertebraD tailit | VertebraU tailit blockedR ]\ndown [ right VertebraD no blockedL | VertebraU blockedL ] -> [ right VertebraD tailit | VertebraU tailit blockedL ]\n\nleft [ up VertebraL no blockedD | VertebraR blockedD ] -> [ up VertebraL tailit | VertebraR tailit blockedD ]\nleft [ down VertebraL no blockedU | VertebraR blockedU ] -> [ down VertebraL tailit | VertebraR tailit blockedU ]\n\nup [ left VertebraU no blockedR | VertebraD ] -> [ left VertebraU | left VertebraD ]\nup [ right VertebraU no blockedL | VertebraD ] -> [ right VertebraU | right VertebraD ]\n\nright [ up VertebraR no blockedD | VertebraL ] -> [ up VertebraR | up VertebraL ]\nright [ down VertebraR no blockedU | VertebraL ] -> [ down VertebraR | down VertebraL ]\n\ndown [ left VertebraD no blockedR | VertebraU ] -> [ left VertebraD | left VertebraU ]\ndown [ right VertebraD no blockedL | VertebraU ] -> [ right VertebraD | right VertebraU ]\n\nleft [ up VertebraL no BlockedD | VertebraR ] -> [ up VertebraL | up VertebraR ]\nleft [ down VertebraL no blockedU | VertebraR ] -> [ down VertebraL | down VertebraR ]\n\nup [ down VertebraU | VertebraD ] -> [ down VertebraU | down VertebraD ]\nright [ left VertebraR | VertebraL ] -> [ left VertebraR | left VertebraL ]\ndown [ up VertebraD | VertebraU ] -> [ up VertebraD | up VertebraU ]\nleft [ right VertebraL | VertebraR ] -> [ right VertebraL | right VertebraR ]\n\nup [ > Vertebra tailit | Vertebra tailit no break ] -> [ > Vertebra tailit AttachU | > Vertebra tailit AttachD ]\nright [ > Vertebra tailit | Vertebra tailit no break ] -> [ > Vertebra tailit AttachR | > Vertebra tailit AttachL ]\ndown [ > Vertebra tailit | Vertebra tailit no break ] -> [ > Vertebra tailit AttachD | > Vertebra tailit AttachU ]\nleft [ > Vertebra tailit | Vertebra tailit no break ] -> [ > Vertebra tailit AttachL | > Vertebra tailit AttachR ]\n\nup [ > Vertebra tailit | Attachable no break ] -> [ > Vertebra tailit AttachU | > Attachable AttachD ]\nright [ > Vertebra tailit | Attachable no break ] -> [ > Vertebra tailit AttachR | > Attachable AttachL ]\ndown [ > Vertebra tailit | Attachable no break ] -> [ > Vertebra tailit AttachD | > Attachable AttachU ]\nleft [ > Vertebra tailit | Attachable no break ] -> [ > Vertebra tailit AttachL | > Attachable AttachR ]\n\nup [ > Attachable | Vertebra tailit ] -> [ > Attachable AttachU | > Vertebra tailit AttachD ]\nright [ > Attachable | Vertebra tailit ] -> [ > Attachable AttachR | > Vertebra tailit AttachL ]\ndown [ > Attachable | Vertebra tailit ] -> [ > Attachable AttachD | > Vertebra tailit AttachU ]\nleft [ > Attachable | Vertebra tailit ] -> [ > Attachable AttachL | > Vertebra tailit AttachR ]\n\nendloop\n\n(Cancel movement if pushed against the edge of the map)\nup [ > Moveable edgeU ] [ > Player ] -> cancel\nright [ > Moveable edgeR ] [ > Player ] -> cancel\ndown [ > Moveable edgeD ] [ > Player ] -> cancel\nleft [ > Moveable edgeL ] [ > Player ] -> cancel\n\nup [ > Head edgeU ] [ > Player ] -> cancel\nright [ > Head edgeR ] [ > Player ] -> cancel\ndown [ > Head edgeD ] [ > Player ] -> cancel\nleft [ > Head edgeL ] [ > Player ] -> cancel\n\nup [ TailU AttachU ] -> [ TailU ]\nright [ TailR AttachR ] -> [ TailR ]\ndown [ TailD AttachD ] -> [ TailD ]\nleft [ TailL AttachL ] -> [ TailL ]\n\n()()()()\n\n[ tailit | perpendicular Vertebra tailit | tailit ] -> [ tailit | perpendicular DetachedTail | tailit ] sfx3\n[ perpendicular tailit | stationary Vertebra tailit | perpendicular tailit ] -> [ perpendicular tailit | DetachedTail | perpendicular tailit ] sfx3\n\nup [ moving Vertebra tailit | VertebraD no tailit ] -> [ moving TailU | VertebraD ] sfx3\nright [ moving Vertebra tailit | VertebraL no tailit ] -> [ moving TailR | VertebraL ] sfx3\ndown [ moving Vertebra tailit | VertebraU no tailit ] -> [ moving TailD | VertebraU ] sfx3\nleft [ moving Vertebra tailit | VertebraR no tailit ] -> [ moving TailL | VertebraR ] sfx3\n\nup [ stationary VertebraU tailit | stationary VertebraD tailit ] -> [ TailU | TailD ] sfx3\nright [ stationary VertebraR tailit | stationary VertebraL tailit ] -> [ TailR | TailL ] sfx3\ndown [ stationary VertebraD tailit | stationary VertebraU tailit ] -> [ TailD | TailU ] sfx3\nleft [ stationary VertebraL tailit | stationary VertebraR tailit ] -> [ TailL | TailR ] sfx3\n\nup [ > VertebraU tailit | > VertebraD tailit ] -> [ > TailU | > TailD ] sfx3\nright [ > VertebraR tailit | > VertebraL tailit ] -> [ > TailR | > TailL ] sfx3\ndown [ > VertebraD tailit | > VertebraU tailit ] -> [ > TailD | > TailU ] sfx3\nleft [ > VertebraL tailit | > VertebraR tailit ] -> [ > TailL | > TailR ] sfx3\n\nup [ moving Vertebra tailit | HeadU no tailit ] -> [ moving TailU | HeadU ] sfx3\nright [ moving Vertebra tailit | HeadR no tailit ] -> [ moving TailR | HeadR ] sfx3\ndown [ moving Vertebra tailit | HeadD no tailit ] -> [ moving TailD | HeadD ] sfx3\nleft [ moving Vertebra tailit | HeadL no tailit ] -> [ moving TailL | HeadL ] sfx3\n\nup [ stationary Vertebra tailit | VertebraD no tailit ] -> [ TailU | VertebraD ] sfx3\nright [ stationary Vertebra tailit | VertebraL no tailit ] -> [ TailR | VertebraL ] sfx3\ndown [ stationary Vertebra tailit | VertebraU no tailit ] -> [ TailD | VertebraU ] sfx3\nleft [ stationary Vertebra tailit | VertebraR no tailit ] -> [ TailL | VertebraR ] sfx3\n\n[ stationary Tail tailit ] -> [ DetachedTail ] sfx3\n[ > Tail tailit ] -> [ > DetachedTail ] sfx3\n\nup [ > Attachable | Attachable no break ] -> [ > Attachable AttachU | AttachD > Attachable ]\nright [ > Attachable | Attachable no break ] -> [ > Attachable AttachR | AttachL > Attachable ]\ndown [ > Attachable | Attachable no break ] -> [ > Attachable AttachD | AttachU > Attachable ]\nleft [ > Attachable | Attachable no break ] -> [ > Attachable AttachL | AttachR > Attachable ]\n\nup [ TailU AttachU ] -> [ TailU ]\nright [ TailR AttachR ] -> [ TailR ]\ndown [ TailD AttachD ] -> [ TailD ]\nleft [ TailL AttachL ] -> [ TailL ]\n\n(A clever trick to stop loop formation when two ends of one piece come to gether.)\nstartloop \n\n[ > Head | no pink Moveable ] -> [ > Head | pink Moveable ]\nup [ pink VertebraU | no pink VertebraD ] -> [ pink VertebraU | pink VertebraD ]\nright [ pink VertebraR | no pink VertebraL ] -> [ pink VertebraR | pink VertebraL ]\ndown [ pink VertebraD | no pink VertebraU ] -> [ pink VertebraD | pink VertebraU ]\nleft [ pink VertebraL | no pink VertebraR ] -> [ pink VertebraL | pink VertebraR ]\n\ndown [ > Head ] [ pink | no pink no AttachU Moveable ] -> [ > Head ] [ pink | pink Moveable ]\nleft [ > Head ] [ pink | no pink no AttachR Moveable ] -> [ > Head ] [ pink | pink Moveable ]\nup [ > Head ] [ pink | no pink no AttachD Moveable ] -> [ > Head ] [ pink | pink Moveable ]\nright [ > Head ] [ pink | no pink no AttachL Moveable ] -> [ > Head ] [ pink | pink Moveable ]\n\ndown [ > Head ] [ AttachD | pink AttachU ] -> [ > Head ] [ green AttachD | pink AttachU ]\nleft [ > Head ] [ AttachL | pink AttachR ] -> [ > Head ] [ green AttachL | pink AttachR ]\nup [ > Head ] [ AttachU | pink AttachD ] -> [ > Head ] [ green AttachU | pink AttachD ]\nright [ > Head ] [ AttachR | pink AttachL ] -> [ > Head ] [ green AttachR | pink AttachL ] \n\nup [ green VertebraU | no green no pink VertebraD ] -> [ green VertebraU | green VertebraD ]\nright [ green VertebraR | no green no pink VertebraL ] -> [ green VertebraR | green VertebraL ]\ndown [ green VertebraD | no green no pink VertebraU ] -> [ green VertebraD | green VertebraU ]\nleft [ green VertebraL | no green no pink VertebraR ] -> [ green VertebraL | green VertebraR ]\n\ndown [ > Head ] [ pink AttachD | green AttachU ] -> [ > Head ] [ pink AttachD | pink green AttachU ]\nleft [ > Head ] [ pink AttachL | green AttachR ] -> [ > Head ] [ pink AttachL | pink green AttachR ]\nup [ > Head ] [ pink AttachU | green AttachD ] -> [ > Head ] [ pink AttachU | pink green AttachD ]\nright [ > Head ] [ pink AttachR | green AttachL ] -> [ > Head ] [ pink AttachR | pink green AttachL ]\n\nendloop\n\ndown [ pink green AttachD | pink no green AttachU ] -> [ pink green | pink ]\nleft [ pink green AttachL | pink no green AttachR ] -> [ pink green | pink ]\nup [ pink green AttachU | pink no green AttachD ] -> [ pink green | pink ]\nright [ pink green AttachR | pink no green AttachL ] -> [ pink green | pink ] \n\n[ pink ] -> []\n[ green ] -> []\n\n(Prevent many attachables in a row to all attach together, if one in a row is already attached the attachment between it and the next one should be canceled)\nstartloop\n\nup [ no AttachU | > Tail AttachU | Tail AttachU | ] -> [ | > Tail AttachU | Tail AttachD | no AttachD ]\nright [ no AttachR | > Tail AttachR | Tail AttachR | ] -> [ | > Tail AttachR | Tail AttachL | no AttachL ]\ndown [ no AttachD | > Tail AttachD | Tail AttachD | ] -> [ | > Tail AttachD | Tail AttachU | no AttachU ]\nleft [ no AttachL | > Tail AttachL | Tail AttachL | ] -> [ | > Tail AttachL | Tail AttachR | no AttachR ]\n\nup [ | > DetachedTail AttachU | Tail AttachU | ] -> [ | > DetachedTail AttachU | Tail AttachD | no AttachD ]\nright [ | > DetachedTail AttachR | Tail AttachR | ] -> [ | > DetachedTail AttachR | Tail AttachL | no AttachL ]\ndown [ | > DetachedTail AttachD | Tail AttachD | ] -> [ | > DetachedTail AttachD | Tail AttachU | no AttachU ]\nleft [ | > DetachedTail AttachL | Tail AttachL | ] -> [ | > DetachedTail AttachL | Tail AttachR | no AttachR ]\n\nup [ > Head no Marker | no TailD Tail AttachU | ] -> [ > Head | Tail AttachD | no AttachD ]\nright [ > Head no Marker | no TailL Tail AttachR | ] -> [ > Head | Tail AttachL | no AttachL ]\ndown [ > Head no Marker | no TailU Tail AttachD | ] -> [ > Head | Tail AttachU | no AttachU ]\nleft [ > Head no Marker | no TailR Tail AttachL | ] -> [ > Head | Tail AttachR | no AttachR ]\n\nendloop\n\n(Boxes can't reattach once they are detached)\nup [ Box AttachU | AttachD ] -> [ Box | ]\nright [ Box AttachR | AttachL ] -> [ Box | ]\ndown [ Box AttachD | AttachU ] -> [ Box | ]\nleft [ Box AttachL | AttachR ] -> [ Box | ]\nlate [ Box DetachedTail ] -> [ Box ]\n\n(Attach all separated vertebrae at the start to make up the skeleton)\n[ start ] [ DetachedTail ] -> [ start ] [ start DetachedTail ]\n\nup [ DetachedTail start | DetachedTail start ] -> [ DetachedTail AttachU start | start AttachD DetachedTail ]\nright [ DetachedTail start | DetachedTail start ] -> [ DetachedTail AttachR start | start AttachL DetachedTail ]\ndown [ DetachedTail start | DetachedTail start ] -> [ DetachedTail AttachD start | start AttachU DetachedTail ]\nleft [ DetachedTail start | DetachedTail start ] -> [ DetachedTail AttachL start | start AttachR DetachedTail ]\n\n[ start ] -> []\n\n(Attach head to vertebra / spine)\nup [ > Head no Marker | Attachable no Box ] -> [ > HeadD | AttachD Attachable ] sfx1\nright [ > Head no Marker | Attachable no Box ] -> [ > HeadL | AttachL Attachable ] sfx1\ndown [ > Head no Marker | Attachable no Box ] -> [ > HeadU | AttachU Attachable ] sfx1\nleft [ > Head no Marker | Attachable no Box ] -> [ > HeadR | AttachR Attachable ] sfx1\n\n()\n\n[ > TailU ] -> [ > TailU AttachU ]\n[ > TailR ] -> [ > TailR AttachR ]\n[ > TailD ] -> [ > TailD AttachD ]\n[ > TailL ] -> [ > TailL AttachL ]\n\n(The process of attaching tails and vertebrae)\n\n[ > Attachable AttachU AttachR ] -> [ > BodyUR AttachU AttachR ] sfx1\n[ > Attachable AttachU AttachL ] -> [ > BodyUL AttachU AttachL ] sfx1\n[ > Attachable AttachD AttachR ] -> [ > BodyDR AttachD AttachR ] sfx1\n[ > Attachable AttachD AttachL ] -> [ > BodyDL AttachD AttachL ] sfx1\n[ > Attachable AttachL AttachR ] -> [ > BodyRL AttachL AttachR ] sfx1\n[ > Attachable AttachU AttachD ] -> [ > BodyUD AttachU AttachD ] sfx1\n\n[ > Attachable AttachU ] -> [ > TailU AttachU ] sfx1\n[ > Attachable AttachR ] -> [ > TailR AttachR ] sfx1\n[ > Attachable AttachD ] -> [ > TailD AttachD ] sfx1\n[ > Attachable AttachL ] -> [ > TailL AttachL ] sfx1\n\n[ Attachable AttachU AttachR ] -> [ BodyUR AttachU AttachR ] sfx1\n[ Attachable AttachU AttachL ] -> [ BodyUL AttachU AttachL ] sfx1\n[ Attachable AttachD AttachR ] -> [ BodyDR AttachD AttachR ] sfx1\n[ Attachable AttachD AttachL ] -> [ BodyDL AttachD AttachL ] sfx1\n[ Attachable AttachL AttachR ] -> [ BodyRL AttachL AttachR ] sfx1\n[ Attachable AttachU AttachD ] -> [ BodyUD AttachU AttachD ] sfx1\n\n[ Attachable AttachU ] -> [ TailU AttachU ] sfx1\n[ Attachable AttachR ] -> [ TailR AttachR ] sfx1\n[ Attachable AttachD ] -> [ TailD AttachD ] sfx1\n[ Attachable AttachL ] -> [ TailL AttachL ] sfx1\n\nup [ Attachable AttachU | no Attachable no VertebraD ] -> [ Attachable | ] sfx1\nright [ Attachable AttachR | no Attachable no VertebraL ] -> [ Attachable | ] sfx1\ndown [ Attachable AttachD | no Attachable no VertebraU ] -> [ Attachable | ] sfx1\nleft [ Attachable AttachL | no Attachable no VertebraR ] -> [ Attachable | ] sfx1\n\n()()()()\n\n[ AttachMarker ] -> []\n\n[ up Moveable blockedD ] -> [ stationary Moveable blockedD ]\n[ right Moveable blockedL ] -> [ stationary Moveable blockedL ]\n[ down Moveable blockedU ] -> [ stationary Moveable blockedU ]\n[ left Moveable blockedR ] -> [ stationary Moveable blockedR ]\n\nup [ > Head | no VertebraD ] -> [ > HeadU | ]\nright [ > Head | no VertebraL ] -> [ > HeadR | ]\ndown [ > Head | no VertebraU ] -> [ > HeadD | ]\nleft [ > Head | no VertebraR ] -> [ > HeadL | ]\n\n[ Marker ] -> [ no Marker ]\n\n(Marking the body, each part points in the reverse direction of the next part relative to itself (that means the direction the body is \"moving\" at that point))\nstartloop\n\nup [ Head no Marker | VertebraD ] -> [ Head ArrowD | VertebraD continue ]\nright [ Head no Marker | VertebraL ] -> [ Head ArrowL | VertebraL continue ]\ndown [ Head no Marker | VertebraU ] -> [ Head ArrowU | VertebraU continue ]\nleft [ Head no Marker | VertebraR ] -> [ Head ArrowR | VertebraR continue ]\n\nup [ Vertebra continue | VertebraD no Marker ] -> [ Vertebra ArrowD | VertebraD continue ]\nright [ Vertebra continue | VertebraL no Marker ] -> [ Vertebra ArrowL | VertebraL continue ]\ndown [ Vertebra continue | VertebraU no Marker ] -> [ Vertebra ArrowU | VertebraU continue ]\nleft [ Vertebra continue | VertebraR no Marker ] -> [ Vertebra ArrowR | VertebraR continue ]\n\n[ Tail continue ] -> [ break Tail ]\n\nendloop\n\n[ continue ] -> []\n\n(If the head is pulling the body and not pushing it)\nup [ > Head no ArrowD ] -> [ > Head pull] sfx2\nright [ > Head no ArrowL ] -> [ > Head pull] sfx2\ndown [ > Head no ArrowU ] -> [ > Head pull] sfx2\nleft [ > Head no ArrowR ] -> [ > Head pull] sfx2\n\n(Pull the spine)\nstartloop\n\nup [ stationary Vertebra | moving Moveable ArrowU pull ] -> [ > Vertebra pull | moving Moveable ArrowU pull ]\nright [ stationary Vertebra | moving Moveable ArrowR pull ] -> [ > Vertebra pull | moving Moveable ArrowR pull ]\ndown [ stationary Vertebra | moving Moveable ArrowD pull ] -> [ > Vertebra pull | moving Moveable ArrowD pull ]\nleft [ stationary Vertebra | moving Moveable ArrowL pull ] -> [ > Vertebra pull | moving Moveable ArrowL pull ]\n\nendloop\n\n(New markers for the new positions)\nstartloop\n\n[ up Moveable Marker pull ] -> [ up Moveable ArrowU pull ]\n[ right Moveable Marker pull ] -> [ right Moveable ArrowR pull ]\n[ down Moveable Marker pull ] -> [ down Moveable ArrowD pull ]\n[ left Moveable Marker pull ] -> [ left Moveable ArrowL pull ]\n\nendloop\n\n[ Head pull ] -> [ Head ]\n\n[ > Vertebra Box ] -> [ > Vertebra > Box ]\n[ > Moveable Marker ] -> [ > Moveable > Marker ]\n\n[ > Moveable pull ] -> [ > Moveable > pull ]\n[ > Tail break ] -> [ > Tail > break ]\n\n[ Player stationary Head ] -> [ stationary Player stationary Head ]\n\n[ > Box ground ] -> [ > Box ground ] sfx8\n[ > Box water no Step ] -> [ > Box water ] sfx7\n\n(Creating the new skeleton)\nstartloop\n\nlate up [ Vertebra ArrowU pull | ArrowU no pull ] -> [ BodyUD ArrowU | ArrowU ]\nlate up [ Vertebra ArrowR pull | ArrowU no pull ] -> [ BodyUL ArrowR | ArrowU ]\nlate up [ Vertebra ArrowL pull | ArrowU no pull ] -> [ BodyUR ArrowL | ArrowU ]\n\nlate right [ Vertebra ArrowR pull | ArrowR no pull ] -> [ BodyRL ArrowR | ArrowR ]\nlate right [ Vertebra ArrowU pull | ArrowR no pull ] -> [ BodyDR ArrowU | ArrowR ]\nlate right [ Vertebra ArrowD pull | ArrowR no pull ] -> [ BodyUR ArrowD | ArrowR ]\n\nlate down [ Vertebra ArrowD pull | ArrowD no pull ] -> [ BodyUD ArrowD | ArrowD ]\nlate down [ Vertebra ArrowR pull | ArrowD no pull ] -> [ BodyDL ArrowR | ArrowD ]\nlate down [ Vertebra ArrowL pull | ArrowD no pull ] -> [ BodyDR ArrowL | ArrowD ]\n\nlate left [ Vertebra ArrowL pull | ArrowL no pull ] -> [ BodyRL ArrowL | ArrowL ]\nlate left [ Vertebra ArrowU pull | ArrowL no pull ] -> [ BodyDL ArrowU | ArrowL ]\nlate left [ Vertebra ArrowD pull | ArrowL no pull ] -> [ BodyUL ArrowD | ArrowL ]\n\nlate up [ Tail pull | ArrowU no pull ] -> [ TailU | ArrowU ]\nlate right [ Tail pull | ArrowR no pull ] -> [ TailR | ArrowR ]\nlate down [ Tail pull | ArrowD no pull ] -> [ TailD | ArrowD ]\nlate left [ Tail pull | ArrowL no pull ] -> [ TailL | ArrowL ]\n\nendloop\n\n(Marking attached boxes' bonds to their neighboring attached boxes)\nlate [ BoxBondMarker ] -> []\nlate [ Box VertebraU ] -> [ Box BoxBondU VertebraU ]\nlate [ Box VertebraR ] -> [ Box BoxBondR VertebraR ]\nlate [ Box VertebraD ] -> [ Box BoxBondD VertebraD ]\nlate [ Box VertebraL ] -> [ Box BoxBondL VertebraL ] \n\n(Door/Button action)\nlate [ Head Button ] -> [ Head open Button ]\nlate [ Box Button ] -> [ Box open Button ]\n\nstartloop\n\nlate [ Button open | Trigger ] -> [ Button | Trigger open ]\nlate [ Trigger open | Trigger ] -> [ Trigger open | Trigger open ]\nlate [ Trigger open | DoorVertical ] -> [ Trigger | OpenDoorVertical ]\nlate [ Trigger open | DoorHorizontal ] -> [ Trigger | OpenDoorHorizontal ]\n\nendloop\n\nlate [ Button no Head no Box ] -> [ Button close ]\n\nstartloop\n\nlate [ Button close | Trigger ] -> [ Button close | Trigger close ]\nlate [ Trigger close | Trigger ] -> [ Trigger close | Trigger close ]\nlate [ Trigger close | OpenDoor no close ] -> [ Trigger close | OpenDoor close ]\n\nendloop\n\nlate [ close OpenDoor Box ] -> [ OpenDoor Box ]\n\nlate up [ VertebraU | close OpenDoor ] -> [ tailit VertebraU | close OpenDoor ]\nlate right [ VertebraR | close OpenDoor ] -> [ tailit VertebraR | close OpenDoor ]\nlate down [ VertebraD | close OpenDoor ] -> [ tailit VertebraD | close OpenDoor ]\nlate left [ VertebraL | close OpenDoor ] -> [ tailit VertebraL | close OpenDoor ]\n\nlate up [ HeadD | close OpenDoor ] -> [ no Marker HeadD | close OpenDoor ]\nlate right [ HeadL | close OpenDoor ] -> [ no Marker HeadL | close OpenDoor ]\nlate down [ HeadU | close OpenDoor ] -> [ no Marker HeadU | close OpenDoor ]\nlate left [ HeadR | close OpenDoor ] -> [ no Marker HeadR | close OpenDoor ]\n\nlate [ close OpenDoor Player ] -> [ close OpenDoor no Player Blood ] sfx5 message Crushed!\nlate [ close OpenDoor Moveable ] -> [ close OpenDoor no break no Marker ] sfx3\n\nlate [ close OpenDoorVertical ] -> [ DoorVertical ]\nlate [ close OpenDoorHorizontal ] -> [ DoorHorizontal ] \n\nlate [ open ] -> []\nlate [ close ] -> []\n\n(Breaking the spots that broke by closing doors)\nlate up [ VertebraU | Vertebra tailit ] -> [ VertebraU | TailD ]\nlate right [ VertebraR | Vertebra tailit ] -> [ VertebraR | TailL ]\nlate down [ VertebraD | Vertebra tailit ] -> [ VertebraD | TailU ]\nlate left [ VertebraL | Vertebra tailit ] -> [ VertebraL | TailR ]\n\nlate up [ HeadD | Vertebra tailit ] -> [ HeadD | TailD ]\nlate right [ HeadL | Vertebra tailit ] -> [ HeadL | TailL ]\nlate down [ HeadU | Vertebra tailit ] -> [ HeadU | TailU ]\nlate left [ HeadR | Vertebra tailit ] -> [ HeadR | TailR ]\n\n[tailit ] -> []\n[ break no Tail ] -> [ no break ]\n\nlate [ Tail tailit ] -> [ DetachedTail ]\n\n(Lava action (not used in the game))\nlate [ Head ] -> [ onGround Head ]\nlate [ Vertebra Ground ] -> [ Vertebra onGround Ground ]\nlate up [ onGround | VertebraD ] -> [ onGround | VertebraD onGround ]\nlate right [ onGround | VertebraL ] -> [ onGround | VertebraL onGround ]\nlate down [ onGround | VertebraU ] -> [ onGround | VertebraU onGround ]\nlate left [ onGround | VertebraR ] -> [ onGround | VertebraR onGround ]\n\nlate [ Vertebra Lava no onGround ] -> [ Lava ] sfx4\nlate [ DetachedTail Lava ] -> [ Lava ] sfx4\n\nlate [ onGround ] -> []\n\nlate up [ DartWallU ] -> [ DartWallU rayU ]\nlate right [ DartWallR ] -> [ DartWallR rayR ]\nlate down [ DartWallD ] -> [ DartWallD rayD ]\nlate left [ DartWallL ] -> [ DartWallL rayL ]\n\n(Dart shooting action (not used in the game))\nstartloop\n\nlate up [ rayU | no RayBlocker no Player ] -> [ | rayU ]\nlate right [ rayR | no RayBlocker no Player ] -> [ | rayR ]\nlate down [ rayD | no RayBlocker no Player ] -> [ | rayD ]\nlate left [ rayL | no RayBlocker no Player ] -> [ | rayL ] \n\nlate up [ rayU | rayBlocker no DartWallD ] -> [ | rayBlocker ]\nlate right [ rayR | rayBlocker no DartWallL ] -> [ | rayBlocker ]\nlate down [ rayD | rayBlocker no DartWallU ] -> [ | rayBlocker ]\nlate left [ rayL | rayBlocker no DartWallR ] -> [ | rayBlocker ] \n\nlate up [ rayU | Player ] -> [ | rayreturnD Player ]\nlate right [ rayR | Player ] -> [ | rayreturnL Player ]\nlate down [ rayD | Player ] -> [ | rayreturnU Player ]\nlate left [ rayL | Player ] -> [ | rayreturnR Player ] \n\nlate up [ rayreturnU | no rayBlocker no DartWallD ] -> [ | rayreturnU ]\nlate right [ rayreturnR | no rayBlocker no DartWallL ] -> [ | rayreturnR ]\nlate down [ rayreturnD | no rayBlocker no DartWallU ] -> [ | rayreturnD ]\nlate left [ rayreturnL | no rayBlocker no DartWallR ] -> [ | rayreturnL ] \n\nendloop\n\nlate up [ rayreturnU | DartWall ] -> [ | DartD DartWall ] again\nlate right [ rayreturnR | DartWall ] -> [ DartL | DartWall ] again\nlate down [ rayreturnD | DartWall ] -> [ DartU | DartWall ] again\nlate left [ rayreturnL | DartWall ] -> [ DartR | DartWall ] again\n\n==============\nWINCONDITIONS\n==============\n\nall Player on Goal\nno Blood\n\n======= \nLEVELS\n=======\n\n(4 - 3)\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwww..wwwwwww\nwwwwwwwww...gwwwwww\nwwwwww.....wggwwww#\nwwwwgg..#wwwgwww###\nwwwwgwwwwm#wggg:tto\ng???>gww#wwwwww_w/#\nwwwww...wwwwx___w_#\nwwwww..b.wwxwwwww_w\nwwwwww...ww_______w\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\nw۴wwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\n\n",[3,2,2,1,0,0,1,1,3,0,0,3,3,3,0,3,3,3,0,0,1,2,2,1],"background edgel edgeu water:0,background edgel water:1,1,1,1,1,1,1,1,background edgel step water:2,1,1,1,1,1,1,background edged edgel water:3,background edgeu water:4,background water:5,\n5,5,5,5,5,5,5,background step water:6,5,5,5,5,5,background n4 water:7,background edged water:8,4,5,5,5,\n5,5,5,5,5,6,5,5,5,5,5,5,8,4,5,5,5,5,5,\n5,5,5,6,5,5,5,5,5,5,8,4,5,5,5,5,5,5,6,\n6,6,background groundedgerw water:9,9,5,5,5,5,8,4,5,5,5,5,5,9,background groundedgerw step water:10,5,background groundedgedw step water:11,\nbackground ground groundedgelg groundedgelw groundedgeug groundedgeuw:12,background ground groundedgedg groundedgedw groundedgelg groundedgelw watercornerbl:13,background groundcornertrg groundcornertrw groundedgerw groundedgeuw water:14,5,5,5,8,4,5,5,5,5,background groundedgedw water:15,background ground groundedgelg groundedgelw groundedgeug groundedgeuw watercornertl:16,background ground groundedgedg groundedgedw groundedgelg groundedgelw:17,background groundedgeuw water:18,15,background ground groundedgeug groundedgeuw:19,background ground:20,\n13,18,5,5,8,4,5,5,5,5,15,19,background ground groundedgedg groundedgedw:21,18,15,background ground groundedgerg groundedgerw groundedgeug groundedgeuw watercornertr:22,background box ground:23,21,18,\n5,5,8,4,5,5,5,5,background groundcornerbrg groundcornerbrw groundedgedw groundedgerw water:24,19,background dirtwall ground groundedgedg groundedgedw groundedgerg groundedgerw watercornerbr:25,18,background dirtwall water watercornertl watercornertr:26,background groundcornerblg groundcornerblw groundedgedw groundedgelw water:27,22,background ground groundedgedg groundedgedw groundedgerg groundedgerw watercornerbr:28,18,5,5,\n8,4,5,5,5,24,arrowl background ground groundedgelg groundedgelw groundedgeug groundedgeuw headl playerl watercornertl:29,21,background groundedgelw groundedgeuw water:30,background box water:31,5,5,background groundedgelw water:32,32,5,5,5,8,4,\n5,5,15,16,arrowu background bodydl ground:33,arrowu background bodyud ground groundedgedg groundedgedw groundedgerg groundedgerw watercornerbr:34,background break groundedgeuw tailu water:35,26,5,5,9,5,5,5,5,8,4,5,5,\n15,22,background ground groundedgedg groundedgedw groundedgerg groundedgerw:36,background groundcornertlg groundcornertlw groundedgelw groundedgeuw water:37,5,5,5,background groundedgedw groundedgerw water:38,background button ground groundedgedg groundedgedw groundedgelg groundedgelw groundedgerg groundedgerw groundedgeug groundedgeuw watercornerbl watercornerbr watercornertl watercornertr:39,background groundedgeuw trigger water:40,5,5,5,8,4,5,5,5,32,\nbackground groundedgelw step water:41,6,6,6,15,39,30,background trigger water:42,5,5,5,8,4,5,5,5,5,5,6,\n5,6,5,background groundedgelw trigger water:43,5,42,5,5,5,8,4,5,5,5,5,5,5,5,6,\n5,42,5,42,5,5,5,8,4,5,5,5,5,5,5,5,background groundedgerw step trigger water:44,42,42,\n5,42,5,5,5,8,4,5,5,5,5,5,5,26,background doorvertical ground groundedgedg groundedgedw groundedgelg groundedgelw:45,background groundedgerw groundedgeuw water:46,5,5,42,\n5,5,5,8,4,5,5,5,5,5,5,26,background doorvertical ground:47,background dirtwall ground groundedgedg groundedgedw groundedgelg groundedgelw trigger watercornerbl:48,background groundedgerw groundedgeuw trigger water:49,42,42,5,5,\n5,8,background edger edgeu water:50,background edger water:51,51,51,51,51,background dirtwall edger water watercornertl watercornertr:52,background dirtwall edger ground:53,background edger goal ground:54,53,background dirtwall edger ground groundedgedg groundedgedw groundedgelg groundedgelw watercornerbl:55,background edger groundedgeuw water:56,51,51,51,51,background edged edger water:57,\n",0,"1627779869171.2134"] + ["title Vertebrae\nauthor Ali Nikkhah\n\nnoaction\nbackground_color #000000\ntext_color #a98c47\nyoutube No3kOKsgIXE (dpndP-cBE60)\nrun_rules_on_level_start\nagain_interval 0.05\nkey_repeat_interval 0.12\n\n========\nOBJECTS\n========\n\nBackground\nWhite\n.....\n.....\n..0..\n.....\n.....\n\nGround \n#ac9071\n00000\n00000\n00000\n00000\n00000\n\nGroundCornerTRG\n#a99b8c #ac9071\n....0\n.....\n.....\n.....\n.....\n\nGroundCornerTRW\n#a99b8c #246894\n.11..\n...1.\n....1\n....1\n.....\n\nGroundCornerTLG\n#a99b8c #ac9071\n0....\n.....\n.....\n.....\n.....\n\nGroundCornerTLW\n#a99b8c #246894\n..11.\n.1...\n1....\n1....\n.....\n\nGroundCornerBRG\n#a99b8c #ac9071\n.....\n.....\n.....\n.....\n....0\n\nGroundCornerBRW\n#a99b8c #246894\n.....\n....1\n....1\n...1.\n.11..\n\nGroundCornerBLG\n#a99b8c #ac9071\n.....\n.....\n.....\n.....\n0....\n\nGroundCornerBLW\n#a99b8c #246894\n.....\n1....\n1....\n.1...\n..11.\n\nGroundEdgeUG\n#a99b8c #246894\n00000\n.....\n.....\n.....\n.....\n\nGroundEdgeUW\n#a99b8c #246894\n11111\n.....\n.....\n.....\n.....\n\nGroundEdgeRG\n#a99b8c #246894\n....0\n....0\n....0\n....0\n....0\n\nGroundEdgeRW\n#a99b8c #246894\n....1\n....1\n....1\n....1\n....1\n\nGroundEdgeDG\n#a99b8c #246894\n.....\n.....\n.....\n.....\n00000\n\nGroundEdgeDW\n#a99b8c #246894\n.....\n.....\n.....\n.....\n11111\n\nGroundEdgeLG\n#a99b8c #246894\n0....\n0....\n0....\n0....\n0....\n\nGroundEdgeLW\n#a99b8c #246894\n1....\n1....\n1....\n1....\n1....\n\nDirtWall \n#392800 #5a4000 #5e412b #433021 #4f3622 #744d2e #8b5a33\n.655.\n65122\n15243\n21443\n24433\n\nDoorVertical\n#d89005\n.000.\n.000.\n.000.\n.000.\n.000.\n\nOpenDoorVertical\n#d68708\n.0.0.\n.....\n.....\n.....\n.0.0.\n\nDoorHorizontal\n#d89005\n.....\n00000\n00000\n00000\n.....\n\nOpenDoorHorizontal\n#d68708\n.....\n0...0\n.....\n0...0\n.....\n\nGoal\nDarkBlue\n.....\n.....\n.....\n.....\n.....\n\nTrigger\nDarkBlue\n.....\n.....\n.....\n.....\n.....\n\nopen\ntransparent\n\nclose\ntransparent\n\nWater\n#1780c5 LightBlue\n10000\n00010\n01000\n00001\n00000\n\nWaterCornerTR\n#246894 #a99b8c\n.1110\n...11\n....1\n....1\n.....\n\nWaterCornerTL\n#246894 #a99b8c\n0111.\n11...\n1....\n1....\n.....\n\nWaterCornerBR\n#246894 #a99b8c\n.....\n....1\n....1\n...11\n.1110\n\nWaterCornerBL\n#246894 #a99b8c\n.....\n1....\n1....\n11...\n0111.\n\nLava\n#dd4e00 #ea5d00\n10000\n00010\n01000\n00001\n00000\n\nblood\nDarkred\n.000.\n00000\n00000\n00000\n.000.\n\nPlayerL\nBlack Brown Pink\n.....\n...2.\n2101.\n.1111\n11111\n\nPlayerU\nBlack Brown Pink\n..2..\n.010.\n21112\n11111\n.111.\n\nPlayerR\nBlack Brown Pink\n.....\n.2...\n.1012\n1111.\n11111\n\nPlayerD\nBlack Brown Pink\n.111.\n11111\n21112\n.010.\n..2..\n\nHeadL\nWhite\n.000.\n0.000\n...00\n..00.\n000..\n\nHeadD\nWhite\n.000.\n00000\n0.0.0\n0.0.0\n.000.\n\nHeadU\nWhite\n.000.\n0.0.0\n0.0.0\n00000\n.000.\n\nHeadR\nWhite\n.000.\n000.0\n00...\n.00..\n..000\n\nBodyRL\nWhite LightGrey\n.....\n..1..\n00000\n..1..\n.....\n\nBodyUD\nWhite LightGrey\n..0..\n..0..\n.101.\n..0..\n..0..\n\nBodyDR\nWhite LightGrey\n.....\n.1...\n..000\n..01.\n..0..\n\nBodyDL\nWhite LightGrey\n.....\n...1.\n000..\n.10..\n..0..\n\nBodyUR\nWhite LightGrey\n..0..\n..01.\n..000\n.1...\n.....\n\nBodyUL\nWhite LightGrey\n..0..\n.10..\n000..\n...1.\n.....\n\nTailL\nWhite LightGrey\n.....\n..1..\n0000.\n..1..\n.....\n\nTailR\nWhite LightGrey\n.....\n..1..\n.0000\n..1..\n.....\n\nTailU\nWhite LightGrey\n..0..\n..0..\n.101.\n..0..\n.....\n\nTailD\nWhite LightGrey\n.....\n..0..\n.101.\n..0..\n..0..\n\nDetachedTail\nWhite LightGray\n.....\n..0..\n.101.\n..0..\n.....\n\nBox\n#694632 #7c543d #563428\n.....\n.212.\n.101.\n.212.\n.....\n\nBoxBondU\n#766846\n..0..\n.....\n.....\n.....\n.....\n\nBoxBondR\n#766846\n.....\n.....\n....0\n.....\n.....\n\nBoxBondD\n#766846\n.....\n.....\n.....\n.....\n..0..\n\nBoxBondL\n#766846\n.....\n.....\n0....\n.....\n.....\n\nStep\n#9f835d #927051\n.111.\n10001\n10001\n10001\n.111.\n\nButton\n#7157df #360d8b Gray\n00011\n02221\n12221\n12220\n11000\n\nDartWallU\nBlack DarkGray Gray\n.....\n.112.\n12111\n11212\n11112\n\nDartWallL\nBlack DarkGray Gray\n.....\n.111.\n12112\n10112\n10111\n\nDartWallR\nBlack DarkGray Gray\n.....\n.111.\n21121\n21101\n11101\n\nDartWallD\nBlack DarkGray Gray\n.....\n.112.\n12111\n11012\n11012\n\nDartU\nLightGray\n.....\n..0..\n..0..\n.....\n.....\n\nDartR\nLightGray\n.....\n.....\n..00.\n.....\n.....\n\nDartD\nLightGray\n.....\n.....\n..0..\n..0..\n.....\n\nDartL\nLightGray\n.....\n.....\n.00..\n.....\n.....\n\nN1\nBlack\n..0..\n.00..\n..0..\n..0..\n.000.\n\nN2\nBlack\n000..\n...0.\n.00..\n0....\n0000.\n\nN3\nBlack\n000..\n...0.\n.00..\n...0.\n000..\n\nN4\nBlack\n...0.\n..00.\n.0.0.\n00000\n...0.\n\nN5\nBlack\n0000.\n0....\n000..\n...0.\n000..\n\nN6\nBlack\n.00..\n0....\n000..\n0..0.\n.00..\n\nN7\nBlack\n0000.\n...0.\n..0..\n.0...\n0....\n\nN8\nBlack\n.00..\n0..0.\n.00..\n0..0.\n.00..\n\nN9\nBlack\n.00..\n0..0.\n.000.\n...0.\n.00..\n\nN0\nBlack\n.00..\n0..0.\n0..0.\n0..0.\n.00..\n\nAttachR\ntransparent\n\nAttachL\ntransparent\n\nAttachD\ntransparent\n\nAttachU\ntransparent\n\nArrowU\ntransparent\n\nArrowL\ntransparent\n\nArrowR\ntransparent\n\nArrowD\ntransparent\n\nbreak\ntransparent\n\nclear\ntransparent\n\ncontinue\ntransparent\n\npull\ntransparent\n\nonGround\ntransparent\n\nblockedU\ntransparent\n\nblockedR\ntransparent\n\nblockedD\ntransparent\n\nblockedL\ntransparent\n\nstopU\ntransparent\n\nstopR\ntransparent\n\nstopD\ntransparent\n\nstopL\ntransparent\n\ntailit\ntransparent\n\npink\ntransparent\n\ngreen\ntransparent\n\nstart\ntransparent\n\nrayU\ntransparent\n\nrayR\ntransparent\n\nrayD\ntransparent\n\nrayL\ntransparent\n\nrayreturnU\ntransparent\n\nrayreturnR\ntransparent\n\nrayreturnD\ntransparent\n\nrayreturnL\ntransparent\n\n\nmessage0\ntransparent\n\nmessage1\ntransparent\n\nmessage2\ntransparent\n\nmessage3\ntransparent\n\nsavepoint\ntransparent\n\n\nedgeU\ntransparent\n\nedgeR\ntransparent\n\nedgeD\ntransparent\n\nedgeL\ntransparent\n\nfree\ntransparent\n\nredDot\nRed\n.....\n.....\n..0..\n.....\n.....\n\nblueDot\nblue\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n! = HeadL and ground\n& = HeadR and Water\n¤ = DetachedTail and Water\n\nw = water\nl = Lava\n. = ground\n# = DirtWall and ground\np = PlayerR and start and ground\n> = PlayerR and HeadR and start and ground\n^ = PlayerU and HeadU and start and ground\nv = PlayerD and HeadD and start and ground\n< = PlayerL and HeadL and start and ground\nd = DetachedTail and ground\n? = DetachedTail and Step and Water\n\" = DetachedTail and Box and Button and ground\nj = DetachedTail and Box and ground\ni = DetachedTail and Box and Step and Water\nb = box and ground\nn = box and button and ground\nm = box and water\nu = box and Step and water\nx = button and ground\ng = Step and Water\n$ = box and button and OpenDoorHorizontal and ground\n\nt = DoorVertical and ground\nz = DoorHorizontal and ground\n1 = DoorVertical and Step and Water\n2 = DoorHorizontal and Step and Water\n\no = Goal and ground\n0 = Goal and Step and Water\n- = Trigger and ground\n_ = trigger and water\n/ = trigger and DirtWall and ground\n: = Trigger and Step and Water\n\nA = DartWallU and ground\nY = DartWallR and ground\nK = DartWallD and ground\n7 = DartWallL and ground\n\n۱ = N1 and Water\n۲ = N2 and Water\n۳ = N3 and Water\n۴ = N4 and Water\n۵ = N5 and Water\n۶ = N6 and Water\n۷ = N7 and Water\n۸ = N8 and Water\n۹ = N9 and Water\n۰ = N0 and Water\n\nMarker = ArrowL or ArrowR or ArrowU or ArrowD\nAttachMarker = AttachU or AttachR or AttachD or AttachL\nBlockMarker = blockedU or blockedR or blockedD or blockedL\n\nBoxBondMarker = BoxBondU or BoxBondR or BoxBondD or BoxBondL\n\nPlayer = PlayerL or PlayerR or PlayerU or PlayerD\nTail = TailD or TailU or TailL or TailR\nHead = HeadL or HeadD or HeadR or HeadU\nVertebra = BodyRL or BodyUD or BodyUL or BodyDL or BodyUR or BodyDR or Tail\nMoveable = Vertebra or Head or DetachedTail or Box\n\nVertebraU = TailU or BodyUL or BodyUR or BodyUD\nVertebraR = TailR or BodyUR or BodyDR or BodyRL\nVertebraD = TailD or BodyDL or BodyDR or BodyUD\nVertebraL = TailL or BodyUL or BodyDL or BodyRL\n\nAttachable = Tail or DetachedTail\n\nDoor = DoorHorizontal or DoorVertical\nOpenDoor = OpenDoorHorizontal or OpenDoorVertical\n\nDartWall = DartWallU or DartWallR or DartWallD or DartWallL\nDart = DartU or DartR or DartD or DartL\n\nWall = DirtWall or Door or DartWall\nRayBlocker = Wall or Box or Vertebra or Dart or DetachedTail\nRay = rayU or rayR or rayD or rayL or rayreturnU or rayreturnR or rayreturnD or rayreturnL\n\nMapBackground = Water or Ground\nWalkable = Step or Ground\nNoGround = Button or DirtWall or Step\n\nWaterCorner = WaterCornerTR or WaterCornerTL or WaterCornerBR or WaterCornerBL\nGroundCorner = GroundCornerTRG or GroundCornerTLG or GroundCornerBRG or GroundCornerBLG or GroundCornerTRW or GroundCornerTLW or GroundCornerBRW or GroundCornerBLW\nGroundCornerU = GroundCornerTRG or GroundCornerTLG\nGroundCornerR = GroundCornerTRG or GroundCornerBRG\nGroundCornerD = GroundCornerBRG or GroundCornerBLG\nGroundCornerL = GroundCornerBLG or GroundCornerBRG\n\nedge = edgeU or edgeR or edgeD or edgeL\n=======\nSOUNDS\n=======\n\nUndo 33805504\n\nTitleScreen 92220309\n\nsfx1 98765764\nsfx2 74917107 (30004904)\nsfx3 3004904\nsfx4 32969702\nsfx5 75918304\nsfx6 88800304\nsfx7 1729107\nsfx8 30678307\n\n================\nCOLLISIONLAYERS\n================\n\nAttachU\nAttachD\nAttachL\nAttachR\n\nblockedU\nblockedR\nblockedD\nblockedL\n\nstopU\nstopR\nstopD\nstopL\n\nArrowU\nArrowR\nArrowD\nArrowL\n\nbreak\nclear\ncontinue\npull\nstart\nonground\n\ntailit\n\npink \ngreen\n\nBackground\nWater\nLava\nGround\n\nGroundCornerTRW\nGroundCornerTLW\nGroundCornerBRW\nGroundCornerBLW\nGroundEdgeUW\nGroundEdgeRW\nGroundEdgeDW\nGroundEdgeLW\n\nGroundCornerTRG\nGroundCornerTLG\nGroundCornerBRG\nGroundCornerBLG\nGroundEdgeUG\nGroundEdgeRG\nGroundEdgeDG\nGroundEdgeLG\n\nWaterCornerTR\nWaterCornerTL\nWaterCornerBR\nWaterCornerBL\n\nN0,N1,N2,N3,N4,N5,N6,N7,N8,N9\n\nStep\ngoal\nButton\nBlood\nOpenDoor\nPlayer\nWall, BodyRL, BodyUD, BodyUL, BodyDL, BodyUR, BodyDR, Head, DetachedTail \nTail\nBox\n\nBoxBondU\nBoxBondR\nBoxBondD\nBoxBondL\n\nDart\n\ntrigger\nopen\nclose\n\nray\n\nredDot\nbluedot\n\nmessage0\nmessage1\nmessage2\nmessage3\nsavepoint\n\nedgeU\nedgeR\nedgeD\nedgeL\n\nfree\n\n======\nRULES \n======\n\nup [ start ] [ Wall | Water no Wall ] -> [ start ] [ Wall WaterCornerTR WaterCornerTL | Water no GroundCornerBRG GroundCornerBLG ]\n\n[ start ] [ ] -> [ start ] [ edgeU edgeR edgeD edgeL ]\n\nup [ start ] [ edgeU | MapBackground ] -> [ start ] [ | MapBackground ]\nright [ start ] [ edgeR | MapBackground ] -> [ start ] [ | MapBackground ]\ndown [ start ] [ edgeD | MapBackground ] -> [ start ] [ | MapBackground ]\nleft [ start ] [ edgeL | MapBackground ] -> [ start ] [ | MapBackground ]\n\n[ start ] [ Step | Ground no NoGround | Step ] -> [ start ] [ Step | Step Water | Step ]\n\nup [ start ] [ DirtWall | Water no clear ] -> [ start ] [ Dirtwall no Ground | Water clear ]\n[ Water clear ] -> [ Water ]\n\n[ start ] [ Ground ] -> [ start ] [ Ground WaterCornerTR WaterCornerTL WaterCornerBR WaterCornerBL ]\n[ start ] [ Water ] -> [ start ] [ Water GroundCornerTRG GroundCornerTLG GroundCornerBRG GroundCornerBLG ]\n\nup [ start ] [ Ground | Ground ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerTR | Ground no WaterCornerBL no WaterCornerBR ]\nright [ start ] [ Ground | Ground ] -> [ start ] [ Ground no WaterCornerTR no WaterCornerBR | Ground no WaterCornerBL no WaterCornerTL ]\n\nup [ start ] [ Water | Water ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerTRG | Water no GroundCornerBLG no GroundCornerBRG ]\nright [ start ] [ Water | Water ] -> [ start ] [ Water no GroundCornerTRG no GroundCornerBRG | Water no GroundCornerBLG no GroundCornerTLG ]\n\nup [ start ] [ Water | DirtWall ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerTRG | DirtWall ]\nright [ start ] [ Water | DirtWall ] -> [ start ] [ Water no GroundCornerTRG no GroundCornerBRG | DirtWall ]\ndown [ start ] [ Water | DirtWall ] -> [ start ] [ Water no GroundCornerBLG no GroundCornerBRG | DirtWall ]\nleft [ start ] [ Water | DirtWall ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerBLG | DirtWall ]\n\nup [ start ] [ Ground | NoGround ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerTR | NoGround ]\nright [ start ] [ Ground | NoGround ] -> [ start ] [ Ground no WaterCornerTR no WaterCornerBR | NoGround ]\ndown [ start ] [ Ground | NoGround ] -> [ start ] [ Ground no WaterCornerBL no WaterCornerBR | NoGround ]\nleft [ start ] [ Ground | NoGround ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerBL | NoGround ]\n\n[ start ] [ Step WaterCorner ] -> [ start ] [ Step ]\n\n[ start ] [ Ground edgeD ] -> [ start ] [ Ground no WaterCornerBL no WaterCornerBR edgeD ]\n[ start ] [ Ground edgeL ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerBL edgeL ]\n[ start ] [ Ground edgeU ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerTR edgeU ]\n[ start ] [ Ground edgeR ] -> [ start ] [ Ground no WaterCornerTR no WaterCornerBR edgeR ]\n\n[ start ] [ Water edgeD ] -> [ start ] [ Water no GroundCornerBLG no GroundCornerBRG edgeD ]\n[ start ] [ Water edgeL ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerBLG edgeL ]\n[ start ] [ Water edgeU ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerTRG edgeU ]\n[ start ] [ Water edgeR ] -> [ start ] [ Water no GroundCornerTRG no GroundCornerBRG edgeR ]\n\nup [ start ] [ Water | Ground ] -> [ start ] [ Water GroundEdgeUW | Ground GroundEdgeDG ]\nright [ start ] [ Water | Ground ] -> [ start ] [ Water GroundEdgeRW | Ground GroundEdgeLG ]\ndown [ start ] [ Water | Ground ] -> [ start ] [ Water GroundEdgeDW | Ground GroundEdgeUG ]\nleft [ start ] [ Water | Ground ] -> [ start ] [ Water GroundEdgeLW | Ground GroundEdgeRG ]\n\n[ start ] [ GroundCornerTRG ] -> [ start ] [ GroundCornerTRG GroundCornerTRW ]\n[ start ] [ GroundCornerTLG ] -> [ start ] [ GroundCornerTLG GroundCornerTLW ]\n[ start ] [ GroundCornerBRG ] -> [ start ] [ GroundCornerBRG GroundCornerBRW ]\n[ start ] [ GroundCornerBLG ] -> [ start ] [ GroundCornerBLG GroundCornerBLW ]\n\n[ start ] [ GroundEdgeUG ] -> [ start ] [ GroundEdgeUG GroundEdgeUW ]\n[ start ] [ GroundEdgeRG ] -> [ start ] [ GroundEdgeRG GroundEdgeRW ]\n[ start ] [ GroundEdgeDG ] -> [ start ] [ GroundEdgeDG GroundEdgeDW ]\n[ start ] [ GroundEdgeLG ] -> [ start ] [ GroundEdgeLG GroundEdgeLW ]\n\n[ start ] [ GroundCorner | Button ] -> [ start ] [ | Button ]\n[ start ] [ | Button ] -> [ start ] [ | Button ]\n\n[ start ] [ no Ground ] -> [ start ] [ Water ]\n\n[ Player ] -> [ free Player ]\n\nup [ HeadU edgeU ] [ > Player ] -> [ HeadU edgeU ] [ no free > Player ]\nright [ HeadR edgeR ] [ > Player ] -> [ HeadR edgeR ] [ no free > Player ]\ndown [ HeadD edgeD ] [ > Player ] -> [ HeadD edgeD ] [ no free > Player ]\nleft [ HeadL edgeL ] [ > Player ] -> [ HeadL edgeL ] [ no free > Player ]\n\nup [ > Player no ArrowD ] -> [ free > Player ]\nright [ > Player no ArrowL ] -> [ free > Player ]\ndown [ > Player no ArrowU ] -> [ free > Player ]\nleft [ > Player no ArrowR ] -> [ free > Player ] \n\nlate [ Player Head savepoint ] -> [ Player Head ] checkpoint\n[ > Player Head message3 ] -> [ > Player Head > savepoint ] message \"Let's see what else is around here...\"\n[ Player Head message2 ] -> [ Player Head message3 ] message \"It's a bit too big, but I can use it if I fit my whole body into it.\"\n[ > Player message1 | Head ] -> [ > Player | Head message2 ] again message \"Oh, this skull seems like a fine helmet to wear.\"\n[ > Player no message0 | | Head ] -> [ > Player message0 | message1 | Head ] again message A predator! But no worry, it seems to have been dead for a long time!\n\nup [ Head start | DetachedTail no start ] -> [ Head start | start AttachD DetachedTail ]\nright [ Head start | DetachedTail no start ] -> [ Head start | start AttachL DetachedTail ]\ndown [ Head start | DetachedTail no start ] -> [ Head start | start AttachU DetachedTail ]\nleft [ Head start | DetachedTail no start ] -> [ Head start | start AttachR DetachedTail ]\n\n(Change player moving direction on corners)\n[ up Player HeadU WaterCornerTR no WaterCornerTL ] -> [ left Player HeadU WaterCornerTR ]\n[ up Player HeadU WaterCornerTL no WaterCornerTR ] -> [ right Player HeadU WaterCornerTL ]\n\n[ right Player HeadR WaterCornerTR no WaterCornerBR ] -> [ down Player HeadR WaterCornerTR ]\n[ right Player HeadR WaterCornerBR no WaterCornerTR ] -> [ up Player HeadR WaterCornerBR ]\n\n[ down Player HeadD WaterCornerBR no WaterCornerBL ] -> [ left Player HeadD WaterCornerBR ]\n[ down Player HeadD WaterCornerBL no WaterCornerBR ] -> [ right Player HeadD WaterCornerBL ]\n\n[ left Player HeadL WaterCornerTL no WaterCornerBL ] -> [ down Player HeadL WaterCornerTL ]\n[ left Player HeadL WaterCornerBL no WaterCornerTL ] -> [ up Player HeadL WaterCornerBL ]\n\n(Change sprite direction based on moving direction)\nup [ > Player ] -> [ > PlayerU ]\nright [ > Player ] -> [ > PlayerR ]\ndown [ > Player ] -> [ > PlayerD ]\nleft [ > Player ] -> [ > PlayerL ]\n\n(Stop player when moving toward water or leading the skeleton out of the map)\n[ > Player | no Walkable ] -> [ stationary Player | ]\n[ > Player no free ] -> [ stationary Player ]\n[ free ] -> []\n\n[ DartU ] -> [ up DartU ] again\n[ DartR ] -> [ right DartR ] again\n[ DartD ] -> [ down DartD ] again\n[ DartL ] -> [ left DartL ] again\n\n[ Dart Player ] -> [ Blood clear ] sfx6 again (Shot)\n\nup [ DartU | RayBlocker ] -> [ | Rayblocker ]\nright [ DartR | RayBlocker ] -> [ | Rayblocker ]\ndown [ DartD | RayBlocker ] -> [ | Rayblocker ]\nleft [ DartL | RayBlocker ] -> [ | Rayblocker ]\n\n[ > Player | Wall ] -> [ stationary Player | Wall ]\n[ > Player Head ] -> [ > Player > Head ]\n\nlate [ BlockMarker ] -> [ ]\n\n(Remove the direction and tail markers from the skeleton if the player is pushing, and not pulling, the skelleton)\nup [ > Head | VertebraD ] -> [ > Head clear | clear VertebraD ]\nright [ > Head | VertebraL ] -> [ > Head clear | clear VertebraL ] \ndown [ > Head | VertebraU ] -> [ > Head clear | clear VertebraU ]\nleft [ > Head | VertebraR ] -> [ > Head clear | clear VertebraR ]\n\nstartloop\n\nup [ clear VertebraU | VertebraD ] -> [ clear VertebraU | clear VertebraD ]\nright [ clear VertebraR | VertebraL ] -> [ clear VertebraR | clear VertebraL ]\ndown [ clear VertebraD | VertebraU ] -> [ clear VertebraD | clear VertebraU ]\nleft [ clear VertebraL | VertebraR ] -> [ clear VertebraL | clear VertebraR ]\n\nendloop\n\n[ clear Marker ] -> []\n[ clear break ] -> [] (break is also a marker for the tail)\n\n(Determine in which direction which objects represent an obstacle)\nstartloop\n\nup [ Moveable no break no Marker | Wall ] -> [ Moveable blockedD | Wall ]\nright [ Moveable no break no Marker | Wall ] -> [ Moveable blockedL | Wall ]\ndown [ Moveable no break no Marker | Wall ] -> [ Moveable blockedU | Wall ]\nleft [ Moveable no break no Marker | Wall ] -> [ Moveable blockedR | Wall ]\n\nup [ Moveable no break | Head Marker ] -> [ Moveable blockedD | Head Marker ] \nright [ Moveable no break | Head Marker ] -> [ Moveable blockedL | Head Marker ]\ndown [ Moveable no break | Head Marker ] -> [ Moveable blockedU | Head Marker ]\nleft [ Moveable no break | Head Marker ] -> [ Moveable blockedR | Head Marker]\n\nup [ Moveable no break | blockedD ] -> [ Moveable blockedD | blockedD ]\nright [ Moveable no break | blockedL ] -> [ Moveable blockedL | blockedL ]\ndown [ Moveable no break | blockedU ] -> [ Moveable blockedU | blockedU ]\nleft [ Moveable no break | blockedR ] -> [ Moveable blockedR | blockedR ]\n\nup [ ArrowD | Tail break | Wall ] -> [ ArrowD | Tail break blockedD | Wall ]\nright [ ArrowL | Tail break | Wall ] -> [ ArrowL | Tail break blockedL | Wall ]\ndown [ ArrowU | Tail break | Wall ] -> [ ArrowU | Tail break blockedU | Wall ]\nleft [ ArrowR | Tail break | Wall ] -> [ ArrowR | Tail break blockedR | Wall ] \n\nup [ ArrowD | Tail break | Head Marker ] -> [ ArrowD | Tail break blockedD | Head Marker ]\nright [ ArrowL | Tail break | Head Marker ] -> [ ArrowL | Tail break blockedL | Head Marker ]\ndown [ ArrowU | Tail break | Head Marker ] -> [ ArrowU | Tail break blockedU | Head Marker ]\nleft [ ArrowR | Tail break | Head Marker ] -> [ ArrowR | Tail break blockedR | Head Marker ] \n\nup [ ArrowD | Tail break | blockedD ] -> [ ArrowD | Tail break blockedD | blockedD ]\nright [ ArrowL | Tail break | blockedL ] -> [ ArrowL | Tail break blockedL | blockedL ]\ndown [ ArrowU | Tail break | blockedU ] -> [ ArrowU | Tail break blockedU | blockedU ]\nleft [ ArrowR | Tail break | blockedR ] -> [ ArrowR | Tail break blockedR | blockedR ] \n\nendloop\n\n(If head moves onto a vertebra directly, break the spine at that location)\nup [ > Head | Vertebra Marker no break ] -> [ > Head | break Marker ] sfx3\nright [ > Head | Vertebra Marker no break ] -> [ > Head | break Marker ] sfx3\ndown [ > Head | Vertebra Marker no break ] -> [ > Head | break Marker ] sfx3\nleft [ > Head | Vertebra Marker no break ] -> [ > Head | break Marker ] sfx3\n\n(Determine what object moves onto a moving vertebra indirectly)\nstartloop\n\n[ > Moveable | Moveable no Marker no break ] -> [ > Moveable | > Moveable ]\n\nup [ left VertebraU no blockedR | VertebraD no blockedR ] -> [ left VertebraU | left VertebraD ]\nup [ right VertebraU no blockedL | VertebraD no blockedL] -> [ right VertebraU | right VertebraD ]\n\nright [ up VertebraR no blockedD | VertebraL no blockedD] -> [ up VertebraR | up VertebraL ]\nright [ down VertebraR no blockedU | VertebraL no blockedU] -> [ down VertebraR | down VertebraL ]\n\ndown [ left VertebraD no blockedR | VertebraU no blockedR] -> [ left VertebraD | left VertebraU ]\ndown [ right VertebraD no blockedL | VertebraU no blockedL] -> [ right VertebraD | right VertebraU ]\n\nleft [ up VertebraL no BlockedD | VertebraR no blockedD] -> [ up VertebraL | up VertebraR ]\nleft [ down VertebraL no blockedU | VertebraR no blockedU] -> [ down VertebraL | down VertebraR ]\n\nup [ down VertebraU | VertebraD ] -> [ down VertebraU | down VertebraD ]\nright [ left VertebraR | VertebraL ] -> [ left VertebraR | left VertebraL ]\ndown [ up VertebraD | VertebraU ] -> [ up VertebraD | up VertebraU ]\nleft [ right VertebraL | VertebraR ] -> [ right VertebraL | right VertebraR ]\n\nendloop\n\n(Break the spine indirectly) \nup [ > Moveable no break | Marker no break ] -> [ > Moveable | break Marker ] sfx3\nright [ > Moveable no break | Marker no break ] -> [ > Moveable | break Marker ] sfx3\ndown [ > Moveable no break | Marker no break ] -> [ > Moveable | break Marker ] sfx3\nleft [ > Moveable no break | Marker no break ] -> [ > Moveable | break Marker ] sfx3\n\n(Removing the tail marker so that it doesn't interfere with the breaking process, it's add back later)\n[ Tail break ] -> [ Tail ]\n\n(Finding the broken spot nearest to the head to determine what chunk of the tail/body to cut off)\nstartloop\n\nup [ break VertebraU ArrowD | ] -> [ break VertebraU ArrowD | break ]\nright [ break VertebraR ArrowL | ] -> [ break VertebraR ArrowL | break ]\ndown [ break VertebraD ArrowU | ] -> [ break VertebraD ArrowU | break ]\nleft [ break VertebraL ArrowR | ] -> [ break VertebraL ArrowR | break ]\n\nendloop\n\n[ Tail break ] -> [ Tail break clear ]\n\nstartloop\n\nup [ break clear | break ArrowU ] -> [ | clear break ArrowU ]\nright [ break clear | break ArrowR ] -> [ | clear break ArrowR ]\ndown [ break clear | break ArrowD ] -> [ | clear break ArrowD ]\nleft [ break clear | break ArrowL ] -> [ | clear break ArrowL ]\n\nendloop\n\n[ break ] -> [ break bluedot ]\n[ no break ] -> [ no bluedot ]\n\n(Doing all the work again in case we break off a part that was actually supposed to block us from moving, thus also from breaking anything in the first place)\n[ > Moveable ] -> [ stationary Moveable ] \n[ > Player Head ] -> [ > Player > Head ] \n\nstartloop\n\nup [ Moveable no break | Wall ] -> [ Moveable blockedD | Wall ]\nright [ Moveable no break | Wall ] -> [ Moveable blockedL | Wall ]\ndown [ Moveable no break | Wall ] -> [ Moveable blockedU | Wall ]\nleft [ Moveable no break | Wall ] -> [ Moveable blockedR | Wall ]\n\nup [ Moveable no break | Head Marker ] -> [ Moveable blockedD | Head Marker ] \nright [ Moveable no break | Head Marker ] -> [ Moveable blockedL | Head Marker ]\ndown [ Moveable no break | Head Marker ] -> [ Moveable blockedU | Head Marker ]\nleft [ Moveable no break | Head Marker ] -> [ Moveable blockedR | Head Marker]\n\nup [ Moveable no break | blockedD ] -> [ Moveable blockedD | blockedD ]\nright [ Moveable no break | blockedL ] -> [ Moveable blockedL | blockedL ]\ndown [ Moveable no break | blockedU ] -> [ Moveable blockedU | blockedU ]\nleft [ Moveable no break | blockedR ] -> [ Moveable blockedR | blockedR ]\n\nup [ ArrowD | Tail break | Wall ] -> [ ArrowD | Tail break blockedD | Wall ]\nright [ ArrowL | Tail break | Wall ] -> [ ArrowL | Tail break blockedL | Wall ]\ndown [ ArrowU | Tail break | Wall ] -> [ ArrowU | Tail break blockedU | Wall ]\nleft [ ArrowR | Tail break | Wall ] -> [ ArrowR | Tail break blockedR | Wall ] \n\nup [ ArrowD | Tail break | Head Marker ] -> [ ArrowD | Tail break blockedD | Head Marker ]\nright [ ArrowL | Tail break | Head Marker ] -> [ ArrowL | Tail break blockedL | Head Marker ]\ndown [ ArrowU | Tail break | Head Marker ] -> [ ArrowU | Tail break blockedU | Head Marker ]\nleft [ ArrowR | Tail break | Head Marker ] -> [ ArrowR | Tail break blockedR | Head Marker ] \n\nup [ ArrowD | Tail break | blockedD ] -> [ ArrowD | Tail break blockedD | blockedD ]\nright [ ArrowL | Tail break | blockedL ] -> [ ArrowL | Tail break blockedL | blockedL ]\ndown [ ArrowU | Tail break | blockedU ] -> [ ArrowU | Tail break blockedU | blockedU ]\nleft [ ArrowR | Tail break | blockedR ] -> [ ArrowR | Tail break blockedR | blockedR ] \n\nendloop\n\nstartloop\n\n[ > Moveable | Moveable no Marker no break ] -> [ > Moveable | > Moveable ]\n\nup [ left VertebraU no blockedR | VertebraD no blockedR ] -> [ left VertebraU | left VertebraD ]\nup [ right VertebraU no blockedL | VertebraD no blockedL] -> [ right VertebraU | right VertebraD ]\n\nright [ up VertebraR no blockedD | VertebraL no blockedD] -> [ up VertebraR | up VertebraL ]\nright [ down VertebraR no blockedU | VertebraL no blockedU] -> [ down VertebraR | down VertebraL ]\n\ndown [ left VertebraD no blockedR | VertebraU no blockedR] -> [ left VertebraD | left VertebraU ]\ndown [ right VertebraD no blockedL | VertebraU no blockedL] -> [ right VertebraD | right VertebraU ]\n\nleft [ up VertebraL no BlockedD | VertebraR no blockedD] -> [ up VertebraL | up VertebraR ]\nleft [ down VertebraL no blockedU | VertebraR no blockedU] -> [ down VertebraL | down VertebraR ]\n\nup [ down VertebraU | VertebraD ] -> [ down VertebraU | down VertebraD ]\nright [ left VertebraR | VertebraL ] -> [ left VertebraR | left VertebraL ]\ndown [ up VertebraD | VertebraU ] -> [ up VertebraD | up VertebraU ]\nleft [ right VertebraL | VertebraR ] -> [ right VertebraL | right VertebraR ]\n\nendloop\n\n(Cancel the breaking in case we weren't supposed to break)\n[ > Head ] [ stationary Moveable | break ] -> [ > Head ] [ Moveable | ]\n\n(Find the spot that needs to be separated and do the action)\n[ > Vertebra ] -> [ stationary Vertebra ]\n[ > Attachable ] -> [ stationary Attachable ]\n[ > Box ] -> [ stationary Box ]\n[ Tail break ] -> [ Tail ]\n[ Vertebra break ] -> [ break ]\n\nrandom up [ break | ArrowU ] -> [ break TailU | ArrowU ]\n+right [ break | ArrowR ] -> [ break TailR | ArrowR ]\n+down [ break | ArrowD ] -> [ break TailD | ArrowD ]\n+left [ break | ArrowL ] -> [ break TailL | ArrowL ]\n\nrandom up [ Tail | ArrowU break ] -> [ DetachedTail | break ]\n+right [ Tail | ArrowR break ] -> [ DetachedTail | break ]\n+down [ Tail | ArrowD break ] -> [ DetachedTail | break ]\n+left [ Tail | ArrowL break ] -> [ DetachedTail | break ]\n\nrandom up [ Vertebra | ArrowU break ] -> [ break Vertebra | break ] \n+right [ Vertebra | ArrowR break ] -> [ break Vertebra | break ]\n+down [ Vertebra | ArrowD break ] -> [ break Vertebra | break ]\n+left [ Vertebra | ArrowL break ] -> [ break Vertebra | break ]\n\n[ Vertebra ArrowU break ] -> [ TailD clear ]\n[ Vertebra ArrowR break ] -> [ TailL clear ]\n[ Vertebra ArrowD break ] -> [ TailU clear ]\n[ Vertebra ArrowL break ] -> [ TailR clear ]\n\nup [ break TailU | no ArrowU ] -> [ TailU |]\nright [ break TailR | no ArrowR ] -> [ TailR |]\ndown [ break TailD | no ArrowD ] -> [ TailD |]\nleft [ break TailL | no ArrowL ] -> [ TailL |]\n\n(Clearing markers on the detached rest)\nstartloop\n\nup [ VertebraU clear | VertebraD Marker ] -> [ VertebraU | VertebraD clear ]\nright [ VertebraR clear | VertebraL Marker ] -> [ VertebraR | VertebraL clear ]\ndown [ VertebraD clear | VertebraU Marker ] -> [ VertebraD | VertebraU clear ]\nleft [ VertebraL clear | VertebraR Marker ] -> [ VertebraL | VertebraR clear ]\n\nendloop\n\n[ clear ] -> []\n\n(Marking the new tail)\nup [ TailU | ArrowU ] -> [ break TailU | ArrowU ]\nright [ TailR | ArrowR ] -> [ break TailR | ArrowR ]\ndown [ TailD | ArrowD ] -> [ break TailD | ArrowD ]\nleft [ TailL | ArrowL ] -> [ break TailL | ArrowL ]\n\n[ blockMarker ] -> []\n\n(Determine in which direction which objects represent an obstacle, this time if we are to block movement/break other sections)\nstartloop\n\nup [ Moveable no break no Marker | Wall ] -> [ Moveable blockedD | Wall ]\nright [ Moveable no break no Marker | Wall ] -> [ Moveable blockedL | Wall ]\ndown [ Moveable no break no Marker | Wall ] -> [ Moveable blockedU | Wall ]\nleft [ Moveable no break no Marker | Wall ] -> [ Moveable blockedR | Wall ]\n\nup [ Moveable no break | Head Marker ] -> [ Moveable blockedD | Head Marker ] \nright [ Moveable no break | Head Marker ] -> [ Moveable blockedL | Head Marker ]\ndown [ Moveable no break | Head Marker ] -> [ Moveable blockedU | Head Marker ]\nleft [ Moveable no break | Head Marker ] -> [ Moveable blockedR | Head Marker ]\n\nup [ Moveable no break | blockedD ] -> [ Moveable blockedD | blockedD ]\nright [ Moveable no break | blockedL ] -> [ Moveable blockedL | blockedL ]\ndown [ Moveable no break | blockedU ] -> [ Moveable blockedU | blockedU ]\nleft [ Moveable no break | blockedR ] -> [ Moveable blockedR | blockedR ]\n\nup [ ArrowD | Tail break | Wall ] -> [ ArrowD | Tail break blockedD | Wall ]\nright [ ArrowL | Tail break | Wall ] -> [ ArrowL | Tail break blockedL | Wall ]\ndown [ ArrowU | Tail break | Wall ] -> [ ArrowU | Tail break blockedU | Wall ]\nleft [ ArrowR | Tail break | Wall ] -> [ ArrowR | Tail break blockedR | Wall ] \n\nup [ ArrowD | Tail break | Head Marker ] -> [ ArrowD | Tail break blockedD | Head Marker ]\nright [ ArrowL | Tail break | Head Marker ] -> [ ArrowL | Tail break blockedL | Head Marker ]\ndown [ ArrowU | Tail break | Head Marker ] -> [ ArrowU | Tail break blockedU | Head Marker ]\nleft [ ArrowR | Tail break | Head Marker ] -> [ ArrowR | Tail break blockedR | Head Marker ] \n\nup [ ArrowD | Tail break | blockedD ] -> [ ArrowD | Tail break blockedD | blockedD ]\nright [ ArrowL | Tail break | blockedL ] -> [ ArrowL | Tail break blockedL | blockedL ]\ndown [ ArrowU | Tail break | blockedU ] -> [ ArrowU | Tail break blockedU | blockedU ]\nleft [ ArrowR | Tail break | blockedR ] -> [ ArrowR | Tail break blockedR | blockedR ]\n\nendloop\n\n(Determining which spots are supposed to break and which spots are supposed to be connected)\nstartloop\n\n[ > Moveable | Moveable no Marker no break ] -> [ > Moveable | > Moveable ]\n\n[ up Moveable Marker blockedD ] -> [ stationary Moveable Marker blockedD ]\n[ right Moveable Marker blockedL ] -> [ stationary Moveable Marker blockedL ]\n[ down Moveable Marker blockedU ] -> [ stationary Moveable Marker blockedU ]\n[ left Moveable Marker blockedR ] -> [ stationary Moveable Marker blockedR ]\n\nup [ left VertebraU no blockedR | VertebraD blockedR ] -> [ left VertebraU tailit | VertebraD tailit blockedR ]\nup [ right VertebraU no blockedL | VertebraD blockedL ] -> [ right VertebraU tailit | VertebraD tailit blockedL ]\n\nright [ up VertebraR no blockedD | VertebraL blockedD ] -> [ up VertebraR tailit | VertebraL tailit blockedD ]\nright [ down VertebraR no blockedU | VertebraL blockedU ] -> [ down VertebraR tailit | VertebraL tailit blockedU ]\n\ndown [ left VertebraD no blockedR | VertebraU blockedR ] -> [ left VertebraD tailit | VertebraU tailit blockedR ]\ndown [ right VertebraD no blockedL | VertebraU blockedL ] -> [ right VertebraD tailit | VertebraU tailit blockedL ]\n\nleft [ up VertebraL no blockedD | VertebraR blockedD ] -> [ up VertebraL tailit | VertebraR tailit blockedD ]\nleft [ down VertebraL no blockedU | VertebraR blockedU ] -> [ down VertebraL tailit | VertebraR tailit blockedU ]\n\nup [ left VertebraU no blockedR | VertebraD ] -> [ left VertebraU | left VertebraD ]\nup [ right VertebraU no blockedL | VertebraD ] -> [ right VertebraU | right VertebraD ]\n\nright [ up VertebraR no blockedD | VertebraL ] -> [ up VertebraR | up VertebraL ]\nright [ down VertebraR no blockedU | VertebraL ] -> [ down VertebraR | down VertebraL ]\n\ndown [ left VertebraD no blockedR | VertebraU ] -> [ left VertebraD | left VertebraU ]\ndown [ right VertebraD no blockedL | VertebraU ] -> [ right VertebraD | right VertebraU ]\n\nleft [ up VertebraL no BlockedD | VertebraR ] -> [ up VertebraL | up VertebraR ]\nleft [ down VertebraL no blockedU | VertebraR ] -> [ down VertebraL | down VertebraR ]\n\nup [ down VertebraU | VertebraD ] -> [ down VertebraU | down VertebraD ]\nright [ left VertebraR | VertebraL ] -> [ left VertebraR | left VertebraL ]\ndown [ up VertebraD | VertebraU ] -> [ up VertebraD | up VertebraU ]\nleft [ right VertebraL | VertebraR ] -> [ right VertebraL | right VertebraR ]\n\nup [ > Vertebra tailit | Vertebra tailit no break ] -> [ > Vertebra tailit AttachU | > Vertebra tailit AttachD ]\nright [ > Vertebra tailit | Vertebra tailit no break ] -> [ > Vertebra tailit AttachR | > Vertebra tailit AttachL ]\ndown [ > Vertebra tailit | Vertebra tailit no break ] -> [ > Vertebra tailit AttachD | > Vertebra tailit AttachU ]\nleft [ > Vertebra tailit | Vertebra tailit no break ] -> [ > Vertebra tailit AttachL | > Vertebra tailit AttachR ]\n\nup [ > Vertebra tailit | Attachable no break ] -> [ > Vertebra tailit AttachU | > Attachable AttachD ]\nright [ > Vertebra tailit | Attachable no break ] -> [ > Vertebra tailit AttachR | > Attachable AttachL ]\ndown [ > Vertebra tailit | Attachable no break ] -> [ > Vertebra tailit AttachD | > Attachable AttachU ]\nleft [ > Vertebra tailit | Attachable no break ] -> [ > Vertebra tailit AttachL | > Attachable AttachR ]\n\nup [ > Attachable | Vertebra tailit ] -> [ > Attachable AttachU | > Vertebra tailit AttachD ]\nright [ > Attachable | Vertebra tailit ] -> [ > Attachable AttachR | > Vertebra tailit AttachL ]\ndown [ > Attachable | Vertebra tailit ] -> [ > Attachable AttachD | > Vertebra tailit AttachU ]\nleft [ > Attachable | Vertebra tailit ] -> [ > Attachable AttachL | > Vertebra tailit AttachR ]\n\nendloop\n\n(Cancel movement if pushed against the edge of the map)\nup [ > Moveable edgeU ] [ > Player ] -> cancel\nright [ > Moveable edgeR ] [ > Player ] -> cancel\ndown [ > Moveable edgeD ] [ > Player ] -> cancel\nleft [ > Moveable edgeL ] [ > Player ] -> cancel\n\nup [ > Head edgeU ] [ > Player ] -> cancel\nright [ > Head edgeR ] [ > Player ] -> cancel\ndown [ > Head edgeD ] [ > Player ] -> cancel\nleft [ > Head edgeL ] [ > Player ] -> cancel\n\nup [ TailU AttachU ] -> [ TailU ]\nright [ TailR AttachR ] -> [ TailR ]\ndown [ TailD AttachD ] -> [ TailD ]\nleft [ TailL AttachL ] -> [ TailL ]\n\n()()()()\n\n[ tailit | perpendicular Vertebra tailit | tailit ] -> [ tailit | perpendicular DetachedTail | tailit ] sfx3\n[ perpendicular tailit | stationary Vertebra tailit | perpendicular tailit ] -> [ perpendicular tailit | DetachedTail | perpendicular tailit ] sfx3\n\nup [ moving Vertebra tailit | VertebraD no tailit ] -> [ moving TailU | VertebraD ] sfx3\nright [ moving Vertebra tailit | VertebraL no tailit ] -> [ moving TailR | VertebraL ] sfx3\ndown [ moving Vertebra tailit | VertebraU no tailit ] -> [ moving TailD | VertebraU ] sfx3\nleft [ moving Vertebra tailit | VertebraR no tailit ] -> [ moving TailL | VertebraR ] sfx3\n\nup [ stationary VertebraU tailit | stationary VertebraD tailit ] -> [ TailU | TailD ] sfx3\nright [ stationary VertebraR tailit | stationary VertebraL tailit ] -> [ TailR | TailL ] sfx3\ndown [ stationary VertebraD tailit | stationary VertebraU tailit ] -> [ TailD | TailU ] sfx3\nleft [ stationary VertebraL tailit | stationary VertebraR tailit ] -> [ TailL | TailR ] sfx3\n\nup [ > VertebraU tailit | > VertebraD tailit ] -> [ > TailU | > TailD ] sfx3\nright [ > VertebraR tailit | > VertebraL tailit ] -> [ > TailR | > TailL ] sfx3\ndown [ > VertebraD tailit | > VertebraU tailit ] -> [ > TailD | > TailU ] sfx3\nleft [ > VertebraL tailit | > VertebraR tailit ] -> [ > TailL | > TailR ] sfx3\n\nup [ moving Vertebra tailit | HeadU no tailit ] -> [ moving TailU | HeadU ] sfx3\nright [ moving Vertebra tailit | HeadR no tailit ] -> [ moving TailR | HeadR ] sfx3\ndown [ moving Vertebra tailit | HeadD no tailit ] -> [ moving TailD | HeadD ] sfx3\nleft [ moving Vertebra tailit | HeadL no tailit ] -> [ moving TailL | HeadL ] sfx3\n\nup [ stationary Vertebra tailit | VertebraD no tailit ] -> [ TailU | VertebraD ] sfx3\nright [ stationary Vertebra tailit | VertebraL no tailit ] -> [ TailR | VertebraL ] sfx3\ndown [ stationary Vertebra tailit | VertebraU no tailit ] -> [ TailD | VertebraU ] sfx3\nleft [ stationary Vertebra tailit | VertebraR no tailit ] -> [ TailL | VertebraR ] sfx3\n\n[ stationary Tail tailit ] -> [ DetachedTail ] sfx3\n[ > Tail tailit ] -> [ > DetachedTail ] sfx3\n\nup [ > Attachable | Attachable no break ] -> [ > Attachable AttachU | AttachD > Attachable ]\nright [ > Attachable | Attachable no break ] -> [ > Attachable AttachR | AttachL > Attachable ]\ndown [ > Attachable | Attachable no break ] -> [ > Attachable AttachD | AttachU > Attachable ]\nleft [ > Attachable | Attachable no break ] -> [ > Attachable AttachL | AttachR > Attachable ]\n\nup [ TailU AttachU ] -> [ TailU ]\nright [ TailR AttachR ] -> [ TailR ]\ndown [ TailD AttachD ] -> [ TailD ]\nleft [ TailL AttachL ] -> [ TailL ]\n\n(A clever trick to stop loop formation when two ends of one piece come to gether.)\nstartloop \n\n[ > Head | no pink Moveable ] -> [ > Head | pink Moveable ]\nup [ pink VertebraU | no pink VertebraD ] -> [ pink VertebraU | pink VertebraD ]\nright [ pink VertebraR | no pink VertebraL ] -> [ pink VertebraR | pink VertebraL ]\ndown [ pink VertebraD | no pink VertebraU ] -> [ pink VertebraD | pink VertebraU ]\nleft [ pink VertebraL | no pink VertebraR ] -> [ pink VertebraL | pink VertebraR ]\n\ndown [ > Head ] [ pink | no pink no AttachU Moveable ] -> [ > Head ] [ pink | pink Moveable ]\nleft [ > Head ] [ pink | no pink no AttachR Moveable ] -> [ > Head ] [ pink | pink Moveable ]\nup [ > Head ] [ pink | no pink no AttachD Moveable ] -> [ > Head ] [ pink | pink Moveable ]\nright [ > Head ] [ pink | no pink no AttachL Moveable ] -> [ > Head ] [ pink | pink Moveable ]\n\ndown [ > Head ] [ AttachD | pink AttachU ] -> [ > Head ] [ green AttachD | pink AttachU ]\nleft [ > Head ] [ AttachL | pink AttachR ] -> [ > Head ] [ green AttachL | pink AttachR ]\nup [ > Head ] [ AttachU | pink AttachD ] -> [ > Head ] [ green AttachU | pink AttachD ]\nright [ > Head ] [ AttachR | pink AttachL ] -> [ > Head ] [ green AttachR | pink AttachL ] \n\nup [ green VertebraU | no green no pink VertebraD ] -> [ green VertebraU | green VertebraD ]\nright [ green VertebraR | no green no pink VertebraL ] -> [ green VertebraR | green VertebraL ]\ndown [ green VertebraD | no green no pink VertebraU ] -> [ green VertebraD | green VertebraU ]\nleft [ green VertebraL | no green no pink VertebraR ] -> [ green VertebraL | green VertebraR ]\n\ndown [ > Head ] [ pink AttachD | green AttachU ] -> [ > Head ] [ pink AttachD | pink green AttachU ]\nleft [ > Head ] [ pink AttachL | green AttachR ] -> [ > Head ] [ pink AttachL | pink green AttachR ]\nup [ > Head ] [ pink AttachU | green AttachD ] -> [ > Head ] [ pink AttachU | pink green AttachD ]\nright [ > Head ] [ pink AttachR | green AttachL ] -> [ > Head ] [ pink AttachR | pink green AttachL ]\n\nendloop\n\ndown [ pink green AttachD | pink no green AttachU ] -> [ pink green | pink ]\nleft [ pink green AttachL | pink no green AttachR ] -> [ pink green | pink ]\nup [ pink green AttachU | pink no green AttachD ] -> [ pink green | pink ]\nright [ pink green AttachR | pink no green AttachL ] -> [ pink green | pink ] \n\n[ pink ] -> []\n[ green ] -> []\n\n(Prevent many attachables in a row to all attach together, if one in a row is already attached the attachment between it and the next one should be canceled)\nstartloop\n\nup [ no AttachU | > Tail AttachU | Tail AttachU | ] -> [ | > Tail AttachU | Tail AttachD | no AttachD ]\nright [ no AttachR | > Tail AttachR | Tail AttachR | ] -> [ | > Tail AttachR | Tail AttachL | no AttachL ]\ndown [ no AttachD | > Tail AttachD | Tail AttachD | ] -> [ | > Tail AttachD | Tail AttachU | no AttachU ]\nleft [ no AttachL | > Tail AttachL | Tail AttachL | ] -> [ | > Tail AttachL | Tail AttachR | no AttachR ]\n\nup [ | > DetachedTail AttachU | Tail AttachU | ] -> [ | > DetachedTail AttachU | Tail AttachD | no AttachD ]\nright [ | > DetachedTail AttachR | Tail AttachR | ] -> [ | > DetachedTail AttachR | Tail AttachL | no AttachL ]\ndown [ | > DetachedTail AttachD | Tail AttachD | ] -> [ | > DetachedTail AttachD | Tail AttachU | no AttachU ]\nleft [ | > DetachedTail AttachL | Tail AttachL | ] -> [ | > DetachedTail AttachL | Tail AttachR | no AttachR ]\n\nup [ > Head no Marker | no TailD Tail AttachU | ] -> [ > Head | Tail AttachD | no AttachD ]\nright [ > Head no Marker | no TailL Tail AttachR | ] -> [ > Head | Tail AttachL | no AttachL ]\ndown [ > Head no Marker | no TailU Tail AttachD | ] -> [ > Head | Tail AttachU | no AttachU ]\nleft [ > Head no Marker | no TailR Tail AttachL | ] -> [ > Head | Tail AttachR | no AttachR ]\n\nendloop\n\n(Boxes can't reattach once they are detached)\nup [ Box AttachU | AttachD ] -> [ Box | ]\nright [ Box AttachR | AttachL ] -> [ Box | ]\ndown [ Box AttachD | AttachU ] -> [ Box | ]\nleft [ Box AttachL | AttachR ] -> [ Box | ]\nlate [ Box DetachedTail ] -> [ Box ]\n\n(Attach all separated vertebrae at the start to make up the skeleton)\n[ start ] [ DetachedTail ] -> [ start ] [ start DetachedTail ]\n\nup [ DetachedTail start | DetachedTail start ] -> [ DetachedTail AttachU start | start AttachD DetachedTail ]\nright [ DetachedTail start | DetachedTail start ] -> [ DetachedTail AttachR start | start AttachL DetachedTail ]\ndown [ DetachedTail start | DetachedTail start ] -> [ DetachedTail AttachD start | start AttachU DetachedTail ]\nleft [ DetachedTail start | DetachedTail start ] -> [ DetachedTail AttachL start | start AttachR DetachedTail ]\n\n[ start ] -> []\n\n(Attach head to vertebra / spine)\nup [ > Head no Marker | Attachable no Box ] -> [ > HeadD | AttachD Attachable ] sfx1\nright [ > Head no Marker | Attachable no Box ] -> [ > HeadL | AttachL Attachable ] sfx1\ndown [ > Head no Marker | Attachable no Box ] -> [ > HeadU | AttachU Attachable ] sfx1\nleft [ > Head no Marker | Attachable no Box ] -> [ > HeadR | AttachR Attachable ] sfx1\n\n()\n\n[ > TailU ] -> [ > TailU AttachU ]\n[ > TailR ] -> [ > TailR AttachR ]\n[ > TailD ] -> [ > TailD AttachD ]\n[ > TailL ] -> [ > TailL AttachL ]\n\n(The process of attaching tails and vertebrae)\n\n[ > Attachable AttachU AttachR ] -> [ > BodyUR AttachU AttachR ] sfx1\n[ > Attachable AttachU AttachL ] -> [ > BodyUL AttachU AttachL ] sfx1\n[ > Attachable AttachD AttachR ] -> [ > BodyDR AttachD AttachR ] sfx1\n[ > Attachable AttachD AttachL ] -> [ > BodyDL AttachD AttachL ] sfx1\n[ > Attachable AttachL AttachR ] -> [ > BodyRL AttachL AttachR ] sfx1\n[ > Attachable AttachU AttachD ] -> [ > BodyUD AttachU AttachD ] sfx1\n\n[ > Attachable AttachU ] -> [ > TailU AttachU ] sfx1\n[ > Attachable AttachR ] -> [ > TailR AttachR ] sfx1\n[ > Attachable AttachD ] -> [ > TailD AttachD ] sfx1\n[ > Attachable AttachL ] -> [ > TailL AttachL ] sfx1\n\n[ Attachable AttachU AttachR ] -> [ BodyUR AttachU AttachR ] sfx1\n[ Attachable AttachU AttachL ] -> [ BodyUL AttachU AttachL ] sfx1\n[ Attachable AttachD AttachR ] -> [ BodyDR AttachD AttachR ] sfx1\n[ Attachable AttachD AttachL ] -> [ BodyDL AttachD AttachL ] sfx1\n[ Attachable AttachL AttachR ] -> [ BodyRL AttachL AttachR ] sfx1\n[ Attachable AttachU AttachD ] -> [ BodyUD AttachU AttachD ] sfx1\n\n[ Attachable AttachU ] -> [ TailU AttachU ] sfx1\n[ Attachable AttachR ] -> [ TailR AttachR ] sfx1\n[ Attachable AttachD ] -> [ TailD AttachD ] sfx1\n[ Attachable AttachL ] -> [ TailL AttachL ] sfx1\n\nup [ Attachable AttachU | no Attachable no VertebraD ] -> [ Attachable | ] sfx1\nright [ Attachable AttachR | no Attachable no VertebraL ] -> [ Attachable | ] sfx1\ndown [ Attachable AttachD | no Attachable no VertebraU ] -> [ Attachable | ] sfx1\nleft [ Attachable AttachL | no Attachable no VertebraR ] -> [ Attachable | ] sfx1\n\n()()()()\n\n[ AttachMarker ] -> []\n\n[ up Moveable blockedD ] -> [ stationary Moveable blockedD ]\n[ right Moveable blockedL ] -> [ stationary Moveable blockedL ]\n[ down Moveable blockedU ] -> [ stationary Moveable blockedU ]\n[ left Moveable blockedR ] -> [ stationary Moveable blockedR ]\n\nup [ > Head | no VertebraD ] -> [ > HeadU | ]\nright [ > Head | no VertebraL ] -> [ > HeadR | ]\ndown [ > Head | no VertebraU ] -> [ > HeadD | ]\nleft [ > Head | no VertebraR ] -> [ > HeadL | ]\n\n[ Marker ] -> [ no Marker ]\n\n(Marking the body, each part points in the reverse direction of the next part relative to itself (that means the direction the body is \"moving\" at that point))\nstartloop\n\nup [ Head no Marker | VertebraD ] -> [ Head ArrowD | VertebraD continue ]\nright [ Head no Marker | VertebraL ] -> [ Head ArrowL | VertebraL continue ]\ndown [ Head no Marker | VertebraU ] -> [ Head ArrowU | VertebraU continue ]\nleft [ Head no Marker | VertebraR ] -> [ Head ArrowR | VertebraR continue ]\n\nup [ Vertebra continue | VertebraD no Marker ] -> [ Vertebra ArrowD | VertebraD continue ]\nright [ Vertebra continue | VertebraL no Marker ] -> [ Vertebra ArrowL | VertebraL continue ]\ndown [ Vertebra continue | VertebraU no Marker ] -> [ Vertebra ArrowU | VertebraU continue ]\nleft [ Vertebra continue | VertebraR no Marker ] -> [ Vertebra ArrowR | VertebraR continue ]\n\n[ Tail continue ] -> [ break Tail ]\n\nendloop\n\n[ continue ] -> []\n\n(If the head is pulling the body and not pushing it)\nup [ > Head no ArrowD ] -> [ > Head pull] sfx2\nright [ > Head no ArrowL ] -> [ > Head pull] sfx2\ndown [ > Head no ArrowU ] -> [ > Head pull] sfx2\nleft [ > Head no ArrowR ] -> [ > Head pull] sfx2\n\n(Pull the spine)\nstartloop\n\nup [ stationary Vertebra | moving Moveable ArrowU pull ] -> [ > Vertebra pull | moving Moveable ArrowU pull ]\nright [ stationary Vertebra | moving Moveable ArrowR pull ] -> [ > Vertebra pull | moving Moveable ArrowR pull ]\ndown [ stationary Vertebra | moving Moveable ArrowD pull ] -> [ > Vertebra pull | moving Moveable ArrowD pull ]\nleft [ stationary Vertebra | moving Moveable ArrowL pull ] -> [ > Vertebra pull | moving Moveable ArrowL pull ]\n\nendloop\n\n(New markers for the new positions)\nstartloop\n\n[ up Moveable Marker pull ] -> [ up Moveable ArrowU pull ]\n[ right Moveable Marker pull ] -> [ right Moveable ArrowR pull ]\n[ down Moveable Marker pull ] -> [ down Moveable ArrowD pull ]\n[ left Moveable Marker pull ] -> [ left Moveable ArrowL pull ]\n\nendloop\n\n[ Head pull ] -> [ Head ]\n\n[ > Vertebra Box ] -> [ > Vertebra > Box ]\n[ > Moveable Marker ] -> [ > Moveable > Marker ]\n\n[ > Moveable pull ] -> [ > Moveable > pull ]\n[ > Tail break ] -> [ > Tail > break ]\n\n[ Player stationary Head ] -> [ stationary Player stationary Head ]\n\n[ > Box ground ] -> [ > Box ground ] sfx8\n[ > Box water no Step ] -> [ > Box water ] sfx7\n\n(Creating the new skeleton)\nstartloop\n\nlate up [ Vertebra ArrowU pull | ArrowU no pull ] -> [ BodyUD ArrowU | ArrowU ]\nlate up [ Vertebra ArrowR pull | ArrowU no pull ] -> [ BodyUL ArrowR | ArrowU ]\nlate up [ Vertebra ArrowL pull | ArrowU no pull ] -> [ BodyUR ArrowL | ArrowU ]\n\nlate right [ Vertebra ArrowR pull | ArrowR no pull ] -> [ BodyRL ArrowR | ArrowR ]\nlate right [ Vertebra ArrowU pull | ArrowR no pull ] -> [ BodyDR ArrowU | ArrowR ]\nlate right [ Vertebra ArrowD pull | ArrowR no pull ] -> [ BodyUR ArrowD | ArrowR ]\n\nlate down [ Vertebra ArrowD pull | ArrowD no pull ] -> [ BodyUD ArrowD | ArrowD ]\nlate down [ Vertebra ArrowR pull | ArrowD no pull ] -> [ BodyDL ArrowR | ArrowD ]\nlate down [ Vertebra ArrowL pull | ArrowD no pull ] -> [ BodyDR ArrowL | ArrowD ]\n\nlate left [ Vertebra ArrowL pull | ArrowL no pull ] -> [ BodyRL ArrowL | ArrowL ]\nlate left [ Vertebra ArrowU pull | ArrowL no pull ] -> [ BodyDL ArrowU | ArrowL ]\nlate left [ Vertebra ArrowD pull | ArrowL no pull ] -> [ BodyUL ArrowD | ArrowL ]\n\nlate up [ Tail pull | ArrowU no pull ] -> [ TailU | ArrowU ]\nlate right [ Tail pull | ArrowR no pull ] -> [ TailR | ArrowR ]\nlate down [ Tail pull | ArrowD no pull ] -> [ TailD | ArrowD ]\nlate left [ Tail pull | ArrowL no pull ] -> [ TailL | ArrowL ]\n\nendloop\n\n(Marking attached boxes' bonds to their neighboring attached boxes)\nlate [ BoxBondMarker ] -> []\nlate [ Box VertebraU ] -> [ Box BoxBondU VertebraU ]\nlate [ Box VertebraR ] -> [ Box BoxBondR VertebraR ]\nlate [ Box VertebraD ] -> [ Box BoxBondD VertebraD ]\nlate [ Box VertebraL ] -> [ Box BoxBondL VertebraL ] \n\n(Door/Button action)\nlate [ Head Button ] -> [ Head open Button ]\nlate [ Box Button ] -> [ Box open Button ]\n\nstartloop\n\nlate [ Button open | Trigger ] -> [ Button | Trigger open ]\nlate [ Trigger open | Trigger ] -> [ Trigger open | Trigger open ]\nlate [ Trigger open | DoorVertical ] -> [ Trigger | OpenDoorVertical ]\nlate [ Trigger open | DoorHorizontal ] -> [ Trigger | OpenDoorHorizontal ]\n\nendloop\n\nlate [ Button no Head no Box ] -> [ Button close ]\n\nstartloop\n\nlate [ Button close | Trigger ] -> [ Button close | Trigger close ]\nlate [ Trigger close | Trigger ] -> [ Trigger close | Trigger close ]\nlate [ Trigger close | OpenDoor no close ] -> [ Trigger close | OpenDoor close ]\n\nendloop\n\nlate [ close OpenDoor Box ] -> [ OpenDoor Box ]\n\nlate up [ VertebraU | close OpenDoor ] -> [ tailit VertebraU | close OpenDoor ]\nlate right [ VertebraR | close OpenDoor ] -> [ tailit VertebraR | close OpenDoor ]\nlate down [ VertebraD | close OpenDoor ] -> [ tailit VertebraD | close OpenDoor ]\nlate left [ VertebraL | close OpenDoor ] -> [ tailit VertebraL | close OpenDoor ]\n\nlate up [ HeadD | close OpenDoor ] -> [ no Marker HeadD | close OpenDoor ]\nlate right [ HeadL | close OpenDoor ] -> [ no Marker HeadL | close OpenDoor ]\nlate down [ HeadU | close OpenDoor ] -> [ no Marker HeadU | close OpenDoor ]\nlate left [ HeadR | close OpenDoor ] -> [ no Marker HeadR | close OpenDoor ]\n\nlate [ close OpenDoor Player ] -> [ close OpenDoor no Player Blood ] sfx5 message Crushed!\nlate [ close OpenDoor Moveable ] -> [ close OpenDoor no break no Marker ] sfx3\n\nlate [ close OpenDoorVertical ] -> [ DoorVertical ]\nlate [ close OpenDoorHorizontal ] -> [ DoorHorizontal ] \n\nlate [ open ] -> []\nlate [ close ] -> []\n\n(Breaking the spots that broke by closing doors)\nlate up [ VertebraU | Vertebra tailit ] -> [ VertebraU | TailD ]\nlate right [ VertebraR | Vertebra tailit ] -> [ VertebraR | TailL ]\nlate down [ VertebraD | Vertebra tailit ] -> [ VertebraD | TailU ]\nlate left [ VertebraL | Vertebra tailit ] -> [ VertebraL | TailR ]\n\nlate up [ HeadD | Vertebra tailit ] -> [ HeadD | TailD ]\nlate right [ HeadL | Vertebra tailit ] -> [ HeadL | TailL ]\nlate down [ HeadU | Vertebra tailit ] -> [ HeadU | TailU ]\nlate left [ HeadR | Vertebra tailit ] -> [ HeadR | TailR ]\n\n[tailit ] -> []\n[ break no Tail ] -> [ no break ]\n\nlate [ Tail tailit ] -> [ DetachedTail ]\n\n(Lava action (not used in the game))\nlate [ Head ] -> [ onGround Head ]\nlate [ Vertebra Ground ] -> [ Vertebra onGround Ground ]\nlate up [ onGround | VertebraD ] -> [ onGround | VertebraD onGround ]\nlate right [ onGround | VertebraL ] -> [ onGround | VertebraL onGround ]\nlate down [ onGround | VertebraU ] -> [ onGround | VertebraU onGround ]\nlate left [ onGround | VertebraR ] -> [ onGround | VertebraR onGround ]\n\nlate [ Vertebra Lava no onGround ] -> [ Lava ] sfx4\nlate [ DetachedTail Lava ] -> [ Lava ] sfx4\n\nlate [ onGround ] -> []\n\nlate up [ DartWallU ] -> [ DartWallU rayU ]\nlate right [ DartWallR ] -> [ DartWallR rayR ]\nlate down [ DartWallD ] -> [ DartWallD rayD ]\nlate left [ DartWallL ] -> [ DartWallL rayL ]\n\n(Dart shooting action (not used in the game))\nstartloop\n\nlate up [ rayU | no RayBlocker no Player ] -> [ | rayU ]\nlate right [ rayR | no RayBlocker no Player ] -> [ | rayR ]\nlate down [ rayD | no RayBlocker no Player ] -> [ | rayD ]\nlate left [ rayL | no RayBlocker no Player ] -> [ | rayL ] \n\nlate up [ rayU | rayBlocker no DartWallD ] -> [ | rayBlocker ]\nlate right [ rayR | rayBlocker no DartWallL ] -> [ | rayBlocker ]\nlate down [ rayD | rayBlocker no DartWallU ] -> [ | rayBlocker ]\nlate left [ rayL | rayBlocker no DartWallR ] -> [ | rayBlocker ] \n\nlate up [ rayU | Player ] -> [ | rayreturnD Player ]\nlate right [ rayR | Player ] -> [ | rayreturnL Player ]\nlate down [ rayD | Player ] -> [ | rayreturnU Player ]\nlate left [ rayL | Player ] -> [ | rayreturnR Player ] \n\nlate up [ rayreturnU | no rayBlocker no DartWallD ] -> [ | rayreturnU ]\nlate right [ rayreturnR | no rayBlocker no DartWallL ] -> [ | rayreturnR ]\nlate down [ rayreturnD | no rayBlocker no DartWallU ] -> [ | rayreturnD ]\nlate left [ rayreturnL | no rayBlocker no DartWallR ] -> [ | rayreturnL ] \n\nendloop\n\nlate up [ rayreturnU | DartWall ] -> [ | DartD DartWall ] again\nlate right [ rayreturnR | DartWall ] -> [ DartL | DartWall ] again\nlate down [ rayreturnD | DartWall ] -> [ DartU | DartWall ] again\nlate left [ rayreturnL | DartWall ] -> [ DartR | DartWall ] again\n\n==============\nWINCONDITIONS\n==============\n\nall Player on Goal\nno Blood\n\n======= \nLEVELS\n=======\n\n(4 - 3)\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwww..wwwwwww\nwwwwwwwww...gwwwwww\nwwwwww.....wggwwww#\nwwwwgg..#wwwgwww###\nwwwwgwwwwm#wggg:tto\ng???>gww#wwwwww_w/#\nwwwww...wwwwx___w_#\nwwwww..b.wwxwwwww_w\nwwwwww...ww_______w\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\nw۴wwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\n\n", [3, 2, 2, 1, 0, 0, 1, 1, 3, 0, 0, 3, 3, 3, 0, 3, 3, 3, 0, 0, 1, 2, 2, 1], "background edgel edgeu water:0,background edgel water:1,1,1,1,1,1,1,1,background edgel step water:2,1,1,1,1,1,1,background edged edgel water:3,background edgeu water:4,background water:5,\n5,5,5,5,5,5,5,background step water:6,5,5,5,5,5,background n4 water:7,background edged water:8,4,5,5,5,\n5,5,5,5,5,6,5,5,5,5,5,5,8,4,5,5,5,5,5,\n5,5,5,6,5,5,5,5,5,5,8,4,5,5,5,5,5,5,6,\n6,6,background groundedgerw water:9,9,5,5,5,5,8,4,5,5,5,5,5,9,background groundedgerw step water:10,5,background groundedgedw step water:11,\nbackground ground groundedgelg groundedgelw groundedgeug groundedgeuw:12,background ground groundedgedg groundedgedw groundedgelg groundedgelw watercornerbl:13,background groundcornertrg groundcornertrw groundedgerw groundedgeuw water:14,5,5,5,8,4,5,5,5,5,background groundedgedw water:15,background ground groundedgelg groundedgelw groundedgeug groundedgeuw watercornertl:16,background ground groundedgedg groundedgedw groundedgelg groundedgelw:17,background groundedgeuw water:18,15,background ground groundedgeug groundedgeuw:19,background ground:20,\n13,18,5,5,8,4,5,5,5,5,15,19,background ground groundedgedg groundedgedw:21,18,15,background ground groundedgerg groundedgerw groundedgeug groundedgeuw watercornertr:22,background box ground:23,21,18,\n5,5,8,4,5,5,5,5,background groundcornerbrg groundcornerbrw groundedgedw groundedgerw water:24,19,background dirtwall ground groundedgedg groundedgedw groundedgerg groundedgerw watercornerbr:25,18,background dirtwall water watercornertl watercornertr:26,background groundcornerblg groundcornerblw groundedgedw groundedgelw water:27,22,background ground groundedgedg groundedgedw groundedgerg groundedgerw watercornerbr:28,18,5,5,\n8,4,5,5,5,24,arrowl background ground groundedgelg groundedgelw groundedgeug groundedgeuw headl playerl watercornertl:29,21,background groundedgelw groundedgeuw water:30,background box water:31,5,5,background groundedgelw water:32,32,5,5,5,8,4,\n5,5,15,16,arrowu background bodydl ground:33,arrowu background bodyud ground groundedgedg groundedgedw groundedgerg groundedgerw watercornerbr:34,background break groundedgeuw tailu water:35,26,5,5,9,5,5,5,5,8,4,5,5,\n15,22,background ground groundedgedg groundedgedw groundedgerg groundedgerw:36,background groundcornertlg groundcornertlw groundedgelw groundedgeuw water:37,5,5,5,background groundedgedw groundedgerw water:38,background button ground groundedgedg groundedgedw groundedgelg groundedgelw groundedgerg groundedgerw groundedgeug groundedgeuw watercornerbl watercornerbr watercornertl watercornertr:39,background groundedgeuw trigger water:40,5,5,5,8,4,5,5,5,32,\nbackground groundedgelw step water:41,6,6,6,15,39,30,background trigger water:42,5,5,5,8,4,5,5,5,5,5,6,\n5,6,5,background groundedgelw trigger water:43,5,42,5,5,5,8,4,5,5,5,5,5,5,5,6,\n5,42,5,42,5,5,5,8,4,5,5,5,5,5,5,5,background groundedgerw step trigger water:44,42,42,\n5,42,5,5,5,8,4,5,5,5,5,5,5,26,background doorvertical ground groundedgedg groundedgedw groundedgelg groundedgelw:45,background groundedgerw groundedgeuw water:46,5,5,42,\n5,5,5,8,4,5,5,5,5,5,5,26,background doorvertical ground:47,background dirtwall ground groundedgedg groundedgedw groundedgelg groundedgelw trigger watercornerbl:48,background groundedgerw groundedgeuw trigger water:49,42,42,5,5,\n5,8,background edger edgeu water:50,background edger water:51,51,51,51,51,background dirtwall edger water watercornertl watercornertr:52,background dirtwall edger ground:53,background edger goal ground:54,53,background dirtwall edger ground groundedgedg groundedgedw groundedgelg groundedgelw watercornerbl:55,background edger groundedgeuw water:56,51,51,51,51,background edged edger water:57,\n", 0, "1627779869171.2134"] ], [ `increpare game: cooperacing`, - ["title Cooperacing\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start \n\ncolor_palette amstrad \n\nyoutube ZdvPF9KQfXk\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\ngrey lightgrey\n01000\n00000\n00001\n00100\n00000\n\n\nWall\ngreen darkgreen\n11010\n01111\n10101\n11100\n01011\n\nWallV |\ndarkblue darkgreen green \n20202\n20202\n20202\n20202\n20202\n\nWallH -\ndarkblue darkgreen green\n22222\n00000\n22222\n00000\n22222\n\nRedCar\nred \n\nBlueCar \nblue\n\nActiveSeat\ndarkgrey yellow\n.....\n.101.\n.000.\n.101.\n.....\n\nInactiveSeat\ndarkgrey\n.....\n.000.\n.000.\n.000.\n.....\n\nNoWinRed\nDarkRed\n.....\n.000.\n.000.\n.000.\n.....\n\nWinRed\nBrown Red\n1111.\n1111.\n1111.\n0....\n0....\n\n\nNoWinBlue\nDarkBlue\n.....\n.000.\n.000.\n.000.\n.....\n\nWinBlue\nBrown Blue\n1111.\n1111.\n1111.\n0....\n0....\n\nCrate 0\nblack\n.000.\n00000\n00.00\n00000\n.000.\n\nFlag\nBlack White\n10101\n01010\n10101\n01010\n10101\n\n\n(decorative stuff BEGIN)\n\n\n\nRedCarFrontUp\ngrey red black\n..1..\n.111.\n21112\n21112\n.111.\n\nRedCarFrontDown\ngrey red black\n.111.\n21112\n21112\n.111.\n..1..\n\nRedCarFrontLeft\ngrey red black\n..22.\n.1111\n11111\n.1111\n..22.\n\nRedCarFrontRight\ngrey red black\n.22..\n1111.\n11111\n1111.\n.22..\n\n\nRedCarBackUp\ngrey red black\n.111.\n11111\n21112\n21112\n11111\n\nRedCarBackDown\ngrey red black\n11111\n21112\n21112\n11111\n.111.\n\nRedCarBackLeft\ngrey red black\n.1221\n11111\n11111\n11111\n.1221\n\nRedCarBackRight\ngrey red black\n.1221\n11111\n11111\n11111\n.1221\n\n\n\n\nBlueCarFrontUp\ngrey blue black\n..1..\n.111.\n21112\n21112\n.111.\n\nBlueCarFrontDown\ngrey blue black\n.111.\n21112\n21112\n.111.\n..1..\n\nBlueCarFrontLeft\ngrey blue black\n..22.\n.1111\n11111\n.1111\n..22.\n\nBlueCarFrontRight\ngrey blue black\n.22..\n1111.\n11111\n1111.\n.22..\n\n\nBlueCarBackUp\ngrey blue black\n.111.\n11111\n21112\n21112\n11111\n\nBlueCarBackDown\ngrey blue black\n11111\n21112\n21112\n11111\n.111.\n\nBlueCarBackLeft\ngrey blue black\n.1221\n11111\n11111\n11111\n.1221\n\nBlueCarBackRight\ngrey blue black\n.1221\n11111\n11111\n11111\n.1221\n\nHStreaks\ndarkgrey\n.....\n.000.\n.....\n.000.\n.....\n\nVStreaks\ndarkgrey\n.....\n.0.0.\n.0.0.\n.0.0.\n.....\n\n\n\n=======\nLEGEND\n=======\n\nRedCarDecorationFront = RedCarFrontUp or RedCarFrontDown or RedCarFrontLeft or RedCarFrontRight\nRedCarDecorationBack = RedCarBackUp or RedCarBackDown or RedCarBackLeft or RedCarBackRight\nRedCarDecoration = RedCarDecorationFront or RedCarDecorationBack\n\n\nBlueCarDecorationFront = BlueCarFrontUp or BlueCarFrontDown or BlueCarFrontLeft or BlueCarFrontRight\nBlueCarDecorationBack = BlueCarBackUp or BlueCarBackDown or BlueCarBackLeft or BlueCarBackRight\nBlueCarDecoration = BlueCarDecorationFront or BlueCarDecorationBack\n\n\nDecoration = RedCarDecoration or BlueCarDecoration \n\nVFX = HStreaks or VStreaks\n\nCar = RedCar or BlueCar\nSeat = ActiveSeat or InactiveSeat\nPushable = Car or Crate\nAnyWall = Wall or WallH or WallV\nObstacle = Wall or Car or Crate or WallH or WallV\nGUI = WinRed or WinBlue or NoWinRed or NoWinBlue\n\nPlayer = ActiveSeat \n\n# = Wall\n. = Background\na = RedCar and ActiveSeat\n1 = RedCar\nb = BlueCar and InactiveSeat\n2 = BlueCar\nx = NoWinRed and Wall\ny = NoWinBlue and Wall\n\nf = Flag\n\n=======\nSOUNDS\n=======\n\nSFX0 1367907 \nactiveseat move 76769307 (regular move)\nSFX2 47151508 (switchcar)\nSFX3 5892308 (touch flag)\nSFX4 36923307 (turn car)\nendlevel 84491108\nendgame 57925708\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nVFX\nFlag\nWall, Car, Crate, Decoration, WallH, WallV\nSeat\nGUI\n\n======\nRULES\n======\n\n[ RedCarDecoration ] -> [ RedCar ]\n[ BlueCarDecoration ] -> [ BlueCar ]\n\n[ Action ActiveSeat ] [ InactiveSeat ] -> [ InactiveSeat ] [ ActiveSeat ]\n\n(no reversing)\n[ < ActiveSeat RedCar | RedCar ] -> cancel\n[ < ActiveSeat BlueCar | BlueCar ] -> cancel\n\n(no turning towards foreign objects)\n[ > ActiveSeat BlueCar | RedCar ] -> cancel\n[ > ActiveSeat RedCar | BlueCar ] -> cancel\n[ > ActiveSeat BlueCar | Crate ] -> cancel\n[ > ActiveSeat RedCar | Crate ] -> cancel\n\n\n(turning)\n\n\n[ > ActiveSeat BlueCar | no Obstacle ] [ no ActiveSeat BlueCar ] -> [ ActiveSeat BlueCar | BlueCar ] [ ] sfx4\n\n\n[ > ActiveSeat RedCar | no Obstacle ] [ no ActiveSeat RedCar ] -> [ ActiveSeat RedCar | RedCar ] [ ] sfx4\n\n[ > ActiveSeat Car ] -> [ > ActiveSeat > Car ]\n\nstartLoop\n\n[ > Pushable | Pushable ] -> [ > Pushable | > Pushable ]\n\n[ moving RedCar | RedCar ] -> [ moving RedCar | moving RedCar ]\n[ moving BlueCar | BlueCar ] -> [ moving BlueCar | moving BlueCar ]\n\nendLoop\n\n[ moving Car Seat ] -> [ moving Car moving Seat ]\n\n[ > Pushable | AnyWall ] -> cancel\n\nhorizontal [ ^ RedCar | ^ RedCar ] -> [ VStreaks ^ RedCar | VStreaks ^ RedCar ] sfx0\nvertical [ ^ RedCar | ^ RedCar ] -> [ HStreaks ^ RedCar | HStreaks ^ RedCar ] sfx0\n\nhorizontal [ ^ BlueCar | ^ BlueCar ] -> [ VStreaks ^ BlueCar | VStreaks ^ BlueCar ] sfx0\nvertical [ ^ BlueCar | ^ BlueCar ] -> [ HStreaks ^ BlueCar | HStreaks ^ BlueCar ] sfx0\n\n\nlate [ BlueCar Flag ] [ NoWinBlue ] -> [ BlueCar Flag ] [ WinBlue ] sfx3\nlate [ RedCar Flag ] [ NoWinRed ] -> [ RedCar Flag ] [ WinRed ] sfx3\n\nlate up [ RedCar Seat | RedCar ] -> [ RedCarBackUp Seat | RedCarFrontUp ]\nlate down [ RedCar Seat | RedCar ] -> [ RedCarBackDown Seat | RedCarFrontDown ]\nlate left [ RedCar Seat | RedCar ] -> [ RedCarBackLeft Seat | RedCarFrontLeft ]\nlate right [ RedCar Seat | RedCar ] -> [ RedCarBackRight Seat | RedCarFrontRight ]\n\nlate up [ BlueCar Seat | BlueCar ] -> [ BlueCarBackUp Seat | BlueCarFrontUp ]\nlate down [ BlueCar Seat | BlueCar ] -> [ BlueCarBackDown Seat | BlueCarFrontDown ]\nlate left [ BlueCar Seat | BlueCar ] -> [ BlueCarBackLeft Seat | BlueCarFrontLeft ]\nlate right [ BlueCar Seat | BlueCar ] -> [ BlueCarBackRight Seat | BlueCarFrontRight ]\n\n==============\nWINCONDITIONS\n==============\n\nno NoWinRed\nno NoWinBlue\n\n=======\nLEVELS\n=======\n\nmessage RED appears to be in the lead, but what REALLY is important is everyone finishing the race\n\nmessage X to switch car, ARROWS to do turn or move forward. NO REVERSE\n\nmessage WARM UP LAP\n\n#############\n##---------##\n#|.........|#\n#|.....a1..|#\n#|..b2.....|#\n#|.........|#\n#|...#-#...|#\n#|...|#|...|#\n#|...|#|...|#\n#|...#-#...|#\n#|....f....|#\n#|....f....|#\n#|....f....|#\n#|....f....|#\n##---------##\n##xy#########\n\nmessage LAP 1\n\n###########\n##-------##\n#|.......|#\n#|.......|#\n###.----.|#\n##|..b2..|#\n##|..a1..|#\n###.----.|#\n#|...f...|#\n#|...f...|#\n##-------##\n###xy######\n\nmessage LAP 2\n\nmessage Watch out, tires on the track!\n\n###########\n#.....a1..#\n#...b2....#\n#...###...#\n#000###000#\n#...###...#\n#000###000#\n#....f....#\n#....f....#\n###xy######\n\nmessage Final Lap!\n\n##############\n##############\n#.......###.##\n#..a1.......##\n#..b2...###.##\n#.......###.##\n#####.#####.##\n#####...f....#\n###########.##\n#xy###########\n\nmessage RACE OVER\nmessage Race Results: \nmessage Teamwork is Victorious!\nmessage thanks for playing\n\n",[0,0,4,1,3,3,2,4,0,3,3,0,1,1,1,0,3,1,0,3,2,2,0,3,1,1,1,0,1,0,3,3,0,1,1,4,0,0,0,2,2,2,1,1,1,1,1,1,2,3,3,3,3,2,1,1,1],"background wall:0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background wallv:1,1,0,0,0,0,1,1,\n0,0,0,background wallh:2,background:3,3,0,1,1,0,3,\n3,2,0,0,2,3,3,3,3,background redcarfrontleft:4,3,\nbackground bluecarfrontleft:5,3,2,background nowinred wall:6,0,2,3,3,2,3,background inactiveseat redcarbackleft:7,\n2,activeseat background bluecarbackleft:8,3,2,background wall winblue:9,0,2,3,3,2,3,\n3,2,background flag:10,10,2,0,0,2,3,3,2,\n3,3,2,3,3,2,0,0,2,3,3,\n2,background hstreaks:11,11,2,3,3,2,0,0,2,3,\n3,3,3,3,3,3,3,2,0,0,0,\n1,1,1,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n",5,"1627888788733.95"] + ["title Cooperacing\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start \n\ncolor_palette amstrad \n\nyoutube ZdvPF9KQfXk\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\ngrey lightgrey\n01000\n00000\n00001\n00100\n00000\n\n\nWall\ngreen darkgreen\n11010\n01111\n10101\n11100\n01011\n\nWallV |\ndarkblue darkgreen green \n20202\n20202\n20202\n20202\n20202\n\nWallH -\ndarkblue darkgreen green\n22222\n00000\n22222\n00000\n22222\n\nRedCar\nred \n\nBlueCar \nblue\n\nActiveSeat\ndarkgrey yellow\n.....\n.101.\n.000.\n.101.\n.....\n\nInactiveSeat\ndarkgrey\n.....\n.000.\n.000.\n.000.\n.....\n\nNoWinRed\nDarkRed\n.....\n.000.\n.000.\n.000.\n.....\n\nWinRed\nBrown Red\n1111.\n1111.\n1111.\n0....\n0....\n\n\nNoWinBlue\nDarkBlue\n.....\n.000.\n.000.\n.000.\n.....\n\nWinBlue\nBrown Blue\n1111.\n1111.\n1111.\n0....\n0....\n\nCrate 0\nblack\n.000.\n00000\n00.00\n00000\n.000.\n\nFlag\nBlack White\n10101\n01010\n10101\n01010\n10101\n\n\n(decorative stuff BEGIN)\n\n\n\nRedCarFrontUp\ngrey red black\n..1..\n.111.\n21112\n21112\n.111.\n\nRedCarFrontDown\ngrey red black\n.111.\n21112\n21112\n.111.\n..1..\n\nRedCarFrontLeft\ngrey red black\n..22.\n.1111\n11111\n.1111\n..22.\n\nRedCarFrontRight\ngrey red black\n.22..\n1111.\n11111\n1111.\n.22..\n\n\nRedCarBackUp\ngrey red black\n.111.\n11111\n21112\n21112\n11111\n\nRedCarBackDown\ngrey red black\n11111\n21112\n21112\n11111\n.111.\n\nRedCarBackLeft\ngrey red black\n.1221\n11111\n11111\n11111\n.1221\n\nRedCarBackRight\ngrey red black\n.1221\n11111\n11111\n11111\n.1221\n\n\n\n\nBlueCarFrontUp\ngrey blue black\n..1..\n.111.\n21112\n21112\n.111.\n\nBlueCarFrontDown\ngrey blue black\n.111.\n21112\n21112\n.111.\n..1..\n\nBlueCarFrontLeft\ngrey blue black\n..22.\n.1111\n11111\n.1111\n..22.\n\nBlueCarFrontRight\ngrey blue black\n.22..\n1111.\n11111\n1111.\n.22..\n\n\nBlueCarBackUp\ngrey blue black\n.111.\n11111\n21112\n21112\n11111\n\nBlueCarBackDown\ngrey blue black\n11111\n21112\n21112\n11111\n.111.\n\nBlueCarBackLeft\ngrey blue black\n.1221\n11111\n11111\n11111\n.1221\n\nBlueCarBackRight\ngrey blue black\n.1221\n11111\n11111\n11111\n.1221\n\nHStreaks\ndarkgrey\n.....\n.000.\n.....\n.000.\n.....\n\nVStreaks\ndarkgrey\n.....\n.0.0.\n.0.0.\n.0.0.\n.....\n\n\n\n=======\nLEGEND\n=======\n\nRedCarDecorationFront = RedCarFrontUp or RedCarFrontDown or RedCarFrontLeft or RedCarFrontRight\nRedCarDecorationBack = RedCarBackUp or RedCarBackDown or RedCarBackLeft or RedCarBackRight\nRedCarDecoration = RedCarDecorationFront or RedCarDecorationBack\n\n\nBlueCarDecorationFront = BlueCarFrontUp or BlueCarFrontDown or BlueCarFrontLeft or BlueCarFrontRight\nBlueCarDecorationBack = BlueCarBackUp or BlueCarBackDown or BlueCarBackLeft or BlueCarBackRight\nBlueCarDecoration = BlueCarDecorationFront or BlueCarDecorationBack\n\n\nDecoration = RedCarDecoration or BlueCarDecoration \n\nVFX = HStreaks or VStreaks\n\nCar = RedCar or BlueCar\nSeat = ActiveSeat or InactiveSeat\nPushable = Car or Crate\nAnyWall = Wall or WallH or WallV\nObstacle = Wall or Car or Crate or WallH or WallV\nGUI = WinRed or WinBlue or NoWinRed or NoWinBlue\n\nPlayer = ActiveSeat \n\n# = Wall\n. = Background\na = RedCar and ActiveSeat\n1 = RedCar\nb = BlueCar and InactiveSeat\n2 = BlueCar\nx = NoWinRed and Wall\ny = NoWinBlue and Wall\n\nf = Flag\n\n=======\nSOUNDS\n=======\n\nSFX0 1367907 \nactiveseat move 76769307 (regular move)\nSFX2 47151508 (switchcar)\nSFX3 5892308 (touch flag)\nSFX4 36923307 (turn car)\nendlevel 84491108\nendgame 57925708\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nVFX\nFlag\nWall, Car, Crate, Decoration, WallH, WallV\nSeat\nGUI\n\n======\nRULES\n======\n\n[ RedCarDecoration ] -> [ RedCar ]\n[ BlueCarDecoration ] -> [ BlueCar ]\n\n[ Action ActiveSeat ] [ InactiveSeat ] -> [ InactiveSeat ] [ ActiveSeat ]\n\n(no reversing)\n[ < ActiveSeat RedCar | RedCar ] -> cancel\n[ < ActiveSeat BlueCar | BlueCar ] -> cancel\n\n(no turning towards foreign objects)\n[ > ActiveSeat BlueCar | RedCar ] -> cancel\n[ > ActiveSeat RedCar | BlueCar ] -> cancel\n[ > ActiveSeat BlueCar | Crate ] -> cancel\n[ > ActiveSeat RedCar | Crate ] -> cancel\n\n\n(turning)\n\n\n[ > ActiveSeat BlueCar | no Obstacle ] [ no ActiveSeat BlueCar ] -> [ ActiveSeat BlueCar | BlueCar ] [ ] sfx4\n\n\n[ > ActiveSeat RedCar | no Obstacle ] [ no ActiveSeat RedCar ] -> [ ActiveSeat RedCar | RedCar ] [ ] sfx4\n\n[ > ActiveSeat Car ] -> [ > ActiveSeat > Car ]\n\nstartLoop\n\n[ > Pushable | Pushable ] -> [ > Pushable | > Pushable ]\n\n[ moving RedCar | RedCar ] -> [ moving RedCar | moving RedCar ]\n[ moving BlueCar | BlueCar ] -> [ moving BlueCar | moving BlueCar ]\n\nendLoop\n\n[ moving Car Seat ] -> [ moving Car moving Seat ]\n\n[ > Pushable | AnyWall ] -> cancel\n\nhorizontal [ ^ RedCar | ^ RedCar ] -> [ VStreaks ^ RedCar | VStreaks ^ RedCar ] sfx0\nvertical [ ^ RedCar | ^ RedCar ] -> [ HStreaks ^ RedCar | HStreaks ^ RedCar ] sfx0\n\nhorizontal [ ^ BlueCar | ^ BlueCar ] -> [ VStreaks ^ BlueCar | VStreaks ^ BlueCar ] sfx0\nvertical [ ^ BlueCar | ^ BlueCar ] -> [ HStreaks ^ BlueCar | HStreaks ^ BlueCar ] sfx0\n\n\nlate [ BlueCar Flag ] [ NoWinBlue ] -> [ BlueCar Flag ] [ WinBlue ] sfx3\nlate [ RedCar Flag ] [ NoWinRed ] -> [ RedCar Flag ] [ WinRed ] sfx3\n\nlate up [ RedCar Seat | RedCar ] -> [ RedCarBackUp Seat | RedCarFrontUp ]\nlate down [ RedCar Seat | RedCar ] -> [ RedCarBackDown Seat | RedCarFrontDown ]\nlate left [ RedCar Seat | RedCar ] -> [ RedCarBackLeft Seat | RedCarFrontLeft ]\nlate right [ RedCar Seat | RedCar ] -> [ RedCarBackRight Seat | RedCarFrontRight ]\n\nlate up [ BlueCar Seat | BlueCar ] -> [ BlueCarBackUp Seat | BlueCarFrontUp ]\nlate down [ BlueCar Seat | BlueCar ] -> [ BlueCarBackDown Seat | BlueCarFrontDown ]\nlate left [ BlueCar Seat | BlueCar ] -> [ BlueCarBackLeft Seat | BlueCarFrontLeft ]\nlate right [ BlueCar Seat | BlueCar ] -> [ BlueCarBackRight Seat | BlueCarFrontRight ]\n\n==============\nWINCONDITIONS\n==============\n\nno NoWinRed\nno NoWinBlue\n\n=======\nLEVELS\n=======\n\nmessage RED appears to be in the lead, but what REALLY is important is everyone finishing the race\n\nmessage X to switch car, ARROWS to do turn or move forward. NO REVERSE\n\nmessage WARM UP LAP\n\n#############\n##---------##\n#|.........|#\n#|.....a1..|#\n#|..b2.....|#\n#|.........|#\n#|...#-#...|#\n#|...|#|...|#\n#|...|#|...|#\n#|...#-#...|#\n#|....f....|#\n#|....f....|#\n#|....f....|#\n#|....f....|#\n##---------##\n##xy#########\n\nmessage LAP 1\n\n###########\n##-------##\n#|.......|#\n#|.......|#\n###.----.|#\n##|..b2..|#\n##|..a1..|#\n###.----.|#\n#|...f...|#\n#|...f...|#\n##-------##\n###xy######\n\nmessage LAP 2\n\nmessage Watch out, tires on the track!\n\n###########\n#.....a1..#\n#...b2....#\n#...###...#\n#000###000#\n#...###...#\n#000###000#\n#....f....#\n#....f....#\n###xy######\n\nmessage Final Lap!\n\n##############\n##############\n#.......###.##\n#..a1.......##\n#..b2...###.##\n#.......###.##\n#####.#####.##\n#####...f....#\n###########.##\n#xy###########\n\nmessage RACE OVER\nmessage Race Results: \nmessage Teamwork is Victorious!\nmessage thanks for playing\n\n", [0, 0, 4, 1, 3, 3, 2, 4, 0, 3, 3, 0, 1, 1, 1, 0, 3, 1, 0, 3, 2, 2, 0, 3, 1, 1, 1, 0, 1, 0, 3, 3, 0, 1, 1, 4, 0, 0, 0, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 3, 3, 3, 3, 2, 1, 1, 1], "background wall:0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background wallv:1,1,0,0,0,0,1,1,\n0,0,0,background wallh:2,background:3,3,0,1,1,0,3,\n3,2,0,0,2,3,3,3,3,background redcarfrontleft:4,3,\nbackground bluecarfrontleft:5,3,2,background nowinred wall:6,0,2,3,3,2,3,background inactiveseat redcarbackleft:7,\n2,activeseat background bluecarbackleft:8,3,2,background wall winblue:9,0,2,3,3,2,3,\n3,2,background flag:10,10,2,0,0,2,3,3,2,\n3,3,2,3,3,2,0,0,2,3,3,\n2,background hstreaks:11,11,2,3,3,2,0,0,2,3,\n3,3,3,3,3,3,3,2,0,0,0,\n1,1,1,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n", 5, "1627888788733.95"] ], [ `increpare game: LED Challenge`, - ["(\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,"undo",3,3,3,3,2,3,0,0,"undo","undo",3,0,0,0,0,0,1,2,3,2,1,1,1,1,1,3,3,3,3,3,2,1,1,1,1,0,1,0,1,1,1,"undo",0,1,1,1,1,2,2,2,3,3,2,3,3,0,2,1,1,1,"undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","restart",3,3,3,3,0,3,3,0,0,1,2,3,2,2,2,1,1,0,3,1,0,0,3,2,3,3,3,2,1,1,2,1,0,1,1,1,0,1,0,1,1,1,1,2,2,2,2,3,3,3,3,0,0,3,0,"undo","undo",3,0,1,2,2,1,0],"background:0,0,0,0,0,0,0,0,0,0,0,0,\nbackground battery_h light light_left light_right:1,0,0,0,background red_on:2,background cable_ul light light_left light_up:3,background player:4,0,0,0,0,0,\n0,background wall:5,5,0,0,5,5,5,0,0,5,0,\n0,0,0,0,0,0,background green_off:6,0,0,0,0,0,\n0,0,0,background cable_ur:7,0,0,0,0,0,0,0,0,\n",3,"1627888832451.9211"] + ["(\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, "undo", 3, 3, 3, 3, 2, 3, 0, 0, "undo", "undo", 3, 0, 0, 0, 0, 0, 1, 2, 3, 2, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, "undo", 0, 1, 1, 1, 1, 2, 2, 2, 3, 3, 2, 3, 3, 0, 2, 1, 1, 1, "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "restart", 3, 3, 3, 3, 0, 3, 3, 0, 0, 1, 2, 3, 2, 2, 2, 1, 1, 0, 3, 1, 0, 0, 3, 2, 3, 3, 3, 2, 1, 1, 2, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 0, 0, 3, 0, "undo", "undo", 3, 0, 1, 2, 2, 1, 0], "background:0,0,0,0,0,0,0,0,0,0,0,0,\nbackground battery_h light light_left light_right:1,0,0,0,background red_on:2,background cable_ul light light_left light_up:3,background player:4,0,0,0,0,0,\n0,background wall:5,5,0,0,5,5,5,0,0,5,0,\n0,0,0,0,0,0,background green_off:6,0,0,0,0,0,\n0,0,0,background cable_ur:7,0,0,0,0,0,0,0,0,\n", 3, "1627888832451.9211"] ], [ `increpare game: robot arm`, -["(\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 Robot Arm\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\ncolor_palette c64\n\nrun_rules_on_level_start\n\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground .\ndarkblue\n\nPlayer P\nBlack orange grey Blue\n.111.\n.111.\n22222\n13331\n.3.3.\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.010.\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 #\ndarkgrey grey lightgrey\n00000\n01110\n01010\n01110\n00000\n\nwater ,\nblue lightblue\n00000\n00010\n00000\n00000\n01000\n\nFruit F\nRed Green LightRed\n..1..\n.000.\n00020\n00000\n.000.\n\n\nFruitPicked G\nRed Green LightRed grey grey\n..4..\n.030.\n43334\n00300\n.040.\n\nDeadFruit \nblack black black black black\n..4..\n.030.\n43334\n00300\n.040.\n\nEndPoint E\ndarkgreen Yellow black green\n30003\n02220\n02220\n02220\n30003\n\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\nsfx0 43004308 (explosion)\nsfx1 69392707\nsfx2 57370907 (push machine)\nsfx3 62083508 (rotate machine)\nsfx4 90419908 (grab)\nsfx5 50782902 (drop in hole)\nsfx6 76878101 (empty grab)\nsfx7 13941101 (dead fruit)\nsfx8 42541302 (release)\nPlayer move 88476108\nstartgame 30513908\nendlevel 5524308\nendgame 5524308\nshowmessage 41852908\nclosemessage 41852908\n\n================\nCOLLISIONLAYERS\n================\nBackground\nwater\nEndPoint\nPlayer\nMoved\nFruit\nFRUITPICKED\ndeadfruit\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 | fruit ] -> cancel\n\n[ > player | water ] -> cancel\n\n[ > player | ] -> [ > player | > force ]\n\n[ > player | robotpiece | wall ] -> cancel\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] sfx2\n\n[ > force moving R1 perpendicular parent ] [ R0 ] -> [ moving R1 perpendicular parent ] [ > R0 ] sfx3\n[ > force moving R2 perpendicular parent ] [ R1 ] -> [ moving R2 perpendicular parent ] [ > R1 ] sfx3\n[ > force \t\tR3 perpendicular parent ] [ R2 ] -> [ R3 perpendicular parent ] [ > R2 ] sfx3\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 ] sfx0\n\n[ R0 R2 no explosion no explosion2] -> [ R0 R2 explosion ] sfx0\n[ R0 R3 no explosion no explosion2 ] -> [ R0 r3 explosion ] sfx0 \n[ R1 R3 no explosion no explosion2 ] -> [ R1 R3 explosion ] sfx0\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] sfx4\n[ action player ] [ R3 fruitpicked no fruit ] -> [ player ] [ r3 fruit ] sfx8\n\n[action player ] [ r3 no fruit no fruitpicked ] -> sfx6\n\n\n[ fruit endpoint ] -> [endpoint] sfx5\n[ fruit water ] -> [ deadfruit water ] sfx7\nlate [R0 water ] -> cancel\n[R0 fruit ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nno fruit\nno fruitpicked\nno deadfruit\n\n=======\nLEVELS\n=======\n\nmessage press x to grip and ungrip the mechanical arm\nmessage put fruit in hole\n\nmessage Level 1 of 3\n\n###################\n###################\n###################\n###..,........,.###\n###..,...3....,.###\n###..,...2....,.###\n###.F,.E.1.,,,F,###\n###..,...0....,.###\n###..,..P.....,.###\n###..,........,.###\n###################\n###################\n###################\n\nmessage Level 2 of 3\n\n##############\n##############\n##############\n###..3.....###\n###..2.....###\n###..1.,,,,###\n###.E0.,...###\n###....,FF.###\n###.P..,...###\n##############\n##############\n##############\n\nmessage Level 3 of 3 \n\n###################\n###################\n###################\n########........###\n###..3.#...##.f.###\n###..2..........###\n###..1...#....#.###\n###.e0..........###\n###..p..#...#.f.###\n#########.......###\n###################\n###################\n###################\n\nmessage congratulations\n\n",[3,2,3,1,1,0,0,0,3,1,2,3,3,2,3,0,3,3,0,2,1,1,1,0,0,0,0,3,3,2,1,1,2,2,2,3,3,1,4],"background wall: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,\n0,0,0,0,background:1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,\n1,background fruit:2,1,1,1,0,0,0,0,0,0,background water:3,3,3,3,3,3,3,0,\n0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,1,\n1,1,background endpoint force:4,1,1,background force:5,0,0,0,0,0,0,1,1,5,1,1,5,1,\n0,0,0,0,0,0,1,1,5,1,1,5,1,background force wall:6,0,0,0,0,0,\n5,1,1,1,1,5,5,0,0,0,0,0,0,1,1,1,3,1,background force player:7,\n5,0,0,0,0,0,0,1,1,1,3,1,1,1,0,0,0,0,0,\n0,1,5,1,3,1,background connector_right r0_right:8,5,0,0,0,0,0,0,3,3,3,background connector_down fruitpicked r3:9,background connector_down connector_up r2_up water:10,\nbackground connector_left connector_up force r1_up water:11,3,0,0,0,0,0,0,1,1,1,3,1,1,1,0,0,0,0,\n0,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,\n",3,"1627890876560.982"] + ["(\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 Robot Arm\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\ncolor_palette c64\n\nrun_rules_on_level_start\n\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground .\ndarkblue\n\nPlayer P\nBlack orange grey Blue\n.111.\n.111.\n22222\n13331\n.3.3.\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.010.\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 #\ndarkgrey grey lightgrey\n00000\n01110\n01010\n01110\n00000\n\nwater ,\nblue lightblue\n00000\n00010\n00000\n00000\n01000\n\nFruit F\nRed Green LightRed\n..1..\n.000.\n00020\n00000\n.000.\n\n\nFruitPicked G\nRed Green LightRed grey grey\n..4..\n.030.\n43334\n00300\n.040.\n\nDeadFruit \nblack black black black black\n..4..\n.030.\n43334\n00300\n.040.\n\nEndPoint E\ndarkgreen Yellow black green\n30003\n02220\n02220\n02220\n30003\n\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\nsfx0 43004308 (explosion)\nsfx1 69392707\nsfx2 57370907 (push machine)\nsfx3 62083508 (rotate machine)\nsfx4 90419908 (grab)\nsfx5 50782902 (drop in hole)\nsfx6 76878101 (empty grab)\nsfx7 13941101 (dead fruit)\nsfx8 42541302 (release)\nPlayer move 88476108\nstartgame 30513908\nendlevel 5524308\nendgame 5524308\nshowmessage 41852908\nclosemessage 41852908\n\n================\nCOLLISIONLAYERS\n================\nBackground\nwater\nEndPoint\nPlayer\nMoved\nFruit\nFRUITPICKED\ndeadfruit\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 | fruit ] -> cancel\n\n[ > player | water ] -> cancel\n\n[ > player | ] -> [ > player | > force ]\n\n[ > player | robotpiece | wall ] -> cancel\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] sfx2\n\n[ > force moving R1 perpendicular parent ] [ R0 ] -> [ moving R1 perpendicular parent ] [ > R0 ] sfx3\n[ > force moving R2 perpendicular parent ] [ R1 ] -> [ moving R2 perpendicular parent ] [ > R1 ] sfx3\n[ > force \t\tR3 perpendicular parent ] [ R2 ] -> [ R3 perpendicular parent ] [ > R2 ] sfx3\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 ] sfx0\n\n[ R0 R2 no explosion no explosion2] -> [ R0 R2 explosion ] sfx0\n[ R0 R3 no explosion no explosion2 ] -> [ R0 r3 explosion ] sfx0 \n[ R1 R3 no explosion no explosion2 ] -> [ R1 R3 explosion ] sfx0\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] sfx4\n[ action player ] [ R3 fruitpicked no fruit ] -> [ player ] [ r3 fruit ] sfx8\n\n[action player ] [ r3 no fruit no fruitpicked ] -> sfx6\n\n\n[ fruit endpoint ] -> [endpoint] sfx5\n[ fruit water ] -> [ deadfruit water ] sfx7\nlate [R0 water ] -> cancel\n[R0 fruit ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nno fruit\nno fruitpicked\nno deadfruit\n\n=======\nLEVELS\n=======\n\nmessage press x to grip and ungrip the mechanical arm\nmessage put fruit in hole\n\nmessage Level 1 of 3\n\n###################\n###################\n###################\n###..,........,.###\n###..,...3....,.###\n###..,...2....,.###\n###.F,.E.1.,,,F,###\n###..,...0....,.###\n###..,..P.....,.###\n###..,........,.###\n###################\n###################\n###################\n\nmessage Level 2 of 3\n\n##############\n##############\n##############\n###..3.....###\n###..2.....###\n###..1.,,,,###\n###.E0.,...###\n###....,FF.###\n###.P..,...###\n##############\n##############\n##############\n\nmessage Level 3 of 3 \n\n###################\n###################\n###################\n########........###\n###..3.#...##.f.###\n###..2..........###\n###..1...#....#.###\n###.e0..........###\n###..p..#...#.f.###\n#########.......###\n###################\n###################\n###################\n\nmessage congratulations\n\n", [3, 2, 3, 1, 1, 0, 0, 0, 3, 1, 2, 3, 3, 2, 3, 0, 3, 3, 0, 2, 1, 1, 1, 0, 0, 0, 0, 3, 3, 2, 1, 1, 2, 2, 2, 3, 3, 1, 4], "background wall: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,\n0,0,0,0,background:1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,\n1,background fruit:2,1,1,1,0,0,0,0,0,0,background water:3,3,3,3,3,3,3,0,\n0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,1,\n1,1,background endpoint force:4,1,1,background force:5,0,0,0,0,0,0,1,1,5,1,1,5,1,\n0,0,0,0,0,0,1,1,5,1,1,5,1,background force wall:6,0,0,0,0,0,\n5,1,1,1,1,5,5,0,0,0,0,0,0,1,1,1,3,1,background force player:7,\n5,0,0,0,0,0,0,1,1,1,3,1,1,1,0,0,0,0,0,\n0,1,5,1,3,1,background connector_right r0_right:8,5,0,0,0,0,0,0,3,3,3,background connector_down fruitpicked r3:9,background connector_down connector_up r2_up water:10,\nbackground connector_left connector_up force r1_up water:11,3,0,0,0,0,0,0,1,1,1,3,1,1,1,0,0,0,0,\n0,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,\n", 3, "1627890876560.982"] ], [ `increpare game: snortal`, -["title Snortal\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nnorepeat_action\n\nverbose_logging\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground \nbrown\n\ncounter ,\ngrey black\n11111\n10101\n11111\n10101\n11111\n\nportalmade\nred blue black\n20212\n20012\n20212\n20112\n20212\n\n\nfloor .\nbrown\n\nwall #\ngrey\n\nSnakeBod *\ngreen\n.000.\n00000\n00000\n00000\n.000.\n\nSnakeUp U\ngreen \n.000.\n0.0.0\n00000\n00000\n.000.\n\nSnakeDown D\ngreen \n.000.\n00000\n00000\n0.0.0\n.000.\n\nSnakeLeft L\ngreen \n.000.\n0.000\n00000\n0.000\n.000.\n\n\nSnakeRight R\ngreen \n.000.\n000.0\n00000\n000.0\n.000.\n\n\n\nPortalUpR\nred \n.000.\n.....\n.....\n.....\n.....\n\nPortalDownR\nred \n.....\n.....\n.....\n.....\n.000.\n\nPortalLeftR\nred \n.....\n0....\n0....\n0....\n.....\n\nPortalRightR\nred \n.....\n....0\n....0\n....0\n.....\n\nPortalUpB\nblue \n.000.\n.....\n.....\n.....\n.....\n\nPortalDownB\nblue \n.....\n.....\n.....\n.....\n.000.\n\nPortalLeftB\nblue \n.....\n0....\n0....\n0....\n.....\n\nPortalRightB\nblue \n.....\n....0\n....0\n....0\n.....\n\nRed\nred\n.000.\n00000\n00000\n00000\n.000.\n\nBlue\nblue\n.000.\n00000\n00000\n00000\n.000.\n\n\nold\nblack\n\nexit\norange\n\nenter\nyellow\n\nportaltarget\npink\n\ntemp \nblack\n\n=======\nLEGEND\n=======\n\n\nPlayer = SnakeUp or SnakeDown or SnakeLeft or SnakeRight\nObstacle = SnakeBod or Wall\nColor = red or blue\nsnaketotality = player or snakebod\n\nPortalUp = PortalUpR or PortalUpB\nPortalDown = PortalDownR or PortalDownB\nPortalLeft = PortalLeftR or PortalLeftB\nPortalRight = PortalRightR or PortalRightB\n\nPortalR = PortalUpR or PortalDownR or PortalLeftR or PortalRightR\nPortalB = PortalUpB or PortalDownB or PortalLeftB or PortalRightB\n\nPortal = PortalUp or PortalDown or PortalLeft or PortalRight\n\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nCounter\nPortalmade\nFloor\nWall \nColor\nPlayer, SnakeBod\nPortal\nOld\nExit, Enter\nportaltarget\ntemp\n\n======\nRULES\n======\n\n[ player no color ] -> [player red]\n\n\n[portal ] -> [old portal]\n\n\n[portalleft]->[left portalleft]\n[portalright]->[right portalright]\n[portalup]->[up portalup]\n[portaldown]->[down portaldown]\n\n[player ] -> [ player temp]\nup [ action snakeup temp | ... | obstacle ] -> [ action snakeup | ... | obstacle portaltarget ] \ndown [ action snakedown temp | ... | obstacle ] -> [ action snakedown | ... | obstacle portaltarget ] \nleft [ action snakeleft temp | ... | obstacle ] -> [ action snakeleft | ... | obstacle portaltarget ] \nright [ action snakeright temp | ... | obstacle ] -> [ action snakeright | ... | obstacle portaltarget ] \n[temp]->[]\n[portaltarget portal ] -> cancel\n\n[ > player | < portal ] -> [ > player | < portal enter ]\n\n[ > portal no enter | no obstacle no player ] [enter] [player] [counter] -> [ > portal | exit ] [ enter ] [ snakebod ] [portalmade] \n\n\n[ up portal | exit ] -> [ up portal | snakeup ]\n[ down portal | exit ] -> [ down portal | snakedown ]\n[ left portal | exit ] -> [ left portal | snakeleft ]\n[ right portal | exit ] -> [ right portal | snakeright ]\n[color no player ] [ player ] -> [] [color player]\n\n[ up player exit ] -> [ snakeup ]\n[ down player exit ] -> [ snakedown ]\n[ left player exit ] -> [ snakeleft ]\n[ right player exit ] -> [ snakeright ]\n\n[ > snakebod ] -> [snakebod]\n\n[ > portal ] -> [ portal ]\n\n[ > Player | Obstacle ] -> [ Player | Obstacle ]\nup [ up Player Color | No Obstacle ] -> [ SnakeBod | SnakeUp Color ] \ndown [ down Player Color | No Obstacle ] -> [ SnakeBod | SnakeDown Color ] \nleft [ left Player Color | No Obstacle ] -> [ SnakeBod | SnakeLeft Color ] \nright [ right Player Color | No Obstacle ] -> [ SnakeBod | SnakeRight Color ] \n\nright [ action snakeright Red | ... | Obstacle No Portal ] -> [snakeright Blue | ... | Obstacle PortalLeftR ]\nright [ action snakeright Blue | ... | Obstacle No Portal ] -> [snakeright Red | ... | Obstacle PortalLeftB ]\n\nleft [ action snakeleft Red | ... | Obstacle No Portal ] -> [snakeleft Blue | ... | Obstacle PortalRightR ]\nleft [ action snakeleft Blue | ... | Obstacle No Portal ] -> [snakeleft Red | ... | Obstacle PortalRightB ]\n\nup [ action snakeup Red | ... | Obstacle No Portal ] -> [snakeup Blue | ... | Obstacle PortalDownR ]\nup [ action snakeup Blue | ... | Obstacle No Portal ] -> [snakeup Red | ... | Obstacle PortalDownB ]\n\ndown [ action snakedown Red | ... | Obstacle No Portal ] -> [snakedown Blue | ... | Obstacle PortalupR ]\ndown [ action snakedown Blue | ... | Obstacle No Portal ] -> [snakedown Red | ... | Obstacle PortalupB ]\n\n\n\n[old portalB] [no old portalB] -> [] [portalB]\n[old portalR] [no old portalR] -> [] [portalR]\n[old] -> []\n\n[enter] -> []\n[exit] -> []\n\n[portaltarget]->[]\n\n==============\nWINCONDITIONS\n==============\nno counter\n\n=======\nLEVELS\n=======\n\n\n,,,,,,,\n#######\n#.....#\n#.....#\n#..U..#\n#.....#\n#.....#\n#######\n\n",[1,1,2,2,3,0,4,3,3,"restart",4,3,4,3,3,3,1,"undo","undo",3,0,2,1,1,2,4,2,3,4,3,3,3,3],"background portalmade:0,background wall:1,1,1,1,1,1,\n1,0,1,background floor:2,background floor snakebod:3,3,3,\nbackground floor red snakeup:4,background portalupr wall:5,background counter:6,1,2,3,2,\n3,2,1,6,1,3,3,\nbackground snakebod:7,3,2,1,6,1,2,\n2,3,3,2,1,6,1,\n2,2,3,3,2,1,6,\n1,1,1,1,background portalleftb wall:8,1,1,\n",0,"1627888906100.3608"] + ["title Snortal\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nnorepeat_action\n\nverbose_logging\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground \nbrown\n\ncounter ,\ngrey black\n11111\n10101\n11111\n10101\n11111\n\nportalmade\nred blue black\n20212\n20012\n20212\n20112\n20212\n\n\nfloor .\nbrown\n\nwall #\ngrey\n\nSnakeBod *\ngreen\n.000.\n00000\n00000\n00000\n.000.\n\nSnakeUp U\ngreen \n.000.\n0.0.0\n00000\n00000\n.000.\n\nSnakeDown D\ngreen \n.000.\n00000\n00000\n0.0.0\n.000.\n\nSnakeLeft L\ngreen \n.000.\n0.000\n00000\n0.000\n.000.\n\n\nSnakeRight R\ngreen \n.000.\n000.0\n00000\n000.0\n.000.\n\n\n\nPortalUpR\nred \n.000.\n.....\n.....\n.....\n.....\n\nPortalDownR\nred \n.....\n.....\n.....\n.....\n.000.\n\nPortalLeftR\nred \n.....\n0....\n0....\n0....\n.....\n\nPortalRightR\nred \n.....\n....0\n....0\n....0\n.....\n\nPortalUpB\nblue \n.000.\n.....\n.....\n.....\n.....\n\nPortalDownB\nblue \n.....\n.....\n.....\n.....\n.000.\n\nPortalLeftB\nblue \n.....\n0....\n0....\n0....\n.....\n\nPortalRightB\nblue \n.....\n....0\n....0\n....0\n.....\n\nRed\nred\n.000.\n00000\n00000\n00000\n.000.\n\nBlue\nblue\n.000.\n00000\n00000\n00000\n.000.\n\n\nold\nblack\n\nexit\norange\n\nenter\nyellow\n\nportaltarget\npink\n\ntemp \nblack\n\n=======\nLEGEND\n=======\n\n\nPlayer = SnakeUp or SnakeDown or SnakeLeft or SnakeRight\nObstacle = SnakeBod or Wall\nColor = red or blue\nsnaketotality = player or snakebod\n\nPortalUp = PortalUpR or PortalUpB\nPortalDown = PortalDownR or PortalDownB\nPortalLeft = PortalLeftR or PortalLeftB\nPortalRight = PortalRightR or PortalRightB\n\nPortalR = PortalUpR or PortalDownR or PortalLeftR or PortalRightR\nPortalB = PortalUpB or PortalDownB or PortalLeftB or PortalRightB\n\nPortal = PortalUp or PortalDown or PortalLeft or PortalRight\n\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nCounter\nPortalmade\nFloor\nWall \nColor\nPlayer, SnakeBod\nPortal\nOld\nExit, Enter\nportaltarget\ntemp\n\n======\nRULES\n======\n\n[ player no color ] -> [player red]\n\n\n[portal ] -> [old portal]\n\n\n[portalleft]->[left portalleft]\n[portalright]->[right portalright]\n[portalup]->[up portalup]\n[portaldown]->[down portaldown]\n\n[player ] -> [ player temp]\nup [ action snakeup temp | ... | obstacle ] -> [ action snakeup | ... | obstacle portaltarget ] \ndown [ action snakedown temp | ... | obstacle ] -> [ action snakedown | ... | obstacle portaltarget ] \nleft [ action snakeleft temp | ... | obstacle ] -> [ action snakeleft | ... | obstacle portaltarget ] \nright [ action snakeright temp | ... | obstacle ] -> [ action snakeright | ... | obstacle portaltarget ] \n[temp]->[]\n[portaltarget portal ] -> cancel\n\n[ > player | < portal ] -> [ > player | < portal enter ]\n\n[ > portal no enter | no obstacle no player ] [enter] [player] [counter] -> [ > portal | exit ] [ enter ] [ snakebod ] [portalmade] \n\n\n[ up portal | exit ] -> [ up portal | snakeup ]\n[ down portal | exit ] -> [ down portal | snakedown ]\n[ left portal | exit ] -> [ left portal | snakeleft ]\n[ right portal | exit ] -> [ right portal | snakeright ]\n[color no player ] [ player ] -> [] [color player]\n\n[ up player exit ] -> [ snakeup ]\n[ down player exit ] -> [ snakedown ]\n[ left player exit ] -> [ snakeleft ]\n[ right player exit ] -> [ snakeright ]\n\n[ > snakebod ] -> [snakebod]\n\n[ > portal ] -> [ portal ]\n\n[ > Player | Obstacle ] -> [ Player | Obstacle ]\nup [ up Player Color | No Obstacle ] -> [ SnakeBod | SnakeUp Color ] \ndown [ down Player Color | No Obstacle ] -> [ SnakeBod | SnakeDown Color ] \nleft [ left Player Color | No Obstacle ] -> [ SnakeBod | SnakeLeft Color ] \nright [ right Player Color | No Obstacle ] -> [ SnakeBod | SnakeRight Color ] \n\nright [ action snakeright Red | ... | Obstacle No Portal ] -> [snakeright Blue | ... | Obstacle PortalLeftR ]\nright [ action snakeright Blue | ... | Obstacle No Portal ] -> [snakeright Red | ... | Obstacle PortalLeftB ]\n\nleft [ action snakeleft Red | ... | Obstacle No Portal ] -> [snakeleft Blue | ... | Obstacle PortalRightR ]\nleft [ action snakeleft Blue | ... | Obstacle No Portal ] -> [snakeleft Red | ... | Obstacle PortalRightB ]\n\nup [ action snakeup Red | ... | Obstacle No Portal ] -> [snakeup Blue | ... | Obstacle PortalDownR ]\nup [ action snakeup Blue | ... | Obstacle No Portal ] -> [snakeup Red | ... | Obstacle PortalDownB ]\n\ndown [ action snakedown Red | ... | Obstacle No Portal ] -> [snakedown Blue | ... | Obstacle PortalupR ]\ndown [ action snakedown Blue | ... | Obstacle No Portal ] -> [snakedown Red | ... | Obstacle PortalupB ]\n\n\n\n[old portalB] [no old portalB] -> [] [portalB]\n[old portalR] [no old portalR] -> [] [portalR]\n[old] -> []\n\n[enter] -> []\n[exit] -> []\n\n[portaltarget]->[]\n\n==============\nWINCONDITIONS\n==============\nno counter\n\n=======\nLEVELS\n=======\n\n\n,,,,,,,\n#######\n#.....#\n#.....#\n#..U..#\n#.....#\n#.....#\n#######\n\n", [1, 1, 2, 2, 3, 0, 4, 3, 3, "restart", 4, 3, 4, 3, 3, 3, 1, "undo", "undo", 3, 0, 2, 1, 1, 2, 4, 2, 3, 4, 3, 3, 3, 3], "background portalmade:0,background wall:1,1,1,1,1,1,\n1,0,1,background floor:2,background floor snakebod:3,3,3,\nbackground floor red snakeup:4,background portalupr wall:5,background counter:6,1,2,3,2,\n3,2,1,6,1,3,3,\nbackground snakebod:7,3,2,1,6,1,2,\n2,3,3,2,1,6,1,\n2,2,3,3,2,1,6,\n1,1,1,1,background portalleftb wall:8,1,1,\n", 0, "1627888906100.3608"] ], [ `increpare game: you complete me`, -["title You Complete Me\nauthor Stephen Lavelle\nhomepage www.increpare.com\nrun_rules_on_level_start\n\nverbose_logging\nnoaction \n\n========\nOBJECTS\n========\n\nBackground \nGREEN \n\nTarget \nDarkBlue \n\nWall \nBROWN\n\nPlayer \nred \n.....\n.000.\n.000.\n.000.\n.....\n\nCrate \nOrange \n\nSUP \ntransparent\n\nSDOWN\ntransparent\n\nSLEFT\ntransparent\n\nSRIGHT\ntransparent\n\nice \nlightblue\n\nfreshice\nblue\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\ni = ice\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nmarker = SUP or SDOWN or SLEFT or SRIGHT\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nice, freshice\nTarget\nPlayer, Wall, Crate\nSUP, SDOWN, SLEFT, SRIGHT\n\n======\nRULES \n====== \n\n[> player | wall] -> cancel\nlate up [SUP] [|player] -> [SUP] [ice|player]\nlate down [SDOWN] [|player] -> [SDOWN] [ice|player]\nlate left [SLEFT] [|player] -> [SLEFT] [ice|player]\nlate right [SRIGHT] [|player] -> [SRIGHT] [ice|player]\n\nup [SUP] [Player ice | no wall ] -> [SUP] [ > Player ice | ] again\ndown [SDOWN] [Player ice | no wall ] -> [SDOWN] [ > Player ice | ] again\nleft [SLEFT] [Player ice | no wall ] -> [SLEFT] [ > Player ice | ] again\nright [SRIGHT] [Player ice | no wall ] -> [SRIGHT] [ > Player ice | ] again\n\n\n[marker]->[]\n\n\n[ > player ] -> [ > player ] again\nup [ > player ] -> [ > player sup ]\ndown [ > player ] -> [ > player sdown ]\nleft [ > player ] -> [ > player sleft ]\nright [ > player ] -> [ > player sright ]\n\n[ stationary player ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\n\n======= \nLEVELS\n=======\n\n###############\n##.#.#.#.#.#.##\n#.............#\n##.#.#.#.#.#.##\n#.............#\n##.#.#.#.#.#.##\n#.............#\n##.#.#.#.#.#.##\n#.............#\n##.#.#.#.#.#.##\n#......p......#\n##.#.#.#.#.#.##\n###############\n",[3,3,3,0,0,1,1,1,1,2,2,3,3,0,0,1,1],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\nbackground:1,0,1,0,1,0,1,0,1,0,0,0,1,1,1,\n1,1,1,1,1,1,1,1,0,0,0,1,0,1,0,\n1,0,1,0,1,0,0,0,1,1,1,1,1,1,1,\n1,1,1,1,0,0,0,1,0,1,0,1,0,background player:2,0,\n1,0,0,0,1,1,1,1,1,1,1,background ice sleft:3,background ice:4,4,1,\n0,0,0,1,0,1,0,1,0,4,0,4,0,0,0,\n1,1,1,1,1,1,1,4,1,4,1,0,0,0,1,\n0,1,0,1,0,4,0,4,0,0,0,1,1,1,1,\n1,1,1,4,4,4,1,0,0,0,1,0,1,0,1,\n0,4,0,4,0,0,0,1,1,1,1,1,1,1,4,\n4,4,1,0,0,0,1,0,1,0,1,0,1,0,1,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",0,"1627888927321.9932"] + ["title You Complete Me\nauthor Stephen Lavelle\nhomepage www.increpare.com\nrun_rules_on_level_start\n\nverbose_logging\nnoaction \n\n========\nOBJECTS\n========\n\nBackground \nGREEN \n\nTarget \nDarkBlue \n\nWall \nBROWN\n\nPlayer \nred \n.....\n.000.\n.000.\n.000.\n.....\n\nCrate \nOrange \n\nSUP \ntransparent\n\nSDOWN\ntransparent\n\nSLEFT\ntransparent\n\nSRIGHT\ntransparent\n\nice \nlightblue\n\nfreshice\nblue\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\ni = ice\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nmarker = SUP or SDOWN or SLEFT or SRIGHT\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nice, freshice\nTarget\nPlayer, Wall, Crate\nSUP, SDOWN, SLEFT, SRIGHT\n\n======\nRULES \n====== \n\n[> player | wall] -> cancel\nlate up [SUP] [|player] -> [SUP] [ice|player]\nlate down [SDOWN] [|player] -> [SDOWN] [ice|player]\nlate left [SLEFT] [|player] -> [SLEFT] [ice|player]\nlate right [SRIGHT] [|player] -> [SRIGHT] [ice|player]\n\nup [SUP] [Player ice | no wall ] -> [SUP] [ > Player ice | ] again\ndown [SDOWN] [Player ice | no wall ] -> [SDOWN] [ > Player ice | ] again\nleft [SLEFT] [Player ice | no wall ] -> [SLEFT] [ > Player ice | ] again\nright [SRIGHT] [Player ice | no wall ] -> [SRIGHT] [ > Player ice | ] again\n\n\n[marker]->[]\n\n\n[ > player ] -> [ > player ] again\nup [ > player ] -> [ > player sup ]\ndown [ > player ] -> [ > player sdown ]\nleft [ > player ] -> [ > player sleft ]\nright [ > player ] -> [ > player sright ]\n\n[ stationary player ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\n\n======= \nLEVELS\n=======\n\n###############\n##.#.#.#.#.#.##\n#.............#\n##.#.#.#.#.#.##\n#.............#\n##.#.#.#.#.#.##\n#.............#\n##.#.#.#.#.#.##\n#.............#\n##.#.#.#.#.#.##\n#......p......#\n##.#.#.#.#.#.##\n###############\n", [3, 3, 3, 0, 0, 1, 1, 1, 1, 2, 2, 3, 3, 0, 0, 1, 1], "background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\nbackground:1,0,1,0,1,0,1,0,1,0,0,0,1,1,1,\n1,1,1,1,1,1,1,1,0,0,0,1,0,1,0,\n1,0,1,0,1,0,0,0,1,1,1,1,1,1,1,\n1,1,1,1,0,0,0,1,0,1,0,1,0,background player:2,0,\n1,0,0,0,1,1,1,1,1,1,1,background ice sleft:3,background ice:4,4,1,\n0,0,0,1,0,1,0,1,0,4,0,4,0,0,0,\n1,1,1,1,1,1,1,4,1,4,1,0,0,0,1,\n0,1,0,1,0,4,0,4,0,0,0,1,1,1,1,\n1,1,1,4,4,4,1,0,0,0,1,0,1,0,1,\n0,4,0,4,0,0,0,1,1,1,1,1,1,1,4,\n4,4,1,0,0,0,1,0,1,0,1,0,1,0,1,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 0, "1627888927321.9932"] ], [ `increpare game: `, -["(\n\tescape snake\n)\n\ntitle 8 Happy Snakes\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nverbose_logging\n\ncolor_palette 1\n\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\ndarkblue\n\nHead\nLightGreen\n\nBody\nGreen\n\nWall\nblue\n\nT\npink\n\ngoodtarget\nwhite\n.....\n.....\n..0..\n.....\n.....\n\ntarget /\nyellow\n.....\n.....\n..0..\n.....\n.....\n\nbadtarget \ngray\n.....\n.....\n..0..\n.....\n.....\n\nVBarrier |\nred\n..0..\n.....\n..0..\n.....\n..0..\n\nHBarrier -\nred\n.....\n.....\n0.0.0\n.....\n.....\n\nHVBarrier +\nred\n..0..\n.....\n0.0.0\n.....\n..0..\n\nCollectable *\norange\n.....\n..0..\n.000.\n..0..\n.....\n\nStarSpawn S\ngray\n.....\n..0..\n.000.\n..0..\n.....\n\n=======\nLEGEND\n=======\n\nBarrier = HBarrier or VBarrier or HVBarrier\n\nPlayer = Head\n\n. = Background\n# = Wall\nP = Player\n\n@ = Player and Target\n\nThing = Wall or Player or Body\n\nworm = head or body\n\n=======\nSOUNDS\n=======\n\ncancel 95340304\nsfx1 78274500\nsfx2 14526700\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nHead, Wall, Body\nstarspawn\nTarget\nT, Barrier, Collectable\ngoodtarget\nbadtarget\n======\nRULES\n======\n\n[badtarget]->[]\n[goodtarget]->[]\n[ > Head | Barrier ] -> cancel\n\n[ > Head | No Thing ] -> [ Body | Head ]\n\n[ > Head | Wall ] [ Body ] -> [ > Head | Wall ] [ < Body ]\n\n[ > Body | Wall ] -> cancel\n\n[ Wall | > Head | Wall ] -> cancel\n\n[ | > Head | Wall ] -> [ T | Head | Wall ]\n\nlate [ T Body ] -> cancel\nlate [ T ] -> [ Body ]\n\nlate [ Collectable Worm ] -> [ Worm ] Sfx1\n\nlate [Starspawn] -> [Starspawn Collectable]\nlate [ worm no target ] [Starspawn Collectable] -> [ worm] [Starspawn]\nlate [ target no worm ] [Starspawn Collectable] -> [ target ] [Starspawn]\n\nlate [starspawn collectable ]->[collectable] sfx2\n\nlate [collectable] [target]->[collectable] []\nlate [collectable] [goodtarget]->[collectable] []\nlate [collectable] [badtarget]->[collectable] []\n\nlate [ worm target ] -> [ worm target goodtarget ]\nlate [ worm no target ] [ target] -> [worm] [target badtarget]\n\n==============\nWINCONDITIONS\n==============\n\nNo Collectable\nno starspawn\n\n=======\nLEVELS\n=======\n\nMessage 1 of 8\n\n#################\n#...............#\n#...............#\n#.......P.......#\n#...............#\n#...............#\n#......*.*......#\n#...............#\n#......*.*......#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\nMessage 2 of 8\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#......@//......#\n#....../S/......#\n#......///......#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\nMessage 3 of 8\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#...../.P.......#\n#...../S........#\n#.....///#......#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\nMessage 4 of 8\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#.......P.///...#\n#........./S/...#\n#........#///...#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\n\nMessage 5 of 8\n\n#################\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.*.......#\n#.....|....P....#\n#.....|.........#\n#..*..|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#################\n\nMessage 6 of 8\n\n#################\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|....P....#\n#.....|.........#\n#..*..|#........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#################\n\nMessage 7 of 8\n###################\n#+---------------+#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.p.......|#\n#|.....|.........|#\n#|..*.#|....#....|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#+---------------+#\n###################\n\n\nMessage 8 of 8\n\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#.......S.......#\n#.....///...#...#\n#...../.@////...#\n#.....///..//...#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n",[3,0,1,1,1,1,2,2,2,1,1,2,3,3,0,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,background:1,1,\n1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,background collectable:2,\n1,1,1,1,0,0,1,1,1,1,1,1,1,background body:3,3,1,1,\n1,0,0,1,1,1,1,3,3,3,3,3,1,1,1,0,0,\nbackground vbarrier:4,4,4,4,background body vbarrier:5,4,4,5,5,4,4,4,0,0,1,1,1,\n1,3,1,1,3,1,1,1,1,0,0,1,1,1,1,3,3,\n1,3,1,1,1,1,0,0,1,1,1,1,3,3,1,3,1,\n1,1,1,0,0,1,1,1,1,1,1,1,3,1,1,1,1,\n0,0,1,1,1,1,1,1,1,3,1,1,1,1,0,0,1,\n1,1,1,1,1,1,3,1,1,1,1,0,0,1,1,1,1,\n1,1,1,3,1,1,1,1,0,0,1,1,1,1,1,1,1,\n3,1,1,1,1,0,0,1,1,1,1,1,1,1,background head:6,1,1,\n1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",9,"1627888950120.6284"] + ["(\n\tescape snake\n)\n\ntitle 8 Happy Snakes\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nverbose_logging\n\ncolor_palette 1\n\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\ndarkblue\n\nHead\nLightGreen\n\nBody\nGreen\n\nWall\nblue\n\nT\npink\n\ngoodtarget\nwhite\n.....\n.....\n..0..\n.....\n.....\n\ntarget /\nyellow\n.....\n.....\n..0..\n.....\n.....\n\nbadtarget \ngray\n.....\n.....\n..0..\n.....\n.....\n\nVBarrier |\nred\n..0..\n.....\n..0..\n.....\n..0..\n\nHBarrier -\nred\n.....\n.....\n0.0.0\n.....\n.....\n\nHVBarrier +\nred\n..0..\n.....\n0.0.0\n.....\n..0..\n\nCollectable *\norange\n.....\n..0..\n.000.\n..0..\n.....\n\nStarSpawn S\ngray\n.....\n..0..\n.000.\n..0..\n.....\n\n=======\nLEGEND\n=======\n\nBarrier = HBarrier or VBarrier or HVBarrier\n\nPlayer = Head\n\n. = Background\n# = Wall\nP = Player\n\n@ = Player and Target\n\nThing = Wall or Player or Body\n\nworm = head or body\n\n=======\nSOUNDS\n=======\n\ncancel 95340304\nsfx1 78274500\nsfx2 14526700\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nHead, Wall, Body\nstarspawn\nTarget\nT, Barrier, Collectable\ngoodtarget\nbadtarget\n======\nRULES\n======\n\n[badtarget]->[]\n[goodtarget]->[]\n[ > Head | Barrier ] -> cancel\n\n[ > Head | No Thing ] -> [ Body | Head ]\n\n[ > Head | Wall ] [ Body ] -> [ > Head | Wall ] [ < Body ]\n\n[ > Body | Wall ] -> cancel\n\n[ Wall | > Head | Wall ] -> cancel\n\n[ | > Head | Wall ] -> [ T | Head | Wall ]\n\nlate [ T Body ] -> cancel\nlate [ T ] -> [ Body ]\n\nlate [ Collectable Worm ] -> [ Worm ] Sfx1\n\nlate [Starspawn] -> [Starspawn Collectable]\nlate [ worm no target ] [Starspawn Collectable] -> [ worm] [Starspawn]\nlate [ target no worm ] [Starspawn Collectable] -> [ target ] [Starspawn]\n\nlate [starspawn collectable ]->[collectable] sfx2\n\nlate [collectable] [target]->[collectable] []\nlate [collectable] [goodtarget]->[collectable] []\nlate [collectable] [badtarget]->[collectable] []\n\nlate [ worm target ] -> [ worm target goodtarget ]\nlate [ worm no target ] [ target] -> [worm] [target badtarget]\n\n==============\nWINCONDITIONS\n==============\n\nNo Collectable\nno starspawn\n\n=======\nLEVELS\n=======\n\nMessage 1 of 8\n\n#################\n#...............#\n#...............#\n#.......P.......#\n#...............#\n#...............#\n#......*.*......#\n#...............#\n#......*.*......#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\nMessage 2 of 8\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#......@//......#\n#....../S/......#\n#......///......#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\nMessage 3 of 8\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#...../.P.......#\n#...../S........#\n#.....///#......#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\nMessage 4 of 8\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#.......P.///...#\n#........./S/...#\n#........#///...#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\n\nMessage 5 of 8\n\n#################\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.*.......#\n#.....|....P....#\n#.....|.........#\n#..*..|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#################\n\nMessage 6 of 8\n\n#################\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|....P....#\n#.....|.........#\n#..*..|#........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#################\n\nMessage 7 of 8\n###################\n#+---------------+#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.p.......|#\n#|.....|.........|#\n#|..*.#|....#....|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#+---------------+#\n###################\n\n\nMessage 8 of 8\n\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#.......S.......#\n#.....///...#...#\n#...../.@////...#\n#.....///..//...#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n", [3, 0, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 3, 3, 0, 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,background:1,1,\n1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,background collectable:2,\n1,1,1,1,0,0,1,1,1,1,1,1,1,background body:3,3,1,1,\n1,0,0,1,1,1,1,3,3,3,3,3,1,1,1,0,0,\nbackground vbarrier:4,4,4,4,background body vbarrier:5,4,4,5,5,4,4,4,0,0,1,1,1,\n1,3,1,1,3,1,1,1,1,0,0,1,1,1,1,3,3,\n1,3,1,1,1,1,0,0,1,1,1,1,3,3,1,3,1,\n1,1,1,0,0,1,1,1,1,1,1,1,3,1,1,1,1,\n0,0,1,1,1,1,1,1,1,3,1,1,1,1,0,0,1,\n1,1,1,1,1,1,3,1,1,1,1,0,0,1,1,1,1,\n1,1,1,3,1,1,1,1,0,0,1,1,1,1,1,1,1,\n3,1,1,1,1,0,0,1,1,1,1,1,1,1,background head:6,1,1,\n1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 9, "1627888950120.6284"] ], [ `increpare game: happy kraken`, -["\n(\n\tSteps: \n \t- correctly draw selected hand\n \t- move selected hand and \n - move hand and create correct snake behind it\n \t- propagate power along arms at the start of each turn (as a late evaluation?)\n\t\t- action to select hand\n)\n\ntitle Hungry Kraken\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnorepeat_action\n\nverbose_logging\n\n========\nOBJECTS\n========\n\ndarkbrown 1\ndarkbrown\n\nbrown 2\nbrown\n\nwhite 3\nwhite\n\nred 4\nred\n\ngray 5\ngray\n\ndarkgray 6\ndarkgray\n\nblue 7\nblue\n\nblack 8\nblack\n\nBackground \ndarkblue black\n00000\n00000\n00000\n00000\n00000\n\nblackwall +\nblack\n\ntopbrownWall =\ndarkbrown brown\n11111\n01000\n00000\n00010\n00000\n\n\nbrownWall \ndarkBROWN brown\n00000\n01000\n00000\n00010\n00000\n\nSelected\nred\n\nActivate\npurple\n\nNutrient E\ngreen\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nPlant P\ngray darkgray\n.000.\n01010\n01010\n.000.\n.111.\n\nFish *\ngray blue\n.....\n..0.0\n.010.\n..0.0\n.....\n\nMouth M\nred grey\n.....\n.....\n..0..\n.000.\n.000.\n\nBody \ngray white red red gray\n02120\n02120\n04440\n01310\n00000\n\nSHandU\nwhite yellow black\n.111.\n10001\n10101\n10101\n10101\n\nSHandD\nwhite yellow black\n10101\n10101\n10101\n10001\n.111.\n\nSHandL\nwhite yellow black\n.1111\n10000\n10111\n10000\n.1111\n\nSHandR\nwhite yellow black\n1111.\n00001\n11101\n00001\n1111.\n\n\n\nHandU\nwhite gray black\n.111.\n10001\n10101\n10101\n10101\n\nHandD\nwhite gray black\n10101\n10101\n10101\n10001\n.111.\n\nHandL\nwhite gray black\n.1111\n10000\n10111\n10000\n.1111\n\nHandR\nwhite gray black\n1111.\n00001\n11101\n00001\n1111.\n\n\n\nIHandU\ntransparent yellow black\n.111.\n10001\n10101\n10101\n22222\n\nIHandD\ntransparent yellow black\n22222\n10101\n10101\n10001\n.111.\n\nIHandL\ntransparent yellow black\n.1112\n10002\n10112\n10002\n.1112\n\nIHandR\ntransparent yellow black\n2111.\n20001\n21101\n20001\n2111.\n\n\n\nArmH \ngray white\n.....\n00000\n11111\n00000\n.....\n\nArmV \ngray white\n.010.\n.010.\n.010.\n.010.\n.010.\n\nArmDR\ngray white\n.....\n...00\n..011\n.0100\n.010.\n\nArmDL\ngray white\n.....\n00...\n110..\n0010.\n.010.\n\nArmUR\ngray white\n.010.\n.0100\n..011\n...00\n.....\n\nArmUL\ngray white\n.010.\n0010.\n110..\n00...\n.....\n\n\n\n\nIArmH \nblack transparent\n.....\n00000\n11111\n00000\n.....\n\nIArmV \nblack transparent\n.010.\n.010.\n.010.\n.010.\n.010.\n\nIArmDR\nblack transparent\n.....\n.0000\n.0111\n.0100\n.010.\n\nIArmDL\nblack transparent\n.....\n0000.\n1110.\n0010.\n.010.\n\nIArmUR\nblack transparent\n.010.\n.0100\n.0111\n.0000\n.....\n\nIArmUL\nblack transparent\n.010.\n0010.\n1110.\n0000.\n.....\n\nT1\nred\n\nT_Slurp\nblue\n\nT_Grow\nyellow\n\nT_HandExtendToken\ngray\n\nT_Nutrient\npurple\n\nMARKER\nyellow yellow\n11111\n1...1\n1...1\n1...1\n11111\n\n=======\nLEGEND\n=======\n\nFood = Fish or Plant \nSelectedHand = SHandU or SHandD or SHandL or SHandR\nActiveHand = HandU or HandD or HandL or HandR\nInactiveHand = IHandU or IHandD or IHandL or IHandR\n\nOtherHand = ActiveHand\n\nHand = ActiveHand or InactiveHand or SelectedHand\n\nActiveArm = ArmH or ArmV or ArmDR or ArmDL or ArmUR or ArmUL or ArmDR or ArmDL\nInactiveArm = IArmH or IArmV or IArmDR or IArmDL or IArmUR or IArmUL or IArmDR or IArmDL\nArm = ActiveArm or InactiveArm\n\n\nNBArmOpening_U = ArmV or ArmUR or ArmUL\nNBArmOpening_D = ArmV or ArmDR or ArmDL\nNBArmOpening_R = ArmH or ArmDR or ArmUR \nNBArmOpening_L = ArmH or ArmDL or ArmUL \n\nArmOpening_U = ArmV or ArmUR or ArmUL\nArmOpening_D = ArmV or ArmDR or ArmDL\nArmOpening_R = ArmH or ArmDR or ArmUR or Body\nArmOpening_L = ArmH or ArmDL or ArmUL or Body\n\nOpening_D = HandD or ArmV or ArmDR or ArmDL\nOpening_U = HandU or ArmV or ArmUR or ArmUL\nOpening_L = HandR or ArmH or ArmDL or ArmUL or BODY\nOpening_R = HandL or ArmH or ArmDR or ArmUR or Body\n\nLimb = Hand or Arm or Body\n\n. = Background\n# = brownWall\n\nB = Body\nU = HandU\nD = HandD\nL = HandL\nR = HandR\n\n| = ArmV\n- = ArmH\n┌ = ArmDR \n┐ = ArmDL\n└ = ArmUR\n┘ = ArmUL\n\n_ = IArmH\n\nS = SHandL\n\nwall = brownwall or blackwall or topbrownwall\n\nPlayer = SHandU or SHandD or SHandL or SHandR \n\nPushable = Hand or Arm or Food or Plant or Nutrient\n\nObstacle = Body or Wall\n\nOtherhandAction = T_Slurp or T_Grow\n\nFallable = Plant\n\nthing = limb or wall or plant or fish or Nutrient\n\n=======\nSOUNDS\n=======\n\nsfx1 63819707\nsfx2 63819707\nsfx3 68238307\ncancel 20601507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSelected\nActivate \nM\nWall, blackwall, Limb, Food, Plant\nNutrient\nT1\nT_Slurp\nT_Grow\nT_HandExtendToken\nT_Nutrient\nMarker\n1,2,3,4,5,6,7,8\n\n======\nRULES \n====== \n\ndown [ no wall | wall ] -> [ | topbrownwall ] \n(nutrient gobbling with selected hand)\n\nUp [ > SHandU | Nutrient ] -> [ ArmV | SHandU ]\nUp [ > SHandR | Nutrient ] -> [ ArmUL | SHandU ]\nUp [ > SHandL | Nutrient ] -> [ ArmUR | SHandU ]\n\nDown [ > SHandD | Nutrient ] -> [ ArmV | SHandD ]\nDown [ > SHandR | Nutrient ] -> [ ArmDL | SHandD ]\nDown [ > SHandL | Nutrient ] -> [ ArmDR | SHandD ]\n\nRight [ > SHandR | Nutrient ] -> [ ArmH | SHandR ]\nRight [ > SHandU | Nutrient ] -> [ ArmDR | SHandR ]\nRight [ > SHandD | Nutrient ] -> [ ArmUR | SHandR ]\n\nLeft [ > SHandL | Nutrient ] -> [ ArmH | SHandL ]\nLeft [ > SHandU | Nutrient ] -> [ ArmDL | SHandL ]\nLeft [ > SHandD | Nutrient ] -> [ ArmUL | SHandL ]\n\n\nup [ food mouth ] [ HandU | thing ] -> [ mouth ] [ HandU | > thing ]\ndown [ food mouth ] [ HandD | thing ] -> [ mouth ] [ HandD | > thing ]\nleft [ food mouth ] [ HandL | thing ] -> [ mouth ] [ HandL | > thing ]\nright [ food mouth ] [ HandR | thing ] -> [ mouth ] [ HandR | > thing ]\n\nup [ food mouth ] [ HandU | no thing ] -> [ mouth ] [ ArmV | HandU ] sfx2\ndown [ food mouth ] [ HandD | no thing ] -> [ mouth ] [ ArmV | HandD ] sfx2\nleft [ food mouth ] [ HandL | no thing ] -> [ mouth ] [ ArmH | HandL ] sfx2\nright [ food mouth ] [ HandR | no thing ] -> [ mouth ] [ ArmH | HandR ] sfx2\n\n\n(tell other hand whether to slurp or grow)\n\n[ moving SHandU ] [ stationary Hand ] -> [ moving SHandU ] [ T_Slurp Hand ]\n(override above)\n[ down SHandU ] [ Stationary Hand ] -> [ down SHandU ] [ T_Grow no T_Slurp Hand ]\n\n[ moving SHandD ] [ stationary Hand ] -> [ moving SHandD ] [ T_Slurp Hand ]\n(override above)\n[ up SHandD ] [ Stationary Hand ] -> [ up SHandD ] [ T_Grow no T_Slurp Hand ]\n\n[ moving SHandL ] [ stationary Hand ] -> [ moving SHandL ] [ T_Slurp Hand ]\n(override above)\n [ right SHandL ] [ Stationary Hand ] -> [ right SHandL ] [ T_Grow no T_Slurp Hand ]\n\n[ moving SHandR ] [ stationary Hand ] -> [ moving SHandR ] [ T_Slurp Hand ]\n(override above)\n[ left SHandR ] [ Stationary Hand ] -> [ left SHandR ] [ T_Grow no T_Slurp Hand ]\n\n[ T_Slurp ] [ SelectedHand ] -> [ T_Slurp ] [ SelectedHand T_HandExtendToken ]\n[ > SelectedHand T_HandExtendToken ] -> [ > SelectedHand > T_HandExtendToken ]\n\n(nutrient gobbling with off-hand)\n\nUp [T_Grow] [ HandU | Nutrient ] [moving player] -> [] [ ArmV | HandU ] [player]\n\nDown [T_Grow] [ HandD | Nutrient ] [moving player] -> [] [ ArmV | HandD ] [player]\n\nRight [T_Grow] [ HandR | Nutrient ] [moving player] -> [] [ ArmH | HandR ] [player]\n\nLeft [T_Grow] [ HandL | Nutrient ] [moving player] -> [] [ ArmH | HandL ] [player]\n\n(mark hand action with direction hand moved from here)\n[ moving OtherHand OtherHandAction ] -> [ moving OtherHand moving OtherHandAction ]\n\n(swap hands)\n[ action SHandU ] [ stationary Hand ] -> [ HandU ] [ T1 Hand] \n[ action SHandD ] [ stationary Hand ] -> [ HandD ] [ T1 Hand] \n[ action SHandL ] [ stationary Hand ] -> [ HandL ] [ T1 Hand] \n[ action SHandR ] [ stationary Hand ] -> [ HandR ] [ T1 Hand] \n\n[T1 HandU] -> [ SHandU]\n[T1 HandD] -> [ SHandD]\n[T1 HandL] -> [ SHandL]\n[T1 HandR] -> [ SHandR]\n\n\n[T_Slurp] [ up SelectedHand ] -> [T_Slurp] [ up SHandU ]\n[T_Slurp] [ down SelectedHand ] -> [T_Slurp] [ down SHandD ]\n[T_Slurp] [ left SelectedHand ] -> [T_Slurp] [ left SHandL ]\n[T_Slurp] [ right SelectedHand ] -> [T_Slurp] [ right SHandR ]\n\n\n(you can't retract into your body)\nup [T_Grow] [ up SelectedHand | Body ] -> cancel\ndown [T_Grow] [ down SelectedHand | Body ] -> cancel\nleft [T_Grow] [ left SelectedHand | Body ] -> cancel\nright [T_Grow] [ right SelectedHand | Body ] -> cancel\n\n(you can't grow if the other hand is beside the body)\nright [ T_Slurp HandL | Body ] -> cancel\nleft [ T_Slurp HandR | Body ] -> cancel\n\n(retracting the active hand)\n\nup [T_Grow] [ up SelectedHand | Opening_L ] -> [T_Grow] [ | SHandR]\nup [T_Grow] [ up SelectedHand | Opening_U ] -> [T_Grow] [ | SHandD]\nup [T_Grow] [ up SelectedHand | Opening_R ] -> [T_Grow] [ | SHandL]\n\ndown [T_Grow] [ down SelectedHand | Opening_L ] -> [T_Grow] [ | SHandR]\ndown [T_Grow] [ down SelectedHand | Opening_R ] -> [T_Grow] [ | SHandL]\ndown [T_Grow] [ down SelectedHand | Opening_D ] -> [T_Grow] [ | SHandU]\n\nleft [T_Grow] [ left SelectedHand | Opening_L ] -> [T_Grow] [ | SHandR]\nleft [T_Grow] [ left SelectedHand | Opening_U ] -> [T_Grow] [ | SHandD]\nleft [T_Grow] [ left SelectedHand | Opening_D ] -> [T_Grow] [ | SHandU]\n\nright [T_Grow] [ right SelectedHand | Opening_U ] -> [T_Grow] [ | SHandD]\nright [T_Grow] [ right SelectedHand | Opening_R ] -> [T_Grow] [ | SHandL]\nright [T_Grow] [ right SelectedHand | Opening_D ] -> [T_Grow] [ | SHandU]\n\nup [ T_Grow HandU ] -> [ T_Grow up HandU ]\nup [ T_Grow HandD ] -> [ T_Grow down HandD ]\nup [ T_Grow HandL ] -> [ T_Grow left HandL ]\nup [ T_Grow HandR ] -> [ T_Grow right HandR ]\n\n(slurp other hand)\n\ndown [T_Slurp HandU | ] -> [ | up T_Slurp ]\nup [T_Slurp HandD | ] -> [ | down T_Slurp ]\nleft [T_Slurp HandR | ] -> [ | right T_Slurp ]\nright [T_Slurp HandL | ] -> [ | left T_Slurp ]\n\ndown [ up T_slurp | ArmOpening_U ] -> [ HandU | ArmOpening_U ]\nleft [ up T_Slurp | ArmOpening_R ] -> [ HandR | ArmOpening_R ]\nright [ up T_Slurp | ArmOpening_L ] -> [ HandL | ArmOpening_L ]\n\nup [ down T_slurp | ArmOpening_D ] -> [ HandD | ArmOpening_D ]\nleft [ down T_Slurp | ArmOpening_R ] -> [ HandR | ArmOpening_R ]\nright [ down T_Slurp | ArmOpening_L ] -> [ HandL | ArmOpening_L ]\n\nleft [ right T_slurp | ArmOpening_r ] -> [ HandR | ArmOpening_R ]\nup [ right T_slurp | ArmOpening_D ] -> [ HandD | ArmOpening_D ]\ndown [ right T_slurp | ArmOpening_U ] -> [ HandU | ArmOpening_U ]\n\n\nright [ left T_slurp | ArmOpening_l ] -> [ HandL | ArmOpening_L ]\nup [ left T_slurp | ArmOpening_D ] -> [ HandD | ArmOpening_D ]\ndown [ left T_slurp | ArmOpening_U ] -> [ HandU | ArmOpening_U ]\n\n(propagate movements)\n\n\n[ > Pushable | Pushable ] -> [ > Pushable | > Pushable ]\n\n[ > Pushable | Limb ] -> cancel\n\n[ > Pushable | Obstacle ] -> cancel\n\n[ > fish ] -> [ > fish] sfx3\n[ > plant ] -> [ > plant] sfx3\n\n[ no T_Grow > Pushable | no Pushable ] -> [ | Pushable ]\n+ right [ T_Grow right Pushable | no Pushable ] -> [ ArmH | Pushable ]\n+ left [ T_Grow left Pushable | no Pushable ] -> [ ArmH | Pushable ]\n+ up [ T_Grow up Pushable | no Pushable ] -> [ ArmV | Pushable ]\n+ down [ T_Grow down Pushable | no Pushable ] -> [ ArmV | Pushable ]\n\n\n(growing the selected hand, getting arm to match up)\n\nright [ up T_HandExtendToken | ArmOpening_L ] -> [ ArmUR | ArmOpening_L ]\nleft [ up T_HandExtendToken | ArmOpening_R ] -> [ ArmUL | ArmOpening_R ]\ndown [ up T_HandExtendToken | ArmOpening_U ] -> [ ArmV | ArmOpening_U ]\n\nright [ down T_HandExtendToken | ArmOpening_L ] -> [ ArmDR | ArmOpening_L ]\nleft [ down T_HandExtendToken | ArmOpening_R ] -> [ ArmDL | ArmOpening_R ]\nup [ down T_HandExtendToken | ArmOpening_D ] -> [ ArmV | ArmOpening_D ]\n\nright [ left T_HandExtendToken | ArmOpening_L ] -> [ ArmH | ArmOpening_L ]\nup [ left T_HandExtendToken | ArmOpening_D ] -> [ ArmUL | ArmOpening_D ]\ndown [ left T_HandExtendToken | ArmOpening_U ] -> [ ArmDL | ArmOpening_U ]\n\nup [ right T_HandExtendToken | ArmOpening_D ] -> [ ArmUR | ArmOpening_D ]\nleft [ right T_HandExtendToken | ArmOpening_R ] -> [ ArmH | ArmOpening_R ]\ndown [ right T_HandExtendToken | ArmOpening_U ] -> [ ArmDR | ArmOpening_U ]\n\n\nrandom down [ Fallable | no thing ] -> [ | Fallable ] sfx1 again\n\n\n[ moving Pushable ] -> [ Pushable ]\n[T_Slurp]->[]\n[T_Grow]->[]\n[T_HandExtendToken]->[]\n[ Food Mouth ] -> again\n\n==============\nWINCONDITIONS\n==============\n\nno Food \nsome body\n\n======= \nLEVELS\n=======\n\nMessage press X to switch tentacles\n\n++++++++++++++++++++++++\n+.........P............+\n+.........P............+\n+.........P............+\n+.........P............+\n+.........P............+\n+.........P............+\n+.........P............+\n+.........#............+\n+......................+\n+...P..................+\n+...#.......*..........+\n+...#..P....#..........+\n+...##.#.*.M#..........+\n+.......S--B--R........+\n+..........*...........+\n+......................+\n+.........#*#..........+\n+......................+\n+....................*.+\n+......................+\n+................P.....+\n+................#.....+\n+................#.....+\n+######################+\n\nMessage NOM NOM NOM\n\n...........................\n.....55..555...............\n....555.55555..............\n...5....55555........555...\n...5.....555...6...555.55..\n..5......666.6666.55....55.\n..5..........676..55.....5.\n..5...........66.........5.\n..5........44............5.\n..5........444..........55.\n..5.........44..........5..\n...5........44..........5..\n...55.....54445.......55...\n....55...5544455....555....\n.....5...55444555..55......\n......5555555555555........\n.........55355355..........\n.........55555555.....1111.\n111........5555.......11111\n111111.........1.1111111111\n1111111111...11111111111111\n111888181818811881881188111\n111181188818111811818181811\n111181181818811881818188111\n111111111111111111111111111\n",[0,3,3,1,2,3,0,3,0,0,3,2,2,1,1,0,1,3,2,3,2],"background blackwall: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,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,background topbrownwall:2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,2,0,1,1,1,1,1,1,1,1,1,background plant:3,2,background brownwall:4,4,1,1,1,1,1,1,\n1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,\n1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,3,2,0,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,\n1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,background shandl:5,\n1,1,1,1,1,1,1,1,1,2,0,3,3,3,3,3,3,3,2,1,1,1,1,1,\narmh background:6,1,1,2,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,\nbackground mouth:7,background body:8,background fish:9,1,9,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,9,\n2,4,6,1,1,2,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,\n1,1,1,6,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,6,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,background handr:10,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,4,4,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,1,1,1,1,2,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,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,\n",1,"1627888997152.3042"] + ["\n(\n\tSteps: \n \t- correctly draw selected hand\n \t- move selected hand and \n - move hand and create correct snake behind it\n \t- propagate power along arms at the start of each turn (as a late evaluation?)\n\t\t- action to select hand\n)\n\ntitle Hungry Kraken\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnorepeat_action\n\nverbose_logging\n\n========\nOBJECTS\n========\n\ndarkbrown 1\ndarkbrown\n\nbrown 2\nbrown\n\nwhite 3\nwhite\n\nred 4\nred\n\ngray 5\ngray\n\ndarkgray 6\ndarkgray\n\nblue 7\nblue\n\nblack 8\nblack\n\nBackground \ndarkblue black\n00000\n00000\n00000\n00000\n00000\n\nblackwall +\nblack\n\ntopbrownWall =\ndarkbrown brown\n11111\n01000\n00000\n00010\n00000\n\n\nbrownWall \ndarkBROWN brown\n00000\n01000\n00000\n00010\n00000\n\nSelected\nred\n\nActivate\npurple\n\nNutrient E\ngreen\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nPlant P\ngray darkgray\n.000.\n01010\n01010\n.000.\n.111.\n\nFish *\ngray blue\n.....\n..0.0\n.010.\n..0.0\n.....\n\nMouth M\nred grey\n.....\n.....\n..0..\n.000.\n.000.\n\nBody \ngray white red red gray\n02120\n02120\n04440\n01310\n00000\n\nSHandU\nwhite yellow black\n.111.\n10001\n10101\n10101\n10101\n\nSHandD\nwhite yellow black\n10101\n10101\n10101\n10001\n.111.\n\nSHandL\nwhite yellow black\n.1111\n10000\n10111\n10000\n.1111\n\nSHandR\nwhite yellow black\n1111.\n00001\n11101\n00001\n1111.\n\n\n\nHandU\nwhite gray black\n.111.\n10001\n10101\n10101\n10101\n\nHandD\nwhite gray black\n10101\n10101\n10101\n10001\n.111.\n\nHandL\nwhite gray black\n.1111\n10000\n10111\n10000\n.1111\n\nHandR\nwhite gray black\n1111.\n00001\n11101\n00001\n1111.\n\n\n\nIHandU\ntransparent yellow black\n.111.\n10001\n10101\n10101\n22222\n\nIHandD\ntransparent yellow black\n22222\n10101\n10101\n10001\n.111.\n\nIHandL\ntransparent yellow black\n.1112\n10002\n10112\n10002\n.1112\n\nIHandR\ntransparent yellow black\n2111.\n20001\n21101\n20001\n2111.\n\n\n\nArmH \ngray white\n.....\n00000\n11111\n00000\n.....\n\nArmV \ngray white\n.010.\n.010.\n.010.\n.010.\n.010.\n\nArmDR\ngray white\n.....\n...00\n..011\n.0100\n.010.\n\nArmDL\ngray white\n.....\n00...\n110..\n0010.\n.010.\n\nArmUR\ngray white\n.010.\n.0100\n..011\n...00\n.....\n\nArmUL\ngray white\n.010.\n0010.\n110..\n00...\n.....\n\n\n\n\nIArmH \nblack transparent\n.....\n00000\n11111\n00000\n.....\n\nIArmV \nblack transparent\n.010.\n.010.\n.010.\n.010.\n.010.\n\nIArmDR\nblack transparent\n.....\n.0000\n.0111\n.0100\n.010.\n\nIArmDL\nblack transparent\n.....\n0000.\n1110.\n0010.\n.010.\n\nIArmUR\nblack transparent\n.010.\n.0100\n.0111\n.0000\n.....\n\nIArmUL\nblack transparent\n.010.\n0010.\n1110.\n0000.\n.....\n\nT1\nred\n\nT_Slurp\nblue\n\nT_Grow\nyellow\n\nT_HandExtendToken\ngray\n\nT_Nutrient\npurple\n\nMARKER\nyellow yellow\n11111\n1...1\n1...1\n1...1\n11111\n\n=======\nLEGEND\n=======\n\nFood = Fish or Plant \nSelectedHand = SHandU or SHandD or SHandL or SHandR\nActiveHand = HandU or HandD or HandL or HandR\nInactiveHand = IHandU or IHandD or IHandL or IHandR\n\nOtherHand = ActiveHand\n\nHand = ActiveHand or InactiveHand or SelectedHand\n\nActiveArm = ArmH or ArmV or ArmDR or ArmDL or ArmUR or ArmUL or ArmDR or ArmDL\nInactiveArm = IArmH or IArmV or IArmDR or IArmDL or IArmUR or IArmUL or IArmDR or IArmDL\nArm = ActiveArm or InactiveArm\n\n\nNBArmOpening_U = ArmV or ArmUR or ArmUL\nNBArmOpening_D = ArmV or ArmDR or ArmDL\nNBArmOpening_R = ArmH or ArmDR or ArmUR \nNBArmOpening_L = ArmH or ArmDL or ArmUL \n\nArmOpening_U = ArmV or ArmUR or ArmUL\nArmOpening_D = ArmV or ArmDR or ArmDL\nArmOpening_R = ArmH or ArmDR or ArmUR or Body\nArmOpening_L = ArmH or ArmDL or ArmUL or Body\n\nOpening_D = HandD or ArmV or ArmDR or ArmDL\nOpening_U = HandU or ArmV or ArmUR or ArmUL\nOpening_L = HandR or ArmH or ArmDL or ArmUL or BODY\nOpening_R = HandL or ArmH or ArmDR or ArmUR or Body\n\nLimb = Hand or Arm or Body\n\n. = Background\n# = brownWall\n\nB = Body\nU = HandU\nD = HandD\nL = HandL\nR = HandR\n\n| = ArmV\n- = ArmH\n┌ = ArmDR \n┐ = ArmDL\n└ = ArmUR\n┘ = ArmUL\n\n_ = IArmH\n\nS = SHandL\n\nwall = brownwall or blackwall or topbrownwall\n\nPlayer = SHandU or SHandD or SHandL or SHandR \n\nPushable = Hand or Arm or Food or Plant or Nutrient\n\nObstacle = Body or Wall\n\nOtherhandAction = T_Slurp or T_Grow\n\nFallable = Plant\n\nthing = limb or wall or plant or fish or Nutrient\n\n=======\nSOUNDS\n=======\n\nsfx1 63819707\nsfx2 63819707\nsfx3 68238307\ncancel 20601507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSelected\nActivate \nM\nWall, blackwall, Limb, Food, Plant\nNutrient\nT1\nT_Slurp\nT_Grow\nT_HandExtendToken\nT_Nutrient\nMarker\n1,2,3,4,5,6,7,8\n\n======\nRULES \n====== \n\ndown [ no wall | wall ] -> [ | topbrownwall ] \n(nutrient gobbling with selected hand)\n\nUp [ > SHandU | Nutrient ] -> [ ArmV | SHandU ]\nUp [ > SHandR | Nutrient ] -> [ ArmUL | SHandU ]\nUp [ > SHandL | Nutrient ] -> [ ArmUR | SHandU ]\n\nDown [ > SHandD | Nutrient ] -> [ ArmV | SHandD ]\nDown [ > SHandR | Nutrient ] -> [ ArmDL | SHandD ]\nDown [ > SHandL | Nutrient ] -> [ ArmDR | SHandD ]\n\nRight [ > SHandR | Nutrient ] -> [ ArmH | SHandR ]\nRight [ > SHandU | Nutrient ] -> [ ArmDR | SHandR ]\nRight [ > SHandD | Nutrient ] -> [ ArmUR | SHandR ]\n\nLeft [ > SHandL | Nutrient ] -> [ ArmH | SHandL ]\nLeft [ > SHandU | Nutrient ] -> [ ArmDL | SHandL ]\nLeft [ > SHandD | Nutrient ] -> [ ArmUL | SHandL ]\n\n\nup [ food mouth ] [ HandU | thing ] -> [ mouth ] [ HandU | > thing ]\ndown [ food mouth ] [ HandD | thing ] -> [ mouth ] [ HandD | > thing ]\nleft [ food mouth ] [ HandL | thing ] -> [ mouth ] [ HandL | > thing ]\nright [ food mouth ] [ HandR | thing ] -> [ mouth ] [ HandR | > thing ]\n\nup [ food mouth ] [ HandU | no thing ] -> [ mouth ] [ ArmV | HandU ] sfx2\ndown [ food mouth ] [ HandD | no thing ] -> [ mouth ] [ ArmV | HandD ] sfx2\nleft [ food mouth ] [ HandL | no thing ] -> [ mouth ] [ ArmH | HandL ] sfx2\nright [ food mouth ] [ HandR | no thing ] -> [ mouth ] [ ArmH | HandR ] sfx2\n\n\n(tell other hand whether to slurp or grow)\n\n[ moving SHandU ] [ stationary Hand ] -> [ moving SHandU ] [ T_Slurp Hand ]\n(override above)\n[ down SHandU ] [ Stationary Hand ] -> [ down SHandU ] [ T_Grow no T_Slurp Hand ]\n\n[ moving SHandD ] [ stationary Hand ] -> [ moving SHandD ] [ T_Slurp Hand ]\n(override above)\n[ up SHandD ] [ Stationary Hand ] -> [ up SHandD ] [ T_Grow no T_Slurp Hand ]\n\n[ moving SHandL ] [ stationary Hand ] -> [ moving SHandL ] [ T_Slurp Hand ]\n(override above)\n [ right SHandL ] [ Stationary Hand ] -> [ right SHandL ] [ T_Grow no T_Slurp Hand ]\n\n[ moving SHandR ] [ stationary Hand ] -> [ moving SHandR ] [ T_Slurp Hand ]\n(override above)\n[ left SHandR ] [ Stationary Hand ] -> [ left SHandR ] [ T_Grow no T_Slurp Hand ]\n\n[ T_Slurp ] [ SelectedHand ] -> [ T_Slurp ] [ SelectedHand T_HandExtendToken ]\n[ > SelectedHand T_HandExtendToken ] -> [ > SelectedHand > T_HandExtendToken ]\n\n(nutrient gobbling with off-hand)\n\nUp [T_Grow] [ HandU | Nutrient ] [moving player] -> [] [ ArmV | HandU ] [player]\n\nDown [T_Grow] [ HandD | Nutrient ] [moving player] -> [] [ ArmV | HandD ] [player]\n\nRight [T_Grow] [ HandR | Nutrient ] [moving player] -> [] [ ArmH | HandR ] [player]\n\nLeft [T_Grow] [ HandL | Nutrient ] [moving player] -> [] [ ArmH | HandL ] [player]\n\n(mark hand action with direction hand moved from here)\n[ moving OtherHand OtherHandAction ] -> [ moving OtherHand moving OtherHandAction ]\n\n(swap hands)\n[ action SHandU ] [ stationary Hand ] -> [ HandU ] [ T1 Hand] \n[ action SHandD ] [ stationary Hand ] -> [ HandD ] [ T1 Hand] \n[ action SHandL ] [ stationary Hand ] -> [ HandL ] [ T1 Hand] \n[ action SHandR ] [ stationary Hand ] -> [ HandR ] [ T1 Hand] \n\n[T1 HandU] -> [ SHandU]\n[T1 HandD] -> [ SHandD]\n[T1 HandL] -> [ SHandL]\n[T1 HandR] -> [ SHandR]\n\n\n[T_Slurp] [ up SelectedHand ] -> [T_Slurp] [ up SHandU ]\n[T_Slurp] [ down SelectedHand ] -> [T_Slurp] [ down SHandD ]\n[T_Slurp] [ left SelectedHand ] -> [T_Slurp] [ left SHandL ]\n[T_Slurp] [ right SelectedHand ] -> [T_Slurp] [ right SHandR ]\n\n\n(you can't retract into your body)\nup [T_Grow] [ up SelectedHand | Body ] -> cancel\ndown [T_Grow] [ down SelectedHand | Body ] -> cancel\nleft [T_Grow] [ left SelectedHand | Body ] -> cancel\nright [T_Grow] [ right SelectedHand | Body ] -> cancel\n\n(you can't grow if the other hand is beside the body)\nright [ T_Slurp HandL | Body ] -> cancel\nleft [ T_Slurp HandR | Body ] -> cancel\n\n(retracting the active hand)\n\nup [T_Grow] [ up SelectedHand | Opening_L ] -> [T_Grow] [ | SHandR]\nup [T_Grow] [ up SelectedHand | Opening_U ] -> [T_Grow] [ | SHandD]\nup [T_Grow] [ up SelectedHand | Opening_R ] -> [T_Grow] [ | SHandL]\n\ndown [T_Grow] [ down SelectedHand | Opening_L ] -> [T_Grow] [ | SHandR]\ndown [T_Grow] [ down SelectedHand | Opening_R ] -> [T_Grow] [ | SHandL]\ndown [T_Grow] [ down SelectedHand | Opening_D ] -> [T_Grow] [ | SHandU]\n\nleft [T_Grow] [ left SelectedHand | Opening_L ] -> [T_Grow] [ | SHandR]\nleft [T_Grow] [ left SelectedHand | Opening_U ] -> [T_Grow] [ | SHandD]\nleft [T_Grow] [ left SelectedHand | Opening_D ] -> [T_Grow] [ | SHandU]\n\nright [T_Grow] [ right SelectedHand | Opening_U ] -> [T_Grow] [ | SHandD]\nright [T_Grow] [ right SelectedHand | Opening_R ] -> [T_Grow] [ | SHandL]\nright [T_Grow] [ right SelectedHand | Opening_D ] -> [T_Grow] [ | SHandU]\n\nup [ T_Grow HandU ] -> [ T_Grow up HandU ]\nup [ T_Grow HandD ] -> [ T_Grow down HandD ]\nup [ T_Grow HandL ] -> [ T_Grow left HandL ]\nup [ T_Grow HandR ] -> [ T_Grow right HandR ]\n\n(slurp other hand)\n\ndown [T_Slurp HandU | ] -> [ | up T_Slurp ]\nup [T_Slurp HandD | ] -> [ | down T_Slurp ]\nleft [T_Slurp HandR | ] -> [ | right T_Slurp ]\nright [T_Slurp HandL | ] -> [ | left T_Slurp ]\n\ndown [ up T_slurp | ArmOpening_U ] -> [ HandU | ArmOpening_U ]\nleft [ up T_Slurp | ArmOpening_R ] -> [ HandR | ArmOpening_R ]\nright [ up T_Slurp | ArmOpening_L ] -> [ HandL | ArmOpening_L ]\n\nup [ down T_slurp | ArmOpening_D ] -> [ HandD | ArmOpening_D ]\nleft [ down T_Slurp | ArmOpening_R ] -> [ HandR | ArmOpening_R ]\nright [ down T_Slurp | ArmOpening_L ] -> [ HandL | ArmOpening_L ]\n\nleft [ right T_slurp | ArmOpening_r ] -> [ HandR | ArmOpening_R ]\nup [ right T_slurp | ArmOpening_D ] -> [ HandD | ArmOpening_D ]\ndown [ right T_slurp | ArmOpening_U ] -> [ HandU | ArmOpening_U ]\n\n\nright [ left T_slurp | ArmOpening_l ] -> [ HandL | ArmOpening_L ]\nup [ left T_slurp | ArmOpening_D ] -> [ HandD | ArmOpening_D ]\ndown [ left T_slurp | ArmOpening_U ] -> [ HandU | ArmOpening_U ]\n\n(propagate movements)\n\n\n[ > Pushable | Pushable ] -> [ > Pushable | > Pushable ]\n\n[ > Pushable | Limb ] -> cancel\n\n[ > Pushable | Obstacle ] -> cancel\n\n[ > fish ] -> [ > fish] sfx3\n[ > plant ] -> [ > plant] sfx3\n\n[ no T_Grow > Pushable | no Pushable ] -> [ | Pushable ]\n+ right [ T_Grow right Pushable | no Pushable ] -> [ ArmH | Pushable ]\n+ left [ T_Grow left Pushable | no Pushable ] -> [ ArmH | Pushable ]\n+ up [ T_Grow up Pushable | no Pushable ] -> [ ArmV | Pushable ]\n+ down [ T_Grow down Pushable | no Pushable ] -> [ ArmV | Pushable ]\n\n\n(growing the selected hand, getting arm to match up)\n\nright [ up T_HandExtendToken | ArmOpening_L ] -> [ ArmUR | ArmOpening_L ]\nleft [ up T_HandExtendToken | ArmOpening_R ] -> [ ArmUL | ArmOpening_R ]\ndown [ up T_HandExtendToken | ArmOpening_U ] -> [ ArmV | ArmOpening_U ]\n\nright [ down T_HandExtendToken | ArmOpening_L ] -> [ ArmDR | ArmOpening_L ]\nleft [ down T_HandExtendToken | ArmOpening_R ] -> [ ArmDL | ArmOpening_R ]\nup [ down T_HandExtendToken | ArmOpening_D ] -> [ ArmV | ArmOpening_D ]\n\nright [ left T_HandExtendToken | ArmOpening_L ] -> [ ArmH | ArmOpening_L ]\nup [ left T_HandExtendToken | ArmOpening_D ] -> [ ArmUL | ArmOpening_D ]\ndown [ left T_HandExtendToken | ArmOpening_U ] -> [ ArmDL | ArmOpening_U ]\n\nup [ right T_HandExtendToken | ArmOpening_D ] -> [ ArmUR | ArmOpening_D ]\nleft [ right T_HandExtendToken | ArmOpening_R ] -> [ ArmH | ArmOpening_R ]\ndown [ right T_HandExtendToken | ArmOpening_U ] -> [ ArmDR | ArmOpening_U ]\n\n\nrandom down [ Fallable | no thing ] -> [ | Fallable ] sfx1 again\n\n\n[ moving Pushable ] -> [ Pushable ]\n[T_Slurp]->[]\n[T_Grow]->[]\n[T_HandExtendToken]->[]\n[ Food Mouth ] -> again\n\n==============\nWINCONDITIONS\n==============\n\nno Food \nsome body\n\n======= \nLEVELS\n=======\n\nMessage press X to switch tentacles\n\n++++++++++++++++++++++++\n+.........P............+\n+.........P............+\n+.........P............+\n+.........P............+\n+.........P............+\n+.........P............+\n+.........P............+\n+.........#............+\n+......................+\n+...P..................+\n+...#.......*..........+\n+...#..P....#..........+\n+...##.#.*.M#..........+\n+.......S--B--R........+\n+..........*...........+\n+......................+\n+.........#*#..........+\n+......................+\n+....................*.+\n+......................+\n+................P.....+\n+................#.....+\n+................#.....+\n+######################+\n\nMessage NOM NOM NOM\n\n...........................\n.....55..555...............\n....555.55555..............\n...5....55555........555...\n...5.....555...6...555.55..\n..5......666.6666.55....55.\n..5..........676..55.....5.\n..5...........66.........5.\n..5........44............5.\n..5........444..........55.\n..5.........44..........5..\n...5........44..........5..\n...55.....54445.......55...\n....55...5544455....555....\n.....5...55444555..55......\n......5555555555555........\n.........55355355..........\n.........55555555.....1111.\n111........5555.......11111\n111111.........1.1111111111\n1111111111...11111111111111\n111888181818811881881188111\n111181188818111811818181811\n111181181818811881818188111\n111111111111111111111111111\n", [0, 3, 3, 1, 2, 3, 0, 3, 0, 0, 3, 2, 2, 1, 1, 0, 1, 3, 2, 3, 2], "background blackwall: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,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,background topbrownwall:2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,2,0,1,1,1,1,1,1,1,1,1,background plant:3,2,background brownwall:4,4,1,1,1,1,1,1,\n1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,\n1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,3,2,0,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,\n1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,background shandl:5,\n1,1,1,1,1,1,1,1,1,2,0,3,3,3,3,3,3,3,2,1,1,1,1,1,\narmh background:6,1,1,2,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,\nbackground mouth:7,background body:8,background fish:9,1,9,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,9,\n2,4,6,1,1,2,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,\n1,1,1,6,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,6,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,background handr:10,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,4,4,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,1,1,1,1,2,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,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,\n", 1, "1627888997152.3042"] ], [ `increpare game: match three billiards`, -["title match three billiards \nauthor increpare\nhomepage www.increpare.com\n\n\nrun_rules_on_level_start\n\ncolor_palette 7\n\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\nhole\nblack\n\ntarget\nlightgreen black\n00000\n01110\n01110\n01110\n00000\n\n\nwallul E\nbrown\n00000\n0000.\n000..\n00...\n0....\n\nwallur R\nbrown\n00000\n.0000\n..000\n...00\n....0\n\nwalldl D\ntransparent brown brown\n20000\n12000\n11200\n11120\n11112\n\nwalldr F\ntransparent brown brown\n00002\n00021\n00211\n02111\n21111\n\nWall\nbrown\n\n\nplayer p\nwhite lightblue lightgray lightgray Blue\n.111.\n.000.\n22222\n.222.\n.1.1.\n\nBody\ndarkbrown\n.000.\n.000.\n.000.\n.000.\n.000.\n\nball\ndarkred darkred darkred\n.000.\n02220\n02220\n02220\n.000.\n\nAU \nred red red\n.000.\n02220\n02220\n02220\n.000.\n\nAD\nred red red\n.000.\n02220\n02220\n02220\n.000.\n\n\nAL\nred red red\n.000.\n02220\n02220\n02220\n.000.\n\n\nAR\nred red red\n.000.\n02220\n02220\n02220\n.000.\n\n\ngood\nyellow yellow yellow\n.000.\n02220\n02220\n02220\n.000.\n\n\n\n\nT\ntransparent\n\n=======\nLEGEND\n=======\n\nwalls = wall or wallul or wallur or walldl or walldr\n. = Background\n# = Wall\nC = ball\n@ = ball and target\nO = target\nArrow = AU or AD or AL or AR \nObstacle = ball or Wall\nblock = T or wall\nh = hole\n$ = ball and hole\ng = target and hole\nk = ball and hole and target\nanyball = ball or arrow\nanyballorgood = anyball or good\n\n=======\nSOUNDS\n=======\n\nsfx0 36772507 (ballmove)\nsfx1 20806902 (action)\nsfx2 44778100 (clink)\nsfx3 17355302 (win)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget\nWall, walls, ball, player\nbody\narrow\nT\nGood\n\n======\nRULES\n======\n\nup [ > player | ball ] -> [ player | AU ] sfx0\ndown [ > player | ball ] -> [ player | AD ] sfx0\nleft [ > player | ball ] -> [ player | AL ] sfx0\nright [ > player | ball ] -> [ player | AR ] sfx0\n \n\nup [ AU | Ball ] -> [ Ball | AU ] sfx2\n+ down [ AD | Ball ] -> [ Ball | AD ] sfx2\n+ left [ AL | Ball ] -> [ Ball | AL ] sfx2\n+ right [ AR | Ball ] -> [ Ball | AR ] sfx2\n \n\nup [ no T AU | WALLUL ] -> [ T AR | WALLUL ] again\nup [ no T AU | WALLUR ] -> [ T AL | WALLUR ] again\n\ndown [ no T AD | WALLDL ] -> [ T AR | WALLDL ] again\ndown [ no T AD | WALLDR ] -> [ T AL | WALLDR ] again\n\nleft [ no T AL | WALLUL ] -> [ T AD | WALLUL ] again\nleft [ no T AL | WALLDL ] -> [ T AU | WALLDL ] again\n\nright [ no T AR | WALLUR ] -> [ T AD | WALLUR ] again\nright [ no T AR | WALLDR ] -> [ T AU | WALLDR ] again\n\nright [ no T AR | wall ] -> [ T AL | wall ] again\nleft [ no T AL | wall ] -> [ T AR | wall ] again\nup [ no T AU | wall ] -> [ T AD | wall ] again\ndown [ no T AD | wall ] -> [ T AU | wall ] again\n\n[T]->[]\n\n\nup [ AU | player ] -> [ ball | player ] \ndown [ AD | player ] -> [ ball | player ] \nleft [ AL | player ] -> [ ball | player ] \nright [ AR | player ] -> [ ball | player ] \n\nup [ no T AU | no obstacle ] -> [ | T AU ] again\ndown [ no T AD | no obstacle ] -> [ | T AD ] again\nleft [ no T AL | no obstacle ] -> [ | T AL ] again\nright [ no T AR | no obstacle ] -> [ | T AR ] again\n\n[T]->[]\n\n(\nright [ no T AR | wall ] -> [ T AL | wall ] again\nleft [ no T AL | wall ] -> [ T AR | wall ] again\nup [ no T AU | wall ] -> [ T AD | wall ] again\ndown [ no T AD | wall ] -> [ T AU | wall ] again\n[t]->[]\n\nright [ no T AR | no obstacle ] -> [ | T AR ] again\nleft [ no T AL | no obstacle ] -> [ | T AL ] again\nup [ no T AU | no obstacle ] -> [ | T AU ] again\ndown [ no T AD | no obstacle ] -> [ | T AD ] again\n[T]->[]\n)\n\n[good] -> []\n\n[anyballorgood | anyballorgood | anyballorgood ] -> [ good | good | good ] again sfx3\n\n==============\nWINCONDITIONS\n==============\nno anyball\nno good\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 3\n\n##########er####\n..p..c......r###\n########e....r##\n#######e......r#\n######e........r\n#####e.........f\n#####d.....c..f#\n######d......f##\n#######d...cf###\n########d..f####\n#########df#####\n\nmessage level 2 of 3\n\n####er####\n###e..r###\n##e....r##\n#e.c..c.r#\ne........r\nd........f\n#d.p..c.f#\n##d....f##\n###d..f###\n####df####\n\nmessage level 3 of 3\n\n####er####\n###e..r###\n##e....r##\n#e.c.c..r#\ne........r\nd..c.c...f\n#d....p.f#\n##d....f##\n###d..f###\n####df####\n\n(\n\nmessage optional final level\n\n#####er####\n####e..r###\n###e....r##\n##e.c.c..r#\n#e........r\ne...c.c...f\nd........f#\n#d...p..f##\n##d....f###\n###d..f####\n####df#####\n\n######er#######\n#####e..r######\n####e....r#####\n###e......r####\n##e........r###\n#e...c..p...r##\ne............r#\nd..........c..r\n#d............f\n##d..........f#\n###d........f##\n####d..c...f###\n#####d....f####\n######d..f#####\n#######df######\n\n\n#####er####\n####e..r###\n###e....r##\n##e.c.c..r#\n#e........r\ne...c.c...f\nd........f#\n#d...p..f##\n##d....f###\n###d..f####\n####df####.\n\n\n##########er####\n..p..c......r###\n########e....r##\n#######e......r#\n######e........r\n#####e.....c...f\n#####d........f#\n######d....c.f##\n#######d....f###\n########d..f####\n#########df#####\n\n####er####\n###e..r###\n##e....r##\n#e......r#\ne........r\nd..p.....f\n#d......f#\n##d....f##\n###d..f###\n####df####\n\n####er####\n###e..r###\n##e....r##\n#e.c.c..r#\ne........r\nd..p.c...f\n#d......f#\n##d....f##\n###d..f###\n####df####\n\n#####er#####\n####e..r####\n###e....r###\n##e......r##\n#e..c.c...r#\ne..........r\nd....c.c...f\n#d........f#\n##d...p..f##\n###d....f###\n####d..f####\n#####df#####\n\n####er####\n###e..r###\n##e....r##\n#e.c.c..r#\ne........r\nd..p.c...f\n#d......f#\n##d....f##\n###d..f###\n####df####\n\n######er#######\n#####e..r######\n####e....r#####\n###e......r####\n##e........r###\n#e...c..p...r##\ne............r#\nd..........c..r\n#d............f\n##d..........f#\n###d........f##\n####d..c...f###\n#####d....f####\n######d..f#####\n#######df######\n\n######er#######\n#####e..r######\n####e....r#####\n###e......r####\n##e........r###\n#e...c......r##\ne.......#....r#\nd....c.....c..r\n#d...p........f\n##d..........f#\n###d........f##\n####d..c...f###\n#####d....f####\n######d..f#####\n#######df######\n\n##########er####\n....pc......r###\n########e....r##\n#######e......r#\n######e........r\n#####e.........f\n#####d........f#\n######d......f##\n#######d....f###\n########d..f####\n#########df#####\n\n##########er####\n..p..c......r###\n########e....r##\n#######e......r#\n######e........r\n#####e.....c...f\n#####d........f#\n######d....c.f##\n#######d....f###\n########d..f####\n#########df#####\n\n)\n",[3,3,3],"background wall:0,0,0,0,background wallul:1,background walldl:2,0,0,0,0,\n0,0,0,1,background:3,3,2,0,0,0,\n0,0,1,3,3,3,3,2,0,0,\n0,1,3,3,3,3,3,3,2,0,\n1,3,3,background ball:4,3,3,4,3,3,2,\nbackground wallur:5,3,3,3,3,3,background player:6,3,3,background walldr:7,\n0,5,3,3,3,3,3,3,7,0,\n0,0,5,4,3,3,3,7,0,0,\n0,0,0,5,3,3,7,0,0,0,\n0,0,0,0,5,7,0,0,0,0,\n",3,"1627889017355.2273"] + ["title match three billiards \nauthor increpare\nhomepage www.increpare.com\n\n\nrun_rules_on_level_start\n\ncolor_palette 7\n\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\nhole\nblack\n\ntarget\nlightgreen black\n00000\n01110\n01110\n01110\n00000\n\n\nwallul E\nbrown\n00000\n0000.\n000..\n00...\n0....\n\nwallur R\nbrown\n00000\n.0000\n..000\n...00\n....0\n\nwalldl D\ntransparent brown brown\n20000\n12000\n11200\n11120\n11112\n\nwalldr F\ntransparent brown brown\n00002\n00021\n00211\n02111\n21111\n\nWall\nbrown\n\n\nplayer p\nwhite lightblue lightgray lightgray Blue\n.111.\n.000.\n22222\n.222.\n.1.1.\n\nBody\ndarkbrown\n.000.\n.000.\n.000.\n.000.\n.000.\n\nball\ndarkred darkred darkred\n.000.\n02220\n02220\n02220\n.000.\n\nAU \nred red red\n.000.\n02220\n02220\n02220\n.000.\n\nAD\nred red red\n.000.\n02220\n02220\n02220\n.000.\n\n\nAL\nred red red\n.000.\n02220\n02220\n02220\n.000.\n\n\nAR\nred red red\n.000.\n02220\n02220\n02220\n.000.\n\n\ngood\nyellow yellow yellow\n.000.\n02220\n02220\n02220\n.000.\n\n\n\n\nT\ntransparent\n\n=======\nLEGEND\n=======\n\nwalls = wall or wallul or wallur or walldl or walldr\n. = Background\n# = Wall\nC = ball\n@ = ball and target\nO = target\nArrow = AU or AD or AL or AR \nObstacle = ball or Wall\nblock = T or wall\nh = hole\n$ = ball and hole\ng = target and hole\nk = ball and hole and target\nanyball = ball or arrow\nanyballorgood = anyball or good\n\n=======\nSOUNDS\n=======\n\nsfx0 36772507 (ballmove)\nsfx1 20806902 (action)\nsfx2 44778100 (clink)\nsfx3 17355302 (win)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget\nWall, walls, ball, player\nbody\narrow\nT\nGood\n\n======\nRULES\n======\n\nup [ > player | ball ] -> [ player | AU ] sfx0\ndown [ > player | ball ] -> [ player | AD ] sfx0\nleft [ > player | ball ] -> [ player | AL ] sfx0\nright [ > player | ball ] -> [ player | AR ] sfx0\n \n\nup [ AU | Ball ] -> [ Ball | AU ] sfx2\n+ down [ AD | Ball ] -> [ Ball | AD ] sfx2\n+ left [ AL | Ball ] -> [ Ball | AL ] sfx2\n+ right [ AR | Ball ] -> [ Ball | AR ] sfx2\n \n\nup [ no T AU | WALLUL ] -> [ T AR | WALLUL ] again\nup [ no T AU | WALLUR ] -> [ T AL | WALLUR ] again\n\ndown [ no T AD | WALLDL ] -> [ T AR | WALLDL ] again\ndown [ no T AD | WALLDR ] -> [ T AL | WALLDR ] again\n\nleft [ no T AL | WALLUL ] -> [ T AD | WALLUL ] again\nleft [ no T AL | WALLDL ] -> [ T AU | WALLDL ] again\n\nright [ no T AR | WALLUR ] -> [ T AD | WALLUR ] again\nright [ no T AR | WALLDR ] -> [ T AU | WALLDR ] again\n\nright [ no T AR | wall ] -> [ T AL | wall ] again\nleft [ no T AL | wall ] -> [ T AR | wall ] again\nup [ no T AU | wall ] -> [ T AD | wall ] again\ndown [ no T AD | wall ] -> [ T AU | wall ] again\n\n[T]->[]\n\n\nup [ AU | player ] -> [ ball | player ] \ndown [ AD | player ] -> [ ball | player ] \nleft [ AL | player ] -> [ ball | player ] \nright [ AR | player ] -> [ ball | player ] \n\nup [ no T AU | no obstacle ] -> [ | T AU ] again\ndown [ no T AD | no obstacle ] -> [ | T AD ] again\nleft [ no T AL | no obstacle ] -> [ | T AL ] again\nright [ no T AR | no obstacle ] -> [ | T AR ] again\n\n[T]->[]\n\n(\nright [ no T AR | wall ] -> [ T AL | wall ] again\nleft [ no T AL | wall ] -> [ T AR | wall ] again\nup [ no T AU | wall ] -> [ T AD | wall ] again\ndown [ no T AD | wall ] -> [ T AU | wall ] again\n[t]->[]\n\nright [ no T AR | no obstacle ] -> [ | T AR ] again\nleft [ no T AL | no obstacle ] -> [ | T AL ] again\nup [ no T AU | no obstacle ] -> [ | T AU ] again\ndown [ no T AD | no obstacle ] -> [ | T AD ] again\n[T]->[]\n)\n\n[good] -> []\n\n[anyballorgood | anyballorgood | anyballorgood ] -> [ good | good | good ] again sfx3\n\n==============\nWINCONDITIONS\n==============\nno anyball\nno good\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 3\n\n##########er####\n..p..c......r###\n########e....r##\n#######e......r#\n######e........r\n#####e.........f\n#####d.....c..f#\n######d......f##\n#######d...cf###\n########d..f####\n#########df#####\n\nmessage level 2 of 3\n\n####er####\n###e..r###\n##e....r##\n#e.c..c.r#\ne........r\nd........f\n#d.p..c.f#\n##d....f##\n###d..f###\n####df####\n\nmessage level 3 of 3\n\n####er####\n###e..r###\n##e....r##\n#e.c.c..r#\ne........r\nd..c.c...f\n#d....p.f#\n##d....f##\n###d..f###\n####df####\n\n(\n\nmessage optional final level\n\n#####er####\n####e..r###\n###e....r##\n##e.c.c..r#\n#e........r\ne...c.c...f\nd........f#\n#d...p..f##\n##d....f###\n###d..f####\n####df#####\n\n######er#######\n#####e..r######\n####e....r#####\n###e......r####\n##e........r###\n#e...c..p...r##\ne............r#\nd..........c..r\n#d............f\n##d..........f#\n###d........f##\n####d..c...f###\n#####d....f####\n######d..f#####\n#######df######\n\n\n#####er####\n####e..r###\n###e....r##\n##e.c.c..r#\n#e........r\ne...c.c...f\nd........f#\n#d...p..f##\n##d....f###\n###d..f####\n####df####.\n\n\n##########er####\n..p..c......r###\n########e....r##\n#######e......r#\n######e........r\n#####e.....c...f\n#####d........f#\n######d....c.f##\n#######d....f###\n########d..f####\n#########df#####\n\n####er####\n###e..r###\n##e....r##\n#e......r#\ne........r\nd..p.....f\n#d......f#\n##d....f##\n###d..f###\n####df####\n\n####er####\n###e..r###\n##e....r##\n#e.c.c..r#\ne........r\nd..p.c...f\n#d......f#\n##d....f##\n###d..f###\n####df####\n\n#####er#####\n####e..r####\n###e....r###\n##e......r##\n#e..c.c...r#\ne..........r\nd....c.c...f\n#d........f#\n##d...p..f##\n###d....f###\n####d..f####\n#####df#####\n\n####er####\n###e..r###\n##e....r##\n#e.c.c..r#\ne........r\nd..p.c...f\n#d......f#\n##d....f##\n###d..f###\n####df####\n\n######er#######\n#####e..r######\n####e....r#####\n###e......r####\n##e........r###\n#e...c..p...r##\ne............r#\nd..........c..r\n#d............f\n##d..........f#\n###d........f##\n####d..c...f###\n#####d....f####\n######d..f#####\n#######df######\n\n######er#######\n#####e..r######\n####e....r#####\n###e......r####\n##e........r###\n#e...c......r##\ne.......#....r#\nd....c.....c..r\n#d...p........f\n##d..........f#\n###d........f##\n####d..c...f###\n#####d....f####\n######d..f#####\n#######df######\n\n##########er####\n....pc......r###\n########e....r##\n#######e......r#\n######e........r\n#####e.........f\n#####d........f#\n######d......f##\n#######d....f###\n########d..f####\n#########df#####\n\n##########er####\n..p..c......r###\n########e....r##\n#######e......r#\n######e........r\n#####e.....c...f\n#####d........f#\n######d....c.f##\n#######d....f###\n########d..f####\n#########df#####\n\n)\n", [3, 3, 3], "background wall:0,0,0,0,background wallul:1,background walldl:2,0,0,0,0,\n0,0,0,1,background:3,3,2,0,0,0,\n0,0,1,3,3,3,3,2,0,0,\n0,1,3,3,3,3,3,3,2,0,\n1,3,3,background ball:4,3,3,4,3,3,2,\nbackground wallur:5,3,3,3,3,3,background player:6,3,3,background walldr:7,\n0,5,3,3,3,3,3,3,7,0,\n0,0,5,4,3,3,3,7,0,0,\n0,0,0,5,3,3,7,0,0,0,\n0,0,0,0,5,7,0,0,0,0,\n", 3, "1627889017355.2273"] ], [ - "newton", - ["title newton \nauthor increpare\nhomepage www.increpare.com\nnoaction\n\ncolor_palette 8\n\n========\nOBJECTS\n========\n\nBackground\nlightgray lightgray \n11111\n01111\n11101\n11111\n10111\n\nhole\nblack\n\ntarget\norange black\n00000\n0...0\n0...0\n0...0\n00000\n\nWall\ndarkred black \n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nball\nlightblue white\n.000.\n0...0\n0...0\n01..0\n.000.\n\nAU \ntransparent\n\nAD\ntransparent\n\nAL\ntransparent\n\nAR\ntransparent\n\nT\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nC = ball\n@ = ball and target\nO = target\nArrow = AU or AD or AL or AR\nObstacle = ball or Wall\nblock = T or wall\nh = hole\n$ = ball and hole\nf = target and hole\n\n=======\nSOUNDS\n=======\n\nsfx0 36772507 (ballmove)\nsfx1 20806902 (action)\nsfx2 44778100 (clink)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget\nPlayer, Wall, ball\nArrow\nT\n\n======\nRULES\n======\n\n\n[ > player | hole ] -> cancel\n\n[ arrow ] [ player ] -> [arrow] [ action player ]\n[ AU ball ] -> [ up ball ]\n[ AD ball ] -> [ down ball ]\n[ AL ball ] -> [ left ball ]\n[ AR ball ] -> [ right ball ]\n\n[ > ball | stationary ball ] -> [ stationary ball | > ball ] \n\n[ > ball | wall ] -> [ T ball | wall ]\n[ > ball | T ] -> [ T ball | ]\n[t]->[]\n\n[ stationary ball | > ball ] -> sfx2\n\n[ > Player | ball ] -> [ > Player | > ball ] sfx0 \n[ > ball | ball ] -> [ > ball | > ball ]\n\nup \t\t[ > ball | no obstacle ] -> [ | ball AU ] again\ndown [ > ball | no obstacle ] -> [ | ball AD ] again\nleft \t[ > ball | no obstacle ] -> [ | ball AL ] again\nright \t[ > ball | no obstacle ] -> [ | ball AR ] again\n\n==============\nWINCONDITIONS\n==============\n\nall ball on target\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 3\n\n###############\n#hhhhhhfhhhhhh#\n#hhhhhhfhhhhhh#\n#hhhhhhfhhhhhh#\n#hhh.......hhh#\n#hhh..ccc..hhh#\n#ffh..ccc..hff#\n#hhh..ccc..hhh#\n#hhh.......hhh#\n#hhh...p...hhh#\n#hhh.......hhh#\n#hhhhhhhhhhhhh#\n#hhhhhhhhhhhhh#\n#hhhhhfhfhhhhh#\n###############\n\nmessage level 2 of 3\n\n###############\n#hhhhfffffhhhh#\n#hhhhhhhhhhhhh#\n#hhhhhhhhhhhhh#\n#hhh.......hhh#\n#hhh.c.c.c.hhh#\n#hhh.......hhh#\n#fhh.c.c.c.hhf#\n#hhh...p...hhh#\n#fhh.c.c.c.hhf#\n#hhh.......hhh#\n#hhhhhhhhhhhhh#\n#hhhhhhhhhhhhh#\n#hhhhhhhhhhhhh#\n###############\n\nmessage level 3 of 3\n\n#############\n#hhhfffffhhh#\n#hhhhhfhhhhh#\n#hhhhhhhhhhh#\n#hh.......hh#\n#hh.ccccc.hh#\n#fh.c...c.hf#\n#fh.c...c.hf#\n#fh.ccccc.hf#\n#fh.ccccc.hf#\n#hh...p...hh#\n#hhhhhhhhhhh#\n#hhhfffffhhh#\n#############\n",[0,3,3,3,0,1],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background hole:1,1,1,1,1,background hole target:2,2,background ball hole target:3,2,1,1,\n1,0,0,1,1,1,1,1,1,1,background ball hole:4,1,1,\n1,1,0,0,1,1,1,background:5,5,5,5,5,5,\n5,1,1,0,0,2,1,1,5,background ball:6,6,6,5,\n6,5,1,2,0,0,2,1,1,5,6,5,5,\n5,6,5,1,2,0,0,3,3,1,5,5,5,\n6,6,5,5,1,2,0,0,2,1,1,5,6,\n5,5,6,5,5,1,2,0,0,2,1,1,5,\n6,6,6,background player:7,5,5,1,2,0,0,1,1,1,\n5,5,5,5,5,5,5,1,1,0,0,1,1,\n1,1,1,1,1,1,4,1,1,1,0,0,1,\n1,1,1,1,2,2,2,3,1,1,1,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n",5,"1627891250265.7375"] + "newton", + ["title newton \nauthor increpare\nhomepage www.increpare.com\nnoaction\n\ncolor_palette 8\n\n========\nOBJECTS\n========\n\nBackground\nlightgray lightgray \n11111\n01111\n11101\n11111\n10111\n\nhole\nblack\n\ntarget\norange black\n00000\n0...0\n0...0\n0...0\n00000\n\nWall\ndarkred black \n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nball\nlightblue white\n.000.\n0...0\n0...0\n01..0\n.000.\n\nAU \ntransparent\n\nAD\ntransparent\n\nAL\ntransparent\n\nAR\ntransparent\n\nT\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nC = ball\n@ = ball and target\nO = target\nArrow = AU or AD or AL or AR\nObstacle = ball or Wall\nblock = T or wall\nh = hole\n$ = ball and hole\nf = target and hole\n\n=======\nSOUNDS\n=======\n\nsfx0 36772507 (ballmove)\nsfx1 20806902 (action)\nsfx2 44778100 (clink)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget\nPlayer, Wall, ball\nArrow\nT\n\n======\nRULES\n======\n\n\n[ > player | hole ] -> cancel\n\n[ arrow ] [ player ] -> [arrow] [ action player ]\n[ AU ball ] -> [ up ball ]\n[ AD ball ] -> [ down ball ]\n[ AL ball ] -> [ left ball ]\n[ AR ball ] -> [ right ball ]\n\n[ > ball | stationary ball ] -> [ stationary ball | > ball ] \n\n[ > ball | wall ] -> [ T ball | wall ]\n[ > ball | T ] -> [ T ball | ]\n[t]->[]\n\n[ stationary ball | > ball ] -> sfx2\n\n[ > Player | ball ] -> [ > Player | > ball ] sfx0 \n[ > ball | ball ] -> [ > ball | > ball ]\n\nup \t\t[ > ball | no obstacle ] -> [ | ball AU ] again\ndown [ > ball | no obstacle ] -> [ | ball AD ] again\nleft \t[ > ball | no obstacle ] -> [ | ball AL ] again\nright \t[ > ball | no obstacle ] -> [ | ball AR ] again\n\n==============\nWINCONDITIONS\n==============\n\nall ball on target\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 3\n\n###############\n#hhhhhhfhhhhhh#\n#hhhhhhfhhhhhh#\n#hhhhhhfhhhhhh#\n#hhh.......hhh#\n#hhh..ccc..hhh#\n#ffh..ccc..hff#\n#hhh..ccc..hhh#\n#hhh.......hhh#\n#hhh...p...hhh#\n#hhh.......hhh#\n#hhhhhhhhhhhhh#\n#hhhhhhhhhhhhh#\n#hhhhhfhfhhhhh#\n###############\n\nmessage level 2 of 3\n\n###############\n#hhhhfffffhhhh#\n#hhhhhhhhhhhhh#\n#hhhhhhhhhhhhh#\n#hhh.......hhh#\n#hhh.c.c.c.hhh#\n#hhh.......hhh#\n#fhh.c.c.c.hhf#\n#hhh...p...hhh#\n#fhh.c.c.c.hhf#\n#hhh.......hhh#\n#hhhhhhhhhhhhh#\n#hhhhhhhhhhhhh#\n#hhhhhhhhhhhhh#\n###############\n\nmessage level 3 of 3\n\n#############\n#hhhfffffhhh#\n#hhhhhfhhhhh#\n#hhhhhhhhhhh#\n#hh.......hh#\n#hh.ccccc.hh#\n#fh.c...c.hf#\n#fh.c...c.hf#\n#fh.ccccc.hf#\n#fh.ccccc.hf#\n#hh...p...hh#\n#hhhhhhhhhhh#\n#hhhfffffhhh#\n#############\n", [0, 3, 3, 3, 0, 1], "background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background hole:1,1,1,1,1,background hole target:2,2,background ball hole target:3,2,1,1,\n1,0,0,1,1,1,1,1,1,1,background ball hole:4,1,1,\n1,1,0,0,1,1,1,background:5,5,5,5,5,5,\n5,1,1,0,0,2,1,1,5,background ball:6,6,6,5,\n6,5,1,2,0,0,2,1,1,5,6,5,5,\n5,6,5,1,2,0,0,3,3,1,5,5,5,\n6,6,5,5,1,2,0,0,2,1,1,5,6,\n5,5,6,5,5,1,2,0,0,2,1,1,5,\n6,6,6,background player:7,5,5,1,2,0,0,1,1,1,\n5,5,5,5,5,5,5,1,1,0,0,1,1,\n1,1,1,1,1,1,4,1,1,1,0,0,1,\n1,1,1,1,2,2,2,3,1,1,1,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 5, "1627891250265.7375"] ], [ - "unewton", - ["title unewton \nauthor increpare\nhomepage www.increpare.com\n\n\ncolor_palette 7\n\n========\nOBJECTS\n========\n\nBackground\ngreen lightgreen\n11111\n01111\n11101\n11111\n10111\n\nhole\nblack\n\ntarget\norange black\n00000\n0...0\n0...0\n0...0\n00000\n\n\nWall\ndarkred black \n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nball\ndarkblue white blue\n.000.\n02220\n02220\n02220\n.000.\n\nAU \nblue white lightblue\n.000.\n02220\n02220\n02220\n.000.\n\nAD\nblue white lightblue\n.000.\n02220\n02220\n02220\n.000.\n\n\nAL\nblue white lightblue\n.000.\n02220\n02220\n02220\n.000.\n\n\nAR\nblue white lightblue\n.000.\n02220\n02220\n02220\n.000.\n\n\nT\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nC = ball\n@ = ball and target\nO = target\nArrow = AU or AD or AL or AR\nObstacle = ball or Wall\nblock = T or wall\nh = hole\n$ = ball and hole\nf = target and hole\nk = ball and hole and target\n\n=======\nSOUNDS\n=======\n\nsfx0 36772507 (ballmove)\nsfx1 20806902 (action)\nsfx2 44778100 (clink)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget\nPlayer, Wall, ball\nArrow\nT\n\n======\nRULES\n======\n\n\n[ > player | hole ] -> cancel\n\n[ arrow ] [ player ] -> [arrow] [ action player ]\n[ AU ball ] -> [ AU up ball ]\n[ AD ball ] -> [ AD down ball ]\n[ AL ball ] -> [ AL left ball ]\n[ AR ball ] -> [ AR right ball ]\n\n[ > ball | ball ] -> [ > ball | > ball ] \n\n[moving ball arrow] [ moving ball no arrow ] -> [ stationary ball ] [ moving ball no arrow ]\n\n[arrow]->[]\n\n[ > ball | wall ] -> [ T ball | wall ]\n[ > ball | T ] -> [ T ball | ]\n[t]->[]\n\n[ stationary ball | > ball ] -> sfx2\n\n[ action Player | ball ] -> [ action Player | > ball ] sfx0 \n\n[ > Player | ball ] -> [ > Player | > ball ] sfx0 \n[ > ball | ball ] -> [ > ball | > ball ]\n\nup \t\t[ action player ] [ > ball | no obstacle ] -> [ action player ] [ | ball AU ] again\ndown [ action player ] [ > ball | no obstacle ] -> [ action player ] [ | ball AD ] again\nleft \t[ action player ] [ > ball | no obstacle ] -> [ action player ] [ | ball AL ] again\nright \t[ action player ] [ > ball | no obstacle ] -> [ action player ] [ | ball AR ] again\n\n==============\nWINCONDITIONS\n==============\n\nall ball on target\nno arrow\n\n=======\nLEVELS\n=======\n\nmessage you can press X to kick balls!\n\nmessage level 1 of 4\n\n#########################\n#.......hhhhhhhhhhhhhhhh#\n#.c.c.c.hhhhhhhhhhhhhhhh#\n#.......hfhh$fhh$fhh$fff#\n#.c.c.c.hffh$hfh$hfh$hff#\n#....p..hfff$hhf$hhf$hhf#\n#.c.c.c.hhhhhhhhhhhhhhhh#\n#.......hhhhhhhhhhhhhhhh#\n#########################\n\nmessage level 2 of 4\n\n############\n#......fhhf#\n#.c.c..fh$f#\n#......fhhf#\n#.p.c..hhhh#\n#..........#\n#.c.c......#\n#..........#\n############\n\nmessage level 3 of 4\n\n\n#####################\n#.........o.........#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.cc.hfhkhfh.c..#.#\n#.#....hhhhhhh....#.#\n#....p..............#\n#...................#\n#####################\n\n\nmessage level 4 of 4\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$..o...#\n#.............#\n#.....hfh.....#\n#.#.$.f$f.$.#.#\n#.....hfh.....#\n#.............#\n#...p..$......#\n#.............#\n#......#......#\n#.............#\n###############\n\n(\n\nmessage level 4 of 5\n\n\n###########\n#hhhfhhhhh#\n#hhhfhh...#\n#fh$hfh.c.#\n#hhh$hh.c.#\n#.......c.#\n#hhh$hh...#\n#fh$hhh.p.#\n#hhhfhh...#\n#hhhfhhhhh#\n###########\n\n################\n#hhhhfffhhhhhhh#\n#hhhhfffhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhccccchhhff#\n#hhhhccccchhhff#\n#ffhhccpcchhhff#\n#ffhhccccchhhhh#\n#ffhhccccchhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhfffhhhhh#\n#hhhhhhfffhhhhh#\n################\n\n################\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhccccchhhhh#\n#hhhhccccchhhhh#\n#hhhhccpcchhhhh#\n#hhhhccccchhhhh#\n#hhhhccccchhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n################\n\n################\n#hhhhhhfhhhhhhh#\n#hhhhhhfhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhh.....hhhhh#\n#hhhh..c..hhhhh#\n#hhhh..p..hhhhh#\n#hhhh..c..hhhhh#\n#hhhh.....hhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n################\n\n\n################\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhh.....hhhhh#\n#hhhh.....hhhhh#\n#hhhh..p..hhhhh#\n#hhhh.....hhhhh#\n#hhhh.....hhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n################\n\n#################\n#...............#\n#.....c.c.c.....#\n#..cccccccc.....#\n#...hhhhhhhhh...#\n#..phhhhhhhhhc..#\n#...hhhhhhhhhcc.#\n#.cchhhhhhhhhcc.#\n#.cchhhh$hhhhcc.#\n#..chhhhhhhhhcc.#\n#...hhhhhhhhhc..#\n#...hhhhhhhhh...#\n#...hhhhhhhhh...#\n#....cccccc.....#\n#....ccccc......#\n#...............#\n#################\n\n\n#####################\n#...................#\n#........###........#\n#...................#\n#.......c.c.c.......#\n#....cccccccc.......#\n#.....hhhhhhhhh.....#\n#.....hhhhhhhhhc....#\n#...c.hhhhhhhhhcc...#\n#.#.cchhhhhhhhhcc.#.#\n#.#.pchhhh$hhhhcc.#.#\n#.#..chhhhhhhhhcc.#.#\n#.....hhhhhhhhhc....#\n#.....hhhhhhhhh.....#\n#.....hhhhhhhhh.....#\n#......cccccc.......#\n#......ccccc........#\n#...................#\n#........###........#\n#...................#\n#####################\n\n#####################\n#...................#\n#........###........#\n#...................#\n#.......c.c.c.......#\n#....cccccccc.......#\n#.....hhhhhhhhh.....#\n#.....hhhhhhhhhc....#\n#...c.hhhhfhhhhcc...#\n#.#.cchhhhhhhhhcc.#.#\n#.#.pchhfh$hfhhcc.#.#\n#.#..chhhhhhhhhcc.#.#\n#.....hhhhfhhhhc....#\n#.....hhhhhhhhh.....#\n#.....hhhhhhhhh.....#\n#......cccccc.......#\n#......ccccc........#\n#...................#\n#........###........#\n#...................#\n#####################\n\n#####################\n#...................#\n#........###........#\n#...................#\n#.......c.c.c.......#\n#....cccccccc.......#\n#...................#\n#...................#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.pc.hfh$hfh.c..#.#\n#.#....hhhhhhh....#.#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#........###........#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.pc.hfhkhfh.c..#.#\n#.#....hhhhhhh....#.#\n#...................#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.cc.hfhkhfh.c..#.#\n#.#....hhhhhhh....#.#\n#....p..............#\n#...................#\n#####################\n\n#####################\n#.........o.........#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.cc.hfhkhfh.c..#.#\n#.#....hhhhhhh....#.#\n#....p..............#\n#...................#\n#####################\n\nhhhhhhhhhhhh\nhhhhhhhhhhhh\nhhhhhhhh....\nh#fh$hfh.c..\nhhhhhhhh..c.\nh.......p...\nhhhhhhhh..c.\nh#hh$hhh.c..\nhhhhhhhh....\n\n############\n#hhhfhhhhhh#\n#hhhfhh....#\n#fh$hfh.c..#\n#hhh$hh....#\n#.......c.p#\n#hhh$hh....#\n#fh$hhh.c..#\n#hhhfhh....#\n#hhhfhhhhhh#\n############\n\n..........\n..........\n....$.....\n..........\n..........\n.$..$..$..\n....p.....\n..........\n....$.....\n..........\n..........\n\n##############\n#............#\n#............#\n#............#\n#.....$......#\n#............#\n#............#\n#..$..$..$...#\n#.....p......#\n#............#\n#.....$......#\n#............#\n#............#\n#............#\n##############\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$......#\n#.............#\n#.............#\n#.#.$..$..$.#.#\n#......p......#\n#.............#\n#......$......#\n#.............#\n#......#......#\n#.............#\n###############\n\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$......#\n#.............#\n#......h......#\n#.#.$.h$h.$.#.#\n#.p....h......#\n#.............#\n#......$......#\n#.............#\n#......#......#\n#.............#\n###############\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$......#\n#.............#\n#.....hfh.....#\n#.#.$.f@f.$.#.#\n#.p...hfh.....#\n#.............#\n#......$......#\n#.............#\n#......#......#\n#.............#\n###############\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$......#\n#.............#\n#.....hfh.....#\n#.#.$.fkf.$.#.#\n#.p...hfh.....#\n#.............#\n#......$......#\n#.............#\n#......#......#\n#.............#\n###############\n)\n",[1,1,0,0,3,3,0,3,2,3,1,2,2,3,1,0,4,"restart",1,1,0,0,0,2,3,4,0,0,3,3,3,3,3,3,3,3,3,3,2,4],"background wall:0,0,0,0,0,0,0,0,0,0,background:1,1,1,1,1,1,1,0,0,1,1,\n0,0,0,1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,\n0,1,1,background hole:2,2,2,1,1,0,0,1,1,2,background ball hole target:3,2,1,1,0,0,1,1,\n2,background ball hole:4,2,1,1,0,0,background target:5,1,2,background hole target:6,2,1,1,0,0,1,1,2,2,2,\n1,1,0,0,1,1,2,6,2,1,1,0,0,1,1,2,2,2,1,1,0,\n0,1,1,background player:7,1,1,1,background ball:8,0,0,1,1,1,1,1,1,1,0,0,1,1,\n1,1,1,1,1,0,0,1,1,1,8,1,1,1,0,0,1,1,0,0,0,\n1,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,\n",6,"1627891297042.881"] + "unewton", + ["title unewton \nauthor increpare\nhomepage www.increpare.com\n\n\ncolor_palette 7\n\n========\nOBJECTS\n========\n\nBackground\ngreen lightgreen\n11111\n01111\n11101\n11111\n10111\n\nhole\nblack\n\ntarget\norange black\n00000\n0...0\n0...0\n0...0\n00000\n\n\nWall\ndarkred black \n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nball\ndarkblue white blue\n.000.\n02220\n02220\n02220\n.000.\n\nAU \nblue white lightblue\n.000.\n02220\n02220\n02220\n.000.\n\nAD\nblue white lightblue\n.000.\n02220\n02220\n02220\n.000.\n\n\nAL\nblue white lightblue\n.000.\n02220\n02220\n02220\n.000.\n\n\nAR\nblue white lightblue\n.000.\n02220\n02220\n02220\n.000.\n\n\nT\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nC = ball\n@ = ball and target\nO = target\nArrow = AU or AD or AL or AR\nObstacle = ball or Wall\nblock = T or wall\nh = hole\n$ = ball and hole\nf = target and hole\nk = ball and hole and target\n\n=======\nSOUNDS\n=======\n\nsfx0 36772507 (ballmove)\nsfx1 20806902 (action)\nsfx2 44778100 (clink)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget\nPlayer, Wall, ball\nArrow\nT\n\n======\nRULES\n======\n\n\n[ > player | hole ] -> cancel\n\n[ arrow ] [ player ] -> [arrow] [ action player ]\n[ AU ball ] -> [ AU up ball ]\n[ AD ball ] -> [ AD down ball ]\n[ AL ball ] -> [ AL left ball ]\n[ AR ball ] -> [ AR right ball ]\n\n[ > ball | ball ] -> [ > ball | > ball ] \n\n[moving ball arrow] [ moving ball no arrow ] -> [ stationary ball ] [ moving ball no arrow ]\n\n[arrow]->[]\n\n[ > ball | wall ] -> [ T ball | wall ]\n[ > ball | T ] -> [ T ball | ]\n[t]->[]\n\n[ stationary ball | > ball ] -> sfx2\n\n[ action Player | ball ] -> [ action Player | > ball ] sfx0 \n\n[ > Player | ball ] -> [ > Player | > ball ] sfx0 \n[ > ball | ball ] -> [ > ball | > ball ]\n\nup \t\t[ action player ] [ > ball | no obstacle ] -> [ action player ] [ | ball AU ] again\ndown [ action player ] [ > ball | no obstacle ] -> [ action player ] [ | ball AD ] again\nleft \t[ action player ] [ > ball | no obstacle ] -> [ action player ] [ | ball AL ] again\nright \t[ action player ] [ > ball | no obstacle ] -> [ action player ] [ | ball AR ] again\n\n==============\nWINCONDITIONS\n==============\n\nall ball on target\nno arrow\n\n=======\nLEVELS\n=======\n\nmessage you can press X to kick balls!\n\nmessage level 1 of 4\n\n#########################\n#.......hhhhhhhhhhhhhhhh#\n#.c.c.c.hhhhhhhhhhhhhhhh#\n#.......hfhh$fhh$fhh$fff#\n#.c.c.c.hffh$hfh$hfh$hff#\n#....p..hfff$hhf$hhf$hhf#\n#.c.c.c.hhhhhhhhhhhhhhhh#\n#.......hhhhhhhhhhhhhhhh#\n#########################\n\nmessage level 2 of 4\n\n############\n#......fhhf#\n#.c.c..fh$f#\n#......fhhf#\n#.p.c..hhhh#\n#..........#\n#.c.c......#\n#..........#\n############\n\nmessage level 3 of 4\n\n\n#####################\n#.........o.........#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.cc.hfhkhfh.c..#.#\n#.#....hhhhhhh....#.#\n#....p..............#\n#...................#\n#####################\n\n\nmessage level 4 of 4\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$..o...#\n#.............#\n#.....hfh.....#\n#.#.$.f$f.$.#.#\n#.....hfh.....#\n#.............#\n#...p..$......#\n#.............#\n#......#......#\n#.............#\n###############\n\n(\n\nmessage level 4 of 5\n\n\n###########\n#hhhfhhhhh#\n#hhhfhh...#\n#fh$hfh.c.#\n#hhh$hh.c.#\n#.......c.#\n#hhh$hh...#\n#fh$hhh.p.#\n#hhhfhh...#\n#hhhfhhhhh#\n###########\n\n################\n#hhhhfffhhhhhhh#\n#hhhhfffhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhccccchhhff#\n#hhhhccccchhhff#\n#ffhhccpcchhhff#\n#ffhhccccchhhhh#\n#ffhhccccchhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhfffhhhhh#\n#hhhhhhfffhhhhh#\n################\n\n################\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhccccchhhhh#\n#hhhhccccchhhhh#\n#hhhhccpcchhhhh#\n#hhhhccccchhhhh#\n#hhhhccccchhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n################\n\n################\n#hhhhhhfhhhhhhh#\n#hhhhhhfhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhh.....hhhhh#\n#hhhh..c..hhhhh#\n#hhhh..p..hhhhh#\n#hhhh..c..hhhhh#\n#hhhh.....hhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n################\n\n\n################\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhh.....hhhhh#\n#hhhh.....hhhhh#\n#hhhh..p..hhhhh#\n#hhhh.....hhhhh#\n#hhhh.....hhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n################\n\n#################\n#...............#\n#.....c.c.c.....#\n#..cccccccc.....#\n#...hhhhhhhhh...#\n#..phhhhhhhhhc..#\n#...hhhhhhhhhcc.#\n#.cchhhhhhhhhcc.#\n#.cchhhh$hhhhcc.#\n#..chhhhhhhhhcc.#\n#...hhhhhhhhhc..#\n#...hhhhhhhhh...#\n#...hhhhhhhhh...#\n#....cccccc.....#\n#....ccccc......#\n#...............#\n#################\n\n\n#####################\n#...................#\n#........###........#\n#...................#\n#.......c.c.c.......#\n#....cccccccc.......#\n#.....hhhhhhhhh.....#\n#.....hhhhhhhhhc....#\n#...c.hhhhhhhhhcc...#\n#.#.cchhhhhhhhhcc.#.#\n#.#.pchhhh$hhhhcc.#.#\n#.#..chhhhhhhhhcc.#.#\n#.....hhhhhhhhhc....#\n#.....hhhhhhhhh.....#\n#.....hhhhhhhhh.....#\n#......cccccc.......#\n#......ccccc........#\n#...................#\n#........###........#\n#...................#\n#####################\n\n#####################\n#...................#\n#........###........#\n#...................#\n#.......c.c.c.......#\n#....cccccccc.......#\n#.....hhhhhhhhh.....#\n#.....hhhhhhhhhc....#\n#...c.hhhhfhhhhcc...#\n#.#.cchhhhhhhhhcc.#.#\n#.#.pchhfh$hfhhcc.#.#\n#.#..chhhhhhhhhcc.#.#\n#.....hhhhfhhhhc....#\n#.....hhhhhhhhh.....#\n#.....hhhhhhhhh.....#\n#......cccccc.......#\n#......ccccc........#\n#...................#\n#........###........#\n#...................#\n#####################\n\n#####################\n#...................#\n#........###........#\n#...................#\n#.......c.c.c.......#\n#....cccccccc.......#\n#...................#\n#...................#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.pc.hfh$hfh.c..#.#\n#.#....hhhhhhh....#.#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#........###........#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.pc.hfhkhfh.c..#.#\n#.#....hhhhhhh....#.#\n#...................#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.cc.hfhkhfh.c..#.#\n#.#....hhhhhhh....#.#\n#....p..............#\n#...................#\n#####################\n\n#####################\n#.........o.........#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.cc.hfhkhfh.c..#.#\n#.#....hhhhhhh....#.#\n#....p..............#\n#...................#\n#####################\n\nhhhhhhhhhhhh\nhhhhhhhhhhhh\nhhhhhhhh....\nh#fh$hfh.c..\nhhhhhhhh..c.\nh.......p...\nhhhhhhhh..c.\nh#hh$hhh.c..\nhhhhhhhh....\n\n############\n#hhhfhhhhhh#\n#hhhfhh....#\n#fh$hfh.c..#\n#hhh$hh....#\n#.......c.p#\n#hhh$hh....#\n#fh$hhh.c..#\n#hhhfhh....#\n#hhhfhhhhhh#\n############\n\n..........\n..........\n....$.....\n..........\n..........\n.$..$..$..\n....p.....\n..........\n....$.....\n..........\n..........\n\n##############\n#............#\n#............#\n#............#\n#.....$......#\n#............#\n#............#\n#..$..$..$...#\n#.....p......#\n#............#\n#.....$......#\n#............#\n#............#\n#............#\n##############\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$......#\n#.............#\n#.............#\n#.#.$..$..$.#.#\n#......p......#\n#.............#\n#......$......#\n#.............#\n#......#......#\n#.............#\n###############\n\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$......#\n#.............#\n#......h......#\n#.#.$.h$h.$.#.#\n#.p....h......#\n#.............#\n#......$......#\n#.............#\n#......#......#\n#.............#\n###############\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$......#\n#.............#\n#.....hfh.....#\n#.#.$.f@f.$.#.#\n#.p...hfh.....#\n#.............#\n#......$......#\n#.............#\n#......#......#\n#.............#\n###############\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$......#\n#.............#\n#.....hfh.....#\n#.#.$.fkf.$.#.#\n#.p...hfh.....#\n#.............#\n#......$......#\n#.............#\n#......#......#\n#.............#\n###############\n)\n", [1, 1, 0, 0, 3, 3, 0, 3, 2, 3, 1, 2, 2, 3, 1, 0, 4, "restart", 1, 1, 0, 0, 0, 2, 3, 4, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 4], "background wall:0,0,0,0,0,0,0,0,0,0,background:1,1,1,1,1,1,1,0,0,1,1,\n0,0,0,1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,\n0,1,1,background hole:2,2,2,1,1,0,0,1,1,2,background ball hole target:3,2,1,1,0,0,1,1,\n2,background ball hole:4,2,1,1,0,0,background target:5,1,2,background hole target:6,2,1,1,0,0,1,1,2,2,2,\n1,1,0,0,1,1,2,6,2,1,1,0,0,1,1,2,2,2,1,1,0,\n0,1,1,background player:7,1,1,1,background ball:8,0,0,1,1,1,1,1,1,1,0,0,1,1,\n1,1,1,1,1,0,0,1,1,1,8,1,1,1,0,0,1,1,0,0,0,\n1,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,\n", 6, "1627891297042.881"] ], [ - "Match two two by twos", - ["title Match two two by twos\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\nnorepeat_Action\n\n========\nOBJECTS\n========\n\nBackground\nblack black\n11111\n01111\n11101\n11111\n10111\n\n\nWall\ngray black\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nwhite \n00.00\n0...0\n.....\n0...0\n00.00\n\nRed R\nRed \n00000\n00.00\n0...0\n00.00\n00000\n\nGreen G\nGreen\n00000\n0.0.0\n00000\n0.0.0\n00000\n\nBlue B\nBlue \n00000\n0.000\n00.00\n000.0\n00000\n\nYellow Y\nyellow\n00000\n0...0\n00000\n0...0\n00000\n\nfunnel F\ngray black\n00010\n11111\n01000\n11111\n00010\n\ntodestroy\ntransparent white transparent transparent \n20002\n02.20\n0.1.0\n02.20\n20002\n\nMTL\ntransparent\n\nMTR\ntransparent\n\nMBL\ntransparent\n\nMBR\ntransparent\n\nMT\ntransparent\n\nMT2\ntransparent\n\n\nMTa\ntransparent\n\nMT2a\ntransparent\n\n\nMTb\ntransparent\n\nMT2b\ntransparent\n\nMb\ntransparent\n\nML\ntransparent\n\nMR\ntransparent\n\nmatch m\ntransparent\n\ntodelete D\ntransparent\n\ngobble\ntransparent\n.....\n.....\n..0..\n.....\n.....\n\nmidgobble\ntransparent\n.....\n.....\n..0..\n.....\n.....\n\nmoved\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n\n1 = gobble and blue\n2 = gobble and green\n3 = gobble and red\n4 = gobble and yellow\n5 = midgobble and blue\n6 = midgobble and green\n7 = midgobble and red\n8 = midgobble and yellow\n\nColor = red or green or blue or yellow\n\nanymatch = mtl or mtr or mbl or mbr or mt or mb or match or ml or mr or mt2 or mt or mta or mtb or mt2a or mt2b\n\npushable = color or player\n\n=======\nSOUNDS\n=======\n\nsfx0 30674702 (placement)\nsfx1 37302105 (remove)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncolor\nWall,player, Funnel\nmtl\nmtr\nmbl\nmbr\nmt\nmt2\nmta\nmt2a\nmtb\nmt2b\nmb\nml\nmr\nm\ntodelete\ntodestroy\ngobble\nmidgobble\nmoved\n\n======\nRULES\n======\n\n\n\n[todestroy]->[]\n\n(need to repeat this for down direction)\nright [ red \t| | red ] \t\t-> [ ml red \t| | mr red ]\nright [ green \t| | green ] \t-> [ ml green \t| | mr green ]\nright [ blue\t| | blue ] \t\t-> [ ml blue \t| | mr blue ]\nright [ yellow \t| | yellow ] \t-> [ ml yellow \t| | mr yellow ]\n\nright [ ml | ml | mr | mr ] -> [ ml mta | ml mtb | mr mta | mr mtb ]\n\n[ml]->[]\n[mr]->[]\n\n\ndown [ red \t| | red ] \t\t-> [ ml red \t| | mr red ]\ndown [ green \t| | green ] \t-> [ ml green \t| | mr green ]\ndown [ blue\t| | blue ] \t\t-> [ ml blue \t| | mr blue ]\ndown [ yellow \t| | yellow ] \t-> [ ml yellow \t| | mr yellow ]\n\ndown [ ml | ml | mr | mr ] -> [ ml mt2a | ml mt2b | mr mt2a | mr mt2b ]\n\n\ndown [ mta | mta ] -> [ mta no color todestroy | mta no color todestroy] sfx1 again\ndown [ mtb | mtb ] -> [ mtb no color todestroy | mtb no color todestroy ] sfx1 again\nright [ mt2a | mt2a ] -> [ mt2a no color todestroy | mt2a no color todestroy ] sfx1 again\nright [ mt2b | mt2b ] -> [ mt2b no color todestroy | mt2b no color todestroy ] sfx1 again\n\n[anymatch]->[]\n\n\nright [ midgobble | ... | color | no color ] -> [ midgobble | ... | | color ]\nright [ midgobble color | no color ] -> [ midgobble | color ]\n\nup [ gobble | ... | color | no color ] -> [ gobble | ... | | color ]\nup [ gobble color | no color ] -> [ gobble | color ]\n\n\n\n[action player color ] [gobble ] -> [ player moved] [ gobble color] again\n\n\ndown [ color | gobble no color ] -> [ | gobble color ]\ndown [ color | no color | ... | gobble ] -> [ | color | ... | gobble ]\n\n\nleft [ color | midgobble no color ] -> [ | midgobble color ]\nleft [ color | no color | ... | midgobble ] -> [ | color | ... | midgobble ]\n\n[action player no color ] [gobble color] -> [ action player color] [ gobble] sfx0 again\n\ndown [ color | gobble no color ] -> [ | gobble color ]\ndown [ color | no color | ... | gobble ] -> [ | color | ... | gobble ]\n\n\nleft [ color | midgobble no color ] -> [ | midgobble color ]\nleft [ color | no color | ... | midgobble ] -> [ | color | ... | midgobble ]\n\n==============\nWINCONDITIONS\n==============\n\nno color\n\n=======\nLEVELS\n=======\nmessage Level 1 of 3\n\nmessage create two identical 2x2 sections side by side to make them vanish\n\n#########\n#8yy.....\n#y#######\n#b#.....#\n#b#.....#\n#b#..p..#\n#1#.....#\n#F#######\n\nmessage Level 2 of 3\n\n#########\n#6bbbyyy.\n#g#######\n#g#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n\nmessage Level 3 of 3\n\n#########\n#7ryyyyyy\n#r#######\n#r#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\nmessage my congratulations\n\n(\n\n\n#########\n#7yyyyyyy\n#r#######\n#r#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n\n#########\n#6ggbbbyy\n#g#######\n#r#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n\n##############\n#............#\n#............#\n#............#\n#...RR.......#\n#p.R.R.......#\n#...RR.......#\n#...RR.......#\n#............#\n#............#\n#............#\n#............#\n##############\n\n\n#########\n#6gbbbyy#\n#g#######\n#r#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n#########\n#6bbbyyy#\n#g#######\n#g#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n\n###############\n#y#...........#\n#y#...........#\n#y#...........#\n#y#...........#\n#g#...........#\n#g#...........#\n#g#.....p.....#\n#g#...........#\n#r#...........#\n#r#...........#\n#b#...........#\n#b#...........#\n#1#...........#\n###############\n\n\n#############\n#8y.........#\n#y###########\n#b#.........#\n#b#.........#\n#b#.........#\n#g#.........#\n#g#....p....#\n#g#.........#\n#r#.........#\n#r#.........#\n#3#.........#\n#############\n\n#############\n#.#.........#\n#y#.........#\n#y#.........#\n#y#.........#\n#y#....p....#\n#b#.........#\n#b#.........#\n#b#.........#\n#1#.........#\n#############\n\n###############\n#.#...........#\n#y#...........#\n#y#...........#\n#y#...........#\n#g#...........#\n#g#...........#\n#g#.....p.....#\n#r#...........#\n#r#...........#\n#r#...........#\n#b#...........#\n#b#...........#\n#1#...........#\n###############\n\n\n#############\n#.#.........#\n#y#.........#\n#y#.........#\n#y#.........#\n#y#....p....#\n#b#.........#\n#b#.........#\n#b#.........#\n#1#.........#\n#############\n\n###########\n#.........#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.........#\n#....p....#\n#.........#\n###########\n###########\n#.........#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.......y.#\n#....p....#\n#.........#\n###########\n\n\n###########\n#.........#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.........#\n#....p....#\n#.........#\n###########\n\n\n##########\n#........#\n#...yb...#\n#..rgrg..#\n#p.byby..#\n#...gr...#\n#........#\n##########\n\n##########\n#........#\n#...gg...#\n#.p.gg...#\n#...gg...#\n#...gg...#\n#........#\n##########\n\n\n##########\n#........#\n#...yb...#\n#..rgrg..#\n#.byby...#\n#p..gr...#\n#........#\n##########\n\n\n\n##########\n#........#\n#........#\n#..rbbr..#\n#..gyyg..#\n#.p......#\n#........#\n##########\n\n########\n#......#\n#...p..#\n###....#\n#rgbr..#\n#bygy..#\n###....#\n########\n\n\n#############\n#...........#\n#...........#\n#...rrrrr...#\n#..r.rrr.r..#\n#...........#\n#.....p.....#\n#...........#\n#############\n\n\n###########\n#.........#\n#.........#\n#..rr.gg..#\n#..rr.gg..#\n#..rr.gg..#\n#.........#\n#....p....#\n#.........#\n###########\n\n\n\n\n##############\n#............#\n#.....P......#\n#.....R......#\n#...RR.RR....#\n#...RRRRR....#\n#.....RR.....#\n#.....RR.....#\n#............#\n#............#\n#............#\n#............#\n##############\n\n\n\n##############\n#............#\n#............#\n#............#\n#...RR.......#\n#p.R.R.......#\n#...RR.......#\n#...RR.......#\n#............#\n#............#\n#............#\n#............#\n##############\n\n##############\n#............#\n#............#\n#............#\n#...RRGG.....#\n#p.R.RGG.....#\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\n)\n",[3,0,1,4,3,4,3,4,2,4,1,4,1,4,1,4,0,4,0,4,3,4,3,4,3,4,3,2,1,4,1,4,1,4,1,1,4,0,4,3,1,1,3,4,3,4,3,4,2,1,1,1,2,4,3,4,3,4,3,1,1,0,0,3,3,2,2,4,1,1,1,2,4,3,3,4,0,0,3,3,4,1,1,1,1,2,4,3,3,1,1,3,3,3,2,4,1,1,4,0,3,3,3,4,1,1,4,3,4,1,1,4,3,3,4,0,4,2,4],"background wall:0,0,0,0,0,0,0,0,0,\nbackground midgobble:1,background:2,2,2,2,background gobble red:3,0,0,2,\n0,0,0,0,0,0,0,2,0,\nbackground moved:4,4,4,2,0,0,2,0,4,\n4,4,2,0,0,2,0,4,4,\n4,2,0,0,2,0,4,background blue moved:5,background moved player:6,\n2,0,0,2,0,2,background green:7,background yellow:8,2,\n0,0,2,0,0,0,0,0,0,\n",4,"1627891318219.0203"] + "Match two two by twos", + ["title Match two two by twos\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\nnorepeat_Action\n\n========\nOBJECTS\n========\n\nBackground\nblack black\n11111\n01111\n11101\n11111\n10111\n\n\nWall\ngray black\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nwhite \n00.00\n0...0\n.....\n0...0\n00.00\n\nRed R\nRed \n00000\n00.00\n0...0\n00.00\n00000\n\nGreen G\nGreen\n00000\n0.0.0\n00000\n0.0.0\n00000\n\nBlue B\nBlue \n00000\n0.000\n00.00\n000.0\n00000\n\nYellow Y\nyellow\n00000\n0...0\n00000\n0...0\n00000\n\nfunnel F\ngray black\n00010\n11111\n01000\n11111\n00010\n\ntodestroy\ntransparent white transparent transparent \n20002\n02.20\n0.1.0\n02.20\n20002\n\nMTL\ntransparent\n\nMTR\ntransparent\n\nMBL\ntransparent\n\nMBR\ntransparent\n\nMT\ntransparent\n\nMT2\ntransparent\n\n\nMTa\ntransparent\n\nMT2a\ntransparent\n\n\nMTb\ntransparent\n\nMT2b\ntransparent\n\nMb\ntransparent\n\nML\ntransparent\n\nMR\ntransparent\n\nmatch m\ntransparent\n\ntodelete D\ntransparent\n\ngobble\ntransparent\n.....\n.....\n..0..\n.....\n.....\n\nmidgobble\ntransparent\n.....\n.....\n..0..\n.....\n.....\n\nmoved\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n\n1 = gobble and blue\n2 = gobble and green\n3 = gobble and red\n4 = gobble and yellow\n5 = midgobble and blue\n6 = midgobble and green\n7 = midgobble and red\n8 = midgobble and yellow\n\nColor = red or green or blue or yellow\n\nanymatch = mtl or mtr or mbl or mbr or mt or mb or match or ml or mr or mt2 or mt or mta or mtb or mt2a or mt2b\n\npushable = color or player\n\n=======\nSOUNDS\n=======\n\nsfx0 30674702 (placement)\nsfx1 37302105 (remove)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncolor\nWall,player, Funnel\nmtl\nmtr\nmbl\nmbr\nmt\nmt2\nmta\nmt2a\nmtb\nmt2b\nmb\nml\nmr\nm\ntodelete\ntodestroy\ngobble\nmidgobble\nmoved\n\n======\nRULES\n======\n\n\n\n[todestroy]->[]\n\n(need to repeat this for down direction)\nright [ red \t| | red ] \t\t-> [ ml red \t| | mr red ]\nright [ green \t| | green ] \t-> [ ml green \t| | mr green ]\nright [ blue\t| | blue ] \t\t-> [ ml blue \t| | mr blue ]\nright [ yellow \t| | yellow ] \t-> [ ml yellow \t| | mr yellow ]\n\nright [ ml | ml | mr | mr ] -> [ ml mta | ml mtb | mr mta | mr mtb ]\n\n[ml]->[]\n[mr]->[]\n\n\ndown [ red \t| | red ] \t\t-> [ ml red \t| | mr red ]\ndown [ green \t| | green ] \t-> [ ml green \t| | mr green ]\ndown [ blue\t| | blue ] \t\t-> [ ml blue \t| | mr blue ]\ndown [ yellow \t| | yellow ] \t-> [ ml yellow \t| | mr yellow ]\n\ndown [ ml | ml | mr | mr ] -> [ ml mt2a | ml mt2b | mr mt2a | mr mt2b ]\n\n\ndown [ mta | mta ] -> [ mta no color todestroy | mta no color todestroy] sfx1 again\ndown [ mtb | mtb ] -> [ mtb no color todestroy | mtb no color todestroy ] sfx1 again\nright [ mt2a | mt2a ] -> [ mt2a no color todestroy | mt2a no color todestroy ] sfx1 again\nright [ mt2b | mt2b ] -> [ mt2b no color todestroy | mt2b no color todestroy ] sfx1 again\n\n[anymatch]->[]\n\n\nright [ midgobble | ... | color | no color ] -> [ midgobble | ... | | color ]\nright [ midgobble color | no color ] -> [ midgobble | color ]\n\nup [ gobble | ... | color | no color ] -> [ gobble | ... | | color ]\nup [ gobble color | no color ] -> [ gobble | color ]\n\n\n\n[action player color ] [gobble ] -> [ player moved] [ gobble color] again\n\n\ndown [ color | gobble no color ] -> [ | gobble color ]\ndown [ color | no color | ... | gobble ] -> [ | color | ... | gobble ]\n\n\nleft [ color | midgobble no color ] -> [ | midgobble color ]\nleft [ color | no color | ... | midgobble ] -> [ | color | ... | midgobble ]\n\n[action player no color ] [gobble color] -> [ action player color] [ gobble] sfx0 again\n\ndown [ color | gobble no color ] -> [ | gobble color ]\ndown [ color | no color | ... | gobble ] -> [ | color | ... | gobble ]\n\n\nleft [ color | midgobble no color ] -> [ | midgobble color ]\nleft [ color | no color | ... | midgobble ] -> [ | color | ... | midgobble ]\n\n==============\nWINCONDITIONS\n==============\n\nno color\n\n=======\nLEVELS\n=======\nmessage Level 1 of 3\n\nmessage create two identical 2x2 sections side by side to make them vanish\n\n#########\n#8yy.....\n#y#######\n#b#.....#\n#b#.....#\n#b#..p..#\n#1#.....#\n#F#######\n\nmessage Level 2 of 3\n\n#########\n#6bbbyyy.\n#g#######\n#g#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n\nmessage Level 3 of 3\n\n#########\n#7ryyyyyy\n#r#######\n#r#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\nmessage my congratulations\n\n(\n\n\n#########\n#7yyyyyyy\n#r#######\n#r#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n\n#########\n#6ggbbbyy\n#g#######\n#r#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n\n##############\n#............#\n#............#\n#............#\n#...RR.......#\n#p.R.R.......#\n#...RR.......#\n#...RR.......#\n#............#\n#............#\n#............#\n#............#\n##############\n\n\n#########\n#6gbbbyy#\n#g#######\n#r#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n#########\n#6bbbyyy#\n#g#######\n#g#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n\n###############\n#y#...........#\n#y#...........#\n#y#...........#\n#y#...........#\n#g#...........#\n#g#...........#\n#g#.....p.....#\n#g#...........#\n#r#...........#\n#r#...........#\n#b#...........#\n#b#...........#\n#1#...........#\n###############\n\n\n#############\n#8y.........#\n#y###########\n#b#.........#\n#b#.........#\n#b#.........#\n#g#.........#\n#g#....p....#\n#g#.........#\n#r#.........#\n#r#.........#\n#3#.........#\n#############\n\n#############\n#.#.........#\n#y#.........#\n#y#.........#\n#y#.........#\n#y#....p....#\n#b#.........#\n#b#.........#\n#b#.........#\n#1#.........#\n#############\n\n###############\n#.#...........#\n#y#...........#\n#y#...........#\n#y#...........#\n#g#...........#\n#g#...........#\n#g#.....p.....#\n#r#...........#\n#r#...........#\n#r#...........#\n#b#...........#\n#b#...........#\n#1#...........#\n###############\n\n\n#############\n#.#.........#\n#y#.........#\n#y#.........#\n#y#.........#\n#y#....p....#\n#b#.........#\n#b#.........#\n#b#.........#\n#1#.........#\n#############\n\n###########\n#.........#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.........#\n#....p....#\n#.........#\n###########\n###########\n#.........#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.......y.#\n#....p....#\n#.........#\n###########\n\n\n###########\n#.........#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.........#\n#....p....#\n#.........#\n###########\n\n\n##########\n#........#\n#...yb...#\n#..rgrg..#\n#p.byby..#\n#...gr...#\n#........#\n##########\n\n##########\n#........#\n#...gg...#\n#.p.gg...#\n#...gg...#\n#...gg...#\n#........#\n##########\n\n\n##########\n#........#\n#...yb...#\n#..rgrg..#\n#.byby...#\n#p..gr...#\n#........#\n##########\n\n\n\n##########\n#........#\n#........#\n#..rbbr..#\n#..gyyg..#\n#.p......#\n#........#\n##########\n\n########\n#......#\n#...p..#\n###....#\n#rgbr..#\n#bygy..#\n###....#\n########\n\n\n#############\n#...........#\n#...........#\n#...rrrrr...#\n#..r.rrr.r..#\n#...........#\n#.....p.....#\n#...........#\n#############\n\n\n###########\n#.........#\n#.........#\n#..rr.gg..#\n#..rr.gg..#\n#..rr.gg..#\n#.........#\n#....p....#\n#.........#\n###########\n\n\n\n\n##############\n#............#\n#.....P......#\n#.....R......#\n#...RR.RR....#\n#...RRRRR....#\n#.....RR.....#\n#.....RR.....#\n#............#\n#............#\n#............#\n#............#\n##############\n\n\n\n##############\n#............#\n#............#\n#............#\n#...RR.......#\n#p.R.R.......#\n#...RR.......#\n#...RR.......#\n#............#\n#............#\n#............#\n#............#\n##############\n\n##############\n#............#\n#............#\n#............#\n#...RRGG.....#\n#p.R.RGG.....#\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\n)\n", [3, 0, 1, 4, 3, 4, 3, 4, 2, 4, 1, 4, 1, 4, 1, 4, 0, 4, 0, 4, 3, 4, 3, 4, 3, 4, 3, 2, 1, 4, 1, 4, 1, 4, 1, 1, 4, 0, 4, 3, 1, 1, 3, 4, 3, 4, 3, 4, 2, 1, 1, 1, 2, 4, 3, 4, 3, 4, 3, 1, 1, 0, 0, 3, 3, 2, 2, 4, 1, 1, 1, 2, 4, 3, 3, 4, 0, 0, 3, 3, 4, 1, 1, 1, 1, 2, 4, 3, 3, 1, 1, 3, 3, 3, 2, 4, 1, 1, 4, 0, 3, 3, 3, 4, 1, 1, 4, 3, 4, 1, 1, 4, 3, 3, 4, 0, 4, 2, 4], "background wall:0,0,0,0,0,0,0,0,0,\nbackground midgobble:1,background:2,2,2,2,background gobble red:3,0,0,2,\n0,0,0,0,0,0,0,2,0,\nbackground moved:4,4,4,2,0,0,2,0,4,\n4,4,2,0,0,2,0,4,4,\n4,2,0,0,2,0,4,background blue moved:5,background moved player:6,\n2,0,0,2,0,2,background green:7,background yellow:8,2,\n0,0,2,0,0,0,0,0,0,\n", 4, "1627891318219.0203"] ], [ - "Garten der Medusen", - ["title Garten der Medusen\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nnoaction\nagain_interval 0.03\nbackground_color black\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nblood\ndarkred red \n..0..\n.010.\n01110\n.010.\n..0..\n\nMedussa_u 1\ngray green\n..1..\n.111.\n.010.\n00100\n.0.0.\n\n\nMedussa_d 2\ngray green\n.....\n.010.\n.010.\n01110\n.010.\n\nMedussa_l 3\ngray green\n.....\n.100.\n1111.\n01000\n.0.0.\n\nMedussa_r 4\ngray green\n.....\n.001.\n.1111\n00010\n.0.0.\n\nWall\ngray darkgray\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nyellow orange brown\n.000.\n.111.\n11111\n.222.\n.2.2.\n\nstatue\nlightgray gray darkgray\n.000.\n.111.\n11111\n.222.\n.2.2.\n\nmove_up\ntransparent\n\nmove_down\ntransparent\n\nmove_left\ntransparent\n\nmove_right\ntransparent\n\nmove_stop\ntransparent\n\nT\ntransparent\n\nSpawner\nblue\n.000.\n00000\n00000\n00000\n00000\n\nlight_h\nyellow\n.....\n.....\n.000.\n.....\n.....\n\n\nlight_v\nyellow\n.....\n..0..\n..0..\n..0..\n.....\n\ndontspawn\ntransparent\n\n=======\nLEGEND\n=======\n\nmedussa = 1 or 2 or 3 or 4\n\nobstacle = player or wall or medussa or statue\n. = Background\n# = Wall\nP = Player \nS = Spawner\n* = player and spawner\n\ntoken = move_up or move_down or move_left or move_right or move_stop\nlight = light_h or light_v\n\n\n=======\nSOUNDS\n=======\n\nsfx1 77753704 (kill medusa)\nsfx2 22214502 (statue)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n\nSpawner \nblood\n\nlight_h\nlight_v\nPlayer, Wall, Medussa, statue\n\ndontspawn\nT\nToken\n\n\n======\nRULES\n======\n\n\nrandom [ ] -> [ t ]\n[dontspawn]->[]\n\n[ player ] [ spawner ] -> [ player ] [ spawner dontspawn ]\n\n[ spawner no dontspawn ] [ token ] -> [ spawner no dontspawn ] [ ]\n[ spawner no dontspawn ] -> [ spawner player ]\n\n[ light ] -> []\n\n[ up player ] [ T ] -> [ player ] [ T move_up ]\n[ down player ] [ T ] -> [ player ] [ T move_down ]\n[ left player ] [ T ] -> [ player ] [ T move_left ]\n[ right player ] [ T ] -> [ player ] [ T move_right ]\n\n[ move_up ] [ player ] -> [ move_up ] [ up player ] again\n[ move_down ] [ player ] -> [ move_down ] [ down player ] again\n[ move_left ] [ player ] -> [ move_left ] [ left player ] again\n[ move_right ] [ player ] -> [ move_right ] [ right player ] again\n\n[ > player | obstacle ] [ token ] -> [ > player | obstacle ] [ move_stop ]\n\n[ > Player | Medussa ] -> [ > player | blood ] sfx1\n[ > player ] [ move_stop ] -> [ player ] [ move_stop ]\n\n[move_stop]->[]\n\nlate [ t ] -> [ ]\n\n\nlate up [ 1 | no obstacle ] -> [ 1 | light_v ]\nlate down [ 2 | no obstacle ] -> [ 2 | light_v ]\nlate left [ 3 | no obstacle ] -> [ 3 | light_h ]\nlate right [ 4 | no obstacle ] -> [ 4 | light_h ]\n\nlate horizontal [ light_h | no obstacle ] -> [ light_h | light_h ]\nlate vertical \t[ light_v | no obstacle ] -> [ light_v | light_v ]\n\n\nlate up [ 1 | player ] -> [ 1 | player light_h ]\nlate down [ 2 | player ] -> [ 2 | player light_h ]\nlate left [ 3 | player ] -> [ 3 | player light_h ]\nlate right [ 4 | player ] -> [ 4 | player light_h ]\n\nlate horizontal [ light_h | player ] -> [ light_h | player light_h ]\nlate vertical [ light_v | player ] -> [ light_v | player light_v ]\n\nlate [ player light ] -> [ statue light ] sfx2 again\n\n==============\nWINCONDITIONS\n==============\n\nNo Medussa\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 8\n\n#############\n#...........#\n#...........#\n#...1.......#\n#..3....2...#\n#...........#\n#...........#\n#..3..p..4..#\n#...2.......#\n#...........#\n#...........#\n#############\n\nmessage Level 2 von 8\n\n#############\n#...........#\n#...........#\n#...4.......#\n#...........#\n#...........#\n#.....p..2..#\n#...........#\n#..1........#\n#.......3...#\n#...........#\n#...........#\n#############\n\n\nmessage Level 3 von 8\n\n#############\n#...........#\n#...........#\n#...4.......#\n#........2..#\n#...........#\n#.....*.....#\n#...........#\n#..1........#\n#.......3...#\n#...........#\n#...........#\n#############\n\nmessage Level 4 von 8\n\n\n############\n#....34....#\n#....34....#\n#..........#\n#.....*....#\n#..........#\n#..........#\n#.4......3.#\n#..........#\n############\n\nmessage Level 5 von 8\n\n##############\n#............#\n#..2.2.2.2...#\n#............#\n#............#\n#..........*.#\n#............#\n#............#\n#.1.1.1.1....#\n#............#\n##############\n\nmessage Level 6 von 8\n\n\n#############\n#...........#\n#.4.........#\n#..2222.....#\n#...........#\n#...........#\n#........*..#\n#...........#\n#...........#\n#..1111.....#\n#.4.........#\n#...........#\n#############\n\nmessage Level 7 von 8\n\n\n###################\n#.................#\n#.................#\n#.....4...........#\n#.....4...........#\n#.....4...........#\n#............222..#\n#.................#\n#.................#\n#........*........#\n#.................#\n#.................#\n#..111............#\n#...........3.....#\n#...........3.....#\n#...........3.....#\n#.................#\n#.................#\n###################\n\n\nmessage Level 8 von 8\n\n###############\n#..........22.#\n#4............#\n#4............#\n#.............#\n#.............#\n#.............#\n#......*......#\n#.............#\n#.............#\n#.............#\n#............3#\n#............3#\n#.11..........#\n###############\n\nmessage ich gratuliere!\n\n(\n#################\n#...............#\n#...........22..#\n#.4.............#\n#.4.............#\n#...............#\n#...............#\n#...............#\n#.......*.......#\n#...............#\n#...............#\n#...............#\n#.............3.#\n#.............3.#\n#..11...........#\n#...............#\n#################\n\n\n#################\n#...............#\n#...............#\n#....4..........#\n#....4..........#\n#...........22..#\n#...............#\n#...............#\n#.......*.......#\n#...............#\n#...............#\n#..11...........#\n#..........3....#\n#..........3....#\n#...............#\n#...............#\n#################\n\n\n#################\n#...............#\n#....4..........#\n#....4..........#\n#....4..........#\n#...........222.#\n#...............#\n#...............#\n#.......*.......#\n#...............#\n#...............#\n#.111...........#\n#..........3....#\n#..........3....#\n#..........3....#\n#...............#\n#################\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.................11#\n#.........*........2#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.1.................#\n#...................#\n#####################\n\n\n###################\n#.................#\n#.................#\n#....4............#\n#....4............#\n#............22...#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#..11.............#\n#...........3.....#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n###################\n\n########\n#......#\n#.4....#\n#..2...#\n#....*.#\n#..1...#\n#.4....#\n#......#\n########\n\n\n##########\n#........#\n#.4......#\n#..2.....#\n#........#\n#.....*..#\n#........#\n#..1.....#\n#.4......#\n#........#\n##########\n\n#########\n#.......#\n#.2...2.#\n#..4.3..#\n#.......#\n#...*...#\n#.......#\n#########\n\n#############\n#...........#\n#.4.........#\n#..2........#\n#...........#\n#...........#\n#........*..#\n#...........#\n#...........#\n#..1........#\n#.4.........#\n#...........#\n#############\n\n###############\n#.............#\n#.4...........#\n#..2222.......#\n#.............#\n#.............#\n#...........*.#\n#.............#\n#.............#\n#..1111.......#\n#.4...........#\n#.............#\n###############\n\n\n##############\n#4...........#\n#.2222.......#\n#............#\n#............#\n#..........*.#\n#............#\n#............#\n#.1111.......#\n#4...........#\n##############\n\n#####################\n#...................#\n#..2.2.2.2..........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#..............*....#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.1.1.1.1...........#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#.............2.....#\n#...................#\n#...................#\n#................3..#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...4...............#\n#...................#\n#.....1.............#\n#...................#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#......4............#\n#.............2.....#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#.....1.............#\n#............3......#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#....4..............#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...4...............#\n#...................#\n#.....1.............#\n#.............1.....#\n#...................#\n#####################\n\n\n#############\n#...........#\n#...........#\n#...1.......#\n#..4....2...#\n#...........#\n#...........#\n#..3..*..4..#\n#...2.......#\n#...........#\n#...........#\n#############\n\n#############\n#...........#\n#...........#\n#...1.......#\n#..3....2...#\n#...........#\n#...........#\n#..3..*..4..#\n#...2.......#\n#...........#\n#...........#\n#############\n\n##############\n#............#\n#............#\n#...4........#\n#............#\n#............#\n#............#\n#.........1..#\n#..*.........#\n#............#\n##############\n\n##############\n#............#\n#............#\n#..4.........#\n#............#\n#............#\n#..#.........#\n#.4..........#\n#..p......1..#\n#............#\n##############\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#............1....#\n#.......p.........#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#............1....#\n#.......*.........#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#............1....#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n###################\n#.................#\n#.................#\n#.................#\n#....4............#\n#............2....#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n\n###################\n#.................#\n#.................#\n#.................#\n#....2............#\n#.................#\n#.................#\n#.................#\n#.......*....2....#\n#.................#\n#.................#\n#...1.............#\n#..............3..#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n###################\n#.................#\n#.................#\n#.................#\n#....2............#\n#.................#\n#.................#\n#............2....#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#..............3..#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n###################\n#.................#\n#.................#\n#.................#\n#....2............#\n#............2....#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#.............2.....#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#.....1.............#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#.............2.....#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.....1.............#\n#...................#\n#####################\n\n#####################\n#...................#\n#.............22....#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#....11.............#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#......4............#\n#.............2.....#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#.....1.............#\n#............3......#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#......4............#\n#.............2.....#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#.....1.............#\n#............3......#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#.............2.....#\n#....4..............#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#..............3....#\n#.....1.............#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#.......1...........#\n#......3....2.......#\n#...................#\n#...................#\n#......3..p..4......#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#.......1...........#\n#......3....2.......#\n#...................#\n#...................#\n#......3..p..4......#\n#.......2...........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#.......1...........#\n#......3....2.......#\n#...................#\n#...................#\n#......3..p..4......#\n#.......2...........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#.......1...........#\n#......3....2.......#\n#...................#\n#...................#\n#......3..p..4......#\n#.......2...........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n\n\n############\n#....34....#\n#....34....#\n#..........#\n#..........#\n#.....*....#\n#..........#\n#..........#\n#.4......3.#\n#..........#\n############\n\n\n############\n#....34....#\n#....34....#\n#..........#\n#.....*....#\n#..........#\n#.4......3.#\n#..........#\n############\n\n\n###################\n#.................#\n#.................#\n#....4............#\n#....4............#\n#............22...#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#..11.............#\n#.4...............#\n#.4...............#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n\n###############\n#.............#\n#.............#\n#...4.........#\n#.............#\n#.............#\n#.............#\n#......p...2..#\n#.............#\n#.............#\n#..1..........#\n#.........3...#\n#.............#\n#.............#\n###############\n\n###################\n#.................#\n#.................#\n#.................#\n#....4............#\n#.................#\n#.................#\n#.................#\n#.......p....2....#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n\n###################\n#.................#\n#.................#\n#.................#\n#....4............#\n#............2....#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n#############\n#....3.4....#\n#....3.4....#\n#...........#\n#.....*.....#\n#...........#\n#...........#\n#.4.......3.#\n#...........#\n#############\n\n)\n",[1,0,1,0,1,0,3,0,1,2,3,0,1,2,2],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,background medussa_r:2,1,1,1,1,1,1,1,2,1,0,\n0,1,background light_h:3,background medussa_d:4,background light_v:5,5,5,5,5,background medussa_u:6,3,1,0,\n0,1,3,4,5,5,5,5,5,6,3,1,0,\n0,1,3,4,5,5,5,5,5,6,3,1,0,\n0,1,3,4,5,5,background statue:7,5,5,6,3,1,0,\n0,1,7,1,1,1,1,1,1,1,7,1,0,\n0,1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,7,1,1,1,background dontspawn spawner:8,1,1,1,1,background player:9,0,\n0,1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,1,1,7,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n",11,"1627891371908.893"] + "Garten der Medusen", + ["title Garten der Medusen\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nnoaction\nagain_interval 0.03\nbackground_color black\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nblood\ndarkred red \n..0..\n.010.\n01110\n.010.\n..0..\n\nMedussa_u 1\ngray green\n..1..\n.111.\n.010.\n00100\n.0.0.\n\n\nMedussa_d 2\ngray green\n.....\n.010.\n.010.\n01110\n.010.\n\nMedussa_l 3\ngray green\n.....\n.100.\n1111.\n01000\n.0.0.\n\nMedussa_r 4\ngray green\n.....\n.001.\n.1111\n00010\n.0.0.\n\nWall\ngray darkgray\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nyellow orange brown\n.000.\n.111.\n11111\n.222.\n.2.2.\n\nstatue\nlightgray gray darkgray\n.000.\n.111.\n11111\n.222.\n.2.2.\n\nmove_up\ntransparent\n\nmove_down\ntransparent\n\nmove_left\ntransparent\n\nmove_right\ntransparent\n\nmove_stop\ntransparent\n\nT\ntransparent\n\nSpawner\nblue\n.000.\n00000\n00000\n00000\n00000\n\nlight_h\nyellow\n.....\n.....\n.000.\n.....\n.....\n\n\nlight_v\nyellow\n.....\n..0..\n..0..\n..0..\n.....\n\ndontspawn\ntransparent\n\n=======\nLEGEND\n=======\n\nmedussa = 1 or 2 or 3 or 4\n\nobstacle = player or wall or medussa or statue\n. = Background\n# = Wall\nP = Player \nS = Spawner\n* = player and spawner\n\ntoken = move_up or move_down or move_left or move_right or move_stop\nlight = light_h or light_v\n\n\n=======\nSOUNDS\n=======\n\nsfx1 77753704 (kill medusa)\nsfx2 22214502 (statue)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n\nSpawner \nblood\n\nlight_h\nlight_v\nPlayer, Wall, Medussa, statue\n\ndontspawn\nT\nToken\n\n\n======\nRULES\n======\n\n\nrandom [ ] -> [ t ]\n[dontspawn]->[]\n\n[ player ] [ spawner ] -> [ player ] [ spawner dontspawn ]\n\n[ spawner no dontspawn ] [ token ] -> [ spawner no dontspawn ] [ ]\n[ spawner no dontspawn ] -> [ spawner player ]\n\n[ light ] -> []\n\n[ up player ] [ T ] -> [ player ] [ T move_up ]\n[ down player ] [ T ] -> [ player ] [ T move_down ]\n[ left player ] [ T ] -> [ player ] [ T move_left ]\n[ right player ] [ T ] -> [ player ] [ T move_right ]\n\n[ move_up ] [ player ] -> [ move_up ] [ up player ] again\n[ move_down ] [ player ] -> [ move_down ] [ down player ] again\n[ move_left ] [ player ] -> [ move_left ] [ left player ] again\n[ move_right ] [ player ] -> [ move_right ] [ right player ] again\n\n[ > player | obstacle ] [ token ] -> [ > player | obstacle ] [ move_stop ]\n\n[ > Player | Medussa ] -> [ > player | blood ] sfx1\n[ > player ] [ move_stop ] -> [ player ] [ move_stop ]\n\n[move_stop]->[]\n\nlate [ t ] -> [ ]\n\n\nlate up [ 1 | no obstacle ] -> [ 1 | light_v ]\nlate down [ 2 | no obstacle ] -> [ 2 | light_v ]\nlate left [ 3 | no obstacle ] -> [ 3 | light_h ]\nlate right [ 4 | no obstacle ] -> [ 4 | light_h ]\n\nlate horizontal [ light_h | no obstacle ] -> [ light_h | light_h ]\nlate vertical \t[ light_v | no obstacle ] -> [ light_v | light_v ]\n\n\nlate up [ 1 | player ] -> [ 1 | player light_h ]\nlate down [ 2 | player ] -> [ 2 | player light_h ]\nlate left [ 3 | player ] -> [ 3 | player light_h ]\nlate right [ 4 | player ] -> [ 4 | player light_h ]\n\nlate horizontal [ light_h | player ] -> [ light_h | player light_h ]\nlate vertical [ light_v | player ] -> [ light_v | player light_v ]\n\nlate [ player light ] -> [ statue light ] sfx2 again\n\n==============\nWINCONDITIONS\n==============\n\nNo Medussa\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 8\n\n#############\n#...........#\n#...........#\n#...1.......#\n#..3....2...#\n#...........#\n#...........#\n#..3..p..4..#\n#...2.......#\n#...........#\n#...........#\n#############\n\nmessage Level 2 von 8\n\n#############\n#...........#\n#...........#\n#...4.......#\n#...........#\n#...........#\n#.....p..2..#\n#...........#\n#..1........#\n#.......3...#\n#...........#\n#...........#\n#############\n\n\nmessage Level 3 von 8\n\n#############\n#...........#\n#...........#\n#...4.......#\n#........2..#\n#...........#\n#.....*.....#\n#...........#\n#..1........#\n#.......3...#\n#...........#\n#...........#\n#############\n\nmessage Level 4 von 8\n\n\n############\n#....34....#\n#....34....#\n#..........#\n#.....*....#\n#..........#\n#..........#\n#.4......3.#\n#..........#\n############\n\nmessage Level 5 von 8\n\n##############\n#............#\n#..2.2.2.2...#\n#............#\n#............#\n#..........*.#\n#............#\n#............#\n#.1.1.1.1....#\n#............#\n##############\n\nmessage Level 6 von 8\n\n\n#############\n#...........#\n#.4.........#\n#..2222.....#\n#...........#\n#...........#\n#........*..#\n#...........#\n#...........#\n#..1111.....#\n#.4.........#\n#...........#\n#############\n\nmessage Level 7 von 8\n\n\n###################\n#.................#\n#.................#\n#.....4...........#\n#.....4...........#\n#.....4...........#\n#............222..#\n#.................#\n#.................#\n#........*........#\n#.................#\n#.................#\n#..111............#\n#...........3.....#\n#...........3.....#\n#...........3.....#\n#.................#\n#.................#\n###################\n\n\nmessage Level 8 von 8\n\n###############\n#..........22.#\n#4............#\n#4............#\n#.............#\n#.............#\n#.............#\n#......*......#\n#.............#\n#.............#\n#.............#\n#............3#\n#............3#\n#.11..........#\n###############\n\nmessage ich gratuliere!\n\n(\n#################\n#...............#\n#...........22..#\n#.4.............#\n#.4.............#\n#...............#\n#...............#\n#...............#\n#.......*.......#\n#...............#\n#...............#\n#...............#\n#.............3.#\n#.............3.#\n#..11...........#\n#...............#\n#################\n\n\n#################\n#...............#\n#...............#\n#....4..........#\n#....4..........#\n#...........22..#\n#...............#\n#...............#\n#.......*.......#\n#...............#\n#...............#\n#..11...........#\n#..........3....#\n#..........3....#\n#...............#\n#...............#\n#################\n\n\n#################\n#...............#\n#....4..........#\n#....4..........#\n#....4..........#\n#...........222.#\n#...............#\n#...............#\n#.......*.......#\n#...............#\n#...............#\n#.111...........#\n#..........3....#\n#..........3....#\n#..........3....#\n#...............#\n#################\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.................11#\n#.........*........2#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.1.................#\n#...................#\n#####################\n\n\n###################\n#.................#\n#.................#\n#....4............#\n#....4............#\n#............22...#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#..11.............#\n#...........3.....#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n###################\n\n########\n#......#\n#.4....#\n#..2...#\n#....*.#\n#..1...#\n#.4....#\n#......#\n########\n\n\n##########\n#........#\n#.4......#\n#..2.....#\n#........#\n#.....*..#\n#........#\n#..1.....#\n#.4......#\n#........#\n##########\n\n#########\n#.......#\n#.2...2.#\n#..4.3..#\n#.......#\n#...*...#\n#.......#\n#########\n\n#############\n#...........#\n#.4.........#\n#..2........#\n#...........#\n#...........#\n#........*..#\n#...........#\n#...........#\n#..1........#\n#.4.........#\n#...........#\n#############\n\n###############\n#.............#\n#.4...........#\n#..2222.......#\n#.............#\n#.............#\n#...........*.#\n#.............#\n#.............#\n#..1111.......#\n#.4...........#\n#.............#\n###############\n\n\n##############\n#4...........#\n#.2222.......#\n#............#\n#............#\n#..........*.#\n#............#\n#............#\n#.1111.......#\n#4...........#\n##############\n\n#####################\n#...................#\n#..2.2.2.2..........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#..............*....#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.1.1.1.1...........#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#.............2.....#\n#...................#\n#...................#\n#................3..#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...4...............#\n#...................#\n#.....1.............#\n#...................#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#......4............#\n#.............2.....#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#.....1.............#\n#............3......#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#....4..............#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...4...............#\n#...................#\n#.....1.............#\n#.............1.....#\n#...................#\n#####################\n\n\n#############\n#...........#\n#...........#\n#...1.......#\n#..4....2...#\n#...........#\n#...........#\n#..3..*..4..#\n#...2.......#\n#...........#\n#...........#\n#############\n\n#############\n#...........#\n#...........#\n#...1.......#\n#..3....2...#\n#...........#\n#...........#\n#..3..*..4..#\n#...2.......#\n#...........#\n#...........#\n#############\n\n##############\n#............#\n#............#\n#...4........#\n#............#\n#............#\n#............#\n#.........1..#\n#..*.........#\n#............#\n##############\n\n##############\n#............#\n#............#\n#..4.........#\n#............#\n#............#\n#..#.........#\n#.4..........#\n#..p......1..#\n#............#\n##############\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#............1....#\n#.......p.........#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#............1....#\n#.......*.........#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#............1....#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n###################\n#.................#\n#.................#\n#.................#\n#....4............#\n#............2....#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n\n###################\n#.................#\n#.................#\n#.................#\n#....2............#\n#.................#\n#.................#\n#.................#\n#.......*....2....#\n#.................#\n#.................#\n#...1.............#\n#..............3..#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n###################\n#.................#\n#.................#\n#.................#\n#....2............#\n#.................#\n#.................#\n#............2....#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#..............3..#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n###################\n#.................#\n#.................#\n#.................#\n#....2............#\n#............2....#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#.............2.....#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#.....1.............#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#.............2.....#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.....1.............#\n#...................#\n#####################\n\n#####################\n#...................#\n#.............22....#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#....11.............#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#......4............#\n#.............2.....#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#.....1.............#\n#............3......#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#......4............#\n#.............2.....#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#.....1.............#\n#............3......#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#.............2.....#\n#....4..............#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#..............3....#\n#.....1.............#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#.......1...........#\n#......3....2.......#\n#...................#\n#...................#\n#......3..p..4......#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#.......1...........#\n#......3....2.......#\n#...................#\n#...................#\n#......3..p..4......#\n#.......2...........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#.......1...........#\n#......3....2.......#\n#...................#\n#...................#\n#......3..p..4......#\n#.......2...........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#.......1...........#\n#......3....2.......#\n#...................#\n#...................#\n#......3..p..4......#\n#.......2...........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n\n\n############\n#....34....#\n#....34....#\n#..........#\n#..........#\n#.....*....#\n#..........#\n#..........#\n#.4......3.#\n#..........#\n############\n\n\n############\n#....34....#\n#....34....#\n#..........#\n#.....*....#\n#..........#\n#.4......3.#\n#..........#\n############\n\n\n###################\n#.................#\n#.................#\n#....4............#\n#....4............#\n#............22...#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#..11.............#\n#.4...............#\n#.4...............#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n\n###############\n#.............#\n#.............#\n#...4.........#\n#.............#\n#.............#\n#.............#\n#......p...2..#\n#.............#\n#.............#\n#..1..........#\n#.........3...#\n#.............#\n#.............#\n###############\n\n###################\n#.................#\n#.................#\n#.................#\n#....4............#\n#.................#\n#.................#\n#.................#\n#.......p....2....#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n\n###################\n#.................#\n#.................#\n#.................#\n#....4............#\n#............2....#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n#############\n#....3.4....#\n#....3.4....#\n#...........#\n#.....*.....#\n#...........#\n#...........#\n#.4.......3.#\n#...........#\n#############\n\n)\n", [1, 0, 1, 0, 1, 0, 3, 0, 1, 2, 3, 0, 1, 2, 2], "background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,background medussa_r:2,1,1,1,1,1,1,1,2,1,0,\n0,1,background light_h:3,background medussa_d:4,background light_v:5,5,5,5,5,background medussa_u:6,3,1,0,\n0,1,3,4,5,5,5,5,5,6,3,1,0,\n0,1,3,4,5,5,5,5,5,6,3,1,0,\n0,1,3,4,5,5,background statue:7,5,5,6,3,1,0,\n0,1,7,1,1,1,1,1,1,1,7,1,0,\n0,1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,7,1,1,1,background dontspawn spawner:8,1,1,1,1,background player:9,0,\n0,1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,1,1,7,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 11, "1627891371908.893"] ], [ - "Kreiseln", - ["title Kreiseln\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nagain_interval 0.1\nverbose_logging\n\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen darkblue\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\npink\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nbrown yellow white blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nYellow yellow orange\n.111.\n10001\n10001\n21002\n.222.\n\n\nhinge H\norange brown darkbrown\n10101\n01210\n12221\n01210\n10101\n\ndoor_l L\norange brown\n.....\n0000.\n11110\n0000.\n.....\n\n\ndoor_r R\norange brown\n.....\n.0000\n01111\n.0000\n.....\n\n\n\ndoor_u U\norange brown\n.010.\n.010.\n.010.\n.010.\n..0..\n\ndoor_d D\norange brown\n..0..\n.010.\n.010.\n.010.\n.010.\n\n\ndoor_dl \norange brown\n.....\n..00.\n.010.\n010..\n10...\n\n\ndoor_dr \norange brown\n.....\n.00..\n.010.\n..010\n...01\n\n\ndoor_ul \norange brown\n10...\n010..\n.010.\n..00.\n.....\n\ndoor_ur \norange brown\n...01\n..010\n.010.\n.00..\n.....\n\nul\norange\n0....\n.....\n.....\n.....\n.....\n\nur\norange\n....0\n.....\n.....\n.....\n.....\n\n\ndl\norange\n.....\n.....\n.....\n.....\n0....\n\n\ndr\norange\n.....\n.....\n.....\n.....\n....0\n\n\ncw\ntransparent\n\nccw \ntransparent\n\nknock\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\northo = door_u or door_d or door_l or door_r\ndiagonal = door_ul or door_ur or door_dl or door_dr\nDoor = ortho or diagonal\ndoorpart = door or hinge\nobstacle = wall or player or hinge or crate\nw = cw or ccw\n\n\npushable = player or crate or ortho\n\npushing = player or crate\n\npixel = ul or ur or dl or dr\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, hinge\ndoor\ncw, ccw\nul\nur\ndl\ndr\nknock\n\n======\nRULES\n======\n\n[pixel]->[]\n\n\ndown [ cw door_dl | pushable | pushable ] -> [ cw door_dl | down pushable | left pushable ]\nleft [ ccw door_dl | pushable | pushable ] -> [ ccw door_dl | left pushable | down pushable ]\n\ndown [ ccw door_dr | pushable | pushable ] -> [ ccw door_dr | down pushable | right pushable ]\nright [ cw door_dr | pushable | pushable ] -> [ cw door_dr | right pushable | down pushable ]\n\nup [ ccw door_ul | pushable | pushable ] -> [ ccw door_ul | up pushable | left pushable ]\nleft [ cw door_ul | pushable | pushable ] -> [ cw door_ul | left pushable | up pushable ]\n\nup [ cw door_ur | pushable | pushable ] -> [ cw door_ur | up pushable | right pushable ]\nright [ ccw door_ur | pushable | pushable ] -> [ ccw door_ur | right pushable | up pushable ]\n\n[ > pushable | player ] -> [ > pushable | > player ]\n\ndown [ cw door_dl | pushable ] -> [ cw door_dl | down pushable ]\nleft [ ccw door_dl | pushable ] -> [ ccw door_dl | left pushable ]\n\ndown [ ccw door_dr | pushable ] -> [ ccw door_dr | down pushable ]\nright [ cw door_dr | pushable ] -> [ cw door_dr | right pushable ]\n\nup [ ccw door_ul | pushable ] -> [ ccw door_ul | up pushable ]\nleft [ cw door_ul | pushable ] -> [ cw door_ul | left pushable ]\n\nup [ cw door_ur | pushable ] -> [ cw door_ur | up pushable ]\nright [ ccw door_ur | pushable ] -> [ ccw door_ur | right pushable ]\n\n\ndown [ cw door_dl | ] -> [ | door_l ]\nleft [ ccw door_dl | ] -> [ | door_d ]\n\ndown [ ccw door_dr | ] -> [ | door_r ]\nright [ cw door_dr | ] -> [ | door_d ]\n\nup [ ccw door_ul | ] -> [ | door_l ]\nleft [ cw door_ul | ] -> [ | door_u ]\n\nup [ cw door_ur | ] -> [ | door_r ]\nright [ ccw door_ur | ] -> [ | door_u ]\n\n\n\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > player | crate | crate ] -> cancel\n([ > crate | stationary crate ] -> [ > crate | > crate ])\n\n[ > player | door ] -> [ > player knock | > door ]\n[> pushing | knock] -> [ pushing knock | knock ]\n\n[knock]->[]\n\nright [ down door_r | hinge ] -> [ down door_r | hinge ccw ] \nright [ up door_r | hinge ] -> [ up door_r | hinge cw ] \n\nleft [ up door_l | hinge ] -> [ up door_l | hinge ccw ] \nleft [ down door_l | hinge ] -> [ down door_l | hinge cw ] \n\nup [ left door_u | hinge ] -> [ left door_u | hinge cw ] \nup [ right door_u | hinge ] -> [ right door_u | hinge ccw ] \n\ndown [ right door_d | hinge ] -> [ right door_d | hinge cw ] \ndown [ left door_d | hinge ] -> [ left door_d | hinge ccw ] \n\n\n[ door_u ] -> [ up door_u ]\n[ door_d ] -> [ down door_d ]\n[ door_l ] -> [ left door_l ]\n[ door_r ] -> [ right door_r ]\n\n[ > door | hinge cw ] -> [ ^ door cw | hinge cw ]\n[ > door | hinge ccw ] -> [ ^ door ccw | hinge ccw ]\n[ > door | no hinge ] -> [ door | ]\n\n\ndown [ ccw door_r | wall ] -> cancel\nup [ cw door_r | wall ] -> cancel\ndown [ cw door_l | wall ] -> cancel\nup [ ccw door_l | wall ] -> cancel\nright [ ccw door_u | wall ] -> cancel\nleft [ cw door_u | wall ] -> cancel\nright [ cw door_d | wall ] -> cancel\nleft [ ccw door_d | wall ] -> cancel\n\ndown [ ccw door_r | pushable ] -> [ ccw door_r | right pushable ccw ]\nup [ cw door_r | pushable ] -> [ cw door_r | right pushable cw ]\ndown [ cw door_l | pushable ] -> [ cw door_l | left pushable cw ]\nup [ ccw door_l | pushable ] -> [ ccw door_l | left pushable ccw ]\nright [ ccw door_u | pushable ] -> [ ccw door_u | up pushable ccw ]\nleft [ cw door_u | pushable ] -> [ cw door_u | up pushable cw ]\nright [ cw door_d | pushable ] -> [ cw door_d | down pushable cw ]\nleft [ ccw door_d | pushable ] -> [ ccw door_d | down pushable ccw ]\n\n[ > crate | stationary crate ] -> [ > crate | > crate ]\n[ > crate | > crate | > crate | ... | > crate ] -> [ > crate | > crate | > crate | ... | stationary crate ]\n\n[ cw > crate | > crate | > crate ] -> [ cw > crate | > crate | v crate ]\n[ ccw > crate | > crate | > crate ] -> [ cw > crate | > crate | ^ crate ]\n[ w crate ] -> [ crate ]\n\n[ > crate | no obstacle ] -> [ | crate ] \n+ [ > player | no obstacle ] -> [ | player ] \n\n[ moving door ] -> [ door ] \n\n+ down [ ccw door_r | ] -> [ | ccw door_ur ]\n+ up [ cw door_r | ] -> [ | cw door_dr ]\n+ down [ cw door_l | ] -> [ | cw door_ul ]\n+ up [ ccw door_l | ] -> [ | ccw door_dl ]\n\n+ right [ ccw door_u | ] -> [ | ccw door_ul ]\n+ left [ cw door_u | ] -> [ | cw door_ur ]\n+ right [ cw door_d | ] -> [ | cw door_dl ]\n+ left [ ccw door_d | ] -> [ | ccw door_dr ]\n\n[ diagonal ] -> again\n\n[ w hinge ] -> [ hinge ]\n[ w ortho ] -> [ ortho ]\n\nlate [ crate door ] -> cancel\nlate [ player door ] -> cancel\n\n\nlate up [ door_ul | ] -> [ door_ul | dl ]\nlate left [ door_ul | ] -> [ door_ul | ur ]\n\nlate down [ door_dl | ] -> [ door_dl | ul ]\nlate left [ door_dl | ] -> [ door_dl | dr ]\n\nlate up [ door_ur | ] -> [ door_ur | dr ]\nlate right [ door_ur | ] -> [ door_ur | ul ]\n\nlate down [ door_dr | ] -> [ door_dr | ur ]\nlate right [ door_dr | ] -> [ door_dr | dl ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nno diagonal\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 5\n\n#######\n#.....#\n#..o..#\n#.....#\n#.d...#\n#.hl..#\n#.u.d.#\n#..rh.#\n#..*u.#\n#.....#\n#..p..#\n#.....#\n#######\n\nmessage Level 2 von 5\n\n\n#################\n#...*...*.odo...#\n#.p.*...*.oho...#\n#...*...*.ouo...#\n#################\n\nmessage Level 3 von 5\n\n\n#########\n#.......#\n#..rhl..#\n#.do*od.#\n#.h*.*h.#\n#.uo*ou.#\n#..rhl..#\n#.p.....#\n#########\n\nmessage Level 4 von 5\n\n#########\n#...o...#\n#..rhl..#\n#.d*.*d.#\n#.ho.oh.#\n#.u*o*u.#\n#..rhl..#\n#.p.....#\n#########\n\nmessage Level 5 von 5\n\n#########\n#...o...#\n#.hl.rh.#\n#.u*d*u.#\n#o.rhl.o#\n#.d*u*d.#\n#phl.rh.#\n#...o...#\n#########\n\nmessage Sie sind aber talentiert!\n\n\n",[0,3,3,0,0,0,1,1,0],"background wall:0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\nbackground:1,1,1,1,background door_r:2,1,1,\n1,1,1,1,0,0,1,\n1,1,background door_d:3,background hinge:4,1,1,1,\n1,1,1,0,0,1,background target:5,\n1,background player:6,background door_l:7,1,2,1,1,\n1,1,0,0,1,1,1,\n1,1,1,4,background door_u:8,1,1,\n1,0,0,1,1,1,1,\n1,1,7,background crate:9,1,1,1,\n0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\n",1,"1627891389385.0288"] + "Kreiseln", + ["title Kreiseln\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nagain_interval 0.1\nverbose_logging\n\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen darkblue\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\npink\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nbrown yellow white blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nYellow yellow orange\n.111.\n10001\n10001\n21002\n.222.\n\n\nhinge H\norange brown darkbrown\n10101\n01210\n12221\n01210\n10101\n\ndoor_l L\norange brown\n.....\n0000.\n11110\n0000.\n.....\n\n\ndoor_r R\norange brown\n.....\n.0000\n01111\n.0000\n.....\n\n\n\ndoor_u U\norange brown\n.010.\n.010.\n.010.\n.010.\n..0..\n\ndoor_d D\norange brown\n..0..\n.010.\n.010.\n.010.\n.010.\n\n\ndoor_dl \norange brown\n.....\n..00.\n.010.\n010..\n10...\n\n\ndoor_dr \norange brown\n.....\n.00..\n.010.\n..010\n...01\n\n\ndoor_ul \norange brown\n10...\n010..\n.010.\n..00.\n.....\n\ndoor_ur \norange brown\n...01\n..010\n.010.\n.00..\n.....\n\nul\norange\n0....\n.....\n.....\n.....\n.....\n\nur\norange\n....0\n.....\n.....\n.....\n.....\n\n\ndl\norange\n.....\n.....\n.....\n.....\n0....\n\n\ndr\norange\n.....\n.....\n.....\n.....\n....0\n\n\ncw\ntransparent\n\nccw \ntransparent\n\nknock\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\northo = door_u or door_d or door_l or door_r\ndiagonal = door_ul or door_ur or door_dl or door_dr\nDoor = ortho or diagonal\ndoorpart = door or hinge\nobstacle = wall or player or hinge or crate\nw = cw or ccw\n\n\npushable = player or crate or ortho\n\npushing = player or crate\n\npixel = ul or ur or dl or dr\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, hinge\ndoor\ncw, ccw\nul\nur\ndl\ndr\nknock\n\n======\nRULES\n======\n\n[pixel]->[]\n\n\ndown [ cw door_dl | pushable | pushable ] -> [ cw door_dl | down pushable | left pushable ]\nleft [ ccw door_dl | pushable | pushable ] -> [ ccw door_dl | left pushable | down pushable ]\n\ndown [ ccw door_dr | pushable | pushable ] -> [ ccw door_dr | down pushable | right pushable ]\nright [ cw door_dr | pushable | pushable ] -> [ cw door_dr | right pushable | down pushable ]\n\nup [ ccw door_ul | pushable | pushable ] -> [ ccw door_ul | up pushable | left pushable ]\nleft [ cw door_ul | pushable | pushable ] -> [ cw door_ul | left pushable | up pushable ]\n\nup [ cw door_ur | pushable | pushable ] -> [ cw door_ur | up pushable | right pushable ]\nright [ ccw door_ur | pushable | pushable ] -> [ ccw door_ur | right pushable | up pushable ]\n\n[ > pushable | player ] -> [ > pushable | > player ]\n\ndown [ cw door_dl | pushable ] -> [ cw door_dl | down pushable ]\nleft [ ccw door_dl | pushable ] -> [ ccw door_dl | left pushable ]\n\ndown [ ccw door_dr | pushable ] -> [ ccw door_dr | down pushable ]\nright [ cw door_dr | pushable ] -> [ cw door_dr | right pushable ]\n\nup [ ccw door_ul | pushable ] -> [ ccw door_ul | up pushable ]\nleft [ cw door_ul | pushable ] -> [ cw door_ul | left pushable ]\n\nup [ cw door_ur | pushable ] -> [ cw door_ur | up pushable ]\nright [ ccw door_ur | pushable ] -> [ ccw door_ur | right pushable ]\n\n\ndown [ cw door_dl | ] -> [ | door_l ]\nleft [ ccw door_dl | ] -> [ | door_d ]\n\ndown [ ccw door_dr | ] -> [ | door_r ]\nright [ cw door_dr | ] -> [ | door_d ]\n\nup [ ccw door_ul | ] -> [ | door_l ]\nleft [ cw door_ul | ] -> [ | door_u ]\n\nup [ cw door_ur | ] -> [ | door_r ]\nright [ ccw door_ur | ] -> [ | door_u ]\n\n\n\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > player | crate | crate ] -> cancel\n([ > crate | stationary crate ] -> [ > crate | > crate ])\n\n[ > player | door ] -> [ > player knock | > door ]\n[> pushing | knock] -> [ pushing knock | knock ]\n\n[knock]->[]\n\nright [ down door_r | hinge ] -> [ down door_r | hinge ccw ] \nright [ up door_r | hinge ] -> [ up door_r | hinge cw ] \n\nleft [ up door_l | hinge ] -> [ up door_l | hinge ccw ] \nleft [ down door_l | hinge ] -> [ down door_l | hinge cw ] \n\nup [ left door_u | hinge ] -> [ left door_u | hinge cw ] \nup [ right door_u | hinge ] -> [ right door_u | hinge ccw ] \n\ndown [ right door_d | hinge ] -> [ right door_d | hinge cw ] \ndown [ left door_d | hinge ] -> [ left door_d | hinge ccw ] \n\n\n[ door_u ] -> [ up door_u ]\n[ door_d ] -> [ down door_d ]\n[ door_l ] -> [ left door_l ]\n[ door_r ] -> [ right door_r ]\n\n[ > door | hinge cw ] -> [ ^ door cw | hinge cw ]\n[ > door | hinge ccw ] -> [ ^ door ccw | hinge ccw ]\n[ > door | no hinge ] -> [ door | ]\n\n\ndown [ ccw door_r | wall ] -> cancel\nup [ cw door_r | wall ] -> cancel\ndown [ cw door_l | wall ] -> cancel\nup [ ccw door_l | wall ] -> cancel\nright [ ccw door_u | wall ] -> cancel\nleft [ cw door_u | wall ] -> cancel\nright [ cw door_d | wall ] -> cancel\nleft [ ccw door_d | wall ] -> cancel\n\ndown [ ccw door_r | pushable ] -> [ ccw door_r | right pushable ccw ]\nup [ cw door_r | pushable ] -> [ cw door_r | right pushable cw ]\ndown [ cw door_l | pushable ] -> [ cw door_l | left pushable cw ]\nup [ ccw door_l | pushable ] -> [ ccw door_l | left pushable ccw ]\nright [ ccw door_u | pushable ] -> [ ccw door_u | up pushable ccw ]\nleft [ cw door_u | pushable ] -> [ cw door_u | up pushable cw ]\nright [ cw door_d | pushable ] -> [ cw door_d | down pushable cw ]\nleft [ ccw door_d | pushable ] -> [ ccw door_d | down pushable ccw ]\n\n[ > crate | stationary crate ] -> [ > crate | > crate ]\n[ > crate | > crate | > crate | ... | > crate ] -> [ > crate | > crate | > crate | ... | stationary crate ]\n\n[ cw > crate | > crate | > crate ] -> [ cw > crate | > crate | v crate ]\n[ ccw > crate | > crate | > crate ] -> [ cw > crate | > crate | ^ crate ]\n[ w crate ] -> [ crate ]\n\n[ > crate | no obstacle ] -> [ | crate ] \n+ [ > player | no obstacle ] -> [ | player ] \n\n[ moving door ] -> [ door ] \n\n+ down [ ccw door_r | ] -> [ | ccw door_ur ]\n+ up [ cw door_r | ] -> [ | cw door_dr ]\n+ down [ cw door_l | ] -> [ | cw door_ul ]\n+ up [ ccw door_l | ] -> [ | ccw door_dl ]\n\n+ right [ ccw door_u | ] -> [ | ccw door_ul ]\n+ left [ cw door_u | ] -> [ | cw door_ur ]\n+ right [ cw door_d | ] -> [ | cw door_dl ]\n+ left [ ccw door_d | ] -> [ | ccw door_dr ]\n\n[ diagonal ] -> again\n\n[ w hinge ] -> [ hinge ]\n[ w ortho ] -> [ ortho ]\n\nlate [ crate door ] -> cancel\nlate [ player door ] -> cancel\n\n\nlate up [ door_ul | ] -> [ door_ul | dl ]\nlate left [ door_ul | ] -> [ door_ul | ur ]\n\nlate down [ door_dl | ] -> [ door_dl | ul ]\nlate left [ door_dl | ] -> [ door_dl | dr ]\n\nlate up [ door_ur | ] -> [ door_ur | dr ]\nlate right [ door_ur | ] -> [ door_ur | ul ]\n\nlate down [ door_dr | ] -> [ door_dr | ur ]\nlate right [ door_dr | ] -> [ door_dr | dl ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nno diagonal\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 5\n\n#######\n#.....#\n#..o..#\n#.....#\n#.d...#\n#.hl..#\n#.u.d.#\n#..rh.#\n#..*u.#\n#.....#\n#..p..#\n#.....#\n#######\n\nmessage Level 2 von 5\n\n\n#################\n#...*...*.odo...#\n#.p.*...*.oho...#\n#...*...*.ouo...#\n#################\n\nmessage Level 3 von 5\n\n\n#########\n#.......#\n#..rhl..#\n#.do*od.#\n#.h*.*h.#\n#.uo*ou.#\n#..rhl..#\n#.p.....#\n#########\n\nmessage Level 4 von 5\n\n#########\n#...o...#\n#..rhl..#\n#.d*.*d.#\n#.ho.oh.#\n#.u*o*u.#\n#..rhl..#\n#.p.....#\n#########\n\nmessage Level 5 von 5\n\n#########\n#...o...#\n#.hl.rh.#\n#.u*d*u.#\n#o.rhl.o#\n#.d*u*d.#\n#phl.rh.#\n#...o...#\n#########\n\nmessage Sie sind aber talentiert!\n\n\n", [0, 3, 3, 0, 0, 0, 1, 1, 0], "background wall:0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\nbackground:1,1,1,1,background door_r:2,1,1,\n1,1,1,1,0,0,1,\n1,1,background door_d:3,background hinge:4,1,1,1,\n1,1,1,0,0,1,background target:5,\n1,background player:6,background door_l:7,1,2,1,1,\n1,1,0,0,1,1,1,\n1,1,1,4,background door_u:8,1,1,\n1,0,0,1,1,1,1,\n1,1,7,background crate:9,1,1,1,\n0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\n", 1, "1627891389385.0288"] ], [ - "Des Poseidons Dreizack", - ["title Des Poseidons Dreizack\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\ntext_color #e7cf5c\nbackground_color #041646\n\nnoaction\n\nrun_rules_on_level_start\n\nagain_interval 0.1\n(verbose_logging)\n\n\n(flickscreen 14x13)\n\n========\nOBJECTS\n========\n\nBackground\nblue #204ec5\n00000\n01000\n00000\n00010\n00000\n\nsmrocks k\nbrown darkbrown \n.1.1.\n10101\n.1.1.\n10101\n.1.1.\n\nteleport T\nlightblue blue darkblue\n10101\n01210\n12221\n01210\n10101\n\nTarget\ndarkblue transparent \n01110\n1.0.1\n10001\n1.0.1\n01110\n\nWall\ngreen lightgreen #2d6d0c\n00000\n00010\n00000\n01000\n00000\n\nwallalt \"\ngreen lightgreen #2d6d0c\n00000\n00000\n00000\n01000\n00000\n\n\nwallalt2 '\ngreen lightgreen #2d6d0c\n00000\n00010\n00000\n00000\n00000\n\ncoast_u\nlightblue\n.0.0.\n.....\n.....\n.....\n.....\n\ncoast_d\nlightblue\n.....\n.....\n.....\n.....\n.0.0.\n\ncoast_l\nlightblue\n.....\n0....\n.....\n0....\n.....\n\ncoast_r\nlightblue\n.....\n....0\n.....\n....0\n.....\n\nendhand x\npink\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\n\nPlayer\nbrown orange yellow lightblue\n2.2.2\n2.2.2\n22222\n..1..\n.313.\n\nunderplayer\nlightblue\n..0..\n.....\n.....\n.....\n.....\n\nmagnet\nlightblue blue\n.0000\n0....\n0.000\n0...0\n.000.\n\n\nflowers \ndarkgreen brown\n.000.\n00000\n.000.\n..1..\n..1..\n\nhinge H\norange green darkgray \n10001\n02220\n02220\n02220\n10001\n\ndoor_l L\npink darkgray transparent\n.2.2.\n0000.\n11110\n0000.\n.2.2.\n\n\ndoor_r R\npink darkgray transparent\n.2.2.\n.0000\n01111\n.0000\n.2.2.\n\n\n\ndoor_u U\npink darkgray transparent\n.010.\n20102\n.010.\n20102\n..0..\n\ndoor_d D\npink darkgray transparent\n..0..\n20102\n.010.\n20102\n.010.\n\n\ndoor_dl 1\npink darkgray\n.....\n..00.\n.010.\n010..\n10...\n\n\ndoor_dr 2\npink darkgray\n.....\n.00..\n.010.\n..010\n...01\n\n\ndoor_ul 3\npink darkgray\n10...\n010..\n.010.\n..00.\n.....\n\ndoor_ur 4\npink darkgray\n...01\n..010\n.010.\n.00..\n.....\n\nul\norange\n0....\n.....\n.....\n.....\n.....\n\nur\norange\n....0\n.....\n.....\n.....\n.....\n\n\ndl\norange\n.....\n.....\n.....\n.....\n0....\n\n\ndr\norange\n.....\n.....\n.....\n.....\n....0\n\nwu\ngreen lightgreen\n10101\n.....\n.....\n.....\n.....\n\nwd\ngreen lightgreen\n.....\n.....\n.....\n.....\n10101\n\nwl\ngreen lightgreen\n1....\n0....\n1....\n0....\n1....\n\nwr\ngreen lightgreen\n....1\n....0\n....1\n....0\n....1\n\nsuck_d\nlightblue\n.....\n.....\n.0.0.\n..0..\n.....\n\n\nsuck_u\nlightblue\n.....\n..0..\n.0.0.\n.....\n.....\n\n\nsuck_r\nlightblue\n.....\n..0..\n...0.\n..0..\n.....\n\n\nsuck_l\nlightblue\n.....\n..0..\n.0...\n..0..\n.....\n\ntemp\ntransparent\n\nA \ntransparent\n\nS\nlightblue\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nnopull\ntransparent\n\nspawned \ntransparent\n\n\nip1 §\n#ffff05 #ffa33b\n0.0.0\n0.0.0\n00000\n..1..\n..1..\n\nip2 ±\n#8e4833\n.....\n.....\n....0\n....0\n....0\n\nip3 `\n#8e4833 #dbc297\n.....\n00000\n11111\n1.1.1\n11111\n\nip4 ~\n#8e4833\n.....\n.....\n0....\n0....\n0....\n\n5\n#ffa33b #dbc297\n..0..\n.111.\n.111.\n.111.\n..011\n\n6\n#8e4833 #dbc297\n....0\n....0\n.....\n.....\n....1\n\n7\n#8e4833 #dbc297\n00000\n01110\n00000\n00000\n10001\n\n8\n#8e4833 #dbc297\n0....\n.....\n.....\n.....\n1....\n\n9\n#ffa33b #dbc297\n..0.1\n.....\n.....\n.....\n.....\n\n0\n#dbc297 white\n0..00\n00000\n.00.0\n....1\n....1\n\nbla !\n#dbc297 white\n00000\n00000\n00000\n10000\n11100\n\nblo @\n#dbc297\n00...\n000..\n000..\n0.00.\n..00.\n\n\n(BLANK)\n\nble £\nwhite\n....0\n....0\n....0\n...00\n...00\n\nble1 $\nwhite #dbc297\n00000\n00000\n00000\n00001\n00011\n\nble2 \\\n#dbc297 white\n..00.\n1.00.\n1000.\n1000.\n100..\n\n(SKIP)\n\nble3 Y\nwhite #dbc297\n...00\n...00\n....1\n....1\n....1\n\nble4 &\nwhite #dbc297\n00111\n1.111\n1..11\n1..11\n1..11\n\nble5 *\nwhite\n0....\n.....\n.....\n.....\n.....\n\n\nble6 -\n#dbc297\n.....\n...00\n.....\n.....\n.....\n\nble7 =\n#dbc297\n0..00\n0.000\n.....\n.....\n.....\n\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nM = magnet\nO = Target\n\n\nwalls = wall or wallalt or wallalt2\northo = door_u or door_d or door_l or door_r\ndiagonal = door_ul or door_ur or door_dl or door_dr\nDoor = ortho or diagonal\ndoorpart = door or hinge\nobstacle = walls or player or hinge or magnet or door or smrocks\nthick = wall or hinge or magnet or door or teleport\n\n\nfixture = wall or hinge \n\npixel = ul or ur or dl or dr\nwalltype = wall or wallalt or wallalt2\n\nfillwalltype = wall or hinge\n\nsuck = suck_u or suck_d or suck_l or suck_r\n\ncoast = coast_u or coast_d or coast_l or coast_r\n\nverge = wl or wr or wu or wd\ndecoration = coast or verge \n\n% = flowers and wall\n\nimage = ip1 or ip2 or ip3 or ip4 or 5 or 6 or 7 or 8 or 9 or 0 or bla or blo or ble or ble1 or ble2 or ble3 or ble4 or ble5 or ble6 or ble7 \n\n\n=======\nSOUNDS\n=======\n\nsfx0 1415300 (swing)\nsfx1 7555504 (cantmove)\nsfx2 16800907 (whirlpool move)\nsfx3 77044105 (teleport)\nsfx4 43993702 (whirlpool destroy)\nsfx5 43993702 (whirlpool create)\nendlevel 30657706\n\nplayer cantmove 7555504\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncoast_u\ncoast_d\ncoast_l\ncoast_r\nA\nTarget\nS\nunderplayer\nteleport\nendhand \nPlayer, Wall, wallalt, wallalt2, magnet, hinge, door, smrocks\nflowers\nul\nur\ndl\ndr\nwu\nwd\nwl\nwr\ntemp\nsuck_u\nsuck_d\nsuck_l\nsuck_r\nnopull\nspawned\nimage\n\n======\nRULES\n======\n\n[ player teleport no spawned | ... | teleport ] -> [ teleport | ... | player teleport spawned ] sfx3\n\n[ teleport magnet ] -> [ ] sfx4\n\n[decoration]->[]\n[underplayer]->[]\n[A]->[]\n[temp]->[]\n[suck]->[]\n[nopull]->[]\n\nright [ walls | ]->[walls | coast_l ]\nleft [ walls | ]->[walls | coast_r ]\ndown [ walls | ]->[walls | coast_u ]\nup [ walls | ]->[walls | coast_d ]\n\n\n\nup [ walls | no walltype ] -> [ walls wu | ]\ndown [ walls | no walltype ] -> [ walls wd | ]\nleft [ walls | no walltype ] -> [ walls wl | ]\nright [ walls | no walltype ] -> [ walls wr | ]\n\n[pixel]->[]\n\n\n[ > magnet | door ] -> cancel\n\n\n\n[ > Player | magnet ] -> [ > Player | > magnet ]\n\n[ > magnet | no obstacle ] -> [ | magnet ] sfx2\n+ [ > player | no obstacle ] -> [ | player ] \n+ [ > player | no obstacle ] -> [ | player ] \n\n\n[player no spawned] [ spawned] -> [player] []\n\n[ magnet ] -> [ magnet suck_u suck_d suck_l suck_r ]\n\nup [ suck_d | no thick ] -> [ suck_d | suck_d ]\ndown [ suck_u | no thick ] -> [ suck_u | suck_u ]\nleft [ suck_r | no thick ] -> [ suck_r | suck_r ]\nright [ suck_l | no thick ] -> [ suck_l | suck_l ]\n\n\n[S]->[]\n\n\nup [ suck_d | door | no suck_u ] -> [ suck_d | down door S | ]\n\n\ndown [ suck_u | door S | no suck_d ] -> [ suck_u | stationary door S | ]\ndown [ suck_u | door no S | no suck_d ] -> [ suck_u | up door S | ]\n\n\nleft [ suck_r | door S | no suck_l ] -> [ suck_r | stationary door S | ]\nleft [ suck_r | door no S | no suck_l ] -> [ suck_r | right door S | ]\n\n\nright [ suck_l | door S | no suck_r ] -> [ suck_l | stationary door S | ]\nright [ suck_l | door no S | no suck_r ] -> [ suck_l | left door S | ]\n\n[ > player | door no S ] -> [ > player | > door ]\n\n[s]->[]\n\nup [ suck_d | door ] -> [ suck_d | door S ]\ndown [ suck_u | door ] -> [ suck_u | door S ]\nleft [ suck_r | door ] -> [ suck_r | door S ]\nright [ suck_l | door ] -> [ suck_l | door S ]\n\n\n([ > player | > door S ] -> [ > player | > door ])\n\n\n(push ortho doors)\n\nup [ up door_l | no obstacle ] -> [ | door_dl ] sfx0\nup [ up door_r | no obstacle ] -> [ | door_dr ] sfx0\ndown [ down door_l | no obstacle ] -> [ | door_ul ] sfx0\ndown [ down door_r | no obstacle ] -> [ | door_ur ] sfx0\nleft [ left door_u | no obstacle ] -> [ | door_ur ] sfx0\nleft [ left door_d | no obstacle ] -> [ | door_dr ] sfx0\nright [ right door_u | no obstacle ] -> [ | door_ul ] sfx0\nright [ right door_d | no obstacle ] -> [ | door_dl ] sfx0\n\n(push diag doors)\nup [ up door_ul | no obstacle ] -> [ | door_l ] sfx0\nup [ up door_ur | no obstacle ] -> [ | door_r ] sfx0\nleft [ up door_dl no S | no obstacle ] -> [ | door_d ] sfx0\nright [ up door_dr no S | no obstacle ] -> [ | door_d ] sfx0\n\nleft [ down door_ul no S | no obstacle ] -> [ | door_u ] sfx0\nright [ down door_ur no S | no obstacle ] -> [ | door_u ] sfx0\ndown [ down door_dl | no obstacle ] -> [ | door_l ] sfx0\ndown [ down door_dr | no obstacle ] -> [ | door_r ] sfx0\n\nleft [ left door_ul | no obstacle ] -> [ | door_u ] sfx0\nup [ left door_ur no S | no obstacle ] -> [ | door_r ] sfx0\nleft [ left door_dl | no obstacle ] -> [ | door_d ] sfx0\ndown [ left door_dr no S | no obstacle ] -> [ | door_r ] sfx0\n\nup [ right door_ul no S | no obstacle ] -> [ | door_l ] sfx0\nright [ right door_ur | no obstacle ] -> [ | door_u ] sfx0\ndown [ right door_dl no S | no obstacle ] -> [ | door_l ] sfx0\nright [ right door_dr | no obstacle ] -> [ | door_d ] sfx0\n\n\n\n\n[ moving door ] -> [ door ] \n\n\nlate up [ door_ul | ] -> [ door_ul | dl ]\nlate left [ door_ul | ] -> [ door_ul | ur ]\n\nlate down [ door_dl | ] -> [ door_dl | ul ]\nlate left [ door_dl | ] -> [ door_dl | dr ]\n\nlate up [ door_ur | ] -> [ door_ur | dr ]\nlate right [ door_ur | ] -> [ door_ur | ul ]\n\nlate down [ door_dr | ] -> [ door_dr | ur ]\nlate right [ door_dr | ] -> [ door_dr | dl ]\n\nlate [ thick suck ] -> [ thick ]\n\n[player] -> again\n\nlate [magnet suck]->[]\nlate down [ player | ] -> [ player | underplayer]\n\nlate [ magnet target ] -> [ teleport ] sfx5 \n\n\n\n\n==============\nWINCONDITIONS\n==============\n\nall player on endhand\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 3 : Ausbruch\n\n##########%#%##\n#%##...####%##%\n####.m.######%#\n##.....##...###\n##...###.....##\n##....##.....##\n##.....##....##\n###hl..##....##\n###..........##\n###....#hl...##\n###.....#.#####\n#########.#####\n##....##......#\n#.t....#....o.#\n#...x..#..p...#\n##....##......#\n###############\n\nmessage Level 2 von 3 : Flucht\n\n##################\n##%#####.....#####\n#####%##.##.2...##\n########.##.1h#.##\n#....##..##h.##.##\n#.p..hh..###.##.##\n#....u.3####.#...#\n#hl##.######.#.x.#\n##.....#.....#...#\n#....o.#.t...#####\n#..m...#.....#####\n#......########%##\n##################\n\nmessage Level 3 von 3 : Fensterrose\n\n\n#######################\n#######.........#######\n######...........######\n##..##...kkkkk...##..##\n#....#...k...k...#....#\n#.t..#...k.t.k...#..x.#\n#....#...kk.kk...#....#\n#....#....2d1....#....#\n#..o.#...krhlk...#.t..#\n#....#...k...k...#....#\n#...##..m........#....#\n#.hl.............#....#\n#...##....p......#....#\n#######.........#######\n#######################\n\n............\n............\n....x.......\n............\n............\n............\n............\n........p...\n............\n\n............\n............\n....§±`~....\n....5678....\n....90!@....\n.....£$\\....\n.....Y&*....\n.....-=.....\n............\n\nmessage ICH BIN DER POSEIDON\n\n\n(\n\n#####################\n#######.......#######\n######.........######\n##..##..kkkkk..##..##\n#....#..k...k..#....#\n#.t..#..k.t.k..#..x.#\n#....#..kk.kk..#....#\n#....#...2d1...#....#\n#..o.#..krhlk..#.t..#\n#....#..k...k..#....#\n#...##.m.......#....#\n#.hl...........#....#\n#...##...p.....#....#\n#######.......#######\n#####################\n\n#############\n##.........##\n#...........#\n#...kkkkk...#\n#...k...k...#\n#...k.x.k...#\n#...kk.kk...#\n#....2d1....#\n#...krhlk...#\n#...k...k...#\n#...........#\n#..m........#\n#....p......#\n##.........##\n#############\n\n\n#############\n##.........##\n#...........#\n#...kkkkk...#\n#...k...k...#\n#...k.x.k...#\n#...kk.kk...#\n#....2d1....#\n#...krhlk...#\n#...k...k...#\n#...........#\n#.m.........#\n#...........#\n#......p....#\n##.........##\n#############\n\n\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#.....2d1.....#\n#....krhlk....#\n#....k...k....#\n#...m.........#\n#.............#\n#.....p.......#\n#.............#\n#.............#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#.....2d1.....#\n#....krhlk....#\n#....k...k....#\n#.............#\n#..........m..#\n#.............#\n#......p......#\n#.............#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#.....2d1.....#\n#....krhlk....#\n#....k...k....#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n######\"########\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#....k.d.k....#\n#....krhlk....#\n#...kk.u.k....#\n#...kt...k..o.#\n#...kkkkkk....#\n#..m......m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k.d.k....#\n#....krhlk....#\n#....k.u.k....#\n#....k...k....#\n#....k.t.k..o.#\n#....kkkkk....#\n#...m.........#\n#.............#\n##.....p.....##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#....k2d1k....#\n#....krhlk....#\n#....k........#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#....k2d1k....#\n#....krhlk....#\n#.............#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k2d......#\n#....krh......#\n#.....4u......#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k2d......#\n#....krh......#\n#....k4u......#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k2d......#\n#....krh......#\n#....k4.......#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k...k....#\n#....k2d.k....#\n#....krh.k....#\n#....k4..k....#\n#....k.k.k....#\n#....k.kkk....#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k2d......#\n#....krh......#\n#....k4.......#\n#....k........#\n#....k........#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k...k....#\n#....k2d.k....#\n#....krh.k....#\n#....k4u.k....#\n#....k.k.k....#\n#....k.kkk....#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n............\n............\n............\n...kkkkk....\n...k...k....\n...k.x.k....\n...k...k....\n...k2d.k....\n...krh.k....\n...k4..k....\n...k.k.k....\n...k.kkk....\n..m.....m...\n............\n......p.....\n............\n\n............\n............\n............\n...kkkkk....\n...k...k....\n...k.x.k....\n...k...k....\n...k2d.k....\n...krh.k....\n...k4u.k....\n...k.k.k....\n...k.kkk....\n..m.....m...\n............\n......p.....\n............\n\n\n............\n............\n............\n...kkkkk....\n...k...k....\n...k.x.k....\n...k...k....\n...k2..k....\n...krh.k....\n...k4..k....\n...k.k.k....\n...k.kkk....\n..m.....m...\n............\n.....p......\n............\n\n............\n............\n............\n...kkkkk....\n...k...k....\n...k.x.k....\n...k...k....\n...k.d.k....\n...krh.k....\n...k.u.k....\n...k.k.k....\n...k.kkk....\n..m.....m...\n............\n.....p......\n............\n\n............\n............\n..kkkkk.....\n..k...k.....\n..k.x.k.....\n..k...k.....\n..k.d.k.....\n..krh.k.....\n..k.u.k.....\n..k.k.k.....\n..k.kkk.....\n............\n........m...\n............\n..........p.\n............\n\n##################\n#####.......#....#\n#####.......#....#\n#####..##...#....#\n####hlrh#hl.#..rh#\n####....#.rh#hl..#\n####hlrh#hl.#..rh#\n####....#.rh#hl..#\n####hlrh#hl.#..rh#\n####....#.rh#hl..#\n####....#...#....#\n#.......#........#\n#.m..p..##########\n#.......#.........\n#########.........\n\n##################\n#####.........#..#\n#####...mp....#..#\n#####..##d....#..#\n####h..h#h2...#rh#\n####u..u#..h###..#\n####h..h#hl...#rh#\n####u..u#.rh###..#\n####h..h#hl...#rh#\n####u..u#.rh###..#\n####....#.....#..#\n#.......#.....#..#\n#.......#........#\n#.......#........#\n##################\n\n\n###################\n####....#.........#\n####hlrh#.........#\n####....#.........#\n####hlrh#.........#\n####....#.........#\n####hlrh#.........#\n####....#.........#\n####....#.........#\n#.................#\n#.m..p............#\n#.................#\n###################\n\n\n\n##################\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n###.###..........#\n#.....#..........#\n#.p...#..........#\n#.....#..........#\n#...m.#..........#\n#.....#..........#\n##################\n\n##################\n#####.........#..#\n#####.....pmk.#..#\n#####..##d..k.#..#\n####h..h#h2.k.#rh#\n####u..u#..h###..#\n####h..h#hl...#rh#\n####u..u#.rh###..#\n####h..h#hl...#rh#\n####u..u#.rh###..#\n####....#.....#..#\n#.......#.....#..#\n#...kkkk#........#\n#.......#........#\n##################\n\n##################\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n##################\n\n)\n",[3,3,2,3,3,1,1,1,2,2,2,0,3,3,3,2,2,1,1,2,1,0,2,2,3,2,3,0,0,1,0,3,2,3,0,0,0,"restart",2,3,2,3,3,2,2,2,1,2,1,2,1,1,0,3,3,2,3,0,0,1,0,3,2,3,0,0,2],"background coast_d coast_r wall:0,background coast_d coast_r coast_u wall:1,1,1,background coast_d coast_u wall wr:2,2,2,2,1,2,2,2,background coast_r coast_u wall:3,background coast_d coast_l coast_r wall:4,background coast_d coast_l coast_r coast_u wall:5,5,background coast_l coast_r coast_u wall wd:6,background coast_l coast_u:7,\nbackground coast_l:8,background coast_l suck_r:9,background coast_d coast_l hinge:10,background coast_l ur wall wd wr wu:11,7,8,background coast_d coast_l:12,background coast_l coast_r wall wu:13,4,background coast_d coast_l coast_r coast_u flowers wall:14,5,6,background coast_u:15,background:16,background suck_r:17,background coast_r dl:18,background coast_l door_ul:19,16,\n16,background coast_d:20,13,4,5,5,6,15,16,background coast_d suck_r:21,background coast_r wall wd wl wu:22,15,16,16,20,13,4,5,\n5,6,background coast_r coast_u:23,16,21,background coast_l wall wd wr wu:24,15,16,16,20,13,4,5,14,5,background coast_r coast_u wall wd wl:25,background coast_u hinge:26,background magnet ur:27,\nbackground coast_l coast_r suck_u:28,background player suck_u:29,background suck_u target underplayer:30,background suck_u:31,background coast_d suck_u:32,13,4,5,5,5,background coast_l coast_u wall wd wr:33,background coast_u dl hinge:34,background coast_d door_ul s ur:35,22,23,background coast_r:36,36,background coast_d coast_r:37,\n13,4,background coast_d coast_l coast_u wall wr:38,38,33,7,background dl:39,background coast_d coast_r door_ul:40,background coast_d coast_l coast_r wall wu:41,background coast_d coast_u wall wl wr:42,42,42,background coast_d coast_r coast_u wall wl:43,background coast_l coast_r coast_u wall:44,background coast_l coast_r wall wd:45,7,background coast_l coast_r:46,46,\n36,37,background coast_d coast_r wall wl wu:47,6,7,8,12,41,44,45,background coast_d coast_u:48,47,43,43,43,5,6,15,\nbackground teleport:49,20,41,44,45,48,background coast_d coast_l wall wr wu:50,38,38,5,5,6,15,16,20,41,44,45,\n15,8,background coast_l dr:51,10,50,38,33,15,16,20,41,44,45,23,background door_dr:52,background door_dl ur:53,background coast_r ul:54,46,\n46,46,36,36,37,41,44,4,25,background coast_u dl:55,background coast_d coast_r hinge:56,47,43,42,42,42,43,43,\n5,44,4,6,48,background coast_d wall wl wr wu:57,38,33,7,8,12,41,5,5,44,4,6,23,\n46,46,46,16,background endhand:58,20,41,5,14,44,4,5,43,43,43,25,23,36,\n37,41,5,5,44,background coast_d coast_l wall:59,background coast_d coast_l coast_u wall:60,60,60,60,60,background coast_d coast_u wall wl:61,61,61,60,60,60,background coast_l coast_u wall:62,\n",3,"1627891415131.3423"] + "Des Poseidons Dreizack", + ["title Des Poseidons Dreizack\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\ntext_color #e7cf5c\nbackground_color #041646\n\nnoaction\n\nrun_rules_on_level_start\n\nagain_interval 0.1\n(verbose_logging)\n\n\n(flickscreen 14x13)\n\n========\nOBJECTS\n========\n\nBackground\nblue #204ec5\n00000\n01000\n00000\n00010\n00000\n\nsmrocks k\nbrown darkbrown \n.1.1.\n10101\n.1.1.\n10101\n.1.1.\n\nteleport T\nlightblue blue darkblue\n10101\n01210\n12221\n01210\n10101\n\nTarget\ndarkblue transparent \n01110\n1.0.1\n10001\n1.0.1\n01110\n\nWall\ngreen lightgreen #2d6d0c\n00000\n00010\n00000\n01000\n00000\n\nwallalt \"\ngreen lightgreen #2d6d0c\n00000\n00000\n00000\n01000\n00000\n\n\nwallalt2 '\ngreen lightgreen #2d6d0c\n00000\n00010\n00000\n00000\n00000\n\ncoast_u\nlightblue\n.0.0.\n.....\n.....\n.....\n.....\n\ncoast_d\nlightblue\n.....\n.....\n.....\n.....\n.0.0.\n\ncoast_l\nlightblue\n.....\n0....\n.....\n0....\n.....\n\ncoast_r\nlightblue\n.....\n....0\n.....\n....0\n.....\n\nendhand x\npink\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\n\nPlayer\nbrown orange yellow lightblue\n2.2.2\n2.2.2\n22222\n..1..\n.313.\n\nunderplayer\nlightblue\n..0..\n.....\n.....\n.....\n.....\n\nmagnet\nlightblue blue\n.0000\n0....\n0.000\n0...0\n.000.\n\n\nflowers \ndarkgreen brown\n.000.\n00000\n.000.\n..1..\n..1..\n\nhinge H\norange green darkgray \n10001\n02220\n02220\n02220\n10001\n\ndoor_l L\npink darkgray transparent\n.2.2.\n0000.\n11110\n0000.\n.2.2.\n\n\ndoor_r R\npink darkgray transparent\n.2.2.\n.0000\n01111\n.0000\n.2.2.\n\n\n\ndoor_u U\npink darkgray transparent\n.010.\n20102\n.010.\n20102\n..0..\n\ndoor_d D\npink darkgray transparent\n..0..\n20102\n.010.\n20102\n.010.\n\n\ndoor_dl 1\npink darkgray\n.....\n..00.\n.010.\n010..\n10...\n\n\ndoor_dr 2\npink darkgray\n.....\n.00..\n.010.\n..010\n...01\n\n\ndoor_ul 3\npink darkgray\n10...\n010..\n.010.\n..00.\n.....\n\ndoor_ur 4\npink darkgray\n...01\n..010\n.010.\n.00..\n.....\n\nul\norange\n0....\n.....\n.....\n.....\n.....\n\nur\norange\n....0\n.....\n.....\n.....\n.....\n\n\ndl\norange\n.....\n.....\n.....\n.....\n0....\n\n\ndr\norange\n.....\n.....\n.....\n.....\n....0\n\nwu\ngreen lightgreen\n10101\n.....\n.....\n.....\n.....\n\nwd\ngreen lightgreen\n.....\n.....\n.....\n.....\n10101\n\nwl\ngreen lightgreen\n1....\n0....\n1....\n0....\n1....\n\nwr\ngreen lightgreen\n....1\n....0\n....1\n....0\n....1\n\nsuck_d\nlightblue\n.....\n.....\n.0.0.\n..0..\n.....\n\n\nsuck_u\nlightblue\n.....\n..0..\n.0.0.\n.....\n.....\n\n\nsuck_r\nlightblue\n.....\n..0..\n...0.\n..0..\n.....\n\n\nsuck_l\nlightblue\n.....\n..0..\n.0...\n..0..\n.....\n\ntemp\ntransparent\n\nA \ntransparent\n\nS\nlightblue\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nnopull\ntransparent\n\nspawned \ntransparent\n\n\nip1 §\n#ffff05 #ffa33b\n0.0.0\n0.0.0\n00000\n..1..\n..1..\n\nip2 ±\n#8e4833\n.....\n.....\n....0\n....0\n....0\n\nip3 `\n#8e4833 #dbc297\n.....\n00000\n11111\n1.1.1\n11111\n\nip4 ~\n#8e4833\n.....\n.....\n0....\n0....\n0....\n\n5\n#ffa33b #dbc297\n..0..\n.111.\n.111.\n.111.\n..011\n\n6\n#8e4833 #dbc297\n....0\n....0\n.....\n.....\n....1\n\n7\n#8e4833 #dbc297\n00000\n01110\n00000\n00000\n10001\n\n8\n#8e4833 #dbc297\n0....\n.....\n.....\n.....\n1....\n\n9\n#ffa33b #dbc297\n..0.1\n.....\n.....\n.....\n.....\n\n0\n#dbc297 white\n0..00\n00000\n.00.0\n....1\n....1\n\nbla !\n#dbc297 white\n00000\n00000\n00000\n10000\n11100\n\nblo @\n#dbc297\n00...\n000..\n000..\n0.00.\n..00.\n\n\n(BLANK)\n\nble £\nwhite\n....0\n....0\n....0\n...00\n...00\n\nble1 $\nwhite #dbc297\n00000\n00000\n00000\n00001\n00011\n\nble2 \\\n#dbc297 white\n..00.\n1.00.\n1000.\n1000.\n100..\n\n(SKIP)\n\nble3 Y\nwhite #dbc297\n...00\n...00\n....1\n....1\n....1\n\nble4 &\nwhite #dbc297\n00111\n1.111\n1..11\n1..11\n1..11\n\nble5 *\nwhite\n0....\n.....\n.....\n.....\n.....\n\n\nble6 -\n#dbc297\n.....\n...00\n.....\n.....\n.....\n\nble7 =\n#dbc297\n0..00\n0.000\n.....\n.....\n.....\n\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nM = magnet\nO = Target\n\n\nwalls = wall or wallalt or wallalt2\northo = door_u or door_d or door_l or door_r\ndiagonal = door_ul or door_ur or door_dl or door_dr\nDoor = ortho or diagonal\ndoorpart = door or hinge\nobstacle = walls or player or hinge or magnet or door or smrocks\nthick = wall or hinge or magnet or door or teleport\n\n\nfixture = wall or hinge \n\npixel = ul or ur or dl or dr\nwalltype = wall or wallalt or wallalt2\n\nfillwalltype = wall or hinge\n\nsuck = suck_u or suck_d or suck_l or suck_r\n\ncoast = coast_u or coast_d or coast_l or coast_r\n\nverge = wl or wr or wu or wd\ndecoration = coast or verge \n\n% = flowers and wall\n\nimage = ip1 or ip2 or ip3 or ip4 or 5 or 6 or 7 or 8 or 9 or 0 or bla or blo or ble or ble1 or ble2 or ble3 or ble4 or ble5 or ble6 or ble7 \n\n\n=======\nSOUNDS\n=======\n\nsfx0 1415300 (swing)\nsfx1 7555504 (cantmove)\nsfx2 16800907 (whirlpool move)\nsfx3 77044105 (teleport)\nsfx4 43993702 (whirlpool destroy)\nsfx5 43993702 (whirlpool create)\nendlevel 30657706\n\nplayer cantmove 7555504\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncoast_u\ncoast_d\ncoast_l\ncoast_r\nA\nTarget\nS\nunderplayer\nteleport\nendhand \nPlayer, Wall, wallalt, wallalt2, magnet, hinge, door, smrocks\nflowers\nul\nur\ndl\ndr\nwu\nwd\nwl\nwr\ntemp\nsuck_u\nsuck_d\nsuck_l\nsuck_r\nnopull\nspawned\nimage\n\n======\nRULES\n======\n\n[ player teleport no spawned | ... | teleport ] -> [ teleport | ... | player teleport spawned ] sfx3\n\n[ teleport magnet ] -> [ ] sfx4\n\n[decoration]->[]\n[underplayer]->[]\n[A]->[]\n[temp]->[]\n[suck]->[]\n[nopull]->[]\n\nright [ walls | ]->[walls | coast_l ]\nleft [ walls | ]->[walls | coast_r ]\ndown [ walls | ]->[walls | coast_u ]\nup [ walls | ]->[walls | coast_d ]\n\n\n\nup [ walls | no walltype ] -> [ walls wu | ]\ndown [ walls | no walltype ] -> [ walls wd | ]\nleft [ walls | no walltype ] -> [ walls wl | ]\nright [ walls | no walltype ] -> [ walls wr | ]\n\n[pixel]->[]\n\n\n[ > magnet | door ] -> cancel\n\n\n\n[ > Player | magnet ] -> [ > Player | > magnet ]\n\n[ > magnet | no obstacle ] -> [ | magnet ] sfx2\n+ [ > player | no obstacle ] -> [ | player ] \n+ [ > player | no obstacle ] -> [ | player ] \n\n\n[player no spawned] [ spawned] -> [player] []\n\n[ magnet ] -> [ magnet suck_u suck_d suck_l suck_r ]\n\nup [ suck_d | no thick ] -> [ suck_d | suck_d ]\ndown [ suck_u | no thick ] -> [ suck_u | suck_u ]\nleft [ suck_r | no thick ] -> [ suck_r | suck_r ]\nright [ suck_l | no thick ] -> [ suck_l | suck_l ]\n\n\n[S]->[]\n\n\nup [ suck_d | door | no suck_u ] -> [ suck_d | down door S | ]\n\n\ndown [ suck_u | door S | no suck_d ] -> [ suck_u | stationary door S | ]\ndown [ suck_u | door no S | no suck_d ] -> [ suck_u | up door S | ]\n\n\nleft [ suck_r | door S | no suck_l ] -> [ suck_r | stationary door S | ]\nleft [ suck_r | door no S | no suck_l ] -> [ suck_r | right door S | ]\n\n\nright [ suck_l | door S | no suck_r ] -> [ suck_l | stationary door S | ]\nright [ suck_l | door no S | no suck_r ] -> [ suck_l | left door S | ]\n\n[ > player | door no S ] -> [ > player | > door ]\n\n[s]->[]\n\nup [ suck_d | door ] -> [ suck_d | door S ]\ndown [ suck_u | door ] -> [ suck_u | door S ]\nleft [ suck_r | door ] -> [ suck_r | door S ]\nright [ suck_l | door ] -> [ suck_l | door S ]\n\n\n([ > player | > door S ] -> [ > player | > door ])\n\n\n(push ortho doors)\n\nup [ up door_l | no obstacle ] -> [ | door_dl ] sfx0\nup [ up door_r | no obstacle ] -> [ | door_dr ] sfx0\ndown [ down door_l | no obstacle ] -> [ | door_ul ] sfx0\ndown [ down door_r | no obstacle ] -> [ | door_ur ] sfx0\nleft [ left door_u | no obstacle ] -> [ | door_ur ] sfx0\nleft [ left door_d | no obstacle ] -> [ | door_dr ] sfx0\nright [ right door_u | no obstacle ] -> [ | door_ul ] sfx0\nright [ right door_d | no obstacle ] -> [ | door_dl ] sfx0\n\n(push diag doors)\nup [ up door_ul | no obstacle ] -> [ | door_l ] sfx0\nup [ up door_ur | no obstacle ] -> [ | door_r ] sfx0\nleft [ up door_dl no S | no obstacle ] -> [ | door_d ] sfx0\nright [ up door_dr no S | no obstacle ] -> [ | door_d ] sfx0\n\nleft [ down door_ul no S | no obstacle ] -> [ | door_u ] sfx0\nright [ down door_ur no S | no obstacle ] -> [ | door_u ] sfx0\ndown [ down door_dl | no obstacle ] -> [ | door_l ] sfx0\ndown [ down door_dr | no obstacle ] -> [ | door_r ] sfx0\n\nleft [ left door_ul | no obstacle ] -> [ | door_u ] sfx0\nup [ left door_ur no S | no obstacle ] -> [ | door_r ] sfx0\nleft [ left door_dl | no obstacle ] -> [ | door_d ] sfx0\ndown [ left door_dr no S | no obstacle ] -> [ | door_r ] sfx0\n\nup [ right door_ul no S | no obstacle ] -> [ | door_l ] sfx0\nright [ right door_ur | no obstacle ] -> [ | door_u ] sfx0\ndown [ right door_dl no S | no obstacle ] -> [ | door_l ] sfx0\nright [ right door_dr | no obstacle ] -> [ | door_d ] sfx0\n\n\n\n\n[ moving door ] -> [ door ] \n\n\nlate up [ door_ul | ] -> [ door_ul | dl ]\nlate left [ door_ul | ] -> [ door_ul | ur ]\n\nlate down [ door_dl | ] -> [ door_dl | ul ]\nlate left [ door_dl | ] -> [ door_dl | dr ]\n\nlate up [ door_ur | ] -> [ door_ur | dr ]\nlate right [ door_ur | ] -> [ door_ur | ul ]\n\nlate down [ door_dr | ] -> [ door_dr | ur ]\nlate right [ door_dr | ] -> [ door_dr | dl ]\n\nlate [ thick suck ] -> [ thick ]\n\n[player] -> again\n\nlate [magnet suck]->[]\nlate down [ player | ] -> [ player | underplayer]\n\nlate [ magnet target ] -> [ teleport ] sfx5 \n\n\n\n\n==============\nWINCONDITIONS\n==============\n\nall player on endhand\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 3 : Ausbruch\n\n##########%#%##\n#%##...####%##%\n####.m.######%#\n##.....##...###\n##...###.....##\n##....##.....##\n##.....##....##\n###hl..##....##\n###..........##\n###....#hl...##\n###.....#.#####\n#########.#####\n##....##......#\n#.t....#....o.#\n#...x..#..p...#\n##....##......#\n###############\n\nmessage Level 2 von 3 : Flucht\n\n##################\n##%#####.....#####\n#####%##.##.2...##\n########.##.1h#.##\n#....##..##h.##.##\n#.p..hh..###.##.##\n#....u.3####.#...#\n#hl##.######.#.x.#\n##.....#.....#...#\n#....o.#.t...#####\n#..m...#.....#####\n#......########%##\n##################\n\nmessage Level 3 von 3 : Fensterrose\n\n\n#######################\n#######.........#######\n######...........######\n##..##...kkkkk...##..##\n#....#...k...k...#....#\n#.t..#...k.t.k...#..x.#\n#....#...kk.kk...#....#\n#....#....2d1....#....#\n#..o.#...krhlk...#.t..#\n#....#...k...k...#....#\n#...##..m........#....#\n#.hl.............#....#\n#...##....p......#....#\n#######.........#######\n#######################\n\n............\n............\n....x.......\n............\n............\n............\n............\n........p...\n............\n\n............\n............\n....§±`~....\n....5678....\n....90!@....\n.....£$\\....\n.....Y&*....\n.....-=.....\n............\n\nmessage ICH BIN DER POSEIDON\n\n\n(\n\n#####################\n#######.......#######\n######.........######\n##..##..kkkkk..##..##\n#....#..k...k..#....#\n#.t..#..k.t.k..#..x.#\n#....#..kk.kk..#....#\n#....#...2d1...#....#\n#..o.#..krhlk..#.t..#\n#....#..k...k..#....#\n#...##.m.......#....#\n#.hl...........#....#\n#...##...p.....#....#\n#######.......#######\n#####################\n\n#############\n##.........##\n#...........#\n#...kkkkk...#\n#...k...k...#\n#...k.x.k...#\n#...kk.kk...#\n#....2d1....#\n#...krhlk...#\n#...k...k...#\n#...........#\n#..m........#\n#....p......#\n##.........##\n#############\n\n\n#############\n##.........##\n#...........#\n#...kkkkk...#\n#...k...k...#\n#...k.x.k...#\n#...kk.kk...#\n#....2d1....#\n#...krhlk...#\n#...k...k...#\n#...........#\n#.m.........#\n#...........#\n#......p....#\n##.........##\n#############\n\n\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#.....2d1.....#\n#....krhlk....#\n#....k...k....#\n#...m.........#\n#.............#\n#.....p.......#\n#.............#\n#.............#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#.....2d1.....#\n#....krhlk....#\n#....k...k....#\n#.............#\n#..........m..#\n#.............#\n#......p......#\n#.............#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#.....2d1.....#\n#....krhlk....#\n#....k...k....#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n######\"########\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#....k.d.k....#\n#....krhlk....#\n#...kk.u.k....#\n#...kt...k..o.#\n#...kkkkkk....#\n#..m......m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k.d.k....#\n#....krhlk....#\n#....k.u.k....#\n#....k...k....#\n#....k.t.k..o.#\n#....kkkkk....#\n#...m.........#\n#.............#\n##.....p.....##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#....k2d1k....#\n#....krhlk....#\n#....k........#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#....k2d1k....#\n#....krhlk....#\n#.............#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k2d......#\n#....krh......#\n#.....4u......#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k2d......#\n#....krh......#\n#....k4u......#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k2d......#\n#....krh......#\n#....k4.......#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k...k....#\n#....k2d.k....#\n#....krh.k....#\n#....k4..k....#\n#....k.k.k....#\n#....k.kkk....#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k2d......#\n#....krh......#\n#....k4.......#\n#....k........#\n#....k........#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k...k....#\n#....k2d.k....#\n#....krh.k....#\n#....k4u.k....#\n#....k.k.k....#\n#....k.kkk....#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n............\n............\n............\n...kkkkk....\n...k...k....\n...k.x.k....\n...k...k....\n...k2d.k....\n...krh.k....\n...k4..k....\n...k.k.k....\n...k.kkk....\n..m.....m...\n............\n......p.....\n............\n\n............\n............\n............\n...kkkkk....\n...k...k....\n...k.x.k....\n...k...k....\n...k2d.k....\n...krh.k....\n...k4u.k....\n...k.k.k....\n...k.kkk....\n..m.....m...\n............\n......p.....\n............\n\n\n............\n............\n............\n...kkkkk....\n...k...k....\n...k.x.k....\n...k...k....\n...k2..k....\n...krh.k....\n...k4..k....\n...k.k.k....\n...k.kkk....\n..m.....m...\n............\n.....p......\n............\n\n............\n............\n............\n...kkkkk....\n...k...k....\n...k.x.k....\n...k...k....\n...k.d.k....\n...krh.k....\n...k.u.k....\n...k.k.k....\n...k.kkk....\n..m.....m...\n............\n.....p......\n............\n\n............\n............\n..kkkkk.....\n..k...k.....\n..k.x.k.....\n..k...k.....\n..k.d.k.....\n..krh.k.....\n..k.u.k.....\n..k.k.k.....\n..k.kkk.....\n............\n........m...\n............\n..........p.\n............\n\n##################\n#####.......#....#\n#####.......#....#\n#####..##...#....#\n####hlrh#hl.#..rh#\n####....#.rh#hl..#\n####hlrh#hl.#..rh#\n####....#.rh#hl..#\n####hlrh#hl.#..rh#\n####....#.rh#hl..#\n####....#...#....#\n#.......#........#\n#.m..p..##########\n#.......#.........\n#########.........\n\n##################\n#####.........#..#\n#####...mp....#..#\n#####..##d....#..#\n####h..h#h2...#rh#\n####u..u#..h###..#\n####h..h#hl...#rh#\n####u..u#.rh###..#\n####h..h#hl...#rh#\n####u..u#.rh###..#\n####....#.....#..#\n#.......#.....#..#\n#.......#........#\n#.......#........#\n##################\n\n\n###################\n####....#.........#\n####hlrh#.........#\n####....#.........#\n####hlrh#.........#\n####....#.........#\n####hlrh#.........#\n####....#.........#\n####....#.........#\n#.................#\n#.m..p............#\n#.................#\n###################\n\n\n\n##################\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n###.###..........#\n#.....#..........#\n#.p...#..........#\n#.....#..........#\n#...m.#..........#\n#.....#..........#\n##################\n\n##################\n#####.........#..#\n#####.....pmk.#..#\n#####..##d..k.#..#\n####h..h#h2.k.#rh#\n####u..u#..h###..#\n####h..h#hl...#rh#\n####u..u#.rh###..#\n####h..h#hl...#rh#\n####u..u#.rh###..#\n####....#.....#..#\n#.......#.....#..#\n#...kkkk#........#\n#.......#........#\n##################\n\n##################\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n##################\n\n)\n", [3, 3, 2, 3, 3, 1, 1, 1, 2, 2, 2, 0, 3, 3, 3, 2, 2, 1, 1, 2, 1, 0, 2, 2, 3, 2, 3, 0, 0, 1, 0, 3, 2, 3, 0, 0, 0, "restart", 2, 3, 2, 3, 3, 2, 2, 2, 1, 2, 1, 2, 1, 1, 0, 3, 3, 2, 3, 0, 0, 1, 0, 3, 2, 3, 0, 0, 2], "background coast_d coast_r wall:0,background coast_d coast_r coast_u wall:1,1,1,background coast_d coast_u wall wr:2,2,2,2,1,2,2,2,background coast_r coast_u wall:3,background coast_d coast_l coast_r wall:4,background coast_d coast_l coast_r coast_u wall:5,5,background coast_l coast_r coast_u wall wd:6,background coast_l coast_u:7,\nbackground coast_l:8,background coast_l suck_r:9,background coast_d coast_l hinge:10,background coast_l ur wall wd wr wu:11,7,8,background coast_d coast_l:12,background coast_l coast_r wall wu:13,4,background coast_d coast_l coast_r coast_u flowers wall:14,5,6,background coast_u:15,background:16,background suck_r:17,background coast_r dl:18,background coast_l door_ul:19,16,\n16,background coast_d:20,13,4,5,5,6,15,16,background coast_d suck_r:21,background coast_r wall wd wl wu:22,15,16,16,20,13,4,5,\n5,6,background coast_r coast_u:23,16,21,background coast_l wall wd wr wu:24,15,16,16,20,13,4,5,14,5,background coast_r coast_u wall wd wl:25,background coast_u hinge:26,background magnet ur:27,\nbackground coast_l coast_r suck_u:28,background player suck_u:29,background suck_u target underplayer:30,background suck_u:31,background coast_d suck_u:32,13,4,5,5,5,background coast_l coast_u wall wd wr:33,background coast_u dl hinge:34,background coast_d door_ul s ur:35,22,23,background coast_r:36,36,background coast_d coast_r:37,\n13,4,background coast_d coast_l coast_u wall wr:38,38,33,7,background dl:39,background coast_d coast_r door_ul:40,background coast_d coast_l coast_r wall wu:41,background coast_d coast_u wall wl wr:42,42,42,background coast_d coast_r coast_u wall wl:43,background coast_l coast_r coast_u wall:44,background coast_l coast_r wall wd:45,7,background coast_l coast_r:46,46,\n36,37,background coast_d coast_r wall wl wu:47,6,7,8,12,41,44,45,background coast_d coast_u:48,47,43,43,43,5,6,15,\nbackground teleport:49,20,41,44,45,48,background coast_d coast_l wall wr wu:50,38,38,5,5,6,15,16,20,41,44,45,\n15,8,background coast_l dr:51,10,50,38,33,15,16,20,41,44,45,23,background door_dr:52,background door_dl ur:53,background coast_r ul:54,46,\n46,46,36,36,37,41,44,4,25,background coast_u dl:55,background coast_d coast_r hinge:56,47,43,42,42,42,43,43,\n5,44,4,6,48,background coast_d wall wl wr wu:57,38,33,7,8,12,41,5,5,44,4,6,23,\n46,46,46,16,background endhand:58,20,41,5,14,44,4,5,43,43,43,25,23,36,\n37,41,5,5,44,background coast_d coast_l wall:59,background coast_d coast_l coast_u wall:60,60,60,60,60,background coast_d coast_u wall wl:61,61,61,60,60,60,background coast_l coast_u wall:62,\n", 3, "1627891415131.3423"] ], [ - "Bring the ice cube to the goal without exposing it to heat.", - ["title Bring the ice cube to the goal without exposing it to heat.\n\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nnoaction\n\n========\nOBJECTS\n========\n\nhot \ndarkred\n\ncold\ndarkblue\n\nHotSource 1\nred darkred white yellow\n11311\n10201\n10201\n10001\n11111\n\nicecube i\nlightblue blue \n.111.\n10001\n10001\n10001\n.111.\n\n\nBackground\ndarkblue darkblue\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\ndarkgreen\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkblue darkgreen\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nbrown darkbrown\n00000\n00110\n01010\n01100\n00000\n\npuddle u\nblue\n.....\n.000.\n00000\n.000.\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ninsulation = wall or crate\n\npushable = crate or hotsource or icecube\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx0 87367102 (melt)\nendlevel 87961509 \n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nHot,Cold\nTarget\npuddle\nPlayer, Wall, Crate, HotSource, icecube\n\n======\nRULES\n======\n\n[ icecube hot ] -> [ puddle ]\n\n\n[ > Player | pushable ] -> [ > Player | > pushable ]\n\nlate [hot]->[]\nlate [cold]->[]\nlate [ no insulation ] -> [ cold ]\n\nlate [HotSource] -> [HotSource hot]\n\nlate [ hot | no insulation ] -> [ hot | hot ]\n\n[] -> again\n\n==============\nWINCONDITIONS\n==============\nall icecube on target\nno puddle\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n###################\n#.....#.....#.....#\n#.....#.1...#.....#\n#..o..*.....*..i..#\n#.....#...p.#.....#\n#.....#.....#.....#\n###################\n\nmessage very good\n",[0,0,0,1,1,2,1,2,1,1,3,3,1,1,1,3,3,2,3,3,2,3,3,0,1,1,1,1,1,0,1,2,0,1,1,2,3,3],"background wall:0,0,0,0,0,0,0,0,background hot:1,1,1,1,1,0,0,1,1,1,1,\n1,0,0,1,1,background hot target:2,1,1,0,0,1,1,background hot player:3,background hot hotsource:4,1,0,0,1,1,\nbackground crate:5,1,1,0,0,0,0,background cold:6,0,0,0,0,6,6,6,6,6,0,0,\n6,6,6,6,6,0,0,6,6,6,6,6,0,0,6,6,6,6,6,\n0,0,6,6,6,6,6,0,0,0,0,5,0,0,0,0,6,6,6,\n6,6,0,0,6,6,6,6,6,0,0,6,6,background cold icecube:7,6,6,0,0,6,\n6,6,6,6,0,0,6,6,6,6,6,0,0,0,0,0,0,0,0,\n",1,"1627891487429.5186"] + "Bring the ice cube to the goal without exposing it to heat.", + ["title Bring the ice cube to the goal without exposing it to heat.\n\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nnoaction\n\n========\nOBJECTS\n========\n\nhot \ndarkred\n\ncold\ndarkblue\n\nHotSource 1\nred darkred white yellow\n11311\n10201\n10201\n10001\n11111\n\nicecube i\nlightblue blue \n.111.\n10001\n10001\n10001\n.111.\n\n\nBackground\ndarkblue darkblue\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\ndarkgreen\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkblue darkgreen\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nbrown darkbrown\n00000\n00110\n01010\n01100\n00000\n\npuddle u\nblue\n.....\n.000.\n00000\n.000.\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ninsulation = wall or crate\n\npushable = crate or hotsource or icecube\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx0 87367102 (melt)\nendlevel 87961509 \n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nHot,Cold\nTarget\npuddle\nPlayer, Wall, Crate, HotSource, icecube\n\n======\nRULES\n======\n\n[ icecube hot ] -> [ puddle ]\n\n\n[ > Player | pushable ] -> [ > Player | > pushable ]\n\nlate [hot]->[]\nlate [cold]->[]\nlate [ no insulation ] -> [ cold ]\n\nlate [HotSource] -> [HotSource hot]\n\nlate [ hot | no insulation ] -> [ hot | hot ]\n\n[] -> again\n\n==============\nWINCONDITIONS\n==============\nall icecube on target\nno puddle\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n###################\n#.....#.....#.....#\n#.....#.1...#.....#\n#..o..*.....*..i..#\n#.....#...p.#.....#\n#.....#.....#.....#\n###################\n\nmessage very good\n", [0, 0, 0, 1, 1, 2, 1, 2, 1, 1, 3, 3, 1, 1, 1, 3, 3, 2, 3, 3, 2, 3, 3, 0, 1, 1, 1, 1, 1, 0, 1, 2, 0, 1, 1, 2, 3, 3], "background wall:0,0,0,0,0,0,0,0,background hot:1,1,1,1,1,0,0,1,1,1,1,\n1,0,0,1,1,background hot target:2,1,1,0,0,1,1,background hot player:3,background hot hotsource:4,1,0,0,1,1,\nbackground crate:5,1,1,0,0,0,0,background cold:6,0,0,0,0,6,6,6,6,6,0,0,\n6,6,6,6,6,0,0,6,6,6,6,6,0,0,6,6,6,6,6,\n0,0,6,6,6,6,6,0,0,0,0,5,0,0,0,0,6,6,6,\n6,6,0,0,6,6,6,6,6,0,0,6,6,background cold icecube:7,6,6,0,0,6,\n6,6,6,6,0,0,6,6,6,6,6,0,0,0,0,0,0,0,0,\n", 1, "1627891487429.5186"] ], [ - "der Hydra Krypta", - ["title der Hydra Krypta\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nagain_interval 0.1\nnorepeat_action\n\nrun_rules_on_level_start\n(verbose_logging)\n\n========\nOBJECTS\n========\n\nBackground\ntransparent darkblue \n01010\n10001\n00000\n10001\n01010\n\nHeld\nlightblue white pink brown gray blue\n4333.\n4121.\n00000\n.555.\n.5.5.\n\ndecorateheld\nlightblue white pink brown gray blue\n4333.\n4121.\n00000\n.555.\n.5.5.\n\nWand\nDarkgreen black\n00010\n11111\n01000\n11111\n00010\n\nPlayer\ntransparent\n\nKopf_O\ngreen yellow darkgreen\n.000.\n.101.\n.020.\n..2..\n.....\n\nKopf_U\ngreen yellow darkgreen\n.....\n..2..\n.020.\n.101.\n.000.\n\nKopf_L\ngreen yellow darkgreen\n.....\n010..\n0022.\n010..\n.....\n\nKopf_R\ngreen yellow darkgreen\n.....\n..010\n.2200\n..010\n.....\n\nKoerper_L\ngreen darkgreen\n.....\n000..\n1111.\n000..\n.....\n\nKoerper_R\ngreen darkgreen\n.....\n..000\n.1111\n..000\n.....\n\nKoerper_O\ngreen darkgreen\n.010.\n.010.\n.010.\n..1..\n.....\n\nKoerper_U\ngreen darkgreen\n.....\n..1..\n.010.\n.010.\n.010.\n\nblut\nred darkred\n.1.0.\n00100\n.010.\n01001\n.1.0.\n\nt\ntransparent\n\nu\ntransparent\n\naktion \ntransparent\n\nFeuer\norange yellow brown\n.1...\n.1.1.\n10101\n10001\n.222.\n\nbranch \ntransparent\n\nstaticfeuer\norange yellow brown\n.1...\n.1.1.\n10101\n10001\n.222.\n\n\nsprt_0_0\ngreen yellow darkgreen\n.....\n.0000\n.0101\n.0000\n..020\n\nsprt_1_0\ngreen\n.....\n0....\n0....\n0...0\n....0\n\nsprt_2_0\ndarkgreen green\n.....\n.....\n0....\n01...\n01...\n\nsprt_3_0\ngreen darkgreen\n.....\n....0\n...10\n..010\n..010\n\nsprt_4_0\ngreen darkgreen\n.....\n00000\n11111\n00000\n.....\n\nsprt_5_0\ngreen darkgreen\n.....\n00...\n111..\n0000.\n.010.\n\nsprt_0_1\ngreen darkgreen\n..010\n..000\n...11\n....0\n.....\n\nsprt_1_1\ngreen darkgreen\n....0\n00000\n11111\n00100\n.010.\n\nsprt_2_1\ndarkgreen green\n01...\n0111.\n00010\n11110\n...10\n\nsprt_3_1\ngreen yellow\n.0000\n.0101\n.0000\n0....\n0....\n\nsprt_4_1\ngreen darkgreen\n0....\n0....\n0....\n.0000\n.1111\n\nsprt_5_1\ngreen darkgreen\n.010.\n.010.\n.010.\n0010.\n101..\n\nsprt_0_2\ngreen\n.....\n.....\n.....\n.....\n...00\n\nsprt_1_2\ngreen yellow\n00000\n01010\n00000\n.....\n00000\n\nsprt_2_2\ngreen darkgreen\n...01\n...01\n...01\n...01\n00001\n\nsprt_3_2\ngreen\n0....\n0....\n0....\n0....\n0....\n\nsprt_4_2\ngreen darkgreen\n00000\n010..\n010..\n010..\n010..\n\nsprt_5_2\ngreen darkgreen\n00...\n.....\n...1.\n..010\n..010\n\nsprt_0_3\ndarkgreen green\n..010\n.1011\n.101.\n.101.\n.101.\n\nsprt_1_3\ndarkgreen green yellow\n00000\n11111\n.....\n.1111\n.1212\n\nsprt_2_3\ndarkgreen green\n00000\n11110\n...10\n1..10\n1..10\n\nsprt_3_3\ngreen darkgreen\n00000\n11111\n00000\n0....\n0....\n\nsprt_4_3\ngreen darkgreen\n0100.\n11111\n00000\n...01\n...01\n\nsprt_5_3\ngreen darkgreen\n..010\n..010\n0.010\n00010\n1101.\n\nsprt_0_4\ngreen darkgreen\n.010.\n.010.\n.010.\n.010.\n.010.\n\nsprt_1_4\ngreen darkgreen\n.0000\n..010\n..010\n..010\n...10\n\nsprt_2_4\ngreen darkgreen\n0..01\n...01\n...01\n00001\n11111\n\nsprt_3_4\ngreen yellow\n0.000\n0.010\n0.000\n0....\n0....\n\nsprt_4_4\ngreen darkgreen yellow\n00.01\n20001\n00101\n.000.\n.....\n\nsprt_5_4\ngreen\n000..\n0....\n.....\n.....\n.....\n\nsprt_0_5\ngreen darkgreen\n.010.\n.010.\n..1..\n.....\n.....\n\nsprt_1_5\ngreen\n....0\n.....\n.....\n.....\n.....\n\nsprt_2_5\ngreen darkgreen\n00001\n...01\n...01\n....1\n.....\n\nsprt_3_5\ngreen darkgreen\n0....\n0....\n00000\n01111\n00000\n\nsprt_4_5\ngreen darkgreen\n.....\n.....\n0000.\n11111\n0000.\n\nsprt_5_5\ndarkgreen\n.....\n.....\n.0...\n0....\n.....\n\nblackbg\nblack\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wand\nP = Kopf_O and player\n* = Held and branch\nD = decorateheld\nF = staticfeuer\n\n\n\nkopf = Kopf_O or Kopf_U or Kopf_L or Kopf_R\nKoerper = Koerper_O or Koerper_U or Koerper_L or Koerper_R\nSchlange = Koerper or Koerper\nanyfeuer = feuer or staticfeuer\n\nb = blackbg \n\n1 = sprt_0_0 and blackbg\n2 = sprt_1_0 and blackbg\n3 = sprt_2_0 and blackbg\n4 = sprt_3_0 and blackbg\n5 = sprt_4_0 and blackbg\n6 = sprt_5_0 and blackbg\n7 = sprt_0_1 and blackbg\n8 = sprt_1_1 and blackbg\n9 = sprt_2_1 and blackbg\n0 = sprt_3_1 and blackbg\n- = sprt_4_1 and blackbg\nx = sprt_5_1 and blackbg\n; = sprt_0_2 and blackbg\n' = sprt_1_2 and blackbg\n\\ = sprt_2_2 and blackbg\n, = sprt_3_2 and blackbg\n~ = sprt_4_2 and blackbg\n/ = sprt_5_2 and blackbg\n! = sprt_0_3 and blackbg\n@ = sprt_1_3 and blackbg\n£ = sprt_2_3 and blackbg\n$ = sprt_3_3 and blackbg\n% = sprt_4_3 and blackbg\n& = sprt_5_3 and blackbg\nz = sprt_0_4 and wand\n_ = sprt_1_4 and wand\n+ = sprt_2_4 and wand\n{ = sprt_3_4 and wand\n} = sprt_4_4 and wand\n: = sprt_5_4 and wand\n\" = sprt_0_5 \nc = sprt_1_5 \n? = sprt_2_5 \n§ = sprt_3_5 \n± = sprt_4_5 \n` = sprt_5_5 \n\n=======\nSOUNDS\n=======\n\nsfx0 12264904 (Held essen)\n\nblut create 28419304\nfeuer create 77309907 \nendlevel 91964903\nstartlevel 49051702\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nblackbg\nWand\nHeld,decorateheld\nKoerper_O\nKoerper_U\nKoerper_L\nKoerper_R\nKopf_O\nKopf_U\nKopf_L\nKopf_R\nplayer\nblut\nfeuer, staticfeuer\nT\nU\naktion\nbranch\nsprt_0_0, sprt_1_0, sprt_2_0, sprt_3_0, sprt_4_0, sprt_5_0, sprt_0_1, sprt_1_1, sprt_2_1, sprt_3_1, sprt_4_1, sprt_5_1, sprt_0_2, sprt_1_2, sprt_2_2, sprt_3_2, sprt_4_2, sprt_5_2, sprt_0_3, sprt_1_3, sprt_2_3, sprt_3_3, sprt_4_3, sprt_5_3, sprt_0_4, sprt_1_4, sprt_2_4, sprt_3_4, sprt_4_4, sprt_5_4, sprt_0_5, sprt_1_5, sprt_2_5, sprt_3_5, sprt_4_5, sprt_5_5, \n\n\n======\nRULES\n======\n\n[aktion]->[]\n\n[blut]->cancel\n[t]->[]\n[u]->[]\n\n[t]->[]\n\n(action<->aktion swap)\n\n[Kopf_o]->[ up Kopf_o]\n[Kopf_u]->[ down Kopf_u]\n[Kopf_l]->[ left Kopf_l]\n[Kopf_r]->[ right Kopf_r]\n\n[ action player ] -> [ aktion player ]\n[ up player kopf ] -> [ action player > kopf ]\n\n\n(rotation code)\n\n[ left player kopf_o no koerper_l ] -> [ kopf_l ]\n[ right player kopf_o no koerper_r ] -> [ kopf_r ]\n\n[ left player kopf_u no koerper_r ] -> [ kopf_r ]\n[ right player kopf_u no koerper_l ] -> [ kopf_l ]\n\n[ left player kopf_l no koerper_u ] -> [ kopf_u ]\n[ right player kopf_l no koerper_o ] -> [ kopf_o ]\n\n[ left player kopf_r no koerper_o ] -> [ kopf_o ]\n[ right player kopf_r no koerper_u ] -> [ kopf_u ]\n\n\n[ orthogonal player ] -> [ player ]\n\n[Koerper_o]->[ up koerper_o]\n[Koerper_u]->[ down koerper_u]\n[Koerper_l]->[ left koerper_l]\n[Koerper_r]->[ right koerper_r]\n\n[Kopf_o]->[ up Kopf_o]\n[Kopf_u]->[ down Kopf_u]\n[Kopf_l]->[ left Kopf_l]\n[Kopf_r]->[ right Kopf_r]\n\n[action player ] [ > kopf | koerper ] -> [ action player ] [ blut | blut ] \n\n[action player ] [ > kopf | kopf ] -> [ action player ] [ blut | blut ]\n[action player ] [ > kopf | | kopf ] -> [ action player ] [ blut | blut | blut ]\n\n\n\n\n[ action player > kopf | wand ] -> cancel\n[ action player > kopf | schlange ] -> cancel\n\n\n[ action player > kopf | held ] -> [ > T | < T > player held ] sfx0\n[t koerper player ] -> [ player t koerper blut ]\n[ schlange | ^ player held | ] -> [ schlange blut | ^ player held | ]\n+ [ | ^ player held | schlange ] -> [ | ^ player held | schlange blut ]\n+ [ | ^ player held | ] -> [ < player > T | ^ U | < T > player ]\n+ [ horizontal U ] -> [ koerper_o koerper_u ]\n+ [ vertical U ] -> [ koerper_l koerper_r ]\n\n[ up player ] -> [ kopf_o ]\n[ down player ] -> [ kopf_u ]\n[ left player ] -> [ kopf_l ]\n[ right player ] -> [ kopf_r ]\n\n[ action player > kopf | no schlange ] -> [ > T | < T > player ]\n\n[ up T ] -> [ koerper_o ]\n[ down T ] -> [ koerper_u ]\n[ left T ] -> [ koerper_l ]\n[ right T ] -> [ koerper_r ]\n\n[ up Player ] -> [ kopf_o ]\n[ down Player ] -> [ kopf_u ]\n[ left Player ] -> [ kopf_l ]\n[ right Player ] -> [ kopf_r ]\n\n[koerper]->[stationary koerper]\n[kopf]->[stationary kopf]\n\n\n[t]->[]\n\n[ feuer no koerper ] -> [ ]\n\n[Koerper_o]->[ up koerper_o]\n[Koerper_u]->[ down koerper_u]\n[Koerper_l]->[ left koerper_l]\n[Koerper_r]->[ right koerper_r]\n\n[ | < koerper anyfeuer no T no branch ] -> [ feuer | feuer T ]\n[feuer branch]->[ branch]\n[feuer kopf]->[feuer] sfx1\n\n[t]->[]\n\n[moving koerper]->[stationary koerper]\n\n\nlate [ player ] -> []\nlate [kopf]->[ kopf player]\n\n\n[]->again\n\n\n==============\nWINCONDITIONS\n==============\n\nNo Held\nno blut\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 1 : Die Hyrda ist endlich umgegeben!\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#................*.................#\n#..................................#\n#.............*..P..*..............#\n#..................................#\n#................*.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Level 2 von 3 : Es muss moeglich sein, die Hydra zu toten!\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#.................*................#\n#..................................#\n#................*.................#\n#..................*...............#\n#..................................#\n#..............*.p.................#\n#..................................#\n#................*.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Level 3 von 5 : Wir haben ihren Schwachpunkt gefunden!\n\n\n####################################\n#..................................#\n#..................................#\n#................*.................#\n#..................................#\n#................*.................#\n#..................................#\n#................f.................#\n#..................................#\n#................*.................#\n#..................................#\n#................f.................#\n#..................................#\n#................*.................#\n#..................................#\n#..................................#\n#................p.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\n\nmessage Level 4 von 7 : Koennte sie ehrlich unsterblich sein!?\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#................*.................#\n#..................................#\n#................f.................#\n#..................................#\n#.............f..*..f..............#\n#..................................#\n#..................................#\n#.........*.f.*..P..*.f.*..........#\n#..................................#\n#..................................#\n#.............f..*..f..............#\n#..................................#\n#................f.................#\n#..................................#\n#................*.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Level 5 of 9 : Wir mussen uns gegen die Hydra schuetzen!\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..........fffffffffffff...........#\n#..........f...........f...........#\n#..........f..*..*..*..f...........#\n#..........f...........f...........#\n#..........f..*..*..*..f...........#\n#..........f...........f...........#\n#..........ff.........ff...........#\n#................p.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Level 6 of 11 : Haben wir alles umsonst gemacht?\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..........f.....f.....f...........#\n#..................................#\n#.............*..*..*..............#\n#..........f...........f...........#\n#.............*..*..*..............#\n#..................................#\n#..........f...........f...........#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#................p.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Es gibt kein Ende dieser Aufgabe. Wir verbeugen uns vor der Hydra.\n\n\nbbbbbbbb\nb123456b\nb7890-xb\nb;'\\,~/b\nb!@£$%&b\n#z_+{}:#\n.\"c?§±`.\n........\n..D..D..\n........\n\n\n\n",[1,1,0,3,0,0,0,0,3,0,0,0,3,3,3,0,0,0,3,0,0,3,0,0,"undo",0,"restart",0,0,0,0,3,0,0,0,0],"background wand: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,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,background koerper_u kopf_o player:2,background koerper_o koerper_u:3,3,3,background koerper_o koerper_r:4,1,background branch held:5,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,background koerper_l koerper_r:6,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n6,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,background branch koerper_l koerper_r koerper_u:7,3,background blut:8,1,5,1,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,6,1,background blut koerper_r:9,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,6,1,6,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,background koerper_l koerper_u:10,3,background branch koerper_l koerper_o koerper_r:11,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,background koerper_l kopf_r player:12,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,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,0,0,0,0,0,0,\n",1,"1627891504088.934"] + "der Hydra Krypta", + ["title der Hydra Krypta\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nagain_interval 0.1\nnorepeat_action\n\nrun_rules_on_level_start\n(verbose_logging)\n\n========\nOBJECTS\n========\n\nBackground\ntransparent darkblue \n01010\n10001\n00000\n10001\n01010\n\nHeld\nlightblue white pink brown gray blue\n4333.\n4121.\n00000\n.555.\n.5.5.\n\ndecorateheld\nlightblue white pink brown gray blue\n4333.\n4121.\n00000\n.555.\n.5.5.\n\nWand\nDarkgreen black\n00010\n11111\n01000\n11111\n00010\n\nPlayer\ntransparent\n\nKopf_O\ngreen yellow darkgreen\n.000.\n.101.\n.020.\n..2..\n.....\n\nKopf_U\ngreen yellow darkgreen\n.....\n..2..\n.020.\n.101.\n.000.\n\nKopf_L\ngreen yellow darkgreen\n.....\n010..\n0022.\n010..\n.....\n\nKopf_R\ngreen yellow darkgreen\n.....\n..010\n.2200\n..010\n.....\n\nKoerper_L\ngreen darkgreen\n.....\n000..\n1111.\n000..\n.....\n\nKoerper_R\ngreen darkgreen\n.....\n..000\n.1111\n..000\n.....\n\nKoerper_O\ngreen darkgreen\n.010.\n.010.\n.010.\n..1..\n.....\n\nKoerper_U\ngreen darkgreen\n.....\n..1..\n.010.\n.010.\n.010.\n\nblut\nred darkred\n.1.0.\n00100\n.010.\n01001\n.1.0.\n\nt\ntransparent\n\nu\ntransparent\n\naktion \ntransparent\n\nFeuer\norange yellow brown\n.1...\n.1.1.\n10101\n10001\n.222.\n\nbranch \ntransparent\n\nstaticfeuer\norange yellow brown\n.1...\n.1.1.\n10101\n10001\n.222.\n\n\nsprt_0_0\ngreen yellow darkgreen\n.....\n.0000\n.0101\n.0000\n..020\n\nsprt_1_0\ngreen\n.....\n0....\n0....\n0...0\n....0\n\nsprt_2_0\ndarkgreen green\n.....\n.....\n0....\n01...\n01...\n\nsprt_3_0\ngreen darkgreen\n.....\n....0\n...10\n..010\n..010\n\nsprt_4_0\ngreen darkgreen\n.....\n00000\n11111\n00000\n.....\n\nsprt_5_0\ngreen darkgreen\n.....\n00...\n111..\n0000.\n.010.\n\nsprt_0_1\ngreen darkgreen\n..010\n..000\n...11\n....0\n.....\n\nsprt_1_1\ngreen darkgreen\n....0\n00000\n11111\n00100\n.010.\n\nsprt_2_1\ndarkgreen green\n01...\n0111.\n00010\n11110\n...10\n\nsprt_3_1\ngreen yellow\n.0000\n.0101\n.0000\n0....\n0....\n\nsprt_4_1\ngreen darkgreen\n0....\n0....\n0....\n.0000\n.1111\n\nsprt_5_1\ngreen darkgreen\n.010.\n.010.\n.010.\n0010.\n101..\n\nsprt_0_2\ngreen\n.....\n.....\n.....\n.....\n...00\n\nsprt_1_2\ngreen yellow\n00000\n01010\n00000\n.....\n00000\n\nsprt_2_2\ngreen darkgreen\n...01\n...01\n...01\n...01\n00001\n\nsprt_3_2\ngreen\n0....\n0....\n0....\n0....\n0....\n\nsprt_4_2\ngreen darkgreen\n00000\n010..\n010..\n010..\n010..\n\nsprt_5_2\ngreen darkgreen\n00...\n.....\n...1.\n..010\n..010\n\nsprt_0_3\ndarkgreen green\n..010\n.1011\n.101.\n.101.\n.101.\n\nsprt_1_3\ndarkgreen green yellow\n00000\n11111\n.....\n.1111\n.1212\n\nsprt_2_3\ndarkgreen green\n00000\n11110\n...10\n1..10\n1..10\n\nsprt_3_3\ngreen darkgreen\n00000\n11111\n00000\n0....\n0....\n\nsprt_4_3\ngreen darkgreen\n0100.\n11111\n00000\n...01\n...01\n\nsprt_5_3\ngreen darkgreen\n..010\n..010\n0.010\n00010\n1101.\n\nsprt_0_4\ngreen darkgreen\n.010.\n.010.\n.010.\n.010.\n.010.\n\nsprt_1_4\ngreen darkgreen\n.0000\n..010\n..010\n..010\n...10\n\nsprt_2_4\ngreen darkgreen\n0..01\n...01\n...01\n00001\n11111\n\nsprt_3_4\ngreen yellow\n0.000\n0.010\n0.000\n0....\n0....\n\nsprt_4_4\ngreen darkgreen yellow\n00.01\n20001\n00101\n.000.\n.....\n\nsprt_5_4\ngreen\n000..\n0....\n.....\n.....\n.....\n\nsprt_0_5\ngreen darkgreen\n.010.\n.010.\n..1..\n.....\n.....\n\nsprt_1_5\ngreen\n....0\n.....\n.....\n.....\n.....\n\nsprt_2_5\ngreen darkgreen\n00001\n...01\n...01\n....1\n.....\n\nsprt_3_5\ngreen darkgreen\n0....\n0....\n00000\n01111\n00000\n\nsprt_4_5\ngreen darkgreen\n.....\n.....\n0000.\n11111\n0000.\n\nsprt_5_5\ndarkgreen\n.....\n.....\n.0...\n0....\n.....\n\nblackbg\nblack\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wand\nP = Kopf_O and player\n* = Held and branch\nD = decorateheld\nF = staticfeuer\n\n\n\nkopf = Kopf_O or Kopf_U or Kopf_L or Kopf_R\nKoerper = Koerper_O or Koerper_U or Koerper_L or Koerper_R\nSchlange = Koerper or Koerper\nanyfeuer = feuer or staticfeuer\n\nb = blackbg \n\n1 = sprt_0_0 and blackbg\n2 = sprt_1_0 and blackbg\n3 = sprt_2_0 and blackbg\n4 = sprt_3_0 and blackbg\n5 = sprt_4_0 and blackbg\n6 = sprt_5_0 and blackbg\n7 = sprt_0_1 and blackbg\n8 = sprt_1_1 and blackbg\n9 = sprt_2_1 and blackbg\n0 = sprt_3_1 and blackbg\n- = sprt_4_1 and blackbg\nx = sprt_5_1 and blackbg\n; = sprt_0_2 and blackbg\n' = sprt_1_2 and blackbg\n\\ = sprt_2_2 and blackbg\n, = sprt_3_2 and blackbg\n~ = sprt_4_2 and blackbg\n/ = sprt_5_2 and blackbg\n! = sprt_0_3 and blackbg\n@ = sprt_1_3 and blackbg\n£ = sprt_2_3 and blackbg\n$ = sprt_3_3 and blackbg\n% = sprt_4_3 and blackbg\n& = sprt_5_3 and blackbg\nz = sprt_0_4 and wand\n_ = sprt_1_4 and wand\n+ = sprt_2_4 and wand\n{ = sprt_3_4 and wand\n} = sprt_4_4 and wand\n: = sprt_5_4 and wand\n\" = sprt_0_5 \nc = sprt_1_5 \n? = sprt_2_5 \n§ = sprt_3_5 \n± = sprt_4_5 \n` = sprt_5_5 \n\n=======\nSOUNDS\n=======\n\nsfx0 12264904 (Held essen)\n\nblut create 28419304\nfeuer create 77309907 \nendlevel 91964903\nstartlevel 49051702\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nblackbg\nWand\nHeld,decorateheld\nKoerper_O\nKoerper_U\nKoerper_L\nKoerper_R\nKopf_O\nKopf_U\nKopf_L\nKopf_R\nplayer\nblut\nfeuer, staticfeuer\nT\nU\naktion\nbranch\nsprt_0_0, sprt_1_0, sprt_2_0, sprt_3_0, sprt_4_0, sprt_5_0, sprt_0_1, sprt_1_1, sprt_2_1, sprt_3_1, sprt_4_1, sprt_5_1, sprt_0_2, sprt_1_2, sprt_2_2, sprt_3_2, sprt_4_2, sprt_5_2, sprt_0_3, sprt_1_3, sprt_2_3, sprt_3_3, sprt_4_3, sprt_5_3, sprt_0_4, sprt_1_4, sprt_2_4, sprt_3_4, sprt_4_4, sprt_5_4, sprt_0_5, sprt_1_5, sprt_2_5, sprt_3_5, sprt_4_5, sprt_5_5, \n\n\n======\nRULES\n======\n\n[aktion]->[]\n\n[blut]->cancel\n[t]->[]\n[u]->[]\n\n[t]->[]\n\n(action<->aktion swap)\n\n[Kopf_o]->[ up Kopf_o]\n[Kopf_u]->[ down Kopf_u]\n[Kopf_l]->[ left Kopf_l]\n[Kopf_r]->[ right Kopf_r]\n\n[ action player ] -> [ aktion player ]\n[ up player kopf ] -> [ action player > kopf ]\n\n\n(rotation code)\n\n[ left player kopf_o no koerper_l ] -> [ kopf_l ]\n[ right player kopf_o no koerper_r ] -> [ kopf_r ]\n\n[ left player kopf_u no koerper_r ] -> [ kopf_r ]\n[ right player kopf_u no koerper_l ] -> [ kopf_l ]\n\n[ left player kopf_l no koerper_u ] -> [ kopf_u ]\n[ right player kopf_l no koerper_o ] -> [ kopf_o ]\n\n[ left player kopf_r no koerper_o ] -> [ kopf_o ]\n[ right player kopf_r no koerper_u ] -> [ kopf_u ]\n\n\n[ orthogonal player ] -> [ player ]\n\n[Koerper_o]->[ up koerper_o]\n[Koerper_u]->[ down koerper_u]\n[Koerper_l]->[ left koerper_l]\n[Koerper_r]->[ right koerper_r]\n\n[Kopf_o]->[ up Kopf_o]\n[Kopf_u]->[ down Kopf_u]\n[Kopf_l]->[ left Kopf_l]\n[Kopf_r]->[ right Kopf_r]\n\n[action player ] [ > kopf | koerper ] -> [ action player ] [ blut | blut ] \n\n[action player ] [ > kopf | kopf ] -> [ action player ] [ blut | blut ]\n[action player ] [ > kopf | | kopf ] -> [ action player ] [ blut | blut | blut ]\n\n\n\n\n[ action player > kopf | wand ] -> cancel\n[ action player > kopf | schlange ] -> cancel\n\n\n[ action player > kopf | held ] -> [ > T | < T > player held ] sfx0\n[t koerper player ] -> [ player t koerper blut ]\n[ schlange | ^ player held | ] -> [ schlange blut | ^ player held | ]\n+ [ | ^ player held | schlange ] -> [ | ^ player held | schlange blut ]\n+ [ | ^ player held | ] -> [ < player > T | ^ U | < T > player ]\n+ [ horizontal U ] -> [ koerper_o koerper_u ]\n+ [ vertical U ] -> [ koerper_l koerper_r ]\n\n[ up player ] -> [ kopf_o ]\n[ down player ] -> [ kopf_u ]\n[ left player ] -> [ kopf_l ]\n[ right player ] -> [ kopf_r ]\n\n[ action player > kopf | no schlange ] -> [ > T | < T > player ]\n\n[ up T ] -> [ koerper_o ]\n[ down T ] -> [ koerper_u ]\n[ left T ] -> [ koerper_l ]\n[ right T ] -> [ koerper_r ]\n\n[ up Player ] -> [ kopf_o ]\n[ down Player ] -> [ kopf_u ]\n[ left Player ] -> [ kopf_l ]\n[ right Player ] -> [ kopf_r ]\n\n[koerper]->[stationary koerper]\n[kopf]->[stationary kopf]\n\n\n[t]->[]\n\n[ feuer no koerper ] -> [ ]\n\n[Koerper_o]->[ up koerper_o]\n[Koerper_u]->[ down koerper_u]\n[Koerper_l]->[ left koerper_l]\n[Koerper_r]->[ right koerper_r]\n\n[ | < koerper anyfeuer no T no branch ] -> [ feuer | feuer T ]\n[feuer branch]->[ branch]\n[feuer kopf]->[feuer] sfx1\n\n[t]->[]\n\n[moving koerper]->[stationary koerper]\n\n\nlate [ player ] -> []\nlate [kopf]->[ kopf player]\n\n\n[]->again\n\n\n==============\nWINCONDITIONS\n==============\n\nNo Held\nno blut\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 1 : Die Hyrda ist endlich umgegeben!\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#................*.................#\n#..................................#\n#.............*..P..*..............#\n#..................................#\n#................*.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Level 2 von 3 : Es muss moeglich sein, die Hydra zu toten!\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#.................*................#\n#..................................#\n#................*.................#\n#..................*...............#\n#..................................#\n#..............*.p.................#\n#..................................#\n#................*.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Level 3 von 5 : Wir haben ihren Schwachpunkt gefunden!\n\n\n####################################\n#..................................#\n#..................................#\n#................*.................#\n#..................................#\n#................*.................#\n#..................................#\n#................f.................#\n#..................................#\n#................*.................#\n#..................................#\n#................f.................#\n#..................................#\n#................*.................#\n#..................................#\n#..................................#\n#................p.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\n\nmessage Level 4 von 7 : Koennte sie ehrlich unsterblich sein!?\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#................*.................#\n#..................................#\n#................f.................#\n#..................................#\n#.............f..*..f..............#\n#..................................#\n#..................................#\n#.........*.f.*..P..*.f.*..........#\n#..................................#\n#..................................#\n#.............f..*..f..............#\n#..................................#\n#................f.................#\n#..................................#\n#................*.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Level 5 of 9 : Wir mussen uns gegen die Hydra schuetzen!\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..........fffffffffffff...........#\n#..........f...........f...........#\n#..........f..*..*..*..f...........#\n#..........f...........f...........#\n#..........f..*..*..*..f...........#\n#..........f...........f...........#\n#..........ff.........ff...........#\n#................p.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Level 6 of 11 : Haben wir alles umsonst gemacht?\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..........f.....f.....f...........#\n#..................................#\n#.............*..*..*..............#\n#..........f...........f...........#\n#.............*..*..*..............#\n#..................................#\n#..........f...........f...........#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#................p.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Es gibt kein Ende dieser Aufgabe. Wir verbeugen uns vor der Hydra.\n\n\nbbbbbbbb\nb123456b\nb7890-xb\nb;'\\,~/b\nb!@£$%&b\n#z_+{}:#\n.\"c?§±`.\n........\n..D..D..\n........\n\n\n\n", [1, 1, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 3, 3, 3, 0, 0, 0, 3, 0, 0, 3, 0, 0, "undo", 0, "restart", 0, 0, 0, 0, 3, 0, 0, 0, 0], "background wand: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,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,background koerper_u kopf_o player:2,background koerper_o koerper_u:3,3,3,background koerper_o koerper_r:4,1,background branch held:5,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,background koerper_l koerper_r:6,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n6,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,background branch koerper_l koerper_r koerper_u:7,3,background blut:8,1,5,1,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,6,1,background blut koerper_r:9,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,6,1,6,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,background koerper_l koerper_u:10,3,background branch koerper_l koerper_o koerper_r:11,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,background koerper_l kopf_r player:12,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,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,0,0,0,0,0,0,\n", 1, "1627891504088.934"] ], [ - "Die schoene Steinmetzin", - ["title Die schoene Steinmetzin\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnoaction\n\nbackground_color blue\ntext_color white\n\ncolor_palette 14\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nhole\nblack\n\nWall\nBROWN \n\nPlayer\nred\n.....\n.000.\n.000.\n.000.\n.....\n\ncon_u\nred\n.000.\n.....\n.....\n.....\n.....\n\ncon_d\nred\n.....\n.....\n.....\n.....\n.000.\n\ncon_l\nred\n.....\n0....\n0....\n0....\n.....\n\ncon_r\nred\n.....\n....0\n....0\n....0\n.....\n\n\ntr\nred\n....0\n.....\n.....\n.....\n.....\n\n\ntl\nred\n0....\n.....\n.....\n.....\n.....\n\n\nbr\nred\n.....\n.....\n.....\n.....\n....0\n\n\nbl\nred\n.....\n.....\n.....\n.....\n0....\n\nknife_l\ngray\n0....\n0....\n0....\n0....\n0....\n\n\nknife_r\ngray\n....0\n....0\n....0\n....0\n....0\n\n\n\nknife_t\ngray\n00000\n.....\n.....\n.....\n.....\n\n\nknife_b\ngray\n.....\n.....\n.....\n.....\n00000\n\ncut_t\ntransparent\n\ncut_b\ntransparent\n\ncut_l\ntransparent\n\ncut_r\ntransparent\n\ntarget\norange\n\nsupported\ntransparent\n\n=======\nLEGEND\n=======\n\no = hole\n. = Background\n# = Wall\nP = Player\nconnection = con_u or con_d or con_l or con_r\nh = knife_r\nb = knife_b\nt = target\ncut = cut_t or cut_b or cut_l or cut_r\npixel = tr or tl or br or bl\n\n=======\nSOUNDS\n=======\nsfx0 29435104 (fall)\nsfx1 56782707 (cut)\nendlevel 53471503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget \nPlayer, Wall\ncon_u\ncon_d\ncon_l\ncon_r\nknife_t\nknife_b\nknife_l\nknife_r\ncut_t\ncut_b\ncut_l\ncut_r\ntr\ntl\nbr\nbl\nsupported\n\n======\nRULES\n======\n\n[pixel]->[]\n\nright [stationary player | player ] -> [ player con_r | player con_l ]\ndown [stationary player | player ] -> [ player con_d | player con_u ]\n\n\nright [knife_r | ] -> [ knife_r | knife_l]\ndown [knife_b | ] -> [ knife_b | knife_t]\n\n\n[ > player | wall ] -> [ player | wall ]\n+ [ right player knife_r ] -> [ stationary player knife_r]\n+ [ left player knife_l ] -> [ stationary player knife_l]\n+ [ up player knife_t ] -> [ stationary player knife_t]\n+ [ down player knife_b ] -> [ stationary player knife_b]\n\n+ up [ stationary player con_u | player ] -> [ stationary player con_u | stationary player ]\n+ down [ stationary player con_d | player ] -> [ stationary player con_d | stationary player ]\n+ left [ stationary player con_l | player ] -> [ stationary player con_l | stationary player ]\n+ right [ stationary player con_r | player ] -> [ stationary player con_r | stationary player ]\n\n+ [ > player | stationary player ] -> [ player | player ]\n\n\n[ > player connection ] -> [ > player > connection ]\n\n\n\n[ stationary player connection ] -> [ player stationary connection ]\n\n\nlate [ knife_r con_r ] -> [ knife_r cut_r ] sfx1\nlate [ knife_l con_l ] -> [ knife_l cut_l ] sfx1\n\nlate [ knife_t con_u ] -> [ knife_t cut_t ] sfx1\nlate [ knife_b con_d ] -> [ knife_b cut_b ] sfx1\n\n\nlate down [ con_r | con_u cut_r ] -> [ cut_r | con_u cut_r ]\nlate down [ con_l | con_u cut_l ] -> [ cut_l | con_u cut_l ]\n\nlate up [ con_r | con_d cut_r ] -> [ cut_r | con_d cut_r ]\nlate up [ con_l | con_d cut_l ] -> [ cut_l | con_d cut_l ]\n\nlate right [ con_u | con_l cut_t ] -> [ cut_t | con_l cut_t ]\nlate right [ con_d | con_l cut_b ] -> [ cut_b | con_l cut_b ]\n\nlate left [ con_u | con_r cut_t ] -> [ cut_t | con_r cut_t ]\nlate left [ con_d | con_r cut_b ] -> [ cut_b | con_r cut_b ]\n\nlate [ cut ]->[]\n\nlate [ player no hole ] -> [ player supported ]\n\nlate up [ supported con_u | ] -> [ supported con_u | supported ]\n+ late down [ supported con_d | ] -> [ supported con_d | supported ]\n+ late left [ supported con_l | ] -> [ supported con_l | supported ]\n+ late right [ supported con_r | ] -> [ supported con_r | supported ]\n\nlate [ player no supported ] -> [ no connection ] sfx0\n\nlate [ supported ] -> []\n\n\n\nlate right [ con_r con_d ] -> [ con_r con_d br ]\nlate right [ con_r con_u ] -> [ con_r con_u tr ]\nlate right [ con_l con_d ] -> [ con_l con_d bl ]\nlate right [ con_l con_u ] -> [ con_l con_u tl ]\n\n\n==============\nWINCONDITIONS\n==============\n\nall target on player\n\n=======\nLEVELS\n=======\n\n\n(OK LEVELS)\n\nmessage Level 1 von 5\n\n###############\n#.............#\n#.............#\n#....ppp..t.t.#\n##...ppp..ttt.#\n#....ppp..ttt.#\n#..........t..#\n#.............#\n#..h..........#\n###############\n\nmessage Level 2a von 5\n\n##################\n#................#\n#................#\n#....ppp..#...t..#\n#b...ppp..#..ttt.#\n#....ppp..#..ttt.#\n#.........#..t.t.#\n#................#\n#..h.............#\n##################\n\nmessage Level 2b von 5\n\n##################\n#................#\n#.....p..........#\n#....ppp..#......#\n#b...ppp..#..ttt.#\n#....p.p..#..ttt.#\n#.........#..ttt.#\n#................#\n#..h.............#\n##################\n\n\n\nmessage Level 3a von 5\n\n#################\n#........o......#\n#.........o.....#\n#...pp...o..ttt.#\n#b..ppp...o.t.t.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\nmessage Level 3b von 5\n\n(this is ok!)\n#################\n#....h...o......#\n#.........o.....#\n#...ppp..o..tt..#\n#b..p.p...o.ttt.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\nmessage Level 4a von 5\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#.ttt.ttt.#\n#...p.p...#.t.t.t.t.#\n#b..ppp..b#...ttt...#\n#...p.p...#.........#\n#...ppp...#.........#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n\nmessage Level 4b von 5\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#.........#...ttt...#\n#.ppp.ppp.#...t.t...#\n#bp.p.p.pb#...ttt...#\n#...ppp...#...t.t...#\n#.........#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n\nmessage level 5 von 5\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#...ttt...#\n#...p.....#...t.....#\n#b..ppp..b#...ttt...#\n#.....p...#.....t...#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n##...ot...###...ot...\no#.oootttooo#.ooottto\n##...###to###...###to\nottt.#tttooottt.#ttto\not...###...ot...###..\notttooo#.oootttooo#.o\n###to###...###to###..\n#tttooottt.#tttooottt\n###...ot...###...ot..\noo#.oootttooo#.ooottt\n###...###to###...###t\noottt.#tttooottt.#ttt\n.ot...###...ot...###.\nootttooo#.oootttooo#.\n.###to###...###to###.\n.#tttooottt.#tttooott\n.###...ot...###...ot.\nooo#.oootttooo#.ooott\n\n(\n(noT SURE LEVELS)\n\n(dunno!)\n##################\n#........#..######\n#........#.......#\n#...ppp..#...ttt.#\n#b..pp.......t.t.#\n#...ppp......ttt.#\n#........#.......#\n#........#..######\n#....h...#..######\n##################\n\n\n\n\n(lots of work)\n##################\n#............#...#\n#..........#.#...#\n#...pppp...#.tttt#\n#b..pppp...#.tttt#\n#...pppp...#.tttt#\n#...pppp...#.tttt#\n#..........#.#...#\n#..h.........#...#\n##################\n\n\n\n\n(nicht so gut:)\n##################\n#.........o.o#...#\n#..........o.#...#\n#...pppp..#..tttt#\n#b..pppp..#..tttt#\n#...pppp..#..tttt#\n#...pppp..#..tttt#\n#..........o.#...#\n#..h......o.o#...#\n##################\n\n\n#################\n#........o......#\n#.........o.....#\n#...ppp..o..tt..#\n#b..p.p...o.ttt.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\n#################\n#........o......#\n#.........o.....#\n#...ppp..o..ttt.#\n#b..pp....o.t.t.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\n#################\n#........o......#\n#.........o.....#\n#...ppp..o..ttt.#\n#b..pp....o.t.t.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\n(dupe of earlier)\n#################\n#..........######\n#...............#\n#...ppp.....ttt.#\n#b..pp......t.t.#\n#...ppp.....ttt.#\n#...............#\n#..........######\n#...h......######\n#################\n\n\n##################\n#.........o.o#...#\n#..........o.#...#\n#....ppp..#..ttt.#\n#b...ppp..#..ttt.#\n#....ppp..#..ttt.#\n#.........#......#\n#..........o.#...#\n#..h......o.o#...#\n##################\n\n#################\n#........o......#\n#.........o.....#\n#....ppp.o..ttt.#\n#b...pp...o.t.t.#\n#....ppp.o..ttt.#\n#.........o.....#\n#........o......#\n#..h......o.....#\n#################\n\n###############\n#.............#\n#.............#\n#....ppp..ttt.#\n#.#..pp..ttt..#\n#....ppp..ttt.#\n#b............#\n#.............#\n#.............#\n###############\n\n\n##################\n#.........o......#\n#..........o.....#\n#....ppp..#...t..#\n#b...ppp..#..ttt.#\n#....ppp..#..ttt.#\n#.........#..t.t.#\n#..........o.....#\n#..h......o......#\n##################\n\n\n##################\n#oo.......o......#\n#oo......o.......#\n#....ppp..o...t..#\n#b...ppp.o...ttt.#\n#....ppp..o..ttt.#\n#........o...t.t.#\n#.........o......#\n#..h.....o.......#\n##################\n\n\n###############\n#.............#\n#.............#\n#....ppp...t..#\n#b...ppp..ttt.#\n#....ppp..ttt.#\n#.........t.t.#\n#.............#\n#..h..........#\n###############\n\n#################\n#....h...o......#\n#.........o.....#\n#...ppp..o......#\n#...p.p...o.....#\n#...ppp..o..tt..#\n#b..p.p...o.ttt.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n#################\n#....h.....o....#\n#.........o.....#\n#...ppp...#.....#\n#...p.p...#.....#\n#b..ppp..b#.tt..#\n#...p.p...#.ttt.#\n#...ppp...#.ttt.#\n#.........#.....#\n#.........o.....#\n#....h.....o....#\n#################\n\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#.ttt.ttt.#\n#...p.p...#.t.t.t.t.#\n#b..ppp..b#.........#\n#...p.p...#.........#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#...ttt...#\n#...p.....#...t.....#\n#b..ppp..b#...ttt...#\n#...p.p...#.....t...#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n(OK)\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#...ttt...#\n#.....p...#...t.....#\n#b..ppp..b#...ttt...#\n#...p.....#.....t...#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n\n\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#...ttt...#\n#...p.....#.....t...#\n#b..ppp..b#...ttt...#\n#.....p...#...t.....#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n(also ok)\n)\n",[1,0,3,0,2,2,2,2,2,1,0,3,3,3,1,0,0,3,1,2,3,1,1,1,0,0,0,0,1,2,3,1,1,1,1,3,3,2,1,1,1,3,3,3,3,3,2,3,3,1,1,0,3,3,0,0],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,1,1,1,background knife_b:2,background knife_t:3,1,1,\n1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,background knife_r:4,1,\n1,1,1,1,1,1,1,4,0,0,background knife_l:5,1,1,1,1,1,1,1,1,5,0,\n0,background br con_d con_r player:6,background con_d con_u player:7,background con_r con_u player tr:8,1,background con_r player:9,1,1,1,1,1,0,0,background con_l player:10,1,background con_l con_r player:11,background player:12,10,1,1,1,\n1,1,0,0,12,12,10,1,2,background con_d knife_t player:13,background con_u player:14,1,1,1,0,0,1,background hole:15,0,0,0,\n0,0,0,15,1,0,0,15,1,1,1,1,1,1,1,1,15,0,0,1,1,\nbackground target:16,16,1,1,1,1,1,1,0,0,1,1,16,1,1,1,1,1,1,1,0,\n0,1,1,16,16,16,1,1,1,1,1,0,0,1,1,1,1,16,1,1,1,\n1,1,0,0,1,1,16,16,16,1,1,1,1,1,0,0,1,1,16,1,1,\n1,1,1,1,1,0,0,1,1,16,16,1,1,1,1,1,1,0,0,0,1,\n1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",11,"1627891524914.4753"] + "Die schoene Steinmetzin", + ["title Die schoene Steinmetzin\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnoaction\n\nbackground_color blue\ntext_color white\n\ncolor_palette 14\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nhole\nblack\n\nWall\nBROWN \n\nPlayer\nred\n.....\n.000.\n.000.\n.000.\n.....\n\ncon_u\nred\n.000.\n.....\n.....\n.....\n.....\n\ncon_d\nred\n.....\n.....\n.....\n.....\n.000.\n\ncon_l\nred\n.....\n0....\n0....\n0....\n.....\n\ncon_r\nred\n.....\n....0\n....0\n....0\n.....\n\n\ntr\nred\n....0\n.....\n.....\n.....\n.....\n\n\ntl\nred\n0....\n.....\n.....\n.....\n.....\n\n\nbr\nred\n.....\n.....\n.....\n.....\n....0\n\n\nbl\nred\n.....\n.....\n.....\n.....\n0....\n\nknife_l\ngray\n0....\n0....\n0....\n0....\n0....\n\n\nknife_r\ngray\n....0\n....0\n....0\n....0\n....0\n\n\n\nknife_t\ngray\n00000\n.....\n.....\n.....\n.....\n\n\nknife_b\ngray\n.....\n.....\n.....\n.....\n00000\n\ncut_t\ntransparent\n\ncut_b\ntransparent\n\ncut_l\ntransparent\n\ncut_r\ntransparent\n\ntarget\norange\n\nsupported\ntransparent\n\n=======\nLEGEND\n=======\n\no = hole\n. = Background\n# = Wall\nP = Player\nconnection = con_u or con_d or con_l or con_r\nh = knife_r\nb = knife_b\nt = target\ncut = cut_t or cut_b or cut_l or cut_r\npixel = tr or tl or br or bl\n\n=======\nSOUNDS\n=======\nsfx0 29435104 (fall)\nsfx1 56782707 (cut)\nendlevel 53471503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget \nPlayer, Wall\ncon_u\ncon_d\ncon_l\ncon_r\nknife_t\nknife_b\nknife_l\nknife_r\ncut_t\ncut_b\ncut_l\ncut_r\ntr\ntl\nbr\nbl\nsupported\n\n======\nRULES\n======\n\n[pixel]->[]\n\nright [stationary player | player ] -> [ player con_r | player con_l ]\ndown [stationary player | player ] -> [ player con_d | player con_u ]\n\n\nright [knife_r | ] -> [ knife_r | knife_l]\ndown [knife_b | ] -> [ knife_b | knife_t]\n\n\n[ > player | wall ] -> [ player | wall ]\n+ [ right player knife_r ] -> [ stationary player knife_r]\n+ [ left player knife_l ] -> [ stationary player knife_l]\n+ [ up player knife_t ] -> [ stationary player knife_t]\n+ [ down player knife_b ] -> [ stationary player knife_b]\n\n+ up [ stationary player con_u | player ] -> [ stationary player con_u | stationary player ]\n+ down [ stationary player con_d | player ] -> [ stationary player con_d | stationary player ]\n+ left [ stationary player con_l | player ] -> [ stationary player con_l | stationary player ]\n+ right [ stationary player con_r | player ] -> [ stationary player con_r | stationary player ]\n\n+ [ > player | stationary player ] -> [ player | player ]\n\n\n[ > player connection ] -> [ > player > connection ]\n\n\n\n[ stationary player connection ] -> [ player stationary connection ]\n\n\nlate [ knife_r con_r ] -> [ knife_r cut_r ] sfx1\nlate [ knife_l con_l ] -> [ knife_l cut_l ] sfx1\n\nlate [ knife_t con_u ] -> [ knife_t cut_t ] sfx1\nlate [ knife_b con_d ] -> [ knife_b cut_b ] sfx1\n\n\nlate down [ con_r | con_u cut_r ] -> [ cut_r | con_u cut_r ]\nlate down [ con_l | con_u cut_l ] -> [ cut_l | con_u cut_l ]\n\nlate up [ con_r | con_d cut_r ] -> [ cut_r | con_d cut_r ]\nlate up [ con_l | con_d cut_l ] -> [ cut_l | con_d cut_l ]\n\nlate right [ con_u | con_l cut_t ] -> [ cut_t | con_l cut_t ]\nlate right [ con_d | con_l cut_b ] -> [ cut_b | con_l cut_b ]\n\nlate left [ con_u | con_r cut_t ] -> [ cut_t | con_r cut_t ]\nlate left [ con_d | con_r cut_b ] -> [ cut_b | con_r cut_b ]\n\nlate [ cut ]->[]\n\nlate [ player no hole ] -> [ player supported ]\n\nlate up [ supported con_u | ] -> [ supported con_u | supported ]\n+ late down [ supported con_d | ] -> [ supported con_d | supported ]\n+ late left [ supported con_l | ] -> [ supported con_l | supported ]\n+ late right [ supported con_r | ] -> [ supported con_r | supported ]\n\nlate [ player no supported ] -> [ no connection ] sfx0\n\nlate [ supported ] -> []\n\n\n\nlate right [ con_r con_d ] -> [ con_r con_d br ]\nlate right [ con_r con_u ] -> [ con_r con_u tr ]\nlate right [ con_l con_d ] -> [ con_l con_d bl ]\nlate right [ con_l con_u ] -> [ con_l con_u tl ]\n\n\n==============\nWINCONDITIONS\n==============\n\nall target on player\n\n=======\nLEVELS\n=======\n\n\n(OK LEVELS)\n\nmessage Level 1 von 5\n\n###############\n#.............#\n#.............#\n#....ppp..t.t.#\n##...ppp..ttt.#\n#....ppp..ttt.#\n#..........t..#\n#.............#\n#..h..........#\n###############\n\nmessage Level 2a von 5\n\n##################\n#................#\n#................#\n#....ppp..#...t..#\n#b...ppp..#..ttt.#\n#....ppp..#..ttt.#\n#.........#..t.t.#\n#................#\n#..h.............#\n##################\n\nmessage Level 2b von 5\n\n##################\n#................#\n#.....p..........#\n#....ppp..#......#\n#b...ppp..#..ttt.#\n#....p.p..#..ttt.#\n#.........#..ttt.#\n#................#\n#..h.............#\n##################\n\n\n\nmessage Level 3a von 5\n\n#################\n#........o......#\n#.........o.....#\n#...pp...o..ttt.#\n#b..ppp...o.t.t.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\nmessage Level 3b von 5\n\n(this is ok!)\n#################\n#....h...o......#\n#.........o.....#\n#...ppp..o..tt..#\n#b..p.p...o.ttt.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\nmessage Level 4a von 5\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#.ttt.ttt.#\n#...p.p...#.t.t.t.t.#\n#b..ppp..b#...ttt...#\n#...p.p...#.........#\n#...ppp...#.........#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n\nmessage Level 4b von 5\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#.........#...ttt...#\n#.ppp.ppp.#...t.t...#\n#bp.p.p.pb#...ttt...#\n#...ppp...#...t.t...#\n#.........#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n\nmessage level 5 von 5\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#...ttt...#\n#...p.....#...t.....#\n#b..ppp..b#...ttt...#\n#.....p...#.....t...#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n##...ot...###...ot...\no#.oootttooo#.ooottto\n##...###to###...###to\nottt.#tttooottt.#ttto\not...###...ot...###..\notttooo#.oootttooo#.o\n###to###...###to###..\n#tttooottt.#tttooottt\n###...ot...###...ot..\noo#.oootttooo#.ooottt\n###...###to###...###t\noottt.#tttooottt.#ttt\n.ot...###...ot...###.\nootttooo#.oootttooo#.\n.###to###...###to###.\n.#tttooottt.#tttooott\n.###...ot...###...ot.\nooo#.oootttooo#.ooott\n\n(\n(noT SURE LEVELS)\n\n(dunno!)\n##################\n#........#..######\n#........#.......#\n#...ppp..#...ttt.#\n#b..pp.......t.t.#\n#...ppp......ttt.#\n#........#.......#\n#........#..######\n#....h...#..######\n##################\n\n\n\n\n(lots of work)\n##################\n#............#...#\n#..........#.#...#\n#...pppp...#.tttt#\n#b..pppp...#.tttt#\n#...pppp...#.tttt#\n#...pppp...#.tttt#\n#..........#.#...#\n#..h.........#...#\n##################\n\n\n\n\n(nicht so gut:)\n##################\n#.........o.o#...#\n#..........o.#...#\n#...pppp..#..tttt#\n#b..pppp..#..tttt#\n#...pppp..#..tttt#\n#...pppp..#..tttt#\n#..........o.#...#\n#..h......o.o#...#\n##################\n\n\n#################\n#........o......#\n#.........o.....#\n#...ppp..o..tt..#\n#b..p.p...o.ttt.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\n#################\n#........o......#\n#.........o.....#\n#...ppp..o..ttt.#\n#b..pp....o.t.t.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\n#################\n#........o......#\n#.........o.....#\n#...ppp..o..ttt.#\n#b..pp....o.t.t.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\n(dupe of earlier)\n#################\n#..........######\n#...............#\n#...ppp.....ttt.#\n#b..pp......t.t.#\n#...ppp.....ttt.#\n#...............#\n#..........######\n#...h......######\n#################\n\n\n##################\n#.........o.o#...#\n#..........o.#...#\n#....ppp..#..ttt.#\n#b...ppp..#..ttt.#\n#....ppp..#..ttt.#\n#.........#......#\n#..........o.#...#\n#..h......o.o#...#\n##################\n\n#################\n#........o......#\n#.........o.....#\n#....ppp.o..ttt.#\n#b...pp...o.t.t.#\n#....ppp.o..ttt.#\n#.........o.....#\n#........o......#\n#..h......o.....#\n#################\n\n###############\n#.............#\n#.............#\n#....ppp..ttt.#\n#.#..pp..ttt..#\n#....ppp..ttt.#\n#b............#\n#.............#\n#.............#\n###############\n\n\n##################\n#.........o......#\n#..........o.....#\n#....ppp..#...t..#\n#b...ppp..#..ttt.#\n#....ppp..#..ttt.#\n#.........#..t.t.#\n#..........o.....#\n#..h......o......#\n##################\n\n\n##################\n#oo.......o......#\n#oo......o.......#\n#....ppp..o...t..#\n#b...ppp.o...ttt.#\n#....ppp..o..ttt.#\n#........o...t.t.#\n#.........o......#\n#..h.....o.......#\n##################\n\n\n###############\n#.............#\n#.............#\n#....ppp...t..#\n#b...ppp..ttt.#\n#....ppp..ttt.#\n#.........t.t.#\n#.............#\n#..h..........#\n###############\n\n#################\n#....h...o......#\n#.........o.....#\n#...ppp..o......#\n#...p.p...o.....#\n#...ppp..o..tt..#\n#b..p.p...o.ttt.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n#################\n#....h.....o....#\n#.........o.....#\n#...ppp...#.....#\n#...p.p...#.....#\n#b..ppp..b#.tt..#\n#...p.p...#.ttt.#\n#...ppp...#.ttt.#\n#.........#.....#\n#.........o.....#\n#....h.....o....#\n#################\n\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#.ttt.ttt.#\n#...p.p...#.t.t.t.t.#\n#b..ppp..b#.........#\n#...p.p...#.........#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#...ttt...#\n#...p.....#...t.....#\n#b..ppp..b#...ttt...#\n#...p.p...#.....t...#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n(OK)\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#...ttt...#\n#.....p...#...t.....#\n#b..ppp..b#...ttt...#\n#...p.....#.....t...#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n\n\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#...ttt...#\n#...p.....#.....t...#\n#b..ppp..b#...ttt...#\n#.....p...#...t.....#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n(also ok)\n)\n", [1, 0, 3, 0, 2, 2, 2, 2, 2, 1, 0, 3, 3, 3, 1, 0, 0, 3, 1, 2, 3, 1, 1, 1, 0, 0, 0, 0, 1, 2, 3, 1, 1, 1, 1, 3, 3, 2, 1, 1, 1, 3, 3, 3, 3, 3, 2, 3, 3, 1, 1, 0, 3, 3, 0, 0], "background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,1,1,1,background knife_b:2,background knife_t:3,1,1,\n1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,background knife_r:4,1,\n1,1,1,1,1,1,1,4,0,0,background knife_l:5,1,1,1,1,1,1,1,1,5,0,\n0,background br con_d con_r player:6,background con_d con_u player:7,background con_r con_u player tr:8,1,background con_r player:9,1,1,1,1,1,0,0,background con_l player:10,1,background con_l con_r player:11,background player:12,10,1,1,1,\n1,1,0,0,12,12,10,1,2,background con_d knife_t player:13,background con_u player:14,1,1,1,0,0,1,background hole:15,0,0,0,\n0,0,0,15,1,0,0,15,1,1,1,1,1,1,1,1,15,0,0,1,1,\nbackground target:16,16,1,1,1,1,1,1,0,0,1,1,16,1,1,1,1,1,1,1,0,\n0,1,1,16,16,16,1,1,1,1,1,0,0,1,1,1,1,16,1,1,1,\n1,1,0,0,1,1,16,16,16,1,1,1,1,1,0,0,1,1,16,1,1,\n1,1,1,1,1,0,0,1,1,16,16,1,1,1,1,1,1,0,0,0,1,\n1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 11, "1627891524914.4753"] ], [ - "I want to grind myself into dust", - ["title I want to grind myself into dust\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnoaction\n\nbackground_color #231617\ntext_color red\ncolor_palette 10\n\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nhole\n#231617\n\nWall\nred \n\ninvisiblewall\nred \n\nplayer\npink\n.0.0.\n00000\n00000\n.000.\n..0..\n\nblock\ndarkblue\n.....\n.000.\n.000.\n.000.\n.....\n\ncon_u\ndarkblue\n.000.\n.....\n.....\n.....\n.....\n\ncon_d\ndarkblue\n.....\n.....\n.....\n.....\n.000.\n\ncon_l\ndarkblue\n.....\n0....\n0....\n0....\n.....\n\ncon_r\ndarkblue\n.....\n....0\n....0\n....0\n.....\n\n\ntr\ndarkblue\n....0\n.....\n.....\n.....\n.....\n\n\ntl\ndarkblue\n0....\n.....\n.....\n.....\n.....\n\n\nbr\ndarkblue\n.....\n.....\n.....\n.....\n....0\n\n\nbl\ndarkblue\n.....\n.....\n.....\n.....\n0....\n\nknife_l\ngray\n0....\n0....\n0....\n0....\n0....\n\n\nknife_r\ngray\n....0\n....0\n....0\n....0\n....0\n\n\n\nknife_t\ngray\n00000\n.....\n.....\n.....\n.....\n\n\nknife_b\ngray\n.....\n.....\n.....\n.....\n00000\n\ncut_t\ntransparent\n\ncut_b\ntransparent\n\ncut_l\ntransparent\n\ncut_r\ntransparent\n\ntarget\norange\n\nsupported\ntransparent\n\nturn1\ntransparent\n\n=======\nLEGEND\n=======\n\no = hole\n. = Background\n# = Wall\n` = invisiblewall\nP = block\n* = block and player and turn1\nconnection = con_u or con_d or con_l or con_r\nh = knife_r\nb = knife_b\ng = knife_t\nk = knife_t and knife_b\nt = target\ncut = cut_t or cut_b or cut_l or cut_r\npixel = tr or tl or br or bl\nwalltype = wall or invisiblewall\n=======\nSOUNDS\n=======\nsfx0 29435104 (fall)\nsfx1 56782707 (cut)\nsfx2 6864307 (fall apart)\nendlevel 53471503\nplayer destroy 10882304\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget \nBlock, Wall, invisiblewall\ncon_u\ncon_d\ncon_l\ncon_r\nknife_t\nknife_b\nknife_l\nknife_r\nplayer\ncut_t\ncut_b\ncut_l\ncut_r\ntr\ntl\nbr\nbl\nsupported\nturn1\n\n======\nRULES\n======\n\n[ > player block ] -> [ > player > block ]\n\nup [ moving block con_u | stationary block ] -> [ moving block con_u | moving block ]\n+ down [ moving block con_d | stationary block ] -> [ moving block con_d | moving block ]\n+ left [ moving block con_l | stationary block ] -> [ moving block con_l | moving block ]\n+ right [ moving block con_r | stationary block ] -> [ moving block con_r | moving block ]\n+ [ > block | block ] -> [ > block | > block ]\n\n[pixel]->[]\n\nright [ turn1 ] [ block | block ] -> [turn1] [ block con_r | block con_l ]\ndown [ turn1 ] [ block | block ] -> [turn1] [ block con_d | block con_u ]\n\n[turn1]->[]\n\nright [knife_r | ] -> [ knife_r | knife_l]\ndown [knife_b | ] -> [ knife_b | knife_t]\nleft [knife_l | ] -> [ knife_l | knife_r]\nup [knife_t | ] -> [ knife_t | knife_b]\n\n\n[ > block | walltype ] -> [ block | walltype ]\n+ [ right block knife_r ] -> [ stationary block knife_r]\n+ [ left block knife_l ] -> [ stationary block knife_l]\n+ [ up block knife_t ] -> [ stationary block knife_t]\n+ [ down block knife_b ] -> [ stationary block knife_b]\n\n+ up [ stationary block con_u | block ] -> [ stationary block con_u | stationary block ]\n+ down [ stationary block con_d | block ] -> [ stationary block con_d | stationary block ]\n+ left [ stationary block con_l | block ] -> [ stationary block con_l | stationary block ]\n+ right [ stationary block con_r | block ] -> [ stationary block con_r | stationary block ]\n\n+ [ > block | stationary block ] -> [ block | block ]\n\n[ > player | hole ] -> cancel\n\n[ > block connection ] -> [ > block > connection ]\n\n\n\n[ stationary block connection ] -> [ block stationary connection ]\n\n\n[ > player stationary block ] -> cancel\n\nlate [ knife_r con_r ] -> [ cut_r ] sfx1\nlate [ knife_l con_l ] -> [ cut_l ] sfx1\n\nlate [ knife_t con_u ] -> [ cut_t ] sfx1\nlate [ knife_b con_d ] -> [ cut_b ] sfx1\n\n(\nlate down [ con_r | con_u cut_r ] -> [ cut_r | con_u cut_r ]\nlate down [ con_l | con_u cut_l ] -> [ cut_l | con_u cut_l ]\n\nlate up [ con_r | con_d cut_r ] -> [ cut_r | con_d cut_r ]\nlate up [ con_l | con_d cut_l ] -> [ cut_l | con_d cut_l ]\n\nlate right [ con_u | con_l cut_t ] -> [ cut_t | con_l cut_t ]\nlate right [ con_d | con_l cut_b ] -> [ cut_b | con_l cut_b ]\n\nlate left [ con_u | con_r cut_t ] -> [ cut_t | con_r cut_t ]\nlate left [ con_d | con_r cut_b ] -> [ cut_b | con_r cut_b ]\n)\nlate [ cut ]->[]\n\n(\nlate [ block no hole ] -> [ block supported ]\n\nlate up [ supported con_u | ] -> [ supported con_u | supported ]\n+ late down [ supported con_d | ] -> [ supported con_d | supported ]\n+ late left [ supported con_l | ] -> [ supported con_l | supported ]\n+ late right [ supported con_r | ] -> [ supported con_r | supported ]\n\nlate [ block no supported ] -> [ no connection ] sfx0\n\nlate [ supported ] -> []\n\n)\n\n\n\nlate [ con_r con_d ] -> [ con_r con_d br ]\nlate [ con_r con_u ] -> [ con_r con_u tr ]\nlate [ con_l con_d ] -> [ con_l con_d bl ]\nlate [ con_l con_u ] -> [ con_l con_u tl ]\n\nlate [ block no connection ] -> [ ]\nlate [player no block]->[] \n\n==============\nWINCONDITIONS\n==============\n\nno connection\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 3\n\n(main good level)\nooooooooooooooooooo\n#####oooooooooooooo\n#b..###############\n#k................#\n#g.######..#####..#\n##.........#...#..#\no#.........#####..#\no#...p*p..........#\no#...p.p..........#\no#...ppp...hhhhhhh#\no#.........########\no#b.......b#ooooooo\no#g.......g#ooooooo\no#.........#ooooooo\no#.........#ooooooo\no###########ooooooo\n\n\n\nmessage 2 of 3\n\n(level 2)\n````````````````````````````\n`..........................`\n`...........ppp............`\n`...........p.p............`\n`...........ppp............`\n`...........p.p............`\n`...........ppp............`\n`............p.............`\n`............*.............`\n`..........................`\n`.........ooooooo.....###..`\n`.........okhh.ko......b#..`\n`.........okhh.ko......k#..`\n`.........okhh.ko......g#..`\n`.........ooooooo.....###..`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n(level 3)\n\nmessage 3 of 3\n\n\n\n#############################\n#........................#..#\n#........................#.g#\n#......ppp...............#.g#\n#.......p................#.g#\n#....p..p..p.............#.g#\n#....p..p..p.............#.g#\n#....ppp*ppp.............#.g#\n#....p..p..p.............#.g#\n#....p..p..p...............g#\n#.......p...................#\n#....ppppppp................#\n#...........................#\n#...........................#\n#...........................#\n#...........................#\n#..........hhhhhh...........#\n#..........hhhhhh...........#\n#..........hhhhhh...........#\n#..........hhhhhh...........#\n#..........ooo.ooo..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#........``o.....o``........#\n#........`bo.....ob`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`go.....og`........#\n##```````````````#````````###\n\nmessage I am finally dust!\n\n(\n\n````````````````````````````\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`.....b......b....b........`\n`.....g......g....g........`\n`..........................`\n`..........ppppp...........`\n`............p.............`\n`.........p..p..p....h.....`\n`.........p..p..p..........`\n`....h....ppp*ppp..........`\n`.........p..p..p..........`\n`.........p..p..p....h.....`\n`............p.............`\n`..........ppppp...........`\n`...................b......`\n`....h........b.....g......`\n`.............g............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n````````````````````````````\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`.....b......b....b........`\n`.....g......g....g........`\n`............p.............`\n`............p.............`\n`............p.............`\n`............p.......h.....`\n`............p.............`\n`....h.......*.............`\n`............p.............`\n`............p.......h.....`\n`............p.............`\n`............p.............`\n`............p......b......`\n`....h.......pb.....g......`\n`............pg............`\n`............p.............`\n`............p.............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n````````````````````````````\n`..........................`\n`.....b......b....b........`\n`.....g......g....g........`\n`..........................`\n`..........................`\n`..........................`\n`..........ppppp.....h.....`\n`..........pp*pp...........`\n`....h.....ppppp...........`\n`..........................`\n`....................h.....`\n`..........................`\n`..........................`\n`...................b......`\n`....h........b.....g......`\n`.............g............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n\n......................................\n......................................\n......................................\n......................................\n......................................\n.......b..............................\n......................................\n.............h..h...h..h..h...........\n.......b.......................b......\n......................................\n......................................\n..............ppppppp.................\n.......b......p.p.p.p.................\n..............ppp*ppp..........b......\n..............p.p.p.p.................\n..............ppppppp.................\n.......b..............................\n...............................b......\n......................................\n......................................\n.......b..............................\n...............................b......\n......................................\n............h...h...h..h..h...........\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n.......ppppppp..........\n.......p.p.p.p..........\n.......ppp*ppp..........\n.......p.p.p.p..........\n.......ppppppp..........\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n\n...................\n#####..............\n#b..###############\n#b................#\n#..######..#####..#\n##.........#...#..#\n.#.........#####..#\n.#....p...........#\n.#....p...........#\n.#...p*p...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#.........#.......\n.###########.......\n\n\n\n.###################.\n.#.................#.\n.#.................#.\n.#.................#.\n.#.................#.\n.#ooooooooooooooooo#.\n.#.................#.\n.#....p*p..........#.\n.#....p.p..........#.\n.#b...ppp.........b#.\n.#....p.p..........#.\n##....ppp..........##\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#ooooooooooooooooo#\n#.................#\n#....p*p..........#\n#....p.p..........#\n#b...ppp.........b#\n#....p.p..........#\n#....ppp..........#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n\n...................\n#####..............\n#b..###############\n#b................#\n#..######..#####..#\n##.........#...#..#\n.#.........#####..#\n.#...p*p..........#\n.#...p.p..........#\n.#...ppp...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#.........#.......\n.###########.......\n\n\n\n####............\n#b.#############\n#b.............#\n#..###..#####..#\n##......#...#..#\n.#......#####..#\n.#..p*p........#\n.#..p.p........#\n.#..ppp.hhhhhhh#\n.#b....b########\n.#......#.......\n.#......#.......\n.#......#.......\n.########.......\n................\n\n\n...................\n#####..............\n#b..###############\n#b................#\n#..#####...####...#\n##.........#..#...#\n.#.........####...#\n.#...p*p..........#\n.#...p.p..........#\n.#...ppp...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#.........#.......\n.###########.......\n\n...................\n#####..............\n#b..###############\n#b................#\n#..######..#####..#\n##.........#...#..#\n.#.........#####..#\n.#...p*p..........#\n.#...p.p..........#\n.#...ppp...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#....h....#.......\n.###########.......\n\n...................\n#####..............\n#b..###############\n#b................#\n#..######..#####..#\n##.........#...#..#\n.#.........#####..#\n.#...p*p..........#\n.#...p.p..........#\n.#...ppp...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#....h....#.......\n.###########.......\n\n\n..........................\n...........ppp............\n...........p.p............\n...........ppp............\n...........p.p............\n...........p*p............\n..........................\n..........................\n.........ooooooo..........\n.........okhh.ko..........\n.........okhh.ko..........\n.........okhh.ko..........\n.........ooooooo..........\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n\n..........................\n...........ppp............\n...........p.p............\n...........ppp............\n...........p.p............\n...........ppp............\n............p.............\n............*.............\n.........ooooooo..........\n.........okhh.ko..........\n.........okhh.ko..........\n.........okhh.ko..........\n.........ooooooo..........\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n\n......................................\n......................................\n......................................\n......................................\n......................................\n.......b..............................\n......................................\n....................h..h..h...........\n.......b.......................b......\n......................................\n......................................\n......................................\n.......b..............................\n...............................b......\n......................................\n.............ppp......................\n.......b......p.......................\n.............*p................b......\n..............p.......................\n.............pp.......................\n.......b..............................\n..............ppp........p.....b......\n..............p.p........p............\n..............ppp.......pph...........\n..............p.p........p............\n..............ppp.......pp............\n............ooooooo...................\n............okhh.ko...................\n............obhh.bo...................\n............obhh.bo...................\n............ooooooo...................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n\n\n\n\n\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n...ppp.....................\n...p.p....ooooooo.....###..\n...ppp....okhh.ko......b#..\n...p.p....okhh.ko......k#..\n...ppp....okhh.ko......g#..\n....p.....ooooooo.....###..\n....*......................\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n\n\n````````````````````````````\n`........hhhhhhhh.....kkkkk`\n`........hhhhhhhh.....kkkkk`\n`........hhhhhhhh.....kkkkk`\n`........hhhhhhhh.....kkkkk`\n`.....................kkkkk`\n#.....................ggggg`\n#..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`.........ppppp............`\n`....b......p..............`\n`........p..p..p...........`\n`........p..p..p...........`\n`........ppp*ppp...........`\n`........p..p..p...........`\n`....b...p..p..p...........`\n`...........p..............`\n`.........ppppp............`\n`..........................`\n`..........................`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n\n````````````````````````````\n`........hhhhhhhh.....ggggk`\n`........hhhhhhhh.....ggggk`\n`........hhhhhhhh.....ggggk`\n`........hhhhhhhh.....ggggk`\n`.....................ggggg`\n#.....................ggggg`\n#..........................`\n`..........ppppp...........`\n`............p.............`\n`...........pp.............`\n`...........pp.............`\n`..........pppp............`\n`..........pp..............`\n`..........pp..............`\n`........ppppp.............`\n`.........p................`\n`.........p................`\n`......*ppp................`\n`.........p................`\n`.........p................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n\n############################\n`..........................`\n`.........ppppp............`\n`...........p..............`\n`........p..p..p...........`\n`........p..p..p...........`\n`........ppp*ppp...........`\n`........p..p..p...........`\n`........p..p..p...........`\n`...........p..............`\n`.........ppppp............`\n`..........................`\n`..........................`\n`..........................`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........`oo.oo`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n````````````````````````````\n\n############################\n`..........................`\n`.........ppppp............`\n`...........p..............`\n`........p..p..p...........`\n`........p..p..p...........`\n`........ppp*ppp...........`\n`........p..p..p...........`\n`........p..p..p...........`\n`...........p..............`\n`.........ppppp............`\n`..........................`\n`..........................`\n`..........................`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........`oo.oo`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n````````````````````````````\n\n############################\n`..........................`\n`..........ppp.............`\n`...........p..............`\n`...........p..............`\n`...........p..............`\n`...........*..............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`...........p.p............`\n`...........p.p............`\n`...........p.p............`\n`...........p.p............`\n`...........p.p............`\n`...........p.p............`\n`..........................`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n````````````````````````````\n\n\n############################\n`..........................`\n`..........ppp.............`\n`...........p..............`\n`........p..p..p...........`\n`........p..p..p...........`\n`........ppp*ppp...........`\n`........p..p..p...........`\n`........p..p..p...........`\n`...........p..............`\n`........ppppppp...........`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........ooo.ooo...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n````````````````````````````\n\n\n#########################\n`....................#.k#\n`....................#.k#\n`....ppp.............#.k#\n`.....p..............#.k#\n`..p..p..p...........#.k#\n`..p..p..p...........#.k#\n`..ppp*ppp...........#.k#\n`..p..p..p...........#.k#\n`..p..p..p..............#\n`.....p.................#\n`..ppppppp..............#\n`.......................#\n`.......................#\n`.......................#\n`.......................#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........ooo.ooo........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`......``o.....o``......#\n`......`bo.....ob`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`go.....og`......#\n```````````````#`````````\n\n\n\n#########################\n`....................#.k#\n`....................#.k#\n`....ppp.............#.k#\n`.....p..............#.k#\n`..p..p..p...........#.k#\n`..p..p..p...........#.k#\n`..ppp*ppp...........#.g#\n`..p..p..p..............#\n`..p..p..p..............#\n`.....p.................#\n`..ppppppp..............#\n`.......................#\n`.......................#\n`.......................#\n`.......................#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........ooo.ooo........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`......``o.....o``......#\n`......`bo.....ob`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`go.....og`......#\n```````````````#`````````\n\n\n#########################\n`....................#.g#\n`....................#.g#\n`..........ppp.......#.g#\n`...........p........#.g#\n`........p..p..p.....#.g#\n`........p..p..p.....#.g#\n`........ppp*ppp.....#.g#\n`........p..p..p........#\n`........p..p..p........#\n`...........p...........#\n`........ppppppp........#\n`.......................#\n`.......................#\n`.......................#\n`.......................#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........ooo.ooo........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`......``o.....o``......#\n`......`.o.....o.`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n```````````````#`````````\n\n\n)\n",[2,3,3,3,3,2,2,2,2,2,2,2,1,3,3,3,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,0,0,0,0,3,0,0,0,3,3,0,1,1,2,2,2,1,1,2,1,1,1,1,1,0,0,0,3,3,3,3,3,1,1,1,1,0,0,3,2,3,3,3,3,3,3,3,3,3,3,0,3,3,3,0,0,0],"background invisiblewall: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,background:1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,1,1,1,1,1,1,1,1,1,1,background block con_r:2,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,background hole:3,background block con_l con_r hole:4,3,3,3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,\n1,1,1,1,1,background hole knife_b:5,background block con_l knife_t:6,1,1,3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,3,background knife_r:7,7,1,3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,3,\nbackground knife_l knife_r:8,8,1,3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,3,background knife_l:9,9,1,\n3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,3,1,1,1,3,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,3,3,3,3,3,1,1,1,1,1,\n1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,\n1,1,1,1,1,background bl block br con_d con_l con_r:10,background block con_d con_u:11,background block con_u player:12,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\nbackground wall:13,background block con_d:14,background block con_l con_u tl:15,1,13,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,13,background knife_b:16,background knife_b knife_t:17,\nbackground knife_t:18,13,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,13,13,13,13,13,1,\n1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,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,0,\n",3,"1627891570621.5903"] + "I want to grind myself into dust", + ["title I want to grind myself into dust\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnoaction\n\nbackground_color #231617\ntext_color red\ncolor_palette 10\n\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nhole\n#231617\n\nWall\nred \n\ninvisiblewall\nred \n\nplayer\npink\n.0.0.\n00000\n00000\n.000.\n..0..\n\nblock\ndarkblue\n.....\n.000.\n.000.\n.000.\n.....\n\ncon_u\ndarkblue\n.000.\n.....\n.....\n.....\n.....\n\ncon_d\ndarkblue\n.....\n.....\n.....\n.....\n.000.\n\ncon_l\ndarkblue\n.....\n0....\n0....\n0....\n.....\n\ncon_r\ndarkblue\n.....\n....0\n....0\n....0\n.....\n\n\ntr\ndarkblue\n....0\n.....\n.....\n.....\n.....\n\n\ntl\ndarkblue\n0....\n.....\n.....\n.....\n.....\n\n\nbr\ndarkblue\n.....\n.....\n.....\n.....\n....0\n\n\nbl\ndarkblue\n.....\n.....\n.....\n.....\n0....\n\nknife_l\ngray\n0....\n0....\n0....\n0....\n0....\n\n\nknife_r\ngray\n....0\n....0\n....0\n....0\n....0\n\n\n\nknife_t\ngray\n00000\n.....\n.....\n.....\n.....\n\n\nknife_b\ngray\n.....\n.....\n.....\n.....\n00000\n\ncut_t\ntransparent\n\ncut_b\ntransparent\n\ncut_l\ntransparent\n\ncut_r\ntransparent\n\ntarget\norange\n\nsupported\ntransparent\n\nturn1\ntransparent\n\n=======\nLEGEND\n=======\n\no = hole\n. = Background\n# = Wall\n` = invisiblewall\nP = block\n* = block and player and turn1\nconnection = con_u or con_d or con_l or con_r\nh = knife_r\nb = knife_b\ng = knife_t\nk = knife_t and knife_b\nt = target\ncut = cut_t or cut_b or cut_l or cut_r\npixel = tr or tl or br or bl\nwalltype = wall or invisiblewall\n=======\nSOUNDS\n=======\nsfx0 29435104 (fall)\nsfx1 56782707 (cut)\nsfx2 6864307 (fall apart)\nendlevel 53471503\nplayer destroy 10882304\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget \nBlock, Wall, invisiblewall\ncon_u\ncon_d\ncon_l\ncon_r\nknife_t\nknife_b\nknife_l\nknife_r\nplayer\ncut_t\ncut_b\ncut_l\ncut_r\ntr\ntl\nbr\nbl\nsupported\nturn1\n\n======\nRULES\n======\n\n[ > player block ] -> [ > player > block ]\n\nup [ moving block con_u | stationary block ] -> [ moving block con_u | moving block ]\n+ down [ moving block con_d | stationary block ] -> [ moving block con_d | moving block ]\n+ left [ moving block con_l | stationary block ] -> [ moving block con_l | moving block ]\n+ right [ moving block con_r | stationary block ] -> [ moving block con_r | moving block ]\n+ [ > block | block ] -> [ > block | > block ]\n\n[pixel]->[]\n\nright [ turn1 ] [ block | block ] -> [turn1] [ block con_r | block con_l ]\ndown [ turn1 ] [ block | block ] -> [turn1] [ block con_d | block con_u ]\n\n[turn1]->[]\n\nright [knife_r | ] -> [ knife_r | knife_l]\ndown [knife_b | ] -> [ knife_b | knife_t]\nleft [knife_l | ] -> [ knife_l | knife_r]\nup [knife_t | ] -> [ knife_t | knife_b]\n\n\n[ > block | walltype ] -> [ block | walltype ]\n+ [ right block knife_r ] -> [ stationary block knife_r]\n+ [ left block knife_l ] -> [ stationary block knife_l]\n+ [ up block knife_t ] -> [ stationary block knife_t]\n+ [ down block knife_b ] -> [ stationary block knife_b]\n\n+ up [ stationary block con_u | block ] -> [ stationary block con_u | stationary block ]\n+ down [ stationary block con_d | block ] -> [ stationary block con_d | stationary block ]\n+ left [ stationary block con_l | block ] -> [ stationary block con_l | stationary block ]\n+ right [ stationary block con_r | block ] -> [ stationary block con_r | stationary block ]\n\n+ [ > block | stationary block ] -> [ block | block ]\n\n[ > player | hole ] -> cancel\n\n[ > block connection ] -> [ > block > connection ]\n\n\n\n[ stationary block connection ] -> [ block stationary connection ]\n\n\n[ > player stationary block ] -> cancel\n\nlate [ knife_r con_r ] -> [ cut_r ] sfx1\nlate [ knife_l con_l ] -> [ cut_l ] sfx1\n\nlate [ knife_t con_u ] -> [ cut_t ] sfx1\nlate [ knife_b con_d ] -> [ cut_b ] sfx1\n\n(\nlate down [ con_r | con_u cut_r ] -> [ cut_r | con_u cut_r ]\nlate down [ con_l | con_u cut_l ] -> [ cut_l | con_u cut_l ]\n\nlate up [ con_r | con_d cut_r ] -> [ cut_r | con_d cut_r ]\nlate up [ con_l | con_d cut_l ] -> [ cut_l | con_d cut_l ]\n\nlate right [ con_u | con_l cut_t ] -> [ cut_t | con_l cut_t ]\nlate right [ con_d | con_l cut_b ] -> [ cut_b | con_l cut_b ]\n\nlate left [ con_u | con_r cut_t ] -> [ cut_t | con_r cut_t ]\nlate left [ con_d | con_r cut_b ] -> [ cut_b | con_r cut_b ]\n)\nlate [ cut ]->[]\n\n(\nlate [ block no hole ] -> [ block supported ]\n\nlate up [ supported con_u | ] -> [ supported con_u | supported ]\n+ late down [ supported con_d | ] -> [ supported con_d | supported ]\n+ late left [ supported con_l | ] -> [ supported con_l | supported ]\n+ late right [ supported con_r | ] -> [ supported con_r | supported ]\n\nlate [ block no supported ] -> [ no connection ] sfx0\n\nlate [ supported ] -> []\n\n)\n\n\n\nlate [ con_r con_d ] -> [ con_r con_d br ]\nlate [ con_r con_u ] -> [ con_r con_u tr ]\nlate [ con_l con_d ] -> [ con_l con_d bl ]\nlate [ con_l con_u ] -> [ con_l con_u tl ]\n\nlate [ block no connection ] -> [ ]\nlate [player no block]->[] \n\n==============\nWINCONDITIONS\n==============\n\nno connection\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 3\n\n(main good level)\nooooooooooooooooooo\n#####oooooooooooooo\n#b..###############\n#k................#\n#g.######..#####..#\n##.........#...#..#\no#.........#####..#\no#...p*p..........#\no#...p.p..........#\no#...ppp...hhhhhhh#\no#.........########\no#b.......b#ooooooo\no#g.......g#ooooooo\no#.........#ooooooo\no#.........#ooooooo\no###########ooooooo\n\n\n\nmessage 2 of 3\n\n(level 2)\n````````````````````````````\n`..........................`\n`...........ppp............`\n`...........p.p............`\n`...........ppp............`\n`...........p.p............`\n`...........ppp............`\n`............p.............`\n`............*.............`\n`..........................`\n`.........ooooooo.....###..`\n`.........okhh.ko......b#..`\n`.........okhh.ko......k#..`\n`.........okhh.ko......g#..`\n`.........ooooooo.....###..`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n(level 3)\n\nmessage 3 of 3\n\n\n\n#############################\n#........................#..#\n#........................#.g#\n#......ppp...............#.g#\n#.......p................#.g#\n#....p..p..p.............#.g#\n#....p..p..p.............#.g#\n#....ppp*ppp.............#.g#\n#....p..p..p.............#.g#\n#....p..p..p...............g#\n#.......p...................#\n#....ppppppp................#\n#...........................#\n#...........................#\n#...........................#\n#...........................#\n#..........hhhhhh...........#\n#..........hhhhhh...........#\n#..........hhhhhh...........#\n#..........hhhhhh...........#\n#..........ooo.ooo..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#........``o.....o``........#\n#........`bo.....ob`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`go.....og`........#\n##```````````````#````````###\n\nmessage I am finally dust!\n\n(\n\n````````````````````````````\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`.....b......b....b........`\n`.....g......g....g........`\n`..........................`\n`..........ppppp...........`\n`............p.............`\n`.........p..p..p....h.....`\n`.........p..p..p..........`\n`....h....ppp*ppp..........`\n`.........p..p..p..........`\n`.........p..p..p....h.....`\n`............p.............`\n`..........ppppp...........`\n`...................b......`\n`....h........b.....g......`\n`.............g............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n````````````````````````````\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`.....b......b....b........`\n`.....g......g....g........`\n`............p.............`\n`............p.............`\n`............p.............`\n`............p.......h.....`\n`............p.............`\n`....h.......*.............`\n`............p.............`\n`............p.......h.....`\n`............p.............`\n`............p.............`\n`............p......b......`\n`....h.......pb.....g......`\n`............pg............`\n`............p.............`\n`............p.............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n````````````````````````````\n`..........................`\n`.....b......b....b........`\n`.....g......g....g........`\n`..........................`\n`..........................`\n`..........................`\n`..........ppppp.....h.....`\n`..........pp*pp...........`\n`....h.....ppppp...........`\n`..........................`\n`....................h.....`\n`..........................`\n`..........................`\n`...................b......`\n`....h........b.....g......`\n`.............g............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n\n......................................\n......................................\n......................................\n......................................\n......................................\n.......b..............................\n......................................\n.............h..h...h..h..h...........\n.......b.......................b......\n......................................\n......................................\n..............ppppppp.................\n.......b......p.p.p.p.................\n..............ppp*ppp..........b......\n..............p.p.p.p.................\n..............ppppppp.................\n.......b..............................\n...............................b......\n......................................\n......................................\n.......b..............................\n...............................b......\n......................................\n............h...h...h..h..h...........\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n.......ppppppp..........\n.......p.p.p.p..........\n.......ppp*ppp..........\n.......p.p.p.p..........\n.......ppppppp..........\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n\n...................\n#####..............\n#b..###############\n#b................#\n#..######..#####..#\n##.........#...#..#\n.#.........#####..#\n.#....p...........#\n.#....p...........#\n.#...p*p...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#.........#.......\n.###########.......\n\n\n\n.###################.\n.#.................#.\n.#.................#.\n.#.................#.\n.#.................#.\n.#ooooooooooooooooo#.\n.#.................#.\n.#....p*p..........#.\n.#....p.p..........#.\n.#b...ppp.........b#.\n.#....p.p..........#.\n##....ppp..........##\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#ooooooooooooooooo#\n#.................#\n#....p*p..........#\n#....p.p..........#\n#b...ppp.........b#\n#....p.p..........#\n#....ppp..........#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n\n...................\n#####..............\n#b..###############\n#b................#\n#..######..#####..#\n##.........#...#..#\n.#.........#####..#\n.#...p*p..........#\n.#...p.p..........#\n.#...ppp...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#.........#.......\n.###########.......\n\n\n\n####............\n#b.#############\n#b.............#\n#..###..#####..#\n##......#...#..#\n.#......#####..#\n.#..p*p........#\n.#..p.p........#\n.#..ppp.hhhhhhh#\n.#b....b########\n.#......#.......\n.#......#.......\n.#......#.......\n.########.......\n................\n\n\n...................\n#####..............\n#b..###############\n#b................#\n#..#####...####...#\n##.........#..#...#\n.#.........####...#\n.#...p*p..........#\n.#...p.p..........#\n.#...ppp...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#.........#.......\n.###########.......\n\n...................\n#####..............\n#b..###############\n#b................#\n#..######..#####..#\n##.........#...#..#\n.#.........#####..#\n.#...p*p..........#\n.#...p.p..........#\n.#...ppp...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#....h....#.......\n.###########.......\n\n...................\n#####..............\n#b..###############\n#b................#\n#..######..#####..#\n##.........#...#..#\n.#.........#####..#\n.#...p*p..........#\n.#...p.p..........#\n.#...ppp...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#....h....#.......\n.###########.......\n\n\n..........................\n...........ppp............\n...........p.p............\n...........ppp............\n...........p.p............\n...........p*p............\n..........................\n..........................\n.........ooooooo..........\n.........okhh.ko..........\n.........okhh.ko..........\n.........okhh.ko..........\n.........ooooooo..........\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n\n..........................\n...........ppp............\n...........p.p............\n...........ppp............\n...........p.p............\n...........ppp............\n............p.............\n............*.............\n.........ooooooo..........\n.........okhh.ko..........\n.........okhh.ko..........\n.........okhh.ko..........\n.........ooooooo..........\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n\n......................................\n......................................\n......................................\n......................................\n......................................\n.......b..............................\n......................................\n....................h..h..h...........\n.......b.......................b......\n......................................\n......................................\n......................................\n.......b..............................\n...............................b......\n......................................\n.............ppp......................\n.......b......p.......................\n.............*p................b......\n..............p.......................\n.............pp.......................\n.......b..............................\n..............ppp........p.....b......\n..............p.p........p............\n..............ppp.......pph...........\n..............p.p........p............\n..............ppp.......pp............\n............ooooooo...................\n............okhh.ko...................\n............obhh.bo...................\n............obhh.bo...................\n............ooooooo...................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n\n\n\n\n\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n...ppp.....................\n...p.p....ooooooo.....###..\n...ppp....okhh.ko......b#..\n...p.p....okhh.ko......k#..\n...ppp....okhh.ko......g#..\n....p.....ooooooo.....###..\n....*......................\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n\n\n````````````````````````````\n`........hhhhhhhh.....kkkkk`\n`........hhhhhhhh.....kkkkk`\n`........hhhhhhhh.....kkkkk`\n`........hhhhhhhh.....kkkkk`\n`.....................kkkkk`\n#.....................ggggg`\n#..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`.........ppppp............`\n`....b......p..............`\n`........p..p..p...........`\n`........p..p..p...........`\n`........ppp*ppp...........`\n`........p..p..p...........`\n`....b...p..p..p...........`\n`...........p..............`\n`.........ppppp............`\n`..........................`\n`..........................`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n\n````````````````````````````\n`........hhhhhhhh.....ggggk`\n`........hhhhhhhh.....ggggk`\n`........hhhhhhhh.....ggggk`\n`........hhhhhhhh.....ggggk`\n`.....................ggggg`\n#.....................ggggg`\n#..........................`\n`..........ppppp...........`\n`............p.............`\n`...........pp.............`\n`...........pp.............`\n`..........pppp............`\n`..........pp..............`\n`..........pp..............`\n`........ppppp.............`\n`.........p................`\n`.........p................`\n`......*ppp................`\n`.........p................`\n`.........p................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n\n############################\n`..........................`\n`.........ppppp............`\n`...........p..............`\n`........p..p..p...........`\n`........p..p..p...........`\n`........ppp*ppp...........`\n`........p..p..p...........`\n`........p..p..p...........`\n`...........p..............`\n`.........ppppp............`\n`..........................`\n`..........................`\n`..........................`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........`oo.oo`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n````````````````````````````\n\n############################\n`..........................`\n`.........ppppp............`\n`...........p..............`\n`........p..p..p...........`\n`........p..p..p...........`\n`........ppp*ppp...........`\n`........p..p..p...........`\n`........p..p..p...........`\n`...........p..............`\n`.........ppppp............`\n`..........................`\n`..........................`\n`..........................`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........`oo.oo`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n````````````````````````````\n\n############################\n`..........................`\n`..........ppp.............`\n`...........p..............`\n`...........p..............`\n`...........p..............`\n`...........*..............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`...........p.p............`\n`...........p.p............`\n`...........p.p............`\n`...........p.p............`\n`...........p.p............`\n`...........p.p............`\n`..........................`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n````````````````````````````\n\n\n############################\n`..........................`\n`..........ppp.............`\n`...........p..............`\n`........p..p..p...........`\n`........p..p..p...........`\n`........ppp*ppp...........`\n`........p..p..p...........`\n`........p..p..p...........`\n`...........p..............`\n`........ppppppp...........`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........ooo.ooo...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n````````````````````````````\n\n\n#########################\n`....................#.k#\n`....................#.k#\n`....ppp.............#.k#\n`.....p..............#.k#\n`..p..p..p...........#.k#\n`..p..p..p...........#.k#\n`..ppp*ppp...........#.k#\n`..p..p..p...........#.k#\n`..p..p..p..............#\n`.....p.................#\n`..ppppppp..............#\n`.......................#\n`.......................#\n`.......................#\n`.......................#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........ooo.ooo........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`......``o.....o``......#\n`......`bo.....ob`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`go.....og`......#\n```````````````#`````````\n\n\n\n#########################\n`....................#.k#\n`....................#.k#\n`....ppp.............#.k#\n`.....p..............#.k#\n`..p..p..p...........#.k#\n`..p..p..p...........#.k#\n`..ppp*ppp...........#.g#\n`..p..p..p..............#\n`..p..p..p..............#\n`.....p.................#\n`..ppppppp..............#\n`.......................#\n`.......................#\n`.......................#\n`.......................#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........ooo.ooo........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`......``o.....o``......#\n`......`bo.....ob`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`go.....og`......#\n```````````````#`````````\n\n\n#########################\n`....................#.g#\n`....................#.g#\n`..........ppp.......#.g#\n`...........p........#.g#\n`........p..p..p.....#.g#\n`........p..p..p.....#.g#\n`........ppp*ppp.....#.g#\n`........p..p..p........#\n`........p..p..p........#\n`...........p...........#\n`........ppppppp........#\n`.......................#\n`.......................#\n`.......................#\n`.......................#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........ooo.ooo........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`......``o.....o``......#\n`......`.o.....o.`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n```````````````#`````````\n\n\n)\n", [2, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 0, 0, 0, 0, 3, 0, 0, 0, 3, 3, 0, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 0, 0, 0, 3, 3, 3, 3, 3, 1, 1, 1, 1, 0, 0, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 0, 0, 0], "background invisiblewall: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,background:1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,1,1,1,1,1,1,1,1,1,1,background block con_r:2,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,background hole:3,background block con_l con_r hole:4,3,3,3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,\n1,1,1,1,1,background hole knife_b:5,background block con_l knife_t:6,1,1,3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,3,background knife_r:7,7,1,3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,3,\nbackground knife_l knife_r:8,8,1,3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,3,background knife_l:9,9,1,\n3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,3,1,1,1,3,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,3,3,3,3,3,1,1,1,1,1,\n1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,\n1,1,1,1,1,background bl block br con_d con_l con_r:10,background block con_d con_u:11,background block con_u player:12,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\nbackground wall:13,background block con_d:14,background block con_l con_u tl:15,1,13,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,13,background knife_b:16,background knife_b knife_t:17,\nbackground knife_t:18,13,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,13,13,13,13,13,1,\n1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,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,0,\n", 3, "1627891570621.5903"] ], [ - "Karamell", - ["title Karamell\nauthor Stephen Lavelle\nhomepage www.increpare.com\nrun_rules_on_level_start\n\nverbose_logging\n\nrequire_player_movement\n\nbackground_color #9c5445\n\n========\nOBJECTS\n========\n\nnostril \n#231617 transparent\n10001\n00000\n00000\n00000\n10001\n\nBackground\n#3d2d2e\n\nTarget\n#231617\n\ntargetp_tl\n#3d2d2e\n0....\n.....\n.....\n.....\n.....\n\ntargetp_tr\n#3d2d2e\n....0\n.....\n.....\n.....\n.....\n\ntargetp_bl\n#3d2d2e\n.....\n.....\n.....\n.....\n0....\n\ntargetp_br\n#3d2d2e\n.....\n.....\n.....\n.....\n....0\n\n\nborder_l\n#78403e\n0....\n0....\n0....\n0....\n0....\n\n\n\nborder_r\n#78403e\n....0\n....0\n....0\n....0\n....0\n\n\n\nborder_u\n#78403e\n00000\n.....\n.....\n.....\n.....\n\n\n\nborder_d\n#78403e\n.....\n.....\n.....\n.....\n00000\n\nUvula_c\n#2a1c1d #231617\n00000\n10001\n10001\n10001\n10001\n\nUvula\n#2a1c1d #231617\n10001\n00000\n00000\n00000\n10001\n\ntoffee\n#bb6a25 #d07d36 #e4944f\n.111.\n11111\n11111\n11111\n.111.\n\n\ntoffee_tl\n#bb6a25 #d07d36 #e4944f\n.1111\n01212\n01212\n01212\n01212\n\n\ntoffee_tr\n#bb6a25 #d07d36 #e4944f\n1111.\n12121\n12121\n12121\n12121\n\n\ntoffee_bl\n#bb6a25 #d07d36 #e4944f\n01212\n01212\n01212\n01212\n.1111\n\n\ntoffee_br\n#bb6a25 #d07d36 #e4944f\n12121\n12121\n12121\n12121\n1111.\n\ntoffee_full\n#bb6a25 #d07d36 #e4944f #ffffff\n.333.\n13331\n11111\n11111\n11111\n\ntoffee_fulldec\n#ffffff\n.000.\n.000.\n.....\n.....\n.....\n\ntoffee_fulldec_b\n#ffffff\n.....\n.....\n.....\n..0..\n.000.\n\ntongue \ndarkred\n\nlips \ndarkred\n\n\nWall\n#9c5445\n\nGum\n#ce474b\n.....\n00000\n00000\n00000\n00.00\n\nGum_Full\n#ce474b #ffffff\n.....\n00000\n00000\n00000\n00100\n\n\n\nzahn_d_t\n#ffffff\n.....\n.0.0.\n.0.0.\n.000.\n.000.\n\nzahn_d_b\n#ffffff\n.000.\n.000.\n.000.\n.000.\n.....\n\ncon_u\nyellow\n..0..\n.....\n.....\n.....\n.....\n\ncon_d\nyellow\n.....\n.....\n.....\n.....\n..0..\n\ncon_l\nyellow\n.....\n.....\n0....\n.....\n.....\n\ncon_r\nyellow\n.....\n.....\n....0\n.....\n.....\n\nmaketooth\ntransparent\n\nmarker\nred\n.....\n.....\n..0..\n.....\n.....\n\nagaining \ntransparent\n\nagaining2\ntransparent\n\nsupported\ngreen\n.....\n.....\n..0..\n.....\n.....\n\ntodrop\ntransparent\n\nshadow\nblack\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nm_l\ntransparent\n\nm_r\ntransparent\n\nm_t\ntransparent\n\nm_b\ntransparent\n\n=======\nLEGEND\n=======\n\ntoffee_any = toffee or toffee_full\n\nzahn = zahn_d_t or zahn_d_b\nplayer = gum or gum_full\ngum_any = player\n\nmotile = player or toffee or zahn or toffee_any\ndroppable_tile = toffee or zahn or toffee_any\nmotile_nonsticking = player or toffee or zahn_d_b or toffee_any\n\nwall_like = wall or lips or tongue\n\nconnection = con_u or con_d or con_l or con_r\nsolid = zahn or player or wall_like or toffee\n\n\nuvula_part = uvula or uvula_c\n\ntoffee_bottom = toffee_bl or toffee_br\n\ntoffeepart = toffee_tl or toffee_tr or toffee_bl or toffee_br\ntoffeedec = toffee_fulldec or toffee_fulldec_b\n\ntarget_pixels = targetp_tl or targetp_tr or targetp_bl or targetp_br\n\ndecoration = toffeedec \n\ntarget_part = uvula or uvula_c or target\nwall_toborder = wall or tongue\n. = Background\nu = uvula\nw = uvula_c\nL = lips\n# = Wall\nP = Player\nG = gum_full\ni = gum\nD = zahn_d_b\nT = Toffee\nH = Target\nn = nostril and wall\no = tongue\n\n=======\nSOUNDS\n=======\nsfx0 65988703 (pull)\nsfx1 70735502 (swallow)\nsfx2 23125707 (bite)\n\n================\nCOLLISIONLAYERS\n================\n\n\ncon_r\ncon_l\ncon_u\ncon_d\nmarker\n\n\nsupported\nBackground\nuvula, uvula_c\nTarget\ntargetp_tl\ntargetp_tr\ntargetp_bl\ntargetp_br\nWall, zahn_d_t, zahn_d_b, player, lips, tongue\ntoffee, toffee_full\n\nborder_u\nborder_d\nborder_l\nborder_r\ntoffee_tl \ntoffee_tr \ntoffee_bl \ntoffee_br\ntoffee_fulldec\nTOFFEE_FULLDEC_B\nmaketooth\nagaining\nagaining2\ntodrop\nshadow\nnostril\nm_l\nm_r\nm_t\nm_b\n\n\n\n======\nRULES\n======\n\n[shadow] -> [ ]\n[againing2] [ player ] ->[againing] [ action player ]\n[againing2]->[]\n[motile todrop] [ player ]->[shadow no connection no decoration no toffeepart] [ player againing2 ] again\n\n[marker]->[]\nright [ player | player ] -> [ player con_r | player con_l ]\ndown [ gum_full | zahn_d_b ] -> [ gum_full con_d | zahn_d_b con_u ]\n\nright [ stationary player no againing no againing2 ] [ no toffee | toffee | toffee ] -> [ player ] [ | toffee m_l | toffee m_r ]\ndown [ stationary player no againing no againing2 ] [ no toffee | toffee | toffee ] -> [ player ] [ | toffee m_t | toffee m_b ]\n\n[ m_t m_l ] -> [toffee_tl]\n[ m_b m_l ] -> [toffee_bl]\n[ m_t m_r ] -> [toffee_tr]\n[ m_b m_r ] -> [toffee_br]\n\nright [ stationary player no againing no againing2 ] [ toffee | toffee ] -> [ player ] [ toffee con_r | toffee con_l ]\ndown [ stationary player no againing no againing2 ] [ toffee | toffee ] -> [ player ] [ toffee con_d | toffee con_u ]\n\nright [stationary player no againing no againing2 ] [ target | no target no uvula_part] -> [player] [ targetp_tr targetp_br target | ]\nright [stationary player no againing no againing2 ] [ no target no uvula_part| target ] -> [player] [ | targetp_tl targetp_bl target ]\n\ndown [stationary player] [ target | targetp_tr ] -> [player] [ target | ]\ndown [stationary player] [ target | targetp_tl ] -> [player] [ target | ]\nup [stationary player] [ target | targetp_br ] -> [player] [ target | ]\nup [stationary player] [ target | targetp_bl ] -> [player] [ target | ]\n\n\n(propagate movements)\n\nup [ moving motile con_u | motile ] -> [ moving motile con_u | moving motile ] \n+ down [ moving motile con_d | motile ] -> [ moving motile con_d | moving motile ] \n+ left [ moving motile con_l | motile ] -> [ moving motile con_l | moving motile ] \n+ right [ moving motile con_r | motile ] -> [ moving motile con_r | moving motile ] \n+ [ > motile | motile ] -> [ > motile | > motile ]\n\n\n(back-propagate blockages)\n\n\t(toffee can't walk into walls)\n[ > motile | wall_like ] -> [ motile | wall_like ]\n\n+ [ > zahn | stationary zahn ] -> [ zahn | zahn ]\n\n+ horizontal [ > toffee | stationary zahn ] -> [ stationary toffee | zahn]\n+ [ > toffee_any | stationary toffee_any ] -> [ stationary toffee_any | toffee_any]\n\t(restick tooth in gums)\n+ down [ down gum | stationary zahn_d_t con_d ] -> [ down gum_full con_d | ] sfx2\n\t\n (back-propagate non-movement in toffees)\n+ up [ stationary toffee_any con_u | motile ] -> [ stationary toffee_any con_u | stationary motile ] \n+ down [ stationary toffee_any con_d | motile ] -> [ stationary toffee_any con_d | stationary motile ] \n+ left [ stationary toffee_any con_l | motile ] -> [ stationary toffee_any con_l | stationary motile ] \n+ right [ stationary toffee_any con_r | motile ] -> [ stationary toffee_any con_r | stationary motile ] \n\n+ down [ stationary zahn_d_t con_d | motile ] -> [ stationary zahn_d_t con_d | stationary motile ] \n+ down [ stationary zahn_d_t con_d | stationary motile ] -> [ zahn_d_t con_d | stationary motile ] \n\n (back-propagate non-movement in gums)\n+ up [ stationary gum_any con_u | motile ] -> [ stationary gum_any con_u | stationary motile ] \n+ down [ stationary gum_any con_d | motile ] -> [ stationary gum_any con_d | stationary motile ] \n+ left [ stationary gum_any con_l | motile ] -> [ stationary gum_any con_l | stationary motile ] \n+ right [ stationary gum_any con_r | motile ] -> [ stationary gum_any con_r | stationary motile ]\n\n+ up [ stationary zahn_d_b con_u | motile ] -> [ stationary zahn_d_b con_u | stationary motile ] \n\n\n\n+ [ > gum_any | stationary motile_nonsticking ] -> [ gum_any | motile_nonsticking ] \n\n+ [ > toffee | stationary toffee ] -> [ toffee | toffee ] \n\n\n\t(tooth unstick)\n+ down [ up gum_full con_d | stationary toffee_full con_u ] -> [ up gum_full maketooth | toffee_full ]\n\n\n[stationary motile]->[marker motile]\n[ > motile connection ] -> [ > motile > connection ]\n[ > toffee_any toffeepart ] -> [ > toffee_any > toffeepart ]\n\nlate down [ gum_full | toffee zahn_d_b ] -> [ gum_full | toffee_full ] sfx2\n\nlate down [ gum_full | maketooth | toffee_full ] -> [ gum | zahn_d_t con_d | toffee_full con_u ] sfx0\n\nlate down [ toffee | toffee_full ] -> [ toffee con_d | toffee_full con_u ]\n(decoration steps)\n\nlate [ decoration ] -> [ ]\n\nlate [toffee_full ] -> [ toffee_full toffee_fulldec ]\nlate [toffee_bottom con_d ] -> [ toffee_bottom con_d toffee_fulldec_b ]\n\n(check if things are supported)\n\nlate [supported]->[]\nlate [ gum_any ] -> [ gum_any supported ]\nlate [ motile no target_part ] -> [ motile supported ]\n\nlate up [ supported con_u | ] -> [ supported con_u | supported ]\n+ late down [ supported con_d | ] -> [ supported con_d | supported ]\n+ late left [ supported con_l | ] -> [ supported con_l | supported ]\n+ late right [ supported con_r | ] -> [ supported con_r | supported ]\n\n\nlate [againing]->[]\n\nlate [droppable_tile no supported] [player ]->[droppable_tile todrop] [player againing] sfx1 again\n\nlate right [ wall_toborder | no wall_like ] -> [ wall_toborder border_r | ]\nlate left [ wall_toborder | no wall_like ] -> [ wall_toborder border_l | ]\nlate up [ wall_toborder | no wall_like ] -> [ wall_toborder border_u | ]\nlate down [ wall_toborder | no wall_like ] -> [ wall_toborder border_d | ]\nlate [ player ] [ againing2] ->[ player againing2] [againing2]\n==============\nWINCONDITIONS\n==============\n\nno toffee\nno shadow\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 3 - Karamell, den liebe ich!\n\n######n#n######\n###############\n##lllllllllll##\n#l...........l#\n#.....ggg.....#\n#.....ddd.....#\n#.....hwh.....#\n#...#.huh.....#\n#.....hhh.....#\n#.............#\n#......tt.....#\n#......tt.....#\n#l...........l#\n##lllllllllll##\n\nmessage Level 2 von 3 - Ich bin ein Nimmersat des Karamellen\n\n########n#n########\n###################\n##lllllllllllllll##\n#l...............l#\n#.....gggg........#\n#.....dddd........#\n#.................#\n#.......#.........#\n#.................#\n#.................#\n#....tt...tt......#\n#....tt...tt......#\n#..............####\n#....#######...hwh#\n#..............huh#\n#lllllllllll...hhh#\n###########l...hhh#\n###########l...hhh#\n###########lllllll#\n\nmessage Level 3 von 3 - Meine Zaehne werden nicht ausfallen, wenn ich die schlucke!\n\n###########n#n#############\n###########################\n#lllllllllllllllllllllll###\n#.......................###\n#.......................###\n#..hhwhh........gggg....###\n#..hhuhh....#...dddd....###\n#..hhhhh................###\n#..hhhhh................###\n#..hhhhh................###\n#..hhhhh....tt....tt....###\n#..hhhhh....tt....tt....###\n#.......................###\n#.......................###\n#..........#....###########\n#..........#...############\n#..........#...############\n#..........#..##..........#\n#..........#..##..........#\n#..........#..##....tt....#\n#..........#tt##....tt....#\n#...........tt............#\n#.........................#\n#..........lllllllllllllll#\n#..........l###############\n#lllllllllll###############\n\n\nMessage Ich glaube an ... Karamell!\n\nhhhhhhhhhhhhhhhhhhhhhhhhh\nhhhhhhlllllllllllllhhhhhh\nhhhhhlllllllllllllllhhhhh\nhhhhhlllllllllllllllhhhhh\nhhhhhll###########llhhhhh\nhhhhhl###d#####d###lhhhhh\nhhh#h###############h#hhh\nhhh###################hhh\nhhh#h###############h#hhh\nhhhhh######n#n######hhhhh\nhhhhh###############hhhhh\nhhhhh##lllllllllll##hhhhh\nhhhhh##...hhwhh...##hhhhh\nhhhhh##lllllllllll##hhhhh\nhhhhh###############hhhhh\nhhhhh###############hhhhh\nhhhhhhhhhh#####hhhhhhhhhh\nhhhhhhhhhh#####hhhhhhhhhh\n\n(\n###########################\n#.......................###\n#.......................###\n#..hhwhh........gggg....###\n#..hhuhh....#...dddd....###\n#..hhhhh................###\n#..hhhhh................###\n#..hhhhh................###\n#..hhhhh....tt....tt....###\n#..hhhhh....tt....tt....###\n#.......................###\n#.......................###\n#..........#....###########\n#..........#...############\n#..........#...############\n#..........#..##..........#\n#..........#..##..........#\n#..........#..##....tt....#\n#..........#tt##....tt....#\n#...........tt............#\n#.........................#\n#..........################\n#..........################\n###########################\n)\n\n(\n(ooops this doesn't work)\n####################\n#..................#\n#..................#\n#..................#\n#...gggg...........#\n#...gggd....#......#\n#...ggd............#\n#...gd.............#\n#...d.tt...........#\n#.....tt.#.........#\n#.....####...##....#\n#........#.........#\n#........#.........#\n#........#.........#\n####################\n\n\n####################\n#..................#\n#..................#\n#..................#\n#.....gggg...tt....#\n#.....dddd...tt....#\n#..................#\n#......#.....tt....#\n#............tt....#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n####################\n\n\n######################\n#....................#\n#....................#\n#....................#\n#..............tt....#\n#..............tt....#\n#....................#\n#....................#\n#..gggg...#....tt....#\n#..dddd........tt....#\n#....................#\n#....................#\n#....................#\n#....................#\n#....................#\n#.......#..#.........#\n#.......#..#.........#\n#.......#..#.........#\n#.......#..#.........#\n#.......#..#.........#\n#.......#..#.........#\n#....####..####......#\n#....................#\n#....................#\n#....##########......#\n#....................#\n#....................#\n#....................#\n#....................#\n######################\n\n###############################\n#.........................#...#\n#.hhwhh...................#...#\n#.hhuhh...................#...#\n#.hhhhh.......#.....tt....#...#\n#.hhhhh.............tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.gggg........tt....#...#\n#.hhhhh.dddd........tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####....tt....#\n#.hhhhh...####tt####....tt....#\n#.hhhhh.......tt..............#\n#.............................#\n#.........##########..........#\n#.........##########..........#\n#.........##########..........#\n#.........##########..........#\n###############################\n\n###############################\n#.........................#...#\n#.hhwhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.......#.....tt....#...#\n#.hhhhh.............tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.gggg........tt....#...#\n#.hhhhh.dddd........tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####....tt....#\n#.hhhhh...####tt####....tt....#\n#.hhhhh.......tt..............#\n#.............................#\n####################....tt....#\n####################....tt....#\n####################..........#\n####################..........#\n###############################\n\n\n\n###############################\n#.........................#...#\n#.hhwhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.......#.....tt....#...#\n#.hhhhh.............tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.gggg........tt....#...#\n#.hhhhh.dddd........tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####....tt....#\n#.hhhhh...####tt####....tt....#\n#.hhhhh.......tt..............#\n#.............................#\n####################....tt....#\n####################....tt....#\n####################..........#\n####################..........#\n###############################\n\n######################\n#....................#\n#....................#\n#....................#\n#..............tt....#\n#..............tt....#\n#....................#\n#....................#\n#..gggg...#....tt....#\n#..dddd........tt....#\n#....................#\n#....................#\n#....................#\n#....................#\n#....................#\n#....####..####......#\n#....####..####......#\n#....####..####......#\n#....####..####......#\n#....####..####......#\n#....####..####......#\n#....####tt####......#\n#........tt..........#\n#....................#\n#....##########......#\n#....................#\n#....................#\n#....................#\n#....................#\n######################\n\n###############################\n#.........................#...#\n#.hhwhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.......#.....tt....#...#\n#.hhhhh.............tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.gggg........tt....#...#\n#.hhhhh.dddd........tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.........................#...#\n#.........................#...#\n#.........................#...#\n#...........#....##########...#\n#...........##..###########...#\n#...........##..###########...#\n#...........##..####..........#\n#...........##..####..........#\n#...........##..####....tt....#\n#...........##tt####....tt....#\n#.............tt..............#\n#.............................#\n####################....tt....#\n####################....tt....#\n####################..........#\n####################..........#\n###############################\n\n\n\n###############################\n#.........................#####\n#.hhwhh...................#####\n#.hhhhh...................#####\n#.hhhhh.......#.....tt....#####\n#.hhhhh.............tt....#####\n#.hhhhh...................#####\n#.hhhhh...................#####\n#.hhhhh.gggg........tt....#####\n#.hhhhh.dddd........tt....#####\n#.hhhhh...................#####\n#.hhhhh...................#####\n#.........................#####\n#.........................#####\n#.........................#####\n#............#....#############\n#............#...##############\n#............#...##############\n#............#..####..........#\n#............#..####..........#\n#............#..####....tt....#\n#............#tt####....tt....#\n#.............tt..............#\n#.............................#\n#............##################\n#............##################\n###############################\n\n###########################\n#.......................###\n#.hhwhh.........gggg....###\n#.hhuhh.....#...dddd....###\n#.hhhhh.................###\n#.hhhhh.................###\n#.hhhhh.....tt....tt....###\n#.hhhhh.....tt....tt....###\n#.......................###\n#.......................###\n#..........#....###########\n#..........#...############\n#..........#...############\n#..........#..##..........#\n#..........#..##..........#\n#..........#..##....tt....#\n#..........#tt##....tt....#\n#...........tt............#\n#.........................#\n#..........################\n#..........################\n###########################\n)\n",[1,1,1,2,2,2,2,2,1,2,0,3,3,0,0,0,0,0,3,3,3,3,3,2,2,2,2,1,1,1,3,3,3,3,3,2,2,2,1,0,0,1,0,0,0,1,1,1,1,2,2,1,2,2,3,3,3,3,3,0,0,3,3,1,3,3,3,2,2,2,2,1,1,1,1],"background wall:0,0,0,0,background border_r wall:1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,\n0,0,0,background lips:2,background:3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,background con_d marker supported zahn_d_t:4,background con_d con_r con_u marker supported toffee_full toffee_fulldec toffee_tl:5,background con_r con_u marker supported toffee toffee_bl:6,3,3,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,background con_d con_l marker supported toffee toffee_tr:7,background con_l con_u marker supported toffee toffee_br:8,3,background border_d border_l border_u wall:9,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,3,3,3,background border_d border_u wall:10,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,3,3,3,10,3,2,0,0,0,\nbackground nostril wall:11,0,2,3,3,3,3,background border_d border_l border_r border_u wall:12,3,3,3,3,3,10,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,background con_r gum supported:13,3,3,3,10,3,2,0,0,0,\n11,0,2,3,3,3,3,3,3,background con_d con_l con_r gum_full supported:14,background con_u supported zahn_d_b:15,3,3,10,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,14,background con_d con_r con_u supported toffee_full toffee_fulldec toffee_tl:16,background con_r con_u supported toffee toffee_bl:17,3,background border_d border_r border_u wall:18,3,2,2,2,2,\n0,0,2,3,3,3,3,3,3,background con_d con_l gum_full supported:19,background con_d con_l con_u supported toffee_full toffee_fulldec toffee_tr:20,background con_l con_u supported toffee toffee_br:21,3,3,3,3,3,3,2,\n0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,\n0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,\n0,0,2,3,3,3,3,3,3,3,3,3,9,background target targetp_tl:22,background target:23,23,23,background target targetp_bl:24,2,\n0,0,2,3,3,3,3,3,3,3,3,3,10,background uvula_c:25,background uvula:26,23,23,23,2,\n0,0,0,2,3,3,3,3,3,3,3,3,10,background target targetp_tr:27,23,23,23,background target targetp_br:28,2,\n0,0,0,0,background border_l wall:29,29,29,29,29,29,29,29,0,29,29,29,29,29,0,\n",3,"1627891595796.583"] + "Karamell", + ["title Karamell\nauthor Stephen Lavelle\nhomepage www.increpare.com\nrun_rules_on_level_start\n\nverbose_logging\n\nrequire_player_movement\n\nbackground_color #9c5445\n\n========\nOBJECTS\n========\n\nnostril \n#231617 transparent\n10001\n00000\n00000\n00000\n10001\n\nBackground\n#3d2d2e\n\nTarget\n#231617\n\ntargetp_tl\n#3d2d2e\n0....\n.....\n.....\n.....\n.....\n\ntargetp_tr\n#3d2d2e\n....0\n.....\n.....\n.....\n.....\n\ntargetp_bl\n#3d2d2e\n.....\n.....\n.....\n.....\n0....\n\ntargetp_br\n#3d2d2e\n.....\n.....\n.....\n.....\n....0\n\n\nborder_l\n#78403e\n0....\n0....\n0....\n0....\n0....\n\n\n\nborder_r\n#78403e\n....0\n....0\n....0\n....0\n....0\n\n\n\nborder_u\n#78403e\n00000\n.....\n.....\n.....\n.....\n\n\n\nborder_d\n#78403e\n.....\n.....\n.....\n.....\n00000\n\nUvula_c\n#2a1c1d #231617\n00000\n10001\n10001\n10001\n10001\n\nUvula\n#2a1c1d #231617\n10001\n00000\n00000\n00000\n10001\n\ntoffee\n#bb6a25 #d07d36 #e4944f\n.111.\n11111\n11111\n11111\n.111.\n\n\ntoffee_tl\n#bb6a25 #d07d36 #e4944f\n.1111\n01212\n01212\n01212\n01212\n\n\ntoffee_tr\n#bb6a25 #d07d36 #e4944f\n1111.\n12121\n12121\n12121\n12121\n\n\ntoffee_bl\n#bb6a25 #d07d36 #e4944f\n01212\n01212\n01212\n01212\n.1111\n\n\ntoffee_br\n#bb6a25 #d07d36 #e4944f\n12121\n12121\n12121\n12121\n1111.\n\ntoffee_full\n#bb6a25 #d07d36 #e4944f #ffffff\n.333.\n13331\n11111\n11111\n11111\n\ntoffee_fulldec\n#ffffff\n.000.\n.000.\n.....\n.....\n.....\n\ntoffee_fulldec_b\n#ffffff\n.....\n.....\n.....\n..0..\n.000.\n\ntongue \ndarkred\n\nlips \ndarkred\n\n\nWall\n#9c5445\n\nGum\n#ce474b\n.....\n00000\n00000\n00000\n00.00\n\nGum_Full\n#ce474b #ffffff\n.....\n00000\n00000\n00000\n00100\n\n\n\nzahn_d_t\n#ffffff\n.....\n.0.0.\n.0.0.\n.000.\n.000.\n\nzahn_d_b\n#ffffff\n.000.\n.000.\n.000.\n.000.\n.....\n\ncon_u\nyellow\n..0..\n.....\n.....\n.....\n.....\n\ncon_d\nyellow\n.....\n.....\n.....\n.....\n..0..\n\ncon_l\nyellow\n.....\n.....\n0....\n.....\n.....\n\ncon_r\nyellow\n.....\n.....\n....0\n.....\n.....\n\nmaketooth\ntransparent\n\nmarker\nred\n.....\n.....\n..0..\n.....\n.....\n\nagaining \ntransparent\n\nagaining2\ntransparent\n\nsupported\ngreen\n.....\n.....\n..0..\n.....\n.....\n\ntodrop\ntransparent\n\nshadow\nblack\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nm_l\ntransparent\n\nm_r\ntransparent\n\nm_t\ntransparent\n\nm_b\ntransparent\n\n=======\nLEGEND\n=======\n\ntoffee_any = toffee or toffee_full\n\nzahn = zahn_d_t or zahn_d_b\nplayer = gum or gum_full\ngum_any = player\n\nmotile = player or toffee or zahn or toffee_any\ndroppable_tile = toffee or zahn or toffee_any\nmotile_nonsticking = player or toffee or zahn_d_b or toffee_any\n\nwall_like = wall or lips or tongue\n\nconnection = con_u or con_d or con_l or con_r\nsolid = zahn or player or wall_like or toffee\n\n\nuvula_part = uvula or uvula_c\n\ntoffee_bottom = toffee_bl or toffee_br\n\ntoffeepart = toffee_tl or toffee_tr or toffee_bl or toffee_br\ntoffeedec = toffee_fulldec or toffee_fulldec_b\n\ntarget_pixels = targetp_tl or targetp_tr or targetp_bl or targetp_br\n\ndecoration = toffeedec \n\ntarget_part = uvula or uvula_c or target\nwall_toborder = wall or tongue\n. = Background\nu = uvula\nw = uvula_c\nL = lips\n# = Wall\nP = Player\nG = gum_full\ni = gum\nD = zahn_d_b\nT = Toffee\nH = Target\nn = nostril and wall\no = tongue\n\n=======\nSOUNDS\n=======\nsfx0 65988703 (pull)\nsfx1 70735502 (swallow)\nsfx2 23125707 (bite)\n\n================\nCOLLISIONLAYERS\n================\n\n\ncon_r\ncon_l\ncon_u\ncon_d\nmarker\n\n\nsupported\nBackground\nuvula, uvula_c\nTarget\ntargetp_tl\ntargetp_tr\ntargetp_bl\ntargetp_br\nWall, zahn_d_t, zahn_d_b, player, lips, tongue\ntoffee, toffee_full\n\nborder_u\nborder_d\nborder_l\nborder_r\ntoffee_tl \ntoffee_tr \ntoffee_bl \ntoffee_br\ntoffee_fulldec\nTOFFEE_FULLDEC_B\nmaketooth\nagaining\nagaining2\ntodrop\nshadow\nnostril\nm_l\nm_r\nm_t\nm_b\n\n\n\n======\nRULES\n======\n\n[shadow] -> [ ]\n[againing2] [ player ] ->[againing] [ action player ]\n[againing2]->[]\n[motile todrop] [ player ]->[shadow no connection no decoration no toffeepart] [ player againing2 ] again\n\n[marker]->[]\nright [ player | player ] -> [ player con_r | player con_l ]\ndown [ gum_full | zahn_d_b ] -> [ gum_full con_d | zahn_d_b con_u ]\n\nright [ stationary player no againing no againing2 ] [ no toffee | toffee | toffee ] -> [ player ] [ | toffee m_l | toffee m_r ]\ndown [ stationary player no againing no againing2 ] [ no toffee | toffee | toffee ] -> [ player ] [ | toffee m_t | toffee m_b ]\n\n[ m_t m_l ] -> [toffee_tl]\n[ m_b m_l ] -> [toffee_bl]\n[ m_t m_r ] -> [toffee_tr]\n[ m_b m_r ] -> [toffee_br]\n\nright [ stationary player no againing no againing2 ] [ toffee | toffee ] -> [ player ] [ toffee con_r | toffee con_l ]\ndown [ stationary player no againing no againing2 ] [ toffee | toffee ] -> [ player ] [ toffee con_d | toffee con_u ]\n\nright [stationary player no againing no againing2 ] [ target | no target no uvula_part] -> [player] [ targetp_tr targetp_br target | ]\nright [stationary player no againing no againing2 ] [ no target no uvula_part| target ] -> [player] [ | targetp_tl targetp_bl target ]\n\ndown [stationary player] [ target | targetp_tr ] -> [player] [ target | ]\ndown [stationary player] [ target | targetp_tl ] -> [player] [ target | ]\nup [stationary player] [ target | targetp_br ] -> [player] [ target | ]\nup [stationary player] [ target | targetp_bl ] -> [player] [ target | ]\n\n\n(propagate movements)\n\nup [ moving motile con_u | motile ] -> [ moving motile con_u | moving motile ] \n+ down [ moving motile con_d | motile ] -> [ moving motile con_d | moving motile ] \n+ left [ moving motile con_l | motile ] -> [ moving motile con_l | moving motile ] \n+ right [ moving motile con_r | motile ] -> [ moving motile con_r | moving motile ] \n+ [ > motile | motile ] -> [ > motile | > motile ]\n\n\n(back-propagate blockages)\n\n\t(toffee can't walk into walls)\n[ > motile | wall_like ] -> [ motile | wall_like ]\n\n+ [ > zahn | stationary zahn ] -> [ zahn | zahn ]\n\n+ horizontal [ > toffee | stationary zahn ] -> [ stationary toffee | zahn]\n+ [ > toffee_any | stationary toffee_any ] -> [ stationary toffee_any | toffee_any]\n\t(restick tooth in gums)\n+ down [ down gum | stationary zahn_d_t con_d ] -> [ down gum_full con_d | ] sfx2\n\t\n (back-propagate non-movement in toffees)\n+ up [ stationary toffee_any con_u | motile ] -> [ stationary toffee_any con_u | stationary motile ] \n+ down [ stationary toffee_any con_d | motile ] -> [ stationary toffee_any con_d | stationary motile ] \n+ left [ stationary toffee_any con_l | motile ] -> [ stationary toffee_any con_l | stationary motile ] \n+ right [ stationary toffee_any con_r | motile ] -> [ stationary toffee_any con_r | stationary motile ] \n\n+ down [ stationary zahn_d_t con_d | motile ] -> [ stationary zahn_d_t con_d | stationary motile ] \n+ down [ stationary zahn_d_t con_d | stationary motile ] -> [ zahn_d_t con_d | stationary motile ] \n\n (back-propagate non-movement in gums)\n+ up [ stationary gum_any con_u | motile ] -> [ stationary gum_any con_u | stationary motile ] \n+ down [ stationary gum_any con_d | motile ] -> [ stationary gum_any con_d | stationary motile ] \n+ left [ stationary gum_any con_l | motile ] -> [ stationary gum_any con_l | stationary motile ] \n+ right [ stationary gum_any con_r | motile ] -> [ stationary gum_any con_r | stationary motile ]\n\n+ up [ stationary zahn_d_b con_u | motile ] -> [ stationary zahn_d_b con_u | stationary motile ] \n\n\n\n+ [ > gum_any | stationary motile_nonsticking ] -> [ gum_any | motile_nonsticking ] \n\n+ [ > toffee | stationary toffee ] -> [ toffee | toffee ] \n\n\n\t(tooth unstick)\n+ down [ up gum_full con_d | stationary toffee_full con_u ] -> [ up gum_full maketooth | toffee_full ]\n\n\n[stationary motile]->[marker motile]\n[ > motile connection ] -> [ > motile > connection ]\n[ > toffee_any toffeepart ] -> [ > toffee_any > toffeepart ]\n\nlate down [ gum_full | toffee zahn_d_b ] -> [ gum_full | toffee_full ] sfx2\n\nlate down [ gum_full | maketooth | toffee_full ] -> [ gum | zahn_d_t con_d | toffee_full con_u ] sfx0\n\nlate down [ toffee | toffee_full ] -> [ toffee con_d | toffee_full con_u ]\n(decoration steps)\n\nlate [ decoration ] -> [ ]\n\nlate [toffee_full ] -> [ toffee_full toffee_fulldec ]\nlate [toffee_bottom con_d ] -> [ toffee_bottom con_d toffee_fulldec_b ]\n\n(check if things are supported)\n\nlate [supported]->[]\nlate [ gum_any ] -> [ gum_any supported ]\nlate [ motile no target_part ] -> [ motile supported ]\n\nlate up [ supported con_u | ] -> [ supported con_u | supported ]\n+ late down [ supported con_d | ] -> [ supported con_d | supported ]\n+ late left [ supported con_l | ] -> [ supported con_l | supported ]\n+ late right [ supported con_r | ] -> [ supported con_r | supported ]\n\n\nlate [againing]->[]\n\nlate [droppable_tile no supported] [player ]->[droppable_tile todrop] [player againing] sfx1 again\n\nlate right [ wall_toborder | no wall_like ] -> [ wall_toborder border_r | ]\nlate left [ wall_toborder | no wall_like ] -> [ wall_toborder border_l | ]\nlate up [ wall_toborder | no wall_like ] -> [ wall_toborder border_u | ]\nlate down [ wall_toborder | no wall_like ] -> [ wall_toborder border_d | ]\nlate [ player ] [ againing2] ->[ player againing2] [againing2]\n==============\nWINCONDITIONS\n==============\n\nno toffee\nno shadow\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 3 - Karamell, den liebe ich!\n\n######n#n######\n###############\n##lllllllllll##\n#l...........l#\n#.....ggg.....#\n#.....ddd.....#\n#.....hwh.....#\n#...#.huh.....#\n#.....hhh.....#\n#.............#\n#......tt.....#\n#......tt.....#\n#l...........l#\n##lllllllllll##\n\nmessage Level 2 von 3 - Ich bin ein Nimmersat des Karamellen\n\n########n#n########\n###################\n##lllllllllllllll##\n#l...............l#\n#.....gggg........#\n#.....dddd........#\n#.................#\n#.......#.........#\n#.................#\n#.................#\n#....tt...tt......#\n#....tt...tt......#\n#..............####\n#....#######...hwh#\n#..............huh#\n#lllllllllll...hhh#\n###########l...hhh#\n###########l...hhh#\n###########lllllll#\n\nmessage Level 3 von 3 - Meine Zaehne werden nicht ausfallen, wenn ich die schlucke!\n\n###########n#n#############\n###########################\n#lllllllllllllllllllllll###\n#.......................###\n#.......................###\n#..hhwhh........gggg....###\n#..hhuhh....#...dddd....###\n#..hhhhh................###\n#..hhhhh................###\n#..hhhhh................###\n#..hhhhh....tt....tt....###\n#..hhhhh....tt....tt....###\n#.......................###\n#.......................###\n#..........#....###########\n#..........#...############\n#..........#...############\n#..........#..##..........#\n#..........#..##..........#\n#..........#..##....tt....#\n#..........#tt##....tt....#\n#...........tt............#\n#.........................#\n#..........lllllllllllllll#\n#..........l###############\n#lllllllllll###############\n\n\nMessage Ich glaube an ... Karamell!\n\nhhhhhhhhhhhhhhhhhhhhhhhhh\nhhhhhhlllllllllllllhhhhhh\nhhhhhlllllllllllllllhhhhh\nhhhhhlllllllllllllllhhhhh\nhhhhhll###########llhhhhh\nhhhhhl###d#####d###lhhhhh\nhhh#h###############h#hhh\nhhh###################hhh\nhhh#h###############h#hhh\nhhhhh######n#n######hhhhh\nhhhhh###############hhhhh\nhhhhh##lllllllllll##hhhhh\nhhhhh##...hhwhh...##hhhhh\nhhhhh##lllllllllll##hhhhh\nhhhhh###############hhhhh\nhhhhh###############hhhhh\nhhhhhhhhhh#####hhhhhhhhhh\nhhhhhhhhhh#####hhhhhhhhhh\n\n(\n###########################\n#.......................###\n#.......................###\n#..hhwhh........gggg....###\n#..hhuhh....#...dddd....###\n#..hhhhh................###\n#..hhhhh................###\n#..hhhhh................###\n#..hhhhh....tt....tt....###\n#..hhhhh....tt....tt....###\n#.......................###\n#.......................###\n#..........#....###########\n#..........#...############\n#..........#...############\n#..........#..##..........#\n#..........#..##..........#\n#..........#..##....tt....#\n#..........#tt##....tt....#\n#...........tt............#\n#.........................#\n#..........################\n#..........################\n###########################\n)\n\n(\n(ooops this doesn't work)\n####################\n#..................#\n#..................#\n#..................#\n#...gggg...........#\n#...gggd....#......#\n#...ggd............#\n#...gd.............#\n#...d.tt...........#\n#.....tt.#.........#\n#.....####...##....#\n#........#.........#\n#........#.........#\n#........#.........#\n####################\n\n\n####################\n#..................#\n#..................#\n#..................#\n#.....gggg...tt....#\n#.....dddd...tt....#\n#..................#\n#......#.....tt....#\n#............tt....#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n####################\n\n\n######################\n#....................#\n#....................#\n#....................#\n#..............tt....#\n#..............tt....#\n#....................#\n#....................#\n#..gggg...#....tt....#\n#..dddd........tt....#\n#....................#\n#....................#\n#....................#\n#....................#\n#....................#\n#.......#..#.........#\n#.......#..#.........#\n#.......#..#.........#\n#.......#..#.........#\n#.......#..#.........#\n#.......#..#.........#\n#....####..####......#\n#....................#\n#....................#\n#....##########......#\n#....................#\n#....................#\n#....................#\n#....................#\n######################\n\n###############################\n#.........................#...#\n#.hhwhh...................#...#\n#.hhuhh...................#...#\n#.hhhhh.......#.....tt....#...#\n#.hhhhh.............tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.gggg........tt....#...#\n#.hhhhh.dddd........tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####....tt....#\n#.hhhhh...####tt####....tt....#\n#.hhhhh.......tt..............#\n#.............................#\n#.........##########..........#\n#.........##########..........#\n#.........##########..........#\n#.........##########..........#\n###############################\n\n###############################\n#.........................#...#\n#.hhwhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.......#.....tt....#...#\n#.hhhhh.............tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.gggg........tt....#...#\n#.hhhhh.dddd........tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####....tt....#\n#.hhhhh...####tt####....tt....#\n#.hhhhh.......tt..............#\n#.............................#\n####################....tt....#\n####################....tt....#\n####################..........#\n####################..........#\n###############################\n\n\n\n###############################\n#.........................#...#\n#.hhwhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.......#.....tt....#...#\n#.hhhhh.............tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.gggg........tt....#...#\n#.hhhhh.dddd........tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####....tt....#\n#.hhhhh...####tt####....tt....#\n#.hhhhh.......tt..............#\n#.............................#\n####################....tt....#\n####################....tt....#\n####################..........#\n####################..........#\n###############################\n\n######################\n#....................#\n#....................#\n#....................#\n#..............tt....#\n#..............tt....#\n#....................#\n#....................#\n#..gggg...#....tt....#\n#..dddd........tt....#\n#....................#\n#....................#\n#....................#\n#....................#\n#....................#\n#....####..####......#\n#....####..####......#\n#....####..####......#\n#....####..####......#\n#....####..####......#\n#....####..####......#\n#....####tt####......#\n#........tt..........#\n#....................#\n#....##########......#\n#....................#\n#....................#\n#....................#\n#....................#\n######################\n\n###############################\n#.........................#...#\n#.hhwhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.......#.....tt....#...#\n#.hhhhh.............tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.gggg........tt....#...#\n#.hhhhh.dddd........tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.........................#...#\n#.........................#...#\n#.........................#...#\n#...........#....##########...#\n#...........##..###########...#\n#...........##..###########...#\n#...........##..####..........#\n#...........##..####..........#\n#...........##..####....tt....#\n#...........##tt####....tt....#\n#.............tt..............#\n#.............................#\n####################....tt....#\n####################....tt....#\n####################..........#\n####################..........#\n###############################\n\n\n\n###############################\n#.........................#####\n#.hhwhh...................#####\n#.hhhhh...................#####\n#.hhhhh.......#.....tt....#####\n#.hhhhh.............tt....#####\n#.hhhhh...................#####\n#.hhhhh...................#####\n#.hhhhh.gggg........tt....#####\n#.hhhhh.dddd........tt....#####\n#.hhhhh...................#####\n#.hhhhh...................#####\n#.........................#####\n#.........................#####\n#.........................#####\n#............#....#############\n#............#...##############\n#............#...##############\n#............#..####..........#\n#............#..####..........#\n#............#..####....tt....#\n#............#tt####....tt....#\n#.............tt..............#\n#.............................#\n#............##################\n#............##################\n###############################\n\n###########################\n#.......................###\n#.hhwhh.........gggg....###\n#.hhuhh.....#...dddd....###\n#.hhhhh.................###\n#.hhhhh.................###\n#.hhhhh.....tt....tt....###\n#.hhhhh.....tt....tt....###\n#.......................###\n#.......................###\n#..........#....###########\n#..........#...############\n#..........#...############\n#..........#..##..........#\n#..........#..##..........#\n#..........#..##....tt....#\n#..........#tt##....tt....#\n#...........tt............#\n#.........................#\n#..........################\n#..........################\n###########################\n)\n", [1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 0, 3, 3, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 3, 3, 3, 3, 3, 2, 2, 2, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 2, 2, 1, 2, 2, 3, 3, 3, 3, 3, 0, 0, 3, 3, 1, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1], "background wall:0,0,0,0,background border_r wall:1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,\n0,0,0,background lips:2,background:3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,background con_d marker supported zahn_d_t:4,background con_d con_r con_u marker supported toffee_full toffee_fulldec toffee_tl:5,background con_r con_u marker supported toffee toffee_bl:6,3,3,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,background con_d con_l marker supported toffee toffee_tr:7,background con_l con_u marker supported toffee toffee_br:8,3,background border_d border_l border_u wall:9,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,3,3,3,background border_d border_u wall:10,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,3,3,3,10,3,2,0,0,0,\nbackground nostril wall:11,0,2,3,3,3,3,background border_d border_l border_r border_u wall:12,3,3,3,3,3,10,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,background con_r gum supported:13,3,3,3,10,3,2,0,0,0,\n11,0,2,3,3,3,3,3,3,background con_d con_l con_r gum_full supported:14,background con_u supported zahn_d_b:15,3,3,10,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,14,background con_d con_r con_u supported toffee_full toffee_fulldec toffee_tl:16,background con_r con_u supported toffee toffee_bl:17,3,background border_d border_r border_u wall:18,3,2,2,2,2,\n0,0,2,3,3,3,3,3,3,background con_d con_l gum_full supported:19,background con_d con_l con_u supported toffee_full toffee_fulldec toffee_tr:20,background con_l con_u supported toffee toffee_br:21,3,3,3,3,3,3,2,\n0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,\n0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,\n0,0,2,3,3,3,3,3,3,3,3,3,9,background target targetp_tl:22,background target:23,23,23,background target targetp_bl:24,2,\n0,0,2,3,3,3,3,3,3,3,3,3,10,background uvula_c:25,background uvula:26,23,23,23,2,\n0,0,0,2,3,3,3,3,3,3,3,3,10,background target targetp_tr:27,23,23,23,background target targetp_br:28,2,\n0,0,0,0,background border_l wall:29,29,29,29,29,29,29,29,0,29,29,29,29,29,0,\n", 3, "1627891595796.583"] ], [ - "I am a gust of wind", - ["title I am a gust of wind\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrequire_player_movement\nbackground_color lightgreen\ntext_color black\nrun_rules_on_level_start\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nlightblue\n\n\nTarget\nyellow\n\nWall\nlightgreen \n\nPlayer\nwhite\n.0000\n0....\n0.00.\n0...0\n.000.\n\nCrate\nOrange Yellow brown\n..0..\n.000.\n00000\n00000\n..0..\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 59718707\nstartgame 30764907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ ^ Player | Crate ] -> [ ^ Player | ^ Crate ]\n[ v Player | Crate ] -> [ v Player | v Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nMessage Level 1 of 4\n\n.........\n.........\n....o.p..\n.........\n...*.....\n.....*...\n...o.....\n.........\n.........\n\n\nMessage Level 2 of 4\n\n.........\n.........\n....**...\n.....*...\n...ooo.p.\n.........\n.........\n\n\nMessage Level 3 of 4\n\n.......\n.......\n..O*O..\n..*O*..\n..O*O..\n..*O*..\n...P...\n.......\n\nMessage Level 4 of 4\n\no.o...\no.o##.\n*.*##.\n*.*##.\n......\n.p....\n......\n\nMessage What a most gentle wind I am!\n\n",[2,2,1,1,0,0,0,1,0,3,1,1,1,0,0,3,1,0,2,3,0,3,0,1,2,2,3,3,0,0,1,2,3,0,0,0,1,2,2,2,3],"background:0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,\n0,background crate:1,0,0,0,1,0,background target:2,0,\n0,0,0,0,0,background crate target:3,0,0,0,\n0,0,0,2,0,0,0,0,0,\n0,background player:4,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,\n",3,"1627891616657.899"] + "I am a gust of wind", + ["title I am a gust of wind\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrequire_player_movement\nbackground_color lightgreen\ntext_color black\nrun_rules_on_level_start\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nlightblue\n\n\nTarget\nyellow\n\nWall\nlightgreen \n\nPlayer\nwhite\n.0000\n0....\n0.00.\n0...0\n.000.\n\nCrate\nOrange Yellow brown\n..0..\n.000.\n00000\n00000\n..0..\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 59718707\nstartgame 30764907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ ^ Player | Crate ] -> [ ^ Player | ^ Crate ]\n[ v Player | Crate ] -> [ v Player | v Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nMessage Level 1 of 4\n\n.........\n.........\n....o.p..\n.........\n...*.....\n.....*...\n...o.....\n.........\n.........\n\n\nMessage Level 2 of 4\n\n.........\n.........\n....**...\n.....*...\n...ooo.p.\n.........\n.........\n\n\nMessage Level 3 of 4\n\n.......\n.......\n..O*O..\n..*O*..\n..O*O..\n..*O*..\n...P...\n.......\n\nMessage Level 4 of 4\n\no.o...\no.o##.\n*.*##.\n*.*##.\n......\n.p....\n......\n\nMessage What a most gentle wind I am!\n\n", [2, 2, 1, 1, 0, 0, 0, 1, 0, 3, 1, 1, 1, 0, 0, 3, 1, 0, 2, 3, 0, 3, 0, 1, 2, 2, 3, 3, 0, 0, 1, 2, 3, 0, 0, 0, 1, 2, 2, 2, 3], "background:0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,\n0,background crate:1,0,0,0,1,0,background target:2,0,\n0,0,0,0,0,background crate target:3,0,0,0,\n0,0,0,2,0,0,0,0,0,\n0,background player:4,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,\n", 3, "1627891616657.899"] ], [ - "Gabelstapler", - ["title Gabelstapler\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnorepeat_action\nrequire_player_movement\nverbose_logging\n\ncolor_palette 6\n\n\n\n========\nOBJECTS\n========\n\nBackground\n#999999 #888888\n00010\n11111\n00010\n00010\n00010\n\n\nWall\n#333333 #333333\n00000\n01010\n00000\n01010\n00000\n\nforklift\n#222222 #ffff00 #FFA500 #444444 black blue #ffcccc\n.00.3\n.0603\n10513\n11213\n.4.4.\n\nrod \n#444444\n....0\n....0\n....0\n....0\n....0\n\ntoprod\n#444444\n.....\n.....\n.....\n.....\n.....\n\n\nFork\n#ffff00\n.....\n.....\n.....\n0....\n00000\n\nend1 \ndarkblue lightblue brown #333333\n00000\n01110\n00000\n33333\n33333\n\nend2 \ndarkred lightred brown #333333\n11011\n10101\n11011\n33333\n33333\n\nend3 \ndarkgreen lightgreen brown #333333\n10001\n10101\n10001\n33333\n33333\n\n\nCrate1\ndarkblue blue brown\n00000\n01110\n00000\n22222\n.2.2.\n\n\nCrate2\ndarkred red brown\n11011\n10101\n11011\n22222\n.2.2.\n\n\nCrate3\ndarkgreen green brown\n01110\n01010\n01110\n22222\n.2.2.\n\noldfork\ntransparent\n\ncorrect\ntransparent\n\n=======\nLEGEND\n=======\nplayer = forklift or fork\ncrate = crate1 or crate2 or crate3\nobstacle = wall or crate or forklift\nmotile = crate or forklift or fork\nhasrod = forklift or rod or toprod\nisrod = rod or toprod\n. = Background\n# = Wall\nP = forklift\n1 = Crate1\n2 = Crate2\n3 = Crate3\nf = fork\nr = rod\nt = toprod\nq = end1 and wall\nw = end2 and wall\ne = end3 and wall\n\n=======\nSOUNDS\n=======\n\nforklift MOVE left 39169107\nforklift move right 81963107\ncrate move down 98604707\nendlevel 64983103\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nfork, rod, toprod\nforklift, Wall, Crate\nend1, end2, end3\noldfork\ncorrect\n\n======\nRULES\n======\n\n\n\n\n[ > fork | wall ] -> cancel\ndown [ down fork | obstacle] -> cancel\n\n[ vertical forklift ] -> [ forklift ]\n\n\n\nup [ moving player | crate ] -> [ moving player | moving crate ]\ndown [ stationary forklift | no obstacle ] [fork | no obstacle] -> [ down forklift | ] [down fork|]\n\nup [horizontal forklift | ... | hasrod ] -> [ horizontal forklift | ... | horizontal hasrod]\n\nright [ right rod | obstacle ] -> cancel\nright [ obstacle | left rod ] -> cancel\n\ndown [ moving forklift no obstacle ] -> [ stationary forklift ]\n\nright [ > forklift | Crate fork ] -> [ > forklift | > Crate > fork]\n\n\nright [ > forklift | crate no fork ] -> cancel \n\n(fork move objects)\n[moving fork crate ] -> [ moving fork moving crate ]\ndown [ left fork left crate | obstacle ] -> [ left fork stationary crate | obstacle ]\n\n\nup [ moving crate | crate ] -> [ moving crate | moving crate ]\n\nhorizontal [ > crate fork | stationary crate ] -> cancel\nhorizontal [ > obstacle | stationary obstacle ] -> [ obstacle | obstacle ]\n\nright[ stationary obstacle no forklift | left fork ] -> cancel\n\n\n\n(cancel movements upwards)\nhorizontal [ > crate | stationary obstacle no player ] -> [ stationary crate | obstacle ]\n\n\nup [stationary crate | moving crate no fork ] -> [ stationary crate | stationary crate ]\n\n[up fork crate]->[up fork oldfork crate]\n\n\n[ stationary crate no fork ] -> [ down crate ]\n\n[]->[] again\n\n\nlate [ rod ] -> []\nlate [ toprod ] -> []\nlate right [ no forklift | fork ] -> [ toprod | fork ]\nlate down [ isrod | no hasrod ] -> [ isrod | rod ]\nlate [ rod wall ] -> cancel\nlate [forklift fork]->cancel\n\nlate [oldfork crate ] -> cancel\nlate [oldfork]->[]\n\n\n(win condition)\nlate [forklift]->[forklift correct]\n\nlate up [ end1 | crate1 ] -> [ end1 | crate1 correct ]\nlate up [ end2 | crate2 ] -> [ end2 | crate2 correct ]\nlate up [ end3 | crate3 ] -> [ end3 | crate3 correct ]\nlate up [ correct crate1 | crate1 ] -> [ correct crate1 | correct crate1 ]\nlate up [ correct crate2 | crate2 ] -> [ correct crate2 | correct crate2 ]\nlate up [ correct crate3 | crate3 ] -> [ correct crate3 | correct crate3 ]\n\nlate [crate no correct] [ forklift correct ] -> [ crate ] [ forklift no correct] \nlate [forklift correct] [ fork no crate ] -> win\nlate [correct] ->[]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 3\n\n##########\n###.......\n..........\n..........\n.pf.2.1...\n#######qw#\n\n\nmessage Level 2 von 3\n\n################\n########.......#\n#..............#\n#..............#\n#..............#\n#........pf321.#\n###qwe##########\n\n\nmessage Level 3 von 3\n\n..........\n..........\n..........\n..........\n..........\n..........\n..#.......\n..........\n....233...\n.pf.111...\n#######qwe\n\nmessage Du bist aber gewandt!\n\n(\n########.....\n########.....\n.............\n.............\n.pf.1.3......\n########.##e#\n########q####)\n\n\n\n\n\n",[0,3,3,0,1,1,1,0,0,3,2,0,2,2,1,0,0,3,2,0,1,2,2,2,3,3,2,3,0,2,2,3,3,3,0,0,0,3,2,1,2,2,2,3,0,0,3,1],"background:0,0,0,0,0,0,0,0,0,0,\nbackground wall:1,0,0,0,0,0,0,0,0,0,\n0,1,0,0,0,0,0,background crate2:2,1,0,\n0,0,1,0,0,0,0,0,0,0,\n0,0,0,1,0,0,0,0,0,0,\n0,background toprod:3,background rod:4,background forklift:5,1,0,0,0,0,0,\n0,0,background fork:6,0,0,1,0,0,0,0,\n0,background crate1:7,background crate3:8,7,8,7,1,0,0,0,\n0,0,0,0,0,0,0,background end1 wall:9,0,0,\n0,0,0,0,0,0,0,0,background end2 wall:10,0,\n0,0,0,0,0,0,0,0,0,background end3 wall:11,\n",5,"1627891651612.1494"] + "Gabelstapler", + ["title Gabelstapler\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnorepeat_action\nrequire_player_movement\nverbose_logging\n\ncolor_palette 6\n\n\n\n========\nOBJECTS\n========\n\nBackground\n#999999 #888888\n00010\n11111\n00010\n00010\n00010\n\n\nWall\n#333333 #333333\n00000\n01010\n00000\n01010\n00000\n\nforklift\n#222222 #ffff00 #FFA500 #444444 black blue #ffcccc\n.00.3\n.0603\n10513\n11213\n.4.4.\n\nrod \n#444444\n....0\n....0\n....0\n....0\n....0\n\ntoprod\n#444444\n.....\n.....\n.....\n.....\n.....\n\n\nFork\n#ffff00\n.....\n.....\n.....\n0....\n00000\n\nend1 \ndarkblue lightblue brown #333333\n00000\n01110\n00000\n33333\n33333\n\nend2 \ndarkred lightred brown #333333\n11011\n10101\n11011\n33333\n33333\n\nend3 \ndarkgreen lightgreen brown #333333\n10001\n10101\n10001\n33333\n33333\n\n\nCrate1\ndarkblue blue brown\n00000\n01110\n00000\n22222\n.2.2.\n\n\nCrate2\ndarkred red brown\n11011\n10101\n11011\n22222\n.2.2.\n\n\nCrate3\ndarkgreen green brown\n01110\n01010\n01110\n22222\n.2.2.\n\noldfork\ntransparent\n\ncorrect\ntransparent\n\n=======\nLEGEND\n=======\nplayer = forklift or fork\ncrate = crate1 or crate2 or crate3\nobstacle = wall or crate or forklift\nmotile = crate or forklift or fork\nhasrod = forklift or rod or toprod\nisrod = rod or toprod\n. = Background\n# = Wall\nP = forklift\n1 = Crate1\n2 = Crate2\n3 = Crate3\nf = fork\nr = rod\nt = toprod\nq = end1 and wall\nw = end2 and wall\ne = end3 and wall\n\n=======\nSOUNDS\n=======\n\nforklift MOVE left 39169107\nforklift move right 81963107\ncrate move down 98604707\nendlevel 64983103\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nfork, rod, toprod\nforklift, Wall, Crate\nend1, end2, end3\noldfork\ncorrect\n\n======\nRULES\n======\n\n\n\n\n[ > fork | wall ] -> cancel\ndown [ down fork | obstacle] -> cancel\n\n[ vertical forklift ] -> [ forklift ]\n\n\n\nup [ moving player | crate ] -> [ moving player | moving crate ]\ndown [ stationary forklift | no obstacle ] [fork | no obstacle] -> [ down forklift | ] [down fork|]\n\nup [horizontal forklift | ... | hasrod ] -> [ horizontal forklift | ... | horizontal hasrod]\n\nright [ right rod | obstacle ] -> cancel\nright [ obstacle | left rod ] -> cancel\n\ndown [ moving forklift no obstacle ] -> [ stationary forklift ]\n\nright [ > forklift | Crate fork ] -> [ > forklift | > Crate > fork]\n\n\nright [ > forklift | crate no fork ] -> cancel \n\n(fork move objects)\n[moving fork crate ] -> [ moving fork moving crate ]\ndown [ left fork left crate | obstacle ] -> [ left fork stationary crate | obstacle ]\n\n\nup [ moving crate | crate ] -> [ moving crate | moving crate ]\n\nhorizontal [ > crate fork | stationary crate ] -> cancel\nhorizontal [ > obstacle | stationary obstacle ] -> [ obstacle | obstacle ]\n\nright[ stationary obstacle no forklift | left fork ] -> cancel\n\n\n\n(cancel movements upwards)\nhorizontal [ > crate | stationary obstacle no player ] -> [ stationary crate | obstacle ]\n\n\nup [stationary crate | moving crate no fork ] -> [ stationary crate | stationary crate ]\n\n[up fork crate]->[up fork oldfork crate]\n\n\n[ stationary crate no fork ] -> [ down crate ]\n\n[]->[] again\n\n\nlate [ rod ] -> []\nlate [ toprod ] -> []\nlate right [ no forklift | fork ] -> [ toprod | fork ]\nlate down [ isrod | no hasrod ] -> [ isrod | rod ]\nlate [ rod wall ] -> cancel\nlate [forklift fork]->cancel\n\nlate [oldfork crate ] -> cancel\nlate [oldfork]->[]\n\n\n(win condition)\nlate [forklift]->[forklift correct]\n\nlate up [ end1 | crate1 ] -> [ end1 | crate1 correct ]\nlate up [ end2 | crate2 ] -> [ end2 | crate2 correct ]\nlate up [ end3 | crate3 ] -> [ end3 | crate3 correct ]\nlate up [ correct crate1 | crate1 ] -> [ correct crate1 | correct crate1 ]\nlate up [ correct crate2 | crate2 ] -> [ correct crate2 | correct crate2 ]\nlate up [ correct crate3 | crate3 ] -> [ correct crate3 | correct crate3 ]\n\nlate [crate no correct] [ forklift correct ] -> [ crate ] [ forklift no correct] \nlate [forklift correct] [ fork no crate ] -> win\nlate [correct] ->[]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 3\n\n##########\n###.......\n..........\n..........\n.pf.2.1...\n#######qw#\n\n\nmessage Level 2 von 3\n\n################\n########.......#\n#..............#\n#..............#\n#..............#\n#........pf321.#\n###qwe##########\n\n\nmessage Level 3 von 3\n\n..........\n..........\n..........\n..........\n..........\n..........\n..#.......\n..........\n....233...\n.pf.111...\n#######qwe\n\nmessage Du bist aber gewandt!\n\n(\n########.....\n########.....\n.............\n.............\n.pf.1.3......\n########.##e#\n########q####)\n\n\n\n\n\n", [0, 3, 3, 0, 1, 1, 1, 0, 0, 3, 2, 0, 2, 2, 1, 0, 0, 3, 2, 0, 1, 2, 2, 2, 3, 3, 2, 3, 0, 2, 2, 3, 3, 3, 0, 0, 0, 3, 2, 1, 2, 2, 2, 3, 0, 0, 3, 1], "background:0,0,0,0,0,0,0,0,0,0,\nbackground wall:1,0,0,0,0,0,0,0,0,0,\n0,1,0,0,0,0,0,background crate2:2,1,0,\n0,0,1,0,0,0,0,0,0,0,\n0,0,0,1,0,0,0,0,0,0,\n0,background toprod:3,background rod:4,background forklift:5,1,0,0,0,0,0,\n0,0,background fork:6,0,0,1,0,0,0,0,\n0,background crate1:7,background crate3:8,7,8,7,1,0,0,0,\n0,0,0,0,0,0,0,background end1 wall:9,0,0,\n0,0,0,0,0,0,0,0,background end2 wall:10,0,\n0,0,0,0,0,0,0,0,0,background end3 wall:11,\n", 5, "1627891651612.1494"] ], [ - "Slot Machine", - ["title Slot Machine\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nbackground_color lightred\n\nrun_rules_on_level_Start\n\n\n========\nOBJECTS\n========\n\nBackground\nlightred\n\n\nVTarget\nblack transparent\n11011\n11011\n11011\n11011\n11011\n\nHTarget\nblack transparent\n11111\n11111\n11111\n11111\n00000\n\nWall\npurple \n\nPlayer\ndarkblue darkbrown green darkgreen\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nPlayer_fall\ndarkred darkbrown green darkgreen\n.....\n.....\n.000.\n21112\n.222.\n\nCoin_Flat\nyellow orange \n.....\n.000.\n00000\n10001\n.111.\n\ncoin_on_flatshadow\n#b14762\n.....\n.....\n.....\n.....\n0....\n\nCoin_H\nyellow orange\n.000.\n00000\n00000\n00000\n.000.\n\nCoin_V\nyellow orange\n..0..\n..0..\n..0..\n..0..\n..0..\n\nhalfin_h\nyellow orange\n.....\n.....\n.....\n.000.\n00000\n\nhalfin_v\nyellow orange\n.....\n..0..\n..0..\n..0..\n.....\n\nshadow_player\n#b14762\n.0.0.\n0.0..\n000..\n000..\n0....\n\nshadow_wall\n#b14762\n\nshadow_coin_flat\n#b14762\n0000.\n.....\n.....\n.....\n.....\n\nshadow_coin_h\n#b14762\n.000.\n.000.\n000..\n000..\n00...\n\nshadow_coin_v\n#b14762\n..0..\n.0...\n.0...\n0....\n0....\n\nwallshadow_1\n#b14762\n.....\n....0\n....0\n...00\n...00\n\nwallshadow_1b\n#b14762\n...00\n...00\n...00\n...00\n...00\n\n\nwallshadow_2\ntransparent #b14762\n11111\n11110\n11110\n11100\n11100\n\n\n=======\nLEGEND\n=======\n\ncoin = coin_h or coin_v or coin_flat\nobstacle = coin or wall or player\n\nanycoin = coin or halfin_h or halfin_v\n\n. = Background\n# = Wall\nP = Player\na = coin_flat\nb = coin_h\nc = coin_v\n1 = htarget\n2 = vtarget\nshadow = shadow_player or shadow_wall or shadow_coin_flat or shadow_coin_h or shadow_coin_v or coin_on_flatshadow or wallshadow_1 or wallshadow_1b or wallshadow_2\nwallshadow_v = wallshadow_1 or wallshadow_1b\n\n=======\nSOUNDS\n=======\nsfx0 4400100\nsfx1 56724504\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nshadow_player\nshadow_wall\nshadow_coin_flat\nshadow_coin_h\nshadow_coin_v\nwallshadow_1\nwallshadow_1b\nwallshadow_2\ncoin_on_flatshadow\nhtarget, vtarget\nPlayer, Wall, anycoin, player_Fall\n\n======\nRULES\n======\n\n\n[ htarget player_fall ] -> [ htarget ]\n\n([ htarget player ] -> [ htarget player_fall ] sfx1)\n\n[ htarget halfin_h ] -> [ htarget ]\n[ vtarget halfin_v ] -> [ vtarget ]\n\n[ coin_h htarget ] -> [ htarget halfin_h ] sfx0\n[ coin_v vtarget ] -> [ vtarget halfin_v ] sfx0\n\n\nhorizontal [ > player | coin_flat | no obstacle ] -> [ > player | | coin_v ]\nhorizontal [ > player | coin_v | no obstacle ] -> [ > player | | coin_flat ]\nhorizontal [ > player | coin_h | no obstacle ] -> [ > player | | coin_h ]\n\n\n\nvertical [ > player | coin_flat | no obstacle ] -> [ > player | | coin_h ]\nvertical [ > player | coin_h | no obstacle ] -> [ > player | | coin_flat ]\nvertical [ > player | coin_v | no obstacle ] -> [ > player | | coin_v ]\n\nlate [ shadow ] -> []\n\nlate down [ player | ] -> [ player | shadow_player ]\nlate down [ wall | ] -> [ wall | shadow_wall ] \n\nlate down [ coin_flat | ] -> [ coin_flat | shadow_coin_flat ]\nlate down [ coin_h | ] -> [ coin_h | shadow_coin_h ]\nlate down [ coin_v | ] -> [ coin_v | shadow_coin_v ]\nlate [ coin_flat ] -> [ coin_flat coin_on_flatshadow ]\n[]->again\n\n\n==============\nWINCONDITIONS\n==============\n\nno anycoin\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 2\n\n#########\n#.......#\n#.......#\n#.p.a.1.#\n#.......#\n#.......#\n#########\n.........\n\nmessage Level 2 von 2\n\n#########\n#.......#\n#....a..#\n#.p.aa1.#\n#....a..#\n#.......#\n#########\n.........\n\nmessage The End\n",[3,3,2,3,0,1,2,2,3,3,3,0,1,1,2,1,0,1,1,0,0,3,0,3,2,2,1,2,3],"background wall:0,background shadow_wall wall:1,1,1,1,1,1,background shadow_wall:2,0,\n2,background:3,3,3,3,0,2,0,2,\n3,3,3,3,0,2,0,2,3,\n3,background player:4,background shadow_player:5,0,2,0,2,background coin_h:6,background shadow_coin_h:7,\nbackground coin_v:8,background shadow_coin_v:9,0,2,0,2,background coin_flat coin_on_flatshadow:10,background coin_flat coin_on_flatshadow shadow_coin_flat:11,background shadow_coin_flat:12,\n3,0,2,0,2,3,background htarget:13,3,3,\n0,2,0,2,3,3,3,3,0,\n2,0,1,1,1,1,1,1,2,\n",3,"1627891674117.2878"] + "Slot Machine", + ["title Slot Machine\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nbackground_color lightred\n\nrun_rules_on_level_Start\n\n\n========\nOBJECTS\n========\n\nBackground\nlightred\n\n\nVTarget\nblack transparent\n11011\n11011\n11011\n11011\n11011\n\nHTarget\nblack transparent\n11111\n11111\n11111\n11111\n00000\n\nWall\npurple \n\nPlayer\ndarkblue darkbrown green darkgreen\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nPlayer_fall\ndarkred darkbrown green darkgreen\n.....\n.....\n.000.\n21112\n.222.\n\nCoin_Flat\nyellow orange \n.....\n.000.\n00000\n10001\n.111.\n\ncoin_on_flatshadow\n#b14762\n.....\n.....\n.....\n.....\n0....\n\nCoin_H\nyellow orange\n.000.\n00000\n00000\n00000\n.000.\n\nCoin_V\nyellow orange\n..0..\n..0..\n..0..\n..0..\n..0..\n\nhalfin_h\nyellow orange\n.....\n.....\n.....\n.000.\n00000\n\nhalfin_v\nyellow orange\n.....\n..0..\n..0..\n..0..\n.....\n\nshadow_player\n#b14762\n.0.0.\n0.0..\n000..\n000..\n0....\n\nshadow_wall\n#b14762\n\nshadow_coin_flat\n#b14762\n0000.\n.....\n.....\n.....\n.....\n\nshadow_coin_h\n#b14762\n.000.\n.000.\n000..\n000..\n00...\n\nshadow_coin_v\n#b14762\n..0..\n.0...\n.0...\n0....\n0....\n\nwallshadow_1\n#b14762\n.....\n....0\n....0\n...00\n...00\n\nwallshadow_1b\n#b14762\n...00\n...00\n...00\n...00\n...00\n\n\nwallshadow_2\ntransparent #b14762\n11111\n11110\n11110\n11100\n11100\n\n\n=======\nLEGEND\n=======\n\ncoin = coin_h or coin_v or coin_flat\nobstacle = coin or wall or player\n\nanycoin = coin or halfin_h or halfin_v\n\n. = Background\n# = Wall\nP = Player\na = coin_flat\nb = coin_h\nc = coin_v\n1 = htarget\n2 = vtarget\nshadow = shadow_player or shadow_wall or shadow_coin_flat or shadow_coin_h or shadow_coin_v or coin_on_flatshadow or wallshadow_1 or wallshadow_1b or wallshadow_2\nwallshadow_v = wallshadow_1 or wallshadow_1b\n\n=======\nSOUNDS\n=======\nsfx0 4400100\nsfx1 56724504\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nshadow_player\nshadow_wall\nshadow_coin_flat\nshadow_coin_h\nshadow_coin_v\nwallshadow_1\nwallshadow_1b\nwallshadow_2\ncoin_on_flatshadow\nhtarget, vtarget\nPlayer, Wall, anycoin, player_Fall\n\n======\nRULES\n======\n\n\n[ htarget player_fall ] -> [ htarget ]\n\n([ htarget player ] -> [ htarget player_fall ] sfx1)\n\n[ htarget halfin_h ] -> [ htarget ]\n[ vtarget halfin_v ] -> [ vtarget ]\n\n[ coin_h htarget ] -> [ htarget halfin_h ] sfx0\n[ coin_v vtarget ] -> [ vtarget halfin_v ] sfx0\n\n\nhorizontal [ > player | coin_flat | no obstacle ] -> [ > player | | coin_v ]\nhorizontal [ > player | coin_v | no obstacle ] -> [ > player | | coin_flat ]\nhorizontal [ > player | coin_h | no obstacle ] -> [ > player | | coin_h ]\n\n\n\nvertical [ > player | coin_flat | no obstacle ] -> [ > player | | coin_h ]\nvertical [ > player | coin_h | no obstacle ] -> [ > player | | coin_flat ]\nvertical [ > player | coin_v | no obstacle ] -> [ > player | | coin_v ]\n\nlate [ shadow ] -> []\n\nlate down [ player | ] -> [ player | shadow_player ]\nlate down [ wall | ] -> [ wall | shadow_wall ] \n\nlate down [ coin_flat | ] -> [ coin_flat | shadow_coin_flat ]\nlate down [ coin_h | ] -> [ coin_h | shadow_coin_h ]\nlate down [ coin_v | ] -> [ coin_v | shadow_coin_v ]\nlate [ coin_flat ] -> [ coin_flat coin_on_flatshadow ]\n[]->again\n\n\n==============\nWINCONDITIONS\n==============\n\nno anycoin\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 2\n\n#########\n#.......#\n#.......#\n#.p.a.1.#\n#.......#\n#.......#\n#########\n.........\n\nmessage Level 2 von 2\n\n#########\n#.......#\n#....a..#\n#.p.aa1.#\n#....a..#\n#.......#\n#########\n.........\n\nmessage The End\n", [3, 3, 2, 3, 0, 1, 2, 2, 3, 3, 3, 0, 1, 1, 2, 1, 0, 1, 1, 0, 0, 3, 0, 3, 2, 2, 1, 2, 3], "background wall:0,background shadow_wall wall:1,1,1,1,1,1,background shadow_wall:2,0,\n2,background:3,3,3,3,0,2,0,2,\n3,3,3,3,0,2,0,2,3,\n3,background player:4,background shadow_player:5,0,2,0,2,background coin_h:6,background shadow_coin_h:7,\nbackground coin_v:8,background shadow_coin_v:9,0,2,0,2,background coin_flat coin_on_flatshadow:10,background coin_flat coin_on_flatshadow shadow_coin_flat:11,background shadow_coin_flat:12,\n3,0,2,0,2,3,background htarget:13,3,3,\n0,2,0,2,3,3,3,3,0,\n2,0,1,1,1,1,1,1,2,\n", 3, "1627891674117.2878"] ], [ - "Participating in society", - ["title Participating in society\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n========\nOBJECTS\n========\n\nBackground\ngreen 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_sm\nDARKBROWN Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate1 0\nDARKBROWN\n\ncrate2 1\norange\n\ncrate3 2\nwhite\n\ncrate4 3\nblue\n\nplayer0 q\ndarkbrown\n\nplayer1 w\norange\n\nplayer2 e\nwhite\n\nplayer3 r\nblue\n\na \ntransparent\n\ns\ntransparent\n\nd \ntransparent\n\nf\ntransparent\n\n=======\nLEGEND\n=======\n\ncrate = crate1 or crate2 or crate3 or crate4\nplayer = player0 or player1 or player2 or player3\n\n. = Background\n# = Wall\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, player_sm\na,s,d,f\n\n======\nRULES\n======\n\n([ > Player | Crate ] -> [ > Player | > Crate ])\n([ > crate | crate ] -> [ > crate | > crate ])\n\n([ > crate | | | | | no crate ] -> [ | | | | | crate ] )\n==============\nWINCONDITIONS\n==============\nall q on a\nall w on s\nall e on d\nall r on f\n\n=======\nLEVELS\n=======\n\n\nmessage I don't know if it's a good idea to join in.\n\nmessage Level 1 of 1\n\n...................................\n...................................\n...................................\n...................................\n...................................\n..qqq.....000000000000000..........\n..www.....000000000000000..........\n.eeeee....aa0000000000000..........\n..rrr.....0a0000000000000..........\n..r.r.....000000000000000..........\n..........111111111111111..........\n..........111111111111111..........\n..........111111111111111..........\n..........111ss1111111111..........\n..........1111s1111111111..........\n.....222222222d222222222222222.....\n.....222222222d222222222222222.....\n.....222222222d222222222222222.....\n.....222222222d222222222222222.....\n.....222222222d222222222222222.....\n..........fffff3333333333..........\n..........333333333333333..........\n..........333333333333333..........\n..........333333333333333..........\n..........333333333333333..........\n..........33333.....33333..........\n..........33333.....33333..........\n..........33333.....33333..........\n..........33333.....33333..........\n..........33333.....33333..........\n...................................\n...................................\n...................................\n...................................\n...................................\n\nmessage The collective concludes that it has no regrets.\n\n\n",[2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,2,3,2,3,3,3,0,3,0,3,0,3,0,0],"background: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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,background player0:1,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,1,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,1,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,background crate3:2,2,2,2,2,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,2,2,2,2,2,background player2:3,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,2,2,2,2,2,3,3,background player3:4,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,2,2,2,2,2,background player1:5,4,4,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,2,2,2,2,2,5,4,4,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background crate1:6,6,a background:7,6,6,background crate2:8,8,8,8,8,2,2,2,2,2,background f player1:9,background crate4:10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,7,7,6,8,8,8,8,8,2,2,2,2,2,background f player2:11,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,background f:12,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,background s:13,8,2,2,2,2,2,12,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,13,13,background d:14,14,14,14,14,12,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,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,2,2,2,2,2,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,2,2,2,2,2,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,2,2,2,2,2,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,2,2,2,2,2,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,\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,\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,\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,\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,\n",2,"1627891686718.0212"] + "Participating in society", + ["title Participating in society\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n========\nOBJECTS\n========\n\nBackground\ngreen 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_sm\nDARKBROWN Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate1 0\nDARKBROWN\n\ncrate2 1\norange\n\ncrate3 2\nwhite\n\ncrate4 3\nblue\n\nplayer0 q\ndarkbrown\n\nplayer1 w\norange\n\nplayer2 e\nwhite\n\nplayer3 r\nblue\n\na \ntransparent\n\ns\ntransparent\n\nd \ntransparent\n\nf\ntransparent\n\n=======\nLEGEND\n=======\n\ncrate = crate1 or crate2 or crate3 or crate4\nplayer = player0 or player1 or player2 or player3\n\n. = Background\n# = Wall\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, player_sm\na,s,d,f\n\n======\nRULES\n======\n\n([ > Player | Crate ] -> [ > Player | > Crate ])\n([ > crate | crate ] -> [ > crate | > crate ])\n\n([ > crate | | | | | no crate ] -> [ | | | | | crate ] )\n==============\nWINCONDITIONS\n==============\nall q on a\nall w on s\nall e on d\nall r on f\n\n=======\nLEVELS\n=======\n\n\nmessage I don't know if it's a good idea to join in.\n\nmessage Level 1 of 1\n\n...................................\n...................................\n...................................\n...................................\n...................................\n..qqq.....000000000000000..........\n..www.....000000000000000..........\n.eeeee....aa0000000000000..........\n..rrr.....0a0000000000000..........\n..r.r.....000000000000000..........\n..........111111111111111..........\n..........111111111111111..........\n..........111111111111111..........\n..........111ss1111111111..........\n..........1111s1111111111..........\n.....222222222d222222222222222.....\n.....222222222d222222222222222.....\n.....222222222d222222222222222.....\n.....222222222d222222222222222.....\n.....222222222d222222222222222.....\n..........fffff3333333333..........\n..........333333333333333..........\n..........333333333333333..........\n..........333333333333333..........\n..........333333333333333..........\n..........33333.....33333..........\n..........33333.....33333..........\n..........33333.....33333..........\n..........33333.....33333..........\n..........33333.....33333..........\n...................................\n...................................\n...................................\n...................................\n...................................\n\nmessage The collective concludes that it has no regrets.\n\n\n", [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 2, 3, 2, 3, 3, 3, 0, 3, 0, 3, 0, 3, 0, 0], "background: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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,background player0:1,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,1,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,1,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,background crate3:2,2,2,2,2,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,2,2,2,2,2,background player2:3,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,2,2,2,2,2,3,3,background player3:4,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,2,2,2,2,2,background player1:5,4,4,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,2,2,2,2,2,5,4,4,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background crate1:6,6,a background:7,6,6,background crate2:8,8,8,8,8,2,2,2,2,2,background f player1:9,background crate4:10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,7,7,6,8,8,8,8,8,2,2,2,2,2,background f player2:11,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,background f:12,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,background s:13,8,2,2,2,2,2,12,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,13,13,background d:14,14,14,14,14,12,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,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,2,2,2,2,2,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,2,2,2,2,2,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,2,2,2,2,2,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,2,2,2,2,2,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,\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,\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,\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,\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,\n", 2, "1627891686718.0212"] ], [ - "Individuals can produce a society, but can a society produce individuals?", - ["title Individuals can produce a society, but can a society produce individuals?\nhomepage www.increpare.com\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\ngreen 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\nwall1 8\nbrown\n\nwall2 9\ndarkbrown\n\nPlayer_sm\nDARKBROWN Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate1 0\nDARKBROWN\n\ncrate2 1\norange\n\ncrate3 2\nwhite\n\ncrate4 3\nblue\n\nplayer0 q\ndarkbrown\n\nplayer1 w\norange\n\nplayer2 e\nwhite\n\nplayer3 r\nblue\n\na \ndarkblue\n\ns\ndarkblue\n\nd \ndarkblue\n\nf\ndarkblue\n\nbuhne x\npink\n\nerror\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\n=======\nLEGEND\n=======\n\ncrate = player0 or player1 or player2 or player3\nplayer = crate1 or crate2 or crate3 or crate4\n\n. = Background\n# = Wall\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbuhne\nTarget\na,s,d,f\nPlayer, Wall, Crate, player_sm, wall1, wall2\nerror\n\n======\nRULES\n======\n\n[error]->[]\n\nlate [ player buhne ] -> [ player buhne error ]\n\nlate [ a player no 0 ] -> [ a player error ]\nlate [ s player no 1 ] -> [ s player error ]\nlate [ d player no 2 ] -> [ d player error ]\nlate [ f player no 3 ] -> [ f player error ]\n\n([ > Player | Crate ] -> [ > Player | > Crate ])\n([ > crate | crate ] -> [ > crate | > crate ])\n\n([ > crate | | | | | no crate ] -> [ | | | | | crate ] )\n==============\nWINCONDITIONS\n==============\n\nall a on 0\nall s on 1\nall d on 2\nall f on 3\nno buhne on player\n\n=======\nLEVELS\n=======\n \n\nmessage Level 1 of 1\n\n\n........................................\n........................................\n.....xxxxx..............................\n.....xaaax..............................\n....xxsssxx.............................\n....xdddddx.............................\n....xxfffxx.............................\n.....xfxfx..............................\n.....xxxxx..............................\n........................................\n............000000......................\n............000000......................\n............111111......................\n............111111......................\n..........2222222222....................\n..........2222222222....................\n............333333......................\n............333333......................\n............33..33......................\n............33..33......................\n....................8888889988..........\n....................8888889988..........\n....................9999999999..........\n....................9999999999..........\n....................8899888888..........\n....................8899888888..........\n....................9999999999..........\n....................9999999999..........\n....................8888889988..........\n....................8888889988..........\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n\nmessage Yes\n\n\n\n\n\n",[0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,0,1,0,0,1,1,2,2,2,1,1,0,0,0,1,1,1,2,1,2,2,3,3,3,3,3,3,3,3,2,3,2,3,2,3,2,3,2,2,2,2,2,2,2,1,1,2,1,2,3,2,3,2,3,2,3,3,3,3,3,3,3,0,0,0,0,0,0,3,3,3,3],"background: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,\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,\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,\n0,0,0,0,background buhne:1,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,0,0,0,0,0,0,0,0,\n0,0,1,1,1,background d:2,1,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,0,0,0,0,0,0,\n0,0,1,a background:3,background s:4,2,background f:5,5,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,0,0,0,0,0,0,\n0,0,1,3,4,2,5,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,0,0,0,0,0,0,\n0,0,1,3,4,2,5,5,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,0,0,0,0,0,0,\n0,0,1,1,1,2,1,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,0,0,0,0,0,0,\n0,0,0,0,1,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,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,\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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background crate3:6,0,0,0,background crate4:7,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,6,6,0,0,0,7,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,6,background crate2:8,0,0,0,7,7,7,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,8,8,0,0,0,7,7,7,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,background crate1:9,8,8,6,6,7,7,7,7,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,9,8,8,6,6,7,7,7,7,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,9,8,8,6,6,7,background wall1:10,10,background wall2:11,11,10,10,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,8,8,6,6,7,10,10,11,11,10,10,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,8,6,6,6,7,10,10,11,11,11,11,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,6,6,6,6,7,10,10,11,11,11,11,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,10,10,11,11,10,10,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,10,10,11,11,10,10,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,11,11,11,11,10,10,11,11,11,11,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,11,11,11,11,10,10,11,11,11,11,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,10,10,11,11,10,10,11,11,10,10,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,10,10,11,11,10,10,11,11,10,10,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,6,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,\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,\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,\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,\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,\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,\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,\n",1,"1627891699152.948"] + "Individuals can produce a society, but can a society produce individuals?", + ["title Individuals can produce a society, but can a society produce individuals?\nhomepage www.increpare.com\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\ngreen 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\nwall1 8\nbrown\n\nwall2 9\ndarkbrown\n\nPlayer_sm\nDARKBROWN Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate1 0\nDARKBROWN\n\ncrate2 1\norange\n\ncrate3 2\nwhite\n\ncrate4 3\nblue\n\nplayer0 q\ndarkbrown\n\nplayer1 w\norange\n\nplayer2 e\nwhite\n\nplayer3 r\nblue\n\na \ndarkblue\n\ns\ndarkblue\n\nd \ndarkblue\n\nf\ndarkblue\n\nbuhne x\npink\n\nerror\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\n=======\nLEGEND\n=======\n\ncrate = player0 or player1 or player2 or player3\nplayer = crate1 or crate2 or crate3 or crate4\n\n. = Background\n# = Wall\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbuhne\nTarget\na,s,d,f\nPlayer, Wall, Crate, player_sm, wall1, wall2\nerror\n\n======\nRULES\n======\n\n[error]->[]\n\nlate [ player buhne ] -> [ player buhne error ]\n\nlate [ a player no 0 ] -> [ a player error ]\nlate [ s player no 1 ] -> [ s player error ]\nlate [ d player no 2 ] -> [ d player error ]\nlate [ f player no 3 ] -> [ f player error ]\n\n([ > Player | Crate ] -> [ > Player | > Crate ])\n([ > crate | crate ] -> [ > crate | > crate ])\n\n([ > crate | | | | | no crate ] -> [ | | | | | crate ] )\n==============\nWINCONDITIONS\n==============\n\nall a on 0\nall s on 1\nall d on 2\nall f on 3\nno buhne on player\n\n=======\nLEVELS\n=======\n \n\nmessage Level 1 of 1\n\n\n........................................\n........................................\n.....xxxxx..............................\n.....xaaax..............................\n....xxsssxx.............................\n....xdddddx.............................\n....xxfffxx.............................\n.....xfxfx..............................\n.....xxxxx..............................\n........................................\n............000000......................\n............000000......................\n............111111......................\n............111111......................\n..........2222222222....................\n..........2222222222....................\n............333333......................\n............333333......................\n............33..33......................\n............33..33......................\n....................8888889988..........\n....................8888889988..........\n....................9999999999..........\n....................9999999999..........\n....................8899888888..........\n....................8899888888..........\n....................9999999999..........\n....................9999999999..........\n....................8888889988..........\n....................8888889988..........\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n\nmessage Yes\n\n\n\n\n\n", [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 2, 2, 2, 1, 1, 0, 0, 0, 1, 1, 1, 2, 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3], "background: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,\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,\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,\n0,0,0,0,background buhne:1,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,0,0,0,0,0,0,0,0,\n0,0,1,1,1,background d:2,1,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,0,0,0,0,0,0,\n0,0,1,a background:3,background s:4,2,background f:5,5,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,0,0,0,0,0,0,\n0,0,1,3,4,2,5,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,0,0,0,0,0,0,\n0,0,1,3,4,2,5,5,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,0,0,0,0,0,0,\n0,0,1,1,1,2,1,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,0,0,0,0,0,0,\n0,0,0,0,1,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,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,\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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background crate3:6,0,0,0,background crate4:7,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,6,6,0,0,0,7,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,6,background crate2:8,0,0,0,7,7,7,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,8,8,0,0,0,7,7,7,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,background crate1:9,8,8,6,6,7,7,7,7,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,9,8,8,6,6,7,7,7,7,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,9,8,8,6,6,7,background wall1:10,10,background wall2:11,11,10,10,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,8,8,6,6,7,10,10,11,11,10,10,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,8,6,6,6,7,10,10,11,11,11,11,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,6,6,6,6,7,10,10,11,11,11,11,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,10,10,11,11,10,10,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,10,10,11,11,10,10,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,11,11,11,11,10,10,11,11,11,11,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,11,11,11,11,10,10,11,11,11,11,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,10,10,11,11,10,10,11,11,10,10,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,10,10,11,11,10,10,11,11,10,10,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,6,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,\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,\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,\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,\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,\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,\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,\n", 1, "1627891699152.948"] ], [ - "the exit is under my left foot", - ["title the exit is under my left foot\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nrun_rules_on_level_start\nbackground_color darkblue\n\n========\nOBJECTS\n========\n\nBackground\nGREEN\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\np1\ngray \n.....\n.....\n..0..\n.....\n.....\n\np2\ngray \n.....\n.....\n..0..\n.....\n.....\n\np3\ngray \n.....\n.....\n..0..\n.....\n.....\n\np4\ngray \n.....\n.....\n..0..\n.....\n.....\n\np5\ngray \n.....\n.....\n..0..\n.....\n.....\n\n\n(\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.)\n\npixel_black \nblack\n\npixel_orange \norange\n\npixel_white \nwhite\n\npixel_blue \nblue\n\n\nwall_black \nblack\n\nwall_orange \norange\n\nwall_white \nwhite\n\nwall_blue \nblue\n\nrow_1 a\nTRANSPARENT\n\nrow_2 s\nTRANSPARENT\n\nrow_3 d\nTRANSPARENT\n\nrow_4 f\nTRANSPARENT\n\nrow_5 g\nTRANSPARENT\n\ndead\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\ngoal\ngray\n.....\n.....\n..0..\n.....\n.....\n\nquasigrenze\nTRANSPARENT\n\n=======\nLEGEND\n=======\n\n. = Background\n1 = p1\n2 = p2\n3 = p3\n4 = p4\n5 = p5\n\nO = Target\n\nb = goal \nn = goal and row_1\n\npixel = pixel_black or pixel_white or pixel_orange or pixel_blue\n\nplayer = p1 or p2 or p3 or p4 or p5\n\nq = pixel_black and p1\nw = pixel_orange and p2\ne = pixel_white and p3\nr = pixel_blue and p4\nt = pixel_blue and p5\n\nrow = row_1 or row_2 or row_3 or row_4 or row_5\nwall = wall_black or wall_orange or wall_white or wall_blue\nobstacle = wall\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\npixel\nWall\nPlayer\nrow\ngoal\ndead\nquasigrenze\n\n======\nRULES\n======\n\n\n[dead]->cancel\n\n[ > player pixel ] -> [ > player > pixel ]\n\n(\n[ moving player ] -> [ player ]\n\n[ player | player | player | player | player > pixel ] -> [ > player | > player | > player | > player | > player > pixel ]\n\n[ orthogonal player | stationary player ] -> [ orthogonal player | orthogonal player ]\n)\n\n\n[ ^ player wall | ^ player wall | ^ player wall | ^ player wall | ^ player wall ] -> [ quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall ]\n\n[ > pixel | > pixel | > pixel | > pixel | > pixel | obstacle ] [ moving player ] -> [ > pixel | > pixel | > pixel | > pixel | > pixel | obstacle ] [ player ] \n\n[ > pixel | quasigrenze ] [ moving player ] -> [ > pixel | quasigrenze ] [ player ] \n[quasigrenze]->[]\n\n[ > pixel | wall ] -> [ stationary pixel | wall ]\n[ > pixel | stationary pixel ] -> [ stationary pixel | pixel ]\n\nlate [wall]->[]\n\nlate [ pixel no player ] -> cancel\n\nlate right [ pixel_black 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_black 1 | 1 | 1 | 1 | 1 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_black 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_black 1 | 1 | 1 | 1 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_black 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_black 1 | 1 | 1 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_black 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_black 1 | 1 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_black 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_black 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_1 ]\nlate right [ pixel_black 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_black 2 | 2 | 2 | 2 | 2 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_black 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_black 2 | 2 | 2 | 2 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_black 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_black 2 | 2 | 2 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_black 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_black 2 | 2 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_black 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_black 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_2 ]\nlate right [ pixel_black 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_black 3 | 3 | 3 | 3 | 3 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_black 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_black 3 | 3 | 3 | 3 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_black 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_black 3 | 3 | 3 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_black 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_black 3 | 3 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_black 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_black 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_3 ]\nlate right [ pixel_black 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_black 4 | 4 | 4 | 4 | 4 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_black 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_black 4 | 4 | 4 | 4 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_black 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_black 4 | 4 | 4 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_black 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_black 4 | 4 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_black 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_black 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_4 ]\nlate right [ pixel_black 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_black 5 | 5 | 5 | 5 | 5 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_black 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_black 5 | 5 | 5 | 5 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_black 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_black 5 | 5 | 5 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_black 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_black 5 | 5 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_black 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_black 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_5 ]\n\n\nlate [pixel wall]->[pixel wall dead]\n\n==============\nWINCONDITIONS\n==============\n\nall player on goal\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n(11112222233333444445555)\n........................a\n........................a\n........................a\n........................a\n........................a\n........................s\n........................s\n........................s\n........................s\n........................s\n........................d\n........................d\n........................d\n........................d\n........................d\n........................f\n........................f\n........................f\n........................f\n........................f\n1qqq1..........bbbbb....g\n2www2..........bbbbb....g\neeeee..........bbbbb....g\n4rrr4..........bbbbb....g\n5t5t5..........bbbbb....g\n(11112222233333444445555)\n\n",[0,0,0,0,0,0,0,3,3,3,3,3,3,3,2,2,2,2,2,3,3,3,3,3,0,0,1,1,0,0,0,3,3,1,0,0,0,0,0,1,1,0,0,0],"background:0,0,0,0,0,background wall_black:1,1,1,1,1,background wall_white:2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,background p1 wall_black:3,background dead p2 pixel_black wall_white:4,background dead p3 pixel_white wall_white:5,background p4 wall_white:6,background p5 wall_white:7,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,3,4,background dead p3 pixel_orange wall_white:8,6,7,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,3,4,8,background dead p4 pixel_white wall_white:9,background dead p5 pixel_blue wall_white:10,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,3,background dead p2 pixel_orange wall_orange:11,background dead p3 pixel_white wall_orange:12,background dead p4 pixel_blue wall_orange:13,background dead p5 pixel_blue wall_orange:14,background wall_orange:15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,3,background dead p2 pixel_white wall_orange:16,12,13,14,15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,background wall_blue:17,17,17,17,17,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,background goal wall_blue:18,18,18,18,18,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,18,18,18,18,18,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,18,18,18,18,18,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,18,18,18,18,18,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,18,18,18,18,18,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,17,17,17,17,17,17,17,17,17,17,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,17,17,17,17,17,17,17,17,17,17,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,17,17,17,17,17,17,17,17,17,17,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,17,17,17,17,17,17,17,17,17,17,\nbackground row_1:19,19,19,19,19,background row_2 wall_white:20,20,20,20,20,background row_3 wall_white:21,21,21,21,21,background row_4 wall_blue:22,22,22,22,22,background row_5 wall_blue:23,23,23,23,23,\n",1,"1627891726028.5537"] + "the exit is under my left foot", + ["title the exit is under my left foot\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nrun_rules_on_level_start\nbackground_color darkblue\n\n========\nOBJECTS\n========\n\nBackground\nGREEN\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\np1\ngray \n.....\n.....\n..0..\n.....\n.....\n\np2\ngray \n.....\n.....\n..0..\n.....\n.....\n\np3\ngray \n.....\n.....\n..0..\n.....\n.....\n\np4\ngray \n.....\n.....\n..0..\n.....\n.....\n\np5\ngray \n.....\n.....\n..0..\n.....\n.....\n\n\n(\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.)\n\npixel_black \nblack\n\npixel_orange \norange\n\npixel_white \nwhite\n\npixel_blue \nblue\n\n\nwall_black \nblack\n\nwall_orange \norange\n\nwall_white \nwhite\n\nwall_blue \nblue\n\nrow_1 a\nTRANSPARENT\n\nrow_2 s\nTRANSPARENT\n\nrow_3 d\nTRANSPARENT\n\nrow_4 f\nTRANSPARENT\n\nrow_5 g\nTRANSPARENT\n\ndead\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\ngoal\ngray\n.....\n.....\n..0..\n.....\n.....\n\nquasigrenze\nTRANSPARENT\n\n=======\nLEGEND\n=======\n\n. = Background\n1 = p1\n2 = p2\n3 = p3\n4 = p4\n5 = p5\n\nO = Target\n\nb = goal \nn = goal and row_1\n\npixel = pixel_black or pixel_white or pixel_orange or pixel_blue\n\nplayer = p1 or p2 or p3 or p4 or p5\n\nq = pixel_black and p1\nw = pixel_orange and p2\ne = pixel_white and p3\nr = pixel_blue and p4\nt = pixel_blue and p5\n\nrow = row_1 or row_2 or row_3 or row_4 or row_5\nwall = wall_black or wall_orange or wall_white or wall_blue\nobstacle = wall\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\npixel\nWall\nPlayer\nrow\ngoal\ndead\nquasigrenze\n\n======\nRULES\n======\n\n\n[dead]->cancel\n\n[ > player pixel ] -> [ > player > pixel ]\n\n(\n[ moving player ] -> [ player ]\n\n[ player | player | player | player | player > pixel ] -> [ > player | > player | > player | > player | > player > pixel ]\n\n[ orthogonal player | stationary player ] -> [ orthogonal player | orthogonal player ]\n)\n\n\n[ ^ player wall | ^ player wall | ^ player wall | ^ player wall | ^ player wall ] -> [ quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall ]\n\n[ > pixel | > pixel | > pixel | > pixel | > pixel | obstacle ] [ moving player ] -> [ > pixel | > pixel | > pixel | > pixel | > pixel | obstacle ] [ player ] \n\n[ > pixel | quasigrenze ] [ moving player ] -> [ > pixel | quasigrenze ] [ player ] \n[quasigrenze]->[]\n\n[ > pixel | wall ] -> [ stationary pixel | wall ]\n[ > pixel | stationary pixel ] -> [ stationary pixel | pixel ]\n\nlate [wall]->[]\n\nlate [ pixel no player ] -> cancel\n\nlate right [ pixel_black 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_black 1 | 1 | 1 | 1 | 1 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_black 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_black 1 | 1 | 1 | 1 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_black 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_black 1 | 1 | 1 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_black 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_black 1 | 1 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_black 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_black 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_1 ]\nlate right [ pixel_black 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_black 2 | 2 | 2 | 2 | 2 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_black 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_black 2 | 2 | 2 | 2 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_black 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_black 2 | 2 | 2 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_black 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_black 2 | 2 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_black 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_black 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_2 ]\nlate right [ pixel_black 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_black 3 | 3 | 3 | 3 | 3 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_black 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_black 3 | 3 | 3 | 3 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_black 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_black 3 | 3 | 3 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_black 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_black 3 | 3 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_black 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_black 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_3 ]\nlate right [ pixel_black 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_black 4 | 4 | 4 | 4 | 4 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_black 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_black 4 | 4 | 4 | 4 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_black 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_black 4 | 4 | 4 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_black 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_black 4 | 4 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_black 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_black 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_4 ]\nlate right [ pixel_black 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_black 5 | 5 | 5 | 5 | 5 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_black 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_black 5 | 5 | 5 | 5 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_black 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_black 5 | 5 | 5 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_black 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_black 5 | 5 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_black 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_black 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_5 ]\n\n\nlate [pixel wall]->[pixel wall dead]\n\n==============\nWINCONDITIONS\n==============\n\nall player on goal\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n(11112222233333444445555)\n........................a\n........................a\n........................a\n........................a\n........................a\n........................s\n........................s\n........................s\n........................s\n........................s\n........................d\n........................d\n........................d\n........................d\n........................d\n........................f\n........................f\n........................f\n........................f\n........................f\n1qqq1..........bbbbb....g\n2www2..........bbbbb....g\neeeee..........bbbbb....g\n4rrr4..........bbbbb....g\n5t5t5..........bbbbb....g\n(11112222233333444445555)\n\n", [0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 0, 0, 1, 1, 0, 0, 0, 3, 3, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0], "background:0,0,0,0,0,background wall_black:1,1,1,1,1,background wall_white:2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,background p1 wall_black:3,background dead p2 pixel_black wall_white:4,background dead p3 pixel_white wall_white:5,background p4 wall_white:6,background p5 wall_white:7,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,3,4,background dead p3 pixel_orange wall_white:8,6,7,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,3,4,8,background dead p4 pixel_white wall_white:9,background dead p5 pixel_blue wall_white:10,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,3,background dead p2 pixel_orange wall_orange:11,background dead p3 pixel_white wall_orange:12,background dead p4 pixel_blue wall_orange:13,background dead p5 pixel_blue wall_orange:14,background wall_orange:15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,3,background dead p2 pixel_white wall_orange:16,12,13,14,15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,background wall_blue:17,17,17,17,17,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,background goal wall_blue:18,18,18,18,18,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,18,18,18,18,18,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,18,18,18,18,18,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,18,18,18,18,18,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,18,18,18,18,18,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,17,17,17,17,17,17,17,17,17,17,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,17,17,17,17,17,17,17,17,17,17,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,17,17,17,17,17,17,17,17,17,17,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,17,17,17,17,17,17,17,17,17,17,\nbackground row_1:19,19,19,19,19,background row_2 wall_white:20,20,20,20,20,background row_3 wall_white:21,21,21,21,21,background row_4 wall_blue:22,22,22,22,22,background row_5 wall_blue:23,23,23,23,23,\n", 1, "1627891726028.5537"] ], [ - "I SURE LOOK TASTY!", - ["title I SURE LOOK TASTY!\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nrun_rules_on_level_start\n\nverbose_logging\n========\nOBJECTS\n========\n\nBackground\nGREEN\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\np1\ngray \n.....\n.....\n..0..\n.....\n.....\n\np2\ngray \n.....\n.....\n..0..\n.....\n.....\n\np3\ngray \n.....\n.....\n..0..\n.....\n.....\n\np4\ngray \n.....\n.....\n..0..\n.....\n.....\n\np5\ngray \n.....\n.....\n..0..\n.....\n.....\n\n\n(\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.)\n\npixel_eye\norange white blue\n00000\n01110\n01210\n01210\n00000\n\n\npixel_orange \norange\n\npixel_white \nwhite\n\npixel_blue \nblue\n\npixel_mouth\norange red white darkred black\n01110\n12221\n34443\n12221\n01110\n\n\nwall_black \nblack\n\nwall_orange \norange\n\nwall_white \nwhite\n\nwall_blue \nblue\n\nwall_red\nred\n\nwall_darkred\ndarkred\n\nrow_1 a\nTRANSPARENT\n\nrow_2 s\nTRANSPARENT\n\nrow_3 d\nTRANSPARENT\n\nrow_4 f\nTRANSPARENT\n\nrow_5 g\nTRANSPARENT\n\nvr_1\nTRANSPARENT\n0....\n.....\n.....\n.....\n.....\n\nvr_2\nTRANSPARENT\n.0...\n.....\n.....\n.....\n.....\n\nvr_3\nTRANSPARENT\n..0..\n.....\n.....\n.....\n.....\n\nvr_4\nTRANSPARENT\n...0.\n.....\n.....\n.....\n.....\n\nvr_5\nTRANSPARENT\n....0\n.....\n.....\n.....\n.....\n\ndead\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\ngoal\ngray\n.....\n.....\n..0..\n.....\n.....\n\nquasigrenze\nTRANSPARENT\n\nmund\nTRANSPARENT\n\n=======\nLEGEND\n=======\n\n. = Background\n1 = p1\n2 = p2\n3 = p3\n4 = p4\n5 = p5\n\nO = Target\n\nb = goal \nn = goal and row_1\n\npixel = pixel_eye or pixel_white or pixel_orange or pixel_blue or pixel_mouth\n\nplayer = p1 or p2 or p3 or p4 or p5\n\nq = pixel_eye and p1\nw = pixel_orange and p2\ne = pixel_white and p3\nr = pixel_blue and p4\nt = pixel_blue and p5\ny = pixel_mouth and p2\nu = pixel_orange and p1\n\nrow = row_1 or row_2 or row_3 or row_4 or row_5\nwall = wall_black or wall_orange or wall_white or wall_blue or wall_red or wall_darkred\nobstacle = wall\n\nvr = vr_1 or vr_2 or vr_3 or vr_4 or vr_5\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nvr\nTarget\nWall\npixel\nPlayer\nrow\ngoal\ndead\nquasigrenze\nmund\n\n======\nRULES\n======\n\n\n[dead]->cancel\n\n[ > player pixel ] -> [ > player > pixel ]\n\n(\n[ moving player ] -> [ player ]\n\n[ player | player | player | player | player > pixel ] -> [ > player | > player | > player | > player | > player > pixel ]\n\n[ orthogonal player | stationary player ] -> [ orthogonal player | orthogonal player ]\n)\n\n\ndown [ row_1 | row_1 | row_1 | row_1 | row_1 ] -> [ row_1 vr_1 | row_1 vr_2 | row_1 vr_3 | row_1 vr_4 | row_1 vr_5 ]\ndown [ row_2 | row_2 | row_2 | row_2 | row_2 ] -> [ row_2 vr_1 | row_2 vr_2 | row_2 vr_3 | row_2 vr_4 | row_2 vr_5 ]\ndown [ row_3 | row_3 | row_3 | row_3 | row_3 ] -> [ row_3 vr_1 | row_3 vr_2 | row_3 vr_3 | row_3 vr_4 | row_3 vr_5 ]\ndown [ row_4 | row_4 | row_4 | row_4 | row_4 ] -> [ row_4 vr_1 | row_4 vr_2 | row_4 vr_3 | row_4 vr_4 | row_4 vr_5 ]\ndown [ row_5 | row_5 | row_5 | row_5 | row_5 ] -> [ row_5 vr_1 | row_5 vr_2 | row_5 vr_3 | row_5 vr_4 | row_5 vr_5 ]\n\n[ ^ player wall | ^ player wall | ^ player wall | ^ player wall | ^ player wall ] -> [ quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall ]\n\n[ > pixel | > pixel | > pixel | > pixel | > pixel | obstacle ] [ moving player ] -> [ > pixel | > pixel | > pixel | > pixel | > pixel | obstacle ] [ player ] \n\n[ > pixel | quasigrenze ] [ moving player ] -> [ > pixel | quasigrenze ] [ player ] \n[quasigrenze]->[]\n\n[ > pixel | wall ] -> [ stationary pixel | wall ]\n[ > pixel | stationary pixel ] -> [ stationary pixel | pixel ]\n\nlate [wall]->[]\nlate [mund]->[]\nlate [ pixel no player ] -> cancel\n\n\n\nlate right [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_1 ]\nlate right [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_2 ]\nlate right [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_3 ]\nlate right [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_4 ]\nlate right [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_5 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 vr_1 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 vr_1 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 vr_1 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 vr_1 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 vr_1 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_1 vr_2 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_2 vr_2 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_3 vr_2 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_4 vr_2 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_5 vr_2 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_1 vr_3 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_2 vr_3 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_3 vr_3 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_4 vr_3 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_5 vr_3 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_1 vr_4 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_2 vr_4 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_3 vr_4 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_4 vr_4 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_5 vr_4 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 vr_5 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 vr_5 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 vr_5 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 vr_5 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 vr_5 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_1 vr_1 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_2 vr_1 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_3 vr_1 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_4 vr_1 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_5 vr_1 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_1 vr_2 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_2 vr_2 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_3 vr_2 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_4 vr_2 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_5 vr_2 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_1 vr_3 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_2 vr_3 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_3 vr_3 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_4 vr_3 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_5 vr_3 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_1 vr_4 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_2 vr_4 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_3 vr_4 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_4 vr_4 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_5 vr_4 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_1 vr_5 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_2 vr_5 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_3 vr_5 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_4 vr_5 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_5 vr_5 ]\n\n\nlate [pixel mund ] -> [ mund ] \nlate [pixel wall]->[pixel wall dead]\n\n==============\nWINCONDITIONS\n==============\n\nno pixel\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n(11112222233333444445555)\n........................a\n........................a\n........................a\n........................a\n........................a\n........................s\n........................s\n........................s\n........................s\n........................s\n........................d\n........................d\n........................d\n........................d\n........................d\n........................f\n........................f\n........................f\n........................f\n........................f\n1quq1...................g\n2wyw2...................g\neeeee...................g\n4rrr4...................g\n5t5t5...................g\n(11112222233333444445555)\n\nmessage OM NOM NOM\n",[0,0,3,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3],"background wall_white:0,0,0,0,0,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,background p1 pixel_white:2,background p2:3,background p3:4,background p4:5,background p5:6,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,2,3,4,5,6,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,background p1 pixel_eye:7,background p2 pixel_orange:8,background p3 pixel_white:9,background p4 pixel_blue:10,6,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,background p1 pixel_orange:11,background p2 pixel_mouth:12,9,10,background p5 pixel_blue:13,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,7,8,9,10,13,1,1,1,1,1,1,1,1,1,1,1,\nbackground wall_orange:14,14,14,14,14,14,14,14,14,14,0,0,0,0,0,background wall_blue:15,15,15,15,15,1,1,1,1,1,\n14,0,0,0,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,1,1,1,1,1,\n14,0,15,15,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,1,1,1,1,1,\n14,0,0,0,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,1,1,1,1,1,\n14,14,14,14,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,1,1,1,1,1,\n14,14,14,14,14,background mund wall_red:16,16,background mund wall_darkred:17,16,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,16,background mund wall_white:18,background mund wall_black:19,18,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,16,18,19,18,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,16,18,19,18,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,16,16,17,16,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,0,0,0,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,0,15,15,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,0,0,0,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\nbackground row_1 vr_1 wall_orange:20,background row_1 vr_2 wall_orange:21,background row_1 vr_3 wall_orange:22,background row_1 vr_4 wall_orange:23,background row_1 vr_5 wall_orange:24,background row_2 vr_1 wall_orange:25,background row_2 vr_2 wall_orange:26,background row_2 vr_3 wall_orange:27,background row_2 vr_4 wall_orange:28,background row_2 vr_5 wall_orange:29,background row_3 vr_1 wall_white:30,background row_3 vr_2 wall_white:31,background row_3 vr_3 wall_white:32,background row_3 vr_4 wall_white:33,background row_3 vr_5 wall_white:34,background row_4 vr_1 wall_blue:35,background row_4 vr_2 wall_blue:36,background row_4 vr_3 wall_blue:37,background row_4 vr_4 wall_blue:38,background row_4 vr_5 wall_blue:39,background row_5 vr_1 wall_blue:40,background row_5 vr_2 wall_blue:41,background row_5 vr_3 wall_blue:42,background row_5 vr_4 wall_blue:43,background row_5 vr_5 wall_blue:44,\n",1,"1627891749225.5503"] + "I SURE LOOK TASTY!", + ["title I SURE LOOK TASTY!\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nrun_rules_on_level_start\n\nverbose_logging\n========\nOBJECTS\n========\n\nBackground\nGREEN\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\np1\ngray \n.....\n.....\n..0..\n.....\n.....\n\np2\ngray \n.....\n.....\n..0..\n.....\n.....\n\np3\ngray \n.....\n.....\n..0..\n.....\n.....\n\np4\ngray \n.....\n.....\n..0..\n.....\n.....\n\np5\ngray \n.....\n.....\n..0..\n.....\n.....\n\n\n(\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.)\n\npixel_eye\norange white blue\n00000\n01110\n01210\n01210\n00000\n\n\npixel_orange \norange\n\npixel_white \nwhite\n\npixel_blue \nblue\n\npixel_mouth\norange red white darkred black\n01110\n12221\n34443\n12221\n01110\n\n\nwall_black \nblack\n\nwall_orange \norange\n\nwall_white \nwhite\n\nwall_blue \nblue\n\nwall_red\nred\n\nwall_darkred\ndarkred\n\nrow_1 a\nTRANSPARENT\n\nrow_2 s\nTRANSPARENT\n\nrow_3 d\nTRANSPARENT\n\nrow_4 f\nTRANSPARENT\n\nrow_5 g\nTRANSPARENT\n\nvr_1\nTRANSPARENT\n0....\n.....\n.....\n.....\n.....\n\nvr_2\nTRANSPARENT\n.0...\n.....\n.....\n.....\n.....\n\nvr_3\nTRANSPARENT\n..0..\n.....\n.....\n.....\n.....\n\nvr_4\nTRANSPARENT\n...0.\n.....\n.....\n.....\n.....\n\nvr_5\nTRANSPARENT\n....0\n.....\n.....\n.....\n.....\n\ndead\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\ngoal\ngray\n.....\n.....\n..0..\n.....\n.....\n\nquasigrenze\nTRANSPARENT\n\nmund\nTRANSPARENT\n\n=======\nLEGEND\n=======\n\n. = Background\n1 = p1\n2 = p2\n3 = p3\n4 = p4\n5 = p5\n\nO = Target\n\nb = goal \nn = goal and row_1\n\npixel = pixel_eye or pixel_white or pixel_orange or pixel_blue or pixel_mouth\n\nplayer = p1 or p2 or p3 or p4 or p5\n\nq = pixel_eye and p1\nw = pixel_orange and p2\ne = pixel_white and p3\nr = pixel_blue and p4\nt = pixel_blue and p5\ny = pixel_mouth and p2\nu = pixel_orange and p1\n\nrow = row_1 or row_2 or row_3 or row_4 or row_5\nwall = wall_black or wall_orange or wall_white or wall_blue or wall_red or wall_darkred\nobstacle = wall\n\nvr = vr_1 or vr_2 or vr_3 or vr_4 or vr_5\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nvr\nTarget\nWall\npixel\nPlayer\nrow\ngoal\ndead\nquasigrenze\nmund\n\n======\nRULES\n======\n\n\n[dead]->cancel\n\n[ > player pixel ] -> [ > player > pixel ]\n\n(\n[ moving player ] -> [ player ]\n\n[ player | player | player | player | player > pixel ] -> [ > player | > player | > player | > player | > player > pixel ]\n\n[ orthogonal player | stationary player ] -> [ orthogonal player | orthogonal player ]\n)\n\n\ndown [ row_1 | row_1 | row_1 | row_1 | row_1 ] -> [ row_1 vr_1 | row_1 vr_2 | row_1 vr_3 | row_1 vr_4 | row_1 vr_5 ]\ndown [ row_2 | row_2 | row_2 | row_2 | row_2 ] -> [ row_2 vr_1 | row_2 vr_2 | row_2 vr_3 | row_2 vr_4 | row_2 vr_5 ]\ndown [ row_3 | row_3 | row_3 | row_3 | row_3 ] -> [ row_3 vr_1 | row_3 vr_2 | row_3 vr_3 | row_3 vr_4 | row_3 vr_5 ]\ndown [ row_4 | row_4 | row_4 | row_4 | row_4 ] -> [ row_4 vr_1 | row_4 vr_2 | row_4 vr_3 | row_4 vr_4 | row_4 vr_5 ]\ndown [ row_5 | row_5 | row_5 | row_5 | row_5 ] -> [ row_5 vr_1 | row_5 vr_2 | row_5 vr_3 | row_5 vr_4 | row_5 vr_5 ]\n\n[ ^ player wall | ^ player wall | ^ player wall | ^ player wall | ^ player wall ] -> [ quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall ]\n\n[ > pixel | > pixel | > pixel | > pixel | > pixel | obstacle ] [ moving player ] -> [ > pixel | > pixel | > pixel | > pixel | > pixel | obstacle ] [ player ] \n\n[ > pixel | quasigrenze ] [ moving player ] -> [ > pixel | quasigrenze ] [ player ] \n[quasigrenze]->[]\n\n[ > pixel | wall ] -> [ stationary pixel | wall ]\n[ > pixel | stationary pixel ] -> [ stationary pixel | pixel ]\n\nlate [wall]->[]\nlate [mund]->[]\nlate [ pixel no player ] -> cancel\n\n\n\nlate right [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_1 ]\nlate right [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_2 ]\nlate right [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_3 ]\nlate right [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_4 ]\nlate right [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_5 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 vr_1 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 vr_1 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 vr_1 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 vr_1 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 vr_1 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_1 vr_2 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_2 vr_2 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_3 vr_2 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_4 vr_2 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_5 vr_2 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_1 vr_3 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_2 vr_3 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_3 vr_3 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_4 vr_3 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_5 vr_3 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_1 vr_4 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_2 vr_4 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_3 vr_4 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_4 vr_4 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_5 vr_4 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 vr_5 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 vr_5 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 vr_5 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 vr_5 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 vr_5 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_1 vr_1 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_2 vr_1 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_3 vr_1 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_4 vr_1 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_5 vr_1 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_1 vr_2 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_2 vr_2 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_3 vr_2 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_4 vr_2 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_5 vr_2 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_1 vr_3 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_2 vr_3 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_3 vr_3 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_4 vr_3 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_5 vr_3 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_1 vr_4 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_2 vr_4 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_3 vr_4 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_4 vr_4 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_5 vr_4 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_1 vr_5 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_2 vr_5 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_3 vr_5 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_4 vr_5 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_5 vr_5 ]\n\n\nlate [pixel mund ] -> [ mund ] \nlate [pixel wall]->[pixel wall dead]\n\n==============\nWINCONDITIONS\n==============\n\nno pixel\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n(11112222233333444445555)\n........................a\n........................a\n........................a\n........................a\n........................a\n........................s\n........................s\n........................s\n........................s\n........................s\n........................d\n........................d\n........................d\n........................d\n........................d\n........................f\n........................f\n........................f\n........................f\n........................f\n1quq1...................g\n2wyw2...................g\neeeee...................g\n4rrr4...................g\n5t5t5...................g\n(11112222233333444445555)\n\nmessage OM NOM NOM\n", [0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3], "background wall_white:0,0,0,0,0,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,background p1 pixel_white:2,background p2:3,background p3:4,background p4:5,background p5:6,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,2,3,4,5,6,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,background p1 pixel_eye:7,background p2 pixel_orange:8,background p3 pixel_white:9,background p4 pixel_blue:10,6,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,background p1 pixel_orange:11,background p2 pixel_mouth:12,9,10,background p5 pixel_blue:13,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,7,8,9,10,13,1,1,1,1,1,1,1,1,1,1,1,\nbackground wall_orange:14,14,14,14,14,14,14,14,14,14,0,0,0,0,0,background wall_blue:15,15,15,15,15,1,1,1,1,1,\n14,0,0,0,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,1,1,1,1,1,\n14,0,15,15,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,1,1,1,1,1,\n14,0,0,0,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,1,1,1,1,1,\n14,14,14,14,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,1,1,1,1,1,\n14,14,14,14,14,background mund wall_red:16,16,background mund wall_darkred:17,16,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,16,background mund wall_white:18,background mund wall_black:19,18,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,16,18,19,18,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,16,18,19,18,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,16,16,17,16,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,0,0,0,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,0,15,15,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,0,0,0,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\nbackground row_1 vr_1 wall_orange:20,background row_1 vr_2 wall_orange:21,background row_1 vr_3 wall_orange:22,background row_1 vr_4 wall_orange:23,background row_1 vr_5 wall_orange:24,background row_2 vr_1 wall_orange:25,background row_2 vr_2 wall_orange:26,background row_2 vr_3 wall_orange:27,background row_2 vr_4 wall_orange:28,background row_2 vr_5 wall_orange:29,background row_3 vr_1 wall_white:30,background row_3 vr_2 wall_white:31,background row_3 vr_3 wall_white:32,background row_3 vr_4 wall_white:33,background row_3 vr_5 wall_white:34,background row_4 vr_1 wall_blue:35,background row_4 vr_2 wall_blue:36,background row_4 vr_3 wall_blue:37,background row_4 vr_4 wall_blue:38,background row_4 vr_5 wall_blue:39,background row_5 vr_1 wall_blue:40,background row_5 vr_2 wall_blue:41,background row_5 vr_3 wall_blue:42,background row_5 vr_4 wall_blue:43,background row_5 vr_5 wall_blue:44,\n", 1, "1627891749225.5503"] ], [ - "Oh no I accidentally swallowed myself!", - ["title Oh no I accidentally swallowed myself!\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nverbose_logging\n\nbackground_color brown \n\n========\nOBJECTS\n========\n\nu\nblack\n\np\norange\n\no\nwhite\n\ni\nblue\n\ny \ndarkred\n\nt \nlightblue\n\nBackground\nbrown\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\np1\ngray \n.....\n.....\n..0..\n.....\n.....\n\np2\ngray \n.....\n.....\n..0..\n.....\n.....\n\np3\ngray \n.....\n.....\n..0..\n.....\n.....\n\np4\ngray \n.....\n.....\n..0..\n.....\n.....\n\np5\ngray \n.....\n.....\n..0..\n.....\n.....\n\n\n(\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.)\n\npixel_black \nblack\n\npixel_orange \norange\n\npixel_white \nwhite\n\npixel_blue \nblue\n\n\nwall_black \nDARKRED\n\nwall_orange \nDARKRED\n\nwall_white \nDARKRED\n\nwall_blue \nDARKRED\n\nrow_1 a\nTRANSPARENT\n\nrow_2 s\nTRANSPARENT\n\nrow_3 d\nTRANSPARENT\n\nrow_4 f\nTRANSPARENT\n\nrow_5 g\nTRANSPARENT\n\ndead\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\ngoal\nTRANSPARENT\n\ngoal_u\ngray\n00000\n.....\n.....\n.....\n.....\n\ngoal_d\ngray\n.....\n.....\n.....\n.....\n00000\n\ngoal_l\ngray\n0....\n0....\n0....\n0....\n0....\n\n\ngoal_r\ngray\n....0\n....0\n....0\n....0\n....0\n\n\nquasigrenze\nTRANSPARENT\n\noldplayer\ntransparent\n\nnewplayer\ntransparent\n\ndomove\nTRANSPARENT\n\ndontmove\nTRANSPARENT\n\ntemp\nTRANSPARENT\n\nm_up\nTRANSPARENT\n\nm_down\nTRANSPARENT\n\nm_left\nTRANSPARENT\n\nm_right\nTRANSPARENT\n\n=======\nLEGEND\n=======\n\n. = Background\n1 = p1\n2 = p2\n3 = p3\n4 = p4\n5 = p5\n\n, = Target\n\nb = goal \nn = goal and row_1\n\npixel = pixel_black or pixel_white or pixel_orange or pixel_blue\n\nplayer = p1 or p2 or p3 or p4 or p5\n\nq = pixel_black and p1\nw = pixel_orange and p2\ne = pixel_white and p3\nr = pixel_blue and p4\n; = pixel_blue and p5\n\nrow = row_1 or row_2 or row_3 or row_4 or row_5\nwall = wall_black or wall_orange or wall_white or wall_blue\nobstacle = wall\n\nm = m_up or m_down or m_left or m_right\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nWall\npixel\nPlayer\nrow\ngoal\ndead\nquasigrenze\noldplayer\nnewplayer\ndomove\ndontmove\ntemp\nm\ngoal_u\ngoal_d\ngoal_l\ngoal_r\np, o, i, u, y, t\n\n======\nRULES\n======\n\n\nup [ goal | no goal ] -> [ goal goal_u | ]\ndown [ goal | no goal ] -> [ goal goal_d | ]\nleft [ goal | no goal ] -> [ goal goal_l | ]\nright [ goal | no goal ] -> [ goal goal_r | ]\n\n[dead]->cancel\n\n[ > player pixel ] -> [ > player > pixel ]\n\n[ > player | > player | > player | > player | > player ] -> [ oldplayer > player | > player | > player | > player | > player ] \n\n[ > player | > player | > player | > player | > player | ] -> [ > player | > player | > player | > player | > player | newplayer] \n\n[ moving player ] -> [ player ]\n\n[ > pixel | no wall ] -> [ stationary pixel | ]\n[ > pixel | stationary pixel ] -> [ stationary pixel | pixel ]\n\n\n\n\nlate [ oldplayer pixel ] [ newplayer pixel ] -> cancel\n\n\nlate [ oldplayer pixel ] [ newplayer ]-> [ oldplayer pixel ] [ ]\n\n\nlate [ player | newplayer no player ] -> [ | player newplayer]\nlate [ player | no player | ... | newplayer ] -> [ | player | ... | newplayer ]\n\nlate [ oldplayer ] -> [ ]\nlate [ newplayer ] -> [ ]\n\nlate [ temp ] -> [ ]\nlate [ domove ] -> [ ]\nlate [wall]->[]\n\nlate right [ pixel_black 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_black 1 | 1 | 1 | 1 | 1 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_black 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_black 1 | 1 | 1 | 1 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_black 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_black 1 | 1 | 1 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_black 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_black 1 | 1 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_black 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_black 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_1 ]\nlate right [ pixel_black 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_black 2 | 2 | 2 | 2 | 2 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_black 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_black 2 | 2 | 2 | 2 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_black 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_black 2 | 2 | 2 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_black 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_black 2 | 2 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_black 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_black 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_2 ]\nlate right [ pixel_black 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_black 3 | 3 | 3 | 3 | 3 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_black 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_black 3 | 3 | 3 | 3 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_black 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_black 3 | 3 | 3 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_black 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_black 3 | 3 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_black 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_black 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_3 ]\nlate right [ pixel_black 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_black 4 | 4 | 4 | 4 | 4 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_black 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_black 4 | 4 | 4 | 4 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_black 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_black 4 | 4 | 4 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_black 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_black 4 | 4 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_black 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_black 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_4 ]\nlate right [ pixel_black 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_black 5 | 5 | 5 | 5 | 5 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_black 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_black 5 | 5 | 5 | 5 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_black 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_black 5 | 5 | 5 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_black 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_black 5 | 5 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_black 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_black 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_5 ]\n\n\nlate [pixel no wall]->[pixel dead]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nall pixel on goal\n\n=======\nLEVELS\n=======\n\n\nMessage Level 1 of 1\n\n(11112222233333444445555)\n........................a\n........................a\n........................a\n........................a\n........................a\n..........1qqq1.........s\n..........2www2.........s\n..........eeeee.........s\n..........4rrr4.........s\n..........5;5;5.........s\n........................d\n........................d\n........................d\n........................d\n........................d\n........................f\n..........bbbb..........f\n..........bbbb..........f\n..........bbbb..........f\n..........bbbb..........f\n........................g\n........................g\n........................g\n........................g\n........................g\n(11112222233333444445555)\n\n\ntttttttt\ntttttttt\ntttttttt\ntttttttt\nttuuuttt\nttpppttt\n\n\nttttttttttttt\nttttttttttttt\ntttttttuuuttt\ntttttttpppttt\nttttttooooott\ntttttttiipttt\ntttttttitittt\ntiiiiippppptt\ntiiiiippppptt\ntiiiiippppptt\ntiiiiippppptt\ntiiiiippppptt\n\ntttttttttttttttttttttttttti\nttttttttttttttttttttttttttp\ntttttttttttoooootuuuttttttp\ntttttttttttoooootpppttttttp\ntttttttttttooooooooootttttp\ntttttttttttoooootiipttttttp\ntttttttttttoooootitittttttp\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiiiiiiip\ntuuuuupppppoooooiiiiiiiiiip\ntuuuuupppppoooooiiiiiiiiiip\ntuuuuupppppoooooiiiiiiiiiip\ntuuuuupppppoooooiiiiiiiiiip\ntttttttttttooooottttttttttp\ntttttttttttooooottttttttttp\ntttttttttttooooottttttttttp\ntttttttttttooooottttttttttp\ntttttttttttooooottttttttttp\nooooooooooooooooooooooooooo\n\n\n\n",[2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,1,1,1,1,1,0,3,0,0,0,0,3,3,0,1,2,1,0,0,3,0,1,1],"background wall_black:0,0,0,0,0,background wall_orange:1,1,1,1,1,background wall_white:2,2,2,2,2,background wall_blue:3,3,3,3,3,2,2,2,2,2,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,2,2,2,2,2,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,2,2,2,2,2,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,2,2,2,2,2,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,background p1 pixel_black wall_blue:4,background p2 pixel_orange wall_blue:5,background p3 pixel_white wall_blue:6,background p4 pixel_blue wall_blue:7,background p5 pixel_white wall_blue:8,2,2,2,2,2,\nbackground:9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,background p1 wall_white:10,background p2 pixel_black wall_white:11,background p3 pixel_orange wall_white:12,background p4 pixel_white wall_white:13,background p5 pixel_blue wall_white:14,3,3,3,3,3,\n9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,background p1 pixel_black wall_white:15,background p2 pixel_orange wall_white:16,background p3 pixel_white wall_white:17,background p4 pixel_blue wall_white:18,14,3,3,3,3,3,\n9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,10,background p2 wall_white:19,background p3 wall_white:20,background p4 wall_white:21,14,3,3,3,3,3,\n9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,10,19,20,21,background p5 pixel_white wall_white:22,3,3,3,3,3,\n9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,background goal goal_l goal_u wall_blue:23,background goal goal_l wall_blue:24,24,background goal goal_d goal_l wall_blue:25,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,background goal goal_u wall_blue:26,background goal wall_blue:27,27,background goal goal_d wall_blue:28,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,26,27,27,28,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,background goal goal_r goal_u wall_blue:29,background goal goal_r wall_blue:30,30,background goal goal_d goal_r wall_blue:31,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,2,2,2,2,2,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,2,2,2,2,2,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,2,2,2,2,2,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,2,2,2,2,2,\nbackground row_1:32,32,32,32,32,background row_2:33,33,33,33,33,background row_3:34,34,34,34,34,background row_4:35,35,35,35,35,background row_5 wall_white:36,36,36,36,36,\n",1,"1627891767692.0078"] + "Oh no I accidentally swallowed myself!", + ["title Oh no I accidentally swallowed myself!\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nverbose_logging\n\nbackground_color brown \n\n========\nOBJECTS\n========\n\nu\nblack\n\np\norange\n\no\nwhite\n\ni\nblue\n\ny \ndarkred\n\nt \nlightblue\n\nBackground\nbrown\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\np1\ngray \n.....\n.....\n..0..\n.....\n.....\n\np2\ngray \n.....\n.....\n..0..\n.....\n.....\n\np3\ngray \n.....\n.....\n..0..\n.....\n.....\n\np4\ngray \n.....\n.....\n..0..\n.....\n.....\n\np5\ngray \n.....\n.....\n..0..\n.....\n.....\n\n\n(\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.)\n\npixel_black \nblack\n\npixel_orange \norange\n\npixel_white \nwhite\n\npixel_blue \nblue\n\n\nwall_black \nDARKRED\n\nwall_orange \nDARKRED\n\nwall_white \nDARKRED\n\nwall_blue \nDARKRED\n\nrow_1 a\nTRANSPARENT\n\nrow_2 s\nTRANSPARENT\n\nrow_3 d\nTRANSPARENT\n\nrow_4 f\nTRANSPARENT\n\nrow_5 g\nTRANSPARENT\n\ndead\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\ngoal\nTRANSPARENT\n\ngoal_u\ngray\n00000\n.....\n.....\n.....\n.....\n\ngoal_d\ngray\n.....\n.....\n.....\n.....\n00000\n\ngoal_l\ngray\n0....\n0....\n0....\n0....\n0....\n\n\ngoal_r\ngray\n....0\n....0\n....0\n....0\n....0\n\n\nquasigrenze\nTRANSPARENT\n\noldplayer\ntransparent\n\nnewplayer\ntransparent\n\ndomove\nTRANSPARENT\n\ndontmove\nTRANSPARENT\n\ntemp\nTRANSPARENT\n\nm_up\nTRANSPARENT\n\nm_down\nTRANSPARENT\n\nm_left\nTRANSPARENT\n\nm_right\nTRANSPARENT\n\n=======\nLEGEND\n=======\n\n. = Background\n1 = p1\n2 = p2\n3 = p3\n4 = p4\n5 = p5\n\n, = Target\n\nb = goal \nn = goal and row_1\n\npixel = pixel_black or pixel_white or pixel_orange or pixel_blue\n\nplayer = p1 or p2 or p3 or p4 or p5\n\nq = pixel_black and p1\nw = pixel_orange and p2\ne = pixel_white and p3\nr = pixel_blue and p4\n; = pixel_blue and p5\n\nrow = row_1 or row_2 or row_3 or row_4 or row_5\nwall = wall_black or wall_orange or wall_white or wall_blue\nobstacle = wall\n\nm = m_up or m_down or m_left or m_right\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nWall\npixel\nPlayer\nrow\ngoal\ndead\nquasigrenze\noldplayer\nnewplayer\ndomove\ndontmove\ntemp\nm\ngoal_u\ngoal_d\ngoal_l\ngoal_r\np, o, i, u, y, t\n\n======\nRULES\n======\n\n\nup [ goal | no goal ] -> [ goal goal_u | ]\ndown [ goal | no goal ] -> [ goal goal_d | ]\nleft [ goal | no goal ] -> [ goal goal_l | ]\nright [ goal | no goal ] -> [ goal goal_r | ]\n\n[dead]->cancel\n\n[ > player pixel ] -> [ > player > pixel ]\n\n[ > player | > player | > player | > player | > player ] -> [ oldplayer > player | > player | > player | > player | > player ] \n\n[ > player | > player | > player | > player | > player | ] -> [ > player | > player | > player | > player | > player | newplayer] \n\n[ moving player ] -> [ player ]\n\n[ > pixel | no wall ] -> [ stationary pixel | ]\n[ > pixel | stationary pixel ] -> [ stationary pixel | pixel ]\n\n\n\n\nlate [ oldplayer pixel ] [ newplayer pixel ] -> cancel\n\n\nlate [ oldplayer pixel ] [ newplayer ]-> [ oldplayer pixel ] [ ]\n\n\nlate [ player | newplayer no player ] -> [ | player newplayer]\nlate [ player | no player | ... | newplayer ] -> [ | player | ... | newplayer ]\n\nlate [ oldplayer ] -> [ ]\nlate [ newplayer ] -> [ ]\n\nlate [ temp ] -> [ ]\nlate [ domove ] -> [ ]\nlate [wall]->[]\n\nlate right [ pixel_black 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_black 1 | 1 | 1 | 1 | 1 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_black 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_black 1 | 1 | 1 | 1 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_black 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_black 1 | 1 | 1 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_black 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_black 1 | 1 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_black 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_black 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_1 ]\nlate right [ pixel_black 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_black 2 | 2 | 2 | 2 | 2 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_black 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_black 2 | 2 | 2 | 2 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_black 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_black 2 | 2 | 2 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_black 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_black 2 | 2 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_black 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_black 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_2 ]\nlate right [ pixel_black 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_black 3 | 3 | 3 | 3 | 3 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_black 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_black 3 | 3 | 3 | 3 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_black 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_black 3 | 3 | 3 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_black 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_black 3 | 3 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_black 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_black 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_3 ]\nlate right [ pixel_black 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_black 4 | 4 | 4 | 4 | 4 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_black 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_black 4 | 4 | 4 | 4 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_black 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_black 4 | 4 | 4 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_black 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_black 4 | 4 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_black 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_black 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_4 ]\nlate right [ pixel_black 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_black 5 | 5 | 5 | 5 | 5 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_black 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_black 5 | 5 | 5 | 5 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_black 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_black 5 | 5 | 5 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_black 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_black 5 | 5 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_black 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_black 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_5 ]\n\n\nlate [pixel no wall]->[pixel dead]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nall pixel on goal\n\n=======\nLEVELS\n=======\n\n\nMessage Level 1 of 1\n\n(11112222233333444445555)\n........................a\n........................a\n........................a\n........................a\n........................a\n..........1qqq1.........s\n..........2www2.........s\n..........eeeee.........s\n..........4rrr4.........s\n..........5;5;5.........s\n........................d\n........................d\n........................d\n........................d\n........................d\n........................f\n..........bbbb..........f\n..........bbbb..........f\n..........bbbb..........f\n..........bbbb..........f\n........................g\n........................g\n........................g\n........................g\n........................g\n(11112222233333444445555)\n\n\ntttttttt\ntttttttt\ntttttttt\ntttttttt\nttuuuttt\nttpppttt\n\n\nttttttttttttt\nttttttttttttt\ntttttttuuuttt\ntttttttpppttt\nttttttooooott\ntttttttiipttt\ntttttttitittt\ntiiiiippppptt\ntiiiiippppptt\ntiiiiippppptt\ntiiiiippppptt\ntiiiiippppptt\n\ntttttttttttttttttttttttttti\nttttttttttttttttttttttttttp\ntttttttttttoooootuuuttttttp\ntttttttttttoooootpppttttttp\ntttttttttttooooooooootttttp\ntttttttttttoooootiipttttttp\ntttttttttttoooootitittttttp\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiiiiiiip\ntuuuuupppppoooooiiiiiiiiiip\ntuuuuupppppoooooiiiiiiiiiip\ntuuuuupppppoooooiiiiiiiiiip\ntuuuuupppppoooooiiiiiiiiiip\ntttttttttttooooottttttttttp\ntttttttttttooooottttttttttp\ntttttttttttooooottttttttttp\ntttttttttttooooottttttttttp\ntttttttttttooooottttttttttp\nooooooooooooooooooooooooooo\n\n\n\n", [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 0, 3, 0, 0, 0, 0, 3, 3, 0, 1, 2, 1, 0, 0, 3, 0, 1, 1], "background wall_black:0,0,0,0,0,background wall_orange:1,1,1,1,1,background wall_white:2,2,2,2,2,background wall_blue:3,3,3,3,3,2,2,2,2,2,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,2,2,2,2,2,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,2,2,2,2,2,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,2,2,2,2,2,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,background p1 pixel_black wall_blue:4,background p2 pixel_orange wall_blue:5,background p3 pixel_white wall_blue:6,background p4 pixel_blue wall_blue:7,background p5 pixel_white wall_blue:8,2,2,2,2,2,\nbackground:9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,background p1 wall_white:10,background p2 pixel_black wall_white:11,background p3 pixel_orange wall_white:12,background p4 pixel_white wall_white:13,background p5 pixel_blue wall_white:14,3,3,3,3,3,\n9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,background p1 pixel_black wall_white:15,background p2 pixel_orange wall_white:16,background p3 pixel_white wall_white:17,background p4 pixel_blue wall_white:18,14,3,3,3,3,3,\n9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,10,background p2 wall_white:19,background p3 wall_white:20,background p4 wall_white:21,14,3,3,3,3,3,\n9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,10,19,20,21,background p5 pixel_white wall_white:22,3,3,3,3,3,\n9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,background goal goal_l goal_u wall_blue:23,background goal goal_l wall_blue:24,24,background goal goal_d goal_l wall_blue:25,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,background goal goal_u wall_blue:26,background goal wall_blue:27,27,background goal goal_d wall_blue:28,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,26,27,27,28,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,background goal goal_r goal_u wall_blue:29,background goal goal_r wall_blue:30,30,background goal goal_d goal_r wall_blue:31,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,2,2,2,2,2,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,2,2,2,2,2,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,2,2,2,2,2,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,2,2,2,2,2,\nbackground row_1:32,32,32,32,32,background row_2:33,33,33,33,33,background row_3:34,34,34,34,34,background row_4:35,35,35,35,35,background row_5 wall_white:36,36,36,36,36,\n", 1, "1627891767692.0078"] ], [ - "A cliche for bedtime", - ["title A cliche for bedtime\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nbackground_color darkblue\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\n\nTarget\npink\n.....\n.....\n..0..\n.....\n.....\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\ngray\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nCrate\n#ff00ff\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n.................\n.@.*.o@o.@*@.@@@.\n.@.*.@.@.o*o.@...\n.@**.@*@.o*o.@@@.\n.@.*.@.@.o*o.@...\n.@o@.@o@..@..@@@.\np................\n\n\n\n\n\n",[0,0,3,3,3,0,1,0,0,0,3,3,0,3,3,3,2,2,1,0,3,3,3,3],"background:0,0,0,0,0,0,0,0,background target:1,background crate target:2,2,1,2,0,0,background crate:3,3,\n3,3,1,0,3,0,0,3,3,2,0,0,0,0,0,0,0,\n0,0,1,2,2,2,2,0,0,1,0,3,0,1,0,0,background player target:4,\n2,2,2,2,0,0,3,0,0,0,0,0,0,2,1,1,1,\n0,0,0,3,3,3,3,2,0,0,2,1,1,1,0,0,0,\n0,0,0,0,0,0,0,2,2,2,2,2,0,0,2,0,2,\n0,2,0,0,2,0,2,0,2,0,0,0,0,0,0,0,0,\n",1,"1627891782371.159"] + "A cliche for bedtime", + ["title A cliche for bedtime\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nbackground_color darkblue\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\n\nTarget\npink\n.....\n.....\n..0..\n.....\n.....\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\ngray\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nCrate\n#ff00ff\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n.................\n.@.*.o@o.@*@.@@@.\n.@.*.@.@.o*o.@...\n.@**.@*@.o*o.@@@.\n.@.*.@.@.o*o.@...\n.@o@.@o@..@..@@@.\np................\n\n\n\n\n\n", [0, 0, 3, 3, 3, 0, 1, 0, 0, 0, 3, 3, 0, 3, 3, 3, 2, 2, 1, 0, 3, 3, 3, 3], "background:0,0,0,0,0,0,0,0,background target:1,background crate target:2,2,1,2,0,0,background crate:3,3,\n3,3,1,0,3,0,0,3,3,2,0,0,0,0,0,0,0,\n0,0,1,2,2,2,2,0,0,1,0,3,0,1,0,0,background player target:4,\n2,2,2,2,0,0,3,0,0,0,0,0,0,2,1,1,1,\n0,0,0,3,3,3,3,2,0,0,2,1,1,1,0,0,0,\n0,0,0,0,0,0,0,2,2,2,2,2,0,0,2,0,2,\n0,2,0,0,2,0,2,0,2,0,0,0,0,0,0,0,0,\n", 1, "1627891782371.159"] ], [ - "no heroes necessary", - ["title no heroes necessary\nauthor Stephen Lavelle\nhomepage www.increpare.com\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\nblack\n\nPlayer\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n, = wall\n# = 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[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate | crate ] -> [ > crate | > crate ]\n\n[ > player | wall ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 5\n\n,,,,,,,,,,,,,,,,,,,,\n,..................,\n,..................,\n,..................,\n,..................,\n,......####........,\n,......#.O#........,\n,......#..###......,\n,......#@...#......,\n,......#..*.#......,\n,......#..###......,\n,......####........,\n,..................,\n,..................,\n,..................,\n,..................,\n,,,,,,,,,,,,,,,,,,,,\n\nmessage Level 2 von 5\n\n,,,,,,,,,,,,,,,,,,,,,,,,\n,......................,\n,......................,\n,......................,\n,......................,\n,......................,\n,.....######.#####.....,\n,.....#....###...#.....,\n,.....#.**.....#.#.....,\n,.....#.*.#ooo...#.....,\n,.....#...########.....,\n,.....#####............,\n,......................,\n,......................,\n,......................,\n,......................,\n,......................,\n,,,,,,,,,,,,,,,,,,,,,,,,\n\nmessage Level 3 von 5\n\n,,,,,,,,,,,,,,,,,,,,\n,..................,\n,..................,\n,..................,\n,..................,\n,..................,\n,....#########.....,\n,....#.....#.#.....,\n,....#.#*..#.#.....,\n,....#.**....#.....,\n,....#.......#.....,\n,....#.O.O.O.#.....,\n,....#.......#.....,\n,....#########.....,\n,..................,\n,..................,\n,..................,\n,..................,\n,..................,\n,,,,,,,,,,,,,,,,,,,,\n\nmessage Level 4 von 5\n\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,............#####..........,\n,............#o..#..........,\n,............#o#.#..........,\n,......#######o#.#..........,\n,......#.*.*.*...#..........,\n,......#.#.#.#.###..........,\n,......#.......#............,\n,......#########............,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n\n\n\nmessage Level 5 von 5\n\n\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,.......#############.......,\n,.......#...#...#...#.......,\n,.......#...#***#...#.......,\n,.......#...#...#...#.......,\n,.......##.###.###.##.......,\n,.......#...#...#...#.......,\n,.......#.o...o...o.#.......,\n,.......#...#...#...#.......,\n,.......#############.......,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n\nmessage You really are strong, independent levels - you don't need a hero to solve your problems for you.\n\n",[0,0,1,1,1,1,2,2,3,3,3,3,3,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,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,background player:2,\n2,2,2,2,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,2,1,1,background crate:3,2,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,1,1,1,1,1,\n1,1,0,0,1,1,1,1,1,1,1,1,1,2,1,1,3,2,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,2,1,2,1,2,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,\n1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,2,2,2,background player target:4,background target:5,\n4,1,2,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,\n1,1,1,1,1,1,0,0,1,1,1,1,1,1,2,1,2,2,1,2,2,2,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,2,1,1,1,3,2,1,1,1,1,1,1,1,1,1,1,0,0,1,1,\n1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,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",7,"1627891794816.7026"] + "no heroes necessary", + ["title no heroes necessary\nauthor Stephen Lavelle\nhomepage www.increpare.com\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\nblack\n\nPlayer\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n, = wall\n# = 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[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate | crate ] -> [ > crate | > crate ]\n\n[ > player | wall ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 5\n\n,,,,,,,,,,,,,,,,,,,,\n,..................,\n,..................,\n,..................,\n,..................,\n,......####........,\n,......#.O#........,\n,......#..###......,\n,......#@...#......,\n,......#..*.#......,\n,......#..###......,\n,......####........,\n,..................,\n,..................,\n,..................,\n,..................,\n,,,,,,,,,,,,,,,,,,,,\n\nmessage Level 2 von 5\n\n,,,,,,,,,,,,,,,,,,,,,,,,\n,......................,\n,......................,\n,......................,\n,......................,\n,......................,\n,.....######.#####.....,\n,.....#....###...#.....,\n,.....#.**.....#.#.....,\n,.....#.*.#ooo...#.....,\n,.....#...########.....,\n,.....#####............,\n,......................,\n,......................,\n,......................,\n,......................,\n,......................,\n,,,,,,,,,,,,,,,,,,,,,,,,\n\nmessage Level 3 von 5\n\n,,,,,,,,,,,,,,,,,,,,\n,..................,\n,..................,\n,..................,\n,..................,\n,..................,\n,....#########.....,\n,....#.....#.#.....,\n,....#.#*..#.#.....,\n,....#.**....#.....,\n,....#.......#.....,\n,....#.O.O.O.#.....,\n,....#.......#.....,\n,....#########.....,\n,..................,\n,..................,\n,..................,\n,..................,\n,..................,\n,,,,,,,,,,,,,,,,,,,,\n\nmessage Level 4 von 5\n\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,............#####..........,\n,............#o..#..........,\n,............#o#.#..........,\n,......#######o#.#..........,\n,......#.*.*.*...#..........,\n,......#.#.#.#.###..........,\n,......#.......#............,\n,......#########............,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n\n\n\nmessage Level 5 von 5\n\n\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,.......#############.......,\n,.......#...#...#...#.......,\n,.......#...#***#...#.......,\n,.......#...#...#...#.......,\n,.......##.###.###.##.......,\n,.......#...#...#...#.......,\n,.......#.o...o...o.#.......,\n,.......#...#...#...#.......,\n,.......#############.......,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n\nmessage You really are strong, independent levels - you don't need a hero to solve your problems for you.\n\n", [0, 0, 1, 1, 1, 1, 2, 2, 3, 3, 3, 3, 3, 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,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,background player:2,\n2,2,2,2,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,2,1,1,background crate:3,2,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,1,1,1,1,1,\n1,1,0,0,1,1,1,1,1,1,1,1,1,2,1,1,3,2,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,2,1,2,1,2,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,\n1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,2,2,2,background player target:4,background target:5,\n4,1,2,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,\n1,1,1,1,1,1,0,0,1,1,1,1,1,1,2,1,2,2,1,2,2,2,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,2,1,1,1,3,2,1,1,1,1,1,1,1,1,1,1,0,0,1,1,\n1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,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", 7, "1627891794816.7026"] ], [ - "Sokogoban", - ["title Sokogoban\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nbackground_color DARKGREEN\ntext_color yellow\n\n========\nOBJECTS\n========\n\nBackground\nlightbrown DARKBROWN\n00000\n00000\n00100\n00000\n00000\n\nbg_up\nDARKBROWN\n..0..\n..0..\n.....\n.....\n.....\nbg_down\nDARKBROWN\n.....\n.....\n.....\n..0..\n..0..\n\nbg_left\nDARKBROWN\n.....\n.....\n00...\n.....\n.....\n\nbg_right\nDARKBROWN\n.....\n.....\n...00\n.....\n.....\n\n\nowall\nbrown lightbrown\n00000\n00000\n00000\n00000\n00000\n\nawall\nlightbrown\n\n\n\nPlayer\nBlack yellow lightgreen green blue\n.004.\n.111.\n12221\n13331\n.222.\n\nwhite\nwhite TRANSPARENT TRANSPARENT\n.....\n.000.\n00000\n10001\n.121.\n\nblack\nblack TRANSPARENT TRANSPARENT\n.....\n.000.\n00000\n10001\n.121.\n\nlid_white_0 \ndarkbrown black\n.....\n.000.\n00000\n.000.\n.....\n\nlid_white_1 \ndarkbrown black\n.....\n.000.\n01000\n.000.\n.....\n\nlid_white_2\ndarkbrown black\n.....\n.000.\n01010\n.000.\n.....\n\nlid_white_3\ndarkbrown black\n.....\n.000.\n01110\n.000.\n.....\n\n\nlid_white_4\ndarkbrown black\n.....\n.010.\n01110\n.000.\n.....\n\n\nlid_black_0\ndarkbrown white\n.....\n.000.\n00000\n.000.\n.....\n\n\nlid_black_1\ndarkbrown white\n.....\n.000.\n01000\n.000.\n.....\n\n\nlid_black_2\ndarkbrown white\n.....\n.000.\n01010\n.000.\n.....\n\n\nlid_black_3\ndarkbrown white\n.....\n.000.\n01110\n.000.\n.....\n\n\nlid_black_4\ndarkbrown white\n.....\n.010.\n01110\n.000.\n.....\n\nbowl_white \ndarkbrown white\n.....\n.000.\n01110\n00000\n.000.\n\nbowl_black \ndarkbrown black\n.....\n.000.\n01110\n00000\n.000.\n\nfill_whitesave\nTRANSPARENT\n\nfill_blacksave\nTRANSPARENT\n\n\nb_4\nblack\n...0.\n..00.\n.0.0.\n00000\n...0.\n\n\nb_3\nblack\n.000.\n...0.\n.000.\n...0.\n.000.\n\n\n\nb_2\nblack\n.000.\n...0.\n.000.\n.0...\n.000.\n\n\nb_1\nblack\n..0..\n.00..\n..0..\n..0..\n.000.\n\n\nb_0\nblack\n.000.\n.0.0.\n.0.0.\n.0.0.\n.000.\n\n\nw_4\nblack\n...0.\n..00.\n.0.0.\n00000\n...0.\n\n\nw_3\nblack\n.000.\n...0.\n.000.\n...0.\n.000.\n\n\n\nw_2\nblack\n.000.\n...0.\n.000.\n.0...\n.000.\n\n\nw_1\nblack\n..0..\n.00..\n..0..\n..0..\n.000.\n\n\nw_0\nblack\n.000.\n.0.0.\n.0.0.\n.0.0.\n.000.\n\n=======\nLEGEND\n=======\n\n. = Background\n# = aWall\nP = Player\n* = white\n@ = black\n, = owall\n\nv = bowl_white and owall\nb = bowl_black and owall\n\nn = lid_white_0 and owall\nm = lid_black_0 and owall\n\n\nj = lid_white_1 and owall\nk = lid_black_1 and owall\n\n\nu = lid_white_2 and owall\ni = lid_black_2 and owall\n\n\n7 = lid_white_3 and owall\n8 = lid_black_3 and owall\n\n\n\n9 = lid_white_4 and owall\n0 = lid_black_4 and owall\n\nbgs = bg_up or bg_down or bg_left or bg_right\nwall = awall or owall\nstone = white or black\n\nfill = fill_whitesave or fill_blacksave\n\nlid_white = lid_white_0 or lid_white_1 or lid_white_2 or lid_white_3 or lid_white_4 \nlid_black = lid_black_0 or lid_black_1 or lid_black_2 or lid_black_3 or lid_black_4\n\nw_nums = w_0 or w_1 or w_2 or w_3 or w_4\nb_nums = b_0 or b_1 or b_2 or b_3 or b_4\n\nnums = b_nums or w_nums\n\n=======\nSOUNDS\n=======\n\nstone MOVE 36772507\nblack destroy 87391700\nwhite destroy 59027500\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbg_up\nbg_down\nbg_left\nbg_right\nPlayer, Wall, stone\nbowl_white,bowl_black, lid_white,lid_black\nfill_whitesave\nfill_blacksave\nnums\n\n======\nRULES\n======\n\n[bgs]->[]\n\ndown [ no wall | no wall ] -> [ bg_down | bg_up ]\nright [ no wall | no wall ] -> [ bg_right | bg_left ]\n\n[ > Player | stone ] -> [ > Player | > stone ]\n\nlate [ no stone no wall ] -> [ fill_whitesave fill_blacksave ]\n\nlate [ fill_whitesave | no black no wall ] -> [ fill_whitesave | fill_whitesave ]\n\nlate [ fill_blacksave | no white no wall ] -> [ fill_blacksave | fill_blacksave ]\n\nlate [ black no fill_blacksave ] [ lid_white_3 ] -> [ ] [ lid_white_4 ] win\n\nlate [ black no fill_blacksave ] [ lid_white_2 ] -> [ ] [ lid_white_3 ] \n+ late [ black no fill_blacksave ] [ lid_white_1 ] -> [ ] [ lid_white_2 ]\n+ late [ black no fill_blacksave ] [ lid_white_0 ] -> [ ] [ lid_white_1 ]\n\nlate [ black no fill_blacksave ] -> [ ]\n\n\nlate [ white no fill_whitesave ] [ lid_black_3 ] -> [ ] [ lid_black_4 ] \nlate [ white no fill_whitesave ] [ lid_black_2 ] -> [ ] [ lid_black_3 ] \n+ late [ white no fill_whitesave ] [ lid_black_1 ] -> [ ] [ lid_black_2 ]\n+ late [ white no fill_whitesave ] [ lid_black_0 ] -> [ ] [ lid_black_1 ]\n\nlate [ white no fill_whitesave ] -> [ ]\n\n\nlate [ fill ] -> []\n\n\nlate [ lid_black_4 ] [ lid_white_4 ] [ player ] -> [ lid_black_4 ] [ lid_white_4 ] [ ] message It's a draw!\nlate [ lid_black_4 ] [ player ] -> [ lid_black_3 ] [ ] message Oh no you lost :(\n\nlate [nums] -> []\nlate up [lid_white_0|] -> [lid_white_0|w_4]\nlate up [lid_white_1|] -> [lid_white_1|w_3]\nlate up [lid_white_2|] -> [lid_white_2|w_2]\nlate up [lid_white_3|] -> [lid_white_3|w_1]\nlate up [lid_white_4|] -> [lid_white_4|w_0]\n\n(\nlate down [lid_black_0|] -> [lid_black_0|b_4]\nlate down [lid_black_1|] -> [lid_black_1|b_3]\nlate down [lid_black_2|] -> [lid_black_2|b_2]\nlate down [lid_black_3|] -> [lid_black_3|b_1]\nlate down [lid_black_4|] -> [lid_black_4|b_0]\n)\n==============\nWINCONDITIONS\n==============\n\nno black\n\n=======\nLEVELS\n=======\n\nmessage Surround enemy stones with yours to capture them. \n\nmessage Level 1 of 3 : Capture one final black tile to win!\n\nb,,,,,\ni....,\n,.,p.,\n,.@*.,\n,..*.,\n,....7\n,,,,,v\n\nmessage Level 2 of 3 : Capture three black tiles to win!\n\nb,,,,,,,,\nk,.....,,\n,@.@@@.@,\n,@.....@,\n,@.***.@,\n,@..p..@j\n,,,,,,,,v\n\nmessage Level 3 of 3 : Capture four black tiles\n\nb,,,,,,,,\nm.......,\n,.......,\n,..*@@.*,\n,.*@*...,\n,..@....,\n,.....p.,\n,.......n\n,,,,,,,,v\n\n\nmessage You are a true Sokogoban master!\n",[0,0,2,1,3,0,1,0,1,1,1,0,3,0,3,3,2,1,2,2,0,0,3,3,2,2,3,3,2,2,2,1,1,1,0],"background bowl_black owall:0,background lid_black_1 owall:1,background owall:2,2,2,2,2,2,2,\nbackground bg_down bg_right black:3,background bg_down bg_right bg_up black:4,4,background bg_right bg_up black:5,2,2,background bg_down bg_right:6,background bg_down bg_left bg_right bg_up:7,7,\nbackground bg_down bg_left bg_right bg_up white:8,background bg_left bg_right bg_up:9,2,2,background bg_down bg_left bg_right:10,7,background bg_down bg_left bg_right bg_up black:11,background bg_down bg_left bg_right bg_up player:12,9,\n2,2,10,11,8,7,9,2,2,\n10,7,11,8,9,2,2,background bg_down bg_left:13,7,\n7,7,9,2,2,2,background bg_down bg_left black:14,background bg_down bg_left bg_up black:15,15,\nbackground bg_left bg_up black:16,2,2,2,2,2,background owall w_3:17,background lid_white_1 owall:18,background bowl_white owall:19,\n",4,"1627891805914.7593"] + "Sokogoban", + ["title Sokogoban\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nbackground_color DARKGREEN\ntext_color yellow\n\n========\nOBJECTS\n========\n\nBackground\nlightbrown DARKBROWN\n00000\n00000\n00100\n00000\n00000\n\nbg_up\nDARKBROWN\n..0..\n..0..\n.....\n.....\n.....\nbg_down\nDARKBROWN\n.....\n.....\n.....\n..0..\n..0..\n\nbg_left\nDARKBROWN\n.....\n.....\n00...\n.....\n.....\n\nbg_right\nDARKBROWN\n.....\n.....\n...00\n.....\n.....\n\n\nowall\nbrown lightbrown\n00000\n00000\n00000\n00000\n00000\n\nawall\nlightbrown\n\n\n\nPlayer\nBlack yellow lightgreen green blue\n.004.\n.111.\n12221\n13331\n.222.\n\nwhite\nwhite TRANSPARENT TRANSPARENT\n.....\n.000.\n00000\n10001\n.121.\n\nblack\nblack TRANSPARENT TRANSPARENT\n.....\n.000.\n00000\n10001\n.121.\n\nlid_white_0 \ndarkbrown black\n.....\n.000.\n00000\n.000.\n.....\n\nlid_white_1 \ndarkbrown black\n.....\n.000.\n01000\n.000.\n.....\n\nlid_white_2\ndarkbrown black\n.....\n.000.\n01010\n.000.\n.....\n\nlid_white_3\ndarkbrown black\n.....\n.000.\n01110\n.000.\n.....\n\n\nlid_white_4\ndarkbrown black\n.....\n.010.\n01110\n.000.\n.....\n\n\nlid_black_0\ndarkbrown white\n.....\n.000.\n00000\n.000.\n.....\n\n\nlid_black_1\ndarkbrown white\n.....\n.000.\n01000\n.000.\n.....\n\n\nlid_black_2\ndarkbrown white\n.....\n.000.\n01010\n.000.\n.....\n\n\nlid_black_3\ndarkbrown white\n.....\n.000.\n01110\n.000.\n.....\n\n\nlid_black_4\ndarkbrown white\n.....\n.010.\n01110\n.000.\n.....\n\nbowl_white \ndarkbrown white\n.....\n.000.\n01110\n00000\n.000.\n\nbowl_black \ndarkbrown black\n.....\n.000.\n01110\n00000\n.000.\n\nfill_whitesave\nTRANSPARENT\n\nfill_blacksave\nTRANSPARENT\n\n\nb_4\nblack\n...0.\n..00.\n.0.0.\n00000\n...0.\n\n\nb_3\nblack\n.000.\n...0.\n.000.\n...0.\n.000.\n\n\n\nb_2\nblack\n.000.\n...0.\n.000.\n.0...\n.000.\n\n\nb_1\nblack\n..0..\n.00..\n..0..\n..0..\n.000.\n\n\nb_0\nblack\n.000.\n.0.0.\n.0.0.\n.0.0.\n.000.\n\n\nw_4\nblack\n...0.\n..00.\n.0.0.\n00000\n...0.\n\n\nw_3\nblack\n.000.\n...0.\n.000.\n...0.\n.000.\n\n\n\nw_2\nblack\n.000.\n...0.\n.000.\n.0...\n.000.\n\n\nw_1\nblack\n..0..\n.00..\n..0..\n..0..\n.000.\n\n\nw_0\nblack\n.000.\n.0.0.\n.0.0.\n.0.0.\n.000.\n\n=======\nLEGEND\n=======\n\n. = Background\n# = aWall\nP = Player\n* = white\n@ = black\n, = owall\n\nv = bowl_white and owall\nb = bowl_black and owall\n\nn = lid_white_0 and owall\nm = lid_black_0 and owall\n\n\nj = lid_white_1 and owall\nk = lid_black_1 and owall\n\n\nu = lid_white_2 and owall\ni = lid_black_2 and owall\n\n\n7 = lid_white_3 and owall\n8 = lid_black_3 and owall\n\n\n\n9 = lid_white_4 and owall\n0 = lid_black_4 and owall\n\nbgs = bg_up or bg_down or bg_left or bg_right\nwall = awall or owall\nstone = white or black\n\nfill = fill_whitesave or fill_blacksave\n\nlid_white = lid_white_0 or lid_white_1 or lid_white_2 or lid_white_3 or lid_white_4 \nlid_black = lid_black_0 or lid_black_1 or lid_black_2 or lid_black_3 or lid_black_4\n\nw_nums = w_0 or w_1 or w_2 or w_3 or w_4\nb_nums = b_0 or b_1 or b_2 or b_3 or b_4\n\nnums = b_nums or w_nums\n\n=======\nSOUNDS\n=======\n\nstone MOVE 36772507\nblack destroy 87391700\nwhite destroy 59027500\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbg_up\nbg_down\nbg_left\nbg_right\nPlayer, Wall, stone\nbowl_white,bowl_black, lid_white,lid_black\nfill_whitesave\nfill_blacksave\nnums\n\n======\nRULES\n======\n\n[bgs]->[]\n\ndown [ no wall | no wall ] -> [ bg_down | bg_up ]\nright [ no wall | no wall ] -> [ bg_right | bg_left ]\n\n[ > Player | stone ] -> [ > Player | > stone ]\n\nlate [ no stone no wall ] -> [ fill_whitesave fill_blacksave ]\n\nlate [ fill_whitesave | no black no wall ] -> [ fill_whitesave | fill_whitesave ]\n\nlate [ fill_blacksave | no white no wall ] -> [ fill_blacksave | fill_blacksave ]\n\nlate [ black no fill_blacksave ] [ lid_white_3 ] -> [ ] [ lid_white_4 ] win\n\nlate [ black no fill_blacksave ] [ lid_white_2 ] -> [ ] [ lid_white_3 ] \n+ late [ black no fill_blacksave ] [ lid_white_1 ] -> [ ] [ lid_white_2 ]\n+ late [ black no fill_blacksave ] [ lid_white_0 ] -> [ ] [ lid_white_1 ]\n\nlate [ black no fill_blacksave ] -> [ ]\n\n\nlate [ white no fill_whitesave ] [ lid_black_3 ] -> [ ] [ lid_black_4 ] \nlate [ white no fill_whitesave ] [ lid_black_2 ] -> [ ] [ lid_black_3 ] \n+ late [ white no fill_whitesave ] [ lid_black_1 ] -> [ ] [ lid_black_2 ]\n+ late [ white no fill_whitesave ] [ lid_black_0 ] -> [ ] [ lid_black_1 ]\n\nlate [ white no fill_whitesave ] -> [ ]\n\n\nlate [ fill ] -> []\n\n\nlate [ lid_black_4 ] [ lid_white_4 ] [ player ] -> [ lid_black_4 ] [ lid_white_4 ] [ ] message It's a draw!\nlate [ lid_black_4 ] [ player ] -> [ lid_black_3 ] [ ] message Oh no you lost :(\n\nlate [nums] -> []\nlate up [lid_white_0|] -> [lid_white_0|w_4]\nlate up [lid_white_1|] -> [lid_white_1|w_3]\nlate up [lid_white_2|] -> [lid_white_2|w_2]\nlate up [lid_white_3|] -> [lid_white_3|w_1]\nlate up [lid_white_4|] -> [lid_white_4|w_0]\n\n(\nlate down [lid_black_0|] -> [lid_black_0|b_4]\nlate down [lid_black_1|] -> [lid_black_1|b_3]\nlate down [lid_black_2|] -> [lid_black_2|b_2]\nlate down [lid_black_3|] -> [lid_black_3|b_1]\nlate down [lid_black_4|] -> [lid_black_4|b_0]\n)\n==============\nWINCONDITIONS\n==============\n\nno black\n\n=======\nLEVELS\n=======\n\nmessage Surround enemy stones with yours to capture them. \n\nmessage Level 1 of 3 : Capture one final black tile to win!\n\nb,,,,,\ni....,\n,.,p.,\n,.@*.,\n,..*.,\n,....7\n,,,,,v\n\nmessage Level 2 of 3 : Capture three black tiles to win!\n\nb,,,,,,,,\nk,.....,,\n,@.@@@.@,\n,@.....@,\n,@.***.@,\n,@..p..@j\n,,,,,,,,v\n\nmessage Level 3 of 3 : Capture four black tiles\n\nb,,,,,,,,\nm.......,\n,.......,\n,..*@@.*,\n,.*@*...,\n,..@....,\n,.....p.,\n,.......n\n,,,,,,,,v\n\n\nmessage You are a true Sokogoban master!\n", [0, 0, 2, 1, 3, 0, 1, 0, 1, 1, 1, 0, 3, 0, 3, 3, 2, 1, 2, 2, 0, 0, 3, 3, 2, 2, 3, 3, 2, 2, 2, 1, 1, 1, 0], "background bowl_black owall:0,background lid_black_1 owall:1,background owall:2,2,2,2,2,2,2,\nbackground bg_down bg_right black:3,background bg_down bg_right bg_up black:4,4,background bg_right bg_up black:5,2,2,background bg_down bg_right:6,background bg_down bg_left bg_right bg_up:7,7,\nbackground bg_down bg_left bg_right bg_up white:8,background bg_left bg_right bg_up:9,2,2,background bg_down bg_left bg_right:10,7,background bg_down bg_left bg_right bg_up black:11,background bg_down bg_left bg_right bg_up player:12,9,\n2,2,10,11,8,7,9,2,2,\n10,7,11,8,9,2,2,background bg_down bg_left:13,7,\n7,7,9,2,2,2,background bg_down bg_left black:14,background bg_down bg_left bg_up black:15,15,\nbackground bg_left bg_up black:16,2,2,2,2,2,background owall w_3:17,background lid_white_1 owall:18,background bowl_white owall:19,\n", 4, "1627891805914.7593"] ], [ - "SHY SNAKE", - ["title SHY SNAKE\nauthor Daniel Freer and increpare\nhomepage www.puzzlescript.net\nnorepeat_action\nrun_rules_on_level_start\n\nbackground_color #524c67 \ntext_color #8fff70\n\n\nnoaction\n\n========\nOBJECTS\n========\n\n\n\nSprite_R_LB\n#5b6e6d #ddff7d #8fff70 #73ce86 #383d41 \n.0000\n02222\n23043\n33443\n33333\n\nSprite_R_LF\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n.....\n000..\n1110.\n22234\n22234\n\nSprite_L_RF\n#5b6e6d #8fff70 #ddff7d #73ce86 \n.....\n..000\n.0111\n01333\n01333\n\nSprite_L_RB\n#5b6e6d #8fff70 #73ce86 #383d41 #689887 \n0000.\n11110\n20324\n23322\n22222\n\nSprite_U_LF\n#5b6e6d #ddff7d #8fff70 #73ce86 \n...00\n..012\n.0233\n.0233\n.0233\n\nSprite_U_RF\n#5b6e6d #8fff70 #73ce86 #383d41 #689887 \n00...\n123..\n2243.\n2243.\n2243.\n\nSprite_R_RB\n#73ce86 #5b6e6d #383d41 #689887 \n00000\n00120\n10220\n23333\n.2222\n\nSprite_R_RF\n#73ce86 #689887 #383d41 #5b6e6d \n00012\n00012\n1112.\n222..\n.....\n\nSprite_D_RB\n#5b6e6d #8fff70 #73ce86 #ddff7d #383d41 \n.0122\n03222\n01042\n01442\n01222\n\nSprite_D_LB\n#73ce86 #689887 #383d41 #5b6e6d \n0012.\n00012\n03212\n02212\n00012\n\nSprite_L_LF\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n01222\n02222\n.4333\n..444\n.....\n\nSprite_L_LB\n#73ce86 #5b6e6d #383d41 #689887 \n00000\n01200\n02201\n33332\n2222.\n\nSprite_U_LB\n#5b6e6d #8fff70 #73ce86 #575d67 #383d41 #689887 \n01222\n01342\n01442\n01222\n.0522\n\nSprite_U_RB\n#73ce86 #689887 #383d41 #575d67 #5b6e6d \n00012\n03212\n02212\n00012\n0042.\n\nSprite_D_RF\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n.0122\n.0122\n.0122\n..023\n...44\n\nSprite_D_LF\n#73ce86 #689887 #383d41 #5b6e6d \n0012.\n0012.\n0012.\n132..\n22...\n\nBODY\nTRANSPARENT\n\nEND_R_R\n#5b6e6d #8fff70 #73ce86 #383d41 \n.....\n.....\n00...\n1100.\n22123\n\nEND_L_L\n#5b6e6d #8fff70 #ddff7d #73ce86 \n.....\n.....\n...00\n.0011\n02133\n\nEND_D_L\n#5b6e6d #8fff70 #73ce86 #383d41 \n..012\n..012\n...01\n...02\n....3\n\nEND_D_R\n#73ce86 #689887 #383d41 #5b6e6d \n012..\n012..\n12...\n32...\n2....\n\n\n\n\nEND_R_L\n#73ce86 #689887 #5b6e6d #383d41 \n00123\n1133.\n33...\n.....\n.....\n\nEND_L_R\n#5b6e6d #73ce86 #689887 #383d41 \n01211\n.3322\n...33\n.....\n.....\n\nEND_U_L\n#5b6e6d #ddff7d #8fff70 #73ce86 \n....0\n...01\n...02\n..023\n..023\n\nEND_U_R\n#5b6e6d #73ce86 #383d41 #689887 \n0....\n12...\n32...\n132..\n132..\n\n\n\n\n\nPlayer\ngreen\n.....\n.....\n..0..\n.....\n.....\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\ntemp\ntransparent\n\n\n\ncon_u\nwhite\n..0..\n..0..\n.....\n.....\n.....\n\ncon_d\nwhite\n.....\n.....\n.....\n..0..\n..0..\n\ncon_l\nwhite\n.....\n.....\n00...\n.....\n.....\n\ncon_r\nwhite\n.....\n.....\n...00\n.....\n.....\n\nend_t\nTRANSPARENT\n\n\nbody_dr\n#5b6e6d #ddff7d #8fff70 #73ce86 \n.....\n...00\n..012\n.0133\n.0233\n\nbody_dlr\n#5b6e6d #8fff70 #73ce86 \n00000\n11111\n22222\n22222\n22222\n\nbody_dl\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n.....\n00...\n110..\n2234.\n2234.\n\nbody_udr\n#5b6e6d #8fff70 #73ce86 \n01222\n01222\n01222\n01222\n01222\n\nbody_ur\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n.0122\n.0122\n..033\n...44\n.....\n\nbody_ulr\n#73ce86 #689887 #383d41 \n00000\n00000\n00000\n11111\n22222\n\nbody_ul\n#73ce86 #689887 #383d41 \n0012.\n0012.\n112..\n22...\n.....\n\n\n\nbody_udl\n#73ce86 #689887 #383d41 \n00012\n00012\n00012\n00012\n00012\n\nbody_udlr\n#73ce86\n\nbody_inner_ul\n#73ce86 #689887 #383d41 \n00000\n00000\n00000\n00001\n00012\n\nbody_inner_ur\n#73ce86 #689887 #383d41 #8fff70 #5b6e6d \n00000\n00000\n00000\n10000\n43000\n\nbody_inner_dl\n#73ce86 #689887 #383d41 #5b6e6d #8fff70 \n00012\n00004\n00000\n00000\n00000\n\nbody_inner_dr\n#5b6e6d #8fff70 #73ce86 \n01222\n12222\n22222\n22222\n22222\n\n\n\n\n\n\n\n\n\nbackground\n#896359 #6b4949 #896359 #6b4949 #b77e63\n01110\n11100\n10110\n11112\n00200\n\n\n\nbackground_light\nLIGHTGRAY\n\nbackground_dark\ngray\n\non_background\nDARKGRAY\n\nbackground_border_up\n#b77e63 #896359 #6b4949 \n01111\n.....\n.....\n.....\n.....\n\n\nbackground_border_left\n#b77e63 #896359 #6b4949 \n0....\n1....\n1....\n1....\n1....\n\nbackground_border_right\n#896359 #6b4949 #b77e63 \n....0\n....0\n....0\n....2\n....0\n\nbackground_border_down\n#b77e63 #6b4949 #896359 \n.....\n.....\n.....\n.....\n22022\n\n\n\n\n\nWall\n#524c67 #524c67 \n00100\n00100\n11111\n00100\n00100\n\n\n\nWall_light\n#868998 #575d67\n00100\n00100\n11111\n00100\n00100\n\n\nwall_border_b\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n00100\n11111\n12222\n13333\n44444\n\nwall_border_r\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n01234\n01234\n11234\n01234\n01114\n\nwall_border_l\n#383d41 #575d67 #868998 #fffee9 #e2e0e8 \n01112\n03412\n03411\n03412\n03412\n\nwall_border_t\n#383d41 #fffee9 #575d67 #e2e0e8 #868998 \n00000\n11112\n33332\n22222\n44244\n\n\nwall_bright_u\ntransparent\n\nwall_bright_d\ntransparent\n\nwall_bright_l\ntransparent\n\nwall_bright_r\ntransparent\n\n\nwall_end_u\ntransparent\n\nwall_end_d\ntransparent\n\nwall_end_l\ntransparent\n\nwall_end_r\ntransparent\n\n\n\nSprite_0_0\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n00100\n01111\n11222\n01233\n01114\n\nSprite_1_0\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n00100\n11111\n12222\n13333\n44444\n\nSprite_2_0\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 #fffee9 \n00100\n11110\n12311\n13310\n45310\n\nSprite_3_0\n#383d41 #fffee9 #575d67 #e2e0e8 #868998 \n00000\n01112\n01332\n01322\n01324\n\nSprite_4_0\n#383d41 #fffee9 #e2e0e8 #bbbbce #575d67 #868998 \n00000\n11120\n22320\n44320\n54440\n\nSprite_5_0\n#524c67 #383d41 \n00100\n00100\n11111\n00100\n00100\n\nSprite_6_0\n#383d41 #fffee9 #e2e0e8 #bbbbce \n00000\n01120\n01320\n01320\n01220\n\nSprite_0_1\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n01234\n01234\n11234\n01234\n01114\n\nSprite_2_1\n#383d41 #575d67 #868998 #fffee9 #e2e0e8 \n01112\n03412\n03411\n03412\n03412\n\nSprite_3_1\n#383d41 #575d67 #868998 #fffee9 #e2e0e8 #bbbbce \n01112\n03411\n03455\n04444\n00000\n\nSprite_4_1\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n01234\n11234\n12234\n13334\n44444\n\nSprite_5_1\n#383d41 #fffee9 #e2e0e8 #bbbbce \n00000\n01120\n01320\n02220\n00000\n\nSprite_6_1\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n01110\n02230\n02430\n02430\n02330\n\nSprite_0_2\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n01234\n01231\n11331\n01111\n00100\n\nSprite_1_2\n#383d41 #fffee9 #575d67 #e2e0e8 #868998 \n00000\n11112\n33332\n22222\n44244\n\nSprite_2_2\n#383d41 #575d67 #868998 #fffee9 #e2e0e8 \n01112\n33412\n44411\n11112\n22122\n\nSprite_3_2\n#383d41 #fffee9 #575d67 #bbbbce #e2e0e8 \n00000\n01112\n01342\n04442\n00000\n\nSprite_4_2\n#383d41 #fffee9 #575d67 #bbbbce #e2e0e8 \n00000\n11112\n13342\n44442\n00000\n\nSprite_5_2\n#383d41 #fffee9 #e2e0e8 #bbbbce \n00000\n11120\n13320\n22220\n00000\n\nSprite_6_2\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n01110\n02230\n02430\n03330\n00000\n\n\nsprite_DL\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n.....\n.....\n44...\n334..\n134..\n\n\nsprite_DR\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n.....\n.....\n...44\n..433\n..431\n\nsprite_UL\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n134..\n334..\n44...\n.....\n.....\n\nsprite_UR\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n..431\n..433\n...44\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\nt = background\n\nobstacle = wall or body or player\n\nend = END_R_R or END_R_L or END_L_L or END_L_R or END_U_L or END_U_R or END_D_L or END_D_R\n\nhead = SPRITE_u_LB or SPRITE_u_LF or SPRITE_u_RB or SPRITE_u_RF or SPRITE_d_LB or SPRITE_d_LF or SPRITE_d_RB or SPRITE_d_RF or SPRITE_l_LB or SPRITE_l_LF or SPRITE_l_RB or SPRITE_l_RF or SPRITE_R_LB or SPRITE_R_LF or SPRITE_R_RB or SPRITE_R_RF \n\nbody_dec = body_ul or body_ur or body_dl or body_dr or body_dlr or body_udr or body_ulr or body_udl or body_udlr\n\nbody_inner = body_inner_ul or body_inner_ur or body_inner_dl or body_inner_dr\n\ncosmetics = head or end or body_dec or body_inner\n\ndir = con_u or con_d or con_l or con_r\ndir_h = con_l or con_r\ndir_v = con_u or con_d\nwall_border = wall_border_b or wall_border_t or wall_border_l or wall_border_r\n\nbackground_border = background_border_up or background_border_down or background_border_left or background_border_right\n\ntile= background_light or background_dark\n\n=======\nSOUNDS\n=======\n\nendlevel 29774302\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbackground_border_up\nbackground_border_left\nbackground_border_right\nbackground_border_down\nbackground_dark,background_light\non_background\nPlayer, Wall, Crate, body\ntemp\ncon_u\ncon_d\ncon_l\ncon_r\nend_t\nbody_dec\nbody_inner\nhead\nend\nwall_light\nwall_border_t\nwall_border_b\nwall_border_l\nwall_border_r\n\nwall_bright_u\nwall_bright_d\nwall_bright_l\nwall_bright_r\n\nwall_end_u\nwall_end_d\nwall_end_l\nwall_end_r\n\nSprite_0_0, sprite_1_0, sprite_2_0, sprite_3_0, sprite_4_0, sprite_5_0, sprite_6_0, Sprite_0_1, Sprite_2_1, Sprite_3_1, Sprite_4_1, Sprite_5_1, Sprite_6_1, Sprite_0_2, Sprite_1_2, Sprite_2_2, Sprite_3_2, Sprite_4_2, Sprite_5_2, Sprite_6_2, sprite_ul, sprite_ur, sprite_dl, sprite_dr\n\n======\nRULES\n======\n\n[wall | no wall] -> [wall Wall_light | ]\n\nup [wall | no wall] -> [wall | background_border_down ]\ndown [wall | no wall] -> [wall | background_border_up ]\nleft [wall | no wall] -> [wall | background_border_right ]\nright [wall | no wall] -> [wall | background_border_left ]\n\nup [ wall | no wall ] -> [wall wall_end_u | ]\ndown [ wall | no wall ] -> [wall wall_end_d | ]\nleft [ wall | no wall ] -> [wall wall_end_l | ]\nright [ wall | no wall ] -> [wall wall_end_r | ]\n\nup [ wall | Wall_light ] -> [ wall wall_bright_u | Wall_light ]\ndown [ wall | Wall_light ] -> [ wall wall_bright_d | Wall_light ]\nleft [ wall | Wall_light ] -> [ wall wall_bright_l | Wall_light ]\nright [ wall | Wall_light ] -> [ wall wall_bright_r | Wall_light ]\n\n[ wall_end_u ] -> [ wall_end_u sprite_1_2 ]\n[ wall_end_d ] -> [ wall_end_d sprite_1_0 ]\n[ wall_end_l ] -> [ wall_end_l sprite_2_1 ]\n[ wall_end_r ] -> [ wall_end_r sprite_0_1 ]\n\n\n[ wall_end_u wall_end_r ] -> [ wall_end_u wall_end_r sprite_4_0 ]\n[ wall_end_u wall_end_d ] -> [ wall_end_u wall_end_d sprite_4_2 ]\n[ wall_end_u wall_end_l ] -> [ wall_end_u wall_end_l sprite_3_0 ]\n\n[ wall_end_r wall_end_d ] -> [ wall_end_r wall_end_d sprite_4_1 ]\n[ wall_end_r wall_end_l ] -> [ wall_end_r wall_end_l sprite_6_1 ]\n\n[ wall_end_d wall_end_l ] -> [ wall_end_d wall_end_l sprite_3_1 ]\n\n\n[ wall_end_d wall_end_l wall_end_r ] -> [ wall_end_d wall_end_l wall_end_r sprite_6_2]\n[ wall_end_u wall_end_l wall_end_r ] -> [ wall_end_u wall_end_l wall_end_r sprite_6_0]\n[ wall_end_u wall_end_d wall_end_r ] -> [ wall_end_u wall_end_d wall_end_r sprite_5_2]\n[ wall_end_u wall_end_d wall_end_l ] -> [ wall_end_u wall_end_d wall_end_l sprite_3_2]\n\n[ no wall_light wall_bright_u wall_bright_r ] -> [ sprite_ur wall_bright_u wall_bright_r ]\n[ no wall_light wall_bright_u wall_bright_l ] -> [ sprite_ul wall_bright_u wall_bright_l ]\n[ no wall_light wall_bright_d wall_bright_r ] -> [ sprite_dr wall_bright_d wall_bright_r ]\n[ no wall_light wall_bright_d wall_bright_l ] -> [ sprite_dl wall_bright_d wall_bright_l ]\n\n\nup [ sprite_ur | no wall_end_r ] -> [ | ]\nright [ sprite_ur | no wall_end_u ] -> [ | ]\n\n\nup [ sprite_ul | no wall_end_l ] -> [ | ]\nleft [ sprite_ul | no wall_end_u ] -> [ | ]\n\ndown [ sprite_dr | no wall_end_r ] -> [ | ]\nright [ sprite_dr | no wall_end_d ] -> [ | ]\n\ndown [ sprite_dl | no wall_end_l ] -> [ | ]\nleft [ sprite_dl | no wall_end_d ] -> [ | ]\n\n\n[ wall_end_u wall_end_d wall_end_l wall_end_r ] -> [ wall_end_u wall_end_d wall_end_l wall_end_r sprite_5_1 ]\n\n[ > player | > player | obstacle ] -> cancel\n\nup [ > player | > player | no obstacle] -> [ body con_u | con_d con_u player | player ]\ndown [ > player | > player | no obstacle] -> [ body con_d | con_u con_d player | player ]\nleft [ > player | > player | no obstacle] -> [ body con_l | con_r con_l player | player ]\nright [ > player | > player | no obstacle] -> [ body con_r | con_l con_r player | player ]\n\n\nlate [temp]->[]\nlate [ no player no wall no obstacle ]->[temp]\n\n\n\nlate right [player | player ] -> [ player con_r | player con_l ]\nlate down [player | player ] -> [ player con_d | player con_u ]\n\n\nlate [ player background con_u con_r no tile] -> [ player background con_u con_r background_light]\nlate [ background_light | no tile ] -> [ background_light | background_dark ]\n+ late [background_dark | no tile ] -> [ background_dark | background_light ]\n\nlate [cosmetics]->[]\n\n\nlate [ body con_u con_l ] -> [ body con_u con_l body_ul ]\nlate [ body con_u con_r ] -> [ body con_u con_r body_ur ]\nlate [ body con_d con_l ] -> [ body con_d con_l body_dl ]\nlate [ body con_d con_r ] -> [ body con_d con_r body_dr ]\n\nlate [ body con_u con_d con_l ] -> [ body con_u con_d con_l body_udl ]\nlate [ body con_u con_d con_r ] -> [ body con_u con_d con_r body_udr ]\nlate [ body con_u con_l con_r ] -> [ body con_u con_l con_r body_ulr ]\nlate [ body con_d con_l con_r ] -> [ body con_d con_l con_r body_dlr ]\n\nlate [ body con_u con_d con_l con_r ] -> [ body con_u con_d con_l con_r body_udlr]\n\n(\nlate [ player con_d con_r ] -> [ player con_d con_r sprite_u_lf ]\nlate [ player con_u con_r ] -> [ player con_u con_r sprite_u_lb ]\nlate [ player con_d con_l ] -> [ player con_d con_l sprite_u_rf ]\nlate [ player con_u con_l ] -> [ player con_u con_l sprite_u_rb ]\n)\n\n\nlate [ player con_d con_r ] -> [ player con_d con_r body_dr ]\nlate [ player con_u con_r ] -> [ player con_u con_r body_ur ]\nlate [ player con_d con_l ] -> [ player con_d con_l body_dl ]\nlate [ player con_u con_l ] -> [ player con_u con_l body_ul ]\n\n\nlate down [ player con_r no con_l | player con_r con_d ] -> [ player con_R no body_dec | player con_r con_d no body_dec]\nlate down [ player con_l no con_r | player con_l con_d ] -> [ player con_l no body_dec | player con_l con_d no body_dec]\n\nlate right [ player con_d no con_u | player con_d con_r ] -> [ player con_d no body_dec | player con_d con_r no body_dec ]\nlate right [ player con_u no con_d | player con_u con_r ] -> [ player con_u no body_dec | player con_u con_r no body_dec ]\n\nlate left [ player con_d no con_u | player con_d con_l ] -> [ player con_d no body_dec | player con_d con_l no body_dec]\nlate left [ player con_u no con_d | player con_u con_l ] -> [ player con_u no body_dec | player con_u con_l no body_dec]\n\nlate up [ player con_l no con_r | player con_l con_u ] -> [ player con_l no body_dec | player con_l con_u no body_dec ]\nlate up [ player con_r no con_l | player con_r con_u ] -> [ player con_r no body_dec | player con_r con_u no body_dec ]\n\n\n\n\n\nlate down [ player con_r no con_l | player con_r con_d ] -> [ player con_R sprite_u_lf | player con_r con_d sprite_u_lb]\nlate down [ player con_l no con_r | player con_l con_d ] -> [ player con_l sprite_u_rf | player con_l con_d sprite_u_rb]\n\nlate right [ player con_d no con_u | player con_d con_r ] -> [ player con_d sprite_l_rf | player con_d con_r sprite_l_rb ]\nlate right [ player con_u no con_d | player con_u con_r ] -> [ player con_u sprite_l_lf | player con_u con_r sprite_l_lb ]\n\nlate left [ player con_d no con_u | player con_d con_l ] -> [ player con_d sprite_r_lf | player con_d con_l sprite_r_lb]\nlate left [ player con_u no con_d | player con_u con_l ] -> [ player con_u sprite_r_rf | player con_u con_l sprite_r_rb]\n\nlate up [ player con_l no con_r | player con_l con_u ] -> [ player con_l sprite_d_lf | player con_l con_u sprite_d_lb ]\nlate up [ player con_r no con_l | player con_r con_u ] -> [ player con_r sprite_d_rf | player con_r con_u sprite_d_rb ]\n\n\nlate right [ no con_d con_r | body_udlr ] -> [ con_r | body_inner_ur ]\nlate left [ no con_d con_l | body_udlr ] -> [ con_l | body_inner_ul ]\n\n\nlate right [ no con_u con_r | body_udlr ] -> [ con_r | body_inner_dr ]\nlate left [ no con_u con_l | body_udlr ] -> [ con_l | body_inner_dl ]\n\n\nlate up [ no con_r con_u | body_udlr ] -> [ con_u | body_inner_ul ]\nlate up [ no con_l con_u | body_udlr ] -> [ con_u | body_inner_ur ]\n\nlate down [ no con_r con_d | body_udlr ] -> [ con_d | body_inner_dl ]\nlate down [ no con_l con_d | body_udlr ] -> [ con_d | body_inner_dr ]\n\n\nlate right [ player con_r con_u con_d con_l ] ->[ player con_r con_u con_d con_l body_udlr ]\n\nlate [ player ] -> [ player on_background]\n\n(\n[ action player ] [ no wall no obstacle ] -> [ action player ] [wall]\n[ action player ] [ body ] -> [action player ] [ ]\n[ action player ]->[player]\n)\n\n==============\nWINCONDITIONS\n==============\nno temp\n\n=======\nLEVELS\n=======\n\n\nmessage 1 of 3 - If you are EVERYWHERE, nobody else can be ANYWHERE.\n\n(easy)\n##########\n#........#\n#........#\n#..##....#\n#........#\n#..pp....#\n#..pp##..#\n#........#\n#........#\n##########\n\nmessage 2 of 3 - Sometimes I just need my own space.\n(simple but ok?)\n\n##########################\n####.......#.........#####\n##.........#.........#####\n#......................###\n#........................#\n#..#....###..#..#..##....#\n#..#....###..#..#..#pp...#\n#..#....###..#..#..#pp...#\n#..###..###...##...##....#\n#........................#\n#........................#\n####.....................#\n####.....................#\n#######................###\n########..............####\n##########################\n\n\n\nmessage Level 3 of 3 - It's a real relief to be alone.\n\n(basically OK)\n##################\n#########.....####\n#########.....####\n#########..#..####\n#..........#..####\n#..........#..####\n#..####..........#\n#................#\n#........#..###..#\n#........#.......#\n#........#.......#\n###pp..#......####\n###pp..#......####\n###....#..##..####\n###...........####\n#.............####\n#........#..######\n#..##....#..######\n#...........######\n#...........######\n##################\n\nmessage Help! Somebody help! I'm stuck! \n(\n(insoluble)\n###################\n#.....#############\n#.....#############\n#.....#############\n#.....#############\n#.....#############\n#........##########\n#........##########\n#........##########\n#...........#######\n#...........#######\n#...........#######\n#..............####\n#..............####\n#pp............####\n#pp............####\n###################\n\n##########\n#..#######\n#....#####\n#....#####\n#....#####\n#....#####\n#......###\n#......pp#\n#......pp#\n##########\n\n\n##########\n#..#######\n#....#####\n#......###\n#........#\n#........#\n#........#\n#......pp#\n#......pp#\n##########\n\n##############################\n#................#############\n#................#############\n#................#############\n#...................##########\n#...................##########\n#...................##########\n#......................#######\n#...............pp.....#######\n#...............pp.....#######\n#.........................####\n#.........................####\n#.........................####\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n\n##############################\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#...........pp...............#\n#...........pp...............#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n################\n#..#############\n#....###########\n#......#########\n#........#######\n#..........#####\n#............###\n#............pp#\n#............pp#\n################\n\n(too easy)\n############\n#.....######\n#.....######\n#.....######\n#.....######\n#......#####\n#..........#\n#..........#\n#..........#\n#..........#\n#pp........#\n#pp........#\n############\n\n\n\n############\n#.....######\n#.....######\n#.....######\n#.....######\n#.....######\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#pp........#\n#pp........#\n############\n\n#################\n#.....###########\n#.....###########\n#.....###########\n#.....###########\n#.....###########\n#..........######\n#..........######\n#..........######\n#..........######\n#..........######\n#...............#\n#...............#\n#...............#\n#........pp.....#\n#........pp.....#\n#################\n\n#############\n#....########\n#....########\n#....########\n#....########\n#....########\n#.......#####\n#.......#####\n#.......#####\n#.......#####\n#.......#####\n#...........#\n#...........#\n#...........#\n#.......pp..#\n#.......pp..#\n#############\n\n\n\n(solvable + boring)\n#############\n#....########\n#....########\n#....########\n#....########\n#....########\n#.......#####\n#.......#####\n#.......#####\n#.......#####\n#.......#####\n#...........#\n#...........#\n#...........#\n#.....pp....#\n#.....pp....#\n#############\n\n(too easy)\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##################.....#######\n##################.....#######\n############........#.....####\n############........#.....####\n############..##......##..####\n############..............####\n############......##......####\n##############..#.......######\n##############..#.......######\n##############.....##...######\n##############..........######\n################pp#....#######\n################pp#..#########\n################.....#########\n################.....#########\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n\n\n\n\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##########.......#############\n#########........#############\n#########pp......#############\n#########pp#.....#############\n#######.....#....#############\n#######..........#############\n#######..#.......#############\n#######...#......#############\n#######..........#############\n##.....#.....#################\n##..........##################\n##..#.......##################\n##...#......##################\n##..........##################\n###.....######################\n##############################\n##############################\n##############################\n\n\n(bit too easy)\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##########.......#############\n#########........#############\n#########pp......#############\n#########pp#.....#############\n#######.....#....#############\n#######..........#############\n#######..#.......#############\n#######...#......#############\n#######..........#############\n##.....#.....#################\n##..........##################\n##..#.......##################\n##...#......##################\n##..........##################\n###.....######################\n##############################\n##############################\n##############################\n\n##############################\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#.........pp.................#\n#.........pp.................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n########################\n###..................###\n###..................###\n##....................##\n##....................##\n#......................#\n#......................#\n#..#..#..#....#..#..#..#\n#..#..#..#....#..#..#..#\n#......................#\n#......................#\n##....................##\n##....................##\n###...........pp.....###\n###...........pp.....###\n########################\n\n##############################\n#######.............##########\n#######.............##########\n######..............##########\n######..............##########\n######..............##########\n######..............##########\n######..............##########\n######.......pp.....##########\n####........#pp#....##########\n####........####....##########\n####................##########\n####................##########\n####................##########\n####................##########\n##############################\n\n(meh ok for level 1?)\n##################\n####.............#\n####.............#\n###..............#\n###..............#\n###..............#\n###..............#\n###..............#\n###.......pp.....#\n#........#pp#....#\n#........####....#\n#................#\n#................#\n#................#\n#................#\n##################\n\n(meh)\n##############################\n######......##################\n######......##################\n####....##........############\n####....##........############\n####..##......##..############\n####..##......##..############\n####......##....pp############\n####......##....pp############\n########....##..##############\n########....##..##############\n########..##....##############\n########..##....##############\n########......################\n########......################\n##############################\n\n\n\n(boring)\n##############################\n##################.....#######\n############..............####\n############........#.....####\n############..##......##..####\n############..##......##..####\n##########........##..pp..####\n########..........##..pp..####\n########....#....#....########\n########..##..........########\n########..##........##########\n########......################\n########......################\n##############################\n\n(boring)\n##############################\n########............##########\n########............##########\n########..##....##..##########\n########..##....##..##########\n########pp..........##########\n########pp..........##########\n##############################\n\n(boring)\n##############################\n##########......##......######\n##########..............######\n##########pp##......##..######\n##########pp##......##..######\n##########..............######\n##########......##......######\n##########......##......######\n##########..............######\n##########..##......##..######\n##########..##......##..######\n##########..............######\n##########......##......######\n##############################\n\n################\n#####.......####\n###...........##\n###....###....##\n###...........##\n###...........##\n###....###....##\n#..............#\n#..............#\n#..###....###..#\n#..............#\n#..............#\n##....####....##\n##............##\n##............##\n##............##\n##............##\n######....######\n######....######\n######..pp######\n######..pp######\n################\n\n############################\n#..........................#\n#..........................#\n#..........................#\n#..........................#\n#....#....###..#..#..##....#\n#....#....###..#pp#..#.....#\n#....#....###..#pp#..#.....#\n#....###..###...##...##....#\n#..........................#\n#..........................#\n#..........................#\n#..........................#\n#..........................#\n############################\n\n############################\n#######.................####\n#######.................####\n####....................####\n##.......................###\n#..........................#\n#..........................#\n#..........................#\n#..........................#\n#....#....###..#..#..##....#\n#....#....###..#pp#..#.....#\n#....#....###..#pp#..#.....#\n#....###..###...##...##....#\n#..........................#\n#........................###\n#......................#####\n#.....................######\n####............############\n####............############\n#######.........############\n############################\n\n(ok!)\n\n\n\n\n##############################.....\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#.........#.....####..#####..####..\n#.........#........#....#....#.....\n#.........#........#....#....#.....\n#.........####..####....#....####..\n#.........#pp#..#..#....#....#.....\n#.........#pp#..#..#....#....#.....\n#.........#..#..#..#....#....####..\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n##############################.....\n\n\n##############################\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#....#####..#..#..#....#.....#\n#....#......#..#..#....#.....#\n#....#......#..#..#....#.....#\n#....#......#..#..#....#.....#\n#....#......#..#..#....#.....#\n#....#####..####..######.....#\n#........#..#pp#.......#.....#\n#........#..#pp#.......#.....#\n#........#..#..#.......#.....#\n#........#..#..#.......#.....#\n#....#####..#..#..######.....#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n###########################\n######.........############\n######.........############\n#...................#######\n#...................#######\n#.........................#\n#.........................#\n#....#####..#..#..#....#..#\n#....#......#..#..#....#..#\n#....#......#..#..#....#..#\n#....#......#pp#..#....#..#\n#....#......#pp#..#....#..#\n#....#####..####..######..#\n#........#..#..#.......#..#\n#........#..#..#.......#..#\n#........#..#..#.......#..#\n#........#..#..#.......#..#\n#....#####..#..#..######..#\n#.........................#\n#........#................#\n#...................#######\n#...................#######\n#..................########\n#..................########\n###########################\n\n\n##############################...\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#.........#####...#....#...#...#.\n#.........#.......#....#...#...#.\n#.........#.......#....#...#...#.\n#.........#.......#....#...#...#.\n#.........#.......#....#...#...#.\n#.........#####...######...#####.\n#...........pp#...#....#.......#.\n#...........pp#...#....#.......#.\n#.............#...#....#.......#.\n#.............#...#....#.......#.\n#.........#####...#....#...#####.\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n##############################...\n\n##############################\n#............................#\n#............................#\n#............................#\n#............................#\n#....pp......................#\n#....pp......................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n##############################\n######.....###################\n#####.......#.....############\n#####...#..........###########\n#####..###.....#...###########\n#####...#.....###..###########\n#####..........#...pp#########\n######.....#.......pp.########\n#####.....###.....#...########\n####.......#.....###..########\n####...#..........#...########\n####..###.....#.......########\n####...#......##.....#########\n####..........################\n#####.....####################\n##############################\n\n\n##############################\n#########.....################\n###............#.....#########\n###........#..........########\n###.......###.....#...########\n###........#.....###..########\n###....#..........#...########\n###...###.....#.......########\n###....#.....###.....#########\n####..........#.....##########\n#####.....#..........#########\n#####....###.....#...#########\n#####.....#pp....##..#########\n#####......pp....#...#########\n#####..#.............#########\n#####...............##########\n#####..............###########\n##############################\n)\n",[3,2,2,2,1,1,1,2,2,1,1,1,2,1,1,1,0,0,1,0,1],"background background_dark wall:0,background background_light wall:1,background background_dark sprite_dr wall wall_bright_d wall_bright_r:2,background background_light sprite_0_1 wall wall_bright_d wall_end_r wall_light:3,background background_dark sprite_0_1 wall wall_bright_d wall_bright_u wall_end_r wall_light:4,background background_light sprite_0_1 wall wall_bright_d wall_bright_u wall_end_r wall_light:5,4,5,4,5,background background_dark sprite_0_1 wall wall_bright_u wall_end_r wall_light:6,background background_light sprite_ur wall wall_bright_r wall_bright_u:7,0,1,0,1,1,2,background background_light sprite_4_1 wall wall_end_d wall_end_r wall_light:8,background background_border_left background_border_up background_dark temp:9,background background_border_left background_light temp:10,background background_border_left background_dark temp:11,10,11,10,11,\nbackground background_border_down background_border_left background_light temp:12,background background_dark sprite_1_2 wall wall_bright_r wall_end_u wall_light:13,background background_light wall wall_bright_u:14,0,1,0,background background_dark wall wall_bright_d:15,background background_light sprite_1_0 wall wall_bright_r wall_end_d wall_light:16,9,background background_light temp:17,background background_dark temp:18,background background_border_right background_light temp:19,background background_border_right background_dark temp:20,19,20,17,background background_border_down background_dark temp:21,background background_light sprite_1_2 wall wall_bright_l wall_bright_r wall_end_u wall_light:22,background background_dark wall wall_bright_r wall_bright_u:23,1,0,1,background background_light sprite_dr wall wall_bright_d wall_bright_r:24,background background_dark sprite_4_1 wall wall_bright_l wall_end_d wall_end_r wall_light:25,background background_border_up background_light temp:26,18,\nbackground background_border_down background_light temp:27,background background_dark sprite_6_0 wall wall_bright_d wall_end_l wall_end_r wall_end_u wall_light:28,background background_light sprite_6_1 wall wall_bright_d wall_bright_u wall_end_l wall_end_r wall_light:29,background background_dark sprite_6_1 wall wall_bright_d wall_bright_u wall_end_l wall_end_r wall_light:30,background background_light sprite_3_1 wall wall_bright_r wall_bright_u wall_end_d wall_end_l wall_light:31,background background_border_up background_dark temp:32,27,background background_dark sprite_4_0 wall wall_bright_d wall_bright_l wall_end_r wall_end_u wall_light:33,background background_light sprite_0_1 wall wall_bright_u wall_end_r wall_light:34,background background_dark sprite_ur wall wall_bright_r wall_bright_u:35,1,0,background background_dark sprite_1_0 wall wall_bright_r wall_end_d wall_light:36,background background_border_left background_border_up background_light temp:37,18,17,18,10,11,12,background background_dark sprite_4_2 wall wall_bright_l wall_bright_r wall_end_d wall_end_u wall_light:38,26,18,10,background background_border_down background_border_left background_dark temp:39,background background_light sprite_1_2 wall wall_bright_r wall_end_u wall_light:40,\nbackground background_dark wall wall_bright_u:41,1,background background_light sprite_1_0 wall wall_bright_l wall_bright_r wall_end_d wall_light:42,32,17,18,17,18,17,21,background background_light sprite_5_2 wall wall_bright_l wall_end_d wall_end_r wall_end_u wall_light:43,32,17,18,27,background background_dark sprite_1_2 wall wall_bright_l wall_bright_r wall_end_u wall_light:44,14,0,background background_dark sprite_1_0 wall wall_bright_l wall_bright_r wall_end_d wall_light:45,26,18,17,18,17,18,17,\n11,17,18,17,21,background background_light sprite_4_0 wall wall_bright_l wall_end_r wall_end_u wall_light:46,35,1,42,32,17,18,17,20,19,20,19,18,17,18,17,39,background background_light sprite_4_0 wall wall_end_r wall_end_u wall_light:47,35,45,26,\n18,17,21,background background_light sprite_3_0 wall wall_bright_d wall_bright_r wall_end_l wall_end_u wall_light:48,background background_dark sprite_2_1 wall wall_bright_d wall_bright_u wall_end_l wall_light:49,background background_light sprite_2_1 wall wall_bright_d wall_bright_u wall_end_l wall_light:50,background background_dark sprite_3_1 wall wall_bright_r wall_bright_u wall_end_d wall_end_l wall_light:51,26,18,17,18,17,39,40,42,32,17,18,27,44,background background_light wall wall_bright_l wall_bright_r wall_bright_u:52,background background_dark wall wall_bright_d wall_bright_l wall_bright_r:53,42,32,17,18,\n17,18,27,44,background background_dark sprite_1_0 wall wall_bright_l wall_end_d wall_light:54,background background_border_right background_border_up background_light temp:55,20,17,21,background background_light sprite_4_0 wall wall_bright_d wall_bright_l wall_end_r wall_end_u wall_light:56,4,5,background background_dark sprite_4_1 wall wall_bright_l wall_bright_u wall_end_d wall_end_r wall_light:57,background background_border_up background_light con_d con_r on_background player sprite_l_rf:58,background background_dark con_r con_u on_background player sprite_l_lf:59,17,18,17,21,22,background background_light sprite_dl wall wall_bright_d wall_bright_l wall_bright_r:60,background background_dark sprite_6_1 wall wall_bright_d wall_end_l wall_end_r wall_light:61,background background_light sprite_6_2 wall wall_bright_u wall_end_d wall_end_l wall_end_r wall_light:62,32,17,11,\n10,11,10,background background_dark con_d con_l con_r on_background player sprite_l_rb:63,background background_light body_udlr con_d con_l con_r con_u on_background player sprite_l_lb:64,background background_dark body body_ur con_r con_u on_background:65,17,18,27,44,36,37,11,17,18,19,20,19,18,background background_light body body_dl con_d con_l on_background:66,background background_dark body body_inner_dl con_d con_l con_r con_u on_background:67,background background_light body body_inner_ur con_d con_l con_r con_u on_background:68,background background_dark body body_udr con_d con_r con_u on_background:69,background background_light body body_ur con_r con_u on_background:70,21,22,\n42,32,17,18,27,28,29,background background_dark sprite_6_2 wall wall_bright_u wall_end_d wall_end_l wall_end_r wall_light:71,55,18,66,background background_dark body body_udl con_d con_l con_u on_background:72,background background_light body body_inner_dl con_d con_l con_r con_u on_background:73,background background_dark body body_ulr con_l con_r con_u on_background:74,27,44,45,26,18,17,18,10,11,12,background background_dark sprite_3_2 wall wall_bright_r wall_end_d wall_end_l wall_end_u wall_light:75,26,\n18,17,background background_dark body body_dlr con_d con_l con_r on_background:76,background background_light body body_ulr con_l con_r con_u on_background:77,21,22,42,32,17,18,17,20,19,background background_border_down background_border_right background_dark temp:78,43,32,17,background background_dark body body_dr con_d con_r on_background:79,background background_light body body_inner_dr con_d con_l con_r con_u on_background:80,74,27,44,45,26,18,17,\n21,background background_light sprite_6_0 wall wall_bright_d wall_end_l wall_end_r wall_end_u wall_light:81,30,62,9,17,18,background background_light body body_dlr con_d con_l con_r on_background:82,background background_dark body body_inner_ul con_d con_l con_r con_u on_background:83,background background_light body body_ul con_l con_u on_background:84,21,22,42,32,17,18,17,11,10,11,17,18,17,76,77,18,\n27,44,45,26,18,17,18,19,20,19,20,background background_light body body_dr con_d con_r on_background:85,69,80,74,17,21,22,42,32,17,18,27,background background_dark sprite_3_0 wall wall_bright_d wall_bright_r wall_end_l wall_end_u wall_light:86,29,30,\n31,background background_border_up background_dark body body_dlr con_d con_l con_r on_background:87,background background_light body body_inner_ul con_d con_l con_r con_u on_background:88,72,84,18,27,44,54,55,20,17,21,43,background background_border_left background_border_up background_dark body body_dr con_d con_r on_background:89,background background_border_down background_border_left background_light body body_ur con_r con_u on_background:90,background background_dark sprite_5_2 wall wall_bright_l wall_end_d wall_end_r wall_end_u wall_light:91,background background_border_up background_light body body_dlr con_d con_l con_r on_background:92,74,17,18,17,21,22,background background_light sprite_dl wall wall_bright_d wall_bright_l:93,background background_dark sprite_2_1 wall wall_bright_d wall_end_l wall_light:94,\n31,32,17,11,82,background background_dark body body_inner_ur con_d con_l con_r con_u on_background:95,background background_border_left background_light body body_udr con_d con_r con_u on_background:96,background background_dark body body_inner_dr con_d con_l con_r con_u on_background:97,77,18,17,18,background background_border_down background_border_right background_light temp:98,background background_dark sprite_1_2 wall wall_bright_l wall_end_u wall_light:99,0,background background_light wall wall_bright_d wall_bright_l:100,54,55,18,17,background background_dark body body_dl con_d con_l on_background:101,background background_light body body_udl con_d con_l con_u on_background:102,72,102,background background_dark body body_ul con_l con_u on_background:103,17,\n18,98,background background_dark sprite_3_0 wall wall_end_l wall_end_u wall_light:104,background background_light sprite_ul wall wall_bright_l wall_bright_u:105,1,0,93,background background_dark sprite_3_1 wall wall_bright_r wall_end_d wall_end_l wall_light:106,26,18,17,18,17,18,17,18,27,background background_dark sprite_3_0 wall wall_bright_r wall_end_l wall_end_u wall_light:107,105,0,0,1,15,background background_light sprite_1_0 wall wall_bright_l wall_end_d wall_light:108,background background_border_right background_border_up background_dark temp:109,19,\n20,19,20,19,20,19,78,background background_light sprite_1_2 wall wall_bright_l wall_end_u wall_light:110,41,1,1,0,1,background background_dark sprite_dl wall wall_bright_d wall_bright_l:111,background background_light sprite_2_1 wall wall_bright_d wall_end_l wall_light:112,49,50,49,50,49,50,49,background background_light sprite_2_1 wall wall_bright_u wall_end_l wall_light:113,background background_dark sprite_ul wall wall_bright_l wall_bright_u:114,1,0,\n",3,"1627891845531.74"] + "SHY SNAKE", + ["title SHY SNAKE\nauthor Daniel Freer and increpare\nhomepage www.puzzlescript.net\nnorepeat_action\nrun_rules_on_level_start\n\nbackground_color #524c67 \ntext_color #8fff70\n\n\nnoaction\n\n========\nOBJECTS\n========\n\n\n\nSprite_R_LB\n#5b6e6d #ddff7d #8fff70 #73ce86 #383d41 \n.0000\n02222\n23043\n33443\n33333\n\nSprite_R_LF\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n.....\n000..\n1110.\n22234\n22234\n\nSprite_L_RF\n#5b6e6d #8fff70 #ddff7d #73ce86 \n.....\n..000\n.0111\n01333\n01333\n\nSprite_L_RB\n#5b6e6d #8fff70 #73ce86 #383d41 #689887 \n0000.\n11110\n20324\n23322\n22222\n\nSprite_U_LF\n#5b6e6d #ddff7d #8fff70 #73ce86 \n...00\n..012\n.0233\n.0233\n.0233\n\nSprite_U_RF\n#5b6e6d #8fff70 #73ce86 #383d41 #689887 \n00...\n123..\n2243.\n2243.\n2243.\n\nSprite_R_RB\n#73ce86 #5b6e6d #383d41 #689887 \n00000\n00120\n10220\n23333\n.2222\n\nSprite_R_RF\n#73ce86 #689887 #383d41 #5b6e6d \n00012\n00012\n1112.\n222..\n.....\n\nSprite_D_RB\n#5b6e6d #8fff70 #73ce86 #ddff7d #383d41 \n.0122\n03222\n01042\n01442\n01222\n\nSprite_D_LB\n#73ce86 #689887 #383d41 #5b6e6d \n0012.\n00012\n03212\n02212\n00012\n\nSprite_L_LF\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n01222\n02222\n.4333\n..444\n.....\n\nSprite_L_LB\n#73ce86 #5b6e6d #383d41 #689887 \n00000\n01200\n02201\n33332\n2222.\n\nSprite_U_LB\n#5b6e6d #8fff70 #73ce86 #575d67 #383d41 #689887 \n01222\n01342\n01442\n01222\n.0522\n\nSprite_U_RB\n#73ce86 #689887 #383d41 #575d67 #5b6e6d \n00012\n03212\n02212\n00012\n0042.\n\nSprite_D_RF\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n.0122\n.0122\n.0122\n..023\n...44\n\nSprite_D_LF\n#73ce86 #689887 #383d41 #5b6e6d \n0012.\n0012.\n0012.\n132..\n22...\n\nBODY\nTRANSPARENT\n\nEND_R_R\n#5b6e6d #8fff70 #73ce86 #383d41 \n.....\n.....\n00...\n1100.\n22123\n\nEND_L_L\n#5b6e6d #8fff70 #ddff7d #73ce86 \n.....\n.....\n...00\n.0011\n02133\n\nEND_D_L\n#5b6e6d #8fff70 #73ce86 #383d41 \n..012\n..012\n...01\n...02\n....3\n\nEND_D_R\n#73ce86 #689887 #383d41 #5b6e6d \n012..\n012..\n12...\n32...\n2....\n\n\n\n\nEND_R_L\n#73ce86 #689887 #5b6e6d #383d41 \n00123\n1133.\n33...\n.....\n.....\n\nEND_L_R\n#5b6e6d #73ce86 #689887 #383d41 \n01211\n.3322\n...33\n.....\n.....\n\nEND_U_L\n#5b6e6d #ddff7d #8fff70 #73ce86 \n....0\n...01\n...02\n..023\n..023\n\nEND_U_R\n#5b6e6d #73ce86 #383d41 #689887 \n0....\n12...\n32...\n132..\n132..\n\n\n\n\n\nPlayer\ngreen\n.....\n.....\n..0..\n.....\n.....\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\ntemp\ntransparent\n\n\n\ncon_u\nwhite\n..0..\n..0..\n.....\n.....\n.....\n\ncon_d\nwhite\n.....\n.....\n.....\n..0..\n..0..\n\ncon_l\nwhite\n.....\n.....\n00...\n.....\n.....\n\ncon_r\nwhite\n.....\n.....\n...00\n.....\n.....\n\nend_t\nTRANSPARENT\n\n\nbody_dr\n#5b6e6d #ddff7d #8fff70 #73ce86 \n.....\n...00\n..012\n.0133\n.0233\n\nbody_dlr\n#5b6e6d #8fff70 #73ce86 \n00000\n11111\n22222\n22222\n22222\n\nbody_dl\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n.....\n00...\n110..\n2234.\n2234.\n\nbody_udr\n#5b6e6d #8fff70 #73ce86 \n01222\n01222\n01222\n01222\n01222\n\nbody_ur\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n.0122\n.0122\n..033\n...44\n.....\n\nbody_ulr\n#73ce86 #689887 #383d41 \n00000\n00000\n00000\n11111\n22222\n\nbody_ul\n#73ce86 #689887 #383d41 \n0012.\n0012.\n112..\n22...\n.....\n\n\n\nbody_udl\n#73ce86 #689887 #383d41 \n00012\n00012\n00012\n00012\n00012\n\nbody_udlr\n#73ce86\n\nbody_inner_ul\n#73ce86 #689887 #383d41 \n00000\n00000\n00000\n00001\n00012\n\nbody_inner_ur\n#73ce86 #689887 #383d41 #8fff70 #5b6e6d \n00000\n00000\n00000\n10000\n43000\n\nbody_inner_dl\n#73ce86 #689887 #383d41 #5b6e6d #8fff70 \n00012\n00004\n00000\n00000\n00000\n\nbody_inner_dr\n#5b6e6d #8fff70 #73ce86 \n01222\n12222\n22222\n22222\n22222\n\n\n\n\n\n\n\n\n\nbackground\n#896359 #6b4949 #896359 #6b4949 #b77e63\n01110\n11100\n10110\n11112\n00200\n\n\n\nbackground_light\nLIGHTGRAY\n\nbackground_dark\ngray\n\non_background\nDARKGRAY\n\nbackground_border_up\n#b77e63 #896359 #6b4949 \n01111\n.....\n.....\n.....\n.....\n\n\nbackground_border_left\n#b77e63 #896359 #6b4949 \n0....\n1....\n1....\n1....\n1....\n\nbackground_border_right\n#896359 #6b4949 #b77e63 \n....0\n....0\n....0\n....2\n....0\n\nbackground_border_down\n#b77e63 #6b4949 #896359 \n.....\n.....\n.....\n.....\n22022\n\n\n\n\n\nWall\n#524c67 #524c67 \n00100\n00100\n11111\n00100\n00100\n\n\n\nWall_light\n#868998 #575d67\n00100\n00100\n11111\n00100\n00100\n\n\nwall_border_b\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n00100\n11111\n12222\n13333\n44444\n\nwall_border_r\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n01234\n01234\n11234\n01234\n01114\n\nwall_border_l\n#383d41 #575d67 #868998 #fffee9 #e2e0e8 \n01112\n03412\n03411\n03412\n03412\n\nwall_border_t\n#383d41 #fffee9 #575d67 #e2e0e8 #868998 \n00000\n11112\n33332\n22222\n44244\n\n\nwall_bright_u\ntransparent\n\nwall_bright_d\ntransparent\n\nwall_bright_l\ntransparent\n\nwall_bright_r\ntransparent\n\n\nwall_end_u\ntransparent\n\nwall_end_d\ntransparent\n\nwall_end_l\ntransparent\n\nwall_end_r\ntransparent\n\n\n\nSprite_0_0\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n00100\n01111\n11222\n01233\n01114\n\nSprite_1_0\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n00100\n11111\n12222\n13333\n44444\n\nSprite_2_0\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 #fffee9 \n00100\n11110\n12311\n13310\n45310\n\nSprite_3_0\n#383d41 #fffee9 #575d67 #e2e0e8 #868998 \n00000\n01112\n01332\n01322\n01324\n\nSprite_4_0\n#383d41 #fffee9 #e2e0e8 #bbbbce #575d67 #868998 \n00000\n11120\n22320\n44320\n54440\n\nSprite_5_0\n#524c67 #383d41 \n00100\n00100\n11111\n00100\n00100\n\nSprite_6_0\n#383d41 #fffee9 #e2e0e8 #bbbbce \n00000\n01120\n01320\n01320\n01220\n\nSprite_0_1\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n01234\n01234\n11234\n01234\n01114\n\nSprite_2_1\n#383d41 #575d67 #868998 #fffee9 #e2e0e8 \n01112\n03412\n03411\n03412\n03412\n\nSprite_3_1\n#383d41 #575d67 #868998 #fffee9 #e2e0e8 #bbbbce \n01112\n03411\n03455\n04444\n00000\n\nSprite_4_1\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n01234\n11234\n12234\n13334\n44444\n\nSprite_5_1\n#383d41 #fffee9 #e2e0e8 #bbbbce \n00000\n01120\n01320\n02220\n00000\n\nSprite_6_1\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n01110\n02230\n02430\n02430\n02330\n\nSprite_0_2\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n01234\n01231\n11331\n01111\n00100\n\nSprite_1_2\n#383d41 #fffee9 #575d67 #e2e0e8 #868998 \n00000\n11112\n33332\n22222\n44244\n\nSprite_2_2\n#383d41 #575d67 #868998 #fffee9 #e2e0e8 \n01112\n33412\n44411\n11112\n22122\n\nSprite_3_2\n#383d41 #fffee9 #575d67 #bbbbce #e2e0e8 \n00000\n01112\n01342\n04442\n00000\n\nSprite_4_2\n#383d41 #fffee9 #575d67 #bbbbce #e2e0e8 \n00000\n11112\n13342\n44442\n00000\n\nSprite_5_2\n#383d41 #fffee9 #e2e0e8 #bbbbce \n00000\n11120\n13320\n22220\n00000\n\nSprite_6_2\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n01110\n02230\n02430\n03330\n00000\n\n\nsprite_DL\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n.....\n.....\n44...\n334..\n134..\n\n\nsprite_DR\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n.....\n.....\n...44\n..433\n..431\n\nsprite_UL\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n134..\n334..\n44...\n.....\n.....\n\nsprite_UR\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n..431\n..433\n...44\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\nt = background\n\nobstacle = wall or body or player\n\nend = END_R_R or END_R_L or END_L_L or END_L_R or END_U_L or END_U_R or END_D_L or END_D_R\n\nhead = SPRITE_u_LB or SPRITE_u_LF or SPRITE_u_RB or SPRITE_u_RF or SPRITE_d_LB or SPRITE_d_LF or SPRITE_d_RB or SPRITE_d_RF or SPRITE_l_LB or SPRITE_l_LF or SPRITE_l_RB or SPRITE_l_RF or SPRITE_R_LB or SPRITE_R_LF or SPRITE_R_RB or SPRITE_R_RF \n\nbody_dec = body_ul or body_ur or body_dl or body_dr or body_dlr or body_udr or body_ulr or body_udl or body_udlr\n\nbody_inner = body_inner_ul or body_inner_ur or body_inner_dl or body_inner_dr\n\ncosmetics = head or end or body_dec or body_inner\n\ndir = con_u or con_d or con_l or con_r\ndir_h = con_l or con_r\ndir_v = con_u or con_d\nwall_border = wall_border_b or wall_border_t or wall_border_l or wall_border_r\n\nbackground_border = background_border_up or background_border_down or background_border_left or background_border_right\n\ntile= background_light or background_dark\n\n=======\nSOUNDS\n=======\n\nendlevel 29774302\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbackground_border_up\nbackground_border_left\nbackground_border_right\nbackground_border_down\nbackground_dark,background_light\non_background\nPlayer, Wall, Crate, body\ntemp\ncon_u\ncon_d\ncon_l\ncon_r\nend_t\nbody_dec\nbody_inner\nhead\nend\nwall_light\nwall_border_t\nwall_border_b\nwall_border_l\nwall_border_r\n\nwall_bright_u\nwall_bright_d\nwall_bright_l\nwall_bright_r\n\nwall_end_u\nwall_end_d\nwall_end_l\nwall_end_r\n\nSprite_0_0, sprite_1_0, sprite_2_0, sprite_3_0, sprite_4_0, sprite_5_0, sprite_6_0, Sprite_0_1, Sprite_2_1, Sprite_3_1, Sprite_4_1, Sprite_5_1, Sprite_6_1, Sprite_0_2, Sprite_1_2, Sprite_2_2, Sprite_3_2, Sprite_4_2, Sprite_5_2, Sprite_6_2, sprite_ul, sprite_ur, sprite_dl, sprite_dr\n\n======\nRULES\n======\n\n[wall | no wall] -> [wall Wall_light | ]\n\nup [wall | no wall] -> [wall | background_border_down ]\ndown [wall | no wall] -> [wall | background_border_up ]\nleft [wall | no wall] -> [wall | background_border_right ]\nright [wall | no wall] -> [wall | background_border_left ]\n\nup [ wall | no wall ] -> [wall wall_end_u | ]\ndown [ wall | no wall ] -> [wall wall_end_d | ]\nleft [ wall | no wall ] -> [wall wall_end_l | ]\nright [ wall | no wall ] -> [wall wall_end_r | ]\n\nup [ wall | Wall_light ] -> [ wall wall_bright_u | Wall_light ]\ndown [ wall | Wall_light ] -> [ wall wall_bright_d | Wall_light ]\nleft [ wall | Wall_light ] -> [ wall wall_bright_l | Wall_light ]\nright [ wall | Wall_light ] -> [ wall wall_bright_r | Wall_light ]\n\n[ wall_end_u ] -> [ wall_end_u sprite_1_2 ]\n[ wall_end_d ] -> [ wall_end_d sprite_1_0 ]\n[ wall_end_l ] -> [ wall_end_l sprite_2_1 ]\n[ wall_end_r ] -> [ wall_end_r sprite_0_1 ]\n\n\n[ wall_end_u wall_end_r ] -> [ wall_end_u wall_end_r sprite_4_0 ]\n[ wall_end_u wall_end_d ] -> [ wall_end_u wall_end_d sprite_4_2 ]\n[ wall_end_u wall_end_l ] -> [ wall_end_u wall_end_l sprite_3_0 ]\n\n[ wall_end_r wall_end_d ] -> [ wall_end_r wall_end_d sprite_4_1 ]\n[ wall_end_r wall_end_l ] -> [ wall_end_r wall_end_l sprite_6_1 ]\n\n[ wall_end_d wall_end_l ] -> [ wall_end_d wall_end_l sprite_3_1 ]\n\n\n[ wall_end_d wall_end_l wall_end_r ] -> [ wall_end_d wall_end_l wall_end_r sprite_6_2]\n[ wall_end_u wall_end_l wall_end_r ] -> [ wall_end_u wall_end_l wall_end_r sprite_6_0]\n[ wall_end_u wall_end_d wall_end_r ] -> [ wall_end_u wall_end_d wall_end_r sprite_5_2]\n[ wall_end_u wall_end_d wall_end_l ] -> [ wall_end_u wall_end_d wall_end_l sprite_3_2]\n\n[ no wall_light wall_bright_u wall_bright_r ] -> [ sprite_ur wall_bright_u wall_bright_r ]\n[ no wall_light wall_bright_u wall_bright_l ] -> [ sprite_ul wall_bright_u wall_bright_l ]\n[ no wall_light wall_bright_d wall_bright_r ] -> [ sprite_dr wall_bright_d wall_bright_r ]\n[ no wall_light wall_bright_d wall_bright_l ] -> [ sprite_dl wall_bright_d wall_bright_l ]\n\n\nup [ sprite_ur | no wall_end_r ] -> [ | ]\nright [ sprite_ur | no wall_end_u ] -> [ | ]\n\n\nup [ sprite_ul | no wall_end_l ] -> [ | ]\nleft [ sprite_ul | no wall_end_u ] -> [ | ]\n\ndown [ sprite_dr | no wall_end_r ] -> [ | ]\nright [ sprite_dr | no wall_end_d ] -> [ | ]\n\ndown [ sprite_dl | no wall_end_l ] -> [ | ]\nleft [ sprite_dl | no wall_end_d ] -> [ | ]\n\n\n[ wall_end_u wall_end_d wall_end_l wall_end_r ] -> [ wall_end_u wall_end_d wall_end_l wall_end_r sprite_5_1 ]\n\n[ > player | > player | obstacle ] -> cancel\n\nup [ > player | > player | no obstacle] -> [ body con_u | con_d con_u player | player ]\ndown [ > player | > player | no obstacle] -> [ body con_d | con_u con_d player | player ]\nleft [ > player | > player | no obstacle] -> [ body con_l | con_r con_l player | player ]\nright [ > player | > player | no obstacle] -> [ body con_r | con_l con_r player | player ]\n\n\nlate [temp]->[]\nlate [ no player no wall no obstacle ]->[temp]\n\n\n\nlate right [player | player ] -> [ player con_r | player con_l ]\nlate down [player | player ] -> [ player con_d | player con_u ]\n\n\nlate [ player background con_u con_r no tile] -> [ player background con_u con_r background_light]\nlate [ background_light | no tile ] -> [ background_light | background_dark ]\n+ late [background_dark | no tile ] -> [ background_dark | background_light ]\n\nlate [cosmetics]->[]\n\n\nlate [ body con_u con_l ] -> [ body con_u con_l body_ul ]\nlate [ body con_u con_r ] -> [ body con_u con_r body_ur ]\nlate [ body con_d con_l ] -> [ body con_d con_l body_dl ]\nlate [ body con_d con_r ] -> [ body con_d con_r body_dr ]\n\nlate [ body con_u con_d con_l ] -> [ body con_u con_d con_l body_udl ]\nlate [ body con_u con_d con_r ] -> [ body con_u con_d con_r body_udr ]\nlate [ body con_u con_l con_r ] -> [ body con_u con_l con_r body_ulr ]\nlate [ body con_d con_l con_r ] -> [ body con_d con_l con_r body_dlr ]\n\nlate [ body con_u con_d con_l con_r ] -> [ body con_u con_d con_l con_r body_udlr]\n\n(\nlate [ player con_d con_r ] -> [ player con_d con_r sprite_u_lf ]\nlate [ player con_u con_r ] -> [ player con_u con_r sprite_u_lb ]\nlate [ player con_d con_l ] -> [ player con_d con_l sprite_u_rf ]\nlate [ player con_u con_l ] -> [ player con_u con_l sprite_u_rb ]\n)\n\n\nlate [ player con_d con_r ] -> [ player con_d con_r body_dr ]\nlate [ player con_u con_r ] -> [ player con_u con_r body_ur ]\nlate [ player con_d con_l ] -> [ player con_d con_l body_dl ]\nlate [ player con_u con_l ] -> [ player con_u con_l body_ul ]\n\n\nlate down [ player con_r no con_l | player con_r con_d ] -> [ player con_R no body_dec | player con_r con_d no body_dec]\nlate down [ player con_l no con_r | player con_l con_d ] -> [ player con_l no body_dec | player con_l con_d no body_dec]\n\nlate right [ player con_d no con_u | player con_d con_r ] -> [ player con_d no body_dec | player con_d con_r no body_dec ]\nlate right [ player con_u no con_d | player con_u con_r ] -> [ player con_u no body_dec | player con_u con_r no body_dec ]\n\nlate left [ player con_d no con_u | player con_d con_l ] -> [ player con_d no body_dec | player con_d con_l no body_dec]\nlate left [ player con_u no con_d | player con_u con_l ] -> [ player con_u no body_dec | player con_u con_l no body_dec]\n\nlate up [ player con_l no con_r | player con_l con_u ] -> [ player con_l no body_dec | player con_l con_u no body_dec ]\nlate up [ player con_r no con_l | player con_r con_u ] -> [ player con_r no body_dec | player con_r con_u no body_dec ]\n\n\n\n\n\nlate down [ player con_r no con_l | player con_r con_d ] -> [ player con_R sprite_u_lf | player con_r con_d sprite_u_lb]\nlate down [ player con_l no con_r | player con_l con_d ] -> [ player con_l sprite_u_rf | player con_l con_d sprite_u_rb]\n\nlate right [ player con_d no con_u | player con_d con_r ] -> [ player con_d sprite_l_rf | player con_d con_r sprite_l_rb ]\nlate right [ player con_u no con_d | player con_u con_r ] -> [ player con_u sprite_l_lf | player con_u con_r sprite_l_lb ]\n\nlate left [ player con_d no con_u | player con_d con_l ] -> [ player con_d sprite_r_lf | player con_d con_l sprite_r_lb]\nlate left [ player con_u no con_d | player con_u con_l ] -> [ player con_u sprite_r_rf | player con_u con_l sprite_r_rb]\n\nlate up [ player con_l no con_r | player con_l con_u ] -> [ player con_l sprite_d_lf | player con_l con_u sprite_d_lb ]\nlate up [ player con_r no con_l | player con_r con_u ] -> [ player con_r sprite_d_rf | player con_r con_u sprite_d_rb ]\n\n\nlate right [ no con_d con_r | body_udlr ] -> [ con_r | body_inner_ur ]\nlate left [ no con_d con_l | body_udlr ] -> [ con_l | body_inner_ul ]\n\n\nlate right [ no con_u con_r | body_udlr ] -> [ con_r | body_inner_dr ]\nlate left [ no con_u con_l | body_udlr ] -> [ con_l | body_inner_dl ]\n\n\nlate up [ no con_r con_u | body_udlr ] -> [ con_u | body_inner_ul ]\nlate up [ no con_l con_u | body_udlr ] -> [ con_u | body_inner_ur ]\n\nlate down [ no con_r con_d | body_udlr ] -> [ con_d | body_inner_dl ]\nlate down [ no con_l con_d | body_udlr ] -> [ con_d | body_inner_dr ]\n\n\nlate right [ player con_r con_u con_d con_l ] ->[ player con_r con_u con_d con_l body_udlr ]\n\nlate [ player ] -> [ player on_background]\n\n(\n[ action player ] [ no wall no obstacle ] -> [ action player ] [wall]\n[ action player ] [ body ] -> [action player ] [ ]\n[ action player ]->[player]\n)\n\n==============\nWINCONDITIONS\n==============\nno temp\n\n=======\nLEVELS\n=======\n\n\nmessage 1 of 3 - If you are EVERYWHERE, nobody else can be ANYWHERE.\n\n(easy)\n##########\n#........#\n#........#\n#..##....#\n#........#\n#..pp....#\n#..pp##..#\n#........#\n#........#\n##########\n\nmessage 2 of 3 - Sometimes I just need my own space.\n(simple but ok?)\n\n##########################\n####.......#.........#####\n##.........#.........#####\n#......................###\n#........................#\n#..#....###..#..#..##....#\n#..#....###..#..#..#pp...#\n#..#....###..#..#..#pp...#\n#..###..###...##...##....#\n#........................#\n#........................#\n####.....................#\n####.....................#\n#######................###\n########..............####\n##########################\n\n\n\nmessage Level 3 of 3 - It's a real relief to be alone.\n\n(basically OK)\n##################\n#########.....####\n#########.....####\n#########..#..####\n#..........#..####\n#..........#..####\n#..####..........#\n#................#\n#........#..###..#\n#........#.......#\n#........#.......#\n###pp..#......####\n###pp..#......####\n###....#..##..####\n###...........####\n#.............####\n#........#..######\n#..##....#..######\n#...........######\n#...........######\n##################\n\nmessage Help! Somebody help! I'm stuck! \n(\n(insoluble)\n###################\n#.....#############\n#.....#############\n#.....#############\n#.....#############\n#.....#############\n#........##########\n#........##########\n#........##########\n#...........#######\n#...........#######\n#...........#######\n#..............####\n#..............####\n#pp............####\n#pp............####\n###################\n\n##########\n#..#######\n#....#####\n#....#####\n#....#####\n#....#####\n#......###\n#......pp#\n#......pp#\n##########\n\n\n##########\n#..#######\n#....#####\n#......###\n#........#\n#........#\n#........#\n#......pp#\n#......pp#\n##########\n\n##############################\n#................#############\n#................#############\n#................#############\n#...................##########\n#...................##########\n#...................##########\n#......................#######\n#...............pp.....#######\n#...............pp.....#######\n#.........................####\n#.........................####\n#.........................####\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n\n##############################\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#...........pp...............#\n#...........pp...............#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n################\n#..#############\n#....###########\n#......#########\n#........#######\n#..........#####\n#............###\n#............pp#\n#............pp#\n################\n\n(too easy)\n############\n#.....######\n#.....######\n#.....######\n#.....######\n#......#####\n#..........#\n#..........#\n#..........#\n#..........#\n#pp........#\n#pp........#\n############\n\n\n\n############\n#.....######\n#.....######\n#.....######\n#.....######\n#.....######\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#pp........#\n#pp........#\n############\n\n#################\n#.....###########\n#.....###########\n#.....###########\n#.....###########\n#.....###########\n#..........######\n#..........######\n#..........######\n#..........######\n#..........######\n#...............#\n#...............#\n#...............#\n#........pp.....#\n#........pp.....#\n#################\n\n#############\n#....########\n#....########\n#....########\n#....########\n#....########\n#.......#####\n#.......#####\n#.......#####\n#.......#####\n#.......#####\n#...........#\n#...........#\n#...........#\n#.......pp..#\n#.......pp..#\n#############\n\n\n\n(solvable + boring)\n#############\n#....########\n#....########\n#....########\n#....########\n#....########\n#.......#####\n#.......#####\n#.......#####\n#.......#####\n#.......#####\n#...........#\n#...........#\n#...........#\n#.....pp....#\n#.....pp....#\n#############\n\n(too easy)\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##################.....#######\n##################.....#######\n############........#.....####\n############........#.....####\n############..##......##..####\n############..............####\n############......##......####\n##############..#.......######\n##############..#.......######\n##############.....##...######\n##############..........######\n################pp#....#######\n################pp#..#########\n################.....#########\n################.....#########\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n\n\n\n\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##########.......#############\n#########........#############\n#########pp......#############\n#########pp#.....#############\n#######.....#....#############\n#######..........#############\n#######..#.......#############\n#######...#......#############\n#######..........#############\n##.....#.....#################\n##..........##################\n##..#.......##################\n##...#......##################\n##..........##################\n###.....######################\n##############################\n##############################\n##############################\n\n\n(bit too easy)\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##########.......#############\n#########........#############\n#########pp......#############\n#########pp#.....#############\n#######.....#....#############\n#######..........#############\n#######..#.......#############\n#######...#......#############\n#######..........#############\n##.....#.....#################\n##..........##################\n##..#.......##################\n##...#......##################\n##..........##################\n###.....######################\n##############################\n##############################\n##############################\n\n##############################\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#.........pp.................#\n#.........pp.................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n########################\n###..................###\n###..................###\n##....................##\n##....................##\n#......................#\n#......................#\n#..#..#..#....#..#..#..#\n#..#..#..#....#..#..#..#\n#......................#\n#......................#\n##....................##\n##....................##\n###...........pp.....###\n###...........pp.....###\n########################\n\n##############################\n#######.............##########\n#######.............##########\n######..............##########\n######..............##########\n######..............##########\n######..............##########\n######..............##########\n######.......pp.....##########\n####........#pp#....##########\n####........####....##########\n####................##########\n####................##########\n####................##########\n####................##########\n##############################\n\n(meh ok for level 1?)\n##################\n####.............#\n####.............#\n###..............#\n###..............#\n###..............#\n###..............#\n###..............#\n###.......pp.....#\n#........#pp#....#\n#........####....#\n#................#\n#................#\n#................#\n#................#\n##################\n\n(meh)\n##############################\n######......##################\n######......##################\n####....##........############\n####....##........############\n####..##......##..############\n####..##......##..############\n####......##....pp############\n####......##....pp############\n########....##..##############\n########....##..##############\n########..##....##############\n########..##....##############\n########......################\n########......################\n##############################\n\n\n\n(boring)\n##############################\n##################.....#######\n############..............####\n############........#.....####\n############..##......##..####\n############..##......##..####\n##########........##..pp..####\n########..........##..pp..####\n########....#....#....########\n########..##..........########\n########..##........##########\n########......################\n########......################\n##############################\n\n(boring)\n##############################\n########............##########\n########............##########\n########..##....##..##########\n########..##....##..##########\n########pp..........##########\n########pp..........##########\n##############################\n\n(boring)\n##############################\n##########......##......######\n##########..............######\n##########pp##......##..######\n##########pp##......##..######\n##########..............######\n##########......##......######\n##########......##......######\n##########..............######\n##########..##......##..######\n##########..##......##..######\n##########..............######\n##########......##......######\n##############################\n\n################\n#####.......####\n###...........##\n###....###....##\n###...........##\n###...........##\n###....###....##\n#..............#\n#..............#\n#..###....###..#\n#..............#\n#..............#\n##....####....##\n##............##\n##............##\n##............##\n##............##\n######....######\n######....######\n######..pp######\n######..pp######\n################\n\n############################\n#..........................#\n#..........................#\n#..........................#\n#..........................#\n#....#....###..#..#..##....#\n#....#....###..#pp#..#.....#\n#....#....###..#pp#..#.....#\n#....###..###...##...##....#\n#..........................#\n#..........................#\n#..........................#\n#..........................#\n#..........................#\n############################\n\n############################\n#######.................####\n#######.................####\n####....................####\n##.......................###\n#..........................#\n#..........................#\n#..........................#\n#..........................#\n#....#....###..#..#..##....#\n#....#....###..#pp#..#.....#\n#....#....###..#pp#..#.....#\n#....###..###...##...##....#\n#..........................#\n#........................###\n#......................#####\n#.....................######\n####............############\n####............############\n#######.........############\n############################\n\n(ok!)\n\n\n\n\n##############################.....\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#.........#.....####..#####..####..\n#.........#........#....#....#.....\n#.........#........#....#....#.....\n#.........####..####....#....####..\n#.........#pp#..#..#....#....#.....\n#.........#pp#..#..#....#....#.....\n#.........#..#..#..#....#....####..\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n##############################.....\n\n\n##############################\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#....#####..#..#..#....#.....#\n#....#......#..#..#....#.....#\n#....#......#..#..#....#.....#\n#....#......#..#..#....#.....#\n#....#......#..#..#....#.....#\n#....#####..####..######.....#\n#........#..#pp#.......#.....#\n#........#..#pp#.......#.....#\n#........#..#..#.......#.....#\n#........#..#..#.......#.....#\n#....#####..#..#..######.....#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n###########################\n######.........############\n######.........############\n#...................#######\n#...................#######\n#.........................#\n#.........................#\n#....#####..#..#..#....#..#\n#....#......#..#..#....#..#\n#....#......#..#..#....#..#\n#....#......#pp#..#....#..#\n#....#......#pp#..#....#..#\n#....#####..####..######..#\n#........#..#..#.......#..#\n#........#..#..#.......#..#\n#........#..#..#.......#..#\n#........#..#..#.......#..#\n#....#####..#..#..######..#\n#.........................#\n#........#................#\n#...................#######\n#...................#######\n#..................########\n#..................########\n###########################\n\n\n##############################...\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#.........#####...#....#...#...#.\n#.........#.......#....#...#...#.\n#.........#.......#....#...#...#.\n#.........#.......#....#...#...#.\n#.........#.......#....#...#...#.\n#.........#####...######...#####.\n#...........pp#...#....#.......#.\n#...........pp#...#....#.......#.\n#.............#...#....#.......#.\n#.............#...#....#.......#.\n#.........#####...#....#...#####.\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n##############################...\n\n##############################\n#............................#\n#............................#\n#............................#\n#............................#\n#....pp......................#\n#....pp......................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n##############################\n######.....###################\n#####.......#.....############\n#####...#..........###########\n#####..###.....#...###########\n#####...#.....###..###########\n#####..........#...pp#########\n######.....#.......pp.########\n#####.....###.....#...########\n####.......#.....###..########\n####...#..........#...########\n####..###.....#.......########\n####...#......##.....#########\n####..........################\n#####.....####################\n##############################\n\n\n##############################\n#########.....################\n###............#.....#########\n###........#..........########\n###.......###.....#...########\n###........#.....###..########\n###....#..........#...########\n###...###.....#.......########\n###....#.....###.....#########\n####..........#.....##########\n#####.....#..........#########\n#####....###.....#...#########\n#####.....#pp....##..#########\n#####......pp....#...#########\n#####..#.............#########\n#####...............##########\n#####..............###########\n##############################\n)\n", [3, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 0, 0, 1, 0, 1], "background background_dark wall:0,background background_light wall:1,background background_dark sprite_dr wall wall_bright_d wall_bright_r:2,background background_light sprite_0_1 wall wall_bright_d wall_end_r wall_light:3,background background_dark sprite_0_1 wall wall_bright_d wall_bright_u wall_end_r wall_light:4,background background_light sprite_0_1 wall wall_bright_d wall_bright_u wall_end_r wall_light:5,4,5,4,5,background background_dark sprite_0_1 wall wall_bright_u wall_end_r wall_light:6,background background_light sprite_ur wall wall_bright_r wall_bright_u:7,0,1,0,1,1,2,background background_light sprite_4_1 wall wall_end_d wall_end_r wall_light:8,background background_border_left background_border_up background_dark temp:9,background background_border_left background_light temp:10,background background_border_left background_dark temp:11,10,11,10,11,\nbackground background_border_down background_border_left background_light temp:12,background background_dark sprite_1_2 wall wall_bright_r wall_end_u wall_light:13,background background_light wall wall_bright_u:14,0,1,0,background background_dark wall wall_bright_d:15,background background_light sprite_1_0 wall wall_bright_r wall_end_d wall_light:16,9,background background_light temp:17,background background_dark temp:18,background background_border_right background_light temp:19,background background_border_right background_dark temp:20,19,20,17,background background_border_down background_dark temp:21,background background_light sprite_1_2 wall wall_bright_l wall_bright_r wall_end_u wall_light:22,background background_dark wall wall_bright_r wall_bright_u:23,1,0,1,background background_light sprite_dr wall wall_bright_d wall_bright_r:24,background background_dark sprite_4_1 wall wall_bright_l wall_end_d wall_end_r wall_light:25,background background_border_up background_light temp:26,18,\nbackground background_border_down background_light temp:27,background background_dark sprite_6_0 wall wall_bright_d wall_end_l wall_end_r wall_end_u wall_light:28,background background_light sprite_6_1 wall wall_bright_d wall_bright_u wall_end_l wall_end_r wall_light:29,background background_dark sprite_6_1 wall wall_bright_d wall_bright_u wall_end_l wall_end_r wall_light:30,background background_light sprite_3_1 wall wall_bright_r wall_bright_u wall_end_d wall_end_l wall_light:31,background background_border_up background_dark temp:32,27,background background_dark sprite_4_0 wall wall_bright_d wall_bright_l wall_end_r wall_end_u wall_light:33,background background_light sprite_0_1 wall wall_bright_u wall_end_r wall_light:34,background background_dark sprite_ur wall wall_bright_r wall_bright_u:35,1,0,background background_dark sprite_1_0 wall wall_bright_r wall_end_d wall_light:36,background background_border_left background_border_up background_light temp:37,18,17,18,10,11,12,background background_dark sprite_4_2 wall wall_bright_l wall_bright_r wall_end_d wall_end_u wall_light:38,26,18,10,background background_border_down background_border_left background_dark temp:39,background background_light sprite_1_2 wall wall_bright_r wall_end_u wall_light:40,\nbackground background_dark wall wall_bright_u:41,1,background background_light sprite_1_0 wall wall_bright_l wall_bright_r wall_end_d wall_light:42,32,17,18,17,18,17,21,background background_light sprite_5_2 wall wall_bright_l wall_end_d wall_end_r wall_end_u wall_light:43,32,17,18,27,background background_dark sprite_1_2 wall wall_bright_l wall_bright_r wall_end_u wall_light:44,14,0,background background_dark sprite_1_0 wall wall_bright_l wall_bright_r wall_end_d wall_light:45,26,18,17,18,17,18,17,\n11,17,18,17,21,background background_light sprite_4_0 wall wall_bright_l wall_end_r wall_end_u wall_light:46,35,1,42,32,17,18,17,20,19,20,19,18,17,18,17,39,background background_light sprite_4_0 wall wall_end_r wall_end_u wall_light:47,35,45,26,\n18,17,21,background background_light sprite_3_0 wall wall_bright_d wall_bright_r wall_end_l wall_end_u wall_light:48,background background_dark sprite_2_1 wall wall_bright_d wall_bright_u wall_end_l wall_light:49,background background_light sprite_2_1 wall wall_bright_d wall_bright_u wall_end_l wall_light:50,background background_dark sprite_3_1 wall wall_bright_r wall_bright_u wall_end_d wall_end_l wall_light:51,26,18,17,18,17,39,40,42,32,17,18,27,44,background background_light wall wall_bright_l wall_bright_r wall_bright_u:52,background background_dark wall wall_bright_d wall_bright_l wall_bright_r:53,42,32,17,18,\n17,18,27,44,background background_dark sprite_1_0 wall wall_bright_l wall_end_d wall_light:54,background background_border_right background_border_up background_light temp:55,20,17,21,background background_light sprite_4_0 wall wall_bright_d wall_bright_l wall_end_r wall_end_u wall_light:56,4,5,background background_dark sprite_4_1 wall wall_bright_l wall_bright_u wall_end_d wall_end_r wall_light:57,background background_border_up background_light con_d con_r on_background player sprite_l_rf:58,background background_dark con_r con_u on_background player sprite_l_lf:59,17,18,17,21,22,background background_light sprite_dl wall wall_bright_d wall_bright_l wall_bright_r:60,background background_dark sprite_6_1 wall wall_bright_d wall_end_l wall_end_r wall_light:61,background background_light sprite_6_2 wall wall_bright_u wall_end_d wall_end_l wall_end_r wall_light:62,32,17,11,\n10,11,10,background background_dark con_d con_l con_r on_background player sprite_l_rb:63,background background_light body_udlr con_d con_l con_r con_u on_background player sprite_l_lb:64,background background_dark body body_ur con_r con_u on_background:65,17,18,27,44,36,37,11,17,18,19,20,19,18,background background_light body body_dl con_d con_l on_background:66,background background_dark body body_inner_dl con_d con_l con_r con_u on_background:67,background background_light body body_inner_ur con_d con_l con_r con_u on_background:68,background background_dark body body_udr con_d con_r con_u on_background:69,background background_light body body_ur con_r con_u on_background:70,21,22,\n42,32,17,18,27,28,29,background background_dark sprite_6_2 wall wall_bright_u wall_end_d wall_end_l wall_end_r wall_light:71,55,18,66,background background_dark body body_udl con_d con_l con_u on_background:72,background background_light body body_inner_dl con_d con_l con_r con_u on_background:73,background background_dark body body_ulr con_l con_r con_u on_background:74,27,44,45,26,18,17,18,10,11,12,background background_dark sprite_3_2 wall wall_bright_r wall_end_d wall_end_l wall_end_u wall_light:75,26,\n18,17,background background_dark body body_dlr con_d con_l con_r on_background:76,background background_light body body_ulr con_l con_r con_u on_background:77,21,22,42,32,17,18,17,20,19,background background_border_down background_border_right background_dark temp:78,43,32,17,background background_dark body body_dr con_d con_r on_background:79,background background_light body body_inner_dr con_d con_l con_r con_u on_background:80,74,27,44,45,26,18,17,\n21,background background_light sprite_6_0 wall wall_bright_d wall_end_l wall_end_r wall_end_u wall_light:81,30,62,9,17,18,background background_light body body_dlr con_d con_l con_r on_background:82,background background_dark body body_inner_ul con_d con_l con_r con_u on_background:83,background background_light body body_ul con_l con_u on_background:84,21,22,42,32,17,18,17,11,10,11,17,18,17,76,77,18,\n27,44,45,26,18,17,18,19,20,19,20,background background_light body body_dr con_d con_r on_background:85,69,80,74,17,21,22,42,32,17,18,27,background background_dark sprite_3_0 wall wall_bright_d wall_bright_r wall_end_l wall_end_u wall_light:86,29,30,\n31,background background_border_up background_dark body body_dlr con_d con_l con_r on_background:87,background background_light body body_inner_ul con_d con_l con_r con_u on_background:88,72,84,18,27,44,54,55,20,17,21,43,background background_border_left background_border_up background_dark body body_dr con_d con_r on_background:89,background background_border_down background_border_left background_light body body_ur con_r con_u on_background:90,background background_dark sprite_5_2 wall wall_bright_l wall_end_d wall_end_r wall_end_u wall_light:91,background background_border_up background_light body body_dlr con_d con_l con_r on_background:92,74,17,18,17,21,22,background background_light sprite_dl wall wall_bright_d wall_bright_l:93,background background_dark sprite_2_1 wall wall_bright_d wall_end_l wall_light:94,\n31,32,17,11,82,background background_dark body body_inner_ur con_d con_l con_r con_u on_background:95,background background_border_left background_light body body_udr con_d con_r con_u on_background:96,background background_dark body body_inner_dr con_d con_l con_r con_u on_background:97,77,18,17,18,background background_border_down background_border_right background_light temp:98,background background_dark sprite_1_2 wall wall_bright_l wall_end_u wall_light:99,0,background background_light wall wall_bright_d wall_bright_l:100,54,55,18,17,background background_dark body body_dl con_d con_l on_background:101,background background_light body body_udl con_d con_l con_u on_background:102,72,102,background background_dark body body_ul con_l con_u on_background:103,17,\n18,98,background background_dark sprite_3_0 wall wall_end_l wall_end_u wall_light:104,background background_light sprite_ul wall wall_bright_l wall_bright_u:105,1,0,93,background background_dark sprite_3_1 wall wall_bright_r wall_end_d wall_end_l wall_light:106,26,18,17,18,17,18,17,18,27,background background_dark sprite_3_0 wall wall_bright_r wall_end_l wall_end_u wall_light:107,105,0,0,1,15,background background_light sprite_1_0 wall wall_bright_l wall_end_d wall_light:108,background background_border_right background_border_up background_dark temp:109,19,\n20,19,20,19,20,19,78,background background_light sprite_1_2 wall wall_bright_l wall_end_u wall_light:110,41,1,1,0,1,background background_dark sprite_dl wall wall_bright_d wall_bright_l:111,background background_light sprite_2_1 wall wall_bright_d wall_end_l wall_light:112,49,50,49,50,49,50,49,background background_light sprite_2_1 wall wall_bright_u wall_end_l wall_light:113,background background_dark sprite_ul wall wall_bright_l wall_bright_u:114,1,0,\n", 3, "1627891845531.74"] ], [ - "a distant sunset", - ["title a distant sunset\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nnorepeat_action\nagain_interval 0.3\n\n\nbackground_color darkblue\n\ntext_color LIGHTGRAY\n\n========\nOBJECTS\n========\n\nblack ,\nDARKBLUE\n\nBackground\nDARKBLUE\n\n\n\nWall\nDARKGREEN\n\nwall_tl\nDARKGREEN DARKBLUE \n00000\n01111\n01000\n01011\n01010\n\nwall_tr\ndarkgreen DARKBLUE\n00000\n11110\n00010\n11010\n01010\n\nwall_bl\nDARKGREEN DARKBLUE \n01010\n01011\n01000\n01111\n00000\n\nwall_br\ndarkgreen DARKBLUE\n01010\n11010\n00010\n11110\n00000\n\nwall_h\ndarkgreen DARKBLUE\n00000\n11111\n00000\n11111\n00000\n\nwall_v\ndarkgreen DARKBLUE\n01010\n01010\n01010\n01010\n01010\n\nwall_t\nDARKGREEN DARKBLUE\n01010\n11011\n00000\n11111\n00000\n\n\nPlayer\ngreen\n0.0.0\n.000.\n00000\n.000.\n0.0.0\n\n\n\nhand\nTRANSPARENT\n..000\n..000\n0.000\n.0000\n...00\n\nhand_turn\nTRANSPARENT\n000..\n.000.\n..000\n0.000\n.0000\n\n\nbody_1_1\nred blue\n....1\n...11\n..111\n.1111\n11111\n\nbody_1_2\nred blue\n11100\n11100\n11100\n11100\n11100\n\nbody_1_3\nred blue\n0....\n00...\n000..\n0000.\n00000\n\nbody_1_4\nblue\n\nbody_1_5\nred blue\n11100\n11100\n11100\n11000\n11000\n\nbody_1_6\nred\n\nbody_1_7\nred blue\n11111\n.1111\n..111\n...11\n....1\n\nbody_1_8\nred blue\n11000\n11000\n11000\n11000\n11000\n\nbody_1_9\nred\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\nbody_2_1\nred blue\n....0\n...00\n..100\n.1110\n11111\n\nbody_2_2\nred \n\nbody_2_3\nred blue\n0....\n00...\n000..\n0000.\n00000\n\nbody_2_4\nblue\n\nbody_2_5\nred blue\n00000\n10000\n11100\n11110\n11111\n\nbody_2_6\nred\n\nbody_2_7\nred blue\n11111\n.1111\n..111\n...11\n....1\n\nbody_2_8\nblue blue\n11000\n11000\n11000\n11000\n11000\n\nbody_2_9\nred blue\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\nbody_3_1\nred red\n....1\n...11\n..111\n.1111\n11111\n\nbody_3_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_3_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_3_4\nred blue\n00000\n00000\n00111\n11111\n11111\n\nbody_3_5\nred blue\n00000\n00000\n11111\n11111\n11111\n\nbody_3_6\nred blue\n00000\n00000\n11111\n11111\n11111\n\nbody_3_7\nblue blue\n11111\n.1111\n..111\n...11\n....1\n\nbody_3_8\nblue blue\n11000\n11000\n11000\n11000\n11000\n\nbody_3_9\nblue\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\nbody_4_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_4_2\nred \n\nbody_4_3\nred blue\n0....\n00...\n001..\n0111.\n11111\n\nbody_4_4\nred\n\nbody_4_5\nred blue\n00000\n00001\n00111\n01111\n11111\n\nbody_4_6\nblue\n\nbody_4_7\nred blue\n00001\n.0011\n..111\n...11\n....1\n\nbody_4_8\nblue blue\n11000\n11000\n11000\n11000\n11000\n\nbody_4_9\nblue blue\n10000\n1100.\n111..\n11...\n1....\n\n\nbody_5_1\nblue red\n....1\n...11\n..111\n.1111\n11111\n\nbody_5_2\nblue red\n11100\n11100\n11100\n11100\n11100\n\nbody_5_3\nblue red\n0....\n00...\n000..\n0000.\n00000\n\nbody_5_4\nred\n\nbody_5_5\nblue red\n11100\n11100\n11100\n11000\n11000\n\nbody_5_6\nblue\n\nbody_5_7\nblue red\n11111\n.1111\n..111\n...11\n....1\n\nbody_5_8\nblue red\n11000\n11000\n11000\n11000\n11000\n\nbody_5_9\nblue\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\nbody_6_1\nblue red\n....0\n...00\n..100\n.1110\n11111\n\nbody_6_2\nblue \n\nbody_6_3\nblue red\n0....\n00...\n000..\n0000.\n00000\n\nbody_6_4\nred\n\nbody_6_5\nblue red\n00000\n10000\n11100\n11110\n11111\n\nbody_6_6\nblue\n\nbody_6_7\nblue red\n11111\n.1111\n..111\n...11\n....1\n\nbody_6_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_6_9\nblue red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\n\n\nbody_7_1\nblue blue\n....1\n...11\n..111\n.1111\n11111\n\nbody_7_2\nblue blue\n11100\n11100\n11100\n11100\n11100\n\nbody_7_3\nblue blue\n0....\n00...\n000..\n0000.\n00000\n\nbody_7_4\nblue red\n00000\n00000\n00111\n11111\n11111\n\nbody_7_5\nblue red\n00000\n00000\n11111\n11111\n11111\n\nbody_7_6\nblue red\n00000\n00000\n11111\n11111\n11111\n\nbody_7_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_7_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_7_9\nred\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\n\nbody_8_1\nblue blue\n....0\n...00\n..100\n.1110\n11111\n\nbody_8_2\nblue \n\nbody_8_3\nblue red\n0....\n00...\n001..\n0111.\n11111\n\nbody_8_4\nblue\n\nbody_8_5\nblue red\n00000\n00001\n00111\n01111\n11111\n\nbody_8_6\nred\n\nbody_8_7\nblue red\n00001\n.0011\n..111\n...11\n....1\n\nbody_8_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_8_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\n\nball_wwww\nLIGHTGRAY LIGHTGRAY\n.000.\n00000\n00111\n11111\n.111.\n\nball_bbbb\nDARKGRAY DARKGRAY\n.000.\n00000\n00111\n11111\n.111.\n\nball_bbww\nDARKGRAY LIGHTGRAY\n.000.\n00000\n00111\n11111\n.111.\n\nball_wwbb\nLIGHTGRAY DARKGRAY\n.000.\n00000\n00111\n11111\n.111.\n\nball_bwbw\nLIGHTGRAY DARKGRAY \n.001.\n00011\n00111\n00111\n.011.\n\nball_wbwb\nDARKGRAY LIGHTGRAY \n.001.\n00011\n00111\n00111\n.011.\n\nt\nTRANSPARENT\n\n\n\nsprt_0_0 !\n#ec7153\n00000\n00000\n00000\n00000\n00000\n\nsprt_1_0 @\n#ec7153 #ecd25c\n00000\n00011\n00111\n00111\n00111\n\nsprt_2_0 £\n#ec7153 #ecd25c\n00000\n11000\n11100\n11100\n11100\n\nsprt_3_0 $\n#ec7153\n00000\n00000\n00000\n00000\n00000\n\nsprt_0_1 %\n#ec7153 #ecd25c\n00000\n00000\n00111\n01111\n01111\n\nsprt_1_1 ^\n#ec7153 #ecd25c\n00111\n00011\n10000\n11000\n11000\n\nsprt_2_1 &\n#ecd25c #ec7153\n00011\n00111\n11110\n11100\n11100\n\nsprt_3_1 *\n#ec7153 #ecd25c\n00000\n00000\n11100\n11110\n11110\n\nsprt_0_2 _\n#1ca4ff #44875f\n01111\n01111\n00111\n00000\n00000\n\nsprt_1_2 +\n#44875f #1ca4ff\n00111\n00111\n01111\n11100\n11000\n\nsprt_2_2 {\n#1ca4ff #44875f\n00011\n00011\n00001\n11000\n11100\n\nsprt_3_2 }\n#44875f #1ca4ff\n00001\n00001\n00011\n11111\n11111\n\nsprt_0_3 :\n#1ca4ff\n00000\n00000\n00000\n00000\n00000\n\nsprt_1_3 \"\n#1ca4ff #44875f\n00111\n00111\n00111\n00011\n00000\n\nsprt_2_3 |\n#44875f #1ca4ff\n00011\n00011\n00011\n00111\n11111\n\nsprt_3_3 <\n#1ca4ff\n00000\n00000\n00000\n00000\n00000\n\n\ndarkred >\ndarkred\n\ndarkblue ?\ndarkblue\n\nstars ~\nwhite\n.....\n.....\n.0...\n.....\n.....\n\n=======\nLEGEND\n=======\n\nball = ball_wwww or ball_bbbb or ball_bbww or ball_wwbb or ball_bwbw or ball_wbwb\n\n\nbody = body_1_1 or body_1_2 or body_1_3 or body_1_4 or body_1_5 or body_1_6 or body_1_7 or body_1_8 or body_1_9 or body_2_1 or body_2_2 or body_2_3 or body_2_4 or body_2_5 or body_2_6 or body_2_7 or body_2_8 or body_2_9 or body_3_1 or body_3_2 or body_3_3 or body_3_4 or body_3_5 or body_3_6 or body_3_7 or body_3_8 or body_3_9 or body_4_1 or body_4_2 or body_4_3 or body_4_4 or body_4_5 or body_4_6 or body_4_7 or body_4_8 or body_4_9 or body_5_1 or body_5_2 or body_5_3 or body_5_4 or body_5_5 or body_5_6 or body_5_7 or body_5_8 or body_5_9 or body_6_1 or body_6_2 or body_6_3 or body_6_4 or body_6_5 or body_6_6 or body_6_7 or body_6_8 or body_6_9 or body_7_1 or body_7_2 or body_7_3 or body_7_4 or body_7_5 or body_7_6 or body_7_7 or body_7_8 or body_7_9 or body_8_1 or body_8_2 or body_8_3 or body_8_4 or body_8_5 or body_8_6 or body_8_7 or body_8_8 or body_8_9\n\nhands = hand or hand_turn\n\napparatus = hands or body or ball\n. = Background\n# = Wall\nP = Player\n\n1 = body_1_1\n2 = body_1_2 and ball_wwww\n3 = body_1_3\n4 = body_1_4 and ball_wwww\n5 = body_1_5 and hand and Player\n6 = body_1_6 and ball_wwww\n7 = body_1_7\n8 = body_1_8 and ball_wwww\n9 = body_1_9\n\n\nq = wall and body_3_1 \nw = wall and body_3_2 and ball_wwww\ne = wall and body_3_3 \nr = wall and body_3_4 and ball_wwbb\ng = wall and body_3_5 \ny = wall and body_3_6 and ball_wwbb\nu = wall and body_3_7 \ni = wall and body_3_8 and ball_bbbb\no = wall and body_3_9 \n\n(\nq = wall \nw = wall and ball_wwww\ne = wall \nr = wall and ball_wwbb\ng = wall \ny = wall and ball_wwbb\nu = wall \ni = wall and ball_bbbb\no = wall \n)\n\nz = wall_tl and wall\nx = wall_tr and wall\nc = wall_bl and wall\nf = wall_br and wall\nb = wall_h and wall\nn = wall_v and wall\nm = wall_t and wall\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nblack\nWall\nPlayer\nbody\nball\nhands\nwall_tl, wall_tr, wall_bl, wall_br, wall_h, wall_v, wall_t\nt\n\nsprt_0_0, sprt_0_1, sprt_0_2, sprt_0_3, sprt_1_0, sprt_1_1, sprt_1_2, sprt_1_3, sprt_2_0, sprt_2_1, sprt_2_2, sprt_2_3, sprt_3_0, sprt_3_1, sprt_3_2, sprt_3_3, darkred, darkblue, stars\n\n======\nRULES\n======\n\n\n(ball translations)\n[ moving player ] [ ball no wall ] -> [ moving player ] [ moving ball ]\n\n(ball rotations)\n\nright [ ball | action player | ball ] -> [ down ball | action player | up ball ]\ndown [ ball | action player | ball ] -> [ left ball | action player | right ball ]\n\n\n(mark north of hand with t)\ndown [ | hand_turn ] -> [ t | hand_turn ]\nright [ hand_turn ] [ ball | t no wall | ball ] -> [ hand_turn ] [ down ball | t | left ball]\nright [ hand_turn ] [ ball | no wall no t | ball ] -> [ hand_turn ] [ right ball | no t | up ball]\n[t]->[]\n\n[ up ball_wwww ] -> [ ball_wwbb ]\n[ down ball_wwww ] -> [ ball_bbww ]\n[ right ball_wwww ] -> [ ball_wbwb ]\n[ left ball_wwww ] -> [ ball_bwbw ]\n\n[ up ball_bbbb ] -> [ ball_bbww ]\n[ down ball_bbbb ] -> [ ball_wwbb ]\n[ right ball_bbbb ] -> [ ball_bwbw ]\n[ left ball_bbbb ] -> [ ball_wbwb ]\n\n[ up ball_bbww ] -> [ ball_wwww ]\n[ down ball_bbww ] -> [ ball_bbbb ]\n[ right ball_bbww ] -> [ ball_bbww ]\n[ left ball_bbww ] -> [ ball_bbww ]\n\n[ up ball_wwbb ] -> [ ball_bbbb ]\n[ down ball_wwbb ] -> [ ball_wwww ]\n[ right ball_wwbb ] -> [ ball_wwbb ]\n[ left ball_wwbb ] -> [ ball_wwbb ]\n\n[ up ball_bwbw ] -> [ ball_bwbw ]\n[ down ball_bwbw ] -> [ ball_bwbw ]\n[ right ball_bwbw ] -> [ ball_wwww ]\n[ left ball_bwbw ] -> [ ball_bbbb ]\n\n[ up ball_wbwb ] -> [ ball_wbwb ]\n[ down ball_wbwb ] -> [ ball_wbwb ]\n[ right ball_wbwb ] -> [ ball_bbbb ]\n[ left ball_wbwb ] -> [ ball_wwww ]\n\n\n\n\n[ action player ] [ body_1_1 no wall ] -> [ action player ] [ body_2_1 ]\n[ action player ] [ body_1_2 no wall ] -> [ action player ] [ body_2_2 ]\n[ action player ] [ body_1_3 no wall ] -> [ action player ] [ body_2_3 ]\n[ action player ] [ body_1_4 no wall ] -> [ action player ] [ body_2_4 ]\n[ action player ] [ body_1_5 no wall ] -> [ action player ] [ body_2_5 ]\n[ action player ] [ body_1_6 no wall ] -> [ action player ] [ body_2_6 ]\n[ action player ] [ body_1_7 no wall ] -> [ action player ] [ body_2_7 ]\n[ action player ] [ body_1_8 no wall ] -> [ action player ] [ body_2_8 ]\n[ action player ] [ body_1_9 no wall ] -> [ action player ] [ body_2_9 ]\n\n[ action player ] [ body_3_1 no wall ] -> [ action player ] [ body_4_1 ]\n[ action player ] [ body_3_2 no wall ] -> [ action player ] [ body_4_2 ]\n[ action player ] [ body_3_3 no wall ] -> [ action player ] [ body_4_3 ]\n[ action player ] [ body_3_4 no wall ] -> [ action player ] [ body_4_4 ]\n[ action player ] [ body_3_5 no wall ] -> [ action player ] [ body_4_5 ]\n[ action player ] [ body_3_6 no wall ] -> [ action player ] [ body_4_6 ]\n[ action player ] [ body_3_7 no wall ] -> [ action player ] [ body_4_7 ]\n[ action player ] [ body_3_8 no wall ] -> [ action player ] [ body_4_8 ]\n[ action player ] [ body_3_9 no wall ] -> [ action player ] [ body_4_9 ]\n\n[ action player ] [ body_5_1 no wall ] -> [ action player ] [ body_6_1 ]\n[ action player ] [ body_5_2 no wall ] -> [ action player ] [ body_6_2 ]\n[ action player ] [ body_5_3 no wall ] -> [ action player ] [ body_6_3 ]\n[ action player ] [ body_5_4 no wall ] -> [ action player ] [ body_6_4 ]\n[ action player ] [ body_5_5 no wall ] -> [ action player ] [ body_6_5 ]\n[ action player ] [ body_5_6 no wall ] -> [ action player ] [ body_6_6 ]\n[ action player ] [ body_5_7 no wall ] -> [ action player ] [ body_6_7 ]\n[ action player ] [ body_5_8 no wall ] -> [ action player ] [ body_6_8 ]\n[ action player ] [ body_5_9 no wall ] -> [ action player ] [ body_6_9 ]\n\n[ action player ] [ body_7_1 no wall ] -> [ action player ] [ body_8_1 ]\n[ action player ] [ body_7_2 no wall ] -> [ action player ] [ body_8_2 ]\n[ action player ] [ body_7_3 no wall ] -> [ action player ] [ body_8_3 ]\n[ action player ] [ body_7_4 no wall ] -> [ action player ] [ body_8_4 ]\n[ action player ] [ body_7_5 no wall ] -> [ action player ] [ body_8_5 ]\n[ action player ] [ body_7_6 no wall ] -> [ action player ] [ body_8_6 ]\n[ action player ] [ body_7_7 no wall ] -> [ action player ] [ body_8_7 ]\n[ action player ] [ body_7_8 no wall ] -> [ action player ] [ body_8_8 ]\n[ action player ] [ body_7_9 no wall ] -> [ action player ] [ body_8_9 ]\n\n\n[ hand_turn ] [ body_2_1 no wall ] -> [ hand_turn ] [ body_3_1 ]\n[ hand_turn ] [ body_2_2 no wall ] -> [ hand_turn ] [ body_3_2 ]\n[ hand_turn ] [ body_2_3 no wall ] -> [ hand_turn ] [ body_3_3 ]\n[ hand_turn ] [ body_2_4 no wall ] -> [ hand_turn ] [ body_3_4 ]\n[ hand_turn ] [ body_2_5 no wall ] -> [ hand_turn ] [ body_3_5 ]\n[ hand_turn ] [ body_2_6 no wall ] -> [ hand_turn ] [ body_3_6 ]\n[ hand_turn ] [ body_2_7 no wall ] -> [ hand_turn ] [ body_3_7 ]\n[ hand_turn ] [ body_2_8 no wall ] -> [ hand_turn ] [ body_3_8 ]\n[ hand_turn ] [ body_2_9 no wall ] -> [ hand_turn ] [ body_3_9 ]\n\n[ hand_turn ] [ body_4_1 no wall ] -> [ hand_turn ] [ body_5_1 ]\n[ hand_turn ] [ body_4_2 no wall ] -> [ hand_turn ] [ body_5_2 ]\n[ hand_turn ] [ body_4_3 no wall ] -> [ hand_turn ] [ body_5_3 ]\n[ hand_turn ] [ body_4_4 no wall ] -> [ hand_turn ] [ body_5_4 ]\n[ hand_turn ] [ body_4_5 no wall ] -> [ hand_turn ] [ body_5_5 ]\n[ hand_turn ] [ body_4_6 no wall ] -> [ hand_turn ] [ body_5_6 ]\n[ hand_turn ] [ body_4_7 no wall ] -> [ hand_turn ] [ body_5_7 ]\n[ hand_turn ] [ body_4_8 no wall ] -> [ hand_turn ] [ body_5_8 ]\n[ hand_turn ] [ body_4_9 no wall ] -> [ hand_turn ] [ body_5_9 ]\n\n[ hand_turn ] [ body_6_1 no wall ] -> [ hand_turn ] [ body_7_1 ]\n[ hand_turn ] [ body_6_2 no wall ] -> [ hand_turn ] [ body_7_2 ]\n[ hand_turn ] [ body_6_3 no wall ] -> [ hand_turn ] [ body_7_3 ]\n[ hand_turn ] [ body_6_4 no wall ] -> [ hand_turn ] [ body_7_4 ]\n[ hand_turn ] [ body_6_5 no wall ] -> [ hand_turn ] [ body_7_5 ]\n[ hand_turn ] [ body_6_6 no wall ] -> [ hand_turn ] [ body_7_6 ]\n[ hand_turn ] [ body_6_7 no wall ] -> [ hand_turn ] [ body_7_7 ]\n[ hand_turn ] [ body_6_8 no wall ] -> [ hand_turn ] [ body_7_8 ]\n[ hand_turn ] [ body_6_9 no wall ] -> [ hand_turn ] [ body_7_9 ]\n\n[ hand_turn ] [ body_8_1 no wall ] -> [ hand_turn ] [ body_1_1 ]\n[ hand_turn ] [ body_8_2 no wall ] -> [ hand_turn ] [ body_1_2 ]\n[ hand_turn ] [ body_8_3 no wall ] -> [ hand_turn ] [ body_1_3 ]\n[ hand_turn ] [ body_8_4 no wall ] -> [ hand_turn ] [ body_1_4 ]\n[ hand_turn ] [ body_8_5 no wall ] -> [ hand_turn ] [ body_1_5 ]\n[ hand_turn ] [ body_8_6 no wall ] -> [ hand_turn ] [ body_1_6 ]\n[ hand_turn ] [ body_8_7 no wall ] -> [ hand_turn ] [ body_1_7 ]\n[ hand_turn ] [ body_8_8 no wall ] -> [ hand_turn ] [ body_1_8 ]\n[ hand_turn ] [ body_8_9 no wall ] -> [ hand_turn ] [ body_1_9 ]\n\n\n\n\n\n\n\n\n\n\n(need to do body rotations as well here!)\n\n(move object)\n[moving player ] [ stationary apparatus] -> [ moving player ] [ moving apparatus]\n\n\nright [ ball | action player | ball ] -> [ down ball | action player | up ball ]\ndown [ ball | action player | ball ] -> [ left ball | action player | right ball ]\n\n\ndown [ | hand_turn ] -> [ t | hand_turn ]\nright [ hand_turn ] [ ball | t | ball ] -> [ hand_turn ] [ down ball | t | left ball]\nright [ hand_turn ] [ ball | no t | ball ] -> [ hand_turn ] [ right ball | no t | up ball]\n\n\n\n[ hand_turn ] -> [ hand]\n[ action player ] [ hand ] -> [ action player ] [ hand_turn ] again \n\n[t]->[]\n\n[ body wall ] -> [ stationary body wall ] \n[ ball wall ] -> [ stationary ball wall ]\n\n[ > body | wall ] -> cancel\n\n\nlate down [ ball_wwww body_3_2 | player | ball_bbbb body_3_8 ] -> [ ball_wwww body_3_2 | player t | ball_bbbb body_3_8 ]\n\nlate right [ ball_wwbb body_3_4 | player t| ball_wwbb body_3_6 ] -> win \n\nlate [t] -> [ ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nno player\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n,,zbbbx,,\n,,nqwen,,\n,,nrgyn,,\n,,nuion,,\nzbmbbbmbx\nn.......n\nn.......n\nn..123..n\nn..456..n\nn..789..n\nn.......n\nn.......n\ncbbbbbbbf\n\nmessage The day is over\n\n!@£$\n%^&*\n_+{}\n:\"|<\n\n\n!!!$\n!@£!\n:\"|:\n::::\n\n\n>>>>\n>>>>\n????\n????\n\n?\n",[3,0,0,1,2,2,3,0,1,1,2,2,3,3,3,0,1,1,4],"background black:0,0,0,0,background wall wall_tl:1,background wall wall_v:2,2,2,2,\n2,2,2,background wall wall_bl:3,0,0,0,0,background wall wall_h:4,\nbackground:5,5,5,5,5,5,5,4,1,\n2,2,2,background wall wall_t:6,5,5,5,5,5,\n5,5,4,4,background body_3_1 wall:7,background ball_wwbb body_3_4 wall:8,background body_3_7 wall:9,4,5,\n5,background body_3_1:10,background ball_wwww body_3_4:11,background body_3_7:12,5,5,4,4,background ball_wwww body_3_2 wall:13,\nbackground body_3_5 wall:14,background ball_bbbb body_3_8 wall:15,4,5,5,background ball_wbwb body_3_2:16,background body_3_5 hand player:17,background ball_wbwb body_3_8:18,5,\n5,4,4,background body_3_3 wall:19,background ball_wwbb body_3_6 wall:20,background body_3_9 wall:21,4,5,5,\nbackground body_3_3:22,background ball_bbbb body_3_6:23,background body_3_9:24,5,5,4,background wall wall_tr:25,2,2,\n2,6,5,5,5,5,5,5,5,\n4,0,0,0,0,4,5,5,5,\n5,5,5,5,4,0,0,0,0,\n25,2,2,2,2,2,2,2,background wall wall_br:26,\n",1,"1627891893861.785"] + "a distant sunset", + ["title a distant sunset\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nnorepeat_action\nagain_interval 0.3\n\n\nbackground_color darkblue\n\ntext_color LIGHTGRAY\n\n========\nOBJECTS\n========\n\nblack ,\nDARKBLUE\n\nBackground\nDARKBLUE\n\n\n\nWall\nDARKGREEN\n\nwall_tl\nDARKGREEN DARKBLUE \n00000\n01111\n01000\n01011\n01010\n\nwall_tr\ndarkgreen DARKBLUE\n00000\n11110\n00010\n11010\n01010\n\nwall_bl\nDARKGREEN DARKBLUE \n01010\n01011\n01000\n01111\n00000\n\nwall_br\ndarkgreen DARKBLUE\n01010\n11010\n00010\n11110\n00000\n\nwall_h\ndarkgreen DARKBLUE\n00000\n11111\n00000\n11111\n00000\n\nwall_v\ndarkgreen DARKBLUE\n01010\n01010\n01010\n01010\n01010\n\nwall_t\nDARKGREEN DARKBLUE\n01010\n11011\n00000\n11111\n00000\n\n\nPlayer\ngreen\n0.0.0\n.000.\n00000\n.000.\n0.0.0\n\n\n\nhand\nTRANSPARENT\n..000\n..000\n0.000\n.0000\n...00\n\nhand_turn\nTRANSPARENT\n000..\n.000.\n..000\n0.000\n.0000\n\n\nbody_1_1\nred blue\n....1\n...11\n..111\n.1111\n11111\n\nbody_1_2\nred blue\n11100\n11100\n11100\n11100\n11100\n\nbody_1_3\nred blue\n0....\n00...\n000..\n0000.\n00000\n\nbody_1_4\nblue\n\nbody_1_5\nred blue\n11100\n11100\n11100\n11000\n11000\n\nbody_1_6\nred\n\nbody_1_7\nred blue\n11111\n.1111\n..111\n...11\n....1\n\nbody_1_8\nred blue\n11000\n11000\n11000\n11000\n11000\n\nbody_1_9\nred\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\nbody_2_1\nred blue\n....0\n...00\n..100\n.1110\n11111\n\nbody_2_2\nred \n\nbody_2_3\nred blue\n0....\n00...\n000..\n0000.\n00000\n\nbody_2_4\nblue\n\nbody_2_5\nred blue\n00000\n10000\n11100\n11110\n11111\n\nbody_2_6\nred\n\nbody_2_7\nred blue\n11111\n.1111\n..111\n...11\n....1\n\nbody_2_8\nblue blue\n11000\n11000\n11000\n11000\n11000\n\nbody_2_9\nred blue\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\nbody_3_1\nred red\n....1\n...11\n..111\n.1111\n11111\n\nbody_3_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_3_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_3_4\nred blue\n00000\n00000\n00111\n11111\n11111\n\nbody_3_5\nred blue\n00000\n00000\n11111\n11111\n11111\n\nbody_3_6\nred blue\n00000\n00000\n11111\n11111\n11111\n\nbody_3_7\nblue blue\n11111\n.1111\n..111\n...11\n....1\n\nbody_3_8\nblue blue\n11000\n11000\n11000\n11000\n11000\n\nbody_3_9\nblue\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\nbody_4_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_4_2\nred \n\nbody_4_3\nred blue\n0....\n00...\n001..\n0111.\n11111\n\nbody_4_4\nred\n\nbody_4_5\nred blue\n00000\n00001\n00111\n01111\n11111\n\nbody_4_6\nblue\n\nbody_4_7\nred blue\n00001\n.0011\n..111\n...11\n....1\n\nbody_4_8\nblue blue\n11000\n11000\n11000\n11000\n11000\n\nbody_4_9\nblue blue\n10000\n1100.\n111..\n11...\n1....\n\n\nbody_5_1\nblue red\n....1\n...11\n..111\n.1111\n11111\n\nbody_5_2\nblue red\n11100\n11100\n11100\n11100\n11100\n\nbody_5_3\nblue red\n0....\n00...\n000..\n0000.\n00000\n\nbody_5_4\nred\n\nbody_5_5\nblue red\n11100\n11100\n11100\n11000\n11000\n\nbody_5_6\nblue\n\nbody_5_7\nblue red\n11111\n.1111\n..111\n...11\n....1\n\nbody_5_8\nblue red\n11000\n11000\n11000\n11000\n11000\n\nbody_5_9\nblue\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\nbody_6_1\nblue red\n....0\n...00\n..100\n.1110\n11111\n\nbody_6_2\nblue \n\nbody_6_3\nblue red\n0....\n00...\n000..\n0000.\n00000\n\nbody_6_4\nred\n\nbody_6_5\nblue red\n00000\n10000\n11100\n11110\n11111\n\nbody_6_6\nblue\n\nbody_6_7\nblue red\n11111\n.1111\n..111\n...11\n....1\n\nbody_6_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_6_9\nblue red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\n\n\nbody_7_1\nblue blue\n....1\n...11\n..111\n.1111\n11111\n\nbody_7_2\nblue blue\n11100\n11100\n11100\n11100\n11100\n\nbody_7_3\nblue blue\n0....\n00...\n000..\n0000.\n00000\n\nbody_7_4\nblue red\n00000\n00000\n00111\n11111\n11111\n\nbody_7_5\nblue red\n00000\n00000\n11111\n11111\n11111\n\nbody_7_6\nblue red\n00000\n00000\n11111\n11111\n11111\n\nbody_7_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_7_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_7_9\nred\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\n\nbody_8_1\nblue blue\n....0\n...00\n..100\n.1110\n11111\n\nbody_8_2\nblue \n\nbody_8_3\nblue red\n0....\n00...\n001..\n0111.\n11111\n\nbody_8_4\nblue\n\nbody_8_5\nblue red\n00000\n00001\n00111\n01111\n11111\n\nbody_8_6\nred\n\nbody_8_7\nblue red\n00001\n.0011\n..111\n...11\n....1\n\nbody_8_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_8_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\n\nball_wwww\nLIGHTGRAY LIGHTGRAY\n.000.\n00000\n00111\n11111\n.111.\n\nball_bbbb\nDARKGRAY DARKGRAY\n.000.\n00000\n00111\n11111\n.111.\n\nball_bbww\nDARKGRAY LIGHTGRAY\n.000.\n00000\n00111\n11111\n.111.\n\nball_wwbb\nLIGHTGRAY DARKGRAY\n.000.\n00000\n00111\n11111\n.111.\n\nball_bwbw\nLIGHTGRAY DARKGRAY \n.001.\n00011\n00111\n00111\n.011.\n\nball_wbwb\nDARKGRAY LIGHTGRAY \n.001.\n00011\n00111\n00111\n.011.\n\nt\nTRANSPARENT\n\n\n\nsprt_0_0 !\n#ec7153\n00000\n00000\n00000\n00000\n00000\n\nsprt_1_0 @\n#ec7153 #ecd25c\n00000\n00011\n00111\n00111\n00111\n\nsprt_2_0 £\n#ec7153 #ecd25c\n00000\n11000\n11100\n11100\n11100\n\nsprt_3_0 $\n#ec7153\n00000\n00000\n00000\n00000\n00000\n\nsprt_0_1 %\n#ec7153 #ecd25c\n00000\n00000\n00111\n01111\n01111\n\nsprt_1_1 ^\n#ec7153 #ecd25c\n00111\n00011\n10000\n11000\n11000\n\nsprt_2_1 &\n#ecd25c #ec7153\n00011\n00111\n11110\n11100\n11100\n\nsprt_3_1 *\n#ec7153 #ecd25c\n00000\n00000\n11100\n11110\n11110\n\nsprt_0_2 _\n#1ca4ff #44875f\n01111\n01111\n00111\n00000\n00000\n\nsprt_1_2 +\n#44875f #1ca4ff\n00111\n00111\n01111\n11100\n11000\n\nsprt_2_2 {\n#1ca4ff #44875f\n00011\n00011\n00001\n11000\n11100\n\nsprt_3_2 }\n#44875f #1ca4ff\n00001\n00001\n00011\n11111\n11111\n\nsprt_0_3 :\n#1ca4ff\n00000\n00000\n00000\n00000\n00000\n\nsprt_1_3 \"\n#1ca4ff #44875f\n00111\n00111\n00111\n00011\n00000\n\nsprt_2_3 |\n#44875f #1ca4ff\n00011\n00011\n00011\n00111\n11111\n\nsprt_3_3 <\n#1ca4ff\n00000\n00000\n00000\n00000\n00000\n\n\ndarkred >\ndarkred\n\ndarkblue ?\ndarkblue\n\nstars ~\nwhite\n.....\n.....\n.0...\n.....\n.....\n\n=======\nLEGEND\n=======\n\nball = ball_wwww or ball_bbbb or ball_bbww or ball_wwbb or ball_bwbw or ball_wbwb\n\n\nbody = body_1_1 or body_1_2 or body_1_3 or body_1_4 or body_1_5 or body_1_6 or body_1_7 or body_1_8 or body_1_9 or body_2_1 or body_2_2 or body_2_3 or body_2_4 or body_2_5 or body_2_6 or body_2_7 or body_2_8 or body_2_9 or body_3_1 or body_3_2 or body_3_3 or body_3_4 or body_3_5 or body_3_6 or body_3_7 or body_3_8 or body_3_9 or body_4_1 or body_4_2 or body_4_3 or body_4_4 or body_4_5 or body_4_6 or body_4_7 or body_4_8 or body_4_9 or body_5_1 or body_5_2 or body_5_3 or body_5_4 or body_5_5 or body_5_6 or body_5_7 or body_5_8 or body_5_9 or body_6_1 or body_6_2 or body_6_3 or body_6_4 or body_6_5 or body_6_6 or body_6_7 or body_6_8 or body_6_9 or body_7_1 or body_7_2 or body_7_3 or body_7_4 or body_7_5 or body_7_6 or body_7_7 or body_7_8 or body_7_9 or body_8_1 or body_8_2 or body_8_3 or body_8_4 or body_8_5 or body_8_6 or body_8_7 or body_8_8 or body_8_9\n\nhands = hand or hand_turn\n\napparatus = hands or body or ball\n. = Background\n# = Wall\nP = Player\n\n1 = body_1_1\n2 = body_1_2 and ball_wwww\n3 = body_1_3\n4 = body_1_4 and ball_wwww\n5 = body_1_5 and hand and Player\n6 = body_1_6 and ball_wwww\n7 = body_1_7\n8 = body_1_8 and ball_wwww\n9 = body_1_9\n\n\nq = wall and body_3_1 \nw = wall and body_3_2 and ball_wwww\ne = wall and body_3_3 \nr = wall and body_3_4 and ball_wwbb\ng = wall and body_3_5 \ny = wall and body_3_6 and ball_wwbb\nu = wall and body_3_7 \ni = wall and body_3_8 and ball_bbbb\no = wall and body_3_9 \n\n(\nq = wall \nw = wall and ball_wwww\ne = wall \nr = wall and ball_wwbb\ng = wall \ny = wall and ball_wwbb\nu = wall \ni = wall and ball_bbbb\no = wall \n)\n\nz = wall_tl and wall\nx = wall_tr and wall\nc = wall_bl and wall\nf = wall_br and wall\nb = wall_h and wall\nn = wall_v and wall\nm = wall_t and wall\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nblack\nWall\nPlayer\nbody\nball\nhands\nwall_tl, wall_tr, wall_bl, wall_br, wall_h, wall_v, wall_t\nt\n\nsprt_0_0, sprt_0_1, sprt_0_2, sprt_0_3, sprt_1_0, sprt_1_1, sprt_1_2, sprt_1_3, sprt_2_0, sprt_2_1, sprt_2_2, sprt_2_3, sprt_3_0, sprt_3_1, sprt_3_2, sprt_3_3, darkred, darkblue, stars\n\n======\nRULES\n======\n\n\n(ball translations)\n[ moving player ] [ ball no wall ] -> [ moving player ] [ moving ball ]\n\n(ball rotations)\n\nright [ ball | action player | ball ] -> [ down ball | action player | up ball ]\ndown [ ball | action player | ball ] -> [ left ball | action player | right ball ]\n\n\n(mark north of hand with t)\ndown [ | hand_turn ] -> [ t | hand_turn ]\nright [ hand_turn ] [ ball | t no wall | ball ] -> [ hand_turn ] [ down ball | t | left ball]\nright [ hand_turn ] [ ball | no wall no t | ball ] -> [ hand_turn ] [ right ball | no t | up ball]\n[t]->[]\n\n[ up ball_wwww ] -> [ ball_wwbb ]\n[ down ball_wwww ] -> [ ball_bbww ]\n[ right ball_wwww ] -> [ ball_wbwb ]\n[ left ball_wwww ] -> [ ball_bwbw ]\n\n[ up ball_bbbb ] -> [ ball_bbww ]\n[ down ball_bbbb ] -> [ ball_wwbb ]\n[ right ball_bbbb ] -> [ ball_bwbw ]\n[ left ball_bbbb ] -> [ ball_wbwb ]\n\n[ up ball_bbww ] -> [ ball_wwww ]\n[ down ball_bbww ] -> [ ball_bbbb ]\n[ right ball_bbww ] -> [ ball_bbww ]\n[ left ball_bbww ] -> [ ball_bbww ]\n\n[ up ball_wwbb ] -> [ ball_bbbb ]\n[ down ball_wwbb ] -> [ ball_wwww ]\n[ right ball_wwbb ] -> [ ball_wwbb ]\n[ left ball_wwbb ] -> [ ball_wwbb ]\n\n[ up ball_bwbw ] -> [ ball_bwbw ]\n[ down ball_bwbw ] -> [ ball_bwbw ]\n[ right ball_bwbw ] -> [ ball_wwww ]\n[ left ball_bwbw ] -> [ ball_bbbb ]\n\n[ up ball_wbwb ] -> [ ball_wbwb ]\n[ down ball_wbwb ] -> [ ball_wbwb ]\n[ right ball_wbwb ] -> [ ball_bbbb ]\n[ left ball_wbwb ] -> [ ball_wwww ]\n\n\n\n\n[ action player ] [ body_1_1 no wall ] -> [ action player ] [ body_2_1 ]\n[ action player ] [ body_1_2 no wall ] -> [ action player ] [ body_2_2 ]\n[ action player ] [ body_1_3 no wall ] -> [ action player ] [ body_2_3 ]\n[ action player ] [ body_1_4 no wall ] -> [ action player ] [ body_2_4 ]\n[ action player ] [ body_1_5 no wall ] -> [ action player ] [ body_2_5 ]\n[ action player ] [ body_1_6 no wall ] -> [ action player ] [ body_2_6 ]\n[ action player ] [ body_1_7 no wall ] -> [ action player ] [ body_2_7 ]\n[ action player ] [ body_1_8 no wall ] -> [ action player ] [ body_2_8 ]\n[ action player ] [ body_1_9 no wall ] -> [ action player ] [ body_2_9 ]\n\n[ action player ] [ body_3_1 no wall ] -> [ action player ] [ body_4_1 ]\n[ action player ] [ body_3_2 no wall ] -> [ action player ] [ body_4_2 ]\n[ action player ] [ body_3_3 no wall ] -> [ action player ] [ body_4_3 ]\n[ action player ] [ body_3_4 no wall ] -> [ action player ] [ body_4_4 ]\n[ action player ] [ body_3_5 no wall ] -> [ action player ] [ body_4_5 ]\n[ action player ] [ body_3_6 no wall ] -> [ action player ] [ body_4_6 ]\n[ action player ] [ body_3_7 no wall ] -> [ action player ] [ body_4_7 ]\n[ action player ] [ body_3_8 no wall ] -> [ action player ] [ body_4_8 ]\n[ action player ] [ body_3_9 no wall ] -> [ action player ] [ body_4_9 ]\n\n[ action player ] [ body_5_1 no wall ] -> [ action player ] [ body_6_1 ]\n[ action player ] [ body_5_2 no wall ] -> [ action player ] [ body_6_2 ]\n[ action player ] [ body_5_3 no wall ] -> [ action player ] [ body_6_3 ]\n[ action player ] [ body_5_4 no wall ] -> [ action player ] [ body_6_4 ]\n[ action player ] [ body_5_5 no wall ] -> [ action player ] [ body_6_5 ]\n[ action player ] [ body_5_6 no wall ] -> [ action player ] [ body_6_6 ]\n[ action player ] [ body_5_7 no wall ] -> [ action player ] [ body_6_7 ]\n[ action player ] [ body_5_8 no wall ] -> [ action player ] [ body_6_8 ]\n[ action player ] [ body_5_9 no wall ] -> [ action player ] [ body_6_9 ]\n\n[ action player ] [ body_7_1 no wall ] -> [ action player ] [ body_8_1 ]\n[ action player ] [ body_7_2 no wall ] -> [ action player ] [ body_8_2 ]\n[ action player ] [ body_7_3 no wall ] -> [ action player ] [ body_8_3 ]\n[ action player ] [ body_7_4 no wall ] -> [ action player ] [ body_8_4 ]\n[ action player ] [ body_7_5 no wall ] -> [ action player ] [ body_8_5 ]\n[ action player ] [ body_7_6 no wall ] -> [ action player ] [ body_8_6 ]\n[ action player ] [ body_7_7 no wall ] -> [ action player ] [ body_8_7 ]\n[ action player ] [ body_7_8 no wall ] -> [ action player ] [ body_8_8 ]\n[ action player ] [ body_7_9 no wall ] -> [ action player ] [ body_8_9 ]\n\n\n[ hand_turn ] [ body_2_1 no wall ] -> [ hand_turn ] [ body_3_1 ]\n[ hand_turn ] [ body_2_2 no wall ] -> [ hand_turn ] [ body_3_2 ]\n[ hand_turn ] [ body_2_3 no wall ] -> [ hand_turn ] [ body_3_3 ]\n[ hand_turn ] [ body_2_4 no wall ] -> [ hand_turn ] [ body_3_4 ]\n[ hand_turn ] [ body_2_5 no wall ] -> [ hand_turn ] [ body_3_5 ]\n[ hand_turn ] [ body_2_6 no wall ] -> [ hand_turn ] [ body_3_6 ]\n[ hand_turn ] [ body_2_7 no wall ] -> [ hand_turn ] [ body_3_7 ]\n[ hand_turn ] [ body_2_8 no wall ] -> [ hand_turn ] [ body_3_8 ]\n[ hand_turn ] [ body_2_9 no wall ] -> [ hand_turn ] [ body_3_9 ]\n\n[ hand_turn ] [ body_4_1 no wall ] -> [ hand_turn ] [ body_5_1 ]\n[ hand_turn ] [ body_4_2 no wall ] -> [ hand_turn ] [ body_5_2 ]\n[ hand_turn ] [ body_4_3 no wall ] -> [ hand_turn ] [ body_5_3 ]\n[ hand_turn ] [ body_4_4 no wall ] -> [ hand_turn ] [ body_5_4 ]\n[ hand_turn ] [ body_4_5 no wall ] -> [ hand_turn ] [ body_5_5 ]\n[ hand_turn ] [ body_4_6 no wall ] -> [ hand_turn ] [ body_5_6 ]\n[ hand_turn ] [ body_4_7 no wall ] -> [ hand_turn ] [ body_5_7 ]\n[ hand_turn ] [ body_4_8 no wall ] -> [ hand_turn ] [ body_5_8 ]\n[ hand_turn ] [ body_4_9 no wall ] -> [ hand_turn ] [ body_5_9 ]\n\n[ hand_turn ] [ body_6_1 no wall ] -> [ hand_turn ] [ body_7_1 ]\n[ hand_turn ] [ body_6_2 no wall ] -> [ hand_turn ] [ body_7_2 ]\n[ hand_turn ] [ body_6_3 no wall ] -> [ hand_turn ] [ body_7_3 ]\n[ hand_turn ] [ body_6_4 no wall ] -> [ hand_turn ] [ body_7_4 ]\n[ hand_turn ] [ body_6_5 no wall ] -> [ hand_turn ] [ body_7_5 ]\n[ hand_turn ] [ body_6_6 no wall ] -> [ hand_turn ] [ body_7_6 ]\n[ hand_turn ] [ body_6_7 no wall ] -> [ hand_turn ] [ body_7_7 ]\n[ hand_turn ] [ body_6_8 no wall ] -> [ hand_turn ] [ body_7_8 ]\n[ hand_turn ] [ body_6_9 no wall ] -> [ hand_turn ] [ body_7_9 ]\n\n[ hand_turn ] [ body_8_1 no wall ] -> [ hand_turn ] [ body_1_1 ]\n[ hand_turn ] [ body_8_2 no wall ] -> [ hand_turn ] [ body_1_2 ]\n[ hand_turn ] [ body_8_3 no wall ] -> [ hand_turn ] [ body_1_3 ]\n[ hand_turn ] [ body_8_4 no wall ] -> [ hand_turn ] [ body_1_4 ]\n[ hand_turn ] [ body_8_5 no wall ] -> [ hand_turn ] [ body_1_5 ]\n[ hand_turn ] [ body_8_6 no wall ] -> [ hand_turn ] [ body_1_6 ]\n[ hand_turn ] [ body_8_7 no wall ] -> [ hand_turn ] [ body_1_7 ]\n[ hand_turn ] [ body_8_8 no wall ] -> [ hand_turn ] [ body_1_8 ]\n[ hand_turn ] [ body_8_9 no wall ] -> [ hand_turn ] [ body_1_9 ]\n\n\n\n\n\n\n\n\n\n\n(need to do body rotations as well here!)\n\n(move object)\n[moving player ] [ stationary apparatus] -> [ moving player ] [ moving apparatus]\n\n\nright [ ball | action player | ball ] -> [ down ball | action player | up ball ]\ndown [ ball | action player | ball ] -> [ left ball | action player | right ball ]\n\n\ndown [ | hand_turn ] -> [ t | hand_turn ]\nright [ hand_turn ] [ ball | t | ball ] -> [ hand_turn ] [ down ball | t | left ball]\nright [ hand_turn ] [ ball | no t | ball ] -> [ hand_turn ] [ right ball | no t | up ball]\n\n\n\n[ hand_turn ] -> [ hand]\n[ action player ] [ hand ] -> [ action player ] [ hand_turn ] again \n\n[t]->[]\n\n[ body wall ] -> [ stationary body wall ] \n[ ball wall ] -> [ stationary ball wall ]\n\n[ > body | wall ] -> cancel\n\n\nlate down [ ball_wwww body_3_2 | player | ball_bbbb body_3_8 ] -> [ ball_wwww body_3_2 | player t | ball_bbbb body_3_8 ]\n\nlate right [ ball_wwbb body_3_4 | player t| ball_wwbb body_3_6 ] -> win \n\nlate [t] -> [ ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nno player\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n,,zbbbx,,\n,,nqwen,,\n,,nrgyn,,\n,,nuion,,\nzbmbbbmbx\nn.......n\nn.......n\nn..123..n\nn..456..n\nn..789..n\nn.......n\nn.......n\ncbbbbbbbf\n\nmessage The day is over\n\n!@£$\n%^&*\n_+{}\n:\"|<\n\n\n!!!$\n!@£!\n:\"|:\n::::\n\n\n>>>>\n>>>>\n????\n????\n\n?\n", [3, 0, 0, 1, 2, 2, 3, 0, 1, 1, 2, 2, 3, 3, 3, 0, 1, 1, 4], "background black:0,0,0,0,background wall wall_tl:1,background wall wall_v:2,2,2,2,\n2,2,2,background wall wall_bl:3,0,0,0,0,background wall wall_h:4,\nbackground:5,5,5,5,5,5,5,4,1,\n2,2,2,background wall wall_t:6,5,5,5,5,5,\n5,5,4,4,background body_3_1 wall:7,background ball_wwbb body_3_4 wall:8,background body_3_7 wall:9,4,5,\n5,background body_3_1:10,background ball_wwww body_3_4:11,background body_3_7:12,5,5,4,4,background ball_wwww body_3_2 wall:13,\nbackground body_3_5 wall:14,background ball_bbbb body_3_8 wall:15,4,5,5,background ball_wbwb body_3_2:16,background body_3_5 hand player:17,background ball_wbwb body_3_8:18,5,\n5,4,4,background body_3_3 wall:19,background ball_wwbb body_3_6 wall:20,background body_3_9 wall:21,4,5,5,\nbackground body_3_3:22,background ball_bbbb body_3_6:23,background body_3_9:24,5,5,4,background wall wall_tr:25,2,2,\n2,6,5,5,5,5,5,5,5,\n4,0,0,0,0,4,5,5,5,\n5,5,5,5,4,0,0,0,0,\n25,2,2,2,2,2,2,2,background wall wall_br:26,\n", 1, "1627891893861.785"] ], [ - "Seize the flag!", - ["title Seize the flag!\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nnorepeat_action\nagain_interval 0.3\n\n\nbackground_color darkblue\n\ntext_color gray\n\n\nrun_rules_on_level_start\n\n\n========\nOBJECTS\n========\n\nblack ,\nblack\n\nBackground\nDARKGREEN\n\nlighttile\ndarkblue\n\ndarktile\ndarkgreen\n\ndoor \ngray darkbrown\n.111.\n10001\n10001\n10001\n11111\n\nkey k\nyellow\n00000\n0...0\n00000\n..0..\n..000\n\nperson б\nred darkred \n.000.\n01010\n.000.\n00000\n.0.0.\n\ntile_all\nwhite white white white\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\ntile_ur \nwhite black black white\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\ntile_dr \nblack white black white\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\ntile_ul \nwhite black white black\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\ntile_dl \nblack white white black\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\nflag г\nyellow white\n10000\n10000\n10000\n1....\n1....\n\nWall\ndarkgreen darkblue\n\nwall_tl\nDARKGREEN DARKBLUE \n00000\n01111\n01000\n01011\n01010\n\nwall_tr\ndarkgreen DARKBLUE\n00000\n11110\n00010\n11010\n01010\n\nwall_bl\nDARKGREEN DARKBLUE \n00000\n01110\n01010\n01110\n00000\n\nwall_br\ndarkblue darkgreen \n00100\n00100\n11111\n00100\n00100\n\nwall_h\ndarkgreen DARKBLUE\n00000\n11111\n00000\n11111\n00000\n\nwall_v\ndarkgreen DARKBLUE\n01010\n01010\n01010\n01010\n01010\n\nwall_t\nDARKGREEN DARKBLUE\n01010\n11011\n00000\n11111\n00000\n\n\nPlayer\nTRANSPARENT\n0.0.0\n.000.\n00000\n.000.\n0.0.0\n\n\n\nhand\nTRANSPARENT\n..000\n..000\n0.000\n.0000\n...00\n\nhand_turn\nTRANSPARENT\n000..\n.000.\n..000\n0.000\n.0000\n\n\nbody_1_1\nred red\n....1\n...11\n..1.1\n.1..1\n11111\n\nbody_1_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_1_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_1_4\nred\n\nbody_1_5\nred red\n11100\n11100\n11100\n11000\n11000\n\nbody_1_6\nred\n\nbody_1_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_1_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_1_9\nred\n00000\n0..0.\n0.0..\n00...\n0....\n\n\n\n\n\nbody_2_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_2_2\nred \n\nbody_2_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_2_4\nred red\n00000\n1.000\n1..00\n1.110\n11111\n\nbody_2_5\nred red\n00000\n10000\n11100\n11110\n11111\n\nbody_2_6\nred red\n00000\n100.0\n11..0\n111.0\n11111\n\nbody_2_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_2_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_2_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\nbody_3_1\nred red\n....1\n...11\n..111\n.1111\n11111\n\nbody_3_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_3_3\nred red\n0....\n00...\n0.0..\n0..0.\n00000\n\nbody_3_4\nred red\n00000\n00000\n00111\n11111\n11111\n\nbody_3_5\nred red\n00000\n00000\n11111\n11111\n11111\n\nbody_3_6\nred red\n00000\n00000\n11111\n11111\n11111\n\nbody_3_7\nred red\n11111\n.1..1\n..1.1\n...11\n....1\n\nbody_3_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_3_9\nred\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\nbody_4_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_4_2\nred red\n00000\n1...0\n11.00\n11110\n11111 \n\nbody_4_3\nred red\n0....\n00...\n001..\n0111.\n11111\n\nbody_4_4\nred\n\nbody_4_5\nred red\n00000\n00001\n00111\n01111\n11111\n\nbody_4_6\nred\n\nbody_4_7\nred red\n00001\n.0011\n..111\n...11\n....1\n\nbody_4_8\nred red\n11000\n11000\n11.00\n1...0\n11000\n\nbody_4_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\nbody_5_1\nred red\n....1\n...11\n..1.1\n.1..1\n11111\n\nbody_5_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_5_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_5_4\nred\n\nbody_5_5\nred red\n11100\n11100\n11100\n11000\n11000\n\nbody_5_6\nred\n\nbody_5_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_5_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_5_9\nred\n00000\n0..0.\n0.0..\n00...\n0....\n\n\n\n\n\nbody_6_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_6_2\nred \n\nbody_6_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_6_4\nred red\n00000\n1.000\n1..00\n1.110\n11111\n\nbody_6_5\nred red\n00000\n10000\n11100\n11110\n11111\n\nbody_6_6\nred red\n00000\n100.0\n11..0\n111.0\n11111\n\nbody_6_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_6_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_6_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\n\n\nbody_7_1\nred red\n....1\n...11\n..111\n.1111\n11111\n\nbody_7_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_7_3\nred red\n0....\n00...\n0.0..\n0..0.\n00000\n\nbody_7_4\nred red\n00000\n00000\n00111\n11111\n11111\n\nbody_7_5\nred red\n00000\n00000\n11111\n11111\n11111\n\nbody_7_6\nred red\n00000\n00000\n11111\n11111\n11111\n\nbody_7_7\nred red\n11111\n.1..1\n..1.1\n...11\n....1\n\nbody_7_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_7_9\nred\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\n\nbody_8_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_8_2\nred red\n00000\n1...0\n11.00\n11110\n11111 \n\nbody_8_3\nred red\n0....\n00...\n001..\n0111.\n11111\n\nbody_8_4\nred\n\nbody_8_5\nred red\n00000\n00001\n00111\n01111\n11111\n\nbody_8_6\nred\n\nbody_8_7\nred red\n00001\n.0011\n..111\n...11\n....1\n\nbody_8_8\nred red\n11000\n11000\n11.00\n1...0\n11000\n\nbody_8_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\n\nball_wwww\nwhite white\n.000.\n00000\n00111\n11111\n.111.\n\nball_bbbb\nblack black\n.000.\n00000\n00111\n11111\n.111.\n\nball_bbww\nblack white\n.000.\n00000\n00111\n11111\n.111.\n\nball_wwbb\nwhite black\n.000.\n00000\n00111\n11111\n.111.\n\nball_bwbw\nblack white \n.001.\n00011\n00111\n00111\n.011.\n\nball_wbwb\nwhite black \n.001.\n00011\n00111\n00111\n.011.\n\nt\nTRANSPARENT\n\n\n\n\n\n\ndarkred >\ndarkred\n\ndarkblue ?\ndarkblue\n\nstars ~\nwhite\n.....\n.....\n.0...\n.....\n.....\n\n\nmove_ul\ntransparent\n\nmove_ur\ntransparent\n\nmove_dl \ntransparent\n\nmove_dr\ntransparent\n\nmove_action\ntransparent\n\nmoved\ntransparent\n\nperson_target\ntransparent\n\n\n\n\nsprt_0_0 !\nyellow\n.....\n.....\n.....\n.....\n....0\n\nsprt_1_0 @\nyellow\n.....\n.....\n.0...\n000..\n00000\n\nsprt_2_0 £\nyellow white\n.....\n.....\n.....\n01...\n01...\n\n\nsprt_0_1 $\nyellow \n....0\n....0\n....0\n....0\n.....\n\nsprt_1_1 %\nyellow\n00000\n00000\n0.000\n...00\n.....\n\nsprt_2_1 ^\nyellow white\n01...\n01...\n01...\n.1...\n.1...\n\n\nsprt_0_2 &\nred darkred\n.....\n..000\n..010\n..000\n..001\n\nsprt_1_2 *\nred darkred\n.....\n0....\n1...0\n0..00\n1..0.\n\nsprt_2_2 -\nwhite red\n.0...\n111..\n111..\n.0...\n.0...\n\n\nsprt_0_3 \\\nred\n..000\n...00\n..000\n.0000\n00.00\n\nsprt_1_3 \"\nred\n0.00.\n000..\n0....\n0....\n0....\n\nsprt_2_3 \nwhite\n.0...\n.0...\n.....\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\nd = door and wall\nball = ball_wwww or ball_bbbb or ball_bbww or ball_wwbb or ball_bwbw or ball_wbwb\n\ntile = lighttile or darktile\n\nbody = body_1_1 or body_1_2 or body_1_3 or body_1_4 or body_1_5 or body_1_6 or body_1_7 or body_1_8 or body_1_9 or body_2_1 or body_2_2 or body_2_3 or body_2_4 or body_2_5 or body_2_6 or body_2_7 or body_2_8 or body_2_9 or body_3_1 or body_3_2 or body_3_3 or body_3_4 or body_3_5 or body_3_6 or body_3_7 or body_3_8 or body_3_9 or body_4_1 or body_4_2 or body_4_3 or body_4_4 or body_4_5 or body_4_6 or body_4_7 or body_4_8 or body_4_9 or body_5_1 or body_5_2 or body_5_3 or body_5_4 or body_5_5 or body_5_6 or body_5_7 or body_5_8 or body_5_9 or body_6_1 or body_6_2 or body_6_3 or body_6_4 or body_6_5 or body_6_6 or body_6_7 or body_6_8 or body_6_9 or body_7_1 or body_7_2 or body_7_3 or body_7_4 or body_7_5 or body_7_6 or body_7_7 or body_7_8 or body_7_9 or body_8_1 or body_8_2 or body_8_3 or body_8_4 or body_8_5 or body_8_6 or body_8_7 or body_8_8 or body_8_9\n\nhands = hand or hand_turn\n\napparatus = hands or body or ball\n. = Background\n# = Wall\nP = Player\n\n1 = body_1_1\n2 = body_1_2 and ball_bbbb\n3 = body_1_3\n4 = body_1_4 and ball_bbbb\n5 = body_1_5 and hand and Player\n6 = body_1_6 and ball_bbbb\n7 = body_1_7\n8 = body_1_8 and ball_bbbb\n9 = body_1_9\n\n(\nq = wall and body_3_1 \nw = wall and body_3_2 and ball_wwww\ne = wall and body_3_3 \nr = wall and body_3_4 and ball_wwbb\ng = wall and body_3_5 \ny = wall and body_3_6 and ball_wwbb\nu = wall and body_3_7 \ni = wall and body_3_8 and ball_bbbb\no = wall and body_3_9 \n)\n\nq = wall \nw = wall and ball_wwww\ne = wall \nr = wall and ball_wwbb\ng = wall \ny = wall and ball_wwbb\nu = wall \ni = wall and ball_bbbb\no = wall \n\n\nz = wall_tl and wall\nx = wall_tr and wall\nc = wall_bl and wall\nf = wall_br and wall\nb = wall_h and wall\nn = wall_v and wall\nm = wall_t and wall\n\n\nmove = move_ul or move_ur or move_dl or move_dr or move_action or moved\n\nmove_active = move_ul or move_ur or move_dl or move_dr\n\nє = tile_ul and Wall\nґ = tile_ur and Wall\nж = tile_dl and Wall\nд = tile_dr and Wall\nЮ = tile_all and Wall\n| = sprt_2_3 and Player\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nblack\ntile\nwall\nwall_tl, wall_tr, wall_bl, wall_br, wall_h, wall_v, wall_t\ndoor, key\nflag\nPlayer\nbody\nball\nhands\nt\n\ntile_ul, tile_ur, tile_dl, tile_dr, tile_all\n\nsprt_0_0, sprt_0_1, sprt_0_2, sprt_0_3, sprt_1_0, sprt_1_1, sprt_1_2, sprt_1_3, sprt_2_0, sprt_2_1, sprt_2_2, sprt_2_3, darkred, darkblue, stars\n\nperson\nperson_Target\nmove\n\n======\nRULES\n======\n\nright [flag | wall ] -> [flag wall | wall ]\n[person no tile ] -> [ person darktile]\n\n[darktile | no tile no wall ] -> [darktile | lighttile ]\n+[lighttile | no tile no wall ] -> [ lighttile | darktile ]\n(ball translations)\n [ ball | perpendicular player | ball ] -> [ perpendicular ball | perpendicular player | perpendicular ball ]\n\n(ball rotations)\n\nright [ ball | action player | ball ] -> [ down ball | action player | up ball ]\ndown [ ball | action player | ball ] -> [ left ball | action player | right ball ]\n\n\n[ up ball_wwww ] -> [ ball_wwbb ]\n[ down ball_wwww ] -> [ ball_bbww ]\n[ right ball_wwww ] -> [ ball_bwbw ]\n[ left ball_wwww ] -> [ ball_wbwb ]\n\n[ up ball_bbbb ] -> [ ball_bbww ]\n[ down ball_bbbb ] -> [ ball_wwbb ]\n[ right ball_bbbb ] -> [ ball_wbwb ]\n[ left ball_bbbb ] -> [ ball_bwbw ]\n\n[ up ball_bbww ] -> [ ball_wwww ]\n[ down ball_bbww ] -> [ ball_bbbb ]\n[ right ball_bbww ] -> [ ball_bbww ]\n[ left ball_bbww ] -> [ ball_bbww ]\n\n[ up ball_wwbb ] -> [ ball_bbbb ]\n[ down ball_wwbb ] -> [ ball_wwww ]\n[ right ball_wwbb ] -> [ ball_wwbb ]\n[ left ball_wwbb ] -> [ ball_wwbb ]\n\n[ up ball_bwbw ] -> [ ball_bwbw ]\n[ down ball_bwbw ] -> [ ball_bwbw ]\n[ right ball_bwbw ] -> [ ball_bbbb ]\n[ left ball_bwbw ] -> [ ball_wwww ]\n\n[ up ball_wbwb ] -> [ ball_wbwb ]\n[ down ball_wbwb ] -> [ ball_wbwb ]\n[ right ball_wbwb ] -> [ ball_wwww ]\n[ left ball_wbwb ] -> [ ball_bbbb ]\n\n\n\n\n(second part of movemet - rotate)\ndown [ | hand_turn ] -> [ t | hand_turn ]\nright [ hand_turn ] [ ball | t no wall | ball ] -> [ hand_turn ] [ down ball | t | left ball]\nright [ hand_turn ] [ ball | no wall no t | ball ] -> [ hand_turn ] [ right ball | no t | up ball]\n[t]->[]\n\n\n[ moving ball_wwww ] -> [ ball_wwww ]\n[ moving ball_bbbb ] -> [ ball_bbbb ]\n[ moving ball_bbww ] -> [ ball_bwbw ]\n[ moving ball_wwbb ] -> [ ball_wbwb ]\n[ moving ball_bwbw ] -> [ ball_wwbb ]\n[ moving ball_wbwb ] -> [ ball_bbww ]\n\n\n\n[ action player ] [ body_1_1 no wall ] -> [ action player ] [ body_2_1 ]\n[ action player ] [ body_1_2 no wall ] -> [ action player ] [ body_2_2 ]\n[ action player ] [ body_1_3 no wall ] -> [ action player ] [ body_2_3 ]\n[ action player ] [ body_1_4 no wall ] -> [ action player ] [ body_2_4 ]\n[ action player ] [ body_1_5 no wall ] -> [ action player ] [ body_2_5 ]\n[ action player ] [ body_1_6 no wall ] -> [ action player ] [ body_2_6 ]\n[ action player ] [ body_1_7 no wall ] -> [ action player ] [ body_2_7 ]\n[ action player ] [ body_1_8 no wall ] -> [ action player ] [ body_2_8 ]\n[ action player ] [ body_1_9 no wall ] -> [ action player ] [ body_2_9 ]\n\n[ action player ] [ body_3_1 no wall ] -> [ action player ] [ body_4_1 ]\n[ action player ] [ body_3_2 no wall ] -> [ action player ] [ body_4_2 ]\n[ action player ] [ body_3_3 no wall ] -> [ action player ] [ body_4_3 ]\n[ action player ] [ body_3_4 no wall ] -> [ action player ] [ body_4_4 ]\n[ action player ] [ body_3_5 no wall ] -> [ action player ] [ body_4_5 ]\n[ action player ] [ body_3_6 no wall ] -> [ action player ] [ body_4_6 ]\n[ action player ] [ body_3_7 no wall ] -> [ action player ] [ body_4_7 ]\n[ action player ] [ body_3_8 no wall ] -> [ action player ] [ body_4_8 ]\n[ action player ] [ body_3_9 no wall ] -> [ action player ] [ body_4_9 ]\n\n[ action player ] [ body_5_1 no wall ] -> [ action player ] [ body_6_1 ]\n[ action player ] [ body_5_2 no wall ] -> [ action player ] [ body_6_2 ]\n[ action player ] [ body_5_3 no wall ] -> [ action player ] [ body_6_3 ]\n[ action player ] [ body_5_4 no wall ] -> [ action player ] [ body_6_4 ]\n[ action player ] [ body_5_5 no wall ] -> [ action player ] [ body_6_5 ]\n[ action player ] [ body_5_6 no wall ] -> [ action player ] [ body_6_6 ]\n[ action player ] [ body_5_7 no wall ] -> [ action player ] [ body_6_7 ]\n[ action player ] [ body_5_8 no wall ] -> [ action player ] [ body_6_8 ]\n[ action player ] [ body_5_9 no wall ] -> [ action player ] [ body_6_9 ]\n\n[ action player ] [ body_7_1 no wall ] -> [ action player ] [ body_8_1 ]\n[ action player ] [ body_7_2 no wall ] -> [ action player ] [ body_8_2 ]\n[ action player ] [ body_7_3 no wall ] -> [ action player ] [ body_8_3 ]\n[ action player ] [ body_7_4 no wall ] -> [ action player ] [ body_8_4 ]\n[ action player ] [ body_7_5 no wall ] -> [ action player ] [ body_8_5 ]\n[ action player ] [ body_7_6 no wall ] -> [ action player ] [ body_8_6 ]\n[ action player ] [ body_7_7 no wall ] -> [ action player ] [ body_8_7 ]\n[ action player ] [ body_7_8 no wall ] -> [ action player ] [ body_8_8 ]\n[ action player ] [ body_7_9 no wall ] -> [ action player ] [ body_8_9 ]\n\n\n[ hand_turn ] [ body_2_1 no wall ] -> [ hand_turn ] [ body_3_1 ]\n[ hand_turn ] [ body_2_2 no wall ] -> [ hand_turn ] [ body_3_2 ]\n[ hand_turn ] [ body_2_3 no wall ] -> [ hand_turn ] [ body_3_3 ]\n[ hand_turn ] [ body_2_4 no wall ] -> [ hand_turn ] [ body_3_4 ]\n[ hand_turn ] [ body_2_5 no wall ] -> [ hand_turn ] [ body_3_5 ]\n[ hand_turn ] [ body_2_6 no wall ] -> [ hand_turn ] [ body_3_6 ]\n[ hand_turn ] [ body_2_7 no wall ] -> [ hand_turn ] [ body_3_7 ]\n[ hand_turn ] [ body_2_8 no wall ] -> [ hand_turn ] [ body_3_8 ]\n[ hand_turn ] [ body_2_9 no wall ] -> [ hand_turn ] [ body_3_9 ]\n\n[ hand_turn ] [ body_4_1 no wall ] -> [ hand_turn ] [ body_5_1 ]\n[ hand_turn ] [ body_4_2 no wall ] -> [ hand_turn ] [ body_5_2 ]\n[ hand_turn ] [ body_4_3 no wall ] -> [ hand_turn ] [ body_5_3 ]\n[ hand_turn ] [ body_4_4 no wall ] -> [ hand_turn ] [ body_5_4 ]\n[ hand_turn ] [ body_4_5 no wall ] -> [ hand_turn ] [ body_5_5 ]\n[ hand_turn ] [ body_4_6 no wall ] -> [ hand_turn ] [ body_5_6 ]\n[ hand_turn ] [ body_4_7 no wall ] -> [ hand_turn ] [ body_5_7 ]\n[ hand_turn ] [ body_4_8 no wall ] -> [ hand_turn ] [ body_5_8 ]\n[ hand_turn ] [ body_4_9 no wall ] -> [ hand_turn ] [ body_5_9 ]\n\n[ hand_turn ] [ body_6_1 no wall ] -> [ hand_turn ] [ body_7_1 ]\n[ hand_turn ] [ body_6_2 no wall ] -> [ hand_turn ] [ body_7_2 ]\n[ hand_turn ] [ body_6_3 no wall ] -> [ hand_turn ] [ body_7_3 ]\n[ hand_turn ] [ body_6_4 no wall ] -> [ hand_turn ] [ body_7_4 ]\n[ hand_turn ] [ body_6_5 no wall ] -> [ hand_turn ] [ body_7_5 ]\n[ hand_turn ] [ body_6_6 no wall ] -> [ hand_turn ] [ body_7_6 ]\n[ hand_turn ] [ body_6_7 no wall ] -> [ hand_turn ] [ body_7_7 ]\n[ hand_turn ] [ body_6_8 no wall ] -> [ hand_turn ] [ body_7_8 ]\n[ hand_turn ] [ body_6_9 no wall ] -> [ hand_turn ] [ body_7_9 ]\n\n[ hand_turn ] [ body_8_1 no wall ] -> [ hand_turn ] [ body_1_1 ]\n[ hand_turn ] [ body_8_2 no wall ] -> [ hand_turn ] [ body_1_2 ]\n[ hand_turn ] [ body_8_3 no wall ] -> [ hand_turn ] [ body_1_3 ]\n[ hand_turn ] [ body_8_4 no wall ] -> [ hand_turn ] [ body_1_4 ]\n[ hand_turn ] [ body_8_5 no wall ] -> [ hand_turn ] [ body_1_5 ]\n[ hand_turn ] [ body_8_6 no wall ] -> [ hand_turn ] [ body_1_6 ]\n[ hand_turn ] [ body_8_7 no wall ] -> [ hand_turn ] [ body_1_7 ]\n[ hand_turn ] [ body_8_8 no wall ] -> [ hand_turn ] [ body_1_8 ]\n[ hand_turn ] [ body_8_9 no wall ] -> [ hand_turn ] [ body_1_9 ]\n\n\n\n\n\n\n\n\n\n(need to do body rotations as well here!)\n\n(move object)\n[moving player ] [ stationary apparatus] -> [ moving player ] [ moving apparatus]\n\n\nright [ ball | action player | ball ] -> [ down ball | action player | up ball ]\ndown [ ball | action player | ball ] -> [ left ball | action player | right ball ]\n\n\ndown [ | hand_turn ] -> [ t | hand_turn ]\nright [ hand_turn ] [ ball | t | ball ] -> [ hand_turn ] [ down ball | t | left ball]\nright [ hand_turn ] [ ball | no t | ball ] -> [ hand_turn ] [ right ball | no t | up ball]\n\n\n\n[ hand_turn ] -> [ hand]\n[ action player ] [ hand ] -> [ action player ] [ hand_turn ] again \n\n[t]->[]\n\n[ body wall ] -> [ stationary body wall ] \n[ ball wall ] -> [ stationary ball wall ]\n\n[ > body | wall ] -> cancel\n\n\nrandom up [move_ul] [person | ] -> [ move_ul] [ person | person_target]\nrandom up [move_ur] [person | ] -> [ move_ur] [ person | person_target]\nrandom down [move_dl] [person | ] -> [ move_dl] [ person | person_target]\nrandom down [move_dr] [person | ] -> [ move_dr] [ person | person_target]\n\nrandom left [move_ul] [person_target | ] -> [ moved] [ | person_target ]\nrandom right [move_ur] [person_target | ] -> [ moved] [ | person_target ]\nrandom left [move_dl] [person_target | ] -> [ moved] [ | person_target ]\nrandom right [move_dr] [person_target | ] -> [ moved] [ | person_target ]\n[person_target wall ] -> [ wall] \n\n[person_target ] [ person ] -> [ person ] [ ]\n\n[move_active]->[]\n\nlate down [ ball_wwww | player no moved | ball_bbbb ] -> [ ball_wwww | player t | ball_bbbb ]\nlate right [ ball_wwww | player t| ball_bbbb ] -> [ ball_wwww | player move_ul | ball_bbbb ] again\nlate [t] -> [ ]\n\n\nlate down [ ball_wwww | player no moved | ball_bbbb ] -> [ ball_wwww | player t | ball_bbbb ]\nlate right [ ball_bbbb | player t| ball_wwww ] -> [ ball_bbbb | player move_ur | ball_wwww ] again\nlate [t] -> [ ]\n\n\nlate down [ ball_bbbb | player no moved | ball_wwww ] -> [ ball_bbbb | player t | ball_wwww ]\nlate right [ ball_wwww | player t| ball_bbbb ] -> [ ball_wwww | player move_dl | ball_bbbb ] again\nlate [t] -> [ ]\n\n\nlate down [ ball_bbbb | player no moved | ball_wwww ] -> [ ball_bbbb | player t | ball_wwww ]\nlate right [ ball_bbbb | player t| ball_wwww ] -> [ ball_bbbb | player move_dr | ball_wwww ] again\nlate [t] -> [ ]\n\n\nlate down [ ball_wwww | player no moved | ball_wwww ] -> [ ball_wwww | player t | ball_wwww ]\nlate right [ ball_wwww | player t | ball_wwww ] [person flag] -> win\nlate [t] -> [ ]\n\nlate [moved]->[]\n\n[action player sprt_2_3] -> win\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\nfffffffffffffffffffffffff\nffffю.гffffcbbbbbbbbbbbcf\nfffffffffffn...........nf\nfєbbbbbbbґfn...........nf\nfn.......nfn...........nf\nfn.......nfn...cbbbc...nf\nfn..123..nfn...n...n...nf\nfn..456..nfn...n.г.n...nf\nfn..789..nfn...n...c...nf\nfn.......nfn.б.n.......nf\nfn.......nfn...n.......nf\nfжbbbbbbbдfcbbbcbbbbbbbcf\nfffffffffffffffffffffffff\n\nmessage victory!\n\n!@£\n$%^\n&*-\n\\\"|\n\n\n\n",[3,0,4,0,4,1,3,2,1,1,4,2,3,1,1,0,0,3,1],"background wall wall_br:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background tile_ul wall:1,background wall wall_v:2,2,2,2,2,2,2,background tile_dl wall:3,\n0,0,0,0,background wall wall_h:4,background body_7_1:5,background ball_wwww body_7_4:6,background body_7_7:7,background:8,8,8,8,4,0,0,0,0,4,background ball_wwww body_7_2:9,background body_7_5 hand player:10,background ball_bbbb body_7_8:11,8,8,8,8,\n4,0,0,background tile_all wall:12,0,4,background body_7_3:13,background ball_bbbb body_7_6:14,background body_7_9:15,8,8,8,8,4,0,0,8,0,4,8,8,8,8,8,8,\n8,4,0,0,background flag wall:16,0,4,8,8,8,8,8,8,8,4,0,0,0,0,4,8,8,8,8,8,\n8,8,4,0,0,0,0,4,8,8,8,8,8,8,8,4,0,0,0,0,background tile_ur wall:17,2,2,2,2,\n2,2,2,background tile_dr wall:18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background wall wall_bl:19,2,2,2,2,2,\n2,2,2,2,19,0,0,4,background darktile:20,background lighttile:21,20,21,background darktile person:22,21,20,21,20,4,0,0,4,21,20,21,20,\n21,20,21,20,21,4,0,0,4,20,21,20,21,20,21,20,21,20,4,0,0,4,21,20,21,\n19,2,2,2,2,2,19,0,0,4,20,21,20,4,20,21,20,21,20,4,0,0,4,21,20,\n21,4,21,background darktile flag:23,21,20,21,4,0,0,4,20,21,20,4,20,21,20,21,20,4,0,0,4,21,\n20,21,19,2,2,19,20,21,4,0,0,4,20,21,20,21,20,21,20,21,20,4,0,0,4,\n21,20,21,20,21,20,21,20,21,4,0,0,4,20,21,20,21,20,21,20,21,20,4,0,0,\n19,2,2,2,2,2,2,2,2,2,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",1,"1627891910482.2163"] + "Seize the flag!", + ["title Seize the flag!\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nnorepeat_action\nagain_interval 0.3\n\n\nbackground_color darkblue\n\ntext_color gray\n\n\nrun_rules_on_level_start\n\n\n========\nOBJECTS\n========\n\nblack ,\nblack\n\nBackground\nDARKGREEN\n\nlighttile\ndarkblue\n\ndarktile\ndarkgreen\n\ndoor \ngray darkbrown\n.111.\n10001\n10001\n10001\n11111\n\nkey k\nyellow\n00000\n0...0\n00000\n..0..\n..000\n\nperson б\nred darkred \n.000.\n01010\n.000.\n00000\n.0.0.\n\ntile_all\nwhite white white white\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\ntile_ur \nwhite black black white\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\ntile_dr \nblack white black white\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\ntile_ul \nwhite black white black\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\ntile_dl \nblack white white black\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\nflag г\nyellow white\n10000\n10000\n10000\n1....\n1....\n\nWall\ndarkgreen darkblue\n\nwall_tl\nDARKGREEN DARKBLUE \n00000\n01111\n01000\n01011\n01010\n\nwall_tr\ndarkgreen DARKBLUE\n00000\n11110\n00010\n11010\n01010\n\nwall_bl\nDARKGREEN DARKBLUE \n00000\n01110\n01010\n01110\n00000\n\nwall_br\ndarkblue darkgreen \n00100\n00100\n11111\n00100\n00100\n\nwall_h\ndarkgreen DARKBLUE\n00000\n11111\n00000\n11111\n00000\n\nwall_v\ndarkgreen DARKBLUE\n01010\n01010\n01010\n01010\n01010\n\nwall_t\nDARKGREEN DARKBLUE\n01010\n11011\n00000\n11111\n00000\n\n\nPlayer\nTRANSPARENT\n0.0.0\n.000.\n00000\n.000.\n0.0.0\n\n\n\nhand\nTRANSPARENT\n..000\n..000\n0.000\n.0000\n...00\n\nhand_turn\nTRANSPARENT\n000..\n.000.\n..000\n0.000\n.0000\n\n\nbody_1_1\nred red\n....1\n...11\n..1.1\n.1..1\n11111\n\nbody_1_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_1_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_1_4\nred\n\nbody_1_5\nred red\n11100\n11100\n11100\n11000\n11000\n\nbody_1_6\nred\n\nbody_1_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_1_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_1_9\nred\n00000\n0..0.\n0.0..\n00...\n0....\n\n\n\n\n\nbody_2_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_2_2\nred \n\nbody_2_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_2_4\nred red\n00000\n1.000\n1..00\n1.110\n11111\n\nbody_2_5\nred red\n00000\n10000\n11100\n11110\n11111\n\nbody_2_6\nred red\n00000\n100.0\n11..0\n111.0\n11111\n\nbody_2_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_2_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_2_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\nbody_3_1\nred red\n....1\n...11\n..111\n.1111\n11111\n\nbody_3_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_3_3\nred red\n0....\n00...\n0.0..\n0..0.\n00000\n\nbody_3_4\nred red\n00000\n00000\n00111\n11111\n11111\n\nbody_3_5\nred red\n00000\n00000\n11111\n11111\n11111\n\nbody_3_6\nred red\n00000\n00000\n11111\n11111\n11111\n\nbody_3_7\nred red\n11111\n.1..1\n..1.1\n...11\n....1\n\nbody_3_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_3_9\nred\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\nbody_4_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_4_2\nred red\n00000\n1...0\n11.00\n11110\n11111 \n\nbody_4_3\nred red\n0....\n00...\n001..\n0111.\n11111\n\nbody_4_4\nred\n\nbody_4_5\nred red\n00000\n00001\n00111\n01111\n11111\n\nbody_4_6\nred\n\nbody_4_7\nred red\n00001\n.0011\n..111\n...11\n....1\n\nbody_4_8\nred red\n11000\n11000\n11.00\n1...0\n11000\n\nbody_4_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\nbody_5_1\nred red\n....1\n...11\n..1.1\n.1..1\n11111\n\nbody_5_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_5_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_5_4\nred\n\nbody_5_5\nred red\n11100\n11100\n11100\n11000\n11000\n\nbody_5_6\nred\n\nbody_5_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_5_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_5_9\nred\n00000\n0..0.\n0.0..\n00...\n0....\n\n\n\n\n\nbody_6_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_6_2\nred \n\nbody_6_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_6_4\nred red\n00000\n1.000\n1..00\n1.110\n11111\n\nbody_6_5\nred red\n00000\n10000\n11100\n11110\n11111\n\nbody_6_6\nred red\n00000\n100.0\n11..0\n111.0\n11111\n\nbody_6_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_6_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_6_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\n\n\nbody_7_1\nred red\n....1\n...11\n..111\n.1111\n11111\n\nbody_7_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_7_3\nred red\n0....\n00...\n0.0..\n0..0.\n00000\n\nbody_7_4\nred red\n00000\n00000\n00111\n11111\n11111\n\nbody_7_5\nred red\n00000\n00000\n11111\n11111\n11111\n\nbody_7_6\nred red\n00000\n00000\n11111\n11111\n11111\n\nbody_7_7\nred red\n11111\n.1..1\n..1.1\n...11\n....1\n\nbody_7_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_7_9\nred\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\n\nbody_8_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_8_2\nred red\n00000\n1...0\n11.00\n11110\n11111 \n\nbody_8_3\nred red\n0....\n00...\n001..\n0111.\n11111\n\nbody_8_4\nred\n\nbody_8_5\nred red\n00000\n00001\n00111\n01111\n11111\n\nbody_8_6\nred\n\nbody_8_7\nred red\n00001\n.0011\n..111\n...11\n....1\n\nbody_8_8\nred red\n11000\n11000\n11.00\n1...0\n11000\n\nbody_8_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\n\nball_wwww\nwhite white\n.000.\n00000\n00111\n11111\n.111.\n\nball_bbbb\nblack black\n.000.\n00000\n00111\n11111\n.111.\n\nball_bbww\nblack white\n.000.\n00000\n00111\n11111\n.111.\n\nball_wwbb\nwhite black\n.000.\n00000\n00111\n11111\n.111.\n\nball_bwbw\nblack white \n.001.\n00011\n00111\n00111\n.011.\n\nball_wbwb\nwhite black \n.001.\n00011\n00111\n00111\n.011.\n\nt\nTRANSPARENT\n\n\n\n\n\n\ndarkred >\ndarkred\n\ndarkblue ?\ndarkblue\n\nstars ~\nwhite\n.....\n.....\n.0...\n.....\n.....\n\n\nmove_ul\ntransparent\n\nmove_ur\ntransparent\n\nmove_dl \ntransparent\n\nmove_dr\ntransparent\n\nmove_action\ntransparent\n\nmoved\ntransparent\n\nperson_target\ntransparent\n\n\n\n\nsprt_0_0 !\nyellow\n.....\n.....\n.....\n.....\n....0\n\nsprt_1_0 @\nyellow\n.....\n.....\n.0...\n000..\n00000\n\nsprt_2_0 £\nyellow white\n.....\n.....\n.....\n01...\n01...\n\n\nsprt_0_1 $\nyellow \n....0\n....0\n....0\n....0\n.....\n\nsprt_1_1 %\nyellow\n00000\n00000\n0.000\n...00\n.....\n\nsprt_2_1 ^\nyellow white\n01...\n01...\n01...\n.1...\n.1...\n\n\nsprt_0_2 &\nred darkred\n.....\n..000\n..010\n..000\n..001\n\nsprt_1_2 *\nred darkred\n.....\n0....\n1...0\n0..00\n1..0.\n\nsprt_2_2 -\nwhite red\n.0...\n111..\n111..\n.0...\n.0...\n\n\nsprt_0_3 \\\nred\n..000\n...00\n..000\n.0000\n00.00\n\nsprt_1_3 \"\nred\n0.00.\n000..\n0....\n0....\n0....\n\nsprt_2_3 \nwhite\n.0...\n.0...\n.....\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\nd = door and wall\nball = ball_wwww or ball_bbbb or ball_bbww or ball_wwbb or ball_bwbw or ball_wbwb\n\ntile = lighttile or darktile\n\nbody = body_1_1 or body_1_2 or body_1_3 or body_1_4 or body_1_5 or body_1_6 or body_1_7 or body_1_8 or body_1_9 or body_2_1 or body_2_2 or body_2_3 or body_2_4 or body_2_5 or body_2_6 or body_2_7 or body_2_8 or body_2_9 or body_3_1 or body_3_2 or body_3_3 or body_3_4 or body_3_5 or body_3_6 or body_3_7 or body_3_8 or body_3_9 or body_4_1 or body_4_2 or body_4_3 or body_4_4 or body_4_5 or body_4_6 or body_4_7 or body_4_8 or body_4_9 or body_5_1 or body_5_2 or body_5_3 or body_5_4 or body_5_5 or body_5_6 or body_5_7 or body_5_8 or body_5_9 or body_6_1 or body_6_2 or body_6_3 or body_6_4 or body_6_5 or body_6_6 or body_6_7 or body_6_8 or body_6_9 or body_7_1 or body_7_2 or body_7_3 or body_7_4 or body_7_5 or body_7_6 or body_7_7 or body_7_8 or body_7_9 or body_8_1 or body_8_2 or body_8_3 or body_8_4 or body_8_5 or body_8_6 or body_8_7 or body_8_8 or body_8_9\n\nhands = hand or hand_turn\n\napparatus = hands or body or ball\n. = Background\n# = Wall\nP = Player\n\n1 = body_1_1\n2 = body_1_2 and ball_bbbb\n3 = body_1_3\n4 = body_1_4 and ball_bbbb\n5 = body_1_5 and hand and Player\n6 = body_1_6 and ball_bbbb\n7 = body_1_7\n8 = body_1_8 and ball_bbbb\n9 = body_1_9\n\n(\nq = wall and body_3_1 \nw = wall and body_3_2 and ball_wwww\ne = wall and body_3_3 \nr = wall and body_3_4 and ball_wwbb\ng = wall and body_3_5 \ny = wall and body_3_6 and ball_wwbb\nu = wall and body_3_7 \ni = wall and body_3_8 and ball_bbbb\no = wall and body_3_9 \n)\n\nq = wall \nw = wall and ball_wwww\ne = wall \nr = wall and ball_wwbb\ng = wall \ny = wall and ball_wwbb\nu = wall \ni = wall and ball_bbbb\no = wall \n\n\nz = wall_tl and wall\nx = wall_tr and wall\nc = wall_bl and wall\nf = wall_br and wall\nb = wall_h and wall\nn = wall_v and wall\nm = wall_t and wall\n\n\nmove = move_ul or move_ur or move_dl or move_dr or move_action or moved\n\nmove_active = move_ul or move_ur or move_dl or move_dr\n\nє = tile_ul and Wall\nґ = tile_ur and Wall\nж = tile_dl and Wall\nд = tile_dr and Wall\nЮ = tile_all and Wall\n| = sprt_2_3 and Player\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nblack\ntile\nwall\nwall_tl, wall_tr, wall_bl, wall_br, wall_h, wall_v, wall_t\ndoor, key\nflag\nPlayer\nbody\nball\nhands\nt\n\ntile_ul, tile_ur, tile_dl, tile_dr, tile_all\n\nsprt_0_0, sprt_0_1, sprt_0_2, sprt_0_3, sprt_1_0, sprt_1_1, sprt_1_2, sprt_1_3, sprt_2_0, sprt_2_1, sprt_2_2, sprt_2_3, darkred, darkblue, stars\n\nperson\nperson_Target\nmove\n\n======\nRULES\n======\n\nright [flag | wall ] -> [flag wall | wall ]\n[person no tile ] -> [ person darktile]\n\n[darktile | no tile no wall ] -> [darktile | lighttile ]\n+[lighttile | no tile no wall ] -> [ lighttile | darktile ]\n(ball translations)\n [ ball | perpendicular player | ball ] -> [ perpendicular ball | perpendicular player | perpendicular ball ]\n\n(ball rotations)\n\nright [ ball | action player | ball ] -> [ down ball | action player | up ball ]\ndown [ ball | action player | ball ] -> [ left ball | action player | right ball ]\n\n\n[ up ball_wwww ] -> [ ball_wwbb ]\n[ down ball_wwww ] -> [ ball_bbww ]\n[ right ball_wwww ] -> [ ball_bwbw ]\n[ left ball_wwww ] -> [ ball_wbwb ]\n\n[ up ball_bbbb ] -> [ ball_bbww ]\n[ down ball_bbbb ] -> [ ball_wwbb ]\n[ right ball_bbbb ] -> [ ball_wbwb ]\n[ left ball_bbbb ] -> [ ball_bwbw ]\n\n[ up ball_bbww ] -> [ ball_wwww ]\n[ down ball_bbww ] -> [ ball_bbbb ]\n[ right ball_bbww ] -> [ ball_bbww ]\n[ left ball_bbww ] -> [ ball_bbww ]\n\n[ up ball_wwbb ] -> [ ball_bbbb ]\n[ down ball_wwbb ] -> [ ball_wwww ]\n[ right ball_wwbb ] -> [ ball_wwbb ]\n[ left ball_wwbb ] -> [ ball_wwbb ]\n\n[ up ball_bwbw ] -> [ ball_bwbw ]\n[ down ball_bwbw ] -> [ ball_bwbw ]\n[ right ball_bwbw ] -> [ ball_bbbb ]\n[ left ball_bwbw ] -> [ ball_wwww ]\n\n[ up ball_wbwb ] -> [ ball_wbwb ]\n[ down ball_wbwb ] -> [ ball_wbwb ]\n[ right ball_wbwb ] -> [ ball_wwww ]\n[ left ball_wbwb ] -> [ ball_bbbb ]\n\n\n\n\n(second part of movemet - rotate)\ndown [ | hand_turn ] -> [ t | hand_turn ]\nright [ hand_turn ] [ ball | t no wall | ball ] -> [ hand_turn ] [ down ball | t | left ball]\nright [ hand_turn ] [ ball | no wall no t | ball ] -> [ hand_turn ] [ right ball | no t | up ball]\n[t]->[]\n\n\n[ moving ball_wwww ] -> [ ball_wwww ]\n[ moving ball_bbbb ] -> [ ball_bbbb ]\n[ moving ball_bbww ] -> [ ball_bwbw ]\n[ moving ball_wwbb ] -> [ ball_wbwb ]\n[ moving ball_bwbw ] -> [ ball_wwbb ]\n[ moving ball_wbwb ] -> [ ball_bbww ]\n\n\n\n[ action player ] [ body_1_1 no wall ] -> [ action player ] [ body_2_1 ]\n[ action player ] [ body_1_2 no wall ] -> [ action player ] [ body_2_2 ]\n[ action player ] [ body_1_3 no wall ] -> [ action player ] [ body_2_3 ]\n[ action player ] [ body_1_4 no wall ] -> [ action player ] [ body_2_4 ]\n[ action player ] [ body_1_5 no wall ] -> [ action player ] [ body_2_5 ]\n[ action player ] [ body_1_6 no wall ] -> [ action player ] [ body_2_6 ]\n[ action player ] [ body_1_7 no wall ] -> [ action player ] [ body_2_7 ]\n[ action player ] [ body_1_8 no wall ] -> [ action player ] [ body_2_8 ]\n[ action player ] [ body_1_9 no wall ] -> [ action player ] [ body_2_9 ]\n\n[ action player ] [ body_3_1 no wall ] -> [ action player ] [ body_4_1 ]\n[ action player ] [ body_3_2 no wall ] -> [ action player ] [ body_4_2 ]\n[ action player ] [ body_3_3 no wall ] -> [ action player ] [ body_4_3 ]\n[ action player ] [ body_3_4 no wall ] -> [ action player ] [ body_4_4 ]\n[ action player ] [ body_3_5 no wall ] -> [ action player ] [ body_4_5 ]\n[ action player ] [ body_3_6 no wall ] -> [ action player ] [ body_4_6 ]\n[ action player ] [ body_3_7 no wall ] -> [ action player ] [ body_4_7 ]\n[ action player ] [ body_3_8 no wall ] -> [ action player ] [ body_4_8 ]\n[ action player ] [ body_3_9 no wall ] -> [ action player ] [ body_4_9 ]\n\n[ action player ] [ body_5_1 no wall ] -> [ action player ] [ body_6_1 ]\n[ action player ] [ body_5_2 no wall ] -> [ action player ] [ body_6_2 ]\n[ action player ] [ body_5_3 no wall ] -> [ action player ] [ body_6_3 ]\n[ action player ] [ body_5_4 no wall ] -> [ action player ] [ body_6_4 ]\n[ action player ] [ body_5_5 no wall ] -> [ action player ] [ body_6_5 ]\n[ action player ] [ body_5_6 no wall ] -> [ action player ] [ body_6_6 ]\n[ action player ] [ body_5_7 no wall ] -> [ action player ] [ body_6_7 ]\n[ action player ] [ body_5_8 no wall ] -> [ action player ] [ body_6_8 ]\n[ action player ] [ body_5_9 no wall ] -> [ action player ] [ body_6_9 ]\n\n[ action player ] [ body_7_1 no wall ] -> [ action player ] [ body_8_1 ]\n[ action player ] [ body_7_2 no wall ] -> [ action player ] [ body_8_2 ]\n[ action player ] [ body_7_3 no wall ] -> [ action player ] [ body_8_3 ]\n[ action player ] [ body_7_4 no wall ] -> [ action player ] [ body_8_4 ]\n[ action player ] [ body_7_5 no wall ] -> [ action player ] [ body_8_5 ]\n[ action player ] [ body_7_6 no wall ] -> [ action player ] [ body_8_6 ]\n[ action player ] [ body_7_7 no wall ] -> [ action player ] [ body_8_7 ]\n[ action player ] [ body_7_8 no wall ] -> [ action player ] [ body_8_8 ]\n[ action player ] [ body_7_9 no wall ] -> [ action player ] [ body_8_9 ]\n\n\n[ hand_turn ] [ body_2_1 no wall ] -> [ hand_turn ] [ body_3_1 ]\n[ hand_turn ] [ body_2_2 no wall ] -> [ hand_turn ] [ body_3_2 ]\n[ hand_turn ] [ body_2_3 no wall ] -> [ hand_turn ] [ body_3_3 ]\n[ hand_turn ] [ body_2_4 no wall ] -> [ hand_turn ] [ body_3_4 ]\n[ hand_turn ] [ body_2_5 no wall ] -> [ hand_turn ] [ body_3_5 ]\n[ hand_turn ] [ body_2_6 no wall ] -> [ hand_turn ] [ body_3_6 ]\n[ hand_turn ] [ body_2_7 no wall ] -> [ hand_turn ] [ body_3_7 ]\n[ hand_turn ] [ body_2_8 no wall ] -> [ hand_turn ] [ body_3_8 ]\n[ hand_turn ] [ body_2_9 no wall ] -> [ hand_turn ] [ body_3_9 ]\n\n[ hand_turn ] [ body_4_1 no wall ] -> [ hand_turn ] [ body_5_1 ]\n[ hand_turn ] [ body_4_2 no wall ] -> [ hand_turn ] [ body_5_2 ]\n[ hand_turn ] [ body_4_3 no wall ] -> [ hand_turn ] [ body_5_3 ]\n[ hand_turn ] [ body_4_4 no wall ] -> [ hand_turn ] [ body_5_4 ]\n[ hand_turn ] [ body_4_5 no wall ] -> [ hand_turn ] [ body_5_5 ]\n[ hand_turn ] [ body_4_6 no wall ] -> [ hand_turn ] [ body_5_6 ]\n[ hand_turn ] [ body_4_7 no wall ] -> [ hand_turn ] [ body_5_7 ]\n[ hand_turn ] [ body_4_8 no wall ] -> [ hand_turn ] [ body_5_8 ]\n[ hand_turn ] [ body_4_9 no wall ] -> [ hand_turn ] [ body_5_9 ]\n\n[ hand_turn ] [ body_6_1 no wall ] -> [ hand_turn ] [ body_7_1 ]\n[ hand_turn ] [ body_6_2 no wall ] -> [ hand_turn ] [ body_7_2 ]\n[ hand_turn ] [ body_6_3 no wall ] -> [ hand_turn ] [ body_7_3 ]\n[ hand_turn ] [ body_6_4 no wall ] -> [ hand_turn ] [ body_7_4 ]\n[ hand_turn ] [ body_6_5 no wall ] -> [ hand_turn ] [ body_7_5 ]\n[ hand_turn ] [ body_6_6 no wall ] -> [ hand_turn ] [ body_7_6 ]\n[ hand_turn ] [ body_6_7 no wall ] -> [ hand_turn ] [ body_7_7 ]\n[ hand_turn ] [ body_6_8 no wall ] -> [ hand_turn ] [ body_7_8 ]\n[ hand_turn ] [ body_6_9 no wall ] -> [ hand_turn ] [ body_7_9 ]\n\n[ hand_turn ] [ body_8_1 no wall ] -> [ hand_turn ] [ body_1_1 ]\n[ hand_turn ] [ body_8_2 no wall ] -> [ hand_turn ] [ body_1_2 ]\n[ hand_turn ] [ body_8_3 no wall ] -> [ hand_turn ] [ body_1_3 ]\n[ hand_turn ] [ body_8_4 no wall ] -> [ hand_turn ] [ body_1_4 ]\n[ hand_turn ] [ body_8_5 no wall ] -> [ hand_turn ] [ body_1_5 ]\n[ hand_turn ] [ body_8_6 no wall ] -> [ hand_turn ] [ body_1_6 ]\n[ hand_turn ] [ body_8_7 no wall ] -> [ hand_turn ] [ body_1_7 ]\n[ hand_turn ] [ body_8_8 no wall ] -> [ hand_turn ] [ body_1_8 ]\n[ hand_turn ] [ body_8_9 no wall ] -> [ hand_turn ] [ body_1_9 ]\n\n\n\n\n\n\n\n\n\n(need to do body rotations as well here!)\n\n(move object)\n[moving player ] [ stationary apparatus] -> [ moving player ] [ moving apparatus]\n\n\nright [ ball | action player | ball ] -> [ down ball | action player | up ball ]\ndown [ ball | action player | ball ] -> [ left ball | action player | right ball ]\n\n\ndown [ | hand_turn ] -> [ t | hand_turn ]\nright [ hand_turn ] [ ball | t | ball ] -> [ hand_turn ] [ down ball | t | left ball]\nright [ hand_turn ] [ ball | no t | ball ] -> [ hand_turn ] [ right ball | no t | up ball]\n\n\n\n[ hand_turn ] -> [ hand]\n[ action player ] [ hand ] -> [ action player ] [ hand_turn ] again \n\n[t]->[]\n\n[ body wall ] -> [ stationary body wall ] \n[ ball wall ] -> [ stationary ball wall ]\n\n[ > body | wall ] -> cancel\n\n\nrandom up [move_ul] [person | ] -> [ move_ul] [ person | person_target]\nrandom up [move_ur] [person | ] -> [ move_ur] [ person | person_target]\nrandom down [move_dl] [person | ] -> [ move_dl] [ person | person_target]\nrandom down [move_dr] [person | ] -> [ move_dr] [ person | person_target]\n\nrandom left [move_ul] [person_target | ] -> [ moved] [ | person_target ]\nrandom right [move_ur] [person_target | ] -> [ moved] [ | person_target ]\nrandom left [move_dl] [person_target | ] -> [ moved] [ | person_target ]\nrandom right [move_dr] [person_target | ] -> [ moved] [ | person_target ]\n[person_target wall ] -> [ wall] \n\n[person_target ] [ person ] -> [ person ] [ ]\n\n[move_active]->[]\n\nlate down [ ball_wwww | player no moved | ball_bbbb ] -> [ ball_wwww | player t | ball_bbbb ]\nlate right [ ball_wwww | player t| ball_bbbb ] -> [ ball_wwww | player move_ul | ball_bbbb ] again\nlate [t] -> [ ]\n\n\nlate down [ ball_wwww | player no moved | ball_bbbb ] -> [ ball_wwww | player t | ball_bbbb ]\nlate right [ ball_bbbb | player t| ball_wwww ] -> [ ball_bbbb | player move_ur | ball_wwww ] again\nlate [t] -> [ ]\n\n\nlate down [ ball_bbbb | player no moved | ball_wwww ] -> [ ball_bbbb | player t | ball_wwww ]\nlate right [ ball_wwww | player t| ball_bbbb ] -> [ ball_wwww | player move_dl | ball_bbbb ] again\nlate [t] -> [ ]\n\n\nlate down [ ball_bbbb | player no moved | ball_wwww ] -> [ ball_bbbb | player t | ball_wwww ]\nlate right [ ball_bbbb | player t| ball_wwww ] -> [ ball_bbbb | player move_dr | ball_wwww ] again\nlate [t] -> [ ]\n\n\nlate down [ ball_wwww | player no moved | ball_wwww ] -> [ ball_wwww | player t | ball_wwww ]\nlate right [ ball_wwww | player t | ball_wwww ] [person flag] -> win\nlate [t] -> [ ]\n\nlate [moved]->[]\n\n[action player sprt_2_3] -> win\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\nfffffffffffffffffffffffff\nffffю.гffffcbbbbbbbbbbbcf\nfffffffffffn...........nf\nfєbbbbbbbґfn...........nf\nfn.......nfn...........nf\nfn.......nfn...cbbbc...nf\nfn..123..nfn...n...n...nf\nfn..456..nfn...n.г.n...nf\nfn..789..nfn...n...c...nf\nfn.......nfn.б.n.......nf\nfn.......nfn...n.......nf\nfжbbbbbbbдfcbbbcbbbbbbbcf\nfffffffffffffffffffffffff\n\nmessage victory!\n\n!@£\n$%^\n&*-\n\\\"|\n\n\n\n", [3, 0, 4, 0, 4, 1, 3, 2, 1, 1, 4, 2, 3, 1, 1, 0, 0, 3, 1], "background wall wall_br:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background tile_ul wall:1,background wall wall_v:2,2,2,2,2,2,2,background tile_dl wall:3,\n0,0,0,0,background wall wall_h:4,background body_7_1:5,background ball_wwww body_7_4:6,background body_7_7:7,background:8,8,8,8,4,0,0,0,0,4,background ball_wwww body_7_2:9,background body_7_5 hand player:10,background ball_bbbb body_7_8:11,8,8,8,8,\n4,0,0,background tile_all wall:12,0,4,background body_7_3:13,background ball_bbbb body_7_6:14,background body_7_9:15,8,8,8,8,4,0,0,8,0,4,8,8,8,8,8,8,\n8,4,0,0,background flag wall:16,0,4,8,8,8,8,8,8,8,4,0,0,0,0,4,8,8,8,8,8,\n8,8,4,0,0,0,0,4,8,8,8,8,8,8,8,4,0,0,0,0,background tile_ur wall:17,2,2,2,2,\n2,2,2,background tile_dr wall:18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background wall wall_bl:19,2,2,2,2,2,\n2,2,2,2,19,0,0,4,background darktile:20,background lighttile:21,20,21,background darktile person:22,21,20,21,20,4,0,0,4,21,20,21,20,\n21,20,21,20,21,4,0,0,4,20,21,20,21,20,21,20,21,20,4,0,0,4,21,20,21,\n19,2,2,2,2,2,19,0,0,4,20,21,20,4,20,21,20,21,20,4,0,0,4,21,20,\n21,4,21,background darktile flag:23,21,20,21,4,0,0,4,20,21,20,4,20,21,20,21,20,4,0,0,4,21,\n20,21,19,2,2,19,20,21,4,0,0,4,20,21,20,21,20,21,20,21,20,4,0,0,4,\n21,20,21,20,21,20,21,20,21,4,0,0,4,20,21,20,21,20,21,20,21,20,4,0,0,\n19,2,2,2,2,2,2,2,2,2,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 1, "1627891910482.2163"] ], [ - "An OK multiban level", - ["title An OK multiban level \nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground\ndarkblue darkgreen\n00000\n00010\n00000\n01000\n00000\n\n\nTarget\npink\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\nWall\ndarkgray darkbrown gray \n00010\n11111\n01000\n11111\n00010\n\n\nPlayer\ndarkbrown brown darkbrown black darkred\n.000.\n.111.\n42224\n14441\n.3.3.\n\n\n\nCrate\nOrange brown\n.000.\n11000\n11000\n11100\n.111.\n\nc_u\nlightgreen lightgreen\n.000.\n.111.\n..1..\n.....\n.....\n\nc_d\ngreen green\n.....\n.....\n..1..\n.111.\n.000.\n\nc_l\ngreen green\n.....\n01...\n011..\n01...\n.....\n\nc_r\nlightgreen lightgreen\n.....\n...10\n..110\n...10\n.....\n\n=======\nLEGEND\n=======\n\nc = c_u or c_d or c_l or c_r\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ns = crate and c_u and c_d and c_l and c_r\nd = s and target\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nc_u\nc_d\nc_l\nc_r\nTarget\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate | Crate ] -> [ > crate | > Crate ]\n\n[moving crate c] -> [ moving crate moving c]\n\n\nup [ c_u | < player ] -> cancel\ndown [ c_d | < player ] -> cancel\nleft [ c_l | < player ] -> cancel\nright [ c_r | < player ] -> cancel\n\n\nlate up [ c_u | crate ] -> [c_u|c_d crate]\nlate down [ c_d | crate ] -> [c_d|c_u crate]\nlate left [ c_l | crate ] -> [c_l|c_r crate]\nlate right [ c_r | crate ] -> [c_r|c_l crate]\n\nlate [ c no crate ] -> cancel\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n#########\n#...o...#\n#.**o**.#\n#.##o##.#\n#...o.p.#\n#########\n\nmessage congrats\n",[1,1,0,0,3,0,3,3,2,2],"background wall:0,0,0,0,0,0,0,background:1,1,\n1,1,0,0,1,background crate:2,0,1,0,\n0,1,2,0,1,0,0,background target:3,3,\n3,3,0,0,1,1,0,1,0,\n0,1,2,0,1,0,0,1,1,\nbackground player:4,2,0,0,0,0,0,0,0,\n",1,"1627891934752.9468"] + "An OK multiban level", + ["title An OK multiban level \nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground\ndarkblue darkgreen\n00000\n00010\n00000\n01000\n00000\n\n\nTarget\npink\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\nWall\ndarkgray darkbrown gray \n00010\n11111\n01000\n11111\n00010\n\n\nPlayer\ndarkbrown brown darkbrown black darkred\n.000.\n.111.\n42224\n14441\n.3.3.\n\n\n\nCrate\nOrange brown\n.000.\n11000\n11000\n11100\n.111.\n\nc_u\nlightgreen lightgreen\n.000.\n.111.\n..1..\n.....\n.....\n\nc_d\ngreen green\n.....\n.....\n..1..\n.111.\n.000.\n\nc_l\ngreen green\n.....\n01...\n011..\n01...\n.....\n\nc_r\nlightgreen lightgreen\n.....\n...10\n..110\n...10\n.....\n\n=======\nLEGEND\n=======\n\nc = c_u or c_d or c_l or c_r\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ns = crate and c_u and c_d and c_l and c_r\nd = s and target\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nc_u\nc_d\nc_l\nc_r\nTarget\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate | Crate ] -> [ > crate | > Crate ]\n\n[moving crate c] -> [ moving crate moving c]\n\n\nup [ c_u | < player ] -> cancel\ndown [ c_d | < player ] -> cancel\nleft [ c_l | < player ] -> cancel\nright [ c_r | < player ] -> cancel\n\n\nlate up [ c_u | crate ] -> [c_u|c_d crate]\nlate down [ c_d | crate ] -> [c_d|c_u crate]\nlate left [ c_l | crate ] -> [c_l|c_r crate]\nlate right [ c_r | crate ] -> [c_r|c_l crate]\n\nlate [ c no crate ] -> cancel\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n#########\n#...o...#\n#.**o**.#\n#.##o##.#\n#...o.p.#\n#########\n\nmessage congrats\n", [1, 1, 0, 0, 3, 0, 3, 3, 2, 2], "background wall:0,0,0,0,0,0,0,background:1,1,\n1,1,0,0,1,background crate:2,0,1,0,\n0,1,2,0,1,0,0,background target:3,3,\n3,3,0,0,1,1,0,1,0,\n0,1,2,0,1,0,0,1,1,\nbackground player:4,2,0,0,0,0,0,0,0,\n", 1, "1627891934752.9468"] ], [ - "Unclean Residues", - ["title Unclean Residues \nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\n\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground\ndarkblue darkgreen\n00000\n00010\n00000\n01000\n00000\n\n\nTarget\npink\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\nWall\ndarkgray darkbrown gray \n00010\n11111\n01000\n11111\n00010\n\n\nPlayer\ndarkbrown brown darkbrown black darkred\n.000.\n.111.\n42224\n14441\n.3.3.\n\n\n\nCrate\nOrange brown\n.000.\n11000\n11000\n11100\n.111.\n\nc_u\nlightgreen lightgreen\n.000.\n.111.\n..1..\n.....\n.....\n\nc_d\ngreen green\n.....\n.....\n..1..\n.111.\n.000.\n\nc_l\ngreen green\n.....\n01...\n011..\n01...\n.....\n\nc_r\nlightgreen lightgreen\n.....\n...10\n..110\n...10\n.....\n\n=======\nLEGEND\n=======\n\nc = c_u or c_d or c_l or c_r\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ns = crate and c_u and c_d and c_l and c_r\nd = s and target\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nc_u\nc_d\nc_l\nc_r\nTarget\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate | Crate ] -> [ > crate | > Crate ]\n\n[moving crate c] -> [ moving crate moving c]\n\n\nup [ c_u | < player ] -> cancel\ndown [ c_d | < player ] -> cancel\nleft [ c_l | < player ] -> cancel\nright [ c_r | < player ] -> cancel\n\n\nlate up [ c_u | crate ] -> [c_u|c_d crate]\nlate down [ c_d | crate ] -> [c_d|c_u crate]\nlate left [ c_l | crate ] -> [c_l|c_r crate]\nlate right [ c_r | crate ] -> [c_r|c_l crate]\n\nlate [ c no crate ] -> cancel\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 6\n\nmessage Place all the stones on the markers BUT BE WARY OF CONTAMINATION\n\n\n(ok?)\n###############\n#.............#\n#.............#\n#...o.o.*.s...#\n#........p....#\n#...o.o.s.*...#\n#.............#\n#.............#\n###############\n\n\nmessage Level 2 of 6\n\n(medium)\n########\n#......#\n#......#\n#..#p..#\n#..s@..#\n#..o@..#\n#......#\n#......#\n########\n\n\n\nmessage Level 3 of 6\n\n\n(ok? too easy?)\n#########\n#.......#\n#.......#\n#.**os*.#\n#.##o##.#\n#...o.p.#\n#...o...#\n#########\n\n\n\nmessage Level 4 of 6\n\n#########\n#.......#\n#...*...#\n#..*s*..#\n#.......#\n#..o.op.#\n#..o.o..#\n#.......#\n#########\n\n\nmessage Level 5 of 6\n\n#########\n#.......#\n#.......#\n#..oso..#\n#..*o*..#\n#..oso..#\n#..*o*..#\n#...p...#\n#.......#\n#########\n\nmessage OH NO THE WALLS ARE CLOSING IN\nmessage level 6 of 6\n\n(hard mode)\n#######\n#.....#\n#.oso.#\n#.*o*.#\n#.oso.#\n#.*o*.#\n#..p..#\n#######\n\nmessage CONGRATULATIONS \n\n(====================================\n\n#########\n#.......#\n#.......#\n#...*...#\n#..*s*..#\n#.......#\n#..o.op.#\n#..o.o..#\n#.......#\n#########\n\n\n#########\n#.......#\n#.......#\n#...*...#\n#..*s*..#\n#..ooo..#\n#...o.p.#\n#.......#\n#.......#\n#########\n\n(too similar leve to 1)\n#############\n#...........#\n#...........#\n#...........#\n#...o.*.o...#\n#...........#\n#...s.p.s...#\n#...........#\n#...o.*.o...#\n#...........#\n#...........#\n#...........#\n#############\n\n(insoluble?)\n###########\n#....o....#\n#....o....#\n#.***os**.#\n#.###o###.#\n#....o.p..#\n#....o....#\n###########\n\n(oh this is an ok multiban level -_-)\n#########\n#...o...#\n#.**o**.#\n#.##o##.#\n#...o.p.#\n#########\n\n\n#########\n#.......#\n#...o...#\n#.**os*.#\n#.##o##.#\n#...o.p.#\n#.......#\n#########\n\n#########\n#...o...#\n#.**os*.#\n#.##o##.#\n#...o.p.#\n#########\n\n(too easy)\n\n#######\n#.....#\n#.#*..#\n#.*s..#\n#...p.#\n#.ooo.#\n#.....#\n#######\n\n\n#########\n#.......#\n#.......#\n#.*sos*.#\n#.##o##.#\n#...p...#\n#...o...#\n#########\n\n#########\n#.*.o...#\n#...o.*.#\n#.##@##.#\n#...@.p.#\n#########\n\n#########\n#.....###\n#.#*..###\n#.*s....#\n#....p..#\n#.o.o.o.#\n#.......#\n#########\n\n#########\n#.......#\n#.#*....#\n#.*s....#\n#....p..#\n#.o.o.o.#\n#.......#\n#########\n\n\n(pretty easy)\n#######\n#.....#\n#.po*.#\n#.oso.#\n#.*o*.#\n#.....#\n#######\n\n(ok?)\n###############\n#.............#\n#.............#\n#......s......#\n#.............#\n#..s.o.o......#\n#.............#\n#........s....#\n#...p.........#\n#......*.o.o..#\n#.............#\n#.............#\n###############\n\n(meh)\n##########\n#........#\n#........#\n#...o*o..#\n#...o....#\n#...ss.p.#\n#...ss...#\n#....o...#\n#..o*o...#\n#........#\n#........#\n##########\n\n\n\n(not so hard)\n#######\n#.....#\n#.OsO.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n(too easy)\n.......\n.......\n..*os..\n..o.o..\n..so*..\n...p...\n.......\n\n\n#####.\n#O..##\n#P*.#.\n##...#\n.##..#\n..##O#\n...###\n\n\n#######\n#.....#\n#.OsO.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\n################\n#..............#\n#.ooo......ooo.#\n#.....ss.*.....#\n#.....ss.*.....#\n#..........p...#\n#..............#\n#..............#\n################\n\n############\n#..........#\n#.ooo..p...#\n#.ooo......#\n#..........#\n#....ss.*..#\n#....ss.*..#\n#..........#\n#..........#\n#..........#\n############\n\n###############\n#.............#\n#.............#\n#..ooo.ss.*...#\n#..ooo.ss.*...#\n#.............#\n#.....p.......#\n#.............#\n###############\n\n###############\n#.............#\n#.............#\n#...oo.s.*....#\n#...oo.s.*....#\n#.............#\n#.....p.......#\n#.............#\n###############\n\n\n###############\n#.............#\n#.............#\n#...o.o.s.*...#\n#........p....#\n#...o.o.s.*...#\n#.............#\n#.............#\n###############\n\n#############\n#...........#\n#...........#\n#......s....#\n#...........#\n#..s.o.o....#\n#.....p.....#\n#....o.o.s..#\n#...........#\n#....*......#\n#...........#\n#...........#\n#############\n\n###############\n#.............#\n#.............#\n#...o.o.*.*...#\n#........p....#\n#...o.o.s.*...#\n#.............#\n#.............#\n###############\n\n####################\n#..................#\n#..................#\n#...o.o....*.*.....#\n#........p.........#\n#...o.o....s.*.....#\n#..................#\n#..................#\n####################\n\n###################\n#.................#\n#.................#\n#..o.o.o.p.s.*.*..#\n#.................#\n#.................#\n###################\n\n\n###################\n#.................#\n#.................#\n#..o.o.o.p.s.*.*..#\n#.................#\n#.................#\n###################\n\n\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#.....p.s.*.....#\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\n#######################\n#.....................#\n#.....................#\n#.....................#\n#.....o.*.o...........#\n#.....................#\n#.....s.p.s...........#\n#.....................#\n#.....o.*.o...........#\n#.....................#\n#.....................#\n#.....................#\n#######################\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\n\n#############\n#...........#\n#.o.o.s.*...#\n#......p....#\n#.o.o.s.*...#\n#...........#\n#############\n\n#############\n#...........#\n#.ooo.s.**..#\n#....p......#\n#...........#\n#...........#\n#############\n)\n",[2,3,2,0,1,1,3,2,2,1,0,2,2,1,0,1,0,3],"background wall:0,0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,\n1,1,0,0,1,1,0,background c_d c_l c_r c_u crate:2,\nbackground player target:3,1,1,0,0,1,1,1,\nbackground c_d c_l crate target:4,background c_u crate target:5,1,1,0,0,1,1,\n1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,0,0,\n0,0,0,0,0,0,0,0,\n",4,"1627891984006.569"] + "Unclean Residues", + ["title Unclean Residues \nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\n\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground\ndarkblue darkgreen\n00000\n00010\n00000\n01000\n00000\n\n\nTarget\npink\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\nWall\ndarkgray darkbrown gray \n00010\n11111\n01000\n11111\n00010\n\n\nPlayer\ndarkbrown brown darkbrown black darkred\n.000.\n.111.\n42224\n14441\n.3.3.\n\n\n\nCrate\nOrange brown\n.000.\n11000\n11000\n11100\n.111.\n\nc_u\nlightgreen lightgreen\n.000.\n.111.\n..1..\n.....\n.....\n\nc_d\ngreen green\n.....\n.....\n..1..\n.111.\n.000.\n\nc_l\ngreen green\n.....\n01...\n011..\n01...\n.....\n\nc_r\nlightgreen lightgreen\n.....\n...10\n..110\n...10\n.....\n\n=======\nLEGEND\n=======\n\nc = c_u or c_d or c_l or c_r\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ns = crate and c_u and c_d and c_l and c_r\nd = s and target\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nc_u\nc_d\nc_l\nc_r\nTarget\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate | Crate ] -> [ > crate | > Crate ]\n\n[moving crate c] -> [ moving crate moving c]\n\n\nup [ c_u | < player ] -> cancel\ndown [ c_d | < player ] -> cancel\nleft [ c_l | < player ] -> cancel\nright [ c_r | < player ] -> cancel\n\n\nlate up [ c_u | crate ] -> [c_u|c_d crate]\nlate down [ c_d | crate ] -> [c_d|c_u crate]\nlate left [ c_l | crate ] -> [c_l|c_r crate]\nlate right [ c_r | crate ] -> [c_r|c_l crate]\n\nlate [ c no crate ] -> cancel\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 6\n\nmessage Place all the stones on the markers BUT BE WARY OF CONTAMINATION\n\n\n(ok?)\n###############\n#.............#\n#.............#\n#...o.o.*.s...#\n#........p....#\n#...o.o.s.*...#\n#.............#\n#.............#\n###############\n\n\nmessage Level 2 of 6\n\n(medium)\n########\n#......#\n#......#\n#..#p..#\n#..s@..#\n#..o@..#\n#......#\n#......#\n########\n\n\n\nmessage Level 3 of 6\n\n\n(ok? too easy?)\n#########\n#.......#\n#.......#\n#.**os*.#\n#.##o##.#\n#...o.p.#\n#...o...#\n#########\n\n\n\nmessage Level 4 of 6\n\n#########\n#.......#\n#...*...#\n#..*s*..#\n#.......#\n#..o.op.#\n#..o.o..#\n#.......#\n#########\n\n\nmessage Level 5 of 6\n\n#########\n#.......#\n#.......#\n#..oso..#\n#..*o*..#\n#..oso..#\n#..*o*..#\n#...p...#\n#.......#\n#########\n\nmessage OH NO THE WALLS ARE CLOSING IN\nmessage level 6 of 6\n\n(hard mode)\n#######\n#.....#\n#.oso.#\n#.*o*.#\n#.oso.#\n#.*o*.#\n#..p..#\n#######\n\nmessage CONGRATULATIONS \n\n(====================================\n\n#########\n#.......#\n#.......#\n#...*...#\n#..*s*..#\n#.......#\n#..o.op.#\n#..o.o..#\n#.......#\n#########\n\n\n#########\n#.......#\n#.......#\n#...*...#\n#..*s*..#\n#..ooo..#\n#...o.p.#\n#.......#\n#.......#\n#########\n\n(too similar leve to 1)\n#############\n#...........#\n#...........#\n#...........#\n#...o.*.o...#\n#...........#\n#...s.p.s...#\n#...........#\n#...o.*.o...#\n#...........#\n#...........#\n#...........#\n#############\n\n(insoluble?)\n###########\n#....o....#\n#....o....#\n#.***os**.#\n#.###o###.#\n#....o.p..#\n#....o....#\n###########\n\n(oh this is an ok multiban level -_-)\n#########\n#...o...#\n#.**o**.#\n#.##o##.#\n#...o.p.#\n#########\n\n\n#########\n#.......#\n#...o...#\n#.**os*.#\n#.##o##.#\n#...o.p.#\n#.......#\n#########\n\n#########\n#...o...#\n#.**os*.#\n#.##o##.#\n#...o.p.#\n#########\n\n(too easy)\n\n#######\n#.....#\n#.#*..#\n#.*s..#\n#...p.#\n#.ooo.#\n#.....#\n#######\n\n\n#########\n#.......#\n#.......#\n#.*sos*.#\n#.##o##.#\n#...p...#\n#...o...#\n#########\n\n#########\n#.*.o...#\n#...o.*.#\n#.##@##.#\n#...@.p.#\n#########\n\n#########\n#.....###\n#.#*..###\n#.*s....#\n#....p..#\n#.o.o.o.#\n#.......#\n#########\n\n#########\n#.......#\n#.#*....#\n#.*s....#\n#....p..#\n#.o.o.o.#\n#.......#\n#########\n\n\n(pretty easy)\n#######\n#.....#\n#.po*.#\n#.oso.#\n#.*o*.#\n#.....#\n#######\n\n(ok?)\n###############\n#.............#\n#.............#\n#......s......#\n#.............#\n#..s.o.o......#\n#.............#\n#........s....#\n#...p.........#\n#......*.o.o..#\n#.............#\n#.............#\n###############\n\n(meh)\n##########\n#........#\n#........#\n#...o*o..#\n#...o....#\n#...ss.p.#\n#...ss...#\n#....o...#\n#..o*o...#\n#........#\n#........#\n##########\n\n\n\n(not so hard)\n#######\n#.....#\n#.OsO.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n(too easy)\n.......\n.......\n..*os..\n..o.o..\n..so*..\n...p...\n.......\n\n\n#####.\n#O..##\n#P*.#.\n##...#\n.##..#\n..##O#\n...###\n\n\n#######\n#.....#\n#.OsO.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\n################\n#..............#\n#.ooo......ooo.#\n#.....ss.*.....#\n#.....ss.*.....#\n#..........p...#\n#..............#\n#..............#\n################\n\n############\n#..........#\n#.ooo..p...#\n#.ooo......#\n#..........#\n#....ss.*..#\n#....ss.*..#\n#..........#\n#..........#\n#..........#\n############\n\n###############\n#.............#\n#.............#\n#..ooo.ss.*...#\n#..ooo.ss.*...#\n#.............#\n#.....p.......#\n#.............#\n###############\n\n###############\n#.............#\n#.............#\n#...oo.s.*....#\n#...oo.s.*....#\n#.............#\n#.....p.......#\n#.............#\n###############\n\n\n###############\n#.............#\n#.............#\n#...o.o.s.*...#\n#........p....#\n#...o.o.s.*...#\n#.............#\n#.............#\n###############\n\n#############\n#...........#\n#...........#\n#......s....#\n#...........#\n#..s.o.o....#\n#.....p.....#\n#....o.o.s..#\n#...........#\n#....*......#\n#...........#\n#...........#\n#############\n\n###############\n#.............#\n#.............#\n#...o.o.*.*...#\n#........p....#\n#...o.o.s.*...#\n#.............#\n#.............#\n###############\n\n####################\n#..................#\n#..................#\n#...o.o....*.*.....#\n#........p.........#\n#...o.o....s.*.....#\n#..................#\n#..................#\n####################\n\n###################\n#.................#\n#.................#\n#..o.o.o.p.s.*.*..#\n#.................#\n#.................#\n###################\n\n\n###################\n#.................#\n#.................#\n#..o.o.o.p.s.*.*..#\n#.................#\n#.................#\n###################\n\n\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#.....p.s.*.....#\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\n#######################\n#.....................#\n#.....................#\n#.....................#\n#.....o.*.o...........#\n#.....................#\n#.....s.p.s...........#\n#.....................#\n#.....o.*.o...........#\n#.....................#\n#.....................#\n#.....................#\n#######################\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\n\n#############\n#...........#\n#.o.o.s.*...#\n#......p....#\n#.o.o.s.*...#\n#...........#\n#############\n\n#############\n#...........#\n#.ooo.s.**..#\n#....p......#\n#...........#\n#...........#\n#############\n)\n", [2, 3, 2, 0, 1, 1, 3, 2, 2, 1, 0, 2, 2, 1, 0, 1, 0, 3], "background wall:0,0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,\n1,1,0,0,1,1,0,background c_d c_l c_r c_u crate:2,\nbackground player target:3,1,1,0,0,1,1,1,\nbackground c_d c_l crate target:4,background c_u crate target:5,1,1,0,0,1,1,\n1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,0,0,\n0,0,0,0,0,0,0,0,\n", 4, "1627891984006.569"] ], [ - "Car Crash", - ["title Car Crash\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nnoaction\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground\nblack\n\nbg_light\ndarkgreen\n\nbg_dark\ndarkblue\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nblack \n\nPlayer_down\nlightred darkgreen\n.....\n.000.\n00000\n00000\n00000\n\n\nPlayer_up\nlightred darkgreen\n00000\n00000\n00000\n.000.\n.....\n\nplayer_right\nlightred darkgreen\n..000\n.0000\n.0000\n.0000\n..000\n\n\nplayer_left\nlightred darkgreen\n000..\n0000.\n0000.\n0000.\n000..\n\nplayer_crushed\ndarkgreen darkgray\n..1..\n.101.\n10001\n.101.\n..1..\n\nenemy_crushed\ndarkred darkgray\n..1..\n.101.\n10001\n.101.\n..1..\n\nenemy_down\nred\n..0..\n.000.\n00000\n00000\n00000\n\n\nenemy_up\nred\n00000\n00000\n00000\n.000.\n..0..\n\nenemy_right\nred\n..000\n.0000\n00000\n.0000\n..000\n\n\nenemy_left\nred\n000..\n0000.\n00000\n0000.\n000..\n\n\ngoal\nyellow\n.....\n..0..\n.000.\n..0..\n.....\n\n\nwint\nblack\n\ntemp\nTRANSPARENT\n\nt2\nTRANSPARENT\n\nfinaltext\nyellow\n\nblack \nblack\n\n=======\nLEGEND\n=======\n\n\nplayer_noup = player_down or player_left or player_right\nplayer_nodown = player_up or player_left or player_right\nplayer_noleft = player_up or player_down or player_right\nplayer_noright = player_up or player_down or player_left\n\nplayer_dir = player_up or player_down or player_left or player_right\nplayer = player_dir or player_crushed\n\nenemy = enemy_up or enemy_down or enemy_left or enemy_right\n\n. = Background\n# = Wall\nO = Target\n\n1 = player_down and player_right\n2 = player_down and player_left\n3 = player_up and player_down and player_right\n4 = player_up and player_down and player_left\n5 = player_up and player_right\n6 = player_up and player_left\n\n\n\n\nq = enemy_down and enemy_right\nw = enemy_down and enemy_left\ne = enemy_up and enemy_down and enemy_right\nr = enemy_up and enemy_down and enemy_left\nt = enemy_up and enemy_right\ny = enemy_up and enemy_left\n\nu = enemy_left and enemy_down and enemy_right\ni = enemy_left and enemy_up and enemy_right\n\ng = goal\na = wint\n\ns = enemy_right\nd = enemy_right and enemy_left\nf = enemy_left\n\nz = finaltext and black\n\n=======\nSOUNDS\n=======\n\nsfx0 7375900\nsfx1 12966304\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbg_light, bg_dark\n\nwint\n\nTarget\n\nenemy_up\nenemy_down\nenemy_left\nenemy_right\nenemy_crushed\n\nplayer_up\nplayer_down\nplayer_left\nplayer_right\nplayer_crushed\n\nwall\ngoal\n\ntemp\nt2\nfinaltext\nblack\n\n======\nRULES\n======\n\n(\n[ > player_crushed | enemy ] -> [ > player_crushed | > enemy ]\nup [ moving enemy_up | enemy ] -> [ moving enemy_up | moving enemy ]\n+ down [ moving enemy_down | enemy ] -> [ moving enemy_down | moving enemy ]\n+ left [ moving enemy_left | enemy ] -> [ moving enemy_left | moving enemy ]\n+ right [ moving enemy_right | enemy ] -> [ moving enemy_right | moving enemy ]\n)\n\nrandom [ ] -> [ bg_light]\n\n[bg_light | no bg_dark ] -> [ bg_light | bg_dark]\n+[bg_dark | no bg_light ] -> [ bg_dark | bg_light]\n\n[ > player | wall ] -> cancel \n[ > enemy | wall ] -> cancel\n\nlate [ player_dir enemy ] -> [ player_dir player_crushed enemy ] sfx1\n\n\nlate [ enemy_up player_crushed] -> [ player_up player_crushed ]\nlate [ enemy_down player_crushed] -> [ player_down player_crushed ]\nlate [ enemy_left player_crushed] -> [ player_left player_crushed ]\nlate [ enemy_right player_crushed] -> [ player_right player_crushed ]\n\nlate up [ player_up | enemy_down ] -> [ player_up | Player_down ]\n+ late down [ player_down | enemy_up ] -> [ player_down | Player_up ]\n+ late left [ player_left | enemy_right ] -> [ player_left | Player_right ]\n+ late right [ player_right | enemy_left ] -> [ player_right | Player_left ]\n+ late [ player_noup enemy_up] -> [ player_noup player_up ]\n+ late [ player_nodown enemy_down] -> [ player_nodown player_down ]\n+ late [ player_noleft enemy_left] -> [ player_noleft player_left ]\n+ late [ player_noright enemy_right] -> [ player_noright player_right ]\n\n\n(push an enemy into another enemy -_- )\n\nlate [ goal no player_crushed ] -> [ temp goal ]\nlate [ temp goal | no temp goal ] -> [ temp goal | temp goal ]\nlate [ player_crushed no goal ] [ goal ] -> [ player_crushed ] [ goal temp ]\nlate [ goal player_crushed no temp ] -> [ goal player_crushed t2 ] \n\nlate [t2] [ player_dir ] -> [t2] []\n\nlate down [t2] [ player_crushed | player_crushed ] -> [t2] [ player_crushed player_down | player_crushed player_up ]\n\nlate right [t2] [ player_crushed | player_crushed ] -> [t2] [ player_crushed player_right | player_crushed player_left ]\n\nlate [ t2] [ player_crushed goal ] -> [t2] [ player_crushed wint ] sfx0\n\nlate [ temp ] -> []\n\nlate [ t2 ] -> []\n\n[stationary finaltext]->[> finaltext]\n[moving finaltext | no finaltext ] -> [ moving finaltext | finaltext] again\n[moving finaltext ]-> [ finaltext]\n\n[finaltext] [ no finaltext ] -> [ finaltext t2 ] [ ]\n\n[finaltext no t2 ] -> win\n\n[t2]->[]\n\n==============\nWINCONDITIONS\n==============\n\nno goal\n\nno finaltext\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\n#########################################\n#.......................................#\n#...................12..................#\n#...................34..................#\n#...................56..................#\n#.......................................#\n#..................sdf..................#\n#....qw.....qw.............qw.....qw....#\n#....er.....er.....sdf.....er.....er....#\n#....ty.....ty.............ty.....ty....#\n#.......................................#\n#............g...ggg.g.g.aaa............#\n#............g...g.g.g.g.a..............#\n#............g...g.g.g.g.aaa............#\n#............g...g.g.g.g.a..............#\n#............ggg.ggg.ggg.aaa............#\n#.......................................#\n#....qw.....qw.....qw......qw.....qw....#\n#....er.....er.....er......er.....er....#\n#....ty.....ty.....ty......ty.....ty....#\n#.......................................#\n#.......................................#\n#.......................................#\n#.......................................#\n#.......................................#\n#.......................................#\n#########################################\n\n\n...............................\n...............................\n...............................\n........z...zzz.z.z.zzz........\n........z...z.z.z.z.z..........\n........z...z.z.z.z.zzz........\n........z...z.z.z.z.z..........\n........zzz.zzz.zzz.zzz........\n...............................\n...............................\n...............................\n\nmessage Love!\n\n",[2,2,2,2,2,2,2,2,3,3,3,3,2,2,3,3,"restart",1,1,1,2,2,3,1,1,1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,3,3,2,2,2,2,2,3,3,3,3,3,3,0,0,0,0,0,1,1,1,1,"restart",3,3,2,2,2,2,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,2,3,3,2,2,2,3,2,3,3,3,3,1,1,0,0,0,3,3,3,3,3,3,0,0,1,1,1,1,1],"background bg_dark wall:0,background bg_light wall: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,background bg_dark:2,background bg_light:3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,background bg_dark enemy_down enemy_right:4,background bg_light enemy_down enemy_right enemy_up:5,background bg_dark enemy_right enemy_up:6,3,2,3,2,3,2,3,4,5,6,3,2,3,2,3,2,1,0,3,\n2,3,2,3,2,background bg_light enemy_down enemy_left:7,background bg_dark enemy_down enemy_left enemy_up:8,background bg_light enemy_left enemy_up:9,2,3,2,3,2,3,2,7,8,9,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,\n2,3,2,background bg_light enemy_down enemy_right:10,background bg_dark enemy_down enemy_right enemy_up:11,background bg_light enemy_right enemy_up:12,2,3,2,3,2,3,2,10,11,12,2,3,2,3,2,3,0,1,2,3,2,3,2,3,background bg_dark enemy_down enemy_left:13,background bg_light enemy_down enemy_left enemy_up:14,background bg_dark enemy_left enemy_up:15,3,background bg_dark goal:16,background bg_light goal:17,16,17,16,3,13,\n14,15,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,17,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,16,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,16,17,16,17,16,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,\n2,3,2,3,2,17,2,3,2,17,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,16,17,16,17,16,3,4,5,6,\n3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,7,8,9,2,3,2,3,2,3,0,1,2,3,2,3,2,3,\n2,3,2,3,16,17,16,17,16,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,17,2,3,2,3,2,\n3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,16,17,16,17,16,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,background bg_light player_down player_right:18,background bg_dark player_down player_right player_up:19,background bg_light player_right player_up:20,2,3,background bg_dark wint:21,background bg_light wint:22,21,22,21,3,2,3,2,3,2,\n3,2,3,2,1,0,3,2,3,2,3,background bg_dark player_crushed player_down player_left player_right:23,background bg_light player_down player_left player_up:24,background bg_dark player_crushed player_left player_right player_up:25,3,2,22,2,22,2,22,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,background bg_light player_left player_right:26,2,26,\n2,3,21,3,21,3,21,3,4,5,6,3,2,3,2,3,2,1,0,3,2,3,background bg_dark player_down player_right:27,background bg_light player_down player_right player_up:28,25,3,background bg_dark player_left:29,3,2,3,2,3,2,3,2,7,8,9,2,3,2,\n3,2,3,0,1,2,3,2,background bg_light player_down player_left:30,background bg_dark player_crushed player_down player_left player_right player_up:31,background bg_light player_crushed player_down player_left player_right player_up:32,background bg_dark player_right player_up:33,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,30,background bg_dark player_down player_left player_up:34,background bg_light player_left player_up:35,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,10,11,12,2,3,2,3,2,\n3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,13,14,15,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,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,\n",1,"1627891999778.8188"] + "Car Crash", + ["title Car Crash\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nnoaction\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground\nblack\n\nbg_light\ndarkgreen\n\nbg_dark\ndarkblue\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nblack \n\nPlayer_down\nlightred darkgreen\n.....\n.000.\n00000\n00000\n00000\n\n\nPlayer_up\nlightred darkgreen\n00000\n00000\n00000\n.000.\n.....\n\nplayer_right\nlightred darkgreen\n..000\n.0000\n.0000\n.0000\n..000\n\n\nplayer_left\nlightred darkgreen\n000..\n0000.\n0000.\n0000.\n000..\n\nplayer_crushed\ndarkgreen darkgray\n..1..\n.101.\n10001\n.101.\n..1..\n\nenemy_crushed\ndarkred darkgray\n..1..\n.101.\n10001\n.101.\n..1..\n\nenemy_down\nred\n..0..\n.000.\n00000\n00000\n00000\n\n\nenemy_up\nred\n00000\n00000\n00000\n.000.\n..0..\n\nenemy_right\nred\n..000\n.0000\n00000\n.0000\n..000\n\n\nenemy_left\nred\n000..\n0000.\n00000\n0000.\n000..\n\n\ngoal\nyellow\n.....\n..0..\n.000.\n..0..\n.....\n\n\nwint\nblack\n\ntemp\nTRANSPARENT\n\nt2\nTRANSPARENT\n\nfinaltext\nyellow\n\nblack \nblack\n\n=======\nLEGEND\n=======\n\n\nplayer_noup = player_down or player_left or player_right\nplayer_nodown = player_up or player_left or player_right\nplayer_noleft = player_up or player_down or player_right\nplayer_noright = player_up or player_down or player_left\n\nplayer_dir = player_up or player_down or player_left or player_right\nplayer = player_dir or player_crushed\n\nenemy = enemy_up or enemy_down or enemy_left or enemy_right\n\n. = Background\n# = Wall\nO = Target\n\n1 = player_down and player_right\n2 = player_down and player_left\n3 = player_up and player_down and player_right\n4 = player_up and player_down and player_left\n5 = player_up and player_right\n6 = player_up and player_left\n\n\n\n\nq = enemy_down and enemy_right\nw = enemy_down and enemy_left\ne = enemy_up and enemy_down and enemy_right\nr = enemy_up and enemy_down and enemy_left\nt = enemy_up and enemy_right\ny = enemy_up and enemy_left\n\nu = enemy_left and enemy_down and enemy_right\ni = enemy_left and enemy_up and enemy_right\n\ng = goal\na = wint\n\ns = enemy_right\nd = enemy_right and enemy_left\nf = enemy_left\n\nz = finaltext and black\n\n=======\nSOUNDS\n=======\n\nsfx0 7375900\nsfx1 12966304\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbg_light, bg_dark\n\nwint\n\nTarget\n\nenemy_up\nenemy_down\nenemy_left\nenemy_right\nenemy_crushed\n\nplayer_up\nplayer_down\nplayer_left\nplayer_right\nplayer_crushed\n\nwall\ngoal\n\ntemp\nt2\nfinaltext\nblack\n\n======\nRULES\n======\n\n(\n[ > player_crushed | enemy ] -> [ > player_crushed | > enemy ]\nup [ moving enemy_up | enemy ] -> [ moving enemy_up | moving enemy ]\n+ down [ moving enemy_down | enemy ] -> [ moving enemy_down | moving enemy ]\n+ left [ moving enemy_left | enemy ] -> [ moving enemy_left | moving enemy ]\n+ right [ moving enemy_right | enemy ] -> [ moving enemy_right | moving enemy ]\n)\n\nrandom [ ] -> [ bg_light]\n\n[bg_light | no bg_dark ] -> [ bg_light | bg_dark]\n+[bg_dark | no bg_light ] -> [ bg_dark | bg_light]\n\n[ > player | wall ] -> cancel \n[ > enemy | wall ] -> cancel\n\nlate [ player_dir enemy ] -> [ player_dir player_crushed enemy ] sfx1\n\n\nlate [ enemy_up player_crushed] -> [ player_up player_crushed ]\nlate [ enemy_down player_crushed] -> [ player_down player_crushed ]\nlate [ enemy_left player_crushed] -> [ player_left player_crushed ]\nlate [ enemy_right player_crushed] -> [ player_right player_crushed ]\n\nlate up [ player_up | enemy_down ] -> [ player_up | Player_down ]\n+ late down [ player_down | enemy_up ] -> [ player_down | Player_up ]\n+ late left [ player_left | enemy_right ] -> [ player_left | Player_right ]\n+ late right [ player_right | enemy_left ] -> [ player_right | Player_left ]\n+ late [ player_noup enemy_up] -> [ player_noup player_up ]\n+ late [ player_nodown enemy_down] -> [ player_nodown player_down ]\n+ late [ player_noleft enemy_left] -> [ player_noleft player_left ]\n+ late [ player_noright enemy_right] -> [ player_noright player_right ]\n\n\n(push an enemy into another enemy -_- )\n\nlate [ goal no player_crushed ] -> [ temp goal ]\nlate [ temp goal | no temp goal ] -> [ temp goal | temp goal ]\nlate [ player_crushed no goal ] [ goal ] -> [ player_crushed ] [ goal temp ]\nlate [ goal player_crushed no temp ] -> [ goal player_crushed t2 ] \n\nlate [t2] [ player_dir ] -> [t2] []\n\nlate down [t2] [ player_crushed | player_crushed ] -> [t2] [ player_crushed player_down | player_crushed player_up ]\n\nlate right [t2] [ player_crushed | player_crushed ] -> [t2] [ player_crushed player_right | player_crushed player_left ]\n\nlate [ t2] [ player_crushed goal ] -> [t2] [ player_crushed wint ] sfx0\n\nlate [ temp ] -> []\n\nlate [ t2 ] -> []\n\n[stationary finaltext]->[> finaltext]\n[moving finaltext | no finaltext ] -> [ moving finaltext | finaltext] again\n[moving finaltext ]-> [ finaltext]\n\n[finaltext] [ no finaltext ] -> [ finaltext t2 ] [ ]\n\n[finaltext no t2 ] -> win\n\n[t2]->[]\n\n==============\nWINCONDITIONS\n==============\n\nno goal\n\nno finaltext\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\n#########################################\n#.......................................#\n#...................12..................#\n#...................34..................#\n#...................56..................#\n#.......................................#\n#..................sdf..................#\n#....qw.....qw.............qw.....qw....#\n#....er.....er.....sdf.....er.....er....#\n#....ty.....ty.............ty.....ty....#\n#.......................................#\n#............g...ggg.g.g.aaa............#\n#............g...g.g.g.g.a..............#\n#............g...g.g.g.g.aaa............#\n#............g...g.g.g.g.a..............#\n#............ggg.ggg.ggg.aaa............#\n#.......................................#\n#....qw.....qw.....qw......qw.....qw....#\n#....er.....er.....er......er.....er....#\n#....ty.....ty.....ty......ty.....ty....#\n#.......................................#\n#.......................................#\n#.......................................#\n#.......................................#\n#.......................................#\n#.......................................#\n#########################################\n\n\n...............................\n...............................\n...............................\n........z...zzz.z.z.zzz........\n........z...z.z.z.z.z..........\n........z...z.z.z.z.zzz........\n........z...z.z.z.z.z..........\n........zzz.zzz.zzz.zzz........\n...............................\n...............................\n...............................\n\nmessage Love!\n\n", [2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 2, 2, 3, 3, "restart", 1, 1, 1, 2, 2, 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 1, 1, 1, 1, "restart", 3, 3, 2, 2, 2, 2, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 2, 3, 3, 2, 2, 2, 3, 2, 3, 3, 3, 3, 1, 1, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 1, 1, 1, 1, 1], "background bg_dark wall:0,background bg_light wall: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,background bg_dark:2,background bg_light:3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,background bg_dark enemy_down enemy_right:4,background bg_light enemy_down enemy_right enemy_up:5,background bg_dark enemy_right enemy_up:6,3,2,3,2,3,2,3,4,5,6,3,2,3,2,3,2,1,0,3,\n2,3,2,3,2,background bg_light enemy_down enemy_left:7,background bg_dark enemy_down enemy_left enemy_up:8,background bg_light enemy_left enemy_up:9,2,3,2,3,2,3,2,7,8,9,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,\n2,3,2,background bg_light enemy_down enemy_right:10,background bg_dark enemy_down enemy_right enemy_up:11,background bg_light enemy_right enemy_up:12,2,3,2,3,2,3,2,10,11,12,2,3,2,3,2,3,0,1,2,3,2,3,2,3,background bg_dark enemy_down enemy_left:13,background bg_light enemy_down enemy_left enemy_up:14,background bg_dark enemy_left enemy_up:15,3,background bg_dark goal:16,background bg_light goal:17,16,17,16,3,13,\n14,15,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,17,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,16,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,16,17,16,17,16,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,\n2,3,2,3,2,17,2,3,2,17,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,16,17,16,17,16,3,4,5,6,\n3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,7,8,9,2,3,2,3,2,3,0,1,2,3,2,3,2,3,\n2,3,2,3,16,17,16,17,16,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,17,2,3,2,3,2,\n3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,16,17,16,17,16,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,background bg_light player_down player_right:18,background bg_dark player_down player_right player_up:19,background bg_light player_right player_up:20,2,3,background bg_dark wint:21,background bg_light wint:22,21,22,21,3,2,3,2,3,2,\n3,2,3,2,1,0,3,2,3,2,3,background bg_dark player_crushed player_down player_left player_right:23,background bg_light player_down player_left player_up:24,background bg_dark player_crushed player_left player_right player_up:25,3,2,22,2,22,2,22,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,background bg_light player_left player_right:26,2,26,\n2,3,21,3,21,3,21,3,4,5,6,3,2,3,2,3,2,1,0,3,2,3,background bg_dark player_down player_right:27,background bg_light player_down player_right player_up:28,25,3,background bg_dark player_left:29,3,2,3,2,3,2,3,2,7,8,9,2,3,2,\n3,2,3,0,1,2,3,2,background bg_light player_down player_left:30,background bg_dark player_crushed player_down player_left player_right player_up:31,background bg_light player_crushed player_down player_left player_right player_up:32,background bg_dark player_right player_up:33,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,30,background bg_dark player_down player_left player_up:34,background bg_light player_left player_up:35,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,10,11,12,2,3,2,3,2,\n3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,13,14,15,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,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,\n", 1, "1627891999778.8188"] ], [ - "Alternatey", - ["title Alternatey\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nbackground_color darkgray\n\nnoaction\n\nrequire_player_movement\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nwall \ndarkgray\n\n\nPlayer\nwhite\n\nt\nTRANSPARENT\n\ngoal g\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nh = goal and player\n\n\n=======\nSOUNDS\n=======\n\nendlevel 6300906 \nstartgame 6300906 \n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall\nt\ng\n\n======\nRULES\n======\n\n\n[moving player ] -> again\n\n[stationary player ] [ no player no wall ] -> [stationary player ] [ player t ]\n[stationary player ] [ player no t no wall ] ->[stationary player ] [ ]\n[stationary player ] [t]->[stationary player ] []\n\n==============\nWINCONDITIONS\n==============\nall player on goal\nall goal on player\n\n=======\nLEVELS\n=======\n\nmessage you control the white squares\n\nmessage level 1 of 3\n\n\n....\n..P.\n.gg.\nP...\n....\n\n\nmessage level 2 of 3\n\n......\n.g..g.\n..pp..\n..pp..\n.g..g.\n......\n\n\nmessage level 3 of 3\n\n#...#\n.gpg.\n.p.p.\n.gpg.\n#...#\n\nmessage Victory!\n\n",[0,1,2],"background player:0,0,0,0,0,0,\n0,background goal player:1,0,0,1,0,\n0,0,background:2,2,0,0,\n0,0,0,0,0,0,\n0,1,0,0,1,0,\n0,0,2,2,0,0,\n",4,"1627892045163.187"] + "Alternatey", + ["title Alternatey\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nbackground_color darkgray\n\nnoaction\n\nrequire_player_movement\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nwall \ndarkgray\n\n\nPlayer\nwhite\n\nt\nTRANSPARENT\n\ngoal g\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nh = goal and player\n\n\n=======\nSOUNDS\n=======\n\nendlevel 6300906 \nstartgame 6300906 \n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall\nt\ng\n\n======\nRULES\n======\n\n\n[moving player ] -> again\n\n[stationary player ] [ no player no wall ] -> [stationary player ] [ player t ]\n[stationary player ] [ player no t no wall ] ->[stationary player ] [ ]\n[stationary player ] [t]->[stationary player ] []\n\n==============\nWINCONDITIONS\n==============\nall player on goal\nall goal on player\n\n=======\nLEVELS\n=======\n\nmessage you control the white squares\n\nmessage level 1 of 3\n\n\n....\n..P.\n.gg.\nP...\n....\n\n\nmessage level 2 of 3\n\n......\n.g..g.\n..pp..\n..pp..\n.g..g.\n......\n\n\nmessage level 3 of 3\n\n#...#\n.gpg.\n.p.p.\n.gpg.\n#...#\n\nmessage Victory!\n\n", [0, 1, 2], "background player:0,0,0,0,0,0,\n0,background goal player:1,0,0,1,0,\n0,0,background:2,2,0,0,\n0,0,0,0,0,0,\n0,1,0,0,1,0,\n0,0,2,2,0,0,\n", 4, "1627892045163.187"] ], [ - "Push Pull", - ["title Push Pull\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrequire_player_movement\n\n(the levels are taken from D. Skinner's microban, a demo bundled with puzzlescript, but the mechanics are different, so?)\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\ncrate2\nLIGHTRED \n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\ncrates = crate or crate2\n\n. = Background\n# = Wall\nP = Player\n* = Crate\nj = crate2\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, crate2\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate2 ]\n[ < Player | Crate2 ] -> [ < Player | < Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crates\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 3\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 2 of 3\n\n\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\nmessage level 3 of 3\n\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\nmessage congrats :)\n",[2,1,0,3,3,3,2,1,0,1,1,2,2,3,0,1,0,3,1,2,0,0,3,0],"background wall:0,0,0,0,0,0,\n0,0,background:1,background crate2:2,background target:3,1,\n1,0,0,3,background player:4,background crate:5,\n1,1,0,0,0,0,\n1,1,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",1,"1627892056284.9724"] + "Push Pull", + ["title Push Pull\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrequire_player_movement\n\n(the levels are taken from D. Skinner's microban, a demo bundled with puzzlescript, but the mechanics are different, so?)\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\ncrate2\nLIGHTRED \n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\ncrates = crate or crate2\n\n. = Background\n# = Wall\nP = Player\n* = Crate\nj = crate2\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, crate2\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate2 ]\n[ < Player | Crate2 ] -> [ < Player | < Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crates\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 3\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 2 of 3\n\n\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\nmessage level 3 of 3\n\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\nmessage congrats :)\n", [2, 1, 0, 3, 3, 3, 2, 1, 0, 1, 1, 2, 2, 3, 0, 1, 0, 3, 1, 2, 0, 0, 3, 0], "background wall:0,0,0,0,0,0,\n0,0,background:1,background crate2:2,background target:3,1,\n1,0,0,3,background player:4,background crate:5,\n1,1,0,0,0,0,\n1,1,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 1, "1627892056284.9724"] ], [ - "Slide Pull", - ["title Slide Pull\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nrequire_player_movement\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\npink Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\ncrate2\nlightblue \n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\ncrates = crate or crate2\n\n. = Background\n# = Wall\nP = Player\n* = Crate2\nj = crate\n@ = Crate2 and Target\nO = Target\n\nobstacle = crates or wall or player \n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, crate2\n\n======\nRULES\n======\n\n\n[ > Player | Crate2 ] -> [ > Player | > Crate2 ]\n\n[ > crate2 | no obstacle ] -> [ | > crate2 ]\n[> crate2 | obstacle ] -> [ crate | obstacle ]\n\n[ < Player | Crate ] -> [ < Player | < Crate2 ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crates\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 7\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\nmessage level 2 of 7\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\nmessage level 3 of 7\n\n\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\n\n\n\nmessage level 4 of 7\n\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n\nmessage level 5 of 7\n\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\n\nmessage level 6 of 7\n\n\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n\nmessage level 7 of 7\n\n\n\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.j.j.j.#\n#.#.#.#.###\n#.......#..\n#########..\n\n\n\n\nmessage congrats :)\n\n",[1,0,1,1,2,0,1,1,1,3,3,3,2,1,2,3,0,3,0,3,3,3,1,1,2,1,0,0,3,3,3,2,1],"background wall:0,0,0,0,0,background:1,0,1,\nbackground crate:2,1,0,1,0,1,background crate target:3,1,\n0,1,0,1,background target:4,1,0,1,\n0,1,4,2,0,0,0,1,\nbackground player:5,1,1,0,0,1,1,1,\n1,0,0,0,0,0,0,0,\n",5,"1627892069950.7256"] + "Slide Pull", + ["title Slide Pull\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nrequire_player_movement\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\npink Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\ncrate2\nlightblue \n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\ncrates = crate or crate2\n\n. = Background\n# = Wall\nP = Player\n* = Crate2\nj = crate\n@ = Crate2 and Target\nO = Target\n\nobstacle = crates or wall or player \n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, crate2\n\n======\nRULES\n======\n\n\n[ > Player | Crate2 ] -> [ > Player | > Crate2 ]\n\n[ > crate2 | no obstacle ] -> [ | > crate2 ]\n[> crate2 | obstacle ] -> [ crate | obstacle ]\n\n[ < Player | Crate ] -> [ < Player | < Crate2 ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crates\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 7\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\nmessage level 2 of 7\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\nmessage level 3 of 7\n\n\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\n\n\n\nmessage level 4 of 7\n\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n\nmessage level 5 of 7\n\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\n\nmessage level 6 of 7\n\n\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n\nmessage level 7 of 7\n\n\n\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.j.j.j.#\n#.#.#.#.###\n#.......#..\n#########..\n\n\n\n\nmessage congrats :)\n\n", [1, 0, 1, 1, 2, 0, 1, 1, 1, 3, 3, 3, 2, 1, 2, 3, 0, 3, 0, 3, 3, 3, 1, 1, 2, 1, 0, 0, 3, 3, 3, 2, 1], "background wall:0,0,0,0,0,background:1,0,1,\nbackground crate:2,1,0,1,0,1,background crate target:3,1,\n0,1,0,1,background target:4,1,0,1,\n0,1,4,2,0,0,0,1,\nbackground player:5,1,1,0,0,1,1,1,\n1,0,0,0,0,0,0,0,\n", 5, "1627892069950.7256"] ], [ - "Make way!", - ["title Make way!\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrequire_player_movement\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\nGREEN lightgreen \n11111\n01111\n11101\n11111\n10111\n\n\npit\nblack\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nblack\n\nPlayer\nBlack brown White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\ncrate\nblue \n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n\n. = Background\n# = Wall\nP = Player\nc = crate\n@ = crate and Target\nO = Target\n\nobstacle = crate or wall or player \n=======\nSOUNDS\n=======\n\nsfx0 67594107\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\npit\nTarget\nPlayer, Wall, crate\n\n======\nRULES\n======\n\n[> player | pit ] -> cancel\n\n[ moving player ] -> [ moving player pit ]\n[ > Player | crate ] -> [ > Player | > crate ] \n\n[ > crate | no obstacle ] -> [ | > crate no pit ]\n[> crate | obstacle ] -> [ crate | obstacle ] sfx0\n\n\n==============\nWINCONDITIONS\n==============\nall crate on target\n\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 2\n\n#######\n#.....#\n#..c..#\n#..c..#\n#..c..#\n#.....#\n#.....#\n#..p..#\n#o.o.o#\n#######\n\n\n\nmessage level 2 of 2\n\n#######\n#.....#\n#.c.c.#\n#.....#\n#.c.c.#\n#.....#\n#oopoo#\n#######\n\n\nmessage congrats :)\n\n\n\n\n\n",[0,3,0,0,0,1,1,0,1,2],"background wall:0,0,0,0,0,0,0,\n0,0,0,0,background:1,background pit:2,background player:3,\n1,1,1,1,background crate target:4,0,0,\n1,2,2,1,1,1,1,\n1,0,0,1,background crate:5,2,5,\n1,2,2,background target:6,0,0,1,\n1,2,2,2,2,1,1,\n0,0,1,1,1,1,1,\n1,1,6,0,0,0,0,\n0,0,0,0,0,0,0,\n",1,"1627892084709.0234"] + "Make way!", + ["title Make way!\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrequire_player_movement\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\nGREEN lightgreen \n11111\n01111\n11101\n11111\n10111\n\n\npit\nblack\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nblack\n\nPlayer\nBlack brown White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\ncrate\nblue \n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n\n. = Background\n# = Wall\nP = Player\nc = crate\n@ = crate and Target\nO = Target\n\nobstacle = crate or wall or player \n=======\nSOUNDS\n=======\n\nsfx0 67594107\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\npit\nTarget\nPlayer, Wall, crate\n\n======\nRULES\n======\n\n[> player | pit ] -> cancel\n\n[ moving player ] -> [ moving player pit ]\n[ > Player | crate ] -> [ > Player | > crate ] \n\n[ > crate | no obstacle ] -> [ | > crate no pit ]\n[> crate | obstacle ] -> [ crate | obstacle ] sfx0\n\n\n==============\nWINCONDITIONS\n==============\nall crate on target\n\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 2\n\n#######\n#.....#\n#..c..#\n#..c..#\n#..c..#\n#.....#\n#.....#\n#..p..#\n#o.o.o#\n#######\n\n\n\nmessage level 2 of 2\n\n#######\n#.....#\n#.c.c.#\n#.....#\n#.c.c.#\n#.....#\n#oopoo#\n#######\n\n\nmessage congrats :)\n\n\n\n\n\n", [0, 3, 0, 0, 0, 1, 1, 0, 1, 2], "background wall:0,0,0,0,0,0,0,\n0,0,0,0,background:1,background pit:2,background player:3,\n1,1,1,1,background crate target:4,0,0,\n1,2,2,1,1,1,1,\n1,0,0,1,background crate:5,2,5,\n1,2,2,background target:6,0,0,1,\n1,2,2,2,2,1,1,\n0,0,1,1,1,1,1,\n1,1,6,0,0,0,0,\n0,0,0,0,0,0,0,\n", 1, "1627892084709.0234"] ], [ - "DICE GOBLIN", - ["title DICE GOBLIN\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nd1 1\nwhite darkgray black\n22222\n20002\n20102\n20002\n22222\n\nd2a 2\nwhite darkgray black\n22222\n21002\n20002\n20012\n22222\n\n\nd2b 3\nwhite darkgray black\n22222\n20012\n20002\n21002\n22222\n\nd3a 4\nwhite darkgray black\n22222\n21002\n20102\n20012\n22222\n\n\nd3b 5\nwhite darkgray black\n22222\n20012\n20102\n21002\n22222\n\n\nd4 6\nwhite darkgray black\n22222\n21012\n20002\n21012\n22222\n\n\nd5 7\nwhite darkgray black\n22222\n21012\n20102\n21012\n22222\n\n\nd6a 8\nwhite darkgray black\n22222\n21112\n20002\n21112\n22222\n\n\nd6b 9\nwhite darkgray black\n22222\n21012\n21012\n21012\n22222\n\n\nBackground\nlightgray\n\nob\ngray\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nblack\n\nPlayer\ngreen lightgreen brown\n00.00\n.222.\n.101.\n00000\n.0.0.\n\nCrate\nblack\n.....\n..0..\n.000.\n..0..\n.....\n\ntl\nred\n\nx11\ntransparent\n\nx21\ntransparent\n\nx31\ntransparent\n\n\nx12\ntransparent\n\nx22\ntransparent\n\nx32\ntransparent\n\n\nx13\ntransparent\n\nx23\ntransparent\n\nx33\ntransparent\n\nvisited\ntransparent\n\nfound \norange\n00000\n0...0\n0...0\n0...0\n00000\n\npasses\nblue\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player and ob\n* = Crate \n~ = Crate and ob\nm = crate and ob and tl\nn = crate and tl\nO = Target\n, = ob\n\nd2 = d2a or d2b\nd3 = d3a or d3b\nd6 = d6a or d6b\n\ncoord = x11 or x12 or x13 or x21 or x22 or x23 or x31 or x32 or x33\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 51877303\n================\nCOLLISIONLAYERS\n================\n\ntl\nBackground\nob\nTarget\nPlayer, Wall, Crate\nd1, d2a,d2b,d3a,d3b,d4,d5,d6a,d6b\nfound\ncoord\nvisited\npasses\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[> crate|crate]->[> crate | > crate ]\n\n\n\n\n[found]->[]\n\nstartloop\n\nrandom down [tl no visited ||]->[tl visited x11|x12|x13]\n\n\n\n\n\n\nlate right [x11 no Crate | no crate | no crate ] -> [ x11 passes | | ]\nlate right [x12 no Crate | crate | no crate ] -> [ x12 passes | crate | ]\nlate right [x13 no Crate | no crate | no crate ] -> [ x13 passes \t | | ]\n\nlate down [x11 passes | passes | passes ] [ d1 ] -> [||] [d1 found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | no crate | no crate ] -> [ x11 passes crate | | ]\nlate right [x12 no Crate | no crate | no crate ] -> [ x12 passes | | ]\nlate right [x13 no Crate | no crate | crate ] -> [ x13 passes \t | | crate ]\n\nlate down [x11 passes | passes | passes ] [ d2a ] -> [||] [d2a found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 no Crate | no crate | crate ] -> [ x11 passes | | crate]\nlate right [x12 no Crate | no crate | no crate ] -> [ x12 passes | | ]\nlate right [x13 Crate | no crate | no crate ] -> [ x13 passes \tcrate | | ]\n\nlate down [x11 passes | passes | passes ] [ d2b ] -> [||] [d2b found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | no crate | no crate ] -> [ x11 crate passes | | ]\nlate right [x12 no Crate | crate | no crate ] -> [ x12 passes | crate |]\nlate right [x13 no Crate | no crate | crate ] -> [ x13 passes | | crate]\n\nlate down [ passes | passes | passes ] [ d3a ] -> [||] [d3a found] \n\nlate [ passes ] -> []\n\n\nlate right [x11 no Crate | no crate | crate ] -> [ x11 passes | | crate]\nlate right [x12 no Crate | crate | no crate ] -> [ x12 passes | crate| ]\nlate right [x13 Crate | no crate | no crate ] -> [ x13 passes \t crate | | ]\n\nlate down [x11 passes | passes | passes ] [ d3b ] -> [||] [d3b found] \n\nlate [ passes ] -> []\n\n\n\n\n\n\nlate right [x11 Crate | no crate | crate ] -> [ x11 passes crate| | crate]\nlate right [x12 no Crate | no crate | no crate ] -> [ x12 passes | | ]\nlate right [x13 Crate | no crate | crate ] -> [ x13 passes \tcrate | | crate]\n\nlate down [x11 passes | passes | passes ] [ d4 ] -> [||] [d4 found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | no crate | crate ] -> [ x11 passes crate| | crate]\nlate right [x12 no Crate | crate | no crate ] -> [ x12 passes |crate | ]\nlate right [x13 Crate | no crate | crate ] -> [ x13 passes \tcrate | | crate]\n\nlate down [x11 passes | passes | passes ] [ d5 ] -> [||] [d5 found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | crate | crate ] -> [ x11 passes crate| crate| crate]\nlate right [x12 no Crate | no crate | no crate ] -> [ x12 passes | | ]\nlate right [x13 Crate | crate | crate ] -> [ x13 passes \tcrate | crate| crate]\n\nlate down [x11 passes | passes | passes ] [ d6a ] -> [||] [d6a found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | no crate | crate ] -> [ x11 passes crate| |crate ]\nlate right [x12 Crate | no crate | crate ] -> [ x12 passes crate| |crate ]\nlate right [x13 Crate | no crate | crate ] -> [ x13 passes crate\t | |crate ]\n\nlate down [x11 passes | passes | passes ] [ d6b ] -> [||] [d6b found] \n\nlate [ passes ] -> []\n\n\n\nlate [coord]->[]\n\nendLoop\n\n\nlate [visited]->[]\n\n==============\nWINCONDITIONS\n==============\n\nsome found on d1\nsome found on d2\nsome found on d3\nsome found on d4\nsome found on d5\nsome found on d6\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\nmessage Oh no, there was an accident at the dice printing factory. \n\nmessage Save us, dice goblin! \n\n\n#1#######n.*###\n23#######...###\n45#######*.*###\n#6#m,,n..m,~n..\n#7#,~,.*.,,,.*.\n98#p,~..*~,~..*\n#########n.*###\n#########...###\n#########*.*###\n\nmessage Now we can sell our dice to the very best casinos in the universe. God themself will play with our dice! Thank you, dice goblin!\n",[3,0,3,3,3,3,3],"background wall:0,background d2a found:1,background d3a found:2,0,0,background d6b:3,0,0,0,background d1:4,background d2b:5,background d3b:6,background d4 found:7,background d5 found:8,background d6a:9,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\nbackground crate ob tl:10,background ob:11,11,0,0,0,0,0,0,background crate ob:12,11,11,0,0,0,\n0,0,0,11,11,12,0,0,0,0,0,0,background crate tl:13,background:14,14,\n0,0,0,0,0,0,14,14,14,0,0,0,0,0,0,\n14,14,background crate:15,0,0,0,13,14,15,10,background ob player:16,12,13,14,15,\n14,14,14,11,12,11,14,14,14,15,14,15,12,11,12,\n15,14,15,0,0,0,13,14,14,0,0,0,0,0,0,\n14,15,14,0,0,0,0,0,0,14,14,15,0,0,0,\n",3,"1627892093944.9868"] + "DICE GOBLIN", + ["title DICE GOBLIN\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nd1 1\nwhite darkgray black\n22222\n20002\n20102\n20002\n22222\n\nd2a 2\nwhite darkgray black\n22222\n21002\n20002\n20012\n22222\n\n\nd2b 3\nwhite darkgray black\n22222\n20012\n20002\n21002\n22222\n\nd3a 4\nwhite darkgray black\n22222\n21002\n20102\n20012\n22222\n\n\nd3b 5\nwhite darkgray black\n22222\n20012\n20102\n21002\n22222\n\n\nd4 6\nwhite darkgray black\n22222\n21012\n20002\n21012\n22222\n\n\nd5 7\nwhite darkgray black\n22222\n21012\n20102\n21012\n22222\n\n\nd6a 8\nwhite darkgray black\n22222\n21112\n20002\n21112\n22222\n\n\nd6b 9\nwhite darkgray black\n22222\n21012\n21012\n21012\n22222\n\n\nBackground\nlightgray\n\nob\ngray\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nblack\n\nPlayer\ngreen lightgreen brown\n00.00\n.222.\n.101.\n00000\n.0.0.\n\nCrate\nblack\n.....\n..0..\n.000.\n..0..\n.....\n\ntl\nred\n\nx11\ntransparent\n\nx21\ntransparent\n\nx31\ntransparent\n\n\nx12\ntransparent\n\nx22\ntransparent\n\nx32\ntransparent\n\n\nx13\ntransparent\n\nx23\ntransparent\n\nx33\ntransparent\n\nvisited\ntransparent\n\nfound \norange\n00000\n0...0\n0...0\n0...0\n00000\n\npasses\nblue\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player and ob\n* = Crate \n~ = Crate and ob\nm = crate and ob and tl\nn = crate and tl\nO = Target\n, = ob\n\nd2 = d2a or d2b\nd3 = d3a or d3b\nd6 = d6a or d6b\n\ncoord = x11 or x12 or x13 or x21 or x22 or x23 or x31 or x32 or x33\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 51877303\n================\nCOLLISIONLAYERS\n================\n\ntl\nBackground\nob\nTarget\nPlayer, Wall, Crate\nd1, d2a,d2b,d3a,d3b,d4,d5,d6a,d6b\nfound\ncoord\nvisited\npasses\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[> crate|crate]->[> crate | > crate ]\n\n\n\n\n[found]->[]\n\nstartloop\n\nrandom down [tl no visited ||]->[tl visited x11|x12|x13]\n\n\n\n\n\n\nlate right [x11 no Crate | no crate | no crate ] -> [ x11 passes | | ]\nlate right [x12 no Crate | crate | no crate ] -> [ x12 passes | crate | ]\nlate right [x13 no Crate | no crate | no crate ] -> [ x13 passes \t | | ]\n\nlate down [x11 passes | passes | passes ] [ d1 ] -> [||] [d1 found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | no crate | no crate ] -> [ x11 passes crate | | ]\nlate right [x12 no Crate | no crate | no crate ] -> [ x12 passes | | ]\nlate right [x13 no Crate | no crate | crate ] -> [ x13 passes \t | | crate ]\n\nlate down [x11 passes | passes | passes ] [ d2a ] -> [||] [d2a found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 no Crate | no crate | crate ] -> [ x11 passes | | crate]\nlate right [x12 no Crate | no crate | no crate ] -> [ x12 passes | | ]\nlate right [x13 Crate | no crate | no crate ] -> [ x13 passes \tcrate | | ]\n\nlate down [x11 passes | passes | passes ] [ d2b ] -> [||] [d2b found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | no crate | no crate ] -> [ x11 crate passes | | ]\nlate right [x12 no Crate | crate | no crate ] -> [ x12 passes | crate |]\nlate right [x13 no Crate | no crate | crate ] -> [ x13 passes | | crate]\n\nlate down [ passes | passes | passes ] [ d3a ] -> [||] [d3a found] \n\nlate [ passes ] -> []\n\n\nlate right [x11 no Crate | no crate | crate ] -> [ x11 passes | | crate]\nlate right [x12 no Crate | crate | no crate ] -> [ x12 passes | crate| ]\nlate right [x13 Crate | no crate | no crate ] -> [ x13 passes \t crate | | ]\n\nlate down [x11 passes | passes | passes ] [ d3b ] -> [||] [d3b found] \n\nlate [ passes ] -> []\n\n\n\n\n\n\nlate right [x11 Crate | no crate | crate ] -> [ x11 passes crate| | crate]\nlate right [x12 no Crate | no crate | no crate ] -> [ x12 passes | | ]\nlate right [x13 Crate | no crate | crate ] -> [ x13 passes \tcrate | | crate]\n\nlate down [x11 passes | passes | passes ] [ d4 ] -> [||] [d4 found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | no crate | crate ] -> [ x11 passes crate| | crate]\nlate right [x12 no Crate | crate | no crate ] -> [ x12 passes |crate | ]\nlate right [x13 Crate | no crate | crate ] -> [ x13 passes \tcrate | | crate]\n\nlate down [x11 passes | passes | passes ] [ d5 ] -> [||] [d5 found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | crate | crate ] -> [ x11 passes crate| crate| crate]\nlate right [x12 no Crate | no crate | no crate ] -> [ x12 passes | | ]\nlate right [x13 Crate | crate | crate ] -> [ x13 passes \tcrate | crate| crate]\n\nlate down [x11 passes | passes | passes ] [ d6a ] -> [||] [d6a found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | no crate | crate ] -> [ x11 passes crate| |crate ]\nlate right [x12 Crate | no crate | crate ] -> [ x12 passes crate| |crate ]\nlate right [x13 Crate | no crate | crate ] -> [ x13 passes crate\t | |crate ]\n\nlate down [x11 passes | passes | passes ] [ d6b ] -> [||] [d6b found] \n\nlate [ passes ] -> []\n\n\n\nlate [coord]->[]\n\nendLoop\n\n\nlate [visited]->[]\n\n==============\nWINCONDITIONS\n==============\n\nsome found on d1\nsome found on d2\nsome found on d3\nsome found on d4\nsome found on d5\nsome found on d6\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\nmessage Oh no, there was an accident at the dice printing factory. \n\nmessage Save us, dice goblin! \n\n\n#1#######n.*###\n23#######...###\n45#######*.*###\n#6#m,,n..m,~n..\n#7#,~,.*.,,,.*.\n98#p,~..*~,~..*\n#########n.*###\n#########...###\n#########*.*###\n\nmessage Now we can sell our dice to the very best casinos in the universe. God themself will play with our dice! Thank you, dice goblin!\n", [3, 0, 3, 3, 3, 3, 3], "background wall:0,background d2a found:1,background d3a found:2,0,0,background d6b:3,0,0,0,background d1:4,background d2b:5,background d3b:6,background d4 found:7,background d5 found:8,background d6a:9,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\nbackground crate ob tl:10,background ob:11,11,0,0,0,0,0,0,background crate ob:12,11,11,0,0,0,\n0,0,0,11,11,12,0,0,0,0,0,0,background crate tl:13,background:14,14,\n0,0,0,0,0,0,14,14,14,0,0,0,0,0,0,\n14,14,background crate:15,0,0,0,13,14,15,10,background ob player:16,12,13,14,15,\n14,14,14,11,12,11,14,14,14,15,14,15,12,11,12,\n15,14,15,0,0,0,13,14,14,0,0,0,0,0,0,\n14,15,14,0,0,0,0,0,0,14,14,15,0,0,0,\n", 3, "1627892093944.9868"] ], [ - "KONSUM", - ["title KONSUM\nauthor increpare\nhomepage www.increpare.com\nrun_rules_on_level_start\nnorepeat_action\ntext_color lightgray\nbackground_color darkblue\n(thanks to eli cauley for helping test)\ncolor_palette 13\n\n========\nOBJECTS\n========\n\n\nBackground \ndarkblue \n \n\n\n\nwall_t #\ngray darkblue\n.....\n00000\n.....\n00000\n11111\n\n\nwall_b 2 \ngray darkblue\n11111\n00000\n.....\n00000\n.....\n\nwall_l 3 \ngray darkblue\n.0.01\n.0.01\n.0.01\n.0.01\n.0.01\n\n\nwall_r 4\ngray darkblue\n10.0.\n10.0.\n10.0.\n10.0.\n10.0.\n\nWall_tl 5\ngray darkblue\n.....\n..000\n.00..\n.0.00\n.0.01\n\nWall_tr 6\ngray darkblue\n.....\n000..\n..00.\n00.0.\n10.0.\n\nWall_bl 7\ngray darkblue\n.0.01\n.0.00\n.00..\n..000\n.....\n\nWall_br 8\ngray darkblue\n10.0.\n00.0.\n..00.\n000..\n.....\n\nblacktile\ngray\n\nwhitetile\ndarkgreen\n\nexplore\nyellow\n.....\n..0..\n.000.\n..0..\n.....\n\nplace\nyellow\n00.00\n0...0\n.....\n0...0\n00.00\n\n\nexploremode\nlightblue\n.....\n.0.0.\n.....\n.0.0.\n.....\n\ntemp\nred\n\nnosuck\nlightred\n.....\n..0..\n.000.\n..0..\n.....\n\ncanplace\npurple\n\nbadborder\nlightblue\n.....\n.....\n..0..\n.....\n.....\n\ny_up\nyellow\n00000\n.....\n.....\n.....\n.....\n\n\ny_down\nyellow\n.....\n.....\n.....\n.....\n00000\n\n\ny_left\nyellow\n0....\n0....\n0....\n0....\n0....\n\n\ny_right\nyellow\n....0\n....0\n....0\n....0\n....0\n\n\nr_up\n#ff0000\n00000\n.....\n.....\n.....\n.....\n\n\nr_down\n#ff0000\n.....\n.....\n.....\n.....\n00000\n\n\nr_left\n#ff0000\n0....\n0....\n0....\n0....\n0....\n\n\nr_right\n#ff0000\n....0\n....0\n....0\n....0\n....0\n\n\nb_up\ndarkbrown\n00000\n.....\n.....\n.....\n.....\n\n\nb_down\ndarkbrown\n.....\n.....\n.....\n.....\n00000\n\n\nb_left\ndarkbrown\n0....\n0....\n0....\n0....\n0....\n\n\nb_right\ndarkbrown\n....0\n....0\n....0\n....0\n....0\n\n=======\nLEGEND\n=======\n\n. = Background\nP = explore and blacktile\n0 = whitetile\n1 = blacktile \n\nplayer = explore or place\n\ny_lines = y_up or y_down or y_left or y_right\nr_lines = r_up or r_down or r_left or r_right\nb_lines = b_up or b_down or b_left or b_right\nlines = y_lines or r_lines or b_lines\nwall = Wall_t or wall_b or wall_l or wall_r or wall_tl or wall_tr or wall_bl or wall_br \n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nplace\nblacktile, whitetile\nWall\nexplore\nexploremode\ntemp\ncanplace\nnosuck\nbadborder\ny_up\ny_down\ny_left\ny_right\nr_up\nr_down\nr_left\nr_right\nb_up\nb_down\nb_left\nb_right\n\n\n======\nRULES\n======\n\n[lines]->[]\n\n[nosuck]->[]\n\n[ > player | wall ] -> cancel\n\n[action explore blacktile] -> [ place blacktile]\n[stationary place | blacktile ] -> [ place | blacktile place]\n\n\n(to place)\n\n(1 must have at least one piece on black)\nrandom [ place blacktile] -> [ place blacktile canplace ]\n\n[ canplace ] [ blacktile place | blacktile no place ] -> [ ] [ blacktile place | blacktile ]\n\n[canplace] [ action place ] ->[canplace] [ action place blacktile ]\n\n[canplace]->[]\n\nrandom [ action place ] -> [ explore ]\n\n[place ] [ explore ] -> [] [ explore ]\n\nlate [ explore no blacktile ] -> [ explore nosuck]\n\n\nlate up [ place | no place ] -> [ place y_up | ]\nlate down [ place | no place ] -> [ place y_down | ]\nlate left [ place | no place ] -> [ place y_left | ]\nlate right [ place | no place ] -> [ place y_right | ]\n\nrandom late [ place blacktile ] -> [ place temp blacktile ]\nlate [temp] [ place ] -> [ temp ] [ place temp ]\n\nlate [y_up no temp ] -> [ b_up ]\nlate [y_down no temp ] -> [ b_down ]\nlate [y_left no temp ] -> [ b_left ]\nlate [y_right no temp ] -> [ b_right ]\n\n\nlate [ temp] -> []\n\nlate up [ y_up blacktile | blacktile ] -> [ r_up blacktile | blacktile ]\nlate down [ y_down blacktile | blacktile ] -> [ r_down blacktile | blacktile ]\nlate left [ y_left blacktile | blacktile ] -> [ r_left blacktile | blacktile ]\nlate right [ y_right blacktile | blacktile ] -> [ r_right blacktile | blacktile ]\n\n==============\nWINCONDITIONS\n==============\n\nno whitetile\n\n\n=======\nLEVELS\n=======\n\nmessage LEVEL 1 / 1\n\n5########6\n3010000114\n300p000004\n3000001004\n3000010014\n3000000004\n3001000004\n3001000004\n3000000004\n7########8\n\nmessage CONSUMPTION SUCCESSFUL / ERFOLGEREICHER VERBRAUCH\n",[3,1,4,3,3,2,3,4,2,4,1,4,2,2,1,1,4,4,3,3,0,0,0,0,0,3,3,3,4,4,0,4,2,2,2,1,1,3,4,3,4,4,0,0,0,4,2,2,1,1,1,4,0,1,1,4,0,4,2,1,4,3,4,2,2,2,2,4,2,4,3,0,0,1,4,2,2,4,0,0,0,0,3,1,2,2,2,2,0,2,4,3,0,0,3,0,0,2,2,2,2,2,1,1,1,0,3,4,3,3,0,0,0,0,2,4,3,4,0,1,2,4,3,0,4,1,1,0,4,4,1,0,4],"background wall_tl:0,background wall_l:1,1,1,1,1,1,1,1,background wall_bl:2,\nbackground wall_t:3,background whitetile:4,4,4,4,4,4,4,4,3,\n3,background blacktile:5,background blacktile explore:6,4,4,4,4,4,4,3,\n3,5,5,5,4,4,5,5,4,3,\n3,4,5,4,4,4,4,4,4,3,\n3,4,4,5,5,4,4,4,4,3,\n3,4,4,5,4,4,4,4,4,3,\n3,5,4,4,4,4,4,4,4,3,\n3,5,4,4,5,4,4,4,4,3,\nbackground wall_tr:7,background wall_r:8,8,8,8,8,8,8,8,background wall_br:9,\n",1,"1627892104859.3337"] + "KONSUM", + ["title KONSUM\nauthor increpare\nhomepage www.increpare.com\nrun_rules_on_level_start\nnorepeat_action\ntext_color lightgray\nbackground_color darkblue\n(thanks to eli cauley for helping test)\ncolor_palette 13\n\n========\nOBJECTS\n========\n\n\nBackground \ndarkblue \n \n\n\n\nwall_t #\ngray darkblue\n.....\n00000\n.....\n00000\n11111\n\n\nwall_b 2 \ngray darkblue\n11111\n00000\n.....\n00000\n.....\n\nwall_l 3 \ngray darkblue\n.0.01\n.0.01\n.0.01\n.0.01\n.0.01\n\n\nwall_r 4\ngray darkblue\n10.0.\n10.0.\n10.0.\n10.0.\n10.0.\n\nWall_tl 5\ngray darkblue\n.....\n..000\n.00..\n.0.00\n.0.01\n\nWall_tr 6\ngray darkblue\n.....\n000..\n..00.\n00.0.\n10.0.\n\nWall_bl 7\ngray darkblue\n.0.01\n.0.00\n.00..\n..000\n.....\n\nWall_br 8\ngray darkblue\n10.0.\n00.0.\n..00.\n000..\n.....\n\nblacktile\ngray\n\nwhitetile\ndarkgreen\n\nexplore\nyellow\n.....\n..0..\n.000.\n..0..\n.....\n\nplace\nyellow\n00.00\n0...0\n.....\n0...0\n00.00\n\n\nexploremode\nlightblue\n.....\n.0.0.\n.....\n.0.0.\n.....\n\ntemp\nred\n\nnosuck\nlightred\n.....\n..0..\n.000.\n..0..\n.....\n\ncanplace\npurple\n\nbadborder\nlightblue\n.....\n.....\n..0..\n.....\n.....\n\ny_up\nyellow\n00000\n.....\n.....\n.....\n.....\n\n\ny_down\nyellow\n.....\n.....\n.....\n.....\n00000\n\n\ny_left\nyellow\n0....\n0....\n0....\n0....\n0....\n\n\ny_right\nyellow\n....0\n....0\n....0\n....0\n....0\n\n\nr_up\n#ff0000\n00000\n.....\n.....\n.....\n.....\n\n\nr_down\n#ff0000\n.....\n.....\n.....\n.....\n00000\n\n\nr_left\n#ff0000\n0....\n0....\n0....\n0....\n0....\n\n\nr_right\n#ff0000\n....0\n....0\n....0\n....0\n....0\n\n\nb_up\ndarkbrown\n00000\n.....\n.....\n.....\n.....\n\n\nb_down\ndarkbrown\n.....\n.....\n.....\n.....\n00000\n\n\nb_left\ndarkbrown\n0....\n0....\n0....\n0....\n0....\n\n\nb_right\ndarkbrown\n....0\n....0\n....0\n....0\n....0\n\n=======\nLEGEND\n=======\n\n. = Background\nP = explore and blacktile\n0 = whitetile\n1 = blacktile \n\nplayer = explore or place\n\ny_lines = y_up or y_down or y_left or y_right\nr_lines = r_up or r_down or r_left or r_right\nb_lines = b_up or b_down or b_left or b_right\nlines = y_lines or r_lines or b_lines\nwall = Wall_t or wall_b or wall_l or wall_r or wall_tl or wall_tr or wall_bl or wall_br \n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nplace\nblacktile, whitetile\nWall\nexplore\nexploremode\ntemp\ncanplace\nnosuck\nbadborder\ny_up\ny_down\ny_left\ny_right\nr_up\nr_down\nr_left\nr_right\nb_up\nb_down\nb_left\nb_right\n\n\n======\nRULES\n======\n\n[lines]->[]\n\n[nosuck]->[]\n\n[ > player | wall ] -> cancel\n\n[action explore blacktile] -> [ place blacktile]\n[stationary place | blacktile ] -> [ place | blacktile place]\n\n\n(to place)\n\n(1 must have at least one piece on black)\nrandom [ place blacktile] -> [ place blacktile canplace ]\n\n[ canplace ] [ blacktile place | blacktile no place ] -> [ ] [ blacktile place | blacktile ]\n\n[canplace] [ action place ] ->[canplace] [ action place blacktile ]\n\n[canplace]->[]\n\nrandom [ action place ] -> [ explore ]\n\n[place ] [ explore ] -> [] [ explore ]\n\nlate [ explore no blacktile ] -> [ explore nosuck]\n\n\nlate up [ place | no place ] -> [ place y_up | ]\nlate down [ place | no place ] -> [ place y_down | ]\nlate left [ place | no place ] -> [ place y_left | ]\nlate right [ place | no place ] -> [ place y_right | ]\n\nrandom late [ place blacktile ] -> [ place temp blacktile ]\nlate [temp] [ place ] -> [ temp ] [ place temp ]\n\nlate [y_up no temp ] -> [ b_up ]\nlate [y_down no temp ] -> [ b_down ]\nlate [y_left no temp ] -> [ b_left ]\nlate [y_right no temp ] -> [ b_right ]\n\n\nlate [ temp] -> []\n\nlate up [ y_up blacktile | blacktile ] -> [ r_up blacktile | blacktile ]\nlate down [ y_down blacktile | blacktile ] -> [ r_down blacktile | blacktile ]\nlate left [ y_left blacktile | blacktile ] -> [ r_left blacktile | blacktile ]\nlate right [ y_right blacktile | blacktile ] -> [ r_right blacktile | blacktile ]\n\n==============\nWINCONDITIONS\n==============\n\nno whitetile\n\n\n=======\nLEVELS\n=======\n\nmessage LEVEL 1 / 1\n\n5########6\n3010000114\n300p000004\n3000001004\n3000010014\n3000000004\n3001000004\n3001000004\n3000000004\n7########8\n\nmessage CONSUMPTION SUCCESSFUL / ERFOLGEREICHER VERBRAUCH\n", [3, 1, 4, 3, 3, 2, 3, 4, 2, 4, 1, 4, 2, 2, 1, 1, 4, 4, 3, 3, 0, 0, 0, 0, 0, 3, 3, 3, 4, 4, 0, 4, 2, 2, 2, 1, 1, 3, 4, 3, 4, 4, 0, 0, 0, 4, 2, 2, 1, 1, 1, 4, 0, 1, 1, 4, 0, 4, 2, 1, 4, 3, 4, 2, 2, 2, 2, 4, 2, 4, 3, 0, 0, 1, 4, 2, 2, 4, 0, 0, 0, 0, 3, 1, 2, 2, 2, 2, 0, 2, 4, 3, 0, 0, 3, 0, 0, 2, 2, 2, 2, 2, 1, 1, 1, 0, 3, 4, 3, 3, 0, 0, 0, 0, 2, 4, 3, 4, 0, 1, 2, 4, 3, 0, 4, 1, 1, 0, 4, 4, 1, 0, 4], "background wall_tl:0,background wall_l:1,1,1,1,1,1,1,1,background wall_bl:2,\nbackground wall_t:3,background whitetile:4,4,4,4,4,4,4,4,3,\n3,background blacktile:5,background blacktile explore:6,4,4,4,4,4,4,3,\n3,5,5,5,4,4,5,5,4,3,\n3,4,5,4,4,4,4,4,4,3,\n3,4,4,5,5,4,4,4,4,3,\n3,4,4,5,4,4,4,4,4,3,\n3,5,4,4,4,4,4,4,4,3,\n3,5,4,4,5,4,4,4,4,3,\nbackground wall_tr:7,background wall_r:8,8,8,8,8,8,8,8,background wall_br:9,\n", 1, "1627892104859.3337"] ], [ - "Expand, avoid the flames [also it's not always solvable]", - ["title Expand, avoid the flames [also it's not always solvable]\nauthor Stephen Lavelle\nhomepage www.increpare.com\nrun_rules_on_level_start\ncolor_palette 14\nbackground_color black\ntext_color orange\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nwall #\ndarkgreen\n..0..\n..0..\n..0..\n..0..\n..0..\n\ntotenkopf k\ngray\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nspawntile s\ndarkred\n\nfire f\nred yellow\n10101\n01010\n10101\n01010\n10101\n\nPlayer\nwhite\n0...0\n.....\n.....\n.....\n0...0\n\n\nu\nlightred \n.....\n..0..\n.0.0.\n.....\n.....\n\n0\nwhite\n.....\n.000.\n.000.\n.000.\n.....\n\nd\nyellow\n.....\n.....\n.0.0.\n..0..\n.....\n\n\n\nl\nlightgreen\n.....\n..0..\n.0...\n..0..\n.....\n\n\n\nr\nlightblue\n.....\n..0..\n...0.\n..0..\n.....\n\ntu\nred\n\ntd\nred\n\ntl\nred\n\ntr\nred\n\nmu\nyellow\n\nmd\nyellow\n\nml\nyellow\n\nmr\nyellow\n\ntemp\nblue\n\ndirekt \ntransparent\n\nt2 \ntransparent\n\nt3\ntransparent\n\nsuccess\ntransparent\n\nempty\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\nP = player\narrow = u or r or d or l\nt = tu or td or tl or tr\n2 = fire and t2\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nspawntile\nfire\nu,d,l,r\nPlayer,0, wall\ntu\ntd\ntl\ntr\nmu\nmd\nml\nmr\ntemp\ndirekt\nt2\nt3\ntotenkopf\nsuccess\nempty\n\n======\nRULES\n======\n\n[> player|fire]->cancel\n\n[spawntile no arrow ] -> [ spawntile random arrow ] again\n\nrandom [t2]->[up t3]\nrandom [stationary t3]->[t2]\n\n\n( down [ arrow | no arrow ] -> [> arrow| ] again\n+ down [ arrow | > arrow ] -> [ > arrow | > arrow ] again\n)\nup [ u | u | u ] -> [ tu u | tu u | tu u ]\nup [tu u | u no tu ] -> [ tu u | tu u ]\n\nup [ d | d | d ] -> [ tu d | tu d | tu d ]\nup [tu d | d no tu ] -> [ tu d | tu d ]\n\nup [ l | l | l ] -> [ tu l | tu l | tu l ]\nup [tu l | l no tu ] -> [ tu l | tu l ]\n\nup [ r | r | r ] -> [ tu r | tu r | tu r ]\nup [tu r | r no tu ] -> [ tu r | tu r ]\n\n\ndown [ u | u | u ] -> [ td u | td u | td u ]\ndown [td u | u no td ] -> [ td u | td u ]\n\ndown [ d | d | d ] -> [ td d | td d | td d ]\ndown [td d | d no td ] -> [ td d | td d ]\n\ndown [ l | l | l ] -> [ td l | td l | td l ]\ndown [td l | l no td ] -> [ td l | td l ]\n\ndown [ r | r | r ] -> [ td r | td r | td r ]\ndown [td r | r no td ] -> [ td r | td r ]\n\n\nleft [ u | u | u ] -> [ tl u | tl u | tl u ]\nleft [tl u | u no tl ] -> [ tl u | tl u ]\n\nleft [ d | d | d ] -> [ tl d | tl d | tl d ]\nleft [tl d | d no tl ] -> [ tl d | tl d ]\n\nleft [ l | l | l ] -> [ tl l | tl l | tl l ]\nleft [tl l | l no tl ] -> [ tl l | tl l ]\n\nleft [ r | r | r ] -> [ tl r | tl r | tl r ]\nleft [tl r | r no tl ] -> [ tl r | tl r ]\n\n\n\n\nright [ u | u | u ] -> [ tr u | tr u | tr u ]\nright [tr u | u no tr ] -> [ tr u | tr u ]\n\nright [ d | d | d ] -> [ tr d | tr d | tr d ]\nright [tr d | d no tr ] -> [ tr d | tr d ]\n\nright [ l | l | l ] -> [ tr l | tr l | tr l ]\nright [tr l | l no tr ] -> [ tr l | tr l ]\n\nright [ r | r | r ] -> [ tr r | tr r | tr r ]\nright [tr r | r no tr ] -> [ tr r | tr r ]\n\nup [direkt player] [ t u ] [ spawntile no temp | no spawntile ] -> [ direkt player] [ t u ] [ spawntile | spawntile temp ]\ndown [direkt player] [ t d ] [ spawntile no temp | no spawntile ] -> [ direkt player] [ t d ] [ spawntile | spawntile temp ]\nleft [direkt player] [ t l ] [ spawntile no temp | no spawntile ] -> [ direkt player] [ t l ] [ spawntile | spawntile temp ]\nright [direkt player] [ t r ] [ spawntile no temp | no spawntile ] -> [ direkt player] [ t r ] [ spawntile | spawntile temp ]\n\n[direkt] [player] [ t] -> [ direkt ] [player success ] [ t ]\n\n[direkt] [ player no success ] -> [ direkt ] [ player totenkopf no arrow ] again\n\n[direkt]->[]\n[success]->[]\n\n[t]->[ no arrow] again\n[temp]->[]\n\nup [action player u | arrow ] -> [ arrow | u player direkt ] again\ndown [action player d | arrow ] -> [ arrow | d player direkt ] again\nleft [action player l | arrow ] -> [ arrow | l player direkt ] again\nright [action player r | arrow ] -> [ arrow | r player direkt ] again\n\nrandom [spawntile fire] [no fire no totenkopf] -> [ spawntile fire ] [ totenkopf no arrow no spawntile] again\nrandom [totenkopf ] [no fire no totenkopf] -> [ totenkopf ] [ totenkopf no arrow no spawntile] again\nrandom [totenkopf ] [fire spawntile] -> [ totenkopf ] [ no arrow no fire] again\n\n[empty] -> []\n[ no fire no spawntile ] -> [ empty]\n\n==============\nWINCONDITIONS\n==============\nno empty\n\n=======\nLEVELS\n=======\n\nmessage Level 1/1\n\n2ffffffffff\nf.........f\nf.........f\nf..sssss..f\nf..sssss..f\nf..sssss..f\nf..sssss..f\nf..sssss..f\nf.......p.f\nf.........f\nfffffffffff\n\nmessage congrats\n",[1,0,0,1,1,1,0,4,3,3,0,4,1,4,0,4,"undo",4,"undo",4,"undo",4],"background fire t2:0,background fire:1,1,1,1,1,1,1,1,1,1,\n1,background empty:2,2,2,2,2,2,2,2,2,1,\n1,2,background spawntile u:3,background l spawntile:4,3,background r spawntile:5,background d spawntile:6,4,6,2,1,\n1,2,4,3,6,3,3,6,5,2,1,\n1,2,5,3,5,4,6,4,4,2,1,\n1,2,5,background l player spawntile:7,6,6,5,4,3,2,1,\n1,2,6,5,5,6,4,5,4,2,1,\n1,2,6,5,3,5,4,6,5,2,1,\n1,2,4,3,5,3,3,4,5,2,1,\n1,2,2,2,2,2,2,2,2,2,1,\n1,1,1,1,1,1,1,1,1,1,1,\n",1,"1627894530268.055"] + "Expand, avoid the flames [also it's not always solvable]", + ["title Expand, avoid the flames [also it's not always solvable]\nauthor Stephen Lavelle\nhomepage www.increpare.com\nrun_rules_on_level_start\ncolor_palette 14\nbackground_color black\ntext_color orange\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nwall #\ndarkgreen\n..0..\n..0..\n..0..\n..0..\n..0..\n\ntotenkopf k\ngray\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nspawntile s\ndarkred\n\nfire f\nred yellow\n10101\n01010\n10101\n01010\n10101\n\nPlayer\nwhite\n0...0\n.....\n.....\n.....\n0...0\n\n\nu\nlightred \n.....\n..0..\n.0.0.\n.....\n.....\n\n0\nwhite\n.....\n.000.\n.000.\n.000.\n.....\n\nd\nyellow\n.....\n.....\n.0.0.\n..0..\n.....\n\n\n\nl\nlightgreen\n.....\n..0..\n.0...\n..0..\n.....\n\n\n\nr\nlightblue\n.....\n..0..\n...0.\n..0..\n.....\n\ntu\nred\n\ntd\nred\n\ntl\nred\n\ntr\nred\n\nmu\nyellow\n\nmd\nyellow\n\nml\nyellow\n\nmr\nyellow\n\ntemp\nblue\n\ndirekt \ntransparent\n\nt2 \ntransparent\n\nt3\ntransparent\n\nsuccess\ntransparent\n\nempty\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\nP = player\narrow = u or r or d or l\nt = tu or td or tl or tr\n2 = fire and t2\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nspawntile\nfire\nu,d,l,r\nPlayer,0, wall\ntu\ntd\ntl\ntr\nmu\nmd\nml\nmr\ntemp\ndirekt\nt2\nt3\ntotenkopf\nsuccess\nempty\n\n======\nRULES\n======\n\n[> player|fire]->cancel\n\n[spawntile no arrow ] -> [ spawntile random arrow ] again\n\nrandom [t2]->[up t3]\nrandom [stationary t3]->[t2]\n\n\n( down [ arrow | no arrow ] -> [> arrow| ] again\n+ down [ arrow | > arrow ] -> [ > arrow | > arrow ] again\n)\nup [ u | u | u ] -> [ tu u | tu u | tu u ]\nup [tu u | u no tu ] -> [ tu u | tu u ]\n\nup [ d | d | d ] -> [ tu d | tu d | tu d ]\nup [tu d | d no tu ] -> [ tu d | tu d ]\n\nup [ l | l | l ] -> [ tu l | tu l | tu l ]\nup [tu l | l no tu ] -> [ tu l | tu l ]\n\nup [ r | r | r ] -> [ tu r | tu r | tu r ]\nup [tu r | r no tu ] -> [ tu r | tu r ]\n\n\ndown [ u | u | u ] -> [ td u | td u | td u ]\ndown [td u | u no td ] -> [ td u | td u ]\n\ndown [ d | d | d ] -> [ td d | td d | td d ]\ndown [td d | d no td ] -> [ td d | td d ]\n\ndown [ l | l | l ] -> [ td l | td l | td l ]\ndown [td l | l no td ] -> [ td l | td l ]\n\ndown [ r | r | r ] -> [ td r | td r | td r ]\ndown [td r | r no td ] -> [ td r | td r ]\n\n\nleft [ u | u | u ] -> [ tl u | tl u | tl u ]\nleft [tl u | u no tl ] -> [ tl u | tl u ]\n\nleft [ d | d | d ] -> [ tl d | tl d | tl d ]\nleft [tl d | d no tl ] -> [ tl d | tl d ]\n\nleft [ l | l | l ] -> [ tl l | tl l | tl l ]\nleft [tl l | l no tl ] -> [ tl l | tl l ]\n\nleft [ r | r | r ] -> [ tl r | tl r | tl r ]\nleft [tl r | r no tl ] -> [ tl r | tl r ]\n\n\n\n\nright [ u | u | u ] -> [ tr u | tr u | tr u ]\nright [tr u | u no tr ] -> [ tr u | tr u ]\n\nright [ d | d | d ] -> [ tr d | tr d | tr d ]\nright [tr d | d no tr ] -> [ tr d | tr d ]\n\nright [ l | l | l ] -> [ tr l | tr l | tr l ]\nright [tr l | l no tr ] -> [ tr l | tr l ]\n\nright [ r | r | r ] -> [ tr r | tr r | tr r ]\nright [tr r | r no tr ] -> [ tr r | tr r ]\n\nup [direkt player] [ t u ] [ spawntile no temp | no spawntile ] -> [ direkt player] [ t u ] [ spawntile | spawntile temp ]\ndown [direkt player] [ t d ] [ spawntile no temp | no spawntile ] -> [ direkt player] [ t d ] [ spawntile | spawntile temp ]\nleft [direkt player] [ t l ] [ spawntile no temp | no spawntile ] -> [ direkt player] [ t l ] [ spawntile | spawntile temp ]\nright [direkt player] [ t r ] [ spawntile no temp | no spawntile ] -> [ direkt player] [ t r ] [ spawntile | spawntile temp ]\n\n[direkt] [player] [ t] -> [ direkt ] [player success ] [ t ]\n\n[direkt] [ player no success ] -> [ direkt ] [ player totenkopf no arrow ] again\n\n[direkt]->[]\n[success]->[]\n\n[t]->[ no arrow] again\n[temp]->[]\n\nup [action player u | arrow ] -> [ arrow | u player direkt ] again\ndown [action player d | arrow ] -> [ arrow | d player direkt ] again\nleft [action player l | arrow ] -> [ arrow | l player direkt ] again\nright [action player r | arrow ] -> [ arrow | r player direkt ] again\n\nrandom [spawntile fire] [no fire no totenkopf] -> [ spawntile fire ] [ totenkopf no arrow no spawntile] again\nrandom [totenkopf ] [no fire no totenkopf] -> [ totenkopf ] [ totenkopf no arrow no spawntile] again\nrandom [totenkopf ] [fire spawntile] -> [ totenkopf ] [ no arrow no fire] again\n\n[empty] -> []\n[ no fire no spawntile ] -> [ empty]\n\n==============\nWINCONDITIONS\n==============\nno empty\n\n=======\nLEVELS\n=======\n\nmessage Level 1/1\n\n2ffffffffff\nf.........f\nf.........f\nf..sssss..f\nf..sssss..f\nf..sssss..f\nf..sssss..f\nf..sssss..f\nf.......p.f\nf.........f\nfffffffffff\n\nmessage congrats\n", [1, 0, 0, 1, 1, 1, 0, 4, 3, 3, 0, 4, 1, 4, 0, 4, "undo", 4, "undo", 4, "undo", 4], "background fire t2:0,background fire:1,1,1,1,1,1,1,1,1,1,\n1,background empty:2,2,2,2,2,2,2,2,2,1,\n1,2,background spawntile u:3,background l spawntile:4,3,background r spawntile:5,background d spawntile:6,4,6,2,1,\n1,2,4,3,6,3,3,6,5,2,1,\n1,2,5,3,5,4,6,4,4,2,1,\n1,2,5,background l player spawntile:7,6,6,5,4,3,2,1,\n1,2,6,5,5,6,4,5,4,2,1,\n1,2,6,5,3,5,4,6,5,2,1,\n1,2,4,3,5,3,3,4,5,2,1,\n1,2,2,2,2,2,2,2,2,2,1,\n1,1,1,1,1,1,1,1,1,1,1,\n", 1, "1627894530268.055"] ], [ - "Pupush", - ["title Pupush\nauthor increpare\nhomepage www.increpare.com\nnoaction\ntext_color lightgray\n\n========\nOBJECTS\n========\n\nBackground\ngreen GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue darkgreen\n.....\n.000.\n.0.0.\n.000.\n.....\n\nziel z\nDarkBlue\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\naktiviertesziel \nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nTarget_aktiviert\nyellow yellow\n11111\n10001\n10.01\n10001\n11111\n\n\nvWall1\ndarkbrown darkbrown brown\n0.0.0\n.1.1.\n0.0.0\n.1.1.\n2.2.2\n\nvWall2\ndarkbrown darkbrown brown\n.0.1.\n1.1.1\n.1.0.\n1.1.1\n.2.2.\n\nWall1\ndarkbrown darkbrown\n0.0.0\n.1.1.\n0.0.0\n.1.1.\n0.0.0\n\nWall2\ndarkbrown darkbrown\n.0.1.\n1.1.1\n.1.0.\n1.1.1\n.0.1.\n\nPlayer1\nBlack lightbrown lightred darkblue\n..0..\n.1.1.\n2.2.2\n.3.3.\n.....\n\nPlayer2\nBlack lightbrown blue darkblue\n.0.0.\n..1..\n.2.2.\n..3..\n.3.3.\n\n\nCrate1\nOrange Yellow\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\n\nCrate2\nOrange Yellow\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nTuer1\nBlack brown\n..0..\n.1.1.\n0.1.0\n.1.1.\n0.0.0\n\nTuer2\nBlack brown\n.0.0.\n0.1.0\n.1.1.\n0.1.0\n.0.0.\n\nTuer_Offen\nlightgreen transparent\n.000.\n01110\n01110\n01110\n00000\n\nblackbg\nblack\n\ntreppe r\ngray darkgray\n11111\n00000\n11111\n00000\n11111\n\ntreppe2 y\ndarkgray gray \n11111\n00000\n11111\n00000\n11111\n\n=======\nLEGEND\n=======\n\nPlayer = Player1 or player2\nCrate = Crate1 or Crate2\nWall = wall1 or wall2\ntuer = tuer1 or tuer2\n\n. = Background\n# = Wall1 and wall2\n$ = vwall1 and vwall2\n\nP = Player1 and player2\n\n* = Crate1 and Crate2\n@ = Crate1 and crate2 and Target\nO = Target\n\nq = crate1\nw = crate2\n\nt = tuer1 and tuer2 and Tuer_Offen\n\nb = blackbg\n\ngewicht1 = player1 or Crate1 \ngewicht2 = player2 or Crate2\ngewicht = player or crate\n\ntreppen = treppe or treppe2\n=======\nSOUNDS\n=======\n\nCrate1 MOVE 36772507\nCrate2 MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nziel\naktiviertesziel\nTarget\nTarget_aktiviert\ntreppe, treppe2\ntuer_offen\nplayer1, crate1, wall1, tuer1, vwall1\nplayer2, crate2, wall2, tuer2, vwall2\nblackbg\n\n======\nRULES\n======\n\n[ > Player1 | Crate1 ] -> [ > Player1 | > Crate1 ]\n[ > Player2 | Crate2 ] -> [ > Player2 | > Crate2 ]\n[ > crate1 | crate1 ] -> [ > crate1 | > crate1 ]\n[ > crate2 | crate2 ] -> [ > crate2 | > crate2 ]\n\n\nlate [ Target_aktiviert ] -> [ ]\nlate [ target gewicht ] -> [ target gewicht Target_aktiviert ]\n\nlate [tuer_offen no gewicht ] -> [ Tuer_Offen tuer1 tuer2]\n\nlate right [ gewicht target | | | | gewicht target ] [ Tuer1 tuer2 ] -> [ gewicht target | | | | gewicht target ] [ ] \n\nlate [aktiviertesziel]->[]\nlate [ ziel crate ] -> [ aktiviertesziel ziel crate ]\n\n==============\nWINCONDITIONS\n==============\nall ziel on crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 1\n\n#$$$$$$$#\n#.......#\n#.z.w.z.#\n#.......#\n#$$$.$$$#\n#...t...#\n#....p..#\n#.oq..o.#\n#.......#\n#########\n\nmessage Herzlichen Glueckwunsch / Congratulations bzw.\n\n(\n\nauszuprobieren\n\tteilweises Aufmachen\n 2 klötze\n)\n",[1,0,0,3,3,1,1,1,2,"undo",3,2,1,3,3,3,0,1,1,1,1,1,2,2,3,1,0,3,3,3,3,1,1,1,1,3,0,0,3,3,3,"restart",2,1,1,3,3,3,0,1,1,0,1,1,1,1,2,3,3,2,3,0,0,0,3,0,1,2],"background wall1 wall2:0,0,0,0,0,0,0,0,0,\n0,background vwall1 vwall2:1,background:2,2,2,1,2,2,2,\n2,0,1,2,background ziel:3,2,1,2,2,\nbackground target:4,2,0,1,2,2,2,1,2,\nbackground crate1:5,2,2,0,1,2,background crate2:6,2,2,\nbackground tuer1 tuer2 tuer_offen:7,2,background player1:8,2,0,1,2,2,2,\n1,2,background player2:9,2,2,0,1,2,3,\n2,1,2,2,4,2,0,1,2,\n2,2,1,2,2,2,2,0,0,\n0,0,0,0,0,0,0,0,0,\n",1,"1627892193346.9036"] + "Pupush", + ["title Pupush\nauthor increpare\nhomepage www.increpare.com\nnoaction\ntext_color lightgray\n\n========\nOBJECTS\n========\n\nBackground\ngreen GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue darkgreen\n.....\n.000.\n.0.0.\n.000.\n.....\n\nziel z\nDarkBlue\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\naktiviertesziel \nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nTarget_aktiviert\nyellow yellow\n11111\n10001\n10.01\n10001\n11111\n\n\nvWall1\ndarkbrown darkbrown brown\n0.0.0\n.1.1.\n0.0.0\n.1.1.\n2.2.2\n\nvWall2\ndarkbrown darkbrown brown\n.0.1.\n1.1.1\n.1.0.\n1.1.1\n.2.2.\n\nWall1\ndarkbrown darkbrown\n0.0.0\n.1.1.\n0.0.0\n.1.1.\n0.0.0\n\nWall2\ndarkbrown darkbrown\n.0.1.\n1.1.1\n.1.0.\n1.1.1\n.0.1.\n\nPlayer1\nBlack lightbrown lightred darkblue\n..0..\n.1.1.\n2.2.2\n.3.3.\n.....\n\nPlayer2\nBlack lightbrown blue darkblue\n.0.0.\n..1..\n.2.2.\n..3..\n.3.3.\n\n\nCrate1\nOrange Yellow\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\n\nCrate2\nOrange Yellow\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nTuer1\nBlack brown\n..0..\n.1.1.\n0.1.0\n.1.1.\n0.0.0\n\nTuer2\nBlack brown\n.0.0.\n0.1.0\n.1.1.\n0.1.0\n.0.0.\n\nTuer_Offen\nlightgreen transparent\n.000.\n01110\n01110\n01110\n00000\n\nblackbg\nblack\n\ntreppe r\ngray darkgray\n11111\n00000\n11111\n00000\n11111\n\ntreppe2 y\ndarkgray gray \n11111\n00000\n11111\n00000\n11111\n\n=======\nLEGEND\n=======\n\nPlayer = Player1 or player2\nCrate = Crate1 or Crate2\nWall = wall1 or wall2\ntuer = tuer1 or tuer2\n\n. = Background\n# = Wall1 and wall2\n$ = vwall1 and vwall2\n\nP = Player1 and player2\n\n* = Crate1 and Crate2\n@ = Crate1 and crate2 and Target\nO = Target\n\nq = crate1\nw = crate2\n\nt = tuer1 and tuer2 and Tuer_Offen\n\nb = blackbg\n\ngewicht1 = player1 or Crate1 \ngewicht2 = player2 or Crate2\ngewicht = player or crate\n\ntreppen = treppe or treppe2\n=======\nSOUNDS\n=======\n\nCrate1 MOVE 36772507\nCrate2 MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nziel\naktiviertesziel\nTarget\nTarget_aktiviert\ntreppe, treppe2\ntuer_offen\nplayer1, crate1, wall1, tuer1, vwall1\nplayer2, crate2, wall2, tuer2, vwall2\nblackbg\n\n======\nRULES\n======\n\n[ > Player1 | Crate1 ] -> [ > Player1 | > Crate1 ]\n[ > Player2 | Crate2 ] -> [ > Player2 | > Crate2 ]\n[ > crate1 | crate1 ] -> [ > crate1 | > crate1 ]\n[ > crate2 | crate2 ] -> [ > crate2 | > crate2 ]\n\n\nlate [ Target_aktiviert ] -> [ ]\nlate [ target gewicht ] -> [ target gewicht Target_aktiviert ]\n\nlate [tuer_offen no gewicht ] -> [ Tuer_Offen tuer1 tuer2]\n\nlate right [ gewicht target | | | | gewicht target ] [ Tuer1 tuer2 ] -> [ gewicht target | | | | gewicht target ] [ ] \n\nlate [aktiviertesziel]->[]\nlate [ ziel crate ] -> [ aktiviertesziel ziel crate ]\n\n==============\nWINCONDITIONS\n==============\nall ziel on crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 1\n\n#$$$$$$$#\n#.......#\n#.z.w.z.#\n#.......#\n#$$$.$$$#\n#...t...#\n#....p..#\n#.oq..o.#\n#.......#\n#########\n\nmessage Herzlichen Glueckwunsch / Congratulations bzw.\n\n(\n\nauszuprobieren\n\tteilweises Aufmachen\n 2 klötze\n)\n", [1, 0, 0, 3, 3, 1, 1, 1, 2, "undo", 3, 2, 1, 3, 3, 3, 0, 1, 1, 1, 1, 1, 2, 2, 3, 1, 0, 3, 3, 3, 3, 1, 1, 1, 1, 3, 0, 0, 3, 3, 3, "restart", 2, 1, 1, 3, 3, 3, 0, 1, 1, 0, 1, 1, 1, 1, 2, 3, 3, 2, 3, 0, 0, 0, 3, 0, 1, 2], "background wall1 wall2:0,0,0,0,0,0,0,0,0,\n0,background vwall1 vwall2:1,background:2,2,2,1,2,2,2,\n2,0,1,2,background ziel:3,2,1,2,2,\nbackground target:4,2,0,1,2,2,2,1,2,\nbackground crate1:5,2,2,0,1,2,background crate2:6,2,2,\nbackground tuer1 tuer2 tuer_offen:7,2,background player1:8,2,0,1,2,2,2,\n1,2,background player2:9,2,2,0,1,2,3,\n2,1,2,2,4,2,0,1,2,\n2,2,1,2,2,2,2,0,0,\n0,0,0,0,0,0,0,0,0,\n", 1, "1627892193346.9036"] ], [ - "GAPFILLER / LUECKEFUELLER", - ["title GAPFILLER / LUECKEFUELLER \nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nrequire_player_movement\n\nbackground_color black\ntext_color white\n\n========\nOBJECTS\n========\n\nBackground\ngray\n\nempty\nblack\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkgray\n\nPlayer\nblack black black\n..1..\n11111\n.000.\n.101.\n.1.1.\n\n\npoo \nlightgray \n.....\n.000.\n.000.\n.000.\n.....\n\nlanded\ntransparent\n\n=======\nLEGEND\n=======\n\n\n. = Background\n# = Wall\np = Player\n* = Background\n@ = Background\nO = Background\n\n\ne = empty\n\nobstacle = player or wall or poo or empty\n\nl = landed\n\n=======\nSOUNDS\n=======\n\npoo MOVE 36772507\npoo create 68896304 \nendlevel 81920706\nendgame 70360302\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nempty\nlanded\nTarget\nPlayer, Wall, poo\n\n======\nRULES\n======\n\n\n\n\n[ > Player | poo | no obstacle ] -> [ | Player | poo ]\n[ > Player | no obstacle ] -> [ Poo | Player ]\n\n\n[ > player | poo ] -> [ > player | > poo ]\n[ > poo | poo ] -> [ > poo | > poo ]\n\nlate [ player ] -> [ player landed]\nlate [ poo ] -> [ poo landed]\n\n==============\nWINCONDITIONS\n==============\n\nAll background on obstacle\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 von 10\n\n#######\n#.....#\n#..#..#\n#.###.#\n#..#..#\n#..p..#\n#######\n\nmessage Level 2 von 10\n\n\nee######\nee#.OP.#\nee#.**.#\nee##.###\neee#.#ee\neee#.#ee\n####.#ee\n#....##e\n#.#...#e\n#...#.#e\n###...#e\nee#####e\n\nmessage Level 3 von 10\n\n\n#######\n##.####\n#....##\n##...##\n#..p.##\n#######\n\nmessage Level 4 von 10\n\n\n#######\n##...##\n##...##\n#..p..#\n#..#..#\n#######\n\nmessage Level 5 von 10\n\n\n#######\n##lll##\n##l#l##\n#llpll#\n##l#l##\n#######\n\n\nmessage Level 6 von 10\n\n#######\n##...##\n##.#.##\n#..p..#\n##.#.##\n####.##\n##.#.##\n#.....#\n##.#.##\n##...##\n#######\n\n\nmessage Level 7 von 10\n\n\n#######\n##.#.##\n#....##\n##...##\n#..p.##\n#######\n\n\nmessage Level 8 von 10\n\n#######\n#.....#\n#.#.#.#\n#.....#\n#.#.#.#\n#..p..#\n#######\n\n\n\nmessage Level 9 von 10\n\n#######\n##.#.##\n#.....#\n##.#.##\n#..p..#\n##.#.##\n#######\n\nmessage Level 10 von 10\n\n\n#########\n#.......#\n#.#.#.#.#\n#.......#\n#.#.#.#.#\n#...p...#\n#.#.#.#.#\n#.......#\n#########\n\nmessage Gratulation! Congratulations!\n\n\n\n\n\n\n\n\n\n\n\n\n(\n\n#######\n##lll##\n##l#l##\n#llpll#\n##l#l##\n#######\n\n\n\n\n###########\n#.........#\n#....P....#\n#.........#\n#..l...l..#\n#.........#\n#.........#\n#.........#\n###########\n\n\n###########\n#.........#\n#....P....#\n#.........#\n#..l...l..#\n#.........#\n#....l....#\n#.........#\n###########\n\n\n\n###########\n#.........#\n#....P....#\n#...e.....#\n#..l...l..#\n#.........#\n#....l....#\n#.........#\n###########\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\n\n####ee\n#.O#ee\n#..###\n#@P..#\n#..*.#\n#..###\n####ee\n\nmessage level 2 of 10\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\nmessage level 3 of 10\n\nee####eee\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\nmessage level 4 of 10\n\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\neeee####\n\nmessage level 5 of 10\n\ne#######\ne#.....#\ne#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\nmessage level 6 of 10\n\n######e#####\n#....###...#\n#.**.....#.#\n#.p.#OOO...#\n#...########\n#####eeeeeee\n\nmessage level 7 of 10\n\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*p*.#\n#.....#\n#######\n\nmessage level 8 of 10\n\n\nmessage level 9 of 10\n\n#####e\n#Op.##\n#.**.#\n##...#\ne##..#\nee##O#\neee###\n\nmessage level 10 of 10\n\neeeeee#####\neeeeee#O..#\neeeeee#O#.#\n#######O#.#\n#.p.*.*.*.#\n#.#.#.#.###\n#.......#ee\n#########ee\n\n#############\n#####...#####\n#####.p.#####\n#####...#####\n#...##.##...#\n#.l.......l.#\n#...#...#...#\n######.######\n#####...#####\n#####.l.#####\n#####...#####\n#############\n\n\n#############\n#####lll#####\n#####lpl#####\n#####lll#####\n######l######\n#############\n\n\n\n\n\n#######\n###l###\n##lll##\n#llpll#\n##lll##\n###l###\n#######\n\n\n#########\n#lllllll#\n#l##l##l#\n#l#lll#l#\n#lllplll#\n#l#lll#l#\n#l##l##l#\n#lllllll#\n#########\n\n\n#########\n#lllllll#\n#l##l##l#\n#l##l##l#\n#lllplll#\n#l##l##l#\n#l##l##l#\n#lllllll#\n#########\n\n#########\n#lllllll#\n#l##l##l#\n#l##l##l#\n#lllplll#\n#########\n\n\n###########\n##l#####l##\n#lllllllll#\n##l##l##l##\n##l##l##l##\n#llllpllll#\n##l#####l##\n###########\n\n########\n##l##l##\n#llllll#\n##l##l##\n##l##l##\n#lllpll#\n##l##l##\n########\n\n\n\n########\n##l##l##\n##llll##\n##l##l##\n##l##l##\n#lllpll#\n##l##l##\n########\n\n\n\n\n########\n##l##l##\n##llll##\n##l##l##\n##l##l##\n#lllpll#\n##l##l##\n########\n\n\n\n\n\n########\n########\n##llll##\n##l##l##\n##l##l##\n##llpl##\n########\n########\n\n########\n########\n##llll##\n##l##l##\n##l##l##\n#lllpl##\n########\n########\n\n\n\n########\n########\n##llll##\n##l##l##\n##l##l##\n#lllpl##\n########\n########\n)\n",[1,0,0,3,3,2,2,2,2,2,2,3,1,1,1,0,2,2,2,0,0,2],"background wall:0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\nbackground:1,0,0,0,background landed poo:2,0,0,\n0,0,2,2,2,1,0,\nbackground landed player:3,2,2,2,0,0,2,\n0,2,0,0,0,background landed:4,0,\n1,0,0,2,2,2,2,\n2,2,4,1,1,0,0,\n0,0,1,0,0,0,4,\n0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\n",11,"1627892223719.676"] + "GAPFILLER / LUECKEFUELLER", + ["title GAPFILLER / LUECKEFUELLER \nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nrequire_player_movement\n\nbackground_color black\ntext_color white\n\n========\nOBJECTS\n========\n\nBackground\ngray\n\nempty\nblack\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkgray\n\nPlayer\nblack black black\n..1..\n11111\n.000.\n.101.\n.1.1.\n\n\npoo \nlightgray \n.....\n.000.\n.000.\n.000.\n.....\n\nlanded\ntransparent\n\n=======\nLEGEND\n=======\n\n\n. = Background\n# = Wall\np = Player\n* = Background\n@ = Background\nO = Background\n\n\ne = empty\n\nobstacle = player or wall or poo or empty\n\nl = landed\n\n=======\nSOUNDS\n=======\n\npoo MOVE 36772507\npoo create 68896304 \nendlevel 81920706\nendgame 70360302\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nempty\nlanded\nTarget\nPlayer, Wall, poo\n\n======\nRULES\n======\n\n\n\n\n[ > Player | poo | no obstacle ] -> [ | Player | poo ]\n[ > Player | no obstacle ] -> [ Poo | Player ]\n\n\n[ > player | poo ] -> [ > player | > poo ]\n[ > poo | poo ] -> [ > poo | > poo ]\n\nlate [ player ] -> [ player landed]\nlate [ poo ] -> [ poo landed]\n\n==============\nWINCONDITIONS\n==============\n\nAll background on obstacle\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 von 10\n\n#######\n#.....#\n#..#..#\n#.###.#\n#..#..#\n#..p..#\n#######\n\nmessage Level 2 von 10\n\n\nee######\nee#.OP.#\nee#.**.#\nee##.###\neee#.#ee\neee#.#ee\n####.#ee\n#....##e\n#.#...#e\n#...#.#e\n###...#e\nee#####e\n\nmessage Level 3 von 10\n\n\n#######\n##.####\n#....##\n##...##\n#..p.##\n#######\n\nmessage Level 4 von 10\n\n\n#######\n##...##\n##...##\n#..p..#\n#..#..#\n#######\n\nmessage Level 5 von 10\n\n\n#######\n##lll##\n##l#l##\n#llpll#\n##l#l##\n#######\n\n\nmessage Level 6 von 10\n\n#######\n##...##\n##.#.##\n#..p..#\n##.#.##\n####.##\n##.#.##\n#.....#\n##.#.##\n##...##\n#######\n\n\nmessage Level 7 von 10\n\n\n#######\n##.#.##\n#....##\n##...##\n#..p.##\n#######\n\n\nmessage Level 8 von 10\n\n#######\n#.....#\n#.#.#.#\n#.....#\n#.#.#.#\n#..p..#\n#######\n\n\n\nmessage Level 9 von 10\n\n#######\n##.#.##\n#.....#\n##.#.##\n#..p..#\n##.#.##\n#######\n\nmessage Level 10 von 10\n\n\n#########\n#.......#\n#.#.#.#.#\n#.......#\n#.#.#.#.#\n#...p...#\n#.#.#.#.#\n#.......#\n#########\n\nmessage Gratulation! Congratulations!\n\n\n\n\n\n\n\n\n\n\n\n\n(\n\n#######\n##lll##\n##l#l##\n#llpll#\n##l#l##\n#######\n\n\n\n\n###########\n#.........#\n#....P....#\n#.........#\n#..l...l..#\n#.........#\n#.........#\n#.........#\n###########\n\n\n###########\n#.........#\n#....P....#\n#.........#\n#..l...l..#\n#.........#\n#....l....#\n#.........#\n###########\n\n\n\n###########\n#.........#\n#....P....#\n#...e.....#\n#..l...l..#\n#.........#\n#....l....#\n#.........#\n###########\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\n\n####ee\n#.O#ee\n#..###\n#@P..#\n#..*.#\n#..###\n####ee\n\nmessage level 2 of 10\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\nmessage level 3 of 10\n\nee####eee\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\nmessage level 4 of 10\n\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\neeee####\n\nmessage level 5 of 10\n\ne#######\ne#.....#\ne#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\nmessage level 6 of 10\n\n######e#####\n#....###...#\n#.**.....#.#\n#.p.#OOO...#\n#...########\n#####eeeeeee\n\nmessage level 7 of 10\n\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*p*.#\n#.....#\n#######\n\nmessage level 8 of 10\n\n\nmessage level 9 of 10\n\n#####e\n#Op.##\n#.**.#\n##...#\ne##..#\nee##O#\neee###\n\nmessage level 10 of 10\n\neeeeee#####\neeeeee#O..#\neeeeee#O#.#\n#######O#.#\n#.p.*.*.*.#\n#.#.#.#.###\n#.......#ee\n#########ee\n\n#############\n#####...#####\n#####.p.#####\n#####...#####\n#...##.##...#\n#.l.......l.#\n#...#...#...#\n######.######\n#####...#####\n#####.l.#####\n#####...#####\n#############\n\n\n#############\n#####lll#####\n#####lpl#####\n#####lll#####\n######l######\n#############\n\n\n\n\n\n#######\n###l###\n##lll##\n#llpll#\n##lll##\n###l###\n#######\n\n\n#########\n#lllllll#\n#l##l##l#\n#l#lll#l#\n#lllplll#\n#l#lll#l#\n#l##l##l#\n#lllllll#\n#########\n\n\n#########\n#lllllll#\n#l##l##l#\n#l##l##l#\n#lllplll#\n#l##l##l#\n#l##l##l#\n#lllllll#\n#########\n\n#########\n#lllllll#\n#l##l##l#\n#l##l##l#\n#lllplll#\n#########\n\n\n###########\n##l#####l##\n#lllllllll#\n##l##l##l##\n##l##l##l##\n#llllpllll#\n##l#####l##\n###########\n\n########\n##l##l##\n#llllll#\n##l##l##\n##l##l##\n#lllpll#\n##l##l##\n########\n\n\n\n########\n##l##l##\n##llll##\n##l##l##\n##l##l##\n#lllpll#\n##l##l##\n########\n\n\n\n\n########\n##l##l##\n##llll##\n##l##l##\n##l##l##\n#lllpll#\n##l##l##\n########\n\n\n\n\n\n########\n########\n##llll##\n##l##l##\n##l##l##\n##llpl##\n########\n########\n\n########\n########\n##llll##\n##l##l##\n##l##l##\n#lllpl##\n########\n########\n\n\n\n########\n########\n##llll##\n##l##l##\n##l##l##\n#lllpl##\n########\n########\n)\n", [1, 0, 0, 3, 3, 2, 2, 2, 2, 2, 2, 3, 1, 1, 1, 0, 2, 2, 2, 0, 0, 2], "background wall:0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\nbackground:1,0,0,0,background landed poo:2,0,0,\n0,0,2,2,2,1,0,\nbackground landed player:3,2,2,2,0,0,2,\n0,2,0,0,0,background landed:4,0,\n1,0,0,2,2,2,2,\n2,2,4,1,1,0,0,\n0,0,1,0,0,0,4,\n0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\n", 11, "1627892223719.676"] ], [ - "pushit", - ["title pushit\nauthor increpare\nhomepage www.increpare.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\nPoo\norange brown\n.0...\n..1..\n.000.\n.1111\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n+ = player and target\n\nobstacle = wall or player or crate or poo\npushable = crate or poo\n=======\nSOUNDS\n=======\n\npoo create 9134102\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, Poo\n\n======\nRULES\n======\n\n[ > Player | pushable | no obstacle ] -> [ poo | Player | pushable ]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 4\n\n#########\n#.......#\n#...*...#\n#...*...#\n#...*.p.#\n#...o...#\n#...o...#\n#...o...#\n#.......#\n#########\n\n\nmessage Level 2 of 4\n\n##############\n#............#\n#............#\n#....***.....#\n#............#\n#............#\n#....ooo..*..#\n#..p.ooo..*..#\n#....ooo..*..#\n#............#\n#............#\n#....***.....#\n#............#\n#............#\n##############\n\nmessage Level 3 of 4\n\n\n#########\n#.......#\n#..O*O..#\n#..*P*..#\n#..O*O..#\n#.......#\n#########\n\nmessage Level 4 of 4\n\n\n######\n#O..O#\n#P**.#\n#....#\n#....#\n#.**.#\n#O..O#\n######\n\nmessage Congrats! You can pushit!\n\n\n\n\n\n\n\n\n\n\n",[1,0,3,0,3,3,3,2,1,1,2,3,3,1,0,3,2,1,2,1,2,1,1,1,1,0,0,0],"background wall:0,0,0,0,0,0,0,0,background:1,\n1,1,1,1,0,0,background crate:2,background player:3,background poo:4,\n4,1,0,0,1,background poo target:5,1,background target:6,1,\n0,0,1,2,4,2,1,0,0,\n1,5,4,background crate target:7,1,0,0,4,1,\n1,1,1,0,0,1,1,4,1,\n1,0,0,0,0,0,0,0,0,\n",5,"1627892234377.7625"] + "pushit", + ["title pushit\nauthor increpare\nhomepage www.increpare.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\nPoo\norange brown\n.0...\n..1..\n.000.\n.1111\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n+ = player and target\n\nobstacle = wall or player or crate or poo\npushable = crate or poo\n=======\nSOUNDS\n=======\n\npoo create 9134102\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, Poo\n\n======\nRULES\n======\n\n[ > Player | pushable | no obstacle ] -> [ poo | Player | pushable ]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 4\n\n#########\n#.......#\n#...*...#\n#...*...#\n#...*.p.#\n#...o...#\n#...o...#\n#...o...#\n#.......#\n#########\n\n\nmessage Level 2 of 4\n\n##############\n#............#\n#............#\n#....***.....#\n#............#\n#............#\n#....ooo..*..#\n#..p.ooo..*..#\n#....ooo..*..#\n#............#\n#............#\n#....***.....#\n#............#\n#............#\n##############\n\nmessage Level 3 of 4\n\n\n#########\n#.......#\n#..O*O..#\n#..*P*..#\n#..O*O..#\n#.......#\n#########\n\nmessage Level 4 of 4\n\n\n######\n#O..O#\n#P**.#\n#....#\n#....#\n#.**.#\n#O..O#\n######\n\nmessage Congrats! You can pushit!\n\n\n\n\n\n\n\n\n\n\n", [1, 0, 3, 0, 3, 3, 3, 2, 1, 1, 2, 3, 3, 1, 0, 3, 2, 1, 2, 1, 2, 1, 1, 1, 1, 0, 0, 0], "background wall:0,0,0,0,0,0,0,0,background:1,\n1,1,1,1,0,0,background crate:2,background player:3,background poo:4,\n4,1,0,0,1,background poo target:5,1,background target:6,1,\n0,0,1,2,4,2,1,0,0,\n1,5,4,background crate target:7,1,0,0,4,1,\n1,1,1,0,0,1,1,4,1,\n1,0,0,0,0,0,0,0,0,\n", 5, "1627892234377.7625"] ], [ - "AUTOHURDLER", - ["title AUTOHURDLER\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color gray\n\nrun_rules_on_level_start\nnoaction\n\n\ncolor_palette 13\n\n========\nOBJECTS\n========\n\nBackground\nlightgray gray\n11111\n11111\n11011\n11111\n11111\n\n\nTarget\nyellow transparent transparent\n11111\n11211\n12021\n11211\n11111\n\nWall\ndarkgray gray\n00000\n00000\n00100\n00000\n00000\n\nPlayer\nblack black black black\n.000.\n.111.\n22.22\n.333.\n.3.3.\n\nCrate\ndarkblue Yellow\n.000.\n0...0\n0...0\n0...0\n.000.\n\noncrate\nlightblue \n.000.\n0...0\n0...0\n0...0\n.000.\n\nteleport_up\ndarkred transparent\n11011\n10001\n00000\n11011\n11011\n\n\nteleport_down\ndarkred transparent\n11011\n11011\n00000\n10001\n11011\n\n\nteleport_left\ndarkred transparent\n11011\n10011\n00000\n10011\n11011\n\n\nteleport_right\ndarkred transparent\n11011\n11001\n00000\n11001\n11011\n\n\n\nteleport_bad\ndarkred transparent \n11111\n10101\n11011\n10101\n11111\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nobstacle = wall or crate\n+ = player and target\n\nteleport = teleport_up or teleport_down or teleport_left or teleport_right\nanytele = teleport or teleport_bad\n\n=======\nSOUNDS\n=======\n\nsfx1 19243905\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nteleport_up\nteleport_down\nteleport_left\nteleport_right\nteleport_bad\nTarget\nPlayer, Wall, Crate\noncrate\n\n======\nRULES\n======\n\n[ > player | crate ] -> [ > player | > crate ]\n[ > crate | crate ] -> [ > crate | > crate ]\n\n\n[ > crate | stationary obstacle ] -> [ crate | stationary obstacle ]\n[ > player | stationary obstacle ] -> cancel\n\n([ > player | obstacle | obstacle ] -> cancel)\n[ > player | wall ] -> cancel \n\nlate [ anytele ] -> []\nlate up [ crate | no obstacle ] -> [ crate | teleport_down ]\nlate down [ crate | no obstacle ] -> [ crate | teleport_up ]\nlate left [ crate | no obstacle ] -> [ crate | teleport_right ]\nlate right [ crate | no obstacle ] -> [ crate | teleport_left ]\n\nlate [ teleport_up teleport_down ] -> [ teleport_bad ]\nlate [ teleport_up teleport_left ] -> [ teleport_bad ]\nlate [ teleport_up teleport_right ] -> [ teleport_bad ]\nlate [ teleport_down teleport_left ] -> [ teleport_bad ]\nlate [ teleport_down teleport_right ] -> [ teleport_bad ]\nlate [ teleport_left teleport_right ] -> [ teleport_bad ]\n\nlate [ teleport_bad teleport_up ] -> [ teleport_bad ]\nlate [ teleport_bad teleport_down ] -> [ teleport_bad ]\nlate [ teleport_bad teleport_left ] -> [ teleport_bad ]\nlate [ teleport_bad teleport_right ] -> [ teleport_bad ]\n\nlate up [ teleport_up | crate | obstacle ] -> [teleport_bad|Crate|obstacle]\nlate down [ teleport_down | crate | obstacle ] -> [teleport_bad|Crate|obstacle]\nlate left [ teleport_left | crate | obstacle ] -> [teleport_bad|Crate|obstacle]\nlate right [ teleport_right | crate | obstacle ] -> [teleport_bad|Crate|obstacle]\n\nrandom late up [ teleport_up player | crate | no obstacle ] -> [ teleport_up | crate | Player ] sfx1\n+ late down [ teleport_down player | crate | no obstacle ] -> [ teleport_down | crate | Player ] sfx1\n+ late left [ teleport_left player | crate | no obstacle ] -> [ teleport_left | crate | Player ] sfx1\n+ late right [ teleport_right player | crate | no obstacle ] -> [ teleport_right | crate | Player ] sfx1\n\nlate [oncrate]->[]\nlate [ crate target] -> [crate target oncrate]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 4\n\n#########\n#.......#\n#.......#\n#..*o*..#\n#..o.o..#\n#..*o*..#\n#.......#\n#...p...#\n#########\n\nmessage level 2 of 4\n\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\nmessage level 3 of 4\n\n\n##########\n#........#\n#........#\n#..o**...#\n#..oo*...#\n#.p......#\n#........#\n##########\n\n\nmessage level 4 of 4\n\n#########\n#...#.p.#\n#..*o*..#\n#..o*o..#\n#..o*o..#\n#..*o*..#\n#...#...#\n#########\n\nmessage .CONGRATULATIONS. .AUTOHURDLER. .WE. .ARE. .SO. .PROUD. .OF. .YOU.\n\n",[0,3,1,2,2,3,3,0,3,0,"undo","undo","undo",1,1,0,3,"undo",3,2,2,2,1,1,1,2,3,2,2,1,1,1,1,0,3,1,2],"background wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,0,\n0,1,1,background teleport_right:2,1,1,2,1,0,\n0,1,background teleport_down:3,background crate:4,background target teleport_up:5,3,4,background player teleport_up:6,0,\n0,1,1,background target teleport_left:7,1,background target:8,background teleport_left:9,1,0,\n0,1,1,2,8,2,1,1,0,\n0,1,3,4,background teleport_bad:10,4,background teleport_up:11,1,0,\n0,1,1,9,1,9,1,1,0,\n0,0,0,0,0,0,0,0,0,\n",1,"1627892250172.2253"] + "AUTOHURDLER", + ["title AUTOHURDLER\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color gray\n\nrun_rules_on_level_start\nnoaction\n\n\ncolor_palette 13\n\n========\nOBJECTS\n========\n\nBackground\nlightgray gray\n11111\n11111\n11011\n11111\n11111\n\n\nTarget\nyellow transparent transparent\n11111\n11211\n12021\n11211\n11111\n\nWall\ndarkgray gray\n00000\n00000\n00100\n00000\n00000\n\nPlayer\nblack black black black\n.000.\n.111.\n22.22\n.333.\n.3.3.\n\nCrate\ndarkblue Yellow\n.000.\n0...0\n0...0\n0...0\n.000.\n\noncrate\nlightblue \n.000.\n0...0\n0...0\n0...0\n.000.\n\nteleport_up\ndarkred transparent\n11011\n10001\n00000\n11011\n11011\n\n\nteleport_down\ndarkred transparent\n11011\n11011\n00000\n10001\n11011\n\n\nteleport_left\ndarkred transparent\n11011\n10011\n00000\n10011\n11011\n\n\nteleport_right\ndarkred transparent\n11011\n11001\n00000\n11001\n11011\n\n\n\nteleport_bad\ndarkred transparent \n11111\n10101\n11011\n10101\n11111\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nobstacle = wall or crate\n+ = player and target\n\nteleport = teleport_up or teleport_down or teleport_left or teleport_right\nanytele = teleport or teleport_bad\n\n=======\nSOUNDS\n=======\n\nsfx1 19243905\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nteleport_up\nteleport_down\nteleport_left\nteleport_right\nteleport_bad\nTarget\nPlayer, Wall, Crate\noncrate\n\n======\nRULES\n======\n\n[ > player | crate ] -> [ > player | > crate ]\n[ > crate | crate ] -> [ > crate | > crate ]\n\n\n[ > crate | stationary obstacle ] -> [ crate | stationary obstacle ]\n[ > player | stationary obstacle ] -> cancel\n\n([ > player | obstacle | obstacle ] -> cancel)\n[ > player | wall ] -> cancel \n\nlate [ anytele ] -> []\nlate up [ crate | no obstacle ] -> [ crate | teleport_down ]\nlate down [ crate | no obstacle ] -> [ crate | teleport_up ]\nlate left [ crate | no obstacle ] -> [ crate | teleport_right ]\nlate right [ crate | no obstacle ] -> [ crate | teleport_left ]\n\nlate [ teleport_up teleport_down ] -> [ teleport_bad ]\nlate [ teleport_up teleport_left ] -> [ teleport_bad ]\nlate [ teleport_up teleport_right ] -> [ teleport_bad ]\nlate [ teleport_down teleport_left ] -> [ teleport_bad ]\nlate [ teleport_down teleport_right ] -> [ teleport_bad ]\nlate [ teleport_left teleport_right ] -> [ teleport_bad ]\n\nlate [ teleport_bad teleport_up ] -> [ teleport_bad ]\nlate [ teleport_bad teleport_down ] -> [ teleport_bad ]\nlate [ teleport_bad teleport_left ] -> [ teleport_bad ]\nlate [ teleport_bad teleport_right ] -> [ teleport_bad ]\n\nlate up [ teleport_up | crate | obstacle ] -> [teleport_bad|Crate|obstacle]\nlate down [ teleport_down | crate | obstacle ] -> [teleport_bad|Crate|obstacle]\nlate left [ teleport_left | crate | obstacle ] -> [teleport_bad|Crate|obstacle]\nlate right [ teleport_right | crate | obstacle ] -> [teleport_bad|Crate|obstacle]\n\nrandom late up [ teleport_up player | crate | no obstacle ] -> [ teleport_up | crate | Player ] sfx1\n+ late down [ teleport_down player | crate | no obstacle ] -> [ teleport_down | crate | Player ] sfx1\n+ late left [ teleport_left player | crate | no obstacle ] -> [ teleport_left | crate | Player ] sfx1\n+ late right [ teleport_right player | crate | no obstacle ] -> [ teleport_right | crate | Player ] sfx1\n\nlate [oncrate]->[]\nlate [ crate target] -> [crate target oncrate]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 4\n\n#########\n#.......#\n#.......#\n#..*o*..#\n#..o.o..#\n#..*o*..#\n#.......#\n#...p...#\n#########\n\nmessage level 2 of 4\n\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\nmessage level 3 of 4\n\n\n##########\n#........#\n#........#\n#..o**...#\n#..oo*...#\n#.p......#\n#........#\n##########\n\n\nmessage level 4 of 4\n\n#########\n#...#.p.#\n#..*o*..#\n#..o*o..#\n#..o*o..#\n#..*o*..#\n#...#...#\n#########\n\nmessage .CONGRATULATIONS. .AUTOHURDLER. .WE. .ARE. .SO. .PROUD. .OF. .YOU.\n\n", [0, 3, 1, 2, 2, 3, 3, 0, 3, 0, "undo", "undo", "undo", 1, 1, 0, 3, "undo", 3, 2, 2, 2, 1, 1, 1, 2, 3, 2, 2, 1, 1, 1, 1, 0, 3, 1, 2], "background wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,0,\n0,1,1,background teleport_right:2,1,1,2,1,0,\n0,1,background teleport_down:3,background crate:4,background target teleport_up:5,3,4,background player teleport_up:6,0,\n0,1,1,background target teleport_left:7,1,background target:8,background teleport_left:9,1,0,\n0,1,1,2,8,2,1,1,0,\n0,1,3,4,background teleport_bad:10,4,background teleport_up:11,1,0,\n0,1,1,9,1,9,1,1,0,\n0,0,0,0,0,0,0,0,0,\n", 1, "1627892250172.2253"] ], [ - "Snakey Snakey Makes A Sixy", - ["title Snakey Snakey Makes A Sixy\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nrequire_player_movement\n\ncolor_palette 5\n\n========\nOBJECTS\n========\n\nBackground\nblack black\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\n\nprev1 a\ndarkgreen\n.000.\n0...0\n0...0\n0...0\n.000.\n\nprev2 b\ndarkgreen\n.000.\n0...0\n0...0\n0...0\n.000.\n\nPlayer\ngreen\n.000.\n0...0\n0...0\n0...0\n.000.\n\n\n\n1\npurple\n.....\n.....\n..0..\n.....\n.....\n\n\n\n2\nred\n.....\n.0...\n.....\n...0.\n.....\n\n\n3\npink\n.....\n.0...\n..0..\n...0.\n.....\n\n\n4\nyellow\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\n5\nlightgreen\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\n\n6\ngreen\n.....\n.000.\n.....\n.000.\n.....\n\n\nc_up\nblack\n..0..\n.....\n.....\n.....\n.....\n\nc_down\nblack\n.....\n.....\n.....\n.....\n..0..\n\nc_left\nblack\n.....\n.....\n0....\n.....\n.....\n\nc_right\nblack\n.....\n.....\n....0\n.....\n.....\n\nsprt_0_0 l\n#69ff05 black\n.....\n.....\n..1.0\n....0\n....0\n\nsprt_1_0 k\n#69ff05\n.....\n.0000\n00000\n.000.\n00000\n\nsprt_2_0 j \n#69ff05 black\n.....\n.....\n0.1..\n0....\n0....\n\nsprt_3_0 h\n#000000\n.....\n.....\n..0..\n.....\n.....\n\nsprt_0_1 g\n#ff1463 black\n.....\n....0\n..10.\n.....\n.....\n\nsprt_1_1 f\n#69ff05 #ff1463 #22630a black\n01000\n10002\n1.322\n1....\n.....\n\nsprt_2_1 d\n#22630a\n0....\n000..\n000..\n00000\n..000\n\nsprt_3_1 s\n#22630a black\n.....\n.....\n..1..\n.....\n0....\n\nsprt_0_2 z\nwhite black\n.....\n.....\n..1..\n.....\n.....\n\nsprt_1_2 x\nwhite black\n.....\n0.0.0\n..1..\n0.0.0\n.....\n\nsprt_2_2 0\n#22630a black\n....0\n....0\n..1..\n.....\n.....\n\nsprt_3_2 v\n#22630a black\n0....\n0....\n001..\n000..\n000..\n\nsprt_0_3 9\n#22630a black\n..00.\n...00\n..1.0\n.....\n.....\n\nsprt_1_3 n\n#22630a\n.....\n0....\n00000\n.0000\n.....\n\nsprt_2_3 m\n#22630a\n....0\n..000\n00000\n000..\n.....\n\nsprt_3_3 8\n#22630a black\n00...\n0....\n..1..\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = Target\n\nprev = prev1 or prev2\n\n\nnum = 1 or 2 or 3 or 4 or 5 or 6\n\nc = c_up or c_down or c_left or c_right\n\nbody = player or prev\n\n=======\nSOUNDS\n=======\n \n\nsfx1 55932906\nsfx2 4305306\nsfx3 6823106\nsfx4 83937501\nsfx5 65854702\n\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\n1,2,3,4,5,6\nPlayer, Wall, prev1, prev2\nc_up\nc_down\nc_left\nc_right\nsprt_0_0, sprt_1_0, sprt_2_0, sprt_3_0, sprt_0_1, sprt_1_1, sprt_2_1, sprt_3_1, sprt_0_2, sprt_1_2, sprt_2_2, sprt_3_2, sprt_0_3, sprt_1_3, sprt_2_3, sprt_3_3\n\n======\nRULES\n======\n\n\n[no num]->[1]\n\n[> player | prev ] -> cancel\n\n[ prev1 | player ] -> [ > prev1 | player ]\n[ prev2 | prev1 ] -> [ > prev2 | prev1 ]\n\nlate [ player 1 ] [ prev1 1 ] [ prev2 1] -> [ player 2 ] [ prev1 ] [ prev2 ] sfx1 again\nlate [ player 2 ] [ prev1 2 ] [ prev2 2] -> [ player 3 ] [ prev1 ] [ prev2 ] sfx2 again\nlate [ player 3 ] [ prev1 3 ] [ prev2 3] -> [ player 4 ] [ prev1 ] [ prev2 ] sfx3 again\nlate [ player 4 ] [ prev1 4 ] [ prev2 4] -> [ player 5 ] [ prev1 ] [ prev2 ] sfx4 again\nlate [ player 5 ] [ prev1 5 ] [ prev2 5] -> sfx5 win\n\n\n\nlate [ c ] -> []\n\nlate right [ body | body ] -> [ body c_right | body c_left ]\nlate down [ body | body ] -> [ body c_down | body c_up ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.........\n.........\n.........\n.........\n....p....\n....a....\n....b....\n.........\n.........\n\nmessage You did it, snakey snakey! You made a sixy!\n\nlkjh\ngfds\nzx0v\n9nm8\n",[0,0,3,2,2,4,2,1,1,0,0,3,3,2,3,0,0,0,1,1,2,3,0,0,1,2,2,2,1,1,0,3,0,1,2,2,2,1,0,3,2,1,0,3,3,2,1,1,"undo","undo",1,1,0,3,3,0,1,2,1,1,0,3,2,1,0,3,3,2,2,1,0,1,0,3,2,3,3,3,0,1,2,3,3,0,1,2,1,0,3,2,1,1,0,3],"1 background:0,0,0,3 background:1,0,0,0,0,0,\n0,0,0,2 background:2,0,0,0,0,0,\n0,0,3 background c_down c_right prev1:3,1 background c_up prev2:4,1,0,0,0,0,\n0,0,1 background c_left player:5,2,0,0,0,0,0,\n0,2,0,2,2,0,0,0,0,\n0,2,2,1,0,2,0,0,0,\n0,0,0,2,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,"1627892275012.8281"] + "Snakey Snakey Makes A Sixy", + ["title Snakey Snakey Makes A Sixy\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nrequire_player_movement\n\ncolor_palette 5\n\n========\nOBJECTS\n========\n\nBackground\nblack black\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\n\nprev1 a\ndarkgreen\n.000.\n0...0\n0...0\n0...0\n.000.\n\nprev2 b\ndarkgreen\n.000.\n0...0\n0...0\n0...0\n.000.\n\nPlayer\ngreen\n.000.\n0...0\n0...0\n0...0\n.000.\n\n\n\n1\npurple\n.....\n.....\n..0..\n.....\n.....\n\n\n\n2\nred\n.....\n.0...\n.....\n...0.\n.....\n\n\n3\npink\n.....\n.0...\n..0..\n...0.\n.....\n\n\n4\nyellow\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\n5\nlightgreen\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\n\n6\ngreen\n.....\n.000.\n.....\n.000.\n.....\n\n\nc_up\nblack\n..0..\n.....\n.....\n.....\n.....\n\nc_down\nblack\n.....\n.....\n.....\n.....\n..0..\n\nc_left\nblack\n.....\n.....\n0....\n.....\n.....\n\nc_right\nblack\n.....\n.....\n....0\n.....\n.....\n\nsprt_0_0 l\n#69ff05 black\n.....\n.....\n..1.0\n....0\n....0\n\nsprt_1_0 k\n#69ff05\n.....\n.0000\n00000\n.000.\n00000\n\nsprt_2_0 j \n#69ff05 black\n.....\n.....\n0.1..\n0....\n0....\n\nsprt_3_0 h\n#000000\n.....\n.....\n..0..\n.....\n.....\n\nsprt_0_1 g\n#ff1463 black\n.....\n....0\n..10.\n.....\n.....\n\nsprt_1_1 f\n#69ff05 #ff1463 #22630a black\n01000\n10002\n1.322\n1....\n.....\n\nsprt_2_1 d\n#22630a\n0....\n000..\n000..\n00000\n..000\n\nsprt_3_1 s\n#22630a black\n.....\n.....\n..1..\n.....\n0....\n\nsprt_0_2 z\nwhite black\n.....\n.....\n..1..\n.....\n.....\n\nsprt_1_2 x\nwhite black\n.....\n0.0.0\n..1..\n0.0.0\n.....\n\nsprt_2_2 0\n#22630a black\n....0\n....0\n..1..\n.....\n.....\n\nsprt_3_2 v\n#22630a black\n0....\n0....\n001..\n000..\n000..\n\nsprt_0_3 9\n#22630a black\n..00.\n...00\n..1.0\n.....\n.....\n\nsprt_1_3 n\n#22630a\n.....\n0....\n00000\n.0000\n.....\n\nsprt_2_3 m\n#22630a\n....0\n..000\n00000\n000..\n.....\n\nsprt_3_3 8\n#22630a black\n00...\n0....\n..1..\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = Target\n\nprev = prev1 or prev2\n\n\nnum = 1 or 2 or 3 or 4 or 5 or 6\n\nc = c_up or c_down or c_left or c_right\n\nbody = player or prev\n\n=======\nSOUNDS\n=======\n \n\nsfx1 55932906\nsfx2 4305306\nsfx3 6823106\nsfx4 83937501\nsfx5 65854702\n\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\n1,2,3,4,5,6\nPlayer, Wall, prev1, prev2\nc_up\nc_down\nc_left\nc_right\nsprt_0_0, sprt_1_0, sprt_2_0, sprt_3_0, sprt_0_1, sprt_1_1, sprt_2_1, sprt_3_1, sprt_0_2, sprt_1_2, sprt_2_2, sprt_3_2, sprt_0_3, sprt_1_3, sprt_2_3, sprt_3_3\n\n======\nRULES\n======\n\n\n[no num]->[1]\n\n[> player | prev ] -> cancel\n\n[ prev1 | player ] -> [ > prev1 | player ]\n[ prev2 | prev1 ] -> [ > prev2 | prev1 ]\n\nlate [ player 1 ] [ prev1 1 ] [ prev2 1] -> [ player 2 ] [ prev1 ] [ prev2 ] sfx1 again\nlate [ player 2 ] [ prev1 2 ] [ prev2 2] -> [ player 3 ] [ prev1 ] [ prev2 ] sfx2 again\nlate [ player 3 ] [ prev1 3 ] [ prev2 3] -> [ player 4 ] [ prev1 ] [ prev2 ] sfx3 again\nlate [ player 4 ] [ prev1 4 ] [ prev2 4] -> [ player 5 ] [ prev1 ] [ prev2 ] sfx4 again\nlate [ player 5 ] [ prev1 5 ] [ prev2 5] -> sfx5 win\n\n\n\nlate [ c ] -> []\n\nlate right [ body | body ] -> [ body c_right | body c_left ]\nlate down [ body | body ] -> [ body c_down | body c_up ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.........\n.........\n.........\n.........\n....p....\n....a....\n....b....\n.........\n.........\n\nmessage You did it, snakey snakey! You made a sixy!\n\nlkjh\ngfds\nzx0v\n9nm8\n", [0, 0, 3, 2, 2, 4, 2, 1, 1, 0, 0, 3, 3, 2, 3, 0, 0, 0, 1, 1, 2, 3, 0, 0, 1, 2, 2, 2, 1, 1, 0, 3, 0, 1, 2, 2, 2, 1, 0, 3, 2, 1, 0, 3, 3, 2, 1, 1, "undo", "undo", 1, 1, 0, 3, 3, 0, 1, 2, 1, 1, 0, 3, 2, 1, 0, 3, 3, 2, 2, 1, 0, 1, 0, 3, 2, 3, 3, 3, 0, 1, 2, 3, 3, 0, 1, 2, 1, 0, 3, 2, 1, 1, 0, 3], "1 background:0,0,0,3 background:1,0,0,0,0,0,\n0,0,0,2 background:2,0,0,0,0,0,\n0,0,3 background c_down c_right prev1:3,1 background c_up prev2:4,1,0,0,0,0,\n0,0,1 background c_left player:5,2,0,0,0,0,0,\n0,2,0,2,2,0,0,0,0,\n0,2,2,1,0,2,0,0,0,\n0,0,0,2,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, "1627892275012.8281"] ], [ - "Voitex Rasteriser [Demake of Vertex Dispenser Puzzle Mode]", - ["title Voitex Rasteriser [Demake of Vertex Dispenser Puzzle Mode]\nauthor increpare\nhomepage www.increpare.com\n\n(inspired by https://store.steampowered.com/app/102400/Vertex_Dispenser/ )\n\nrun_rules_on_level_start\n\nbackground_color darkblue\ntext_color lightgreen\n\ncolor_palette 1\n\n========\nOBJECTS\n========\n\nBackground\nblack black\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\n\nPlayer\ngray\n00.00\n0...0\n.....\n0...0\n00.00\n\n\n\n1\npurple\n.....\n.....\n..0..\n.....\n.....\n\n\n\n2\nred\n.....\n.0...\n.....\n...0.\n.....\n\n\n3\npink\n.....\n.0...\n..0..\n...0.\n.....\n\n\n4\nyellow\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\n5\nlightgreen\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\n\n6\ngreen\n.....\n.000.\n.....\n.000.\n.....\n\n\n\nplace \ndarkgray\n\nno1 \ntransparent\n\nno2\ntransparent\n\nno3\ntransparent\n\nno4\ntransparent\n\nno5\ntransparent\n\nno6\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = Target\n\n\n\nnum = 1 or 2 or 3 or 4 or 5 or 6\n\nnonum = no1 or no2 or no3 or no4 or no5 or no6\n\n=======\nSOUNDS\n=======\n \n\nsfx1 55932906\nsfx2 4305306\nsfx3 6823106\nsfx4 83937501\nsfx5 65854702\n\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nnum\nno1\nno2\nno3\nno4\nno5\nno6\nplace\nPlayer, Wall\n\n======\nRULES\n======\n\n\n[nonum] -> []\n[ 1 | place no num ] -> [ 1 | place no1 ]\n[ 2 | place no num ] -> [ 2 | place no2 ]\n[ 3 | place no num ] -> [ 3 | place no3 ]\n[ 4 | place no num ] -> [ 4 | place no4 ]\n[ 5 | place no num ] -> [ 5 | place no5 ]\n[ 6 | place no num ] -> [ 6 | place no6 ]\n\n[place no1 no2 no3 no4 no5 ] -> [ 6 ]\n[place no1 no2 no3 no4 ] -> [ 5 ] sfx5\n[place no1 no2 no3 ] -> [ 4 ] sfx4\n[place no1 no2 ] -> [ 3 ] sfx3\n[place no1 ] -> [ 2 ] sfx2\n[place ] -> [ 1 ] sfx1\n\n[action player no num] -> [ player action place ] again\n\n\n==============\nWINCONDITIONS\n==============\nsome 5\n\n=======\nLEVELS\n=======\n\n.........\n.........\n.........\n.........\n....p....\n.........\n.........\n.........\n.........\n\nmessage Congrats! If you liked this, check out the real Vertex Dispenser! :)\n\n11111111111\n12222222221\n12333333321\n12344444321\n12345554321\n12345654321\n12345554321\n12344444321\n12333333321\n12222222221\n11111111111\n",[0,4,3,2,4,1,4,4,1,4,2,4,3,4,2,4,1,1,4,0,4,0,3,0,4,1,4,2,4,1,4,2,4,2,4],"background:0,0,0,0,0,0,0,0,0,\n0,0,0,0,1 background:1,2 background:2,3 background player:3,0,0,\n0,0,0,1,2,3 background:4,1,0,0,\n0,0,0,2,1,2,0,0,0,\n0,0,0,1,2,1,2,0,0,\n0,0,0,0,1,0,0,0,0,\n0,0,0,0,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,"1627892333608.1028"] + "Voitex Rasteriser [Demake of Vertex Dispenser Puzzle Mode]", + ["title Voitex Rasteriser [Demake of Vertex Dispenser Puzzle Mode]\nauthor increpare\nhomepage www.increpare.com\n\n(inspired by https://store.steampowered.com/app/102400/Vertex_Dispenser/ )\n\nrun_rules_on_level_start\n\nbackground_color darkblue\ntext_color lightgreen\n\ncolor_palette 1\n\n========\nOBJECTS\n========\n\nBackground\nblack black\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\n\nPlayer\ngray\n00.00\n0...0\n.....\n0...0\n00.00\n\n\n\n1\npurple\n.....\n.....\n..0..\n.....\n.....\n\n\n\n2\nred\n.....\n.0...\n.....\n...0.\n.....\n\n\n3\npink\n.....\n.0...\n..0..\n...0.\n.....\n\n\n4\nyellow\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\n5\nlightgreen\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\n\n6\ngreen\n.....\n.000.\n.....\n.000.\n.....\n\n\n\nplace \ndarkgray\n\nno1 \ntransparent\n\nno2\ntransparent\n\nno3\ntransparent\n\nno4\ntransparent\n\nno5\ntransparent\n\nno6\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = Target\n\n\n\nnum = 1 or 2 or 3 or 4 or 5 or 6\n\nnonum = no1 or no2 or no3 or no4 or no5 or no6\n\n=======\nSOUNDS\n=======\n \n\nsfx1 55932906\nsfx2 4305306\nsfx3 6823106\nsfx4 83937501\nsfx5 65854702\n\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nnum\nno1\nno2\nno3\nno4\nno5\nno6\nplace\nPlayer, Wall\n\n======\nRULES\n======\n\n\n[nonum] -> []\n[ 1 | place no num ] -> [ 1 | place no1 ]\n[ 2 | place no num ] -> [ 2 | place no2 ]\n[ 3 | place no num ] -> [ 3 | place no3 ]\n[ 4 | place no num ] -> [ 4 | place no4 ]\n[ 5 | place no num ] -> [ 5 | place no5 ]\n[ 6 | place no num ] -> [ 6 | place no6 ]\n\n[place no1 no2 no3 no4 no5 ] -> [ 6 ]\n[place no1 no2 no3 no4 ] -> [ 5 ] sfx5\n[place no1 no2 no3 ] -> [ 4 ] sfx4\n[place no1 no2 ] -> [ 3 ] sfx3\n[place no1 ] -> [ 2 ] sfx2\n[place ] -> [ 1 ] sfx1\n\n[action player no num] -> [ player action place ] again\n\n\n==============\nWINCONDITIONS\n==============\nsome 5\n\n=======\nLEVELS\n=======\n\n.........\n.........\n.........\n.........\n....p....\n.........\n.........\n.........\n.........\n\nmessage Congrats! If you liked this, check out the real Vertex Dispenser! :)\n\n11111111111\n12222222221\n12333333321\n12344444321\n12345554321\n12345654321\n12345554321\n12344444321\n12333333321\n12222222221\n11111111111\n", [0, 4, 3, 2, 4, 1, 4, 4, 1, 4, 2, 4, 3, 4, 2, 4, 1, 1, 4, 0, 4, 0, 3, 0, 4, 1, 4, 2, 4, 1, 4, 2, 4, 2, 4], "background:0,0,0,0,0,0,0,0,0,\n0,0,0,0,1 background:1,2 background:2,3 background player:3,0,0,\n0,0,0,1,2,3 background:4,1,0,0,\n0,0,0,2,1,2,0,0,0,\n0,0,0,1,2,1,2,0,0,\n0,0,0,0,1,0,0,0,0,\n0,0,0,0,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, "1627892333608.1028"] ], [ - "Voitex Rasteriser 2 [2nd Demake of Vertex Dispenser Puzzle Mode]", - ["title Voitex Rasteriser 2 [2nd Demake of Vertex Dispenser Puzzle Mode]\nauthor increpare\nhomepage www.increpare.com\n\n(inspired by https://store.steampowered.com/app/102400/Vertex_Dispenser/ )\n\nrun_rules_on_level_start\n\nbackground_color darkblue\ntext_color red\n\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\n\nPlayer\ngray\n00.00\n0...0\n.....\n0...0\n00.00\n\n\nfixed\ndarkgreen\n\n\n1\npurple\n.....\n.....\n..0..\n.....\n.....\n\n\n\n2\nred\n.....\n..0..\n.....\n.....\n.....\n\n\n3\npink\n.....\n...0.\n.....\n.....\n.....\n\n\n4\nyellow\n.....\n.....\n...0.\n.....\n.....\n\n\n5\nlightgreen\n.....\n.....\n.....\n...0.\n.....\n\n\n6\ngreen\n.....\n.....\n.....\n..0..\n.....\n\n\n7\nblue\n.....\n.....\n.....\n.0...\n.....\n\n\n8\nlightblue\n.....\n.....\n.0...\n.....\n.....\n\n\n9\nwhite\n.....\n.0...\n.....\n.....\n.....\n\ntemp\nred\n\n\n\n\np1\npurple black darkgray\n.....\n.222.\n.202.\n.222.\n.....\n\n\n\np2\nred black darkgray\n.....\n.202.\n.212.\n.222.\n.....\n\n\np3\npink black darkgray\n.....\n.210.\n.212.\n.222.\n.....\n\n\np4\nyellow black darkgray\n.....\n.211.\n.210.\n.222.\n.....\n\n\np5\nlightgreen black darkgray\n.....\n.211.\n.211.\n.220.\n.....\n\n\np6\ngreen black darkgray\n.....\n.211.\n.211.\n.201.\n.....\n\n\np7\nblue black darkgray\n.....\n.211.\n.211.\n.011.\n.....\n\np8\nlightblue black darkgray\n.....\n.211.\n.011.\n.111.\n.....\n\n\np9\nwhite black darkgray\n.....\n.011.\n.111.\n.111.\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player \n\n\n\nnum = 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9\nplaced = p1 or p2 or p3 or p4 or p5 or p6 or p7 or p8 or p9\n\n\n=======\nSOUNDS\n=======\n \n\nsfx1 55932906\nsfx2 4305306\nsfx3 6823106\nsfx4 83937501\nsfx5 65854702\n\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n1\n2\n3\n4\n5\n6\n7\n8\n9\ntemp\nfixed\np1\np2\np3\np4\np5\np6\np7\np8\np9\nPlayer\n\n======\nRULES\n======\n\n[action player no 1 no fixed ] -> [ player action 1 p1 fixed temp]\n[action player no 2 no fixed ] -> [ player action 2 p2 fixed temp]\n[action player no 3 no fixed ] -> [ player action 3 p3 fixed temp]\n[action player no 4 no fixed ] -> [ player action 4 p4 fixed temp]\n[action player no 5 no fixed ] -> [ player action 5 p5 fixed temp]\n[action player no 6 no fixed ] -> [ player action 6 p6 fixed temp]\n[action player no 7 no fixed ] -> [ player action 7 p7 fixed temp]\n[action player no 8 no fixed ] -> [ player action 8 p8 fixed temp]\n[action player no 9 no fixed ] -> [ player action 9 p9 fixed temp]\n\n\nright [ action num temp | ] -> [ action num temp | > num ]\n+ [ perpendicular num | ] -> [ perpendicular num | num ]\n[orthogonal num]->[num]\n\n\nleft [ action num temp | ] -> [ action num temp | > num ]\n+ [ perpendicular num | ] -> [ perpendicular num | num ]\n[orthogonal num]->[num]\n\n\nup [ action num temp | ] -> [ action num temp | > num ]\n+ [ perpendicular num | ] -> [ perpendicular num | num ]\n[orthogonal num]->[num]\n\n\ndown [ action num temp | ] -> [ action num temp | > num ]\n+ [ perpendicular num | ] -> [ perpendicular num | num ]\n[orthogonal num]->[num]\n\n[temp]->[]\n\n==============\nWINCONDITIONS\n==============\nsome 9\n\n=======\nLEVELS\n=======\n\nmessage CAN YOU COUNT THE NINE COLUORS OF THE RAINBOW?\n\n...........\n...........\n...........\n...........\n...........\n.....p.....\n...........\n...........\n...........\n...........\n...........\n\nmessage TOP RAINBOW COLUOR COUNTING! If you liked this, check out the real Vertex Dispenser! :)\n\n",[0,4,3,3,4,2,2,1,4,0,4,0,0,0,4,2,4,1,4,1,4,0,4,3,4,0,4,3,4,4,3,2,4,4,3,4,2,4,4,2,4,4],"background:0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n0,1 background:1,1 2 background:2,2,2 background:3,0,0,0,0,0,0,\n3,1 2 4 background:4,1 2 3 4 background fixed p1:5,1 2 3 4 background fixed p2:6,1 2 3 background:7,1,0,0,0,0,0,\n2 3 background:8,6,1 2 3 4 background fixed p4:9,1 2 3 4 background fixed p3:10,1 2 3 background fixed p1:11,2,2,1,0,0,0,\n8,10,5,6,7,1 2 background fixed p2:12,1 2 background fixed p1:13,1,0,0,0,\n3 background:14,1 3 4 background:15,9,1 2 3 4 background:16,11,7,2,1,0,0,0,\n0,1 4 background:17,1 2 4 background fixed p1:18,6,1 2 3 background fixed p3 player:19,1 3 background:20,0,0,0,0,0,\n0,1,2,7,8,14,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n",1,"1627892374590.2808"] + "Voitex Rasteriser 2 [2nd Demake of Vertex Dispenser Puzzle Mode]", + ["title Voitex Rasteriser 2 [2nd Demake of Vertex Dispenser Puzzle Mode]\nauthor increpare\nhomepage www.increpare.com\n\n(inspired by https://store.steampowered.com/app/102400/Vertex_Dispenser/ )\n\nrun_rules_on_level_start\n\nbackground_color darkblue\ntext_color red\n\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\n\nPlayer\ngray\n00.00\n0...0\n.....\n0...0\n00.00\n\n\nfixed\ndarkgreen\n\n\n1\npurple\n.....\n.....\n..0..\n.....\n.....\n\n\n\n2\nred\n.....\n..0..\n.....\n.....\n.....\n\n\n3\npink\n.....\n...0.\n.....\n.....\n.....\n\n\n4\nyellow\n.....\n.....\n...0.\n.....\n.....\n\n\n5\nlightgreen\n.....\n.....\n.....\n...0.\n.....\n\n\n6\ngreen\n.....\n.....\n.....\n..0..\n.....\n\n\n7\nblue\n.....\n.....\n.....\n.0...\n.....\n\n\n8\nlightblue\n.....\n.....\n.0...\n.....\n.....\n\n\n9\nwhite\n.....\n.0...\n.....\n.....\n.....\n\ntemp\nred\n\n\n\n\np1\npurple black darkgray\n.....\n.222.\n.202.\n.222.\n.....\n\n\n\np2\nred black darkgray\n.....\n.202.\n.212.\n.222.\n.....\n\n\np3\npink black darkgray\n.....\n.210.\n.212.\n.222.\n.....\n\n\np4\nyellow black darkgray\n.....\n.211.\n.210.\n.222.\n.....\n\n\np5\nlightgreen black darkgray\n.....\n.211.\n.211.\n.220.\n.....\n\n\np6\ngreen black darkgray\n.....\n.211.\n.211.\n.201.\n.....\n\n\np7\nblue black darkgray\n.....\n.211.\n.211.\n.011.\n.....\n\np8\nlightblue black darkgray\n.....\n.211.\n.011.\n.111.\n.....\n\n\np9\nwhite black darkgray\n.....\n.011.\n.111.\n.111.\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player \n\n\n\nnum = 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9\nplaced = p1 or p2 or p3 or p4 or p5 or p6 or p7 or p8 or p9\n\n\n=======\nSOUNDS\n=======\n \n\nsfx1 55932906\nsfx2 4305306\nsfx3 6823106\nsfx4 83937501\nsfx5 65854702\n\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n1\n2\n3\n4\n5\n6\n7\n8\n9\ntemp\nfixed\np1\np2\np3\np4\np5\np6\np7\np8\np9\nPlayer\n\n======\nRULES\n======\n\n[action player no 1 no fixed ] -> [ player action 1 p1 fixed temp]\n[action player no 2 no fixed ] -> [ player action 2 p2 fixed temp]\n[action player no 3 no fixed ] -> [ player action 3 p3 fixed temp]\n[action player no 4 no fixed ] -> [ player action 4 p4 fixed temp]\n[action player no 5 no fixed ] -> [ player action 5 p5 fixed temp]\n[action player no 6 no fixed ] -> [ player action 6 p6 fixed temp]\n[action player no 7 no fixed ] -> [ player action 7 p7 fixed temp]\n[action player no 8 no fixed ] -> [ player action 8 p8 fixed temp]\n[action player no 9 no fixed ] -> [ player action 9 p9 fixed temp]\n\n\nright [ action num temp | ] -> [ action num temp | > num ]\n+ [ perpendicular num | ] -> [ perpendicular num | num ]\n[orthogonal num]->[num]\n\n\nleft [ action num temp | ] -> [ action num temp | > num ]\n+ [ perpendicular num | ] -> [ perpendicular num | num ]\n[orthogonal num]->[num]\n\n\nup [ action num temp | ] -> [ action num temp | > num ]\n+ [ perpendicular num | ] -> [ perpendicular num | num ]\n[orthogonal num]->[num]\n\n\ndown [ action num temp | ] -> [ action num temp | > num ]\n+ [ perpendicular num | ] -> [ perpendicular num | num ]\n[orthogonal num]->[num]\n\n[temp]->[]\n\n==============\nWINCONDITIONS\n==============\nsome 9\n\n=======\nLEVELS\n=======\n\nmessage CAN YOU COUNT THE NINE COLUORS OF THE RAINBOW?\n\n...........\n...........\n...........\n...........\n...........\n.....p.....\n...........\n...........\n...........\n...........\n...........\n\nmessage TOP RAINBOW COLUOR COUNTING! If you liked this, check out the real Vertex Dispenser! :)\n\n", [0, 4, 3, 3, 4, 2, 2, 1, 4, 0, 4, 0, 0, 0, 4, 2, 4, 1, 4, 1, 4, 0, 4, 3, 4, 0, 4, 3, 4, 4, 3, 2, 4, 4, 3, 4, 2, 4, 4, 2, 4, 4], "background:0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n0,1 background:1,1 2 background:2,2,2 background:3,0,0,0,0,0,0,\n3,1 2 4 background:4,1 2 3 4 background fixed p1:5,1 2 3 4 background fixed p2:6,1 2 3 background:7,1,0,0,0,0,0,\n2 3 background:8,6,1 2 3 4 background fixed p4:9,1 2 3 4 background fixed p3:10,1 2 3 background fixed p1:11,2,2,1,0,0,0,\n8,10,5,6,7,1 2 background fixed p2:12,1 2 background fixed p1:13,1,0,0,0,\n3 background:14,1 3 4 background:15,9,1 2 3 4 background:16,11,7,2,1,0,0,0,\n0,1 4 background:17,1 2 4 background fixed p1:18,6,1 2 3 background fixed p3 player:19,1 3 background:20,0,0,0,0,0,\n0,1,2,7,8,14,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n", 1, "1627892374590.2808"] ], [ - "All Green and Blue on Yellow", - ["title All Green and Blue on Yellow\nauthor increpare\nhomepage www.increpare.com\nnoaction\n\ncolor_palette 4\n\nbackground_color darkbrown\ntext_color orange\n\n\n(\nmany levels made with the puzzlescript level generators \n\nhttps://dekeyser.ch/puzzlescriptmis/\n\nor\n\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\n========\nOBJECTS\n========\n\nBackground\ngray\n\n\nTarget\nyellow\n.....\n.000.\n.000.\n.000.\n.....\n\nWall\ndarkBROWN \n\nPlayer\nred darkred\n..0..\n..1..\n01010\n..1..\n..0..\n\nCrateH \nblue Yellow transparent darkblue\n00000\n20002\n22322\n20002\n00000\n\n\n\nCrateV \ntransparent orange green darkgreen\n20002\n22022\n22322\n22022\n20002\n\n=======\nLEGEND\n=======\n\ncrate = crateh or cratev\n\n\n. = Background\n# = Wall\nP = Player\nh = crateh\nv = cratev\na = crateh and target\nm = cratev and target\nl = player and target\nO = Target\nobstacle = wall or player or crateh or cratev\n@ = cratev and target\n\n* = cratev\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\nhorizontal [ > Player | Cratev ] -> [ > Player | > Cratev ]\nvertical [ > Player | Crateh ] -> [ > Player | > Crateh ]\n\n[> crate | obstacle ] -> cancel\n\nhorizontal [ > Player | Crateh | no obstacle ] -> [ | Crateh | player ]\nvertical [ > Player | Cratev | no obstacle ] -> [ | Cratev | player ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 5\n(ok starting level?)\n######\n#.o###\n#h.###\n#...p#\n#.h..#\n#o.###\n######\n\n\nmessage Level 2 of 5\n(simple but ok!)\n######\n#....#\n#.ho.#\n#pva.#\n#.om.#\n#....#\n######\n\n\nmessage Level 3 of 5\n(pleasing - nicht so schwierig!)\n..m.\nom..\npava\n....\n\n\nmessage Level 4 of 5\n(middle-hard, but decent!)\n.#..\n.m..\n..va\n#.m.\np..o\n\n\nmessage Level 5 of 5\n\n(hard!)\n#.a.\nohv.\np.m.\naoh.\n..o.\n\n(\n\n\n######\n#..p.#\n#.va.#\n#.om.#\n#....#\n######\n\n)\n\n\n(\n\n==========\nGENERATION\n==========\n\nchoose 8 option 0.6 [Wall] -> []\n+[]->[]\n\nchoose 8 option 0.6 [No Obstacle] -> [Wall]\n+[]->[]\n\nchoose 2 option 0.5 [ no wall no crate no player ] [no wall no player no target ] -> [ crateh ] [ target]\n+ option 0.5 [ no wall no crate no player ] [no wall no player no target ] -> [ cratev ] [ target]\n\n\n\n\n==========\nGENERATION\n==========\n\n= randomly remove or add 20 walls with prob. 0.4\nchoose 4 option 0.5 [crate] -> [crateh]\n+ option 0.5 [crate]->[cratev]\n+ option 0.1 [ crate | no crate no wall no player] -> [ | crate] \n+ option 0.05 [ no crate no wall no player ] [ no target no wall ]-> [ crateh ] [ target]\n+ option 0.05 [ no crate no wall no player ] [no target no wall ]-> [ cratev] [target]\n+ option 0.05 [ player ] [ no player no crate no wall]->[] [player]\n+ option 0.1 [ crate ] [ target ]->[ no crate] [ ]\n\n\nchoose 2 option 0.5 [ wall]->[]\n+ option 0.6 []->[]\n+ option 0.3 [no wall no player ] -> [wall]\n\n\n\n)\n",[2,3,0,1,0,0,3,3,2,2,1,2,1,0,3,0,1,2,1,0,3,0,3,0,2,2,1,0],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,background cratev:2,2,\n1,0,0,background crateh:3,background player:4,1,\nbackground target:5,1,0,0,1,5,\n5,background crateh target:6,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n",3,"1627892394944.1912"] + "All Green and Blue on Yellow", + ["title All Green and Blue on Yellow\nauthor increpare\nhomepage www.increpare.com\nnoaction\n\ncolor_palette 4\n\nbackground_color darkbrown\ntext_color orange\n\n\n(\nmany levels made with the puzzlescript level generators \n\nhttps://dekeyser.ch/puzzlescriptmis/\n\nor\n\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\n========\nOBJECTS\n========\n\nBackground\ngray\n\n\nTarget\nyellow\n.....\n.000.\n.000.\n.000.\n.....\n\nWall\ndarkBROWN \n\nPlayer\nred darkred\n..0..\n..1..\n01010\n..1..\n..0..\n\nCrateH \nblue Yellow transparent darkblue\n00000\n20002\n22322\n20002\n00000\n\n\n\nCrateV \ntransparent orange green darkgreen\n20002\n22022\n22322\n22022\n20002\n\n=======\nLEGEND\n=======\n\ncrate = crateh or cratev\n\n\n. = Background\n# = Wall\nP = Player\nh = crateh\nv = cratev\na = crateh and target\nm = cratev and target\nl = player and target\nO = Target\nobstacle = wall or player or crateh or cratev\n@ = cratev and target\n\n* = cratev\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\nhorizontal [ > Player | Cratev ] -> [ > Player | > Cratev ]\nvertical [ > Player | Crateh ] -> [ > Player | > Crateh ]\n\n[> crate | obstacle ] -> cancel\n\nhorizontal [ > Player | Crateh | no obstacle ] -> [ | Crateh | player ]\nvertical [ > Player | Cratev | no obstacle ] -> [ | Cratev | player ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 5\n(ok starting level?)\n######\n#.o###\n#h.###\n#...p#\n#.h..#\n#o.###\n######\n\n\nmessage Level 2 of 5\n(simple but ok!)\n######\n#....#\n#.ho.#\n#pva.#\n#.om.#\n#....#\n######\n\n\nmessage Level 3 of 5\n(pleasing - nicht so schwierig!)\n..m.\nom..\npava\n....\n\n\nmessage Level 4 of 5\n(middle-hard, but decent!)\n.#..\n.m..\n..va\n#.m.\np..o\n\n\nmessage Level 5 of 5\n\n(hard!)\n#.a.\nohv.\np.m.\naoh.\n..o.\n\n(\n\n\n######\n#..p.#\n#.va.#\n#.om.#\n#....#\n######\n\n)\n\n\n(\n\n==========\nGENERATION\n==========\n\nchoose 8 option 0.6 [Wall] -> []\n+[]->[]\n\nchoose 8 option 0.6 [No Obstacle] -> [Wall]\n+[]->[]\n\nchoose 2 option 0.5 [ no wall no crate no player ] [no wall no player no target ] -> [ crateh ] [ target]\n+ option 0.5 [ no wall no crate no player ] [no wall no player no target ] -> [ cratev ] [ target]\n\n\n\n\n==========\nGENERATION\n==========\n\n= randomly remove or add 20 walls with prob. 0.4\nchoose 4 option 0.5 [crate] -> [crateh]\n+ option 0.5 [crate]->[cratev]\n+ option 0.1 [ crate | no crate no wall no player] -> [ | crate] \n+ option 0.05 [ no crate no wall no player ] [ no target no wall ]-> [ crateh ] [ target]\n+ option 0.05 [ no crate no wall no player ] [no target no wall ]-> [ cratev] [target]\n+ option 0.05 [ player ] [ no player no crate no wall]->[] [player]\n+ option 0.1 [ crate ] [ target ]->[ no crate] [ ]\n\n\nchoose 2 option 0.5 [ wall]->[]\n+ option 0.6 []->[]\n+ option 0.3 [no wall no player ] -> [wall]\n\n\n\n)\n", [2, 3, 0, 1, 0, 0, 3, 3, 2, 2, 1, 2, 1, 0, 3, 0, 1, 2, 1, 0, 3, 0, 3, 0, 2, 2, 1, 0], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,background cratev:2,2,\n1,0,0,background crateh:3,background player:4,1,\nbackground target:5,1,0,0,1,5,\n5,background crateh target:6,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n", 3, "1627892394944.1912"] ], [ - "ALL GREEN TO BLUE", - ["title ALL GREEN TO BLUE\nauthor increpare\nhomepage www.increpare.com\nbackground_color black\n\ncolor_palette 5\n\n(\nmany levels made with the puzzlescript level generators \n\nhttps://dekeyser.ch/puzzlescriptmis/\n\nor\n\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\n\n========\nOBJECTS\n========\n\nBackground\ngray\n\n\nWall\nBROWN \n\nbtile\nblack\n\nPlayer\npink\n.000.\n.0.0.\n00000\n.000.\n.0.0.\n\nCrateH \nblue Yellow transparent darkblue\n00000\n20002\n22322\n20002\n00000\n\n\n\nCrateV \ntransparent orange green darkgreen\n20002\n22022\n22322\n22022\n20002\n\n=======\nLEGEND\n=======\n\ncrate = crateh or cratev\n\n\n. = Background\n# = Wall\nP = Player\nh = crateh\nv = cratev\nobstacle = wall or player or crateh or cratev\n* = cratev\nO = background\n@ = cratev\n, = btile\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx1 58154305\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nbtile\n\n======\nRULES\n======\n\nhorizontal [ > Player | Cratev ] -> [ > Player | > Cratev ]\nvertical [ > Player | Crateh ] -> [ > Player | > Crateh ]\n\n[> crate | obstacle ] -> cancel\n\nhorizontal [ > Player | Crateh | no obstacle ] -> [ | Cratev | player ] sfx1\nvertical [ > Player | Cratev | no obstacle ] -> [ | Crateh | player ] sfx1\n\n==============\nWINCONDITIONS\n==============\n\nno cratev\n\n=======\nLEVELS\n=======\n\n\n(GUT)\n\n(ok 1. oder 2. Level)\n\nmessage Chapter 1/3 : Twistoban, Stage 1/3\n\n######\n#....#\n#.#p.#\n#.vv.#\n#..h.#\n#....#\n######\n\n\nmessage Chapter 1/3 : Twistoban, Stage 2/3\n\n(tricky!)\n\n,,,,,,#####\n,,,,,,#...#\n,,,,,,#.#.#\n#######.#v#\n#.p.v.v.v.#\n#.#.#.#.###\n#.......#,,\n#########,,\n\nmessage Chapter 1/3 : Twistoban, Stage 3/3\n\n(not bad 4/6)\n#####,\n#...##\n#.vp.#\n##vv.#\n,#.v.#\n,###.#\n,,,###\n\n\n\nmessage Chapter 2/3 : Gates, Stage 1/3\n\n\n(Gates 1)\n.h..\n.h..\n.h..\n.h..\nvh..\nph..\nvh..\n.h..\n.h..\n.h..\n.h..\n\nmessage Chapter 2/3 : Gates, Stage 2/3\n\n(gates 2)\n(hard, non-trivial)\n.h.\n.h.\n.h.\n.h.\nvh.\nph.\nvh.\n.h.\n.h.\n.h.\n.h.\n\n\n\n\nmessage Chapter 2/3 : Gates, Stage 3/3\n\n(fun to work through)\n.h.h.h.\n.h.h.h.\n.h.h.h.\n.h.h.h.\nph.h.v.\n.h.h.h.\n.h.h.h.\n.h.h.h.\n.h.h.h.\n\n\n\n\n\nmessage Chapter 3/3 : Claustrophobia, Stage 1/4\n\n\n(tells an ok story, 4/6)\n...\n.hv\nhh.\n..v\nph.\n\nmessage Chapter 3/3 : Claustrophobia, Stage 2/4\n\n(nice Stage! 5/6)\n.h.\nvh.\n.hv\nph.\n\nmessage Chapter 3/3 : Claustrophobia, Stage 3/4\n\n(hard / satisfying to solve 4/6)\n....h\nvhhv.\n.hpvh\n.h...\n\nmessage Chapter 3/3 : Claustrophobia, Stage 4/4\n\n(einfach aber spaß? 3/6)\n\n.h.\npv.\nvvv\n...\n\nmessage Epilogue\n\n.............\n.h.h.hvh.h.h.\n.h.h.h.h.h.h.\n.hvh.h.h.h.h.\n...h.h.h.h.h.\n.hvh.hvh.hvh.\n......p......\n.h.h.h.h.hvh.\n.h.h.h.h.h.h.\n.h.h.h.h.h.h.\n.hvhvh.h.h.h.\n.............\n\n\n",[0,3,0,1,2,3,3,0,3,2],"background:0,0,0,0,\nbackground crateh:1,0,background cratev:2,0,\n0,0,0,1,\n1,2,0,1,\n1,1,1,1,\n1,1,0,0,\n0,0,0,0,\n0,0,0,0,\n0,0,0,0,\n1,background player:3,0,0,\n0,0,0,0,\n",7,"1627892412039.6033"] + "ALL GREEN TO BLUE", + ["title ALL GREEN TO BLUE\nauthor increpare\nhomepage www.increpare.com\nbackground_color black\n\ncolor_palette 5\n\n(\nmany levels made with the puzzlescript level generators \n\nhttps://dekeyser.ch/puzzlescriptmis/\n\nor\n\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\n\n========\nOBJECTS\n========\n\nBackground\ngray\n\n\nWall\nBROWN \n\nbtile\nblack\n\nPlayer\npink\n.000.\n.0.0.\n00000\n.000.\n.0.0.\n\nCrateH \nblue Yellow transparent darkblue\n00000\n20002\n22322\n20002\n00000\n\n\n\nCrateV \ntransparent orange green darkgreen\n20002\n22022\n22322\n22022\n20002\n\n=======\nLEGEND\n=======\n\ncrate = crateh or cratev\n\n\n. = Background\n# = Wall\nP = Player\nh = crateh\nv = cratev\nobstacle = wall or player or crateh or cratev\n* = cratev\nO = background\n@ = cratev\n, = btile\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx1 58154305\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nbtile\n\n======\nRULES\n======\n\nhorizontal [ > Player | Cratev ] -> [ > Player | > Cratev ]\nvertical [ > Player | Crateh ] -> [ > Player | > Crateh ]\n\n[> crate | obstacle ] -> cancel\n\nhorizontal [ > Player | Crateh | no obstacle ] -> [ | Cratev | player ] sfx1\nvertical [ > Player | Cratev | no obstacle ] -> [ | Crateh | player ] sfx1\n\n==============\nWINCONDITIONS\n==============\n\nno cratev\n\n=======\nLEVELS\n=======\n\n\n(GUT)\n\n(ok 1. oder 2. Level)\n\nmessage Chapter 1/3 : Twistoban, Stage 1/3\n\n######\n#....#\n#.#p.#\n#.vv.#\n#..h.#\n#....#\n######\n\n\nmessage Chapter 1/3 : Twistoban, Stage 2/3\n\n(tricky!)\n\n,,,,,,#####\n,,,,,,#...#\n,,,,,,#.#.#\n#######.#v#\n#.p.v.v.v.#\n#.#.#.#.###\n#.......#,,\n#########,,\n\nmessage Chapter 1/3 : Twistoban, Stage 3/3\n\n(not bad 4/6)\n#####,\n#...##\n#.vp.#\n##vv.#\n,#.v.#\n,###.#\n,,,###\n\n\n\nmessage Chapter 2/3 : Gates, Stage 1/3\n\n\n(Gates 1)\n.h..\n.h..\n.h..\n.h..\nvh..\nph..\nvh..\n.h..\n.h..\n.h..\n.h..\n\nmessage Chapter 2/3 : Gates, Stage 2/3\n\n(gates 2)\n(hard, non-trivial)\n.h.\n.h.\n.h.\n.h.\nvh.\nph.\nvh.\n.h.\n.h.\n.h.\n.h.\n\n\n\n\nmessage Chapter 2/3 : Gates, Stage 3/3\n\n(fun to work through)\n.h.h.h.\n.h.h.h.\n.h.h.h.\n.h.h.h.\nph.h.v.\n.h.h.h.\n.h.h.h.\n.h.h.h.\n.h.h.h.\n\n\n\n\n\nmessage Chapter 3/3 : Claustrophobia, Stage 1/4\n\n\n(tells an ok story, 4/6)\n...\n.hv\nhh.\n..v\nph.\n\nmessage Chapter 3/3 : Claustrophobia, Stage 2/4\n\n(nice Stage! 5/6)\n.h.\nvh.\n.hv\nph.\n\nmessage Chapter 3/3 : Claustrophobia, Stage 3/4\n\n(hard / satisfying to solve 4/6)\n....h\nvhhv.\n.hpvh\n.h...\n\nmessage Chapter 3/3 : Claustrophobia, Stage 4/4\n\n(einfach aber spaß? 3/6)\n\n.h.\npv.\nvvv\n...\n\nmessage Epilogue\n\n.............\n.h.h.hvh.h.h.\n.h.h.h.h.h.h.\n.hvh.h.h.h.h.\n...h.h.h.h.h.\n.hvh.hvh.hvh.\n......p......\n.h.h.h.h.hvh.\n.h.h.h.h.h.h.\n.h.h.h.h.h.h.\n.hvhvh.h.h.h.\n.............\n\n\n", [0, 3, 0, 1, 2, 3, 3, 0, 3, 2], "background:0,0,0,0,\nbackground crateh:1,0,background cratev:2,0,\n0,0,0,1,\n1,2,0,1,\n1,1,1,1,\n1,1,0,0,\n0,0,0,0,\n0,0,0,0,\n0,0,0,0,\n1,background player:3,0,0,\n0,0,0,0,\n", 7, "1627892412039.6033"] ], [ - "5-junctions-maker / 5kreuzungenmacher", - ["title 5-junctions-maker / 5kreuzungenmacher\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nnoaction\n\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\n\na_up\nblack green\n..1..\n.111.\n11111\n..1..\n..1..\n\n\n\na_down\nblack blue\n..1..\n..1..\n11111\n.111.\n..1..\n\n\na_left\nblack pink\n..1..\n.11..\n11111\n.11..\n..1..\n\na_right\nblack red\n..1..\n..11.\n11111\n..11.\n..1..\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkblue\n00000\n0...0\n0...0\n0...0\n00000\n\nPlayer\nyellow\n00.00\n0...0\n.....\n0...0\n00.00\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\nquelle \nwhite \n00000\n00000\n00000\n00000\n00000\n\nquelle_kreuzung \nwhite\n.....\n.....\n..0..\n.....\n.....\n\nquelle_verbindung_n\nlightgray\n..0..\n..0..\n.....\n.....\n.....\n\nquelle_verbindung_s\nlightgray\n.....\n.....\n.....\n..0..\n..0..\n\nquelle_verbindung_e\nlightgray\n.....\n.....\n...00\n.....\n.....\n\nquelle_verbindung_w\nlightgray\n.....\n.....\n00...\n.....\n.....\n\ncounter 1\ndarkblue darkblue\n..0..\n..0..\n00100\n..0..\n..0..\n\ncounterfill\ngray lightgray\n..0..\n..0..\n00100\n..0..\n..0..\n\ndeckle\nblack\n\ntemp t\ngreen\n\n\n\ne_0_0 g \n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_1_0 h \n#8a8a8a white\n..0..\n..0..\n00100\n.....\n.....\n\ne_2_0 j \n#8a8a8a white\n..0..\n..0..\n00100\n.....\n.....\n\ne_3_0 k\n#8a8a8a white\n...0.\n...0.\n00010\n.....\n.....\n\ne_4_0 ?\n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_0_1 b\n#8a8a8a white\n..0..\n..0..\n001..\n..0..\n..0..\n\ne_1_1 n\nwhite\n0..0.\n0..0.\n0000.\n...0.\n0000.\n\ne_2_1 m \nwhite\n0000.\n0..0.\n0..0.\n0..0.\n0000.\n\ne_3_1 ,\nwhite\n0..0.\n0..0.\n0..0.\n0..0.\n0000.\n\ne_4_1 2\n#8a8a8a white\n..0..\n..0..\n..100\n..0..\n..0..\n\ne_0_2 3\n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_1_2 4\n#8a8a8a\n.....\n.....\n00000\n.....\n.....\n\ne_2_2 5\n#8a8a8a\n.....\n.....\n00000\n.....\n.....\n\ne_3_2 6\n#8a8a8a\n.....\n.....\n00000\n.....\n.....\n\ne_4_2 7\n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_0_3 8\n#8a8a8a\n..0..\n..0..\n..0..\n..0..\n..0..\n\ne_1_3 9\nwhite\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n00000\n\ne_2_3 0\nwhite\n.000.\n..0..\n..0..\n..0..\n.000.\n\ne_3_3 d\nwhite\n.00..\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n\ne_4_3 f\n#8a8a8a\n..0..\n..0..\n..0..\n..0..\n..0..\n\ne_0_4 w\n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_1_4 e\n#8a8a8a white\n.....\n.....\n00100\n..0..\n..0..\n\ne_2_4 y\n#8a8a8a white\n.....\n.....\n00100\n..0..\n..0..\n\ne_3_4 u\n#8a8a8a white\n.....\n.....\n00100\n..0..\n..0..\n\ne_4_4 i\n#8a8a8a white\n..0..\n..0..\n001..\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background and deckle\n# = Wall and deckle\n* = Crate and deckle\n@ = Crate and Target and deckle\nO = Target and deckle\na = a_up or a_down or a_left or a_right\ns = player and a_up and deckle\np = player and a_down and deckle\nq = player and a_left and deckle\nr = player and a_right and deckle\n\nz = a_up and deckle\nx = a_down and deckle\nc = a_left and deckle\nv = a_right and deckle\n\nl = quelle and deckle\nquelle_verbindung = quelle_verbindung_n or quelle_verbindung_s or quelle_verbindung_e or quelle_verbindung_w\n\n\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\na\ndeckle\nPlayer, Wall, Crate\nquelle\nquelle_verbindung_n\nquelle_verbindung_s\nquelle_verbindung_e\nquelle_verbindung_w\nquelle_kreuzung\ncounter\ncounterfill\ntemp\ng,h,j,k,e_4_0,b,n,m,e_3_1,2,3,4,5,6,7,8,9,0,d,f,w,e,t,y,u,i\n\n======\nRULES\n======\n\n[ > player | wall ] -> cancel\n[ > player | quelle ] -> cancel\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate up [ no quelle no wall | player ] -> [ a_up | player ]\nlate down [ no quelle no wall | player ] -> [ a_down | player ]\nlate left [ no quelle no wall | player ] -> [ a_left | player ]\nlate right [ no quelle no wall | player ] -> [ a_right | player ]\n\nlate [ quelle_verbindung ] -> []\nlate [ quelle_kreuzung ] -> []\n\nlate [ player ] -> [ player no a]\n\n\nlate up [ a_up | no wall no quelle no a_down ] -> [ a_up quelle_verbindung_n | quelle_verbindung_s]\nlate down [ a_down | no wall no quelle no a_up ] -> [ a_down quelle_verbindung_s | quelle_verbindung_n]\nlate left [ a_left | no wall no quelle no a_right ] -> [ a_left quelle_verbindung_w | quelle_verbindung_e]\nlate right [ a_right | no wall no quelle no a_left ] -> [ a_right quelle_verbindung_e | quelle_verbindung_w]\n\n\n\nlate up [ quelle | no a_down no wall ] -> [ quelle | quelle_kreuzung quelle_verbindung_s ]\nlate down [ quelle | no a_up no wall ] -> [ quelle | quelle_kreuzung quelle_verbindung_n ]\nlate left [ quelle | no a_right no wall ] -> [ quelle | quelle_kreuzung quelle_verbindung_e ]\nlate right [ quelle | no a_left no wall ] -> [ quelle | quelle_kreuzung quelle_verbindung_w ]\n\nlate left [ a_left quelle_kreuzung quelle_verbindung_w | no quelle_kreuzung quelle_verbindung_e ] -> [ a_left quelle_kreuzung quelle_verbindung_w | quelle_kreuzung quelle_verbindung_e ] \n+ late right [ a_right quelle_kreuzung quelle_verbindung_e | no quelle_kreuzung quelle_verbindung_w ] -> [ a_right quelle_kreuzung quelle_verbindung_e | quelle_kreuzung quelle_verbindung_w ] \n+ late up [ a_up quelle_kreuzung quelle_verbindung_n | no quelle_kreuzung quelle_verbindung_s ] -> [ a_up quelle_kreuzung quelle_verbindung_n | quelle_kreuzung quelle_verbindung_s ] \n+ late down [ a_down quelle_kreuzung quelle_verbindung_s | no quelle_kreuzung quelle_verbindung_n ] -> [ a_down quelle_kreuzung quelle_verbindung_s | quelle_kreuzung quelle_verbindung_n ] \n\nlate [ quelle_verbindung no quelle_kreuzung ] -> []\n\nlate left [ quelle_verbindung_w | no quelle_verbindung_e no quelle ] -> [ | ]\nlate right [ quelle_verbindung_e | no quelle_verbindung_w no quelle ] -> [ | ]\nlate up [ quelle_verbindung_n | no quelle_verbindung_s no quelle ] -> [ | ]\nlate down [ quelle_verbindung_s | no quelle_verbindung_n no quelle ] -> [ | ]\n\n\nlate [counterfill] -> []\n\nlate [ quelle_kreuzung quelle_verbindung_n quelle_verbindung_s quelle_verbindung_e quelle_verbindung_w no temp ] [ counter no counterfill ] -> [ quelle_kreuzung quelle_verbindung_n quelle_verbindung_s quelle_verbindung_e quelle_verbindung_w temp ] [ counter counterfill ]\n\nlate [ temp ] -> []\n\n==============\nWINCONDITIONS\n==============\n\nall counter on counterfill\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of/von 1\n\n....#################\n....#xxxxxxxxxzxcvzx#\n#####xxxxxxxxxzxcvzx#\n#...#xxxxxxxxzxxvzxx#\n#.1.#xxxxzxxxxvxxcvx#\n#...#xxvclvcxvxxxccx#\n#.1.#xxxxxxxxvzxcvzx#\n#...#xxxxzxxxzxzxzxx#\n#.1.#xxxxxxxxzxzxzxx#\n#...#xxxxxxxxzxxxzxx#\n#.1.#xxxxzcvxxxsccvx#\n#...#xxvclvcxvclvccx#\n#.1.#xxxxxvzxxxxcvzx#\n#...#xxxxzzxxxxzvzxx#\n#####xxxxxcvxxxzxcvx#\n....#xxxxxcvxxxzxcvx#\n....#################\n\n\nmessage Very smoothly is encarring thusly ensured / Reibungslos ist ein Verkehssystem so entwickelt\n\nghjk?\nbnm,2\n34567\nb90d2\nweyui\n\n\n\n\n\n",[2,1,1,1,1,1,1,3,3,0,0,0,0,0,1,1,1,0,1,1,1,2,2,2,2,2,2,2,1,0,0,0,0,0,0,3,3,1,3,0,1,2,2,2,1,0,0,3,3,2,2,2],"background deckle:0,0,background deckle wall:1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,\n0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,background counter counterfill:2,0,background counter:3,0,\n3,0,3,0,3,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,\n0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,a_down background deckle:4,4,4,4,a_right background deckle:5,5,5,5,5,5,5,4,4,4,4,1,1,4,4,\n4,4,a_right background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_s:6,a_up background deckle quelle_kreuzung quelle_verbindung_n quelle_verbindung_s:7,7,7,7,7,a_up background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_n:8,a_up background deckle:9,4,4,4,1,1,4,4,4,4,a_right background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_w:10,5,\n5,5,a_left background deckle:11,11,a_left background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_w:12,9,4,4,4,1,1,4,4,4,a_down background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_s:13,a_down background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_n quelle_verbindung_s quelle_verbindung_w:14,a_down background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_n quelle_verbindung_s:15,a_down background deckle quelle_kreuzung quelle_verbindung_n quelle_verbindung_s:16,background deckle player quelle_kreuzung quelle_verbindung_n:17,9,11,\n12,4,4,4,4,1,1,4,4,4,a_left background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_s quelle_verbindung_w:18,background deckle quelle:19,a_left background deckle quelle_kreuzung quelle_verbindung_n quelle_verbindung_w:20,11,11,4,6,19,a_down background deckle quelle_kreuzung quelle_verbindung_n:21,9,4,\n4,1,1,4,4,4,a_left background deckle quelle_kreuzung quelle_verbindung_s quelle_verbindung_w:22,a_up background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_n quelle_verbindung_w:23,9,5,5,5,a_right background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_s quelle_verbindung_w:24,a_up background deckle quelle_kreuzung quelle_verbindung_n quelle_verbindung_w:25,5,9,11,11,1,1,4,\n4,4,11,22,7,7,7,7,23,9,9,4,5,5,1,1,4,4,4,4,11,\n11,11,11,11,12,9,4,4,4,4,1,1,4,4,9,4,5,5,9,9,4,\n12,9,4,4,4,4,1,1,9,9,4,5,4,9,4,4,4,18,8,4,4,\n4,4,1,1,4,4,4,4,4,4,9,9,4,22,19,21,9,9,9,1,1,\n11,11,5,4,4,11,4,4,4,11,a_right background deckle quelle_kreuzung quelle_verbindung_w:26,11,5,4,4,1,1,5,5,9,11,\n11,5,9,9,9,11,11,5,9,11,11,1,1,9,9,4,5,11,9,4,4,\n4,5,11,9,4,5,5,1,1,4,4,4,4,4,4,4,4,4,4,4,4,\n4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n",1,"1627892456324.3245"] + "5-junctions-maker / 5kreuzungenmacher", + ["title 5-junctions-maker / 5kreuzungenmacher\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nnoaction\n\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\n\na_up\nblack green\n..1..\n.111.\n11111\n..1..\n..1..\n\n\n\na_down\nblack blue\n..1..\n..1..\n11111\n.111.\n..1..\n\n\na_left\nblack pink\n..1..\n.11..\n11111\n.11..\n..1..\n\na_right\nblack red\n..1..\n..11.\n11111\n..11.\n..1..\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkblue\n00000\n0...0\n0...0\n0...0\n00000\n\nPlayer\nyellow\n00.00\n0...0\n.....\n0...0\n00.00\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\nquelle \nwhite \n00000\n00000\n00000\n00000\n00000\n\nquelle_kreuzung \nwhite\n.....\n.....\n..0..\n.....\n.....\n\nquelle_verbindung_n\nlightgray\n..0..\n..0..\n.....\n.....\n.....\n\nquelle_verbindung_s\nlightgray\n.....\n.....\n.....\n..0..\n..0..\n\nquelle_verbindung_e\nlightgray\n.....\n.....\n...00\n.....\n.....\n\nquelle_verbindung_w\nlightgray\n.....\n.....\n00...\n.....\n.....\n\ncounter 1\ndarkblue darkblue\n..0..\n..0..\n00100\n..0..\n..0..\n\ncounterfill\ngray lightgray\n..0..\n..0..\n00100\n..0..\n..0..\n\ndeckle\nblack\n\ntemp t\ngreen\n\n\n\ne_0_0 g \n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_1_0 h \n#8a8a8a white\n..0..\n..0..\n00100\n.....\n.....\n\ne_2_0 j \n#8a8a8a white\n..0..\n..0..\n00100\n.....\n.....\n\ne_3_0 k\n#8a8a8a white\n...0.\n...0.\n00010\n.....\n.....\n\ne_4_0 ?\n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_0_1 b\n#8a8a8a white\n..0..\n..0..\n001..\n..0..\n..0..\n\ne_1_1 n\nwhite\n0..0.\n0..0.\n0000.\n...0.\n0000.\n\ne_2_1 m \nwhite\n0000.\n0..0.\n0..0.\n0..0.\n0000.\n\ne_3_1 ,\nwhite\n0..0.\n0..0.\n0..0.\n0..0.\n0000.\n\ne_4_1 2\n#8a8a8a white\n..0..\n..0..\n..100\n..0..\n..0..\n\ne_0_2 3\n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_1_2 4\n#8a8a8a\n.....\n.....\n00000\n.....\n.....\n\ne_2_2 5\n#8a8a8a\n.....\n.....\n00000\n.....\n.....\n\ne_3_2 6\n#8a8a8a\n.....\n.....\n00000\n.....\n.....\n\ne_4_2 7\n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_0_3 8\n#8a8a8a\n..0..\n..0..\n..0..\n..0..\n..0..\n\ne_1_3 9\nwhite\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n00000\n\ne_2_3 0\nwhite\n.000.\n..0..\n..0..\n..0..\n.000.\n\ne_3_3 d\nwhite\n.00..\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n\ne_4_3 f\n#8a8a8a\n..0..\n..0..\n..0..\n..0..\n..0..\n\ne_0_4 w\n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_1_4 e\n#8a8a8a white\n.....\n.....\n00100\n..0..\n..0..\n\ne_2_4 y\n#8a8a8a white\n.....\n.....\n00100\n..0..\n..0..\n\ne_3_4 u\n#8a8a8a white\n.....\n.....\n00100\n..0..\n..0..\n\ne_4_4 i\n#8a8a8a white\n..0..\n..0..\n001..\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background and deckle\n# = Wall and deckle\n* = Crate and deckle\n@ = Crate and Target and deckle\nO = Target and deckle\na = a_up or a_down or a_left or a_right\ns = player and a_up and deckle\np = player and a_down and deckle\nq = player and a_left and deckle\nr = player and a_right and deckle\n\nz = a_up and deckle\nx = a_down and deckle\nc = a_left and deckle\nv = a_right and deckle\n\nl = quelle and deckle\nquelle_verbindung = quelle_verbindung_n or quelle_verbindung_s or quelle_verbindung_e or quelle_verbindung_w\n\n\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\na\ndeckle\nPlayer, Wall, Crate\nquelle\nquelle_verbindung_n\nquelle_verbindung_s\nquelle_verbindung_e\nquelle_verbindung_w\nquelle_kreuzung\ncounter\ncounterfill\ntemp\ng,h,j,k,e_4_0,b,n,m,e_3_1,2,3,4,5,6,7,8,9,0,d,f,w,e,t,y,u,i\n\n======\nRULES\n======\n\n[ > player | wall ] -> cancel\n[ > player | quelle ] -> cancel\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate up [ no quelle no wall | player ] -> [ a_up | player ]\nlate down [ no quelle no wall | player ] -> [ a_down | player ]\nlate left [ no quelle no wall | player ] -> [ a_left | player ]\nlate right [ no quelle no wall | player ] -> [ a_right | player ]\n\nlate [ quelle_verbindung ] -> []\nlate [ quelle_kreuzung ] -> []\n\nlate [ player ] -> [ player no a]\n\n\nlate up [ a_up | no wall no quelle no a_down ] -> [ a_up quelle_verbindung_n | quelle_verbindung_s]\nlate down [ a_down | no wall no quelle no a_up ] -> [ a_down quelle_verbindung_s | quelle_verbindung_n]\nlate left [ a_left | no wall no quelle no a_right ] -> [ a_left quelle_verbindung_w | quelle_verbindung_e]\nlate right [ a_right | no wall no quelle no a_left ] -> [ a_right quelle_verbindung_e | quelle_verbindung_w]\n\n\n\nlate up [ quelle | no a_down no wall ] -> [ quelle | quelle_kreuzung quelle_verbindung_s ]\nlate down [ quelle | no a_up no wall ] -> [ quelle | quelle_kreuzung quelle_verbindung_n ]\nlate left [ quelle | no a_right no wall ] -> [ quelle | quelle_kreuzung quelle_verbindung_e ]\nlate right [ quelle | no a_left no wall ] -> [ quelle | quelle_kreuzung quelle_verbindung_w ]\n\nlate left [ a_left quelle_kreuzung quelle_verbindung_w | no quelle_kreuzung quelle_verbindung_e ] -> [ a_left quelle_kreuzung quelle_verbindung_w | quelle_kreuzung quelle_verbindung_e ] \n+ late right [ a_right quelle_kreuzung quelle_verbindung_e | no quelle_kreuzung quelle_verbindung_w ] -> [ a_right quelle_kreuzung quelle_verbindung_e | quelle_kreuzung quelle_verbindung_w ] \n+ late up [ a_up quelle_kreuzung quelle_verbindung_n | no quelle_kreuzung quelle_verbindung_s ] -> [ a_up quelle_kreuzung quelle_verbindung_n | quelle_kreuzung quelle_verbindung_s ] \n+ late down [ a_down quelle_kreuzung quelle_verbindung_s | no quelle_kreuzung quelle_verbindung_n ] -> [ a_down quelle_kreuzung quelle_verbindung_s | quelle_kreuzung quelle_verbindung_n ] \n\nlate [ quelle_verbindung no quelle_kreuzung ] -> []\n\nlate left [ quelle_verbindung_w | no quelle_verbindung_e no quelle ] -> [ | ]\nlate right [ quelle_verbindung_e | no quelle_verbindung_w no quelle ] -> [ | ]\nlate up [ quelle_verbindung_n | no quelle_verbindung_s no quelle ] -> [ | ]\nlate down [ quelle_verbindung_s | no quelle_verbindung_n no quelle ] -> [ | ]\n\n\nlate [counterfill] -> []\n\nlate [ quelle_kreuzung quelle_verbindung_n quelle_verbindung_s quelle_verbindung_e quelle_verbindung_w no temp ] [ counter no counterfill ] -> [ quelle_kreuzung quelle_verbindung_n quelle_verbindung_s quelle_verbindung_e quelle_verbindung_w temp ] [ counter counterfill ]\n\nlate [ temp ] -> []\n\n==============\nWINCONDITIONS\n==============\n\nall counter on counterfill\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of/von 1\n\n....#################\n....#xxxxxxxxxzxcvzx#\n#####xxxxxxxxxzxcvzx#\n#...#xxxxxxxxzxxvzxx#\n#.1.#xxxxzxxxxvxxcvx#\n#...#xxvclvcxvxxxccx#\n#.1.#xxxxxxxxvzxcvzx#\n#...#xxxxzxxxzxzxzxx#\n#.1.#xxxxxxxxzxzxzxx#\n#...#xxxxxxxxzxxxzxx#\n#.1.#xxxxzcvxxxsccvx#\n#...#xxvclvcxvclvccx#\n#.1.#xxxxxvzxxxxcvzx#\n#...#xxxxzzxxxxzvzxx#\n#####xxxxxcvxxxzxcvx#\n....#xxxxxcvxxxzxcvx#\n....#################\n\n\nmessage Very smoothly is encarring thusly ensured / Reibungslos ist ein Verkehssystem so entwickelt\n\nghjk?\nbnm,2\n34567\nb90d2\nweyui\n\n\n\n\n\n", [2, 1, 1, 1, 1, 1, 1, 3, 3, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 3, 3, 1, 3, 0, 1, 2, 2, 2, 1, 0, 0, 3, 3, 2, 2, 2], "background deckle:0,0,background deckle wall:1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,\n0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,background counter counterfill:2,0,background counter:3,0,\n3,0,3,0,3,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,\n0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,a_down background deckle:4,4,4,4,a_right background deckle:5,5,5,5,5,5,5,4,4,4,4,1,1,4,4,\n4,4,a_right background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_s:6,a_up background deckle quelle_kreuzung quelle_verbindung_n quelle_verbindung_s:7,7,7,7,7,a_up background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_n:8,a_up background deckle:9,4,4,4,1,1,4,4,4,4,a_right background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_w:10,5,\n5,5,a_left background deckle:11,11,a_left background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_w:12,9,4,4,4,1,1,4,4,4,a_down background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_s:13,a_down background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_n quelle_verbindung_s quelle_verbindung_w:14,a_down background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_n quelle_verbindung_s:15,a_down background deckle quelle_kreuzung quelle_verbindung_n quelle_verbindung_s:16,background deckle player quelle_kreuzung quelle_verbindung_n:17,9,11,\n12,4,4,4,4,1,1,4,4,4,a_left background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_s quelle_verbindung_w:18,background deckle quelle:19,a_left background deckle quelle_kreuzung quelle_verbindung_n quelle_verbindung_w:20,11,11,4,6,19,a_down background deckle quelle_kreuzung quelle_verbindung_n:21,9,4,\n4,1,1,4,4,4,a_left background deckle quelle_kreuzung quelle_verbindung_s quelle_verbindung_w:22,a_up background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_n quelle_verbindung_w:23,9,5,5,5,a_right background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_s quelle_verbindung_w:24,a_up background deckle quelle_kreuzung quelle_verbindung_n quelle_verbindung_w:25,5,9,11,11,1,1,4,\n4,4,11,22,7,7,7,7,23,9,9,4,5,5,1,1,4,4,4,4,11,\n11,11,11,11,12,9,4,4,4,4,1,1,4,4,9,4,5,5,9,9,4,\n12,9,4,4,4,4,1,1,9,9,4,5,4,9,4,4,4,18,8,4,4,\n4,4,1,1,4,4,4,4,4,4,9,9,4,22,19,21,9,9,9,1,1,\n11,11,5,4,4,11,4,4,4,11,a_right background deckle quelle_kreuzung quelle_verbindung_w:26,11,5,4,4,1,1,5,5,9,11,\n11,5,9,9,9,11,11,5,9,11,11,1,1,9,9,4,5,11,9,4,4,\n4,5,11,9,4,5,5,1,1,4,4,4,4,4,4,4,4,4,4,4,4,\n4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n", 1, "1627892456324.3245"] ], [ - "NIGHTMARECROBAN", - ["title NIGHTMARECROBAN\nauthor increpare \nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnoaction\n\ncolor_palette 13\n\nbackground_color black\ntext_color darkblue\n\n(remixes of levels from david skinner's microban using https://dekeyser.ch/puzzlescriptmis/ )\n\n\n========\nOBJECTS\n========\n\nBackground\nblack black\n11111\n01111\n11101\n11111\n10111\n\n\nziel\nlightblue\n.....\n.000.\n.000.\n.000.\n.....\n\nWall\n darkblue darkgray\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nred\n00.00\n0...0\n.....\n0...0\n00.00\n\nCrate\nyellow\n.000.\n0...0\n0...0\n0...0\n.000.\n\n\np_u u\ngray\n.....\n..0..\n.0.0.\n.....\n.....\n\np_d d\ngray\n.....\n.....\n.0.0.\n..0..\n.....\n\np_l l \ngray\n.....\n..0..\n.0...\n..0..\n.....\n\np_r r\ngray\n.....\n..0..\n...0.\n..0..\n.....\n\ntick\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player and p_u\n* = Crate and p_u\nz = ziel and p_u\ntarget = ziel\no = ziel and p_u\n@ = crate and p_u and ziel\n\npfeil = p_d or p_u or p_l or p_r\n\nw = crate and p_u\ns = crate and p_d\na = crate and p_l\nt = crate and p_r\n\n\ni = crate and p_u and ziel\nk = crate and p_d and ziel\nj = crate and p_l and ziel\ny = crate and p_r and ziel\n\n\n\n1 = p_u and ziel\n2 = p_d and ziel\n3 = p_l and ziel\n4 = p_r and ziel\n\nobstacle = crate or wall or player\n\n\ninanimate = wall or Crate\n\n\n0 = player and p_l\n5 = player and p_r\n6 = ziel and player and p_d\n7 = player and p_u\n8 = player and p_d\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 11944102\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nziel\nPlayer, Wall, Crate\npfeil\ntick\n\n======\nRULES\n======\n\nup [ crate p_u tick | no inanimate ] -> [ p_u > crate | ]\ndown [ crate p_d tick | no inanimate ] -> [ p_d > crate | ]\nleft [ crate p_l tick | no inanimate ] -> [ p_l > crate | ]\nright [ crate p_r tick | no inanimate ] -> [ p_r > crate | ]\n\n[> crate | player ] -> [ > crate | > player ]\n[tick]->[]\n\n\n[ > player | crate ] -> [ > player | > crate > tick] again\n\n[ > obstacle | stationary obstacle ] -> cancel\n\n\nlate up [ crate p_u tick | inanimate ] -> [ p_u crate |inanimate ]\nlate down [ crate p_d tick | inanimate ] -> [ p_d crate | inanimate]\nlate left [ crate p_l tick | inanimate ] -> [ p_l crate | inanimate]\nlate right [ crate p_r tick | inanimate ] -> [ p_r crate | inanimate]\n\n\n==============\nWINCONDITIONS\n==============\n\nall crate on ziel\nno tick\n\n=======\nLEVELS\n=======\n\n\n\nmessage level 1 of 7\n(ok level 1)\n####..\n#lu#..\n#sl###\n#r8kr#\n#lll2#\n#dl###\n####..\n\n\nmessage level 2 of 7\n(ok level 2)\n######\n#lu3l#\n#a#rl#\n#rlkd#\n#wdrd#\n#84dl#\n######\n\n\n\nmessage level 3 of 7\n(easy, level 2isch)\n########\n#rwr4ud#\n#2ddidl#\n#u8lrua#\n#####ud#\n....####\n\n\nmessage level 4 of 7\n(tricky/meh, but ok level 3)\n..####...\n###rd####\n#8rrl1u4#\n#d#ls#wd#\n#llur#rr#\n#########\n\n\n\n\nmessage level 5 of 7\n(ok penultimate)\n######.#####\n#rlrk###rdl#\n#lsruru5d#r#\n#ua1#ld4lrr#\n#rru########\n#####.......\n\n\n\n(ok final level)\nmessage level 6 of 7\n\n.#######\n.#rddtr#\n.#d2dlr#\n##durwd#\n#dr1sdd#\n#lrkd6r#\n########\n\n\n(final)\nmessage level 7 of 7\n\n#######\n#lrrll#\n#u4w2r#\n#d13wa#\n#udt35#\n#3drtu#\n#uwllr#\n#######\n\n\n\n\nmessage You won. I'm so sorry!\n\n\n(\n\n==========\nGENERATION\n==========\n\n[pfeil]->[]\n\nchoose 2 [Crate][Target] -> [][]\nchoose 2 [No Wall No Player no crate ][No Wall No Player no target] -> [Crate][Target]\n\n\nchoose 200 option 0.2 [ no wall no pfeil ] -> [ p_u ]\n+ option 0.2 [ no wall no pfeil ] -> [ p_d ]\n+ option 0.2 [ no wall no pfeil ] -> [ p_l ]\n+ option 0.2 [ no wall no pfeil ] -> [ p_r ]\n\n\nchoose 1 [ player ] [ no player no wall no crate ] -> [ ] [ player ]\n\n)\n",[0,1,1,0,0,3,2,3,2,0,3,2,"undo",1,2,2,2,3,0,0,1,0,1,2,3,2,2,1,0],"background:0,background wall:1,1,1,1,1,0,1,background p_d:2,\n2,background p_l:3,1,1,1,background p_r:4,1,3,1,\n1,4,4,background p_l player:5,background p_u:6,1,1,2,background crate p_l:7,\n2,4,1,1,1,background p_u ziel:8,1,1,1,\n0,1,6,background crate p_u:9,4,1,0,1,background p_r ziel:10,\n2,4,1,0,1,1,1,1,1,\n",7,"1627892520679.5837"] + "NIGHTMARECROBAN", + ["title NIGHTMARECROBAN\nauthor increpare \nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnoaction\n\ncolor_palette 13\n\nbackground_color black\ntext_color darkblue\n\n(remixes of levels from david skinner's microban using https://dekeyser.ch/puzzlescriptmis/ )\n\n\n========\nOBJECTS\n========\n\nBackground\nblack black\n11111\n01111\n11101\n11111\n10111\n\n\nziel\nlightblue\n.....\n.000.\n.000.\n.000.\n.....\n\nWall\n darkblue darkgray\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nred\n00.00\n0...0\n.....\n0...0\n00.00\n\nCrate\nyellow\n.000.\n0...0\n0...0\n0...0\n.000.\n\n\np_u u\ngray\n.....\n..0..\n.0.0.\n.....\n.....\n\np_d d\ngray\n.....\n.....\n.0.0.\n..0..\n.....\n\np_l l \ngray\n.....\n..0..\n.0...\n..0..\n.....\n\np_r r\ngray\n.....\n..0..\n...0.\n..0..\n.....\n\ntick\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player and p_u\n* = Crate and p_u\nz = ziel and p_u\ntarget = ziel\no = ziel and p_u\n@ = crate and p_u and ziel\n\npfeil = p_d or p_u or p_l or p_r\n\nw = crate and p_u\ns = crate and p_d\na = crate and p_l\nt = crate and p_r\n\n\ni = crate and p_u and ziel\nk = crate and p_d and ziel\nj = crate and p_l and ziel\ny = crate and p_r and ziel\n\n\n\n1 = p_u and ziel\n2 = p_d and ziel\n3 = p_l and ziel\n4 = p_r and ziel\n\nobstacle = crate or wall or player\n\n\ninanimate = wall or Crate\n\n\n0 = player and p_l\n5 = player and p_r\n6 = ziel and player and p_d\n7 = player and p_u\n8 = player and p_d\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 11944102\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nziel\nPlayer, Wall, Crate\npfeil\ntick\n\n======\nRULES\n======\n\nup [ crate p_u tick | no inanimate ] -> [ p_u > crate | ]\ndown [ crate p_d tick | no inanimate ] -> [ p_d > crate | ]\nleft [ crate p_l tick | no inanimate ] -> [ p_l > crate | ]\nright [ crate p_r tick | no inanimate ] -> [ p_r > crate | ]\n\n[> crate | player ] -> [ > crate | > player ]\n[tick]->[]\n\n\n[ > player | crate ] -> [ > player | > crate > tick] again\n\n[ > obstacle | stationary obstacle ] -> cancel\n\n\nlate up [ crate p_u tick | inanimate ] -> [ p_u crate |inanimate ]\nlate down [ crate p_d tick | inanimate ] -> [ p_d crate | inanimate]\nlate left [ crate p_l tick | inanimate ] -> [ p_l crate | inanimate]\nlate right [ crate p_r tick | inanimate ] -> [ p_r crate | inanimate]\n\n\n==============\nWINCONDITIONS\n==============\n\nall crate on ziel\nno tick\n\n=======\nLEVELS\n=======\n\n\n\nmessage level 1 of 7\n(ok level 1)\n####..\n#lu#..\n#sl###\n#r8kr#\n#lll2#\n#dl###\n####..\n\n\nmessage level 2 of 7\n(ok level 2)\n######\n#lu3l#\n#a#rl#\n#rlkd#\n#wdrd#\n#84dl#\n######\n\n\n\nmessage level 3 of 7\n(easy, level 2isch)\n########\n#rwr4ud#\n#2ddidl#\n#u8lrua#\n#####ud#\n....####\n\n\nmessage level 4 of 7\n(tricky/meh, but ok level 3)\n..####...\n###rd####\n#8rrl1u4#\n#d#ls#wd#\n#llur#rr#\n#########\n\n\n\n\nmessage level 5 of 7\n(ok penultimate)\n######.#####\n#rlrk###rdl#\n#lsruru5d#r#\n#ua1#ld4lrr#\n#rru########\n#####.......\n\n\n\n(ok final level)\nmessage level 6 of 7\n\n.#######\n.#rddtr#\n.#d2dlr#\n##durwd#\n#dr1sdd#\n#lrkd6r#\n########\n\n\n(final)\nmessage level 7 of 7\n\n#######\n#lrrll#\n#u4w2r#\n#d13wa#\n#udt35#\n#3drtu#\n#uwllr#\n#######\n\n\n\n\nmessage You won. I'm so sorry!\n\n\n(\n\n==========\nGENERATION\n==========\n\n[pfeil]->[]\n\nchoose 2 [Crate][Target] -> [][]\nchoose 2 [No Wall No Player no crate ][No Wall No Player no target] -> [Crate][Target]\n\n\nchoose 200 option 0.2 [ no wall no pfeil ] -> [ p_u ]\n+ option 0.2 [ no wall no pfeil ] -> [ p_d ]\n+ option 0.2 [ no wall no pfeil ] -> [ p_l ]\n+ option 0.2 [ no wall no pfeil ] -> [ p_r ]\n\n\nchoose 1 [ player ] [ no player no wall no crate ] -> [ ] [ player ]\n\n)\n", [0, 1, 1, 0, 0, 3, 2, 3, 2, 0, 3, 2, "undo", 1, 2, 2, 2, 3, 0, 0, 1, 0, 1, 2, 3, 2, 2, 1, 0], "background:0,background wall:1,1,1,1,1,0,1,background p_d:2,\n2,background p_l:3,1,1,1,background p_r:4,1,3,1,\n1,4,4,background p_l player:5,background p_u:6,1,1,2,background crate p_l:7,\n2,4,1,1,1,background p_u ziel:8,1,1,1,\n0,1,6,background crate p_u:9,4,1,0,1,background p_r ziel:10,\n2,4,1,0,1,1,1,1,1,\n", 7, "1627892520679.5837"] ], [ - "Scalesoban", - ["title Scalesoban\nauthor increpare - remix of David Skinner's Microban\nhomepage www.increpare.com\n\n(\n\ntaking the levels from an existing sokoban set and changing the rules\n\n)\n\ncolor_palette 6\n\ntext_color yellow\n\n========\nOBJECTS\n========\n\nBackground\nblack black black\n11111\n01111\n11201\n11111\n10111\n\n\nTarget\nblue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkred darkred\n00010\n11111\n01000\n11111\n00010\n\nPlayer\ngreen green green green\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\ntag\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\nobstacle = wall or crate\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ntag\n======\nRULES\n======\n\n(\n[ > Player | Crate ] -> [ > Player | > Crate ]\nrandom [ > player | > crate ] [ stationary crate ] -> [ > crate | > crate ] [ player ]\n)\n\n\n[ > player | wall ] -> cancel \n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n[ > crate | wall] -> cancel\n[ > crate | crate ] -> cancel\n\n[ > player | > crate ] [stationary crate] -> [> player | > crate ] [< crate ]\n\n[ > player | > crate | | < crate ] -> [ > player | > crate | | crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nno tag\n\n=======\nLEVELS\n=======\n\n\n\nmessage level 1 of 3\n\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\n\n\nmessage level 2 of 3\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\nmessage level 3 of 3\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n\n(\nimpossibly hard:\n\n\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\n)\n\nmessage congratulations!\n\n",[3,0,0,1,1,1,0,1,2,2,3,2,1,0,0,1,1,2,2,3,3],"background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,background target:2,1,\n1,0,0,0,background player:3,1,1,0,0,\n0,background crate target:4,1,1,1,background crate:5,1,1,1,\n0,1,0,0,0,1,0,1,0,\n0,0,1,0,1,1,1,1,1,\n",5,"1627892538124.7505"] + "Scalesoban", + ["title Scalesoban\nauthor increpare - remix of David Skinner's Microban\nhomepage www.increpare.com\n\n(\n\ntaking the levels from an existing sokoban set and changing the rules\n\n)\n\ncolor_palette 6\n\ntext_color yellow\n\n========\nOBJECTS\n========\n\nBackground\nblack black black\n11111\n01111\n11201\n11111\n10111\n\n\nTarget\nblue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkred darkred\n00010\n11111\n01000\n11111\n00010\n\nPlayer\ngreen green green green\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\ntag\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\nobstacle = wall or crate\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ntag\n======\nRULES\n======\n\n(\n[ > Player | Crate ] -> [ > Player | > Crate ]\nrandom [ > player | > crate ] [ stationary crate ] -> [ > crate | > crate ] [ player ]\n)\n\n\n[ > player | wall ] -> cancel \n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n[ > crate | wall] -> cancel\n[ > crate | crate ] -> cancel\n\n[ > player | > crate ] [stationary crate] -> [> player | > crate ] [< crate ]\n\n[ > player | > crate | | < crate ] -> [ > player | > crate | | crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nno tag\n\n=======\nLEVELS\n=======\n\n\n\nmessage level 1 of 3\n\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\n\n\nmessage level 2 of 3\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\nmessage level 3 of 3\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n\n(\nimpossibly hard:\n\n\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\n)\n\nmessage congratulations!\n\n", [3, 0, 0, 1, 1, 1, 0, 1, 2, 2, 3, 2, 1, 0, 0, 1, 1, 2, 2, 3, 3], "background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,background target:2,1,\n1,0,0,0,background player:3,1,1,0,0,\n0,background crate target:4,1,1,1,background crate:5,1,1,1,\n0,1,0,0,0,1,0,1,0,\n0,0,1,0,1,1,1,1,1,\n", 5, "1627892538124.7505"] ], [ - "Vexatious Match 3", - ["title Vexatious Match 3 \nauthor increpare [riff on something from Jack Lance's VEXT EDIT]\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nnorepeat_action\n\nbackground_color darkblue\n\n\n(\n\nHEAVILY INSPIRED BY VEXT EDIT by the inimitable https://twitter.com/Jack_L_Lance/status/1149348574750269440\n\nmade with the assistance of these two tools:\n\n\nhttps://dekeyser.ch/puzzlescriptmis/\n\n\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\n\nplacecursor\nlightblue\n0...0\n.....\n.....\n.....\n0...0\n\nselectcuror_top\ngray\n0...0\n.....\n.....\n.....\n.....\n\nselectcuror_bottom\ngray\n.....\n.....\n.....\n.....\n0...0\n\n\n1\nred\n.....\n.....\n..0..\n.....\n.....\n\n\n2\norange\n.....\n.0...\n.....\n...0.\n.....\n\n\n3\nyellow\n.....\n.0...\n..0..\n...0.\n.....\n\n4\ngreen\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\n5\nblue\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\n\n6\npink pink\n.....\n.010.\n.....\n.010.\n.....\n\n\n7\nyellow orange\n.....\n.010.\n..0..\n.010.\n.....\n\n\n8\nyellow orange\n.....\n.010.\n.1.1.\n.010.\n.....\n\n\n9\nyellow orange\n.....\n.010.\n.101.\n.010.\n.....\n\ntophighlight \ndarkgreen\n\nbottomhighlight\ndarkgray\n\nwintoken\nlightblue\n\ncursorglow_upper\nyellow\n0...0\n.....\n.....\n.....\n.....\n\ncursorglow_lower\nyellow\n.....\n.....\n.....\n.....\n0...0\n\n=======\nLEGEND\n=======\n\nplayer = selectcuror_top or selectcuror_bottom or placecursor\n. = Background\np = selectcuror_top\n\nnum = 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9\nbignum = 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 \n\n\n0 = selectcuror_top and 2\na = selectcuror_bottom and 4\nb = selectcuror_bottom and 2\nc = selectcuror_bottom\nd = selectcuror_top and 4\ne = selectcuror_bottom and 1\nf = selectcuror_top and 6\ng = selectcuror_bottom and 5\nh = selectcuror_top and 1 and cursorglow_upper\ni = selectcuror_bottom and 2 and cursorglow_lower\n! = selectcuror_top and 5\n\n\n=======\nSOUNDS\n=======\n\nsfx1 40752500 (match3)\nsfx2 72680706 (select)\nsfx3 69295706 (deselect)\nsfx4 99783507 (setzt)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ntophighlight, bottomhighlight\nwintoken\nPlayer\nnum\ncursorglow_upper, cursorglow_lower\n======\nRULES\n======\n\n[cursorglow_upper]->[]\n[cursorglow_lower]->[]\n\ndown [ action selectcuror_top num | selectcuror_bottom num ] -> [ placecursor tophighlight num | bottomhighlight num ] sfx2\n\n\n\ndown [ action placecursor num | ] [ tophighlight | bottomhighlight] -> [ selectcuror_top num | selectcuror_bottom ] [ | ] sfx3\n\ndown [ | action placecursor num ] [ tophighlight | bottomhighlight] -> [selectcuror_top | selectcuror_bottom num ] [ | ] sfx3\n\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 1 ] -> [ selectcuror_top num ] [ ] [ ] sfx3 sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 2 ] -> [ placecursor num ] [tophighlight num] [ bottomhighlight 1] sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 3 ] -> [ placecursor num ] [tophighlight num][ bottomhighlight 2] sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 4 ] -> [ placecursor num ] [tophighlight num][ bottomhighlight 3] sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 5 ] -> [ placecursor num ] [tophighlight num][ bottomhighlight 4] sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 6 ] -> [ placecursor num ] [tophighlight num][ bottomhighlight 5] sfx4\n\n\n\n(\n[wintoken]->[]\n\nlate [ 1|1|1]->[wintoken 1|wintoken 1|wintoken 1] sfx1 \nlate [ 2|2|2]->[wintoken 2|wintoken 2|wintoken 2] sfx1 \nlate [ 3|3|3]->[wintoken 3|wintoken 3|wintoken 3] sfx1 \nlate [ 4|4|4]->[wintoken 4|wintoken 4|wintoken 4] sfx1 \nlate [ 5|5|5]->[wintoken 5|wintoken 5|wintoken 5] sfx1 \nlate [ 6|6|6]->[wintoken 6|wintoken 6|wintoken 6] sfx1 \n\nlate [wintoken num]->[]\n)\n\n[wintoken num]->[]\n\nlate [ 1|1|1]->[wintoken 1|wintoken 1|wintoken 1] sfx1 again\nlate [ 2|2|2]->[wintoken 2|wintoken 2|wintoken 2] sfx1 again\nlate [ 3|3|3]->[wintoken 3|wintoken 3|wintoken 3] sfx1 again\nlate [ 4|4|4]->[wintoken 4|wintoken 4|wintoken 4] sfx1 again\nlate [ 5|5|5]->[wintoken 5|wintoken 5|wintoken 5] sfx1 again\nlate [ 6|6|6]->[wintoken 6|wintoken 6|wintoken 6] sfx1 again\n\n\n\n\nlate down [ selectcuror_top num | selectcuror_bottom num ] -> [ selectcuror_top num cursorglow_upper | selectcuror_bottom num cursorglow_lower]\n\nlate down [ tophighlight no num | bottomhighlight ] [ placecursor | ] -> [ | ] [ selectcuror_top | ] sfx3\nlate down [ tophighlight | bottomhighlight no num ] [ placecursor | ] -> [ | ] [ selectcuror_top | ] sfx3\n\nlate down [ tophighlight no num | bottomhighlight ] [ | placecursor ] -> [ | ] [ selectcuror_top | ] sfx3\nlate down [ tophighlight | bottomhighlight no num ] [ | placecursor] -> [ | ] [ selectcuror_top | ] sfx3\n\n\n\nlate [selectcuror_bottom]->[]\nlate down [ selectcuror_top|]->[selectcuror_top|selectcuror_bottom]\n\n\n==============\nWINCONDITIONS\n==============\n\nno num\n(some wintoken)\n\n=======\nLEVELS\n=======\n\nmessage Get three in a row to make them vanish. Clear the board to win.\n\nmessage level 1 of 5\n.......\n.......\n..123..\n.p456..\n.c.....\n.......\n\n\nmessage level 2 of 5\n.......\n.......\n...0...\n...i...\n.......\n.......\n\nmessage Level 3 of 5\n\n(messy but ok)\n.f.\n.6.\n...\n22.\n\n\n\nmessage Level 4 of 5\n\n22.5\n...5\np...\nc.55\n\nmessage Level 5 of 5\n(OK!)\np51\nc.5\n\n\nmessage The end :) Lesson Learned? You don't need to choose between being a numerator and being a denominator : you can be both!\n\n\n(\n...1...\n...2...\n...3...\n.p.4...\n...5...\n...6...\n\n\n66..\n.5p.\n.5c.\n33..\n\n....\n.p6.\n.c6.\n....\n\n\n...\n.f.\n.6.\n...\n\n...\n2.p\n266\n...\n\n5p1\n2c1\n\n16p\n.2c\n\n\n(easy but tractible?)\n\n3p1\t\n.c4\n\n\n501\n.c2\n\n\n\np61\nc.5\n\np61\nc.2\n\n.h6\n.i2\n\n4p3.\n3c..\n\n50..\n6c.1\n\n.p.\n...\n\n.p..\n....\n\n\n.p...\n.....\n\n\n\n.p....\n......\n\n46p\n2.c\n..4\n\n(hard?)\n.4f\n.1c\n..4\n\n\n5.d\n.4e\n..6\n\n..5\n..d\n..c\n3.6\n\n\n\n5.p\n..b\n2.3\n\n(hard?)\n.2p\n.4c\n...\n\n\n5.d\n.4e\n..6\n\n..5\n..d\n..c\n3.6\n\n\n\n.4p\n.4.\n...\n\n.......\n.......\n..6.p..\n..6....\n.......\n.......\n\n\n.......\n.......\n..6.p..\n..6....\n.......\n.......\n\n5p.\n..2\n2.3\n\n\n3p2\n.21\n23.\n\np.2\n.21\n...\n\n..p\n...\n...\n\n(hard?)\n62.\n4p5\n..4\n\n\n..p\n...\n...\n\n...\n..p\n...\n...\n\n....\n..p.\n....\n....\n\n......\n....p.\n..22..\n..11..\n......\n......\n\n\n(hard?)\n\n......\n....5p\n...1..\n......\n2.....\n2...5.\n\n\n\n5p1\n2c1\n\n)\n\n\n(\n\n\n==========\nGENERATION\n==========\n\n[num]->[]\n= remove one crate/target pair if it exists and add one\nchoose 1 option 0.1 []->[1]\n+ option 0.1 []->[2]\n+ option 0.1 []->[3]\n+ option 0.1 []->[4]\n+ option 0.1 []->[5]\n+ option 0.1 []->[6]\n\n)\n",[2,1,0,3,2,0,0,3,3,4,1,2,1,0,4,3,3,4,1,4,2,4,2,4,1,0,3,0,4,"undo",2,1,4,1,2,3,4],"2 background:0,background:1,1,1,\n0,5 background:2,5 background selectcuror_top:3,background selectcuror_bottom:4,\n1,1,1,1,\n1,1,1,2,\n",8,"1627892551428.3667"] + "Vexatious Match 3", + ["title Vexatious Match 3 \nauthor increpare [riff on something from Jack Lance's VEXT EDIT]\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nnorepeat_action\n\nbackground_color darkblue\n\n\n(\n\nHEAVILY INSPIRED BY VEXT EDIT by the inimitable https://twitter.com/Jack_L_Lance/status/1149348574750269440\n\nmade with the assistance of these two tools:\n\n\nhttps://dekeyser.ch/puzzlescriptmis/\n\n\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\n\nplacecursor\nlightblue\n0...0\n.....\n.....\n.....\n0...0\n\nselectcuror_top\ngray\n0...0\n.....\n.....\n.....\n.....\n\nselectcuror_bottom\ngray\n.....\n.....\n.....\n.....\n0...0\n\n\n1\nred\n.....\n.....\n..0..\n.....\n.....\n\n\n2\norange\n.....\n.0...\n.....\n...0.\n.....\n\n\n3\nyellow\n.....\n.0...\n..0..\n...0.\n.....\n\n4\ngreen\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\n5\nblue\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\n\n6\npink pink\n.....\n.010.\n.....\n.010.\n.....\n\n\n7\nyellow orange\n.....\n.010.\n..0..\n.010.\n.....\n\n\n8\nyellow orange\n.....\n.010.\n.1.1.\n.010.\n.....\n\n\n9\nyellow orange\n.....\n.010.\n.101.\n.010.\n.....\n\ntophighlight \ndarkgreen\n\nbottomhighlight\ndarkgray\n\nwintoken\nlightblue\n\ncursorglow_upper\nyellow\n0...0\n.....\n.....\n.....\n.....\n\ncursorglow_lower\nyellow\n.....\n.....\n.....\n.....\n0...0\n\n=======\nLEGEND\n=======\n\nplayer = selectcuror_top or selectcuror_bottom or placecursor\n. = Background\np = selectcuror_top\n\nnum = 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9\nbignum = 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 \n\n\n0 = selectcuror_top and 2\na = selectcuror_bottom and 4\nb = selectcuror_bottom and 2\nc = selectcuror_bottom\nd = selectcuror_top and 4\ne = selectcuror_bottom and 1\nf = selectcuror_top and 6\ng = selectcuror_bottom and 5\nh = selectcuror_top and 1 and cursorglow_upper\ni = selectcuror_bottom and 2 and cursorglow_lower\n! = selectcuror_top and 5\n\n\n=======\nSOUNDS\n=======\n\nsfx1 40752500 (match3)\nsfx2 72680706 (select)\nsfx3 69295706 (deselect)\nsfx4 99783507 (setzt)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ntophighlight, bottomhighlight\nwintoken\nPlayer\nnum\ncursorglow_upper, cursorglow_lower\n======\nRULES\n======\n\n[cursorglow_upper]->[]\n[cursorglow_lower]->[]\n\ndown [ action selectcuror_top num | selectcuror_bottom num ] -> [ placecursor tophighlight num | bottomhighlight num ] sfx2\n\n\n\ndown [ action placecursor num | ] [ tophighlight | bottomhighlight] -> [ selectcuror_top num | selectcuror_bottom ] [ | ] sfx3\n\ndown [ | action placecursor num ] [ tophighlight | bottomhighlight] -> [selectcuror_top | selectcuror_bottom num ] [ | ] sfx3\n\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 1 ] -> [ selectcuror_top num ] [ ] [ ] sfx3 sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 2 ] -> [ placecursor num ] [tophighlight num] [ bottomhighlight 1] sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 3 ] -> [ placecursor num ] [tophighlight num][ bottomhighlight 2] sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 4 ] -> [ placecursor num ] [tophighlight num][ bottomhighlight 3] sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 5 ] -> [ placecursor num ] [tophighlight num][ bottomhighlight 4] sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 6 ] -> [ placecursor num ] [tophighlight num][ bottomhighlight 5] sfx4\n\n\n\n(\n[wintoken]->[]\n\nlate [ 1|1|1]->[wintoken 1|wintoken 1|wintoken 1] sfx1 \nlate [ 2|2|2]->[wintoken 2|wintoken 2|wintoken 2] sfx1 \nlate [ 3|3|3]->[wintoken 3|wintoken 3|wintoken 3] sfx1 \nlate [ 4|4|4]->[wintoken 4|wintoken 4|wintoken 4] sfx1 \nlate [ 5|5|5]->[wintoken 5|wintoken 5|wintoken 5] sfx1 \nlate [ 6|6|6]->[wintoken 6|wintoken 6|wintoken 6] sfx1 \n\nlate [wintoken num]->[]\n)\n\n[wintoken num]->[]\n\nlate [ 1|1|1]->[wintoken 1|wintoken 1|wintoken 1] sfx1 again\nlate [ 2|2|2]->[wintoken 2|wintoken 2|wintoken 2] sfx1 again\nlate [ 3|3|3]->[wintoken 3|wintoken 3|wintoken 3] sfx1 again\nlate [ 4|4|4]->[wintoken 4|wintoken 4|wintoken 4] sfx1 again\nlate [ 5|5|5]->[wintoken 5|wintoken 5|wintoken 5] sfx1 again\nlate [ 6|6|6]->[wintoken 6|wintoken 6|wintoken 6] sfx1 again\n\n\n\n\nlate down [ selectcuror_top num | selectcuror_bottom num ] -> [ selectcuror_top num cursorglow_upper | selectcuror_bottom num cursorglow_lower]\n\nlate down [ tophighlight no num | bottomhighlight ] [ placecursor | ] -> [ | ] [ selectcuror_top | ] sfx3\nlate down [ tophighlight | bottomhighlight no num ] [ placecursor | ] -> [ | ] [ selectcuror_top | ] sfx3\n\nlate down [ tophighlight no num | bottomhighlight ] [ | placecursor ] -> [ | ] [ selectcuror_top | ] sfx3\nlate down [ tophighlight | bottomhighlight no num ] [ | placecursor] -> [ | ] [ selectcuror_top | ] sfx3\n\n\n\nlate [selectcuror_bottom]->[]\nlate down [ selectcuror_top|]->[selectcuror_top|selectcuror_bottom]\n\n\n==============\nWINCONDITIONS\n==============\n\nno num\n(some wintoken)\n\n=======\nLEVELS\n=======\n\nmessage Get three in a row to make them vanish. Clear the board to win.\n\nmessage level 1 of 5\n.......\n.......\n..123..\n.p456..\n.c.....\n.......\n\n\nmessage level 2 of 5\n.......\n.......\n...0...\n...i...\n.......\n.......\n\nmessage Level 3 of 5\n\n(messy but ok)\n.f.\n.6.\n...\n22.\n\n\n\nmessage Level 4 of 5\n\n22.5\n...5\np...\nc.55\n\nmessage Level 5 of 5\n(OK!)\np51\nc.5\n\n\nmessage The end :) Lesson Learned? You don't need to choose between being a numerator and being a denominator : you can be both!\n\n\n(\n...1...\n...2...\n...3...\n.p.4...\n...5...\n...6...\n\n\n66..\n.5p.\n.5c.\n33..\n\n....\n.p6.\n.c6.\n....\n\n\n...\n.f.\n.6.\n...\n\n...\n2.p\n266\n...\n\n5p1\n2c1\n\n16p\n.2c\n\n\n(easy but tractible?)\n\n3p1\t\n.c4\n\n\n501\n.c2\n\n\n\np61\nc.5\n\np61\nc.2\n\n.h6\n.i2\n\n4p3.\n3c..\n\n50..\n6c.1\n\n.p.\n...\n\n.p..\n....\n\n\n.p...\n.....\n\n\n\n.p....\n......\n\n46p\n2.c\n..4\n\n(hard?)\n.4f\n.1c\n..4\n\n\n5.d\n.4e\n..6\n\n..5\n..d\n..c\n3.6\n\n\n\n5.p\n..b\n2.3\n\n(hard?)\n.2p\n.4c\n...\n\n\n5.d\n.4e\n..6\n\n..5\n..d\n..c\n3.6\n\n\n\n.4p\n.4.\n...\n\n.......\n.......\n..6.p..\n..6....\n.......\n.......\n\n\n.......\n.......\n..6.p..\n..6....\n.......\n.......\n\n5p.\n..2\n2.3\n\n\n3p2\n.21\n23.\n\np.2\n.21\n...\n\n..p\n...\n...\n\n(hard?)\n62.\n4p5\n..4\n\n\n..p\n...\n...\n\n...\n..p\n...\n...\n\n....\n..p.\n....\n....\n\n......\n....p.\n..22..\n..11..\n......\n......\n\n\n(hard?)\n\n......\n....5p\n...1..\n......\n2.....\n2...5.\n\n\n\n5p1\n2c1\n\n)\n\n\n(\n\n\n==========\nGENERATION\n==========\n\n[num]->[]\n= remove one crate/target pair if it exists and add one\nchoose 1 option 0.1 []->[1]\n+ option 0.1 []->[2]\n+ option 0.1 []->[3]\n+ option 0.1 []->[4]\n+ option 0.1 []->[5]\n+ option 0.1 []->[6]\n\n)\n", [2, 1, 0, 3, 2, 0, 0, 3, 3, 4, 1, 2, 1, 0, 4, 3, 3, 4, 1, 4, 2, 4, 2, 4, 1, 0, 3, 0, 4, "undo", 2, 1, 4, 1, 2, 3, 4], "2 background:0,background:1,1,1,\n0,5 background:2,5 background selectcuror_top:3,background selectcuror_bottom:4,\n1,1,1,1,\n1,1,1,2,\n", 8, "1627892551428.3667"] ], [ - "SLIME VAT FILLER", - ["title SLIME VAT FILLER\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color darkgreen\ntext_color yellow\n\nrun_rules_on_level_start\n\ncolor_palette 1\n\n========\nOBJECTS\n========\n\nBackground\ndarkblue\n\nwall\nblue\n\nplayer\npink red\n.000.\n.000.\n00000\n.111.\n.1.1.\n\nblob\ngreen darkgreen\n.000.\n01110\n01110\n01110\n.000.\n\n\nblob_l\ngreen darkgreen\n.0000\n01111\n00101\n01111\n.0000\n\n\nblob_r\ngreen darkgreen\n0000.\n11110\n10100\n11110\n0000.\n\n\nblob_u\ngreen darkgreen\n.000.\n01010\n01110\n01010\n01110\n\n\nblob_d\ngreen darkgreen\n01110\n01010\n01110\n01010\n.000.\n\nblob_h\ngreen darkgreen\n00000\n11111\n10101\n11111\n00000\n\nblob_v\ngreen darkgreen\n01110\n01010\n01110\n01010\n01110\n\n\n\ntarget \nyellow\n0...0\n.....\n.....\n.....\n0...0\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = wall\nP = Player\nb = blob\nl = blob_l\nr = blob_r\nu = blob_u\nd = blob_d\nh = blob_h\nv = blob_v\nt = target\n\nk = player and target\n\n\n* = blob\n@ = blob and Target\nO = Target\n\n\n\ngoostuff = blob or blob_l or blob_r or blob_u or blob_d or blob_h or blob_v\n\nobstacle = wall or goostuff\n\n0 = blob_l and target\n\n=======\nSOUNDS\n=======\nsfx1 78001905\nsfx2 95814301\nendlevel 17589703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, wall, goostuff\nTarget\n\n======\nRULES\n======\n\n\n\n(was passiert, wenn man in der mitte ist? -_-)\n\n(2x1 -> 1x1 )\n\nright [ > player | blob_l | blob_r ] -> [ > player | | blob ] sfx2\nleft [ > player | blob_r | blob_l ] -> [ > player | | blob ] sfx2\nup [ > player | blob_d | blob_u ] -> [ > player | | blob ] sfx2\ndown [ > player | blob_u | blob_d ] -> [ > player | | blob ] sfx2\n\n\n( (n+1)x1 -> (n)x1 )\n\nright [ > player | blob_l | blob_h ] -> [ > player | | blob_l ] sfx2\nleft [ > player | blob_r | blob_h ] -> [ > player | | blob_r ] sfx2\nup [ > player | blob_d | blob_v ] -> [ > player | | blob_d ] sfx2\ndown [ > player | blob_u | blob_v ] -> [ > player | | blob_u ] sfx2\n\n\n\n(1x1 -> 2x1)\nright [ no obstacle | < player | blob ] -> [ player | blob_l | blob_r ] sfx1\nleft [ no obstacle | < player | blob ] -> [ player | blob_r | blob_l ] sfx1\nup [ no obstacle | < player | blob ] -> [ player | blob_d | blob_u ] sfx1\ndown [ no obstacle | < player | blob ] -> [ player | blob_u | blob_d ] sfx1\n\n\n\n( (n)x1 -> (n+1)x1)\nright [ no obstacle | < player | blob_l ] -> [ player | blob_l | blob_h ] sfx1\nleft [ no obstacle | < player | blob_r ] -> [ player | blob_r | blob_h ] sfx1\nup [ no obstacle | < player | blob_d ] -> [ player | blob_d | blob_v ] sfx1\ndown [ no obstacle | < player | blob_u ] -> [ player | blob_u | blob_v ] sfx1\n\n\n([ > player | blob ] -> [ > player | > blob ])\n\n[ > goostuff | wall ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nall blob on target\nall goostuff on target\n\n=======\nLEVELS\n=======\n\nmessage Get the slime into the yellow vats! Fill all the vats this way with slime!\n\nmessage level 1 of 10\n######\n#....#\n#.b..#\n#....#\n#p.t.#\n#....#\n######\n\n\nmessage level 2 of 10\n\n######\n#....#\n#.tt.#\n#.bb.#\n#....#\n#.p..#\n######\n\nmessage level 3 of 10\n\n######\n#....#\n#...b#\n#.b.t#\n#..t.#\n#p...#\n######\n\n\nmessage level 4 of 10\n\n(Easy but ok)\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\nmessage level 5 of 10\n\n(hardish)\n####..\n#@.#..\n#..###\n#.t..#\n#..b.#\n#p.###\n####..\n\nmessage level 6 of 10\n\n#########\n#.......#\n#.......#\n#.b.t...#\n#.b.pt..#\n#.b...t.#\n#.......#\n#.......#\n#########\n\nmessage level 7 of 10\n(hard)\n######\n#....#\n#.#p.#\n#.b.b#\n#.t.t#\n#....#\n######\n\n\nmessage level 8 of 10\n(good, medium-hard)\n#########\n#.......#\n#.......#\n#...t...#\n#..tpt..#\n#...t...#\n#.......#\n#...b...#\n#..b.b..#\n#...b...#\n#.......#\n#.......#\n#########\n\nmessage level 9 of 10\n(not so hard, but 75% chance of being amusing?)\n#########\n#...#...#\n#.p.b.t.#\n#.......#\n##b.t.b##\n#.......#\n#.t.b.t.#\n#...#...#\n#########\n\nmessage level 10 of 10\n\nmessage MY PASSPORT HAS EXPIRED. I need to take a new photo. NO SILLY FACES ALLOWED.\n(cripes!)\n#######\n##...##\n#.b.b.#\n#.t.t.#\n#..@..#\n##p..##\n#######\n\nmessage Congratulations - you got your new passport\n\n........\n........\n...##...\n..####..\n..####..\n...##...\n........\n..####..\n........\n..####..\n........\n........\n\nmessage The End\n\n\n(\n\n\n########\n#......#\n#.p....#\n#..bbt.#\n#.t....#\n#......#\n########\n\n\n(early level?)\n########\n#...0r.#\n#.O.p..#\n#.lr...#\n#####..#\n....####\n\n\n\n\n(too easy)\n..####...\n###..####\n#.t....@#\n#.#b.#..#\n#....#p.#\n#########\n\n#########\n#...#...#\n#...b.t.#\n#.......#\n##b.t.b##\n#.......#\n#.tpb.t.#\n#...#...#\n#########\n\n\n#########\n#...u...#\n#...d...#\n#b.lhr.b#\n#...u...#\n#.p.v...#\n#...d...#\n#########\n\n#########\n#...#...#\n#.t.u.t.#\n#...d...#\n##b.lhr##\n#...u...#\n#.t.d.t.#\n#p..#...#\n#########\n\n\n#######\n#..u..#\n#..d..#\n#b.lhr#\n#..u..#\n#p.d..#\n#######\n\n##########\n#..uuuu..#\n#..dddd..#\n#lhhrplhr#\n#..uuuu..#\n#..dddd..#\n##########\n\n#########\n#...#...#\n#...u.t.#\n#...d...#\n##b.0hr##\n#...u...#\n#.t.d.t.#\n#.p.#...#\n#########\n\n#########\n#.......#\n#.......#\n#...t...#\n#..tpt..#\n#...t...#\n#.......#\n#...b...#\n#..b.b..#\n#...b...#\n#.......#\n#.......#\n#########\n\n#########\n#.......#\n#...t...#\n#..t.t..#\n#...t...#\n#.......#\n#...p...#\n#.......#\n#...b...#\n#..b.b..#\n#...b...#\n#.......#\n#########\n\n\n\n#########\n#.......#\n#..ttt..#\n#..t.t..#\n#..ttt..#\n#.......#\n#...p...#\n#.......#\n#..bbb..#\n#..b.b..#\n#..bbb..#\n#.......#\n#########\n\n\n######\n#....#\n#.b..#\n#....#\n#p.t.#\n#....#\n######\n\n\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######.#####\n#....###...#\n#........#p#\n#.bt#.tb...#\n#...########\n#####.......\n\nmessage level 2 of 10\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*O.#\n##.*P*.#\n#..O*O.#\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\n\n\n\n######\n#....#\n#.b0r#\n#...t#\n#.p..#\n######\n\n\n\n########\n#......#\n#.b....#\n#..tp..#\n#......#\n#......#\n########\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.lr....#\n#.t..p..#\n#@......#\n#########\n\n\n(soll schwierig sein)\n#######\n##...##\n#.b.b.#\n#.t.t.#\n#..@..#\n##p..##\n#######\n\n)\n\n(\n\n\n\nchoose 1 option 0.1 [no wall]->[wall]\n+ option 0.1 [wall]->[no wall]\n+ option 0.1 [target] [ no target no wall ] -> [ ] [ target ]\n+ option 0.1 [ target ] [ blob ] [ no target no wall ] [ no obstacle ] -> [ ] [ ] [ target ] [ blob ]\n\n\n(\n[target]->[]\n[blob]->[]\n[player]->[]\n)\n(\nchoose 1 [no wall] -> [ player ]\nchoose 1 option 0.1 [ no target no wall ] [ no obstacle ] -> [ target ] [ blob ]\n)\n(\nchoose 1 option 0.1 [no target ] -> [ target ]\noption 0.1 [ target | no target no wall] ->[target | target]\n)\n\n(choose 10 option 0.1 right [ no wall|blob | no obstacle|no wall] -> [| blob_l | blob_r |]\n+ option 0.1 down [ no wall|blob | no obstacle | no wall ] -> [ |blob_u | blob_d |]\n+ option 0.1 right [no wall| no obstacle | blob_l |no wall] -> [| blob_l | blob_h |]\n+ option 0.1 down [no wall| no obstacle | blob_u |no wall] -> [ |blob_u | blob_v |]\n+ option 0.1 []->[])\n\n\nchoose 4 [no wall no target ] -> [ target ]r\n\n\n\n()()()()()()()()\n\n\nchoose 1 [ no obstacle ] -> [ player ]\n\nchoose 1 [ no obstacle ] ->[blob target ]\n\n\nchoose 1 [ no obstacle ] [no target ] ->[blob] [target ]\n\nchoose 10 option 0.1 right [ |blob | no obstacle|] -> [| blob_l | blob_r |]\n+ option 0.1 down [ |blob | no obstacle | ] -> [ |blob_u | blob_d |]\n+ option 0.1 right [| no obstacle | blob_l |] -> [| blob_l | blob_h |]\n+ option 0.1 down [| no obstacle | blob_u |] -> [ |blob_u | blob_v |]\n+ option 0.1 []->[]\n\n\nright [ wall | blob_l | blob_h | blob_h | blob_r ] -> [ wall | blob_l | blob_h | blob_r | ]\ndown [ wall | blob_u | blob_h | blob_h | blob_l ] -> [ wall | blob_u | blob_h | blob_l | ]\n\n\n\n\n\n\n)\n\n",[2,2,1,2,3,4,1,2,2,3,1,3,1,0,1,2,2,3,0,2,3,0,1,3,3,3,3,0,0,3,2,1,0,0,3,0,0,1,0,0,0,2,2,1,1,1,"restart",2,2,0,0,0,0,1,1,2,2,2,2,3,2,0,0,0,0,1,0,0,3,3,3,3,2,2,2,2,1,2,2,0,0,0,0,3,2,2,2,2,2,2,2,1,0,0,0,0,0,2,2,0,0,3,2,2,2,1,1,0,0,0,0],"background wall:0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background:1,1,1,1,\n1,1,1,1,1,1,1,0,0,\n1,1,1,1,1,1,1,1,1,\n1,1,0,0,1,1,1,background blob_u target:2,background blob_v:3,\n3,3,background blob_d:4,1,1,1,0,0,1,\n1,background blob target:5,background player:6,2,3,3,3,4,1,\n1,0,0,1,1,1,5,1,1,\n1,1,1,1,1,0,0,1,1,\n1,1,1,1,1,1,1,1,1,\n0,0,1,1,1,1,1,1,1,\n1,1,1,1,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,\n",16,"1627892574193.6548"] + "SLIME VAT FILLER", + ["title SLIME VAT FILLER\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color darkgreen\ntext_color yellow\n\nrun_rules_on_level_start\n\ncolor_palette 1\n\n========\nOBJECTS\n========\n\nBackground\ndarkblue\n\nwall\nblue\n\nplayer\npink red\n.000.\n.000.\n00000\n.111.\n.1.1.\n\nblob\ngreen darkgreen\n.000.\n01110\n01110\n01110\n.000.\n\n\nblob_l\ngreen darkgreen\n.0000\n01111\n00101\n01111\n.0000\n\n\nblob_r\ngreen darkgreen\n0000.\n11110\n10100\n11110\n0000.\n\n\nblob_u\ngreen darkgreen\n.000.\n01010\n01110\n01010\n01110\n\n\nblob_d\ngreen darkgreen\n01110\n01010\n01110\n01010\n.000.\n\nblob_h\ngreen darkgreen\n00000\n11111\n10101\n11111\n00000\n\nblob_v\ngreen darkgreen\n01110\n01010\n01110\n01010\n01110\n\n\n\ntarget \nyellow\n0...0\n.....\n.....\n.....\n0...0\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = wall\nP = Player\nb = blob\nl = blob_l\nr = blob_r\nu = blob_u\nd = blob_d\nh = blob_h\nv = blob_v\nt = target\n\nk = player and target\n\n\n* = blob\n@ = blob and Target\nO = Target\n\n\n\ngoostuff = blob or blob_l or blob_r or blob_u or blob_d or blob_h or blob_v\n\nobstacle = wall or goostuff\n\n0 = blob_l and target\n\n=======\nSOUNDS\n=======\nsfx1 78001905\nsfx2 95814301\nendlevel 17589703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, wall, goostuff\nTarget\n\n======\nRULES\n======\n\n\n\n(was passiert, wenn man in der mitte ist? -_-)\n\n(2x1 -> 1x1 )\n\nright [ > player | blob_l | blob_r ] -> [ > player | | blob ] sfx2\nleft [ > player | blob_r | blob_l ] -> [ > player | | blob ] sfx2\nup [ > player | blob_d | blob_u ] -> [ > player | | blob ] sfx2\ndown [ > player | blob_u | blob_d ] -> [ > player | | blob ] sfx2\n\n\n( (n+1)x1 -> (n)x1 )\n\nright [ > player | blob_l | blob_h ] -> [ > player | | blob_l ] sfx2\nleft [ > player | blob_r | blob_h ] -> [ > player | | blob_r ] sfx2\nup [ > player | blob_d | blob_v ] -> [ > player | | blob_d ] sfx2\ndown [ > player | blob_u | blob_v ] -> [ > player | | blob_u ] sfx2\n\n\n\n(1x1 -> 2x1)\nright [ no obstacle | < player | blob ] -> [ player | blob_l | blob_r ] sfx1\nleft [ no obstacle | < player | blob ] -> [ player | blob_r | blob_l ] sfx1\nup [ no obstacle | < player | blob ] -> [ player | blob_d | blob_u ] sfx1\ndown [ no obstacle | < player | blob ] -> [ player | blob_u | blob_d ] sfx1\n\n\n\n( (n)x1 -> (n+1)x1)\nright [ no obstacle | < player | blob_l ] -> [ player | blob_l | blob_h ] sfx1\nleft [ no obstacle | < player | blob_r ] -> [ player | blob_r | blob_h ] sfx1\nup [ no obstacle | < player | blob_d ] -> [ player | blob_d | blob_v ] sfx1\ndown [ no obstacle | < player | blob_u ] -> [ player | blob_u | blob_v ] sfx1\n\n\n([ > player | blob ] -> [ > player | > blob ])\n\n[ > goostuff | wall ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nall blob on target\nall goostuff on target\n\n=======\nLEVELS\n=======\n\nmessage Get the slime into the yellow vats! Fill all the vats this way with slime!\n\nmessage level 1 of 10\n######\n#....#\n#.b..#\n#....#\n#p.t.#\n#....#\n######\n\n\nmessage level 2 of 10\n\n######\n#....#\n#.tt.#\n#.bb.#\n#....#\n#.p..#\n######\n\nmessage level 3 of 10\n\n######\n#....#\n#...b#\n#.b.t#\n#..t.#\n#p...#\n######\n\n\nmessage level 4 of 10\n\n(Easy but ok)\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\nmessage level 5 of 10\n\n(hardish)\n####..\n#@.#..\n#..###\n#.t..#\n#..b.#\n#p.###\n####..\n\nmessage level 6 of 10\n\n#########\n#.......#\n#.......#\n#.b.t...#\n#.b.pt..#\n#.b...t.#\n#.......#\n#.......#\n#########\n\nmessage level 7 of 10\n(hard)\n######\n#....#\n#.#p.#\n#.b.b#\n#.t.t#\n#....#\n######\n\n\nmessage level 8 of 10\n(good, medium-hard)\n#########\n#.......#\n#.......#\n#...t...#\n#..tpt..#\n#...t...#\n#.......#\n#...b...#\n#..b.b..#\n#...b...#\n#.......#\n#.......#\n#########\n\nmessage level 9 of 10\n(not so hard, but 75% chance of being amusing?)\n#########\n#...#...#\n#.p.b.t.#\n#.......#\n##b.t.b##\n#.......#\n#.t.b.t.#\n#...#...#\n#########\n\nmessage level 10 of 10\n\nmessage MY PASSPORT HAS EXPIRED. I need to take a new photo. NO SILLY FACES ALLOWED.\n(cripes!)\n#######\n##...##\n#.b.b.#\n#.t.t.#\n#..@..#\n##p..##\n#######\n\nmessage Congratulations - you got your new passport\n\n........\n........\n...##...\n..####..\n..####..\n...##...\n........\n..####..\n........\n..####..\n........\n........\n\nmessage The End\n\n\n(\n\n\n########\n#......#\n#.p....#\n#..bbt.#\n#.t....#\n#......#\n########\n\n\n(early level?)\n########\n#...0r.#\n#.O.p..#\n#.lr...#\n#####..#\n....####\n\n\n\n\n(too easy)\n..####...\n###..####\n#.t....@#\n#.#b.#..#\n#....#p.#\n#########\n\n#########\n#...#...#\n#...b.t.#\n#.......#\n##b.t.b##\n#.......#\n#.tpb.t.#\n#...#...#\n#########\n\n\n#########\n#...u...#\n#...d...#\n#b.lhr.b#\n#...u...#\n#.p.v...#\n#...d...#\n#########\n\n#########\n#...#...#\n#.t.u.t.#\n#...d...#\n##b.lhr##\n#...u...#\n#.t.d.t.#\n#p..#...#\n#########\n\n\n#######\n#..u..#\n#..d..#\n#b.lhr#\n#..u..#\n#p.d..#\n#######\n\n##########\n#..uuuu..#\n#..dddd..#\n#lhhrplhr#\n#..uuuu..#\n#..dddd..#\n##########\n\n#########\n#...#...#\n#...u.t.#\n#...d...#\n##b.0hr##\n#...u...#\n#.t.d.t.#\n#.p.#...#\n#########\n\n#########\n#.......#\n#.......#\n#...t...#\n#..tpt..#\n#...t...#\n#.......#\n#...b...#\n#..b.b..#\n#...b...#\n#.......#\n#.......#\n#########\n\n#########\n#.......#\n#...t...#\n#..t.t..#\n#...t...#\n#.......#\n#...p...#\n#.......#\n#...b...#\n#..b.b..#\n#...b...#\n#.......#\n#########\n\n\n\n#########\n#.......#\n#..ttt..#\n#..t.t..#\n#..ttt..#\n#.......#\n#...p...#\n#.......#\n#..bbb..#\n#..b.b..#\n#..bbb..#\n#.......#\n#########\n\n\n######\n#....#\n#.b..#\n#....#\n#p.t.#\n#....#\n######\n\n\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######.#####\n#....###...#\n#........#p#\n#.bt#.tb...#\n#...########\n#####.......\n\nmessage level 2 of 10\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*O.#\n##.*P*.#\n#..O*O.#\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\n\n\n\n######\n#....#\n#.b0r#\n#...t#\n#.p..#\n######\n\n\n\n########\n#......#\n#.b....#\n#..tp..#\n#......#\n#......#\n########\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.lr....#\n#.t..p..#\n#@......#\n#########\n\n\n(soll schwierig sein)\n#######\n##...##\n#.b.b.#\n#.t.t.#\n#..@..#\n##p..##\n#######\n\n)\n\n(\n\n\n\nchoose 1 option 0.1 [no wall]->[wall]\n+ option 0.1 [wall]->[no wall]\n+ option 0.1 [target] [ no target no wall ] -> [ ] [ target ]\n+ option 0.1 [ target ] [ blob ] [ no target no wall ] [ no obstacle ] -> [ ] [ ] [ target ] [ blob ]\n\n\n(\n[target]->[]\n[blob]->[]\n[player]->[]\n)\n(\nchoose 1 [no wall] -> [ player ]\nchoose 1 option 0.1 [ no target no wall ] [ no obstacle ] -> [ target ] [ blob ]\n)\n(\nchoose 1 option 0.1 [no target ] -> [ target ]\noption 0.1 [ target | no target no wall] ->[target | target]\n)\n\n(choose 10 option 0.1 right [ no wall|blob | no obstacle|no wall] -> [| blob_l | blob_r |]\n+ option 0.1 down [ no wall|blob | no obstacle | no wall ] -> [ |blob_u | blob_d |]\n+ option 0.1 right [no wall| no obstacle | blob_l |no wall] -> [| blob_l | blob_h |]\n+ option 0.1 down [no wall| no obstacle | blob_u |no wall] -> [ |blob_u | blob_v |]\n+ option 0.1 []->[])\n\n\nchoose 4 [no wall no target ] -> [ target ]r\n\n\n\n()()()()()()()()\n\n\nchoose 1 [ no obstacle ] -> [ player ]\n\nchoose 1 [ no obstacle ] ->[blob target ]\n\n\nchoose 1 [ no obstacle ] [no target ] ->[blob] [target ]\n\nchoose 10 option 0.1 right [ |blob | no obstacle|] -> [| blob_l | blob_r |]\n+ option 0.1 down [ |blob | no obstacle | ] -> [ |blob_u | blob_d |]\n+ option 0.1 right [| no obstacle | blob_l |] -> [| blob_l | blob_h |]\n+ option 0.1 down [| no obstacle | blob_u |] -> [ |blob_u | blob_v |]\n+ option 0.1 []->[]\n\n\nright [ wall | blob_l | blob_h | blob_h | blob_r ] -> [ wall | blob_l | blob_h | blob_r | ]\ndown [ wall | blob_u | blob_h | blob_h | blob_l ] -> [ wall | blob_u | blob_h | blob_l | ]\n\n\n\n\n\n\n)\n\n", [2, 2, 1, 2, 3, 4, 1, 2, 2, 3, 1, 3, 1, 0, 1, 2, 2, 3, 0, 2, 3, 0, 1, 3, 3, 3, 3, 0, 0, 3, 2, 1, 0, 0, 3, 0, 0, 1, 0, 0, 0, 2, 2, 1, 1, 1, "restart", 2, 2, 0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 3, 2, 0, 0, 0, 0, 1, 0, 0, 3, 3, 3, 3, 2, 2, 2, 2, 1, 2, 2, 0, 0, 0, 0, 3, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 2, 2, 0, 0, 3, 2, 2, 2, 1, 1, 0, 0, 0, 0], "background wall:0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background:1,1,1,1,\n1,1,1,1,1,1,1,0,0,\n1,1,1,1,1,1,1,1,1,\n1,1,0,0,1,1,1,background blob_u target:2,background blob_v:3,\n3,3,background blob_d:4,1,1,1,0,0,1,\n1,background blob target:5,background player:6,2,3,3,3,4,1,\n1,0,0,1,1,1,5,1,1,\n1,1,1,1,1,0,0,1,1,\n1,1,1,1,1,1,1,1,1,\n0,0,1,1,1,1,1,1,1,\n1,1,1,1,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,\n", 16, "1627892574193.6548"] ], [ - "A CLEAR VIEW OF THE SKY", - ["title A CLEAR VIEW OF THE SKY\nauthor increpare\nhomepage www.increpare.com\n\nnorepeat_action\n\nrun_rules_on_level_start\n\ncolor_palette 2\n\nbackground_color #005784\ntext_color lightblue\n\n(uses https://github.com/increpare/Zersto-rungto generate levels)\n========\nOBJECTS\n========\n\nbackground\nblue\n\nlandbackground\ngreen\n\n\nwall \ndarkblue gray lightgray\n00000\n01110\n01110\n01110\n00000\n\nplayer_h\ntransparent\n.....\n..0..\n.000.\n..0..\n.....\n\n\nplayer_v\nyellow\n.....\n..0..\n.000.\n..0..\n.....\n\n\nfenster\n#005784\n\n\nfenster_up\n#1d3d60 lightblue\n00000\n.....\n.....\n.....\n.....\n\nfenster_down\ndarkblue #17669f\n.....\n.....\n.....\n.....\n11111\n\nfenster_left\n#1d3d60 #17669f\n1....\n1....\n1....\n1....\n1....\n\nfenster_right\n#1d3d60\n....0\n....0\n....0\n....0\n....0\n\nhtarget\norange\n.....\n.....\n00000\n.....\n.....\n\n\nvtarget\norange\n..0..\n..0..\n..0..\n..0..\n..0..\n\ninventar\ndarkblue\n\nbang\n yellow red\n...0.\n..00.\n.010.\n.00..\n.0...\n\nbang_schatten\ndarkgray\n...0.\n..00.\n.0.0.\n.00..\n.0...\n\nbond_u\ndarkblue gray lightgray\n.111.\n.....\n.....\n.....\n.....\n\n\n\nbond_d\ndarkblue gray lightgray\n.....\n.....\n.....\n.....\n.111.\n\n\n\nbond_l\ndarkblue gray lightgray\n.....\n1....\n1....\n1....\n.....\n\n\n\nbond_r\ndarkblue gray lightgray\n.....\n....1\n....1\n....1\n.....\n\n\n\n\ntl\ntransparent\n\nexploding\ntransparent\n\nexplosion\nred yellow\n.1.1.\n10.01\n..0..\n10.01\n.1.1.\n\nnofall\nred\n.0...\n.....\n.....\n.....\n.....\n\nfall\nlightblue\n.0...\n.....\n.....\n.....\n.....\n\n\nsky_darker 7\ndarkred darkblue\n01010\n10101\n01110\n10101\n01011\n\nsky_darker2 8\ndarkbrown black\n01010\n10101\n01110\n10101\n01011\n\n\nsky_darker4 0\nblack darkblue\n11010\n10111\n01010\n11101\n01011\n\nsky_darker3 9\nwhite black\n11111\n11101\n11111\n11111\n11111\n\nsky_darker7 w\nblack\n\nsky_pink 2\nred darkblue\n01010\n10101\n01110\n10101\n01011\n\nsky_orange 1\nred lightred\n01000\n10101\n00010\n01010\n00000\n\n\nsky_red 3\nred orange\n01010\n10101\n01010\n10101\n01010\n\nsky_yellow 4\nyellow red orange\n12121\n21212\n10001\n00000\n00000\n\nsky_purple 5 \nred blue\n01010\n11101\n01010\n10111\n01010\n\n\nsky_land 6\ndarkgreen green\n01010\n10101\n01010\n10101\n01010\n\n=======\nLEGEND\n=======\n\nplayer = player_h or player_v\ntarget = htarget or vtarget\n\n. = Background\n# = wall\nP = Player_h\nf = fenster\n\ng = landbackground\n\nobstacle = wall\n~ = tl and fenster\ni = inventar\nb = bang and inventar\nbond = bond_u or bond_d or bond_l or bond_r\n\nfallblocker = wall or fenster\nanimation = 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 or 0\n=======\nSOUNDS\n=======\n\nsfx0 55915302 (bang)\nsfx1 90167907 (other agains)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nlandbackground, inventar\nwall\nbond_u\nbond_d\nbond_l\nbond_r\nexplosion\ntarget\nPlayer, fenster, bang,bang_schatten\nfenster_up\nfenster_down\nfenster_left\nfenster_right\ntl\nexploding\nnofall\nfall\n1,2,3,4, 5, 6,7,8,9,0,w\n\n======\nRULES\n======\n\n\nup [fenster | no fenster ]-> [ fenster fenster_up | ]\ndown [fenster | no fenster ]-> [ fenster fenster_down | ]\nleft [fenster | no fenster ]-> [ fenster fenster_left | ]\nright [fenster | no fenster ]-> [ fenster fenster_right | ]\n\n[ tl no exploding ] [bond]->[ tl ] [ ]\ndown [ tl no exploding ] [wall | wall]->[tl][ wall bond_d | wall bond_u ]\nright [ tl no exploding ] [wall | wall]->[tl][ wall bond_r | wall bond_l ]\n\n[tl]->[tl exploding]\n\ndown [ wall no bond_d | fallblocker ] -> [ wall nofall | fallblocker ]\n(floodfill)\nup [nofall bond_u | ] -> [ nofall bond_u | nofall ]\n+ down [nofall bond_d | ] -> [ nofall bond_d | nofall ]\n+ left [nofall bond_l | ] -> [ nofall bond_l | nofall ]\n+ right [nofall bond_r | ] -> [ nofall bond_r | nofall ]\n\n\ndown [ wall no nofall | no fallblocker ] -> [ wall fall | ]\n\nup [fall bond_u | ] -> [ fall bond_u | fall ]\n+ down [fall bond_d | ] -> [ fall bond_d | fall ]\n+ left [fall bond_l | ] -> [ fall bond_l | fall ]\n+ right [fall bond_r | ] -> [ fall bond_r | fall ]\n\n[fall wall]->[down wall] sfx1 again\n\n[fall]->[]\n[nofall]->[]\n\n[up wall bond ] -> [ up wall up bond ]\n+ [down wall bond ] -> [ down wall down bond ]\n+ [left wall bond ] -> [ left wall left bond ]\n+ [right wall bond ] -> [ right wall right bond ]\n\n[target]->[]\n\n\n[horizontal player ] -> cancel\n(\n[up player_h ] -> [ up player_v ]\n[down player_h ] -> [ down player_v ]\n[left player_v ] -> [ left player_h ]\n[right player_v ] -> [ right player_h ]\n)\n\nright left down [ landbackground | no landbackground no fenster ] -> [ landbackground | landbackground no fenster ]\n\n\n[player_h ] -> [ player_h htarget ]\n[player_v ] -> [ player_v vtarget ]\n\nhorizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nvertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\nup [ bond_u | explosion ] -> [ | explosion ]\ndown [ bond_d | explosion ] -> [ | explosion ]\nleft [ bond_l | explosion ] -> [ | explosion ]\nright [ bond_r | explosion ] -> [ | explosion ]\n\n[explosion wall ] -> [ no bond ] sfx1 again\n\n[explosion ] -> [ ] again\n\n[action player ] [bang] -> [ player ] [ action bang_schatten ]\n\n[action bang_schatten ] [ target ]-> [ action bang_schatten ] [ explosion ] sfx0 again\n\n\nlate [target]->[]\n\nlate [player_h ] -> [ player_h htarget ]\nlate [player_v ] -> [ player_v vtarget ]\n\nlate horizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nlate vertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll wall on landbackground \n\n=======\nLEVELS\n=======\n\n\n(OK LEVELS)\n\n\n\n\nmessage All those ugly buildings blocking our view.\nmessage Let's DEMOLISH them to SAVE OUR SKY\n\nmessage level 1 of 13 : FACTORY\n(sehr einfach)\n~ffffffffffffff\nfif...........f\nfif...........f\nfif...........f\nfif....p......f\nfif.....#.....f\nfif...#.#.....f\nfif...#.###...f\nfbf...######..f\nfif..###...#..f\nfbfg.#...#.#..f\nfif..#...#.#..f\nfffffffffffffff\n\n\nmessage Ah, what a lovely view of the sky!\n\nmessage level 2 of 13 : Lop-sided Electricity Poll\n(actually ok?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif...#......f\nfif...##.....f\nfif...#......f\nfbf...##.....f\nfif....##....f\nfbfggggg#ggggf\nfif.....#....f\nffffffffffffff\n\n\n\n\nmessage level 3 of 13 : Water Pump\n(ok anfängerlevel?)\n~fffffffff\nfif...p..f\nfbf###...f\nfif#.###.f\nfbf#.##..f\nfif#.##..f\nfbf#gg##gf\nfif...#..f\nffffffffff\n\n\n\n\nmessage level 4 of 13 : Electricity Supply\n\n(einfach/gut?)\n~ffffffff\nfif###p#f\nfbf#.#.#f\nfbf#####f\nfbf##.#.f\nfifg####f\nfffffffff\n\n\nmessage level 5 of 13 : Water Font\n(hard)\n~fffffffffffff\nfifp....###..f\nfbf...#.#.#..f\nfbf...####...f\nfbf...##.##..f\nfifgg#g####ggf\nffffffffffffff\n\n\n\nmessage level 6 of 13 : Angry Goose\n(tricky + sieht gut aus)\n~ffffffffffff\nfifp##.####.f\nfbf.####.##.f\nfbf...##.#..f\nfbf...###...f\nfifgg##gggggf\nfffffffffffff\n\n\n\nmessage level 7 of 13 : Lean-to\n(nice/ok!)\n~fffffffffff\nfifp..#....f\nfif..##....f\nfbf.##.....f\nfif..#.....f\nfbf####....f\nfif...##...f\nfbfggg##gggf\nfif....##..f\nffffffffffff\n\n\n(medium-hard / fun! )\nmessage level 8 of 13 : Treehouse\n~fffffffffffffff\nfifp...........f\nfif........#...f\nfif........#...f\nfif.......####.f\nfbf.......#..#.f\nfif......#####.f\nfbf........#...f\nfif......###...f\nfbf......##....f\nfif.....##.....f\nfbfgggg#g#gggggf\nfif...####.....f\nffffffffffffffff\n\n\n\n\nmessage level 9 of 13 : Ugly Antenna\n(i had fun solving this)\n~fffffffffffff\nfifp.###.####f\nfbf..#.#....#f\nfif..#.##.###f\nfbf..#.###.#.f\nfif..####.##.f\nfbfggggg###ggf\nfif.....#....f\nffffffffffffff\n\n\n\n\nmessage level 10 of 13 : 60's Futuristic settlement\n(ok/interesting to solve!)\n~fffffffffff\nfbf##p.####f\nfif#...#..#f\nfbf#...####f\nfif######.#f\nfbf###.##.#f\nfifggg##gg#f\nfbf...#.#.#f\nfif...###..f\nffffffffffff\n\n\nmessage level 11 of 13 : Dystopic settlement\n(futuristic city - hardlevel?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..##......f\nfif..#.......f\nfbf..##.#.#..f\nfif..##.###..f\nfbf..###.###.f\nfif....#.##..f\nfbf....#.#...f\nfifggg####gggf\nffffffffffffff\n\n\nmessage level 12 of 13 : Space elevator\n(interesting? seemingly impossible?)\n~fffffffffffff\nfif#####p....f\nfif#.#.#.....f\nfif#.####....f\nfif#.##......f\nfif#g#gggggggf\nfif#.#.......f\nfif#.##......f\nfif#.#.......f\nfif#.##......f\nfbf#.#.......f\nfif#.###.....f\nfbf#.#.###.#.f\nfif#.###..##.f\nfbf##..####..f\nfif.#######..f\nffffffffffffff\n\n\n\n\nmessage level 13 of 13 : Building seeminly purposely constructed to block my view.\n\n(can't easily solve meh - could be ok final level? FINAL LEVEL)\n~fffffffffffffffff\nfif###p..........f\nfif#.##..........f\nfif####..........f\nfif...##.........f\nfif####..........f\nfif.#............f\nfif##............f\nfif###...........f\nfif..#...........f\nfif#####.........f\nfif...#.#.#......f\nfif######.#......f\nfif###..###......f\nfif#..###........f\nfif.....##.......f\nfifgggggg#gggggggf\nfif......###.....f\nfif.......##.....f\nfif.......##.....f\nfbf........##....f\nfif........##....f\nfbf.........##...f\nfif.........##...f\nfbf.........#####f\nfif............#.f\nffffffffffffffffff\n\n\nmessage Ahh, the sky is clear again, just in time for the sunset\n\n\n\n5555555555555555555\n5555522222222555555\n5552222222222222555\n5222222222222222225\n2222222111112222222\n2222211111111122222\n2221111133311111222\n2211111334331111112\n6666666666666666666\n6666666666666666666\n6666666666666666666\n\n\n\n\n22222222222222222222\n22222222222222222222\n22222222222222222222\n22222222222222222222\n22222221212122222222\n22221212121212122222\n22212121111121212222\n22121211111112121222\n66666666666666666666\n66666666666666666666\n66666666666666666666\n\n\n\n00000077777777000000\n00007777777777770000\n00077777777777777000\n07777777777777777770\n77777722222222777777\n77772222222222227777\n77722221111122222777\n77222211111112222277\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n88888888888888888888\n88888880000088888888\n88888000000000088888\n88800000000000000888\n88000000000000000088\n80000000000000000008\n00000000222000000000\n00000002222200000000\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwww000wwwwwwwww\nwwwww000222000wwwwww\n00000022222220000000\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n\n\nw9wwwwwwww9wwwwwwwww\nwwwwwwwwwwwwww9www9w\nwwww9wwwwwwwwwwwwwww\nwwwwwwwww9wwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwww9www\nw9wwwww9wwwww9wwwwww\nwwwwwwwwwwwwwwwwwwww\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\nmessage The End \n\n\n\n(\n\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf.....#....f\nfif....####..f\nfbf...##..#..f\nfif#.#..###..f\nfbf#####.##..f\nfif.#.####...f\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfbfp.........f\nfif....#.....f\nfbf....##....f\nfif....###...f\nfbf......#...f\nfif..######..f\nfbf...#.#.#..f\nfif.....####.f\nfbf....#.##..f\nfifgg#####gggf\nffffffffffffff\n\n(microscope?)\n~fffffffffffff\nfbfp.........f\nfif......##..f\nfbf.....##...f\nfif....##....f\nfbf....#.##..f\nfif....#.#...f\nfbf....####..f\nfif.......#..f\nfbf..######..f\nfifgg####ggggf\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.......#.f\nfif......#.#.f\nfif......#.##f\nfif......####f\nfbf....####.#f\nfifggggg#g##gf\nfbf...#####.#f\nfif....######f\nfbf..#.###...f\nfif.######...f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.....#...f\nfif......##..f\nfif....####..f\nfif....##.#..f\nfbf....###...f\nfifgg#g####ggf\nfbf..####.#..f\nfif..#####...f\nfbf..#######.f\nfif....#####.f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.....#...f\nfif....#.#...f\nfif....###...f\nfif...###..#.f\nfbf...#.####.f\nfifgggg##ggggf\nfbf...#####..f\nfif....####..f\nfbf..######..f\nfif..########f\nffffffffffffff\n\n\n\n\n~fffffffffff\nfbfp...#.#.f\nfif....#.##f\nfbf....###.f\nfif.###.###f\nfbf...###.#f\nfif.....##.f\nfbfggg###ggf\nfif...#####f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp...##..f\nfif.######.f\nfbf....#.#.f\nfif...###..f\nfbf...#.##.f\nfif....###.f\nfbfggg#gg#gf\nfif..######f\nffffffffffff\n\n(hard, but looks nice)\n~fffffffffff\nfbfp...#..#f\nfif....####f\nfbf.....#.#f\nfif...###..f\nfbf.....###f\nfif...###..f\nfbfg##g#g##f\nfif..######f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp..#.##.f\nfif...#.#..f\nfbf...#####f\nfif....#.#.f\nfbf....###.f\nfif...###..f\nfbfg###gg#gf\nfif.#.####.f\nffffffffffff\n\n~fffffffffff\nfifp.......f\nfif........f\nfif#.......f\nfbf###.....f\nfif#.##....f\nfbf##......f\nfif##......f\nfbf#.......f\nfif##.#....f\nfbf##.#....f\nfif.####...f\nfbf.#.####.f\nfif....#.#.f\nfbfgggg###gf\nfif....#...f\nffffffffffff\n\n\n\n(hard/unsolved)\n~fffffffffffff\nfifp...####..f\nfif.....##...f\nfbf....##....f\nfif...#.##...f\nfbf...#.#..#.f\nfif...####.#.f\nfbf....#.###.f\nfif....#.#...f\nfbfggg#######f\nfif..#...#...f\nfbf.######...f\nfif...###....f\nffffffffffffff\n\n\n(haard, pretty, unsolved)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf.....#....f\nfif....###...f\nfbf...#####..f\nfif.....#..#.f\nfbf.....####.f\nfif..#.#.#.#.f\nfbf.##.#.##..f\nfif..#.####.#f\nfbfgg##ggg#g#f\nfif...#######f\nffffffffffffff\n\n\n(haard, pretty, ,unsolved)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf...##..#..f\nfif.##.####..f\nfbf..##.#.#..f\nfif...#.###..f\nfbf...##.##..f\nfif....###...f\nfbf......#...f\nfif....######f\nfbfgg###ggg##f\nfif....#####.f\nffffffffffffff\n\n(haard ,unsolved)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfbf........f\nfif....###.f\nfbf.....###f\nfif......#.f\nfbf......#.f\nfif.....##.f\nfbf......##f\nfif....####f\nfbf....##..f\nfif...###..f\nfbf....##..f\nfifggg##gggf\nffffffffffff\n\n\n\n(too tired, don't want to solve)\n~ffffffffffffffffffffffffffffffffffffff\nfifp..................................f\nfif.......#...........................f\nfif.......#...........................f\nfif#.....##...........................f\nfif##...##............................f\nfif.####.#............................f\nfif....####...........................f\nfif....##.#...........................f\nfif.......##..........................f\nfif......####.........................f\nfif........#.#........................f\nfif.......####........................f\nfif.......#.##........................f\nfifggggggg#g##ggggggggggggggggggggggggf\nfif........####.......................f\nfif...........#.......................f\nfif........######.....................f\nfif........#.##.##....................f\nfif............##.....................f\nfbf..........####.....................f\nfif............####...................f\nfbf...........##.###..................f\nfif..............#.#..................f\nfbf................#..................f\nfif................###................f\nfffffffffffffffffffffffffffffffffffffff\n\n\n~fffffffffffff\nfbfp.#.......f\nfif..###.....f\nfbf..##......f\nfif...##.....f\nfbf..#.##....f\nfif.#####....f\nfbf...#.#..#.f\nfif....######f\nfbf.....#..#.f\nfifggggg##gggf\nffffffffffffff\n\n\n~fffffffffffff\nfifp.....##.#f\nfif.......#.#f\nfif.......#.#f\nfif.......###f\nfif.........#f\nfif.........#f\nfifggggggggg#f\nfif.......###f\nfif......##.#f\nfif.....###.#f\nfif.......###f\nfif.........#f\nfif.......###f\nfif......#..#f\nfif......####f\nfif.......#.#f\nfif........##f\nfif.......###f\nfif.........#f\nfif........##f\nfif.......###f\nfif........##f\nfif........##f\nfif.........#f\nfbf..##...###f\nfif..#...##.#f\nfbf..##....##f\nfif..###.###.f\nfbf...##.#...f\nfif...#####..f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif.........#f\nfif.......###f\nfif........##f\nfif........##f\nfif........##f\nfif.....##.##f\nfifgggggg#g##f\nfif.....#####f\nfif.........#f\nfif.....#####f\nfif.........#f\nfif...#######f\nfif.....#...#f\nfif......####f\nfif.........#f\nfif.......###f\nfif......##.#f\nfif.......#.#f\nfif.......###f\nfif......#..#f\nfif......####f\nfbf.........#f\nfif.......###f\nfbf.......#.#f\nfif.......##.f\nfbf.....###..f\nfif..#####...f\nffffffffffffff\n\n\n\n~fffffffffffffffffffffff\nfifp.................##f\nfif.................#.#f\nfif.................###f\nfif...................#f\nfif...................#f\nfif..................##f\nfifgggggggggggggggggg##f\nfif..................##f\nfif.................#.#f\nfif.................#.#f\nfif.............###.###f\nfif..............#.##.#f\nfif..............###..#f\nfif...............#.#.#f\nfbf...............#.###f\nfif...##....#.##..###.#f\nfbf...###.###..#.#.#.##f\nfif....####.#..#######.f\nfbf......########..#.#.f\nfif..........##......#.f\nffffffffffffffffffffffff\n\n\n\n~ffffffffffffffffff\nfif##p.....#######f\nfif##.......##...#f\nfif#..#.......####f\nfif######.....####f\nfbf#....##..###..#f\nfif######...#.#.##f\nfbfg#gg####g##ggggf\nfif.....#.#####...f\nfbf.....###.#.....f\nfif.......##......f\nfffffffffffffffffff\n\n\n\n~ffffffffffffffffff\nfif########p......f\nfif#.#.#.#........f\nfif#.#.#.#...#....f\nfif#.######.######f\nfbf#g##gg#######ggf\nfif#.#...##.#..##.f\nfbf###....#.###...f\nfif##.....###.....f\nfbf#....####......f\nfif.......#.......f\nfffffffffffffffffff\n\n\n\n~fffffffffffffffffffffff\nfifp.......############f\nfif......####.#.......#f\nfif......#.#.#.########f\nfif.......##.#.#......#f\nfbfggggggg#g##g########f\nfif......###.#.#.#.####f\nfbf........######...#..f\nfif.....###....#.......f\nfbf.......######.......f\nfif.....########.......f\nffffffffffffffffffffffff\n\n\n\n\n\n~fffffffffffffffffffffff\nfif###p########.##.####f\nfif#####..#.#...####..#f\nfif...#.###.##....#.###f\nfif#######..#.#########f\nfbf.#...#.#.######.#...f\nfifg#####g##g##ggggggggf\nfbf.....######.........f\nfif.......#..##........f\nfbf.........###........f\nfif..........###.......f\nffffffffffffffffffffffff\n\n\n\n\n~fffffffffffffffffffffff\nfif#########p....##....f\nfif#.#.#.##....###.....f\nfif#.#.#.#....#.####...f\nfif#.#.#.#....#.#..#...f\nfbf#g#g###gggg#g###ggggf\nfif####..#.#..###.#....f\nfbf...####.#..##.......f\nfif...##.#.##.#.#......f\nfbf....##########......f\nfif....#....##.#.......f\nffffffffffffffffffffffff\n\n\n\n(hard, haven't solved manually)\n~fffffffffffff\nfif###p......f\nfbf#.#.......f\nfif#.###.....f\nfbf#.#.##....f\nfif####g####gf\nfbf##.####...f\nfif.##..#....f\nffffffffffffff\n\n\n(too hard)\n~fffffffffffff\nfif#####p....f\nfif#.#.#.....f\nfif#.##.#....f\nfif#.#####...f\nfif#.##.#....f\nfif#g#gggggggf\nfif#.####....f\nfif#.#.#..##.f\nfif#.###.#.##f\nfbf##..#####.f\nfif.####.....f\nfbf...###....f\nfif....#.....f\nfbf....#.##..f\nfif....###...f\nffffffffffffff\n\n\n\n(hard, looks ok, but meh)\n~fffffffffffff\nfif###p#.....f\nfif##.##.....f\nfif##.#......f\nfif####......f\nfif#.#.......f\nfbf#.#.......f\nfif###.......f\nfbf#.##......f\nfif#.##......f\nfbf##g##gggggf\nfif.###......f\nfbf.#.##.....f\nfif...#......f\nfbf..###.#...f\nfif....####..f\nffffffffffffff\n\n\n(hard, looks ok, but meh)\n~fffffffffffff\nfif##p#......f\nfif####......f\nfif#.##......f\nfif#.#.......f\nfif#.#.......f\nfbf###.......f\nfif#.........f\nfbf###.......f\nfif#.........f\nfbf#####gggggf\nfif#.##.#....f\nfbf..##.##...f\nfif..#####...f\nfbf.....###..f\nfif...###....f\nffffffffffffff\n\n(hmmm! not sure!)\n~ffffffffffffffffffffffffffff\nfifp........................f\nfif.........................f\nfif.........................f\nfif.........................f\nfif....................##...f\nfif.....................##..f\nfif....................##...f\nfif...................###...f\nfif...................##....f\nfif.................####....f\nfifgggggggggggggggggggg###ggf\nfif...............######.##.f\nfif..................#.#....f\nfif..................####...f\nfif................####.#...f\nfif................###......f\nfif..................##.....f\nfif..................#.##...f\nfif................###.##...f\nfbf................#.#####..f\nfif...............##.#......f\nfbf................####.....f\nfif................##.......f\nfbf.............#####.......f\nfif.........#####...........f\nfffffffffffffffffffffffffffff\n\n\n\n(soll schwierig sein - will nicht lösen!)\n~fffffffffff\nfifp.......f\nfif........f\nfbf........f\nfif....#...f\nfbf..###...f\nfif....##..f\nfbf...#.#..f\nfif...#.##.f\nfbf...#.###f\nfif..###.##f\nfbf..#.###.f\nfifgggg##ggf\nffffffffffff\n\n\n(soll schwierig sein - ja zu schwierig)\n~ffffffffffff\nfif.........f\nfbf.p.......f\nfif...#.....f\nfbf...#.....f\nfif...###...f\nfbf...#.##..f\nfif.#####...f\nfbf..#..###.f\nfif...##..#.f\nfbf....####.f\nfifggggg##ggf\nfffffffffffff\n\n(hard - will nicht lösen )\n~fffffffffffff\nfifp.........f\nfif......#...f\nfif.....##...f\nfif....##....f\nfbf....#.##..f\nfif....###...f\nfbfgggg##ggggf\nfif...###....f\nfbf.....#....f\nfif....##....f\nffffffffffffff\n\n\n(should be hard?)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfif...##...f\nfbf..###...f\nfif.###....f\nfbf...##...f\nfif....#...f\nfbf..#.##..f\nfifgg##g#g.f\nfbf...#.#..f\nfif...###..f\nffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n(zeimlich einfach!)\n~fffffffffff\nfifp.#..#..f\nfif..##.#..f\nfbf...#.##.f\nfif...####.f\nfbf....##..f\nfif..###...f\nfbfgggg#gggf\nfif....#...f\nffffffffffff\n\n\n(simple/ok)\n~ffffffffff\nfifp.#..##f\nfbf..#####f\nfif..#.#.#f\nfbf...##..f\nfif..##...f\nfbfggg###gf\nfif..##...f\nfffffffffff\n\n\n(simple/ok)\n~fffffffffff\nfifp......#f\nfif......##f\nfbf......##f\nfif.....###f\nfbf.......#f\nfifgggggg##f\nfbf.....##.f\nfif...###..f\nffffffffffff\n\n\n\n\n(simple/ok / ok maybe nicer than ok! :] )\n~fffffffffff\nfifp....#..f\nfif...#.##.f\nfbf...###..f\nfif..###...f\nfbf...#....f\nfif...##...f\nfbfgggg##ggf\nfif....#...f\nffffffffffff\n\n\n\n\n\n\n\n(beautiful-looking? not fun to solve)\n~fffffffffff\nfbf########f\nfif##p...##f\nfbf##...#.#f\nfif#.#..###f\nfbf#.#...##f\nfif###g#g##f\nfbf#.######f\nfif....#.#.f\nffffffffffff\n\n\n\n\n\n\n\n(ok to solve!)\n~fffffffffff\nfbfp...####f\nfif....#..#f\nfbf....####f\nfif#.###..#f\nfbf#.#.####f\nfif####gg##f\nfbf.#.####.f\nfif....#.#.f\nffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n~fffffffffffff\nfifp...######f\nfif.......#.#f\nfif.........#f\nfif.......###f\nfif.......#.#f\nfif.....#####f\nfifgggggg##g#f\nfif......#.##f\nfif......#.##f\nfbf......#.##f\nfif......####f\nfbf......##.#f\nfif...#..#...f\nfbf..#####...f\nfif.....###..f\nffffffffffffff\n\n\n(dunno? schwierig)\n~fffffffffffff\nfbf#####p####f\nfif...####..#f\nfbf....#.####f\nfif.....#.#.#f\nfbf.....#.###f\nfif.....#.#.#f\nfbf.....#.#.#f\nfifgggg######f\nfbf......###.f\nfif....###...f\nffffffffffffff\n\n\n\n\n\n~fffffffffffff\nfifp..#.###..f\nfbf..##.#.#..f\nfbf...####...f\nfbf....##.#..f\nfifg##g#g##ggf\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif...#......f\nfif...###....f\nfbf....###...f\nfif.....#....f\nfbf....###...f\nfif...##.....f\nfbfgg##ggggggf\nfif.#####....f\nffffffffffffff\n\n\n\n~ffffffff\nfif....#f\nfif....#f\nfif....#f\nfif..###f\nfif....#f\nfif.p.##f\nfif....#f\nfif#.###f\nfif#..#.f\nfbf####.f\nfif#.#..f\nfbf#g#ggf\nfif###..f\nfbf..##.f\nfif###..f\nfbf#.##.f\nfif####.f\nfffffffff\n\n\n(Tricky)\n~fffffffffff\nfbfp.......f\nfif........f\nfbf...#....f\nfif...##...f\nfbf..#.#...f\nfif..#.###.f\nfbf.###.#..f\nfif...####.f\nffffffffffff\n\n\n~fffffffffff\nfbfp..##...f\nfif....##..f\nfbf...##...f\nfif...###..f\nfbf...#....f\nfif...###..f\nfbfggggg#ggf\nfif...####.f\nffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif...#......f\nfif...#......f\nfif...##.....f\nfbf....#.....f\nfif....##....f\nfbf.....#....f\nfif....###...f\nfbfggg#gg##ggf\nfif...####...f\nffffffffffffff\n\n\n\n\n~fffffffffff\nfifp...###.f\nfif...##.#.f\nfbf..#.###.f\nfif..###.#.f\nfbfggg####gf\nfif.....###f\nfbf...###..f\nfif...####.f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif.....#..f\nfif...###..f\nfif.....###f\nfbf....##..f\nfif...##...f\nfbf.#.##..#f\nfif.##.##.#f\nfbf#g#g#g##f\nfif########f\nfbf#......#f\nfif########f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif..#.....f\nfbf..##....f\nfif..###...f\nfbf..#.#...f\nfif..###...f\nfbfggg###ggf\nfif....#...f\nffffffffffff\n\n\n~fffffffffff\nfifp...##..f\nfif....###.f\nfif...##.#.f\nfif...#.#..f\nfbf...#.#..f\nfif...#.###f\nfbf..######f\nfifggg##gggf\nfbf....####f\nfif....#..#f\nfbf####.###f\nfif.#######f\nffffffffffff\n\n\n\n\n~ffffffffff\nfifp......f\nfif.......f\nfif.......f\nfif.......f\nfbf..###..f\nfif..#.#..f\nfbf.#.##..f\nfif.#####.f\nfbf...#...f\nfif.###...f\nfbfgg#g##gf\nfif..###..f\nfffffffffff\n\n\n\n~ffffffff\nfifp###.f\nfbf.#.##f\nfif.####f\nfbf.##..f\nfif..##.f\nfffffffff\n\n\n~fffffffffff\nfifp###....f\nfbf.#.##...f\nfbf.#.##...f\nfbf.#.##...f\nfifgggg##ggf\nffffffffffff\n\n\n~fffffffffff\nfifp...###.f\nfbf..#.#.#.f\nfbf..##.##.f\nfbf.#####..f\nfifgggg####f\nffffffffffff\n\n\n\n\n~fffffffffffff\nfifp...##.#..f\nfif....#.##..f\nfbf....#.##..f\nfif....#.##..f\nfbf....#.#.##f\nfif...######.f\nfbfggg#g##gggf\nfif..####....f\nfbf.....##...f\nfif...###....f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp....#....f\nfif.....#.#..f\nfif.....###..f\nfif...###.#..f\nfbfggg#g#####f\nfif....##.###f\nfbf...#.###..f\nfif...####...f\nfbf......##..f\nfif...#####..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp..#.#..f\nfbf...###..f\nfif....##..f\nfbfggg##gggf\nfif....#...f\nffffffffffff\n\n\n\n~fffffffffffff\nfifp...##....f\nfif.....#....f\nfif.....#....f\nfifggggg#ggggf\nfif#.####....f\nfif#.#..#....f\nfbf##.###....f\nfif.###.#####f\nfbf....#.#...f\nfif..######..f\nffffffffffffff\n\n\n~fffffffffff\nfifp...#.#.f\nfbf....###.f\nfif....##..f\nfbfggg#g###f\nfif...###..f\nffffffffffff\n\n\n~fffffffff\nfbfp##.#.f\nfif..#.#.f\nfbf..####f\nfif.###..f\nfbf...##.f\nfifggg#ggf\nffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif.......#..f\nfbf.......#..f\nfif.......#..f\nfbf....#####.f\nfif...####...f\nfbf.....#....f\nfifggggg##gggf\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif...#......f\nfbf..##......f\nfif...#.#....f\nfbf...###....f\nfif....#.....f\nfbf....##....f\nfif....####..f\nfbf.......##.f\nfifggg######gf\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif.#........f\nfbf.##.......f\nfif..#.......f\nfbf.###......f\nfif.#####....f\nfbf...#.##...f\nfif....#.##..f\nfbf....##.##.f\nfifggggg#####f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp....#....f\nfif.....#....f\nfbf.....#....f\nfif.....##...f\nfbf...##.#...f\nfif....#.#...f\nfbf....#.###.f\nfifgggg#g#gggf\nfbf...##.##..f\nfif....#####.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp..#......f\nfif...#......f\nfbf..###..#..f\nfif....####..f\nfbf.....#....f\nfif.....###..f\nfbf.....#.#..f\nfifggggg##gggf\nfbf...###.#.#f\nfif....######f\nffffffffffffff\n\n\n~fffffffffffff\nfifp..#......f\nfif...##.....f\nfbf...#..#...f\nfif..###.#...f\nfbf....#.#...f\nfif..######..f\nfbf.....#....f\nfif.....###..f\nfbfggggg#ggggf\nfif...#####..f\nffffffffffffff\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf#.........f\nfif#.........f\nfbf##........f\nfif.######...f\nfbf..#.#.#...f\nfif..##.##...f\nfbf..##.#.#..f\nfif...######.f\nffffffffffffff\n\n\n(hard)\n~fffffffffffff\nfifp...##....f\nfif....#.....f\nfbf....#.....f\nfif....##....f\nfbf....##....f\nfif..##.##...f\nfbf...#.#....f\nfifggg#g##gggf\nfbf..###.##..f\nfif....####..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp..#.#..f\nfif...###..f\nfif...##...f\nfbfgggg##ggf\nfif....##..f\nfbf...##...f\nfif....##..f\nffffffffffff\n\n\n(trivial)\n~fffffffffff\nfifp.....#.f\nfif.....##.f\nfif.....#..f\nfbf...###..f\nfif.####...f\nfbfggg##gggf\nfif....##..f\nffffffffffff\n\n\n(too easy)\n~fffffffffff\nfifp.......f\nfif.....#..f\nfif.....#..f\nfif.....#..f\nfbf.....#..f\nfif.....#..f\nfbf...####.f\nfifggg##g##f\nfbf.##.#...f\nfif..###...f\nffffffffffff\n\n\n\n(nice shape)\n~fffffffffff\nfifp.......f\nfif........f\nfif...#....f\nfif...##...f\nfbf....##..f\nfif...#.#..f\nfbf..#####.f\nfifgggg##ggf\nfbf....##..f\nfif...###..f\nffffffffffff\n\n(nice?/meh)\n~fffffffffff\nfifp.......f\nfif...#....f\nfif...#....f\nfif...##...f\nfbf....##..f\nfif....##..f\nfbf.....#..f\nfifgggg##ggf\nfbf..#.###.f\nfif.#####..f\nffffffffffff\n\n\n\n~fffffffffffff\nfifp#..#.#...f\nfif.####.#...f\nfbf..#.####..f\nfbf..#.##....f\nfbf.###.###..f\nfbf...#.#....f\nfbf...#####..f\nfifgggg######f\nffffffffffffff\n\n\n~fffffffffffff\nfifp....##..#f\nfif....#.#..#f\nfbf...##.####f\nfbf....####.#f\nfbf..##.#..##f\nfbf..##.#####f\nfbf...#####..f\nfifggg#g#ggggf\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.......#.f\nfif.....##.#.f\nfbf.....#.##.f\nfbf....#####.f\nfbf#......#..f\nfbf##.#######f\nfbf.##...##.#f\nfif.######..#f\nffffffffffffff\n\n\n~fffffffffffff\nfifp...###...f\nfif.##.#.##..f\nfbf..#.#####.f\nfbf..#..#....f\nfbf.#####....f\nfbf..#..##...f\nfbf..###.####f\nfifggg####g##f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..........f\nfif......#...f\nfbf...####...f\nfif...#.#....f\nfbf...####...f\nfif....#.##.#f\nfbf....##.###f\nfif...######.f\nfbf..##...##.f\nfif..######..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp.##....f\nfif...##...f\nfbf....##..f\nfif...#.##.f\nfbf...####.f\nfif...#..#.f\nfbf..####..f\nfifgggg##ggf\nfbf....#.#.f\nfif....####f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif....##..f\nfbf..##.#..f\nfif...#.##.f\nfbf...####.f\nfif...#..#.f\nfbf...###.#f\nfif....####f\nfbfgggg#g#gf\nfif..###...f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif....#...f\nfbf....##..f\nfif..###...f\nfbf..#.#..#f\nfif..##...#f\nfbf.####.##f\nfif...#.###f\nfbfggg#g#ggf\nfif...###..f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif....#...f\nfbf..###...f\nfif...#....f\nfbf##.##.#.f\nfif.##.####f\nfbf..##.##.f\nfif...###..f\nfbfggggg#ggf\nfif...###..f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif..#.....f\nfbf..##.##.f\nfif...###..f\nfbf..#.####f\nfif.##.#...f\nfbf..####..f\nfif...#.#..f\nfbfggg####gf\nfif...##...f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp.#.....f\nfif..#.....f\nfbf..#.#...f\nfif..###...f\nfbf...#.##.f\nfif...####.f\nfbf...##.#.f\nfif....##..f\nfbf...#.###f\nfif...#####f\nffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif......#...f\nfbf......##..f\nfif.....#.#..f\nfbf.....#.#..f\nfif...######.f\nfbf.....##...f\nfif#....##...f\nfbf###.###...f\nfif..#.##....f\nfbfgg##g###ggf\nfif...##.##..f\nfbf....#.###.f\nfif....###.#.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfbf.....#....f\nfif....##....f\nfbf....##....f\nfif.....##...f\nfbf....#.##..f\nfif....####..f\nfbf....#..##.f\nfif....#####.f\nfbf...##...#.f\nfifggg#g#####f\nfbf..#.#...#.f\nfif.########.f\nffffffffffffff\n\n\n\n\n\n\n\n~fffffffffff\nfifp.......f\nfif...#....f\nfbf...#.#..f\nfif...###..f\nfbf....##..f\nfif..###...f\nfbfgggg##ggf\nfif...##...f\nffffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.....#.f\nfbf....###f\nfif..#.##.f\nfbf#####..f\nfif.###...f\nfbf...#...f\nfif.####..f\nfffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.......f\nfbf..#.#..f\nfif.##.#..f\nfbf..###..f\nfif#..####f\nfbf####...f\nfif.#.#...f\nfffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.......f\nfbf..#..#.f\nfif.#####.f\nfbf...#.#.f\nfif.####..f\nfbf.##.##.f\nfif...##..f\nfffffffffff\n\n\n~fffffffffff\nfifp..###..f\nfbf.#.#.#..f\nfbf.#.##...f\nfbf.##.##..f\nfbf..#####.f\nffffffffffff\n\n\n~fffffffffff\nfifp.#.#.#.f\nfbf..###.#.f\nfif...#####f\nfbf..#..##.f\nfif..####..f\nffffffffffff\n\n\n~fffffffffff\nfifp..###.#f\nfbf...#.#.#f\nfif....####f\nfbf...##.##f\nfif...####.f\nffffffffffff\n\n\n\n~fffffffffff\nfifp..###..f\nfbf.#.#.#..f\nfif.#..##..f\nfbf#####...f\nfif..#####.f\nffffffffffff\n\n\n\n\n(figure giving tribute - meh?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif.....#.#..f\nfbf....####..f\nfif....#.#...f\nfbf....#.###.f\nfif.######...f\nfbf.....###..f\nfifgg####g#ggf\nffffffffffffff\n\n\n\n\n\n\n\n\n~fffffffffffff\nfbfp.#.......f\nfif..###.....f\nfbf..##......f\nfif...##.....f\nfbf..#.##....f\nfif.#####....f\nfbf...#.#..#.f\nfif....######f\nfbf.....#..#.f\nfifggggg##gggf\nffffffffffffff\n\n\n~fffffffffffffffffffffffffffffffffffffffffff\nfifp.####...##########.###################.f\nfbf....###.##....###.##.#.......####...#...f\nfbf...##.#.#######..###.#########..........f\nfbf......###.#..#...#.#####..#.............f\nfifggggggg##gggggggggg##gg#gg#gggggggggggggf\nffffffffffffffffffffffffffffffffffffffffffff\n\n\n(interesting!)\n~fffffffffff\nfbf####p###f\nfif#......#f\nfbf###....#f\nfif#.#...##f\nfbf#.##..##f\nfif###ggg##f\nfbf##..###.f\nfif.####.#.f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp#######f\nfif.#.###.#f\nfbf...#..##f\nfif######.#f\nfbf.###.###f\nfifggg###g#f\nfbf..###..#f\nfif..#.#...f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp#######f\nfif.#.###.#f\nfbf...#..##f\nfif######.#f\nfbf.###.###f\nfifggg###g#f\nfbf..###..#f\nfif..#.#...f\nffffffffffff\n\n\n\n~fffffffffffff\nfif##p.......f\nfif##........f\nfif#.........f\nfif##........f\nfif##........f\nfif#.........f\nfbf###gggggggf\nfif#.##......f\nfbf##.##.....f\nfif.###..#...f\nfbf..##..#...f\nfif...######.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.......##f\nfif.........#f\nfif.......###f\nfif.......#.#f\nfif......##.#f\nfif......#.##f\nfbf.....#####f\nfifggg####g#gf\nfbf..##.##...f\nfif.....###..f\nfbf.....#....f\nfif.....#....f\nffffffffffffff\n\n\n~fffffffffffff\nfif###p......f\nfif#.#.......f\nfif#.#.......f\nfif#.#.......f\nfif####.....#f\nfifggg#gggg##f\nfif...##....#f\nfif....###..#f\nfbf.....#.###f\nfif.....###..f\nffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n(bad)\n~fffffffffffff\nfifp..#......f\nfif...#......f\nfbf..##......f\nfif..##......f\nfbf..#####...f\nfif...#..##..f\nfbf....######f\nfif.....#..#.f\nfbfggggg##g#gf\nfif....###...f\nffffffffffffff\n\n\n(trivial)\n~fffffffffff\nfifp.#.....f\nfif..##....f\nfbf..###...f\nfif..#.....f\nfbf..####..f\nfif....#...f\nfbfggg##gggf\nfif....#...f\nffffffffffff\n\n(pretty trivial)\n~fffffffffff\nfifp.....#.f\nfif......#.f\nfbf...#.##.f\nfif...#.#..f\nfbf...###..f\nfif...##...f\nfbf....#...f\nfifgggg#gggf\nffffffffffff\n\n\n\n\n(fiine / easy )\n~fffffffffff\nfbfp.......f\nfif......#.f\nfbf......#.f\nfif.....##.f\nfbf....###.f\nfif....#...f\nfbf..###...f\nfif...##...f\nfbf...#.##.f\nfif...###..f\nffffffffffff\n\n\n(meh)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfbf........f\nfif........f\nfbf......#.f\nfif......##f\nfbf.....###f\nfif...###.#f\nfbf.....#.#f\nfif..######f\nfbf...#.#.#f\nfif....###.f\nfbf...##.#.f\nfifgg######f\nffffffffffff\n\n\n\n\n(pretty easy)\n~fffffffffff\nfbfp.......f\nfif........f\nfbf.....##.f\nfif......##f\nfbf.....##.f\nfif....#.##f\nfbf....####f\nfif...###..f\nfbf....##..f\nfif...##...f\nffffffffffff\n\n\n\n\n(easy/arbirtaray/pretty)\n~fffffffffffff\nfif.....p....f\nfif..#.#.....f\nfif..###.....f\nfif...#..#.#.f\nfif...#..###.f\nfbf...#...#..f\nfifg###...#..f\nfbf.#.....#..f\nfif.#.....#..f\nffffffffffffff\n\n\n\n(too trivial)\n~fffffffffffffffffffffffffffffffff\nfifp.............................f\nfif......#.......................f\nfif.....##.......................f\nfif.....##.......................f\nfif...####.......................f\nfif....#.#.......................f\nfif.....###......................f\nfif......#.......................f\nfif......#...#...................f\nfif.....######...................f\nfifggggggg####gggggggggggggggggggf\nfif..........#...................f\nfif..........#...................f\nfif..........##..................f\nfif..........##..................f\nfif.........###..................f\nfbf...........##.................f\nfif...........##.................f\nfbf............###.#.............f\nfif............######............f\nffffffffffffffffffffffffffffffffff\n\n\n(meh)\n~fffffffffffffffffffffffffffffffff\nfifp.............................f\nfif..............................f\nfif.........#....................f\nfif.........#....................f\nfif........###...................f\nfif..........#...................f\nfif.......#####..................f\nfif......##..###.................f\nfif.....##....##.................f\nfif.....#.....#..................f\nfifgggggggggg###gggggggggggggggggf\nfif...........##.................f\nfif...........#.#................f\nfif...........###................f\nfif............###...............f\nfif.............###..............f\nfbf...............###............f\nfif...............#.##...........f\nfbf...............##.............f\nfif...............#..............f\nffffffffffffffffffffffffffffffffff\n\n\n\n\n\n(meh)\n~fffffffffffffffffffffffffffffffffffffffffff\nfifp.##################.###################f\nfbf...#.#.##.##.##.#..#.#.#.##.#.....#.#.##f\nfif...#.#....##...#########.....######.#.#.f\nfbfgggggggggggggg##g#g##gggggggggg#ggggggggf\nfif...............#....##........###.......f\nffffffffffffffffffffffffffffffffffffffffffff\n\n\n(meh)\n~fffffffffffff\nfifp.........f\nfbf..........f\nfif......#...f\nfbf......#...f\nfif.....##...f\nfbf.....#....f\nfif....##....f\nffffffffffffff\n\n\n\n\n\n(looks good, but too easy?)\n~fffffffffff\nfbf########f\nfif#p.##..#f\nfbf###..###f\nfif#...####f\nfbf#####..#f\nfif#ggg####f\nfbf######.#f\nfif...##...f\nffffffffffff\n\n(trivial)\n~ffffffff\nfifp..##f\nfbf.#..#f\nfif.####f\nfbf.###.f\nfif..#..f\nfffffffff\n\n(trivial)\n~ffffffff\nfif#p...f\nfbf##.#.f\nfif####.f\nfbf..##.f\nfif.##..f\nfffffffff\n\n\n(Trivial)\n~ffffffff\nfifp..#.f\nfbf.#.##f\nfif.####f\nfbf.##.#f\nfif..#..f\nfffffffff\n\n\n(zu einfach)\n~ffffffffff\nfif##p.#..f\nfbf###.#..f\nfif#.###..f\nfbf#.##...f\nfif####...f\nfbfggg###gf\nfif...##..f\nfffffffffff\n\n\n(zu einfach?)\n~ffffffffff\nfifp...###f\nfbf....#.#f\nfif....###f\nfbf....#.#f\nfifgggg###f\nfbf####.##f\nfif.#####.f\nfffffffffff\n\n\n\n(meh)\n~fffffffffff\nfifp....###f\nfif....####f\nfbf....#..#f\nfif.#..####f\nfbfg#gg#gg#f\nfif.#######f\nfbf.....###f\nfif....##..f\nffffffffffff\n\n\n\n(meh)\n~fffffffffffff\nfif#####p....f\nfif#.##......f\nfif#.##......f\nfif#.#.##...#f\nfif#g#g###g##f\nfif####..#.##f\nfif##.####.##f\nfif....##.#.#f\nfbf.....#####f\nfif.....##.##f\nffffffffffffff\n\n\n(meh)\n~fffffffffffff\nfif###p......f\nfif#.#.......f\nfif#.##......f\nfif#.#.#...#.f\nfif#g#g##gg##f\nfif#.#.######f\nfif####..#.##f\nfif.#.#####.#f\nfbf....#.#.##f\nfif.....#####f\nffffffffffffff\n\n\n(trivial)\n~fffffffffffffffffffffff\nfif#########p.#########f\nfif#......#...#.......#f\nfif########....########f\nfif#.....#....##.#....#f\nfif#######gggg##g######f\nfif#.....###.#.####...#f\nfif#############.......f\nfif.#####...#..........f\nfbf.........##.........f\nfif..........##........f\nffffffffffffffffffffffff\n\n(trivial)\n~fffffffffffffffffffffff\nfif#######p#....#######f\nfif#.#.#.#.##....#.#.##f\nfif###.#.###..#..#.#.##f\nfif..#.#.#...###.######f\nfif########gg#g#g#gggg#f\nfif.##...##############f\nfif..#####..#...#.#.#..f\nfif..........####.#.#..f\nfbf..........##........f\nfif.........###........f\nffffffffffffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n(THE REST)\n\n(hard, couldn't solve myself)\n~fffffffffffffff\nfifp.........##f\nfif.........##.f\nfif.........###f\nfif........#..#f\nfbf........#.##f\nfif........#.#.f\nfbf.......#####f\nfif........#.##f\nfbf........#..#f\nfifggggggg##gggf\nfbf......##....f\nfif.....##.....f\nffffffffffffffff\n\n\n\n\n(solved first go, ok? ohne persönlichkeit) \n~fffffffffffff\nfbfp.......##f\nfif........#.f\nfbf........#.f\nfif.......##.f\nfbf......##..f\nfif.......#..f\nfbf......####f\nfif......##.#f\nfbf....###...f\nfif.....#....f\nffffffffffffff\n\n(too routine)\n~fffffffffffff\nfbfp.........f\nfif...#......f\nfbf...#......f\nfif..##......f\nfbf...##.....f\nfif.##.#.....f\nfbf..###.....f\nfif..#.##....f\nfbf....##....f\nfif.....##...f\nffffffffffffff\n\n(scheiße)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif..#.......f\nfbf..##......f\nfif...#......f\nfbf...##.....f\nfif....#.....f\nfbf....##....f\nfif.....#....f\nffffffffffffff\n\n\n(zu einfach/procedural?)\n~ffffffffffffff\nfifp..........f\nfif........#..f\nfif........#..f\nfbf.......###.f\nfif.......#.#.f\nfbf.......#...f\nfif.....###...f\nfbf......#....f\nfif......#....f\nfbf....###....f\nfif..####.....f\nfffffffffffffff\n\n\n\n\n\n(zu einfach)\n~fffffffffffff\nfbfp........#f\nfif.........#f\nfbf........##f\nfif.......###f\nfbf.......#..f\nfif.....###..f\nfbf.....#.#..f\nfif....###...f\nfbf....##....f\nfif.....#....f\nffffffffffffff\n\n(kein level)\n~fffffffffffff\nfif...p......f\nfif..........f\nfif..........f\nfif..#.......f\nfif..#.#####.f\nfif..#.....#.f\nfbf..#####.#.f\nfbf..#.....#.f\nfbf........#.f\nfbfgg.g#####gf\nfifgg.g#gggggf\nffffffffffffff\n\n(zu einfach)\n~ffffffffffffff\nfif...........f\nfif...........f\nfif...........f\nfif...p..#....f\nfif.#....#....f\nfif.#....#....f\nfif.#...##....f\nfif.#....##...f\nfbf.##....#...f\nfbfg.#..#.#...f\nfif..#..#.#...f\nfif..#..#.#...f\nfffffffffffffff\n\n\n\n\n\n(zu einfach?)\n~ffffffffff\nfif.......f\nfbf.#.#.#.f\nfif.#.#.#.f\nfbf.#####.f\nfif..#p#..f\nfbf.g###.gf\nfif.g.#g.gf\nfffffffffff\n\n(no level)\n~fffffffff\nfif...p..f\nfbf.g#.#.f\nfif.g###.f\nfbf....#.f\nfif...##.f\nfbfg..#..f\nfif...#..f\nffffffffff\n\n\n(no level)\nffffffff\nf......f\nf....#.f\nfg...#.f\nf..P.#.f\nf..#.#.f\nf..#.#.f\nf.##.#.f\nffffffff\n\n\n(zu einfach)\n~ffffffffff\nfifp....#.f\nfbf....###f\nfif.....##f\nfbf...###.f\nfif...##..f\nfbf...#...f\nfifg####ggf\nfffffffffff\n\n(kein Level)\n~fffffffffffff\nfif...p......f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbfg.........f\nfif..........f\nffffffffffffff\n\n\n\n(kein Level)\n~fffffffffffff\nfif#..p.#.#..f\nfbf########..f\nfbf#......#.#f\nfbf#.#####..#f\nfbf#.....#..#f\nfbf#..##.#..#f\nfbf#...#.#..#f\nfbf#####.####f\nfbf...#...#..f\nfbfg..#####..f\nfif....#.....f\nffffffffffffff\n\n\n\n\n\n(kein Level)\n~fffffffffffff\nfif...p......f\nfbf######....f\nfbf#....#....f\nfbf##........f\nfbf.#..###...f\nfbf.##.#.#...f\nfbf..#.#.#...f\nfbf..#.###...f\nfbf.##..#....f\nfbfg#...#....f\nfif.#...#....f\nffffffffffffff\n\n\n\n\n(kein Level)\n~fffffffffffff\nfif..........f\nfif.###......f\nfif.#.#...###f\nfif.###...#.#f\nfif.#...###..f\nfifg#.###....f\nfif.###.#....f\nfif.#..###...f\nfbf..p.#.#...f\nfbf...###....f\nfif...#.#....f\nffffffffffffff\n\n\n\n(zu einfach)\n~ffffffff\nfif##p..f\nfbf.####f\nfbf###.#f\nfbf...##f\nfif..##.f\nfffffffff\n\n(kein level)\n~fffffffffffff\nfbfp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..........f\nfif.....#....f\nfbf.....#....f\nfif....###...f\nfbf......#...f\nfif....###...f\nffffffffffffff\n\n(meh)\n~ffffffff\nfif##p..f\nfbf#....f\nfbf####.f\nfbf.##..f\nfif..#..f\nfffffffff\n\n(hmmm dunno -vllt zu einfach?)\n\n~fffffffffff\nfif#####p..f\nfbf##.####.f\nfbf##..##..f\nfbf.#..##..f\nfifggggg##gf\nffffffffffff\n\n(dunno?)\n~ffffffffffffffffff\nfifp............#.f\nfif............##.f\nfif.............##f\nfif..............#f\nfif..............#f\nfif............###f\nfif.........####.#f\nfbf...........##.#f\nfif..........##..#f\nfbf..........##...f\nfif.........###...f\nfbf........###....f\nfifgggggggg##gggggf\nfbf......###......f\nfif....#####......f\nfffffffffffffffffff\n\n(zu einfach)\n~ffffffff\nfif#p...f\nfbf#..#.f\nfbf####.f\nfbf..##.f\nfif..#..f\nfffffffff\n\n(boring!)\n~ffffffff\nfifp#.#.f\nfbf.###.f\nfif..##.f\nfbfg##ggf\nfif..#..f\nfffffffff\n\n(trivial)\n~fffffffffff\nfifp.....#.f\nfif......#.f\nfif......#.f\nfif.....##.f\nfbf.....#..f\nfif.....#..f\nfbfgggg##ggf\nfif....#...f\nffffffffffff\n\n(trivial)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif.......#..f\nfbf.......#..f\nfif......##..f\nfbf......##..f\nfif......#...f\nfbf.....##...f\nfifggggg#ggggf\nffffffffffffff\n\n\n(meh)\n~fffffffffff\nfifp.......f\nfif.#......f\nfbf.##.....f\nfif..#.....f\nfbf..##....f\nfif...#....f\nfbf...##...f\nfif....#...f\nffffffffffff\n\n\n(nicht interessant)\n~fffffffffffff\nfbfp.........f\nfif..........f\nfbf##........f\nfif#.........f\nfbf##........f\nfif#.........f\nfbf####......f\nfif.#.#......f\nfbf.###......f\nfif..###.#...f\nffffffffffffff\n\n(meh)\n~fffffffffffff\nfif#p........f\nfif##........f\nfif#.........f\nfif##........f\nfbf###.......f\nfif#.........f\nfbf##ggggggggf\nfif.##.......f\nfbf..#..#....f\nfif..#.###...f\nffffffffffffff\n\n\n\n\n\n\n\n\n(meh)\n~fffffffffffffffffffffffffffffffff\nfifp..............####...........f\nfbf..............#.#.#...........f\nfbf..............###.............f\nfbf.............###..#...........f\nfifggggggggggggggg#####ggggggggggf\nffffffffffffffffffffffffffffffffff\n\n\n\n(huh not so bad? but hard for some maybe? wait maybe i just solved by chance....)\n~fffffffffffff\nfifp......###f\nfif.#.#...#.#f\nfbf.#.##...##f\nfbf.####...##f\nfbf##..###.##f\nfbf######.#.#f\nfbf.....#####f\nfbf...###.##.f\nfbf...#.#....f\nfif....##....f\nffffffffffffff\n\n\n\nmessage level 5 of 10 : Gallows\n(hard - actually ok? medium difficulty?)\n~ffffffffffff\nfif.........f\nfifp.#......f\nfif..#......f\nfif..###....f\nfif..#......f\nfbf.####....f\nfif...###...f\nfbf...#.#...f\nfif.....#...f\nfbfggggg##ggf\nfif......##.f\nfffffffffffff\n\n\n\n\nmessage level 2 of 10 : ANTENNA 1\n(ok anfangerlevel?)\n~fffffffff\nfbfp#..#.f\nfif##..#.f\nfbf.#.##.f\nfif####.#f\nfbf#..###f\nfifggg#ggf\nffffffffff\n\n\n\nmessage level 3 of 10 : UFO\n(ok! / easy / Space invaders)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..#..#....f\nfif########..f\nfbf#.###..#..f\nfif.....####.f\nfbf..###.##..f\nfif....###...f\nffffffffffffff\n\n\n\n\n(\n(ok anfangerlevel)\n~fffffffff\nfbfp#..##f\nfif.##.##f\nfbf..###.f\nfif...###f\nfbf####..f\nfifggg#ggf\nffffffffff\n)\n\n\n\n\n(\n\n~fffffffffffff\nfifp.......#.f\nfif........##f\nfif........##f\nfif.........#f\nfbf.........#f\nfif.......###f\nfbf.......##.f\nfifggggggg##gf\nfbf.......#..f\nfif...#####..f\nffffffffffffff\n)\n\n\n(ok simple? NAH TOO SIMPLE)\n~ffffffffffffffffffffffffffff\nfifp........................f\nfif###......................f\nfif#.#......................f\nfif###......................f\nfif##.......................f\nfif##.......................f\nfif##.......................f\nfif#........................f\nfif##.......................f\nfif##.......................f\nfif##.......................f\nfif##..#.#..................f\nfif##.####..................f\nfif#####.#..................f\nfifgg#g#g#ggggggggggggggggggf\nfif..#.###..................f\nfif......##.................f\nfif......##.................f\nfif......#.#................f\nfif......####...............f\nfif.......#.#...............f\nfbf.......#.#...............f\nfif.....######..............f\nfbf.....#..#####.##.........f\nfif.........#.####..........f\nfffffffffffffffffffffffffffff\n\n\n\n\n(alien slug attack!)\nmessage level 6 of 10 : Alien Slug Attack\n~fffffffffffffffff\nfifp...####......f\nfbf....#####.....f\nfbf...##..##.....f\nfbf....#..##.....f\nfifgggggggg####ggf\nffffffffffffffffff\n\n\n\n\n\n(decent - middle-hard? -- too mich like final level? (difficulty/appearance-wise?)\n~fffffffffffffff\nfif#p..........f\nfif#...........f\nfif##..........f\nfif#...........f\nfbf###.........f\nfif#.#.........f\nfbf.##.#.......f\nfif..###.......f\nfbf...###......f\nfif....#...#...f\nfbfgggg######ggf\nfif......##....f\nffffffffffffffff\n)\n\n\n\n(fun to find the right points? MEH)\n~ffffffffffffffffffff\nfifp................f\nfif.................f\nfif...............##f\nfif................#f\nfif...............##f\nfif...............##f\nfif.............####f\nfif................#f\nfif..............###f\nfif...............##f\nfif................#f\nfif.........#.#...##f\nfif.........#.####.#f\nfif........####.####f\nfif............##...f\nfifgggggggg#######ggf\nfif........#..#.....f\nfif........######...f\nfif.........##......f\nfbf........##.......f\nfif.....####........f\nfbf......#..........f\nfif......#..........f\nfbf....###..........f\nfif.#######.........f\nfffffffffffffffffffff\n\n\n\n\n\n(wie ein gebäude aus - ziemlich einfach)\n~fffffffffffff\nfifp........#f\nfif........##f\nfif........##f\nfif........##f\nfbf.........#f\nfif.........#f\nfbfgggggggg##f\nfif......###.f\nfbf.......##.f\nfif....####..f\nffffffffffffff\n\n\n\n\n\n\n(nice/ok!)\n~ffffffffff\nfifp.....#f\nfbf.....##f\nfif....###f\nfbf....#.#f\nfif....###f\nfbfggg###gf\nfif..##...f\nfffffffffff\n\n\nmessage level 4 of 10 : Duck Tree\n(ducktree!)\n~fffffffffff\nfifp.##..##f\nfif.###.###f\nfbf...##.#.f\nfif..###.#.f\nfbf....####f\nfifgggg##ggf\nfbf....#...f\nfif....#...f\nffffffffffff\n\n\n\n)\n",[2,2,2,2,4],"background exploding fenster tl:0,background fenster fenster_right:1,1,1,1,1,1,1,1,background fenster:2,background fenster fenster_down:3,background inventar:4,\n4,background bang_schatten inventar:5,4,background bang inventar:6,4,6,4,background fenster fenster_up:7,2,background fenster fenster_left fenster_right:8,8,8,\n8,8,8,8,8,2,3,background:9,9,9,9,background htarget player_h:10,\n9,background landbackground:11,11,7,3,9,9,9,9,background htarget:12,background bond_r wall:13,11,\n11,7,3,9,9,9,9,background bond_d bond_r htarget wall:14,background bond_d bond_l bond_u wall:15,background bond_u landbackground wall:16,11,7,\n3,9,9,9,background bond_d wall:17,background bond_l bond_u htarget wall:18,background bond_d bond_r wall:19,background bond_r bond_u landbackground wall:20,11,7,3,9,\n9,9,9,12,background bond_d bond_l wall:21,background bond_d bond_l bond_u landbackground wall:22,20,7,3,9,9,9,\n9,12,9,11,background bond_l landbackground wall:23,7,3,9,9,9,9,12,\n9,11,11,7,3,9,9,9,9,12,9,11,\n11,7,2,background fenster fenster_left:24,24,24,24,24,24,24,24,2,\n",16,"1627892617303.8054"] + "A CLEAR VIEW OF THE SKY", + ["title A CLEAR VIEW OF THE SKY\nauthor increpare\nhomepage www.increpare.com\n\nnorepeat_action\n\nrun_rules_on_level_start\n\ncolor_palette 2\n\nbackground_color #005784\ntext_color lightblue\n\n(uses https://github.com/increpare/Zersto-rungto generate levels)\n========\nOBJECTS\n========\n\nbackground\nblue\n\nlandbackground\ngreen\n\n\nwall \ndarkblue gray lightgray\n00000\n01110\n01110\n01110\n00000\n\nplayer_h\ntransparent\n.....\n..0..\n.000.\n..0..\n.....\n\n\nplayer_v\nyellow\n.....\n..0..\n.000.\n..0..\n.....\n\n\nfenster\n#005784\n\n\nfenster_up\n#1d3d60 lightblue\n00000\n.....\n.....\n.....\n.....\n\nfenster_down\ndarkblue #17669f\n.....\n.....\n.....\n.....\n11111\n\nfenster_left\n#1d3d60 #17669f\n1....\n1....\n1....\n1....\n1....\n\nfenster_right\n#1d3d60\n....0\n....0\n....0\n....0\n....0\n\nhtarget\norange\n.....\n.....\n00000\n.....\n.....\n\n\nvtarget\norange\n..0..\n..0..\n..0..\n..0..\n..0..\n\ninventar\ndarkblue\n\nbang\n yellow red\n...0.\n..00.\n.010.\n.00..\n.0...\n\nbang_schatten\ndarkgray\n...0.\n..00.\n.0.0.\n.00..\n.0...\n\nbond_u\ndarkblue gray lightgray\n.111.\n.....\n.....\n.....\n.....\n\n\n\nbond_d\ndarkblue gray lightgray\n.....\n.....\n.....\n.....\n.111.\n\n\n\nbond_l\ndarkblue gray lightgray\n.....\n1....\n1....\n1....\n.....\n\n\n\nbond_r\ndarkblue gray lightgray\n.....\n....1\n....1\n....1\n.....\n\n\n\n\ntl\ntransparent\n\nexploding\ntransparent\n\nexplosion\nred yellow\n.1.1.\n10.01\n..0..\n10.01\n.1.1.\n\nnofall\nred\n.0...\n.....\n.....\n.....\n.....\n\nfall\nlightblue\n.0...\n.....\n.....\n.....\n.....\n\n\nsky_darker 7\ndarkred darkblue\n01010\n10101\n01110\n10101\n01011\n\nsky_darker2 8\ndarkbrown black\n01010\n10101\n01110\n10101\n01011\n\n\nsky_darker4 0\nblack darkblue\n11010\n10111\n01010\n11101\n01011\n\nsky_darker3 9\nwhite black\n11111\n11101\n11111\n11111\n11111\n\nsky_darker7 w\nblack\n\nsky_pink 2\nred darkblue\n01010\n10101\n01110\n10101\n01011\n\nsky_orange 1\nred lightred\n01000\n10101\n00010\n01010\n00000\n\n\nsky_red 3\nred orange\n01010\n10101\n01010\n10101\n01010\n\nsky_yellow 4\nyellow red orange\n12121\n21212\n10001\n00000\n00000\n\nsky_purple 5 \nred blue\n01010\n11101\n01010\n10111\n01010\n\n\nsky_land 6\ndarkgreen green\n01010\n10101\n01010\n10101\n01010\n\n=======\nLEGEND\n=======\n\nplayer = player_h or player_v\ntarget = htarget or vtarget\n\n. = Background\n# = wall\nP = Player_h\nf = fenster\n\ng = landbackground\n\nobstacle = wall\n~ = tl and fenster\ni = inventar\nb = bang and inventar\nbond = bond_u or bond_d or bond_l or bond_r\n\nfallblocker = wall or fenster\nanimation = 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 or 0\n=======\nSOUNDS\n=======\n\nsfx0 55915302 (bang)\nsfx1 90167907 (other agains)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nlandbackground, inventar\nwall\nbond_u\nbond_d\nbond_l\nbond_r\nexplosion\ntarget\nPlayer, fenster, bang,bang_schatten\nfenster_up\nfenster_down\nfenster_left\nfenster_right\ntl\nexploding\nnofall\nfall\n1,2,3,4, 5, 6,7,8,9,0,w\n\n======\nRULES\n======\n\n\nup [fenster | no fenster ]-> [ fenster fenster_up | ]\ndown [fenster | no fenster ]-> [ fenster fenster_down | ]\nleft [fenster | no fenster ]-> [ fenster fenster_left | ]\nright [fenster | no fenster ]-> [ fenster fenster_right | ]\n\n[ tl no exploding ] [bond]->[ tl ] [ ]\ndown [ tl no exploding ] [wall | wall]->[tl][ wall bond_d | wall bond_u ]\nright [ tl no exploding ] [wall | wall]->[tl][ wall bond_r | wall bond_l ]\n\n[tl]->[tl exploding]\n\ndown [ wall no bond_d | fallblocker ] -> [ wall nofall | fallblocker ]\n(floodfill)\nup [nofall bond_u | ] -> [ nofall bond_u | nofall ]\n+ down [nofall bond_d | ] -> [ nofall bond_d | nofall ]\n+ left [nofall bond_l | ] -> [ nofall bond_l | nofall ]\n+ right [nofall bond_r | ] -> [ nofall bond_r | nofall ]\n\n\ndown [ wall no nofall | no fallblocker ] -> [ wall fall | ]\n\nup [fall bond_u | ] -> [ fall bond_u | fall ]\n+ down [fall bond_d | ] -> [ fall bond_d | fall ]\n+ left [fall bond_l | ] -> [ fall bond_l | fall ]\n+ right [fall bond_r | ] -> [ fall bond_r | fall ]\n\n[fall wall]->[down wall] sfx1 again\n\n[fall]->[]\n[nofall]->[]\n\n[up wall bond ] -> [ up wall up bond ]\n+ [down wall bond ] -> [ down wall down bond ]\n+ [left wall bond ] -> [ left wall left bond ]\n+ [right wall bond ] -> [ right wall right bond ]\n\n[target]->[]\n\n\n[horizontal player ] -> cancel\n(\n[up player_h ] -> [ up player_v ]\n[down player_h ] -> [ down player_v ]\n[left player_v ] -> [ left player_h ]\n[right player_v ] -> [ right player_h ]\n)\n\nright left down [ landbackground | no landbackground no fenster ] -> [ landbackground | landbackground no fenster ]\n\n\n[player_h ] -> [ player_h htarget ]\n[player_v ] -> [ player_v vtarget ]\n\nhorizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nvertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\nup [ bond_u | explosion ] -> [ | explosion ]\ndown [ bond_d | explosion ] -> [ | explosion ]\nleft [ bond_l | explosion ] -> [ | explosion ]\nright [ bond_r | explosion ] -> [ | explosion ]\n\n[explosion wall ] -> [ no bond ] sfx1 again\n\n[explosion ] -> [ ] again\n\n[action player ] [bang] -> [ player ] [ action bang_schatten ]\n\n[action bang_schatten ] [ target ]-> [ action bang_schatten ] [ explosion ] sfx0 again\n\n\nlate [target]->[]\n\nlate [player_h ] -> [ player_h htarget ]\nlate [player_v ] -> [ player_v vtarget ]\n\nlate horizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nlate vertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll wall on landbackground \n\n=======\nLEVELS\n=======\n\n\n(OK LEVELS)\n\n\n\n\nmessage All those ugly buildings blocking our view.\nmessage Let's DEMOLISH them to SAVE OUR SKY\n\nmessage level 1 of 13 : FACTORY\n(sehr einfach)\n~ffffffffffffff\nfif...........f\nfif...........f\nfif...........f\nfif....p......f\nfif.....#.....f\nfif...#.#.....f\nfif...#.###...f\nfbf...######..f\nfif..###...#..f\nfbfg.#...#.#..f\nfif..#...#.#..f\nfffffffffffffff\n\n\nmessage Ah, what a lovely view of the sky!\n\nmessage level 2 of 13 : Lop-sided Electricity Poll\n(actually ok?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif...#......f\nfif...##.....f\nfif...#......f\nfbf...##.....f\nfif....##....f\nfbfggggg#ggggf\nfif.....#....f\nffffffffffffff\n\n\n\n\nmessage level 3 of 13 : Water Pump\n(ok anfängerlevel?)\n~fffffffff\nfif...p..f\nfbf###...f\nfif#.###.f\nfbf#.##..f\nfif#.##..f\nfbf#gg##gf\nfif...#..f\nffffffffff\n\n\n\n\nmessage level 4 of 13 : Electricity Supply\n\n(einfach/gut?)\n~ffffffff\nfif###p#f\nfbf#.#.#f\nfbf#####f\nfbf##.#.f\nfifg####f\nfffffffff\n\n\nmessage level 5 of 13 : Water Font\n(hard)\n~fffffffffffff\nfifp....###..f\nfbf...#.#.#..f\nfbf...####...f\nfbf...##.##..f\nfifgg#g####ggf\nffffffffffffff\n\n\n\nmessage level 6 of 13 : Angry Goose\n(tricky + sieht gut aus)\n~ffffffffffff\nfifp##.####.f\nfbf.####.##.f\nfbf...##.#..f\nfbf...###...f\nfifgg##gggggf\nfffffffffffff\n\n\n\nmessage level 7 of 13 : Lean-to\n(nice/ok!)\n~fffffffffff\nfifp..#....f\nfif..##....f\nfbf.##.....f\nfif..#.....f\nfbf####....f\nfif...##...f\nfbfggg##gggf\nfif....##..f\nffffffffffff\n\n\n(medium-hard / fun! )\nmessage level 8 of 13 : Treehouse\n~fffffffffffffff\nfifp...........f\nfif........#...f\nfif........#...f\nfif.......####.f\nfbf.......#..#.f\nfif......#####.f\nfbf........#...f\nfif......###...f\nfbf......##....f\nfif.....##.....f\nfbfgggg#g#gggggf\nfif...####.....f\nffffffffffffffff\n\n\n\n\nmessage level 9 of 13 : Ugly Antenna\n(i had fun solving this)\n~fffffffffffff\nfifp.###.####f\nfbf..#.#....#f\nfif..#.##.###f\nfbf..#.###.#.f\nfif..####.##.f\nfbfggggg###ggf\nfif.....#....f\nffffffffffffff\n\n\n\n\nmessage level 10 of 13 : 60's Futuristic settlement\n(ok/interesting to solve!)\n~fffffffffff\nfbf##p.####f\nfif#...#..#f\nfbf#...####f\nfif######.#f\nfbf###.##.#f\nfifggg##gg#f\nfbf...#.#.#f\nfif...###..f\nffffffffffff\n\n\nmessage level 11 of 13 : Dystopic settlement\n(futuristic city - hardlevel?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..##......f\nfif..#.......f\nfbf..##.#.#..f\nfif..##.###..f\nfbf..###.###.f\nfif....#.##..f\nfbf....#.#...f\nfifggg####gggf\nffffffffffffff\n\n\nmessage level 12 of 13 : Space elevator\n(interesting? seemingly impossible?)\n~fffffffffffff\nfif#####p....f\nfif#.#.#.....f\nfif#.####....f\nfif#.##......f\nfif#g#gggggggf\nfif#.#.......f\nfif#.##......f\nfif#.#.......f\nfif#.##......f\nfbf#.#.......f\nfif#.###.....f\nfbf#.#.###.#.f\nfif#.###..##.f\nfbf##..####..f\nfif.#######..f\nffffffffffffff\n\n\n\n\nmessage level 13 of 13 : Building seeminly purposely constructed to block my view.\n\n(can't easily solve meh - could be ok final level? FINAL LEVEL)\n~fffffffffffffffff\nfif###p..........f\nfif#.##..........f\nfif####..........f\nfif...##.........f\nfif####..........f\nfif.#............f\nfif##............f\nfif###...........f\nfif..#...........f\nfif#####.........f\nfif...#.#.#......f\nfif######.#......f\nfif###..###......f\nfif#..###........f\nfif.....##.......f\nfifgggggg#gggggggf\nfif......###.....f\nfif.......##.....f\nfif.......##.....f\nfbf........##....f\nfif........##....f\nfbf.........##...f\nfif.........##...f\nfbf.........#####f\nfif............#.f\nffffffffffffffffff\n\n\nmessage Ahh, the sky is clear again, just in time for the sunset\n\n\n\n5555555555555555555\n5555522222222555555\n5552222222222222555\n5222222222222222225\n2222222111112222222\n2222211111111122222\n2221111133311111222\n2211111334331111112\n6666666666666666666\n6666666666666666666\n6666666666666666666\n\n\n\n\n22222222222222222222\n22222222222222222222\n22222222222222222222\n22222222222222222222\n22222221212122222222\n22221212121212122222\n22212121111121212222\n22121211111112121222\n66666666666666666666\n66666666666666666666\n66666666666666666666\n\n\n\n00000077777777000000\n00007777777777770000\n00077777777777777000\n07777777777777777770\n77777722222222777777\n77772222222222227777\n77722221111122222777\n77222211111112222277\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n88888888888888888888\n88888880000088888888\n88888000000000088888\n88800000000000000888\n88000000000000000088\n80000000000000000008\n00000000222000000000\n00000002222200000000\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwww000wwwwwwwww\nwwwww000222000wwwwww\n00000022222220000000\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n\n\nw9wwwwwwww9wwwwwwwww\nwwwwwwwwwwwwww9www9w\nwwww9wwwwwwwwwwwwwww\nwwwwwwwww9wwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwww9www\nw9wwwww9wwwww9wwwwww\nwwwwwwwwwwwwwwwwwwww\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\nmessage The End \n\n\n\n(\n\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf.....#....f\nfif....####..f\nfbf...##..#..f\nfif#.#..###..f\nfbf#####.##..f\nfif.#.####...f\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfbfp.........f\nfif....#.....f\nfbf....##....f\nfif....###...f\nfbf......#...f\nfif..######..f\nfbf...#.#.#..f\nfif.....####.f\nfbf....#.##..f\nfifgg#####gggf\nffffffffffffff\n\n(microscope?)\n~fffffffffffff\nfbfp.........f\nfif......##..f\nfbf.....##...f\nfif....##....f\nfbf....#.##..f\nfif....#.#...f\nfbf....####..f\nfif.......#..f\nfbf..######..f\nfifgg####ggggf\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.......#.f\nfif......#.#.f\nfif......#.##f\nfif......####f\nfbf....####.#f\nfifggggg#g##gf\nfbf...#####.#f\nfif....######f\nfbf..#.###...f\nfif.######...f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.....#...f\nfif......##..f\nfif....####..f\nfif....##.#..f\nfbf....###...f\nfifgg#g####ggf\nfbf..####.#..f\nfif..#####...f\nfbf..#######.f\nfif....#####.f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.....#...f\nfif....#.#...f\nfif....###...f\nfif...###..#.f\nfbf...#.####.f\nfifgggg##ggggf\nfbf...#####..f\nfif....####..f\nfbf..######..f\nfif..########f\nffffffffffffff\n\n\n\n\n~fffffffffff\nfbfp...#.#.f\nfif....#.##f\nfbf....###.f\nfif.###.###f\nfbf...###.#f\nfif.....##.f\nfbfggg###ggf\nfif...#####f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp...##..f\nfif.######.f\nfbf....#.#.f\nfif...###..f\nfbf...#.##.f\nfif....###.f\nfbfggg#gg#gf\nfif..######f\nffffffffffff\n\n(hard, but looks nice)\n~fffffffffff\nfbfp...#..#f\nfif....####f\nfbf.....#.#f\nfif...###..f\nfbf.....###f\nfif...###..f\nfbfg##g#g##f\nfif..######f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp..#.##.f\nfif...#.#..f\nfbf...#####f\nfif....#.#.f\nfbf....###.f\nfif...###..f\nfbfg###gg#gf\nfif.#.####.f\nffffffffffff\n\n~fffffffffff\nfifp.......f\nfif........f\nfif#.......f\nfbf###.....f\nfif#.##....f\nfbf##......f\nfif##......f\nfbf#.......f\nfif##.#....f\nfbf##.#....f\nfif.####...f\nfbf.#.####.f\nfif....#.#.f\nfbfgggg###gf\nfif....#...f\nffffffffffff\n\n\n\n(hard/unsolved)\n~fffffffffffff\nfifp...####..f\nfif.....##...f\nfbf....##....f\nfif...#.##...f\nfbf...#.#..#.f\nfif...####.#.f\nfbf....#.###.f\nfif....#.#...f\nfbfggg#######f\nfif..#...#...f\nfbf.######...f\nfif...###....f\nffffffffffffff\n\n\n(haard, pretty, unsolved)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf.....#....f\nfif....###...f\nfbf...#####..f\nfif.....#..#.f\nfbf.....####.f\nfif..#.#.#.#.f\nfbf.##.#.##..f\nfif..#.####.#f\nfbfgg##ggg#g#f\nfif...#######f\nffffffffffffff\n\n\n(haard, pretty, ,unsolved)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf...##..#..f\nfif.##.####..f\nfbf..##.#.#..f\nfif...#.###..f\nfbf...##.##..f\nfif....###...f\nfbf......#...f\nfif....######f\nfbfgg###ggg##f\nfif....#####.f\nffffffffffffff\n\n(haard ,unsolved)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfbf........f\nfif....###.f\nfbf.....###f\nfif......#.f\nfbf......#.f\nfif.....##.f\nfbf......##f\nfif....####f\nfbf....##..f\nfif...###..f\nfbf....##..f\nfifggg##gggf\nffffffffffff\n\n\n\n(too tired, don't want to solve)\n~ffffffffffffffffffffffffffffffffffffff\nfifp..................................f\nfif.......#...........................f\nfif.......#...........................f\nfif#.....##...........................f\nfif##...##............................f\nfif.####.#............................f\nfif....####...........................f\nfif....##.#...........................f\nfif.......##..........................f\nfif......####.........................f\nfif........#.#........................f\nfif.......####........................f\nfif.......#.##........................f\nfifggggggg#g##ggggggggggggggggggggggggf\nfif........####.......................f\nfif...........#.......................f\nfif........######.....................f\nfif........#.##.##....................f\nfif............##.....................f\nfbf..........####.....................f\nfif............####...................f\nfbf...........##.###..................f\nfif..............#.#..................f\nfbf................#..................f\nfif................###................f\nfffffffffffffffffffffffffffffffffffffff\n\n\n~fffffffffffff\nfbfp.#.......f\nfif..###.....f\nfbf..##......f\nfif...##.....f\nfbf..#.##....f\nfif.#####....f\nfbf...#.#..#.f\nfif....######f\nfbf.....#..#.f\nfifggggg##gggf\nffffffffffffff\n\n\n~fffffffffffff\nfifp.....##.#f\nfif.......#.#f\nfif.......#.#f\nfif.......###f\nfif.........#f\nfif.........#f\nfifggggggggg#f\nfif.......###f\nfif......##.#f\nfif.....###.#f\nfif.......###f\nfif.........#f\nfif.......###f\nfif......#..#f\nfif......####f\nfif.......#.#f\nfif........##f\nfif.......###f\nfif.........#f\nfif........##f\nfif.......###f\nfif........##f\nfif........##f\nfif.........#f\nfbf..##...###f\nfif..#...##.#f\nfbf..##....##f\nfif..###.###.f\nfbf...##.#...f\nfif...#####..f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif.........#f\nfif.......###f\nfif........##f\nfif........##f\nfif........##f\nfif.....##.##f\nfifgggggg#g##f\nfif.....#####f\nfif.........#f\nfif.....#####f\nfif.........#f\nfif...#######f\nfif.....#...#f\nfif......####f\nfif.........#f\nfif.......###f\nfif......##.#f\nfif.......#.#f\nfif.......###f\nfif......#..#f\nfif......####f\nfbf.........#f\nfif.......###f\nfbf.......#.#f\nfif.......##.f\nfbf.....###..f\nfif..#####...f\nffffffffffffff\n\n\n\n~fffffffffffffffffffffff\nfifp.................##f\nfif.................#.#f\nfif.................###f\nfif...................#f\nfif...................#f\nfif..................##f\nfifgggggggggggggggggg##f\nfif..................##f\nfif.................#.#f\nfif.................#.#f\nfif.............###.###f\nfif..............#.##.#f\nfif..............###..#f\nfif...............#.#.#f\nfbf...............#.###f\nfif...##....#.##..###.#f\nfbf...###.###..#.#.#.##f\nfif....####.#..#######.f\nfbf......########..#.#.f\nfif..........##......#.f\nffffffffffffffffffffffff\n\n\n\n~ffffffffffffffffff\nfif##p.....#######f\nfif##.......##...#f\nfif#..#.......####f\nfif######.....####f\nfbf#....##..###..#f\nfif######...#.#.##f\nfbfg#gg####g##ggggf\nfif.....#.#####...f\nfbf.....###.#.....f\nfif.......##......f\nfffffffffffffffffff\n\n\n\n~ffffffffffffffffff\nfif########p......f\nfif#.#.#.#........f\nfif#.#.#.#...#....f\nfif#.######.######f\nfbf#g##gg#######ggf\nfif#.#...##.#..##.f\nfbf###....#.###...f\nfif##.....###.....f\nfbf#....####......f\nfif.......#.......f\nfffffffffffffffffff\n\n\n\n~fffffffffffffffffffffff\nfifp.......############f\nfif......####.#.......#f\nfif......#.#.#.########f\nfif.......##.#.#......#f\nfbfggggggg#g##g########f\nfif......###.#.#.#.####f\nfbf........######...#..f\nfif.....###....#.......f\nfbf.......######.......f\nfif.....########.......f\nffffffffffffffffffffffff\n\n\n\n\n\n~fffffffffffffffffffffff\nfif###p########.##.####f\nfif#####..#.#...####..#f\nfif...#.###.##....#.###f\nfif#######..#.#########f\nfbf.#...#.#.######.#...f\nfifg#####g##g##ggggggggf\nfbf.....######.........f\nfif.......#..##........f\nfbf.........###........f\nfif..........###.......f\nffffffffffffffffffffffff\n\n\n\n\n~fffffffffffffffffffffff\nfif#########p....##....f\nfif#.#.#.##....###.....f\nfif#.#.#.#....#.####...f\nfif#.#.#.#....#.#..#...f\nfbf#g#g###gggg#g###ggggf\nfif####..#.#..###.#....f\nfbf...####.#..##.......f\nfif...##.#.##.#.#......f\nfbf....##########......f\nfif....#....##.#.......f\nffffffffffffffffffffffff\n\n\n\n(hard, haven't solved manually)\n~fffffffffffff\nfif###p......f\nfbf#.#.......f\nfif#.###.....f\nfbf#.#.##....f\nfif####g####gf\nfbf##.####...f\nfif.##..#....f\nffffffffffffff\n\n\n(too hard)\n~fffffffffffff\nfif#####p....f\nfif#.#.#.....f\nfif#.##.#....f\nfif#.#####...f\nfif#.##.#....f\nfif#g#gggggggf\nfif#.####....f\nfif#.#.#..##.f\nfif#.###.#.##f\nfbf##..#####.f\nfif.####.....f\nfbf...###....f\nfif....#.....f\nfbf....#.##..f\nfif....###...f\nffffffffffffff\n\n\n\n(hard, looks ok, but meh)\n~fffffffffffff\nfif###p#.....f\nfif##.##.....f\nfif##.#......f\nfif####......f\nfif#.#.......f\nfbf#.#.......f\nfif###.......f\nfbf#.##......f\nfif#.##......f\nfbf##g##gggggf\nfif.###......f\nfbf.#.##.....f\nfif...#......f\nfbf..###.#...f\nfif....####..f\nffffffffffffff\n\n\n(hard, looks ok, but meh)\n~fffffffffffff\nfif##p#......f\nfif####......f\nfif#.##......f\nfif#.#.......f\nfif#.#.......f\nfbf###.......f\nfif#.........f\nfbf###.......f\nfif#.........f\nfbf#####gggggf\nfif#.##.#....f\nfbf..##.##...f\nfif..#####...f\nfbf.....###..f\nfif...###....f\nffffffffffffff\n\n(hmmm! not sure!)\n~ffffffffffffffffffffffffffff\nfifp........................f\nfif.........................f\nfif.........................f\nfif.........................f\nfif....................##...f\nfif.....................##..f\nfif....................##...f\nfif...................###...f\nfif...................##....f\nfif.................####....f\nfifgggggggggggggggggggg###ggf\nfif...............######.##.f\nfif..................#.#....f\nfif..................####...f\nfif................####.#...f\nfif................###......f\nfif..................##.....f\nfif..................#.##...f\nfif................###.##...f\nfbf................#.#####..f\nfif...............##.#......f\nfbf................####.....f\nfif................##.......f\nfbf.............#####.......f\nfif.........#####...........f\nfffffffffffffffffffffffffffff\n\n\n\n(soll schwierig sein - will nicht lösen!)\n~fffffffffff\nfifp.......f\nfif........f\nfbf........f\nfif....#...f\nfbf..###...f\nfif....##..f\nfbf...#.#..f\nfif...#.##.f\nfbf...#.###f\nfif..###.##f\nfbf..#.###.f\nfifgggg##ggf\nffffffffffff\n\n\n(soll schwierig sein - ja zu schwierig)\n~ffffffffffff\nfif.........f\nfbf.p.......f\nfif...#.....f\nfbf...#.....f\nfif...###...f\nfbf...#.##..f\nfif.#####...f\nfbf..#..###.f\nfif...##..#.f\nfbf....####.f\nfifggggg##ggf\nfffffffffffff\n\n(hard - will nicht lösen )\n~fffffffffffff\nfifp.........f\nfif......#...f\nfif.....##...f\nfif....##....f\nfbf....#.##..f\nfif....###...f\nfbfgggg##ggggf\nfif...###....f\nfbf.....#....f\nfif....##....f\nffffffffffffff\n\n\n(should be hard?)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfif...##...f\nfbf..###...f\nfif.###....f\nfbf...##...f\nfif....#...f\nfbf..#.##..f\nfifgg##g#g.f\nfbf...#.#..f\nfif...###..f\nffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n(zeimlich einfach!)\n~fffffffffff\nfifp.#..#..f\nfif..##.#..f\nfbf...#.##.f\nfif...####.f\nfbf....##..f\nfif..###...f\nfbfgggg#gggf\nfif....#...f\nffffffffffff\n\n\n(simple/ok)\n~ffffffffff\nfifp.#..##f\nfbf..#####f\nfif..#.#.#f\nfbf...##..f\nfif..##...f\nfbfggg###gf\nfif..##...f\nfffffffffff\n\n\n(simple/ok)\n~fffffffffff\nfifp......#f\nfif......##f\nfbf......##f\nfif.....###f\nfbf.......#f\nfifgggggg##f\nfbf.....##.f\nfif...###..f\nffffffffffff\n\n\n\n\n(simple/ok / ok maybe nicer than ok! :] )\n~fffffffffff\nfifp....#..f\nfif...#.##.f\nfbf...###..f\nfif..###...f\nfbf...#....f\nfif...##...f\nfbfgggg##ggf\nfif....#...f\nffffffffffff\n\n\n\n\n\n\n\n(beautiful-looking? not fun to solve)\n~fffffffffff\nfbf########f\nfif##p...##f\nfbf##...#.#f\nfif#.#..###f\nfbf#.#...##f\nfif###g#g##f\nfbf#.######f\nfif....#.#.f\nffffffffffff\n\n\n\n\n\n\n\n(ok to solve!)\n~fffffffffff\nfbfp...####f\nfif....#..#f\nfbf....####f\nfif#.###..#f\nfbf#.#.####f\nfif####gg##f\nfbf.#.####.f\nfif....#.#.f\nffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n~fffffffffffff\nfifp...######f\nfif.......#.#f\nfif.........#f\nfif.......###f\nfif.......#.#f\nfif.....#####f\nfifgggggg##g#f\nfif......#.##f\nfif......#.##f\nfbf......#.##f\nfif......####f\nfbf......##.#f\nfif...#..#...f\nfbf..#####...f\nfif.....###..f\nffffffffffffff\n\n\n(dunno? schwierig)\n~fffffffffffff\nfbf#####p####f\nfif...####..#f\nfbf....#.####f\nfif.....#.#.#f\nfbf.....#.###f\nfif.....#.#.#f\nfbf.....#.#.#f\nfifgggg######f\nfbf......###.f\nfif....###...f\nffffffffffffff\n\n\n\n\n\n~fffffffffffff\nfifp..#.###..f\nfbf..##.#.#..f\nfbf...####...f\nfbf....##.#..f\nfifg##g#g##ggf\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif...#......f\nfif...###....f\nfbf....###...f\nfif.....#....f\nfbf....###...f\nfif...##.....f\nfbfgg##ggggggf\nfif.#####....f\nffffffffffffff\n\n\n\n~ffffffff\nfif....#f\nfif....#f\nfif....#f\nfif..###f\nfif....#f\nfif.p.##f\nfif....#f\nfif#.###f\nfif#..#.f\nfbf####.f\nfif#.#..f\nfbf#g#ggf\nfif###..f\nfbf..##.f\nfif###..f\nfbf#.##.f\nfif####.f\nfffffffff\n\n\n(Tricky)\n~fffffffffff\nfbfp.......f\nfif........f\nfbf...#....f\nfif...##...f\nfbf..#.#...f\nfif..#.###.f\nfbf.###.#..f\nfif...####.f\nffffffffffff\n\n\n~fffffffffff\nfbfp..##...f\nfif....##..f\nfbf...##...f\nfif...###..f\nfbf...#....f\nfif...###..f\nfbfggggg#ggf\nfif...####.f\nffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif...#......f\nfif...#......f\nfif...##.....f\nfbf....#.....f\nfif....##....f\nfbf.....#....f\nfif....###...f\nfbfggg#gg##ggf\nfif...####...f\nffffffffffffff\n\n\n\n\n~fffffffffff\nfifp...###.f\nfif...##.#.f\nfbf..#.###.f\nfif..###.#.f\nfbfggg####gf\nfif.....###f\nfbf...###..f\nfif...####.f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif.....#..f\nfif...###..f\nfif.....###f\nfbf....##..f\nfif...##...f\nfbf.#.##..#f\nfif.##.##.#f\nfbf#g#g#g##f\nfif########f\nfbf#......#f\nfif########f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif..#.....f\nfbf..##....f\nfif..###...f\nfbf..#.#...f\nfif..###...f\nfbfggg###ggf\nfif....#...f\nffffffffffff\n\n\n~fffffffffff\nfifp...##..f\nfif....###.f\nfif...##.#.f\nfif...#.#..f\nfbf...#.#..f\nfif...#.###f\nfbf..######f\nfifggg##gggf\nfbf....####f\nfif....#..#f\nfbf####.###f\nfif.#######f\nffffffffffff\n\n\n\n\n~ffffffffff\nfifp......f\nfif.......f\nfif.......f\nfif.......f\nfbf..###..f\nfif..#.#..f\nfbf.#.##..f\nfif.#####.f\nfbf...#...f\nfif.###...f\nfbfgg#g##gf\nfif..###..f\nfffffffffff\n\n\n\n~ffffffff\nfifp###.f\nfbf.#.##f\nfif.####f\nfbf.##..f\nfif..##.f\nfffffffff\n\n\n~fffffffffff\nfifp###....f\nfbf.#.##...f\nfbf.#.##...f\nfbf.#.##...f\nfifgggg##ggf\nffffffffffff\n\n\n~fffffffffff\nfifp...###.f\nfbf..#.#.#.f\nfbf..##.##.f\nfbf.#####..f\nfifgggg####f\nffffffffffff\n\n\n\n\n~fffffffffffff\nfifp...##.#..f\nfif....#.##..f\nfbf....#.##..f\nfif....#.##..f\nfbf....#.#.##f\nfif...######.f\nfbfggg#g##gggf\nfif..####....f\nfbf.....##...f\nfif...###....f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp....#....f\nfif.....#.#..f\nfif.....###..f\nfif...###.#..f\nfbfggg#g#####f\nfif....##.###f\nfbf...#.###..f\nfif...####...f\nfbf......##..f\nfif...#####..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp..#.#..f\nfbf...###..f\nfif....##..f\nfbfggg##gggf\nfif....#...f\nffffffffffff\n\n\n\n~fffffffffffff\nfifp...##....f\nfif.....#....f\nfif.....#....f\nfifggggg#ggggf\nfif#.####....f\nfif#.#..#....f\nfbf##.###....f\nfif.###.#####f\nfbf....#.#...f\nfif..######..f\nffffffffffffff\n\n\n~fffffffffff\nfifp...#.#.f\nfbf....###.f\nfif....##..f\nfbfggg#g###f\nfif...###..f\nffffffffffff\n\n\n~fffffffff\nfbfp##.#.f\nfif..#.#.f\nfbf..####f\nfif.###..f\nfbf...##.f\nfifggg#ggf\nffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif.......#..f\nfbf.......#..f\nfif.......#..f\nfbf....#####.f\nfif...####...f\nfbf.....#....f\nfifggggg##gggf\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif...#......f\nfbf..##......f\nfif...#.#....f\nfbf...###....f\nfif....#.....f\nfbf....##....f\nfif....####..f\nfbf.......##.f\nfifggg######gf\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif.#........f\nfbf.##.......f\nfif..#.......f\nfbf.###......f\nfif.#####....f\nfbf...#.##...f\nfif....#.##..f\nfbf....##.##.f\nfifggggg#####f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp....#....f\nfif.....#....f\nfbf.....#....f\nfif.....##...f\nfbf...##.#...f\nfif....#.#...f\nfbf....#.###.f\nfifgggg#g#gggf\nfbf...##.##..f\nfif....#####.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp..#......f\nfif...#......f\nfbf..###..#..f\nfif....####..f\nfbf.....#....f\nfif.....###..f\nfbf.....#.#..f\nfifggggg##gggf\nfbf...###.#.#f\nfif....######f\nffffffffffffff\n\n\n~fffffffffffff\nfifp..#......f\nfif...##.....f\nfbf...#..#...f\nfif..###.#...f\nfbf....#.#...f\nfif..######..f\nfbf.....#....f\nfif.....###..f\nfbfggggg#ggggf\nfif...#####..f\nffffffffffffff\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf#.........f\nfif#.........f\nfbf##........f\nfif.######...f\nfbf..#.#.#...f\nfif..##.##...f\nfbf..##.#.#..f\nfif...######.f\nffffffffffffff\n\n\n(hard)\n~fffffffffffff\nfifp...##....f\nfif....#.....f\nfbf....#.....f\nfif....##....f\nfbf....##....f\nfif..##.##...f\nfbf...#.#....f\nfifggg#g##gggf\nfbf..###.##..f\nfif....####..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp..#.#..f\nfif...###..f\nfif...##...f\nfbfgggg##ggf\nfif....##..f\nfbf...##...f\nfif....##..f\nffffffffffff\n\n\n(trivial)\n~fffffffffff\nfifp.....#.f\nfif.....##.f\nfif.....#..f\nfbf...###..f\nfif.####...f\nfbfggg##gggf\nfif....##..f\nffffffffffff\n\n\n(too easy)\n~fffffffffff\nfifp.......f\nfif.....#..f\nfif.....#..f\nfif.....#..f\nfbf.....#..f\nfif.....#..f\nfbf...####.f\nfifggg##g##f\nfbf.##.#...f\nfif..###...f\nffffffffffff\n\n\n\n(nice shape)\n~fffffffffff\nfifp.......f\nfif........f\nfif...#....f\nfif...##...f\nfbf....##..f\nfif...#.#..f\nfbf..#####.f\nfifgggg##ggf\nfbf....##..f\nfif...###..f\nffffffffffff\n\n(nice?/meh)\n~fffffffffff\nfifp.......f\nfif...#....f\nfif...#....f\nfif...##...f\nfbf....##..f\nfif....##..f\nfbf.....#..f\nfifgggg##ggf\nfbf..#.###.f\nfif.#####..f\nffffffffffff\n\n\n\n~fffffffffffff\nfifp#..#.#...f\nfif.####.#...f\nfbf..#.####..f\nfbf..#.##....f\nfbf.###.###..f\nfbf...#.#....f\nfbf...#####..f\nfifgggg######f\nffffffffffffff\n\n\n~fffffffffffff\nfifp....##..#f\nfif....#.#..#f\nfbf...##.####f\nfbf....####.#f\nfbf..##.#..##f\nfbf..##.#####f\nfbf...#####..f\nfifggg#g#ggggf\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.......#.f\nfif.....##.#.f\nfbf.....#.##.f\nfbf....#####.f\nfbf#......#..f\nfbf##.#######f\nfbf.##...##.#f\nfif.######..#f\nffffffffffffff\n\n\n~fffffffffffff\nfifp...###...f\nfif.##.#.##..f\nfbf..#.#####.f\nfbf..#..#....f\nfbf.#####....f\nfbf..#..##...f\nfbf..###.####f\nfifggg####g##f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..........f\nfif......#...f\nfbf...####...f\nfif...#.#....f\nfbf...####...f\nfif....#.##.#f\nfbf....##.###f\nfif...######.f\nfbf..##...##.f\nfif..######..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp.##....f\nfif...##...f\nfbf....##..f\nfif...#.##.f\nfbf...####.f\nfif...#..#.f\nfbf..####..f\nfifgggg##ggf\nfbf....#.#.f\nfif....####f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif....##..f\nfbf..##.#..f\nfif...#.##.f\nfbf...####.f\nfif...#..#.f\nfbf...###.#f\nfif....####f\nfbfgggg#g#gf\nfif..###...f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif....#...f\nfbf....##..f\nfif..###...f\nfbf..#.#..#f\nfif..##...#f\nfbf.####.##f\nfif...#.###f\nfbfggg#g#ggf\nfif...###..f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif....#...f\nfbf..###...f\nfif...#....f\nfbf##.##.#.f\nfif.##.####f\nfbf..##.##.f\nfif...###..f\nfbfggggg#ggf\nfif...###..f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif..#.....f\nfbf..##.##.f\nfif...###..f\nfbf..#.####f\nfif.##.#...f\nfbf..####..f\nfif...#.#..f\nfbfggg####gf\nfif...##...f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp.#.....f\nfif..#.....f\nfbf..#.#...f\nfif..###...f\nfbf...#.##.f\nfif...####.f\nfbf...##.#.f\nfif....##..f\nfbf...#.###f\nfif...#####f\nffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif......#...f\nfbf......##..f\nfif.....#.#..f\nfbf.....#.#..f\nfif...######.f\nfbf.....##...f\nfif#....##...f\nfbf###.###...f\nfif..#.##....f\nfbfgg##g###ggf\nfif...##.##..f\nfbf....#.###.f\nfif....###.#.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfbf.....#....f\nfif....##....f\nfbf....##....f\nfif.....##...f\nfbf....#.##..f\nfif....####..f\nfbf....#..##.f\nfif....#####.f\nfbf...##...#.f\nfifggg#g#####f\nfbf..#.#...#.f\nfif.########.f\nffffffffffffff\n\n\n\n\n\n\n\n~fffffffffff\nfifp.......f\nfif...#....f\nfbf...#.#..f\nfif...###..f\nfbf....##..f\nfif..###...f\nfbfgggg##ggf\nfif...##...f\nffffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.....#.f\nfbf....###f\nfif..#.##.f\nfbf#####..f\nfif.###...f\nfbf...#...f\nfif.####..f\nfffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.......f\nfbf..#.#..f\nfif.##.#..f\nfbf..###..f\nfif#..####f\nfbf####...f\nfif.#.#...f\nfffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.......f\nfbf..#..#.f\nfif.#####.f\nfbf...#.#.f\nfif.####..f\nfbf.##.##.f\nfif...##..f\nfffffffffff\n\n\n~fffffffffff\nfifp..###..f\nfbf.#.#.#..f\nfbf.#.##...f\nfbf.##.##..f\nfbf..#####.f\nffffffffffff\n\n\n~fffffffffff\nfifp.#.#.#.f\nfbf..###.#.f\nfif...#####f\nfbf..#..##.f\nfif..####..f\nffffffffffff\n\n\n~fffffffffff\nfifp..###.#f\nfbf...#.#.#f\nfif....####f\nfbf...##.##f\nfif...####.f\nffffffffffff\n\n\n\n~fffffffffff\nfifp..###..f\nfbf.#.#.#..f\nfif.#..##..f\nfbf#####...f\nfif..#####.f\nffffffffffff\n\n\n\n\n(figure giving tribute - meh?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif.....#.#..f\nfbf....####..f\nfif....#.#...f\nfbf....#.###.f\nfif.######...f\nfbf.....###..f\nfifgg####g#ggf\nffffffffffffff\n\n\n\n\n\n\n\n\n~fffffffffffff\nfbfp.#.......f\nfif..###.....f\nfbf..##......f\nfif...##.....f\nfbf..#.##....f\nfif.#####....f\nfbf...#.#..#.f\nfif....######f\nfbf.....#..#.f\nfifggggg##gggf\nffffffffffffff\n\n\n~fffffffffffffffffffffffffffffffffffffffffff\nfifp.####...##########.###################.f\nfbf....###.##....###.##.#.......####...#...f\nfbf...##.#.#######..###.#########..........f\nfbf......###.#..#...#.#####..#.............f\nfifggggggg##gggggggggg##gg#gg#gggggggggggggf\nffffffffffffffffffffffffffffffffffffffffffff\n\n\n(interesting!)\n~fffffffffff\nfbf####p###f\nfif#......#f\nfbf###....#f\nfif#.#...##f\nfbf#.##..##f\nfif###ggg##f\nfbf##..###.f\nfif.####.#.f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp#######f\nfif.#.###.#f\nfbf...#..##f\nfif######.#f\nfbf.###.###f\nfifggg###g#f\nfbf..###..#f\nfif..#.#...f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp#######f\nfif.#.###.#f\nfbf...#..##f\nfif######.#f\nfbf.###.###f\nfifggg###g#f\nfbf..###..#f\nfif..#.#...f\nffffffffffff\n\n\n\n~fffffffffffff\nfif##p.......f\nfif##........f\nfif#.........f\nfif##........f\nfif##........f\nfif#.........f\nfbf###gggggggf\nfif#.##......f\nfbf##.##.....f\nfif.###..#...f\nfbf..##..#...f\nfif...######.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.......##f\nfif.........#f\nfif.......###f\nfif.......#.#f\nfif......##.#f\nfif......#.##f\nfbf.....#####f\nfifggg####g#gf\nfbf..##.##...f\nfif.....###..f\nfbf.....#....f\nfif.....#....f\nffffffffffffff\n\n\n~fffffffffffff\nfif###p......f\nfif#.#.......f\nfif#.#.......f\nfif#.#.......f\nfif####.....#f\nfifggg#gggg##f\nfif...##....#f\nfif....###..#f\nfbf.....#.###f\nfif.....###..f\nffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n(bad)\n~fffffffffffff\nfifp..#......f\nfif...#......f\nfbf..##......f\nfif..##......f\nfbf..#####...f\nfif...#..##..f\nfbf....######f\nfif.....#..#.f\nfbfggggg##g#gf\nfif....###...f\nffffffffffffff\n\n\n(trivial)\n~fffffffffff\nfifp.#.....f\nfif..##....f\nfbf..###...f\nfif..#.....f\nfbf..####..f\nfif....#...f\nfbfggg##gggf\nfif....#...f\nffffffffffff\n\n(pretty trivial)\n~fffffffffff\nfifp.....#.f\nfif......#.f\nfbf...#.##.f\nfif...#.#..f\nfbf...###..f\nfif...##...f\nfbf....#...f\nfifgggg#gggf\nffffffffffff\n\n\n\n\n(fiine / easy )\n~fffffffffff\nfbfp.......f\nfif......#.f\nfbf......#.f\nfif.....##.f\nfbf....###.f\nfif....#...f\nfbf..###...f\nfif...##...f\nfbf...#.##.f\nfif...###..f\nffffffffffff\n\n\n(meh)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfbf........f\nfif........f\nfbf......#.f\nfif......##f\nfbf.....###f\nfif...###.#f\nfbf.....#.#f\nfif..######f\nfbf...#.#.#f\nfif....###.f\nfbf...##.#.f\nfifgg######f\nffffffffffff\n\n\n\n\n(pretty easy)\n~fffffffffff\nfbfp.......f\nfif........f\nfbf.....##.f\nfif......##f\nfbf.....##.f\nfif....#.##f\nfbf....####f\nfif...###..f\nfbf....##..f\nfif...##...f\nffffffffffff\n\n\n\n\n(easy/arbirtaray/pretty)\n~fffffffffffff\nfif.....p....f\nfif..#.#.....f\nfif..###.....f\nfif...#..#.#.f\nfif...#..###.f\nfbf...#...#..f\nfifg###...#..f\nfbf.#.....#..f\nfif.#.....#..f\nffffffffffffff\n\n\n\n(too trivial)\n~fffffffffffffffffffffffffffffffff\nfifp.............................f\nfif......#.......................f\nfif.....##.......................f\nfif.....##.......................f\nfif...####.......................f\nfif....#.#.......................f\nfif.....###......................f\nfif......#.......................f\nfif......#...#...................f\nfif.....######...................f\nfifggggggg####gggggggggggggggggggf\nfif..........#...................f\nfif..........#...................f\nfif..........##..................f\nfif..........##..................f\nfif.........###..................f\nfbf...........##.................f\nfif...........##.................f\nfbf............###.#.............f\nfif............######............f\nffffffffffffffffffffffffffffffffff\n\n\n(meh)\n~fffffffffffffffffffffffffffffffff\nfifp.............................f\nfif..............................f\nfif.........#....................f\nfif.........#....................f\nfif........###...................f\nfif..........#...................f\nfif.......#####..................f\nfif......##..###.................f\nfif.....##....##.................f\nfif.....#.....#..................f\nfifgggggggggg###gggggggggggggggggf\nfif...........##.................f\nfif...........#.#................f\nfif...........###................f\nfif............###...............f\nfif.............###..............f\nfbf...............###............f\nfif...............#.##...........f\nfbf...............##.............f\nfif...............#..............f\nffffffffffffffffffffffffffffffffff\n\n\n\n\n\n(meh)\n~fffffffffffffffffffffffffffffffffffffffffff\nfifp.##################.###################f\nfbf...#.#.##.##.##.#..#.#.#.##.#.....#.#.##f\nfif...#.#....##...#########.....######.#.#.f\nfbfgggggggggggggg##g#g##gggggggggg#ggggggggf\nfif...............#....##........###.......f\nffffffffffffffffffffffffffffffffffffffffffff\n\n\n(meh)\n~fffffffffffff\nfifp.........f\nfbf..........f\nfif......#...f\nfbf......#...f\nfif.....##...f\nfbf.....#....f\nfif....##....f\nffffffffffffff\n\n\n\n\n\n(looks good, but too easy?)\n~fffffffffff\nfbf########f\nfif#p.##..#f\nfbf###..###f\nfif#...####f\nfbf#####..#f\nfif#ggg####f\nfbf######.#f\nfif...##...f\nffffffffffff\n\n(trivial)\n~ffffffff\nfifp..##f\nfbf.#..#f\nfif.####f\nfbf.###.f\nfif..#..f\nfffffffff\n\n(trivial)\n~ffffffff\nfif#p...f\nfbf##.#.f\nfif####.f\nfbf..##.f\nfif.##..f\nfffffffff\n\n\n(Trivial)\n~ffffffff\nfifp..#.f\nfbf.#.##f\nfif.####f\nfbf.##.#f\nfif..#..f\nfffffffff\n\n\n(zu einfach)\n~ffffffffff\nfif##p.#..f\nfbf###.#..f\nfif#.###..f\nfbf#.##...f\nfif####...f\nfbfggg###gf\nfif...##..f\nfffffffffff\n\n\n(zu einfach?)\n~ffffffffff\nfifp...###f\nfbf....#.#f\nfif....###f\nfbf....#.#f\nfifgggg###f\nfbf####.##f\nfif.#####.f\nfffffffffff\n\n\n\n(meh)\n~fffffffffff\nfifp....###f\nfif....####f\nfbf....#..#f\nfif.#..####f\nfbfg#gg#gg#f\nfif.#######f\nfbf.....###f\nfif....##..f\nffffffffffff\n\n\n\n(meh)\n~fffffffffffff\nfif#####p....f\nfif#.##......f\nfif#.##......f\nfif#.#.##...#f\nfif#g#g###g##f\nfif####..#.##f\nfif##.####.##f\nfif....##.#.#f\nfbf.....#####f\nfif.....##.##f\nffffffffffffff\n\n\n(meh)\n~fffffffffffff\nfif###p......f\nfif#.#.......f\nfif#.##......f\nfif#.#.#...#.f\nfif#g#g##gg##f\nfif#.#.######f\nfif####..#.##f\nfif.#.#####.#f\nfbf....#.#.##f\nfif.....#####f\nffffffffffffff\n\n\n(trivial)\n~fffffffffffffffffffffff\nfif#########p.#########f\nfif#......#...#.......#f\nfif########....########f\nfif#.....#....##.#....#f\nfif#######gggg##g######f\nfif#.....###.#.####...#f\nfif#############.......f\nfif.#####...#..........f\nfbf.........##.........f\nfif..........##........f\nffffffffffffffffffffffff\n\n(trivial)\n~fffffffffffffffffffffff\nfif#######p#....#######f\nfif#.#.#.#.##....#.#.##f\nfif###.#.###..#..#.#.##f\nfif..#.#.#...###.######f\nfif########gg#g#g#gggg#f\nfif.##...##############f\nfif..#####..#...#.#.#..f\nfif..........####.#.#..f\nfbf..........##........f\nfif.........###........f\nffffffffffffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n(THE REST)\n\n(hard, couldn't solve myself)\n~fffffffffffffff\nfifp.........##f\nfif.........##.f\nfif.........###f\nfif........#..#f\nfbf........#.##f\nfif........#.#.f\nfbf.......#####f\nfif........#.##f\nfbf........#..#f\nfifggggggg##gggf\nfbf......##....f\nfif.....##.....f\nffffffffffffffff\n\n\n\n\n(solved first go, ok? ohne persönlichkeit) \n~fffffffffffff\nfbfp.......##f\nfif........#.f\nfbf........#.f\nfif.......##.f\nfbf......##..f\nfif.......#..f\nfbf......####f\nfif......##.#f\nfbf....###...f\nfif.....#....f\nffffffffffffff\n\n(too routine)\n~fffffffffffff\nfbfp.........f\nfif...#......f\nfbf...#......f\nfif..##......f\nfbf...##.....f\nfif.##.#.....f\nfbf..###.....f\nfif..#.##....f\nfbf....##....f\nfif.....##...f\nffffffffffffff\n\n(scheiße)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif..#.......f\nfbf..##......f\nfif...#......f\nfbf...##.....f\nfif....#.....f\nfbf....##....f\nfif.....#....f\nffffffffffffff\n\n\n(zu einfach/procedural?)\n~ffffffffffffff\nfifp..........f\nfif........#..f\nfif........#..f\nfbf.......###.f\nfif.......#.#.f\nfbf.......#...f\nfif.....###...f\nfbf......#....f\nfif......#....f\nfbf....###....f\nfif..####.....f\nfffffffffffffff\n\n\n\n\n\n(zu einfach)\n~fffffffffffff\nfbfp........#f\nfif.........#f\nfbf........##f\nfif.......###f\nfbf.......#..f\nfif.....###..f\nfbf.....#.#..f\nfif....###...f\nfbf....##....f\nfif.....#....f\nffffffffffffff\n\n(kein level)\n~fffffffffffff\nfif...p......f\nfif..........f\nfif..........f\nfif..#.......f\nfif..#.#####.f\nfif..#.....#.f\nfbf..#####.#.f\nfbf..#.....#.f\nfbf........#.f\nfbfgg.g#####gf\nfifgg.g#gggggf\nffffffffffffff\n\n(zu einfach)\n~ffffffffffffff\nfif...........f\nfif...........f\nfif...........f\nfif...p..#....f\nfif.#....#....f\nfif.#....#....f\nfif.#...##....f\nfif.#....##...f\nfbf.##....#...f\nfbfg.#..#.#...f\nfif..#..#.#...f\nfif..#..#.#...f\nfffffffffffffff\n\n\n\n\n\n(zu einfach?)\n~ffffffffff\nfif.......f\nfbf.#.#.#.f\nfif.#.#.#.f\nfbf.#####.f\nfif..#p#..f\nfbf.g###.gf\nfif.g.#g.gf\nfffffffffff\n\n(no level)\n~fffffffff\nfif...p..f\nfbf.g#.#.f\nfif.g###.f\nfbf....#.f\nfif...##.f\nfbfg..#..f\nfif...#..f\nffffffffff\n\n\n(no level)\nffffffff\nf......f\nf....#.f\nfg...#.f\nf..P.#.f\nf..#.#.f\nf..#.#.f\nf.##.#.f\nffffffff\n\n\n(zu einfach)\n~ffffffffff\nfifp....#.f\nfbf....###f\nfif.....##f\nfbf...###.f\nfif...##..f\nfbf...#...f\nfifg####ggf\nfffffffffff\n\n(kein Level)\n~fffffffffffff\nfif...p......f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbfg.........f\nfif..........f\nffffffffffffff\n\n\n\n(kein Level)\n~fffffffffffff\nfif#..p.#.#..f\nfbf########..f\nfbf#......#.#f\nfbf#.#####..#f\nfbf#.....#..#f\nfbf#..##.#..#f\nfbf#...#.#..#f\nfbf#####.####f\nfbf...#...#..f\nfbfg..#####..f\nfif....#.....f\nffffffffffffff\n\n\n\n\n\n(kein Level)\n~fffffffffffff\nfif...p......f\nfbf######....f\nfbf#....#....f\nfbf##........f\nfbf.#..###...f\nfbf.##.#.#...f\nfbf..#.#.#...f\nfbf..#.###...f\nfbf.##..#....f\nfbfg#...#....f\nfif.#...#....f\nffffffffffffff\n\n\n\n\n(kein Level)\n~fffffffffffff\nfif..........f\nfif.###......f\nfif.#.#...###f\nfif.###...#.#f\nfif.#...###..f\nfifg#.###....f\nfif.###.#....f\nfif.#..###...f\nfbf..p.#.#...f\nfbf...###....f\nfif...#.#....f\nffffffffffffff\n\n\n\n(zu einfach)\n~ffffffff\nfif##p..f\nfbf.####f\nfbf###.#f\nfbf...##f\nfif..##.f\nfffffffff\n\n(kein level)\n~fffffffffffff\nfbfp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..........f\nfif.....#....f\nfbf.....#....f\nfif....###...f\nfbf......#...f\nfif....###...f\nffffffffffffff\n\n(meh)\n~ffffffff\nfif##p..f\nfbf#....f\nfbf####.f\nfbf.##..f\nfif..#..f\nfffffffff\n\n(hmmm dunno -vllt zu einfach?)\n\n~fffffffffff\nfif#####p..f\nfbf##.####.f\nfbf##..##..f\nfbf.#..##..f\nfifggggg##gf\nffffffffffff\n\n(dunno?)\n~ffffffffffffffffff\nfifp............#.f\nfif............##.f\nfif.............##f\nfif..............#f\nfif..............#f\nfif............###f\nfif.........####.#f\nfbf...........##.#f\nfif..........##..#f\nfbf..........##...f\nfif.........###...f\nfbf........###....f\nfifgggggggg##gggggf\nfbf......###......f\nfif....#####......f\nfffffffffffffffffff\n\n(zu einfach)\n~ffffffff\nfif#p...f\nfbf#..#.f\nfbf####.f\nfbf..##.f\nfif..#..f\nfffffffff\n\n(boring!)\n~ffffffff\nfifp#.#.f\nfbf.###.f\nfif..##.f\nfbfg##ggf\nfif..#..f\nfffffffff\n\n(trivial)\n~fffffffffff\nfifp.....#.f\nfif......#.f\nfif......#.f\nfif.....##.f\nfbf.....#..f\nfif.....#..f\nfbfgggg##ggf\nfif....#...f\nffffffffffff\n\n(trivial)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif.......#..f\nfbf.......#..f\nfif......##..f\nfbf......##..f\nfif......#...f\nfbf.....##...f\nfifggggg#ggggf\nffffffffffffff\n\n\n(meh)\n~fffffffffff\nfifp.......f\nfif.#......f\nfbf.##.....f\nfif..#.....f\nfbf..##....f\nfif...#....f\nfbf...##...f\nfif....#...f\nffffffffffff\n\n\n(nicht interessant)\n~fffffffffffff\nfbfp.........f\nfif..........f\nfbf##........f\nfif#.........f\nfbf##........f\nfif#.........f\nfbf####......f\nfif.#.#......f\nfbf.###......f\nfif..###.#...f\nffffffffffffff\n\n(meh)\n~fffffffffffff\nfif#p........f\nfif##........f\nfif#.........f\nfif##........f\nfbf###.......f\nfif#.........f\nfbf##ggggggggf\nfif.##.......f\nfbf..#..#....f\nfif..#.###...f\nffffffffffffff\n\n\n\n\n\n\n\n\n(meh)\n~fffffffffffffffffffffffffffffffff\nfifp..............####...........f\nfbf..............#.#.#...........f\nfbf..............###.............f\nfbf.............###..#...........f\nfifggggggggggggggg#####ggggggggggf\nffffffffffffffffffffffffffffffffff\n\n\n\n(huh not so bad? but hard for some maybe? wait maybe i just solved by chance....)\n~fffffffffffff\nfifp......###f\nfif.#.#...#.#f\nfbf.#.##...##f\nfbf.####...##f\nfbf##..###.##f\nfbf######.#.#f\nfbf.....#####f\nfbf...###.##.f\nfbf...#.#....f\nfif....##....f\nffffffffffffff\n\n\n\nmessage level 5 of 10 : Gallows\n(hard - actually ok? medium difficulty?)\n~ffffffffffff\nfif.........f\nfifp.#......f\nfif..#......f\nfif..###....f\nfif..#......f\nfbf.####....f\nfif...###...f\nfbf...#.#...f\nfif.....#...f\nfbfggggg##ggf\nfif......##.f\nfffffffffffff\n\n\n\n\nmessage level 2 of 10 : ANTENNA 1\n(ok anfangerlevel?)\n~fffffffff\nfbfp#..#.f\nfif##..#.f\nfbf.#.##.f\nfif####.#f\nfbf#..###f\nfifggg#ggf\nffffffffff\n\n\n\nmessage level 3 of 10 : UFO\n(ok! / easy / Space invaders)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..#..#....f\nfif########..f\nfbf#.###..#..f\nfif.....####.f\nfbf..###.##..f\nfif....###...f\nffffffffffffff\n\n\n\n\n(\n(ok anfangerlevel)\n~fffffffff\nfbfp#..##f\nfif.##.##f\nfbf..###.f\nfif...###f\nfbf####..f\nfifggg#ggf\nffffffffff\n)\n\n\n\n\n(\n\n~fffffffffffff\nfifp.......#.f\nfif........##f\nfif........##f\nfif.........#f\nfbf.........#f\nfif.......###f\nfbf.......##.f\nfifggggggg##gf\nfbf.......#..f\nfif...#####..f\nffffffffffffff\n)\n\n\n(ok simple? NAH TOO SIMPLE)\n~ffffffffffffffffffffffffffff\nfifp........................f\nfif###......................f\nfif#.#......................f\nfif###......................f\nfif##.......................f\nfif##.......................f\nfif##.......................f\nfif#........................f\nfif##.......................f\nfif##.......................f\nfif##.......................f\nfif##..#.#..................f\nfif##.####..................f\nfif#####.#..................f\nfifgg#g#g#ggggggggggggggggggf\nfif..#.###..................f\nfif......##.................f\nfif......##.................f\nfif......#.#................f\nfif......####...............f\nfif.......#.#...............f\nfbf.......#.#...............f\nfif.....######..............f\nfbf.....#..#####.##.........f\nfif.........#.####..........f\nfffffffffffffffffffffffffffff\n\n\n\n\n(alien slug attack!)\nmessage level 6 of 10 : Alien Slug Attack\n~fffffffffffffffff\nfifp...####......f\nfbf....#####.....f\nfbf...##..##.....f\nfbf....#..##.....f\nfifgggggggg####ggf\nffffffffffffffffff\n\n\n\n\n\n(decent - middle-hard? -- too mich like final level? (difficulty/appearance-wise?)\n~fffffffffffffff\nfif#p..........f\nfif#...........f\nfif##..........f\nfif#...........f\nfbf###.........f\nfif#.#.........f\nfbf.##.#.......f\nfif..###.......f\nfbf...###......f\nfif....#...#...f\nfbfgggg######ggf\nfif......##....f\nffffffffffffffff\n)\n\n\n\n(fun to find the right points? MEH)\n~ffffffffffffffffffff\nfifp................f\nfif.................f\nfif...............##f\nfif................#f\nfif...............##f\nfif...............##f\nfif.............####f\nfif................#f\nfif..............###f\nfif...............##f\nfif................#f\nfif.........#.#...##f\nfif.........#.####.#f\nfif........####.####f\nfif............##...f\nfifgggggggg#######ggf\nfif........#..#.....f\nfif........######...f\nfif.........##......f\nfbf........##.......f\nfif.....####........f\nfbf......#..........f\nfif......#..........f\nfbf....###..........f\nfif.#######.........f\nfffffffffffffffffffff\n\n\n\n\n\n(wie ein gebäude aus - ziemlich einfach)\n~fffffffffffff\nfifp........#f\nfif........##f\nfif........##f\nfif........##f\nfbf.........#f\nfif.........#f\nfbfgggggggg##f\nfif......###.f\nfbf.......##.f\nfif....####..f\nffffffffffffff\n\n\n\n\n\n\n(nice/ok!)\n~ffffffffff\nfifp.....#f\nfbf.....##f\nfif....###f\nfbf....#.#f\nfif....###f\nfbfggg###gf\nfif..##...f\nfffffffffff\n\n\nmessage level 4 of 10 : Duck Tree\n(ducktree!)\n~fffffffffff\nfifp.##..##f\nfif.###.###f\nfbf...##.#.f\nfif..###.#.f\nfbf....####f\nfifgggg##ggf\nfbf....#...f\nfif....#...f\nffffffffffff\n\n\n\n)\n", [2, 2, 2, 2, 4], "background exploding fenster tl:0,background fenster fenster_right:1,1,1,1,1,1,1,1,background fenster:2,background fenster fenster_down:3,background inventar:4,\n4,background bang_schatten inventar:5,4,background bang inventar:6,4,6,4,background fenster fenster_up:7,2,background fenster fenster_left fenster_right:8,8,8,\n8,8,8,8,8,2,3,background:9,9,9,9,background htarget player_h:10,\n9,background landbackground:11,11,7,3,9,9,9,9,background htarget:12,background bond_r wall:13,11,\n11,7,3,9,9,9,9,background bond_d bond_r htarget wall:14,background bond_d bond_l bond_u wall:15,background bond_u landbackground wall:16,11,7,\n3,9,9,9,background bond_d wall:17,background bond_l bond_u htarget wall:18,background bond_d bond_r wall:19,background bond_r bond_u landbackground wall:20,11,7,3,9,\n9,9,9,12,background bond_d bond_l wall:21,background bond_d bond_l bond_u landbackground wall:22,20,7,3,9,9,9,\n9,12,9,11,background bond_l landbackground wall:23,7,3,9,9,9,9,12,\n9,11,11,7,3,9,9,9,9,12,9,11,\n11,7,2,background fenster fenster_left:24,24,24,24,24,24,24,24,2,\n", 16, "1627892617303.8054"] ], [ - "A CLEAR VIEW OF THE SKY", - ["title A CLEAR VIEW OF THE SKY\nauthor increpare\nhomepage www.increpare.com\n\nnorepeat_action\n\nrun_rules_on_level_start\n\ncolor_palette 2\n\nbackground_color #005784\ntext_color lightblue\n\n(uses https://github.com/increpare/Zersto-rungto generate levels)\n========\nOBJECTS\n========\n\nbackground\nblue\n\nlandbackground\ngreen\n\n\nwall \ndarkblue gray lightgray\n00000\n01110\n01110\n01110\n00000\n\nplayer_h\ntransparent\n.....\n..0..\n.000.\n..0..\n.....\n\n\nplayer_v\nyellow\n.....\n..0..\n.000.\n..0..\n.....\n\n\nfenster\n#005784\n\n\nfenster_up\n#1d3d60 lightblue\n00000\n.....\n.....\n.....\n.....\n\nfenster_down\ndarkblue #17669f\n.....\n.....\n.....\n.....\n11111\n\nfenster_left\n#1d3d60 #17669f\n1....\n1....\n1....\n1....\n1....\n\nfenster_right\n#1d3d60\n....0\n....0\n....0\n....0\n....0\n\nhtarget\norange\n.....\n.....\n00000\n.....\n.....\n\n\nvtarget\norange\n..0..\n..0..\n..0..\n..0..\n..0..\n\ninventar\ndarkblue\n\nbang\n yellow red\n...0.\n..00.\n.010.\n.00..\n.0...\n\nbang_schatten\ndarkgray\n...0.\n..00.\n.0.0.\n.00..\n.0...\n\nbond_u\ndarkblue gray lightgray\n.111.\n.....\n.....\n.....\n.....\n\n\n\nbond_d\ndarkblue gray lightgray\n.....\n.....\n.....\n.....\n.111.\n\n\n\nbond_l\ndarkblue gray lightgray\n.....\n1....\n1....\n1....\n.....\n\n\n\nbond_r\ndarkblue gray lightgray\n.....\n....1\n....1\n....1\n.....\n\n\n\n\ntl\ntransparent\n\nexploding\ntransparent\n\nexplosion\nred yellow\n.1.1.\n10.01\n..0..\n10.01\n.1.1.\n\nnofall\nred\n.0...\n.....\n.....\n.....\n.....\n\nfall\nlightblue\n.0...\n.....\n.....\n.....\n.....\n\n\nsky_darker 7\ndarkred darkblue\n01010\n10101\n01110\n10101\n01011\n\nsky_darker2 8\ndarkbrown black\n01010\n10101\n01110\n10101\n01011\n\n\nsky_darker4 0\nblack darkblue\n11010\n10111\n01010\n11101\n01011\n\nsky_darker3 9\nwhite black\n11111\n11101\n11111\n11111\n11111\n\nsky_darker7 w\nblack\n\nsky_pink 2\nred darkblue\n01010\n10101\n01110\n10101\n01011\n\nsky_orange 1\nred lightred\n01000\n10101\n00010\n01010\n00000\n\n\nsky_red 3\nred orange\n01010\n10101\n01010\n10101\n01010\n\nsky_yellow 4\nyellow red orange\n12121\n21212\n10001\n00000\n00000\n\nsky_purple 5 \nred blue\n01010\n11101\n01010\n10111\n01010\n\n\nsky_land 6\ndarkgreen green\n01010\n10101\n01010\n10101\n01010\n\n=======\nLEGEND\n=======\n\nplayer = player_h or player_v\ntarget = htarget or vtarget\n\n. = Background\n# = wall\nP = Player_h\nf = fenster\n\ng = landbackground\n\nobstacle = wall\n~ = tl and fenster\ni = inventar\nb = bang and inventar\nbond = bond_u or bond_d or bond_l or bond_r\n\nfallblocker = wall or fenster\nanimation = 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 or 0\n=======\nSOUNDS\n=======\n\nsfx0 55915302 (bang)\nsfx1 90167907 (other agains)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nlandbackground, inventar\nwall\nbond_u\nbond_d\nbond_l\nbond_r\nexplosion\ntarget\nPlayer, fenster, bang,bang_schatten\nfenster_up\nfenster_down\nfenster_left\nfenster_right\ntl\nexploding\nnofall\nfall\n1,2,3,4, 5, 6,7,8,9,0,w\n\n======\nRULES\n======\n\n\nup [fenster | no fenster ]-> [ fenster fenster_up | ]\ndown [fenster | no fenster ]-> [ fenster fenster_down | ]\nleft [fenster | no fenster ]-> [ fenster fenster_left | ]\nright [fenster | no fenster ]-> [ fenster fenster_right | ]\n\n[ tl no exploding ] [bond]->[ tl ] [ ]\ndown [ tl no exploding ] [wall | wall]->[tl][ wall bond_d | wall bond_u ]\nright [ tl no exploding ] [wall | wall]->[tl][ wall bond_r | wall bond_l ]\n\n[tl]->[tl exploding]\n\ndown [ wall no bond_d | fallblocker ] -> [ wall nofall | fallblocker ]\n(floodfill)\nup [nofall bond_u | ] -> [ nofall bond_u | nofall ]\n+ down [nofall bond_d | ] -> [ nofall bond_d | nofall ]\n+ left [nofall bond_l | ] -> [ nofall bond_l | nofall ]\n+ right [nofall bond_r | ] -> [ nofall bond_r | nofall ]\n\n\ndown [ wall no nofall | no fallblocker ] -> [ wall fall | ]\n\nup [fall bond_u | ] -> [ fall bond_u | fall ]\n+ down [fall bond_d | ] -> [ fall bond_d | fall ]\n+ left [fall bond_l | ] -> [ fall bond_l | fall ]\n+ right [fall bond_r | ] -> [ fall bond_r | fall ]\n\n[fall wall]->[down wall] sfx1 again\n\n[fall]->[]\n[nofall]->[]\n\n[up wall bond ] -> [ up wall up bond ]\n+ [down wall bond ] -> [ down wall down bond ]\n+ [left wall bond ] -> [ left wall left bond ]\n+ [right wall bond ] -> [ right wall right bond ]\n\n[target]->[]\n\n\n[horizontal player ] -> cancel\n(\n[up player_h ] -> [ up player_v ]\n[down player_h ] -> [ down player_v ]\n[left player_v ] -> [ left player_h ]\n[right player_v ] -> [ right player_h ]\n)\n\nright left down [ landbackground | no landbackground no fenster ] -> [ landbackground | landbackground no fenster ]\n\n\n[player_h ] -> [ player_h htarget ]\n[player_v ] -> [ player_v vtarget ]\n\nhorizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nvertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\nup [ bond_u | explosion ] -> [ | explosion ]\ndown [ bond_d | explosion ] -> [ | explosion ]\nleft [ bond_l | explosion ] -> [ | explosion ]\nright [ bond_r | explosion ] -> [ | explosion ]\n\n[explosion wall ] -> [ no bond ] sfx1 again\n\n[explosion ] -> [ ] again\n\n[action player ] [bang] -> [ player ] [ action bang_schatten ]\n\n[action bang_schatten ] [ target ]-> [ action bang_schatten ] [ explosion ] sfx0 again\n\n\nlate [target]->[]\n\nlate [player_h ] -> [ player_h htarget ]\nlate [player_v ] -> [ player_v vtarget ]\n\nlate horizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nlate vertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll wall on landbackground \n\n=======\nLEVELS\n=======\n\n\n(OK LEVELS)\n\n\n\n\nmessage All those ugly buildings blocking our view.\nmessage Let's DEMOLISH them to SAVE OUR SKY\n\nmessage level 1 of 13 : FACTORY\n(sehr einfach)\n~ffffffffffffff\nfif...........f\nfif...........f\nfif...........f\nfif....p......f\nfif.....#.....f\nfif...#.#.....f\nfif...#.###...f\nfbf...######..f\nfif..###...#..f\nfbfg.#...#.#..f\nfif..#...#.#..f\nfffffffffffffff\n\n\nmessage Ah, what a lovely view of the sky!\n\nmessage level 2 of 13 : Lop-sided Electricity Poll\n(actually ok?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif...#......f\nfif...##.....f\nfif...#......f\nfbf...##.....f\nfif....##....f\nfbfggggg#ggggf\nfif.....#....f\nffffffffffffff\n\n\n\n\nmessage level 3 of 13 : Water Pump\n(ok anfängerlevel?)\n~fffffffff\nfif...p..f\nfbf###...f\nfif#.###.f\nfbf#.##..f\nfif#.##..f\nfbf#gg##gf\nfif...#..f\nffffffffff\n\n\n\n\nmessage level 4 of 13 : Electricity Supply\n\n(einfach/gut?)\n~ffffffff\nfif###p#f\nfbf#.#.#f\nfbf#####f\nfbf##.#.f\nfifg####f\nfffffffff\n\n\nmessage level 5 of 13 : Water Font\n(hard)\n~fffffffffffff\nfifp....###..f\nfbf...#.#.#..f\nfbf...####...f\nfbf...##.##..f\nfifgg#g####ggf\nffffffffffffff\n\n\n\nmessage level 6 of 13 : Angry Goose\n(tricky + sieht gut aus)\n~ffffffffffff\nfifp##.####.f\nfbf.####.##.f\nfbf...##.#..f\nfbf...###...f\nfifgg##gggggf\nfffffffffffff\n\n\n\nmessage level 7 of 13 : Lean-to\n(nice/ok!)\n~fffffffffff\nfifp..#....f\nfif..##....f\nfbf.##.....f\nfif..#.....f\nfbf####....f\nfif...##...f\nfbfggg##gggf\nfif....##..f\nffffffffffff\n\n\n(medium-hard / fun! )\nmessage level 8 of 13 : Treehouse\n~fffffffffffffff\nfifp...........f\nfif........#...f\nfif........#...f\nfif.......####.f\nfbf.......#..#.f\nfif......#####.f\nfbf........#...f\nfif......###...f\nfbf......##....f\nfif.....##.....f\nfbfgggg#g#gggggf\nfif...####.....f\nffffffffffffffff\n\n\n\n\nmessage level 9 of 13 : Ugly Antenna\n(i had fun solving this)\n~fffffffffffff\nfifp.###.####f\nfbf..#.#....#f\nfif..#.##.###f\nfbf..#.###.#.f\nfif..####.##.f\nfbfggggg###ggf\nfif.....#....f\nffffffffffffff\n\n\n\n\nmessage level 10 of 13 : 60's Futuristic settlement\n(ok/interesting to solve!)\n~fffffffffff\nfbf##p.####f\nfif#...#..#f\nfbf#...####f\nfif######.#f\nfbf###.##.#f\nfifggg##gg#f\nfbf...#.#.#f\nfif...###..f\nffffffffffff\n\n\nmessage level 11 of 13 : Dystopic settlement\n(futuristic city - hardlevel?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..##......f\nfif..#.......f\nfbf..##.#.#..f\nfif..##.###..f\nfbf..###.###.f\nfif....#.##..f\nfbf....#.#...f\nfifggg####gggf\nffffffffffffff\n\n\nmessage level 12 of 13 : Space elevator\n(interesting? seemingly impossible?)\n~fffffffffffff\nfif#####p....f\nfif#.#.#.....f\nfif#.####....f\nfif#.##......f\nfif#g#gggggggf\nfif#.#.......f\nfif#.##......f\nfif#.#.......f\nfif#.##......f\nfbf#.#.......f\nfif#.###.....f\nfbf#.#.###.#.f\nfif#.###..##.f\nfbf##..####..f\nfif.#######..f\nffffffffffffff\n\n\n\n\nmessage level 13 of 13 : Building seeminly purposely constructed to block my view.\n\n(can't easily solve meh - could be ok final level? FINAL LEVEL)\n~fffffffffffffffff\nfif###p..........f\nfif#.##..........f\nfif####..........f\nfif...##.........f\nfif####..........f\nfif.#............f\nfif##............f\nfif###...........f\nfif..#...........f\nfif#####.........f\nfif...#.#.#......f\nfif######.#......f\nfif###..###......f\nfif#..###........f\nfif.....##.......f\nfifgggggg#gggggggf\nfif......###.....f\nfif.......##.....f\nfif.......##.....f\nfbf........##....f\nfif........##....f\nfbf.........##...f\nfif.........##...f\nfbf.........#####f\nfif............#.f\nffffffffffffffffff\n\n\nmessage Ahh, the sky is clear again, just in time for the sunset\n\n\n\n5555555555555555555\n5555522222222555555\n5552222222222222555\n5222222222222222225\n2222222111112222222\n2222211111111122222\n2221111133311111222\n2211111334331111112\n6666666666666666666\n6666666666666666666\n6666666666666666666\n\n\n\n\n22222222222222222222\n22222222222222222222\n22222222222222222222\n22222222222222222222\n22222221212122222222\n22221212121212122222\n22212121111121212222\n22121211111112121222\n66666666666666666666\n66666666666666666666\n66666666666666666666\n\n\n\n00000077777777000000\n00007777777777770000\n00077777777777777000\n07777777777777777770\n77777722222222777777\n77772222222222227777\n77722221111122222777\n77222211111112222277\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n88888888888888888888\n88888880000088888888\n88888000000000088888\n88800000000000000888\n88000000000000000088\n80000000000000000008\n00000000222000000000\n00000002222200000000\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwww000wwwwwwwww\nwwwww000222000wwwwww\n00000022222220000000\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n\n\nw9wwwwwwww9wwwwwwwww\nwwwwwwwwwwwwww9www9w\nwwww9wwwwwwwwwwwwwww\nwwwwwwwww9wwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwww9www\nw9wwwww9wwwww9wwwwww\nwwwwwwwwwwwwwwwwwwww\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\nmessage The End \n\n\n\n(\n\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf.....#....f\nfif....####..f\nfbf...##..#..f\nfif#.#..###..f\nfbf#####.##..f\nfif.#.####...f\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfbfp.........f\nfif....#.....f\nfbf....##....f\nfif....###...f\nfbf......#...f\nfif..######..f\nfbf...#.#.#..f\nfif.....####.f\nfbf....#.##..f\nfifgg#####gggf\nffffffffffffff\n\n(microscope?)\n~fffffffffffff\nfbfp.........f\nfif......##..f\nfbf.....##...f\nfif....##....f\nfbf....#.##..f\nfif....#.#...f\nfbf....####..f\nfif.......#..f\nfbf..######..f\nfifgg####ggggf\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.......#.f\nfif......#.#.f\nfif......#.##f\nfif......####f\nfbf....####.#f\nfifggggg#g##gf\nfbf...#####.#f\nfif....######f\nfbf..#.###...f\nfif.######...f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.....#...f\nfif......##..f\nfif....####..f\nfif....##.#..f\nfbf....###...f\nfifgg#g####ggf\nfbf..####.#..f\nfif..#####...f\nfbf..#######.f\nfif....#####.f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.....#...f\nfif....#.#...f\nfif....###...f\nfif...###..#.f\nfbf...#.####.f\nfifgggg##ggggf\nfbf...#####..f\nfif....####..f\nfbf..######..f\nfif..########f\nffffffffffffff\n\n\n\n\n~fffffffffff\nfbfp...#.#.f\nfif....#.##f\nfbf....###.f\nfif.###.###f\nfbf...###.#f\nfif.....##.f\nfbfggg###ggf\nfif...#####f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp...##..f\nfif.######.f\nfbf....#.#.f\nfif...###..f\nfbf...#.##.f\nfif....###.f\nfbfggg#gg#gf\nfif..######f\nffffffffffff\n\n(hard, but looks nice)\n~fffffffffff\nfbfp...#..#f\nfif....####f\nfbf.....#.#f\nfif...###..f\nfbf.....###f\nfif...###..f\nfbfg##g#g##f\nfif..######f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp..#.##.f\nfif...#.#..f\nfbf...#####f\nfif....#.#.f\nfbf....###.f\nfif...###..f\nfbfg###gg#gf\nfif.#.####.f\nffffffffffff\n\n~fffffffffff\nfifp.......f\nfif........f\nfif#.......f\nfbf###.....f\nfif#.##....f\nfbf##......f\nfif##......f\nfbf#.......f\nfif##.#....f\nfbf##.#....f\nfif.####...f\nfbf.#.####.f\nfif....#.#.f\nfbfgggg###gf\nfif....#...f\nffffffffffff\n\n\n\n(hard/unsolved)\n~fffffffffffff\nfifp...####..f\nfif.....##...f\nfbf....##....f\nfif...#.##...f\nfbf...#.#..#.f\nfif...####.#.f\nfbf....#.###.f\nfif....#.#...f\nfbfggg#######f\nfif..#...#...f\nfbf.######...f\nfif...###....f\nffffffffffffff\n\n\n(haard, pretty, unsolved)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf.....#....f\nfif....###...f\nfbf...#####..f\nfif.....#..#.f\nfbf.....####.f\nfif..#.#.#.#.f\nfbf.##.#.##..f\nfif..#.####.#f\nfbfgg##ggg#g#f\nfif...#######f\nffffffffffffff\n\n\n(haard, pretty, ,unsolved)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf...##..#..f\nfif.##.####..f\nfbf..##.#.#..f\nfif...#.###..f\nfbf...##.##..f\nfif....###...f\nfbf......#...f\nfif....######f\nfbfgg###ggg##f\nfif....#####.f\nffffffffffffff\n\n(haard ,unsolved)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfbf........f\nfif....###.f\nfbf.....###f\nfif......#.f\nfbf......#.f\nfif.....##.f\nfbf......##f\nfif....####f\nfbf....##..f\nfif...###..f\nfbf....##..f\nfifggg##gggf\nffffffffffff\n\n\n\n(too tired, don't want to solve)\n~ffffffffffffffffffffffffffffffffffffff\nfifp..................................f\nfif.......#...........................f\nfif.......#...........................f\nfif#.....##...........................f\nfif##...##............................f\nfif.####.#............................f\nfif....####...........................f\nfif....##.#...........................f\nfif.......##..........................f\nfif......####.........................f\nfif........#.#........................f\nfif.......####........................f\nfif.......#.##........................f\nfifggggggg#g##ggggggggggggggggggggggggf\nfif........####.......................f\nfif...........#.......................f\nfif........######.....................f\nfif........#.##.##....................f\nfif............##.....................f\nfbf..........####.....................f\nfif............####...................f\nfbf...........##.###..................f\nfif..............#.#..................f\nfbf................#..................f\nfif................###................f\nfffffffffffffffffffffffffffffffffffffff\n\n\n~fffffffffffff\nfbfp.#.......f\nfif..###.....f\nfbf..##......f\nfif...##.....f\nfbf..#.##....f\nfif.#####....f\nfbf...#.#..#.f\nfif....######f\nfbf.....#..#.f\nfifggggg##gggf\nffffffffffffff\n\n\n~fffffffffffff\nfifp.....##.#f\nfif.......#.#f\nfif.......#.#f\nfif.......###f\nfif.........#f\nfif.........#f\nfifggggggggg#f\nfif.......###f\nfif......##.#f\nfif.....###.#f\nfif.......###f\nfif.........#f\nfif.......###f\nfif......#..#f\nfif......####f\nfif.......#.#f\nfif........##f\nfif.......###f\nfif.........#f\nfif........##f\nfif.......###f\nfif........##f\nfif........##f\nfif.........#f\nfbf..##...###f\nfif..#...##.#f\nfbf..##....##f\nfif..###.###.f\nfbf...##.#...f\nfif...#####..f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif.........#f\nfif.......###f\nfif........##f\nfif........##f\nfif........##f\nfif.....##.##f\nfifgggggg#g##f\nfif.....#####f\nfif.........#f\nfif.....#####f\nfif.........#f\nfif...#######f\nfif.....#...#f\nfif......####f\nfif.........#f\nfif.......###f\nfif......##.#f\nfif.......#.#f\nfif.......###f\nfif......#..#f\nfif......####f\nfbf.........#f\nfif.......###f\nfbf.......#.#f\nfif.......##.f\nfbf.....###..f\nfif..#####...f\nffffffffffffff\n\n\n\n~fffffffffffffffffffffff\nfifp.................##f\nfif.................#.#f\nfif.................###f\nfif...................#f\nfif...................#f\nfif..................##f\nfifgggggggggggggggggg##f\nfif..................##f\nfif.................#.#f\nfif.................#.#f\nfif.............###.###f\nfif..............#.##.#f\nfif..............###..#f\nfif...............#.#.#f\nfbf...............#.###f\nfif...##....#.##..###.#f\nfbf...###.###..#.#.#.##f\nfif....####.#..#######.f\nfbf......########..#.#.f\nfif..........##......#.f\nffffffffffffffffffffffff\n\n\n\n~ffffffffffffffffff\nfif##p.....#######f\nfif##.......##...#f\nfif#..#.......####f\nfif######.....####f\nfbf#....##..###..#f\nfif######...#.#.##f\nfbfg#gg####g##ggggf\nfif.....#.#####...f\nfbf.....###.#.....f\nfif.......##......f\nfffffffffffffffffff\n\n\n\n~ffffffffffffffffff\nfif########p......f\nfif#.#.#.#........f\nfif#.#.#.#...#....f\nfif#.######.######f\nfbf#g##gg#######ggf\nfif#.#...##.#..##.f\nfbf###....#.###...f\nfif##.....###.....f\nfbf#....####......f\nfif.......#.......f\nfffffffffffffffffff\n\n\n\n~fffffffffffffffffffffff\nfifp.......############f\nfif......####.#.......#f\nfif......#.#.#.########f\nfif.......##.#.#......#f\nfbfggggggg#g##g########f\nfif......###.#.#.#.####f\nfbf........######...#..f\nfif.....###....#.......f\nfbf.......######.......f\nfif.....########.......f\nffffffffffffffffffffffff\n\n\n\n\n\n~fffffffffffffffffffffff\nfif###p########.##.####f\nfif#####..#.#...####..#f\nfif...#.###.##....#.###f\nfif#######..#.#########f\nfbf.#...#.#.######.#...f\nfifg#####g##g##ggggggggf\nfbf.....######.........f\nfif.......#..##........f\nfbf.........###........f\nfif..........###.......f\nffffffffffffffffffffffff\n\n\n\n\n~fffffffffffffffffffffff\nfif#########p....##....f\nfif#.#.#.##....###.....f\nfif#.#.#.#....#.####...f\nfif#.#.#.#....#.#..#...f\nfbf#g#g###gggg#g###ggggf\nfif####..#.#..###.#....f\nfbf...####.#..##.......f\nfif...##.#.##.#.#......f\nfbf....##########......f\nfif....#....##.#.......f\nffffffffffffffffffffffff\n\n\n\n(hard, haven't solved manually)\n~fffffffffffff\nfif###p......f\nfbf#.#.......f\nfif#.###.....f\nfbf#.#.##....f\nfif####g####gf\nfbf##.####...f\nfif.##..#....f\nffffffffffffff\n\n\n(too hard)\n~fffffffffffff\nfif#####p....f\nfif#.#.#.....f\nfif#.##.#....f\nfif#.#####...f\nfif#.##.#....f\nfif#g#gggggggf\nfif#.####....f\nfif#.#.#..##.f\nfif#.###.#.##f\nfbf##..#####.f\nfif.####.....f\nfbf...###....f\nfif....#.....f\nfbf....#.##..f\nfif....###...f\nffffffffffffff\n\n\n\n(hard, looks ok, but meh)\n~fffffffffffff\nfif###p#.....f\nfif##.##.....f\nfif##.#......f\nfif####......f\nfif#.#.......f\nfbf#.#.......f\nfif###.......f\nfbf#.##......f\nfif#.##......f\nfbf##g##gggggf\nfif.###......f\nfbf.#.##.....f\nfif...#......f\nfbf..###.#...f\nfif....####..f\nffffffffffffff\n\n\n(hard, looks ok, but meh)\n~fffffffffffff\nfif##p#......f\nfif####......f\nfif#.##......f\nfif#.#.......f\nfif#.#.......f\nfbf###.......f\nfif#.........f\nfbf###.......f\nfif#.........f\nfbf#####gggggf\nfif#.##.#....f\nfbf..##.##...f\nfif..#####...f\nfbf.....###..f\nfif...###....f\nffffffffffffff\n\n(hmmm! not sure!)\n~ffffffffffffffffffffffffffff\nfifp........................f\nfif.........................f\nfif.........................f\nfif.........................f\nfif....................##...f\nfif.....................##..f\nfif....................##...f\nfif...................###...f\nfif...................##....f\nfif.................####....f\nfifgggggggggggggggggggg###ggf\nfif...............######.##.f\nfif..................#.#....f\nfif..................####...f\nfif................####.#...f\nfif................###......f\nfif..................##.....f\nfif..................#.##...f\nfif................###.##...f\nfbf................#.#####..f\nfif...............##.#......f\nfbf................####.....f\nfif................##.......f\nfbf.............#####.......f\nfif.........#####...........f\nfffffffffffffffffffffffffffff\n\n\n\n(soll schwierig sein - will nicht lösen!)\n~fffffffffff\nfifp.......f\nfif........f\nfbf........f\nfif....#...f\nfbf..###...f\nfif....##..f\nfbf...#.#..f\nfif...#.##.f\nfbf...#.###f\nfif..###.##f\nfbf..#.###.f\nfifgggg##ggf\nffffffffffff\n\n\n(soll schwierig sein - ja zu schwierig)\n~ffffffffffff\nfif.........f\nfbf.p.......f\nfif...#.....f\nfbf...#.....f\nfif...###...f\nfbf...#.##..f\nfif.#####...f\nfbf..#..###.f\nfif...##..#.f\nfbf....####.f\nfifggggg##ggf\nfffffffffffff\n\n(hard - will nicht lösen )\n~fffffffffffff\nfifp.........f\nfif......#...f\nfif.....##...f\nfif....##....f\nfbf....#.##..f\nfif....###...f\nfbfgggg##ggggf\nfif...###....f\nfbf.....#....f\nfif....##....f\nffffffffffffff\n\n\n(should be hard?)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfif...##...f\nfbf..###...f\nfif.###....f\nfbf...##...f\nfif....#...f\nfbf..#.##..f\nfifgg##g#g.f\nfbf...#.#..f\nfif...###..f\nffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n(zeimlich einfach!)\n~fffffffffff\nfifp.#..#..f\nfif..##.#..f\nfbf...#.##.f\nfif...####.f\nfbf....##..f\nfif..###...f\nfbfgggg#gggf\nfif....#...f\nffffffffffff\n\n\n(simple/ok)\n~ffffffffff\nfifp.#..##f\nfbf..#####f\nfif..#.#.#f\nfbf...##..f\nfif..##...f\nfbfggg###gf\nfif..##...f\nfffffffffff\n\n\n(simple/ok)\n~fffffffffff\nfifp......#f\nfif......##f\nfbf......##f\nfif.....###f\nfbf.......#f\nfifgggggg##f\nfbf.....##.f\nfif...###..f\nffffffffffff\n\n\n\n\n(simple/ok / ok maybe nicer than ok! :] )\n~fffffffffff\nfifp....#..f\nfif...#.##.f\nfbf...###..f\nfif..###...f\nfbf...#....f\nfif...##...f\nfbfgggg##ggf\nfif....#...f\nffffffffffff\n\n\n\n\n\n\n\n(beautiful-looking? not fun to solve)\n~fffffffffff\nfbf########f\nfif##p...##f\nfbf##...#.#f\nfif#.#..###f\nfbf#.#...##f\nfif###g#g##f\nfbf#.######f\nfif....#.#.f\nffffffffffff\n\n\n\n\n\n\n\n(ok to solve!)\n~fffffffffff\nfbfp...####f\nfif....#..#f\nfbf....####f\nfif#.###..#f\nfbf#.#.####f\nfif####gg##f\nfbf.#.####.f\nfif....#.#.f\nffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n~fffffffffffff\nfifp...######f\nfif.......#.#f\nfif.........#f\nfif.......###f\nfif.......#.#f\nfif.....#####f\nfifgggggg##g#f\nfif......#.##f\nfif......#.##f\nfbf......#.##f\nfif......####f\nfbf......##.#f\nfif...#..#...f\nfbf..#####...f\nfif.....###..f\nffffffffffffff\n\n\n(dunno? schwierig)\n~fffffffffffff\nfbf#####p####f\nfif...####..#f\nfbf....#.####f\nfif.....#.#.#f\nfbf.....#.###f\nfif.....#.#.#f\nfbf.....#.#.#f\nfifgggg######f\nfbf......###.f\nfif....###...f\nffffffffffffff\n\n\n\n\n\n~fffffffffffff\nfifp..#.###..f\nfbf..##.#.#..f\nfbf...####...f\nfbf....##.#..f\nfifg##g#g##ggf\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif...#......f\nfif...###....f\nfbf....###...f\nfif.....#....f\nfbf....###...f\nfif...##.....f\nfbfgg##ggggggf\nfif.#####....f\nffffffffffffff\n\n\n\n~ffffffff\nfif....#f\nfif....#f\nfif....#f\nfif..###f\nfif....#f\nfif.p.##f\nfif....#f\nfif#.###f\nfif#..#.f\nfbf####.f\nfif#.#..f\nfbf#g#ggf\nfif###..f\nfbf..##.f\nfif###..f\nfbf#.##.f\nfif####.f\nfffffffff\n\n\n(Tricky)\n~fffffffffff\nfbfp.......f\nfif........f\nfbf...#....f\nfif...##...f\nfbf..#.#...f\nfif..#.###.f\nfbf.###.#..f\nfif...####.f\nffffffffffff\n\n\n~fffffffffff\nfbfp..##...f\nfif....##..f\nfbf...##...f\nfif...###..f\nfbf...#....f\nfif...###..f\nfbfggggg#ggf\nfif...####.f\nffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif...#......f\nfif...#......f\nfif...##.....f\nfbf....#.....f\nfif....##....f\nfbf.....#....f\nfif....###...f\nfbfggg#gg##ggf\nfif...####...f\nffffffffffffff\n\n\n\n\n~fffffffffff\nfifp...###.f\nfif...##.#.f\nfbf..#.###.f\nfif..###.#.f\nfbfggg####gf\nfif.....###f\nfbf...###..f\nfif...####.f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif.....#..f\nfif...###..f\nfif.....###f\nfbf....##..f\nfif...##...f\nfbf.#.##..#f\nfif.##.##.#f\nfbf#g#g#g##f\nfif########f\nfbf#......#f\nfif########f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif..#.....f\nfbf..##....f\nfif..###...f\nfbf..#.#...f\nfif..###...f\nfbfggg###ggf\nfif....#...f\nffffffffffff\n\n\n~fffffffffff\nfifp...##..f\nfif....###.f\nfif...##.#.f\nfif...#.#..f\nfbf...#.#..f\nfif...#.###f\nfbf..######f\nfifggg##gggf\nfbf....####f\nfif....#..#f\nfbf####.###f\nfif.#######f\nffffffffffff\n\n\n\n\n~ffffffffff\nfifp......f\nfif.......f\nfif.......f\nfif.......f\nfbf..###..f\nfif..#.#..f\nfbf.#.##..f\nfif.#####.f\nfbf...#...f\nfif.###...f\nfbfgg#g##gf\nfif..###..f\nfffffffffff\n\n\n\n~ffffffff\nfifp###.f\nfbf.#.##f\nfif.####f\nfbf.##..f\nfif..##.f\nfffffffff\n\n\n~fffffffffff\nfifp###....f\nfbf.#.##...f\nfbf.#.##...f\nfbf.#.##...f\nfifgggg##ggf\nffffffffffff\n\n\n~fffffffffff\nfifp...###.f\nfbf..#.#.#.f\nfbf..##.##.f\nfbf.#####..f\nfifgggg####f\nffffffffffff\n\n\n\n\n~fffffffffffff\nfifp...##.#..f\nfif....#.##..f\nfbf....#.##..f\nfif....#.##..f\nfbf....#.#.##f\nfif...######.f\nfbfggg#g##gggf\nfif..####....f\nfbf.....##...f\nfif...###....f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp....#....f\nfif.....#.#..f\nfif.....###..f\nfif...###.#..f\nfbfggg#g#####f\nfif....##.###f\nfbf...#.###..f\nfif...####...f\nfbf......##..f\nfif...#####..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp..#.#..f\nfbf...###..f\nfif....##..f\nfbfggg##gggf\nfif....#...f\nffffffffffff\n\n\n\n~fffffffffffff\nfifp...##....f\nfif.....#....f\nfif.....#....f\nfifggggg#ggggf\nfif#.####....f\nfif#.#..#....f\nfbf##.###....f\nfif.###.#####f\nfbf....#.#...f\nfif..######..f\nffffffffffffff\n\n\n~fffffffffff\nfifp...#.#.f\nfbf....###.f\nfif....##..f\nfbfggg#g###f\nfif...###..f\nffffffffffff\n\n\n~fffffffff\nfbfp##.#.f\nfif..#.#.f\nfbf..####f\nfif.###..f\nfbf...##.f\nfifggg#ggf\nffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif.......#..f\nfbf.......#..f\nfif.......#..f\nfbf....#####.f\nfif...####...f\nfbf.....#....f\nfifggggg##gggf\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif...#......f\nfbf..##......f\nfif...#.#....f\nfbf...###....f\nfif....#.....f\nfbf....##....f\nfif....####..f\nfbf.......##.f\nfifggg######gf\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif.#........f\nfbf.##.......f\nfif..#.......f\nfbf.###......f\nfif.#####....f\nfbf...#.##...f\nfif....#.##..f\nfbf....##.##.f\nfifggggg#####f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp....#....f\nfif.....#....f\nfbf.....#....f\nfif.....##...f\nfbf...##.#...f\nfif....#.#...f\nfbf....#.###.f\nfifgggg#g#gggf\nfbf...##.##..f\nfif....#####.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp..#......f\nfif...#......f\nfbf..###..#..f\nfif....####..f\nfbf.....#....f\nfif.....###..f\nfbf.....#.#..f\nfifggggg##gggf\nfbf...###.#.#f\nfif....######f\nffffffffffffff\n\n\n~fffffffffffff\nfifp..#......f\nfif...##.....f\nfbf...#..#...f\nfif..###.#...f\nfbf....#.#...f\nfif..######..f\nfbf.....#....f\nfif.....###..f\nfbfggggg#ggggf\nfif...#####..f\nffffffffffffff\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf#.........f\nfif#.........f\nfbf##........f\nfif.######...f\nfbf..#.#.#...f\nfif..##.##...f\nfbf..##.#.#..f\nfif...######.f\nffffffffffffff\n\n\n(hard)\n~fffffffffffff\nfifp...##....f\nfif....#.....f\nfbf....#.....f\nfif....##....f\nfbf....##....f\nfif..##.##...f\nfbf...#.#....f\nfifggg#g##gggf\nfbf..###.##..f\nfif....####..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp..#.#..f\nfif...###..f\nfif...##...f\nfbfgggg##ggf\nfif....##..f\nfbf...##...f\nfif....##..f\nffffffffffff\n\n\n(trivial)\n~fffffffffff\nfifp.....#.f\nfif.....##.f\nfif.....#..f\nfbf...###..f\nfif.####...f\nfbfggg##gggf\nfif....##..f\nffffffffffff\n\n\n(too easy)\n~fffffffffff\nfifp.......f\nfif.....#..f\nfif.....#..f\nfif.....#..f\nfbf.....#..f\nfif.....#..f\nfbf...####.f\nfifggg##g##f\nfbf.##.#...f\nfif..###...f\nffffffffffff\n\n\n\n(nice shape)\n~fffffffffff\nfifp.......f\nfif........f\nfif...#....f\nfif...##...f\nfbf....##..f\nfif...#.#..f\nfbf..#####.f\nfifgggg##ggf\nfbf....##..f\nfif...###..f\nffffffffffff\n\n(nice?/meh)\n~fffffffffff\nfifp.......f\nfif...#....f\nfif...#....f\nfif...##...f\nfbf....##..f\nfif....##..f\nfbf.....#..f\nfifgggg##ggf\nfbf..#.###.f\nfif.#####..f\nffffffffffff\n\n\n\n~fffffffffffff\nfifp#..#.#...f\nfif.####.#...f\nfbf..#.####..f\nfbf..#.##....f\nfbf.###.###..f\nfbf...#.#....f\nfbf...#####..f\nfifgggg######f\nffffffffffffff\n\n\n~fffffffffffff\nfifp....##..#f\nfif....#.#..#f\nfbf...##.####f\nfbf....####.#f\nfbf..##.#..##f\nfbf..##.#####f\nfbf...#####..f\nfifggg#g#ggggf\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.......#.f\nfif.....##.#.f\nfbf.....#.##.f\nfbf....#####.f\nfbf#......#..f\nfbf##.#######f\nfbf.##...##.#f\nfif.######..#f\nffffffffffffff\n\n\n~fffffffffffff\nfifp...###...f\nfif.##.#.##..f\nfbf..#.#####.f\nfbf..#..#....f\nfbf.#####....f\nfbf..#..##...f\nfbf..###.####f\nfifggg####g##f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..........f\nfif......#...f\nfbf...####...f\nfif...#.#....f\nfbf...####...f\nfif....#.##.#f\nfbf....##.###f\nfif...######.f\nfbf..##...##.f\nfif..######..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp.##....f\nfif...##...f\nfbf....##..f\nfif...#.##.f\nfbf...####.f\nfif...#..#.f\nfbf..####..f\nfifgggg##ggf\nfbf....#.#.f\nfif....####f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif....##..f\nfbf..##.#..f\nfif...#.##.f\nfbf...####.f\nfif...#..#.f\nfbf...###.#f\nfif....####f\nfbfgggg#g#gf\nfif..###...f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif....#...f\nfbf....##..f\nfif..###...f\nfbf..#.#..#f\nfif..##...#f\nfbf.####.##f\nfif...#.###f\nfbfggg#g#ggf\nfif...###..f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif....#...f\nfbf..###...f\nfif...#....f\nfbf##.##.#.f\nfif.##.####f\nfbf..##.##.f\nfif...###..f\nfbfggggg#ggf\nfif...###..f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif..#.....f\nfbf..##.##.f\nfif...###..f\nfbf..#.####f\nfif.##.#...f\nfbf..####..f\nfif...#.#..f\nfbfggg####gf\nfif...##...f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp.#.....f\nfif..#.....f\nfbf..#.#...f\nfif..###...f\nfbf...#.##.f\nfif...####.f\nfbf...##.#.f\nfif....##..f\nfbf...#.###f\nfif...#####f\nffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif......#...f\nfbf......##..f\nfif.....#.#..f\nfbf.....#.#..f\nfif...######.f\nfbf.....##...f\nfif#....##...f\nfbf###.###...f\nfif..#.##....f\nfbfgg##g###ggf\nfif...##.##..f\nfbf....#.###.f\nfif....###.#.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfbf.....#....f\nfif....##....f\nfbf....##....f\nfif.....##...f\nfbf....#.##..f\nfif....####..f\nfbf....#..##.f\nfif....#####.f\nfbf...##...#.f\nfifggg#g#####f\nfbf..#.#...#.f\nfif.########.f\nffffffffffffff\n\n\n\n\n\n\n\n~fffffffffff\nfifp.......f\nfif...#....f\nfbf...#.#..f\nfif...###..f\nfbf....##..f\nfif..###...f\nfbfgggg##ggf\nfif...##...f\nffffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.....#.f\nfbf....###f\nfif..#.##.f\nfbf#####..f\nfif.###...f\nfbf...#...f\nfif.####..f\nfffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.......f\nfbf..#.#..f\nfif.##.#..f\nfbf..###..f\nfif#..####f\nfbf####...f\nfif.#.#...f\nfffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.......f\nfbf..#..#.f\nfif.#####.f\nfbf...#.#.f\nfif.####..f\nfbf.##.##.f\nfif...##..f\nfffffffffff\n\n\n~fffffffffff\nfifp..###..f\nfbf.#.#.#..f\nfbf.#.##...f\nfbf.##.##..f\nfbf..#####.f\nffffffffffff\n\n\n~fffffffffff\nfifp.#.#.#.f\nfbf..###.#.f\nfif...#####f\nfbf..#..##.f\nfif..####..f\nffffffffffff\n\n\n~fffffffffff\nfifp..###.#f\nfbf...#.#.#f\nfif....####f\nfbf...##.##f\nfif...####.f\nffffffffffff\n\n\n\n~fffffffffff\nfifp..###..f\nfbf.#.#.#..f\nfif.#..##..f\nfbf#####...f\nfif..#####.f\nffffffffffff\n\n\n\n\n(figure giving tribute - meh?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif.....#.#..f\nfbf....####..f\nfif....#.#...f\nfbf....#.###.f\nfif.######...f\nfbf.....###..f\nfifgg####g#ggf\nffffffffffffff\n\n\n\n\n\n\n\n\n~fffffffffffff\nfbfp.#.......f\nfif..###.....f\nfbf..##......f\nfif...##.....f\nfbf..#.##....f\nfif.#####....f\nfbf...#.#..#.f\nfif....######f\nfbf.....#..#.f\nfifggggg##gggf\nffffffffffffff\n\n\n~fffffffffffffffffffffffffffffffffffffffffff\nfifp.####...##########.###################.f\nfbf....###.##....###.##.#.......####...#...f\nfbf...##.#.#######..###.#########..........f\nfbf......###.#..#...#.#####..#.............f\nfifggggggg##gggggggggg##gg#gg#gggggggggggggf\nffffffffffffffffffffffffffffffffffffffffffff\n\n\n(interesting!)\n~fffffffffff\nfbf####p###f\nfif#......#f\nfbf###....#f\nfif#.#...##f\nfbf#.##..##f\nfif###ggg##f\nfbf##..###.f\nfif.####.#.f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp#######f\nfif.#.###.#f\nfbf...#..##f\nfif######.#f\nfbf.###.###f\nfifggg###g#f\nfbf..###..#f\nfif..#.#...f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp#######f\nfif.#.###.#f\nfbf...#..##f\nfif######.#f\nfbf.###.###f\nfifggg###g#f\nfbf..###..#f\nfif..#.#...f\nffffffffffff\n\n\n\n~fffffffffffff\nfif##p.......f\nfif##........f\nfif#.........f\nfif##........f\nfif##........f\nfif#.........f\nfbf###gggggggf\nfif#.##......f\nfbf##.##.....f\nfif.###..#...f\nfbf..##..#...f\nfif...######.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.......##f\nfif.........#f\nfif.......###f\nfif.......#.#f\nfif......##.#f\nfif......#.##f\nfbf.....#####f\nfifggg####g#gf\nfbf..##.##...f\nfif.....###..f\nfbf.....#....f\nfif.....#....f\nffffffffffffff\n\n\n~fffffffffffff\nfif###p......f\nfif#.#.......f\nfif#.#.......f\nfif#.#.......f\nfif####.....#f\nfifggg#gggg##f\nfif...##....#f\nfif....###..#f\nfbf.....#.###f\nfif.....###..f\nffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n(bad)\n~fffffffffffff\nfifp..#......f\nfif...#......f\nfbf..##......f\nfif..##......f\nfbf..#####...f\nfif...#..##..f\nfbf....######f\nfif.....#..#.f\nfbfggggg##g#gf\nfif....###...f\nffffffffffffff\n\n\n(trivial)\n~fffffffffff\nfifp.#.....f\nfif..##....f\nfbf..###...f\nfif..#.....f\nfbf..####..f\nfif....#...f\nfbfggg##gggf\nfif....#...f\nffffffffffff\n\n(pretty trivial)\n~fffffffffff\nfifp.....#.f\nfif......#.f\nfbf...#.##.f\nfif...#.#..f\nfbf...###..f\nfif...##...f\nfbf....#...f\nfifgggg#gggf\nffffffffffff\n\n\n\n\n(fiine / easy )\n~fffffffffff\nfbfp.......f\nfif......#.f\nfbf......#.f\nfif.....##.f\nfbf....###.f\nfif....#...f\nfbf..###...f\nfif...##...f\nfbf...#.##.f\nfif...###..f\nffffffffffff\n\n\n(meh)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfbf........f\nfif........f\nfbf......#.f\nfif......##f\nfbf.....###f\nfif...###.#f\nfbf.....#.#f\nfif..######f\nfbf...#.#.#f\nfif....###.f\nfbf...##.#.f\nfifgg######f\nffffffffffff\n\n\n\n\n(pretty easy)\n~fffffffffff\nfbfp.......f\nfif........f\nfbf.....##.f\nfif......##f\nfbf.....##.f\nfif....#.##f\nfbf....####f\nfif...###..f\nfbf....##..f\nfif...##...f\nffffffffffff\n\n\n\n\n(easy/arbirtaray/pretty)\n~fffffffffffff\nfif.....p....f\nfif..#.#.....f\nfif..###.....f\nfif...#..#.#.f\nfif...#..###.f\nfbf...#...#..f\nfifg###...#..f\nfbf.#.....#..f\nfif.#.....#..f\nffffffffffffff\n\n\n\n(too trivial)\n~fffffffffffffffffffffffffffffffff\nfifp.............................f\nfif......#.......................f\nfif.....##.......................f\nfif.....##.......................f\nfif...####.......................f\nfif....#.#.......................f\nfif.....###......................f\nfif......#.......................f\nfif......#...#...................f\nfif.....######...................f\nfifggggggg####gggggggggggggggggggf\nfif..........#...................f\nfif..........#...................f\nfif..........##..................f\nfif..........##..................f\nfif.........###..................f\nfbf...........##.................f\nfif...........##.................f\nfbf............###.#.............f\nfif............######............f\nffffffffffffffffffffffffffffffffff\n\n\n(meh)\n~fffffffffffffffffffffffffffffffff\nfifp.............................f\nfif..............................f\nfif.........#....................f\nfif.........#....................f\nfif........###...................f\nfif..........#...................f\nfif.......#####..................f\nfif......##..###.................f\nfif.....##....##.................f\nfif.....#.....#..................f\nfifgggggggggg###gggggggggggggggggf\nfif...........##.................f\nfif...........#.#................f\nfif...........###................f\nfif............###...............f\nfif.............###..............f\nfbf...............###............f\nfif...............#.##...........f\nfbf...............##.............f\nfif...............#..............f\nffffffffffffffffffffffffffffffffff\n\n\n\n\n\n(meh)\n~fffffffffffffffffffffffffffffffffffffffffff\nfifp.##################.###################f\nfbf...#.#.##.##.##.#..#.#.#.##.#.....#.#.##f\nfif...#.#....##...#########.....######.#.#.f\nfbfgggggggggggggg##g#g##gggggggggg#ggggggggf\nfif...............#....##........###.......f\nffffffffffffffffffffffffffffffffffffffffffff\n\n\n(meh)\n~fffffffffffff\nfifp.........f\nfbf..........f\nfif......#...f\nfbf......#...f\nfif.....##...f\nfbf.....#....f\nfif....##....f\nffffffffffffff\n\n\n\n\n\n(looks good, but too easy?)\n~fffffffffff\nfbf########f\nfif#p.##..#f\nfbf###..###f\nfif#...####f\nfbf#####..#f\nfif#ggg####f\nfbf######.#f\nfif...##...f\nffffffffffff\n\n(trivial)\n~ffffffff\nfifp..##f\nfbf.#..#f\nfif.####f\nfbf.###.f\nfif..#..f\nfffffffff\n\n(trivial)\n~ffffffff\nfif#p...f\nfbf##.#.f\nfif####.f\nfbf..##.f\nfif.##..f\nfffffffff\n\n\n(Trivial)\n~ffffffff\nfifp..#.f\nfbf.#.##f\nfif.####f\nfbf.##.#f\nfif..#..f\nfffffffff\n\n\n(zu einfach)\n~ffffffffff\nfif##p.#..f\nfbf###.#..f\nfif#.###..f\nfbf#.##...f\nfif####...f\nfbfggg###gf\nfif...##..f\nfffffffffff\n\n\n(zu einfach?)\n~ffffffffff\nfifp...###f\nfbf....#.#f\nfif....###f\nfbf....#.#f\nfifgggg###f\nfbf####.##f\nfif.#####.f\nfffffffffff\n\n\n\n(meh)\n~fffffffffff\nfifp....###f\nfif....####f\nfbf....#..#f\nfif.#..####f\nfbfg#gg#gg#f\nfif.#######f\nfbf.....###f\nfif....##..f\nffffffffffff\n\n\n\n(meh)\n~fffffffffffff\nfif#####p....f\nfif#.##......f\nfif#.##......f\nfif#.#.##...#f\nfif#g#g###g##f\nfif####..#.##f\nfif##.####.##f\nfif....##.#.#f\nfbf.....#####f\nfif.....##.##f\nffffffffffffff\n\n\n(meh)\n~fffffffffffff\nfif###p......f\nfif#.#.......f\nfif#.##......f\nfif#.#.#...#.f\nfif#g#g##gg##f\nfif#.#.######f\nfif####..#.##f\nfif.#.#####.#f\nfbf....#.#.##f\nfif.....#####f\nffffffffffffff\n\n\n(trivial)\n~fffffffffffffffffffffff\nfif#########p.#########f\nfif#......#...#.......#f\nfif########....########f\nfif#.....#....##.#....#f\nfif#######gggg##g######f\nfif#.....###.#.####...#f\nfif#############.......f\nfif.#####...#..........f\nfbf.........##.........f\nfif..........##........f\nffffffffffffffffffffffff\n\n(trivial)\n~fffffffffffffffffffffff\nfif#######p#....#######f\nfif#.#.#.#.##....#.#.##f\nfif###.#.###..#..#.#.##f\nfif..#.#.#...###.######f\nfif########gg#g#g#gggg#f\nfif.##...##############f\nfif..#####..#...#.#.#..f\nfif..........####.#.#..f\nfbf..........##........f\nfif.........###........f\nffffffffffffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n(THE REST)\n\n(hard, couldn't solve myself)\n~fffffffffffffff\nfifp.........##f\nfif.........##.f\nfif.........###f\nfif........#..#f\nfbf........#.##f\nfif........#.#.f\nfbf.......#####f\nfif........#.##f\nfbf........#..#f\nfifggggggg##gggf\nfbf......##....f\nfif.....##.....f\nffffffffffffffff\n\n\n\n\n(solved first go, ok? ohne persönlichkeit) \n~fffffffffffff\nfbfp.......##f\nfif........#.f\nfbf........#.f\nfif.......##.f\nfbf......##..f\nfif.......#..f\nfbf......####f\nfif......##.#f\nfbf....###...f\nfif.....#....f\nffffffffffffff\n\n(too routine)\n~fffffffffffff\nfbfp.........f\nfif...#......f\nfbf...#......f\nfif..##......f\nfbf...##.....f\nfif.##.#.....f\nfbf..###.....f\nfif..#.##....f\nfbf....##....f\nfif.....##...f\nffffffffffffff\n\n(scheiße)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif..#.......f\nfbf..##......f\nfif...#......f\nfbf...##.....f\nfif....#.....f\nfbf....##....f\nfif.....#....f\nffffffffffffff\n\n\n(zu einfach/procedural?)\n~ffffffffffffff\nfifp..........f\nfif........#..f\nfif........#..f\nfbf.......###.f\nfif.......#.#.f\nfbf.......#...f\nfif.....###...f\nfbf......#....f\nfif......#....f\nfbf....###....f\nfif..####.....f\nfffffffffffffff\n\n\n\n\n\n(zu einfach)\n~fffffffffffff\nfbfp........#f\nfif.........#f\nfbf........##f\nfif.......###f\nfbf.......#..f\nfif.....###..f\nfbf.....#.#..f\nfif....###...f\nfbf....##....f\nfif.....#....f\nffffffffffffff\n\n(kein level)\n~fffffffffffff\nfif...p......f\nfif..........f\nfif..........f\nfif..#.......f\nfif..#.#####.f\nfif..#.....#.f\nfbf..#####.#.f\nfbf..#.....#.f\nfbf........#.f\nfbfgg.g#####gf\nfifgg.g#gggggf\nffffffffffffff\n\n(zu einfach)\n~ffffffffffffff\nfif...........f\nfif...........f\nfif...........f\nfif...p..#....f\nfif.#....#....f\nfif.#....#....f\nfif.#...##....f\nfif.#....##...f\nfbf.##....#...f\nfbfg.#..#.#...f\nfif..#..#.#...f\nfif..#..#.#...f\nfffffffffffffff\n\n\n\n\n\n(zu einfach?)\n~ffffffffff\nfif.......f\nfbf.#.#.#.f\nfif.#.#.#.f\nfbf.#####.f\nfif..#p#..f\nfbf.g###.gf\nfif.g.#g.gf\nfffffffffff\n\n(no level)\n~fffffffff\nfif...p..f\nfbf.g#.#.f\nfif.g###.f\nfbf....#.f\nfif...##.f\nfbfg..#..f\nfif...#..f\nffffffffff\n\n\n(no level)\nffffffff\nf......f\nf....#.f\nfg...#.f\nf..P.#.f\nf..#.#.f\nf..#.#.f\nf.##.#.f\nffffffff\n\n\n(zu einfach)\n~ffffffffff\nfifp....#.f\nfbf....###f\nfif.....##f\nfbf...###.f\nfif...##..f\nfbf...#...f\nfifg####ggf\nfffffffffff\n\n(kein Level)\n~fffffffffffff\nfif...p......f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbfg.........f\nfif..........f\nffffffffffffff\n\n\n\n(kein Level)\n~fffffffffffff\nfif#..p.#.#..f\nfbf########..f\nfbf#......#.#f\nfbf#.#####..#f\nfbf#.....#..#f\nfbf#..##.#..#f\nfbf#...#.#..#f\nfbf#####.####f\nfbf...#...#..f\nfbfg..#####..f\nfif....#.....f\nffffffffffffff\n\n\n\n\n\n(kein Level)\n~fffffffffffff\nfif...p......f\nfbf######....f\nfbf#....#....f\nfbf##........f\nfbf.#..###...f\nfbf.##.#.#...f\nfbf..#.#.#...f\nfbf..#.###...f\nfbf.##..#....f\nfbfg#...#....f\nfif.#...#....f\nffffffffffffff\n\n\n\n\n(kein Level)\n~fffffffffffff\nfif..........f\nfif.###......f\nfif.#.#...###f\nfif.###...#.#f\nfif.#...###..f\nfifg#.###....f\nfif.###.#....f\nfif.#..###...f\nfbf..p.#.#...f\nfbf...###....f\nfif...#.#....f\nffffffffffffff\n\n\n\n(zu einfach)\n~ffffffff\nfif##p..f\nfbf.####f\nfbf###.#f\nfbf...##f\nfif..##.f\nfffffffff\n\n(kein level)\n~fffffffffffff\nfbfp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..........f\nfif.....#....f\nfbf.....#....f\nfif....###...f\nfbf......#...f\nfif....###...f\nffffffffffffff\n\n(meh)\n~ffffffff\nfif##p..f\nfbf#....f\nfbf####.f\nfbf.##..f\nfif..#..f\nfffffffff\n\n(hmmm dunno -vllt zu einfach?)\n\n~fffffffffff\nfif#####p..f\nfbf##.####.f\nfbf##..##..f\nfbf.#..##..f\nfifggggg##gf\nffffffffffff\n\n(dunno?)\n~ffffffffffffffffff\nfifp............#.f\nfif............##.f\nfif.............##f\nfif..............#f\nfif..............#f\nfif............###f\nfif.........####.#f\nfbf...........##.#f\nfif..........##..#f\nfbf..........##...f\nfif.........###...f\nfbf........###....f\nfifgggggggg##gggggf\nfbf......###......f\nfif....#####......f\nfffffffffffffffffff\n\n(zu einfach)\n~ffffffff\nfif#p...f\nfbf#..#.f\nfbf####.f\nfbf..##.f\nfif..#..f\nfffffffff\n\n(boring!)\n~ffffffff\nfifp#.#.f\nfbf.###.f\nfif..##.f\nfbfg##ggf\nfif..#..f\nfffffffff\n\n(trivial)\n~fffffffffff\nfifp.....#.f\nfif......#.f\nfif......#.f\nfif.....##.f\nfbf.....#..f\nfif.....#..f\nfbfgggg##ggf\nfif....#...f\nffffffffffff\n\n(trivial)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif.......#..f\nfbf.......#..f\nfif......##..f\nfbf......##..f\nfif......#...f\nfbf.....##...f\nfifggggg#ggggf\nffffffffffffff\n\n\n(meh)\n~fffffffffff\nfifp.......f\nfif.#......f\nfbf.##.....f\nfif..#.....f\nfbf..##....f\nfif...#....f\nfbf...##...f\nfif....#...f\nffffffffffff\n\n\n(nicht interessant)\n~fffffffffffff\nfbfp.........f\nfif..........f\nfbf##........f\nfif#.........f\nfbf##........f\nfif#.........f\nfbf####......f\nfif.#.#......f\nfbf.###......f\nfif..###.#...f\nffffffffffffff\n\n(meh)\n~fffffffffffff\nfif#p........f\nfif##........f\nfif#.........f\nfif##........f\nfbf###.......f\nfif#.........f\nfbf##ggggggggf\nfif.##.......f\nfbf..#..#....f\nfif..#.###...f\nffffffffffffff\n\n\n\n\n\n\n\n\n(meh)\n~fffffffffffffffffffffffffffffffff\nfifp..............####...........f\nfbf..............#.#.#...........f\nfbf..............###.............f\nfbf.............###..#...........f\nfifggggggggggggggg#####ggggggggggf\nffffffffffffffffffffffffffffffffff\n\n\n\n(huh not so bad? but hard for some maybe? wait maybe i just solved by chance....)\n~fffffffffffff\nfifp......###f\nfif.#.#...#.#f\nfbf.#.##...##f\nfbf.####...##f\nfbf##..###.##f\nfbf######.#.#f\nfbf.....#####f\nfbf...###.##.f\nfbf...#.#....f\nfif....##....f\nffffffffffffff\n\n\n\nmessage level 5 of 10 : Gallows\n(hard - actually ok? medium difficulty?)\n~ffffffffffff\nfif.........f\nfifp.#......f\nfif..#......f\nfif..###....f\nfif..#......f\nfbf.####....f\nfif...###...f\nfbf...#.#...f\nfif.....#...f\nfbfggggg##ggf\nfif......##.f\nfffffffffffff\n\n\n\n\nmessage level 2 of 10 : ANTENNA 1\n(ok anfangerlevel?)\n~fffffffff\nfbfp#..#.f\nfif##..#.f\nfbf.#.##.f\nfif####.#f\nfbf#..###f\nfifggg#ggf\nffffffffff\n\n\n\nmessage level 3 of 10 : UFO\n(ok! / easy / Space invaders)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..#..#....f\nfif########..f\nfbf#.###..#..f\nfif.....####.f\nfbf..###.##..f\nfif....###...f\nffffffffffffff\n\n\n\n\n(\n(ok anfangerlevel)\n~fffffffff\nfbfp#..##f\nfif.##.##f\nfbf..###.f\nfif...###f\nfbf####..f\nfifggg#ggf\nffffffffff\n)\n\n\n\n\n(\n\n~fffffffffffff\nfifp.......#.f\nfif........##f\nfif........##f\nfif.........#f\nfbf.........#f\nfif.......###f\nfbf.......##.f\nfifggggggg##gf\nfbf.......#..f\nfif...#####..f\nffffffffffffff\n)\n\n\n(ok simple? NAH TOO SIMPLE)\n~ffffffffffffffffffffffffffff\nfifp........................f\nfif###......................f\nfif#.#......................f\nfif###......................f\nfif##.......................f\nfif##.......................f\nfif##.......................f\nfif#........................f\nfif##.......................f\nfif##.......................f\nfif##.......................f\nfif##..#.#..................f\nfif##.####..................f\nfif#####.#..................f\nfifgg#g#g#ggggggggggggggggggf\nfif..#.###..................f\nfif......##.................f\nfif......##.................f\nfif......#.#................f\nfif......####...............f\nfif.......#.#...............f\nfbf.......#.#...............f\nfif.....######..............f\nfbf.....#..#####.##.........f\nfif.........#.####..........f\nfffffffffffffffffffffffffffff\n\n\n\n\n(alien slug attack!)\nmessage level 6 of 10 : Alien Slug Attack\n~fffffffffffffffff\nfifp...####......f\nfbf....#####.....f\nfbf...##..##.....f\nfbf....#..##.....f\nfifgggggggg####ggf\nffffffffffffffffff\n\n\n\n\n\n(decent - middle-hard? -- too mich like final level? (difficulty/appearance-wise?)\n~fffffffffffffff\nfif#p..........f\nfif#...........f\nfif##..........f\nfif#...........f\nfbf###.........f\nfif#.#.........f\nfbf.##.#.......f\nfif..###.......f\nfbf...###......f\nfif....#...#...f\nfbfgggg######ggf\nfif......##....f\nffffffffffffffff\n)\n\n\n\n(fun to find the right points? MEH)\n~ffffffffffffffffffff\nfifp................f\nfif.................f\nfif...............##f\nfif................#f\nfif...............##f\nfif...............##f\nfif.............####f\nfif................#f\nfif..............###f\nfif...............##f\nfif................#f\nfif.........#.#...##f\nfif.........#.####.#f\nfif........####.####f\nfif............##...f\nfifgggggggg#######ggf\nfif........#..#.....f\nfif........######...f\nfif.........##......f\nfbf........##.......f\nfif.....####........f\nfbf......#..........f\nfif......#..........f\nfbf....###..........f\nfif.#######.........f\nfffffffffffffffffffff\n\n\n\n\n\n(wie ein gebäude aus - ziemlich einfach)\n~fffffffffffff\nfifp........#f\nfif........##f\nfif........##f\nfif........##f\nfbf.........#f\nfif.........#f\nfbfgggggggg##f\nfif......###.f\nfbf.......##.f\nfif....####..f\nffffffffffffff\n\n\n\n\n\n\n(nice/ok!)\n~ffffffffff\nfifp.....#f\nfbf.....##f\nfif....###f\nfbf....#.#f\nfif....###f\nfbfggg###gf\nfif..##...f\nfffffffffff\n\n\nmessage level 4 of 10 : Duck Tree\n(ducktree!)\n~fffffffffff\nfifp.##..##f\nfif.###.###f\nfbf...##.#.f\nfif..###.#.f\nfbf....####f\nfifgggg##ggf\nfbf....#...f\nfif....#...f\nffffffffffff\n\n\n\n)\n",[2,2,2,2,2,4,2,2,4,2,2,2,2,0,4,2,2,4,4,0,"restart",2,2,2,2,2,2,2,2,2,2,2,2,4,0,4,0,0,0,0,0,0,0,0,0,4],"background exploding fenster tl:0,background fenster fenster_right:1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,background fenster:2,background fenster fenster_down:3,background inventar:4,4,4,4,4,4,4,4,4,background bang_schatten inventar:5,\n4,5,4,5,4,background fenster fenster_up:6,2,background fenster fenster_left fenster_right:7,7,7,7,7,7,7,\n7,7,7,7,7,7,7,7,2,3,background:8,8,background htarget:9,background bond_d wall:10,\nbackground bond_d bond_u landbackground wall:11,11,11,11,11,11,11,background bond_u landbackground wall:12,background landbackground wall:13,background bond_r landbackground wall:14,background landbackground:15,6,3,8,\n8,9,8,15,15,15,15,15,15,15,15,15,background bond_d bond_l landbackground wall:16,background bond_r bond_u landbackground wall:17,\n6,3,8,8,9,8,background bond_d landbackground wall:18,background bond_d bond_r bond_u landbackground wall:19,19,11,11,19,11,19,\n12,13,background bond_l bond_r landbackground wall:20,6,3,8,8,9,8,15,background bond_d bond_l bond_r landbackground wall:21,background bond_l bond_u landbackground wall:22,15,15,\nbackground bond_l landbackground wall:23,15,23,15,15,20,6,3,8,8,9,8,18,background bond_l bond_r bond_u landbackground wall:24,\n15,15,15,15,15,15,14,background bond_d bond_r landbackground wall:25,24,6,3,8,8,background htarget player_h:26,\n8,15,23,15,15,15,15,15,15,20,21,24,6,3,\n8,8,9,8,15,15,15,15,15,15,15,15,23,21,\n24,6,3,8,8,9,8,15,15,15,15,15,15,15,\n15,15,16,22,6,3,8,8,9,8,15,15,15,15,\n15,15,15,15,15,15,13,6,3,8,8,9,8,15,\n15,15,15,15,15,15,15,15,15,15,6,2,background fenster fenster_left:27,27,\n27,27,27,27,27,27,27,27,27,27,27,27,27,2,\n",26,"1627892636599.9646"] + "A CLEAR VIEW OF THE SKY", + ["title A CLEAR VIEW OF THE SKY\nauthor increpare\nhomepage www.increpare.com\n\nnorepeat_action\n\nrun_rules_on_level_start\n\ncolor_palette 2\n\nbackground_color #005784\ntext_color lightblue\n\n(uses https://github.com/increpare/Zersto-rungto generate levels)\n========\nOBJECTS\n========\n\nbackground\nblue\n\nlandbackground\ngreen\n\n\nwall \ndarkblue gray lightgray\n00000\n01110\n01110\n01110\n00000\n\nplayer_h\ntransparent\n.....\n..0..\n.000.\n..0..\n.....\n\n\nplayer_v\nyellow\n.....\n..0..\n.000.\n..0..\n.....\n\n\nfenster\n#005784\n\n\nfenster_up\n#1d3d60 lightblue\n00000\n.....\n.....\n.....\n.....\n\nfenster_down\ndarkblue #17669f\n.....\n.....\n.....\n.....\n11111\n\nfenster_left\n#1d3d60 #17669f\n1....\n1....\n1....\n1....\n1....\n\nfenster_right\n#1d3d60\n....0\n....0\n....0\n....0\n....0\n\nhtarget\norange\n.....\n.....\n00000\n.....\n.....\n\n\nvtarget\norange\n..0..\n..0..\n..0..\n..0..\n..0..\n\ninventar\ndarkblue\n\nbang\n yellow red\n...0.\n..00.\n.010.\n.00..\n.0...\n\nbang_schatten\ndarkgray\n...0.\n..00.\n.0.0.\n.00..\n.0...\n\nbond_u\ndarkblue gray lightgray\n.111.\n.....\n.....\n.....\n.....\n\n\n\nbond_d\ndarkblue gray lightgray\n.....\n.....\n.....\n.....\n.111.\n\n\n\nbond_l\ndarkblue gray lightgray\n.....\n1....\n1....\n1....\n.....\n\n\n\nbond_r\ndarkblue gray lightgray\n.....\n....1\n....1\n....1\n.....\n\n\n\n\ntl\ntransparent\n\nexploding\ntransparent\n\nexplosion\nred yellow\n.1.1.\n10.01\n..0..\n10.01\n.1.1.\n\nnofall\nred\n.0...\n.....\n.....\n.....\n.....\n\nfall\nlightblue\n.0...\n.....\n.....\n.....\n.....\n\n\nsky_darker 7\ndarkred darkblue\n01010\n10101\n01110\n10101\n01011\n\nsky_darker2 8\ndarkbrown black\n01010\n10101\n01110\n10101\n01011\n\n\nsky_darker4 0\nblack darkblue\n11010\n10111\n01010\n11101\n01011\n\nsky_darker3 9\nwhite black\n11111\n11101\n11111\n11111\n11111\n\nsky_darker7 w\nblack\n\nsky_pink 2\nred darkblue\n01010\n10101\n01110\n10101\n01011\n\nsky_orange 1\nred lightred\n01000\n10101\n00010\n01010\n00000\n\n\nsky_red 3\nred orange\n01010\n10101\n01010\n10101\n01010\n\nsky_yellow 4\nyellow red orange\n12121\n21212\n10001\n00000\n00000\n\nsky_purple 5 \nred blue\n01010\n11101\n01010\n10111\n01010\n\n\nsky_land 6\ndarkgreen green\n01010\n10101\n01010\n10101\n01010\n\n=======\nLEGEND\n=======\n\nplayer = player_h or player_v\ntarget = htarget or vtarget\n\n. = Background\n# = wall\nP = Player_h\nf = fenster\n\ng = landbackground\n\nobstacle = wall\n~ = tl and fenster\ni = inventar\nb = bang and inventar\nbond = bond_u or bond_d or bond_l or bond_r\n\nfallblocker = wall or fenster\nanimation = 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 or 0\n=======\nSOUNDS\n=======\n\nsfx0 55915302 (bang)\nsfx1 90167907 (other agains)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nlandbackground, inventar\nwall\nbond_u\nbond_d\nbond_l\nbond_r\nexplosion\ntarget\nPlayer, fenster, bang,bang_schatten\nfenster_up\nfenster_down\nfenster_left\nfenster_right\ntl\nexploding\nnofall\nfall\n1,2,3,4, 5, 6,7,8,9,0,w\n\n======\nRULES\n======\n\n\nup [fenster | no fenster ]-> [ fenster fenster_up | ]\ndown [fenster | no fenster ]-> [ fenster fenster_down | ]\nleft [fenster | no fenster ]-> [ fenster fenster_left | ]\nright [fenster | no fenster ]-> [ fenster fenster_right | ]\n\n[ tl no exploding ] [bond]->[ tl ] [ ]\ndown [ tl no exploding ] [wall | wall]->[tl][ wall bond_d | wall bond_u ]\nright [ tl no exploding ] [wall | wall]->[tl][ wall bond_r | wall bond_l ]\n\n[tl]->[tl exploding]\n\ndown [ wall no bond_d | fallblocker ] -> [ wall nofall | fallblocker ]\n(floodfill)\nup [nofall bond_u | ] -> [ nofall bond_u | nofall ]\n+ down [nofall bond_d | ] -> [ nofall bond_d | nofall ]\n+ left [nofall bond_l | ] -> [ nofall bond_l | nofall ]\n+ right [nofall bond_r | ] -> [ nofall bond_r | nofall ]\n\n\ndown [ wall no nofall | no fallblocker ] -> [ wall fall | ]\n\nup [fall bond_u | ] -> [ fall bond_u | fall ]\n+ down [fall bond_d | ] -> [ fall bond_d | fall ]\n+ left [fall bond_l | ] -> [ fall bond_l | fall ]\n+ right [fall bond_r | ] -> [ fall bond_r | fall ]\n\n[fall wall]->[down wall] sfx1 again\n\n[fall]->[]\n[nofall]->[]\n\n[up wall bond ] -> [ up wall up bond ]\n+ [down wall bond ] -> [ down wall down bond ]\n+ [left wall bond ] -> [ left wall left bond ]\n+ [right wall bond ] -> [ right wall right bond ]\n\n[target]->[]\n\n\n[horizontal player ] -> cancel\n(\n[up player_h ] -> [ up player_v ]\n[down player_h ] -> [ down player_v ]\n[left player_v ] -> [ left player_h ]\n[right player_v ] -> [ right player_h ]\n)\n\nright left down [ landbackground | no landbackground no fenster ] -> [ landbackground | landbackground no fenster ]\n\n\n[player_h ] -> [ player_h htarget ]\n[player_v ] -> [ player_v vtarget ]\n\nhorizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nvertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\nup [ bond_u | explosion ] -> [ | explosion ]\ndown [ bond_d | explosion ] -> [ | explosion ]\nleft [ bond_l | explosion ] -> [ | explosion ]\nright [ bond_r | explosion ] -> [ | explosion ]\n\n[explosion wall ] -> [ no bond ] sfx1 again\n\n[explosion ] -> [ ] again\n\n[action player ] [bang] -> [ player ] [ action bang_schatten ]\n\n[action bang_schatten ] [ target ]-> [ action bang_schatten ] [ explosion ] sfx0 again\n\n\nlate [target]->[]\n\nlate [player_h ] -> [ player_h htarget ]\nlate [player_v ] -> [ player_v vtarget ]\n\nlate horizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nlate vertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll wall on landbackground \n\n=======\nLEVELS\n=======\n\n\n(OK LEVELS)\n\n\n\n\nmessage All those ugly buildings blocking our view.\nmessage Let's DEMOLISH them to SAVE OUR SKY\n\nmessage level 1 of 13 : FACTORY\n(sehr einfach)\n~ffffffffffffff\nfif...........f\nfif...........f\nfif...........f\nfif....p......f\nfif.....#.....f\nfif...#.#.....f\nfif...#.###...f\nfbf...######..f\nfif..###...#..f\nfbfg.#...#.#..f\nfif..#...#.#..f\nfffffffffffffff\n\n\nmessage Ah, what a lovely view of the sky!\n\nmessage level 2 of 13 : Lop-sided Electricity Poll\n(actually ok?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif...#......f\nfif...##.....f\nfif...#......f\nfbf...##.....f\nfif....##....f\nfbfggggg#ggggf\nfif.....#....f\nffffffffffffff\n\n\n\n\nmessage level 3 of 13 : Water Pump\n(ok anfängerlevel?)\n~fffffffff\nfif...p..f\nfbf###...f\nfif#.###.f\nfbf#.##..f\nfif#.##..f\nfbf#gg##gf\nfif...#..f\nffffffffff\n\n\n\n\nmessage level 4 of 13 : Electricity Supply\n\n(einfach/gut?)\n~ffffffff\nfif###p#f\nfbf#.#.#f\nfbf#####f\nfbf##.#.f\nfifg####f\nfffffffff\n\n\nmessage level 5 of 13 : Water Font\n(hard)\n~fffffffffffff\nfifp....###..f\nfbf...#.#.#..f\nfbf...####...f\nfbf...##.##..f\nfifgg#g####ggf\nffffffffffffff\n\n\n\nmessage level 6 of 13 : Angry Goose\n(tricky + sieht gut aus)\n~ffffffffffff\nfifp##.####.f\nfbf.####.##.f\nfbf...##.#..f\nfbf...###...f\nfifgg##gggggf\nfffffffffffff\n\n\n\nmessage level 7 of 13 : Lean-to\n(nice/ok!)\n~fffffffffff\nfifp..#....f\nfif..##....f\nfbf.##.....f\nfif..#.....f\nfbf####....f\nfif...##...f\nfbfggg##gggf\nfif....##..f\nffffffffffff\n\n\n(medium-hard / fun! )\nmessage level 8 of 13 : Treehouse\n~fffffffffffffff\nfifp...........f\nfif........#...f\nfif........#...f\nfif.......####.f\nfbf.......#..#.f\nfif......#####.f\nfbf........#...f\nfif......###...f\nfbf......##....f\nfif.....##.....f\nfbfgggg#g#gggggf\nfif...####.....f\nffffffffffffffff\n\n\n\n\nmessage level 9 of 13 : Ugly Antenna\n(i had fun solving this)\n~fffffffffffff\nfifp.###.####f\nfbf..#.#....#f\nfif..#.##.###f\nfbf..#.###.#.f\nfif..####.##.f\nfbfggggg###ggf\nfif.....#....f\nffffffffffffff\n\n\n\n\nmessage level 10 of 13 : 60's Futuristic settlement\n(ok/interesting to solve!)\n~fffffffffff\nfbf##p.####f\nfif#...#..#f\nfbf#...####f\nfif######.#f\nfbf###.##.#f\nfifggg##gg#f\nfbf...#.#.#f\nfif...###..f\nffffffffffff\n\n\nmessage level 11 of 13 : Dystopic settlement\n(futuristic city - hardlevel?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..##......f\nfif..#.......f\nfbf..##.#.#..f\nfif..##.###..f\nfbf..###.###.f\nfif....#.##..f\nfbf....#.#...f\nfifggg####gggf\nffffffffffffff\n\n\nmessage level 12 of 13 : Space elevator\n(interesting? seemingly impossible?)\n~fffffffffffff\nfif#####p....f\nfif#.#.#.....f\nfif#.####....f\nfif#.##......f\nfif#g#gggggggf\nfif#.#.......f\nfif#.##......f\nfif#.#.......f\nfif#.##......f\nfbf#.#.......f\nfif#.###.....f\nfbf#.#.###.#.f\nfif#.###..##.f\nfbf##..####..f\nfif.#######..f\nffffffffffffff\n\n\n\n\nmessage level 13 of 13 : Building seeminly purposely constructed to block my view.\n\n(can't easily solve meh - could be ok final level? FINAL LEVEL)\n~fffffffffffffffff\nfif###p..........f\nfif#.##..........f\nfif####..........f\nfif...##.........f\nfif####..........f\nfif.#............f\nfif##............f\nfif###...........f\nfif..#...........f\nfif#####.........f\nfif...#.#.#......f\nfif######.#......f\nfif###..###......f\nfif#..###........f\nfif.....##.......f\nfifgggggg#gggggggf\nfif......###.....f\nfif.......##.....f\nfif.......##.....f\nfbf........##....f\nfif........##....f\nfbf.........##...f\nfif.........##...f\nfbf.........#####f\nfif............#.f\nffffffffffffffffff\n\n\nmessage Ahh, the sky is clear again, just in time for the sunset\n\n\n\n5555555555555555555\n5555522222222555555\n5552222222222222555\n5222222222222222225\n2222222111112222222\n2222211111111122222\n2221111133311111222\n2211111334331111112\n6666666666666666666\n6666666666666666666\n6666666666666666666\n\n\n\n\n22222222222222222222\n22222222222222222222\n22222222222222222222\n22222222222222222222\n22222221212122222222\n22221212121212122222\n22212121111121212222\n22121211111112121222\n66666666666666666666\n66666666666666666666\n66666666666666666666\n\n\n\n00000077777777000000\n00007777777777770000\n00077777777777777000\n07777777777777777770\n77777722222222777777\n77772222222222227777\n77722221111122222777\n77222211111112222277\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n88888888888888888888\n88888880000088888888\n88888000000000088888\n88800000000000000888\n88000000000000000088\n80000000000000000008\n00000000222000000000\n00000002222200000000\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwww000wwwwwwwww\nwwwww000222000wwwwww\n00000022222220000000\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n\n\nw9wwwwwwww9wwwwwwwww\nwwwwwwwwwwwwww9www9w\nwwww9wwwwwwwwwwwwwww\nwwwwwwwww9wwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwww9www\nw9wwwww9wwwww9wwwwww\nwwwwwwwwwwwwwwwwwwww\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\nmessage The End \n\n\n\n(\n\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf.....#....f\nfif....####..f\nfbf...##..#..f\nfif#.#..###..f\nfbf#####.##..f\nfif.#.####...f\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfbfp.........f\nfif....#.....f\nfbf....##....f\nfif....###...f\nfbf......#...f\nfif..######..f\nfbf...#.#.#..f\nfif.....####.f\nfbf....#.##..f\nfifgg#####gggf\nffffffffffffff\n\n(microscope?)\n~fffffffffffff\nfbfp.........f\nfif......##..f\nfbf.....##...f\nfif....##....f\nfbf....#.##..f\nfif....#.#...f\nfbf....####..f\nfif.......#..f\nfbf..######..f\nfifgg####ggggf\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.......#.f\nfif......#.#.f\nfif......#.##f\nfif......####f\nfbf....####.#f\nfifggggg#g##gf\nfbf...#####.#f\nfif....######f\nfbf..#.###...f\nfif.######...f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.....#...f\nfif......##..f\nfif....####..f\nfif....##.#..f\nfbf....###...f\nfifgg#g####ggf\nfbf..####.#..f\nfif..#####...f\nfbf..#######.f\nfif....#####.f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.....#...f\nfif....#.#...f\nfif....###...f\nfif...###..#.f\nfbf...#.####.f\nfifgggg##ggggf\nfbf...#####..f\nfif....####..f\nfbf..######..f\nfif..########f\nffffffffffffff\n\n\n\n\n~fffffffffff\nfbfp...#.#.f\nfif....#.##f\nfbf....###.f\nfif.###.###f\nfbf...###.#f\nfif.....##.f\nfbfggg###ggf\nfif...#####f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp...##..f\nfif.######.f\nfbf....#.#.f\nfif...###..f\nfbf...#.##.f\nfif....###.f\nfbfggg#gg#gf\nfif..######f\nffffffffffff\n\n(hard, but looks nice)\n~fffffffffff\nfbfp...#..#f\nfif....####f\nfbf.....#.#f\nfif...###..f\nfbf.....###f\nfif...###..f\nfbfg##g#g##f\nfif..######f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp..#.##.f\nfif...#.#..f\nfbf...#####f\nfif....#.#.f\nfbf....###.f\nfif...###..f\nfbfg###gg#gf\nfif.#.####.f\nffffffffffff\n\n~fffffffffff\nfifp.......f\nfif........f\nfif#.......f\nfbf###.....f\nfif#.##....f\nfbf##......f\nfif##......f\nfbf#.......f\nfif##.#....f\nfbf##.#....f\nfif.####...f\nfbf.#.####.f\nfif....#.#.f\nfbfgggg###gf\nfif....#...f\nffffffffffff\n\n\n\n(hard/unsolved)\n~fffffffffffff\nfifp...####..f\nfif.....##...f\nfbf....##....f\nfif...#.##...f\nfbf...#.#..#.f\nfif...####.#.f\nfbf....#.###.f\nfif....#.#...f\nfbfggg#######f\nfif..#...#...f\nfbf.######...f\nfif...###....f\nffffffffffffff\n\n\n(haard, pretty, unsolved)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf.....#....f\nfif....###...f\nfbf...#####..f\nfif.....#..#.f\nfbf.....####.f\nfif..#.#.#.#.f\nfbf.##.#.##..f\nfif..#.####.#f\nfbfgg##ggg#g#f\nfif...#######f\nffffffffffffff\n\n\n(haard, pretty, ,unsolved)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf...##..#..f\nfif.##.####..f\nfbf..##.#.#..f\nfif...#.###..f\nfbf...##.##..f\nfif....###...f\nfbf......#...f\nfif....######f\nfbfgg###ggg##f\nfif....#####.f\nffffffffffffff\n\n(haard ,unsolved)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfbf........f\nfif....###.f\nfbf.....###f\nfif......#.f\nfbf......#.f\nfif.....##.f\nfbf......##f\nfif....####f\nfbf....##..f\nfif...###..f\nfbf....##..f\nfifggg##gggf\nffffffffffff\n\n\n\n(too tired, don't want to solve)\n~ffffffffffffffffffffffffffffffffffffff\nfifp..................................f\nfif.......#...........................f\nfif.......#...........................f\nfif#.....##...........................f\nfif##...##............................f\nfif.####.#............................f\nfif....####...........................f\nfif....##.#...........................f\nfif.......##..........................f\nfif......####.........................f\nfif........#.#........................f\nfif.......####........................f\nfif.......#.##........................f\nfifggggggg#g##ggggggggggggggggggggggggf\nfif........####.......................f\nfif...........#.......................f\nfif........######.....................f\nfif........#.##.##....................f\nfif............##.....................f\nfbf..........####.....................f\nfif............####...................f\nfbf...........##.###..................f\nfif..............#.#..................f\nfbf................#..................f\nfif................###................f\nfffffffffffffffffffffffffffffffffffffff\n\n\n~fffffffffffff\nfbfp.#.......f\nfif..###.....f\nfbf..##......f\nfif...##.....f\nfbf..#.##....f\nfif.#####....f\nfbf...#.#..#.f\nfif....######f\nfbf.....#..#.f\nfifggggg##gggf\nffffffffffffff\n\n\n~fffffffffffff\nfifp.....##.#f\nfif.......#.#f\nfif.......#.#f\nfif.......###f\nfif.........#f\nfif.........#f\nfifggggggggg#f\nfif.......###f\nfif......##.#f\nfif.....###.#f\nfif.......###f\nfif.........#f\nfif.......###f\nfif......#..#f\nfif......####f\nfif.......#.#f\nfif........##f\nfif.......###f\nfif.........#f\nfif........##f\nfif.......###f\nfif........##f\nfif........##f\nfif.........#f\nfbf..##...###f\nfif..#...##.#f\nfbf..##....##f\nfif..###.###.f\nfbf...##.#...f\nfif...#####..f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif.........#f\nfif.......###f\nfif........##f\nfif........##f\nfif........##f\nfif.....##.##f\nfifgggggg#g##f\nfif.....#####f\nfif.........#f\nfif.....#####f\nfif.........#f\nfif...#######f\nfif.....#...#f\nfif......####f\nfif.........#f\nfif.......###f\nfif......##.#f\nfif.......#.#f\nfif.......###f\nfif......#..#f\nfif......####f\nfbf.........#f\nfif.......###f\nfbf.......#.#f\nfif.......##.f\nfbf.....###..f\nfif..#####...f\nffffffffffffff\n\n\n\n~fffffffffffffffffffffff\nfifp.................##f\nfif.................#.#f\nfif.................###f\nfif...................#f\nfif...................#f\nfif..................##f\nfifgggggggggggggggggg##f\nfif..................##f\nfif.................#.#f\nfif.................#.#f\nfif.............###.###f\nfif..............#.##.#f\nfif..............###..#f\nfif...............#.#.#f\nfbf...............#.###f\nfif...##....#.##..###.#f\nfbf...###.###..#.#.#.##f\nfif....####.#..#######.f\nfbf......########..#.#.f\nfif..........##......#.f\nffffffffffffffffffffffff\n\n\n\n~ffffffffffffffffff\nfif##p.....#######f\nfif##.......##...#f\nfif#..#.......####f\nfif######.....####f\nfbf#....##..###..#f\nfif######...#.#.##f\nfbfg#gg####g##ggggf\nfif.....#.#####...f\nfbf.....###.#.....f\nfif.......##......f\nfffffffffffffffffff\n\n\n\n~ffffffffffffffffff\nfif########p......f\nfif#.#.#.#........f\nfif#.#.#.#...#....f\nfif#.######.######f\nfbf#g##gg#######ggf\nfif#.#...##.#..##.f\nfbf###....#.###...f\nfif##.....###.....f\nfbf#....####......f\nfif.......#.......f\nfffffffffffffffffff\n\n\n\n~fffffffffffffffffffffff\nfifp.......############f\nfif......####.#.......#f\nfif......#.#.#.########f\nfif.......##.#.#......#f\nfbfggggggg#g##g########f\nfif......###.#.#.#.####f\nfbf........######...#..f\nfif.....###....#.......f\nfbf.......######.......f\nfif.....########.......f\nffffffffffffffffffffffff\n\n\n\n\n\n~fffffffffffffffffffffff\nfif###p########.##.####f\nfif#####..#.#...####..#f\nfif...#.###.##....#.###f\nfif#######..#.#########f\nfbf.#...#.#.######.#...f\nfifg#####g##g##ggggggggf\nfbf.....######.........f\nfif.......#..##........f\nfbf.........###........f\nfif..........###.......f\nffffffffffffffffffffffff\n\n\n\n\n~fffffffffffffffffffffff\nfif#########p....##....f\nfif#.#.#.##....###.....f\nfif#.#.#.#....#.####...f\nfif#.#.#.#....#.#..#...f\nfbf#g#g###gggg#g###ggggf\nfif####..#.#..###.#....f\nfbf...####.#..##.......f\nfif...##.#.##.#.#......f\nfbf....##########......f\nfif....#....##.#.......f\nffffffffffffffffffffffff\n\n\n\n(hard, haven't solved manually)\n~fffffffffffff\nfif###p......f\nfbf#.#.......f\nfif#.###.....f\nfbf#.#.##....f\nfif####g####gf\nfbf##.####...f\nfif.##..#....f\nffffffffffffff\n\n\n(too hard)\n~fffffffffffff\nfif#####p....f\nfif#.#.#.....f\nfif#.##.#....f\nfif#.#####...f\nfif#.##.#....f\nfif#g#gggggggf\nfif#.####....f\nfif#.#.#..##.f\nfif#.###.#.##f\nfbf##..#####.f\nfif.####.....f\nfbf...###....f\nfif....#.....f\nfbf....#.##..f\nfif....###...f\nffffffffffffff\n\n\n\n(hard, looks ok, but meh)\n~fffffffffffff\nfif###p#.....f\nfif##.##.....f\nfif##.#......f\nfif####......f\nfif#.#.......f\nfbf#.#.......f\nfif###.......f\nfbf#.##......f\nfif#.##......f\nfbf##g##gggggf\nfif.###......f\nfbf.#.##.....f\nfif...#......f\nfbf..###.#...f\nfif....####..f\nffffffffffffff\n\n\n(hard, looks ok, but meh)\n~fffffffffffff\nfif##p#......f\nfif####......f\nfif#.##......f\nfif#.#.......f\nfif#.#.......f\nfbf###.......f\nfif#.........f\nfbf###.......f\nfif#.........f\nfbf#####gggggf\nfif#.##.#....f\nfbf..##.##...f\nfif..#####...f\nfbf.....###..f\nfif...###....f\nffffffffffffff\n\n(hmmm! not sure!)\n~ffffffffffffffffffffffffffff\nfifp........................f\nfif.........................f\nfif.........................f\nfif.........................f\nfif....................##...f\nfif.....................##..f\nfif....................##...f\nfif...................###...f\nfif...................##....f\nfif.................####....f\nfifgggggggggggggggggggg###ggf\nfif...............######.##.f\nfif..................#.#....f\nfif..................####...f\nfif................####.#...f\nfif................###......f\nfif..................##.....f\nfif..................#.##...f\nfif................###.##...f\nfbf................#.#####..f\nfif...............##.#......f\nfbf................####.....f\nfif................##.......f\nfbf.............#####.......f\nfif.........#####...........f\nfffffffffffffffffffffffffffff\n\n\n\n(soll schwierig sein - will nicht lösen!)\n~fffffffffff\nfifp.......f\nfif........f\nfbf........f\nfif....#...f\nfbf..###...f\nfif....##..f\nfbf...#.#..f\nfif...#.##.f\nfbf...#.###f\nfif..###.##f\nfbf..#.###.f\nfifgggg##ggf\nffffffffffff\n\n\n(soll schwierig sein - ja zu schwierig)\n~ffffffffffff\nfif.........f\nfbf.p.......f\nfif...#.....f\nfbf...#.....f\nfif...###...f\nfbf...#.##..f\nfif.#####...f\nfbf..#..###.f\nfif...##..#.f\nfbf....####.f\nfifggggg##ggf\nfffffffffffff\n\n(hard - will nicht lösen )\n~fffffffffffff\nfifp.........f\nfif......#...f\nfif.....##...f\nfif....##....f\nfbf....#.##..f\nfif....###...f\nfbfgggg##ggggf\nfif...###....f\nfbf.....#....f\nfif....##....f\nffffffffffffff\n\n\n(should be hard?)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfif...##...f\nfbf..###...f\nfif.###....f\nfbf...##...f\nfif....#...f\nfbf..#.##..f\nfifgg##g#g.f\nfbf...#.#..f\nfif...###..f\nffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n(zeimlich einfach!)\n~fffffffffff\nfifp.#..#..f\nfif..##.#..f\nfbf...#.##.f\nfif...####.f\nfbf....##..f\nfif..###...f\nfbfgggg#gggf\nfif....#...f\nffffffffffff\n\n\n(simple/ok)\n~ffffffffff\nfifp.#..##f\nfbf..#####f\nfif..#.#.#f\nfbf...##..f\nfif..##...f\nfbfggg###gf\nfif..##...f\nfffffffffff\n\n\n(simple/ok)\n~fffffffffff\nfifp......#f\nfif......##f\nfbf......##f\nfif.....###f\nfbf.......#f\nfifgggggg##f\nfbf.....##.f\nfif...###..f\nffffffffffff\n\n\n\n\n(simple/ok / ok maybe nicer than ok! :] )\n~fffffffffff\nfifp....#..f\nfif...#.##.f\nfbf...###..f\nfif..###...f\nfbf...#....f\nfif...##...f\nfbfgggg##ggf\nfif....#...f\nffffffffffff\n\n\n\n\n\n\n\n(beautiful-looking? not fun to solve)\n~fffffffffff\nfbf########f\nfif##p...##f\nfbf##...#.#f\nfif#.#..###f\nfbf#.#...##f\nfif###g#g##f\nfbf#.######f\nfif....#.#.f\nffffffffffff\n\n\n\n\n\n\n\n(ok to solve!)\n~fffffffffff\nfbfp...####f\nfif....#..#f\nfbf....####f\nfif#.###..#f\nfbf#.#.####f\nfif####gg##f\nfbf.#.####.f\nfif....#.#.f\nffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n~fffffffffffff\nfifp...######f\nfif.......#.#f\nfif.........#f\nfif.......###f\nfif.......#.#f\nfif.....#####f\nfifgggggg##g#f\nfif......#.##f\nfif......#.##f\nfbf......#.##f\nfif......####f\nfbf......##.#f\nfif...#..#...f\nfbf..#####...f\nfif.....###..f\nffffffffffffff\n\n\n(dunno? schwierig)\n~fffffffffffff\nfbf#####p####f\nfif...####..#f\nfbf....#.####f\nfif.....#.#.#f\nfbf.....#.###f\nfif.....#.#.#f\nfbf.....#.#.#f\nfifgggg######f\nfbf......###.f\nfif....###...f\nffffffffffffff\n\n\n\n\n\n~fffffffffffff\nfifp..#.###..f\nfbf..##.#.#..f\nfbf...####...f\nfbf....##.#..f\nfifg##g#g##ggf\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif...#......f\nfif...###....f\nfbf....###...f\nfif.....#....f\nfbf....###...f\nfif...##.....f\nfbfgg##ggggggf\nfif.#####....f\nffffffffffffff\n\n\n\n~ffffffff\nfif....#f\nfif....#f\nfif....#f\nfif..###f\nfif....#f\nfif.p.##f\nfif....#f\nfif#.###f\nfif#..#.f\nfbf####.f\nfif#.#..f\nfbf#g#ggf\nfif###..f\nfbf..##.f\nfif###..f\nfbf#.##.f\nfif####.f\nfffffffff\n\n\n(Tricky)\n~fffffffffff\nfbfp.......f\nfif........f\nfbf...#....f\nfif...##...f\nfbf..#.#...f\nfif..#.###.f\nfbf.###.#..f\nfif...####.f\nffffffffffff\n\n\n~fffffffffff\nfbfp..##...f\nfif....##..f\nfbf...##...f\nfif...###..f\nfbf...#....f\nfif...###..f\nfbfggggg#ggf\nfif...####.f\nffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif...#......f\nfif...#......f\nfif...##.....f\nfbf....#.....f\nfif....##....f\nfbf.....#....f\nfif....###...f\nfbfggg#gg##ggf\nfif...####...f\nffffffffffffff\n\n\n\n\n~fffffffffff\nfifp...###.f\nfif...##.#.f\nfbf..#.###.f\nfif..###.#.f\nfbfggg####gf\nfif.....###f\nfbf...###..f\nfif...####.f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif.....#..f\nfif...###..f\nfif.....###f\nfbf....##..f\nfif...##...f\nfbf.#.##..#f\nfif.##.##.#f\nfbf#g#g#g##f\nfif########f\nfbf#......#f\nfif########f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif..#.....f\nfbf..##....f\nfif..###...f\nfbf..#.#...f\nfif..###...f\nfbfggg###ggf\nfif....#...f\nffffffffffff\n\n\n~fffffffffff\nfifp...##..f\nfif....###.f\nfif...##.#.f\nfif...#.#..f\nfbf...#.#..f\nfif...#.###f\nfbf..######f\nfifggg##gggf\nfbf....####f\nfif....#..#f\nfbf####.###f\nfif.#######f\nffffffffffff\n\n\n\n\n~ffffffffff\nfifp......f\nfif.......f\nfif.......f\nfif.......f\nfbf..###..f\nfif..#.#..f\nfbf.#.##..f\nfif.#####.f\nfbf...#...f\nfif.###...f\nfbfgg#g##gf\nfif..###..f\nfffffffffff\n\n\n\n~ffffffff\nfifp###.f\nfbf.#.##f\nfif.####f\nfbf.##..f\nfif..##.f\nfffffffff\n\n\n~fffffffffff\nfifp###....f\nfbf.#.##...f\nfbf.#.##...f\nfbf.#.##...f\nfifgggg##ggf\nffffffffffff\n\n\n~fffffffffff\nfifp...###.f\nfbf..#.#.#.f\nfbf..##.##.f\nfbf.#####..f\nfifgggg####f\nffffffffffff\n\n\n\n\n~fffffffffffff\nfifp...##.#..f\nfif....#.##..f\nfbf....#.##..f\nfif....#.##..f\nfbf....#.#.##f\nfif...######.f\nfbfggg#g##gggf\nfif..####....f\nfbf.....##...f\nfif...###....f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp....#....f\nfif.....#.#..f\nfif.....###..f\nfif...###.#..f\nfbfggg#g#####f\nfif....##.###f\nfbf...#.###..f\nfif...####...f\nfbf......##..f\nfif...#####..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp..#.#..f\nfbf...###..f\nfif....##..f\nfbfggg##gggf\nfif....#...f\nffffffffffff\n\n\n\n~fffffffffffff\nfifp...##....f\nfif.....#....f\nfif.....#....f\nfifggggg#ggggf\nfif#.####....f\nfif#.#..#....f\nfbf##.###....f\nfif.###.#####f\nfbf....#.#...f\nfif..######..f\nffffffffffffff\n\n\n~fffffffffff\nfifp...#.#.f\nfbf....###.f\nfif....##..f\nfbfggg#g###f\nfif...###..f\nffffffffffff\n\n\n~fffffffff\nfbfp##.#.f\nfif..#.#.f\nfbf..####f\nfif.###..f\nfbf...##.f\nfifggg#ggf\nffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif.......#..f\nfbf.......#..f\nfif.......#..f\nfbf....#####.f\nfif...####...f\nfbf.....#....f\nfifggggg##gggf\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif...#......f\nfbf..##......f\nfif...#.#....f\nfbf...###....f\nfif....#.....f\nfbf....##....f\nfif....####..f\nfbf.......##.f\nfifggg######gf\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif.#........f\nfbf.##.......f\nfif..#.......f\nfbf.###......f\nfif.#####....f\nfbf...#.##...f\nfif....#.##..f\nfbf....##.##.f\nfifggggg#####f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp....#....f\nfif.....#....f\nfbf.....#....f\nfif.....##...f\nfbf...##.#...f\nfif....#.#...f\nfbf....#.###.f\nfifgggg#g#gggf\nfbf...##.##..f\nfif....#####.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp..#......f\nfif...#......f\nfbf..###..#..f\nfif....####..f\nfbf.....#....f\nfif.....###..f\nfbf.....#.#..f\nfifggggg##gggf\nfbf...###.#.#f\nfif....######f\nffffffffffffff\n\n\n~fffffffffffff\nfifp..#......f\nfif...##.....f\nfbf...#..#...f\nfif..###.#...f\nfbf....#.#...f\nfif..######..f\nfbf.....#....f\nfif.....###..f\nfbfggggg#ggggf\nfif...#####..f\nffffffffffffff\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf#.........f\nfif#.........f\nfbf##........f\nfif.######...f\nfbf..#.#.#...f\nfif..##.##...f\nfbf..##.#.#..f\nfif...######.f\nffffffffffffff\n\n\n(hard)\n~fffffffffffff\nfifp...##....f\nfif....#.....f\nfbf....#.....f\nfif....##....f\nfbf....##....f\nfif..##.##...f\nfbf...#.#....f\nfifggg#g##gggf\nfbf..###.##..f\nfif....####..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp..#.#..f\nfif...###..f\nfif...##...f\nfbfgggg##ggf\nfif....##..f\nfbf...##...f\nfif....##..f\nffffffffffff\n\n\n(trivial)\n~fffffffffff\nfifp.....#.f\nfif.....##.f\nfif.....#..f\nfbf...###..f\nfif.####...f\nfbfggg##gggf\nfif....##..f\nffffffffffff\n\n\n(too easy)\n~fffffffffff\nfifp.......f\nfif.....#..f\nfif.....#..f\nfif.....#..f\nfbf.....#..f\nfif.....#..f\nfbf...####.f\nfifggg##g##f\nfbf.##.#...f\nfif..###...f\nffffffffffff\n\n\n\n(nice shape)\n~fffffffffff\nfifp.......f\nfif........f\nfif...#....f\nfif...##...f\nfbf....##..f\nfif...#.#..f\nfbf..#####.f\nfifgggg##ggf\nfbf....##..f\nfif...###..f\nffffffffffff\n\n(nice?/meh)\n~fffffffffff\nfifp.......f\nfif...#....f\nfif...#....f\nfif...##...f\nfbf....##..f\nfif....##..f\nfbf.....#..f\nfifgggg##ggf\nfbf..#.###.f\nfif.#####..f\nffffffffffff\n\n\n\n~fffffffffffff\nfifp#..#.#...f\nfif.####.#...f\nfbf..#.####..f\nfbf..#.##....f\nfbf.###.###..f\nfbf...#.#....f\nfbf...#####..f\nfifgggg######f\nffffffffffffff\n\n\n~fffffffffffff\nfifp....##..#f\nfif....#.#..#f\nfbf...##.####f\nfbf....####.#f\nfbf..##.#..##f\nfbf..##.#####f\nfbf...#####..f\nfifggg#g#ggggf\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.......#.f\nfif.....##.#.f\nfbf.....#.##.f\nfbf....#####.f\nfbf#......#..f\nfbf##.#######f\nfbf.##...##.#f\nfif.######..#f\nffffffffffffff\n\n\n~fffffffffffff\nfifp...###...f\nfif.##.#.##..f\nfbf..#.#####.f\nfbf..#..#....f\nfbf.#####....f\nfbf..#..##...f\nfbf..###.####f\nfifggg####g##f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..........f\nfif......#...f\nfbf...####...f\nfif...#.#....f\nfbf...####...f\nfif....#.##.#f\nfbf....##.###f\nfif...######.f\nfbf..##...##.f\nfif..######..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp.##....f\nfif...##...f\nfbf....##..f\nfif...#.##.f\nfbf...####.f\nfif...#..#.f\nfbf..####..f\nfifgggg##ggf\nfbf....#.#.f\nfif....####f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif....##..f\nfbf..##.#..f\nfif...#.##.f\nfbf...####.f\nfif...#..#.f\nfbf...###.#f\nfif....####f\nfbfgggg#g#gf\nfif..###...f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif....#...f\nfbf....##..f\nfif..###...f\nfbf..#.#..#f\nfif..##...#f\nfbf.####.##f\nfif...#.###f\nfbfggg#g#ggf\nfif...###..f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif....#...f\nfbf..###...f\nfif...#....f\nfbf##.##.#.f\nfif.##.####f\nfbf..##.##.f\nfif...###..f\nfbfggggg#ggf\nfif...###..f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif..#.....f\nfbf..##.##.f\nfif...###..f\nfbf..#.####f\nfif.##.#...f\nfbf..####..f\nfif...#.#..f\nfbfggg####gf\nfif...##...f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp.#.....f\nfif..#.....f\nfbf..#.#...f\nfif..###...f\nfbf...#.##.f\nfif...####.f\nfbf...##.#.f\nfif....##..f\nfbf...#.###f\nfif...#####f\nffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif......#...f\nfbf......##..f\nfif.....#.#..f\nfbf.....#.#..f\nfif...######.f\nfbf.....##...f\nfif#....##...f\nfbf###.###...f\nfif..#.##....f\nfbfgg##g###ggf\nfif...##.##..f\nfbf....#.###.f\nfif....###.#.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfbf.....#....f\nfif....##....f\nfbf....##....f\nfif.....##...f\nfbf....#.##..f\nfif....####..f\nfbf....#..##.f\nfif....#####.f\nfbf...##...#.f\nfifggg#g#####f\nfbf..#.#...#.f\nfif.########.f\nffffffffffffff\n\n\n\n\n\n\n\n~fffffffffff\nfifp.......f\nfif...#....f\nfbf...#.#..f\nfif...###..f\nfbf....##..f\nfif..###...f\nfbfgggg##ggf\nfif...##...f\nffffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.....#.f\nfbf....###f\nfif..#.##.f\nfbf#####..f\nfif.###...f\nfbf...#...f\nfif.####..f\nfffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.......f\nfbf..#.#..f\nfif.##.#..f\nfbf..###..f\nfif#..####f\nfbf####...f\nfif.#.#...f\nfffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.......f\nfbf..#..#.f\nfif.#####.f\nfbf...#.#.f\nfif.####..f\nfbf.##.##.f\nfif...##..f\nfffffffffff\n\n\n~fffffffffff\nfifp..###..f\nfbf.#.#.#..f\nfbf.#.##...f\nfbf.##.##..f\nfbf..#####.f\nffffffffffff\n\n\n~fffffffffff\nfifp.#.#.#.f\nfbf..###.#.f\nfif...#####f\nfbf..#..##.f\nfif..####..f\nffffffffffff\n\n\n~fffffffffff\nfifp..###.#f\nfbf...#.#.#f\nfif....####f\nfbf...##.##f\nfif...####.f\nffffffffffff\n\n\n\n~fffffffffff\nfifp..###..f\nfbf.#.#.#..f\nfif.#..##..f\nfbf#####...f\nfif..#####.f\nffffffffffff\n\n\n\n\n(figure giving tribute - meh?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif.....#.#..f\nfbf....####..f\nfif....#.#...f\nfbf....#.###.f\nfif.######...f\nfbf.....###..f\nfifgg####g#ggf\nffffffffffffff\n\n\n\n\n\n\n\n\n~fffffffffffff\nfbfp.#.......f\nfif..###.....f\nfbf..##......f\nfif...##.....f\nfbf..#.##....f\nfif.#####....f\nfbf...#.#..#.f\nfif....######f\nfbf.....#..#.f\nfifggggg##gggf\nffffffffffffff\n\n\n~fffffffffffffffffffffffffffffffffffffffffff\nfifp.####...##########.###################.f\nfbf....###.##....###.##.#.......####...#...f\nfbf...##.#.#######..###.#########..........f\nfbf......###.#..#...#.#####..#.............f\nfifggggggg##gggggggggg##gg#gg#gggggggggggggf\nffffffffffffffffffffffffffffffffffffffffffff\n\n\n(interesting!)\n~fffffffffff\nfbf####p###f\nfif#......#f\nfbf###....#f\nfif#.#...##f\nfbf#.##..##f\nfif###ggg##f\nfbf##..###.f\nfif.####.#.f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp#######f\nfif.#.###.#f\nfbf...#..##f\nfif######.#f\nfbf.###.###f\nfifggg###g#f\nfbf..###..#f\nfif..#.#...f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp#######f\nfif.#.###.#f\nfbf...#..##f\nfif######.#f\nfbf.###.###f\nfifggg###g#f\nfbf..###..#f\nfif..#.#...f\nffffffffffff\n\n\n\n~fffffffffffff\nfif##p.......f\nfif##........f\nfif#.........f\nfif##........f\nfif##........f\nfif#.........f\nfbf###gggggggf\nfif#.##......f\nfbf##.##.....f\nfif.###..#...f\nfbf..##..#...f\nfif...######.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.......##f\nfif.........#f\nfif.......###f\nfif.......#.#f\nfif......##.#f\nfif......#.##f\nfbf.....#####f\nfifggg####g#gf\nfbf..##.##...f\nfif.....###..f\nfbf.....#....f\nfif.....#....f\nffffffffffffff\n\n\n~fffffffffffff\nfif###p......f\nfif#.#.......f\nfif#.#.......f\nfif#.#.......f\nfif####.....#f\nfifggg#gggg##f\nfif...##....#f\nfif....###..#f\nfbf.....#.###f\nfif.....###..f\nffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n(bad)\n~fffffffffffff\nfifp..#......f\nfif...#......f\nfbf..##......f\nfif..##......f\nfbf..#####...f\nfif...#..##..f\nfbf....######f\nfif.....#..#.f\nfbfggggg##g#gf\nfif....###...f\nffffffffffffff\n\n\n(trivial)\n~fffffffffff\nfifp.#.....f\nfif..##....f\nfbf..###...f\nfif..#.....f\nfbf..####..f\nfif....#...f\nfbfggg##gggf\nfif....#...f\nffffffffffff\n\n(pretty trivial)\n~fffffffffff\nfifp.....#.f\nfif......#.f\nfbf...#.##.f\nfif...#.#..f\nfbf...###..f\nfif...##...f\nfbf....#...f\nfifgggg#gggf\nffffffffffff\n\n\n\n\n(fiine / easy )\n~fffffffffff\nfbfp.......f\nfif......#.f\nfbf......#.f\nfif.....##.f\nfbf....###.f\nfif....#...f\nfbf..###...f\nfif...##...f\nfbf...#.##.f\nfif...###..f\nffffffffffff\n\n\n(meh)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfbf........f\nfif........f\nfbf......#.f\nfif......##f\nfbf.....###f\nfif...###.#f\nfbf.....#.#f\nfif..######f\nfbf...#.#.#f\nfif....###.f\nfbf...##.#.f\nfifgg######f\nffffffffffff\n\n\n\n\n(pretty easy)\n~fffffffffff\nfbfp.......f\nfif........f\nfbf.....##.f\nfif......##f\nfbf.....##.f\nfif....#.##f\nfbf....####f\nfif...###..f\nfbf....##..f\nfif...##...f\nffffffffffff\n\n\n\n\n(easy/arbirtaray/pretty)\n~fffffffffffff\nfif.....p....f\nfif..#.#.....f\nfif..###.....f\nfif...#..#.#.f\nfif...#..###.f\nfbf...#...#..f\nfifg###...#..f\nfbf.#.....#..f\nfif.#.....#..f\nffffffffffffff\n\n\n\n(too trivial)\n~fffffffffffffffffffffffffffffffff\nfifp.............................f\nfif......#.......................f\nfif.....##.......................f\nfif.....##.......................f\nfif...####.......................f\nfif....#.#.......................f\nfif.....###......................f\nfif......#.......................f\nfif......#...#...................f\nfif.....######...................f\nfifggggggg####gggggggggggggggggggf\nfif..........#...................f\nfif..........#...................f\nfif..........##..................f\nfif..........##..................f\nfif.........###..................f\nfbf...........##.................f\nfif...........##.................f\nfbf............###.#.............f\nfif............######............f\nffffffffffffffffffffffffffffffffff\n\n\n(meh)\n~fffffffffffffffffffffffffffffffff\nfifp.............................f\nfif..............................f\nfif.........#....................f\nfif.........#....................f\nfif........###...................f\nfif..........#...................f\nfif.......#####..................f\nfif......##..###.................f\nfif.....##....##.................f\nfif.....#.....#..................f\nfifgggggggggg###gggggggggggggggggf\nfif...........##.................f\nfif...........#.#................f\nfif...........###................f\nfif............###...............f\nfif.............###..............f\nfbf...............###............f\nfif...............#.##...........f\nfbf...............##.............f\nfif...............#..............f\nffffffffffffffffffffffffffffffffff\n\n\n\n\n\n(meh)\n~fffffffffffffffffffffffffffffffffffffffffff\nfifp.##################.###################f\nfbf...#.#.##.##.##.#..#.#.#.##.#.....#.#.##f\nfif...#.#....##...#########.....######.#.#.f\nfbfgggggggggggggg##g#g##gggggggggg#ggggggggf\nfif...............#....##........###.......f\nffffffffffffffffffffffffffffffffffffffffffff\n\n\n(meh)\n~fffffffffffff\nfifp.........f\nfbf..........f\nfif......#...f\nfbf......#...f\nfif.....##...f\nfbf.....#....f\nfif....##....f\nffffffffffffff\n\n\n\n\n\n(looks good, but too easy?)\n~fffffffffff\nfbf########f\nfif#p.##..#f\nfbf###..###f\nfif#...####f\nfbf#####..#f\nfif#ggg####f\nfbf######.#f\nfif...##...f\nffffffffffff\n\n(trivial)\n~ffffffff\nfifp..##f\nfbf.#..#f\nfif.####f\nfbf.###.f\nfif..#..f\nfffffffff\n\n(trivial)\n~ffffffff\nfif#p...f\nfbf##.#.f\nfif####.f\nfbf..##.f\nfif.##..f\nfffffffff\n\n\n(Trivial)\n~ffffffff\nfifp..#.f\nfbf.#.##f\nfif.####f\nfbf.##.#f\nfif..#..f\nfffffffff\n\n\n(zu einfach)\n~ffffffffff\nfif##p.#..f\nfbf###.#..f\nfif#.###..f\nfbf#.##...f\nfif####...f\nfbfggg###gf\nfif...##..f\nfffffffffff\n\n\n(zu einfach?)\n~ffffffffff\nfifp...###f\nfbf....#.#f\nfif....###f\nfbf....#.#f\nfifgggg###f\nfbf####.##f\nfif.#####.f\nfffffffffff\n\n\n\n(meh)\n~fffffffffff\nfifp....###f\nfif....####f\nfbf....#..#f\nfif.#..####f\nfbfg#gg#gg#f\nfif.#######f\nfbf.....###f\nfif....##..f\nffffffffffff\n\n\n\n(meh)\n~fffffffffffff\nfif#####p....f\nfif#.##......f\nfif#.##......f\nfif#.#.##...#f\nfif#g#g###g##f\nfif####..#.##f\nfif##.####.##f\nfif....##.#.#f\nfbf.....#####f\nfif.....##.##f\nffffffffffffff\n\n\n(meh)\n~fffffffffffff\nfif###p......f\nfif#.#.......f\nfif#.##......f\nfif#.#.#...#.f\nfif#g#g##gg##f\nfif#.#.######f\nfif####..#.##f\nfif.#.#####.#f\nfbf....#.#.##f\nfif.....#####f\nffffffffffffff\n\n\n(trivial)\n~fffffffffffffffffffffff\nfif#########p.#########f\nfif#......#...#.......#f\nfif########....########f\nfif#.....#....##.#....#f\nfif#######gggg##g######f\nfif#.....###.#.####...#f\nfif#############.......f\nfif.#####...#..........f\nfbf.........##.........f\nfif..........##........f\nffffffffffffffffffffffff\n\n(trivial)\n~fffffffffffffffffffffff\nfif#######p#....#######f\nfif#.#.#.#.##....#.#.##f\nfif###.#.###..#..#.#.##f\nfif..#.#.#...###.######f\nfif########gg#g#g#gggg#f\nfif.##...##############f\nfif..#####..#...#.#.#..f\nfif..........####.#.#..f\nfbf..........##........f\nfif.........###........f\nffffffffffffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n(THE REST)\n\n(hard, couldn't solve myself)\n~fffffffffffffff\nfifp.........##f\nfif.........##.f\nfif.........###f\nfif........#..#f\nfbf........#.##f\nfif........#.#.f\nfbf.......#####f\nfif........#.##f\nfbf........#..#f\nfifggggggg##gggf\nfbf......##....f\nfif.....##.....f\nffffffffffffffff\n\n\n\n\n(solved first go, ok? ohne persönlichkeit) \n~fffffffffffff\nfbfp.......##f\nfif........#.f\nfbf........#.f\nfif.......##.f\nfbf......##..f\nfif.......#..f\nfbf......####f\nfif......##.#f\nfbf....###...f\nfif.....#....f\nffffffffffffff\n\n(too routine)\n~fffffffffffff\nfbfp.........f\nfif...#......f\nfbf...#......f\nfif..##......f\nfbf...##.....f\nfif.##.#.....f\nfbf..###.....f\nfif..#.##....f\nfbf....##....f\nfif.....##...f\nffffffffffffff\n\n(scheiße)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif..#.......f\nfbf..##......f\nfif...#......f\nfbf...##.....f\nfif....#.....f\nfbf....##....f\nfif.....#....f\nffffffffffffff\n\n\n(zu einfach/procedural?)\n~ffffffffffffff\nfifp..........f\nfif........#..f\nfif........#..f\nfbf.......###.f\nfif.......#.#.f\nfbf.......#...f\nfif.....###...f\nfbf......#....f\nfif......#....f\nfbf....###....f\nfif..####.....f\nfffffffffffffff\n\n\n\n\n\n(zu einfach)\n~fffffffffffff\nfbfp........#f\nfif.........#f\nfbf........##f\nfif.......###f\nfbf.......#..f\nfif.....###..f\nfbf.....#.#..f\nfif....###...f\nfbf....##....f\nfif.....#....f\nffffffffffffff\n\n(kein level)\n~fffffffffffff\nfif...p......f\nfif..........f\nfif..........f\nfif..#.......f\nfif..#.#####.f\nfif..#.....#.f\nfbf..#####.#.f\nfbf..#.....#.f\nfbf........#.f\nfbfgg.g#####gf\nfifgg.g#gggggf\nffffffffffffff\n\n(zu einfach)\n~ffffffffffffff\nfif...........f\nfif...........f\nfif...........f\nfif...p..#....f\nfif.#....#....f\nfif.#....#....f\nfif.#...##....f\nfif.#....##...f\nfbf.##....#...f\nfbfg.#..#.#...f\nfif..#..#.#...f\nfif..#..#.#...f\nfffffffffffffff\n\n\n\n\n\n(zu einfach?)\n~ffffffffff\nfif.......f\nfbf.#.#.#.f\nfif.#.#.#.f\nfbf.#####.f\nfif..#p#..f\nfbf.g###.gf\nfif.g.#g.gf\nfffffffffff\n\n(no level)\n~fffffffff\nfif...p..f\nfbf.g#.#.f\nfif.g###.f\nfbf....#.f\nfif...##.f\nfbfg..#..f\nfif...#..f\nffffffffff\n\n\n(no level)\nffffffff\nf......f\nf....#.f\nfg...#.f\nf..P.#.f\nf..#.#.f\nf..#.#.f\nf.##.#.f\nffffffff\n\n\n(zu einfach)\n~ffffffffff\nfifp....#.f\nfbf....###f\nfif.....##f\nfbf...###.f\nfif...##..f\nfbf...#...f\nfifg####ggf\nfffffffffff\n\n(kein Level)\n~fffffffffffff\nfif...p......f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbfg.........f\nfif..........f\nffffffffffffff\n\n\n\n(kein Level)\n~fffffffffffff\nfif#..p.#.#..f\nfbf########..f\nfbf#......#.#f\nfbf#.#####..#f\nfbf#.....#..#f\nfbf#..##.#..#f\nfbf#...#.#..#f\nfbf#####.####f\nfbf...#...#..f\nfbfg..#####..f\nfif....#.....f\nffffffffffffff\n\n\n\n\n\n(kein Level)\n~fffffffffffff\nfif...p......f\nfbf######....f\nfbf#....#....f\nfbf##........f\nfbf.#..###...f\nfbf.##.#.#...f\nfbf..#.#.#...f\nfbf..#.###...f\nfbf.##..#....f\nfbfg#...#....f\nfif.#...#....f\nffffffffffffff\n\n\n\n\n(kein Level)\n~fffffffffffff\nfif..........f\nfif.###......f\nfif.#.#...###f\nfif.###...#.#f\nfif.#...###..f\nfifg#.###....f\nfif.###.#....f\nfif.#..###...f\nfbf..p.#.#...f\nfbf...###....f\nfif...#.#....f\nffffffffffffff\n\n\n\n(zu einfach)\n~ffffffff\nfif##p..f\nfbf.####f\nfbf###.#f\nfbf...##f\nfif..##.f\nfffffffff\n\n(kein level)\n~fffffffffffff\nfbfp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..........f\nfif.....#....f\nfbf.....#....f\nfif....###...f\nfbf......#...f\nfif....###...f\nffffffffffffff\n\n(meh)\n~ffffffff\nfif##p..f\nfbf#....f\nfbf####.f\nfbf.##..f\nfif..#..f\nfffffffff\n\n(hmmm dunno -vllt zu einfach?)\n\n~fffffffffff\nfif#####p..f\nfbf##.####.f\nfbf##..##..f\nfbf.#..##..f\nfifggggg##gf\nffffffffffff\n\n(dunno?)\n~ffffffffffffffffff\nfifp............#.f\nfif............##.f\nfif.............##f\nfif..............#f\nfif..............#f\nfif............###f\nfif.........####.#f\nfbf...........##.#f\nfif..........##..#f\nfbf..........##...f\nfif.........###...f\nfbf........###....f\nfifgggggggg##gggggf\nfbf......###......f\nfif....#####......f\nfffffffffffffffffff\n\n(zu einfach)\n~ffffffff\nfif#p...f\nfbf#..#.f\nfbf####.f\nfbf..##.f\nfif..#..f\nfffffffff\n\n(boring!)\n~ffffffff\nfifp#.#.f\nfbf.###.f\nfif..##.f\nfbfg##ggf\nfif..#..f\nfffffffff\n\n(trivial)\n~fffffffffff\nfifp.....#.f\nfif......#.f\nfif......#.f\nfif.....##.f\nfbf.....#..f\nfif.....#..f\nfbfgggg##ggf\nfif....#...f\nffffffffffff\n\n(trivial)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif.......#..f\nfbf.......#..f\nfif......##..f\nfbf......##..f\nfif......#...f\nfbf.....##...f\nfifggggg#ggggf\nffffffffffffff\n\n\n(meh)\n~fffffffffff\nfifp.......f\nfif.#......f\nfbf.##.....f\nfif..#.....f\nfbf..##....f\nfif...#....f\nfbf...##...f\nfif....#...f\nffffffffffff\n\n\n(nicht interessant)\n~fffffffffffff\nfbfp.........f\nfif..........f\nfbf##........f\nfif#.........f\nfbf##........f\nfif#.........f\nfbf####......f\nfif.#.#......f\nfbf.###......f\nfif..###.#...f\nffffffffffffff\n\n(meh)\n~fffffffffffff\nfif#p........f\nfif##........f\nfif#.........f\nfif##........f\nfbf###.......f\nfif#.........f\nfbf##ggggggggf\nfif.##.......f\nfbf..#..#....f\nfif..#.###...f\nffffffffffffff\n\n\n\n\n\n\n\n\n(meh)\n~fffffffffffffffffffffffffffffffff\nfifp..............####...........f\nfbf..............#.#.#...........f\nfbf..............###.............f\nfbf.............###..#...........f\nfifggggggggggggggg#####ggggggggggf\nffffffffffffffffffffffffffffffffff\n\n\n\n(huh not so bad? but hard for some maybe? wait maybe i just solved by chance....)\n~fffffffffffff\nfifp......###f\nfif.#.#...#.#f\nfbf.#.##...##f\nfbf.####...##f\nfbf##..###.##f\nfbf######.#.#f\nfbf.....#####f\nfbf...###.##.f\nfbf...#.#....f\nfif....##....f\nffffffffffffff\n\n\n\nmessage level 5 of 10 : Gallows\n(hard - actually ok? medium difficulty?)\n~ffffffffffff\nfif.........f\nfifp.#......f\nfif..#......f\nfif..###....f\nfif..#......f\nfbf.####....f\nfif...###...f\nfbf...#.#...f\nfif.....#...f\nfbfggggg##ggf\nfif......##.f\nfffffffffffff\n\n\n\n\nmessage level 2 of 10 : ANTENNA 1\n(ok anfangerlevel?)\n~fffffffff\nfbfp#..#.f\nfif##..#.f\nfbf.#.##.f\nfif####.#f\nfbf#..###f\nfifggg#ggf\nffffffffff\n\n\n\nmessage level 3 of 10 : UFO\n(ok! / easy / Space invaders)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..#..#....f\nfif########..f\nfbf#.###..#..f\nfif.....####.f\nfbf..###.##..f\nfif....###...f\nffffffffffffff\n\n\n\n\n(\n(ok anfangerlevel)\n~fffffffff\nfbfp#..##f\nfif.##.##f\nfbf..###.f\nfif...###f\nfbf####..f\nfifggg#ggf\nffffffffff\n)\n\n\n\n\n(\n\n~fffffffffffff\nfifp.......#.f\nfif........##f\nfif........##f\nfif.........#f\nfbf.........#f\nfif.......###f\nfbf.......##.f\nfifggggggg##gf\nfbf.......#..f\nfif...#####..f\nffffffffffffff\n)\n\n\n(ok simple? NAH TOO SIMPLE)\n~ffffffffffffffffffffffffffff\nfifp........................f\nfif###......................f\nfif#.#......................f\nfif###......................f\nfif##.......................f\nfif##.......................f\nfif##.......................f\nfif#........................f\nfif##.......................f\nfif##.......................f\nfif##.......................f\nfif##..#.#..................f\nfif##.####..................f\nfif#####.#..................f\nfifgg#g#g#ggggggggggggggggggf\nfif..#.###..................f\nfif......##.................f\nfif......##.................f\nfif......#.#................f\nfif......####...............f\nfif.......#.#...............f\nfbf.......#.#...............f\nfif.....######..............f\nfbf.....#..#####.##.........f\nfif.........#.####..........f\nfffffffffffffffffffffffffffff\n\n\n\n\n(alien slug attack!)\nmessage level 6 of 10 : Alien Slug Attack\n~fffffffffffffffff\nfifp...####......f\nfbf....#####.....f\nfbf...##..##.....f\nfbf....#..##.....f\nfifgggggggg####ggf\nffffffffffffffffff\n\n\n\n\n\n(decent - middle-hard? -- too mich like final level? (difficulty/appearance-wise?)\n~fffffffffffffff\nfif#p..........f\nfif#...........f\nfif##..........f\nfif#...........f\nfbf###.........f\nfif#.#.........f\nfbf.##.#.......f\nfif..###.......f\nfbf...###......f\nfif....#...#...f\nfbfgggg######ggf\nfif......##....f\nffffffffffffffff\n)\n\n\n\n(fun to find the right points? MEH)\n~ffffffffffffffffffff\nfifp................f\nfif.................f\nfif...............##f\nfif................#f\nfif...............##f\nfif...............##f\nfif.............####f\nfif................#f\nfif..............###f\nfif...............##f\nfif................#f\nfif.........#.#...##f\nfif.........#.####.#f\nfif........####.####f\nfif............##...f\nfifgggggggg#######ggf\nfif........#..#.....f\nfif........######...f\nfif.........##......f\nfbf........##.......f\nfif.....####........f\nfbf......#..........f\nfif......#..........f\nfbf....###..........f\nfif.#######.........f\nfffffffffffffffffffff\n\n\n\n\n\n(wie ein gebäude aus - ziemlich einfach)\n~fffffffffffff\nfifp........#f\nfif........##f\nfif........##f\nfif........##f\nfbf.........#f\nfif.........#f\nfbfgggggggg##f\nfif......###.f\nfbf.......##.f\nfif....####..f\nffffffffffffff\n\n\n\n\n\n\n(nice/ok!)\n~ffffffffff\nfifp.....#f\nfbf.....##f\nfif....###f\nfbf....#.#f\nfif....###f\nfbfggg###gf\nfif..##...f\nfffffffffff\n\n\nmessage level 4 of 10 : Duck Tree\n(ducktree!)\n~fffffffffff\nfifp.##..##f\nfif.###.###f\nfbf...##.#.f\nfif..###.#.f\nfbf....####f\nfifgggg##ggf\nfbf....#...f\nfif....#...f\nffffffffffff\n\n\n\n)\n", [2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 0, 4, 2, 2, 4, 4, 0, "restart", 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4], "background exploding fenster tl:0,background fenster fenster_right:1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,background fenster:2,background fenster fenster_down:3,background inventar:4,4,4,4,4,4,4,4,4,background bang_schatten inventar:5,\n4,5,4,5,4,background fenster fenster_up:6,2,background fenster fenster_left fenster_right:7,7,7,7,7,7,7,\n7,7,7,7,7,7,7,7,2,3,background:8,8,background htarget:9,background bond_d wall:10,\nbackground bond_d bond_u landbackground wall:11,11,11,11,11,11,11,background bond_u landbackground wall:12,background landbackground wall:13,background bond_r landbackground wall:14,background landbackground:15,6,3,8,\n8,9,8,15,15,15,15,15,15,15,15,15,background bond_d bond_l landbackground wall:16,background bond_r bond_u landbackground wall:17,\n6,3,8,8,9,8,background bond_d landbackground wall:18,background bond_d bond_r bond_u landbackground wall:19,19,11,11,19,11,19,\n12,13,background bond_l bond_r landbackground wall:20,6,3,8,8,9,8,15,background bond_d bond_l bond_r landbackground wall:21,background bond_l bond_u landbackground wall:22,15,15,\nbackground bond_l landbackground wall:23,15,23,15,15,20,6,3,8,8,9,8,18,background bond_l bond_r bond_u landbackground wall:24,\n15,15,15,15,15,15,14,background bond_d bond_r landbackground wall:25,24,6,3,8,8,background htarget player_h:26,\n8,15,23,15,15,15,15,15,15,20,21,24,6,3,\n8,8,9,8,15,15,15,15,15,15,15,15,23,21,\n24,6,3,8,8,9,8,15,15,15,15,15,15,15,\n15,15,16,22,6,3,8,8,9,8,15,15,15,15,\n15,15,15,15,15,15,13,6,3,8,8,9,8,15,\n15,15,15,15,15,15,15,15,15,15,6,2,background fenster fenster_left:27,27,\n27,27,27,27,27,27,27,27,27,27,27,27,27,2,\n", 26, "1627892636599.9646"] ], [ - "BIAXIAL INVASION OF SATURN", - ["title BIAXIAL INVASION OF SATURN\nauthor increpare\nhomepage www.increpare.com\n\nnorepeat_action\n\nrun_rules_on_level_start\n\ncolor_palette 4\n\nbackground_color #540056\ntext_color #228f0a\n\n(uses https://github.com/increpare/Zersto-rungto generate levels)\n========\nOBJECTS\n========\n\nbackground\n#7a2f5d\n\nlandbackground\n#0b5359\n\n\nwall \n#3f2e3f #505352 lightgray\n00000\n01110\n01110\n01110\n00000\n\nplayer_h\npink\n.....\n..0..\n.000.\n..0..\n.....\n\n\nplayer_v\npink\n.....\n..0..\n.000.\n..0..\n.....\n\n\nfenster\n#540056\n\n\nfenster_up\n#4a083f lightblue\n00000\n.....\n.....\n.....\n.....\n\nfenster_down\ndarkblue #760070\n.....\n.....\n.....\n.....\n11111\n\nfenster_left\n#4a083f #760070\n1....\n1....\n1....\n1....\n1....\n\nfenster_right\n#4a083f\n....0\n....0\n....0\n....0\n....0\n\nhtarget\nlightgreen\n.....\n.....\n00000\n.....\n.....\n\n\nvtarget\nlightgreen\n..0..\n..0..\n..0..\n..0..\n..0..\n\ninventar\ndarkblue\n\nbang\n #289d69 #267400\n...0.\n..00.\n.010.\n.00..\n.0...\n\nbang_schatten\n#211121\n...0.\n..00.\n.0.0.\n.00..\n.0...\n\nbond_u\ndarkblue #505352 lightgray\n.111.\n.....\n.....\n.....\n.....\n\n\n\nbond_d\ndarkblue #505352 lightgray\n.....\n.....\n.....\n.....\n.111.\n\n\n\nbond_l\ndarkblue #505352 lightgray\n.....\n1....\n1....\n1....\n.....\n\n\n\nbond_r\ndarkblue #505352 lightgray\n.....\n....1\n....1\n....1\n.....\n\n\n\n\ntl\ntransparent\n\nexploding\ntransparent\n\nexplosion\n#267400 #228f0a\n.1.1.\n10.01\n..0..\n10.01\n.1.1.\n\nnofall\n#267400\n.0...\n.....\n.....\n.....\n.....\n\nfall\nlightblue\n.0...\n.....\n.....\n.....\n.....\n\n\nc1 1 \n#7a2f5d\n\nc2 2\n#0b5359\n\nc3 3\n#000000\n\nc4 4\n#000000 #ffffff\n00000\n01000\n00000\n00000\n00000\n\n=======\nLEGEND\n=======\n\nplayer = player_h or player_v\ntarget = htarget or vtarget\n\n. = Background\n# = wall\nP = Player_h\nf = fenster\n\ng = landbackground\n\nobstacle = wall\n~ = tl and fenster\ni = inventar\nb = bang and inventar\nbond = bond_u or bond_d or bond_l or bond_r\n\nfallblocker = wall or fenster\n\n=======\nSOUNDS\n=======\n\nsfx0 55915302 (bang)\nsfx1 90167907 (other agains)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nlandbackground, inventar\nwall\nbond_u\nbond_d\nbond_l\nbond_r\nexplosion\ntarget\nPlayer, fenster, bang,bang_schatten\nfenster_up\nfenster_down\nfenster_left\nfenster_right\ntl\nexploding\nnofall\nfall\nc1, c2, c3, c4\n\n======\nRULES\n======\n\n\nup [fenster | no fenster ]-> [ fenster fenster_up | ]\ndown [fenster | no fenster ]-> [ fenster fenster_down | ]\nleft [fenster | no fenster ]-> [ fenster fenster_left | ]\nright [fenster | no fenster ]-> [ fenster fenster_right | ]\n\n[ tl no exploding ] [bond]->[ tl ] [ ]\ndown [ tl no exploding ] [wall | wall]->[tl][ wall bond_d | wall bond_u ]\nright [ tl no exploding ] [wall | wall]->[tl][ wall bond_r | wall bond_l ]\n\n[tl]->[tl exploding]\n\ndown [ wall no bond_d | fallblocker ] -> [ wall nofall | fallblocker ]\n(floodfill)\nup [nofall bond_u | ] -> [ nofall bond_u | nofall ]\n+ down [nofall bond_d | ] -> [ nofall bond_d | nofall ]\n+ left [nofall bond_l | ] -> [ nofall bond_l | nofall ]\n+ right [nofall bond_r | ] -> [ nofall bond_r | nofall ]\n\n\ndown [ wall no nofall | no fallblocker ] -> [ wall fall | ]\n\nup [fall bond_u | ] -> [ fall bond_u | fall ]\n+ down [fall bond_d | ] -> [ fall bond_d | fall ]\n+ left [fall bond_l | ] -> [ fall bond_l | fall ]\n+ right [fall bond_r | ] -> [ fall bond_r | fall ]\n\n[fall wall]->[down wall] sfx1 again\n\n[fall]->[]\n[nofall]->[]\n\n[up wall bond ] -> [ up wall up bond ]\n+ [down wall bond ] -> [ down wall down bond ]\n+ [left wall bond ] -> [ left wall left bond ]\n+ [right wall bond ] -> [ right wall right bond ]\n\n[target]->[]\n\n\n\n[up player_h ] -> [ up player_v ]\n[down player_h ] -> [ down player_v ]\n[left player_v ] -> [ left player_h ]\n[right player_v ] -> [ right player_h ]\n\n\nright left down [ landbackground | no landbackground no fenster ] -> [ landbackground | landbackground no fenster ]\n\n\n[player_h ] -> [ player_h htarget ]\n[player_v ] -> [ player_v vtarget ]\n\nhorizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nvertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\nup [ bond_u | explosion ] -> [ | explosion ]\ndown [ bond_d | explosion ] -> [ | explosion ]\nleft [ bond_l | explosion ] -> [ | explosion ]\nright [ bond_r | explosion ] -> [ | explosion ]\n\n[explosion wall ] -> [ no bond ] sfx1 again\n\n[explosion ] -> [ ] again\n\n[action player ] [bang] -> [ player ] [ action bang_schatten ]\n\n[action bang_schatten ] [ target ]-> [ action bang_schatten ] [ explosion ] sfx0 again\n\n\nlate [target]->[]\n\nlate [player_h ] -> [ player_h htarget ]\nlate [player_v ] -> [ player_v vtarget ]\n\nlate horizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nlate vertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll wall on landbackground \n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 12\n\nmessage We have to damage the structures enough that they fall back into the toxic blue atmosphere.\n\nmessage We only have two attacks to do it in.\n\n\n(OK)\n~ffffffff\nfifp..#.f\nfbf.#.##f\nfif.###.f\nfbf#g###f\nfif###.#f\nfffffffff\n\n\nmessage Level 2 von 12\n\n\n(OK)\n~fffffffff\nfif##p.##f\nfif##...#f\nfbf.#..##f\nfifg##gg#f\nfbf..####f\nfif...###f\nffffffffff\n\n\nmessage Level 3 von 12\n\n\n(okish)\n~ffffffffff\nfif###p..#f\nfif#.#...#f\nfif#.#...#f\nfbf#..#.##f\nfif#gg###gf\nfbf##.##..f\nfif.###...f\nfffffffffff\n\n\nmessage Level 4 von 12\n\n\n\n(ok--? easyish?)\n~ffffffffff\nfif#p#..##f\nfif#.##.##f\nfif#.#.#.#f\nfbf#####g#f\nfif.#..###f\nfbf#####.#f\nfif...##..f\nfffffffffff\n\n\nmessage Level 5 von 12\n\n\n\n(ok! P EASY)\n~ffffffffff\nfifp######f\nfif##.##.#f\nfif....#.#f\nfbfgg#g###f\nfif###.##.f\nfbf#.#.##.f\nfif######.f\nfffffffffff\n\n\nmessage Level 6 von 12\n\n\n\n(ok also! p easy?)\n~ffffffffff\nfif#p#...#f\nfif#.##..#f\nfif####..#f\nfbf..#..##f\nfifg##g##gf\nfbf.####..f\nfif.#.#...f\nfffffffffff\n\n\nmessage Level 7 von 12\n\n\n\n(ok, pretty easy but not 100% easy)\n~fffffffffff\nfif#p......f\nfif##......f\nfif#.......f\nfif###.....f\nfbf.##...#.f\nfifg##gg###f\nfbf..####..f\nfif....#...f\nffffffffffff\n\n\nmessage Level 8 von 12\n\n\n(tricky?)\n~fffffffffffff\nfif#####p#...f\nfif##.#.##...f\nfif#..###....f\nfif....###.#.f\nfif.....#.###f\nfif.....###..f\nfbfgggg##ggggf\nfif.....#....f\nfbf.....#....f\nfif....###...f\nffffffffffffff\n\n\nmessage Level 9 von 12\n\n\n\n(medium OK)\n~fffffffffffff\nfif##########f\nfif#p#.#..#.#f\nfif#.##......f\nfif#g##ggggggf\nfif#.###.....f\nfif#.#....#..f\nfbf#.###..###f\nfif#.#.####.#f\nfbf##.##...##f\nfif.###.####.f\nffffffffffffff\n\n\nmessage Level 10 von 12\n\n\n\n(not too hard?)\n~fffffffffffffff\nfif###p.....###f\nfif##......##.#f\nfif##.......#.#f\nfif#gggggggg#g#f\nfif##......####f\nfif.##........#f\nfif##.#....####f\nfif.####......#f\nfbf..#.#.#.####f\nfif....#####..#f\nfbf......#..###f\nfif....######.#f\nffffffffffffffff\n\n\nmessage Level 11 von 12\n\n(ok? HARD NICE)\n~fffffffffffff\nfif####p...##f\nfif#.##...###f\nfif#.####...#f\nfif###g##g#g#f\nfif.##..#.#.#f\nfif..#.##.#.#f\nfbf...#.#.#.#f\nfif...#.#####f\nfbf..#####..#f\nfif.....#...#f\nffffffffffffff\n\n\nmessage Level 12 von 12\n\n(middle-hard, and nice!)\n~fffffffffffffffffffffff\nfif############p##.#...f\nfif#.#.#.#.#..#.#####..f\nfif#.#.#.#.#######.#...f\nfif#g#g#g###gg#gg##gg#gf\nfif#.#.#.#........#####f\nfif#.#.#####.......#.##f\nfif#.#.##..##........##f\nfif#.#.##..............f\nfif#.#.##..............f\nfif#.#.##..............f\nfif#.#.###.............f\nfif#.#.#.###...........f\nfif#.#.#.#.##..........f\nfif#.#.####............f\nfif####...#....#..#....f\nfif##.#####...#####....f\nfbf##.#..##.###.#......f\nfif.#....####.##.......f\nfbf##.......##.##......f\nfif.#.......#####......f\nffffffffffffffffffffffff\n\n\n\nmessage The people of Saturn are finally free! \n\nmessage Long live Saturn!\n\n3333333333333333\n3333331111333333\n3333311111133333\n3332211111122333\n3223311111133223\n3332222222222333\n3333311111133333\n3333331111333333\n3333333333333333\n\n\n3333333333333333333333\n3333333333333333333333\n3333333333333333333333\n3333333333333333333333\n3333333331111333333333\n3333333311111133333333\n3333332211111122333333\n3333223311111133223333\n3333332222222222333333\n3333333311111133333333\n3333333331111333333333\n3333333333333333333333\n3333333333333333333333\n3333333333333333333333\n3333333333333333333333\n\n\n\n\n\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333334333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333311113333333333333333333333333\n333333333333333333333333111111333333333333333333333333\n333333333333333333333322111111223333333333333333333333\n333333333333333333332233111111332233333333333333333333\n333333333333333333333322222222223333333333333333333333\n333333333333333333333333111111333333333333333333333333\n333333333333333333333333311113333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333343333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n\n\n\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333334333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333343333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333343333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333334333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333331111333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333311111133333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333332211111122333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333223311111133223333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333332222222222333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333311111133333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333331111333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333334333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333334333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333334333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333433333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n\n\nmessage THE END\n\n(\n(======\n\nHARD UNSOLVED\n)\n\n\n\n\n(hard! NOT YET SOLVED)\n~fffffffffffff\nfif#####p####f\nfif#.#.#.#..#f\nfif#.########f\nfif###g##ggg#f\nfif#.#.##.###f\nfif#.#.#....#f\nfbf######.###f\nfif.#..#.###.f\nfbf....###...f\nfif....##....f\nffffffffffffff\n\n(nah HARD NOT YET SOLVED)\n~fffffffffffff\nfif###p.#####f\nfif#.#..#.#.#f\nfif#.##.##.##f\nfif###ggggg##f\nfif#.##...#.#f\nfif###.#..#.#f\nfbf..###..###f\nfif###..#...#f\nfbf##########f\nfif#....###..f\nffffffffffffff\n\n\n(hard, not solved)\n~fffffffffffffffffffffff\nfif#######p..........##f\nfif#.#.#.##...........#f\nfif#.#.#.###..........#f\nfif#.#.#.#.##.........#f\nfif#g#g#g####ggggggggg#f\nfif#.#.#.#...........##f\nfif#.#.###............#f\nfif#.#.#..............#f\nfif#.#.###.........#..#f\nfif#.#.#.##.......##.##f\nfif#.#.##........#.####f\nfif#.###.........####..f\nfif####.##......#...###f\nfif...#####.....#######f\nfif###..#.#..........#.f\nfif########....#######.f\nfbf.#..#..###..#..#....f\nfif.....##.#....###....f\nfbf......###..#####....f\nfif.......#####........f\nffffffffffffffffffffffff\n\n\n\n~fffffffffffffffffffffffffffffffff\nfif.............................#f\nfif.............................#f\nfif............................##f\nfif.............................#f\nfif............................##f\nfif..........................#.##f\nfif..........................####f\nfif........................###.##f\nfif........................#.#.##f\nfif........................#.#.##f\nfif.................p......#.#.##f\nfif.....................#..#.##.#f\nfif....................###.##.#.#f\nfifggggggggggggggggg#######g#g#g#f\nfif..................#.#..#.#.###f\nfif...................###.#.#.#.#f\nfif..................##.#.#######f\nfif.................#.#.#.#..#.##f\nfif................##.#.######.#.f\nfif...............#.#.#.##..##...f\nfif..............####.###........f\nfif.......##.#....#.#.#..........f\nfif......#.#.##...#.####.........f\nfif..########.###.####...........f\nfif.......#.#.#.###..............f\nfif.........#####.###............f\nfbf............##..#.............f\nfif...............##.............f\nfbf.............##.###...........f\nfif.............#####............f\nffffffffffffffffffffffffffffffffff\n\n\n\n\n(=========\n\n\tUNACCOUNTED FOR\n \n)\n\n\n\n((too?) EASY)\n~fffffffffffff\nfif#p.#######f\nfif###..####.f\nfif.#####....f\nfif.....##...f\nfif.....#....f\nfif.....#....f\nfbf..#..#....f\nfifgg####ggggf\nfbf.....##...f\nfif.....#....f\nffffffffffffff\n\n(too easy)\n~fffffff\nfbfp###f\nfif..#.f\nfbf###.f\nfif#g##f\nffffffff\n\n\n\n\n\n\n\n\n\n(ok but h-only solution)\n~fffffffffff\nfif#p......f\nfif###.....f\nfbf..##....f\nfif...#..#.f\nfbf...####.f\nfif......##f\nfbf....####f\nfifggg##gggf\nffffffffffff\n\n(ok easy)\n~ffffffff\nfifp...#f\nfbf....#f\nfbf#.###f\nfbf##..#f\nfif.####f\nfffffffff\n\n(good tricky!)\n~ffffffff\nfifp#.##f\nfbf.##.#f\nfbf.#.##f\nfbf.###.f\nfif###ggf\nfffffffff\n\n(h only solution :[ )\n~ffffffffff\nfif#p....#f\nfif#....##f\nfif#.....#f\nfbf#g#gg##f\nfif######.f\nfbf#.#####f\nfif...#..#f\nfffffffffff\n\n(h-only solution)\n~ffffffffff\nfif#p...##f\nfif#...#.#f\nfif#..####f\nfbf###..#.f\nfifg#####gf\nfbf..##...f\nfif..##...f\nfffffffffff\n\n\n\n\n\n\n\n\n\n\n\n(too hard?)\n~fffffffffffff\nfif####p#.###f\nfif#.#.###..#f\nfif#.####.###f\nfif#.#...#..#f\nfbf#g#ggg####f\nfif#.#...#...f\nfbf#.#...#...f\nfif#####.####f\nfbf.####.#...f\nfif##..#####.f\nffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n(solvable only with bla)\n~fffffffffffffffffffffff\nfifp...................f\nfif....................f\nfif.#..................f\nfif.##.................f\nfif###.................f\nfif##..................f\nfif##..................f\nfif####................f\nfif.####...............f\nfif....#...............f\nfif....##..............f\nfif.....#..............f\nfif.....##.............f\nfif......##............f\nfifggggg#g#ggggggggggggf\nfif.....#.#............f\nfbf.....#######........f\nfif......#.#.####......f\nfbf........#.#.........f\nfif.........##.........f\nffffffffffffffffffffffff\n\n\n\n\n\n\n\n\n\n(h-only solution but ok?)\n~fffffffffffffff\nfif#####p......f\nfif#.#.#####...f\nfif#.#.#.#.....f\nfif#g#g#gggggggf\nfif#.#.##......f\nfif#.#.#.......f\nfif#.#.##......f\nfif#.#.#.......f\nfbf#.#.##......f\nfif####.#......f\nfbf##.#####.###f\nfif...#..######f\nffffffffffffffff\n\n\n(easy)\n~fffffffffffffff\nfif##p......#.#f\nfif#.......####f\nfif#.......#.##f\nfif#.#.....##.#f\nfif#g###ggg####f\nfif#.##......##f\nfif#.##...####.f\nfif####......#.f\nfbf##.#.#######f\nfif...##.#..##.f\nfbf..######....f\nfif.....####...f\nffffffffffffffff\n\n\n(Easy)\n~fffffffffffffff\nfif#p........##f\nfif#.........##f\nfif#........###f\nfif#.........##f\nfif###ggggggg##f\nfif.#........##f\nfif####....##.#f\nfif..#.#....###f\nfbf..#####..##.f\nfif.....##.#.##f\nfbf......#####.f\nfif......#...#.f\nffffffffffffffff\n\n\n(ok, though has h-only solution)\n~fffffffffffffffffffffff\nfif####################f\nfif#p#.#.#.#.#.#..#.#.#f\nfif#.#.#.#.###.#..#.#.#f\nfif#g#g#g###g#gggg#g#ggf\nfif#.#.#.##.........#..f\nfif#.#.#.##............f\nfif#.#.#.#.##..........f\nfif#.#.#.###...........f\nfif#.#.#.#.............f\nfif#.#.#.#.............f\nfif#.#.#.###...........f\nfif#.#.#.#.##..........f\nfif#.#.#.#.#...........f\nfif#.#.#.#.............f\nfif#.#.#.##............f\nfif#.######............f\nfbf#.#....##...........f\nfif#.#####.#...........f\nfbf####.######.###.....f\nfif.....#...######.....f\nffffffffffffffffffffffff\n\n\n\n\n)\n",[2,4,2,2,2,2,3,4],"background exploding fenster tl:0,background fenster fenster_right:1,1,1,1,1,1,1,background fenster:2,background fenster fenster_down:3,background inventar:4,\n4,4,background bang_schatten inventar:5,4,5,4,background fenster fenster_up:6,2,background fenster fenster_left fenster_right:7,7,7,\n7,7,7,7,2,3,background:8,8,8,8,background landbackground:9,\nbackground htarget landbackground wall:10,background landbackground wall:11,6,3,8,8,8,8,9,background htarget landbackground:12,9,\n6,3,8,8,background bond_d wall:13,background bond_d bond_r bond_u wall:14,background bond_d bond_r bond_u landbackground wall:15,background bond_d bond_u htarget landbackground player_h wall:16,background bond_u landbackground wall:17,6,3,\n8,8,8,background bond_d bond_l wall:18,background bond_l bond_u landbackground wall:19,12,11,6,3,8,8,\n8,8,9,12,background bond_r landbackground wall:20,6,3,8,8,8,8,\n9,background bond_d bond_r htarget landbackground wall:21,19,6,3,8,8,13,background bond_d bond_u wall:22,background bond_d bond_u landbackground wall:23,background bond_l bond_u htarget landbackground wall:24,\n9,6,2,background fenster fenster_left:25,25,25,25,25,25,25,2,\n",13,"1627892668524.9329"] + "BIAXIAL INVASION OF SATURN", + ["title BIAXIAL INVASION OF SATURN\nauthor increpare\nhomepage www.increpare.com\n\nnorepeat_action\n\nrun_rules_on_level_start\n\ncolor_palette 4\n\nbackground_color #540056\ntext_color #228f0a\n\n(uses https://github.com/increpare/Zersto-rungto generate levels)\n========\nOBJECTS\n========\n\nbackground\n#7a2f5d\n\nlandbackground\n#0b5359\n\n\nwall \n#3f2e3f #505352 lightgray\n00000\n01110\n01110\n01110\n00000\n\nplayer_h\npink\n.....\n..0..\n.000.\n..0..\n.....\n\n\nplayer_v\npink\n.....\n..0..\n.000.\n..0..\n.....\n\n\nfenster\n#540056\n\n\nfenster_up\n#4a083f lightblue\n00000\n.....\n.....\n.....\n.....\n\nfenster_down\ndarkblue #760070\n.....\n.....\n.....\n.....\n11111\n\nfenster_left\n#4a083f #760070\n1....\n1....\n1....\n1....\n1....\n\nfenster_right\n#4a083f\n....0\n....0\n....0\n....0\n....0\n\nhtarget\nlightgreen\n.....\n.....\n00000\n.....\n.....\n\n\nvtarget\nlightgreen\n..0..\n..0..\n..0..\n..0..\n..0..\n\ninventar\ndarkblue\n\nbang\n #289d69 #267400\n...0.\n..00.\n.010.\n.00..\n.0...\n\nbang_schatten\n#211121\n...0.\n..00.\n.0.0.\n.00..\n.0...\n\nbond_u\ndarkblue #505352 lightgray\n.111.\n.....\n.....\n.....\n.....\n\n\n\nbond_d\ndarkblue #505352 lightgray\n.....\n.....\n.....\n.....\n.111.\n\n\n\nbond_l\ndarkblue #505352 lightgray\n.....\n1....\n1....\n1....\n.....\n\n\n\nbond_r\ndarkblue #505352 lightgray\n.....\n....1\n....1\n....1\n.....\n\n\n\n\ntl\ntransparent\n\nexploding\ntransparent\n\nexplosion\n#267400 #228f0a\n.1.1.\n10.01\n..0..\n10.01\n.1.1.\n\nnofall\n#267400\n.0...\n.....\n.....\n.....\n.....\n\nfall\nlightblue\n.0...\n.....\n.....\n.....\n.....\n\n\nc1 1 \n#7a2f5d\n\nc2 2\n#0b5359\n\nc3 3\n#000000\n\nc4 4\n#000000 #ffffff\n00000\n01000\n00000\n00000\n00000\n\n=======\nLEGEND\n=======\n\nplayer = player_h or player_v\ntarget = htarget or vtarget\n\n. = Background\n# = wall\nP = Player_h\nf = fenster\n\ng = landbackground\n\nobstacle = wall\n~ = tl and fenster\ni = inventar\nb = bang and inventar\nbond = bond_u or bond_d or bond_l or bond_r\n\nfallblocker = wall or fenster\n\n=======\nSOUNDS\n=======\n\nsfx0 55915302 (bang)\nsfx1 90167907 (other agains)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nlandbackground, inventar\nwall\nbond_u\nbond_d\nbond_l\nbond_r\nexplosion\ntarget\nPlayer, fenster, bang,bang_schatten\nfenster_up\nfenster_down\nfenster_left\nfenster_right\ntl\nexploding\nnofall\nfall\nc1, c2, c3, c4\n\n======\nRULES\n======\n\n\nup [fenster | no fenster ]-> [ fenster fenster_up | ]\ndown [fenster | no fenster ]-> [ fenster fenster_down | ]\nleft [fenster | no fenster ]-> [ fenster fenster_left | ]\nright [fenster | no fenster ]-> [ fenster fenster_right | ]\n\n[ tl no exploding ] [bond]->[ tl ] [ ]\ndown [ tl no exploding ] [wall | wall]->[tl][ wall bond_d | wall bond_u ]\nright [ tl no exploding ] [wall | wall]->[tl][ wall bond_r | wall bond_l ]\n\n[tl]->[tl exploding]\n\ndown [ wall no bond_d | fallblocker ] -> [ wall nofall | fallblocker ]\n(floodfill)\nup [nofall bond_u | ] -> [ nofall bond_u | nofall ]\n+ down [nofall bond_d | ] -> [ nofall bond_d | nofall ]\n+ left [nofall bond_l | ] -> [ nofall bond_l | nofall ]\n+ right [nofall bond_r | ] -> [ nofall bond_r | nofall ]\n\n\ndown [ wall no nofall | no fallblocker ] -> [ wall fall | ]\n\nup [fall bond_u | ] -> [ fall bond_u | fall ]\n+ down [fall bond_d | ] -> [ fall bond_d | fall ]\n+ left [fall bond_l | ] -> [ fall bond_l | fall ]\n+ right [fall bond_r | ] -> [ fall bond_r | fall ]\n\n[fall wall]->[down wall] sfx1 again\n\n[fall]->[]\n[nofall]->[]\n\n[up wall bond ] -> [ up wall up bond ]\n+ [down wall bond ] -> [ down wall down bond ]\n+ [left wall bond ] -> [ left wall left bond ]\n+ [right wall bond ] -> [ right wall right bond ]\n\n[target]->[]\n\n\n\n[up player_h ] -> [ up player_v ]\n[down player_h ] -> [ down player_v ]\n[left player_v ] -> [ left player_h ]\n[right player_v ] -> [ right player_h ]\n\n\nright left down [ landbackground | no landbackground no fenster ] -> [ landbackground | landbackground no fenster ]\n\n\n[player_h ] -> [ player_h htarget ]\n[player_v ] -> [ player_v vtarget ]\n\nhorizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nvertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\nup [ bond_u | explosion ] -> [ | explosion ]\ndown [ bond_d | explosion ] -> [ | explosion ]\nleft [ bond_l | explosion ] -> [ | explosion ]\nright [ bond_r | explosion ] -> [ | explosion ]\n\n[explosion wall ] -> [ no bond ] sfx1 again\n\n[explosion ] -> [ ] again\n\n[action player ] [bang] -> [ player ] [ action bang_schatten ]\n\n[action bang_schatten ] [ target ]-> [ action bang_schatten ] [ explosion ] sfx0 again\n\n\nlate [target]->[]\n\nlate [player_h ] -> [ player_h htarget ]\nlate [player_v ] -> [ player_v vtarget ]\n\nlate horizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nlate vertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll wall on landbackground \n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 12\n\nmessage We have to damage the structures enough that they fall back into the toxic blue atmosphere.\n\nmessage We only have two attacks to do it in.\n\n\n(OK)\n~ffffffff\nfifp..#.f\nfbf.#.##f\nfif.###.f\nfbf#g###f\nfif###.#f\nfffffffff\n\n\nmessage Level 2 von 12\n\n\n(OK)\n~fffffffff\nfif##p.##f\nfif##...#f\nfbf.#..##f\nfifg##gg#f\nfbf..####f\nfif...###f\nffffffffff\n\n\nmessage Level 3 von 12\n\n\n(okish)\n~ffffffffff\nfif###p..#f\nfif#.#...#f\nfif#.#...#f\nfbf#..#.##f\nfif#gg###gf\nfbf##.##..f\nfif.###...f\nfffffffffff\n\n\nmessage Level 4 von 12\n\n\n\n(ok--? easyish?)\n~ffffffffff\nfif#p#..##f\nfif#.##.##f\nfif#.#.#.#f\nfbf#####g#f\nfif.#..###f\nfbf#####.#f\nfif...##..f\nfffffffffff\n\n\nmessage Level 5 von 12\n\n\n\n(ok! P EASY)\n~ffffffffff\nfifp######f\nfif##.##.#f\nfif....#.#f\nfbfgg#g###f\nfif###.##.f\nfbf#.#.##.f\nfif######.f\nfffffffffff\n\n\nmessage Level 6 von 12\n\n\n\n(ok also! p easy?)\n~ffffffffff\nfif#p#...#f\nfif#.##..#f\nfif####..#f\nfbf..#..##f\nfifg##g##gf\nfbf.####..f\nfif.#.#...f\nfffffffffff\n\n\nmessage Level 7 von 12\n\n\n\n(ok, pretty easy but not 100% easy)\n~fffffffffff\nfif#p......f\nfif##......f\nfif#.......f\nfif###.....f\nfbf.##...#.f\nfifg##gg###f\nfbf..####..f\nfif....#...f\nffffffffffff\n\n\nmessage Level 8 von 12\n\n\n(tricky?)\n~fffffffffffff\nfif#####p#...f\nfif##.#.##...f\nfif#..###....f\nfif....###.#.f\nfif.....#.###f\nfif.....###..f\nfbfgggg##ggggf\nfif.....#....f\nfbf.....#....f\nfif....###...f\nffffffffffffff\n\n\nmessage Level 9 von 12\n\n\n\n(medium OK)\n~fffffffffffff\nfif##########f\nfif#p#.#..#.#f\nfif#.##......f\nfif#g##ggggggf\nfif#.###.....f\nfif#.#....#..f\nfbf#.###..###f\nfif#.#.####.#f\nfbf##.##...##f\nfif.###.####.f\nffffffffffffff\n\n\nmessage Level 10 von 12\n\n\n\n(not too hard?)\n~fffffffffffffff\nfif###p.....###f\nfif##......##.#f\nfif##.......#.#f\nfif#gggggggg#g#f\nfif##......####f\nfif.##........#f\nfif##.#....####f\nfif.####......#f\nfbf..#.#.#.####f\nfif....#####..#f\nfbf......#..###f\nfif....######.#f\nffffffffffffffff\n\n\nmessage Level 11 von 12\n\n(ok? HARD NICE)\n~fffffffffffff\nfif####p...##f\nfif#.##...###f\nfif#.####...#f\nfif###g##g#g#f\nfif.##..#.#.#f\nfif..#.##.#.#f\nfbf...#.#.#.#f\nfif...#.#####f\nfbf..#####..#f\nfif.....#...#f\nffffffffffffff\n\n\nmessage Level 12 von 12\n\n(middle-hard, and nice!)\n~fffffffffffffffffffffff\nfif############p##.#...f\nfif#.#.#.#.#..#.#####..f\nfif#.#.#.#.#######.#...f\nfif#g#g#g###gg#gg##gg#gf\nfif#.#.#.#........#####f\nfif#.#.#####.......#.##f\nfif#.#.##..##........##f\nfif#.#.##..............f\nfif#.#.##..............f\nfif#.#.##..............f\nfif#.#.###.............f\nfif#.#.#.###...........f\nfif#.#.#.#.##..........f\nfif#.#.####............f\nfif####...#....#..#....f\nfif##.#####...#####....f\nfbf##.#..##.###.#......f\nfif.#....####.##.......f\nfbf##.......##.##......f\nfif.#.......#####......f\nffffffffffffffffffffffff\n\n\n\nmessage The people of Saturn are finally free! \n\nmessage Long live Saturn!\n\n3333333333333333\n3333331111333333\n3333311111133333\n3332211111122333\n3223311111133223\n3332222222222333\n3333311111133333\n3333331111333333\n3333333333333333\n\n\n3333333333333333333333\n3333333333333333333333\n3333333333333333333333\n3333333333333333333333\n3333333331111333333333\n3333333311111133333333\n3333332211111122333333\n3333223311111133223333\n3333332222222222333333\n3333333311111133333333\n3333333331111333333333\n3333333333333333333333\n3333333333333333333333\n3333333333333333333333\n3333333333333333333333\n\n\n\n\n\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333334333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333311113333333333333333333333333\n333333333333333333333333111111333333333333333333333333\n333333333333333333333322111111223333333333333333333333\n333333333333333333332233111111332233333333333333333333\n333333333333333333333322222222223333333333333333333333\n333333333333333333333333111111333333333333333333333333\n333333333333333333333333311113333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333343333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n\n\n\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333334333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333343333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333343333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333334333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333331111333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333311111133333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333332211111122333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333223311111133223333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333332222222222333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333311111133333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333331111333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333334333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333334333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333334333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333433333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n\n\nmessage THE END\n\n(\n(======\n\nHARD UNSOLVED\n)\n\n\n\n\n(hard! NOT YET SOLVED)\n~fffffffffffff\nfif#####p####f\nfif#.#.#.#..#f\nfif#.########f\nfif###g##ggg#f\nfif#.#.##.###f\nfif#.#.#....#f\nfbf######.###f\nfif.#..#.###.f\nfbf....###...f\nfif....##....f\nffffffffffffff\n\n(nah HARD NOT YET SOLVED)\n~fffffffffffff\nfif###p.#####f\nfif#.#..#.#.#f\nfif#.##.##.##f\nfif###ggggg##f\nfif#.##...#.#f\nfif###.#..#.#f\nfbf..###..###f\nfif###..#...#f\nfbf##########f\nfif#....###..f\nffffffffffffff\n\n\n(hard, not solved)\n~fffffffffffffffffffffff\nfif#######p..........##f\nfif#.#.#.##...........#f\nfif#.#.#.###..........#f\nfif#.#.#.#.##.........#f\nfif#g#g#g####ggggggggg#f\nfif#.#.#.#...........##f\nfif#.#.###............#f\nfif#.#.#..............#f\nfif#.#.###.........#..#f\nfif#.#.#.##.......##.##f\nfif#.#.##........#.####f\nfif#.###.........####..f\nfif####.##......#...###f\nfif...#####.....#######f\nfif###..#.#..........#.f\nfif########....#######.f\nfbf.#..#..###..#..#....f\nfif.....##.#....###....f\nfbf......###..#####....f\nfif.......#####........f\nffffffffffffffffffffffff\n\n\n\n~fffffffffffffffffffffffffffffffff\nfif.............................#f\nfif.............................#f\nfif............................##f\nfif.............................#f\nfif............................##f\nfif..........................#.##f\nfif..........................####f\nfif........................###.##f\nfif........................#.#.##f\nfif........................#.#.##f\nfif.................p......#.#.##f\nfif.....................#..#.##.#f\nfif....................###.##.#.#f\nfifggggggggggggggggg#######g#g#g#f\nfif..................#.#..#.#.###f\nfif...................###.#.#.#.#f\nfif..................##.#.#######f\nfif.................#.#.#.#..#.##f\nfif................##.#.######.#.f\nfif...............#.#.#.##..##...f\nfif..............####.###........f\nfif.......##.#....#.#.#..........f\nfif......#.#.##...#.####.........f\nfif..########.###.####...........f\nfif.......#.#.#.###..............f\nfif.........#####.###............f\nfbf............##..#.............f\nfif...............##.............f\nfbf.............##.###...........f\nfif.............#####............f\nffffffffffffffffffffffffffffffffff\n\n\n\n\n(=========\n\n\tUNACCOUNTED FOR\n \n)\n\n\n\n((too?) EASY)\n~fffffffffffff\nfif#p.#######f\nfif###..####.f\nfif.#####....f\nfif.....##...f\nfif.....#....f\nfif.....#....f\nfbf..#..#....f\nfifgg####ggggf\nfbf.....##...f\nfif.....#....f\nffffffffffffff\n\n(too easy)\n~fffffff\nfbfp###f\nfif..#.f\nfbf###.f\nfif#g##f\nffffffff\n\n\n\n\n\n\n\n\n\n(ok but h-only solution)\n~fffffffffff\nfif#p......f\nfif###.....f\nfbf..##....f\nfif...#..#.f\nfbf...####.f\nfif......##f\nfbf....####f\nfifggg##gggf\nffffffffffff\n\n(ok easy)\n~ffffffff\nfifp...#f\nfbf....#f\nfbf#.###f\nfbf##..#f\nfif.####f\nfffffffff\n\n(good tricky!)\n~ffffffff\nfifp#.##f\nfbf.##.#f\nfbf.#.##f\nfbf.###.f\nfif###ggf\nfffffffff\n\n(h only solution :[ )\n~ffffffffff\nfif#p....#f\nfif#....##f\nfif#.....#f\nfbf#g#gg##f\nfif######.f\nfbf#.#####f\nfif...#..#f\nfffffffffff\n\n(h-only solution)\n~ffffffffff\nfif#p...##f\nfif#...#.#f\nfif#..####f\nfbf###..#.f\nfifg#####gf\nfbf..##...f\nfif..##...f\nfffffffffff\n\n\n\n\n\n\n\n\n\n\n\n(too hard?)\n~fffffffffffff\nfif####p#.###f\nfif#.#.###..#f\nfif#.####.###f\nfif#.#...#..#f\nfbf#g#ggg####f\nfif#.#...#...f\nfbf#.#...#...f\nfif#####.####f\nfbf.####.#...f\nfif##..#####.f\nffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n(solvable only with bla)\n~fffffffffffffffffffffff\nfifp...................f\nfif....................f\nfif.#..................f\nfif.##.................f\nfif###.................f\nfif##..................f\nfif##..................f\nfif####................f\nfif.####...............f\nfif....#...............f\nfif....##..............f\nfif.....#..............f\nfif.....##.............f\nfif......##............f\nfifggggg#g#ggggggggggggf\nfif.....#.#............f\nfbf.....#######........f\nfif......#.#.####......f\nfbf........#.#.........f\nfif.........##.........f\nffffffffffffffffffffffff\n\n\n\n\n\n\n\n\n\n(h-only solution but ok?)\n~fffffffffffffff\nfif#####p......f\nfif#.#.#####...f\nfif#.#.#.#.....f\nfif#g#g#gggggggf\nfif#.#.##......f\nfif#.#.#.......f\nfif#.#.##......f\nfif#.#.#.......f\nfbf#.#.##......f\nfif####.#......f\nfbf##.#####.###f\nfif...#..######f\nffffffffffffffff\n\n\n(easy)\n~fffffffffffffff\nfif##p......#.#f\nfif#.......####f\nfif#.......#.##f\nfif#.#.....##.#f\nfif#g###ggg####f\nfif#.##......##f\nfif#.##...####.f\nfif####......#.f\nfbf##.#.#######f\nfif...##.#..##.f\nfbf..######....f\nfif.....####...f\nffffffffffffffff\n\n\n(Easy)\n~fffffffffffffff\nfif#p........##f\nfif#.........##f\nfif#........###f\nfif#.........##f\nfif###ggggggg##f\nfif.#........##f\nfif####....##.#f\nfif..#.#....###f\nfbf..#####..##.f\nfif.....##.#.##f\nfbf......#####.f\nfif......#...#.f\nffffffffffffffff\n\n\n(ok, though has h-only solution)\n~fffffffffffffffffffffff\nfif####################f\nfif#p#.#.#.#.#.#..#.#.#f\nfif#.#.#.#.###.#..#.#.#f\nfif#g#g#g###g#gggg#g#ggf\nfif#.#.#.##.........#..f\nfif#.#.#.##............f\nfif#.#.#.#.##..........f\nfif#.#.#.###...........f\nfif#.#.#.#.............f\nfif#.#.#.#.............f\nfif#.#.#.###...........f\nfif#.#.#.#.##..........f\nfif#.#.#.#.#...........f\nfif#.#.#.#.............f\nfif#.#.#.##............f\nfif#.######............f\nfbf#.#....##...........f\nfif#.#####.#...........f\nfbf####.######.###.....f\nfif.....#...######.....f\nffffffffffffffffffffffff\n\n\n\n\n)\n", [2, 4, 2, 2, 2, 2, 3, 4], "background exploding fenster tl:0,background fenster fenster_right:1,1,1,1,1,1,1,background fenster:2,background fenster fenster_down:3,background inventar:4,\n4,4,background bang_schatten inventar:5,4,5,4,background fenster fenster_up:6,2,background fenster fenster_left fenster_right:7,7,7,\n7,7,7,7,2,3,background:8,8,8,8,background landbackground:9,\nbackground htarget landbackground wall:10,background landbackground wall:11,6,3,8,8,8,8,9,background htarget landbackground:12,9,\n6,3,8,8,background bond_d wall:13,background bond_d bond_r bond_u wall:14,background bond_d bond_r bond_u landbackground wall:15,background bond_d bond_u htarget landbackground player_h wall:16,background bond_u landbackground wall:17,6,3,\n8,8,8,background bond_d bond_l wall:18,background bond_l bond_u landbackground wall:19,12,11,6,3,8,8,\n8,8,9,12,background bond_r landbackground wall:20,6,3,8,8,8,8,\n9,background bond_d bond_r htarget landbackground wall:21,19,6,3,8,8,13,background bond_d bond_u wall:22,background bond_d bond_u landbackground wall:23,background bond_l bond_u htarget landbackground wall:24,\n9,6,2,background fenster fenster_left:25,25,25,25,25,25,25,2,\n", 13, "1627892668524.9329"] ], [ - "sum three horizontally to 8!", - ["title sum three horizontally to 8!\nauthor increpare\nhomepage www.increpare.com\ncolor_palette 1\nbackground_color darkblue\ntext_color pink\n\n(anderer Quellcode für Level-Generation usw kann man hier finden\nhttps://github.com/increpare/sum-three-horizontally-to-8-\n)\n\nrun_rules_on_level_start\n\nnorepeat_action\n\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nwall\ndarkgray\n\nspawn \ntransparent\n\nplayer p\nwhite\n00...\n0....\n.....\n0....\n00...\n\n\nplayer_r \nwhite\n...00\n....0\n.....\n....0\n...00\n\n\ndeadplayer \ngray\n00...\n0....\n.....\n0....\n00...\n\n\ndeadplayer_r \ngray\n...00\n....0\n.....\n....0\n...00\n\nk1 1\nred darkred\n11111\n11111\n11011\n11111\n11111\n\n\nk2 2\ngreen darkgreen\n11111\n11101\n11111\n10111\n11111\n\n\nk3 3\nyellow lightbrown\n11111\n11101\n11011\n10111\n11111\n\n\n\nk4 4\nbrown darkbrown\n11111\n10101\n11111\n10101\n11111\n\nk5 5\nblue darkblue\n11111\n10101\n11011\n10101\n11111\n\nk6 6\npink purple\n11111\n10101\n10101\n10101\n11111\n\nspawnfall\ntransparent\n\ndokill\nblack\n00000\n0...0\n0...0\n0...0\n00000\n\ndokill2\nblack\n00000\n00000\n00.00\n00000\n00000\n\ntanwas\npurple\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n? = spawn\nk = k1 or k2 or k3 or k4 or k5 or k6\nko = k1 or k2 or k3 or k4 or k5 or k6\n\nq = k1 and player\nw = k2 and player\ne = k3 and player\nr = k4 and player\nt = k5 and player\ny = k6 and player\n\n=======\nSOUNDS\n=======\n\nsfx0 29634507 (schieben)\nsfx1 93386709 (leeren)\nstartlevel 61503707\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nwall,k\nplayer, player_r\ndeadplayer, deadplayer_r\nspawn\nspawnfall\ndokill\ndokill2\ntanwas\n\n======\nRULES\n======\n\n\nright [player deadplayer | player_r deadplayer_r ] -> [stationary player deadplayer | stationary player_r deadplayer_r ]\n\n[player_r]->[]\n\n[dokill][player]->[dokill][player spawnfall]\n[dokill2][player]->[dokill2][player spawnfall]\n\n[action player ] -> sfx0\n\n\nright [action player |]->[action player deadplayer|deadplayer_r]\n\nright [action player k1|k1]->cancel\nright [action player k2|k2]->cancel\nright [action player k3|k3]->cancel\nright [action player k4|k4]->cancel\nright [action player k5|k5]->cancel\nright [action player k6|k6]->cancel\nright [action player no k|no k]->cancel\n\n[> player | wall]->cancel\nright [> player ||wall]->cancel\n\ndown [ k | no k ] -> [ > k | ] again\n[> k | wall ] -> [ k | wall ]\n[> k | stationary ko ] -> [ k | ko ]\n\n[> k ] [ player ] -> [ > k ] [ player spawnfall]\n\n[moving k] [player no spawnfall]-> [ moving k ] [ player spawnfall]\n\n[player] [? no k]->[player spawnfall] [ ? random k] again\n\nright [action player k | ko ]->[tanwas player spawnfall ko | k] again\nright [action player k | no ko ]->[tanwas player spawnfall| k] again\nright [action player no ko | k ]->[tanwas player spawnfall k | ] again\n\n\n\n[dokill2 k]->[] again\n\n[dokill k]->[dokill2 k] again\n\n\nhorizontal [player no spawnfall] [ k1 | k1 | k6 ] -> [player no spawnfall] [ k1 dokill | k1 dokill | k6 dokill ]\nhorizontal [player no spawnfall] [ k1 | k2 | k5 ] -> [player no spawnfall] [ k1 dokill | k2 dokill | k5 dokill ]\nhorizontal [player no spawnfall] [ k1 | k3 | k4 ] -> [player no spawnfall] [ k1 dokill | k3 dokill | k4 dokill ]\nhorizontal [player no spawnfall] [ k1 | k4 | k3 ] -> [player no spawnfall] [ k1 dokill | k4 dokill | k3 dokill ]\nhorizontal [player no spawnfall] [ k1 | k5 | k2 ] -> [player no spawnfall] [ k1 dokill | k5 dokill | k2 dokill ]\nright [player no spawnfall] [ k1 | k6 | k1 ] -> [player no spawnfall] [ k1 dokill | k6 dokill | k1 dokill ]\nhorizontal [player no spawnfall] [ k2 | k1 | k5 ] -> [player no spawnfall] [ k2 dokill | k1 dokill | k5 dokill ]\nhorizontal [player no spawnfall] [ k2 | k2 | k4 ] -> [player no spawnfall] [ k2 dokill | k2 dokill | k4 dokill ]\nhorizontal [player no spawnfall] [ k2 | k3 | k3 ] -> [player no spawnfall] [ k2 dokill | k3 dokill | k3 dokill ]\nright [player no spawnfall] [ k2 | k4 | k2 ] -> [player no spawnfall] [ k2 dokill | k4 dokill | k2 dokill ]\nhorizontal [player no spawnfall] [ k3 | k1 | k4 ] -> [player no spawnfall] [ k3 dokill | k1 dokill | k4 dokill ]\nright [player no spawnfall] [ k3 | k2 | k3 ] -> [player no spawnfall] [ k3 dokill | k2 dokill | k3 dokill ]\n\nright [dokill][deadplayer|deadplayer_r]->[dokill][|] sfx1\n\n\n[tanwas]->[]\n\n[dokill]->again\n\nlate [ spawnfall]->[]\n\nlate right [ player | ] -> [ player|player_r]\n\n\n==============\nWINCONDITIONS\n==============\n\nno k\n\n=======\nLEVELS\n=======\n\nmessage If three numbers horizontally sum to eight, they vanish.\nmessage Each level has a unique solution\n\n\nmessage World 1/3 - One Move\nmessage World 1/3 - Level 1/4\n\n#############\n#p24.2..23.3#\n#############\n\n\nmessage World 1/3 - Level 2/4\n\n\n########\n#p.133.#\n#142352#\n########\n\n(\nLösung: (2,1) \nVerhältnis3: 9.000000\nStückzahl: 9\nErfolg: 1\nGesamt: 8\nInteressante: 1\nLösungstiefe: 0\n)\n\nmessage World 1/3 - Level 3/4\n\n#######\n#p.2..#\n#.132.#\n#.4114#\n#.4243#\n#.4324#\n#######\n\n(\nLösung: (0,1) \nVerhältnis3: 16.000000\nStückzahl: 16\nErfolg: 1\nGesamt: 17\nInteressante: 1\nLösungstiefe: 0\n)\n\n\nmessage World 1/3 - Level 4/4\n\n###########\n#p.15631..#\n#.2121244.#\n###########\n\n(\nLösung: (3,1) \nVerhältnis3: 12.000000\nStückzahl: 12\nErfolg: 1\nGesamt: 13\nInteressante: 1\nLösungstiefe: 0\n)\n\n\n\nmessage World 2/3 - Medium Land\nmessage World 2/3 - Level 1/4\n\n(easy but not 100% trivial)\n######\n#p...#\n#.1..#\n#13.1#\n#61.4#\n######\n\n(\nLösung: (1,1) (2,3) \nVerhältnis2: 0.090909\nStückzahl: 7\nErfolg: 1\nGesamt: 32\nInteressante: 11\nLösungstiefe: 1\n)\n\n\nmessage World 2/3 - Level 2/4\n\n(not hard! but non-trivial)\n\n###########\n#p4.4.4.4.#\n#.2.2.2.2.#\n#42.2.2.24#\n###########\n\n(\nuh, edited/doubled!\nLösung: (1,0) (2,2) \nVerhältnis2: 0.043478\nStückzahl: 7\nErfolg: 1\nGesamt: 61\nInteressante: 23\nLösungstiefe: 1\n)\n\n\n\n\nmessage World 2/3 - Level 3/4\n\n\n\n(pleasant to solve!)\n\n############\n#p..1..1124#\n#22.41.6225#\n############\n\n(\nLösung: (2,1) (5,1) (6,1) (6,1) \nVerhältnis2: 0.040000\nStückzahl: 13\nErfolg: 1\nGesamt: 142\nInteressante: 25\nLösungstiefe: 3\n)\n\n\nmessage World 2/3 - Level 4/4\n\n(nice! not obvious but can be rationalized)\n######\n#p...#\n#33.3#\n#32.2#\n#23.3#\n######\n\n(\nLösung: (2,1) (2,3) (2,3) \nVerhältnis2: 0.047619\nStückzahl: 9\nErfolg: 1\nGesamt: 69\nInteressante: 21\nLösungstiefe: 2\n)\n\nmessage World 3/3 - HARD WORLD\nmessage World 3/3 - Level 1/4\n\n\n(hard, maybe for after)\n############\n#q.11.2....#\n#6.15.14513#\n############\n\n(\nLösung: (6,1) (4,0) (0,1) \nVerhältnis2: 0.013333\nStückzahl: 12\nErfolg: 1\nGesamt: 420\nInteressante: 75\nLösungstiefe: 2\n)\n\nmessage World 3/3 - Level 2/4\n\n\n(I could figure it out!)\n\n######\n#p3.4#\n#3114#\n#2442#\n######\n\n(\nLösung: (2,1) (0,2) (2,2) \nVerhältnis2: 0.033333\nStückzahl: 10\nErfolg: 1\nGesamt: 76\nInteressante: 30\nLösungstiefe: 2\n)\n\nmessage World 3/3 - Level 3/4\n\n\n(hardish. try solve again yourself later)\n##############\n#p4.3.11.4..4#\n#13.1441.61.3#\n##############\n\n(\nLösung: (1,1) (3,1) (7,1) (10,1) \nVerhältnis2: 0.002688\nStückzahl: 15\nErfolg: 1\nGesamt: 2585\nInteressante: 372\nLösungstiefe: 3\n)\n\n\nmessage World 3/3 - Level 4/4\n\n(I could figure it out :] ) \n\n######\n#w.2.#\n#3.32#\n#3.33#\n#2.33#\n######\n(\nLösung: (1,0) (0,3) (0,3) \nVerhältnis2: 0.013158\nStückzahl: 11\nErfolg: 1\nGesamt: 225\nInteressante: 76\nLösungstiefe: 2\n)\n\n\n\nmessage You won!\n\nmessage [On the next screen the goal is to remove as many sixes as possible. How many can you get down to? ]\n\n\n#####################\n#11.1.1p.111..1.1.11#\n#11.1.1..111..1.1.11#\n#11.1.1..111..1.1.11#\n#11.1.1..111..1.1.11#\n#11.1.1..111..1.1.11#\n#11.1.1..111..1.1.11#\n#1216.621666216.6211#\n#12166622616216.6211#\n#1112612166621666211#\n#1122222222222222211#\n#1126162612612666211#\n#1126162612612616211#\n#1126666612612616211#\n#1122222222222222211#\n#1111111111111111111#\n#1443441443441443441#\n#1443441443441443441#\n#1443441443441443441#\n#1443441443441443441#\n#1111111111111111111#\n#####################\n",[3,3,2,4],"background wall:0,0,0,0,0,0,\n0,background:1,1,background k3:2,2,0,\n0,1,1,2,background k2:3,0,\n0,1,background player:4,1,1,0,\n0,1,background player_r:5,3,2,0,\n0,0,0,0,0,0,\n",19,"1627893119768.2104"] + "sum three horizontally to 8!", + ["title sum three horizontally to 8!\nauthor increpare\nhomepage www.increpare.com\ncolor_palette 1\nbackground_color darkblue\ntext_color pink\n\n(anderer Quellcode für Level-Generation usw kann man hier finden\nhttps://github.com/increpare/sum-three-horizontally-to-8-\n)\n\nrun_rules_on_level_start\n\nnorepeat_action\n\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nwall\ndarkgray\n\nspawn \ntransparent\n\nplayer p\nwhite\n00...\n0....\n.....\n0....\n00...\n\n\nplayer_r \nwhite\n...00\n....0\n.....\n....0\n...00\n\n\ndeadplayer \ngray\n00...\n0....\n.....\n0....\n00...\n\n\ndeadplayer_r \ngray\n...00\n....0\n.....\n....0\n...00\n\nk1 1\nred darkred\n11111\n11111\n11011\n11111\n11111\n\n\nk2 2\ngreen darkgreen\n11111\n11101\n11111\n10111\n11111\n\n\nk3 3\nyellow lightbrown\n11111\n11101\n11011\n10111\n11111\n\n\n\nk4 4\nbrown darkbrown\n11111\n10101\n11111\n10101\n11111\n\nk5 5\nblue darkblue\n11111\n10101\n11011\n10101\n11111\n\nk6 6\npink purple\n11111\n10101\n10101\n10101\n11111\n\nspawnfall\ntransparent\n\ndokill\nblack\n00000\n0...0\n0...0\n0...0\n00000\n\ndokill2\nblack\n00000\n00000\n00.00\n00000\n00000\n\ntanwas\npurple\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n? = spawn\nk = k1 or k2 or k3 or k4 or k5 or k6\nko = k1 or k2 or k3 or k4 or k5 or k6\n\nq = k1 and player\nw = k2 and player\ne = k3 and player\nr = k4 and player\nt = k5 and player\ny = k6 and player\n\n=======\nSOUNDS\n=======\n\nsfx0 29634507 (schieben)\nsfx1 93386709 (leeren)\nstartlevel 61503707\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nwall,k\nplayer, player_r\ndeadplayer, deadplayer_r\nspawn\nspawnfall\ndokill\ndokill2\ntanwas\n\n======\nRULES\n======\n\n\nright [player deadplayer | player_r deadplayer_r ] -> [stationary player deadplayer | stationary player_r deadplayer_r ]\n\n[player_r]->[]\n\n[dokill][player]->[dokill][player spawnfall]\n[dokill2][player]->[dokill2][player spawnfall]\n\n[action player ] -> sfx0\n\n\nright [action player |]->[action player deadplayer|deadplayer_r]\n\nright [action player k1|k1]->cancel\nright [action player k2|k2]->cancel\nright [action player k3|k3]->cancel\nright [action player k4|k4]->cancel\nright [action player k5|k5]->cancel\nright [action player k6|k6]->cancel\nright [action player no k|no k]->cancel\n\n[> player | wall]->cancel\nright [> player ||wall]->cancel\n\ndown [ k | no k ] -> [ > k | ] again\n[> k | wall ] -> [ k | wall ]\n[> k | stationary ko ] -> [ k | ko ]\n\n[> k ] [ player ] -> [ > k ] [ player spawnfall]\n\n[moving k] [player no spawnfall]-> [ moving k ] [ player spawnfall]\n\n[player] [? no k]->[player spawnfall] [ ? random k] again\n\nright [action player k | ko ]->[tanwas player spawnfall ko | k] again\nright [action player k | no ko ]->[tanwas player spawnfall| k] again\nright [action player no ko | k ]->[tanwas player spawnfall k | ] again\n\n\n\n[dokill2 k]->[] again\n\n[dokill k]->[dokill2 k] again\n\n\nhorizontal [player no spawnfall] [ k1 | k1 | k6 ] -> [player no spawnfall] [ k1 dokill | k1 dokill | k6 dokill ]\nhorizontal [player no spawnfall] [ k1 | k2 | k5 ] -> [player no spawnfall] [ k1 dokill | k2 dokill | k5 dokill ]\nhorizontal [player no spawnfall] [ k1 | k3 | k4 ] -> [player no spawnfall] [ k1 dokill | k3 dokill | k4 dokill ]\nhorizontal [player no spawnfall] [ k1 | k4 | k3 ] -> [player no spawnfall] [ k1 dokill | k4 dokill | k3 dokill ]\nhorizontal [player no spawnfall] [ k1 | k5 | k2 ] -> [player no spawnfall] [ k1 dokill | k5 dokill | k2 dokill ]\nright [player no spawnfall] [ k1 | k6 | k1 ] -> [player no spawnfall] [ k1 dokill | k6 dokill | k1 dokill ]\nhorizontal [player no spawnfall] [ k2 | k1 | k5 ] -> [player no spawnfall] [ k2 dokill | k1 dokill | k5 dokill ]\nhorizontal [player no spawnfall] [ k2 | k2 | k4 ] -> [player no spawnfall] [ k2 dokill | k2 dokill | k4 dokill ]\nhorizontal [player no spawnfall] [ k2 | k3 | k3 ] -> [player no spawnfall] [ k2 dokill | k3 dokill | k3 dokill ]\nright [player no spawnfall] [ k2 | k4 | k2 ] -> [player no spawnfall] [ k2 dokill | k4 dokill | k2 dokill ]\nhorizontal [player no spawnfall] [ k3 | k1 | k4 ] -> [player no spawnfall] [ k3 dokill | k1 dokill | k4 dokill ]\nright [player no spawnfall] [ k3 | k2 | k3 ] -> [player no spawnfall] [ k3 dokill | k2 dokill | k3 dokill ]\n\nright [dokill][deadplayer|deadplayer_r]->[dokill][|] sfx1\n\n\n[tanwas]->[]\n\n[dokill]->again\n\nlate [ spawnfall]->[]\n\nlate right [ player | ] -> [ player|player_r]\n\n\n==============\nWINCONDITIONS\n==============\n\nno k\n\n=======\nLEVELS\n=======\n\nmessage If three numbers horizontally sum to eight, they vanish.\nmessage Each level has a unique solution\n\n\nmessage World 1/3 - One Move\nmessage World 1/3 - Level 1/4\n\n#############\n#p24.2..23.3#\n#############\n\n\nmessage World 1/3 - Level 2/4\n\n\n########\n#p.133.#\n#142352#\n########\n\n(\nLösung: (2,1) \nVerhältnis3: 9.000000\nStückzahl: 9\nErfolg: 1\nGesamt: 8\nInteressante: 1\nLösungstiefe: 0\n)\n\nmessage World 1/3 - Level 3/4\n\n#######\n#p.2..#\n#.132.#\n#.4114#\n#.4243#\n#.4324#\n#######\n\n(\nLösung: (0,1) \nVerhältnis3: 16.000000\nStückzahl: 16\nErfolg: 1\nGesamt: 17\nInteressante: 1\nLösungstiefe: 0\n)\n\n\nmessage World 1/3 - Level 4/4\n\n###########\n#p.15631..#\n#.2121244.#\n###########\n\n(\nLösung: (3,1) \nVerhältnis3: 12.000000\nStückzahl: 12\nErfolg: 1\nGesamt: 13\nInteressante: 1\nLösungstiefe: 0\n)\n\n\n\nmessage World 2/3 - Medium Land\nmessage World 2/3 - Level 1/4\n\n(easy but not 100% trivial)\n######\n#p...#\n#.1..#\n#13.1#\n#61.4#\n######\n\n(\nLösung: (1,1) (2,3) \nVerhältnis2: 0.090909\nStückzahl: 7\nErfolg: 1\nGesamt: 32\nInteressante: 11\nLösungstiefe: 1\n)\n\n\nmessage World 2/3 - Level 2/4\n\n(not hard! but non-trivial)\n\n###########\n#p4.4.4.4.#\n#.2.2.2.2.#\n#42.2.2.24#\n###########\n\n(\nuh, edited/doubled!\nLösung: (1,0) (2,2) \nVerhältnis2: 0.043478\nStückzahl: 7\nErfolg: 1\nGesamt: 61\nInteressante: 23\nLösungstiefe: 1\n)\n\n\n\n\nmessage World 2/3 - Level 3/4\n\n\n\n(pleasant to solve!)\n\n############\n#p..1..1124#\n#22.41.6225#\n############\n\n(\nLösung: (2,1) (5,1) (6,1) (6,1) \nVerhältnis2: 0.040000\nStückzahl: 13\nErfolg: 1\nGesamt: 142\nInteressante: 25\nLösungstiefe: 3\n)\n\n\nmessage World 2/3 - Level 4/4\n\n(nice! not obvious but can be rationalized)\n######\n#p...#\n#33.3#\n#32.2#\n#23.3#\n######\n\n(\nLösung: (2,1) (2,3) (2,3) \nVerhältnis2: 0.047619\nStückzahl: 9\nErfolg: 1\nGesamt: 69\nInteressante: 21\nLösungstiefe: 2\n)\n\nmessage World 3/3 - HARD WORLD\nmessage World 3/3 - Level 1/4\n\n\n(hard, maybe for after)\n############\n#q.11.2....#\n#6.15.14513#\n############\n\n(\nLösung: (6,1) (4,0) (0,1) \nVerhältnis2: 0.013333\nStückzahl: 12\nErfolg: 1\nGesamt: 420\nInteressante: 75\nLösungstiefe: 2\n)\n\nmessage World 3/3 - Level 2/4\n\n\n(I could figure it out!)\n\n######\n#p3.4#\n#3114#\n#2442#\n######\n\n(\nLösung: (2,1) (0,2) (2,2) \nVerhältnis2: 0.033333\nStückzahl: 10\nErfolg: 1\nGesamt: 76\nInteressante: 30\nLösungstiefe: 2\n)\n\nmessage World 3/3 - Level 3/4\n\n\n(hardish. try solve again yourself later)\n##############\n#p4.3.11.4..4#\n#13.1441.61.3#\n##############\n\n(\nLösung: (1,1) (3,1) (7,1) (10,1) \nVerhältnis2: 0.002688\nStückzahl: 15\nErfolg: 1\nGesamt: 2585\nInteressante: 372\nLösungstiefe: 3\n)\n\n\nmessage World 3/3 - Level 4/4\n\n(I could figure it out :] ) \n\n######\n#w.2.#\n#3.32#\n#3.33#\n#2.33#\n######\n(\nLösung: (1,0) (0,3) (0,3) \nVerhältnis2: 0.013158\nStückzahl: 11\nErfolg: 1\nGesamt: 225\nInteressante: 76\nLösungstiefe: 2\n)\n\n\n\nmessage You won!\n\nmessage [On the next screen the goal is to remove as many sixes as possible. How many can you get down to? ]\n\n\n#####################\n#11.1.1p.111..1.1.11#\n#11.1.1..111..1.1.11#\n#11.1.1..111..1.1.11#\n#11.1.1..111..1.1.11#\n#11.1.1..111..1.1.11#\n#11.1.1..111..1.1.11#\n#1216.621666216.6211#\n#12166622616216.6211#\n#1112612166621666211#\n#1122222222222222211#\n#1126162612612666211#\n#1126162612612616211#\n#1126666612612616211#\n#1122222222222222211#\n#1111111111111111111#\n#1443441443441443441#\n#1443441443441443441#\n#1443441443441443441#\n#1443441443441443441#\n#1111111111111111111#\n#####################\n", [3, 3, 2, 4], "background wall:0,0,0,0,0,0,\n0,background:1,1,background k3:2,2,0,\n0,1,1,2,background k2:3,0,\n0,1,background player:4,1,1,0,\n0,1,background player_r:5,3,2,0,\n0,0,0,0,0,0,\n", 19, "1627893119768.2104"] ], [ - "Schleimban", - ["title Schleimban\nauthor increpare [+ ein Level von David Skinners Microban]\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\n( One level taken from David Skinner's Microban - www.sneezingtiger.com/sokoban/levels/microbanText.html )\n\ntext_color lightblue\ncolor_palette 6\n\n========\nOBJECTS\n========\n\nBackground\nblack darkgray\n00000\n00000\n00100\n00000\n00000\n\nWall\ndarkgray gray darkblue\n00000\n01112\n01002\n01002\n02222\n\nwall_up\ndarkgray gray darkblue\n.1..2\n..00.\n.....\n.....\n.....\n\nwall_down\ndarkgray gray darkblue\n.....\n.....\n.....\n.....\n.1002\n\nwall_left\ndarkgray gray darkblue\n.....\n1....\n.0...\n.0...\n2....\n\nwall_right\ndarkgray gray darkblue\n.....\n....1\n....0\n....0\n.....\n\nTarget\nyellow\n.....\n.....\n..0..\n.....\n.....\n\n\nCrate\ngray darkblue\n.000.\n01110\n01.10\n01110\n.000.\n\nPlayer\ndarkred red black\n.000.\n01110\n01.10\n01110\n.000.\n\nplayer_up\ndarkred red\n0...0\n.....\n.....\n.....\n.....\n\nplayer_down\ndarkred red\n.....\n.....\n.....\n.....\n0...0\n\nplayer_left\ndarkred red\n0....\n.....\n.....\n.....\n0....\n\nplayer_right\ndarkred red\n....0\n.....\n.....\n.....\n....0\n\n\nplayer_up_o\ndarkred red\n01110\n.....\n.....\n.....\n.....\n\nplayer_down_o\ndarkred red\n.....\n.....\n.....\n.....\n01110\n\nplayer_left_o\ndarkred red\n0....\n1....\n1....\n1....\n0....\n\nplayer_right_o\ndarkred red\n....0\n....1\n....1\n....1\n....0\n\nplayer_ur\ndarkred red\n....1\n.....\n.....\n.....\n.....\n\nplayer_ul\ndarkred red\n1....\n.....\n.....\n.....\n.....\n\nplayer_dr\ndarkred red\n.....\n.....\n.....\n.....\n....1\n\nplayer_dl\ndarkred red\n.....\n.....\n.....\n.....\n1....\n\n\nok\ndarkred\n\n\n\nsprt_0_0 1\nblack\n\nsprt_1_0 2\nlightgray darkgray red lightred\n...01\n...01\n...00\n...22\n..223\n\nsprt_2_0 3\ndarkgray lightgray red lightred\n00001\n00001\n11111\n22222\n33332\n\nsprt_3_0 4\nred black\n11111\n11111\n11111\n11111\n01111\n\nsprt_4_0 5\nblack\n\nsprt_0_1 6\nlightgray red darkgray black\n33333\n33333\n00001\n22201\n22201\n\nsprt_1_1 7\nred lightred darkblue black\n30011\n00111\n01111\n11111\n11122\n\nsprt_2_1 8\nlightred darkblue\n00000\n00000\n00000\n00000\n00011\n\nsprt_3_1 9\nlightred red\n011..\n0011.\n00011\n00001\n00001\n\nsprt_4_1 0\nblack\n\nsprt_0_2 -\ndarkgray lightgray red\n00012\n00012\n00012\n00012\n00012\n\nsprt_1_2 =\nlightred darkblue\n00011\n00000\n00000\n00100\n00010\n\nsprt_2_2 q\nlightred darkblue\n00011\n00000\n00000\n00000\n00000\n\nsprt_3_2 w\nlightred red darkblue\n00001\n00000\n00000\n02000\n20000\n\nsprt_4_2 e\nred lightgray lightred darkgray\n0....\n0....\n00111\n20133\n20133\n\nsprt_0_3 r\ndarkgray lightgray red\n00012\n00012\n11112\n.....\n.....\n\nsprt_1_3 t\nlightred darkblue red\n00001\n00000\n20000\n22000\n.2200\n\nsprt_2_3 y\nlightred darkblue\n00001\n11110\n00000\n00000\n00000\n\nsprt_3_3 u\nlightred red\n00000\n00000\n00000\n00000\n00001\n\nsprt_4_3 i\nlightred red lightgray darkgray\n01233\n01233\n01233\n11222\n1....\n\nsprt_0_4 z\nblack\n\nsprt_1_4 x\nred lightgray darkgray\n..000\n..111\n..122\n..122\n..122\n\nsprt_2_4 a\nred lightgray darkgray\n00000\n11111\n22222\n22222\n22222\n\nsprt_3_4 s\nred lightgray darkgray\n00000\n11111\n22221\n22221\n22221\n\nsprt_4_4 d\nblack\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\nobstacle = crate or wall\nplayer_stick = player_up or player_down or player_left or player_right or player_up_o or player_down_o or player_left_o or player_right_o or player_ur or player_ul or player_dr or player_dl\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nok\nplayer_up,player_up_o\nplayer_down,player_down_o\nplayer_left,player_left_o\nplayer_right,player_right_o\nplayer_ur\nplayer_ul\nplayer_dr\nplayer_dl\n\nwall_up\nwall_down\nwall_left\nwall_right\n1,2,3,4,5,6,7,8,9,0,sprt_0_2,sprt_1_2,q,w,e,r,t,y,u,i,z,x,a,s,d\n\n======\nRULES\n======\n\nright [ wall | wall ] -> [wall_right wall | wall_left wall ]\ndown [ wall | wall ] -> [ wall_down wall | wall_up wall]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate [ player | obstacle ] -> [ player ok | obstacle ]\nlate [ player no ok ] -> cancel\nlate [ player ok ] -> [ player ]\n\nlate [player_stick]->[]\n\nlate down [ crate | player ] -> [ crate player_down | Player player_up_o]\nlate up [ crate | player ] -> [ crate player_up | Player player_down_o]\nlate left [ crate | player ] -> [ crate player_left | Player player_right_o]\nlate right [ crate | player ] -> [ crate player_right | Player player_left_o]\n\nlate up [ player | wall ]-> [player player_up_o|wall]\nlate down [ player | wall ]-> [player player_down_o|wall]\nlate left [ player | wall ]-> [player player_left_o|wall]\nlate right [ player | wall ]-> [player player_right_o|wall]\n\nlate [ player_up_o player_right_o ] -> [ player_up_o player_right_o player_ur]\nlate [ player_up_o player_left_o ] -> [ player_up_o player_left_o player_ul]\nlate [ player_down_o player_right_o ] -> [ player_down_o player_right_o player_dr]\nlate [ player_down_o player_left_o ] -> [ player_down_o player_left_o player_dl]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 von 5\n\n..#####..\n..#...#..\n..#.o.#..\n..#...#..\n####.####\n#.......#\n#...*...#\n#.......#\n#.......#\n#...p...#\n#########\n\n\nmessage Level 2 von 5 [ von Microban ]\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\nmessage Level 3 von 5\n\n#########\n#.......#\n#..o.o..#\n#.......#\n##.###.##\n#.......#\n#.*.p.*.#\n#...#...#\n#########\n\nmessage Level 4 von 5\n\n########\n#o.....#\n#p**...#\n##.....#\n.##....#\n..##...#\n...##..#\n....##o#\n.....###\n\nmessage Level 5 von 5\n\n\n#########\n#.......#\n#.....#.#\n#.......#\n#.....###\n#..**.oo#\n#....####\n#.p..#...\n######...\n\n\nmessage Herzlichen Glückwunsch!\n\n\n12345\n67890\n-=qwe\nrtyui\nzxasd\n\n\n(\n\n\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n#############\n#......##...#\n#...**..p.#.#\n#.....#oo...#\n#.....#######\n#######......\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#OOO...#\n#...########\n#####.......\n\n#########\n#.......#\n#..o.o..#\n#.......#\n##.###.##\n#.......#\n#.......#\n#.......#\n#.*.p.*.#\n#...#...#\n#########\n\n..#####..\n..#...#..\n..#.o.#..\n..#...#..\n####.####\n#.......#\n#...*...#\n#.......#\n#.......#\n#...p...#\n#########\n\n\n#######\n#.....#\n#.o.o.#\n#.....#\n##.#.##\n#.....#\n#.*.*.#\n#..p..#\n#######\n\n)\n",[3,0,0,1,1,1,0,1,2,3,2,3],"background:0,background wall wall_down wall_right:1,background wall wall_down wall_up:2,2,2,background wall wall_right wall_up:3,0,background wall wall_left wall_right:4,0,\n0,0,4,1,background wall wall_left wall_up:5,0,background wall:6,background target:7,4,\n4,0,0,0,background crate:8,4,4,0,0,\nbackground player player_right_o:9,7,4,background wall wall_down wall_left:10,3,0,background wall wall_down:11,2,background wall wall_left wall_right wall_up:12,\n0,4,0,8,0,4,0,4,0,\n0,0,4,0,10,2,2,2,5,\n",3,"1627893180878.8218"] + "Schleimban", + ["title Schleimban\nauthor increpare [+ ein Level von David Skinners Microban]\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\n( One level taken from David Skinner's Microban - www.sneezingtiger.com/sokoban/levels/microbanText.html )\n\ntext_color lightblue\ncolor_palette 6\n\n========\nOBJECTS\n========\n\nBackground\nblack darkgray\n00000\n00000\n00100\n00000\n00000\n\nWall\ndarkgray gray darkblue\n00000\n01112\n01002\n01002\n02222\n\nwall_up\ndarkgray gray darkblue\n.1..2\n..00.\n.....\n.....\n.....\n\nwall_down\ndarkgray gray darkblue\n.....\n.....\n.....\n.....\n.1002\n\nwall_left\ndarkgray gray darkblue\n.....\n1....\n.0...\n.0...\n2....\n\nwall_right\ndarkgray gray darkblue\n.....\n....1\n....0\n....0\n.....\n\nTarget\nyellow\n.....\n.....\n..0..\n.....\n.....\n\n\nCrate\ngray darkblue\n.000.\n01110\n01.10\n01110\n.000.\n\nPlayer\ndarkred red black\n.000.\n01110\n01.10\n01110\n.000.\n\nplayer_up\ndarkred red\n0...0\n.....\n.....\n.....\n.....\n\nplayer_down\ndarkred red\n.....\n.....\n.....\n.....\n0...0\n\nplayer_left\ndarkred red\n0....\n.....\n.....\n.....\n0....\n\nplayer_right\ndarkred red\n....0\n.....\n.....\n.....\n....0\n\n\nplayer_up_o\ndarkred red\n01110\n.....\n.....\n.....\n.....\n\nplayer_down_o\ndarkred red\n.....\n.....\n.....\n.....\n01110\n\nplayer_left_o\ndarkred red\n0....\n1....\n1....\n1....\n0....\n\nplayer_right_o\ndarkred red\n....0\n....1\n....1\n....1\n....0\n\nplayer_ur\ndarkred red\n....1\n.....\n.....\n.....\n.....\n\nplayer_ul\ndarkred red\n1....\n.....\n.....\n.....\n.....\n\nplayer_dr\ndarkred red\n.....\n.....\n.....\n.....\n....1\n\nplayer_dl\ndarkred red\n.....\n.....\n.....\n.....\n1....\n\n\nok\ndarkred\n\n\n\nsprt_0_0 1\nblack\n\nsprt_1_0 2\nlightgray darkgray red lightred\n...01\n...01\n...00\n...22\n..223\n\nsprt_2_0 3\ndarkgray lightgray red lightred\n00001\n00001\n11111\n22222\n33332\n\nsprt_3_0 4\nred black\n11111\n11111\n11111\n11111\n01111\n\nsprt_4_0 5\nblack\n\nsprt_0_1 6\nlightgray red darkgray black\n33333\n33333\n00001\n22201\n22201\n\nsprt_1_1 7\nred lightred darkblue black\n30011\n00111\n01111\n11111\n11122\n\nsprt_2_1 8\nlightred darkblue\n00000\n00000\n00000\n00000\n00011\n\nsprt_3_1 9\nlightred red\n011..\n0011.\n00011\n00001\n00001\n\nsprt_4_1 0\nblack\n\nsprt_0_2 -\ndarkgray lightgray red\n00012\n00012\n00012\n00012\n00012\n\nsprt_1_2 =\nlightred darkblue\n00011\n00000\n00000\n00100\n00010\n\nsprt_2_2 q\nlightred darkblue\n00011\n00000\n00000\n00000\n00000\n\nsprt_3_2 w\nlightred red darkblue\n00001\n00000\n00000\n02000\n20000\n\nsprt_4_2 e\nred lightgray lightred darkgray\n0....\n0....\n00111\n20133\n20133\n\nsprt_0_3 r\ndarkgray lightgray red\n00012\n00012\n11112\n.....\n.....\n\nsprt_1_3 t\nlightred darkblue red\n00001\n00000\n20000\n22000\n.2200\n\nsprt_2_3 y\nlightred darkblue\n00001\n11110\n00000\n00000\n00000\n\nsprt_3_3 u\nlightred red\n00000\n00000\n00000\n00000\n00001\n\nsprt_4_3 i\nlightred red lightgray darkgray\n01233\n01233\n01233\n11222\n1....\n\nsprt_0_4 z\nblack\n\nsprt_1_4 x\nred lightgray darkgray\n..000\n..111\n..122\n..122\n..122\n\nsprt_2_4 a\nred lightgray darkgray\n00000\n11111\n22222\n22222\n22222\n\nsprt_3_4 s\nred lightgray darkgray\n00000\n11111\n22221\n22221\n22221\n\nsprt_4_4 d\nblack\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\nobstacle = crate or wall\nplayer_stick = player_up or player_down or player_left or player_right or player_up_o or player_down_o or player_left_o or player_right_o or player_ur or player_ul or player_dr or player_dl\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nok\nplayer_up,player_up_o\nplayer_down,player_down_o\nplayer_left,player_left_o\nplayer_right,player_right_o\nplayer_ur\nplayer_ul\nplayer_dr\nplayer_dl\n\nwall_up\nwall_down\nwall_left\nwall_right\n1,2,3,4,5,6,7,8,9,0,sprt_0_2,sprt_1_2,q,w,e,r,t,y,u,i,z,x,a,s,d\n\n======\nRULES\n======\n\nright [ wall | wall ] -> [wall_right wall | wall_left wall ]\ndown [ wall | wall ] -> [ wall_down wall | wall_up wall]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate [ player | obstacle ] -> [ player ok | obstacle ]\nlate [ player no ok ] -> cancel\nlate [ player ok ] -> [ player ]\n\nlate [player_stick]->[]\n\nlate down [ crate | player ] -> [ crate player_down | Player player_up_o]\nlate up [ crate | player ] -> [ crate player_up | Player player_down_o]\nlate left [ crate | player ] -> [ crate player_left | Player player_right_o]\nlate right [ crate | player ] -> [ crate player_right | Player player_left_o]\n\nlate up [ player | wall ]-> [player player_up_o|wall]\nlate down [ player | wall ]-> [player player_down_o|wall]\nlate left [ player | wall ]-> [player player_left_o|wall]\nlate right [ player | wall ]-> [player player_right_o|wall]\n\nlate [ player_up_o player_right_o ] -> [ player_up_o player_right_o player_ur]\nlate [ player_up_o player_left_o ] -> [ player_up_o player_left_o player_ul]\nlate [ player_down_o player_right_o ] -> [ player_down_o player_right_o player_dr]\nlate [ player_down_o player_left_o ] -> [ player_down_o player_left_o player_dl]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 von 5\n\n..#####..\n..#...#..\n..#.o.#..\n..#...#..\n####.####\n#.......#\n#...*...#\n#.......#\n#.......#\n#...p...#\n#########\n\n\nmessage Level 2 von 5 [ von Microban ]\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\nmessage Level 3 von 5\n\n#########\n#.......#\n#..o.o..#\n#.......#\n##.###.##\n#.......#\n#.*.p.*.#\n#...#...#\n#########\n\nmessage Level 4 von 5\n\n########\n#o.....#\n#p**...#\n##.....#\n.##....#\n..##...#\n...##..#\n....##o#\n.....###\n\nmessage Level 5 von 5\n\n\n#########\n#.......#\n#.....#.#\n#.......#\n#.....###\n#..**.oo#\n#....####\n#.p..#...\n######...\n\n\nmessage Herzlichen Glückwunsch!\n\n\n12345\n67890\n-=qwe\nrtyui\nzxasd\n\n\n(\n\n\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n#############\n#......##...#\n#...**..p.#.#\n#.....#oo...#\n#.....#######\n#######......\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#OOO...#\n#...########\n#####.......\n\n#########\n#.......#\n#..o.o..#\n#.......#\n##.###.##\n#.......#\n#.......#\n#.......#\n#.*.p.*.#\n#...#...#\n#########\n\n..#####..\n..#...#..\n..#.o.#..\n..#...#..\n####.####\n#.......#\n#...*...#\n#.......#\n#.......#\n#...p...#\n#########\n\n\n#######\n#.....#\n#.o.o.#\n#.....#\n##.#.##\n#.....#\n#.*.*.#\n#..p..#\n#######\n\n)\n", [3, 0, 0, 1, 1, 1, 0, 1, 2, 3, 2, 3], "background:0,background wall wall_down wall_right:1,background wall wall_down wall_up:2,2,2,background wall wall_right wall_up:3,0,background wall wall_left wall_right:4,0,\n0,0,4,1,background wall wall_left wall_up:5,0,background wall:6,background target:7,4,\n4,0,0,0,background crate:8,4,4,0,0,\nbackground player player_right_o:9,7,4,background wall wall_down wall_left:10,3,0,background wall wall_down:11,2,background wall wall_left wall_right wall_up:12,\n0,4,0,8,0,4,0,4,0,\n0,0,4,0,10,2,2,2,5,\n", 3, "1627893180878.8218"] ], [ - "Legend of Swixero", - ["title Legend of Swixero\nauthor increpare\nhomepage www.increpare.com\ncolor_palette c64\nbackground_color darkblue\ntext_color green\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\ndarkgreen darkblue\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\ngreen\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ngray darkgray\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nred pink White Blue\n.000.\n01110\n22222\n.333.\n.3.3.\n\ndead\n#ff0000\n..0..\n0....\n...0.\n.....\n.0...\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\nflipped\ntransparent\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\nsfx1 26528702 (dead)\nsfx2 19029907 (flip)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ndead\nflipped\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n[ > Crate | Target no Crate ] -> [ > Crate | Target no Crate flipped] sfx2\n\nlate [ flipped] [ player target no flipped] -> [flipped] [ dead crate flipped] sfx1\nlate [flipped] [crate no target no flipped] -> [flipped] [target flipped]\nlate [flipped] [target no crate no flipped] -> [flipped] [crate flipped]\nlate [ flipped]->[]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage level 1 of 5\n(OK)\n######\n#.O###\n#..###\n#@P..#\n#..*.#\n#..###\n######\n\n(EZ)\n(can remove)(\n#######\n#....##\n#p**..#\n##..o.# \n###.o.#\n####..#\n#######)\n\n\n(ezish)\n(can remove)(\n###########\n#####.o...#\n#####.o.#.#\n#####.o.#.#\n#.p.*.*.*.#\n#.#.#.#.###\n#.......###\n###########)\n(\n###########\n#######o..#\n#######.#.#\n#######o#.#\n#.p.*.*o*.#\n#.#.#.#.###\n#.......###\n###########\n\n###########\n#######o..#\n#######.#.#\n#######...#\n##p.*.*o*.#\n###...#.###\n#...#.o.###\n###########\n)\n\nmessage level 2 of 5\n(INTERMEDIATE)\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\nmessage level 3 of 5\n(EASY/FUN)\n(keep it)\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n\n(fine)(\n#######\n##...##\n#.***.#\n#..p..#\n#.ooo.#\n##...##\n#######)\n\n\nmessage level 4 of 5\n(intermediate hard)\n(meh remove?)\n(#########\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########)\n\n(nice ideer)\n###########\n####.#.####\n####.#.####\n#.*.@.@.*.#\n#.#.....#.#\n#.o..p..o.#\n###########\n\n(zu schweirig)\n(#########\n####.####\n####.####\n#.*.@p*.#\n#.#...#.#\n#.o.@.o.#\n####.####\n####.####\n#########)\n\nmessage level 5 of 5\n(HARD)\n############\n#....###...#\n#.**.....#p#\n#.*.#ooo...#\n#...#...####\n############\n\n\n\nmessage congratulations!\n\n",[1,0,2,3,3,1,1,0,3,0,3,0,3,0,1,2,3,2,2,2,1,1,0,0,3],"background wall:0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,1,\n1,0,0,1,background crate:2,background target:3,background crate target:4,\n1,1,0,0,1,4,4,\n1,1,1,0,0,1,1,\n1,background player:5,4,1,0,0,1,\n1,1,4,1,1,0,0,\n0,0,0,0,0,0,0,\n",5,"1627893213826.6091"] + "Legend of Swixero", + ["title Legend of Swixero\nauthor increpare\nhomepage www.increpare.com\ncolor_palette c64\nbackground_color darkblue\ntext_color green\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\ndarkgreen darkblue\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\ngreen\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ngray darkgray\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nred pink White Blue\n.000.\n01110\n22222\n.333.\n.3.3.\n\ndead\n#ff0000\n..0..\n0....\n...0.\n.....\n.0...\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\nflipped\ntransparent\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\nsfx1 26528702 (dead)\nsfx2 19029907 (flip)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ndead\nflipped\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n[ > Crate | Target no Crate ] -> [ > Crate | Target no Crate flipped] sfx2\n\nlate [ flipped] [ player target no flipped] -> [flipped] [ dead crate flipped] sfx1\nlate [flipped] [crate no target no flipped] -> [flipped] [target flipped]\nlate [flipped] [target no crate no flipped] -> [flipped] [crate flipped]\nlate [ flipped]->[]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage level 1 of 5\n(OK)\n######\n#.O###\n#..###\n#@P..#\n#..*.#\n#..###\n######\n\n(EZ)\n(can remove)(\n#######\n#....##\n#p**..#\n##..o.# \n###.o.#\n####..#\n#######)\n\n\n(ezish)\n(can remove)(\n###########\n#####.o...#\n#####.o.#.#\n#####.o.#.#\n#.p.*.*.*.#\n#.#.#.#.###\n#.......###\n###########)\n(\n###########\n#######o..#\n#######.#.#\n#######o#.#\n#.p.*.*o*.#\n#.#.#.#.###\n#.......###\n###########\n\n###########\n#######o..#\n#######.#.#\n#######...#\n##p.*.*o*.#\n###...#.###\n#...#.o.###\n###########\n)\n\nmessage level 2 of 5\n(INTERMEDIATE)\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\nmessage level 3 of 5\n(EASY/FUN)\n(keep it)\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n\n(fine)(\n#######\n##...##\n#.***.#\n#..p..#\n#.ooo.#\n##...##\n#######)\n\n\nmessage level 4 of 5\n(intermediate hard)\n(meh remove?)\n(#########\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########)\n\n(nice ideer)\n###########\n####.#.####\n####.#.####\n#.*.@.@.*.#\n#.#.....#.#\n#.o..p..o.#\n###########\n\n(zu schweirig)\n(#########\n####.####\n####.####\n#.*.@p*.#\n#.#...#.#\n#.o.@.o.#\n####.####\n####.####\n#########)\n\nmessage level 5 of 5\n(HARD)\n############\n#....###...#\n#.**.....#p#\n#.*.#ooo...#\n#...#...####\n############\n\n\n\nmessage congratulations!\n\n", [1, 0, 2, 3, 3, 1, 1, 0, 3, 0, 3, 0, 3, 0, 1, 2, 3, 2, 2, 2, 1, 1, 0, 0, 3], "background wall:0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,1,\n1,0,0,1,background crate:2,background target:3,background crate target:4,\n1,1,0,0,1,4,4,\n1,1,1,0,0,1,1,\n1,background player:5,4,1,0,0,1,\n1,1,4,1,1,0,0,\n0,0,0,0,0,0,0,\n", 5, "1627893213826.6091"] ], [ - "Xorro The Chaos Warden", - ["title Xorro The Chaos Warden\nauthor increpare\nhomepage www.increpare.com\ncolor_palette 4\nbackground_color black\ntext_color lightgreen\n\n\n\n========\nOBJECTS\n========\n\nBackground\ndarkblue darkblue\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\n#5555aa\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ntransparent #880000\n00100\n00100\n11111\n00100\n00100\n\nPlayer\nlightgreen brown green green\n.0000\n0111.\n22222\n.333.\n.3.3.\n\ndead\n#ff0000\n..0..\n0....\n...0.\n.....\n.0...\n\nCrate\nbrown Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\nflippedh\ntransparent\n\nflippedv\ntransparent\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\nsfx1 26528702 (dead)\nsfx2 19029907 (flip)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer Crate\nTarget\nWall\ndead\nflippedh,flippedv\n\n======\nRULES\n======\n\n[ > player | wall ] -> cancel\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Player | Crate | Crate ] -> cancel\n\n([ > crate | wall] ->cancel)\n([ > crate wall] ->cancel)\n\nvertical [ > Crate | Target no Crate no wall ] -> [ | crate Target flippedh wall] sfx2\nhorizontal [ > Crate | Target no Crate no wall ] -> [ | crate Target flippedv wall] sfx2\n\nvertical [ > Crate | Target no Crate wall ] -> [ | crate Target flippedh no wall] sfx2\nhorizontal [ > Crate | Target no Crate wall ] -> [ | crate Target flippedv no wall] sfx2\n\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\n\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\n\n\nlate [flippedh]->[]\nlate [flippedv]->[]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage level 1 of 4\n\n(option. unconvinced)\n######\n#..#o#\n#.*#.#\n#p*.##\n#..o.#\n######\n\nmessage level 2 of 4\n(decent)\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n\nmessage level 3 of 4\n(hardish)\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n\nmessage level 4 of 4\n...........\n.....o.....\n.*o..###o*.\n..####.#...\n..#.*.*#...\n.o##.#.##o.\n...#*.*.#..\n...#.####..\n.*o###..o*.\n.....o.....\n.....p.....\n\nmessage Congratulations! Not only did you solve all the puzzles, but you did it while preserving order!\n\n",[1,2,1,0,1,2,3,3,1,0,0,3],"background:0,0,0,background wall:1,1,1,1,1,\n1,1,1,0,0,1,1,0,\nbackground crate:2,0,0,0,1,1,0,background target:3,\n0,3,0,1,1,0,background player:4,0,\n0,0,1,1,0,background crate target:5,2,5,\n0,1,1,0,0,0,0,0,\n1,1,1,1,1,1,1,1,\n",3,"1627893230650.995"] + "Xorro The Chaos Warden", + ["title Xorro The Chaos Warden\nauthor increpare\nhomepage www.increpare.com\ncolor_palette 4\nbackground_color black\ntext_color lightgreen\n\n\n\n========\nOBJECTS\n========\n\nBackground\ndarkblue darkblue\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\n#5555aa\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ntransparent #880000\n00100\n00100\n11111\n00100\n00100\n\nPlayer\nlightgreen brown green green\n.0000\n0111.\n22222\n.333.\n.3.3.\n\ndead\n#ff0000\n..0..\n0....\n...0.\n.....\n.0...\n\nCrate\nbrown Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\nflippedh\ntransparent\n\nflippedv\ntransparent\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\nsfx1 26528702 (dead)\nsfx2 19029907 (flip)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer Crate\nTarget\nWall\ndead\nflippedh,flippedv\n\n======\nRULES\n======\n\n[ > player | wall ] -> cancel\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Player | Crate | Crate ] -> cancel\n\n([ > crate | wall] ->cancel)\n([ > crate wall] ->cancel)\n\nvertical [ > Crate | Target no Crate no wall ] -> [ | crate Target flippedh wall] sfx2\nhorizontal [ > Crate | Target no Crate no wall ] -> [ | crate Target flippedv wall] sfx2\n\nvertical [ > Crate | Target no Crate wall ] -> [ | crate Target flippedh no wall] sfx2\nhorizontal [ > Crate | Target no Crate wall ] -> [ | crate Target flippedv no wall] sfx2\n\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\n\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\n\n\nlate [flippedh]->[]\nlate [flippedv]->[]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage level 1 of 4\n\n(option. unconvinced)\n######\n#..#o#\n#.*#.#\n#p*.##\n#..o.#\n######\n\nmessage level 2 of 4\n(decent)\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n\nmessage level 3 of 4\n(hardish)\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n\nmessage level 4 of 4\n...........\n.....o.....\n.*o..###o*.\n..####.#...\n..#.*.*#...\n.o##.#.##o.\n...#*.*.#..\n...#.####..\n.*o###..o*.\n.....o.....\n.....p.....\n\nmessage Congratulations! Not only did you solve all the puzzles, but you did it while preserving order!\n\n", [1, 2, 1, 0, 1, 2, 3, 3, 1, 0, 0, 3], "background:0,0,0,background wall:1,1,1,1,1,\n1,1,1,0,0,1,1,0,\nbackground crate:2,0,0,0,1,1,0,background target:3,\n0,3,0,1,1,0,background player:4,0,\n0,0,1,1,0,background crate target:5,2,5,\n0,1,1,0,0,0,0,0,\n1,1,1,1,1,1,1,1,\n", 3, "1627893230650.995"] ], [ - "Put the logs in the water, elephant!", - ["title Put the logs in the water, elephant! \nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #222034\ntext_color #cbdbfc\n\nnorepeat_action\n\n(thanks to pancelor + salty_horse for some good suggestions)\n\n========\nOBJECTS\n========\n\nelephantA_1 1\n#1f2f8d #5b6ee1 #cbdbfc\n.0000\n01111\n01111\n01111\n01111\n\nelephantA_2 2\n#1f2f8d #5b6ee1 #cbdbfc\n00000\n11111\n11111\n11111\n11111\n\nelephantA_3 3\n#1f2f8d #5b6ee1 #cbdbfc\n000..\n1110.\n11110\n11110\n11110\n\nelephantA_4 4\n#1f2f8d #5b6ee1 #cbdbfc\n11110\n01111\n11111\n11111\n00000\n\nelephantA_5 5\n#1f2f8d #5b6ee1 #cbdbfc\n11110\n11110\n11110\n11110\n21110\n\n\nelephantA_6 6\n#1f2f8d #5b6ee1 #cbdbfc\n01111\n01111\n01111\n01110\n01110\n\n \nelephantA_7 7\n#1f2f8d #5b6ee1 #cbdbfc\n11111\n11111\n11111\n11111\n00000\n\n\nelephantA_8 8\n#1f2f8d #5b6ee1 #cbdbfc\n11110\n11110\n11110\n01110\n01110\n\nelephantA_9 9\n#1f2f8d #5b6ee1 #cbdbfc\n02110\n01210\n01110\n01110\n01110\n\n\nelephantA_10 0\n#1f2f8d #5b6ee1 #cbdbfc\n01110\n01110\n00000\n01110\n00000\n\n\nelephantA_11 a\n#1f2f8d #5b6ee1 #cbdbfc\n01110\n01110\n01110\n01110\n.000.\n\n\nelephantA_12 s\n#1f2f8d #5b6ee1 #cbdbfc\n01110\n10001\n11111\n11111\n11111\n\nelephantB_11A\n#1f2f8d #5b6ee1 #cbdbfc\n..000\n.0110\n.0111\n.0111\n..000\n\nelephantB_11B\n#1f2f8d #5b6ee1 #cbdbfc\n01110\n01110\n11110\n1110.\n000..\n\nwater\n#45acc1 #57c8e0\n00000\n01000\n00000\n00010\n00000\n\n\nbackground\n#9badb7\n\nwall\n#323c39 #847e87\n00000\n01110\n01110\n01110\n00000\n(\nlog\n#450062 #6f238c #fc76d2\n.111.\n01121\n01111\n01111\n.000.\n)\nlog\n#482b08 #b4711f #f4a84b\n.000.\n01110\n01210\n01110\n.000.\n\nairlog\n#482b08 #b4711f #f4a84b\n.000.\n01110\n01210\n01110\n.000.\n\noob\ntransparent\n\n=======\nLEGEND\n=======\nelephant = elephantA_1 or elephantA_2 or elephantA_3 or elephantA_4 or elephantA_5 or elephantA_6 or elephantA_7 or elephantA_8 or elephantA_9 or elephantA_10 or elephantA_11 or elephantA_12 or elephantB_11A or elephantB_11B or airlog\nplayer = elephant\nobstacle= wall or log\nsolid = obstacle or player\n\n. = Background\n# = Wall\nP = Player\n* = log\n, = water\n; = oob\n@ = log and water\n\nanything = elephant or wall or player or log or water or oob\n=======\nSOUNDS\n=======\n\nsfx0 65393704 (cancel)\nsfx1 80573305 (pickup)\nsfx2 94577706 (drop)\n\nendlevel 31237103\nlog move 66615107\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nwater\nWall, log\nelephant, airlog\noob\n\n======\nRULES\n======\n\n\n\n[ > elephant | log ] -> [ > elephant | > log ]\n[ > log | log ] -> [ > log | > log ]\n\n[ > log | wall ]->cancel\n\n(suck up log if retracting trunk)\ndown [ action elephantA_4 | no log | log ] -> [ action elephantA_4 | airlog | ] sfx1\ndown [ action elephantA_4 | log | no log ] -> [ action elephantA_4 | airlog | ] sfx1\n(cancel retraction if overlaps)\nright [ action elephantA_4 ] [ log | elephantA_11 ] -> cancel sfx0\n\n(retract trunk)\nright [ action elephantA_4 ] [ | elephantA_11 ] -> [ elephantA_4 ] [ elephantB_11A | elephantB_11B ]\n\n(extend trunk)\nright [ action elephantA_4 ] [ elephantB_11A | elephantB_11B ] -> [ action elephantA_4 ] [ | elephantA_11 ]\n(drop log if extending trunk)\ndown [ action elephantA_4 | airlog | no obstacle ] -> [ elephantA_4 | | log ] sfx2\ndown [ action elephantA_4 | airlog | obstacle ] -> cancel sfx0\n\n( late [elephantA_10 water ] -> cancel )\nlate [elephantA_10 log]->cancel\n[> elephantA_10 | wall]->cancel\n\n==============\nWINCONDITIONS\n==============\nall water on log\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 8\n\n.....................\n.....................\n..#################..\n..#.........#.....#..\n..#.....123.#..,..#..\n..#...12s45.#.....#..\n..#...678.9.##.#.##..\n..#.*.0.0.a.......#..\n..#...............#..\n..#################..\n.....................\n.....................\n\nmessage What a good elephant!\n\nmessage level 2 of 8\n\n...............\n...............\n..........###..\n..#########,#..\n..#.........#..\n..#...123..##..\n..#.12s45..#...\n..#.678.9..#...\n..#.0.0.a*.#...\n..#........#...\n..##########...\n...............\n...............\n\nmessage I'm so proud of you elephant!\n\nmessage level 3 of 8\n\n................\n................\n..############..\n..#,.........#..\n..#########..#..\n...#.........#..\n...#...123...#..\n...#.12s45...#..\n...#.678.9.*.#..\n...#.0.0.a...#..\n...#.........#..\n...###########..\n................\n................\n\n(I don't like this level\n.................\n.................\n###############..\n#.............#..\n#.............#..\n#..123........#..\n#12s45***.....#..\n#678.9###.....#..\n#0.0.a,,,.....#..\n###############..)\n\n\nmessage How did you ever think of doing that, elephant?!\n\nmessage level 4 of 8\n\n...................\n...................\n..###############..\n..#.........#...#..\n..#...123.#...#.#..\n..#.12s45...#...#..\n..#.678.9.*.#...#..\n..#.0.0.a...#...#..\n..#.........#...#..\n..##.#.######.,.#..\n..#.............#..\n..###############..\n...................\n...................\n\nmessage I was not expecting that. Splendid work, elephant!\n\nmessage level 5 of 8\n\n...................\n...................\n..###############..\n..#..123........#..\n..#12s45........#..\n..#678.9........#..\n..#0.0.a*.*.....#..\n..#..#..###..#..#..\n..#.....,.,.....#..\n..###############..\n...................\n...................\n\n\nmessage How did you ever think of doing that, elephant?!\n\n\nmessage level 6 of 8\n\n(Difficulty 5843 I'm ok with this level - nice cyclish - recommend to include)\n...;;;;;;;;\n...;;;;;;;;\n..#######;;\n..#...,.#;;\n..#..123#;;\n..#12s45#;;\n..#678,9#;;\n..#0*0*a#;;\n..#.....#;;\n..#######;;\n...;;;;;;;;\n...;;;;;;;;\n\n\n\nmessage You really helped us out of a tight spot. Thanks, elephant!\n\n\nmessage level 7 of 8\n\n......................\n......................\n..##################..\n..#............#...#..\n..#...123....#.....#..\n..#.12s45......#...#..\n..#.678.9.*.#..#...#..\n..#.0.0.a......#...#..\n..#..........#.....#..\n..##.#.#########.,.#..\n..#................#..\n..#########........#..\n..........#........#..\n..........#........#..\n..........##########..\n......................\n......................\n\nmessage You're one dextrous elephant!\n\nmessage level 8 of 8\n\n;;;;;;;;;;;\n;;;;;;;;;;;\n;;#######;;\n;;#,....#;;\n;;#.*123#;;\n;;#12s45#;;\n;;#678#9#;;\n;;#0,0.a#;;\n;;#...*.#;;\n;;#######;;\n;;;;;;;;;;;\n;;;;;;;;;;;\n\nmessage Congratulations! You are the best elephant. And that's saying a lot!\n\n(\n(LEVELCAT:pleasing to solve)\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#,.123#;\n#12s45#;\n#678*9#;\n#0*0,a#;\n#.*..,#;\n#######;\n\n\n\n(kinda nice but no)\n;;;;;;;;\n;;;;;;;;\n#######;\n#..123#;\n#12s45#;\n#678@9#;\n#0*0@a#;\n#@@,@@#;\n#######;\n\n(sovling this level I just felt i missed something stupid)\n;;;;;;;;\n;;;;;;;;\n#######;\n#,.123#;\n#12s45#;\n#678@9#;\n#0.0*a#;\n#.....#;\n#######;\n\n(meh)\n;;;;;;;;\n;;;;;;;;\n#######;\n#.,123#;\n#12s45#;\n#678*9#;\n#0*0,a#;\n#.....#;\n#######;\n\n\n\n;;;;;;;;;;\n;;;;;;;;;;\n;#######;;\n##.....##;\n#...123.#;\n#.12s45.#;\n#.678.9.#;\n#.0.0.a.#;\n##.....##;\n;#######;;\n\n\n;;;;;;;;;\n;;;;;;;;;\n########;\n#...123#;\n#.12s45#;\n#.678.9#;\n#.0.0.a#;\n##.....#;\n;#######;\n\n;;;;;;;;;\n;;;;;;;;;\n########.\n#..123.#.\n#12s45.#.\n#678.9.#.\n#0.0.a.#.\n########.\n\n\n;;;;;;;;;\n;;;;;;;;;\n########.\n#...123#.\n#.12s45#.\n#.678.9#.\n#.0.0.a#.\n########.\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#.....#;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#######;\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#.....#;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#.....#;\n#######;\n\n(kinda like this level, needs to to be dextrous - next level better though)\n;;;;;;;;\n;;;;;;;;\n#######;\n#.,...#;\n#..123#;\n#12s45#;\n#678#9#;\n#0@0.a#;\n#....*#;\n#######;\n\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#.....#;\n#######;\n\n(difficulty 24828)\n\n.;;;;;;;\n.;;;;;;;\n#######;\n#..,..#;\n#..123#;\n#12s45#;\n#678*9#;\n#0.0,a#;\n#....*#;\n#######;\n\n\n(Difficulty 5843)\n.;;;;;;;\n.;;;;;;;\n#######;\n#...,.#;\n#..123#;\n#12s45#;\n#678,9#;\n#0*0*a#;\n#.....#;\n#######;\n\n\n\n(Difficulty 5843 I'm ok with this level - nice cyclish)\n.;;;;;;;\n.;;;;;;;\n#######;\n#...,.#;\n#..123#;\n#12s45#;\n#678,9#;\n#0*0*a#;\n#.....#;\n#######;\n\n\n(not as hard as other ones of this kind, but I was agble to solve it ^^ and it's not so bad? maybe not conceptual enough)\n.;;;;;;;\n.;;;;;;;\n#######;\n#...,.#;\n#.,123#;\n#12s45#;\n#678.9#;\n#0*0*a#;\n#.....#;\n#######;\n\n\n\n(difficulty ~5k - a bit too tricky?)\n.;;;;;;;\n.;;;;;;;\n#######;\n#.,...#;\n#,.123#;\n#12s45#;\n#678*9#;\n#0.0*a#;\n#.....#;\n#######;\n\n\n(silly + not hard, but maybe ok for a final level?)\n;;;;;;;;\n;;;;;;;;\n#######;\n#,*123#;\n#12s45#;\n#678@9#;\n#0@0.a#;\n#######;\n\n\n.;;;;;;;\n.;;;;;;;\n#######;\n#...,.#;\n#.,123#;\n#12s45#;\n#678.9#;\n#0*0*a#;\n#.....#;\n#######;\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#.....#;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#.....#;\n#######;\n\n;;;;;;;;;;\n;;;;;;;;;;\n#########;\n#.......#;\n#...123.#;\n#.12s45.#;\n#.678.9.#;\n#.0.0.a.#;\n#.......#;\n#########;\n\n\n(mildly satisfying but easy?)\n;;;;;;;;;;\n;;;;;;;;;;\n#########;\n#..#...##;\n##.#123,#;\n#.12s45##;\n#.678,9.#;\n#.0*0.a.#;\n#....*..#;\n#########;\n\n(kinda a nice trick but...also not so interesting)\n;;;;;;;;;\n;;;;;;;;;\n########;\n#,.....#;\n#,.123.#;\n#12s45.#;\n#678*9.#;\n#0*0.a.#;\n########;\n\n\n;;;;;;;;;;\n;;;;;;;;;;\n#########;\n#...123.#;\n#.12s45.#;\n#.678.9.#;\n#.0.0.a.#;\n#########;\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#######;\n\n\n;;;;;;;;\n;;;;;;;;\n;;#####;\n###123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#######;\n\n\n;;;;;;;;\n;;;;;;;;\n;;#####;\n###123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#######;\n\n\n;;;;;;;;;;\n;;;;;;;;;;\n#########;\n#.......#;\n#...123.#;\n#.12s45.#;\n#.678.9.#;\n#.0.0.a.#;\n#.......#;\n#########;\n\n;;;;;;;;;;;;;;;;;;\n;;;;;;;;;;;;;;;;;;\n#################;\n#.....123.......#;\n#...12s45.......#;\n#...678.9.......#;\n#...0.0.a.......#;\n#################;\n\n;;;;;;;;;;;;;;;;;;\n;;;;;;;;;;;;;;;;;;\n#################;\n#...............#;\n#.....123.......#;\n#...12s45.......#;\n#...678.9.......#;\n#...0.0.a.......#;\n#...............#;\n#################;\n\n.....................\n.....................\n..#################..\n..#.........#.....#..\n..#.....123.#..,..#..\n..#...12s45.#.....#..\n..#...678.9.##.#.##..\n..#.*.0.0.a.......#..\n..#...............#..\n..#################..\n.....................\n.....................\n)\n\n",[2,3,0,0,0,3,2,1,2,0,3,3,2,4,1,0,3,3,3,3,2,3,3,3,3,2,2,0,0,0,1,0,0,3,3,4,0,4,0,1,1,2,3,2,3],"background: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,background wall:1,1,1,1,1,1,1,1,\n1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,\n0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,\n0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,\n0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,\n0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,\n0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,\n0,0,0,1,0,1,1,1,1,0,0,0,0,1,background elephanta_1:2,background elephanta_6:3,background elephanta_10:4,0,0,0,1,0,\n0,0,0,1,0,0,0,0,1,background elephanta_2:5,background elephanta_7:6,0,1,0,0,1,0,0,0,0,1,0,\n0,0,0,background elephanta_1 wall:7,background elephanta_12:8,background elephanta_8 wall:9,4,0,0,1,1,0,0,0,0,1,0,0,0,0,background elephanta_2 wall:10,background elephanta_4:11,\n0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,background elephanta_3 wall:12,background elephanta_5 wall:13,background elephanta_9:14,background elephanta_11 wall:15,1,1,0,\n1,0,0,0,0,1,0,0,0,0,1,0,background log:16,0,0,0,0,0,0,0,0,0,\n1,0,0,0,0,1,0,0,0,0,0,0,background water:17,0,0,0,0,1,0,0,0,0,\n1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,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,\n",19,"1627893532893.2812"] + "Put the logs in the water, elephant!", + ["title Put the logs in the water, elephant! \nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #222034\ntext_color #cbdbfc\n\nnorepeat_action\n\n(thanks to pancelor + salty_horse for some good suggestions)\n\n========\nOBJECTS\n========\n\nelephantA_1 1\n#1f2f8d #5b6ee1 #cbdbfc\n.0000\n01111\n01111\n01111\n01111\n\nelephantA_2 2\n#1f2f8d #5b6ee1 #cbdbfc\n00000\n11111\n11111\n11111\n11111\n\nelephantA_3 3\n#1f2f8d #5b6ee1 #cbdbfc\n000..\n1110.\n11110\n11110\n11110\n\nelephantA_4 4\n#1f2f8d #5b6ee1 #cbdbfc\n11110\n01111\n11111\n11111\n00000\n\nelephantA_5 5\n#1f2f8d #5b6ee1 #cbdbfc\n11110\n11110\n11110\n11110\n21110\n\n\nelephantA_6 6\n#1f2f8d #5b6ee1 #cbdbfc\n01111\n01111\n01111\n01110\n01110\n\n \nelephantA_7 7\n#1f2f8d #5b6ee1 #cbdbfc\n11111\n11111\n11111\n11111\n00000\n\n\nelephantA_8 8\n#1f2f8d #5b6ee1 #cbdbfc\n11110\n11110\n11110\n01110\n01110\n\nelephantA_9 9\n#1f2f8d #5b6ee1 #cbdbfc\n02110\n01210\n01110\n01110\n01110\n\n\nelephantA_10 0\n#1f2f8d #5b6ee1 #cbdbfc\n01110\n01110\n00000\n01110\n00000\n\n\nelephantA_11 a\n#1f2f8d #5b6ee1 #cbdbfc\n01110\n01110\n01110\n01110\n.000.\n\n\nelephantA_12 s\n#1f2f8d #5b6ee1 #cbdbfc\n01110\n10001\n11111\n11111\n11111\n\nelephantB_11A\n#1f2f8d #5b6ee1 #cbdbfc\n..000\n.0110\n.0111\n.0111\n..000\n\nelephantB_11B\n#1f2f8d #5b6ee1 #cbdbfc\n01110\n01110\n11110\n1110.\n000..\n\nwater\n#45acc1 #57c8e0\n00000\n01000\n00000\n00010\n00000\n\n\nbackground\n#9badb7\n\nwall\n#323c39 #847e87\n00000\n01110\n01110\n01110\n00000\n(\nlog\n#450062 #6f238c #fc76d2\n.111.\n01121\n01111\n01111\n.000.\n)\nlog\n#482b08 #b4711f #f4a84b\n.000.\n01110\n01210\n01110\n.000.\n\nairlog\n#482b08 #b4711f #f4a84b\n.000.\n01110\n01210\n01110\n.000.\n\noob\ntransparent\n\n=======\nLEGEND\n=======\nelephant = elephantA_1 or elephantA_2 or elephantA_3 or elephantA_4 or elephantA_5 or elephantA_6 or elephantA_7 or elephantA_8 or elephantA_9 or elephantA_10 or elephantA_11 or elephantA_12 or elephantB_11A or elephantB_11B or airlog\nplayer = elephant\nobstacle= wall or log\nsolid = obstacle or player\n\n. = Background\n# = Wall\nP = Player\n* = log\n, = water\n; = oob\n@ = log and water\n\nanything = elephant or wall or player or log or water or oob\n=======\nSOUNDS\n=======\n\nsfx0 65393704 (cancel)\nsfx1 80573305 (pickup)\nsfx2 94577706 (drop)\n\nendlevel 31237103\nlog move 66615107\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nwater\nWall, log\nelephant, airlog\noob\n\n======\nRULES\n======\n\n\n\n[ > elephant | log ] -> [ > elephant | > log ]\n[ > log | log ] -> [ > log | > log ]\n\n[ > log | wall ]->cancel\n\n(suck up log if retracting trunk)\ndown [ action elephantA_4 | no log | log ] -> [ action elephantA_4 | airlog | ] sfx1\ndown [ action elephantA_4 | log | no log ] -> [ action elephantA_4 | airlog | ] sfx1\n(cancel retraction if overlaps)\nright [ action elephantA_4 ] [ log | elephantA_11 ] -> cancel sfx0\n\n(retract trunk)\nright [ action elephantA_4 ] [ | elephantA_11 ] -> [ elephantA_4 ] [ elephantB_11A | elephantB_11B ]\n\n(extend trunk)\nright [ action elephantA_4 ] [ elephantB_11A | elephantB_11B ] -> [ action elephantA_4 ] [ | elephantA_11 ]\n(drop log if extending trunk)\ndown [ action elephantA_4 | airlog | no obstacle ] -> [ elephantA_4 | | log ] sfx2\ndown [ action elephantA_4 | airlog | obstacle ] -> cancel sfx0\n\n( late [elephantA_10 water ] -> cancel )\nlate [elephantA_10 log]->cancel\n[> elephantA_10 | wall]->cancel\n\n==============\nWINCONDITIONS\n==============\nall water on log\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 8\n\n.....................\n.....................\n..#################..\n..#.........#.....#..\n..#.....123.#..,..#..\n..#...12s45.#.....#..\n..#...678.9.##.#.##..\n..#.*.0.0.a.......#..\n..#...............#..\n..#################..\n.....................\n.....................\n\nmessage What a good elephant!\n\nmessage level 2 of 8\n\n...............\n...............\n..........###..\n..#########,#..\n..#.........#..\n..#...123..##..\n..#.12s45..#...\n..#.678.9..#...\n..#.0.0.a*.#...\n..#........#...\n..##########...\n...............\n...............\n\nmessage I'm so proud of you elephant!\n\nmessage level 3 of 8\n\n................\n................\n..############..\n..#,.........#..\n..#########..#..\n...#.........#..\n...#...123...#..\n...#.12s45...#..\n...#.678.9.*.#..\n...#.0.0.a...#..\n...#.........#..\n...###########..\n................\n................\n\n(I don't like this level\n.................\n.................\n###############..\n#.............#..\n#.............#..\n#..123........#..\n#12s45***.....#..\n#678.9###.....#..\n#0.0.a,,,.....#..\n###############..)\n\n\nmessage How did you ever think of doing that, elephant?!\n\nmessage level 4 of 8\n\n...................\n...................\n..###############..\n..#.........#...#..\n..#...123.#...#.#..\n..#.12s45...#...#..\n..#.678.9.*.#...#..\n..#.0.0.a...#...#..\n..#.........#...#..\n..##.#.######.,.#..\n..#.............#..\n..###############..\n...................\n...................\n\nmessage I was not expecting that. Splendid work, elephant!\n\nmessage level 5 of 8\n\n...................\n...................\n..###############..\n..#..123........#..\n..#12s45........#..\n..#678.9........#..\n..#0.0.a*.*.....#..\n..#..#..###..#..#..\n..#.....,.,.....#..\n..###############..\n...................\n...................\n\n\nmessage How did you ever think of doing that, elephant?!\n\n\nmessage level 6 of 8\n\n(Difficulty 5843 I'm ok with this level - nice cyclish - recommend to include)\n...;;;;;;;;\n...;;;;;;;;\n..#######;;\n..#...,.#;;\n..#..123#;;\n..#12s45#;;\n..#678,9#;;\n..#0*0*a#;;\n..#.....#;;\n..#######;;\n...;;;;;;;;\n...;;;;;;;;\n\n\n\nmessage You really helped us out of a tight spot. Thanks, elephant!\n\n\nmessage level 7 of 8\n\n......................\n......................\n..##################..\n..#............#...#..\n..#...123....#.....#..\n..#.12s45......#...#..\n..#.678.9.*.#..#...#..\n..#.0.0.a......#...#..\n..#..........#.....#..\n..##.#.#########.,.#..\n..#................#..\n..#########........#..\n..........#........#..\n..........#........#..\n..........##########..\n......................\n......................\n\nmessage You're one dextrous elephant!\n\nmessage level 8 of 8\n\n;;;;;;;;;;;\n;;;;;;;;;;;\n;;#######;;\n;;#,....#;;\n;;#.*123#;;\n;;#12s45#;;\n;;#678#9#;;\n;;#0,0.a#;;\n;;#...*.#;;\n;;#######;;\n;;;;;;;;;;;\n;;;;;;;;;;;\n\nmessage Congratulations! You are the best elephant. And that's saying a lot!\n\n(\n(LEVELCAT:pleasing to solve)\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#,.123#;\n#12s45#;\n#678*9#;\n#0*0,a#;\n#.*..,#;\n#######;\n\n\n\n(kinda nice but no)\n;;;;;;;;\n;;;;;;;;\n#######;\n#..123#;\n#12s45#;\n#678@9#;\n#0*0@a#;\n#@@,@@#;\n#######;\n\n(sovling this level I just felt i missed something stupid)\n;;;;;;;;\n;;;;;;;;\n#######;\n#,.123#;\n#12s45#;\n#678@9#;\n#0.0*a#;\n#.....#;\n#######;\n\n(meh)\n;;;;;;;;\n;;;;;;;;\n#######;\n#.,123#;\n#12s45#;\n#678*9#;\n#0*0,a#;\n#.....#;\n#######;\n\n\n\n;;;;;;;;;;\n;;;;;;;;;;\n;#######;;\n##.....##;\n#...123.#;\n#.12s45.#;\n#.678.9.#;\n#.0.0.a.#;\n##.....##;\n;#######;;\n\n\n;;;;;;;;;\n;;;;;;;;;\n########;\n#...123#;\n#.12s45#;\n#.678.9#;\n#.0.0.a#;\n##.....#;\n;#######;\n\n;;;;;;;;;\n;;;;;;;;;\n########.\n#..123.#.\n#12s45.#.\n#678.9.#.\n#0.0.a.#.\n########.\n\n\n;;;;;;;;;\n;;;;;;;;;\n########.\n#...123#.\n#.12s45#.\n#.678.9#.\n#.0.0.a#.\n########.\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#.....#;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#######;\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#.....#;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#.....#;\n#######;\n\n(kinda like this level, needs to to be dextrous - next level better though)\n;;;;;;;;\n;;;;;;;;\n#######;\n#.,...#;\n#..123#;\n#12s45#;\n#678#9#;\n#0@0.a#;\n#....*#;\n#######;\n\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#.....#;\n#######;\n\n(difficulty 24828)\n\n.;;;;;;;\n.;;;;;;;\n#######;\n#..,..#;\n#..123#;\n#12s45#;\n#678*9#;\n#0.0,a#;\n#....*#;\n#######;\n\n\n(Difficulty 5843)\n.;;;;;;;\n.;;;;;;;\n#######;\n#...,.#;\n#..123#;\n#12s45#;\n#678,9#;\n#0*0*a#;\n#.....#;\n#######;\n\n\n\n(Difficulty 5843 I'm ok with this level - nice cyclish)\n.;;;;;;;\n.;;;;;;;\n#######;\n#...,.#;\n#..123#;\n#12s45#;\n#678,9#;\n#0*0*a#;\n#.....#;\n#######;\n\n\n(not as hard as other ones of this kind, but I was agble to solve it ^^ and it's not so bad? maybe not conceptual enough)\n.;;;;;;;\n.;;;;;;;\n#######;\n#...,.#;\n#.,123#;\n#12s45#;\n#678.9#;\n#0*0*a#;\n#.....#;\n#######;\n\n\n\n(difficulty ~5k - a bit too tricky?)\n.;;;;;;;\n.;;;;;;;\n#######;\n#.,...#;\n#,.123#;\n#12s45#;\n#678*9#;\n#0.0*a#;\n#.....#;\n#######;\n\n\n(silly + not hard, but maybe ok for a final level?)\n;;;;;;;;\n;;;;;;;;\n#######;\n#,*123#;\n#12s45#;\n#678@9#;\n#0@0.a#;\n#######;\n\n\n.;;;;;;;\n.;;;;;;;\n#######;\n#...,.#;\n#.,123#;\n#12s45#;\n#678.9#;\n#0*0*a#;\n#.....#;\n#######;\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#.....#;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#.....#;\n#######;\n\n;;;;;;;;;;\n;;;;;;;;;;\n#########;\n#.......#;\n#...123.#;\n#.12s45.#;\n#.678.9.#;\n#.0.0.a.#;\n#.......#;\n#########;\n\n\n(mildly satisfying but easy?)\n;;;;;;;;;;\n;;;;;;;;;;\n#########;\n#..#...##;\n##.#123,#;\n#.12s45##;\n#.678,9.#;\n#.0*0.a.#;\n#....*..#;\n#########;\n\n(kinda a nice trick but...also not so interesting)\n;;;;;;;;;\n;;;;;;;;;\n########;\n#,.....#;\n#,.123.#;\n#12s45.#;\n#678*9.#;\n#0*0.a.#;\n########;\n\n\n;;;;;;;;;;\n;;;;;;;;;;\n#########;\n#...123.#;\n#.12s45.#;\n#.678.9.#;\n#.0.0.a.#;\n#########;\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#######;\n\n\n;;;;;;;;\n;;;;;;;;\n;;#####;\n###123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#######;\n\n\n;;;;;;;;\n;;;;;;;;\n;;#####;\n###123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#######;\n\n\n;;;;;;;;;;\n;;;;;;;;;;\n#########;\n#.......#;\n#...123.#;\n#.12s45.#;\n#.678.9.#;\n#.0.0.a.#;\n#.......#;\n#########;\n\n;;;;;;;;;;;;;;;;;;\n;;;;;;;;;;;;;;;;;;\n#################;\n#.....123.......#;\n#...12s45.......#;\n#...678.9.......#;\n#...0.0.a.......#;\n#################;\n\n;;;;;;;;;;;;;;;;;;\n;;;;;;;;;;;;;;;;;;\n#################;\n#...............#;\n#.....123.......#;\n#...12s45.......#;\n#...678.9.......#;\n#...0.0.a.......#;\n#...............#;\n#################;\n\n.....................\n.....................\n..#################..\n..#.........#.....#..\n..#.....123.#..,..#..\n..#...12s45.#.....#..\n..#...678.9.##.#.##..\n..#.*.0.0.a.......#..\n..#...............#..\n..#################..\n.....................\n.....................\n)\n\n", [2, 3, 0, 0, 0, 3, 2, 1, 2, 0, 3, 3, 2, 4, 1, 0, 3, 3, 3, 3, 2, 3, 3, 3, 3, 2, 2, 0, 0, 0, 1, 0, 0, 3, 3, 4, 0, 4, 0, 1, 1, 2, 3, 2, 3], "background: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,background wall:1,1,1,1,1,1,1,1,\n1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,\n0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,\n0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,\n0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,\n0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,\n0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,\n0,0,0,1,0,1,1,1,1,0,0,0,0,1,background elephanta_1:2,background elephanta_6:3,background elephanta_10:4,0,0,0,1,0,\n0,0,0,1,0,0,0,0,1,background elephanta_2:5,background elephanta_7:6,0,1,0,0,1,0,0,0,0,1,0,\n0,0,0,background elephanta_1 wall:7,background elephanta_12:8,background elephanta_8 wall:9,4,0,0,1,1,0,0,0,0,1,0,0,0,0,background elephanta_2 wall:10,background elephanta_4:11,\n0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,background elephanta_3 wall:12,background elephanta_5 wall:13,background elephanta_9:14,background elephanta_11 wall:15,1,1,0,\n1,0,0,0,0,1,0,0,0,0,1,0,background log:16,0,0,0,0,0,0,0,0,0,\n1,0,0,0,0,1,0,0,0,0,0,0,background water:17,0,0,0,0,1,0,0,0,0,\n1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,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,\n", 19, "1627893532893.2812"] ], [ - "Pocket Gopher: Root-Shoot Nibbler", - ["title Pocket Gopher: Root-Shoot Nibbler\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color darkblue\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen darkblue\n00000\n00000\n00000\n00000\n00000\n\nnothingness ,\nblack\n\nfallen\nred\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nWall\ndarkred darkblue\n00000\n00010\n00000\n01000\n00000\n\n\nPlayer\nbrown black orange yellow \n.000.\n01010\n00100\n00300\n0...0\n\nPlayer_sad\nbrown black orange yellow blue\n.000.\n00000\n01010\n40100\n0...0\n\n\nvine_empty i\ngreen lightgreen\n.....\n..1..\n.101.\n..1..\n.....\n\n\n\nvine_n 1\ngreen lightgreen\n.101.\n.101.\n.101.\n..1..\n.....\n\nvine_s 2\ngreen lightgreen\n.....\n..1..\n.101.\n.101.\n.101.\n\nvine_e 3\ngreen lightgreen\n.....\n.1111\n10000\n.1111\n.....\n\n\nvine_w 4\ngreen lightgreen\n.....\n1111.\n00001\n1111.\n.....\n\nvine_ns 5\ngreen lightgreen\n.101.\n.101.\n.101.\n.101.\n.101.\n\nvine_ne 6\ngreen lightgreen\n.101.\n.1011\n.1000\n..111\n.....\n\n\nvine_nw 7\ngreen lightgreen\n.101.\n1101.\n0001.\n111..\n.....\n\n\nvine_se 8 \ngreen lightgreen\n.....\n..111\n.1000\n.1011\n.101.\n\n\nvine_sw 9\ngreen lightgreen\n.....\n111..\n0001.\n1101.\n.101.\n\n\nvine_ew 0\ngreen lightgreen\n.....\n11111\n00000\n11111\n.....\n\n\nvine_nse q\ngreen lightgreen\n.101.\n.1011\n.1000\n.1011\n.101.\n\n\nvine_nsw r\ngreen lightgreen\n.101.\n1101.\n0001.\n1101.\n.101.\n\nvine_new t\ngreen lightgreen\n.101.\n11011\n00000\n11111\n.....\n\nvine_sew y\ngreen lightgreen\n.....\n11111\n00000\n11011\n.101.\n\n\nvine_nsew u\ngreen lightgreen\n.101.\n11011\n00000\n11011\n.101.\n\nn\ntransparent\n\ns\ntransparent\n\ne\ntransparent\n\nw\ntransparent\n\nspawn\ntransparent\n\n=======\nLEGEND\n=======\n\nvine_end = vine_n or vine_s or vine_e or vine_w or vine_empty\nvine_body = vine_ns or vine_ne or vine_nw or vine_se or vine_sw or vine_ew or vine_nse or vine_nsw or vine_new or vine_sew or vine_nsew\n\n\no = nothingness and vine_n\nb = nothingness and vine_s\na = nothingness and vine_e\nd = nothingness and vine_w\nf = nothingness and vine_ns\ng = nothingness and vine_ne\nh = nothingness and vine_nw\nj = nothingness and vine_se\n- = nothingness and vine_sw\nk = nothingness and vine_ew\nl = nothingness and vine_nse\nz = nothingness and vine_nsw\nx = nothingness and vine_new\nc = nothingness and vine_sew\nm = nothingness and vine_nsew\n\nvine = vine_body or vine_end\n\nplant = vine_body or vine_end or Player\n\ndir = n or s or e or w\n. = Background\n# = Wall\nP = Player\n\noccupancy = wall or plant\n\n=======\nSOUNDS\n=======\n\nsfx0 86710504 (eat)\nsfx1 73200307 (move vine)\nendlevel 52752109\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nnothingness\nPlayer, Wall, vine,Player_sad\nn\ns\ne\nw\nspawn\nfallen\n\n======\nRULES\n======\n\n(don't forget about the case where you're chasing your tail)\n( [ > player | vine ] -> cancel )\n\n[ moving player ] -> again\n\n[vine_n]->[vine_n n]\n[vine_s]->[vine_s s]\n[vine_e]->[vine_e e]\n[vine_w]->[vine_w w]\n\n[vine_ns]->[vine_ns n s]\n[vine_ne]->[vine_ne n e]\n[vine_nw]->[vine_nw n w]\n\n[vine_se]->[vine_se s e]\n[vine_sw]->[vine_sw s w]\n\n[vine_ew]->[vine_ew e w]\n\n[vine_nse]->[vine_nse n s e]\n[vine_nsw]->[vine_nsw n s w]\n[vine_new]->[vine_new n e w]\n[vine_sew]->[vine_sew s e w]\n\n[vine_nsew]->[vine_nsew n s e w]\n\n[ > player | vine_end ] -> [ > player | no n no s no e no w ] sfx0 (munch)\n\n[ > player | vine_body ] -> [ > player | > vine_body ] sfx1\n\n[ > vine | vine ] -> [ > vine | > vine ]\n+ up [ n moving vine | vine ] -> [ n moving vine | moving vine ]\n+ down [ s moving vine | vine ] -> [ s moving vine | moving vine ]\n+ left [ w moving vine | vine ] -> [ w moving vine | moving vine ]\n+ right [ e moving vine | vine ] -> [ e moving vine | moving vine ]\n\n[ > vine | wall ] -> cancel\n[ > player | wall ] -> cancel\n[ > player | nothingness ] -> cancel\n\nup [ n | no s ] -> [ spawn | ]\ndown [ s | no n ] -> [ spawn | ]\nleft [ w | no e ] -> [ spawn | ]\nright [ e | no w ] -> [ spawn | ]\n\n[ n s e spawn ] -> [ vine_nse ]\n[ n s w spawn ] -> [ vine_nsw ]\n[ n e w spawn ] -> [ vine_new ]\n[ s e w spawn ] -> [ vine_sew ]\n\n[ n s spawn ] -> [ vine_ns ]\n[ n e spawn ] -> [ vine_ne ]\n[ n w spawn ] -> [ vine_nw ]\n\n[ s e spawn ] -> [ vine_se ]\n[ s w spawn ] -> [ vine_sw ]\n\n[ e w spawn ] -> [ vine_ew ]\n\n[ n spawn ] -> [ vine_n ]\n[ s spawn ] -> [ vine_s ]\n[ e spawn ] -> [ vine_e ]\n[ w spawn ] -> [ vine_w ]\n\n[ spawn ] -> [ vine_empty ]\n\n[dir]->[]\n\nlate [vine_n]->[vine_n n]\nlate [vine_s]->[vine_s s]\nlate [vine_e]->[vine_e e]\nlate [vine_w]->[vine_w w]\n\nlate [vine_ns]->[vine_ns n s]\nlate [vine_ne]->[vine_ne n e]\nlate [vine_nw]->[vine_nw n w]\n\nlate [vine_se]->[vine_se s e]\nlate [vine_sw]->[vine_sw s w]\n\nlate [vine_ew]->[vine_ew e w]\n\nlate [vine_nse]->[vine_nse n s e]\nlate [vine_nsw]->[vine_nsw n s w]\nlate [vine_new]->[vine_new n e w]\nlate [vine_sew]->[vine_sew s e w]\n\nlate [vine_nsew]->[vine_nsew n s e w]\n\nlate [ nothingness vine ] -> [nothingness vine fallen ]\n\nlate up [ n vine no fallen | vine ] -> [ n vine | no fallen vine ]\n+ late down [ s vine no fallen | vine ] -> [ s vine | no fallen vine ]\n+ late left [ w vine no fallen | vine ] -> [ w vine | no fallen vine ]\n+ late right [ e vine no fallen | vine ] -> [ e vine | no fallen vine ]\n\nlate [dir]->[]\n\nlate [fallen] [player]->[fallen][Player_sad]\n==============\nWINCONDITIONS\n==============\nno vine\n\n=======\nLEVELS\n=======\n\n\n\nmessage Level 1 of 5\n\nmessage I like eating roots, but only from the end.\n\n#############\n#...........#\n#....p......#\n#...........#\n#.2892.,,,,,#\n#.5555.,89..#\n#.6767.,11..#\n#......,....#\n#......,....#\n#############\n\n\nmessage Level 2 of 5\n\nmessage who starts eating roots from the middle? That's ridiculous.\n\n###########\n#.........#\n#.........#\n#....2....#\n#...amd...#\n#...,o,...#\n#...,b,...#\n#...amd...#\n#....1..2.#\n#......37.#\n#........p#\n###########\n\n\nmessage Level 3 of 5\nmessage Would you eat a banana from the middle? Why would you eat roots from the middle, then?!\n\n###########\n#.........#\n#.........#\n#...304...#\n#.........#\n#.2.222.2.#\n#.5.fff.5.#\n#.1.111.1.#\n#.........#\n#.p.304...#\n#.........#\n#.........#\n###########\n\n\nmessage Level 4 of 5\nmessage Would you read a book from the middle? You wouldn't; that's just stupid!\n\n#########\n#.......#\n#.,,,,,.#\n#.,jk-,.#\n#.,fbf,.#\n#.,fgh,.#\n#..1....#\n#....804#\n#....5p.#\n#....1..#\n#########\n\n\nmessage Level 5 of 5\nmessage Would you like to be born middle-aged and grow younger and older at the same time? NO YOU WOULDN'T!\n\n###########\n#.........#\n#.........#\n#...304...#\n#.........#\n#.2.bbb.2.#\n#.5.fff.5.#\n#.1.111.1.#\n#.........#\n#.p.304...#\n#.........#\n#.........#\n###########\n\nmessage Congratulations! You reached the end of the game, which is the best part!\n\n(\n\n###########\n#.........#\n#.........#\n#....2....#\n#...amd...#\n#...,o,...#\n#...,b,...#\n#...amd...#\n#....1..2.#\n#......37.#\n#........p#\n###########\n\n#############\n#...........#\n#...,,,bjd,.#\n#...ba-lhb,.#\n#.39fjzfjh,.#\n#..6mzgxz,,.#\n#..3hlcdo,,.#\n#.p.aho,,,,.#\n#...........#\n#############\n\n\n###########\n#.........#\n#.........#\n#..84.39..#\n#..1...1..#\n#...bbb...#\n#...fff...#\n#...111...#\n#..2...2..#\n#..64.37..#\n#....p....#\n#.........#\n###########\n\n#####################\n#...................#\n#...................#\n#.......j4.3-.......#\n#.......1...1.......#\n#...................#\n#.......2...2.......#\n#.......g4.3h.......#\n#...................#\n#...................#\n#.........2.........#\n#.........5.........#\n#.......30u04.......#\n#.........5.........#\n#.......p.1.........#\n#...................#\n#####################\n\n#####################\n#...................#\n#.......,,.,,.......#\n#......,j4.3-,......#\n#......,1...1,......#\n#...................#\n#......,2...2,......#\n#......,g4.3h,......#\n#.......,,.,,.......#\n#...................#\n#.........2.........#\n#.........5.........#\n#.......30u04.......#\n#.........5.........#\n#.......p.1.........#\n#...................#\n#####################\n\n##################\n#...........,....#\n#...........,....#\n#...........,....#\n#...........,....#\n#.......2...,....#e\n#......3u4..,....#\n#..309..1...,....#\n#....5......,..34#\n#..p.1..2...,,,.,#\n#......3u4.....,.#\n#.......1........#\n#................#\n#................#\n##################\n\n\n\n###############################################\n#.......................,...............,.....#\n#.......................,...............,.....#\n#......................2................,.....#\n#.....................p5.2..............,.....#\n#......................60780004.........,.....#\n#.......................,.5.............,.....#\n#.......................,.5.............,.....#\n#.......................,.5.............,.....#\n#.......................,.6000484.....39,.....#\n#.......................,......5.......5a4....#\n#.......................,......5.......5,.....#\n#.......................,......5.......5a4....#\n#.......................,......5.......5,.....#\n#.......................,......5.......5a4....#\n#.......................,......5.......5,.....#\n#.......................,......5.......5a4....#\n#.......................,......600000007,.....#\n#.......................,...............,.....#\n#.......................,,,,,,,,,,,,,,,,,.....#\n#.............................................#\n###############################################\n\n\n)\n",[0,4,2,2,1,0,0,0,1,1],"background wall:0,0,0,0,0,0,0,0,0,\n0,0,0,background:1,1,1,1,1,1,\n1,1,1,0,0,1,background nothingness:2,2,2,\n2,1,1,1,1,0,0,1,2,\nbackground fallen nothingness vine_se:3,background fallen nothingness vine_ns:4,background fallen nothingness vine_n:5,background player_sad:6,1,1,1,0,0,\n1,2,background fallen nothingness vine_ew:7,background fallen nothingness vine_s:8,background fallen nothingness vine_ne:9,1,1,1,1,\n0,0,1,2,background fallen nothingness vine_sw:10,4,background fallen nothingness vine_nw:11,1,1,\n1,1,0,0,1,2,2,2,2,\nbackground vine_e:12,1,1,1,0,0,1,1,1,\n1,1,background vine_w:13,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,\n",11,"1627893552932.8503"] + "Pocket Gopher: Root-Shoot Nibbler", + ["title Pocket Gopher: Root-Shoot Nibbler\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color darkblue\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen darkblue\n00000\n00000\n00000\n00000\n00000\n\nnothingness ,\nblack\n\nfallen\nred\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nWall\ndarkred darkblue\n00000\n00010\n00000\n01000\n00000\n\n\nPlayer\nbrown black orange yellow \n.000.\n01010\n00100\n00300\n0...0\n\nPlayer_sad\nbrown black orange yellow blue\n.000.\n00000\n01010\n40100\n0...0\n\n\nvine_empty i\ngreen lightgreen\n.....\n..1..\n.101.\n..1..\n.....\n\n\n\nvine_n 1\ngreen lightgreen\n.101.\n.101.\n.101.\n..1..\n.....\n\nvine_s 2\ngreen lightgreen\n.....\n..1..\n.101.\n.101.\n.101.\n\nvine_e 3\ngreen lightgreen\n.....\n.1111\n10000\n.1111\n.....\n\n\nvine_w 4\ngreen lightgreen\n.....\n1111.\n00001\n1111.\n.....\n\nvine_ns 5\ngreen lightgreen\n.101.\n.101.\n.101.\n.101.\n.101.\n\nvine_ne 6\ngreen lightgreen\n.101.\n.1011\n.1000\n..111\n.....\n\n\nvine_nw 7\ngreen lightgreen\n.101.\n1101.\n0001.\n111..\n.....\n\n\nvine_se 8 \ngreen lightgreen\n.....\n..111\n.1000\n.1011\n.101.\n\n\nvine_sw 9\ngreen lightgreen\n.....\n111..\n0001.\n1101.\n.101.\n\n\nvine_ew 0\ngreen lightgreen\n.....\n11111\n00000\n11111\n.....\n\n\nvine_nse q\ngreen lightgreen\n.101.\n.1011\n.1000\n.1011\n.101.\n\n\nvine_nsw r\ngreen lightgreen\n.101.\n1101.\n0001.\n1101.\n.101.\n\nvine_new t\ngreen lightgreen\n.101.\n11011\n00000\n11111\n.....\n\nvine_sew y\ngreen lightgreen\n.....\n11111\n00000\n11011\n.101.\n\n\nvine_nsew u\ngreen lightgreen\n.101.\n11011\n00000\n11011\n.101.\n\nn\ntransparent\n\ns\ntransparent\n\ne\ntransparent\n\nw\ntransparent\n\nspawn\ntransparent\n\n=======\nLEGEND\n=======\n\nvine_end = vine_n or vine_s or vine_e or vine_w or vine_empty\nvine_body = vine_ns or vine_ne or vine_nw or vine_se or vine_sw or vine_ew or vine_nse or vine_nsw or vine_new or vine_sew or vine_nsew\n\n\no = nothingness and vine_n\nb = nothingness and vine_s\na = nothingness and vine_e\nd = nothingness and vine_w\nf = nothingness and vine_ns\ng = nothingness and vine_ne\nh = nothingness and vine_nw\nj = nothingness and vine_se\n- = nothingness and vine_sw\nk = nothingness and vine_ew\nl = nothingness and vine_nse\nz = nothingness and vine_nsw\nx = nothingness and vine_new\nc = nothingness and vine_sew\nm = nothingness and vine_nsew\n\nvine = vine_body or vine_end\n\nplant = vine_body or vine_end or Player\n\ndir = n or s or e or w\n. = Background\n# = Wall\nP = Player\n\noccupancy = wall or plant\n\n=======\nSOUNDS\n=======\n\nsfx0 86710504 (eat)\nsfx1 73200307 (move vine)\nendlevel 52752109\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nnothingness\nPlayer, Wall, vine,Player_sad\nn\ns\ne\nw\nspawn\nfallen\n\n======\nRULES\n======\n\n(don't forget about the case where you're chasing your tail)\n( [ > player | vine ] -> cancel )\n\n[ moving player ] -> again\n\n[vine_n]->[vine_n n]\n[vine_s]->[vine_s s]\n[vine_e]->[vine_e e]\n[vine_w]->[vine_w w]\n\n[vine_ns]->[vine_ns n s]\n[vine_ne]->[vine_ne n e]\n[vine_nw]->[vine_nw n w]\n\n[vine_se]->[vine_se s e]\n[vine_sw]->[vine_sw s w]\n\n[vine_ew]->[vine_ew e w]\n\n[vine_nse]->[vine_nse n s e]\n[vine_nsw]->[vine_nsw n s w]\n[vine_new]->[vine_new n e w]\n[vine_sew]->[vine_sew s e w]\n\n[vine_nsew]->[vine_nsew n s e w]\n\n[ > player | vine_end ] -> [ > player | no n no s no e no w ] sfx0 (munch)\n\n[ > player | vine_body ] -> [ > player | > vine_body ] sfx1\n\n[ > vine | vine ] -> [ > vine | > vine ]\n+ up [ n moving vine | vine ] -> [ n moving vine | moving vine ]\n+ down [ s moving vine | vine ] -> [ s moving vine | moving vine ]\n+ left [ w moving vine | vine ] -> [ w moving vine | moving vine ]\n+ right [ e moving vine | vine ] -> [ e moving vine | moving vine ]\n\n[ > vine | wall ] -> cancel\n[ > player | wall ] -> cancel\n[ > player | nothingness ] -> cancel\n\nup [ n | no s ] -> [ spawn | ]\ndown [ s | no n ] -> [ spawn | ]\nleft [ w | no e ] -> [ spawn | ]\nright [ e | no w ] -> [ spawn | ]\n\n[ n s e spawn ] -> [ vine_nse ]\n[ n s w spawn ] -> [ vine_nsw ]\n[ n e w spawn ] -> [ vine_new ]\n[ s e w spawn ] -> [ vine_sew ]\n\n[ n s spawn ] -> [ vine_ns ]\n[ n e spawn ] -> [ vine_ne ]\n[ n w spawn ] -> [ vine_nw ]\n\n[ s e spawn ] -> [ vine_se ]\n[ s w spawn ] -> [ vine_sw ]\n\n[ e w spawn ] -> [ vine_ew ]\n\n[ n spawn ] -> [ vine_n ]\n[ s spawn ] -> [ vine_s ]\n[ e spawn ] -> [ vine_e ]\n[ w spawn ] -> [ vine_w ]\n\n[ spawn ] -> [ vine_empty ]\n\n[dir]->[]\n\nlate [vine_n]->[vine_n n]\nlate [vine_s]->[vine_s s]\nlate [vine_e]->[vine_e e]\nlate [vine_w]->[vine_w w]\n\nlate [vine_ns]->[vine_ns n s]\nlate [vine_ne]->[vine_ne n e]\nlate [vine_nw]->[vine_nw n w]\n\nlate [vine_se]->[vine_se s e]\nlate [vine_sw]->[vine_sw s w]\n\nlate [vine_ew]->[vine_ew e w]\n\nlate [vine_nse]->[vine_nse n s e]\nlate [vine_nsw]->[vine_nsw n s w]\nlate [vine_new]->[vine_new n e w]\nlate [vine_sew]->[vine_sew s e w]\n\nlate [vine_nsew]->[vine_nsew n s e w]\n\nlate [ nothingness vine ] -> [nothingness vine fallen ]\n\nlate up [ n vine no fallen | vine ] -> [ n vine | no fallen vine ]\n+ late down [ s vine no fallen | vine ] -> [ s vine | no fallen vine ]\n+ late left [ w vine no fallen | vine ] -> [ w vine | no fallen vine ]\n+ late right [ e vine no fallen | vine ] -> [ e vine | no fallen vine ]\n\nlate [dir]->[]\n\nlate [fallen] [player]->[fallen][Player_sad]\n==============\nWINCONDITIONS\n==============\nno vine\n\n=======\nLEVELS\n=======\n\n\n\nmessage Level 1 of 5\n\nmessage I like eating roots, but only from the end.\n\n#############\n#...........#\n#....p......#\n#...........#\n#.2892.,,,,,#\n#.5555.,89..#\n#.6767.,11..#\n#......,....#\n#......,....#\n#############\n\n\nmessage Level 2 of 5\n\nmessage who starts eating roots from the middle? That's ridiculous.\n\n###########\n#.........#\n#.........#\n#....2....#\n#...amd...#\n#...,o,...#\n#...,b,...#\n#...amd...#\n#....1..2.#\n#......37.#\n#........p#\n###########\n\n\nmessage Level 3 of 5\nmessage Would you eat a banana from the middle? Why would you eat roots from the middle, then?!\n\n###########\n#.........#\n#.........#\n#...304...#\n#.........#\n#.2.222.2.#\n#.5.fff.5.#\n#.1.111.1.#\n#.........#\n#.p.304...#\n#.........#\n#.........#\n###########\n\n\nmessage Level 4 of 5\nmessage Would you read a book from the middle? You wouldn't; that's just stupid!\n\n#########\n#.......#\n#.,,,,,.#\n#.,jk-,.#\n#.,fbf,.#\n#.,fgh,.#\n#..1....#\n#....804#\n#....5p.#\n#....1..#\n#########\n\n\nmessage Level 5 of 5\nmessage Would you like to be born middle-aged and grow younger and older at the same time? NO YOU WOULDN'T!\n\n###########\n#.........#\n#.........#\n#...304...#\n#.........#\n#.2.bbb.2.#\n#.5.fff.5.#\n#.1.111.1.#\n#.........#\n#.p.304...#\n#.........#\n#.........#\n###########\n\nmessage Congratulations! You reached the end of the game, which is the best part!\n\n(\n\n###########\n#.........#\n#.........#\n#....2....#\n#...amd...#\n#...,o,...#\n#...,b,...#\n#...amd...#\n#....1..2.#\n#......37.#\n#........p#\n###########\n\n#############\n#...........#\n#...,,,bjd,.#\n#...ba-lhb,.#\n#.39fjzfjh,.#\n#..6mzgxz,,.#\n#..3hlcdo,,.#\n#.p.aho,,,,.#\n#...........#\n#############\n\n\n###########\n#.........#\n#.........#\n#..84.39..#\n#..1...1..#\n#...bbb...#\n#...fff...#\n#...111...#\n#..2...2..#\n#..64.37..#\n#....p....#\n#.........#\n###########\n\n#####################\n#...................#\n#...................#\n#.......j4.3-.......#\n#.......1...1.......#\n#...................#\n#.......2...2.......#\n#.......g4.3h.......#\n#...................#\n#...................#\n#.........2.........#\n#.........5.........#\n#.......30u04.......#\n#.........5.........#\n#.......p.1.........#\n#...................#\n#####################\n\n#####################\n#...................#\n#.......,,.,,.......#\n#......,j4.3-,......#\n#......,1...1,......#\n#...................#\n#......,2...2,......#\n#......,g4.3h,......#\n#.......,,.,,.......#\n#...................#\n#.........2.........#\n#.........5.........#\n#.......30u04.......#\n#.........5.........#\n#.......p.1.........#\n#...................#\n#####################\n\n##################\n#...........,....#\n#...........,....#\n#...........,....#\n#...........,....#\n#.......2...,....#e\n#......3u4..,....#\n#..309..1...,....#\n#....5......,..34#\n#..p.1..2...,,,.,#\n#......3u4.....,.#\n#.......1........#\n#................#\n#................#\n##################\n\n\n\n###############################################\n#.......................,...............,.....#\n#.......................,...............,.....#\n#......................2................,.....#\n#.....................p5.2..............,.....#\n#......................60780004.........,.....#\n#.......................,.5.............,.....#\n#.......................,.5.............,.....#\n#.......................,.5.............,.....#\n#.......................,.6000484.....39,.....#\n#.......................,......5.......5a4....#\n#.......................,......5.......5,.....#\n#.......................,......5.......5a4....#\n#.......................,......5.......5,.....#\n#.......................,......5.......5a4....#\n#.......................,......5.......5,.....#\n#.......................,......5.......5a4....#\n#.......................,......600000007,.....#\n#.......................,...............,.....#\n#.......................,,,,,,,,,,,,,,,,,.....#\n#.............................................#\n###############################################\n\n\n)\n", [0, 4, 2, 2, 1, 0, 0, 0, 1, 1], "background wall:0,0,0,0,0,0,0,0,0,\n0,0,0,background:1,1,1,1,1,1,\n1,1,1,0,0,1,background nothingness:2,2,2,\n2,1,1,1,1,0,0,1,2,\nbackground fallen nothingness vine_se:3,background fallen nothingness vine_ns:4,background fallen nothingness vine_n:5,background player_sad:6,1,1,1,0,0,\n1,2,background fallen nothingness vine_ew:7,background fallen nothingness vine_s:8,background fallen nothingness vine_ne:9,1,1,1,1,\n0,0,1,2,background fallen nothingness vine_sw:10,4,background fallen nothingness vine_nw:11,1,1,\n1,1,0,0,1,2,2,2,2,\nbackground vine_e:12,1,1,1,0,0,1,1,1,\n1,1,background vine_w:13,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,\n", 11, "1627893552932.8503"] ], [ - "North Wind Simple Sailboat Buoy Collection", - ["(MOVEMENT SHOULD BE DETERMINED BY TARGET DIRECTION not current one)\n\ntitle North Wind Simple Sailboat Buoy Collection\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #255474\ntext_color #caa786\n\nnorepeat_action\nrun_rules_on_level_start\nagain_interval 0.4\nrealtime_interval 1\n( debug )\n( verbose_logging )\n\nnoundo\n\n========\nOBJECTS\n========\n\nbuoy b\n#ac3232 #847e87\n.....\n..10.\n..1..\n..0..\n.000.\n\nBackground\n#5fcde4 #48bbd3\n00000\n00100\n01010\n10001\n00000\n\nland\n#37946e #25855e\n00000\n01000\n00000\n00010\n00000\n\npontoon1 t\n#8d614c #9e7650\n00000\n10101\n10101\n00000\n.0.0.\n\npontoon2 y\n#8d614c #9e7650\n00000\n01010\n01010\n00000\n.0.0.\n\npontoon3 u\n#8d614c #9e7650\n00000\n01110\n00000\n01110\n00000\n\npontoon4 i\n#8d614c #9e7650\n01110\n00000\n01110\n00000\n01110\n\n\npontoon5 o\n#8d614c #9e7650\n01110\n00000\n01110\n00000\n0...0\n\nmountain1\n#16724c\n....0\n...00\n..000\n.0000\n00.0.\n\nmountain2\n#16724c\n00000\n00000\n00000\n00000\n0.0.0\n\nmountain3\n#16724c\n0....\n00...\n000..\n0000.\n.0.00\n\nmountain4\n#16724c\n.....\n.....\n..0..\n.000.\n00000\n\ntree\n#37946e #8d614c #16724c\n00000\n00200\n02220\n00100\n00000\n\nmountain_blue1\n#306082\n00000\n00000\n00000\n00000\n.....\n\nmountain_blue2\n#306082 #9badb7\n....1\n...11\n..110\n.0000\n00000\n\nmountain_blue3\n#306082 #9badb7\n1....\n11...\n101..\n0000.\n00000\n\n\nrock\n#255474 #306082 #3f7296 #4e7ea1 \n..13.\n.0112\n00121\n01102\n.000.\n\n\ncoast_n\n#37946e #25855e #caa786\n22222\n.222.\n.....\n.....\n.....\n\ncoast_ne\n#37946e #25855e #caa786 #5fcde4\n22223\n.2222\n...22\n...22\n....2\n\ncoast_e\n#37946e #25855e #caa786\n....2\n...22\n...22\n...22\n....2\n\ncoast_se\n#37946e #25855e #caa786 #5fcde4\n....2\n....2\n...22\n.2222\n22223\n\ncoast_s\n#37946e #25855e #caa786\n.....\n.....\n.....\n.222.\n22222\n\ncoast_sw\n#37946e #25855e #caa786 #5fcde4\n2....\n22...\n22...\n2222.\n32222\n\ncoast_w\n#37946e #25855e #caa786\n2....\n22...\n22...\n22...\n2....\n\ncoast_nw\n#37946e #25855e #caa786 #5fcde4\n32222\n2222.\n22...\n22...\n2....\n\nhouse1\n#caa786 #8d614c #9e7650\n..000\n..000\n11111\n00000\n00020\n\nhouse2\n#caa786 #8d614c #9e7650\n.....\n.....\n.....\n...1.\n..111\n\nhouse3\n#caa786 #8d614c #9e7650\n.....\n11111\n12121\n00000\n00000\n\nhouse4\n#caa786 #8d614c #9e7650\n.....\n..1..\n.111.\n.000.\n.020.\n\n\n\n\nPlayer\n#639bff\n.....\n.....\n..0..\n.....\n.....\n\nheading_n\ntransparent\n\nheading_ne\ntransparent\n\nheading_e\ntransparent\n\nheading_se\ntransparent\n\nheading_s\ntransparent\n\nheading_sw\ntransparent\n\nheading_w\ntransparent\n\nheading_nw\ntransparent\n\nwreck_1\n#667598 #a9b5d0 brown #639bff #ffffff #d2dde3\n.000.\n01310\n01140\n0145.\n.0054\n\nwreck_2\n#667598 #a9b5d0 brown #639bff #ffffff #d2dde3\n.000.\n01110\n.1110\n..110\n.2.0.\n\nhull_n_bow\n#667598 #a9b5d0 brown\n.000.\n01110\n01110\n01110\n01110\n\nhull_n_stern\n#667598 #a9b5d0 brown\n01110\n01110\n.000.\n.....\n.....\n\nhull_n_rl\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n.2...\n2....\n\nhull_n_rc\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n..2..\n..2..\n\nhull_n_rr\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n...2.\n....2\n\nhull_ne_bow\n#667598 #a9b5d0 brown\n.00..\n0110.\n11110\n11110\n1110.\n\nhull_ne_stern\n#667598 #a9b5d0 brown\n.0111\n.0111\n..011\n...00\n.....\n\n\n\nhull_ne_rl\n#667598 #a9b5d0 brown\n.....\n.....\n22...\n.....\n.....\n\nhull_ne_rc\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n.2...\n2....\n\nhull_ne_rr\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n..2..\n..2..\n\nhull_e_bow\n#667598 #a9b5d0 brown\n0000.\n11110\n11110\n11110\n0000.\n\nhull_e_stern\n#667598 #a9b5d0 brown\n...00\n..011\n..011\n..011\n...00\n\nhull_e_rl\n#667598 #a9b5d0 brown\n2....\n.2...\n.....\n.....\n.....\n\nhull_e_rc\n#667598 #a9b5d0 brown\n.....\n.....\n22...\n.....\n.....\n\nhull_e_rr\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n.2...\n2....\n\n\n\nhull_se_bow\n#667598 #a9b5d0 brown\n1110.\n11110\n11110\n0110.\n.00..\n\nhull_se_stern\n#667598 #a9b5d0 brown\n.....\n...00\n..011\n.0111\n.0111\n\n\nhull_se_rl\n#667598 #a9b5d0 brown\n..2..\n..2..\n.....\n.....\n.....\n\nhull_se_rc\n#667598 #a9b5d0 brown\n2....\n.2...\n.....\n.....\n.....\n\nhull_se_rr\n#667598 #a9b5d0 brown\n.....\n.....\n22...\n.....\n.....\n\n\nhull_s_bow\n#667598 #a9b5d0 brown\n01110\n01110\n01110\n01110\n.000.\n\nhull_s_stern\n#667598 #a9b5d0 brown\n.....\n.....\n.000.\n01110\n01110\n\n\nhull_s_rl\n#667598 #a9b5d0 brown\n....2\n...2.\n.....\n.....\n.....\n\nhull_s_rc\n#667598 #a9b5d0 brown\n..2..\n..2..\n.....\n.....\n.....\n\nhull_s_rr\n#667598 #a9b5d0 brown\n2....\n.2...\n.....\n.....\n.....\n\nhull_sw_bow\n#667598 #a9b5d0 brown\n.0111\n01111\n01111\n.0110\n..00.\n\nhull_sw_stern\n#667598 #a9b5d0 brown\n.....\n00...\n110..\n1110.\n1110.\n\n\nhull_sw_rl\n#667598 #a9b5d0 brown\n.....\n.....\n...22\n.....\n.....\n\nhull_sw_rc\n#667598 #a9b5d0 brown\n....2\n...2.\n.....\n.....\n.....\n\nhull_sw_rr\n#667598 #a9b5d0 brown\n..2..\n..2..\n.....\n.....\n.....\n\nhull_w_bow\n#667598 #a9b5d0 brown\n.0000\n01111\n01111\n01111\n.0000\n\nhull_w_stern\n#667598 #a9b5d0 brown\n00...\n110..\n110..\n110..\n00...\n\n\n\nhull_w_rl\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n...2.\n....2\n\nhull_w_rc\n#667598 #a9b5d0 brown\n.....\n.....\n...22\n.....\n.....\n\nhull_w_rr\n#667598 #a9b5d0 brown\n....2\n...2.\n.....\n.....\n.....\n\n\nhull_nw_bow\n#667598 #a9b5d0 brown\n..00.\n.0110\n01111\n01111\n.0111\n\nhull_nw_stern\n#667598 #a9b5d0 brown\n1110.\n1110.\n110..\n00...\n.....\n\n\n\nhull_nw_rl\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n..2..\n..2..\n\nhull_nw_rc\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n...2.\n....2\n\nhull_nw_rr\n#667598 #a9b5d0 brown\n.....\n.....\n...22\n.....\n.....\n\n\nhull_diag_nw\n#667598 #a9b5d0 brown\n.....\n.....\n....0\n...01\n..011\n\n\nhull_diag_ne\n#667598 #a9b5d0 brown\n.....\n.....\n0....\n10...\n110..\n\n\nhull_diag_se\n#667598 #a9b5d0 brown\n110..\n10...\n0....\n.....\n.....\n\n\n\n\n\nhull_diag_sw\n#667598 #a9b5d0 brown\n..011\n...01\n....0\n.....\n.....\n\nsail_n_1\n#d2dde3 white\n..01.\n..1..\n.....\n.....\n.....\n\nsail_n_2\n#d2dde3 white\n.....\n.....\n..1..\n.10..\n..1..\n\n\nsail_ne_1\n#d2dde3 white\n....0\n...11\n.....\n.....\n.....\n\nsail_ne_2\n#d2dde3 white\n1....\n.....\n.....\n.....\n.....\n\nsail_ne_3\n#d2dde3 white\n.....\n.....\n..1..\n.01..\n01...\n\nsail_e_1\n#d2dde3 white\n.....\n.....\n...10\n....1\n.....\n\nsail_e_2\n#d2dde3 white\n.....\n.....\n001..\n11...\n.....\n\n\nsail_se_1\n#d2dde3 white\n.....\n.....\n.....\n...1.\n...10\n\nsail_se_2\n#d2dde3 white\n....1\n.....\n.....\n.....\n.....\n\nsail_se_3\n#d2dde3 white\n0....\n10...\n.11..\n.....\n.....\n\n\n\nsail_s_1\n#d2dde3 white\n.....\n.....\n.....\n..1..\n.10..\n\nsail_s_2\n#d2dde3 white\n..1..\n..01.\n..1..\n.....\n.....\n\n\nsail_sw_1\n#d2dde3 white\n.....\n.....\n.....\n.1...\n01...\n\nsail_sw_2\n#d2dde3 white\n1....\n.....\n.....\n.....\n.....\n\nsail_sw_3\n#d2dde3 white\n....0\n...01\n..11.\n.....\n.....\n\n\n\n\nsail_w_1\n#d2dde3 white\n.....\n.....\n01...\n1....\n.....\n\nsail_w_2\n#d2dde3 white\n.....\n.....\n..100\n...11\n.....\n\n\nsail_nw_1\n#d2dde3 white\n0....\n11...\n.....\n.....\n.....\n\nsail_nw_2\n#d2dde3 white\n....1\n.....\n.....\n.....\n.....\n\nsail_nw_3\n#d2dde3 white\n.....\n.....\n..1..\n..10.\n...10\n\nrudderdir_l\ntransparent\n\nrudderdir_c\ntransparent\n\nrudderdir_r\ntransparent\n\nsail_direction_n\ntransparent\n\nsail_direction_ne\ntransparent\n\nsail_direction_e\ntransparent\n\nsail_direction_se\ntransparent\n\nsail_direction_s\ntransparent\n\nsail_direction_sw\ntransparent\n\nsail_direction_w\ntransparent\n\nsail_direction_nw\ntransparent\n\ntension_0\ntransparent\n\ntension_1\ntransparent\n\ntension_2\ntransparent\n\nsail_side_right\ntransparent\n\nsail_side_left\ntransparent\n\ncordslack_0\ntransparent\n\ncordslack_1\ntransparent\n\ncordslack_2\ntransparent\n\nsailcord_n\n#d0535f\n..0..\n..0..\n..0..\n.....\n.....\n\nsailcord_ne\n#d0535f\n....0\n...0.\n..0..\n.....\n.....\n\nsailcord_e\n#d0535f\n.....\n.....\n..000\n.....\n.....\n\nsailcord_se\n#d0535f\n.....\n.....\n..0..\n...0.\n....0\n\nsailcord_s\n#d0535f\n.....\n.....\n..0..\n..0..\n..0..\n\n\n\nsailcord_sw\n#d0535f\n.....\n.....\n..0..\n.0...\n0....\n\n\nsailcord_w\n#d0535f\n.....\n.....\n000..\n.....\n.....\n\n\n\nsailcord_nw\n#d0535f\n0....\n.0...\n..0..\n.....\n.....\n\n\nsailcord_ns\n#d0535f\n..0..\n..0..\n..0..\n..0..\n..0..\n\nsailcord_ew\n#d0535f\n.....\n.....\n00000\n.....\n.....\n\nsailcord_cordslack_south_1\n#d0535f\n.....\n.....\n..0..\n.0.0.\n..0..\n\nsailcord_cordslack_south_2\n#d0535f\n.....\n.....\n.000.\n0...0\n.000.\n\nsailcord_cordslack_south_left\n#d0535f\n.....\n.....\n.....\n..0..\n...00\n\nsailcord_cordslack_south_right\n#d0535f\n.....\n.....\n.....\n..0..\n00...\n\nagaining\ntransparent\n\nmovement_n\ntransparent\n\nmovement_ne\ntransparent\n\nmovement_e\ntransparent\n\nmovement_se\ntransparent\n\nmovement_s\ntransparent\n\nmovement_sw\ntransparent\n\nmovement_w\ntransparent\n\nmovement_nw\ntransparent\n\nmovement_target\ntransparent\n\nhasturned\ntransparent\n\ndomove\ntransparent\n\n=======\nLEGEND\n=======\n\nhouse = house1 or house2 or house3 or house4\ncoast = coast_n or coast_ne or coast_e or coast_se or coast_s or coast_sw or coast_w or coast_nw\n\n\nsailcord = sailcord_n or sailcord_ne or sailcord_e or sailcord_Se or sailcord_s or sailcord_Sw or sailcord_w or sailcord_nw or sailcord_cordslack_south_1 or sailcord_cordslack_south_2 or sailcord_cordslack_south_left or sailcord_cordslack_south_right or sailcord_ns or sailcord_ew\n\nrudder = hull_n_rl or hull_n_rc or hull_n_rr or hull_ne_rl or hull_ne_rc or hull_ne_rr or hull_e_rl or hull_e_rc or hull_e_rr or hull_se_rl or hull_se_rc or hull_se_rr or hull_s_rl or hull_s_rc or hull_s_rr or hull_sw_rl or hull_sw_rc or hull_sw_rr or hull_w_rl or hull_w_rc or hull_w_rr or hull_nw_rl or hull_nw_rc or hull_nw_rr \n\nhull = hull_n_bow or hull_n_stern or hull_ne_bow or hull_ne_stern or hull_e_bow or hull_e_stern or hull_se_bow or hull_se_stern or hull_s_bow or hull_s_stern or hull_nw_bow or hull_nw_stern or hull_w_bow or hull_w_stern or hull_sw_bow or hull_sw_stern or hull_diag_ne or hull_diag_se or hull_diag_sw or hull_diag_nw\n\nhull_stern = hull_n_stern or hull_ne_stern or hull_e_stern or hull_se_stern or hull_s_stern or hull_sw_stern or hull_w_stern or hull_nw_stern \n\nheading = heading_n or heading_ne or heading_e or heading_se or heading_s or heading_sw or heading_w or heading_nw\n\nrudderdir = rudderdir_l or rudderdir_c or rudderdir_r\n\nsail = sail_n_1 or sail_n_2 or sail_ne_1 or sail_ne_2 or sail_ne_3 or sail_e_1 or sail_e_2 or sail_se_1 or sail_se_2 or sail_se_3 or sail_s_1 or sail_s_2 or sail_sw_1 or sail_sw_2 or sail_sw_3 or sail_w_1 or sail_w_2 or sail_nw_1 or sail_nw_2 or sail_nw_3 \n\nsail_direction = sail_direction_n or sail_direction_ne or sail_direction_e or sail_direction_se or sail_direction_s or sail_direction_sw or sail_direction_w or sail_direction_nw \n\nmountain = mountain1 or mountain2 or mountain3 or mountain4\nmountain_blue = mountain_blue1 or mountain_blue2 or mountain_blue3\npontoon = pontoon1 or pontoon2 or pontoon3 or pontoon4 or pontoon5\n\nobstacle = land or rock or pontoon\n\ntension = tension_0 or tension_1 or tension_2\nsail_side = sail_side_right or sail_side_left\ncordslack = cordslack_0 or cordslack_1 or cordslack_2\nmovement = movement_n or movement_ne or movement_e or movement_se or movement_s or movement_sw or movement_w or movement_nw\n\nwreck = wreck_1 or wreck_2\n\n. = Background\nP = Player and heading_e and rudderdir_c and tension_2 and sail_side_left\n\nw = land and coast_n\ne = land and coast_ne\nd = land and coast_e\nc = land and coast_se\nx = land and coast_s\nz = land and coast_sw\na = land and coast_w\nq = land and coast_nw\ns = land \nf = house1 and land\ng = house2 and land\nh = house3 and land\nj = house4 and land\nv = mountain1 and land\n, = mountain2 and land\nn = mountain3 and land\nm = mountain4 and land\nl = mountain_blue1 and land and mountain1\n; = mountain_blue1 and land and mountain3\n' = mountain_blue2 and land \n# = mountain_blue3 and land \n- = tree and land\nr = rock\n\n=======\nSOUNDS\n=======\nsfx0 64788707 (tight)\nsfx1 92037307 (tighten sail)\nsfx2 6725507(loose )\nsfx3 72434302 (boat crash)\nsfx5 94572100 (pick up buoy)\nsfx6 23834907(rudder change)\nstartlevel 51979900\nendgame 68419109\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nland, rock, pontoon\nmountain_blue, tree\ncoast, house,mountain, buoy\nrudder\nhull\nwreck\nPlayer\nsailcord\nsail\nheading\nrudderdir\nsail_direction\ntension\nsail_side\ncordslack\nagaining\nmovement\nmovement_target\nhasturned\ndomove\n\n======\nRULES\n======\n\n(start of autotiling code- comment out for release version)\n\n( up [ land no coast | no land ] -> [ land coast_n |] )\n( down [ land no coast | no land ] -> [ land coast_s |] )\n( right [ land no coast | no land ] -> [ land coast_e |] )\n( left [ land no coast | no land ] -> [ land coast_w |] )\n\n( right [coast_n | no land] -> [ coast_ne |] sfx6 )\n( left [coast_n | no land] -> [ coast_nw | ] sfx6 )\n\n( right [coast_s | no land] -> [ coast_se |] )\n( left [coast_s | no land] -> [ coast_sw | ] )\n\n(end of autotiling code- comment out for release version)\n\n\n[ stationary player ] -> [ stationary player againing ]\n( [ moving player ]-> again )\n\n[hull]->[]\n[rudder]->[]\n[sail]->[]\n[cordslack]->[]\n[sailcord]->[]\n\n\n\n( [ action player heading_n ]-> [ player heading_ne ] )\n( [ action player heading_ne ]-> [ player heading_e ] )\n( [ action player heading_e ]-> [ player heading_se ] )\n( [ action player heading_se ]-> [ player heading_s ] )\n( [ action player heading_s ]-> [ player heading_sw ] )\n( [ action player heading_sw ]-> [ player heading_w ] )\n( [ action player heading_w ]-> [ player heading_nw ] )\n( [ action player heading_nw ]-> [ player heading_n ] )\n\n\n[ up player tension_2 ] -> [ player tension_1 ] sfx1\n[ up player tension_1 ] -> [ player tension_0 ] sfx2\n[ down player tension_0 ] -> [ player tension_1 ] sfx1\n[ down player tension_1 ] -> [ player tension_2 ] sfx0\n\n(calculate sail direction / cord slack)\n\n[ heading_n tension_2 sail_side_left ] -> [ heading_n tension_2 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_n tension_2 sail_side_right ] -> [ heading_n tension_2 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_n tension_1 sail_side_left ] -> [ heading_n tension_1 sail_side_left sail_direction_s cordslack_1 ]\n[ heading_n tension_1 sail_side_right ] -> [ heading_n tension_1 sail_side_right sail_direction_s cordslack_1 ]\n[ heading_n tension_0 sail_side_left ] -> [ heading_n tension_0 sail_side_left sail_direction_s cordslack_2 ]\n[ heading_n tension_0 sail_side_right ] -> [ heading_n tension_0 sail_side_right sail_direction_s cordslack_2 ]\n\n\n[ heading_ne tension_2 sail_side_left ] -> [ heading_ne tension_2 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_ne tension_2 sail_side_right ] -> [ heading_ne tension_2 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_ne tension_1 sail_side_left ] -> [ heading_ne tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_ne tension_1 sail_side_right ] -> [ heading_ne tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_ne tension_0 sail_side_left ] -> [ heading_ne tension_0 sail_side_right sail_direction_s cordslack_1 ]\n[ heading_ne tension_0 sail_side_right ] -> [ heading_ne tension_0 sail_side_right sail_direction_s cordslack_1 ]\n\n\n[ heading_e tension_2 sail_side_left ] -> [ heading_e tension_2 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_e tension_2 sail_side_right ] -> [ heading_e tension_2 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_e tension_1 sail_side_left ] -> [ heading_e tension_1 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_e tension_1 sail_side_right ] -> [ heading_e tension_1 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_e tension_0 sail_side_left ] -> [ heading_e tension_0 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_e tension_0 sail_side_right ] -> [ heading_e tension_0 sail_side_right sail_direction_s cordslack_0 ]\n\n\n[ heading_se tension_2 sail_side_left ] -> [ heading_se tension_2 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_se tension_2 sail_side_right ] -> [ heading_se tension_2 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_se tension_1 sail_side_left ] -> [ heading_se tension_1 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_se tension_1 sail_side_right ] -> [ heading_se tension_1 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_se tension_0 sail_side_left ] -> [ heading_se tension_0 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_se tension_0 sail_side_right ] -> [ heading_se tension_0 sail_side_right sail_direction_sw cordslack_0 ]\n\n[ heading_s tension_2 sail_side_left ] -> [ heading_s tension_2 sail_side_left sail_direction_n cordslack_0 ]\n[ heading_s tension_2 sail_side_right ] -> [ heading_s tension_2 sail_side_right sail_direction_n cordslack_0 ]\n[ heading_s tension_1 sail_side_left ] -> [ heading_s tension_1 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_s tension_1 sail_side_right ] -> [ heading_s tension_1 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_s tension_0 sail_side_left ] -> [ heading_s tension_0 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_s tension_0 sail_side_right ] -> [ heading_s tension_0 sail_side_right sail_direction_w cordslack_0 ]\n\n[ heading_sw tension_2 sail_side_left ] -> [ heading_sw tension_2 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_sw tension_2 sail_side_right ] -> [ heading_sw tension_2 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_sw tension_1 sail_side_left ] -> [ heading_sw tension_1 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_sw tension_1 sail_side_right ] -> [ heading_sw tension_1 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_sw tension_0 sail_side_left ] -> [ heading_sw tension_0 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_sw tension_0 sail_side_right ] -> [ heading_sw tension_0 sail_side_left sail_direction_se cordslack_0 ]\n\n[ heading_w tension_2 sail_side_left ] -> [ heading_w tension_2 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_w tension_2 sail_side_right ] -> [ heading_w tension_2 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_w tension_1 sail_side_left ] -> [ heading_w tension_1 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_w tension_1 sail_side_right ] -> [ heading_w tension_1 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_w tension_0 sail_side_left ] -> [ heading_w tension_0 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_w tension_0 sail_side_right ] -> [ heading_w tension_0 sail_side_left sail_direction_s cordslack_0 ]\n\n[ heading_nw tension_2 sail_side_left ] -> [ heading_nw tension_2 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_nw tension_2 sail_side_right ] -> [ heading_nw tension_2 sail_side_right sail_direction_se cordslack_0 ]\n[ heading_nw tension_1 sail_side_left ] -> [ heading_nw tension_1 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_nw tension_1 sail_side_right ] -> [ heading_nw tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_nw tension_0 sail_side_left ] -> [ heading_nw tension_0 sail_side_left sail_direction_s cordslack_1 ]\n[ heading_nw tension_0 sail_side_right ] -> [ heading_nw tension_0 sail_side_right sail_direction_s cordslack_1 ]\n\n\n\n(rudder steering)\n[ left player rudderdir_c ]->[player rudderdir_l] sfx6\n[ left player rudderdir_r ]->[player rudderdir_c] sfx6\n\n[ right player rudderdir_l ]->[player rudderdir_c] sfx6\n[ right player rudderdir_c ]->[player rudderdir_r] sfx6\n\n\n[ moving player ]->[player]\n\n(Calculating the movement direction! )\n\n( [againing heading_n sail_direction_n ] -> [againing heading_n sail_direction_n movement_n ] )\n( [againing heading_n sail_direction_ne ] -> [againing heading_n sail_direction_ne movement_n ] )\n( [againing heading_n sail_direction_e ] -> [againing heading_n sail_direction_e movement_n ] )\n( [againing heading_n sail_direction_se ] -> [againing heading_n sail_direction_se movement_n ] )\n[againing heading_n sail_direction_s rudderdir_l ] -> [againing heading_n sail_direction_s rudderdir_l domove ]\n[againing heading_n sail_direction_s rudderdir_r ] -> [againing heading_n sail_direction_s rudderdir_r domove ]\n( [againing heading_n sail_direction_sw ] -> [againing heading_n sail_direction_sw movement_n ] )\n( [againing heading_n sail_direction_w ] -> [againing heading_n sail_direction_w movement_n ] )\n( [againing heading_n sail_direction_nw ] -> [againing heading_n sail_direction_nw movement_n ] )\n\n( [againing heading_ne sail_direction_n ] -> [againing heading_ne sail_direction_n movement_ne ] )\n( [againing heading_ne sail_direction_ne ] -> [againing heading_ne sail_direction_ne movement_ne ] )\n( [againing heading_ne sail_direction_e ] -> [againing heading_ne sail_direction_e movement_ne ] )\n( [againing heading_ne sail_direction_se ] -> [againing heading_ne sail_direction_se movement_ne ] )\n( [againing heading_ne sail_direction_s ] -> [againing heading_ne sail_direction_s movement_ne ] )\n[againing heading_ne sail_direction_sw ] -> [againing heading_ne sail_direction_sw domove ]\n( [againing heading_ne sail_direction_w ] -> [againing heading_ne sail_direction_w movement_ne ] )\n( [againing heading_ne sail_direction_nw ] -> [againing heading_ne sail_direction_nw movement_ne ] )\n\n( [againing heading_e sail_direction_n ] -> [againing heading_e sail_direction_n movement_e ] )\n( [againing heading_e sail_direction_ne ] -> [againing heading_e sail_direction_ne movement_e ] )\n( [againing heading_e sail_direction_e ] -> [againing heading_e sail_direction_e movement_e ] )\n( [againing heading_e sail_direction_se ] -> [againing heading_e sail_direction_se movement_e ] )\n( [againing heading_e sail_direction_s ] -> [againing heading_e sail_direction_s movement_e ] )\n[againing heading_e sail_direction_sw ] -> [againing heading_e sail_direction_sw domove ]\n( [againing heading_e sail_direction_w ] -> [againing heading_e sail_direction_w movement_e ] )\n( [againing heading_e sail_direction_nw ] -> [againing heading_e sail_direction_nw movement_e ] )\n\n( [againing heading_se sail_direction_n ] -> [againing heading_se sail_direction_n movement_se ] )\n[againing heading_se sail_direction_ne ] -> [againing heading_se sail_direction_ne domove ]\n( [againing heading_se sail_direction_e ] -> [againing heading_se sail_direction_e movement_se ] )\n( [againing heading_se sail_direction_se ] -> [againing heading_se sail_direction_se movement_se ] )\n( [againing heading_se sail_direction_s ] -> [againing heading_se sail_direction_s movement_se ] )\n[againing heading_se sail_direction_sw ] -> [againing heading_se sail_direction_sw domove ]\n[againing heading_se sail_direction_w ] -> [againing heading_se sail_direction_w domove ]\n[againing heading_se sail_direction_nw ] -> [againing heading_se sail_direction_nw domove ]\n\n( [againing heading_s sail_direction_n ] -> [againing heading_s sail_direction_n movement_s ] )\n[againing heading_s sail_direction_ne ] -> [againing heading_s sail_direction_ne domove ]\n[againing heading_s sail_direction_e ] -> [againing heading_s sail_direction_e domove ]\n( [againing heading_s sail_direction_se ] -> [againing heading_s sail_direction_se movement_s ] )\n( [againing heading_s sail_direction_s ] -> [againing heading_s sail_direction_s movement_s ] )\n( [againing heading_s sail_direction_sw ] -> [againing heading_s sail_direction_sw movement_s ] )\n[againing heading_s sail_direction_w ] -> [againing heading_s sail_direction_w domove ]\n[againing heading_s sail_direction_nw ] -> [againing heading_s sail_direction_nw domove ]\n\n( [againing heading_sw sail_direction_n ] -> [againing heading_sw sail_direction_n movement_sw ] )\n[againing heading_sw sail_direction_ne ] -> [againing heading_sw sail_direction_ne domove ]\n[againing heading_sw sail_direction_e ] -> [againing heading_sw sail_direction_e domove ]\n[againing heading_sw sail_direction_se ] -> [againing heading_sw sail_direction_se domove ]\n( [againing heading_sw sail_direction_s ] -> [againing heading_sw sail_direction_s movement_sw ] )\n( [againing heading_sw sail_direction_sw ] -> [againing heading_sw sail_direction_sw movement_sw ] )\n( [againing heading_sw sail_direction_w ] -> [againing heading_sw sail_direction_w movement_sw ] )\n[againing heading_sw sail_direction_nw ] -> [againing heading_sw sail_direction_nw domove ]\n\n\n( [againing heading_w sail_direction_n ] -> [againing heading_w sail_direction_n movement_w ] )\n( [againing heading_w sail_direction_ne ] -> [againing heading_w sail_direction_ne movement_w ] )\n( [againing heading_w sail_direction_e ] -> [againing heading_w sail_direction_e movement_w ] )\n[againing heading_w sail_direction_se ] -> [againing heading_w sail_direction_se domove ]\n( [againing heading_w sail_direction_s ] -> [againing heading_w sail_direction_s movement_w ] )\n( [againing heading_w sail_direction_sw ] -> [againing heading_w sail_direction_sw movement_w ] )\n( [againing heading_w sail_direction_w ] -> [againing heading_w sail_direction_w movement_w ] )\n( [againing heading_w sail_direction_nw ] -> [againing heading_w sail_direction_nw movement_w ] )\n\n\n( [againing heading_nw sail_direction_n ] -> [againing heading_nw sail_direction_n movement_nw ] )\n( [againing heading_nw sail_direction_ne ] -> [againing heading_nw sail_direction_ne movement_nw ] )\n( [againing heading_nw sail_direction_e ] -> [againing heading_nw sail_direction_e movement_nw ] )\n[againing heading_nw sail_direction_se ] -> [againing heading_nw sail_direction_se domove ]\n( [againing heading_nw sail_direction_s ] -> [againing heading_nw sail_direction_s movement_nw ] )\n( [againing heading_nw sail_direction_sw ] -> [againing heading_nw sail_direction_sw movement_nw ] )\n( [againing heading_nw sail_direction_w ] -> [againing heading_nw sail_direction_w movement_nw ] )\n( [againing heading_nw sail_direction_nw ] -> [againing heading_nw sail_direction_nw movement_nw ] )\n\n(rudder rotation)\n\n[ domove no hasturned ] [ rudderdir_l heading_n ] -> [ domove hasturned ] [ rudderdir_l heading_nw ]\n[ domove no hasturned ] [ rudderdir_l heading_ne ] -> [ domove hasturned ] [ rudderdir_l heading_n ]\n[ domove no hasturned ] [ rudderdir_l heading_e ] -> [ domove hasturned ] [ rudderdir_l heading_ne ]\n[ domove no hasturned ] [ rudderdir_l heading_se ] -> [ domove hasturned ] [ rudderdir_l heading_e ]\n[ domove no hasturned ] [ rudderdir_l heading_s ] -> [ domove hasturned ] [ rudderdir_l heading_se ]\n[ domove no hasturned ] [ rudderdir_l heading_sw ] -> [ domove hasturned ] [ rudderdir_l heading_s ]\n[ domove no hasturned ] [ rudderdir_l heading_w ] -> [ domove hasturned ] [ rudderdir_l heading_sw ]\n[ domove no hasturned ] [ rudderdir_l heading_nw ] -> [ domove hasturned ] [ rudderdir_l heading_w ]\n\n[ domove no hasturned ] [ rudderdir_r heading_n ] -> [ domove hasturned ] [ rudderdir_r heading_ne ]\n[ domove no hasturned ] [ rudderdir_r heading_ne ] -> [ domove hasturned ] [ rudderdir_r heading_e ]\n[ domove no hasturned ] [ rudderdir_r heading_e ] -> [ domove hasturned ] [ rudderdir_r heading_se ]\n[ domove no hasturned ] [ rudderdir_r heading_se ] -> [ domove hasturned ] [ rudderdir_r heading_s ]\n[ domove no hasturned ] [ rudderdir_r heading_s ] -> [ domove hasturned ] [ rudderdir_r heading_sw ]\n[ domove no hasturned ] [ rudderdir_r heading_sw ] -> [ domove hasturned ] [ rudderdir_r heading_w ]\n[ domove no hasturned ] [ rudderdir_r heading_w ] -> [ domove hasturned ] [ rudderdir_r heading_nw ]\n[ domove no hasturned ] [ rudderdir_r heading_nw ] -> [ domove hasturned ] [ rudderdir_r heading_n ]\n\n[hasturned]->[]\n\n\n[ domove heading_n ] -> [ heading_n movement_n ]\n[ domove heading_ne ] -> [ heading_ne movement_ne ]\n[ domove heading_e ] -> [ heading_e movement_e ]\n[ domove heading_se ] -> [ heading_se movement_se ]\n[ domove heading_s ] -> [ heading_s movement_s ]\n[ domove heading_sw ] -> [ heading_sw movement_sw ]\n[ domove heading_w ] -> [ heading_w movement_w ]\n[ domove heading_nw ] -> [ heading_nw movement_nw ]\n\nright [ movement_ne | ] -> [ | movement_n ]\nright [ movement_se | ] -> [ | movement_s ]\nleft [ movement_nw | ] -> [ | movement_n ]\nleft [ movement_sw | ] -> [ | movement_s ]\n\nup [ movement_n | ] -> [ | movement_target ]\nright [ movement_e | ] -> [ | movement_target ]\ndown [ movement_s | ] -> [ | movement_target ]\nleft [ movement_w | ] -> [ | movement_target ]\n\n\n( [ movement_target ] [ player heading rudderdir tension sail_side sail_direction ] -> [ player heading rudderdir tension sail_side sail_direction] [] )\n\n(some bug(?) whereby I can't replace the above with the below)\n\nrandom [ movement_target ] [ player ] -> [ movement_target player ] []\nrandom [ movement_target ] [ heading ] -> [ movement_target heading ] []\nrandom [ movement_target ] [ rudderdir ] -> [ movement_target rudderdir ] []\nrandom [ movement_target ] [ tension ] -> [ movement_target tension ] []\nrandom [ movement_target ] [ sail_side ] -> [ movement_target sail_side ] []\nrandom [ movement_target ] [ sail_direction ] -> [ movement_target sail_direction ] []\nrandom [ movement_target]->[]\n\n\n(calculate sail direction / cord slack)\n\n[ heading_n tension_2 sail_side_left ] -> [ heading_n tension_2 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_n tension_2 sail_side_right ] -> [ heading_n tension_2 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_n tension_1 sail_side_left ] -> [ heading_n tension_1 sail_side_left sail_direction_s cordslack_1 ]\n[ heading_n tension_1 sail_side_right ] -> [ heading_n tension_1 sail_side_right sail_direction_s cordslack_1 ]\n[ heading_n tension_0 sail_side_left ] -> [ heading_n tension_0 sail_side_left sail_direction_s cordslack_2 ]\n[ heading_n tension_0 sail_side_right ] -> [ heading_n tension_0 sail_side_right sail_direction_s cordslack_2 ]\n\n\n[ heading_ne tension_2 sail_side_left ] -> [ heading_ne tension_2 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_ne tension_2 sail_side_right ] -> [ heading_ne tension_2 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_ne tension_1 sail_side_left ] -> [ heading_ne tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_ne tension_1 sail_side_right ] -> [ heading_ne tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_ne tension_0 sail_side_left ] -> [ heading_ne tension_0 sail_side_right sail_direction_s cordslack_1 ]\n[ heading_ne tension_0 sail_side_right ] -> [ heading_ne tension_0 sail_side_right sail_direction_s cordslack_1 ]\n\n\n[ heading_e tension_2 sail_side_left ] -> [ heading_e tension_2 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_e tension_2 sail_side_right ] -> [ heading_e tension_2 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_e tension_1 sail_side_left ] -> [ heading_e tension_1 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_e tension_1 sail_side_right ] -> [ heading_e tension_1 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_e tension_0 sail_side_left ] -> [ heading_e tension_0 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_e tension_0 sail_side_right ] -> [ heading_e tension_0 sail_side_right sail_direction_s cordslack_0 ]\n\n\n[ heading_se tension_2 sail_side_left ] -> [ heading_se tension_2 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_se tension_2 sail_side_right ] -> [ heading_se tension_2 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_se tension_1 sail_side_left ] -> [ heading_se tension_1 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_se tension_1 sail_side_right ] -> [ heading_se tension_1 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_se tension_0 sail_side_left ] -> [ heading_se tension_0 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_se tension_0 sail_side_right ] -> [ heading_se tension_0 sail_side_right sail_direction_sw cordslack_0 ]\n\n[ heading_s tension_2 sail_side_left ] -> [ heading_s tension_2 sail_side_left sail_direction_n cordslack_0 ]\n[ heading_s tension_2 sail_side_right ] -> [ heading_s tension_2 sail_side_right sail_direction_n cordslack_0 ]\n[ heading_s tension_1 sail_side_left ] -> [ heading_s tension_1 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_s tension_1 sail_side_right ] -> [ heading_s tension_1 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_s tension_0 sail_side_left ] -> [ heading_s tension_0 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_s tension_0 sail_side_right ] -> [ heading_s tension_0 sail_side_right sail_direction_w cordslack_0 ]\n\n[ heading_sw tension_2 sail_side_left ] -> [ heading_sw tension_2 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_sw tension_2 sail_side_right ] -> [ heading_sw tension_2 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_sw tension_1 sail_side_left ] -> [ heading_sw tension_1 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_sw tension_1 sail_side_right ] -> [ heading_sw tension_1 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_sw tension_0 sail_side_left ] -> [ heading_sw tension_0 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_sw tension_0 sail_side_right ] -> [ heading_sw tension_0 sail_side_left sail_direction_se cordslack_0 ]\n\n[ heading_w tension_2 sail_side_left ] -> [ heading_w tension_2 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_w tension_2 sail_side_right ] -> [ heading_w tension_2 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_w tension_1 sail_side_left ] -> [ heading_w tension_1 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_w tension_1 sail_side_right ] -> [ heading_w tension_1 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_w tension_0 sail_side_left ] -> [ heading_w tension_0 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_w tension_0 sail_side_right ] -> [ heading_w tension_0 sail_side_left sail_direction_s cordslack_0 ]\n\n[ heading_nw tension_2 sail_side_left ] -> [ heading_nw tension_2 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_nw tension_2 sail_side_right ] -> [ heading_nw tension_2 sail_side_right sail_direction_se cordslack_0 ]\n[ heading_nw tension_1 sail_side_left ] -> [ heading_nw tension_1 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_nw tension_1 sail_side_right ] -> [ heading_nw tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_nw tension_0 sail_side_left ] -> [ heading_nw tension_0 sail_side_left sail_direction_s cordslack_1 ]\n[ heading_nw tension_0 sail_side_right ] -> [ heading_nw tension_0 sail_side_right sail_direction_s cordslack_1 ]\n\n( [ heading_n ] -> again )\n\n(ship-drawing)\n(orthogonal hull drawing)\nup late [ | player heading_n ] -> [ hull_n_stern | hull_n_bow player heading_n ]\nright late [ | player heading_e ] -> [ hull_e_stern | hull_e_bow player heading_e ]\ndown late [ | player heading_s ] -> [ hull_s_stern | hull_s_bow player heading_s ]\nleft late [ | player heading_w ] -> [ hull_w_stern | hull_w_bow player heading_w ]\n\n(diagonal hull drawing)\nright late [ | player heading_ne ] -> [ hull_diag_nw heading_ne | hull_ne_bow player heading_ne ]\nup late [ | player heading_ne ] -> [ hull_diag_se | hull_ne_bow player heading_ne ]\nup late [ | hull_diag_nw heading_ne ] -> [ hull_ne_stern | hull_diag_nw ]\n\ndown late [ | player heading_se ] -> [ hull_diag_ne heading_se | hull_se_bow player heading_se ]\nright late [ | player heading_se ] -> [ hull_diag_sw | hull_se_bow player heading_se ]\nright late [ | hull_diag_ne heading_se ] -> [ hull_se_stern | hull_diag_ne ]\n\nleft late [ | player heading_sw ] -> [ hull_diag_se heading_sw | hull_sw_bow player heading_sw ]\ndown late [ | player heading_sw ] -> [ hull_diag_nw | hull_sw_bow player heading_sw ]\ndown late [ | hull_diag_se heading_sw ] -> [ hull_sw_stern | hull_diag_se ]\n\n\nup late [ | player heading_nw ] -> [ hull_diag_sw heading_nw | hull_nw_bow player heading_nw ]\nleft late [ | player heading_nw ] -> [ hull_diag_ne | hull_nw_bow player heading_nw ]\nleft late [ | hull_diag_sw heading_nw ] -> [ hull_nw_stern | hull_diag_sw ]\n\n\n(rudder drawing)\nlate [ rudderdir_l ] [ hull_n_stern ] -> [rudderdir_l ] [ hull_n_stern hull_n_rl ]\nlate [ rudderdir_c ] [ hull_n_stern ] -> [rudderdir_c ] [ hull_n_stern hull_n_rc ]\nlate [ rudderdir_r ] [ hull_n_stern ] -> [rudderdir_r ] [ hull_n_stern hull_n_rr ]\n\nlate [ rudderdir_l ] [ hull_ne_stern ] -> [rudderdir_l ] [ hull_ne_stern hull_ne_rl ]\nlate [ rudderdir_c ] [ hull_ne_stern ] -> [rudderdir_c ] [ hull_ne_stern hull_ne_rc ]\nlate [ rudderdir_r ] [ hull_ne_stern ] -> [rudderdir_r ] [ hull_ne_stern hull_ne_rr ]\n\nlate [ rudderdir_l ] [ hull_e_stern ] -> [rudderdir_l ] [ hull_e_stern hull_e_rl ]\nlate [ rudderdir_c ] [ hull_e_stern ] -> [rudderdir_c ] [ hull_e_stern hull_e_rc ]\nlate [ rudderdir_r ] [ hull_e_stern ] -> [rudderdir_r ] [ hull_e_stern hull_e_rr ]\n\nlate [ rudderdir_l ] [ hull_se_stern ] -> [rudderdir_l ] [ hull_se_stern hull_se_rl ]\nlate [ rudderdir_c ] [ hull_se_stern ] -> [rudderdir_c ] [ hull_se_stern hull_se_rc ]\nlate [ rudderdir_r ] [ hull_se_stern ] -> [rudderdir_r ] [ hull_se_stern hull_se_rr ]\n\nlate [ rudderdir_l ] [ hull_s_stern ] -> [rudderdir_l ] [ hull_s_stern hull_s_rl ]\nlate [ rudderdir_c ] [ hull_s_stern ] -> [rudderdir_c ] [ hull_s_stern hull_s_rc ]\nlate [ rudderdir_r ] [ hull_s_stern ] -> [rudderdir_r ] [ hull_s_stern hull_s_rr ]\n\nlate [ rudderdir_l ] [ hull_sw_stern ] -> [rudderdir_l ] [ hull_sw_stern hull_sw_rl ]\nlate [ rudderdir_c ] [ hull_sw_stern ] -> [rudderdir_c ] [ hull_sw_stern hull_sw_rc ]\nlate [ rudderdir_r ] [ hull_sw_stern ] -> [rudderdir_r ] [ hull_sw_stern hull_sw_rr ]\n\nlate [ rudderdir_l ] [ hull_w_stern ] -> [rudderdir_l ] [ hull_w_stern hull_w_rl ]\nlate [ rudderdir_c ] [ hull_w_stern ] -> [rudderdir_c ] [ hull_w_stern hull_w_rc ]\nlate [ rudderdir_r ] [ hull_w_stern ] -> [rudderdir_r ] [ hull_w_stern hull_w_rr ]\n\nlate [ rudderdir_l ] [ hull_nw_stern ] -> [rudderdir_l ] [ hull_nw_stern hull_nw_rl ]\nlate [ rudderdir_c ] [ hull_nw_stern ] -> [rudderdir_c ] [ hull_nw_stern hull_nw_rc ]\nlate [ rudderdir_r ] [ hull_nw_stern ] -> [rudderdir_r ] [ hull_nw_stern hull_nw_rr ]\n\n(sail-drawing)\n\nlate up [ sail_direction_n | ] -> [ sail_direction_n sail_n_1 | sail_n_2 ]\nlate right [ sail_direction_e | ] -> [ sail_direction_e sail_e_1 | sail_e_2 ]\nlate down [ sail_direction_s | ] -> [ sail_direction_s sail_s_1 | sail_s_2 ]\nlate left [ sail_direction_w | ] -> [ sail_direction_w sail_w_1 | sail_w_2 ]\n\nlate right [ sail_direction_ne | ] -> [sail_direction_ne sail_ne_1 | sail_ne_2]\nlate up [ sail_ne_2 | ] -> [sail_ne_2 | sail_ne_3 ]\n\nlate down [ sail_direction_se | ] -> [sail_direction_se sail_se_1 | sail_se_2]\nlate right [ sail_se_2 | ] -> [sail_se_2 | sail_se_3 ]\n\nlate down [ sail_direction_sw | ] -> [sail_direction_sw sail_sw_1 | sail_sw_2]\nlate left [ sail_sw_2 | ] -> [sail_sw_2 | sail_sw_3 ]\n\nlate left [ sail_direction_nw | ] -> [sail_direction_nw sail_nw_1 | sail_nw_2]\nlate up [ sail_nw_2 | ] -> [sail_nw_2 | sail_nw_3 ]\n\n\n(sailcord drawing omg I'm so sorry this is terrible)\n\nlate right [cordslack_1] [ sail_s_2 | hull_nw_stern ] -> [cordslack_1] [ sail_s_2 sailcord_cordslack_south_left | hull_nw_stern sailcord_sw ]\nlate right [cordslack_0] [ sail_s_2 | hull_nw_stern ] -> [cordslack_0] [ sail_s_2 sailcord_e | hull_nw_stern sailcord_w ]\n\n\nlate down [ hull_w_stern | sail_se_3 ] -> [ hull_w_stern sailcord_s | sail_se_3 sailcord_n ]\nlate [ sail_s_2 ] [ hull_w_stern ] -> [ sail_s_2 sailcord_ne ] [ hull_w_stern sailcord_sw ]\n\nlate down [ hull_sw_stern | sail_e_2 ] -> [ hull_sw_stern sailcord_s | sail_e_2 sailcord_n ] \nlate down [ hull_sw_stern | | sail_se_3 ] -> [ hull_sw_stern sailcord_s | sailcord_ns | sail_se_3 sailcord_n ] \nlate right [ sail_nw_3 | | hull_sw_stern ] -> [ sail_nw_3 sailcord_e | sailcord_ew | hull_sw_stern sailcord_w ]\n\nlate down [ cordslack_1 | sail_s_2 hull_n_stern ] -> [ cordslack_1 | sail_s_2 hull_n_stern cordslack_1 sailcord_cordslack_south_1 ]\nlate down [ cordslack_2 | sail_s_2 hull_n_stern ] -> [ cordslack_2 | sail_s_2 hull_n_stern sailcord_cordslack_south_2 ]\n\nlate right [ hull_s_stern | sail_ne_3 ] -> [ hull_s_stern sailcord_e | sail_ne_3 sailcord_w ]\nlate [ hull_s_stern ] [ sail_e_2 ] -> [ hull_s_stern sailcord_se ] [ sail_e_2 sailcord_nw ] \nlate right [ sail_nw_3 | hull_s_stern ] -> [ sail_nw_3 sailcord_e | hull_s_stern sailcord_w ]\nlate [ sail_w_2 ] [hull_s_stern ] -> [ sail_w_2 sailcord_ne ] [hull_s_stern sailcord_sw ]\n\nlate right [cordslack_1] [ hull_ne_stern | sail_s_2 ] -> [cordslack_1] [ hull_ne_stern sailcord_se | sail_s_2 sailcord_cordslack_south_right ]\nlate right [cordslack_0] [ hull_ne_stern | sail_s_2 ] -> [cordslack_0] [ hull_ne_stern sailcord_e | sail_s_2 sailcord_w ]\n\nlate [ hull_e_stern ] [ sail_s_2 ] -> [ hull_e_stern sailcord_se] [ sail_s_2 sailcord_nw ] \nlate down [hull_e_stern | sail_sw_3 ]->[hull_e_stern sailcord_s| sail_sw_3 sailcord_n]\n\nlate down [ hull_se_stern | sail_w_2 ] -> [ hull_se_stern sailcord_s | sail_w_2 sailcord_n ] \nlate down [ hull_se_stern | | sail_sw_3 ] -> [ hull_se_stern sailcord_s |sailcord_ns| sail_sw_3 sailcord_n ] \nlate right [hull_se_stern | | sail_ne_3 ] -> [hull_se_stern sailcord_e | sailcord_ew | sail_ne_3 sailcord_w ]\n\nlate [ againing ] ->[]\nlate [ movement ] ->[]\n\n\nlate [ hull obstacle ] [ player ] -> [ hull obstacle ] [ no player wreck_1 ] sfx3\nlate [ wreck_1 ] [hull_stern] -> [ wreck_1] [wreck_2]\nlate [wreck_1] [hull] ->[wreck_1] [no hull]\n\nlate [ hull buoy ] -> [ hull ] sfx5\n\n==============\nWINCONDITIONS\n==============\n\nno buoy\n\n=======\nLEVELS\n=======\n\n\nmessage The wind comes from the north. Press left and right to adjust rudder. Press up and down to adjust the sail tension. The goal is to collect all the buoys.\n\nmessage Lake 1 of 3 \n\nq-xxxxxxxxxxxxsj\nsd............zs\n-c.............a\nd..............i\nd..............u\nd..............i\nd..........b...u\nd..............i\nhe..p..........u\nsc.............i\nd..............a\nd..........b...a\nd..............a\nd.............qs\nd.............as\nswwwwwwwwwwwww'#\n\n\nmessage Lake 2 of 3 \n\nsssss-ssxxss--sssss-sxx--sss\nsshsxxxc..zxxxxxsgsxc..zssm'\nsjsc............afd.....zv,;\nssc.............zxc......ass\nsd..........b............zss\nsse.......................a-\nssd......qwe..............ss\nssc.......aswwwwwe.....b...a\n-d........z-sm'#mswe.......a\nsd.........zv,;l,n-d.......a\njd..p.......asxs-sxc......s-\njd.........qsc.zxc........a-\njd.........zc.............a-\n-se.......................as\nssc.............b....e...qss\nsd..................qje..ahs\nsse.................ahswwsss\nshswwe.qwwwwwwwe.qwwsssss-sc\nssss-swshjs--sjswm-smss-s-c.\n\n\nmessage Lake 3 of 3\n\nsssxxxxxxxxxxxxxxxxxxxshsjs-\nssc.....r.............zxjshs\nsc...r..........r.......zhgs\nd...........r............zfj\nd.........................zs\nd..p....r............r.....a\nd................r.........a\nd.......qwwwwwe............a\nd......qsxc...zwwwwe.......a\nd.....qhd.......zxjc.......a\nd....qjsc.........c....qe..a\nd...qssc..b..e.........d...a\nd..qm-d.....qse.......qd...a\nswwv,nse...qs-swwwwwwwj-wwws\n-s------wwws-s--s-j-s-ss-s--\n\n\nmessage Congratulations: you are the best sailer in the world!\n\n",["tick",2,0,"tick",1,"tick","tick",2,"tick",0,"tick",3,3,"tick",2,"tick","tick","tick","tick",1,"tick",0,"tick","tick","tick",3,"tick"],"background land:0,0,0,0,0,0,0,0,background land tree:1,0,background house4 land:2,2,2,1,0,0,0,0,0,0,0,2,0,background coast_e land:3,0,0,0,3,\n3,3,3,3,0,0,3,0,background house3 land:4,0,0,4,0,background coast_se land:5,background:6,background coast_ne land:7,3,5,6,6,6,6,6,7,5,6,7,0,\n0,0,0,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,background coast_n land:8,0,0,background coast_s land:9,6,6,6,6,6,6,\n6,6,6,6,6,6,6,6,6,8,1,1,9,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,\n7,0,0,9,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,8,0,5,6,6,6,6,6,\n6,6,6,6,6,6,6,6,6,6,background coast_nw land:10,0,9,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,\n6,8,4,9,6,6,6,6,6,10,6,6,6,6,6,6,6,6,6,6,8,2,0,background coast_sw land:11,6,6,6,background cordslack_0 hull_se_rr sailcord_s wreck_2:12,\nbackground coast_n land sail_w_2 sailcord_n:13,background coast_w land:14,11,6,6,6,6,6,6,6,6,8,0,0,9,6,6,6,6,background coast_ne cordslack_0 heading_se land rudderdir_r sail_direction_w sail_side_right sail_w_1 tension_1 wreck_1:15,0,1,11,6,10,11,6,6,\n6,6,8,1,1,9,6,6,background buoy:16,6,6,8,0,background land mountain1:17,14,0,5,6,6,6,6,8,1,1,9,6,6,6,\n6,6,8,background land mountain4:18,background land mountain2:19,0,5,6,6,6,6,6,8,0,0,9,6,6,6,6,6,8,background land mountain_blue2:20,background land mountain3 mountain_blue1:21,9,6,6,6,\n6,6,6,8,2,0,9,6,6,6,6,6,8,background land mountain_blue3:22,background land mountain1 mountain_blue1:23,0,11,6,6,6,6,6,7,0,0,0,14,11,\n6,6,6,8,18,19,1,9,6,6,16,6,6,6,8,0,background house2 land:24,background house1 land:25,9,6,6,6,7,0,background land mountain3:26,0,5,6,\n6,6,6,6,10,18,0,0,3,5,6,6,6,6,8,1,9,6,6,6,6,6,6,8,1,1,9,6,\n6,6,6,6,6,7,3,5,6,6,6,6,6,6,8,0,0,5,6,6,6,6,6,6,6,6,6,6,\n6,6,6,10,14,0,18,9,6,6,6,6,6,6,6,6,6,6,6,6,6,7,2,4,0,0,9,6,\n6,6,6,6,6,6,6,6,6,6,6,6,6,7,0,0,0,1,11,6,6,6,6,6,16,6,6,6,\n6,6,6,6,6,8,0,1,1,0,11,6,6,6,6,6,6,6,6,6,6,6,6,6,8,0,0,0,\n0,17,14,11,6,6,6,6,6,6,6,6,6,10,14,0,1,1,0,18,19,0,0,14,0,6,6,6,\n0,14,14,14,0,4,0,0,5,0,20,21,0,0,1,0,14,14,14,1,1,1,0,0,0,0,5,6,\n",4,"1627893570488.5464"] + "North Wind Simple Sailboat Buoy Collection", + ["(MOVEMENT SHOULD BE DETERMINED BY TARGET DIRECTION not current one)\n\ntitle North Wind Simple Sailboat Buoy Collection\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #255474\ntext_color #caa786\n\nnorepeat_action\nrun_rules_on_level_start\nagain_interval 0.4\nrealtime_interval 1\n( debug )\n( verbose_logging )\n\nnoundo\n\n========\nOBJECTS\n========\n\nbuoy b\n#ac3232 #847e87\n.....\n..10.\n..1..\n..0..\n.000.\n\nBackground\n#5fcde4 #48bbd3\n00000\n00100\n01010\n10001\n00000\n\nland\n#37946e #25855e\n00000\n01000\n00000\n00010\n00000\n\npontoon1 t\n#8d614c #9e7650\n00000\n10101\n10101\n00000\n.0.0.\n\npontoon2 y\n#8d614c #9e7650\n00000\n01010\n01010\n00000\n.0.0.\n\npontoon3 u\n#8d614c #9e7650\n00000\n01110\n00000\n01110\n00000\n\npontoon4 i\n#8d614c #9e7650\n01110\n00000\n01110\n00000\n01110\n\n\npontoon5 o\n#8d614c #9e7650\n01110\n00000\n01110\n00000\n0...0\n\nmountain1\n#16724c\n....0\n...00\n..000\n.0000\n00.0.\n\nmountain2\n#16724c\n00000\n00000\n00000\n00000\n0.0.0\n\nmountain3\n#16724c\n0....\n00...\n000..\n0000.\n.0.00\n\nmountain4\n#16724c\n.....\n.....\n..0..\n.000.\n00000\n\ntree\n#37946e #8d614c #16724c\n00000\n00200\n02220\n00100\n00000\n\nmountain_blue1\n#306082\n00000\n00000\n00000\n00000\n.....\n\nmountain_blue2\n#306082 #9badb7\n....1\n...11\n..110\n.0000\n00000\n\nmountain_blue3\n#306082 #9badb7\n1....\n11...\n101..\n0000.\n00000\n\n\nrock\n#255474 #306082 #3f7296 #4e7ea1 \n..13.\n.0112\n00121\n01102\n.000.\n\n\ncoast_n\n#37946e #25855e #caa786\n22222\n.222.\n.....\n.....\n.....\n\ncoast_ne\n#37946e #25855e #caa786 #5fcde4\n22223\n.2222\n...22\n...22\n....2\n\ncoast_e\n#37946e #25855e #caa786\n....2\n...22\n...22\n...22\n....2\n\ncoast_se\n#37946e #25855e #caa786 #5fcde4\n....2\n....2\n...22\n.2222\n22223\n\ncoast_s\n#37946e #25855e #caa786\n.....\n.....\n.....\n.222.\n22222\n\ncoast_sw\n#37946e #25855e #caa786 #5fcde4\n2....\n22...\n22...\n2222.\n32222\n\ncoast_w\n#37946e #25855e #caa786\n2....\n22...\n22...\n22...\n2....\n\ncoast_nw\n#37946e #25855e #caa786 #5fcde4\n32222\n2222.\n22...\n22...\n2....\n\nhouse1\n#caa786 #8d614c #9e7650\n..000\n..000\n11111\n00000\n00020\n\nhouse2\n#caa786 #8d614c #9e7650\n.....\n.....\n.....\n...1.\n..111\n\nhouse3\n#caa786 #8d614c #9e7650\n.....\n11111\n12121\n00000\n00000\n\nhouse4\n#caa786 #8d614c #9e7650\n.....\n..1..\n.111.\n.000.\n.020.\n\n\n\n\nPlayer\n#639bff\n.....\n.....\n..0..\n.....\n.....\n\nheading_n\ntransparent\n\nheading_ne\ntransparent\n\nheading_e\ntransparent\n\nheading_se\ntransparent\n\nheading_s\ntransparent\n\nheading_sw\ntransparent\n\nheading_w\ntransparent\n\nheading_nw\ntransparent\n\nwreck_1\n#667598 #a9b5d0 brown #639bff #ffffff #d2dde3\n.000.\n01310\n01140\n0145.\n.0054\n\nwreck_2\n#667598 #a9b5d0 brown #639bff #ffffff #d2dde3\n.000.\n01110\n.1110\n..110\n.2.0.\n\nhull_n_bow\n#667598 #a9b5d0 brown\n.000.\n01110\n01110\n01110\n01110\n\nhull_n_stern\n#667598 #a9b5d0 brown\n01110\n01110\n.000.\n.....\n.....\n\nhull_n_rl\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n.2...\n2....\n\nhull_n_rc\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n..2..\n..2..\n\nhull_n_rr\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n...2.\n....2\n\nhull_ne_bow\n#667598 #a9b5d0 brown\n.00..\n0110.\n11110\n11110\n1110.\n\nhull_ne_stern\n#667598 #a9b5d0 brown\n.0111\n.0111\n..011\n...00\n.....\n\n\n\nhull_ne_rl\n#667598 #a9b5d0 brown\n.....\n.....\n22...\n.....\n.....\n\nhull_ne_rc\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n.2...\n2....\n\nhull_ne_rr\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n..2..\n..2..\n\nhull_e_bow\n#667598 #a9b5d0 brown\n0000.\n11110\n11110\n11110\n0000.\n\nhull_e_stern\n#667598 #a9b5d0 brown\n...00\n..011\n..011\n..011\n...00\n\nhull_e_rl\n#667598 #a9b5d0 brown\n2....\n.2...\n.....\n.....\n.....\n\nhull_e_rc\n#667598 #a9b5d0 brown\n.....\n.....\n22...\n.....\n.....\n\nhull_e_rr\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n.2...\n2....\n\n\n\nhull_se_bow\n#667598 #a9b5d0 brown\n1110.\n11110\n11110\n0110.\n.00..\n\nhull_se_stern\n#667598 #a9b5d0 brown\n.....\n...00\n..011\n.0111\n.0111\n\n\nhull_se_rl\n#667598 #a9b5d0 brown\n..2..\n..2..\n.....\n.....\n.....\n\nhull_se_rc\n#667598 #a9b5d0 brown\n2....\n.2...\n.....\n.....\n.....\n\nhull_se_rr\n#667598 #a9b5d0 brown\n.....\n.....\n22...\n.....\n.....\n\n\nhull_s_bow\n#667598 #a9b5d0 brown\n01110\n01110\n01110\n01110\n.000.\n\nhull_s_stern\n#667598 #a9b5d0 brown\n.....\n.....\n.000.\n01110\n01110\n\n\nhull_s_rl\n#667598 #a9b5d0 brown\n....2\n...2.\n.....\n.....\n.....\n\nhull_s_rc\n#667598 #a9b5d0 brown\n..2..\n..2..\n.....\n.....\n.....\n\nhull_s_rr\n#667598 #a9b5d0 brown\n2....\n.2...\n.....\n.....\n.....\n\nhull_sw_bow\n#667598 #a9b5d0 brown\n.0111\n01111\n01111\n.0110\n..00.\n\nhull_sw_stern\n#667598 #a9b5d0 brown\n.....\n00...\n110..\n1110.\n1110.\n\n\nhull_sw_rl\n#667598 #a9b5d0 brown\n.....\n.....\n...22\n.....\n.....\n\nhull_sw_rc\n#667598 #a9b5d0 brown\n....2\n...2.\n.....\n.....\n.....\n\nhull_sw_rr\n#667598 #a9b5d0 brown\n..2..\n..2..\n.....\n.....\n.....\n\nhull_w_bow\n#667598 #a9b5d0 brown\n.0000\n01111\n01111\n01111\n.0000\n\nhull_w_stern\n#667598 #a9b5d0 brown\n00...\n110..\n110..\n110..\n00...\n\n\n\nhull_w_rl\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n...2.\n....2\n\nhull_w_rc\n#667598 #a9b5d0 brown\n.....\n.....\n...22\n.....\n.....\n\nhull_w_rr\n#667598 #a9b5d0 brown\n....2\n...2.\n.....\n.....\n.....\n\n\nhull_nw_bow\n#667598 #a9b5d0 brown\n..00.\n.0110\n01111\n01111\n.0111\n\nhull_nw_stern\n#667598 #a9b5d0 brown\n1110.\n1110.\n110..\n00...\n.....\n\n\n\nhull_nw_rl\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n..2..\n..2..\n\nhull_nw_rc\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n...2.\n....2\n\nhull_nw_rr\n#667598 #a9b5d0 brown\n.....\n.....\n...22\n.....\n.....\n\n\nhull_diag_nw\n#667598 #a9b5d0 brown\n.....\n.....\n....0\n...01\n..011\n\n\nhull_diag_ne\n#667598 #a9b5d0 brown\n.....\n.....\n0....\n10...\n110..\n\n\nhull_diag_se\n#667598 #a9b5d0 brown\n110..\n10...\n0....\n.....\n.....\n\n\n\n\n\nhull_diag_sw\n#667598 #a9b5d0 brown\n..011\n...01\n....0\n.....\n.....\n\nsail_n_1\n#d2dde3 white\n..01.\n..1..\n.....\n.....\n.....\n\nsail_n_2\n#d2dde3 white\n.....\n.....\n..1..\n.10..\n..1..\n\n\nsail_ne_1\n#d2dde3 white\n....0\n...11\n.....\n.....\n.....\n\nsail_ne_2\n#d2dde3 white\n1....\n.....\n.....\n.....\n.....\n\nsail_ne_3\n#d2dde3 white\n.....\n.....\n..1..\n.01..\n01...\n\nsail_e_1\n#d2dde3 white\n.....\n.....\n...10\n....1\n.....\n\nsail_e_2\n#d2dde3 white\n.....\n.....\n001..\n11...\n.....\n\n\nsail_se_1\n#d2dde3 white\n.....\n.....\n.....\n...1.\n...10\n\nsail_se_2\n#d2dde3 white\n....1\n.....\n.....\n.....\n.....\n\nsail_se_3\n#d2dde3 white\n0....\n10...\n.11..\n.....\n.....\n\n\n\nsail_s_1\n#d2dde3 white\n.....\n.....\n.....\n..1..\n.10..\n\nsail_s_2\n#d2dde3 white\n..1..\n..01.\n..1..\n.....\n.....\n\n\nsail_sw_1\n#d2dde3 white\n.....\n.....\n.....\n.1...\n01...\n\nsail_sw_2\n#d2dde3 white\n1....\n.....\n.....\n.....\n.....\n\nsail_sw_3\n#d2dde3 white\n....0\n...01\n..11.\n.....\n.....\n\n\n\n\nsail_w_1\n#d2dde3 white\n.....\n.....\n01...\n1....\n.....\n\nsail_w_2\n#d2dde3 white\n.....\n.....\n..100\n...11\n.....\n\n\nsail_nw_1\n#d2dde3 white\n0....\n11...\n.....\n.....\n.....\n\nsail_nw_2\n#d2dde3 white\n....1\n.....\n.....\n.....\n.....\n\nsail_nw_3\n#d2dde3 white\n.....\n.....\n..1..\n..10.\n...10\n\nrudderdir_l\ntransparent\n\nrudderdir_c\ntransparent\n\nrudderdir_r\ntransparent\n\nsail_direction_n\ntransparent\n\nsail_direction_ne\ntransparent\n\nsail_direction_e\ntransparent\n\nsail_direction_se\ntransparent\n\nsail_direction_s\ntransparent\n\nsail_direction_sw\ntransparent\n\nsail_direction_w\ntransparent\n\nsail_direction_nw\ntransparent\n\ntension_0\ntransparent\n\ntension_1\ntransparent\n\ntension_2\ntransparent\n\nsail_side_right\ntransparent\n\nsail_side_left\ntransparent\n\ncordslack_0\ntransparent\n\ncordslack_1\ntransparent\n\ncordslack_2\ntransparent\n\nsailcord_n\n#d0535f\n..0..\n..0..\n..0..\n.....\n.....\n\nsailcord_ne\n#d0535f\n....0\n...0.\n..0..\n.....\n.....\n\nsailcord_e\n#d0535f\n.....\n.....\n..000\n.....\n.....\n\nsailcord_se\n#d0535f\n.....\n.....\n..0..\n...0.\n....0\n\nsailcord_s\n#d0535f\n.....\n.....\n..0..\n..0..\n..0..\n\n\n\nsailcord_sw\n#d0535f\n.....\n.....\n..0..\n.0...\n0....\n\n\nsailcord_w\n#d0535f\n.....\n.....\n000..\n.....\n.....\n\n\n\nsailcord_nw\n#d0535f\n0....\n.0...\n..0..\n.....\n.....\n\n\nsailcord_ns\n#d0535f\n..0..\n..0..\n..0..\n..0..\n..0..\n\nsailcord_ew\n#d0535f\n.....\n.....\n00000\n.....\n.....\n\nsailcord_cordslack_south_1\n#d0535f\n.....\n.....\n..0..\n.0.0.\n..0..\n\nsailcord_cordslack_south_2\n#d0535f\n.....\n.....\n.000.\n0...0\n.000.\n\nsailcord_cordslack_south_left\n#d0535f\n.....\n.....\n.....\n..0..\n...00\n\nsailcord_cordslack_south_right\n#d0535f\n.....\n.....\n.....\n..0..\n00...\n\nagaining\ntransparent\n\nmovement_n\ntransparent\n\nmovement_ne\ntransparent\n\nmovement_e\ntransparent\n\nmovement_se\ntransparent\n\nmovement_s\ntransparent\n\nmovement_sw\ntransparent\n\nmovement_w\ntransparent\n\nmovement_nw\ntransparent\n\nmovement_target\ntransparent\n\nhasturned\ntransparent\n\ndomove\ntransparent\n\n=======\nLEGEND\n=======\n\nhouse = house1 or house2 or house3 or house4\ncoast = coast_n or coast_ne or coast_e or coast_se or coast_s or coast_sw or coast_w or coast_nw\n\n\nsailcord = sailcord_n or sailcord_ne or sailcord_e or sailcord_Se or sailcord_s or sailcord_Sw or sailcord_w or sailcord_nw or sailcord_cordslack_south_1 or sailcord_cordslack_south_2 or sailcord_cordslack_south_left or sailcord_cordslack_south_right or sailcord_ns or sailcord_ew\n\nrudder = hull_n_rl or hull_n_rc or hull_n_rr or hull_ne_rl or hull_ne_rc or hull_ne_rr or hull_e_rl or hull_e_rc or hull_e_rr or hull_se_rl or hull_se_rc or hull_se_rr or hull_s_rl or hull_s_rc or hull_s_rr or hull_sw_rl or hull_sw_rc or hull_sw_rr or hull_w_rl or hull_w_rc or hull_w_rr or hull_nw_rl or hull_nw_rc or hull_nw_rr \n\nhull = hull_n_bow or hull_n_stern or hull_ne_bow or hull_ne_stern or hull_e_bow or hull_e_stern or hull_se_bow or hull_se_stern or hull_s_bow or hull_s_stern or hull_nw_bow or hull_nw_stern or hull_w_bow or hull_w_stern or hull_sw_bow or hull_sw_stern or hull_diag_ne or hull_diag_se or hull_diag_sw or hull_diag_nw\n\nhull_stern = hull_n_stern or hull_ne_stern or hull_e_stern or hull_se_stern or hull_s_stern or hull_sw_stern or hull_w_stern or hull_nw_stern \n\nheading = heading_n or heading_ne or heading_e or heading_se or heading_s or heading_sw or heading_w or heading_nw\n\nrudderdir = rudderdir_l or rudderdir_c or rudderdir_r\n\nsail = sail_n_1 or sail_n_2 or sail_ne_1 or sail_ne_2 or sail_ne_3 or sail_e_1 or sail_e_2 or sail_se_1 or sail_se_2 or sail_se_3 or sail_s_1 or sail_s_2 or sail_sw_1 or sail_sw_2 or sail_sw_3 or sail_w_1 or sail_w_2 or sail_nw_1 or sail_nw_2 or sail_nw_3 \n\nsail_direction = sail_direction_n or sail_direction_ne or sail_direction_e or sail_direction_se or sail_direction_s or sail_direction_sw or sail_direction_w or sail_direction_nw \n\nmountain = mountain1 or mountain2 or mountain3 or mountain4\nmountain_blue = mountain_blue1 or mountain_blue2 or mountain_blue3\npontoon = pontoon1 or pontoon2 or pontoon3 or pontoon4 or pontoon5\n\nobstacle = land or rock or pontoon\n\ntension = tension_0 or tension_1 or tension_2\nsail_side = sail_side_right or sail_side_left\ncordslack = cordslack_0 or cordslack_1 or cordslack_2\nmovement = movement_n or movement_ne or movement_e or movement_se or movement_s or movement_sw or movement_w or movement_nw\n\nwreck = wreck_1 or wreck_2\n\n. = Background\nP = Player and heading_e and rudderdir_c and tension_2 and sail_side_left\n\nw = land and coast_n\ne = land and coast_ne\nd = land and coast_e\nc = land and coast_se\nx = land and coast_s\nz = land and coast_sw\na = land and coast_w\nq = land and coast_nw\ns = land \nf = house1 and land\ng = house2 and land\nh = house3 and land\nj = house4 and land\nv = mountain1 and land\n, = mountain2 and land\nn = mountain3 and land\nm = mountain4 and land\nl = mountain_blue1 and land and mountain1\n; = mountain_blue1 and land and mountain3\n' = mountain_blue2 and land \n# = mountain_blue3 and land \n- = tree and land\nr = rock\n\n=======\nSOUNDS\n=======\nsfx0 64788707 (tight)\nsfx1 92037307 (tighten sail)\nsfx2 6725507(loose )\nsfx3 72434302 (boat crash)\nsfx5 94572100 (pick up buoy)\nsfx6 23834907(rudder change)\nstartlevel 51979900\nendgame 68419109\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nland, rock, pontoon\nmountain_blue, tree\ncoast, house,mountain, buoy\nrudder\nhull\nwreck\nPlayer\nsailcord\nsail\nheading\nrudderdir\nsail_direction\ntension\nsail_side\ncordslack\nagaining\nmovement\nmovement_target\nhasturned\ndomove\n\n======\nRULES\n======\n\n(start of autotiling code- comment out for release version)\n\n( up [ land no coast | no land ] -> [ land coast_n |] )\n( down [ land no coast | no land ] -> [ land coast_s |] )\n( right [ land no coast | no land ] -> [ land coast_e |] )\n( left [ land no coast | no land ] -> [ land coast_w |] )\n\n( right [coast_n | no land] -> [ coast_ne |] sfx6 )\n( left [coast_n | no land] -> [ coast_nw | ] sfx6 )\n\n( right [coast_s | no land] -> [ coast_se |] )\n( left [coast_s | no land] -> [ coast_sw | ] )\n\n(end of autotiling code- comment out for release version)\n\n\n[ stationary player ] -> [ stationary player againing ]\n( [ moving player ]-> again )\n\n[hull]->[]\n[rudder]->[]\n[sail]->[]\n[cordslack]->[]\n[sailcord]->[]\n\n\n\n( [ action player heading_n ]-> [ player heading_ne ] )\n( [ action player heading_ne ]-> [ player heading_e ] )\n( [ action player heading_e ]-> [ player heading_se ] )\n( [ action player heading_se ]-> [ player heading_s ] )\n( [ action player heading_s ]-> [ player heading_sw ] )\n( [ action player heading_sw ]-> [ player heading_w ] )\n( [ action player heading_w ]-> [ player heading_nw ] )\n( [ action player heading_nw ]-> [ player heading_n ] )\n\n\n[ up player tension_2 ] -> [ player tension_1 ] sfx1\n[ up player tension_1 ] -> [ player tension_0 ] sfx2\n[ down player tension_0 ] -> [ player tension_1 ] sfx1\n[ down player tension_1 ] -> [ player tension_2 ] sfx0\n\n(calculate sail direction / cord slack)\n\n[ heading_n tension_2 sail_side_left ] -> [ heading_n tension_2 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_n tension_2 sail_side_right ] -> [ heading_n tension_2 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_n tension_1 sail_side_left ] -> [ heading_n tension_1 sail_side_left sail_direction_s cordslack_1 ]\n[ heading_n tension_1 sail_side_right ] -> [ heading_n tension_1 sail_side_right sail_direction_s cordslack_1 ]\n[ heading_n tension_0 sail_side_left ] -> [ heading_n tension_0 sail_side_left sail_direction_s cordslack_2 ]\n[ heading_n tension_0 sail_side_right ] -> [ heading_n tension_0 sail_side_right sail_direction_s cordslack_2 ]\n\n\n[ heading_ne tension_2 sail_side_left ] -> [ heading_ne tension_2 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_ne tension_2 sail_side_right ] -> [ heading_ne tension_2 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_ne tension_1 sail_side_left ] -> [ heading_ne tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_ne tension_1 sail_side_right ] -> [ heading_ne tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_ne tension_0 sail_side_left ] -> [ heading_ne tension_0 sail_side_right sail_direction_s cordslack_1 ]\n[ heading_ne tension_0 sail_side_right ] -> [ heading_ne tension_0 sail_side_right sail_direction_s cordslack_1 ]\n\n\n[ heading_e tension_2 sail_side_left ] -> [ heading_e tension_2 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_e tension_2 sail_side_right ] -> [ heading_e tension_2 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_e tension_1 sail_side_left ] -> [ heading_e tension_1 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_e tension_1 sail_side_right ] -> [ heading_e tension_1 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_e tension_0 sail_side_left ] -> [ heading_e tension_0 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_e tension_0 sail_side_right ] -> [ heading_e tension_0 sail_side_right sail_direction_s cordslack_0 ]\n\n\n[ heading_se tension_2 sail_side_left ] -> [ heading_se tension_2 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_se tension_2 sail_side_right ] -> [ heading_se tension_2 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_se tension_1 sail_side_left ] -> [ heading_se tension_1 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_se tension_1 sail_side_right ] -> [ heading_se tension_1 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_se tension_0 sail_side_left ] -> [ heading_se tension_0 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_se tension_0 sail_side_right ] -> [ heading_se tension_0 sail_side_right sail_direction_sw cordslack_0 ]\n\n[ heading_s tension_2 sail_side_left ] -> [ heading_s tension_2 sail_side_left sail_direction_n cordslack_0 ]\n[ heading_s tension_2 sail_side_right ] -> [ heading_s tension_2 sail_side_right sail_direction_n cordslack_0 ]\n[ heading_s tension_1 sail_side_left ] -> [ heading_s tension_1 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_s tension_1 sail_side_right ] -> [ heading_s tension_1 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_s tension_0 sail_side_left ] -> [ heading_s tension_0 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_s tension_0 sail_side_right ] -> [ heading_s tension_0 sail_side_right sail_direction_w cordslack_0 ]\n\n[ heading_sw tension_2 sail_side_left ] -> [ heading_sw tension_2 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_sw tension_2 sail_side_right ] -> [ heading_sw tension_2 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_sw tension_1 sail_side_left ] -> [ heading_sw tension_1 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_sw tension_1 sail_side_right ] -> [ heading_sw tension_1 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_sw tension_0 sail_side_left ] -> [ heading_sw tension_0 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_sw tension_0 sail_side_right ] -> [ heading_sw tension_0 sail_side_left sail_direction_se cordslack_0 ]\n\n[ heading_w tension_2 sail_side_left ] -> [ heading_w tension_2 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_w tension_2 sail_side_right ] -> [ heading_w tension_2 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_w tension_1 sail_side_left ] -> [ heading_w tension_1 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_w tension_1 sail_side_right ] -> [ heading_w tension_1 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_w tension_0 sail_side_left ] -> [ heading_w tension_0 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_w tension_0 sail_side_right ] -> [ heading_w tension_0 sail_side_left sail_direction_s cordslack_0 ]\n\n[ heading_nw tension_2 sail_side_left ] -> [ heading_nw tension_2 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_nw tension_2 sail_side_right ] -> [ heading_nw tension_2 sail_side_right sail_direction_se cordslack_0 ]\n[ heading_nw tension_1 sail_side_left ] -> [ heading_nw tension_1 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_nw tension_1 sail_side_right ] -> [ heading_nw tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_nw tension_0 sail_side_left ] -> [ heading_nw tension_0 sail_side_left sail_direction_s cordslack_1 ]\n[ heading_nw tension_0 sail_side_right ] -> [ heading_nw tension_0 sail_side_right sail_direction_s cordslack_1 ]\n\n\n\n(rudder steering)\n[ left player rudderdir_c ]->[player rudderdir_l] sfx6\n[ left player rudderdir_r ]->[player rudderdir_c] sfx6\n\n[ right player rudderdir_l ]->[player rudderdir_c] sfx6\n[ right player rudderdir_c ]->[player rudderdir_r] sfx6\n\n\n[ moving player ]->[player]\n\n(Calculating the movement direction! )\n\n( [againing heading_n sail_direction_n ] -> [againing heading_n sail_direction_n movement_n ] )\n( [againing heading_n sail_direction_ne ] -> [againing heading_n sail_direction_ne movement_n ] )\n( [againing heading_n sail_direction_e ] -> [againing heading_n sail_direction_e movement_n ] )\n( [againing heading_n sail_direction_se ] -> [againing heading_n sail_direction_se movement_n ] )\n[againing heading_n sail_direction_s rudderdir_l ] -> [againing heading_n sail_direction_s rudderdir_l domove ]\n[againing heading_n sail_direction_s rudderdir_r ] -> [againing heading_n sail_direction_s rudderdir_r domove ]\n( [againing heading_n sail_direction_sw ] -> [againing heading_n sail_direction_sw movement_n ] )\n( [againing heading_n sail_direction_w ] -> [againing heading_n sail_direction_w movement_n ] )\n( [againing heading_n sail_direction_nw ] -> [againing heading_n sail_direction_nw movement_n ] )\n\n( [againing heading_ne sail_direction_n ] -> [againing heading_ne sail_direction_n movement_ne ] )\n( [againing heading_ne sail_direction_ne ] -> [againing heading_ne sail_direction_ne movement_ne ] )\n( [againing heading_ne sail_direction_e ] -> [againing heading_ne sail_direction_e movement_ne ] )\n( [againing heading_ne sail_direction_se ] -> [againing heading_ne sail_direction_se movement_ne ] )\n( [againing heading_ne sail_direction_s ] -> [againing heading_ne sail_direction_s movement_ne ] )\n[againing heading_ne sail_direction_sw ] -> [againing heading_ne sail_direction_sw domove ]\n( [againing heading_ne sail_direction_w ] -> [againing heading_ne sail_direction_w movement_ne ] )\n( [againing heading_ne sail_direction_nw ] -> [againing heading_ne sail_direction_nw movement_ne ] )\n\n( [againing heading_e sail_direction_n ] -> [againing heading_e sail_direction_n movement_e ] )\n( [againing heading_e sail_direction_ne ] -> [againing heading_e sail_direction_ne movement_e ] )\n( [againing heading_e sail_direction_e ] -> [againing heading_e sail_direction_e movement_e ] )\n( [againing heading_e sail_direction_se ] -> [againing heading_e sail_direction_se movement_e ] )\n( [againing heading_e sail_direction_s ] -> [againing heading_e sail_direction_s movement_e ] )\n[againing heading_e sail_direction_sw ] -> [againing heading_e sail_direction_sw domove ]\n( [againing heading_e sail_direction_w ] -> [againing heading_e sail_direction_w movement_e ] )\n( [againing heading_e sail_direction_nw ] -> [againing heading_e sail_direction_nw movement_e ] )\n\n( [againing heading_se sail_direction_n ] -> [againing heading_se sail_direction_n movement_se ] )\n[againing heading_se sail_direction_ne ] -> [againing heading_se sail_direction_ne domove ]\n( [againing heading_se sail_direction_e ] -> [againing heading_se sail_direction_e movement_se ] )\n( [againing heading_se sail_direction_se ] -> [againing heading_se sail_direction_se movement_se ] )\n( [againing heading_se sail_direction_s ] -> [againing heading_se sail_direction_s movement_se ] )\n[againing heading_se sail_direction_sw ] -> [againing heading_se sail_direction_sw domove ]\n[againing heading_se sail_direction_w ] -> [againing heading_se sail_direction_w domove ]\n[againing heading_se sail_direction_nw ] -> [againing heading_se sail_direction_nw domove ]\n\n( [againing heading_s sail_direction_n ] -> [againing heading_s sail_direction_n movement_s ] )\n[againing heading_s sail_direction_ne ] -> [againing heading_s sail_direction_ne domove ]\n[againing heading_s sail_direction_e ] -> [againing heading_s sail_direction_e domove ]\n( [againing heading_s sail_direction_se ] -> [againing heading_s sail_direction_se movement_s ] )\n( [againing heading_s sail_direction_s ] -> [againing heading_s sail_direction_s movement_s ] )\n( [againing heading_s sail_direction_sw ] -> [againing heading_s sail_direction_sw movement_s ] )\n[againing heading_s sail_direction_w ] -> [againing heading_s sail_direction_w domove ]\n[againing heading_s sail_direction_nw ] -> [againing heading_s sail_direction_nw domove ]\n\n( [againing heading_sw sail_direction_n ] -> [againing heading_sw sail_direction_n movement_sw ] )\n[againing heading_sw sail_direction_ne ] -> [againing heading_sw sail_direction_ne domove ]\n[againing heading_sw sail_direction_e ] -> [againing heading_sw sail_direction_e domove ]\n[againing heading_sw sail_direction_se ] -> [againing heading_sw sail_direction_se domove ]\n( [againing heading_sw sail_direction_s ] -> [againing heading_sw sail_direction_s movement_sw ] )\n( [againing heading_sw sail_direction_sw ] -> [againing heading_sw sail_direction_sw movement_sw ] )\n( [againing heading_sw sail_direction_w ] -> [againing heading_sw sail_direction_w movement_sw ] )\n[againing heading_sw sail_direction_nw ] -> [againing heading_sw sail_direction_nw domove ]\n\n\n( [againing heading_w sail_direction_n ] -> [againing heading_w sail_direction_n movement_w ] )\n( [againing heading_w sail_direction_ne ] -> [againing heading_w sail_direction_ne movement_w ] )\n( [againing heading_w sail_direction_e ] -> [againing heading_w sail_direction_e movement_w ] )\n[againing heading_w sail_direction_se ] -> [againing heading_w sail_direction_se domove ]\n( [againing heading_w sail_direction_s ] -> [againing heading_w sail_direction_s movement_w ] )\n( [againing heading_w sail_direction_sw ] -> [againing heading_w sail_direction_sw movement_w ] )\n( [againing heading_w sail_direction_w ] -> [againing heading_w sail_direction_w movement_w ] )\n( [againing heading_w sail_direction_nw ] -> [againing heading_w sail_direction_nw movement_w ] )\n\n\n( [againing heading_nw sail_direction_n ] -> [againing heading_nw sail_direction_n movement_nw ] )\n( [againing heading_nw sail_direction_ne ] -> [againing heading_nw sail_direction_ne movement_nw ] )\n( [againing heading_nw sail_direction_e ] -> [againing heading_nw sail_direction_e movement_nw ] )\n[againing heading_nw sail_direction_se ] -> [againing heading_nw sail_direction_se domove ]\n( [againing heading_nw sail_direction_s ] -> [againing heading_nw sail_direction_s movement_nw ] )\n( [againing heading_nw sail_direction_sw ] -> [againing heading_nw sail_direction_sw movement_nw ] )\n( [againing heading_nw sail_direction_w ] -> [againing heading_nw sail_direction_w movement_nw ] )\n( [againing heading_nw sail_direction_nw ] -> [againing heading_nw sail_direction_nw movement_nw ] )\n\n(rudder rotation)\n\n[ domove no hasturned ] [ rudderdir_l heading_n ] -> [ domove hasturned ] [ rudderdir_l heading_nw ]\n[ domove no hasturned ] [ rudderdir_l heading_ne ] -> [ domove hasturned ] [ rudderdir_l heading_n ]\n[ domove no hasturned ] [ rudderdir_l heading_e ] -> [ domove hasturned ] [ rudderdir_l heading_ne ]\n[ domove no hasturned ] [ rudderdir_l heading_se ] -> [ domove hasturned ] [ rudderdir_l heading_e ]\n[ domove no hasturned ] [ rudderdir_l heading_s ] -> [ domove hasturned ] [ rudderdir_l heading_se ]\n[ domove no hasturned ] [ rudderdir_l heading_sw ] -> [ domove hasturned ] [ rudderdir_l heading_s ]\n[ domove no hasturned ] [ rudderdir_l heading_w ] -> [ domove hasturned ] [ rudderdir_l heading_sw ]\n[ domove no hasturned ] [ rudderdir_l heading_nw ] -> [ domove hasturned ] [ rudderdir_l heading_w ]\n\n[ domove no hasturned ] [ rudderdir_r heading_n ] -> [ domove hasturned ] [ rudderdir_r heading_ne ]\n[ domove no hasturned ] [ rudderdir_r heading_ne ] -> [ domove hasturned ] [ rudderdir_r heading_e ]\n[ domove no hasturned ] [ rudderdir_r heading_e ] -> [ domove hasturned ] [ rudderdir_r heading_se ]\n[ domove no hasturned ] [ rudderdir_r heading_se ] -> [ domove hasturned ] [ rudderdir_r heading_s ]\n[ domove no hasturned ] [ rudderdir_r heading_s ] -> [ domove hasturned ] [ rudderdir_r heading_sw ]\n[ domove no hasturned ] [ rudderdir_r heading_sw ] -> [ domove hasturned ] [ rudderdir_r heading_w ]\n[ domove no hasturned ] [ rudderdir_r heading_w ] -> [ domove hasturned ] [ rudderdir_r heading_nw ]\n[ domove no hasturned ] [ rudderdir_r heading_nw ] -> [ domove hasturned ] [ rudderdir_r heading_n ]\n\n[hasturned]->[]\n\n\n[ domove heading_n ] -> [ heading_n movement_n ]\n[ domove heading_ne ] -> [ heading_ne movement_ne ]\n[ domove heading_e ] -> [ heading_e movement_e ]\n[ domove heading_se ] -> [ heading_se movement_se ]\n[ domove heading_s ] -> [ heading_s movement_s ]\n[ domove heading_sw ] -> [ heading_sw movement_sw ]\n[ domove heading_w ] -> [ heading_w movement_w ]\n[ domove heading_nw ] -> [ heading_nw movement_nw ]\n\nright [ movement_ne | ] -> [ | movement_n ]\nright [ movement_se | ] -> [ | movement_s ]\nleft [ movement_nw | ] -> [ | movement_n ]\nleft [ movement_sw | ] -> [ | movement_s ]\n\nup [ movement_n | ] -> [ | movement_target ]\nright [ movement_e | ] -> [ | movement_target ]\ndown [ movement_s | ] -> [ | movement_target ]\nleft [ movement_w | ] -> [ | movement_target ]\n\n\n( [ movement_target ] [ player heading rudderdir tension sail_side sail_direction ] -> [ player heading rudderdir tension sail_side sail_direction] [] )\n\n(some bug(?) whereby I can't replace the above with the below)\n\nrandom [ movement_target ] [ player ] -> [ movement_target player ] []\nrandom [ movement_target ] [ heading ] -> [ movement_target heading ] []\nrandom [ movement_target ] [ rudderdir ] -> [ movement_target rudderdir ] []\nrandom [ movement_target ] [ tension ] -> [ movement_target tension ] []\nrandom [ movement_target ] [ sail_side ] -> [ movement_target sail_side ] []\nrandom [ movement_target ] [ sail_direction ] -> [ movement_target sail_direction ] []\nrandom [ movement_target]->[]\n\n\n(calculate sail direction / cord slack)\n\n[ heading_n tension_2 sail_side_left ] -> [ heading_n tension_2 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_n tension_2 sail_side_right ] -> [ heading_n tension_2 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_n tension_1 sail_side_left ] -> [ heading_n tension_1 sail_side_left sail_direction_s cordslack_1 ]\n[ heading_n tension_1 sail_side_right ] -> [ heading_n tension_1 sail_side_right sail_direction_s cordslack_1 ]\n[ heading_n tension_0 sail_side_left ] -> [ heading_n tension_0 sail_side_left sail_direction_s cordslack_2 ]\n[ heading_n tension_0 sail_side_right ] -> [ heading_n tension_0 sail_side_right sail_direction_s cordslack_2 ]\n\n\n[ heading_ne tension_2 sail_side_left ] -> [ heading_ne tension_2 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_ne tension_2 sail_side_right ] -> [ heading_ne tension_2 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_ne tension_1 sail_side_left ] -> [ heading_ne tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_ne tension_1 sail_side_right ] -> [ heading_ne tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_ne tension_0 sail_side_left ] -> [ heading_ne tension_0 sail_side_right sail_direction_s cordslack_1 ]\n[ heading_ne tension_0 sail_side_right ] -> [ heading_ne tension_0 sail_side_right sail_direction_s cordslack_1 ]\n\n\n[ heading_e tension_2 sail_side_left ] -> [ heading_e tension_2 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_e tension_2 sail_side_right ] -> [ heading_e tension_2 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_e tension_1 sail_side_left ] -> [ heading_e tension_1 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_e tension_1 sail_side_right ] -> [ heading_e tension_1 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_e tension_0 sail_side_left ] -> [ heading_e tension_0 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_e tension_0 sail_side_right ] -> [ heading_e tension_0 sail_side_right sail_direction_s cordslack_0 ]\n\n\n[ heading_se tension_2 sail_side_left ] -> [ heading_se tension_2 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_se tension_2 sail_side_right ] -> [ heading_se tension_2 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_se tension_1 sail_side_left ] -> [ heading_se tension_1 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_se tension_1 sail_side_right ] -> [ heading_se tension_1 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_se tension_0 sail_side_left ] -> [ heading_se tension_0 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_se tension_0 sail_side_right ] -> [ heading_se tension_0 sail_side_right sail_direction_sw cordslack_0 ]\n\n[ heading_s tension_2 sail_side_left ] -> [ heading_s tension_2 sail_side_left sail_direction_n cordslack_0 ]\n[ heading_s tension_2 sail_side_right ] -> [ heading_s tension_2 sail_side_right sail_direction_n cordslack_0 ]\n[ heading_s tension_1 sail_side_left ] -> [ heading_s tension_1 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_s tension_1 sail_side_right ] -> [ heading_s tension_1 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_s tension_0 sail_side_left ] -> [ heading_s tension_0 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_s tension_0 sail_side_right ] -> [ heading_s tension_0 sail_side_right sail_direction_w cordslack_0 ]\n\n[ heading_sw tension_2 sail_side_left ] -> [ heading_sw tension_2 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_sw tension_2 sail_side_right ] -> [ heading_sw tension_2 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_sw tension_1 sail_side_left ] -> [ heading_sw tension_1 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_sw tension_1 sail_side_right ] -> [ heading_sw tension_1 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_sw tension_0 sail_side_left ] -> [ heading_sw tension_0 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_sw tension_0 sail_side_right ] -> [ heading_sw tension_0 sail_side_left sail_direction_se cordslack_0 ]\n\n[ heading_w tension_2 sail_side_left ] -> [ heading_w tension_2 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_w tension_2 sail_side_right ] -> [ heading_w tension_2 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_w tension_1 sail_side_left ] -> [ heading_w tension_1 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_w tension_1 sail_side_right ] -> [ heading_w tension_1 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_w tension_0 sail_side_left ] -> [ heading_w tension_0 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_w tension_0 sail_side_right ] -> [ heading_w tension_0 sail_side_left sail_direction_s cordslack_0 ]\n\n[ heading_nw tension_2 sail_side_left ] -> [ heading_nw tension_2 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_nw tension_2 sail_side_right ] -> [ heading_nw tension_2 sail_side_right sail_direction_se cordslack_0 ]\n[ heading_nw tension_1 sail_side_left ] -> [ heading_nw tension_1 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_nw tension_1 sail_side_right ] -> [ heading_nw tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_nw tension_0 sail_side_left ] -> [ heading_nw tension_0 sail_side_left sail_direction_s cordslack_1 ]\n[ heading_nw tension_0 sail_side_right ] -> [ heading_nw tension_0 sail_side_right sail_direction_s cordslack_1 ]\n\n( [ heading_n ] -> again )\n\n(ship-drawing)\n(orthogonal hull drawing)\nup late [ | player heading_n ] -> [ hull_n_stern | hull_n_bow player heading_n ]\nright late [ | player heading_e ] -> [ hull_e_stern | hull_e_bow player heading_e ]\ndown late [ | player heading_s ] -> [ hull_s_stern | hull_s_bow player heading_s ]\nleft late [ | player heading_w ] -> [ hull_w_stern | hull_w_bow player heading_w ]\n\n(diagonal hull drawing)\nright late [ | player heading_ne ] -> [ hull_diag_nw heading_ne | hull_ne_bow player heading_ne ]\nup late [ | player heading_ne ] -> [ hull_diag_se | hull_ne_bow player heading_ne ]\nup late [ | hull_diag_nw heading_ne ] -> [ hull_ne_stern | hull_diag_nw ]\n\ndown late [ | player heading_se ] -> [ hull_diag_ne heading_se | hull_se_bow player heading_se ]\nright late [ | player heading_se ] -> [ hull_diag_sw | hull_se_bow player heading_se ]\nright late [ | hull_diag_ne heading_se ] -> [ hull_se_stern | hull_diag_ne ]\n\nleft late [ | player heading_sw ] -> [ hull_diag_se heading_sw | hull_sw_bow player heading_sw ]\ndown late [ | player heading_sw ] -> [ hull_diag_nw | hull_sw_bow player heading_sw ]\ndown late [ | hull_diag_se heading_sw ] -> [ hull_sw_stern | hull_diag_se ]\n\n\nup late [ | player heading_nw ] -> [ hull_diag_sw heading_nw | hull_nw_bow player heading_nw ]\nleft late [ | player heading_nw ] -> [ hull_diag_ne | hull_nw_bow player heading_nw ]\nleft late [ | hull_diag_sw heading_nw ] -> [ hull_nw_stern | hull_diag_sw ]\n\n\n(rudder drawing)\nlate [ rudderdir_l ] [ hull_n_stern ] -> [rudderdir_l ] [ hull_n_stern hull_n_rl ]\nlate [ rudderdir_c ] [ hull_n_stern ] -> [rudderdir_c ] [ hull_n_stern hull_n_rc ]\nlate [ rudderdir_r ] [ hull_n_stern ] -> [rudderdir_r ] [ hull_n_stern hull_n_rr ]\n\nlate [ rudderdir_l ] [ hull_ne_stern ] -> [rudderdir_l ] [ hull_ne_stern hull_ne_rl ]\nlate [ rudderdir_c ] [ hull_ne_stern ] -> [rudderdir_c ] [ hull_ne_stern hull_ne_rc ]\nlate [ rudderdir_r ] [ hull_ne_stern ] -> [rudderdir_r ] [ hull_ne_stern hull_ne_rr ]\n\nlate [ rudderdir_l ] [ hull_e_stern ] -> [rudderdir_l ] [ hull_e_stern hull_e_rl ]\nlate [ rudderdir_c ] [ hull_e_stern ] -> [rudderdir_c ] [ hull_e_stern hull_e_rc ]\nlate [ rudderdir_r ] [ hull_e_stern ] -> [rudderdir_r ] [ hull_e_stern hull_e_rr ]\n\nlate [ rudderdir_l ] [ hull_se_stern ] -> [rudderdir_l ] [ hull_se_stern hull_se_rl ]\nlate [ rudderdir_c ] [ hull_se_stern ] -> [rudderdir_c ] [ hull_se_stern hull_se_rc ]\nlate [ rudderdir_r ] [ hull_se_stern ] -> [rudderdir_r ] [ hull_se_stern hull_se_rr ]\n\nlate [ rudderdir_l ] [ hull_s_stern ] -> [rudderdir_l ] [ hull_s_stern hull_s_rl ]\nlate [ rudderdir_c ] [ hull_s_stern ] -> [rudderdir_c ] [ hull_s_stern hull_s_rc ]\nlate [ rudderdir_r ] [ hull_s_stern ] -> [rudderdir_r ] [ hull_s_stern hull_s_rr ]\n\nlate [ rudderdir_l ] [ hull_sw_stern ] -> [rudderdir_l ] [ hull_sw_stern hull_sw_rl ]\nlate [ rudderdir_c ] [ hull_sw_stern ] -> [rudderdir_c ] [ hull_sw_stern hull_sw_rc ]\nlate [ rudderdir_r ] [ hull_sw_stern ] -> [rudderdir_r ] [ hull_sw_stern hull_sw_rr ]\n\nlate [ rudderdir_l ] [ hull_w_stern ] -> [rudderdir_l ] [ hull_w_stern hull_w_rl ]\nlate [ rudderdir_c ] [ hull_w_stern ] -> [rudderdir_c ] [ hull_w_stern hull_w_rc ]\nlate [ rudderdir_r ] [ hull_w_stern ] -> [rudderdir_r ] [ hull_w_stern hull_w_rr ]\n\nlate [ rudderdir_l ] [ hull_nw_stern ] -> [rudderdir_l ] [ hull_nw_stern hull_nw_rl ]\nlate [ rudderdir_c ] [ hull_nw_stern ] -> [rudderdir_c ] [ hull_nw_stern hull_nw_rc ]\nlate [ rudderdir_r ] [ hull_nw_stern ] -> [rudderdir_r ] [ hull_nw_stern hull_nw_rr ]\n\n(sail-drawing)\n\nlate up [ sail_direction_n | ] -> [ sail_direction_n sail_n_1 | sail_n_2 ]\nlate right [ sail_direction_e | ] -> [ sail_direction_e sail_e_1 | sail_e_2 ]\nlate down [ sail_direction_s | ] -> [ sail_direction_s sail_s_1 | sail_s_2 ]\nlate left [ sail_direction_w | ] -> [ sail_direction_w sail_w_1 | sail_w_2 ]\n\nlate right [ sail_direction_ne | ] -> [sail_direction_ne sail_ne_1 | sail_ne_2]\nlate up [ sail_ne_2 | ] -> [sail_ne_2 | sail_ne_3 ]\n\nlate down [ sail_direction_se | ] -> [sail_direction_se sail_se_1 | sail_se_2]\nlate right [ sail_se_2 | ] -> [sail_se_2 | sail_se_3 ]\n\nlate down [ sail_direction_sw | ] -> [sail_direction_sw sail_sw_1 | sail_sw_2]\nlate left [ sail_sw_2 | ] -> [sail_sw_2 | sail_sw_3 ]\n\nlate left [ sail_direction_nw | ] -> [sail_direction_nw sail_nw_1 | sail_nw_2]\nlate up [ sail_nw_2 | ] -> [sail_nw_2 | sail_nw_3 ]\n\n\n(sailcord drawing omg I'm so sorry this is terrible)\n\nlate right [cordslack_1] [ sail_s_2 | hull_nw_stern ] -> [cordslack_1] [ sail_s_2 sailcord_cordslack_south_left | hull_nw_stern sailcord_sw ]\nlate right [cordslack_0] [ sail_s_2 | hull_nw_stern ] -> [cordslack_0] [ sail_s_2 sailcord_e | hull_nw_stern sailcord_w ]\n\n\nlate down [ hull_w_stern | sail_se_3 ] -> [ hull_w_stern sailcord_s | sail_se_3 sailcord_n ]\nlate [ sail_s_2 ] [ hull_w_stern ] -> [ sail_s_2 sailcord_ne ] [ hull_w_stern sailcord_sw ]\n\nlate down [ hull_sw_stern | sail_e_2 ] -> [ hull_sw_stern sailcord_s | sail_e_2 sailcord_n ] \nlate down [ hull_sw_stern | | sail_se_3 ] -> [ hull_sw_stern sailcord_s | sailcord_ns | sail_se_3 sailcord_n ] \nlate right [ sail_nw_3 | | hull_sw_stern ] -> [ sail_nw_3 sailcord_e | sailcord_ew | hull_sw_stern sailcord_w ]\n\nlate down [ cordslack_1 | sail_s_2 hull_n_stern ] -> [ cordslack_1 | sail_s_2 hull_n_stern cordslack_1 sailcord_cordslack_south_1 ]\nlate down [ cordslack_2 | sail_s_2 hull_n_stern ] -> [ cordslack_2 | sail_s_2 hull_n_stern sailcord_cordslack_south_2 ]\n\nlate right [ hull_s_stern | sail_ne_3 ] -> [ hull_s_stern sailcord_e | sail_ne_3 sailcord_w ]\nlate [ hull_s_stern ] [ sail_e_2 ] -> [ hull_s_stern sailcord_se ] [ sail_e_2 sailcord_nw ] \nlate right [ sail_nw_3 | hull_s_stern ] -> [ sail_nw_3 sailcord_e | hull_s_stern sailcord_w ]\nlate [ sail_w_2 ] [hull_s_stern ] -> [ sail_w_2 sailcord_ne ] [hull_s_stern sailcord_sw ]\n\nlate right [cordslack_1] [ hull_ne_stern | sail_s_2 ] -> [cordslack_1] [ hull_ne_stern sailcord_se | sail_s_2 sailcord_cordslack_south_right ]\nlate right [cordslack_0] [ hull_ne_stern | sail_s_2 ] -> [cordslack_0] [ hull_ne_stern sailcord_e | sail_s_2 sailcord_w ]\n\nlate [ hull_e_stern ] [ sail_s_2 ] -> [ hull_e_stern sailcord_se] [ sail_s_2 sailcord_nw ] \nlate down [hull_e_stern | sail_sw_3 ]->[hull_e_stern sailcord_s| sail_sw_3 sailcord_n]\n\nlate down [ hull_se_stern | sail_w_2 ] -> [ hull_se_stern sailcord_s | sail_w_2 sailcord_n ] \nlate down [ hull_se_stern | | sail_sw_3 ] -> [ hull_se_stern sailcord_s |sailcord_ns| sail_sw_3 sailcord_n ] \nlate right [hull_se_stern | | sail_ne_3 ] -> [hull_se_stern sailcord_e | sailcord_ew | sail_ne_3 sailcord_w ]\n\nlate [ againing ] ->[]\nlate [ movement ] ->[]\n\n\nlate [ hull obstacle ] [ player ] -> [ hull obstacle ] [ no player wreck_1 ] sfx3\nlate [ wreck_1 ] [hull_stern] -> [ wreck_1] [wreck_2]\nlate [wreck_1] [hull] ->[wreck_1] [no hull]\n\nlate [ hull buoy ] -> [ hull ] sfx5\n\n==============\nWINCONDITIONS\n==============\n\nno buoy\n\n=======\nLEVELS\n=======\n\n\nmessage The wind comes from the north. Press left and right to adjust rudder. Press up and down to adjust the sail tension. The goal is to collect all the buoys.\n\nmessage Lake 1 of 3 \n\nq-xxxxxxxxxxxxsj\nsd............zs\n-c.............a\nd..............i\nd..............u\nd..............i\nd..........b...u\nd..............i\nhe..p..........u\nsc.............i\nd..............a\nd..........b...a\nd..............a\nd.............qs\nd.............as\nswwwwwwwwwwwww'#\n\n\nmessage Lake 2 of 3 \n\nsssss-ssxxss--sssss-sxx--sss\nsshsxxxc..zxxxxxsgsxc..zssm'\nsjsc............afd.....zv,;\nssc.............zxc......ass\nsd..........b............zss\nsse.......................a-\nssd......qwe..............ss\nssc.......aswwwwwe.....b...a\n-d........z-sm'#mswe.......a\nsd.........zv,;l,n-d.......a\njd..p.......asxs-sxc......s-\njd.........qsc.zxc........a-\njd.........zc.............a-\n-se.......................as\nssc.............b....e...qss\nsd..................qje..ahs\nsse.................ahswwsss\nshswwe.qwwwwwwwe.qwwsssss-sc\nssss-swshjs--sjswm-smss-s-c.\n\n\nmessage Lake 3 of 3\n\nsssxxxxxxxxxxxxxxxxxxxshsjs-\nssc.....r.............zxjshs\nsc...r..........r.......zhgs\nd...........r............zfj\nd.........................zs\nd..p....r............r.....a\nd................r.........a\nd.......qwwwwwe............a\nd......qsxc...zwwwwe.......a\nd.....qhd.......zxjc.......a\nd....qjsc.........c....qe..a\nd...qssc..b..e.........d...a\nd..qm-d.....qse.......qd...a\nswwv,nse...qs-swwwwwwwj-wwws\n-s------wwws-s--s-j-s-ss-s--\n\n\nmessage Congratulations: you are the best sailer in the world!\n\n", ["tick", 2, 0, "tick", 1, "tick", "tick", 2, "tick", 0, "tick", 3, 3, "tick", 2, "tick", "tick", "tick", "tick", 1, "tick", 0, "tick", "tick", "tick", 3, "tick"], "background land:0,0,0,0,0,0,0,0,background land tree:1,0,background house4 land:2,2,2,1,0,0,0,0,0,0,0,2,0,background coast_e land:3,0,0,0,3,\n3,3,3,3,0,0,3,0,background house3 land:4,0,0,4,0,background coast_se land:5,background:6,background coast_ne land:7,3,5,6,6,6,6,6,7,5,6,7,0,\n0,0,0,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,background coast_n land:8,0,0,background coast_s land:9,6,6,6,6,6,6,\n6,6,6,6,6,6,6,6,6,8,1,1,9,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,\n7,0,0,9,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,8,0,5,6,6,6,6,6,\n6,6,6,6,6,6,6,6,6,6,background coast_nw land:10,0,9,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,\n6,8,4,9,6,6,6,6,6,10,6,6,6,6,6,6,6,6,6,6,8,2,0,background coast_sw land:11,6,6,6,background cordslack_0 hull_se_rr sailcord_s wreck_2:12,\nbackground coast_n land sail_w_2 sailcord_n:13,background coast_w land:14,11,6,6,6,6,6,6,6,6,8,0,0,9,6,6,6,6,background coast_ne cordslack_0 heading_se land rudderdir_r sail_direction_w sail_side_right sail_w_1 tension_1 wreck_1:15,0,1,11,6,10,11,6,6,\n6,6,8,1,1,9,6,6,background buoy:16,6,6,8,0,background land mountain1:17,14,0,5,6,6,6,6,8,1,1,9,6,6,6,\n6,6,8,background land mountain4:18,background land mountain2:19,0,5,6,6,6,6,6,8,0,0,9,6,6,6,6,6,8,background land mountain_blue2:20,background land mountain3 mountain_blue1:21,9,6,6,6,\n6,6,6,8,2,0,9,6,6,6,6,6,8,background land mountain_blue3:22,background land mountain1 mountain_blue1:23,0,11,6,6,6,6,6,7,0,0,0,14,11,\n6,6,6,8,18,19,1,9,6,6,16,6,6,6,8,0,background house2 land:24,background house1 land:25,9,6,6,6,7,0,background land mountain3:26,0,5,6,\n6,6,6,6,10,18,0,0,3,5,6,6,6,6,8,1,9,6,6,6,6,6,6,8,1,1,9,6,\n6,6,6,6,6,7,3,5,6,6,6,6,6,6,8,0,0,5,6,6,6,6,6,6,6,6,6,6,\n6,6,6,10,14,0,18,9,6,6,6,6,6,6,6,6,6,6,6,6,6,7,2,4,0,0,9,6,\n6,6,6,6,6,6,6,6,6,6,6,6,6,7,0,0,0,1,11,6,6,6,6,6,16,6,6,6,\n6,6,6,6,6,8,0,1,1,0,11,6,6,6,6,6,6,6,6,6,6,6,6,6,8,0,0,0,\n0,17,14,11,6,6,6,6,6,6,6,6,6,10,14,0,1,1,0,18,19,0,0,14,0,6,6,6,\n0,14,14,14,0,4,0,0,5,0,20,21,0,0,1,0,14,14,14,1,1,1,0,0,0,0,5,6,\n", 4, "1627893570488.5464"] ], [ - "It gets its Feet Wet", - ["title It gets its Feet Wet\nauthor increpare\nhomepage www.increpare.com\n\nnorepeat_action\ncolor_palette 4\n\n( debug )\n( verbose_logging )\n\n\n\n========\nOBJECTS\n========\n\nface_pixel_brown 1\nbrown\n\nface_pixel_black 2\nblack\n\nface_pixel_lightbrown 3\nlightbrown\n\nface_pixel_pink 4\npink\n\nleg_pixel_highlighted q\nlightbrown\n\nleg_pixel_unhighlighted w\nbrown\n\nBackground\nlightblue\n\n\n\nWall\ngreen\n\nplayer\ngreen\n\n\nlegswitchmarker\ntransparent\n\nobject1 o\ngray\n\nobject2 k\nlightgray\n\nobject3 l\ndarkgray\n\n\nnofallmarker \nred\n00...\n0....\n.....\n.....\n.....\n\nleggrounded\nred\n..0..\n..00.\n.....\n.....\n.....\n\ninactivelegair\nred\n.....\n.....\n.....\n.0...\n0....\n\nbodygrounded\nred\n....0\n....0\n.....\n.....\n.....\n\nbodyraisedtag\nred\n.....\n.....\n.....\n...0.\n....0\n\ndomoveleft\ntransparent\n\ndomoveright\ntransparent \n\ncanmoveleft\nyellow\n0....\n.....\n.....\n.....\n.....\n\ncanmoveright\nyellow\n....0\n.....\n.....\n.....\n.....\n\ncanmoveup\nyellow\n..0..\n.....\n.....\n.....\n.....\n\nwater c\nblue\n\n=======\nLEGEND\n=======\n\nface_pixel = face_pixel_brown or face_pixel_black or face_pixel_lightbrown or face_pixel_pink\n\nleg = leg_pixel_highlighted or leg_pixel_unhighlighted\nobject = object1 or object2 or object3\n\n\ngondola = leg or face_pixel\nobstacle = face_pixel or wall or leg or object\nnongondolaobject = wall or object\nnonactivegondola = face_pixel or leg_pixel_unhighlighted\n\nmovable = gondola or object\n\n. = Background\n# = Wall\nP = Player\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nwater\nPlayer, Wall,face_pixel,leg_pixel_highlighted, leg_pixel_unhighlighted, object\nlegswitchmarker\nnofallmarker\nleggrounded\nbodygrounded\nbodyraisedtag\ninactivelegair\ndomoveleft\ndomoveright\ncanmoveup\ncanmoveleft\ncanmoveright\n\n======\nRULES\n======\n\n[ movable ] -> [ movable canmoveleft canmoveright canmoveup ]\n\nright [ canmoveright | wall ] -> [ | wall ]\nright [ obstacle canmoveright | obstacle no canmoveright ] -> [ obstacle | obstacle ]\n+ [ object1 no canmoveright ] [object1 canmoveright ] -> [ object1 ] [ object1 ]\n+ [ object2 no canmoveright ] [object2 canmoveright ] -> [ object2 ] [ object2 ]\n+ [ object3 no canmoveright ] [object3 canmoveright ] -> [ object3 ] [ object3 ]\n+ [ nonactivegondola no canmoveright ] [nonactivegondola canmoveright ] -> [ nonactivegondola ] [ nonactivegondola ]\n+ [ leg_pixel_highlighted no canmoveright ] [leg_pixel_highlighted canmoveright ] -> [ leg_pixel_highlighted ] [ leg_pixel_highlighted ]\n\nleft [ canmoveleft | wall ] -> [ | wall ]\nleft [ obstacle canmoveleft | obstacle no canmoveleft ] -> [ obstacle | obstacle ]\n+ [ object1 no canmoveleft ] [object1 canmoveleft ] -> [ object1 ] [ object1 ]\n+ [ object2 no canmoveleft ] [object2 canmoveleft ] -> [ object2 ] [ object2 ]\n+ [ object3 no canmoveleft ] [object3 canmoveleft ] -> [ object3 ] [ object3 ]\n+ [ nonactivegondola no canmoveleft ] [nonactivegondola canmoveleft ] -> [ nonactivegondola ] [ nonactivegondola ]\n+ [ leg_pixel_highlighted no canmoveleft ] [leg_pixel_highlighted canmoveleft ] -> [ leg_pixel_highlighted ] [ leg_pixel_highlighted ]\n\n\nup [ canmoveup | wall ] -> [ | wall ]\nup [ obstacle canmoveup | obstacle no canmoveup ] -> [ obstacle | obstacle ]\n+ [ object1 no canmoveup ] [object1 canmoveup ] -> [ object1 ] [ object1 ]\n+ [ object2 no canmoveup ] [object2 canmoveup ] -> [ object2 ] [ object2 ]\n+ [ object3 no canmoveup ] [object3 canmoveup ] -> [ object3 ] [ object3 ]\n+ [ nonactivegondola no canmoveup ] [nonactivegondola canmoveup ] -> [ nonactivegondola ] [ nonactivegondola ]\n+ [ leg_pixel_highlighted no canmoveup ] [leg_pixel_highlighted canmoveup ] -> [ leg_pixel_highlighted ] [ leg_pixel_highlighted ]\n\ndown [ leg | nongondolaobject ] -> [ leg leggrounded | nongondolaobject ]\nup [ leggrounded | leg ] -> [ leggrounded | leg leggrounded ]\n[ leggrounded ] [ gondola ] -> [ leggrounded ] [ gondola bodygrounded ]\n\ndown [leg_pixel_unhighlighted | no obstacle ] [player] -> [leg_pixel_unhighlighted | ] [ player inactivelegair ]\n\n\n(inactive leg grounded if head resting on something)\n\ndown [ face_pixel | nongondolaobject ] [ leg_pixel_unhighlighted ] [player] -> [ face_pixel | nongondolaobject ] [ leg_pixel_unhighlighted leggrounded ] [ player no inactivelegair ]\n\n(distribute movements to leg parts)\n[stationary player ] [ gondola ] -> [stationary player ] [ down gondola ] again\n\n(if gondola is pushing into object during gravity phase, cancel turn)\ndown [down gondola | nongondolaobject ] -> [ gondola nofallmarker | nongondolaobject ] again\n[nofallmarker]->cancel\n\n\n(swap legs if you press action)\n[ action player ] [ leg_pixel_highlighted ] -> [ action player ] [ leg_pixel_unhighlighted legswitchmarker ] \n[ action player ] [ leg_pixel_unhighlighted no legswitchmarker] -> [ action player ] [ leg_pixel_highlighted legswitchmarker ] \n[legswitchmarker] -> []\n\n\n(propagate motion from player to leg parts)\n[orthogonal player] [ leg_pixel_highlighted ] -> [ orthogonal player ] [ orthogonal leg_pixel_highlighted ] again\n\n\n(raise leg)\nup [ up leg_pixel_highlighted | leg_pixel_highlighted | face_pixel_brown ] -> [ | leg_pixel_highlighted | face_pixel_brown ]\n\n(lower leg into empty space if leg not grounded)\ndown [orthogonal player] [ down leg_pixel_highlighted no leggrounded | no obstacle ] -> [ player] [ down leg_pixel_highlighted | leg_pixel_highlighted ]\n\n(lower leg, pushing body up)\n\n(if pushing down while current leg is grounded, and while you have headspace, push whole gondola up)\nup [down player] [ leggrounded canmoveup ] [ gondola no bodyraisedtag | no obstacle ] -> [down player] [ leggrounded canmoveup ] [ | stationary gondola bodyraisedtag]\n\ndown [bodyraisedtag] [leg_pixel_highlighted | no obstacle ] -> [bodyraisedtag] [ leg_pixel_highlighted | leg_pixel_highlighted ]\n\n[bodyraisedtag]->[]\n\n(if active leg cannot move in the direction it would want to, mark the other leg as honorarily airborn)\n[ left player ] [ leg_pixel_highlighted no canmoveleft ] -> [ left player inactivelegair ] [ leg_pixel_highlighted leggrounded ]\n[ right player ] [ leg_pixel_highlighted no canmoveright ] -> [ right player inactivelegair ] [ leg_pixel_highlighted leggrounded ]\n\n(if moving current *grounded* leg left while other leg in air, keep it stationary and move body right instead)\n[ left player inactivelegair ] [ leg_pixel_highlighted leggrounded ] [ nonactivegondola canmoveright ] -> [ left player inactivelegair ] [ leg_pixel_highlighted leggrounded ] [ nonactivegondola domoveright ]\n\n[ domoveright ] [ moving gondola] -> [ domoveright ] [ gondola]\n\nright [ domoveright gondola | no obstacle ] -> [ | gondola ]\n\n\n\n(if moving current *grounded* leg right while other leg in air, keep it stationary and move body left instead)\n[ right player inactivelegair ] [leg_pixel_highlighted leggrounded] [ nonactivegondola canmoveleft ] -> [ right player inactivelegair ] [leg_pixel_highlighted leggrounded] [ nonactivegondola domoveleft ]\n\n[ domoveleft ] [ moving gondola] -> [ domoveleft ] [ gondola]\n\nleft [ domoveleft gondola | no obstacle ] -> [ | gondola ]\n\n(restrict horizontal leg movement)\nlate up [leg_pixel_highlighted | no gondola ] -> cancel\nlate up [leg_pixel_highlighted | face_pixel_pink ] -> cancel\nlate up [leg_pixel_unhighlighted | no gondola ] -> cancel\nlate up [leg_pixel_unhighlighted | face_pixel_pink ] -> cancel\n\n(maximum leg length)\nlate down [ leg | leg | leg | leg | leg]->cancel\n\n\n\nlate [leggrounded]->[]\nlate [bodygrounded]->[]\nlate [inactivelegair]->[]\n\nlate [canmoveleft]->[]\nlate [canmoveright]->[]\nlate [ canmoveup ]->[]\n\n==============\nWINCONDITIONS\n==============\nsome gondola on water\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n................................................................\n................................................................\n................................................................\n..................................#.............................\n..............................................#..#..#...........\n#......................###......................................\n#...............................................................\n#...............................................................\n#..12121...........................###..#.......................\n#..13231...........................###........#..#..#...........\n#..11411.....................#.#...###..........................\n#..w...q...............##################################.....##\n#..w...q............#####################################ccccc##\n#..w...q.........########################################ccccc##\n#..w...q......###########################################ccccc##\n################################################################\n##p#############################################################\n\nmessage It dips its toes in the water.\n",[3,0,0,3,1,2,2,2,2,0,3,3,4,0,0,0,3,4,1,1,0,3,1,4,2,2,4,3,2,2,4,0,0,4,1],"background:0,0,0,0,0,background wall:1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,background player:2,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,background face_pixel_brown:3,3,3,0,0,0,0,1,1,0,0,0,0,0,0,0,0,background face_pixel_black:4,background face_pixel_lightbrown:5,3,background leg_pixel_unhighlighted:6,0,0,0,1,1,0,0,0,0,0,0,0,0,3,\n4,background face_pixel_pink:7,0,0,0,0,1,1,0,0,0,0,0,0,0,0,4,5,3,background leg_pixel_highlighted:8,8,8,8,1,1,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,\n1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,\n0,0,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,\n0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,\n1,1,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,\n1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,\n0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,\n1,0,0,0,0,1,0,0,0,0,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,1,0,1,\n1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,\n0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,background water:9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,1,1,0,0,0,0,\n0,0,0,0,0,0,0,0,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,\n",1,"1627893596068.238"] + "It gets its Feet Wet", + ["title It gets its Feet Wet\nauthor increpare\nhomepage www.increpare.com\n\nnorepeat_action\ncolor_palette 4\n\n( debug )\n( verbose_logging )\n\n\n\n========\nOBJECTS\n========\n\nface_pixel_brown 1\nbrown\n\nface_pixel_black 2\nblack\n\nface_pixel_lightbrown 3\nlightbrown\n\nface_pixel_pink 4\npink\n\nleg_pixel_highlighted q\nlightbrown\n\nleg_pixel_unhighlighted w\nbrown\n\nBackground\nlightblue\n\n\n\nWall\ngreen\n\nplayer\ngreen\n\n\nlegswitchmarker\ntransparent\n\nobject1 o\ngray\n\nobject2 k\nlightgray\n\nobject3 l\ndarkgray\n\n\nnofallmarker \nred\n00...\n0....\n.....\n.....\n.....\n\nleggrounded\nred\n..0..\n..00.\n.....\n.....\n.....\n\ninactivelegair\nred\n.....\n.....\n.....\n.0...\n0....\n\nbodygrounded\nred\n....0\n....0\n.....\n.....\n.....\n\nbodyraisedtag\nred\n.....\n.....\n.....\n...0.\n....0\n\ndomoveleft\ntransparent\n\ndomoveright\ntransparent \n\ncanmoveleft\nyellow\n0....\n.....\n.....\n.....\n.....\n\ncanmoveright\nyellow\n....0\n.....\n.....\n.....\n.....\n\ncanmoveup\nyellow\n..0..\n.....\n.....\n.....\n.....\n\nwater c\nblue\n\n=======\nLEGEND\n=======\n\nface_pixel = face_pixel_brown or face_pixel_black or face_pixel_lightbrown or face_pixel_pink\n\nleg = leg_pixel_highlighted or leg_pixel_unhighlighted\nobject = object1 or object2 or object3\n\n\ngondola = leg or face_pixel\nobstacle = face_pixel or wall or leg or object\nnongondolaobject = wall or object\nnonactivegondola = face_pixel or leg_pixel_unhighlighted\n\nmovable = gondola or object\n\n. = Background\n# = Wall\nP = Player\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nwater\nPlayer, Wall,face_pixel,leg_pixel_highlighted, leg_pixel_unhighlighted, object\nlegswitchmarker\nnofallmarker\nleggrounded\nbodygrounded\nbodyraisedtag\ninactivelegair\ndomoveleft\ndomoveright\ncanmoveup\ncanmoveleft\ncanmoveright\n\n======\nRULES\n======\n\n[ movable ] -> [ movable canmoveleft canmoveright canmoveup ]\n\nright [ canmoveright | wall ] -> [ | wall ]\nright [ obstacle canmoveright | obstacle no canmoveright ] -> [ obstacle | obstacle ]\n+ [ object1 no canmoveright ] [object1 canmoveright ] -> [ object1 ] [ object1 ]\n+ [ object2 no canmoveright ] [object2 canmoveright ] -> [ object2 ] [ object2 ]\n+ [ object3 no canmoveright ] [object3 canmoveright ] -> [ object3 ] [ object3 ]\n+ [ nonactivegondola no canmoveright ] [nonactivegondola canmoveright ] -> [ nonactivegondola ] [ nonactivegondola ]\n+ [ leg_pixel_highlighted no canmoveright ] [leg_pixel_highlighted canmoveright ] -> [ leg_pixel_highlighted ] [ leg_pixel_highlighted ]\n\nleft [ canmoveleft | wall ] -> [ | wall ]\nleft [ obstacle canmoveleft | obstacle no canmoveleft ] -> [ obstacle | obstacle ]\n+ [ object1 no canmoveleft ] [object1 canmoveleft ] -> [ object1 ] [ object1 ]\n+ [ object2 no canmoveleft ] [object2 canmoveleft ] -> [ object2 ] [ object2 ]\n+ [ object3 no canmoveleft ] [object3 canmoveleft ] -> [ object3 ] [ object3 ]\n+ [ nonactivegondola no canmoveleft ] [nonactivegondola canmoveleft ] -> [ nonactivegondola ] [ nonactivegondola ]\n+ [ leg_pixel_highlighted no canmoveleft ] [leg_pixel_highlighted canmoveleft ] -> [ leg_pixel_highlighted ] [ leg_pixel_highlighted ]\n\n\nup [ canmoveup | wall ] -> [ | wall ]\nup [ obstacle canmoveup | obstacle no canmoveup ] -> [ obstacle | obstacle ]\n+ [ object1 no canmoveup ] [object1 canmoveup ] -> [ object1 ] [ object1 ]\n+ [ object2 no canmoveup ] [object2 canmoveup ] -> [ object2 ] [ object2 ]\n+ [ object3 no canmoveup ] [object3 canmoveup ] -> [ object3 ] [ object3 ]\n+ [ nonactivegondola no canmoveup ] [nonactivegondola canmoveup ] -> [ nonactivegondola ] [ nonactivegondola ]\n+ [ leg_pixel_highlighted no canmoveup ] [leg_pixel_highlighted canmoveup ] -> [ leg_pixel_highlighted ] [ leg_pixel_highlighted ]\n\ndown [ leg | nongondolaobject ] -> [ leg leggrounded | nongondolaobject ]\nup [ leggrounded | leg ] -> [ leggrounded | leg leggrounded ]\n[ leggrounded ] [ gondola ] -> [ leggrounded ] [ gondola bodygrounded ]\n\ndown [leg_pixel_unhighlighted | no obstacle ] [player] -> [leg_pixel_unhighlighted | ] [ player inactivelegair ]\n\n\n(inactive leg grounded if head resting on something)\n\ndown [ face_pixel | nongondolaobject ] [ leg_pixel_unhighlighted ] [player] -> [ face_pixel | nongondolaobject ] [ leg_pixel_unhighlighted leggrounded ] [ player no inactivelegair ]\n\n(distribute movements to leg parts)\n[stationary player ] [ gondola ] -> [stationary player ] [ down gondola ] again\n\n(if gondola is pushing into object during gravity phase, cancel turn)\ndown [down gondola | nongondolaobject ] -> [ gondola nofallmarker | nongondolaobject ] again\n[nofallmarker]->cancel\n\n\n(swap legs if you press action)\n[ action player ] [ leg_pixel_highlighted ] -> [ action player ] [ leg_pixel_unhighlighted legswitchmarker ] \n[ action player ] [ leg_pixel_unhighlighted no legswitchmarker] -> [ action player ] [ leg_pixel_highlighted legswitchmarker ] \n[legswitchmarker] -> []\n\n\n(propagate motion from player to leg parts)\n[orthogonal player] [ leg_pixel_highlighted ] -> [ orthogonal player ] [ orthogonal leg_pixel_highlighted ] again\n\n\n(raise leg)\nup [ up leg_pixel_highlighted | leg_pixel_highlighted | face_pixel_brown ] -> [ | leg_pixel_highlighted | face_pixel_brown ]\n\n(lower leg into empty space if leg not grounded)\ndown [orthogonal player] [ down leg_pixel_highlighted no leggrounded | no obstacle ] -> [ player] [ down leg_pixel_highlighted | leg_pixel_highlighted ]\n\n(lower leg, pushing body up)\n\n(if pushing down while current leg is grounded, and while you have headspace, push whole gondola up)\nup [down player] [ leggrounded canmoveup ] [ gondola no bodyraisedtag | no obstacle ] -> [down player] [ leggrounded canmoveup ] [ | stationary gondola bodyraisedtag]\n\ndown [bodyraisedtag] [leg_pixel_highlighted | no obstacle ] -> [bodyraisedtag] [ leg_pixel_highlighted | leg_pixel_highlighted ]\n\n[bodyraisedtag]->[]\n\n(if active leg cannot move in the direction it would want to, mark the other leg as honorarily airborn)\n[ left player ] [ leg_pixel_highlighted no canmoveleft ] -> [ left player inactivelegair ] [ leg_pixel_highlighted leggrounded ]\n[ right player ] [ leg_pixel_highlighted no canmoveright ] -> [ right player inactivelegair ] [ leg_pixel_highlighted leggrounded ]\n\n(if moving current *grounded* leg left while other leg in air, keep it stationary and move body right instead)\n[ left player inactivelegair ] [ leg_pixel_highlighted leggrounded ] [ nonactivegondola canmoveright ] -> [ left player inactivelegair ] [ leg_pixel_highlighted leggrounded ] [ nonactivegondola domoveright ]\n\n[ domoveright ] [ moving gondola] -> [ domoveright ] [ gondola]\n\nright [ domoveright gondola | no obstacle ] -> [ | gondola ]\n\n\n\n(if moving current *grounded* leg right while other leg in air, keep it stationary and move body left instead)\n[ right player inactivelegair ] [leg_pixel_highlighted leggrounded] [ nonactivegondola canmoveleft ] -> [ right player inactivelegair ] [leg_pixel_highlighted leggrounded] [ nonactivegondola domoveleft ]\n\n[ domoveleft ] [ moving gondola] -> [ domoveleft ] [ gondola]\n\nleft [ domoveleft gondola | no obstacle ] -> [ | gondola ]\n\n(restrict horizontal leg movement)\nlate up [leg_pixel_highlighted | no gondola ] -> cancel\nlate up [leg_pixel_highlighted | face_pixel_pink ] -> cancel\nlate up [leg_pixel_unhighlighted | no gondola ] -> cancel\nlate up [leg_pixel_unhighlighted | face_pixel_pink ] -> cancel\n\n(maximum leg length)\nlate down [ leg | leg | leg | leg | leg]->cancel\n\n\n\nlate [leggrounded]->[]\nlate [bodygrounded]->[]\nlate [inactivelegair]->[]\n\nlate [canmoveleft]->[]\nlate [canmoveright]->[]\nlate [ canmoveup ]->[]\n\n==============\nWINCONDITIONS\n==============\nsome gondola on water\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n................................................................\n................................................................\n................................................................\n..................................#.............................\n..............................................#..#..#...........\n#......................###......................................\n#...............................................................\n#...............................................................\n#..12121...........................###..#.......................\n#..13231...........................###........#..#..#...........\n#..11411.....................#.#...###..........................\n#..w...q...............##################################.....##\n#..w...q............#####################################ccccc##\n#..w...q.........########################################ccccc##\n#..w...q......###########################################ccccc##\n################################################################\n##p#############################################################\n\nmessage It dips its toes in the water.\n", [3, 0, 0, 3, 1, 2, 2, 2, 2, 0, 3, 3, 4, 0, 0, 0, 3, 4, 1, 1, 0, 3, 1, 4, 2, 2, 4, 3, 2, 2, 4, 0, 0, 4, 1], "background:0,0,0,0,0,background wall:1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,background player:2,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,background face_pixel_brown:3,3,3,0,0,0,0,1,1,0,0,0,0,0,0,0,0,background face_pixel_black:4,background face_pixel_lightbrown:5,3,background leg_pixel_unhighlighted:6,0,0,0,1,1,0,0,0,0,0,0,0,0,3,\n4,background face_pixel_pink:7,0,0,0,0,1,1,0,0,0,0,0,0,0,0,4,5,3,background leg_pixel_highlighted:8,8,8,8,1,1,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,\n1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,\n0,0,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,\n0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,\n1,1,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,\n1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,\n0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,\n1,0,0,0,0,1,0,0,0,0,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,1,0,1,\n1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,\n0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,background water:9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,1,1,0,0,0,0,\n0,0,0,0,0,0,0,0,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,\n", 1, "1627893596068.238"] ], [ - "Neoprenanzieher", - ["title Neoprenanzieher\nauthor increpare\nhomepage www.increpare.com\nnoaction\n(thanks to auditoriumjohnson + oeschmid + bvoq + plurmorant for testing)\n\nrun_rules_on_level_start\n\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\norange lightbrown\n11111\n10111\n11111\n11101\n11111\n\n\nrock\ngray darkgray\n00000\n00000\n01000\n00100\n00000\n\nPlayerbody_main\n#f9d9bb\n\nPlayerfeet\n#f9d9bb\n\nplayerhead\n#f9d9bb #5b6ee1 #d95763\n00000\n01010\n00000\n02220\n00000\n\nanzug_membran_schwarz\nblack \n\nanzug_membran_obenhalbschwarz\nblack\n00000\n00000\n00000\n.....\n.....\n\nanzug_membran_untenhalbschwarz\nblack\n.....\n.....\n00000\n00000\n00000\n\nanzuggesicht\nblack\n00000\n0...0\n0...0\n0...0\n00000\n\nanzug_l l\nblack darkgray\n.000.\n.000.\n100.1\n00000\n.0000\n\nanzug_r r\nblack darkgray\n.000.\n.000.\n1.001\n00000\n0000.\n\nanzug_band_dick\nblack darkgray\n1111.\n00000\n00000\n00001\n1111.\n\nanzug_band_dunn\nblack darkgray\n.....\n11111\n00000\n11111\n.....\n\n\nwater w\n#5b6ee1 lightblue\n11111\n11011\n10101\n01110\n11111\n\nhaligned\ntransparent\n\nziehbarrieredown\n#00ffff\n..0..\n.....\n.....\n.....\n.....\n\nziehbarriereup\nwhite\n....0\n.....\n.....\n.....\n.....\n\nmembrane_oben\nred\n.....\n....0\n.....\n.....\n.....\n\nmembrane_unten\nyellow\n.....\n.....\n....0\n.....\n.....\n\nziehend_nördlich\npink\n.....\n.....\n.....\n....0\n.....\n\nziehend_südlich\npurple\n.....\n.....\n.....\n.....\n....0\n\nanzugdehnen\ntransparent\n\n=======\nLEGEND\n=======\n\nziehend = ziehend_nördlich or ziehend_südlich\nanzug_membran = anzug_membran_schwarz or anzug_membran_obenhalbschwarz or anzug_membran_untenhalbschwarz \nziehbarriere = ziehbarrieredown or ziehbarriereup\nplayerbody = Playerbody_main\nplayer = Playerbody or playerhead or Playerfeet\nanzug_band = anzug_band_dick or anzug_band_dunn\nanzug = anzug_l or anzug_r or anzug_band\npushable = player or anzug_l or anzug_r\nnoplayerpushable = anzug_l or anzug_r\nanzugrand = anzug_l or anzug_r\nirgendangezug = anzug_membran or anzuggesicht\nanzugprop = rock \nmembrane = membrane_oben or membrane_unten\n. = Background\n# = rock\nP = Playerbody_main\nh = playerhead\nf = Playerfeet\nkanntrag = player or rock\n\n\n=======\nSOUNDS\n=======\n\nsfx0 83395901 (suit fit)\nsfx1 51989101 (waterstep)\n\n================\nCOLLISIONLAYERS\n================\n\nhaligned\nmembrane\nziehbarriere\nziehend\nanzugdehnen\n\nBackground\nwater\nPlayer, rock, anzug_l, anzug_r\nanzug_band, anzuggesicht\nanzug_membran\n\n======\nRULES\n======\n\n[player]->again\n\nhorizontal [ > player | anzug_membran_schwarz no player | no player ]->cancel \n\nright [ anzug_l | playerhead ziehend_nördlich no ziehbarriere | no ziehbarriere | anzug_r ] -> [ | playerhead anzuggesicht | | ] sfx0\nright [ anzug_l | no ziehbarriere | no ziehbarriere playerhead ziehend_nördlich| anzug_r ] -> [ | | playerhead anzuggesicht | ] sfx0\n\n(allow you to push band from middle if you are membranized and hitting it with a new part of your body)\nvertical [ > player anzug_membran_schwarz | no player anzug_band ] [anzug_l] [anzug_r] -> [ > player anzug_membran_schwarz | anzug_band ] [> anzug_l] [> anzug_r]\n\nright [anzug_l | right player ] -> [ right anzug_l | right player ]\nleft [anzug_r | left player ] -> [ left anzug_r | left player ]\n[ > player | rock ] -> cancel\n[ > player | anzugrand | ziehbarriere ] -> cancel\n[ > player | anzugrand | rock ] -> cancel\n\n[ > player | pushable ] -> [ > player | > pushable ]\n\nright [ horizontal anzug_l | | | stationary anzug_r ] -> [ horizontal anzug_l | | | horizontal anzug_r ]\nright [ stationary anzug_l | | | horizontal anzug_r ] -> [ horizontal anzug_l | | | horizontal anzug_r ]\nright [ vertical anzug_l | ... | stationary anzug_r ] -> [ vertical anzug_l | ... | vertical anzug_r ]\nright [ stationary anzug_l | ... | vertical anzug_r ] -> [ vertical anzug_l | ... | vertical anzug_r ]\n\n[ vertical anzug_l ] [ anzug_band ] -> [ vertical anzug_l ] [ vertical anzug_band ] \n\nright [ anzug_l | moving player | | player | anzug_r ] -> [ moving anzug_l | moving player | | player | moving anzug_r ]\n\n(start tracking membrane points)\ndown [ > anzug_band no kanntrag | kanntrag no anzug_membran ] -> [ > anzug_band | kanntrag membrane_oben ]\n[ up anzug_band membrane_oben ] -> [ up anzug_band ]\n\nup [ > anzug_band no kanntrag | kanntrag no anzug_membran ] -> [ > anzug_band | kanntrag membrane_unten ]\n[ down anzug_band membrane_unten ] -> [ down anzug_band ]\n\n\n[ stationary player ] [ anzug_l |...|anzug_r] -> [ stationary player ] [ > anzug_l | ...|< anzug_r]\n[ stationary player ] [ anzug_l | | |anzug_r] -> [ stationary player ] [ stationary anzug_l | | | stationary anzug_r]\n\n[ > anzugrand | ziehbarriere ] -> [ anzugrand | ziehbarriere ]\n\n(if player is pushing an anzugbarriere from the outside, cancel moveoment)\n\nhorizontal [ > player no anzug_membran | anzug_membran] ->cancel\n\n(ziehend moves with player)\n[ moving player ziehend ] -> [ moving player moving ziehend ]\n\n\n\n\n(going down to put things on)\ndown [ > player no ziehend | anzug_band ] -> [ > player > ziehend_nördlich | anzug_band ]\nup [ > player no ziehend | anzug_band ] -> [ > player > ziehend_südlich | anzug_band ]\n(going up to remove things)\nup [ > player anzug_band ziehend_nördlich ] -> [ > player anzug_band ]\ndown [ > player anzug_band ziehend_südlich ] -> [ > player anzug_band ]\n\n\n\n\nlate [ anzuggesicht ] [ playerhead no anzuggesicht ] -> [ anzuggesicht ] [ playerhead anzuggesicht ]\nlate [ anzuggesicht no playerhead ] -> [ ]\n\nlate right [ anzug_l | | anzug_r ] -> cancel\n\n(require suit to be horizontally aligned)\nlate right [anzug_l | ... | anzug_r ] -> [ anzug_l haligned | ... | anzug_r ]\nlate [anzug_l no haligned ] -> cancel\nlate [haligned ]->[]\n\nlate [ anzug_band]->[]\nlate right [anzug_l | | | anzug_r ] -> [anzug_l | anzug_band_dick | anzug_band_dick | anzug_r ] \nlate right [ anzug_l | no anzug_band ] -> [anzug_l | anzug_band_dunn ]\nlate right [ anzug_band_dunn| no anzug_r ] -> [ anzug_band_dunn| anzug_band_dunn]\n\n(draw membrane)\nlate [ anzug_membran ] -> []\nlate [ ziehbarriere ] -> []\n\n(down)\n\nlate down [ membrane_oben | no ziehbarrieredown ] -> [ membrane_oben | ziehbarrieredown ]\nlate down [ ziehbarrieredown | no ziehbarrieredown ] -> [ ziehbarrieredown | ziehbarrieredown ]\n\n\nlate down [ membrane_oben anzug_band ] -> [membrane_oben anzug_band anzug_membran_obenhalbschwarz]\nlate down [ membrane_oben no anzug_band ] -> [membrane_oben anzug_membran_schwarz]\nlate down [ anzug_membran_schwarz | ziehbarrieredown no anzug_membran_schwarz no anzug_band ] -> [anzug_membran_schwarz |anzug_membran_schwarz]\nlate down [ anzug_membran_schwarz | anzug_band ] -> [ anzug_membran_schwarz | anzug_band anzug_membran_obenhalbschwarz ]\n\n\n(and up)\n\nlate up [ membrane_unten | no ziehbarriereup ] -> [ membrane_unten | ziehbarriereup ]\nlate up [ ziehbarriereup | no ziehbarriereup ] -> [ ziehbarriereup | ziehbarriereup ]\n\nlate up [ membrane_unten anzug_band ] -> [membrane_unten anzug_band anzug_membran_untenhalbschwarz]\nlate up [ membrane_unten no anzug_band ] -> [membrane_unten anzug_membran_schwarz]\nlate up [ anzug_membran_schwarz | ziehbarriereup no anzug_membran_schwarz no anzug_band ] -> [anzug_membran_schwarz |anzug_membran_schwarz]\nlate up [ anzug_membran_schwarz | anzug_band ] -> [ anzug_membran_schwarz | anzug_band anzug_membran_untenhalbschwarz ]\n\n\n\n\n\nlate down [ player ziehend_südlich | player anzug_band no ziehend_südlich ] -> [ player ziehend_südlich | player anzug_band ziehend_südlich ]\nlate up [ player ziehend_nördlich | player anzug_band no ziehend_nördlich ] -> [ player ziehend_nördlich | player anzug_band ziehend_nördlich ]\n\n\n(tidy up ziehends that are north of band, but also remove them as they leave)\nlate down [ ziehend_nördlich | anzug_band ] -> [ |anzug_band]\nlate up [ ziehend_südlich | anzug_band ] -> [ |anzug_band]\n\n(draw suit on person)\nlate [ anzug_band ziehend_nördlich ] -> [ anzug_band ziehend_nördlich anzug_membran_untenhalbschwarz ]\nlate [ anzug_band ziehend_südlich ] -> [ anzug_band ziehend_südlich anzug_membran_obenhalbschwarz ]\nlate [ no anzug_band ziehend ] -> [ ziehend anzug_membran_schwarz ]\n\n(Draw stretched head bit)\n\nlate up [ playerhead no anzuggesicht ziehend_nördlich anzug_membran_schwarz | ] -> [ playerhead ziehend_nördlich anzug_membran_schwarz |anzugdehnen]\nlate up [ no anzug_band anzugdehnen | ] -> [ anzugdehnen | anzugdehnen ]\nlate [anzugdehnen no anzug_band ] -> [ anzugdehnen anzug_membran_schwarz ]\nlate [anzugdehnen anzug_band ] -> [ anzugdehnen anzug_membran_untenhalbschwarz ]\nlate [anzugdehnen ziehbarriere ]->cancel\nlate [anzugdehnen rock ]->cancel\nlate [anzugdehnen anzugrand ]->cancel\nlate [anzugdehnen]->[]\n\n(Draw stretched leg big)\n\nlate down [ Playerfeet ziehend_südlich anzug_membran_schwarz | ] -> [ Playerfeet ziehend_südlich anzug_membran_schwarz |anzugdehnen]\nlate down [ no anzug_band anzugdehnen | ] -> [ anzugdehnen | anzugdehnen ]\nlate [anzugdehnen no anzug_band ] -> [ anzugdehnen anzug_membran_schwarz ]\nlate [anzugdehnen anzug_band ] -> [ anzugdehnen anzug_membran_obenhalbschwarz ]\nlate [anzugdehnen ziehbarriere ]->cancel\nlate [anzugdehnen rock ]->cancel\nlate [anzugdehnen anzugrand ]->cancel\nlate [anzugdehnen]->[]\n\nlate [ anzuggesicht ] -> [ anzuggesicht no anzug_membran_schwarz ]\n\nlate horizontal [ziehbarriere ziehend anzug_band |no ziehbarriere ziehend ]-> cancel\nlate [ player no irgendangezug water ]->cancel\n\nlate [ player irgendangezug water ] -> sfx1\n\n\n(stop stretched bits from going OOB)\n\n==============\nWINCONDITIONS\n==============\nsome anzuggesicht\nall player on water\nsome anzuggesicht\n\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 1\n\nmessage Kann kaum warten in den See zu springen. Muss aber erst meinen Neoprenanzug anziehen...\n\n######################################\n##############..........##############\n############..............############\n#######......................#########\n######...........................#####\n######....................h.......####\n#####...................ppppp......###\n#####....................pfp........##\n#####....................p.p........##\n#####..............#.....f.f.........#\n#####.......#......#.................#\n#####..............#.......l..r......#\n#####................................#\n###ww................................#\n##wwwww..............................#\n##wwwwwww...........................##\n##wwwwwwwww.........................##\n#wwwwwwwwwwwww......................##\n#wwwwwwwwwwwwwwww...#####..........###\n#wwwwwwwwwwwwwwwwwwww#####......######\n#wwwwwwwwwwwwwwwwwwww#################\n#wwwwwwwwwwwwwwwwwwww#################\n##wwwwwwwwwwwwwwwwww##################\n###wwwwwwwwwwwwwww####################\n####wwwwwwwwwww#######################\n######################################\n\n\n\nmessage Scheisse! Das Wasser is so verdammt kalt!\n",[3,3,3,2,3,2,1,1,1,1,1,1,1,2,2,1,0,0,3,3,3,2,2,2,2,1,2,1,0,0,0,0,0,3,0,0,0,0,0,1,1,1,1,3,2,3,3,3,3,2,2,2,2,3,3,3,2,2,2,1,1,1,1,1,1,0,0,3,3,3,2,2,2,2,1,1,2,2,1,0,2,2,0,0,2,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,1,1,1,0,0,0,0,3,2,2,2,2,3,3,2,3,3,3,3,3,2,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,3,3],"background rock: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,background water:1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,background:2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,\n1,1,1,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,2,2,2,2,2,\n2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,\n1,1,1,1,1,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,0,0,0,0,2,2,2,\n2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,0,0,0,0,2,2,2,anzug_l background:3,2,2,2,2,2,2,2,2,2,2,1,\n1,1,1,1,1,1,1,0,background rock ziehbarriereup:4,4,background ziehbarriereup:5,5,5,5,anzug_band_dunn anzug_membran_untenhalbschwarz background ziehbarriereup:6,anzug_membran_schwarz background:7,7,7,anzug_membran_schwarz background membrane_unten rock:8,2,2,2,2,2,2,1,1,1,1,1,1,1,1,0,0,0,2,2,\n2,2,anzug_band_dunn background:9,2,2,2,2,2,2,2,2,2,2,1,1,1,anzug_membran_schwarz background playerbody_main water ziehend_nördlich:10,1,1,1,1,0,0,2,2,2,2,2,9,2,2,2,2,2,2,2,2,2,\n2,2,1,1,10,10,10,anzug_membran_schwarz background playerfeet water ziehend_nördlich:11,1,0,0,2,2,2,2,2,anzug_membran_untenhalbschwarz background:12,7,7,7,7,7,7,7,7,7,7,7,anzug_membran_schwarz background water:13,anzug_membran_schwarz background playerhead water ziehend_nördlich:14,10,11,1,1,0,0,0,2,\n2,2,2,2,9,2,2,2,2,2,2,2,2,2,2,2,1,1,10,10,10,11,0,0,0,2,2,2,2,2,9,2,2,2,2,2,2,2,\n2,2,2,2,2,1,10,1,1,1,0,0,0,2,2,2,2,2,9,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,0,0,0,\n4,5,5,5,5,5,6,7,7,anzug_membran_schwarz background rock:15,15,8,2,2,2,2,2,2,2,1,1,1,1,0,0,0,0,2,2,2,2,2,anzug_r background:16,2,2,2,2,2,\n2,2,2,2,2,2,0,1,1,1,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,\n0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,\n0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,\n2,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",2,"1627893621526.3992"] + "Neoprenanzieher", + ["title Neoprenanzieher\nauthor increpare\nhomepage www.increpare.com\nnoaction\n(thanks to auditoriumjohnson + oeschmid + bvoq + plurmorant for testing)\n\nrun_rules_on_level_start\n\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\norange lightbrown\n11111\n10111\n11111\n11101\n11111\n\n\nrock\ngray darkgray\n00000\n00000\n01000\n00100\n00000\n\nPlayerbody_main\n#f9d9bb\n\nPlayerfeet\n#f9d9bb\n\nplayerhead\n#f9d9bb #5b6ee1 #d95763\n00000\n01010\n00000\n02220\n00000\n\nanzug_membran_schwarz\nblack \n\nanzug_membran_obenhalbschwarz\nblack\n00000\n00000\n00000\n.....\n.....\n\nanzug_membran_untenhalbschwarz\nblack\n.....\n.....\n00000\n00000\n00000\n\nanzuggesicht\nblack\n00000\n0...0\n0...0\n0...0\n00000\n\nanzug_l l\nblack darkgray\n.000.\n.000.\n100.1\n00000\n.0000\n\nanzug_r r\nblack darkgray\n.000.\n.000.\n1.001\n00000\n0000.\n\nanzug_band_dick\nblack darkgray\n1111.\n00000\n00000\n00001\n1111.\n\nanzug_band_dunn\nblack darkgray\n.....\n11111\n00000\n11111\n.....\n\n\nwater w\n#5b6ee1 lightblue\n11111\n11011\n10101\n01110\n11111\n\nhaligned\ntransparent\n\nziehbarrieredown\n#00ffff\n..0..\n.....\n.....\n.....\n.....\n\nziehbarriereup\nwhite\n....0\n.....\n.....\n.....\n.....\n\nmembrane_oben\nred\n.....\n....0\n.....\n.....\n.....\n\nmembrane_unten\nyellow\n.....\n.....\n....0\n.....\n.....\n\nziehend_nördlich\npink\n.....\n.....\n.....\n....0\n.....\n\nziehend_südlich\npurple\n.....\n.....\n.....\n.....\n....0\n\nanzugdehnen\ntransparent\n\n=======\nLEGEND\n=======\n\nziehend = ziehend_nördlich or ziehend_südlich\nanzug_membran = anzug_membran_schwarz or anzug_membran_obenhalbschwarz or anzug_membran_untenhalbschwarz \nziehbarriere = ziehbarrieredown or ziehbarriereup\nplayerbody = Playerbody_main\nplayer = Playerbody or playerhead or Playerfeet\nanzug_band = anzug_band_dick or anzug_band_dunn\nanzug = anzug_l or anzug_r or anzug_band\npushable = player or anzug_l or anzug_r\nnoplayerpushable = anzug_l or anzug_r\nanzugrand = anzug_l or anzug_r\nirgendangezug = anzug_membran or anzuggesicht\nanzugprop = rock \nmembrane = membrane_oben or membrane_unten\n. = Background\n# = rock\nP = Playerbody_main\nh = playerhead\nf = Playerfeet\nkanntrag = player or rock\n\n\n=======\nSOUNDS\n=======\n\nsfx0 83395901 (suit fit)\nsfx1 51989101 (waterstep)\n\n================\nCOLLISIONLAYERS\n================\n\nhaligned\nmembrane\nziehbarriere\nziehend\nanzugdehnen\n\nBackground\nwater\nPlayer, rock, anzug_l, anzug_r\nanzug_band, anzuggesicht\nanzug_membran\n\n======\nRULES\n======\n\n[player]->again\n\nhorizontal [ > player | anzug_membran_schwarz no player | no player ]->cancel \n\nright [ anzug_l | playerhead ziehend_nördlich no ziehbarriere | no ziehbarriere | anzug_r ] -> [ | playerhead anzuggesicht | | ] sfx0\nright [ anzug_l | no ziehbarriere | no ziehbarriere playerhead ziehend_nördlich| anzug_r ] -> [ | | playerhead anzuggesicht | ] sfx0\n\n(allow you to push band from middle if you are membranized and hitting it with a new part of your body)\nvertical [ > player anzug_membran_schwarz | no player anzug_band ] [anzug_l] [anzug_r] -> [ > player anzug_membran_schwarz | anzug_band ] [> anzug_l] [> anzug_r]\n\nright [anzug_l | right player ] -> [ right anzug_l | right player ]\nleft [anzug_r | left player ] -> [ left anzug_r | left player ]\n[ > player | rock ] -> cancel\n[ > player | anzugrand | ziehbarriere ] -> cancel\n[ > player | anzugrand | rock ] -> cancel\n\n[ > player | pushable ] -> [ > player | > pushable ]\n\nright [ horizontal anzug_l | | | stationary anzug_r ] -> [ horizontal anzug_l | | | horizontal anzug_r ]\nright [ stationary anzug_l | | | horizontal anzug_r ] -> [ horizontal anzug_l | | | horizontal anzug_r ]\nright [ vertical anzug_l | ... | stationary anzug_r ] -> [ vertical anzug_l | ... | vertical anzug_r ]\nright [ stationary anzug_l | ... | vertical anzug_r ] -> [ vertical anzug_l | ... | vertical anzug_r ]\n\n[ vertical anzug_l ] [ anzug_band ] -> [ vertical anzug_l ] [ vertical anzug_band ] \n\nright [ anzug_l | moving player | | player | anzug_r ] -> [ moving anzug_l | moving player | | player | moving anzug_r ]\n\n(start tracking membrane points)\ndown [ > anzug_band no kanntrag | kanntrag no anzug_membran ] -> [ > anzug_band | kanntrag membrane_oben ]\n[ up anzug_band membrane_oben ] -> [ up anzug_band ]\n\nup [ > anzug_band no kanntrag | kanntrag no anzug_membran ] -> [ > anzug_band | kanntrag membrane_unten ]\n[ down anzug_band membrane_unten ] -> [ down anzug_band ]\n\n\n[ stationary player ] [ anzug_l |...|anzug_r] -> [ stationary player ] [ > anzug_l | ...|< anzug_r]\n[ stationary player ] [ anzug_l | | |anzug_r] -> [ stationary player ] [ stationary anzug_l | | | stationary anzug_r]\n\n[ > anzugrand | ziehbarriere ] -> [ anzugrand | ziehbarriere ]\n\n(if player is pushing an anzugbarriere from the outside, cancel moveoment)\n\nhorizontal [ > player no anzug_membran | anzug_membran] ->cancel\n\n(ziehend moves with player)\n[ moving player ziehend ] -> [ moving player moving ziehend ]\n\n\n\n\n(going down to put things on)\ndown [ > player no ziehend | anzug_band ] -> [ > player > ziehend_nördlich | anzug_band ]\nup [ > player no ziehend | anzug_band ] -> [ > player > ziehend_südlich | anzug_band ]\n(going up to remove things)\nup [ > player anzug_band ziehend_nördlich ] -> [ > player anzug_band ]\ndown [ > player anzug_band ziehend_südlich ] -> [ > player anzug_band ]\n\n\n\n\nlate [ anzuggesicht ] [ playerhead no anzuggesicht ] -> [ anzuggesicht ] [ playerhead anzuggesicht ]\nlate [ anzuggesicht no playerhead ] -> [ ]\n\nlate right [ anzug_l | | anzug_r ] -> cancel\n\n(require suit to be horizontally aligned)\nlate right [anzug_l | ... | anzug_r ] -> [ anzug_l haligned | ... | anzug_r ]\nlate [anzug_l no haligned ] -> cancel\nlate [haligned ]->[]\n\nlate [ anzug_band]->[]\nlate right [anzug_l | | | anzug_r ] -> [anzug_l | anzug_band_dick | anzug_band_dick | anzug_r ] \nlate right [ anzug_l | no anzug_band ] -> [anzug_l | anzug_band_dunn ]\nlate right [ anzug_band_dunn| no anzug_r ] -> [ anzug_band_dunn| anzug_band_dunn]\n\n(draw membrane)\nlate [ anzug_membran ] -> []\nlate [ ziehbarriere ] -> []\n\n(down)\n\nlate down [ membrane_oben | no ziehbarrieredown ] -> [ membrane_oben | ziehbarrieredown ]\nlate down [ ziehbarrieredown | no ziehbarrieredown ] -> [ ziehbarrieredown | ziehbarrieredown ]\n\n\nlate down [ membrane_oben anzug_band ] -> [membrane_oben anzug_band anzug_membran_obenhalbschwarz]\nlate down [ membrane_oben no anzug_band ] -> [membrane_oben anzug_membran_schwarz]\nlate down [ anzug_membran_schwarz | ziehbarrieredown no anzug_membran_schwarz no anzug_band ] -> [anzug_membran_schwarz |anzug_membran_schwarz]\nlate down [ anzug_membran_schwarz | anzug_band ] -> [ anzug_membran_schwarz | anzug_band anzug_membran_obenhalbschwarz ]\n\n\n(and up)\n\nlate up [ membrane_unten | no ziehbarriereup ] -> [ membrane_unten | ziehbarriereup ]\nlate up [ ziehbarriereup | no ziehbarriereup ] -> [ ziehbarriereup | ziehbarriereup ]\n\nlate up [ membrane_unten anzug_band ] -> [membrane_unten anzug_band anzug_membran_untenhalbschwarz]\nlate up [ membrane_unten no anzug_band ] -> [membrane_unten anzug_membran_schwarz]\nlate up [ anzug_membran_schwarz | ziehbarriereup no anzug_membran_schwarz no anzug_band ] -> [anzug_membran_schwarz |anzug_membran_schwarz]\nlate up [ anzug_membran_schwarz | anzug_band ] -> [ anzug_membran_schwarz | anzug_band anzug_membran_untenhalbschwarz ]\n\n\n\n\n\nlate down [ player ziehend_südlich | player anzug_band no ziehend_südlich ] -> [ player ziehend_südlich | player anzug_band ziehend_südlich ]\nlate up [ player ziehend_nördlich | player anzug_band no ziehend_nördlich ] -> [ player ziehend_nördlich | player anzug_band ziehend_nördlich ]\n\n\n(tidy up ziehends that are north of band, but also remove them as they leave)\nlate down [ ziehend_nördlich | anzug_band ] -> [ |anzug_band]\nlate up [ ziehend_südlich | anzug_band ] -> [ |anzug_band]\n\n(draw suit on person)\nlate [ anzug_band ziehend_nördlich ] -> [ anzug_band ziehend_nördlich anzug_membran_untenhalbschwarz ]\nlate [ anzug_band ziehend_südlich ] -> [ anzug_band ziehend_südlich anzug_membran_obenhalbschwarz ]\nlate [ no anzug_band ziehend ] -> [ ziehend anzug_membran_schwarz ]\n\n(Draw stretched head bit)\n\nlate up [ playerhead no anzuggesicht ziehend_nördlich anzug_membran_schwarz | ] -> [ playerhead ziehend_nördlich anzug_membran_schwarz |anzugdehnen]\nlate up [ no anzug_band anzugdehnen | ] -> [ anzugdehnen | anzugdehnen ]\nlate [anzugdehnen no anzug_band ] -> [ anzugdehnen anzug_membran_schwarz ]\nlate [anzugdehnen anzug_band ] -> [ anzugdehnen anzug_membran_untenhalbschwarz ]\nlate [anzugdehnen ziehbarriere ]->cancel\nlate [anzugdehnen rock ]->cancel\nlate [anzugdehnen anzugrand ]->cancel\nlate [anzugdehnen]->[]\n\n(Draw stretched leg big)\n\nlate down [ Playerfeet ziehend_südlich anzug_membran_schwarz | ] -> [ Playerfeet ziehend_südlich anzug_membran_schwarz |anzugdehnen]\nlate down [ no anzug_band anzugdehnen | ] -> [ anzugdehnen | anzugdehnen ]\nlate [anzugdehnen no anzug_band ] -> [ anzugdehnen anzug_membran_schwarz ]\nlate [anzugdehnen anzug_band ] -> [ anzugdehnen anzug_membran_obenhalbschwarz ]\nlate [anzugdehnen ziehbarriere ]->cancel\nlate [anzugdehnen rock ]->cancel\nlate [anzugdehnen anzugrand ]->cancel\nlate [anzugdehnen]->[]\n\nlate [ anzuggesicht ] -> [ anzuggesicht no anzug_membran_schwarz ]\n\nlate horizontal [ziehbarriere ziehend anzug_band |no ziehbarriere ziehend ]-> cancel\nlate [ player no irgendangezug water ]->cancel\n\nlate [ player irgendangezug water ] -> sfx1\n\n\n(stop stretched bits from going OOB)\n\n==============\nWINCONDITIONS\n==============\nsome anzuggesicht\nall player on water\nsome anzuggesicht\n\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 1\n\nmessage Kann kaum warten in den See zu springen. Muss aber erst meinen Neoprenanzug anziehen...\n\n######################################\n##############..........##############\n############..............############\n#######......................#########\n######...........................#####\n######....................h.......####\n#####...................ppppp......###\n#####....................pfp........##\n#####....................p.p........##\n#####..............#.....f.f.........#\n#####.......#......#.................#\n#####..............#.......l..r......#\n#####................................#\n###ww................................#\n##wwwww..............................#\n##wwwwwww...........................##\n##wwwwwwwww.........................##\n#wwwwwwwwwwwww......................##\n#wwwwwwwwwwwwwwww...#####..........###\n#wwwwwwwwwwwwwwwwwwww#####......######\n#wwwwwwwwwwwwwwwwwwww#################\n#wwwwwwwwwwwwwwwwwwww#################\n##wwwwwwwwwwwwwwwwww##################\n###wwwwwwwwwwwwwww####################\n####wwwwwwwwwww#######################\n######################################\n\n\n\nmessage Scheisse! Das Wasser is so verdammt kalt!\n", [3, 3, 3, 2, 3, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 0, 0, 3, 3, 3, 2, 2, 2, 2, 1, 2, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 1, 1, 1, 3, 2, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 0, 0, 3, 3, 3, 2, 2, 2, 2, 1, 1, 2, 2, 1, 0, 2, 2, 0, 0, 2, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 3, 2, 2, 2, 2, 3, 3, 2, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 3, 3], "background rock: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,background water:1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,background:2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,\n1,1,1,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,2,2,2,2,2,\n2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,\n1,1,1,1,1,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,0,0,0,0,2,2,2,\n2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,0,0,0,0,2,2,2,anzug_l background:3,2,2,2,2,2,2,2,2,2,2,1,\n1,1,1,1,1,1,1,0,background rock ziehbarriereup:4,4,background ziehbarriereup:5,5,5,5,anzug_band_dunn anzug_membran_untenhalbschwarz background ziehbarriereup:6,anzug_membran_schwarz background:7,7,7,anzug_membran_schwarz background membrane_unten rock:8,2,2,2,2,2,2,1,1,1,1,1,1,1,1,0,0,0,2,2,\n2,2,anzug_band_dunn background:9,2,2,2,2,2,2,2,2,2,2,1,1,1,anzug_membran_schwarz background playerbody_main water ziehend_nördlich:10,1,1,1,1,0,0,2,2,2,2,2,9,2,2,2,2,2,2,2,2,2,\n2,2,1,1,10,10,10,anzug_membran_schwarz background playerfeet water ziehend_nördlich:11,1,0,0,2,2,2,2,2,anzug_membran_untenhalbschwarz background:12,7,7,7,7,7,7,7,7,7,7,7,anzug_membran_schwarz background water:13,anzug_membran_schwarz background playerhead water ziehend_nördlich:14,10,11,1,1,0,0,0,2,\n2,2,2,2,9,2,2,2,2,2,2,2,2,2,2,2,1,1,10,10,10,11,0,0,0,2,2,2,2,2,9,2,2,2,2,2,2,2,\n2,2,2,2,2,1,10,1,1,1,0,0,0,2,2,2,2,2,9,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,0,0,0,\n4,5,5,5,5,5,6,7,7,anzug_membran_schwarz background rock:15,15,8,2,2,2,2,2,2,2,1,1,1,1,0,0,0,0,2,2,2,2,2,anzug_r background:16,2,2,2,2,2,\n2,2,2,2,2,2,0,1,1,1,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,\n0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,\n0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,\n2,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", 2, "1627893621526.3992"] ], [ - "Moved by leaves of grass", - ["title Moved by leaves of grass\nauthor increpare\nhomepage increpare.com\n\n(level shape from david skinner's microban)\n\n========\nOBJECTS\n========\n\nBackground\nGREEN\n\naltbg\ndarkblue\n\nplayer q\nlightgreen\n\nTarget w\ngreen\n\nWall1 1\nBROWN \n\nwall2 2\ndarkbrown\n\nwall3 3\nBlack \n\nwall4 4\nOrange \n\nwall5 5\nWhite \n\nwall6 6\nBlue\n\n\ncrate1 7\nOrange \n\ncrate2 8\norange\n\n\ncrate4 10\norange\n\n=======\nLEGEND\n=======\ncrate3 = wall3 or wall4 or wall5 or wall6\ncrate = crate1 or crate2 or crate3 or crate4 \n. = Background\n, =altbg\nO = Target\nf = crate1 and target\ne = target and player\nwall = wall1 or wall2\n=======\nSOUNDS\n=======\n\ncrate1 MOVE 36772507\ncrate2 MOVE 36772507\ncrate3 MOVE 36772507\ncrate4 MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\naltbg\nTarget\nPlayer, wall1, wall2, wall3, wall4, wall5, wall6, Crate1, crate2, crate3, crate4 \n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n[> crate| crate]->[> crate | > crate]\n+ [moving crate1 | stationary crate1 ]-> [moving crate1 | moving crate1]\n+ [moving crate2 | stationary crate2 ]-> [moving crate2 | moving crate2]\n+ [moving crate3 | stationary crate3 ]-> [moving crate3 | moving crate3]\n+ [moving crate4 | stationary crate4 ]-> [moving crate4 | moving crate4]\n\n[ > crate | wall ]-> [ crate | wall]\n[stationary crate1 ] [ moving crate1]-> [stationary crate1] [ stationary crate1]\n+[stationary crate2 ] [ moving crate2]-> [stationary crate2] [ stationary crate2]\n+[stationary crate3 ] [ moving crate3]-> [stationary crate3] [ stationary crate3]\n+[stationary crate4 ] [ moving crate4]-> [stationary crate4] [ stationary crate4]\n+ [ > crate | stationary crate ]->[stationary crate | stationary crate]\n+ [> player | wall] -> [ player | wall ]\n+ [> player | stationary player ] -> [ player | player ]\n+ [> player | stationary crate ] -> [ player | crate ]\n+ [ > crate | stationary player ]-> [ crate | player]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\n11121111211112111121..........\n22222222222222222222q....q....\n12111121111211112111...q....q.\n22222222222222222222..........\n11121111211112111121.q....q...\n11121.....wwwww11121..........\n22222q....e,,,w22222q....q....\n12111...q.w,.,w12111...q....q.\n22222.....w,,,w22222..........\n11121.q...wewww11121.q....q...\n11121..........111211112111121\n22222q....q....222222222222222\n12111...q....q.121111211112111\n22222..........222222222222222\n11121.q....q...111211112111121\n11121fffff.333...........11121\n22222f,,,fq444.q....q....22222\n12111f,.,f55555...q....q.12111\n22222f,,,f.666...........22222\n11121fffff.6.6..q....q...11121\n11121....................11121\n22222q....q....q....q....22222\n12111...q....q....q....q.12111\n22222....................22222\n11121.q....q....q....q...11121\n11121..........88888.....11121\n22222q....q....8...8q....22222\n12111...q....q.8..q8...q.12111\n22222..........8...8.....22222\n11121.q....q...88888.q...11121\n11121..........111211112111121\n22222q....q....222222222222222\n12111...q....q.121111211112111\n22222..........222222222222222\n11121.q....q...111211112111121\n11121111211112111121..........\n22222222222222222222q....q....\n12111121111211112111...q....q.\n22222222222222222222..........\n11121111211112111121.q....q...\n\nmessage: congratulations! you gone went and won it\n",[0,1,0,0,0,0,0,3,3,3,3,3],"background wall1:0,background wall2:1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,\n0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,\n1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,background:2,2,2,2,2,\nbackground crate1:3,3,3,3,3,background target:4,4,4,4,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,\n0,1,1,1,0,2,2,2,2,2,3,2,2,2,3,4,altbg background:5,5,5,4,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,0,1,1,1,0,0,1,0,1,0,2,2,2,2,2,3,2,2,2,3,4,5,2,5,4,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,1,1,0,1,1,2,2,2,2,2,\n3,2,2,2,3,4,5,5,5,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,0,1,1,\n0,1,0,1,0,2,2,2,2,2,3,3,3,3,3,background player target:6,4,4,4,4,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,6,6,6,6,4,2,2,2,2,background wall5:7,background player:8,8,2,8,2,\n8,2,2,8,2,8,2,2,8,2,2,2,2,2,2,0,1,0,1,0,0,1,1,1,0,4,5,5,5,4,\n2,2,background wall3:9,background wall4:10,7,background wall6:11,11,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,0,\n0,1,0,1,0,6,altbg background player:12,2,5,4,2,2,9,10,7,11,8,2,2,2,2,8,2,2,2,2,8,2,2,2,\n2,2,2,2,2,0,1,0,1,0,1,1,0,1,1,6,12,5,5,4,8,2,9,10,7,11,11,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,0,1,1,0,1,0,1,0,6,6,4,6,4,\n8,2,2,2,7,2,2,2,2,2,8,2,2,2,2,8,2,2,2,2,2,2,2,2,2,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,2,2,8,2,2,2,2,8,2,2,2,2,8,2,\n0,1,0,1,0,0,1,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,1,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,2,2,2,2,2,2,8,2,2,2,2,8,2,2,2,0,1,0,1,0,0,1,0,1,0,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,8,2,2,2,2,\nbackground crate2:13,13,13,13,13,2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,\n0,1,0,1,0,8,2,2,8,2,13,2,2,2,13,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,1,1,0,8,2,2,2,2,13,2,2,2,13,2,2,2,2,2,\n0,1,1,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,8,8,2,2,2,\n13,8,2,2,13,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n1,1,0,1,1,8,8,2,2,2,13,13,13,13,13,2,2,2,2,2,1,1,0,1,1,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,8,8,2,8,2,8,8,2,8,2,2,2,2,2,2,\n0,1,0,1,0,2,2,2,2,2,8,8,8,8,2,2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,8,8,2,2,2,8,2,2,2,2,2,2,2,2,2,\n0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,8,2,2,2,2,\n8,8,2,2,2,2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,8,2,2,2,2,8,8,2,2,2,2,2,2,2,2,1,1,0,1,1,1,1,0,1,1,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,8,2,2,2,2,8,8,2,8,2,2,2,2,2,2,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,8,2,2,2,2,\n",1,"1627893692010.7708"] + "Moved by leaves of grass", + ["title Moved by leaves of grass\nauthor increpare\nhomepage increpare.com\n\n(level shape from david skinner's microban)\n\n========\nOBJECTS\n========\n\nBackground\nGREEN\n\naltbg\ndarkblue\n\nplayer q\nlightgreen\n\nTarget w\ngreen\n\nWall1 1\nBROWN \n\nwall2 2\ndarkbrown\n\nwall3 3\nBlack \n\nwall4 4\nOrange \n\nwall5 5\nWhite \n\nwall6 6\nBlue\n\n\ncrate1 7\nOrange \n\ncrate2 8\norange\n\n\ncrate4 10\norange\n\n=======\nLEGEND\n=======\ncrate3 = wall3 or wall4 or wall5 or wall6\ncrate = crate1 or crate2 or crate3 or crate4 \n. = Background\n, =altbg\nO = Target\nf = crate1 and target\ne = target and player\nwall = wall1 or wall2\n=======\nSOUNDS\n=======\n\ncrate1 MOVE 36772507\ncrate2 MOVE 36772507\ncrate3 MOVE 36772507\ncrate4 MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\naltbg\nTarget\nPlayer, wall1, wall2, wall3, wall4, wall5, wall6, Crate1, crate2, crate3, crate4 \n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n[> crate| crate]->[> crate | > crate]\n+ [moving crate1 | stationary crate1 ]-> [moving crate1 | moving crate1]\n+ [moving crate2 | stationary crate2 ]-> [moving crate2 | moving crate2]\n+ [moving crate3 | stationary crate3 ]-> [moving crate3 | moving crate3]\n+ [moving crate4 | stationary crate4 ]-> [moving crate4 | moving crate4]\n\n[ > crate | wall ]-> [ crate | wall]\n[stationary crate1 ] [ moving crate1]-> [stationary crate1] [ stationary crate1]\n+[stationary crate2 ] [ moving crate2]-> [stationary crate2] [ stationary crate2]\n+[stationary crate3 ] [ moving crate3]-> [stationary crate3] [ stationary crate3]\n+[stationary crate4 ] [ moving crate4]-> [stationary crate4] [ stationary crate4]\n+ [ > crate | stationary crate ]->[stationary crate | stationary crate]\n+ [> player | wall] -> [ player | wall ]\n+ [> player | stationary player ] -> [ player | player ]\n+ [> player | stationary crate ] -> [ player | crate ]\n+ [ > crate | stationary player ]-> [ crate | player]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\n11121111211112111121..........\n22222222222222222222q....q....\n12111121111211112111...q....q.\n22222222222222222222..........\n11121111211112111121.q....q...\n11121.....wwwww11121..........\n22222q....e,,,w22222q....q....\n12111...q.w,.,w12111...q....q.\n22222.....w,,,w22222..........\n11121.q...wewww11121.q....q...\n11121..........111211112111121\n22222q....q....222222222222222\n12111...q....q.121111211112111\n22222..........222222222222222\n11121.q....q...111211112111121\n11121fffff.333...........11121\n22222f,,,fq444.q....q....22222\n12111f,.,f55555...q....q.12111\n22222f,,,f.666...........22222\n11121fffff.6.6..q....q...11121\n11121....................11121\n22222q....q....q....q....22222\n12111...q....q....q....q.12111\n22222....................22222\n11121.q....q....q....q...11121\n11121..........88888.....11121\n22222q....q....8...8q....22222\n12111...q....q.8..q8...q.12111\n22222..........8...8.....22222\n11121.q....q...88888.q...11121\n11121..........111211112111121\n22222q....q....222222222222222\n12111...q....q.121111211112111\n22222..........222222222222222\n11121.q....q...111211112111121\n11121111211112111121..........\n22222222222222222222q....q....\n12111121111211112111...q....q.\n22222222222222222222..........\n11121111211112111121.q....q...\n\nmessage: congratulations! you gone went and won it\n", [0, 1, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3], "background wall1:0,background wall2:1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,\n0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,\n1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,background:2,2,2,2,2,\nbackground crate1:3,3,3,3,3,background target:4,4,4,4,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,\n0,1,1,1,0,2,2,2,2,2,3,2,2,2,3,4,altbg background:5,5,5,4,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,0,1,1,1,0,0,1,0,1,0,2,2,2,2,2,3,2,2,2,3,4,5,2,5,4,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,1,1,0,1,1,2,2,2,2,2,\n3,2,2,2,3,4,5,5,5,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,0,1,1,\n0,1,0,1,0,2,2,2,2,2,3,3,3,3,3,background player target:6,4,4,4,4,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,6,6,6,6,4,2,2,2,2,background wall5:7,background player:8,8,2,8,2,\n8,2,2,8,2,8,2,2,8,2,2,2,2,2,2,0,1,0,1,0,0,1,1,1,0,4,5,5,5,4,\n2,2,background wall3:9,background wall4:10,7,background wall6:11,11,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,0,\n0,1,0,1,0,6,altbg background player:12,2,5,4,2,2,9,10,7,11,8,2,2,2,2,8,2,2,2,2,8,2,2,2,\n2,2,2,2,2,0,1,0,1,0,1,1,0,1,1,6,12,5,5,4,8,2,9,10,7,11,11,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,0,1,1,0,1,0,1,0,6,6,4,6,4,\n8,2,2,2,7,2,2,2,2,2,8,2,2,2,2,8,2,2,2,2,2,2,2,2,2,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,2,2,8,2,2,2,2,8,2,2,2,2,8,2,\n0,1,0,1,0,0,1,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,1,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,2,2,2,2,2,2,8,2,2,2,2,8,2,2,2,0,1,0,1,0,0,1,0,1,0,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,8,2,2,2,2,\nbackground crate2:13,13,13,13,13,2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,\n0,1,0,1,0,8,2,2,8,2,13,2,2,2,13,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,1,1,0,8,2,2,2,2,13,2,2,2,13,2,2,2,2,2,\n0,1,1,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,8,8,2,2,2,\n13,8,2,2,13,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n1,1,0,1,1,8,8,2,2,2,13,13,13,13,13,2,2,2,2,2,1,1,0,1,1,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,8,8,2,8,2,8,8,2,8,2,2,2,2,2,2,\n0,1,0,1,0,2,2,2,2,2,8,8,8,8,2,2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,8,8,2,2,2,8,2,2,2,2,2,2,2,2,2,\n0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,8,2,2,2,2,\n8,8,2,2,2,2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,8,2,2,2,2,8,8,2,2,2,2,2,2,2,2,1,1,0,1,1,1,1,0,1,1,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,8,2,2,2,2,8,8,2,8,2,2,2,2,2,2,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,8,2,2,2,2,\n", 1, "1627893692010.7708"] ], [ - "Place the crate on the targets", - ["title Place the crate on the targets\nauthor increpare\nhomepage increpare.com\n\n(level shape from david skinner's microban)\n\n========\nOBJECTS\n========\n\nBackground\nGREEN\n\ntarget\ndarkblue\n\ngrass q\nlightgreen\n\n\nWall1 1\nBROWN \n\nwall2 2\ndarkbrown\n\nplayer1 3\nBlack \n\nplayer2 4\nlightbrown \n\nplayer3 5\nWhite \n\nplayer4 6\nBlue\n\n\ncrate 8\norange\n\n=======\nLEGEND\n=======\nplayer = player1 or player2 or player3 or player4\n. = Background\n, = target\nO = Target\nwall = wall1 or wall2\n=======\nSOUNDS\n=======\n\ncrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ntarget\ngrass\nPlayer, wall1, wall2, player, crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate | crate ]->[> Crate|> crate ]\n\n[ > crate | wall ]->[ crate | wall ]\n[ > crate | stationary crate ]-> [ crate | crate ]\n[> player | wall ]-> cancel\n[> player | stationary crate ]->cancel\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\n11121111211112111121..........\n22222222222222222222q....q....\n12111121111211112111...q....q.\n22222222222222222222..........\n11121111211112111121.q....q...\n11121..........11121..........\n22222q....q,,,.22222q....q....\n12111...q..,.,.12111...q....q.\n22222......,,,.22222..........\n11121.q....q...11121.q....q...\n11121..........111211112111121\n22222q....q....222222222222222\n12111...q....q.121111211112111\n22222..........222222222222222\n11121.q....q...111211112111121\n11121......333...........11121\n22222q,,,.q444.q....q....22222\n12111.,.,.55555...q....q.12111\n22222.,,,..666...........22222\n11121..q...6.6..q....q...11121\n11121....................11121\n22222q....q....q....q....22222\n12111...q....q....q....q.12111\n22222....................22222\n11121.q....q....q....q...11121\n11121..........88888.....11121\n22222q....q....8...8q....22222\n12111...q....q.8..q8...q.12111\n22222..........8...8.....22222\n11121.q....q...88888.q...11121\n11121..........111211112111121\n22222q....q....222222222222222\n12111...q....q.121111211112111\n22222..........222222222222222\n11121.q....q...111211112111121\n11121111211112111121..........\n22222222222222222222q....q....\n12111121111211112111...q....q.\n22222222222222222222..........\n11121111211112111121.q....q...\n\nmessage congratulations to all of you!\n",[1,1,0,0,2,2,2,2,3,2,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,1,1,1,1,1,1,1],"background wall1:0,background wall2:1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,\n0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,\n1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,background:2,background grass:3,2,2,2,\n2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,0,1,0,1,0,\n0,1,1,1,0,2,2,2,2,3,2,2,2,2,3,2,background target:4,4,4,2,2,2,2,2,3,2,2,2,2,3,\n2,2,2,2,3,0,1,1,1,0,0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,4,2,4,3,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,1,1,0,1,1,2,2,3,2,2,\n2,2,3,2,2,2,4,4,4,2,2,2,3,2,2,background crate:5,2,3,2,2,2,2,3,2,2,1,1,0,1,1,\n0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,2,2,2,2,\n2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,\n2,3,2,2,2,5,3,2,2,2,2,3,2,2,2,0,1,0,1,0,0,1,1,1,0,2,4,4,4,3,\n2,2,2,2,3,2,2,2,2,2,2,2,2,2,3,5,5,2,2,3,2,2,2,2,3,0,1,1,1,0,\n0,1,0,1,0,2,4,2,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background player3:6,5,5,2,2,2,\n2,2,2,2,2,0,1,0,1,0,1,1,0,1,1,2,4,4,4,2,2,2,3,2,2,2,2,2,2,2,\n2,2,background grass player1:7,background player2:8,6,background player4:9,9,3,2,2,2,2,3,2,2,1,1,0,1,1,0,1,0,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,background player1:10,8,6,9,2,2,2,2,2,2,2,2,2,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,3,2,2,2,2,3,10,8,6,9,9,5,5,5,\n0,1,0,1,0,0,1,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,2,2,2,2,3,\n2,2,2,2,background grass player3:11,2,2,2,2,5,0,1,1,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,0,1,0,1,0,0,1,0,1,0,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,2,2,3,2,2,2,2,3,2,2,2,2,3,2,5,\n1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,5,5,5,0,1,0,1,0,0,1,0,1,0,2,3,2,2,2,2,3,2,2,2,\n0,1,0,1,0,2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,0,1,0,1,0,2,3,2,2,2,\n2,2,2,2,3,2,2,2,2,3,0,1,1,1,0,2,2,2,2,3,2,2,2,2,3,2,2,2,2,3,\n0,1,1,1,0,2,2,2,2,3,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,2,2,3,2,2,2,2,3,2,2,\n1,1,0,1,1,2,2,3,2,2,2,2,3,2,2,2,2,3,2,2,1,1,0,1,1,2,2,3,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n0,1,0,1,0,2,2,2,2,2,2,3,2,2,2,2,3,2,2,2,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,3,2,2,2,2,2,2,2,3,2,2,2,2,3,\n0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,2,2,2,2,3,\n2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,2,2,2,2,2,2,2,3,2,2,2,2,3,2,2,1,1,0,1,1,1,1,0,1,1,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,2,2,3,2,2,2,2,2,2,2,2,2,2,2,2,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,2,2,2,2,\n",1,"1627893701797.368"] + "Place the crate on the targets", + ["title Place the crate on the targets\nauthor increpare\nhomepage increpare.com\n\n(level shape from david skinner's microban)\n\n========\nOBJECTS\n========\n\nBackground\nGREEN\n\ntarget\ndarkblue\n\ngrass q\nlightgreen\n\n\nWall1 1\nBROWN \n\nwall2 2\ndarkbrown\n\nplayer1 3\nBlack \n\nplayer2 4\nlightbrown \n\nplayer3 5\nWhite \n\nplayer4 6\nBlue\n\n\ncrate 8\norange\n\n=======\nLEGEND\n=======\nplayer = player1 or player2 or player3 or player4\n. = Background\n, = target\nO = Target\nwall = wall1 or wall2\n=======\nSOUNDS\n=======\n\ncrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ntarget\ngrass\nPlayer, wall1, wall2, player, crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate | crate ]->[> Crate|> crate ]\n\n[ > crate | wall ]->[ crate | wall ]\n[ > crate | stationary crate ]-> [ crate | crate ]\n[> player | wall ]-> cancel\n[> player | stationary crate ]->cancel\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\n11121111211112111121..........\n22222222222222222222q....q....\n12111121111211112111...q....q.\n22222222222222222222..........\n11121111211112111121.q....q...\n11121..........11121..........\n22222q....q,,,.22222q....q....\n12111...q..,.,.12111...q....q.\n22222......,,,.22222..........\n11121.q....q...11121.q....q...\n11121..........111211112111121\n22222q....q....222222222222222\n12111...q....q.121111211112111\n22222..........222222222222222\n11121.q....q...111211112111121\n11121......333...........11121\n22222q,,,.q444.q....q....22222\n12111.,.,.55555...q....q.12111\n22222.,,,..666...........22222\n11121..q...6.6..q....q...11121\n11121....................11121\n22222q....q....q....q....22222\n12111...q....q....q....q.12111\n22222....................22222\n11121.q....q....q....q...11121\n11121..........88888.....11121\n22222q....q....8...8q....22222\n12111...q....q.8..q8...q.12111\n22222..........8...8.....22222\n11121.q....q...88888.q...11121\n11121..........111211112111121\n22222q....q....222222222222222\n12111...q....q.121111211112111\n22222..........222222222222222\n11121.q....q...111211112111121\n11121111211112111121..........\n22222222222222222222q....q....\n12111121111211112111...q....q.\n22222222222222222222..........\n11121111211112111121.q....q...\n\nmessage congratulations to all of you!\n", [1, 1, 0, 0, 2, 2, 2, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1], "background wall1:0,background wall2:1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,\n0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,\n1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,background:2,background grass:3,2,2,2,\n2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,0,1,0,1,0,\n0,1,1,1,0,2,2,2,2,3,2,2,2,2,3,2,background target:4,4,4,2,2,2,2,2,3,2,2,2,2,3,\n2,2,2,2,3,0,1,1,1,0,0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,4,2,4,3,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,1,1,0,1,1,2,2,3,2,2,\n2,2,3,2,2,2,4,4,4,2,2,2,3,2,2,background crate:5,2,3,2,2,2,2,3,2,2,1,1,0,1,1,\n0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,2,2,2,2,\n2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,\n2,3,2,2,2,5,3,2,2,2,2,3,2,2,2,0,1,0,1,0,0,1,1,1,0,2,4,4,4,3,\n2,2,2,2,3,2,2,2,2,2,2,2,2,2,3,5,5,2,2,3,2,2,2,2,3,0,1,1,1,0,\n0,1,0,1,0,2,4,2,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background player3:6,5,5,2,2,2,\n2,2,2,2,2,0,1,0,1,0,1,1,0,1,1,2,4,4,4,2,2,2,3,2,2,2,2,2,2,2,\n2,2,background grass player1:7,background player2:8,6,background player4:9,9,3,2,2,2,2,3,2,2,1,1,0,1,1,0,1,0,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,background player1:10,8,6,9,2,2,2,2,2,2,2,2,2,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,3,2,2,2,2,3,10,8,6,9,9,5,5,5,\n0,1,0,1,0,0,1,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,2,2,2,2,3,\n2,2,2,2,background grass player3:11,2,2,2,2,5,0,1,1,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,0,1,0,1,0,0,1,0,1,0,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,2,2,3,2,2,2,2,3,2,2,2,2,3,2,5,\n1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,5,5,5,0,1,0,1,0,0,1,0,1,0,2,3,2,2,2,2,3,2,2,2,\n0,1,0,1,0,2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,0,1,0,1,0,2,3,2,2,2,\n2,2,2,2,3,2,2,2,2,3,0,1,1,1,0,2,2,2,2,3,2,2,2,2,3,2,2,2,2,3,\n0,1,1,1,0,2,2,2,2,3,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,2,2,3,2,2,2,2,3,2,2,\n1,1,0,1,1,2,2,3,2,2,2,2,3,2,2,2,2,3,2,2,1,1,0,1,1,2,2,3,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n0,1,0,1,0,2,2,2,2,2,2,3,2,2,2,2,3,2,2,2,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,3,2,2,2,2,2,2,2,3,2,2,2,2,3,\n0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,2,2,2,2,3,\n2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,2,2,2,2,2,2,2,3,2,2,2,2,3,2,2,1,1,0,1,1,1,1,0,1,1,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,2,2,3,2,2,2,2,2,2,2,2,2,2,2,2,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,2,2,2,2,\n", 1, "1627893701797.368"] ], [ - "Two-Step Pete", - ["title Two-Step Pete\nauthor increpare\nhomepage www.increpare.com\n\ncolor_palette 7\n(\nthanks to c00t00 for tips + feedback\nthanks to bvoq + marcosdon for the lovely solvers\n\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\nhttps://dekeyser.ch/puzzlescriptmis/\n)\n\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN \n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nBROWN \n\nPlayer\nBlue Blue Blue Blue yellow\n.000.\n.141.\n22222\n.333.\n.3.3.\n\nCrate\n#ee5555\n00000\n0...0\n0...0\n0...0\n00000\n\nlaststart\ntransparent\n\nlastup\ntransparent\n\nlastdown\ntransparent\n\nlastleft\ntransparent\n\nlastright\ntransparent\n\nspawncrate \ntransparent\n\n=======\nLEGEND\n=======\n\nlastany = lastup or lastdown or lastleft or lastright or laststart\n\n. = Background\n# = Wall\nP = Player and laststart\n* = Background\n@ = Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nlastany\nspawncrate\n\n======\nRULES\n======\n\n[ action player ] -> cancel\n\n[ > player | wall ] -> cancel\n[ > player | crate | wall ] -> cancel\n[ > player | crate | crate ] -> cancel\n\n\nup \t\t[ up player \tlastup \t\tno laststart ] -> [ up player \t\tspawncrate ]\ndown \t[ down player \tlastdown \tno laststart ] -> [ down player \tspawncrate ]\nleft \t[ left player \tlastleft \tno laststart ] -> [ left player \tspawncrate ]\nright \t[ right player \tlastright \tno laststart ] -> [ right player \tspawncrate ]\n\n[ lastany ] -> [ ]\n\nup \t\t[ up player \t| ] -> [ up player \t\t| lastup \t]\ndown \t[ down player \t| ] -> [ down player \t| lastdown \t]\nleft \t[ left player \t| ] -> [ left player \t| lastleft \t]\nright \t[ right player \t| ] -> [ right player \t| lastright ]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate [ spawncrate player ] -> cancel\nlate [ spawncrate ] -> [ crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nAll Crate on Target\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 8\n(klinda fun)\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n\n(kinda fun?)\n\nmessage level 2 of 8\n######\n#@.@.#\n#.@.@#\n#@.@.#\n#.@.@#\n#@p@.#\n#.@.@#\n######\n\n(ok?)\n\nmessage level 3 of 8\n#####\n#.@@#\n#@.@#\n#p@.#\n#####\n\n\n\nmessage level 4 of 8\n(fun! ship it)\n###########\n#####@#####\n####...####\n#####@#####\n##.#.p.#.##\n#@.@...@.@#\n##.#...#.##\n#####@#####\n####...####\n#####@#####\n###########\n\n\nmessage level 5 of 8\n( tricky + nice )\n#######\n#.@..@#\n#...@.#\n##.#p##\n#.....#\n#...@.#\n#######\n\nmessage level 6 of 8\n(is this the same as above? IDK )\n#######\n#.@#..#\n#...@.#\n##@#.##\n#.p...#\n#.@#..#\n#######\n\n\n\nmessage level 7 of 8\n(like this)\n#####\n#@p@#\n#@@@#\n#@..#\n#.@@#\n#####\n\n\nmessage level 8 of 8\n\n(hard not great but ok?)\n######\n#@.@@#\n#@@@@#\n#@@@.#\n#p.@@#\n######\n\nmessage congrats. sorry ab out that final level.\n(\n\n######\n#....#\n#....#\n##..##\n#p...#\n#....#\n######\n\n#######\n#..#..#\n#.....#\n##.#.##\n#.....#\n#..#p.#\n#######\n\n###########\n#####@#####\n####...####\n#####@#####\n##.#.p.#.##\n#@.@...@.@#\n##.#...#.##\n#####@#####\n####...####\n#####@#####\n###########\n\n(kinda nice)\n###########\n#####.#####\n##.#.p.#.##\n#@.@......#\n##.#...#.##\n#####.#####\n###########\n\n\n######\n#....#\n#....#\n#....#\n#.p..#\n######\n\n\n#####\n#p..#\n#...#\n#...#\n#...#\n#####\n\n#########\n####.####\n###...###\n##.....##\n#...p...#\n##.....##\n###...###\n####.####\n#########\n\n###########\n#####.#####\n####...####\n#####.#####\n##.#...#.##\n#.........#\n##.#...#.##\n#####p#####\n####...####\n#####.#####\n###########\n\n###########\n#####.#####\n##.#...#.##\n#.........#\n##.#..p#.##\n#####.#####\n###########\n\n(kinda hard kinda random but ok?)\n#####\n#@@.#\n#p@@#\n#@.@#\n#@.@#\n#####\n\n\n#######\n#.@...#\n#.@..@#\n##.#@##\n#...p.#\n#.....#\n#######\n\n\n(same trick as above? iiish)\n#######\n#..#..#\n#..@@@#\n##p#.##\n#######\n\n#######\n#..#..#\n#.....#\n##.#.##\n#.....#\n#..#p.#\n#######\n\n\n#########\n#...#...#\n#.......#\n#...#...#\n##.###.##\n#...#...#\n#.......#\n#...#..p#\n#########\n\nmessage congratulations!\n)\n",[2,2,2,3,0,0,0,1,1,2,2],"background wall:0,0,0,0,0,\n0,0,background target:1,background crate target:2,background lastdown player target:3,\nbackground:4,0,0,background crate:5,2,\n5,1,0,0,1,\n2,5,1,0,0,\n0,0,0,0,0,\n",13,"1627893714599.114"] + "Two-Step Pete", + ["title Two-Step Pete\nauthor increpare\nhomepage www.increpare.com\n\ncolor_palette 7\n(\nthanks to c00t00 for tips + feedback\nthanks to bvoq + marcosdon for the lovely solvers\n\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\nhttps://dekeyser.ch/puzzlescriptmis/\n)\n\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN \n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nBROWN \n\nPlayer\nBlue Blue Blue Blue yellow\n.000.\n.141.\n22222\n.333.\n.3.3.\n\nCrate\n#ee5555\n00000\n0...0\n0...0\n0...0\n00000\n\nlaststart\ntransparent\n\nlastup\ntransparent\n\nlastdown\ntransparent\n\nlastleft\ntransparent\n\nlastright\ntransparent\n\nspawncrate \ntransparent\n\n=======\nLEGEND\n=======\n\nlastany = lastup or lastdown or lastleft or lastright or laststart\n\n. = Background\n# = Wall\nP = Player and laststart\n* = Background\n@ = Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nlastany\nspawncrate\n\n======\nRULES\n======\n\n[ action player ] -> cancel\n\n[ > player | wall ] -> cancel\n[ > player | crate | wall ] -> cancel\n[ > player | crate | crate ] -> cancel\n\n\nup \t\t[ up player \tlastup \t\tno laststart ] -> [ up player \t\tspawncrate ]\ndown \t[ down player \tlastdown \tno laststart ] -> [ down player \tspawncrate ]\nleft \t[ left player \tlastleft \tno laststart ] -> [ left player \tspawncrate ]\nright \t[ right player \tlastright \tno laststart ] -> [ right player \tspawncrate ]\n\n[ lastany ] -> [ ]\n\nup \t\t[ up player \t| ] -> [ up player \t\t| lastup \t]\ndown \t[ down player \t| ] -> [ down player \t| lastdown \t]\nleft \t[ left player \t| ] -> [ left player \t| lastleft \t]\nright \t[ right player \t| ] -> [ right player \t| lastright ]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate [ spawncrate player ] -> cancel\nlate [ spawncrate ] -> [ crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nAll Crate on Target\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 8\n(klinda fun)\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n\n(kinda fun?)\n\nmessage level 2 of 8\n######\n#@.@.#\n#.@.@#\n#@.@.#\n#.@.@#\n#@p@.#\n#.@.@#\n######\n\n(ok?)\n\nmessage level 3 of 8\n#####\n#.@@#\n#@.@#\n#p@.#\n#####\n\n\n\nmessage level 4 of 8\n(fun! ship it)\n###########\n#####@#####\n####...####\n#####@#####\n##.#.p.#.##\n#@.@...@.@#\n##.#...#.##\n#####@#####\n####...####\n#####@#####\n###########\n\n\nmessage level 5 of 8\n( tricky + nice )\n#######\n#.@..@#\n#...@.#\n##.#p##\n#.....#\n#...@.#\n#######\n\nmessage level 6 of 8\n(is this the same as above? IDK )\n#######\n#.@#..#\n#...@.#\n##@#.##\n#.p...#\n#.@#..#\n#######\n\n\n\nmessage level 7 of 8\n(like this)\n#####\n#@p@#\n#@@@#\n#@..#\n#.@@#\n#####\n\n\nmessage level 8 of 8\n\n(hard not great but ok?)\n######\n#@.@@#\n#@@@@#\n#@@@.#\n#p.@@#\n######\n\nmessage congrats. sorry ab out that final level.\n(\n\n######\n#....#\n#....#\n##..##\n#p...#\n#....#\n######\n\n#######\n#..#..#\n#.....#\n##.#.##\n#.....#\n#..#p.#\n#######\n\n###########\n#####@#####\n####...####\n#####@#####\n##.#.p.#.##\n#@.@...@.@#\n##.#...#.##\n#####@#####\n####...####\n#####@#####\n###########\n\n(kinda nice)\n###########\n#####.#####\n##.#.p.#.##\n#@.@......#\n##.#...#.##\n#####.#####\n###########\n\n\n######\n#....#\n#....#\n#....#\n#.p..#\n######\n\n\n#####\n#p..#\n#...#\n#...#\n#...#\n#####\n\n#########\n####.####\n###...###\n##.....##\n#...p...#\n##.....##\n###...###\n####.####\n#########\n\n###########\n#####.#####\n####...####\n#####.#####\n##.#...#.##\n#.........#\n##.#...#.##\n#####p#####\n####...####\n#####.#####\n###########\n\n###########\n#####.#####\n##.#...#.##\n#.........#\n##.#..p#.##\n#####.#####\n###########\n\n(kinda hard kinda random but ok?)\n#####\n#@@.#\n#p@@#\n#@.@#\n#@.@#\n#####\n\n\n#######\n#.@...#\n#.@..@#\n##.#@##\n#...p.#\n#.....#\n#######\n\n\n(same trick as above? iiish)\n#######\n#..#..#\n#..@@@#\n##p#.##\n#######\n\n#######\n#..#..#\n#.....#\n##.#.##\n#.....#\n#..#p.#\n#######\n\n\n#########\n#...#...#\n#.......#\n#...#...#\n##.###.##\n#...#...#\n#.......#\n#...#..p#\n#########\n\nmessage congratulations!\n)\n", [2, 2, 2, 3, 0, 0, 0, 1, 1, 2, 2], "background wall:0,0,0,0,0,\n0,0,background target:1,background crate target:2,background lastdown player target:3,\nbackground:4,0,0,background crate:5,2,\n5,1,0,0,1,\n2,5,1,0,0,\n0,0,0,0,0,\n", 13, "1627893714599.114"] ], [ - "Microban x 10", - ["title Microban x 10\nauthor David Skinner, assembled by increpare\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\n\n\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\nGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\n DARKBROWN\n\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\nfill\ntransparent\n\nredzone r\nlightred\n.....\n.....\n..0..\n.....\n.....\n\nredPlayer\nred red red red\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nredcrate \n#ff0000 \n00000\n0...0\n0...0\n0...0\n00000\n\nyellowplayer\n#ffff00 #ffff00 #ffff00 #ffff00 \n.000.\n.111.\n22222\n.333.\n.3.3.\n\nyellowcrate \n#ffff00 \n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\ncanremove = player or crate or target\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nt = redzone and Player\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\nsfx0 7217302\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nfill\nredcrate\nredzone\nredplayer \nyellowplayer\nyellowcrate\n\n======\nRULES\n======\n\n[yellowplayer]->[]\n[yellowcrate]->[]\n[> player | Crate | no wall no crate ] -> [ > player | yellowplayer crate | no wall no crate yellowcrate ]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n\n\nlate [no wall] -> [fill]\n\nlate [target no crate fill]->[target]\nlate [fill| no wall no fill]->[|]\n\nlate [fill Player ]->[fill]\nlate [fill crate ]->[fill]\nlate [fill target ]->[fill]\nlate [fill]->[]\n\nlate [redplayer]->[]\nlate [redcrate]->[]\n\nlate [crate redzone]->cancel sfx0 \nlate [ player | crate | redzone ] -> [ player redplayer | crate redcrate | redzone ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage This is a compilation of 10 of my favourite levels from microban by David Skinner, where it turns out you can solve all of them simultaneously. Standard sokoban rules, with some helper visualisations.\n\nmessage levels 10 of 10\n\n\n###############################\n########rrrrrr#################\n########ro@@*t#rrrr###rrr######\n########r....r#r**.....#t######\n############rr#r*.#ooo..r######\n#ro#####rr#####rrr#############\n#..###r....*r#######rrrrr######\n#@p.r#r#..#*r#rrrrr#ro*or#root#\n#..*r#ro.o#tr#.o*or#r*o*r#r**r#\n#rr###########.*p*r#ro*or##.###\n####rrrr#...#r.o*or#r*o*r##.###\n####r#pr#...#rrrrrr#rrtrr##.###\n####r*@r###################.###\n####ro@r#o.r#o.r########r...###\n####rrrr#o#r#t**r#######r#..r##\n#########o#r##r..#######r..#r##\n###rp.*.*.*r###r.#########rrr##\n###r#.#.#.######o##############\n###rrrrrrr#####################\n###############################\n\n\n\nmessage congratulations x 10!\n\n",[3,1,2,3,2,3,0,3,0,"undo",0,3,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 redzone:1,background:2,background crate target:3,2,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,background target:4,2,2,2,1,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background player:5,background crate:6,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,1,1,1,\n1,1,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,6,4,1,0,2,5,1,0,0,0,0,0,\n0,0,1,1,1,0,1,2,3,3,1,0,6,0,1,0,0,0,0,0,0,0,2,0,4,0,background player redzone:7,1,1,1,1,\n0,2,2,1,0,0,1,1,1,0,1,2,2,2,0,0,0,0,0,0,0,6,0,1,0,0,1,4,2,0,1,\n2,2,4,0,2,2,0,4,4,4,2,2,1,0,0,1,3,2,0,0,2,0,0,0,2,2,0,2,0,0,6,\n0,0,0,0,1,3,2,0,0,6,6,1,0,2,2,0,1,1,1,1,0,0,0,0,1,6,2,1,0,7,1,\n1,0,0,0,0,0,0,0,0,0,0,0,0,7,1,1,1,0,0,0,0,0,1,1,0,4,1,0,0,0,0,\n0,0,0,0,0,0,0,0,1,2,6,2,1,0,background player redplayer:8,background crate redcrate:9,1,0,0,0,0,0,0,1,1,1,1,0,1,4,2,\n4,1,0,1,6,2,1,0,0,0,0,0,1,6,6,1,0,1,6,6,2,1,0,0,1,2,2,4,0,0,0,\n0,1,6,2,1,0,1,background crate redcrate target yellowcrate:10,background player redplayer yellowplayer:11,4,1,0,0,0,0,0,0,0,0,0,0,1,2,0,0,0,1,1,1,1,1,\n0,0,0,0,0,0,0,0,0,0,0,2,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n2,4,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,2,4,0,1,4,6,4,6,1,0,0,\n0,0,0,0,0,0,0,0,1,2,2,0,1,6,3,2,4,1,0,0,0,0,0,0,0,0,0,0,1,0,2,\n0,1,10,11,4,6,1,0,0,0,0,0,0,0,0,0,0,7,1,1,0,1,1,1,1,1,1,0,1,1,1,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,\n1,1,0,0,0,0,2,2,2,1,0,0,0,0,0,0,0,0,0,0,4,6,2,2,2,2,2,2,0,1,0,\n0,0,0,0,0,0,0,0,0,4,6,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,7,1,\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,\n",2,"1627893725475.1794"] + "Microban x 10", + ["title Microban x 10\nauthor David Skinner, assembled by increpare\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\n\n\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\nGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\n DARKBROWN\n\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\nfill\ntransparent\n\nredzone r\nlightred\n.....\n.....\n..0..\n.....\n.....\n\nredPlayer\nred red red red\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nredcrate \n#ff0000 \n00000\n0...0\n0...0\n0...0\n00000\n\nyellowplayer\n#ffff00 #ffff00 #ffff00 #ffff00 \n.000.\n.111.\n22222\n.333.\n.3.3.\n\nyellowcrate \n#ffff00 \n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\ncanremove = player or crate or target\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nt = redzone and Player\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\nsfx0 7217302\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nfill\nredcrate\nredzone\nredplayer \nyellowplayer\nyellowcrate\n\n======\nRULES\n======\n\n[yellowplayer]->[]\n[yellowcrate]->[]\n[> player | Crate | no wall no crate ] -> [ > player | yellowplayer crate | no wall no crate yellowcrate ]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n\n\nlate [no wall] -> [fill]\n\nlate [target no crate fill]->[target]\nlate [fill| no wall no fill]->[|]\n\nlate [fill Player ]->[fill]\nlate [fill crate ]->[fill]\nlate [fill target ]->[fill]\nlate [fill]->[]\n\nlate [redplayer]->[]\nlate [redcrate]->[]\n\nlate [crate redzone]->cancel sfx0 \nlate [ player | crate | redzone ] -> [ player redplayer | crate redcrate | redzone ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage This is a compilation of 10 of my favourite levels from microban by David Skinner, where it turns out you can solve all of them simultaneously. Standard sokoban rules, with some helper visualisations.\n\nmessage levels 10 of 10\n\n\n###############################\n########rrrrrr#################\n########ro@@*t#rrrr###rrr######\n########r....r#r**.....#t######\n############rr#r*.#ooo..r######\n#ro#####rr#####rrr#############\n#..###r....*r#######rrrrr######\n#@p.r#r#..#*r#rrrrr#ro*or#root#\n#..*r#ro.o#tr#.o*or#r*o*r#r**r#\n#rr###########.*p*r#ro*or##.###\n####rrrr#...#r.o*or#r*o*r##.###\n####r#pr#...#rrrrrr#rrtrr##.###\n####r*@r###################.###\n####ro@r#o.r#o.r########r...###\n####rrrr#o#r#t**r#######r#..r##\n#########o#r##r..#######r..#r##\n###rp.*.*.*r###r.#########rrr##\n###r#.#.#.######o##############\n###rrrrrrr#####################\n###############################\n\n\n\nmessage congratulations x 10!\n\n", [3, 1, 2, 3, 2, 3, 0, 3, 0, "undo", 0, 3, 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 redzone:1,background:2,background crate target:3,2,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,background target:4,2,2,2,1,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background player:5,background crate:6,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,1,1,1,\n1,1,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,6,4,1,0,2,5,1,0,0,0,0,0,\n0,0,1,1,1,0,1,2,3,3,1,0,6,0,1,0,0,0,0,0,0,0,2,0,4,0,background player redzone:7,1,1,1,1,\n0,2,2,1,0,0,1,1,1,0,1,2,2,2,0,0,0,0,0,0,0,6,0,1,0,0,1,4,2,0,1,\n2,2,4,0,2,2,0,4,4,4,2,2,1,0,0,1,3,2,0,0,2,0,0,0,2,2,0,2,0,0,6,\n0,0,0,0,1,3,2,0,0,6,6,1,0,2,2,0,1,1,1,1,0,0,0,0,1,6,2,1,0,7,1,\n1,0,0,0,0,0,0,0,0,0,0,0,0,7,1,1,1,0,0,0,0,0,1,1,0,4,1,0,0,0,0,\n0,0,0,0,0,0,0,0,1,2,6,2,1,0,background player redplayer:8,background crate redcrate:9,1,0,0,0,0,0,0,1,1,1,1,0,1,4,2,\n4,1,0,1,6,2,1,0,0,0,0,0,1,6,6,1,0,1,6,6,2,1,0,0,1,2,2,4,0,0,0,\n0,1,6,2,1,0,1,background crate redcrate target yellowcrate:10,background player redplayer yellowplayer:11,4,1,0,0,0,0,0,0,0,0,0,0,1,2,0,0,0,1,1,1,1,1,\n0,0,0,0,0,0,0,0,0,0,0,2,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n2,4,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,2,4,0,1,4,6,4,6,1,0,0,\n0,0,0,0,0,0,0,0,1,2,2,0,1,6,3,2,4,1,0,0,0,0,0,0,0,0,0,0,1,0,2,\n0,1,10,11,4,6,1,0,0,0,0,0,0,0,0,0,0,7,1,1,0,1,1,1,1,1,1,0,1,1,1,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,\n1,1,0,0,0,0,2,2,2,1,0,0,0,0,0,0,0,0,0,0,4,6,2,2,2,2,2,2,0,1,0,\n0,0,0,0,0,0,0,0,0,4,6,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,7,1,\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,\n", 2, "1627893725475.1794"] ], [ - "The Far Away Danish Pastry is always Deliciouser.", - ["title The Far Away Danish Pastry is always Deliciouser.\nauthor increpare [variant of Lexaloffle's Neko Puzzle]\nhomepage www.increpare.com\nbackground_color darkbrown\ntext_color yellow\n(\nAn inadequate but illustrative demake of one of my favourite puzzle games ever, by the extremely amicable Lexaloffle, and with his permission.\n\nwww.lexaloffle.com/neko.htm\n\nThe game proper has a lot of magic and love in it.\n)\n\n========\nOBJECTS\n========\n\nBackground .\ndarkbrown\n\nFruit F\nyellow orange red\n...0.\n0010.\n.121.\n.0100\n.0...\n\nPlayer P\nyellow red\n.111.\n10001\n11111\n01110\n0...0\n\n=======\nLEGEND\n=======\n\n=========\nSOUNDS\n=========\nendlevel 97301508\nstartgame 97301508\nendgame 97301508\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\nFruit\n\n======\nRULES\n======\n\n[ > Player | ... | Fruit ] -> [ | ... | > Player fruit ]\n\n[ player fruit ] -> [ player ]\n\n(if you're not sure what this line does, try removing it, and see what happens)\n[ > Player ] -> [ Player]\n\n==============\nWINCONDITIONS\n==============\nNo fruit\n\n=======\nLEVELS\n=======\n\n\nmessage level 1 of 8\n\n\n........\n....F.P.\nF.F.....\n........\nF...F...\n..F.F...\n........\n\nmessage level 2 of 8\n\n........\n...fff..\n..f.p...\n..ff.f..\n........\n..f.f...\n....f...\n\n\nmessage level 3 of 8\n\n........\n.f..ffff\n........\n.f....p.\n........\n........\n.....fff\n.......f\n\nmessage level 4 of 8\n\n........\nf...f...\nf..ff...\n........\n...pf...\n...ff.ff\n\nmessage level 5 of 8\n\n........\n........\n........\nf...f.f.\nf.f.p.ff\nf...f...\n.......f\n........\n\n\nmessage level 6 of 8\n(ok)\n.f......\n.f.ff...\n.f.fff.f\nfpff....\n.f.ffff.\n.f.f....\n.f......\n(\nmessage level 7 of 9 \n\nf.f....f\nf...f...\n.f....f.\n.f..p...\n........\nff..ff.f\n..fff..f\n..f...ff\n)\nmessage level 7 of 8\n(like this one )\n.ffpff.....f.\nff.f....f....\nff...........\n..f.........f\n.f...f......f\n.............\nf...f....f.f.\n\nmessage level 8 of 8\n(Acceptably hard final level)\nfff...f..f...f\n....f..f.f....\n.......p....f.\n......f..ff...\nf.....f......f\n..............\n.....fff....f.\n\n\n\n\n(\nmessage level 6 of 10\n(hard!)\n..ffff..\n..fp....\n........\nff......\n.f...fff\n...ff..f\n.f....f.\n.f.f.f..\n)\n\n\nmessage congratulations!\n\n",[3,2,1,0,3],"background:0,0,background fruit:1,0,0,0,0,1,1,1,0,1,0,\n0,1,0,0,1,0,0,0,0,1,0,0,0,\n0,0,1,0,0,0,0,0,1,1,0,0,0,\n1,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background player:2,0,0,0,0,0,0,0,\n0,0,0,0,1,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,1,1,0,0,\n",13,"1627893739801.0737"] + "The Far Away Danish Pastry is always Deliciouser.", + ["title The Far Away Danish Pastry is always Deliciouser.\nauthor increpare [variant of Lexaloffle's Neko Puzzle]\nhomepage www.increpare.com\nbackground_color darkbrown\ntext_color yellow\n(\nAn inadequate but illustrative demake of one of my favourite puzzle games ever, by the extremely amicable Lexaloffle, and with his permission.\n\nwww.lexaloffle.com/neko.htm\n\nThe game proper has a lot of magic and love in it.\n)\n\n========\nOBJECTS\n========\n\nBackground .\ndarkbrown\n\nFruit F\nyellow orange red\n...0.\n0010.\n.121.\n.0100\n.0...\n\nPlayer P\nyellow red\n.111.\n10001\n11111\n01110\n0...0\n\n=======\nLEGEND\n=======\n\n=========\nSOUNDS\n=========\nendlevel 97301508\nstartgame 97301508\nendgame 97301508\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\nFruit\n\n======\nRULES\n======\n\n[ > Player | ... | Fruit ] -> [ | ... | > Player fruit ]\n\n[ player fruit ] -> [ player ]\n\n(if you're not sure what this line does, try removing it, and see what happens)\n[ > Player ] -> [ Player]\n\n==============\nWINCONDITIONS\n==============\nNo fruit\n\n=======\nLEVELS\n=======\n\n\nmessage level 1 of 8\n\n\n........\n....F.P.\nF.F.....\n........\nF...F...\n..F.F...\n........\n\nmessage level 2 of 8\n\n........\n...fff..\n..f.p...\n..ff.f..\n........\n..f.f...\n....f...\n\n\nmessage level 3 of 8\n\n........\n.f..ffff\n........\n.f....p.\n........\n........\n.....fff\n.......f\n\nmessage level 4 of 8\n\n........\nf...f...\nf..ff...\n........\n...pf...\n...ff.ff\n\nmessage level 5 of 8\n\n........\n........\n........\nf...f.f.\nf.f.p.ff\nf...f...\n.......f\n........\n\n\nmessage level 6 of 8\n(ok)\n.f......\n.f.ff...\n.f.fff.f\nfpff....\n.f.ffff.\n.f.f....\n.f......\n(\nmessage level 7 of 9 \n\nf.f....f\nf...f...\n.f....f.\n.f..p...\n........\nff..ff.f\n..fff..f\n..f...ff\n)\nmessage level 7 of 8\n(like this one )\n.ffpff.....f.\nff.f....f....\nff...........\n..f.........f\n.f...f......f\n.............\nf...f....f.f.\n\nmessage level 8 of 8\n(Acceptably hard final level)\nfff...f..f...f\n....f..f.f....\n.......p....f.\n......f..ff...\nf.....f......f\n..............\n.....fff....f.\n\n\n\n\n(\nmessage level 6 of 10\n(hard!)\n..ffff..\n..fp....\n........\nff......\n.f...fff\n...ff..f\n.f....f.\n.f.f.f..\n)\n\n\nmessage congratulations!\n\n", [3, 2, 1, 0, 3], "background:0,0,background fruit:1,0,0,0,0,1,1,1,0,1,0,\n0,1,0,0,1,0,0,0,0,1,0,0,0,\n0,0,1,0,0,0,0,0,1,1,0,0,0,\n1,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background player:2,0,0,0,0,0,0,0,\n0,0,0,0,1,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,1,1,0,0,\n", 13, "1627893739801.0737"] ], [ - "CŌDEX·LŪBRICUS", - ["title CŌDEX·LŪBRICUS\nauthor INCREPĀRE\nhomepage www.increpare.com\n\nagain_interval 0.1\n\nrun_rules_on_level_start\n\n\nbackground_color #523a2a\ntext_color #c19c4d\n\n( verbose_logging )\n\n(thanks to everyon on twitch for feedback + company as I was making this)\n========\nOBJECTS\n========\n\nBackground\n#ac763c #9b672f\n00000\n01010\n00000\n01010\n00000\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\ntargetfg1\n#ac763c #9b672f\n..111\n10101\n10101\n10101\n..111\n\n\ntargetfg2\n#9b672f #523a2a \n00111\n10101\n10101\n10101\n00111\n\nWall\n#8a6b3e #7d623a\n00000\n00000\n00100\n00000\n00000\n\nPlayer\n#8a6b3e #7d623a\n00000\n00000\n00100\n00000\n00000\n\nwall_highlight_top\n#c19c4d\n00000\n.....\n.....\n.....\n.....\n\nwall_highlight_bottom\n#523a2a\n.....\n.....\n.....\n.....\n00000\n\nwall_highlight_left\n#523a2a\n0....\n0....\n0....\n0....\n0....\n\nwall_highlight_right\n#c19c4d\n....0\n....0\n....0\n....0\n....0\n\n\nwall_highlight_topleft\n#8a6b3e\n0....\n.....\n.....\n.....\n.....\n\n\nwall_highlight_bottomright\n#8a6b3e\n.....\n.....\n.....\n.....\n....0\n\n\n(\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n)\nCrate1 1\n#9e564a \n00000\n00000\n00000\n00000\n00000\n\ncrate1_highlight_top\n#b76f63\n00000\n.....\n.....\n.....\n.....\n\ncrate1_highlight_bottom\n#743429\n.....\n.....\n.....\n.....\n00000\n\ncrate1_highlight_left\n#743429\n0....\n0....\n0....\n0....\n0....\n\ncrate1_highlight_right\n#b76f63\n....0\n....0\n....0\n....0\n....0\n\n\ncrate1_highlight_topleft\n#9e564a\n0....\n.....\n.....\n.....\n.....\n\n\ncrate1_highlight_bottomright\n#9e564a\n.....\n.....\n.....\n.....\n....0\n\n\nCrate2 2\n#4ca474 \n00000\n00000\n00000\n00000\n00000\n\n\n\ncrate2_highlight_top\n#6dd39c\n00000\n.....\n.....\n.....\n.....\n\ncrate2_highlight_bottom\n#2b6143\n.....\n.....\n.....\n.....\n00000\n\ncrate2_highlight_left\n#2b6143\n0....\n0....\n0....\n0....\n0....\n\ncrate2_highlight_right\n#6dd39c\n....0\n....0\n....0\n....0\n....0\n\n\ncrate2_highlight_topleft\n#4ca474\n0....\n.....\n.....\n.....\n.....\n\n\ncrate2_highlight_bottomright\n#4ca474\n.....\n.....\n.....\n.....\n....0\n\n\nslideright\ntransparent\n\nslidedown\ntransparent\n\nslideleft\ntransparent\n\nslideup\ntransparent\n\nnospawn ,\ntransparent\n\n\n=======\nLEGEND\n=======\n\n\ncrate = crate1 or crate2 \nslidetag = slideleft or slideup or slideright or slidedown\n\ncrate1_highlight = crate1_highlight_top or crate1_highlight_bottom or crate1_highlight_left or crate1_highlight_right or crate1_highlight_topleft or crate1_highlight_bottomright\n\ncrate2_highlight = crate2_highlight_top or crate2_highlight_bottom or crate2_highlight_left or crate2_highlight_right or crate2_highlight_topleft or crate2_highlight_bottomright\n\ncrate_highlight = crate1_highlight or crate2_highlight\n\nhighlight_left = wall_highlight_left or crate1_highlight_left or crate2_highlight_left\nhighlight_bottom = wall_highlight_bottom or crate1_highlight_bottom or crate2_highlight_bottom\n\n. = Background\n# = Wall\nP = Player and wall\n* = Crate1\n@ = Crate1 and Target\nO = Target and nospawn\nobs = wall or crate\n\n; = targetfg1 and nospawn\n: = targetfg2 and Target and nospawn\n\n=======\nSOUNDS\n=======\n\nsfx0 94813307 (push)\nsfx1 66342702 (delete)\nendlevel 61653300\nstartgame 5762303\nstartlevel 10793103\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\ntargetfg1, targetfg2\nPlayer\nWall, Crate\nwall_highlight_top,crate1_highlight_top,crate2_highlight_top\nwall_highlight_bottom,crate1_highlight_bottom,crate2_highlight_bottom\nwall_highlight_left,crate1_highlight_left,crate2_highlight_left\nwall_highlight_right,crate1_highlight_right,crate2_highlight_right\nwall_highlight_topleft,crate1_highlight_topleft,crate2_highlight_topleft\nwall_highlight_bottomright,crate1_highlight_bottomright,crate2_highlight_bottomright\nslidetag\nnospawn\n\n======\nRULES\n======\n\n\n\n\n[> player slidetag]->[> player]\n\n[ up player ] -> [ up player slideup ] again \n[ down player ] -> [ down player slidedown ] again \n[ left player ] -> [ left player slideleft ] again \n[ right player ] -> [ right player slideright ] again \n\n\n[ slideup ] [ crate ] -> [ slideup ] [ up crate ] again\n[ slidedown ] [ crate ] -> [ slidedown ] [ down crate ] again\n[ slideleft ] [ crate ] -> [ slideleft ] [ left crate ] again\n[ slideright ] [ crate ] -> [ slideright ] [ right crate ] again\n\n[ > crate | stationary obs ] -> [ crate | stationary obs ]\n+ [ moving crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ moving crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n\n [ target > crate ] -> [ target ] sfx1\n\n[moving player]->[player]\n\n(cosmetics start)\nlate [crate_highlight]->[]\n\n\nlate right [ no target | target ] -> [ targetfg1 | targetfg2 target]\n\nlate up [ wall | no wall ] -> [ wall wall_highlight_top |]\nlate down [ wall | no wall ] -> [ wall wall_highlight_bottom| ]\nlate left [ wall | no wall ] -> [ wall wall_highlight_left |]\nlate right [ wall | no wall ] -> [ wall wall_highlight_right |]\nlate [wall_highlight_top wall_highlight_left ] -> [wall_highlight_top wall_highlight_left wall_highlight_topleft]\nlate [wall_highlight_bottom wall_highlight_right ] -> [wall_highlight_bottom wall_highlight_right wall_highlight_bottomright]\n\nlate up [ crate1 | no crate1 ] -> [ crate1 crate1_highlight_top |]\nlate down [ crate1 | no crate1 ] -> [ crate1 crate1_highlight_bottom| ]\nlate left [ crate1 | no crate1 ] -> [ crate1 crate1_highlight_left |]\nlate right [ crate1 | no crate1 ] -> [ crate1 crate1_highlight_right |]\nlate [crate1_highlight_top crate1_highlight_left ] -> [crate1_highlight_top crate1_highlight_left crate1_highlight_topleft]\nlate [crate1_highlight_bottom crate1_highlight_right ] -> [crate1_highlight_bottom crate1_highlight_right crate1_highlight_bottomright]\n\nlate up [ crate2 | no crate2 ] -> [ crate2 crate2_highlight_top |]\nlate down [ crate2 | no crate2 ] -> [ crate2 crate2_highlight_bottom| ]\nlate left [ crate2 | no crate2 ] -> [ crate2 crate2_highlight_left |]\nlate right [ crate2 | no crate2 ] -> [ crate2 crate2_highlight_right |]\nlate [crate2_highlight_top crate2_highlight_left ] -> [crate2_highlight_top crate2_highlight_left crate2_highlight_topleft]\nlate [crate2_highlight_bottom crate2_highlight_right ] -> [crate2_highlight_bottom crate2_highlight_right crate2_highlight_bottomright]\n\n(cosmetics end)\n\n==============\nWINCONDITIONS\n==============\n\nno crate\n\n=======\nLEVELS\n=======\n \n \n(EASY)\n\nmessage DŪC·OMNIA·FIGŪRĀS·FORĀS\nmessage I·EX·XX·AETĀTIBUS\n\n(ok)\n(easy and not bad)\n#######p##\n#..#..####\n#1....,,,o\n#1..#.,,,o\n#2#...,,,o\n#.....####\n##########\n\nmessage II·EX·XX·AETĀTIBUS\n\n(ok)\n(Easyish)\n#######p##\n#.....####\n#.....####\n#1....####\n#1#22.,,,o\n#122..,,,o\n#.2...,,,o\n#.....####\n#.....####\n#.....####\n##########\n\nmessage III·EX·XX·AETĀTIBUS\n\n(ok)\n(kinda nice. not sooo strategic but i liked whne i got it)\n############p##\n#..........####\n#..........####\n#..........####\n#....#.....,,,o\n#..........,,,o\n#..........,,,o\n#..........####\n#...#......####\n#...1122222####\n###############\n\nmessage IV·EX·XX·AETĀTIBUS\n\n(chill)\n(decent)\n#######p##\n#.....####\n##....,,,o\n#.2.#.,,,o\n#.2...,,,o\n#..#11####\n##########\n\nmessage V·EX·XX·AETĀTIBUS\n\n(ok)\n(not so hard, and was fun to figure out)\n############p##\n#..........####\n#....#.....####\n#....122222####\n#......#...,,,o\n#..........,,,o\n#..........,,,o\n#.........#####\n#..........####\n#..........####\n###############\n\nmessage VI·EX·XX·AETĀTIBUS\n\n\n(easy enough, not bad)\n(also interesting shape!)\n############p##\n#..........####\n#.2..#.....,,,o\n#.22...#...,,,o\n#...11.....,,,o\n#...#1.....####\n###############\n\nmessage VII·EX·XX·AETĀTIBUS\n\n\n(late easy but fun)\n#######p##\n#...#.####\n#.....####\n#...2.####\n#...2.,,,o\n#...2.,,,o\n#..#..,,,o\n#.1...####\n#.11..####\n#.....####\n##########\n\nmessage VIII·EX·XX·AETĀTIBUS\n\n(decent + late-easy)\n(looks interesting/tractable, but I'm wrecked~)\n############p##\n#.....222..####\n#..1...#...,,,o\n#..1.....#.,,,o\n#...#......,,,o\n#..........####\n###############\n\nmessage IX·EX·XX·AETĀTIBUS\n\n(MEDIUM)\n\n\n(ok)\n(good fun level to analyse + solve)\n############p##\n#..........####\n##.........####\n#..........####\n#..........,,,o\n#...2......,,,o\n#..#2......,,,o\n#...2......####\n#..111111..####\n#.........#####\n###############\n\nmessage X·EX·XX·AETĀTIBUS\n\n(meh? take or leave?)\n(before i left 4)\n(not too hard. satisfying middle state?)\n############p##\n#....1111..####\n#.#...1..#.####\n#22........####\n#22.#......,,,o\n#.2........,,,o\n#..........,,,o\n#..........####\n#..........####\n#..........####\n###############\n\nmessage XI·EX·XX·AETĀTIBUS\n\n\n(fine)\n(ok but the second time was much harder)\n(not too hard and ok? / kinda fun!) \n#######p##\n#.22#.####\n#.22..####\n#.11..####\n#.1...,,,o\n#..#..,,,o\n#.....,,,o\n#.....####\n#.....####\n#.....####\n##########\n\nmessage XII·EX·XX·AETĀTIBUS\n\n(HARD)\n\n\n\n(dunno, felt a bit hard but without personality)\n(hardish but unsatisfying to solve when i got it)\n(pleasant)\n#######p##\n#.....####\n#...1.####\n#..21.####\n#..222,,,o\n#.#..2,,,o\n#.....,,,o\n#.....####\n#.....####\n#.....####\n##########\n\nmessage XIII·EX·XX·AETĀTIBUS\n\n\n(TOO HARD)\n\n(biut hard but ok)\n(no idea how to solve, but haven't tried too hard)\n############p##\n#..........####\n#.#........####\n#..........####\n#.......#..,,,o\n#........11,,,o\n#..........,,,o\n#..........####\n#2.........####\n#2....#....####\n###############\n\nmessage XIV·EX·XX·AETĀTIBUS\n\n\n\n(meh, could leave out - didn't solve it too intentionally and didn't care to remember why)\n(before i left #1)\n(too hard! don't wanna think - haven't solved)\n############p##\n#..........####\n#..........####\n#..........####\n##.........,,,o\n#..........,,,o\n#......1...,,,o\n#22...111..####\n#22.#..1...####\n#22.......#####\n###############\n\nmessage XV·EX·XX·AETĀTIBUS\n\n\n\n(meh ok? once i solved it I could set a memorable personal goal state ,but there's no reason to have expected that to be deducable)\n(before i left 3)\n(no patience for this)\n############p##\n##......2..####\n#...#.2222.####\n#.....2....####\n#..........,,,o\n#..........,,,o\n#..#....111,,,o\n#........11####\n#..........####\n#..........####\n###############\n\nmessage XVI·EX·XX·AETĀTIBUS\n\n\n(solved, but very lukewarm about it; not much memorable, just using heuristics to power through) \n(After i came back 1)\n(dunno)\n############p##\n#..........####\n#1#........####\n#11111.....####\n#11........,,,o\n#..........,,,o\n#...#......,,,o\n#......2...####\n#..#...2...####\n#......2...####\n###############\n\nmessage XVII·EX·XX·AETĀTIBUS\n\n(Very like another level, but maybe worse/more comlpicated)\n############p##\n#..........####\n#......#...####\n#..........####\n#..........,,,o\n#..........,,,o\n##.........,,,o\n#....11112.####\n#........2#####\n#........2.####\n###############\n\n\nmessage XVIII·EX·XX·AETĀTIBUS\n\n\n(decent, lots of fun manipulations if a bit aimless)\n(might be ok but brain feels sleepy)\n#######p##\n#..2..####\n##.2.#####\n#..2..####\n#.....,,,o\n#...#.,,,o\n#11#..,,,o\n#.....####\n##....####\n#.....####\n##########\n\nmessage XIX·EX·XX·AETĀTIBUS\n\n(solved.fine)\n(can't be bothered)\n(looks good, too tired to solve rn)\n#######p##\n#...#.####\n#.....####\n#.....####\n#22#..,,,o\n#21...,,,o\n#21...,,,o\n#.....####\n#.....####\n#.....####\n##########\n\nmessage XX·EX·XX·AETĀTIBUS\n\n\n(ok last level but a bit meh)\n(After i came back 2)\n(too complicated?)\n############p##\n#....#.....####\n#..........####\n#..........####\n#..111.#...,,,o\n#..2111....,,,o\n#.2221.....,,,o\n#22........####\n#..........####\n#..#.......####\n###############\n\nmessage OPTIMĒ·LŪSISTĪ!\n\n\n( (Easy, maybe too easy?) )\n( #######p## )\n( #.....#### )\n( #...11,,,o )\n( #.###1,,,o )\n( ##2#..,,,o )\n( #3....#### )\n( ########## )\n\n\n\n( (curious / p. nice even thoguh it has three pieces) )\n( #######p## )\n( ###3#.#### )\n( #.#3..,,,o )\n( #..1#.,,,o )\n( #..12.,,,o )\n( #..22.#### )\n( ########## )\n\n( (hard) )\n( #######p## )\n( #.....#### )\n( #..11##### )\n( #3.1..#### )\n( #3....,,,o )\n( #.....,,,o )\n( #2....,,,o )\n( #.#...#### )\n( #....##### )\n( #.....#### )\n( ########## )\n\n\n( #######p## )\n( #.....#### )\n( #..11##### )\n( #3.1..#### )\n( #3....,,,o )\n( #.....,,,o )\n( #2....,,,o )\n( #.#...#### )\n( #....##### )\n( #.....#### )\n( ########## )\n\n( #######p## )\n( #.....#### )\n( #.....,,,o )\n( #.....,,,o )\n( #.....,,,o )\n( #.....#### )\n( ########## )\n\n\n( #######p## )\n( #.....#### )\n( #.....#### )\n( #.....#### )\n( #.....,,,o )\n( #.....,,,o )\n( #.....,,,o )\n( #.....#### )\n( #.....#### )\n( #.....#### )\n( ########## )\n\n\n( ############p## )\n( #..........#### )\n( #..........,,,o )\n( #..........,,,o )\n( #..........,,,o )\n( #..........#### )\n( ############### )\n\n( ############p## )\n( #..........#### )\n( #..........#### )\n( #..........#### )\n( #..........,,,o )\n( #..........,,,o )\n( #..........,,,o )\n( #..........#### )\n( #..........#### )\n( #..........#### )\n( ############### )\n",[2,3,0,3,2,3,0,0,1,1,3,2,1,0,0,3,0,1,0,3,2],"background wall:0,background wall wall_highlight_right:1,1,1,1,1,1,1,1,1,0,background wall wall_highlight_bottom:2,background:3,3,3,\n3,3,3,3,3,3,background wall wall_highlight_top:4,2,3,3,3,3,3,3,3,\nbackground crate2 crate2_highlight_bottom crate2_highlight_left crate2_highlight_top crate2_highlight_topleft:5,3,4,2,3,3,3,3,3,3,background crate2 crate2_highlight_left crate2_highlight_top crate2_highlight_topleft:6,background crate2 crate2_highlight_bottom crate2_highlight_bottomright crate2_highlight_right:7,background wall wall_highlight_left wall_highlight_right wall_highlight_top wall_highlight_topleft:8,0,2,\n3,3,3,3,3,background crate2 crate2_highlight_left crate2_highlight_right crate2_highlight_top crate2_highlight_topleft:9,background crate2 crate2_highlight_bottom:10,3,3,4,0,background wall wall_highlight_bottom wall_highlight_bottomright wall_highlight_left wall_highlight_right:11,3,3,3,\n3,3,background crate2 crate2_highlight_bottom crate2_highlight_bottomright crate2_highlight_right crate2_highlight_top:12,3,3,4,2,3,3,3,3,3,3,3,3,\n3,4,2,3,3,background crate1 crate1_highlight_bottom crate1_highlight_left crate1_highlight_top crate1_highlight_topleft:13,background wall wall_highlight_bottom wall_highlight_bottomright wall_highlight_left wall_highlight_right wall_highlight_top wall_highlight_topleft:14,3,3,3,3,3,4,2,3,\n3,background crate1 crate1_highlight_top:15,background crate1 crate1_highlight_bottom crate1_highlight_left:16,3,3,3,3,3,4,2,3,3,background crate1 crate1_highlight_right crate1_highlight_top:17,background crate1:18,background crate1 crate1_highlight_bottom crate1_highlight_bottomright crate1_highlight_left crate1_highlight_right:19,\n3,3,3,3,4,2,3,3,3,background crate1 crate1_highlight_bottom crate1_highlight_bottomright crate1_highlight_right crate1_highlight_top:20,3,3,3,3,3,\n4,0,background wall wall_highlight_left:21,21,background wall wall_highlight_bottom wall_highlight_left:22,background nospawn:23,23,23,background wall wall_highlight_left wall_highlight_top wall_highlight_topleft:24,21,21,0,background player slidedown wall:25,0,0,\n2,23,23,23,4,0,0,0,0,0,0,2,background nospawn targetfg1:26,26,26,\n4,0,0,0,0,0,0,2,background nospawn target targetfg2:27,27,27,4,0,0,0,\n",40,"1627893759466.7617"] + "CŌDEX·LŪBRICUS", + ["title CŌDEX·LŪBRICUS\nauthor INCREPĀRE\nhomepage www.increpare.com\n\nagain_interval 0.1\n\nrun_rules_on_level_start\n\n\nbackground_color #523a2a\ntext_color #c19c4d\n\n( verbose_logging )\n\n(thanks to everyon on twitch for feedback + company as I was making this)\n========\nOBJECTS\n========\n\nBackground\n#ac763c #9b672f\n00000\n01010\n00000\n01010\n00000\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\ntargetfg1\n#ac763c #9b672f\n..111\n10101\n10101\n10101\n..111\n\n\ntargetfg2\n#9b672f #523a2a \n00111\n10101\n10101\n10101\n00111\n\nWall\n#8a6b3e #7d623a\n00000\n00000\n00100\n00000\n00000\n\nPlayer\n#8a6b3e #7d623a\n00000\n00000\n00100\n00000\n00000\n\nwall_highlight_top\n#c19c4d\n00000\n.....\n.....\n.....\n.....\n\nwall_highlight_bottom\n#523a2a\n.....\n.....\n.....\n.....\n00000\n\nwall_highlight_left\n#523a2a\n0....\n0....\n0....\n0....\n0....\n\nwall_highlight_right\n#c19c4d\n....0\n....0\n....0\n....0\n....0\n\n\nwall_highlight_topleft\n#8a6b3e\n0....\n.....\n.....\n.....\n.....\n\n\nwall_highlight_bottomright\n#8a6b3e\n.....\n.....\n.....\n.....\n....0\n\n\n(\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n)\nCrate1 1\n#9e564a \n00000\n00000\n00000\n00000\n00000\n\ncrate1_highlight_top\n#b76f63\n00000\n.....\n.....\n.....\n.....\n\ncrate1_highlight_bottom\n#743429\n.....\n.....\n.....\n.....\n00000\n\ncrate1_highlight_left\n#743429\n0....\n0....\n0....\n0....\n0....\n\ncrate1_highlight_right\n#b76f63\n....0\n....0\n....0\n....0\n....0\n\n\ncrate1_highlight_topleft\n#9e564a\n0....\n.....\n.....\n.....\n.....\n\n\ncrate1_highlight_bottomright\n#9e564a\n.....\n.....\n.....\n.....\n....0\n\n\nCrate2 2\n#4ca474 \n00000\n00000\n00000\n00000\n00000\n\n\n\ncrate2_highlight_top\n#6dd39c\n00000\n.....\n.....\n.....\n.....\n\ncrate2_highlight_bottom\n#2b6143\n.....\n.....\n.....\n.....\n00000\n\ncrate2_highlight_left\n#2b6143\n0....\n0....\n0....\n0....\n0....\n\ncrate2_highlight_right\n#6dd39c\n....0\n....0\n....0\n....0\n....0\n\n\ncrate2_highlight_topleft\n#4ca474\n0....\n.....\n.....\n.....\n.....\n\n\ncrate2_highlight_bottomright\n#4ca474\n.....\n.....\n.....\n.....\n....0\n\n\nslideright\ntransparent\n\nslidedown\ntransparent\n\nslideleft\ntransparent\n\nslideup\ntransparent\n\nnospawn ,\ntransparent\n\n\n=======\nLEGEND\n=======\n\n\ncrate = crate1 or crate2 \nslidetag = slideleft or slideup or slideright or slidedown\n\ncrate1_highlight = crate1_highlight_top or crate1_highlight_bottom or crate1_highlight_left or crate1_highlight_right or crate1_highlight_topleft or crate1_highlight_bottomright\n\ncrate2_highlight = crate2_highlight_top or crate2_highlight_bottom or crate2_highlight_left or crate2_highlight_right or crate2_highlight_topleft or crate2_highlight_bottomright\n\ncrate_highlight = crate1_highlight or crate2_highlight\n\nhighlight_left = wall_highlight_left or crate1_highlight_left or crate2_highlight_left\nhighlight_bottom = wall_highlight_bottom or crate1_highlight_bottom or crate2_highlight_bottom\n\n. = Background\n# = Wall\nP = Player and wall\n* = Crate1\n@ = Crate1 and Target\nO = Target and nospawn\nobs = wall or crate\n\n; = targetfg1 and nospawn\n: = targetfg2 and Target and nospawn\n\n=======\nSOUNDS\n=======\n\nsfx0 94813307 (push)\nsfx1 66342702 (delete)\nendlevel 61653300\nstartgame 5762303\nstartlevel 10793103\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\ntargetfg1, targetfg2\nPlayer\nWall, Crate\nwall_highlight_top,crate1_highlight_top,crate2_highlight_top\nwall_highlight_bottom,crate1_highlight_bottom,crate2_highlight_bottom\nwall_highlight_left,crate1_highlight_left,crate2_highlight_left\nwall_highlight_right,crate1_highlight_right,crate2_highlight_right\nwall_highlight_topleft,crate1_highlight_topleft,crate2_highlight_topleft\nwall_highlight_bottomright,crate1_highlight_bottomright,crate2_highlight_bottomright\nslidetag\nnospawn\n\n======\nRULES\n======\n\n\n\n\n[> player slidetag]->[> player]\n\n[ up player ] -> [ up player slideup ] again \n[ down player ] -> [ down player slidedown ] again \n[ left player ] -> [ left player slideleft ] again \n[ right player ] -> [ right player slideright ] again \n\n\n[ slideup ] [ crate ] -> [ slideup ] [ up crate ] again\n[ slidedown ] [ crate ] -> [ slidedown ] [ down crate ] again\n[ slideleft ] [ crate ] -> [ slideleft ] [ left crate ] again\n[ slideright ] [ crate ] -> [ slideright ] [ right crate ] again\n\n[ > crate | stationary obs ] -> [ crate | stationary obs ]\n+ [ moving crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ moving crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n\n [ target > crate ] -> [ target ] sfx1\n\n[moving player]->[player]\n\n(cosmetics start)\nlate [crate_highlight]->[]\n\n\nlate right [ no target | target ] -> [ targetfg1 | targetfg2 target]\n\nlate up [ wall | no wall ] -> [ wall wall_highlight_top |]\nlate down [ wall | no wall ] -> [ wall wall_highlight_bottom| ]\nlate left [ wall | no wall ] -> [ wall wall_highlight_left |]\nlate right [ wall | no wall ] -> [ wall wall_highlight_right |]\nlate [wall_highlight_top wall_highlight_left ] -> [wall_highlight_top wall_highlight_left wall_highlight_topleft]\nlate [wall_highlight_bottom wall_highlight_right ] -> [wall_highlight_bottom wall_highlight_right wall_highlight_bottomright]\n\nlate up [ crate1 | no crate1 ] -> [ crate1 crate1_highlight_top |]\nlate down [ crate1 | no crate1 ] -> [ crate1 crate1_highlight_bottom| ]\nlate left [ crate1 | no crate1 ] -> [ crate1 crate1_highlight_left |]\nlate right [ crate1 | no crate1 ] -> [ crate1 crate1_highlight_right |]\nlate [crate1_highlight_top crate1_highlight_left ] -> [crate1_highlight_top crate1_highlight_left crate1_highlight_topleft]\nlate [crate1_highlight_bottom crate1_highlight_right ] -> [crate1_highlight_bottom crate1_highlight_right crate1_highlight_bottomright]\n\nlate up [ crate2 | no crate2 ] -> [ crate2 crate2_highlight_top |]\nlate down [ crate2 | no crate2 ] -> [ crate2 crate2_highlight_bottom| ]\nlate left [ crate2 | no crate2 ] -> [ crate2 crate2_highlight_left |]\nlate right [ crate2 | no crate2 ] -> [ crate2 crate2_highlight_right |]\nlate [crate2_highlight_top crate2_highlight_left ] -> [crate2_highlight_top crate2_highlight_left crate2_highlight_topleft]\nlate [crate2_highlight_bottom crate2_highlight_right ] -> [crate2_highlight_bottom crate2_highlight_right crate2_highlight_bottomright]\n\n(cosmetics end)\n\n==============\nWINCONDITIONS\n==============\n\nno crate\n\n=======\nLEVELS\n=======\n \n \n(EASY)\n\nmessage DŪC·OMNIA·FIGŪRĀS·FORĀS\nmessage I·EX·XX·AETĀTIBUS\n\n(ok)\n(easy and not bad)\n#######p##\n#..#..####\n#1....,,,o\n#1..#.,,,o\n#2#...,,,o\n#.....####\n##########\n\nmessage II·EX·XX·AETĀTIBUS\n\n(ok)\n(Easyish)\n#######p##\n#.....####\n#.....####\n#1....####\n#1#22.,,,o\n#122..,,,o\n#.2...,,,o\n#.....####\n#.....####\n#.....####\n##########\n\nmessage III·EX·XX·AETĀTIBUS\n\n(ok)\n(kinda nice. not sooo strategic but i liked whne i got it)\n############p##\n#..........####\n#..........####\n#..........####\n#....#.....,,,o\n#..........,,,o\n#..........,,,o\n#..........####\n#...#......####\n#...1122222####\n###############\n\nmessage IV·EX·XX·AETĀTIBUS\n\n(chill)\n(decent)\n#######p##\n#.....####\n##....,,,o\n#.2.#.,,,o\n#.2...,,,o\n#..#11####\n##########\n\nmessage V·EX·XX·AETĀTIBUS\n\n(ok)\n(not so hard, and was fun to figure out)\n############p##\n#..........####\n#....#.....####\n#....122222####\n#......#...,,,o\n#..........,,,o\n#..........,,,o\n#.........#####\n#..........####\n#..........####\n###############\n\nmessage VI·EX·XX·AETĀTIBUS\n\n\n(easy enough, not bad)\n(also interesting shape!)\n############p##\n#..........####\n#.2..#.....,,,o\n#.22...#...,,,o\n#...11.....,,,o\n#...#1.....####\n###############\n\nmessage VII·EX·XX·AETĀTIBUS\n\n\n(late easy but fun)\n#######p##\n#...#.####\n#.....####\n#...2.####\n#...2.,,,o\n#...2.,,,o\n#..#..,,,o\n#.1...####\n#.11..####\n#.....####\n##########\n\nmessage VIII·EX·XX·AETĀTIBUS\n\n(decent + late-easy)\n(looks interesting/tractable, but I'm wrecked~)\n############p##\n#.....222..####\n#..1...#...,,,o\n#..1.....#.,,,o\n#...#......,,,o\n#..........####\n###############\n\nmessage IX·EX·XX·AETĀTIBUS\n\n(MEDIUM)\n\n\n(ok)\n(good fun level to analyse + solve)\n############p##\n#..........####\n##.........####\n#..........####\n#..........,,,o\n#...2......,,,o\n#..#2......,,,o\n#...2......####\n#..111111..####\n#.........#####\n###############\n\nmessage X·EX·XX·AETĀTIBUS\n\n(meh? take or leave?)\n(before i left 4)\n(not too hard. satisfying middle state?)\n############p##\n#....1111..####\n#.#...1..#.####\n#22........####\n#22.#......,,,o\n#.2........,,,o\n#..........,,,o\n#..........####\n#..........####\n#..........####\n###############\n\nmessage XI·EX·XX·AETĀTIBUS\n\n\n(fine)\n(ok but the second time was much harder)\n(not too hard and ok? / kinda fun!) \n#######p##\n#.22#.####\n#.22..####\n#.11..####\n#.1...,,,o\n#..#..,,,o\n#.....,,,o\n#.....####\n#.....####\n#.....####\n##########\n\nmessage XII·EX·XX·AETĀTIBUS\n\n(HARD)\n\n\n\n(dunno, felt a bit hard but without personality)\n(hardish but unsatisfying to solve when i got it)\n(pleasant)\n#######p##\n#.....####\n#...1.####\n#..21.####\n#..222,,,o\n#.#..2,,,o\n#.....,,,o\n#.....####\n#.....####\n#.....####\n##########\n\nmessage XIII·EX·XX·AETĀTIBUS\n\n\n(TOO HARD)\n\n(biut hard but ok)\n(no idea how to solve, but haven't tried too hard)\n############p##\n#..........####\n#.#........####\n#..........####\n#.......#..,,,o\n#........11,,,o\n#..........,,,o\n#..........####\n#2.........####\n#2....#....####\n###############\n\nmessage XIV·EX·XX·AETĀTIBUS\n\n\n\n(meh, could leave out - didn't solve it too intentionally and didn't care to remember why)\n(before i left #1)\n(too hard! don't wanna think - haven't solved)\n############p##\n#..........####\n#..........####\n#..........####\n##.........,,,o\n#..........,,,o\n#......1...,,,o\n#22...111..####\n#22.#..1...####\n#22.......#####\n###############\n\nmessage XV·EX·XX·AETĀTIBUS\n\n\n\n(meh ok? once i solved it I could set a memorable personal goal state ,but there's no reason to have expected that to be deducable)\n(before i left 3)\n(no patience for this)\n############p##\n##......2..####\n#...#.2222.####\n#.....2....####\n#..........,,,o\n#..........,,,o\n#..#....111,,,o\n#........11####\n#..........####\n#..........####\n###############\n\nmessage XVI·EX·XX·AETĀTIBUS\n\n\n(solved, but very lukewarm about it; not much memorable, just using heuristics to power through) \n(After i came back 1)\n(dunno)\n############p##\n#..........####\n#1#........####\n#11111.....####\n#11........,,,o\n#..........,,,o\n#...#......,,,o\n#......2...####\n#..#...2...####\n#......2...####\n###############\n\nmessage XVII·EX·XX·AETĀTIBUS\n\n(Very like another level, but maybe worse/more comlpicated)\n############p##\n#..........####\n#......#...####\n#..........####\n#..........,,,o\n#..........,,,o\n##.........,,,o\n#....11112.####\n#........2#####\n#........2.####\n###############\n\n\nmessage XVIII·EX·XX·AETĀTIBUS\n\n\n(decent, lots of fun manipulations if a bit aimless)\n(might be ok but brain feels sleepy)\n#######p##\n#..2..####\n##.2.#####\n#..2..####\n#.....,,,o\n#...#.,,,o\n#11#..,,,o\n#.....####\n##....####\n#.....####\n##########\n\nmessage XIX·EX·XX·AETĀTIBUS\n\n(solved.fine)\n(can't be bothered)\n(looks good, too tired to solve rn)\n#######p##\n#...#.####\n#.....####\n#.....####\n#22#..,,,o\n#21...,,,o\n#21...,,,o\n#.....####\n#.....####\n#.....####\n##########\n\nmessage XX·EX·XX·AETĀTIBUS\n\n\n(ok last level but a bit meh)\n(After i came back 2)\n(too complicated?)\n############p##\n#....#.....####\n#..........####\n#..........####\n#..111.#...,,,o\n#..2111....,,,o\n#.2221.....,,,o\n#22........####\n#..........####\n#..#.......####\n###############\n\nmessage OPTIMĒ·LŪSISTĪ!\n\n\n( (Easy, maybe too easy?) )\n( #######p## )\n( #.....#### )\n( #...11,,,o )\n( #.###1,,,o )\n( ##2#..,,,o )\n( #3....#### )\n( ########## )\n\n\n\n( (curious / p. nice even thoguh it has three pieces) )\n( #######p## )\n( ###3#.#### )\n( #.#3..,,,o )\n( #..1#.,,,o )\n( #..12.,,,o )\n( #..22.#### )\n( ########## )\n\n( (hard) )\n( #######p## )\n( #.....#### )\n( #..11##### )\n( #3.1..#### )\n( #3....,,,o )\n( #.....,,,o )\n( #2....,,,o )\n( #.#...#### )\n( #....##### )\n( #.....#### )\n( ########## )\n\n\n( #######p## )\n( #.....#### )\n( #..11##### )\n( #3.1..#### )\n( #3....,,,o )\n( #.....,,,o )\n( #2....,,,o )\n( #.#...#### )\n( #....##### )\n( #.....#### )\n( ########## )\n\n( #######p## )\n( #.....#### )\n( #.....,,,o )\n( #.....,,,o )\n( #.....,,,o )\n( #.....#### )\n( ########## )\n\n\n( #######p## )\n( #.....#### )\n( #.....#### )\n( #.....#### )\n( #.....,,,o )\n( #.....,,,o )\n( #.....,,,o )\n( #.....#### )\n( #.....#### )\n( #.....#### )\n( ########## )\n\n\n( ############p## )\n( #..........#### )\n( #..........,,,o )\n( #..........,,,o )\n( #..........,,,o )\n( #..........#### )\n( ############### )\n\n( ############p## )\n( #..........#### )\n( #..........#### )\n( #..........#### )\n( #..........,,,o )\n( #..........,,,o )\n( #..........,,,o )\n( #..........#### )\n( #..........#### )\n( #..........#### )\n( ############### )\n", [2, 3, 0, 3, 2, 3, 0, 0, 1, 1, 3, 2, 1, 0, 0, 3, 0, 1, 0, 3, 2], "background wall:0,background wall wall_highlight_right:1,1,1,1,1,1,1,1,1,0,background wall wall_highlight_bottom:2,background:3,3,3,\n3,3,3,3,3,3,background wall wall_highlight_top:4,2,3,3,3,3,3,3,3,\nbackground crate2 crate2_highlight_bottom crate2_highlight_left crate2_highlight_top crate2_highlight_topleft:5,3,4,2,3,3,3,3,3,3,background crate2 crate2_highlight_left crate2_highlight_top crate2_highlight_topleft:6,background crate2 crate2_highlight_bottom crate2_highlight_bottomright crate2_highlight_right:7,background wall wall_highlight_left wall_highlight_right wall_highlight_top wall_highlight_topleft:8,0,2,\n3,3,3,3,3,background crate2 crate2_highlight_left crate2_highlight_right crate2_highlight_top crate2_highlight_topleft:9,background crate2 crate2_highlight_bottom:10,3,3,4,0,background wall wall_highlight_bottom wall_highlight_bottomright wall_highlight_left wall_highlight_right:11,3,3,3,\n3,3,background crate2 crate2_highlight_bottom crate2_highlight_bottomright crate2_highlight_right crate2_highlight_top:12,3,3,4,2,3,3,3,3,3,3,3,3,\n3,4,2,3,3,background crate1 crate1_highlight_bottom crate1_highlight_left crate1_highlight_top crate1_highlight_topleft:13,background wall wall_highlight_bottom wall_highlight_bottomright wall_highlight_left wall_highlight_right wall_highlight_top wall_highlight_topleft:14,3,3,3,3,3,4,2,3,\n3,background crate1 crate1_highlight_top:15,background crate1 crate1_highlight_bottom crate1_highlight_left:16,3,3,3,3,3,4,2,3,3,background crate1 crate1_highlight_right crate1_highlight_top:17,background crate1:18,background crate1 crate1_highlight_bottom crate1_highlight_bottomright crate1_highlight_left crate1_highlight_right:19,\n3,3,3,3,4,2,3,3,3,background crate1 crate1_highlight_bottom crate1_highlight_bottomright crate1_highlight_right crate1_highlight_top:20,3,3,3,3,3,\n4,0,background wall wall_highlight_left:21,21,background wall wall_highlight_bottom wall_highlight_left:22,background nospawn:23,23,23,background wall wall_highlight_left wall_highlight_top wall_highlight_topleft:24,21,21,0,background player slidedown wall:25,0,0,\n2,23,23,23,4,0,0,0,0,0,0,2,background nospawn targetfg1:26,26,26,\n4,0,0,0,0,0,0,2,background nospawn target targetfg2:27,27,27,4,0,0,0,\n", 40, "1627893759466.7617"] ], [ - "Oh No My Dog Is About To Swallow A Piece Of Chocolate", - ["title Oh No My Dog Is About To Swallow A Piece Of Chocolate\nauthor increpare\nhomepage www.increpare.com\n\nkey_repeat_interval 0.1\nagain_interval 0.1\n\nbackground_color #1e432e\ntext_color #e06f8b\n\nnoaction\n\n( debug )\n( verbose_logging )\n\n\n\n========\nOBJECTS\n========\n\nBackground\n#345e46\n\n\nPlayer\n#31a2f2\n\ndogskin1\n#a46422\n00000\n00000\n00000\n00000\n00000\n\ndogskin2\n#a46422 #945718\n00000\n00000\n00010\n00010\n00010\n\ndogskin3\n#a46422 #392a16 #e3e2a8\n00000\n01121\n01112\n01111\n01111\n\ndogskin4\n#a46422\n.....\n....0\n...00\n..000\n.0000\n\ndogskin5\n#945718 #a46422 #e06f8b\n00001\n11111\n11111\n11111\n11112\n\ndogskin6\n#a46422 #e06f8b #e3e2a8\n00000\n00000\n00000\n11111\n.2.2.\n\ndogskin7\n#a46422 #e06f8b #e3e2a8\n00000\n00000\n00000\n11111\n2.2.2\n\ndogskin8\n#a46422 #392a16 #e06f8b #e3e2a8\n00011\n00011\n00000\n22222\n.3.3.\n\ndogskin9\n#a46422 #e06f8b\n00001\n00001\n00001\n00001\n00001\n\ndogskin10\n#a46422 #945718\n..000\n..000\n00000\n00000\n10000\n\ndogskin11\n#a46422 #e06f8b\n00001\n00000\n00000\n00000\n00000\n\ndogskin12\n#a42544 #e3e2a8 #e06f8b #a46422\n01010\n22222\n33333\n33333\n33333\n\ndogskin13\n#e3e2a8 #a42544 #e06f8b #a46422\n01010\n22222\n33333\n33333\n33333\n\ndogskin14\n#a42544 #e3e2a8 #e06f8b #a46422\n01.1.\n22222\n33333\n33333\n3333.\n\ndogskin15\n#945718 #a46422\n01111\n00111\n00111\n00011\n10011\n\ndogskin16\n#a46422 #945718\n00000\n00000\n00000\n00111\n01111\n\ndogskin17\n#a46422 #945718\n00000\n00000\n00000\n11111\n11111\n\ndogskin18\n#a46422 #945718\n00000\n00000\n00000\n11110\n11111\n\ndogskin19\n#a46422\n00000\n00000\n00000\n00000\n0000.\n\ndogskin20\n#a46422\n00000\n00000\n0000.\n0000.\n0000.\n\ndogskin21\n#a46422\n0000.\n0000.\n0000.\n0000.\n0000.\n\ndogskin22\n#a46422\n0000.\n0000.\n0000.\n00000\n00000\n\ndogskin23\n#a46422\n0000.\n0000.\n0000.\n.0000\n..000\n\ndeaddogskin\n#392a16 #a46422\n01110\n10101\n11011\n10101\n01110\n\ndogclosedskin1\n#a46422 #945718\n00000\n00000\n00000\n00000\n11111\n\ndogclosedskin2\n#a46422 #392a16 #945718\n00011\n00011\n00000\n00000\n22222\n\ndogclosedskin3\n#e06f8b #a46422\n00000\n11111\n11111\n11111\n11111\n\ndogclosedskin4\n#e06f8b #a46422\n00000\n11111\n11111\n11111\n1111.\n\n\nplayerskin1\n#4d0400 #973530 #d3abab #130800\n00000\n10101\n11110\n22211\n23211\n\nplayerskin2\n#4d0400 #973530\n0000.\n00000\n10000\n01000\n10000\n\nplayerskin3 (x2)\n#973530\n00000\n00000\n00000\n00000\n00000\n\nplayerskin4\n#973530 #4d0400\n00111\n01011\n00101\n00011\n0000.\n\nplayerskin5\n#800700 #973530 #db5fa0 #b13978\n.0000\n.1111\n22221\n33331\n.1111\n\nplayerskin7\n#973530\n0000.\n0000.\n0000.\n0000.\n0000.\n\nplayerskin8 (x2)\n#4a9022\n00000\n00000\n00000\n00000\n00000\n\nplayerskin9\n#4a9022 #367413\n00001\n00001\n00001\n00001\n00001\n\n(then 8,9,8)\n\nplayerskin10\n#973530 #800700\n00000\n11000\n00000\n11000\n00000\n\nplayerskin11\n#367413 #4a9022\n00001\n11111\n11111\n11111\n11111\n\nplayerskin12\n#4a9022 #367413\n00001\n00010\n00100\n00100\n01000\n\nplayerskin13\n#367413 #4a9022\n00000\n11111\n11111\n11111\n11111\n\nplayerskin14\n#367413 #4a9022\n01111\n11111\n11111\n11111\n11111\n\nplayerskin15 (x3)\n#31a2f2\n00000\n00000\n00000\n00000\n00000\n\nplayerskin16\n#31a2f2 #167ec8\n00001\n00011\n00111\n01111\n11111\n\n(15)\n\nplayerskin17\n#167ec8\n00000\n00000\n00000\n00000\n00000\n\n(15,17)\n\nplayerskin18\n#a44951 #930e19 #d3a1a5\n01010\n01010\n00000\n11111\n22222\n\nplayerskin19\n#a44951 #930e19 #d3a1a5\n00000\n00000\n00000\n11111\n22222\n\nplayerskin20\n#90383f #800711 #ac767b\n00000\n00000\n11111\n22222\n.....\n\nchocolateskin\n#5d2816 #8c5340 #1f0c06\n01111\n20001\n20001\n20001\n22220\n\n\nDogHead \npink\n\nDogNeck \nred\n\nDogBottom \npurple\n\ndumbbellskin1\n#2a425b #1b2632 #26384b\n.0.0.\n12020\n12020\n12020\n12020\n\ndumbbellskin2\n#1b2632 #26384b\n01010\n01010\n01010\n01010\n01010\n\ndumbbellskin3\n#1b2632 #26384b\n01010\n01010\n01010\n00000\n.0.0.\n\n\ndumbbellskin4\n#8b8b8b #c8c8c8 #777777\n00000\n11111\n00000\n22222\n22222\n\nchairskin1\n#8b4b09 #bc7a36 #a46422\n01111\n02222\n02222\n02222\n00000\n\nchairskin2\n#bc7a36 #a46422 #8b4b09\n0000.\n11110\n11101\n11101\n21101\n\nchairskin3 (x2)\n#8b4b09 #a46422 #bc7a36\n01121\n01121\n01121\n01121\n01121\n\nchairskin4\n#8b4b09 #a46422 #bc7a36\n01121\n01111\n01111\n01111\n00000\n\nchairskin5\n#bc7a36 #a46422 #8b4b09\n00000\n11111\n11111\n11111\n22222\n\nchairskin6\n#bc7a36 #a46422 #8b4b09\n00000\n11110\n11110\n11110\n22221\n\nchairskin7\n#8b4b09 #a46422 #bc7a36\n.0110\n.0111\n.0112\n.0112\n.0112\n\nchairskin8\n#8b4b09 #a46422 #bc7a36\n.0112\n.0112\n.0112\n.0112\n.0000\n\nchairskin9\n#8b4b09 #a46422 #bc7a36\n0110.\n0111.\n0112.\n0112.\n0112.\n\nchairskin10\n#8b4b09 #a46422 #bc7a36\n0112.\n0112.\n0112.\n0112.\n0000.\n\ntableskin1\n#bc7a36 #8b4b09 #a46422\n.0000\n12222\n12222\n12222\n12222\n\ntableskin2\n#bc7a36 #a46422\n00000\n11111\n11111\n11111\n11111\n\ntableskin3\n#bc7a36 #a46422\n0000.\n11100\n11110\n11110\n11110\n\ntableskin4\n#8b4b09 #a46422\n01111\n01111\n01111\n01111\n01111\n\ntableskin5\n#a46422\n00000\n00000\n00000\n00000\n00000\n\ntableskin6\n#a46422 #bc7a36\n00001\n00001\n00001\n00001\n00001\n\ntableskin7\n#8b4b09 #a46422\n01111\n01111\n01111\n00111\n.0000\n\ntableskin8\n#a46422 #8b4b09\n00000\n00000\n00000\n00000\n11111\n\ntableskin9\n#a46422 #bc7a36 #8b4b09\n00001\n00001\n00001\n00001\n2222.\n\ntableskin10\n#8b4b09 #a46422 #bc7a36\n00000\n00001\n00111\n00121\n00121\n\ntableskin11\n#8b4b09 #a46422 #bc7a36\n00121\n00121\n00121\n00121\n00121\n\ntableskin12\n#8b4b09 #a46422 #bc7a36\n00121\n00121\n00121\n00121\n.012.\n\nrightskin1\n#bc7a36 #a46422 #8b4b09\n.0000\n11111\n12111\n12111\n12111\n\nrightskin2\n#bc7a36 #a46422 #8b4b09\n00000\n11110\n11110\n11110\n22211\n\n\nrightskin3\n#a46422 #8b4b09 #bc7a36\n01001\n01000\n01002\n01002\n01002\n\n\nrightskin4\n#a46422 #8b4b09 #bc7a36\n01002\n01002\n01002\n01002\n01002\n\n\n\nrightskin5\n#a46422 #bc7a36 #8b4b09\n01111\n20000\n20000\n20000\n22222\n\n\n\nrightskin6\n#a46422 #8b4b09 #bc7a36\n01002\n00002\n00002\n00002\n11111\n\n\n\n\n\n\n\nDogTongue \n#a42544\n.....\n.....\n.....\n.....\n0....\n\n\n\nboundary\n#846610\n\n\n\npushable \n#24c1ca #0d9ea6\n00000\n01110\n01110\n01110\n00000\n\npushable_connection_up\nyellow\n..0..\n.....\n.....\n.....\n.....\n\npushable_connection_down\nyellow\n.....\n.....\n.....\n.....\n..0..\n\npushable_connection_left\nyellow\n.....\n.....\n0....\n.....\n.....\n\npushable_connection_right\nyellow\n.....\n.....\n....0\n.....\n.....\n\nchocolate\npink\n0....\n.....\n.....\n.....\n.....\n\ndogstretch \n#0000ff\n.....\n.0...\n.....\n.....\n.....\n\ncantcontract\n#ff0000\n.....\n.....\n.....\n...0.\n.....\n\ncancontracttoken\ntransparent\n\n\n=======\nLEGEND\n=======\n\n\nobstacle = pushable or doghead or dogneck or dogbottom or boundary or player\npushable_connection = pushable_connection_up or pushable_connection_down or pushable_connection_left or pushable_connection_right\n\ndogblock = DogHead or DogNeck or DogBottom\ndogblock_noneck = DogHead or DogNeck or DogBottom\n\npushable_piece_nodog = pushable \npushing_piece_nodog = pushable or Player\n\npushable_piece = pushable or dogblock\npushing_piece = pushable or dogblock or Player\n\n\nq = DogHead\na = DogNeck\nz = DogBottom \nd = DogTongue\nw = boundary\n\n( 1 = pushable and chocolate )\n\n2 = pushable and pushable_connection_up\n3 = pushable and pushable_connection_down\n4 = pushable and pushable_connection_left\n5 = pushable and pushable_connection_right\n\n6 = pushable and pushable_connection_up and pushable_connection_down\n7 = pushable and pushable_connection_up and pushable_connection_left\n8 = pushable and pushable_connection_up and pushable_connection_right\n\n9 = pushable and pushable_connection_down and pushable_connection_left\n0 = pushable and pushable_connection_down and pushable_connection_right\n\n- = pushable and pushable_connection_left and pushable_connection_right\n\n\n+ = pushable and pushable_connection_up and pushable_connection_down and pushable_connection_left \n! = pushable and pushable_connection_up and pushable_connection_down and pushable_connection_right\n\" = pushable and pushable_connection_up and pushable_connection_left and pushable_connection_right\n£ = pushable and pushable_connection_down and pushable_connection_left and pushable_connection_right\n\n$ = pushable and pushable_connection_up and pushable_connection_down and pushable_connection_left and pushable_connection_right\n\n. = Background\nP = Player\n\nα = player and playerskin1\nβ = player and playerskin2\nγ = player and playerskin3\nδ = player and playerskin4\nε = player and playerskin5\nζ = player and playerskin7\nη = player and playerskin8\nθ = player and playerskin9\nι = player and playerskin10\nκ = player and playerskin11\nλ = player and playerskin12\nμ = player and playerskin13\nν = player and playerskin14\nξ = player and playerskin15\nο = player and playerskin16\nπ = player and playerskin17\nρ = player and playerskin18\nσ = player and playerskin19\nτ = player and playerskin20\n\nplayerskins = playerskin1 or playerskin2 or playerskin3 or playerskin4 or playerskin5 or playerskin7 or playerskin8 or playerskin9 or playerskin10 or playerskin11 or playerskin12 or playerskin13 or playerskin14 or playerskin15 or playerskin16 or playerskin17 or playerskin18 or playerskin19 or playerskin20\n\ndumbbellskins = dumbbellskin1 or dumbbellskin2 or dumbbellskin3 or dumbbellskin4\n\nchairskins = chairskin1 or chairskin2 or chairskin3 or chairskin4 or chairskin5 or chairskin6 or chairskin7 or chairskin8 or chairskin9 or chairskin10\n\ntableskins = tableskin1 or tableskin2 or tableskin3 or tableskin4 or tableskin5 or tableskin6 or tableskin7 or tableskin8 or tableskin9 or tableskin10 or tableskin11 or tableskin12\n\nrightskins = rightskin1 or rightskin2 or rightskin3 or rightskin4 or rightskin5 or rightskin6\n\ndogskins = dogskin1 or dogskin2 or dogskin3 or dogskin4 or dogskin5 or dogskin6 or dogskin7 or dogskin8 or dogskin9 or dogskin10 or dogskin11 or dogskin12 or dogskin13 or dogskin14 or dogskin15 or dogskin16 or dogskin17 or dogskin18 or dogskin19 or dogskin20 or dogskin21 or dogskin22 or dogskin23 or deaddogskin or dogclosedskin1 or dogclosedskin2 or dogclosedskin3 or dogclosedskin4\n\n\nskins = playerskins or dumbbellskins or chairskins or tableskins or rightskins or chocolateskin or dogskins\n\n\nυ = dumbbellskin1 and pushable and pushable_connection_down\nφ = dumbbellskin1 and pushable and pushable_connection_down\nχ = dumbbellskin2 and pushable and pushable_connection_up and pushable_connection_right and pushable_connection_down\nψ = dumbbellskin4 and pushable and pushable_connection_left and pushable_connection_right\nω = dumbbellskin4 and pushable and pushable_connection_left and pushable_connection_right\nА = dumbbellskin2 and pushable and pushable_connection_up and pushable_connection_left and pushable_connection_down\nБ = dumbbellskin3 and pushable and pushable_connection_up\nВ = dumbbellskin3 and pushable and pushable_connection_up\n\nГ = chairskin1 and pushable and pushable_connection_right\nД = chairskin2 and pushable and pushable_connection_left and pushable_connection_down\nЕ = chairskin3 and pushable and pushable_connection_up and pushable_connection_down\nЁ = chairskin4 and pushable and pushable_connection_up and pushable_connection_down and pushable_connection_right\nЖ = chairskin5 and pushable and pushable_connection_left and pushable_connection_right\nЗ = chairskin6 and pushable and pushable_connection_left and pushable_connection_down\nИ = chairskin7 and pushable and pushable_connection_up and pushable_connection_down\nЙ = chairskin9 and pushable and pushable_connection_up and pushable_connection_down\nК = chairskin8 and pushable and pushable_connection_up \nЛ = chairskin10 and pushable and pushable_connection_up \n\nЩ = rightskin1 and pushable and pushable_connection_down and pushable_connection_right\nЪ = rightskin2 and pushable and pushable_connection_left\nЫ = rightskin3 and pushable and pushable_connection_up and pushable_connection_down\nЬ = rightskin4 and pushable and pushable_connection_up and pushable_connection_down\nЭ = rightskin5 and pushable and pushable_connection_right and pushable_connection_down\nЮ = rightskin6 and pushable and pushable_connection_left and pushable_connection_down and pushable_connection_up\n(ТУФХЦЧ)\n\nМ = tableskin1 and pushable and pushable_connection_down and pushable_connection_right\nН = tableskin2 and pushable and pushable_connection_left and pushable_connection_down and pushable_connection_right\nО = tableskin3 and pushable and pushable_connection_down and pushable_connection_left\nП = tableskin4 and pushable and pushable_connection_down and pushable_connection_right and pushable_connection_up\nР = tableskin5 and pushable and pushable_connection_down and pushable_connection_right and pushable_connection_up and pushable_connection_left\nС = tableskin6 and pushable and pushable_connection_down and pushable_connection_left and pushable_connection_up\nТ = tableskin7 and pushable and pushable_connection_up and pushable_connection_right\nУ = tableskin8 and pushable and pushable_connection_up and pushable_connection_right and pushable_connection_left and pushable_connection_down\nФ = tableskin9 and pushable and pushable_connection_up and pushable_connection_left\nХ = tableskin10 and pushable and pushable_connection_down and pushable_connection_up\nЦ = tableskin11 and pushable and pushable_connection_down and pushable_connection_up\nЧ = tableskin12 and pushable and pushable_connection_up\nШ = tableskin8 and pushable and pushable_connection_up and pushable_connection_right and pushable_connection_left\n\nЯ = chocolateskin and DogBottom and chocolate\n\n\n丁 = DogHead and dogskin1\n上 = doghead and dogskin2\n下 = doghead and dogskin3\n不 = doghead and dogskin4\n且 = doghead and dogskin5\n世 = doghead and dogskin6\n丙 = doghead and dogskin7\n並 = doghead and dogskin8\n中 = DogNeck and dogskin1\n丸 = DogNeck and dogskin9\n\n主 = DogBottom and dogskin10\n乂 = DogBottom and dogskin1\n乃 = DogBottom and dogskin11\n之 = DogBottom and dogskin12\n乎 = DogBottom and dogskin13\n九 = DogBottom and dogskin14\n也 = DogBottom and dogskin15\n事 = DogBottom and dogskin16\n二 = DogBottom and dogskin17\n五 = DogBottom and dogskin18\n亡 = DogBottom and dogskin19\n交 = DogBottom and dogskin20\n亦 = DogBottom and dogskin21\n京 = DogBottom and dogskin22\n亭 = DogBottom and dogskin23\n\n(丁上下不且世丙並\n中丸\n主乂乃之乎九也事二五亡交亦京亭人)\n\n\n(\n仕仙令以仰任伊伏伐伯似位佐何作佳使來侈侍俊俗俠信修俯俶倫假傅傍催傳傷傾僚儀優兄充光克兒入內兩八公兵其具典再冠冥冬凋凌出分切刑列初別利刻則劍力功助劭勉勒動務勞勸勿化匡匪千升卑南即卿厥厭去及友叔取受叛口古可史右合吉吊同名君吹呂周命和咸哉唐唱問啟善嗣嘉嘗嘯器嚴囊四回因困國園圓圖土在地坐垂垢垣城執基堂堅場塞增墨墳壁士壹夏夕外夙多夜大天夫奄奉奏女好如妍妙妾始姑委姜姿威婦嫡子孔字存孝孟孤孰學宅宇守安宗官宙定宜宣宮宰宴家容宿寂密富寐寒寓寔察寡寥實寧審寫寵寶寸封射將尊尋對少尹尺居履屬岡岩岫岱岳嵇川州工左巧巨己巾市布帝師席帳帶帷常平年并幸幾床府庭庶康庸廉廊廟廣建弁弊引弗弟弦弱張形彩彼往徊律後得徘從御微德心必忘忠念思性恃恐恥恬恭息悅悚悲情惟惠惡想惶惻意愚愛感慈慎慕慮慶懷懸懼戎成我戚戶房所扇手才扶承投抗抽招拜拱持指振捕接推搖摩操據攝收攸改政故效敕敢散敦敬文斡斬斯新方於施既日旦昃昆明易星映是時晉晚晝晦景暉暑曜曠曦曰曲更書最會月有服朗朝木本李杜束杯東杳杷松枇林果枝染柰根桐桓條梧棠植楚業極楹榮槐樂樓機橫次欣欲歌歡止正此步武歲歷歸殆殊殷殿毀母每比毛民氣水永求池沉沙沛河治法泰洛洞洪流浮浴海涇涼淑淡深淵清渠渭游湯溪溫滅滿漆漠漢潔潛澄濟火為烝烹焉無煌煒照煩熟熱營燭爵父牆牒牧物特犢猶猷獨獲獸玄率玉王玩珍珠理琴瑟璇璣璧環甘甚生用田甲男畏畝畫異當疏疑疲登發白百的皆皇皋盈益盛盜盟盡盤目直相省真眠眺睦瞻矜矢知矩短矯石碑碣磨磻祀祗祜神祭祿禍福禪禮禹禽秉秋秦移稅稱稷稼稽稿積穡空立竟章竭端競竹笑笙筆等筍答策筵箋箱箴節篤簡籍精糟糠糧約紈納紙紛素紡索紫累終組結絜給絲絳綏經維綺綿緣縣縻績續纓罔罪羅羊羌美羔群義羽習翔翠翦翳老者而耳耽聆聖聚聞聲職聽肆肥育背能腸膳臣臨自致與興舉舊舍良色芥若英茂草荒荷莊莫莽菜華萬落葉蒙蓋薄薪藍藏藝蘭處虛虞號虢虧蚤行衡衣表被裳製西要覆見規親觀解觴言訓設詠詩詳誅誌誚語誠誡說誰調談論諸謂謙謝謹譏譽讀讓谷豈象豫貌貞貢貴貽資賊賓賞賢賤賴贊赤起超趙足跡路踐躍身躬車軍軻載輕輦輶轂轉辨辭辰辱農近退逍逐途通造連逸逼運過遐道達遙遠遣適遵邇邈邑邙郡都酒釋重野量金釣鈞銀銘鐘鑒長門閏閒闕阜阮阿陋陛陟陪陰陳陶陽階隨隱隸雁雅集雞離難雨雲霄霜露霸靈青靜非靡面鞠韓音頓頗領願顙顛顧顰飄飛食飫飯飽養餐餘饑首馨馳駒駕駭騰騾驅驚驢驤骸體高鬱魄魏魚鱗鳥鳳鳴鶤麗黃黍黎默黜鼓龍\n)\n=======\nSOUNDS\n=======\n\npushable move 72882707\ndogblock move 25942907\nstartgame 38015704\nendlevel 9541904\n\n\n================\nCOLLISIONLAYERS\n================\n\npushable_connection_up\npushable_connection_down\npushable_connection_left\npushable_connection_right\nchocolate\ndogstretch\ncantcontract\ncancontracttoken\n\nPlayer, DogHead, DogNeck,DogBottom\n\npushable\n\nBackground\nboundary\n\nDogTongue\n(skins layer)\n\n\nskins\n\n\n======\nRULES\n======\n\n[player]->again\n\n\n(replace chocolate with pushable if moving horizontally)\n[ horizontal player ] [ chocolate chocolateskin DogBottom ] -> [ horizontal player ] [ chocolate chocolateskin pushable ]\n\n(replace chocolate with pushable if no dogbody below)\n\ndown [ chocolate chocolateskin DogBottom | no dogskin12 no dogskin13 no dogskin14 ] -> [ chocolate chocolateskin pushable | ]\n\n(DOG HEAD CONTRACT)\n\n(only contracts when player's not moving, and they're not in touch shouldn't be necessary but just in case)\n[ > player ] [dogblock ] -> [ > player ] [ dogblock cantcontract ]\ndown [ DogHead | DogBottom ] [ dogblock ] -> [ DogHead | DogBottom ] [dogblock cantcontract]\ndown [DogHead | pushable no chocolate ] -> [ doghead cantcontract | pushable ]\n[ DogHead cantcontract ] [ DogHead no cantcontract ] -> [DogHead cantcontract ] [DogHead cantcontract ]\n\nup [ DogBottom | pushable no chocolate ] -> [ DogBottom cantcontract | pushable ]\n\n\n[ DogBottom cantcontract ] [ DogBottom no cantcontract ] -> [DogBottom cantcontract ] [DogBottom cantcontract ]\n[ DogHead no cantcontract ] [ DogHead cantcontract ] -> [ DogHead cantcontract ] [ DogHead cantcontract ]\n\n(parity problem when head + body try to clamp shut when thyey're 1 distance away from eachother - give the head right of way)\ndown [ doghead no cantcontract | no dogblock | DogBottom no cantcontract ] -> [ doghead | | DogBottom cantcontract ] \n\n(and you neeed to repropagate)\n[ DogBottom cantcontract ] [ DogBottom no cantcontract ] -> [DogBottom cantcontract ] [DogBottom cantcontract ]\n[ DogHead no cantcontract ] [ DogHead cantcontract ] -> [ DogHead cantcontract ] [ DogHead cantcontract ]\n\n\n[DogHead no cantcontract ] -> [down DogHead ]\n[DogBottom no cantcontract ] -> [up DogBottom ]\n\ndown [ down doghead | DogNeck ] -> [ down doghead | no dogskins ]\nup [ up DogBottom | DogNeck ] -> [ up DogBottom | no dogskins ]\n\nlate [ cantcontract ] -> [ ]\n\n(SETUP FOR CONNECTIONS)\n( right [ pushable | pushable ] -> [ pushable pushable_connection_right | pushable pushable_connection_left ] )\n( down [ pushable | pushable ] -> [ pushable pushable_connection_down | pushable pushable_connection_up ] )\n\n\n(propagate movements)\n\n(propagate movements first ignoring dog)\n\n[ > pushing_piece_nodog | pushable_piece_nodog ] -> [ > pushing_piece_nodog | > pushable_piece_nodog ]\n+ up [ moving pushable pushable_connection_up | pushable pushable_connection_down ] -> [ moving pushable moving pushable_connection_up | moving pushable moving pushable_connection_down ]\n+ down [ moving pushable pushable_connection_down | pushable pushable_connection_up ] -> [ moving pushable moving pushable_connection_down | moving pushable moving pushable_connection_up ]\n+ left [ moving pushable pushable_connection_left | pushable pushable_connection_right ] -> [ moving pushable moving pushable_connection_left | moving pushable moving pushable_connection_right ]\n+ right [ moving pushable pushable_connection_right | pushable pushable_connection_left ] -> [ moving pushable moving pushable_connection_right | moving pushable moving pushable_connection_left ]\n\nvertical [> pushing_piece_nodog | DogBottom ] [ > pushing_piece_nodog | DogHead ] -> [> pushing_piece_nodog | > DogBottom ] [ > pushing_piece_nodog | > DogHead ]\n[moving DogHead ] [stationary DogHead ] -> [moving DogHead ] [moving DogHead]\n[moving DogBottom ] [stationary DogBottom ] -> [moving DogBottom ] [moving DogBottom]\n( allow to push chocolate into mouth)\n\n( right [ DogNeck | no obstacle | chocolateskin chocolate DogBottom | < pushing_piece ] -> [ DogNeck | chocolateskin chocolate DogBottom | | < pushable ] )\n\n(DOG NECK STRETCH)\n\n(either top is held stationary and bottom is moved down)\n(stationary pushable vs stationary obstacle because level boundary geometry can't access inside of mouth/small of back)\ndown [ stationary DogHead | stationary pushable no chocolate ] [ > pushing_piece_nodog | DogBottom ] -> [ dogstretch DogHead | pushable] [ > pushing_piece_nodog | > DogBottom ]\n\n\n(or bottom is held stationary and top is movedup)\ndown [ stationary pushable no chocolate | stationary DogBottom ] [ DogHead | < pushing_piece_nodog ] -> [ stationary pushable | dogstretch DogBottom ] [ < DogHead | < pushing_piece_nodog ]\n\n\n[ DogHead dogstretch | DogHead no dogstretch ] -> [ DogHead dogstretch | DogHead dogstretch ]\n[ DogBottom dogstretch | DogBottom no dogstretch ] -> [ DogBottom dogstretch | DogBottom dogstretch ]\n\n(DOG NECK SQEEZE)\n\n\n\n(either top is held stationary and bottom is moved up)\ndown [ stationary obstacle | stationary DogHead ] [ DogBottom | < pushing_piece_nodog] -> [ obstacle | DogHead cancontracttoken] [ < DogBottom | < pushing_piece_nodog ]\n\n\n(or bottom is held stationary and top is moved down)\ndown [ stationary DogBottom | stationary obstacle ] [ > pushing_piece_nodog | DogHead] -> [ DogBottom cancontracttoken | obstacle ] [ > pushing_piece_nodog | DogHead ]\n\nrandom right [cancontracttoken] [DogNeck | DogNeck ] -> [] [ no skins|no skins]\n[cancontracttoken]->[]\n\n(DOG NECK COMPRESS)\n\n[ > pushing_piece | pushable_piece no dogstretch ] -> [ > pushing_piece | > pushable_piece ]\n+ up [ moving pushable pushable_connection_up | pushable pushable_connection_down ] -> [ moving pushable moving pushable_connection_up | moving pushable moving pushable_connection_down ]\n+ down [ moving pushable pushable_connection_down | pushable pushable_connection_up ] -> [ moving pushable moving pushable_connection_down | moving pushable moving pushable_connection_up ]\n+ left [ moving pushable pushable_connection_left | pushable pushable_connection_right ] -> [ moving pushable moving pushable_connection_left | moving pushable moving pushable_connection_right ]\n+ right [ moving pushable pushable_connection_right | pushable pushable_connection_left ] -> [ moving pushable moving pushable_connection_right | moving pushable moving pushable_connection_left ]\n+ [ moving dogblock no dogstretch | stationary dogblock no dogstretch ] -> [ moving dogblock | moving dogblock ]\n\n[ > pushing_piece | stationary obstacle ] -> cancel\n\nup [ moving dogbottom | DogTongue ] -> [ moving DogBottom | moving DogTongue ]\nright [ pushable chocolate chocolateskin | moving DogTongue ] -> [moving pushable moving chocolate moving chocolateskin | moving DogTongue ]\n\nright [ stationary pushable | < pushable < chocolate < chocolateskin ] -> [ pushable | pushable chocolate chocolateskin ]\n\n[ moving DogBottom chocolate chocolateskin ] -> [ moving DogBottom moving chocolate moving chocolateskin]\n[ moving pushable chocolate chocolateskin ] -> [ moving pushable moving chocolate moving chocolateskin]\n\n\n[ moving pushable_piece skins ] -> [ moving pushable_piece moving skins ]\n[ moving Player playerskins ] -> [ moving Player moving playerskins ]\n\n(LATE)\n\nlate down [ dogskin4 | no DogNeck no obstacle ] [ dogskin5 | no DogNeck no obstacle ] -> [ dogskin4 | DogNeck ] [dogskin5 | DogNeck ]\n\n\nlate vertical [ DogNeck | no DogHead no DogBottom ] -> [ DogNeck | DogNeck ]\nlate right [ dogneck no dogskins | dogneck no dogskins ] -> [ 中 | 丸 ]\n(replace chocolate pushable with dogbottom)\n\nlate [chocolate chocolateskin pushable] -> [chocolate chocolateskin DogBottom]\n\n\n(move to start for visualisation purposes)\nlate [ dogstretch ] -> [ ]\n\n\n==============\nWINCONDITIONS\n==============\nno DogNeck\nno deaddogskin\n\n=======\nLEVELS\n=======\n\nmessage NO DON'T YOU DARE SWALLOW THAT\n\n\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........υ..υ.υ..υ.......................................w\nw........χψψа.χψψа.......................................w\nw........б..б.б..б.......................................w\nw..................................гд..............щъ....w\nw...................................е....мнннно....ы.....w\nw........................αβ.........е....пррррс....ь.....w\nw.......................γγδ.........ёжз..пррррс..эжю.....w\nw........................εζ.........и.й..пррррс..и.й.....w\nw........................ηη.........к.л..пррррс..к.л.....w\nw.............丁上下........θη..............пррррс..........w\nw.............不且世丙並......θη..............пррррс..........w\nw.............中丸.яd.....ικλ..............пррррс..........w\nw.........主乂乂乂乂乃之乎九......μν........гд....пррррс....щъ....w\nw.........也事二五乂亡.........ξο.........е....пррррс....ы.....w\nw.........交...亦..........ξπ.........е....пррррс....ь.....w\nw.........京...亭..........ξπ.........ёжз..тушшуф..эжю.....w\nw........................ξπ.........и.й...х..х...и.й.....w\nw.......................ρστ.........к.л...ц..ц...к.л.....w\nw.........................................ц..ц...........w\nw.........................................ч..ч...........w\nw........................................................w\nw........................................................w\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n\nmessage YOU ARE SUCH A SHITEHAWK OF A DOG\n\n(\n\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nw..........................гд............................w\nw...........................е............................w\nw...........................е............................w\nw...........................ёжз..........................w\nw...........................и.й..........................w\nw...........................к.л..........................w\nw.............................щъ.........................w\nw.............................ы..........................w\nw.............................ь..........................w\nw...........................эжю..........................w\nw....υ..υ...................и.й..........................w\nw....χψψа...................к.л..........................w\nw....б..б................................................w\nw........................................................w\nw..............αβ........................................w\nw.............γγδ........................................w\nw..............εζ........................................w\nw..............ηη........................................w\nw..............θη........................мнннно..........w\nw..............θη........................пррррс..........w\nw.............ικλ........................пррррс..........w\nw..............μν........................пррррс..........w\nw..............ξο........................пррррс..........w\nw..............ξπ........................пррррс..........w\nw..............ξπ........................пррррс..........w\nw..............ξπ........................пррррс..........w\nw............яρστ..................гд....пррррс....щъ....w\nw........丁上下........................е....пррррс....ы.....w\nw........不且世丙並......................е....пррррс....ь.....w\nw........中丸υ..υ.....................ёжз..тушшуф..эжю.....w\nw........中丸χψψа.....................и.й...х..х...и.й.....w\nw........中丸б.dб.....................к.л...ц..ц...к.л.....w\nw....主乂乂乂乂乃之乎九............................ц..ц...........w\nw....也事二五乂亡...............................ч..ч...........w\nw....交...亦...............................................w\nw....京...亭...............................................w\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n\n\n\n\n\n(move left and dog has bad time)\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nw..........................гд............................w\nw...........................е............................w\nw...........................е............................w\nw...........................ёжз..........................w\nw...........................и.й..........................w\nw...........................к.л..........................w\nw.............................щъ.........................w\nw.............................ы..........................w\nw.............................ь..........................w\nw...........................эжю..........................w\nw....υ..υ...................и.й..........................w\nw....χψψа...................к.л..........................w\nw....б..б................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw............αβ..........................................w\nw...........γγδ..........................................w\nw............εζ..........................мнннно..........w\nw............ηη..........................пррррс..........w\nw............θη..........................пррррс..........w\nw............θη..........................пррррс..........w\nw...........ικλ..........................пррррс..........w\nw............μν..........................пррррс..........w\nw............ξο..........................пррррс..........w\nw............ξπ..........................пррррс..........w\nw...........яξπ....................гд....пррррс....щъ....w\nw......丁上下...ξπ.....................е....пррррс....ы.....w\nw......不且世丙並ρστ.....................е....пррррс....ь.....w\nw......中丸..υ..υ.....................ёжз..тушшуф..эжю.....w\nw......中丸..χψψа.....................и.й...х..х...и.й.....w\nw......中丸..б..б.....................к.л...ц..ц...к.л.....w\nw..主乂乂乂乂乃之乎九..............................ц..ц...........w\nw..也事二五乂亡.................................ч..ч...........w\nw..交...亦.................................................w\nw..京...亭.................................................w\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n\n\n\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nw......丁上下.................гд............................w\nw......不且世丙並................е............................w\nw......中丸υ.яυ...............е............................w\nw......中丸χψψа..αβ...........ёжз..........................w\nw......中丸б..б.γγδ...........и.й..........................w\nw......中丸......εζ...........к.л..........................w\nw......中丸......ηη........................................w\nw..υ..υ中丸......θη........................................w\nw..χψψа中丸....щъθη........................................w\nw..б..б中丸....ыικλ........................................w\nw..主乂乂乂乂乃之乎九.ь.μν........................................w\nw..也事二五乂亡..эжю.ξο........................................w\nw..交...亦...и.й.ξπ........................................w\nw..京...亭...к.л.ξπ........................................w\nw..............ξπ........................................w\nw.............ρστ........................................w\nw........................................................w\nw........................................................w\nw........................................мнннно..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw..................................гд....пррррс....щъ....w\nw...................................е....пррррс....ы.....w\nw...................................е....пррррс....ь.....w\nw...................................ёжз..тушшуф..эжю.....w\nw...................................и.й...х..х...и.й.....w\nw...................................к.л...ц..ц...к.л.....w\nw.........................................ц..ц...........w\nw.........................................ч..ч...........w\nw........................................................w\nw........................................................w\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n\n)\n",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,2,2,2,2,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1],"background boundary: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,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background dumbbellskin1 pushable pushable_connection_down:2,background dumbbellskin2 pushable pushable_connection_down pushable_connection_right pushable_connection_up:3,background dumbbellskin3 pushable pushable_connection_up:4,background dogbottom dogskin10:5,background dogbottom dogskin15:6,background dogbottom dogskin20:7,background dogbottom dogskin22:8,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,background dumbbellskin4 pushable pushable_connection_left pushable_connection_right:9,1,background dogbottom dogskin1:10,background dogbottom dogskin16:11,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,1,10,background dogbottom dogskin17:12,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,background dumbbellskin2 pushable pushable_connection_down pushable_connection_left pushable_connection_up:13,4,10,background dogbottom dogskin18:14,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,background doghead dogskin1:15,background doghead dogskin4:16,background dogneck dogskin1:17,17,17,17,17,17,17,17,17,17,\n17,17,10,10,background dogbottom dogskin21:18,background dogbottom dogskin23:19,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,background doghead dogskin2:20,background doghead dogskin5:21,background dogneck dogskin9:22,22,22,22,22,22,22,22,22,22,22,22,background dogbottom dogskin11:23,background dogbottom dogskin19:24,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,background doghead dogskin3:25,background doghead dogskin6:26,1,1,1,1,1,1,1,1,1,1,1,1,background dogbottom dogskin12:27,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background doghead dogskin7:28,1,1,1,1,1,1,1,1,1,1,1,background chocolate chocolateskin dogbottom:29,\nbackground dogbottom dogskin13:30,1,1,1,1,1,1,1,1,0,0,1,1,1,1,background player playerskin3:31,1,1,1,1,background player playerskin10:32,1,1,1,1,background doghead dogskin8:33,background player playerskin18:34,1,1,1,1,1,1,1,1,1,1,background dogtongue:35,background dogbottom dogskin14:36,1,1,1,1,1,1,1,1,0,0,1,1,1,background player playerskin1:37,31,background player playerskin5:38,background player playerskin8:39,background player playerskin9:40,40,\nbackground player playerskin11:41,background player playerskin13:42,background player playerskin15:43,43,43,43,background player playerskin19:44,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,background player playerskin2:45,background player playerskin4:46,background player playerskin7:47,39,39,39,background player playerskin12:48,background player playerskin14:49,background player playerskin16:50,background player playerskin17:51,51,51,background player playerskin20:52,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,3,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,13,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,background chairskin1 pushable pushable_connection_right:53,1,1,1,1,1,1,1,1,53,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background chairskin2 pushable pushable_connection_down pushable_connection_left:54,background chairskin3 pushable pushable_connection_down pushable_connection_up:55,55,background chairskin4 pushable pushable_connection_down pushable_connection_right pushable_connection_up:56,background chairskin7 pushable pushable_connection_down pushable_connection_up:57,background chairskin8 pushable pushable_connection_up:58,\n1,1,1,54,55,55,56,57,58,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background chairskin5 pushable pushable_connection_left pushable_connection_right:59,1,1,1,1,1,1,1,1,59,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background chairskin6 pushable pushable_connection_down pushable_connection_left:60,background chairskin9 pushable pushable_connection_down pushable_connection_up:61,background chairskin10 pushable pushable_connection_up:62,1,1,1,1,1,1,60,61,62,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_right tableskin1:63,background pushable pushable_connection_down pushable_connection_right pushable_connection_up tableskin4:64,64,64,64,64,64,64,64,64,64,background pushable pushable_connection_right pushable_connection_up tableskin7:65,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_left pushable_connection_right tableskin2:66,background pushable pushable_connection_down pushable_connection_left pushable_connection_right pushable_connection_up tableskin5:67,67,67,67,67,67,67,67,\n67,67,background pushable pushable_connection_down pushable_connection_left pushable_connection_right pushable_connection_up tableskin8:68,background pushable pushable_connection_down pushable_connection_up tableskin10:69,background pushable pushable_connection_down pushable_connection_up tableskin11:70,70,background pushable pushable_connection_up tableskin12:71,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,66,67,67,67,67,67,67,67,67,67,67,background pushable pushable_connection_left pushable_connection_right pushable_connection_up tableskin8:72,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,66,67,67,67,67,67,67,67,67,67,67,72,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,66,67,67,67,67,67,67,67,67,67,67,\n68,69,70,70,71,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_left tableskin3:73,background pushable pushable_connection_down pushable_connection_left pushable_connection_up tableskin6:74,74,74,74,74,74,74,74,74,74,background pushable pushable_connection_left pushable_connection_up tableskin9:75,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_right rightskin5:76,57,58,1,1,1,1,1,1,76,57,58,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,59,1,1,1,1,1,1,1,1,59,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_right rightskin1:77,background pushable pushable_connection_down pushable_connection_up rightskin3:78,background pushable pushable_connection_down pushable_connection_up rightskin4:79,background pushable pushable_connection_down pushable_connection_left pushable_connection_up rightskin6:80,61,62,1,1,1,77,78,79,80,61,62,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_left rightskin2:81,1,1,1,1,1,1,1,1,81,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",1,"1627893792808.8965"] + "Oh No My Dog Is About To Swallow A Piece Of Chocolate", + ["title Oh No My Dog Is About To Swallow A Piece Of Chocolate\nauthor increpare\nhomepage www.increpare.com\n\nkey_repeat_interval 0.1\nagain_interval 0.1\n\nbackground_color #1e432e\ntext_color #e06f8b\n\nnoaction\n\n( debug )\n( verbose_logging )\n\n\n\n========\nOBJECTS\n========\n\nBackground\n#345e46\n\n\nPlayer\n#31a2f2\n\ndogskin1\n#a46422\n00000\n00000\n00000\n00000\n00000\n\ndogskin2\n#a46422 #945718\n00000\n00000\n00010\n00010\n00010\n\ndogskin3\n#a46422 #392a16 #e3e2a8\n00000\n01121\n01112\n01111\n01111\n\ndogskin4\n#a46422\n.....\n....0\n...00\n..000\n.0000\n\ndogskin5\n#945718 #a46422 #e06f8b\n00001\n11111\n11111\n11111\n11112\n\ndogskin6\n#a46422 #e06f8b #e3e2a8\n00000\n00000\n00000\n11111\n.2.2.\n\ndogskin7\n#a46422 #e06f8b #e3e2a8\n00000\n00000\n00000\n11111\n2.2.2\n\ndogskin8\n#a46422 #392a16 #e06f8b #e3e2a8\n00011\n00011\n00000\n22222\n.3.3.\n\ndogskin9\n#a46422 #e06f8b\n00001\n00001\n00001\n00001\n00001\n\ndogskin10\n#a46422 #945718\n..000\n..000\n00000\n00000\n10000\n\ndogskin11\n#a46422 #e06f8b\n00001\n00000\n00000\n00000\n00000\n\ndogskin12\n#a42544 #e3e2a8 #e06f8b #a46422\n01010\n22222\n33333\n33333\n33333\n\ndogskin13\n#e3e2a8 #a42544 #e06f8b #a46422\n01010\n22222\n33333\n33333\n33333\n\ndogskin14\n#a42544 #e3e2a8 #e06f8b #a46422\n01.1.\n22222\n33333\n33333\n3333.\n\ndogskin15\n#945718 #a46422\n01111\n00111\n00111\n00011\n10011\n\ndogskin16\n#a46422 #945718\n00000\n00000\n00000\n00111\n01111\n\ndogskin17\n#a46422 #945718\n00000\n00000\n00000\n11111\n11111\n\ndogskin18\n#a46422 #945718\n00000\n00000\n00000\n11110\n11111\n\ndogskin19\n#a46422\n00000\n00000\n00000\n00000\n0000.\n\ndogskin20\n#a46422\n00000\n00000\n0000.\n0000.\n0000.\n\ndogskin21\n#a46422\n0000.\n0000.\n0000.\n0000.\n0000.\n\ndogskin22\n#a46422\n0000.\n0000.\n0000.\n00000\n00000\n\ndogskin23\n#a46422\n0000.\n0000.\n0000.\n.0000\n..000\n\ndeaddogskin\n#392a16 #a46422\n01110\n10101\n11011\n10101\n01110\n\ndogclosedskin1\n#a46422 #945718\n00000\n00000\n00000\n00000\n11111\n\ndogclosedskin2\n#a46422 #392a16 #945718\n00011\n00011\n00000\n00000\n22222\n\ndogclosedskin3\n#e06f8b #a46422\n00000\n11111\n11111\n11111\n11111\n\ndogclosedskin4\n#e06f8b #a46422\n00000\n11111\n11111\n11111\n1111.\n\n\nplayerskin1\n#4d0400 #973530 #d3abab #130800\n00000\n10101\n11110\n22211\n23211\n\nplayerskin2\n#4d0400 #973530\n0000.\n00000\n10000\n01000\n10000\n\nplayerskin3 (x2)\n#973530\n00000\n00000\n00000\n00000\n00000\n\nplayerskin4\n#973530 #4d0400\n00111\n01011\n00101\n00011\n0000.\n\nplayerskin5\n#800700 #973530 #db5fa0 #b13978\n.0000\n.1111\n22221\n33331\n.1111\n\nplayerskin7\n#973530\n0000.\n0000.\n0000.\n0000.\n0000.\n\nplayerskin8 (x2)\n#4a9022\n00000\n00000\n00000\n00000\n00000\n\nplayerskin9\n#4a9022 #367413\n00001\n00001\n00001\n00001\n00001\n\n(then 8,9,8)\n\nplayerskin10\n#973530 #800700\n00000\n11000\n00000\n11000\n00000\n\nplayerskin11\n#367413 #4a9022\n00001\n11111\n11111\n11111\n11111\n\nplayerskin12\n#4a9022 #367413\n00001\n00010\n00100\n00100\n01000\n\nplayerskin13\n#367413 #4a9022\n00000\n11111\n11111\n11111\n11111\n\nplayerskin14\n#367413 #4a9022\n01111\n11111\n11111\n11111\n11111\n\nplayerskin15 (x3)\n#31a2f2\n00000\n00000\n00000\n00000\n00000\n\nplayerskin16\n#31a2f2 #167ec8\n00001\n00011\n00111\n01111\n11111\n\n(15)\n\nplayerskin17\n#167ec8\n00000\n00000\n00000\n00000\n00000\n\n(15,17)\n\nplayerskin18\n#a44951 #930e19 #d3a1a5\n01010\n01010\n00000\n11111\n22222\n\nplayerskin19\n#a44951 #930e19 #d3a1a5\n00000\n00000\n00000\n11111\n22222\n\nplayerskin20\n#90383f #800711 #ac767b\n00000\n00000\n11111\n22222\n.....\n\nchocolateskin\n#5d2816 #8c5340 #1f0c06\n01111\n20001\n20001\n20001\n22220\n\n\nDogHead \npink\n\nDogNeck \nred\n\nDogBottom \npurple\n\ndumbbellskin1\n#2a425b #1b2632 #26384b\n.0.0.\n12020\n12020\n12020\n12020\n\ndumbbellskin2\n#1b2632 #26384b\n01010\n01010\n01010\n01010\n01010\n\ndumbbellskin3\n#1b2632 #26384b\n01010\n01010\n01010\n00000\n.0.0.\n\n\ndumbbellskin4\n#8b8b8b #c8c8c8 #777777\n00000\n11111\n00000\n22222\n22222\n\nchairskin1\n#8b4b09 #bc7a36 #a46422\n01111\n02222\n02222\n02222\n00000\n\nchairskin2\n#bc7a36 #a46422 #8b4b09\n0000.\n11110\n11101\n11101\n21101\n\nchairskin3 (x2)\n#8b4b09 #a46422 #bc7a36\n01121\n01121\n01121\n01121\n01121\n\nchairskin4\n#8b4b09 #a46422 #bc7a36\n01121\n01111\n01111\n01111\n00000\n\nchairskin5\n#bc7a36 #a46422 #8b4b09\n00000\n11111\n11111\n11111\n22222\n\nchairskin6\n#bc7a36 #a46422 #8b4b09\n00000\n11110\n11110\n11110\n22221\n\nchairskin7\n#8b4b09 #a46422 #bc7a36\n.0110\n.0111\n.0112\n.0112\n.0112\n\nchairskin8\n#8b4b09 #a46422 #bc7a36\n.0112\n.0112\n.0112\n.0112\n.0000\n\nchairskin9\n#8b4b09 #a46422 #bc7a36\n0110.\n0111.\n0112.\n0112.\n0112.\n\nchairskin10\n#8b4b09 #a46422 #bc7a36\n0112.\n0112.\n0112.\n0112.\n0000.\n\ntableskin1\n#bc7a36 #8b4b09 #a46422\n.0000\n12222\n12222\n12222\n12222\n\ntableskin2\n#bc7a36 #a46422\n00000\n11111\n11111\n11111\n11111\n\ntableskin3\n#bc7a36 #a46422\n0000.\n11100\n11110\n11110\n11110\n\ntableskin4\n#8b4b09 #a46422\n01111\n01111\n01111\n01111\n01111\n\ntableskin5\n#a46422\n00000\n00000\n00000\n00000\n00000\n\ntableskin6\n#a46422 #bc7a36\n00001\n00001\n00001\n00001\n00001\n\ntableskin7\n#8b4b09 #a46422\n01111\n01111\n01111\n00111\n.0000\n\ntableskin8\n#a46422 #8b4b09\n00000\n00000\n00000\n00000\n11111\n\ntableskin9\n#a46422 #bc7a36 #8b4b09\n00001\n00001\n00001\n00001\n2222.\n\ntableskin10\n#8b4b09 #a46422 #bc7a36\n00000\n00001\n00111\n00121\n00121\n\ntableskin11\n#8b4b09 #a46422 #bc7a36\n00121\n00121\n00121\n00121\n00121\n\ntableskin12\n#8b4b09 #a46422 #bc7a36\n00121\n00121\n00121\n00121\n.012.\n\nrightskin1\n#bc7a36 #a46422 #8b4b09\n.0000\n11111\n12111\n12111\n12111\n\nrightskin2\n#bc7a36 #a46422 #8b4b09\n00000\n11110\n11110\n11110\n22211\n\n\nrightskin3\n#a46422 #8b4b09 #bc7a36\n01001\n01000\n01002\n01002\n01002\n\n\nrightskin4\n#a46422 #8b4b09 #bc7a36\n01002\n01002\n01002\n01002\n01002\n\n\n\nrightskin5\n#a46422 #bc7a36 #8b4b09\n01111\n20000\n20000\n20000\n22222\n\n\n\nrightskin6\n#a46422 #8b4b09 #bc7a36\n01002\n00002\n00002\n00002\n11111\n\n\n\n\n\n\n\nDogTongue \n#a42544\n.....\n.....\n.....\n.....\n0....\n\n\n\nboundary\n#846610\n\n\n\npushable \n#24c1ca #0d9ea6\n00000\n01110\n01110\n01110\n00000\n\npushable_connection_up\nyellow\n..0..\n.....\n.....\n.....\n.....\n\npushable_connection_down\nyellow\n.....\n.....\n.....\n.....\n..0..\n\npushable_connection_left\nyellow\n.....\n.....\n0....\n.....\n.....\n\npushable_connection_right\nyellow\n.....\n.....\n....0\n.....\n.....\n\nchocolate\npink\n0....\n.....\n.....\n.....\n.....\n\ndogstretch \n#0000ff\n.....\n.0...\n.....\n.....\n.....\n\ncantcontract\n#ff0000\n.....\n.....\n.....\n...0.\n.....\n\ncancontracttoken\ntransparent\n\n\n=======\nLEGEND\n=======\n\n\nobstacle = pushable or doghead or dogneck or dogbottom or boundary or player\npushable_connection = pushable_connection_up or pushable_connection_down or pushable_connection_left or pushable_connection_right\n\ndogblock = DogHead or DogNeck or DogBottom\ndogblock_noneck = DogHead or DogNeck or DogBottom\n\npushable_piece_nodog = pushable \npushing_piece_nodog = pushable or Player\n\npushable_piece = pushable or dogblock\npushing_piece = pushable or dogblock or Player\n\n\nq = DogHead\na = DogNeck\nz = DogBottom \nd = DogTongue\nw = boundary\n\n( 1 = pushable and chocolate )\n\n2 = pushable and pushable_connection_up\n3 = pushable and pushable_connection_down\n4 = pushable and pushable_connection_left\n5 = pushable and pushable_connection_right\n\n6 = pushable and pushable_connection_up and pushable_connection_down\n7 = pushable and pushable_connection_up and pushable_connection_left\n8 = pushable and pushable_connection_up and pushable_connection_right\n\n9 = pushable and pushable_connection_down and pushable_connection_left\n0 = pushable and pushable_connection_down and pushable_connection_right\n\n- = pushable and pushable_connection_left and pushable_connection_right\n\n\n+ = pushable and pushable_connection_up and pushable_connection_down and pushable_connection_left \n! = pushable and pushable_connection_up and pushable_connection_down and pushable_connection_right\n\" = pushable and pushable_connection_up and pushable_connection_left and pushable_connection_right\n£ = pushable and pushable_connection_down and pushable_connection_left and pushable_connection_right\n\n$ = pushable and pushable_connection_up and pushable_connection_down and pushable_connection_left and pushable_connection_right\n\n. = Background\nP = Player\n\nα = player and playerskin1\nβ = player and playerskin2\nγ = player and playerskin3\nδ = player and playerskin4\nε = player and playerskin5\nζ = player and playerskin7\nη = player and playerskin8\nθ = player and playerskin9\nι = player and playerskin10\nκ = player and playerskin11\nλ = player and playerskin12\nμ = player and playerskin13\nν = player and playerskin14\nξ = player and playerskin15\nο = player and playerskin16\nπ = player and playerskin17\nρ = player and playerskin18\nσ = player and playerskin19\nτ = player and playerskin20\n\nplayerskins = playerskin1 or playerskin2 or playerskin3 or playerskin4 or playerskin5 or playerskin7 or playerskin8 or playerskin9 or playerskin10 or playerskin11 or playerskin12 or playerskin13 or playerskin14 or playerskin15 or playerskin16 or playerskin17 or playerskin18 or playerskin19 or playerskin20\n\ndumbbellskins = dumbbellskin1 or dumbbellskin2 or dumbbellskin3 or dumbbellskin4\n\nchairskins = chairskin1 or chairskin2 or chairskin3 or chairskin4 or chairskin5 or chairskin6 or chairskin7 or chairskin8 or chairskin9 or chairskin10\n\ntableskins = tableskin1 or tableskin2 or tableskin3 or tableskin4 or tableskin5 or tableskin6 or tableskin7 or tableskin8 or tableskin9 or tableskin10 or tableskin11 or tableskin12\n\nrightskins = rightskin1 or rightskin2 or rightskin3 or rightskin4 or rightskin5 or rightskin6\n\ndogskins = dogskin1 or dogskin2 or dogskin3 or dogskin4 or dogskin5 or dogskin6 or dogskin7 or dogskin8 or dogskin9 or dogskin10 or dogskin11 or dogskin12 or dogskin13 or dogskin14 or dogskin15 or dogskin16 or dogskin17 or dogskin18 or dogskin19 or dogskin20 or dogskin21 or dogskin22 or dogskin23 or deaddogskin or dogclosedskin1 or dogclosedskin2 or dogclosedskin3 or dogclosedskin4\n\n\nskins = playerskins or dumbbellskins or chairskins or tableskins or rightskins or chocolateskin or dogskins\n\n\nυ = dumbbellskin1 and pushable and pushable_connection_down\nφ = dumbbellskin1 and pushable and pushable_connection_down\nχ = dumbbellskin2 and pushable and pushable_connection_up and pushable_connection_right and pushable_connection_down\nψ = dumbbellskin4 and pushable and pushable_connection_left and pushable_connection_right\nω = dumbbellskin4 and pushable and pushable_connection_left and pushable_connection_right\nА = dumbbellskin2 and pushable and pushable_connection_up and pushable_connection_left and pushable_connection_down\nБ = dumbbellskin3 and pushable and pushable_connection_up\nВ = dumbbellskin3 and pushable and pushable_connection_up\n\nГ = chairskin1 and pushable and pushable_connection_right\nД = chairskin2 and pushable and pushable_connection_left and pushable_connection_down\nЕ = chairskin3 and pushable and pushable_connection_up and pushable_connection_down\nЁ = chairskin4 and pushable and pushable_connection_up and pushable_connection_down and pushable_connection_right\nЖ = chairskin5 and pushable and pushable_connection_left and pushable_connection_right\nЗ = chairskin6 and pushable and pushable_connection_left and pushable_connection_down\nИ = chairskin7 and pushable and pushable_connection_up and pushable_connection_down\nЙ = chairskin9 and pushable and pushable_connection_up and pushable_connection_down\nК = chairskin8 and pushable and pushable_connection_up \nЛ = chairskin10 and pushable and pushable_connection_up \n\nЩ = rightskin1 and pushable and pushable_connection_down and pushable_connection_right\nЪ = rightskin2 and pushable and pushable_connection_left\nЫ = rightskin3 and pushable and pushable_connection_up and pushable_connection_down\nЬ = rightskin4 and pushable and pushable_connection_up and pushable_connection_down\nЭ = rightskin5 and pushable and pushable_connection_right and pushable_connection_down\nЮ = rightskin6 and pushable and pushable_connection_left and pushable_connection_down and pushable_connection_up\n(ТУФХЦЧ)\n\nМ = tableskin1 and pushable and pushable_connection_down and pushable_connection_right\nН = tableskin2 and pushable and pushable_connection_left and pushable_connection_down and pushable_connection_right\nО = tableskin3 and pushable and pushable_connection_down and pushable_connection_left\nП = tableskin4 and pushable and pushable_connection_down and pushable_connection_right and pushable_connection_up\nР = tableskin5 and pushable and pushable_connection_down and pushable_connection_right and pushable_connection_up and pushable_connection_left\nС = tableskin6 and pushable and pushable_connection_down and pushable_connection_left and pushable_connection_up\nТ = tableskin7 and pushable and pushable_connection_up and pushable_connection_right\nУ = tableskin8 and pushable and pushable_connection_up and pushable_connection_right and pushable_connection_left and pushable_connection_down\nФ = tableskin9 and pushable and pushable_connection_up and pushable_connection_left\nХ = tableskin10 and pushable and pushable_connection_down and pushable_connection_up\nЦ = tableskin11 and pushable and pushable_connection_down and pushable_connection_up\nЧ = tableskin12 and pushable and pushable_connection_up\nШ = tableskin8 and pushable and pushable_connection_up and pushable_connection_right and pushable_connection_left\n\nЯ = chocolateskin and DogBottom and chocolate\n\n\n丁 = DogHead and dogskin1\n上 = doghead and dogskin2\n下 = doghead and dogskin3\n不 = doghead and dogskin4\n且 = doghead and dogskin5\n世 = doghead and dogskin6\n丙 = doghead and dogskin7\n並 = doghead and dogskin8\n中 = DogNeck and dogskin1\n丸 = DogNeck and dogskin9\n\n主 = DogBottom and dogskin10\n乂 = DogBottom and dogskin1\n乃 = DogBottom and dogskin11\n之 = DogBottom and dogskin12\n乎 = DogBottom and dogskin13\n九 = DogBottom and dogskin14\n也 = DogBottom and dogskin15\n事 = DogBottom and dogskin16\n二 = DogBottom and dogskin17\n五 = DogBottom and dogskin18\n亡 = DogBottom and dogskin19\n交 = DogBottom and dogskin20\n亦 = DogBottom and dogskin21\n京 = DogBottom and dogskin22\n亭 = DogBottom and dogskin23\n\n(丁上下不且世丙並\n中丸\n主乂乃之乎九也事二五亡交亦京亭人)\n\n\n(\n仕仙令以仰任伊伏伐伯似位佐何作佳使來侈侍俊俗俠信修俯俶倫假傅傍催傳傷傾僚儀優兄充光克兒入內兩八公兵其具典再冠冥冬凋凌出分切刑列初別利刻則劍力功助劭勉勒動務勞勸勿化匡匪千升卑南即卿厥厭去及友叔取受叛口古可史右合吉吊同名君吹呂周命和咸哉唐唱問啟善嗣嘉嘗嘯器嚴囊四回因困國園圓圖土在地坐垂垢垣城執基堂堅場塞增墨墳壁士壹夏夕外夙多夜大天夫奄奉奏女好如妍妙妾始姑委姜姿威婦嫡子孔字存孝孟孤孰學宅宇守安宗官宙定宜宣宮宰宴家容宿寂密富寐寒寓寔察寡寥實寧審寫寵寶寸封射將尊尋對少尹尺居履屬岡岩岫岱岳嵇川州工左巧巨己巾市布帝師席帳帶帷常平年并幸幾床府庭庶康庸廉廊廟廣建弁弊引弗弟弦弱張形彩彼往徊律後得徘從御微德心必忘忠念思性恃恐恥恬恭息悅悚悲情惟惠惡想惶惻意愚愛感慈慎慕慮慶懷懸懼戎成我戚戶房所扇手才扶承投抗抽招拜拱持指振捕接推搖摩操據攝收攸改政故效敕敢散敦敬文斡斬斯新方於施既日旦昃昆明易星映是時晉晚晝晦景暉暑曜曠曦曰曲更書最會月有服朗朝木本李杜束杯東杳杷松枇林果枝染柰根桐桓條梧棠植楚業極楹榮槐樂樓機橫次欣欲歌歡止正此步武歲歷歸殆殊殷殿毀母每比毛民氣水永求池沉沙沛河治法泰洛洞洪流浮浴海涇涼淑淡深淵清渠渭游湯溪溫滅滿漆漠漢潔潛澄濟火為烝烹焉無煌煒照煩熟熱營燭爵父牆牒牧物特犢猶猷獨獲獸玄率玉王玩珍珠理琴瑟璇璣璧環甘甚生用田甲男畏畝畫異當疏疑疲登發白百的皆皇皋盈益盛盜盟盡盤目直相省真眠眺睦瞻矜矢知矩短矯石碑碣磨磻祀祗祜神祭祿禍福禪禮禹禽秉秋秦移稅稱稷稼稽稿積穡空立竟章竭端競竹笑笙筆等筍答策筵箋箱箴節篤簡籍精糟糠糧約紈納紙紛素紡索紫累終組結絜給絲絳綏經維綺綿緣縣縻績續纓罔罪羅羊羌美羔群義羽習翔翠翦翳老者而耳耽聆聖聚聞聲職聽肆肥育背能腸膳臣臨自致與興舉舊舍良色芥若英茂草荒荷莊莫莽菜華萬落葉蒙蓋薄薪藍藏藝蘭處虛虞號虢虧蚤行衡衣表被裳製西要覆見規親觀解觴言訓設詠詩詳誅誌誚語誠誡說誰調談論諸謂謙謝謹譏譽讀讓谷豈象豫貌貞貢貴貽資賊賓賞賢賤賴贊赤起超趙足跡路踐躍身躬車軍軻載輕輦輶轂轉辨辭辰辱農近退逍逐途通造連逸逼運過遐道達遙遠遣適遵邇邈邑邙郡都酒釋重野量金釣鈞銀銘鐘鑒長門閏閒闕阜阮阿陋陛陟陪陰陳陶陽階隨隱隸雁雅集雞離難雨雲霄霜露霸靈青靜非靡面鞠韓音頓頗領願顙顛顧顰飄飛食飫飯飽養餐餘饑首馨馳駒駕駭騰騾驅驚驢驤骸體高鬱魄魏魚鱗鳥鳳鳴鶤麗黃黍黎默黜鼓龍\n)\n=======\nSOUNDS\n=======\n\npushable move 72882707\ndogblock move 25942907\nstartgame 38015704\nendlevel 9541904\n\n\n================\nCOLLISIONLAYERS\n================\n\npushable_connection_up\npushable_connection_down\npushable_connection_left\npushable_connection_right\nchocolate\ndogstretch\ncantcontract\ncancontracttoken\n\nPlayer, DogHead, DogNeck,DogBottom\n\npushable\n\nBackground\nboundary\n\nDogTongue\n(skins layer)\n\n\nskins\n\n\n======\nRULES\n======\n\n[player]->again\n\n\n(replace chocolate with pushable if moving horizontally)\n[ horizontal player ] [ chocolate chocolateskin DogBottom ] -> [ horizontal player ] [ chocolate chocolateskin pushable ]\n\n(replace chocolate with pushable if no dogbody below)\n\ndown [ chocolate chocolateskin DogBottom | no dogskin12 no dogskin13 no dogskin14 ] -> [ chocolate chocolateskin pushable | ]\n\n(DOG HEAD CONTRACT)\n\n(only contracts when player's not moving, and they're not in touch shouldn't be necessary but just in case)\n[ > player ] [dogblock ] -> [ > player ] [ dogblock cantcontract ]\ndown [ DogHead | DogBottom ] [ dogblock ] -> [ DogHead | DogBottom ] [dogblock cantcontract]\ndown [DogHead | pushable no chocolate ] -> [ doghead cantcontract | pushable ]\n[ DogHead cantcontract ] [ DogHead no cantcontract ] -> [DogHead cantcontract ] [DogHead cantcontract ]\n\nup [ DogBottom | pushable no chocolate ] -> [ DogBottom cantcontract | pushable ]\n\n\n[ DogBottom cantcontract ] [ DogBottom no cantcontract ] -> [DogBottom cantcontract ] [DogBottom cantcontract ]\n[ DogHead no cantcontract ] [ DogHead cantcontract ] -> [ DogHead cantcontract ] [ DogHead cantcontract ]\n\n(parity problem when head + body try to clamp shut when thyey're 1 distance away from eachother - give the head right of way)\ndown [ doghead no cantcontract | no dogblock | DogBottom no cantcontract ] -> [ doghead | | DogBottom cantcontract ] \n\n(and you neeed to repropagate)\n[ DogBottom cantcontract ] [ DogBottom no cantcontract ] -> [DogBottom cantcontract ] [DogBottom cantcontract ]\n[ DogHead no cantcontract ] [ DogHead cantcontract ] -> [ DogHead cantcontract ] [ DogHead cantcontract ]\n\n\n[DogHead no cantcontract ] -> [down DogHead ]\n[DogBottom no cantcontract ] -> [up DogBottom ]\n\ndown [ down doghead | DogNeck ] -> [ down doghead | no dogskins ]\nup [ up DogBottom | DogNeck ] -> [ up DogBottom | no dogskins ]\n\nlate [ cantcontract ] -> [ ]\n\n(SETUP FOR CONNECTIONS)\n( right [ pushable | pushable ] -> [ pushable pushable_connection_right | pushable pushable_connection_left ] )\n( down [ pushable | pushable ] -> [ pushable pushable_connection_down | pushable pushable_connection_up ] )\n\n\n(propagate movements)\n\n(propagate movements first ignoring dog)\n\n[ > pushing_piece_nodog | pushable_piece_nodog ] -> [ > pushing_piece_nodog | > pushable_piece_nodog ]\n+ up [ moving pushable pushable_connection_up | pushable pushable_connection_down ] -> [ moving pushable moving pushable_connection_up | moving pushable moving pushable_connection_down ]\n+ down [ moving pushable pushable_connection_down | pushable pushable_connection_up ] -> [ moving pushable moving pushable_connection_down | moving pushable moving pushable_connection_up ]\n+ left [ moving pushable pushable_connection_left | pushable pushable_connection_right ] -> [ moving pushable moving pushable_connection_left | moving pushable moving pushable_connection_right ]\n+ right [ moving pushable pushable_connection_right | pushable pushable_connection_left ] -> [ moving pushable moving pushable_connection_right | moving pushable moving pushable_connection_left ]\n\nvertical [> pushing_piece_nodog | DogBottom ] [ > pushing_piece_nodog | DogHead ] -> [> pushing_piece_nodog | > DogBottom ] [ > pushing_piece_nodog | > DogHead ]\n[moving DogHead ] [stationary DogHead ] -> [moving DogHead ] [moving DogHead]\n[moving DogBottom ] [stationary DogBottom ] -> [moving DogBottom ] [moving DogBottom]\n( allow to push chocolate into mouth)\n\n( right [ DogNeck | no obstacle | chocolateskin chocolate DogBottom | < pushing_piece ] -> [ DogNeck | chocolateskin chocolate DogBottom | | < pushable ] )\n\n(DOG NECK STRETCH)\n\n(either top is held stationary and bottom is moved down)\n(stationary pushable vs stationary obstacle because level boundary geometry can't access inside of mouth/small of back)\ndown [ stationary DogHead | stationary pushable no chocolate ] [ > pushing_piece_nodog | DogBottom ] -> [ dogstretch DogHead | pushable] [ > pushing_piece_nodog | > DogBottom ]\n\n\n(or bottom is held stationary and top is movedup)\ndown [ stationary pushable no chocolate | stationary DogBottom ] [ DogHead | < pushing_piece_nodog ] -> [ stationary pushable | dogstretch DogBottom ] [ < DogHead | < pushing_piece_nodog ]\n\n\n[ DogHead dogstretch | DogHead no dogstretch ] -> [ DogHead dogstretch | DogHead dogstretch ]\n[ DogBottom dogstretch | DogBottom no dogstretch ] -> [ DogBottom dogstretch | DogBottom dogstretch ]\n\n(DOG NECK SQEEZE)\n\n\n\n(either top is held stationary and bottom is moved up)\ndown [ stationary obstacle | stationary DogHead ] [ DogBottom | < pushing_piece_nodog] -> [ obstacle | DogHead cancontracttoken] [ < DogBottom | < pushing_piece_nodog ]\n\n\n(or bottom is held stationary and top is moved down)\ndown [ stationary DogBottom | stationary obstacle ] [ > pushing_piece_nodog | DogHead] -> [ DogBottom cancontracttoken | obstacle ] [ > pushing_piece_nodog | DogHead ]\n\nrandom right [cancontracttoken] [DogNeck | DogNeck ] -> [] [ no skins|no skins]\n[cancontracttoken]->[]\n\n(DOG NECK COMPRESS)\n\n[ > pushing_piece | pushable_piece no dogstretch ] -> [ > pushing_piece | > pushable_piece ]\n+ up [ moving pushable pushable_connection_up | pushable pushable_connection_down ] -> [ moving pushable moving pushable_connection_up | moving pushable moving pushable_connection_down ]\n+ down [ moving pushable pushable_connection_down | pushable pushable_connection_up ] -> [ moving pushable moving pushable_connection_down | moving pushable moving pushable_connection_up ]\n+ left [ moving pushable pushable_connection_left | pushable pushable_connection_right ] -> [ moving pushable moving pushable_connection_left | moving pushable moving pushable_connection_right ]\n+ right [ moving pushable pushable_connection_right | pushable pushable_connection_left ] -> [ moving pushable moving pushable_connection_right | moving pushable moving pushable_connection_left ]\n+ [ moving dogblock no dogstretch | stationary dogblock no dogstretch ] -> [ moving dogblock | moving dogblock ]\n\n[ > pushing_piece | stationary obstacle ] -> cancel\n\nup [ moving dogbottom | DogTongue ] -> [ moving DogBottom | moving DogTongue ]\nright [ pushable chocolate chocolateskin | moving DogTongue ] -> [moving pushable moving chocolate moving chocolateskin | moving DogTongue ]\n\nright [ stationary pushable | < pushable < chocolate < chocolateskin ] -> [ pushable | pushable chocolate chocolateskin ]\n\n[ moving DogBottom chocolate chocolateskin ] -> [ moving DogBottom moving chocolate moving chocolateskin]\n[ moving pushable chocolate chocolateskin ] -> [ moving pushable moving chocolate moving chocolateskin]\n\n\n[ moving pushable_piece skins ] -> [ moving pushable_piece moving skins ]\n[ moving Player playerskins ] -> [ moving Player moving playerskins ]\n\n(LATE)\n\nlate down [ dogskin4 | no DogNeck no obstacle ] [ dogskin5 | no DogNeck no obstacle ] -> [ dogskin4 | DogNeck ] [dogskin5 | DogNeck ]\n\n\nlate vertical [ DogNeck | no DogHead no DogBottom ] -> [ DogNeck | DogNeck ]\nlate right [ dogneck no dogskins | dogneck no dogskins ] -> [ 中 | 丸 ]\n(replace chocolate pushable with dogbottom)\n\nlate [chocolate chocolateskin pushable] -> [chocolate chocolateskin DogBottom]\n\n\n(move to start for visualisation purposes)\nlate [ dogstretch ] -> [ ]\n\n\n==============\nWINCONDITIONS\n==============\nno DogNeck\nno deaddogskin\n\n=======\nLEVELS\n=======\n\nmessage NO DON'T YOU DARE SWALLOW THAT\n\n\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........υ..υ.υ..υ.......................................w\nw........χψψа.χψψа.......................................w\nw........б..б.б..б.......................................w\nw..................................гд..............щъ....w\nw...................................е....мнннно....ы.....w\nw........................αβ.........е....пррррс....ь.....w\nw.......................γγδ.........ёжз..пррррс..эжю.....w\nw........................εζ.........и.й..пррррс..и.й.....w\nw........................ηη.........к.л..пррррс..к.л.....w\nw.............丁上下........θη..............пррррс..........w\nw.............不且世丙並......θη..............пррррс..........w\nw.............中丸.яd.....ικλ..............пррррс..........w\nw.........主乂乂乂乂乃之乎九......μν........гд....пррррс....щъ....w\nw.........也事二五乂亡.........ξο.........е....пррррс....ы.....w\nw.........交...亦..........ξπ.........е....пррррс....ь.....w\nw.........京...亭..........ξπ.........ёжз..тушшуф..эжю.....w\nw........................ξπ.........и.й...х..х...и.й.....w\nw.......................ρστ.........к.л...ц..ц...к.л.....w\nw.........................................ц..ц...........w\nw.........................................ч..ч...........w\nw........................................................w\nw........................................................w\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n\nmessage YOU ARE SUCH A SHITEHAWK OF A DOG\n\n(\n\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nw..........................гд............................w\nw...........................е............................w\nw...........................е............................w\nw...........................ёжз..........................w\nw...........................и.й..........................w\nw...........................к.л..........................w\nw.............................щъ.........................w\nw.............................ы..........................w\nw.............................ь..........................w\nw...........................эжю..........................w\nw....υ..υ...................и.й..........................w\nw....χψψа...................к.л..........................w\nw....б..б................................................w\nw........................................................w\nw..............αβ........................................w\nw.............γγδ........................................w\nw..............εζ........................................w\nw..............ηη........................................w\nw..............θη........................мнннно..........w\nw..............θη........................пррррс..........w\nw.............ικλ........................пррррс..........w\nw..............μν........................пррррс..........w\nw..............ξο........................пррррс..........w\nw..............ξπ........................пррррс..........w\nw..............ξπ........................пррррс..........w\nw..............ξπ........................пррррс..........w\nw............яρστ..................гд....пррррс....щъ....w\nw........丁上下........................е....пррррс....ы.....w\nw........不且世丙並......................е....пррррс....ь.....w\nw........中丸υ..υ.....................ёжз..тушшуф..эжю.....w\nw........中丸χψψа.....................и.й...х..х...и.й.....w\nw........中丸б.dб.....................к.л...ц..ц...к.л.....w\nw....主乂乂乂乂乃之乎九............................ц..ц...........w\nw....也事二五乂亡...............................ч..ч...........w\nw....交...亦...............................................w\nw....京...亭...............................................w\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n\n\n\n\n\n(move left and dog has bad time)\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nw..........................гд............................w\nw...........................е............................w\nw...........................е............................w\nw...........................ёжз..........................w\nw...........................и.й..........................w\nw...........................к.л..........................w\nw.............................щъ.........................w\nw.............................ы..........................w\nw.............................ь..........................w\nw...........................эжю..........................w\nw....υ..υ...................и.й..........................w\nw....χψψа...................к.л..........................w\nw....б..б................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw............αβ..........................................w\nw...........γγδ..........................................w\nw............εζ..........................мнннно..........w\nw............ηη..........................пррррс..........w\nw............θη..........................пррррс..........w\nw............θη..........................пррррс..........w\nw...........ικλ..........................пррррс..........w\nw............μν..........................пррррс..........w\nw............ξο..........................пррррс..........w\nw............ξπ..........................пррррс..........w\nw...........яξπ....................гд....пррррс....щъ....w\nw......丁上下...ξπ.....................е....пррррс....ы.....w\nw......不且世丙並ρστ.....................е....пррррс....ь.....w\nw......中丸..υ..υ.....................ёжз..тушшуф..эжю.....w\nw......中丸..χψψа.....................и.й...х..х...и.й.....w\nw......中丸..б..б.....................к.л...ц..ц...к.л.....w\nw..主乂乂乂乂乃之乎九..............................ц..ц...........w\nw..也事二五乂亡.................................ч..ч...........w\nw..交...亦.................................................w\nw..京...亭.................................................w\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n\n\n\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nw......丁上下.................гд............................w\nw......不且世丙並................е............................w\nw......中丸υ.яυ...............е............................w\nw......中丸χψψа..αβ...........ёжз..........................w\nw......中丸б..б.γγδ...........и.й..........................w\nw......中丸......εζ...........к.л..........................w\nw......中丸......ηη........................................w\nw..υ..υ中丸......θη........................................w\nw..χψψа中丸....щъθη........................................w\nw..б..б中丸....ыικλ........................................w\nw..主乂乂乂乂乃之乎九.ь.μν........................................w\nw..也事二五乂亡..эжю.ξο........................................w\nw..交...亦...и.й.ξπ........................................w\nw..京...亭...к.л.ξπ........................................w\nw..............ξπ........................................w\nw.............ρστ........................................w\nw........................................................w\nw........................................................w\nw........................................мнннно..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw..................................гд....пррррс....щъ....w\nw...................................е....пррррс....ы.....w\nw...................................е....пррррс....ь.....w\nw...................................ёжз..тушшуф..эжю.....w\nw...................................и.й...х..х...и.й.....w\nw...................................к.л...ц..ц...к.л.....w\nw.........................................ц..ц...........w\nw.........................................ч..ч...........w\nw........................................................w\nw........................................................w\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n\n)\n", [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1], "background boundary: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,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background dumbbellskin1 pushable pushable_connection_down:2,background dumbbellskin2 pushable pushable_connection_down pushable_connection_right pushable_connection_up:3,background dumbbellskin3 pushable pushable_connection_up:4,background dogbottom dogskin10:5,background dogbottom dogskin15:6,background dogbottom dogskin20:7,background dogbottom dogskin22:8,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,background dumbbellskin4 pushable pushable_connection_left pushable_connection_right:9,1,background dogbottom dogskin1:10,background dogbottom dogskin16:11,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,1,10,background dogbottom dogskin17:12,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,background dumbbellskin2 pushable pushable_connection_down pushable_connection_left pushable_connection_up:13,4,10,background dogbottom dogskin18:14,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,background doghead dogskin1:15,background doghead dogskin4:16,background dogneck dogskin1:17,17,17,17,17,17,17,17,17,17,\n17,17,10,10,background dogbottom dogskin21:18,background dogbottom dogskin23:19,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,background doghead dogskin2:20,background doghead dogskin5:21,background dogneck dogskin9:22,22,22,22,22,22,22,22,22,22,22,22,background dogbottom dogskin11:23,background dogbottom dogskin19:24,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,background doghead dogskin3:25,background doghead dogskin6:26,1,1,1,1,1,1,1,1,1,1,1,1,background dogbottom dogskin12:27,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background doghead dogskin7:28,1,1,1,1,1,1,1,1,1,1,1,background chocolate chocolateskin dogbottom:29,\nbackground dogbottom dogskin13:30,1,1,1,1,1,1,1,1,0,0,1,1,1,1,background player playerskin3:31,1,1,1,1,background player playerskin10:32,1,1,1,1,background doghead dogskin8:33,background player playerskin18:34,1,1,1,1,1,1,1,1,1,1,background dogtongue:35,background dogbottom dogskin14:36,1,1,1,1,1,1,1,1,0,0,1,1,1,background player playerskin1:37,31,background player playerskin5:38,background player playerskin8:39,background player playerskin9:40,40,\nbackground player playerskin11:41,background player playerskin13:42,background player playerskin15:43,43,43,43,background player playerskin19:44,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,background player playerskin2:45,background player playerskin4:46,background player playerskin7:47,39,39,39,background player playerskin12:48,background player playerskin14:49,background player playerskin16:50,background player playerskin17:51,51,51,background player playerskin20:52,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,3,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,13,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,background chairskin1 pushable pushable_connection_right:53,1,1,1,1,1,1,1,1,53,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background chairskin2 pushable pushable_connection_down pushable_connection_left:54,background chairskin3 pushable pushable_connection_down pushable_connection_up:55,55,background chairskin4 pushable pushable_connection_down pushable_connection_right pushable_connection_up:56,background chairskin7 pushable pushable_connection_down pushable_connection_up:57,background chairskin8 pushable pushable_connection_up:58,\n1,1,1,54,55,55,56,57,58,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background chairskin5 pushable pushable_connection_left pushable_connection_right:59,1,1,1,1,1,1,1,1,59,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background chairskin6 pushable pushable_connection_down pushable_connection_left:60,background chairskin9 pushable pushable_connection_down pushable_connection_up:61,background chairskin10 pushable pushable_connection_up:62,1,1,1,1,1,1,60,61,62,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_right tableskin1:63,background pushable pushable_connection_down pushable_connection_right pushable_connection_up tableskin4:64,64,64,64,64,64,64,64,64,64,background pushable pushable_connection_right pushable_connection_up tableskin7:65,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_left pushable_connection_right tableskin2:66,background pushable pushable_connection_down pushable_connection_left pushable_connection_right pushable_connection_up tableskin5:67,67,67,67,67,67,67,67,\n67,67,background pushable pushable_connection_down pushable_connection_left pushable_connection_right pushable_connection_up tableskin8:68,background pushable pushable_connection_down pushable_connection_up tableskin10:69,background pushable pushable_connection_down pushable_connection_up tableskin11:70,70,background pushable pushable_connection_up tableskin12:71,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,66,67,67,67,67,67,67,67,67,67,67,background pushable pushable_connection_left pushable_connection_right pushable_connection_up tableskin8:72,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,66,67,67,67,67,67,67,67,67,67,67,72,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,66,67,67,67,67,67,67,67,67,67,67,\n68,69,70,70,71,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_left tableskin3:73,background pushable pushable_connection_down pushable_connection_left pushable_connection_up tableskin6:74,74,74,74,74,74,74,74,74,74,background pushable pushable_connection_left pushable_connection_up tableskin9:75,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_right rightskin5:76,57,58,1,1,1,1,1,1,76,57,58,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,59,1,1,1,1,1,1,1,1,59,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_right rightskin1:77,background pushable pushable_connection_down pushable_connection_up rightskin3:78,background pushable pushable_connection_down pushable_connection_up rightskin4:79,background pushable pushable_connection_down pushable_connection_left pushable_connection_up rightskin6:80,61,62,1,1,1,77,78,79,80,61,62,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_left rightskin2:81,1,1,1,1,1,1,1,1,81,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 1, "1627893792808.8965"] ], [ - "paint everything everywhere!", - ["title paint everything everywhere!\nauthor increpare + pancelor\nhomepage www.pancelor.com (increpare.com)\n\nbackground_color #db7f00\ntext_color #126a10\n\nagain_interval 0.05\nrun_rules_on_level_start\n( verbose_logging )\n\n========\nOBJECTS\n========\n\nBackground\n#ff00ff \ncanvas \n#F5ECE0 \n\nWall\n#51984f #ffb910\n00000\n01110\n01110\n01110\n00000\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate1Base\n#af101d\n00000\n0...0\n0...0\n0...0\n00000\n\nCrate1L0\n#af101d \n0....\n0.... \n0.... \n0.... \n0....\n\nCrate1R0\n#af101d \n....0\n....0\n....0\n....0\n....0\n\nCrate1U0\n#af101d \n00000\n.....\n.....\n.....\n.....\n\nCrate1D0\n#af101d \n.....\n.....\n.....\n.....\n00000\n\nCrate1Z0\n#af101d\n.....\n.....\n.....\n.....\n.....\n\nCrate2Base\n#7cecec \n00000\n0...0\n0...0\n0...0\n00000\n\nCrate2L0\n#7cecec \n0.... \n0.... \n0.... \n0.... \n0....\n\nCrate2R0\n#7cecec \n....0\n....0\n....0\n....0\n....0\n\n\nCrate2U0\n#7cecec \n00000\n.....\n.....\n.....\n.....\n\nCrate2D0\n#7cecec \n.....\n.....\n.....\n.....\n00000\n\nCrate2Z0\n#7cecec #F5ECE0\n.....\n.....\n.....\n.....\n.....\n\nPaint1\n#CC2936\n.....\n00000\n00000\n.....\n00000\n\nPaint2\n#2897B0\n....0\n....0\n.0000\n.00..\n000.0\n\nslideright\ntransparent\n\nslidedown\ntransparent\n\nslideleft\ntransparent\n\nslideup\ntransparent\n\nwinning\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background and canvas\n# = Wall\nP = Player\n1 = Crate1Base and canvas and paint1\n2 = Crate2Base and canvas and paint2\n\nCrate1=Crate1Base or Crate1L0 or Crate1R0 or Crate1U0 or Crate1D0 or Crate1Z0\nCrate2=Crate2Base or Crate2L0 or Crate2R0 or Crate2U0 or Crate2D0 or Crate2Z0\nCrateL=Crate1L0 or Crate2L0\nCrateR=Crate1R0 or Crate2R0\nCrateU=Crate1U0 or Crate2U0\nCrateD=Crate1D0 or Crate2D0\nCrateZ=Crate1Z0 or Crate2Z0\nCrate=Crate1 or Crate2\n\npaint=paint1 or paint2\nslidetag = slideleft or slideup or slideright or slidedown\nobs = wall or crate\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 30943107\n\n( sfx0 19998706 (paint1 ) )\n( sfx1 382306 (paint2 ) )\n\nsfx0 19045907\n( sfx0 129314260 )\n( sfx0 321260 )\n( sfx0 5212604 )\n( 1779703 )\n( 42076907 )\n( sfx1 56671706 )\nsfx1 99909509\n\nendlevel 74970903\n( endlevel 57283503 )\n( endlevel 34632303 )\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncanvas\npaint1\npaint2\nCrate1Base,Crate2Base\nPlayer\nWall, CrateZ\nCrateL\nCrateR\nCrateU\nCrateD\nslidetag\nwinning\n\n======\nRULES\n======\n\n(startup visuals)\n[Crate1Base] -> [Crate1L0 Crate1R0 Crate1U0 Crate1D0 Crate1Z0]\nleft [Crate1L0|Crate1R0]->[|]\nup [Crate1U0|Crate1D0]->[|]\n[Crate2Base] -> [Crate2L0 Crate2R0 Crate2U0 Crate2D0 Crate2Z0]\nleft [Crate2L0|Crate2R0]->[|]\nup [Crate2U0|Crate2D0]->[|]\n\n[player] -> [player wall winning]\n\n[> player slidetag]->[> player]\n\n[ up player ] -> [ player slideup ] again\n[ down player ] -> [ player slidedown ] again\n[ left player ] -> [ player slideleft ] again\n[ right player ] -> [ player slideright ] again\n\n[ slideup ] [ crate ] -> [ slideup ] [ up crate ] again\n[ slidedown ] [ crate ] -> [ slidedown ] [ down crate ] again\n[ slideleft ] [ crate ] -> [ slideleft ] [ left crate ] again\n[ slideright ] [ crate ] -> [ slideright ] [ right crate ] again\n\n[ > crate | stationary obs ] -> [ crate | stationary obs ]\n+ [ up crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ up crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n+ [ down crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ down crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n+ [ left crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ left crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n+ [ right crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ right crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n\n[> crate][winning] -> [> crate][]\n\nlate [ crate1 no paint1 ] -> [ crate1 paint1 ] sfx0\nlate [ crate2 no paint2 ] -> [ crate2 paint2 ] sfx1\n\n==============\nWINCONDITIONS\n==============\n\nall canvas on Paint1\nall canvas on Paint2\nsome winning\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 20\n(increpare:perfectly fine little level)\n(pancelor: these are both quite nice)\n######p\n#.....#\n#....##\n##.#.1#\n#..2..#\n#######\n\nmessage Level 2 of 20\n(increpare:also a perfectly fine little level)\n######p\n#.....#\n#.....#\n#..#..#\n#...###\n###1.2#\n#######\n\nmessage Level 3 of 20\n(increpare: level with rotational symmetry - this is somethign I repeat in some later levels - not sure if that means it's worth avoiding here)\n(pancelor: satisfying to fill all the corners. I went back and forth on whether to cut this level or not, but decided not to )\n###########p\n###.......##\n#.........##\n#......22..#\n#..11..22..#\n#..11......#\n##.........#\n##.......###\n############\n\nmessage Level 4 of 20\n(increpare: I kinda like this one)\n(pancelor: same! feels like a racetrack)\n###########p\n#11.#......#\n#11.#......#\n#......#.22#\n#......#.22#\n#...####...#\n#..........#\n#..........#\n############\n\nmessage Level 5 of 20\n(pancelor: i like it okay; i was a bit large IMO (made execution feel slow) -- I've compressed it a bit\n (increpare: kinda like this one?)\n #############p\n #11..........#\n #11..........#\n #....#.......#\n #....#.......#\n #..######....#\n #....####....#\n #....####....#\n #....####....#\n #....######..#\n #.......#....#\n #.......#....#\n #..........22#\n #..........22#\n ##############\n (pancelor: here's a variation that encourages some fun swirls:)\n p#############\n #11..........#\n #11..........#\n #.....#......#\n #.....#......#\n #.....###....#\n #..######....#\n #....####....#\n #....######..#\n #....###.....#\n #......#.....#\n #......#.....#\n #..........22#\n #..........22#\n ##############\n ) \n#############\n#22.........#\n#22.........#\n#....#......#\n#....#......#\n#..#####....#\n#....###....#\n#....#####..#\n#......#....#\n#......#....#\n#.........11#\n#.........11#\np############\n\nmessage Level 6 of 20\n(pancelor: really satisfying to play! lots of good swirling)\n(increpare: v. nice!)\np##############\n###11#####22###\n###....#....###\n###....#....###\n#....#####....#\n#....#####....#\n###.........###\n#####.....#####\n###############\n\n(\n(increpare: fine, maybe, but like other levels)\n(pancelor: I think this one introduces some new ideas in a nice small playground. you could probably figure them out in the next level too but I like that this one also exists)\n(pancelor: now that we have so many levels I think we should cut this)\n###########p\n#..........#\n#..........#\n#..........#\n#...111#...#\n#...1212...#\n#...1212...#\n#...#222...#\n#..........#\n#..........#\n#..........#\n############\n)\n\nmessage Level 7 of 20\n(pancelor: fun! based on your level (\"compressed it a bit\" above))\n(increpare: like it)\np########\n#......1#\n#.......#\n#..###..#\n#..###..#\n#..##...#\n#.......#\n#2.....##\n#########\n\nmessage Level 8 of 20\n(pancelor: not too hard)\n(increpare yeah fine!)\n#######p#\n##...####\n##....###\n##....2##\n##....2##\n##....2##\n##..#..##\n##.....##\n##1....##\n##11...##\n#########\n\nmessage Level 9 of 20\n(increpare: more involved version of the above. better?)\n(pancelor: I think both levels are good, but keep this one and cut the above one if you think we need to cut down on levels)\n#################p\n#................#\n#................#\n#................#\n#....1.111#......#\n#....1.121222....#\n#....111212.2....#\n#......#222.2....#\n#................#\n#................#\n#................#\n##################\n\n(\n(pancelor: ok? cut it for now b/c we have so many levels)\np########\n#......1#\n#.......#\n#..###..#\n#..###..#\n#..###..#\n#.......#\n#2..##..#\n#########\n)\n\n(\n(pancelor: ok? I like the feeling of stair-stepping)\n(increpare: easy + ok)\n#######p\n##....##\n#1....2#\n#11..22#\n#.1#.2.#\n#..#...#\n#......#\n#......#\n#......#\n#.....##\n##...###\n########\n)\n\nmessage Level 10 of 20\n(pancelor: a nice simple level that pretty clearly asks you to swap positions. I made this from one of your sketches:\n (bad because dead end)\n ######p\n ##....#\n #.....#\n #12...#\n #1##..#\n #######)\n \n (increpare:nice!)\np######\n#####.#\n##....#\n#.....#\n#....1#\n#.##21#\n#######\n\nmessage Level 11 of 20\n(increpare: decent level - has some satisfying block-pushing I think!)\n(pancelor: oh this is very cute -- one of my favorite levels! I like the way you need to them to help each other travel. I also like how it requires a lot of swapping -- swapping sides, swapping which piece goes left first. very nice)\n###########p\n###....#...#\n#..........#\n#.....#....#\n#111...#.22#\n############\n\nmessage Level 12 of 20\n(pancelor: based on a dead-end level you made; I liked the feeling of getting the triangles hooked together and then unhooking them.\n (increpare: solvabe but early+subtle dead end possible :[ )\n (pancelor: this one gave me a lot of trouble, until I read your comment about dead ends! then two more tries and I got it.)\n ##########p\n ##1.......#\n #11.......#\n #......#..#\n #.........#\n #.........#\n #.........#\n #.........#\n #..#......#\n #.......22#\n #.......2##\n ###########)\np#############\n##........####\n#..........1##\n#...#......11#\n#............#\n#............#\n#............#\n#22......#...#\n##2..........#\n####........##\n##############\n\nmessage Level 13 of 20\n(pancelor: an okay level, not particularly different but requires the brushes to support each other many times)\n(increpare:good)\n############p\n###111......#\n#...........#\n#...........#\n#...........#\n#......#....#\n#...#......2#\n##.........2#\n##.........2#\n##.........##\n#############\n\nmessage Level 14 of 20\n(pancelor: hard ish but maybe not too satisfying? the little 1x1 slot is hard to paint with the smaller brush -- probably will find it by brute force)\n(increpare: easy)\n############p#\n##1.....######\n#111111.....##\n#1...........#\n#............#\n#...#........#\n#..........2.#\n#..........22#\n#..........2##\n#....#.#######\n##############\n\n(\n(pancelor: an okay level, there's a cute reversal you have to do to paint the last square. not too hard)\n(increpare: ok!)\n###########\np#....#####\n##....22..#\n#....#211.#\n#....22...#\n#.........#\n#........##\n#........##\n###....####\n###########\n)\n\nmessage Level 15 of 20\n(increpare: a solid level! - strategic + no dead ends)\n(pancelor: really really nice! fun to swap them around.)\n#############p\n#######..#####\n#####......###\n###..........#\n#.....12.....#\n#...111222...#\n#...1....2...#\n#..........###\n###......#####\n#####..#######\n##############\n\nmessage Level 16 of 20\n(pancelor: an okay level, many fun little challenges to fill in the last corners of the board; none are too difficult)\n(increpare: way nicer than expected)\n##########p\n#.....1####\n#.....1111#\n#.......1.#\n#....#....#\n#.........#\n##........#\n#..#......#\n#.........#\n##...2....#\n####.2222##\n###########\n\nmessage Level 17 of 20\n(pancelor: maybe my favorite level?! a much harder variation of the my \"pretty clearly asks you to swap positions\" level. I think both levels can exist?)\n(pancelor: this one is hard because it goes through an easy-to-miss narrow chokepoint in state-space. the last couple moves are a bit tricky too)\n(increpare: nice!)\np########## \n##...###### \n#......#### \n#......#### \n##.....22## \n##.....22## \n####.....## \n####.....## \n##.......## \n##.....111# \n##.....111# \n###########\n\n(\n(pancelor: tricky, but sorta unfocused. probably feels brute-forcey)\n(increpare: pretty gruelling. maybe cut?)\n#############p\n#######....###\n###222......1#\n###......#..1#\n#...#........#\n#.....#......#\n###..........#\n######....####\n##############\n)\n\nmessage Level 18 of 20\n(pancelor: an okay level, about getting the two blocks to swap places)\n(increpare: I think this is hard but enjoyable?)\n###############p\n####.........22#\n##...........22#\n##.............#\n##............##\n###............#\n###............#\n#111...........#\n#111..........##\n#111........####\n################\n\nmessage Level 19 of 20\n(pancelor: a very thinky level; one of my favorite levels)\n(increpare pretty exhausting - i got it ish)\np###########\n#.........2#\n#.####...###\n#.#.####.###\n#.#......###\n#.###.##.###\n#.##......##\n#.....##..##\n#######1.###\n############\n\n(\n(pancelor: very hard but not in a satisfying way; the last corners are hard to hunt down. (the one square on the right side is kinda neat) idk I might cut this)\n###p################\n####################\n#########....#....##\n#########.........##\n###................#\n#............#.....#\n###................#\n##..............111#\n###...............1#\n#................11#\n###...............1#\n###222..........111#\n####################\n####################\n)\n\nmessage Level 20 of 20\n(increpare: I'm ok with this, but maybe too similar to the level I described as \"a solid level\" which I think is better)\n((pancelor: I like the concept :) but also: agreed on all points... idk I think it's a nice large+relaxing final level)\n#################p\n#######.....######\n#######.....######\n#####.......######\n#####.........####\n###...........####\n###.............##\n#...............##\n#................#\n#....111..222....#\n#.....1...2.2....#\n#.....1...222....#\n#.....1...2......#\n#....111..2......#\n#................#\n#................#\n##...............#\n##.............###\n####...........###\n####.........#####\n######.......#####\n######.....#######\n######.....#######\n##################\n\nmessage whoa! you painted everything! congratulations!\n\n\n\n(\n\n(increpare: has a dead end :[ )\n######p\n#....##\n#..222#\n#....##\n##...1#\n#######\n\n(pancelor: seems impossible? I assume it is, but if I write \"seems impossible\" on one of these and it turns out it's actually not then maybe we should include it)\n#############p\n######..######\n####......####\n####....2.####\n##......2...##\n##....22222.##\n#.......2....#\n#....11.2....#\n##...11.....##\n##..........##\n####......####\n####......####\n######..######\n##############\n\n(pancelor: seems impossible)\n###########p\n###......###\n###....2.###\n#......2...#\n#....22222.#\n#......2...#\n#...11.2...#\n#...11.....#\n#..........#\n###......###\n###......###\n############\n\n(pancelor: seems impossible)\n###############\n######...####p#\n####.......####\n####.......####\n##.......2...##\n##.......2...##\n#......22222..#\n#........2....#\n#.....11.2....#\n##....11.....##\n##...........##\n####.......####\n####.......####\n######...######\n###############\n\n(increpare: not as good as above level )\n(pancelor: fun! but yeah this is pretty similar to some earlier levels)\n##########p\n##.......##\n#.........#\n#..1...2..#\n#.111#222.#\n#..1...2..#\n#.........#\n##.......##\n########### \n\n(increpare: bad because dead end)\n(pancelor: cool level! unfortunate that there's a dead end)\n######p\n#..1.##\n##....#\n#.....#\n##22..#\n#######\n\n\n\n\n\n(increpare: )\n((pancelor: seems impossible ;) )\n###########p\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n###########p\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n######p\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n###########p\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n(increpare: )\n(pancelor: I like the level! and not just for the aesthetic haha. but it's similar to some other ones so I can see why you cut it)\n#################p\n#..............###\n#..............###\n#.....222........#\n#.....2.2.#......#\n#.....22222......#\n#......11111.....#\n#......#.1.1.....#\n#........111.....#\n###..............#\n###..............#\n##################\n\n(increpare: )\n(pancelor: seems impossible)\n##########p\n#11......##\n#1........#\n#.........#\n#.....#...#\n#.........#\n#.........#\n#...#.....#\n#.........#\n#........2#\n##......22#\n###########\n)\n\n\n\n\n\n(\n(pancelor: has a dead-end... in fact the reason I think it's cool is because of what you have to do to avoid the dead end! oh well)\np########\n#......1#\n#.......#\n#..###..#\n#..###..#\n#..###..#\n#.......#\n#2..#...#\n#########\n\n(pancelor: really tricky and feels different from most other levels, but probably just feels like brute force work to solve)\n(pancelor: I think this is beatable but I don't remember)\np#######################\n######22.....###########\n#####22.......##########\n####.2........##########\n###...........##########\n##...#........##########\n#........##...##########\n#........#...###########\n#.......#...############\n#......#...#############\n#.........##############\n#1.......###############\n#1......################\n########################\n########################\n########################\n########################\n\n(pancelor: no win)\n########p##\n###....####\n##.....####\n#.1....####\n#.1#22.####\n#.122..####\n#..2...####\n#......####\n#......####\n#.....#####\n#.##.######\n###########\n\n(pancelor: no win)\n###########p\n##...###.1##\n#.....#.111#\n#.....#..1.#\n##....#....#\n###........#\n##.........#\n#..........#\n#..........#\n#22........#\n#22........#\n##........##\n############\n\n(pancelor: no win)\n##############p\n#####.....#####\n####.......####\n##...........##\n#.............#\n#.............#\n#...........1.#\n#.22.......111#\n##22..###...1##\n###############\n\n(pancelor: fine? not terribly interesting)\np#######\n#..211.#\n#..#...#\n##....##\n##..#..#\n##.....#\n########\n\n(pancelor: REALLY SATSIFYING. but too simple...? todo: feed to MIS -- delete some walls?)\n###############\n##############p\n###############\n###############\n###..##########\n###..##########\n##1....2#######\n##1....2#######\n#####..########\n#####..########\n###############\n###############\n###############\n###############\n\n(pancelor: kinda cool? idk it's fine)\n############p#\n#222...1111###\n#.....#....###\n#..........###\n##......#....#\n##...........#\n##.........###\n##.........###\n##.........###\n##############\n (pancelor: it's essentially just this which isn't a new concept:\n p###########\n #222...1111#\n #.....#....#\n #..........#\n ####....####\n ############)\n\n(pancelor: unbeatable; can't get into the last corner. feed to MIS?)\n###########p##\n##.....2222###\n#............#\n#.......#....#\n#11........###\n####....######\n####....######\n###.....######\n#.......######\n##############\n\n(pancelor: not very unique; could cut this one. satisfying to play, I think. feels a bit like pacman)\n(pancelor: this turned into my 1x1 corridor maze level, so I cut this version)\np########\n#..2....#\n#..2....#\n#.#####.#\n#...#...#\n#.......#\n###....##\n#....#..#\n#.......#\n#.###...#\n#...1..##\n#...1..##\n#########\n\n(pancelor: not possible)\n###p################\n####################\n#................###\n#..................#\n#..................#\n#..........#.......#\n#..................#\n#..................#\n#.....#.......111..#\n#2..............1..#\n#222..........1.1..#\n#2............111###\n####################\n####################\n\n(pancelor: not possible)\n#############p\n#............#\n#............#\n#....222222..#\n#..2......2..#\n#..2......2..#\n#..2..##..2..#\n#..2...#..2..#\n#..2.#....2..#\n#..2.....12..#\n#..22222222..#\n#............#\n#............#\n##############\n\n(pancelor: not possible)\np###################\n####################\n####################\n#.........##########\n#.111111...#########\n#.1.............####\n#.1......11111...###\n#.1...#......1...###\n#.1..22#.....1...###\n#.1..2.##....1...###\n#.1.......##.1...###\n#.1......##..1...###\n#.11111......1...###\n#.....11111111...###\n#................###\n#####............###\n####################\n####################\n\n(pancelor: not possible)\n##########################p\n##.......................##\n##.......................##\n##.......................##\n##......2222222..........##\n##............2..........##\n##......11111.2...1......##\n##......1.2.1.2...1.......#\n#.......1.2...2...1.......#\n#.......1.22222...1.......#\n#.......1.........1.......#\n#.......11111111111.......#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n##.......................##\n###########################\n\n)\n\n",[1,0,3,0,1,2,3,2,1],"background player slideleft wall winning:0,background wall:1,1,1,1,1,1,1,1,1,1,\n1,1,1,background canvas:2,2,1,1,1,1,1,1,\n1,1,1,background canvas paint2:3,3,3,background canvas paint1 paint2:4,4,1,1,background canvas paint1:5,\nbackground canvas crate1l0 crate1u0 crate1z0 paint1:6,background canvas crate1d0 crate1l0 crate1z0 paint1:7,1,1,3,3,3,4,4,1,1,\n5,background canvas crate1u0 crate1z0 paint1:8,background canvas crate1d0 crate1z0 paint1:9,1,1,3,3,3,4,4,2,\nbackground canvas crate2l0 crate2u0 crate2z0 paint2:10,background canvas crate2d0 crate2l0 crate2z0 paint1 paint2:11,background canvas crate1r0 crate1u0 crate1z0 paint1:12,background canvas crate1d0 crate1r0 crate1z0 paint1:13,1,1,1,3,3,4,4,\n3,background canvas crate2r0 crate2u0 crate2z0 paint2:14,background canvas crate2d0 crate2r0 crate2z0 paint1 paint2:15,5,5,1,1,1,3,3,4,\n4,4,4,4,5,5,1,1,1,1,1,\n4,4,5,5,5,5,5,1,1,1,1,\n1,4,4,5,5,5,5,5,1,1,1,\n1,1,1,1,1,1,1,5,5,1,1,\n1,1,1,1,1,1,1,1,1,1,1,\n",33,"1627893815569.176"] + "paint everything everywhere!", + ["title paint everything everywhere!\nauthor increpare + pancelor\nhomepage www.pancelor.com (increpare.com)\n\nbackground_color #db7f00\ntext_color #126a10\n\nagain_interval 0.05\nrun_rules_on_level_start\n( verbose_logging )\n\n========\nOBJECTS\n========\n\nBackground\n#ff00ff \ncanvas \n#F5ECE0 \n\nWall\n#51984f #ffb910\n00000\n01110\n01110\n01110\n00000\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate1Base\n#af101d\n00000\n0...0\n0...0\n0...0\n00000\n\nCrate1L0\n#af101d \n0....\n0.... \n0.... \n0.... \n0....\n\nCrate1R0\n#af101d \n....0\n....0\n....0\n....0\n....0\n\nCrate1U0\n#af101d \n00000\n.....\n.....\n.....\n.....\n\nCrate1D0\n#af101d \n.....\n.....\n.....\n.....\n00000\n\nCrate1Z0\n#af101d\n.....\n.....\n.....\n.....\n.....\n\nCrate2Base\n#7cecec \n00000\n0...0\n0...0\n0...0\n00000\n\nCrate2L0\n#7cecec \n0.... \n0.... \n0.... \n0.... \n0....\n\nCrate2R0\n#7cecec \n....0\n....0\n....0\n....0\n....0\n\n\nCrate2U0\n#7cecec \n00000\n.....\n.....\n.....\n.....\n\nCrate2D0\n#7cecec \n.....\n.....\n.....\n.....\n00000\n\nCrate2Z0\n#7cecec #F5ECE0\n.....\n.....\n.....\n.....\n.....\n\nPaint1\n#CC2936\n.....\n00000\n00000\n.....\n00000\n\nPaint2\n#2897B0\n....0\n....0\n.0000\n.00..\n000.0\n\nslideright\ntransparent\n\nslidedown\ntransparent\n\nslideleft\ntransparent\n\nslideup\ntransparent\n\nwinning\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background and canvas\n# = Wall\nP = Player\n1 = Crate1Base and canvas and paint1\n2 = Crate2Base and canvas and paint2\n\nCrate1=Crate1Base or Crate1L0 or Crate1R0 or Crate1U0 or Crate1D0 or Crate1Z0\nCrate2=Crate2Base or Crate2L0 or Crate2R0 or Crate2U0 or Crate2D0 or Crate2Z0\nCrateL=Crate1L0 or Crate2L0\nCrateR=Crate1R0 or Crate2R0\nCrateU=Crate1U0 or Crate2U0\nCrateD=Crate1D0 or Crate2D0\nCrateZ=Crate1Z0 or Crate2Z0\nCrate=Crate1 or Crate2\n\npaint=paint1 or paint2\nslidetag = slideleft or slideup or slideright or slidedown\nobs = wall or crate\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 30943107\n\n( sfx0 19998706 (paint1 ) )\n( sfx1 382306 (paint2 ) )\n\nsfx0 19045907\n( sfx0 129314260 )\n( sfx0 321260 )\n( sfx0 5212604 )\n( 1779703 )\n( 42076907 )\n( sfx1 56671706 )\nsfx1 99909509\n\nendlevel 74970903\n( endlevel 57283503 )\n( endlevel 34632303 )\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncanvas\npaint1\npaint2\nCrate1Base,Crate2Base\nPlayer\nWall, CrateZ\nCrateL\nCrateR\nCrateU\nCrateD\nslidetag\nwinning\n\n======\nRULES\n======\n\n(startup visuals)\n[Crate1Base] -> [Crate1L0 Crate1R0 Crate1U0 Crate1D0 Crate1Z0]\nleft [Crate1L0|Crate1R0]->[|]\nup [Crate1U0|Crate1D0]->[|]\n[Crate2Base] -> [Crate2L0 Crate2R0 Crate2U0 Crate2D0 Crate2Z0]\nleft [Crate2L0|Crate2R0]->[|]\nup [Crate2U0|Crate2D0]->[|]\n\n[player] -> [player wall winning]\n\n[> player slidetag]->[> player]\n\n[ up player ] -> [ player slideup ] again\n[ down player ] -> [ player slidedown ] again\n[ left player ] -> [ player slideleft ] again\n[ right player ] -> [ player slideright ] again\n\n[ slideup ] [ crate ] -> [ slideup ] [ up crate ] again\n[ slidedown ] [ crate ] -> [ slidedown ] [ down crate ] again\n[ slideleft ] [ crate ] -> [ slideleft ] [ left crate ] again\n[ slideright ] [ crate ] -> [ slideright ] [ right crate ] again\n\n[ > crate | stationary obs ] -> [ crate | stationary obs ]\n+ [ up crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ up crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n+ [ down crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ down crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n+ [ left crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ left crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n+ [ right crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ right crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n\n[> crate][winning] -> [> crate][]\n\nlate [ crate1 no paint1 ] -> [ crate1 paint1 ] sfx0\nlate [ crate2 no paint2 ] -> [ crate2 paint2 ] sfx1\n\n==============\nWINCONDITIONS\n==============\n\nall canvas on Paint1\nall canvas on Paint2\nsome winning\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 20\n(increpare:perfectly fine little level)\n(pancelor: these are both quite nice)\n######p\n#.....#\n#....##\n##.#.1#\n#..2..#\n#######\n\nmessage Level 2 of 20\n(increpare:also a perfectly fine little level)\n######p\n#.....#\n#.....#\n#..#..#\n#...###\n###1.2#\n#######\n\nmessage Level 3 of 20\n(increpare: level with rotational symmetry - this is somethign I repeat in some later levels - not sure if that means it's worth avoiding here)\n(pancelor: satisfying to fill all the corners. I went back and forth on whether to cut this level or not, but decided not to )\n###########p\n###.......##\n#.........##\n#......22..#\n#..11..22..#\n#..11......#\n##.........#\n##.......###\n############\n\nmessage Level 4 of 20\n(increpare: I kinda like this one)\n(pancelor: same! feels like a racetrack)\n###########p\n#11.#......#\n#11.#......#\n#......#.22#\n#......#.22#\n#...####...#\n#..........#\n#..........#\n############\n\nmessage Level 5 of 20\n(pancelor: i like it okay; i was a bit large IMO (made execution feel slow) -- I've compressed it a bit\n (increpare: kinda like this one?)\n #############p\n #11..........#\n #11..........#\n #....#.......#\n #....#.......#\n #..######....#\n #....####....#\n #....####....#\n #....####....#\n #....######..#\n #.......#....#\n #.......#....#\n #..........22#\n #..........22#\n ##############\n (pancelor: here's a variation that encourages some fun swirls:)\n p#############\n #11..........#\n #11..........#\n #.....#......#\n #.....#......#\n #.....###....#\n #..######....#\n #....####....#\n #....######..#\n #....###.....#\n #......#.....#\n #......#.....#\n #..........22#\n #..........22#\n ##############\n ) \n#############\n#22.........#\n#22.........#\n#....#......#\n#....#......#\n#..#####....#\n#....###....#\n#....#####..#\n#......#....#\n#......#....#\n#.........11#\n#.........11#\np############\n\nmessage Level 6 of 20\n(pancelor: really satisfying to play! lots of good swirling)\n(increpare: v. nice!)\np##############\n###11#####22###\n###....#....###\n###....#....###\n#....#####....#\n#....#####....#\n###.........###\n#####.....#####\n###############\n\n(\n(increpare: fine, maybe, but like other levels)\n(pancelor: I think this one introduces some new ideas in a nice small playground. you could probably figure them out in the next level too but I like that this one also exists)\n(pancelor: now that we have so many levels I think we should cut this)\n###########p\n#..........#\n#..........#\n#..........#\n#...111#...#\n#...1212...#\n#...1212...#\n#...#222...#\n#..........#\n#..........#\n#..........#\n############\n)\n\nmessage Level 7 of 20\n(pancelor: fun! based on your level (\"compressed it a bit\" above))\n(increpare: like it)\np########\n#......1#\n#.......#\n#..###..#\n#..###..#\n#..##...#\n#.......#\n#2.....##\n#########\n\nmessage Level 8 of 20\n(pancelor: not too hard)\n(increpare yeah fine!)\n#######p#\n##...####\n##....###\n##....2##\n##....2##\n##....2##\n##..#..##\n##.....##\n##1....##\n##11...##\n#########\n\nmessage Level 9 of 20\n(increpare: more involved version of the above. better?)\n(pancelor: I think both levels are good, but keep this one and cut the above one if you think we need to cut down on levels)\n#################p\n#................#\n#................#\n#................#\n#....1.111#......#\n#....1.121222....#\n#....111212.2....#\n#......#222.2....#\n#................#\n#................#\n#................#\n##################\n\n(\n(pancelor: ok? cut it for now b/c we have so many levels)\np########\n#......1#\n#.......#\n#..###..#\n#..###..#\n#..###..#\n#.......#\n#2..##..#\n#########\n)\n\n(\n(pancelor: ok? I like the feeling of stair-stepping)\n(increpare: easy + ok)\n#######p\n##....##\n#1....2#\n#11..22#\n#.1#.2.#\n#..#...#\n#......#\n#......#\n#......#\n#.....##\n##...###\n########\n)\n\nmessage Level 10 of 20\n(pancelor: a nice simple level that pretty clearly asks you to swap positions. I made this from one of your sketches:\n (bad because dead end)\n ######p\n ##....#\n #.....#\n #12...#\n #1##..#\n #######)\n \n (increpare:nice!)\np######\n#####.#\n##....#\n#.....#\n#....1#\n#.##21#\n#######\n\nmessage Level 11 of 20\n(increpare: decent level - has some satisfying block-pushing I think!)\n(pancelor: oh this is very cute -- one of my favorite levels! I like the way you need to them to help each other travel. I also like how it requires a lot of swapping -- swapping sides, swapping which piece goes left first. very nice)\n###########p\n###....#...#\n#..........#\n#.....#....#\n#111...#.22#\n############\n\nmessage Level 12 of 20\n(pancelor: based on a dead-end level you made; I liked the feeling of getting the triangles hooked together and then unhooking them.\n (increpare: solvabe but early+subtle dead end possible :[ )\n (pancelor: this one gave me a lot of trouble, until I read your comment about dead ends! then two more tries and I got it.)\n ##########p\n ##1.......#\n #11.......#\n #......#..#\n #.........#\n #.........#\n #.........#\n #.........#\n #..#......#\n #.......22#\n #.......2##\n ###########)\np#############\n##........####\n#..........1##\n#...#......11#\n#............#\n#............#\n#............#\n#22......#...#\n##2..........#\n####........##\n##############\n\nmessage Level 13 of 20\n(pancelor: an okay level, not particularly different but requires the brushes to support each other many times)\n(increpare:good)\n############p\n###111......#\n#...........#\n#...........#\n#...........#\n#......#....#\n#...#......2#\n##.........2#\n##.........2#\n##.........##\n#############\n\nmessage Level 14 of 20\n(pancelor: hard ish but maybe not too satisfying? the little 1x1 slot is hard to paint with the smaller brush -- probably will find it by brute force)\n(increpare: easy)\n############p#\n##1.....######\n#111111.....##\n#1...........#\n#............#\n#...#........#\n#..........2.#\n#..........22#\n#..........2##\n#....#.#######\n##############\n\n(\n(pancelor: an okay level, there's a cute reversal you have to do to paint the last square. not too hard)\n(increpare: ok!)\n###########\np#....#####\n##....22..#\n#....#211.#\n#....22...#\n#.........#\n#........##\n#........##\n###....####\n###########\n)\n\nmessage Level 15 of 20\n(increpare: a solid level! - strategic + no dead ends)\n(pancelor: really really nice! fun to swap them around.)\n#############p\n#######..#####\n#####......###\n###..........#\n#.....12.....#\n#...111222...#\n#...1....2...#\n#..........###\n###......#####\n#####..#######\n##############\n\nmessage Level 16 of 20\n(pancelor: an okay level, many fun little challenges to fill in the last corners of the board; none are too difficult)\n(increpare: way nicer than expected)\n##########p\n#.....1####\n#.....1111#\n#.......1.#\n#....#....#\n#.........#\n##........#\n#..#......#\n#.........#\n##...2....#\n####.2222##\n###########\n\nmessage Level 17 of 20\n(pancelor: maybe my favorite level?! a much harder variation of the my \"pretty clearly asks you to swap positions\" level. I think both levels can exist?)\n(pancelor: this one is hard because it goes through an easy-to-miss narrow chokepoint in state-space. the last couple moves are a bit tricky too)\n(increpare: nice!)\np########## \n##...###### \n#......#### \n#......#### \n##.....22## \n##.....22## \n####.....## \n####.....## \n##.......## \n##.....111# \n##.....111# \n###########\n\n(\n(pancelor: tricky, but sorta unfocused. probably feels brute-forcey)\n(increpare: pretty gruelling. maybe cut?)\n#############p\n#######....###\n###222......1#\n###......#..1#\n#...#........#\n#.....#......#\n###..........#\n######....####\n##############\n)\n\nmessage Level 18 of 20\n(pancelor: an okay level, about getting the two blocks to swap places)\n(increpare: I think this is hard but enjoyable?)\n###############p\n####.........22#\n##...........22#\n##.............#\n##............##\n###............#\n###............#\n#111...........#\n#111..........##\n#111........####\n################\n\nmessage Level 19 of 20\n(pancelor: a very thinky level; one of my favorite levels)\n(increpare pretty exhausting - i got it ish)\np###########\n#.........2#\n#.####...###\n#.#.####.###\n#.#......###\n#.###.##.###\n#.##......##\n#.....##..##\n#######1.###\n############\n\n(\n(pancelor: very hard but not in a satisfying way; the last corners are hard to hunt down. (the one square on the right side is kinda neat) idk I might cut this)\n###p################\n####################\n#########....#....##\n#########.........##\n###................#\n#............#.....#\n###................#\n##..............111#\n###...............1#\n#................11#\n###...............1#\n###222..........111#\n####################\n####################\n)\n\nmessage Level 20 of 20\n(increpare: I'm ok with this, but maybe too similar to the level I described as \"a solid level\" which I think is better)\n((pancelor: I like the concept :) but also: agreed on all points... idk I think it's a nice large+relaxing final level)\n#################p\n#######.....######\n#######.....######\n#####.......######\n#####.........####\n###...........####\n###.............##\n#...............##\n#................#\n#....111..222....#\n#.....1...2.2....#\n#.....1...222....#\n#.....1...2......#\n#....111..2......#\n#................#\n#................#\n##...............#\n##.............###\n####...........###\n####.........#####\n######.......#####\n######.....#######\n######.....#######\n##################\n\nmessage whoa! you painted everything! congratulations!\n\n\n\n(\n\n(increpare: has a dead end :[ )\n######p\n#....##\n#..222#\n#....##\n##...1#\n#######\n\n(pancelor: seems impossible? I assume it is, but if I write \"seems impossible\" on one of these and it turns out it's actually not then maybe we should include it)\n#############p\n######..######\n####......####\n####....2.####\n##......2...##\n##....22222.##\n#.......2....#\n#....11.2....#\n##...11.....##\n##..........##\n####......####\n####......####\n######..######\n##############\n\n(pancelor: seems impossible)\n###########p\n###......###\n###....2.###\n#......2...#\n#....22222.#\n#......2...#\n#...11.2...#\n#...11.....#\n#..........#\n###......###\n###......###\n############\n\n(pancelor: seems impossible)\n###############\n######...####p#\n####.......####\n####.......####\n##.......2...##\n##.......2...##\n#......22222..#\n#........2....#\n#.....11.2....#\n##....11.....##\n##...........##\n####.......####\n####.......####\n######...######\n###############\n\n(increpare: not as good as above level )\n(pancelor: fun! but yeah this is pretty similar to some earlier levels)\n##########p\n##.......##\n#.........#\n#..1...2..#\n#.111#222.#\n#..1...2..#\n#.........#\n##.......##\n########### \n\n(increpare: bad because dead end)\n(pancelor: cool level! unfortunate that there's a dead end)\n######p\n#..1.##\n##....#\n#.....#\n##22..#\n#######\n\n\n\n\n\n(increpare: )\n((pancelor: seems impossible ;) )\n###########p\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n###########p\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n######p\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n###########p\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n(increpare: )\n(pancelor: I like the level! and not just for the aesthetic haha. but it's similar to some other ones so I can see why you cut it)\n#################p\n#..............###\n#..............###\n#.....222........#\n#.....2.2.#......#\n#.....22222......#\n#......11111.....#\n#......#.1.1.....#\n#........111.....#\n###..............#\n###..............#\n##################\n\n(increpare: )\n(pancelor: seems impossible)\n##########p\n#11......##\n#1........#\n#.........#\n#.....#...#\n#.........#\n#.........#\n#...#.....#\n#.........#\n#........2#\n##......22#\n###########\n)\n\n\n\n\n\n(\n(pancelor: has a dead-end... in fact the reason I think it's cool is because of what you have to do to avoid the dead end! oh well)\np########\n#......1#\n#.......#\n#..###..#\n#..###..#\n#..###..#\n#.......#\n#2..#...#\n#########\n\n(pancelor: really tricky and feels different from most other levels, but probably just feels like brute force work to solve)\n(pancelor: I think this is beatable but I don't remember)\np#######################\n######22.....###########\n#####22.......##########\n####.2........##########\n###...........##########\n##...#........##########\n#........##...##########\n#........#...###########\n#.......#...############\n#......#...#############\n#.........##############\n#1.......###############\n#1......################\n########################\n########################\n########################\n########################\n\n(pancelor: no win)\n########p##\n###....####\n##.....####\n#.1....####\n#.1#22.####\n#.122..####\n#..2...####\n#......####\n#......####\n#.....#####\n#.##.######\n###########\n\n(pancelor: no win)\n###########p\n##...###.1##\n#.....#.111#\n#.....#..1.#\n##....#....#\n###........#\n##.........#\n#..........#\n#..........#\n#22........#\n#22........#\n##........##\n############\n\n(pancelor: no win)\n##############p\n#####.....#####\n####.......####\n##...........##\n#.............#\n#.............#\n#...........1.#\n#.22.......111#\n##22..###...1##\n###############\n\n(pancelor: fine? not terribly interesting)\np#######\n#..211.#\n#..#...#\n##....##\n##..#..#\n##.....#\n########\n\n(pancelor: REALLY SATSIFYING. but too simple...? todo: feed to MIS -- delete some walls?)\n###############\n##############p\n###############\n###############\n###..##########\n###..##########\n##1....2#######\n##1....2#######\n#####..########\n#####..########\n###############\n###############\n###############\n###############\n\n(pancelor: kinda cool? idk it's fine)\n############p#\n#222...1111###\n#.....#....###\n#..........###\n##......#....#\n##...........#\n##.........###\n##.........###\n##.........###\n##############\n (pancelor: it's essentially just this which isn't a new concept:\n p###########\n #222...1111#\n #.....#....#\n #..........#\n ####....####\n ############)\n\n(pancelor: unbeatable; can't get into the last corner. feed to MIS?)\n###########p##\n##.....2222###\n#............#\n#.......#....#\n#11........###\n####....######\n####....######\n###.....######\n#.......######\n##############\n\n(pancelor: not very unique; could cut this one. satisfying to play, I think. feels a bit like pacman)\n(pancelor: this turned into my 1x1 corridor maze level, so I cut this version)\np########\n#..2....#\n#..2....#\n#.#####.#\n#...#...#\n#.......#\n###....##\n#....#..#\n#.......#\n#.###...#\n#...1..##\n#...1..##\n#########\n\n(pancelor: not possible)\n###p################\n####################\n#................###\n#..................#\n#..................#\n#..........#.......#\n#..................#\n#..................#\n#.....#.......111..#\n#2..............1..#\n#222..........1.1..#\n#2............111###\n####################\n####################\n\n(pancelor: not possible)\n#############p\n#............#\n#............#\n#....222222..#\n#..2......2..#\n#..2......2..#\n#..2..##..2..#\n#..2...#..2..#\n#..2.#....2..#\n#..2.....12..#\n#..22222222..#\n#............#\n#............#\n##############\n\n(pancelor: not possible)\np###################\n####################\n####################\n#.........##########\n#.111111...#########\n#.1.............####\n#.1......11111...###\n#.1...#......1...###\n#.1..22#.....1...###\n#.1..2.##....1...###\n#.1.......##.1...###\n#.1......##..1...###\n#.11111......1...###\n#.....11111111...###\n#................###\n#####............###\n####################\n####################\n\n(pancelor: not possible)\n##########################p\n##.......................##\n##.......................##\n##.......................##\n##......2222222..........##\n##............2..........##\n##......11111.2...1......##\n##......1.2.1.2...1.......#\n#.......1.2...2...1.......#\n#.......1.22222...1.......#\n#.......1.........1.......#\n#.......11111111111.......#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n##.......................##\n###########################\n\n)\n\n", [1, 0, 3, 0, 1, 2, 3, 2, 1], "background player slideleft wall winning:0,background wall:1,1,1,1,1,1,1,1,1,1,\n1,1,1,background canvas:2,2,1,1,1,1,1,1,\n1,1,1,background canvas paint2:3,3,3,background canvas paint1 paint2:4,4,1,1,background canvas paint1:5,\nbackground canvas crate1l0 crate1u0 crate1z0 paint1:6,background canvas crate1d0 crate1l0 crate1z0 paint1:7,1,1,3,3,3,4,4,1,1,\n5,background canvas crate1u0 crate1z0 paint1:8,background canvas crate1d0 crate1z0 paint1:9,1,1,3,3,3,4,4,2,\nbackground canvas crate2l0 crate2u0 crate2z0 paint2:10,background canvas crate2d0 crate2l0 crate2z0 paint1 paint2:11,background canvas crate1r0 crate1u0 crate1z0 paint1:12,background canvas crate1d0 crate1r0 crate1z0 paint1:13,1,1,1,3,3,4,4,\n3,background canvas crate2r0 crate2u0 crate2z0 paint2:14,background canvas crate2d0 crate2r0 crate2z0 paint1 paint2:15,5,5,1,1,1,3,3,4,\n4,4,4,4,5,5,1,1,1,1,1,\n4,4,5,5,5,5,5,1,1,1,1,\n1,4,4,5,5,5,5,5,1,1,1,\n1,1,1,1,1,1,1,5,5,1,1,\n1,1,1,1,1,1,1,1,1,1,1,\n", 33, "1627893815569.176"] ], [ - "Putting Bicycle Helmets on Young Children", - ["title Putting Bicycle Helmets on Young Children\nauthor increpare\nhomepage www.increpare.com\n\ncolor_palette 4\n\nverbose_logging\nagain_interval 0.1\n\nnoaction\n\nbackground_color #4a7aff\ntext_color Yellow\n========\nOBJECTS\n========\n\nBackground\nlightblue\n\nsilhouette\n#98cce3\n\nPlayer\nOrange Orange Orange Orange\n..000\n..110\n0.111\n.0333\n..000\n\nhair\nYellow \n\nfixedhair\nYellow lightred\n00000\n00000\n00000\n01010\n11111\n\nskin\nlightred\n\nboundary\n#062fa1\n\nhelmet\nblue\n\nhelmetbg\n#4a7aff\n\n\n\nstrapsource_l\nblack\n00000\n00000\n.000.\n.000.\n.000.\n\nstrapsource_r\nblack\n00000\n00000\n.000.\n.000.\n.000.\n\nstrap\nblack\n.....\n00000\n00000\n00000\n.....\n\n\nconnectedhairto_n\nwhite\n..0..\n.....\n.....\n.....\n.....\n\nconnectedhairto_s\nwhite\n.....\n.....\n.....\n.....\n..0..\n\nconnectedhairto_e\nwhite\n.....\n.....\n....0\n.....\n.....\n\nconnectedhairto_w\nwhite\n.....\n.....\n0....\n.....\n.....\n\nconnected\nred\n.....\n.....\n..0..\n.....\n.....\n\neye1\nwhite\n\neye2\nblue\n\nmouth \nred\n\n\n\nzipper_l\nblack orange\n00111\n00111\n10111\n01111\n00111\n\n\nzipper_r\nblack orange\n00111\n00111\n10111\n01111\n00111\n\n\nzipper_l_retract\nblack orange\n00111\n00111\n10111\n01111\n00111\n\n\nzipper_r_retract\nblack orange\n00111\n00111\n10111\n01111\n00111\n\n\nstrapstart\nblack\n00000\n00000\n00000\n.....\n.....\n\n=======\nLEGEND\n=======\n\n\nstrapsource = strapsource_l or strapsource_r\nconnectedtotoken = connectedhairto_n or connectedhairto_s or connectedhairto_e or connectedhairto_w\n\nconnectedhairto_horizontal = connectedhairto_e or connectedhairto_w\nconnectedhairto_vertical = connectedhairto_n or connectedhairto_s\n\npushing = player or hair or helmet or strapsource\npushable = hair or helmet or strapsource\nobstacle = hair or helmet or strapsource or boundary or skin\n\nhelmetpiece = helmet or strapsource\n\nzipper = zipper_l or zipper_r or zipper_l_retract or zipper_r_retract\n\n. = Background\n, = boundary\n# = skin \n; = hair\nf = fixedhair and hair\nP = Player\nh = helmet\nl = strapsource_l\nr = strapsource_r\n~ = silhouette\ne = eye1 and skin\ng = eye2 and skin\nm = mouth and skin\n% = helmetbg\n\n=======\nSOUNDS\n=======\n\nsfx0 74339307 (snap)\nsfx1 50788707 (unsnap)\nsfx2 3464107 (zip)\nsfx3 54163106 (unzip)\nsfx4 27135507 (flip)\nendlevel 99085705\n\n================\nCOLLISIONLAYERS\n================\nconnectedhairto_n\nconnectedhairto_s\nconnectedhairto_e\nconnectedhairto_w\nconnected\n\n\nBackground\nhelmetbg\nsilhouette\nstrapstart\nPlayer, hair, skin, boundary, strap, helmet,strapsource, zipper_l , zipper_r,zipper_l_retract ,zipper_r_retract\nfixedhair\neye1,eye2, mouth\n\n======\nRULES\n======\n\n [connectedtotoken]->[]\n [connected ] ->[]\n \n \nrandom left [ zipper_l_retract strapstart | ] -> [ no strap strapsource_l no strap | Player ] sfx1\nrandom left [ zipper_l_retract | strapstart | ] -> [ no strap | strapsource_l no strap | Player ] sfx1\nrandom left [ zipper_l_retract | strap ] -> [ | zipper_l_retract ] sfx3\n\nrandom right [ zipper_r_retract strapstart | ] -> [ no strap strapsource_r no strap | Player ] sfx1\nrandom right [ zipper_r_retract | strapstart | ] -> [ no strap | strapsource_r no strap | Player ] sfx1\nrandom right [ zipper_r_retract | strap ] -> [ | zipper_r_retract ] sfx3\n\nrandom right [ zipper_r | strapsource_r ] [skin no helmetbg ]-> [zipper_l_retract | strapsource_r] [skin no helmetbg ]\nrandom right [ zipper_r | strapsource_r | ] -> [ strap | strap strapstart | Player ] sfx0\nrandom right [ zipper_r | obstacle ] -> [zipper_l_retract | obstacle] sfx4\nrandom right [ zipper_r | no obstacle ] -> [ strap | zipper_r ] sfx2\n\nrandom left [ zipper_l | strapsource_l ] [skin no helmetbg ]-> [zipper_r_retract | strapsource_l] [skin no helmetbg ]\nrandom left [ zipper_l | strapsource_l | ] -> [ strap | strap strapstart | Player ] sfx0\nrandom left [ zipper_l | obstacle ] -> [zipper_r_retract |obstacle ] sfx4\nrandom left [ zipper_l | no obstacle ] -> [ strap | zipper_l ] sfx2\n\n[ > Player | strapsource_l ] -> [|strapstart zipper_r] \n[ > Player | strapsource_r ] -> [| strapstart zipper_l] \n\n(propagate movements)\n[ > pushing | pushable ] -> [ > pushing | > pushable ]\n+ [ moving helmetpiece ] [stationary helmetpiece ] -> [moving helmetpiece ] [ moving helmetpiece ]\n\n\n\n(backwards propagation)\n\n( [ obstacle | )\n\n[ > pushable | stationary obstacle ] -> cancel\n\n[ moving helmet] [ helmetbg] ->[ moving helmet ] [ moving helmetbg ]\n\nlate [ fixedhair | hair ] -> [ fixedhair | hair connected ]\nlate right [fixedhair | no hair ] -> [ fixedhair | connectedhairto_w ]\nlate left [fixedhair | no hair ] -> [ fixedhair | connectedhairto_e ]\nlate down [fixedhair | no hair ] -> [ fixedhair | connectedhairto_n ]\nlate up [fixedhair | no hair ] -> [ fixedhair | connectedhairto_s ]\n\n\nlate [ hair connected | hair ] -> [ hair connected | hair connected ]\n+ late right [hair connected | no hair ] -> [ hair connected | connectedhairto_w ]\n+ late left [hair connected | no hair ] -> [ hair connected | connectedhairto_e ]\n+ late down [hair connected | no hair ] -> [ hair connected | connectedhairto_n ]\n+ late up [hair connected | no hair ] -> [ hair connected | connectedhairto_s ]\n\n+ late horizontal [hair no connected | connectedhairto_vertical ] -> [ hair connected | connectedhairto_vertical]\n+ late vertical [hair no connected | connectedhairto_horizontal ] -> [ hair connected | connectedhairto_horizontal]\n\nlate [hair no connected ] -> cancel\nlate [ fixedhair no hair ] -> cancel\n\nlate [zipper]->again\n==============\nWINCONDITIONS\n==============\n\nall skin on helmetbg\nno strapsource\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 3: Cycling back from the barber's.\n\n,,,,,,,,,,,,,,,,,,,,,,,,\n,......................,\n,......................,\n,......hh%hhhh%hh......,\n,.....hhh%hhhh%hhh.....,\n,....hhh%%%%%%%%hhh....,\n,....hh%%%%%%%%%%hh....,\n,...hhh%%%%%%%%%%hhh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,....l............r....,\n,......................,\n,......................,\n,..............;.......,\n,.........;;;;;........,\n,........;fffff;.......,\n,........;ee#ee;.......,\n,.........eg#ge........,\n,.p.......#####........,\n,.........#mmm#........,\n,........~#####~.......,\n,.......~.~~~~~.~......,\n,.......~.~~~~~.~......,\n,,,,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Level 2 of 3: Cycling to the playground.\n\n,,,,,,,,,,,,,,,,,,,,,,,,\n,......................,\n,......................,\n,......hh%hhhh%hh......,\n,.....hhh%hhhh%hhh.....,\n,....hhh%%%%%%%%hhh....,\n,....hh%%%%%%%%%%hh....,\n,...hhh%%%%%%%%%%hhh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,....l............r....,\n,..........;;;;........,\n,.......;;;.;;;........,\n,.......;;;;;;;;;;.....,\n,.......;;;;;;;;;;.....,\n,......;;;fffff;;;.....,\n,.......;;ee#ee;;.;....,\n,........;eg#ge;.......,\n,.p.......#####........,\n,.........#mmm#........,\n,........~#####~.......,\n,.......~.~~~~~.~......,\n,.......~.~~~~~.~......,\n,,,,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Level 3 of 3: Time to cycle to the barber's again.\n\n,,,,,,,,,,,,,,,,,,,,,,,,\n,......................,\n,......................,\n,......hh%hhhh%hh......,\n,.....hhh%hhhh%hhh.....,\n,....hhh%%%%%%%%hhh....,\n,....hh%%%%%%%%%%hh....,\n,...hhh%%%%%%%%%%hhh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,....l............r....,\n,......;...;;;;;.......,\n,.......;.;;.;.........,\n,.......;.;;;;;.;.;....,\n,.....;;;;;;;;;;;;.....,\n,...;;;;;;fffff;;;;....,\n,..;.;..;;ee#ee;;..;...,\n,...;;;;;;eg#ge;.;;....,\n,.p..;.;..#####..;;....,\n,.....;.;.#mmm#.;;.;...,\n,.....;;.~#####~;.;....,\n,....;.;~.~~~~~.~.;....,\n,.......~.~~~~~.~......,\n,,,,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Congratulations: you have completed the cycle.\n\n",[0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,3,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,3,3,2,2,3,3,3,3,0,3,0,0,0,0,0,1,0,3,3,3,2,3,1,0,0,3,3,3],"background boundary: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,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\nbackground helmet:2,2,2,2,2,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n2,2,2,2,2,2,2,background strapsource_l:3,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,2,2,2,2,background helmetbg:4,4,4,4,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,2,2,2,4,4,4,4,4,4,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,2,2,4,4,4,4,4,4,4,1,1,background silhouette:5,5,0,0,1,1,1,1,1,\n1,1,1,1,1,1,4,4,4,4,background connectedhairto_e helmetbg:6,6,4,4,4,1,5,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,2,2,4,background connectedhairto_s helmetbg:7,background connected hair helmetbg:8,background connected fixedhair hair helmetbg:9,background connectedhairto_n eye1 helmetbg skin:10,background eye1 helmetbg skin:11,background helmetbg skin:12,background skin:13,13,5,5,0,0,1,\n1,1,1,1,1,1,1,1,1,1,2,2,4,background connectedhairto_e connectedhairto_s helmetbg player:14,8,9,10,background eye2 helmetbg skin:15,12,background mouth skin:16,13,5,5,0,\n0,1,1,1,1,1,1,1,1,1,1,1,2,2,7,8,8,9,background connectedhairto_n helmetbg skin:17,12,12,16,13,5,\n5,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,4,background connectedhairto_s connectedhairto_w helmetbg:18,8,9,10,15,12,16,\n13,5,5,0,0,1,1,1,1,1,1,1,1,1,1,1,4,4,4,background connectedhairto_e connectedhairto_s helmetbg:19,8,9,background connectedhairto_e connectedhairto_n eye1 helmetbg skin:20,11,\n12,13,13,5,5,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,7,8,8,8,\n8,background connectedhairto_n helmetbg:21,4,1,5,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,2,background connectedhairto_w helmetbg:22,\n22,22,22,4,4,1,1,5,5,0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,\n2,2,2,4,4,4,4,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,2,2,2,2,2,2,2,background strapsource_r:23,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,\n",1,"1627893829074.0923"] + "Putting Bicycle Helmets on Young Children", + ["title Putting Bicycle Helmets on Young Children\nauthor increpare\nhomepage www.increpare.com\n\ncolor_palette 4\n\nverbose_logging\nagain_interval 0.1\n\nnoaction\n\nbackground_color #4a7aff\ntext_color Yellow\n========\nOBJECTS\n========\n\nBackground\nlightblue\n\nsilhouette\n#98cce3\n\nPlayer\nOrange Orange Orange Orange\n..000\n..110\n0.111\n.0333\n..000\n\nhair\nYellow \n\nfixedhair\nYellow lightred\n00000\n00000\n00000\n01010\n11111\n\nskin\nlightred\n\nboundary\n#062fa1\n\nhelmet\nblue\n\nhelmetbg\n#4a7aff\n\n\n\nstrapsource_l\nblack\n00000\n00000\n.000.\n.000.\n.000.\n\nstrapsource_r\nblack\n00000\n00000\n.000.\n.000.\n.000.\n\nstrap\nblack\n.....\n00000\n00000\n00000\n.....\n\n\nconnectedhairto_n\nwhite\n..0..\n.....\n.....\n.....\n.....\n\nconnectedhairto_s\nwhite\n.....\n.....\n.....\n.....\n..0..\n\nconnectedhairto_e\nwhite\n.....\n.....\n....0\n.....\n.....\n\nconnectedhairto_w\nwhite\n.....\n.....\n0....\n.....\n.....\n\nconnected\nred\n.....\n.....\n..0..\n.....\n.....\n\neye1\nwhite\n\neye2\nblue\n\nmouth \nred\n\n\n\nzipper_l\nblack orange\n00111\n00111\n10111\n01111\n00111\n\n\nzipper_r\nblack orange\n00111\n00111\n10111\n01111\n00111\n\n\nzipper_l_retract\nblack orange\n00111\n00111\n10111\n01111\n00111\n\n\nzipper_r_retract\nblack orange\n00111\n00111\n10111\n01111\n00111\n\n\nstrapstart\nblack\n00000\n00000\n00000\n.....\n.....\n\n=======\nLEGEND\n=======\n\n\nstrapsource = strapsource_l or strapsource_r\nconnectedtotoken = connectedhairto_n or connectedhairto_s or connectedhairto_e or connectedhairto_w\n\nconnectedhairto_horizontal = connectedhairto_e or connectedhairto_w\nconnectedhairto_vertical = connectedhairto_n or connectedhairto_s\n\npushing = player or hair or helmet or strapsource\npushable = hair or helmet or strapsource\nobstacle = hair or helmet or strapsource or boundary or skin\n\nhelmetpiece = helmet or strapsource\n\nzipper = zipper_l or zipper_r or zipper_l_retract or zipper_r_retract\n\n. = Background\n, = boundary\n# = skin \n; = hair\nf = fixedhair and hair\nP = Player\nh = helmet\nl = strapsource_l\nr = strapsource_r\n~ = silhouette\ne = eye1 and skin\ng = eye2 and skin\nm = mouth and skin\n% = helmetbg\n\n=======\nSOUNDS\n=======\n\nsfx0 74339307 (snap)\nsfx1 50788707 (unsnap)\nsfx2 3464107 (zip)\nsfx3 54163106 (unzip)\nsfx4 27135507 (flip)\nendlevel 99085705\n\n================\nCOLLISIONLAYERS\n================\nconnectedhairto_n\nconnectedhairto_s\nconnectedhairto_e\nconnectedhairto_w\nconnected\n\n\nBackground\nhelmetbg\nsilhouette\nstrapstart\nPlayer, hair, skin, boundary, strap, helmet,strapsource, zipper_l , zipper_r,zipper_l_retract ,zipper_r_retract\nfixedhair\neye1,eye2, mouth\n\n======\nRULES\n======\n\n [connectedtotoken]->[]\n [connected ] ->[]\n \n \nrandom left [ zipper_l_retract strapstart | ] -> [ no strap strapsource_l no strap | Player ] sfx1\nrandom left [ zipper_l_retract | strapstart | ] -> [ no strap | strapsource_l no strap | Player ] sfx1\nrandom left [ zipper_l_retract | strap ] -> [ | zipper_l_retract ] sfx3\n\nrandom right [ zipper_r_retract strapstart | ] -> [ no strap strapsource_r no strap | Player ] sfx1\nrandom right [ zipper_r_retract | strapstart | ] -> [ no strap | strapsource_r no strap | Player ] sfx1\nrandom right [ zipper_r_retract | strap ] -> [ | zipper_r_retract ] sfx3\n\nrandom right [ zipper_r | strapsource_r ] [skin no helmetbg ]-> [zipper_l_retract | strapsource_r] [skin no helmetbg ]\nrandom right [ zipper_r | strapsource_r | ] -> [ strap | strap strapstart | Player ] sfx0\nrandom right [ zipper_r | obstacle ] -> [zipper_l_retract | obstacle] sfx4\nrandom right [ zipper_r | no obstacle ] -> [ strap | zipper_r ] sfx2\n\nrandom left [ zipper_l | strapsource_l ] [skin no helmetbg ]-> [zipper_r_retract | strapsource_l] [skin no helmetbg ]\nrandom left [ zipper_l | strapsource_l | ] -> [ strap | strap strapstart | Player ] sfx0\nrandom left [ zipper_l | obstacle ] -> [zipper_r_retract |obstacle ] sfx4\nrandom left [ zipper_l | no obstacle ] -> [ strap | zipper_l ] sfx2\n\n[ > Player | strapsource_l ] -> [|strapstart zipper_r] \n[ > Player | strapsource_r ] -> [| strapstart zipper_l] \n\n(propagate movements)\n[ > pushing | pushable ] -> [ > pushing | > pushable ]\n+ [ moving helmetpiece ] [stationary helmetpiece ] -> [moving helmetpiece ] [ moving helmetpiece ]\n\n\n\n(backwards propagation)\n\n( [ obstacle | )\n\n[ > pushable | stationary obstacle ] -> cancel\n\n[ moving helmet] [ helmetbg] ->[ moving helmet ] [ moving helmetbg ]\n\nlate [ fixedhair | hair ] -> [ fixedhair | hair connected ]\nlate right [fixedhair | no hair ] -> [ fixedhair | connectedhairto_w ]\nlate left [fixedhair | no hair ] -> [ fixedhair | connectedhairto_e ]\nlate down [fixedhair | no hair ] -> [ fixedhair | connectedhairto_n ]\nlate up [fixedhair | no hair ] -> [ fixedhair | connectedhairto_s ]\n\n\nlate [ hair connected | hair ] -> [ hair connected | hair connected ]\n+ late right [hair connected | no hair ] -> [ hair connected | connectedhairto_w ]\n+ late left [hair connected | no hair ] -> [ hair connected | connectedhairto_e ]\n+ late down [hair connected | no hair ] -> [ hair connected | connectedhairto_n ]\n+ late up [hair connected | no hair ] -> [ hair connected | connectedhairto_s ]\n\n+ late horizontal [hair no connected | connectedhairto_vertical ] -> [ hair connected | connectedhairto_vertical]\n+ late vertical [hair no connected | connectedhairto_horizontal ] -> [ hair connected | connectedhairto_horizontal]\n\nlate [hair no connected ] -> cancel\nlate [ fixedhair no hair ] -> cancel\n\nlate [zipper]->again\n==============\nWINCONDITIONS\n==============\n\nall skin on helmetbg\nno strapsource\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 3: Cycling back from the barber's.\n\n,,,,,,,,,,,,,,,,,,,,,,,,\n,......................,\n,......................,\n,......hh%hhhh%hh......,\n,.....hhh%hhhh%hhh.....,\n,....hhh%%%%%%%%hhh....,\n,....hh%%%%%%%%%%hh....,\n,...hhh%%%%%%%%%%hhh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,....l............r....,\n,......................,\n,......................,\n,..............;.......,\n,.........;;;;;........,\n,........;fffff;.......,\n,........;ee#ee;.......,\n,.........eg#ge........,\n,.p.......#####........,\n,.........#mmm#........,\n,........~#####~.......,\n,.......~.~~~~~.~......,\n,.......~.~~~~~.~......,\n,,,,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Level 2 of 3: Cycling to the playground.\n\n,,,,,,,,,,,,,,,,,,,,,,,,\n,......................,\n,......................,\n,......hh%hhhh%hh......,\n,.....hhh%hhhh%hhh.....,\n,....hhh%%%%%%%%hhh....,\n,....hh%%%%%%%%%%hh....,\n,...hhh%%%%%%%%%%hhh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,....l............r....,\n,..........;;;;........,\n,.......;;;.;;;........,\n,.......;;;;;;;;;;.....,\n,.......;;;;;;;;;;.....,\n,......;;;fffff;;;.....,\n,.......;;ee#ee;;.;....,\n,........;eg#ge;.......,\n,.p.......#####........,\n,.........#mmm#........,\n,........~#####~.......,\n,.......~.~~~~~.~......,\n,.......~.~~~~~.~......,\n,,,,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Level 3 of 3: Time to cycle to the barber's again.\n\n,,,,,,,,,,,,,,,,,,,,,,,,\n,......................,\n,......................,\n,......hh%hhhh%hh......,\n,.....hhh%hhhh%hhh.....,\n,....hhh%%%%%%%%hhh....,\n,....hh%%%%%%%%%%hh....,\n,...hhh%%%%%%%%%%hhh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,....l............r....,\n,......;...;;;;;.......,\n,.......;.;;.;.........,\n,.......;.;;;;;.;.;....,\n,.....;;;;;;;;;;;;.....,\n,...;;;;;;fffff;;;;....,\n,..;.;..;;ee#ee;;..;...,\n,...;;;;;;eg#ge;.;;....,\n,.p..;.;..#####..;;....,\n,.....;.;.#mmm#.;;.;...,\n,.....;;.~#####~;.;....,\n,....;.;~.~~~~~.~.;....,\n,.......~.~~~~~.~......,\n,,,,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Congratulations: you have completed the cycle.\n\n", [0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 3, 3, 3, 3, 0, 3, 0, 0, 0, 0, 0, 1, 0, 3, 3, 3, 2, 3, 1, 0, 0, 3, 3, 3], "background boundary: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,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\nbackground helmet:2,2,2,2,2,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n2,2,2,2,2,2,2,background strapsource_l:3,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,2,2,2,2,background helmetbg:4,4,4,4,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,2,2,2,4,4,4,4,4,4,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,2,2,4,4,4,4,4,4,4,1,1,background silhouette:5,5,0,0,1,1,1,1,1,\n1,1,1,1,1,1,4,4,4,4,background connectedhairto_e helmetbg:6,6,4,4,4,1,5,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,2,2,4,background connectedhairto_s helmetbg:7,background connected hair helmetbg:8,background connected fixedhair hair helmetbg:9,background connectedhairto_n eye1 helmetbg skin:10,background eye1 helmetbg skin:11,background helmetbg skin:12,background skin:13,13,5,5,0,0,1,\n1,1,1,1,1,1,1,1,1,1,2,2,4,background connectedhairto_e connectedhairto_s helmetbg player:14,8,9,10,background eye2 helmetbg skin:15,12,background mouth skin:16,13,5,5,0,\n0,1,1,1,1,1,1,1,1,1,1,1,2,2,7,8,8,9,background connectedhairto_n helmetbg skin:17,12,12,16,13,5,\n5,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,4,background connectedhairto_s connectedhairto_w helmetbg:18,8,9,10,15,12,16,\n13,5,5,0,0,1,1,1,1,1,1,1,1,1,1,1,4,4,4,background connectedhairto_e connectedhairto_s helmetbg:19,8,9,background connectedhairto_e connectedhairto_n eye1 helmetbg skin:20,11,\n12,13,13,5,5,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,7,8,8,8,\n8,background connectedhairto_n helmetbg:21,4,1,5,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,2,background connectedhairto_w helmetbg:22,\n22,22,22,4,4,1,1,5,5,0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,\n2,2,2,4,4,4,4,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,2,2,2,2,2,2,2,background strapsource_r:23,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,\n", 1, "1627893829074.0923"] ], [ - "No! Don't eat that!", - ["title No! Don't eat that!\nauthor increpare\nhomepage www.increpare.com\nbackground_color #879fcf\n\nagain_interval 0.1\n\ntext_color #45283c\n\ncolor_palette 2\n\nnoaction\n( verbose_logging )\n\ndebug\nverbose_logging\n========\nOBJECTS\n========\n\nBackground\nblue\n\nTarget\ntransparent\n.....\n.000.\n.0.0.\n.000.\n.....\n\nPlayer\ntransparent\n\nCrate1 \n#c45509\n\n\nCrate2 \n#409437 \n\nbody1\n#31491a\n\nbody2\n#eec39a\n\nmaneye\n#eec39a #ffffff brown pink\n00000\n11111\n11121\n01113\n00000\n\nmannostrils\n#eec39a darkbrown\n00000\n00000\n00000\n11100\n00000\n\nmanmouth\n#eec39a red\n00000\n00000\n00011\n11111\n11111\n\nwall1 !\n#4b692f\n\nwall2 \"\n#eec39a\n\nwall3 £\n#ffffff\n\nwall4 $\n#d77bba\n\nwall5 %\n#d77bba #ffffff blue\n00000\n01220\n11221\n01110\n00000\n\n\neyeclose\n#d77bba black\n00000\n00000\n11111\n00000\n00000\n\nwall6 ;\n#d77bba #000000\n00000\n00000\n00000\n00000\n01010\n\n\nwall7 &\n#ac3232\n\n\nlevelbg -\n#45283c\n\n\n\n\nslideright\nred\n..0..\n..0..\n.....\n.....\n.....\n\nslidedown\nyellow\n.....\n.....\n.....\n..0..\n..0..\n\nslideleft\nwhite\n.....\n.....\n00...\n.....\n.....\n\nslideup\n#0000ff\n.....\n.....\n...00\n.....\n.....\n\n\n\n\n\n=======\nLEGEND\n=======\n\nwall = wall1 or wall2 or wall3 or wall4 or wall5 or wall6 or wall7\n\n1 = crate1 and levelbg\n2 = crate2 and levelbg\ncrate = crate1 or crate2\nslidetag = slideleft or slideup or slideright or slidedown\n. = levelbg\n# = wall4\nP = Player and Background\n* = Crate1 and levelbg\n@ = Crate1 and Target and levelbg\nO = Target \nobs = wall or crate\n, = Background\n3 = body1\n4 = body2\n5 = body1 and wall1\n6 = mannostrils\n7 = maneye\n8 = manmouth\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx0 60551707 (item destroyed)\n\n================\nCOLLISIONLAYERS\n================\n\nslidetag\n\nBackground\nlevelbg\nTarget\nPlayer\nbody1, body2, maneye, mannostrils, manmouth\nWall, Crate\neyeclose\n\n======\nRULES\n======\n\n(FRAME 1 STUFF)\n\n[ moving player ] [ slidetag ] -> [ moving player ] [] \n\n[ moving player ] [ wall ] -> [ moving player ] [ moving wall ] again\n[ > wall | stationary crate ] -> [ > wall | > crate ]\n\n[ moving crate1 | stationary crate1 ] -> [ moving crate1 | moving crate1 ]\n+ [moving crate2 | stationary crate2 ] -> [ moving crate2 | moving crate2 ]\n+ [ > crate1 | stationary crate2 ] -> [ > crate1 | > crate2 ]\n+ [ > crate2 | stationary crate1 ] -> [ > crate2 | > crate1 ]\n\nup [ > obs | ] -> [ > obs | slideup ]\ndown [ > obs | ] -> [ > obs | slidedown ]\nleft [ > obs | ] -> [ > obs | slideleft ]\nright [ > obs | ] -> [ > obs | slideright ]\n\n(FRAME 2+ STUFF)\n[ stationary player ] [ wall slideup ] -> [ stationary player ] [ down wall ] again\n[ stationary player ] [ wall slidedown ] -> [ stationary player ] [ up wall ] again\n[ stationary player ] [ wall slideleft ] -> [ stationary player ] [ right wall ] again\n[ stationary player ] [ wall slideright ] -> [ stationary player ] [ left wall ] again\n\n\n(prepropagation here - could be that during frame 2, crates get yanked back into palce)\n\n[ stationary player ] [ > wall | stationary crate ] ->[ stationary player ] [ > wall | > crate no slidetag]\n+ [ stationary player ] [ moving crate1 | stationary crate1 ] -> [ stationary player ] [ moving crate1 no slidetag | moving crate1 no slidetag]\n+ [ stationary player ] [ moving crate2 | stationary crate2 ] -> [ stationary player ] [ moving crate2 no slidetag | moving crate2 no slidetag]\n+ [ > crate1 | stationary crate2 ] -> [ > crate1 | > crate2 no slidetag]\n+ [ > crate2 | stationary crate1 ] -> [ > crate2 | > crate1 no slidetag]\n\n\n[eyeclose]->[]\n[stationary player] [slidetag] [ > wall5| ] -> [stationary player] [slidetag] [ > wall5| eyeclose ]\n\n[ stationary player ] [ crate slideup ] -> [ stationary player ] [ up crate up slideup ] again\n[ stationary player ] [ crate slidedown ] -> [ stationary player ] [ down crate down slidedown ] again\n[ stationary player ] [ crate slideleft ] -> [ stationary player ] [ left crate left slideleft ] again\n[ stationary player ] [ crate slideright ] -> [ stationary player ] [ right crate right slideright ] again\n\n[ > crate | | < wall ] -> [ crate no slidetag | | < wall ]\n[ > wall | crate ] -> [ > wall | > crate ]\n\n[ > crate | no obs | < crate ] [ > wall ] -> [ > crate | | stationary crate ] [ > wall ]\n\n[ > crate1 | stationary obs ] -> [ stationary crate1 no slidetag | stationary obs ]\n+[ > crate2 | stationary obs ] -> [ stationary crate2 no slidetag | stationary obs ]\n+[ moving crate1 | stationary crate1 ] -> [ stationary crate1 no slidetag | stationary crate1 no slidetag]\n+[ moving crate2 | stationary crate2 ] -> [ stationary crate2 no slidetag | stationary crate2 no slidetag]\n\n[moving wall4] [levelbg] -> [ moving wall4] [ moving levelbg]\n\n [target > crate] -> [target] sfx0\n \n==============\nWINCONDITIONS\n==============\n\nno crate\n\n=======\nLEVELS\n=======\n\n(BUGS)\n\n\nmessage Level 1 of 8 : No! Don't eat two snails!\n\n\n(v. simple but cute maybe? but open to trial + error solutions. ok for first level?)\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,444474,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,,\n,4444446,,$$$$$$%;,,,o\n,444448,,,$-----$&&,,o\n,444444,,,$-------,,,o\n,,4444,,,,$-------,,,o\n,,3333,,,,$22--1--,,,o\n,333333,,,$----1$&&,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n\nmessage Level 2 of 8 : Don't eat two boomerangs!\n\n(ok! beautiful baby!)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,o$$$oo,,,,,,,,,,,o\n,444444,,,o$-$%ooo,,,,,,,,,o\n,444474,,,o$-1$$;,,,,,,,,,,o\n,4444444,,o$-11$&&,,,,,,,,,o\n,4444446,,o$$----,,,,,,,,,,o\n,444448,,,oo$$---,,,,,,,,,,o\n,444444,,,oo$----,,,,,,,,,,o\n,,4444,,,,o$$---&&,,,,,,,,,o\n,,3333,,,,o$---2$,,,,,,,,,,o\n,333333,,,o$--22$,,,,,,,,,,o\n,333333,,,,$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Level 3 of 8 : No! Don't eat the soap dispenser!\n(easy and funish)\n,,,,,,,,,,,,,,,,,,,,,,,,,,p,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$11---$;,,,,,,,,,o\n,444474,,,$-1---$,,,,,,,,,,o\n,4444444,,$22--$&&,,,,,,,,,o\n,4444446,,$22----,,,,,,,,,,o\n,444448,,,$--$---,,,,,,,,,,o\n,444444,,,$------,,,,,,,,,,o\n,,4444,,,,$-----&&,,,,,,,,,o\n,,3333,,,,$-----$,,,,,,,,,,o\n,333333,,,$-----$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Level 4 of 8 : No! Don't eat the unripe acorn!\n(cute)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,p,,\n,,4444,,,,,,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,,,,,,\n,444474,,,,,,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,%,,,,,\n,4444446,,$$$$$$$$$$$$;,,,o\n,444448,,,$----------$&,,,o\n,444444,,,$-----------,,,,o\n,,4444,,,,$-----------,,,,o\n,,3333,,,,$----21-----,,,,o\n,333333,,,$----11$$--$&,,,o\n,333333,,,$$$$$$$$$$$$,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,\n,333333,,,$$$$$,,,,,,,,,,,,\n,333333,,,$$$$$,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n\n\n\nmessage Level 5 of 8 : No! Don't eat the sock!\n(Easyish/okish)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,p,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$---$-$;,,,,,,,,,o\n,444474,,,$--2$-$,,,,,,,,,,o\n,4444444,,$--221&&,,,,,,,,,o\n,4444446,,$-$----,,,,,,,,,,o\n,444448,,,$------,,,,,,,,,,o\n,444444,,,$$--$--,,,,,,,,,,o\n,,4444,,,,,$$$--&&,,,,,,,,,o\n,,3333,,,,,$$$$-$,,,,,,,,,,o\n,333333,,,,$$,$$$,,,,,,,,,,o\n,333333,,,,$$,,,,,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n\n\nmessage Level 6 of 8 : No! Don't eat the caterpillar!\n\n(absolutely ok early-intermediate)\n,,,,,,,,,,,,,,,,,,,,,,,,,p,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$$$$$$%,,,,,o\n,444444,,,$------1$--$;,,,,o\n,444474,,,$-$----$---$,,,,,o\n,4444444,,$----$---$-&&,,,,o\n,4444446,,$-$---------,,,,,o\n,444448,,,$-$------$--,,,,,o\n,444444,,,$-------$22-,,,,,o\n,,4444,,,,$------$22-&&,,,,o\n,,3333,,,,$----------$,,,,,o\n,333333,,,$----------$,,,,,o\n,333333,,,$$$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\nmessage Level 7 of 8 : No! Don't eat the caterpillar!\n\n\n(intermediate/actually ok!)\n,,,,,,,,,,,,,,,,,,,,,,,,p,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$$$$$$%,,,,,o\n,444444,,,$--$--$----$;,,,,o\n,444447,,,$----2222--$,,,,,o\n,4444444,,$----------&&,,,,o\n,4444446,,$---$-------,,,,,o\n,444448,,,$--------$--,,,,,o\n,444444,,,$-----------,,,,,o\n,,4444,,,,$$$$--$----&&,,,,o\n,,3333,,,,,,$----$-1-$,,,,,o\n,333333,,,,,$------11$,,,,,o\n,333333,,,,,$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n\nmessage Level 8 of 8 : No! Don't eat the kitchen sink!\n(pretty decent intermediate)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,p,\n,,4444,,,,$$$$$$$$$%,,,,,,,o\n,444444,,,$----$---$$$;,,,,o\n,444474,,,$--------$-$,,,,,o\n,4444444,,$----$-----&&,,,,o\n,4444446,,$-----------,,,,,o\n,444448,,,$-$---22----,,,,,o\n,444444,,,$------2----,,,,,o\n,,4444,,,,$----111-$-&&,,,,o\n,,3333,,,,$$----1$-$-$,,,,,o\n,333333,,,,$---------$,,,,,o\n,333333,,,,$$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(following line courtesy of SFTRABBIT)\nmessage They are for me to eat! \n\n\n\n\n\n\n\n\n\n\n(\n\nmessage Level 2 of 10\nmessage No! Don't eat that!\n(actually ok)\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,,\n,4444444,,$$$$$$%;,,,o\n,444444,,,$-2---&&,,,o\n,444444,,,$-$----,,,,o\n,,4444,,,,$--$---,,,,o\n,,3333,,,,$---$--,,,,o\n,333333,,,$1----&&,,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,,\n,4444444,,$$$$$$%;,,,o\n,444444,,,$-----$&&,,o\n,444444,,,$--$---,,,,o\n,,4444,,,,$--2$--,,,,o\n,,3333,,,,$1-----,,,,o\n,333333,,,$$----$&&,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n(ok-ish)\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,p,,,,,,\n,,4444,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,,\n,4444444,,$$$$$$%;,,,o\n,444444,,,$-$--$$&&,,o\n,444444,,,$-$--1-,,,,o\n,,4444,,,,$222-1-,,,,o\n,,3333,,,,$------,,,,o\n,333333,,,$-----$&&,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n\n(Ah p.trivial actually)\n(ok)\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,,$$$$$%,,,,,\n,444444,,,$---22$;,,,,\n,444444,,,$----$$,,,,o\n,4444444,,$---11&&,,,o\n,4444444,,$-$--1,,,,,o\n,444444,,,$----1,,,,,o\n,444444,,,$-----,,,,,o\n,,4444,,,,$-----&&,,,o\n,,3333,,,,$-----$,,,,o\n,333333,,,$-----$,,,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n\n\n\n(not too easy but meh)\n(too easy)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,,,,,,,,,,,,,,,p,,\n,444444,,,,,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,%,,,,,\n,4444444,,$$$$$$$$$$$$;,,,,\n,444444,,,$---$2222--$&,,,o\n,444444,,,$-----------,,,,o\n,,4444,,,,$--$--$-----,,,,o\n,,3333,,,,$-----------,,,,o\n,333333,,,$--------11$&,,,o\n,333333,,,$$$$$$$$$$$$,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,\n,333333,,,$$$$$,,,,,,,,,,,,\n,333333,,,$$$$$,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n\n\n\n(same idea basically)\n( ,,,,,,,,,,,,,,,,,,,,,,,,,,,, )\n( ,,,,,,,,,,,,,,,,,,,,,,,p,,,, )\n( ,,4444,,,,$$$$$$%,,,,,,,,,,o )\n( ,444444,,,$....#$;,,,,,,,,,o )\n( ,444444,,,$1....$,,,,,,,,,,o )\n( ,4444444,,$1.#..&&,,,,,,,,,o )\n( ,4444444,,$##...-,,,,,,,,,,o )\n( ,444444,,,$.##2.-,,,,,,,,,,o )\n( ,444444,,,$.#222-,,,,,,,,,,o )\n( ,,4444,,,,$.....&&,,,,,,,,,o )\n( ,,3333,,,,$..#..$,,,,,,,,,,o )\n( ,333333,,,$#..#.$,,,,,,,,,,o )\n( ,333333,,,$$$$$$$,,,,,,,,,,o )\n( ,333333,,,,$$$,,,,,,,,,,,,,o )\n( ,333333,,,$$$$$,,,,,,,,,,,,o )\n( ,333333,,,$$$$$,,,,,,,,,,,,, )\n( ,333333,,$$$\"$$$,,,,,,,,,,,, )\n( ,333333,,$$\"$$$$,,,,,,,,,,,, )\n( ,333355!!!!\"\"\"\"$,,,,,,,,,,,, )\n( ,333355!!!!\"\"\"\"$,,,$,,,,,,,, )\n( ,333355!!!!\"\"\"\"£$$$$,,,,,,,, )\n( ,333333,,,£££££$$$$$,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n\n\n(too linear)\n( ,,,,,,,,,,,,,,,,,,,,,,,p,,,, )\n( ,,,,,,,,,,,,,,,,,,,,,,,,,,,, )\n( ,,4444,,,,$$$$$$%,,,,,,,,,,o )\n( ,444444,,,$#....$;,,,,,,,,,o )\n( ,444444,,,$.#...$,,,,,,,,,,o )\n( ,4444444,,$.#..2&&,,,,,,,,,o )\n( ,4444444,,$#..22-,,,,,,,,,,o )\n( ,444444,,,$###.1-,,,,,,,,,,o )\n( ,444444,,,$....#-,,,,,,,,,,o )\n( ,,4444,,,,$...#.&&,,,,,,,,,o )\n( ,,3333,,,,$.....$,,,,,,,,,,o )\n( ,333333,,,$.#...$,,,,,,,,,,o )\n( ,333333,,,$$$$$$$,,,,,,,,,,o )\n( ,333333,,,,$$$,,,,,,,,,,,,,o )\n( ,333333,,,$$$$$,,,,,,,,,,,,o )\n( ,333333,,,$$$$$,,,,,,,,,,,,, )\n( ,333333,,$$$\"$$$,,,,,,,,,,,, )\n( ,333333,,$$\"$$$$,,,,,,,,,,,, )\n( ,333355!!!!\"\"\"\"$,,,,,,,,,,,, )\n( ,333355!!!!\"\"\"\"$,,,$,,,,,,,, )\n( ,333355!!!!\"\"\"\"£$$$$,,,,,,,, )\n( ,333333,,,£££££$$$$$,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n\n\n(very easy)\n,,,,,,,,,,,,,,,,,,,,,,,p,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$.2.#.$;,,,,,,,,,o\n,444444,,,$...##$,,,,,,,,,,o\n,4444444,,$..#.#&&,,,,,,,,,o\n,4444444,,$..#..-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,444444,,,$11...-,,,,,,,,,,o\n,,4444,,,,$11...&&,,,,,,,,,o\n,,3333,,,,$#..##$,,,,,,,,,,o\n,333333,,,$...#.$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n(medium actually maybe slightly ok)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,$$$$%,,,,,,,,,,,,o\n,444444,,,$---$;,,,,,,,,,,,o\n,444444,,,$$--$,,,,,,,,,,,,o\n,4444444,,$----$&&,,,,,,,,,o\n,4444444,,$.#...-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,,4444,,,,$....2&&,,,,,,,,,o\n,,3333,,,,$#11.##,,,,,,,,,,o\n,333333,,,,##1.#,,,,,,,,,,,o\n,333333,,,,,$$$$,,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(super tricky somehow but also trivial)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,p,,,\n,,4444,,,,,,$$$$%,,,,,,,,,,o\n,444444,,,,,$--$$;,,,,,,,,,o\n,444444,,,,,$1-2$,,,,,,,,,,o\n,4444444,,,,$1-2&&,,,,,,,,,o\n,4444444,,,,$112-,,,,,,,,,,o\n,444444,,,,,$$$--,,,,,,,,,,o\n,444444,,,,,,$---,,,,,,,,,,o\n,,4444,,,,,,,$--&&,,,,,,,,,o\n,,3333,,,,,,,$--$,,,,,,,,,,o\n,333333,,,,,,$--$,,,,,,,,,,o\n,333333,,,,,$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(Easyish)\n,,,,,,,,,,,,,,,,,,,,,,,p,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,,,,,$$%,,,,,,,,,,o\n,444444,,,,,,,$-$;,,,,,,,,,o\n,444444,,,,,,$$-$,,,,,,,,,,o\n,4444444,,,,,$--&&,,,,,,,,,o\n,4444444,,,,,$---,,,,,,,,,,o\n,444444,,,,,,$$1-,,,,,,,,,,o\n,444444,,,,$$$11-,,,,,,,,,,o\n,,4444,,,,$$----&&,,,,,,,,,o\n,,3333,,,,$----2$,,,,,,,,,,o\n,333333,,,$-$-$2$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n\n\n\n\n\n\n\n\n(ok/intermediatetricky)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,p,,,,\n,,4444,,,,$$$$$$$$$$$%,,,,,o\n,444444,,,$-----$----$;,,,,o\n,444444,,,$--------1-$,,,,,o\n,4444444,,$--$---1112&&,,,,o\n,4444444,,$------$----,,,,,o\n,444444,,,$-----$$----,,,,,o\n,444444,,,$-------$---,,,,,o\n,,4444,,,,$-----$----&&,,,,o\n,,3333,,,,$$---------$,,,,,o\n,333333,,,,$$--------$,,,,,o\n,333333,,,,,$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n(easy / okish?)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,p\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$111..$;,,,,,,,,,o\n,444444,,,$.1...$,,,,,,,,,,o\n,4444444,,$.....&&,,,,,,,,,o\n,4444444,,$.....-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,,4444,,,,$#....&&,,,,,,,,,o\n,,3333,,,,$....2$,,,,,,,,,,o\n,333333,,,$...#2$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(easy but maybe ok?)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,p\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$...11$;,,,,,,,,,o\n,444444,,,$....1$,,,,,,,,,,o\n,4444444,,$.....&&,,,,,,,,,o\n,4444444,,$.....-,,,,,,,,,,o\n,444444,,,$...#.-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,,4444,,,,$.....&&,,,,,,,,,o\n,,3333,,,,$..2..$,,,,,,,,,,o\n,333333,,,$.#2..$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(wtf is going on? hard to find the point to break out of the loop - maybe later on in game?)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,p\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$-----$$$,,,,,,,,o\n,444444,,,$-----$$;,,,,,,,,o\n,4444444,,$-----&&,,,,,,,,,o\n,4444444,,$------,,,,,,,,,,o\n,444444,,,$--1---,,,,,,,,,,o\n,444444,,$$$111--,,,,,,,,,,o\n,,4444,,,$---1--&&,,,,,,,,,o\n,,3333,,$$$$----$,,,,,,,,,,o\n,333333,$------2$,,,,,,,,,,o\n,333333,$$$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n(NO NO NONO NO NO NO NO. I had a ridiculously bad time and the solution was pretty trivial AND boring I just didn't see it like an idiot)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,p\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$$$$$$%,,,,,o\n,444444,,,$.....2222.$;,,,,o\n,444444,,,$.......2..$,,,,,o\n,4444444,,$......#...&&,,,,o\n,4444444,,$..........-,,,,,o\n,444444,,,$..........-,,,,,o\n,444444,,,$#11.......-,,,,,o\n,,4444,,,,$111.......&&,,,,o\n,,3333,,,,$.......#..$,,,,,o\n,333333,,,$..........$,,,,,o\n,333333,,,$$$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n)\n\n",[2,0,1,3,0,2,1,"restart",0,2,1,2,0,1,3,2,1],"background: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,background body2:1,1,1,1,1,1,0,0,background body1:2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,\n1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,\n1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,1,\n1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,1,background maneye:3,\n1,1,1,1,1,2,2,2,2,2,2,2,2,background body1 wall1:4,4,4,2,2,2,2,2,0,0,0,1,1,1,\n1,background manmouth:5,1,0,0,2,2,2,2,2,2,2,4,4,4,2,2,2,2,2,0,0,0,0,0,1,background mannostrils:6,\n0,0,0,0,0,0,0,0,0,0,0,background wall1:7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,background wall4:8,8,7,7,7,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,\n8,8,8,0,8,8,8,8,7,7,7,background wall3:9,0,0,0,0,0,0,0,0,0,0,8,background levelbg:10,10,10,background crate2 levelbg:11,\n10,8,8,8,8,8,background wall2:12,12,12,12,9,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,\n8,8,8,8,12,8,12,12,12,9,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,8,\n8,8,8,8,8,12,12,12,9,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,8,0,\n8,8,8,8,12,12,12,9,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,8,0,0,\n0,8,8,8,8,9,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,8,0,0,0,\n0,0,0,0,8,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,8,8,0,0,0,0,\n0,0,0,8,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,8,8,0,0,0,0,0,\n0,0,8,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,background crate1 levelbg:13,8,0,0,0,0,0,0,\n8,8,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,13,13,8,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,background wall5:14,8,8,10,10,10,8,8,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,background player:15,0,0,0,background wall6:16,background wall7:17,0,0,0,17,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,\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,\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,\n0,0,0,0,0,0,0,background target:18,18,18,18,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",7,"1627893851172.3552"] + "No! Don't eat that!", + ["title No! Don't eat that!\nauthor increpare\nhomepage www.increpare.com\nbackground_color #879fcf\n\nagain_interval 0.1\n\ntext_color #45283c\n\ncolor_palette 2\n\nnoaction\n( verbose_logging )\n\ndebug\nverbose_logging\n========\nOBJECTS\n========\n\nBackground\nblue\n\nTarget\ntransparent\n.....\n.000.\n.0.0.\n.000.\n.....\n\nPlayer\ntransparent\n\nCrate1 \n#c45509\n\n\nCrate2 \n#409437 \n\nbody1\n#31491a\n\nbody2\n#eec39a\n\nmaneye\n#eec39a #ffffff brown pink\n00000\n11111\n11121\n01113\n00000\n\nmannostrils\n#eec39a darkbrown\n00000\n00000\n00000\n11100\n00000\n\nmanmouth\n#eec39a red\n00000\n00000\n00011\n11111\n11111\n\nwall1 !\n#4b692f\n\nwall2 \"\n#eec39a\n\nwall3 £\n#ffffff\n\nwall4 $\n#d77bba\n\nwall5 %\n#d77bba #ffffff blue\n00000\n01220\n11221\n01110\n00000\n\n\neyeclose\n#d77bba black\n00000\n00000\n11111\n00000\n00000\n\nwall6 ;\n#d77bba #000000\n00000\n00000\n00000\n00000\n01010\n\n\nwall7 &\n#ac3232\n\n\nlevelbg -\n#45283c\n\n\n\n\nslideright\nred\n..0..\n..0..\n.....\n.....\n.....\n\nslidedown\nyellow\n.....\n.....\n.....\n..0..\n..0..\n\nslideleft\nwhite\n.....\n.....\n00...\n.....\n.....\n\nslideup\n#0000ff\n.....\n.....\n...00\n.....\n.....\n\n\n\n\n\n=======\nLEGEND\n=======\n\nwall = wall1 or wall2 or wall3 or wall4 or wall5 or wall6 or wall7\n\n1 = crate1 and levelbg\n2 = crate2 and levelbg\ncrate = crate1 or crate2\nslidetag = slideleft or slideup or slideright or slidedown\n. = levelbg\n# = wall4\nP = Player and Background\n* = Crate1 and levelbg\n@ = Crate1 and Target and levelbg\nO = Target \nobs = wall or crate\n, = Background\n3 = body1\n4 = body2\n5 = body1 and wall1\n6 = mannostrils\n7 = maneye\n8 = manmouth\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx0 60551707 (item destroyed)\n\n================\nCOLLISIONLAYERS\n================\n\nslidetag\n\nBackground\nlevelbg\nTarget\nPlayer\nbody1, body2, maneye, mannostrils, manmouth\nWall, Crate\neyeclose\n\n======\nRULES\n======\n\n(FRAME 1 STUFF)\n\n[ moving player ] [ slidetag ] -> [ moving player ] [] \n\n[ moving player ] [ wall ] -> [ moving player ] [ moving wall ] again\n[ > wall | stationary crate ] -> [ > wall | > crate ]\n\n[ moving crate1 | stationary crate1 ] -> [ moving crate1 | moving crate1 ]\n+ [moving crate2 | stationary crate2 ] -> [ moving crate2 | moving crate2 ]\n+ [ > crate1 | stationary crate2 ] -> [ > crate1 | > crate2 ]\n+ [ > crate2 | stationary crate1 ] -> [ > crate2 | > crate1 ]\n\nup [ > obs | ] -> [ > obs | slideup ]\ndown [ > obs | ] -> [ > obs | slidedown ]\nleft [ > obs | ] -> [ > obs | slideleft ]\nright [ > obs | ] -> [ > obs | slideright ]\n\n(FRAME 2+ STUFF)\n[ stationary player ] [ wall slideup ] -> [ stationary player ] [ down wall ] again\n[ stationary player ] [ wall slidedown ] -> [ stationary player ] [ up wall ] again\n[ stationary player ] [ wall slideleft ] -> [ stationary player ] [ right wall ] again\n[ stationary player ] [ wall slideright ] -> [ stationary player ] [ left wall ] again\n\n\n(prepropagation here - could be that during frame 2, crates get yanked back into palce)\n\n[ stationary player ] [ > wall | stationary crate ] ->[ stationary player ] [ > wall | > crate no slidetag]\n+ [ stationary player ] [ moving crate1 | stationary crate1 ] -> [ stationary player ] [ moving crate1 no slidetag | moving crate1 no slidetag]\n+ [ stationary player ] [ moving crate2 | stationary crate2 ] -> [ stationary player ] [ moving crate2 no slidetag | moving crate2 no slidetag]\n+ [ > crate1 | stationary crate2 ] -> [ > crate1 | > crate2 no slidetag]\n+ [ > crate2 | stationary crate1 ] -> [ > crate2 | > crate1 no slidetag]\n\n\n[eyeclose]->[]\n[stationary player] [slidetag] [ > wall5| ] -> [stationary player] [slidetag] [ > wall5| eyeclose ]\n\n[ stationary player ] [ crate slideup ] -> [ stationary player ] [ up crate up slideup ] again\n[ stationary player ] [ crate slidedown ] -> [ stationary player ] [ down crate down slidedown ] again\n[ stationary player ] [ crate slideleft ] -> [ stationary player ] [ left crate left slideleft ] again\n[ stationary player ] [ crate slideright ] -> [ stationary player ] [ right crate right slideright ] again\n\n[ > crate | | < wall ] -> [ crate no slidetag | | < wall ]\n[ > wall | crate ] -> [ > wall | > crate ]\n\n[ > crate | no obs | < crate ] [ > wall ] -> [ > crate | | stationary crate ] [ > wall ]\n\n[ > crate1 | stationary obs ] -> [ stationary crate1 no slidetag | stationary obs ]\n+[ > crate2 | stationary obs ] -> [ stationary crate2 no slidetag | stationary obs ]\n+[ moving crate1 | stationary crate1 ] -> [ stationary crate1 no slidetag | stationary crate1 no slidetag]\n+[ moving crate2 | stationary crate2 ] -> [ stationary crate2 no slidetag | stationary crate2 no slidetag]\n\n[moving wall4] [levelbg] -> [ moving wall4] [ moving levelbg]\n\n [target > crate] -> [target] sfx0\n \n==============\nWINCONDITIONS\n==============\n\nno crate\n\n=======\nLEVELS\n=======\n\n(BUGS)\n\n\nmessage Level 1 of 8 : No! Don't eat two snails!\n\n\n(v. simple but cute maybe? but open to trial + error solutions. ok for first level?)\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,444474,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,,\n,4444446,,$$$$$$%;,,,o\n,444448,,,$-----$&&,,o\n,444444,,,$-------,,,o\n,,4444,,,,$-------,,,o\n,,3333,,,,$22--1--,,,o\n,333333,,,$----1$&&,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n\nmessage Level 2 of 8 : Don't eat two boomerangs!\n\n(ok! beautiful baby!)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,o$$$oo,,,,,,,,,,,o\n,444444,,,o$-$%ooo,,,,,,,,,o\n,444474,,,o$-1$$;,,,,,,,,,,o\n,4444444,,o$-11$&&,,,,,,,,,o\n,4444446,,o$$----,,,,,,,,,,o\n,444448,,,oo$$---,,,,,,,,,,o\n,444444,,,oo$----,,,,,,,,,,o\n,,4444,,,,o$$---&&,,,,,,,,,o\n,,3333,,,,o$---2$,,,,,,,,,,o\n,333333,,,o$--22$,,,,,,,,,,o\n,333333,,,,$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Level 3 of 8 : No! Don't eat the soap dispenser!\n(easy and funish)\n,,,,,,,,,,,,,,,,,,,,,,,,,,p,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$11---$;,,,,,,,,,o\n,444474,,,$-1---$,,,,,,,,,,o\n,4444444,,$22--$&&,,,,,,,,,o\n,4444446,,$22----,,,,,,,,,,o\n,444448,,,$--$---,,,,,,,,,,o\n,444444,,,$------,,,,,,,,,,o\n,,4444,,,,$-----&&,,,,,,,,,o\n,,3333,,,,$-----$,,,,,,,,,,o\n,333333,,,$-----$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Level 4 of 8 : No! Don't eat the unripe acorn!\n(cute)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,p,,\n,,4444,,,,,,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,,,,,,\n,444474,,,,,,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,%,,,,,\n,4444446,,$$$$$$$$$$$$;,,,o\n,444448,,,$----------$&,,,o\n,444444,,,$-----------,,,,o\n,,4444,,,,$-----------,,,,o\n,,3333,,,,$----21-----,,,,o\n,333333,,,$----11$$--$&,,,o\n,333333,,,$$$$$$$$$$$$,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,\n,333333,,,$$$$$,,,,,,,,,,,,\n,333333,,,$$$$$,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n\n\n\nmessage Level 5 of 8 : No! Don't eat the sock!\n(Easyish/okish)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,p,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$---$-$;,,,,,,,,,o\n,444474,,,$--2$-$,,,,,,,,,,o\n,4444444,,$--221&&,,,,,,,,,o\n,4444446,,$-$----,,,,,,,,,,o\n,444448,,,$------,,,,,,,,,,o\n,444444,,,$$--$--,,,,,,,,,,o\n,,4444,,,,,$$$--&&,,,,,,,,,o\n,,3333,,,,,$$$$-$,,,,,,,,,,o\n,333333,,,,$$,$$$,,,,,,,,,,o\n,333333,,,,$$,,,,,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n\n\nmessage Level 6 of 8 : No! Don't eat the caterpillar!\n\n(absolutely ok early-intermediate)\n,,,,,,,,,,,,,,,,,,,,,,,,,p,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$$$$$$%,,,,,o\n,444444,,,$------1$--$;,,,,o\n,444474,,,$-$----$---$,,,,,o\n,4444444,,$----$---$-&&,,,,o\n,4444446,,$-$---------,,,,,o\n,444448,,,$-$------$--,,,,,o\n,444444,,,$-------$22-,,,,,o\n,,4444,,,,$------$22-&&,,,,o\n,,3333,,,,$----------$,,,,,o\n,333333,,,$----------$,,,,,o\n,333333,,,$$$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\nmessage Level 7 of 8 : No! Don't eat the caterpillar!\n\n\n(intermediate/actually ok!)\n,,,,,,,,,,,,,,,,,,,,,,,,p,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$$$$$$%,,,,,o\n,444444,,,$--$--$----$;,,,,o\n,444447,,,$----2222--$,,,,,o\n,4444444,,$----------&&,,,,o\n,4444446,,$---$-------,,,,,o\n,444448,,,$--------$--,,,,,o\n,444444,,,$-----------,,,,,o\n,,4444,,,,$$$$--$----&&,,,,o\n,,3333,,,,,,$----$-1-$,,,,,o\n,333333,,,,,$------11$,,,,,o\n,333333,,,,,$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n\nmessage Level 8 of 8 : No! Don't eat the kitchen sink!\n(pretty decent intermediate)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,p,\n,,4444,,,,$$$$$$$$$%,,,,,,,o\n,444444,,,$----$---$$$;,,,,o\n,444474,,,$--------$-$,,,,,o\n,4444444,,$----$-----&&,,,,o\n,4444446,,$-----------,,,,,o\n,444448,,,$-$---22----,,,,,o\n,444444,,,$------2----,,,,,o\n,,4444,,,,$----111-$-&&,,,,o\n,,3333,,,,$$----1$-$-$,,,,,o\n,333333,,,,$---------$,,,,,o\n,333333,,,,$$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(following line courtesy of SFTRABBIT)\nmessage They are for me to eat! \n\n\n\n\n\n\n\n\n\n\n(\n\nmessage Level 2 of 10\nmessage No! Don't eat that!\n(actually ok)\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,,\n,4444444,,$$$$$$%;,,,o\n,444444,,,$-2---&&,,,o\n,444444,,,$-$----,,,,o\n,,4444,,,,$--$---,,,,o\n,,3333,,,,$---$--,,,,o\n,333333,,,$1----&&,,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,,\n,4444444,,$$$$$$%;,,,o\n,444444,,,$-----$&&,,o\n,444444,,,$--$---,,,,o\n,,4444,,,,$--2$--,,,,o\n,,3333,,,,$1-----,,,,o\n,333333,,,$$----$&&,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n(ok-ish)\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,p,,,,,,\n,,4444,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,,\n,4444444,,$$$$$$%;,,,o\n,444444,,,$-$--$$&&,,o\n,444444,,,$-$--1-,,,,o\n,,4444,,,,$222-1-,,,,o\n,,3333,,,,$------,,,,o\n,333333,,,$-----$&&,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n\n(Ah p.trivial actually)\n(ok)\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,,$$$$$%,,,,,\n,444444,,,$---22$;,,,,\n,444444,,,$----$$,,,,o\n,4444444,,$---11&&,,,o\n,4444444,,$-$--1,,,,,o\n,444444,,,$----1,,,,,o\n,444444,,,$-----,,,,,o\n,,4444,,,,$-----&&,,,o\n,,3333,,,,$-----$,,,,o\n,333333,,,$-----$,,,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n\n\n\n(not too easy but meh)\n(too easy)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,,,,,,,,,,,,,,,p,,\n,444444,,,,,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,%,,,,,\n,4444444,,$$$$$$$$$$$$;,,,,\n,444444,,,$---$2222--$&,,,o\n,444444,,,$-----------,,,,o\n,,4444,,,,$--$--$-----,,,,o\n,,3333,,,,$-----------,,,,o\n,333333,,,$--------11$&,,,o\n,333333,,,$$$$$$$$$$$$,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,\n,333333,,,$$$$$,,,,,,,,,,,,\n,333333,,,$$$$$,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n\n\n\n(same idea basically)\n( ,,,,,,,,,,,,,,,,,,,,,,,,,,,, )\n( ,,,,,,,,,,,,,,,,,,,,,,,p,,,, )\n( ,,4444,,,,$$$$$$%,,,,,,,,,,o )\n( ,444444,,,$....#$;,,,,,,,,,o )\n( ,444444,,,$1....$,,,,,,,,,,o )\n( ,4444444,,$1.#..&&,,,,,,,,,o )\n( ,4444444,,$##...-,,,,,,,,,,o )\n( ,444444,,,$.##2.-,,,,,,,,,,o )\n( ,444444,,,$.#222-,,,,,,,,,,o )\n( ,,4444,,,,$.....&&,,,,,,,,,o )\n( ,,3333,,,,$..#..$,,,,,,,,,,o )\n( ,333333,,,$#..#.$,,,,,,,,,,o )\n( ,333333,,,$$$$$$$,,,,,,,,,,o )\n( ,333333,,,,$$$,,,,,,,,,,,,,o )\n( ,333333,,,$$$$$,,,,,,,,,,,,o )\n( ,333333,,,$$$$$,,,,,,,,,,,,, )\n( ,333333,,$$$\"$$$,,,,,,,,,,,, )\n( ,333333,,$$\"$$$$,,,,,,,,,,,, )\n( ,333355!!!!\"\"\"\"$,,,,,,,,,,,, )\n( ,333355!!!!\"\"\"\"$,,,$,,,,,,,, )\n( ,333355!!!!\"\"\"\"£$$$$,,,,,,,, )\n( ,333333,,,£££££$$$$$,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n\n\n(too linear)\n( ,,,,,,,,,,,,,,,,,,,,,,,p,,,, )\n( ,,,,,,,,,,,,,,,,,,,,,,,,,,,, )\n( ,,4444,,,,$$$$$$%,,,,,,,,,,o )\n( ,444444,,,$#....$;,,,,,,,,,o )\n( ,444444,,,$.#...$,,,,,,,,,,o )\n( ,4444444,,$.#..2&&,,,,,,,,,o )\n( ,4444444,,$#..22-,,,,,,,,,,o )\n( ,444444,,,$###.1-,,,,,,,,,,o )\n( ,444444,,,$....#-,,,,,,,,,,o )\n( ,,4444,,,,$...#.&&,,,,,,,,,o )\n( ,,3333,,,,$.....$,,,,,,,,,,o )\n( ,333333,,,$.#...$,,,,,,,,,,o )\n( ,333333,,,$$$$$$$,,,,,,,,,,o )\n( ,333333,,,,$$$,,,,,,,,,,,,,o )\n( ,333333,,,$$$$$,,,,,,,,,,,,o )\n( ,333333,,,$$$$$,,,,,,,,,,,,, )\n( ,333333,,$$$\"$$$,,,,,,,,,,,, )\n( ,333333,,$$\"$$$$,,,,,,,,,,,, )\n( ,333355!!!!\"\"\"\"$,,,,,,,,,,,, )\n( ,333355!!!!\"\"\"\"$,,,$,,,,,,,, )\n( ,333355!!!!\"\"\"\"£$$$$,,,,,,,, )\n( ,333333,,,£££££$$$$$,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n\n\n(very easy)\n,,,,,,,,,,,,,,,,,,,,,,,p,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$.2.#.$;,,,,,,,,,o\n,444444,,,$...##$,,,,,,,,,,o\n,4444444,,$..#.#&&,,,,,,,,,o\n,4444444,,$..#..-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,444444,,,$11...-,,,,,,,,,,o\n,,4444,,,,$11...&&,,,,,,,,,o\n,,3333,,,,$#..##$,,,,,,,,,,o\n,333333,,,$...#.$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n(medium actually maybe slightly ok)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,$$$$%,,,,,,,,,,,,o\n,444444,,,$---$;,,,,,,,,,,,o\n,444444,,,$$--$,,,,,,,,,,,,o\n,4444444,,$----$&&,,,,,,,,,o\n,4444444,,$.#...-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,,4444,,,,$....2&&,,,,,,,,,o\n,,3333,,,,$#11.##,,,,,,,,,,o\n,333333,,,,##1.#,,,,,,,,,,,o\n,333333,,,,,$$$$,,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(super tricky somehow but also trivial)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,p,,,\n,,4444,,,,,,$$$$%,,,,,,,,,,o\n,444444,,,,,$--$$;,,,,,,,,,o\n,444444,,,,,$1-2$,,,,,,,,,,o\n,4444444,,,,$1-2&&,,,,,,,,,o\n,4444444,,,,$112-,,,,,,,,,,o\n,444444,,,,,$$$--,,,,,,,,,,o\n,444444,,,,,,$---,,,,,,,,,,o\n,,4444,,,,,,,$--&&,,,,,,,,,o\n,,3333,,,,,,,$--$,,,,,,,,,,o\n,333333,,,,,,$--$,,,,,,,,,,o\n,333333,,,,,$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(Easyish)\n,,,,,,,,,,,,,,,,,,,,,,,p,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,,,,,$$%,,,,,,,,,,o\n,444444,,,,,,,$-$;,,,,,,,,,o\n,444444,,,,,,$$-$,,,,,,,,,,o\n,4444444,,,,,$--&&,,,,,,,,,o\n,4444444,,,,,$---,,,,,,,,,,o\n,444444,,,,,,$$1-,,,,,,,,,,o\n,444444,,,,$$$11-,,,,,,,,,,o\n,,4444,,,,$$----&&,,,,,,,,,o\n,,3333,,,,$----2$,,,,,,,,,,o\n,333333,,,$-$-$2$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n\n\n\n\n\n\n\n\n(ok/intermediatetricky)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,p,,,,\n,,4444,,,,$$$$$$$$$$$%,,,,,o\n,444444,,,$-----$----$;,,,,o\n,444444,,,$--------1-$,,,,,o\n,4444444,,$--$---1112&&,,,,o\n,4444444,,$------$----,,,,,o\n,444444,,,$-----$$----,,,,,o\n,444444,,,$-------$---,,,,,o\n,,4444,,,,$-----$----&&,,,,o\n,,3333,,,,$$---------$,,,,,o\n,333333,,,,$$--------$,,,,,o\n,333333,,,,,$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n(easy / okish?)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,p\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$111..$;,,,,,,,,,o\n,444444,,,$.1...$,,,,,,,,,,o\n,4444444,,$.....&&,,,,,,,,,o\n,4444444,,$.....-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,,4444,,,,$#....&&,,,,,,,,,o\n,,3333,,,,$....2$,,,,,,,,,,o\n,333333,,,$...#2$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(easy but maybe ok?)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,p\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$...11$;,,,,,,,,,o\n,444444,,,$....1$,,,,,,,,,,o\n,4444444,,$.....&&,,,,,,,,,o\n,4444444,,$.....-,,,,,,,,,,o\n,444444,,,$...#.-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,,4444,,,,$.....&&,,,,,,,,,o\n,,3333,,,,$..2..$,,,,,,,,,,o\n,333333,,,$.#2..$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(wtf is going on? hard to find the point to break out of the loop - maybe later on in game?)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,p\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$-----$$$,,,,,,,,o\n,444444,,,$-----$$;,,,,,,,,o\n,4444444,,$-----&&,,,,,,,,,o\n,4444444,,$------,,,,,,,,,,o\n,444444,,,$--1---,,,,,,,,,,o\n,444444,,$$$111--,,,,,,,,,,o\n,,4444,,,$---1--&&,,,,,,,,,o\n,,3333,,$$$$----$,,,,,,,,,,o\n,333333,$------2$,,,,,,,,,,o\n,333333,$$$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n(NO NO NONO NO NO NO NO. I had a ridiculously bad time and the solution was pretty trivial AND boring I just didn't see it like an idiot)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,p\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$$$$$$%,,,,,o\n,444444,,,$.....2222.$;,,,,o\n,444444,,,$.......2..$,,,,,o\n,4444444,,$......#...&&,,,,o\n,4444444,,$..........-,,,,,o\n,444444,,,$..........-,,,,,o\n,444444,,,$#11.......-,,,,,o\n,,4444,,,,$111.......&&,,,,o\n,,3333,,,,$.......#..$,,,,,o\n,333333,,,$..........$,,,,,o\n,333333,,,$$$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n)\n\n", [2, 0, 1, 3, 0, 2, 1, "restart", 0, 2, 1, 2, 0, 1, 3, 2, 1], "background: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,background body2:1,1,1,1,1,1,0,0,background body1:2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,\n1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,\n1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,1,\n1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,1,background maneye:3,\n1,1,1,1,1,2,2,2,2,2,2,2,2,background body1 wall1:4,4,4,2,2,2,2,2,0,0,0,1,1,1,\n1,background manmouth:5,1,0,0,2,2,2,2,2,2,2,4,4,4,2,2,2,2,2,0,0,0,0,0,1,background mannostrils:6,\n0,0,0,0,0,0,0,0,0,0,0,background wall1:7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,background wall4:8,8,7,7,7,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,\n8,8,8,0,8,8,8,8,7,7,7,background wall3:9,0,0,0,0,0,0,0,0,0,0,8,background levelbg:10,10,10,background crate2 levelbg:11,\n10,8,8,8,8,8,background wall2:12,12,12,12,9,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,\n8,8,8,8,12,8,12,12,12,9,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,8,\n8,8,8,8,8,12,12,12,9,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,8,0,\n8,8,8,8,12,12,12,9,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,8,0,0,\n0,8,8,8,8,9,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,8,0,0,0,\n0,0,0,0,8,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,8,8,0,0,0,0,\n0,0,0,8,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,8,8,0,0,0,0,0,\n0,0,8,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,background crate1 levelbg:13,8,0,0,0,0,0,0,\n8,8,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,13,13,8,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,background wall5:14,8,8,10,10,10,8,8,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,background player:15,0,0,0,background wall6:16,background wall7:17,0,0,0,17,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,\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,\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,\n0,0,0,0,0,0,0,background target:18,18,18,18,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 7, "1627893851172.3552"] ], [ - "Recondite Star Sector Sigma", - ["title Recondite Star Sector Sigma\nauthor increpare\nhomepage www.increpare.com\n\n========\nOBJECTS\n========\n\nhintergrund\nblack\n\n\nziel\npink\n..000\n.00..\n.0.0.\n..00.\n000..\n\nwand\nblack gray\n00000\n01010\n00000\n01010\n00000\n\nspieler\nred white\n..0..\n.000.\n.111.\n.111.\n01010\n\nKiste\nOrange Yellow\n.....\n.000.\n.0.0.\n.000.\n.....\n\ncrate c\norange yellow\n.....\n.000.\n.0.0.\n.000.\n.....\n\n=======\nLEGEND\n=======\n\nplayer = spieler\nbackground = hintergrund\n\n. = Background\n# = wand\nP = spieler\n* = kiste\nO = ziel\n\n\n=======\nSOUNDS\n=======\n\nkiste MOVE 74233307\nendlevel 35757708\nstartgame 52406508\nsfx0 23411703 (kiste auf ziel)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSpieler, wand, Kiste\nziel\ncrate\n======\nRULES\n======\n\n[ > Spieler | Kiste ] -> [ > Spieler | > Kiste ]\n[ > Spieler | crate ] -> [ > Spieler | > crate ]\n[ > crate | wand ]-> cancel\n[ > spieler | > kiste | ziel ] -> [ ziel | spieler | wand ] sfx0\n\nWINCONDITIONS\n==============\n\n( All Target on Crate )\nno Kiste\nall crate on ziel\n\n=======\nLEVELS\n=======\n\nmessage Sector 1 of 10: Headway \n(Easiesh but tricky first level?)\n######\n#o.###\n#p.###\n#.*..#\n#.*..#\n#..###\n######\n\nmessage Sector 2 of 10: Star-Hopper\n(medium-difficult but maybe ok first level?)\n############\n#....###..##\n#..o*.*..#.#\n#*.........#\n#p..########\n############\n\nmessage Sector 3 of 10: The dividing wall\n(also ok? quite similar? maybe easier?)\n######\n#...##\n#.*o##\n#p*..#\n#.*..#\n#..###\n######\n\nmessage Sector 4 of 10: The waiting room\n###########\n########..#\n########..#\n#######...#\n#........o#\n#.#*#*#.###\n#..*.p..###\n###########\n\n\nmessage Sector 5 of 10: The great pillar\n(good first level?)\n######\n#.*..#\n#.#..#\n#.**.#\n#..p.#\n#...o#\n######\n\n\nmessage Sector 6 of 10: The ceremony\n(good first level? at least a slightly different concept to the others)\n#########\n#.*...o.#\n#.#.*.#.#\n#...*.p.#\n#########\n\n\n(trivial)\n( ######### )\n( ###p.#### )\n( #.......# )\n( #.#**#*.# )\n( #.o..#..# )\n( ######### )\n\n\nmessage level 7 of 10: Ancient offering\n(intermediate. not so fun?)\n#########\n##o..####\n#.p**...#\n#.#.*..##\n#....#.##\n#########\n\nmessage Sector 8 of 10: The Constellation of the Rattlesnake \n\n(hardish? intermeidate :] )\n#########\n###..####\n#.o...*.#\n#.**.##.#\n#....#.p#\n#########\n\nmessage Sector 9 of 10: The site of return.\n\n(intermediate ok? not so interesting)\n#########\n###..####\n#..*....#\n#p*..*..#\n#.o.##.##\n#########\n\n\n\nmessage Sector 10 of 10: Normality\n\n#########\n###..####\n#.oc...o#\n#pc..c..#\n#.o.##.##\n#########\n\n\nmessage Congratulations! You have navigated the Recondite Star Sector Sigma. But nobody will ever believe what you saw.\n\n(\n\n[spieler]->[]\n[kiste]->[]\n[ziel]->[]\n\nchoose 2 option 0.5 [ wand | no wand ] -> [ | ]\nchoose 2 option 0.5 [ wand | no wand ] -> [ wand | wand ]\nchoose 2 [no kiste no wand no spieler ] -> [ kiste ]\nchoose 1 [no kiste no wand no spieler ] -> [ ziel ]\nchoose 1 [no kiste no wand no spieler ] -> [ spieler ]\n\n)\n\n",[0,0,1,1,1,1,0,3,2,2,2,1,1,1,0,3,2,3,3,0,2,1,1,0,3,3,2,3,0],"hintergrund wand:0,0,0,0,0,0,0,0,hintergrund:1,\n1,1,0,0,0,0,1,1,0,\n0,1,hintergrund kiste:2,1,1,0,0,1,0,\nhintergrund spieler:3,hintergrund ziel:4,0,0,0,1,0,0,0,\n0,0,1,0,1,0,0,0,1,\n1,1,0,0,0,0,0,0,0,\n",15,"1627893876246.9329"] + "Recondite Star Sector Sigma", + ["title Recondite Star Sector Sigma\nauthor increpare\nhomepage www.increpare.com\n\n========\nOBJECTS\n========\n\nhintergrund\nblack\n\n\nziel\npink\n..000\n.00..\n.0.0.\n..00.\n000..\n\nwand\nblack gray\n00000\n01010\n00000\n01010\n00000\n\nspieler\nred white\n..0..\n.000.\n.111.\n.111.\n01010\n\nKiste\nOrange Yellow\n.....\n.000.\n.0.0.\n.000.\n.....\n\ncrate c\norange yellow\n.....\n.000.\n.0.0.\n.000.\n.....\n\n=======\nLEGEND\n=======\n\nplayer = spieler\nbackground = hintergrund\n\n. = Background\n# = wand\nP = spieler\n* = kiste\nO = ziel\n\n\n=======\nSOUNDS\n=======\n\nkiste MOVE 74233307\nendlevel 35757708\nstartgame 52406508\nsfx0 23411703 (kiste auf ziel)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSpieler, wand, Kiste\nziel\ncrate\n======\nRULES\n======\n\n[ > Spieler | Kiste ] -> [ > Spieler | > Kiste ]\n[ > Spieler | crate ] -> [ > Spieler | > crate ]\n[ > crate | wand ]-> cancel\n[ > spieler | > kiste | ziel ] -> [ ziel | spieler | wand ] sfx0\n\nWINCONDITIONS\n==============\n\n( All Target on Crate )\nno Kiste\nall crate on ziel\n\n=======\nLEVELS\n=======\n\nmessage Sector 1 of 10: Headway \n(Easiesh but tricky first level?)\n######\n#o.###\n#p.###\n#.*..#\n#.*..#\n#..###\n######\n\nmessage Sector 2 of 10: Star-Hopper\n(medium-difficult but maybe ok first level?)\n############\n#....###..##\n#..o*.*..#.#\n#*.........#\n#p..########\n############\n\nmessage Sector 3 of 10: The dividing wall\n(also ok? quite similar? maybe easier?)\n######\n#...##\n#.*o##\n#p*..#\n#.*..#\n#..###\n######\n\nmessage Sector 4 of 10: The waiting room\n###########\n########..#\n########..#\n#######...#\n#........o#\n#.#*#*#.###\n#..*.p..###\n###########\n\n\nmessage Sector 5 of 10: The great pillar\n(good first level?)\n######\n#.*..#\n#.#..#\n#.**.#\n#..p.#\n#...o#\n######\n\n\nmessage Sector 6 of 10: The ceremony\n(good first level? at least a slightly different concept to the others)\n#########\n#.*...o.#\n#.#.*.#.#\n#...*.p.#\n#########\n\n\n(trivial)\n( ######### )\n( ###p.#### )\n( #.......# )\n( #.#**#*.# )\n( #.o..#..# )\n( ######### )\n\n\nmessage level 7 of 10: Ancient offering\n(intermediate. not so fun?)\n#########\n##o..####\n#.p**...#\n#.#.*..##\n#....#.##\n#########\n\nmessage Sector 8 of 10: The Constellation of the Rattlesnake \n\n(hardish? intermeidate :] )\n#########\n###..####\n#.o...*.#\n#.**.##.#\n#....#.p#\n#########\n\nmessage Sector 9 of 10: The site of return.\n\n(intermediate ok? not so interesting)\n#########\n###..####\n#..*....#\n#p*..*..#\n#.o.##.##\n#########\n\n\n\nmessage Sector 10 of 10: Normality\n\n#########\n###..####\n#.oc...o#\n#pc..c..#\n#.o.##.##\n#########\n\n\nmessage Congratulations! You have navigated the Recondite Star Sector Sigma. But nobody will ever believe what you saw.\n\n(\n\n[spieler]->[]\n[kiste]->[]\n[ziel]->[]\n\nchoose 2 option 0.5 [ wand | no wand ] -> [ | ]\nchoose 2 option 0.5 [ wand | no wand ] -> [ wand | wand ]\nchoose 2 [no kiste no wand no spieler ] -> [ kiste ]\nchoose 1 [no kiste no wand no spieler ] -> [ ziel ]\nchoose 1 [no kiste no wand no spieler ] -> [ spieler ]\n\n)\n\n", [0, 0, 1, 1, 1, 1, 0, 3, 2, 2, 2, 1, 1, 1, 0, 3, 2, 3, 3, 0, 2, 1, 1, 0, 3, 3, 2, 3, 0], "hintergrund wand:0,0,0,0,0,0,0,0,hintergrund:1,\n1,1,0,0,0,0,1,1,0,\n0,1,hintergrund kiste:2,1,1,0,0,1,0,\nhintergrund spieler:3,hintergrund ziel:4,0,0,0,1,0,0,0,\n0,0,1,0,1,0,0,0,1,\n1,1,0,0,0,0,0,0,0,\n", 15, "1627893876246.9329"] ], [ - "Crate Swarp", - ["title Crate Swarp\nauthor incurpareh\nhomepage www.increpare.com\n\ncolor_palette 6\n\ntext_color pink\n\n(levels generated with https://dekeyser.ch/puzzlescriptmis/ )\n\n========\nOBJECTS\n========\n\nBackground\npurple\n\nTarget1\ndarkred red\n.....\n.101.\n.101.\n.101.\n.....\n\nCrate1\nred lightred\n10101\n1...1\n1...1\n1...1\n10101\n\n\nTarget2\ndarkblue blue\n.....\n.111.\n.000.\n.111.\n.....\n\nCrate2\nblue lightblue\n11111\n0...0\n1...1\n0...0\n11111\n\n\nWall\nBROWN DARKBROWN BROWN\n10101\n02020\n10101\n02020\n10101\n\nPlayer\nBlack Orange White Blue\n00000\n01010\n00000\n0...0\n0...0\n\n\n\n=======\nLEGEND\n=======\n\ncrate = crate1 or Crate2\n\n. = Background\n# = Wall\nP = Player\nA = target1 and Crate2\nB = target2 and crate1\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 50239307\nplayer move 61796707\nendlevel 41475705\nstartgame 88984906\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget1, target2\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nall target1 on Crate1\nall target2 on crate2\n\n=======\nLEVELS\n=======\n\nmessage Lervel wan of ate\n#########\n###..####\n###..a..#\n#.b.....#\n#..p.#..#\n#########\n\nmessage Lervel tur of ate\n######\n#..###\n#....#\n#.abp#\n##...#\n######\n\n\nmessage Lervel twei of ate\n#########\n###..####\n#..a....#\n#....b..#\n###p.####\n#########\n\n\nmessage Lervel faw of ate\n#########\n###..####\n#...a.b.#\n#.......#\n#..p.####\n#########\n\nmessage Lervel fif of ate\n(Fascinating and good)\n########\n###..###\n#.a..b.#\n#..p...#\n#####..#\n########\n\nmessage Lervel shicks of ate\n#######\n##..###\n#...a.#\n#..b.p#\n##..###\n##..###\n#######\n\n\n\nmessage Lervel shebben of ate\n#######\n##..###\n##..###\n##.a..#\n#...b.#\n#..p###\n#######\n\nmessage Lervel ate of ate\n\n#######\n##..###\n#p...##\n#.ab.##\n##....#\n###...#\n#######\n\n\nmessage Crawngragurrarshuns!\n\n",[1,1,2,1,0,3,3,3,0,1,2,1,0,2,1,1,0,3,3],"background wall:0,0,0,0,0,0,0,\n0,0,background:1,1,0,0,0,\n0,1,1,1,1,1,0,\n0,background crate2:2,background player:3,background target2:4,1,1,0,\n0,0,background crate1 target1:5,1,0,0,0,\n0,0,1,1,0,0,0,\n0,0,0,0,0,0,0,\n",11,"1627893891182.2898"] + "Crate Swarp", + ["title Crate Swarp\nauthor incurpareh\nhomepage www.increpare.com\n\ncolor_palette 6\n\ntext_color pink\n\n(levels generated with https://dekeyser.ch/puzzlescriptmis/ )\n\n========\nOBJECTS\n========\n\nBackground\npurple\n\nTarget1\ndarkred red\n.....\n.101.\n.101.\n.101.\n.....\n\nCrate1\nred lightred\n10101\n1...1\n1...1\n1...1\n10101\n\n\nTarget2\ndarkblue blue\n.....\n.111.\n.000.\n.111.\n.....\n\nCrate2\nblue lightblue\n11111\n0...0\n1...1\n0...0\n11111\n\n\nWall\nBROWN DARKBROWN BROWN\n10101\n02020\n10101\n02020\n10101\n\nPlayer\nBlack Orange White Blue\n00000\n01010\n00000\n0...0\n0...0\n\n\n\n=======\nLEGEND\n=======\n\ncrate = crate1 or Crate2\n\n. = Background\n# = Wall\nP = Player\nA = target1 and Crate2\nB = target2 and crate1\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 50239307\nplayer move 61796707\nendlevel 41475705\nstartgame 88984906\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget1, target2\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nall target1 on Crate1\nall target2 on crate2\n\n=======\nLEVELS\n=======\n\nmessage Lervel wan of ate\n#########\n###..####\n###..a..#\n#.b.....#\n#..p.#..#\n#########\n\nmessage Lervel tur of ate\n######\n#..###\n#....#\n#.abp#\n##...#\n######\n\n\nmessage Lervel twei of ate\n#########\n###..####\n#..a....#\n#....b..#\n###p.####\n#########\n\n\nmessage Lervel faw of ate\n#########\n###..####\n#...a.b.#\n#.......#\n#..p.####\n#########\n\nmessage Lervel fif of ate\n(Fascinating and good)\n########\n###..###\n#.a..b.#\n#..p...#\n#####..#\n########\n\nmessage Lervel shicks of ate\n#######\n##..###\n#...a.#\n#..b.p#\n##..###\n##..###\n#######\n\n\n\nmessage Lervel shebben of ate\n#######\n##..###\n##..###\n##.a..#\n#...b.#\n#..p###\n#######\n\nmessage Lervel ate of ate\n\n#######\n##..###\n#p...##\n#.ab.##\n##....#\n###...#\n#######\n\n\nmessage Crawngragurrarshuns!\n\n", [1, 1, 2, 1, 0, 3, 3, 3, 0, 1, 2, 1, 0, 2, 1, 1, 0, 3, 3], "background wall:0,0,0,0,0,0,0,\n0,0,background:1,1,0,0,0,\n0,1,1,1,1,1,0,\n0,background crate2:2,background player:3,background target2:4,1,1,0,\n0,0,background crate1 target1:5,1,0,0,0,\n0,0,1,1,0,0,0,\n0,0,0,0,0,0,0,\n", 11, "1627893891182.2898"] ], [ - "NO FORBIDDEN SYMBOLS", - ["title NO FORBIDDEN SYMBOLS\nauthor increpare\nhomepage www.increpare.com\n\n========\nOBJECTS\n========\n\nBackground\nwhite\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\n\nPlayer\ngray gray gray gray\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\n#e22118\n\nhorizont\ntransparent\n\nvert\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 32154907\nstartgame 9465903\nendgame 73573102\nsfx0 27796903\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Crate\nhorizont\nvert\n\n======\nRULES\n======\n\n[horizont]->[]\n[vert]->[]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate horizontal [crate | crate | crate ] -> [ crate | crate horizont | crate ]\n\nlate vertical [ crate | crate horizont | crate ] -> [ | vert | ] again sfx0\nlate horizontal [crate | vert | crate ] -> [ | vert | ]\n\n==============\nWINCONDITIONS\n==============\n\nno crate\nno vert\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\n.......\n.......\n..*.*..\n.*.*.*.\n.......\n...p...\n.......\n\nmessage As you can see, this game is forbidden-symbol-free!\n\nmessage Thanks for playing! :)\n",[0,0,2,1,1,1,0,3,3],"background:0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\n0,0,background crate:1,background player:2,0,0,0,\n0,0,background crate horizont:3,1,0,0,0,\n0,0,1,0,0,0,0,\n0,0,0,1,0,0,0,\n0,0,0,0,0,0,0,\n",1,"1627893988626.8167"] + "NO FORBIDDEN SYMBOLS", + ["title NO FORBIDDEN SYMBOLS\nauthor increpare\nhomepage www.increpare.com\n\n========\nOBJECTS\n========\n\nBackground\nwhite\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\n\nPlayer\ngray gray gray gray\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\n#e22118\n\nhorizont\ntransparent\n\nvert\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 32154907\nstartgame 9465903\nendgame 73573102\nsfx0 27796903\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Crate\nhorizont\nvert\n\n======\nRULES\n======\n\n[horizont]->[]\n[vert]->[]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate horizontal [crate | crate | crate ] -> [ crate | crate horizont | crate ]\n\nlate vertical [ crate | crate horizont | crate ] -> [ | vert | ] again sfx0\nlate horizontal [crate | vert | crate ] -> [ | vert | ]\n\n==============\nWINCONDITIONS\n==============\n\nno crate\nno vert\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\n.......\n.......\n..*.*..\n.*.*.*.\n.......\n...p...\n.......\n\nmessage As you can see, this game is forbidden-symbol-free!\n\nmessage Thanks for playing! :)\n", [0, 0, 2, 1, 1, 1, 0, 3, 3], "background:0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\n0,0,background crate:1,background player:2,0,0,0,\n0,0,background crate horizont:3,1,0,0,0,\n0,0,1,0,0,0,0,\n0,0,0,1,0,0,0,\n0,0,0,0,0,0,0,\n", 1, "1627893988626.8167"] ], [ - "SWIMMING TIME!", - ["title SWIMMING TIME!\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\ncolor_palette 5\n\nrun_rules_on_level_start\n\nnorepeat_action\n\nagain_interval 0.2\n( debug )\n( verbose_logging )\n\nbackground_color #323c39\ntext_color #b4f7ff\n\n========\nOBJECTS\n========\n\nWall1 #\n#284580 #3b7ca9\n00000\n01010\n00000\n01010\n00000\n\nwall2 -\nbrown darkbrown\n11111\n00000\n11111\n00000\n11111\n\nBackground .\n#8b856e\n\ngoalarea ,\nlightblue\n\ntargetarea \n#8dc854\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\ntargetstrap\n#8dc854\n00000\n00000\n.....\n.....\n.....\n\nR0_Up 0\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\nR0_Down\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\nR0_Left\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\nR0_Right\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\n\nR1_Up 1\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR1_Down\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR1_Left\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR1_Right\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\n\nR2_Up 2\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR2_Down\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR2_Left\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR2_Right\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR3 3\n#e95db5 #e95db5\n.000.\n01110\n01110\n01110\n.000.\n\nConnector_Up\n#d9a066 #d9a066\n10001\n.000.\n.....\n.....\n.....\n\nConnector_Down\n#d9a066 #d9a066\n.....\n.....\n.....\n.000.\n10001\n\nConnector_Left\n#d9a066 #d9a066\n1....\n00...\n00...\n00...\n1....\n\nConnector_Right\n#d9a066 #d9a066\n....1\n...00\n...00\n...00\n....1\n\nMoved \ntransparent\n\nParent\ntransparent\n\nGrandParent\ntransparent\n\nNewRot\ntransparent\n\nNewRot2\ntransparent\n\nforce \ntransparent\n\nelephantbody_vanilla e\n#e9b886\n\nelephantbody_eye ;\n#e9b886 white brown\n00000\n01110\n01210\n01110\n00000\n\nelephantbody_hair h\nbrown #e9b886\n00000\n00000\n00000\n00000\n01010\n\nelephantbody_bs &\n#a1694e\n\nelephantbody_mouth '\n#e9b886 white red\n00000\n00000\n02220\n02220\n00000\n\nelephantbody_nose ~\n#e9b886 white black\n0....\n00...\n000..\n000..\n000..\n\n\nelephantbody_nose2 ?\n#e9b886 white black\n0....\n00...\n000..\n0000.\n00000\n\nelephantbody_nose3 %\n#e9b886\n00000\n.0000\n..000\n...00\n....0\n\nelephantbody_anchor a\n#d9a066\n\nelephant_armhighlight $\n#e9b886 #a1694e\n00001\n00001\n00001\n00001\n00001\n\nelephant_armhighlight2 !\n#e9b886 #a1694e\n00001\n00001\n10001\n10001\n11111\n\nelephant_reddot \"\n#e9b886 #e95db5\n00010\n00000\n00000\n00000\n00000\n\nendbarrier\ntransparent\n\nart y\npink\n\nart_eye u\npink white orange\n00000\n01110\n01210\n01210\n00000\n\n=======\nLEGEND\n=======\nwall = wall1 or wall2\nelephantbody = elephantbody_vanilla or elephantbody_anchor or elephantbody_eye or elephantbody_mouth or elephantbody_hair or elephantbody_nose or elephantbody_bs or elephantbody_nose2 or elephant_armhighlight or elephant_armhighlight2 or elephant_reddot or elephantbody_nose3\nR0 = R0_up or R0_down or R0_left or R0_right\nplayer = R0 or elephantbody\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} = endbarrier and goalarea\n=======\nSOUNDS\n=======\n\nsfx0 6951703\nendlevel 96389103\n\n================\nCOLLISIONLAYERS\n================\nBackground\ngoalarea\nMoved\nelephantbody\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\ntargetarea\nendbarrier\nart,art_eye\ntargetstrap\n\n======\nRULES\n======\n\n[stationary player ] -> [ left player ]\n\n[ connector ] -> [ ]\n\n[> elephantbody|wall]->cancel\n\n\n [ > R0 | wall ] -> cancel \n [ > R0 | R1 | wall ] -> cancel \n [ > R0 | R1 | R2 | wall ] -> cancel \n [ > R0 | R1 | R2 | R3 | wall ] -> cancel \n\n\n[ > R0 ] -> [ > R0 > force ]\n\n[ > R0 ] [ RobotPiece | wall ] -> [ > R0 ] [ RobotPiece < force| wall ]\n( [ > player | robotpiece | wall ] -> cancel )\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 ] -> [ RobotPiece Wall ] cancel\n[ > elephantbody | no elephantbody ] -> [ | elephantbody ]\n[RobotPiece elephantbody ] -> cancel\n\nright [elephantbody_anchor | no r0 ] -> cancel\n\n( [ > player | wall ] -> cancel )\n\n[targetarea]->[]\n[targetstrap]->[]\n\nright [||elephantbody_anchor|] -> [ targetarea|targetarea|elephantbody_anchor targetarea|targetarea]\n\ndown [ no targetarea | targetarea | no targetarea | ] -> [targetstrap targetarea | targetarea | targetarea | targetarea ]\n\n[goalarea RobotPiece no targetarea ] -> again sfx0 message AA! You can see his FUCKING DONG!\n\n\n==============\nWINCONDITIONS\n==============\n\nsome elephantbody_anchor on endbarrier\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\nmessage Cripes it just doesn't want to stay in a convenient position today.\n\n\n############################\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..........hh......,,,,},,,,\n#..........e;......,,,,},,,,\n#..........ee~.....,,,,},,,,\n#..........e'......,,,,},,,,\n#..........e.......,,,,},,,,\n#......#...e?......,,,,},,,,\n#..........$e......,,,,},,,,\n#..........$\"......,,,,},,,,\n#..........$e.3....,,,,},,,,\n#..........!e.2....,,,,},,,,\n#..........ee.1....,,,,},,,,\n#..........eea0....,,,,},,,,\n#..........%e&.....,,,,},,,,\n#...........e......,,,,},,,,\n#...........e......,,,,},,,,\n#...........e......,,,,},,,,\n#...........e......,,,,},,,,\n#...........ee.....,,,,},,,,\n#---------------------------\n\n\n\nmessage Time for a nice dip in the pool! Thanks for helping me adjust; that's what friends are for!\n\n\n\n",[1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,2,2,2,1,2,2,2,2,2,2,2,2,3,3,0,0,1],"background wall1: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,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,background wall2:2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,\n1,1,background elephantbody_hair:3,background elephantbody_vanilla:4,4,4,4,4,background elephant_armhighlight:5,5,5,background elephant_armhighlight2:6,background elephantbody_vanilla targetarea targetstrap:7,background elephantbody_vanilla targetarea:8,background elephantbody_nose3 targetarea:9,background targetarea:10,1,1,1,1,1,1,1,1,2,0,1,1,\n1,1,1,1,1,1,1,3,background elephantbody_eye:11,4,background elephantbody_mouth:12,1,background elephantbody_nose2:13,4,background elephant_reddot:14,4,4,7,8,8,8,4,4,4,4,1,1,1,\n1,2,0,1,1,1,1,1,1,1,1,1,1,1,background elephantbody_nose:15,1,1,1,1,1,1,1,background targetarea targetstrap:16,background elephantbody_anchor targetarea:17,background elephantbody_bs targetarea:18,10,1,1,\n1,4,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,background connector_down connector_right r1_right targetarea targetstrap:19,\nbackground connector_up r0_up targetarea:20,10,10,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,background connector_left connector_right r2_right:21,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,background connector_left r3:22,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,2,0,background goalarea:23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,2,0,background endbarrier goalarea:24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,\n24,24,24,24,24,24,24,2,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,\n",2,"1627893997860.5815"] + "SWIMMING TIME!", + ["title SWIMMING TIME!\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\ncolor_palette 5\n\nrun_rules_on_level_start\n\nnorepeat_action\n\nagain_interval 0.2\n( debug )\n( verbose_logging )\n\nbackground_color #323c39\ntext_color #b4f7ff\n\n========\nOBJECTS\n========\n\nWall1 #\n#284580 #3b7ca9\n00000\n01010\n00000\n01010\n00000\n\nwall2 -\nbrown darkbrown\n11111\n00000\n11111\n00000\n11111\n\nBackground .\n#8b856e\n\ngoalarea ,\nlightblue\n\ntargetarea \n#8dc854\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\ntargetstrap\n#8dc854\n00000\n00000\n.....\n.....\n.....\n\nR0_Up 0\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\nR0_Down\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\nR0_Left\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\nR0_Right\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\n\nR1_Up 1\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR1_Down\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR1_Left\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR1_Right\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\n\nR2_Up 2\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR2_Down\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR2_Left\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR2_Right\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR3 3\n#e95db5 #e95db5\n.000.\n01110\n01110\n01110\n.000.\n\nConnector_Up\n#d9a066 #d9a066\n10001\n.000.\n.....\n.....\n.....\n\nConnector_Down\n#d9a066 #d9a066\n.....\n.....\n.....\n.000.\n10001\n\nConnector_Left\n#d9a066 #d9a066\n1....\n00...\n00...\n00...\n1....\n\nConnector_Right\n#d9a066 #d9a066\n....1\n...00\n...00\n...00\n....1\n\nMoved \ntransparent\n\nParent\ntransparent\n\nGrandParent\ntransparent\n\nNewRot\ntransparent\n\nNewRot2\ntransparent\n\nforce \ntransparent\n\nelephantbody_vanilla e\n#e9b886\n\nelephantbody_eye ;\n#e9b886 white brown\n00000\n01110\n01210\n01110\n00000\n\nelephantbody_hair h\nbrown #e9b886\n00000\n00000\n00000\n00000\n01010\n\nelephantbody_bs &\n#a1694e\n\nelephantbody_mouth '\n#e9b886 white red\n00000\n00000\n02220\n02220\n00000\n\nelephantbody_nose ~\n#e9b886 white black\n0....\n00...\n000..\n000..\n000..\n\n\nelephantbody_nose2 ?\n#e9b886 white black\n0....\n00...\n000..\n0000.\n00000\n\nelephantbody_nose3 %\n#e9b886\n00000\n.0000\n..000\n...00\n....0\n\nelephantbody_anchor a\n#d9a066\n\nelephant_armhighlight $\n#e9b886 #a1694e\n00001\n00001\n00001\n00001\n00001\n\nelephant_armhighlight2 !\n#e9b886 #a1694e\n00001\n00001\n10001\n10001\n11111\n\nelephant_reddot \"\n#e9b886 #e95db5\n00010\n00000\n00000\n00000\n00000\n\nendbarrier\ntransparent\n\nart y\npink\n\nart_eye u\npink white orange\n00000\n01110\n01210\n01210\n00000\n\n=======\nLEGEND\n=======\nwall = wall1 or wall2\nelephantbody = elephantbody_vanilla or elephantbody_anchor or elephantbody_eye or elephantbody_mouth or elephantbody_hair or elephantbody_nose or elephantbody_bs or elephantbody_nose2 or elephant_armhighlight or elephant_armhighlight2 or elephant_reddot or elephantbody_nose3\nR0 = R0_up or R0_down or R0_left or R0_right\nplayer = R0 or elephantbody\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} = endbarrier and goalarea\n=======\nSOUNDS\n=======\n\nsfx0 6951703\nendlevel 96389103\n\n================\nCOLLISIONLAYERS\n================\nBackground\ngoalarea\nMoved\nelephantbody\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\ntargetarea\nendbarrier\nart,art_eye\ntargetstrap\n\n======\nRULES\n======\n\n[stationary player ] -> [ left player ]\n\n[ connector ] -> [ ]\n\n[> elephantbody|wall]->cancel\n\n\n [ > R0 | wall ] -> cancel \n [ > R0 | R1 | wall ] -> cancel \n [ > R0 | R1 | R2 | wall ] -> cancel \n [ > R0 | R1 | R2 | R3 | wall ] -> cancel \n\n\n[ > R0 ] -> [ > R0 > force ]\n\n[ > R0 ] [ RobotPiece | wall ] -> [ > R0 ] [ RobotPiece < force| wall ]\n( [ > player | robotpiece | wall ] -> cancel )\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 ] -> [ RobotPiece Wall ] cancel\n[ > elephantbody | no elephantbody ] -> [ | elephantbody ]\n[RobotPiece elephantbody ] -> cancel\n\nright [elephantbody_anchor | no r0 ] -> cancel\n\n( [ > player | wall ] -> cancel )\n\n[targetarea]->[]\n[targetstrap]->[]\n\nright [||elephantbody_anchor|] -> [ targetarea|targetarea|elephantbody_anchor targetarea|targetarea]\n\ndown [ no targetarea | targetarea | no targetarea | ] -> [targetstrap targetarea | targetarea | targetarea | targetarea ]\n\n[goalarea RobotPiece no targetarea ] -> again sfx0 message AA! You can see his FUCKING DONG!\n\n\n==============\nWINCONDITIONS\n==============\n\nsome elephantbody_anchor on endbarrier\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\nmessage Cripes it just doesn't want to stay in a convenient position today.\n\n\n############################\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..........hh......,,,,},,,,\n#..........e;......,,,,},,,,\n#..........ee~.....,,,,},,,,\n#..........e'......,,,,},,,,\n#..........e.......,,,,},,,,\n#......#...e?......,,,,},,,,\n#..........$e......,,,,},,,,\n#..........$\"......,,,,},,,,\n#..........$e.3....,,,,},,,,\n#..........!e.2....,,,,},,,,\n#..........ee.1....,,,,},,,,\n#..........eea0....,,,,},,,,\n#..........%e&.....,,,,},,,,\n#...........e......,,,,},,,,\n#...........e......,,,,},,,,\n#...........e......,,,,},,,,\n#...........e......,,,,},,,,\n#...........ee.....,,,,},,,,\n#---------------------------\n\n\n\nmessage Time for a nice dip in the pool! Thanks for helping me adjust; that's what friends are for!\n\n\n\n", [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 0, 0, 1], "background wall1: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,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,background wall2:2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,\n1,1,background elephantbody_hair:3,background elephantbody_vanilla:4,4,4,4,4,background elephant_armhighlight:5,5,5,background elephant_armhighlight2:6,background elephantbody_vanilla targetarea targetstrap:7,background elephantbody_vanilla targetarea:8,background elephantbody_nose3 targetarea:9,background targetarea:10,1,1,1,1,1,1,1,1,2,0,1,1,\n1,1,1,1,1,1,1,3,background elephantbody_eye:11,4,background elephantbody_mouth:12,1,background elephantbody_nose2:13,4,background elephant_reddot:14,4,4,7,8,8,8,4,4,4,4,1,1,1,\n1,2,0,1,1,1,1,1,1,1,1,1,1,1,background elephantbody_nose:15,1,1,1,1,1,1,1,background targetarea targetstrap:16,background elephantbody_anchor targetarea:17,background elephantbody_bs targetarea:18,10,1,1,\n1,4,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,background connector_down connector_right r1_right targetarea targetstrap:19,\nbackground connector_up r0_up targetarea:20,10,10,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,background connector_left connector_right r2_right:21,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,background connector_left r3:22,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,2,0,background goalarea:23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,2,0,background endbarrier goalarea:24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,\n24,24,24,24,24,24,24,2,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,\n", 2, "1627893997860.5815"] ], [ - "Tugging a trapped pubic hair out from under one's foreskin", - ["title Tugging a trapped pubic hair out from under one's foreskin\nauthor increpare\nhomepage www.increpare.com\n\nnoaction\n\nbackground_color darkblue\n\ntext_color #d9a066\n\n(debug)\n(verbose_logging)\n\n========\nOBJECTS\n========\n\nBackground\n#306082\n\n\nskin\n#d9a066\n\ndarkskin\n#ba7d3f\n\nglans\n#d95763\n\npants\n#3f3f74\n\nselected\nyellow\n\n\nhair_core\nblack black\n.....\n..0..\n.010.\n..0..\n.....\n\nhair_up\nblack black\n.010.\n.010.\n.....\n.....\n.....\n\n\nhair_down\nblack black\n.....\n.....\n.....\n.010.\n.010.\n\nhair_left\nblack black\n.....\n00...\n11...\n00...\n.....\n\n\nhair_right\nblack black\n.....\n...00\n...11\n...00\n.....\n\nhair_root\nblack black\n.000.\n01110\n01110\n01110\n.000.\n\nhair_end \nred\n.....\n.....\n..0..\n.....\n.....\n\nretract\ntransparent\n\ndelve\ntransparent\n\nnewselection_horizontal\npink\n.....\n.....\n.000.\n.....\n.....\n\n\nnewselection_vertical\nlightgreen\n.....\n..0..\n..0..\n..0..\n.....\n\ninside\nred\n\nguide_up\nyellow\n..0..\n.....\n.....\n.....\n.....\n\nguide_down\nyellow\n.....\n.....\n.....\n.....\n..0..\n\nguide_left\nyellow\n.....\n.....\n0....\n.....\n.....\n\nguide_right\nyellow\n.....\n.....\n....0\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\nPlayer = selected\n\n& = inside and guide_down\n\n| = inside and guide_right\n\n{ = hair_core and hair_up and hair_end and inside and guide_down\n\\ = hair_core and hair_down and hair_end and inside and guide_down\n~ = hair_core and hair_up and hair_end and inside and guide_right\n` = hair_core and hair_left and hair_end and inside and guide_down\n¬ = hair_core and hair_right and hair_end and inside and guide_down\n\n} = hair_core and hair_up and hair_down and inside \n\n\n\nz = hair_core and hair_down and inside\nx = hair_core and hair_left and inside\nc = hair_core and hair_right and inside\n\n\nb = hair_core and hair_up and hair_left and inside\nn = hair_core and hair_up and hair_right and inside\n\nm = hair_core and hair_down and hair_left and inside\n: = hair_core and hair_down and hair_right and inside\n\n@ = hair_core and hair_left and hair_right and inside\n\n\n\n\n\n1 = hair_core and hair_up and hair_end\n2 = hair_core and hair_down\n3 = hair_core and hair_left \n4 = hair_core and hair_right\n\n\n5 = hair_core and hair_up and hair_down\n6 = hair_core and hair_up and hair_left\n7 = hair_core and hair_up and hair_right\n\n8 = hair_core and hair_down and hair_left\n9 = hair_core and hair_down and hair_right\n\n0 = hair_core and hair_left and hair_right\n\n\n\nq = hair_root and hair_up \nw = hair_root and hair_down \ne = hair_root and hair_left \nr = hair_root and hair_right \n\n\n\na = hair_core and hair_up and selected\ns = hair_core and hair_down and selected\nd = hair_core and hair_left and selected\nf = hair_core and hair_right and selected\n\n\ng = hair_core and hair_up and hair_down and selected\nh = hair_core and hair_up and hair_left and selected\nj = hair_core and hair_up and hair_right and selected\n\nk = hair_core and hair_down and hair_left and selected\nl = hair_core and hair_down and hair_right and selected\n\n; = hair_core and hair_left and hair_right and selected\n\n! = hair_core\n\n/ = hair_end and hair_down and hair_core \n\nhair_connection = hair_up or hair_down or hair_left or hair_right\n\nnewselection = newselection_horizontal or newselection_vertical\n\nguide = guide_up or guide_down or guide_left or guide_right\nwall = skin or glans or pants or darkskin\n\n# = skin\n% = darkskin\n\n\" = pants\n£ = glans\n\n=======\nSOUNDS\n=======\nstartlevel 3474903\nendlevel 99809305\nsfx0 22765907 (yank)\ncancel 68802704\nsfx1 53944706 (change selection)\n================\nCOLLISIONLAYERS\n================\n\nhair_end\nretract\ndelve\nguide\n\n\nnewselection_horizontal\nnewselection_vertical\n\nBackground\ninside\nselected\nWall\nhair_core, hair_root\nhair_up\nhair_down\nhair_left\nhair_right\n\n======\nRULES\n======\n\n[ down selected inside ] -> cancel\n[ left selected inside ] -> cancel\n[ right selected inside ] -> cancel\n\n\n [action player ] [hair_core no hair_connection | inside ] -> [action player ] [hair_core inside | inside ]\nup [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_up hair_core | hair_down ]\ndown [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_down hair_core | hair_up ]\nleft [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_left hair_core | hair_right ]\nright [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_right hair_core | hair_left ]\n\n[ down selected hair_end] -> cancel\n[ down selected hair_root] -> cancel\n\n(code for selected segment here)\n\ndown [ no selected | up selected | up selected ] -> [ no selected | selected newselection_horizontal | up selected ] sfx1\nup [ no selected | down selected | down selected ] -> [ no selected | selected newselection_horizontal | down selected ] sfx1\n\nleft [ no selected | right selected | right selected ] -> [ no selected | selected newselection_vertical | right selected ] sfx1\nright [ no selected | left selected | left selected ] -> [ no selected | selected newselection_vertical | left selected ] sfx1\n\n\n(if player is moving into an unconnected hair, then nope out)\nup [ > selected | hair_core no hair_down ] -> cancel\ndown [ > selected | hair_core no hair_up ] -> cancel\nleft [ > selected | hair_core no hair_right ] -> cancel\nright [ > selected | hair_core no hair_left ] -> cancel\n\n\n(removing existing selection)\n[ newselection ] [ selected ] -> [ newselection ] [ ]\n\n(grow new selection)\nright [ newselection_horizontal hair_right | ] -> [ newselection_horizontal hair_right | newselection_horizontal ]\nleft [ newselection_horizontal hair_left | ] -> [ newselection_horizontal hair_left | newselection_horizontal ]\n\nup [ newselection_vertical hair_up | ] -> [ newselection_vertical hair_up | newselection_vertical ]\ndown [ newselection_vertical hair_down | ] -> [ newselection_vertical hair_down | newselection_vertical ]\n\n\n\n[newselection]->[selected]\n\n\n\n\n\n(if player is reducing a lump, then remove some bits in the way )\n\t(either it's straight or it's bending away)\nleft [ > selected hair_left | hair_left hair_right hair_core ] -> [ > selected hair_left delve | ]\nleft [ > selected hair_left | hair_up hair_right hair_core ] -> [ > selected hair_up delve| ]\nleft [ > selected hair_left | hair_down hair_right hair_core ] -> [ > selected hair_down delve| ]\n\nright [ > selected hair_right | hair_right hair_left hair_core ] -> [ > selected hair_right delve | ]\nright [ > selected hair_right | hair_up hair_left hair_core ] -> [ > selected hair_up delve| ]\nright [ > selected hair_right | hair_down hair_left hair_core ] -> [ > selected hair_down delve| ]\n\n\n\ndown [ > selected hair_down | hair_down hair_up hair_core ] -> [ > selected hair_down delve | ]\ndown [ > selected hair_down | hair_right hair_up hair_core ] -> [ > selected hair_right delve| ]\ndown [ > selected hair_down | hair_left hair_up hair_core ] -> [ > selected hair_left delve| ]\n\n\n\nup [ > selected hair_up | hair_up hair_down hair_core ] -> [ > selected hair_up delve | ]\nup [ > selected hair_up | hair_right hair_down hair_core ] -> [ > selected hair_right delve| ]\nup [ > selected hair_up | hair_left hair_down hair_core ] -> [ > selected hair_left delve| ]\n\n(moves rest of hair with selection)\n[ > selected hair_connection hair_core ] -> [ > player > hair_connection > hair_core ]\n\n\n(if there's a gap, fill the gap)\nlate right [ hair_right | no hair_left | hair_left selected ] -> [ hair_right | hair_left hair_core hair_right retract| hair_left selected ]\nlate left [ hair_left | no hair_right | hair_right selected ] -> [ hair_left | hair_right hair_core hair_left retract| hair_right selected ]\nlate up [ hair_up | no hair_down | hair_down selected ] -> [ hair_up | hair_down hair_core hair_up retract| hair_down selected ]\nlate down [ hair_down | no hair_up | hair_up selected ] -> [ hair_down | hair_up hair_core hair_down retract| hair_up selected ]\n\n\nlate down [ retract ] [ hair_core hair_down | hair_core hair_up hair_end ] -> [] [ hair_core hair_end guide_down |] sfx0\n+late up [ retract ] [ hair_core hair_up | hair_core hair_down hair_end ] -> [] [ hair_core hair_end guide_up |] sfx0\n+late left [ retract ] [ hair_core hair_left | hair_core hair_right hair_end ] -> [] [ hair_core hair_end guide_left |] sfx0\n+late right [ retract ] [ hair_core hair_right | hair_core hair_left hair_end ] -> [] [ hair_core hair_end guide_right |] sfx0\n\nlate up [ delve ] [ hair_core hair_end guide_up | ] -> [] [ hair_core hair_up | hair_down hair_core hair_end] sfx0\n+late down [ delve ] [ hair_core hair_end guide_down | ] -> [] [ hair_core hair_down | hair_up hair_core hair_end] sfx0\n+late left [ delve ] [ hair_core hair_end guide_left | ] -> [] [ hair_core hair_left | hair_right hair_core hair_end] sfx0\n+late right [ delve ] [ hair_core hair_end guide_right | ] -> [] [ hair_core hair_right | hair_left hair_core hair_end] sfx0\n\nlate [hair_core wall ] -> cancel\n\n\n(Expand selection)\nlate up [ hair_up no selected | selected | selected ] -> [ hair_up selected | selected |selected ]\nlate down [ hair_down no selected | selected | selected ] -> [ hair_down selected | selected |selected ]\nlate left [ hair_left no selected | selected | selected ] -> [ hair_left selected | selected |selected ]\nlate right [ hair_right no selected | selected | selected ] -> [ hair_right selected | selected |selected ]\n\nlate [selected wall]->cancel\n\n\n==============\nWINCONDITIONS\n==============\n no hair_core on inside \n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"........\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"....908.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"....5.5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".9006.5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".5....5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".5...96.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".j;k.5..\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"...5.708............\"\"\"\"\"\"\"\n\"\".....5...5£££.£££...........\"\n\"..####q#.#}£££££££&#.######...\n\".#######.#}£££££££&#.#######..\n..#######.#}£££££££&#.#######..\n.########.#}£££££££&#.########.\n.########.#}£££££££&#.########.\n.#######..#}£££££££&#.########.\n.#######.#\\}£££££££&#.########.\n.#######.#}nm#####&&#.########.\n.#######.#n@b#####&&#.########.\n.#######..##########..########.\n.########..#########.#########.\n\nmessage Unnnh! So great!\n\nmessage Level 2 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"9000008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"5.....5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"5.....5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"7k.9006\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"9h.7008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"5908906\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"76.55..\"......\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"98.55...££.££..\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"...5706708£££££££..........\"\"\"\n\"\"..##q##.##}£££££££&#.######..\"\"\n\"\".#####.#:@b£££££££&#.#######.\"\"\n\"..#####.#n@m£££££££&#.#######..\"\n\".######.#:@b£££££££&#.########.\"\n\".######.#n@m£££££££&#.########.\"\n\".######..#:b£££££££&#.########.\"\n\".#######.#n@`#####&&#.########.\"\n\".#######..##########..########.\"\n\nmessage I feel so good!\n\nmessage Level 3 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"90008....908\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5...5....5.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5...5908.5.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"708.55.5.5.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"..5965.706.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"9065.7008..5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5..5....5.96\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5..7008.5.5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5.l;k.5.5.5..............\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"706.5.706.5.£££££.££££££...........\"\"\"\n\"\"..###q##.##}££££££££££££££|#.######..\"\"\n\"\".######.#:@b££££££££££££££|#.#######..\"\n\"..######.#n@m££££££££££££££|#.#######..\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######..##~||##########|||#.########.\"\n\".#########..################.#########.\"\n\n\nmessage I live for moments like this!\n\n\nmessage Level 4 of 5\n\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"900000008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"789890085\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".76769855\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".90085765\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".5.965906\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".78785708\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"..59678.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".lh7006.5......\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"..5.....96££.££.........\"\"\"\n\"\"..#q###.#nm£££££&#.#####..\"\"\n\"\".######.#:b£££££&#.######..\"\n\"..######.#nm£££££&#.######..\"\n\".#######.#:b£££££&#.#######.\"\n\".#######.#n`&###&&#.#######.\"\n\".#######..########..#######.\"\n\".########..######..########.\"\n\".#########.######.#########.\"\n\nmessage What a rush!\n\nmessage Level 5 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"...9008900008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"...5..55....5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"9006.965..906\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"789085.5985..\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\".76.5706576..\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\".lk.5.90698..........\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"...5706.70065££££.££££...........\"\"\"\n\"\"..##q#####.##}£££££££££&#.#######..\"\"\n\"\".########.#:@b£££££££££&#.########..\"\n\"..########.#n@m£££££££££&#.#########.\"\n\".#########.#:@b£££££££££&#.#########.\"\n\".#########.#n@m£££££££££&#.#########.\"\n\".#########.#:@b£££££££££&#.#########.\"\n\".#########.#n@m£££££££££&#.#########.\"\n\".#########.#:@b£££££££££&#.#########.\"\n\".#########.#~|||#######&&#.#########.\"\n\".##########.#############.##########.\"\n\nmessage Congratulations! You are pubic hair yanking champion of the universe!\n(\n###########\n#900000008#\n#789890085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########nm#\n########:b#\n########nm#\n########:b#\n########{##\n###########\n###########\n\n\nmessage Level 1\n###########\n#........##\n#....908.##\n#....5.5.##\n#.9006.5.##\n#.5....5.##\n#.5...96.##\n#.j;k.5..##\n#...5.708##\n#...5...5##\n####q###}##\n########}##\n########}##\n########}##\n########}##\n########}##\n########}##\n########{##\n########&##\n########&##\n###########\n\nmessage Level 2\n###########\n###########\n##l;;;;;k##\n##5.....5##\n##5.....5##\n##78.9006##\n##96.7008##\n##5908906##\n##76.55..##\n##98.55..##\n##5706708##\n##q#####}##\n########}##\n########}##\n########}##\n########{##\n########&##\n########&##\n###########\n\nmessage Level 3\n###########\n#900000008#\n#789890085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########nm#\n########:b#\n########nm#\n########:b#\n########{##\n###########\n###########\n\n\nmessage Level 4\n##############\n#90008....908#\n#5...5....5.5#\n#5...5908.5.5#\n#708.55.5.5.5#\n#..5965.706.5#\n#9065.7008..5#\n#5..5....5.96#\n#5..7008.5.5##\n#5.l;k.5.5.5##\n#706.5.706.5##\n#####q#####}##\n##########:b&#\n##########n@m#\n##########:@b#\n##########n@m#\n##########:@b#\n##########n@m#\n##########:@b#\n##########n@m#\n##########:@b#\n##########n@m#\n###########¬b#\n##############\n\n(hard)\nmessage Level 5\n###############\n#...9008900008#\n#...5..55....5#\n#9006.965..906#\n#789085.5985..#\n#.76.5706576..#\n#.lk.5.90698..#\n#.5706.70065..#\n##q########}###\n###########}:m#\n###########}}}#\n###########nb}#\n###########:m}#\n###########}nb#\n###########n@m#\n###########:@b#\n###########~||#\n###############\n\n(\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#...........##\n#...........##\n#..../......##\n#####q#####&##\n##########&&&#\n##########&&&#\n##########&&&#\n##########&&&#\n##############\n\n###########\n#900000008#\n#789890085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########nm#\n########:b#\n########nm#\n########cb#\n###########\n\n\n###########\n#900000008#\n#789890085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########}##\n########}##\n########}##\n########1##\n###########\n\n\n###############\n#...9008900008#\n#...5..55....5#\n#9006.965..906#\n#789085.5985..#\n#.76.5706576..#\n#.lk.5.90698..#\n#.5706.70065..#\n##q########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########{###\n###########&###\n###########&###\n###############\n###############\n\n\n\n###########\n###########\n##l;;;;;k##\n##5.....5##\n##5.....5##\n##5.....5##\n##5.....5##\n##5908906##\n##76.55..##\n##98.55..##\n##5706708##\n##q#####}##\n########}##\n########}##\n########}##\n########{##\n###########\n\n\n########### \n#.........#\n#...9008..#\n#...5..5..#\n#...7896..#\n#....55...#\n#.lk.55...#\n#.5706708.#\n##q#####5##\n########5##\n########5##\n########1##\n########.##\n###########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.lk......#\n#.5{!.....#\n##q#####.##\n########.##\n########.##\n########.##\n########.##\n###########\n\n###########\n#.........#\n#..9008...#\n#..7k.5...#\n#...g.5...#\n#...g.708.#\n#.90h...5.#\n#.5.....5.#\n##q#####}##\n########}##\n########}##\n########}##\n########{##\n###########\n))\n",[1,3,2,1,0,2,2,3,0,3,1,0,0,0,1,0,3,3,1,1,3,2,2,1,3,3,2,1,3,1,3,2,3,2,0,3,3,2,1,0,1,3,1,1],"background pants: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,background:1,1,1,1,\n1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,background skin:2,2,2,2,2,2,2,2,2,2,0,background hair_core hair_down hair_right:3,background hair_core hair_right hair_up:4,1,1,1,1,1,3,background hair_core hair_down hair_up:5,\n4,1,2,2,2,2,2,2,2,2,2,2,2,2,0,background hair_core hair_left hair_right:6,background hair_core hair_down hair_left:7,5,5,5,5,5,background hair_core hair_left hair_up:8,1,6,2,2,2,2,2,2,2,2,2,2,2,2,2,0,background hair_core hair_down hair_left selected:9,background hair_core hair_down hair_up selected:10,\n10,10,10,10,10,background hair_core hair_right hair_up selected:11,1,6,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,1,1,1,1,6,3,8,2,2,2,2,2,2,2,2,2,\n2,2,2,2,0,1,1,1,1,1,1,1,6,7,5,background hair_root hair_up:12,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,3,5,5,4,1,6,1,1,2,2,\n2,2,2,2,2,2,2,2,2,2,2,0,1,1,6,1,1,6,1,7,5,4,2,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,7,5,4,\n6,1,1,1,6,1,2,2,2,2,2,2,2,2,2,2,1,2,0,1,1,1,1,6,6,1,1,1,6,2,background hair_core hair_down hair_right inside:13,background hair_core hair_right hair_up inside:14,13,14,13,14,13,14,13,14,2,\n1,0,3,5,5,5,8,7,5,5,5,8,2,background hair_core hair_left hair_right inside:15,15,15,15,15,15,15,15,15,15,2,1,0,6,1,1,1,1,1,3,5,5,5,background hair_core hair_down hair_up inside:16,background hair_core hair_left hair_up inside:17,background hair_core hair_down hair_left inside:18,17,18,\n17,18,17,18,17,18,14,2,0,7,5,5,5,5,5,8,1,1,1,background glans:19,19,19,19,19,19,19,19,19,19,19,15,2,0,0,0,0,0,0,0,0,0,\n1,19,19,19,19,19,19,19,19,19,19,19,19,background guide_right hair_core hair_end hair_left inside:20,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,\n0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,\n19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,1,19,\n19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,\n0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,\n2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,\n19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,background guide_right inside:21,2,0,0,0,0,0,0,0,0,\n0,1,1,19,19,19,19,19,19,19,19,19,19,19,21,2,0,0,0,0,0,0,0,0,0,0,1,21,21,21,21,21,21,21,21,21,21,21,21,2,0,\n0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,\n2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,\n0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,\n2,2,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,1,2,2,\n2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,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,0,0,0,0,0,0,0,\n",7,"1627894024137.8354"] + "(NSFW / censored) Tugging a trapped XXX XXX out from under one's XXX", + ["title Tugging a trapped XXX XXX out from under one's XXX\nauthor increpare\nhomepage www.increpare.com\n\nnoaction\n\nbackground_color darkblue\n\ntext_color #ffffff\n\n(debug)\n(verbose_logging)\n\n========\nOBJECTS\n========\n\nBackground\n#ffffff\n\n\nskin\n#ffffff\n\ndarkskin\n#ffffff\n\nglans\n#ffffff\n\npants\n#ffffff\n\nselected\nyellow\n\n\nhair_core\nblack black\n00000\n00000\n00000\n00000\n00000\n\nhair_up\nblack black\n00000\n00000\n00000\n00000\n00000\n\n\nhair_down\nblack black\n00000\n00000\n00000\n00000\n00000\n\nhair_left\nblack black\n00000\n00000\n00000\n00000\n00000\n\n\nhair_right\nblack black\n00000\n00000\n00000\n00000\n00000\n\nhair_root\nblack black\n00000\n00000\n00000\n00000\n00000\n\nhair_end \nred\n00000\n00000\n00000\n00000\n00000\n\nretract\ntransparent\n\ndelve\ntransparent\n\nnewselection_horizontal\npink\n00000\n00000\n00000\n00000\n00000\n\n\nnewselection_vertical\nlightgreen\n00000\n00000\n00000\n00000\n00000\n\ninside\nred\n\nguide_up\nyellow\n00000\n00000\n00000\n00000\n00000\n\nguide_down\nyellow\n00000\n00000\n00000\n00000\n00000\n\nguide_left\nyellow\n00000\n00000\n00000\n00000\n00000\n\nguide_right\nyellow\n00000\n00000\n00000\n00000\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\nPlayer = selected\n\n& = inside and guide_down\n\n| = inside and guide_right\n\n{ = hair_core and hair_up and hair_end and inside and guide_down\n\\ = hair_core and hair_down and hair_end and inside and guide_down\n~ = hair_core and hair_up and hair_end and inside and guide_right\n` = hair_core and hair_left and hair_end and inside and guide_down\n¬ = hair_core and hair_right and hair_end and inside and guide_down\n\n} = hair_core and hair_up and hair_down and inside \n\n\n\nz = hair_core and hair_down and inside\nx = hair_core and hair_left and inside\nc = hair_core and hair_right and inside\n\n\nb = hair_core and hair_up and hair_left and inside\nn = hair_core and hair_up and hair_right and inside\n\nm = hair_core and hair_down and hair_left and inside\n: = hair_core and hair_down and hair_right and inside\n\n@ = hair_core and hair_left and hair_right and inside\n\n\n\n\n\n1 = hair_core and hair_up and hair_end\n2 = hair_core and hair_down\n3 = hair_core and hair_left \n4 = hair_core and hair_right\n\n\n5 = hair_core and hair_up and hair_down\n6 = hair_core and hair_up and hair_left\n7 = hair_core and hair_up and hair_right\n\n8 = hair_core and hair_down and hair_left\n9 = hair_core and hair_down and hair_right\n\n0 = hair_core and hair_left and hair_right\n\n\n\nq = hair_root and hair_up \nw = hair_root and hair_down \ne = hair_root and hair_left \nr = hair_root and hair_right \n\n\n\na = hair_core and hair_up and selected\ns = hair_core and hair_down and selected\nd = hair_core and hair_left and selected\nf = hair_core and hair_right and selected\n\n\ng = hair_core and hair_up and hair_down and selected\nh = hair_core and hair_up and hair_left and selected\nj = hair_core and hair_up and hair_right and selected\n\nk = hair_core and hair_down and hair_left and selected\nl = hair_core and hair_down and hair_right and selected\n\n; = hair_core and hair_left and hair_right and selected\n\n! = hair_core\n\n/ = hair_end and hair_down and hair_core \n\nhair_connection = hair_up or hair_down or hair_left or hair_right\n\nnewselection = newselection_horizontal or newselection_vertical\n\nguide = guide_up or guide_down or guide_left or guide_right\nwall = skin or glans or pants or darkskin\n\n# = skin\n% = darkskin\n\n\" = pants\n£ = glans\n\n=======\nSOUNDS\n=======\nstartlevel 3474903\nendlevel 99809305\nsfx0 22765907 (yank)\ncancel 68802704\nsfx1 53944706 (change selection)\n================\nCOLLISIONLAYERS\n================\n\nhair_end\nretract\ndelve\nguide\n\n\nnewselection_horizontal\nnewselection_vertical\n\nBackground\ninside\nselected\nWall\nhair_core, hair_root\nhair_up\nhair_down\nhair_left\nhair_right\n\n======\nRULES\n======\n\n[ down selected inside ] -> cancel\n[ left selected inside ] -> cancel\n[ right selected inside ] -> cancel\n\n\n [action player ] [hair_core no hair_connection | inside ] -> [action player ] [hair_core inside | inside ]\nup [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_up hair_core | hair_down ]\ndown [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_down hair_core | hair_up ]\nleft [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_left hair_core | hair_right ]\nright [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_right hair_core | hair_left ]\n\n[ down selected hair_end] -> cancel\n[ down selected hair_root] -> cancel\n\n(code for selected segment here)\n\ndown [ no selected | up selected | up selected ] -> [ no selected | selected newselection_horizontal | up selected ] sfx1\nup [ no selected | down selected | down selected ] -> [ no selected | selected newselection_horizontal | down selected ] sfx1\n\nleft [ no selected | right selected | right selected ] -> [ no selected | selected newselection_vertical | right selected ] sfx1\nright [ no selected | left selected | left selected ] -> [ no selected | selected newselection_vertical | left selected ] sfx1\n\n\n(if player is moving into an unconnected hair, then nope out)\nup [ > selected | hair_core no hair_down ] -> cancel\ndown [ > selected | hair_core no hair_up ] -> cancel\nleft [ > selected | hair_core no hair_right ] -> cancel\nright [ > selected | hair_core no hair_left ] -> cancel\n\n\n(removing existing selection)\n[ newselection ] [ selected ] -> [ newselection ] [ ]\n\n(grow new selection)\nright [ newselection_horizontal hair_right | ] -> [ newselection_horizontal hair_right | newselection_horizontal ]\nleft [ newselection_horizontal hair_left | ] -> [ newselection_horizontal hair_left | newselection_horizontal ]\n\nup [ newselection_vertical hair_up | ] -> [ newselection_vertical hair_up | newselection_vertical ]\ndown [ newselection_vertical hair_down | ] -> [ newselection_vertical hair_down | newselection_vertical ]\n\n\n\n[newselection]->[selected]\n\n\n\n\n\n(if player is reducing a lump, then remove some bits in the way )\n\t(either it's straight or it's bending away)\nleft [ > selected hair_left | hair_left hair_right hair_core ] -> [ > selected hair_left delve | ]\nleft [ > selected hair_left | hair_up hair_right hair_core ] -> [ > selected hair_up delve| ]\nleft [ > selected hair_left | hair_down hair_right hair_core ] -> [ > selected hair_down delve| ]\n\nright [ > selected hair_right | hair_right hair_left hair_core ] -> [ > selected hair_right delve | ]\nright [ > selected hair_right | hair_up hair_left hair_core ] -> [ > selected hair_up delve| ]\nright [ > selected hair_right | hair_down hair_left hair_core ] -> [ > selected hair_down delve| ]\n\n\n\ndown [ > selected hair_down | hair_down hair_up hair_core ] -> [ > selected hair_down delve | ]\ndown [ > selected hair_down | hair_right hair_up hair_core ] -> [ > selected hair_right delve| ]\ndown [ > selected hair_down | hair_left hair_up hair_core ] -> [ > selected hair_left delve| ]\n\n\n\nup [ > selected hair_up | hair_up hair_down hair_core ] -> [ > selected hair_up delve | ]\nup [ > selected hair_up | hair_right hair_down hair_core ] -> [ > selected hair_right delve| ]\nup [ > selected hair_up | hair_left hair_down hair_core ] -> [ > selected hair_left delve| ]\n\n(moves rest of hair with selection)\n[ > selected hair_connection hair_core ] -> [ > player > hair_connection > hair_core ]\n\n\n(if there's a gap, fill the gap)\nlate right [ hair_right | no hair_left | hair_left selected ] -> [ hair_right | hair_left hair_core hair_right retract| hair_left selected ]\nlate left [ hair_left | no hair_right | hair_right selected ] -> [ hair_left | hair_right hair_core hair_left retract| hair_right selected ]\nlate up [ hair_up | no hair_down | hair_down selected ] -> [ hair_up | hair_down hair_core hair_up retract| hair_down selected ]\nlate down [ hair_down | no hair_up | hair_up selected ] -> [ hair_down | hair_up hair_core hair_down retract| hair_up selected ]\n\n\nlate down [ retract ] [ hair_core hair_down | hair_core hair_up hair_end ] -> [] [ hair_core hair_end guide_down |] sfx0\n+late up [ retract ] [ hair_core hair_up | hair_core hair_down hair_end ] -> [] [ hair_core hair_end guide_up |] sfx0\n+late left [ retract ] [ hair_core hair_left | hair_core hair_right hair_end ] -> [] [ hair_core hair_end guide_left |] sfx0\n+late right [ retract ] [ hair_core hair_right | hair_core hair_left hair_end ] -> [] [ hair_core hair_end guide_right |] sfx0\n\nlate up [ delve ] [ hair_core hair_end guide_up | ] -> [] [ hair_core hair_up | hair_down hair_core hair_end] sfx0\n+late down [ delve ] [ hair_core hair_end guide_down | ] -> [] [ hair_core hair_down | hair_up hair_core hair_end] sfx0\n+late left [ delve ] [ hair_core hair_end guide_left | ] -> [] [ hair_core hair_left | hair_right hair_core hair_end] sfx0\n+late right [ delve ] [ hair_core hair_end guide_right | ] -> [] [ hair_core hair_right | hair_left hair_core hair_end] sfx0\n\nlate [hair_core wall ] -> cancel\n\n\n(Expand selection)\nlate up [ hair_up no selected | selected | selected ] -> [ hair_up selected | selected |selected ]\nlate down [ hair_down no selected | selected | selected ] -> [ hair_down selected | selected |selected ]\nlate left [ hair_left no selected | selected | selected ] -> [ hair_left selected | selected |selected ]\nlate right [ hair_right no selected | selected | selected ] -> [ hair_right selected | selected |selected ]\n\nlate [selected wall]->cancel\n\n\n==============\nWINCONDITIONS\n==============\n no hair_core on inside \n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"........\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"....908.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"....5.5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".9006.5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".5....5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".5...96.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".j;k.5..\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"...5.708............\"\"\"\"\"\"\"\n\"\".....5...5£££.£££...........\"\n\"..####q#.#}£££££££&#.######...\n\".#######.#}£££££££&#.#######..\n..#######.#}£££££££&#.#######..\n.########.#}£££££££&#.########.\n.########.#}£££££££&#.########.\n.#######..#}£££££££&#.########.\n.#######.#\\}£££££££&#.########.\n.#######.#}nm#####&&#.########.\n.#######.#n@b#####&&#.########.\n.#######..##########..########.\n.########..#########.#########.\n\nmessage Unnnh! So great!\n\nmessage Level 2 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"9000008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"5.....5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"5.....5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"7k.9006\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"9h.7008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"5908906\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"76.55..\"......\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"98.55...££.££..\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"...5706708£££££££..........\"\"\"\n\"\"..##q##.##}£££££££&#.######..\"\"\n\"\".#####.#:@b£££££££&#.#######.\"\"\n\"..#####.#n@m£££££££&#.#######..\"\n\".######.#:@b£££££££&#.########.\"\n\".######.#n@m£££££££&#.########.\"\n\".######..#:b£££££££&#.########.\"\n\".#######.#n@`#####&&#.########.\"\n\".#######..##########..########.\"\n\nmessage I feel so good!\n\nmessage Level 3 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"90008....908\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5...5....5.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5...5908.5.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"708.55.5.5.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"..5965.706.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"9065.7008..5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5..5....5.96\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5..7008.5.5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5.l;k.5.5.5..............\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"706.5.706.5.£££££.££££££...........\"\"\"\n\"\"..###q##.##}££££££££££££££|#.######..\"\"\n\"\".######.#:@b££££££££££££££|#.#######..\"\n\"..######.#n@m££££££££££££££|#.#######..\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######..##~||##########|||#.########.\"\n\".#########..################.#########.\"\n\n\nmessage I live for moments like this!\n\n\nmessage Level 4 of 5\n\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"900000008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"789890085\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".76769855\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".90085765\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".5.965906\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".78785708\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"..59678.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".lh7006.5......\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"..5.....96££.££.........\"\"\"\n\"\"..#q###.#nm£££££&#.#####..\"\"\n\"\".######.#:b£££££&#.######..\"\n\"..######.#nm£££££&#.######..\"\n\".#######.#:b£££££&#.#######.\"\n\".#######.#n`&###&&#.#######.\"\n\".#######..########..#######.\"\n\".########..######..########.\"\n\".#########.######.#########.\"\n\nmessage What a rush!\n\nmessage Level 5 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"...9008900008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"...5..55....5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"9006.965..906\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"789085.5985..\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\".76.5706576..\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\".lk.5.90698..........\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"...5706.70065££££.££££...........\"\"\"\n\"\"..##q#####.##}£££££££££&#.#######..\"\"\n\"\".########.#:@b£££££££££&#.########..\"\n\"..########.#n@m£££££££££&#.#########.\"\n\".#########.#:@b£££££££££&#.#########.\"\n\".#########.#n@m£££££££££&#.#########.\"\n\".#########.#:@b£££££££££&#.#########.\"\n\".#########.#n@m£££££££££&#.#########.\"\n\".#########.#:@b£££££££££&#.#########.\"\n\".#########.#~|||#######&&#.#########.\"\n\".##########.#############.##########.\"\n\nmessage Congratulations! You are XXX XXX yanking champion of the universe!\n(\n###########\n#ffffff008#\n#ffffff085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########nm#\n########:b#\n########nm#\n########:b#\n########{##\n###########\n###########\n\n\nmessage Level 1\n###########\n#........##\n#....908.##\n#....5.5.##\n#.9006.5.##\n#.5....5.##\n#.5...96.##\n#.j;k.5..##\n#...5.708##\n#...5...5##\n####q###}##\n########}##\n########}##\n########}##\n########}##\n########}##\n########}##\n########{##\n########&##\n########&##\n###########\n\nmessage Level 2\n###########\n###########\n##l;;;;;k##\n##5.....5##\n##5.....5##\n##78.9006##\n##96.7008##\n##ffffff6##\n##76.55..##\n##98.55..##\n##ffffff8##\n##q#####}##\n########}##\n########}##\n########}##\n########{##\n########&##\n########&##\n###########\n\nmessage Level 3\n###########\n#ffffff008#\n#ffffff085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########nm#\n########:b#\n########nm#\n########:b#\n########{##\n###########\n###########\n\n\nmessage Level 4\n##############\n#90008....908#\n#5...5....5.5#\n#5...5908.5.5#\n#708.55.5.5.5#\n#..5965.706.5#\n#9065.7008..5#\n#5..5....5.96#\n#5..7008.5.5##\n#5.l;k.5.5.5##\n#706.5.706.5##\n#####q#####}##\n##########:b&#\n##########n@m#\n##########:@b#\n##########n@m#\n##########:@b#\n##########n@m#\n##########:@b#\n##########n@m#\n##########:@b#\n##########n@m#\n###########¬b#\n##############\n\n(hard)\nmessage Level 5\n###############\n#...9008900008#\n#...5..55....5#\n#9006.965..906#\n#ffffff.5985..#\n#.76.5706576..#\n#.lk.5.90698..#\n#.5706.70065..#\n##q########}###\n###########}:m#\n###########}}}#\n###########nb}#\n###########:m}#\n###########}nb#\n###########n@m#\n###########:@b#\n###########~||#\n###############\n\n(\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#...........##\n#...........##\n#..../......##\n#####q#####&##\n##########&&&#\n##########&&&#\n##########&&&#\n##########&&&#\n##############\n\n###########\n#ffffff008#\n#ffffff085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########nm#\n########:b#\n########nm#\n########cb#\n###########\n\n\n###########\n#ffffff008#\n#ffffff085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########}##\n########}##\n########}##\n########1##\n###########\n\n\n###############\n#...9008900008#\n#...5..55....5#\n#9006.965..906#\n#ffffff.5985..#\n#.76.5706576..#\n#.lk.5.90698..#\n#.5706.70065..#\n##q########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########{###\n###########&###\n###########&###\n###############\n###############\n\n\n\n###########\n###########\n##l;;;;;k##\n##5.....5##\n##5.....5##\n##5.....5##\n##5.....5##\n##ffffff6##\n##76.55..##\n##98.55..##\n##ffffff8##\n##q#####}##\n########}##\n########}##\n########}##\n########{##\n###########\n\n\n########### \n#.........#\n#...9008..#\n#...5..5..#\n#...7896..#\n#....55...#\n#.lk.55...#\n#.5706708.#\n##q#####5##\n########5##\n########5##\n########1##\n########.##\n###########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.lk......#\n#.5{!.....#\n##q#####.##\n########.##\n########.##\n########.##\n########.##\n###########\n\n###########\n#.........#\n#..9008...#\n#..7k.5...#\n#...g.5...#\n#...g.708.#\n#.90h...5.#\n#.5.....5.#\n##q#####}##\n########}##\n########}##\n########}##\n########{##\n###########\n))\n", [1, 3, 2, 1, 0, 2, 2, 3, 0, 3, 1, 0, 0, 0, 1, 0, 3, 3, 1, 1, 3, 2, 2, 1, 3, 3, 2, 1, 3, 1, 3, 2, 3, 2, 0, 3, 3, 2, 1, 0, 1, 3, 1, 1], "background pants: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,background:1,1,1,1,\n1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,background skin:2,2,2,2,2,2,2,2,2,2,0,background hair_core hair_down hair_right:3,background hair_core hair_right hair_up:4,1,1,1,1,1,3,background hair_core hair_down hair_up:5,\n4,1,2,2,2,2,2,2,2,2,2,2,2,2,0,background hair_core hair_left hair_right:6,background hair_core hair_down hair_left:7,5,5,5,5,5,background hair_core hair_left hair_up:8,1,6,2,2,2,2,2,2,2,2,2,2,2,2,2,0,background hair_core hair_down hair_left selected:9,background hair_core hair_down hair_up selected:10,\n10,10,10,10,10,background hair_core hair_right hair_up selected:11,1,6,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,1,1,1,1,6,3,8,2,2,2,2,2,2,2,2,2,\n2,2,2,2,0,1,1,1,1,1,1,1,6,7,5,background hair_root hair_up:12,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,3,5,5,4,1,6,1,1,2,2,\n2,2,2,2,2,2,2,2,2,2,2,0,1,1,6,1,1,6,1,7,5,4,2,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,7,5,4,\n6,1,1,1,6,1,2,2,2,2,2,2,2,2,2,2,1,2,0,1,1,1,1,6,6,1,1,1,6,2,background hair_core hair_down hair_right inside:13,background hair_core hair_right hair_up inside:14,13,14,13,14,13,14,13,14,2,\n1,0,3,5,5,5,8,7,5,5,5,8,2,background hair_core hair_left hair_right inside:15,15,15,15,15,15,15,15,15,15,2,1,0,6,1,1,1,1,1,3,5,5,5,background hair_core hair_down hair_up inside:16,background hair_core hair_left hair_up inside:17,background hair_core hair_down hair_left inside:18,17,18,\n17,18,17,18,17,18,14,2,0,7,5,5,5,5,5,8,1,1,1,background glans:19,19,19,19,19,19,19,19,19,19,19,15,2,0,0,0,0,0,0,0,0,0,\n1,19,19,19,19,19,19,19,19,19,19,19,19,background guide_right hair_core hair_end hair_left inside:20,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,\n0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,\n19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,1,19,\n19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,\n0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,\n2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,\n19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,background guide_right inside:21,2,0,0,0,0,0,0,0,0,\n0,1,1,19,19,19,19,19,19,19,19,19,19,19,21,2,0,0,0,0,0,0,0,0,0,0,1,21,21,21,21,21,21,21,21,21,21,21,21,2,0,\n0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,\n2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,\n0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,\n2,2,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,1,2,2,\n2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,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,0,0,0,0,0,0,0,\n", 7, "1627894024137.8354"] ], [ - "REALTIME DOG MOUNTAIN RESCUE", - ["(\nTO DO LIST:\n\nDONE 1 - groundedness\nDONE 2 - raise unobstructed active leg, inactive leg grounded\nDONE 3 - lower ungrounded active leg into space \nDONE 4 - raise active leg (inactive leg ungrounded) = lower inactive leg + lower head\nDONE 5 - lower grounded active leg pushing the body up\nDONEISH 6 - walk forward (active grounded, inactive ungrounded)\n7 - walk back (active ungrounded, inactive grounded)\nDONE 8 - limit leg length\n\ncan walk = 'walking leg' higher than 'non-walking' one\n\nthanks to youAtExample for testing :]\n)\n\n\ntitle REALTIME DOG MOUNTAIN RESCUE\nauthor increpare\nhomepage www.increpare.com\n\nrealtime_interval 10\n\nrun_rules_on_level_start\n\nverbose_logging\n\nbackground_color #4953b4\ntext_color #cbdbfc\n\n========\nOBJECTS\n========\n\nBackground\n#8c95e6\n\nTarget\n#5fcde4\n\nWall\n#cbdbfc\n\n\nface_tl q\n#daab05 #aa5a1d\n.0000\n00000\n01001\n01001\n01001\n\n\nface_tr w\n#daab05 #000000\n000..\n0000.\n0110.\n0110.\n0000.\n\nface_bl a\n#daab05 #aa5a1d\n00110\n00000\n00000\n00000\n00000\n\n\nface_br \n#daab05 #f7cea7 #000000 #ac3232 #8c95e6\n00112\n01111\n01134\n00034\n00004\n\nleg_inactive e\nred\n\nfoot_inactive d\nred\n0000.\n00000\n00000\n00000\n00000\n\nleg_active r \nlightgreen\n\nfoot_active \nlightgreen\n0000.\n00000\n00000\n00000\n00000\n\nleg_bg \n#aa5a1d \n\nfoot_bg \n#aa5a1d \n0000.\n00000\n00000\n00000\n00000\n\nleg_fg \n#daab05 \n\nfoot_fg \n#daab05 \n0000.\n00000\n00000\n00000\n00000\n\n\n\n\nfoot_bg_outline\ntransparent #aa5a1d\n01010\n00000\n00001\n00000\n01010\n\n\n\n\nnope\n#ff0000 transparent\n01110\n10101\n11011\n10101\n01110\n\nok\n#99e550\n.....\n..0..\n.0.0.\n..0..\n.....\n\nactive_grounded\nyellow\n0....\n.....\n.....\n.....\n.....\n\ninactive_grounded\npurple\n.0...\n.....\n.....\n.....\n.....\n\n\nactive_foot_raise_obstructed\n#00ff00\n..0..\n.....\n.....\n.....\n.....\n\nmoved_inactive\n#0000ff\n...0.\n.....\n.....\n.....\n.....\n\nfrontlegforward \n#ff00ff\n.....\n0....\n.....\n.....\n.....\n\nrescue_head @\n#d77bba #8c95e6\n.000.\n00000\n00000\n00000\n.0000\n\nstarter_body }\n#d77bba\n\nrescue_body {\n#d77bba\n\nrescue_head_partial\n#d77bba #306082\n.010.\n01010\n10101\n01010\n.0101\n\nrescue_body_partial\n#d77bba #306082\n01010\n10101\n01010\n10101\n01010\n\nrescue_head_frozen\n#306082\n.000.\n00000\n00000\n00000\n.000.\n\n\nrescue_body_frozen\n#306082\n\nsadwuffed\ntransparent\n\n=======\nLEGEND\n=======\n\n\nplayer = face_Br \n\nface = face_tl or face_tr or face_bl or face_br\nlimb = leg_inactive or leg_active or foot_inactive or foot_active\nactive = leg_active or foot_active\ninactive = leg_inactive or foot_inactive\n\nlimb_fg = leg_fg or foot_fg\nlimb_bg = leg_Bg or foot_bg\n\nlimb_cosmetic = limb_fg or limb_bg\n\nfoot_outline = foot_bg_outline\n\ndog_not_active = face or inactive\ndog_not_inactive = face or active\ndog = face or active or inactive\n\n. = Background\n# = Wall\nP = Player and frontlegforward\nO = Target\n\nt = foot_inactive and leg_active and foot_bg_outline\nf = foot_active \nmoveconfirmation = nope or ok\n\ntags = inactive_grounded or active_grounded or active_foot_raise_obstructed or moved_inactive\n\nrescue = rescue_head or rescue_body or rescue_head_frozen or rescue_body_frozen or rescue_head_partial or rescue_body_partial or starter_body\n\n\" = sadwuffed and Wall\n=======\nSOUNDS\n=======\nsfx0 26832704 (partial freeze)\nsfx1 14141502 (freeze)\nsfx2 87054902 (head partial freeze)\nsfx3 37766702 (head full freeze)\nstartlevel 47855706\nendlevel 85788701\nsfx4 80124702 (found body)\n================\nCOLLISIONLAYERS\n================\n\nactive_grounded\ninactive_grounded\nactive_foot_raise_obstructed\nmoved_inactive\nfrontlegforward\n\n\nBackground\nTarget\nWall\nface\ninactive\nactive\nmoveconfirmation\nlimb_bg\nlimb_fg\n\nfoot_outline\n\nrescue\n\nsadwuffed\n\n======\nRULES\n======\n\n\nrandom right [stationary player ] [ rescue_head_partial | no starter_body no rescue_body no rescue_body_partial] -> [ stationary player ] [ rescue_head_frozen | ] sfx3\n+right [stationary player ] [ rescue_head | no starter_body no rescue_body no rescue_body_partial] -> [ stationary player ] [ rescue_head_partial | ] sfx2\n+right [stationary player ] [ rescue_body_partial | no starter_body no rescue_body no rescue_body_partial ] -> [ stationary player ] [ rescue_body_frozen | ] sfx1\n+right [stationary player ] [ rescue_body | no starter_body no rescue_body no rescue_body_partial ] -> [ stationary player ] [ rescue_body_partial | ] sfx0\n+[stationary player ] [ starter_body ] -> [ stationary player ] [ rescue_body ]\n\n[moveconfirmation]->[]\n\n(pressing action when you're right above a foot is the same as pressing up)\ndown [ action player | foot_inactive ] -> [ up player | foot_inactive ]\n\n\n\n(2 - raise unobstructed active leg, inactive leg grounded)\ndown [ up player no active_foot_raise_obstructed inactive_grounded| active | active ] [ foot_active ] -> [ up player | | active ] [ up foot_active ]\n\n(note to self: moved the following line up here from somewhere near the end. hope it doesn't break things, but if something breaks its probably this)\n(propagate foot movements to leg)\n[up foot_active ] [ leg_active ] -> [ up foot_active ] [ up leg_active ]\n\n(3 - lower ungrounded active leg into space)\nrandom down [ down player no active_grounded ] [ foot_active ] [ leg_active | no leg_active ] -> [ down player no active_grounded ][ down foot_active ] [ leg_active | leg_active ] \n\n\n\n\n(4 - raise active leg (inactive leg ungrounded) = lower inactive leg + lower head )\n\t(tell every non-active thing to move down)\ndown [ up player no inactive_grounded | active ] [ dog_not_active no player ] -> [ up player no inactive_grounded | active ] [ down dog_not_active ]\n\t(remove topmost active leg segment)\ndown [ up player no inactive_grounded | active ] -> [ | player ]\n\n(5 - lower grounded active leg pushing the body up)\ndown [ down player active_grounded ] [ dog_not_active no player ] -> [ down player active_grounded ] [ up dog_not_active ]\ndown [ | face_tr | down player active_grounded ] -> [ face_tr | player active_grounded | leg_active ]\n\n\n(6 - walk forward (active grounded, inactive ungrounded))\n\t(inactive foot has to be not just ungrounded, but above the active one (to ensure it can move without friction))\n down [ right player active_grounded ] [ foot_inactive | no leg_active ] -> cancel\n \n \n\t(first all faces try to move right)\n\t(remove movement if activity is wrong)\nright [ right player no active_grounded ] -> cancel\n( right [ right player inactive_grounded ] -> cancel )\n\n\n(toggle frontlegforward)\n[right player no frontlegforward active_grounded ] -> [ right player right frontlegforward active_grounded]\n[right player stationary frontlegforward active_grounded ] -> [ right player active_grounded]\n\n\t(move face)\n \n[ right player active_grounded ] [ face ] -> [ right player active_grounded no inactive_grounded ] [ right face ] \nright [ right face | no face ] -> [ | face moved_inactive ]\n\n(move back leg forward (inactive->active) )\nright [player moved_inactive ] [ leg_inactive | | ] -> [player moved_inactive ] [ | | leg_active ]\nright [player moved_inactive ] [ foot_inactive | | ] -> [player moved_inactive ] [ | | foot_active ]\n\n(turn active leg inactive (active->inactive))\ndown [ face_bl moved_inactive | leg_active ] -> [ face_bl moved_inactive | leg_inactive ]\ndown [ leg_inactive | leg_active ] -> [ leg_inactive | leg_inactive ]\nright [leg_inactive | foot_active ] -> [ leg_inactive | foot_inactive ]\n\n(remove moved tags)\n[moved_inactive]->[]\n\n(7 - walk back (active ungrounded, inactive grounded))\n\t(inactive foot has to be not just ungrounded, but above the active one (to ensure it can move without friction))\n down [ left player inactive_grounded ] [ foot_inactive leg_active ] -> cancel\n \n\t(first all faces try to move left)\n\t(remove movement if activity is wrong)\n\t(right [ right player no active_grounded ] -> cancel)\n\t(right [ right player inactive_grounded ] -> cancel)\n\n\n(toggle frontlegforward)\n[left player no frontlegforward inactive_grounded ] -> [ left player left frontlegforward inactive_grounded]\n[left player stationary frontlegforward inactive_grounded ] -> [ left player inactive_grounded ]\n\n\t(move face)\n[ left player inactive_grounded ] [ face ] -> [ left player inactive_grounded no active_grounded] [ left face ] \nleft [ left face | no face ] -> [ | face moved_inactive ]\n\n\n\t(move front leg back (active->inactive) )\nright [player moved_inactive ] [ | | leg_active ] -> [player moved_inactive ] [ leg_inactive | | ]\nright [player moved_inactive ] [ | | foot_active ] -> [player moved_inactive ] [ foot_inactive | | ]\n\n\n\t(turn inactive leg active (inactive->active))\ndown [ face_br moved_inactive | ] -> [ face_br moved_inactive | leg_active no leg_inactive]\ndown [ leg_active | leg_inactive ] -> [ leg_active | leg_active ]\n+ down [ leg_active | no leg_active | leg_inactive ] -> [ leg_active | leg_active | leg_active ]\nright [leg_active | foot_inactive ] -> [ leg_active | foot_active ]\n\n(10 - action to shrink)\n\t(can't schrink into back foot)\n\tdown[ action player | foot_inactive]->cancel\n\nrandom down [ action player | leg_active | no leg_active ] [ foot_active | ] -> [ action player | | leg_active ] [ | foot_active ]\ndown [ action player | leg_active ] -> [action player | ]\ndown [ action player] [ face_bl | leg_inactive ] -> [ action player ] [ face_bl|]\n[action player ] [ face no player ] -> [ action player ] [down face]\n[action player]->[down player]\n\ndown [ down player | no dog ] -> [ | player ]\n(remove moved tags)\n[moved_inactive]->[]\n\n\n\n[moving player]->[player]\n\n\n(if you have a frontlegforward, move it to player position)\nlate [ frontlegforward ] [ player no frontlegforward ] -> [] [ player frontlegforward ] \n\n(leg-drawing)\nlate [limb_cosmetic]->[]\n\nlate [ player frontlegforward ] [ leg_active ] -> [ player frontlegforward ] [ leg_active leg_fg ]\nlate [ player frontlegforward ] [ foot_active ] -> [ player frontlegforward ] [ foot_active foot_fg ]\n\nlate [ player frontlegforward ] [ leg_inactive ] -> [ player frontlegforward ] [ leg_inactive leg_bg ]\nlate [ player frontlegforward ] [ foot_inactive ] -> [ player frontlegforward ] [ foot_inactive foot_bg ]\n\n\nlate [ player no frontlegforward ] [ leg_active ] -> [ player ] [ leg_active leg_bg ]\nlate [ player no frontlegforward ] [ foot_active ] -> [ player ] [ foot_active foot_bg ]\n\nlate [ player no frontlegforward ] [ leg_inactive ] -> [ player ] [ leg_inactive leg_fg ]\nlate [ player no frontlegforward ] [ foot_inactive ] -> [ player ] [ foot_inactive foot_fg ]\n\n\n(draw inactive foot outline)\nlate [ foot_bg_outline ] [ foot_bg no foot_bg_outline ] -> [] [ foot_bg foot_bg_outline ] \n\n\n(remove tags)\nlate [ tags ] -> []\n \n(1 - groundedness)\nlate down [ player ] [ active | wall ] -> [ player active_grounded ] [ active | wall ]\nlate down [ player ] [ inactive | wall ] -> [ player inactive_grounded ] [ inactive | wall ]\nlate up [ player ] [foot_active | wall] -> [ player active_foot_raise_obstructed ] [foot_active | wall]\n\n(limit leg length to 5)\n( down [ leg_active | leg_active |leg_active |leg_active | leg_active | leg_active ] -> cancel )\n( down [ leg_inactive | leg_inactive |leg_inactive | leg_active |leg_inactive | leg_inactive ] -> cancel )\n\n\n(leg can't be shorter than 1)\nright [ player | foot_active ] -> cancel\n\n\n(collision)\nlate [dog wall ] -> cancel\n\nlate [dog | rescue_head ] -> win\nlate [dog | rescue_head_partial ] -> win\n\nlate [ dog | rescue_head_frozen ] [sadwuffed ]->[ dog | rescue_head_frozen ] [ ] sfx4 message sad wuff :(\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\nmessage Rescue 1 of 3 Rescue the body before it freezes!\n\"#######################################\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#...qw.................................#\n#...ap.................................#\n#...er.................................#\n#...etf....##......##.....##....@{{}...#\n########################################\n########################################\n\nmessage You rescued me! You're my doggy hero!\n\nmessage Rescue 2 of 3 [In case you didn't realize, you can press X to shrink]\n\"############################################\n#..........#####............................#\n#............#..............................#\n#............#..............................#\n#............#..............................#\n#............#..............................#\n#............#..............................#\n#............#..............................#\n#...........##..............................#\n#...........##..............................#\n###.qw......................................#\n#...ap......................................#\n#...er.............................#..@{{}..#\n##..etf..##................#.....############\n##############...........#.###..#############\n#################...###.#####################\n#################...#########################\n#############################################\n\nmessage My saviour! Are you an angel?\n\n\n\nmessage Rescue 3 of 3\n\n\n\"###################################################\n#######.....#............###.......................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######...................#........................#\n#######...................#........................#\n#######...................#........................#\n#######...................#........................#\n#######...############....#........................#\n#######......#########....#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#########....####.........#........................#\n#............###..........#........................#\n#............###.....######........................#\n#............##.............................@{{{{}.#\n#.qw.........##...........................##########\n#.ap.....######..........................###########\n#.er....########..............######################\n#.etf..################...##########################\n####################################################\n####################################################\n\nmessage Amazing! You have a great future ahead of you, hero rescue dog!\n\n(\n#...........................................\n#...........................................\n#...........................................\n#...........................................\n#...........##..............................\n#...........##..............................\n#...qw......................................\n#...ap......................................\n#...er.............................#..@{{{..\n##..etf..##................#.....###########\n##############...........#.###..############\n#################...###.####################\n#################...########################\n############################################\n############################################\n\n#...........................................\n#...........................................\n#...........................................\n#...........................................\n#...........##..............................\n##..........##..............................\n####qw......................................\n#...ap......................................\n#...er.............................#..@{{...\n##..etf..##................#.....###########\n##############...........#.###..############\n#################...###.####################\n#################...########################\n############################################\n############################################\n\n\n.......................\n.......................\n.......................\n.......................\n.......................\n............##.........\n....qw......##.........\n....ap.................\n....er.................\n....er.................\n##..etf..##............\n##....########.........\n#################...###\n#################...###\n#################...###\n#######################\n)\n",[0,0,3,2,2,2,3,3,2,2,2,3,2,2,0,0,1,3,4,4,2,2,2,4,4,3,3,2,2,2,"tick",3,2,2,4,4,2,2,3,3,4,2,3,3,2,2,4,2,3,3,3,2,4,2,3,2,2,2,2,2,2,4,2,2,4,2,2,2,4,4,4,4,4,"tick",4,4,4,3,2,2,2,2,2,2,2,2,1,0,2,2,2,3,1,1,2,2,2,0,0,0,0,0,0,4,4,4,4,4,0,0,0,2,2,2,1,0,0,0,1,1,0,0,2,2,"tick",3,3,1,2,1,1,3,3,"undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo",2,2,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,3,"tick",2,2,2,2,1,2,2,2,2,3,2,2,2,1,0,0,0,0,0,0,0,1,2,2,0,0,0,0],"background sadwuffed wall:0,background wall:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,background:2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,1,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background face_tl:3,background face_bl:4,background leg_bg leg_inactive:5,5,5,1,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,background face_tr:6,background face_br frontlegforward inactive_grounded:7,background leg_active leg_fg:8,8,background foot_bg foot_bg_outline foot_inactive leg_active leg_fg:9,8,8,8,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,\n2,2,background foot_active foot_fg:10,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,\n2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,2,2,2,\n2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,\n2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,\n1,1,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,\n1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background rescue_head:11,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background rescue_body:12,1,1,\n1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,12,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,12,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background rescue_body_partial:13,1,1,1,1,\n1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background rescue_body_frozen:14,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n",7,"1627894053043.232"] + "REALTIME DOG MOUNTAIN RESCUE", + ["(\nTO DO LIST:\n\nDONE 1 - groundedness\nDONE 2 - raise unobstructed active leg, inactive leg grounded\nDONE 3 - lower ungrounded active leg into space \nDONE 4 - raise active leg (inactive leg ungrounded) = lower inactive leg + lower head\nDONE 5 - lower grounded active leg pushing the body up\nDONEISH 6 - walk forward (active grounded, inactive ungrounded)\n7 - walk back (active ungrounded, inactive grounded)\nDONE 8 - limit leg length\n\ncan walk = 'walking leg' higher than 'non-walking' one\n\nthanks to youAtExample for testing :]\n)\n\n\ntitle REALTIME DOG MOUNTAIN RESCUE\nauthor increpare\nhomepage www.increpare.com\n\nrealtime_interval 10\n\nrun_rules_on_level_start\n\nverbose_logging\n\nbackground_color #4953b4\ntext_color #cbdbfc\n\n========\nOBJECTS\n========\n\nBackground\n#8c95e6\n\nTarget\n#5fcde4\n\nWall\n#cbdbfc\n\n\nface_tl q\n#daab05 #aa5a1d\n.0000\n00000\n01001\n01001\n01001\n\n\nface_tr w\n#daab05 #000000\n000..\n0000.\n0110.\n0110.\n0000.\n\nface_bl a\n#daab05 #aa5a1d\n00110\n00000\n00000\n00000\n00000\n\n\nface_br \n#daab05 #f7cea7 #000000 #ac3232 #8c95e6\n00112\n01111\n01134\n00034\n00004\n\nleg_inactive e\nred\n\nfoot_inactive d\nred\n0000.\n00000\n00000\n00000\n00000\n\nleg_active r \nlightgreen\n\nfoot_active \nlightgreen\n0000.\n00000\n00000\n00000\n00000\n\nleg_bg \n#aa5a1d \n\nfoot_bg \n#aa5a1d \n0000.\n00000\n00000\n00000\n00000\n\nleg_fg \n#daab05 \n\nfoot_fg \n#daab05 \n0000.\n00000\n00000\n00000\n00000\n\n\n\n\nfoot_bg_outline\ntransparent #aa5a1d\n01010\n00000\n00001\n00000\n01010\n\n\n\n\nnope\n#ff0000 transparent\n01110\n10101\n11011\n10101\n01110\n\nok\n#99e550\n.....\n..0..\n.0.0.\n..0..\n.....\n\nactive_grounded\nyellow\n0....\n.....\n.....\n.....\n.....\n\ninactive_grounded\npurple\n.0...\n.....\n.....\n.....\n.....\n\n\nactive_foot_raise_obstructed\n#00ff00\n..0..\n.....\n.....\n.....\n.....\n\nmoved_inactive\n#0000ff\n...0.\n.....\n.....\n.....\n.....\n\nfrontlegforward \n#ff00ff\n.....\n0....\n.....\n.....\n.....\n\nrescue_head @\n#d77bba #8c95e6\n.000.\n00000\n00000\n00000\n.0000\n\nstarter_body }\n#d77bba\n\nrescue_body {\n#d77bba\n\nrescue_head_partial\n#d77bba #306082\n.010.\n01010\n10101\n01010\n.0101\n\nrescue_body_partial\n#d77bba #306082\n01010\n10101\n01010\n10101\n01010\n\nrescue_head_frozen\n#306082\n.000.\n00000\n00000\n00000\n.000.\n\n\nrescue_body_frozen\n#306082\n\nsadwuffed\ntransparent\n\n=======\nLEGEND\n=======\n\n\nplayer = face_Br \n\nface = face_tl or face_tr or face_bl or face_br\nlimb = leg_inactive or leg_active or foot_inactive or foot_active\nactive = leg_active or foot_active\ninactive = leg_inactive or foot_inactive\n\nlimb_fg = leg_fg or foot_fg\nlimb_bg = leg_Bg or foot_bg\n\nlimb_cosmetic = limb_fg or limb_bg\n\nfoot_outline = foot_bg_outline\n\ndog_not_active = face or inactive\ndog_not_inactive = face or active\ndog = face or active or inactive\n\n. = Background\n# = Wall\nP = Player and frontlegforward\nO = Target\n\nt = foot_inactive and leg_active and foot_bg_outline\nf = foot_active \nmoveconfirmation = nope or ok\n\ntags = inactive_grounded or active_grounded or active_foot_raise_obstructed or moved_inactive\n\nrescue = rescue_head or rescue_body or rescue_head_frozen or rescue_body_frozen or rescue_head_partial or rescue_body_partial or starter_body\n\n\" = sadwuffed and Wall\n=======\nSOUNDS\n=======\nsfx0 26832704 (partial freeze)\nsfx1 14141502 (freeze)\nsfx2 87054902 (head partial freeze)\nsfx3 37766702 (head full freeze)\nstartlevel 47855706\nendlevel 85788701\nsfx4 80124702 (found body)\n================\nCOLLISIONLAYERS\n================\n\nactive_grounded\ninactive_grounded\nactive_foot_raise_obstructed\nmoved_inactive\nfrontlegforward\n\n\nBackground\nTarget\nWall\nface\ninactive\nactive\nmoveconfirmation\nlimb_bg\nlimb_fg\n\nfoot_outline\n\nrescue\n\nsadwuffed\n\n======\nRULES\n======\n\n\nrandom right [stationary player ] [ rescue_head_partial | no starter_body no rescue_body no rescue_body_partial] -> [ stationary player ] [ rescue_head_frozen | ] sfx3\n+right [stationary player ] [ rescue_head | no starter_body no rescue_body no rescue_body_partial] -> [ stationary player ] [ rescue_head_partial | ] sfx2\n+right [stationary player ] [ rescue_body_partial | no starter_body no rescue_body no rescue_body_partial ] -> [ stationary player ] [ rescue_body_frozen | ] sfx1\n+right [stationary player ] [ rescue_body | no starter_body no rescue_body no rescue_body_partial ] -> [ stationary player ] [ rescue_body_partial | ] sfx0\n+[stationary player ] [ starter_body ] -> [ stationary player ] [ rescue_body ]\n\n[moveconfirmation]->[]\n\n(pressing action when you're right above a foot is the same as pressing up)\ndown [ action player | foot_inactive ] -> [ up player | foot_inactive ]\n\n\n\n(2 - raise unobstructed active leg, inactive leg grounded)\ndown [ up player no active_foot_raise_obstructed inactive_grounded| active | active ] [ foot_active ] -> [ up player | | active ] [ up foot_active ]\n\n(note to self: moved the following line up here from somewhere near the end. hope it doesn't break things, but if something breaks its probably this)\n(propagate foot movements to leg)\n[up foot_active ] [ leg_active ] -> [ up foot_active ] [ up leg_active ]\n\n(3 - lower ungrounded active leg into space)\nrandom down [ down player no active_grounded ] [ foot_active ] [ leg_active | no leg_active ] -> [ down player no active_grounded ][ down foot_active ] [ leg_active | leg_active ] \n\n\n\n\n(4 - raise active leg (inactive leg ungrounded) = lower inactive leg + lower head )\n\t(tell every non-active thing to move down)\ndown [ up player no inactive_grounded | active ] [ dog_not_active no player ] -> [ up player no inactive_grounded | active ] [ down dog_not_active ]\n\t(remove topmost active leg segment)\ndown [ up player no inactive_grounded | active ] -> [ | player ]\n\n(5 - lower grounded active leg pushing the body up)\ndown [ down player active_grounded ] [ dog_not_active no player ] -> [ down player active_grounded ] [ up dog_not_active ]\ndown [ | face_tr | down player active_grounded ] -> [ face_tr | player active_grounded | leg_active ]\n\n\n(6 - walk forward (active grounded, inactive ungrounded))\n\t(inactive foot has to be not just ungrounded, but above the active one (to ensure it can move without friction))\n down [ right player active_grounded ] [ foot_inactive | no leg_active ] -> cancel\n \n \n\t(first all faces try to move right)\n\t(remove movement if activity is wrong)\nright [ right player no active_grounded ] -> cancel\n( right [ right player inactive_grounded ] -> cancel )\n\n\n(toggle frontlegforward)\n[right player no frontlegforward active_grounded ] -> [ right player right frontlegforward active_grounded]\n[right player stationary frontlegforward active_grounded ] -> [ right player active_grounded]\n\n\t(move face)\n \n[ right player active_grounded ] [ face ] -> [ right player active_grounded no inactive_grounded ] [ right face ] \nright [ right face | no face ] -> [ | face moved_inactive ]\n\n(move back leg forward (inactive->active) )\nright [player moved_inactive ] [ leg_inactive | | ] -> [player moved_inactive ] [ | | leg_active ]\nright [player moved_inactive ] [ foot_inactive | | ] -> [player moved_inactive ] [ | | foot_active ]\n\n(turn active leg inactive (active->inactive))\ndown [ face_bl moved_inactive | leg_active ] -> [ face_bl moved_inactive | leg_inactive ]\ndown [ leg_inactive | leg_active ] -> [ leg_inactive | leg_inactive ]\nright [leg_inactive | foot_active ] -> [ leg_inactive | foot_inactive ]\n\n(remove moved tags)\n[moved_inactive]->[]\n\n(7 - walk back (active ungrounded, inactive grounded))\n\t(inactive foot has to be not just ungrounded, but above the active one (to ensure it can move without friction))\n down [ left player inactive_grounded ] [ foot_inactive leg_active ] -> cancel\n \n\t(first all faces try to move left)\n\t(remove movement if activity is wrong)\n\t(right [ right player no active_grounded ] -> cancel)\n\t(right [ right player inactive_grounded ] -> cancel)\n\n\n(toggle frontlegforward)\n[left player no frontlegforward inactive_grounded ] -> [ left player left frontlegforward inactive_grounded]\n[left player stationary frontlegforward inactive_grounded ] -> [ left player inactive_grounded ]\n\n\t(move face)\n[ left player inactive_grounded ] [ face ] -> [ left player inactive_grounded no active_grounded] [ left face ] \nleft [ left face | no face ] -> [ | face moved_inactive ]\n\n\n\t(move front leg back (active->inactive) )\nright [player moved_inactive ] [ | | leg_active ] -> [player moved_inactive ] [ leg_inactive | | ]\nright [player moved_inactive ] [ | | foot_active ] -> [player moved_inactive ] [ foot_inactive | | ]\n\n\n\t(turn inactive leg active (inactive->active))\ndown [ face_br moved_inactive | ] -> [ face_br moved_inactive | leg_active no leg_inactive]\ndown [ leg_active | leg_inactive ] -> [ leg_active | leg_active ]\n+ down [ leg_active | no leg_active | leg_inactive ] -> [ leg_active | leg_active | leg_active ]\nright [leg_active | foot_inactive ] -> [ leg_active | foot_active ]\n\n(10 - action to shrink)\n\t(can't schrink into back foot)\n\tdown[ action player | foot_inactive]->cancel\n\nrandom down [ action player | leg_active | no leg_active ] [ foot_active | ] -> [ action player | | leg_active ] [ | foot_active ]\ndown [ action player | leg_active ] -> [action player | ]\ndown [ action player] [ face_bl | leg_inactive ] -> [ action player ] [ face_bl|]\n[action player ] [ face no player ] -> [ action player ] [down face]\n[action player]->[down player]\n\ndown [ down player | no dog ] -> [ | player ]\n(remove moved tags)\n[moved_inactive]->[]\n\n\n\n[moving player]->[player]\n\n\n(if you have a frontlegforward, move it to player position)\nlate [ frontlegforward ] [ player no frontlegforward ] -> [] [ player frontlegforward ] \n\n(leg-drawing)\nlate [limb_cosmetic]->[]\n\nlate [ player frontlegforward ] [ leg_active ] -> [ player frontlegforward ] [ leg_active leg_fg ]\nlate [ player frontlegforward ] [ foot_active ] -> [ player frontlegforward ] [ foot_active foot_fg ]\n\nlate [ player frontlegforward ] [ leg_inactive ] -> [ player frontlegforward ] [ leg_inactive leg_bg ]\nlate [ player frontlegforward ] [ foot_inactive ] -> [ player frontlegforward ] [ foot_inactive foot_bg ]\n\n\nlate [ player no frontlegforward ] [ leg_active ] -> [ player ] [ leg_active leg_bg ]\nlate [ player no frontlegforward ] [ foot_active ] -> [ player ] [ foot_active foot_bg ]\n\nlate [ player no frontlegforward ] [ leg_inactive ] -> [ player ] [ leg_inactive leg_fg ]\nlate [ player no frontlegforward ] [ foot_inactive ] -> [ player ] [ foot_inactive foot_fg ]\n\n\n(draw inactive foot outline)\nlate [ foot_bg_outline ] [ foot_bg no foot_bg_outline ] -> [] [ foot_bg foot_bg_outline ] \n\n\n(remove tags)\nlate [ tags ] -> []\n \n(1 - groundedness)\nlate down [ player ] [ active | wall ] -> [ player active_grounded ] [ active | wall ]\nlate down [ player ] [ inactive | wall ] -> [ player inactive_grounded ] [ inactive | wall ]\nlate up [ player ] [foot_active | wall] -> [ player active_foot_raise_obstructed ] [foot_active | wall]\n\n(limit leg length to 5)\n( down [ leg_active | leg_active |leg_active |leg_active | leg_active | leg_active ] -> cancel )\n( down [ leg_inactive | leg_inactive |leg_inactive | leg_active |leg_inactive | leg_inactive ] -> cancel )\n\n\n(leg can't be shorter than 1)\nright [ player | foot_active ] -> cancel\n\n\n(collision)\nlate [dog wall ] -> cancel\n\nlate [dog | rescue_head ] -> win\nlate [dog | rescue_head_partial ] -> win\n\nlate [ dog | rescue_head_frozen ] [sadwuffed ]->[ dog | rescue_head_frozen ] [ ] sfx4 message sad wuff :(\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\nmessage Rescue 1 of 3 Rescue the body before it freezes!\n\"#######################################\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#...qw.................................#\n#...ap.................................#\n#...er.................................#\n#...etf....##......##.....##....@{{}...#\n########################################\n########################################\n\nmessage You rescued me! You're my doggy hero!\n\nmessage Rescue 2 of 3 [In case you didn't realize, you can press X to shrink]\n\"############################################\n#..........#####............................#\n#............#..............................#\n#............#..............................#\n#............#..............................#\n#............#..............................#\n#............#..............................#\n#............#..............................#\n#...........##..............................#\n#...........##..............................#\n###.qw......................................#\n#...ap......................................#\n#...er.............................#..@{{}..#\n##..etf..##................#.....############\n##############...........#.###..#############\n#################...###.#####################\n#################...#########################\n#############################################\n\nmessage My saviour! Are you an angel?\n\n\n\nmessage Rescue 3 of 3\n\n\n\"###################################################\n#######.....#............###.......................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######...................#........................#\n#######...................#........................#\n#######...................#........................#\n#######...................#........................#\n#######...############....#........................#\n#######......#########....#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#########....####.........#........................#\n#............###..........#........................#\n#............###.....######........................#\n#............##.............................@{{{{}.#\n#.qw.........##...........................##########\n#.ap.....######..........................###########\n#.er....########..............######################\n#.etf..################...##########################\n####################################################\n####################################################\n\nmessage Amazing! You have a great future ahead of you, hero rescue dog!\n\n(\n#...........................................\n#...........................................\n#...........................................\n#...........................................\n#...........##..............................\n#...........##..............................\n#...qw......................................\n#...ap......................................\n#...er.............................#..@{{{..\n##..etf..##................#.....###########\n##############...........#.###..############\n#################...###.####################\n#################...########################\n############################################\n############################################\n\n#...........................................\n#...........................................\n#...........................................\n#...........................................\n#...........##..............................\n##..........##..............................\n####qw......................................\n#...ap......................................\n#...er.............................#..@{{...\n##..etf..##................#.....###########\n##############...........#.###..############\n#################...###.####################\n#################...########################\n############################################\n############################################\n\n\n.......................\n.......................\n.......................\n.......................\n.......................\n............##.........\n....qw......##.........\n....ap.................\n....er.................\n....er.................\n##..etf..##............\n##....########.........\n#################...###\n#################...###\n#################...###\n#######################\n)\n", [0, 0, 3, 2, 2, 2, 3, 3, 2, 2, 2, 3, 2, 2, 0, 0, 1, 3, 4, 4, 2, 2, 2, 4, 4, 3, 3, 2, 2, 2, "tick", 3, 2, 2, 4, 4, 2, 2, 3, 3, 4, 2, 3, 3, 2, 2, 4, 2, 3, 3, 3, 2, 4, 2, 3, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 4, 4, 4, 4, 4, "tick", 4, 4, 4, 3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 2, 2, 2, 3, 1, 1, 2, 2, 2, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 0, 0, 0, 2, 2, 2, 1, 0, 0, 0, 1, 1, 0, 0, 2, 2, "tick", 3, 3, 1, 2, 1, 1, 3, 3, "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 3, "tick", 2, 2, 2, 2, 1, 2, 2, 2, 2, 3, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 0, 0, 0, 0], "background sadwuffed wall:0,background wall:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,background:2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,1,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background face_tl:3,background face_bl:4,background leg_bg leg_inactive:5,5,5,1,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,background face_tr:6,background face_br frontlegforward inactive_grounded:7,background leg_active leg_fg:8,8,background foot_bg foot_bg_outline foot_inactive leg_active leg_fg:9,8,8,8,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,\n2,2,background foot_active foot_fg:10,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,\n2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,2,2,2,\n2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,\n2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,\n1,1,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,\n1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background rescue_head:11,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background rescue_body:12,1,1,\n1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,12,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,12,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background rescue_body_partial:13,1,1,1,1,\n1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background rescue_body_frozen:14,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n", 7, "1627894053043.232"] ], [ - "You can't make this up!", - ["title You can't make this up!\nauthor increpare\nhomepage www.increpare.com\n\n\nbackground_color #b7885b\n\ntext_color black\n\n=======\nOBJECTS\n=======\n\nBackground\n#eec39a\n\nPlayer\n#99e550\n\ntopmarker\nred\n.....\n.....\n.....\n.....\n.....\n\nBox1\n#df7126\n\nBox2\n#5fcde4\n\nBox3\n#d77bba\n\nBox4\n#fbf236\n\nWall\n#b7885b\n\n======\nLEGEND\n======\n\n. = Background\n@ = Player\n1 = Box1\n2 = Box2\n3 = Box3\n4 = Box4\n# = Wall\nq = topmarker and 1\nw = topmarker and 2\ne = topmarker and 3\nr = topmarker and 4\n\nBox = Box1 or Box2 or Box3 or Box4\n\n======\nSOUNDS\n======\n\n===============\nCOLLISIONLAYERS\n===============\n\nBackground\nPlayer, Box, Wall\ntopmarker\n\n=====\nRULES\n=====\n\n[ > Player | Box ] -> [ > Player | > Box ]\n\n\n\n[ moving Box1 | Box1 ] -> [ moving Box1 | moving Box1 ]\n+ [ moving Box2 | Box2 ] -> [ moving Box2 | moving Box2 ]\n+ [ moving Box3 | Box3 ] -> [ moving Box3 | moving Box3 ]\n+ [ moving Box4 | Box4 ] -> [ moving Box4 | moving Box4 ]\n+ [ > Box | Box ] -> [ > Box | > Box ]\n\n\n\n[ > Box | Wall ] -> cancel\n\n[ moving box topmarker] ->[moving box moving topmarker]\n\nlate right [ topmarker box1 | | topmarker box2 | | topmarker box3 | player | topmarker box4 ] -> win\nlate right [ topmarker box1 | | topmarker box2 || | topmarker box3 | player | topmarker box4 ] -> win\n\n=============\nWINCONDITIONS\n=============\n\n======\nLEVELS\n======\n\nmessage Level 1 of 1 : You can't make this up!\n\n##################\n#................#\n#................#\n#................#\n#......w.........#\n#....eq2r........#\n#....3124...@....#\n#....3144........#\n#....3111........#\n#................#\n#................#\n#................#\n#................#\n##################\n\n\nmessage NVM I guess you can. \n",[2,1,1,1,1,0,0,0,1,2,2,1,2,2,2,3,3],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,background box3 topmarker:2,background box3:3,3,3,1,1,1,1,0,0,1,\n1,1,background box2 topmarker:4,background box2:5,5,1,background box1 topmarker:6,background box1:7,7,7,1,0,0,1,1,1,1,1,\n1,1,1,1,1,7,1,0,0,1,1,1,1,1,1,1,1,1,\n1,7,1,0,0,1,1,1,1,1,1,1,1,background player:8,background box4:9,1,1,0,\n0,1,1,1,1,1,1,1,background box4 topmarker:10,9,9,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",1,"1627894109796.508"] + "You can't make this up!", + ["title You can't make this up!\nauthor increpare\nhomepage www.increpare.com\n\n\nbackground_color #b7885b\n\ntext_color black\n\n=======\nOBJECTS\n=======\n\nBackground\n#eec39a\n\nPlayer\n#99e550\n\ntopmarker\nred\n.....\n.....\n.....\n.....\n.....\n\nBox1\n#df7126\n\nBox2\n#5fcde4\n\nBox3\n#d77bba\n\nBox4\n#fbf236\n\nWall\n#b7885b\n\n======\nLEGEND\n======\n\n. = Background\n@ = Player\n1 = Box1\n2 = Box2\n3 = Box3\n4 = Box4\n# = Wall\nq = topmarker and 1\nw = topmarker and 2\ne = topmarker and 3\nr = topmarker and 4\n\nBox = Box1 or Box2 or Box3 or Box4\n\n======\nSOUNDS\n======\n\n===============\nCOLLISIONLAYERS\n===============\n\nBackground\nPlayer, Box, Wall\ntopmarker\n\n=====\nRULES\n=====\n\n[ > Player | Box ] -> [ > Player | > Box ]\n\n\n\n[ moving Box1 | Box1 ] -> [ moving Box1 | moving Box1 ]\n+ [ moving Box2 | Box2 ] -> [ moving Box2 | moving Box2 ]\n+ [ moving Box3 | Box3 ] -> [ moving Box3 | moving Box3 ]\n+ [ moving Box4 | Box4 ] -> [ moving Box4 | moving Box4 ]\n+ [ > Box | Box ] -> [ > Box | > Box ]\n\n\n\n[ > Box | Wall ] -> cancel\n\n[ moving box topmarker] ->[moving box moving topmarker]\n\nlate right [ topmarker box1 | | topmarker box2 | | topmarker box3 | player | topmarker box4 ] -> win\nlate right [ topmarker box1 | | topmarker box2 || | topmarker box3 | player | topmarker box4 ] -> win\n\n=============\nWINCONDITIONS\n=============\n\n======\nLEVELS\n======\n\nmessage Level 1 of 1 : You can't make this up!\n\n##################\n#................#\n#................#\n#................#\n#......w.........#\n#....eq2r........#\n#....3124...@....#\n#....3144........#\n#....3111........#\n#................#\n#................#\n#................#\n#................#\n##################\n\n\nmessage NVM I guess you can. \n", [2, 1, 1, 1, 1, 0, 0, 0, 1, 2, 2, 1, 2, 2, 2, 3, 3], "background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,background box3 topmarker:2,background box3:3,3,3,1,1,1,1,0,0,1,\n1,1,background box2 topmarker:4,background box2:5,5,1,background box1 topmarker:6,background box1:7,7,7,1,0,0,1,1,1,1,1,\n1,1,1,1,1,7,1,0,0,1,1,1,1,1,1,1,1,1,\n1,7,1,0,0,1,1,1,1,1,1,1,1,background player:8,background box4:9,1,1,0,\n0,1,1,1,1,1,1,1,background box4 topmarker:10,9,9,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 1, "1627894109796.508"] ], [ - "Explodoban", - ["title Explodoban\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #063421\n\ntext_color #c978e7\n\n========\nOBJECTS\n========\n\nBackground\n#145339\n\n\nTarget\n#063421\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\n#323c39 #807e7c #a9a8a7 #595652 #232d2a\n01112\n03331\n03331\n03331\n44444\n\n\n\nPlayer\n#1f1f1f #000000 #d6cd1c #414141 #8a1b1b\n.000.\n12320\n11000\n.111.\n44.44\n\n\nCrate\n#984fb3 #ae60cb #c978e7 #76428a #5f2d72\n01112\n3...1\n3...1\n3...1\n44440\n\nexplode_up\n#fbf236 #ac3232\n.....\n..0..\n.000.\n01110\n00110\n\nexplode_down\n#fbf236 #ac3232 \n01100\n01110\n.000.\n..0..\n.....\n\nexplode_left\n#fbf236 #ac3232\n...00\n..011\n.0011\n..010\n...00\n\nexplode_right\n#fbf236 #ac3232\n00...\n010..\n1100.\n110..\n00...\n\ndeadzone ,\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\n=======\nLEGEND\n=======\n\nexplode = explode_up or explode_down or explode_left or explode_right\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 33465106\nendlevel 83744503\nstartgame 92244503\nplayer action 18708701\nplayer move 254507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ndeadzone\nTarget\nPlayer, Wall, Crate\nexplode\n======\nRULES\n======\n\n[ explode]->[no explode]\n[ action Player | Crate ] -> [ action Player | > Crate ]\n\nup [ action Player | no wall ] -> [ action Player | explode_up ]\ndown [ action Player | no wall ] -> [ action Player | explode_down ]\nleft [ action Player | no wall ] -> [ action Player | explode_left ]\nright [ action Player | no wall ] -> [ action Player | explode_right ]\n\nlate [ explode Crate ] -> [crate]\nlate [explode] -> again\n\nlate [crate deadzone]->cancel\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 7 [you can press x to explode]\n(kinda cute)\n########\n#.o.@..#\n#.o*.*.#\n#....p.#\n#####..#\n########\n\nmessage Level 2 of 7 \n(kinda bad but i kinda like it)\n########\n#o@.o..#\n#.*..*.#\n#p.#...#\n########\n\nmessage Level 3 of 7 \n(pretty nice to figure out, and not hard)\n########\n#...oo.#\n#o**..p#\n#..*...#\n#####..#\n########\n\nmessage Level 4 of 7 \n#########\n#.......#\n#...@...#\n#.o.....#\n#.*..@..#\n#.p@....#\n#.......#\n#########\n\nmessage Level 5 of 7 \n(tricky but fine)\n########\n#...@.p#\n#.o*o..#\n#.*....#\n#####..#\n########\n\n\n\nmessage Level 6 of 7\n(middle-hard!)\n#########\n###..####\n#.....*p#\n#.#o*.o.#\n#....#..#\n#########\n\nmessage Level 7 of 7 \n(kinda tricky but also good!)\n########\n##..p..#\n##.*@*.#\n#o....##\n##....##\n###.#o##\n########\n\nmessage Congratulations!\n\n\n(\n\n(neither good nor trivial:)\n########\n#,.@..,#\n#,...@,#\n#,@...,#\n#,p*o.,#\n#,@...,#\n#,...@,#\n#,.@..,#\n########\n\n(meh)\n##########\n###......#\n#.....@..#\n#...@..*.#\n#.o....o.#\n#.*..@...#\n#.p@.....#\n#......###\n##########\n\n\n\n########\n#......#\n#...@..#\n#.o....#\n#.*..@.#\n#.p@...#\n#......#\n########\n\n\n####.####\n####@####\n##.....##\n##.....##\n##.....##\n.@.*o.*o.\n##.....##.\n##.....##\n##.p...##\n####@####\n####.####\n\n####.####\n####@####\n##.....##\n##.....##\n.@.*o*.o.\n##.....##\n##.p...##\n####@####\n####.####\n\n####.####\n####o####\n##.....##\n##..*..##\n.o.*@*.o.\n##..*..##\n##p....##\n####o####\n####.####\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*O.#\n##.*P*.#\n#..O*O.#\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(\n==========\nTRANSFORM\n==========\n[player]->[]\n[target]->[]\n[crate]->[]\n\nchoose 1 [ no wall] ->[ player]\nchoose 2 [ no wall no player]->[target]\nchoose 2 [no wall no player] ->[crate]\n\n\n))\n",[1,1,2,1,1,0,4,2,4,1,2,1,4],"background wall:0,0,0,0,0,0,0,0,background:1,\n1,1,0,0,0,1,0,1,0,\n0,1,background crate:2,background target:3,background player:4,0,0,1,1,\n1,1,0,0,0,1,1,0,0,\n0,0,1,3,1,0,0,0,2,\n1,1,0,0,0,0,0,0,0,\n",11,"1627894122279.9321"] + "Explodoban", + ["title Explodoban\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #063421\n\ntext_color #c978e7\n\n========\nOBJECTS\n========\n\nBackground\n#145339\n\n\nTarget\n#063421\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\n#323c39 #807e7c #a9a8a7 #595652 #232d2a\n01112\n03331\n03331\n03331\n44444\n\n\n\nPlayer\n#1f1f1f #000000 #d6cd1c #414141 #8a1b1b\n.000.\n12320\n11000\n.111.\n44.44\n\n\nCrate\n#984fb3 #ae60cb #c978e7 #76428a #5f2d72\n01112\n3...1\n3...1\n3...1\n44440\n\nexplode_up\n#fbf236 #ac3232\n.....\n..0..\n.000.\n01110\n00110\n\nexplode_down\n#fbf236 #ac3232 \n01100\n01110\n.000.\n..0..\n.....\n\nexplode_left\n#fbf236 #ac3232\n...00\n..011\n.0011\n..010\n...00\n\nexplode_right\n#fbf236 #ac3232\n00...\n010..\n1100.\n110..\n00...\n\ndeadzone ,\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\n=======\nLEGEND\n=======\n\nexplode = explode_up or explode_down or explode_left or explode_right\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 33465106\nendlevel 83744503\nstartgame 92244503\nplayer action 18708701\nplayer move 254507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ndeadzone\nTarget\nPlayer, Wall, Crate\nexplode\n======\nRULES\n======\n\n[ explode]->[no explode]\n[ action Player | Crate ] -> [ action Player | > Crate ]\n\nup [ action Player | no wall ] -> [ action Player | explode_up ]\ndown [ action Player | no wall ] -> [ action Player | explode_down ]\nleft [ action Player | no wall ] -> [ action Player | explode_left ]\nright [ action Player | no wall ] -> [ action Player | explode_right ]\n\nlate [ explode Crate ] -> [crate]\nlate [explode] -> again\n\nlate [crate deadzone]->cancel\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 7 [you can press x to explode]\n(kinda cute)\n########\n#.o.@..#\n#.o*.*.#\n#....p.#\n#####..#\n########\n\nmessage Level 2 of 7 \n(kinda bad but i kinda like it)\n########\n#o@.o..#\n#.*..*.#\n#p.#...#\n########\n\nmessage Level 3 of 7 \n(pretty nice to figure out, and not hard)\n########\n#...oo.#\n#o**..p#\n#..*...#\n#####..#\n########\n\nmessage Level 4 of 7 \n#########\n#.......#\n#...@...#\n#.o.....#\n#.*..@..#\n#.p@....#\n#.......#\n#########\n\nmessage Level 5 of 7 \n(tricky but fine)\n########\n#...@.p#\n#.o*o..#\n#.*....#\n#####..#\n########\n\n\n\nmessage Level 6 of 7\n(middle-hard!)\n#########\n###..####\n#.....*p#\n#.#o*.o.#\n#....#..#\n#########\n\nmessage Level 7 of 7 \n(kinda tricky but also good!)\n########\n##..p..#\n##.*@*.#\n#o....##\n##....##\n###.#o##\n########\n\nmessage Congratulations!\n\n\n(\n\n(neither good nor trivial:)\n########\n#,.@..,#\n#,...@,#\n#,@...,#\n#,p*o.,#\n#,@...,#\n#,...@,#\n#,.@..,#\n########\n\n(meh)\n##########\n###......#\n#.....@..#\n#...@..*.#\n#.o....o.#\n#.*..@...#\n#.p@.....#\n#......###\n##########\n\n\n\n########\n#......#\n#...@..#\n#.o....#\n#.*..@.#\n#.p@...#\n#......#\n########\n\n\n####.####\n####@####\n##.....##\n##.....##\n##.....##\n.@.*o.*o.\n##.....##.\n##.....##\n##.p...##\n####@####\n####.####\n\n####.####\n####@####\n##.....##\n##.....##\n.@.*o*.o.\n##.....##\n##.p...##\n####@####\n####.####\n\n####.####\n####o####\n##.....##\n##..*..##\n.o.*@*.o.\n##..*..##\n##p....##\n####o####\n####.####\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*O.#\n##.*P*.#\n#..O*O.#\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(\n==========\nTRANSFORM\n==========\n[player]->[]\n[target]->[]\n[crate]->[]\n\nchoose 1 [ no wall] ->[ player]\nchoose 2 [ no wall no player]->[target]\nchoose 2 [no wall no player] ->[crate]\n\n\n))\n", [1, 1, 2, 1, 1, 0, 4, 2, 4, 1, 2, 1, 4], "background wall:0,0,0,0,0,0,0,0,background:1,\n1,1,0,0,0,1,0,1,0,\n0,1,background crate:2,background target:3,background player:4,0,0,1,1,\n1,1,0,0,0,1,1,0,0,\n0,0,1,3,1,0,0,0,2,\n1,1,0,0,0,0,0,0,0,\n", 11, "1627894122279.9321"] ], [ - "Bicycle-Kick Football", - ["(Ziel = Tore = gerichtet!)\ntitle Bicycle-Kick Football\nauthor increpare\nhomepage www.increpare.com\n\n( verbose_logging )\nrun_rules_on_level_start\n\nbackground_color #305e12\ntext_color white\n\n========\nOBJECTS\n========\n\nBackground1\n#6a984d \n\nBackground2\n#87b769\n\ntarget_bg\ndarkgray\n\nTarget\n#cccccc #9d9d9d\n00000\n01.10\n0.1.0\n01.10\n00000\n\n\n\nWall\n#305e12 #305e12\n00000\n01000\n00000\n00010\n00000\n\nStehend\nBlack Orange blue white\n.000.\n.111.\n12221\n.333.\n.2.2.\n\nTritt_Ost\nBlack Orange blue white\n....2\n01232\n0123.\n0123.\n....2\n\nTritt_Nord\nBlack Orange blue white\n22..2\n.333.\n.222.\n.111.\n.000.\n\nTritt_West\nBlack Orange blue white\n2....\n.3210\n.3210\n23210\n2....\n\n\nTritt_Sud\nBlack Orange blue white\n.000.\n.111.\n.222.\n.333.\n2..22\n\nCrate\n#dbdbdb #fcfcfc \n.000.\n01110\n01110\n01110\n.000.\n\nost_bewegende\nred\n.....\n.....\n....0\n.....\n.....\n\nnord_bewegende\nred\n..0..\n.....\n.....\n.....\n.....\n\nsud_bewegende\nred\n.....\n.....\n.....\n.....\n..0..\n\nwest_bewegende\nred\n.....\n.....\n0....\n.....\n.....\n\nborder_up \n#a4c88d\n00000\n.....\n.....\n.....\n.....\n\n\nborder_up_right\n#a4c88d\n....0\n.....\n.....\n.....\n.....\n\n\nborder_right\n#a4c88d\n....0\n....0\n....0\n....0\n....0\n\n\nborder_down_right\n#a4c88d\n.....\n.....\n.....\n.....\n....0\n\n\nborder_down\n#a4c88d\n.....\n.....\n.....\n.....\n00000\n\n\nborder_down_left\n#a4c88d\n.....\n.....\n.....\n.....\n0....\n\n\nborder_left \n#a4c88d\n0....\n0....\n0....\n0....\n0....\n\n\nborder_up_left \n#a4c88d\n0....\n.....\n.....\n.....\n.....\n\n\n=======\nLEGEND\n=======\nbackground = Background1 or Background2\nborder = border_up or border_up_right or border_right or border_down_right or border_down or border_down_left or border_left or border_up_left\ntritt = Tritt_Ost or Tritt_Nord or Tritt_West or Tritt_Sud\nplayer = stehend or tritt\nbewegende = nord_bewegende or sud_bewegende or ost_bewegende or west_bewegende\n. = Background1\n# = Wall\nP = stehend\nt = Tritt_Ost\n* = Crate\n@ = Crate and Target and target_bg\nO = Target and target_bg\nobstacle = crate or player or wall\n\n=======\nSOUNDS\n=======\n\nsfx0 29072107 (kick)\nsfx1 83623707 (kickstart)\nsfx2 51785307 (animend)\n\nendlevel 99732902\nendgame 99732902\nstartlevel 24368106\n\n================\nCOLLISIONLAYERS\n================\n\nbewegende\n\nBackground1, Background2\nborder_up \nborder_up_right \nborder_right \nborder_down_right \nborder_down \nborder_down_left \nborder_left \nborder_up_left\ntarget_bg\nplayer, Wall, Crate\nTarget\n\n======\nRULES\n======\n\nright [ Background1 | Background1 | Background1 ] -> [ Background1 | Background2 | Background1 ]\n\nup [ wall | no wall] ->[ wall | border_down ]\ndown [ wall | no wall] ->[ wall | border_up ]\nleft [ wall | no wall] ->[ wall | border_right ]\nright [ wall | no wall] ->[ wall | border_left ]\n\n\nright [ no wall | no wall border_down ] -> [ border_down_right | border_down ]\ndown [border_down_right|no border_right]->[|] \n\n\nleft [ no wall | no wall border_down ] -> [ border_down_left | border_down ]\ndown [border_down_left|no border_left]->[|] \n\nright [ no wall | no wall border_up ] -> [ border_up_right | border_up ]\ndown [no border_right | border_up_right ] ->[|]\n\n\nleft [ no wall | no wall border_up ] -> [ border_up_left | border_up ]\ndown [no border_left | border_up_left ] ->[|]\n\nup [ nord_bewegende Crate | no obstacle ] -> [ > nord_bewegende > Crate | ]again\ndown [ sud_bewegende Crate | no obstacle ] -> [ > sud_bewegende > Crate | ]again\nleft [ west_bewegende Crate | no obstacle ] -> [ > west_bewegende > Crate | ]again\nright [ ost_bewegende Crate | no obstacle ] -> [ > ost_bewegende > Crate | ] again\n\n[tritt_sud ] -> [ Stehend ] sfx2\n[ tritt_west ] -> [ Tritt_Sud ] again\n\n[ tritt_nord ] -> [ Tritt_west ] again\n\n[ tritt_ost ] -> [ Tritt_Nord ] again\n\n[ action Stehend ] -> [ action Tritt_Ost ] again sfx1\n\nright [ Tritt_Ost | crate ] -> [ Tritt_Ost | up crate up nord_bewegende ] again sfx0\nup [ Tritt_nord | crate ] -> [ Tritt_nord | left crate left west_bewegende ] again sfx0\nleft [ Tritt_west | crate ] -> [ Tritt_west | down crate down sud_bewegende ] again sfx0\ndown [ Tritt_sud | crate ] -> [ Tritt_sud | right crate right ost_bewegende ] again sfx0\n\n\nup [ nord_bewegende | obstacle ] -> [ | obstacle ]\ndown [ sud_bewegende | obstacle ] -> [ | obstacle ]\nleft [ west_bewegende | obstacle ] -> [ | obstacle ]\nright [ ost_bewegende | obstacle ] -> [ | obstacle ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Crate on target\nno bewegende\nno tritt\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 6 - FOOTBALL FACT: The goal of football is to foot the ball in the goal (with X).\n#################\n#...#..........##\n#........#.....##\n#..............o#\n##..*.p.#......o#\n#..............o#\n#........#.....##\n#...#..........##\n#################\n\nmessage GOAAAAAL\n\nmessage Level 2 of 6 - FOOTBALL FACT: The goal only counts while the ball is in the net.\n(bad first level because no freedom)\n(ok)\n######\n#.O###\n#..###\n#oP..#\n#..**#\n#..###\n######\nmessage GOAAAAAL\n\nmessage Level 3 of 6 - FOOTBALL FACT: A single goal can be split into many pieces and spread around the field.\n(p. good! not hard)\n#########\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\nmessage GOAAAAAL\n\nmessage Level 4 of 6 - FOOTBALL FACT: A game of football consists of a single footballer and arbitrarily many balls.\n(not hard, kinda fun )\n######\n#.oo.#\n#.**.#\n#p...#\n#.**.#\n#.oo.#\n######\nmessage GOAAAAAL\n\nmessage Level 5 of 6 - FOOTBALL FACT: The only way to lose is to not take part.\n(not too hard, but fun :] )\n#########\n#######o#\n#######o#\n#######o#\n#p.*.*.*#\n#.#.#.#.#\n#.......#\n#########\n\n\nmessage GOAAAAAL\n\nmessage Level 6 of 6 : FOOTBALL FACT: A regulation football must fit within a 5x5 sprite.\n(possibly not as awful. but hard. kinda solved it by trial and error? but still hard?)\n#######\n#*.o.o#\n#.....#\n#..p..#\n#@...*#\n#######\nmessage GOAAAAAL\n\nmessage Congratulations! You are the bicycle kicking champion of the six nations!\n\n(\n(nobody wants to suffer this torture)\n(also p .hard, but smaller at least. you haven't solved yet! even with a solver it's pretty monstrous. best avoided / nixxed?)\n#######\n#@...@#\n#...o.#\n#.p...#\n#*...@#\n#######\n\n\n(also hard)\n#########\n#*..o..*#\n#.......#\n#.......#\n#p......#\n#.......#\n#@.....o#\n#########\n)\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(p. good!)\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*O.#\n##.*P*.#\n#..O*O.#\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(\n[player]->[]\n[crate]->[]\n[target]->[]\n\nchoose 2 option 0.5 [wall]->[]\n+ option 0.5 []->[]\n\nchoose 2 option 0.5 [no wall no player no target]->[wall]\n+ option 0.5 []->[]\n\nchoose 1 [ no wall]->[player]\nchoose 2 [no wall no player no crate]->[crate]\nchoose 2 [ no wall no player]->[target]\n\n)\n\n",[3,0,0,4,2,2,1,3,0,4,1,4,2,4,3,0,4,0,1,1,1,2,2,1,1,1,0,4,2,3,3,0],"background1 wall:0,0,0,0,0,0,background2 wall:1,1,background2 border_down_right border_left border_up crate:2,\nbackground2 border_left border_right:3,background2 border_down border_left border_up_right:4,1,0,0,background1 border_down border_up crate:5,0,background1 border_down border_up target target_bg:6,0,\n1,background2 border_left border_up:7,background2 border_down_left border_up_left:8,background2 border_left stehend:9,background2 border_down border_up_left:10,1,0,background1 border_right border_up:11,background1 border_down_right border_up_right:12,\nbackground1 border_right:13,background1 border_down border_right target target_bg:14,0,1,1,background2 border_down border_up:15,1,1,1,\n0,0,background1 border_down_left border_up:16,background1 border_left:17,background1 border_down border_left:18,0,1,1,background2 border_right border_up:19,\nbackground2 border_right:20,background2 border_down border_right:21,1,0,0,0,0,0,0,\n",7,"1627894148704.56"] + "Bicycle-Kick Football", + ["(Ziel = Tore = gerichtet!)\ntitle Bicycle-Kick Football\nauthor increpare\nhomepage www.increpare.com\n\n( verbose_logging )\nrun_rules_on_level_start\n\nbackground_color #305e12\ntext_color white\n\n========\nOBJECTS\n========\n\nBackground1\n#6a984d \n\nBackground2\n#87b769\n\ntarget_bg\ndarkgray\n\nTarget\n#cccccc #9d9d9d\n00000\n01.10\n0.1.0\n01.10\n00000\n\n\n\nWall\n#305e12 #305e12\n00000\n01000\n00000\n00010\n00000\n\nStehend\nBlack Orange blue white\n.000.\n.111.\n12221\n.333.\n.2.2.\n\nTritt_Ost\nBlack Orange blue white\n....2\n01232\n0123.\n0123.\n....2\n\nTritt_Nord\nBlack Orange blue white\n22..2\n.333.\n.222.\n.111.\n.000.\n\nTritt_West\nBlack Orange blue white\n2....\n.3210\n.3210\n23210\n2....\n\n\nTritt_Sud\nBlack Orange blue white\n.000.\n.111.\n.222.\n.333.\n2..22\n\nCrate\n#dbdbdb #fcfcfc \n.000.\n01110\n01110\n01110\n.000.\n\nost_bewegende\nred\n.....\n.....\n....0\n.....\n.....\n\nnord_bewegende\nred\n..0..\n.....\n.....\n.....\n.....\n\nsud_bewegende\nred\n.....\n.....\n.....\n.....\n..0..\n\nwest_bewegende\nred\n.....\n.....\n0....\n.....\n.....\n\nborder_up \n#a4c88d\n00000\n.....\n.....\n.....\n.....\n\n\nborder_up_right\n#a4c88d\n....0\n.....\n.....\n.....\n.....\n\n\nborder_right\n#a4c88d\n....0\n....0\n....0\n....0\n....0\n\n\nborder_down_right\n#a4c88d\n.....\n.....\n.....\n.....\n....0\n\n\nborder_down\n#a4c88d\n.....\n.....\n.....\n.....\n00000\n\n\nborder_down_left\n#a4c88d\n.....\n.....\n.....\n.....\n0....\n\n\nborder_left \n#a4c88d\n0....\n0....\n0....\n0....\n0....\n\n\nborder_up_left \n#a4c88d\n0....\n.....\n.....\n.....\n.....\n\n\n=======\nLEGEND\n=======\nbackground = Background1 or Background2\nborder = border_up or border_up_right or border_right or border_down_right or border_down or border_down_left or border_left or border_up_left\ntritt = Tritt_Ost or Tritt_Nord or Tritt_West or Tritt_Sud\nplayer = stehend or tritt\nbewegende = nord_bewegende or sud_bewegende or ost_bewegende or west_bewegende\n. = Background1\n# = Wall\nP = stehend\nt = Tritt_Ost\n* = Crate\n@ = Crate and Target and target_bg\nO = Target and target_bg\nobstacle = crate or player or wall\n\n=======\nSOUNDS\n=======\n\nsfx0 29072107 (kick)\nsfx1 83623707 (kickstart)\nsfx2 51785307 (animend)\n\nendlevel 99732902\nendgame 99732902\nstartlevel 24368106\n\n================\nCOLLISIONLAYERS\n================\n\nbewegende\n\nBackground1, Background2\nborder_up \nborder_up_right \nborder_right \nborder_down_right \nborder_down \nborder_down_left \nborder_left \nborder_up_left\ntarget_bg\nplayer, Wall, Crate\nTarget\n\n======\nRULES\n======\n\nright [ Background1 | Background1 | Background1 ] -> [ Background1 | Background2 | Background1 ]\n\nup [ wall | no wall] ->[ wall | border_down ]\ndown [ wall | no wall] ->[ wall | border_up ]\nleft [ wall | no wall] ->[ wall | border_right ]\nright [ wall | no wall] ->[ wall | border_left ]\n\n\nright [ no wall | no wall border_down ] -> [ border_down_right | border_down ]\ndown [border_down_right|no border_right]->[|] \n\n\nleft [ no wall | no wall border_down ] -> [ border_down_left | border_down ]\ndown [border_down_left|no border_left]->[|] \n\nright [ no wall | no wall border_up ] -> [ border_up_right | border_up ]\ndown [no border_right | border_up_right ] ->[|]\n\n\nleft [ no wall | no wall border_up ] -> [ border_up_left | border_up ]\ndown [no border_left | border_up_left ] ->[|]\n\nup [ nord_bewegende Crate | no obstacle ] -> [ > nord_bewegende > Crate | ]again\ndown [ sud_bewegende Crate | no obstacle ] -> [ > sud_bewegende > Crate | ]again\nleft [ west_bewegende Crate | no obstacle ] -> [ > west_bewegende > Crate | ]again\nright [ ost_bewegende Crate | no obstacle ] -> [ > ost_bewegende > Crate | ] again\n\n[tritt_sud ] -> [ Stehend ] sfx2\n[ tritt_west ] -> [ Tritt_Sud ] again\n\n[ tritt_nord ] -> [ Tritt_west ] again\n\n[ tritt_ost ] -> [ Tritt_Nord ] again\n\n[ action Stehend ] -> [ action Tritt_Ost ] again sfx1\n\nright [ Tritt_Ost | crate ] -> [ Tritt_Ost | up crate up nord_bewegende ] again sfx0\nup [ Tritt_nord | crate ] -> [ Tritt_nord | left crate left west_bewegende ] again sfx0\nleft [ Tritt_west | crate ] -> [ Tritt_west | down crate down sud_bewegende ] again sfx0\ndown [ Tritt_sud | crate ] -> [ Tritt_sud | right crate right ost_bewegende ] again sfx0\n\n\nup [ nord_bewegende | obstacle ] -> [ | obstacle ]\ndown [ sud_bewegende | obstacle ] -> [ | obstacle ]\nleft [ west_bewegende | obstacle ] -> [ | obstacle ]\nright [ ost_bewegende | obstacle ] -> [ | obstacle ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Crate on target\nno bewegende\nno tritt\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 6 - FOOTBALL FACT: The goal of football is to foot the ball in the goal (with X).\n#################\n#...#..........##\n#........#.....##\n#..............o#\n##..*.p.#......o#\n#..............o#\n#........#.....##\n#...#..........##\n#################\n\nmessage GOAAAAAL\n\nmessage Level 2 of 6 - FOOTBALL FACT: The goal only counts while the ball is in the net.\n(bad first level because no freedom)\n(ok)\n######\n#.O###\n#..###\n#oP..#\n#..**#\n#..###\n######\nmessage GOAAAAAL\n\nmessage Level 3 of 6 - FOOTBALL FACT: A single goal can be split into many pieces and spread around the field.\n(p. good! not hard)\n#########\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\nmessage GOAAAAAL\n\nmessage Level 4 of 6 - FOOTBALL FACT: A game of football consists of a single footballer and arbitrarily many balls.\n(not hard, kinda fun )\n######\n#.oo.#\n#.**.#\n#p...#\n#.**.#\n#.oo.#\n######\nmessage GOAAAAAL\n\nmessage Level 5 of 6 - FOOTBALL FACT: The only way to lose is to not take part.\n(not too hard, but fun :] )\n#########\n#######o#\n#######o#\n#######o#\n#p.*.*.*#\n#.#.#.#.#\n#.......#\n#########\n\n\nmessage GOAAAAAL\n\nmessage Level 6 of 6 : FOOTBALL FACT: A regulation football must fit within a 5x5 sprite.\n(possibly not as awful. but hard. kinda solved it by trial and error? but still hard?)\n#######\n#*.o.o#\n#.....#\n#..p..#\n#@...*#\n#######\nmessage GOAAAAAL\n\nmessage Congratulations! You are the bicycle kicking champion of the six nations!\n\n(\n(nobody wants to suffer this torture)\n(also p .hard, but smaller at least. you haven't solved yet! even with a solver it's pretty monstrous. best avoided / nixxed?)\n#######\n#@...@#\n#...o.#\n#.p...#\n#*...@#\n#######\n\n\n(also hard)\n#########\n#*..o..*#\n#.......#\n#.......#\n#p......#\n#.......#\n#@.....o#\n#########\n)\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(p. good!)\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*O.#\n##.*P*.#\n#..O*O.#\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(\n[player]->[]\n[crate]->[]\n[target]->[]\n\nchoose 2 option 0.5 [wall]->[]\n+ option 0.5 []->[]\n\nchoose 2 option 0.5 [no wall no player no target]->[wall]\n+ option 0.5 []->[]\n\nchoose 1 [ no wall]->[player]\nchoose 2 [no wall no player no crate]->[crate]\nchoose 2 [ no wall no player]->[target]\n\n)\n\n", [3, 0, 0, 4, 2, 2, 1, 3, 0, 4, 1, 4, 2, 4, 3, 0, 4, 0, 1, 1, 1, 2, 2, 1, 1, 1, 0, 4, 2, 3, 3, 0], "background1 wall:0,0,0,0,0,0,background2 wall:1,1,background2 border_down_right border_left border_up crate:2,\nbackground2 border_left border_right:3,background2 border_down border_left border_up_right:4,1,0,0,background1 border_down border_up crate:5,0,background1 border_down border_up target target_bg:6,0,\n1,background2 border_left border_up:7,background2 border_down_left border_up_left:8,background2 border_left stehend:9,background2 border_down border_up_left:10,1,0,background1 border_right border_up:11,background1 border_down_right border_up_right:12,\nbackground1 border_right:13,background1 border_down border_right target target_bg:14,0,1,1,background2 border_down border_up:15,1,1,1,\n0,0,background1 border_down_left border_up:16,background1 border_left:17,background1 border_down border_left:18,0,1,1,background2 border_right border_up:19,\nbackground2 border_right:20,background2 border_down border_right:21,1,0,0,0,0,0,0,\n", 7, "1627894148704.56"] ], [ - "Van-to-Mobile-Living-Space-Conversion Window-Frame-Installation", - ["title Van-to-Mobile-Living-Space-Conversion Window-Frame-Installation\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nbackground_color lightblue\n\ntext_color black\n\n(levels made with the assistance of PuzzlescriptMIS https://dekeyser.ch/puzzlescriptmis/ )\n\n(thanks an toombercazz für feedback)\n========\nOBJECTS\n========\n\nBackground\ngray\n\nsky ,\nlightblue\n\nTarget\nlightblue\n.000.\n00000\n00000\n00000\n.000.\n\nWall\ndarkgray\n\nfront1 a\n#697175 lightblue\n10000\n00000\n00000\n00000\n00000\n\nfront2 s\n#5bb4e0\n\nfront3a d\n#000000 lightblue\n11100\n11100\n11100\n11100\n11100\n\nfront3b f\n#697175 #000000\n00000\n00000\n11000\n11000\n11000\n\nwheel1 \n#697175 #000000\n00000\n00011\n00111\n01110\n01100\n\nwheel2 \n#697175 #000000\n00000\n11000\n11100\n01110\n00110\n\nwheel3 j\n#000000 #697175 #595652 lightblue\n30011\n30001\n33000\n33300\n22222\n \nwheel4 k\n#697175 #000000 #595652 lightblue\n00113\n01113\n11133\n11333\n22222\n\nroada l\n#595652 lightblue\n11111\n11111\n11111\n11111\n00000\n\n\nroadb ;\n#595652\n\nexhaust '\n#b2dcef #9badb7\n00000\n11111\n11111\n11111\n00000\n\nPlayer_G\n#99e550\n\n\n\nPlayer_B\n#639bff\n\neye_l\n#99e550 #ffffff #000000 #ec4353\n00000\n00100\n01210\n00103\n00000\n\neye_r\n#639bff #ffffff #000000 #ec4353\n00000\n00100\n01210\n30100\n00000\n\n\nCrate\nblack\n.000.\n0...0\n0...0\n0...0\n.000.\n\n=======\nLEGEND\n=======\n\ncosmetic = front1 or front2 or front3a or front3b or wheel1 or wheel2 or wheel3 or wheel4 or roada or roadb or exhaust\n\n\nplayer = Player_G or Player_B\neye = eye_l or eye_r\n\n. = Background\n# = Wall\nq = Player_G\nw = Player_B\n* = Crate\n@ = Crate and Target\nO = Target\n\ng = wheel1 and Wall\nh = wheel2 and Wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 16975107\nendlevel 87300305\nstartlevel 7208105\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nsky\nTarget\nPlayer, Wall, Crate\neye\ncosmetic\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Crate | Crate ] -> [ > Crate | > Crate ]\n\nlate [ eye ] ->[]\nlate [Player_G ]->[Player_G eye_l ]\nlate [Player_b ]->[Player_b eye_r ]\nlate right [ eye_l | no eye_r ] -> [ | ]\nlate right [ no eye_l | eye_r ] -> [ | ]\nlate down [ eye | eye ] -> [ eye | ]\n\nlate down [player_g no eye_l | player_g no eye_l ] -> cancel\n\nlate down [ no player_g | Player_G | no Player_G ] -> cancel\nlate down [ no player_b | Player_b | no Player_b ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 14 - I cut out the holes, now just to slot in the window frames!\n\n(possible first level, easy and requires you to take on both shapes)\n,,,,#########,\n,a###...o..##,\n,ss##......##,\n,ss##.*.*.###,\n,####.qw...##,\n,####.qwo..##,\n,####...#..##,\ndfgh#####gh#',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\nmessage Level 2 of 14 - It looks so much brighter now!\n(super easy but pleasing manouevre)\n,,,,,,#######,\n,,,,,##....##,\n,a####.....##,\n,ss##.*o...##,\n,ss##.qw...##,\n,####.qw...##,\n,####.o*...##,\ndfgh#####gh#',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\nmessage Level 3 of 14 - It makes the space look so much bigger.\n(easy, some satisfying manouevres!)\n,,,,#########,\n,a###......##,\n,ss##......##,\n,ss##.o**..##,\n,####.qw...##,\n,####oqw.#.##,\n,####..#...##,\ndfgh#####gh#',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\nmessage Level 4 of 14 - It's like a real house but I can put windows wherever I want!\n(late easy ok )\n,,,,,,,,,#######,\n,a##,,,,,#....##,\n,ss#,,####....##,\n,ss####o##....##,\n,####qw...*...##,\n,####qwo...*..##,\n,####.......#.##,\ndfghgh####ghgh#',\nlljkjklllljkjklll\n;;;;;;;;;;;;;;;;;\n\n\nmessage Level 5 of 14 - Stupid normie houses with their square-edged windows.\n(3552)\n(fine! late-easy)\n,,,,,#######,\n,,,,,#..#.##,\n,,,,,#..oo##,\n,,,,,#*...##,\n,a####...###,\n,ss#qw..*###,\n,ss#qw....##,\n,####.....##,\n,####.....##,\ndfgh#####gh',\nlljkllllljkll\n;;;;;;;;;;;;;\n\n\nmessage Level 6 of 14 - I can't wait to go curtain-shopping!\n(12442)\n(fun early intermediate)\n,,,,,,,######,\n,,,,,,##....#,\n,,,####.....#,\n,a##.....#..#,\n,ss#.*......#,\n,ss#.oqw*o.##,\n,####.qw..##,,\n,#####....#,,,\n,###,#..###,,,\ndfgh,#gh#',,,,\nlljklljkllllll\n;;;;;;;;;;;;;;\n\n\n\n\nmessage Level 7 of 14 - The view is stunning!\n\n(Early intermediate reduction of the fun part of 3718. I like it!)\n,,,,,,,,,,,,,,,\n,,,,,######,,,,\n,a####..o.####,\n,ss#......o.##,\n,ss#qw.*..*.##,\n,###qw.#....##,\n,########...##,\ndfgh,,,,##gh#',\nlljklllllljklll\n;;;;;;;;;;;;;;;\n\n\nmessage Level 8 of 14 - Safety first!\n(mmeehg ok? can cut tho. early-intermediate. )\n(6174)\n,,,,,######,,,\n,,,,##.##.#,,,\n,,,,#.....###,\n,a###..o...##,\n,ss##..*...##,\n,ss##qw..*.##,\n,####qwo##.##,\n,#####..##.##,\n,###,#..#####,\ndfgh,#gh#',,,,\nlljklljkllllll\n;;;;;;;;;;;;;;\n\n\nmessage Level 9 of 14 - If it's not perfect, I can always add more windows!\n(ok early intermediate, based on 2911)\n,,,,####,,,,,,\n,,,,#..##,,,,,\n,a###o..###,,,\n,ss##..*.o###,\n,ss##.qw**.##,\n,####.qw...##,\n,####...o..##,\ndfgh########',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\nmessage Level 10 of 14 - When I see a wall without a window I...I just feel pity.\n\n(25260)\n(hearly-hard. kind of solved by trial and error? but i can remember the concept at least?)\n,,,,,,#######,,\n,,,,,##..#..##,\n,,,,,#.......#,\n,a##,#.....*.#,\n,ss###.#.....#,\n,ss##..qw.#.##,\n,####.*qw.###,,\n,####.....#,,,,\n,####.o.o.#,,,,\ndfgh#####gh',,,\nlljkllllljkllll\n;;;;;;;;;;;;;;;\n\n\n\n\n\nmessage Level 11 of 14 - The window on a camper van is the window to its soul.\n(pretty nice? intermediate. otoh the key trick was...discovering some new state rather than deduction)\n(16261)\n,,,,,,,,###,,\n,,,,#####.##,\n,,,,#.##...#,\n,a###......#,\n,ss##..*...#,\n,ss##.oqw*.#,\n,####o.qw..#,\n,####..#..##,\n,####..#..#',\ndfgh####gh#,,\nlljklllljklll\n;;;;;;;;;;;;;\n\n\n\n\n\n\nmessage Level 12 of 14 - If you're building a double-decker camper van, remember to have windows on both levels! \n(intermediate. kinda fine? can solve it intentionally)\n(8577)\n\n,,########,,,\n,,#......###,\n,,#.......o#,\n,,#.*......#,\n,a####.#..##,\n,ss#.qw..o.#,\n,ss#.qw*...#,\n,###.#.....#,\n,###.....###,\ndfgh#######',\nlljklllljklll\n;;;;;;;;;;;;;\n\n\n\n\n\nmessage Level 13 of 14 - BRRRR goes my skull when I rest it against the windowpane.\n(fun late intermediate)\n,,,,,#######,,\n,a####...#.##,\n,ss#........#,\n,ss#.qw..*..#,\n,###.qw.*o..#,\n,###....#.o.#,\n,########..##,\ndfgh,,,,#gh#',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\n\n\n\nmessage Level 14 of 14 - These windows won't need updating!\n\n(intermediate. fine?)\n\n,a##,############,\n,ss###o......#.##,\n,ss##........*.##,\n,####qw.*..*...##,\n,####qw.##..o.o##,\n,####..###.....##,\ndfgh##gh,#gh##gh',\nlljklljklljklljkll\n;;;;;;;;;;;;;;;;;;\n\n\nmessage Congratulations!! You're a master of your craft!\n\n",[3,3,0,3,2,0,3,3,1,2,2,3,2,3,0],"background sky:0,0,0,0,0,0,0,background front3a:1,background roada:2,background roadb:3,0,0,background front1:4,background front2:5,5,\nbackground wall:6,6,background front3b:7,2,3,0,0,6,5,5,6,6,background wall wheel1:8,background wheel3:9,3,\n0,0,6,6,6,6,6,background wall wheel2:10,background wheel4:11,3,0,0,6,background:12,12,\n12,6,0,2,3,0,6,6,12,12,12,6,0,2,3,\n0,6,12,12,12,12,6,0,2,3,0,6,12,12,12,\n6,6,0,2,3,0,6,background target:13,12,12,12,6,6,2,3,\n0,6,12,background player_g:14,background eye_l player_g:15,12,12,6,2,3,0,6,6,background crate target:16,background eye_r player_b:17,\nbackground player_b:18,12,8,9,3,0,0,6,12,background crate:19,12,12,10,11,3,\n0,0,6,6,6,6,6,6,2,3,0,0,6,6,6,\n6,6,background exhaust:20,2,3,0,0,0,0,0,0,0,0,2,3,\n",13,"1627894165909.7253"] + "Van-to-Mobile-Living-Space-Conversion Window-Frame-Installation", + ["title Van-to-Mobile-Living-Space-Conversion Window-Frame-Installation\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nbackground_color lightblue\n\ntext_color black\n\n(levels made with the assistance of PuzzlescriptMIS https://dekeyser.ch/puzzlescriptmis/ )\n\n(thanks an toombercazz für feedback)\n========\nOBJECTS\n========\n\nBackground\ngray\n\nsky ,\nlightblue\n\nTarget\nlightblue\n.000.\n00000\n00000\n00000\n.000.\n\nWall\ndarkgray\n\nfront1 a\n#697175 lightblue\n10000\n00000\n00000\n00000\n00000\n\nfront2 s\n#5bb4e0\n\nfront3a d\n#000000 lightblue\n11100\n11100\n11100\n11100\n11100\n\nfront3b f\n#697175 #000000\n00000\n00000\n11000\n11000\n11000\n\nwheel1 \n#697175 #000000\n00000\n00011\n00111\n01110\n01100\n\nwheel2 \n#697175 #000000\n00000\n11000\n11100\n01110\n00110\n\nwheel3 j\n#000000 #697175 #595652 lightblue\n30011\n30001\n33000\n33300\n22222\n \nwheel4 k\n#697175 #000000 #595652 lightblue\n00113\n01113\n11133\n11333\n22222\n\nroada l\n#595652 lightblue\n11111\n11111\n11111\n11111\n00000\n\n\nroadb ;\n#595652\n\nexhaust '\n#b2dcef #9badb7\n00000\n11111\n11111\n11111\n00000\n\nPlayer_G\n#99e550\n\n\n\nPlayer_B\n#639bff\n\neye_l\n#99e550 #ffffff #000000 #ec4353\n00000\n00100\n01210\n00103\n00000\n\neye_r\n#639bff #ffffff #000000 #ec4353\n00000\n00100\n01210\n30100\n00000\n\n\nCrate\nblack\n.000.\n0...0\n0...0\n0...0\n.000.\n\n=======\nLEGEND\n=======\n\ncosmetic = front1 or front2 or front3a or front3b or wheel1 or wheel2 or wheel3 or wheel4 or roada or roadb or exhaust\n\n\nplayer = Player_G or Player_B\neye = eye_l or eye_r\n\n. = Background\n# = Wall\nq = Player_G\nw = Player_B\n* = Crate\n@ = Crate and Target\nO = Target\n\ng = wheel1 and Wall\nh = wheel2 and Wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 16975107\nendlevel 87300305\nstartlevel 7208105\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nsky\nTarget\nPlayer, Wall, Crate\neye\ncosmetic\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Crate | Crate ] -> [ > Crate | > Crate ]\n\nlate [ eye ] ->[]\nlate [Player_G ]->[Player_G eye_l ]\nlate [Player_b ]->[Player_b eye_r ]\nlate right [ eye_l | no eye_r ] -> [ | ]\nlate right [ no eye_l | eye_r ] -> [ | ]\nlate down [ eye | eye ] -> [ eye | ]\n\nlate down [player_g no eye_l | player_g no eye_l ] -> cancel\n\nlate down [ no player_g | Player_G | no Player_G ] -> cancel\nlate down [ no player_b | Player_b | no Player_b ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 14 - I cut out the holes, now just to slot in the window frames!\n\n(possible first level, easy and requires you to take on both shapes)\n,,,,#########,\n,a###...o..##,\n,ss##......##,\n,ss##.*.*.###,\n,####.qw...##,\n,####.qwo..##,\n,####...#..##,\ndfgh#####gh#',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\nmessage Level 2 of 14 - It looks so much brighter now!\n(super easy but pleasing manouevre)\n,,,,,,#######,\n,,,,,##....##,\n,a####.....##,\n,ss##.*o...##,\n,ss##.qw...##,\n,####.qw...##,\n,####.o*...##,\ndfgh#####gh#',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\nmessage Level 3 of 14 - It makes the space look so much bigger.\n(easy, some satisfying manouevres!)\n,,,,#########,\n,a###......##,\n,ss##......##,\n,ss##.o**..##,\n,####.qw...##,\n,####oqw.#.##,\n,####..#...##,\ndfgh#####gh#',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\nmessage Level 4 of 14 - It's like a real house but I can put windows wherever I want!\n(late easy ok )\n,,,,,,,,,#######,\n,a##,,,,,#....##,\n,ss#,,####....##,\n,ss####o##....##,\n,####qw...*...##,\n,####qwo...*..##,\n,####.......#.##,\ndfghgh####ghgh#',\nlljkjklllljkjklll\n;;;;;;;;;;;;;;;;;\n\n\nmessage Level 5 of 14 - Stupid normie houses with their square-edged windows.\n(3552)\n(fine! late-easy)\n,,,,,#######,\n,,,,,#..#.##,\n,,,,,#..oo##,\n,,,,,#*...##,\n,a####...###,\n,ss#qw..*###,\n,ss#qw....##,\n,####.....##,\n,####.....##,\ndfgh#####gh',\nlljkllllljkll\n;;;;;;;;;;;;;\n\n\nmessage Level 6 of 14 - I can't wait to go curtain-shopping!\n(12442)\n(fun early intermediate)\n,,,,,,,######,\n,,,,,,##....#,\n,,,####.....#,\n,a##.....#..#,\n,ss#.*......#,\n,ss#.oqw*o.##,\n,####.qw..##,,\n,#####....#,,,\n,###,#..###,,,\ndfgh,#gh#',,,,\nlljklljkllllll\n;;;;;;;;;;;;;;\n\n\n\n\nmessage Level 7 of 14 - The view is stunning!\n\n(Early intermediate reduction of the fun part of 3718. I like it!)\n,,,,,,,,,,,,,,,\n,,,,,######,,,,\n,a####..o.####,\n,ss#......o.##,\n,ss#qw.*..*.##,\n,###qw.#....##,\n,########...##,\ndfgh,,,,##gh#',\nlljklllllljklll\n;;;;;;;;;;;;;;;\n\n\nmessage Level 8 of 14 - Safety first!\n(mmeehg ok? can cut tho. early-intermediate. )\n(6174)\n,,,,,######,,,\n,,,,##.##.#,,,\n,,,,#.....###,\n,a###..o...##,\n,ss##..*...##,\n,ss##qw..*.##,\n,####qwo##.##,\n,#####..##.##,\n,###,#..#####,\ndfgh,#gh#',,,,\nlljklljkllllll\n;;;;;;;;;;;;;;\n\n\nmessage Level 9 of 14 - If it's not perfect, I can always add more windows!\n(ok early intermediate, based on 2911)\n,,,,####,,,,,,\n,,,,#..##,,,,,\n,a###o..###,,,\n,ss##..*.o###,\n,ss##.qw**.##,\n,####.qw...##,\n,####...o..##,\ndfgh########',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\nmessage Level 10 of 14 - When I see a wall without a window I...I just feel pity.\n\n(25260)\n(hearly-hard. kind of solved by trial and error? but i can remember the concept at least?)\n,,,,,,#######,,\n,,,,,##..#..##,\n,,,,,#.......#,\n,a##,#.....*.#,\n,ss###.#.....#,\n,ss##..qw.#.##,\n,####.*qw.###,,\n,####.....#,,,,\n,####.o.o.#,,,,\ndfgh#####gh',,,\nlljkllllljkllll\n;;;;;;;;;;;;;;;\n\n\n\n\n\nmessage Level 11 of 14 - The window on a camper van is the window to its soul.\n(pretty nice? intermediate. otoh the key trick was...discovering some new state rather than deduction)\n(16261)\n,,,,,,,,###,,\n,,,,#####.##,\n,,,,#.##...#,\n,a###......#,\n,ss##..*...#,\n,ss##.oqw*.#,\n,####o.qw..#,\n,####..#..##,\n,####..#..#',\ndfgh####gh#,,\nlljklllljklll\n;;;;;;;;;;;;;\n\n\n\n\n\n\nmessage Level 12 of 14 - If you're building a double-decker camper van, remember to have windows on both levels! \n(intermediate. kinda fine? can solve it intentionally)\n(8577)\n\n,,########,,,\n,,#......###,\n,,#.......o#,\n,,#.*......#,\n,a####.#..##,\n,ss#.qw..o.#,\n,ss#.qw*...#,\n,###.#.....#,\n,###.....###,\ndfgh#######',\nlljklllljklll\n;;;;;;;;;;;;;\n\n\n\n\n\nmessage Level 13 of 14 - BRRRR goes my skull when I rest it against the windowpane.\n(fun late intermediate)\n,,,,,#######,,\n,a####...#.##,\n,ss#........#,\n,ss#.qw..*..#,\n,###.qw.*o..#,\n,###....#.o.#,\n,########..##,\ndfgh,,,,#gh#',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\n\n\n\nmessage Level 14 of 14 - These windows won't need updating!\n\n(intermediate. fine?)\n\n,a##,############,\n,ss###o......#.##,\n,ss##........*.##,\n,####qw.*..*...##,\n,####qw.##..o.o##,\n,####..###.....##,\ndfgh##gh,#gh##gh',\nlljklljklljklljkll\n;;;;;;;;;;;;;;;;;;\n\n\nmessage Congratulations!! You're a master of your craft!\n\n", [3, 3, 0, 3, 2, 0, 3, 3, 1, 2, 2, 3, 2, 3, 0], "background sky:0,0,0,0,0,0,0,background front3a:1,background roada:2,background roadb:3,0,0,background front1:4,background front2:5,5,\nbackground wall:6,6,background front3b:7,2,3,0,0,6,5,5,6,6,background wall wheel1:8,background wheel3:9,3,\n0,0,6,6,6,6,6,background wall wheel2:10,background wheel4:11,3,0,0,6,background:12,12,\n12,6,0,2,3,0,6,6,12,12,12,6,0,2,3,\n0,6,12,12,12,12,6,0,2,3,0,6,12,12,12,\n6,6,0,2,3,0,6,background target:13,12,12,12,6,6,2,3,\n0,6,12,background player_g:14,background eye_l player_g:15,12,12,6,2,3,0,6,6,background crate target:16,background eye_r player_b:17,\nbackground player_b:18,12,8,9,3,0,0,6,12,background crate:19,12,12,10,11,3,\n0,0,6,6,6,6,6,6,2,3,0,0,6,6,6,\n6,6,background exhaust:20,2,3,0,0,0,0,0,0,0,0,2,3,\n", 13, "1627894165909.7253"] ], [ - "The sponge what lights up the seafloor", - ["title The sponge what lights up the seafloor\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\n( verbose_logging )\n\nbackground_color #097ca9\n\ntext_color black\nnoaction\n========\nOBJECTS\n========\n\nBackground1\n#097ca9 #026f9a\n00000\n00000\n00100\n00000\n00000\n\n\nBackground2\n#097ca9 #026f9a\n00000\n00000\n00000\n00000\n00000\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\n#005373 #0a6284\n00000\n00000\n00000\n00000\n00000\n\n\nPlayer_tl\npink red\n01111\n1....\n1....\n1....\n1....\n\nPlayer_tr\npink red\n11110\n....1\n....1\n....1\n....1\n\nPlayer_bl\npink red\n1....\n1....\n1....\n1....\n01111\n\nPlayer_br\npink red\n....1\n....1\n....1\n....1\n11110\n\nsponge_thick\nyellow\n.000.\n00000\n00000\n00000\n.000.\n\nsponge_thin\nyellow\n.000.\n00000\n00000\n00000\n.000.\n\nCrate_tl \n#b685b5 #8a4288\n00000\n01111\n01111\n01111\n01111\n\nCrate_tr \n#b685b5 #8a4288\n00000\n11110\n11110\n11110\n11110\n\nCrate_bl \n#b685b5 #8a4288\n01111\n01111\n01111\n01111\n00000\n\nCrate_br \n#b685b5 #8a4288\n11110\n11110\n11110\n11110\n00000\n\nsponge_ok\n#ff00ff\n0....\n.....\n.....\n.....\n.....\n\ntargetlight\n#83e5f9 #27aeca\n.....\n.....\n..0..\n.....\n.....\n\nskin_tl_loose \n#d5d156 #d2b140 #af8c18\n.0000\n01212\n02121\n01212\n02121\n\n\nskin_tr_loose\n#d5d156 #d2b140 #af8c18\n0000.\n12120\n21210\n12120\n21210\n\nskin_bl_loose\n#d5d156 #d2b140 #af8c18\n01212\n02121\n01212\n02121\n.0000\n\nskin_br_loose\n#d2b140 #af8c18 #d5d156\n01012\n10102\n01012\n10102\n2222.\n\n\n\nskin_tl_tight\n#d5d156 #9b7907\n.0000\n01111\n01111\n01111\n01111\n\nskin_tr_tight\n#d5d156 #9b7907\n0000.\n11110\n11110\n11110\n11110\n\nskin_bl_tight\n#d5d156 #9b7907\n01111\n01111\n01111\n01111\n.0000\n\nskin_br_tight\n#9b7907 #d5d156\n00001\n00001\n00001\n00001\n1111.\n\nskin_n\n#d5d156\n00000\n.....\n.....\n.....\n.....\n\nskin_s\n#d5d156\n.....\n.....\n.....\n.....\n00000\n\nskin_e\n#d5d156\n....0\n....0\n....0\n....0\n....0\n\nskin_w\n#d5d156\n0....\n0....\n0....\n0....\n0....\n\nface_pressed_eye_l\n#ffffff #639bff\n.....\n..01.\n..00.\n.....\n.....\n\nface_pressed_eye_r\n#ffffff #639bff\n.....\n.01..\n.00..\n.....\n.....\n\nface_normal_eye_l\n#ffffff #639bff\n.....\n.....\n..01.\n..00.\n.....\n\n\nface_normal_eye_r\n#ffffff #639bff\n.....\n.....\n.01..\n.00..\n.....\n\nface_normal_mouth_l\n#000000\n.....\n...00\n....0\n.....\n.....\n\n\nface_normal_mouth_r\n#000000\n.....\n00...\n0....\n.....\n.....\n\nface_pressed_mouth\n#000000\n.....\n..0..\n..0..\n.....\n.....\n\nface_pressed_eyes_both\n#ffffff #639bff #097ca9\n.....\n.....\n01.01\n00.00\n.....\n\n\nface_pressed_horizont_full_l\n#ffffff #639bff #000000\n.....\n.00..\n.01.2\n....2\n.....\n\n\nface_pressed_horizont_full_r\n#ffffff #000000 #639bff\n.....\n..00.\n1.20.\n1....\n.....\n\nforcesponge\ntransparent\n\nhalttag\ntransparent\n\n=======\nLEGEND\n=======\n\nface = face_pressed_eye_l or face_pressed_eye_r or face_normal_eye_l or face_normal_eye_r or face_normal_mouth_l or face_normal_mouth_r or face_pressed_mouth or face_pressed_eyes_both or face_pressed_horizont_full_l or face_pressed_horizont_full_r\nplayer = Player_tl or Player_tr or Player_bl or Player_br\ncrate = Crate_tl or Crate_tr or Crate_bl or Crate_br\nsponge = sponge_thick or sponge_thin \nobstacle = sponge or wall or Crate\n. = Background1\n, = Background2\n# = Wall and Background1\nq = Player_tl and sponge_thin and Background1\nw = Player_tr and sponge_thin and Background1\ne = Player_bl and sponge_thin and Background1\nr = player_br and sponge_thin and Background1\nO = Target and Background1\nz = crate_tl and Target and Background1\nx = crate_tr and Target and Background1\nc = crate_bl and Target and Background1\nb = Crate_br and Target and Background1\na = Crate_tl and Background1\ns = Crate_tr and Background1\nd = Crate_bl and Background1\nf = Crate_br and Background1\n\nskin_flesh = skin_tl_loose or skin_tr_loose or skin_bl_loose or skin_br_loose or skin_tl_tight or skin_tr_tight or skin_bl_tight or skin_br_tight \n\nskin_barrier = skin_n or skin_s or skin_e or skin_W\n\n\nskin = skin_flesh or skin_Barrier\nbackground = Background1 or Background2\n=======\nSOUNDS\n=======\n\nCrate MOVE 2330507\nstartlevel 93226500\nendlevel 74584306\n================\nCOLLISIONLAYERS\n================\n\nplayer\nsponge_ok\n\n\nBackground1, Background2\n\nsponge, Wall, Crate\n\nTarget\n\nskin_flesh\nskin_n\nskin_s\nskin_e\nskin_w\n\n\nface\ntargetlight\n\nforcesponge\nhalttag\n\n======\nRULES\n======\n\n[moving player] -> again\n\n\n(drawing code begin)\n(\nright [action player] [ Player_tl | ] -> [action player] [ player_tl | Player_tr sponge_thin ]\ndown [action player] [ player_tl | ] -> [action player] [ player_tl | Player_bl sponge_thin]\ndown [action player] [ player_tr | ] -> [action player] [ player_tr | Player_br sponge_thin]\n\nright [action player] [ Crate_tl target| no Crate ] -> [action player] [ Crate_tl target| Crate_tr target ]\ndown [action player] [ Crate_tl target| no Crate] -> [action player] [ Crate_tl target| Crate_bl target]\ndown [action player] [ Crate_tr target|no Crate ] -> [action player] [ Crate_tr target| Crate_br target]\n\nright [action player] [ Crate_tl no target| no Crate ] -> [action player] [ Crate_tl no target| Crate_tr ]\ndown [action player] [ Crate_tl no target| no Crate] -> [action player] [ Crate_tl no target| Crate_bl ]\ndown [action player] [ Crate_tr no target|no Crate ] -> [action player] [ Crate_tr no target| Crate_br ]\n)\n(drawing code end)\n\n[sponge_ok]->[]\n[moving player sponge] -> [ moving player moving sponge]\n\n[ > sponge | Crate ] -> [ > sponge | > Crate ]\n\n\n(expanding sponge applies force)\n[ stationary player ] [ sponge_thick | crate player ] ->[ stationary player ] [ sponge_thick forcesponge| > crate player ]\n\n(propagate movements)\nright [moving Crate_tl | stationary Crate_tr ] -> [moving Crate_tl | moving Crate_tr ]\n+ right [ stationary Crate_tl | moving Crate_tr ] -> [moving Crate_tl | moving Crate_tr ] \n+ right [moving Crate_bl | stationary Crate_br ] -> [moving Crate_bl | moving Crate_br ] \n+ right [ stationary Crate_bl | moving Crate_br ] -> [moving Crate_bl | moving Crate_br ] \n\n+ down [ moving crate_tl | stationary crate_bl ] -> [ moving crate_tl | moving crate_bl ] \n+ down [ stationary crate_tl | moving crate_bl ] -> [ moving crate_tl | moving crate_bl ]\n+ down [ moving crate_tr | stationary crate_br ] -> [ moving crate_tr | moving crate_br ] \n+ down [ stationary crate_tr | moving crate_br ] -> [ moving crate_tr | moving crate_br ]\n\n+ [ > crate | stationary crate ] -> [ > crate | > crate ]\n\n\n(unpropagate movements)\n\n[ > crate | stationary obstacle ] -> [ crate | obstacle ]\n+ right [moving Crate_tl | stationary Crate_tr ] -> [ Crate_tl | Crate_tr ]\n+ right [ stationary Crate_tl | moving Crate_tr ] -> [ Crate_tl | Crate_tr ] \n+ right [moving Crate_bl | stationary Crate_br ] -> [ Crate_bl | Crate_br ] \n+ right [ stationary Crate_bl | moving Crate_br ] -> [ Crate_bl | Crate_br ] \n\n+ down [ moving crate_tl | stationary crate_bl ] -> [ crate_tl | crate_bl ] \n+ down [ stationary crate_tl | moving crate_bl ] -> [ crate_tl | crate_bl ]\n+ down [ moving crate_tr | stationary crate_br ] -> [ crate_tr | crate_br ] \n+ down [ stationary crate_tr | moving crate_br ] -> [ crate_tr | crate_br ]\n\n(add halt tag to allcrates)\n[moving crate]->[moving crate halttag]\n(remove halttags along propagation)\n[ sponge | crate halttag ] -> [ sponge | crate no halttag ]\n\n+ right [no halttag Crate_tl | halttag Crate_tr ] -> [ Crate_tl | Crate_tr ]\n+ right [ halttag Crate_tl | no halttag Crate_tr ] -> [ Crate_tl | Crate_tr ] \n+ right [no halttag Crate_bl | halttag Crate_br ] -> [ Crate_bl | Crate_br ] \n+ right [ halttag Crate_bl | no halttag Crate_br ] -> [ Crate_bl | Crate_br ] \n\n+ down [ no halttag crate_tl | halttag crate_bl ] -> [ crate_tl | crate_bl ] \n+ down [ halttag crate_tl | no halttag crate_bl ] -> [ crate_tl | crate_bl ]\n+ down [ no halttag crate_tr | halttag crate_br ] -> [ crate_tr | crate_br ] \n+ down [ halttag crate_tr | no halttag crate_br ] -> [ crate_tr | crate_br ]\n\n+ [ > crate no halttag | > crate halttag ] -> [ > crate | > crate ]\n\n[moving crate halttag]->[stationary crate]\n\n(squish sponge if necessary)\n[ > sponge_thin | > sponge_thin | stationary obstacle ] -> [ | sponge_thick | stationary obstacle ]\n\n[ no sponge | > sponge_thick | no sponge no obstacle ] -> [ | sponge_thin | sponge_thin ]\nlate [ sponge no player ] -> cancel\n\nlate [ sponge_thick player | no obstacle player] -> [ sponge_thin player | sponge_thin player ]\n\nlate [ sponge_thick | no sponge player ] -> [sponge_thick sponge_ok | player ]\n\nlate [sponge_thick no sponge_ok ]-> cancel\n\n(draw skin)\nlate [skin]->[]\nlate [Player_tl sponge_thick ] -> [Player_tl sponge_thick skin_tl_tight ]\nlate [Player_tr sponge_thick ] -> [Player_tr sponge_thick skin_tr_tight ]\nlate [Player_bl sponge_thick ] -> [Player_bl sponge_thick skin_bl_tight ]\nlate [Player_br sponge_thick ] -> [Player_br sponge_thick skin_br_tight ]\n\nlate [Player_tl sponge_thin ] -> [Player_tl sponge_thin skin_tl_loose ]\nlate [Player_tr sponge_thin ] -> [Player_tr sponge_thin skin_tr_loose ]\nlate [Player_bl sponge_thin ] -> [Player_bl sponge_thin skin_bl_loose ]\nlate [Player_br sponge_thin ] -> [Player_br sponge_thin skin_br_loose ]\n\nlate up [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_n | player no sponge ]\nlate down [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_s | player no sponge ]\nlate left [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_w | player no sponge ]\nlate right [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_e | player no sponge ]\n\n(draw face (eyes/mouth))\nlate [face]->[]\n\nlate right [ sponge_thick no face | sponge_thick no face ] -> [ sponge_thick face_pressed_horizont_full_l | sponge_thick face_pressed_horizont_full_r]\n\nlate down [ sponge_thick no face | sponge_thick no face ] -> [ sponge_thick face_pressed_eyes_both | sponge_thick face_pressed_mouth]\n\nlate right [ player_tl sponge_thick | no sponge ] -> [ player_tl sponge_thick face_pressed_eyes_both | no sponge ]\nlate left [ player_tr sponge_thick | no sponge ] -> [ player_tr sponge_thick face_pressed_eyes_both | no sponge ]\n\n\nlate right [ Player_tl sponge_thin no face ] -> [ player_tl sponge_thin face_normal_eye_l ]\nlate right [ Player_tl sponge_thick no face ] -> [ player_tl sponge_thick face_pressed_eye_l ]\n\nlate right [ Player_tr sponge_thin no face ] -> [ player_tr sponge_thin face_normal_eye_r ]\nlate right [ Player_tr sponge_thick no face ] -> [ player_tr sponge_thick face_pressed_eye_r ]\n\nlate right [player_bl sponge_thin no face | player_Br sponge_thin no face ] -> [player_bl sponge_thin face_normal_mouth_l | player_Br sponge_thin face_normal_mouth_r ]\n\nlate right [ player_bl sponge no face | no sponge ] -> [ player_bl sponge face_pressed_mouth |]\nlate left [ player_br sponge no face | no sponge ] -> [ player_br sponge face_pressed_mouth |]\n\nlate [ player_bl sponge_thick no face ] -> [ player_bl sponge_thick face_pressed_horizont_full_l ]\nlate [ player_bl sponge_thin no face ] -> [ player_bl sponge_thin face_normal_mouth_l ]\n\n\nlate [ player_br sponge_thick no face ] -> [ player_br sponge_thick face_pressed_horizont_full_r ]\nlate [ player_br sponge_thin no face ] -> [ player_br sponge_thin face_normal_mouth_r ]\n\n(place lights on fulfilled targets)\nlate [targetlight]->[]\nlate [crate Target ] -> [ crate target targetlight]\n\n\nlate [ forcesponge sponge_thick ]->cancel\nlate [forcesponge]->[]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 10 : \"I am yellow.\"\n\n(p.easy)\n,,,,,,,,#####\n#########...#\n#oo.........#\n#oozxzxas.qw#\n###cbcbdf.er#\n,,#.........#\n,,#######...#\n,,,,,,,,#####\n\n\n\n\nmessage Level 2 of 10 : \"You can sqeeze me.\"\n\n(pretty easy, but fun?)\n,,,,,,,,#####\n,,,,,,###...#\n#######.....#\n#..,..ooqw..#\n#.....ooer.##\n#.as..##oo.#,\n#.df..##oo##,\n#####.....#,,\n,,,,##....#,,\n,,,,,#as..#,,\n,,,,,#df..#,,\n,,,,,#....#,,\n,,,,,######,,\n\nmessage Level 3 of 10 : \"It doesn't hurt at all.\"\n########\n#......#\n#.##qw.#\n#.##er.#\n#.aszx.#\n#.dfcb.#\n#.oozx.#\n#.oocb.#\n#......#\n########\n\n\nmessage Level 4 of 10 : \"I like to make the lights go on.\"\n(borderline not cute but tolerable)\n\n######,,,,\n#oo..##,,,\n#oo...##,,\n#qwasas##,\n#erdfdf.##\n###......#\n,,##.....#\n,,,##....#\n,,,,##...#\n,,,,,##oo#\n,,,,,,#oo#\n,,,,,,####\n\n\nmessage Level 5 of 10 : \"It's dark here on the seabed.\"\n\n(too like original/)\n,,######,,,,\n###....#####\n#.......as.#\n#.......df.#\n#.#....#as.#\n#oo..oo#df.#\n#oo..oo#qw.#\n########er.#\n,,,,,,,#####\n\nmessage Level 6 of 10 : \"I wonder what colour my eyes are.\"\n(ok not too hard)\n,,,######\n,,##....#\n,,#.zx..#\n###.cb..#\n#.asooqw#\n#.dfooer#\n#.......#\n#########\n\n\n\n\n\nmessage Level 7 of 10 : \"Sometimes corpses fall down from the sky.\"\n\n(fine. slightly tricky)\n#####,,,\n#.oo#,,,\n#.oo#,,,\n#...#,,,\n#...#,,,\n#...####\n#zx....#\n#cb....#\n#...as.#\n#...df.#\n#...####\n#...#,,,\n#qw.#,,,\n#er.#,,,\n#####,,,\n\n\nmessage Level 8 of 10 : \"The lights twinkle as if to say 'Thank you, spongey!' \"\n(p ok! not super easy)\n,,,#########\n,,,#.ooooqw#\n,,,#.ooooer#\n,,,#.asas..#\n,,,#.dfdf..#\n#####..#####\n#......###,,\n#........#,,\n#..#.....#,,\n#.....#..#,,\n#........#,,\n##########,,\n\n\nmessage Level 9 of 10 : \"Am I the only yellow thing in the universe?\"\n(I like this one)\n,,,,###########\n,,,##...#...oo#\n,,##as......oo#\n,##.df#...qw..#\n##....#...er..#\n#.............#\n#...###..zx...#\n#....##..cb...#\n##....##......#\n,##....###.#..#\n,,##.......#..#\n,,,##.........#\n,,,,#####.....#\n,,,,,,,,###..##\n,,,,,,,,,,####,\n\n\nmessage Level 10 of 10 : \"It's lonely, here on the seabed.\"\n(fine/hardosh)\n.########.\n###.oo..##\n###.oo...#\n#..asas..#\n#oodfdfoo#\n#ooasasoo#\n#..dfdfqw#\n#...oo.er#\n##..oo..##\n.########.\n\nmessage The End : \"I hope I was a good sponge. Was I a good sponge?\"\n\n(\n########\n#......#\n#...as.#\n#..#df.#\n#..as..#\n##.df..#\n#aszxo.#\n#dfcbqw#\n#....er#\n########\n\n########\n#......#\n#......#\n#......#\n#..as..#\n##.df..#\n#aszxo.#\n#dfcbqw#\n#....er#\n########\n)\n\n\n(\n\n################\n#oo.....,....oo#\n#oo..........oo#\n#..##..as..##..#\n#..##..df..##..#\n#.....####.....#\n#....##..##....#\n#..as#....#as..#\n#..df#....#df..#\n#....##..##....#\n#.....####.....#\n#..##..as..##..#\n#..##..df..##..#\n#oo......qw..oo#\n#oo......er..oo#\n################\n\n############\n#..........#\n#..,..ooqw.#\n#.....ooer.#\n#.as..##oo.#\n#.df..##oo.#\n#####......#\n....##.....#\n.....#as...#\n.....#df...#\n.....#.....#\n.....#######\n\n\n)\n\n(\n(ok? doesn't involve fancy logic, just pushign things around, but that's ok sometimes?)\n.########.\n##......##\n#...oo.qw#\n#..axzser#\n#.ocfdbo.#\n#.ozsaxo.#\n#..dbcf..#\n#...oo...#\n##......##\n.########.\n)\n\n\n\n(\n(too easy)\n.########.\n##..oo..##\n#...oo...#\n#..asas..#\n#oodfdfoo#\n#ooasasoo#\n#..dfdfqw#\n#...oo.er#\n##..oo..##\n.########.\n\n)\n\n\n\n(above level is just better version of this even if uglier)\n(\n################\n#..............#\n#......qw......#\n#......er......#\n#..............#\n#......as......#\n#......df......#\n#......##......#\n#oo..........oo#\n#oo....as....oo#\n###...#df#...###\n,,#..........#,,\n,,#...#..#...#,,\n,,#...#..#...#,,\n,,#..##..##..#,,\n,,##.##..##.##,,\n,,,#.##..##.#,,,\n,,,#........#,,,\n,,,#........#,,,\n,,,##########,,,\n)\n",[2,2,2,3,2,1,1,1,0,0,1,1,1,2,2,3,2,1,1,1,3,1,2,2,3,3,2,3,0,1,0,1,1,0,0,0,3,0,0,0,0,1,1,0,1,2,2,3,0,1,2,2,1,2,1,2,3,0,3,3,3,0,3,3,2,2,2,2,1,1,0,0,3,0,0,1,1],"background2:0,0,0,0,background1 wall:1,1,1,1,1,0,0,0,0,0,0,\n0,0,0,1,1,background1:2,2,2,1,1,0,0,0,0,0,\n0,0,1,1,2,2,2,2,2,1,1,0,0,0,0,\n0,1,1,2,2,2,2,2,2,2,1,1,0,0,0,\n1,1,2,2,background1 crate_tl:3,background1 crate_bl:4,1,2,2,2,2,1,1,0,0,\n1,2,2,2,background1 crate_tr:5,background1 crate_br:6,1,1,2,2,2,2,1,0,0,\n1,2,2,background1 player_tl wall:7,background1 player_bl wall:8,2,1,1,1,2,2,2,1,0,0,\n1,2,2,background1 face_pressed_eyes_both player_tr skin_tr_tight sponge_ok sponge_thick:9,background1 face_pressed_mouth player_br skin_br_tight sponge_ok sponge_thick:10,2,2,2,1,1,2,2,1,0,0,\n1,1,2,2,2,2,2,2,2,1,2,2,1,1,0,\n1,2,2,2,2,2,background1 target:11,11,2,1,2,2,2,1,0,\n1,2,2,2,2,2,11,11,2,2,2,2,2,1,1,\n1,2,2,2,2,2,2,3,4,1,1,2,2,2,1,\n1,11,11,2,2,2,2,5,6,2,2,2,2,2,1,\n1,11,11,2,2,2,2,2,2,2,2,2,2,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,\n",17,"1627894176777.0325"] + "The sponge what lights up the seafloor", + ["title The sponge what lights up the seafloor\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\n( verbose_logging )\n\nbackground_color #097ca9\n\ntext_color black\nnoaction\n========\nOBJECTS\n========\n\nBackground1\n#097ca9 #026f9a\n00000\n00000\n00100\n00000\n00000\n\n\nBackground2\n#097ca9 #026f9a\n00000\n00000\n00000\n00000\n00000\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\n#005373 #0a6284\n00000\n00000\n00000\n00000\n00000\n\n\nPlayer_tl\npink red\n01111\n1....\n1....\n1....\n1....\n\nPlayer_tr\npink red\n11110\n....1\n....1\n....1\n....1\n\nPlayer_bl\npink red\n1....\n1....\n1....\n1....\n01111\n\nPlayer_br\npink red\n....1\n....1\n....1\n....1\n11110\n\nsponge_thick\nyellow\n.000.\n00000\n00000\n00000\n.000.\n\nsponge_thin\nyellow\n.000.\n00000\n00000\n00000\n.000.\n\nCrate_tl \n#b685b5 #8a4288\n00000\n01111\n01111\n01111\n01111\n\nCrate_tr \n#b685b5 #8a4288\n00000\n11110\n11110\n11110\n11110\n\nCrate_bl \n#b685b5 #8a4288\n01111\n01111\n01111\n01111\n00000\n\nCrate_br \n#b685b5 #8a4288\n11110\n11110\n11110\n11110\n00000\n\nsponge_ok\n#ff00ff\n0....\n.....\n.....\n.....\n.....\n\ntargetlight\n#83e5f9 #27aeca\n.....\n.....\n..0..\n.....\n.....\n\nskin_tl_loose \n#d5d156 #d2b140 #af8c18\n.0000\n01212\n02121\n01212\n02121\n\n\nskin_tr_loose\n#d5d156 #d2b140 #af8c18\n0000.\n12120\n21210\n12120\n21210\n\nskin_bl_loose\n#d5d156 #d2b140 #af8c18\n01212\n02121\n01212\n02121\n.0000\n\nskin_br_loose\n#d2b140 #af8c18 #d5d156\n01012\n10102\n01012\n10102\n2222.\n\n\n\nskin_tl_tight\n#d5d156 #9b7907\n.0000\n01111\n01111\n01111\n01111\n\nskin_tr_tight\n#d5d156 #9b7907\n0000.\n11110\n11110\n11110\n11110\n\nskin_bl_tight\n#d5d156 #9b7907\n01111\n01111\n01111\n01111\n.0000\n\nskin_br_tight\n#9b7907 #d5d156\n00001\n00001\n00001\n00001\n1111.\n\nskin_n\n#d5d156\n00000\n.....\n.....\n.....\n.....\n\nskin_s\n#d5d156\n.....\n.....\n.....\n.....\n00000\n\nskin_e\n#d5d156\n....0\n....0\n....0\n....0\n....0\n\nskin_w\n#d5d156\n0....\n0....\n0....\n0....\n0....\n\nface_pressed_eye_l\n#ffffff #639bff\n.....\n..01.\n..00.\n.....\n.....\n\nface_pressed_eye_r\n#ffffff #639bff\n.....\n.01..\n.00..\n.....\n.....\n\nface_normal_eye_l\n#ffffff #639bff\n.....\n.....\n..01.\n..00.\n.....\n\n\nface_normal_eye_r\n#ffffff #639bff\n.....\n.....\n.01..\n.00..\n.....\n\nface_normal_mouth_l\n#000000\n.....\n...00\n....0\n.....\n.....\n\n\nface_normal_mouth_r\n#000000\n.....\n00...\n0....\n.....\n.....\n\nface_pressed_mouth\n#000000\n.....\n..0..\n..0..\n.....\n.....\n\nface_pressed_eyes_both\n#ffffff #639bff #097ca9\n.....\n.....\n01.01\n00.00\n.....\n\n\nface_pressed_horizont_full_l\n#ffffff #639bff #000000\n.....\n.00..\n.01.2\n....2\n.....\n\n\nface_pressed_horizont_full_r\n#ffffff #000000 #639bff\n.....\n..00.\n1.20.\n1....\n.....\n\nforcesponge\ntransparent\n\nhalttag\ntransparent\n\n=======\nLEGEND\n=======\n\nface = face_pressed_eye_l or face_pressed_eye_r or face_normal_eye_l or face_normal_eye_r or face_normal_mouth_l or face_normal_mouth_r or face_pressed_mouth or face_pressed_eyes_both or face_pressed_horizont_full_l or face_pressed_horizont_full_r\nplayer = Player_tl or Player_tr or Player_bl or Player_br\ncrate = Crate_tl or Crate_tr or Crate_bl or Crate_br\nsponge = sponge_thick or sponge_thin \nobstacle = sponge or wall or Crate\n. = Background1\n, = Background2\n# = Wall and Background1\nq = Player_tl and sponge_thin and Background1\nw = Player_tr and sponge_thin and Background1\ne = Player_bl and sponge_thin and Background1\nr = player_br and sponge_thin and Background1\nO = Target and Background1\nz = crate_tl and Target and Background1\nx = crate_tr and Target and Background1\nc = crate_bl and Target and Background1\nb = Crate_br and Target and Background1\na = Crate_tl and Background1\ns = Crate_tr and Background1\nd = Crate_bl and Background1\nf = Crate_br and Background1\n\nskin_flesh = skin_tl_loose or skin_tr_loose or skin_bl_loose or skin_br_loose or skin_tl_tight or skin_tr_tight or skin_bl_tight or skin_br_tight \n\nskin_barrier = skin_n or skin_s or skin_e or skin_W\n\n\nskin = skin_flesh or skin_Barrier\nbackground = Background1 or Background2\n=======\nSOUNDS\n=======\n\nCrate MOVE 2330507\nstartlevel 93226500\nendlevel 74584306\n================\nCOLLISIONLAYERS\n================\n\nplayer\nsponge_ok\n\n\nBackground1, Background2\n\nsponge, Wall, Crate\n\nTarget\n\nskin_flesh\nskin_n\nskin_s\nskin_e\nskin_w\n\n\nface\ntargetlight\n\nforcesponge\nhalttag\n\n======\nRULES\n======\n\n[moving player] -> again\n\n\n(drawing code begin)\n(\nright [action player] [ Player_tl | ] -> [action player] [ player_tl | Player_tr sponge_thin ]\ndown [action player] [ player_tl | ] -> [action player] [ player_tl | Player_bl sponge_thin]\ndown [action player] [ player_tr | ] -> [action player] [ player_tr | Player_br sponge_thin]\n\nright [action player] [ Crate_tl target| no Crate ] -> [action player] [ Crate_tl target| Crate_tr target ]\ndown [action player] [ Crate_tl target| no Crate] -> [action player] [ Crate_tl target| Crate_bl target]\ndown [action player] [ Crate_tr target|no Crate ] -> [action player] [ Crate_tr target| Crate_br target]\n\nright [action player] [ Crate_tl no target| no Crate ] -> [action player] [ Crate_tl no target| Crate_tr ]\ndown [action player] [ Crate_tl no target| no Crate] -> [action player] [ Crate_tl no target| Crate_bl ]\ndown [action player] [ Crate_tr no target|no Crate ] -> [action player] [ Crate_tr no target| Crate_br ]\n)\n(drawing code end)\n\n[sponge_ok]->[]\n[moving player sponge] -> [ moving player moving sponge]\n\n[ > sponge | Crate ] -> [ > sponge | > Crate ]\n\n\n(expanding sponge applies force)\n[ stationary player ] [ sponge_thick | crate player ] ->[ stationary player ] [ sponge_thick forcesponge| > crate player ]\n\n(propagate movements)\nright [moving Crate_tl | stationary Crate_tr ] -> [moving Crate_tl | moving Crate_tr ]\n+ right [ stationary Crate_tl | moving Crate_tr ] -> [moving Crate_tl | moving Crate_tr ] \n+ right [moving Crate_bl | stationary Crate_br ] -> [moving Crate_bl | moving Crate_br ] \n+ right [ stationary Crate_bl | moving Crate_br ] -> [moving Crate_bl | moving Crate_br ] \n\n+ down [ moving crate_tl | stationary crate_bl ] -> [ moving crate_tl | moving crate_bl ] \n+ down [ stationary crate_tl | moving crate_bl ] -> [ moving crate_tl | moving crate_bl ]\n+ down [ moving crate_tr | stationary crate_br ] -> [ moving crate_tr | moving crate_br ] \n+ down [ stationary crate_tr | moving crate_br ] -> [ moving crate_tr | moving crate_br ]\n\n+ [ > crate | stationary crate ] -> [ > crate | > crate ]\n\n\n(unpropagate movements)\n\n[ > crate | stationary obstacle ] -> [ crate | obstacle ]\n+ right [moving Crate_tl | stationary Crate_tr ] -> [ Crate_tl | Crate_tr ]\n+ right [ stationary Crate_tl | moving Crate_tr ] -> [ Crate_tl | Crate_tr ] \n+ right [moving Crate_bl | stationary Crate_br ] -> [ Crate_bl | Crate_br ] \n+ right [ stationary Crate_bl | moving Crate_br ] -> [ Crate_bl | Crate_br ] \n\n+ down [ moving crate_tl | stationary crate_bl ] -> [ crate_tl | crate_bl ] \n+ down [ stationary crate_tl | moving crate_bl ] -> [ crate_tl | crate_bl ]\n+ down [ moving crate_tr | stationary crate_br ] -> [ crate_tr | crate_br ] \n+ down [ stationary crate_tr | moving crate_br ] -> [ crate_tr | crate_br ]\n\n(add halt tag to allcrates)\n[moving crate]->[moving crate halttag]\n(remove halttags along propagation)\n[ sponge | crate halttag ] -> [ sponge | crate no halttag ]\n\n+ right [no halttag Crate_tl | halttag Crate_tr ] -> [ Crate_tl | Crate_tr ]\n+ right [ halttag Crate_tl | no halttag Crate_tr ] -> [ Crate_tl | Crate_tr ] \n+ right [no halttag Crate_bl | halttag Crate_br ] -> [ Crate_bl | Crate_br ] \n+ right [ halttag Crate_bl | no halttag Crate_br ] -> [ Crate_bl | Crate_br ] \n\n+ down [ no halttag crate_tl | halttag crate_bl ] -> [ crate_tl | crate_bl ] \n+ down [ halttag crate_tl | no halttag crate_bl ] -> [ crate_tl | crate_bl ]\n+ down [ no halttag crate_tr | halttag crate_br ] -> [ crate_tr | crate_br ] \n+ down [ halttag crate_tr | no halttag crate_br ] -> [ crate_tr | crate_br ]\n\n+ [ > crate no halttag | > crate halttag ] -> [ > crate | > crate ]\n\n[moving crate halttag]->[stationary crate]\n\n(squish sponge if necessary)\n[ > sponge_thin | > sponge_thin | stationary obstacle ] -> [ | sponge_thick | stationary obstacle ]\n\n[ no sponge | > sponge_thick | no sponge no obstacle ] -> [ | sponge_thin | sponge_thin ]\nlate [ sponge no player ] -> cancel\n\nlate [ sponge_thick player | no obstacle player] -> [ sponge_thin player | sponge_thin player ]\n\nlate [ sponge_thick | no sponge player ] -> [sponge_thick sponge_ok | player ]\n\nlate [sponge_thick no sponge_ok ]-> cancel\n\n(draw skin)\nlate [skin]->[]\nlate [Player_tl sponge_thick ] -> [Player_tl sponge_thick skin_tl_tight ]\nlate [Player_tr sponge_thick ] -> [Player_tr sponge_thick skin_tr_tight ]\nlate [Player_bl sponge_thick ] -> [Player_bl sponge_thick skin_bl_tight ]\nlate [Player_br sponge_thick ] -> [Player_br sponge_thick skin_br_tight ]\n\nlate [Player_tl sponge_thin ] -> [Player_tl sponge_thin skin_tl_loose ]\nlate [Player_tr sponge_thin ] -> [Player_tr sponge_thin skin_tr_loose ]\nlate [Player_bl sponge_thin ] -> [Player_bl sponge_thin skin_bl_loose ]\nlate [Player_br sponge_thin ] -> [Player_br sponge_thin skin_br_loose ]\n\nlate up [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_n | player no sponge ]\nlate down [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_s | player no sponge ]\nlate left [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_w | player no sponge ]\nlate right [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_e | player no sponge ]\n\n(draw face (eyes/mouth))\nlate [face]->[]\n\nlate right [ sponge_thick no face | sponge_thick no face ] -> [ sponge_thick face_pressed_horizont_full_l | sponge_thick face_pressed_horizont_full_r]\n\nlate down [ sponge_thick no face | sponge_thick no face ] -> [ sponge_thick face_pressed_eyes_both | sponge_thick face_pressed_mouth]\n\nlate right [ player_tl sponge_thick | no sponge ] -> [ player_tl sponge_thick face_pressed_eyes_both | no sponge ]\nlate left [ player_tr sponge_thick | no sponge ] -> [ player_tr sponge_thick face_pressed_eyes_both | no sponge ]\n\n\nlate right [ Player_tl sponge_thin no face ] -> [ player_tl sponge_thin face_normal_eye_l ]\nlate right [ Player_tl sponge_thick no face ] -> [ player_tl sponge_thick face_pressed_eye_l ]\n\nlate right [ Player_tr sponge_thin no face ] -> [ player_tr sponge_thin face_normal_eye_r ]\nlate right [ Player_tr sponge_thick no face ] -> [ player_tr sponge_thick face_pressed_eye_r ]\n\nlate right [player_bl sponge_thin no face | player_Br sponge_thin no face ] -> [player_bl sponge_thin face_normal_mouth_l | player_Br sponge_thin face_normal_mouth_r ]\n\nlate right [ player_bl sponge no face | no sponge ] -> [ player_bl sponge face_pressed_mouth |]\nlate left [ player_br sponge no face | no sponge ] -> [ player_br sponge face_pressed_mouth |]\n\nlate [ player_bl sponge_thick no face ] -> [ player_bl sponge_thick face_pressed_horizont_full_l ]\nlate [ player_bl sponge_thin no face ] -> [ player_bl sponge_thin face_normal_mouth_l ]\n\n\nlate [ player_br sponge_thick no face ] -> [ player_br sponge_thick face_pressed_horizont_full_r ]\nlate [ player_br sponge_thin no face ] -> [ player_br sponge_thin face_normal_mouth_r ]\n\n(place lights on fulfilled targets)\nlate [targetlight]->[]\nlate [crate Target ] -> [ crate target targetlight]\n\n\nlate [ forcesponge sponge_thick ]->cancel\nlate [forcesponge]->[]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 10 : \"I am yellow.\"\n\n(p.easy)\n,,,,,,,,#####\n#########...#\n#oo.........#\n#oozxzxas.qw#\n###cbcbdf.er#\n,,#.........#\n,,#######...#\n,,,,,,,,#####\n\n\n\n\nmessage Level 2 of 10 : \"You can sqeeze me.\"\n\n(pretty easy, but fun?)\n,,,,,,,,#####\n,,,,,,###...#\n#######.....#\n#..,..ooqw..#\n#.....ooer.##\n#.as..##oo.#,\n#.df..##oo##,\n#####.....#,,\n,,,,##....#,,\n,,,,,#as..#,,\n,,,,,#df..#,,\n,,,,,#....#,,\n,,,,,######,,\n\nmessage Level 3 of 10 : \"It doesn't hurt at all.\"\n########\n#......#\n#.##qw.#\n#.##er.#\n#.aszx.#\n#.dfcb.#\n#.oozx.#\n#.oocb.#\n#......#\n########\n\n\nmessage Level 4 of 10 : \"I like to make the lights go on.\"\n(borderline not cute but tolerable)\n\n######,,,,\n#oo..##,,,\n#oo...##,,\n#qwasas##,\n#erdfdf.##\n###......#\n,,##.....#\n,,,##....#\n,,,,##...#\n,,,,,##oo#\n,,,,,,#oo#\n,,,,,,####\n\n\nmessage Level 5 of 10 : \"It's dark here on the seabed.\"\n\n(too like original/)\n,,######,,,,\n###....#####\n#.......as.#\n#.......df.#\n#.#....#as.#\n#oo..oo#df.#\n#oo..oo#qw.#\n########er.#\n,,,,,,,#####\n\nmessage Level 6 of 10 : \"I wonder what colour my eyes are.\"\n(ok not too hard)\n,,,######\n,,##....#\n,,#.zx..#\n###.cb..#\n#.asooqw#\n#.dfooer#\n#.......#\n#########\n\n\n\n\n\nmessage Level 7 of 10 : \"Sometimes corpses fall down from the sky.\"\n\n(fine. slightly tricky)\n#####,,,\n#.oo#,,,\n#.oo#,,,\n#...#,,,\n#...#,,,\n#...####\n#zx....#\n#cb....#\n#...as.#\n#...df.#\n#...####\n#...#,,,\n#qw.#,,,\n#er.#,,,\n#####,,,\n\n\nmessage Level 8 of 10 : \"The lights twinkle as if to say 'Thank you, spongey!' \"\n(p ok! not super easy)\n,,,#########\n,,,#.ooooqw#\n,,,#.ooooer#\n,,,#.asas..#\n,,,#.dfdf..#\n#####..#####\n#......###,,\n#........#,,\n#..#.....#,,\n#.....#..#,,\n#........#,,\n##########,,\n\n\nmessage Level 9 of 10 : \"Am I the only yellow thing in the universe?\"\n(I like this one)\n,,,,###########\n,,,##...#...oo#\n,,##as......oo#\n,##.df#...qw..#\n##....#...er..#\n#.............#\n#...###..zx...#\n#....##..cb...#\n##....##......#\n,##....###.#..#\n,,##.......#..#\n,,,##.........#\n,,,,#####.....#\n,,,,,,,,###..##\n,,,,,,,,,,####,\n\n\nmessage Level 10 of 10 : \"It's lonely, here on the seabed.\"\n(fine/hardosh)\n.########.\n###.oo..##\n###.oo...#\n#..asas..#\n#oodfdfoo#\n#ooasasoo#\n#..dfdfqw#\n#...oo.er#\n##..oo..##\n.########.\n\nmessage The End : \"I hope I was a good sponge. Was I a good sponge?\"\n\n(\n########\n#......#\n#...as.#\n#..#df.#\n#..as..#\n##.df..#\n#aszxo.#\n#dfcbqw#\n#....er#\n########\n\n########\n#......#\n#......#\n#......#\n#..as..#\n##.df..#\n#aszxo.#\n#dfcbqw#\n#....er#\n########\n)\n\n\n(\n\n################\n#oo.....,....oo#\n#oo..........oo#\n#..##..as..##..#\n#..##..df..##..#\n#.....####.....#\n#....##..##....#\n#..as#....#as..#\n#..df#....#df..#\n#....##..##....#\n#.....####.....#\n#..##..as..##..#\n#..##..df..##..#\n#oo......qw..oo#\n#oo......er..oo#\n################\n\n############\n#..........#\n#..,..ooqw.#\n#.....ooer.#\n#.as..##oo.#\n#.df..##oo.#\n#####......#\n....##.....#\n.....#as...#\n.....#df...#\n.....#.....#\n.....#######\n\n\n)\n\n(\n(ok? doesn't involve fancy logic, just pushign things around, but that's ok sometimes?)\n.########.\n##......##\n#...oo.qw#\n#..axzser#\n#.ocfdbo.#\n#.ozsaxo.#\n#..dbcf..#\n#...oo...#\n##......##\n.########.\n)\n\n\n\n(\n(too easy)\n.########.\n##..oo..##\n#...oo...#\n#..asas..#\n#oodfdfoo#\n#ooasasoo#\n#..dfdfqw#\n#...oo.er#\n##..oo..##\n.########.\n\n)\n\n\n\n(above level is just better version of this even if uglier)\n(\n################\n#..............#\n#......qw......#\n#......er......#\n#..............#\n#......as......#\n#......df......#\n#......##......#\n#oo..........oo#\n#oo....as....oo#\n###...#df#...###\n,,#..........#,,\n,,#...#..#...#,,\n,,#...#..#...#,,\n,,#..##..##..#,,\n,,##.##..##.##,,\n,,,#.##..##.#,,,\n,,,#........#,,,\n,,,#........#,,,\n,,,##########,,,\n)\n", [2, 2, 2, 3, 2, 1, 1, 1, 0, 0, 1, 1, 1, 2, 2, 3, 2, 1, 1, 1, 3, 1, 2, 2, 3, 3, 2, 3, 0, 1, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 1, 1, 0, 1, 2, 2, 3, 0, 1, 2, 2, 1, 2, 1, 2, 3, 0, 3, 3, 3, 0, 3, 3, 2, 2, 2, 2, 1, 1, 0, 0, 3, 0, 0, 1, 1], "background2:0,0,0,0,background1 wall:1,1,1,1,1,0,0,0,0,0,0,\n0,0,0,1,1,background1:2,2,2,1,1,0,0,0,0,0,\n0,0,1,1,2,2,2,2,2,1,1,0,0,0,0,\n0,1,1,2,2,2,2,2,2,2,1,1,0,0,0,\n1,1,2,2,background1 crate_tl:3,background1 crate_bl:4,1,2,2,2,2,1,1,0,0,\n1,2,2,2,background1 crate_tr:5,background1 crate_br:6,1,1,2,2,2,2,1,0,0,\n1,2,2,background1 player_tl wall:7,background1 player_bl wall:8,2,1,1,1,2,2,2,1,0,0,\n1,2,2,background1 face_pressed_eyes_both player_tr skin_tr_tight sponge_ok sponge_thick:9,background1 face_pressed_mouth player_br skin_br_tight sponge_ok sponge_thick:10,2,2,2,1,1,2,2,1,0,0,\n1,1,2,2,2,2,2,2,2,1,2,2,1,1,0,\n1,2,2,2,2,2,background1 target:11,11,2,1,2,2,2,1,0,\n1,2,2,2,2,2,11,11,2,2,2,2,2,1,1,\n1,2,2,2,2,2,2,3,4,1,1,2,2,2,1,\n1,11,11,2,2,2,2,5,6,2,2,2,2,2,1,\n1,11,11,2,2,2,2,2,2,2,2,2,2,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,\n", 17, "1627894176777.0325"] ], [ - "Sexual Intercourse", - ["title Sexual Intercourse \nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nbackground_color #4e0606\n\nnoaction\n\nverbose_logging\n(thanks to ggn2 for testing)\n\n========\nOBJECTS\n========\n\nBackground\n#4e0606\n\nWall\n#730b15 #ab2a2a #a82934\n.000.\n00000\n00000\n00000\n.000.\n\n\nwall_n\n#730b15 #a82934\n00010\n...1.\n...1.\n...1.\n.....\n\n\nwall_s\n#730b15 #a82934\n.....\n...1.\n...1.\n...1.\n00010\n\n\nwall_e\n#730b15 #a82934\n....0\n.1111\n....0\n....0\n....0\n\n\nwall_w\n#730b15 #a82934\n0....\n1111.\n0....\n0....\n0....\n\nwall_blot\n#730b15\n.000.\n00000\n00000\n00000\n.000.\n\nwall_blot_ne\n#730b15 #a82934\n.000.\n11100\n00010\n00010\n.001.\n\nwall_blot_ne_sm\n#730b15 #a82934\n.000.\n00100\n00010\n00000\n.000.\n\nTarget\ntransparent #e04eb2 #bf258e\n01110\n12221\n12221\n12221\n01110\n\n\nCrate\ntransparent #ffffff #e3e3e3\n00220\n01112\n10220\n01000\n00110\n\n\nplayer_hat\ntransparent #ebb176 #d9a066 #d86375 #d25165\n01110\n23432\n22221\n21111\n21111\n\n\n\n\nPlayer\n#d9a066 #ebb176 transparent\n01111\n01111\n01111\n01110\n20002\n\n\n\nattachment\ntransparent #ebb176 #c48d55 #d9a066 #f1bd88\n01110\n23341\n23331\n22331\n02220\n\n\nconnection_nw\n#d9a066\n0....\n.....\n.....\n.....\n.....\n\n\nconnection_ne\n#d9a066\n....0\n.....\n.....\n.....\n.....\n\n\nconnection_sw\n#d9a066\n.....\n.....\n.....\n.....\n0....\n\n\nconnection_se\n#d9a066\n.....\n.....\n.....\n.....\n....0\n\nholding_domain\n#ff0000\n.....\n.....\n..0..\n.....\n.....\n\nplayer_start_location\ntransparent\n\n=======\nLEGEND\n=======\n\ncanpush = player or player_hat or attachment or Crate\npushable = crate\n\nself = player or player_hat or attachment\n\nobstacle = player or player_hat or attachment or Crate or wall\n\nconnection = connection_nw or connection_ne or connection_sw or connection_se\nconnectable = player or attachment\n\nwall_connection = wall_n or wall_s or wall_e or wall_w or wall_blot or wall_blot_ne or wall_blot_ne_sm\nwall_v = wall_n or wall_s\nwall_h = wall_w or wall_e\n. = Background\n# = Wall\nq = player_hat\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\na = attachment\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 39435507\nendlevel 98112905\nstartlevel 27288509\nsfx0 97643907 (rearrange)\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, player_hat, attachment, Wall, Crate\nwall_n\nwall_s\nwall_e\nwall_W\nwall_blot\nwall_blot_ne\nwall_blot_ne_sm\nholding_domain\nplayer_start_location\n\nconnection_nw\nconnection_ne\nconnection_sw\nconnection_se\n\n======\nRULES\n======\n\n[moving player]->[moving player player_start_location]\n\nright [ Wall no wall_e | wall no wall_w ] -> [ wall wall_e | wall wall_w ]\ndown [ Wall no wall_s | wall no wall_n ] -> [ wall wall_s | wall wall_n ]\n[wall_v wall_h no wall_blot ] -> [ wall_v wall_h wall_blot ]\n[wall_s wall_w no wall_blot_ne ] -> [ wall_s wall_w wall_blot_ne ]\n[wall_s wall_w wall_e ] -> [ wall_s wall_w wall_e no wall_blot_ne ]\n[wall no wall_connection ] -> [ wall wall_blot_ne_sm ]\n\n(editor stuff)\n(\n \n\tdown [no player_hat | action player ] -> [ action player_hat | action player no player_start_location ]\n \n \n\t(Draw holding domain)\n right [ | action player | ] -> [ holding_domain | action player holding_domain | holding_domain ]\n down [ no holding_domain | holding_domain | no holding_domain ] -> [ | holding_domain | holding_domain ]\n\t\n right [action player] [ holding_domain | holding_domain no player | holding_domain ] -> [action player] [ attachment holding_domain | holding_domain | holding_domain attachment ]\n \n [holding_domain]->[]\n)\n(end editor stuff)\n\n\n[ > player ] [ stationary self ] -> [ > player ] [ > self] \n\n[ > canpush | pushable ] -> [ > canpush | > pushable ]\n\n[ > canpush | stationary wall ] -> [ canpush | Wall ]\n[ > canpush | stationary canpush ] -> [ canpush | canpush ]\n[moving player ] [stationary attachment ] -> sfx0\n\n(Draw holding domain)\nlate right [ | player | ] -> [ holding_domain | player holding_domain | holding_domain ]\nlate down [ no holding_domain | holding_domain | no holding_domain ] -> [ | holding_domain | holding_domain ]\n\nlate [ attachment no holding_domain ] -> cancel\nlate [holding_domain]->[]\n\n\nlate down [player_hat | no player ] -> cancel\nlate [ player player_start_location ]->cancel\nlate [ player_start_location]->[]\n\n(cosmetics)\nlate [connection]->[]\nlate up [ connectable | no connectable ] -> [connectable | connection_sw connection_se ]\nlate down [ connectable | no connectable ] -> [connectable | connection_nw connection_ne ]\n\nlate left [ connection_sw | no connectable ] -> [ | ]\nlate left [ connection_nw | no connectable ] -> [ | ]\n\nlate right [ connection_se | no connectable ] -> [ | ]\nlate right [ connection_ne | no connectable ] -> [ | ]\n\nlate right [ | connection_nw ] -> [ connection_ne | connection_nw ]\n+ late right [ connection_ne | ] -> [ connection_ne | connection_nw ]\n\n+ late right [ | connection_sw ] -> [ connection_se | connection_sw ]\n+ late right [ connection_se | ] -> [ connection_se | connection_sw ]\n\n+ late down [ | connection_nw ] -> [ connection_sw | connection_nw ]\n+ late down [ connection_sw| ] -> [ connection_sw | connection_nw ]\n\n+ late down [ | connection_ne ] -> [ connection_se | connection_ne ]\n+ late down [ connection_se| ] -> [ connection_se | connection_ne ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 12 \n(chill level 2/3? not too hard)\n############\n#..........#\n#..........#\n#..........#\n#..........#\n#..o.o.....#\n##.#.#.##..#\n#.......#..#\n#..*.*.....#\n#..........#\n#...q......#\n#...p...####\n#..a.a..#...\n#.......#...\n#########...\n\nmessage Level 2 of 12 \n\n(not tooo hard but relies on shape manipulation)\n.#####....\n.#...#####\n.#...#...#\n##.......#\n#o....*..#\n#o...#*..#\n###..#.q.#\n..####.p.#\n.....#a.a#\n.....#####\n\n\nmessage Level 3 of 12 \n\n(ok possible first level)\n.###....\n.#o#....\n.#.#....\n.#.#####\n.#.....#\n.#.....#\n.#.....#\n##..*..#\n#.q.####\n#.p.#...\n#a.a#...\n#####...\n\n\n\nmessage Level 4 of 12 \n(super chill/not hard. don't put too early because assumes literacy, but don't leave too late)\n#######\n#ooooo#\n#.....#\n#..*..#\n#.*q*.#\n#.*p*.#\n#*a*a*#\n#.*.*.#\n#.....#\n#ooooo#\n#######\n\n\nmessage Level 5 of 12 \n\n(not tooo hard maybe? but p. good)\n.####..\n.#..##.\n.#..o#.\n.#...#.\n.#.@.#.\n.#.@.#.\n.#.@.#.\n##.*.##\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n#######\n\n\nmessage Level 6 of 12 \n(not hard. not too much manipulation)\n##########\n#........#\n#........#\n#..o.*o..#\n#..*.....#\n#.....*..#\n#..o*.oq.#\n#......p.#\n#.....a.a#\n##########\n\n\nmessage Level 7 of 12 \n\n(p. ok? medium-solvable, not hard)\n......#######\n#######.....#\n#.....#.....#\n#...........#\n#...**......#\n#.q.*.#ooo..#\n#.p...#######\n#a.a..#......\n#######......\n\n\nmessage Level 8 of 12 \n\n(enjoyed solving this - fun process)\n.#######.....\n.#oooq.##....\n.#...p..##...\n.#..a.a..##..\n.###..***.##.\n...##......##\n....##......#\n.....##.....#\n......##....#\n.......######\n\nmessage Level 9 of 12 \n(not too hard, kinda fine)\n.....####..\n.....#o.#..\n.....#o.###\n######....#\n#.q.......#\n#.p.......#\n#a.a.*.*..#\n#..#.#.####\n#......#...\n#......#...\n#......#...\n########...\n\nmessage Level 10 of 12 \n(slightly tricky but fun?)\n\n#########\n#.oo..q.#\n#.....p.#\n#....a.a#\n##**#####\n.#.....#.\n.#.....#.\n.#..#..#.\n.#.....#.\n.#.....#.\n.#.....#.\n.#######.\n\nmessage Level 11 of 12 \n(hardish, but satisfying + thinkthroughable shape manipulation)\n########\n#.#..q.#\n#....p.#\n#...a.a#\n#..#...#\n#..*@..#\n#..o@..#\n#......#\n########\n\nmessage Level 12 of 12 \n(for me super hard but for others possible)\n##########\n#..q.....#\n#..p.....#\n#.a.a....#\n##.*.#*..#\n.#o.o#...#\n.#########\n\nmessage Congratulations! You now know how to make babies!\n\n\n(\n\n....########.\n....#......#.\n....#.oo...#.\n....#.oo.q.#.\n....#....p.#.\n....#...a.a#.\n....##**####.\n.....#**#....\n######..####.\n#..........#.\n#...#......#.\n#.......#..#.\n#..........#.\n######.....#.\n.....#.....#.\n.....#.....#.\n.....#.....#.\n.....#.....#.\n.....#######.\n\n\n############\n#..........#\n#..........#\n#...**.....#\n#.q.*.#ooo.#\n#.p...######\n#a.a..#.....\n#######.....\n\n\n########\n#......#\n#.o.*o.#\n#.*....#\n#...q*.#\n#.o*po.#\n#..a.a.#\n########\n\n########\n#......#\n#.o*o..#\n#.*.*q.#\n#.o*op.#\n#...a.a#\n########\n\n\n.#####.\n.#..o#.\n.#.@.#.\n.#.@.#.\n.#.@.#.\n##.*.##\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n#######\n\n#######\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n##.*.##\n.#.@.#.\n.#.@.#.\n.#..o#.\n.#####.\n\n.....#######\n.....#.....#\n######.....#\n#o......q..#\n#.@@@*..p..#\n#......a.a.#\n######.....#\n.....#.....#\n.....#######\n\n\n##########\n#..q.....#\n#..p.....#\n#.a.a....#\n##.*.#*..#\n#.o.o#...#\n##########\n\n###########\n#...q.....#\n#...p.....#\n#..a.a....#\n#.#.*.#*..#\n#..o.o#...#\n###########\n\n\n..#####....\n###...#####\n#......*..#\n#.....#*..#\n#..#..#.q.#\n#..o.o#.p.#\n#######a.a#\n......#####\n\n########\n#......#\n#..q...#\n#..p...#\n#.a.a..#\n#......#\n#..#...#\n#..*@..#\n#..o@..#\n#......#\n########\n\n#######\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n#..#..#\n#..*@.#\n#..o@.#\n#.....#\n#######\n\n\n##########\n#........#\n#.#...q..#\n#.*@..p..#\n#.o@.a.a.#\n#........#\n##########\n\n\n################\n#..............#\n#........#.....#\n#..............#\n#..#......o....#\n#...*..q...o...#\n#...*..p.......#\n#.....a.a...#..#\n#..............#\n################\n\n\n#########\n#.......#\n#.......#\n#.q.....#\n#.p.....#\n#a.a....#\n#########\n\n\n###########\n#.........#\n#.........#\n#.........#\n#..q......#\n#..p......#\n#.a.a.....#\n#.........#\n###########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n)\n(\n====\nTRANSFORMATION\n====\n\n\nchoose 5 option 0.5 [no obstacle ]->[wall]\nchoose 2 [no obstacle]->[crate]\nchoose 2 [ no wall no player no player_hat no attachment ] -> [target]\n)\n",[3,2,3,0,3,2,2,1,1,2,2,3,3,3,3,0,0,0,0,2,2,1,1,1,1,1,3,3,3,3,1,2,1],"background:0,0,0,background wall wall_blot wall_e wall_s:1,background wall wall_n wall_s:2,2,2,2,2,2,2,\nbackground wall wall_blot wall_e wall_n:3,0,0,0,background wall wall_e wall_w:4,0,0,0,0,0,0,\n0,4,0,0,0,4,0,0,0,0,0,\n0,0,4,0,0,0,4,0,background player_hat:5,background connection_se player:6,background connection_ne wall wall_blot_ne_sm:7,\n0,0,0,4,0,0,0,4,0,0,attachment background connection_sw:8,\nattachment background connection_nw:9,0,0,0,4,1,2,2,background wall wall_blot wall_n wall_w:10,0,0,\n0,background wall wall_blot_ne_sm:11,0,0,0,4,4,background target:12,12,0,0,\n0,0,0,0,0,0,4,4,0,0,0,\n0,0,0,1,2,2,2,10,background wall wall_blot wall_blot_ne wall_s wall_w:13,2,3,\n0,0,0,background crate:14,4,0,0,0,0,0,0,\n4,0,0,0,14,4,0,0,0,0,0,\n0,13,2,2,2,2,10,0,0,0,0,\n",17,"1627894223066.2476"] + "(censored version of NSFW game) Sexual Intercourse", + ["title Sexual Intercourse \nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nbackground_color #4e0606\n\nnoaction\n\nverbose_logging\n(thanks to ggn2 for testing)\n\n========\nOBJECTS\n========\n\nBackground\n#4e0606\n\nWall\n#730b15 #ab2a2a #a82934\n.000.\n00000\n00000\n00000\n.000.\n\n\nwall_n\n#730b15 #a82934\n00010\n...1.\n...1.\n...1.\n.....\n\n\nwall_s\n#730b15 #a82934\n.....\n...1.\n...1.\n...1.\n00010\n\n\nwall_e\n#730b15 #a82934\n....0\n.1111\n....0\n....0\n....0\n\n\nwall_w\n#730b15 #a82934\n0....\n1111.\n0....\n0....\n0....\n\nwall_blot\n#730b15\n.000.\n00000\n00000\n00000\n.000.\n\nwall_blot_ne\n#730b15 #a82934\n.000.\n11100\n00010\n00010\n.001.\n\nwall_blot_ne_sm\n#730b15 #a82934\n.000.\n00100\n00010\n00000\n.000.\n\nTarget\ntransparent pink pink\n01110\n12221\n12221\n12221\n01110\n\n\nCrate\nwhite white white\n00220\n01112\n10220\n01000\n00110\n\n\nplayer_hat\ngreen green green green green\n01110\n23432\n22221\n21111\n21111\n\n\n\n\nPlayer\ngreen green green green green\n01111\n01111\n01111\n01110\n20002\n\n\n\nattachment\ngreen green green green green\n01110\n23341\n23331\n22331\n02220\n\n\nconnection_nw\ngreen green green green green\n0....\n.....\n.....\n.....\n.....\n\n\nconnection_ne\ngreen green green green green\n....0\n.....\n.....\n.....\n.....\n\n\nconnection_sw\ngreen green green green green\n.....\n.....\n.....\n.....\n0....\n\n\nconnection_se\ngreen green green green green\n.....\n.....\n.....\n.....\n....0\n\nholding_domain\n#ff0000\n.....\n.....\n..0..\n.....\n.....\n\nplayer_start_location\ntransparent\n\n=======\nLEGEND\n=======\n\ncanpush = player or player_hat or attachment or Crate\npushable = crate\n\nself = player or player_hat or attachment\n\nobstacle = player or player_hat or attachment or Crate or wall\n\nconnection = connection_nw or connection_ne or connection_sw or connection_se\nconnectable = player or attachment\n\nwall_connection = wall_n or wall_s or wall_e or wall_w or wall_blot or wall_blot_ne or wall_blot_ne_sm\nwall_v = wall_n or wall_s\nwall_h = wall_w or wall_e\n. = Background\n# = Wall\nq = player_hat\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\na = attachment\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 39435507\nendlevel 98112905\nstartlevel 27288509\nsfx0 97643907 (rearrange)\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, player_hat, attachment, Wall, Crate\nwall_n\nwall_s\nwall_e\nwall_W\nwall_blot\nwall_blot_ne\nwall_blot_ne_sm\nholding_domain\nplayer_start_location\n\nconnection_nw\nconnection_ne\nconnection_sw\nconnection_se\n\n======\nRULES\n======\n\n[moving player]->[moving player player_start_location]\n\nright [ Wall no wall_e | wall no wall_w ] -> [ wall wall_e | wall wall_w ]\ndown [ Wall no wall_s | wall no wall_n ] -> [ wall wall_s | wall wall_n ]\n[wall_v wall_h no wall_blot ] -> [ wall_v wall_h wall_blot ]\n[wall_s wall_w no wall_blot_ne ] -> [ wall_s wall_w wall_blot_ne ]\n[wall_s wall_w wall_e ] -> [ wall_s wall_w wall_e no wall_blot_ne ]\n[wall no wall_connection ] -> [ wall wall_blot_ne_sm ]\n\n(editor stuff)\n(\n \n\tdown [no player_hat | action player ] -> [ action player_hat | action player no player_start_location ]\n \n \n\t(Draw holding domain)\n right [ | action player | ] -> [ holding_domain | action player holding_domain | holding_domain ]\n down [ no holding_domain | holding_domain | no holding_domain ] -> [ | holding_domain | holding_domain ]\n\t\n right [action player] [ holding_domain | holding_domain no player | holding_domain ] -> [action player] [ attachment holding_domain | holding_domain | holding_domain attachment ]\n \n [holding_domain]->[]\n)\n(end editor stuff)\n\n\n[ > player ] [ stationary self ] -> [ > player ] [ > self] \n\n[ > canpush | pushable ] -> [ > canpush | > pushable ]\n\n[ > canpush | stationary wall ] -> [ canpush | Wall ]\n[ > canpush | stationary canpush ] -> [ canpush | canpush ]\n[moving player ] [stationary attachment ] -> sfx0\n\n(Draw holding domain)\nlate right [ | player | ] -> [ holding_domain | player holding_domain | holding_domain ]\nlate down [ no holding_domain | holding_domain | no holding_domain ] -> [ | holding_domain | holding_domain ]\n\nlate [ attachment no holding_domain ] -> cancel\nlate [holding_domain]->[]\n\n\nlate down [player_hat | no player ] -> cancel\nlate [ player player_start_location ]->cancel\nlate [ player_start_location]->[]\n\n(cosmetics)\nlate [connection]->[]\nlate up [ connectable | no connectable ] -> [connectable | connection_sw connection_se ]\nlate down [ connectable | no connectable ] -> [connectable | connection_nw connection_ne ]\n\nlate left [ connection_sw | no connectable ] -> [ | ]\nlate left [ connection_nw | no connectable ] -> [ | ]\n\nlate right [ connection_se | no connectable ] -> [ | ]\nlate right [ connection_ne | no connectable ] -> [ | ]\n\nlate right [ | connection_nw ] -> [ connection_ne | connection_nw ]\n+ late right [ connection_ne | ] -> [ connection_ne | connection_nw ]\n\n+ late right [ | connection_sw ] -> [ connection_se | connection_sw ]\n+ late right [ connection_se | ] -> [ connection_se | connection_sw ]\n\n+ late down [ | connection_nw ] -> [ connection_sw | connection_nw ]\n+ late down [ connection_sw| ] -> [ connection_sw | connection_nw ]\n\n+ late down [ | connection_ne ] -> [ connection_se | connection_ne ]\n+ late down [ connection_se| ] -> [ connection_se | connection_ne ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 12 \n(chill level 2/3? not too hard)\n############\n#..........#\n#..........#\n#..........#\n#..........#\n#..o.o.....#\n##.#.#.##..#\n#.......#..#\n#..*.*.....#\n#..........#\n#...q......#\n#...p...####\n#..a.a..#...\n#.......#...\n#########...\n\nmessage Level 2 of 12 \n\n(not tooo hard but relies on shape manipulation)\n.#####....\n.#...#####\n.#...#...#\n##.......#\n#o....*..#\n#o...#*..#\n###..#.q.#\n..####.p.#\n.....#a.a#\n.....#####\n\n\nmessage Level 3 of 12 \n\n(ok possible first level)\n.###....\n.#o#....\n.#.#....\n.#.#####\n.#.....#\n.#.....#\n.#.....#\n##..*..#\n#.q.####\n#.p.#...\n#a.a#...\n#####...\n\n\n\nmessage Level 4 of 12 \n(super chill/not hard. don't put too early because assumes literacy, but don't leave too late)\n#######\n#ooooo#\n#.....#\n#..*..#\n#.*q*.#\n#.*p*.#\n#*a*a*#\n#.*.*.#\n#.....#\n#ooooo#\n#######\n\n\nmessage Level 5 of 12 \n\n(not tooo hard maybe? but p. good)\n.####..\n.#..##.\n.#..o#.\n.#...#.\n.#.@.#.\n.#.@.#.\n.#.@.#.\n##.*.##\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n#######\n\n\nmessage Level 6 of 12 \n(not hard. not too much manipulation)\n##########\n#........#\n#........#\n#..o.*o..#\n#..*.....#\n#.....*..#\n#..o*.oq.#\n#......p.#\n#.....a.a#\n##########\n\n\nmessage Level 7 of 12 \n\n(p. ok? medium-solvable, not hard)\n......#######\n#######.....#\n#.....#.....#\n#...........#\n#...**......#\n#.q.*.#ooo..#\n#.p...#######\n#a.a..#......\n#######......\n\n\nmessage Level 8 of 12 \n\n(enjoyed solving this - fun process)\n.#######.....\n.#oooq.##....\n.#...p..##...\n.#..a.a..##..\n.###..***.##.\n...##......##\n....##......#\n.....##.....#\n......##....#\n.......######\n\nmessage Level 9 of 12 \n(not too hard, kinda fine)\n.....####..\n.....#o.#..\n.....#o.###\n######....#\n#.q.......#\n#.p.......#\n#a.a.*.*..#\n#..#.#.####\n#......#...\n#......#...\n#......#...\n########...\n\nmessage Level 10 of 12 \n(slightly tricky but fun?)\n\n#########\n#.oo..q.#\n#.....p.#\n#....a.a#\n##**#####\n.#.....#.\n.#.....#.\n.#..#..#.\n.#.....#.\n.#.....#.\n.#.....#.\n.#######.\n\nmessage Level 11 of 12 \n(hardish, but satisfying + thinkthroughable shape manipulation)\n########\n#.#..q.#\n#....p.#\n#...a.a#\n#..#...#\n#..*@..#\n#..o@..#\n#......#\n########\n\nmessage Level 12 of 12 \n(for me super hard but for others possible)\n##########\n#..q.....#\n#..p.....#\n#.a.a....#\n##.*.#*..#\n.#o.o#...#\n.#########\n\nmessage Congratulations! You now know how to make babies!\n\n\n(\n\n....########.\n....#......#.\n....#.oo...#.\n....#.oo.q.#.\n....#....p.#.\n....#...a.a#.\n....##**####.\n.....#**#....\n######..####.\n#..........#.\n#...#......#.\n#.......#..#.\n#..........#.\n######.....#.\n.....#.....#.\n.....#.....#.\n.....#.....#.\n.....#.....#.\n.....#######.\n\n\n############\n#..........#\n#..........#\n#...**.....#\n#.q.*.#ooo.#\n#.p...######\n#a.a..#.....\n#######.....\n\n\n########\n#......#\n#.o.*o.#\n#.*....#\n#...q*.#\n#.o*po.#\n#..a.a.#\n########\n\n########\n#......#\n#.o*o..#\n#.*.*q.#\n#.o*op.#\n#...a.a#\n########\n\n\n.#####.\n.#..o#.\n.#.@.#.\n.#.@.#.\n.#.@.#.\n##.*.##\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n#######\n\n#######\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n##.*.##\n.#.@.#.\n.#.@.#.\n.#..o#.\n.#####.\n\n.....#######\n.....#.....#\n######.....#\n#o......q..#\n#.@@@*..p..#\n#......a.a.#\n######.....#\n.....#.....#\n.....#######\n\n\n##########\n#..q.....#\n#..p.....#\n#.a.a....#\n##.*.#*..#\n#.o.o#...#\n##########\n\n###########\n#...q.....#\n#...p.....#\n#..a.a....#\n#.#.*.#*..#\n#..o.o#...#\n###########\n\n\n..#####....\n###...#####\n#......*..#\n#.....#*..#\n#..#..#.q.#\n#..o.o#.p.#\n#######a.a#\n......#####\n\n########\n#......#\n#..q...#\n#..p...#\n#.a.a..#\n#......#\n#..#...#\n#..*@..#\n#..o@..#\n#......#\n########\n\n#######\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n#..#..#\n#..*@.#\n#..o@.#\n#.....#\n#######\n\n\n##########\n#........#\n#.#...q..#\n#.*@..p..#\n#.o@.a.a.#\n#........#\n##########\n\n\n################\n#..............#\n#........#.....#\n#..............#\n#..#......o....#\n#...*..q...o...#\n#...*..p.......#\n#.....a.a...#..#\n#..............#\n################\n\n\n#########\n#.......#\n#.......#\n#.q.....#\n#.p.....#\n#a.a....#\n#########\n\n\n###########\n#.........#\n#.........#\n#.........#\n#..q......#\n#..p......#\n#.a.a.....#\n#.........#\n###########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n)\n(\n====\nTRANSFORMATION\n====\n\n\nchoose 5 option 0.5 [no obstacle ]->[wall]\nchoose 2 [no obstacle]->[crate]\nchoose 2 [ no wall no player no player_hat no attachment ] -> [target]\n)\n", [0, 0, 3, 2, 3, 0, 0, 0, 2, 2, 2, 3, 0, 3, 3, 0, 0, 0, 3, 0, 1, 1, 0, 0, 0, 1, 2, 2, 3, 1, 1, 1, 2, 3, 0, 0, 1, 1, 2, 3, 0, 3, 2, 2, 0, 3, 3, 3, 1, 1, 2, 1, 1, 0, 1, 1, 2, 2, 1, 1, 0, 3, 3, 3, 3, 2, 3, 2, 2, 2, 2, 3, 2, 2, 3, 2, 2, 1, 1, 0, 1, 1, 2, 1, 0, 0, 2, 0, 3, 2, 3, 3, 2, 2, 2, 3, 0, 3, 3, 0, 3, 0, 0, 0, 0, 2, 2, 1, 1, 1, 1, 1, 0, 0, 2, 1, 1, 1, 2, 1, 3, 0, 0, 0, 3, 1, 2, 2, 3, 3, 3, 3, 0, 2, 3, 3, 3, 3, 2, 3, 3, 3, 0, 1, 0, 0, 3, 0, 0, 1, 0, 1, 1, 1, 2, 1], "background wall wall_blot wall_e wall_s:0,background wall wall_n wall_s:1,1,1,1,1,background wall wall_blot wall_e wall_n wall_s:2,1,1,1,1,1,\n1,1,background wall wall_blot wall_e wall_n:3,background wall wall_e wall_w:4,background:5,5,5,5,5,background wall wall_w:6,background crate:7,5,\n5,5,5,5,5,4,4,5,5,5,5,5,\n5,5,5,5,5,5,5,5,4,4,5,5,\n5,5,background target:8,background wall wall_blot_ne_sm:9,5,5,5,5,5,5,5,4,\n4,5,5,5,5,7,5,5,5,5,5,5,\n5,5,4,4,5,5,5,background player_hat:10,background connection_se player target:11,background connection_ne wall wall_blot_ne_sm:12,5,5,\n5,5,5,5,5,4,4,5,5,5,5,attachment background connection_sw:13,\nattachment background connection_nw:14,5,5,5,5,5,5,5,4,4,5,5,\n5,5,5,background wall wall_e:15,5,5,5,5,5,5,5,4,\n4,5,5,5,5,5,background wall wall_blot wall_blot_ne wall_s wall_w:16,background wall wall_n:17,5,5,5,0,\n1,1,background wall wall_blot wall_n wall_w:18,4,5,5,5,5,5,5,5,5,\n5,5,4,5,5,5,4,5,5,5,5,5,\n5,5,5,5,5,4,5,5,5,16,1,1,\n1,1,1,1,1,1,1,1,18,5,5,5,\n", 1, "1645642688116.959"] ], [ - "Attractor Net", - ["title Attractor Net\nauthor increpare\nhomepage www.increpare.com\n\n(require_player_movement)\n\n========\nOBJECTS\n========\n\nBackground\ndarkgray\n\nTarget\n#7eb44a\n00000\n00000\n00000\n00000\n00000\n\n\nWall\n#2c2c2c\n\nplayer1 1\nblue lightblue\n.0000\n01.1.\n0....\n01.1.\n0....\n\nplayer2 2\nblue lightblue\n00000\n.1.1.\n.....\n.1.1.\n.....\n\nplayer3 3\nblue lightblue\n0000.\n.1.10\n....0\n.1.10\n....0\n\nplayer4 4\nblue lightblue\n0....\n01.1.\n0....\n01.1.\n0....\n\nplayer5 5\nlightblue\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nplayer6 6\nlightblue blue\n....1\n.0.01\n....1\n.0.01\n....1\n\nplayer7 7\nblue lightblue\n0....\n01.1.\n0....\n01.1.\n.0000\n\nplayer8 8\nlightblue blue\n.....\n.0.0.\n.....\n.0.0.\n11111\n\nplayer9 9\nlightblue blue\n....1\n.0.01\n....1\n.0.01\n1111.\n\nCrate\n#ff6fd0 #d248a5 #ff3fc0\n.000.\n1.2.0\n12220\n1.2.0\n.111.\n\nouterwall \nblack\n\n\n=======\nLEGEND\n=======\n\nplayer = player1 or player2 or player3 or player4 or player5 or player6 or player7 or player8 or player9\n\na = player1 and crate\ns = player2 and crate\nd = player3 and crate\nf = player4 and crate\ng = player5 and crate\nh = player6 and crate\nj = player7 and crate\nk = player8 and crate\nl = player9 and Crate\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n, = outerwall and wall\n\n=======\nSOUNDS\n=======\n\nstartlevel 4424703\nendlevel 73919502\nCrate MOVE 99195907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nWall\nplayer\nCrate\nouterwall\n\n======\nRULES\n======\n\n[ > player | outerwall ] -> cancel\n\n[ > Player Crate ] -> [ > Player > Crate ]\n[ > crate | crate ] -> [ > crate | > crate ]\n\n[ > crate | wall ] -> [ crate | wall ]\n\n\n==============\nWINCONDITIONS\n==============\n\nall crate on Target\n\n=======\nLEVELS\n=======\n\n\nmessage level 1 of 10\n\n(level 1? not trivial!)\n,,,,,,,,,,,\n,#########,\n,#o.....o#,\n,#.......#,\n,#.......#,\n,#..*.*..#,\n,#..123..#,\n,#..456..#,\n,#..789..#,\n,#########,\n,,,,,,,,,,,\n\n\nmessage level 2 of 10\n\n(ok for a level 2?)\n,,,,,,,,,\n,o.....o,\n,.......,\n,..***..,\n,..123##,\n,..456..,\n,..789..,\n,......o,\n,,,,,,,,,\n\n\n\nmessage level 3 of 10\n(slightly harder level 1)\n,,,,,,,,\n,..#.#.,\n,.123.*,\n,.456..,\n,.789..,\n,.#...#,\n,#..#.o,\n,,,,,,,,\n\n\nmessage level 4 of 10\n\n\n(satisfying + not hard, but only given that i thought about it in advance)\n,,,,,,,,\n,.*....,\n,.123o.,\n,.456..,\n,.789.@,\n,...*..,\n,....o.,\n,,,,,,,,\n\n\nmessage level 5 of 10\n\n(Easy but maybe ok?)\n,,,,,,,,\n,.o@*o.,\n,.123..,\n,o456*.,\n,.j89*o,\n,......,\n,......,\n,,,,,,,,\n\n\nmessage level 6 of 10\n\n(not too hard with two crates)\n,,,,,,,,\n,.#.#.o,\n,.1s3..,\n,.456.#,\n,#789..,\n,...o#.,\n,...*..,\n,,,,,,,,\n\n\nmessage level 7 of 10\n\n(3175)\n(not too hard but I got stuck for a weird amount of time)\n,,,,,,,,,\n,...o...,\n,.123...,\n,.456##*,\n,.789.*.,\n,.......,\n,o......,\n,.......,\n,,,,,,,,,\n\n\n\n\nmessage level 8 of 10\n(nontrivial - arrange multiple pieces on your body to solve in the end)\n,,,,,,,,\n,..#..o,\n,.123..,\n,.45h..,\n,.7kl..,\n,..o...,\n,o..#..,\n,,,,,,,,\n\n\n\n\nmessage level 9 of 10\n(cute idea)\n,,,,,,,,\n,......,\n,.123.o,\n,.456.*,\n,.78k.o,\n,...*.o,\n,...@.@,\n,,,,,,,,\n\n\n\nmessage level 10 of 10\n(enjoyed solving this one)\n,,,,,,,,\n,....oo,\n,.1s3..,\n,.456#.,\n,.789.#,\n,#....*,\n,.*o...,\n,,,,,,,,\n\nmessage Congratulations! You are the most adroitly attractive entity in the known universe.\n\n(\nmessage level 11 of 11\n\n(very hard - needed a hint :'[ )\n,,,,,,,,\n,.o.o..,\n,.123..,\n,o456#.,\n,.789..,\n,..*.#.,\n,.*.*..,\n,,,,,,,,\n\n\n\n\n(wasn't able to solve)\n,,,,,,,,\n,.#...o,\n,.123..,\n,.4g6*.,\n,o789..,\n,...#..,\n,#@....,\n,,,,,,,,\n\n\n\n\n\n(too hard)\n,,,,,,,,\n,.*...o,\n,.123#.,\n,.456.#,\n,@789..,\n,..*##.,\n,.....o,\n,,,,,,,,\n\n(ok level 1?)\n,,,,,,,,\n,###..#,\n,.123.#,\n,.456..,\n,#789.#,\n,o....*,\n,......,\n,,,,,,,,\n\n\n,,,,,,,,\n,...#.o,\n,.123#.,\n,.456..,\n,.789..,\n,..#...,\n,o*#*#.,\n,,,,,,,,\n\n,,,,,,,,\n,......,\n,.123..,\n,.456..,\n,.789..,\n,......,\n,......,\n,,,,,,,,\n\n,,,,,,,,,\n,.......,\n,.123...,\n,.456...,\n,.789...,\n,.......,\n,.......,\n,.......,\n,,,,,,,,,\n\n\n\n,,,,,,,,,\n,.......,\n,.123...,\n,.456...,\n,.789...,\n,.......,\n,.......,\n,.......,\n,.......,\n,.......,\n,,,,,,,,,\n\n,,,,,,,,,,,\n,.........,\n,.123.....,\n,.456.....,\n,.789.....,\n,.........,\n,.........,\n,.........,\n,.........,\n,.........,\n,,,,,,,,,,,\n)\n\n(\n\n==========\nTRANSFORM\n==========\n\nchoose 5 option 0.5 [ no wall no player ] -> [ wall ]\n+ option 0.5 []->[]\n\nchoose 2 [ no wall no player ] -> [ target ]\nchoose 2 [ no wall ] -> [ crate ]\n\n)\n",[3,2,3,1,1,1,0,0,3,3,2,2,2,3,3,0,0,0,1,1,2,2,2,3,3,3,0,0,1,2,3,3,0,0,2,2,0,1,1,0,3,3,3,2,2,0,1,2,3,3,2,2,2,1,1,1,1,1,0,0,0,3,3,3,3,3,2,2,1,0,1,2,1,0],"background outerwall wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,background target:2,1,0,\n0,1,background crate:3,background crate player1:4,background player4:5,background player7:6,1,1,0,\n0,1,1,background player2:7,background player5:8,background player8:9,1,1,0,\n0,2,1,background player3:10,background player6:11,background player9:12,1,1,0,\n0,1,1,background wall:13,1,1,1,1,0,\n0,1,1,13,1,1,1,1,0,\n0,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n",13,"1627894355351.2"] + "Attractor Net", + ["title Attractor Net\nauthor increpare\nhomepage www.increpare.com\n\n(require_player_movement)\n\n========\nOBJECTS\n========\n\nBackground\ndarkgray\n\nTarget\n#7eb44a\n00000\n00000\n00000\n00000\n00000\n\n\nWall\n#2c2c2c\n\nplayer1 1\nblue lightblue\n.0000\n01.1.\n0....\n01.1.\n0....\n\nplayer2 2\nblue lightblue\n00000\n.1.1.\n.....\n.1.1.\n.....\n\nplayer3 3\nblue lightblue\n0000.\n.1.10\n....0\n.1.10\n....0\n\nplayer4 4\nblue lightblue\n0....\n01.1.\n0....\n01.1.\n0....\n\nplayer5 5\nlightblue\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nplayer6 6\nlightblue blue\n....1\n.0.01\n....1\n.0.01\n....1\n\nplayer7 7\nblue lightblue\n0....\n01.1.\n0....\n01.1.\n.0000\n\nplayer8 8\nlightblue blue\n.....\n.0.0.\n.....\n.0.0.\n11111\n\nplayer9 9\nlightblue blue\n....1\n.0.01\n....1\n.0.01\n1111.\n\nCrate\n#ff6fd0 #d248a5 #ff3fc0\n.000.\n1.2.0\n12220\n1.2.0\n.111.\n\nouterwall \nblack\n\n\n=======\nLEGEND\n=======\n\nplayer = player1 or player2 or player3 or player4 or player5 or player6 or player7 or player8 or player9\n\na = player1 and crate\ns = player2 and crate\nd = player3 and crate\nf = player4 and crate\ng = player5 and crate\nh = player6 and crate\nj = player7 and crate\nk = player8 and crate\nl = player9 and Crate\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n, = outerwall and wall\n\n=======\nSOUNDS\n=======\n\nstartlevel 4424703\nendlevel 73919502\nCrate MOVE 99195907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nWall\nplayer\nCrate\nouterwall\n\n======\nRULES\n======\n\n[ > player | outerwall ] -> cancel\n\n[ > Player Crate ] -> [ > Player > Crate ]\n[ > crate | crate ] -> [ > crate | > crate ]\n\n[ > crate | wall ] -> [ crate | wall ]\n\n\n==============\nWINCONDITIONS\n==============\n\nall crate on Target\n\n=======\nLEVELS\n=======\n\n\nmessage level 1 of 10\n\n(level 1? not trivial!)\n,,,,,,,,,,,\n,#########,\n,#o.....o#,\n,#.......#,\n,#.......#,\n,#..*.*..#,\n,#..123..#,\n,#..456..#,\n,#..789..#,\n,#########,\n,,,,,,,,,,,\n\n\nmessage level 2 of 10\n\n(ok for a level 2?)\n,,,,,,,,,\n,o.....o,\n,.......,\n,..***..,\n,..123##,\n,..456..,\n,..789..,\n,......o,\n,,,,,,,,,\n\n\n\nmessage level 3 of 10\n(slightly harder level 1)\n,,,,,,,,\n,..#.#.,\n,.123.*,\n,.456..,\n,.789..,\n,.#...#,\n,#..#.o,\n,,,,,,,,\n\n\nmessage level 4 of 10\n\n\n(satisfying + not hard, but only given that i thought about it in advance)\n,,,,,,,,\n,.*....,\n,.123o.,\n,.456..,\n,.789.@,\n,...*..,\n,....o.,\n,,,,,,,,\n\n\nmessage level 5 of 10\n\n(Easy but maybe ok?)\n,,,,,,,,\n,.o@*o.,\n,.123..,\n,o456*.,\n,.j89*o,\n,......,\n,......,\n,,,,,,,,\n\n\nmessage level 6 of 10\n\n(not too hard with two crates)\n,,,,,,,,\n,.#.#.o,\n,.1s3..,\n,.456.#,\n,#789..,\n,...o#.,\n,...*..,\n,,,,,,,,\n\n\nmessage level 7 of 10\n\n(3175)\n(not too hard but I got stuck for a weird amount of time)\n,,,,,,,,,\n,...o...,\n,.123...,\n,.456##*,\n,.789.*.,\n,.......,\n,o......,\n,.......,\n,,,,,,,,,\n\n\n\n\nmessage level 8 of 10\n(nontrivial - arrange multiple pieces on your body to solve in the end)\n,,,,,,,,\n,..#..o,\n,.123..,\n,.45h..,\n,.7kl..,\n,..o...,\n,o..#..,\n,,,,,,,,\n\n\n\n\nmessage level 9 of 10\n(cute idea)\n,,,,,,,,\n,......,\n,.123.o,\n,.456.*,\n,.78k.o,\n,...*.o,\n,...@.@,\n,,,,,,,,\n\n\n\nmessage level 10 of 10\n(enjoyed solving this one)\n,,,,,,,,\n,....oo,\n,.1s3..,\n,.456#.,\n,.789.#,\n,#....*,\n,.*o...,\n,,,,,,,,\n\nmessage Congratulations! You are the most adroitly attractive entity in the known universe.\n\n(\nmessage level 11 of 11\n\n(very hard - needed a hint :'[ )\n,,,,,,,,\n,.o.o..,\n,.123..,\n,o456#.,\n,.789..,\n,..*.#.,\n,.*.*..,\n,,,,,,,,\n\n\n\n\n(wasn't able to solve)\n,,,,,,,,\n,.#...o,\n,.123..,\n,.4g6*.,\n,o789..,\n,...#..,\n,#@....,\n,,,,,,,,\n\n\n\n\n\n(too hard)\n,,,,,,,,\n,.*...o,\n,.123#.,\n,.456.#,\n,@789..,\n,..*##.,\n,.....o,\n,,,,,,,,\n\n(ok level 1?)\n,,,,,,,,\n,###..#,\n,.123.#,\n,.456..,\n,#789.#,\n,o....*,\n,......,\n,,,,,,,,\n\n\n,,,,,,,,\n,...#.o,\n,.123#.,\n,.456..,\n,.789..,\n,..#...,\n,o*#*#.,\n,,,,,,,,\n\n,,,,,,,,\n,......,\n,.123..,\n,.456..,\n,.789..,\n,......,\n,......,\n,,,,,,,,\n\n,,,,,,,,,\n,.......,\n,.123...,\n,.456...,\n,.789...,\n,.......,\n,.......,\n,.......,\n,,,,,,,,,\n\n\n\n,,,,,,,,,\n,.......,\n,.123...,\n,.456...,\n,.789...,\n,.......,\n,.......,\n,.......,\n,.......,\n,.......,\n,,,,,,,,,\n\n,,,,,,,,,,,\n,.........,\n,.123.....,\n,.456.....,\n,.789.....,\n,.........,\n,.........,\n,.........,\n,.........,\n,.........,\n,,,,,,,,,,,\n)\n\n(\n\n==========\nTRANSFORM\n==========\n\nchoose 5 option 0.5 [ no wall no player ] -> [ wall ]\n+ option 0.5 []->[]\n\nchoose 2 [ no wall no player ] -> [ target ]\nchoose 2 [ no wall ] -> [ crate ]\n\n)\n", [3, 2, 3, 1, 1, 1, 0, 0, 3, 3, 2, 2, 2, 3, 3, 0, 0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 0, 0, 1, 2, 3, 3, 0, 0, 2, 2, 0, 1, 1, 0, 3, 3, 3, 2, 2, 0, 1, 2, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 0, 0, 0, 3, 3, 3, 3, 3, 2, 2, 1, 0, 1, 2, 1, 0], "background outerwall wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,background target:2,1,0,\n0,1,background crate:3,background crate player1:4,background player4:5,background player7:6,1,1,0,\n0,1,1,background player2:7,background player5:8,background player8:9,1,1,0,\n0,2,1,background player3:10,background player6:11,background player9:12,1,1,0,\n0,1,1,background wall:13,1,1,1,1,0,\n0,1,1,13,1,1,1,1,0,\n0,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n", 13, "1627894355351.2"] ], [ - "Yellow Box", - ["title Yellow Box\nauthor increpare\nhomepage www.increpare.com\ntext_color #b1aa11\nrun_rules_on_level_start\n\nbackground_color #373737\n\n========\nOBJECTS\n========\n\nBackground\n#6f727a\n\n\nPedestrian\n#823123 #4e88f1 #639bff #822c1d #4b193b #646464\n..0..\n.12..\n1.22.\n3.4.3\n.4.4.\n\nWall\n#373737\n\n\ncar_v\n#000000 #30823f #1e6a2b #85c6ca #41a352 #398144 #9fdadd #151515\n01110\n23334\n25554\n26664\n04447\n\n\ncar_h\n#000000 #30823f #1e6a2b #85c6ca #398144 #9fdadd #41a352 #151515\n01110\n23456\n23456\n23456\n06667\n\n\ncrash_n\n#000000 #30823f #ac3232 #1e6a2b #85c6ca #41a352 #398144 #823123 #4681eb #151515\n01120\n32445\n26762\n32885\n05859\n\ncrash_s\n#151515 #30823f #4681eb #000000 #1e6a2b #ac3232 #41a352 #398144 #823123 #85c6ca\n01213\n42256\n57875\n49956\n35663\n\ncrash_e\n#000000 #30823f #ac3232 #1e6a2b #398144 #41a352 #4681eb #823123 #85c6ca #151515\n01210\n32425\n66785\n36482\n95250\n\ncrash_w\n#000000 #30823f #ac3232 #151515 #85c6ca #398144 #4681eb #41a352 #1e6a2b #823123\n01213\n24567\n84966\n82527\n07270\n\nskid_n\n#545862 #6f727a\n0...0\n0...0\n....0\n.....\n.....\n\n\nskid_s\n#545862\n.....\n.....\n0....\n0...0\n0...0\n\n\nskid_e\n#545862\n...00\n.....\n.....\n.....\n..000\n\n\nskid_w\n#545862\n000..\n.....\n.....\n.....\n00...\n\n\n\nmoveup\n#ff0000\n..0..\n.....\n.....\n.....\n.....\n\nmovedown\n#ff0000\n.....\n.....\n.....\n.....\n..0..\n\nmoveleft \n#ff0000\n.....\n.....\n0....\n.....\n.....\n\nmoveright\n#ff0000\n.....\n.....\n....0\n.....\n.....\n\nplayer_1 1\n#b1aa11 #fbf236\n00000\n0.1..\n01.1.\n0...1\n01.1.\n \nplayer_2 2\n#b1aa11 #fbf236\n00000\n.1...\n1.1.1\n...1.\n1.1.1\n\nplayer_3 3\n#b1aa11 #fbf236\n00000\n1...0\n.1.10\n..1.0\n.1.10\n\nplayer_4 4\n#b1aa11 #fbf236\n0.1..\n01.1.\n0...1\n01.1.\n0.1..\n\nplayer_5 5\n#fbf236\n.0...\n0.0.0\n...0.\n0.0.0\n.0...\n\nplayer_6 6\n#fbf236 #b1aa11\n0...1\n.0.01\n..0.1\n.0.01\n0...1\n\nplayer_7 7\n#b1aa11 #fbf236\n01.1.\n0...1\n01.1.\n0.1..\n00000\n\nplayer_8 8\n#fbf236 #b1aa11\n0.0.0\n...0.\n0.0.0\n.0...\n11111\n\nplayer_9 9\n#fbf236 #b1aa11\n.0.01\n..0.1\n.0.01\n0...1\n11111\n\nplayer_q q\n#b1aa11 #fbf236\n00000\n01...\n0.1.1\n0..1.\n0.1.1\n\nplayer_w w\n#b1aa11 #fbf236\n00000\n1...0\n.1.10\n..1.0\n.1.10\n\nplayer_e e \n#b1aa11 #fbf236\n01...\n0.1.1\n0..1.\n0.1.1\n00000\n\nplayer_r r\n#fbf236 #b1aa11\n0...1\n.0.01\n..0.1\n.0.01\n11111\n\nplayer_t t\n#b1aa11 #fbf236 #868890\n00000\n01210\n02120\n01210\n00000\n\n=======\nLEGEND\n=======\nplayer = player_1 or player_2 or player_3 or player_4 or player_5 or player_6 or player_7 or player_8 or player_9 or player_q or player_w or player_e or player_r or player_t\nskid = skid_n or skid_s or skid_e or skid_w\n\ncrash = crash_n or crash_s or crash_e or crash_w\nmove = moveup or movedown or moveleft or moveright\ncar = car_h or car_v\n. = Background\n# = Wall\nP = Player_1\nc = car_h\nd = car_v\no = Pedestrian\n@ = player_1 and Pedestrian\nobstacle = car or Wall or crash\n\nz = player_1 and Pedestrian\nx = player_2 and Pedestrian\nb = player_3 and Pedestrian\nn = player_4 and Pedestrian\nm = player_5 and Pedestrian\n, = player_6 and Pedestrian\n' = player_7 and Pedestrian\n/ = player_8 and Pedestrian\n; = player_9 and Pedestrian\n\n=======\nSOUNDS\n=======\nsfx0 76358502 (crash)\nendlevel 61183702\nstartlevel 81279102\nshowmessage 42778506\n\nsfx1 11424307 (move vehicle)\n\n================\nCOLLISIONLAYERS\n================\n\nmove\nBackground\n\nskid_n\nskid_s\nskid_e\nskid_w\n\nplayer\n\nWall, car, Pedestrian, crash\n\n======\nRULES\n======\n\n\nup [ stationary moveup car | Wall ] -> [ car | wall] \ndown [ stationary movedown car | Wall ] -> [ car | wall] \nleft [ stationary moveleft car | Wall ] -> [ car | wall] \nright [ stationary moveright car | Wall ] -> [ car | wall] \n\n\nup [ stationary moveup car | car no moveup ] -> [ car | car] \ndown [ stationary movedown car | car no movedown ] -> [ car | car] \nleft [ stationary moveleft car | car no moveleft ] -> [ car | car] \nright [ stationary moveright car | car no moveright ] -> [ car | car] \n\n\nup [ stationary moveup car | Pedestrian ] -> [ skid_n | crash_s ] sfx0\ndown [ stationary movedown car | Pedestrian ] -> [ skid_s | crash_n ] sfx0\nleft [ stationary moveleft car | Pedestrian ] -> [ skid_w | crash_e ] sfx0\nright [ stationary moveright car | Pedestrian ] -> [ skid_e | crash_w ] sfx0\n\n\nup [ stationary moveup car | no obstacle ] -> [ | action moveup car ] again sfx1\ndown [ stationary movedown car | no obstacle ] -> [ | action movedown car ] again sfx1\nleft [ stationary moveleft car | no obstacle ] -> [ | action moveleft car ] again sfx1\nright [ stationary moveright car | no obstacle ] -> [ | action moveright car ] again sfx1\n\n\nup [ > player | car ] -> [ > player | movedown car_v ] again\ndown [ > player | car ] -> [ > player | moveup car_v ] again\nleft [ > player | car ] -> [ > player | moveright car_h ] again\nright [ > player | car ] -> [ > player | moveleft car_h ] again\n\n[ > player | wall ] -> cancel\n\nlate [ car move no player ] -> [ car ]\n\n==============\nWINCONDITIONS\n==============\n\nno Pedestrian\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 18 - Whatever vehicle moves into a yellow box remains in motion until it has left.\n\n(tolerable level 1)\n########\n#o.....#\n#.....c#\n#..qw..#\n#..er..#\n#......#\n#.c..o.#\n########\n\n\nmessage Level 2 of 18 - The laws of Road are inviolable\n(Easy!)\n#######\n#.c...#\n#.123o#\n#o456.#\n#.789.#\n#.c...#\n#######\n\n\nmessage Level 3 of 18 - Respect the yellow box!\n(fine easy engaging)\n###########\n#.........#\n#..c..o...#\n#.........#\n#.c..o..c.#\n#..123....#\n#..456....#\n#..789...o#\n#.........#\n#.........#\n###########\n\nmessage Level 4 of 18 - You ever feel like you're at a junction in life? \n(very slightly less easy)\n#######\n#...c.#\n#.12bc#\n#.456.#\n#.789.#\n#o....#\n#######\n\n\n\nmessage Level 5 of 18 - Yellow is my favourite colour!\n(not hard. medium-engaging)\n###########\n#.........#\n#..c....co#\n#.o123....#\n#..n56....#\n#..789....#\n#..c......#\n###########\n\nmessage Level 6 of 18 - Houserule: NO turning in the yellow box. \n(not too hard. kionda engaging)\n###########\n#.c..oc...#\n#.c.......#\n#..123....#\n#..456....#\n#..789..o.#\n#........o#\n###########\n\nmessage Level 7 of 18 - Prefer death to stalling in the middle of a yellow box.\n(i got it! humane! early intermediate)\n#######\n#.o..c#\n#cz2bc#\n#.45,.#\n#.789.#\n#o..cc#\n#######\n\nmessage Level 8 of 18 - I don't care if you're speeding.\n(interesting intermediate puzzler!)\n#######\n#.c...#\n#..c..#\n#o..c.#\n#.t...#\n##o#.o#\n#######\n\n\nmessage Level 9 of 18 - I ... I guess you can reverse through instead if you want?\n(Easy-intermediate + fun)\n#######\n#c.ccc#\n#o12bo#\n#cnm6c#\n#o789.#\n#.occo#\n#######\n\nmessage Level 10 of 18 - One car in, one car out!\n(not too trivial, netertaining to solve?)\n###########\n#.........#\n#.o.123o..#\n#...456c..#\n#.c.789...#\n#......o..#\n#...c..oc.#\n###########\n\nmessage Level 11 of 18 - Why are all cars green anyway?\n(fine. intermediate)\n#######\n#cc...#\n#.123.#\n#.456o#\n#c'8;c#\n#co.o.#\n#######\n\n\nmessage Level 12 of 18 - Pedestrians are p. dumb yeah.\n(fine)\n#######\n#c.cco#\n#.12bc#\n#o456.#\n#o'/9o#\n#ccocc#\n#######\n\nmessage Level 13 of 18 - No yellow boxes were harmed in the making of this game.\n(fine)\n#######\n#cc.cc#\n#c12bo#\n#on56.#\n#o7/;c#\n#.coc.#\n#######\n\nmessage Level 14 of 18 - Some days I'm big, some days I'm small. That's just life as a yellow box.\n(kinda fun later intermediate)\n###########\n#.........#\n#...c...c.#\n#..123....#\n#..456..o.#\n#..789oo.c#\n#...o...c.#\n###########\n\nmessage Level 15 of 18 - You can't outrun the yellow box!\n(not too hard. kinda fun)\n######\n#oocc#\n#1x3c#\n#4nmc#\n#789c#\n######\n\nmessage Level 16 of 18 - Sometimes I feel like cars wouldn't move at all if it wasn't for my gentle encouragement.\n(hardish but ok?)\n#######\n#c.coc#\n#czx3c#\n#cn56.#\n#c789o#\n#ooo.c#\n#######\n\nmessage Level 17 of 18 - I gained consciusness back when I was a bucket of paint. Rough year, that!\n(hardish - I like this level)\n######\n#cocc#\n#zx3c#\n#nm,c#\n#789c#\n######\n\nmessage Level 18 of 18 - Sometimes I wonder what the future has in store for a little yellow box like me?\n(challenging? ok last level?)\n######\n#...c#\n#123c#\n#4m,c#\n#789o#\n#coco#\n######\n\nmessage Congratulations! Your ferociousness has earned the respect of drivers and pedestrians alike across the globe.\n\n(CUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUT:)\n(\n########\n#oo....#\n#.c...c#\n#.ppp..#\n#.ppp..#\n#.pppo.#\n#.c....#\n########\n\n(trivial/boring)\n######\n#.coo#\n#.o..#\n#....#\n#.p..#\n#.cc.#\n######\n\n(should be ok but can't solve x| )\n#######\n#...o.#\n#.ppp.#\n#.ppp.#\n#cpppc#\n#....o#\n#######\n\n(should be interesting but can't solve)\n#######\n#c....#\n#.ppp.#\n#.ppp.#\n#.@@@c#\n#....c#\n#######\n\n\n(middle-hard, eeeh)\n#######\n#.ccco#\n#op@po#\n#.pp@.#\n#o@ppc#\n#ccocc#\n#######\n\n(didn't solve. dead end. meh)\n########\n#.....o#\n#..c..o#\n#..o.c.#\n#ppp...#\n#ppp...#\n#pppc..#\n########\n\n(didn't solve)\n########\n#......#\n#..c.o.#\n#...o..#\n#ppp.c.#\n#ppp.c.#\n#@p@.c.#\n########\n\n\n(cannae solve it -_- )\n########\n#.....o#\n#......#\n#..o..o#\n#ppp.o.#\n#ppp.cc#\n#ppp.cc#\n########\n\n(Easy)\n###########\n#....o.c..#\n#c.o...o.c#\n#..ppp...o#\n#..ppp....#\n#.cppp....#\n#.........#\n###########\n\n(trivial)\n###########\n#.........#\n#...ppp..c#\n#...ppp...#\n#...ppp.oc#\n#co....o..#\n#co.......#\n###########\n\n(too similar to other level)\n###########\n#.c.o.....#\n#...ppp...#\n#.c.pppco.#\n#.c.ppp...#\n#.........#\n#......oo.#\n###########\n\n\n(trivial)\n######\n#cooc#\n#ppp.#\n#pppo#\n#pppc#\n######\n\n(couldn't do - might've been interesting)\n######\n#ccoc#\n#p@pc#\n#p@po#\n#ppp.#\n######\n\n\n(coudlnt' figure out, but because of one person I couldn't figure out how to kill)\n######\n#coc.#\n#pppo#\n#p@@c#\n#pppc#\n######\n\n(interesting, but I can't solve!)\n######\n#cc.c#\n#p@pc#\n#p@po#\n#p@p.#\n######\n\n(looks fun. can't solve)\n######\n#..cc#\n#pp@c#\n#ppp.#\n#@@@.#\n#...c#\n######\n\n(don't like walls)\n########\n##.o...#\n#c..c..#\n#oo.cc.#\n#ppp.#.#\n#ppp...#\n#pp@...#\n########\n\n(dont' like this)\n########\n#.cooc.#\n#......#\n#c.....#\n#pppc..#\n#@pp...#\n#@pp...#\n########\n\n(meh. don't like walls)\n########\n#..#.c.#\n#......#\n#.coco.#\n#pp@...#\n#ppp.o##\n#pppc..#\n########\n\n(don't like walls)\n########\n#..o.c.#\n##.c...#\n#cco...#\n#ppp..##\n#ppp...#\n#pppoo.#\n########\n\n(don't like walls)\n########\n#.oo.o.#\n#cco..c#\n#......#\n#ppp..##\n#pppc..#\n#ppp.#.#\n########\n\n\n\n(damnit wanted to find interesting but reallly hard)\n#######\n#....o#\n#.@@p.#\n#.ppp.#\n#.ppp.#\n#.ccc.#\n#######\n\n(like other level but easier)\n######\n#.ccc#\n#@@@c#\n#@@@c#\n#pppc#\n######\n\n\n(too similar to others)\n######\n#c.cc#\n#@@p.#\n#@@@c#\n#pppc#\n######\n\n(CBA)\n######\n#oc..#\n#pp@o#\n#p@pc#\n#pppo#\n#.ccc#\n######\n\n\n(meh)\n######\n#cooc#\n#pppc#\n#ppp.#\n#pp@o#\n#c.oc#\n######\n\n\n###########\n#.........#\n#.........#\n#.........#\n#...ppp...#\n#...ppp...#\n#...ppp...#\n#.........#\n#.........#\n#.........#\n###########\n\n###########\n#.........#\n#.........#\n#..ppp....#\n#..ppp....#\n#..ppp....#\n#.........#\n###########\n\n\n###########\n#.........#\n#...ppp...#\n#...ppp...#\n#...ppp...#\n###########\n\n#################\n#...............#\n#......ppp......#\n#......ppp......#\n#......ppp......#\n#################\n\n###########\n#.........#\n#.........#\n#..ppp....#\n#..ppp....#\n#..ppp....#\n#.........#\n###########\n\n########\n#......#\n#......#\n#.ppp..#\n#.ppp..#\n#.ppp..#\n#......#\n########\n\n#######\n#.....#\n#.ppp.#\n#.ppp.#\n#.ppp.#\n#.....#\n#######\n\n######\n#....#\n#ppp.#\n#ppp.#\n#ppp.#\n######\n\n######\n#....#\n#ppp.#\n#ppp.#\n#ppp.#\n#....#\n######\n\n#########\n#.......#\n#.......#\n#.......#\n#.p.....#\n#.......#\n#########\n\n######\n#....#\n#....#\n#....#\n#.p..#\n#....#\n######\n\n########\n#......#\n#......#\n#......#\n#ppp...#\n#ppp...#\n#ppp...#\n########\n\n########\n#......#\n#......#\n#......#\n#ppp...#\n#ppp.cc#\n#ppp.cc#\n########\n\n########\n#oo..oo#\n#......#\n#......#\n#ppp...#\n#ppp.cc#\n#ppp.cc#\n########\n)\n",[3,0,3,3,3,2,2],"background wall:0,0,0,0,0,0,0,0,0,background:1,1,\n1,1,1,1,0,0,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,0,0,\n1,1,1,1,background car_v:2,background pedestrian:3,0,0,1,background car_h:4,1,\n1,1,1,0,0,1,1,1,1,3,1,\n0,0,1,1,1,background player_1:5,background pedestrian player_4:6,background player_7:7,0,0,1,\n1,1,background crash_s player_2:8,background player_5 skid_n:9,background player_8:10,0,0,1,2,1,background player_3:11,\nbackground player_6:12,background player_9:13,0,0,0,0,0,0,0,0,0,\n",27,"1627894381565.9717"] + "Yellow Box", + ["title Yellow Box\nauthor increpare\nhomepage www.increpare.com\ntext_color #b1aa11\nrun_rules_on_level_start\n\nbackground_color #373737\n\n========\nOBJECTS\n========\n\nBackground\n#6f727a\n\n\nPedestrian\n#823123 #4e88f1 #639bff #822c1d #4b193b #646464\n..0..\n.12..\n1.22.\n3.4.3\n.4.4.\n\nWall\n#373737\n\n\ncar_v\n#000000 #30823f #1e6a2b #85c6ca #41a352 #398144 #9fdadd #151515\n01110\n23334\n25554\n26664\n04447\n\n\ncar_h\n#000000 #30823f #1e6a2b #85c6ca #398144 #9fdadd #41a352 #151515\n01110\n23456\n23456\n23456\n06667\n\n\ncrash_n\n#000000 #30823f #ac3232 #1e6a2b #85c6ca #41a352 #398144 #823123 #4681eb #151515\n01120\n32445\n26762\n32885\n05859\n\ncrash_s\n#151515 #30823f #4681eb #000000 #1e6a2b #ac3232 #41a352 #398144 #823123 #85c6ca\n01213\n42256\n57875\n49956\n35663\n\ncrash_e\n#000000 #30823f #ac3232 #1e6a2b #398144 #41a352 #4681eb #823123 #85c6ca #151515\n01210\n32425\n66785\n36482\n95250\n\ncrash_w\n#000000 #30823f #ac3232 #151515 #85c6ca #398144 #4681eb #41a352 #1e6a2b #823123\n01213\n24567\n84966\n82527\n07270\n\nskid_n\n#545862 #6f727a\n0...0\n0...0\n....0\n.....\n.....\n\n\nskid_s\n#545862\n.....\n.....\n0....\n0...0\n0...0\n\n\nskid_e\n#545862\n...00\n.....\n.....\n.....\n..000\n\n\nskid_w\n#545862\n000..\n.....\n.....\n.....\n00...\n\n\n\nmoveup\n#ff0000\n..0..\n.....\n.....\n.....\n.....\n\nmovedown\n#ff0000\n.....\n.....\n.....\n.....\n..0..\n\nmoveleft \n#ff0000\n.....\n.....\n0....\n.....\n.....\n\nmoveright\n#ff0000\n.....\n.....\n....0\n.....\n.....\n\nplayer_1 1\n#b1aa11 #fbf236\n00000\n0.1..\n01.1.\n0...1\n01.1.\n \nplayer_2 2\n#b1aa11 #fbf236\n00000\n.1...\n1.1.1\n...1.\n1.1.1\n\nplayer_3 3\n#b1aa11 #fbf236\n00000\n1...0\n.1.10\n..1.0\n.1.10\n\nplayer_4 4\n#b1aa11 #fbf236\n0.1..\n01.1.\n0...1\n01.1.\n0.1..\n\nplayer_5 5\n#fbf236\n.0...\n0.0.0\n...0.\n0.0.0\n.0...\n\nplayer_6 6\n#fbf236 #b1aa11\n0...1\n.0.01\n..0.1\n.0.01\n0...1\n\nplayer_7 7\n#b1aa11 #fbf236\n01.1.\n0...1\n01.1.\n0.1..\n00000\n\nplayer_8 8\n#fbf236 #b1aa11\n0.0.0\n...0.\n0.0.0\n.0...\n11111\n\nplayer_9 9\n#fbf236 #b1aa11\n.0.01\n..0.1\n.0.01\n0...1\n11111\n\nplayer_q q\n#b1aa11 #fbf236\n00000\n01...\n0.1.1\n0..1.\n0.1.1\n\nplayer_w w\n#b1aa11 #fbf236\n00000\n1...0\n.1.10\n..1.0\n.1.10\n\nplayer_e e \n#b1aa11 #fbf236\n01...\n0.1.1\n0..1.\n0.1.1\n00000\n\nplayer_r r\n#fbf236 #b1aa11\n0...1\n.0.01\n..0.1\n.0.01\n11111\n\nplayer_t t\n#b1aa11 #fbf236 #868890\n00000\n01210\n02120\n01210\n00000\n\n=======\nLEGEND\n=======\nplayer = player_1 or player_2 or player_3 or player_4 or player_5 or player_6 or player_7 or player_8 or player_9 or player_q or player_w or player_e or player_r or player_t\nskid = skid_n or skid_s or skid_e or skid_w\n\ncrash = crash_n or crash_s or crash_e or crash_w\nmove = moveup or movedown or moveleft or moveright\ncar = car_h or car_v\n. = Background\n# = Wall\nP = Player_1\nc = car_h\nd = car_v\no = Pedestrian\n@ = player_1 and Pedestrian\nobstacle = car or Wall or crash\n\nz = player_1 and Pedestrian\nx = player_2 and Pedestrian\nb = player_3 and Pedestrian\nn = player_4 and Pedestrian\nm = player_5 and Pedestrian\n, = player_6 and Pedestrian\n' = player_7 and Pedestrian\n/ = player_8 and Pedestrian\n; = player_9 and Pedestrian\n\n=======\nSOUNDS\n=======\nsfx0 76358502 (crash)\nendlevel 61183702\nstartlevel 81279102\nshowmessage 42778506\n\nsfx1 11424307 (move vehicle)\n\n================\nCOLLISIONLAYERS\n================\n\nmove\nBackground\n\nskid_n\nskid_s\nskid_e\nskid_w\n\nplayer\n\nWall, car, Pedestrian, crash\n\n======\nRULES\n======\n\n\nup [ stationary moveup car | Wall ] -> [ car | wall] \ndown [ stationary movedown car | Wall ] -> [ car | wall] \nleft [ stationary moveleft car | Wall ] -> [ car | wall] \nright [ stationary moveright car | Wall ] -> [ car | wall] \n\n\nup [ stationary moveup car | car no moveup ] -> [ car | car] \ndown [ stationary movedown car | car no movedown ] -> [ car | car] \nleft [ stationary moveleft car | car no moveleft ] -> [ car | car] \nright [ stationary moveright car | car no moveright ] -> [ car | car] \n\n\nup [ stationary moveup car | Pedestrian ] -> [ skid_n | crash_s ] sfx0\ndown [ stationary movedown car | Pedestrian ] -> [ skid_s | crash_n ] sfx0\nleft [ stationary moveleft car | Pedestrian ] -> [ skid_w | crash_e ] sfx0\nright [ stationary moveright car | Pedestrian ] -> [ skid_e | crash_w ] sfx0\n\n\nup [ stationary moveup car | no obstacle ] -> [ | action moveup car ] again sfx1\ndown [ stationary movedown car | no obstacle ] -> [ | action movedown car ] again sfx1\nleft [ stationary moveleft car | no obstacle ] -> [ | action moveleft car ] again sfx1\nright [ stationary moveright car | no obstacle ] -> [ | action moveright car ] again sfx1\n\n\nup [ > player | car ] -> [ > player | movedown car_v ] again\ndown [ > player | car ] -> [ > player | moveup car_v ] again\nleft [ > player | car ] -> [ > player | moveright car_h ] again\nright [ > player | car ] -> [ > player | moveleft car_h ] again\n\n[ > player | wall ] -> cancel\n\nlate [ car move no player ] -> [ car ]\n\n==============\nWINCONDITIONS\n==============\n\nno Pedestrian\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 18 - Whatever vehicle moves into a yellow box remains in motion until it has left.\n\n(tolerable level 1)\n########\n#o.....#\n#.....c#\n#..qw..#\n#..er..#\n#......#\n#.c..o.#\n########\n\n\nmessage Level 2 of 18 - The laws of Road are inviolable\n(Easy!)\n#######\n#.c...#\n#.123o#\n#o456.#\n#.789.#\n#.c...#\n#######\n\n\nmessage Level 3 of 18 - Respect the yellow box!\n(fine easy engaging)\n###########\n#.........#\n#..c..o...#\n#.........#\n#.c..o..c.#\n#..123....#\n#..456....#\n#..789...o#\n#.........#\n#.........#\n###########\n\nmessage Level 4 of 18 - You ever feel like you're at a junction in life? \n(very slightly less easy)\n#######\n#...c.#\n#.12bc#\n#.456.#\n#.789.#\n#o....#\n#######\n\n\n\nmessage Level 5 of 18 - Yellow is my favourite colour!\n(not hard. medium-engaging)\n###########\n#.........#\n#..c....co#\n#.o123....#\n#..n56....#\n#..789....#\n#..c......#\n###########\n\nmessage Level 6 of 18 - Houserule: NO turning in the yellow box. \n(not too hard. kionda engaging)\n###########\n#.c..oc...#\n#.c.......#\n#..123....#\n#..456....#\n#..789..o.#\n#........o#\n###########\n\nmessage Level 7 of 18 - Prefer death to stalling in the middle of a yellow box.\n(i got it! humane! early intermediate)\n#######\n#.o..c#\n#cz2bc#\n#.45,.#\n#.789.#\n#o..cc#\n#######\n\nmessage Level 8 of 18 - I don't care if you're speeding.\n(interesting intermediate puzzler!)\n#######\n#.c...#\n#..c..#\n#o..c.#\n#.t...#\n##o#.o#\n#######\n\n\nmessage Level 9 of 18 - I ... I guess you can reverse through instead if you want?\n(Easy-intermediate + fun)\n#######\n#c.ccc#\n#o12bo#\n#cnm6c#\n#o789.#\n#.occo#\n#######\n\nmessage Level 10 of 18 - One car in, one car out!\n(not too trivial, netertaining to solve?)\n###########\n#.........#\n#.o.123o..#\n#...456c..#\n#.c.789...#\n#......o..#\n#...c..oc.#\n###########\n\nmessage Level 11 of 18 - Why are all cars green anyway?\n(fine. intermediate)\n#######\n#cc...#\n#.123.#\n#.456o#\n#c'8;c#\n#co.o.#\n#######\n\n\nmessage Level 12 of 18 - Pedestrians are p. dumb yeah.\n(fine)\n#######\n#c.cco#\n#.12bc#\n#o456.#\n#o'/9o#\n#ccocc#\n#######\n\nmessage Level 13 of 18 - No yellow boxes were harmed in the making of this game.\n(fine)\n#######\n#cc.cc#\n#c12bo#\n#on56.#\n#o7/;c#\n#.coc.#\n#######\n\nmessage Level 14 of 18 - Some days I'm big, some days I'm small. That's just life as a yellow box.\n(kinda fun later intermediate)\n###########\n#.........#\n#...c...c.#\n#..123....#\n#..456..o.#\n#..789oo.c#\n#...o...c.#\n###########\n\nmessage Level 15 of 18 - You can't outrun the yellow box!\n(not too hard. kinda fun)\n######\n#oocc#\n#1x3c#\n#4nmc#\n#789c#\n######\n\nmessage Level 16 of 18 - Sometimes I feel like cars wouldn't move at all if it wasn't for my gentle encouragement.\n(hardish but ok?)\n#######\n#c.coc#\n#czx3c#\n#cn56.#\n#c789o#\n#ooo.c#\n#######\n\nmessage Level 17 of 18 - I gained consciusness back when I was a bucket of paint. Rough year, that!\n(hardish - I like this level)\n######\n#cocc#\n#zx3c#\n#nm,c#\n#789c#\n######\n\nmessage Level 18 of 18 - Sometimes I wonder what the future has in store for a little yellow box like me?\n(challenging? ok last level?)\n######\n#...c#\n#123c#\n#4m,c#\n#789o#\n#coco#\n######\n\nmessage Congratulations! Your ferociousness has earned the respect of drivers and pedestrians alike across the globe.\n\n(CUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUT:)\n(\n########\n#oo....#\n#.c...c#\n#.ppp..#\n#.ppp..#\n#.pppo.#\n#.c....#\n########\n\n(trivial/boring)\n######\n#.coo#\n#.o..#\n#....#\n#.p..#\n#.cc.#\n######\n\n(should be ok but can't solve x| )\n#######\n#...o.#\n#.ppp.#\n#.ppp.#\n#cpppc#\n#....o#\n#######\n\n(should be interesting but can't solve)\n#######\n#c....#\n#.ppp.#\n#.ppp.#\n#.@@@c#\n#....c#\n#######\n\n\n(middle-hard, eeeh)\n#######\n#.ccco#\n#op@po#\n#.pp@.#\n#o@ppc#\n#ccocc#\n#######\n\n(didn't solve. dead end. meh)\n########\n#.....o#\n#..c..o#\n#..o.c.#\n#ppp...#\n#ppp...#\n#pppc..#\n########\n\n(didn't solve)\n########\n#......#\n#..c.o.#\n#...o..#\n#ppp.c.#\n#ppp.c.#\n#@p@.c.#\n########\n\n\n(cannae solve it -_- )\n########\n#.....o#\n#......#\n#..o..o#\n#ppp.o.#\n#ppp.cc#\n#ppp.cc#\n########\n\n(Easy)\n###########\n#....o.c..#\n#c.o...o.c#\n#..ppp...o#\n#..ppp....#\n#.cppp....#\n#.........#\n###########\n\n(trivial)\n###########\n#.........#\n#...ppp..c#\n#...ppp...#\n#...ppp.oc#\n#co....o..#\n#co.......#\n###########\n\n(too similar to other level)\n###########\n#.c.o.....#\n#...ppp...#\n#.c.pppco.#\n#.c.ppp...#\n#.........#\n#......oo.#\n###########\n\n\n(trivial)\n######\n#cooc#\n#ppp.#\n#pppo#\n#pppc#\n######\n\n(couldn't do - might've been interesting)\n######\n#ccoc#\n#p@pc#\n#p@po#\n#ppp.#\n######\n\n\n(coudlnt' figure out, but because of one person I couldn't figure out how to kill)\n######\n#coc.#\n#pppo#\n#p@@c#\n#pppc#\n######\n\n(interesting, but I can't solve!)\n######\n#cc.c#\n#p@pc#\n#p@po#\n#p@p.#\n######\n\n(looks fun. can't solve)\n######\n#..cc#\n#pp@c#\n#ppp.#\n#@@@.#\n#...c#\n######\n\n(don't like walls)\n########\n##.o...#\n#c..c..#\n#oo.cc.#\n#ppp.#.#\n#ppp...#\n#pp@...#\n########\n\n(dont' like this)\n########\n#.cooc.#\n#......#\n#c.....#\n#pppc..#\n#@pp...#\n#@pp...#\n########\n\n(meh. don't like walls)\n########\n#..#.c.#\n#......#\n#.coco.#\n#pp@...#\n#ppp.o##\n#pppc..#\n########\n\n(don't like walls)\n########\n#..o.c.#\n##.c...#\n#cco...#\n#ppp..##\n#ppp...#\n#pppoo.#\n########\n\n(don't like walls)\n########\n#.oo.o.#\n#cco..c#\n#......#\n#ppp..##\n#pppc..#\n#ppp.#.#\n########\n\n\n\n(damnit wanted to find interesting but reallly hard)\n#######\n#....o#\n#.@@p.#\n#.ppp.#\n#.ppp.#\n#.ccc.#\n#######\n\n(like other level but easier)\n######\n#.ccc#\n#@@@c#\n#@@@c#\n#pppc#\n######\n\n\n(too similar to others)\n######\n#c.cc#\n#@@p.#\n#@@@c#\n#pppc#\n######\n\n(CBA)\n######\n#oc..#\n#pp@o#\n#p@pc#\n#pppo#\n#.ccc#\n######\n\n\n(meh)\n######\n#cooc#\n#pppc#\n#ppp.#\n#pp@o#\n#c.oc#\n######\n\n\n###########\n#.........#\n#.........#\n#.........#\n#...ppp...#\n#...ppp...#\n#...ppp...#\n#.........#\n#.........#\n#.........#\n###########\n\n###########\n#.........#\n#.........#\n#..ppp....#\n#..ppp....#\n#..ppp....#\n#.........#\n###########\n\n\n###########\n#.........#\n#...ppp...#\n#...ppp...#\n#...ppp...#\n###########\n\n#################\n#...............#\n#......ppp......#\n#......ppp......#\n#......ppp......#\n#################\n\n###########\n#.........#\n#.........#\n#..ppp....#\n#..ppp....#\n#..ppp....#\n#.........#\n###########\n\n########\n#......#\n#......#\n#.ppp..#\n#.ppp..#\n#.ppp..#\n#......#\n########\n\n#######\n#.....#\n#.ppp.#\n#.ppp.#\n#.ppp.#\n#.....#\n#######\n\n######\n#....#\n#ppp.#\n#ppp.#\n#ppp.#\n######\n\n######\n#....#\n#ppp.#\n#ppp.#\n#ppp.#\n#....#\n######\n\n#########\n#.......#\n#.......#\n#.......#\n#.p.....#\n#.......#\n#########\n\n######\n#....#\n#....#\n#....#\n#.p..#\n#....#\n######\n\n########\n#......#\n#......#\n#......#\n#ppp...#\n#ppp...#\n#ppp...#\n########\n\n########\n#......#\n#......#\n#......#\n#ppp...#\n#ppp.cc#\n#ppp.cc#\n########\n\n########\n#oo..oo#\n#......#\n#......#\n#ppp...#\n#ppp.cc#\n#ppp.cc#\n########\n)\n", [3, 0, 3, 3, 3, 2, 2], "background wall:0,0,0,0,0,0,0,0,0,background:1,1,\n1,1,1,1,0,0,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,0,0,\n1,1,1,1,background car_v:2,background pedestrian:3,0,0,1,background car_h:4,1,\n1,1,1,0,0,1,1,1,1,3,1,\n0,0,1,1,1,background player_1:5,background pedestrian player_4:6,background player_7:7,0,0,1,\n1,1,background crash_s player_2:8,background player_5 skid_n:9,background player_8:10,0,0,1,2,1,background player_3:11,\nbackground player_6:12,background player_9:13,0,0,0,0,0,0,0,0,0,\n", 27, "1627894381565.9717"] ], [ - "Sokoban[Sokoban[Sokoban]]]", - ["title Sokoban[Sokoban[Sokoban]]]\nauthor increpare\nhomepage www.increpare.com\n\nrequire_player_movement\n\n========\nOBJECTS\n========\n\nBackground\ngray\n\nTarget\ndarkgray\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkgreen darkgreen\n00010\n11111\n01000\n11111\n00010\n\nPlayer1\ndarkblue darkblue darkblue darkblue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nred\n00000\n0...0\n0...0\n0...0\n00000\n\nPlayer2\nblue blue blue blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nPlayer3\nlightblue lightblue lightblue lightblue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\n\n=======\nLEGEND\n=======\n\nplayer = player1\nplayers = player1 or player2 or Player3\n\n. = Background\n# = Wall\n1 = Player1\n2 = player2 \n3 = player3\n* = Crate\n@ = Crate and Target\nO = Target\n\nobstacle = wall or crate \n=======\nSOUNDS\n=======\n\nsfx0 68966907 (Crate move 1)\nsfx1 27936307 (crate move 2)\nsfx2 35780507 (Crate move 3)\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayers, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | stationary Crate | no obstacle ] [stationary player2]-> [ | Player | Crate ] [> player2] sfx0\n[ > Player2 | stationary Crate | no obstacle ] [stationary player3] -> [ | Player2 | Crate ] [> player3] sfx1\n[ > player3 | stationary crate | no obstacle] -> [ | player3 | crate ] sfx2\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Levels 3 of 3\n\n##########\n#........#\n#........#\n#..*oo*..#\n#...3....#\n#........#\n##########\n#........#\n#........#\n#..*oo*..#\n#...2....#\n#........#\n##########\n#........#\n#........#\n#..*oo*..#\n#...1....#\n#........#\n##########\n\nmessage You did good doing good doing good!\n",[1,1,0,3,0,3,3,2,3,2,1,1,1,0,3,2,3,0,3,0,1],"background wall:0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,\nbackground:1,1,1,1,1,0,1,1,1,1,\n1,0,1,1,1,1,1,0,0,1,\n1,1,1,1,0,1,1,1,1,1,\n0,1,1,1,1,1,0,0,1,1,\nbackground crate:2,background player3:3,1,0,1,1,2,1,1,0,\n1,1,1,1,1,0,0,1,1,background target:4,\n1,1,0,1,1,4,1,1,0,1,\n2,4,1,1,0,0,1,1,4,1,\n1,0,1,1,background crate target:5,1,1,0,1,background player1:6,\n4,1,1,0,0,1,1,2,1,1,\n0,1,1,background player2:7,1,1,0,1,1,1,\n1,1,0,0,1,1,1,1,1,0,\n1,1,1,1,1,0,1,1,2,1,\n1,0,0,1,1,1,1,1,0,1,\n1,1,1,1,0,1,1,1,1,1,\n0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,\n",1,"1627894393467.7576"] + "Sokoban[Sokoban[Sokoban]]]", + ["title Sokoban[Sokoban[Sokoban]]]\nauthor increpare\nhomepage www.increpare.com\n\nrequire_player_movement\n\n========\nOBJECTS\n========\n\nBackground\ngray\n\nTarget\ndarkgray\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkgreen darkgreen\n00010\n11111\n01000\n11111\n00010\n\nPlayer1\ndarkblue darkblue darkblue darkblue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nred\n00000\n0...0\n0...0\n0...0\n00000\n\nPlayer2\nblue blue blue blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nPlayer3\nlightblue lightblue lightblue lightblue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\n\n=======\nLEGEND\n=======\n\nplayer = player1\nplayers = player1 or player2 or Player3\n\n. = Background\n# = Wall\n1 = Player1\n2 = player2 \n3 = player3\n* = Crate\n@ = Crate and Target\nO = Target\n\nobstacle = wall or crate \n=======\nSOUNDS\n=======\n\nsfx0 68966907 (Crate move 1)\nsfx1 27936307 (crate move 2)\nsfx2 35780507 (Crate move 3)\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayers, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | stationary Crate | no obstacle ] [stationary player2]-> [ | Player | Crate ] [> player2] sfx0\n[ > Player2 | stationary Crate | no obstacle ] [stationary player3] -> [ | Player2 | Crate ] [> player3] sfx1\n[ > player3 | stationary crate | no obstacle] -> [ | player3 | crate ] sfx2\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Levels 3 of 3\n\n##########\n#........#\n#........#\n#..*oo*..#\n#...3....#\n#........#\n##########\n#........#\n#........#\n#..*oo*..#\n#...2....#\n#........#\n##########\n#........#\n#........#\n#..*oo*..#\n#...1....#\n#........#\n##########\n\nmessage You did good doing good doing good!\n", [1, 1, 0, 3, 0, 3, 3, 2, 3, 2, 1, 1, 1, 0, 3, 2, 3, 0, 3, 0, 1], "background wall:0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,\nbackground:1,1,1,1,1,0,1,1,1,1,\n1,0,1,1,1,1,1,0,0,1,\n1,1,1,1,0,1,1,1,1,1,\n0,1,1,1,1,1,0,0,1,1,\nbackground crate:2,background player3:3,1,0,1,1,2,1,1,0,\n1,1,1,1,1,0,0,1,1,background target:4,\n1,1,0,1,1,4,1,1,0,1,\n2,4,1,1,0,0,1,1,4,1,\n1,0,1,1,background crate target:5,1,1,0,1,background player1:6,\n4,1,1,0,0,1,1,2,1,1,\n0,1,1,background player2:7,1,1,0,1,1,1,\n1,1,0,0,1,1,1,1,1,0,\n1,1,1,1,1,0,1,1,2,1,\n1,0,0,1,1,1,1,1,0,1,\n1,1,1,1,0,1,1,1,1,1,\n0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,\n", 1, "1627894393467.7576"] ], [ - "Varifocal Nightmare", - ["title Varifocal Nightmare\nauthor increpare\nhomepage www.increpare.com\n\ncolor_palette c64\n( verbose_logging )\n\ntext_color blue\n========\nOBJECTS\n========\n\nBackground\ndarkred\n\n\nTarget1a\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTarget1b\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTarget1c\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\nCrate1a\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\nCrate1b\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\nCrate1c\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\ntarget2a\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\ntarget2b\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\ntarget2c\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\ncrate2a\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\ncrate2b\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\ncrate2c\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\nWall\ndarkblue black\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange #999999 purple\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\n\n\n=======\nLEGEND\n=======\ntarget1 = Target1a or Target1b or Target1c\ntarget2 = target2a or target2b or target2c\ncrate1 = Crate1a or Crate1b or Crate1c\ncrate2 = crate2a or crate2b or crate2c\n\ncrate = crate1 or crate2\ntarget = target1 or target2\n. = Background\n# = Wall\nP = Player\n\n1 = Crate1a\n2 = crate1b \n3 = crate1c\n4 = Target1a\n5 = Target1b\n6 = Target1c\n\n7 = Target1a and Crate1a\n8 = Target1b and crate1b \n9 = Target1c and Crate1c\n\n\nq = Crate2a\nw = crate2b \ne = crate2c\nr = Target2a\nt = Target2b\ny = Target2c\n\nu = Target2a and Crate2a\ni = Target2b and crate2b \no = Target2c and Crate2c\n\n=======\nSOUNDS\n=======\nsfx0 10654107 (crate push)\nstartlevel 39415905\nendlevel 15587500\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget1, target2\nPlayer, crate1, crate2, wall\n\n======\nRULES\n======\n\n\n[ > player | Crate1a | no wall no crate ] [ target2a | no wall no target ] -> [ | player | crate1a ] [ | target2a ] sfx0\n[ > player | crate1b | no wall no crate ] [ target2b | no wall no target ] -> [ | player | crate1b ] [ | target2b ] sfx0\n[ > player | crate1c | no wall no crate ] [ target2c | no wall no target ] -> [ | player | crate1c ] [ | target2c ] sfx0\n[ > player | crate2a | no wall no crate ] [ target1a | no wall no target ] -> [ | player | crate2a ] [ | target1a ] sfx0\n[ > player | crate2b | no wall no crate ] [ target1b | no wall no target ] -> [ | player | crate2b ] [ | target1b ] sfx0\n[ > player | crate2c | no wall no crate ] [ target1c | no wall no target ] -> [ | player | crate2c ] [ | target1c ] sfx0\n\n[ > player | no wall no crate ] -> [ | player ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 5 Exits exist\n\n###########\n#....#....#\n#.#.1#.#.r#\n#243.#tqy.#\n#....#....#\n#56.p#we.p#\n###########\n\nmessage Level 2 of 5 Thus shut\n###########\n#..###..###\n#r.###1.###\n#pt..#p2..#\n#q.w.#4.5.#\n#..###..###\n###########\n\n\nmessage Level 3 of 5 Fist fits\n###########\n#.4.##.q.##\n#.1.p#.r.p#\n##.2.##.t.#\n###.5###.w#\n####.####.#\n###########\n\nmessage Level 4 of 5 Pest pets\n#########\n###..####\n#..8....#\n#.#.p#.1#\n#.4..#..#\n#########\n###..####\n#..i....#\n#.#.p#.r#\n#.q..#..#\n#########\n\nmessage Level 5 of 5 Best bets\n\n#############\n#######...###\n#######.#.###\n#....4p1..###\n#.#.#.#.#####\n#.2..9.5#...#\n#########.#.#\n###....qpr..#\n###.#.#.#.###\n###.t..o.w###\n#############\n\nmessage Congratulations Congratulasiont\n\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*O.#\n##.*P*.#\n#..O*O.#\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",[2,1,0,0,0,1,1,2,3,3],"background wall:0,0,0,0,0,0,0,0,background target1a:1,background:2,0,\n0,0,0,0,2,2,background crate1b:3,0,0,0,0,\n2,background player:4,2,2,0,0,0,0,background crate1a:5,2,background target1b:6,\n2,0,0,0,0,0,0,0,0,0,background crate2a:7,\n2,0,0,0,0,0,2,2,background target2b:8,0,0,\n0,0,2,2,2,2,0,0,0,0,background player target2a:9,\n2,background crate2b:10,2,0,0,0,0,0,0,0,0,\n",5,"1627894408429.9158"] + "Varifocal Nightmare", + ["title Varifocal Nightmare\nauthor increpare\nhomepage www.increpare.com\n\ncolor_palette c64\n( verbose_logging )\n\ntext_color blue\n========\nOBJECTS\n========\n\nBackground\ndarkred\n\n\nTarget1a\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTarget1b\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTarget1c\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\nCrate1a\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\nCrate1b\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\nCrate1c\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\ntarget2a\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\ntarget2b\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\ntarget2c\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\ncrate2a\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\ncrate2b\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\ncrate2c\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\nWall\ndarkblue black\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange #999999 purple\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\n\n\n=======\nLEGEND\n=======\ntarget1 = Target1a or Target1b or Target1c\ntarget2 = target2a or target2b or target2c\ncrate1 = Crate1a or Crate1b or Crate1c\ncrate2 = crate2a or crate2b or crate2c\n\ncrate = crate1 or crate2\ntarget = target1 or target2\n. = Background\n# = Wall\nP = Player\n\n1 = Crate1a\n2 = crate1b \n3 = crate1c\n4 = Target1a\n5 = Target1b\n6 = Target1c\n\n7 = Target1a and Crate1a\n8 = Target1b and crate1b \n9 = Target1c and Crate1c\n\n\nq = Crate2a\nw = crate2b \ne = crate2c\nr = Target2a\nt = Target2b\ny = Target2c\n\nu = Target2a and Crate2a\ni = Target2b and crate2b \no = Target2c and Crate2c\n\n=======\nSOUNDS\n=======\nsfx0 10654107 (crate push)\nstartlevel 39415905\nendlevel 15587500\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget1, target2\nPlayer, crate1, crate2, wall\n\n======\nRULES\n======\n\n\n[ > player | Crate1a | no wall no crate ] [ target2a | no wall no target ] -> [ | player | crate1a ] [ | target2a ] sfx0\n[ > player | crate1b | no wall no crate ] [ target2b | no wall no target ] -> [ | player | crate1b ] [ | target2b ] sfx0\n[ > player | crate1c | no wall no crate ] [ target2c | no wall no target ] -> [ | player | crate1c ] [ | target2c ] sfx0\n[ > player | crate2a | no wall no crate ] [ target1a | no wall no target ] -> [ | player | crate2a ] [ | target1a ] sfx0\n[ > player | crate2b | no wall no crate ] [ target1b | no wall no target ] -> [ | player | crate2b ] [ | target1b ] sfx0\n[ > player | crate2c | no wall no crate ] [ target1c | no wall no target ] -> [ | player | crate2c ] [ | target1c ] sfx0\n\n[ > player | no wall no crate ] -> [ | player ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 5 Exits exist\n\n###########\n#....#....#\n#.#.1#.#.r#\n#243.#tqy.#\n#....#....#\n#56.p#we.p#\n###########\n\nmessage Level 2 of 5 Thus shut\n###########\n#..###..###\n#r.###1.###\n#pt..#p2..#\n#q.w.#4.5.#\n#..###..###\n###########\n\n\nmessage Level 3 of 5 Fist fits\n###########\n#.4.##.q.##\n#.1.p#.r.p#\n##.2.##.t.#\n###.5###.w#\n####.####.#\n###########\n\nmessage Level 4 of 5 Pest pets\n#########\n###..####\n#..8....#\n#.#.p#.1#\n#.4..#..#\n#########\n###..####\n#..i....#\n#.#.p#.r#\n#.q..#..#\n#########\n\nmessage Level 5 of 5 Best bets\n\n#############\n#######...###\n#######.#.###\n#....4p1..###\n#.#.#.#.#####\n#.2..9.5#...#\n#########.#.#\n###....qpr..#\n###.#.#.#.###\n###.t..o.w###\n#############\n\nmessage Congratulations Congratulasiont\n\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*O.#\n##.*P*.#\n#..O*O.#\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", [2, 1, 0, 0, 0, 1, 1, 2, 3, 3], "background wall:0,0,0,0,0,0,0,0,background target1a:1,background:2,0,\n0,0,0,0,2,2,background crate1b:3,0,0,0,0,\n2,background player:4,2,2,0,0,0,0,background crate1a:5,2,background target1b:6,\n2,0,0,0,0,0,0,0,0,0,background crate2a:7,\n2,0,0,0,0,0,2,2,background target2b:8,0,0,\n0,0,2,2,2,2,0,0,0,0,background player target2a:9,\n2,background crate2b:10,2,0,0,0,0,0,0,0,0,\n", 5, "1627894408429.9158"] ], [ - "Gem Socketeer", - ["title Gem Socketeer \nauthor increpare\nhomepage www.increpare.com\n\n\n(many levels made with the assistance of marcos don's sokoban solver - https://marcosdon.github.io/PuzzleScriptWithSolver/editor.html )\n\n(thanks to ggn for feedback + testing!)\n\nbackground_color #04212a\ntext_color #d494de\n\nrun_rules_on_level_start\n( debug )\n(verbose_logging)\n\n========\nOBJECTS\n========\n\nBackground\n#2c7678 #26837d #226768\n00100\n01110\n11111\n01110\n00100\n\n\nbgtile_nw ;\n#26837d #226768 #2c7678\n00001\n00012\n00122\n01222\n12222\n\n\n\nbgtile_ne\n#226768 #26837d #2c7678\n01111\n20111\n22011\n22201\n22220\n\n\n\nbgtile_sw\n#226768 #2c7678 #26837d\n01111\n20111\n22011\n22201\n22220\n\n\n\nbgtile_se\n#2c7678 #226768 #26837d\n00001\n00012\n00122\n01222\n12222\n\n\n\ntarget_nw 1\n#ffe56f #ffd100 #d29500\n...00\n..112\n.112.\n112..\n12...\n\n\n\ntarget_ne 2\n#ffe56f #d29500 #ffd100\n00...\n120..\n.120.\n..120\n...12\n\n\n\ntarget_sw 3\n#ffd100 #d29500 #ffe56f\n01...\n02...\n102..\n.102.\n..102\n\n\ntarget_se 4\n#d29500 #ffd100 #ffe56f\n...01\n...01\n..210\n.210.\n210..\n\ntarget_ses {\n#d29500 #ffd100\n...01\n.....\n.....\n.....\n.....\n\ntarget_sws }\n#ffd100 #d29500\n01...\n.....\n.....\n.....\n.....\n\nplayer_nw 5\n#3c75ee #86c1ff #5d96ff #1447b6\n....0\n...01\n..020\n.0203\n03032\n\n\n\n\nplayer_ne 6\n#5d96ff #d6eaff #86c1ff\n0....\n10...\n010..\n2010.\n12020\n\n\n\n\nplayer_sw 7\n#1447b6 #002d8e #3c75ee\n01020\n.0102\n..010\n...01\n....0\n\n\n\n\n\nplayer_se 8\n#3c75ee #5d96ff #1447b6\n01010\n1010.\n010..\n20...\n0....\n\n\n\n\ncrate_nw q\n#f9d6ff #e29aee #eeb1f9 #ba4fca\n....0\n...01\n..010\n.0121\n01312\n\n\n\n\ncrate_ne w\n#f9d6ff #f6c1ff\n0....\n10...\n010..\n1010.\n01010\n\n\n\ncrate_sw e\n#ba4fca #ca66d9\n01010\n.0101\n..010\n...01\n....0\n\n\n\n\ncrate_se r\n#eeb1f9 #e29aee #f9d6ff #ca81d8 #ba4fca\n01231\n1031.\n431..\n31...\n1....\n\n\n\n\n\n\n\nwall_nw\n#8f6d56 #7b5b45 #5e422f\n....0\n...00\n..001\n.0012\n00121\n\n\nwall_ne\n#ab866d #7b5b45 #463326\n0....\n00...\n100..\n2100.\n12100\n\nwall_se\n#7b5b45 #8f6d56 #5e422f\n01022\n1022.\n022..\n22...\n2....\n\nwall_sw\n#463326 #7b5b45 #ab866d\n00121\n.0012\n..001\n...00\n....0\n\nwalljoin_downdiag\n#7b5b45\n0....\n.0...\n..0..\n...0.\n....0\n\nwalljoin_updiag\n#7b5b45\n....0\n...0.\n..0..\n.0...\n0....\n\n\n=======\nLEGEND\n=======\n\nplayer = player_nw or player_ne or player_sw or player_se\ncrate = crate_nw or crate_ne or crate_sw or crate_se\ntarget = target_nw or target_ne or target_sw or target_se\n\npusher_nw = player_nw or crate_nw\npusher_sw = player_sw or crate_sw\npusher_ne = player_ne or crate_ne\npusher_se = player_se or crate_se\n\nt = crate_nw and crate_se \ny = crate_ne and crate_sw\n\nu = crate_nw and player_se\ni = crate_ne and player_sw\no = crate_sw and player_ne\np = crate_se and player_nw\n\n! = wall_nw and player_se\n\" = wall_ne and player_sw\n£ = wall_sw and player_ne\n$ = wall_se and player_nw\n\n. = Background\n\na = wall_nw\ns = wall_ne\nd = wall_se \nf = wall_sw\n\ncollides_nw = wall_ne or wall_sw or crate_ne or crate_sw\ncollides_ne = wall_nw or wall_se or crate_nw or crate_se\ncollides_sw = wall_se or wall_nw or crate_se or crate_nw\ncollides_se = wall_sw or wall_ne or crate_sw or crate_ne\n\ng = target_nw and wall_se\nh = target_ne and wall_sw\nj = target_sw and wall_ne\nk = target_se and wall_nw\n\nl = wall_nw and wall_se and walljoin_updiag\nm = wall_ne and wall_sw and walljoin_downdiag\n\nz = crate_nw and target_nw\nx = crate_ne and target_ne\nc = crate_sw and target_sw\nb = crate_se and target_se\n\n\nn = crate_nw and wall_se\n, = crate_ne and wall_sw\n/ = crate_sw and wall_ne\n? = crate_se and wall_nw\n\n% = crate_nw and target_nw and player_se\n& = crate_ne and target_ne and player_sw\n* = crate_sw and target_sw and player_ne\n_ = crate_se and target_se and player_nw\n\n丁 = crate_nw and target_nw and player_se\n上 = crate_ne and target_ne and player_sw\n下 = crate_sw and target_sw and player_ne\n不 = crate_se and target_se and player_nw\n\n(丁上下不且世丙並\n中丸\n主乂乃之乎九也事二五亡交亦京亭人)\n\n=======\nSOUNDS\n=======\n\ncrate move 93772107\nendlevel 32556705\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbgtile_nw\nbgtile_ne\nbgtile_sw\nbgtile_se\n\nwall_se\nwall_sw\n\ncrate_sw\ncrate_se\nplayer_sw\nplayer_se\n\nwall_nw\nwall_ne\n\nwalljoin_downdiag\nwalljoin_updiag\n\ncrate_nw\ncrate_ne\nplayer_nw\nplayer_ne\n\n\ntarget_sw\ntarget_se\ntarget_sws\ntarget_ses\ntarget_nw\ntarget_ne\n\n======\nRULES\n======\n\n\n(drawing/spawning code. comment out later I guess)\nright [ player_nw | no player_ne ] -> [ player_nw | player_ne ]\nright [ crate_nw | no crate_ne ] -> [ crate_nw | crate_ne ]\nright [ target_nw | no target_ne ] -> [ target_nw | target_ne ]\nright [ wall_nw | no wall_ne ] -> [ wall_nw | wall_ne ]\n\ndown [ player_nw | no player_sw ] -> [ player_nw | player_sw ]\ndown [ crate_nw | no crate_sw ] -> [ crate_nw | crate_sw ]\ndown [ target_nw | no target_sw ] -> [ target_nw | target_sw ]\ndown [ wall_nw | no wall_sw ] -> [ wall_nw | wall_sw ]\n\n\nright [ player_sw | no player_se ] -> [ player_sw | player_se ]\nright [ crate_sw | no crate_se ] -> [ crate_sw | crate_se ]\nright [ target_sw | no target_se ] -> [ target_sw | target_se ]\nright [ wall_sw | no wall_se ] -> [ wall_sw | wall_se ]\n\ndown [ target_sw | no target_ses ] -> [ target_sw | target_ses ]\ndown [ target_se | no target_sws ] -> [ target_se | target_sws ]\n\n(wall mortar)\n\n[wall_se wall_nw ] -> [wall_se wall_nw walljoin_updiag ]\n[wall_ne wall_sw ] -> [wall_ne wall_sw walljoin_downdiag ]\n(end of spawning code)\n\n\nstartloop\n(side push)\n[ up pusher_nw stationary crate_se ] -> [ up pusher_nw up crate_se ]\n+ [ left pusher_nw stationary crate_se ] -> [ left pusher_nw left crate_se ]\n\n+ [ up pusher_ne stationary crate_sw ] -> [ up pusher_ne up crate_sw ]\n+ [ right pusher_ne stationary crate_sw ] -> [ right pusher_ne right crate_sw ]\n\n+ [ down pusher_sw stationary crate_ne ] -> [ down pusher_sw down crate_ne ]\n+ [ left pusher_sw stationary crate_ne ] -> [ left pusher_sw left crate_ne ]\n\n+ [ down pusher_se stationary crate_nw ] -> [ down pusher_se down crate_nw ]\n+ [ right pusher_se stationary crate_nw ] -> [ right pusher_se right crate_nw ]\n\n\n(direct centered push)\n+ up [ > pusher_nw | stationary crate_sw ] -> [ > pusher_nw | > crate_sw ]\n+ down [ > pusher_sw | stationary crate_nw ] -> [ > pusher_sw | > crate_nw ]\n+ right [ > pusher_ne | stationary crate_nw ] -> [ > pusher_ne | > crate_nw ]\n+ left [ > pusher_nw | stationary crate_ne ] -> [ > pusher_nw | > crate_ne ]\n\n\n(propagate motion through crate)\n+ right [ right crate_nw | stationary crate_ne ] -> [ right crate_nw | right crate_ne ]\n+ right [ crate_nw | right crate_ne ] -> [ right crate_nw | right crate_ne ]\n+ right [ right crate_sw | stationary crate_se ] -> [ right crate_sw | right crate_se ]\n+ right [ stationary crate_sw | right crate_se ] -> [ right crate_sw | right crate_se ]\n+ down [ stationary crate_ne | right crate_se ] -> [ right crate_ne | right crate_se ]\n+ down [ right crate_ne | stationary crate_se ] -> [ right crate_ne | right crate_se ]\n\n+ right [ left crate_nw | stationary crate_ne ] -> [ left crate_nw | left crate_ne ]\n+ right [ crate_nw | left crate_ne ] -> [ left crate_nw | left crate_ne ]\n+ right [ left crate_sw | stationary crate_se ] -> [ left crate_sw | left crate_se ]\n+ right [ stationary crate_sw | left crate_se ] -> [ left crate_sw | left crate_se ]\n+ down [ stationary crate_ne | left crate_se ] -> [ left crate_ne | left crate_se ]\n+ down [ left crate_ne | stationary crate_se ] -> [ left crate_ne | left crate_se ]\n\n+ right [ up crate_nw | stationary crate_ne ] -> [ up crate_nw | up crate_ne ]\n+ right [ crate_nw | up crate_ne ] -> [ up crate_nw | up crate_ne ]\n+ right [ up crate_sw | stationary crate_se ] -> [ up crate_sw | up crate_se ]\n+ right [ stationary crate_sw | up crate_se ] -> [ up crate_sw | up crate_se ]\n+ down [ stationary crate_ne | up crate_se ] -> [ up crate_ne | up crate_se ]\n+ down [ up crate_ne | stationary crate_se ] -> [ up crate_ne | up crate_se ]\n\n+ right [ down crate_nw | stationary crate_ne ] -> [ down crate_nw | down crate_ne ]\n+ right [ crate_nw | down crate_ne ] -> [ down crate_nw | down crate_ne ]\n+ right [ down crate_sw | stationary crate_se ] -> [ down crate_sw | down crate_se ]\n+ right [ stationary crate_sw | down crate_se ] -> [ down crate_sw | down crate_se ]\n+ down [ stationary crate_ne | down crate_se ] -> [ down crate_ne | down crate_se ]\n+ down [ down crate_ne | stationary crate_se ] -> [ down crate_ne | down crate_se ]\n\nendloop\n\n\n(if unresolved collisions, can remove all things because it's good)\nlate [ crate_nw collides_nw ] -> cancel\nlate [ crate_ne collides_ne ] -> cancel\nlate [ crate_sw collides_sw ] -> cancel\nlate [ crate_se collides_se] -> cancel\nlate [ player_nw collides_nw ] -> cancel\nlate [ player_ne collides_ne ] -> cancel\nlate [ player_sw collides_sw ] -> cancel\nlate [ player_se collides_se] -> cancel\n\ndown [ bgtile_nw | no bgtile_sw ] -> [ bgtile_nw | bgtile_sw ]\n+ down [ bgtile_sw | no bgtile_nw ] -> [ bgtile_sw | bgtile_nw ]\n\nright [ bgtile_nw | no bgtile_ne ] -> [ bgtile_nw | bgtile_ne ]\n+ right [ bgtile_ne | no bgtile_nw ] -> [ bgtile_ne | bgtile_nw ]\n\nright [ bgtile_sw | no bgtile_se ] -> [ bgtile_sw | bgtile_se ]\n+ right [ bgtile_se | no bgtile_sw ] -> [ bgtile_se | bgtile_sw ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\nAll Crate on Target\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 17\n;...................\n.........a..........\n........asas........\n.......amghls.......\n......amg21hls......\n.....amd3434fls.....\n....amd.{}{}.fls....\n...amd...as...fls...\n..amd...q,nw...fls..\n..fls...etyr...amd..\n...fls...er...amd...\n....fls..56..amd....\n.....fls.78.amd.....\n......fls..amd......\n.......flsamd.......\n........flmd........\n.........fd.........\n....................\n\n(Easyish - possible early level?)\n\nmessage Level 2 of 17\n;.....as......\n.....amls.....\n....amdfls....\n...amd..fls...\n..amd..qwfls..\n.amd.12er.fls.\namd..3412..fls\nfls..q}34..amd\n.fls.er{}.amd.\n..fls.56.amd..\n...fls78amd...\n....flsamd....\n.....flmd.....\n......fd......\n\n\nmessage Level 3 of 17\n(similar to above? no puzzle as such)\n;.......as.........\n.......amls........\n......amdfls.......\n.....amd..fls......\n....amd....fls.....\n...amd......fls....\n..amd...5....fls...\n.amd...aszx...fls..\n.fls...fnytx...fls.\n..fls...e1cb...amd.\n...fls...34}..amd..\n....fls..{}..amd...\n.....fls....amd....\n......fls..amd.....\n.......flsamd......\n........flmd.......\n.........fd........\n\nmessage Level 4 of 17\n\n;.......aas...\n.......amdls..\n......amd.fls.\n.....amd...fls\n....amd.qw..as\n...amd.12r.amd\n..amd.534.amd.\n.amd.128}amd..\namd.q34.amd...\nas..e{}amd....\nfls...amd.....\n.fls.amd......\n..flamd.......\n...fdd........\n\n\n\nmessage Level 5 of 17\n(easy but ok? level 2?)\n;.....as.......\n.....amls......\n.....fdfls.....\n.asasas.fls....\n.fdfdfd..fls...\n.as12..qw.fls..\n.fd312qyr56fls.\n.as124etw78amd.\n.fd34}.er.amd..\n.asa}as..amd...\n.fdfafd.amd....\n.....asamd.....\n.....flmd......\n......fd.......\n\n\nmessage Level 6 of 17\n\n(super trivial)\n;...aas.....\n...amdls....\n..amd.fls...\n.amd.qwfls..\namd..er.fls.\nas.125612fls\nfls347834.as\n.fl{}qw{}amd\n..flser.amd.\n...fls.amd..\n....flamd...\n.....fdd....\n\nmessage Level 7 of 17\n(nice level! level 2?)\n;.....as.......\n.....amls......\n....amdfls.....\n...amd..fls....\n..amd....fls...\n.amd..56..fls..\namd..a\"z...fls.\nfls..fn.z...fls\n.fls..e1....amd\n..fls..3...amd.\n...fls.{}.amd..\n....fls..amd...\n.....flsamd....\n......flmd.....\n.......fd......\n\n\n\n\nmessage Level 8 of 17\n(I like how this looks, it's otherwise a simple storeroom puzzle)\n(a bit tricky. push forward maybe)\n;.....as........as......\n.....amlaaaaaaaamls.....\n....amdflmddddlmdfls....\n...amd..fls..amd..fls...\n..amd....fd..fd....fls..\n.amd..qw.125612.qw..fls.\n.fls..er.347834.er..amd.\n..fls....a}..a}....amd..\n...fls..amd..fls..amd...\n....flsaalaaaaalsamd....\n.....flmddddddddlmd.....\n......fd........fd......\n\n\nmessage Level 9 of 17\n(meh but not actually the worst)\n;.....as............\n.....amls...........\n....amdfls..........\n...amd56fls.........\n..amd128.fls........\n.amd124..amd........\naas.34qwamd.........\nfdls{qy?md..........\n..flserfls..........\n...fls..fls..as.....\n....fls..flsamls....\n.....fls..flmdfls...\n......fls..fd..fls..\n......amd.......fls.\n.....amd.....as..fls\n....amd..as..fd..amd\n....fls..fd.....amd.\n.....fls.......amd..\n......fls..aasamd...\n.......flsamdlmd....\n........flmd.fd.....\n.........fd.........\n\nmessage Level 10 of 17\n\n(fine? not too hard? just have to work through it. not trial and errory )\n;.......as.......\n.......amls......\n......amdfls.....\n.....amd..fls....\n....amd.12.fls...\n...amd.q3qw.fls..\n..amd.12po12.fls.\n..fls.3qiq34.amd.\n...fls{}12{}amd..\n...amd..34.amd...\n..amd...{}amd....\n.af......amd.....\n..a.....amd......\n...a...amd.......\n....a.amd........\n.....afd.........\n.................\n\nmessage Level 11 of 17\n(fine?)\n;..............aas....\n..............amdls...\n.............amd.fls..\n............amd...fls.\n...........amd....amd.\n.......as.amd....amd..\n......amlamd..12amd...\n.....amdfdd..1.kmd....\n....amd.....12kmd.....\n...amd...qwajkmd......\n..amd...qyrflmd.......\n.amd...qyr..fls.......\n.fls...er...amd.......\n..fls..56..amd........\n...fls.78.amd.........\n....fls..amd..........\n.....flsamd...........\n......flmd............\n.......fd.............\n\n\n\nmessage Level 12 of 17\n(more space management than puzzle solving)\n;....a..............\n....a.a.............\n...a...a............\n..a.....a...........\n.a.......as.........\na.........ls........\n.a........fls.......\n..a......12fls......\n...a....q3qwfls.....\n....a..121212fls....\n....fls3q3q34.fls...\n.....fl{}12q}..fls..\n......fls34er...fls.\n.......fl{}..56..fls\n........fls..78..amd\n.........fls....amd.\n..........fls..amd..\n...........flsamd...\n............flmd....\n.............fd.....\n....................\n\nmessage Level 13 of 17\n(decent?)\n;...aas......\n...amdls.....\n..amd.fls....\n.amg2..als...\namd34..flls..\nas.56qw.fdls.\nfls78etw..fls\n.flas.er...as\n..flls..12amd\n...fls..3kmd.\n....fls.amd..\n.....flamd...\n......fdd....\n\n\n\nmessage Level 14 of 17\n(yeah fine swap-chambers = all good. intermediate?)\n;....aaaaas........\n....amddddls.......\n....as....fls......\n....as.....asaaas..\n....fls....almddls.\n...aaals...amd..fls\n..amdddg2..fd....as\n.amd..q34..qw...amd\namd...e{}.12r..amd.\nas....as..3kaaamd..\nfls..ams..{}lmdd...\n.flaamls.56.fls....\n..fdddas.78..as....\n......fls....as....\n.......flaaaaas....\n........fdddddd....\n\nmessage Level 15 of 17\n(kinda ok#? middle-intermediate)\n;....aas....\n....amdls...\n...amd.fls..\n..amd...fls.\n.amd12qw.fls\namd.312r..as\nfls.q35..amd\n.flse{78amd.\n..fls..amd..\n...flsamd...\n....flmd....\n.....fd.....\n\n\nmessage Level 16 of 17\n(hard but ok can be solved with brain)\n;...aas.....\n...amdls....\n..amd.fls...\n.amd...fls..\namd.q.1.fls.\nas...q...fls\nfls.1.5..amd\n.fls....amd.\n..fls..amd..\n...flsamd...\n....flmd....\n.....fd.....\n\n\n\nmessage Level 17 of 17\n(message also hard but i can solve these ok now?)\n;...aas.....\n...amdls....\n..amd.fls...\n.amd...fls..\namd.q.1.fls.\nas...5...fls\nfls.q.1..amd\n.fls....amd.\n..fls..amd..\n...flsamd...\n....flmd....\n.....fd.....\n\n\nmessage congrats for being good at socketing gems.\n\n\n(\nasasasas......\nfdfdfdfd......\nas....asasasas\nfd....fdfdfdfd\nas5612qw....as\nfd7834er....fd\nas..{}asasasas\nfd....fdfdfdfd\nasasasas......\nfdfdfdfd......\n\n\n\n......aaaaas.......\n.....amdfddls......\n....amd....fls.....\n...amd......fls....\n..amls..qw..amls...\n.amdfls.er.amdfls..\namd..fls12amd..fls.\nas....fd34fd....as.\nas.qw.125612qw..as.\nas.er.347834er..as.\nas....a.12a}....as.\nfls..amd34fls..amd.\n.flsamd.q}.flsamd..\n..flmd..er..flmd...\n...fls......amd....\n....fls....amd.....\n.....flaaaamd......\n......fddddd.......\n...................\n\n\n\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n\n\n\n.....................\n......aas............\n.....amdl.s..........\n....amd.f.ls.........\n....as....fls........\n....as.....asaaas....\n....fls....almddls...\n...aaals...amd..fls..\n..amdddg2..fd....as..\n.amd..q35.6qw...amd..\namd...e{7.12r..amd...\nas....as..3kaaamd....\nfls..aas..{}lmdd.....\n.flaamls....fls......\n..fdddas.....as......\n......fls....as......\n.......fl.s.amd......\n........f.lamd.......\n..........fdd........\n.....................\n\n....................\n............aaas....\n...........amddls...\n...aaaas..amd..fls..\n..amdddg2.fd....as..\n.amd..q346qw...amd..\namd...e{712r..amd...\nas....as.3kaaamd....\nfls..amd.{}dddd.....\n.flaamd.............\n..fddd..............\n....................\n\n....................\n....................\n....................\n....................\n.........as.........\n........amls..aaas..\n.......amdflsamddls.\n...aaaamd..flmd..fls\n..amdddg2...fd....as\n.amd..q3456.qw...amd\namd...e{}7812r..amd.\nas....as...3kaaamd..\nfls..amls..{mdddd...\n.flaamdflsamd.......\n..fddd..flmd........\n.........fd.........\n....................\n....................\n....................\n....................\n\n.......aas..........\n......amdls.........\n.....amd.fls........\n.....as...fls.......\n.....as....as.......\n.....fls...as.aaas..\n......flsqwasamddls.\n...aaaamde1hlmd..fls\n..amdddg2.34fd....as\n.amd..q3456}qw...amd\namd...e{}7812r..amd.\nas....as12.3kaaamd..\nfls..amljqwamdddd...\n.flaamda{}rfls......\n..fddd.as...fls.....\n.......as....as.....\n.......fls...as.....\n........fls.amd.....\n.........flamd......\n..........fdd.......\n\n.......aas..........\n......amdls.........\n.....amd.fls........\n.....as...fls.......\n.....as....as.......\n.....fls...as.aaas..\n......fls56asamddls.\n...aaaamd78flmd..fls\n..amdddd....fd....as\n.amd.....as.qw...amd\namd......fd.er..amd.\nas....as....aaaamd..\nfls..amls..amdddd...\n.flaamdas..fls......\n..fddd.as...fls.....\n.......as....as.....\n.......fls...as.....\n........fls.amd.....\n.........flamd......\n..........fdd.......\n\n(impossible)\n....aas......\n...amdls.....\n..amd.fls....\n.amg2..fls...\namd34..amls..\nas56}qwfdfls.\nfl\"8.etw..fls\n.flsaser...as\n..flmd..12amd\n...fls..3kmd.\n....fls.amd..\n.....flamd...\n......fdd....\n\n\n(trivial)\n....aas......\n...amdls.....\n..amd.fls....\n.amg2..fls...\namd34...fls..\nas.{}qw..fls.\nfls..etw..fls\n.fls56er...as\n..fl\"8..12amd\n...fls..3kmd.\n....fls.amd..\n.....flamd...\n......fdd....\n\n\n(trivial)\n....aas......\n...amdls.....\n..amd.fls....\n.amd.1.fls...\namd.....fls..\nas...5.q.fls.\nfls.q.....as.\n.fl..1...amd.\n..fls...amd..\n...fls.amd...\n....flamd....\n.....fdd.....\n.............\n\n....aas......\n...a..ls.....\n..a...fls....\n.a.....fls...\na...12qwfls..\na...312r.fls.\nfls.q356.a...\n.flse{78a....\n..fls..a.....\n...flsa......\n....fl.......\n.....f.......\n.............\n\n.....as......\n....amls.....\n...amdfls....\n..amd..fls...\n.amd12qwfls..\namd.312r.fls.\nfls.q356..as.\n.flse{78.amd.\n..fls...amd..\n...fls.amd...\n....flamd....\n.....fdd.....\n.............\n\n\n......as......\n.....amls.....\n....amdfls....\n...amd..fls...\n..amd....fls..\n.amd.12qw.fls.\namd..312r..fls\nfls..{34...amd\n.fls.e{}56amd.\n..fls...7!md..\n...fls..amd...\n....flsamd....\n.....flmd.....\n......fd......\n\n\n\n..............\n.....aas......\n....amdls.....\n...amd.fls....\n..amd...fls...\n.amd...qwfls..\n.as...a/r.fls.\n.fls.5£g2.amd.\n..fls7834amd..\n...fls.{amd...\n....flsamd....\n.....flmd.....\n......fd......\n..............\n\n..............\n.....aas......\n....amdls.....\n...amd.fls....\n..amd...fls...\n.amd...qwfls..\n.as...a/r.fas.\n.fls.5£g2..ad.\n..fls7834.a...\n...fls.{.a....\n....fls.a.....\n.....faa......\n.......d......\n..............\n\n..............\n.....aas......\n....amdls.....\n...amd.fls....\n..amd...fls...\n.amd...qwfls..\na.....a/r.fls.\n.a...5£g2..as.\n..a..7834.amd.\n...a...{}amd..\n....a...amd...\n.....a.amd....\n......a.d.....\n..............\n\n.......as............\n......amls...........\n.....am$£ls..........\n....amd78fls.........\n...amg2...as.........\n..amg24qwamd.........\n..flj4qy?md..........\n...fl}erfls..........\n....fls..fls..as.....\n.....fls..flsamls....\n......fls..flmdfls...\n.......fls..fd..fls..\n.......amd.......fls.\n......amd.....as..fls\n.....amd..as..fd..amd\n.....fls..fd.....amd.\n......fls.......amd..\n.......fls..aasamd...\n........flsamdlls....\n.........flmd.fdd....\n..........fd.........\n.....................\n\n\n\n.......as............\n......amls...........\n.....am$£ls..........\n....amg28fls.........\n...amg24..as.........\n..amd34qwamd.........\n..fls{qy?md..........\n...flserfls..........\n....fls..fls..as.....\n.....fls..flsamls....\n......fls..flmdfls...\n.......fls..fd..fls..\n........fls......fls.\n........amd...as..fls\n.......amd....fd..amd\n......amd..as....amd.\n......fls..fd...amd..\n.......fls....aamd...\n........fls..amdd....\n.........flsamd......\n..........flmd.......\n...........fd........\n\n\n....................\n.......1............\n......q.q...........\n.....1.1.1..........\n......q.q.q.........\n.......1.1..........\n........q...........\n...........5........\n....................\n....................\n\n\n(trivial)\n..........aas.....\n.....as..amdls....\n....amlsamd.fls...\n...amdflmd...fls..\n..amd..fd.qw..fls.\n.amd......etw56fls\n.fls......a/r78amd\n..fls.....fls.amd.\n..amd......flamd..\n.amd.....12.amd...\namd..as..34amd....\nfls..fg2.{amd.....\n.fls..34.amd......\n..fls.{}amd.......\n...fls.amd........\n....flamd.........\n.....fls..........\n......fd..........\n\n(dont' like)\n..........................\n.asasasasasas.............\n.fdfdfdfdfdfd.............\n.as........asasasasas.....\n.fd........fdfdfdfdfd.....\n.as..qwqw........56as.....\n.fd..erer........78fd.....\n.as..qw..as121212..as.....\n.fd..er..fd343434..fd.....\n.as......asa}a}a}asas.....\n.fd......fdfdfdfdfdfd.....\n.asasasasas...............\n.fdfdfdfdfd...............\n..........................\n\n\n\n..............aas...\n.............amdls..\n............amd.fls.\n...........amd...fls\n..........amd....amd\n......as.amd....amd.\n.....amlamd..12amd..\n....amdfdd..1jamd...\n...amd.....12amd....\n..amd...qwajamd.....\n.amd...qyrflmd......\namd...qyr..fls......\nfls...er...amd......\n.fls..56..amd.......\n..fls.78.amd........\n...fls..amd.........\n....flsamd..........\n.....flmd...........\n......fd............\n\n\n..............as....\n.............amls...\n............amdfls..\n...........amd..fls.\n..........amd....als\n......as.amd....amdd\n.....amlamd..12amd..\n....amdfdd..12kmd...\n...amd.....12kmd....\n..amd...qwajkmd.....\n.amd...qyrflmd......\namd...qyr..fls......\nfls...er...amd......\n.fls..56..amd.......\n..fls.78.amd........\n...fls..amd.........\n....flsamd..........\n.....flmd...........\n......fd............\n\n(actually fun to bop about in, but not hard)\n..................\n.....as...........\n....amls..........\n...amdfls.........\n..amd..fls........\n.amd....fls.......\n.fls..qw.fls......\n..flsqyr..fls.....\n..amder56..fls....\n.amd...7812.as....\namd..as..34amd....\nfls..fg2.{amd.....\n.fls..34.amd......\n..fls.{}amd.......\n...fls.amd........\n....flamd.........\n.....fdd..........\n..................\n\n(trivial)\n...........as.....\n....as....amls....\n...amls..amdfls...\n..amghlsamd..fls..\n.amd34flmd....fls.\n.fls{}.fd.....amd.\n..fls......qwamd..\n...fls.....e?md...\n....flszx..amd....\n.....fljb..fls....\n......fl}56.fls...\n.......fl\"8.amd...\n........flsamd....\n.........flmd.....\n..........fd......\n..................\n..................\n..................\n..................\n\n(early-intermediate. ugly)\n..................\n.....as...........\n....aas...........\n...amdls..........\n..amd.fls.........\n.amd...fls........\n.fls..qwfls.......\n..flsqyr.fls......\n..amder56.fls.....\n.amd...7812fls....\namd..as..34amd....\nfls..fg2.{amd.....\n.fls..34.amd......\n..fls.{}amd.......\n...fls.amd........\n....flamd.........\n.....fdd..........\n..................\n\n\n........as...\n....as.amls..\n...amlamdfls.\n..amghdd..fls\n.amd34.....as\n.as.{}56qwamd\n.flszx78e?md.\n..fljb...fls.\n...fl}...amd.\n....fls.amd..\n.....flamd...\n......fdd....\n.............\n\n.....asasasasas...\n.....fdfdfdfdfd...\n.asasas......as...\n.fdfdfd......fd...\n.as12..qw....as...\n.fd312qyr.56.fd...\n.as124etw.78.as...\n.fd34}.er....fd...\n.asa}as......as...\n.fdfdfd......fd...\n.....asasasasas...\n.....fdfdfdfdfd...\n\n......as.......\n.....amls......\n....amdfls.....\n...amd..fls....\n..amd....fls...\n.amd..56..fls..\namd..a\"ux..fls.\nfls..fnytx..fls\n.fls..e1cb..amd\n..fls..34}.amd.\n...fls.{}.amd..\n....fls..amd...\n.....flsamd....\n......flmd.....\n.......fd......\n\n......as.......\n.....amls......\n....amdfls.....\n...amd..fls....\n..amd....fls...\n.amd..56..fls..\namd..a\"1x..fls.\nfls..fny1x..fls\n.fls..e1cb..amd\n..fls..34}.amd.\n...fls.{}.amd..\n....fls..amd...\n.....flsamd....\n......flmd.....\n.......fd......\n\n\n....asas....\n...amdfls...\n..amg21hls..\n.amd3434fls.\namd.{}{}.fls\nfd...as...fd\nas..q,nw..as\nfls.erer.amd\n.fls....amd.\n..fls56amd..\n...fl\"!md...\n....fdfd....\n\n(unsolvable)\n....asas....\n...amdfls...\n..amg21hls..\n.amd3kj4fls.\namd.{}{}.fls\nfd...as...fd\nas..q,nw..as\nfls.erer.amd\n.fls....amd.\n..fls56amd..\n...fl\"!md...\n....fdfd....\n\n....asas....\n...amdfls...\n..amd..fls..\n.amd....fls.\namd...56.fls\nfd....78..fd\nas........as\nfls......amd\n.fls....amd.\n..fls..amd..\n...flsamd...\n....fdfd....\n\n\n(trivil)\n....asas....\n...asdfas...\n..asd..fas..\n.asd....fas.\nasd...56.fas\nfd.qw.78..fd\nas12tw....as\nflj12tw..amd\n.faj12r.amd.\n..faj4.amd..\n...fa}amd...\n....fdfd....\n\n\n\n(impossible)\n...as..as...\n..amlsamls..\n.amghlmdfls.\namd34fd..fls\nfls{}56qwamd\n.flszi8e?md.\n..fljb..fls.\n...fl}..amd.\n....flsamd..\n.....flmd...\n......fd....\n\n.....as......\n....amls.....\n...amdfls....\n..amd..fls...\n.amd.56.fls..\namd.a7zx.fls.\nfls.fnytx.fls\n.fls.e1cb.amd\n..fls.34}amd.\n...fls{}amd..\n....flsamd...\n.....flmd....\n......fd.....\n\n\n........as......\n.......amls.....\n....asamdfls....\n...amlmnw.fls...\n..amdfdetw.fls..\n.amd...a/p6amd..\n.fls...fl7amd...\n.amd...1hlmd....\namd.as.3kmd.....\nfls.fg2amd......\n.fls.3kmd.......\n..flsamd........\n...flmd.........\n....fd..........\n\n.......a........\n......a.a.......\n.....a...a......\n....a...5.a.....\n...a...q...a....\n..a...z.....a...\n.a...z.....a....\na...1...a.a.....\n.a.....a.a......\n..a...a.........\n...a.a..........\n....a...........\n................\n................\n................\n\n......a.......\n.....a.a......\n....a...a.....\n...a.....a....\n..a...1...a...\n.a...q.q...a..\na...1.5.1...a.\n.a...q.q...a..\n..a...1...a...\n...a.....a....\n..a.....a.....\n...a...a......\n....a.a.......\n.....a........\n..............\n\n...........a....\n..........a.a...\n.........a...a..\n........a...5.a.\n.......a...a...a\n........a.....a.\n.....a.a.....a..\n....a.a...1.a...\n...a.....1.a....\n..a.....1.a.....\n.a...q.a.a......\na...q...a.......\n.a...q...a......\n..a.....a.......\n...a...a........\n....a.a.........\n.....a..........\n................\n................\n\n................\n......a.........\n.....a.a........\n....a...a.......\n...a.....a......\n..a...q...a.....\n.a...1.1...a....\na...q.q.q...a...\n.a...1.1.1...a..\n..a...q.q...a...\n...a...1.5.a....\n....a.....a.....\n.....a...a......\n......a.a.......\n.......a........\n................\n................\n................\n\n.....a...........\n....a.a..........\n...a.5.a.........\n..a.1...a........\n.a.1.q.a.........\na...q.a..........\n.a.....a.........\n..a.a...a........\n...a.a...a.a.....\n......a...a.a....\n.......a.....a...\n......a.......a..\n.....a.....a...a.\n....a...a.....a..\n.....a.......a...\n......a...a.a....\n.......a.a.a.....\n........a........\n.................\n\n....a.a......\n...a.a.a.....\n..a.....a....\n.a...q...a...\na.1.q.....a..\n.a.5.....1.a.\n..a.a.a.a.a..\n...a.a.a.a...\n.............\n\n.......a......\n......a.a.....\n.....a...a....\n....a.....a...\n...a.1.a...a..\n....a.1.a...a.\n.....a.1.q.a..\n......a...a...\n.....a.q...a..\n....a...a...a.\n...a.q.....a..\n..a...a...a...\n.a.5.....a....\na...a...a.....\n.a.....a......\n..a...a.......\n...a.a........\n....a.........\n..............\n\n\n\n...as..as...\n..amlsamls..\n.amghlmdfls.\namd34fd..fls\nfls{}56qwamd\n.flszi8ermd.\n..fljb..fls.\n...fl}..amd.\n....flsamd..\n.....flmd...\n......fd....\n\n...as..as...\n..amlsamls..\n.amdflmdfls.\namd..fd..fls\nfls......amd\n.fls....amd.\n..fls...fls.\n...fls..amd.\n....flsamd..\n.....flmd...\n......fd....\n\n\n;...asas....\n...amdfls...\n..amd..fls..\n.amd....fls.\namd...56.fls\nfd.qw.78..fd\nas12tw....as\nflj12tw..amd\n.flj12r.amd.\n..flj4.amd..\n...fl}amd...\n....fdfd....\n\n...aas...\n..amdls..\n.amd.fls.\namq..5fls\nfd.q...as\nas1...amd\nfls1.amd.\n.flsamd..\n..fdfd...\n\n..asas..\n.amdfls.\namd..fls\nfd....fd\nas....as\nfls..amd\n.flsamd.\n..fdfd..\n\n....asas....\n...asdfas...\n..asd..fas..\n.asd....fas.\nasd......fas\nfd........fd\nas........as\nfas......asd\n.fas....asd.\n..fas..asd..\n...fasasd...\n....fdfd....\n\n...aa....\n..as.a...\n.amd..a..\namd....a.\nfd.....a.\nas....as.\nfls..amd.\n.flsamd..\n..fdfd...\n\n\nasasasas\nfdfdfdfd\nas....as\nfd....fd\nas....as\nfd....fd\nas....as\nfd....fd\nasasasas\nfdfdfdfd\n\n........a.........\n.......a.a........\n......a...a.......\n.....a.....a......\n....a.......a.....\n...a.........a....\n..a...........a...\n.a.............a..\na...............a.\n.a.............a..\n..a...........a...\n...a.........a....\n....a.......a.....\n.....a.....a......\n......a...a.......\n.......a.a........\n........a.........\n..................\n\n\n........\n..qw....\n.qytwqw.\n.etytyr.\n.12tyr..\n.34ep6..\n.{}.78..\n........\n........\n........\n\n\n\n........\n........\n........\n........\n.12qw...\n.34e5...\n.{}.....\n........\n........\n........\n\n........\n........\n........\n........\n.12qw...\n.34e5...\n.{}.....\n........\n........\n........\n)\n\n",[0,2,3,0,3,2,2,3,3,2,1,1,1,2,3,1,1,3,2,2,1,2,3,0,1,1,0,2,3,0,0,3,0,0,0,1,1,0,1,1,1,2,2,2,3,2,"undo",1,2,3,3,2,3,0],"background bgtile_nw:0,background bgtile_sw:1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,background bgtile_ne:2,background bgtile_se:3,\n2,3,2,3,2,background bgtile_se wall_nw:4,background bgtile_ne wall_sw:5,3,2,3,2,3,2,3,2,0,1,0,1,\n0,1,background bgtile_nw wall_nw:6,background bgtile_sw wall_ne wall_sw walljoin_downdiag:7,background bgtile_nw wall_nw wall_se walljoin_updiag:8,background bgtile_sw wall_sw:9,0,1,0,1,0,1,0,2,3,2,3,2,4,\nbackground bgtile_ne wall_ne wall_sw walljoin_downdiag:10,background bgtile_se wall_se:11,background bgtile_ne wall_ne:12,background bgtile_se wall_nw wall_se walljoin_updiag:13,5,3,2,3,2,3,2,0,1,0,1,6,7,background bgtile_nw wall_se:14,1,\n0,background bgtile_sw wall_ne:15,8,9,0,1,0,1,0,2,3,2,4,10,11,2,3,2,3,\n12,13,5,3,2,3,2,0,1,6,7,14,1,0,1,0,1,0,15,\n8,9,0,1,0,2,4,10,11,2,3,2,4,5,3,2,3,12,13,\n5,3,2,6,7,14,1,0,1,0,15,14,background bgtile_sw player_nw:16,background bgtile_nw player_sw:17,1,0,15,8,9,\n0,12,13,5,3,2,3,2,background bgtile_se target_nw:18,background bgtile_ne crate_nw target_sw:19,background bgtile_se crate_sw player_ne target_nw target_ses:20,background bgtile_ne player_se target_sw:21,background bgtile_se target_ses:22,2,3,12,13,5,0,\n15,8,9,0,1,0,background bgtile_sw crate_nw target_ne:23,background bgtile_nw crate_ne crate_sw target_se:24,background bgtile_sw crate_se target_ne target_sw target_sws:25,background bgtile_nw target_se target_ses:26,background bgtile_sw target_sws:27,0,1,6,7,14,2,3,12,\n13,5,3,2,background bgtile_se crate_ne:28,background bgtile_ne crate_se target_ne:29,background bgtile_se target_se:30,background bgtile_ne target_sws:31,3,2,4,10,11,2,0,1,0,15,8,\n9,0,1,0,1,background bgtile_nw crate_nw:32,background bgtile_sw crate_sw:33,6,7,14,1,0,2,3,2,3,12,13,5,\n3,2,3,background bgtile_ne crate_ne:34,background bgtile_se crate_se wall_nw:35,10,11,2,3,2,0,1,0,1,0,15,8,9,0,\n1,6,7,14,1,0,1,0,2,3,2,3,2,3,12,13,5,4,10,\n11,2,3,2,3,2,0,1,0,1,0,1,0,15,8,7,14,1,0,\n1,0,1,0,2,3,2,3,2,3,2,3,12,11,2,3,2,3,2,\n3,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,\n",5,"1627894805419.4346"] + "Gem Socketeer", + ["title Gem Socketeer \nauthor increpare\nhomepage www.increpare.com\n\n\n(many levels made with the assistance of marcos don's sokoban solver - https://marcosdon.github.io/PuzzleScriptWithSolver/editor.html )\n\n(thanks to ggn for feedback + testing!)\n\nbackground_color #04212a\ntext_color #d494de\n\nrun_rules_on_level_start\n( debug )\n(verbose_logging)\n\n========\nOBJECTS\n========\n\nBackground\n#2c7678 #26837d #226768\n00100\n01110\n11111\n01110\n00100\n\n\nbgtile_nw ;\n#26837d #226768 #2c7678\n00001\n00012\n00122\n01222\n12222\n\n\n\nbgtile_ne\n#226768 #26837d #2c7678\n01111\n20111\n22011\n22201\n22220\n\n\n\nbgtile_sw\n#226768 #2c7678 #26837d\n01111\n20111\n22011\n22201\n22220\n\n\n\nbgtile_se\n#2c7678 #226768 #26837d\n00001\n00012\n00122\n01222\n12222\n\n\n\ntarget_nw 1\n#ffe56f #ffd100 #d29500\n...00\n..112\n.112.\n112..\n12...\n\n\n\ntarget_ne 2\n#ffe56f #d29500 #ffd100\n00...\n120..\n.120.\n..120\n...12\n\n\n\ntarget_sw 3\n#ffd100 #d29500 #ffe56f\n01...\n02...\n102..\n.102.\n..102\n\n\ntarget_se 4\n#d29500 #ffd100 #ffe56f\n...01\n...01\n..210\n.210.\n210..\n\ntarget_ses {\n#d29500 #ffd100\n...01\n.....\n.....\n.....\n.....\n\ntarget_sws }\n#ffd100 #d29500\n01...\n.....\n.....\n.....\n.....\n\nplayer_nw 5\n#3c75ee #86c1ff #5d96ff #1447b6\n....0\n...01\n..020\n.0203\n03032\n\n\n\n\nplayer_ne 6\n#5d96ff #d6eaff #86c1ff\n0....\n10...\n010..\n2010.\n12020\n\n\n\n\nplayer_sw 7\n#1447b6 #002d8e #3c75ee\n01020\n.0102\n..010\n...01\n....0\n\n\n\n\n\nplayer_se 8\n#3c75ee #5d96ff #1447b6\n01010\n1010.\n010..\n20...\n0....\n\n\n\n\ncrate_nw q\n#f9d6ff #e29aee #eeb1f9 #ba4fca\n....0\n...01\n..010\n.0121\n01312\n\n\n\n\ncrate_ne w\n#f9d6ff #f6c1ff\n0....\n10...\n010..\n1010.\n01010\n\n\n\ncrate_sw e\n#ba4fca #ca66d9\n01010\n.0101\n..010\n...01\n....0\n\n\n\n\ncrate_se r\n#eeb1f9 #e29aee #f9d6ff #ca81d8 #ba4fca\n01231\n1031.\n431..\n31...\n1....\n\n\n\n\n\n\n\nwall_nw\n#8f6d56 #7b5b45 #5e422f\n....0\n...00\n..001\n.0012\n00121\n\n\nwall_ne\n#ab866d #7b5b45 #463326\n0....\n00...\n100..\n2100.\n12100\n\nwall_se\n#7b5b45 #8f6d56 #5e422f\n01022\n1022.\n022..\n22...\n2....\n\nwall_sw\n#463326 #7b5b45 #ab866d\n00121\n.0012\n..001\n...00\n....0\n\nwalljoin_downdiag\n#7b5b45\n0....\n.0...\n..0..\n...0.\n....0\n\nwalljoin_updiag\n#7b5b45\n....0\n...0.\n..0..\n.0...\n0....\n\n\n=======\nLEGEND\n=======\n\nplayer = player_nw or player_ne or player_sw or player_se\ncrate = crate_nw or crate_ne or crate_sw or crate_se\ntarget = target_nw or target_ne or target_sw or target_se\n\npusher_nw = player_nw or crate_nw\npusher_sw = player_sw or crate_sw\npusher_ne = player_ne or crate_ne\npusher_se = player_se or crate_se\n\nt = crate_nw and crate_se \ny = crate_ne and crate_sw\n\nu = crate_nw and player_se\ni = crate_ne and player_sw\no = crate_sw and player_ne\np = crate_se and player_nw\n\n! = wall_nw and player_se\n\" = wall_ne and player_sw\n£ = wall_sw and player_ne\n$ = wall_se and player_nw\n\n. = Background\n\na = wall_nw\ns = wall_ne\nd = wall_se \nf = wall_sw\n\ncollides_nw = wall_ne or wall_sw or crate_ne or crate_sw\ncollides_ne = wall_nw or wall_se or crate_nw or crate_se\ncollides_sw = wall_se or wall_nw or crate_se or crate_nw\ncollides_se = wall_sw or wall_ne or crate_sw or crate_ne\n\ng = target_nw and wall_se\nh = target_ne and wall_sw\nj = target_sw and wall_ne\nk = target_se and wall_nw\n\nl = wall_nw and wall_se and walljoin_updiag\nm = wall_ne and wall_sw and walljoin_downdiag\n\nz = crate_nw and target_nw\nx = crate_ne and target_ne\nc = crate_sw and target_sw\nb = crate_se and target_se\n\n\nn = crate_nw and wall_se\n, = crate_ne and wall_sw\n/ = crate_sw and wall_ne\n? = crate_se and wall_nw\n\n% = crate_nw and target_nw and player_se\n& = crate_ne and target_ne and player_sw\n* = crate_sw and target_sw and player_ne\n_ = crate_se and target_se and player_nw\n\n丁 = crate_nw and target_nw and player_se\n上 = crate_ne and target_ne and player_sw\n下 = crate_sw and target_sw and player_ne\n不 = crate_se and target_se and player_nw\n\n(丁上下不且世丙並\n中丸\n主乂乃之乎九也事二五亡交亦京亭人)\n\n=======\nSOUNDS\n=======\n\ncrate move 93772107\nendlevel 32556705\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbgtile_nw\nbgtile_ne\nbgtile_sw\nbgtile_se\n\nwall_se\nwall_sw\n\ncrate_sw\ncrate_se\nplayer_sw\nplayer_se\n\nwall_nw\nwall_ne\n\nwalljoin_downdiag\nwalljoin_updiag\n\ncrate_nw\ncrate_ne\nplayer_nw\nplayer_ne\n\n\ntarget_sw\ntarget_se\ntarget_sws\ntarget_ses\ntarget_nw\ntarget_ne\n\n======\nRULES\n======\n\n\n(drawing/spawning code. comment out later I guess)\nright [ player_nw | no player_ne ] -> [ player_nw | player_ne ]\nright [ crate_nw | no crate_ne ] -> [ crate_nw | crate_ne ]\nright [ target_nw | no target_ne ] -> [ target_nw | target_ne ]\nright [ wall_nw | no wall_ne ] -> [ wall_nw | wall_ne ]\n\ndown [ player_nw | no player_sw ] -> [ player_nw | player_sw ]\ndown [ crate_nw | no crate_sw ] -> [ crate_nw | crate_sw ]\ndown [ target_nw | no target_sw ] -> [ target_nw | target_sw ]\ndown [ wall_nw | no wall_sw ] -> [ wall_nw | wall_sw ]\n\n\nright [ player_sw | no player_se ] -> [ player_sw | player_se ]\nright [ crate_sw | no crate_se ] -> [ crate_sw | crate_se ]\nright [ target_sw | no target_se ] -> [ target_sw | target_se ]\nright [ wall_sw | no wall_se ] -> [ wall_sw | wall_se ]\n\ndown [ target_sw | no target_ses ] -> [ target_sw | target_ses ]\ndown [ target_se | no target_sws ] -> [ target_se | target_sws ]\n\n(wall mortar)\n\n[wall_se wall_nw ] -> [wall_se wall_nw walljoin_updiag ]\n[wall_ne wall_sw ] -> [wall_ne wall_sw walljoin_downdiag ]\n(end of spawning code)\n\n\nstartloop\n(side push)\n[ up pusher_nw stationary crate_se ] -> [ up pusher_nw up crate_se ]\n+ [ left pusher_nw stationary crate_se ] -> [ left pusher_nw left crate_se ]\n\n+ [ up pusher_ne stationary crate_sw ] -> [ up pusher_ne up crate_sw ]\n+ [ right pusher_ne stationary crate_sw ] -> [ right pusher_ne right crate_sw ]\n\n+ [ down pusher_sw stationary crate_ne ] -> [ down pusher_sw down crate_ne ]\n+ [ left pusher_sw stationary crate_ne ] -> [ left pusher_sw left crate_ne ]\n\n+ [ down pusher_se stationary crate_nw ] -> [ down pusher_se down crate_nw ]\n+ [ right pusher_se stationary crate_nw ] -> [ right pusher_se right crate_nw ]\n\n\n(direct centered push)\n+ up [ > pusher_nw | stationary crate_sw ] -> [ > pusher_nw | > crate_sw ]\n+ down [ > pusher_sw | stationary crate_nw ] -> [ > pusher_sw | > crate_nw ]\n+ right [ > pusher_ne | stationary crate_nw ] -> [ > pusher_ne | > crate_nw ]\n+ left [ > pusher_nw | stationary crate_ne ] -> [ > pusher_nw | > crate_ne ]\n\n\n(propagate motion through crate)\n+ right [ right crate_nw | stationary crate_ne ] -> [ right crate_nw | right crate_ne ]\n+ right [ crate_nw | right crate_ne ] -> [ right crate_nw | right crate_ne ]\n+ right [ right crate_sw | stationary crate_se ] -> [ right crate_sw | right crate_se ]\n+ right [ stationary crate_sw | right crate_se ] -> [ right crate_sw | right crate_se ]\n+ down [ stationary crate_ne | right crate_se ] -> [ right crate_ne | right crate_se ]\n+ down [ right crate_ne | stationary crate_se ] -> [ right crate_ne | right crate_se ]\n\n+ right [ left crate_nw | stationary crate_ne ] -> [ left crate_nw | left crate_ne ]\n+ right [ crate_nw | left crate_ne ] -> [ left crate_nw | left crate_ne ]\n+ right [ left crate_sw | stationary crate_se ] -> [ left crate_sw | left crate_se ]\n+ right [ stationary crate_sw | left crate_se ] -> [ left crate_sw | left crate_se ]\n+ down [ stationary crate_ne | left crate_se ] -> [ left crate_ne | left crate_se ]\n+ down [ left crate_ne | stationary crate_se ] -> [ left crate_ne | left crate_se ]\n\n+ right [ up crate_nw | stationary crate_ne ] -> [ up crate_nw | up crate_ne ]\n+ right [ crate_nw | up crate_ne ] -> [ up crate_nw | up crate_ne ]\n+ right [ up crate_sw | stationary crate_se ] -> [ up crate_sw | up crate_se ]\n+ right [ stationary crate_sw | up crate_se ] -> [ up crate_sw | up crate_se ]\n+ down [ stationary crate_ne | up crate_se ] -> [ up crate_ne | up crate_se ]\n+ down [ up crate_ne | stationary crate_se ] -> [ up crate_ne | up crate_se ]\n\n+ right [ down crate_nw | stationary crate_ne ] -> [ down crate_nw | down crate_ne ]\n+ right [ crate_nw | down crate_ne ] -> [ down crate_nw | down crate_ne ]\n+ right [ down crate_sw | stationary crate_se ] -> [ down crate_sw | down crate_se ]\n+ right [ stationary crate_sw | down crate_se ] -> [ down crate_sw | down crate_se ]\n+ down [ stationary crate_ne | down crate_se ] -> [ down crate_ne | down crate_se ]\n+ down [ down crate_ne | stationary crate_se ] -> [ down crate_ne | down crate_se ]\n\nendloop\n\n\n(if unresolved collisions, can remove all things because it's good)\nlate [ crate_nw collides_nw ] -> cancel\nlate [ crate_ne collides_ne ] -> cancel\nlate [ crate_sw collides_sw ] -> cancel\nlate [ crate_se collides_se] -> cancel\nlate [ player_nw collides_nw ] -> cancel\nlate [ player_ne collides_ne ] -> cancel\nlate [ player_sw collides_sw ] -> cancel\nlate [ player_se collides_se] -> cancel\n\ndown [ bgtile_nw | no bgtile_sw ] -> [ bgtile_nw | bgtile_sw ]\n+ down [ bgtile_sw | no bgtile_nw ] -> [ bgtile_sw | bgtile_nw ]\n\nright [ bgtile_nw | no bgtile_ne ] -> [ bgtile_nw | bgtile_ne ]\n+ right [ bgtile_ne | no bgtile_nw ] -> [ bgtile_ne | bgtile_nw ]\n\nright [ bgtile_sw | no bgtile_se ] -> [ bgtile_sw | bgtile_se ]\n+ right [ bgtile_se | no bgtile_sw ] -> [ bgtile_se | bgtile_sw ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\nAll Crate on Target\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 17\n;...................\n.........a..........\n........asas........\n.......amghls.......\n......amg21hls......\n.....amd3434fls.....\n....amd.{}{}.fls....\n...amd...as...fls...\n..amd...q,nw...fls..\n..fls...etyr...amd..\n...fls...er...amd...\n....fls..56..amd....\n.....fls.78.amd.....\n......fls..amd......\n.......flsamd.......\n........flmd........\n.........fd.........\n....................\n\n(Easyish - possible early level?)\n\nmessage Level 2 of 17\n;.....as......\n.....amls.....\n....amdfls....\n...amd..fls...\n..amd..qwfls..\n.amd.12er.fls.\namd..3412..fls\nfls..q}34..amd\n.fls.er{}.amd.\n..fls.56.amd..\n...fls78amd...\n....flsamd....\n.....flmd.....\n......fd......\n\n\nmessage Level 3 of 17\n(similar to above? no puzzle as such)\n;.......as.........\n.......amls........\n......amdfls.......\n.....amd..fls......\n....amd....fls.....\n...amd......fls....\n..amd...5....fls...\n.amd...aszx...fls..\n.fls...fnytx...fls.\n..fls...e1cb...amd.\n...fls...34}..amd..\n....fls..{}..amd...\n.....fls....amd....\n......fls..amd.....\n.......flsamd......\n........flmd.......\n.........fd........\n\nmessage Level 4 of 17\n\n;.......aas...\n.......amdls..\n......amd.fls.\n.....amd...fls\n....amd.qw..as\n...amd.12r.amd\n..amd.534.amd.\n.amd.128}amd..\namd.q34.amd...\nas..e{}amd....\nfls...amd.....\n.fls.amd......\n..flamd.......\n...fdd........\n\n\n\nmessage Level 5 of 17\n(easy but ok? level 2?)\n;.....as.......\n.....amls......\n.....fdfls.....\n.asasas.fls....\n.fdfdfd..fls...\n.as12..qw.fls..\n.fd312qyr56fls.\n.as124etw78amd.\n.fd34}.er.amd..\n.asa}as..amd...\n.fdfafd.amd....\n.....asamd.....\n.....flmd......\n......fd.......\n\n\nmessage Level 6 of 17\n\n(super trivial)\n;...aas.....\n...amdls....\n..amd.fls...\n.amd.qwfls..\namd..er.fls.\nas.125612fls\nfls347834.as\n.fl{}qw{}amd\n..flser.amd.\n...fls.amd..\n....flamd...\n.....fdd....\n\nmessage Level 7 of 17\n(nice level! level 2?)\n;.....as.......\n.....amls......\n....amdfls.....\n...amd..fls....\n..amd....fls...\n.amd..56..fls..\namd..a\"z...fls.\nfls..fn.z...fls\n.fls..e1....amd\n..fls..3...amd.\n...fls.{}.amd..\n....fls..amd...\n.....flsamd....\n......flmd.....\n.......fd......\n\n\n\n\nmessage Level 8 of 17\n(I like how this looks, it's otherwise a simple storeroom puzzle)\n(a bit tricky. push forward maybe)\n;.....as........as......\n.....amlaaaaaaaamls.....\n....amdflmddddlmdfls....\n...amd..fls..amd..fls...\n..amd....fd..fd....fls..\n.amd..qw.125612.qw..fls.\n.fls..er.347834.er..amd.\n..fls....a}..a}....amd..\n...fls..amd..fls..amd...\n....flsaalaaaaalsamd....\n.....flmddddddddlmd.....\n......fd........fd......\n\n\nmessage Level 9 of 17\n(meh but not actually the worst)\n;.....as............\n.....amls...........\n....amdfls..........\n...amd56fls.........\n..amd128.fls........\n.amd124..amd........\naas.34qwamd.........\nfdls{qy?md..........\n..flserfls..........\n...fls..fls..as.....\n....fls..flsamls....\n.....fls..flmdfls...\n......fls..fd..fls..\n......amd.......fls.\n.....amd.....as..fls\n....amd..as..fd..amd\n....fls..fd.....amd.\n.....fls.......amd..\n......fls..aasamd...\n.......flsamdlmd....\n........flmd.fd.....\n.........fd.........\n\nmessage Level 10 of 17\n\n(fine? not too hard? just have to work through it. not trial and errory )\n;.......as.......\n.......amls......\n......amdfls.....\n.....amd..fls....\n....amd.12.fls...\n...amd.q3qw.fls..\n..amd.12po12.fls.\n..fls.3qiq34.amd.\n...fls{}12{}amd..\n...amd..34.amd...\n..amd...{}amd....\n.af......amd.....\n..a.....amd......\n...a...amd.......\n....a.amd........\n.....afd.........\n.................\n\nmessage Level 11 of 17\n(fine?)\n;..............aas....\n..............amdls...\n.............amd.fls..\n............amd...fls.\n...........amd....amd.\n.......as.amd....amd..\n......amlamd..12amd...\n.....amdfdd..1.kmd....\n....amd.....12kmd.....\n...amd...qwajkmd......\n..amd...qyrflmd.......\n.amd...qyr..fls.......\n.fls...er...amd.......\n..fls..56..amd........\n...fls.78.amd.........\n....fls..amd..........\n.....flsamd...........\n......flmd............\n.......fd.............\n\n\n\nmessage Level 12 of 17\n(more space management than puzzle solving)\n;....a..............\n....a.a.............\n...a...a............\n..a.....a...........\n.a.......as.........\na.........ls........\n.a........fls.......\n..a......12fls......\n...a....q3qwfls.....\n....a..121212fls....\n....fls3q3q34.fls...\n.....fl{}12q}..fls..\n......fls34er...fls.\n.......fl{}..56..fls\n........fls..78..amd\n.........fls....amd.\n..........fls..amd..\n...........flsamd...\n............flmd....\n.............fd.....\n....................\n\nmessage Level 13 of 17\n(decent?)\n;...aas......\n...amdls.....\n..amd.fls....\n.amg2..als...\namd34..flls..\nas.56qw.fdls.\nfls78etw..fls\n.flas.er...as\n..flls..12amd\n...fls..3kmd.\n....fls.amd..\n.....flamd...\n......fdd....\n\n\n\nmessage Level 14 of 17\n(yeah fine swap-chambers = all good. intermediate?)\n;....aaaaas........\n....amddddls.......\n....as....fls......\n....as.....asaaas..\n....fls....almddls.\n...aaals...amd..fls\n..amdddg2..fd....as\n.amd..q34..qw...amd\namd...e{}.12r..amd.\nas....as..3kaaamd..\nfls..ams..{}lmdd...\n.flaamls.56.fls....\n..fdddas.78..as....\n......fls....as....\n.......flaaaaas....\n........fdddddd....\n\nmessage Level 15 of 17\n(kinda ok#? middle-intermediate)\n;....aas....\n....amdls...\n...amd.fls..\n..amd...fls.\n.amd12qw.fls\namd.312r..as\nfls.q35..amd\n.flse{78amd.\n..fls..amd..\n...flsamd...\n....flmd....\n.....fd.....\n\n\nmessage Level 16 of 17\n(hard but ok can be solved with brain)\n;...aas.....\n...amdls....\n..amd.fls...\n.amd...fls..\namd.q.1.fls.\nas...q...fls\nfls.1.5..amd\n.fls....amd.\n..fls..amd..\n...flsamd...\n....flmd....\n.....fd.....\n\n\n\nmessage Level 17 of 17\n(message also hard but i can solve these ok now?)\n;...aas.....\n...amdls....\n..amd.fls...\n.amd...fls..\namd.q.1.fls.\nas...5...fls\nfls.q.1..amd\n.fls....amd.\n..fls..amd..\n...flsamd...\n....flmd....\n.....fd.....\n\n\nmessage congrats for being good at socketing gems.\n\n\n(\nasasasas......\nfdfdfdfd......\nas....asasasas\nfd....fdfdfdfd\nas5612qw....as\nfd7834er....fd\nas..{}asasasas\nfd....fdfdfdfd\nasasasas......\nfdfdfdfd......\n\n\n\n......aaaaas.......\n.....amdfddls......\n....amd....fls.....\n...amd......fls....\n..amls..qw..amls...\n.amdfls.er.amdfls..\namd..fls12amd..fls.\nas....fd34fd....as.\nas.qw.125612qw..as.\nas.er.347834er..as.\nas....a.12a}....as.\nfls..amd34fls..amd.\n.flsamd.q}.flsamd..\n..flmd..er..flmd...\n...fls......amd....\n....fls....amd.....\n.....flaaaamd......\n......fddddd.......\n...................\n\n\n\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n\n\n\n.....................\n......aas............\n.....amdl.s..........\n....amd.f.ls.........\n....as....fls........\n....as.....asaaas....\n....fls....almddls...\n...aaals...amd..fls..\n..amdddg2..fd....as..\n.amd..q35.6qw...amd..\namd...e{7.12r..amd...\nas....as..3kaaamd....\nfls..aas..{}lmdd.....\n.flaamls....fls......\n..fdddas.....as......\n......fls....as......\n.......fl.s.amd......\n........f.lamd.......\n..........fdd........\n.....................\n\n....................\n............aaas....\n...........amddls...\n...aaaas..amd..fls..\n..amdddg2.fd....as..\n.amd..q346qw...amd..\namd...e{712r..amd...\nas....as.3kaaamd....\nfls..amd.{}dddd.....\n.flaamd.............\n..fddd..............\n....................\n\n....................\n....................\n....................\n....................\n.........as.........\n........amls..aaas..\n.......amdflsamddls.\n...aaaamd..flmd..fls\n..amdddg2...fd....as\n.amd..q3456.qw...amd\namd...e{}7812r..amd.\nas....as...3kaaamd..\nfls..amls..{mdddd...\n.flaamdflsamd.......\n..fddd..flmd........\n.........fd.........\n....................\n....................\n....................\n....................\n\n.......aas..........\n......amdls.........\n.....amd.fls........\n.....as...fls.......\n.....as....as.......\n.....fls...as.aaas..\n......flsqwasamddls.\n...aaaamde1hlmd..fls\n..amdddg2.34fd....as\n.amd..q3456}qw...amd\namd...e{}7812r..amd.\nas....as12.3kaaamd..\nfls..amljqwamdddd...\n.flaamda{}rfls......\n..fddd.as...fls.....\n.......as....as.....\n.......fls...as.....\n........fls.amd.....\n.........flamd......\n..........fdd.......\n\n.......aas..........\n......amdls.........\n.....amd.fls........\n.....as...fls.......\n.....as....as.......\n.....fls...as.aaas..\n......fls56asamddls.\n...aaaamd78flmd..fls\n..amdddd....fd....as\n.amd.....as.qw...amd\namd......fd.er..amd.\nas....as....aaaamd..\nfls..amls..amdddd...\n.flaamdas..fls......\n..fddd.as...fls.....\n.......as....as.....\n.......fls...as.....\n........fls.amd.....\n.........flamd......\n..........fdd.......\n\n(impossible)\n....aas......\n...amdls.....\n..amd.fls....\n.amg2..fls...\namd34..amls..\nas56}qwfdfls.\nfl\"8.etw..fls\n.flsaser...as\n..flmd..12amd\n...fls..3kmd.\n....fls.amd..\n.....flamd...\n......fdd....\n\n\n(trivial)\n....aas......\n...amdls.....\n..amd.fls....\n.amg2..fls...\namd34...fls..\nas.{}qw..fls.\nfls..etw..fls\n.fls56er...as\n..fl\"8..12amd\n...fls..3kmd.\n....fls.amd..\n.....flamd...\n......fdd....\n\n\n(trivial)\n....aas......\n...amdls.....\n..amd.fls....\n.amd.1.fls...\namd.....fls..\nas...5.q.fls.\nfls.q.....as.\n.fl..1...amd.\n..fls...amd..\n...fls.amd...\n....flamd....\n.....fdd.....\n.............\n\n....aas......\n...a..ls.....\n..a...fls....\n.a.....fls...\na...12qwfls..\na...312r.fls.\nfls.q356.a...\n.flse{78a....\n..fls..a.....\n...flsa......\n....fl.......\n.....f.......\n.............\n\n.....as......\n....amls.....\n...amdfls....\n..amd..fls...\n.amd12qwfls..\namd.312r.fls.\nfls.q356..as.\n.flse{78.amd.\n..fls...amd..\n...fls.amd...\n....flamd....\n.....fdd.....\n.............\n\n\n......as......\n.....amls.....\n....amdfls....\n...amd..fls...\n..amd....fls..\n.amd.12qw.fls.\namd..312r..fls\nfls..{34...amd\n.fls.e{}56amd.\n..fls...7!md..\n...fls..amd...\n....flsamd....\n.....flmd.....\n......fd......\n\n\n\n..............\n.....aas......\n....amdls.....\n...amd.fls....\n..amd...fls...\n.amd...qwfls..\n.as...a/r.fls.\n.fls.5£g2.amd.\n..fls7834amd..\n...fls.{amd...\n....flsamd....\n.....flmd.....\n......fd......\n..............\n\n..............\n.....aas......\n....amdls.....\n...amd.fls....\n..amd...fls...\n.amd...qwfls..\n.as...a/r.fas.\n.fls.5£g2..ad.\n..fls7834.a...\n...fls.{.a....\n....fls.a.....\n.....faa......\n.......d......\n..............\n\n..............\n.....aas......\n....amdls.....\n...amd.fls....\n..amd...fls...\n.amd...qwfls..\na.....a/r.fls.\n.a...5£g2..as.\n..a..7834.amd.\n...a...{}amd..\n....a...amd...\n.....a.amd....\n......a.d.....\n..............\n\n.......as............\n......amls...........\n.....am$£ls..........\n....amd78fls.........\n...amg2...as.........\n..amg24qwamd.........\n..flj4qy?md..........\n...fl}erfls..........\n....fls..fls..as.....\n.....fls..flsamls....\n......fls..flmdfls...\n.......fls..fd..fls..\n.......amd.......fls.\n......amd.....as..fls\n.....amd..as..fd..amd\n.....fls..fd.....amd.\n......fls.......amd..\n.......fls..aasamd...\n........flsamdlls....\n.........flmd.fdd....\n..........fd.........\n.....................\n\n\n\n.......as............\n......amls...........\n.....am$£ls..........\n....amg28fls.........\n...amg24..as.........\n..amd34qwamd.........\n..fls{qy?md..........\n...flserfls..........\n....fls..fls..as.....\n.....fls..flsamls....\n......fls..flmdfls...\n.......fls..fd..fls..\n........fls......fls.\n........amd...as..fls\n.......amd....fd..amd\n......amd..as....amd.\n......fls..fd...amd..\n.......fls....aamd...\n........fls..amdd....\n.........flsamd......\n..........flmd.......\n...........fd........\n\n\n....................\n.......1............\n......q.q...........\n.....1.1.1..........\n......q.q.q.........\n.......1.1..........\n........q...........\n...........5........\n....................\n....................\n\n\n(trivial)\n..........aas.....\n.....as..amdls....\n....amlsamd.fls...\n...amdflmd...fls..\n..amd..fd.qw..fls.\n.amd......etw56fls\n.fls......a/r78amd\n..fls.....fls.amd.\n..amd......flamd..\n.amd.....12.amd...\namd..as..34amd....\nfls..fg2.{amd.....\n.fls..34.amd......\n..fls.{}amd.......\n...fls.amd........\n....flamd.........\n.....fls..........\n......fd..........\n\n(dont' like)\n..........................\n.asasasasasas.............\n.fdfdfdfdfdfd.............\n.as........asasasasas.....\n.fd........fdfdfdfdfd.....\n.as..qwqw........56as.....\n.fd..erer........78fd.....\n.as..qw..as121212..as.....\n.fd..er..fd343434..fd.....\n.as......asa}a}a}asas.....\n.fd......fdfdfdfdfdfd.....\n.asasasasas...............\n.fdfdfdfdfd...............\n..........................\n\n\n\n..............aas...\n.............amdls..\n............amd.fls.\n...........amd...fls\n..........amd....amd\n......as.amd....amd.\n.....amlamd..12amd..\n....amdfdd..1jamd...\n...amd.....12amd....\n..amd...qwajamd.....\n.amd...qyrflmd......\namd...qyr..fls......\nfls...er...amd......\n.fls..56..amd.......\n..fls.78.amd........\n...fls..amd.........\n....flsamd..........\n.....flmd...........\n......fd............\n\n\n..............as....\n.............amls...\n............amdfls..\n...........amd..fls.\n..........amd....als\n......as.amd....amdd\n.....amlamd..12amd..\n....amdfdd..12kmd...\n...amd.....12kmd....\n..amd...qwajkmd.....\n.amd...qyrflmd......\namd...qyr..fls......\nfls...er...amd......\n.fls..56..amd.......\n..fls.78.amd........\n...fls..amd.........\n....flsamd..........\n.....flmd...........\n......fd............\n\n(actually fun to bop about in, but not hard)\n..................\n.....as...........\n....amls..........\n...amdfls.........\n..amd..fls........\n.amd....fls.......\n.fls..qw.fls......\n..flsqyr..fls.....\n..amder56..fls....\n.amd...7812.as....\namd..as..34amd....\nfls..fg2.{amd.....\n.fls..34.amd......\n..fls.{}amd.......\n...fls.amd........\n....flamd.........\n.....fdd..........\n..................\n\n(trivial)\n...........as.....\n....as....amls....\n...amls..amdfls...\n..amghlsamd..fls..\n.amd34flmd....fls.\n.fls{}.fd.....amd.\n..fls......qwamd..\n...fls.....e?md...\n....flszx..amd....\n.....fljb..fls....\n......fl}56.fls...\n.......fl\"8.amd...\n........flsamd....\n.........flmd.....\n..........fd......\n..................\n..................\n..................\n..................\n\n(early-intermediate. ugly)\n..................\n.....as...........\n....aas...........\n...amdls..........\n..amd.fls.........\n.amd...fls........\n.fls..qwfls.......\n..flsqyr.fls......\n..amder56.fls.....\n.amd...7812fls....\namd..as..34amd....\nfls..fg2.{amd.....\n.fls..34.amd......\n..fls.{}amd.......\n...fls.amd........\n....flamd.........\n.....fdd..........\n..................\n\n\n........as...\n....as.amls..\n...amlamdfls.\n..amghdd..fls\n.amd34.....as\n.as.{}56qwamd\n.flszx78e?md.\n..fljb...fls.\n...fl}...amd.\n....fls.amd..\n.....flamd...\n......fdd....\n.............\n\n.....asasasasas...\n.....fdfdfdfdfd...\n.asasas......as...\n.fdfdfd......fd...\n.as12..qw....as...\n.fd312qyr.56.fd...\n.as124etw.78.as...\n.fd34}.er....fd...\n.asa}as......as...\n.fdfdfd......fd...\n.....asasasasas...\n.....fdfdfdfdfd...\n\n......as.......\n.....amls......\n....amdfls.....\n...amd..fls....\n..amd....fls...\n.amd..56..fls..\namd..a\"ux..fls.\nfls..fnytx..fls\n.fls..e1cb..amd\n..fls..34}.amd.\n...fls.{}.amd..\n....fls..amd...\n.....flsamd....\n......flmd.....\n.......fd......\n\n......as.......\n.....amls......\n....amdfls.....\n...amd..fls....\n..amd....fls...\n.amd..56..fls..\namd..a\"1x..fls.\nfls..fny1x..fls\n.fls..e1cb..amd\n..fls..34}.amd.\n...fls.{}.amd..\n....fls..amd...\n.....flsamd....\n......flmd.....\n.......fd......\n\n\n....asas....\n...amdfls...\n..amg21hls..\n.amd3434fls.\namd.{}{}.fls\nfd...as...fd\nas..q,nw..as\nfls.erer.amd\n.fls....amd.\n..fls56amd..\n...fl\"!md...\n....fdfd....\n\n(unsolvable)\n....asas....\n...amdfls...\n..amg21hls..\n.amd3kj4fls.\namd.{}{}.fls\nfd...as...fd\nas..q,nw..as\nfls.erer.amd\n.fls....amd.\n..fls56amd..\n...fl\"!md...\n....fdfd....\n\n....asas....\n...amdfls...\n..amd..fls..\n.amd....fls.\namd...56.fls\nfd....78..fd\nas........as\nfls......amd\n.fls....amd.\n..fls..amd..\n...flsamd...\n....fdfd....\n\n\n(trivil)\n....asas....\n...asdfas...\n..asd..fas..\n.asd....fas.\nasd...56.fas\nfd.qw.78..fd\nas12tw....as\nflj12tw..amd\n.faj12r.amd.\n..faj4.amd..\n...fa}amd...\n....fdfd....\n\n\n\n(impossible)\n...as..as...\n..amlsamls..\n.amghlmdfls.\namd34fd..fls\nfls{}56qwamd\n.flszi8e?md.\n..fljb..fls.\n...fl}..amd.\n....flsamd..\n.....flmd...\n......fd....\n\n.....as......\n....amls.....\n...amdfls....\n..amd..fls...\n.amd.56.fls..\namd.a7zx.fls.\nfls.fnytx.fls\n.fls.e1cb.amd\n..fls.34}amd.\n...fls{}amd..\n....flsamd...\n.....flmd....\n......fd.....\n\n\n........as......\n.......amls.....\n....asamdfls....\n...amlmnw.fls...\n..amdfdetw.fls..\n.amd...a/p6amd..\n.fls...fl7amd...\n.amd...1hlmd....\namd.as.3kmd.....\nfls.fg2amd......\n.fls.3kmd.......\n..flsamd........\n...flmd.........\n....fd..........\n\n.......a........\n......a.a.......\n.....a...a......\n....a...5.a.....\n...a...q...a....\n..a...z.....a...\n.a...z.....a....\na...1...a.a.....\n.a.....a.a......\n..a...a.........\n...a.a..........\n....a...........\n................\n................\n................\n\n......a.......\n.....a.a......\n....a...a.....\n...a.....a....\n..a...1...a...\n.a...q.q...a..\na...1.5.1...a.\n.a...q.q...a..\n..a...1...a...\n...a.....a....\n..a.....a.....\n...a...a......\n....a.a.......\n.....a........\n..............\n\n...........a....\n..........a.a...\n.........a...a..\n........a...5.a.\n.......a...a...a\n........a.....a.\n.....a.a.....a..\n....a.a...1.a...\n...a.....1.a....\n..a.....1.a.....\n.a...q.a.a......\na...q...a.......\n.a...q...a......\n..a.....a.......\n...a...a........\n....a.a.........\n.....a..........\n................\n................\n\n................\n......a.........\n.....a.a........\n....a...a.......\n...a.....a......\n..a...q...a.....\n.a...1.1...a....\na...q.q.q...a...\n.a...1.1.1...a..\n..a...q.q...a...\n...a...1.5.a....\n....a.....a.....\n.....a...a......\n......a.a.......\n.......a........\n................\n................\n................\n\n.....a...........\n....a.a..........\n...a.5.a.........\n..a.1...a........\n.a.1.q.a.........\na...q.a..........\n.a.....a.........\n..a.a...a........\n...a.a...a.a.....\n......a...a.a....\n.......a.....a...\n......a.......a..\n.....a.....a...a.\n....a...a.....a..\n.....a.......a...\n......a...a.a....\n.......a.a.a.....\n........a........\n.................\n\n....a.a......\n...a.a.a.....\n..a.....a....\n.a...q...a...\na.1.q.....a..\n.a.5.....1.a.\n..a.a.a.a.a..\n...a.a.a.a...\n.............\n\n.......a......\n......a.a.....\n.....a...a....\n....a.....a...\n...a.1.a...a..\n....a.1.a...a.\n.....a.1.q.a..\n......a...a...\n.....a.q...a..\n....a...a...a.\n...a.q.....a..\n..a...a...a...\n.a.5.....a....\na...a...a.....\n.a.....a......\n..a...a.......\n...a.a........\n....a.........\n..............\n\n\n\n...as..as...\n..amlsamls..\n.amghlmdfls.\namd34fd..fls\nfls{}56qwamd\n.flszi8ermd.\n..fljb..fls.\n...fl}..amd.\n....flsamd..\n.....flmd...\n......fd....\n\n...as..as...\n..amlsamls..\n.amdflmdfls.\namd..fd..fls\nfls......amd\n.fls....amd.\n..fls...fls.\n...fls..amd.\n....flsamd..\n.....flmd...\n......fd....\n\n\n;...asas....\n...amdfls...\n..amd..fls..\n.amd....fls.\namd...56.fls\nfd.qw.78..fd\nas12tw....as\nflj12tw..amd\n.flj12r.amd.\n..flj4.amd..\n...fl}amd...\n....fdfd....\n\n...aas...\n..amdls..\n.amd.fls.\namq..5fls\nfd.q...as\nas1...amd\nfls1.amd.\n.flsamd..\n..fdfd...\n\n..asas..\n.amdfls.\namd..fls\nfd....fd\nas....as\nfls..amd\n.flsamd.\n..fdfd..\n\n....asas....\n...asdfas...\n..asd..fas..\n.asd....fas.\nasd......fas\nfd........fd\nas........as\nfas......asd\n.fas....asd.\n..fas..asd..\n...fasasd...\n....fdfd....\n\n...aa....\n..as.a...\n.amd..a..\namd....a.\nfd.....a.\nas....as.\nfls..amd.\n.flsamd..\n..fdfd...\n\n\nasasasas\nfdfdfdfd\nas....as\nfd....fd\nas....as\nfd....fd\nas....as\nfd....fd\nasasasas\nfdfdfdfd\n\n........a.........\n.......a.a........\n......a...a.......\n.....a.....a......\n....a.......a.....\n...a.........a....\n..a...........a...\n.a.............a..\na...............a.\n.a.............a..\n..a...........a...\n...a.........a....\n....a.......a.....\n.....a.....a......\n......a...a.......\n.......a.a........\n........a.........\n..................\n\n\n........\n..qw....\n.qytwqw.\n.etytyr.\n.12tyr..\n.34ep6..\n.{}.78..\n........\n........\n........\n\n\n\n........\n........\n........\n........\n.12qw...\n.34e5...\n.{}.....\n........\n........\n........\n\n........\n........\n........\n........\n.12qw...\n.34e5...\n.{}.....\n........\n........\n........\n)\n\n", [0, 2, 3, 0, 3, 2, 2, 3, 3, 2, 1, 1, 1, 2, 3, 1, 1, 3, 2, 2, 1, 2, 3, 0, 1, 1, 0, 2, 3, 0, 0, 3, 0, 0, 0, 1, 1, 0, 1, 1, 1, 2, 2, 2, 3, 2, "undo", 1, 2, 3, 3, 2, 3, 0], "background bgtile_nw:0,background bgtile_sw:1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,background bgtile_ne:2,background bgtile_se:3,\n2,3,2,3,2,background bgtile_se wall_nw:4,background bgtile_ne wall_sw:5,3,2,3,2,3,2,3,2,0,1,0,1,\n0,1,background bgtile_nw wall_nw:6,background bgtile_sw wall_ne wall_sw walljoin_downdiag:7,background bgtile_nw wall_nw wall_se walljoin_updiag:8,background bgtile_sw wall_sw:9,0,1,0,1,0,1,0,2,3,2,3,2,4,\nbackground bgtile_ne wall_ne wall_sw walljoin_downdiag:10,background bgtile_se wall_se:11,background bgtile_ne wall_ne:12,background bgtile_se wall_nw wall_se walljoin_updiag:13,5,3,2,3,2,3,2,0,1,0,1,6,7,background bgtile_nw wall_se:14,1,\n0,background bgtile_sw wall_ne:15,8,9,0,1,0,1,0,2,3,2,4,10,11,2,3,2,3,\n12,13,5,3,2,3,2,0,1,6,7,14,1,0,1,0,1,0,15,\n8,9,0,1,0,2,4,10,11,2,3,2,4,5,3,2,3,12,13,\n5,3,2,6,7,14,1,0,1,0,15,14,background bgtile_sw player_nw:16,background bgtile_nw player_sw:17,1,0,15,8,9,\n0,12,13,5,3,2,3,2,background bgtile_se target_nw:18,background bgtile_ne crate_nw target_sw:19,background bgtile_se crate_sw player_ne target_nw target_ses:20,background bgtile_ne player_se target_sw:21,background bgtile_se target_ses:22,2,3,12,13,5,0,\n15,8,9,0,1,0,background bgtile_sw crate_nw target_ne:23,background bgtile_nw crate_ne crate_sw target_se:24,background bgtile_sw crate_se target_ne target_sw target_sws:25,background bgtile_nw target_se target_ses:26,background bgtile_sw target_sws:27,0,1,6,7,14,2,3,12,\n13,5,3,2,background bgtile_se crate_ne:28,background bgtile_ne crate_se target_ne:29,background bgtile_se target_se:30,background bgtile_ne target_sws:31,3,2,4,10,11,2,0,1,0,15,8,\n9,0,1,0,1,background bgtile_nw crate_nw:32,background bgtile_sw crate_sw:33,6,7,14,1,0,2,3,2,3,12,13,5,\n3,2,3,background bgtile_ne crate_ne:34,background bgtile_se crate_se wall_nw:35,10,11,2,3,2,0,1,0,1,0,15,8,9,0,\n1,6,7,14,1,0,1,0,2,3,2,3,2,3,12,13,5,4,10,\n11,2,3,2,3,2,0,1,0,1,0,1,0,15,8,7,14,1,0,\n1,0,1,0,2,3,2,3,2,3,2,3,12,11,2,3,2,3,2,\n3,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,\n", 5, "1627894805419.4346"] ], [ - "Empty loop test", - ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n\nstartloop\n\nendloop\n\n\n[ > Player | > Crate ] -> [ < Player | < Crate ]\n\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\n",[3,2,2,1,2,1,1,0,3],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,background player:2,\n1,0,0,1,0,background crate:3,\nbackground crate target:4,1,0,0,1,1,\n4,background target:5,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n","1","1628787178284.0164"] + "Empty loop test", + ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n\nstartloop\n\nendloop\n\n\n[ > Player | > Crate ] -> [ < Player | < Crate ]\n\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\n", [3, 2, 2, 1, 2, 1, 1, 0, 3], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,background player:2,\n1,0,0,1,0,background crate:3,\nbackground crate target:4,1,0,0,1,1,\n4,background target:5,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n", "1", "1628787178284.0164"] ], [ - "Loop example with both late and regular rules.", - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\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\nCrate1\nOrange \n00000\n0...0\n0...0\n0...0\n00000\n\nCrate2\nred \n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n\nO = Target\n1 = crate1\n2 = crate2\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate1, crate2\n\n======\nRULES\n======\n\nstartloop\nright [ crate1 | ] -> [ | crate2 ]\n\nlate left [ crate2 | ] -> [ | crate1 ]\n\nright [ crate2 | ] -> [ | crate1 ]\n\nlate left [ crate1 | ] -> [ | crate2 ]\nendloop\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\np..1............\n\n\n",[3],"background crate2:0,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n",0,"1628792234693.525"] + "Loop example with both late and regular rules.", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\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\nCrate1\nOrange \n00000\n0...0\n0...0\n0...0\n00000\n\nCrate2\nred \n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n\nO = Target\n1 = crate1\n2 = crate2\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate1, crate2\n\n======\nRULES\n======\n\nstartloop\nright [ crate1 | ] -> [ | crate2 ]\n\nlate left [ crate2 | ] -> [ | crate1 ]\n\nright [ crate2 | ] -> [ | crate1 ]\n\nlate left [ crate1 | ] -> [ | crate2 ]\nendloop\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\np..1............\n\n\n", [3], "background crate2:0,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n", 0, "1628792234693.525"] ], [ `"right [ Player ] -> [ up Player ]" gets compiled to down #755`, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nflag\nDarkBlue\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\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\nO = flag\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nflag\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nright [ crate ] [ stationary flag ] -> [ ] [ action flag]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\no*\n*.\n\n",[4],"background flag:0,background crate:1,\nbackground:2,2,\n",0,"1629150419859.7258"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nflag\nDarkBlue\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\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\nO = flag\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nflag\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nright [ crate ] [ stationary flag ] -> [ ] [ action flag]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\no*\n*.\n\n", [4], "background flag:0,background crate:1,\nbackground:2,2,\n", 0, "1629150419859.7258"] ], [ "in sound section can't mention an object called horizontali - cf #757", - ["title Simple Block Pushing Game\nauthor David Skinner\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\n00000\n0...0\n0...0\n0...0\n00000\n\nhorizontali\nblue\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\nhorizontali move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nhorizontali\n\n======\nRULES\n======\n\n\n[ > Player | Crate ] -> [ > Player | > Crate ] sfx0 sfx1\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\n",[0,1,2,2],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,background target:2,background player:3,\nbackground crate:4,0,0,2,1,1,\n1,1,0,0,0,0,\n1,4,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1629314889294.314"] - ], - -[ - "VEXT EDIT", - ["title VEXT EDIT\nauthor JACK\n\nrun_rules_on_level_start\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\n#eeeeee\n\nPlayerTarget1mark\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1mark\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nPlayerTarget1\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0Mark\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nWall0 \n#884400 #f00\n00000\n00000\n00000\n00000\n00000\n\nwalll0 \nBrown #f00\n1....\n1....\n1....\n1....\n1....\n\nWallr0 \nBrown #f00\n....1\n....1\n....1\n....1\n....1\n\nWalld0 \nBrown #f00\n.....\n.....\n.....\n.....\n11111\n\nWallu0 \nBrown #f00\n11111\n.....\n.....\n.....\n.....\n\nBlack\nblack\n\nwall0ghost\ntransparent\n\nWall0Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1 \n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall2\n#884400 #00f\n00000\n00000\n00000\n00000\n00000\n\nwalll2\nBrown #00f\n1....\n1....\n1....\n1....\n1....\n\nWallr2 \nBrown #00f\n....1\n....1\n....1\n....1\n....1\n\nWalld2 \nBrown #00f\n.....\n.....\n.....\n.....\n11111\n\nWallu2 \nBrown #00f\n11111\n.....\n.....\n.....\n.....\n\nwalll1 \nBrown #ff0\n1....\n1....\n1....\n1....\n1....\n\nWallr1 \nBrown #ff0\n....1\n....1\n....1\n....1\n....1\n\nWalld1 \nBrown #ff0\n.....\n.....\n.....\n.....\n11111\n\nWallu1 \nBrown #ff0\n11111\n.....\n.....\n.....\n.....\n\nCrate1Mark\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate1\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate01\ntransparent\n\nCrate0\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate0mark\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\ncrate0ghost\ntransparent\n\nPlayer1Mark\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nPlayer1\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nDed1Mark\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nDed1\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nCrated0\n#f80 #f00\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu0\n#f80 #f00\n.010.\n.010.\n.....\n.....\n.....\n\nCratel0\n#f80 #f00\n.....\n00...\n11...\n00...\n.....\n\nCrater0\n#f80 #f00\n.....\n...00\n...11\n...00\n.....\n\nCrated1\n#f80 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu1\n#f80 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nCratel1\n#f80 #ff0\n.....\n00...\n11...\n00...\n.....\n\nCrater1\n#f80 #ff0\n.....\n...00\n...11\n...00\n.....\n\n\nPit1Mark\nblack #bbbb00 white\n.111.\n10001\n10001\n10001\n.111.\n\n\nPit1\nblack #bbbb00 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\npit0ghost\ntransparent\n\nPit0\nblack #bb0000 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\n\npit0u\nblack #bb0000\n10001\n.....\n.....\n.....\n.....\n\npit0d\nblack #bb0000\n.....\n.....\n.....\n.....\n10001\n\npit0l\nblack #bb0000\n1....\n0....\n0....\n0....\n1....\n\npit0r\nblack #bb0000\n....1\n....0\n....0\n....0\n....1\n\npit1u\nblack #bbbb00\n10001\n.....\n.....\n.....\n.....\n\npit1d\nblack #bbbb00\n.....\n.....\n.....\n.....\n10001\n\npit1l\nblack #bbbb00\n1....\n0....\n0....\n0....\n1....\n\npit1r\nblack #bbbb00\n....1\n....0\n....0\n....0\n....1\n\nrim0u\n#b00\n.000.\n.....\n.....\n.....\n.....\n\nrim0l\n#b00\n.....\n0....\n0....\n0....\n.....\n\nrim0r\n#b00\n.....\n....0\n....0\n....0\n.....\n\nrim0d\n#b00\n.....\n.....\n.....\n.....\n.000.\n\nrim1u\n#bb0\n.000.\n.....\n.....\n.....\n.....\n\nrim1l\n#bb0\n.....\n0....\n0....\n0....\n.....\n\nrim1r\n#bb0\n.....\n....0\n....0\n....0\n.....\n\nrim1d\n#bb0\n.....\n.....\n.....\n.....\n.000.\n\nblackul\nblack\n0....\n.....\n.....\n.....\n.....\n\nblackur\nblack\n....0\n.....\n.....\n.....\n.....\n\nblackdl\nblack\n.....\n.....\n.....\n.....\n0....\n\nblackdr\nblack\n.....\n.....\n.....\n.....\n....0\n\nfell0\n#884400 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1mark\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfelld1\n#884400 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nfellu1\n#884400 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nfelll1\n#884400 #ff0\n.....\n00...\n11...\n00...\n.....\n\nfellr1\n#884400 #ff0\n.....\n...00\n...11\n...00\n.....\n\nfell0ghost\ntransparent\n\nsupported\ntransparent\n\nfellcant1\ntransparent\n\ncant1\ntransparent\n\ncant0\ntransparent\n\nfellcant0\ntransparent\n\ndead0a\ndarkred\n.....\n.0.0.\n.....\n.0.0.\n.....\n\ncursor0a\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\ncursor0b\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\n\n\ncursor2a\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\ncursor2b\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\none2mark\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2mark\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2mark\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none2\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0mark\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0mark\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0mark\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\nfour0\n#f00\n.0.0.\n.0.0.\n..00.\n...0.\n...0.\n\nfive0\n#f00\n.000.\n.0...\n.00..\n...0.\n.00..\n\nsix0\n#f00\n..00.\n.0...\n.00..\n.0.0.\n..0..\n\nseven0\n#f00\n.000.\n...0.\n...0.\n..0..\n..0..\n\ninf0\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\ninf0mark\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\n\ndecrement\ntransparent\n\nholding\ntransparent\n\nactiveb\n#f00\n.....\n.0.0.\n.....\n.....\n.....\n\nactive\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\nactivefell\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\npickeda0\ntransparent\n\npickedb0\ntransparent\n\npickeda2\ntransparent\n\npickedb2\ntransparent\n\nchosepink\n#ff22ff\n\nchosecyan\n#22ffff\n\npink\n#ff88ff\n\ncyan\n#88ffff\n\nplacemark\ntransparent\n\nactivecurse0\ntransparent\n\npartb\ntransparent\n\npartc\ntransparent\n\ncursor0mark\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\nwall2ghost\ntransparent\n\ncant2\ntransparent\n\nshowhere\ntransparent\n\nshowthis\ntransparent\n=======\nLEGEND\n=======\n\n` = Background\n& = Wall2 and wall1 and wall0\n# = Wall1\nX = Wall0\n+ = Wall0 and Wall1\nP = Player1 and active\n\nn = crate0 and crate1 and crate01\no = Crate1\n- = crate1 and crater1\n: = crate1 and crateu1\nL = crate1 and crater1 and crateu1\n0 = pit1\n! = crate0\n? = pit0\n/ = pit0 and pit1\n\n@ = one0 and pit0\nz = player1 and pit0\n\n| = black\n\n' = partb\n\" = partc\n\n~ = cursor2a\n_ = cursor2b\n\n1 = one0\n2 = two0\n3 = three0\n4 = four0\n5 = five0\n6 = six0\n7 = seven0\n8 = inf0\n\n[ = one2\n{ = two2\n] = three2\n> = wall2\nactiveab = active or activeb or activefell\npartbc = partb or partc\n\ny = target0\nu = Target1 and pit1\nt = Target1\nq = playertarget1\nr = player1\nb = cursor0a\nc = cursor0a and activecurse0\nk = cursor0b and activecurse0\ncurse0a = cursor0a or dead0a\ncurse0 = curse0a or cursor0b\ncurse2 = cursor2a or cursor2b\ncursor0 = cursor0a or cursor0b\n \nplayer = curse2 or activecurse0 or active or dead0a or activefell\ndead0 = dead0a\nx1 = player1 or crate1 or wall1 or target1 or playertarget1 or pit1\nx0 = crate0 or wall0 or pit0 or fell0\nxx = x0 or x1 or curse0\nx0ghost = crate0ghost or wall0ghost or pit0ghost or fell0ghost\ncratex1 = cratel1 or crater1 or crated1 or crateu1\nwallx2 = walll2 or wallr2 or walld2 or wallu2\nwallx1 = walll1 or wallr1 or walld1 or wallu1\nwallx0 = walll0 or wallr0 or walld0 or wallu0\nfellx1 = felll1 or fellr1 or felld1 or fellu1\npit0x = pit0l or pit0r or pit0d or pit0u\npit1x = pit1l or pit1r or pit1d or pit1u\ncrateorfell1 = crate1 or fell1\nplayerormark1 = player1 or player1mark\n\nx0mark = one0mark or two0mark or three0mark or cursor0mark or wall0mark or target0mark or crate0mark or inf0mark\nx1mark = player1mark or crate1mark or pit1mark or wall1mark or fell1mark or ded1mark or crate1mark or Target1mark or PlayerTarget1mark\nx2mark = one2mark or two2mark or three2mark\nxmark = x0mark or x1mark or x2mark\nnumber0 = one0 or two0 or three0 or four0 or five0 or six0 or seven0 or inf0\nnumber2 = one2 or two2 or three2\npicked = pickeda0 or pickedb0 or pickeda2 or pickedb2\n\npickable = player1 or pit1 or crate1 or number0 or wall1 or number2 or fell1 or ded1 or target0 or PlayerTarget1 or Target1\npickable2 = curse0a or pickable or wall0 or crate0 \n\nblackcorner = blackul or blackdl or blackur or blackdr\nrim0x = rim0l or rim0d or rim0u or rim0r\nrim1x = rim1l or rim1d or rim1u or rim1r \n=======\nSOUNDS\n=======\n\nSFX0 51304502\n\nsfx1 22108304\n\nSFX2 84700307\n\nSFX3 78571302\n\nSFX4 25131906\n\nSFX5 13408901\n\nSFX6 50704903\n\nSFX7 24622504\n\nSFX8 29744504\n\nSFX9 13344503\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\npink, chosepink\ncyan, chosecyan\n\n\nPit1,\npit1r\npit1l\npit1d\npit1u\npit0, pit0ghost\npit0r\npit0l\npit0d\npit0u\nblackul\nblackur\nblackdr\nblackdl\nTarget1, PlayerTarget1, target0\n\nfell1, ded1\nfelll1\nfellr1\nfelld1\nfellu1\n\ndead0a, fell0, fell0ghost\nrim0l \nrim0d \nrim0u \nrim0r\n\nrim1l \nrim1d \nrim1u \nrim1r \nPlayer1, Wall1, Crate1, \npit1mark\nfell1mark, ded1mark, target0mark\nTarget1mark, PlayerTarget1mark\nplayer1mark, crate1mark\nwall1mark\none0mark, two0mark, three0mark, wall0mark, inf0mark\none2mark, two2mark, three2mark\ncursor0mark, crate0mark\nnumber0, number2\ncratel1, walll1, \ncrater1, wallr1, \ncrated1, walld1, \ncrateu1, wallu1, \ncursor0, wall0, crate0, wall0ghost, crate0ghost\n walll0, cratel0\n wallr0, crater0\n walld0, crated0\n wallu0, crateu0\n crate01\n wall2, wall2ghost\n wallr2\n wallu2\n walll2\n walld2\n cursor2a, cursor2b\n \nfellcant1\nfellcant0\ncant0\ncant1\ncant2\nsupported\nactivefell\nactive, activeb\nactivecurse0\nholding\ndecrement\npickeda0, pickeda2\npickedb0, pickedb2\nplacemark\npartb partc\nshowthis\nshowhere\nblack\n\n======\nRULES\n======\n\n(Deal with action-----------------------------------------------------------------------------)\n\n[action activecurse0 curse0] -> [activecurse0 action curse0]\n\n(pick up ready icon)\ndown[action curse0a no holding pickable|number0] -> [curse0a holding pickable|number0 pickeda0] SFX9\ndown[action cursor0b no holding pickable|number0] -> [cursor0b holding pickable|number0 pickedb0] SFX9\ndown[action cursor2a no holding pickable2|number2] -> [cursor2a holding pickable2|number2 pickeda2] SFX9\ndown[action cursor2b no holding pickable2|number2] -> [cursor2b holding pickable2|number2 pickedb2] SFX9\n(switch to new ready icon)\ndown [action curse0a pickable| number0 no pickeda0][pickeda0] -> [curse0a pickable | number0 pickeda0][] SFX9\ndown [action cursor0b pickable| number0 no pickedb0][pickedb0] -> [cursor0b pickable | number0 pickedb0][] SFX9\ndown [action cursor2a pickable2| number2 no pickeda2][pickeda2] -> [cursor2a pickable2 | number2 pickeda2][] SFX9\ndown [action cursor2b pickable2| number2 no pickedb2][pickedb2] -> [cursor2b pickable2 | number2 pickedb2][] SFX9\n\n(put down ready icon)\ndown [action curse0 holding pickable| picked] -> [curse0 pickable|] SFX8\ndown [action cursor2a holding pickable2| pickeda2] -> [cursor2a pickable2|] SFX8\ndown [action cursor2b holding pickable2| pickedb2] -> [cursor2b pickable2|] SFX8\n\n(show mark)\nlate [xmark] -> []\nlate [showthis] -> []\nlate [showhere] -> []\n\nlate down [ | number0 pickeda0][curse0a] -> [showthis | number0 pickeda0][curse0a showhere]\nlate down [ | number0 pickedb0][cursor0b] -> [showthis | number0 pickedb0][cursor0b showhere]\nlate down [ | number2 pickeda2][cursor2a] -> [showthis | number2 pickeda2][cursor2a showhere]\nlate down [ | number2 pickedb2][cursor2b] -> [showthis | number2 pickedb2][cursor2b showhere]\nlate [showthis player1][showhere] -> [showthis player1][showhere player1mark]\nlate [showthis pit1][showhere] -> [showthis pit1][showhere pit1mark]\nlate [showthis crate1][showhere] -> [showthis crate1][showhere crate1mark]\nlate [showthis wall1][showhere] -> [showthis wall1][showhere wall1mark]\nlate [showthis one0][showhere] -> [showthis one0][showhere one0mark]\nlate [showthis two0][showhere] -> [showthis two0][showhere two0mark]\nlate [showthis three0][showhere] -> [showthis three0][showhere three0mark]\nlate [showthis one2][showhere] -> [showthis one2][showhere one2mark]\nlate [showthis two2][showhere] -> [showthis two2][showhere two2mark]\nlate [showthis three2][showhere] -> [showthis three2][showhere three2mark]\nlate [showthis wall0][showhere] -> [showthis wall0][showhere wall0mark]\nlate [showthis fell1][showhere] -> [showthis fell1][showhere fell1mark]\nlate [showthis ded1][showhere] -> [showthis ded1][showhere ded1mark]\nlate [showthis target0][showhere] -> [showthis target0][showhere target0mark]\nlate [showthis crate0][showhere] -> [showthis crate0][showhere crate0mark]\nlate [showthis cursor0][showhere] -> [showthis cursor0][showhere cursor0mark]\nlate [showthis inf0][showhere] -> [showthis inf0][showhere inf0mark]\nlate [showthis Target1][showhere] -> [showthis target1][showhere Target1mark]\nlate [showthis PlayerTarget1][showhere] -> [showthis PlayerTarget1][showhere PlayerTarget1mark]\n(connect cratemark)\nup [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crateu1 | crate1 crated1]\ndown [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crated1 | crate1 crateu1]\nleft [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark cratel1 | crate1 crater1]\nright [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crater1 | crate1 cratel1]\nup [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crateu1 | fell1 felld1]\ndown [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crated1 | fell1 fellu1]\nleft [action curse0 holding fell1mark no xx no number0 no number2| fell1] -> [action curse0 holding fell1mark cratel1 | fell1 fellr1]\nright [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crater1 | fell1 felll1]\n\n(place mark)\n[placemark] -> []\n\ndown [action curse0a holding xmark no x1 no number0][pickeda0 number0] -> [curse0a holding xmark placemark][pickeda0 decrement number0] SFX7\ndown [action cursor0b holding xmark no x1 no number0][pickedb0 number0] -> [cursor0b holding xmark placemark][pickedb0 decrement number0] SFX7\n\ndown [action cursor2a holding xmark no xx no number0 no number2][pickeda2 number2] -> [cursor2a holding xmark placemark][pickeda2 decrement number2] SFX7\ndown [action cursor2b holding xmark no xx no number0 no number2][pickedb2 number2] -> [cursor2b holding xmark placemark][pickedb2 decrement number2] SFX7\n\n\n\n[placemark player1mark] -> [placemark player1 player1mark]\n[placemark pit1mark] -> [placemark pit1 pit1mark]\n[placemark crate1mark] -> [placemark crate1 crate1mark]\n[placemark wall1mark] -> [placemark wall1 wall1mark]\n[placemark one0mark] -> [placemark one0 one0mark]\n[placemark two0mark] -> [placemark two0 two0mark]\n[placemark three0mark] -> [placemark three0 three0mark]\n[placemark one2mark] -> [placemark one2 one2mark]\n[placemark two2mark] -> [placemark two2 two2mark]\n[placemark three2mark] -> [placemark three2 three2mark]\n[placemark wall0mark] -> [placemark wall0 wall0mark]\n[placemark fell1mark] -> [placemark fell1 fell1mark]\n[placemark ded1mark] -> [placemark ded1 ded1mark]\n[placemark target0mark] -> [placemark target0 target0mark]\n[placemark crate0mark] -> [placemark crate0 crate0mark]\n[placemark Target1mark] -> [placemark target1 Target1mark]\n[placemark inf0mark] -> [placemark inf0 inf0mark]\n[placemark PlayerTarget1mark] -> [placemark playertarget1 PlayerTarget1mark]\ndown [placemark cursor0mark][curse0a|no one2] -> [ cursor0b cursor0mark][curse0a|]\n[placemark cursor0mark] -> [placemark cursor0a cursor0mark]\n\n(decrement number of placed item)\ndown [xmark holding cursor2a][pickable2|one2 decrement pickeda2] -> [xmark holding cursor2a][|one2 decrement pickeda2]\ndown [xmark holding cursor2b][pickable2|one2 decrement pickedb2] -> [xmark holding cursor2b][|one2 decrement pickedb2]\ndown [xmark holding curse0a][pickable|one0 decrement pickeda0] -> [xmark holding curse0a][|one0 decrement pickeda0]\ndown [xmark holding cursor0b][pickable|one0 decrement pickedb0] -> [xmark holding cursor0b][|one0 decrement pickedb0]\ndown [xmark holding cursor2a][|one2 decrement pickeda2] -> [cursor2a][|]\ndown [xmark holding cursor2b][|one2 decrement pickedb2] -> [cursor2b][|]\ndown [xmark holding cursor0a][|one0 decrement pickeda0] -> [cursor0a][|]\ndown [xmark holding cursor0b][|one0 decrement pickedb0] -> [cursor0b][|]\n[one0 decrement] -> []\n[two0 decrement] -> [one0]\n[three0 decrement] -> [two0]\n[four0 decrement] -> [three0]\n[five0 decrement] -> [four0]\n[six0 decrement] -> [five0]\n[seven0 decrement] -> [six0]\n[one2 decrement] -> []\n[two2 decrement] -> [one2]\n[three2 decrement] -> [two2]\n\n\n\n(player -> cursor)\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [player1 action active no wall0ghost no crate0ghost][partbc] -> [cursor0a player1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [ded1 action activefell no wall0ghost no crate0ghost][partbc] -> [cursor0a ded1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\n\n(cursor holding -> player)\ndown [action curse0a activecurse0 player1 holding xmark][| number0 pickeda0] -> [active player1][ | number0] SFX6\ndown [action curse0a activecurse0 ded1 holding xmark][| number0 pickeda0] -> [activefell ded1][ | number0] SFX6\ndown [action cursor0b activecurse0 player1 holding xmark][| number0 pickedb0] -> [active player1][ | number0] SFX6\ndown [action cursor0b activecurse0 ded1 holding xmark][| number0 pickedb0] -> [activefell ded1][ | number0] SFX6\n(empty cursor -> player)\n[action curse0 player1 activecurse0 no holding] -> [active player1] SFX6\n[action curse0 ded1 activecurse0 no holding] -> [activefell ded1] SFX6\n(red -> blue)\n[action cursor0a activecurse0 holding xmark][partc][pickeda0] -> [cursor0a cursor2a][partc][] SFX5\n[action cursor0a activecurse0 ][partc] -> [cursor0a cursor2a][partc] SFX5\n[action cursor0b activecurse0 holding xmark][partc][pickedb0] -> [cursor0b cursor2b][partc][] SFX5\n[action cursor0b activecurse0 ][partc] -> [cursor0b cursor2b][partc] SFX5\n(blue holding -> red)\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\nrandom down [action curse2 curse0 holding xmark][| number2 pickeda2] -> [activecurse0 cursor0a][ | number2] SFX6\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\n(empty blue -> red)\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\nrandom [action curse2 curse0 no holding] -> [activecurse0 cursor0a] SFX6\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\n\n\n[action player] -> SFX0\n[action curse0] -> SFX0\n\n(Aesthetic----------------------------------------------------------------------------------------)\n\n\n\n(ghosts)\n[player1 active][pit0] -> [player1 active][pit0ghost]\n[pit0ghost][cursor0] -> [pit0][cursor0]\n[player1 active][wall0] -> [player1 active][wall0ghost]\n[wall0ghost][cursor0] -> [wall0][cursor0]\n[player1 active][crate0] -> [player1 active][crate0ghost]\n[crate0ghost][cursor0] -> [crate0][cursor0]\n[player1 active][fell0] -> [player1 active][fell0ghost]\n[fell0ghost][cursor0] -> [fell0][cursor0]\n[curse0 activecurse0][wall2] -> [curse0 activecurse0][wall2ghost]\n[wall2ghost][curse2] -> [wall2][curse2]\n\n\n(wall boundaries)\n[wallx2] -> []\n[wallx1] -> []\n[wallx0] -> []\nup [wall2 | no wall2] -> [wall2 wallu2 | ]\ndown [wall2 | no wall2] -> [wall2 walld2 | ]\nleft [wall2 | no wall2] -> [wall2 walll2 | ]\nright [wall2 | no wall2] -> [wall2 wallr2 | ]\nup [wall1 | no wall1] -> [wall1 wallu1 | ]\ndown [wall1 | no wall1] -> [wall1 walld1 | ]\nleft [wall1 | no wall1] -> [wall1 walll1 | ]\nright [wall1 | no wall1] -> [wall1 wallr1 | ]\nup [wall0 | no wall0] -> [wall0 wallu0 | ]\ndown [wall0 | no wall0] -> [wall0 walld0 | ]\nleft [wall0 | no wall0] -> [wall0 walll0 | ]\nright [wall0 | no wall0] -> [wall0 wallr0 | ]\n\n(crate connectors)\nup [crateu0|] -> [crateu0 | crated0]\nright [crater0|] -> [crater0 | cratel0]\nup [crateu1|] -> [crateu1 | crated1]\nright [crater1|] -> [crater1 | cratel1]\n(pit connectors)\n[blackcorner] -> []\n[pit0x] -> [] \n[pit1x] -> [] \nup [pit1 | pit1] -> [pit1u pit1|pit1d pit1]\nright [pit1 | pit1] -> [pit1r pit1|pit1l pit1]\nup [pit0 | pit0] -> [pit0u pit0|pit0d pit0]\nright [pit0 | pit0] -> [pit0r pit0|pit0l pit0]\n[pit1u pit1r] -> [pit1u pit1r blackur]\n[pit1u pit1l] -> [pit1u pit1l blackul]\n[pit1d pit1r] -> [pit1d pit1r blackdr]\n[pit1d pit1l] -> [pit1d pit1l blackdl]\n[pit0u pit0r] -> [pit0u pit0r blackur]\n[pit0u pit0l] -> [pit0u pit0l blackul]\n[pit0d pit0r] -> [pit0d pit0r blackdr]\n[pit0d pit0l] -> [pit0d pit0l blackdl]\n[rim1x] -> []\n[rim0x] -> []\nup[pit0|no pit0] -> [pit0 rim0u|]\ndown[pit0|no pit0] -> [pit0 rim0d|]\nleft[pit0|no pit0] -> [pit0 rim0l|]\nright[pit0|no pit0] -> [pit0 rim0r|]\nup[pit1|no pit1] -> [pit1 rim1u|]\ndown[pit1|no pit1] -> [pit1 rim1d|]\nleft[pit1|no pit1] -> [pit1 rim1l|]\nright[pit1|no pit1] -> [pit1 rim1r|]\nlate [pink] -> []\nlate [cyan] -> []\nlate [chosepink] -> []\nlate [chosecyan] -> []\nlate down [pickable |number0] -> [pickable pink | number0 pink]\nlate down [pickable2 |number2] -> [pickable2 cyan | number2 cyan]\nlate up [pink picked|pink] -> [chosepink picked|chosepink ]\nlate up [cyan picked|cyan ] -> [chosecyan picked|chosecyan ]\n\n(Movement----------------------------------------------------------------------------------------)\n\n(move attached items)\n[moving activecurse0 curse0] -> [moving activecurse0 moving curse0]\n[moving active player1] -> [moving active moving player1]\n[moving activefell ded1] -> [moving activefell moving ded1]\n[moving curse0 holding] -> [moving curse0 moving holding]\n[moving curse2 holding] -> [moving curse2 moving holding]\n\n(reset and propogate cant)\n[cant0] -> []\n[cant1] -> []\n[cant2] -> []\n[fellcant0] -> []\n[fellcant1] -> []\n\n[black no cant0 no cant1 no cant2] -> [black cant0 cant1 cant2]\n[wall2 no cant2] -> [wall2 cant2]\n[wall1 no cant1] -> [wall1 cant1]\n[wall0 no cant0] -> [wall0 cant0]\n[number0] -> [number0 cant1]\n[number2] -> [number2 cant1]\n[no pit1 no fellcant1] -> [fellcant1]\n[no pit0 no fellcant0] -> [fellcant0]\n\n[> ded1][fell1|fellcant1] -> [> ded1][fell1 fellcant1 | fellcant1]\n+ [> ded1][ded1|fellcant1] -> [> ded1][ded1 fellcant1 | fellcant1]\n+ up[fellu1|fellcant1] -> [fellu1 fellcant1 | fellcant1]\n+ left[felll1|fellcant1] -> [felll1 fellcant1 | fellcant1]\n+ down[felld1|fellcant1] -> [felld1 fellcant1 | fellcant1]\n+ right[fellr1|fellcant1] -> [fellr1 fellcant1 | fellcant1]\n\n+ [> player1][crate1|cant1] -> [> player1][crate1 cant1 | cant1]\n+ [> player1][player1|cant1] -> [> player1][player1 cant1 | cant1]\n+ up[crateu1|cant1] -> [crateu1 cant1 | cant1]\n+ left[cratel1|cant1] -> [cratel1 cant1 | cant1]\n+ down[crated1|cant1] -> [crated1 cant1 | cant1]\n+ right[crater1|cant1] -> [crater1 cant1 | cant1]\n+ [crate1 crate0 cant0] -> [crate1 crate0 cant0 cant1]\n+ [crate1 crate0 cant1] -> [crate1 crate0 cant0 cant1]\n+ [> dead0][dead0|fellcant0] -> [> dead0][dead0 fellcant0 | fellcant0]\n+ [> cursor0][cursor0|cant0] -> [> cursor0][cursor0 cant0 | cant0]\n+ [> cursor0][crate0 | number0] -> [> cursor0][crate0 cant0| number0]\n+ [> cursor0][crate0|cant0] -> [> cursor0][crate0 cant0 | cant0]\n+ up[crateu0|cant0] -> [crateu0 cant0 | cant0]\n+ left[cratel0|cant0] -> [cratel0 cant0 | cant0]\n+ down[crated0|cant0] -> [crated0 cant0 | cant0]\n+ right[crater0|cant0] -> [crater0 cant0 | cant0]\n\n[> curse2 | wall2] -> [stationary curse2 | wall2]\n[> curse2 | black] -> [stationary curse2 | black]\n[cursor0 cant0] -> [stationary cursor0 cant0]\n[player1 cant1] -> [stationary player1 cant1]\n[ded1 fellcant1] -> [stationary ded1 fellcant1]\n[dead0 fellcant0] -> [stationary dead0 fellcant0]\n\n\n(propagate movement)\n\n[ > Ded1 | Fell1 no fellcant1] -> [ > Ded1 | > Fell1 ]\n\n[ > Cursor0 | Crate0 ] -> [ > Cursor0 | > Crate0 ]\n+ [ > Cursor0 | Cursor0 ] -> [ > Cursor0 | > Cursor0 ]\n+ [ > Crate0 | Crate0 ] -> [ > Crate0 | > Crate0 ]\n\n+ [ > Player1 | Crate1 ] -> [ > Player1 | > Crate1 ]\n+ [ > Player1 | Player1] -> [ > Player1 | > Player1 ]\n+ [ > Crate1 | Player1 ] -> [ > Crate1 | > Player1 ]\n+ [> crate1|crate1] -> [> crate1 | > crate1]\n+ up[moving crate1 crateu1|crate1] -> [moving crate1 crateu1 | moving crate1]\n+ left[moving crate1 cratel1|crate1] -> [moving crate1 cratel1 | moving crate1]\n+ down[moving crate1 crated1|crate1] -> [moving crate1 crated1 | moving crate1]\n+ right[moving crate1 crater1|crate1] -> [moving crate1 crater1 | moving crate1]\n \n\n[> fell1|fell1] -> [> fell1 | > fell1]\n+ up[moving fell1 fellu1|fell1] -> [moving fell1 fellu1 | moving fell1]\n+ left[moving fell1 felll1|fell1] -> [moving fell1 felll1 | moving fell1]\n+ down[moving fell1 felld1|fell1] -> [moving fell1 felld1 | moving fell1]\n+ right[moving fell1 fellr1|fell1] -> [moving fell1 fellr1 | moving fell1]\n\n[moving crate1 cratex1] -> [moving crate1 moving cratex1]\n[moving fell1 fellx1] -> [moving fell1 moving fellx1]\n[moving crate1 crate0ghost] -> [moving crate1 moving crate0ghost]\n\n[active stationary player1] -> [stationary active stationary player1]\n[activecurse0 stationary curse0] -> [stationary activecurse0 stationary curse0]\n[activefell stationary ded1] -> [stationary activefell stationary ded1]\n[stationary cursor0 activecurse0 holding] -> [stationary cursor0 activecurse0 stationary holding]\n[stationary curse2 holding] -> [stationary curse2 stationary holding]\n\n\n(falling)\nlate [supported] -> []\n\nlate [crate1 ded1] -> [crate1 supported ded1]\nlate [crate1 no pit1] -> [crate1 supported]\nlate [crate1 fell1] -> [crate1 fell1 supported]\n\n\nlate up[crateu1|supported] -> [crateu1 supported | supported]\n+ late left[cratel1|supported] -> [cratel1 supported | supported]\n+ late down[crated1|supported] -> [crated1 supported | supported]\n+ late right[crater1|supported] -> [crater1 supported | supported]\n\n\nlate [cursor0 pit0 no fell0] -> [pit0 dead0a]SFX3\nlate [player1 active pit1 no fell1 no ded1] -> [pit1 ded1 activefell]SFX3\nlate [player1 pit1 no fell1 no ded1] -> [pit1 ded1 ]SFX3\nlate [crate0 pit0 no supported] -> [pit0 fell0]SFX3\nlate [crate1 pit1 no supported] -> [pit1 fell1] SFX3\n\n\n\nlate [crateu1 no crate1 fell1] -> [fellu1 fell1]\nlate [cratel1 no crate1 fell1] -> [felll1 fell1]\nlate [crater1 no crate1 fell1] -> [fellr1 fell1]\nlate [crated1 no crate1 fell1] -> [felld1 fell1]\n\nlate [crateu1 no crate1] -> []\nlate [cratel1 no crate1] -> []\nlate [crater1 no crate1] -> []\nlate [crated1 no crate1] -> []\nlate up [crateu1 |no crate1] -> [|]\nlate left [cratel1 |no crate1] -> [|]\nlate right [crater1 |no crate1] -> [|]\nlate down [crated1 |no crate1] -> [|]\nlate [player1 ded1] -> [player1 ded1] SFX0\nlate [player1 ded1] -> cancel \n\n[moving crate0] -> SFX2\n[moving crate1] -> SFX2\n\n==============\nWINCONDITIONS\n==============\n\n\nAll target0 on crate0\nAll Target1 on Crateorfell1\nAll PlayerTarget1 on Playerormark1\nno Cursor0 on target1\nno cursor0 on PlayerTarget1\n\n=======\nLEVELS\n=======\n\nmessage Book 1: BASE\n\nmessage Page 1.1: GOAL\n\n#######\n#`````#\n#`p`t`#\n#`````#\n#`o`q`#\n#`````#\n#######\n\nmessage Page 1.2: TOOL\n\n#######\n#`t`o`#\n#t`-:`#\n#``tlo#\n#p````#\n#######\n\nmessage Page 1.3: HOLE\n\n########\n##``0`##\n#```0``#\n#``o0`t#\n#po:0``#\n#``:0`t#\n#```0``#\n##``0`##\n########\n\nmessage Page 1.4: FALL\n\n########\n#00u``0#\n#00po`0#\n#`000`0#\n#`00```#\n#`000``#\n#`000``#\n########\n\nmessage Book 2: EDIT\n\nmessage Page 2.1: MINI\n\n||||||||||\n|```````'|\n|`######`|\n|`#````#`|\n|`#``t`#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 2.2: FORM\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 2.3: PLUG\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#ro`o`#`|\n|`#####`#`|\n|`###`o`#`|\n|`#``oLo#`|\n|`#````##`|\n|`#`q####`|\n|`#######`|\n|`````````|\n|``c`0````|\n|````8````|\n|`````````|\n|||||||||||\n\nmessage Page 2.4: TRAP\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#``````#`|\n|`#``t```#`|\n|`#`tqt``#`|\n|`#``t```#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````16````|\n|``````````|\n||||||||||||\n\nmessage Book 3: DUAL\n\nmessage Page 3.1: CO-OP\n\n#######\n####qq#\n#po000#\n#`o000#\n###o``#\n###r`'#\n#######\n\nmessage Page 3.2: REST\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#`r00q#`|\n|`#######`|\n|`````````|\n|``c`o````|\n|````2````|\n|`````````|\n|||||||||||\nmessage Page 3.3: SAIL\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#0000q#`|\n|`#00000#`|\n|`#00000#`|\n|`#```00#`|\n|`#```00#`|\n|`#######`|\n|`````````|\n|``c`ro```|\n|````23```|\n|`````````|\n|||||||||||\n\nmessage Page 3.4: TWIN\n\n|||||||||||||||||||||\n|`````````+````````'|\n|`#######`+`#######`|\n|`#`````#`+`#`````#`|\n|`#```q`#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`q```#`|\n|`#`````#`+`#`````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````6````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Book 4: WHAT\n\nmessage Page 4.1: GUIS\n\n\n#######\n#q#``'#\n#``8#`#\n#`#p#`#\n#`#o#`#\n#`#1``#\n#######\n\nmessage Page 4.2: IDEA\n\n||||||||||\n|```````'|\n|`######`|\n|`#```t#`|\n|`#```t#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```31```|\n|````````|\n||||||||||\n\nmessage Page 4.3: FILL\n\n\n######\n#0poq#\n#0`70#\n#'000#\n#0000#\n######\n\nmessage Page 4.4: A LOT\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|``````'|\n|`c3o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Book 5: UHHH\n\nmessage Page 5.1: WALL\n\n||||||||||\n|```````'|\n|`######`|\n|`#t`#`#`|\n|`#````#`|\n|`##`o`#`|\n|x+xxxx+x|\n|`#````#`|\n|`#````#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 5.2: SAFE\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#xxxxx#`|\n|`#x```x#`|\n|`#x`t`x#`|\n|`#x```x#`|\n|`#xxxxx#`|\n|`#######`|\n|`````````|\n|`c`o1r```|\n|```111```|\n|`````````|\n|||||||||||\n\nmessage Page 5.3: LOCK\n\n|||||||||||||\n|o```'`xxxcx|\n|1``x```qx!x|\n|`1!````qx`x|\n|``1?x`xxx?x|\n|r``1````!`x|\n|````2`xxxxx|\n|||||||||||||\n\n\n\nmessage Page 5.4: POST\n\n+++++++++\n+p#```#q+\n+`#``'#3+\n+`#`1`#`+\n+`#`2`#`+\n+`#```#`+\n+`#```#`+\n+++++++++\nmessage Book 6: BLUE\n\nmessage Page 6.1: META\n\n||||||||||||\n|++++++++++|\n|+````\"```+|\n|+`######`+|\n|+`#````#`+|\n|+`#``t`#`+|\n|+`#````#`+|\n|+`######`+|\n|+````````+|\n|+```ro```+|\n|+````````+|\n|+````````+|\n|++++++++++|\n|``````````|\n|``~`1b````|\n|````{[````|\n|``````````|\n||||||||||||\n\nmessage Page 6.2: WILD\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`#######`+|\n|+`#0000q#`+|\n|+`#00000#`+|\n|+`#`0000#`+|\n|+`#`0000#`+|\n|+`#```00#`+|\n|+`#######`+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\nmessage Page 6.3: UH OH\n\n|||||||||||\n|+++++++++|\n|+``````\"+|\n|+`+++++`+|\n|+`+```+`+|\n|+`+`t`+`+|\n|+`+```+`+|\n|+`+```+`+|\n|+`+++++`+|\n|+```````+|\n|+```o```+|\n|+```````+|\n|+```````+|\n|+++++++++|\n|`````````|\n|`````````|\n|`~`1br```|\n|```][[```|\n|`````````|\n|||||||||||\n\nmessage Page 6.4: VARY\n\n|||||||||||||||||||||||\n|++++++++++&++++++++++|\n|+``````\"`x&x````````+|\n|+`######`x&x`######`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`#`qt`#`x&x`#`tq`#`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`######`x&x`######`+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|++++++++++&++++++++++|\n|``````````&``````````|\n|`~`r1ob```&`_`r1ob```|\n|```[{[[```&```[[[[```|\n|``````````&``````````|\n|||||||||||||||||||||||\n\nmessage Book 7: ?!?!\n\nmessage Page 7.1: EACH\n\n+++++++\n+````'+\n+`###`+\n+`#q#`+\n+`#0#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`###`+\n+`````+\n+``c``+\n+`r0o`+\n+``4``+\n+`````+\n+++++++\n\nmessage Page 7.2: HOLD\n\n&&&&&&&&&\n&`8```+`&\n&`{po`+`&\n&`\"```+t&\n&&&&&&&&&\n\nmessage Page 7.3: TRIP\n\n&&&&&&&\n&```\"`&\n&`o`!`&\n&`````&\n&+++++&\n&`r2b`&\n&`[[{~&\n&y```t&\n&&&&&&&\n\nmessage Page 7.4: PLAN\n\n\n|||||||||\n|```t```|\n|```````|\n|+++++++|\n|```````|\n|```````|\n|>>>>>>>|\n|```````|\n|```````|\n|+++++++|\n|```~```|\n|[[`2\"11|\n|[[`[`[[|\n|&&`&&&&|\n|&&bor&&|\n|||||||||\n\n\n\n\n\nmessage Book 8: (RE)STAR(TS)\n\n\nmessage Page 8.1: (IN)FORM(ED)\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 8.2: (EN)TWIN(ED)\n\n|||||||||||||||||||||\n|`````````+`````````|\n|`#######`+`#######`|\n|`#````q#`+`#`````#`|\n|`#`````#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`````#`|\n|`#`````#`+`#q````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````5````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Page 8.3: (ZE)ALOT(RY)\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|```````|\n|`c2o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Page 8.4: (BE)WILD(ER)\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`+++++++`+|\n|+`+0000q+`+|\n|+`+00000+`+|\n|+`+00000+`+|\n|+`+`0000+`+|\n|+`+```00+`+|\n|+`+++++++`+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",[0,3,0,3,2,1,1,2,2,3,0,1,0,3,3,1,2,2,2,2,3,0,0,1,0,0,3,3,0,2,2,0,3,1,0,2,2,2,1,1,1,2],"background cant1 fellcant0 fellcant1 wall1:0,0,background cant1 fellcant0 fellcant1 wall1 wallr1:1,1,1,1,1,0,\n0,0,background cant1 fellcant0 fellcant1 wall1 walld1 wallr1:2,background fellcant0 fellcant1:3,3,3,3,3,\nbackground cant1 fellcant0 fellcant1 wall1 wallr1 wallu1:4,0,background cant1 fellcant0 fellcant1 wall1 walld1:5,3,3,3,3,3,\n3,3,background cant1 fellcant0 fellcant1 wall1 wallu1:6,5,3,3,3,3,\n3,3,3,6,5,background fellcant0 pit1 pit1d rim1l rim1r rim1u:7,background fellcant0 pit1 pit1d pit1u rim1l rim1r:8,8,\n8,8,activefell background ded1 fellcant0 pit1 pit1d pit1u rim1l rim1r:9,background fell1 fellcant0 pit1 pit1u rim1d rim1l rim1r:10,6,5,3,background crate1 crated1 fellcant0 fellcant1 supported:11,\nbackground crate1 crated1 crateu1 fellcant0 fellcant1 supported:12,background crate1 crateu1 fellcant0 fellcant1 supported:13,3,3,3,6,0,background cant1 fellcant0 fellcant1 wall1 walld1 walll1:14,\n3,background fellcant0 fellcant1 target1:15,3,15,3,background cant1 fellcant0 fellcant1 wall1 walll1 wallu1:16,0,0,\n0,background cant1 fellcant0 fellcant1 wall1 walll1:17,17,17,17,17,0,0,\n",6,"1642084928380.6565"] -], -[ - "VEXT EDIT B", - ["title VEXT EDIT\nauthor JACK\n\nrun_rules_on_level_start\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\n#eeeeee\n\nPlayerTarget1mark\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1mark\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nPlayerTarget1\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0Mark\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nWall0 \n#884400 #f00\n00000\n00000\n00000\n00000\n00000\n\nwalll0 \nBrown #f00\n1....\n1....\n1....\n1....\n1....\n\nWallr0 \nBrown #f00\n....1\n....1\n....1\n....1\n....1\n\nWalld0 \nBrown #f00\n.....\n.....\n.....\n.....\n11111\n\nWallu0 \nBrown #f00\n11111\n.....\n.....\n.....\n.....\n\nBlack\nblack\n\nwall0ghost\ntransparent\n\nWall0Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1 \n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall2\n#884400 #00f\n00000\n00000\n00000\n00000\n00000\n\nwalll2\nBrown #00f\n1....\n1....\n1....\n1....\n1....\n\nWallr2 \nBrown #00f\n....1\n....1\n....1\n....1\n....1\n\nWalld2 \nBrown #00f\n.....\n.....\n.....\n.....\n11111\n\nWallu2 \nBrown #00f\n11111\n.....\n.....\n.....\n.....\n\nwalll1 \nBrown #ff0\n1....\n1....\n1....\n1....\n1....\n\nWallr1 \nBrown #ff0\n....1\n....1\n....1\n....1\n....1\n\nWalld1 \nBrown #ff0\n.....\n.....\n.....\n.....\n11111\n\nWallu1 \nBrown #ff0\n11111\n.....\n.....\n.....\n.....\n\nCrate1Mark\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate1\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate01\ntransparent\n\nCrate0\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate0mark\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\ncrate0ghost\ntransparent\n\nPlayer1Mark\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nPlayer1\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nDed1Mark\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nDed1\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nCrated0\n#f80 #f00\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu0\n#f80 #f00\n.010.\n.010.\n.....\n.....\n.....\n\nCratel0\n#f80 #f00\n.....\n00...\n11...\n00...\n.....\n\nCrater0\n#f80 #f00\n.....\n...00\n...11\n...00\n.....\n\nCrated1\n#f80 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu1\n#f80 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nCratel1\n#f80 #ff0\n.....\n00...\n11...\n00...\n.....\n\nCrater1\n#f80 #ff0\n.....\n...00\n...11\n...00\n.....\n\n\nPit1Mark\nblack #bbbb00 white\n.111.\n10001\n10001\n10001\n.111.\n\n\nPit1\nblack #bbbb00 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\npit0ghost\ntransparent\n\nPit0\nblack #bb0000 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\n\npit0u\nblack #bb0000\n10001\n.....\n.....\n.....\n.....\n\npit0d\nblack #bb0000\n.....\n.....\n.....\n.....\n10001\n\npit0l\nblack #bb0000\n1....\n0....\n0....\n0....\n1....\n\npit0r\nblack #bb0000\n....1\n....0\n....0\n....0\n....1\n\npit1u\nblack #bbbb00\n10001\n.....\n.....\n.....\n.....\n\npit1d\nblack #bbbb00\n.....\n.....\n.....\n.....\n10001\n\npit1l\nblack #bbbb00\n1....\n0....\n0....\n0....\n1....\n\npit1r\nblack #bbbb00\n....1\n....0\n....0\n....0\n....1\n\nrim0u\n#b00\n.000.\n.....\n.....\n.....\n.....\n\nrim0l\n#b00\n.....\n0....\n0....\n0....\n.....\n\nrim0r\n#b00\n.....\n....0\n....0\n....0\n.....\n\nrim0d\n#b00\n.....\n.....\n.....\n.....\n.000.\n\nrim1u\n#bb0\n.000.\n.....\n.....\n.....\n.....\n\nrim1l\n#bb0\n.....\n0....\n0....\n0....\n.....\n\nrim1r\n#bb0\n.....\n....0\n....0\n....0\n.....\n\nrim1d\n#bb0\n.....\n.....\n.....\n.....\n.000.\n\nblackul\nblack\n0....\n.....\n.....\n.....\n.....\n\nblackur\nblack\n....0\n.....\n.....\n.....\n.....\n\nblackdl\nblack\n.....\n.....\n.....\n.....\n0....\n\nblackdr\nblack\n.....\n.....\n.....\n.....\n....0\n\nfell0\n#884400 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1mark\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfelld1\n#884400 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nfellu1\n#884400 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nfelll1\n#884400 #ff0\n.....\n00...\n11...\n00...\n.....\n\nfellr1\n#884400 #ff0\n.....\n...00\n...11\n...00\n.....\n\nfell0ghost\ntransparent\n\nsupported\ntransparent\n\nfellcant1\ntransparent\n\ncant1\ntransparent\n\ncant0\ntransparent\n\nfellcant0\ntransparent\n\ndead0a\ndarkred\n.....\n.0.0.\n.....\n.0.0.\n.....\n\ncursor0a\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\ncursor0b\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\n\n\ncursor2a\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\ncursor2b\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\none2mark\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2mark\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2mark\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none2\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0mark\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0mark\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0mark\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\nfour0\n#f00\n.0.0.\n.0.0.\n..00.\n...0.\n...0.\n\nfive0\n#f00\n.000.\n.0...\n.00..\n...0.\n.00..\n\nsix0\n#f00\n..00.\n.0...\n.00..\n.0.0.\n..0..\n\nseven0\n#f00\n.000.\n...0.\n...0.\n..0..\n..0..\n\ninf0\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\ninf0mark\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\n\ndecrement\ntransparent\n\nholding\ntransparent\n\nactiveb\n#f00\n.....\n.0.0.\n.....\n.....\n.....\n\nactive\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\nactivefell\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\npickeda0\ntransparent\n\npickedb0\ntransparent\n\npickeda2\ntransparent\n\npickedb2\ntransparent\n\nchosepink\n#ff22ff\n\nchosecyan\n#22ffff\n\npink\n#ff88ff\n\ncyan\n#88ffff\n\nplacemark\ntransparent\n\nactivecurse0\ntransparent\n\npartb\ntransparent\n\npartc\ntransparent\n\ncursor0mark\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\nwall2ghost\ntransparent\n\ncant2\ntransparent\n\nshowhere\ntransparent\n\nshowthis\ntransparent\n=======\nLEGEND\n=======\n\n` = Background\n& = Wall2 and wall1 and wall0\n# = Wall1\nX = Wall0\n+ = Wall0 and Wall1\nP = Player1 and active\n\nn = crate0 and crate1 and crate01\no = Crate1\n- = crate1 and crater1\n: = crate1 and crateu1\nL = crate1 and crater1 and crateu1\n0 = pit1\n! = crate0\n? = pit0\n/ = pit0 and pit1\n\n@ = one0 and pit0\nz = player1 and pit0\n\n| = black\n\n' = partb\n\" = partc\n\n~ = cursor2a\n_ = cursor2b\n\n1 = one0\n2 = two0\n3 = three0\n4 = four0\n5 = five0\n6 = six0\n7 = seven0\n8 = inf0\n\n[ = one2\n{ = two2\n] = three2\n> = wall2\nactiveab = active or activeb or activefell\npartbc = partb or partc\n\ny = target0\nu = Target1 and pit1\nt = Target1\nq = playertarget1\nr = player1\nb = cursor0a\nc = cursor0a and activecurse0\nk = cursor0b and activecurse0\ncurse0a = cursor0a or dead0a\ncurse0 = curse0a or cursor0b\ncurse2 = cursor2a or cursor2b\ncursor0 = cursor0a or cursor0b\n \nplayer = curse2 or activecurse0 or active or dead0a or activefell\ndead0 = dead0a\nx1 = player1 or crate1 or wall1 or target1 or playertarget1 or pit1\nx0 = crate0 or wall0 or pit0 or fell0\nxx = x0 or x1 or curse0\nx0ghost = crate0ghost or wall0ghost or pit0ghost or fell0ghost\ncratex1 = cratel1 or crater1 or crated1 or crateu1\nwallx2 = walll2 or wallr2 or walld2 or wallu2\nwallx1 = walll1 or wallr1 or walld1 or wallu1\nwallx0 = walll0 or wallr0 or walld0 or wallu0\nfellx1 = felll1 or fellr1 or felld1 or fellu1\npit0x = pit0l or pit0r or pit0d or pit0u\npit1x = pit1l or pit1r or pit1d or pit1u\ncrateorfell1 = crate1 or fell1\nplayerormark1 = player1 or player1mark\n\nx0mark = one0mark or two0mark or three0mark or cursor0mark or wall0mark or target0mark or crate0mark or inf0mark\nx1mark = player1mark or crate1mark or pit1mark or wall1mark or fell1mark or ded1mark or crate1mark or Target1mark or PlayerTarget1mark\nx2mark = one2mark or two2mark or three2mark\nxmark = x0mark or x1mark or x2mark\nnumber0 = one0 or two0 or three0 or four0 or five0 or six0 or seven0 or inf0\nnumber2 = one2 or two2 or three2\npicked = pickeda0 or pickedb0 or pickeda2 or pickedb2\n\npickable = player1 or pit1 or crate1 or number0 or wall1 or number2 or fell1 or ded1 or target0 or PlayerTarget1 or Target1\npickable2 = curse0a or pickable or wall0 or crate0 \n\nblackcorner = blackul or blackdl or blackur or blackdr\nrim0x = rim0l or rim0d or rim0u or rim0r\nrim1x = rim1l or rim1d or rim1u or rim1r \n=======\nSOUNDS\n=======\n\nSFX0 51304502\n\nsfx1 22108304\n\nSFX2 84700307\n\nSFX3 78571302\n\nSFX4 25131906\n\nSFX5 13408901\n\nSFX6 50704903\n\nSFX7 24622504\n\nSFX8 29744504\n\nSFX9 13344503\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\npink, chosepink\ncyan, chosecyan\n\n\nPit1,\npit1r\npit1l\npit1d\npit1u\npit0, pit0ghost\npit0r\npit0l\npit0d\npit0u\nblackul\nblackur\nblackdr\nblackdl\nTarget1, PlayerTarget1, target0\n\nfell1, ded1\nfelll1\nfellr1\nfelld1\nfellu1\n\ndead0a, fell0, fell0ghost\nrim0l \nrim0d \nrim0u \nrim0r\n\nrim1l \nrim1d \nrim1u \nrim1r \nPlayer1, Wall1, Crate1, \npit1mark\nfell1mark, ded1mark, target0mark\nTarget1mark, PlayerTarget1mark\nplayer1mark, crate1mark\nwall1mark\none0mark, two0mark, three0mark, wall0mark, inf0mark\none2mark, two2mark, three2mark\ncursor0mark, crate0mark\nnumber0, number2\ncratel1, walll1, \ncrater1, wallr1, \ncrated1, walld1, \ncrateu1, wallu1, \ncursor0, wall0, crate0, wall0ghost, crate0ghost\n walll0, cratel0\n wallr0, crater0\n walld0, crated0\n wallu0, crateu0\n crate01\n wall2, wall2ghost\n wallr2\n wallu2\n walll2\n walld2\n cursor2a, cursor2b\n \nfellcant1\nfellcant0\ncant0\ncant1\ncant2\nsupported\nactivefell\nactive, activeb\nactivecurse0\nholding\ndecrement\npickeda0, pickeda2\npickedb0, pickedb2\nplacemark\npartb partc\nshowthis\nshowhere\nblack\n\n======\nRULES\n======\n\n(Deal with action-----------------------------------------------------------------------------)\n\n[action activecurse0 curse0] -> [activecurse0 action curse0]\n\n(pick up ready icon)\ndown[action curse0a no holding pickable|number0] -> [curse0a holding pickable|number0 pickeda0] SFX9\ndown[action cursor0b no holding pickable|number0] -> [cursor0b holding pickable|number0 pickedb0] SFX9\ndown[action cursor2a no holding pickable2|number2] -> [cursor2a holding pickable2|number2 pickeda2] SFX9\ndown[action cursor2b no holding pickable2|number2] -> [cursor2b holding pickable2|number2 pickedb2] SFX9\n(switch to new ready icon)\ndown [action curse0a pickable| number0 no pickeda0][pickeda0] -> [curse0a pickable | number0 pickeda0][] SFX9\ndown [action cursor0b pickable| number0 no pickedb0][pickedb0] -> [cursor0b pickable | number0 pickedb0][] SFX9\ndown [action cursor2a pickable2| number2 no pickeda2][pickeda2] -> [cursor2a pickable2 | number2 pickeda2][] SFX9\ndown [action cursor2b pickable2| number2 no pickedb2][pickedb2] -> [cursor2b pickable2 | number2 pickedb2][] SFX9\n\n(put down ready icon)\ndown [action curse0 holding pickable| picked] -> [curse0 pickable|] SFX8\ndown [action cursor2a holding pickable2| pickeda2] -> [cursor2a pickable2|] SFX8\ndown [action cursor2b holding pickable2| pickedb2] -> [cursor2b pickable2|] SFX8\n\n(show mark)\nlate [xmark] -> []\nlate [showthis] -> []\nlate [showhere] -> []\n\nlate down [ | number0 pickeda0][curse0a] -> [showthis | number0 pickeda0][curse0a showhere]\nlate down [ | number0 pickedb0][cursor0b] -> [showthis | number0 pickedb0][cursor0b showhere]\nlate down [ | number2 pickeda2][cursor2a] -> [showthis | number2 pickeda2][cursor2a showhere]\nlate down [ | number2 pickedb2][cursor2b] -> [showthis | number2 pickedb2][cursor2b showhere]\nlate [showthis player1][showhere] -> [showthis player1][showhere player1mark]\nlate [showthis pit1][showhere] -> [showthis pit1][showhere pit1mark]\nlate [showthis crate1][showhere] -> [showthis crate1][showhere crate1mark]\nlate [showthis wall1][showhere] -> [showthis wall1][showhere wall1mark]\nlate [showthis one0][showhere] -> [showthis one0][showhere one0mark]\nlate [showthis two0][showhere] -> [showthis two0][showhere two0mark]\nlate [showthis three0][showhere] -> [showthis three0][showhere three0mark]\nlate [showthis one2][showhere] -> [showthis one2][showhere one2mark]\nlate [showthis two2][showhere] -> [showthis two2][showhere two2mark]\nlate [showthis three2][showhere] -> [showthis three2][showhere three2mark]\nlate [showthis wall0][showhere] -> [showthis wall0][showhere wall0mark]\nlate [showthis fell1][showhere] -> [showthis fell1][showhere fell1mark]\nlate [showthis ded1][showhere] -> [showthis ded1][showhere ded1mark]\nlate [showthis target0][showhere] -> [showthis target0][showhere target0mark]\nlate [showthis crate0][showhere] -> [showthis crate0][showhere crate0mark]\nlate [showthis cursor0][showhere] -> [showthis cursor0][showhere cursor0mark]\nlate [showthis inf0][showhere] -> [showthis inf0][showhere inf0mark]\nlate [showthis Target1][showhere] -> [showthis target1][showhere Target1mark]\nlate [showthis PlayerTarget1][showhere] -> [showthis PlayerTarget1][showhere PlayerTarget1mark]\n(connect cratemark)\nup [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crateu1 | crate1 crated1]\ndown [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crated1 | crate1 crateu1]\nleft [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark cratel1 | crate1 crater1]\nright [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crater1 | crate1 cratel1]\nup [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crateu1 | fell1 felld1]\ndown [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crated1 | fell1 fellu1]\nleft [action curse0 holding fell1mark no xx no number0 no number2| fell1] -> [action curse0 holding fell1mark cratel1 | fell1 fellr1]\nright [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crater1 | fell1 felll1]\n\n(place mark)\n[placemark] -> []\n\ndown [action curse0a holding xmark no x1 no number0][pickeda0 number0] -> [curse0a holding xmark placemark][pickeda0 decrement number0] SFX7\ndown [action cursor0b holding xmark no x1 no number0][pickedb0 number0] -> [cursor0b holding xmark placemark][pickedb0 decrement number0] SFX7\n\ndown [action cursor2a holding xmark no xx no number0 no number2][pickeda2 number2] -> [cursor2a holding xmark placemark][pickeda2 decrement number2] SFX7\ndown [action cursor2b holding xmark no xx no number0 no number2][pickedb2 number2] -> [cursor2b holding xmark placemark][pickedb2 decrement number2] SFX7\n\n\n\n[placemark player1mark] -> [placemark player1 player1mark]\n[placemark pit1mark] -> [placemark pit1 pit1mark]\n[placemark crate1mark] -> [placemark crate1 crate1mark]\n[placemark wall1mark] -> [placemark wall1 wall1mark]\n[placemark one0mark] -> [placemark one0 one0mark]\n[placemark two0mark] -> [placemark two0 two0mark]\n[placemark three0mark] -> [placemark three0 three0mark]\n[placemark one2mark] -> [placemark one2 one2mark]\n[placemark two2mark] -> [placemark two2 two2mark]\n[placemark three2mark] -> [placemark three2 three2mark]\n[placemark wall0mark] -> [placemark wall0 wall0mark]\n[placemark fell1mark] -> [placemark fell1 fell1mark]\n[placemark ded1mark] -> [placemark ded1 ded1mark]\n[placemark target0mark] -> [placemark target0 target0mark]\n[placemark crate0mark] -> [placemark crate0 crate0mark]\n[placemark Target1mark] -> [placemark target1 Target1mark]\n[placemark inf0mark] -> [placemark inf0 inf0mark]\n[placemark PlayerTarget1mark] -> [placemark playertarget1 PlayerTarget1mark]\ndown [placemark cursor0mark][curse0a|no one2] -> [ cursor0b cursor0mark][curse0a|]\n[placemark cursor0mark] -> [placemark cursor0a cursor0mark]\n\n(decrement number of placed item)\ndown [xmark holding cursor2a][pickable2|one2 decrement pickeda2] -> [xmark holding cursor2a][|one2 decrement pickeda2]\ndown [xmark holding cursor2b][pickable2|one2 decrement pickedb2] -> [xmark holding cursor2b][|one2 decrement pickedb2]\ndown [xmark holding curse0a][pickable|one0 decrement pickeda0] -> [xmark holding curse0a][|one0 decrement pickeda0]\ndown [xmark holding cursor0b][pickable|one0 decrement pickedb0] -> [xmark holding cursor0b][|one0 decrement pickedb0]\ndown [xmark holding cursor2a][|one2 decrement pickeda2] -> [cursor2a][|]\ndown [xmark holding cursor2b][|one2 decrement pickedb2] -> [cursor2b][|]\ndown [xmark holding cursor0a][|one0 decrement pickeda0] -> [cursor0a][|]\ndown [xmark holding cursor0b][|one0 decrement pickedb0] -> [cursor0b][|]\n[one0 decrement] -> []\n[two0 decrement] -> [one0]\n[three0 decrement] -> [two0]\n[four0 decrement] -> [three0]\n[five0 decrement] -> [four0]\n[six0 decrement] -> [five0]\n[seven0 decrement] -> [six0]\n[one2 decrement] -> []\n[two2 decrement] -> [one2]\n[three2 decrement] -> [two2]\n\n\n\n(player -> cursor)\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [player1 action active no wall0ghost no crate0ghost][partbc] -> [cursor0a player1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [ded1 action activefell no wall0ghost no crate0ghost][partbc] -> [cursor0a ded1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\n\n(cursor holding -> player)\ndown [action curse0a activecurse0 player1 holding xmark][| number0 pickeda0] -> [active player1][ | number0] SFX6\ndown [action curse0a activecurse0 ded1 holding xmark][| number0 pickeda0] -> [activefell ded1][ | number0] SFX6\ndown [action cursor0b activecurse0 player1 holding xmark][| number0 pickedb0] -> [active player1][ | number0] SFX6\ndown [action cursor0b activecurse0 ded1 holding xmark][| number0 pickedb0] -> [activefell ded1][ | number0] SFX6\n(empty cursor -> player)\n[action curse0 player1 activecurse0 no holding] -> [active player1] SFX6\n[action curse0 ded1 activecurse0 no holding] -> [activefell ded1] SFX6\n(red -> blue)\n[action cursor0a activecurse0 holding xmark][partc][pickeda0] -> [cursor0a cursor2a][partc][] SFX5\n[action cursor0a activecurse0 ][partc] -> [cursor0a cursor2a][partc] SFX5\n[action cursor0b activecurse0 holding xmark][partc][pickedb0] -> [cursor0b cursor2b][partc][] SFX5\n[action cursor0b activecurse0 ][partc] -> [cursor0b cursor2b][partc] SFX5\n(blue holding -> red)\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\nrandom down [action curse2 curse0 holding xmark][| number2 pickeda2] -> [activecurse0 cursor0a][ | number2] SFX6\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\n(empty blue -> red)\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\nrandom [action curse2 curse0 no holding] -> [activecurse0 cursor0a] SFX6\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\n\n\n[action player] -> SFX0\n[action curse0] -> SFX0\n\n(Aesthetic----------------------------------------------------------------------------------------)\n\n\n\n(ghosts)\n[player1 active][pit0] -> [player1 active][pit0ghost]\n[pit0ghost][cursor0] -> [pit0][cursor0]\n[player1 active][wall0] -> [player1 active][wall0ghost]\n[wall0ghost][cursor0] -> [wall0][cursor0]\n[player1 active][crate0] -> [player1 active][crate0ghost]\n[crate0ghost][cursor0] -> [crate0][cursor0]\n[player1 active][fell0] -> [player1 active][fell0ghost]\n[fell0ghost][cursor0] -> [fell0][cursor0]\n[curse0 activecurse0][wall2] -> [curse0 activecurse0][wall2ghost]\n[wall2ghost][curse2] -> [wall2][curse2]\n\n\n(wall boundaries)\n[wallx2] -> []\n[wallx1] -> []\n[wallx0] -> []\nup [wall2 | no wall2] -> [wall2 wallu2 | ]\ndown [wall2 | no wall2] -> [wall2 walld2 | ]\nleft [wall2 | no wall2] -> [wall2 walll2 | ]\nright [wall2 | no wall2] -> [wall2 wallr2 | ]\nup [wall1 | no wall1] -> [wall1 wallu1 | ]\ndown [wall1 | no wall1] -> [wall1 walld1 | ]\nleft [wall1 | no wall1] -> [wall1 walll1 | ]\nright [wall1 | no wall1] -> [wall1 wallr1 | ]\nup [wall0 | no wall0] -> [wall0 wallu0 | ]\ndown [wall0 | no wall0] -> [wall0 walld0 | ]\nleft [wall0 | no wall0] -> [wall0 walll0 | ]\nright [wall0 | no wall0] -> [wall0 wallr0 | ]\n\n(crate connectors)\nup [crateu0|] -> [crateu0 | crated0]\nright [crater0|] -> [crater0 | cratel0]\nup [crateu1|] -> [crateu1 | crated1]\nright [crater1|] -> [crater1 | cratel1]\n(pit connectors)\n[blackcorner] -> []\n[pit0x] -> [] \n[pit1x] -> [] \nup [pit1 | pit1] -> [pit1u pit1|pit1d pit1]\nright [pit1 | pit1] -> [pit1r pit1|pit1l pit1]\nup [pit0 | pit0] -> [pit0u pit0|pit0d pit0]\nright [pit0 | pit0] -> [pit0r pit0|pit0l pit0]\n[pit1u pit1r] -> [pit1u pit1r blackur]\n[pit1u pit1l] -> [pit1u pit1l blackul]\n[pit1d pit1r] -> [pit1d pit1r blackdr]\n[pit1d pit1l] -> [pit1d pit1l blackdl]\n[pit0u pit0r] -> [pit0u pit0r blackur]\n[pit0u pit0l] -> [pit0u pit0l blackul]\n[pit0d pit0r] -> [pit0d pit0r blackdr]\n[pit0d pit0l] -> [pit0d pit0l blackdl]\n[rim1x] -> []\n[rim0x] -> []\nup[pit0|no pit0] -> [pit0 rim0u|]\ndown[pit0|no pit0] -> [pit0 rim0d|]\nleft[pit0|no pit0] -> [pit0 rim0l|]\nright[pit0|no pit0] -> [pit0 rim0r|]\nup[pit1|no pit1] -> [pit1 rim1u|]\ndown[pit1|no pit1] -> [pit1 rim1d|]\nleft[pit1|no pit1] -> [pit1 rim1l|]\nright[pit1|no pit1] -> [pit1 rim1r|]\nlate [pink] -> []\nlate [cyan] -> []\nlate [chosepink] -> []\nlate [chosecyan] -> []\nlate down [pickable |number0] -> [pickable pink | number0 pink]\nlate down [pickable2 |number2] -> [pickable2 cyan | number2 cyan]\nlate up [pink picked|pink] -> [chosepink picked|chosepink ]\nlate up [cyan picked|cyan ] -> [chosecyan picked|chosecyan ]\n\n(Movement----------------------------------------------------------------------------------------)\n\n(move attached items)\n[moving activecurse0 curse0] -> [moving activecurse0 moving curse0]\n[moving active player1] -> [moving active moving player1]\n[moving activefell ded1] -> [moving activefell moving ded1]\n[moving curse0 holding] -> [moving curse0 moving holding]\n[moving curse2 holding] -> [moving curse2 moving holding]\n\n(reset and propogate cant)\n[cant0] -> []\n[cant1] -> []\n[cant2] -> []\n[fellcant0] -> []\n[fellcant1] -> []\n\n[black no cant0 no cant1 no cant2] -> [black cant0 cant1 cant2]\n[wall2 no cant2] -> [wall2 cant2]\n[wall1 no cant1] -> [wall1 cant1]\n[wall0 no cant0] -> [wall0 cant0]\n[number0] -> [number0 cant1]\n[number2] -> [number2 cant1]\n[no pit1 no fellcant1] -> [fellcant1]\n[no pit0 no fellcant0] -> [fellcant0]\n\n[> ded1][fell1|fellcant1] -> [> ded1][fell1 fellcant1 | fellcant1]\n+ [> ded1][ded1|fellcant1] -> [> ded1][ded1 fellcant1 | fellcant1]\n+ up[fellu1|fellcant1] -> [fellu1 fellcant1 | fellcant1]\n+ left[felll1|fellcant1] -> [felll1 fellcant1 | fellcant1]\n+ down[felld1|fellcant1] -> [felld1 fellcant1 | fellcant1]\n+ right[fellr1|fellcant1] -> [fellr1 fellcant1 | fellcant1]\n\n+ [> player1][crate1|cant1] -> [> player1][crate1 cant1 | cant1]\n+ [> player1][player1|cant1] -> [> player1][player1 cant1 | cant1]\n+ up[crateu1|cant1] -> [crateu1 cant1 | cant1]\n+ left[cratel1|cant1] -> [cratel1 cant1 | cant1]\n+ down[crated1|cant1] -> [crated1 cant1 | cant1]\n+ right[crater1|cant1] -> [crater1 cant1 | cant1]\n+ [crate1 crate0 cant0] -> [crate1 crate0 cant0 cant1]\n+ [crate1 crate0 cant1] -> [crate1 crate0 cant0 cant1]\n+ [> dead0][dead0|fellcant0] -> [> dead0][dead0 fellcant0 | fellcant0]\n+ [> cursor0][cursor0|cant0] -> [> cursor0][cursor0 cant0 | cant0]\n+ [> cursor0][crate0 | number0] -> [> cursor0][crate0 cant0| number0]\n+ [> cursor0][crate0|cant0] -> [> cursor0][crate0 cant0 | cant0]\n+ up[crateu0|cant0] -> [crateu0 cant0 | cant0]\n+ left[cratel0|cant0] -> [cratel0 cant0 | cant0]\n+ down[crated0|cant0] -> [crated0 cant0 | cant0]\n+ right[crater0|cant0] -> [crater0 cant0 | cant0]\n\n[> curse2 | wall2] -> [stationary curse2 | wall2]\n[> curse2 | black] -> [stationary curse2 | black]\n[cursor0 cant0] -> [stationary cursor0 cant0]\n[player1 cant1] -> [stationary player1 cant1]\n[ded1 fellcant1] -> [stationary ded1 fellcant1]\n[dead0 fellcant0] -> [stationary dead0 fellcant0]\n\n\n(propagate movement)\n\n[ > Ded1 | Fell1 no fellcant1] -> [ > Ded1 | > Fell1 ]\n\n[ > Cursor0 | Crate0 ] -> [ > Cursor0 | > Crate0 ]\n+ [ > Cursor0 | Cursor0 ] -> [ > Cursor0 | > Cursor0 ]\n+ [ > Crate0 | Crate0 ] -> [ > Crate0 | > Crate0 ]\n\n+ [ > Player1 | Crate1 ] -> [ > Player1 | > Crate1 ]\n+ [ > Player1 | Player1] -> [ > Player1 | > Player1 ]\n+ [ > Crate1 | Player1 ] -> [ > Crate1 | > Player1 ]\n+ [> crate1|crate1] -> [> crate1 | > crate1]\n+ up[moving crate1 crateu1|crate1] -> [moving crate1 crateu1 | moving crate1]\n+ left[moving crate1 cratel1|crate1] -> [moving crate1 cratel1 | moving crate1]\n+ down[moving crate1 crated1|crate1] -> [moving crate1 crated1 | moving crate1]\n+ right[moving crate1 crater1|crate1] -> [moving crate1 crater1 | moving crate1]\n \n\n[> fell1|fell1] -> [> fell1 | > fell1]\n+ up[moving fell1 fellu1|fell1] -> [moving fell1 fellu1 | moving fell1]\n+ left[moving fell1 felll1|fell1] -> [moving fell1 felll1 | moving fell1]\n+ down[moving fell1 felld1|fell1] -> [moving fell1 felld1 | moving fell1]\n+ right[moving fell1 fellr1|fell1] -> [moving fell1 fellr1 | moving fell1]\n\n[moving crate1 cratex1] -> [moving crate1 moving cratex1]\n[moving fell1 fellx1] -> [moving fell1 moving fellx1]\n[moving crate1 crate0ghost] -> [moving crate1 moving crate0ghost]\n\n[active stationary player1] -> [stationary active stationary player1]\n[activecurse0 stationary curse0] -> [stationary activecurse0 stationary curse0]\n[activefell stationary ded1] -> [stationary activefell stationary ded1]\n[stationary cursor0 activecurse0 holding] -> [stationary cursor0 activecurse0 stationary holding]\n[stationary curse2 holding] -> [stationary curse2 stationary holding]\n\n\n(falling)\nlate [supported] -> []\n\nlate [crate1 ded1] -> [crate1 supported ded1]\nlate [crate1 no pit1] -> [crate1 supported]\nlate [crate1 fell1] -> [crate1 fell1 supported]\n\n\nlate up[crateu1|supported] -> [crateu1 supported | supported]\n+ late left[cratel1|supported] -> [cratel1 supported | supported]\n+ late down[crated1|supported] -> [crated1 supported | supported]\n+ late right[crater1|supported] -> [crater1 supported | supported]\n\n\nlate [cursor0 pit0 no fell0] -> [pit0 dead0a]SFX3\nlate [player1 active pit1 no fell1 no ded1] -> [pit1 ded1 activefell]SFX3\nlate [player1 pit1 no fell1 no ded1] -> [pit1 ded1 ]SFX3\nlate [crate0 pit0 no supported] -> [pit0 fell0]SFX3\nlate [crate1 pit1 no supported] -> [pit1 fell1] SFX3\n\n\n\nlate [crateu1 no crate1 fell1] -> [fellu1 fell1]\nlate [cratel1 no crate1 fell1] -> [felll1 fell1]\nlate [crater1 no crate1 fell1] -> [fellr1 fell1]\nlate [crated1 no crate1 fell1] -> [felld1 fell1]\n\nlate [crateu1 no crate1] -> []\nlate [cratel1 no crate1] -> []\nlate [crater1 no crate1] -> []\nlate [crated1 no crate1] -> []\nlate up [crateu1 |no crate1] -> [|]\nlate left [cratel1 |no crate1] -> [|]\nlate right [crater1 |no crate1] -> [|]\nlate down [crated1 |no crate1] -> [|]\nlate [player1 ded1] -> [player1 ded1] SFX0\nlate [player1 ded1] -> cancel \n\n[moving crate0] -> SFX2\n[moving crate1] -> SFX2\n\n==============\nWINCONDITIONS\n==============\n\n\nAll target0 on crate0\nAll Target1 on Crateorfell1\nAll PlayerTarget1 on Playerormark1\nno Cursor0 on target1\nno cursor0 on PlayerTarget1\n\n=======\nLEVELS\n=======\n\nmessage Book 1: BASE\n\nmessage Page 1.1: GOAL\n\n#######\n#`````#\n#`p`t`#\n#`````#\n#`o`q`#\n#`````#\n#######\n\nmessage Page 1.2: TOOL\n\n#######\n#`t`o`#\n#t`-:`#\n#``tlo#\n#p````#\n#######\n\nmessage Page 1.3: HOLE\n\n########\n##``0`##\n#```0``#\n#``o0`t#\n#po:0``#\n#``:0`t#\n#```0``#\n##``0`##\n########\n\nmessage Page 1.4: FALL\n\n########\n#00u``0#\n#00po`0#\n#`000`0#\n#`00```#\n#`000``#\n#`000``#\n########\n\nmessage Book 2: EDIT\n\nmessage Page 2.1: MINI\n\n||||||||||\n|```````'|\n|`######`|\n|`#````#`|\n|`#``t`#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 2.2: FORM\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 2.3: PLUG\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#ro`o`#`|\n|`#####`#`|\n|`###`o`#`|\n|`#``oLo#`|\n|`#````##`|\n|`#`q####`|\n|`#######`|\n|`````````|\n|``c`0````|\n|````8````|\n|`````````|\n|||||||||||\n\nmessage Page 2.4: TRAP\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#``````#`|\n|`#``t```#`|\n|`#`tqt``#`|\n|`#``t```#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````16````|\n|``````````|\n||||||||||||\n\nmessage Book 3: DUAL\n\nmessage Page 3.1: CO-OP\n\n#######\n####qq#\n#po000#\n#`o000#\n###o``#\n###r`'#\n#######\n\nmessage Page 3.2: REST\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#`r00q#`|\n|`#######`|\n|`````````|\n|``c`o````|\n|````2````|\n|`````````|\n|||||||||||\nmessage Page 3.3: SAIL\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#0000q#`|\n|`#00000#`|\n|`#00000#`|\n|`#```00#`|\n|`#```00#`|\n|`#######`|\n|`````````|\n|``c`ro```|\n|````23```|\n|`````````|\n|||||||||||\n\nmessage Page 3.4: TWIN\n\n|||||||||||||||||||||\n|`````````+````````'|\n|`#######`+`#######`|\n|`#`````#`+`#`````#`|\n|`#```q`#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`q```#`|\n|`#`````#`+`#`````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````6````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Book 4: WHAT\n\nmessage Page 4.1: GUIS\n\n\n#######\n#q#``'#\n#``8#`#\n#`#p#`#\n#`#o#`#\n#`#1``#\n#######\n\nmessage Page 4.2: IDEA\n\n||||||||||\n|```````'|\n|`######`|\n|`#```t#`|\n|`#```t#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```31```|\n|````````|\n||||||||||\n\nmessage Page 4.3: FILL\n\n\n######\n#0poq#\n#0`70#\n#'000#\n#0000#\n######\n\nmessage Page 4.4: A LOT\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|``````'|\n|`c3o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Book 5: UHHH\n\nmessage Page 5.1: WALL\n\n||||||||||\n|```````'|\n|`######`|\n|`#t`#`#`|\n|`#````#`|\n|`##`o`#`|\n|x+xxxx+x|\n|`#````#`|\n|`#````#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 5.2: SAFE\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#xxxxx#`|\n|`#x```x#`|\n|`#x`t`x#`|\n|`#x```x#`|\n|`#xxxxx#`|\n|`#######`|\n|`````````|\n|`c`o1r```|\n|```111```|\n|`````````|\n|||||||||||\n\nmessage Page 5.3: LOCK\n\n|||||||||||||\n|o```'`xxxcx|\n|1``x```qx!x|\n|`1!````qx`x|\n|``1?x`xxx?x|\n|r``1````!`x|\n|````2`xxxxx|\n|||||||||||||\n\n\n\nmessage Page 5.4: POST\n\n+++++++++\n+p#```#q+\n+`#``'#3+\n+`#`1`#`+\n+`#`2`#`+\n+`#```#`+\n+`#```#`+\n+++++++++\nmessage Book 6: BLUE\n\nmessage Page 6.1: META\n\n||||||||||||\n|++++++++++|\n|+````\"```+|\n|+`######`+|\n|+`#````#`+|\n|+`#``t`#`+|\n|+`#````#`+|\n|+`######`+|\n|+````````+|\n|+```ro```+|\n|+````````+|\n|+````````+|\n|++++++++++|\n|``````````|\n|``~`1b````|\n|````{[````|\n|``````````|\n||||||||||||\n\nmessage Page 6.2: WILD\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`#######`+|\n|+`#0000q#`+|\n|+`#00000#`+|\n|+`#`0000#`+|\n|+`#`0000#`+|\n|+`#```00#`+|\n|+`#######`+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\nmessage Page 6.3: UH OH\n\n|||||||||||\n|+++++++++|\n|+``````\"+|\n|+`+++++`+|\n|+`+```+`+|\n|+`+`t`+`+|\n|+`+```+`+|\n|+`+```+`+|\n|+`+++++`+|\n|+```````+|\n|+```o```+|\n|+```````+|\n|+```````+|\n|+++++++++|\n|`````````|\n|`````````|\n|`~`1br```|\n|```][[```|\n|`````````|\n|||||||||||\n\nmessage Page 6.4: VARY\n\n|||||||||||||||||||||||\n|++++++++++&++++++++++|\n|+``````\"`x&x````````+|\n|+`######`x&x`######`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`#`qt`#`x&x`#`tq`#`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`######`x&x`######`+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|++++++++++&++++++++++|\n|``````````&``````````|\n|`~`r1ob```&`_`r1ob```|\n|```[{[[```&```[[[[```|\n|``````````&``````````|\n|||||||||||||||||||||||\n\nmessage Book 7: ?!?!\n\nmessage Page 7.1: EACH\n\n+++++++\n+````'+\n+`###`+\n+`#q#`+\n+`#0#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`###`+\n+`````+\n+``c``+\n+`r0o`+\n+``4``+\n+`````+\n+++++++\n\nmessage Page 7.2: HOLD\n\n&&&&&&&&&\n&`8```+`&\n&`{po`+`&\n&`\"```+t&\n&&&&&&&&&\n\nmessage Page 7.3: TRIP\n\n&&&&&&&\n&```\"`&\n&`o`!`&\n&`````&\n&+++++&\n&`r2b`&\n&`[[{~&\n&y```t&\n&&&&&&&\n\nmessage Page 7.4: PLAN\n\n\n|||||||||\n|```t```|\n|```````|\n|+++++++|\n|```````|\n|```````|\n|>>>>>>>|\n|```````|\n|```````|\n|+++++++|\n|```~```|\n|[[`2\"11|\n|[[`[`[[|\n|&&`&&&&|\n|&&bor&&|\n|||||||||\n\n\n\n\n\nmessage Book 8: (RE)STAR(TS)\n\n\nmessage Page 8.1: (IN)FORM(ED)\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 8.2: (EN)TWIN(ED)\n\n|||||||||||||||||||||\n|`````````+`````````|\n|`#######`+`#######`|\n|`#````q#`+`#`````#`|\n|`#`````#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`````#`|\n|`#`````#`+`#q````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````5````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Page 8.3: (ZE)ALOT(RY)\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|```````|\n|`c2o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Page 8.4: (BE)WILD(ER)\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`+++++++`+|\n|+`+0000q+`+|\n|+`+00000+`+|\n|+`+00000+`+|\n|+`+`0000+`+|\n|+`+```00+`+|\n|+`+++++++`+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",[0,3,3,3,2,2,4,1,0,3,4,0,0,0,0,4,3,3,2,2,2,2,1,4,0,0,0,3,0,4,2,2,2,2,3,3,4,1,4,0,0,0,0,0,4,1,2,2,2,2,2,4,0,0,0,3,0,4,4,4,1,4,2,1,0,3,3,4,2,1,0,4,1,0,0,3,3,3,2,1,1,1,3,4,2,2,1,1,1,0,3,4,3,3,2,2,2,1,2,1,4,0,0,0,3,3,0,0,0,4,3,2,2,1,0,4,1,2,1,4,3,3,0,4,2,3,0,4,2],"background black cant0 cant1 cant2 fellcant0 fellcant1:0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,background cant0 cant1 fellcant0 fellcant1 wall0 wall1 walll0 walll1 wallu0 wallu1:1,background cant0 cant1 fellcant0 fellcant1 wall0 wall1 walll0 walll1 wallr0 wallr1:2,2,2,2,\n2,2,2,2,2,2,2,2,background cant0 cant1 fellcant0 fellcant1 wall0 wall1 walld0 walld1 walll0 walll1:3,background fellcant0 fellcant1:4,4,4,4,\n0,0,background cant0 cant1 fellcant0 fellcant1 wall0 wall1 walld0 walld1 wallu0 wallu1:5,4,4,4,4,4,4,4,4,4,4,\n4,4,5,4,4,4,4,0,0,5,4,background cant1 fellcant0 fellcant1 wall1 walll1 wallu1:6,background cant1 fellcant0 fellcant1 wall1 walll1 wallr1:7,\n7,7,7,7,background cant1 fellcant0 fellcant1 wall1 walld1 walll1:8,4,4,4,4,5,4,4,4,\n4,0,0,5,4,background cant1 fellcant0 fellcant1 wall1 walld1 wallu1:9,background blackdr fellcant0 pit1 pit1d pit1r rim1l rim1u:10,background blackur fellcant0 pit1 pit1r pit1u rim1d rim1l:11,4,4,4,9,4,\n4,4,4,5,4,background cant1 cyan fellcant0 fellcant1 one0:12,background cant1 cyan fellcant0 fellcant1 one2:13,4,0,0,5,4,9,\nbackground blackdl blackdr fellcant0 pit1 pit1d pit1l pit1r rim1u:14,background blackdl blackdr blackul blackur fellcant0 pit1 pit1d pit1l pit1r pit1u:15,background blackdr blackur fellcant0 pit1 pit1d pit1r pit1u rim1l:16,11,4,9,4,background crate1 fellcant0 fellcant1 pink supported:17,background cant1 fellcant0 fellcant1 pink two0:18,4,5,4,4,\n4,4,0,0,5,4,9,14,15,15,background blackul blackur fellcant0 pit1 pit1l pit1r pit1u rim1d:19,4,9,\n4,4,4,4,5,4,4,4,4,0,0,5,4,\n9,background blackdl fellcant0 pit1 pit1d pit1l rim1r rim1u:20,15,15,15,11,background cant1 fellcant0 fellcant1 pink wall1 walld1 wallu1:21,18,4,4,4,5,4,\n4,4,4,0,0,5,background fellcant0 fellcant1 partc:22,9,background fellcant0 fellcant1 playertarget1:23,20,background blackdl blackul fellcant0 pit1 pit1d pit1l pit1u rim1r:24,24,background blackul fellcant0 pit1 pit1l pit1u rim1d rim1r:25,\n9,4,background fellcant0 fellcant1 player1:26,activecurse0 background cursor0a fellcant0 fellcant1:27,4,5,4,4,4,4,0,0,5,\n4,background cant1 fellcant0 fellcant1 wall1 wallr1 wallu1:28,7,7,7,7,7,background cant1 fellcant0 fellcant1 wall1 walld1 wallr1:29,4,4,4,4,5,\n4,4,4,4,0,0,5,4,4,4,4,4,4,\n4,4,4,4,4,4,5,4,4,4,4,0,0,\nbackground cant0 cant1 fellcant0 fellcant1 wall0 wall1 wallr0 wallr1 wallu0 wallu1:30,2,2,2,2,2,2,2,2,2,2,2,2,\nbackground cant0 cant1 fellcant0 fellcant1 wall0 wall1 walld0 walld1 wallr0 wallr1:31,4,4,4,4,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n",49,"1642083700844.0618"] - ], - [ - "Undo and Real-time #796", - ["title Undo and Real-time\nrealtime_interval 0.25\n\n========\nOBJECTS\n========\n\nBackground .\nBlack\n\nPlayer @\nBlue\n\nThing *\nYellow\n\n=======\nLEGEND\n=======\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nThing\nPlayer\n\n======\nRULES \n====== \n\n[ Thing ] -> [ right Thing ] \n\n==============\nWINCONDITIONS\n============== \n\n======= \nLEVELS\n=======\n\nmessage Walk around a bit, then undo several times (usually, three is enough).\n\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.............@.......................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n\n\n\n\n\n",["tick",4,4,4,1,1,"tick",1,"tick","tick","tick","tick","undo","undo","tick","tick","tick","undo"],"background: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,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,background thing:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,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,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,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,background player: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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,\n",1,"1642738088805.1099"] - ], - [ - "Cucumber Surprise", - ["title Cucumber Surprise\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #595652\ntext_color white\n\nagain_interval 0.01\n\n(thanks to bvoq for Puzzlescript+MIS https://dekeyser.ch/puzzlescriptmis/ also testing. also thanks to ggn and meepmeep13 for testing)\n\n========\nOBJECTS\n========\n\nBackground\n#595652 #696a6a\n00000\n00000\n00100\n00000\n00000\n\n\n\nziel\n#595652 #eec39a #d9a066 #e1b489\n.111.\n23331\n23331\n23331\n.222.\n\n\nwand\n#696a6a #847e87\n00010\n11111\n01000\n11111\n00010\n\n\nplayer\n#595652 #ac3232 #8a6f30 #5b6ee1\n.111.\n.222.\n.222.\n13331\n.1.1.\n\n\nkatze\n#000000 \n0..00\n.0.00\n.000.\n.0.0.\n.0.0.\n\ngurke\ntransparent #99e550 #6abe30\n00100\n02110\n02110\n02110\n00200\n\npush_up\ntransparent\n\npush_down\ntransparent\n\npush_left\ntransparent\n\npush_right\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\ng = gurke\np = player\n* = katze\n# = wand\n@ = katze and ziel\nO = ziel\nm = gurke and ziel\n\nobstacle = player or katze or wand or gurke\npush = push_up or push_down or push_left or push_right\n\n=======\nSOUNDS\n=======\n\nsfx0 23445905 (katzenschreck)\nstartgame 90870106\nstartlevel 90870106\nendlevel 78627300\ngurke move 70216507\nkatze move 45785907\n================\nCOLLISIONLAYERS\n================\n\nBackground\nziel\nPlayer, katze, gurke, wand\npush\n======\nRULES\n======\n\n[moving player] [ push ] -> [ moving player ] [ ]\n\nup [ push_up stationary katze | no obstacle ] -> [ | push_up action katze ] again\n+ down [ push_down stationary katze | no obstacle ] -> [ | push_down action katze ] again\n+ left [ push_left stationary katze | no obstacle ] -> [ | push_left action katze ] again\n+ right [ push_right stationary katze | no obstacle ] -> [ | push_right action katze ] again\n\n\n[ > Player | gurke | no obstacle ] -> [ > Player | > gurke | no obstacle ] again\n\n\n[ < player | katze ] -> [ < player | < katze ] again\n\nlate up [ gurke | katze | no obstacle] -> [ gurke | push_up katze | no obstacle] sfx0\nlate down [ gurke | katze | no obstacle] -> [ gurke | push_down katze | no obstacle] sfx0\nlate left [ gurke | katze | no obstacle] -> [ gurke | push_left katze | no obstacle] sfx0\nlate right [ gurke | katze | no obstacle] -> [ gurke | push_right katze | no obstacle] sfx0\n\nlate up [ gurke | katze ] -> [ gurke | push_up katze ]\nlate down [ gurke | katze ] -> [ gurke | push_down katze ]\nlate left [ gurke | katze ] -> [ gurke | push_left katze ]\nlate right [ gurke | katze ] -> [ gurke | push_right katze ]\n\n==============\nWINCONDITIONS\n==============\n\nall katze on ziel\n\n=======\nLEVELS\n=======\n\n(wanna hand make the first few levels)\n\n\nmessage Put your doting cats to bed.\nmessage Level 1/20 \n.....#####\n######...#\n#...o..#.#\n#.p..*o*.#\n##########\n\n\nmessage Who left that cucumber there?\nmessage Level 2/20 \n##########\n#........#\n#........#\n#.g.p.*.o#\n#........#\n#........#\n##########\n\nmessage Level 3/20\n(The only thing cats love more than you is hating cucumbers)\n(not so hard, could be an ok level 2)\n######\n#...o#\n#.#..#\n#*.g.#\n#..p.#\n#....#\n######\n\nmessage Level 4/20\n(almost trivial)\n#######\n#.o...#\n#..g..#\n#.o..p#\n#...*.#\n#.....#\n#..*..#\n#######\n\n\nmessage Level 5/20\n(easy enough - could be level 2?)\n.#######\n.#...*.#\n.#..*..#\n##.p.o.#\n#.g....#\n#o.....#\n########\n\n\n\nmessage Level 6/20\n(reasonable. could be level 2)\n..####...\n###..####\n#....p..#\n#.#.*#m.#\n#....#..#\n#########\n\n\nmessage Level 7/20\n(ok early level 1-2)\n######\n#o...#\n#.m.*#\n#....#\n#.*p.#\n######\n\n\n\nmessage Level 8/20\n(nice level. could be #2 or 3)\n..####.\n###o.##\n#..g..#\n#.#..##\n#*..p#.\n######.\n\n\nmessage Level 9/20\n(nice level. could be level 3/4)\n########\n#...*o.#\n#.*....#\n#..p.g.#\n#####.o#\n....####\n\n\n\n\nmessage Level 10/20\n(haven't solved this yet - tricky / hard to find the solution? but once I tried and concentrated I was able to ?)\n######\n#o..p#\n#.#..#\n#o.g.#\n#*...#\n#..*.#\n######\n\n\nmessage Level 11/20\n(ok late intermediate)\n######\n#po.o#\n#.#g.#\n#*...#\n#....#\n#.*..#\n######\n\n\n\nmessage Level 12/20\n( ok level, but not an ok first level )\n####..\n#*o#..\n#..###\n#.g.p#\n#....#\n#..###\n####..\n\n\nmessage Level 13/20\n(two gurkins! not hard! pleasing!)\n#######\n#...g.#\n#..#..#\n#....g#\n#.*#..#\n##....#\n#o..p.#\n#######\n\n\nmessage Level 14/20\n(ok latish intermediate!)\n#####.\n#o..##\n#....#\n##pg.#\n.##..#\n..##*#\n...###\n\n\nmessage Level 15/20\n(ok late intermediate level)\n#######\n#.o...#\n#..g..#\n#.#...#\n#.o.#.#\n#....*#\n#p.#.*#\n#######\n\n\n\n\n\nmessage Level 16/20\n(bit trial+errory. not high-concept)\n#######\n#.#p..#\n#.**..#\n#.#...#\n#...g##\n#....o#\n#o.#..#\n#######\n\n\nmessage Level 17/20\n(a bit tricky - the solution was not hard but finding it was a bit indirected / trial+errory)\n#######\n##o...#\n#.o#.*#\n#.....#\n#.##..#\n#..g..#\n#.*.p.#\n#######\n\n\n\nmessage Level 18/20\n(unsolved. wtf.)\n..######\n..#....#\n..#..g.#\n####.###\n#..o.##.\n#.#.p.#.\n#...#.#.\n###*..#.\n..#####.\n\n\n\n\nmessage Level 19/20\n(ok hardish level)\n....#########...\n#####..o.o..####\n#.g...#.#.#....#\n#...*...p...*..#\n################\n\n\nmessage Level 20/20\n(intermediate. pleasing)\n......#####\n......#...#\n......#.#.#\n#######g#.#\n#....p..o.#\n#o#*#.#.###\n#......*#..\n#########..\n\nmessage Congratulations. All the cats are in bed, having cucumbers nightmares.\n\n(\n( super hard. do not include)\n......#####\n......#...#\n......#.#.#\n#######.#.#\n#....**...#\n#.#m#.#.###\n#.....po#..\n#########..\n)\n",[1,3,3,0,1,0,2,2,3,0,1,0,0,0,2,3,0,1,2,2,2,1,1,0,3,3,2,3,0,1,0,0,0,0],"background wand:0,0,0,0,0,0,0,\n0,0,0,background:1,1,1,1,\n1,0,0,background ziel:2,2,1,0,\n1,1,0,0,1,0,1,\n0,1,1,0,0,background player:3,1,\n1,1,1,1,0,0,1,\nbackground katze:4,background katze push_up:5,background gurke:6,1,1,0,0,\n0,0,0,0,0,0,0,\n",35,"1645544413590.2168"] - ], - [ - "Chevron Lodger", - ["title Chevron Lodger\nauthor increpare\nhomepage www.increpare.com\n\n(verbose_logging)\n\ncolor_palette ega\n\nbackground_color #d3beaa\ntext_color #683d15\n(thanks to youAtExample for feedback)\n\n========\nOBJECTS\n========\n\nBackground\n#d3beaa #d3beaa\n00000\n00000\n00100\n00000\n00000\n\n\n\n\nWall\n#7b4b1d #7b4b1d\n00000\n00000\n00100\n00000\n00000\n\n\n\nPlayer_top 1\n#ee8b16\n..0..\n..0..\n.000.\n.000.\n00000\n\n\nplayer_middle 2\n#ee8b16\n\n\nplayer_bottom 3\n#ee8b16\n00000\n00.00\n00.00\n0...0\n0...0\n\n\n\nCrate_top\n#926c3f\n..0..\n..0..\n.000.\n.000.\n00000\n\n\n\ncrate_middle \n#926c3f\n\n\ncrate_bottom\n#926c3f\n00000\n00.00\n00.00\n0...0\n0...0\n\n\n\n\n\n=======\nLEGEND\n=======\n\nplayer = Player_top or player_middle or player_bottom\ncrate = Crate_top or crate_bottom or crate_middle\n\n. = Background\n# = Wall\n\na = crate_top\nb = crate_middle\nc = crate_bottom\n\nplayer_or_crate = player or crate\n\nobstacle = wall or player or crate\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx0 48406107 (snap)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n(level generation QOL things. can comment out later)\ndown [ playeR_top | no player] -> [ Player_top | player_bottom ]\ndown [ Crate_top | no player ] -> [ Crate_top | crate_bottom ]\n\n\ndown [ > player_bottom | Crate_top ] -> [ | player_middle ] sfx0\n\nup [ > player_top | crate_bottom ] -> [ | player_middle ] sfx0\n\nhorizontal [ > Player | Crate ] -> [ > Player | > Crate ]\n\n\n\ndown [ left Crate_top | stationary crate_bottom ] -> [ left Crate_top | left crate_bottom ]\n+ down [ stationary Crate_top | left crate_bottom ] -> [ left Crate_top | left crate_bottom ]\n+ horizontal [ > crate | stationary crate ] -> [ > crate | > crate ] \n\ndown [ right Crate_top | stationary crate_bottom ] -> [ right Crate_top | right crate_bottom ]\n+ down [ stationary Crate_top | right crate_bottom ] -> [ right Crate_top | right crate_bottom ]\n+ horizontal [ > crate | stationary crate ] -> [ > crate | > crate ] \n\n[ > player_or_crate | wall ] -> cancel\n\nlate vertical [ player_middle | crate_middle ] -> [ player_middle | player_middle ]\n\nlate down [ player_middle | crate_bottom ] -> [ player_middle | player_bottom ]\nlate up [ player_middle | crate_top ] -> [ player_middle | player_top ]\n\n==============\nWINCONDITIONS\n==============\n \nno crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 6\n\n(ok level 1)\n#######\n#.....#\n#.#...#\n#a....#\n#c..#.#\n#.1a..#\n#.3c..#\n#######\n\nmessage Level 2 of 6\n\n(ok level 2)\n#########\n#...a...#\n#...c1..#\n#.#.#3..#\n#...a...#\n#...c.a.#\n##..#.c.#\n#########\n\n\nmessage Level 3 of 6\n\n\n(ok level 2.5?)\n###########\n######...##\n######.#.##\n#####....##\n#####....1#\n#...a..#.3#\n#...c...a.#\n#..a....c.#\n#..c...####\n###########\n\n\n(\n(weirdly confusing - could be a level 2.5 ? but could be too similar to 3)\n#########\n#....1a.#\n#....3c.#\n#..#..#.#\n##......#\n#..aa...#\n#..cc...#\n#########\n)\n\nmessage Level 4 of 6\n\n(ok level 3? too similar to level 1 to follow it?)\n##########\n#........#\n#........#\n#..#.#...#\n#.a.1....#\n#.c.3#.#.#\n#..#..a..#\n#.....c..#\n##########\n\nmessage Level 5 of 6\n\n(NICE LEVEL I used my brain and solved it)\n###########\n#######...#\n#####.....#\n#####...a.#\n#.a1....c.#\n#.c3...#..#\n#.....a...#\n#.....c...#\n###########\n\nmessage Level 6 of 6\n\n(perfectly ok level! lots of nice considerations. good enough!)\n############\n#######....#\n######.....#\n######..a#.#\n######..c..#\n######.....#\n#...a.aa.#.#\n#.1.c.cc...#\n#.3......a.#\n###......c.#\n############\n\nmessage Congratulations. You know your chevrons well.\n\n(HARD. TRY AGAIN) \n(SOLVED IT DON'T LIKE IT)\n(#############\n#######.....#\n#######1....#\n#######3..#.#\n#######..#..#\n#######.a.a.#\n#.....a.c.c.#\n#.....c.....#\n#...a.....a.#\n#...c.....c.#\n#############\n\n)\n\n\n(\n(meh)\n#########\n#..a....#\n#..c..a.#\n#....1c.#\n#...a3#.#\n#...c...#\n#.......#\n#########\n)\n\n(\n(meh)\n#########\n#....a1.#\n##...c3.#\n#.#..#..#\n#....##.#\n#.#..a..#\n##...c..#\n##..##..#\n#.......#\n#..a....#\n#..c.a..#\n#.#.#c..#\n#.......#\n#########\n)\n\n((no: meh)\n(ok!)\n#####\n#.a.#\n#ac.#\n#c..#\n#..a#\n#..c#\n#..##\n#..a#\n#..c#\n#.a.#\n#1c.#\n#3..#\n#...#\n#####\n)\n(\n(Eeeh)\n#####\n#a..#\n#c.##\n#.a.#\n#.c.#\n#.a.#\n#.ca#\n#.1c#\n#.3a#\n#a.c#\n#ca.#\n#.c.#\n#...#\n#####\n)\n\n(\n(meh)\n#####\n#.a.#\n#1c.#\n#3..#\n#...#\n#.#.#\n#..##\n#...#\n#...#\n#.a.#\n#.c.#\n#aaa#\n#ccc#\n#####\n)\n(\n(too easy)\n#####\n#aa.#\n#cca#\n#1ac#\n#3c.#\n#...#\n#.a.#\n#.c.#\n#a..#\n#c..#\n#.#.#\n#.a.#\n#.c.#\n#####)\n\n(\n#############\n#######.....#\n#######.....#\n#######.....#\n#######.....#\n#######.....#\n#...........#\n#...........#\n#...........#\n#...........#\n#############\n\n)\n(\n(non trivial and has an idea but you can probably find better)\n#############\n#######..#..#\n#######.#...#\n#######....1#\n#######.a..3#\n#######.c.a.#\n#.#....a..c.#\n#......c....#\n#.....a...a.#\n#.....c...c##\n#############\n)\n\n\n(insoluble ? wtf? oh maybe old version that didn't transfer movements correctly)\n(#############\n########.a#.#\n#######a.c###\n#######c....#\n#######1....#\n#######3....#\n#.....a..#..#\n#....ac.....#\n#....c....a.#\n#.........c.#\n#############\n)\n(\n(meh)\n#############\n#######...1.#\n#######..a3.#\n#######..c..#\n#######.....#\n#######.....#\n#.....a.a...#\n#.....c.c..a#\n#.....a....c#\n#.....c....##\n#############\n)\n\n(meh)(\n#############\n#######..a..#\n#######.1c..#\n#######a3.a.#\n#######c..c.#\n#######a.##.#\n##.....c....#\n#...........#\n#.a.........#\n#.c.#.......#\n#############\n)\n\n(90% meh)\n(\n#############\n#######.#...#\n#######.....#\n#######....##\n#######...1.#\n#######.a.3.#\n#...aa.ac...#\n#...cc.c....#\n##.......a..#\n##.....##c..#\n#############)\n\n(meh)\n(\n#############\n#######.#...#\n#######.....#\n########.#.a#\n########aa1c#\n#######.cc3.#\n#....a......#\n#....c......#\n#.#.......a.#\n#.#.......c.#\n#############\n)\n\n(\n(meh)\n#############\n#######a.a..#\n#######c.c..#\n#######.a.#.#\n#######.c..##\n#######.....#\n#..........##\n#....#...a..#\n#....a...c.1#\n##...c..#..3#\n#############\n)\n\n\n\n(insoluble :[\n#############\n#######.a...#\n#######.c...#\n#######.#...#\n#######.....#\n#######..a..#\n#.a......c1##\n#.c.......3.#\n#...a....a..#\n#...c.#..c..#\n#############\n)\n(insoluble :[\n#############\n#######.#...#\n#######.....#\n#######..#..#\n#######.....#\n#######.....#\n#a#.1...a...#\n#c..3a..c.a.#\n#....c.a..c.#\n#......c....#\n#############\n)\n(insoluble :[\n#############\n#######..#..#\n########....#\n#######.1...#\n#######.3...#\n#######...a.#\n#.......aac.#\n#....a..cc.##\n#....ca.....#\n#.....c....##\n#############\n)\n(trivial\n#############\n#######.1...#\n########3...#\n#######.#...#\n#######..aa.#\n########.cca#\n#........a.c#\n##.......c..#\n#....#..a...#\n#.......c...#\n#############\n)\n(almost trivial\n#############\n#######...#.#\n#######.a...#\n#######.c...#\n#######.a...#\n#######.caa.#\n#.#.1....cc.#\n#...3....a..#\n#.#.a....c..#\n#.##c.......#\n#############\n)\n(trivial\n#############\n#######.....#\n#######.....#\n########..a.#\n#######.1.c.#\n#######.3...#\n#....a.#a...#\n#....c..c.a.#\n##...a.a..c.#\n#....c.c....#\n#############\n)\n(trivial\n#############\n#######.a...#\n#######.c...#\n#######.....#\n#######.....#\n#######.....#\n#......1aa..#\n#.....#3cc..#\n##..a.a.....#\n#...c.c.....#\n#############\n)\n\n(trivial\n#############\n#######.##..#\n#######.....#\n#######.a...#\n#######.c...#\n#######.....#\n#...a1....a.#\n#...c3....c.#\n#a......aa..#\n#c......cc..#\n#############\n)\n\n(\n(hard but also meh)\n#############\n########....#\n#######.a.1.#\n#######.c.3a#\n#######....c#\n#######...a.#\n#.....a..ac.#\n#.....c..c..#\n#........#a.#\n#.#.#.....c.#\n#############\n)\n(unsolvable :'[\n#############\n#######..#..#\n########....#\n#######.1...#\n#######.3...#\n#######...a.#\n#.......aac.#\n#....a..cc.##\n#....c.a....#\n#......c...##\n#############\n)\n\n((meh)\n(there's an idea to this level, which I like - could it be expanded?)\n#############\n########...##\n#######a..1a#\n#######c..3c#\n#######....a#\n#######....c#\n#aa.........#\n#cc.........#\n#...........#\n#...........#\n#############\n)\n\n(meh\n#############\n########....#\n#######.....#\n#######...#.#\n#######...a.#\n#######...ca#\n#........a.c#\n#...1....c.##\n#...3..a..a.#\n#......c..c.#\n#############\n)\n(Tricky?)\n(meh)\n(\n#############\n#######.....#\n#######.a...#\n#######.c..a#\n#######....c#\n#######.1..a#\n#.a.....3#.c#\n#.c.......a.#\n#.........c.#\n#........#.##\n#############\n)\n(\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#####\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#####\n\n#####\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#####\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n)\n(meh it's ok but I already have somethign like this?)\n(\n#########\n#.a.....#\n#.c.....#\n#...#.#1#\n#......3#\n#.#.a...#\n#..#c...#\n#########\n)\n(\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n##.....##\n##.....##\n###...###\n###...###\n####.####\n####.####\n#########\n\n(meh)\n#########\n#.#.....#\n#.a.....#\n#.....#.#\n#..#.#..#\n#..a1a..#\n#.......#\n##.....##\n##.....##\n###...###\n###...###\n####.####\n####.####\n#########\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.1..a.a..#\n#.3..b.b..#\n#....c.c..#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n)\n(meh)\n(\n#########\n###...###\n##.....##\n#.......#\n#.......#\n#.......#\n#.......#\n##aa1aa##\n##cc3cc##\n###aaa###\n###ccc###\n####a####\n####c####\n#########\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#...1...#\n#...3...#\n##aaaaa##\n##ccccc##\n###aaa###\n###ccc###\n####a####\n####c####\n#########\n\n#########\n#########\n####.####\n###...###\n##.....##\n#.......#\n#.......#\n##aa1aa##\n##cc3cc##\n###aaa###\n###ccc###\n####a####\n####c####\n#########\n)\n\n(\nTRANSFORM\n\nchoose 1 down [ no obstacle | no obstacle ] -> [ player_top | player_bottom ]\nchoose 5 down [ no obstacle | no obstacle ] -> [ crate_top | crate_bottom ]\nchoose 10 [ no crate no player ] -> [ wall ]\n\n----\n\n\n(choose 1 option 0.5 [ wall ] -> []\n+ option 0.5 [ no obstacle ] -> [ wall ])\n\nchoose 5 option 0.2 [ no obstacle ] -> [ wall ]\n+ option 0.2 []->[]\n\nchoose 5 down [ no obstacle | no obstacle ]-> [ crate_top | crate_bottom] \nchoose 1 down [ no obstacle | no obstacle ] -> [ player_top | player_bottom]\n(choose 1 down [ no obstacle | no obstacle ] [crate_top|crate_bottom]-> [ crate_top | crate_bottom] [|])\n\n)\n",[3,2,2,1,1,1,0,3,3,2,3,3,0,0,0,3,0,3,0,3,3,2,2,2,0,1,1,3,2,2,2,1,1,0,0,1,1,2,1,1,3,3,3,3,0,0,0,0,3,3,3,2,1,2,1,1,1,"undo","undo",3,0,1,1,2,1,1],"background wall:0,0,0,0,0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,0,0,0,0,0,\nbackground crate_top:2,background crate_bottom:3,1,1,0,0,0,0,0,background player_top:4,background player_middle:5,\n5,background player_bottom:6,0,0,0,0,0,1,1,1,1,\n0,0,0,1,1,1,1,1,1,0,0,\n0,1,1,1,1,1,1,0,0,1,1,\n1,1,0,1,1,0,0,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,\n1,0,0,0,0,0,0,0,0,0,0,\n",9,"1645544442907.0366"] - ], - [ - "Two-Tone Tango", - ["title Two-Tone Tango\nauthor increpare\nhomepage www.increpare.com\n\nrequire_player_movement\n\n\n========\nOBJECTS\n========\n\nBackground\n#58875a\n\n\nTarget\ntransparent #b8ca58\n00000\n00100\n01110\n00100\n00000\n\n\nWall\n#906f80 #5f4351\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nlightblue\n\nFreund\n#355278\n\nCrate\n#b39b2a transparent\n00000\n01110\n01110\n01110\n00000\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nf = Freund\n* = Crate\n@ = Crate and Target\nO = Target\n\npusher = player or freund or crate\n\nblocker = player or freund or crate or wall\n=======\nSOUNDS\n=======\n\nCrate MOVE 26816907\nsfx1 15668107 (disconnect)\nsfx2 62739107 (connect)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, freund, Wall, Crate\n\n======\nRULES\n======\n\n[ up player | Freund ] -> [ up player | up Freund ]\n[ down player | Freund ] -> [ down player | down Freund ]\n[ left player | Freund ] -> [ left player | left Freund ]\n[ right player | Freund ] -> [ right player | right Freund ]\n\n\nvertical [ up freund | stationary freund ] -> [ up freund | up freund ]\nvertical [ down freund | stationary freund ] -> [ down freund | down freund ]\nvertical [ left freund | stationary freund ] -> [ left freund | left freund ]\nvertical [ right freund | stationary freund ] -> [ right freund | right freund ]\n\n(forward propagation)\n[ > pusher | Crate ] -> [ > pusher | > Crate ]\n\n\n(backwards propagation)\n\n[ > pusher | stationary blocker ] -> [ stationary pusher | stationary blocker ]\n+ vertical [ up freund | stationary freund ] -> [ stationary freund | stationary freund ]\n+ vertical [ down freund | stationary freund ] -> [ stationary freund | stationary freund ]\n+ vertical [ left freund | stationary freund ] -> [ stationary freund | stationary freund ]\n+ vertical [ right freund | stationary freund ] -> [ stationary freund | stationary freund ]\n\n(again forwards propagation)\n[ stationary pusher | > crate ] -> [ stationary pusher | stationary crate ]\n\n[stationary player ]-> cancel\n\n[ < player | stationary freund ] -> sfx1\n[ > player | | stationary freund ] -> sfx2\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1/8\n(could be ok level 1?)\n############\n#..........#\n#....*....o#\n#..f...p...#\n#..f#..p#..#\n############\n\n\nmessage Level 2/8\n(pleasant early)\n#######\n#..f..#\n#..f..#\n#o@...#\n#..p*.#\n#..p#.#\n##....#\n#######\n\n\nmessage Level 3/8\n(ok level 3? no 2)\n######\n#...o#\n##.f##\n#..f.#\n#..*.#\n#p...#\n#p...#\n######\n\n\nmessage Level 4/8\n(Really nice intermediate level!)\n#########\n#p..#...#\n#p....#.#\n#.*.....#\n#....f..#\n#...#f.o#\n#...#...#\n#########\n\n( (Easy but not bad. ok first level?) )\n( ###### )\n( #.#..# )\n( #.o..# )\n( #f...# )\n( #f.*p# )\n( #..*p# )\n( #...o# )\n( ###### )\n\n\n( (maybe ok early level? actually kinda tricky? maybe leave out?) )\n( ########## )\n( #..*...o.# )\n( #...f@...# )\n( #p..f....# )\n( #p..#....# )\n( ########## )\n\n( (p. easy. maybe for start of game. maybe leave out? not outstanding, just ok) )\n( ###### )\n( #o...# )\n( #..*o# )\n( #..p.# )\n( #.fp*# )\n( #.f..# )\n( #.*o.# )\n( ###### )\n\n\n( (easy but ok, maybe level 2-3? so lala) )\n( ########## )\n( #..f..o*.# )\n( #o.f..*p.# )\n( #@.....p.# )\n( ##.....### )\n( ########## )\n\n( (pretty ok? level 1 or 2? okish) )\n( ###### )\n( #..f.# )\n( #p.f.# )\n( #p*..# )\n( #.*.o# )\n( #...*# )\n( #o..o# )\n( ###### )\n\n\n( (Early hard. fine? not too memeorable meh) )\n( ###### )\n( #...o# )\n( #o.o*# )\n( #..f.# )\n( #**f.# )\n( #..p.# )\n( #..p.# )\n( ###### )\n\n\nmessage Level 5/8\n(a bit tricky but I could reason through it, OK)\n######\n#.#.p#\n#...p#\n#o..*#\n#.**o#\n#.f.o#\n#.f..#\n######\n\n\n\n\nmessage Level 6/8\n(late. pretty fun! nice to figure out / work through, if not exactly a lynchpin level)\n######\n#...o#\n#....#\n#...f#\n#..*f#\n#p**o#\n#p.o.#\n######\n\n\nmessage Level 7/8\n(INTERESTING intermediate. got stuck for a weird amount of time lol)\n######\n#o*.o#\n#p..f#\n#p*#f#\n#.*..#\n#....#\n#..o.#\n######\n\n\nmessage Level 8/8\n(funny! late intermediate/early late difficulty. definitely include)\n######\n#p...#\n#p...#\n##*.@#\n#f...#\n#fo..#\n#o.*.#\n######\n\nmessage Congratulations! You are the master of tango.\n\n( (got weirdly stuck for a while, but not hard - late early) )\n( ###### )\n( #...o# )\n( #p...# )\n( #p.@.# )\n( #..*.# )\n( #...f# )\n( #...f# )\n( ###### )\n\n( (ok intermediate? feel like I've solved it before though ,but dont' remmber the solution. maybe pass on this one?) )\n( ####### )\n( #.....# )\n( #.....# )\n( #....p# )\n( ##*..p# )\n( #..f@## )\n( #..f.o# )\n( ####### )\n\n( (easy but not appropriate for eearly game IMO. leave out) )\n( ########## )\n( #o.f...*p# )\n( #..f.o*.p# )\n( #........# )\n( ##.#.....# )\n( ########## )\n\n\n( (Easy ish but not so interesting/useful as intro level?) )\n( ######### )\n( #..o*f.o# )\n( #...*fo*# )\n( #p......# )\n( #p......# )\n( ######### )\n\n( (don't like can realize mistake at the end and need to backtrack) )\n( ########## )\n( ##..o..*p# )\n( #.......p# )\n( #...**.f.# )\n( ##..o.of.# )\n( ########## )\n\n( (trivial) )\n( ########## )\n( #.....po.# )\n( #f..*.p..# )\n( #f.....*.# )\n( #..@.o...# )\n( ########## )\n\n( (trivial) )\n( ########## )\n( #...*o..f# )\n( #...@.#.f# )\n( #p.....*.# )\n( #p......o# )\n( ########## )\n\n\n( (meh. not hard. not fun for me) )\n( ########## )\n( ##...pof.# )\n( #...*p.f.# )\n( #.o...*..# )\n( #..o...*.# )\n( ########## )\n\n\n\n( (perfectly chill/lovely/not hard. wtf? I guess i mistranscribed) )\n( ###### )\n( ##...# )\n( ##...# )\n( ##...# )\n( ##...# )\n( ##p..# )\n( #fp..# )\n( #f.*.# )\n( #o..## )\n( ###### )\n\n\n\n( (meh) )\n( ######### )\n( #....po.# )\n( #...#p..# )\n( ##*.....# )\n( #....f.## )\n( #...#f..# )\n( #...#.#.# )\n( ######### )\n\n( (could be ok as intermediate level? not sure it's conceptually sharp though, but I could solve it with my brain) )\n( ###### )\n( #....# )\n( #..o.# )\n( #p**f# )\n( #po*f# )\n( #..*o# )\n( #o..## )\n( ###### )\n\n\n( (trivialish/boring) )\n( ######## )\n( ####...# )\n( ####...# )\n( ####...# )\n( ####..p# )\n( ####*op# )\n( #f*....# )\n( #f.....# )\n( #o.....# )\n( #..o*..# )\n( ######## )\n\n( (trivialish/boring) )\n( ######## )\n( ####...# )\n( ####.op# )\n( ####.op# )\n( ####.*.# )\n( ####*..# )\n( #......# )\n( #f.....# )\n( #fo*...# )\n( #......# )\n( ######## )\n\n( (hard work, accidentally found solution. skip it) )\n( ######## )\n( ####...# )\n( ####...# )\n( ####...# )\n( ####.o.# )\n( ####.p.# )\n( #.f..p*# )\n( #.f..*.# )\n( #..o*.o# )\n( #......# )\n( ######## )\n\n( (trivial) )\n( ######## )\n( ####...# )\n( ####f..# )\n( ####fo.# )\n( ####...# )\n( ####.*.# )\n( #....o.# )\n( #.*..@p# )\n( #.....p# )\n( #......# )\n( ######## )\n\n\n\n( (trivial) )\n( ######## )\n( ####...# )\n( ####o*o# )\n( ####p..# )\n( ####p..# )\n( ####.*.# )\n( #...o.*# )\n( #.f....# )\n( #.f....# )\n( ######## )\n\n( (trivialish. leave it) )\n( ######## )\n( ####...# )\n( ####...# )\n( ####*o.# )\n( ####*..# )\n( ####...# )\n( #..f.*p# )\n( #..f..p# )\n( #....oo# )\n( ######## )\n\n( (can't figure it out. try solve again later. meh solved it what an anticlimax. screw this level.) )\n( ###### )\n( #f*o.# )\n( #f...# )\n( #*p*o# )\n( #.p*.# )\n( #oo..# )\n( #....# )\n( ###### )\n\n\n( \n\n\n########\n####...#\n####...#\n####...#\n####...#\n####...#\n#......#\n#......#\n#......#\n#......#\n########\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n##########\n\n############\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n\n##########\n######...#\n######...#\n######...#\n######...#\n######...#\n#........#\n#........#\n#........#\n##########\n\n########\n####...#\n####...#\n####...#\n####...#\n####...#\n#......#\n#......#\n#......#\n########\n)\n(transformation\n\nchoose 5 [ ] -> [ wall ]\nchoose 1 down [ no blocker | no blocker ] -> [ player | player ]\nchoose 1 down [ no blocker | no blocker ] -> [ freund | freund ]\nchoose 2 down [ no blocker ] -> [ crate ]\nchoose 2 down [ no wall no player no freund no target ] -> [ target ]\n)\n",[0,2,2,1,3,0,0,0,3,"restart",0,1,"restart",2,0,1,1,1,0,0,0,3,3,2,2,1,3,2,1,0,0,0,3,3,2,1,3,2,1,2,2,1],"background wall:0,0,0,0,0,0,0,\n0,0,background:1,1,background crate target:2,1,1,\n0,0,0,1,1,background target:3,background crate:4,\nbackground player:5,5,0,0,1,1,1,\n1,1,1,0,0,1,1,\n1,1,0,1,0,0,1,\n1,1,background freund:6,6,1,0,0,\n0,0,0,0,0,0,0,\n",3,"1645544569499.8286"] - ], - [ - "Hole-Stuffer", - ["title Hole-Stuffer\nauthor increpare\nhomepage www.increpare.com\n\n\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\n\nWall\n#493c2b #664b28\n00000\n01000\n00100\n00010\n00000\n \n\n\nPlayer\ngreen\n\n\n\nwintoken\ntransparent\n\nrandommoved\ntransparent\n\n\nplayer_1\n#2f484e #c62a6f #852e55 #af2f68\n01111\n23333\n23313\n23133\n23333\n\nplayer_2\n#c62a6f #af2f68 #852e55 #ffffff\n00000\n11211\n12021\n20302\n22022\n\nplayer_3\n#c62a6f #2f484e #af2f68\n00001\n22220\n20220\n22020\n22220\n\nplayer_4\n#852e55 #af2f68 #c62a6f\n01212\n01212\n01212\n01212\n01212\n\n\nplayer_5\n#852e55 #af2f68 #c62a6f #2f484e\n01212\n01212\n01212\n01112\n30003\n\n\n\ncrate\n#2f484e #fca556 #bd5d07 #eb8931\n01110\n23331\n23331\n23331\n02220\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = wall and randommoved\n\nobstacle = wall or crate\npusher = crate or player\n\n\nsprite_player = player_1 or player_2 or player_3 or player_4 or player_5 \n\n\nsprite = sprite_player \n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nwintoken\nrandommoved\nsprite\n\n\n======\nRULES\n======\n\n\n[ stationary randommoved ] [ > pusher | stationary Crate ] -> [ action randommoved] [ > pusher | > Crate ]\n\n[ action randommoved ] [ > pusher | stationary Crate ] -> cancel\n\n[ > pusher | wall ] -> cancel \n\n\n\nlate [ sprite ] -> []\n\n\nlate down [ no player | player | obstacle | obstacle | obstacle ] -> [ | player wintoken | obstacle | obstacle | obstacle ] again\n\n\n\n\nlate right [ player | player | player ] -> [ player player_1 | player player_2 | player player_3 ]\nlate down [ player_1 | | | ] -> [ player_1 | player_4 | player_4 | player_5 ]\nlate down [ player_3 | | | ] -> [ player_3 | player_4 | player_4 | player_5 ]\n==============\nWINCONDITIONS\n==============\n\nsome wintoken\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 4\n\n@###########\n#..........#\n#..........#\n#..........#\n#.ppp......#\n#.p.p......#\n#.p.p..***.#\n#.p.p......#\n#..........#\n#..........#\n############\n\nmessage Level 2 of 4\n\n\n@########\n#..ppp..#\n#..p.p..#\n#..p.p..#\n#..p.p..#\n#..***..#\n#.......#\n#.......#\n#########\n\n\nmessage Level 3 of 4\n\n@######\n#.....#\n#.....#\n#.....#\n#.....#\n#...*.#\n#ppp..#\n#p.p*.#\n#p.p..#\n#p.p*.#\n#######\n\nmessage Level 4 of 4\n\n@########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#..***..#\n#..ppp..#\n#..p.p..#\n#..p.p..#\n#..p.p..#\n#########\n\nmessage Congratulations, you aul hole-stuffer.\n\n\n\n",[3,2,2,1,1,1,0,0,1,1,2,1,1,0,3,3,3,2,1,1,2,3,3,2,1,1,0,0,1,1,3,3,0,1,1,2,2,1,3,2,1,1],"background randommoved wall:0,background wall:1,1,1,1,1,1,1,1,\n1,background:2,2,2,2,background crate:3,2,2,1,\n1,2,2,2,background player player_1:4,background player player_4:5,5,background player player_5:6,1,\n1,2,2,2,background player player_2:7,2,2,3,1,\n1,2,2,2,background player player_3:8,5,5,6,1,\n1,2,2,2,2,2,2,2,1,\n1,2,2,2,2,3,2,2,1,\n1,2,2,2,2,2,2,2,1,\n1,1,1,1,1,1,1,1,1,\n",3,"1645544598726.4905"] - ], - [ - "Wand Spinner", - ["title Wand Spinner\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #5b6ee1\n\n(thanks to bluemelon555 for the assistance, and ggn2, and bvoq )\n\n\n\n========\nOBJECTS\n========\n\nBackground\n#5b6ee1\n\ncrate\n#abb5f1 #5f4a18\n01110\n1...1\n1...1\n1...1\n01110\n\nTarget_h\ntransparent #c71fa9 transparent transparent\n00000\n11111\n22223\n11111\n00000\n\nTarget_v\ntransparent #c71fa9 transparent transparent\n01210\n01210\n01210\n01210\n01210\n\nWall\n#3f3f74\n\nPlayer\n#5b6ee1 #5fcde4 #000000\n01110\n12121\n11111\n11211\n01110\n\nstick_w 1\n#abb5f1 #323c39\n.....\n.....\n00111\n.....\n.....\n\nstick_nw 2\n#abb5f1 #323c39\n.....\n.0...\n..0..\n...1.\n....1\n\nstick_n 3\n#abb5f1 #323c39\n..0..\n..0..\n..1..\n..1..\n..1..\n\nstick_ne 4\n#ffffff #abb5f1 #323c39\n.....\n...1.\n..1..\n.2...\n2....\n\n\nstick_e 5\n#323c39 #abb5f1\n.....\n.....\n00011\n.....\n.....\n\n\nstick_se 6\n#323c39 #abb5f1\n0....\n.0...\n..1..\n...1.\n.....\n\nstick_s 7\n#323c39 #abb5f1\n..0..\n..0..\n..0..\n..1..\n..1..\n\nstick_sw 8\n#323c39 #abb5f1\n....0\n...0.\n..1..\n.1...\n.....\n\nmoved\ntransparent\n\ncon_ne\ntransparent\n\ncon_nw\ntransparent\n\ncon_se\ntransparent\n\ncon_sw\ntransparent\n\ntl\ntransparent\n\n\n\n=======\nLEGEND\n=======\nstick = stick_w or stick_nw or stick_n or stick_ne or stick_e or stick_se or stick_s or stick_sw\nstick_h = stick_e or stick_w\n\nstick_v = stick_n or stick_s\n\n. = Background\n# = Wall\nP = Player\n\n\n9 = target_h\n0 = Target_v\n\ntarget = target_h or Target_v\no = crate\nplayer_or_crate = player or crate\nstick_or_crate = stick or crate\nplayer_or_crate_or_stick = player or crate or stick\n\n@ = wall and tl\n\nobstacle = player or stick or crate or wall\n\na = target_v and stick_n\ns = target_v and stick_s\nd = target_h and stick_w\nf = target_h and stick_e\n\nz = target_v and stick_w\nx = target_v and stick_e\nc = target_h and stick_n\nb = target_h and stick_s\n\n=======\nSOUNDS\n=======\n\nstick move 12743307\nendlevel 58303907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, stick,crate\nmoved\ncon_ne, con_nw, con_se, con_sw\ntl\n\n\n======\nRULES\n======\n\n\n\n[ > player_or_crate | stick_or_crate ] -> [ > player_or_crate | > stick_or_crate ]\n\ndown [ left stick_n no moved | stick_s no moved ] -> [ left stick_nw moved | stick_se moved ]\n+ down [ right stick_n no moved | stick_s no moved ] -> [ right stick_ne moved | stick_sw moved ]\n+ down [ stick_n no moved | left stick_s no moved ] -> [ stick_ne moved | left stick_sw moved ]\n+ down [ stick_n no moved | right stick_s no moved ] -> [ stick_nw moved | right stick_se moved ]\n\n+ right [ down stick_w no moved | stick_e no moved ] -> [ down stick_sw moved | stick_ne moved ]\n+ right [ up stick_w no moved | stick_e no moved ] -> [ up stick_nw moved | stick_se moved ]\n+ right [ stick_w no moved | down stick_e no moved ] -> [ stick_nw moved | down stick_se moved ]\n+ right [ stick_w no moved | up stick_e no moved ] -> [ stick_sw moved | up stick_ne moved ]\n\n\n+ right [ right stick_nw no moved | ] -> [ right stick_n moved | right con_ne ]\n+ right [ up stick_nw no moved | ] -> [ right stick_n moved | right con_ne ]\n+ down [ right con_ne | stick_se ] -> [ | stick_s ]\n\n+ down [ down stick_nw no moved | ] -> [ down stick_w moved | down con_se ]\n+ down [ left stick_nw no moved | ] -> [ down stick_w moved | down con_se ]\n+ right [ down con_se | stick_se ] -> [ | stick_e ]\n\n+ left [ left stick_se no moved | ] -> [ left stick_s moved | left con_se ]\n+ left [ down stick_se no moved | ] -> [ left stick_s moved | left con_se ]\n+ up [ left con_se | stick_nw ] -> [ | stick_n ]\n\n+ up [ up stick_se no moved | ] -> [ up stick_e moved | up con_ne ]\n+ up [ right stick_se no moved | ] -> [ up stick_e moved | up con_ne ]\n+ left [ up con_ne | stick_nw ] -> [ | stick_w ]\n\n\n+ left [ left stick_ne no moved | ] -> [ left stick_n moved | left con_nw ]\n+ left [ up stick_ne no moved | ] -> [ left stick_n moved | left con_nw ]\n+ down [ left con_nw | stick_sw ] -> [ | stick_s ]\n\n+ down [ down stick_ne no moved | ] -> [ down stick_e moved | down con_se ]\n+ down [ right stick_ne no moved | ] -> [ down stick_e moved | down con_se ]\n+ left [ down con_se | stick_sw ] -> [ | stick_w ]\n\n+ right [ right stick_sw no moved | ] -> [ right stick_s moved | right con_sw ]\n+ right [ down stick_sw no moved | ] -> [ right stick_s moved | right con_sw ]\n+ up [ right con_sw | stick_ne ] -> [ | stick_n ]\n\n+ up [ up stick_sw no moved | ] -> [ up stick_w moved | up con_nw ]\n+ up [ left stick_sw no moved | ] -> [ up stick_w moved | up con_nw ]\n+ right [ up con_nw | stick_ne ] -> [ | stick_e ]\n\n\n+ [ stationary tl ] [ > crate | stationary stick_or_crate ] -> [ action tl ] [ > crate | > stick_or_crate ]\n+ [ action tl ] -> [ stationary tl ]\n\n+ [ stationary tl ] [ > stick | stationary stick_or_crate ] -> [ action tl ] [ > stick | > stick_or_crate ]\n+ [ action tl ] -> [ stationary tl ]\n\n[ > player_or_crate_or_stick | wall ] -> cancel\n\nlate [moved]->[]\n\n\n==============\nWINCONDITIONS\n==============\nall Target_h on stick_h \nall Target_v on stick_V\n\n=======\nLEVELS\n=======\n\n\nmessage 1 / 18\n(ok level 1?)\n@###..\n#..#..\n#..###\n#.399#\n#.7.p#\n#..###\n####..\n\n\nmessage 2 / 18\n(kinda easy but not bad?)\n@####.\n#0..##\n#03..#\n##7..#\n.##p.#\n..##.#\n...###\n\n\nmessage 3 / 18\n(easy but fun manipulation? could be level 1 but maybe too constrained?)\n@#####.\n#.3..##\n#.7..0#\n#993p0#\n#..7..#\n#######\n\n( (level 2?) )\n( @##### )\n( #99..# )\n( #.#..# )\n( #....# )\n( #.15.# )\n( #p...# )\n( ###### )\n\n\nmessage 4 / 18\n(ok late-early)\n@######\n#.3.p.#\n#.7..0#\n#1f9.0#\n#.....#\n#######\n\nmessage 5 / 18\n(could be ok easy level)\n.######\n.#99#.#\n@#.15.#\n#.3.#.#\n#pb9..#\n#######\n\nmessage 6 / 18\n(easy enough to think through?)\n@####.\n#..3##\n#.9b.#\n#df..#\n#p...#\n######\n\nmessage 7 / 18\n(simple-enough)\n@#####\n#..a.#\n#15s.#\n#..#0#\n#p..0#\n######\n\n\n\nmessage 8 / 18\n(late-easy kinda fine?)\n@######\n#.#.3.#\n#..0b9#\n#p.z5.#\n#...#.#\n#######\n\n( (not too hard but kinda fun?) )\n( @.#####.... )\n( ###99.##### )\n( #.99...33.# )\n( #.#...#77.# )\n( #.....#..p# )\n( ########### )\n\nmessage 9 / 18\n(reduced above. still solvable)\n.@####....\n##99.#####\n#99...33.#\n#....#77.#\n######..p#\n.....#####\n\nmessage 10 / 18\n@#####.#####\n#...3###.0.#\n#...7....0.#\n#####.p.df.#\n....########\n\nmessage 11 / 18\n(easy. feeling lukewarm about it)\n@######\n#.a...#\n#.s.#.#\n#015..#\n#0p#.##\n#######\n\n\nmessage 12 / 18\n(ok free early level?)\n@#######\n#.3....#\n#.7..99#\n#.3.p.0#\n#.7..#0#\n########\n\nmessage 13 / 18\n(not hard. kinda fun/silly)\n@########\n#p......#\n#.#.#a#.#\n#.15.s99#\n#.#.#.#.#\n#.......#\n#########\n\nmessage 14 / 18\n(ok-ish intermediate level)\n@######\n#.#03.#\n#.307.#\n#.7pc9#\n#99.7.#\n#######\n\n\nmessage 15 / 18\n(slightly tricky + fun trick to notice)\n@#####\n#..3.#\n#.#7.#\n#00.a#\n#0a.s#\n#.7p.#\n######\n\nmessage 16 / 18\n(intermediate?)\n@####.\n#.9c##\n#.9b0#\n#1530#\n#p.7.#\n######\n\nmessage 17 / 18\n(kinda chilll / ok!)\n@######\n#.....#\n#.zfc.#\n#.a.sp#\n#.bdx.#\n#.....#\n#######\n\nmessage 18 / 18\n(hardish but ok?)\n.@####\n##.3.#\n#.07.#\n#.0df#\n#p...#\n######\n\nmessage Congratulations! You've graduated from the college of magicians' assistants with flying colours! \n\n( (I like this level) )\n( @###### )\n( #.a.### )\n( #.sp### )\n( #.3.0.# )\n( #.7.0.# )\n( ####### )\n\n\n(( NOT BAD BUT )(Easyish. ok? not soo interesting) )\n( @###### )\n( #.99.## )\n( #..3.p# )\n( #.3b9.# )\n( #.7.### )\n( ####### )\n\n( (Easy but funish? ok level 2?) )\n( @###### )\n( #.3..p# )\n( #.799.# )\n( #.3...# )\n( #.799.# )\n( #.3...# )\n( #.799.# )\n( ####### )\n\n( (interesting goal, but too bloody hard. not solved but solution gawked at) )\n( @###### )\n( #0p3..# )\n( #0.730# )\n( ##1fb0# )\n( ###...# )\n( ####### )\n\n( (trivial) )\n( @###### )\n( ##.p3.# )\n( #df.7.# )\n( #9930.# )\n( #..70## )\n( ####### )\n\n( (meh tolerable but meh) )\n( @###### )\n( #p0..0# )\n( #.0330# )\n( #.377.# )\n( #9b.#.# )\n( ####### )\n\n( (trivial) )\n( @###### )\n( #.99.p# )\n( #.3.c9# )\n( #.7.7.# )\n( #.df.## )\n( ####### )\n\n( (meh) )\n( @######## )\n( ######### )\n( ###p99.## )\n( ###15..## )\n( ###..#### )\n( ####.#### )\n( ####.#### )\n( ####..### )\n( ##....### )\n( ##....### )\n( ######### )\n( ######### )\n\n( (same old) )\n( @###### )\n( #...30# )\n( #.0.70# )\n( #.z5..# )\n( #..#.p# )\n( ####### )\n\n( (same old) )\n( @######## )\n( #..3....# )\n( ##37....# )\n( #.7.p99## )\n( #...99.## )\n( ######### )\n\n( (same old) )\n( (not hard. ok?) )\n( @######## )\n( #.3.....# )\n( #.799.#p# )\n( #.3..99.# )\n( #.7.....# )\n( ######### )\n\n\n( (meh) )\n( (not hard) )\n( @###### )\n( #p.a..# )\n( #..s15# )\n( #.df..# )\n( #.99..# )\n( ####### )\n\n( (meh) )\n( (intermediate ok?) )\n( @##### )\n( #0...# )\n( #0#30# )\n( #..70# )\n( #151x# )\n( #p..0# )\n( ###### )\n\n\n( (meh trial and error solution) )\n( @##### )\n( #..3.# )\n( #0#7p# )\n( #0.3.# )\n( #0a7.# )\n( #0s..# )\n( ###### )\n\n( (trivial) )\n( @######## )\n( #...p...# )\n( #.3399..# )\n( #.773.00# )\n( #...7.00# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #.3.3...# )\n( #.79b.p.# )\n( #..99...# )\n( #..1599.# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #.3.....# )\n( #.b9.99.# )\n( #...3p15# )\n( #.997...# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #..p..3.# )\n( #....cb.# )\n( #....7c9# )\n( #.99..7.# )\n( ######### )\n\n\n\n\n( (fine? too easy maybe I have enough levels like this) )\n( @##### )\n( #....# )\n( #.#99# )\n( #1515# )\n( #p...# )\n( #.99.# )\n( ###### )\n\n( (kinda kludgy? YIP) )\n( @##### )\n( #...p# )\n( #.#0.# )\n( #150.# )\n( #.015# )\n( #.0..# )\n( ###### )\n\n( (eeh rests around a single mechanism. maybe if it were duplciated multiple times with a level, but not just once) )\n( @.#### )\n( ###..# )\n( #.15p# )\n( #1f90# )\n( #...0# )\n( ###### )\n\n\n\n( (meh driving game) INCOMPLETE BUT ALSO DON'T CARE)\n( @.####... )\n( ###..#### )\n( #.....3.# )\n( #.#..#7.# )\n( #....#.p# )\n( ######### )\n\n\n\n\n\n( @##### )\n( #....# )\n( #.#..# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( (trivial) )\n( @.###### )\n( ..#p99.# )\n( ..#.15.# )\n( ..##.### )\n( ...#.#.. )\n( ..##.#.. )\n( ###..#.. )\n( #....##. )\n( #.#...#. )\n( #...#.#. )\n( ###...#. )\n( ..#####. )\n\n\n\n((test level))\n( @.#####.... )\n( ###...##### )\n( #......33.# )\n( #.#...#77.# )\n( #.....#..p# )\n( ########### )\n\n\n( (meh, don't like that you can randomly need to backtrack if you do things in the wrong order. don't find it fun) )\n( @.#####.... )\n( ###...##### )\n( #......33.# )\n( #.#00.#77.# )\n( #..00.#..p# )\n( ########### )\n\n( (trivial but bad) )\n( @.####... )\n( ###..#### )\n( #..cc99.# )\n( #.#77#..# )\n( #p...#..# )\n( ######### )\n\n\n( @.#####... )\n( ###...#### )\n( #........# )\n( #.#...#..# )\n( #.....#..# )\n( ########## )\n\n\n( @.####... )\n( ###..#### )\n( #.......# )\n( #.#..#..# )\n( #....#..# )\n( ######### )\n\n( @####### )\n( #......# )\n( #......# )\n( #......# )\n( #####..# )\n( ....#### )\n\n\n\n( @####### )\n( .#.....# )\n( .#.....# )\n( ##.....# )\n( #......# )\n( #......# )\n( ######## )\n\n( (meh ok but not so tricky? too much walking about) )\n( @#####..##### )\n( #....####...# )\n( #.33......#.# )\n( #.77#9999...# )\n( #p..######### )\n( #####........ )\n\n( @#####.##### )\n( #....###...# )\n( #........#.# )\n( #...#......# )\n( #...######## )\n( #####....... )\n\n( (meh) )\n( @#### )\n( #990# )\n( #0.0# )\n( #099# )\n( #15.# )\n( #15.# )\n( #33.# )\n( #77.# )\n( #.p.# )\n( ##### )\n\n( @####### )\n( #990099# )\n( #..00..# )\n( #.3153.# )\n( #.7157.# )\n( #...p..# )\n( #......# )\n( ######## )\n\n( @##### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( @###### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( @########### )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( ############ )\n\n( @########### )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #.....15...# )\n( #......p...# )\n( #..........# )\n( #..........# )\n( #.........9# )\n( ############ )\n\n( (dunno!) )\n( @###### )\n( ##..### )\n( ##..### )\n( ##..### )\n( ##..### )\n( ##15### )\n( ##15### )\n( ##15### )\n( #.p...# )\n( #.....# )\n( #.99..# )\n( #.99..# )\n( #.99..# )\n( ####### )\n\n( @####....... )\n( #99..##....# )\n( #..99..##..# )\n( #........### )\n( ###........# )\n( ..##@...15.# )\n( ...#.@#..15# )\n( ...#..#@@.p# )\n( ...#.......# )\n( ...######### )\n\n( @##### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( (nice idea but hard also has a crate) )\n( @##### )\n( #99..# )\n( #o.df# )\n( #.p3.# )\n( #..7.# )\n( ###### )\n\n( @.###### )\n( ..#....# )\n( ..#....# )\n( ..##.### )\n( ...#.#.. )\n( ...#.#.. )\n( ####.#.. )\n( #....##. )\n( #.#...#. )\n( #...#.#. )\n( ###...#. )\n( ..#####. )\n\n\n\n( @####. )\n( #...## )\n( #....# )\n( ##...# )\n( .##..# )\n( ..##.# )\n( ...### )\n\n\n( @.....##### )\n( ......#...# )\n( ......#.#.# )\n( #######.#.# )\n( #.........# )\n( #.#.#.#.### )\n( #.......#.. )\n( #########.. )\n\n( @######## )\n( #.......# )\n( #.#.#.#.# )\n( #.......# )\n( #.#.#.#.# )\n( #.......# )\n( ######### )\n\n\n\n( @###.. )\n( #..#.. )\n( #..### )\n( #....# )\n( #....# )\n( #..### )\n( ####.. )\n\n\n( @######## )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #......p# )\n( #.9c....# )\n( #997.3a.# )\n( #....7s.# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #..p..3.# )\n( #....cb.# )\n( #....7c9# )\n( #.99..7.# )\n( ######### )\n\n( (fine/tricky but too like other levels) )\n( @##### )\n( ##30.# )\n( #.70.# )\n( #df..# )\n( #.p..# )\n( ###### )\n\n( @###### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( @############ )\n( #...........# )\n( #...........# )\n( #...........# )\n( #...........# )\n( ############# )\n\n( @######## )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( ######### )\n\n( @########### )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( ############ )\n\n( @.#####.... )\n( ###...##### )\n( #.........# )\n( #.#...#...# )\n( #.....#...# )\n( ########### )\n\n( @................ )\n( ................. )\n( ........9........ )\n( .....999......... )\n( ................. )\n( ......p.......... )\n( .3333.....2..4... )\n( .7777...15.68.... )\n( ................. )\n( ................. )\n( ................. )\n( ................. )\n\n(TRANSFORMATION\n==========\nTRANSFORM\n==========\n\n\nchoose 5 [ ] -> [ wall ]\nchoose 1 [ no wall ] -> [ player ]\n\nchoose 2 option 0.5 right [ no obstacle | no obstacle ] -> [ stick_w | stick_e ]\n+ option 0.5 up [ no obstacle | no obstacle ] -> [ stick_s | stick_n ]\n\n\nchoose 2 option 0.5 right [ no wall no player no target | no wall no player no target ] -> [ target_h | target_h ]\n+ option 0.5 up [ no wall no player no target | no wall no player no target ] -> [ target_v | target_v ]\n\n\n\n)\n\n",[2,3,3,0,0,0,2,2,2,1,1,1,1,0,0,3,3,0,3,3,2,2,"undo",2],"background tl wall:0,background wall:1,1,1,1,1,1,\nbackground:2,2,2,background target_h:3,1,1,1,\n2,background stick_w:4,3,1,1,background target_v:5,5,\nbackground stick_e:6,2,1,1,2,background stick_n:7,background stick_s target_h:8,\n4,1,1,2,2,background player target_h:9,6,\n1,1,1,1,1,1,1,\n",27,"1645544636691.3945"] - ], - [ - "Acorn Scorchery Paradise", - ["title Acorn Scorchery Paradise\nauthor increpare\nhomepage www.increpare.com\n\n\nbackground_color #3f3f74\n\n========\nOBJECTS\n========\n\nBackground\n#3f3f74 #59598f\n00000\n00000\n00100\n00000\n00000\n\n\n\nTarget\norange transparent transparent\n00000\n01110\n01210\n01110\n00000\n\nWall\n#323c39\n00000\n00000\n00000\n00000\n00000\n\n\nPlayer\n#847e87 #a33c88\n00000\n01110\n00000\n..0..\n.0.0.\n\n\nCrate\n#3f3f74 lightgreen green\n.111.\n21112\n21112\n22222\n.222.\n\n\nCrate_HOT\n#3f3f74 #ff0018 #ac3232\n.111.\n21112\n21112\n22222\n.222.\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\ncrate_or_player = Crate or Player or Crate_HOT\nany_Crate = Crate or Crate_HOT\npush_obstacle = wall or crate or Crate_HOT\nobstacle = wall or crate or Crate_HOT or Player\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 34709107\nendlevel 27179907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, Crate_HOT\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate_hot ]\n\n[ > crate_or_player | stationary push_obstacle ] -> cancel\n\n[ stationary crate_hot ] [ ^ crate_hot ] -> [ crate ] [ ^ Crate_HOT ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on any_Crate\n\n=======\nLEVELS\n=======\n\nmessage 1/5\n(nice!)\n######\n#.#..#\n#.*@.#\n#.p..#\n##.o.#\n.#####\n\nmessage 2/5\n(fine)\n#####\n#o..#\n#o..#\n#**@#\n#.p.#\n#####\n\nmessage 3/5\n(lol)\n######\n#p...#\n#.*..#\n#o.@.#\n##.@.#\n.#####\n\nmessage 4/5\n(fine)\n#####\n#opo#\n#.*.#\n#.*.#\n#o*.#\n#####\n\n\n(youAtExample suggested 'vive of five' when I was looking for stupid homophones)\nmessage 5/5 \n(fiiineish)\n######\n#.o.o#\n#....#\n#.**.#\n#.p#.#\n######\n\n\n\nmessage Congratulations! You are the best Acorn Scorcherer in Acorn Scorchery Paradise!\n\n( (meh not sure) )\n( ..#### )\n( ###.o# )\n( #o*..# )\n( #.*..# )\n( #p.@.# )\n( ###### )\n\n( ##### )\n( #...# )\n( #...# )\n( #...# )\n( #...# )\n( ##### )\n\n\n( ###### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( ####### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( ###### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( ######### )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( ######### )\n\n( ######## )\n( #......# )\n( #......# )\n( #......# )\n( #......# )\n( #......# )\n( #......# )\n( ######## )\n\n\n\n(Transformation\n\nchoose 5 [ ] -> [ wall ]\nchoose 1 [ no wall ] -> [ player ]\nchoose 3 [ no obstacle ] -> [ crate ]\nchoose 3 [ no player no wall no target ] -> [ target ]\n\n)\n",[3,0,0,2,1,0,2,1,0,2,3,0,0,2,0,2,1,0,0,3,3,2,3,0,0,"restart",0,0,0,0,2,1,0,0,3,0,3,0,2,1,2,2,1,0,"restart",1,0,2,3,0,1,2,3,3,0,2,1,1,0,0,2,3,"undo","undo","undo",3,0,0,"restart",1,0,0,2,3,3,0,2,1,1,0,0,2,2,3,3,0,1,0,0,3,2,1,2,2],"background wall:0,0,0,0,0,\n0,0,background crate target:1,background target:2,background crate:3,\nbackground:4,0,0,4,4,\n4,background player:5,0,0,4,\n4,background crate_hot target:6,4,0,0,\n0,0,0,0,0,\n",3,"1645544663060.2773"] - ], - [ - "Match-Maker", - ["title Match-Maker\nauthor increpare\nhomepage www.increpare.com\n( debug )\n( verbose_logging )\nrun_rules_on_level_start\n\ncolor_palette c64\nbackground_color green\n\n========\nOBJECTS\n========\n\nBackground\ngreen\n\nWall\ndarkgreen\n\nPlayer\ndarkblue lightgray \n.000.\n01010\n00000\n01110\n.000.\n\nCrate\npurple\n.....\n.000.\n.000.\n.000.\n.....\n\nhands_up\npink\n.0.0.\n.....\n.....\n.....\n.....\n\nhands_down\npink\n.....\n.....\n.....\n.....\n.0.0.\n\nhands_left\npink\n.....\n0....\n.....\n0....\n.....\n\nhands_right\npink\n.....\n....0\n.....\n....0\n.....\n\ncon_up\ntransparent\n\ncon_down\ntransparent\n\ncon_left\ntransparent\n\ncon_right\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\no = Background\n@ = crate\nhands = hands_up or hands_down or hands_left or hands_right\n\nobstacle = player or crate or wall\n\nplayer_or_crate = player or crate\n\ncon = con_up or con_down or con_left or con_right\n\nw = crate and hands_up\ns = crate and hands_down \na = crate and hands_left\nd = crate and hands_right\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 35405507\nsfx0 3325507 (love)\nsfx1 48219704 (breakup)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nhands_up\nhands_down\nhands_left\nhands_right\ncon_up\ncon_down\ncon_left\ncon_right\n\n\n======\nRULES\n======\n\n\n\n[ > player_or_crate | crate ] -> [ > player_or_crate | > Crate ]\n[ > crate hands ] -> [ > crate > hands ]\n\n\n[ > crate | wall ] -> cancel\n\n[ > crate | no obstacle ] -> [ | crate ]\n[ > hands | no hands ] -> [ | hands ]\n\nup [ hands_up | no hands_down ] -> [|] sfx1\ndown [ hands_down | no hands_up ] -> [|] sfx1\nleft [ hands_left | no hands_right ] -> [|] sfx1\nright [ hands_right | no hands_left ] -> [|] sfx1\n\nright [ crate | crate ] -> [ crate con_right | crate con_left ]\ndown [ crate | crate ] -> [ crate con_down | crate con_up ]\n\n[no hands con_up no con_down no con_left no con_right ] -> [ action hands_up ]\n[no hands no con_up con_down no con_left no con_right ] -> [ action hands_down ]\n[no hands no con_up no con_down con_left no con_right ] -> [ action hands_left ]\n[no hands no con_up no con_down no con_left con_right ] -> [ action hands_right ]\n\n[con]->[]\n\nup [ hands_up | no hands_down ] -> [|]\ndown [ hands_down | no hands_up ] -> [|]\nleft [ hands_left | no hands_right ] -> [|]\nright [ hands_right | no hands_left ] -> [|] \n\n\n[ action hands ] -> sfx0\n\n==============\nWINCONDITIONS\n==============\n\nall crate on hands\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 9\n\n(easyish. ok?)\n######\n#*...#\n##..*#\n#..*.#\n#.*.p#\n######\n\n( (ok first level ish) )\n( ......#####. )\n( ......#...#. )\n( ###...#...#. )\n( #*#####...#. )\n( #.#dada**### )\n( #..**......# )\n( #.#dadada### )\n( #*########.. )\n( #.#......... )\n( #p#......... )\n( ###......... )\n\n\nmessage Level 2 of 9\n\n(ok?)\n.#####\n##..*#\n#..*p#\n#da.##\n#.#.#.\n#...#.\n#####.\n\nmessage Level 3 of 9\n(ok! early intermediate?)\n#######.\n#.p...#.\n#..***##\n###*...#\n..######\n\nmessage Level 4 of 9\n(late-early? pretty entertaining gestalt-wise)\n######\n#.s#.#\n#.w.*#\n#....#\n#..#*#\n#..**#\n#.p..#\n######\n\nmessage Level 5 of 9\n\n(ok? entertaining? slightly? ok level? ok let's say it's ok)\n########\n#..da..#\n#..***.#\n#p..*..#\n#####..#\n....####\n\n\nmessage Level 6 of 9\n(early-intermediate ok?)\n######\n#p...#\n#..da#\n#..*.#\n#*.*##\n#..*##\n#....#\n######\n\n\n\nmessage Level 7 of 9\n(early-intermediate? easy/likeable)\n#######\n#....##\n#.da..#\n#.##*.#\n#..#da#\n#p.*..#\n#######\n\nmessage Level 8 of 9\n(AH. OK? If I@m totally stuck it could be a last level? but not...a *good* one)\n(genuinely tricky. not solved yet)\n#######\n#.#...#\n#*s..s#\n#.w#*w#\n#..p..#\n#..####\n#######\n\n\nmessage Level 9 of 9\n(didnae solve)\n######\n#....#\n#.sda#\n#.w..#\n#*p**#\n#...*#\n######\n\nmessage Congratulations. That was really good!\n\n=======================\n(\n\n(consider pruning)\n(weirdly non-obvious :] )\n######\n#.#.##\n#*#.##\n#.p*.#\n#.*..#\n#.*.##\n######\n\n(consider pruning)\n(Easy but ok?)\n##########\n##..p..*.#\n#.**...###\n##.*.#..##\n#.#...####\n##########\n\n\n\n(consider pruning)\n(weirdly engaging)\n######\n#.#.##\n#.#.p#\n#*.s.#\n#..w.#\n#*..##\n######\n\n\n(I like it - late-easy!)\n##########\n#.#.######\n#..*p*...#\n#..#*#*###\n#........#\n##########\n\n(intermediate ok hmm)\n#######\n#.*...#\n#...#.#\n##*..##\n##*.#.#\n#.....#\n#p#.*.#\n#######\n\n(alternative version of above:)\n########\n#.*..###\n#...####\n##s.####\n##w.####\n#......#\n#p#..*.#\n########\n\n\n(early hard? I think it's ok? just separate the parts)\n(dunno how to solve)\n#######\n#.....#\n#da***#\n#*.*..#\n#.*p#.#\n#.#...#\n#.....#\n#######\n\n======================\n\n\n#######\n#.....#\n#.....#\n#.....#\n#ppp..#\n#ppp..#\n#ppp..#\n#######\n\n\n(too easily accidentally solvable? maybe/maybe not! ok level 2?)\n#######\n#.*...#\n#.#.###\n#p.s.##\n#.#w###\n#.*...#\n#######\n\n(simple? just tidying up)\n#########\n#..*.##.#\n##.*##..#\n#.....*##\n#****...#\n#.*##.p.#\n#..#.##.#\n#########\n\n\n(simple? ok intro?)\n######\n##.#.#\n#.#*##\n#**..#\n#..*.#\n##p..#\n######\n\n\n\n(ok!)\n######\n#...*#\n#da*.#\n#.p..#\n#.***#\n#.*..#\n######\n\n(intermediate eh)\n######\n#....#\n#.*.s#\n#.*.w#\n#***.#\n#*..p#\n######\n\n(early intermediate / meh)\n######\n#.da.#\n#.*..#\n#.*..#\n#****#\n#.p..#\n######\n\n(it's fine but is it fun? ok maybe a bit but not a lot)\n######\n#....#\n#.*..#\n#.***#\n#p.*.#\n#.**.#\n#*...#\n######\n\n(meh too mcuh work; couldn't remember the solution)\n(visually cute. bottom two blocks unnecessary?)\n######\n#....#\n#.**.#\n#.**.#\n#p*.*#\n#.da.#\n######\n\n(dunno. not awful. maybe I'm just tired.)\n######\n#....#\n#.*..#\n#da*.#\n#p**.#\n#.da.#\n######\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n######\n#....#\n#.#..#\n#....#\n#....#\n#....#\n######\n\n\n(meh?)\n######\n#.*..#\n#p#..#\n#.da.#\n#....#\n#.*..#\n######\n\n(yeah fine? no it's not)\n######\n#.*..#\n#.#*##\n#.*.##\n#p..##\n##.*.#\n######\n\n\n\n\n(not bad. easy but not bad)\n##########\n#....#.###\n#.....*.##\n####.*.*.#\n#.#.##*.p#\n##########\n\n(trivial)\n##########\n#....*..*#\n#...##*..#\n#.*....#.#\n#...p....#\n##########\n\n\n\n\n(easy but not terrible but not great)\n######\n#*..##\n##.*##\n#..*.#\n#....#\n#.#*p#\n##...#\n######\n\n(easy. not good not bad)\n######\n#..*.#\n####.#\n##..p#\n#.**.#\n#..#.#\n#..*.#\n######\n\n(early intermediate ok?)\n#########\n#..#..###\n###.*.*.#\n#..#..*##\n####.#*.#\n#.*.p..##\n#.*.....#\n#...#..##\n#########\n\n\n\n\n(boring)\n#######\n#.#...#\n#da...#\n#...*##\n#dap..#\n#..*#.#\n#######\n\n\n(trivialish/boring//routine)\n#######\n#*#*..#\n#....##\n#..da.#\n##..**#\n#.p.**#\n#.....#\n#######\n\n(trivialish/boring//routine)\n#######\n#da.#.#\n#..**.#\n#..**.#\n#.....#\n#*..p.#\n##*..##\n#######\n\n(kinda pleasing; nah)\n..####...\n###..####\n#..s.*..#\n#.#w.#.*#\n#....#p.#\n#########\n\n(ok intermediate. yeah but nah)\n########\n#.p....#\n#.s...*#\n#.w***.#\n#####..#\n....####\n\n(so lala intermediate)\n######.#####\n#.*..###...#\n#.da***..#.#\n#...#......#\n#.p.########\n#####.......\n\n(trivial)\n#######\n#.#...#\n#.s...#\n#.w*.##\n#..p..#\n#.###.#\n#..*..#\n#######\n\n\n(trivial)\n#######\n#.*.#.#\n#.#.#.#\n#...*.#\n##.s..#\n#.pw..#\n##.#.##\n#######\n\n\n\n(trivial)\n#######\n#...*.#\n##..#.#\n#..**.#\n#..#..#\n#.....#\n#.*p..#\n#######\n\n(trivial)\n######\n#....#\n#.s###\n#*w#.#\n#.p*.#\n#.*..#\n#.*..#\n######\n\n(trivial)\n######\n#....#\n#....#\n#*da##\n#*...#\n#p..*#\n##*..#\n######\n\n(ok but not good enoguh? or maybe yeah for an early level but I'm not sure)\n######\n#....#\n#..**#\n#.***#\n#*#.##\n#p...#\n#....#\n######\n\n(ok intermediate but also nah)\n######\n#....#\n#*#.*#\n###..#\n#..s.#\n#**w.#\n#.p..#\n######\n\n(trivial)\n######\n##.#.#\n##*da#\n#....#\n#.s..#\n#*w..#\n#.p..#\n######\n\n(trivial)\n######\n#.**.#\n#.**.#\n#..*.#\n#.p..#\n#..*##\n#....#\n######\n\n(meh)\n######\n#...s#\n#...w#\n#..*.#\n##s..#\n##w#*#\n#.p..#\n######\n\n(boring)\n######\n#...##\n#..**#\n#..*.#\n#.**.#\n#*..##\n#.p..#\n######\n\n(boring)\n######\n#.*..#\n##*..#\n#.**.#\n##.**#\n#.p..#\n##.###\n######\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n(boring)\n######\n#.da.#\n#.*..#\n#..**#\n#..*.#\n#..da#\n#.p..#\n######\n\n(boring)\n######\n#....#\n#...*#\n#s...#\n#w.da#\n#p***#\n#....#\n######\n\n(boring)\n######\n#....#\n#...*#\n#.sda#\n#pw..#\n#..s.#\n#.*w.#\n######\n\n(boring)\n######\n#....#\n#..**#\n#..**#\n#.p*.#\n#....#\n#da.*#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n##########\n\n(boring)\n##########\n#.#.*.#..#\n#.*.***.##\n#.#.....##\n#.##p.*..#\n##########\n\n(boring)\n##########\n####*..*.#\n#....#...#\n#.p***..##\n##...*.#.#\n##########\n\n(boring)\n##########\n#..#.#.#.#\n#*...da*.#\n#..da....#\n#p.###...#\n##########\n\n(boring)\n##########\n#....*s.##\n##da..w..#\n#..p#...##\n#*..##.#.#\n##########\n\n############\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n(boring)\n############\n#..#...**..#\n#.**.#*....#\n#....*.##.##\n##..#p.#...#\n############\n\n(boring)\n############\n#..#...#...#\n#.*..#..*s.#\n#p...#s##w.#\n#.#...w....#\n############\n\n(boring)\n############\n##.....da..#\n#...#s...*.#\n#.#p.w..#..#\n#.#.#...*.##\n############\n\n(not boring kinda funny but also nope)\n############\n#.....##...#\n##........##\n#*..*.#.*.*#\n#*.#p#..*.##\n############\n\n(boring)\n############\n#*.#.#...#.#\n#...da*....#\n#.##p.da...#\n#.##...#...#\n############\n\n(boring)\n############\n#*...*#.#..#\n#.#..*....##\n##...**.#..#\n#.#.p.*...##\n############\n\n(boring)\n############\n#....s.....#\n#..##w...s.#\n#.*p..#*#w.#\n#.#.#....###\n############\n\n(boring)\n############\n#..##.#....#\n#####*#.*..#\n#p#.s...*..#\n#...w.#.*#.#\n############\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n(boring)\n#######\n#.#..##\n#..**.#\n#...*##\n##...##\n##pda.#\n#..*..#\n#######\n\n\n(boring)\n#######\n#.....#\n#da...#\n#.*...#\n##*p..#\n#.*..*#\n##....#\n#######\n\n\n(boring)\n#######\n##...*#\n##....#\n#.....#\n#...*##\n#.***.#\n#p*..##\n#######\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n(meh)\n#######\n#.#..##\n#..**.#\n#...*##\n##...##\n##pda.#\n#..*..#\n#######\n\n(meh)\n#######\n#.*.s.#\n###.w##\n#.....#\n###.s.#\n#..pw*#\n#...#.#\n#######\n\n(ok but not great? meh?)\n#######\n#.....#\n#.....#\n#..da.#\n#.##*.#\n#..**.#\n#p.*#.#\n#######\n\n(trivial)\n#######\n##...*#\n#.*.#.#\n##....#\n#.p.#.#\n#.***.#\n#...*.#\n#######\n\n(easy not great?)\n#######\n#...###\n#.da*.#\n#.##..#\n#.....#\n#pda..#\n#...*.#\n#######\n\n(meh. intentionally solvable. but good? idk)\n#######\n#.s.s.#\n#.w*w.#\n#..*..#\n#....##\n#*p...#\n##*...#\n#######\n\n(trivial)\n#######\n#*....#\n#**...#\n#..s*##\n#..w..#\n#..s..#\n#p.w..#\n#######\n\n(trivial)\n#######\n#.....#\n#.....#\n#*....#\n#pda*.#\n#.#da.#\n#..**.#\n#######\n\n(trivial)\n#######\n#.....#\n#.....#\n#...**#\n#.#**.#\n#*pda.#\n#..#*.#\n#######\n\n(trivial kinda nice but trivial)\n#######\n##.#..#\n#.....#\n#..s..#\n#daw*.#\n#.#.s.#\n#.p.w*#\n#######\n\n(trivial)\n#######\n#.#...#\n#..**.#\n#..**##\n#**p.*#\n#*.#..#\n#.....#\n#######\n\n(trivial)\n#######\n#..*.##\n#s....#\n#w...*#\n#p..da#\n#...*.#\n#...*.#\n#######\n\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n######\n#....#\n#....#\n#....#\n######\n\n#####\n#...#\n#...#\n#...#\n#####\n\n########\n#......#\n#......#\n#......#\n#......#\n#......#\n#......#\n########\n\n(meh. actually ok to solve but not great?)\n########\n#.#*..*#\n#..***##\n#..s...#\n#.#w...#\n#..p#.##\n#...*.##\n########\n\n(meh)\n########\n#.*..*.#\n#.#.s*.#\n##..ws##\n#...*w.#\n#.p.#..#\n#......#\n########\n\n(trivial)\n########\n##.....#\n#.da...#\n##...###\n##.da.*#\n#sp....#\n#w.#..*#\n########\n\n(trivial)\n########\n#da....#\n#..*#..#\n#...#s.#\n#*#s.w.#\n#.pw.#.#\n#...#..#\n########\n\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n(trivial)\n#########\n#.......#\n#..s....#\n#.*w...##\n#.....###\n#dap.#.##\n#..#..*##\n##.....##\n#########\n\n(trivial)\n#########\n#..#..###\n###.*.*.#\n#..#..*##\n####p#*.#\n#.s....##\n#.w.....#\n#...#..##\n#########\n\n(boring)\n#########\n#..*....#\n#.#*....#\n#..da...#\n###....*#\n#.#p##..#\n#...*..##\n#....##.#\n#########\n\n(simplified a part of this and sent it to the top)\n#########\n#...#..##\n#.da##..#\n##..*...#\n#..*p...#\n#da.#...#\n#.#.#..##\n#....####\n#########\n\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n\n\n#######\n#.....#\n#.#.#.#\n#.....#\n##.#.##\n##...##\n#######\n\n#######\n#.....#\n#.#.#.#\n#.....#\n#.#.#.#\n#.....#\n#######\n\n########\n#.....##\n#.#.#.##\n#......#\n##.#.#.#\n##.....#\n########\n\n#########\n#.......#\n#.#.#.#.#\n#.......#\n#.#.#.#.#\n#.......#\n#########\n\n##########\n#.......##\n#.#.#.#.##\n#........#\n##.#.#.#.#\n##.......#\n##########\n\n#########\n#.......#\n#.#.#.#.#\n#.......#\n#.#.#.#.#\n#.......#\n#.#.#.#.#\n#.......#\n#########\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n########\n#......#\n#......#\n#......#\n#####..#\n....####\n\n\n\n(trivial)\n########\n#...da.#\n#.****.#\n#......#\n#####.p#\n....####\n\n(trivial)\n########\n#*.....#\n#****..#\n#p.*...#\n#####..#\n....####\n\n(trivial)\n########\n#......#\n#.*.*..#\n#.*da*.#\n#####.p#\n....####\n\n(trivial)\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#OOO...#\n#...########\n#####.......\n\n\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n..######\n..#.OOP#\n..#.**.#\n..##.###\n...#.#..\n...#.#..\n####.#..\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\n(hmm. ok? meh)\n..######\n..#...p#\n..#.*..#\n####*###\n#..*.##.\n#.#...#.\n#.*.#.#.\n###...#.\n..#####.\n\n(hmm. not good?)\n...###..\n...#.#..\n####*#..\n#.*..##.\n#.#*..#.\n#..*#.#.\n###..p#.\n..#####.\n\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\n\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\n\n(I kinda like it, but now that I'm such an EXPERT it just doesn't do it for me)\n(want to solve but haven't yet. has the look of an ok final level?)\n######\n##.###\n#...##\n#.**.#\n#**..#\n#p..*#\n#.*.##\n######\n\n\n(meh)\n(can't solve. could be ok though)\n######\n#..###\n#.**##\n#.**.#\n#p.*.#\n#*.#.#\n#....#\n######\n\n\n\n\n\n(trivial)\n(nope not solved but nope)\n#######\n#.#...#\n#.s..*#\n#.w*s.#\n#.#*w.#\n##..*.#\n#.#..p#\n#######\n\n(trivial)\n(nope not solved but nope)\n#######\n#..#*.#\n#.s**.#\n#.w.s.#\n#..*w.#\n#p...##\n#.##.##\n#######\n\n(meh I guess it might be ok but meh)\n(stuck)\n#######\n#..##.#\n#**...#\n#.*.#.#\n#.sp*.#\n##w.#.#\n#...#.#\n#######\n\n\n\n\n(didnae solve)\n######\n#....#\n#.sda#\n#.w..#\n#*p**#\n#...*#\n######\n)\n\n(\nTRANSFORMS\n\n\n[player]->[]\n[crate]->[]\n\n(choose 2 [ player ] -> [ no player ] )\n(choose 2 [ no player ] -> [ wall ])\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 1 option 0.5 right [ no obstacle | no obstacle ] -> [ crate hands_right | crate hands_left]\n+ option 0.5 down [ no obstacle | no obstacle ] -> [ crate hands_down | crate hands_up ]\n+ option 0.5 [ no obstacle | no obstacle] -> [crate| crate]\n\n)\n",[2,2,3,3,0,1,0,3,1,2,2,2,2,2,3,0,0,0],"background wall:0,0,0,0,0,0,\n0,0,0,background:1,1,1,\nbackground crate:2,1,1,0,0,1,\n1,1,1,1,1,0,\n0,background crate hands_down:3,background crate hands_up:4,background player:5,1,1,\n1,0,0,2,3,4,\n0,0,1,0,0,0,\n0,0,0,0,0,0,\n",11,"1645544739914.9763"] - ], - [ - "Pushy-V Pully-H", - ["title Pushy-V Pully-H\nauthor increpare\nhomepage www.increpare.com\nbackground_color darkgreen\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkgray\n\nPlayer\nblue\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nCrate\ngreen gray\n11111\n0...0\n0...0\n0...0\n11111\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nobstacle = player or crate or wall\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\nvertical [ > Player | Crate ] -> [ > Player | > Crate ]\nhorizontal [ < Player | Crate ] -> [ < Player | < Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 11\n\n.########\n##o.....#\n#...*...#\n#*o.o.*.#\n##.p..###\n.######..\n\nmessage level 2 of 11\n(level 1?)\n(soluble)\n#######\n#.....#\n#.O*#.#\n#.@@P.#\n#.....#\n#######\n\nmessage level 3 of 11\n....####.\n#####..##\n#.......#\n#.**.oo.#\n#.**.oo.#\n#...p...#\n#########\n\n\nmessage level 4 of 11\n#########\n#.....#p#\n#.o..*.@#\n#...@...#\n#...##..#\n#########\n\n\nmessage level 5 of 11\n(soluble)\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 6 of 11\n(soluble)\n.#####\n.#...#\n.#.O.#\n.#.@.#\n##.@.#\n#..*.#\n#..P.#\n######\n\nmessage level 7 of 11\n\n(soluble)\n####...\n#..####\n#.....#\n#.O*O.#\n#.*P*.#\n#.O*O.#\n#.....#\n#######\n\nmessage level 8 of 11\n#########\n#.......#\n#..*.*..#\n#.*ooo*.#\n#..opo..#\n#.*ooo*.#\n#..*.*..#\n#.......#\n#########\n\nmessage level 9 of 11\n#######\n#..#..#\n#*.#*.#\n#..#..#\n#..o..#\n##o.*.#\n.#op..#\n.######\n\nmessage level 10 of 11\n(soluble)\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\nmessage level 11 of 11\n########\n#......#\n#.#..#.#\n#..@@..#\n#.*o@..#\n#.#..#.#\n#..p...#\n########\n\nmessage Congratulations! You don't just push the push, you pull the pull!\n\n\n\n(\n\n\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n\n\n#############\n#...........#\n#...........#\n#...........#\n#..***.ooo..#\n#..*p*.o.o..#\n#..***.ooo..#\n#...........#\n#...........#\n#...........#\n#############\n)\n\n(\n#########\n#..o....#\n#...#p..#\n#*.*oo.*#\n#.......#\n#########\n)\n\n( ######### )\n( ##o.....# )\n( #...*...# )\n( #*o.o.*.# )\n( ##.p..#.# )\n( ######### )\n\n\n(\n(soluble)\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n)\n\n\n\n\n\n\n\n(\n\n(soluble)\n########\n#......#\n#.*O*O.#\n#PO*O*.#\n#.*O*O.#\n#......#\n########\n)\n\n(\n\n\n\n(insoluble)\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n(insoluble)\n#######\n#..@..#\n#..P.O#\n##*.###\n.#..#..\n.####..\n\n(insoluble)\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n\n(insoluble)\n#####.\n#...#.\n#O#.##\n#....#\n#O...#\n###.##\n#P**#.\n#...#.\n#####.\n\n\n(insoluble)\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\n(insoluble)\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#OOO...#\n#...########\n#####.......\n\n(insoluble)\n######\n#....#\n#.**.#\n#..*.#\n###..#\n.#O.##\n.#O.#.\n.#O.##\n.#...#\n.#.#.#\n.#.P.#\n.#####\n\n(insoluble)\n..######\n..#.OOP#\n..#.**.#\n..##.###\n...#.#..\n...#.#..\n####.#..\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\n\n\n(insoluble)\n.#####......\n.#...#......\n##.#.#..####\n#....####..#\n#.#......*O#\n#...#####*O#\n#####...#.P#\n........####\n\n\n(insoluble)\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\n\n\n\n\n(insoluble)\n...####\n..##PO#\n.##.*.#\n##..*.#\n#O...##\n######.\n\n(insoluble)\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\n\n(insoluble)\n#####...\n#...#...\n#.#P#...\n#...#...\n#.#*#...\n#...#...\n#.#*####\n#...OOO#\n###*##.#\n..#....#\n..######\n\n\n)\n\n(\n\nTRANSFORMATION\n\n[ player ] -> []\n[ crate ] -> []\n[ target ] -> []\n\nchoose 3 [ no wall ] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player no target ] -> [ target ]\n\n)\n",[0,0,2,2,1,1,0,3,2,3,3,3,3,1,0,3,0,1,1,0,0,1,1,0,1,2,2,1,2,2,1,2,2,2,3,3,0,3,3,2,1,1,0,1,1,0,0,0,3,1,0,0,3,3,3,2,1,2,2,2,3,2,3,0,0,0,0,1,1,2,1,1,0,0,1,3,2,3,0,1,1,1,2,2,2,2,2,0,2,3,3,3,0,1,3,3,2,1,1,0,0,0,2,0,0],"background wall:0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,1,\n1,0,0,1,background target:2,background crate:3,background crate target:4,\n1,1,0,0,3,background player:5,2,\n1,2,1,0,0,1,2,\n3,4,3,1,0,0,1,\n1,1,1,1,1,0,0,\n0,0,0,0,0,0,0,\n",19,"1645544759965.9036"] - ], - [ - "Crates move when you move", - ["title Crates move when you move\nauthor increpare\nhomepage www.increpare.com\n\n(\n\ntools used during creation:\n\nhttps://dekeyser.ch/puzzlescriptmis/\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\nnoaction\nbackground_color darkblue\n========\nOBJECTS\n========\n\nBackground\ndarkblue\n\n\nTarget\ndarkgreen\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkbrown\n\nPlayer\nOrange Orange Orange Orange\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nlightgreen\n00000\n0...0\n0...0\n0...0\n00000\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nobstacle = player or crate or wall\n\n=======\nSOUNDS\n=======\n\ncrate move 25044707\nsfx0 25044707\n\nendlevel 84712900\nstartlevel 16124700\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n======\nRULES\n======\n\n\n[ > Player ] [ Crate ] -> [ > Player ] [ > Crate ]\n\n\n\n[ > crate | no obstacle ] -> [ | > crate ] sfx0\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 10\n\n######\n#....#\n#...##\n#..*.#\n#..o.#\n#.p..#\n#....#\n######\n\n( ###### )\n( #*#..# )\n( #.p..# )\n( #..o.# )\n( #....# )\n( ###### )\n\nmessage Level 2 of 10\n######\n#.*.p#\n#.#.##\n#.o..#\n#.#..#\n######\n\nmessage Level 3 of 10\n..###..\n.##o##.\n##...##\n#*.p.o#\n##...##\n.##*##.\n..###..\n\n\n\nmessage Level 4 of 10\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\nmessage Level 5 of 10\n(kinda hard)\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage Level 6 of 10\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\nmessage Level 7 of 10\n######\n##*.##\n##@###\n##..##\n##..##\n##p.##\n##.###\n##o.##\n##..##\n######\n\n\nmessage Level 8 of 10\n#######\n#o...*#\n#o.p.*#\n#o...*#\n#######\n\nmessage Level 9 of 10\n#####.\n#P..##\n#O**.#\n##...#\n.##..#\n..##O#\n...###\n\nmessage Level 10 of 10\n(POSSIBLE to solve! Good final level?)\n######\n#....#\n#o.#p#\n#.#..#\n#.*.@#\n######\n\nmessage Congratulations! The crates learned from your your example and were all very succesful in their subsequent careers.\n\n(\n######\n#o#@.#\n#....#\n#.##*#\n#..p@#\n######\n\n(I solved this, but not intentionally)\n#######\n#.*...#\n#**...#\n#..p..#\n#...oo#\n#...o.#\n#######\n\n(fpfft no idea. haven't solved yet)\n######\n#..*.#\n#*#.##\n#..o.#\n##...#\n#..#.#\n#op#.#\n######\n\n(unsolved. too hard?)\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n####\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n####\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n)\n(\nTRANSFORMATION\n\n\nchoose 3 [ ] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player no target ] -> [ target ]\n\n)\n",[2,1,0,1,1,2,"undo",1,2,3,3,3,0,2],"background wall:0,0,0,0,0,background:1,0,1,\n1,1,0,1,0,1,background target:2,1,\n0,1,0,1,2,1,0,1,\n0,1,2,background crate:3,0,0,0,1,\n3,background player:4,1,0,0,1,1,1,\n3,0,0,0,0,0,0,0,\n",11,"1645544790426.2693"] - ], - [ - "Resin-Caster", - ["title Resin-Caster\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color darkblue\n\n(\n\ntools used during creation:\n\nhttps://dekeyser.ch/puzzlescriptmis/\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\n========\nOBJECTS\n========\n\nBackground\ndarkblue\n\nWall\n#aa00ff\n.000.\n00000\n00000\n00000\n.000.\n\nPlayer\nOrange Orange Orange Orange\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate1\nred\n.000.\n00000\n00000\n00000\n.000.\n\n\nCrate2\nblue\n.000.\n00000\n00000\n00000\n.000.\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = crate1\n@ = crate2\n* = crate2\ncrate = crate1 or crate2\nobstacle = player or wall or Crate1\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, crate1, crate2\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate1 | crate2 ] -> [ | wall ]\n[ > crate2 | crate1 ] -> [ | wall ]\n\n==============\nWINCONDITIONS\n==============\n\nno crate\n\n=======\nLEVELS\n=======\n\nmessage When the two compounds are combined they set into a hard purple resin.\n\nmessage 1 of 10\n(fine!)\n######\n#....#\n#p@o.#\n#....#\n#@..o#\n######\n\nmessage 2 of 10\n(fine-ish?)\n#########\n#..o.@..#\n#..op@..#\n#########\n\nmessage 3 of 10\n(good hard level 1 or nice level 2)\n######\n#.@..#\n#..@.#\n#oo..#\n#.#.p#\n######\n\nmessage 4 of 10\n(ok? looks nice and has a solution that's not totally trivial but also not exactly something you can deduce without trying out - you won't necessarily know after the fact *why* the solkution is a solution)\n######\n#..o.#\n#.o@.#\n#o@..#\n#.p.@#\n######\n\nmessage 5 of 10\n(fine?)\n..####\n.##.o#\n##...#\n#..#.#\n#.@o.#\n#.p@.#\n######\n\nmessage 6 of 10\n(good intermediate)\n######\n#p...#\n#.o@@#\n#oo..#\n#.#@.#\n######\n\n\nmessage 7 of 10\n(kinda ok?)\n#######\n#.....#\n#...#.#\n#@#o@o#\n#.#.#.#\n#..p..#\n#######\n\nmessage 8 of 10\n(kinda fun?)\n######\n#@o.o#\n#.o.@#\n#@.@o#\n#.p..#\n######\n\n\nmessage 9 of 10\n(actually ok?)\n..####...\n###@.####\n#..@....#\n#.#.o#o.#\n#....#p.#\n#########\n\nmessage 10 of 10\n(had the solution spoiled but it's also fine :] )\n######\n#oo.@#\n#.@@o#\n#o.@.#\n#.p..#\n######\n\nmessage Congratulations! You're an exceptionally very competent resin-caster.\n\n(nice level, but maybe not include? not totally feeling it)\n( ###### )\n( #@.o.# )\n( #o.o.# )\n( #@o@.# )\n( #@..p# )\n( ###### )\n\n(eeeh it's fine but I solved it directly by avoiding doing the obvious thing which is BORING)\n( ###### )\n( #.o.p# )\n( #@@oo# )\n( #....# )\n( #@#..# )\n( ###### )\n\n(too much like other level)\n( ###### )\n( #@o.@# )\n( #...o# )\n( #o@o@# )\n( #p...# )\n( ###### )\n\n(kinda ok? I like the interlacing style. but not the best level of all time)\n( ###### )\n( #..@.# )\n( #o#@.# )\n( #.@..# )\n( #...o# )\n( #.o.p# )\n( ###### )\n\n(\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n####\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n####\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\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.*#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*O.#\n##.*P*.#\n#..O*O.#\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\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\n\n(\nTransformation\n\n[ player ] -> []\n[ crate ] -> []\n\n( choose 2 [ player ] -> [ ] )\n\nchoose 3 [ ] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate1 ]\nchoose 2 [ no obstacle ] -> [ crate2 ]\n\n)\n",[3,0,0,1,2,0,1,1,1,2,2,3,0,1,0,3,3,1,2,2,1,1,1,0,0,3,3,3,3,3],"background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,0,1,\n1,background crate2:2,0,0,0,1,1,0,0,\n0,0,1,1,1,background player:3,1,1,1,\n0,1,1,0,background crate1:4,1,0,1,0,\n0,0,1,0,1,1,1,1,1,\n",18,"1645544805711.4153"] - ], - [ - "pipe puffer", - ["title pipe puffer\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nbackground_color #472f37\n(verbose_logging)\n( debug )\n\n========\nOBJECTS\n========\n\nBackground\n#524740 #5a4f48\n00000\n01110\n01110\n01110\n00000\n\n\n\n\nWall\n#472f37\n\nwall_s\ntransparent transparent #291c21\n00000\n11111\n11111\n11111\n22222\n\n\nwall_n\n#5f454e transparent transparent\n00000\n11111\n11111\n11111\n22222\n\nwall_o\ntransparent transparent #5f454e\n01112\n01112\n01112\n01112\n01112\n\nwall_w\n#291c21 transparent transparent\n01112\n01112\n01112\n01112\n01112\n\nwall_nw\n#472f37\n0....\n.....\n.....\n.....\n.....\n\nwall_so\n#472f37\n.....\n.....\n.....\n.....\n....0\n\nPlayer\ntransparent #a69326 #cdb844 #e3d060 #bfaa38 #000000\n01230\n34233\n22522\n11241\n01230\n\n\nrohr_no e\n#005784 #006ea6 #524740 #acacac #cccccc #656d71\n00010 \n23431\n23540\n22330\n22220\n\nrohr_ns x\n#005784 #006ea6 #524740 #acacac #cccccc #e6e6e6 #656d71\n00010\n23452\n23652\n23452\n00010\n\nrohr_nw q\n#005784 #006ea6 #acacac #cccccc #e6e6e6 #524740 #656d71\n00010\n12345\n03645\n02255\n05555\n\n\nrohr_so c\n#524740 #005784 #e6e6e6 #006ea6 #acacac #cccccc #656d71\n00001\n00223\n04651\n04541\n11131\n\nrohr_sw z\n#005784 #524740 #006ea6 #e6e6e6 #cccccc #acacac #656d71\n01111\n23311\n04631\n05431\n00020\n\nrohr_ow a\n#005784 #524740 #006ea6 #e6e6e6 #cccccc #acacac #656d71\n01110\n23332\n04640\n05550\n01110\n\noutlet_n \n#005784 #006ea6 transparent #e6e6e6 #cccccc #acacac #656d71\n01000 \n23452\n22622\n22222\n22222\n\noutlet_s \ntransparent #cccccc #acacac #e6e6e6 #005784 #006ea6 #656d71\n00000\n00000\n00600\n02130\n44454\n\noutlet_o \ntransparent #005784 #e6e6e6 #006ea6 #cccccc #acacac #656d71\n00001\n00023\n00641\n00051\n00001\n\noutlet_w \n#005784 transparent #acacac #cccccc #006ea6 #e6e6e6 #656d71\n01111\n02111\n03611\n45111\n01111\n\ninlet\nblue\n.....\n.....\n..0..\n.....\n.....\n\npust_n\n#cccccc\n.000.\n0...0\n..0..\n..0..\n.....\n\n\npust_s\n#cccccc\n.....\n..0..\n..0..\n0...0\n.000.\n\npust_o\n#cccccc\n...0.\n....0\n.00.0\n....0\n...0.\n\npust_w\n#cccccc\n.0...\n0....\n0.00.\n0....\n.0...\n\n\n\nflow\nblue\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\nwall_überlagung = wall_s or wall_n or wall_o or wall_w or wall_nw or wall_so\n\nrohr = rohr_no or rohr_ns or rohr_nw or rohr_so or rohr_sw or rohr_ow\noutlet = outlet_n or outlet_s or outlet_o or outlet_w\n\nöffnung_n = rohr_no or rohr_ns or rohr_nw or outlet_n\nöffnung_s = rohr_ns or rohr_sw or rohr_so or outlet_s\nöffnung_o = rohr_no or rohr_so or rohr_ow or outlet_o\nöffnung_w = rohr_nw or rohr_sw or rohr_ow or outlet_w\n\nwall_thing = wall or outlet \n\nrohr_or_öffnung = rohr or outlet\n\n. = Background\n# = Wall\nP = Player\n\n1 = outlet_n and wall\n2 = outlet_s and wall\n3 = outlet_o and wall\n4 = outlet_w and wall\n\n5 = outlet_n and inlet and wall\n6 = outlet_s and inlet and wall\n7 = outlet_o and inlet and wall\n8 = outlet_w and inlet and wall\n\npust = pust_n or pust_s or pust_o or pust_w\n\nobstacle = wall_thing or rohr or player\n\nrohr_or_player = rohr or player\n\n=======\nSOUNDS\n=======\nsfx0 39858907 (pusten)\nsfx1 96276907 (rohrdurchpusten)\nrohr move 73985107 (rohrbewegen)\nstartlevel 38142502\nendlevel 45497300\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, rohr\nwall_s\nwall_n\nwall_o\nwall_w\nwall_nw\nwall_so\noutlet\ninlet\nflow\npust_n\npust_s\npust_o\npust_w\n\n======\nRULES\n======\n\nup [ wall | no wall_thing ] -> [ wall wall_n | ]\ndown [ wall | no wall_thing ] -> [ wall wall_s | ]\nleft [ wall | no wall_thing ] -> [ wall wall_w | ]\nright [ wall | no wall_thing ] -> [ wall wall_o | ]\n\n\n[ wall_s wall_o ] -> [ wall_s wall_o wall_so ]\n[ wall_n wall_w ] -> [ wall_n wall_w wall_nw ]\n\n[ > player | obstacle ] -> cancel\n[pust]->[]\n\nright [ | action player | ] -> [ pust_w | action player | pust_o ] again sfx0\nup [ | action player | ] -> [ pust_s | player | pust_n ] again\n\n\nright [ rohr_so pust_n | ] -> [ rohr_so | pust_o ] sfx1\n+ down [ rohr_so pust_w | ] -> [ rohr_so | pust_s ] sfx1\n\n+ up [ rohr_ns pust_n | ] -> [ rohr_ns | pust_n ] sfx1\n+ down [ rohr_ns pust_s | ] -> [ rohr_ns | pust_s ] sfx1\n\n+ left [ rohr_sw pust_n | ] -> [ rohr_sw | pust_w ] sfx1\n+ down [ rohr_sw pust_o | ] -> [ rohr_sw | pust_s ] sfx1\n\n+ right [ rohr_ow pust_o | ] -> [ rohr_ow | pust_o ] sfx1\n+ left [ rohr_ow pust_w | ] -> [ rohr_ow | pust_w ] sfx1\n\n+ right [ rohr_no pust_s | ] -> [ rohr_no | pust_o ] sfx1\n+ up [ rohr_no pust_w | ] -> [ rohr_no | pust_n ] sfx1\n\n+ left [ rohr_nw pust_s | ] -> [ rohr_nw | pust_w ] sfx1\n+ up [ rohr_nw pust_o | ] -> [ rohr_nw | pust_n ] sfx1\n\n[ pust_n rohr ] -> [ pust_n up rohr ]\n[ pust_s rohr ] -> [ pust_s down rohr ]\n[ pust_o rohr ] -> [ pust_o right rohr ]\n[ pust_w rohr ] -> [ pust_w left rohr ]\n\n[pust outlet ] -> [ outlet ]\n\n[ > rohr_or_player | rohr_or_player ] -> [ > rohr_or_player | > rohr_or_player ]\n\n( [ > Player | Crate ] -> [ > Player | > Crate ] )\n\nlate [flow]->[]\n\nlate [ inlet ] -> [ inlet flow ]\n\nlate up [ öffnung_n flow | öffnung_s no flow ] -> [ öffnung_n flow | öffnung_s flow ]\n+ late down [ öffnung_s flow | öffnung_n no flow ] -> [ öffnung_s flow | öffnung_n flow ]\n+ late right [ öffnung_o flow | öffnung_w no flow ] -> [ öffnung_o flow | öffnung_w flow ]\n+ late left [ öffnung_w flow | öffnung_o no flow ] -> [ öffnung_w flow | öffnung_o flow ]\n\n==============\nWINCONDITIONS\n==============\n\nall outlet on flow\n\n=======\nLEVELS\n=======\n\n\nmessage Oh no the factory is falling apart! Can the pipe puffer put it back together?\n\nmessage Level 1 of 8 \n\n(kinda like. fine. best of that kind of level?)\n####6##\n#.....#\n#.....4\n#.xea.#\n##....#\n##..p.#\n#######\n\nmessage Level 2 of 8\n(I like this)\n#######\n#.....#\n#.c.8.#\n#.xa..#\n#.x...#\n#.1.p.#\n#.....#\n#######\n\n( (jokey? not hard? intermediate?) )\n( ########### )\n( #.........# )\n( #...c.z...# )\n( #...xax...# )\n( #.caqxeaz.# )\n( #..x...x..# )\n( #.x.....x.# )\n( #.x.a.a.x.# )\n( #.x.....x.# )\n( #.x..p..x.# )\n( ##5#####1## )\n\n\nmessage Level 3 of 8\n\n###########\n#.....2####\n#..caaq6###\n#..x...x..#\n#..x...x..#\n#..x.a.x..#\n#..ea.aq..#\n#.........#\n#....p....#\n###########\n\n\nmessage Level 4 of 8\n#########\n#.......#\n#...c8..#\n#.6.e4..#\n#..x....#\n#.1.a...#\n#.x..cz.#\n#..p.15.#\n#.......#\n#########\n\n\n\n\n\nmessage Level 5 of 8\n(intermediate. multiple solutions. doesn't mandate the solution I like the most tho >:[ )\n###########\n#.........#\n#.p..7aaaz#\n#..c....x.#\n#........x#\n#........q#\n########1##\n\nmessage Level 6 of 8\n(tricky)\n#########....\n#.......#....\n#......c8####\n#......x#...#\n#......eaaz.#\n#..p.x......#\n#.........1.#\n#......######\n#......#.....\n########.....\n\nmessage Level 7 of 8\n( (or maybe not that hard?) hard)\n########\n#......#\n7aaaaaz#\n#....x.#\n##3...q#\n#.....##\n#.p.cz.#\n#..aqe.#\n#......#\n########\n\n\n\n\nmessage Level 8 of 8\n(not great but ok)\n########6##\n#.....#.x.#\n#.......x.#\n#.....caq.#\n#..a..eaz.#\n#...x..x..#\n#.....a.x.#\n#..p...cq.#\n#......x#.#\n#......x#.#\n#######1###\n\nmessage Thank you! The factory is back up and running. You are verily the premier pipe puffer!\n\n( (not sure if I want this or not) )\n( (fine, solvable wiht brain-usage. doesn't use puffing though sadface) )\n( ###6### )\n( #.....# )\n( #.#..a4 )\n( #...x.# )\n( #.ea..# )\n( ##p...# )\n( ####### )\n\n( (ok silly last level? ) )\n( ############## )\n( #............# )\n( #....6..2....# )\n( #...cq..ez...# )\n( #...ez...q...# )\n( #...cq..ez...# )\n( #...ez..cq...# )\n( #...cq..ez...# )\n( #...ez..cq...# )\n( #...cq..ez...# )\n( #...ez..cq...# )\n( #....1..5....# )\n( #.....p......# )\n( ############## )\n\n\n( ###6#### )\n( #......# )\n( #..a..a4 )\n( #....x.# )\n( #..ea..# )\n( ###p...# )\n( ######## )\n\n( (hard? not yet solved unsolvable lol) )\n( ###6### )\n( #.....# )\n( ##.x.a4 )\n( #.....# )\n( #.ea#.# )\n( #.p...# )\n( ####### )\n\n\n\n(\n(simple. pleasing)\n##62###\n##.x..#\n#.e...#\n#..q..#\n##....#\n.#p.###\n.####..\n\n(similarly simple/pleasing)\n###6##\n#....4\n##.a.#\n#.e..#\n#p...#\n######\n\n(whatever)\n###6##\n#..x.4\n#.ec.#\n#..q.#\n#p...#\n######\n\n(slightly harder)\n###6##\n#..x.4\n#.cq.#\n#.e..#\n#...p#\n######\n\n(fineish)\n###6##\n###.##\n#..a.4\n#..x.#\n#.e..#\n#..p.#\n######\n\n(i remember how to do this one, which is good, but it's alos not great)\n###62###\n#......#\n#..x#..#\n#...q..#\n#x.e...#\n#....p.#\n########\n\n\n( ###6## )\n( #..ea4 )\n( #....# )\n( #.p..# )\n( #....# )\n( ###### )\n\n( ###6## )\n( #..xc4 )\n( #..eq# )\n( #.p..# )\n( #....# )\n( ###### )\n\n\n( ##62## )\n( #.eq.# )\n( #....# )\n( #.p..# )\n( #....# )\n( ###### )\n\n( ##62### )\n( #.eq..# )\n( #.....# )\n( #.p...# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( ###62### )\n( #..xx..# )\n( #..eq..# )\n( #......# )\n( #......# )\n( #....p.# )\n( ######## )\n\n\n##62###\n#.xx..#\n#.eq..#\n#.p...#\n#.....#\n#.....#\n#######\n\n####6##\n#...ea4\n#.....#\n#.....#\n#.p...#\n#.....#\n#######\n\n####6##\n#...xc4\n#...eq#\n#.....#\n#.p...#\n#.....#\n#######\n\n###6###\n#..x..#\n#..eaa4\n#.....#\n#.p...#\n#.....#\n#######\n\n###62###\n#..eq..#\n#......#\n#.p....#\n#......#\n#......#\n########\n\n########\n#......#\n#......#\n#..62..#\n#..eq..#\n#.p....#\n########\n\n####6##\n#...ea4\n#.....#\n#.....#\n#.p...#\n#.....#\n#######\n\n#######\n#.....#\n#.cz..#\n#.x5p.#\n#.x2..#\n#.eq..#\n#.....#\n#######\n\n###6###\n#..ez.#\n#...ea4\n#.....#\n#.p...#\n#.....#\n#######\n\n\n\n(trivial)\n####6##\n#.....#\n#..x..4\n#..ea.#\n#.p...#\n#.....#\n#######\n\n\n####6##\n#.....#\n#..x..4\n#..ea.#\n#.p...#\n#.....#\n#######\n\n\n####6##\n#.....#\n#.c.q.#\n#p.a..4\n#.x.z.#\n#.....#\n#######\n\n##6##\n#...#\n#.p.#\n#...4\n#####\n\n.....\n.....\n.....\n.....\n.....\n\n\n( #########.... )\n( #.......6#### )\n( #.......x...# )\n( #...c.a.eaaz# )\n( #....p......# )\n( #...a.x.caaq# )\n( #.......x...# )\n( #.......1#### )\n( #########.... )\n\n\n( #########...... )\n( #.......6###### )\n( #.......x.....# )\n( #...c.a.eaaaaz# )\n( #....p........# )\n( #...a.x.caaaaq# )\n( #.......x.....# )\n( #.......1###### )\n( #########...... )\n\n\n( #########....... )\n( #.......6####### )\n( #.......x......# )\n( #..c.a..eaaaaz.# )\n( #...p..........# )\n( #..a.x..caaaaq.# )\n( #.......x......# )\n( #.......1####### )\n( #########....... )\n\n( #########....... )\n( #.......#....... )\n( #.......6####### )\n( #.......x......# )\n( #..c.a..eaaaaz.# )\n( #...p..........# )\n( #..a.x..caaaaq.# )\n( #.......x......# )\n( #.......1####### )\n( #.......#....... )\n( #########....... )\n\n( ################ )\n( #..............# )\n( #.......c8###### )\n( #.......x......# )\n( #..c.z..eaaaaz.# )\n( #...p..........# )\n( #..a.x..caaaaq.# )\n( #.......x......# )\n( #.......e4###### )\n( #..............# )\n( ################ )\n\n( ################ )\n( #..............# )\n( #.......c8###### )\n( #..c.z..x......# )\n( #...p...eaaaaz.# )\n( #..a.x.........# )\n( #.......caaaaq.# )\n( #..e.q..x......# )\n( #.......e4###### )\n( #..............# )\n( ################ )\n\n)\n\n(\ntransformation\n\n[player]->[]\n\nchoose 15 [ rohr ] [ no obstacle ] -> [ ] [ rohr ] \n(choose 1 [ player ] [ no obstacle ] -> [ ] [ player ])\n(choose 5 [ outlet ] [ wall ] -> [ wall ] [ outlet ]\nchoose 1 [ flow no outlet ] [ outlet no flow ] -> [ ] [ outlet flow ])\n\n\nchoose 1 [ no obstacle ] -> [ player ]\n\nchoose 10 option 0.5 [ no obstacle ] -> [ wall ]\n+ option 0.5 [] -> [ ]\n)\n\n\n\n",[0,0,2,1,0,4,3,3,0,0,0,1,1,1,3,4,0,1,1,2,4,2,4,3,2,3,2,2,1,1,0,4,4,2,3,3,3,0,3,0,0,4,2,1,1],"background wall:0,background wall wall_o:1,1,1,1,1,1,\n0,background wall wall_s:2,background:3,3,3,background rohr_ns:4,3,\n3,background wall wall_n:5,2,3,3,4,3,\nbackground outlet_n wall wall_n wall_nw wall_o wall_s wall_so wall_w:6,3,5,2,3,background flow rohr_so:7,3,\nbackground player:8,3,3,5,2,3,background flow inlet outlet_w wall wall_n wall_nw wall_o wall_s wall_so wall_w:9,\nbackground rohr_ow:10,3,3,3,5,2,3,\n3,3,3,3,3,5,0,\nbackground wall wall_w:11,11,11,11,11,11,0,\n",4,"1645544832464.3308"] - ], - [ - "crate guardian", - ["title crate guardian\nauthor increpare\nhomepage www.increpare.com\nrun_rules_on_level_start\nbackground_color darkgreen\n\n(\n\nthanks to youatexample for some title advice\n\nother possible titles:\nīdōlum cistae sānctum\ngreat idol of the crates\ncrate idol\n\n\n)\n( verbose_logging )\n( debug )\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\n\n( Target1 )\n( #4b1116 )\n( ..... )\n( .000. )\n( .0.0. )\n( .000. )\n( ..... )\n\n\nTarget\ndarkblue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\n#1b2632\n\nPlayer\n#c8727a\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nCrate\n#746cc2\n00000\n0...0\n0...0\n0...0\n00000\n\n\nstatue2\nblue \n00.00\n.000.\n.000.\n00.00\n.0.0.\n\n\naura2\n#383185\n\n\n=======\nLEGEND\n=======\n\n\nstatue = statue2\npushable = crate or statue\npusher = crate or statue or player\naura = aura2\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nq = Target\n\n2 = statue2\n3 = crate and target\n4 = crate and target\n7 = statue2 and target\n8 = statue2 and target\n\nobstacle = crate or statue or wall or player\n0 = wall and aura2\n9 = aura2\na = statue2 and aura2\ne = target and aura2\nf = target and crate and aura2\n\nplayer_or_statue1_or_wall = player or wall\ncrate_or_wall = crate or wall\nj = player and aura2\nm = target and statue2 and aura2\n\n=======\nSOUNDS\n=======\n\nstatue2 move 95968304\nCrate MOVE 53883107\nendlevel 25071300\nstartlevel 46394106\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\naura2\nTarget\nPlayer, Wall, Crate, statue\n\n======\nRULES\n======\n\n[ > pusher | pushable ] -> [ > pusher | > pushable ]\n[ > pushable | wall ] -> cancel\n\nlate [ aura ] -> [ ]\n\nlate right [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\nlate down [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\n\nlate [ player_or_statue1_or_wall aura2 ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nall crate on target\n\n=======\nLEVELS\n=======\n\n\n\nmessage Level 1 of 6\n(ok level 1)\n.#######.\n.#.....#.\n.#..p..#.\n.#.....#.\n.#.***.#.\n.#.999.#.\n##.9a9.##\n#..999..#\n#..ooo..#\n#.......#\n##..#..##\n.#.....#.\n.#######.\n\nmessage Level 2 of 6\n(I dunno?)\n#######\n#.....#\n#..3..#\n#.9e9.#\n#.9a9.#\n#.999.#\n#..*..#\n#.....#\n#..p..#\n#.....#\n#######\n\nmessage Level 3 of 6\n.#######.\n.#.p...#.\n.#.***.#.\n##.999.##\n#..eme..#\n#..999..#\n#...#...#\n###...###\n..#####..\n\n\nmessage Level 4 of 6\n(OK)\n##########\n#........#\n#.*999...#\n#..9a9.o.#\n#.p9e90000\n#...*.0...\n#.....0...\n#######...\n\n\nmessage Level 5 of 6\n(OK)\n######....\n#....#....\n#....##...\n#ooo..##..\n#......##.\n##......##\n.##..999.#\n..##.9a9.#\n...##999.#\n...#.....#\n...#.***.#\n...#.....#\n...#..p..#\n...#.....#\n...#######\n\nmessage Level 6 of 6\n(ok final level! I used my brain and solved it)\n#########\n#...p...#\n#..o.o..#\n#.o***o.#\n#..*a*..#\n#.o***o.#\n#..o.o..#\n#.......#\n#########\n\nmessage Congratulations. You learned how to work with the guardian of the crates. She still keeps you at a distance, but you have earned her respect.\n\n( 00000000000 )\n( 0.........0 )\n( 0....p....0 )\n( 0...o.o...0 )\n( 0..o***o..0 )\n( 0...*a*...0 )\n( 0..o***o..0 )\n( 0...o.o...0 )\n( 0.........0 )\n( 0.........0 )\n( 00000000000 )\n\n( ####### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n\n( ######## )\n( #......# )\n( #......# )\n( #......# )\n( #..p...# )\n( #.pp...# )\n( #ppp...# )\n( ######## )\n\n(\n\nTransformations\n\nchoose 4 [] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ statue1 ]\nchoose 1 [ no obstacle ] -> [ statue2 ]\n\n\nright [ | statue1 | ] -> [ aura1 | aura1 statue1 | aura1 ]\nright [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\ndown [ no aura1 | aura1 | no aura1 ] -> [ aura1 | aura1 | aura1 ]\ndown [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\nchoose 1 [ no aura2 no obstacle ] -> [ player ]\n\nchoose 2 [no aura1 no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player ] -> [ target ]\n\n\nalt transform\n\n\nchoose 11 [ player ] -> [ no player ]\n\nchoose 4[ no player ] -> [ wall aura12 ]\n(choose 1 [ no wall | no obstacle | no wall ] -> [ | statue1| ]\nright [ | statue1 | ] -> [ aura1 | aura1 statue1 | aura1 ]\ndown [ no aura1 | aura1 | no aura1 ] -> [ aura1 | aura1 | aura1 ])\n\nchoose 1 [ no wall no aura1 no player | no obstacle no aura1 no player | no wall no aura1 no player ] -> [ |statue2| ]\nright [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\ndown [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\n(choose 1 [ no aura2 no obstacle ] -> [ player ])\n\nchoose 3 [no aura1 no obstacle ] -> [ crate ]\nchoose 3 [ no wall no player ] -> [ target ]\n\n[aura12 wall aura1] ->[aura1]\n[aura12 wall aura2] ->[aura2]\n\n\n==========\n\nchoose 5 [ player ] -> [ no player ]\n\nchoose 4[ no player ] -> [ wall ]\n\nchoose 1 [ no wall no player | no obstacle no player | no wall no player ] -> [ |statue2| ]\nright [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\ndown [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\n(choose 1 [ no aura2 no obstacle ] -> [ player ])\n\nchoose 3 [ no obstacle ] -> [ crate ]\nchoose 3 [ no wall no player ] -> [ target ]\n\n)\n\n",[2,2,3,3,2,2,1,2,2,1,1,0,2,3,3,0,1,1,2,1,3,0,1,3,0,0,0,1,2,2,3,2,1,2,1,1,0,0,2,1,1,1,3,0,0,0,1,0,0,0,0,3,3,2],"background wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,0,\n0,1,1,aura2 background target:2,aura2 background crate:3,2,1,1,0,\n0,1,background player target:4,3,aura2 background statue2:5,3,background target:6,1,0,\n0,background crate:7,1,aura2 background:8,3,3,7,1,0,\n0,1,6,1,1,1,6,1,0,\n0,1,1,6,1,6,1,1,0,\n0,1,1,7,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n",11,"1645544889350.864"] - ], - [ - "Don't let your goals slip away", - ["title Don't let your goals slip away\nauthor increpare [riff on david skinner's levels]\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\nbackground_color green\n\n\ncolor_palette 2\n========\nOBJECTS\n========\n\nBackground\nGREEN green\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nblack\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nDARKBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nlightgray lightgray lightgray lightgray\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange\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\nobstacle = crate or wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 78774307\ntarget move 81495507\nendlevel 52446100\nstartgame 73236703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n( [ > player | wall ] -> cancel )\n[ > player | crate | obstacle ] -> cancel\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > player | target ] -> [ > player | > target ] \n[ > target | target ] -> [ > target | > target ]\n[ > target | wall ] -> [ target | wall ]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 8\n\n(funny therefore good)\n####..\n#o*#..\n#..###\n#....#\n#.o*.#\n#.p###\n####..\n\n(meh)\n( ####.. )\n( #.o#.. )\n( #..### )\n( #o...# )\n( #*.*.# )\n( #.p### )\n( ####.. )\n\n\nmessage level 2 of 8\n\n\n(p. good!)\n..####...\n###..####\n#....*o.#\n#.#..#.o#\n#..*.#p.#\n#########\n\n( (Easy but funny) )\n( ###### )\n( #.*..# )\n( #.#.*# )\n( #....# )\n( #p*o.# )\n( #.oo.# )\n( ###### )\n\n\nmessage level 3 of 8\n\n(not bad)\n######\n##o..#\n#.#oo#\n#.*..#\n#.*..#\n#p*..#\n######\n\nmessage level 4 of 8\n\n########\n#...*..#\n#.o#.@p#\n#..*...#\n#####.o#\n....####\n\nmessage level 5 of 8\n\n\n\n(decent!)\n#####.\n#.*.##\n#.o.p#\n##.o.#\n.##.*#\n..##.#\n...###\n\nmessage level 6 of 8\n\n(fine right?)\n......###.\n#######o##\n#...*o...#\n#.#.#.#.##\n#.p.*...#.\n#########.\n\nmessage level 7 of 8\n(no idea. damnit spoiled but also ok.)\n####..\n#..#..\n#.*###\n#..*p#\n#..o.#\n#o.###\n####..\n\n\n\nmessage level 8 of 8\n(Tricky but also decent? involves fun manipulations)\n#######\n#..#..#\n#.o*o.#\n#.*p*##\n#.o*o.#\n#..#..#\n#######\n\n\nmessage Congratulations! You didn't let your goals run away from you.\n\n(transform\n\n[player]->[]\n[target]->[]\n[crate]->[]\n\nchoose 2 [] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player ] -> [ target ] \n\n)\n\n",[0,0,"undo","undo",1,0,0,3,3,3,2,1,1,0,0,1,0,0,"restart",0,0,0,2,3,3,2,1,1,2,1,0,0,0,0,0,2,0,1,1,1,3,3,3,"undo","undo",3,3,1,1,1,2,3,0,1,1,"restart",0,0,1,"restart",3,0,0,1,1,1,1,"undo",0,1,2,2,1,2,2,1,2,2,3,3,0,2,1,1,0,0,3,3,3,3,3,1,1],"background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,0,1,\n1,0,0,0,0,1,1,0,background player:2,\n0,background crate:3,1,1,1,0,1,1,1,\n0,1,background target:4,0,0,1,0,1,background crate target:5,\n0,0,1,0,1,1,1,1,1,\n",3,"1645544970753.6125"] - ], - [ - "Eyeball-watching flowers bloom", - ["title Eyeball-watching flowers bloom\nauthor increpare\nhomepage www.increpare.com\n\n\n(thanks to bluemelon555 for title suggestions)\n\nbackground_color #094118\ntext_color #f7e26b\nrun_rules_on_level_start\n\nverbose_logging\n\n(debug)\n\n========\nOBJECTS\n========\n\nBackground\n#0f5321 #44891a\n00000\n01000\n01010\n00010\n00000\n\n\n\n\nWall_inactivated\ntransparent #44891a #a3ce27\n01110\n12121\n11211\n12121\n01110\n\n\n\nwall_activated =\ntransparent #e06f8b #a3ce27 #f7e26b\n01120\n21111\n11311\n11112\n02110\n\nwall_burnt\ntransparent #430006 #000000\n01210\n22222\n21221\n12222\n02210\n\n\nplayer_up\nwhite yellow red black\n10201\n02320\n00200\n00000\n.000.\n\n\nplayer_down\nwhite yellow red black\n.000.\n00000\n00200\n02320\n10201\n\n\nplayer_left\nwhite yellow red black\n1000.\n02000\n23200\n02000\n1000.\n\n\nplayer_right\nwhite yellow red black\n.0001\n00020\n00232\n00020\n.0001\n\n\nCrate\ntransparent #9d9d9d #bfbfbf #737373\n00120\n01112\n31112\n33111\n03330\n\n\nstrahlen\nyellow\n\nstrahlen_top\nyellow\n00000\n00000\n.....\n.....\n.....\n\nstrahlen_bottom\nyellow\n.....\n.....\n.....\n00000\n00000\n\nstrahlen_left\nyellow\n00...\n00...\n00...\n00...\n00...\n\nstrahlen_right\nyellow\n...00\n...00\n...00\n...00\n...00\n\n\nburnout\n#0f5321 #430006 #000000\n01210\n22222\n21221\n12222\n02210\n\n\n=======\nLEGEND\n=======\n\nplayer = player_up or player_down or player_left or player_right\nwall = Wall_inactivated or wall_activated\n. = Background\n# = Wall_inactivated\nstrahlen_all = strahlen or strahlen_top or strahlen_bottom or strahlen_left or strahlen_right\n\nP = Player_up\nq = player_down\nr = player_left\ns = player_right\n\n* = crate\no = background\n@ = background\n\nobstacle = crate or wall or player\nstrahlen_or_player = strahlen or player\n=======\nSOUNDS\n=======\n\nCrate MOVE 21697107\nendlevel 23649709\nstartlevel 40644309\nstartgame 98216309\n\nsfx0 94788500 (Blume)\n(58036508)\nsfx1 78837102 (burn)\n\nsfx2 94214904 (deadend)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nstrahlen_all\nPlayer, Wall, Crate, burnout, wall_burnt\n\n======\nRULES\n======\n\nup [ > player_up | wall_activated ] -> cancel \ndown [ > Player_down | wall_activated ] -> cancel \nleft [ > Player_left | wall_activated ] -> cancel \nright [ > Player_right | wall_activated ] -> cancel \n\n[wall_burnt] -> cancel sfx2\n\nup [ > Player | Crate | no obstacle ] -> [ | Player_up | Crate ]\ndown [ > Player | Crate | no obstacle ] -> [ | Player_down | Crate ]\nleft [ > Player | Crate | no obstacle ] -> [ | Player_left | Crate ]\nright [ > Player | Crate | no obstacle ] -> [ | Player_right | Crate ]\n\nup [ > Player | no obstacle ] -> [ | Player_up ]\ndown [ > Player | no obstacle ] -> [ | Player_down ]\nleft [ > Player | no obstacle ] -> [ | player_left ]\nright [ > Player | no obstacle ] -> [ | player_right ]\n\n[ up player ] -> [ player_up ]\n[ down player ] -> [ player_down ]\n[ left player ] -> [ player_left ]\n[ right player ] -> [ player_right ]\n\n[strahlen_all]->[]\nup [ player_up | no obstacle ] -> [ player_up | strahlen ]\ndown [ player_down | no obstacle ] -> [ player_down | strahlen ]\nleft [ player_left | no obstacle ] -> [ player_left | strahlen ]\nright [ player_right | no obstacle ] -> [ player_right | strahlen ]\n\n[ strahlen_or_player | strahlen | no strahlen no obstacle ]-> [ strahlen_or_player | strahlen | strahlen ]\n\n[ strahlen_or_player | strahlen | wall_activated ] -> [ strahlen_or_player | strahlen | wall_burnt ] sfx1\n[ strahlen_or_player | strahlen | Wall_inactivated ] -> [ strahlen_or_player | strahlen | wall_activated ] sfx0\n\n\nup [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_bottom ]\ndown [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_top ]\nleft [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_right ]\nright [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_left ]\n\n\nup [ player_up | no strahlen ]-> [ player_up| strahlen_bottom ]\ndown [ player_down | no strahlen ]-> [ player_down | strahlen_top]\nleft [ player_left | no strahlen ]-> [ player_left | strahlen_right ]\nright [ player_right | no strahlen ]-> [ player_right | strahlen_left ]\n\nup [ player_up | Wall_activated ] -> [ player_up | wall_burnt ] sfx1\nup [ player_up | Wall_inactivated ] -> [ player_up | wall_activated ] sfx0\ndown [ player_down | Wall_activated ] -> [ player_down | wall_burnt ] sfx1\ndown [ player_down | Wall_inactivated ] -> [ player_down | wall_activated ] sfx0\nleft [ player_left | Wall_activated ] -> [ player_left | wall_burnt ] sfx1\nleft [ player_left | Wall_inactivated ] -> [ player_left | wall_activated ] sfx0\nright [ player_right | Wall_activated ] -> [ player_right | wall_burnt ] sfx1\nright [ player_right | Wall_inactivated ] -> [ player_right | wall_activated ] sfx0\n\n==============\nWINCONDITIONS\n==============\n\nno Wall_inactivated\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 3\n\n.###.\n#...#\n#.q.#\n.###.\n\nmessage level 2 of 3\n\n\n(ok!)\n.####.\n#....#\n#.*..#\n#.p*.#\n#....#\n.####.\n\nmessage level 3 of 3\n\n(decent)\n.#####.\n#.....#\n#..*..#\n#.*p*.#\n#..*..#\n#.....#\n.#####.\n\nmessage Congratulations. The gardens look amazing.\n\n\n(\n(meh)\n.###.\n#...#\n#...#\n#.q.#\n.###.\n)\n(\n(meh)\n.####.\n#....#\n#.p..#\n#..*.#\n#....#\n.####.\n\n.#####.\n#.....#\n#.....#\n#..#..#\n#...*.#\n#...p.#\n.#####.\n\n(maybe ok? kinda cheated to find the solution but i could've figured it out!)\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#....q#\n.####=.\n\n(i could not solve this and I think that it's bad)\n.###.\n#...#\n#...#\n#...#\n#...#\n#.*.#\n#.p.#\n.###.\n\n\n.####.\n#....#\n#....#\n#....#\n#....#\n.####.\n\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n.#####.\n\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n.#####.\n\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n.#####.\n\n.######.\n#......#\n#......#\n#......#\n#......#\n#......#\n#......#\n#......#\n.######.\n)\n\n(Transform\n\n[player]->[]\n[crate]->[]\n\n\nchoose 2 [ ] -> [ wall_inactivated ]\n\nchoose 1 [ no obstacle ] -> [ player_up ]\n+ [ no obstacle ] -> [ player_down ]\n+ [ no obstacle ] -> [ player_left ] \n+ [ no obstacle ] -> [ player_right ]\n\nchoose 1 [ no obstacle ] -> [ crate ]\n\n[strahlen]->[]\nup [ player_up | no obstacle ] -> [ player_up | strahlen ]\ndown [ player_down | no obstacle ] -> [ player_down | strahlen ]\nleft [ player_left | no obstacle ] -> [ player_left | strahlen ]\nright [ player_right | no obstacle ] -> [ player_right | strahlen ]\n\n[ strahlen_or_player | strahlen | no strahlen no obstacle ]-> [ strahlen_or_player | strahlen | strahlen ]\n[ strahlen_or_player | strahlen | Wall_inactivated ] -> [ strahlen_or_player | strahlen | wall_activated ]\n\nup [ player_up | Wall_activated ] -> cancel\nup [ player_up | Wall_inactivated ] -> [ player_up | wall_activated ]\ndown [ player_down | Wall_inactivated ] -> [ player_down | wall_activated ]\nleft [ player_left | Wall_inactivated ] -> [ player_left | wall_activated ]\nright [ player_right | Wall_inactivated ] -> [ player_right | wall_activated ]\n\n\n)\n\n",[1,2,3,3,0,"undo",0,0,3,2,3,2,1,1,0,0,1,0,1,2,3],"background:0,background wall_activated:1,1,1,background wall_inactivated:2,0,\n1,0,0,0,background crate:3,1,\n2,3,background player_right strahlen_right:4,0,0,2,\n2,0,background strahlen:5,0,0,2,\n2,0,5,0,0,1,\n0,2,background strahlen_left wall_burnt:6,1,1,0,\n",3,"1645545001785.496"] - ], - [ - "Subway upholstry snot smearing championship", - ["title Subway upholstry snot smearing championship\nauthor increpare\nhomepage www.increpare.com\ncolor_palette 1\n\nrun_rules_on_level_start\n\nbackground_color #131316\ntext_color #6abe30\n========\nOBJECTS\n========\n\nBackground\n#5b6ee1 #639bff #ac3232\n00011\n10101\n12101\n20201\n10200\n\ntilled \n#6abe30 #5b6ee1\n01110\n01001\n10101\n10110\n01011\n\n\n\nWall\n#e7dcc0 #b478cb #e1ae5b #d77bba #76428a\n00000\n01220\n01330\n04330\n00000\n\nwallalt\n#e7dcc0 #e1ae5b #e15b5b #ab7722\n00000\n01120\n01120\n03330\n00000\n\n\n\nwallt\n#fdefd4 #e7dcc0 #42b7f0 #65dadf #54cf6f\n00000\n11111\n12231\n14231\n11111\n\nwallb\n#e7dcc0 #e96ff2 #780d80 #e442f0 #c2bb91\n00000\n01120\n02330\n00000\n44444\n\nwalltb\n#fdefd4 #e7dcc0 #6c1710 #ab1d11 #c2bb91\n00000\n11111\n12331\n11111\n44444\n\nwalltbalt\n#fdefd4 #e7dcc0 #fbf236 #fba736 #c2bb91\n00000\n11111\n12231\n11111\n44444\n\n\nPlayer\n#5b6ee1 #524b24 #eec39a #3f3f74 #000000\n01110\n02220\n23332\n03030\n04040\n\n\nCrate\ntransparent #99e550 #6abe30\n01110\n12221\n12221\n12221\n01110\n\nvoid ,\n#131316\n\n\n=======\nLEGEND\n=======\n\n\n. = Background\n# = Wall\n1 = wallt\n2 = wallb\n3 = walltb\n\n\nP = Player\n* = Crate and tilled\n@ = Crate and tilled\nO = Background\n\n\nwalls = Wall or wallt or wallb or walltb or wallalt or walltbalt\n\nwalls_or_void = walls or void\n\ngoodstate = walls_or_void or tilled\n=======\nSOUNDS\n=======\n\nCrate MOVE 41474107\nsfx0 3420907 (new snot)\nstartlevel 24347308\nendlevel 56675308\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ntilled\nPlayer, walls_or_void, Crate\n\n======\nRULES\n======\n\ndown [ no walls | walls | walls ] -> [ | wallt | walls ]\n\ndown [ walls | walls | no walls ] -> [ walls | wallb | ]\n\ndown [ no walls | walls | no walls ] -> [ | walltb | ]\n\ndown [ no wallalt | wall | wall | no wallalt ] -> [ | wall | wallalt | ] \n\nright [ no walltbalt | walltb | walltb | no walltbalt ] -> [ | walltbalt | walltb | ] \n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ < Player | Crate ] -> [ < Player | < Crate ]\n\nlate [ crate no tilled ] -> [ crate tilled ] sfx0\n\n==============\nWINCONDITIONS\n==============\n\nall Background on goodstate\n\n=======\nLEVELS\n=======\n\nmessage Go on, smear it ALL around!\n\nmessage Carriage 1 of 7\n(level 1)\n133331\n#p.*.#\n#*.1.#\n#..2.#\n#...*#\n233332\n\n\nmessage Carriage 2 of 7\n(level2)\n133331\n#....#\n#p.**#\n#.1**#\n232332\n\nmessage Carriage 3 of 7\n(slightly wholesome)\n13331,\n#...21\n#p...#\n21***#\n,21**#\n,,21.#\n,,,232\n\nmessage Carriage 4 of 7\n(I like this level! has personality)\n,,1331,,,\n132.*2331\n#.*.p...#\n#*3*.1*.#\n#.*..#..#\n233332332\n\n(\n(not actually taht scary, just need to use head a tiny amount)\n133331\n#.***#\n#*3**#\n#****#\n#....#\n#..p.#\n233332\n)\n\nmessage Carriage 5 of 7\n(pretty nice)\n133331\n#....#\n#.3p.#\n#..**#\n#****#\n#....#\n233332\n\n\nmessage Carriage 6 of 7\n(ok crate management?)\n133331,13331\n#*.*.232*.*#\n#p.....**3*#\n#...1....*.#\n#*.*#3333332\n23332,,,,,,,\n\nmessage Carriage 7 of 7\n(Decisions need to be made. ok conceptually?)\n,1313131,\n12.2*2.21\n#.*...*.#\n#3.3.3.3#\n#...*...#\n#3.3.3.3#\n#.*.p.*.#\n21.1.1.12\n,2323232,\n\nmessage All done! Very satisfying! \n\n(\n\n######\n#....#\n#.*.*#\n#p#.*#\n######\n\n\n######\n#p.*.#\n#*.#.#\n#..#.#\n#...*#\n######\n\n######\n#*.###\n#..#.#\n#p*#*#\n#...*#\n######)\n\n(\n\nTRANSFORM\n\n[ player ] -> []\n[ crate ] -> []\n\nchoose 4 [ ] - > [ wall ]\nchoose 1 [ no wall | no wall ] -> [ player | crate ]\n\n)\n",[1,2,3,0,1,3,3,3,3,3,2,0,1,2,3,0,1,1,1,2,1,0,3,3,1,2,2,1,1,1,3,0,0,1,3,0,0,1,2,1,1,3,2,2,3,0,2],"background void:0,background wallt:1,background wall:2,background wallalt:3,2,background wallb:4,0,background walltb:5,background tilled:6,\nbackground crate tilled:7,6,background walltbalt:8,1,4,7,5,6,5,\n8,6,6,7,7,8,5,6,6,\n7,background player:9,5,1,4,6,1,2,4,\n0,8,6,6,7,8,0,5,background:10,\n10,10,5,0,1,2,3,2,4,\n",8,"1645545059102.073"] - ], - [ - "Double-Entry Bookkeeping Simulator#1", - ["title Double-Entry Bookkeeping Simulator\nauthor increpare\nhomepage www.increpare.com\n\n( verbose_logging )\nrun_rules_on_level_start\n\nbackground_color #404040\n\nagain_interval 0.1\n\n\n( Svelte Version für Simulieren \nhttps://www.puzzlescript.net/editor.html?hack=a52aae823542d184b57fc3301627a81a \n)\n\n========\nOBJECTS\n========\n\nBackground\n#404040\n\n\n\nWall\n#000000\n\n\nPlayer\ntransparent #ffffff\n01110\n01010\n11111\n00100\n01010\n\nblue_raw\n#1e88e5\n\n\nblue1 \n#003461 #1e88e5\n00100\n01100\n00100\n00100\n01110\n\nblue2 \n#003461 #1e88e5\n01100\n00010\n00100\n01000\n01110\n\nblue3 \n#003461 #1e88e5\n01100\n00010\n01100\n00010\n01100\n\nblue4 \n#003461 #1e88e5\n01000\n01000\n01010\n01110\n00010\n\nblue5 \n#003461 #1e88e5\n01110\n01000\n01100\n00010\n01100\n\nblue6 \n#003461 #1e88e5\n00100\n01000\n01100\n01010\n00100\n\nblue7 \n#003461 #1e88e5\n01110\n00010\n00010\n00100\n00100\n\nblue8 \n#003461 #1e88e5\n00100\n01010\n00100\n01010\n00100\n\nblue9 \n#003461 #1e88e5\n00110\n01010\n00110\n00010\n00010\n\nred_raw\n#d81b60\n\nred1 \n#56001f #d81b60\n00100\n01100\n00100\n00100\n01110\n\nred2 \n#56001f #d81b60\n01100\n00010\n00100\n01000\n01110\n\nred3 \n#56001f #d81b60\n01100\n00010\n01100\n00010\n01100\n\nred4 \n#56001f #d81b60\n01000\n01000\n01010\n01110\n00010\n\nred5 \n#56001f #d81b60\n01110\n01000\n01100\n00010\n01100\n\nred6 \n#56001f #d81b60\n00100\n01000\n01100\n01010\n00100\n\nred7 \n#56001f #d81b60\n01110\n00010\n00010\n00100\n00100\n\nred8 \n#56001f #d81b60\n00100\n01010\n00100\n01010\n00100\n\nred9 \n#56001f #d81b60\n00110\n01010\n00110\n00010\n00010\n\nonce\ntransparent\n\ncounted\nwhite\n.....\n.....\n.....\n...0.\n.....\n\ncounting\nyellow\n.....\n.0...\n.....\n.....\n.....\n\ndeleting\nyellow\n00000\n0...0\n0...0\n0...0\n00000\n\ndeleted\norange\n.....\n.....\n...0.\n.....\n.....\n\nwall1\n#000000 #1f1f1f\n00100\n01100\n00100\n00100\n01110\n\nwall2\n#000000 #1f1f1f\n01100\n00010\n00100\n01000\n01110\n\nwall3\n#000000 #1f1f1f\n01100\n00010\n01100\n00010\n01100\n\nwall4\n#000000 #1f1f1f\n01000\n01000\n01010\n01110\n00010\n\nwall5\n#000000 #1f1f1f\n01110\n01000\n01100\n00010\n01100\n\nwall6\n#000000 #1f1f1f\n00100\n01000\n01100\n01010\n00100\n\nwall7\n#000000 #1f1f1f\n01110\n00010\n00010\n00100\n00100\n\nwall8\n#000000 #1f1f1f\n00100\n01010\n00100\n01010\n00100\n\nwall9\n#000000 #1f1f1f\n00110\n01010\n00110\n00010\n00010\n\n=======\nLEGEND\n=======\n\nwalllabel = wall1 or wall2 or wall3 or wall4 or wall5 or wall6 or wall7 or wall8 or wall9\nred = red_raw or red1 or red2 or red3 or red4 or red5 or red6 or red7 or red8 or red9\n\nblue = blue_raw or blue1 or blue2 or blue3 or blue4 or blue5 or blue6 or blue7 or blue8 or blue9\n\nblue_other = blue\nred_other = red\n\ncoloured = red or blue\n\npushable = red or blue\n. = Background\n# = Wall\nP = Player\n* = red_raw\n@ = blue_raw\n\nobstacle = pushable or wall or player\n\n=======\nSOUNDS\n=======\n\nred move 76964107\nblue move 73247707\nsfx0 66382107 (destroy)\nsfx1 49518300 (destroy start)\n\nstartlevel 46354708\nendlevel 70029700\nstartgame 40047300\n\n================\nCOLLISIONLAYERS\n================\n\nonce, counted\ncounting\ndeleted\nBackground\nPlayer, Wall, pushable\ndeleting\nwalllabel\n\n======\nRULES\n======\n\n[ moving player ] [ deleted ] -> [ moving player ] [ ]\n\n[ blue no deleting ] -> [ blue_raw ]\n[ red no deleting ] -> [ red_raw ]\n\n[ > Player | pushable ] -> [ > Player | > pushable ]\n\n\nstartloop\n\nlate [ player no once no deleting ] [ blue no counted no deleting ] -> [ player once ] [ once blue ]\n\nlate [ once blue_raw no deleting ] -> [ counting blue1 counted ]\nlate [ once blue1 no deleting ] -> [ counting blue2 counted ]\nlate [ once blue2 no deleting ] -> [ counting blue3 counted ]\nlate [ once blue3 no deleting ] -> [ counting blue4 counted ]\nlate [ once blue4 no deleting ] -> [ counting blue5 counted ]\nlate [ once blue5 no deleting ] -> [ counting blue6 counted ]\nlate [ once blue6 no deleting ] -> [ counting blue7 counted ]\nlate [ once blue7 no deleting ] -> [ counting blue8 counted ]\nlate [ once blue8 no deleting ] -> [ counting blue9 counted ]\n\nlate [once]->[]\n\nlate [ counting blue no deleting | no counting blue_other no deleting ] -> [ counting blue | counting blue ]\nlate [counting]->[]\n\nendloop\n\n\nstartloop\nlate [ player no once ] [ red no counted no deleting ] -> [ player once ] [ once red ]\n\nlate [ once red_raw no deleting ] -> [ counting red1 counted ]\nlate [ once red1 no deleting ] -> [ counting red2 counted ]\nlate [ once red2 no deleting ] -> [ counting red3 counted ]\nlate [ once red3 no deleting ] -> [ counting red4 counted ]\nlate [ once red4 no deleting ] -> [ counting red5 counted ]\nlate [ once red5 no deleting ] -> [ counting red6 counted ]\nlate [ once red6 no deleting ] -> [ counting red7 counted ]\nlate [ once red7 no deleting ] -> [ counting red8 counted ]\nlate [ once red8 no deleting ] -> [ counting red9 counted ]\n\nlate [once]->[]\n\nlate [ counting red no deleting | no counting red_other no deleting ] -> [ counting red | counting red ]\nlate [counting]->[]\n\nendloop\n\n\nrandom late [ deleting red1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting red2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting red3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting red4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting red5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting red6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting red7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting red8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting red9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting blue1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting blue2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting blue3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting blue4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting blue5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting blue6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting blue7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting blue8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting blue9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting red1 | deleting blue1 ] -> [ wall wall1 deleted | wall wall1 deleted ] again sfx0\n+ late [ deleting red2 | deleting blue2 ] -> [ wall wall2 deleted | wall wall2 deleted ] again sfx0\n+ late [ deleting red3 | deleting blue3 ] -> [ wall wall3 deleted | wall wall3 deleted ] again sfx0\n+ late [ deleting red4 | deleting blue4 ] -> [ wall wall4 deleted | wall wall4 deleted ] again sfx0\n+ late [ deleting red5 | deleting blue5 ] -> [ wall wall5 deleted | wall wall5 deleted ] again sfx0\n+ late [ deleting red6 | deleting blue6 ] -> [ wall wall6 deleted | wall wall6 deleted ] again sfx0\n+ late [ deleting red7 | deleting blue7 ] -> [ wall wall7 deleted | wall wall7 deleted ] again sfx0\n+ late [ deleting red8 | deleting blue8 ] -> [ wall wall8 deleted | wall wall8 deleted ] again sfx0\n+ late [ deleting red9 | deleting blue9 ] -> [ wall wall9 deleted | wall wall9 deleted ] again sfx0\n\nlate [counted]->[]\n\n\nlate [ red1 | blue1 ] -> [ deleting red1 | deleting blue1 ] again sfx1 \nlate [ red2 | blue2 ] -> [ deleting red2 | deleting blue2 ] again sfx1 \nlate [ red3 | blue3 ] -> [ deleting red3 | deleting blue3 ] again sfx1 \nlate [ red4 | blue4 ] -> [ deleting red4 | deleting blue4 ] again sfx1 \nlate [ red5 | blue5 ] -> [ deleting red5 | deleting blue5 ] again sfx1 \nlate [ red6 | blue6 ] -> [ deleting red6 | deleting blue6 ] again sfx1 \nlate [ red7 | blue7 ] -> [ deleting red7 | deleting blue7 ] again sfx1 \nlate [ red8 | blue8 ] -> [ deleting red8 | deleting blue8 ] again sfx1 \nlate [ red9 | blue9 ] -> [ deleting red9 | deleting blue9 ] again sfx1 \n\nlate [ deleting red1 | no deleting red1 ] -> [ deleting red1 | deleting red1 ]\nlate [ deleting red2 | no deleting red2 ] -> [ deleting red2 | deleting red2 ]\nlate [ deleting red3 | no deleting red3 ] -> [ deleting red3 | deleting red3 ]\nlate [ deleting red4 | no deleting red4 ] -> [ deleting red4 | deleting red4 ]\nlate [ deleting red5 | no deleting red5 ] -> [ deleting red5 | deleting red5 ]\nlate [ deleting red6 | no deleting red6 ] -> [ deleting red6 | deleting red6 ]\nlate [ deleting red7 | no deleting red7 ] -> [ deleting red7 | deleting red7 ]\nlate [ deleting red8 | no deleting red8 ] -> [ deleting red8 | deleting red8 ]\nlate [ deleting red9 | no deleting red9 ] -> [ deleting red9 | deleting red9 ]\n\n\nlate [ deleting blue1 | no deleting blue1 ] -> [ deleting blue1 | deleting blue1 ]\nlate [ deleting blue2 | no deleting blue2 ] -> [ deleting blue2 | deleting blue2 ]\nlate [ deleting blue3 | no deleting blue3 ] -> [ deleting blue3 | deleting blue3 ]\nlate [ deleting blue4 | no deleting blue4 ] -> [ deleting blue4 | deleting blue4 ]\nlate [ deleting blue5 | no deleting blue5 ] -> [ deleting blue5 | deleting blue5 ]\nlate [ deleting blue6 | no deleting blue6 ] -> [ deleting blue6 | deleting blue6 ]\nlate [ deleting blue7 | no deleting blue7 ] -> [ deleting blue7 | deleting blue7 ]\nlate [ deleting blue8 | no deleting blue8 ] -> [ deleting blue8 | deleting blue8 ]\nlate [ deleting blue9 | no deleting blue9 ] -> [ deleting blue9 | deleting blue9 ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nno coloured\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 9\n\n(improved version?)\n.....######\n.....#....#\n....##..@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n\nmessage Level 2 of 9\n\n#######...\n#@#@#@#...\n#@#@#@#...\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n.....#p..#\n.....#####\n\n\n\n\n\nmessage Level 3 of 9\n(ok? not too hard)\n#######.\n#.....#.\n#..*.@#.\n####.###\n.#.....#\n.#.*.@.#\n.#..p..#\n####.###\n#..*.@#.\n#.....#.\n#######.\n\n\n\nmessage Level 4 of 9\n#######..\n#.....#..\n#...@.#..\n#...@.###\n#...@.#@#\n#.....#.#\n#.p..***#\n#.....#.#\n#...@.#.#\n#...@...#\n#...@.###\n#.....#..\n#######..\n\n\nmessage Level 5 of 9\n\n(Actually tricky? or a bit overwhelming maybe?)\n(requires silly batching. i like this)\n#########\n#...#...#\n#..***..#\n#.......#\n####.####\n#.......#\n#..@@@p.#\n#...#...#\n#########\n\nmessage Level 6 of 9\n(possibly ok? IDK? WE?)\n#########\n#.......#\n#.*..@.*#\n#..**..@#\n#..**.@@#\n#.*..*..#\n#..p....#\n#########\n\nmessage Level 7 of 9\n(p ok? solution involves knowing something, but maybe you just stumble through it without knowing the thing)\n\n#####..\n#@@@#..\n#@@@##.\n#@#.@##\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\nmessage Level 8 of 9\n(p. ok level)\n###########\n#.........#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.p.......#\n#.........#\n###########\n\nmessage Level 9 of 9\n(ok final level maybe?)\n(fixed version?)\n...####....\n####..#....\n#@..*.#....\n###...#....\n..#.*#####.\n..#.*#.p.#.\n..#****@@#.\n..#.@@...#.\n..#.@@...#.\n..#.#@...##\n..#.......#\n..####....#\n.....######\n\nmessage Congratulations. You have mastered all the numbers, from 1 up to 9!\n\n(DISCARD PILE::::)\n\n(BAD IDEAS FOR FIRST LEVEL END )\n(thje better version. maybe ok early level?)\n( ####### )\n( #..#..# )\n( #..*.p# )\n( #..*..# )\n( #.....# )\n( ###.### )\n( #.....# )\n( #..@..# )\n( #..@..# )\n( #..#..# )\n( ####### )\n\n\n( ########## )\n( #@...##### )\n( ##...##### )\n( ##...##### )\n( ##@..##### )\n( ###...#### )\n( ###...#### )\n( ###@..#### )\n( ####.....# )\n( ####.***.# )\n( ####..p..# )\n( ########## )\n\n\n( audio test level)\n( ############# )\n( #..@........# )\n( #..@....@@..# )\n( #..@....@@@.# )\n( #..@.@..@@@.# )\n( #.*....*....# )\n( #..*.*..***.# )\n( #..*....***.# )\n( #..*....*...# )\n( #....p......# )\n( #...........# )\n( ############# )\n\n(level 2/3?)\n( ########## )\n( #........# )\n( #.**.@@@.# )\n( #........# )\n( #...p....# )\n( #........# )\n( ########## )\n\n(ok early level? meh other level does this but better IMO)\n( ###### )\n( #....# )\n( #.@.*# )\n( #.@.*# )\n( ###.## )\n( #....# )\n( #..p.# )\n( #....# )\n( ###.## )\n( #.@.*# )\n( #.@.*# )\n( #....# )\n( ###### )\n\n(ok level I think?)\n( ############# )\n( ####@.*...### )\n( ######*##.### )\n( #.....*.....# )\n( #.@@@...@@@.# )\n( #...........# )\n( #.....p.....# )\n( #...........# )\n( ############# )\n\n(\n\n(needs a few more steps of indirection on the right)\n#########\n#####*###\n#...#*###\n#.**@*###\n#.......#\n#@@..@@.#\n####p...#\n#########\n\n##############\n#....##......#\n#....##*.....#\n#.....#*.....#\n#...**@*.....#\n#............#\n###@@....@@..#\n######.p.....#\n######.......#\n##############\n\n###########\n#**@@***@@#\n#**..***..#\n#.........#\n#.........#\n#...@.@.@.#\n#.p.......#\n#...@.@.@.#\n#.........#\n###########\n\n##############\n#...#........#\n*.@.#........#\n#.#####**....#\n#.##**@**....#\n#............#\n####...@.@.@.#\n...#.p@.@.@..#\n...#.........#\n...###########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##....p..#\n##########\n\n\n(damnit a shortcut/trivialisation)\n##########\n####..####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n#@..######\n##..######\n##.*######\n##..#.p.##\n##****@@##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n(pedagogical version of other level)\n#############\n#@@*#@@#@####\n#@@*#@*#@####\n###*##*#*####\n###.......*.#\n###.......*.#\n#########.*.#\n#########p..#\n#############\n\n##########\n#........#\n#...@....#\n#........#\n#...**.@.#\n#.@.**...#\n#........#\n#.p..@...#\n#........#\n##########\n\n\n.#########.\n.#@.######.\n.#..######.\n.#****...#.\n.#*.**.p.#.\n###.**...#.\n#...@@*@@#.\n#...@@...#.\n#...@@...#.\n#@@*@@*@@#.\n#...*....#.\n#...@....#.\n#...@....#.\n##########.\n\n##########\n##@.##...#\n##..##.p.#\n###***...#\n##..***@@#\n##..@@...#\n##..@@...#\n##...@...#\n##.......#\n##.......#\n##########\n\n#########\n#@.##...#\n#..##.p.#\n##****@@#\n#..@@...#\n#...@...#\n#.......#\n#.......#\n#########\n\n##########\n####*#####\n#@.#*.p.##\n##****@@##\n##.@@...*#\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n\n\n##########\n#..#######\n#..#######\n#..##.p.##\n##****@@##\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n############\n#....#######\n#....#*#####\n#....#*.p.##\n#*##****@@##\n#.##.@@...*#\n#@##.@@...##\n####.#@...##\n####.......#\n####.......#\n############\n\n.#########...\n.#..######...\n.#..######...\n.##......#...\n.#.....p.#...\n##.......#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n##########...\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.......#\n#......*#\n#.....@*#\n######.##\n#....#.*#\n#.p...@.#\n#.......#\n#########\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.p.....#\n#......*#\n#.....@*#\n#.......#\n#....@.*#\n#.......#\n#########\n\n(is this funnier than above? I don't think so but I@m not sure)\n###########\n#.........#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.p.......#\n#.........#\n###########\n\n(technically harder than above but also more work)\n################\n#..............#\n#..............#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#.p............#\n#..............#\n################\n\n\n#################\n#...............#\n#...............#\n#..@@@.@@@.@@@..#\n#...*...*...*...#\n#..@@@.@@@.@@@..#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#...............#\n#################\n\n#################\n#...............#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n...............\n...............\n..@@@.@@@.@@@..\n...*...*...*...\n..@@@.@@@.@@@..\n...............\n...............\n.......p.......\n...............\n...............\n\n..........@.@...\n..........@.@...\n..........@*@...\n.......@@@*.*@@@\n..........@.@...\n..........@.@...\n..........@.@...\n................\n................\n\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n########\n#......#\n#......#\n#..@.*.#\n#......#\n###..*##\n####.###\n#p.@...#\n#......#\n####.###\n#......#\n#......#\n########\n\n\n...################\n..................#\n....@.............#\n.....@............#\n.@.**.@...........#\n..@.**.@..........#\n...@.**...........#\n....@.**..........#\n......p*.@........#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#################\n\n.........\n.........\n.#.#.#.#.\n.@.*.@.*.\n.#.#.#.#.\n.@.*.@.*.\n*#@#*#@#*\n.........\n..p......\n\n\n..#.#.#.#..\n...........\n..#.#.#.#..\n...........\n..#.#.#.#..\n...p.......\n\n.#.#.#.#.\n.@.*.*.@.\n.#.#.#.#.\n.@.*.*.@.\n*#@#.#@#*\n..p......\n\n(meh)\n#########\n#...@####\n#..*.@###\n#@..*.@##\n##@..*.@#\n###@..*.#\n####@p..#\n#########\n\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n(meeeeh. I think not great? too long but also if short too randomo)\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n###########\n###########\n##...@#####\n##..*.@####\n##@..*.@###\n###@..*.###\n####@p....#\n#####.***.#\n#####.....#\n###########\n\n#########\n#...@####\n#..*.@###\n#@..*.###\n##@..*.##\n####..*.#\n#####...#\n######.p#\n#########\n\n...#.......\n....#......\n....@#.....\n.....@#....\n#@....@#...\n.#@..*.@#..\n..#@..*....\n...#@..*...\n....#.*.*..\n.......*...\n......p.*..\n.........*.\n...........\n\n( (kinda different from the above) )\n( (trivial) )\n( ####### )\n( #....## )\n( #....## )\n( #.*.@## )\n( ###.### )\n( #.....# )\n( #.*.@.# )\n( #..p..# )\n( ###.### )\n( #.*.@## )\n( #....## )\n( #....## )\n( ####### )\n\n\n#######\n#....##\n#....##\n#....##\n#....##\n#.*.@##\n###.###\n#.....#\n#.*.@.#\n#p....#\n###.###\n#.*.@##\n#....##\n#....##\n#....##\n#....##\n#######\n\n#######\n#....##\n#....##\n#....##\n#.@.*##\n#.@.*##\n###.###\n#.....#\n#.@.*.#\n#p....#\n###.###\n#.@.*##\n#.@.*##\n#....##\n#....##\n#....##\n#######\n\n###########\n###@.*..###\n#####*#.###\n.....*.....\n.@@@...@@@.\n.....p.....\n...........\n...........\n\n#############\n####.....####\n######.#.####\n#...........#\n#...........#\n#.....p.....#\n#...........#\n#############\n\n#######\n#.....#\n#.***.#\n#.....#\n###.###\n#.....#\n#.@@@p#\n#.....#\n#######\n\n....####\n....#..#\n....#..#\n#####..#\n#...#..#\n#..@..*#\n#...#p.#\n#####..#\n#..@..*#\n#......#\n######.#\n....#@.#\n....#..#\n....#.*#\n....#..#\n....####\n\n.#######.\n.#.....#.\n.#..*..#.\n.#.*.*.#.\n.#.*.*.#.\n.#.....#.\n.#.....#.\n###.#.###\n#@@.#.@@#\n#@@.#.@@#\n#@..#..@#\n#@.*#*.@#\n#@p.#..@#\n#########\n\n@....*\n.@..*.\n......\n.@..*.\n..p...\n\n..........\n.@@....**.\n.@@....**.\n...@..*...\n..........\n...@..*...\n.....p....\n..........\n\n\n(ok partition problem)\n(nah broken)\n.........\n.........\n.@.....@.\n.@.#*#.@.\n.@..*..@.\n.........\n....p....\n.........\n\n...............\n....@..#..@....\n.#..@.#*#.@..#.\n#*..@..*..@..*#\n.#..@.....@..#.\n.......p.......\n...............\n\n....####.....\n...#@.*......\n....##*#.....\n......*......\n.............\n..@@@.p.@@@..\n.............\n.............\n\n#######\n#.....#\n#.#.#.#\n#.@.*.#\n###.###\n.......\np.@.*..\n.......\n###.###\n#.@.*.#\n#.#.#.#\n#.....#\n#######\n\n######\n#...##\n#...##\n#...##\n#.@.*#\n###.##\n......\np.@.*.\n......\n###.##\n#.@.*#\n#...##\n#...##\n#...##\n######\n\n(trivial)\n(\n.........\n.........\n..**.@...\n.........\n....p....\n.........\n)\n\n\n\n............\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..*.*..*.*..\n.....p......\n............\n\n...........\n.....@.....\n.....@.....\n.....@.....\n.....@.....\n.....*.....\n.@@@@*@@@@.\n.....*.....\n.@@@@.@@@@.\n.....*.....\n...........\n.....p.....\n...........\n\n...........\n...........\n..###.###..\n..#*....#..\n..#.*...#..\n..###.###..\n..p.@.@....\n...........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n..........\n..........\n..........\n\n..........\n..........\n..####....\n..#*.@..p.\n..#.*@....\n..####....\n..........\n..........\n\n..........\n..........\n..####....\n..#*..@.p.\n..#.*.@...\n..####....\n..........\n..........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n####..####\n..........\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n..........\n\n.########.\n.#......#.\n.#.*..@.#.\n.#..*.@.#.\n####..####\n...p......\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n\n@@@@@@@@\n###@####\n........\n........\n.*.*.*..\n........\n.*.*.*..\n........\n.*.*.p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n...*....\n..***...\n...*....\n..***...\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n..***...\n..*.*...\n..***...\n........\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n..*.*...\n........\n..*.*...\n...@....\n..*.*...\n........\n..*.*p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n........\n........\n...*....\n..*.*...\n...*....\n..*.*...\n.*.@.*..\n...p....\n###*####\n########\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n#######\n##...##\n#.....#\n###.###\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#..p..#\n###.###\n#######\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n##################\n#####@#@#@########\n#####@#@#@########\n#####*#*#*########\n#@.........*....p#\n#..............*.#\n##############.*.#\n##############.*.#\n##############...#\n##################\n\n\n##############\n#@#@#@########\n#@#@#@########\n#*#*#*########\n#......*.p...#\n#..........*.#\n##########.*.#\n##########...#\n##############\n\n##########\n#@#@#@####\n#@#@#@####\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n######p..#\n##########\n\n#############\n###@#@#@#####\n###@#@#@#####\n###*#*#*#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#############\n###@#@#@#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#########\n###@#####\n#@....*p#\n#.....*.#\n#########\n\n...........\n...........\n....@@@....\n...........\n..@.***.@..\n..@.***.@..\n..@.***.@..\n...........\n.....p.....\n...........\n...........\n\n###########\n#.........#\n#.#..@..#.#\n#...@.@...#\n#..@***@..#\n#...***...#\n#..@***@..#\n#...@.@...#\n#.#..p..#.#\n#.........#\n###########\n\n#########\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(meeeh but in a pinch! but really, don't add it)\n#########\n##.....##\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(aaa kinda ok? has some stuff going on)\n#########\n#.......#\n#.*.@.*.#\n#..*@*..#\n#.@@*@@.#\n#..*@*..#\n#.*.@.*.#\n#...p...#\n#########\n\n#########\n#.......#\n#.@..**.#\n#.....*.#\n#..@....#\n#....@..#\n#.**....#\n#..*p.@.#\n#.....@.#\n#.@.*.@.#\n#.......#\n#########\n\n(doesn't have enough personality)\n#########\n#......p#\n#..@.@..#\n#.*.*.@.#\n#....*..#\n#.**..@.#\n#.**.*..#\n#.......#\n#########\n\n\n#########\n...#*#...\n.........\n##..*..##\n###...###\n####p####\n###...###\n##..@..##\n.........\n...#@#...\n#########\n\n\n\n#..#..#\n#..*.p#\n#.....#\n#..*..#\n###.###\n#..@..#\n#.....#\n#..@..#\n#..#..#\n\n...........\n.....*.....\n...........\n.....*.....\n....*.*....\n...*@@@*...\n....*.*....\n.....*.....\n...........\n.....p.....\n...........\n\n.......\n..*.*..\n.*@@@*.\n..*.*..\n...*...\n.......\n...p...\n.......\n)\n(\n....\n....\n....\n\n....\n....\n....\n....\n\n\n....\n....\n....\n....\n....\n\n\n.....\n.....\n.....\n.....\n.....\n\n......\n......\n......\n......\n......\n......\n\n##########\n#........#\n#.#....#.#\n#..*..*..#\n#...**..@#\n#...**.@@#\n#..*..@..#\n#.#.p*.#.#\n#.......##\n##########\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n##########\n\n###########\n#....#....#\n#.**.#.@@.#\n#.*..#..@.#\n#.........#\n####.p.####\n#.........#\n#.@..#..*.#\n#.@@.#.**.#\n#....#....#\n###########\n\n(solvable which is nice but also not good which is not nice)\n##########\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#........#\n#...p....#\n##########\n\n##########################\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#........................#\n#...........p............#\n##########################\n\n##########################\n#........................#\n#........................#\n#.........*..p...........#\n#........@@..............#\n#........***.............#\n#.......@@@@.............#\n#.......*****............#\n#......@@@@@@............#\n#......*******...........#\n#.....@@@@@@@@...........#\n#........................#\n#........................#\n#........................#\n#........................#\n#........................#\n##########################\n\n###########\n#.........#\n#.........#\n#..*@@@@..#\n#..*...*..#\n#..*.*.*..#\n#..*.@@*..#\n#..*......#\n#..@@@....#\n#.........#\n#....p....#\n#.........#\n###########\n\n####################\n#..................#\n#..................#\n#..................#\n#..................#\n#..***........@@@..#\n#..*.*........@.@..#\n#..***........@@@..#\n#..................#\n#..................#\n#.....p............#\n#..................#\n####################\n\n###########\n#.........#\n#.*.@@@@@.#\n#.*.@...@.#\n#.*...*.@.#\n#.*****.@.#\n#.........#\n#.........#\n#....p....#\n###*###@###\n###########\n\n...........\n##@@@@@@@##\n#####@#####\n#.........#\n#....*....#\n#...*.*...#\n#..*.@.*..#\n#...*.*...#\n#....*....#\n#.........#\n#....p....#\n#####*#####\n###########\n\n#######\n#@@@@@#\n##@@@##\n#.p...#\n#..@..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#.....#\n###*###\n#######\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n..###..\n.##*##.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n##@@@##\n##@@@#.\n.#####.\n\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n###.###\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n#######\n#*.*.*#\n#.*.*.#\n#*.*.*#\n#.@.@.#\n#@.@.@#\n#.@.@.#\n#..@..#\n#.....#\n#..p..#\n#.....#\n#######\n\n\n\n(ACTUAL CANDIDATE LEVELS)\n\n\n\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#.........#\n#.........#\n#....p....#\n#.........#\n###########\n\n\n(it is a level, but not amazing? but maybe ok? but I don't know? also repeats a mechanism from another level? but maybe better?)\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#....p....#\n#.........#\n#####.#####\n####*.***##\n#####****##\n###########\n\n##########\n#........#\n#.....p..#\n#........#\n#.....####\n#..#.....#\n#..#@....#\n#..#.....#\n##########\n\n\n\nmessage level 1 of 10\n\n####..\n#..#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 2 of 10\n\n######\n#....#\n#.#P.#\n#.*@.#\n#..@.#\n#....#\n######\n\nmessage level 3 of 10\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#....#P.#\n#########\n\nmessage level 4 of 10\n\n########\n#......#\n#..@@*P#\n#......#\n#####..#\n....####\n\nmessage level 5 of 10\n\n.#######\n.#.....#\n.#..*..#\n##.*P*.#\n#...*..#\n#......#\n########\n\nmessage level 6 of 10\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#......#\n#...########\n#####.......\n\n..######....\n###..**#####\n#.......@..#\n#.#..**#@@.#\n#......#.p.#\n############\n\nmessage level 7 of 10\n\n#######\n#.....#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..P..#\n#######\n\nmessage level 8 of 10\n\n..######\n..#...P#\n..#.**.#\n####.###\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\nmessage level 9 of 10\n\n#####.\n#...##\n#P**.#\n##...#\n.##..#\n..##.#\n...###\n\nmessage level 10 of 10\n\n......#####\n......#...#\n......#.#.#\n#######.#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\nmessage congratulations!\n\n\n#########\n#.......#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#...p...#\n#########\n\n......#####\n......#...#\n#######.#.#\n#.*.*.*.*.#\n#.#.#.#.###\n#....p..#..\n####@@@@#..\n...######..\n\n........#####\n........#...#\n#########.#.#\n#...*.*.*.*.#\n#.#.#.#.#.###\n#......p..#..\n######@@@@#..\n.....######..\n\n..........#####\n..........#...#\n..#########.#.#\n.##.*.@.@.@...#\n##*.#.#.#.#.###\n#*......p.....#\n###########.#.#\n..........#...#\n..........#####\n\n.......#####\n.......#...#\n########.#.#\n#*.....*.*.#\n##.#.#.#.###\n#@.@.@p....#\n########.#.#\n.......#...#\n.......#####\n)\n\n(\n..#########\n..#.......#\n..#.##..@.#\n..#.#@....#\n..#.....*.#\n..#.#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n \n.....######\n....##....#\n....#@..@.#\n....#.....#\n....#*#.*.#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n....#######\n....#.....#\n....#...@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n)\n\n",[1,1,1,1,3,3,0,0,3,0,3,3,3,0,0,1,1,1,2,2,2,2,3,2,1,1,3],"background:0,0,0,0,0,0,background wall:1,1,1,1,1,\n1,0,0,0,0,0,0,1,0,0,0,\n0,1,0,0,0,0,0,0,1,0,background wall wall3:2,\n2,2,1,0,0,0,0,0,0,1,0,\n2,2,2,1,0,0,1,1,1,1,1,\n1,1,0,1,1,1,1,1,background blue1:3,0,0,\n0,0,0,background player:4,0,1,1,0,0,0,0,\n1,0,1,0,0,0,1,1,0,0,0,\n0,0,0,1,0,0,0,1,1,0,background wall wall1:5,\n5,0,0,0,1,1,1,1,1,1,0,\n0,0,0,0,0,1,0,0,0,0,1,\n1,1,1,1,1,1,1,0,0,0,0,\n",1,"1645545097375.3352"] - ], - [ - "Double-Entry Bookkeeping Simulator#2", - ["title Double-Entry Bookkeeping Simulator\nauthor increpare\nhomepage www.increpare.com\n\n( verbose_logging )\nrun_rules_on_level_start\n\nbackground_color #404040\n\nagain_interval 0.1\n\n\n( Svelte Version für Simulieren \nhttps://www.puzzlescript.net/editor.html?hack=a52aae823542d184b57fc3301627a81a \n)\n\n========\nOBJECTS\n========\n\nBackground\n#404040\n\n\n\nWall\n#000000\n\n\nPlayer\ntransparent #ffffff\n01110\n01010\n11111\n00100\n01010\n\nblue_raw\n#1e88e5\n\n\nblue1 \n#003461 #1e88e5\n00100\n01100\n00100\n00100\n01110\n\nblue2 \n#003461 #1e88e5\n01100\n00010\n00100\n01000\n01110\n\nblue3 \n#003461 #1e88e5\n01100\n00010\n01100\n00010\n01100\n\nblue4 \n#003461 #1e88e5\n01000\n01000\n01010\n01110\n00010\n\nblue5 \n#003461 #1e88e5\n01110\n01000\n01100\n00010\n01100\n\nblue6 \n#003461 #1e88e5\n00100\n01000\n01100\n01010\n00100\n\nblue7 \n#003461 #1e88e5\n01110\n00010\n00010\n00100\n00100\n\nblue8 \n#003461 #1e88e5\n00100\n01010\n00100\n01010\n00100\n\nblue9 \n#003461 #1e88e5\n00110\n01010\n00110\n00010\n00010\n\nred_raw\n#d81b60\n\nred1 \n#56001f #d81b60\n00100\n01100\n00100\n00100\n01110\n\nred2 \n#56001f #d81b60\n01100\n00010\n00100\n01000\n01110\n\nred3 \n#56001f #d81b60\n01100\n00010\n01100\n00010\n01100\n\nred4 \n#56001f #d81b60\n01000\n01000\n01010\n01110\n00010\n\nred5 \n#56001f #d81b60\n01110\n01000\n01100\n00010\n01100\n\nred6 \n#56001f #d81b60\n00100\n01000\n01100\n01010\n00100\n\nred7 \n#56001f #d81b60\n01110\n00010\n00010\n00100\n00100\n\nred8 \n#56001f #d81b60\n00100\n01010\n00100\n01010\n00100\n\nred9 \n#56001f #d81b60\n00110\n01010\n00110\n00010\n00010\n\nonce\ntransparent\n\ncounted\nwhite\n.....\n.....\n.....\n...0.\n.....\n\ncounting\nyellow\n.....\n.0...\n.....\n.....\n.....\n\ndeleting\nyellow\n00000\n0...0\n0...0\n0...0\n00000\n\ndeleted\norange\n.....\n.....\n...0.\n.....\n.....\n\nwall1\n#000000 #1f1f1f\n00100\n01100\n00100\n00100\n01110\n\nwall2\n#000000 #1f1f1f\n01100\n00010\n00100\n01000\n01110\n\nwall3\n#000000 #1f1f1f\n01100\n00010\n01100\n00010\n01100\n\nwall4\n#000000 #1f1f1f\n01000\n01000\n01010\n01110\n00010\n\nwall5\n#000000 #1f1f1f\n01110\n01000\n01100\n00010\n01100\n\nwall6\n#000000 #1f1f1f\n00100\n01000\n01100\n01010\n00100\n\nwall7\n#000000 #1f1f1f\n01110\n00010\n00010\n00100\n00100\n\nwall8\n#000000 #1f1f1f\n00100\n01010\n00100\n01010\n00100\n\nwall9\n#000000 #1f1f1f\n00110\n01010\n00110\n00010\n00010\n\n=======\nLEGEND\n=======\n\nwalllabel = wall1 or wall2 or wall3 or wall4 or wall5 or wall6 or wall7 or wall8 or wall9\nred = red_raw or red1 or red2 or red3 or red4 or red5 or red6 or red7 or red8 or red9\n\nblue = blue_raw or blue1 or blue2 or blue3 or blue4 or blue5 or blue6 or blue7 or blue8 or blue9\n\nblue_other = blue\nred_other = red\n\ncoloured = red or blue\n\npushable = red or blue\n. = Background\n# = Wall\nP = Player\n* = red_raw\n@ = blue_raw\n\nobstacle = pushable or wall or player\n\n=======\nSOUNDS\n=======\n\nred move 76964107\nblue move 73247707\nsfx0 66382107 (destroy)\nsfx1 49518300 (destroy start)\n\nstartlevel 46354708\nendlevel 70029700\nstartgame 40047300\n\n================\nCOLLISIONLAYERS\n================\n\nonce, counted\ncounting\ndeleted\nBackground\nPlayer, Wall, pushable\ndeleting\nwalllabel\n\n======\nRULES\n======\n\n[ moving player ] [ deleted ] -> [ moving player ] [ ]\n\n[ blue no deleting ] -> [ blue_raw ]\n[ red no deleting ] -> [ red_raw ]\n\n[ > Player | pushable ] -> [ > Player | > pushable ]\n\n\nstartloop\n\nlate [ player no once no deleting ] [ blue no counted no deleting ] -> [ player once ] [ once blue ]\n\nlate [ once blue_raw no deleting ] -> [ counting blue1 counted ]\nlate [ once blue1 no deleting ] -> [ counting blue2 counted ]\nlate [ once blue2 no deleting ] -> [ counting blue3 counted ]\nlate [ once blue3 no deleting ] -> [ counting blue4 counted ]\nlate [ once blue4 no deleting ] -> [ counting blue5 counted ]\nlate [ once blue5 no deleting ] -> [ counting blue6 counted ]\nlate [ once blue6 no deleting ] -> [ counting blue7 counted ]\nlate [ once blue7 no deleting ] -> [ counting blue8 counted ]\nlate [ once blue8 no deleting ] -> [ counting blue9 counted ]\n\nlate [once]->[]\n\nlate [ counting blue no deleting | no counting blue_other no deleting ] -> [ counting blue | counting blue ]\nlate [counting]->[]\n\nendloop\n\n\nstartloop\nlate [ player no once ] [ red no counted no deleting ] -> [ player once ] [ once red ]\n\nlate [ once red_raw no deleting ] -> [ counting red1 counted ]\nlate [ once red1 no deleting ] -> [ counting red2 counted ]\nlate [ once red2 no deleting ] -> [ counting red3 counted ]\nlate [ once red3 no deleting ] -> [ counting red4 counted ]\nlate [ once red4 no deleting ] -> [ counting red5 counted ]\nlate [ once red5 no deleting ] -> [ counting red6 counted ]\nlate [ once red6 no deleting ] -> [ counting red7 counted ]\nlate [ once red7 no deleting ] -> [ counting red8 counted ]\nlate [ once red8 no deleting ] -> [ counting red9 counted ]\n\nlate [once]->[]\n\nlate [ counting red no deleting | no counting red_other no deleting ] -> [ counting red | counting red ]\nlate [counting]->[]\n\nendloop\n\n\nrandom late [ deleting red1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting red2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting red3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting red4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting red5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting red6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting red7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting red8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting red9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting blue1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting blue2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting blue3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting blue4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting blue5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting blue6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting blue7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting blue8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting blue9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting red1 | deleting blue1 ] -> [ wall wall1 deleted | wall wall1 deleted ] again sfx0\n+ late [ deleting red2 | deleting blue2 ] -> [ wall wall2 deleted | wall wall2 deleted ] again sfx0\n+ late [ deleting red3 | deleting blue3 ] -> [ wall wall3 deleted | wall wall3 deleted ] again sfx0\n+ late [ deleting red4 | deleting blue4 ] -> [ wall wall4 deleted | wall wall4 deleted ] again sfx0\n+ late [ deleting red5 | deleting blue5 ] -> [ wall wall5 deleted | wall wall5 deleted ] again sfx0\n+ late [ deleting red6 | deleting blue6 ] -> [ wall wall6 deleted | wall wall6 deleted ] again sfx0\n+ late [ deleting red7 | deleting blue7 ] -> [ wall wall7 deleted | wall wall7 deleted ] again sfx0\n+ late [ deleting red8 | deleting blue8 ] -> [ wall wall8 deleted | wall wall8 deleted ] again sfx0\n+ late [ deleting red9 | deleting blue9 ] -> [ wall wall9 deleted | wall wall9 deleted ] again sfx0\n\nlate [counted]->[]\n\n\nlate [ red1 | blue1 ] -> [ deleting red1 | deleting blue1 ] again sfx1 \nlate [ red2 | blue2 ] -> [ deleting red2 | deleting blue2 ] again sfx1 \nlate [ red3 | blue3 ] -> [ deleting red3 | deleting blue3 ] again sfx1 \nlate [ red4 | blue4 ] -> [ deleting red4 | deleting blue4 ] again sfx1 \nlate [ red5 | blue5 ] -> [ deleting red5 | deleting blue5 ] again sfx1 \nlate [ red6 | blue6 ] -> [ deleting red6 | deleting blue6 ] again sfx1 \nlate [ red7 | blue7 ] -> [ deleting red7 | deleting blue7 ] again sfx1 \nlate [ red8 | blue8 ] -> [ deleting red8 | deleting blue8 ] again sfx1 \nlate [ red9 | blue9 ] -> [ deleting red9 | deleting blue9 ] again sfx1 \n\nlate [ deleting red1 | no deleting red1 ] -> [ deleting red1 | deleting red1 ]\nlate [ deleting red2 | no deleting red2 ] -> [ deleting red2 | deleting red2 ]\nlate [ deleting red3 | no deleting red3 ] -> [ deleting red3 | deleting red3 ]\nlate [ deleting red4 | no deleting red4 ] -> [ deleting red4 | deleting red4 ]\nlate [ deleting red5 | no deleting red5 ] -> [ deleting red5 | deleting red5 ]\nlate [ deleting red6 | no deleting red6 ] -> [ deleting red6 | deleting red6 ]\nlate [ deleting red7 | no deleting red7 ] -> [ deleting red7 | deleting red7 ]\nlate [ deleting red8 | no deleting red8 ] -> [ deleting red8 | deleting red8 ]\nlate [ deleting red9 | no deleting red9 ] -> [ deleting red9 | deleting red9 ]\n\n\nlate [ deleting blue1 | no deleting blue1 ] -> [ deleting blue1 | deleting blue1 ]\nlate [ deleting blue2 | no deleting blue2 ] -> [ deleting blue2 | deleting blue2 ]\nlate [ deleting blue3 | no deleting blue3 ] -> [ deleting blue3 | deleting blue3 ]\nlate [ deleting blue4 | no deleting blue4 ] -> [ deleting blue4 | deleting blue4 ]\nlate [ deleting blue5 | no deleting blue5 ] -> [ deleting blue5 | deleting blue5 ]\nlate [ deleting blue6 | no deleting blue6 ] -> [ deleting blue6 | deleting blue6 ]\nlate [ deleting blue7 | no deleting blue7 ] -> [ deleting blue7 | deleting blue7 ]\nlate [ deleting blue8 | no deleting blue8 ] -> [ deleting blue8 | deleting blue8 ]\nlate [ deleting blue9 | no deleting blue9 ] -> [ deleting blue9 | deleting blue9 ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nno coloured\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 9\n\n(improved version?)\n.....######\n.....#....#\n....##..@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n\nmessage Level 2 of 9\n\n#######...\n#@#@#@#...\n#@#@#@#...\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n.....#p..#\n.....#####\n\n\n\n\n\nmessage Level 3 of 9\n(ok? not too hard)\n#######.\n#.....#.\n#..*.@#.\n####.###\n.#.....#\n.#.*.@.#\n.#..p..#\n####.###\n#..*.@#.\n#.....#.\n#######.\n\n\n\nmessage Level 4 of 9\n#######..\n#.....#..\n#...@.#..\n#...@.###\n#...@.#@#\n#.....#.#\n#.p..***#\n#.....#.#\n#...@.#.#\n#...@...#\n#...@.###\n#.....#..\n#######..\n\n\nmessage Level 5 of 9\n\n(Actually tricky? or a bit overwhelming maybe?)\n(requires silly batching. i like this)\n#########\n#...#...#\n#..***..#\n#.......#\n####.####\n#.......#\n#..@@@p.#\n#...#...#\n#########\n\nmessage Level 6 of 9\n(possibly ok? IDK? WE?)\n#########\n#.......#\n#.*..@.*#\n#..**..@#\n#..**.@@#\n#.*..*..#\n#..p....#\n#########\n\nmessage Level 7 of 9\n(p ok? solution involves knowing something, but maybe you just stumble through it without knowing the thing)\n\n#####..\n#@@@#..\n#@@@##.\n#@#.@##\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\nmessage Level 8 of 9\n(p. ok level)\n###########\n#.........#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.p.......#\n#.........#\n###########\n\nmessage Level 9 of 9\n(ok final level maybe?)\n(fixed version?)\n...####....\n####..#....\n#@..*.#....\n###...#....\n..#.*#####.\n..#.*#.p.#.\n..#****@@#.\n..#.@@...#.\n..#.@@...#.\n..#.#@...##\n..#.......#\n..####....#\n.....######\n\nmessage Congratulations. You have mastered all the numbers, from 1 up to 9!\n\n(DISCARD PILE::::)\n\n(BAD IDEAS FOR FIRST LEVEL END )\n(thje better version. maybe ok early level?)\n( ####### )\n( #..#..# )\n( #..*.p# )\n( #..*..# )\n( #.....# )\n( ###.### )\n( #.....# )\n( #..@..# )\n( #..@..# )\n( #..#..# )\n( ####### )\n\n\n( ########## )\n( #@...##### )\n( ##...##### )\n( ##...##### )\n( ##@..##### )\n( ###...#### )\n( ###...#### )\n( ###@..#### )\n( ####.....# )\n( ####.***.# )\n( ####..p..# )\n( ########## )\n\n\n( audio test level)\n( ############# )\n( #..@........# )\n( #..@....@@..# )\n( #..@....@@@.# )\n( #..@.@..@@@.# )\n( #.*....*....# )\n( #..*.*..***.# )\n( #..*....***.# )\n( #..*....*...# )\n( #....p......# )\n( #...........# )\n( ############# )\n\n(level 2/3?)\n( ########## )\n( #........# )\n( #.**.@@@.# )\n( #........# )\n( #...p....# )\n( #........# )\n( ########## )\n\n(ok early level? meh other level does this but better IMO)\n( ###### )\n( #....# )\n( #.@.*# )\n( #.@.*# )\n( ###.## )\n( #....# )\n( #..p.# )\n( #....# )\n( ###.## )\n( #.@.*# )\n( #.@.*# )\n( #....# )\n( ###### )\n\n(ok level I think?)\n( ############# )\n( ####@.*...### )\n( ######*##.### )\n( #.....*.....# )\n( #.@@@...@@@.# )\n( #...........# )\n( #.....p.....# )\n( #...........# )\n( ############# )\n\n(\n\n(needs a few more steps of indirection on the right)\n#########\n#####*###\n#...#*###\n#.**@*###\n#.......#\n#@@..@@.#\n####p...#\n#########\n\n##############\n#....##......#\n#....##*.....#\n#.....#*.....#\n#...**@*.....#\n#............#\n###@@....@@..#\n######.p.....#\n######.......#\n##############\n\n###########\n#**@@***@@#\n#**..***..#\n#.........#\n#.........#\n#...@.@.@.#\n#.p.......#\n#...@.@.@.#\n#.........#\n###########\n\n##############\n#...#........#\n*.@.#........#\n#.#####**....#\n#.##**@**....#\n#............#\n####...@.@.@.#\n...#.p@.@.@..#\n...#.........#\n...###########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##....p..#\n##########\n\n\n(damnit a shortcut/trivialisation)\n##########\n####..####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n#@..######\n##..######\n##.*######\n##..#.p.##\n##****@@##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n(pedagogical version of other level)\n#############\n#@@*#@@#@####\n#@@*#@*#@####\n###*##*#*####\n###.......*.#\n###.......*.#\n#########.*.#\n#########p..#\n#############\n\n##########\n#........#\n#...@....#\n#........#\n#...**.@.#\n#.@.**...#\n#........#\n#.p..@...#\n#........#\n##########\n\n\n.#########.\n.#@.######.\n.#..######.\n.#****...#.\n.#*.**.p.#.\n###.**...#.\n#...@@*@@#.\n#...@@...#.\n#...@@...#.\n#@@*@@*@@#.\n#...*....#.\n#...@....#.\n#...@....#.\n##########.\n\n##########\n##@.##...#\n##..##.p.#\n###***...#\n##..***@@#\n##..@@...#\n##..@@...#\n##...@...#\n##.......#\n##.......#\n##########\n\n#########\n#@.##...#\n#..##.p.#\n##****@@#\n#..@@...#\n#...@...#\n#.......#\n#.......#\n#########\n\n##########\n####*#####\n#@.#*.p.##\n##****@@##\n##.@@...*#\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n\n\n##########\n#..#######\n#..#######\n#..##.p.##\n##****@@##\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n############\n#....#######\n#....#*#####\n#....#*.p.##\n#*##****@@##\n#.##.@@...*#\n#@##.@@...##\n####.#@...##\n####.......#\n####.......#\n############\n\n.#########...\n.#..######...\n.#..######...\n.##......#...\n.#.....p.#...\n##.......#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n##########...\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.......#\n#......*#\n#.....@*#\n######.##\n#....#.*#\n#.p...@.#\n#.......#\n#########\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.p.....#\n#......*#\n#.....@*#\n#.......#\n#....@.*#\n#.......#\n#########\n\n(is this funnier than above? I don't think so but I@m not sure)\n###########\n#.........#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.p.......#\n#.........#\n###########\n\n(technically harder than above but also more work)\n################\n#..............#\n#..............#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#.p............#\n#..............#\n################\n\n\n#################\n#...............#\n#...............#\n#..@@@.@@@.@@@..#\n#...*...*...*...#\n#..@@@.@@@.@@@..#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#...............#\n#################\n\n#################\n#...............#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n...............\n...............\n..@@@.@@@.@@@..\n...*...*...*...\n..@@@.@@@.@@@..\n...............\n...............\n.......p.......\n...............\n...............\n\n..........@.@...\n..........@.@...\n..........@*@...\n.......@@@*.*@@@\n..........@.@...\n..........@.@...\n..........@.@...\n................\n................\n\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n########\n#......#\n#......#\n#..@.*.#\n#......#\n###..*##\n####.###\n#p.@...#\n#......#\n####.###\n#......#\n#......#\n########\n\n\n...################\n..................#\n....@.............#\n.....@............#\n.@.**.@...........#\n..@.**.@..........#\n...@.**...........#\n....@.**..........#\n......p*.@........#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#################\n\n.........\n.........\n.#.#.#.#.\n.@.*.@.*.\n.#.#.#.#.\n.@.*.@.*.\n*#@#*#@#*\n.........\n..p......\n\n\n..#.#.#.#..\n...........\n..#.#.#.#..\n...........\n..#.#.#.#..\n...p.......\n\n.#.#.#.#.\n.@.*.*.@.\n.#.#.#.#.\n.@.*.*.@.\n*#@#.#@#*\n..p......\n\n(meh)\n#########\n#...@####\n#..*.@###\n#@..*.@##\n##@..*.@#\n###@..*.#\n####@p..#\n#########\n\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n(meeeeh. I think not great? too long but also if short too randomo)\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n###########\n###########\n##...@#####\n##..*.@####\n##@..*.@###\n###@..*.###\n####@p....#\n#####.***.#\n#####.....#\n###########\n\n#########\n#...@####\n#..*.@###\n#@..*.###\n##@..*.##\n####..*.#\n#####...#\n######.p#\n#########\n\n...#.......\n....#......\n....@#.....\n.....@#....\n#@....@#...\n.#@..*.@#..\n..#@..*....\n...#@..*...\n....#.*.*..\n.......*...\n......p.*..\n.........*.\n...........\n\n( (kinda different from the above) )\n( (trivial) )\n( ####### )\n( #....## )\n( #....## )\n( #.*.@## )\n( ###.### )\n( #.....# )\n( #.*.@.# )\n( #..p..# )\n( ###.### )\n( #.*.@## )\n( #....## )\n( #....## )\n( ####### )\n\n\n#######\n#....##\n#....##\n#....##\n#....##\n#.*.@##\n###.###\n#.....#\n#.*.@.#\n#p....#\n###.###\n#.*.@##\n#....##\n#....##\n#....##\n#....##\n#######\n\n#######\n#....##\n#....##\n#....##\n#.@.*##\n#.@.*##\n###.###\n#.....#\n#.@.*.#\n#p....#\n###.###\n#.@.*##\n#.@.*##\n#....##\n#....##\n#....##\n#######\n\n###########\n###@.*..###\n#####*#.###\n.....*.....\n.@@@...@@@.\n.....p.....\n...........\n...........\n\n#############\n####.....####\n######.#.####\n#...........#\n#...........#\n#.....p.....#\n#...........#\n#############\n\n#######\n#.....#\n#.***.#\n#.....#\n###.###\n#.....#\n#.@@@p#\n#.....#\n#######\n\n....####\n....#..#\n....#..#\n#####..#\n#...#..#\n#..@..*#\n#...#p.#\n#####..#\n#..@..*#\n#......#\n######.#\n....#@.#\n....#..#\n....#.*#\n....#..#\n....####\n\n.#######.\n.#.....#.\n.#..*..#.\n.#.*.*.#.\n.#.*.*.#.\n.#.....#.\n.#.....#.\n###.#.###\n#@@.#.@@#\n#@@.#.@@#\n#@..#..@#\n#@.*#*.@#\n#@p.#..@#\n#########\n\n@....*\n.@..*.\n......\n.@..*.\n..p...\n\n..........\n.@@....**.\n.@@....**.\n...@..*...\n..........\n...@..*...\n.....p....\n..........\n\n\n(ok partition problem)\n(nah broken)\n.........\n.........\n.@.....@.\n.@.#*#.@.\n.@..*..@.\n.........\n....p....\n.........\n\n...............\n....@..#..@....\n.#..@.#*#.@..#.\n#*..@..*..@..*#\n.#..@.....@..#.\n.......p.......\n...............\n\n....####.....\n...#@.*......\n....##*#.....\n......*......\n.............\n..@@@.p.@@@..\n.............\n.............\n\n#######\n#.....#\n#.#.#.#\n#.@.*.#\n###.###\n.......\np.@.*..\n.......\n###.###\n#.@.*.#\n#.#.#.#\n#.....#\n#######\n\n######\n#...##\n#...##\n#...##\n#.@.*#\n###.##\n......\np.@.*.\n......\n###.##\n#.@.*#\n#...##\n#...##\n#...##\n######\n\n(trivial)\n(\n.........\n.........\n..**.@...\n.........\n....p....\n.........\n)\n\n\n\n............\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..*.*..*.*..\n.....p......\n............\n\n...........\n.....@.....\n.....@.....\n.....@.....\n.....@.....\n.....*.....\n.@@@@*@@@@.\n.....*.....\n.@@@@.@@@@.\n.....*.....\n...........\n.....p.....\n...........\n\n...........\n...........\n..###.###..\n..#*....#..\n..#.*...#..\n..###.###..\n..p.@.@....\n...........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n..........\n..........\n..........\n\n..........\n..........\n..####....\n..#*.@..p.\n..#.*@....\n..####....\n..........\n..........\n\n..........\n..........\n..####....\n..#*..@.p.\n..#.*.@...\n..####....\n..........\n..........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n####..####\n..........\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n..........\n\n.########.\n.#......#.\n.#.*..@.#.\n.#..*.@.#.\n####..####\n...p......\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n\n@@@@@@@@\n###@####\n........\n........\n.*.*.*..\n........\n.*.*.*..\n........\n.*.*.p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n...*....\n..***...\n...*....\n..***...\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n..***...\n..*.*...\n..***...\n........\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n..*.*...\n........\n..*.*...\n...@....\n..*.*...\n........\n..*.*p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n........\n........\n...*....\n..*.*...\n...*....\n..*.*...\n.*.@.*..\n...p....\n###*####\n########\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n#######\n##...##\n#.....#\n###.###\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#..p..#\n###.###\n#######\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n##################\n#####@#@#@########\n#####@#@#@########\n#####*#*#*########\n#@.........*....p#\n#..............*.#\n##############.*.#\n##############.*.#\n##############...#\n##################\n\n\n##############\n#@#@#@########\n#@#@#@########\n#*#*#*########\n#......*.p...#\n#..........*.#\n##########.*.#\n##########...#\n##############\n\n##########\n#@#@#@####\n#@#@#@####\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n######p..#\n##########\n\n#############\n###@#@#@#####\n###@#@#@#####\n###*#*#*#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#############\n###@#@#@#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#########\n###@#####\n#@....*p#\n#.....*.#\n#########\n\n...........\n...........\n....@@@....\n...........\n..@.***.@..\n..@.***.@..\n..@.***.@..\n...........\n.....p.....\n...........\n...........\n\n###########\n#.........#\n#.#..@..#.#\n#...@.@...#\n#..@***@..#\n#...***...#\n#..@***@..#\n#...@.@...#\n#.#..p..#.#\n#.........#\n###########\n\n#########\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(meeeh but in a pinch! but really, don't add it)\n#########\n##.....##\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(aaa kinda ok? has some stuff going on)\n#########\n#.......#\n#.*.@.*.#\n#..*@*..#\n#.@@*@@.#\n#..*@*..#\n#.*.@.*.#\n#...p...#\n#########\n\n#########\n#.......#\n#.@..**.#\n#.....*.#\n#..@....#\n#....@..#\n#.**....#\n#..*p.@.#\n#.....@.#\n#.@.*.@.#\n#.......#\n#########\n\n(doesn't have enough personality)\n#########\n#......p#\n#..@.@..#\n#.*.*.@.#\n#....*..#\n#.**..@.#\n#.**.*..#\n#.......#\n#########\n\n\n#########\n...#*#...\n.........\n##..*..##\n###...###\n####p####\n###...###\n##..@..##\n.........\n...#@#...\n#########\n\n\n\n#..#..#\n#..*.p#\n#.....#\n#..*..#\n###.###\n#..@..#\n#.....#\n#..@..#\n#..#..#\n\n...........\n.....*.....\n...........\n.....*.....\n....*.*....\n...*@@@*...\n....*.*....\n.....*.....\n...........\n.....p.....\n...........\n\n.......\n..*.*..\n.*@@@*.\n..*.*..\n...*...\n.......\n...p...\n.......\n)\n(\n....\n....\n....\n\n....\n....\n....\n....\n\n\n....\n....\n....\n....\n....\n\n\n.....\n.....\n.....\n.....\n.....\n\n......\n......\n......\n......\n......\n......\n\n##########\n#........#\n#.#....#.#\n#..*..*..#\n#...**..@#\n#...**.@@#\n#..*..@..#\n#.#.p*.#.#\n#.......##\n##########\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n##########\n\n###########\n#....#....#\n#.**.#.@@.#\n#.*..#..@.#\n#.........#\n####.p.####\n#.........#\n#.@..#..*.#\n#.@@.#.**.#\n#....#....#\n###########\n\n(solvable which is nice but also not good which is not nice)\n##########\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#........#\n#...p....#\n##########\n\n##########################\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#........................#\n#...........p............#\n##########################\n\n##########################\n#........................#\n#........................#\n#.........*..p...........#\n#........@@..............#\n#........***.............#\n#.......@@@@.............#\n#.......*****............#\n#......@@@@@@............#\n#......*******...........#\n#.....@@@@@@@@...........#\n#........................#\n#........................#\n#........................#\n#........................#\n#........................#\n##########################\n\n###########\n#.........#\n#.........#\n#..*@@@@..#\n#..*...*..#\n#..*.*.*..#\n#..*.@@*..#\n#..*......#\n#..@@@....#\n#.........#\n#....p....#\n#.........#\n###########\n\n####################\n#..................#\n#..................#\n#..................#\n#..................#\n#..***........@@@..#\n#..*.*........@.@..#\n#..***........@@@..#\n#..................#\n#..................#\n#.....p............#\n#..................#\n####################\n\n###########\n#.........#\n#.*.@@@@@.#\n#.*.@...@.#\n#.*...*.@.#\n#.*****.@.#\n#.........#\n#.........#\n#....p....#\n###*###@###\n###########\n\n...........\n##@@@@@@@##\n#####@#####\n#.........#\n#....*....#\n#...*.*...#\n#..*.@.*..#\n#...*.*...#\n#....*....#\n#.........#\n#....p....#\n#####*#####\n###########\n\n#######\n#@@@@@#\n##@@@##\n#.p...#\n#..@..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#.....#\n###*###\n#######\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n..###..\n.##*##.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n##@@@##\n##@@@#.\n.#####.\n\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n###.###\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n#######\n#*.*.*#\n#.*.*.#\n#*.*.*#\n#.@.@.#\n#@.@.@#\n#.@.@.#\n#..@..#\n#.....#\n#..p..#\n#.....#\n#######\n\n\n\n(ACTUAL CANDIDATE LEVELS)\n\n\n\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#.........#\n#.........#\n#....p....#\n#.........#\n###########\n\n\n(it is a level, but not amazing? but maybe ok? but I don't know? also repeats a mechanism from another level? but maybe better?)\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#....p....#\n#.........#\n#####.#####\n####*.***##\n#####****##\n###########\n\n##########\n#........#\n#.....p..#\n#........#\n#.....####\n#..#.....#\n#..#@....#\n#..#.....#\n##########\n\n\n\nmessage level 1 of 10\n\n####..\n#..#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 2 of 10\n\n######\n#....#\n#.#P.#\n#.*@.#\n#..@.#\n#....#\n######\n\nmessage level 3 of 10\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#....#P.#\n#########\n\nmessage level 4 of 10\n\n########\n#......#\n#..@@*P#\n#......#\n#####..#\n....####\n\nmessage level 5 of 10\n\n.#######\n.#.....#\n.#..*..#\n##.*P*.#\n#...*..#\n#......#\n########\n\nmessage level 6 of 10\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#......#\n#...########\n#####.......\n\n..######....\n###..**#####\n#.......@..#\n#.#..**#@@.#\n#......#.p.#\n############\n\nmessage level 7 of 10\n\n#######\n#.....#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..P..#\n#######\n\nmessage level 8 of 10\n\n..######\n..#...P#\n..#.**.#\n####.###\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\nmessage level 9 of 10\n\n#####.\n#...##\n#P**.#\n##...#\n.##..#\n..##.#\n...###\n\nmessage level 10 of 10\n\n......#####\n......#...#\n......#.#.#\n#######.#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\nmessage congratulations!\n\n\n#########\n#.......#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#...p...#\n#########\n\n......#####\n......#...#\n#######.#.#\n#.*.*.*.*.#\n#.#.#.#.###\n#....p..#..\n####@@@@#..\n...######..\n\n........#####\n........#...#\n#########.#.#\n#...*.*.*.*.#\n#.#.#.#.#.###\n#......p..#..\n######@@@@#..\n.....######..\n\n..........#####\n..........#...#\n..#########.#.#\n.##.*.@.@.@...#\n##*.#.#.#.#.###\n#*......p.....#\n###########.#.#\n..........#...#\n..........#####\n\n.......#####\n.......#...#\n########.#.#\n#*.....*.*.#\n##.#.#.#.###\n#@.@.@p....#\n########.#.#\n.......#...#\n.......#####\n)\n\n(\n..#########\n..#.......#\n..#.##..@.#\n..#.#@....#\n..#.....*.#\n..#.#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n \n.....######\n....##....#\n....#@..@.#\n....#.....#\n....#*#.*.#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n....#######\n....#.....#\n....#...@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n)\n\n",[2,0,3,2,2,1],"background:0,background wall:1,1,1,0,0,0,0,0,0,0,\n0,0,0,1,background blue1:2,1,0,0,0,0,0,\n0,0,0,0,0,1,0,1,1,1,1,\n1,1,1,1,1,0,1,1,0,0,0,\n0,background deleted wall wall6:3,0,0,0,0,1,0,1,0,background red1:4,\n0,3,3,3,3,3,1,0,1,0,1,\n0,0,0,1,1,3,3,3,3,0,1,\n1,1,1,1,1,1,0,3,3,0,0,\n0,0,1,0,0,0,0,1,0,0,background player:5,\n0,0,0,0,1,0,0,0,0,1,0,\n0,0,2,0,0,0,1,0,0,0,0,\n1,1,1,1,1,1,0,0,1,0,0,\n0,0,0,0,0,0,0,1,1,1,1,\n",17,"1645545159763.6345"] - ], - [ - "short adventure in sticky wall land", - ["title short adventure in sticky wall land\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #1d4765\ntext_color #99e550\nrun_rules_on_level_start\n\n\n========\nOBJECTS\n========\n\nBackground\n#396c90 #457da4\n00000\n00000\n00100\n00000\n00000\n\n\nTarget\n#fbf236 transparent\n00100\n01110\n11111\n01110\n00100\n\n\nWall\n#99e550 #99e550 #99e550\n01110\n12221\n12221\n12221\n01110\n\nwall_grenze_N\n#6abe30\n00000\n.....\n.....\n.....\n.....\n\nwall_grenze_S\n#6abe30\n.....\n.....\n.....\n.....\n00000\n\nwall_grenze_O\n#6abe30\n....0\n....0\n....0\n....0\n....0\n\nwall_grenze_W\n#6abe30\n0....\n0....\n0....\n0....\n0....\n\nwall_grenze_NO\n#396c90\n....0\n.....\n.....\n.....\n.....\n\nwall_grenze_SO\n#396c90\n.....\n.....\n.....\n.....\n....0\n\nwall_grenze_SW\n#396c90\n.....\n.....\n.....\n.....\n0....\n\nwall_grenze_NW\n#396c90\n0....\n.....\n.....\n.....\n.....\n\nPlayer\ntransparent #b13030 #a96c30 #4e0b0b\n01110\n11110\n02220\n33333\n03030\n\n\nCrate\n#8f563b #743a1f #b4643d #b76640\n00000\n01220\n03120\n03310\n00000\n\n\n\n=======\nLEGEND\n=======\n\nwall_dekoration_ortho = wall_grenze_N or wall_grenze_S or wall_grenze_O or wall_grenze_W\n\nwall_dekoration_eck = wall_grenze_NW or wall_grenze_SW or wall_grenze_SO or wall_grenze_NO\n\nwall_dekoration = wall_dekoration_eck or wall_dekoration_ortho\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\nobstacle = crate or wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 76571107\nwall move 95423307\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nwall_grenze_N \nwall_grenze_S\nwall_grenze_O\nwall_grenze_W\nwall_grenze_NO\nwall_grenze_SO \nwall_grenze_SW\nwall_grenze_NW\nTarget\n\n======\nRULES\n======\n(\n[ > player | crate | obstacle ] -> cancel\n[ > player | wall ] -> cancel\n\n\n[ > Player | Crate | ] -> [ > Player | | Crate ]\n[ wall | > player | ] -> [ wall | wall | player ]\n\n)\n\n(it's very possible someone's come up with this set of rules already - but if they have I haven't seen it yet)\n\n[ > player | crate ] -> [ > player | > crate ]\n[ wall | > player ] -> [ > wall | > player ]\n\nlate [ wall_dekoration ] -> []\nlate up [ wall | no wall ] -> [ wall wall_grenze_N | ]\nlate down [ wall | no wall ] -> [ wall wall_grenze_S | ]\nlate right [ wall | no wall ] -> [ wall wall_grenze_O | ]\nlate left [ wall | no wall ] -> [ wall wall_grenze_W | ]\n\nlate [ wall_grenze_N wall_grenze_O ] -> [ wall_grenze_N wall_grenze_O wall_grenze_NO ]\nlate [ wall_grenze_S wall_grenze_O ] -> [ wall_grenze_S wall_grenze_O wall_grenze_SO ]\nlate [ wall_grenze_N wall_grenze_W ] -> [ wall_grenze_N wall_grenze_W wall_grenze_NW ]\nlate [ wall_grenze_S wall_grenze_W ] -> [ wall_grenze_S wall_grenze_W wall_grenze_SW ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 3\n\n(kinda like)\n.........\n.#######.\n.#..*..#.\n.#..p..#.\n.#..o..#.\n.#######.\n.........\n\nmessage Level 2 of 3\n\n\n(ok)\n........\n.####...\n.#.o#...\n.#..###.\n.#@p..#.\n.#..*.#.\n.#..###.\n.####...\n........\n\nmessage Level 3 of 3\n\n(mildly entertaining. possibly slightly harder?)\n.......\n.#####.\n.#.*.#.\n.#...#.\n.#.p.#.\n.#...#.\n.#.o.#.\n.#####.\n.......\n\nmessage Congratulations. Thank you for playing!\n\n(\n#..##\np...o\n.#..#\n..*.#\no*##.\n\n##.##\n.o.*#\n....#\n#*.o.\n#.p..\n\n...##\n.o.*#\n.....\n#*.o.\n##..p\n\n(haven't solved, don't like)\n#..##\n.o.*#\n.p...\n#*.o.\n##..#\n\n(better. still don't like though)\n#..#.\n.o.*#\n..p..\n#*.o.\n.#..#\n\n#....\n.o.*#\n#.p.#\n#*.o.\n....#\n\n(easy-ish, but ok? NO BAD)\n#.#..\n.o.*#\n..p..\n#*.o.\n..#.#\n\n\n....\n....\n....\n....\n\n\n.....\n.....\n.....\n.....\n.....\n\n.....\n.....\n.....\n.....\n.....\n\n.......\n.......\n.......\n.......\n.......\n.......\n.......\n\n.......\n.#####.\n.#.*.#.\n.#.p.#.\n.#.o.#.\n.#####.\n.......\n\n.........\n.#######.\n.#..*..#.\n.#..p..#.\n.#..o..#.\n.#######.\n.........\n\n.p..\no...\n.*@.\n#..#\n\n(possible to get to a dead end wtihout knowing really - so bad?)\n.....\n.o#..\n.*#*.\n.o#p.\n.....\n\n(ok, not so dead endy, but is it good? hardish)\n.....\n.opo.\n.*.*.\n.###.\n.....\n\n(easy but ok)\n.....\n.o#..\n.@#..\n.#*p.\n.....\n\n........\n.####...\n.#.o#...\n.#..###.\n.#@p..#.\n.#..*.#.\n.#..###.\n.####...\n........\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*O.#\n##.*P*.#\n#..O*O.#\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",[2,3,0,3,0,0,2,1,0,2,1,2,2,3,2,2,1,1,1,1,1,1,0,0,0,0,0,0,3,3,3,3,3,3,3,3,2,2,1,2,1,3,0,0,0,0,1,1,2,2,2,2,1,0,3,0,0,0,1,1,2,2,2,2,1,1,0,0,"undo","undo","undo",0,1,0,3,2,"undo",2,3,1,1,2],"background:0,0,0,0,0,0,0,0,background wall wall_grenze_n wall_grenze_nw wall_grenze_s wall_grenze_sw wall_grenze_w:1,\n0,background wall wall_grenze_n wall_grenze_nw wall_grenze_w:2,background wall wall_grenze_o wall_grenze_w:3,background wall wall_grenze_s wall_grenze_sw wall_grenze_w:4,0,0,background wall wall_grenze_n wall_grenze_no wall_grenze_o wall_grenze_s wall_grenze_so:5,0,background wall wall_grenze_n wall_grenze_s:6,\nbackground player:7,5,0,0,0,background wall wall_grenze_n wall_grenze_no wall_grenze_nw wall_grenze_o wall_grenze_w:8,background wall wall_grenze_o:9,4,0,\n0,0,0,background crate:10,0,background target wall wall_grenze_n wall_grenze_no wall_grenze_o:11,background wall wall_grenze_o wall_grenze_s wall_grenze_so wall_grenze_sw wall_grenze_w:12,0,0,\n2,12,0,0,0,0,0,6,0,\n0,0,1,0,0,background wall wall_grenze_n wall_grenze_no wall_grenze_o:13,3,12,0,\n5,0,0,0,0,0,0,0,0,\n",1,"1645545192906.1704"] - ], - [ - "[testing for recording through level-changes A] Level-Change test", - ["title Simple Block Pushing Game\nauthor David Skinner\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\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\n\nun\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[2,1,0,3,3,3,2,1,0,1,2,2,"undo",1,2,2,3,0,1,0,3,0,0,1,2,3,2,2,3,3,3,0,1,2,1,0,0,3,2,2,1,2,3,0,0,0,1,2],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,0,background crate:2,\nbackground crate target:3,1,0,0,1,1,\nbackground player target:4,3,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n",0,"1645546672241.5308"] - ], - [ - "[testing for recording through level-changes B] Simple Block asdfsadf Game", - ["title Simple Block Pushing Game\nauthor David Skinner\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\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[ > 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\n",[2,1,0,3,3,2,1,3,3,2,1,0,1,1,2,2,3,0,1,0,3,0,0,1,2,3,2,2,3,3,0,1,2,1,0,0],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,0,background crate:2,\nbackground target:3,1,0,0,1,background player:4,\nbackground crate target:5,5,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n",0,"1645546774769.8335"] - ], - -[ - "[testing for recording through level-changes C] Don't asdlet your goals slip away", - ["title Don't let your goals slip away\nauthor increpare [riff on david skinner's levels]\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\nbackground_color green\n\n\ncolor_palette 2\n========\nOBJECTS\n========\n\nBackground\nGREEN green\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nblack\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nDARKBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nlightgray lightgray lightgray lightgray\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange\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\nobstacle = crate or wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 78774307\ntarget move 81495507\nendlevel 52446100\nstartgame 73236703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n( [ > player | wall ] -> cancel )\n[ > player | crate | obstacle ] -> cancel\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > player | target ] -> [ > player | > target ] \n[ > target | target ] -> [ > target | > target ]\n[ > target | wall ] -> [ target | wall ]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 8\n\n(funny therefore good)\n####..\n#o*#..\n#..###\n#....#\n#.o*.#\n#.p###\n####..\n\n(meh)\n( ####.. )\n( #.o#.. )\n( #..### )\n( #o...# )\n( #*.*.# )\n( #.p### )\n( ####.. )\n\n\n\n(p. good!)\n..####...\n###..####\n#....*o.#\n#.#..#.o#\n#..*.#p.#\n#########\n\n( (Easy but funny) )\n( ###### )\n( #.*..# )\n( #.#.*# )\n( #....# )\n( #p*o.# )\n( #.oo.# )\n( ###### )\n\n\nmessage level 3 of 8\n\n(not bad)\n######\n##o..#\n#.#oo#\n#.*..#\n#.*..#\n#p*..#\n######\n\nmessage level 4 of 8\n\n########\n#...*..#\n#.o#.@p#\n#..*...#\n#####.o#\n....####\n\nmessage level 5 of 8\n\n\n\n(decent!)\n#####.\n#.*.##\n#.o.p#\n##.o.#\n.##.*#\n..##.#\n...###\n\nmessage level 6 of 8\n\n(fine right?)\n......###.\n#######o##\n#...*o...#\n#.#.#.#.##\n#.p.*...#.\n#########.\n\nmessage level 7 of 8\n(no idea. damnit spoiled but also ok.)\n####..\n#..#..\n#.*###\n#..*p#\n#..o.#\n#o.###\n####..\n\n\n\nmessage level 8 of 8\n(Tricky but also decent? involves fun manipulations)\n#######\n#..#..#\n#.o*o.#\n#.*p*##\n#.o*o.#\n#..#..#\n#######\n\n\nmessage Congratulations! You didn't let your goals run away from you.\n\n(transform\n\n[player]->[]\n[target]->[]\n[crate]->[]\n\nchoose 2 [] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player ] -> [ target ] \n\n)\n\n",[0,0,0,2,3,3,2,1,1,1,2,1,0,0,0],"background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,0,1,\n1,0,0,0,background crate:2,1,1,0,0,\n0,0,1,1,1,2,1,1,1,\n0,1,background target:3,0,background player:4,1,0,1,0,\n3,0,1,0,1,1,1,1,1,\n",1,"1645546878695.2927"] + ["title Simple Block Pushing Game\nauthor David Skinner\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\n00000\n0...0\n0...0\n0...0\n00000\n\nhorizontali\nblue\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\nhorizontali move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nhorizontali\n\n======\nRULES\n======\n\n\n[ > Player | Crate ] -> [ > Player | > Crate ] sfx0 sfx1\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\n", [0, 1, 2, 2], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,background target:2,background player:3,\nbackground crate:4,0,0,2,1,1,\n1,1,0,0,0,0,\n1,4,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 0, "1629314889294.314"] + ], + + [ + "VEXT EDIT", + ["title VEXT EDIT\nauthor JACK\n\nrun_rules_on_level_start\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\n#eeeeee\n\nPlayerTarget1mark\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1mark\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nPlayerTarget1\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0Mark\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nWall0 \n#884400 #f00\n00000\n00000\n00000\n00000\n00000\n\nwalll0 \nBrown #f00\n1....\n1....\n1....\n1....\n1....\n\nWallr0 \nBrown #f00\n....1\n....1\n....1\n....1\n....1\n\nWalld0 \nBrown #f00\n.....\n.....\n.....\n.....\n11111\n\nWallu0 \nBrown #f00\n11111\n.....\n.....\n.....\n.....\n\nBlack\nblack\n\nwall0ghost\ntransparent\n\nWall0Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1 \n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall2\n#884400 #00f\n00000\n00000\n00000\n00000\n00000\n\nwalll2\nBrown #00f\n1....\n1....\n1....\n1....\n1....\n\nWallr2 \nBrown #00f\n....1\n....1\n....1\n....1\n....1\n\nWalld2 \nBrown #00f\n.....\n.....\n.....\n.....\n11111\n\nWallu2 \nBrown #00f\n11111\n.....\n.....\n.....\n.....\n\nwalll1 \nBrown #ff0\n1....\n1....\n1....\n1....\n1....\n\nWallr1 \nBrown #ff0\n....1\n....1\n....1\n....1\n....1\n\nWalld1 \nBrown #ff0\n.....\n.....\n.....\n.....\n11111\n\nWallu1 \nBrown #ff0\n11111\n.....\n.....\n.....\n.....\n\nCrate1Mark\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate1\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate01\ntransparent\n\nCrate0\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate0mark\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\ncrate0ghost\ntransparent\n\nPlayer1Mark\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nPlayer1\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nDed1Mark\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nDed1\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nCrated0\n#f80 #f00\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu0\n#f80 #f00\n.010.\n.010.\n.....\n.....\n.....\n\nCratel0\n#f80 #f00\n.....\n00...\n11...\n00...\n.....\n\nCrater0\n#f80 #f00\n.....\n...00\n...11\n...00\n.....\n\nCrated1\n#f80 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu1\n#f80 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nCratel1\n#f80 #ff0\n.....\n00...\n11...\n00...\n.....\n\nCrater1\n#f80 #ff0\n.....\n...00\n...11\n...00\n.....\n\n\nPit1Mark\nblack #bbbb00 white\n.111.\n10001\n10001\n10001\n.111.\n\n\nPit1\nblack #bbbb00 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\npit0ghost\ntransparent\n\nPit0\nblack #bb0000 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\n\npit0u\nblack #bb0000\n10001\n.....\n.....\n.....\n.....\n\npit0d\nblack #bb0000\n.....\n.....\n.....\n.....\n10001\n\npit0l\nblack #bb0000\n1....\n0....\n0....\n0....\n1....\n\npit0r\nblack #bb0000\n....1\n....0\n....0\n....0\n....1\n\npit1u\nblack #bbbb00\n10001\n.....\n.....\n.....\n.....\n\npit1d\nblack #bbbb00\n.....\n.....\n.....\n.....\n10001\n\npit1l\nblack #bbbb00\n1....\n0....\n0....\n0....\n1....\n\npit1r\nblack #bbbb00\n....1\n....0\n....0\n....0\n....1\n\nrim0u\n#b00\n.000.\n.....\n.....\n.....\n.....\n\nrim0l\n#b00\n.....\n0....\n0....\n0....\n.....\n\nrim0r\n#b00\n.....\n....0\n....0\n....0\n.....\n\nrim0d\n#b00\n.....\n.....\n.....\n.....\n.000.\n\nrim1u\n#bb0\n.000.\n.....\n.....\n.....\n.....\n\nrim1l\n#bb0\n.....\n0....\n0....\n0....\n.....\n\nrim1r\n#bb0\n.....\n....0\n....0\n....0\n.....\n\nrim1d\n#bb0\n.....\n.....\n.....\n.....\n.000.\n\nblackul\nblack\n0....\n.....\n.....\n.....\n.....\n\nblackur\nblack\n....0\n.....\n.....\n.....\n.....\n\nblackdl\nblack\n.....\n.....\n.....\n.....\n0....\n\nblackdr\nblack\n.....\n.....\n.....\n.....\n....0\n\nfell0\n#884400 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1mark\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfelld1\n#884400 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nfellu1\n#884400 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nfelll1\n#884400 #ff0\n.....\n00...\n11...\n00...\n.....\n\nfellr1\n#884400 #ff0\n.....\n...00\n...11\n...00\n.....\n\nfell0ghost\ntransparent\n\nsupported\ntransparent\n\nfellcant1\ntransparent\n\ncant1\ntransparent\n\ncant0\ntransparent\n\nfellcant0\ntransparent\n\ndead0a\ndarkred\n.....\n.0.0.\n.....\n.0.0.\n.....\n\ncursor0a\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\ncursor0b\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\n\n\ncursor2a\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\ncursor2b\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\none2mark\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2mark\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2mark\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none2\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0mark\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0mark\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0mark\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\nfour0\n#f00\n.0.0.\n.0.0.\n..00.\n...0.\n...0.\n\nfive0\n#f00\n.000.\n.0...\n.00..\n...0.\n.00..\n\nsix0\n#f00\n..00.\n.0...\n.00..\n.0.0.\n..0..\n\nseven0\n#f00\n.000.\n...0.\n...0.\n..0..\n..0..\n\ninf0\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\ninf0mark\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\n\ndecrement\ntransparent\n\nholding\ntransparent\n\nactiveb\n#f00\n.....\n.0.0.\n.....\n.....\n.....\n\nactive\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\nactivefell\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\npickeda0\ntransparent\n\npickedb0\ntransparent\n\npickeda2\ntransparent\n\npickedb2\ntransparent\n\nchosepink\n#ff22ff\n\nchosecyan\n#22ffff\n\npink\n#ff88ff\n\ncyan\n#88ffff\n\nplacemark\ntransparent\n\nactivecurse0\ntransparent\n\npartb\ntransparent\n\npartc\ntransparent\n\ncursor0mark\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\nwall2ghost\ntransparent\n\ncant2\ntransparent\n\nshowhere\ntransparent\n\nshowthis\ntransparent\n=======\nLEGEND\n=======\n\n` = Background\n& = Wall2 and wall1 and wall0\n# = Wall1\nX = Wall0\n+ = Wall0 and Wall1\nP = Player1 and active\n\nn = crate0 and crate1 and crate01\no = Crate1\n- = crate1 and crater1\n: = crate1 and crateu1\nL = crate1 and crater1 and crateu1\n0 = pit1\n! = crate0\n? = pit0\n/ = pit0 and pit1\n\n@ = one0 and pit0\nz = player1 and pit0\n\n| = black\n\n' = partb\n\" = partc\n\n~ = cursor2a\n_ = cursor2b\n\n1 = one0\n2 = two0\n3 = three0\n4 = four0\n5 = five0\n6 = six0\n7 = seven0\n8 = inf0\n\n[ = one2\n{ = two2\n] = three2\n> = wall2\nactiveab = active or activeb or activefell\npartbc = partb or partc\n\ny = target0\nu = Target1 and pit1\nt = Target1\nq = playertarget1\nr = player1\nb = cursor0a\nc = cursor0a and activecurse0\nk = cursor0b and activecurse0\ncurse0a = cursor0a or dead0a\ncurse0 = curse0a or cursor0b\ncurse2 = cursor2a or cursor2b\ncursor0 = cursor0a or cursor0b\n \nplayer = curse2 or activecurse0 or active or dead0a or activefell\ndead0 = dead0a\nx1 = player1 or crate1 or wall1 or target1 or playertarget1 or pit1\nx0 = crate0 or wall0 or pit0 or fell0\nxx = x0 or x1 or curse0\nx0ghost = crate0ghost or wall0ghost or pit0ghost or fell0ghost\ncratex1 = cratel1 or crater1 or crated1 or crateu1\nwallx2 = walll2 or wallr2 or walld2 or wallu2\nwallx1 = walll1 or wallr1 or walld1 or wallu1\nwallx0 = walll0 or wallr0 or walld0 or wallu0\nfellx1 = felll1 or fellr1 or felld1 or fellu1\npit0x = pit0l or pit0r or pit0d or pit0u\npit1x = pit1l or pit1r or pit1d or pit1u\ncrateorfell1 = crate1 or fell1\nplayerormark1 = player1 or player1mark\n\nx0mark = one0mark or two0mark or three0mark or cursor0mark or wall0mark or target0mark or crate0mark or inf0mark\nx1mark = player1mark or crate1mark or pit1mark or wall1mark or fell1mark or ded1mark or crate1mark or Target1mark or PlayerTarget1mark\nx2mark = one2mark or two2mark or three2mark\nxmark = x0mark or x1mark or x2mark\nnumber0 = one0 or two0 or three0 or four0 or five0 or six0 or seven0 or inf0\nnumber2 = one2 or two2 or three2\npicked = pickeda0 or pickedb0 or pickeda2 or pickedb2\n\npickable = player1 or pit1 or crate1 or number0 or wall1 or number2 or fell1 or ded1 or target0 or PlayerTarget1 or Target1\npickable2 = curse0a or pickable or wall0 or crate0 \n\nblackcorner = blackul or blackdl or blackur or blackdr\nrim0x = rim0l or rim0d or rim0u or rim0r\nrim1x = rim1l or rim1d or rim1u or rim1r \n=======\nSOUNDS\n=======\n\nSFX0 51304502\n\nsfx1 22108304\n\nSFX2 84700307\n\nSFX3 78571302\n\nSFX4 25131906\n\nSFX5 13408901\n\nSFX6 50704903\n\nSFX7 24622504\n\nSFX8 29744504\n\nSFX9 13344503\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\npink, chosepink\ncyan, chosecyan\n\n\nPit1,\npit1r\npit1l\npit1d\npit1u\npit0, pit0ghost\npit0r\npit0l\npit0d\npit0u\nblackul\nblackur\nblackdr\nblackdl\nTarget1, PlayerTarget1, target0\n\nfell1, ded1\nfelll1\nfellr1\nfelld1\nfellu1\n\ndead0a, fell0, fell0ghost\nrim0l \nrim0d \nrim0u \nrim0r\n\nrim1l \nrim1d \nrim1u \nrim1r \nPlayer1, Wall1, Crate1, \npit1mark\nfell1mark, ded1mark, target0mark\nTarget1mark, PlayerTarget1mark\nplayer1mark, crate1mark\nwall1mark\none0mark, two0mark, three0mark, wall0mark, inf0mark\none2mark, two2mark, three2mark\ncursor0mark, crate0mark\nnumber0, number2\ncratel1, walll1, \ncrater1, wallr1, \ncrated1, walld1, \ncrateu1, wallu1, \ncursor0, wall0, crate0, wall0ghost, crate0ghost\n walll0, cratel0\n wallr0, crater0\n walld0, crated0\n wallu0, crateu0\n crate01\n wall2, wall2ghost\n wallr2\n wallu2\n walll2\n walld2\n cursor2a, cursor2b\n \nfellcant1\nfellcant0\ncant0\ncant1\ncant2\nsupported\nactivefell\nactive, activeb\nactivecurse0\nholding\ndecrement\npickeda0, pickeda2\npickedb0, pickedb2\nplacemark\npartb partc\nshowthis\nshowhere\nblack\n\n======\nRULES\n======\n\n(Deal with action-----------------------------------------------------------------------------)\n\n[action activecurse0 curse0] -> [activecurse0 action curse0]\n\n(pick up ready icon)\ndown[action curse0a no holding pickable|number0] -> [curse0a holding pickable|number0 pickeda0] SFX9\ndown[action cursor0b no holding pickable|number0] -> [cursor0b holding pickable|number0 pickedb0] SFX9\ndown[action cursor2a no holding pickable2|number2] -> [cursor2a holding pickable2|number2 pickeda2] SFX9\ndown[action cursor2b no holding pickable2|number2] -> [cursor2b holding pickable2|number2 pickedb2] SFX9\n(switch to new ready icon)\ndown [action curse0a pickable| number0 no pickeda0][pickeda0] -> [curse0a pickable | number0 pickeda0][] SFX9\ndown [action cursor0b pickable| number0 no pickedb0][pickedb0] -> [cursor0b pickable | number0 pickedb0][] SFX9\ndown [action cursor2a pickable2| number2 no pickeda2][pickeda2] -> [cursor2a pickable2 | number2 pickeda2][] SFX9\ndown [action cursor2b pickable2| number2 no pickedb2][pickedb2] -> [cursor2b pickable2 | number2 pickedb2][] SFX9\n\n(put down ready icon)\ndown [action curse0 holding pickable| picked] -> [curse0 pickable|] SFX8\ndown [action cursor2a holding pickable2| pickeda2] -> [cursor2a pickable2|] SFX8\ndown [action cursor2b holding pickable2| pickedb2] -> [cursor2b pickable2|] SFX8\n\n(show mark)\nlate [xmark] -> []\nlate [showthis] -> []\nlate [showhere] -> []\n\nlate down [ | number0 pickeda0][curse0a] -> [showthis | number0 pickeda0][curse0a showhere]\nlate down [ | number0 pickedb0][cursor0b] -> [showthis | number0 pickedb0][cursor0b showhere]\nlate down [ | number2 pickeda2][cursor2a] -> [showthis | number2 pickeda2][cursor2a showhere]\nlate down [ | number2 pickedb2][cursor2b] -> [showthis | number2 pickedb2][cursor2b showhere]\nlate [showthis player1][showhere] -> [showthis player1][showhere player1mark]\nlate [showthis pit1][showhere] -> [showthis pit1][showhere pit1mark]\nlate [showthis crate1][showhere] -> [showthis crate1][showhere crate1mark]\nlate [showthis wall1][showhere] -> [showthis wall1][showhere wall1mark]\nlate [showthis one0][showhere] -> [showthis one0][showhere one0mark]\nlate [showthis two0][showhere] -> [showthis two0][showhere two0mark]\nlate [showthis three0][showhere] -> [showthis three0][showhere three0mark]\nlate [showthis one2][showhere] -> [showthis one2][showhere one2mark]\nlate [showthis two2][showhere] -> [showthis two2][showhere two2mark]\nlate [showthis three2][showhere] -> [showthis three2][showhere three2mark]\nlate [showthis wall0][showhere] -> [showthis wall0][showhere wall0mark]\nlate [showthis fell1][showhere] -> [showthis fell1][showhere fell1mark]\nlate [showthis ded1][showhere] -> [showthis ded1][showhere ded1mark]\nlate [showthis target0][showhere] -> [showthis target0][showhere target0mark]\nlate [showthis crate0][showhere] -> [showthis crate0][showhere crate0mark]\nlate [showthis cursor0][showhere] -> [showthis cursor0][showhere cursor0mark]\nlate [showthis inf0][showhere] -> [showthis inf0][showhere inf0mark]\nlate [showthis Target1][showhere] -> [showthis target1][showhere Target1mark]\nlate [showthis PlayerTarget1][showhere] -> [showthis PlayerTarget1][showhere PlayerTarget1mark]\n(connect cratemark)\nup [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crateu1 | crate1 crated1]\ndown [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crated1 | crate1 crateu1]\nleft [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark cratel1 | crate1 crater1]\nright [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crater1 | crate1 cratel1]\nup [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crateu1 | fell1 felld1]\ndown [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crated1 | fell1 fellu1]\nleft [action curse0 holding fell1mark no xx no number0 no number2| fell1] -> [action curse0 holding fell1mark cratel1 | fell1 fellr1]\nright [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crater1 | fell1 felll1]\n\n(place mark)\n[placemark] -> []\n\ndown [action curse0a holding xmark no x1 no number0][pickeda0 number0] -> [curse0a holding xmark placemark][pickeda0 decrement number0] SFX7\ndown [action cursor0b holding xmark no x1 no number0][pickedb0 number0] -> [cursor0b holding xmark placemark][pickedb0 decrement number0] SFX7\n\ndown [action cursor2a holding xmark no xx no number0 no number2][pickeda2 number2] -> [cursor2a holding xmark placemark][pickeda2 decrement number2] SFX7\ndown [action cursor2b holding xmark no xx no number0 no number2][pickedb2 number2] -> [cursor2b holding xmark placemark][pickedb2 decrement number2] SFX7\n\n\n\n[placemark player1mark] -> [placemark player1 player1mark]\n[placemark pit1mark] -> [placemark pit1 pit1mark]\n[placemark crate1mark] -> [placemark crate1 crate1mark]\n[placemark wall1mark] -> [placemark wall1 wall1mark]\n[placemark one0mark] -> [placemark one0 one0mark]\n[placemark two0mark] -> [placemark two0 two0mark]\n[placemark three0mark] -> [placemark three0 three0mark]\n[placemark one2mark] -> [placemark one2 one2mark]\n[placemark two2mark] -> [placemark two2 two2mark]\n[placemark three2mark] -> [placemark three2 three2mark]\n[placemark wall0mark] -> [placemark wall0 wall0mark]\n[placemark fell1mark] -> [placemark fell1 fell1mark]\n[placemark ded1mark] -> [placemark ded1 ded1mark]\n[placemark target0mark] -> [placemark target0 target0mark]\n[placemark crate0mark] -> [placemark crate0 crate0mark]\n[placemark Target1mark] -> [placemark target1 Target1mark]\n[placemark inf0mark] -> [placemark inf0 inf0mark]\n[placemark PlayerTarget1mark] -> [placemark playertarget1 PlayerTarget1mark]\ndown [placemark cursor0mark][curse0a|no one2] -> [ cursor0b cursor0mark][curse0a|]\n[placemark cursor0mark] -> [placemark cursor0a cursor0mark]\n\n(decrement number of placed item)\ndown [xmark holding cursor2a][pickable2|one2 decrement pickeda2] -> [xmark holding cursor2a][|one2 decrement pickeda2]\ndown [xmark holding cursor2b][pickable2|one2 decrement pickedb2] -> [xmark holding cursor2b][|one2 decrement pickedb2]\ndown [xmark holding curse0a][pickable|one0 decrement pickeda0] -> [xmark holding curse0a][|one0 decrement pickeda0]\ndown [xmark holding cursor0b][pickable|one0 decrement pickedb0] -> [xmark holding cursor0b][|one0 decrement pickedb0]\ndown [xmark holding cursor2a][|one2 decrement pickeda2] -> [cursor2a][|]\ndown [xmark holding cursor2b][|one2 decrement pickedb2] -> [cursor2b][|]\ndown [xmark holding cursor0a][|one0 decrement pickeda0] -> [cursor0a][|]\ndown [xmark holding cursor0b][|one0 decrement pickedb0] -> [cursor0b][|]\n[one0 decrement] -> []\n[two0 decrement] -> [one0]\n[three0 decrement] -> [two0]\n[four0 decrement] -> [three0]\n[five0 decrement] -> [four0]\n[six0 decrement] -> [five0]\n[seven0 decrement] -> [six0]\n[one2 decrement] -> []\n[two2 decrement] -> [one2]\n[three2 decrement] -> [two2]\n\n\n\n(player -> cursor)\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [player1 action active no wall0ghost no crate0ghost][partbc] -> [cursor0a player1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [ded1 action activefell no wall0ghost no crate0ghost][partbc] -> [cursor0a ded1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\n\n(cursor holding -> player)\ndown [action curse0a activecurse0 player1 holding xmark][| number0 pickeda0] -> [active player1][ | number0] SFX6\ndown [action curse0a activecurse0 ded1 holding xmark][| number0 pickeda0] -> [activefell ded1][ | number0] SFX6\ndown [action cursor0b activecurse0 player1 holding xmark][| number0 pickedb0] -> [active player1][ | number0] SFX6\ndown [action cursor0b activecurse0 ded1 holding xmark][| number0 pickedb0] -> [activefell ded1][ | number0] SFX6\n(empty cursor -> player)\n[action curse0 player1 activecurse0 no holding] -> [active player1] SFX6\n[action curse0 ded1 activecurse0 no holding] -> [activefell ded1] SFX6\n(red -> blue)\n[action cursor0a activecurse0 holding xmark][partc][pickeda0] -> [cursor0a cursor2a][partc][] SFX5\n[action cursor0a activecurse0 ][partc] -> [cursor0a cursor2a][partc] SFX5\n[action cursor0b activecurse0 holding xmark][partc][pickedb0] -> [cursor0b cursor2b][partc][] SFX5\n[action cursor0b activecurse0 ][partc] -> [cursor0b cursor2b][partc] SFX5\n(blue holding -> red)\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\nrandom down [action curse2 curse0 holding xmark][| number2 pickeda2] -> [activecurse0 cursor0a][ | number2] SFX6\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\n(empty blue -> red)\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\nrandom [action curse2 curse0 no holding] -> [activecurse0 cursor0a] SFX6\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\n\n\n[action player] -> SFX0\n[action curse0] -> SFX0\n\n(Aesthetic----------------------------------------------------------------------------------------)\n\n\n\n(ghosts)\n[player1 active][pit0] -> [player1 active][pit0ghost]\n[pit0ghost][cursor0] -> [pit0][cursor0]\n[player1 active][wall0] -> [player1 active][wall0ghost]\n[wall0ghost][cursor0] -> [wall0][cursor0]\n[player1 active][crate0] -> [player1 active][crate0ghost]\n[crate0ghost][cursor0] -> [crate0][cursor0]\n[player1 active][fell0] -> [player1 active][fell0ghost]\n[fell0ghost][cursor0] -> [fell0][cursor0]\n[curse0 activecurse0][wall2] -> [curse0 activecurse0][wall2ghost]\n[wall2ghost][curse2] -> [wall2][curse2]\n\n\n(wall boundaries)\n[wallx2] -> []\n[wallx1] -> []\n[wallx0] -> []\nup [wall2 | no wall2] -> [wall2 wallu2 | ]\ndown [wall2 | no wall2] -> [wall2 walld2 | ]\nleft [wall2 | no wall2] -> [wall2 walll2 | ]\nright [wall2 | no wall2] -> [wall2 wallr2 | ]\nup [wall1 | no wall1] -> [wall1 wallu1 | ]\ndown [wall1 | no wall1] -> [wall1 walld1 | ]\nleft [wall1 | no wall1] -> [wall1 walll1 | ]\nright [wall1 | no wall1] -> [wall1 wallr1 | ]\nup [wall0 | no wall0] -> [wall0 wallu0 | ]\ndown [wall0 | no wall0] -> [wall0 walld0 | ]\nleft [wall0 | no wall0] -> [wall0 walll0 | ]\nright [wall0 | no wall0] -> [wall0 wallr0 | ]\n\n(crate connectors)\nup [crateu0|] -> [crateu0 | crated0]\nright [crater0|] -> [crater0 | cratel0]\nup [crateu1|] -> [crateu1 | crated1]\nright [crater1|] -> [crater1 | cratel1]\n(pit connectors)\n[blackcorner] -> []\n[pit0x] -> [] \n[pit1x] -> [] \nup [pit1 | pit1] -> [pit1u pit1|pit1d pit1]\nright [pit1 | pit1] -> [pit1r pit1|pit1l pit1]\nup [pit0 | pit0] -> [pit0u pit0|pit0d pit0]\nright [pit0 | pit0] -> [pit0r pit0|pit0l pit0]\n[pit1u pit1r] -> [pit1u pit1r blackur]\n[pit1u pit1l] -> [pit1u pit1l blackul]\n[pit1d pit1r] -> [pit1d pit1r blackdr]\n[pit1d pit1l] -> [pit1d pit1l blackdl]\n[pit0u pit0r] -> [pit0u pit0r blackur]\n[pit0u pit0l] -> [pit0u pit0l blackul]\n[pit0d pit0r] -> [pit0d pit0r blackdr]\n[pit0d pit0l] -> [pit0d pit0l blackdl]\n[rim1x] -> []\n[rim0x] -> []\nup[pit0|no pit0] -> [pit0 rim0u|]\ndown[pit0|no pit0] -> [pit0 rim0d|]\nleft[pit0|no pit0] -> [pit0 rim0l|]\nright[pit0|no pit0] -> [pit0 rim0r|]\nup[pit1|no pit1] -> [pit1 rim1u|]\ndown[pit1|no pit1] -> [pit1 rim1d|]\nleft[pit1|no pit1] -> [pit1 rim1l|]\nright[pit1|no pit1] -> [pit1 rim1r|]\nlate [pink] -> []\nlate [cyan] -> []\nlate [chosepink] -> []\nlate [chosecyan] -> []\nlate down [pickable |number0] -> [pickable pink | number0 pink]\nlate down [pickable2 |number2] -> [pickable2 cyan | number2 cyan]\nlate up [pink picked|pink] -> [chosepink picked|chosepink ]\nlate up [cyan picked|cyan ] -> [chosecyan picked|chosecyan ]\n\n(Movement----------------------------------------------------------------------------------------)\n\n(move attached items)\n[moving activecurse0 curse0] -> [moving activecurse0 moving curse0]\n[moving active player1] -> [moving active moving player1]\n[moving activefell ded1] -> [moving activefell moving ded1]\n[moving curse0 holding] -> [moving curse0 moving holding]\n[moving curse2 holding] -> [moving curse2 moving holding]\n\n(reset and propogate cant)\n[cant0] -> []\n[cant1] -> []\n[cant2] -> []\n[fellcant0] -> []\n[fellcant1] -> []\n\n[black no cant0 no cant1 no cant2] -> [black cant0 cant1 cant2]\n[wall2 no cant2] -> [wall2 cant2]\n[wall1 no cant1] -> [wall1 cant1]\n[wall0 no cant0] -> [wall0 cant0]\n[number0] -> [number0 cant1]\n[number2] -> [number2 cant1]\n[no pit1 no fellcant1] -> [fellcant1]\n[no pit0 no fellcant0] -> [fellcant0]\n\n[> ded1][fell1|fellcant1] -> [> ded1][fell1 fellcant1 | fellcant1]\n+ [> ded1][ded1|fellcant1] -> [> ded1][ded1 fellcant1 | fellcant1]\n+ up[fellu1|fellcant1] -> [fellu1 fellcant1 | fellcant1]\n+ left[felll1|fellcant1] -> [felll1 fellcant1 | fellcant1]\n+ down[felld1|fellcant1] -> [felld1 fellcant1 | fellcant1]\n+ right[fellr1|fellcant1] -> [fellr1 fellcant1 | fellcant1]\n\n+ [> player1][crate1|cant1] -> [> player1][crate1 cant1 | cant1]\n+ [> player1][player1|cant1] -> [> player1][player1 cant1 | cant1]\n+ up[crateu1|cant1] -> [crateu1 cant1 | cant1]\n+ left[cratel1|cant1] -> [cratel1 cant1 | cant1]\n+ down[crated1|cant1] -> [crated1 cant1 | cant1]\n+ right[crater1|cant1] -> [crater1 cant1 | cant1]\n+ [crate1 crate0 cant0] -> [crate1 crate0 cant0 cant1]\n+ [crate1 crate0 cant1] -> [crate1 crate0 cant0 cant1]\n+ [> dead0][dead0|fellcant0] -> [> dead0][dead0 fellcant0 | fellcant0]\n+ [> cursor0][cursor0|cant0] -> [> cursor0][cursor0 cant0 | cant0]\n+ [> cursor0][crate0 | number0] -> [> cursor0][crate0 cant0| number0]\n+ [> cursor0][crate0|cant0] -> [> cursor0][crate0 cant0 | cant0]\n+ up[crateu0|cant0] -> [crateu0 cant0 | cant0]\n+ left[cratel0|cant0] -> [cratel0 cant0 | cant0]\n+ down[crated0|cant0] -> [crated0 cant0 | cant0]\n+ right[crater0|cant0] -> [crater0 cant0 | cant0]\n\n[> curse2 | wall2] -> [stationary curse2 | wall2]\n[> curse2 | black] -> [stationary curse2 | black]\n[cursor0 cant0] -> [stationary cursor0 cant0]\n[player1 cant1] -> [stationary player1 cant1]\n[ded1 fellcant1] -> [stationary ded1 fellcant1]\n[dead0 fellcant0] -> [stationary dead0 fellcant0]\n\n\n(propagate movement)\n\n[ > Ded1 | Fell1 no fellcant1] -> [ > Ded1 | > Fell1 ]\n\n[ > Cursor0 | Crate0 ] -> [ > Cursor0 | > Crate0 ]\n+ [ > Cursor0 | Cursor0 ] -> [ > Cursor0 | > Cursor0 ]\n+ [ > Crate0 | Crate0 ] -> [ > Crate0 | > Crate0 ]\n\n+ [ > Player1 | Crate1 ] -> [ > Player1 | > Crate1 ]\n+ [ > Player1 | Player1] -> [ > Player1 | > Player1 ]\n+ [ > Crate1 | Player1 ] -> [ > Crate1 | > Player1 ]\n+ [> crate1|crate1] -> [> crate1 | > crate1]\n+ up[moving crate1 crateu1|crate1] -> [moving crate1 crateu1 | moving crate1]\n+ left[moving crate1 cratel1|crate1] -> [moving crate1 cratel1 | moving crate1]\n+ down[moving crate1 crated1|crate1] -> [moving crate1 crated1 | moving crate1]\n+ right[moving crate1 crater1|crate1] -> [moving crate1 crater1 | moving crate1]\n \n\n[> fell1|fell1] -> [> fell1 | > fell1]\n+ up[moving fell1 fellu1|fell1] -> [moving fell1 fellu1 | moving fell1]\n+ left[moving fell1 felll1|fell1] -> [moving fell1 felll1 | moving fell1]\n+ down[moving fell1 felld1|fell1] -> [moving fell1 felld1 | moving fell1]\n+ right[moving fell1 fellr1|fell1] -> [moving fell1 fellr1 | moving fell1]\n\n[moving crate1 cratex1] -> [moving crate1 moving cratex1]\n[moving fell1 fellx1] -> [moving fell1 moving fellx1]\n[moving crate1 crate0ghost] -> [moving crate1 moving crate0ghost]\n\n[active stationary player1] -> [stationary active stationary player1]\n[activecurse0 stationary curse0] -> [stationary activecurse0 stationary curse0]\n[activefell stationary ded1] -> [stationary activefell stationary ded1]\n[stationary cursor0 activecurse0 holding] -> [stationary cursor0 activecurse0 stationary holding]\n[stationary curse2 holding] -> [stationary curse2 stationary holding]\n\n\n(falling)\nlate [supported] -> []\n\nlate [crate1 ded1] -> [crate1 supported ded1]\nlate [crate1 no pit1] -> [crate1 supported]\nlate [crate1 fell1] -> [crate1 fell1 supported]\n\n\nlate up[crateu1|supported] -> [crateu1 supported | supported]\n+ late left[cratel1|supported] -> [cratel1 supported | supported]\n+ late down[crated1|supported] -> [crated1 supported | supported]\n+ late right[crater1|supported] -> [crater1 supported | supported]\n\n\nlate [cursor0 pit0 no fell0] -> [pit0 dead0a]SFX3\nlate [player1 active pit1 no fell1 no ded1] -> [pit1 ded1 activefell]SFX3\nlate [player1 pit1 no fell1 no ded1] -> [pit1 ded1 ]SFX3\nlate [crate0 pit0 no supported] -> [pit0 fell0]SFX3\nlate [crate1 pit1 no supported] -> [pit1 fell1] SFX3\n\n\n\nlate [crateu1 no crate1 fell1] -> [fellu1 fell1]\nlate [cratel1 no crate1 fell1] -> [felll1 fell1]\nlate [crater1 no crate1 fell1] -> [fellr1 fell1]\nlate [crated1 no crate1 fell1] -> [felld1 fell1]\n\nlate [crateu1 no crate1] -> []\nlate [cratel1 no crate1] -> []\nlate [crater1 no crate1] -> []\nlate [crated1 no crate1] -> []\nlate up [crateu1 |no crate1] -> [|]\nlate left [cratel1 |no crate1] -> [|]\nlate right [crater1 |no crate1] -> [|]\nlate down [crated1 |no crate1] -> [|]\nlate [player1 ded1] -> [player1 ded1] SFX0\nlate [player1 ded1] -> cancel \n\n[moving crate0] -> SFX2\n[moving crate1] -> SFX2\n\n==============\nWINCONDITIONS\n==============\n\n\nAll target0 on crate0\nAll Target1 on Crateorfell1\nAll PlayerTarget1 on Playerormark1\nno Cursor0 on target1\nno cursor0 on PlayerTarget1\n\n=======\nLEVELS\n=======\n\nmessage Book 1: BASE\n\nmessage Page 1.1: GOAL\n\n#######\n#`````#\n#`p`t`#\n#`````#\n#`o`q`#\n#`````#\n#######\n\nmessage Page 1.2: TOOL\n\n#######\n#`t`o`#\n#t`-:`#\n#``tlo#\n#p````#\n#######\n\nmessage Page 1.3: HOLE\n\n########\n##``0`##\n#```0``#\n#``o0`t#\n#po:0``#\n#``:0`t#\n#```0``#\n##``0`##\n########\n\nmessage Page 1.4: FALL\n\n########\n#00u``0#\n#00po`0#\n#`000`0#\n#`00```#\n#`000``#\n#`000``#\n########\n\nmessage Book 2: EDIT\n\nmessage Page 2.1: MINI\n\n||||||||||\n|```````'|\n|`######`|\n|`#````#`|\n|`#``t`#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 2.2: FORM\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 2.3: PLUG\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#ro`o`#`|\n|`#####`#`|\n|`###`o`#`|\n|`#``oLo#`|\n|`#````##`|\n|`#`q####`|\n|`#######`|\n|`````````|\n|``c`0````|\n|````8````|\n|`````````|\n|||||||||||\n\nmessage Page 2.4: TRAP\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#``````#`|\n|`#``t```#`|\n|`#`tqt``#`|\n|`#``t```#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````16````|\n|``````````|\n||||||||||||\n\nmessage Book 3: DUAL\n\nmessage Page 3.1: CO-OP\n\n#######\n####qq#\n#po000#\n#`o000#\n###o``#\n###r`'#\n#######\n\nmessage Page 3.2: REST\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#`r00q#`|\n|`#######`|\n|`````````|\n|``c`o````|\n|````2````|\n|`````````|\n|||||||||||\nmessage Page 3.3: SAIL\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#0000q#`|\n|`#00000#`|\n|`#00000#`|\n|`#```00#`|\n|`#```00#`|\n|`#######`|\n|`````````|\n|``c`ro```|\n|````23```|\n|`````````|\n|||||||||||\n\nmessage Page 3.4: TWIN\n\n|||||||||||||||||||||\n|`````````+````````'|\n|`#######`+`#######`|\n|`#`````#`+`#`````#`|\n|`#```q`#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`q```#`|\n|`#`````#`+`#`````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````6````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Book 4: WHAT\n\nmessage Page 4.1: GUIS\n\n\n#######\n#q#``'#\n#``8#`#\n#`#p#`#\n#`#o#`#\n#`#1``#\n#######\n\nmessage Page 4.2: IDEA\n\n||||||||||\n|```````'|\n|`######`|\n|`#```t#`|\n|`#```t#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```31```|\n|````````|\n||||||||||\n\nmessage Page 4.3: FILL\n\n\n######\n#0poq#\n#0`70#\n#'000#\n#0000#\n######\n\nmessage Page 4.4: A LOT\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|``````'|\n|`c3o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Book 5: UHHH\n\nmessage Page 5.1: WALL\n\n||||||||||\n|```````'|\n|`######`|\n|`#t`#`#`|\n|`#````#`|\n|`##`o`#`|\n|x+xxxx+x|\n|`#````#`|\n|`#````#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 5.2: SAFE\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#xxxxx#`|\n|`#x```x#`|\n|`#x`t`x#`|\n|`#x```x#`|\n|`#xxxxx#`|\n|`#######`|\n|`````````|\n|`c`o1r```|\n|```111```|\n|`````````|\n|||||||||||\n\nmessage Page 5.3: LOCK\n\n|||||||||||||\n|o```'`xxxcx|\n|1``x```qx!x|\n|`1!````qx`x|\n|``1?x`xxx?x|\n|r``1````!`x|\n|````2`xxxxx|\n|||||||||||||\n\n\n\nmessage Page 5.4: POST\n\n+++++++++\n+p#```#q+\n+`#``'#3+\n+`#`1`#`+\n+`#`2`#`+\n+`#```#`+\n+`#```#`+\n+++++++++\nmessage Book 6: BLUE\n\nmessage Page 6.1: META\n\n||||||||||||\n|++++++++++|\n|+````\"```+|\n|+`######`+|\n|+`#````#`+|\n|+`#``t`#`+|\n|+`#````#`+|\n|+`######`+|\n|+````````+|\n|+```ro```+|\n|+````````+|\n|+````````+|\n|++++++++++|\n|``````````|\n|``~`1b````|\n|````{[````|\n|``````````|\n||||||||||||\n\nmessage Page 6.2: WILD\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`#######`+|\n|+`#0000q#`+|\n|+`#00000#`+|\n|+`#`0000#`+|\n|+`#`0000#`+|\n|+`#```00#`+|\n|+`#######`+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\nmessage Page 6.3: UH OH\n\n|||||||||||\n|+++++++++|\n|+``````\"+|\n|+`+++++`+|\n|+`+```+`+|\n|+`+`t`+`+|\n|+`+```+`+|\n|+`+```+`+|\n|+`+++++`+|\n|+```````+|\n|+```o```+|\n|+```````+|\n|+```````+|\n|+++++++++|\n|`````````|\n|`````````|\n|`~`1br```|\n|```][[```|\n|`````````|\n|||||||||||\n\nmessage Page 6.4: VARY\n\n|||||||||||||||||||||||\n|++++++++++&++++++++++|\n|+``````\"`x&x````````+|\n|+`######`x&x`######`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`#`qt`#`x&x`#`tq`#`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`######`x&x`######`+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|++++++++++&++++++++++|\n|``````````&``````````|\n|`~`r1ob```&`_`r1ob```|\n|```[{[[```&```[[[[```|\n|``````````&``````````|\n|||||||||||||||||||||||\n\nmessage Book 7: ?!?!\n\nmessage Page 7.1: EACH\n\n+++++++\n+````'+\n+`###`+\n+`#q#`+\n+`#0#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`###`+\n+`````+\n+``c``+\n+`r0o`+\n+``4``+\n+`````+\n+++++++\n\nmessage Page 7.2: HOLD\n\n&&&&&&&&&\n&`8```+`&\n&`{po`+`&\n&`\"```+t&\n&&&&&&&&&\n\nmessage Page 7.3: TRIP\n\n&&&&&&&\n&```\"`&\n&`o`!`&\n&`````&\n&+++++&\n&`r2b`&\n&`[[{~&\n&y```t&\n&&&&&&&\n\nmessage Page 7.4: PLAN\n\n\n|||||||||\n|```t```|\n|```````|\n|+++++++|\n|```````|\n|```````|\n|>>>>>>>|\n|```````|\n|```````|\n|+++++++|\n|```~```|\n|[[`2\"11|\n|[[`[`[[|\n|&&`&&&&|\n|&&bor&&|\n|||||||||\n\n\n\n\n\nmessage Book 8: (RE)STAR(TS)\n\n\nmessage Page 8.1: (IN)FORM(ED)\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 8.2: (EN)TWIN(ED)\n\n|||||||||||||||||||||\n|`````````+`````````|\n|`#######`+`#######`|\n|`#````q#`+`#`````#`|\n|`#`````#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`````#`|\n|`#`````#`+`#q````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````5````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Page 8.3: (ZE)ALOT(RY)\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|```````|\n|`c2o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Page 8.4: (BE)WILD(ER)\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`+++++++`+|\n|+`+0000q+`+|\n|+`+00000+`+|\n|+`+00000+`+|\n|+`+`0000+`+|\n|+`+```00+`+|\n|+`+++++++`+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", [0, 3, 0, 3, 2, 1, 1, 2, 2, 3, 0, 1, 0, 3, 3, 1, 2, 2, 2, 2, 3, 0, 0, 1, 0, 0, 3, 3, 0, 2, 2, 0, 3, 1, 0, 2, 2, 2, 1, 1, 1, 2], "background cant1 fellcant0 fellcant1 wall1:0,0,background cant1 fellcant0 fellcant1 wall1 wallr1:1,1,1,1,1,0,\n0,0,background cant1 fellcant0 fellcant1 wall1 walld1 wallr1:2,background fellcant0 fellcant1:3,3,3,3,3,\nbackground cant1 fellcant0 fellcant1 wall1 wallr1 wallu1:4,0,background cant1 fellcant0 fellcant1 wall1 walld1:5,3,3,3,3,3,\n3,3,background cant1 fellcant0 fellcant1 wall1 wallu1:6,5,3,3,3,3,\n3,3,3,6,5,background fellcant0 pit1 pit1d rim1l rim1r rim1u:7,background fellcant0 pit1 pit1d pit1u rim1l rim1r:8,8,\n8,8,activefell background ded1 fellcant0 pit1 pit1d pit1u rim1l rim1r:9,background fell1 fellcant0 pit1 pit1u rim1d rim1l rim1r:10,6,5,3,background crate1 crated1 fellcant0 fellcant1 supported:11,\nbackground crate1 crated1 crateu1 fellcant0 fellcant1 supported:12,background crate1 crateu1 fellcant0 fellcant1 supported:13,3,3,3,6,0,background cant1 fellcant0 fellcant1 wall1 walld1 walll1:14,\n3,background fellcant0 fellcant1 target1:15,3,15,3,background cant1 fellcant0 fellcant1 wall1 walll1 wallu1:16,0,0,\n0,background cant1 fellcant0 fellcant1 wall1 walll1:17,17,17,17,17,0,0,\n", 6, "1642084928380.6565"] + ], + [ + "VEXT EDIT B", + ["title VEXT EDIT\nauthor JACK\n\nrun_rules_on_level_start\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\n#eeeeee\n\nPlayerTarget1mark\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1mark\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nPlayerTarget1\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0Mark\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nWall0 \n#884400 #f00\n00000\n00000\n00000\n00000\n00000\n\nwalll0 \nBrown #f00\n1....\n1....\n1....\n1....\n1....\n\nWallr0 \nBrown #f00\n....1\n....1\n....1\n....1\n....1\n\nWalld0 \nBrown #f00\n.....\n.....\n.....\n.....\n11111\n\nWallu0 \nBrown #f00\n11111\n.....\n.....\n.....\n.....\n\nBlack\nblack\n\nwall0ghost\ntransparent\n\nWall0Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1 \n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall2\n#884400 #00f\n00000\n00000\n00000\n00000\n00000\n\nwalll2\nBrown #00f\n1....\n1....\n1....\n1....\n1....\n\nWallr2 \nBrown #00f\n....1\n....1\n....1\n....1\n....1\n\nWalld2 \nBrown #00f\n.....\n.....\n.....\n.....\n11111\n\nWallu2 \nBrown #00f\n11111\n.....\n.....\n.....\n.....\n\nwalll1 \nBrown #ff0\n1....\n1....\n1....\n1....\n1....\n\nWallr1 \nBrown #ff0\n....1\n....1\n....1\n....1\n....1\n\nWalld1 \nBrown #ff0\n.....\n.....\n.....\n.....\n11111\n\nWallu1 \nBrown #ff0\n11111\n.....\n.....\n.....\n.....\n\nCrate1Mark\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate1\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate01\ntransparent\n\nCrate0\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate0mark\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\ncrate0ghost\ntransparent\n\nPlayer1Mark\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nPlayer1\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nDed1Mark\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nDed1\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nCrated0\n#f80 #f00\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu0\n#f80 #f00\n.010.\n.010.\n.....\n.....\n.....\n\nCratel0\n#f80 #f00\n.....\n00...\n11...\n00...\n.....\n\nCrater0\n#f80 #f00\n.....\n...00\n...11\n...00\n.....\n\nCrated1\n#f80 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu1\n#f80 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nCratel1\n#f80 #ff0\n.....\n00...\n11...\n00...\n.....\n\nCrater1\n#f80 #ff0\n.....\n...00\n...11\n...00\n.....\n\n\nPit1Mark\nblack #bbbb00 white\n.111.\n10001\n10001\n10001\n.111.\n\n\nPit1\nblack #bbbb00 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\npit0ghost\ntransparent\n\nPit0\nblack #bb0000 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\n\npit0u\nblack #bb0000\n10001\n.....\n.....\n.....\n.....\n\npit0d\nblack #bb0000\n.....\n.....\n.....\n.....\n10001\n\npit0l\nblack #bb0000\n1....\n0....\n0....\n0....\n1....\n\npit0r\nblack #bb0000\n....1\n....0\n....0\n....0\n....1\n\npit1u\nblack #bbbb00\n10001\n.....\n.....\n.....\n.....\n\npit1d\nblack #bbbb00\n.....\n.....\n.....\n.....\n10001\n\npit1l\nblack #bbbb00\n1....\n0....\n0....\n0....\n1....\n\npit1r\nblack #bbbb00\n....1\n....0\n....0\n....0\n....1\n\nrim0u\n#b00\n.000.\n.....\n.....\n.....\n.....\n\nrim0l\n#b00\n.....\n0....\n0....\n0....\n.....\n\nrim0r\n#b00\n.....\n....0\n....0\n....0\n.....\n\nrim0d\n#b00\n.....\n.....\n.....\n.....\n.000.\n\nrim1u\n#bb0\n.000.\n.....\n.....\n.....\n.....\n\nrim1l\n#bb0\n.....\n0....\n0....\n0....\n.....\n\nrim1r\n#bb0\n.....\n....0\n....0\n....0\n.....\n\nrim1d\n#bb0\n.....\n.....\n.....\n.....\n.000.\n\nblackul\nblack\n0....\n.....\n.....\n.....\n.....\n\nblackur\nblack\n....0\n.....\n.....\n.....\n.....\n\nblackdl\nblack\n.....\n.....\n.....\n.....\n0....\n\nblackdr\nblack\n.....\n.....\n.....\n.....\n....0\n\nfell0\n#884400 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1mark\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfelld1\n#884400 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nfellu1\n#884400 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nfelll1\n#884400 #ff0\n.....\n00...\n11...\n00...\n.....\n\nfellr1\n#884400 #ff0\n.....\n...00\n...11\n...00\n.....\n\nfell0ghost\ntransparent\n\nsupported\ntransparent\n\nfellcant1\ntransparent\n\ncant1\ntransparent\n\ncant0\ntransparent\n\nfellcant0\ntransparent\n\ndead0a\ndarkred\n.....\n.0.0.\n.....\n.0.0.\n.....\n\ncursor0a\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\ncursor0b\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\n\n\ncursor2a\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\ncursor2b\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\none2mark\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2mark\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2mark\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none2\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0mark\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0mark\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0mark\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\nfour0\n#f00\n.0.0.\n.0.0.\n..00.\n...0.\n...0.\n\nfive0\n#f00\n.000.\n.0...\n.00..\n...0.\n.00..\n\nsix0\n#f00\n..00.\n.0...\n.00..\n.0.0.\n..0..\n\nseven0\n#f00\n.000.\n...0.\n...0.\n..0..\n..0..\n\ninf0\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\ninf0mark\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\n\ndecrement\ntransparent\n\nholding\ntransparent\n\nactiveb\n#f00\n.....\n.0.0.\n.....\n.....\n.....\n\nactive\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\nactivefell\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\npickeda0\ntransparent\n\npickedb0\ntransparent\n\npickeda2\ntransparent\n\npickedb2\ntransparent\n\nchosepink\n#ff22ff\n\nchosecyan\n#22ffff\n\npink\n#ff88ff\n\ncyan\n#88ffff\n\nplacemark\ntransparent\n\nactivecurse0\ntransparent\n\npartb\ntransparent\n\npartc\ntransparent\n\ncursor0mark\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\nwall2ghost\ntransparent\n\ncant2\ntransparent\n\nshowhere\ntransparent\n\nshowthis\ntransparent\n=======\nLEGEND\n=======\n\n` = Background\n& = Wall2 and wall1 and wall0\n# = Wall1\nX = Wall0\n+ = Wall0 and Wall1\nP = Player1 and active\n\nn = crate0 and crate1 and crate01\no = Crate1\n- = crate1 and crater1\n: = crate1 and crateu1\nL = crate1 and crater1 and crateu1\n0 = pit1\n! = crate0\n? = pit0\n/ = pit0 and pit1\n\n@ = one0 and pit0\nz = player1 and pit0\n\n| = black\n\n' = partb\n\" = partc\n\n~ = cursor2a\n_ = cursor2b\n\n1 = one0\n2 = two0\n3 = three0\n4 = four0\n5 = five0\n6 = six0\n7 = seven0\n8 = inf0\n\n[ = one2\n{ = two2\n] = three2\n> = wall2\nactiveab = active or activeb or activefell\npartbc = partb or partc\n\ny = target0\nu = Target1 and pit1\nt = Target1\nq = playertarget1\nr = player1\nb = cursor0a\nc = cursor0a and activecurse0\nk = cursor0b and activecurse0\ncurse0a = cursor0a or dead0a\ncurse0 = curse0a or cursor0b\ncurse2 = cursor2a or cursor2b\ncursor0 = cursor0a or cursor0b\n \nplayer = curse2 or activecurse0 or active or dead0a or activefell\ndead0 = dead0a\nx1 = player1 or crate1 or wall1 or target1 or playertarget1 or pit1\nx0 = crate0 or wall0 or pit0 or fell0\nxx = x0 or x1 or curse0\nx0ghost = crate0ghost or wall0ghost or pit0ghost or fell0ghost\ncratex1 = cratel1 or crater1 or crated1 or crateu1\nwallx2 = walll2 or wallr2 or walld2 or wallu2\nwallx1 = walll1 or wallr1 or walld1 or wallu1\nwallx0 = walll0 or wallr0 or walld0 or wallu0\nfellx1 = felll1 or fellr1 or felld1 or fellu1\npit0x = pit0l or pit0r or pit0d or pit0u\npit1x = pit1l or pit1r or pit1d or pit1u\ncrateorfell1 = crate1 or fell1\nplayerormark1 = player1 or player1mark\n\nx0mark = one0mark or two0mark or three0mark or cursor0mark or wall0mark or target0mark or crate0mark or inf0mark\nx1mark = player1mark or crate1mark or pit1mark or wall1mark or fell1mark or ded1mark or crate1mark or Target1mark or PlayerTarget1mark\nx2mark = one2mark or two2mark or three2mark\nxmark = x0mark or x1mark or x2mark\nnumber0 = one0 or two0 or three0 or four0 or five0 or six0 or seven0 or inf0\nnumber2 = one2 or two2 or three2\npicked = pickeda0 or pickedb0 or pickeda2 or pickedb2\n\npickable = player1 or pit1 or crate1 or number0 or wall1 or number2 or fell1 or ded1 or target0 or PlayerTarget1 or Target1\npickable2 = curse0a or pickable or wall0 or crate0 \n\nblackcorner = blackul or blackdl or blackur or blackdr\nrim0x = rim0l or rim0d or rim0u or rim0r\nrim1x = rim1l or rim1d or rim1u or rim1r \n=======\nSOUNDS\n=======\n\nSFX0 51304502\n\nsfx1 22108304\n\nSFX2 84700307\n\nSFX3 78571302\n\nSFX4 25131906\n\nSFX5 13408901\n\nSFX6 50704903\n\nSFX7 24622504\n\nSFX8 29744504\n\nSFX9 13344503\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\npink, chosepink\ncyan, chosecyan\n\n\nPit1,\npit1r\npit1l\npit1d\npit1u\npit0, pit0ghost\npit0r\npit0l\npit0d\npit0u\nblackul\nblackur\nblackdr\nblackdl\nTarget1, PlayerTarget1, target0\n\nfell1, ded1\nfelll1\nfellr1\nfelld1\nfellu1\n\ndead0a, fell0, fell0ghost\nrim0l \nrim0d \nrim0u \nrim0r\n\nrim1l \nrim1d \nrim1u \nrim1r \nPlayer1, Wall1, Crate1, \npit1mark\nfell1mark, ded1mark, target0mark\nTarget1mark, PlayerTarget1mark\nplayer1mark, crate1mark\nwall1mark\none0mark, two0mark, three0mark, wall0mark, inf0mark\none2mark, two2mark, three2mark\ncursor0mark, crate0mark\nnumber0, number2\ncratel1, walll1, \ncrater1, wallr1, \ncrated1, walld1, \ncrateu1, wallu1, \ncursor0, wall0, crate0, wall0ghost, crate0ghost\n walll0, cratel0\n wallr0, crater0\n walld0, crated0\n wallu0, crateu0\n crate01\n wall2, wall2ghost\n wallr2\n wallu2\n walll2\n walld2\n cursor2a, cursor2b\n \nfellcant1\nfellcant0\ncant0\ncant1\ncant2\nsupported\nactivefell\nactive, activeb\nactivecurse0\nholding\ndecrement\npickeda0, pickeda2\npickedb0, pickedb2\nplacemark\npartb partc\nshowthis\nshowhere\nblack\n\n======\nRULES\n======\n\n(Deal with action-----------------------------------------------------------------------------)\n\n[action activecurse0 curse0] -> [activecurse0 action curse0]\n\n(pick up ready icon)\ndown[action curse0a no holding pickable|number0] -> [curse0a holding pickable|number0 pickeda0] SFX9\ndown[action cursor0b no holding pickable|number0] -> [cursor0b holding pickable|number0 pickedb0] SFX9\ndown[action cursor2a no holding pickable2|number2] -> [cursor2a holding pickable2|number2 pickeda2] SFX9\ndown[action cursor2b no holding pickable2|number2] -> [cursor2b holding pickable2|number2 pickedb2] SFX9\n(switch to new ready icon)\ndown [action curse0a pickable| number0 no pickeda0][pickeda0] -> [curse0a pickable | number0 pickeda0][] SFX9\ndown [action cursor0b pickable| number0 no pickedb0][pickedb0] -> [cursor0b pickable | number0 pickedb0][] SFX9\ndown [action cursor2a pickable2| number2 no pickeda2][pickeda2] -> [cursor2a pickable2 | number2 pickeda2][] SFX9\ndown [action cursor2b pickable2| number2 no pickedb2][pickedb2] -> [cursor2b pickable2 | number2 pickedb2][] SFX9\n\n(put down ready icon)\ndown [action curse0 holding pickable| picked] -> [curse0 pickable|] SFX8\ndown [action cursor2a holding pickable2| pickeda2] -> [cursor2a pickable2|] SFX8\ndown [action cursor2b holding pickable2| pickedb2] -> [cursor2b pickable2|] SFX8\n\n(show mark)\nlate [xmark] -> []\nlate [showthis] -> []\nlate [showhere] -> []\n\nlate down [ | number0 pickeda0][curse0a] -> [showthis | number0 pickeda0][curse0a showhere]\nlate down [ | number0 pickedb0][cursor0b] -> [showthis | number0 pickedb0][cursor0b showhere]\nlate down [ | number2 pickeda2][cursor2a] -> [showthis | number2 pickeda2][cursor2a showhere]\nlate down [ | number2 pickedb2][cursor2b] -> [showthis | number2 pickedb2][cursor2b showhere]\nlate [showthis player1][showhere] -> [showthis player1][showhere player1mark]\nlate [showthis pit1][showhere] -> [showthis pit1][showhere pit1mark]\nlate [showthis crate1][showhere] -> [showthis crate1][showhere crate1mark]\nlate [showthis wall1][showhere] -> [showthis wall1][showhere wall1mark]\nlate [showthis one0][showhere] -> [showthis one0][showhere one0mark]\nlate [showthis two0][showhere] -> [showthis two0][showhere two0mark]\nlate [showthis three0][showhere] -> [showthis three0][showhere three0mark]\nlate [showthis one2][showhere] -> [showthis one2][showhere one2mark]\nlate [showthis two2][showhere] -> [showthis two2][showhere two2mark]\nlate [showthis three2][showhere] -> [showthis three2][showhere three2mark]\nlate [showthis wall0][showhere] -> [showthis wall0][showhere wall0mark]\nlate [showthis fell1][showhere] -> [showthis fell1][showhere fell1mark]\nlate [showthis ded1][showhere] -> [showthis ded1][showhere ded1mark]\nlate [showthis target0][showhere] -> [showthis target0][showhere target0mark]\nlate [showthis crate0][showhere] -> [showthis crate0][showhere crate0mark]\nlate [showthis cursor0][showhere] -> [showthis cursor0][showhere cursor0mark]\nlate [showthis inf0][showhere] -> [showthis inf0][showhere inf0mark]\nlate [showthis Target1][showhere] -> [showthis target1][showhere Target1mark]\nlate [showthis PlayerTarget1][showhere] -> [showthis PlayerTarget1][showhere PlayerTarget1mark]\n(connect cratemark)\nup [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crateu1 | crate1 crated1]\ndown [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crated1 | crate1 crateu1]\nleft [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark cratel1 | crate1 crater1]\nright [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crater1 | crate1 cratel1]\nup [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crateu1 | fell1 felld1]\ndown [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crated1 | fell1 fellu1]\nleft [action curse0 holding fell1mark no xx no number0 no number2| fell1] -> [action curse0 holding fell1mark cratel1 | fell1 fellr1]\nright [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crater1 | fell1 felll1]\n\n(place mark)\n[placemark] -> []\n\ndown [action curse0a holding xmark no x1 no number0][pickeda0 number0] -> [curse0a holding xmark placemark][pickeda0 decrement number0] SFX7\ndown [action cursor0b holding xmark no x1 no number0][pickedb0 number0] -> [cursor0b holding xmark placemark][pickedb0 decrement number0] SFX7\n\ndown [action cursor2a holding xmark no xx no number0 no number2][pickeda2 number2] -> [cursor2a holding xmark placemark][pickeda2 decrement number2] SFX7\ndown [action cursor2b holding xmark no xx no number0 no number2][pickedb2 number2] -> [cursor2b holding xmark placemark][pickedb2 decrement number2] SFX7\n\n\n\n[placemark player1mark] -> [placemark player1 player1mark]\n[placemark pit1mark] -> [placemark pit1 pit1mark]\n[placemark crate1mark] -> [placemark crate1 crate1mark]\n[placemark wall1mark] -> [placemark wall1 wall1mark]\n[placemark one0mark] -> [placemark one0 one0mark]\n[placemark two0mark] -> [placemark two0 two0mark]\n[placemark three0mark] -> [placemark three0 three0mark]\n[placemark one2mark] -> [placemark one2 one2mark]\n[placemark two2mark] -> [placemark two2 two2mark]\n[placemark three2mark] -> [placemark three2 three2mark]\n[placemark wall0mark] -> [placemark wall0 wall0mark]\n[placemark fell1mark] -> [placemark fell1 fell1mark]\n[placemark ded1mark] -> [placemark ded1 ded1mark]\n[placemark target0mark] -> [placemark target0 target0mark]\n[placemark crate0mark] -> [placemark crate0 crate0mark]\n[placemark Target1mark] -> [placemark target1 Target1mark]\n[placemark inf0mark] -> [placemark inf0 inf0mark]\n[placemark PlayerTarget1mark] -> [placemark playertarget1 PlayerTarget1mark]\ndown [placemark cursor0mark][curse0a|no one2] -> [ cursor0b cursor0mark][curse0a|]\n[placemark cursor0mark] -> [placemark cursor0a cursor0mark]\n\n(decrement number of placed item)\ndown [xmark holding cursor2a][pickable2|one2 decrement pickeda2] -> [xmark holding cursor2a][|one2 decrement pickeda2]\ndown [xmark holding cursor2b][pickable2|one2 decrement pickedb2] -> [xmark holding cursor2b][|one2 decrement pickedb2]\ndown [xmark holding curse0a][pickable|one0 decrement pickeda0] -> [xmark holding curse0a][|one0 decrement pickeda0]\ndown [xmark holding cursor0b][pickable|one0 decrement pickedb0] -> [xmark holding cursor0b][|one0 decrement pickedb0]\ndown [xmark holding cursor2a][|one2 decrement pickeda2] -> [cursor2a][|]\ndown [xmark holding cursor2b][|one2 decrement pickedb2] -> [cursor2b][|]\ndown [xmark holding cursor0a][|one0 decrement pickeda0] -> [cursor0a][|]\ndown [xmark holding cursor0b][|one0 decrement pickedb0] -> [cursor0b][|]\n[one0 decrement] -> []\n[two0 decrement] -> [one0]\n[three0 decrement] -> [two0]\n[four0 decrement] -> [three0]\n[five0 decrement] -> [four0]\n[six0 decrement] -> [five0]\n[seven0 decrement] -> [six0]\n[one2 decrement] -> []\n[two2 decrement] -> [one2]\n[three2 decrement] -> [two2]\n\n\n\n(player -> cursor)\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [player1 action active no wall0ghost no crate0ghost][partbc] -> [cursor0a player1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [ded1 action activefell no wall0ghost no crate0ghost][partbc] -> [cursor0a ded1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\n\n(cursor holding -> player)\ndown [action curse0a activecurse0 player1 holding xmark][| number0 pickeda0] -> [active player1][ | number0] SFX6\ndown [action curse0a activecurse0 ded1 holding xmark][| number0 pickeda0] -> [activefell ded1][ | number0] SFX6\ndown [action cursor0b activecurse0 player1 holding xmark][| number0 pickedb0] -> [active player1][ | number0] SFX6\ndown [action cursor0b activecurse0 ded1 holding xmark][| number0 pickedb0] -> [activefell ded1][ | number0] SFX6\n(empty cursor -> player)\n[action curse0 player1 activecurse0 no holding] -> [active player1] SFX6\n[action curse0 ded1 activecurse0 no holding] -> [activefell ded1] SFX6\n(red -> blue)\n[action cursor0a activecurse0 holding xmark][partc][pickeda0] -> [cursor0a cursor2a][partc][] SFX5\n[action cursor0a activecurse0 ][partc] -> [cursor0a cursor2a][partc] SFX5\n[action cursor0b activecurse0 holding xmark][partc][pickedb0] -> [cursor0b cursor2b][partc][] SFX5\n[action cursor0b activecurse0 ][partc] -> [cursor0b cursor2b][partc] SFX5\n(blue holding -> red)\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\nrandom down [action curse2 curse0 holding xmark][| number2 pickeda2] -> [activecurse0 cursor0a][ | number2] SFX6\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\n(empty blue -> red)\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\nrandom [action curse2 curse0 no holding] -> [activecurse0 cursor0a] SFX6\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\n\n\n[action player] -> SFX0\n[action curse0] -> SFX0\n\n(Aesthetic----------------------------------------------------------------------------------------)\n\n\n\n(ghosts)\n[player1 active][pit0] -> [player1 active][pit0ghost]\n[pit0ghost][cursor0] -> [pit0][cursor0]\n[player1 active][wall0] -> [player1 active][wall0ghost]\n[wall0ghost][cursor0] -> [wall0][cursor0]\n[player1 active][crate0] -> [player1 active][crate0ghost]\n[crate0ghost][cursor0] -> [crate0][cursor0]\n[player1 active][fell0] -> [player1 active][fell0ghost]\n[fell0ghost][cursor0] -> [fell0][cursor0]\n[curse0 activecurse0][wall2] -> [curse0 activecurse0][wall2ghost]\n[wall2ghost][curse2] -> [wall2][curse2]\n\n\n(wall boundaries)\n[wallx2] -> []\n[wallx1] -> []\n[wallx0] -> []\nup [wall2 | no wall2] -> [wall2 wallu2 | ]\ndown [wall2 | no wall2] -> [wall2 walld2 | ]\nleft [wall2 | no wall2] -> [wall2 walll2 | ]\nright [wall2 | no wall2] -> [wall2 wallr2 | ]\nup [wall1 | no wall1] -> [wall1 wallu1 | ]\ndown [wall1 | no wall1] -> [wall1 walld1 | ]\nleft [wall1 | no wall1] -> [wall1 walll1 | ]\nright [wall1 | no wall1] -> [wall1 wallr1 | ]\nup [wall0 | no wall0] -> [wall0 wallu0 | ]\ndown [wall0 | no wall0] -> [wall0 walld0 | ]\nleft [wall0 | no wall0] -> [wall0 walll0 | ]\nright [wall0 | no wall0] -> [wall0 wallr0 | ]\n\n(crate connectors)\nup [crateu0|] -> [crateu0 | crated0]\nright [crater0|] -> [crater0 | cratel0]\nup [crateu1|] -> [crateu1 | crated1]\nright [crater1|] -> [crater1 | cratel1]\n(pit connectors)\n[blackcorner] -> []\n[pit0x] -> [] \n[pit1x] -> [] \nup [pit1 | pit1] -> [pit1u pit1|pit1d pit1]\nright [pit1 | pit1] -> [pit1r pit1|pit1l pit1]\nup [pit0 | pit0] -> [pit0u pit0|pit0d pit0]\nright [pit0 | pit0] -> [pit0r pit0|pit0l pit0]\n[pit1u pit1r] -> [pit1u pit1r blackur]\n[pit1u pit1l] -> [pit1u pit1l blackul]\n[pit1d pit1r] -> [pit1d pit1r blackdr]\n[pit1d pit1l] -> [pit1d pit1l blackdl]\n[pit0u pit0r] -> [pit0u pit0r blackur]\n[pit0u pit0l] -> [pit0u pit0l blackul]\n[pit0d pit0r] -> [pit0d pit0r blackdr]\n[pit0d pit0l] -> [pit0d pit0l blackdl]\n[rim1x] -> []\n[rim0x] -> []\nup[pit0|no pit0] -> [pit0 rim0u|]\ndown[pit0|no pit0] -> [pit0 rim0d|]\nleft[pit0|no pit0] -> [pit0 rim0l|]\nright[pit0|no pit0] -> [pit0 rim0r|]\nup[pit1|no pit1] -> [pit1 rim1u|]\ndown[pit1|no pit1] -> [pit1 rim1d|]\nleft[pit1|no pit1] -> [pit1 rim1l|]\nright[pit1|no pit1] -> [pit1 rim1r|]\nlate [pink] -> []\nlate [cyan] -> []\nlate [chosepink] -> []\nlate [chosecyan] -> []\nlate down [pickable |number0] -> [pickable pink | number0 pink]\nlate down [pickable2 |number2] -> [pickable2 cyan | number2 cyan]\nlate up [pink picked|pink] -> [chosepink picked|chosepink ]\nlate up [cyan picked|cyan ] -> [chosecyan picked|chosecyan ]\n\n(Movement----------------------------------------------------------------------------------------)\n\n(move attached items)\n[moving activecurse0 curse0] -> [moving activecurse0 moving curse0]\n[moving active player1] -> [moving active moving player1]\n[moving activefell ded1] -> [moving activefell moving ded1]\n[moving curse0 holding] -> [moving curse0 moving holding]\n[moving curse2 holding] -> [moving curse2 moving holding]\n\n(reset and propogate cant)\n[cant0] -> []\n[cant1] -> []\n[cant2] -> []\n[fellcant0] -> []\n[fellcant1] -> []\n\n[black no cant0 no cant1 no cant2] -> [black cant0 cant1 cant2]\n[wall2 no cant2] -> [wall2 cant2]\n[wall1 no cant1] -> [wall1 cant1]\n[wall0 no cant0] -> [wall0 cant0]\n[number0] -> [number0 cant1]\n[number2] -> [number2 cant1]\n[no pit1 no fellcant1] -> [fellcant1]\n[no pit0 no fellcant0] -> [fellcant0]\n\n[> ded1][fell1|fellcant1] -> [> ded1][fell1 fellcant1 | fellcant1]\n+ [> ded1][ded1|fellcant1] -> [> ded1][ded1 fellcant1 | fellcant1]\n+ up[fellu1|fellcant1] -> [fellu1 fellcant1 | fellcant1]\n+ left[felll1|fellcant1] -> [felll1 fellcant1 | fellcant1]\n+ down[felld1|fellcant1] -> [felld1 fellcant1 | fellcant1]\n+ right[fellr1|fellcant1] -> [fellr1 fellcant1 | fellcant1]\n\n+ [> player1][crate1|cant1] -> [> player1][crate1 cant1 | cant1]\n+ [> player1][player1|cant1] -> [> player1][player1 cant1 | cant1]\n+ up[crateu1|cant1] -> [crateu1 cant1 | cant1]\n+ left[cratel1|cant1] -> [cratel1 cant1 | cant1]\n+ down[crated1|cant1] -> [crated1 cant1 | cant1]\n+ right[crater1|cant1] -> [crater1 cant1 | cant1]\n+ [crate1 crate0 cant0] -> [crate1 crate0 cant0 cant1]\n+ [crate1 crate0 cant1] -> [crate1 crate0 cant0 cant1]\n+ [> dead0][dead0|fellcant0] -> [> dead0][dead0 fellcant0 | fellcant0]\n+ [> cursor0][cursor0|cant0] -> [> cursor0][cursor0 cant0 | cant0]\n+ [> cursor0][crate0 | number0] -> [> cursor0][crate0 cant0| number0]\n+ [> cursor0][crate0|cant0] -> [> cursor0][crate0 cant0 | cant0]\n+ up[crateu0|cant0] -> [crateu0 cant0 | cant0]\n+ left[cratel0|cant0] -> [cratel0 cant0 | cant0]\n+ down[crated0|cant0] -> [crated0 cant0 | cant0]\n+ right[crater0|cant0] -> [crater0 cant0 | cant0]\n\n[> curse2 | wall2] -> [stationary curse2 | wall2]\n[> curse2 | black] -> [stationary curse2 | black]\n[cursor0 cant0] -> [stationary cursor0 cant0]\n[player1 cant1] -> [stationary player1 cant1]\n[ded1 fellcant1] -> [stationary ded1 fellcant1]\n[dead0 fellcant0] -> [stationary dead0 fellcant0]\n\n\n(propagate movement)\n\n[ > Ded1 | Fell1 no fellcant1] -> [ > Ded1 | > Fell1 ]\n\n[ > Cursor0 | Crate0 ] -> [ > Cursor0 | > Crate0 ]\n+ [ > Cursor0 | Cursor0 ] -> [ > Cursor0 | > Cursor0 ]\n+ [ > Crate0 | Crate0 ] -> [ > Crate0 | > Crate0 ]\n\n+ [ > Player1 | Crate1 ] -> [ > Player1 | > Crate1 ]\n+ [ > Player1 | Player1] -> [ > Player1 | > Player1 ]\n+ [ > Crate1 | Player1 ] -> [ > Crate1 | > Player1 ]\n+ [> crate1|crate1] -> [> crate1 | > crate1]\n+ up[moving crate1 crateu1|crate1] -> [moving crate1 crateu1 | moving crate1]\n+ left[moving crate1 cratel1|crate1] -> [moving crate1 cratel1 | moving crate1]\n+ down[moving crate1 crated1|crate1] -> [moving crate1 crated1 | moving crate1]\n+ right[moving crate1 crater1|crate1] -> [moving crate1 crater1 | moving crate1]\n \n\n[> fell1|fell1] -> [> fell1 | > fell1]\n+ up[moving fell1 fellu1|fell1] -> [moving fell1 fellu1 | moving fell1]\n+ left[moving fell1 felll1|fell1] -> [moving fell1 felll1 | moving fell1]\n+ down[moving fell1 felld1|fell1] -> [moving fell1 felld1 | moving fell1]\n+ right[moving fell1 fellr1|fell1] -> [moving fell1 fellr1 | moving fell1]\n\n[moving crate1 cratex1] -> [moving crate1 moving cratex1]\n[moving fell1 fellx1] -> [moving fell1 moving fellx1]\n[moving crate1 crate0ghost] -> [moving crate1 moving crate0ghost]\n\n[active stationary player1] -> [stationary active stationary player1]\n[activecurse0 stationary curse0] -> [stationary activecurse0 stationary curse0]\n[activefell stationary ded1] -> [stationary activefell stationary ded1]\n[stationary cursor0 activecurse0 holding] -> [stationary cursor0 activecurse0 stationary holding]\n[stationary curse2 holding] -> [stationary curse2 stationary holding]\n\n\n(falling)\nlate [supported] -> []\n\nlate [crate1 ded1] -> [crate1 supported ded1]\nlate [crate1 no pit1] -> [crate1 supported]\nlate [crate1 fell1] -> [crate1 fell1 supported]\n\n\nlate up[crateu1|supported] -> [crateu1 supported | supported]\n+ late left[cratel1|supported] -> [cratel1 supported | supported]\n+ late down[crated1|supported] -> [crated1 supported | supported]\n+ late right[crater1|supported] -> [crater1 supported | supported]\n\n\nlate [cursor0 pit0 no fell0] -> [pit0 dead0a]SFX3\nlate [player1 active pit1 no fell1 no ded1] -> [pit1 ded1 activefell]SFX3\nlate [player1 pit1 no fell1 no ded1] -> [pit1 ded1 ]SFX3\nlate [crate0 pit0 no supported] -> [pit0 fell0]SFX3\nlate [crate1 pit1 no supported] -> [pit1 fell1] SFX3\n\n\n\nlate [crateu1 no crate1 fell1] -> [fellu1 fell1]\nlate [cratel1 no crate1 fell1] -> [felll1 fell1]\nlate [crater1 no crate1 fell1] -> [fellr1 fell1]\nlate [crated1 no crate1 fell1] -> [felld1 fell1]\n\nlate [crateu1 no crate1] -> []\nlate [cratel1 no crate1] -> []\nlate [crater1 no crate1] -> []\nlate [crated1 no crate1] -> []\nlate up [crateu1 |no crate1] -> [|]\nlate left [cratel1 |no crate1] -> [|]\nlate right [crater1 |no crate1] -> [|]\nlate down [crated1 |no crate1] -> [|]\nlate [player1 ded1] -> [player1 ded1] SFX0\nlate [player1 ded1] -> cancel \n\n[moving crate0] -> SFX2\n[moving crate1] -> SFX2\n\n==============\nWINCONDITIONS\n==============\n\n\nAll target0 on crate0\nAll Target1 on Crateorfell1\nAll PlayerTarget1 on Playerormark1\nno Cursor0 on target1\nno cursor0 on PlayerTarget1\n\n=======\nLEVELS\n=======\n\nmessage Book 1: BASE\n\nmessage Page 1.1: GOAL\n\n#######\n#`````#\n#`p`t`#\n#`````#\n#`o`q`#\n#`````#\n#######\n\nmessage Page 1.2: TOOL\n\n#######\n#`t`o`#\n#t`-:`#\n#``tlo#\n#p````#\n#######\n\nmessage Page 1.3: HOLE\n\n########\n##``0`##\n#```0``#\n#``o0`t#\n#po:0``#\n#``:0`t#\n#```0``#\n##``0`##\n########\n\nmessage Page 1.4: FALL\n\n########\n#00u``0#\n#00po`0#\n#`000`0#\n#`00```#\n#`000``#\n#`000``#\n########\n\nmessage Book 2: EDIT\n\nmessage Page 2.1: MINI\n\n||||||||||\n|```````'|\n|`######`|\n|`#````#`|\n|`#``t`#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 2.2: FORM\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 2.3: PLUG\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#ro`o`#`|\n|`#####`#`|\n|`###`o`#`|\n|`#``oLo#`|\n|`#````##`|\n|`#`q####`|\n|`#######`|\n|`````````|\n|``c`0````|\n|````8````|\n|`````````|\n|||||||||||\n\nmessage Page 2.4: TRAP\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#``````#`|\n|`#``t```#`|\n|`#`tqt``#`|\n|`#``t```#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````16````|\n|``````````|\n||||||||||||\n\nmessage Book 3: DUAL\n\nmessage Page 3.1: CO-OP\n\n#######\n####qq#\n#po000#\n#`o000#\n###o``#\n###r`'#\n#######\n\nmessage Page 3.2: REST\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#`r00q#`|\n|`#######`|\n|`````````|\n|``c`o````|\n|````2````|\n|`````````|\n|||||||||||\nmessage Page 3.3: SAIL\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#0000q#`|\n|`#00000#`|\n|`#00000#`|\n|`#```00#`|\n|`#```00#`|\n|`#######`|\n|`````````|\n|``c`ro```|\n|````23```|\n|`````````|\n|||||||||||\n\nmessage Page 3.4: TWIN\n\n|||||||||||||||||||||\n|`````````+````````'|\n|`#######`+`#######`|\n|`#`````#`+`#`````#`|\n|`#```q`#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`q```#`|\n|`#`````#`+`#`````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````6````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Book 4: WHAT\n\nmessage Page 4.1: GUIS\n\n\n#######\n#q#``'#\n#``8#`#\n#`#p#`#\n#`#o#`#\n#`#1``#\n#######\n\nmessage Page 4.2: IDEA\n\n||||||||||\n|```````'|\n|`######`|\n|`#```t#`|\n|`#```t#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```31```|\n|````````|\n||||||||||\n\nmessage Page 4.3: FILL\n\n\n######\n#0poq#\n#0`70#\n#'000#\n#0000#\n######\n\nmessage Page 4.4: A LOT\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|``````'|\n|`c3o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Book 5: UHHH\n\nmessage Page 5.1: WALL\n\n||||||||||\n|```````'|\n|`######`|\n|`#t`#`#`|\n|`#````#`|\n|`##`o`#`|\n|x+xxxx+x|\n|`#````#`|\n|`#````#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 5.2: SAFE\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#xxxxx#`|\n|`#x```x#`|\n|`#x`t`x#`|\n|`#x```x#`|\n|`#xxxxx#`|\n|`#######`|\n|`````````|\n|`c`o1r```|\n|```111```|\n|`````````|\n|||||||||||\n\nmessage Page 5.3: LOCK\n\n|||||||||||||\n|o```'`xxxcx|\n|1``x```qx!x|\n|`1!````qx`x|\n|``1?x`xxx?x|\n|r``1````!`x|\n|````2`xxxxx|\n|||||||||||||\n\n\n\nmessage Page 5.4: POST\n\n+++++++++\n+p#```#q+\n+`#``'#3+\n+`#`1`#`+\n+`#`2`#`+\n+`#```#`+\n+`#```#`+\n+++++++++\nmessage Book 6: BLUE\n\nmessage Page 6.1: META\n\n||||||||||||\n|++++++++++|\n|+````\"```+|\n|+`######`+|\n|+`#````#`+|\n|+`#``t`#`+|\n|+`#````#`+|\n|+`######`+|\n|+````````+|\n|+```ro```+|\n|+````````+|\n|+````````+|\n|++++++++++|\n|``````````|\n|``~`1b````|\n|````{[````|\n|``````````|\n||||||||||||\n\nmessage Page 6.2: WILD\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`#######`+|\n|+`#0000q#`+|\n|+`#00000#`+|\n|+`#`0000#`+|\n|+`#`0000#`+|\n|+`#```00#`+|\n|+`#######`+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\nmessage Page 6.3: UH OH\n\n|||||||||||\n|+++++++++|\n|+``````\"+|\n|+`+++++`+|\n|+`+```+`+|\n|+`+`t`+`+|\n|+`+```+`+|\n|+`+```+`+|\n|+`+++++`+|\n|+```````+|\n|+```o```+|\n|+```````+|\n|+```````+|\n|+++++++++|\n|`````````|\n|`````````|\n|`~`1br```|\n|```][[```|\n|`````````|\n|||||||||||\n\nmessage Page 6.4: VARY\n\n|||||||||||||||||||||||\n|++++++++++&++++++++++|\n|+``````\"`x&x````````+|\n|+`######`x&x`######`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`#`qt`#`x&x`#`tq`#`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`######`x&x`######`+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|++++++++++&++++++++++|\n|``````````&``````````|\n|`~`r1ob```&`_`r1ob```|\n|```[{[[```&```[[[[```|\n|``````````&``````````|\n|||||||||||||||||||||||\n\nmessage Book 7: ?!?!\n\nmessage Page 7.1: EACH\n\n+++++++\n+````'+\n+`###`+\n+`#q#`+\n+`#0#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`###`+\n+`````+\n+``c``+\n+`r0o`+\n+``4``+\n+`````+\n+++++++\n\nmessage Page 7.2: HOLD\n\n&&&&&&&&&\n&`8```+`&\n&`{po`+`&\n&`\"```+t&\n&&&&&&&&&\n\nmessage Page 7.3: TRIP\n\n&&&&&&&\n&```\"`&\n&`o`!`&\n&`````&\n&+++++&\n&`r2b`&\n&`[[{~&\n&y```t&\n&&&&&&&\n\nmessage Page 7.4: PLAN\n\n\n|||||||||\n|```t```|\n|```````|\n|+++++++|\n|```````|\n|```````|\n|>>>>>>>|\n|```````|\n|```````|\n|+++++++|\n|```~```|\n|[[`2\"11|\n|[[`[`[[|\n|&&`&&&&|\n|&&bor&&|\n|||||||||\n\n\n\n\n\nmessage Book 8: (RE)STAR(TS)\n\n\nmessage Page 8.1: (IN)FORM(ED)\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 8.2: (EN)TWIN(ED)\n\n|||||||||||||||||||||\n|`````````+`````````|\n|`#######`+`#######`|\n|`#````q#`+`#`````#`|\n|`#`````#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`````#`|\n|`#`````#`+`#q````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````5````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Page 8.3: (ZE)ALOT(RY)\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|```````|\n|`c2o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Page 8.4: (BE)WILD(ER)\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`+++++++`+|\n|+`+0000q+`+|\n|+`+00000+`+|\n|+`+00000+`+|\n|+`+`0000+`+|\n|+`+```00+`+|\n|+`+++++++`+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", [0, 3, 3, 3, 2, 2, 4, 1, 0, 3, 4, 0, 0, 0, 0, 4, 3, 3, 2, 2, 2, 2, 1, 4, 0, 0, 0, 3, 0, 4, 2, 2, 2, 2, 3, 3, 4, 1, 4, 0, 0, 0, 0, 0, 4, 1, 2, 2, 2, 2, 2, 4, 0, 0, 0, 3, 0, 4, 4, 4, 1, 4, 2, 1, 0, 3, 3, 4, 2, 1, 0, 4, 1, 0, 0, 3, 3, 3, 2, 1, 1, 1, 3, 4, 2, 2, 1, 1, 1, 0, 3, 4, 3, 3, 2, 2, 2, 1, 2, 1, 4, 0, 0, 0, 3, 3, 0, 0, 0, 4, 3, 2, 2, 1, 0, 4, 1, 2, 1, 4, 3, 3, 0, 4, 2, 3, 0, 4, 2], "background black cant0 cant1 cant2 fellcant0 fellcant1:0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,background cant0 cant1 fellcant0 fellcant1 wall0 wall1 walll0 walll1 wallu0 wallu1:1,background cant0 cant1 fellcant0 fellcant1 wall0 wall1 walll0 walll1 wallr0 wallr1:2,2,2,2,\n2,2,2,2,2,2,2,2,background cant0 cant1 fellcant0 fellcant1 wall0 wall1 walld0 walld1 walll0 walll1:3,background fellcant0 fellcant1:4,4,4,4,\n0,0,background cant0 cant1 fellcant0 fellcant1 wall0 wall1 walld0 walld1 wallu0 wallu1:5,4,4,4,4,4,4,4,4,4,4,\n4,4,5,4,4,4,4,0,0,5,4,background cant1 fellcant0 fellcant1 wall1 walll1 wallu1:6,background cant1 fellcant0 fellcant1 wall1 walll1 wallr1:7,\n7,7,7,7,background cant1 fellcant0 fellcant1 wall1 walld1 walll1:8,4,4,4,4,5,4,4,4,\n4,0,0,5,4,background cant1 fellcant0 fellcant1 wall1 walld1 wallu1:9,background blackdr fellcant0 pit1 pit1d pit1r rim1l rim1u:10,background blackur fellcant0 pit1 pit1r pit1u rim1d rim1l:11,4,4,4,9,4,\n4,4,4,5,4,background cant1 cyan fellcant0 fellcant1 one0:12,background cant1 cyan fellcant0 fellcant1 one2:13,4,0,0,5,4,9,\nbackground blackdl blackdr fellcant0 pit1 pit1d pit1l pit1r rim1u:14,background blackdl blackdr blackul blackur fellcant0 pit1 pit1d pit1l pit1r pit1u:15,background blackdr blackur fellcant0 pit1 pit1d pit1r pit1u rim1l:16,11,4,9,4,background crate1 fellcant0 fellcant1 pink supported:17,background cant1 fellcant0 fellcant1 pink two0:18,4,5,4,4,\n4,4,0,0,5,4,9,14,15,15,background blackul blackur fellcant0 pit1 pit1l pit1r pit1u rim1d:19,4,9,\n4,4,4,4,5,4,4,4,4,0,0,5,4,\n9,background blackdl fellcant0 pit1 pit1d pit1l rim1r rim1u:20,15,15,15,11,background cant1 fellcant0 fellcant1 pink wall1 walld1 wallu1:21,18,4,4,4,5,4,\n4,4,4,0,0,5,background fellcant0 fellcant1 partc:22,9,background fellcant0 fellcant1 playertarget1:23,20,background blackdl blackul fellcant0 pit1 pit1d pit1l pit1u rim1r:24,24,background blackul fellcant0 pit1 pit1l pit1u rim1d rim1r:25,\n9,4,background fellcant0 fellcant1 player1:26,activecurse0 background cursor0a fellcant0 fellcant1:27,4,5,4,4,4,4,0,0,5,\n4,background cant1 fellcant0 fellcant1 wall1 wallr1 wallu1:28,7,7,7,7,7,background cant1 fellcant0 fellcant1 wall1 walld1 wallr1:29,4,4,4,4,5,\n4,4,4,4,0,0,5,4,4,4,4,4,4,\n4,4,4,4,4,4,5,4,4,4,4,0,0,\nbackground cant0 cant1 fellcant0 fellcant1 wall0 wall1 wallr0 wallr1 wallu0 wallu1:30,2,2,2,2,2,2,2,2,2,2,2,2,\nbackground cant0 cant1 fellcant0 fellcant1 wall0 wall1 walld0 walld1 wallr0 wallr1:31,4,4,4,4,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 49, "1642083700844.0618"] + ], + [ + "Undo and Real-time #796", + ["title Undo and Real-time\nrealtime_interval 0.25\n\n========\nOBJECTS\n========\n\nBackground .\nBlack\n\nPlayer @\nBlue\n\nThing *\nYellow\n\n=======\nLEGEND\n=======\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nThing\nPlayer\n\n======\nRULES \n====== \n\n[ Thing ] -> [ right Thing ] \n\n==============\nWINCONDITIONS\n============== \n\n======= \nLEVELS\n=======\n\nmessage Walk around a bit, then undo several times (usually, three is enough).\n\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.............@.......................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n\n\n\n\n\n", ["tick", 4, 4, 4, 1, 1, "tick", 1, "tick", "tick", "tick", "tick", "undo", "undo", "tick", "tick", "tick", "undo"], "background: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,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,background thing:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,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,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,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,background player: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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,\n", 1, "1642738088805.1099"] + ], + [ + "Cucumber Surprise", + ["title Cucumber Surprise\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #595652\ntext_color white\n\nagain_interval 0.01\n\n(thanks to bvoq for Puzzlescript+MIS https://dekeyser.ch/puzzlescriptmis/ also testing. also thanks to ggn and meepmeep13 for testing)\n\n========\nOBJECTS\n========\n\nBackground\n#595652 #696a6a\n00000\n00000\n00100\n00000\n00000\n\n\n\nziel\n#595652 #eec39a #d9a066 #e1b489\n.111.\n23331\n23331\n23331\n.222.\n\n\nwand\n#696a6a #847e87\n00010\n11111\n01000\n11111\n00010\n\n\nplayer\n#595652 #ac3232 #8a6f30 #5b6ee1\n.111.\n.222.\n.222.\n13331\n.1.1.\n\n\nkatze\n#000000 \n0..00\n.0.00\n.000.\n.0.0.\n.0.0.\n\ngurke\ntransparent #99e550 #6abe30\n00100\n02110\n02110\n02110\n00200\n\npush_up\ntransparent\n\npush_down\ntransparent\n\npush_left\ntransparent\n\npush_right\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\ng = gurke\np = player\n* = katze\n# = wand\n@ = katze and ziel\nO = ziel\nm = gurke and ziel\n\nobstacle = player or katze or wand or gurke\npush = push_up or push_down or push_left or push_right\n\n=======\nSOUNDS\n=======\n\nsfx0 23445905 (katzenschreck)\nstartgame 90870106\nstartlevel 90870106\nendlevel 78627300\ngurke move 70216507\nkatze move 45785907\n================\nCOLLISIONLAYERS\n================\n\nBackground\nziel\nPlayer, katze, gurke, wand\npush\n======\nRULES\n======\n\n[moving player] [ push ] -> [ moving player ] [ ]\n\nup [ push_up stationary katze | no obstacle ] -> [ | push_up action katze ] again\n+ down [ push_down stationary katze | no obstacle ] -> [ | push_down action katze ] again\n+ left [ push_left stationary katze | no obstacle ] -> [ | push_left action katze ] again\n+ right [ push_right stationary katze | no obstacle ] -> [ | push_right action katze ] again\n\n\n[ > Player | gurke | no obstacle ] -> [ > Player | > gurke | no obstacle ] again\n\n\n[ < player | katze ] -> [ < player | < katze ] again\n\nlate up [ gurke | katze | no obstacle] -> [ gurke | push_up katze | no obstacle] sfx0\nlate down [ gurke | katze | no obstacle] -> [ gurke | push_down katze | no obstacle] sfx0\nlate left [ gurke | katze | no obstacle] -> [ gurke | push_left katze | no obstacle] sfx0\nlate right [ gurke | katze | no obstacle] -> [ gurke | push_right katze | no obstacle] sfx0\n\nlate up [ gurke | katze ] -> [ gurke | push_up katze ]\nlate down [ gurke | katze ] -> [ gurke | push_down katze ]\nlate left [ gurke | katze ] -> [ gurke | push_left katze ]\nlate right [ gurke | katze ] -> [ gurke | push_right katze ]\n\n==============\nWINCONDITIONS\n==============\n\nall katze on ziel\n\n=======\nLEVELS\n=======\n\n(wanna hand make the first few levels)\n\n\nmessage Put your doting cats to bed.\nmessage Level 1/20 \n.....#####\n######...#\n#...o..#.#\n#.p..*o*.#\n##########\n\n\nmessage Who left that cucumber there?\nmessage Level 2/20 \n##########\n#........#\n#........#\n#.g.p.*.o#\n#........#\n#........#\n##########\n\nmessage Level 3/20\n(The only thing cats love more than you is hating cucumbers)\n(not so hard, could be an ok level 2)\n######\n#...o#\n#.#..#\n#*.g.#\n#..p.#\n#....#\n######\n\nmessage Level 4/20\n(almost trivial)\n#######\n#.o...#\n#..g..#\n#.o..p#\n#...*.#\n#.....#\n#..*..#\n#######\n\n\nmessage Level 5/20\n(easy enough - could be level 2?)\n.#######\n.#...*.#\n.#..*..#\n##.p.o.#\n#.g....#\n#o.....#\n########\n\n\n\nmessage Level 6/20\n(reasonable. could be level 2)\n..####...\n###..####\n#....p..#\n#.#.*#m.#\n#....#..#\n#########\n\n\nmessage Level 7/20\n(ok early level 1-2)\n######\n#o...#\n#.m.*#\n#....#\n#.*p.#\n######\n\n\n\nmessage Level 8/20\n(nice level. could be #2 or 3)\n..####.\n###o.##\n#..g..#\n#.#..##\n#*..p#.\n######.\n\n\nmessage Level 9/20\n(nice level. could be level 3/4)\n########\n#...*o.#\n#.*....#\n#..p.g.#\n#####.o#\n....####\n\n\n\n\nmessage Level 10/20\n(haven't solved this yet - tricky / hard to find the solution? but once I tried and concentrated I was able to ?)\n######\n#o..p#\n#.#..#\n#o.g.#\n#*...#\n#..*.#\n######\n\n\nmessage Level 11/20\n(ok late intermediate)\n######\n#po.o#\n#.#g.#\n#*...#\n#....#\n#.*..#\n######\n\n\n\nmessage Level 12/20\n( ok level, but not an ok first level )\n####..\n#*o#..\n#..###\n#.g.p#\n#....#\n#..###\n####..\n\n\nmessage Level 13/20\n(two gurkins! not hard! pleasing!)\n#######\n#...g.#\n#..#..#\n#....g#\n#.*#..#\n##....#\n#o..p.#\n#######\n\n\nmessage Level 14/20\n(ok latish intermediate!)\n#####.\n#o..##\n#....#\n##pg.#\n.##..#\n..##*#\n...###\n\n\nmessage Level 15/20\n(ok late intermediate level)\n#######\n#.o...#\n#..g..#\n#.#...#\n#.o.#.#\n#....*#\n#p.#.*#\n#######\n\n\n\n\n\nmessage Level 16/20\n(bit trial+errory. not high-concept)\n#######\n#.#p..#\n#.**..#\n#.#...#\n#...g##\n#....o#\n#o.#..#\n#######\n\n\nmessage Level 17/20\n(a bit tricky - the solution was not hard but finding it was a bit indirected / trial+errory)\n#######\n##o...#\n#.o#.*#\n#.....#\n#.##..#\n#..g..#\n#.*.p.#\n#######\n\n\n\nmessage Level 18/20\n(unsolved. wtf.)\n..######\n..#....#\n..#..g.#\n####.###\n#..o.##.\n#.#.p.#.\n#...#.#.\n###*..#.\n..#####.\n\n\n\n\nmessage Level 19/20\n(ok hardish level)\n....#########...\n#####..o.o..####\n#.g...#.#.#....#\n#...*...p...*..#\n################\n\n\nmessage Level 20/20\n(intermediate. pleasing)\n......#####\n......#...#\n......#.#.#\n#######g#.#\n#....p..o.#\n#o#*#.#.###\n#......*#..\n#########..\n\nmessage Congratulations. All the cats are in bed, having cucumbers nightmares.\n\n(\n( super hard. do not include)\n......#####\n......#...#\n......#.#.#\n#######.#.#\n#....**...#\n#.#m#.#.###\n#.....po#..\n#########..\n)\n", [1, 3, 3, 0, 1, 0, 2, 2, 3, 0, 1, 0, 0, 0, 2, 3, 0, 1, 2, 2, 2, 1, 1, 0, 3, 3, 2, 3, 0, 1, 0, 0, 0, 0], "background wand:0,0,0,0,0,0,0,\n0,0,0,background:1,1,1,1,\n1,0,0,background ziel:2,2,1,0,\n1,1,0,0,1,0,1,\n0,1,1,0,0,background player:3,1,\n1,1,1,1,0,0,1,\nbackground katze:4,background katze push_up:5,background gurke:6,1,1,0,0,\n0,0,0,0,0,0,0,\n", 35, "1645544413590.2168"] + ], + [ + "Chevron Lodger", + ["title Chevron Lodger\nauthor increpare\nhomepage www.increpare.com\n\n(verbose_logging)\n\ncolor_palette ega\n\nbackground_color #d3beaa\ntext_color #683d15\n(thanks to youAtExample for feedback)\n\n========\nOBJECTS\n========\n\nBackground\n#d3beaa #d3beaa\n00000\n00000\n00100\n00000\n00000\n\n\n\n\nWall\n#7b4b1d #7b4b1d\n00000\n00000\n00100\n00000\n00000\n\n\n\nPlayer_top 1\n#ee8b16\n..0..\n..0..\n.000.\n.000.\n00000\n\n\nplayer_middle 2\n#ee8b16\n\n\nplayer_bottom 3\n#ee8b16\n00000\n00.00\n00.00\n0...0\n0...0\n\n\n\nCrate_top\n#926c3f\n..0..\n..0..\n.000.\n.000.\n00000\n\n\n\ncrate_middle \n#926c3f\n\n\ncrate_bottom\n#926c3f\n00000\n00.00\n00.00\n0...0\n0...0\n\n\n\n\n\n=======\nLEGEND\n=======\n\nplayer = Player_top or player_middle or player_bottom\ncrate = Crate_top or crate_bottom or crate_middle\n\n. = Background\n# = Wall\n\na = crate_top\nb = crate_middle\nc = crate_bottom\n\nplayer_or_crate = player or crate\n\nobstacle = wall or player or crate\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx0 48406107 (snap)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n(level generation QOL things. can comment out later)\ndown [ playeR_top | no player] -> [ Player_top | player_bottom ]\ndown [ Crate_top | no player ] -> [ Crate_top | crate_bottom ]\n\n\ndown [ > player_bottom | Crate_top ] -> [ | player_middle ] sfx0\n\nup [ > player_top | crate_bottom ] -> [ | player_middle ] sfx0\n\nhorizontal [ > Player | Crate ] -> [ > Player | > Crate ]\n\n\n\ndown [ left Crate_top | stationary crate_bottom ] -> [ left Crate_top | left crate_bottom ]\n+ down [ stationary Crate_top | left crate_bottom ] -> [ left Crate_top | left crate_bottom ]\n+ horizontal [ > crate | stationary crate ] -> [ > crate | > crate ] \n\ndown [ right Crate_top | stationary crate_bottom ] -> [ right Crate_top | right crate_bottom ]\n+ down [ stationary Crate_top | right crate_bottom ] -> [ right Crate_top | right crate_bottom ]\n+ horizontal [ > crate | stationary crate ] -> [ > crate | > crate ] \n\n[ > player_or_crate | wall ] -> cancel\n\nlate vertical [ player_middle | crate_middle ] -> [ player_middle | player_middle ]\n\nlate down [ player_middle | crate_bottom ] -> [ player_middle | player_bottom ]\nlate up [ player_middle | crate_top ] -> [ player_middle | player_top ]\n\n==============\nWINCONDITIONS\n==============\n \nno crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 6\n\n(ok level 1)\n#######\n#.....#\n#.#...#\n#a....#\n#c..#.#\n#.1a..#\n#.3c..#\n#######\n\nmessage Level 2 of 6\n\n(ok level 2)\n#########\n#...a...#\n#...c1..#\n#.#.#3..#\n#...a...#\n#...c.a.#\n##..#.c.#\n#########\n\n\nmessage Level 3 of 6\n\n\n(ok level 2.5?)\n###########\n######...##\n######.#.##\n#####....##\n#####....1#\n#...a..#.3#\n#...c...a.#\n#..a....c.#\n#..c...####\n###########\n\n\n(\n(weirdly confusing - could be a level 2.5 ? but could be too similar to 3)\n#########\n#....1a.#\n#....3c.#\n#..#..#.#\n##......#\n#..aa...#\n#..cc...#\n#########\n)\n\nmessage Level 4 of 6\n\n(ok level 3? too similar to level 1 to follow it?)\n##########\n#........#\n#........#\n#..#.#...#\n#.a.1....#\n#.c.3#.#.#\n#..#..a..#\n#.....c..#\n##########\n\nmessage Level 5 of 6\n\n(NICE LEVEL I used my brain and solved it)\n###########\n#######...#\n#####.....#\n#####...a.#\n#.a1....c.#\n#.c3...#..#\n#.....a...#\n#.....c...#\n###########\n\nmessage Level 6 of 6\n\n(perfectly ok level! lots of nice considerations. good enough!)\n############\n#######....#\n######.....#\n######..a#.#\n######..c..#\n######.....#\n#...a.aa.#.#\n#.1.c.cc...#\n#.3......a.#\n###......c.#\n############\n\nmessage Congratulations. You know your chevrons well.\n\n(HARD. TRY AGAIN) \n(SOLVED IT DON'T LIKE IT)\n(#############\n#######.....#\n#######1....#\n#######3..#.#\n#######..#..#\n#######.a.a.#\n#.....a.c.c.#\n#.....c.....#\n#...a.....a.#\n#...c.....c.#\n#############\n\n)\n\n\n(\n(meh)\n#########\n#..a....#\n#..c..a.#\n#....1c.#\n#...a3#.#\n#...c...#\n#.......#\n#########\n)\n\n(\n(meh)\n#########\n#....a1.#\n##...c3.#\n#.#..#..#\n#....##.#\n#.#..a..#\n##...c..#\n##..##..#\n#.......#\n#..a....#\n#..c.a..#\n#.#.#c..#\n#.......#\n#########\n)\n\n((no: meh)\n(ok!)\n#####\n#.a.#\n#ac.#\n#c..#\n#..a#\n#..c#\n#..##\n#..a#\n#..c#\n#.a.#\n#1c.#\n#3..#\n#...#\n#####\n)\n(\n(Eeeh)\n#####\n#a..#\n#c.##\n#.a.#\n#.c.#\n#.a.#\n#.ca#\n#.1c#\n#.3a#\n#a.c#\n#ca.#\n#.c.#\n#...#\n#####\n)\n\n(\n(meh)\n#####\n#.a.#\n#1c.#\n#3..#\n#...#\n#.#.#\n#..##\n#...#\n#...#\n#.a.#\n#.c.#\n#aaa#\n#ccc#\n#####\n)\n(\n(too easy)\n#####\n#aa.#\n#cca#\n#1ac#\n#3c.#\n#...#\n#.a.#\n#.c.#\n#a..#\n#c..#\n#.#.#\n#.a.#\n#.c.#\n#####)\n\n(\n#############\n#######.....#\n#######.....#\n#######.....#\n#######.....#\n#######.....#\n#...........#\n#...........#\n#...........#\n#...........#\n#############\n\n)\n(\n(non trivial and has an idea but you can probably find better)\n#############\n#######..#..#\n#######.#...#\n#######....1#\n#######.a..3#\n#######.c.a.#\n#.#....a..c.#\n#......c....#\n#.....a...a.#\n#.....c...c##\n#############\n)\n\n\n(insoluble ? wtf? oh maybe old version that didn't transfer movements correctly)\n(#############\n########.a#.#\n#######a.c###\n#######c....#\n#######1....#\n#######3....#\n#.....a..#..#\n#....ac.....#\n#....c....a.#\n#.........c.#\n#############\n)\n(\n(meh)\n#############\n#######...1.#\n#######..a3.#\n#######..c..#\n#######.....#\n#######.....#\n#.....a.a...#\n#.....c.c..a#\n#.....a....c#\n#.....c....##\n#############\n)\n\n(meh)(\n#############\n#######..a..#\n#######.1c..#\n#######a3.a.#\n#######c..c.#\n#######a.##.#\n##.....c....#\n#...........#\n#.a.........#\n#.c.#.......#\n#############\n)\n\n(90% meh)\n(\n#############\n#######.#...#\n#######.....#\n#######....##\n#######...1.#\n#######.a.3.#\n#...aa.ac...#\n#...cc.c....#\n##.......a..#\n##.....##c..#\n#############)\n\n(meh)\n(\n#############\n#######.#...#\n#######.....#\n########.#.a#\n########aa1c#\n#######.cc3.#\n#....a......#\n#....c......#\n#.#.......a.#\n#.#.......c.#\n#############\n)\n\n(\n(meh)\n#############\n#######a.a..#\n#######c.c..#\n#######.a.#.#\n#######.c..##\n#######.....#\n#..........##\n#....#...a..#\n#....a...c.1#\n##...c..#..3#\n#############\n)\n\n\n\n(insoluble :[\n#############\n#######.a...#\n#######.c...#\n#######.#...#\n#######.....#\n#######..a..#\n#.a......c1##\n#.c.......3.#\n#...a....a..#\n#...c.#..c..#\n#############\n)\n(insoluble :[\n#############\n#######.#...#\n#######.....#\n#######..#..#\n#######.....#\n#######.....#\n#a#.1...a...#\n#c..3a..c.a.#\n#....c.a..c.#\n#......c....#\n#############\n)\n(insoluble :[\n#############\n#######..#..#\n########....#\n#######.1...#\n#######.3...#\n#######...a.#\n#.......aac.#\n#....a..cc.##\n#....ca.....#\n#.....c....##\n#############\n)\n(trivial\n#############\n#######.1...#\n########3...#\n#######.#...#\n#######..aa.#\n########.cca#\n#........a.c#\n##.......c..#\n#....#..a...#\n#.......c...#\n#############\n)\n(almost trivial\n#############\n#######...#.#\n#######.a...#\n#######.c...#\n#######.a...#\n#######.caa.#\n#.#.1....cc.#\n#...3....a..#\n#.#.a....c..#\n#.##c.......#\n#############\n)\n(trivial\n#############\n#######.....#\n#######.....#\n########..a.#\n#######.1.c.#\n#######.3...#\n#....a.#a...#\n#....c..c.a.#\n##...a.a..c.#\n#....c.c....#\n#############\n)\n(trivial\n#############\n#######.a...#\n#######.c...#\n#######.....#\n#######.....#\n#######.....#\n#......1aa..#\n#.....#3cc..#\n##..a.a.....#\n#...c.c.....#\n#############\n)\n\n(trivial\n#############\n#######.##..#\n#######.....#\n#######.a...#\n#######.c...#\n#######.....#\n#...a1....a.#\n#...c3....c.#\n#a......aa..#\n#c......cc..#\n#############\n)\n\n(\n(hard but also meh)\n#############\n########....#\n#######.a.1.#\n#######.c.3a#\n#######....c#\n#######...a.#\n#.....a..ac.#\n#.....c..c..#\n#........#a.#\n#.#.#.....c.#\n#############\n)\n(unsolvable :'[\n#############\n#######..#..#\n########....#\n#######.1...#\n#######.3...#\n#######...a.#\n#.......aac.#\n#....a..cc.##\n#....c.a....#\n#......c...##\n#############\n)\n\n((meh)\n(there's an idea to this level, which I like - could it be expanded?)\n#############\n########...##\n#######a..1a#\n#######c..3c#\n#######....a#\n#######....c#\n#aa.........#\n#cc.........#\n#...........#\n#...........#\n#############\n)\n\n(meh\n#############\n########....#\n#######.....#\n#######...#.#\n#######...a.#\n#######...ca#\n#........a.c#\n#...1....c.##\n#...3..a..a.#\n#......c..c.#\n#############\n)\n(Tricky?)\n(meh)\n(\n#############\n#######.....#\n#######.a...#\n#######.c..a#\n#######....c#\n#######.1..a#\n#.a.....3#.c#\n#.c.......a.#\n#.........c.#\n#........#.##\n#############\n)\n(\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#####\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#####\n\n#####\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#####\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n)\n(meh it's ok but I already have somethign like this?)\n(\n#########\n#.a.....#\n#.c.....#\n#...#.#1#\n#......3#\n#.#.a...#\n#..#c...#\n#########\n)\n(\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n##.....##\n##.....##\n###...###\n###...###\n####.####\n####.####\n#########\n\n(meh)\n#########\n#.#.....#\n#.a.....#\n#.....#.#\n#..#.#..#\n#..a1a..#\n#.......#\n##.....##\n##.....##\n###...###\n###...###\n####.####\n####.####\n#########\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.1..a.a..#\n#.3..b.b..#\n#....c.c..#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n)\n(meh)\n(\n#########\n###...###\n##.....##\n#.......#\n#.......#\n#.......#\n#.......#\n##aa1aa##\n##cc3cc##\n###aaa###\n###ccc###\n####a####\n####c####\n#########\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#...1...#\n#...3...#\n##aaaaa##\n##ccccc##\n###aaa###\n###ccc###\n####a####\n####c####\n#########\n\n#########\n#########\n####.####\n###...###\n##.....##\n#.......#\n#.......#\n##aa1aa##\n##cc3cc##\n###aaa###\n###ccc###\n####a####\n####c####\n#########\n)\n\n(\nTRANSFORM\n\nchoose 1 down [ no obstacle | no obstacle ] -> [ player_top | player_bottom ]\nchoose 5 down [ no obstacle | no obstacle ] -> [ crate_top | crate_bottom ]\nchoose 10 [ no crate no player ] -> [ wall ]\n\n----\n\n\n(choose 1 option 0.5 [ wall ] -> []\n+ option 0.5 [ no obstacle ] -> [ wall ])\n\nchoose 5 option 0.2 [ no obstacle ] -> [ wall ]\n+ option 0.2 []->[]\n\nchoose 5 down [ no obstacle | no obstacle ]-> [ crate_top | crate_bottom] \nchoose 1 down [ no obstacle | no obstacle ] -> [ player_top | player_bottom]\n(choose 1 down [ no obstacle | no obstacle ] [crate_top|crate_bottom]-> [ crate_top | crate_bottom] [|])\n\n)\n", [3, 2, 2, 1, 1, 1, 0, 3, 3, 2, 3, 3, 0, 0, 0, 3, 0, 3, 0, 3, 3, 2, 2, 2, 0, 1, 1, 3, 2, 2, 2, 1, 1, 0, 0, 1, 1, 2, 1, 1, 3, 3, 3, 3, 0, 0, 0, 0, 3, 3, 3, 2, 1, 2, 1, 1, 1, "undo", "undo", 3, 0, 1, 1, 2, 1, 1], "background wall:0,0,0,0,0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,0,0,0,0,0,\nbackground crate_top:2,background crate_bottom:3,1,1,0,0,0,0,0,background player_top:4,background player_middle:5,\n5,background player_bottom:6,0,0,0,0,0,1,1,1,1,\n0,0,0,1,1,1,1,1,1,0,0,\n0,1,1,1,1,1,1,0,0,1,1,\n1,1,0,1,1,0,0,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,\n1,0,0,0,0,0,0,0,0,0,0,\n", 9, "1645544442907.0366"] + ], + [ + "Two-Tone Tango", + ["title Two-Tone Tango\nauthor increpare\nhomepage www.increpare.com\n\nrequire_player_movement\n\n\n========\nOBJECTS\n========\n\nBackground\n#58875a\n\n\nTarget\ntransparent #b8ca58\n00000\n00100\n01110\n00100\n00000\n\n\nWall\n#906f80 #5f4351\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nlightblue\n\nFreund\n#355278\n\nCrate\n#b39b2a transparent\n00000\n01110\n01110\n01110\n00000\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nf = Freund\n* = Crate\n@ = Crate and Target\nO = Target\n\npusher = player or freund or crate\n\nblocker = player or freund or crate or wall\n=======\nSOUNDS\n=======\n\nCrate MOVE 26816907\nsfx1 15668107 (disconnect)\nsfx2 62739107 (connect)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, freund, Wall, Crate\n\n======\nRULES\n======\n\n[ up player | Freund ] -> [ up player | up Freund ]\n[ down player | Freund ] -> [ down player | down Freund ]\n[ left player | Freund ] -> [ left player | left Freund ]\n[ right player | Freund ] -> [ right player | right Freund ]\n\n\nvertical [ up freund | stationary freund ] -> [ up freund | up freund ]\nvertical [ down freund | stationary freund ] -> [ down freund | down freund ]\nvertical [ left freund | stationary freund ] -> [ left freund | left freund ]\nvertical [ right freund | stationary freund ] -> [ right freund | right freund ]\n\n(forward propagation)\n[ > pusher | Crate ] -> [ > pusher | > Crate ]\n\n\n(backwards propagation)\n\n[ > pusher | stationary blocker ] -> [ stationary pusher | stationary blocker ]\n+ vertical [ up freund | stationary freund ] -> [ stationary freund | stationary freund ]\n+ vertical [ down freund | stationary freund ] -> [ stationary freund | stationary freund ]\n+ vertical [ left freund | stationary freund ] -> [ stationary freund | stationary freund ]\n+ vertical [ right freund | stationary freund ] -> [ stationary freund | stationary freund ]\n\n(again forwards propagation)\n[ stationary pusher | > crate ] -> [ stationary pusher | stationary crate ]\n\n[stationary player ]-> cancel\n\n[ < player | stationary freund ] -> sfx1\n[ > player | | stationary freund ] -> sfx2\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1/8\n(could be ok level 1?)\n############\n#..........#\n#....*....o#\n#..f...p...#\n#..f#..p#..#\n############\n\n\nmessage Level 2/8\n(pleasant early)\n#######\n#..f..#\n#..f..#\n#o@...#\n#..p*.#\n#..p#.#\n##....#\n#######\n\n\nmessage Level 3/8\n(ok level 3? no 2)\n######\n#...o#\n##.f##\n#..f.#\n#..*.#\n#p...#\n#p...#\n######\n\n\nmessage Level 4/8\n(Really nice intermediate level!)\n#########\n#p..#...#\n#p....#.#\n#.*.....#\n#....f..#\n#...#f.o#\n#...#...#\n#########\n\n( (Easy but not bad. ok first level?) )\n( ###### )\n( #.#..# )\n( #.o..# )\n( #f...# )\n( #f.*p# )\n( #..*p# )\n( #...o# )\n( ###### )\n\n\n( (maybe ok early level? actually kinda tricky? maybe leave out?) )\n( ########## )\n( #..*...o.# )\n( #...f@...# )\n( #p..f....# )\n( #p..#....# )\n( ########## )\n\n( (p. easy. maybe for start of game. maybe leave out? not outstanding, just ok) )\n( ###### )\n( #o...# )\n( #..*o# )\n( #..p.# )\n( #.fp*# )\n( #.f..# )\n( #.*o.# )\n( ###### )\n\n\n( (easy but ok, maybe level 2-3? so lala) )\n( ########## )\n( #..f..o*.# )\n( #o.f..*p.# )\n( #@.....p.# )\n( ##.....### )\n( ########## )\n\n( (pretty ok? level 1 or 2? okish) )\n( ###### )\n( #..f.# )\n( #p.f.# )\n( #p*..# )\n( #.*.o# )\n( #...*# )\n( #o..o# )\n( ###### )\n\n\n( (Early hard. fine? not too memeorable meh) )\n( ###### )\n( #...o# )\n( #o.o*# )\n( #..f.# )\n( #**f.# )\n( #..p.# )\n( #..p.# )\n( ###### )\n\n\nmessage Level 5/8\n(a bit tricky but I could reason through it, OK)\n######\n#.#.p#\n#...p#\n#o..*#\n#.**o#\n#.f.o#\n#.f..#\n######\n\n\n\n\nmessage Level 6/8\n(late. pretty fun! nice to figure out / work through, if not exactly a lynchpin level)\n######\n#...o#\n#....#\n#...f#\n#..*f#\n#p**o#\n#p.o.#\n######\n\n\nmessage Level 7/8\n(INTERESTING intermediate. got stuck for a weird amount of time lol)\n######\n#o*.o#\n#p..f#\n#p*#f#\n#.*..#\n#....#\n#..o.#\n######\n\n\nmessage Level 8/8\n(funny! late intermediate/early late difficulty. definitely include)\n######\n#p...#\n#p...#\n##*.@#\n#f...#\n#fo..#\n#o.*.#\n######\n\nmessage Congratulations! You are the master of tango.\n\n( (got weirdly stuck for a while, but not hard - late early) )\n( ###### )\n( #...o# )\n( #p...# )\n( #p.@.# )\n( #..*.# )\n( #...f# )\n( #...f# )\n( ###### )\n\n( (ok intermediate? feel like I've solved it before though ,but dont' remmber the solution. maybe pass on this one?) )\n( ####### )\n( #.....# )\n( #.....# )\n( #....p# )\n( ##*..p# )\n( #..f@## )\n( #..f.o# )\n( ####### )\n\n( (easy but not appropriate for eearly game IMO. leave out) )\n( ########## )\n( #o.f...*p# )\n( #..f.o*.p# )\n( #........# )\n( ##.#.....# )\n( ########## )\n\n\n( (Easy ish but not so interesting/useful as intro level?) )\n( ######### )\n( #..o*f.o# )\n( #...*fo*# )\n( #p......# )\n( #p......# )\n( ######### )\n\n( (don't like can realize mistake at the end and need to backtrack) )\n( ########## )\n( ##..o..*p# )\n( #.......p# )\n( #...**.f.# )\n( ##..o.of.# )\n( ########## )\n\n( (trivial) )\n( ########## )\n( #.....po.# )\n( #f..*.p..# )\n( #f.....*.# )\n( #..@.o...# )\n( ########## )\n\n( (trivial) )\n( ########## )\n( #...*o..f# )\n( #...@.#.f# )\n( #p.....*.# )\n( #p......o# )\n( ########## )\n\n\n( (meh. not hard. not fun for me) )\n( ########## )\n( ##...pof.# )\n( #...*p.f.# )\n( #.o...*..# )\n( #..o...*.# )\n( ########## )\n\n\n\n( (perfectly chill/lovely/not hard. wtf? I guess i mistranscribed) )\n( ###### )\n( ##...# )\n( ##...# )\n( ##...# )\n( ##...# )\n( ##p..# )\n( #fp..# )\n( #f.*.# )\n( #o..## )\n( ###### )\n\n\n\n( (meh) )\n( ######### )\n( #....po.# )\n( #...#p..# )\n( ##*.....# )\n( #....f.## )\n( #...#f..# )\n( #...#.#.# )\n( ######### )\n\n( (could be ok as intermediate level? not sure it's conceptually sharp though, but I could solve it with my brain) )\n( ###### )\n( #....# )\n( #..o.# )\n( #p**f# )\n( #po*f# )\n( #..*o# )\n( #o..## )\n( ###### )\n\n\n( (trivialish/boring) )\n( ######## )\n( ####...# )\n( ####...# )\n( ####...# )\n( ####..p# )\n( ####*op# )\n( #f*....# )\n( #f.....# )\n( #o.....# )\n( #..o*..# )\n( ######## )\n\n( (trivialish/boring) )\n( ######## )\n( ####...# )\n( ####.op# )\n( ####.op# )\n( ####.*.# )\n( ####*..# )\n( #......# )\n( #f.....# )\n( #fo*...# )\n( #......# )\n( ######## )\n\n( (hard work, accidentally found solution. skip it) )\n( ######## )\n( ####...# )\n( ####...# )\n( ####...# )\n( ####.o.# )\n( ####.p.# )\n( #.f..p*# )\n( #.f..*.# )\n( #..o*.o# )\n( #......# )\n( ######## )\n\n( (trivial) )\n( ######## )\n( ####...# )\n( ####f..# )\n( ####fo.# )\n( ####...# )\n( ####.*.# )\n( #....o.# )\n( #.*..@p# )\n( #.....p# )\n( #......# )\n( ######## )\n\n\n\n( (trivial) )\n( ######## )\n( ####...# )\n( ####o*o# )\n( ####p..# )\n( ####p..# )\n( ####.*.# )\n( #...o.*# )\n( #.f....# )\n( #.f....# )\n( ######## )\n\n( (trivialish. leave it) )\n( ######## )\n( ####...# )\n( ####...# )\n( ####*o.# )\n( ####*..# )\n( ####...# )\n( #..f.*p# )\n( #..f..p# )\n( #....oo# )\n( ######## )\n\n( (can't figure it out. try solve again later. meh solved it what an anticlimax. screw this level.) )\n( ###### )\n( #f*o.# )\n( #f...# )\n( #*p*o# )\n( #.p*.# )\n( #oo..# )\n( #....# )\n( ###### )\n\n\n( \n\n\n########\n####...#\n####...#\n####...#\n####...#\n####...#\n#......#\n#......#\n#......#\n#......#\n########\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n##########\n\n############\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n\n##########\n######...#\n######...#\n######...#\n######...#\n######...#\n#........#\n#........#\n#........#\n##########\n\n########\n####...#\n####...#\n####...#\n####...#\n####...#\n#......#\n#......#\n#......#\n########\n)\n(transformation\n\nchoose 5 [ ] -> [ wall ]\nchoose 1 down [ no blocker | no blocker ] -> [ player | player ]\nchoose 1 down [ no blocker | no blocker ] -> [ freund | freund ]\nchoose 2 down [ no blocker ] -> [ crate ]\nchoose 2 down [ no wall no player no freund no target ] -> [ target ]\n)\n", [0, 2, 2, 1, 3, 0, 0, 0, 3, "restart", 0, 1, "restart", 2, 0, 1, 1, 1, 0, 0, 0, 3, 3, 2, 2, 1, 3, 2, 1, 0, 0, 0, 3, 3, 2, 1, 3, 2, 1, 2, 2, 1], "background wall:0,0,0,0,0,0,0,\n0,0,background:1,1,background crate target:2,1,1,\n0,0,0,1,1,background target:3,background crate:4,\nbackground player:5,5,0,0,1,1,1,\n1,1,1,0,0,1,1,\n1,1,0,1,0,0,1,\n1,1,background freund:6,6,1,0,0,\n0,0,0,0,0,0,0,\n", 3, "1645544569499.8286"] + ], + [ + "Hole-Stuffer", + ["title Hole-Stuffer\nauthor increpare\nhomepage www.increpare.com\n\n\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\n\nWall\n#493c2b #664b28\n00000\n01000\n00100\n00010\n00000\n \n\n\nPlayer\ngreen\n\n\n\nwintoken\ntransparent\n\nrandommoved\ntransparent\n\n\nplayer_1\n#2f484e #c62a6f #852e55 #af2f68\n01111\n23333\n23313\n23133\n23333\n\nplayer_2\n#c62a6f #af2f68 #852e55 #ffffff\n00000\n11211\n12021\n20302\n22022\n\nplayer_3\n#c62a6f #2f484e #af2f68\n00001\n22220\n20220\n22020\n22220\n\nplayer_4\n#852e55 #af2f68 #c62a6f\n01212\n01212\n01212\n01212\n01212\n\n\nplayer_5\n#852e55 #af2f68 #c62a6f #2f484e\n01212\n01212\n01212\n01112\n30003\n\n\n\ncrate\n#2f484e #fca556 #bd5d07 #eb8931\n01110\n23331\n23331\n23331\n02220\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = wall and randommoved\n\nobstacle = wall or crate\npusher = crate or player\n\n\nsprite_player = player_1 or player_2 or player_3 or player_4 or player_5 \n\n\nsprite = sprite_player \n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nwintoken\nrandommoved\nsprite\n\n\n======\nRULES\n======\n\n\n[ stationary randommoved ] [ > pusher | stationary Crate ] -> [ action randommoved] [ > pusher | > Crate ]\n\n[ action randommoved ] [ > pusher | stationary Crate ] -> cancel\n\n[ > pusher | wall ] -> cancel \n\n\n\nlate [ sprite ] -> []\n\n\nlate down [ no player | player | obstacle | obstacle | obstacle ] -> [ | player wintoken | obstacle | obstacle | obstacle ] again\n\n\n\n\nlate right [ player | player | player ] -> [ player player_1 | player player_2 | player player_3 ]\nlate down [ player_1 | | | ] -> [ player_1 | player_4 | player_4 | player_5 ]\nlate down [ player_3 | | | ] -> [ player_3 | player_4 | player_4 | player_5 ]\n==============\nWINCONDITIONS\n==============\n\nsome wintoken\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 4\n\n@###########\n#..........#\n#..........#\n#..........#\n#.ppp......#\n#.p.p......#\n#.p.p..***.#\n#.p.p......#\n#..........#\n#..........#\n############\n\nmessage Level 2 of 4\n\n\n@########\n#..ppp..#\n#..p.p..#\n#..p.p..#\n#..p.p..#\n#..***..#\n#.......#\n#.......#\n#########\n\n\nmessage Level 3 of 4\n\n@######\n#.....#\n#.....#\n#.....#\n#.....#\n#...*.#\n#ppp..#\n#p.p*.#\n#p.p..#\n#p.p*.#\n#######\n\nmessage Level 4 of 4\n\n@########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#..***..#\n#..ppp..#\n#..p.p..#\n#..p.p..#\n#..p.p..#\n#########\n\nmessage Congratulations, you aul hole-stuffer.\n\n\n\n", [3, 2, 2, 1, 1, 1, 0, 0, 1, 1, 2, 1, 1, 0, 3, 3, 3, 2, 1, 1, 2, 3, 3, 2, 1, 1, 0, 0, 1, 1, 3, 3, 0, 1, 1, 2, 2, 1, 3, 2, 1, 1], "background randommoved wall:0,background wall:1,1,1,1,1,1,1,1,\n1,background:2,2,2,2,background crate:3,2,2,1,\n1,2,2,2,background player player_1:4,background player player_4:5,5,background player player_5:6,1,\n1,2,2,2,background player player_2:7,2,2,3,1,\n1,2,2,2,background player player_3:8,5,5,6,1,\n1,2,2,2,2,2,2,2,1,\n1,2,2,2,2,3,2,2,1,\n1,2,2,2,2,2,2,2,1,\n1,1,1,1,1,1,1,1,1,\n", 3, "1645544598726.4905"] + ], + [ + "Wand Spinner", + ["title Wand Spinner\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #5b6ee1\n\n(thanks to bluemelon555 for the assistance, and ggn2, and bvoq )\n\n\n\n========\nOBJECTS\n========\n\nBackground\n#5b6ee1\n\ncrate\n#abb5f1 #5f4a18\n01110\n1...1\n1...1\n1...1\n01110\n\nTarget_h\ntransparent #c71fa9 transparent transparent\n00000\n11111\n22223\n11111\n00000\n\nTarget_v\ntransparent #c71fa9 transparent transparent\n01210\n01210\n01210\n01210\n01210\n\nWall\n#3f3f74\n\nPlayer\n#5b6ee1 #5fcde4 #000000\n01110\n12121\n11111\n11211\n01110\n\nstick_w 1\n#abb5f1 #323c39\n.....\n.....\n00111\n.....\n.....\n\nstick_nw 2\n#abb5f1 #323c39\n.....\n.0...\n..0..\n...1.\n....1\n\nstick_n 3\n#abb5f1 #323c39\n..0..\n..0..\n..1..\n..1..\n..1..\n\nstick_ne 4\n#ffffff #abb5f1 #323c39\n.....\n...1.\n..1..\n.2...\n2....\n\n\nstick_e 5\n#323c39 #abb5f1\n.....\n.....\n00011\n.....\n.....\n\n\nstick_se 6\n#323c39 #abb5f1\n0....\n.0...\n..1..\n...1.\n.....\n\nstick_s 7\n#323c39 #abb5f1\n..0..\n..0..\n..0..\n..1..\n..1..\n\nstick_sw 8\n#323c39 #abb5f1\n....0\n...0.\n..1..\n.1...\n.....\n\nmoved\ntransparent\n\ncon_ne\ntransparent\n\ncon_nw\ntransparent\n\ncon_se\ntransparent\n\ncon_sw\ntransparent\n\ntl\ntransparent\n\n\n\n=======\nLEGEND\n=======\nstick = stick_w or stick_nw or stick_n or stick_ne or stick_e or stick_se or stick_s or stick_sw\nstick_h = stick_e or stick_w\n\nstick_v = stick_n or stick_s\n\n. = Background\n# = Wall\nP = Player\n\n\n9 = target_h\n0 = Target_v\n\ntarget = target_h or Target_v\no = crate\nplayer_or_crate = player or crate\nstick_or_crate = stick or crate\nplayer_or_crate_or_stick = player or crate or stick\n\n@ = wall and tl\n\nobstacle = player or stick or crate or wall\n\na = target_v and stick_n\ns = target_v and stick_s\nd = target_h and stick_w\nf = target_h and stick_e\n\nz = target_v and stick_w\nx = target_v and stick_e\nc = target_h and stick_n\nb = target_h and stick_s\n\n=======\nSOUNDS\n=======\n\nstick move 12743307\nendlevel 58303907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, stick,crate\nmoved\ncon_ne, con_nw, con_se, con_sw\ntl\n\n\n======\nRULES\n======\n\n\n\n[ > player_or_crate | stick_or_crate ] -> [ > player_or_crate | > stick_or_crate ]\n\ndown [ left stick_n no moved | stick_s no moved ] -> [ left stick_nw moved | stick_se moved ]\n+ down [ right stick_n no moved | stick_s no moved ] -> [ right stick_ne moved | stick_sw moved ]\n+ down [ stick_n no moved | left stick_s no moved ] -> [ stick_ne moved | left stick_sw moved ]\n+ down [ stick_n no moved | right stick_s no moved ] -> [ stick_nw moved | right stick_se moved ]\n\n+ right [ down stick_w no moved | stick_e no moved ] -> [ down stick_sw moved | stick_ne moved ]\n+ right [ up stick_w no moved | stick_e no moved ] -> [ up stick_nw moved | stick_se moved ]\n+ right [ stick_w no moved | down stick_e no moved ] -> [ stick_nw moved | down stick_se moved ]\n+ right [ stick_w no moved | up stick_e no moved ] -> [ stick_sw moved | up stick_ne moved ]\n\n\n+ right [ right stick_nw no moved | ] -> [ right stick_n moved | right con_ne ]\n+ right [ up stick_nw no moved | ] -> [ right stick_n moved | right con_ne ]\n+ down [ right con_ne | stick_se ] -> [ | stick_s ]\n\n+ down [ down stick_nw no moved | ] -> [ down stick_w moved | down con_se ]\n+ down [ left stick_nw no moved | ] -> [ down stick_w moved | down con_se ]\n+ right [ down con_se | stick_se ] -> [ | stick_e ]\n\n+ left [ left stick_se no moved | ] -> [ left stick_s moved | left con_se ]\n+ left [ down stick_se no moved | ] -> [ left stick_s moved | left con_se ]\n+ up [ left con_se | stick_nw ] -> [ | stick_n ]\n\n+ up [ up stick_se no moved | ] -> [ up stick_e moved | up con_ne ]\n+ up [ right stick_se no moved | ] -> [ up stick_e moved | up con_ne ]\n+ left [ up con_ne | stick_nw ] -> [ | stick_w ]\n\n\n+ left [ left stick_ne no moved | ] -> [ left stick_n moved | left con_nw ]\n+ left [ up stick_ne no moved | ] -> [ left stick_n moved | left con_nw ]\n+ down [ left con_nw | stick_sw ] -> [ | stick_s ]\n\n+ down [ down stick_ne no moved | ] -> [ down stick_e moved | down con_se ]\n+ down [ right stick_ne no moved | ] -> [ down stick_e moved | down con_se ]\n+ left [ down con_se | stick_sw ] -> [ | stick_w ]\n\n+ right [ right stick_sw no moved | ] -> [ right stick_s moved | right con_sw ]\n+ right [ down stick_sw no moved | ] -> [ right stick_s moved | right con_sw ]\n+ up [ right con_sw | stick_ne ] -> [ | stick_n ]\n\n+ up [ up stick_sw no moved | ] -> [ up stick_w moved | up con_nw ]\n+ up [ left stick_sw no moved | ] -> [ up stick_w moved | up con_nw ]\n+ right [ up con_nw | stick_ne ] -> [ | stick_e ]\n\n\n+ [ stationary tl ] [ > crate | stationary stick_or_crate ] -> [ action tl ] [ > crate | > stick_or_crate ]\n+ [ action tl ] -> [ stationary tl ]\n\n+ [ stationary tl ] [ > stick | stationary stick_or_crate ] -> [ action tl ] [ > stick | > stick_or_crate ]\n+ [ action tl ] -> [ stationary tl ]\n\n[ > player_or_crate_or_stick | wall ] -> cancel\n\nlate [moved]->[]\n\n\n==============\nWINCONDITIONS\n==============\nall Target_h on stick_h \nall Target_v on stick_V\n\n=======\nLEVELS\n=======\n\n\nmessage 1 / 18\n(ok level 1?)\n@###..\n#..#..\n#..###\n#.399#\n#.7.p#\n#..###\n####..\n\n\nmessage 2 / 18\n(kinda easy but not bad?)\n@####.\n#0..##\n#03..#\n##7..#\n.##p.#\n..##.#\n...###\n\n\nmessage 3 / 18\n(easy but fun manipulation? could be level 1 but maybe too constrained?)\n@#####.\n#.3..##\n#.7..0#\n#993p0#\n#..7..#\n#######\n\n( (level 2?) )\n( @##### )\n( #99..# )\n( #.#..# )\n( #....# )\n( #.15.# )\n( #p...# )\n( ###### )\n\n\nmessage 4 / 18\n(ok late-early)\n@######\n#.3.p.#\n#.7..0#\n#1f9.0#\n#.....#\n#######\n\nmessage 5 / 18\n(could be ok easy level)\n.######\n.#99#.#\n@#.15.#\n#.3.#.#\n#pb9..#\n#######\n\nmessage 6 / 18\n(easy enough to think through?)\n@####.\n#..3##\n#.9b.#\n#df..#\n#p...#\n######\n\nmessage 7 / 18\n(simple-enough)\n@#####\n#..a.#\n#15s.#\n#..#0#\n#p..0#\n######\n\n\n\nmessage 8 / 18\n(late-easy kinda fine?)\n@######\n#.#.3.#\n#..0b9#\n#p.z5.#\n#...#.#\n#######\n\n( (not too hard but kinda fun?) )\n( @.#####.... )\n( ###99.##### )\n( #.99...33.# )\n( #.#...#77.# )\n( #.....#..p# )\n( ########### )\n\nmessage 9 / 18\n(reduced above. still solvable)\n.@####....\n##99.#####\n#99...33.#\n#....#77.#\n######..p#\n.....#####\n\nmessage 10 / 18\n@#####.#####\n#...3###.0.#\n#...7....0.#\n#####.p.df.#\n....########\n\nmessage 11 / 18\n(easy. feeling lukewarm about it)\n@######\n#.a...#\n#.s.#.#\n#015..#\n#0p#.##\n#######\n\n\nmessage 12 / 18\n(ok free early level?)\n@#######\n#.3....#\n#.7..99#\n#.3.p.0#\n#.7..#0#\n########\n\nmessage 13 / 18\n(not hard. kinda fun/silly)\n@########\n#p......#\n#.#.#a#.#\n#.15.s99#\n#.#.#.#.#\n#.......#\n#########\n\nmessage 14 / 18\n(ok-ish intermediate level)\n@######\n#.#03.#\n#.307.#\n#.7pc9#\n#99.7.#\n#######\n\n\nmessage 15 / 18\n(slightly tricky + fun trick to notice)\n@#####\n#..3.#\n#.#7.#\n#00.a#\n#0a.s#\n#.7p.#\n######\n\nmessage 16 / 18\n(intermediate?)\n@####.\n#.9c##\n#.9b0#\n#1530#\n#p.7.#\n######\n\nmessage 17 / 18\n(kinda chilll / ok!)\n@######\n#.....#\n#.zfc.#\n#.a.sp#\n#.bdx.#\n#.....#\n#######\n\nmessage 18 / 18\n(hardish but ok?)\n.@####\n##.3.#\n#.07.#\n#.0df#\n#p...#\n######\n\nmessage Congratulations! You've graduated from the college of magicians' assistants with flying colours! \n\n( (I like this level) )\n( @###### )\n( #.a.### )\n( #.sp### )\n( #.3.0.# )\n( #.7.0.# )\n( ####### )\n\n\n(( NOT BAD BUT )(Easyish. ok? not soo interesting) )\n( @###### )\n( #.99.## )\n( #..3.p# )\n( #.3b9.# )\n( #.7.### )\n( ####### )\n\n( (Easy but funish? ok level 2?) )\n( @###### )\n( #.3..p# )\n( #.799.# )\n( #.3...# )\n( #.799.# )\n( #.3...# )\n( #.799.# )\n( ####### )\n\n( (interesting goal, but too bloody hard. not solved but solution gawked at) )\n( @###### )\n( #0p3..# )\n( #0.730# )\n( ##1fb0# )\n( ###...# )\n( ####### )\n\n( (trivial) )\n( @###### )\n( ##.p3.# )\n( #df.7.# )\n( #9930.# )\n( #..70## )\n( ####### )\n\n( (meh tolerable but meh) )\n( @###### )\n( #p0..0# )\n( #.0330# )\n( #.377.# )\n( #9b.#.# )\n( ####### )\n\n( (trivial) )\n( @###### )\n( #.99.p# )\n( #.3.c9# )\n( #.7.7.# )\n( #.df.## )\n( ####### )\n\n( (meh) )\n( @######## )\n( ######### )\n( ###p99.## )\n( ###15..## )\n( ###..#### )\n( ####.#### )\n( ####.#### )\n( ####..### )\n( ##....### )\n( ##....### )\n( ######### )\n( ######### )\n\n( (same old) )\n( @###### )\n( #...30# )\n( #.0.70# )\n( #.z5..# )\n( #..#.p# )\n( ####### )\n\n( (same old) )\n( @######## )\n( #..3....# )\n( ##37....# )\n( #.7.p99## )\n( #...99.## )\n( ######### )\n\n( (same old) )\n( (not hard. ok?) )\n( @######## )\n( #.3.....# )\n( #.799.#p# )\n( #.3..99.# )\n( #.7.....# )\n( ######### )\n\n\n( (meh) )\n( (not hard) )\n( @###### )\n( #p.a..# )\n( #..s15# )\n( #.df..# )\n( #.99..# )\n( ####### )\n\n( (meh) )\n( (intermediate ok?) )\n( @##### )\n( #0...# )\n( #0#30# )\n( #..70# )\n( #151x# )\n( #p..0# )\n( ###### )\n\n\n( (meh trial and error solution) )\n( @##### )\n( #..3.# )\n( #0#7p# )\n( #0.3.# )\n( #0a7.# )\n( #0s..# )\n( ###### )\n\n( (trivial) )\n( @######## )\n( #...p...# )\n( #.3399..# )\n( #.773.00# )\n( #...7.00# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #.3.3...# )\n( #.79b.p.# )\n( #..99...# )\n( #..1599.# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #.3.....# )\n( #.b9.99.# )\n( #...3p15# )\n( #.997...# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #..p..3.# )\n( #....cb.# )\n( #....7c9# )\n( #.99..7.# )\n( ######### )\n\n\n\n\n( (fine? too easy maybe I have enough levels like this) )\n( @##### )\n( #....# )\n( #.#99# )\n( #1515# )\n( #p...# )\n( #.99.# )\n( ###### )\n\n( (kinda kludgy? YIP) )\n( @##### )\n( #...p# )\n( #.#0.# )\n( #150.# )\n( #.015# )\n( #.0..# )\n( ###### )\n\n( (eeh rests around a single mechanism. maybe if it were duplciated multiple times with a level, but not just once) )\n( @.#### )\n( ###..# )\n( #.15p# )\n( #1f90# )\n( #...0# )\n( ###### )\n\n\n\n( (meh driving game) INCOMPLETE BUT ALSO DON'T CARE)\n( @.####... )\n( ###..#### )\n( #.....3.# )\n( #.#..#7.# )\n( #....#.p# )\n( ######### )\n\n\n\n\n\n( @##### )\n( #....# )\n( #.#..# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( (trivial) )\n( @.###### )\n( ..#p99.# )\n( ..#.15.# )\n( ..##.### )\n( ...#.#.. )\n( ..##.#.. )\n( ###..#.. )\n( #....##. )\n( #.#...#. )\n( #...#.#. )\n( ###...#. )\n( ..#####. )\n\n\n\n((test level))\n( @.#####.... )\n( ###...##### )\n( #......33.# )\n( #.#...#77.# )\n( #.....#..p# )\n( ########### )\n\n\n( (meh, don't like that you can randomly need to backtrack if you do things in the wrong order. don't find it fun) )\n( @.#####.... )\n( ###...##### )\n( #......33.# )\n( #.#00.#77.# )\n( #..00.#..p# )\n( ########### )\n\n( (trivial but bad) )\n( @.####... )\n( ###..#### )\n( #..cc99.# )\n( #.#77#..# )\n( #p...#..# )\n( ######### )\n\n\n( @.#####... )\n( ###...#### )\n( #........# )\n( #.#...#..# )\n( #.....#..# )\n( ########## )\n\n\n( @.####... )\n( ###..#### )\n( #.......# )\n( #.#..#..# )\n( #....#..# )\n( ######### )\n\n( @####### )\n( #......# )\n( #......# )\n( #......# )\n( #####..# )\n( ....#### )\n\n\n\n( @####### )\n( .#.....# )\n( .#.....# )\n( ##.....# )\n( #......# )\n( #......# )\n( ######## )\n\n( (meh ok but not so tricky? too much walking about) )\n( @#####..##### )\n( #....####...# )\n( #.33......#.# )\n( #.77#9999...# )\n( #p..######### )\n( #####........ )\n\n( @#####.##### )\n( #....###...# )\n( #........#.# )\n( #...#......# )\n( #...######## )\n( #####....... )\n\n( (meh) )\n( @#### )\n( #990# )\n( #0.0# )\n( #099# )\n( #15.# )\n( #15.# )\n( #33.# )\n( #77.# )\n( #.p.# )\n( ##### )\n\n( @####### )\n( #990099# )\n( #..00..# )\n( #.3153.# )\n( #.7157.# )\n( #...p..# )\n( #......# )\n( ######## )\n\n( @##### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( @###### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( @########### )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( ############ )\n\n( @########### )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #.....15...# )\n( #......p...# )\n( #..........# )\n( #..........# )\n( #.........9# )\n( ############ )\n\n( (dunno!) )\n( @###### )\n( ##..### )\n( ##..### )\n( ##..### )\n( ##..### )\n( ##15### )\n( ##15### )\n( ##15### )\n( #.p...# )\n( #.....# )\n( #.99..# )\n( #.99..# )\n( #.99..# )\n( ####### )\n\n( @####....... )\n( #99..##....# )\n( #..99..##..# )\n( #........### )\n( ###........# )\n( ..##@...15.# )\n( ...#.@#..15# )\n( ...#..#@@.p# )\n( ...#.......# )\n( ...######### )\n\n( @##### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( (nice idea but hard also has a crate) )\n( @##### )\n( #99..# )\n( #o.df# )\n( #.p3.# )\n( #..7.# )\n( ###### )\n\n( @.###### )\n( ..#....# )\n( ..#....# )\n( ..##.### )\n( ...#.#.. )\n( ...#.#.. )\n( ####.#.. )\n( #....##. )\n( #.#...#. )\n( #...#.#. )\n( ###...#. )\n( ..#####. )\n\n\n\n( @####. )\n( #...## )\n( #....# )\n( ##...# )\n( .##..# )\n( ..##.# )\n( ...### )\n\n\n( @.....##### )\n( ......#...# )\n( ......#.#.# )\n( #######.#.# )\n( #.........# )\n( #.#.#.#.### )\n( #.......#.. )\n( #########.. )\n\n( @######## )\n( #.......# )\n( #.#.#.#.# )\n( #.......# )\n( #.#.#.#.# )\n( #.......# )\n( ######### )\n\n\n\n( @###.. )\n( #..#.. )\n( #..### )\n( #....# )\n( #....# )\n( #..### )\n( ####.. )\n\n\n( @######## )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #......p# )\n( #.9c....# )\n( #997.3a.# )\n( #....7s.# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #..p..3.# )\n( #....cb.# )\n( #....7c9# )\n( #.99..7.# )\n( ######### )\n\n( (fine/tricky but too like other levels) )\n( @##### )\n( ##30.# )\n( #.70.# )\n( #df..# )\n( #.p..# )\n( ###### )\n\n( @###### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( @############ )\n( #...........# )\n( #...........# )\n( #...........# )\n( #...........# )\n( ############# )\n\n( @######## )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( ######### )\n\n( @########### )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( ############ )\n\n( @.#####.... )\n( ###...##### )\n( #.........# )\n( #.#...#...# )\n( #.....#...# )\n( ########### )\n\n( @................ )\n( ................. )\n( ........9........ )\n( .....999......... )\n( ................. )\n( ......p.......... )\n( .3333.....2..4... )\n( .7777...15.68.... )\n( ................. )\n( ................. )\n( ................. )\n( ................. )\n\n(TRANSFORMATION\n==========\nTRANSFORM\n==========\n\n\nchoose 5 [ ] -> [ wall ]\nchoose 1 [ no wall ] -> [ player ]\n\nchoose 2 option 0.5 right [ no obstacle | no obstacle ] -> [ stick_w | stick_e ]\n+ option 0.5 up [ no obstacle | no obstacle ] -> [ stick_s | stick_n ]\n\n\nchoose 2 option 0.5 right [ no wall no player no target | no wall no player no target ] -> [ target_h | target_h ]\n+ option 0.5 up [ no wall no player no target | no wall no player no target ] -> [ target_v | target_v ]\n\n\n\n)\n\n", [2, 3, 3, 0, 0, 0, 2, 2, 2, 1, 1, 1, 1, 0, 0, 3, 3, 0, 3, 3, 2, 2, "undo", 2], "background tl wall:0,background wall:1,1,1,1,1,1,\nbackground:2,2,2,background target_h:3,1,1,1,\n2,background stick_w:4,3,1,1,background target_v:5,5,\nbackground stick_e:6,2,1,1,2,background stick_n:7,background stick_s target_h:8,\n4,1,1,2,2,background player target_h:9,6,\n1,1,1,1,1,1,1,\n", 27, "1645544636691.3945"] + ], + [ + "Acorn Scorchery Paradise", + ["title Acorn Scorchery Paradise\nauthor increpare\nhomepage www.increpare.com\n\n\nbackground_color #3f3f74\n\n========\nOBJECTS\n========\n\nBackground\n#3f3f74 #59598f\n00000\n00000\n00100\n00000\n00000\n\n\n\nTarget\norange transparent transparent\n00000\n01110\n01210\n01110\n00000\n\nWall\n#323c39\n00000\n00000\n00000\n00000\n00000\n\n\nPlayer\n#847e87 #a33c88\n00000\n01110\n00000\n..0..\n.0.0.\n\n\nCrate\n#3f3f74 lightgreen green\n.111.\n21112\n21112\n22222\n.222.\n\n\nCrate_HOT\n#3f3f74 #ff0018 #ac3232\n.111.\n21112\n21112\n22222\n.222.\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\ncrate_or_player = Crate or Player or Crate_HOT\nany_Crate = Crate or Crate_HOT\npush_obstacle = wall or crate or Crate_HOT\nobstacle = wall or crate or Crate_HOT or Player\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 34709107\nendlevel 27179907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, Crate_HOT\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate_hot ]\n\n[ > crate_or_player | stationary push_obstacle ] -> cancel\n\n[ stationary crate_hot ] [ ^ crate_hot ] -> [ crate ] [ ^ Crate_HOT ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on any_Crate\n\n=======\nLEVELS\n=======\n\nmessage 1/5\n(nice!)\n######\n#.#..#\n#.*@.#\n#.p..#\n##.o.#\n.#####\n\nmessage 2/5\n(fine)\n#####\n#o..#\n#o..#\n#**@#\n#.p.#\n#####\n\nmessage 3/5\n(lol)\n######\n#p...#\n#.*..#\n#o.@.#\n##.@.#\n.#####\n\nmessage 4/5\n(fine)\n#####\n#opo#\n#.*.#\n#.*.#\n#o*.#\n#####\n\n\n(youAtExample suggested 'vive of five' when I was looking for stupid homophones)\nmessage 5/5 \n(fiiineish)\n######\n#.o.o#\n#....#\n#.**.#\n#.p#.#\n######\n\n\n\nmessage Congratulations! You are the best Acorn Scorcherer in Acorn Scorchery Paradise!\n\n( (meh not sure) )\n( ..#### )\n( ###.o# )\n( #o*..# )\n( #.*..# )\n( #p.@.# )\n( ###### )\n\n( ##### )\n( #...# )\n( #...# )\n( #...# )\n( #...# )\n( ##### )\n\n\n( ###### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( ####### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( ###### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( ######### )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( ######### )\n\n( ######## )\n( #......# )\n( #......# )\n( #......# )\n( #......# )\n( #......# )\n( #......# )\n( ######## )\n\n\n\n(Transformation\n\nchoose 5 [ ] -> [ wall ]\nchoose 1 [ no wall ] -> [ player ]\nchoose 3 [ no obstacle ] -> [ crate ]\nchoose 3 [ no player no wall no target ] -> [ target ]\n\n)\n", [3, 0, 0, 2, 1, 0, 2, 1, 0, 2, 3, 0, 0, 2, 0, 2, 1, 0, 0, 3, 3, 2, 3, 0, 0, "restart", 0, 0, 0, 0, 2, 1, 0, 0, 3, 0, 3, 0, 2, 1, 2, 2, 1, 0, "restart", 1, 0, 2, 3, 0, 1, 2, 3, 3, 0, 2, 1, 1, 0, 0, 2, 3, "undo", "undo", "undo", 3, 0, 0, "restart", 1, 0, 0, 2, 3, 3, 0, 2, 1, 1, 0, 0, 2, 2, 3, 3, 0, 1, 0, 0, 3, 2, 1, 2, 2], "background wall:0,0,0,0,0,\n0,0,background crate target:1,background target:2,background crate:3,\nbackground:4,0,0,4,4,\n4,background player:5,0,0,4,\n4,background crate_hot target:6,4,0,0,\n0,0,0,0,0,\n", 3, "1645544663060.2773"] + ], + [ + "Match-Maker", + ["title Match-Maker\nauthor increpare\nhomepage www.increpare.com\n( debug )\n( verbose_logging )\nrun_rules_on_level_start\n\ncolor_palette c64\nbackground_color green\n\n========\nOBJECTS\n========\n\nBackground\ngreen\n\nWall\ndarkgreen\n\nPlayer\ndarkblue lightgray \n.000.\n01010\n00000\n01110\n.000.\n\nCrate\npurple\n.....\n.000.\n.000.\n.000.\n.....\n\nhands_up\npink\n.0.0.\n.....\n.....\n.....\n.....\n\nhands_down\npink\n.....\n.....\n.....\n.....\n.0.0.\n\nhands_left\npink\n.....\n0....\n.....\n0....\n.....\n\nhands_right\npink\n.....\n....0\n.....\n....0\n.....\n\ncon_up\ntransparent\n\ncon_down\ntransparent\n\ncon_left\ntransparent\n\ncon_right\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\no = Background\n@ = crate\nhands = hands_up or hands_down or hands_left or hands_right\n\nobstacle = player or crate or wall\n\nplayer_or_crate = player or crate\n\ncon = con_up or con_down or con_left or con_right\n\nw = crate and hands_up\ns = crate and hands_down \na = crate and hands_left\nd = crate and hands_right\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 35405507\nsfx0 3325507 (love)\nsfx1 48219704 (breakup)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nhands_up\nhands_down\nhands_left\nhands_right\ncon_up\ncon_down\ncon_left\ncon_right\n\n\n======\nRULES\n======\n\n\n\n[ > player_or_crate | crate ] -> [ > player_or_crate | > Crate ]\n[ > crate hands ] -> [ > crate > hands ]\n\n\n[ > crate | wall ] -> cancel\n\n[ > crate | no obstacle ] -> [ | crate ]\n[ > hands | no hands ] -> [ | hands ]\n\nup [ hands_up | no hands_down ] -> [|] sfx1\ndown [ hands_down | no hands_up ] -> [|] sfx1\nleft [ hands_left | no hands_right ] -> [|] sfx1\nright [ hands_right | no hands_left ] -> [|] sfx1\n\nright [ crate | crate ] -> [ crate con_right | crate con_left ]\ndown [ crate | crate ] -> [ crate con_down | crate con_up ]\n\n[no hands con_up no con_down no con_left no con_right ] -> [ action hands_up ]\n[no hands no con_up con_down no con_left no con_right ] -> [ action hands_down ]\n[no hands no con_up no con_down con_left no con_right ] -> [ action hands_left ]\n[no hands no con_up no con_down no con_left con_right ] -> [ action hands_right ]\n\n[con]->[]\n\nup [ hands_up | no hands_down ] -> [|]\ndown [ hands_down | no hands_up ] -> [|]\nleft [ hands_left | no hands_right ] -> [|]\nright [ hands_right | no hands_left ] -> [|] \n\n\n[ action hands ] -> sfx0\n\n==============\nWINCONDITIONS\n==============\n\nall crate on hands\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 9\n\n(easyish. ok?)\n######\n#*...#\n##..*#\n#..*.#\n#.*.p#\n######\n\n( (ok first level ish) )\n( ......#####. )\n( ......#...#. )\n( ###...#...#. )\n( #*#####...#. )\n( #.#dada**### )\n( #..**......# )\n( #.#dadada### )\n( #*########.. )\n( #.#......... )\n( #p#......... )\n( ###......... )\n\n\nmessage Level 2 of 9\n\n(ok?)\n.#####\n##..*#\n#..*p#\n#da.##\n#.#.#.\n#...#.\n#####.\n\nmessage Level 3 of 9\n(ok! early intermediate?)\n#######.\n#.p...#.\n#..***##\n###*...#\n..######\n\nmessage Level 4 of 9\n(late-early? pretty entertaining gestalt-wise)\n######\n#.s#.#\n#.w.*#\n#....#\n#..#*#\n#..**#\n#.p..#\n######\n\nmessage Level 5 of 9\n\n(ok? entertaining? slightly? ok level? ok let's say it's ok)\n########\n#..da..#\n#..***.#\n#p..*..#\n#####..#\n....####\n\n\nmessage Level 6 of 9\n(early-intermediate ok?)\n######\n#p...#\n#..da#\n#..*.#\n#*.*##\n#..*##\n#....#\n######\n\n\n\nmessage Level 7 of 9\n(early-intermediate? easy/likeable)\n#######\n#....##\n#.da..#\n#.##*.#\n#..#da#\n#p.*..#\n#######\n\nmessage Level 8 of 9\n(AH. OK? If I@m totally stuck it could be a last level? but not...a *good* one)\n(genuinely tricky. not solved yet)\n#######\n#.#...#\n#*s..s#\n#.w#*w#\n#..p..#\n#..####\n#######\n\n\nmessage Level 9 of 9\n(didnae solve)\n######\n#....#\n#.sda#\n#.w..#\n#*p**#\n#...*#\n######\n\nmessage Congratulations. That was really good!\n\n=======================\n(\n\n(consider pruning)\n(weirdly non-obvious :] )\n######\n#.#.##\n#*#.##\n#.p*.#\n#.*..#\n#.*.##\n######\n\n(consider pruning)\n(Easy but ok?)\n##########\n##..p..*.#\n#.**...###\n##.*.#..##\n#.#...####\n##########\n\n\n\n(consider pruning)\n(weirdly engaging)\n######\n#.#.##\n#.#.p#\n#*.s.#\n#..w.#\n#*..##\n######\n\n\n(I like it - late-easy!)\n##########\n#.#.######\n#..*p*...#\n#..#*#*###\n#........#\n##########\n\n(intermediate ok hmm)\n#######\n#.*...#\n#...#.#\n##*..##\n##*.#.#\n#.....#\n#p#.*.#\n#######\n\n(alternative version of above:)\n########\n#.*..###\n#...####\n##s.####\n##w.####\n#......#\n#p#..*.#\n########\n\n\n(early hard? I think it's ok? just separate the parts)\n(dunno how to solve)\n#######\n#.....#\n#da***#\n#*.*..#\n#.*p#.#\n#.#...#\n#.....#\n#######\n\n======================\n\n\n#######\n#.....#\n#.....#\n#.....#\n#ppp..#\n#ppp..#\n#ppp..#\n#######\n\n\n(too easily accidentally solvable? maybe/maybe not! ok level 2?)\n#######\n#.*...#\n#.#.###\n#p.s.##\n#.#w###\n#.*...#\n#######\n\n(simple? just tidying up)\n#########\n#..*.##.#\n##.*##..#\n#.....*##\n#****...#\n#.*##.p.#\n#..#.##.#\n#########\n\n\n(simple? ok intro?)\n######\n##.#.#\n#.#*##\n#**..#\n#..*.#\n##p..#\n######\n\n\n\n(ok!)\n######\n#...*#\n#da*.#\n#.p..#\n#.***#\n#.*..#\n######\n\n(intermediate eh)\n######\n#....#\n#.*.s#\n#.*.w#\n#***.#\n#*..p#\n######\n\n(early intermediate / meh)\n######\n#.da.#\n#.*..#\n#.*..#\n#****#\n#.p..#\n######\n\n(it's fine but is it fun? ok maybe a bit but not a lot)\n######\n#....#\n#.*..#\n#.***#\n#p.*.#\n#.**.#\n#*...#\n######\n\n(meh too mcuh work; couldn't remember the solution)\n(visually cute. bottom two blocks unnecessary?)\n######\n#....#\n#.**.#\n#.**.#\n#p*.*#\n#.da.#\n######\n\n(dunno. not awful. maybe I'm just tired.)\n######\n#....#\n#.*..#\n#da*.#\n#p**.#\n#.da.#\n######\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n######\n#....#\n#.#..#\n#....#\n#....#\n#....#\n######\n\n\n(meh?)\n######\n#.*..#\n#p#..#\n#.da.#\n#....#\n#.*..#\n######\n\n(yeah fine? no it's not)\n######\n#.*..#\n#.#*##\n#.*.##\n#p..##\n##.*.#\n######\n\n\n\n\n(not bad. easy but not bad)\n##########\n#....#.###\n#.....*.##\n####.*.*.#\n#.#.##*.p#\n##########\n\n(trivial)\n##########\n#....*..*#\n#...##*..#\n#.*....#.#\n#...p....#\n##########\n\n\n\n\n(easy but not terrible but not great)\n######\n#*..##\n##.*##\n#..*.#\n#....#\n#.#*p#\n##...#\n######\n\n(easy. not good not bad)\n######\n#..*.#\n####.#\n##..p#\n#.**.#\n#..#.#\n#..*.#\n######\n\n(early intermediate ok?)\n#########\n#..#..###\n###.*.*.#\n#..#..*##\n####.#*.#\n#.*.p..##\n#.*.....#\n#...#..##\n#########\n\n\n\n\n(boring)\n#######\n#.#...#\n#da...#\n#...*##\n#dap..#\n#..*#.#\n#######\n\n\n(trivialish/boring//routine)\n#######\n#*#*..#\n#....##\n#..da.#\n##..**#\n#.p.**#\n#.....#\n#######\n\n(trivialish/boring//routine)\n#######\n#da.#.#\n#..**.#\n#..**.#\n#.....#\n#*..p.#\n##*..##\n#######\n\n(kinda pleasing; nah)\n..####...\n###..####\n#..s.*..#\n#.#w.#.*#\n#....#p.#\n#########\n\n(ok intermediate. yeah but nah)\n########\n#.p....#\n#.s...*#\n#.w***.#\n#####..#\n....####\n\n(so lala intermediate)\n######.#####\n#.*..###...#\n#.da***..#.#\n#...#......#\n#.p.########\n#####.......\n\n(trivial)\n#######\n#.#...#\n#.s...#\n#.w*.##\n#..p..#\n#.###.#\n#..*..#\n#######\n\n\n(trivial)\n#######\n#.*.#.#\n#.#.#.#\n#...*.#\n##.s..#\n#.pw..#\n##.#.##\n#######\n\n\n\n(trivial)\n#######\n#...*.#\n##..#.#\n#..**.#\n#..#..#\n#.....#\n#.*p..#\n#######\n\n(trivial)\n######\n#....#\n#.s###\n#*w#.#\n#.p*.#\n#.*..#\n#.*..#\n######\n\n(trivial)\n######\n#....#\n#....#\n#*da##\n#*...#\n#p..*#\n##*..#\n######\n\n(ok but not good enoguh? or maybe yeah for an early level but I'm not sure)\n######\n#....#\n#..**#\n#.***#\n#*#.##\n#p...#\n#....#\n######\n\n(ok intermediate but also nah)\n######\n#....#\n#*#.*#\n###..#\n#..s.#\n#**w.#\n#.p..#\n######\n\n(trivial)\n######\n##.#.#\n##*da#\n#....#\n#.s..#\n#*w..#\n#.p..#\n######\n\n(trivial)\n######\n#.**.#\n#.**.#\n#..*.#\n#.p..#\n#..*##\n#....#\n######\n\n(meh)\n######\n#...s#\n#...w#\n#..*.#\n##s..#\n##w#*#\n#.p..#\n######\n\n(boring)\n######\n#...##\n#..**#\n#..*.#\n#.**.#\n#*..##\n#.p..#\n######\n\n(boring)\n######\n#.*..#\n##*..#\n#.**.#\n##.**#\n#.p..#\n##.###\n######\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n(boring)\n######\n#.da.#\n#.*..#\n#..**#\n#..*.#\n#..da#\n#.p..#\n######\n\n(boring)\n######\n#....#\n#...*#\n#s...#\n#w.da#\n#p***#\n#....#\n######\n\n(boring)\n######\n#....#\n#...*#\n#.sda#\n#pw..#\n#..s.#\n#.*w.#\n######\n\n(boring)\n######\n#....#\n#..**#\n#..**#\n#.p*.#\n#....#\n#da.*#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n##########\n\n(boring)\n##########\n#.#.*.#..#\n#.*.***.##\n#.#.....##\n#.##p.*..#\n##########\n\n(boring)\n##########\n####*..*.#\n#....#...#\n#.p***..##\n##...*.#.#\n##########\n\n(boring)\n##########\n#..#.#.#.#\n#*...da*.#\n#..da....#\n#p.###...#\n##########\n\n(boring)\n##########\n#....*s.##\n##da..w..#\n#..p#...##\n#*..##.#.#\n##########\n\n############\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n(boring)\n############\n#..#...**..#\n#.**.#*....#\n#....*.##.##\n##..#p.#...#\n############\n\n(boring)\n############\n#..#...#...#\n#.*..#..*s.#\n#p...#s##w.#\n#.#...w....#\n############\n\n(boring)\n############\n##.....da..#\n#...#s...*.#\n#.#p.w..#..#\n#.#.#...*.##\n############\n\n(not boring kinda funny but also nope)\n############\n#.....##...#\n##........##\n#*..*.#.*.*#\n#*.#p#..*.##\n############\n\n(boring)\n############\n#*.#.#...#.#\n#...da*....#\n#.##p.da...#\n#.##...#...#\n############\n\n(boring)\n############\n#*...*#.#..#\n#.#..*....##\n##...**.#..#\n#.#.p.*...##\n############\n\n(boring)\n############\n#....s.....#\n#..##w...s.#\n#.*p..#*#w.#\n#.#.#....###\n############\n\n(boring)\n############\n#..##.#....#\n#####*#.*..#\n#p#.s...*..#\n#...w.#.*#.#\n############\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n(boring)\n#######\n#.#..##\n#..**.#\n#...*##\n##...##\n##pda.#\n#..*..#\n#######\n\n\n(boring)\n#######\n#.....#\n#da...#\n#.*...#\n##*p..#\n#.*..*#\n##....#\n#######\n\n\n(boring)\n#######\n##...*#\n##....#\n#.....#\n#...*##\n#.***.#\n#p*..##\n#######\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n(meh)\n#######\n#.#..##\n#..**.#\n#...*##\n##...##\n##pda.#\n#..*..#\n#######\n\n(meh)\n#######\n#.*.s.#\n###.w##\n#.....#\n###.s.#\n#..pw*#\n#...#.#\n#######\n\n(ok but not great? meh?)\n#######\n#.....#\n#.....#\n#..da.#\n#.##*.#\n#..**.#\n#p.*#.#\n#######\n\n(trivial)\n#######\n##...*#\n#.*.#.#\n##....#\n#.p.#.#\n#.***.#\n#...*.#\n#######\n\n(easy not great?)\n#######\n#...###\n#.da*.#\n#.##..#\n#.....#\n#pda..#\n#...*.#\n#######\n\n(meh. intentionally solvable. but good? idk)\n#######\n#.s.s.#\n#.w*w.#\n#..*..#\n#....##\n#*p...#\n##*...#\n#######\n\n(trivial)\n#######\n#*....#\n#**...#\n#..s*##\n#..w..#\n#..s..#\n#p.w..#\n#######\n\n(trivial)\n#######\n#.....#\n#.....#\n#*....#\n#pda*.#\n#.#da.#\n#..**.#\n#######\n\n(trivial)\n#######\n#.....#\n#.....#\n#...**#\n#.#**.#\n#*pda.#\n#..#*.#\n#######\n\n(trivial kinda nice but trivial)\n#######\n##.#..#\n#.....#\n#..s..#\n#daw*.#\n#.#.s.#\n#.p.w*#\n#######\n\n(trivial)\n#######\n#.#...#\n#..**.#\n#..**##\n#**p.*#\n#*.#..#\n#.....#\n#######\n\n(trivial)\n#######\n#..*.##\n#s....#\n#w...*#\n#p..da#\n#...*.#\n#...*.#\n#######\n\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n######\n#....#\n#....#\n#....#\n######\n\n#####\n#...#\n#...#\n#...#\n#####\n\n########\n#......#\n#......#\n#......#\n#......#\n#......#\n#......#\n########\n\n(meh. actually ok to solve but not great?)\n########\n#.#*..*#\n#..***##\n#..s...#\n#.#w...#\n#..p#.##\n#...*.##\n########\n\n(meh)\n########\n#.*..*.#\n#.#.s*.#\n##..ws##\n#...*w.#\n#.p.#..#\n#......#\n########\n\n(trivial)\n########\n##.....#\n#.da...#\n##...###\n##.da.*#\n#sp....#\n#w.#..*#\n########\n\n(trivial)\n########\n#da....#\n#..*#..#\n#...#s.#\n#*#s.w.#\n#.pw.#.#\n#...#..#\n########\n\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n(trivial)\n#########\n#.......#\n#..s....#\n#.*w...##\n#.....###\n#dap.#.##\n#..#..*##\n##.....##\n#########\n\n(trivial)\n#########\n#..#..###\n###.*.*.#\n#..#..*##\n####p#*.#\n#.s....##\n#.w.....#\n#...#..##\n#########\n\n(boring)\n#########\n#..*....#\n#.#*....#\n#..da...#\n###....*#\n#.#p##..#\n#...*..##\n#....##.#\n#########\n\n(simplified a part of this and sent it to the top)\n#########\n#...#..##\n#.da##..#\n##..*...#\n#..*p...#\n#da.#...#\n#.#.#..##\n#....####\n#########\n\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n\n\n#######\n#.....#\n#.#.#.#\n#.....#\n##.#.##\n##...##\n#######\n\n#######\n#.....#\n#.#.#.#\n#.....#\n#.#.#.#\n#.....#\n#######\n\n########\n#.....##\n#.#.#.##\n#......#\n##.#.#.#\n##.....#\n########\n\n#########\n#.......#\n#.#.#.#.#\n#.......#\n#.#.#.#.#\n#.......#\n#########\n\n##########\n#.......##\n#.#.#.#.##\n#........#\n##.#.#.#.#\n##.......#\n##########\n\n#########\n#.......#\n#.#.#.#.#\n#.......#\n#.#.#.#.#\n#.......#\n#.#.#.#.#\n#.......#\n#########\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n########\n#......#\n#......#\n#......#\n#####..#\n....####\n\n\n\n(trivial)\n########\n#...da.#\n#.****.#\n#......#\n#####.p#\n....####\n\n(trivial)\n########\n#*.....#\n#****..#\n#p.*...#\n#####..#\n....####\n\n(trivial)\n########\n#......#\n#.*.*..#\n#.*da*.#\n#####.p#\n....####\n\n(trivial)\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#OOO...#\n#...########\n#####.......\n\n\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n..######\n..#.OOP#\n..#.**.#\n..##.###\n...#.#..\n...#.#..\n####.#..\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\n(hmm. ok? meh)\n..######\n..#...p#\n..#.*..#\n####*###\n#..*.##.\n#.#...#.\n#.*.#.#.\n###...#.\n..#####.\n\n(hmm. not good?)\n...###..\n...#.#..\n####*#..\n#.*..##.\n#.#*..#.\n#..*#.#.\n###..p#.\n..#####.\n\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\n\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\n\n(I kinda like it, but now that I'm such an EXPERT it just doesn't do it for me)\n(want to solve but haven't yet. has the look of an ok final level?)\n######\n##.###\n#...##\n#.**.#\n#**..#\n#p..*#\n#.*.##\n######\n\n\n(meh)\n(can't solve. could be ok though)\n######\n#..###\n#.**##\n#.**.#\n#p.*.#\n#*.#.#\n#....#\n######\n\n\n\n\n\n(trivial)\n(nope not solved but nope)\n#######\n#.#...#\n#.s..*#\n#.w*s.#\n#.#*w.#\n##..*.#\n#.#..p#\n#######\n\n(trivial)\n(nope not solved but nope)\n#######\n#..#*.#\n#.s**.#\n#.w.s.#\n#..*w.#\n#p...##\n#.##.##\n#######\n\n(meh I guess it might be ok but meh)\n(stuck)\n#######\n#..##.#\n#**...#\n#.*.#.#\n#.sp*.#\n##w.#.#\n#...#.#\n#######\n\n\n\n\n(didnae solve)\n######\n#....#\n#.sda#\n#.w..#\n#*p**#\n#...*#\n######\n)\n\n(\nTRANSFORMS\n\n\n[player]->[]\n[crate]->[]\n\n(choose 2 [ player ] -> [ no player ] )\n(choose 2 [ no player ] -> [ wall ])\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 1 option 0.5 right [ no obstacle | no obstacle ] -> [ crate hands_right | crate hands_left]\n+ option 0.5 down [ no obstacle | no obstacle ] -> [ crate hands_down | crate hands_up ]\n+ option 0.5 [ no obstacle | no obstacle] -> [crate| crate]\n\n)\n", [2, 2, 3, 3, 0, 1, 0, 3, 1, 2, 2, 2, 2, 2, 3, 0, 0, 0], "background wall:0,0,0,0,0,0,\n0,0,0,background:1,1,1,\nbackground crate:2,1,1,0,0,1,\n1,1,1,1,1,0,\n0,background crate hands_down:3,background crate hands_up:4,background player:5,1,1,\n1,0,0,2,3,4,\n0,0,1,0,0,0,\n0,0,0,0,0,0,\n", 11, "1645544739914.9763"] + ], + [ + "Pushy-V Pully-H", + ["title Pushy-V Pully-H\nauthor increpare\nhomepage www.increpare.com\nbackground_color darkgreen\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkgray\n\nPlayer\nblue\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nCrate\ngreen gray\n11111\n0...0\n0...0\n0...0\n11111\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nobstacle = player or crate or wall\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\nvertical [ > Player | Crate ] -> [ > Player | > Crate ]\nhorizontal [ < Player | Crate ] -> [ < Player | < Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 11\n\n.########\n##o.....#\n#...*...#\n#*o.o.*.#\n##.p..###\n.######..\n\nmessage level 2 of 11\n(level 1?)\n(soluble)\n#######\n#.....#\n#.O*#.#\n#.@@P.#\n#.....#\n#######\n\nmessage level 3 of 11\n....####.\n#####..##\n#.......#\n#.**.oo.#\n#.**.oo.#\n#...p...#\n#########\n\n\nmessage level 4 of 11\n#########\n#.....#p#\n#.o..*.@#\n#...@...#\n#...##..#\n#########\n\n\nmessage level 5 of 11\n(soluble)\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 6 of 11\n(soluble)\n.#####\n.#...#\n.#.O.#\n.#.@.#\n##.@.#\n#..*.#\n#..P.#\n######\n\nmessage level 7 of 11\n\n(soluble)\n####...\n#..####\n#.....#\n#.O*O.#\n#.*P*.#\n#.O*O.#\n#.....#\n#######\n\nmessage level 8 of 11\n#########\n#.......#\n#..*.*..#\n#.*ooo*.#\n#..opo..#\n#.*ooo*.#\n#..*.*..#\n#.......#\n#########\n\nmessage level 9 of 11\n#######\n#..#..#\n#*.#*.#\n#..#..#\n#..o..#\n##o.*.#\n.#op..#\n.######\n\nmessage level 10 of 11\n(soluble)\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\nmessage level 11 of 11\n########\n#......#\n#.#..#.#\n#..@@..#\n#.*o@..#\n#.#..#.#\n#..p...#\n########\n\nmessage Congratulations! You don't just push the push, you pull the pull!\n\n\n\n(\n\n\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n\n\n#############\n#...........#\n#...........#\n#...........#\n#..***.ooo..#\n#..*p*.o.o..#\n#..***.ooo..#\n#...........#\n#...........#\n#...........#\n#############\n)\n\n(\n#########\n#..o....#\n#...#p..#\n#*.*oo.*#\n#.......#\n#########\n)\n\n( ######### )\n( ##o.....# )\n( #...*...# )\n( #*o.o.*.# )\n( ##.p..#.# )\n( ######### )\n\n\n(\n(soluble)\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n)\n\n\n\n\n\n\n\n(\n\n(soluble)\n########\n#......#\n#.*O*O.#\n#PO*O*.#\n#.*O*O.#\n#......#\n########\n)\n\n(\n\n\n\n(insoluble)\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n(insoluble)\n#######\n#..@..#\n#..P.O#\n##*.###\n.#..#..\n.####..\n\n(insoluble)\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n\n(insoluble)\n#####.\n#...#.\n#O#.##\n#....#\n#O...#\n###.##\n#P**#.\n#...#.\n#####.\n\n\n(insoluble)\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\n(insoluble)\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#OOO...#\n#...########\n#####.......\n\n(insoluble)\n######\n#....#\n#.**.#\n#..*.#\n###..#\n.#O.##\n.#O.#.\n.#O.##\n.#...#\n.#.#.#\n.#.P.#\n.#####\n\n(insoluble)\n..######\n..#.OOP#\n..#.**.#\n..##.###\n...#.#..\n...#.#..\n####.#..\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\n\n\n(insoluble)\n.#####......\n.#...#......\n##.#.#..####\n#....####..#\n#.#......*O#\n#...#####*O#\n#####...#.P#\n........####\n\n\n(insoluble)\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\n\n\n\n\n(insoluble)\n...####\n..##PO#\n.##.*.#\n##..*.#\n#O...##\n######.\n\n(insoluble)\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\n\n(insoluble)\n#####...\n#...#...\n#.#P#...\n#...#...\n#.#*#...\n#...#...\n#.#*####\n#...OOO#\n###*##.#\n..#....#\n..######\n\n\n)\n\n(\n\nTRANSFORMATION\n\n[ player ] -> []\n[ crate ] -> []\n[ target ] -> []\n\nchoose 3 [ no wall ] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player no target ] -> [ target ]\n\n)\n", [0, 0, 2, 2, 1, 1, 0, 3, 2, 3, 3, 3, 3, 1, 0, 3, 0, 1, 1, 0, 0, 1, 1, 0, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 3, 3, 0, 3, 3, 2, 1, 1, 0, 1, 1, 0, 0, 0, 3, 1, 0, 0, 3, 3, 3, 2, 1, 2, 2, 2, 3, 2, 3, 0, 0, 0, 0, 1, 1, 2, 1, 1, 0, 0, 1, 3, 2, 3, 0, 1, 1, 1, 2, 2, 2, 2, 2, 0, 2, 3, 3, 3, 0, 1, 3, 3, 2, 1, 1, 0, 0, 0, 2, 0, 0], "background wall:0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,1,\n1,0,0,1,background target:2,background crate:3,background crate target:4,\n1,1,0,0,3,background player:5,2,\n1,2,1,0,0,1,2,\n3,4,3,1,0,0,1,\n1,1,1,1,1,0,0,\n0,0,0,0,0,0,0,\n", 19, "1645544759965.9036"] + ], + [ + "Crates move when you move", + ["title Crates move when you move\nauthor increpare\nhomepage www.increpare.com\n\n(\n\ntools used during creation:\n\nhttps://dekeyser.ch/puzzlescriptmis/\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\nnoaction\nbackground_color darkblue\n========\nOBJECTS\n========\n\nBackground\ndarkblue\n\n\nTarget\ndarkgreen\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkbrown\n\nPlayer\nOrange Orange Orange Orange\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nlightgreen\n00000\n0...0\n0...0\n0...0\n00000\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nobstacle = player or crate or wall\n\n=======\nSOUNDS\n=======\n\ncrate move 25044707\nsfx0 25044707\n\nendlevel 84712900\nstartlevel 16124700\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n======\nRULES\n======\n\n\n[ > Player ] [ Crate ] -> [ > Player ] [ > Crate ]\n\n\n\n[ > crate | no obstacle ] -> [ | > crate ] sfx0\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 10\n\n######\n#....#\n#...##\n#..*.#\n#..o.#\n#.p..#\n#....#\n######\n\n( ###### )\n( #*#..# )\n( #.p..# )\n( #..o.# )\n( #....# )\n( ###### )\n\nmessage Level 2 of 10\n######\n#.*.p#\n#.#.##\n#.o..#\n#.#..#\n######\n\nmessage Level 3 of 10\n..###..\n.##o##.\n##...##\n#*.p.o#\n##...##\n.##*##.\n..###..\n\n\n\nmessage Level 4 of 10\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\nmessage Level 5 of 10\n(kinda hard)\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage Level 6 of 10\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\nmessage Level 7 of 10\n######\n##*.##\n##@###\n##..##\n##..##\n##p.##\n##.###\n##o.##\n##..##\n######\n\n\nmessage Level 8 of 10\n#######\n#o...*#\n#o.p.*#\n#o...*#\n#######\n\nmessage Level 9 of 10\n#####.\n#P..##\n#O**.#\n##...#\n.##..#\n..##O#\n...###\n\nmessage Level 10 of 10\n(POSSIBLE to solve! Good final level?)\n######\n#....#\n#o.#p#\n#.#..#\n#.*.@#\n######\n\nmessage Congratulations! The crates learned from your your example and were all very succesful in their subsequent careers.\n\n(\n######\n#o#@.#\n#....#\n#.##*#\n#..p@#\n######\n\n(I solved this, but not intentionally)\n#######\n#.*...#\n#**...#\n#..p..#\n#...oo#\n#...o.#\n#######\n\n(fpfft no idea. haven't solved yet)\n######\n#..*.#\n#*#.##\n#..o.#\n##...#\n#..#.#\n#op#.#\n######\n\n(unsolved. too hard?)\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n####\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n####\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n)\n(\nTRANSFORMATION\n\n\nchoose 3 [ ] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player no target ] -> [ target ]\n\n)\n", [2, 1, 0, 1, 1, 2, "undo", 1, 2, 3, 3, 3, 0, 2], "background wall:0,0,0,0,0,background:1,0,1,\n1,1,0,1,0,1,background target:2,1,\n0,1,0,1,2,1,0,1,\n0,1,2,background crate:3,0,0,0,1,\n3,background player:4,1,0,0,1,1,1,\n3,0,0,0,0,0,0,0,\n", 11, "1645544790426.2693"] + ], + [ + "Resin-Caster", + ["title Resin-Caster\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color darkblue\n\n(\n\ntools used during creation:\n\nhttps://dekeyser.ch/puzzlescriptmis/\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\n========\nOBJECTS\n========\n\nBackground\ndarkblue\n\nWall\n#aa00ff\n.000.\n00000\n00000\n00000\n.000.\n\nPlayer\nOrange Orange Orange Orange\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate1\nred\n.000.\n00000\n00000\n00000\n.000.\n\n\nCrate2\nblue\n.000.\n00000\n00000\n00000\n.000.\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = crate1\n@ = crate2\n* = crate2\ncrate = crate1 or crate2\nobstacle = player or wall or Crate1\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, crate1, crate2\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate1 | crate2 ] -> [ | wall ]\n[ > crate2 | crate1 ] -> [ | wall ]\n\n==============\nWINCONDITIONS\n==============\n\nno crate\n\n=======\nLEVELS\n=======\n\nmessage When the two compounds are combined they set into a hard purple resin.\n\nmessage 1 of 10\n(fine!)\n######\n#....#\n#p@o.#\n#....#\n#@..o#\n######\n\nmessage 2 of 10\n(fine-ish?)\n#########\n#..o.@..#\n#..op@..#\n#########\n\nmessage 3 of 10\n(good hard level 1 or nice level 2)\n######\n#.@..#\n#..@.#\n#oo..#\n#.#.p#\n######\n\nmessage 4 of 10\n(ok? looks nice and has a solution that's not totally trivial but also not exactly something you can deduce without trying out - you won't necessarily know after the fact *why* the solkution is a solution)\n######\n#..o.#\n#.o@.#\n#o@..#\n#.p.@#\n######\n\nmessage 5 of 10\n(fine?)\n..####\n.##.o#\n##...#\n#..#.#\n#.@o.#\n#.p@.#\n######\n\nmessage 6 of 10\n(good intermediate)\n######\n#p...#\n#.o@@#\n#oo..#\n#.#@.#\n######\n\n\nmessage 7 of 10\n(kinda ok?)\n#######\n#.....#\n#...#.#\n#@#o@o#\n#.#.#.#\n#..p..#\n#######\n\nmessage 8 of 10\n(kinda fun?)\n######\n#@o.o#\n#.o.@#\n#@.@o#\n#.p..#\n######\n\n\nmessage 9 of 10\n(actually ok?)\n..####...\n###@.####\n#..@....#\n#.#.o#o.#\n#....#p.#\n#########\n\nmessage 10 of 10\n(had the solution spoiled but it's also fine :] )\n######\n#oo.@#\n#.@@o#\n#o.@.#\n#.p..#\n######\n\nmessage Congratulations! You're an exceptionally very competent resin-caster.\n\n(nice level, but maybe not include? not totally feeling it)\n( ###### )\n( #@.o.# )\n( #o.o.# )\n( #@o@.# )\n( #@..p# )\n( ###### )\n\n(eeeh it's fine but I solved it directly by avoiding doing the obvious thing which is BORING)\n( ###### )\n( #.o.p# )\n( #@@oo# )\n( #....# )\n( #@#..# )\n( ###### )\n\n(too much like other level)\n( ###### )\n( #@o.@# )\n( #...o# )\n( #o@o@# )\n( #p...# )\n( ###### )\n\n(kinda ok? I like the interlacing style. but not the best level of all time)\n( ###### )\n( #..@.# )\n( #o#@.# )\n( #.@..# )\n( #...o# )\n( #.o.p# )\n( ###### )\n\n(\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n####\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n####\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\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.*#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*O.#\n##.*P*.#\n#..O*O.#\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\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\n\n(\nTransformation\n\n[ player ] -> []\n[ crate ] -> []\n\n( choose 2 [ player ] -> [ ] )\n\nchoose 3 [ ] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate1 ]\nchoose 2 [ no obstacle ] -> [ crate2 ]\n\n)\n", [3, 0, 0, 1, 2, 0, 1, 1, 1, 2, 2, 3, 0, 1, 0, 3, 3, 1, 2, 2, 1, 1, 1, 0, 0, 3, 3, 3, 3, 3], "background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,0,1,\n1,background crate2:2,0,0,0,1,1,0,0,\n0,0,1,1,1,background player:3,1,1,1,\n0,1,1,0,background crate1:4,1,0,1,0,\n0,0,1,0,1,1,1,1,1,\n", 18, "1645544805711.4153"] + ], + [ + "pipe puffer", + ["title pipe puffer\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nbackground_color #472f37\n(verbose_logging)\n( debug )\n\n========\nOBJECTS\n========\n\nBackground\n#524740 #5a4f48\n00000\n01110\n01110\n01110\n00000\n\n\n\n\nWall\n#472f37\n\nwall_s\ntransparent transparent #291c21\n00000\n11111\n11111\n11111\n22222\n\n\nwall_n\n#5f454e transparent transparent\n00000\n11111\n11111\n11111\n22222\n\nwall_o\ntransparent transparent #5f454e\n01112\n01112\n01112\n01112\n01112\n\nwall_w\n#291c21 transparent transparent\n01112\n01112\n01112\n01112\n01112\n\nwall_nw\n#472f37\n0....\n.....\n.....\n.....\n.....\n\nwall_so\n#472f37\n.....\n.....\n.....\n.....\n....0\n\nPlayer\ntransparent #a69326 #cdb844 #e3d060 #bfaa38 #000000\n01230\n34233\n22522\n11241\n01230\n\n\nrohr_no e\n#005784 #006ea6 #524740 #acacac #cccccc #656d71\n00010 \n23431\n23540\n22330\n22220\n\nrohr_ns x\n#005784 #006ea6 #524740 #acacac #cccccc #e6e6e6 #656d71\n00010\n23452\n23652\n23452\n00010\n\nrohr_nw q\n#005784 #006ea6 #acacac #cccccc #e6e6e6 #524740 #656d71\n00010\n12345\n03645\n02255\n05555\n\n\nrohr_so c\n#524740 #005784 #e6e6e6 #006ea6 #acacac #cccccc #656d71\n00001\n00223\n04651\n04541\n11131\n\nrohr_sw z\n#005784 #524740 #006ea6 #e6e6e6 #cccccc #acacac #656d71\n01111\n23311\n04631\n05431\n00020\n\nrohr_ow a\n#005784 #524740 #006ea6 #e6e6e6 #cccccc #acacac #656d71\n01110\n23332\n04640\n05550\n01110\n\noutlet_n \n#005784 #006ea6 transparent #e6e6e6 #cccccc #acacac #656d71\n01000 \n23452\n22622\n22222\n22222\n\noutlet_s \ntransparent #cccccc #acacac #e6e6e6 #005784 #006ea6 #656d71\n00000\n00000\n00600\n02130\n44454\n\noutlet_o \ntransparent #005784 #e6e6e6 #006ea6 #cccccc #acacac #656d71\n00001\n00023\n00641\n00051\n00001\n\noutlet_w \n#005784 transparent #acacac #cccccc #006ea6 #e6e6e6 #656d71\n01111\n02111\n03611\n45111\n01111\n\ninlet\nblue\n.....\n.....\n..0..\n.....\n.....\n\npust_n\n#cccccc\n.000.\n0...0\n..0..\n..0..\n.....\n\n\npust_s\n#cccccc\n.....\n..0..\n..0..\n0...0\n.000.\n\npust_o\n#cccccc\n...0.\n....0\n.00.0\n....0\n...0.\n\npust_w\n#cccccc\n.0...\n0....\n0.00.\n0....\n.0...\n\n\n\nflow\nblue\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\nwall_überlagung = wall_s or wall_n or wall_o or wall_w or wall_nw or wall_so\n\nrohr = rohr_no or rohr_ns or rohr_nw or rohr_so or rohr_sw or rohr_ow\noutlet = outlet_n or outlet_s or outlet_o or outlet_w\n\nöffnung_n = rohr_no or rohr_ns or rohr_nw or outlet_n\nöffnung_s = rohr_ns or rohr_sw or rohr_so or outlet_s\nöffnung_o = rohr_no or rohr_so or rohr_ow or outlet_o\nöffnung_w = rohr_nw or rohr_sw or rohr_ow or outlet_w\n\nwall_thing = wall or outlet \n\nrohr_or_öffnung = rohr or outlet\n\n. = Background\n# = Wall\nP = Player\n\n1 = outlet_n and wall\n2 = outlet_s and wall\n3 = outlet_o and wall\n4 = outlet_w and wall\n\n5 = outlet_n and inlet and wall\n6 = outlet_s and inlet and wall\n7 = outlet_o and inlet and wall\n8 = outlet_w and inlet and wall\n\npust = pust_n or pust_s or pust_o or pust_w\n\nobstacle = wall_thing or rohr or player\n\nrohr_or_player = rohr or player\n\n=======\nSOUNDS\n=======\nsfx0 39858907 (pusten)\nsfx1 96276907 (rohrdurchpusten)\nrohr move 73985107 (rohrbewegen)\nstartlevel 38142502\nendlevel 45497300\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, rohr\nwall_s\nwall_n\nwall_o\nwall_w\nwall_nw\nwall_so\noutlet\ninlet\nflow\npust_n\npust_s\npust_o\npust_w\n\n======\nRULES\n======\n\nup [ wall | no wall_thing ] -> [ wall wall_n | ]\ndown [ wall | no wall_thing ] -> [ wall wall_s | ]\nleft [ wall | no wall_thing ] -> [ wall wall_w | ]\nright [ wall | no wall_thing ] -> [ wall wall_o | ]\n\n\n[ wall_s wall_o ] -> [ wall_s wall_o wall_so ]\n[ wall_n wall_w ] -> [ wall_n wall_w wall_nw ]\n\n[ > player | obstacle ] -> cancel\n[pust]->[]\n\nright [ | action player | ] -> [ pust_w | action player | pust_o ] again sfx0\nup [ | action player | ] -> [ pust_s | player | pust_n ] again\n\n\nright [ rohr_so pust_n | ] -> [ rohr_so | pust_o ] sfx1\n+ down [ rohr_so pust_w | ] -> [ rohr_so | pust_s ] sfx1\n\n+ up [ rohr_ns pust_n | ] -> [ rohr_ns | pust_n ] sfx1\n+ down [ rohr_ns pust_s | ] -> [ rohr_ns | pust_s ] sfx1\n\n+ left [ rohr_sw pust_n | ] -> [ rohr_sw | pust_w ] sfx1\n+ down [ rohr_sw pust_o | ] -> [ rohr_sw | pust_s ] sfx1\n\n+ right [ rohr_ow pust_o | ] -> [ rohr_ow | pust_o ] sfx1\n+ left [ rohr_ow pust_w | ] -> [ rohr_ow | pust_w ] sfx1\n\n+ right [ rohr_no pust_s | ] -> [ rohr_no | pust_o ] sfx1\n+ up [ rohr_no pust_w | ] -> [ rohr_no | pust_n ] sfx1\n\n+ left [ rohr_nw pust_s | ] -> [ rohr_nw | pust_w ] sfx1\n+ up [ rohr_nw pust_o | ] -> [ rohr_nw | pust_n ] sfx1\n\n[ pust_n rohr ] -> [ pust_n up rohr ]\n[ pust_s rohr ] -> [ pust_s down rohr ]\n[ pust_o rohr ] -> [ pust_o right rohr ]\n[ pust_w rohr ] -> [ pust_w left rohr ]\n\n[pust outlet ] -> [ outlet ]\n\n[ > rohr_or_player | rohr_or_player ] -> [ > rohr_or_player | > rohr_or_player ]\n\n( [ > Player | Crate ] -> [ > Player | > Crate ] )\n\nlate [flow]->[]\n\nlate [ inlet ] -> [ inlet flow ]\n\nlate up [ öffnung_n flow | öffnung_s no flow ] -> [ öffnung_n flow | öffnung_s flow ]\n+ late down [ öffnung_s flow | öffnung_n no flow ] -> [ öffnung_s flow | öffnung_n flow ]\n+ late right [ öffnung_o flow | öffnung_w no flow ] -> [ öffnung_o flow | öffnung_w flow ]\n+ late left [ öffnung_w flow | öffnung_o no flow ] -> [ öffnung_w flow | öffnung_o flow ]\n\n==============\nWINCONDITIONS\n==============\n\nall outlet on flow\n\n=======\nLEVELS\n=======\n\n\nmessage Oh no the factory is falling apart! Can the pipe puffer put it back together?\n\nmessage Level 1 of 8 \n\n(kinda like. fine. best of that kind of level?)\n####6##\n#.....#\n#.....4\n#.xea.#\n##....#\n##..p.#\n#######\n\nmessage Level 2 of 8\n(I like this)\n#######\n#.....#\n#.c.8.#\n#.xa..#\n#.x...#\n#.1.p.#\n#.....#\n#######\n\n( (jokey? not hard? intermediate?) )\n( ########### )\n( #.........# )\n( #...c.z...# )\n( #...xax...# )\n( #.caqxeaz.# )\n( #..x...x..# )\n( #.x.....x.# )\n( #.x.a.a.x.# )\n( #.x.....x.# )\n( #.x..p..x.# )\n( ##5#####1## )\n\n\nmessage Level 3 of 8\n\n###########\n#.....2####\n#..caaq6###\n#..x...x..#\n#..x...x..#\n#..x.a.x..#\n#..ea.aq..#\n#.........#\n#....p....#\n###########\n\n\nmessage Level 4 of 8\n#########\n#.......#\n#...c8..#\n#.6.e4..#\n#..x....#\n#.1.a...#\n#.x..cz.#\n#..p.15.#\n#.......#\n#########\n\n\n\n\n\nmessage Level 5 of 8\n(intermediate. multiple solutions. doesn't mandate the solution I like the most tho >:[ )\n###########\n#.........#\n#.p..7aaaz#\n#..c....x.#\n#........x#\n#........q#\n########1##\n\nmessage Level 6 of 8\n(tricky)\n#########....\n#.......#....\n#......c8####\n#......x#...#\n#......eaaz.#\n#..p.x......#\n#.........1.#\n#......######\n#......#.....\n########.....\n\nmessage Level 7 of 8\n( (or maybe not that hard?) hard)\n########\n#......#\n7aaaaaz#\n#....x.#\n##3...q#\n#.....##\n#.p.cz.#\n#..aqe.#\n#......#\n########\n\n\n\n\nmessage Level 8 of 8\n(not great but ok)\n########6##\n#.....#.x.#\n#.......x.#\n#.....caq.#\n#..a..eaz.#\n#...x..x..#\n#.....a.x.#\n#..p...cq.#\n#......x#.#\n#......x#.#\n#######1###\n\nmessage Thank you! The factory is back up and running. You are verily the premier pipe puffer!\n\n( (not sure if I want this or not) )\n( (fine, solvable wiht brain-usage. doesn't use puffing though sadface) )\n( ###6### )\n( #.....# )\n( #.#..a4 )\n( #...x.# )\n( #.ea..# )\n( ##p...# )\n( ####### )\n\n( (ok silly last level? ) )\n( ############## )\n( #............# )\n( #....6..2....# )\n( #...cq..ez...# )\n( #...ez...q...# )\n( #...cq..ez...# )\n( #...ez..cq...# )\n( #...cq..ez...# )\n( #...ez..cq...# )\n( #...cq..ez...# )\n( #...ez..cq...# )\n( #....1..5....# )\n( #.....p......# )\n( ############## )\n\n\n( ###6#### )\n( #......# )\n( #..a..a4 )\n( #....x.# )\n( #..ea..# )\n( ###p...# )\n( ######## )\n\n( (hard? not yet solved unsolvable lol) )\n( ###6### )\n( #.....# )\n( ##.x.a4 )\n( #.....# )\n( #.ea#.# )\n( #.p...# )\n( ####### )\n\n\n\n(\n(simple. pleasing)\n##62###\n##.x..#\n#.e...#\n#..q..#\n##....#\n.#p.###\n.####..\n\n(similarly simple/pleasing)\n###6##\n#....4\n##.a.#\n#.e..#\n#p...#\n######\n\n(whatever)\n###6##\n#..x.4\n#.ec.#\n#..q.#\n#p...#\n######\n\n(slightly harder)\n###6##\n#..x.4\n#.cq.#\n#.e..#\n#...p#\n######\n\n(fineish)\n###6##\n###.##\n#..a.4\n#..x.#\n#.e..#\n#..p.#\n######\n\n(i remember how to do this one, which is good, but it's alos not great)\n###62###\n#......#\n#..x#..#\n#...q..#\n#x.e...#\n#....p.#\n########\n\n\n( ###6## )\n( #..ea4 )\n( #....# )\n( #.p..# )\n( #....# )\n( ###### )\n\n( ###6## )\n( #..xc4 )\n( #..eq# )\n( #.p..# )\n( #....# )\n( ###### )\n\n\n( ##62## )\n( #.eq.# )\n( #....# )\n( #.p..# )\n( #....# )\n( ###### )\n\n( ##62### )\n( #.eq..# )\n( #.....# )\n( #.p...# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( ###62### )\n( #..xx..# )\n( #..eq..# )\n( #......# )\n( #......# )\n( #....p.# )\n( ######## )\n\n\n##62###\n#.xx..#\n#.eq..#\n#.p...#\n#.....#\n#.....#\n#######\n\n####6##\n#...ea4\n#.....#\n#.....#\n#.p...#\n#.....#\n#######\n\n####6##\n#...xc4\n#...eq#\n#.....#\n#.p...#\n#.....#\n#######\n\n###6###\n#..x..#\n#..eaa4\n#.....#\n#.p...#\n#.....#\n#######\n\n###62###\n#..eq..#\n#......#\n#.p....#\n#......#\n#......#\n########\n\n########\n#......#\n#......#\n#..62..#\n#..eq..#\n#.p....#\n########\n\n####6##\n#...ea4\n#.....#\n#.....#\n#.p...#\n#.....#\n#######\n\n#######\n#.....#\n#.cz..#\n#.x5p.#\n#.x2..#\n#.eq..#\n#.....#\n#######\n\n###6###\n#..ez.#\n#...ea4\n#.....#\n#.p...#\n#.....#\n#######\n\n\n\n(trivial)\n####6##\n#.....#\n#..x..4\n#..ea.#\n#.p...#\n#.....#\n#######\n\n\n####6##\n#.....#\n#..x..4\n#..ea.#\n#.p...#\n#.....#\n#######\n\n\n####6##\n#.....#\n#.c.q.#\n#p.a..4\n#.x.z.#\n#.....#\n#######\n\n##6##\n#...#\n#.p.#\n#...4\n#####\n\n.....\n.....\n.....\n.....\n.....\n\n\n( #########.... )\n( #.......6#### )\n( #.......x...# )\n( #...c.a.eaaz# )\n( #....p......# )\n( #...a.x.caaq# )\n( #.......x...# )\n( #.......1#### )\n( #########.... )\n\n\n( #########...... )\n( #.......6###### )\n( #.......x.....# )\n( #...c.a.eaaaaz# )\n( #....p........# )\n( #...a.x.caaaaq# )\n( #.......x.....# )\n( #.......1###### )\n( #########...... )\n\n\n( #########....... )\n( #.......6####### )\n( #.......x......# )\n( #..c.a..eaaaaz.# )\n( #...p..........# )\n( #..a.x..caaaaq.# )\n( #.......x......# )\n( #.......1####### )\n( #########....... )\n\n( #########....... )\n( #.......#....... )\n( #.......6####### )\n( #.......x......# )\n( #..c.a..eaaaaz.# )\n( #...p..........# )\n( #..a.x..caaaaq.# )\n( #.......x......# )\n( #.......1####### )\n( #.......#....... )\n( #########....... )\n\n( ################ )\n( #..............# )\n( #.......c8###### )\n( #.......x......# )\n( #..c.z..eaaaaz.# )\n( #...p..........# )\n( #..a.x..caaaaq.# )\n( #.......x......# )\n( #.......e4###### )\n( #..............# )\n( ################ )\n\n( ################ )\n( #..............# )\n( #.......c8###### )\n( #..c.z..x......# )\n( #...p...eaaaaz.# )\n( #..a.x.........# )\n( #.......caaaaq.# )\n( #..e.q..x......# )\n( #.......e4###### )\n( #..............# )\n( ################ )\n\n)\n\n(\ntransformation\n\n[player]->[]\n\nchoose 15 [ rohr ] [ no obstacle ] -> [ ] [ rohr ] \n(choose 1 [ player ] [ no obstacle ] -> [ ] [ player ])\n(choose 5 [ outlet ] [ wall ] -> [ wall ] [ outlet ]\nchoose 1 [ flow no outlet ] [ outlet no flow ] -> [ ] [ outlet flow ])\n\n\nchoose 1 [ no obstacle ] -> [ player ]\n\nchoose 10 option 0.5 [ no obstacle ] -> [ wall ]\n+ option 0.5 [] -> [ ]\n)\n\n\n\n", [0, 0, 2, 1, 0, 4, 3, 3, 0, 0, 0, 1, 1, 1, 3, 4, 0, 1, 1, 2, 4, 2, 4, 3, 2, 3, 2, 2, 1, 1, 0, 4, 4, 2, 3, 3, 3, 0, 3, 0, 0, 4, 2, 1, 1], "background wall:0,background wall wall_o:1,1,1,1,1,1,\n0,background wall wall_s:2,background:3,3,3,background rohr_ns:4,3,\n3,background wall wall_n:5,2,3,3,4,3,\nbackground outlet_n wall wall_n wall_nw wall_o wall_s wall_so wall_w:6,3,5,2,3,background flow rohr_so:7,3,\nbackground player:8,3,3,5,2,3,background flow inlet outlet_w wall wall_n wall_nw wall_o wall_s wall_so wall_w:9,\nbackground rohr_ow:10,3,3,3,5,2,3,\n3,3,3,3,3,5,0,\nbackground wall wall_w:11,11,11,11,11,11,0,\n", 4, "1645544832464.3308"] + ], + [ + "crate guardian", + ["title crate guardian\nauthor increpare\nhomepage www.increpare.com\nrun_rules_on_level_start\nbackground_color darkgreen\n\n(\n\nthanks to youatexample for some title advice\n\nother possible titles:\nīdōlum cistae sānctum\ngreat idol of the crates\ncrate idol\n\n\n)\n( verbose_logging )\n( debug )\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\n\n( Target1 )\n( #4b1116 )\n( ..... )\n( .000. )\n( .0.0. )\n( .000. )\n( ..... )\n\n\nTarget\ndarkblue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\n#1b2632\n\nPlayer\n#c8727a\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nCrate\n#746cc2\n00000\n0...0\n0...0\n0...0\n00000\n\n\nstatue2\nblue \n00.00\n.000.\n.000.\n00.00\n.0.0.\n\n\naura2\n#383185\n\n\n=======\nLEGEND\n=======\n\n\nstatue = statue2\npushable = crate or statue\npusher = crate or statue or player\naura = aura2\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nq = Target\n\n2 = statue2\n3 = crate and target\n4 = crate and target\n7 = statue2 and target\n8 = statue2 and target\n\nobstacle = crate or statue or wall or player\n0 = wall and aura2\n9 = aura2\na = statue2 and aura2\ne = target and aura2\nf = target and crate and aura2\n\nplayer_or_statue1_or_wall = player or wall\ncrate_or_wall = crate or wall\nj = player and aura2\nm = target and statue2 and aura2\n\n=======\nSOUNDS\n=======\n\nstatue2 move 95968304\nCrate MOVE 53883107\nendlevel 25071300\nstartlevel 46394106\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\naura2\nTarget\nPlayer, Wall, Crate, statue\n\n======\nRULES\n======\n\n[ > pusher | pushable ] -> [ > pusher | > pushable ]\n[ > pushable | wall ] -> cancel\n\nlate [ aura ] -> [ ]\n\nlate right [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\nlate down [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\n\nlate [ player_or_statue1_or_wall aura2 ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nall crate on target\n\n=======\nLEVELS\n=======\n\n\n\nmessage Level 1 of 6\n(ok level 1)\n.#######.\n.#.....#.\n.#..p..#.\n.#.....#.\n.#.***.#.\n.#.999.#.\n##.9a9.##\n#..999..#\n#..ooo..#\n#.......#\n##..#..##\n.#.....#.\n.#######.\n\nmessage Level 2 of 6\n(I dunno?)\n#######\n#.....#\n#..3..#\n#.9e9.#\n#.9a9.#\n#.999.#\n#..*..#\n#.....#\n#..p..#\n#.....#\n#######\n\nmessage Level 3 of 6\n.#######.\n.#.p...#.\n.#.***.#.\n##.999.##\n#..eme..#\n#..999..#\n#...#...#\n###...###\n..#####..\n\n\nmessage Level 4 of 6\n(OK)\n##########\n#........#\n#.*999...#\n#..9a9.o.#\n#.p9e90000\n#...*.0...\n#.....0...\n#######...\n\n\nmessage Level 5 of 6\n(OK)\n######....\n#....#....\n#....##...\n#ooo..##..\n#......##.\n##......##\n.##..999.#\n..##.9a9.#\n...##999.#\n...#.....#\n...#.***.#\n...#.....#\n...#..p..#\n...#.....#\n...#######\n\nmessage Level 6 of 6\n(ok final level! I used my brain and solved it)\n#########\n#...p...#\n#..o.o..#\n#.o***o.#\n#..*a*..#\n#.o***o.#\n#..o.o..#\n#.......#\n#########\n\nmessage Congratulations. You learned how to work with the guardian of the crates. She still keeps you at a distance, but you have earned her respect.\n\n( 00000000000 )\n( 0.........0 )\n( 0....p....0 )\n( 0...o.o...0 )\n( 0..o***o..0 )\n( 0...*a*...0 )\n( 0..o***o..0 )\n( 0...o.o...0 )\n( 0.........0 )\n( 0.........0 )\n( 00000000000 )\n\n( ####### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n\n( ######## )\n( #......# )\n( #......# )\n( #......# )\n( #..p...# )\n( #.pp...# )\n( #ppp...# )\n( ######## )\n\n(\n\nTransformations\n\nchoose 4 [] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ statue1 ]\nchoose 1 [ no obstacle ] -> [ statue2 ]\n\n\nright [ | statue1 | ] -> [ aura1 | aura1 statue1 | aura1 ]\nright [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\ndown [ no aura1 | aura1 | no aura1 ] -> [ aura1 | aura1 | aura1 ]\ndown [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\nchoose 1 [ no aura2 no obstacle ] -> [ player ]\n\nchoose 2 [no aura1 no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player ] -> [ target ]\n\n\nalt transform\n\n\nchoose 11 [ player ] -> [ no player ]\n\nchoose 4[ no player ] -> [ wall aura12 ]\n(choose 1 [ no wall | no obstacle | no wall ] -> [ | statue1| ]\nright [ | statue1 | ] -> [ aura1 | aura1 statue1 | aura1 ]\ndown [ no aura1 | aura1 | no aura1 ] -> [ aura1 | aura1 | aura1 ])\n\nchoose 1 [ no wall no aura1 no player | no obstacle no aura1 no player | no wall no aura1 no player ] -> [ |statue2| ]\nright [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\ndown [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\n(choose 1 [ no aura2 no obstacle ] -> [ player ])\n\nchoose 3 [no aura1 no obstacle ] -> [ crate ]\nchoose 3 [ no wall no player ] -> [ target ]\n\n[aura12 wall aura1] ->[aura1]\n[aura12 wall aura2] ->[aura2]\n\n\n==========\n\nchoose 5 [ player ] -> [ no player ]\n\nchoose 4[ no player ] -> [ wall ]\n\nchoose 1 [ no wall no player | no obstacle no player | no wall no player ] -> [ |statue2| ]\nright [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\ndown [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\n(choose 1 [ no aura2 no obstacle ] -> [ player ])\n\nchoose 3 [ no obstacle ] -> [ crate ]\nchoose 3 [ no wall no player ] -> [ target ]\n\n)\n\n", [2, 2, 3, 3, 2, 2, 1, 2, 2, 1, 1, 0, 2, 3, 3, 0, 1, 1, 2, 1, 3, 0, 1, 3, 0, 0, 0, 1, 2, 2, 3, 2, 1, 2, 1, 1, 0, 0, 2, 1, 1, 1, 3, 0, 0, 0, 1, 0, 0, 0, 0, 3, 3, 2], "background wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,0,\n0,1,1,aura2 background target:2,aura2 background crate:3,2,1,1,0,\n0,1,background player target:4,3,aura2 background statue2:5,3,background target:6,1,0,\n0,background crate:7,1,aura2 background:8,3,3,7,1,0,\n0,1,6,1,1,1,6,1,0,\n0,1,1,6,1,6,1,1,0,\n0,1,1,7,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n", 11, "1645544889350.864"] + ], + [ + "Don't let your goals slip away", + ["title Don't let your goals slip away\nauthor increpare [riff on david skinner's levels]\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\nbackground_color green\n\n\ncolor_palette 2\n========\nOBJECTS\n========\n\nBackground\nGREEN green\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nblack\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nDARKBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nlightgray lightgray lightgray lightgray\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange\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\nobstacle = crate or wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 78774307\ntarget move 81495507\nendlevel 52446100\nstartgame 73236703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n( [ > player | wall ] -> cancel )\n[ > player | crate | obstacle ] -> cancel\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > player | target ] -> [ > player | > target ] \n[ > target | target ] -> [ > target | > target ]\n[ > target | wall ] -> [ target | wall ]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 8\n\n(funny therefore good)\n####..\n#o*#..\n#..###\n#....#\n#.o*.#\n#.p###\n####..\n\n(meh)\n( ####.. )\n( #.o#.. )\n( #..### )\n( #o...# )\n( #*.*.# )\n( #.p### )\n( ####.. )\n\n\nmessage level 2 of 8\n\n\n(p. good!)\n..####...\n###..####\n#....*o.#\n#.#..#.o#\n#..*.#p.#\n#########\n\n( (Easy but funny) )\n( ###### )\n( #.*..# )\n( #.#.*# )\n( #....# )\n( #p*o.# )\n( #.oo.# )\n( ###### )\n\n\nmessage level 3 of 8\n\n(not bad)\n######\n##o..#\n#.#oo#\n#.*..#\n#.*..#\n#p*..#\n######\n\nmessage level 4 of 8\n\n########\n#...*..#\n#.o#.@p#\n#..*...#\n#####.o#\n....####\n\nmessage level 5 of 8\n\n\n\n(decent!)\n#####.\n#.*.##\n#.o.p#\n##.o.#\n.##.*#\n..##.#\n...###\n\nmessage level 6 of 8\n\n(fine right?)\n......###.\n#######o##\n#...*o...#\n#.#.#.#.##\n#.p.*...#.\n#########.\n\nmessage level 7 of 8\n(no idea. damnit spoiled but also ok.)\n####..\n#..#..\n#.*###\n#..*p#\n#..o.#\n#o.###\n####..\n\n\n\nmessage level 8 of 8\n(Tricky but also decent? involves fun manipulations)\n#######\n#..#..#\n#.o*o.#\n#.*p*##\n#.o*o.#\n#..#..#\n#######\n\n\nmessage Congratulations! You didn't let your goals run away from you.\n\n(transform\n\n[player]->[]\n[target]->[]\n[crate]->[]\n\nchoose 2 [] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player ] -> [ target ] \n\n)\n\n", [0, 0, "undo", "undo", 1, 0, 0, 3, 3, 3, 2, 1, 1, 0, 0, 1, 0, 0, "restart", 0, 0, 0, 2, 3, 3, 2, 1, 1, 2, 1, 0, 0, 0, 0, 0, 2, 0, 1, 1, 1, 3, 3, 3, "undo", "undo", 3, 3, 1, 1, 1, 2, 3, 0, 1, 1, "restart", 0, 0, 1, "restart", 3, 0, 0, 1, 1, 1, 1, "undo", 0, 1, 2, 2, 1, 2, 2, 1, 2, 2, 3, 3, 0, 2, 1, 1, 0, 0, 3, 3, 3, 3, 3, 1, 1], "background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,0,1,\n1,0,0,0,0,1,1,0,background player:2,\n0,background crate:3,1,1,1,0,1,1,1,\n0,1,background target:4,0,0,1,0,1,background crate target:5,\n0,0,1,0,1,1,1,1,1,\n", 3, "1645544970753.6125"] + ], + [ + "Eyeball-watching flowers bloom", + ["title Eyeball-watching flowers bloom\nauthor increpare\nhomepage www.increpare.com\n\n\n(thanks to bluemelon555 for title suggestions)\n\nbackground_color #094118\ntext_color #f7e26b\nrun_rules_on_level_start\n\nverbose_logging\n\n(debug)\n\n========\nOBJECTS\n========\n\nBackground\n#0f5321 #44891a\n00000\n01000\n01010\n00010\n00000\n\n\n\n\nWall_inactivated\ntransparent #44891a #a3ce27\n01110\n12121\n11211\n12121\n01110\n\n\n\nwall_activated =\ntransparent #e06f8b #a3ce27 #f7e26b\n01120\n21111\n11311\n11112\n02110\n\nwall_burnt\ntransparent #430006 #000000\n01210\n22222\n21221\n12222\n02210\n\n\nplayer_up\nwhite yellow red black\n10201\n02320\n00200\n00000\n.000.\n\n\nplayer_down\nwhite yellow red black\n.000.\n00000\n00200\n02320\n10201\n\n\nplayer_left\nwhite yellow red black\n1000.\n02000\n23200\n02000\n1000.\n\n\nplayer_right\nwhite yellow red black\n.0001\n00020\n00232\n00020\n.0001\n\n\nCrate\ntransparent #9d9d9d #bfbfbf #737373\n00120\n01112\n31112\n33111\n03330\n\n\nstrahlen\nyellow\n\nstrahlen_top\nyellow\n00000\n00000\n.....\n.....\n.....\n\nstrahlen_bottom\nyellow\n.....\n.....\n.....\n00000\n00000\n\nstrahlen_left\nyellow\n00...\n00...\n00...\n00...\n00...\n\nstrahlen_right\nyellow\n...00\n...00\n...00\n...00\n...00\n\n\nburnout\n#0f5321 #430006 #000000\n01210\n22222\n21221\n12222\n02210\n\n\n=======\nLEGEND\n=======\n\nplayer = player_up or player_down or player_left or player_right\nwall = Wall_inactivated or wall_activated\n. = Background\n# = Wall_inactivated\nstrahlen_all = strahlen or strahlen_top or strahlen_bottom or strahlen_left or strahlen_right\n\nP = Player_up\nq = player_down\nr = player_left\ns = player_right\n\n* = crate\no = background\n@ = background\n\nobstacle = crate or wall or player\nstrahlen_or_player = strahlen or player\n=======\nSOUNDS\n=======\n\nCrate MOVE 21697107\nendlevel 23649709\nstartlevel 40644309\nstartgame 98216309\n\nsfx0 94788500 (Blume)\n(58036508)\nsfx1 78837102 (burn)\n\nsfx2 94214904 (deadend)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nstrahlen_all\nPlayer, Wall, Crate, burnout, wall_burnt\n\n======\nRULES\n======\n\nup [ > player_up | wall_activated ] -> cancel \ndown [ > Player_down | wall_activated ] -> cancel \nleft [ > Player_left | wall_activated ] -> cancel \nright [ > Player_right | wall_activated ] -> cancel \n\n[wall_burnt] -> cancel sfx2\n\nup [ > Player | Crate | no obstacle ] -> [ | Player_up | Crate ]\ndown [ > Player | Crate | no obstacle ] -> [ | Player_down | Crate ]\nleft [ > Player | Crate | no obstacle ] -> [ | Player_left | Crate ]\nright [ > Player | Crate | no obstacle ] -> [ | Player_right | Crate ]\n\nup [ > Player | no obstacle ] -> [ | Player_up ]\ndown [ > Player | no obstacle ] -> [ | Player_down ]\nleft [ > Player | no obstacle ] -> [ | player_left ]\nright [ > Player | no obstacle ] -> [ | player_right ]\n\n[ up player ] -> [ player_up ]\n[ down player ] -> [ player_down ]\n[ left player ] -> [ player_left ]\n[ right player ] -> [ player_right ]\n\n[strahlen_all]->[]\nup [ player_up | no obstacle ] -> [ player_up | strahlen ]\ndown [ player_down | no obstacle ] -> [ player_down | strahlen ]\nleft [ player_left | no obstacle ] -> [ player_left | strahlen ]\nright [ player_right | no obstacle ] -> [ player_right | strahlen ]\n\n[ strahlen_or_player | strahlen | no strahlen no obstacle ]-> [ strahlen_or_player | strahlen | strahlen ]\n\n[ strahlen_or_player | strahlen | wall_activated ] -> [ strahlen_or_player | strahlen | wall_burnt ] sfx1\n[ strahlen_or_player | strahlen | Wall_inactivated ] -> [ strahlen_or_player | strahlen | wall_activated ] sfx0\n\n\nup [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_bottom ]\ndown [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_top ]\nleft [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_right ]\nright [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_left ]\n\n\nup [ player_up | no strahlen ]-> [ player_up| strahlen_bottom ]\ndown [ player_down | no strahlen ]-> [ player_down | strahlen_top]\nleft [ player_left | no strahlen ]-> [ player_left | strahlen_right ]\nright [ player_right | no strahlen ]-> [ player_right | strahlen_left ]\n\nup [ player_up | Wall_activated ] -> [ player_up | wall_burnt ] sfx1\nup [ player_up | Wall_inactivated ] -> [ player_up | wall_activated ] sfx0\ndown [ player_down | Wall_activated ] -> [ player_down | wall_burnt ] sfx1\ndown [ player_down | Wall_inactivated ] -> [ player_down | wall_activated ] sfx0\nleft [ player_left | Wall_activated ] -> [ player_left | wall_burnt ] sfx1\nleft [ player_left | Wall_inactivated ] -> [ player_left | wall_activated ] sfx0\nright [ player_right | Wall_activated ] -> [ player_right | wall_burnt ] sfx1\nright [ player_right | Wall_inactivated ] -> [ player_right | wall_activated ] sfx0\n\n==============\nWINCONDITIONS\n==============\n\nno Wall_inactivated\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 3\n\n.###.\n#...#\n#.q.#\n.###.\n\nmessage level 2 of 3\n\n\n(ok!)\n.####.\n#....#\n#.*..#\n#.p*.#\n#....#\n.####.\n\nmessage level 3 of 3\n\n(decent)\n.#####.\n#.....#\n#..*..#\n#.*p*.#\n#..*..#\n#.....#\n.#####.\n\nmessage Congratulations. The gardens look amazing.\n\n\n(\n(meh)\n.###.\n#...#\n#...#\n#.q.#\n.###.\n)\n(\n(meh)\n.####.\n#....#\n#.p..#\n#..*.#\n#....#\n.####.\n\n.#####.\n#.....#\n#.....#\n#..#..#\n#...*.#\n#...p.#\n.#####.\n\n(maybe ok? kinda cheated to find the solution but i could've figured it out!)\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#....q#\n.####=.\n\n(i could not solve this and I think that it's bad)\n.###.\n#...#\n#...#\n#...#\n#...#\n#.*.#\n#.p.#\n.###.\n\n\n.####.\n#....#\n#....#\n#....#\n#....#\n.####.\n\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n.#####.\n\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n.#####.\n\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n.#####.\n\n.######.\n#......#\n#......#\n#......#\n#......#\n#......#\n#......#\n#......#\n.######.\n)\n\n(Transform\n\n[player]->[]\n[crate]->[]\n\n\nchoose 2 [ ] -> [ wall_inactivated ]\n\nchoose 1 [ no obstacle ] -> [ player_up ]\n+ [ no obstacle ] -> [ player_down ]\n+ [ no obstacle ] -> [ player_left ] \n+ [ no obstacle ] -> [ player_right ]\n\nchoose 1 [ no obstacle ] -> [ crate ]\n\n[strahlen]->[]\nup [ player_up | no obstacle ] -> [ player_up | strahlen ]\ndown [ player_down | no obstacle ] -> [ player_down | strahlen ]\nleft [ player_left | no obstacle ] -> [ player_left | strahlen ]\nright [ player_right | no obstacle ] -> [ player_right | strahlen ]\n\n[ strahlen_or_player | strahlen | no strahlen no obstacle ]-> [ strahlen_or_player | strahlen | strahlen ]\n[ strahlen_or_player | strahlen | Wall_inactivated ] -> [ strahlen_or_player | strahlen | wall_activated ]\n\nup [ player_up | Wall_activated ] -> cancel\nup [ player_up | Wall_inactivated ] -> [ player_up | wall_activated ]\ndown [ player_down | Wall_inactivated ] -> [ player_down | wall_activated ]\nleft [ player_left | Wall_inactivated ] -> [ player_left | wall_activated ]\nright [ player_right | Wall_inactivated ] -> [ player_right | wall_activated ]\n\n\n)\n\n", [1, 2, 3, 3, 0, "undo", 0, 0, 3, 2, 3, 2, 1, 1, 0, 0, 1, 0, 1, 2, 3], "background:0,background wall_activated:1,1,1,background wall_inactivated:2,0,\n1,0,0,0,background crate:3,1,\n2,3,background player_right strahlen_right:4,0,0,2,\n2,0,background strahlen:5,0,0,2,\n2,0,5,0,0,1,\n0,2,background strahlen_left wall_burnt:6,1,1,0,\n", 3, "1645545001785.496"] + ], + [ + "Subway upholstry snot smearing championship", + ["title Subway upholstry snot smearing championship\nauthor increpare\nhomepage www.increpare.com\ncolor_palette 1\n\nrun_rules_on_level_start\n\nbackground_color #131316\ntext_color #6abe30\n========\nOBJECTS\n========\n\nBackground\n#5b6ee1 #639bff #ac3232\n00011\n10101\n12101\n20201\n10200\n\ntilled \n#6abe30 #5b6ee1\n01110\n01001\n10101\n10110\n01011\n\n\n\nWall\n#e7dcc0 #b478cb #e1ae5b #d77bba #76428a\n00000\n01220\n01330\n04330\n00000\n\nwallalt\n#e7dcc0 #e1ae5b #e15b5b #ab7722\n00000\n01120\n01120\n03330\n00000\n\n\n\nwallt\n#fdefd4 #e7dcc0 #42b7f0 #65dadf #54cf6f\n00000\n11111\n12231\n14231\n11111\n\nwallb\n#e7dcc0 #e96ff2 #780d80 #e442f0 #c2bb91\n00000\n01120\n02330\n00000\n44444\n\nwalltb\n#fdefd4 #e7dcc0 #6c1710 #ab1d11 #c2bb91\n00000\n11111\n12331\n11111\n44444\n\nwalltbalt\n#fdefd4 #e7dcc0 #fbf236 #fba736 #c2bb91\n00000\n11111\n12231\n11111\n44444\n\n\nPlayer\n#5b6ee1 #524b24 #eec39a #3f3f74 #000000\n01110\n02220\n23332\n03030\n04040\n\n\nCrate\ntransparent #99e550 #6abe30\n01110\n12221\n12221\n12221\n01110\n\nvoid ,\n#131316\n\n\n=======\nLEGEND\n=======\n\n\n. = Background\n# = Wall\n1 = wallt\n2 = wallb\n3 = walltb\n\n\nP = Player\n* = Crate and tilled\n@ = Crate and tilled\nO = Background\n\n\nwalls = Wall or wallt or wallb or walltb or wallalt or walltbalt\n\nwalls_or_void = walls or void\n\ngoodstate = walls_or_void or tilled\n=======\nSOUNDS\n=======\n\nCrate MOVE 41474107\nsfx0 3420907 (new snot)\nstartlevel 24347308\nendlevel 56675308\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ntilled\nPlayer, walls_or_void, Crate\n\n======\nRULES\n======\n\ndown [ no walls | walls | walls ] -> [ | wallt | walls ]\n\ndown [ walls | walls | no walls ] -> [ walls | wallb | ]\n\ndown [ no walls | walls | no walls ] -> [ | walltb | ]\n\ndown [ no wallalt | wall | wall | no wallalt ] -> [ | wall | wallalt | ] \n\nright [ no walltbalt | walltb | walltb | no walltbalt ] -> [ | walltbalt | walltb | ] \n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ < Player | Crate ] -> [ < Player | < Crate ]\n\nlate [ crate no tilled ] -> [ crate tilled ] sfx0\n\n==============\nWINCONDITIONS\n==============\n\nall Background on goodstate\n\n=======\nLEVELS\n=======\n\nmessage Go on, smear it ALL around!\n\nmessage Carriage 1 of 7\n(level 1)\n133331\n#p.*.#\n#*.1.#\n#..2.#\n#...*#\n233332\n\n\nmessage Carriage 2 of 7\n(level2)\n133331\n#....#\n#p.**#\n#.1**#\n232332\n\nmessage Carriage 3 of 7\n(slightly wholesome)\n13331,\n#...21\n#p...#\n21***#\n,21**#\n,,21.#\n,,,232\n\nmessage Carriage 4 of 7\n(I like this level! has personality)\n,,1331,,,\n132.*2331\n#.*.p...#\n#*3*.1*.#\n#.*..#..#\n233332332\n\n(\n(not actually taht scary, just need to use head a tiny amount)\n133331\n#.***#\n#*3**#\n#****#\n#....#\n#..p.#\n233332\n)\n\nmessage Carriage 5 of 7\n(pretty nice)\n133331\n#....#\n#.3p.#\n#..**#\n#****#\n#....#\n233332\n\n\nmessage Carriage 6 of 7\n(ok crate management?)\n133331,13331\n#*.*.232*.*#\n#p.....**3*#\n#...1....*.#\n#*.*#3333332\n23332,,,,,,,\n\nmessage Carriage 7 of 7\n(Decisions need to be made. ok conceptually?)\n,1313131,\n12.2*2.21\n#.*...*.#\n#3.3.3.3#\n#...*...#\n#3.3.3.3#\n#.*.p.*.#\n21.1.1.12\n,2323232,\n\nmessage All done! Very satisfying! \n\n(\n\n######\n#....#\n#.*.*#\n#p#.*#\n######\n\n\n######\n#p.*.#\n#*.#.#\n#..#.#\n#...*#\n######\n\n######\n#*.###\n#..#.#\n#p*#*#\n#...*#\n######)\n\n(\n\nTRANSFORM\n\n[ player ] -> []\n[ crate ] -> []\n\nchoose 4 [ ] - > [ wall ]\nchoose 1 [ no wall | no wall ] -> [ player | crate ]\n\n)\n", [1, 2, 3, 0, 1, 3, 3, 3, 3, 3, 2, 0, 1, 2, 3, 0, 1, 1, 1, 2, 1, 0, 3, 3, 1, 2, 2, 1, 1, 1, 3, 0, 0, 1, 3, 0, 0, 1, 2, 1, 1, 3, 2, 2, 3, 0, 2], "background void:0,background wallt:1,background wall:2,background wallalt:3,2,background wallb:4,0,background walltb:5,background tilled:6,\nbackground crate tilled:7,6,background walltbalt:8,1,4,7,5,6,5,\n8,6,6,7,7,8,5,6,6,\n7,background player:9,5,1,4,6,1,2,4,\n0,8,6,6,7,8,0,5,background:10,\n10,10,5,0,1,2,3,2,4,\n", 8, "1645545059102.073"] + ], + [ + "Double-Entry Bookkeeping Simulator#1", + ["title Double-Entry Bookkeeping Simulator\nauthor increpare\nhomepage www.increpare.com\n\n( verbose_logging )\nrun_rules_on_level_start\n\nbackground_color #404040\n\nagain_interval 0.1\n\n\n( Svelte Version für Simulieren \nhttps://www.puzzlescript.net/editor.html?hack=a52aae823542d184b57fc3301627a81a \n)\n\n========\nOBJECTS\n========\n\nBackground\n#404040\n\n\n\nWall\n#000000\n\n\nPlayer\ntransparent #ffffff\n01110\n01010\n11111\n00100\n01010\n\nblue_raw\n#1e88e5\n\n\nblue1 \n#003461 #1e88e5\n00100\n01100\n00100\n00100\n01110\n\nblue2 \n#003461 #1e88e5\n01100\n00010\n00100\n01000\n01110\n\nblue3 \n#003461 #1e88e5\n01100\n00010\n01100\n00010\n01100\n\nblue4 \n#003461 #1e88e5\n01000\n01000\n01010\n01110\n00010\n\nblue5 \n#003461 #1e88e5\n01110\n01000\n01100\n00010\n01100\n\nblue6 \n#003461 #1e88e5\n00100\n01000\n01100\n01010\n00100\n\nblue7 \n#003461 #1e88e5\n01110\n00010\n00010\n00100\n00100\n\nblue8 \n#003461 #1e88e5\n00100\n01010\n00100\n01010\n00100\n\nblue9 \n#003461 #1e88e5\n00110\n01010\n00110\n00010\n00010\n\nred_raw\n#d81b60\n\nred1 \n#56001f #d81b60\n00100\n01100\n00100\n00100\n01110\n\nred2 \n#56001f #d81b60\n01100\n00010\n00100\n01000\n01110\n\nred3 \n#56001f #d81b60\n01100\n00010\n01100\n00010\n01100\n\nred4 \n#56001f #d81b60\n01000\n01000\n01010\n01110\n00010\n\nred5 \n#56001f #d81b60\n01110\n01000\n01100\n00010\n01100\n\nred6 \n#56001f #d81b60\n00100\n01000\n01100\n01010\n00100\n\nred7 \n#56001f #d81b60\n01110\n00010\n00010\n00100\n00100\n\nred8 \n#56001f #d81b60\n00100\n01010\n00100\n01010\n00100\n\nred9 \n#56001f #d81b60\n00110\n01010\n00110\n00010\n00010\n\nonce\ntransparent\n\ncounted\nwhite\n.....\n.....\n.....\n...0.\n.....\n\ncounting\nyellow\n.....\n.0...\n.....\n.....\n.....\n\ndeleting\nyellow\n00000\n0...0\n0...0\n0...0\n00000\n\ndeleted\norange\n.....\n.....\n...0.\n.....\n.....\n\nwall1\n#000000 #1f1f1f\n00100\n01100\n00100\n00100\n01110\n\nwall2\n#000000 #1f1f1f\n01100\n00010\n00100\n01000\n01110\n\nwall3\n#000000 #1f1f1f\n01100\n00010\n01100\n00010\n01100\n\nwall4\n#000000 #1f1f1f\n01000\n01000\n01010\n01110\n00010\n\nwall5\n#000000 #1f1f1f\n01110\n01000\n01100\n00010\n01100\n\nwall6\n#000000 #1f1f1f\n00100\n01000\n01100\n01010\n00100\n\nwall7\n#000000 #1f1f1f\n01110\n00010\n00010\n00100\n00100\n\nwall8\n#000000 #1f1f1f\n00100\n01010\n00100\n01010\n00100\n\nwall9\n#000000 #1f1f1f\n00110\n01010\n00110\n00010\n00010\n\n=======\nLEGEND\n=======\n\nwalllabel = wall1 or wall2 or wall3 or wall4 or wall5 or wall6 or wall7 or wall8 or wall9\nred = red_raw or red1 or red2 or red3 or red4 or red5 or red6 or red7 or red8 or red9\n\nblue = blue_raw or blue1 or blue2 or blue3 or blue4 or blue5 or blue6 or blue7 or blue8 or blue9\n\nblue_other = blue\nred_other = red\n\ncoloured = red or blue\n\npushable = red or blue\n. = Background\n# = Wall\nP = Player\n* = red_raw\n@ = blue_raw\n\nobstacle = pushable or wall or player\n\n=======\nSOUNDS\n=======\n\nred move 76964107\nblue move 73247707\nsfx0 66382107 (destroy)\nsfx1 49518300 (destroy start)\n\nstartlevel 46354708\nendlevel 70029700\nstartgame 40047300\n\n================\nCOLLISIONLAYERS\n================\n\nonce, counted\ncounting\ndeleted\nBackground\nPlayer, Wall, pushable\ndeleting\nwalllabel\n\n======\nRULES\n======\n\n[ moving player ] [ deleted ] -> [ moving player ] [ ]\n\n[ blue no deleting ] -> [ blue_raw ]\n[ red no deleting ] -> [ red_raw ]\n\n[ > Player | pushable ] -> [ > Player | > pushable ]\n\n\nstartloop\n\nlate [ player no once no deleting ] [ blue no counted no deleting ] -> [ player once ] [ once blue ]\n\nlate [ once blue_raw no deleting ] -> [ counting blue1 counted ]\nlate [ once blue1 no deleting ] -> [ counting blue2 counted ]\nlate [ once blue2 no deleting ] -> [ counting blue3 counted ]\nlate [ once blue3 no deleting ] -> [ counting blue4 counted ]\nlate [ once blue4 no deleting ] -> [ counting blue5 counted ]\nlate [ once blue5 no deleting ] -> [ counting blue6 counted ]\nlate [ once blue6 no deleting ] -> [ counting blue7 counted ]\nlate [ once blue7 no deleting ] -> [ counting blue8 counted ]\nlate [ once blue8 no deleting ] -> [ counting blue9 counted ]\n\nlate [once]->[]\n\nlate [ counting blue no deleting | no counting blue_other no deleting ] -> [ counting blue | counting blue ]\nlate [counting]->[]\n\nendloop\n\n\nstartloop\nlate [ player no once ] [ red no counted no deleting ] -> [ player once ] [ once red ]\n\nlate [ once red_raw no deleting ] -> [ counting red1 counted ]\nlate [ once red1 no deleting ] -> [ counting red2 counted ]\nlate [ once red2 no deleting ] -> [ counting red3 counted ]\nlate [ once red3 no deleting ] -> [ counting red4 counted ]\nlate [ once red4 no deleting ] -> [ counting red5 counted ]\nlate [ once red5 no deleting ] -> [ counting red6 counted ]\nlate [ once red6 no deleting ] -> [ counting red7 counted ]\nlate [ once red7 no deleting ] -> [ counting red8 counted ]\nlate [ once red8 no deleting ] -> [ counting red9 counted ]\n\nlate [once]->[]\n\nlate [ counting red no deleting | no counting red_other no deleting ] -> [ counting red | counting red ]\nlate [counting]->[]\n\nendloop\n\n\nrandom late [ deleting red1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting red2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting red3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting red4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting red5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting red6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting red7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting red8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting red9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting blue1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting blue2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting blue3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting blue4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting blue5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting blue6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting blue7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting blue8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting blue9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting red1 | deleting blue1 ] -> [ wall wall1 deleted | wall wall1 deleted ] again sfx0\n+ late [ deleting red2 | deleting blue2 ] -> [ wall wall2 deleted | wall wall2 deleted ] again sfx0\n+ late [ deleting red3 | deleting blue3 ] -> [ wall wall3 deleted | wall wall3 deleted ] again sfx0\n+ late [ deleting red4 | deleting blue4 ] -> [ wall wall4 deleted | wall wall4 deleted ] again sfx0\n+ late [ deleting red5 | deleting blue5 ] -> [ wall wall5 deleted | wall wall5 deleted ] again sfx0\n+ late [ deleting red6 | deleting blue6 ] -> [ wall wall6 deleted | wall wall6 deleted ] again sfx0\n+ late [ deleting red7 | deleting blue7 ] -> [ wall wall7 deleted | wall wall7 deleted ] again sfx0\n+ late [ deleting red8 | deleting blue8 ] -> [ wall wall8 deleted | wall wall8 deleted ] again sfx0\n+ late [ deleting red9 | deleting blue9 ] -> [ wall wall9 deleted | wall wall9 deleted ] again sfx0\n\nlate [counted]->[]\n\n\nlate [ red1 | blue1 ] -> [ deleting red1 | deleting blue1 ] again sfx1 \nlate [ red2 | blue2 ] -> [ deleting red2 | deleting blue2 ] again sfx1 \nlate [ red3 | blue3 ] -> [ deleting red3 | deleting blue3 ] again sfx1 \nlate [ red4 | blue4 ] -> [ deleting red4 | deleting blue4 ] again sfx1 \nlate [ red5 | blue5 ] -> [ deleting red5 | deleting blue5 ] again sfx1 \nlate [ red6 | blue6 ] -> [ deleting red6 | deleting blue6 ] again sfx1 \nlate [ red7 | blue7 ] -> [ deleting red7 | deleting blue7 ] again sfx1 \nlate [ red8 | blue8 ] -> [ deleting red8 | deleting blue8 ] again sfx1 \nlate [ red9 | blue9 ] -> [ deleting red9 | deleting blue9 ] again sfx1 \n\nlate [ deleting red1 | no deleting red1 ] -> [ deleting red1 | deleting red1 ]\nlate [ deleting red2 | no deleting red2 ] -> [ deleting red2 | deleting red2 ]\nlate [ deleting red3 | no deleting red3 ] -> [ deleting red3 | deleting red3 ]\nlate [ deleting red4 | no deleting red4 ] -> [ deleting red4 | deleting red4 ]\nlate [ deleting red5 | no deleting red5 ] -> [ deleting red5 | deleting red5 ]\nlate [ deleting red6 | no deleting red6 ] -> [ deleting red6 | deleting red6 ]\nlate [ deleting red7 | no deleting red7 ] -> [ deleting red7 | deleting red7 ]\nlate [ deleting red8 | no deleting red8 ] -> [ deleting red8 | deleting red8 ]\nlate [ deleting red9 | no deleting red9 ] -> [ deleting red9 | deleting red9 ]\n\n\nlate [ deleting blue1 | no deleting blue1 ] -> [ deleting blue1 | deleting blue1 ]\nlate [ deleting blue2 | no deleting blue2 ] -> [ deleting blue2 | deleting blue2 ]\nlate [ deleting blue3 | no deleting blue3 ] -> [ deleting blue3 | deleting blue3 ]\nlate [ deleting blue4 | no deleting blue4 ] -> [ deleting blue4 | deleting blue4 ]\nlate [ deleting blue5 | no deleting blue5 ] -> [ deleting blue5 | deleting blue5 ]\nlate [ deleting blue6 | no deleting blue6 ] -> [ deleting blue6 | deleting blue6 ]\nlate [ deleting blue7 | no deleting blue7 ] -> [ deleting blue7 | deleting blue7 ]\nlate [ deleting blue8 | no deleting blue8 ] -> [ deleting blue8 | deleting blue8 ]\nlate [ deleting blue9 | no deleting blue9 ] -> [ deleting blue9 | deleting blue9 ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nno coloured\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 9\n\n(improved version?)\n.....######\n.....#....#\n....##..@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n\nmessage Level 2 of 9\n\n#######...\n#@#@#@#...\n#@#@#@#...\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n.....#p..#\n.....#####\n\n\n\n\n\nmessage Level 3 of 9\n(ok? not too hard)\n#######.\n#.....#.\n#..*.@#.\n####.###\n.#.....#\n.#.*.@.#\n.#..p..#\n####.###\n#..*.@#.\n#.....#.\n#######.\n\n\n\nmessage Level 4 of 9\n#######..\n#.....#..\n#...@.#..\n#...@.###\n#...@.#@#\n#.....#.#\n#.p..***#\n#.....#.#\n#...@.#.#\n#...@...#\n#...@.###\n#.....#..\n#######..\n\n\nmessage Level 5 of 9\n\n(Actually tricky? or a bit overwhelming maybe?)\n(requires silly batching. i like this)\n#########\n#...#...#\n#..***..#\n#.......#\n####.####\n#.......#\n#..@@@p.#\n#...#...#\n#########\n\nmessage Level 6 of 9\n(possibly ok? IDK? WE?)\n#########\n#.......#\n#.*..@.*#\n#..**..@#\n#..**.@@#\n#.*..*..#\n#..p....#\n#########\n\nmessage Level 7 of 9\n(p ok? solution involves knowing something, but maybe you just stumble through it without knowing the thing)\n\n#####..\n#@@@#..\n#@@@##.\n#@#.@##\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\nmessage Level 8 of 9\n(p. ok level)\n###########\n#.........#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.p.......#\n#.........#\n###########\n\nmessage Level 9 of 9\n(ok final level maybe?)\n(fixed version?)\n...####....\n####..#....\n#@..*.#....\n###...#....\n..#.*#####.\n..#.*#.p.#.\n..#****@@#.\n..#.@@...#.\n..#.@@...#.\n..#.#@...##\n..#.......#\n..####....#\n.....######\n\nmessage Congratulations. You have mastered all the numbers, from 1 up to 9!\n\n(DISCARD PILE::::)\n\n(BAD IDEAS FOR FIRST LEVEL END )\n(thje better version. maybe ok early level?)\n( ####### )\n( #..#..# )\n( #..*.p# )\n( #..*..# )\n( #.....# )\n( ###.### )\n( #.....# )\n( #..@..# )\n( #..@..# )\n( #..#..# )\n( ####### )\n\n\n( ########## )\n( #@...##### )\n( ##...##### )\n( ##...##### )\n( ##@..##### )\n( ###...#### )\n( ###...#### )\n( ###@..#### )\n( ####.....# )\n( ####.***.# )\n( ####..p..# )\n( ########## )\n\n\n( audio test level)\n( ############# )\n( #..@........# )\n( #..@....@@..# )\n( #..@....@@@.# )\n( #..@.@..@@@.# )\n( #.*....*....# )\n( #..*.*..***.# )\n( #..*....***.# )\n( #..*....*...# )\n( #....p......# )\n( #...........# )\n( ############# )\n\n(level 2/3?)\n( ########## )\n( #........# )\n( #.**.@@@.# )\n( #........# )\n( #...p....# )\n( #........# )\n( ########## )\n\n(ok early level? meh other level does this but better IMO)\n( ###### )\n( #....# )\n( #.@.*# )\n( #.@.*# )\n( ###.## )\n( #....# )\n( #..p.# )\n( #....# )\n( ###.## )\n( #.@.*# )\n( #.@.*# )\n( #....# )\n( ###### )\n\n(ok level I think?)\n( ############# )\n( ####@.*...### )\n( ######*##.### )\n( #.....*.....# )\n( #.@@@...@@@.# )\n( #...........# )\n( #.....p.....# )\n( #...........# )\n( ############# )\n\n(\n\n(needs a few more steps of indirection on the right)\n#########\n#####*###\n#...#*###\n#.**@*###\n#.......#\n#@@..@@.#\n####p...#\n#########\n\n##############\n#....##......#\n#....##*.....#\n#.....#*.....#\n#...**@*.....#\n#............#\n###@@....@@..#\n######.p.....#\n######.......#\n##############\n\n###########\n#**@@***@@#\n#**..***..#\n#.........#\n#.........#\n#...@.@.@.#\n#.p.......#\n#...@.@.@.#\n#.........#\n###########\n\n##############\n#...#........#\n*.@.#........#\n#.#####**....#\n#.##**@**....#\n#............#\n####...@.@.@.#\n...#.p@.@.@..#\n...#.........#\n...###########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##....p..#\n##########\n\n\n(damnit a shortcut/trivialisation)\n##########\n####..####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n#@..######\n##..######\n##.*######\n##..#.p.##\n##****@@##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n(pedagogical version of other level)\n#############\n#@@*#@@#@####\n#@@*#@*#@####\n###*##*#*####\n###.......*.#\n###.......*.#\n#########.*.#\n#########p..#\n#############\n\n##########\n#........#\n#...@....#\n#........#\n#...**.@.#\n#.@.**...#\n#........#\n#.p..@...#\n#........#\n##########\n\n\n.#########.\n.#@.######.\n.#..######.\n.#****...#.\n.#*.**.p.#.\n###.**...#.\n#...@@*@@#.\n#...@@...#.\n#...@@...#.\n#@@*@@*@@#.\n#...*....#.\n#...@....#.\n#...@....#.\n##########.\n\n##########\n##@.##...#\n##..##.p.#\n###***...#\n##..***@@#\n##..@@...#\n##..@@...#\n##...@...#\n##.......#\n##.......#\n##########\n\n#########\n#@.##...#\n#..##.p.#\n##****@@#\n#..@@...#\n#...@...#\n#.......#\n#.......#\n#########\n\n##########\n####*#####\n#@.#*.p.##\n##****@@##\n##.@@...*#\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n\n\n##########\n#..#######\n#..#######\n#..##.p.##\n##****@@##\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n############\n#....#######\n#....#*#####\n#....#*.p.##\n#*##****@@##\n#.##.@@...*#\n#@##.@@...##\n####.#@...##\n####.......#\n####.......#\n############\n\n.#########...\n.#..######...\n.#..######...\n.##......#...\n.#.....p.#...\n##.......#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n##########...\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.......#\n#......*#\n#.....@*#\n######.##\n#....#.*#\n#.p...@.#\n#.......#\n#########\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.p.....#\n#......*#\n#.....@*#\n#.......#\n#....@.*#\n#.......#\n#########\n\n(is this funnier than above? I don't think so but I@m not sure)\n###########\n#.........#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.p.......#\n#.........#\n###########\n\n(technically harder than above but also more work)\n################\n#..............#\n#..............#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#.p............#\n#..............#\n################\n\n\n#################\n#...............#\n#...............#\n#..@@@.@@@.@@@..#\n#...*...*...*...#\n#..@@@.@@@.@@@..#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#...............#\n#################\n\n#################\n#...............#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n...............\n...............\n..@@@.@@@.@@@..\n...*...*...*...\n..@@@.@@@.@@@..\n...............\n...............\n.......p.......\n...............\n...............\n\n..........@.@...\n..........@.@...\n..........@*@...\n.......@@@*.*@@@\n..........@.@...\n..........@.@...\n..........@.@...\n................\n................\n\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n########\n#......#\n#......#\n#..@.*.#\n#......#\n###..*##\n####.###\n#p.@...#\n#......#\n####.###\n#......#\n#......#\n########\n\n\n...################\n..................#\n....@.............#\n.....@............#\n.@.**.@...........#\n..@.**.@..........#\n...@.**...........#\n....@.**..........#\n......p*.@........#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#################\n\n.........\n.........\n.#.#.#.#.\n.@.*.@.*.\n.#.#.#.#.\n.@.*.@.*.\n*#@#*#@#*\n.........\n..p......\n\n\n..#.#.#.#..\n...........\n..#.#.#.#..\n...........\n..#.#.#.#..\n...p.......\n\n.#.#.#.#.\n.@.*.*.@.\n.#.#.#.#.\n.@.*.*.@.\n*#@#.#@#*\n..p......\n\n(meh)\n#########\n#...@####\n#..*.@###\n#@..*.@##\n##@..*.@#\n###@..*.#\n####@p..#\n#########\n\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n(meeeeh. I think not great? too long but also if short too randomo)\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n###########\n###########\n##...@#####\n##..*.@####\n##@..*.@###\n###@..*.###\n####@p....#\n#####.***.#\n#####.....#\n###########\n\n#########\n#...@####\n#..*.@###\n#@..*.###\n##@..*.##\n####..*.#\n#####...#\n######.p#\n#########\n\n...#.......\n....#......\n....@#.....\n.....@#....\n#@....@#...\n.#@..*.@#..\n..#@..*....\n...#@..*...\n....#.*.*..\n.......*...\n......p.*..\n.........*.\n...........\n\n( (kinda different from the above) )\n( (trivial) )\n( ####### )\n( #....## )\n( #....## )\n( #.*.@## )\n( ###.### )\n( #.....# )\n( #.*.@.# )\n( #..p..# )\n( ###.### )\n( #.*.@## )\n( #....## )\n( #....## )\n( ####### )\n\n\n#######\n#....##\n#....##\n#....##\n#....##\n#.*.@##\n###.###\n#.....#\n#.*.@.#\n#p....#\n###.###\n#.*.@##\n#....##\n#....##\n#....##\n#....##\n#######\n\n#######\n#....##\n#....##\n#....##\n#.@.*##\n#.@.*##\n###.###\n#.....#\n#.@.*.#\n#p....#\n###.###\n#.@.*##\n#.@.*##\n#....##\n#....##\n#....##\n#######\n\n###########\n###@.*..###\n#####*#.###\n.....*.....\n.@@@...@@@.\n.....p.....\n...........\n...........\n\n#############\n####.....####\n######.#.####\n#...........#\n#...........#\n#.....p.....#\n#...........#\n#############\n\n#######\n#.....#\n#.***.#\n#.....#\n###.###\n#.....#\n#.@@@p#\n#.....#\n#######\n\n....####\n....#..#\n....#..#\n#####..#\n#...#..#\n#..@..*#\n#...#p.#\n#####..#\n#..@..*#\n#......#\n######.#\n....#@.#\n....#..#\n....#.*#\n....#..#\n....####\n\n.#######.\n.#.....#.\n.#..*..#.\n.#.*.*.#.\n.#.*.*.#.\n.#.....#.\n.#.....#.\n###.#.###\n#@@.#.@@#\n#@@.#.@@#\n#@..#..@#\n#@.*#*.@#\n#@p.#..@#\n#########\n\n@....*\n.@..*.\n......\n.@..*.\n..p...\n\n..........\n.@@....**.\n.@@....**.\n...@..*...\n..........\n...@..*...\n.....p....\n..........\n\n\n(ok partition problem)\n(nah broken)\n.........\n.........\n.@.....@.\n.@.#*#.@.\n.@..*..@.\n.........\n....p....\n.........\n\n...............\n....@..#..@....\n.#..@.#*#.@..#.\n#*..@..*..@..*#\n.#..@.....@..#.\n.......p.......\n...............\n\n....####.....\n...#@.*......\n....##*#.....\n......*......\n.............\n..@@@.p.@@@..\n.............\n.............\n\n#######\n#.....#\n#.#.#.#\n#.@.*.#\n###.###\n.......\np.@.*..\n.......\n###.###\n#.@.*.#\n#.#.#.#\n#.....#\n#######\n\n######\n#...##\n#...##\n#...##\n#.@.*#\n###.##\n......\np.@.*.\n......\n###.##\n#.@.*#\n#...##\n#...##\n#...##\n######\n\n(trivial)\n(\n.........\n.........\n..**.@...\n.........\n....p....\n.........\n)\n\n\n\n............\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..*.*..*.*..\n.....p......\n............\n\n...........\n.....@.....\n.....@.....\n.....@.....\n.....@.....\n.....*.....\n.@@@@*@@@@.\n.....*.....\n.@@@@.@@@@.\n.....*.....\n...........\n.....p.....\n...........\n\n...........\n...........\n..###.###..\n..#*....#..\n..#.*...#..\n..###.###..\n..p.@.@....\n...........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n..........\n..........\n..........\n\n..........\n..........\n..####....\n..#*.@..p.\n..#.*@....\n..####....\n..........\n..........\n\n..........\n..........\n..####....\n..#*..@.p.\n..#.*.@...\n..####....\n..........\n..........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n####..####\n..........\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n..........\n\n.########.\n.#......#.\n.#.*..@.#.\n.#..*.@.#.\n####..####\n...p......\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n\n@@@@@@@@\n###@####\n........\n........\n.*.*.*..\n........\n.*.*.*..\n........\n.*.*.p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n...*....\n..***...\n...*....\n..***...\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n..***...\n..*.*...\n..***...\n........\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n..*.*...\n........\n..*.*...\n...@....\n..*.*...\n........\n..*.*p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n........\n........\n...*....\n..*.*...\n...*....\n..*.*...\n.*.@.*..\n...p....\n###*####\n########\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n#######\n##...##\n#.....#\n###.###\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#..p..#\n###.###\n#######\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n##################\n#####@#@#@########\n#####@#@#@########\n#####*#*#*########\n#@.........*....p#\n#..............*.#\n##############.*.#\n##############.*.#\n##############...#\n##################\n\n\n##############\n#@#@#@########\n#@#@#@########\n#*#*#*########\n#......*.p...#\n#..........*.#\n##########.*.#\n##########...#\n##############\n\n##########\n#@#@#@####\n#@#@#@####\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n######p..#\n##########\n\n#############\n###@#@#@#####\n###@#@#@#####\n###*#*#*#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#############\n###@#@#@#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#########\n###@#####\n#@....*p#\n#.....*.#\n#########\n\n...........\n...........\n....@@@....\n...........\n..@.***.@..\n..@.***.@..\n..@.***.@..\n...........\n.....p.....\n...........\n...........\n\n###########\n#.........#\n#.#..@..#.#\n#...@.@...#\n#..@***@..#\n#...***...#\n#..@***@..#\n#...@.@...#\n#.#..p..#.#\n#.........#\n###########\n\n#########\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(meeeh but in a pinch! but really, don't add it)\n#########\n##.....##\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(aaa kinda ok? has some stuff going on)\n#########\n#.......#\n#.*.@.*.#\n#..*@*..#\n#.@@*@@.#\n#..*@*..#\n#.*.@.*.#\n#...p...#\n#########\n\n#########\n#.......#\n#.@..**.#\n#.....*.#\n#..@....#\n#....@..#\n#.**....#\n#..*p.@.#\n#.....@.#\n#.@.*.@.#\n#.......#\n#########\n\n(doesn't have enough personality)\n#########\n#......p#\n#..@.@..#\n#.*.*.@.#\n#....*..#\n#.**..@.#\n#.**.*..#\n#.......#\n#########\n\n\n#########\n...#*#...\n.........\n##..*..##\n###...###\n####p####\n###...###\n##..@..##\n.........\n...#@#...\n#########\n\n\n\n#..#..#\n#..*.p#\n#.....#\n#..*..#\n###.###\n#..@..#\n#.....#\n#..@..#\n#..#..#\n\n...........\n.....*.....\n...........\n.....*.....\n....*.*....\n...*@@@*...\n....*.*....\n.....*.....\n...........\n.....p.....\n...........\n\n.......\n..*.*..\n.*@@@*.\n..*.*..\n...*...\n.......\n...p...\n.......\n)\n(\n....\n....\n....\n\n....\n....\n....\n....\n\n\n....\n....\n....\n....\n....\n\n\n.....\n.....\n.....\n.....\n.....\n\n......\n......\n......\n......\n......\n......\n\n##########\n#........#\n#.#....#.#\n#..*..*..#\n#...**..@#\n#...**.@@#\n#..*..@..#\n#.#.p*.#.#\n#.......##\n##########\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n##########\n\n###########\n#....#....#\n#.**.#.@@.#\n#.*..#..@.#\n#.........#\n####.p.####\n#.........#\n#.@..#..*.#\n#.@@.#.**.#\n#....#....#\n###########\n\n(solvable which is nice but also not good which is not nice)\n##########\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#........#\n#...p....#\n##########\n\n##########################\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#........................#\n#...........p............#\n##########################\n\n##########################\n#........................#\n#........................#\n#.........*..p...........#\n#........@@..............#\n#........***.............#\n#.......@@@@.............#\n#.......*****............#\n#......@@@@@@............#\n#......*******...........#\n#.....@@@@@@@@...........#\n#........................#\n#........................#\n#........................#\n#........................#\n#........................#\n##########################\n\n###########\n#.........#\n#.........#\n#..*@@@@..#\n#..*...*..#\n#..*.*.*..#\n#..*.@@*..#\n#..*......#\n#..@@@....#\n#.........#\n#....p....#\n#.........#\n###########\n\n####################\n#..................#\n#..................#\n#..................#\n#..................#\n#..***........@@@..#\n#..*.*........@.@..#\n#..***........@@@..#\n#..................#\n#..................#\n#.....p............#\n#..................#\n####################\n\n###########\n#.........#\n#.*.@@@@@.#\n#.*.@...@.#\n#.*...*.@.#\n#.*****.@.#\n#.........#\n#.........#\n#....p....#\n###*###@###\n###########\n\n...........\n##@@@@@@@##\n#####@#####\n#.........#\n#....*....#\n#...*.*...#\n#..*.@.*..#\n#...*.*...#\n#....*....#\n#.........#\n#....p....#\n#####*#####\n###########\n\n#######\n#@@@@@#\n##@@@##\n#.p...#\n#..@..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#.....#\n###*###\n#######\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n..###..\n.##*##.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n##@@@##\n##@@@#.\n.#####.\n\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n###.###\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n#######\n#*.*.*#\n#.*.*.#\n#*.*.*#\n#.@.@.#\n#@.@.@#\n#.@.@.#\n#..@..#\n#.....#\n#..p..#\n#.....#\n#######\n\n\n\n(ACTUAL CANDIDATE LEVELS)\n\n\n\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#.........#\n#.........#\n#....p....#\n#.........#\n###########\n\n\n(it is a level, but not amazing? but maybe ok? but I don't know? also repeats a mechanism from another level? but maybe better?)\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#....p....#\n#.........#\n#####.#####\n####*.***##\n#####****##\n###########\n\n##########\n#........#\n#.....p..#\n#........#\n#.....####\n#..#.....#\n#..#@....#\n#..#.....#\n##########\n\n\n\nmessage level 1 of 10\n\n####..\n#..#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 2 of 10\n\n######\n#....#\n#.#P.#\n#.*@.#\n#..@.#\n#....#\n######\n\nmessage level 3 of 10\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#....#P.#\n#########\n\nmessage level 4 of 10\n\n########\n#......#\n#..@@*P#\n#......#\n#####..#\n....####\n\nmessage level 5 of 10\n\n.#######\n.#.....#\n.#..*..#\n##.*P*.#\n#...*..#\n#......#\n########\n\nmessage level 6 of 10\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#......#\n#...########\n#####.......\n\n..######....\n###..**#####\n#.......@..#\n#.#..**#@@.#\n#......#.p.#\n############\n\nmessage level 7 of 10\n\n#######\n#.....#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..P..#\n#######\n\nmessage level 8 of 10\n\n..######\n..#...P#\n..#.**.#\n####.###\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\nmessage level 9 of 10\n\n#####.\n#...##\n#P**.#\n##...#\n.##..#\n..##.#\n...###\n\nmessage level 10 of 10\n\n......#####\n......#...#\n......#.#.#\n#######.#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\nmessage congratulations!\n\n\n#########\n#.......#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#...p...#\n#########\n\n......#####\n......#...#\n#######.#.#\n#.*.*.*.*.#\n#.#.#.#.###\n#....p..#..\n####@@@@#..\n...######..\n\n........#####\n........#...#\n#########.#.#\n#...*.*.*.*.#\n#.#.#.#.#.###\n#......p..#..\n######@@@@#..\n.....######..\n\n..........#####\n..........#...#\n..#########.#.#\n.##.*.@.@.@...#\n##*.#.#.#.#.###\n#*......p.....#\n###########.#.#\n..........#...#\n..........#####\n\n.......#####\n.......#...#\n########.#.#\n#*.....*.*.#\n##.#.#.#.###\n#@.@.@p....#\n########.#.#\n.......#...#\n.......#####\n)\n\n(\n..#########\n..#.......#\n..#.##..@.#\n..#.#@....#\n..#.....*.#\n..#.#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n \n.....######\n....##....#\n....#@..@.#\n....#.....#\n....#*#.*.#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n....#######\n....#.....#\n....#...@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n)\n\n", [1, 1, 1, 1, 3, 3, 0, 0, 3, 0, 3, 3, 3, 0, 0, 1, 1, 1, 2, 2, 2, 2, 3, 2, 1, 1, 3], "background:0,0,0,0,0,0,background wall:1,1,1,1,1,\n1,0,0,0,0,0,0,1,0,0,0,\n0,1,0,0,0,0,0,0,1,0,background wall wall3:2,\n2,2,1,0,0,0,0,0,0,1,0,\n2,2,2,1,0,0,1,1,1,1,1,\n1,1,0,1,1,1,1,1,background blue1:3,0,0,\n0,0,0,background player:4,0,1,1,0,0,0,0,\n1,0,1,0,0,0,1,1,0,0,0,\n0,0,0,1,0,0,0,1,1,0,background wall wall1:5,\n5,0,0,0,1,1,1,1,1,1,0,\n0,0,0,0,0,1,0,0,0,0,1,\n1,1,1,1,1,1,1,0,0,0,0,\n", 1, "1645545097375.3352"] + ], + [ + "Double-Entry Bookkeeping Simulator#2", + ["title Double-Entry Bookkeeping Simulator\nauthor increpare\nhomepage www.increpare.com\n\n( verbose_logging )\nrun_rules_on_level_start\n\nbackground_color #404040\n\nagain_interval 0.1\n\n\n( Svelte Version für Simulieren \nhttps://www.puzzlescript.net/editor.html?hack=a52aae823542d184b57fc3301627a81a \n)\n\n========\nOBJECTS\n========\n\nBackground\n#404040\n\n\n\nWall\n#000000\n\n\nPlayer\ntransparent #ffffff\n01110\n01010\n11111\n00100\n01010\n\nblue_raw\n#1e88e5\n\n\nblue1 \n#003461 #1e88e5\n00100\n01100\n00100\n00100\n01110\n\nblue2 \n#003461 #1e88e5\n01100\n00010\n00100\n01000\n01110\n\nblue3 \n#003461 #1e88e5\n01100\n00010\n01100\n00010\n01100\n\nblue4 \n#003461 #1e88e5\n01000\n01000\n01010\n01110\n00010\n\nblue5 \n#003461 #1e88e5\n01110\n01000\n01100\n00010\n01100\n\nblue6 \n#003461 #1e88e5\n00100\n01000\n01100\n01010\n00100\n\nblue7 \n#003461 #1e88e5\n01110\n00010\n00010\n00100\n00100\n\nblue8 \n#003461 #1e88e5\n00100\n01010\n00100\n01010\n00100\n\nblue9 \n#003461 #1e88e5\n00110\n01010\n00110\n00010\n00010\n\nred_raw\n#d81b60\n\nred1 \n#56001f #d81b60\n00100\n01100\n00100\n00100\n01110\n\nred2 \n#56001f #d81b60\n01100\n00010\n00100\n01000\n01110\n\nred3 \n#56001f #d81b60\n01100\n00010\n01100\n00010\n01100\n\nred4 \n#56001f #d81b60\n01000\n01000\n01010\n01110\n00010\n\nred5 \n#56001f #d81b60\n01110\n01000\n01100\n00010\n01100\n\nred6 \n#56001f #d81b60\n00100\n01000\n01100\n01010\n00100\n\nred7 \n#56001f #d81b60\n01110\n00010\n00010\n00100\n00100\n\nred8 \n#56001f #d81b60\n00100\n01010\n00100\n01010\n00100\n\nred9 \n#56001f #d81b60\n00110\n01010\n00110\n00010\n00010\n\nonce\ntransparent\n\ncounted\nwhite\n.....\n.....\n.....\n...0.\n.....\n\ncounting\nyellow\n.....\n.0...\n.....\n.....\n.....\n\ndeleting\nyellow\n00000\n0...0\n0...0\n0...0\n00000\n\ndeleted\norange\n.....\n.....\n...0.\n.....\n.....\n\nwall1\n#000000 #1f1f1f\n00100\n01100\n00100\n00100\n01110\n\nwall2\n#000000 #1f1f1f\n01100\n00010\n00100\n01000\n01110\n\nwall3\n#000000 #1f1f1f\n01100\n00010\n01100\n00010\n01100\n\nwall4\n#000000 #1f1f1f\n01000\n01000\n01010\n01110\n00010\n\nwall5\n#000000 #1f1f1f\n01110\n01000\n01100\n00010\n01100\n\nwall6\n#000000 #1f1f1f\n00100\n01000\n01100\n01010\n00100\n\nwall7\n#000000 #1f1f1f\n01110\n00010\n00010\n00100\n00100\n\nwall8\n#000000 #1f1f1f\n00100\n01010\n00100\n01010\n00100\n\nwall9\n#000000 #1f1f1f\n00110\n01010\n00110\n00010\n00010\n\n=======\nLEGEND\n=======\n\nwalllabel = wall1 or wall2 or wall3 or wall4 or wall5 or wall6 or wall7 or wall8 or wall9\nred = red_raw or red1 or red2 or red3 or red4 or red5 or red6 or red7 or red8 or red9\n\nblue = blue_raw or blue1 or blue2 or blue3 or blue4 or blue5 or blue6 or blue7 or blue8 or blue9\n\nblue_other = blue\nred_other = red\n\ncoloured = red or blue\n\npushable = red or blue\n. = Background\n# = Wall\nP = Player\n* = red_raw\n@ = blue_raw\n\nobstacle = pushable or wall or player\n\n=======\nSOUNDS\n=======\n\nred move 76964107\nblue move 73247707\nsfx0 66382107 (destroy)\nsfx1 49518300 (destroy start)\n\nstartlevel 46354708\nendlevel 70029700\nstartgame 40047300\n\n================\nCOLLISIONLAYERS\n================\n\nonce, counted\ncounting\ndeleted\nBackground\nPlayer, Wall, pushable\ndeleting\nwalllabel\n\n======\nRULES\n======\n\n[ moving player ] [ deleted ] -> [ moving player ] [ ]\n\n[ blue no deleting ] -> [ blue_raw ]\n[ red no deleting ] -> [ red_raw ]\n\n[ > Player | pushable ] -> [ > Player | > pushable ]\n\n\nstartloop\n\nlate [ player no once no deleting ] [ blue no counted no deleting ] -> [ player once ] [ once blue ]\n\nlate [ once blue_raw no deleting ] -> [ counting blue1 counted ]\nlate [ once blue1 no deleting ] -> [ counting blue2 counted ]\nlate [ once blue2 no deleting ] -> [ counting blue3 counted ]\nlate [ once blue3 no deleting ] -> [ counting blue4 counted ]\nlate [ once blue4 no deleting ] -> [ counting blue5 counted ]\nlate [ once blue5 no deleting ] -> [ counting blue6 counted ]\nlate [ once blue6 no deleting ] -> [ counting blue7 counted ]\nlate [ once blue7 no deleting ] -> [ counting blue8 counted ]\nlate [ once blue8 no deleting ] -> [ counting blue9 counted ]\n\nlate [once]->[]\n\nlate [ counting blue no deleting | no counting blue_other no deleting ] -> [ counting blue | counting blue ]\nlate [counting]->[]\n\nendloop\n\n\nstartloop\nlate [ player no once ] [ red no counted no deleting ] -> [ player once ] [ once red ]\n\nlate [ once red_raw no deleting ] -> [ counting red1 counted ]\nlate [ once red1 no deleting ] -> [ counting red2 counted ]\nlate [ once red2 no deleting ] -> [ counting red3 counted ]\nlate [ once red3 no deleting ] -> [ counting red4 counted ]\nlate [ once red4 no deleting ] -> [ counting red5 counted ]\nlate [ once red5 no deleting ] -> [ counting red6 counted ]\nlate [ once red6 no deleting ] -> [ counting red7 counted ]\nlate [ once red7 no deleting ] -> [ counting red8 counted ]\nlate [ once red8 no deleting ] -> [ counting red9 counted ]\n\nlate [once]->[]\n\nlate [ counting red no deleting | no counting red_other no deleting ] -> [ counting red | counting red ]\nlate [counting]->[]\n\nendloop\n\n\nrandom late [ deleting red1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting red2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting red3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting red4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting red5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting red6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting red7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting red8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting red9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting blue1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting blue2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting blue3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting blue4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting blue5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting blue6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting blue7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting blue8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting blue9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting red1 | deleting blue1 ] -> [ wall wall1 deleted | wall wall1 deleted ] again sfx0\n+ late [ deleting red2 | deleting blue2 ] -> [ wall wall2 deleted | wall wall2 deleted ] again sfx0\n+ late [ deleting red3 | deleting blue3 ] -> [ wall wall3 deleted | wall wall3 deleted ] again sfx0\n+ late [ deleting red4 | deleting blue4 ] -> [ wall wall4 deleted | wall wall4 deleted ] again sfx0\n+ late [ deleting red5 | deleting blue5 ] -> [ wall wall5 deleted | wall wall5 deleted ] again sfx0\n+ late [ deleting red6 | deleting blue6 ] -> [ wall wall6 deleted | wall wall6 deleted ] again sfx0\n+ late [ deleting red7 | deleting blue7 ] -> [ wall wall7 deleted | wall wall7 deleted ] again sfx0\n+ late [ deleting red8 | deleting blue8 ] -> [ wall wall8 deleted | wall wall8 deleted ] again sfx0\n+ late [ deleting red9 | deleting blue9 ] -> [ wall wall9 deleted | wall wall9 deleted ] again sfx0\n\nlate [counted]->[]\n\n\nlate [ red1 | blue1 ] -> [ deleting red1 | deleting blue1 ] again sfx1 \nlate [ red2 | blue2 ] -> [ deleting red2 | deleting blue2 ] again sfx1 \nlate [ red3 | blue3 ] -> [ deleting red3 | deleting blue3 ] again sfx1 \nlate [ red4 | blue4 ] -> [ deleting red4 | deleting blue4 ] again sfx1 \nlate [ red5 | blue5 ] -> [ deleting red5 | deleting blue5 ] again sfx1 \nlate [ red6 | blue6 ] -> [ deleting red6 | deleting blue6 ] again sfx1 \nlate [ red7 | blue7 ] -> [ deleting red7 | deleting blue7 ] again sfx1 \nlate [ red8 | blue8 ] -> [ deleting red8 | deleting blue8 ] again sfx1 \nlate [ red9 | blue9 ] -> [ deleting red9 | deleting blue9 ] again sfx1 \n\nlate [ deleting red1 | no deleting red1 ] -> [ deleting red1 | deleting red1 ]\nlate [ deleting red2 | no deleting red2 ] -> [ deleting red2 | deleting red2 ]\nlate [ deleting red3 | no deleting red3 ] -> [ deleting red3 | deleting red3 ]\nlate [ deleting red4 | no deleting red4 ] -> [ deleting red4 | deleting red4 ]\nlate [ deleting red5 | no deleting red5 ] -> [ deleting red5 | deleting red5 ]\nlate [ deleting red6 | no deleting red6 ] -> [ deleting red6 | deleting red6 ]\nlate [ deleting red7 | no deleting red7 ] -> [ deleting red7 | deleting red7 ]\nlate [ deleting red8 | no deleting red8 ] -> [ deleting red8 | deleting red8 ]\nlate [ deleting red9 | no deleting red9 ] -> [ deleting red9 | deleting red9 ]\n\n\nlate [ deleting blue1 | no deleting blue1 ] -> [ deleting blue1 | deleting blue1 ]\nlate [ deleting blue2 | no deleting blue2 ] -> [ deleting blue2 | deleting blue2 ]\nlate [ deleting blue3 | no deleting blue3 ] -> [ deleting blue3 | deleting blue3 ]\nlate [ deleting blue4 | no deleting blue4 ] -> [ deleting blue4 | deleting blue4 ]\nlate [ deleting blue5 | no deleting blue5 ] -> [ deleting blue5 | deleting blue5 ]\nlate [ deleting blue6 | no deleting blue6 ] -> [ deleting blue6 | deleting blue6 ]\nlate [ deleting blue7 | no deleting blue7 ] -> [ deleting blue7 | deleting blue7 ]\nlate [ deleting blue8 | no deleting blue8 ] -> [ deleting blue8 | deleting blue8 ]\nlate [ deleting blue9 | no deleting blue9 ] -> [ deleting blue9 | deleting blue9 ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nno coloured\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 9\n\n(improved version?)\n.....######\n.....#....#\n....##..@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n\nmessage Level 2 of 9\n\n#######...\n#@#@#@#...\n#@#@#@#...\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n.....#p..#\n.....#####\n\n\n\n\n\nmessage Level 3 of 9\n(ok? not too hard)\n#######.\n#.....#.\n#..*.@#.\n####.###\n.#.....#\n.#.*.@.#\n.#..p..#\n####.###\n#..*.@#.\n#.....#.\n#######.\n\n\n\nmessage Level 4 of 9\n#######..\n#.....#..\n#...@.#..\n#...@.###\n#...@.#@#\n#.....#.#\n#.p..***#\n#.....#.#\n#...@.#.#\n#...@...#\n#...@.###\n#.....#..\n#######..\n\n\nmessage Level 5 of 9\n\n(Actually tricky? or a bit overwhelming maybe?)\n(requires silly batching. i like this)\n#########\n#...#...#\n#..***..#\n#.......#\n####.####\n#.......#\n#..@@@p.#\n#...#...#\n#########\n\nmessage Level 6 of 9\n(possibly ok? IDK? WE?)\n#########\n#.......#\n#.*..@.*#\n#..**..@#\n#..**.@@#\n#.*..*..#\n#..p....#\n#########\n\nmessage Level 7 of 9\n(p ok? solution involves knowing something, but maybe you just stumble through it without knowing the thing)\n\n#####..\n#@@@#..\n#@@@##.\n#@#.@##\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\nmessage Level 8 of 9\n(p. ok level)\n###########\n#.........#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.p.......#\n#.........#\n###########\n\nmessage Level 9 of 9\n(ok final level maybe?)\n(fixed version?)\n...####....\n####..#....\n#@..*.#....\n###...#....\n..#.*#####.\n..#.*#.p.#.\n..#****@@#.\n..#.@@...#.\n..#.@@...#.\n..#.#@...##\n..#.......#\n..####....#\n.....######\n\nmessage Congratulations. You have mastered all the numbers, from 1 up to 9!\n\n(DISCARD PILE::::)\n\n(BAD IDEAS FOR FIRST LEVEL END )\n(thje better version. maybe ok early level?)\n( ####### )\n( #..#..# )\n( #..*.p# )\n( #..*..# )\n( #.....# )\n( ###.### )\n( #.....# )\n( #..@..# )\n( #..@..# )\n( #..#..# )\n( ####### )\n\n\n( ########## )\n( #@...##### )\n( ##...##### )\n( ##...##### )\n( ##@..##### )\n( ###...#### )\n( ###...#### )\n( ###@..#### )\n( ####.....# )\n( ####.***.# )\n( ####..p..# )\n( ########## )\n\n\n( audio test level)\n( ############# )\n( #..@........# )\n( #..@....@@..# )\n( #..@....@@@.# )\n( #..@.@..@@@.# )\n( #.*....*....# )\n( #..*.*..***.# )\n( #..*....***.# )\n( #..*....*...# )\n( #....p......# )\n( #...........# )\n( ############# )\n\n(level 2/3?)\n( ########## )\n( #........# )\n( #.**.@@@.# )\n( #........# )\n( #...p....# )\n( #........# )\n( ########## )\n\n(ok early level? meh other level does this but better IMO)\n( ###### )\n( #....# )\n( #.@.*# )\n( #.@.*# )\n( ###.## )\n( #....# )\n( #..p.# )\n( #....# )\n( ###.## )\n( #.@.*# )\n( #.@.*# )\n( #....# )\n( ###### )\n\n(ok level I think?)\n( ############# )\n( ####@.*...### )\n( ######*##.### )\n( #.....*.....# )\n( #.@@@...@@@.# )\n( #...........# )\n( #.....p.....# )\n( #...........# )\n( ############# )\n\n(\n\n(needs a few more steps of indirection on the right)\n#########\n#####*###\n#...#*###\n#.**@*###\n#.......#\n#@@..@@.#\n####p...#\n#########\n\n##############\n#....##......#\n#....##*.....#\n#.....#*.....#\n#...**@*.....#\n#............#\n###@@....@@..#\n######.p.....#\n######.......#\n##############\n\n###########\n#**@@***@@#\n#**..***..#\n#.........#\n#.........#\n#...@.@.@.#\n#.p.......#\n#...@.@.@.#\n#.........#\n###########\n\n##############\n#...#........#\n*.@.#........#\n#.#####**....#\n#.##**@**....#\n#............#\n####...@.@.@.#\n...#.p@.@.@..#\n...#.........#\n...###########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##....p..#\n##########\n\n\n(damnit a shortcut/trivialisation)\n##########\n####..####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n#@..######\n##..######\n##.*######\n##..#.p.##\n##****@@##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n(pedagogical version of other level)\n#############\n#@@*#@@#@####\n#@@*#@*#@####\n###*##*#*####\n###.......*.#\n###.......*.#\n#########.*.#\n#########p..#\n#############\n\n##########\n#........#\n#...@....#\n#........#\n#...**.@.#\n#.@.**...#\n#........#\n#.p..@...#\n#........#\n##########\n\n\n.#########.\n.#@.######.\n.#..######.\n.#****...#.\n.#*.**.p.#.\n###.**...#.\n#...@@*@@#.\n#...@@...#.\n#...@@...#.\n#@@*@@*@@#.\n#...*....#.\n#...@....#.\n#...@....#.\n##########.\n\n##########\n##@.##...#\n##..##.p.#\n###***...#\n##..***@@#\n##..@@...#\n##..@@...#\n##...@...#\n##.......#\n##.......#\n##########\n\n#########\n#@.##...#\n#..##.p.#\n##****@@#\n#..@@...#\n#...@...#\n#.......#\n#.......#\n#########\n\n##########\n####*#####\n#@.#*.p.##\n##****@@##\n##.@@...*#\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n\n\n##########\n#..#######\n#..#######\n#..##.p.##\n##****@@##\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n############\n#....#######\n#....#*#####\n#....#*.p.##\n#*##****@@##\n#.##.@@...*#\n#@##.@@...##\n####.#@...##\n####.......#\n####.......#\n############\n\n.#########...\n.#..######...\n.#..######...\n.##......#...\n.#.....p.#...\n##.......#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n##########...\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.......#\n#......*#\n#.....@*#\n######.##\n#....#.*#\n#.p...@.#\n#.......#\n#########\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.p.....#\n#......*#\n#.....@*#\n#.......#\n#....@.*#\n#.......#\n#########\n\n(is this funnier than above? I don't think so but I@m not sure)\n###########\n#.........#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.p.......#\n#.........#\n###########\n\n(technically harder than above but also more work)\n################\n#..............#\n#..............#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#.p............#\n#..............#\n################\n\n\n#################\n#...............#\n#...............#\n#..@@@.@@@.@@@..#\n#...*...*...*...#\n#..@@@.@@@.@@@..#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#...............#\n#################\n\n#################\n#...............#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n...............\n...............\n..@@@.@@@.@@@..\n...*...*...*...\n..@@@.@@@.@@@..\n...............\n...............\n.......p.......\n...............\n...............\n\n..........@.@...\n..........@.@...\n..........@*@...\n.......@@@*.*@@@\n..........@.@...\n..........@.@...\n..........@.@...\n................\n................\n\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n########\n#......#\n#......#\n#..@.*.#\n#......#\n###..*##\n####.###\n#p.@...#\n#......#\n####.###\n#......#\n#......#\n########\n\n\n...################\n..................#\n....@.............#\n.....@............#\n.@.**.@...........#\n..@.**.@..........#\n...@.**...........#\n....@.**..........#\n......p*.@........#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#################\n\n.........\n.........\n.#.#.#.#.\n.@.*.@.*.\n.#.#.#.#.\n.@.*.@.*.\n*#@#*#@#*\n.........\n..p......\n\n\n..#.#.#.#..\n...........\n..#.#.#.#..\n...........\n..#.#.#.#..\n...p.......\n\n.#.#.#.#.\n.@.*.*.@.\n.#.#.#.#.\n.@.*.*.@.\n*#@#.#@#*\n..p......\n\n(meh)\n#########\n#...@####\n#..*.@###\n#@..*.@##\n##@..*.@#\n###@..*.#\n####@p..#\n#########\n\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n(meeeeh. I think not great? too long but also if short too randomo)\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n###########\n###########\n##...@#####\n##..*.@####\n##@..*.@###\n###@..*.###\n####@p....#\n#####.***.#\n#####.....#\n###########\n\n#########\n#...@####\n#..*.@###\n#@..*.###\n##@..*.##\n####..*.#\n#####...#\n######.p#\n#########\n\n...#.......\n....#......\n....@#.....\n.....@#....\n#@....@#...\n.#@..*.@#..\n..#@..*....\n...#@..*...\n....#.*.*..\n.......*...\n......p.*..\n.........*.\n...........\n\n( (kinda different from the above) )\n( (trivial) )\n( ####### )\n( #....## )\n( #....## )\n( #.*.@## )\n( ###.### )\n( #.....# )\n( #.*.@.# )\n( #..p..# )\n( ###.### )\n( #.*.@## )\n( #....## )\n( #....## )\n( ####### )\n\n\n#######\n#....##\n#....##\n#....##\n#....##\n#.*.@##\n###.###\n#.....#\n#.*.@.#\n#p....#\n###.###\n#.*.@##\n#....##\n#....##\n#....##\n#....##\n#######\n\n#######\n#....##\n#....##\n#....##\n#.@.*##\n#.@.*##\n###.###\n#.....#\n#.@.*.#\n#p....#\n###.###\n#.@.*##\n#.@.*##\n#....##\n#....##\n#....##\n#######\n\n###########\n###@.*..###\n#####*#.###\n.....*.....\n.@@@...@@@.\n.....p.....\n...........\n...........\n\n#############\n####.....####\n######.#.####\n#...........#\n#...........#\n#.....p.....#\n#...........#\n#############\n\n#######\n#.....#\n#.***.#\n#.....#\n###.###\n#.....#\n#.@@@p#\n#.....#\n#######\n\n....####\n....#..#\n....#..#\n#####..#\n#...#..#\n#..@..*#\n#...#p.#\n#####..#\n#..@..*#\n#......#\n######.#\n....#@.#\n....#..#\n....#.*#\n....#..#\n....####\n\n.#######.\n.#.....#.\n.#..*..#.\n.#.*.*.#.\n.#.*.*.#.\n.#.....#.\n.#.....#.\n###.#.###\n#@@.#.@@#\n#@@.#.@@#\n#@..#..@#\n#@.*#*.@#\n#@p.#..@#\n#########\n\n@....*\n.@..*.\n......\n.@..*.\n..p...\n\n..........\n.@@....**.\n.@@....**.\n...@..*...\n..........\n...@..*...\n.....p....\n..........\n\n\n(ok partition problem)\n(nah broken)\n.........\n.........\n.@.....@.\n.@.#*#.@.\n.@..*..@.\n.........\n....p....\n.........\n\n...............\n....@..#..@....\n.#..@.#*#.@..#.\n#*..@..*..@..*#\n.#..@.....@..#.\n.......p.......\n...............\n\n....####.....\n...#@.*......\n....##*#.....\n......*......\n.............\n..@@@.p.@@@..\n.............\n.............\n\n#######\n#.....#\n#.#.#.#\n#.@.*.#\n###.###\n.......\np.@.*..\n.......\n###.###\n#.@.*.#\n#.#.#.#\n#.....#\n#######\n\n######\n#...##\n#...##\n#...##\n#.@.*#\n###.##\n......\np.@.*.\n......\n###.##\n#.@.*#\n#...##\n#...##\n#...##\n######\n\n(trivial)\n(\n.........\n.........\n..**.@...\n.........\n....p....\n.........\n)\n\n\n\n............\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..*.*..*.*..\n.....p......\n............\n\n...........\n.....@.....\n.....@.....\n.....@.....\n.....@.....\n.....*.....\n.@@@@*@@@@.\n.....*.....\n.@@@@.@@@@.\n.....*.....\n...........\n.....p.....\n...........\n\n...........\n...........\n..###.###..\n..#*....#..\n..#.*...#..\n..###.###..\n..p.@.@....\n...........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n..........\n..........\n..........\n\n..........\n..........\n..####....\n..#*.@..p.\n..#.*@....\n..####....\n..........\n..........\n\n..........\n..........\n..####....\n..#*..@.p.\n..#.*.@...\n..####....\n..........\n..........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n####..####\n..........\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n..........\n\n.########.\n.#......#.\n.#.*..@.#.\n.#..*.@.#.\n####..####\n...p......\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n\n@@@@@@@@\n###@####\n........\n........\n.*.*.*..\n........\n.*.*.*..\n........\n.*.*.p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n...*....\n..***...\n...*....\n..***...\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n..***...\n..*.*...\n..***...\n........\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n..*.*...\n........\n..*.*...\n...@....\n..*.*...\n........\n..*.*p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n........\n........\n...*....\n..*.*...\n...*....\n..*.*...\n.*.@.*..\n...p....\n###*####\n########\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n#######\n##...##\n#.....#\n###.###\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#..p..#\n###.###\n#######\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n##################\n#####@#@#@########\n#####@#@#@########\n#####*#*#*########\n#@.........*....p#\n#..............*.#\n##############.*.#\n##############.*.#\n##############...#\n##################\n\n\n##############\n#@#@#@########\n#@#@#@########\n#*#*#*########\n#......*.p...#\n#..........*.#\n##########.*.#\n##########...#\n##############\n\n##########\n#@#@#@####\n#@#@#@####\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n######p..#\n##########\n\n#############\n###@#@#@#####\n###@#@#@#####\n###*#*#*#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#############\n###@#@#@#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#########\n###@#####\n#@....*p#\n#.....*.#\n#########\n\n...........\n...........\n....@@@....\n...........\n..@.***.@..\n..@.***.@..\n..@.***.@..\n...........\n.....p.....\n...........\n...........\n\n###########\n#.........#\n#.#..@..#.#\n#...@.@...#\n#..@***@..#\n#...***...#\n#..@***@..#\n#...@.@...#\n#.#..p..#.#\n#.........#\n###########\n\n#########\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(meeeh but in a pinch! but really, don't add it)\n#########\n##.....##\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(aaa kinda ok? has some stuff going on)\n#########\n#.......#\n#.*.@.*.#\n#..*@*..#\n#.@@*@@.#\n#..*@*..#\n#.*.@.*.#\n#...p...#\n#########\n\n#########\n#.......#\n#.@..**.#\n#.....*.#\n#..@....#\n#....@..#\n#.**....#\n#..*p.@.#\n#.....@.#\n#.@.*.@.#\n#.......#\n#########\n\n(doesn't have enough personality)\n#########\n#......p#\n#..@.@..#\n#.*.*.@.#\n#....*..#\n#.**..@.#\n#.**.*..#\n#.......#\n#########\n\n\n#########\n...#*#...\n.........\n##..*..##\n###...###\n####p####\n###...###\n##..@..##\n.........\n...#@#...\n#########\n\n\n\n#..#..#\n#..*.p#\n#.....#\n#..*..#\n###.###\n#..@..#\n#.....#\n#..@..#\n#..#..#\n\n...........\n.....*.....\n...........\n.....*.....\n....*.*....\n...*@@@*...\n....*.*....\n.....*.....\n...........\n.....p.....\n...........\n\n.......\n..*.*..\n.*@@@*.\n..*.*..\n...*...\n.......\n...p...\n.......\n)\n(\n....\n....\n....\n\n....\n....\n....\n....\n\n\n....\n....\n....\n....\n....\n\n\n.....\n.....\n.....\n.....\n.....\n\n......\n......\n......\n......\n......\n......\n\n##########\n#........#\n#.#....#.#\n#..*..*..#\n#...**..@#\n#...**.@@#\n#..*..@..#\n#.#.p*.#.#\n#.......##\n##########\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n##########\n\n###########\n#....#....#\n#.**.#.@@.#\n#.*..#..@.#\n#.........#\n####.p.####\n#.........#\n#.@..#..*.#\n#.@@.#.**.#\n#....#....#\n###########\n\n(solvable which is nice but also not good which is not nice)\n##########\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#........#\n#...p....#\n##########\n\n##########################\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#........................#\n#...........p............#\n##########################\n\n##########################\n#........................#\n#........................#\n#.........*..p...........#\n#........@@..............#\n#........***.............#\n#.......@@@@.............#\n#.......*****............#\n#......@@@@@@............#\n#......*******...........#\n#.....@@@@@@@@...........#\n#........................#\n#........................#\n#........................#\n#........................#\n#........................#\n##########################\n\n###########\n#.........#\n#.........#\n#..*@@@@..#\n#..*...*..#\n#..*.*.*..#\n#..*.@@*..#\n#..*......#\n#..@@@....#\n#.........#\n#....p....#\n#.........#\n###########\n\n####################\n#..................#\n#..................#\n#..................#\n#..................#\n#..***........@@@..#\n#..*.*........@.@..#\n#..***........@@@..#\n#..................#\n#..................#\n#.....p............#\n#..................#\n####################\n\n###########\n#.........#\n#.*.@@@@@.#\n#.*.@...@.#\n#.*...*.@.#\n#.*****.@.#\n#.........#\n#.........#\n#....p....#\n###*###@###\n###########\n\n...........\n##@@@@@@@##\n#####@#####\n#.........#\n#....*....#\n#...*.*...#\n#..*.@.*..#\n#...*.*...#\n#....*....#\n#.........#\n#....p....#\n#####*#####\n###########\n\n#######\n#@@@@@#\n##@@@##\n#.p...#\n#..@..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#.....#\n###*###\n#######\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n..###..\n.##*##.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n##@@@##\n##@@@#.\n.#####.\n\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n###.###\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n#######\n#*.*.*#\n#.*.*.#\n#*.*.*#\n#.@.@.#\n#@.@.@#\n#.@.@.#\n#..@..#\n#.....#\n#..p..#\n#.....#\n#######\n\n\n\n(ACTUAL CANDIDATE LEVELS)\n\n\n\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#.........#\n#.........#\n#....p....#\n#.........#\n###########\n\n\n(it is a level, but not amazing? but maybe ok? but I don't know? also repeats a mechanism from another level? but maybe better?)\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#....p....#\n#.........#\n#####.#####\n####*.***##\n#####****##\n###########\n\n##########\n#........#\n#.....p..#\n#........#\n#.....####\n#..#.....#\n#..#@....#\n#..#.....#\n##########\n\n\n\nmessage level 1 of 10\n\n####..\n#..#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 2 of 10\n\n######\n#....#\n#.#P.#\n#.*@.#\n#..@.#\n#....#\n######\n\nmessage level 3 of 10\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#....#P.#\n#########\n\nmessage level 4 of 10\n\n########\n#......#\n#..@@*P#\n#......#\n#####..#\n....####\n\nmessage level 5 of 10\n\n.#######\n.#.....#\n.#..*..#\n##.*P*.#\n#...*..#\n#......#\n########\n\nmessage level 6 of 10\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#......#\n#...########\n#####.......\n\n..######....\n###..**#####\n#.......@..#\n#.#..**#@@.#\n#......#.p.#\n############\n\nmessage level 7 of 10\n\n#######\n#.....#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..P..#\n#######\n\nmessage level 8 of 10\n\n..######\n..#...P#\n..#.**.#\n####.###\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\nmessage level 9 of 10\n\n#####.\n#...##\n#P**.#\n##...#\n.##..#\n..##.#\n...###\n\nmessage level 10 of 10\n\n......#####\n......#...#\n......#.#.#\n#######.#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\nmessage congratulations!\n\n\n#########\n#.......#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#...p...#\n#########\n\n......#####\n......#...#\n#######.#.#\n#.*.*.*.*.#\n#.#.#.#.###\n#....p..#..\n####@@@@#..\n...######..\n\n........#####\n........#...#\n#########.#.#\n#...*.*.*.*.#\n#.#.#.#.#.###\n#......p..#..\n######@@@@#..\n.....######..\n\n..........#####\n..........#...#\n..#########.#.#\n.##.*.@.@.@...#\n##*.#.#.#.#.###\n#*......p.....#\n###########.#.#\n..........#...#\n..........#####\n\n.......#####\n.......#...#\n########.#.#\n#*.....*.*.#\n##.#.#.#.###\n#@.@.@p....#\n########.#.#\n.......#...#\n.......#####\n)\n\n(\n..#########\n..#.......#\n..#.##..@.#\n..#.#@....#\n..#.....*.#\n..#.#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n \n.....######\n....##....#\n....#@..@.#\n....#.....#\n....#*#.*.#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n....#######\n....#.....#\n....#...@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n)\n\n", [2, 0, 3, 2, 2, 1], "background:0,background wall:1,1,1,0,0,0,0,0,0,0,\n0,0,0,1,background blue1:2,1,0,0,0,0,0,\n0,0,0,0,0,1,0,1,1,1,1,\n1,1,1,1,1,0,1,1,0,0,0,\n0,background deleted wall wall6:3,0,0,0,0,1,0,1,0,background red1:4,\n0,3,3,3,3,3,1,0,1,0,1,\n0,0,0,1,1,3,3,3,3,0,1,\n1,1,1,1,1,1,0,3,3,0,0,\n0,0,1,0,0,0,0,1,0,0,background player:5,\n0,0,0,0,1,0,0,0,0,1,0,\n0,0,2,0,0,0,1,0,0,0,0,\n1,1,1,1,1,1,0,0,1,0,0,\n0,0,0,0,0,0,0,1,1,1,1,\n", 17, "1645545159763.6345"] + ], + [ + "short adventure in sticky wall land", + ["title short adventure in sticky wall land\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #1d4765\ntext_color #99e550\nrun_rules_on_level_start\n\n\n========\nOBJECTS\n========\n\nBackground\n#396c90 #457da4\n00000\n00000\n00100\n00000\n00000\n\n\nTarget\n#fbf236 transparent\n00100\n01110\n11111\n01110\n00100\n\n\nWall\n#99e550 #99e550 #99e550\n01110\n12221\n12221\n12221\n01110\n\nwall_grenze_N\n#6abe30\n00000\n.....\n.....\n.....\n.....\n\nwall_grenze_S\n#6abe30\n.....\n.....\n.....\n.....\n00000\n\nwall_grenze_O\n#6abe30\n....0\n....0\n....0\n....0\n....0\n\nwall_grenze_W\n#6abe30\n0....\n0....\n0....\n0....\n0....\n\nwall_grenze_NO\n#396c90\n....0\n.....\n.....\n.....\n.....\n\nwall_grenze_SO\n#396c90\n.....\n.....\n.....\n.....\n....0\n\nwall_grenze_SW\n#396c90\n.....\n.....\n.....\n.....\n0....\n\nwall_grenze_NW\n#396c90\n0....\n.....\n.....\n.....\n.....\n\nPlayer\ntransparent #b13030 #a96c30 #4e0b0b\n01110\n11110\n02220\n33333\n03030\n\n\nCrate\n#8f563b #743a1f #b4643d #b76640\n00000\n01220\n03120\n03310\n00000\n\n\n\n=======\nLEGEND\n=======\n\nwall_dekoration_ortho = wall_grenze_N or wall_grenze_S or wall_grenze_O or wall_grenze_W\n\nwall_dekoration_eck = wall_grenze_NW or wall_grenze_SW or wall_grenze_SO or wall_grenze_NO\n\nwall_dekoration = wall_dekoration_eck or wall_dekoration_ortho\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\nobstacle = crate or wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 76571107\nwall move 95423307\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nwall_grenze_N \nwall_grenze_S\nwall_grenze_O\nwall_grenze_W\nwall_grenze_NO\nwall_grenze_SO \nwall_grenze_SW\nwall_grenze_NW\nTarget\n\n======\nRULES\n======\n(\n[ > player | crate | obstacle ] -> cancel\n[ > player | wall ] -> cancel\n\n\n[ > Player | Crate | ] -> [ > Player | | Crate ]\n[ wall | > player | ] -> [ wall | wall | player ]\n\n)\n\n(it's very possible someone's come up with this set of rules already - but if they have I haven't seen it yet)\n\n[ > player | crate ] -> [ > player | > crate ]\n[ wall | > player ] -> [ > wall | > player ]\n\nlate [ wall_dekoration ] -> []\nlate up [ wall | no wall ] -> [ wall wall_grenze_N | ]\nlate down [ wall | no wall ] -> [ wall wall_grenze_S | ]\nlate right [ wall | no wall ] -> [ wall wall_grenze_O | ]\nlate left [ wall | no wall ] -> [ wall wall_grenze_W | ]\n\nlate [ wall_grenze_N wall_grenze_O ] -> [ wall_grenze_N wall_grenze_O wall_grenze_NO ]\nlate [ wall_grenze_S wall_grenze_O ] -> [ wall_grenze_S wall_grenze_O wall_grenze_SO ]\nlate [ wall_grenze_N wall_grenze_W ] -> [ wall_grenze_N wall_grenze_W wall_grenze_NW ]\nlate [ wall_grenze_S wall_grenze_W ] -> [ wall_grenze_S wall_grenze_W wall_grenze_SW ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 3\n\n(kinda like)\n.........\n.#######.\n.#..*..#.\n.#..p..#.\n.#..o..#.\n.#######.\n.........\n\nmessage Level 2 of 3\n\n\n(ok)\n........\n.####...\n.#.o#...\n.#..###.\n.#@p..#.\n.#..*.#.\n.#..###.\n.####...\n........\n\nmessage Level 3 of 3\n\n(mildly entertaining. possibly slightly harder?)\n.......\n.#####.\n.#.*.#.\n.#...#.\n.#.p.#.\n.#...#.\n.#.o.#.\n.#####.\n.......\n\nmessage Congratulations. Thank you for playing!\n\n(\n#..##\np...o\n.#..#\n..*.#\no*##.\n\n##.##\n.o.*#\n....#\n#*.o.\n#.p..\n\n...##\n.o.*#\n.....\n#*.o.\n##..p\n\n(haven't solved, don't like)\n#..##\n.o.*#\n.p...\n#*.o.\n##..#\n\n(better. still don't like though)\n#..#.\n.o.*#\n..p..\n#*.o.\n.#..#\n\n#....\n.o.*#\n#.p.#\n#*.o.\n....#\n\n(easy-ish, but ok? NO BAD)\n#.#..\n.o.*#\n..p..\n#*.o.\n..#.#\n\n\n....\n....\n....\n....\n\n\n.....\n.....\n.....\n.....\n.....\n\n.....\n.....\n.....\n.....\n.....\n\n.......\n.......\n.......\n.......\n.......\n.......\n.......\n\n.......\n.#####.\n.#.*.#.\n.#.p.#.\n.#.o.#.\n.#####.\n.......\n\n.........\n.#######.\n.#..*..#.\n.#..p..#.\n.#..o..#.\n.#######.\n.........\n\n.p..\no...\n.*@.\n#..#\n\n(possible to get to a dead end wtihout knowing really - so bad?)\n.....\n.o#..\n.*#*.\n.o#p.\n.....\n\n(ok, not so dead endy, but is it good? hardish)\n.....\n.opo.\n.*.*.\n.###.\n.....\n\n(easy but ok)\n.....\n.o#..\n.@#..\n.#*p.\n.....\n\n........\n.####...\n.#.o#...\n.#..###.\n.#@p..#.\n.#..*.#.\n.#..###.\n.####...\n........\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*O.#\n##.*P*.#\n#..O*O.#\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", [2, 3, 0, 3, 0, 0, 2, 1, 0, 2, 1, 2, 2, 3, 2, 2, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 1, 2, 1, 3, 0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 1, 0, 3, 0, 0, 0, 1, 1, 2, 2, 2, 2, 1, 1, 0, 0, "undo", "undo", "undo", 0, 1, 0, 3, 2, "undo", 2, 3, 1, 1, 2], "background:0,0,0,0,0,0,0,0,background wall wall_grenze_n wall_grenze_nw wall_grenze_s wall_grenze_sw wall_grenze_w:1,\n0,background wall wall_grenze_n wall_grenze_nw wall_grenze_w:2,background wall wall_grenze_o wall_grenze_w:3,background wall wall_grenze_s wall_grenze_sw wall_grenze_w:4,0,0,background wall wall_grenze_n wall_grenze_no wall_grenze_o wall_grenze_s wall_grenze_so:5,0,background wall wall_grenze_n wall_grenze_s:6,\nbackground player:7,5,0,0,0,background wall wall_grenze_n wall_grenze_no wall_grenze_nw wall_grenze_o wall_grenze_w:8,background wall wall_grenze_o:9,4,0,\n0,0,0,background crate:10,0,background target wall wall_grenze_n wall_grenze_no wall_grenze_o:11,background wall wall_grenze_o wall_grenze_s wall_grenze_so wall_grenze_sw wall_grenze_w:12,0,0,\n2,12,0,0,0,0,0,6,0,\n0,0,1,0,0,background wall wall_grenze_n wall_grenze_no wall_grenze_o:13,3,12,0,\n5,0,0,0,0,0,0,0,0,\n", 1, "1645545192906.1704"] + ], + [ + "[testing for recording through level-changes A] Level-Change test", + ["title Simple Block Pushing Game\nauthor David Skinner\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\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\n\nun\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n", [2, 1, 0, 3, 3, 3, 2, 1, 0, 1, 2, 2, "undo", 1, 2, 2, 3, 0, 1, 0, 3, 0, 0, 1, 2, 3, 2, 2, 3, 3, 3, 0, 1, 2, 1, 0, 0, 3, 2, 2, 1, 2, 3, 0, 0, 0, 1, 2], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,0,background crate:2,\nbackground crate target:3,1,0,0,1,1,\nbackground player target:4,3,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n", 0, "1645546672241.5308"] + ], + [ + "[testing for recording through level-changes B] Simple Block asdfsadf Game", + ["title Simple Block Pushing Game\nauthor David Skinner\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\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[ > 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\n", [2, 1, 0, 3, 3, 2, 1, 3, 3, 2, 1, 0, 1, 1, 2, 2, 3, 0, 1, 0, 3, 0, 0, 1, 2, 3, 2, 2, 3, 3, 0, 1, 2, 1, 0, 0], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,0,background crate:2,\nbackground target:3,1,0,0,1,background player:4,\nbackground crate target:5,5,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n", 0, "1645546774769.8335"] + ], + + [ + "[testing for recording through level-changes C] Don't asdlet your goals slip away", + ["title Don't let your goals slip away\nauthor increpare [riff on david skinner's levels]\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\nbackground_color green\n\n\ncolor_palette 2\n========\nOBJECTS\n========\n\nBackground\nGREEN green\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nblack\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nDARKBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nlightgray lightgray lightgray lightgray\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange\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\nobstacle = crate or wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 78774307\ntarget move 81495507\nendlevel 52446100\nstartgame 73236703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n( [ > player | wall ] -> cancel )\n[ > player | crate | obstacle ] -> cancel\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > player | target ] -> [ > player | > target ] \n[ > target | target ] -> [ > target | > target ]\n[ > target | wall ] -> [ target | wall ]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 8\n\n(funny therefore good)\n####..\n#o*#..\n#..###\n#....#\n#.o*.#\n#.p###\n####..\n\n(meh)\n( ####.. )\n( #.o#.. )\n( #..### )\n( #o...# )\n( #*.*.# )\n( #.p### )\n( ####.. )\n\n\n\n(p. good!)\n..####...\n###..####\n#....*o.#\n#.#..#.o#\n#..*.#p.#\n#########\n\n( (Easy but funny) )\n( ###### )\n( #.*..# )\n( #.#.*# )\n( #....# )\n( #p*o.# )\n( #.oo.# )\n( ###### )\n\n\nmessage level 3 of 8\n\n(not bad)\n######\n##o..#\n#.#oo#\n#.*..#\n#.*..#\n#p*..#\n######\n\nmessage level 4 of 8\n\n########\n#...*..#\n#.o#.@p#\n#..*...#\n#####.o#\n....####\n\nmessage level 5 of 8\n\n\n\n(decent!)\n#####.\n#.*.##\n#.o.p#\n##.o.#\n.##.*#\n..##.#\n...###\n\nmessage level 6 of 8\n\n(fine right?)\n......###.\n#######o##\n#...*o...#\n#.#.#.#.##\n#.p.*...#.\n#########.\n\nmessage level 7 of 8\n(no idea. damnit spoiled but also ok.)\n####..\n#..#..\n#.*###\n#..*p#\n#..o.#\n#o.###\n####..\n\n\n\nmessage level 8 of 8\n(Tricky but also decent? involves fun manipulations)\n#######\n#..#..#\n#.o*o.#\n#.*p*##\n#.o*o.#\n#..#..#\n#######\n\n\nmessage Congratulations! You didn't let your goals run away from you.\n\n(transform\n\n[player]->[]\n[target]->[]\n[crate]->[]\n\nchoose 2 [] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player ] -> [ target ] \n\n)\n\n", [0, 0, 0, 2, 3, 3, 2, 1, 1, 1, 2, 1, 0, 0, 0], "background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,0,1,\n1,0,0,0,background crate:2,1,1,0,0,\n0,0,1,1,1,2,1,1,1,\n0,1,background target:3,0,background player:4,1,0,1,0,\n3,0,1,0,1,1,1,1,1,\n", 1, "1645546878695.2927"] + ], + + [ + "Wallnut chasing mouse chasing cat chasing dog chasing man", + ["title Wallnut chasing mouse chasing cat chasing dog chasing man\nauthor Stingby12\nhomepage https://stingby12.itch.io/\n\nnoaction\nrun_rules_on_level_start\n\nkey_repeat_interval 0.2\nagain_interval 0.2\n\ncolor_palette 5\n\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\nDogIdle\nLightbrown Black Red\n.....\n0.0..\n101..\n02000\n.0000\n\nDogActiveL\nLightbrown Black Red\n0.0..\n101.0\n02000\n.0000\n.0..0\n\nDogActiveR\nLightbrown Black Red\n..0.0\n0.101\n00020\n0000.\n0..0.\n\nCatIdle\nGray Black White\n.....\n0.0..\n101..\n00000\n.0220\n\nCatActiveL\nGray Black White\n0.0..\n101.0\n00000\n.0220\n.0..0\n\nCatActiveR\nGray Black White\n..0.0\n0.101\n00000\n0220.\n0..0.\n\nMouseIdle\nGray DarkGray Pink\n.....\n.....\n.....\n100..\n.000.\n\nMouseActiveL\nGray DarkGray Pink\n.....\n.....\n.....\n100..\n.0022\n\nMouseActiveR\nGray DarkGray Pink\n.....\n.....\n.....\n..001\n2200.\n\nWallnutIdle\nYellow Orange Blue\n.....\n.....\n..0..\n.011.\n..1..\n\nWallnutActive\nYellow Orange Blue\n..0..\n.011.\n.212.\n.2.2.\n22.22\n\nCrate\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\n(--Anim--)\n\nPlayerAnim\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nDogAnimL\nLightbrown Black Red\n0.0..\n101.0\n02000\n.0000\n.0..0\n\nDogAnimR\nLightbrown Black Red\n..0.0\n0.101\n00020\n0000.\n0..0.\n\nCatAnimL\nGray Black White\n0.0..\n101.0\n00000\n.0220\n.0..0\n\nCatAnimR\nGray Black White\n..0.0\n0.101\n00000\n0220.\n0..0.\n\nMouseAnimL\nGray DarkGray Pink\n.....\n.....\n.....\n100..\n.0022\n\nMouseAnimR\nGray DarkGray Pink\n.....\n.....\n.....\n..001\n2200.\n\nWallnutAnim\nYellow Orange Blue\n..0..\n.011.\n.212.\n.2.2.\n22.22\n\nSpawner\ntransparent\n\nSpawnButton\ntransparent\n\nHordeButton\ntransparent\n\nGoL\ntransparent\n\nGoR\ntransparent\n\nDelete\ntransparent\n\nAscendButton\ntransparent\n\nPlayerAscending1\nBlack Orange White Blue Lightbrown\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nPlayerAscending2\nBlack Orange White Blue Lightbrown\n.000.\n21112\n.222.\n.333.\n.3.3.\n\nPlayerAscending3\nBlack Orange White Blue Lightbrown\n.000.\n24142\n.222.\n.333.\n.3.3.\n\nNextStep\ntransparent\n\nLight\nyellow\n00000\n00000\n00000\n00000\n00000\n\nLightL\nyellow\n...00\n...00\n...00\n...00\n...00\n\nLightR\nyellow\n00...\n00...\n00...\n00...\n00...\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nD = DogIdle\nC = CatIdle\nM = MouseIdle\nW = WallnutIdle\n* = Crate\n@ = Crate and Target\nO = Target\n\nDogActive = DogActiveL or DogActiveR\nCatActive = CatActiveL or CatActiveR\nMouseActive = MouseActiveL or MouseActiveR\n\nDog = DogIdle or DogActive\nCat = CatIdle or CatActive\nMouse = MouseIdle or MouseActive\nWallnut = WallnutIdle or WallnutActive\n\n(--Anim--)\n\n+ = PlayerAnim\n% = PlayerAnim and Spawner\n& = PlayerAscending3 and Light\n§ = Light\nµ = Light and SpawnButton\n£ = Light and Delete\n- = Spawner\n? = SpawnButton\n! = HordeButton\n< = GoL\n> = GoR\nX = Delete\n/ = AscendButton\n\nDogAnim = DogAnimL or DogAnimR\nCatAnim = CatAnimL or CatAnimR\nMouseAnim = MouseAnimL or MouseAnimR\n\nAscend = PlayerAscending1 or PlayerAscending2 or PlayerAscending3\n\nAnim = PlayerAnim or DogAnim or CatAnim or MouseAnim or WallnutAnim\n\n=======\nSOUNDS\n=======\n\nstartgame 13270509\nendlevel 22256108\nendgame 22256108\nrestart 94088302\nundo 87693501\n\nCrate MOVE 25943107\nCatIdle MOVE 25943107\nMouseIdle MOVE 25943107\nWallnutIdle MOVE 25943107\n\nsfx0 86992703\nDogActive MOVE 47565107\nCatActive MOVE 36092905\nMouseActive MOVE 20048306\nWallnutActive MOVE 18695302\n\n(--Anim--)\n\nDogAnim create 47565107\nDogAnim move 47565107\nCatAnim create 36092905\nCatAnim move 36092905\nMouseAnim create 20048306\nMouseAnim move 20048306\nWallnutAnim create 18695302\nWallnutAnim move 18695302\n\nPlayerAscending3 destroy 58002102\n\nsfx1 52296908\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Dog, Cat, Mouse, Wallnut, Wall, Crate\n\n(--Anim--)\n\nLight, LightL, LightR\nSpawner, SpawnButton, HordeButton, GoL, GoR, Delete, AscendButton\nPlayerAnim, Ascend, DogAnim, CatAnim, MouseAnim, WallnutAnim\nNextStep\n\n======\nRULES\n======\n\n[> Player | Crate] -> [> Player | > Crate]\n[> Player | CatIdle] -> [> Player | > CatIdle]\n[> Player | MouseIdle] -> [> Player | > MouseIdle]\n[> Player | WallnutIdle] -> [> Player | > WallnutIdle]\n\nright [DogActiveL | ... | Player] -> [DogActiveR | ... | Player]\nleft [DogActiveR | ... | Player] -> [DogActiveL | ... | Player]\nright [CatActiveL | ... | DogActive] -> [CatActiveR | ... | DogActive]\nleft [CatActiveR | ... | DogActive] -> [CatActiveL | ... | DogActive]\nright [MouseActiveL | ... | CatActive] -> [MouseActiveR | ... | CatActive]\nleft [MouseActiveR | ... | CatActive] -> [MouseActiveL | ... | CatActive]\n\n[DogActive | ... | Player] -> [> DogActive | ... | Player]\n[CatActive | ... | DogActive] -> [> CatActive | ... | DogActive]\n[MouseActive | ... | CatActive] -> [> MouseActive | ... | CatActive]\n[WallnutActive | ... | MouseActive] -> [> WallnutActive | ... | MouseActive]\n\nlate [DogIdle | Player] -> [DogActiveL | Player] sfx0\nlate [CatIdle | DogActive] -> [CatActiveL | DogActive] sfx0\nlate [MouseIdle | CatActive] -> [MouseActiveL | CatActive] sfx0\nlate [WallnutIdle | MouseActive] -> [WallnutActive | MouseActive] sfx0\n\n(--Anim--)\n\n[Anim] [GoL] -> [left Anim] [GoL] again\n[Anim] [GoR] -> [right Anim] [GoR] again\n[Anim Delete] -> [Delete] again\n[PlayerAscending3 Delete] -> [Delete] again\n\n[PlayerAscending3] -> [up PlayerAscending3] again\n\nlate [PlayerAnim SpawnButton] [GoR] [Spawner] -> [PlayerAnim SpawnButton] [GoR] [DogAnimR Spawner]\nlate [PlayerAnim SpawnButton] [GoL] [Spawner] -> [PlayerAnim SpawnButton] [GoL] [DogAnimL Spawner]\nlate [PlayerAscending3 SpawnButton] [Spawner] -> [PlayerAscending3 SpawnButton] [DogAnimR Spawner]\n\nlate [DogAnim HordeButton] [GoR] [Spawner] -> [DogAnim HordeButton] [GoR] [CatAnimR Spawner]\nlate [DogAnim HordeButton] [GoL] [Spawner] -> [DogAnim HordeButton] [GoL] [CatAnimL Spawner]\nlate [CatAnim HordeButton] [GoR] [Spawner] -> [CatAnim HordeButton] [GoR] [MouseAnimR Spawner]\nlate [CatAnim HordeButton] [GoL] [Spawner] -> [CatAnim HordeButton] [GoL] [MouseAnimL Spawner]\nlate [MouseAnim HordeButton] [Spawner] -> [MouseAnim HordeButton] [WallnutAnim Spawner]\n\nlate [Ascend AscendButton] -> [Ascend NextStep AscendButton] again\n\nlate [PlayerAnim AscendButton] -> [PlayerAscending1 AscendButton] again\n\n[PlayerAscending1 NextStep] -> [PlayerAscending2]\n[PlayerAscending2 NextStep] -> [PlayerAscending3] sfx1 win\n\nleft [Light | no Light] -> [Light | LightL]\nright [Light | no Light] -> [Light | LightR]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nNo DogIdle\nNo CatIdle\nNo MouseIdle\nNo WallnutIdle\n\n(--Anim--)\n\nNo Anim\nNo Ascend\n\n=======\nLEVELS\n=======\n\nmessage \"I wonder if I'll get chased by something today\"\nmessage Level 1a of 4\n\n#####.\n#...##\n#.#p.#\n#.*@.#\n#.o@.#\n#....#\n######\n\nmessage \"Oh just great\"\nmessage Level 1b of 4\n\n#####.\n#..d##\n#.#p.#\n#.*@.#\n#.o@.#\n#....#\n######\n\nmessage \"There's more following me ?\"\nmessage Level 1c of 4\n\n#####.\n#mcd##\n#.#p.#\n#.*@.#\n#.o@.#\n#....#\n######\n\nmessage \"I don't need anything please stop following me\"\nmessage Level 2 of 4\n\n####..\n#.o#..\n#..###\n#@p..#\n#..*d#\n#c.m##\n#####.\n\nmessage \"There's not way this wallnut can chase me\"\nmessage Level 3a of 4\n\n####.....\n#..###.#.\n#.d..#...\n##.#.###.\n.#.mp..#.\n.###.#w##\n...#...c#\n.#.###..#\n.....####\n\nmessage \"Okay nevermind\"\nmessage Level 3b of 4\n\n####.....\n#..###.#.\n#.w..#...\n##.#.###.\n.#.mp..#.\n.###.#d##\n...#...c#\n.#.###..#\n.....####\n\nmessage \"They'll never stop following me until I'm stuck\"\nmessage Level 4a of 4\n\n...#######\n####...#w#\n#..#.m.#.#\n#..d.*.o.#\n##c#.*.o.#\n.###.p.###\n...#####..\n\nmessage \"But I still have one last trick up my sleeve\"\nmessage Level 4b of 4\n\n.......###.\n...#####w#.\n####...#.##\n#..#.m.#...\n#..d.*oo.##\n##c#.*...#.\n.###.p.###.\n...#####...\n\n(--Anim--)\n\n.........\n....>....\n.........\n.........\n%.!.?...x\n.........\n.........\n\n.........\n....<....\n.........\n.........\nx...?.!.%\n.........\n.........\n\n.........\n....>....\n.........\n.........\n%!....?.x\n.........\n.........\n\n.........\n....>....\n.........\n.........\n+.../....\n.........\n.........\n\nmessage \"I ascend !\"\n\n....£....\n.>..§....\n....§....\n....§....\n-!..µ...x\n....&....\n....§....\n\nmessage \"Goodbyeeeee...\"\n\n", [1, 0, 0, 0, 3, 0, 1, 2, 2, 2, 3, 0, 3, 3, 2, 1, 0, 1, 2, 3, 0, 1, 1, 1, 1, 1, 0, 3, 2, 3, 3, 1, 0, 2, 0, 3, 2, 2, 1, 0, 3, 0, 3, 2, 3, 2, 3], "background:0,0,background wall:1,1,1,1,0,0,0,0,1,\n0,0,1,1,0,0,0,1,0,0,0,\n1,0,0,1,1,1,0,1,1,1,0,\n1,0,0,0,0,0,1,0,1,0,background mouseactiver:2,\n0,background crate:3,3,1,0,1,0,background catactiver:4,background dogactiver target:5,0,0,\n1,1,1,1,1,background player target:6,0,1,1,1,background wallnutidle:7,\n0,0,0,0,1,0,1,1,1,0,1,\n1,1,0,0,0,1,0,1,0,0,0,\n", 23, "1645578571689.1494"] + ], + [ + "Kettle, except something is off", + ["title Kettle, except something is off\nauthor Stingby12\nhomepage https://stingby12.itch.io/\n\ncolor_palette arnecolors\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(Moonwulk)\n\n[ up rpolice] -> [rpolice]\n[ down rpolice] -> [rpolice]\n[ left rpolice] -> [ left rpolice]\n\n[ down upolice] -> [ down upolice]\n[ left upolice] -> [upolice]\n[ right upolice] -> [upolice]\n\n[ up lpolice] -> [lpolice]\n[ down lpolice] -> [lpolice]\n[ right lpolice] -> [ right lpolice]\n\n[ up dpolice] -> [ up 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 You've been hit back by a smooth Kettle\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################\n\nmessage Area secure\nmessage What are these people in black doing ?!\n\n################\n#..............#\n#..............#\n#..............#\n#....kkkkkk....#\n#...lc..c.cj...#\n#...l......j...#\n#...lc.@tt.j...#\n#...l..t@tcj...#\n#...l..ttt.j...#\n#...lc..c..j...#\n#....iiiiii....#\n#..............#\n#..............#\n#..............#\n################\n\nmessage Area secure\nmessage We may be in trouble.\n\n##########\n#..k.....#\n#........#\n#..ltck.j#\n#..c..t..#\n#..t..c..#\n#l.ictj..#\n#........#\n#.....i..#\n##########\n\nmessage Area secure\nmessage KAW !\n\n###############\n#.............#\n#....k........#\n#......k......#\n#..l.c....k...#\n#......c.j....#\n#...l.@tt.c.j.#\n#.l.c.tt@.....#\n#.....t@t.....#\n#..l.c..c.j...#\n#.....i.......#\n#....i..i.....#\n#.............#\n#.............#\n###############\n\nmessage Area secure\nmessage Mickael Jackson was here.\nmessage Next time it will be Despacito.\n\n", [2, 0, 2, 0, 0, 1, 1, 1, 3, 3, 2, 1, 1, 0, 0, 1, 2, 1, 1, 0, 3, 3, 3, 3, 0, 1, 0, 0], "background wall:0,0,0,0,0,0,0,0,0,0,\n0,background:1,1,background rpolice:2,1,1,1,1,1,0,\n0,1,1,background crate:3,1,1,2,1,1,0,\n0,background dpolice:4,3,background upolice:5,1,background target:6,3,1,1,0,\n0,1,1,6,1,1,background lpolice:7,1,1,0,\n0,1,1,1,1,1,6,1,1,0,\n0,4,3,5,6,1,1,1,1,0,\n0,1,1,7,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,0,\n", 7, "1645562847734.9592"] + ], + [ + "Lightdown", + ["title Lightdown\nauthor Stingby12\nhomepage https://stingby12.itch.io/\n\nbackground_color #262626\n\nrun_rules_on_level_start\n\nkey_repeat_interval 0.3\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nPlayer\nWhite Black\n.000.\n01010\n00000\n01110\n.000.\n\nNormalWall\nWhite\n\nLightWall\nWhite Gray\n00000\n00100\n01110\n00100\n00000\n\nSolidWall\n#262626\n\nFakeWall\nTransparent\n\nLightCrate\nWhite #808080 Black\n.000.\n00100\n01010\n00100\n.000.\n\nNormalCrate\nWhite #808080 Black\n.000.\n00200\n02120\n00200\n.000.\n\nFakeCrate\nTransparent\n\nTarget\nWhite #808080\n.....\n.0.0.\n..1..\n.0.0.\n.....\n\nTargetActi\nWhite White\n.....\n.0.0.\n..1..\n.0.0.\n.....\n\nLightFew\nblack\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nLightMid\nblack\n.....\n.....\n.....\n.....\n.....\n\nLightFull\nblack\n.....\n.....\n.....\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n% = LightWall\n# = NormalWall and FakeWall\n- = SolidWall\n* = LightCrate\n@ = NormalCrate and FakeCrate\nx = Target\n\nLight = LightFull or LightMid or LightFew\nCrate = LightCrate or NormalCrate\nWall = NormalWall or LightWall or SolidWall\n\n=======\nSOUNDS\n=======\n\nstartgame 4133508\nendlevel 74089700\n\nCrate move 19432707\nrestart 14550505\n\nsfx0 10653902\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFakeWall\nNormalWall, LightWall\nTarget, TargetActi\nFakeCrate\nCrate\nLight\nSolidWall\nPlayer\n\n======\nRULES\n======\n\n(Clearing)\n[Light] -> []\n[TargetActi] -> [Target]\n\n(Basic movement)\n[> Player | Crate] -> [> Player | > Crate]\n[> Player | Wall] -> [Player | Wall]\n\n[> Player] [> Crate | Crate] -> [Player] [Crate | Crate]\n[> Player] [> Crate | Wall] -> [Player] [Crate | Wall]\n[> Crate FakeCrate | FakeCrate] -> [ | Crate FakeCrate] sfx0\n\n[> Crate FakeCrate] -> [> Crate > FakeCrate]\n\nlate [Target Crate] -> [TargetActi Crate]\nlate [Target FakeCrate] -> [TargetActi FakeCrate]\n\n(Lighting)\nlate [LightCrate] -> [LightFull LightCrate]\n+ late [LightWall] -> [LightFull LightWall]\n+ late [LightFull | no Light no SolidWall] -> [LightFull | LightMid]\n+ late [LightMid | no Light no SolidWall] -> [LightMid | LightFew]\n\n(Darkess effects)\nlate [NormalWall no Light] -> []\nlate [FakeWall Light] -> [FakeWall NormalWall Light]\n\nlate [NormalCrate no Light] -> []\nlate [FakeCrate Light] -> [FakeCrate NormalCrate Light]\n\n==============\nWINCONDITIONS\n==============\n\nNo Target\n\n=======\nLEVELS\n=======\n\nmessage It's so dark in here.\nmessage Maybe this lantern can help me find the way out.\n\nmessage Level 1 of 8\n\n###########\n#....#....#\n#...*#....#\n#p...#.*#x%\n#...*#....#\n#....#....#\n###########\n\nmessage Level 2 of 8\n\n#####%\n#....#\n#x.*.#\n#p####\n#x.*.#\n#....#\n#####%\n\nmessage Level 3 of 8\n\n.........\n.x...###.\n.x@.*p@#.\n.x...###.\n.........\n\nmessage Level 4 of 8\n\n########\n#.@@@@.#\n#..*.p.#\n#.xxxxx#\n########\n\nmessage Level 5 of 8\n\n.......\n.@.#.p.\n...#...\n.*.#.x.\n.......\n\nmessage Level 6 of 8\n\n.....######\n.....@@.xx%\n--*..@@pxx#\n.....@@.xx%\n.....######\n\nmessage Level 7 of 8\n\n###%#####%#####%###\n#.....#...*.#x.@..#\n#...@*#...*x#..*..#\n#p.x@x#...*.#x.@..#\n#...@*#...*x#..*..#\n#.....#...*.#x.@..#\n###%#####%#####%###\n\nmessage Level 8 of 8\n\n-######-\n##@@@@##\n#@xxxx@#\n#@x*xx@#\n#@xp*x@#\n#@xxxx@#\n##@@@@##\n-######-\n\nmessage I guess darkness is not that useless after all.\n\n", [0, 1, 1, 1, 1, 1, 1, 2, 3, 3, 2, 1, 2, 1, 0, 3, 0, 0, 1, 1, 2, 3, 2, 3, 3, 0, 0, 3, 1, 3, 2, "undo", 1, 2, 3, "undo", 0, 1, 1, 2, 3, 0, 3, 3, 3, 2, "undo", 0, 3, 1, 2, 2, 3, 3, 3, "undo", "undo", 1, 0, 0, 2, 3, 2, 2, 3, 3, 3, 3, 0, 0, 1, 0, 1, 2, 3, 2, 2, 2, 1, 1, 1, 0, 0, 3, "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", 2, "undo", 3, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 3, 2, 3, "undo", 1, 3, 2, "undo", 1, 2, 3, 3, 2, 3, 3, 1, "undo", "undo", "restart", 1, 1, 1, 1, 0, 1, 2, 3, 2, 2, 1, 1, 0, 3, 3, "undo", 2, 3, 3, 0, 3, "undo", 0, 3, 3, 2, 1, 2, 1, 0, 2, 1, 1, 0, 3, 3, 0, "undo", 0, 2, 1, 0, 0, 3, 3, "undo", 3, "undo", 0, 3, 3, 2, 3, 2, 1, 2, 1, 2, 1, 0, 0, 0, 1, 1, "undo", 1, 3, 1, 1, 2, 3, 2, 3, 2, 3, 0, 0, 0, 3, 3, 3, 3, 3, 2, 1], "background:0,0,background solidwall:1,0,0,0,0,1,0,0,0,\n0,0,0,0,0,0,0,background lightfew:2,0,0,background fakecrate:3,\n2,background lightmid:4,2,background fakewall:5,2,background fakecrate lightmid normalcrate:6,background lightcrate lightfull:7,background fakewall lightmid normalwall:8,5,3,background fakecrate lightfew normalcrate:9,\n6,background fakewall lightfew normalwall:10,5,0,0,2,5,5,background lightfew target:11,background player target:12,11,\n5,10,background lightmid target:13,11,13,10,8,background lightfull lightwall:14,8,14,8,\n", 13, "1645563041712.7258"] + ], + + + + [ + "I Need To Stop My Teleport Gun", + ["title I Need To Stop My Teleport Gun\nauthor duyaa\nhomepage https://confoundingcalendar.itch.io/\n\nagain_interval 0.1\nbackground_color #151244\ntext_color #f9cb60\n\n========\nOBJECTS\n========\n\nBackground \n#f9cb60 #f9960f #bc2f01\n00001\n01000\n00100\n00010\n10000\n\nSave\n#f9cb60 #f9960f #bc2f01\n01111\n10001\n10101\n10001\n11110\n\nSaveFinal\n#f9cb60 #f9960f #bc2f01\n01111\n10001\n10101\n10001\n11110\n\nPit\n#151244 #60117f #922a95\n00001\n01000\n00100\n00010\n10000\n\nPlayer\ntransparent #be7dbc #60117f #bc2f01\n03030\n02220\n21212\n02220\n02020\n\nDeadPlayer\ntransparent #be7dbc\n01010\n01110\n10101\n01110\n01010\n\nGun0\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n10000\n10000\n11111\n\nGun1\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n12000\n12000\n11111\n\nGun2\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n12300\n12300\n11111\n\nGun3\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n12340\n12340\n11111\n\nGun4\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n12345\n12345\n11111\n\nGunBroken1\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n12145\n12345\n11111\n\nGunBroken2\n#f9cb60 #680703 #151244 #bc2f01 #922a95 #be7dbc\n01010\n11111\n11315\n12145\n11111\n\nGunBroken3\n#f9cb60 #680703 #bc2f01 #f9960f #be7dbc\n01110\n11211\n12321\n11214\n11111\n\nGunBroken4\n#f9cb60 #680703 #bc2f01 #f9960f\n01210\n12321\n23032\n12321\n11211\n\nGunBroken5\n#f9cb60 #680703 #bc2f01 #f9960f\n12321\n23032\n30003\n23032\n12321\n\nGunBroken6\n#f9cb60 #bc2f01 #f9960f\n12021\n20002\n00000\n20002\n12021\n\nGunBroken7\n#f9cb60 #f9960f\n10001\n00000\n00000\n00000\n10001\n\nGunBroken8\n#f9cb60\n00000\n00000\n00000\n00000\n00000\n\nBulletD\ntransparent #be7dbc #922a95 #60117f\n00300\n00200\n02120\n00200\n00000\n\nBulletL\ntransparent #be7dbc #922a95 #60117f\n00000\n00200\n02123\n00200\n00000\n\nBulletR\ntransparent #be7dbc #922a95 #60117f\n00000\n00200\n32120\n00200\n00000\n\nBulletU\ntransparent #be7dbc #922a95 #60117f\n00000\n00200\n02120\n00200\n00300\n\nCrate\n#7f6962 #680703\n00000\n01110\n01110\n01110\n00000\n\nCrateUL\n#7f6962 #680703 transparent\n22220\n22200\n22010\n20110\n00000\n\nCrateUR\n#7f6962 #680703 transparent\n02222\n00222\n01022\n01102\n00000\n\nCrateDL\n#7f6962 #680703 transparent\n00000\n20110\n22010\n22200\n22220\n\nCrateDR\n#7f6962 #680703 transparent\n00000\n01102\n01022\n00222\n02222\n\nTempGun\ntransparent\n\nBorderCheck\ntransparent\n\nTempTele\ntransparent\n\nSolutionCheck\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n: = Save\n; = SaveFinal\nX = Pit and BorderCheck\n# = Pit\nP = Player\nG = Gun0\n0 = Crate\n1 = CrateUL\n2 = CrateUR\n3 = CrateDL\n4 = CrateDR\n5 = CrateUL and Save\n6 = CrateUR and Save\n7 = CrateDL and Save\n8 = CrateDR and Save\nB = CrateUR and SolutionCheck\nd = BulletD\nr = BulletR\nl = BulletL\nu = BulletU\n\nGun = Gun0 or Gun1 or Gun2 or Gun3 or Gun4\nGunBroken = GunBroken1 or GunBroken2 or GunBroken3 or GunBroken4 or GunBroken5 or GunBroken6 or GunBroken7 or GunBroken8\nGunOrGunBroken = Gun or GunBroken\nObject = Crate or CrateUL or CrateUR or CrateDL or CrateDR\nBullet = BulletD or BulletL or BulletR or BulletU\n\n( for bullet colliding )\nObjectD = Crate or CrateDL or CrateDR\nObjectL = Crate or CrateUL or CrateDL\nObjectR = Crate or CrateUR or CrateDR or Gun\nObjectU = Crate or CrateUL or CrateUR\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSave, Pit, SaveFinal, SolutionCheck\nGun, GunBroken, Object\nPlayer\nDeadPlayer\nBulletD\nBulletL\nBulletR\nBulletU\nTempGun\nBorderCheck\nTempTele\n\n======\nRULES \n====== \n\n( gun charging )\n[GunOrGunBroken] -> [GunOrGunBroken TempGun]\n[Gun0 TempGun] -> [Gun1 no TempGun]\n[Gun1 TempGun] -> [Gun2 no TempGun]\n[Gun2 TempGun] -> [Gun3 no TempGun]\n[Gun3 TempGun] -> [Gun4 no TempGun]\nright [Gun4 TempGun | no ObjectR] -> [Gun0 BulletR no TempGun | ]\nright [Gun4 TempGun | ObjectR] -> [GunBroken1 no TempGun | ObjectR] again\n( gun breaking )\n[GunBroken1 TempGun] -> [GunBroken2 no TempGun] again\n[GunBroken2 TempGun] -> [GunBroken3 no TempGun] again\n[GunBroken3 TempGun] -> [GunBroken4 no TempGun] again\n[GunBroken4 TempGun] -> [GunBroken5 no TempGun] again\n[GunBroken5 TempGun] -> [GunBroken6 no TempGun] again\n[GunBroken6 TempGun] -> [GunBroken7 no TempGun] again\n[GunBroken7 TempGun] -> [GunBroken8 no TempGun] win\n\n( bullet moving )\n[Bullet BorderCheck] -> [Player TempTele BorderCheck]\n[BulletD][Gun] -> [down BulletD][Gun]\n[BulletL][Gun] -> [left BulletL][Gun]\n[BulletR][Gun] -> [right BulletR][Gun]\n[BulletU][Gun] -> [up BulletU][Gun]\n( bullet and object colliding )\ndown [> BulletD | ObjectD] -> [stationary Player < TempTele | ObjectD]\nlate [ BulletD CrateUL] -> [ BulletL CrateUL]\nlate [ BulletD CrateUR] -> [ BulletR CrateUR]\nleft [> BulletL | ObjectL] -> [stationary Player < TempTele | ObjectL]\nlate [ BulletL CrateUR] -> [ BulletU CrateUR]\nlate [ BulletL CrateDR] -> [ BulletD CrateDR]\nright [> BulletR | ObjectR] -> [stationary Player < TempTele | ObjectR]\nlate [ BulletR CrateUL] -> [BulletU CrateUL]\nlate [ BulletR CrateDL] -> [BulletD CrateDL]\nup [> BulletU | ObjectU] -> [stationary Player < TempTele | ObjectU]\nlate [BulletU CrateDL] -> [ BulletL CrateDL]\nlate [BulletU CrateDR] -> [ BulletR CrateDR]\n( teleport collision recoiling )\n[> TempTele Object] -> [> TempTele > Object]\n\n( teleportation happening )\n[Player no TempTele][TempTele] -> [][TempTele]\n[DeadPlayer no TempTele][TempTele] -> [] [TempTele]\n[TempTele] -> []\n\n( player, object normally moving )\n[> Player | Object] -> [> Player | > Object]\n[> Object | stationary Object] -> [> Object | > Object]\n( cannot push gun )\n[> Player | GunOrGunBroken] -> [stationary Player | GunOrGunBroken]\n[> Object | GunOrGunBroken] -> [stationary Object | GunOrGunBroken]\n[> Object | stationary Object] -> [stationary Object | Object]\n[> Player | stationary Object] -> [stationary Player | Object]\n( pit )\nlate [Player Pit] -> [DeadPlayer Pit]\n[> Object | Pit] -> [ | Pit]\n( checkpoint )\nlate [SolutionCheck Bullet][SaveFinal] -> [Bullet][Save]\nlate [Player Save] -> [Player] checkpoint\n\n==============\nWINCONDITIONS\n============== \n\n======= \nLEVELS\n=======\n\nmessage Press X to wait. \n\nXXXXXXXXXXXXXXXXXXXX\nX#4##..####3##.###.X\nX####.2.###1##.###3X\nX##.....#####:4#3#0X\nX##.4.#..####..####X\nX###...#.#####2#1##X\nX###.#...###4#####1X\nX.80.######.60#####X\nX#23###0..####...##X\nX#4.#3#4;0G.##.:0#3X\nX##...#.....##...##X\nX##.1.0###..#####..X\nX###..#B####23##0:1X\nX##0#.###.##41###4.X\nX###0:0.#4..213####X\nX####0.0#.....#0:1.X\nX0:..############1#X\nX#.2.###014.0#23###X\nX#..########1##2.0#X\nX####0######4##1###X\nX########2.10######X\nXXXXXXXXXXXXXXXXXXXX\n\nmessage I'm freeeeeeeee!\n\n", [4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 3, 2, 1, 4, 4, 4, 4, 4, 4, 4, 4, 0, 3, 2, 4, 4, 1, 1, 3, 0, 3, 1, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 4, "undo", "undo", 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, 2, 2, 3, 0, 2, 2, 3, 0, 3, 0, 2, 2, "undo", "undo", "undo", "undo", 3, 2, 3, 3, 0, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0], "background bordercheck pit:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background pit:1,1,1,1,1,1,background:2,1,1,1,1,1,1,1,1,background crate:3,1,\n1,1,1,0,0,background cratedr:4,1,1,1,1,1,background cratedr save:5,background crateur:6,background bulletr cratedr:7,1,1,1,1,background bulletu pit:8,1,\n6,2,2,1,1,0,0,1,1,2,2,1,1,3,background cratedl:9,2,2,2,1,3,\n1,1,2,2,2,1,1,0,0,1,1,2,4,2,2,2,1,1,2,background crateul:10,\n2,1,3,1,2,2,1,1,1,0,0,2,2,2,2,2,1,1,1,9,\n2,background bulletd:11,2,background player:12,2,3,background bulletl pit:13,1,1,3,1,0,0,2,6,2,1,2,2,1,\n1,1,1,3,1,1,3,2,1,1,1,1,1,0,0,1,2,2,2,1,\n2,1,3,4,2,1,background crateur solutioncheck:14,1,2,3,1,1,1,1,1,0,0,1,1,1,\n2,2,2,1,2,background savefinal:15,2,1,1,1,1,1,1,3,1,1,1,0,0,1,\n1,1,1,1,1,1,2,3,2,1,1,2,4,2,1,10,1,1,6,0,\n0,1,1,1,1,1,1,1,1,background gun2:16,2,2,1,1,2,2,13,4,1,1,\n2,0,0,9,10,1,1,1,1,2,1,2,2,2,1,1,2,2,1,2,\n1,1,10,0,0,1,1,1,1,1,4,background crateur save:17,1,1,1,1,6,4,6,2,\n1,3,10,4,3,0,0,1,1,background save:18,2,1,1,3,1,background bulletr pit:19,1,1,9,10,\n10,2,1,1,1,1,1,0,0,2,2,4,2,6,1,1,2,2,2,1,\n1,1,9,1,1,6,1,1,1,0,0,1,1,1,1,1,1,1,2,2,\n2,1,1,1,1,3,13,9,6,10,1,0,0,1,1,9,1,10,1,1,\n2,2,3,1,2,1,1,2,1,1,2,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,2,2,background bulletd cratedr:20,1,2,10,1,3,1,1,0,0,2,9,3,\n1,1,10,1,1,background bulletd cratedl:21,1,2,2,10,1,10,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 1, "1645578752808.7263"] + ], + [ + "City road builder", + ["title City road builder\nauthor Stingby12\nhomepage https://confoundingcalendar.itch.io/\n\nbackground_color #60117f\ntext_color #f9960f\n\nnoundo\nagain_interval 0.05\nrun_rules_on_level_start\n\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\n#151244\n\nHouseNeut\n#bc2f01\n.....\n.000.\n.000.\n.000.\n.....\n\nHouseWonrg\n#922a95\n.....\n.000.\n.000.\n.000.\n.....\n\nHouseRight\n#680703\n.....\n.000.\n.000.\n.000.\n.....\n\nIntersect\n#922a95\n.....\n..0..\n.000.\n..0..\n.....\n\nWall\n#60117f\n\nPlayer\n#f9cb60 #f9960f\n.....\n.0.0.\n..1..\n.0.0.\n.....\n\nPlayerDone\n#f9cb60 #f9960f\n.....\n.....\n..1..\n.....\n.....\n\nStartpos\n#be7dbc\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nPathL\n#f9960f\n.....\n.....\n000..\n.....\n.....\n\nPathR\n#f9960f\n.....\n.....\n..000\n.....\n.....\n\nPathU\n#f9960f\n..0..\n..0..\n..0..\n.....\n.....\n\nPathD\n#f9960f\n.....\n.....\n..0..\n..0..\n..0..\n\nCorner\ntransparent\n\nStraight\ntransparent\n\nCantmove\ntransparent (#be7dbc)\n.....\n.....\n..0..\n.....\n.....\n\nCornerWonrg\n#680703\n..0..\n.0.0.\n0...0\n.0.0.\n..0..\n\nCantWin\ntransparent\n\nWillWin\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nO = HouseNeut\n+ = Intersect\nP = Player and Startpos\n\nPath = PathL or PathR or PathU or PathD\nHouse = HouseNeut or HouseWonrg or HouseRight\nWonrg = HouseWonrg or HouseNeut or CornerWonrg\n\n=======\nSOUNDS\n=======\n\nendlevel 57894308\nstartgame 74954908\n\nsfx0 92660707\nsfx1 65428907\n\nsfx2 94788500\nsfx3 78837102\n\nsfx4 52715504\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n\nCorner\nStraight\n\nCornerWonrg\nStartpos\nHouse\nIntersect\n\nPathL\nPathR\nPathU\nPathD\n\nPlayer, PlayerDone\nWall\n\nCantmove\nCantWin\nWillWin\n\n======\nRULES\n======\n\n(clearing)\n[Cantmove no Path] -> []\n[Cantwin] -> []\n\n[WillWin] -> Win\n\n(check win conditions)\n[Player] [CornerWonrg] -> [Player CantWin] [CornerWonrg]\n[Player] [HouseNeut] -> [Player CantWin] [HouseNeut]\n[Player] [HouseWonrg] -> [Player CantWin] [HouseWonrg]\nup [up Player no CantWin|Startpos] -> [PathU|PathD PlayerDone WillWin]\ndown [down Player no CantWin|Startpos] -> [PathD|PathU PlayerDone WillWin]\nleft [left Player no CantWin|Startpos] -> [PathL|PathR PlayerDone WillWin]\nright [right Player no CantWin|Startpos] -> [PathR|PathL PlayerDone WillWin]\n[WillWin] -> again\n\n(moves)\n(forward move)\nright [right Player|no Wall no Cantmove] -> [PathR|PathL Player] sfx0\nright [no Wall no Cantmove|left Player] -> [Player PathR|PathL] sfx0\ndown [down Player|no Wall no Cantmove] -> [PathD|PathU Player] sfx0\ndown [no Wall no Cantmove|up Player] -> [Player PathD|PathU] sfx0\n(backwards undo moves)\nright [> Player PathR | PathL ] -> [|Player] sfx1\ndown [> Player PathD | PathU ] -> [|Player] sfx1\nleft [> Player PathL | PathR ] -> [|Player] sfx1\nup [> Player PathU | PathD ] -> [|Player] sfx1\n\n(VERY IMPORTANT)\n[> Player] -> [Player]\n[Path] -> [Path Cantmove]\n\n(paths)\n(straight)\nlate [PathL PathR] -> [PathL PathR Straight]\nlate [PathU PathD] -> [PathU PathD Straight]\n(corner)\nlate [PathL PathU] -> [PathL PathU Corner]\nlate [PathU PathR] -> [PathU PathR Corner]\nlate [PathR PathD] -> [PathR PathD Corner]\nlate [PathD PathL] -> [PathD PathL Corner]\n(can't turn on empty)\nlate [Corner no House no Intersect no CornerWonrg] -> [Corner CornerWonrg] sfx3\n[CornerWonrg no Corner] -> [] sfx4\n(clearing)\nlate [Straight PathL no PathR] -> [PathL] again\nlate [Straight PathR no PathL] -> [PathR] again\nlate [Straight PathU no PathD] -> [PathU] again\nlate [Straight PathD no PathU] -> [PathD] again\n\nlate [Corner PathL no PathU no PathD] -> [PathL] again\nlate [Corner PathR no PathU no PathD] -> [PathR] again\nlate [Corner PathU no PathL no PathR] -> [PathU] again\nlate [Corner PathD no PathL no PathR] -> [PathD] again\n\n(turning)\nlate [Corner HouseNeut] -> [Corner HouseRight] sfx2\nlate [Straight HouseNeut] -> [Straight HouseWonrg] sfx3\n[HouseRight no Corner] -> [HouseNeut] sfx4\n[HouseWonrg no Straight] -> [HouseNeut] sfx4\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\nmessage Build a road that turns at every houses, then return to his original position, forming a loop.\nmessage Move backwards to undo.\n\n++..+.+o+\n.........\n.o.+o....\n....+.o++\n.p.####..\n...####..\n.+.....o+\n...+.o..+\n+..+.+...\n\nmessage You are hired !\nmessage -- Made for The CONFOUNDING Calendar --\n\n", [0, 0, 0, 0, 3, 3, 3, 2, 2, 1, "undo", "undo", 3, 0, 0, 3, 3, 2, 2, 2, 3, 1, 0, 0, 0, 3, 3, 2, 2, 2, 1, 1, 1, 1, 0, 0, 3, 3, 1, 1, 2, 1, 1], "background intersect:0,background:1,1,1,1,1,1,1,0,\nbackground cantmove corner intersect pathd pathr:2,background cantmove pathd pathu straight:3,background cantmove housewonrg pathd pathu straight:4,3,background cantmove pathu startpos:5,1,0,1,1,\nbackground cantmove pathl pathr straight:6,1,background cantmove pathr player:7,1,1,1,1,1,1,\n6,1,background cantmove cantwin intersect pathl pathr straight:8,1,background wall:9,9,1,0,0,\nbackground cantmove intersect pathl pathr straight:10,1,background cantmove corner houseright pathd pathl:11,background cantmove corner intersect pathr pathu:12,9,9,1,1,1,\n6,1,1,6,9,9,1,background houseneut:13,0,\n10,1,1,background cantmove housewonrg pathl pathr straight:14,9,9,1,1,1,\n14,1,1,10,1,1,13,1,1,\nbackground cantmove corner intersect pathd pathl:15,3,3,background cantmove corner intersect pathl pathu:16,1,1,0,0,1,\n", 2, "1645569075149.173"] + ], + [ + "Every Star Needs a Tree", + ["title Every Star Needs a Tree\nauthor Toombler\nhomepage https://toombler.itch.io/\n\nbackground_color #60117f\ntext_color #be7dbc\n\nrun_rules_on_level_start\n\nrealtime_interval 0.05\n\nnoaction (remove this line to enable turning off the display with action)\n\n========\nOBJECTS\n========\n\n(\nPALETTE\n)\n\nCol1\n#151244\n\nCol2\n#60117f\n\nCol3\n#922a95\n\nCol4\n#be7dbc\n\nCol5\n#350828\n\nCol6\n#7f6962\n\nCol7\n#f9cb60\n\nCol8\n#f9960f\n\nCol9\n#bc2f01\n\nCol10\n#680703\n\n\n\n\n\nBackground\n#89228c #922a95\n00000\n01110\n01110\n01110\n00000\n\n\nWall\n#60117f\n\n\nPlayer\n#151244 #f9960f #be7dbc #151244\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nUnsatisfiedStar\n#f9960f\n0...0\n.000.\n.000.\n.000.\n0...0\n\nSatisfiedStar\n#f9cb60\n0...0\n.000.\n.000.\n.000.\n0...0\n\n\nTreeTrunk\n#151244\n0000.\n.0000\n0000.\n.0000\n.000.\n\nTreeTop\n#151244 #89228c\n11011\n10001\n00001\n10000\n10001\n\nProtectedTree\n#be7dbc (#f9960f )\n..0..\n.....\n0..0.\n.0...\n...0.\n\n\n\n\nTreeTrunkDissolveCopy\n#151244\n0000.\n.0000\n0000.\n.0000\n.000.\n\nTreeTopDissolveCopy\n#151244 #89228c\n11011\n10001\n00001\n10000\n10001\n\nDissolve0\n#89228c #922a95\n..0..\n0..1.\n.....\n.1...\n...0.\n\nDissolve1\n#89228c #922a95\n.00..\n0.11.\n..1..\n.1...\n..00.\n\nDissolve2\n#89228c #922a95\n.00..\n0.11.\n011..\n.1.00\n.000.\n\nDissolve3\n#89228c #922a95\n000..\n0.11.\n0111.\n.1.10\n.000.\n\nDissolve4\n#89228c #922a95\n00000\n01110\n01110\n01.10\n00000\n\n\nAboveTreeTop\ntransparent\n\n\nScoreStart\ntransparent\n\nScoreSatisfied\n#f9cb60\n.....\n.000.\n00000\n.000.\n.....\n\nScoreUnsatisfied\n#350828\n.....\n.000.\n00000\n.000.\n.....\n\nTempCountedStar\nblack\n\nScoreToggled\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n# = Wall\n\nS = UnsatisfiedStar\nX = SatisfiedStar\nstar = UnsatisfiedStar or SatisfiedStar\n\nT = TreeTrunk\nTree = TreeTrunk or TreeTop\n\nB = ScoreStart and wall\nScore = ScoreSatisfied or ScoreUnsatisfied\n\nDissolve = Dissolve0 or Dissolve1 or Dissolve2 or Dissolve3 or Dissolve4\nTreeDissolveCopy = TreeTrunkDissolveCopy or TreeTopDissolveCopy\n\nCol = Col1 or Col2 or Col3 or Col4 or Col5 or Col6 or Col7 or Col8 or Col9 or Col10\n\n=======\nSOUNDS\n=======\n\nstar MOVE 35528507 (36772507)\nPlayer move 63208907\n\n\nSatisfiedStar create 70313100\nUnsatisfiedStar create 55575100 (54449300) (59228107) (49933904) (15540904)\n\nstartgame 51532700 (75654300)\nendgame 38823100\n\n\nsfx1 78866304 (27218109) (89389102) (4099902) (67740500) (6235507)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nCol\nAboveTreeTop\n\nPlayer, UnsatisfiedStar, SatisfiedStar, TreeTrunk, Wall\n\nTreeTrunkDissolveCopy\nTreeTopDissolveCopy\nDissolve\n\nTreeTop\nProtectedTree\n\n\nTempCountedStar\nScoreToggled\nScoreStart\nScoreSatisfied, ScoreUnsatisfied\n\n\n======\nRULES\n======\n\n(push stars)\n[ > Player | Star ] -> [ > Player | > Star ]\n\n\n(dissolve animation)\n[ Dissolve4 TreeDissolveCopy ] -> []\n[ Dissolve3 ] -> [ Dissolve4 ]\n[ Dissolve2 ] -> [ Dissolve3 ]\n[ Dissolve1 ] -> [ Dissolve2 ]\n[ Dissolve0 ] -> [ Dissolve1 ]\n\n\n\n(stars protect trees below them)\nlate [ ProtectedTree ] -> []\nlate down [ Star | TreeTrunk ] -> [ Star | TreeTrunk ProtectedTree ]\nlate down [ ProtectedTree | TreeTrunk ] -> [ ProtectedTree | ProtectedTree TreeTrunk ]\n\n(stars kill unprotected trees)\nlate [ star | Treetrunk no ProtectedTree ] -> [ star | TreeTrunkDissolveCopy Dissolve0 ] sfx1\nlate [ TreeTop TreeTrunkDissolveCopy ] -> [ TreeTopDissolveCopy ]\n\n\n(tree top sprite)\nlate [ TreeTop ] -> []\nlate up [ TreeTrunk | no TreeTrunk ] -> [ TreeTrunk TreeTop | ]\n\n(check if stars have a tree)\nlate down [ UnsatisfiedStar | TreeTop ] -> [ SatisfiedStar | TreeTop ]\nlate down [ SatisfiedStar | no TreeTop ] -> [ UnsatisfiedStar | ] \n\n\n\n(score stuff)\nlate [ Score ] -> []\nlate right [ SatisfiedStar no TempCountedStar ][ ScoreStart | no Score ] -> [ SatisfiedStar TempCountedStar ][ ScoreStart | ScoreSatisfied ]\nlate right [ SatisfiedStar no TempCountedStar ][ Score | no Score ] -> [ SatisfiedStar TempCountedStar ][ Score | ScoreSatisfied ]\nlate right [ UnsatisfiedStar no TempCountedStar ][ ScoreStart | no Score ] -> [ UnsatisfiedStar TempCountedStar ][ ScoreStart | ScoreUnsatisfied ]\nlate right [ UnsatisfiedStar no TempCountedStar ][ Score | no Score ] -> [ UnsatisfiedStar TempCountedStar ][ Score | ScoreUnsatisfied ]\nlate [ TempCountedStar ] -> []\n\n[ action Player ][ ScoreStart no ScoreToggled ] -> [ Player ][ ScoreStart ScoreToggled ] \n[ action Player ][ ScoreStart ScoreToggled ] -> [ Player ][ ScoreStart ] \nlate [ Score ][ ScoreToggled ] -> [ ][ ScoreToggled ]\n\n\n==============\nWINCONDITIONS\n==============\n\nno UnsatisfiedStar\n\n\n=======\nLEVELS\n=======\n\n\n\n(things:\n- can't destroy from top\n- use star to free other star\n- use star to make path to other area\n- 4 high = can fit two stars\n)\n\n\n###################\n###################\n#######........####\n###...t.....t..##..\n###.x.t.....t..##s.\n####t##..s..t..##..\n....t.......t..#.s.\n....t.......t..#.s.\n..tttt#t#...t.##t..\n....#...#.p.t...t..\n#####s.s#..........\n#####...#t#########\n###################\n#####b#############\n###################\n\nmessage Thanks For Playing!\n\n(hold right\n................................\np.x.............................\n..t.tt.tt.t.t.t...tt.tt.t.t.t.t.\n................................\n..s.............................\n)\n\n(\n..........\n....s.....\n.t....s...\n.t.....t..\n.t.t.s.t..\n.t.t......\n...t..p...\n..........\n)\n\n\n\n\n\n\n\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", 1, "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", 0, "tick", "tick", "tick", 3, "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", 0, "tick", "tick", "tick", 3, "tick", 0, "tick", "tick", 1, "tick", "tick", "tick", "tick", 2, "tick", 1, "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", 1, "tick", 0, "tick", "tick", 3, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", 0, "tick", "tick", "tick", 1, "tick", "tick", "tick", 3, "tick", "tick", 3, "tick", "tick", 2, "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", 2, "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "undo", "tick", "tick", "tick", "tick", "undo", "tick", "tick", "tick", "undo", "tick", "tick", "tick", "undo", "tick", "tick", "tick", "tick", "undo", "tick", "tick", "tick", "undo", "tick", "tick", "tick", "tick", "undo", "tick", "tick", "tick", "undo", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", 1, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", 3, "tick", "tick", 2, "tick", 1, "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", 1, "tick", "tick", 1, "tick", "tick", "tick", "tick", 2, "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 3, "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 2, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", 0, "tick", "tick", 0, "tick", 3, "tick", "tick", 0, "tick", "tick", 3, "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", 1, "tick", "tick", "tick", 2, "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", 2, "tick", "tick", 1, "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background wall:0,0,0,0,0,0,background:1,1,1,1,0,0,0,0,0,0,0,0,0,\n0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,\nbackground treetop treetrunk:2,1,0,0,0,0,0,0,0,0,1,1,0,1,1,2,1,0,0,\n0,0,0,0,0,0,1,background satisfiedstar:3,background protectedtree treetop treetrunk:4,background protectedtree treetrunk:5,5,5,0,0,0,0,0,0,0,\n0,0,1,1,0,1,1,2,1,background unsatisfiedstar:6,1,0,background scorestart wall:7,0,0,0,0,2,background treetrunk:8,\n0,1,1,0,1,1,1,0,background scoresatisfied wall:9,0,0,0,1,1,1,1,1,1,2,\n1,6,1,0,9,0,0,0,1,1,1,1,1,1,0,0,0,0,0,\n9,0,0,0,1,1,1,1,1,1,1,1,3,4,0,9,0,0,0,\n1,1,1,1,1,1,1,1,1,0,0,background scoreunsatisfied wall:10,0,0,0,1,1,1,1,\n1,1,1,1,1,0,0,10,0,0,0,3,4,1,1,2,8,8,1,\n1,0,0,10,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,\n0,0,0,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,\n0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,\n3,4,5,1,0,0,0,0,0,0,0,1,1,1,1,1,1,6,1,\n0,0,0,0,0,0,0,1,1,1,1,1,1,background player:11,1,0,0,0,0,\n", 0, "1645569315086.5925"] + ], + [ + "Long Haul Space Flight", + ["title Long Haul Space Flight\nauthor pap4qlxxlevb\nbackground_color darkblue\ntext_color lightblue\n\n========\nOBJECTS\n========\n\nBackground\nlightgray gray\n00000\n00000\n00100\n00000\n00000\n\nTarget\n#ffff22 lightgray\n.....\n.000.\n.010.\n.000.\n.....\n\nWall\ndarkgray gray\n00000\n00000\n00000\n00000\n00000\n\nPlayer\nBlack Orange white darkblue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nCrate\nlightblue #668899\n01110\n01110\n11111\n01110\n01010\n\nCryo\nblue lightgrey\n.....\n..0..\n.010.\n..0..\n.....\n\nDefunct\ngrey lightgray\n.....\n..0..\n.010.\n..0..\n.....\n\nThaw\nred lightgray\n.....\n.0.0.\n..1..\n.0.0.\n.....\n\nDthaw\ngrey lightgray\n.....\n.0.0.\n..1..\n.0.0.\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\nw = Wall\nP = Player\no = Crate\ns = Crate and Target\nx = Target\nc = Cryo\nt = Thaw\n\n=======\nSOUNDS\n=======\n\nPlayer move 81907\nCrate MOVE 96378700\nPlayer cantmove 16386304\nendlevel 55294100\nstartgame 5822103\ncrate create 49604100\nplayer create 59446908\n\n================\nCOLLISIONLAYERS\n================\n\nBackground, \nDefunct, dthaw\nTarget, Cryo, Thaw \nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate [ Player Cryo ] -> [ Crate Defunct]\n\nlate [ Crate Thaw ] -> [ Player Dthaw]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nsome Player\n\n=======\nLEVELS\n=======\n\nmessage \"It's gonna be a long, long flight. Make sure all our passengers are in their seats.\"\n\nmessage level 1 of 12\n\nwwwwwww\nwwwwxxw\nww.o..w\nwp.o.ow\nww.o..w\nwwwwxxw\nwwwwwww\n\nmessage \"Looks like someone's arrived late. Help them onboard, will ya?\"\n\nmessage level 2 of 12\n\nwwwwwww\nwwwwx.w\nww...ow\nwpp.c.w\nww....w\nwwww.xw\nwwwwwww\n\nmessage \"Honestly, you'd think people would have the decency to turn up to their cryonic space flight on time!\"\n\nmessage level 3 of 12\n\nwwwwwwwww\nwwwwxwwww\nww.o.o.ww\nwp.....xw\nww.p.c.ww\nwwwwxwwww\nwwwwwwwww\n\nmessage \"If they're gonna arrive late, they can at least help with packing everyone up.\"\n\nmessage level 4 of 12\n\nwwwwwwwww\nwpxw.c.xw\nw.p..o..w\nwp.w.cxww\nwwwwwwwww\n\nmessage \"They're lucky, they won't even feel the years pass. Not like us.\"\n\nmessage level 5 of 12\n\nwwwwwwww\nwxc..wxw\nwwo.p..w\nwwp.c..w\nwwo.p..w\nwx....xw\nwwwwwwww\n\n\nmessage \"From their perspective 75 years will pass in a blink of an eye.\"\n\nmessage level 6 of 12\n\nwwwwwwww\nwwxwwwww\nwwc..www\nww.oxwww\nwwpp..ww\nwwwwwwww\n\nmessage \"It'll be our grandkids who thaw them out on the other side.\"\n\nmessage level 7 of 12\n\nwwwwwww\nwt....w\nw.w.wpw\nw..c..w\nwow.w.w\nw....xw\nwwwwwww\n\nmessage \"I guess we're still lucky in our own way, winning the maintenance raffle.\"\n\nmessage level 8 of 12\n\nwwwwww\nww.cxw\nw.potw\nwto..w\nwxc.ww\nwwwwww\nwwwwww\nmessage \"I'd rather spend those 75 years in here than back on our ruined planet.\"\n\nmessage level 9 of 12\n\nwwwwwww\nwwt.o.w\nwwoww.w\nwp..x.w\nwwww.ww\nwwxc.ww\nwwwwwww\n\nmessage \"Wonder if they'll even remember us once they arrive...\"\n\nmessage level 10 of 12\n\nwwwwwwwwwww\nwwwww.wxx.w\nw....tw.cww\nw.o.w.w..ww\nwp.owt..cww\nw.o.w.w...w\nw....twxc.w\nwwwwwwwwwww\n\nmessage \" ... We've got a long trip ahead of us.\"\n\nmessage level 11 of 12\n\nwwwwww\nw....w\nwpoo.w\nw..o.w\nwwwtww\nwx...w\nwxxc.w\nwwwwww\n\nmessage \"If I am gonna grow old and die on this godforsaken ship...\"\n\nmessage level 12 of 12\n\nwwwwwwwwwwww\nwwwwwwww.www\nwwwwwwxw...w\nw.....twx.ww\nw.o.ww.ww.ww\nwpcow....t.w\nw.o.w.wwcc.w\nw....tw...xw\nwwwwwwwwwwww\n\nmessage \"...I'm glad I get to grow old with you.\"\n\nwwwwwww\nwwwwxxw\nwwpo..w\nw..o.ow\nwwpo..w\nwwwwxxw\nwwwwwww\n\nmessage The End :)\n\n\n", [3, 2, 1, 2, 3, 3, 3, 1, 0, 3, 0, 0, 2, 0, 3, 3, 3, 2, 2, 2, 3, 3, 0, 0, 0, 3, 2, 3, 3, 2, 3, 0, 0, 0, 2, "undo", 1, 2, 1, 1, 2, 2, 1, 1, 1, 0, 1, 0, 0, 0, 3, 3, 3, 2, 2, 3, 3, 2, 2, 3, 3, 3, 2, 3, 2, 1, 0, 0, 0, 1, 3, 0], "background wall:0,0,0,0,0,0,0,0,0,0,background:1,\n1,1,1,1,0,0,0,1,background crate:2,1,1,\n1,0,0,0,1,1,1,1,1,0,0,\n0,1,0,0,0,1,0,0,1,background dthaw:3,1,\nbackground thaw:4,1,3,0,0,0,0,0,1,0,0,\n0,0,background target:5,1,1,1,1,background crate target:6,0,0,6,\nbackground crate defunct:7,1,background defunct:8,1,8,0,0,1,0,0,0,\n1,1,0,0,0,0,0,0,0,0,0,\n", 29, "1645570541337.319"] + ], + [ + "Caramelban", + ["title Caramelban\nauthor Notan\nhomepage https://notaninart.itch.io/\nbackground_color #be7dbc\ntext_color #350828\nrun_rules_on_level_start\nnoaction\n\n========\nOBJECTS\n========\n\nPalette1\n#151244 #60117f #922a95 #be7dbc #350828\n01234\n12340\n23401\n34012\n40123\n\nPalette2\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n01234\n12340\n23401\n34012\n40123\n\nBackground\n#151244 #60117f #922a95 #be7dbc #350828\n33333\n33333\n33333\n33333\n33333\n\nTarget\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.5555\n.5..5\n.5..5\n.5555\n.....\n\nPlayerR\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.222.\n.2222\n.060.\n.666.\n.....\n\nPlayerL\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n..222\n.2222\n..060\n..666\n.....\n\nCaramel1\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.2222\n.2333\n.3322\n.2222\n.....\n\nCaramel2\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.1111\n.1222\n.2211\n.1111\n.....\n\nEdgeH\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.....\n.....\n.....\n.....\n.3333\n\nEdgeV\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n3....\n3....\n3....\n3....\n.....\n\nEdgeC\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.....\n.....\n.....\n.....\n3....\n\nStopCaramel\ntransparent\n\nStopH\ntransparent\n\nStopV\ntransparent\n\nStopC\ntransparent\n\nStretchUp\ntransparent\n\nStretchLeft\ntransparent\n\nStretchDown\ntransparent\n\nStretchRight\ntransparent\n\nWall\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.1222\n.2112\n.1212\n.1121\n.....\n\nWallH\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.....\n.....\n.....\n.....\n.2211\n\nWallV\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n1....\n1....\n2....\n2....\n.....\n\nWallC\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.....\n.....\n.....\n.....\n2....\n\nWalkMarker\ntransparent\n\n=======\nLEGEND\n=======\n\nPalette = Palette1 or Palette2\nX = Palette1\nY = Palette2\n\nPlayer = PlayerR or PlayerL\nCaramel = Caramel1 or Caramel2\nObstacle = Wall or Caramel\n\nEdgeX = EdgeH and EdgeV\nEdge = EdgeH or EdgeV or EdgeC\n\nStopEdge = StopH or StopV or StopC\nStretch = StretchUp or StretchLeft or StretchDown or StretchRight\n\n. = Background\n# = Wall\nP = PlayerR\n* = Caramel1\n% = Caramel2\nT = Target\n\n=======\nSOUNDS\n=======\n\nsfx0 30084302 (walk)\nsfx1 50705900 (on target)\nsfx2 85057703 (stretch)\nsfx3 65493303 (stretch unused)\nsfx4 42598703 (stretch unused)\nsfx5 49655103 (stretch unused)\nUndo 21479104 (72060504 60450507)\nrestart 46704309\nstartgame 21069303\nclosemessage 21069303\n(startlevel 67233309)\nendlevel 32515109\n(endgame 21069303)\ntitlescreen 21069303\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWall\nWallH\nWallV\nWallC\nTarget\nPlayer\nCaramel\n\nStopCaramel\nWalkMarker\n\nEdgeH\nEdgeV\nEdgeC\n\nStretch\n\nStopH\nStopV\nStopC\n\nPalette\n\n======\nRULES \n======\n\n(turn)\n[ right player ] -> [ right playerR ]\n[ left player ] -> [ left playerL ]\n\n(stop player)\n[ > player | wall ] -> [ player | wall ]\n\n\n(move)\n\n(add stopCaramel to walls for convenience)\n[ wall ] -> [ wall stopCaramel ]\n\n(add stop marker to caramel cubes)\n[ > player ] [ caramel no stopCaramel | stopCaramel ] -> [ > player ] [ caramel stopCaramel | stopCaramel ]\n\n(stop player if its neighbor caramel cube has stopCaramel)\n[ > player | stopCaramel ] -> [ player | stopCaramel ]\n\n(walk sound)\n[ > player ] -> [ > player walkMarker ]\n\n(move player and caramel cubes)\n[ > player | caramel ] -> [ > player | > caramel ]\n[ > caramel | caramel ] -> [ > caramel | > caramel ]\n\n\n(add stop to edges)\nleft [ left player ] [ edgeV | stopCaramel ] -> [ left player ] [ edgeV stopV | stopCaramel ]\ndown [ down player ] [ edgeH | stopCaramel ] -> [ down player ] [ edgeH stopH | stopCaramel ]\n[ right player ] [ edgeV stopCaramel ] -> [ right player ] [ edgeV stopV stopCaramel ]\n[ up player ] [ edgeH stopCaramel ] -> [ up player ] [ edgeH stopH stopCaramel ]\n\n(add stopC)\nleft [ left player ] [ edgeC | wallH ] -> [ left player ] [ edgeC stopC | wallH ]\ndown [ down player ] [ edgeC | wallV ] -> [ down player ] [ edgeC stopC | wallV ]\n[ right player ] [ edgeC wallH ] -> [ right player ] [ edgeC stopC wallH ]\n[ up player ] [ edgeC wallV ] -> [ up player ] [ edgeC stopC wallV ]\n\n\n(propagate force from player to edges)\n[ left player edgeV no stopV ] -> [ left player left edgeV ]\n[ down player edgeH no stopH ] -> [ down player down edgeH ]\nright [ right player | edgeV no stopV ] -> [ right player | right edgeV ]\nup [ up player | edgeH no stopH ] -> [ up player | up edgeH ]\n\n(propagate force between edges)\n[ moving edgeV edgeC no stopC ] -> [ moving edgeV moving edgeC ]\n+ [ moving edgeH edgeC no stopC ] -> [ moving edgeH moving edgeC ]\n+ [ moving edgeC edgeV no stopV ] -> [ moving edgeC moving edgeV ]\n+ [ moving edgeC edgeH no stopH ] -> [ moving edgeC moving edgeH ]\n+ down [ moving edgeC | edgeV no stopV ] -> [ moving edgeC | moving edgeV ]\n+ left [ moving edgeC | edgeH no stopH ] -> [ moving edgeC | moving edgeH ]\n+ up [ moving edgeV | edgeC no stopC ] -> [ moving edgeV | moving edgeC ]\n+ right [ moving edgeH | edgeC no stopC ] -> [ moving edgeH | moving edgeC ]\n\n(propagate force from edges to caramel cubes)\nleft [ left edgeV | caramel ] -> [ left edgeV | left caramel ]\ndown [ down edgeH | caramel ] -> [ down edgeH | down caramel ]\n[ right edgeV caramel ] -> [ right edgeV right caramel ]\n[ up edgeH caramel ] -> [ up edgeH up caramel ]\n\n(add stretch)\n[ left edgeC stopV ] -> [ left edgeC stopV stretchLeft ]\n[ down edgeC stopH ] -> [ down edgeC stopH stretchDown ]\n[ right edgeC stopV ] -> [ right edgeC stopV stretchRight ]\n[ up edgeC stopH ] -> [ up edgeC stopH stretchUp ]\ndown [ left edgeC | stopV ] -> [ left edgeC stretchLeft | stopV ]\nleft [ down edgeC | stopH ] -> [ down edgeC stretchDown | stopH ]\ndown [ right edgeC | stopV ] -> [ right edgeC stretchRight | stopV ]\nleft [ up edgeC | stopH ] -> [ up edgeC stretchUp | stopH ]\n\n(stretch sound)\n[ stretch ] [ walkMarker ] -> [ stretch ] [ ] sfx2\n[ walkMarker ] -> [ ] sfx0\n\n(collapse edges moving against stopC)\n[ left edgeH stopC ] -> [ stopC ]\n[ down edgeV stopC ] -> [ stopC ]\nright [ right edgeH | stopC ] -> [ | stopC ]\nup [ up edgeV | stopC ] -> [ | stopC ]\n\n(collapse edges moving against walls)\nhorizontal [ > edgeH | wallH ] -> [ | wallH ]\nvertical [ > edgeV | wallV ] -> [ | wallV ]\n\n(collapse edges moving against stationary edges)\n[ > edgeH | stationary edgeH ] -> [ | stationary edgeH ]\n[ > edgeV | stationary edgeV ] -> [ | stationary edgeV ]\n\n\n(remove markers)\n[ stopCaramel ] -> [ ]\n[ stopEdge ] -> [ ]\n\n\n\n(connect walls)\nleft [ wall no wallV | wall ] -> [ wall wallV | wall ]\ndown [ wall no wallH | wall ] -> [ wall wallH | wall ]\ndown [ wallV no wallC | wallV ] -> [ wallV wallC | wallV ]\n\n(caramel on target?)\nlate [ caramel1 target ] -> [ caramel2 target ] sfx1\nlate [ caramel2 no target ] -> [ caramel1 ]\n\n(stretch edges)\nlate left [ stretchLeft | ] -> [ | edgeH ]\nlate down [ stretchDown | ] -> [ | edgeV ]\nlate [ stretchRight ] -> [ edgeH ]\nlate [ stretchUp ] -> [ edgeV ]\n\n(add edges around caramel cubes)\nlate [ caramel no edgeH ] -> [ caramel edgeH ]\nlate [ caramel no edgeV ] -> [ caramel edgeV ]\nlate up [ caramel | no edgeH ] -> [ caramel | edgeH ]\nlate right [ caramel | no edgeV ] -> [ caramel | edgeV ]\n\n(re-assign edgeC)\nlate [ edgeC ] -> [ ]\nlate [ edgeV no edgeC ] -> [ edgeV edgeC ]\nlate [ edgeH no edgeC ] -> [ edgeH edgeC ]\nlate up [ edgeV | no edge ] -> [ edgeV | edgeC ]\nlate right [ edgeH | no edge ] -> [ edgeH | edgeC ]\n\n\n==============\nWINCONDITIONS\n==============\n\nall target on caramel\n\n======= \nLEVELS\n=======\n\nMessage Sokoban + Caramel Cubes = Caramelban\n\n#####################\n#.......#####.......#\n#.......#####...#...#\n#....*...*.##.....t.#\n#.......##.##.....t.#\n#.......##..........#\n#...#...#####...p...#\n#.......#####.......#\n#####################\n\n\nMessage You win!\n\n\n\n", [1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 2, 1, 3, 3, 2, 1, 0, 1, 2, 2, 2, 0, 0, 0, 1, 1, 1, 2, 2, 3, 3, 0, 1, 2, 2, 2, 3, 3, 0, 0, 0, 0, 2, 1, 0, 0, 3, 3, 0, 3, 2, 1, 2, 3, 3, 3, 1, 1, 2, 1, 2, 2, 3, 3, 0, 0, 0, 3, 3, 3, 1, 1, 1, 0, 0, 0, 3, 2, 2, 0, 2, 2, 2, 1, 2, 2, 3, 0, 1, 0, 0, 3, 0, 3, 3, "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", 0, 1, 0, 0, 3, 3, 2, 1, 1, 1, 1, 3, 3, 3, 3, 2, 2, 2, 1, 0, 0, 1, 0, 3, 3, 1, 1, 1, 1, 1, 0, 0, 0, 3, 2, 3, "undo", 0, 3, 3, 2, 1, 3, 3, 3, 1, 2, 2, 3, 1, 2, 3, 1, 1, 1, 2, 0, 3, 3, 3, 3, 2, 2, 1, 0, 0, 0, 1, 0, 3, 3, 3, 3, 1, 1, 2, 1, 1, 1, 0, 3, 1, 1, 3, 3, 3, 1, 1, 0, 0, 3, 2, 0, 3, 2, 3, 3, 2, 3, 3, 3, 2, 0, 0, 1, 1, 0, 1, 0, 1, 1, 2, 2, 2, 3, 3, 0, 0, 1, 0, 1, 1, 3, 3, 3, 2, 3, 3, 3, 2, 0, 1, 1, 3, 3, 2], "background wall wallh:0,0,0,0,0,0,0,0,background wall:1,background wall wallv:2,background:3,3,3,3,3,3,3,2,2,3,3,\n3,3,3,3,3,2,2,3,3,3,3,3,3,3,2,2,3,3,3,3,3,\n1,3,2,2,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,2,\n2,background edgec edgeh:4,background caramel1 edgec edgeh edgev:5,3,3,3,3,3,2,background wall wallh wallv:6,background edgec wall wallh:7,background edgec edgev wall:8,background edgec edgeh edgev:9,0,0,0,0,2,background wall wallc wallh wallv:10,10,2,\n4,10,10,10,10,2,10,10,2,4,background edgec edgeh playerr:11,5,10,10,2,10,10,6,7,8,background edgec edgev:12,\n10,10,2,10,10,10,10,2,3,10,10,2,2,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,2,2,3,1,\n3,3,3,3,3,2,2,3,3,3,3,3,3,3,2,2,3,3,background target:13,13,3,\n3,3,2,2,3,3,3,3,3,3,3,2,6,0,0,0,0,0,0,0,2,\n", 1, "1645572641748.1404"] + ], + [ + "Paralelism", + ["title Paralelism\nauthor Stingby12 {Remix of Octat by Increpare}\nhomepage https://www.puzzlescript.net/play.html?p=7e1e5c5b3cd9de65085e46bfb0a8d002\n\nbackground_color #233F5C\ntext_color #C294FA\n\nnoundo\nrequire_player_movement\n\n(A port of a flash game I made. The original's here:\n\nhttp://ded.increpare.com/~locus/octat/\n\n)\n\n========\nOBJECTS\n========\n\nBackground\n#3F72A6\n.....\n.000.\n.000.\n.000.\n.....\n\nactivetile\n#60ADFA\n00000\n0...0\n0...0\n0...0\n00000\n\nTarget\n#634B80\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nHorPlayer\n#C294FA\n..0..\n.000.\n.000.\n.000.\n..0..\n\nOrtPlayer\n#C294FA\n.....\n.000.\n.000.\n.000.\n.....\n\nVerPlayer\n#C294FA\n.....\n.000.\n00000\n.000.\n.....\n\nvoid 0\n#233F5C\n\ntemp\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\nP = ortplayer and activetile\na = activetile\nx = Target\ny = target and activetile\nplayer = HorPlayer or VerPlayer or OrtPlayer\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nvoid\nactivetile\nplayer\ntemp\nTarget\n\n======\nRULES\n======\n\n[ > player | no activetile ] -> cancel\n\nhorizontal [> verplayer | ] -> [ | ortplayer ]\nhorizontal [> ortplayer | ] -> [ | horplayer ]\nhorizontal [> horplayer | ] -> [ | horplayer ]\n\nvertical [> horplayer | ] -> [ | ortplayer ]\nvertical [> ortplayer | ] -> [ | verplayer ]\nvertical [> verplayer | ] -> [ | verplayer ]\n\n[ activetile | ortplayer ] -> [ temp | ortplayer ]\n[ no temp | ortplayer ] -> [ activetile | ortplayer ]\n\nvertical [ activetile | horplayer ] -> [ temp | horplayer ]\nvertical [ no temp | horplayer] -> [ activetile | horplayer ]\n\nhorizontal [ activetile | verplayer ] -> [ temp | verplayer ]\nhorizontal [ no temp | verplayer] -> [ activetile | verplayer ]\n\n[ temp ] -> []\n\nlate [activetile void ] -> [ void ]\n\n==============\nWINCONDITIONS\n==============\n\nsome player on target\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 10\n\n..........\n..........\n..........\n..........\n..........\n.x...ap...\n..........\n..........\n..........\n..........\n\nmessage Level 2 of 10\n\n...........\n...........\n...........\n...........\n...........\n....xpa....\n...........\n...........\n...........\n...........\n\n\nmessage Level 3 of 10\n\n...........\n...........\n...........\n...........\naaaaaaa..aa\n..y....ap..\naaaaaaa..aa\n...........\n...........\n...........\n\nmessage Level 4 of 10\n\n...........\n...........\n...a.......\n..aaa......\n.aaaaa.....\naaayaaa.ap.\n.aaaaa.....\n..aaa......\n...a.......\n...........\n\nmessage Level 5 of 10\n\n.a.a.a.a.\n000000000\n..aaa....\n.xaaa.ap.\n..aaa....\n000000000\n.a.a.a.a.\n\nmessage Level 6 of 10\n\n.a.a.a.a.a.\n00000000000\n.a.a.a.a.a.\naxa.a.a.apa\n.a.a.a.a.a.\n00000000000\n.a.a.a.a.a.\n\nmessage Level 7 of 10\n\n0aaaa..00\n0aaaa...0\ny..aa..ap\n0aaaa...0\n0aaaa..00\n\nmessage Level 8 of 10\n\n....0000...\n.......0...\n..00.0.0...\n.a...ap.ax.\n..00.0.0...\n.......0...\n....0000...\n\nmessage Level 9 of 10\n\naaayaaa\na0a0a0a\n.......\n0a0a0a0\n.......\na0a0a0a\naaapaaa\n\nmessage Level 10 of 10\n\n..aa..aa0aaa.aaa0aaa.\n.a0a.a0...a..a0a0.a..\n.p0a.a...0a00aaa..a..\n.a0a.a0..0a00a0a.0a0.\n.aa...aa00a00a0a.0y0.\n\nmessage My white square brother will be proud of what I did !\n\n(\nmessage level 1 of 8\n\n..........\n..........\n..........\n..........\n..........\n.x...ap...\n..........\n..........\n..........\n..........\n\nmessage level 2 of 8\n\n...........\n...........\n...........\n...........\n...........\n....xpa....\n...........\n...........\n...........\n...........\n\n\nmessage level 3 of 8\n\n\n...........\n...........\n...........\n...........\n..a........\n.axaaap....\n..a........\n...........\n...........\n...........\n\nmessage level 4 of 8\n\n\n...........\n...........\n...a.......\n..a.a......\n.a.a.a.....\na.aya.a.ap.\n.a.a.a.....\n..a.a......\n...a.......\n...........\n\nmessage level 5 of 8\n\n\n...........\n...........\n...........\n...........\naaaaaaaaaaa\n...y..ap...\naaaaaaaaaaa\n...........\n...........\n...........\n\nmessage level 6 of 8\n\n\n000000....0\n000000..0.0\n000000..0..\n000000000..\n....A...0.0\n.AY.A...AAP\n....A...0.0\n000000000..\n000000..0..\n000000..0.0\n000000....0\n\nmessage level 7 of 8\n\n\n..AAA...000\n.AY.A...AP.\n..AAA...000\n\nmessage level 8 of 8\n\n\n0AAAA..00\n0AAAA..00\nYAAAA..AP\n0AAAA..00\n0AAAA..00\n\nmessage the end\n)\n\n", [3, 1, 0, 3, 2, 1, 2, 1, 1, 0, 0, 3, 1, 1, 1, 0, 1, 2, 3, 2, 1, 2, 2, 0, 3, 0, 1, 0, 3, 0, 3, 2, 1, 2, 1, 2, 0, 3, 0, 3, 0, 3, 2, 3, 0, 3, 1, 2, 3, 1, 0, 2, 1, 2], "background:0,activetile background ortplayer:1,0,0,0,0,0,activetile background:2,0,0,0,\n0,0,0,2,2,background void:3,2,3,0,0,0,\n0,3,2,3,0,0,3,0,0,0,2,\n0,3,3,0,3,0,3,2,3,3,0,\n2,0,2,0,3,3,3,3,0,3,3,\n3,0,0,0,2,0,0,0,0,0,0,\nbackground target:4,0,0,0,0,0,0,0,0,0,0,\n", 15, "1645572899761.3071"] + ], + [ + "Psyshic push", + ["title Psyshic push\nauthor Stingby12\nhomepage https://stingby12.itch.io/\n\ntext_color #DB524D\nbackground_color #6C478F\n\nrun_rules_on_level_start\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\n#6C478F\n\nWall\n#A163DB\n\nStopper\n#A163DB\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nPlayer\n#7BDB58\n.000.\n.000.\n00.00\n.000.\n.0.0.\n\nMovecheckL\n#5EA843\n.....\n.....\n.000.\n.....\n.....\n\nMovecheckR\n#5EA843\n.....\n.....\n.000.\n.....\n.....\n\nMovecheckU\n#5EA843\n.....\n..0..\n..0..\n..0..\n.....\n\nMovecheckD\n#5EA843\n.....\n..0..\n..0..\n..0..\n.....\n\nMovestop\n#7BDB58\n.....\n...0.\n.000.\n.0...\n.....\n\nTarget\n#8F2E2B\n.....\n.0.0.\n.000.\n.0.0.\n.....\n\nCrate\n#DB524D\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n+ = Player and Target\n* = Crate\n@ = Crate and Target\nO = Target\n% = Player and Stopper\nx = Stopper\n- = Player and Movestop\n8 = Crate and Movestop\ns = Movestop\n\nMovecheck = MovecheckL or MovecheckR or MovecheckU or MovecheckD\nBlocking = Crate or Wall or Stopper\nSightBlocking = Crate or Wall or Movestop\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx0 80929902 (Blocked)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget, Stopper, Movestop\nPlayer, Wall, Crate\nMovecheckL\nMovecheckR\nMovecheckU\nMovecheckD\n\n======\nRULES\n======\n\n(I tried to place a [...] in the basic push and ended up with something cool. I tried to ajust the code and ended up with something like this.)\n\nlate left [Player | no Movecheck no SightBlocking] -> [Player | MovecheckL]\nlate right [Player | no Movecheck no SightBlocking] -> [Player | MovecheckR]\nlate up [Player | no Movecheck no SightBlocking] -> [Player | MovecheckU]\nlate down [Player | no Movecheck no SightBlocking] -> [Player | MovecheckD]\n\nlate left [MovecheckL | no Movecheck no SightBlocking] -> [MovecheckL | MovecheckL]\nlate right [MovecheckR | no Movecheck no SightBlocking] -> [MovecheckR | MovecheckR]\nlate up [MovecheckU | no Movecheck no SightBlocking] -> [MovecheckU | MovecheckU]\nlate down [MovecheckD | no Movecheck no SightBlocking] -> [MovecheckD | MovecheckD]\n\n(This code generate 4 lines of Movechecks (one of each direction). These are blocked by a group called \"SightBlocking\")\n\n[> Player | ... | Movecheck | Crate] -> [Player | ... | Movecheck | > Crate]\n[> Player | Crate] -> [> Player | > Crate]\n[> Crate | Blocking] -> [Crate | Blocking] sfx0\n\n[Movecheck] -> []\n\n(Bottom code is the easiest to understand. Keep in mind that rule 149 and rule 150 are completly different.)\n(Rule 155 is just for clearing)\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nSome Target (ignore this rule)\n\n=======\nLEVELS\n=======\n\nmessage Cover all targets with crates.\n\nmessage Level 1 of 16\n\n(Surprise level that shows the main mechanic)\n#######\n#..*.o#\n#..*.o#\n#p.*.o#\n#..*.o#\n#..*.o#\n#######\n\nmessage Level 2 of 16\n\n(If you are directly next to the crate you can push and move at the same time.)\n#####\n#...#\n#...#\n#...#\n##*##\n#...#\n#.+.#\n#####\n\nmessage Level 3 of 16\n\n#######\n#.....#\n#o@@*p#\n#.....#\n#..####\n####...\n\nmessage Level 4 of 16\n\n.#######\n.#.....#\n.#.o*o.#\n##.*p*.#\n#..o*o.#\n#......#\n########\n\nmessage Level 5 of 16\n\n(Like this level design.)\n#########.\n#@......##\n#*......*#\n#@....*.@#\n#*......*#\n##....+.@#\n.#########\n\nmessage Level 6 of 16\n\n.######.\n##....##\n#@.*..*#\n#*..*.@#\n#@.*..*#\n#*.oo+@#\n########\n\nmessage Level 7 of 16\n\n..#####\n###@*@#\n#*....#\n#@.**.#\n#*....#\n#@....#\n##.o+.#\n.######\n\nmessage Level 8 of 16\n\n..#####..\n.##@*@##.\n##.....##\n#@.o*o.@#\n#*.*.*.*#\n#@.o*o.@#\n#*.....*#\n##..p..##\n.##*@*##.\n..#####..\n\nmessage Level 9 of 16\n\n....####\n.####..#\n.#.....#\n##.*xo.#\n#..*xo.#\n#..*xo.#\n#...#p.#\n########\n\nmessage Level 10 of 16\n\n(This is the old first level that uses the Blockers. I wanted an easier level for that.)\n####...\n#xx###.\n#o.*.##\n#ox*..#\n#ox*p.#\n#ox*..#\n#o.*.##\n#xx###.\n####...\n\nmessage Level 11 of 16\n\n#######\n#xxxxx#\n#xo*ox#\n#x*o*x#\n#x*o*x#\n#xo*ox#\n#xx%xx#\n#######\n\nmessage Level 12 of 16\n\n(I couldn't find anything simpler without chessing.)\n######...\n#*..o#...\n##.#.###.\n.#px8x.#.\n.###.#.#.\n...#.#.##\n...#...*#\n...######\n\nmessage Level 13 of 16\n\n####..\n#.o#..\n#..###\n#8...#\n#op*.#\n#..###\n####..\n\nmessage Level 14 of 16\n\n######\n#....#\n#....#\n#*88*#\n#....#\n#o+oo#\n######\n\nmessage Level 15 of 16\n\n#########..\n#oo*..*.###\n#+o8..8...#\n#oo*..8...#\n####..#####\n...####....\n\nmessage Level 16 of 16\n\n(Probably the last level I'll make.)\n.......###..\n########@##.\n#@......p.##\n#*..*..*..@#\n#@.s.oo.s.*#\n#*.s.oo.s.@#\n#@..*..*..*#\n#*........##\n########*##.\n.......###..\n\nmessage Great work, you pushed like it was nothing !\n\n", [2, 2, 2, 2, 3, 0, 0, 0, 1, 1, 0, 0, 3, 3, 1, 2, "undo", "undo", 2, 0, 3, 3, 2, 2, 1, 1, 3, 1, 2, 2, 2, 3, 1, 2, 3, 1, 1, 0, 0, 1, 3, 2, 0, 0, 3, 3, 1, 1, 2, 2, 2, 1, 1, 3, 3, 1, 1, 1, 1, 1, 0, 0, 3, 1, 2, 1, 0, 3], "background:0,background wall:1,1,1,1,1,1,1,1,0,0,1,\nbackground crate target:2,background crate:3,2,3,2,3,1,0,0,1,0,background movecheckl:4,\n3,0,3,0,1,0,0,1,background movechecku:5,background player:6,background movestop:7,7,\n0,0,1,0,0,1,0,background movecheckr:8,0,0,0,0,\n1,0,0,1,0,8,background target:9,9,0,0,1,0,\n0,1,0,3,9,9,0,0,1,0,1,1,\n0,0,0,0,0,3,1,1,1,2,0,0,\n7,7,0,0,3,1,1,1,0,0,0,0,\n0,0,1,1,0,1,1,2,3,2,3,1,\n1,0,0,0,1,1,1,1,1,1,0,0,\n", 32, "1645573610754.0828"] + ], + [ + "I wanna change my position", + ["title I wanna change my position\nauthor competor\nhomepage competor.itch.io\nbackground_color #2A0E3A\ntext_color #fe6c90\nrequire_player_movement\nrun_rules_on_level_start\nrealtime_interval 0.1\nagain_interval 0.08\n\n========\nOBJECTS\n========\n\nBackground\n#2A0E3A #2A073A #260E35 #2F0E3A\n01021\n21310\n10101\n01213\n23010\n\nTarget\n#F5F5F5\n.....\n.....\n..0..\n.....\n.....\n\nWall\n#F5F5F5 #FEAFC2 #fe6c90 #CD577B #87286a #6B1F54\n01112\n12223\n12223\n12223\n34445\n\n\nPlayer\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459 \n.121.\n.020.\n41214\n54445\n.5.5.\n\nanim_p1\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459 #2A0E3A\n66216\n60266\n41614\n64465\n65656\n\nanim_p2\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459 #2A0E3A\n66616\n60266\n61.64\n66466\n65656\n\nanim_p3\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459 #2A0E3A\n66.66\n6.2.6\n.1...\n6.4.6\n66.56\n\nanim_p4 \n#87286a #2A0E3A\n11..1\n....1\n.....\n10001\n11.11\n\nanim_p5 \n#87286a #2A0E3A\n1...1\n..0..\n.0.0.\n.000.\n1...1\n\nCrate\n#87286a\n.....\n.000.\n.0.0.\n.000.\n.....\n\nanim_c1\n#87286a\n.....\n..0..\n.0.0.\n.000.\n.....\n\nanim_c2\n#87286a\n.....\n.....\n.0.0.\n.000.\n.....\n\nanim_c3\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459\n.....\n..2..\n..2..\n.444.\n.....\n\nanim_c4\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459\n.....\n..2..\n.12.4\n.444.\n.5.5.\n\nanim_c5\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459\n..2..\n.020.\n41.14\n.44.5\n.5.5.\n\nantiCrate\n#fe6c90 #d03791\n..1..\n.101.\n10.01\n.101.\n..1..\n\nmemory\ntransparent\n.....\n..0..\n.0.0.\n..0..\n.....\n\nanim0\n#2a0e3a\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim1\n#351149\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim2\n#401559\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim3\n#571d86\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim4\n#571d86\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim5\n#401559\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim6\n#351149\n.000.\n0...0\n0...0\n0...0\n.000.\n\nme\ntransparent\n.....\n.....\n..0..\n.....\n.....\n\nfloor\n#B08CC5 #B080B5 #B07CC5 #A575A5\n01021\n21310\n10101\n01213\n23010\n\n\n\ntargetWithCrates\ntransparent\ntargetWithoutCrates\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\n: = antiCrate\n; = antiCrate and Target\nO = Target\na = floor\nb = Player and floor\nc = Crate and floor\nd = Crate and Target and floor\ne = antiCrate and floor\nf = antiCrate and Target and floor\ng = Target and floor\nh = Crate and memory\n\n\n\ncrates = Crate or antiCrate\nobstacle = Wall or crates\nanims = anim0 or anim1 or anim2 or anim3 or anim4 or anim5 or anim6\nanimswap = anim_p1 or anim_p2 or anim_p3 or anim_p4 or anim_p5 or anim_c1 or anim_c2 or anim_c3 or anim_c4 or anim_c5\n=======\nSOUNDS\n=======\nrestart 53933706\nCrate move 36681907\nantiCrate move 36681907\n(Plates MOVE 209907)\nendlevel 7121610\nPlayer cantmove 53676504\ncancel 53676504\n\nsfx0 8992509 (falling)\nsfx1 87861307 (up)\nsfx2 65232307 (down)\nsfx3 93691109 (save)\nsfx4 24089507 (on crate)\nsfx5 14894304 \nsfx6 36681907 (on snow)\nsfx7 76479500 (show hint)\nsfx8 55581906 (hide hint)\nsfx9 98183507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n\nfloor\n\nanims\n\nTarget\nPlayer, Wall, Crate,antiCrate\nanimswap\n\nmemory\nme\ntargetWithCrates,targetWithoutCrates\n\n======\nRULES\n======\n\n(sound init)\n[targetWithCrates] -> []\n[targetWithoutCrates]->[]\n[Target no crates] -> [Target targetWithoutCrates]\n[Target crates] -> [Target targetWithCrates crates]\n\n(push)\n[ > Player | Crate ] -> [ > Player | > Crate > me ]\n[ > Player | antiCrate ] -> [ > Player | > antiCrate ]\n[moving Crates][stationary Crate memory] -> [moving Crates][stationary Crate]\n\n(swap)\n[anim_p5][ anim_c5 ] -> [Crate][ Player ] \n[anim_p4][ anim_c4 ] -> [anim_p5][ anim_c5 ] again\n[anim_p3][ anim_c3 ] -> [anim_p4][ anim_c4 ] again\n[anim_p2][ anim_c2 ] -> [anim_p3][ anim_c3 ] again\n[anim_p1][ anim_c1 ] -> [anim_p2][ anim_c2 ] again\n[action Player no floor ][stationary Crate memory] -> [floor anim_p1][ anim_c1 ] sfx3 again\n[action Player floor ][stationary Crate memory] -> cancel \n\n\n(memory push)\n\n[ > crates memory ] -> [> crates]\n\n\n(sound)\nlate [Target targetWithCrates no crates] -> [Target] sfx8\nlate [Target targetWithoutCrates crates] -> [Target crates] sfx7\n\n(memory)\nlate [ me no crates ] -> []\nlate [ me ] -> [ memory ]\n\n\n(anim)\n[stationary Player][stationary anim6] -> [Player][action anim0]\n[stationary Player][stationary anim5] -> [Player][action anim6]\n[stationary Player][stationary anim4] -> [Player][action anim5]\n[stationary Player][stationary anim3] -> [Player][action anim4]\n[stationary Player][stationary anim2] -> [Player][action anim3]\n[stationary Player][stationary anim1] -> [Player][action anim2]\n[stationary Player][stationary anim0] -> [Player][action anim1]\n[memory no anims] -> [memory anim0]\nlate [anims no memory] -> []\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on crates\n\n=======\nLEVELS\n=======\nmessage Press X to swap.\n\naaa#####\naaa#...#\naaa#.o.#\n###.*..#\n#..p.###\n#.*.#aaa\n#o..#aaa\n#####aaa\n\nmessage You and the last crate you pushed are swapped.\n\naaaaaaaa\na######a\na#.po.#a\na#*##o#a\na#o##*#a\na#..*.#a\na######a\naaaaaaaa\n\nmessage You can swap only if the color of your standing tile is purple.\n\n.##..##.\n########\n##ga.g##\n.##cc##.\n.##ba##.\n##a.aa##\n########\n.##..##.\n\nmessage When you swapped, the color of your tile disappears.\n\naaaaaaaa\na######a\na#.pg.#a\na#*##g#a\na#g##*#a\na#..*.#a\na######a\naaaaaaaa\n\n\n..###...\n..#p##..\n.##*.##.\na#g.*g#a\na#g**g#a\na##aa##a\naa####aa\naaaaaaaa\n\n\n########\n#.*gg*.#\n#p####.#\n#.a#ga.#\n##cg#a##\n#..aa..#\n#.ca#a.#\n########\n\n\n.#####..\n.#g#g#..\n.#gpg#..\n.#*#*#..\n.#.#.#..\n.#*.*#..\n.#.#.#..\n.#####..\n\n\n######..\n#agcg###\n#accc.a#\n#agcg###\n##.#.#..\n.#g#b#..\n.#####..\n........\n\n\n########\n#aa#gcg#\n#c#aa#a#\n#aaca#c#\n##g#ba.#\n#a.a#.a#\n#aacgag#\n########\n\n\n########\n#..cg.p#\n#a####.#\n#c#..#c#\n#g#..#g#\n#.####*#\n#..aag.#\n########\n\n\nmessage Congrats!\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", 0, "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", 4, "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", 3, "tick", 2, "tick", "tick", 4, "tick", 1, "tick", 0, "tick", "tick", 0, "tick", 3, "tick", "tick", 3, "tick", "tick", 2, "tick", "tick", "tick", 1, "tick", "tick", "tick", 2, "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", "tick", 4, "tick", 3, "tick", 3, "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", 4, "tick", "tick", "tick", 1, "tick", "tick", 1, "tick", 1, "tick", "tick", "tick", 0, "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background wall:0,0,0,0,0,background:1,1,1,\n0,background floor:2,2,2,0,0,0,1,\n0,background floor player target targetwithoutcrates:3,anim2 background crate floor memory:4,background floor target targetwithoutcrates:5,background crate floor:6,5,0,1,\n0,2,2,6,0,0,0,1,\n0,background crate floor target targetwithcrates:7,2,5,6,2,0,1,\n0,0,2,0,0,0,0,1,\n1,0,2,0,1,1,1,1,\n1,0,0,0,1,1,1,1,\n", 11, "1645574132967.735"] + ], + [ + "Isle of Bloks", + ["title Isle of Bloks\n\ncolor_palette gameboycolour\n\nbackground_color #242b26\nkey_repeat_interval 0.12\nrealtime_interval 0.1\n========\nOBJECTS\n========\n(colors:\n#CADC9F - white\n#0f380f - dark\n#306230 - green\n#8bac0f - light green 1\n#9bbc0f - light green 2\n\ncustom \n#242b26 - black\n#3e4a40 - darkgray\n#4c5a4e\t- light darkgray\n#88a68d - gray\n#709277 - gray but slightly darker\n#ddebdf - white\n)\n\n\nbackground\n#3e4a40 #374239\n00000\n11000\n00000\n00011\n00000\n\nbground1\n#3e4a40 #374239\n00000\n11000\n00000\n00011\n00000\n\nbground2\n#3e4a40 #374239\n00000\n11000\n00000\n00011\n00000\n\nbground3\n#3e4a40 #374239\n11000\n00000\n00011\n00000\n00000\n\nbground4\n#3e4a40 #374239\n11000\n00000\n00011\n00000\n00000\n\nbground5\n#3e4a40 #374239\n00000\n00011\n00000\n00000\n11000\n\nbground6\n#3e4a40 #374239\n00000\n00011\n00000\n00000\n11000\n\nbground7\n#3e4a40 #374239\n00011\n00000\n00000\n11000\n00000\n\nbground8\n#3e4a40 #374239\n00011\n00000\n00000\n11000\n00000\n\nbground9\n#3e4a40 #374239\n00000\n00000\n11000\n00000\n00011\n\nbground10\n#3e4a40 #374239\n00000\n00000\n11000\n00000\n00011\n\nbground10anim\ntransparent\n\n(player animations)\n\nplayerStandR\n#ddebdf #242b26 #88a68d #709277\n00000\n00101\n22222\n33333\n.1.1.\n\nplayer1R\n#ddebdf #242b26 #88a68d #709277\n00000\n00101\n22222\n33333\n.1.1.\n\nanim1R\n#ddebdf #242b26 #88a68d\n00000\n00101\n22222\n22222\n.1.1.\n\nplayer2R\n#ddebdf #242b26 #88a68d #709277\n00000\n00101\n22222\n33333\n1...1\n\nanim2R\n#ddebdf #242b26 #88a68d\n00000\n00101\n22222\n22222\n1...1\n\nplayer1L\n#ddebdf #242b26 #88a68d #709277\n00000\n10100\n22222\n33333\n.1.1.\n\nanim1L\ntransparent\n\nplayer2L\n#ddebdf #242b26 #88a68d #709277 #FFFFFF\n00000\n10100\n22222\n33333\n1...1\n\nplayerswap1R\n#ddebdf #242b26 #88a68d #709277\n00000\n00000\n22222\n33333\n.1.1.\n\nplayerswap2R\n#ddebdf #242b26 #88a68d #709277 #FFFFFF\n44444\n00000\n00000\n22222\n33333\n\nanim2L\ntransparent\n\nplayerinactive\n#ddebdf #242b26 #88a68d #709277 #FFFFFF\n44444\n00000\n00000\n22222\n33333\n\n(player tops)\nplayerBoxTopInactive\n#88a68d\n.....\n.....\n.....\n.....\n00000\n\nplayerBoxTop\n#88a68d\n.....\n.....\n.....\n00000\n00000\n\nplayerTop\n#FFFFFF\n.....\n.....\n.....\n00000\n00000\n\nplayerTopInactive\n#FFFFFF\n.....\n.....\n.....\n.....\n00000\n\n(swap animations)\n\nplayerBoxInactive\n#ddebdf #242b26 #88a68d #709277\n22222\n33333\n33333\n33333\n33333\n\nplayerBoxSwapAnim1R\n#ddebdf #242b26 #88a68d #709277\n33333\n33333\n33333\n33333\n.1.1.\n\n(playerbox animations)\nplayerBox1R\n#ddebdf #242b26 #88a68d #709277\n33333\n33131\n33333\n33333\n.1.1.\n\nanimBox1R\ntransparent\n\nplayerBox2R\n#ddebdf #242b26 #88a68d #709277\n33333\n33131\n33333\n33333\n1...1\n\nanimBox2R\ntransparent\n\nplayerBox1L\n#ddebdf #242b26 #88a68d #709277\n33333\n13133\n33333\n33333\n.1.1.\n\nanimBox1L\ntransparent\n\nplayerBox2L\n#ddebdf #242b26 #88a68d #709277 #FFFFFF\n33333\n13133\n33333\n33333\n1...1\n\nanimBox2L\ntransparent\n()\n\n(------------------------------------------level elements)\nwall\ntransparent\n\nbox\n#242b26 #88a68d #709277 #3e4a40\n11111\n22222\n22222\n22222\n33333\n\nboxtop\n#242b26 #88a68d #709277\n.....\n.....\n.....\n11111\n11111\n\nbutton\n#242b26 #88a68d\n00000\n01110\n01010\n01110\n00000\n\npressedbutton\n#242b26 #88a68d\n00000\n01110\n01010\n01110\n00000\n\n(---------------------------------------island generation)\nland\n#CADC9F\n\ncornerLandTR\n#CADC9F #242b26\n00000\n00000\n00000\n00000\n10000\n\ncornerLandTL\n#CADC9F #242b26\n00000\n00000\n00000\n00000\n00001\n\ncornerLandDL\n#CADC9F #242b26\n0000.\n00000\n00000\n00000\n00000\n\ncornerLandDR\n#CADC9F #242b26\n.0000\n00000\n00000\n00000\n00000\n\ncliff\n#242b26 #242b26\n00000\n11111\n00000\n00000\n11111\n\ncornerCliffTR\n#242b26 #242b26\n10000\n01111\n00000\n10000\n.1111\n\ncornerCliffTL\n#242b26 #242b26\n00000\n11111\n00000\n00001\n1111.\n\n(----------------------------------transition objects)\nblackscreen1\n#242b26\n\nblackscreen2\n#242b26\n.000.\n00000\n00000\n00000\n.000.\n\nblackscreen3\n#242b26\n..0..\n.000.\n00000\n.000.\n..0..\n\nblackscreen4\n#242b26\n.....\n..0..\n.000.\n..0..\n.....\n\nblackscreen5\n#242b26\n.....\n.....\n..0..\n.....\n.....\n\noutscreen1\n#242b26\n0....\n0....\n0....\n0....\n0....\n\noutscreen2\n#242b26\n00...\n00...\n00...\n00...\n00...\n\noutscreen3\n#252b26\n000..\n000..\n000..\n000..\n000..\n\noutscreen4\n#252b26\n0000.\n0000.\n0000.\n0000.\n0000.\n\noutscreen5\n#252b26\n\n(--------------------------------------------decor)\ntreebase0\n#242b26 #88a68d #709277\n.....\n....1\n...10\n...0.\n.....\n\ntreebase1\n#242b26 #88a68d #709277\n.1122\n11122\n00022\n...00\n.....\n\ntreebase2\n#242b26 #88a68d #709277\n2....\n22...\n002..\n..0..\n.....\n\ntreestem1\n#88a68d #709277\n01.00\n.0001\n.0001\n.0011\n.0011\n\ntreecanopyMB\n#88a68d #709277 #242b26 #323b34\n33333\n33333\n33332\n22222\n122.0\n\ntreecanopyLB\n#88a68d #709277 #242b26 #323b34\n33333\n33333\n23333\n.2222\n..220\n\ntreecanopyLLB\n#88a68d #709277 #242b26 #323b34\n....3\n....2\n.....\n.....\n.....\n\ntreecanopyMM\n#88a68d #709277 #242b26 #323b34\n33333\n33333\n33333\n33333\n33333\n\ntreecanopyMT\n#323b34\n.....\n.....\n.....\n.000.\n00000\n\ntreecanopyLM\n#323b34\n...00\n..000\n.0000\n00000\n00000\n\ntreecanopyRM\n#323b34\n00...\n000..\n0000.\n00000\n00000\n\ntreecanopyRB\n#88a68d #709277 #242b26 #323b34\n33333\n33333\n23332\n2222.\n.22..\n\nbush\n#88a68d #709277 #242b26 #323b34\n00011\n00011\n00111\n21122\n.222.\n\nbushtop\n#88a68d #709277 #242b26 #323b34\n.....\n.....\n.001.\n00011\n00011\n\n(-----------------------------------------------------variables)\n(tracks buttons)\nbuttonState\ntransparent\n\nbuttonStateOff\ntransparent\n\n(------------------------------------------------------water?? tiles)\nshallowWater\n#a6c45d\n\nshallowWaterLRD\n#a6c45d\n.....\n.....\n00000\n00000\n00000\n\nshallowWaterBottom\n#a6c45d #323b34\n00000\n00000\n11111\n11111\n11111\n\nshallowWaterUp\n#a6c45d \n\nshallowWaterFull\n#a6c45d\n\n(---------------------------------------------------------smoke)\nsmoke1L\n#ddebdf\n.....\n.....\n..00.\n.00..\n..000\n\nsmoke2L\n#ddebdf\n.....\n.....\n.....\n.....\n000..\n\nsmoke1R\n#ddebdf\n.....\n.....\n00...\n.00..\n00...\n\nsmoke2R\n#ddebdf\n.....\n.....\n.....\n.....\n..000\n\nrestart1\n#CADC9F\n.000.\n.0.0.\n.0.0.\n.000.\n.....\n\nrestart2\n#CADC9F\n.000.\n.0...\n.00..\n.0...\n.....\n\nrestart3\n#ddebdf\n0.000\n..0..\n..000\n....0\n0.000\n\nrestart4\n#ddebdf\n.000.\n.0...\n.000.\n...0.\n.000.\n\nrestart5\n#ddebdf\n.00..\n.0.0.\n.00..\n.0.0.\n.0.0.\n\nrestartanim1\ntransparent\n\nrestartanim2\ntransparent\n\nrestartanim3\ntransparent\n\nrestartanim4\ntransparent\n\nrestartanim5\ntransparent\n=======\nLEGEND\n=======\n\nbgroundanim = bground1 or bground2 or bground3 or bground4 or bground5 or bground6 or bground7 or bground8 or bground9 or bground10 or bground10anim\n\nplayerbox = playerBox1R or playerBox2R or animBox1R or animBox2R or animBox1L or animBox2L or playerBox1L or playerBox2L\n\nplayer = player1R or player2R or anim1R or anim2R or player1L or anim1L or player2L or anim2L or playerBox\n\nplayerswapanim = playerswap1R or playerswap2R\nplayerboxswapanim = playerBoxSwapAnim1R\n\nblackscreen = blackscreen1 or blackscreen2 or blackscreen3 or blackscreen4 or blackscreen5\n\noutscreen = outscreen1 or outscreen2 or outscreen3 or outscreen4 or outscreen5\n\ncliffs = cliff or cornerCliffTR or cornerCliffTL\n\nground = land or cornerLandTR or cornerLandTL or cornerLandDL or cornerLandDR\n\ntree = treebase0 or treebase1 or treebase2\ntreedec = treestem1 or treecanopyMB or treecanopyLB or treecanopyLLB or treecanopyMM or treecanopyMT or treecanopyLM or treecanopyRM or treecanopyRB\n\nshallow = shallowWaterLRD or shallowWaterUp or shallowWater or shallowWaterFull\n\nsmoke = smoke1L or smoke2L or smoke1R or smoke2R\n\nrestart = restart1 or restart2 or restart3 or restart4 or restart5 or restartanim1 or restartanim2 or restartanim3 or restartanim4 or restartanim5\n\np = playerStandR and land and blackscreen1\n# = land and blackscreen1\nx = land and box and blackscreen1\no = button and land and blackscreen1\n. = background and blackscreen1\nl = land and treebase1 and blackscreen1\nc = bush and land and blackscreen1\ne = playerBoxInactive and land and blackscreen1\nw = buttonStateOff and blackscreen1\nm = shallowWaterLRD and blackscreen1\n1 = restart1\n2 = restart2\n\n=======\nSOUNDS\n=======\n\nsfx0 21839507\nsfx1 35644707\nsfx2 69260304\nsfx3 38107505\nbox move 20210107\nstartlevel 93909903\nsfx4 42654903\nsfx5 62394902\nrestart 16186705\nundo 44484905\n\n================\nCOLLISIONLAYERS\n================\nbackground\n(island decor layer)\nbgroundanim\nground,cliffs, shallowWaterBottom\nshallow, shallowWaterUp\n(tree layer)\ntree,treedec\n(decor layer)\nbush\n(interactive Layer)\nbutton,pressedbutton,buttonState,buttonStateOff\n(main layer)\nplayer,wall, box, playerStandR, playerBox, playerBoxInactive, playerswapanim,playerboxswapanim,playerinactive\n(\"3d\" layer)\nboxtop,playerBoxTop,playerBoxTopInactive, playerTop, playerTopInactive,bushtop\n(fx layer)\nsmoke, restart\n(fade in/out layer)\nblackscreen,outscreen\n\n\n======\nRULES\n======\n(gives control back to player)\n[playerStandR no blackscreen no outscreen]->[player1R]\n\n(----------------------------------------------transitions)\n(generates opening animation)\n[blackscreen5]->[]\n[blackscreen4]->[blackscreen5]\n[blackscreen3]->[blackscreen4]\n[blackscreen2]->[blackscreen3]\n[blackscreen1]->[blackscreen2]\n\n(background animation)\n[bground9]->[bground10anim]\n[bground8]->[bground9]\n[bground7]->[bground8]\n[bground6]->[bground7]\n[bground5]->[bground6]\n[bground4]->[bground5]\n[bground3]->[bground4]\n[bground2]->[bground3]\n[bground1]->[bground2]\n[bground10]->[bground1]\n[bground10anim]->[bground10]\n[background no bgroundanim]->[background bground1]\n\n(generates closing animation)\n[outscreen4] -> [outscreen5]\n[outscreen3] -> [outscreen4]\n[outscreen2] -> [outscreen3]\n[outscreen1] -> [outscreen2]\n[buttonState][background no outscreen] -> [buttonState][background outscreen1] sfx4\nlate [buttonState][player] -> [buttonState][playerStandR]\n\n(generates smoke animation)\n[smoke2R] -> []\n[smoke1R] -> [smoke2R]\n[smoke2L] -> []\n[smoke1L] -> [smoke2L]\n(----------------------------------------------------level)\n(generates decoration and walls)\nlate[background no ground] -> [background wall]\nlate up[wall no ground no shallowWater | ground ] -> [wall cliff |ground]\nlate up[box | no boxtop] -> [box | boxtop ]\nlate[bush no wall] -> [bush wall]\n(generates detailed cliffs)\nlate right[no ground no cliffs | cliff | cliffs no cornerCliffTR]-> [|cornerCliffTR|cliff]\nlate right[no ground no cliffs | cliff | ground no cornerCliffTR]-> [|cornerCliffTR|ground]\nlate right[ cliff | no ground no cliffs]-> [cornerCliffTL|]\n\ndown[shallowWaterLRD | no shallowWaterBottom no shallow no ground] -> [shallowWaterLRD | shallowWaterBottom]\ndown[shallowWaterLRD | shallowWaterLRD ] -> [shallowWaterLRD | shallowWaterFull]\ndown[shallowWaterFull | shallowWaterLRD ] -> [shallowWaterLRD | shallowWaterFull]\nlate up[shallowWaterFull | no shallow] -> [shallowWaterLRD | ]\n\n(for single-tile cliffs)\nlate horizontal[no cliffs no ground| cliffs | no cliffs no ground] -> [|cliff|]\n\n(generates detailed land)\nlate right[no ground | land | ground]-> [|cornerLandTR|ground]\nlate up [ ground\t| cornerLandTR | ground] -> [ground | land | ground]\nlate right[ ground | land | no ground]-> [ground|cornerLandTL|]\nlate up [ ground\t| cornerLandTL | ground] -> [ground | land | ground]\nlate up [ ground | cornerLandTL | no ground] -> [ground | cornerLandDL | ]\nlate up [ ground | cornerLandTR | no ground] -> [ground | cornerLandDR | ]\n\n(generates tree)\nright[no tree | treebase1 | no tree] -> [treebase0 | treebase1 | treebase2 ]\nup[ treebase1 | no treestem1 ] -> [ treebase1 | treestem1 ]\nup[ treestem1 | no treecanopyMB ] -> [ treestem1 | treecanopyMB ]\nright[ no treecanopyLB | treecanopyMB | no treecanopyRB ] -> [ treecanopyLB|treecanopyMB | treecanopyRB ]\nright[ no treecanopyLLB | treecanopyLB ] -> [ treecanopyLLB|treecanopyLB ]\nup[ treecanopyMB | no treecanopyMM ] -> [ treecanopyMB | treecanopyMM ]\nup[ treecanopyMM | no treecanopyMT ] -> [ treecanopyMM | treecanopyMT ]\nright[treecanopyMM | no treedec ] -> [treecanopyMM|treecanopyRM]\nleft[treecanopyMM | no treedec] -> [treecanopyMM | treecanopyLM]\n\n(generates tree collision)\n[treebase1] -> [treebase1 wall]\n\n(-----------------------------------------------------player)\n(steps left from facing right)\nleft [> player1R] -> [> anim1L]\nleft [> player2R] -> [> anim2L]\nright [> player1L] -> [> anim1R]\nright [> player2L] -> [> anim2R]\n\n(step animation)\nright up down[> player1R] -> [> anim1R]\nright up down[> player2R] -> [> anim2R]\n[> anim1R] -> [> player2R]sfx0\n[> anim2R] -> [> player1R]sfx1\n\nleft up down[> player1L] -> [> anim1L]\nleft up down[> player2L] -> [> anim2L]\n[> anim1L] -> [> player2L]sfx0\n[> anim2L] -> [> player1L]sfx1\n\n(---------------playerbox animations)\n\n(steps left from facing right)\nleft [> playerbox1R] -> [> animbox1L]\nleft [> playerbox2R] -> [> animbox2L]\nright [> playerbox1L] -> [> animbox1R]\nright [> playerbox2L] -> [> animbox2R]\n\n(step animation)\nright up down[> playerbox1R] -> [> animbox1R]\nright up down[> playerbox2R] -> [> animbox2R]\n[> animbox1R] -> [> playerbox2R]sfx0\n[> animbox2R] -> [> playerbox1R]sfx1\n\nleft up down[> playerbox1L] -> [> animbox1L]\nleft up down[> playerbox2L] -> [> animbox2L]\n[> animbox1L] -> [> playerbox2L]sfx0\n[> animbox2L] -> [> playerbox1L]sfx1\n\n(-----------------------------------)\n\n(pushes box)\n[> player | box] -> [> player | > box]\n[> player | playerBoxInactive] -> [> player | > playerBoxInactive]\n\n(pushes box into shallow)\n[ > box | shallow wall | ] -> [ smoke1L | land | smoke1R] sfx5\n[ > player | shallow wall | ] -> [ smoke1L | land | smoke1R] sfx5 \n\n(button)\n[> box | button] -> [> box | button]sfx2\n[> player | button] -> [> player | button]sfx2\n[> player | pressedbutton] -> [> player | pressedbutton]sfx2\n[box button] -> [box pressedbutton]\n[player button] -> [player pressedbutton]sfx2\n[playerStandR button] -> [playerStandR pressedbutton]\n[pressedbutton no player no box no playerStandR no playerbox] -> [button]\n\n(-----------------------------swap)\n\n(player -> box)\n[playerBoxSwapAnim1R]->[playerBox1R]\n[playerswap1R][playerTop][playerBoxInactive] -> [playerswap2R][playerTopInactive][playerBoxSwapAnim1R]\n[action player][playerBoxInactive] -> [playerswap1R][playerBoxInactive]sfx3\n\n(box -> player)\n[playerswap2R]->[playerBox1R]\n[playerswap1R][playerTop][playerBoxInactive] -> [playerswap2R][playerTopInactive][playerBoxSwapAnim1R]\n[action playerbox][playerswap2R] -> [playerBoxSwapAnim1R][playerswap1R]sfx3\n\n(manages extra tiles of movable entities)\n[boxtop] -> []\nlate up[box|no boxtop]->[box|boxtop]\n[playerBoxTop] -> []\nlate up[playerBox|no playerBoxTop]->[playerBox|playerBoxTop]\n[playerBoxTopInactive] -> []\nlate up[playerBoxInactive | ] -> [playerBoxInactive | playerBoxTopInactive]\n[playerTop] -> []\nlate up[playerStandR |no playerTop] -> [playerStandR | playerTop]\nlate up[player |no playerTop] -> [player | playerTop]\nlate up[bush | no bushtop] -> [bush | bushtop]\n\n\n(--------------------------------------------win condition)\n\n[buttonStateOff][pressedbutton][no button] -> [buttonState][pressedbutton][]\n[buttonState][button] -> [buttonStateOff][pressedbutton]\n[buttonState][player] -> [buttonState][playerStandR]\n==============\nWINCONDITIONS\n==============\nno buttonStateOff\nall buttonState on outscreen5\n\n=======\nLEVELS\n=======\nMessage WELCOME TO THE ISLE OF BLOKS\n\n(1)\nw..............\n...............\n...............\n.......##lc#...\n...cl#######...\n...####xo#o#...\n...#########...\n...#p###.......\n...###.........\n...............\n...............\n\nmessage NEW BOX+\n(2)\nw.............\n..............\n...###..c##...\n...#o#..co#...\n...####x###...\n...#x#..c##...\n...#p#..cx#...\n...###..###...\n..............\n..............\n\nmessage TOO MANY BOXES\n(3)\nw...............\n................\n..........cl....\n.....ox#xx#x....\n.....x#x##x#....\n.....#x#x##x....\n....cx####p#....\n................\n................\n\nmessage A HOLE NEW MECHANIC\n(4)\nw.............\n..............\n...###...#l#..\n...#x#xm###...\n...#p#...x#...\n...#o#..o##...\n..............\n..............\n\nmessage BUILD-A-BRIDGE\n(5)\nw.................\n..................\n..................\n....###.....#l#...\n....####m####x#...\n...###x...#x###...\n..o##p#...cc#.....\n...#####m##o#.....\n..................\n..................\n\nmessage BEWARE OF POTHOLES\n(6)\nw.................\n..................\n.......#o#........\n.......#m#........\n.......#cm........\n...o...###..#l....\n...#####x######...\n...m.#mm##mp#x#...\n...#######m..##...\n...##.............\n..................\n..................\n\nmessage HOLESOME\n(7)\nw.................\n..................\n...........####...\n...........#xx#...\n...........x###...\n...#mmmmmm##x#x#..\n...ommmmmm#x#p##..\n..................\n..................\n\nmessage HOTDOG STYLE\nw........................\n.....##.....##...........\n.....#######x######......\n...om#p#....m....#x#m#...\n......######x#######.....\n...........##.....##.....\n.........................\n\nmessage BOXING RING\n(8)\nw.............\n..............\n...mmmmmmmm...\n...mo####om...\n...m###x##m...\n...m#####xm...\n...m#x#p##m...\n...m###x##m...\n...mox###om...\n...mmmmmmmm...\n..............\n..............\n\n(11)\nmessage ISLE OF BOXES, OF BOXES AND BRIDGES\nw..................\n...................\n...................\n........#lc#o#.....\n...........###.....\n......mmmmm#x#.....\n...####mxmm###.....\n...#px#mmmmm.......\n...##x#....#####...\n...####....#x#o#...\n...........#####...\n...................\n...................\n\nmessage RING OF THE BOX\n(9)\nw..............\n...............\n...####.####...\n...#xo#m##p#...\n...####.####...\n...###...#x#...\n....m.....m....\n...###...###...\n...####.####...\n...#x##m##x#...\n...####.####...\n...............\n\nmessage CONSTRUCTION CREW\n(10)\nw....................\n.....................\n..........o.....#l...\n...####..c#.######...\n...##x####mm#x##x#...\n...###x#p#mmox##x#...\n...#o#####mm#x##x#...\n..........#.cc.......\n..........o..........\n.....................\n.....................\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", 1, "tick", "tick", 1, "tick", 0, "tick", 1, "tick", 1, "tick", 0, "tick", 3, "tick", "tick", "tick", "tick", "tick", 4, "tick", "tick", 4, 0, "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "undo", "tick", "tick", 2, "tick", "tick", 2, "tick", 3, "tick", "tick", "tick", 2, "tick", 3, "tick", 2, "tick", 1, "tick", "tick", 0, "tick", 3, "tick", "tick", 3, "tick", 3, "tick", "tick", 3, "tick", 3, "tick", "tick", 3, 2, "tick", "tick", 2, "tick", 1, "tick", 0, "tick", 3, "tick", 0, 1, "tick", "tick", 1, "tick", 1, "tick", "tick", 1, "tick", "tick", "tick", "tick", 1, "tick", 0, "tick", 1, "tick", 2, "tick", "tick", 3, "tick", "tick", "tick", 1, "tick", 2, "tick", 3, "tick", 2, 1, "tick", "tick", 1, "tick", "tick", 1, "tick", "tick", 1, "tick", "tick", "tick", 3, "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background bground3 buttonstateoff wall:0,background bground3 wall:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,background bground3 button land:2,background bground3 cornerlandtr:3,background bground3 cornerclifftr shallowwaterlrd wall:4,background bground3 cornerlanddr:5,3,background bground3 cornerclifftr wall:6,1,1,1,1,1,1,1,\nbackground bground3 land:7,background bground3 boxtop cliff wall:8,background bground3 box land:9,background bground3 cornerlandtl:10,background bground3 cornerclifftl wall:11,1,1,1,1,1,1,1,7,7,7,background bground3 cliff wall:12,1,1,\n1,1,1,1,1,1,7,7,7,12,1,1,1,1,5,7,7,7,\n7,7,7,12,1,1,1,1,2,background bground3 bushtop cliff shallowwaterlrd wall:13,background bground3 bush cornerlanddl wall:14,7,7,7,7,12,1,1,\n1,1,background bground3 cornerlanddl:15,7,background bground3 cornerclifftl shallowwaterlrd wall:16,15,7,7,10,11,1,1,1,1,1,1,1,1,\n7,background bground3 cliff shallowwaterlrd wall:17,background bground3 shallowwaterfull wall:18,background bground3 shallowwaterbottom wall:19,1,1,1,1,1,background bground3 treecanopyllb wall:20,1,1,7,3,6,1,1,1,\n1,1,background bground3 treecanopylm wall:21,background bground3 treecanopylb wall:22,1,background bground3 cornerlanddr treebase0:23,7,7,12,1,1,1,1,background bground3 treecanopymt wall:24,background bground3 treecanopymm wall:25,background bground3 treecanopymb wall:26,background bground3 treestem1 wall:27,background bground3 cornerlanddl treebase1 wall:28,\n7,7,3,6,1,1,1,1,background bground3 treecanopyrm wall:29,background bground3 treecanopyrb wall:30,1,background bground3 treebase2 wall:31,15,7,10,11,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n", 11, "1645574325242.0908"] + ], + [ + "SokokoS", + ["title SokokoS\nauthor Notan\nhomepage https://notaninart.itch.io\nbackground_color #350828\ntext_color #f9cb60\nnorepeat_action\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nPalette1\n#151244 #60117f #922a95 #be7dbc #350828\n01234\n12340\n23401\n34012\n40123\n\nPalette2\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n01234\n12340\n23401\n34012\n40123\n\nBackground\n#350828\n\nWall\n#7f6962#680703\n00010\n11111\n01000\n11111\n00010\n\nPlayer\n#be7dbc #151244\n.000.\n01010\n01010\n00000\n.000.\n\nCrate\n#f9960f\n00000\n0...0\n0...0\n0...0\n00000\n\n\nPlayerGuide\n#be7dbc #151244\n.....\n.....\n..0..\n.....\n.....\n\nCrateGuide\n#f9960f\n.....\n.....\n..0..\n.....\n.....\n\nTarget\n#7f6962\n.....\n.000.\n.0.0.\n.000.\n.....\n\nMirror\n#f9cb60\n..0..\n..0..\n..0..\n..0..\n..0..\n\nMarker\ntransparent\n\n=======\nLEGEND\n=======\n\nObstacle = Crate or Wall\nGuide = PlayerGuide or CrateGuide\n\nPalette = Palette1 or Palette2\nX = Palette1\nY = Palette2\n\n. = Background\n# = Wall\nI = Mirror\nP = Player\n╋ = Crate\n╬ = Target\nH = Mirror and Wall\n& = Crate and Target\n@ = Crate and Wall\n\n=======\nSOUNDS\n=======\n\n\nsfx0 22463707 (walk)\nsfx1 67079507 (push 10471704)\nsfx2 03111065 (flip)\nsfx3 10471704 (walk unused)\nsfx4 41314507 (walk unused)\nsfx5 10471704 (push unused)\nUndo 21479104 (72060504 60450507)\nrestart 46704309\nstartgame 21069303\nclosemessage 21069303\n(startlevel 67233309)\nendlevel 32515109\n(endgame 21069303)\ntitlescreen 21069303\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPalette\nTarget, Wall\nGuide\nPlayer\nCrate\nMirror\nMarker\n\n======\nRULES \n======\n\n[ > player no obstacle | no obstacle ] -> [ | player ] sfx0\n[ > player no obstacle | crate no wall | no obstacle ] -> [ | player | crate ] sfx1\n[ > player ] -> [ player ]\n\n[ action player ] -> sfx2\n\nhorizontal [ action player ] [ no marker | mirror | no marker ] -> [ action player ] [ marker | mirror | marker ]\nright [ | marker no crate | ... | marker no crate | ] -> [ marker | | ... | | marker ]\n+ horizontal [ | marker crate | ... | marker no crate | ] -> [ marker | | ... | crate | marker ]\n+ right [ | marker crate | ... | marker crate | ] -> [ marker | crate | ... | crate | marker ]\n[ marker ] -> [ ]\n\nhorizontal [ action player | ... | mirror ] -> [ player | ... | marker mirror ]\nright [ | marker mirror | ] -> [ marker | mirror | marker ]\nright [ | marker no player | ... | marker no player | ] -> [ marker | | ... | | marker ]\n+ horizontal [ marker player | ... | marker ] -> [ | ... | player ]\n[ marker ] -> [ ]\n\nlate [ guide ] -> [ ]\nlate horizontal [ no marker | mirror | no marker ] -> [ marker | mirror | marker ]\nlate right [ | marker no crate | ... | marker no crate | ] -> [ marker | | ... | | marker ]\n+ late horizontal [ | marker crate | ... | marker no crate | ] -> [ marker | crate | ... | crateGuide | marker ]\n+ late right [ | marker crate | ... | marker crate | ] -> [ marker | crate CrateGuide | ... | crate crateGuide | marker ]\nlate [ marker ] -> [ ]\n\nlate horizontal [ player | ... | mirror ] -> [ player | ... | marker mirror ]\nlate right [ | marker mirror | ] -> [ marker | mirror | marker ]\nlate right [ | marker no player | ... | marker no player | ] -> [ marker | | ... | | marker ]\n+ late horizontal [ marker player | ... | marker ] -> [ player | ... | playerGuide ]\nlate [ marker ] -> [ ]\n\n==============\nWINCONDITIONS\n==============\n\nall target on crate\n\n======= \nLEVELS\n=======\n\n\nMessage Press X | X sserP\n\n\n(\n######h######\n##..╬.i╬...##\n##...╬i.╬..##\n######h##╋###\n#...##h##..##\n#.#.##h##..##\n#...#.h..#╋##\n#####.h.╋.╋.#\n#####.h##...#\n#...#.h##.#.#\n#.p.#.i.....#\n#...##h######\n######h######\n\n\n######h######\n##..╬.i╬...##\n##...╬i.╬..##\n######h##╋###\n######h##...#\n######h##...#\n#####.h..#╋##\n#####.h.╋.╋.#\n#####.h##...#\n#...#.h##.#.#\n#.p.#.i.....#\n#...##h######\n######h######\n)\n\n#######h#######\n####...i#╬╬####\n####..#i.╬╬####\n#######h#╋#####\n####..#h#.#####\n####.##h#.#####\n####...h.╋#####\n######.h.╋.╋..#\n######.h#..##.#\n##...#.h##.##.#\n##.p.#.i......#\n##...##h#######\n#######h#######\n\n\nMessage You win! | !niw ouY\n\n", [3, 4, 0, 0, 0, 1, 1, 4, 3, 2, 2, 2, 3, 3, 3, 3, 0, 0, 0, 3, 1, 2, 0, 3, 4, 0, 4, 1, 2, 0, 2, 3, 2, 2, 1, 1, 4, 0, 0, 0, 0, 1, 3, 2, 2, 2, 2, 3, 3, 3, 3, 0, 0, 0, 1, 0, 4, 1, 3, 3, 2, 4, 4, 0, 1, 1, 0, 0, 3, 4, 0, 0, 4, 1, 0, 3, 3, 2, 3, 2, 3, 3, 2, 2], "background wall: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,background crateguide wall:1,0,background:2,2,2,0,0,0,0,0,0,0,\n0,0,0,2,2,2,0,0,2,2,0,2,2,background crateguide:3,0,\n0,2,2,2,0,0,2,2,0,background playerguide:4,1,2,1,0,0,\n0,0,0,0,2,0,0,0,0,2,2,2,2,2,0,\n0,background mirror wall:5,background mirror:6,6,5,5,5,5,5,5,5,6,5,5,0,\n0,2,0,0,0,2,2,0,0,2,0,0,0,background target:7,7,\n2,background player:8,background crate:9,2,9,2,0,2,0,0,0,7,7,0,0,\n0,background crate wall:10,2,2,2,2,0,0,0,0,0,0,0,0,0,\n2,0,0,2,0,0,0,0,0,0,0,0,0,9,0,\n0,2,0,0,0,0,0,0,0,0,0,2,2,2,2,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 1, "1645642394866.7083"] + ], + [ + "rigid disablement applies to whole rule-groups", + ["title rigid disablement applies to whole rule-groups\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | crate ] -> [ > player | crate ]\n\n\n\nup [ > Player | Crate ] -> [ > Player | > Crate ] \n+ rigid horizontal [ > Player | Crate ] -> [ > Player | > Crate ] \n+ rigid down [ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.............\n.............\n.............\n.....*.......\n.....p.......\n........p*#..\n.............\n...*p........\n.......p.....\n.......*.....\n.............\n.............\n.............\n\n",[4],"background: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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,background crate:1,0,0,0,0,0,\n0,0,0,0,0,0,0,background player:2,0,0,0,0,0,\n0,0,0,1,2,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,2,1,0,0,0,\n0,0,0,0,0,2,0,0,0,0,0,0,0,\n0,0,0,0,0,1,0,0,0,0,0,0,0,\n0,0,0,0,0,background wall:3,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,0,0,0,0,0,\n",0,"1646700547379.7295"] + ], + [ + "rigid applies to movements even if the movements were already present in the cell before rule application [i.e. if the rule doesn't do anything]", + ["title rigid applies to movements even if the movements were already present in the cell before rule application [i.e. if the rule doesn't do anything]\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | crate ] -> [ > player | crate ]\n\n[ player | target ] -> [ > player | target ]\n\n+ right [ > Player | Crate ] -> [ > Player | > Crate ] \n+ left [ > Player | Crate ] -> [ > Player | > Crate ] \n\nup [ > Player | Crate ] -> [ > Player | > Crate ] \n+ rigid right [ > Player | Crate ] -> [ > Player | > Crate ] \n+ rigid left [ > Player | Crate ] -> [ > Player | > Crate ] \n+ down [ > Player | Crate ] -> [ > Player | > Crate ] \n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.............\n.............\n.....#.......\n.....*.o.....\n.....p.p.....\n...op...p*#..\n.............\n...*p...po...\n.....p.p.....\n.....o.*.....\n.............\n.............\n.............\n\n\n\n", [4], "background: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,\n0,0,0,0,0,0,0,background crate:1,0,0,0,0,0,\n0,0,0,0,0,background player target:2,0,background player:3,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background wall:4,1,3,0,0,0,0,2,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,2,0,0,0,0,3,1,0,0,0,\n0,0,0,0,0,3,0,0,0,0,0,0,0,\n0,0,0,0,0,1,0,2,0,0,0,0,0,\n0,0,0,0,0,4,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,0,0,0,0,0,\n", 0, "1646645466460.093"] + ], + [ + "rigid applies to movements even if the movements are chagned by subsequent non-rigid rules in other groups", + ["title rigid applies to movements even if the movements are chagned by subsequent non-rigid rules in other groups\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nrigid right [ right Player ] -> [ up Player ] \n\n\n[ up Player ] -> [ left player ] \n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#p....\n........\n...p....\n........\n\n\n", [3], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\n0,0,0,0,0,background player:2,0,2,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646647163086.0168"] + ], + [ + "rigid applies to movements even if the objects are changed to different objects in the same layer", + ["title rigid applies to movements even if the objects are changed to different objects in the same layer\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nrigid [ Player ] -> [ left Player ] \n\n[ player ] -> [ crate ]\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#p....\n........\n...p....\n........\n\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\nbackground crate:2,0,2,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646647382066.4045"] + ], + [ + "rigid applies to movements even if they are removed and subsequently readded", + ["title rigid applies to movements even if they are removed and subsequently readded\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nrigid [ Player ] -> [ left Player ] \n\n[ crate | player ] -> [ crate | stationary player ]\n[ crate | player ] -> [ crate | < player ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#p....\n........\n...p....\n........\n\n\n", [3], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\n0,0,0,0,0,background player:2,0,2,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646647562594.771"] + ], + [ + "rigid applies to movements even if they are removed", + ["title rigid applies to movements even if they are removed (along with their objects) and subsequently readded\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nrigid [ Player ] -> [ left Player ] \n\n[ crate | player ] -> [ crate | ]\n[ crate | ] -> [ crate | < player ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#p....\n........\n...p....\n........\n\n\n", [3], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\n0,0,0,0,0,background player:2,0,2,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646647631710.7463"] + ], + [ + "rigid applies to movements even if the initial movement applied is an ACTION that is later changed to a movement", + ["title rigid applies to movements even if the initial movement applied is an ACTION that is later changed to a movement\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nrigid [ crate ] -> [ action crate ] \n\n\n[ action crate ] -> [ left crate ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n", [3], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\nbackground crate:2,0,2,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\nbackground player:3,0,0,0,0,0,0,0,\n", 0, "1646647810474.9294"] + ], + [ + "rigid applies to movements even if the initial movement applied is an STATIONARY that is later changed to a movement", + ["title rigid applies to movements even if the initial movement applied is an STATIONARY that is later changed to a movement\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid [ crate ] -> [ stationary crate ] \n\n\n[ stationary crate ] -> [ left crate ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,background crate:2,\n0,2,0,0,0,0,0,0,\n0,0,0,background player:3,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646647871326.5627"] + ], + [ + "rigid DOES NOT apply to objects if the rule is totally inert except for triggering SFX", + ["title rigid DOES NOT apply to objects if the rule is totally inert except for triggering SFX\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid right [ wall | crate ] -> [ wall | crate ] sfx0 \n\n\n[ up crate ] -> [ left crate ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,background crate:2,0,0,\n2,0,0,0,0,0,0,0,\n0,0,0,background player:3,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646648625330.979"] + ], + [ + "rigid DOES NOT apply to objects if a movement on the RHS is removed implicitly [by not mentioning a movement matched on the LHS]", + ["title rigid DOES NOT apply to objects if a movement on the RHS is removed implicitly [by not mentioning a movement matched on the LHS]\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid right [ wall | up crate ] -> [ wall | crate ] \n\n\n[ stationary crate ] -> [ left crate ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\nbackground crate:2,2,0,0,0,0,0,0,\n0,0,0,background player:3,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646648958460.208"] + ], + [ + "rigid DOES apply to objects if a movement on the RHS is removed explicitly [by not mentioning a movement matched on the LHS]", + ["title rigid DOES apply to objects if a movement on the RHS is removed explicitly [by not mentioning a movement matched on the LHS]\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid right [ wall | up crate ] -> [ wall | stationary crate ] \n\n\n[ stationary crate ] -> [ left crate ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,background crate:2,\n0,2,0,0,0,0,0,0,\n0,0,0,background player:3,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646649072656.4766"] + ], + [ + "rigid DOES apply to objects if a movement on the RHS is removed explicitly, even if the object is replaced by another one on the same layer", + ["title rigid DOES apply to objects if a movement on the RHS is removed explicitly, even if the object is replaced by another one on the same layer\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid right [ wall | up crate ] -> [ wall | stationary crate ] \n\n\n[ stationary crate ] -> [ left player ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,background crate:2,\n0,2,0,0,0,0,0,0,\n0,0,0,background player:3,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646649296576.2854"] + ], + [ + "rigid DOES NOT apply to objects if a movement on the RHS is assigned, and later the object is replaced by an object on another layer", + ["title rigid DOES NOT apply to objects if a movement on the RHS is assigned, and later the object is replaced by an object on another layer\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall and target\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid right [ wall | up crate ] -> [ wall | down crate ] \n\n\n[ down crate ] -> [ left target ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,background target wall:1,0,0,0,0,\nbackground target:2,background crate:3,0,0,0,0,0,0,\n0,0,0,background player:4,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646649418277.2751"] + ], + [ + "misc rigid test", + ["title misc rigid test\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall \nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nTarget\n\n======\nRULES\n======\n\nrigid [ crate ] -> [ left crate ]\n\nright [ wall | crate ] -> [ wall | ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n........\n........\n..#*....\n.....p..\n...*....\n........\n........\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\nbackground wall:1,0,background crate:2,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,background player:3,0,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646698655056.5757"] + ], + [ + "rigid: even removing and re-adding an object doesn't remove the rigid tag from that position and layer.", + ["title rigid: even removing and re-adding an object doesn't remove the rigid tag from that position and layer.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall \nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nTarget\n\n======\nRULES\n======\n\nrigid [ crate ] -> [ left crate ]\n\ndown [ wall | crate ] -> [ wall | ]\n\ndown [ wall | ] -> [ wall | up crate ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n........\n...#....\n...*....\n.....p..\n...*....\n........\n........\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,background wall:1,background crate:2,\n0,2,0,0,0,0,0,0,\n0,0,0,0,0,0,background player:3,0,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646698763919.0374"] + ], + [ + "rigid: even a rigid rule removing an object marks the position/layer of the removed object as rigid.", + ["title rigid: even a rigid rule removing an object marks the position/layer of the removed object as rigid.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall \nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nTarget\n\n======\nRULES\n======\n\n\n[ crate ] -> [ left crate ]\n\nrigid down [ wall | crate ] -> [ wall | ]\n\ndown [ wall | crate ] -> [ wall | right crate ]\n\ndown [ wall | no crate ] -> [ wall | up crate ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n........\n...#....\n...*....\n.....p..\n...*....\n........\n........\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n0,0,background crate:1,0,0,0,background wall:2,0,\n0,0,0,0,0,0,1,0,\n0,0,0,0,0,0,background player:3,0,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646699000524.8464"] + ], + [ + "One player, unlimited rigidbodies", + ["title One player, unlimited rigidbodies\nauthor increpare\nhomepage www.increpare.com\n\n(\n\nThis is a sample of \n\n- Unlimited rigid bodies\n- 1 Player (should be extendable)\n\nIt's made as an example for the extended rigid body tutorial here:\n\nhttps://www.puzzlescript.net/Documentation/rigidbodies.html\n\n)\n\n========\nOBJECTS\n========\n\nBackground\ngreen\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\nYellow orange\n00000\n01110\n01110\n01110\n00000\n\n\n(The directional overlays bellow establish connections between crates)\n\nCrate_U\norange\n.000.\n.....\n.....\n.....\n.....\n\nCrate_D\norange\n.....\n.....\n.....\n.....\n.000.\n\nCrate_L\norange\n.....\n0....\n0....\n0....\n.....\n\nCrate_R\norange\n.....\n....0\n....0\n....0\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n\nw = crate and Crate_U\nx = crate and Crate_D\na = crate and Crate_L\nd = crate and Crate_R\n\ne = crate and Crate_U and Crate_L\nz = crate and Crate_D and Crate_L\nq = crate and Crate_U and Crate_R\nc = crate and Crate_D and Crate_R\n\nr = crate and Crate_L and Crate_R\nt = crate and Crate_D and Crate_U\n\n1 = crate and Crate_D and Crate_L and Crate_R\n2 = crate and Crate_U and Crate_L and Crate_R\n3 = crate and Crate_U and Crate_D and Crate_L\n4 = crate and Crate_U and Crate_D and Crate_R\n\n0 = crate and Crate_U and Crate_D and Crate_L and Crate_R\n\n5 = crate\n\nCrate_Connection = Crate_U or Crate_D or Crate_L or Crate_R\n\nPusher = Player or Crate\nPushable = Crate or crate_connection\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nCrate_U\nCrate_D\nCrate_L\nCrate_R\n\n======\nRULES\n======\n\n(for making maps easily: uncomment out the other lines press action to discard all boundaries and recreate them)\n\n( [ action player ] [ crate_connection ] -> [ action player ] [ ] )\n( up [ action player ] [ crate | crate ] -> [ action player ] [ crate crate_u | crate crate_d ] )\n( right [ action player ] [ crate | crate ] -> [ action player ] [ crate crate_r | crate crate_l ] )\n\n[ > Pusher | Pushable ] -> [ > Pusher | > Pushable ]\n+ up [ moving crate Crate_U | crate ] -> [ moving crate Crate_U | moving crate ]\n+ down [ moving crate Crate_D | crate ] -> [ moving crate Crate_D | moving crate ]\n+ left [ moving crate Crate_L | crate ] -> [ moving crate Crate_L | moving crate ]\n+ right [ moving crate Crate_R | crate ] -> [ moving crate Crate_R | moving crate ]\n\n[ moving crate stationary crate_connection ] -> [ moving crate moving crate_connection ]\n\n[ > crate | wall ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n###############\n#.............#\n#..ca...ca.dz.#\n#.ce..d1e...w.#\n#.t....w......#\n#.w.d1a..5.5..#\n#....w....5...#\n#......dz.....#\n#...p...t..dz.#\n#..x..cre...w.#\n#..w..w...5...#\n#.............#\n###############\n",[1,1,2,3,3,2,3,2,3,3,0,0,0,0,0,3,0,1,1,1,1,2,1,1,0,0,3,0,3,2,3,3,3],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,\n1,background crate crate_d crate_r:2,background crate crate_d crate_u:3,background crate crate_u:4,1,1,1,1,1,1,0,0,1,2,background crate crate_l crate_u:5,\nbackground crate crate_r:6,1,1,1,1,1,1,1,0,0,1,background crate crate_l:7,1,background crate crate_d crate_l crate_r:8,4,\n1,1,1,1,1,1,0,0,1,6,1,7,1,1,1,\n1,1,1,1,0,0,1,8,4,1,1,1,1,1,1,\n1,1,0,0,2,5,1,1,1,1,1,1,background crate crate_d:9,4,1,\n0,0,7,1,1,1,1,1,1,1,1,1,1,0,0,\n1,1,1,1,1,2,4,1,1,1,1,0,0,1,background crate:10,\n1,6,background player:11,background crate crate_l crate_r:12,1,1,1,1,1,0,0,1,1,1,background crate crate_d crate_l:13,\n3,5,1,1,1,10,1,0,0,1,6,1,1,10,10,\n1,6,1,1,1,0,0,1,13,4,1,1,1,1,13,\n4,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",0,"1646701772316.744"] + ], + [ + "Many parallel players, unlimited rigidbodies", + ["title Many parallel players, unlimited rigidbodies\nauthor increpare\nhomepage www.increpare.com\n\nverbose_logging\n\n(\n\nThis is a sample of \n\n- Unlimited rigid bodies\n- 1 Player (should be extendable)\n\nIt's made as an example for the extended rigid body tutorial here:\n\nhttps://www.puzzlescript.net/Documentation/rigidbodies.html\n\n)\n\n========\nOBJECTS\n========\n\nBackground\ngreen\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 Crate\nYellow orange\n00000\n01110\n01110\n01110\n00000\n\n\n(The directional overlays bellow establish connections between crates)\n\n Crate_U\norange\n.000.\n.....\n.....\n.....\n.....\n\n Crate_D\norange\n.....\n.....\n.....\n.....\n.000.\n\n Crate_L\norange\n.....\n0....\n0....\n0....\n.....\n\n Crate_R\norange\n.....\n....0\n....0\n....0\n.....\n\nBLOCKED\nred\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n\nw = Crate and Crate_U\nx = Crate and Crate_D\na = Crate and Crate_L\nd = Crate and Crate_R\n\ne = Crate and Crate_U and Crate_L\nz = Crate and Crate_D and Crate_L\nq = Crate and Crate_U and Crate_R\nc = Crate and Crate_D and Crate_R\n\nr = Crate and Crate_L and Crate_R\nt = Crate and Crate_D and Crate_U\n\n1 = Crate and Crate_D and Crate_L and Crate_R\n2 = Crate and Crate_U and Crate_L and Crate_R\n3 = Crate and Crate_U and Crate_D and Crate_L\n4 = Crate and Crate_U and Crate_D and Crate_R\n\n0 = Crate and Crate_U and Crate_D and Crate_L and Crate_R\n\n5 = Crate\n\n Crate_Connection = Crate_U or Crate_D or Crate_L or Crate_R\n\nPusher = Player or Crate\nPushable = Crate \nSolid = Crate or Player\n\n=======\nSOUNDS\n=======\n\n Crate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\n Crate_U\n Crate_D\n Crate_L\n Crate_R\nBLOCKED\n\n======\nRULES\n======\n\n(For making maps easily: uncomment out the next few lines + press action to discard all boundaries and recreate them)\n\n( [ action player ] [ Crate_connection ] -> [ action player ] [ ] )\n( up [ action player ] [ Crate | Crate ] -> [ action player ] [ Crate Crate_u | Crate Crate_d ] )\n( right [ action player ] [ Crate | Crate ] -> [ action player ] [ Crate Crate_r | Crate Crate_l ] )\n\n\nstartloop\n\n(I'm using ACTION to mark 'BLOCKED's as old to allow the loop to exit once no new BLOCKEDs have been added)\n[ stationary BLOCKED ] -> [ action BLOCKED ]\n\n[ > Pusher | no BLOCKED Pushable ] -> [ > Pusher | > Pushable ]\n+ up [ moving Crate Crate_U | no BLOCKED Crate ] -> [ moving Crate Crate_U | moving Crate ]\n+ down [ moving Crate Crate_D | no BLOCKED Crate ] -> [ moving Crate Crate_D | moving Crate ]\n+ left [ moving Crate Crate_L | no BLOCKED Crate ] -> [ moving Crate Crate_L | moving Crate ]\n+ right [ moving Crate Crate_R | no BLOCKED Crate ] -> [ moving Crate Crate_R | moving Crate ]\n\n\n(If a crate can't move, we have to back-propagate the can't-move-ness, including possibly through players)\n[ > Solid | wall ] -> [ > Solid BLOCKED | wall ]\n\n[ no BLOCKED > Solid | BLOCKED Solid ] -> [ BLOCKED > Solid | BLOCKED Solid ]\n+ up [ BLOCKED Crate Crate_U | no BLOCKED Crate ] -> [ BLOCKED Crate Crate_U | BLOCKED Crate ]\n+ down [ BLOCKED Crate Crate_D | no BLOCKED Crate ] -> [ BLOCKED Crate Crate_D | BLOCKED Crate ]\n+ left [ BLOCKED Crate Crate_L | no BLOCKED Crate ] -> [ BLOCKED Crate Crate_L | BLOCKED Crate ]\n+ right [ BLOCKED Crate Crate_R | no BLOCKED Crate ] -> [ BLOCKED Crate Crate_R | BLOCKED Crate ]\n\n\n(Then we remove all movements from BLOCKED crates, along with the BLOCKED marker itself)\n[ BLOCKED moving Solid ] -> [ BLOCKED stationary Solid ]\n\n[ stationary BLOCKED ] [ moving crate ] -> [ stationary BLOCKED ] [ stationary crate ]\nendloop\n\n[ BLOCKED ] -> [ ]\n\n(To wrap it all up, move connections along with the crates themselves)\n[ moving Crate stationary Crate_connection ] -> [ moving Crate moving Crate_connection ]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n###############\n#..ca.........#\n#.ce....ca....#\n#.t...d1e.....#\n#.w....w......#\n#....d1ap5.dz.#\n#....pw...5.w5#\n#......dz.....#\n#.......t..dz.#\n#..x..cre...w.#\n#..w..w...5...#\n#.............#\n###############\n\n###############\n#..ca.........#\n#.ce....ca....#\n#.t...d1e.....#\n#.w....w......#\n#....d1ap5.dz.#\n#....pw...5.w5#\n#......dz.....#\n#.......t..dz.#\n#..x..cre...w.#\n#..w..w...5...#\n#.............#\n###############\n\n",[3,3,3,0,3,3,2,2,2,1,2,2,3,3,3,3,3,2,2,2,1,1,2,2,3,3,3,0,0,0,1,0,0,0,0,1,1,2,1,0,0,0,1,1,1,1,0,3,1,1,1,3,3,3,1,0,1,1,1],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,\nbackground crate crate_d crate_r:2,background crate crate_d crate_u:3,background crate crate_u:4,1,1,1,1,1,1,1,0,0,2,background crate crate_l crate_u:5,1,\n1,1,1,1,1,1,1,1,0,0,background crate crate_l:6,background player:7,1,1,1,\n1,1,1,background crate crate_d:8,4,1,0,0,1,background crate crate_r:9,1,1,1,1,1,\n1,1,1,1,0,0,1,background crate crate_d crate_l crate_r:10,4,1,1,1,1,1,1,\n1,1,0,0,2,5,7,1,1,1,1,1,1,2,4,\n0,0,6,1,1,1,1,1,1,9,1,background crate crate_l crate_r:11,1,0,0,\n1,1,1,9,1,1,1,background crate crate_d crate_l:12,3,5,1,0,0,1,1,\n1,10,4,1,1,1,1,1,1,0,0,1,1,1,6,\nbackground crate:13,13,1,1,1,1,13,0,0,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,9,1,1,1,\n1,9,1,0,0,1,1,1,13,12,4,1,1,1,12,\n4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",0,"1646703814545.0725"] + ], + [ + "Restart command on level start", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nverbose_logging\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 player ] -> restart\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[2,1,0],"background wall:0,0,0,0,0,0,\n0,0,background:1,background crate:2,background player target:3,1,\n1,0,0,background target:4,1,1,\n1,1,0,0,0,0,\n1,2,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1646748136288.8362"] + ], + [ + "startloop stoploop vortex check", + ["title startloop stoploop vortex check\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\nstartloop\n[ > Player | Crate ] -> [ > Player | > Crate ] \n[ > Player | > Crate ] -> [ > Player | Crate ] \nendloop\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[0,1,2,3,2,2,3,1,1,2,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,background player:4,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1646748363863.9624"] + ], + [ + "Audio Test 1", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\nCrate cantmove 34411705\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\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[2,1,0,3,3,3,2,1,0,1,2,2],"background wall:0,0,0,0,0,0,\n0,0,background:1,background crate:2,background target:3,1,\n1,0,0,3,1,1,\nbackground player:4,2,0,0,0,0,\n1,1,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n","0","1646875706306.7224",["36772507","36772507","36772507","34411705"]] + ], + [ + "Audio Test 2", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nstartgame 1\nendgame 2\nstartlevel 3\nendlevel 4\ncrate move 5\ncrate cantmove 6\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\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[0,1,2,2,2],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,background target:2,background player:3,\nbackground crate:4,0,0,2,1,1,\n1,1,0,0,0,0,\n1,4,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n","0","1646876897098.8142",["5","5","6"]] + ], + [ + "Audio Test 3", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\ntemp \nblack\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 1\nCrate cantmove 2\ncrate create 3\ncrate destroy 4\nplayer move 5\nplayer cantmove 6\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ntemp\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n[action player | no temp no crate ] -> [ action player | temp crate ]\n[action player | no temp crate ] -> [ action player | temp ]\n[temp]->[]\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[2,1,0,1,4,0,3,2,2,4,3,0,1,1,1],"background wall:0,0,0,background crate:1,0,0,\n0,0,background:2,2,background crate target:3,2,\n2,0,0,background target:4,2,background player:5,\n2,2,0,0,0,0,\n2,2,0,0,2,2,\n0,2,2,0,2,2,\n2,0,0,0,0,2,\n",0,"1646877211807.3489",["5","5","1","5","6","3","4","5","5","1","5","1","5","3","4","5","5","1","5","2","6","2","6"]] + ], + [ + "aggregates in win conditions 1", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\ncratedot\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ndotted = crate and cratedot\nk = cratedot\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ncratedot\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n[ > Player | cratedot ] -> [ > Player | > cratedot ] \n\n==============\nWINCONDITIONS\n==============\n\nall target on dotted\n\n=======\nLEVELS\n=======\n\npk@\n...\n\n.....\nkp..k\no*.*o\n.....\n\n....\no...\n",[0,1,2,3,3,2,3,0,0,3,2,1,2,1,1],"background:0,background target:1,0,0,\n0,0,0,0,\n",1,"1646902744672.2258",["36772507","36772507"]] + ], + [ + "aggregates in win conditions 2", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\ncratedot\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ndotted = crate and cratedot\nk = cratedot\n&=dotted\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ncratedot\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n[ > Player | cratedot ] -> [ > Player | > cratedot ] \n\n==============\nWINCONDITIONS\n==============\n\nall dotted on target\n\n=======\nLEVELS\n=======\n\npk@\n...\n\n.....\nkp..&\no*..o\n.....\n\n....\no...\n",[3,3,3,0,3,2],"background:0,background target:1,0,0,\n0,0,0,0,\n",0,"1646902824835.6414",["36772507"]] + ], + [ + "aggregates in win conditions 3", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\ncratedot\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ndotted = crate and cratedot\nk = cratedot\n&=dotted\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ncratedot\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n[ > Player | cratedot ] -> [ > Player | > cratedot ] \n\n==============\nWINCONDITIONS\n==============\n\nsome dotted\n\n=======\nLEVELS\n=======\n\npk@\n...\n\n.....\nkp..p\no*.oo\n.....\n\n....\no...\n",[0,1,2,3,3,2,2,1,1,0,2,3,0,3,0,1],"background:0,background target:1,0,0,\n0,0,0,0,\n",1,"1646903196185.7786",["36772507","36772507"]] + ], + [ + "aggregates in win conditions 4", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\ncratedot\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ndotted = crate and cratedot\nk = cratedot\n&=dotted\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ncratedot\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nno dotted\n\n=======\nLEVELS\n=======\n\npk@\n...\n\n.....\n.p...\n.&&&.\n.....\n\n....\no...\n",[3,2,1,2,3,3,0,1,0,0,3,3,3,2,2,1,1,1],"background:0,background target:1,0,0,\n0,0,0,0,\n",0,"1646903268108.808",["36772507","36772507","36772507","36772507","36772507","36772507","36772507"]] + ], + [ + "aggregates in win conditions 5", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\ncratedot\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ndotted = crate and cratedot\nk = cratedot\n&=dotted\nf = dotted and target\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ncratedot\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nno dotted on target\n\n=======\nLEVELS\n=======\n\npk@\n...\n\n.....\n.p...\n.&&&.\n.....\n\np.......\no.f.f.&.\n........\n\n\npk@\n...\n...\n",[3,3,3,2,1,1,0,3,3,"undo","undo","undo","undo","undo",0,3,3,2,1,3,0,3,3,2,1,1,0,1,1,1,3,2,"undo",1,2,0,3,2,0,3,2],"background player:0,background:1,1,\nbackground cratedot:2,1,1,\nbackground crate target:3,1,1,\n",2,"1646903377668.326",["36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507"]] + ], + [ + "aggregates in win conditions 6", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\ncratedot\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ndotted = crate and cratedot\nk = cratedot\n&=dotted\nf = dotted and target\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ncratedot\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n[ > Player | cratedot ] -> [ > Player | > cratedot ] \n\n==============\nWINCONDITIONS\n==============\n\nall dotted on target\n\n=======\nLEVELS\n=======\n\n..p..\n...k.\n.ooo.\n.&&*.\n.....\n\n..p..\n...k.\n.ooo.\n#&&*.\n.....\n\n..p..\n...k.\n.ooo.\n.&&*.\n.....\n\npk@\n...\n...\n",[1,1,2,2,2,2,3,3,3,0,3,0,0,0,1,2,3,2,2,2,1,1,0,2,1,0,3,2,3,2,2,2,1,0,2,1,1,3,0,1,3,2,2,3,2,2,1,0,2,1,1,0,3,2,3,3,0,0,1,3,2,2,1,0],"background player:0,background:1,1,\nbackground cratedot:2,1,1,\nbackground crate target:3,1,1,\n",0,"1646903481599.992",["36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507"]] + ], + [ + "aggregates in win conditions 7", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\ncratedot\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ndotted = crate and cratedot\nk = cratedot\n&=dotted\nf = dotted and target\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ncratedot\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n[ > Player | cratedot ] -> [ > Player | > cratedot ] \n\n==============\nWINCONDITIONS\n==============\n\nall target on dotted\n\n=======\nLEVELS\n=======\n\n..p..\n...k.\n.ooo.\n.&&*.\n.....\n\n..p..\n...k.\n.ooo.\n#&&*.\n.....\n\n..p..\n...k.\n.ooo.\n.&&*.\n.....\n\npk@\n...\n...\n",[3,2,3,2,2,2,1,0,2,1,1,0,2,3,3,3,0,0,1,2,2,1,1,0,3,2,3,0,3,3,2,2,2,2,1,0,2,2,1,1,0,2,3,3,1,0,3,3,0,0,1,2,0,0,1,1,2,3,0,3,2,3,2,2,2,1,0],"background:0,0,0,0,0,\n0,0,background target:1,background crate cratedot:2,0,\nbackground player:3,0,1,2,0,\n0,background cratedot:4,1,background crate:5,0,\n0,0,0,0,0,\n",0,"1646903516649.6477",["36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507"]] + ], + [ + "double ellipsis simple test", + ["title double ellipsis simple test\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | > Player | > Player | ... | Crate | Crate | ... | Target | Target | Target | Target ] -> [ > Player | > Player | > Player | ... | > Crate | > Crate | ... | > Target | > Target | > Target | > Target ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\nppp**.oooo..\nppp**oooo...\nppp.**oooo..\nppp.**.oooo.\n\n#######\n#.....#\n#.....#\n#p.*.o#\n#.....#\n#.....#\n#######\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[3],"background:0,0,0,0,background player:1,1,1,1,1,1,1,1,\n1,1,1,1,background crate:2,2,0,0,2,2,2,2,\n0,background target:3,2,2,3,3,3,0,3,3,3,3,\n3,3,3,3,3,0,3,3,0,0,0,3,\n",0,"1647256697085.1719",["36772507"]] + ], + [ + "double ellipsis simple test #2", + ["title double ellipsis simple test\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | > Player | ... | Crate | Crate | ... | Target | Target | Target | Target ] -> [ > Player | > Player | > Player | ... | > Crate | > Crate | ... | > Target | > Target | > Target | > Target ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n....................\nppp**.oooo.**.......\n...**oooo**.........\n....**oooo**........\n....**.oooo.**......\n....................\n\n#######\n#.....#\n#.....#\n#p.*.o#\n#.....#\n#.....#\n#######\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,0,1,2,1,1,1,0,1,2,1,1,1,3,3,3,3,2,1,1,1,1,1,"undo",1,3,3,3,3,3,3,2,0,0,1,2,2,1,0,3,2,1,0,1,2,1,1,1,"undo",1,1,3,3,3,3,3,3,2,3,3,1,1,1,1,1,1,1,"undo",1,"undo"],"background:0,background target:1,1,1,0,0,0,1,1,1,1,0,0,1,1,1,1,0,0,background crate target:2,\n2,1,1,0,0,background crate:3,3,3,2,0,0,3,3,3,3,0,0,3,3,3,\n3,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,background player:4,0,0,0,0,0,4,0,0,0,0,0,4,0,0,0,\n0,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,\n",0,"1647256758831.4763",["36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507"]] + ], + [ + "double ellipsis simple test #3", + ["title double ellipsis simple test\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | > Player | ... | Crate | Crate | ... | Target | Target | Target | Target ] -> [ > Player | > Player | > Player | ... | > Crate | > Crate | ... | > Target | > Target | > Target | > Target ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n\n....................\n....................\n....................\n....................\n....................\n....................\n......****..........\nppp...****.........\nppp.................\nppp**.oooo.**.......\n...**oooo**.........\n....**oooo**........\n....**.oooo.**......\n....................\n.......****.........\n.......****.........\n.......****.........\n....................\n....................\n....................\n....................\n....................\n\n#######\n#.....#\n#.....#\n#p.*.o#\n#.....#\n#.....#\n#######\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[2,2,2,3,2,2,2,2,2,2,2,2,3,3,3,2,3,3,3,3,1,0,"undo",0,"undo",1,0,1,1,0,3,3,3,0,"undo",0,"undo",0,2,2,2,3,3,3,3,3,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,1,2],"background: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,\n0,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,background crate:1,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,\n0,background target:2,2,1,1,0,0,0,0,0,0,0,0,0,0,0,0,background player:3,3,3,\n1,1,0,2,2,2,0,0,1,1,1,0,0,0,0,0,0,0,0,3,\n3,3,1,background crate target:4,2,2,2,0,1,1,1,0,0,0,0,0,0,0,0,0,\n0,3,3,3,0,1,1,2,4,2,2,1,1,1,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,1,4,2,0,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,1,0,1,2,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,\n0,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,\n0,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,\n0,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",0,"1647256841954.48",["36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507"]] + ], + [ + "double ellipsis simple test #4", + ["title double ellipsis simple test\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | > Player | ... | Crate | Crate | ... | stationary Target | stationary Target | stationary Target | stationary Target ] -> [ > Player | > Player | > Player | ... | > Crate | > Crate | ... | > Target | > Target | > Target | > Target ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n\n....................\n....................\n....................\n....................\n....................\n....................\n......****..........\nppp...****.........\nppp.................\nppp**.oooo.**.......\n...**oooo**.........\n....**oooo**........\n....**.oooo.**......\n....................\n.......****.........\n.......****.........\n.......****.........\n....................\n....................\n....................\n....................\n....................\n\n#######\n#.....#\n#.....#\n#p.*.o#\n#.....#\n#.....#\n#######\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,0,1,1,1,0,3,"undo","undo","undo",1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,0,3,2,0,2,0,2,3,3,3,3,3,3,3,2,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,1,1,1,0,"undo",0,0],"background: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,\n0,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,background crate:1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,\n1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\nbackground target:2,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,\n0,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background crate target:3,3,2,2,0,1,1,1,background player:4,4,4,0,0,0,0,0,0,\n0,0,0,0,0,3,3,2,2,0,1,1,1,4,4,4,0,0,0,0,\n0,0,0,0,1,1,0,2,1,2,2,0,1,1,1,4,4,4,0,0,\n0,0,0,0,0,0,0,0,0,0,1,1,2,0,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,\n0,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,\n0,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,\n0,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",0,"1647256905962.6406",["36772507","36772507","36772507"]] + ], + [ + "double ellipsis simple test #5", + ["title double ellipsis simple test\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | > Player | ... | Crate | Crate | ... | stationary Target | stationary Target | stationary Target | stationary Target ] -> [ > Player | > Player | > Player | ... | < Crate | < Crate | ... | > Target | > Target | > Target | > Target ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n\n....................\n....................\n....................\n....................\n....................\n....................\n......****..........\nppp...****.........\nppp.................\nppp**.oooo.**.......\n...**oooo**.........\n....**oooo**........\n....**.oooo.**......\n....................\n.......****.........\n.......****.........\n.......****.........\n....................\n....................\n....................\n....................\n....................\n\n#######\n#.....#\n#.....#\n#p.*.o#\n#.....#\n#.....#\n#######\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,0,"undo",0,3,3,3,3,3,3,3,3,0,3,0,0,0,0,0,0,0,0,0,0,2,2,2,1,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,1,1,1,1,0,"undo",1,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,3,0,3,3,3,3,3,2],"background: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,\n0,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,background crate:1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,background crate target:2,1,\n1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\nbackground target:3,2,1,0,0,0,0,0,0,0,0,0,0,background player:4,4,4,0,0,1,1,\n0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,4,4,4,0,1,\n1,0,0,3,3,3,3,0,1,0,1,1,0,0,0,0,0,4,4,4,\n0,0,1,1,3,3,0,3,0,0,1,0,1,1,0,0,0,0,0,0,\n0,0,0,0,1,1,0,3,0,0,3,0,1,1,1,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,1,0,3,0,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,\n0,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,\n0,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,\n0,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",0,"1647256954689.7512",["36772507","36772507","36772507","36772507","36772507"]] + ], + + [ + "Double-ellipsis testcase", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\nb\nred\n0....\n0....\n00000\n0...0\n00000\n\nc\nblue\n00000\n0....\n0....\n0....\n00000\n\nd\nyellow\n....0\n....0\n00000\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nb\nc\nd\n\n======\nRULES\n======\n\n[ > Player | ... | b | ... | c ] [ d | ... | b | ... | c ] -> [ > Player | ... | b | ... | c ] [ up d | ... | b | ... | down c ]\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n...........\n...........\n...........\n.d.p..b.c..\n...........\n.d.b.c.....\n...........\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[3],"background:0,0,0,0,0,0,0,0,0,background d:1,0,\n1,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,b background:2,0,0,0,0,background player:3,0,\n0,0,0,0,0,0,0,0,background c:4,0,0,\n0,2,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,4,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n",0,"1647258256850.6755",[]] + ], + [ + "Double-ellipsis delicate test case", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\nb\nred\n0....\n0....\n00000\n0...0\n00000\n\nc\nblue\n00000\n0....\n0....\n0....\n00000\n\nd\nyellow\n....0\n....0\n00000\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nb\nc\nd\n\n======\nRULES\n======\n\n[ > Player | ... | b | ... | c ] [ d | ... | b | ... | c ] -> [ Player | ... | b | ... | c ] [ up d | ... | b | ... | down c ]\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n...........\n...........\n...........\n.d.p..b.c..\n...........\n.d.b.c.....\n...........\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[3],"background:0,0,0,0,0,0,0,0,0,background d:1,0,\n0,1,0,0,0,0,0,0,0,0,0,\n0,0,background player:2,0,b background:3,0,0,0,0,0,0,\n0,0,0,0,0,0,0,background c:4,0,0,0,\n0,3,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,4,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n",0,"1647258285625.6372",[]] ], ]; diff --git a/src/tests/resources/testingFrameWork.js b/src/tests/resources/testingFrameWork.js index ad240f7d3..1c4c28cb2 100644 --- a/src/tests/resources/testingFrameWork.js +++ b/src/tests/resources/testingFrameWork.js @@ -14,6 +14,8 @@ function runTest(dataarray) { var randomseed = dataarray[4]!==undefined ? dataarray[4] : null; + var audio_output = dataarray[5]!==undefined ? dataarray[5] : null; + if (targetlevel===undefined) { targetlevel=0; } @@ -44,6 +46,21 @@ function runTest(dataarray) { unitTesting=false; var levelString = convertLevelToString(); var success = levelString == dataarray[2]; + var success=true; + if (levelString !== dataarray[2]) { + success=false; + QUnit.assert.equal(levelString,dataarray[2],"Resulting level state is not the expected one."); + } + + if (audio_output!==null){ + //check if soundHistory array is same as audio_output + var audio_recorded = soundHistory.join(";"); + var audio_expected = audio_output.join(";"); + if (audio_recorded!=audio_expected){ + success=false; + QUnit.assert.equal(audio_recorded,audio_expected,"Audio output is not as expected"); + } + } if (success) { return true; } else { @@ -82,9 +99,9 @@ function runCompilationTest(dataarray) { } if (i_recorded0) { @@ -23,6 +26,13 @@ for (var i=0;i - QUnit Tests for PuzzleScript + QUnit Tests for PuzzleScriptPlus +

            From d4a32b15bd1e7e63f208337459ef5585820a8a93 Mon Sep 17 00:00:00 2001 From: david Date: Wed, 1 Mar 2023 12:14:24 +1100 Subject: [PATCH 118/122] Merge in sound history, Revert/fix some error messages to match tests Fix old bug when () comment follows message Run server on changed port, so it can alongside others Use correct versions of test data files Passes all tests. --- runserver.bat | 3 +- src/js/debug.js | 14 +- src/js/debug_off.js | 1 + src/js/parser.js | 26 +- src/js/sfxr.js | 5 +- src/tests/resources/errormessage_testdata.js | 374 +----- src/tests/resources/testdata.js | 1255 ++++++++---------- src/tests/resources/testingFrameWork.js | 21 +- src/tests/resources/tests.js | 12 +- 9 files changed, 570 insertions(+), 1141 deletions(-) diff --git a/runserver.bat b/runserver.bat index a30fc1ecc..3f33e428e 100644 --- a/runserver.bat +++ b/runserver.bat @@ -1,2 +1,3 @@ ipconfig - python3 -m http.server \ No newline at end of file + rem allow PS and PS+ to run at the same time + python3 -m http.server 8020 \ No newline at end of file diff --git a/src/js/debug.js b/src/js/debug.js index e9599e7b6..b86ee747c 100644 --- a/src/js/debug.js +++ b/src/js/debug.js @@ -2,6 +2,7 @@ var canSetHTMLColors=false; var canDump=true; var recordingStartsFromLevel=0; var inputHistory=[]; +var soundHistory=[]; var compiledText; var canOpenEditor=true; var IDE=true; @@ -61,12 +62,15 @@ function dumpTestCase() { consolePrint("
            Compilation error/warning data (for error message tests - errormessage_testdata.js):


            "+resultstring+"


            ",true); + //if the game is currently running and not on the title screen, dump the recording data + if (!titleScreen) { //normal session recording data var levelDat = compiledText; var input = inputHistory.concat([]); + var sounds = soundHistory.concat([]); var outputDat = convertLevelToString(); - var resultarray = [levelDat,input,outputDat,recordingStartsFromLevel,loadedLevelSeed]; + var resultarray = [levelDat,input,outputDat,recordingStartsFromLevel,loadedLevelSeed,sounds]; var resultstring = JSON.stringify(resultarray); resultstring = `
            [
            @@ -78,12 +82,14 @@ function dumpTestCase() { var tag = 'selectable'+selectableint; consolePrint("
            Recorded play session data (for play session tests - testdata.js):


            "+resultstring+"


            ",true); + } } function clearInputHistory() { if (canDump===true) { inputHistory=[]; + soundHistory=[]; recordingStartsFromLevel = curlevel; } } @@ -93,3 +99,9 @@ function pushInput(inp) { inputHistory.push(inp); } } + +function pushSoundToHistory(seed) { + if (canDump===true) { + soundHistory.push(seed); + } +} \ No newline at end of file diff --git a/src/js/debug_off.js b/src/js/debug_off.js index d40ee2648..9380afbb8 100644 --- a/src/js/debug_off.js +++ b/src/js/debug_off.js @@ -49,3 +49,4 @@ function logErrorNoLine(str){ function clearInputHistory() {} function pushInput(inp) {} +function pushSoundToHistory(seed) { } diff --git a/src/js/parser.js b/src/js/parser.js index b32bdda5e..975482c22 100644 --- a/src/js/parser.js +++ b/src/js/parser.js @@ -72,7 +72,7 @@ function logError(str, lineNumber,urgent) { } } -function logWarning(str, lineNumber,urgent) { +function logWarning(str, lineNumber, urgent) { if (compiling||urgent) { if (lineNumber === undefined) { return logWarningNoLine(str,urgent); @@ -90,7 +90,7 @@ function logWarning(str, lineNumber,urgent) { } } -function logWarningNoLine(str,urgent) { +function logWarningNoLine(str, urgent, increaseErrorCount = true) { if (compiling||urgent) { var errorString = '' + str + ''; if (errorStrings.indexOf(errorString) >= 0 && !urgent) { @@ -979,7 +979,9 @@ var codeMirrorFn = function() { spritematrix[spritematrix.length - 1] += ch; // PS+ to fix if (spritematrix[spritematrix.length-1].length>state.sprite_size){ - logError('Sprites must be ' + state.sprite_size + ' wide and ' + state.sprite_size + ' high.', state.lineNumber); + // PS+ + logWarning('Sprites must be 5 wide and 5 high.', state.lineNumber); + //logError('Sprites must be ' + state.sprite_size + ' wide and ' + state.sprite_size + ' high.', state.lineNumber); stream.match(reg_notcommentstart, true); return null; } @@ -1257,7 +1259,7 @@ var codeMirrorFn = function() { } else { match=errorFallbackMatchToken(stream); //depending on whether the verb is directional or not, we log different errors - logError(`Ah I was expecting direction or a sound seed here after ${state.current_line_wip_array[state.current_line_wip_array.length-1][0].toUpperCase()}, but I don't know what to make of "${match[0].trim().toUpperCase()}".`, state.lineNumber); + logError(`Ah I were expecting direction or a sound seed here after ${state.current_line_wip_array[state.current_line_wip_array.length-1][0].toUpperCase()}, but I don't know what to make of "${match[0].trim().toUpperCase()}".`, state.lineNumber); tokentype = 'ERROR'; state.current_line_wip_array.push("ERROR"); } @@ -1272,7 +1274,7 @@ var codeMirrorFn = function() { } else { match=errorFallbackMatchToken(stream); //depending on whether the verb is directional or not, we log different errors - logError(`Ah I was expecting a sound seed here after ${state.current_line_wip_array[state.current_line_wip_array.length-1][0].toUpperCase()}, but I don't know what to make of "${match[0].trim().toUpperCase()}".`, state.lineNumber); + logError(`Ah I were expecting a sound seed here after ${state.current_line_wip_array[state.current_line_wip_array.length-1][0].toUpperCase()}, but I don't know what to make of "${match[0].trim().toUpperCase()}".`, state.lineNumber); tokentype = 'ERROR'; state.current_line_wip_array.push("ERROR"); } @@ -1372,16 +1374,13 @@ var codeMirrorFn = function() { } var foundOthers=[]; - var foundSelves=[]; for (var i=0;i=0){ - if (j!==state.collisionLayers.length-1){ + if (clj.indexOf(candname)>=0){ + if (j!=state.collisionLayers.length-1){ foundOthers.push(j); - } else { - foundSelves.push(j); } } } @@ -1521,7 +1520,7 @@ var codeMirrorFn = function() { else if (state.tokenIndex === 1 || state.tokenIndex === 3) { if (state.names.indexOf(candword)===-1) { // PS+ to fix - logError('Error in win condition: "' + candword + '" is not a valid object name.', state.lineNumber); + logError('Error in win condition: "' + candword.toUpperCase() + '" is not a valid object name.', state.lineNumber); return 'ERROR'; } else { return 'NAME'; @@ -1583,7 +1582,8 @@ var codeMirrorFn = function() { var line = matches[0].trim(); state.tokenIndex = 2; var lastlevel = state.levels[state.levels.length - 1]; - if (lastlevel[0] == '\n') { + // PS+ this change still on borrowed time + if (lastlevel[0] == 'message') { state.levels.push([state.lineNumber, state.currentSection, line]); } else { if (lastlevel.length==0) diff --git a/src/js/sfxr.js b/src/js/sfxr.js index 94ebe692a..a5bdcf9a6 100644 --- a/src/js/sfxr.js +++ b/src/js/sfxr.js @@ -1012,7 +1012,10 @@ function cacheSeed(seed){ } -function playSound(seed) { +function playSound(seed,ignore) { + if (ignore !== true) { + pushSoundToHistory(seed); + } if (muted){ return; } diff --git a/src/tests/resources/errormessage_testdata.js b/src/tests/resources/errormessage_testdata.js index fc6635d96..7fbb39f5c 100644 --- a/src/tests/resources/errormessage_testdata.js +++ b/src/tests/resources/errormessage_testdata.js @@ -32,6 +32,10 @@ var errormessage_testdata = [ `You can't have anything in with an ellipsis. Sorry.`, ["title Block Faker\nauthor Droqen\nhomepage www.droqen.com\n\nrequire_player_movement\nkey_repeat_interval 0.12\n\nbackground_color white\ntext_color black\n\ncolor_palette c64\n(\nA port of first several levels of Droqen's beautiful game:\n\nhttps://droqen.itch.io/block-faker\n\n(his game has secrets that this one does not)\n\n)\n\n========\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\nWallBlock\nBlack Grey\n01111\n01111\n01111\n01111\n00001\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 or WallBlock\nBlockObstacle = Player or Wall or WallBlock or Grille or Block or EndPoint\n. = Background\n# = Wall\n@ = WallBlock\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, WallBlock, PinkBlock, BlueBlock, PurpleBlock, OrangeBlock, GreenBlock\n\n======\nRULES\n======\n\n[ > Moveable | Moveable ] -> [ > Moveable | > Moveable ]\n\n[ > Block |... grille | Grille ] -> [ Block |... | Grille ]\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==============\nsome player on endpoint\n=======\nLEVELS\n=======\n\n........########\n################\n########@@@@@###\n####@@@@@...@###\n###@..OO....@@##\n##@..@@@@@....@#\n##@.@..@@@..E@@#\n#@..@.O...@@@@##\n##@...@.P.######\n####@.@@@@######\n####@@##########\n########........\n\nmessage congrats: level 2!\n\n##########\n####R.R###\n#x....#x##\n#xO#O.OxE#\n#xx##.#xx#\n#####R####\n#####P####\nO#########\n\nmessage congrats: level 3!\n\n......#######...\n.....##P.#####..\n....###....####.\n..#####O...#B..#\n..#####.#.##BB.#\n##EBB..O.O.....#\n..#####.#.#....#\n..######..#G.###\n....####..#.OOx.\n.....###.GG.#x..\n......#######...\n\nmessage congrats: level 4!\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\nmessage congrats: level 5!\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......##......\n\nmessage now go play the real game\n\n",["line 140 : You can't have anything in with an ellipsis. Sorry."],1] ], + [ + `You can't use two ellipses in a single cell match pattern.`, + ["title Block Faker\nauthor Droqen\nhomepage www.droqen.com\n\nrequire_player_movement\nkey_repeat_interval 0.12\n\nbackground_color white\ntext_color black\n\ncolor_palette c64\n(\nA port of first several levels of Droqen's beautiful game:\n\nhttps://droqen.itch.io/block-faker\n\n(his game has secrets that this one does not)\n\n)\n\n========\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\nWallBlock\nBlack Grey\n01111\n01111\n01111\n01111\n00001\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 or WallBlock\nBlockObstacle = Player or Wall or WallBlock or Grille or Block or EndPoint\n. = Background\n# = Wall\n@ = WallBlock\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, WallBlock, PinkBlock, BlueBlock, PurpleBlock, OrangeBlock, GreenBlock\n\n======\nRULES\n======\n\n[ > Moveable | Moveable ] -> [ > Moveable | > Moveable ]\n\n[ > Block |... | grille | ... | Grille ] -> [ Block |...| grille | ... | Grille ]\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==============\nsome player on endpoint\n=======\nLEVELS\n=======\n\n........########\n################\n########@@@@@###\n####@@@@@...@###\n###@..OO....@@##\n##@..@@@@@....@#\n##@.@..@@@..E@@#\n#@..@.O...@@@@##\n##@...@.P.######\n####@.@@@@######\n####@@##########\n########........\n\nmessage congrats: level 2!\n\n##########\n####R.R###\n#x....#x##\n#xO#O.OxE#\n#xx##.#xx#\n#####R####\n#####P####\nO#########\n\nmessage congrats: level 3!\n\n......#######...\n.....##P.#####..\n....###....####.\n..#####O...#B..#\n..#####.#.##BB.#\n##EBB..O.O.....#\n..#####.#.#....#\n..######..#G.###\n....####..#.OOx.\n.....###.GG.#x..\n......#######...\n\nmessage congrats: level 4!\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\nmessage congrats: level 5!\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......##......\n\nmessage now go play the real game\n\n",["line 140 : You can't use two ellipses in a single cell match pattern. If you really want to, please implement it yourself and send me a patch :)"],1] + ], [ `You named an object "^", but this is a keyword. Don't do that!`, ["title Microban\nauthor David Skinner\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\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^ = Target\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*O.#\n##.*P*.#\n#..O*O.#\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",["line 68 : You named an object \"^\", but this is a keyword. Don't do that!"],0] @@ -46,7 +50,7 @@ var errormessage_testdata = [ ], [ `Game title is too long to fit on screen, truncating to three lines.`, - ["title constellation z asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf \nauthor increpare\nhomepage www.increpare.com\n\n(a port of the first few levels of my game, the full version of which is\nhttp://ded.increpare.com/~locus/constellationz/\n)\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nBorderTile\nRed\n\nTeleport\nwhite\n\ntarget\nblue\n.....\n.000.\n.000.\n.000.\n.....\n\nPlayer\nPINK\n.....\n.000.\n.000.\n.000.\n.....\n\nAltPlayer\nBlack\n\n=======\nLEGEND\n=======\n\n# = BorderTile\n. = Background\nP = Player\nO = Teleport\nt = target\n\n\n=========\nSOUNDS\n=========\nsfx1 44641500 (teleport)\nstartgame 26858107\nstartlevel 34443107\nendlevel 34292905\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTeleport,BorderTile, target\nPlayer, AltPlayer\n\n======\nRULES\n======\n\nlate [ player Teleport ] -> [ altplayer Teleport ] sfx1\n\nlate [ altplayer Teleport ] [ Teleport no altplayer ] -> [altplayer teleport] [Teleport player ]\nlate [altplayer ] -> []\n\nlate [ player bordertile ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nsome player\nall player on target\nall target on player\n\n=======\nLEVELS\n=======\n\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#..P....t....#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#..P.o..O..t.#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\n##############\n#............#\n#............#\n#............#\n#............#\n#.......O.t..#\n#............#\n#..P....O....#\n#............#\n#.......O.t..#\n#............#\n#............#\n#............#\n##############\n\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#..P...O...t.#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\n\n##############\n#............#\n#............#\n#.......O.t..#\n#............#\n#.......O.t..#\n#............#\n#..P....O.t..#\n#............#\n#.......O.t..#\n#............#\n#.......O....#\n#............#\n##############\n\n###################################\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#..P.P.......OOOOOOOOO............#\n#................O........T.T.....#\n#..P.P.......O.O.O.O.O............#\n#.........................T.T.....#\n#............O.O.O.O.O............#\n#............O.......O............#\n#............OOOOOOOOO............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n###################################\n\n\n####################################\n#..................................#\n#...........p......................#\n#..................................#\n#.................o................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#............o....O....t.........t.#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\n\n####################################\n#..................................#\n#..................................#\n#....p.............................#\n#..................................#\n#..................................#\n#.......o....o....t....t....t......#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#.......o....o....t.........t......#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\n\n\n##############\n#............#\n#............#\n#............#\n#......o.....#\n#............#\n#......o.....#\n#............#\n#....o...o...#\n#............#\n#............#\n#............#\n#............#\n#......P.....#\n#............#\n#............#\n#....t...t...#\n#............#\n#....t.t.t...#\n#............#\n#....t...t...#\n#............#\n#............#\n#............#\n##############\n\n\n\n####################################\n#..................................#\n#..............tt...tt...tt........#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#.............o....o..o............#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#................pppp..............#\n#..................................#\n#..................................#\n####################################\n\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#.p..........#\n#.p..........#\n#.p..........#\n#.p..........#\n#.p....o.....#\n#.p..........#\n#.p....o..t..#\n#.p..........#\n#.p..........#\n#.p....o.....#\n#.p..........#\n#.p..........#\n#.p..........#\n#.p..........#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\nmessage congratulations!\n\n",["line 1 : Game title is too long to fit on screen, truncating to three lines."],0] + ["title constellation z asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf asdf \nauthor increpare\nhomepage www.increpare.com\n\n(a port of the first few levels of my game, the full version of which is\nhttp://ded.increpare.com/~locus/constellationz/\n)\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nBorderTile\nRed\n\nTeleport\nwhite\n\ntarget\nblue\n.....\n.000.\n.000.\n.000.\n.....\n\nPlayer\nPINK\n.....\n.000.\n.000.\n.000.\n.....\n\nAltPlayer\nBlack\n\n=======\nLEGEND\n=======\n\n# = BorderTile\n. = Background\nP = Player\nO = Teleport\nt = target\n\n\n=========\nSOUNDS\n=========\nsfx1 44641500 (teleport)\nstartgame 26858107\nstartlevel 34443107\nendlevel 34292905\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTeleport,BorderTile, target\nPlayer, AltPlayer\n\n======\nRULES\n======\n\nlate [ player Teleport ] -> [ altplayer Teleport ] sfx1\n\nlate [ altplayer Teleport ] [ Teleport no altplayer ] -> [altplayer teleport] [Teleport player ]\nlate [altplayer ] -> []\n\nlate [ player bordertile ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nsome player\nall player on target\nall target on player\n\n=======\nLEVELS\n=======\n\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#..P....t....#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#..P.o..O..t.#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\n##############\n#............#\n#............#\n#............#\n#............#\n#.......O.t..#\n#............#\n#..P....O....#\n#............#\n#.......O.t..#\n#............#\n#............#\n#............#\n##############\n\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#..P...O...t.#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\n\n##############\n#............#\n#............#\n#.......O.t..#\n#............#\n#.......O.t..#\n#............#\n#..P....O.t..#\n#............#\n#.......O.t..#\n#............#\n#.......O....#\n#............#\n##############\n\n###################################\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#..P.P.......OOOOOOOOO............#\n#................O........T.T.....#\n#..P.P.......O.O.O.O.O............#\n#.........................T.T.....#\n#............O.O.O.O.O............#\n#............O.......O............#\n#............OOOOOOOOO............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n#............O...O...O............#\n###################################\n\n\n####################################\n#..................................#\n#...........p......................#\n#..................................#\n#.................o................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#............o....O....t.........t.#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\n\n####################################\n#..................................#\n#..................................#\n#....p.............................#\n#..................................#\n#..................................#\n#.......o....o....t....t....t......#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#.......o....o....t.........t......#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\n\n\n##############\n#............#\n#............#\n#............#\n#......o.....#\n#............#\n#......o.....#\n#............#\n#....o...o...#\n#............#\n#............#\n#............#\n#............#\n#......P.....#\n#............#\n#............#\n#....t...t...#\n#............#\n#....t.t.t...#\n#............#\n#....t...t...#\n#............#\n#............#\n#............#\n##############\n\n\n\n####################################\n#..................................#\n#..............tt...tt...tt........#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#.............o....o..o............#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#................pppp..............#\n#..................................#\n#..................................#\n####################################\n\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#.p..........#\n#.p..........#\n#.p..........#\n#.p..........#\n#.p....o.....#\n#.p..........#\n#.p....o..t..#\n#.p..........#\n#.p..........#\n#.p....o.....#\n#.p..........#\n#.p..........#\n#.p..........#\n#.p..........#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\nmessage congratulations!\n\n",["Game title is too long to fit on screen, truncating to three lines."],1] ], [ `You probably meant to put a space after 'message' innit.`, @@ -158,7 +162,7 @@ var errormessage_testdata = [ ], [ `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.222.\n.323.\n.222.\n.222.\n.2.2.\n\nProtector\n#9CBD0F #8CAD0F #306230 #0F380F\n.333.\n.232.\n.333.\n.333.\n.3.3.\n\nProtectorSolo\n#9CBD0F #8CAD0F #306230 #0F380F\n.333.\n.232.\n.333.\n.333.\n.3.3.\n\nvictimSolo\n#9CBD0F #8CAD0F #306230 #0F380F\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\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",["line 168 : Object \"PLAYER\" included in multiple collision layers ( layers #4, #5 ). You should fix this!","line 168 : Object \"WALL\" included in multiple collision layers ( layers #4, #5 ). You should fix this!"],0] + ["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.222.\n.323.\n.222.\n.222.\n.2.2.\n\nProtector\n#9CBD0F #8CAD0F #306230 #0F380F\n.333.\n.232.\n.333.\n.333.\n.3.3.\n\nProtectorSolo\n#9CBD0F #8CAD0F #306230 #0F380F\n.333.\n.232.\n.333.\n.333.\n.3.3.\n\nvictimSolo\n#9CBD0F #8CAD0F #306230 #0F380F\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\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",["line 168 : Object \"VICTIMSOLO\" included in multiple collision layers ( layers #4, #5 ). You should fix this!","line 168 : Object \"WALL\" included in multiple collision layers ( layers #4, #5 ). You should fix this!"],0] ], [ `slidings`, @@ -481,7 +485,7 @@ var errormessage_testdata = [ ], [ "#805 untitled test (Error producing test)", - ["Objects are fun to use.\n\nBackground .\nBlack\n\nPlayer P\nGreen\n\nLEGEND\nSOUNDS\nCOLLISIONLAYERS\n\nBackground\nPlayer\n\nRULES\nWINCONDITIONS\n\nNo Fun\n\nLEVELS\n\nP...\n",["line 1 : Only comments should go after a section name (\"OBJECTS\") on a line.","line 19 : Error in win condition: \"FUN\" is not a valid object name.","line 19 : Unwelcome term \"fun\" found in win condition. I don't know what I'm supposed to do with this."],3] + ["Objects are fun to use.\n\nBackground .\nBlack\n\nPlayer P\nGreen\n\nLEGEND\nSOUNDS\nCOLLISIONLAYERS\n\nBackground\nPlayer\n\nRULES\nWINCONDITIONS\n\nNo Fun\n\nLEVELS\n\nP...\n",["line 1 : Only comments should go after a section name (\"OBJECTS\") on a line.","line 19 : Error in win condition: \"FUN\" is not a valid object name.","line 19 : Unwelcome term \"fun\" found in win condition. Win conditions objects have to be objects or properties (defined using \"or\", in terms of other properties)"],3] ], [ "#809 stress-test for legend+comments", @@ -513,7 +517,7 @@ var errormessage_testdata = [ ], [ "Testing error messages for incorrect semantic in the sounds section", - ["title Simple Block Pushing Game\nauthor David Skinner\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\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 up cat 31232\nCrate create up 31232\nCrate create cat 31232\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 67 : Ah I was expecting direction or a sound seed here after UP, but I don't know what to make of \"CAT\".","line 68 : Ah I was expecting a sound seed here after CREATE, but I don't know what to make of \"UP\".","line 69 : Ah I was expecting a sound seed here after CREATE, but I don't know what to make of \"CAT\"."],3] + ["title Simple Block Pushing Game\nauthor David Skinner\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\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 up cat 31232\nCrate create up 31232\nCrate create cat 31232\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 67 : Ah I were expecting direction or a sound seed here after UP, but I don't know what to make of \"CAT\".","line 68 : Ah I were expecting a sound seed here after CREATE, but I don't know what to make of \"UP\".","line 69 : Ah I were expecting a sound seed here after CREATE, but I don't know what to make of \"CAT\"."],3] ], [ "Sound section comment insertion stress test", @@ -523,364 +527,4 @@ var errormessage_testdata = [ "Sound effect already declared message", ["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 ten 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 234234 \nsfx0 3295707 (player jump)\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 10\n\n###################\n#.................#\n#.................#\n#............#....#\n#............#....#\n#.......#...##....#\n#..P....#...##..E.#\n###################\n###################\n..#...#...#...#...#\n#...#...#...#...#..\n###################\n###################\n###################\n###################\n\nmessage level 2 of 10\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 10\n\n###################\n#........#........#\n#........#........#\n###.............###\n#.................#\n#.....P.....E.....#\n#....###...###....#\n#..######.######..#\n#.......#.#.......#\n#.......###.......#\n###.............###\n#.................#\n#.................#\n######.......######\n###################\n\nmessage level 4 of 10\n\n###################\n#..#...........#..#\n#..#.....E.....#..#\n#..#....###....#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#.....P.....#..#\n###################\n\nmessage level 5 of 10\n\n###################\n#.................#\n#.................#\n#.................#\n#...C........C....#\n#..###......###...#\n#.................#\n#...P........E....#\n#########.##.#.####\n###################\n#.................#\n#.................#\n#.................#\n###################\n\nmessage level 6 of 10\n\n###################\n#..#.#....#..#....#\n#..#.#.E..#..######\n#########.#..#....#\n#....#..#.####....#\n#....#..#....######\n#########....#.#..#\n#....#..#....#.#..#\n#########.#########\n#....#....#..#....#\n######....#..#....#\n#.#..#....#########\n#.#..####.#..#..#.#\n#.#..#..#P#..#..#.#\n###################\n\nmessage level 7 of 10\n\n###################\n#.................#\n#...............C.#\n#............####.#\n#.................#\n#.......#...#.#...#\n#..P....#...#.#E..#\n#.###############.#\n#.###############.#\n#.#...#...#...#...#\n#...#...#...#...#.#\n###################\n#.................#\n#.................#\n###################\n\nmessage level 8 of 10\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 10\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 10\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#.E..........C....#\n####.##.....###...#\n#######.....###...#\n#.................#\n#.................#\n#...P.............#\n#..#############..#\n###################\n#.................#\n###################\n\n\nmessage congratulations!\n\n",["line 121 : SFX0 already declared."],0] ], - [ - "#855 Pushing It", - ["title Pushing It\nauthor Jack Lance\ntext_color #A20021\nbackground_color #C1FBC6A\nverbose_logging\nagain_interval 0.1\n\n========\nOBJECTS\n========\n\nBackground1\n#CCCCCC\n\nBackground2\n#C1FBC6\n\ncrateactivatedcoord00\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord01\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord02\ntransparent\n\ncrateactivatedcoord03\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord04\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord10\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord11\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord12\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord13\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord14\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord20\ntransparent\n\ncrateactivatedcoord21\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord22\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord23\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord24\ntransparent\n\ncrateactivatedcoord30\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord31\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord32\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord33\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord34\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord40\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedcoord41\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord42\ntransparent\n\ncrateactivatedcoord43\n#555555 #A20021 #FF0021 #668866\n00000\n00000\n00000\n00000\n00000\n\ncrateactivatedcoord44\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset1coord00\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord01\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord02\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord03\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord04\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord10\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord11\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord12\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord13\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord14\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord20\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord21\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord22\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord23\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord24\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord30\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord31\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord32\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord33\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord34\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord40\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord41\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord42\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord43\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset1coord44\n#555555 #A20021 #FF0021 #668866\n22...\n22...\n22...\n22...\n22...\n\ncrateactivatedyoffset2coord00\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord01\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord02\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord03\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord04\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord10\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord11\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord12\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord13\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord14\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord20\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord21\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord22\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord23\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord24\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord30\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord31\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord32\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord33\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord34\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord40\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord41\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord42\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord43\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset2coord44\n#555555 #A20021 #FF0021 #668866\n11111\n11111\n11111\n11111\n11111\n\ncrateactivatedyoffset3coord00\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord01\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord02\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord03\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord04\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord10\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord11\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord12\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord13\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord14\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord20\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord21\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord22\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord23\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord24\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord30\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord31\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord32\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord33\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord34\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord40\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord41\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord42\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord43\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset3coord44\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\ncrateactivatedyoffset4coord00\n#555555 #A20021 #FF0021 #668866\n22222\n22222\n22222\n22222\n22222\n\n",["No collision layers defined. All objects need to be in collision layers.","you have to define something to be the background","error, didn't find any object called player, either in the objects section, or the legends section. there must be a player!","line 12 : Object \"BACKGROUND1\" has been defined, but not assigned to a layer.","line 15 : Object \"BACKGROUND2\" has been defined, but not assigned to a layer.","line 18 : Object \"CRATEACTIVATEDCOORD00\" has been defined, but not assigned to a layer.","line 26 : Object \"CRATEACTIVATEDCOORD01\" has been defined, but not assigned to a layer.","line 34 : Object \"CRATEACTIVATEDCOORD02\" has been defined, but not assigned to a layer.","line 37 : Object \"CRATEACTIVATEDCOORD03\" has been defined, but not assigned to a layer.","line 45 : Object \"CRATEACTIVATEDCOORD04\" has been defined, but not assigned to a layer.","line 53 : Object \"CRATEACTIVATEDCOORD10\" has been defined, but not assigned to a layer.","line 61 : Object \"CRATEACTIVATEDCOORD11\" has been defined, but not assigned to a layer.","line 69 : Object \"CRATEACTIVATEDCOORD12\" has been defined, but not assigned to a layer.","line 77 : Object \"CRATEACTIVATEDCOORD13\" has been defined, but not assigned to a layer.","line 85 : Object \"CRATEACTIVATEDCOORD14\" has been defined, but not assigned to a layer.","line 93 : Object \"CRATEACTIVATEDCOORD20\" has been defined, but not assigned to a layer.","line 96 : Object \"CRATEACTIVATEDCOORD21\" has been defined, but not assigned to a layer.","line 104 : Object \"CRATEACTIVATEDCOORD22\" has been defined, but not assigned to a layer.","line 112 : Object \"CRATEACTIVATEDCOORD23\" has been defined, but not assigned to a layer.","line 120 : Object \"CRATEACTIVATEDCOORD24\" has been defined, but not assigned to a layer.","line 123 : Object \"CRATEACTIVATEDCOORD30\" has been defined, but not assigned to a layer.","line 131 : Object \"CRATEACTIVATEDCOORD31\" has been defined, but not assigned to a layer.","line 139 : Object \"CRATEACTIVATEDCOORD32\" has been defined, but not assigned to a layer.","line 147 : Object \"CRATEACTIVATEDCOORD33\" has been defined, but not assigned to a layer.","line 155 : Object \"CRATEACTIVATEDCOORD34\" has been defined, but not assigned to a layer.","line 163 : Object \"CRATEACTIVATEDCOORD40\" has been defined, but not assigned to a layer.","line 171 : Object \"CRATEACTIVATEDCOORD41\" has been defined, but not assigned to a layer.","line 179 : Object \"CRATEACTIVATEDCOORD42\" has been defined, but not assigned to a layer.","line 182 : Object \"CRATEACTIVATEDCOORD43\" has been defined, but not assigned to a layer.","line 190 : Object \"CRATEACTIVATEDCOORD44\" has been defined, but not assigned to a layer.","line 198 : Object \"CRATEACTIVATEDYOFFSET1COORD00\" has been defined, but not assigned to a layer.","line 206 : Object \"CRATEACTIVATEDYOFFSET1COORD01\" has been defined, but not assigned to a layer.","line 214 : Object \"CRATEACTIVATEDYOFFSET1COORD02\" has been defined, but not assigned to a layer.","line 222 : Object \"CRATEACTIVATEDYOFFSET1COORD03\" has been defined, but not assigned to a layer.","line 230 : Object \"CRATEACTIVATEDYOFFSET1COORD04\" has been defined, but not assigned to a layer.","line 238 : Object \"CRATEACTIVATEDYOFFSET1COORD10\" has been defined, but not assigned to a layer.","line 246 : Object \"CRATEACTIVATEDYOFFSET1COORD11\" has been defined, but not assigned to a layer.","line 254 : Object \"CRATEACTIVATEDYOFFSET1COORD12\" has been defined, but not assigned to a layer.","line 262 : Object \"CRATEACTIVATEDYOFFSET1COORD13\" has been defined, but not assigned to a layer.","line 270 : Object \"CRATEACTIVATEDYOFFSET1COORD14\" has been defined, but not assigned to a layer.","line 278 : Object \"CRATEACTIVATEDYOFFSET1COORD20\" has been defined, but not assigned to a layer.","line 286 : Object \"CRATEACTIVATEDYOFFSET1COORD21\" has been defined, but not assigned to a layer.","line 294 : Object \"CRATEACTIVATEDYOFFSET1COORD22\" has been defined, but not assigned to a layer.","line 302 : Object \"CRATEACTIVATEDYOFFSET1COORD23\" has been defined, but not assigned to a layer.","line 310 : Object \"CRATEACTIVATEDYOFFSET1COORD24\" has been defined, but not assigned to a layer.","line 318 : Object \"CRATEACTIVATEDYOFFSET1COORD30\" has been defined, but not assigned to a layer.","line 326 : Object \"CRATEACTIVATEDYOFFSET1COORD31\" has been defined, but not assigned to a layer.","line 334 : Object \"CRATEACTIVATEDYOFFSET1COORD32\" has been defined, but not assigned to a layer.","line 342 : Object \"CRATEACTIVATEDYOFFSET1COORD33\" has been defined, but not assigned to a layer.","line 350 : Object \"CRATEACTIVATEDYOFFSET1COORD34\" has been defined, but not assigned to a layer.","line 358 : Object \"CRATEACTIVATEDYOFFSET1COORD40\" has been defined, but not assigned to a layer.","line 366 : Object \"CRATEACTIVATEDYOFFSET1COORD41\" has been defined, but not assigned to a layer.","line 374 : Object \"CRATEACTIVATEDYOFFSET1COORD42\" has been defined, but not assigned to a layer.","line 382 : Object \"CRATEACTIVATEDYOFFSET1COORD43\" has been defined, but not assigned to a layer.","line 390 : Object \"CRATEACTIVATEDYOFFSET1COORD44\" has been defined, but not assigned to a layer.","line 398 : Object \"CRATEACTIVATEDYOFFSET2COORD00\" has been defined, but not assigned to a layer.","line 406 : Object \"CRATEACTIVATEDYOFFSET2COORD01\" has been defined, but not assigned to a layer.","line 414 : Object \"CRATEACTIVATEDYOFFSET2COORD02\" has been defined, but not assigned to a layer.","line 422 : Object \"CRATEACTIVATEDYOFFSET2COORD03\" has been defined, but not assigned to a layer.","line 430 : Object \"CRATEACTIVATEDYOFFSET2COORD04\" has been defined, but not assigned to a layer.","line 438 : Object \"CRATEACTIVATEDYOFFSET2COORD10\" has been defined, but not assigned to a layer.","line 446 : Object \"CRATEACTIVATEDYOFFSET2COORD11\" has been defined, but not assigned to a layer.","line 454 : Object \"CRATEACTIVATEDYOFFSET2COORD12\" has been defined, but not assigned to a layer.","line 462 : Object \"CRATEACTIVATEDYOFFSET2COORD13\" has been defined, but not assigned to a layer.","line 470 : Object \"CRATEACTIVATEDYOFFSET2COORD14\" has been defined, but not assigned to a layer.","line 478 : Object \"CRATEACTIVATEDYOFFSET2COORD20\" has been defined, but not assigned to a layer.","line 486 : Object \"CRATEACTIVATEDYOFFSET2COORD21\" has been defined, but not assigned to a layer.","line 494 : Object \"CRATEACTIVATEDYOFFSET2COORD22\" has been defined, but not assigned to a layer.","line 502 : Object \"CRATEACTIVATEDYOFFSET2COORD23\" has been defined, but not assigned to a layer.","line 510 : Object \"CRATEACTIVATEDYOFFSET2COORD24\" has been defined, but not assigned to a layer.","line 518 : Object \"CRATEACTIVATEDYOFFSET2COORD30\" has been defined, but not assigned to a layer.","line 526 : Object \"CRATEACTIVATEDYOFFSET2COORD31\" has been defined, but not assigned to a layer.","line 534 : Object \"CRATEACTIVATEDYOFFSET2COORD32\" has been defined, but not assigned to a layer.","line 542 : Object \"CRATEACTIVATEDYOFFSET2COORD33\" has been defined, but not assigned to a layer.","line 550 : Object \"CRATEACTIVATEDYOFFSET2COORD34\" has been defined, but not assigned to a layer.","line 558 : Object \"CRATEACTIVATEDYOFFSET2COORD40\" has been defined, but not assigned to a layer.","line 566 : Object \"CRATEACTIVATEDYOFFSET2COORD41\" has been defined, but not assigned to a layer.","line 574 : Object \"CRATEACTIVATEDYOFFSET2COORD42\" has been defined, but not assigned to a layer.","line 582 : Object \"CRATEACTIVATEDYOFFSET2COORD43\" has been defined, but not assigned to a layer.","line 590 : Object \"CRATEACTIVATEDYOFFSET2COORD44\" has been defined, but not assigned to a layer.","line 598 : Object \"CRATEACTIVATEDYOFFSET3COORD00\" has been defined, but not assigned to a layer.","line 606 : Object \"CRATEACTIVATEDYOFFSET3COORD01\" has been defined, but not assigned to a layer.","line 614 : Object \"CRATEACTIVATEDYOFFSET3COORD02\" has been defined, but not assigned to a layer.","line 622 : Object \"CRATEACTIVATEDYOFFSET3COORD03\" has been defined, but not assigned to a layer.","line 630 : Object \"CRATEACTIVATEDYOFFSET3COORD04\" has been defined, but not assigned to a layer.","line 638 : Object \"CRATEACTIVATEDYOFFSET3COORD10\" has been defined, but not assigned to a layer.","line 646 : Object \"CRATEACTIVATEDYOFFSET3COORD11\" has been defined, but not assigned to a layer.","line 654 : Object \"CRATEACTIVATEDYOFFSET3COORD12\" has been defined, but not assigned to a layer.","line 662 : Object \"CRATEACTIVATEDYOFFSET3COORD13\" has been defined, but not assigned to a layer.","line 670 : Object \"CRATEACTIVATEDYOFFSET3COORD14\" has been defined, but not assigned to a layer.","line 678 : Object \"CRATEACTIVATEDYOFFSET3COORD20\" has been defined, but not assigned to a layer.","line 686 : Object \"CRATEACTIVATEDYOFFSET3COORD21\" has been defined, but not assigned to a layer.","line 694 : Object \"CRATEACTIVATEDYOFFSET3COORD22\" has been defined, but not assigned to a layer.","line 702 : Object \"CRATEACTIVATEDYOFFSET3COORD23\" has been defined, but not assigned to a layer.","line 710 : Object \"CRATEACTIVATEDYOFFSET3COORD24\" has been defined, but not assigned to a layer.","line 718 : Object \"CRATEACTIVATEDYOFFSET3COORD30\" has been defined, but not assigned to a layer.","line 726 : Object \"CRATEACTIVATEDYOFFSET3COORD31\" has been defined, but not assigned to a layer.","line 734 : Object \"CRATEACTIVATEDYOFFSET3COORD32\" has been defined, but not assigned to a layer.","line 742 : Object \"CRATEACTIVATEDYOFFSET3COORD33\" has been defined, but not assigned to a layer.","line 750 : Object \"CRATEACTIVATEDYOFFSET3COORD34\" has been defined, but not assigned to a layer.","line 758 : Object \"CRATEACTIVATEDYOFFSET3COORD40\" has been defined, but not assigned to a layer."],101] - ], - [ - "#863 Extended Bodies:Multiple Parallel Players, Multiple Extended Object", - ["title Extended Bodies:Multiple Parallel Players, Multiple Extended Object\nauthor Anonymous\nhomepage www.puzzlescript.net\n\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground \nwhite \n\nTarget \nDarkBlue \n\nWall \nDarkGrey\n\nPlayer\nBlue\n..0..\n..0.0\n00000\n.000.\n.0.0.\n\nShadow\nBlack\n..0..\n0.0..\n00000\n.000.\n.0.0.\n\n( three multi-cells blocks )\nCrate \norange\n\nChest\ngreen\n\nBox\nred\n\n( 1-cell small block )\nSmall\ndarkred\n.....\n.000.\n.000.\n.000.\n.....\n\n( sticky, multicellular block when in contact )\nGlue\npink\n.000.\n00000\n00000\n00000\n.000.\n\n( a flag to know what is allowed move )\nWanna_Move\n#ff00ff\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n( all things that can move and push blocks )\nMover = Player or Player \n\n. = Background\n# = Wall\nP = Player\nS = Shadow\n* = Crate\n+ = Box\n% = Chest\no = Small\ng = Glue\n\n( blocks that can be moved by the player )\nMovable = Crate or Box or Chest or Small or Glue\n\n\n( things that can stop a movement if they are stationary )\nObstacle = Wall or Mover\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nObstacle\nWanna_Move\nMovable\nShadow\n\n======\nRULES \n====== \n\n[ > player ] [ stationary shadow ] -> [ > player ] [ < shadow ]\n\n( 1. Propagate movements forward )\n[ > Mover | Movable ] -> [ > Mover | > Movable ]\n+ [ > Box ] [ Box ] -> [ > Box ] [ > Box ]\n+ [ > Crate ] [ Crate ] -> [ > Crate ] [ > Crate ]\n+ [ > Chest ] [ Chest ] -> [ > Chest ] [ > Chest ]\n+ [ moving Glue | Glue ] -> [ moving Glue | moving Glue ]\n\n( 2. Propagate obstructions backwards )\n[ > Mover | stationary Obstacle ] -> [ stationary Mover | Obstacle ]\n+ [ > Crate ] [ stationary Crate ] -> [ stationary Crate ] [ Crate ]\n+ [ > Box ] [ stationary Box ] -> [ stationary Box ] [ Box ]\n+ [ > Chest ] [ stationary Chest ] -> [ stationary Chest ] [ Chest ]\n+ [ moving Glue | stationary Glue ] -> [ stationary Glue | Glue ]\n\n( 3. remove all movement, keep a flag )\n[ > Movable ] -> [ Movable wanna_move ]\n\n( 4. propagate movement only on wanna_move things )\n( ie redo step 1 but with WANNA_MOVE added to the first line below )\n[ > Mover | Movable WANNA_MOVE ] -> [ > Mover | > Movable ]\n+ [ > Box ] [ Box ] -> [ > Box ] [ > Box ]\n+ [ > Crate ] [ Crate ] -> [ > Crate ] [ > Crate ]\n+ [ > Chest ] [ Chest ] -> [ > Chest ] [ > Chest ]\n+ [ moving Glue | Glue ] -> [ moving Glue | moving Glue ]\n\n( 5. cleanup, remove flag )\n[ wanna_move ] -> [ ]\n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\n###################\n#.................#\n#.................#\n#...*..g.g.#......#\n#...*......#...g###\n#...*...o.%%%.....#\n#...+++.o.%.......#\n#....+....%%%.....#\n#....+.....P...g..#\n#....p.gg.........#\n###################\n\n",["line 78 : You're repeating the object PLAYER here multiple times on the RHS. This makes no sense. Don't do that."],0] - ], - [ - "Startloop/endloop errors", - ["title Startloop/endloop errors\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\nstartloop\nstartloop\n[ > Player | Crate ] -> [ > Player | > Crate ] \nendloop\nendloop\nstartloop\n\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 82 : Found a STARTLOOP, but I'm already inside a loop? (Puzzlescript can't nest loops, FWIW).","line 84 : Found an ENDLOOP, but I'm not in a loop?","line 86 : Yo I found a STARTLOOP without a corresponding ENDLOOP."],3] - ], - [ - "You're talking about TAWETWAT but it's not defined anywhere", - ["\ntitle error message test\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\ntest = tawetwat\n=======\nSOUNDS\n=======\n\nCrate move 36772507\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\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 61 : You're talking about TAWETWAT but it's not defined anywhere."],1] - ], - [ - "broken legend syntax error", - ["title broken legend syntax error\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\nt\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 53 : Incorrect format of legend - should be one of \"A = B\", \"A = B or C [ or D ...]\", \"A = B and C [ and D ...]\"."],1] - ], - [ - "Cannot define an aggregate in terms of properties", - ["title Cannot define an aggregate in terms of properties\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n1 = crate or target\n2 = 1 and player\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 61 : Cannot define an aggregate (using 'and') in terms of properties (something that uses 'or').","Trying to define aggregate \"2\" in terms of property \"1\"."],2] - ], - [ - "Cannot define an property in terms of aggregates.", - ["title Cannot define an property in terms of aggregates\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n1 = crate and target\n2 = 1 or player\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 61 : Cannot define a property (something defined in terms of 'or') in terms of aggregates (something that uses 'and').","Trying to define property \"2\" in terms of aggregate \"1\"."],2] - ], - [ - "Cannot Duplicate Sections", - ["\ntitle Cannot Duplicate Sections\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 11 : cannot duplicate sections (you tried to duplicate \"OBJECTS\").","line 11 : section \"OBJECTS\" must be the first section"],2] - ], - [ - "OBJECTS must be the first section", - ["Died on test #1 at http://localhost:8000/src/tests/resources/tests.js:36:2: Error/Warning message testdata has wrong number of fields, invalid. Accidentally pasted in level recording data?\n\n\ntitle OBJECTS must be the first section\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nLEGEND\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 1 : Unrecognised stuff in the prelude.","line 8 : section \"LEGEND\" is out of order, must follow \"OBJECTS\" (or it could be that the section \"OBJECTS\"is just missing totally. You have to include all section headings, even if the section itself is empty).","line 11 : section \"OBJECTS\" must be the first section","line 55 : cannot duplicate sections (you tried to duplicate \"LEGEND\")."],4] - ], - [ - "WINCONDITIONS is out of order", - ["\n\ntitle WINCONDITIONS is out of order\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 77 : section \"WINCONDITIONS\" is out of order, must follow \"RULES\" (or it could be that the section \"RULES\"is just missing totally. You have to include all section headings, even if the section itself is empty)."],1] - ], - [ - "name B already in use", - ["\ntitle name B already in use\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground b\nlightgreen green\n11111\n01111\n11101\n11111\n10111\n\nb\nred\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 18 : Name \"B\" already in use.","line 18 : Object \"B\" has been defined, but not assigned to a layer."],2] - ], - [ - "Unknown junk in spritematrix", - ["\ntitle Unknown junk in spritematrix\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\n\nTarget\ndarkblue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nbrown darkbrown\n00010\n11111\n01000\n11A11\n00010\n\nPlayer\nblack orange white blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\norange\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 31 : Unknown junk in spritematrix for object WALL.","line 26 : Sprite graphics must be 5 wide and 5 high exactly."],1] - ], - [ - "In the legend, define new items using the equals symbol", - ["title In the legend, define new items using the equals symbol\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 53 : In the legend, define new items using the equals symbol - declarations must look like \"A = B\", \"A = B or C [ or D ...]\", \"A = B and C [ and D ...]\".","line 53 : Incorrect format of legend - should be one of \"A = B\", \"A = B or C [ or D ...]\", \"A = B and C [ and D ...]\", but it looks like you have a dangling \"ERROR\"?","line 90 : Key \".\" not found. Do you need to add it to the legend, or define a new object?","line 91 : Key \".\" not found. Do you need to add it to the legend, or define a new object?","line 92 : Key \".\" not found. Do you need to add it to the legend, or define a new object?","line 93 : Key \".\" not found. Do you need to add it to the legend, or define a new object?"],6] - ], - [ - "Something bad's happening in the LEGEND", - ["title Something bad's happening in the LEGEND\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate '\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 57 : Something bad's happening in the LEGEND"],1] - ], - [ - "Hey! You can't go mixing ANDs and ORs in a single legend entry.", - ["title Hey! You can't go mixing ANDs and ORs in a single legend entry.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target or Background\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 57 : Hey! You can't go mixing ANDs and ORs in a single legend entry."],1] - ], - [ - "Expected and 'AND' or an 'OR' here, but got POO instead.", - ["title Expected and 'AND' or an 'OR' here, but got POO instead.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate poo Target \nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n\n\n",["line 57 : Expected and 'AND' or an 'OR' here, but got POO instead. In the legend, define new items using the equals symbol - declarations must look like 'A = B' or 'A = B and C' or 'A = B or C'.","line 57 : This legend-entry is incorrectly-formatted - it should be one of A = B, A = B or C ( or D ...), A = B and C (and D ...)"],2] - ], - [ - "Was expecting a sound seed here", - ["title Was expecting a sound seed here\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nSfx0 123asdfa \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\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 64 : Was expecting a sound seed here (a number like 123123, like you generate by pressing the buttons above the console panel), but found something else."],1] - ], - [ - "Was expecting a sound event here", - ["title Was expecting a sound event here\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\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'\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\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 64 : Was expecting a sound event (like SFX3, or ENDLEVEL) or an object name, but didn't find either."],0] - ], - [ - "Was expecting a soundverb here", - ["title Was expecting a soundverb here\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate asdfasd 36772507\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\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 64 : Was expecting a soundverb here (MOVE, DESTROY, CANTMOVE, or the like), but found something else."],1] - ], - [ - "COLLISIONLAYERS - error detected - unexpected character ", - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 70 : error detected - unexpected character '"],1] - ], - [ - "\"aggr\" is an aggregate (defined using \"and\"), and cannot be added to a single layer", - ["title \"aggr\" is an aggregate [defined using \"and\"], and cannot be added to a single layer\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\naggr = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\naggr\nPlayer, Wall\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 72 : \"aggr\" is an aggregate (defined using \"and\"), and cannot be added to a single layer because its constituent objects must be able to coexist.","line 57 : Object \"CRATE\" has been defined, but not assigned to a layer.","line 57 : Object \"TARGET\" has been defined, but not assigned to a layer.","line 58 : Object \"CRATE\" has been defined, but not assigned to a layer.","line 58 : Object \"TARGET\" has been defined, but not assigned to a layer.","line 17 : Object \"TARGET\" has been defined, but not assigned to a layer.","line 41 : Object \"CRATE\" has been defined, but not assigned to a layer."],7] - ], - [ - "Cannot add \"CAT\" to a collision layer; it has not been declared.", - ["title Cannot add \"CAT\" to a collision layer; it has not been declared.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground, cat\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\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 70 : Background must be in a layer by itself.","line 70 : Cannot add \"CAT\" to a collision layer; it has not been declared."],2] - ], - [ - "Background must be in a layer by itself.", - ["title Background must be in a layer by itself.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground, target\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\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 70 : Background must be in a layer by itself."],1] - ], - [ - "#2 Background must be in a layer by itself.", - ["title #2 Background must be in a layer by itself.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\n\ntarget, Background\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\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 71 : Background must be in a layer by itself."],1] - ], - [ - "no collision layers defined", - ["title No collision layers defined.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["No collision layers defined. All objects need to be in collision layers.","line 57 : Object \"CRATE\" has been defined, but not assigned to a layer.","line 57 : Object \"TARGET\" has been defined, but not assigned to a layer.","error, didn't find any object called player, either in the objects section, or the legends section. there must be a player!","you have to have a background layer"],5] - ], - [ - "Identifiers cannot appear outside of square brackets in rules", - ["title Identifiers cannot appear outside of square brackets in rules\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\nplayer [ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Objects cannot appear outside of square brackets in rules, only directions can.","line 78 : The start of a rule must consist of some number of directions (possibly 0), before the first bracket, specifying in what directions to look (with no direction specified, it applies in all four directions). It seems you've just entered \"PLAYER\"."],2] - ], - [ - "Name fasd, referred to in a rule, does not exist.", - ["title Name fasd, referred to in a rule, does not exist.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | fasd ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Name \"fasd\", referred to in a rule, does not exist.","line 78 : Error, malformed cell rule - was looking for cell contents, but found \"fasd\". What am I supposed to do with this, eh, please tell me that."],2] - ], - [ - "incorrect format of win condition", - ["title incorrect format of win condition\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target ' Crate \n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 84 : incorrect format of win condition."],1] - ], - [ - "Expecting the start of a win condition", - ["title Expecting the start of a win condition\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nfas\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 84 : Expecting the start of a win condition (\"ALL\",\"SOME\",\"NO\") but got \"FAS'.","line 84 : Unwelcome term \"84\" found in win condition. I don't know what I'm supposed to do with this."],2] - ], - [ - "Expecting the word ON but got CRATE", - ["title Expecting the word ON but got CRATE\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 84 : Expecting the word \"ON\" but got \"CRATE\"."],1] - ], - [ - "Key A not found", - ["title Key A not found\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..(fa)\n#..###\n#@P..#\n#..*a#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 92 : Key \"A\" not found. Do you need to add it to the legend, or define a new object?","line 92 : Error, symbol \"a\", used in map, not found."],2] - ], - [ - "Metadata needs a value", - ["title Metadata needs a value\nauthor David Skinner\nhomepage \n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..(fa)\n#..###\n#@P..#\n#..*a#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 3 : MetaData \"homepage\" needs a value.","line 92 : Key \"A\" not found. Do you need to add it to the legend, or define a new object?","line 92 : Error, symbol \"a\", used in map, not found."],3] - ], - [ - "a sprite cannot have more than 10 colors", - ["title a sprite cannot have more than 10 colors\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN GREEN GREEN GREEN GREEN GREEN GREEN GREEN GREEN 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\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[ > 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\n",["line 10 : a sprite cannot have more than 10 colors. Why you would want more than 10 is beyond me."],1] - ], - [ - "Object GREEN has been defined, but not assigned to a layer", - ["title Object GREEN has been defined, but not assigned to a layer\nauthor David Skinner\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\n00000\n0...0\n0...0\n0...0\n00000\n\ngreen\nblue\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[ > 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\n",["line 50 : Object \"GREEN\" has been defined, but not assigned to a layer."],1] - ], - [ - "ALMOST BLANK test", - ["========\nOBJECTS\n========\n\n\n=======\nLEGEND\n=======\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\n======\nRULES\n======\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n",["No collision layers defined. All objects need to be in collision layers.","you have to define something to be the background","error, didn't find any object called player, either in the objects section, or the legends section. there must be a player!","No levels found. Add some levels!"],4] - ], - [ - "BLANK FILE", - ["\n",["No collision layers defined. All objects need to be in collision layers.","you have to define something to be the background","error, didn't find any object called player, either in the objects section, or the legends section. there must be a player!","No levels found. Add some levels!"],4] - ], - [ - "background cannot be an aggregate", - ["title background cannot be an aggregate\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground1\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\nBackground2\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\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\nbackground = Background1 and Background2\n. = Background1\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\nBackground1\nBackground2\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 63 : background cannot be an aggregate (declared with 'and'), it has to be a simple type, or property (declared in terms of others using 'or')."],1] - ], - [ - "Background objects must be on the same layer", - ["title Background objects must be on the same layer\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground1\nlightgreen green\n11111\n01111\n11101\n11111\n10111\n\nbackground2\nblue\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\nbackground = Background1 or background2\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\n\nTarget, background1\nbackground2\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\n#\n\n",["line 56 : Background objects must be on the same layer"],1] - ], - [ - "Error, symbol A, used in map, not found", - ["title Error, symbol A, used in map, not found\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#Pa#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 100 : Key \"A\" not found. Do you need to add it to the legend, or define a new object?","line 100 : Error, symbol \"a\", used in map, not found."],2] - ], - [ - "Symbol is defined using OR, and therefore ambiguous - it cannot be used in a map. Did you mean to define it in terms of AND?", - ["title Symbol is defined using OR, and therefore ambiguous - it cannot be used in a map. Did you mean to define it in terms of AND?\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\na = Crate or Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#Pa#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 101 : Key \"A\" not found. Do you need to add it to the legend, or define a new object?","line 101 : Error, symbol \"a\" is defined using OR, and therefore ambiguous - it cannot be used in a map. Did you mean to define it in terms of AND?","line 1 : Game title is too long to fit on screen, truncating to three lines."],2] - ], - [ - "Message too long to fit on screen", - ["title Message too long to fit on screen\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage ajfoi wjoiefj ioaw jeiofj aiowefj oiawj eiofj oiawej foiawej oif jawoiefj oiaw ejoifj aweiof joiawej fioa jwoeipfj oipawe jfoipawj eoipfj apoiwe jfpio ajweiopf joipawe jfopiaw jeoipfj aoipwej foipawj eoipf joiapwe jfpioaw epoif jaiowpe jfoipaw ejoipfj aoipwef jipoawe jpfoi jawiopef jioawj eiofaj wopiefj oiapwej fo eiofaj wopiefj oiapwej fo eiofaj wopiefj oiapwej fo eiofaj wopiefj oiapwej fo\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 90 : Message too long to fit on screen."],0] - ], - [ - "A rule has to have an arrow in it.", - ["title A rule has to have an arrow in it.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : A rule has to have an arrow in it. There's no arrow here! Consider reading up about rules - you're clearly doing something weird","line 78 : Error, when specifying a rule, the number of matches (square bracketed bits) on the left hand side of the arrow must equal the number on the right"],2] - ], - [ - "The + symbol, for joining a rule with the group of the previous rule, needs a previous rule to be applied to", - ["title The + symbol, for joining a rule with the group of the previous rule, needs a previous rule to be applied to.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : The \"+\" symbol, for joining a rule with the group of the previous rule, needs a previous rule to be applied to."],1] - ], - [ - "The + symbol, for joining a rule with the group of the previous rule, must be the first symbol on the line", - ["title The + symbol, for joining a rule with the group of the previous rule, must be the first symbol on the line\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ ] -> [ ]\nup + [ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 79 : The \"+\" symbol, for joining a rule with the group of the previous rule, must be the first symbol on the line","line 1 : Game title is too long to fit on screen, truncating to three lines."],1] - ], - [ - "two +s appended to same rule", - ["title two +s appended to same rule\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ ] -> [ ]\n+ + [ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 79 : Two \"+\"s (the \"append to previous rule group\" symbol) applied to the same rule."],1] - ], - [ - "A rule-group can only be marked random by the opening rule in the group", - ["title A rule-group can only be marked random by the opening rule in the group\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ ] -> [ ]\n+ random [ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 79 : A rule-group can only be marked random by the opening rule in the group (aka, a '+' and 'random' can't appear as rule modifiers on the same line). Why? Well, you see \"random\" isn't a property of individual rules, but of whole rule groups. It indicates that a single possible application of some rule from the whole group should be applied at random."],1] - ], - [ - "You cannot use relative directions [^v<>] to indicate in which direction[s] a rule applies", - ["title You cannot use relative directions [^v<>] to indicate in which direction[s] a rule applies\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Name \"^\", referred to in a rule, does not exist.","line 78 : You cannot use relative directions (\"^v<>\") to indicate in which direction(s) a rule applies. Use absolute directions indicators (Up, Down, Left, Right, Horizontal, or Vertical, for instance), or, if you want the rule to apply in all four directions, do not specify directions"],2] - ], - [ - "The start of a rule must consist of some number of directions", - ["title The start of a rule must consist of some number of directions\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Name \"'\", referred to in a rule, does not exist.","line 78 : The start of a rule must consist of some number of directions (possibly 0), before the first bracket, specifying in what directions to look (with no direction specified, it applies in all four directions). It seems you've just entered \"'\"."],2] - ], - [ - "Error, malformed cell rule", - ["title Error, malformed cell rule \nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > [ Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Multiple opening brackets without closing brackets. Something fishy here. Every '[' has to be closed by a ']', and you can't nest them.","line 78 : Error, malformed cell rule - encountered a \"[\"\" before previous bracket was closed"],1] - ], - [ - "Invalid syntax. Directions should be placed at the start of a rule", - ["title Invalid syntax. Directions should be placed at the start of a rule\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] down -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Invalid syntax. Directions should be placed at the start of a rule."],0] - ], - [ - "Movements cannot appear in late rules.", - ["title Movements cannot appear in late rules.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\nlate [ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Movements cannot appear in late rules."],1] - ], - [ - "| should only be used inside cell rows", - ["title | should only be used inside cell rows\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] | -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Janky syntax. \"|\" should only be used inside cell rows (the square brackety bits)."],0] - ], - [ - "In a rule, if you specify a movement, it has to act on an object", - ["title In a rule, if you specify a movement, it has to act on an object.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ > | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : In a rule, if you specify a movement, it has to act on an object.","line 78 : In a rule, each pattern to match on the left must have a corresponding pattern on the right of equal length (number of cells)."],2] - ], - [ - "#2: In a rule, if you specify a movement, it has to act on an object", - ["title #2 In a rule, if you specify a movement, it has to act on an object.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : In a rule, if you specify a movement, it has to act on an object.","line 78 : Error, malformed cell rule - encountered a \"[\"\" before previous bracket was closed","line 78 : In a rule, each pattern to match on the left must have a corresponding pattern on the right of equal length (number of cells)."],3] - ], - [ - "Multiple closing brackets without corresponding opening brackets", - ["title Multiple closing brackets without corresponding opening brackets.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Multiple closing brackets without corresponding opening brackets. Something fishy here. Every '[' has to be closed by a ']', and you can't nest them.","line 78 : Error, when specifying a rule, the number of matches (square bracketed bits) on the left hand side of the arrow must equal the number on the right"],1] - ], - [ - "There's no point in putting an ellipsis at the very start or the end of a rule", - ["title There's no point in putting an ellipsis at the very start or the end of a rule\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ | ... ] -> [ | ]\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : There's no point in putting an ellipsis at the very start or the end of a rule"],1] - ], - [ - "An ellipsis on the right must be matched by one in the corresponding place on the left.", - ["title An ellipsis on the right must be matched by one in the corresponding place on the left.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ | ... ] -> [ ... | ]\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : An ellipsis on the right must be matched by one in the corresponding place on the left.","line 78 : There's no point in putting an ellipsis at the very start or the end of a rule"],2] - ], - [ - "You can't have anything in with an ellipsis. Sorry.", - ["title You can't have anything in with an ellipsis. Sorry.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ... ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : You can't have anything in with an ellipsis. Sorry."],1] - ], - [ - "RANDOM cannot be matched on the left-hand side", - ["title RANDOM cannot be matched on the left-hand side\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ random Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : RANDOM cannot be matched on the left-hand side, it can only appear on the right"],1] - ], - [ - "An ellipsis on the right must be matched by one in the corresponding place on the left.", - ["title An ellipsis on the right must be matched by one in the corresponding place on the left.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ ... | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : An ellipsis on the right must be matched by one in the corresponding place on the left."],1] - ], - [ - "123123 You can't have anything in with an ellipsis. Sorry.", - ["title 123123 You can't have anything in with an ellipsis. Sorry.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ crate ... | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : You can't have anything in with an ellipsis. Sorry."],1] - ], - [ - "This rule may try to spawn a WALL with random, but also requires a CRATE be here, which is on the same layer - they shouldn't be able to coexist!", - ["title This rule may try to spawn a WALL with random, but also requires a CRATE be here, which is on the same layer - they shouldn't be able to coexist!\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\nrange = crate or wall\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate random range ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 79 : This rule may try to spawn a WALL with random, but also requires a CRATE be here, which is on the same layer - they shouldn't be able to coexist!","line 1 : Game title is too long to fit on screen, truncating to three lines."],0] - ], - [ - "WALL and CRATE can never overlap, but this rule requires that to happen, so it's being culled.", - ["title WALL and CRATE can never overlap, but this rule requires that to happen, so it's being culled.\nauthor David Skinner\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\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[ > Player | Crate target wall ] -> [ > 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\n",["line 81 : WALL and CRATE can never overlap, but this rule requires that to happen, so it's being culled."],1] - ], - [ - "There can't be more than 30 rigid groups", - ["title There can't be more than 30 rigid groups\nauthor David Skinner\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\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\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > Player | Crate ] -> [ > Player | > Crate ]\n\nrigid [ > 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\n",["line 141 : There can't be more than 30 rigid groups (rule groups containing rigid members)."],1] - ], - [ - "error, didn't find any object called player", - ["title error, didn't find any object called player\nauthor David Skinner\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\nPlayer1\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player1\n* = Crate\n@ = Crate and Target\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer1, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player1 | Crate ] -> [ > Player1 | > 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\n",["error, didn't find any object called player, either in the objects section, or the legends section. there must be a player!"],1] - ], - [ - "I wasn't expecting anything after the sound declaration", - ["title I wasn't expecting anything after the sound declaration\nauthor David Skinner\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\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 asdasd\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 67 : I wasn't expecting anything after the sound declaration 36772507 on this line, so I don't know what to do with \"ASDASD\" here."],1] - ], - [ - "invalid text_color / background_color", - ["title invalid text_color / background_color\nauthor David Skinner\nhomepage www.puzzlescript.net\ntext_color 21r3r23r2\nbackground_color 21r3r23r2\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\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[ > 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\n",["line 4 : text_color in incorrect format - found 21r3r23r2, but I expect a color name (like 'pink') or hex-formatted color (like '#1412FA'). Defaulting to white.","line 5 : background_color in incorrect format - found 21r3r23r2, but I expect a color name (like 'pink') or hex-formatted color (like '#1412FA'). Defaulting to black."],2] - ], - [ - "Game title is too long to fit on screen, truncating to five lines.", - ["title Game title is too long to fit on screen, truncating to five lines.Simple Block Pushing Game Simple Block Pushing Game Simple Block Pushing Game Simple Block Pushing Game Simple Block Pushing Game Simple Block Pushing Game Simple Block Pushing Game\n\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 1 : Game title is too long to fit on screen, truncating to five lines."],0] - ], - [ - "Author list too long to fit on screen", - ["author David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",["line 1 : Author list too long to fit on screen, truncating to three lines."],0] - ], - [ - "In this rule you're asking me to spawn a random CRATE for you, but that's already a concrete single object.", - ["title In this rule you're asking me to spawn a random CRATE for you, but that's already a concrete single object.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | random Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : In this rule you're asking me to spawn a random CRATE for you, but that's already a concrete single object. You wanna be using random with properties (things defined in terms of OR in the legend) so there's some things to select between.","line 1 : Game title is too long to fit on screen, truncating to three lines."],0] - ], - [ - "putting random before an aggregate has something funny, lol", - ["title putting random before an aggregate has something funny, lol\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\naggr = crate and target\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 | random aggr ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 82 : In this rule you're asking me to spawn a random CRATE for you, but that's already a concrete single object. You wanna be using random with properties (things defined in terms of OR in the legend) so there's some things to select between.","line 82 : In this rule you're asking me to spawn a random TARGET for you, but that's already a concrete single object. You wanna be using random with properties (things defined in terms of OR in the legend) so there's some things to select between."],0] - ], - [ - "MetaData DEBUG doesn't take any parameters, but you went and gave it", - ["title MetaData DEBUG doesn't take any parameters, but you went and gave it \ndebug baff\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 2 : MetaData DEBUG doesn't take any parameters, but you went and gave it \"baff\"."],0] - ], - [ - "metadata parameter errors Part 2", - ["title metadata parameter errors Part 2\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug asd\nnoaction asdf\nnorepeat_action asdf\nnoundo 4324\nnorestart nsfgn\nrequire_player_movement 123\nrun_rules_on_level_start 123\nscanline 4234\nthrottle_movement 434\nverbose_logging 232\n\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 5 : MetaData DEBUG doesn't take any parameters, but you went and gave it \"asd\".","line 6 : MetaData NOACTION doesn't take any parameters, but you went and gave it \"asdf\".","line 7 : MetaData NOREPEAT_ACTION doesn't take any parameters, but you went and gave it \"asdf\".","line 8 : MetaData NOUNDO doesn't take any parameters, but you went and gave it \"4324\".","line 9 : MetaData NORESTART doesn't take any parameters, but you went and gave it \"nsfgn\".","line 10 : MetaData REQUIRE_PLAYER_MOVEMENT doesn't take any parameters, but you went and gave it \"123\".","line 11 : MetaData RUN_RULES_ON_LEVEL_START doesn't take any parameters, but you went and gave it \"123\".","line 12 : MetaData SCANLINE doesn't take any parameters, but you went and gave it \"4234\".","line 13 : MetaData THROTTLE_MOVEMENT doesn't take any parameters, but you went and gave it \"434\".","line 14 : MetaData VERBOSE_LOGGING doesn't take any parameters, but you went and gave it \"232\"."],0] - ], - [ - "Error in win condition", - ["title Error in win condition\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 84 : Error in win condition: I don't know what to do with CRATE."],1] - ], - [ - "late+rigid rules", - ["title late+rigid rules\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\nlate rigid [ Player | Crate ] -> [ Player | ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : Late rules cannot be marked as rigid (rigid rules are all about dealing with the consequences of unresolvable movements, and late rules can't even have movements)."],1] - ], - [ - "Duplicate prelude declarations", - ["title Duplicate prelude declarations\nauthor David Skinner\nhomepage www.puzzlescript.net\nhomepage www.puzzlescript.net\ndebug\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 4 : You've already defined a HOMEPAGE in the prelude on line"],0] - ], - [ - "flickscreen/zoomscreen formatting error #1", - ["title flickscreen/zoomscreen formatting error #1\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nzoomscreen 2ax10\nflickscreen 2ax10\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 6 : Couldn't understand the dimensions given to me (you gave \"2ax10\") - should be of the form AxB.","line 5 : Couldn't understand the dimensions given to me (you gave \"2ax10\") - should be of the form AxB."],0] - ], - [ - "flickscreen/zoomscreen formatting error #2", - ["title flickscreen/zoomscreen formatting error #2\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nzoomscreen 123\nflickscreen 123\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 6 : Dimensions must be of the form AxB.","line 5 : Dimensions must be of the form AxB."],0] - ], - [ - "Dimensions should be positive", - ["title Dimensions should be positive\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nflickscreen -1x-3\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 5 : The dimensions given to me (you gave \"-1x-3\") are baad - they should be > 0."],0] - ], - [ - "Dimensions should be positive and integral", - ["title Dimensions should be positive and integral\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nzoomscreen 0x4.23\nflickscreen 1.4x-4\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 6 : Wasn't able to make sense of \"1.4\" as a (whole number) dimension.","line 6 : The dimension given to me (you gave \"-4\") is baad - it should be greater than 0.","line 6 : Couldn't understand the dimensions given to me (you gave \"1.4x-4\") - should be of the form AxB.","line 5 : The dimension given to me (you gave \"0\") is baad - it should be greater than 0.","line 5 : Wasn't able to make sense of \"4.23\" as a (whole number) dimension.","line 5 : Couldn't understand the dimensions given to me (you gave \"0x4.23\") - should be of the form AxB."],0] - ], - [ - "Match 3 Block Push", - ["title Match 3 Block Push\nauthor increpare\nhomepage www.puzzlescript.net (hi) asfsadf (ho) r23r23r\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate [ Crate | Crate | 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.#O##..##\n##.##.*.#\n#.*..**.#\n#.OOO.#.#\n#.P.....#\n#########\n\n",["line 3 : Error: you can't embed comments in metadata values. Anything after the comment will be ignored."],0] - ], - [ - "Mixing late and non-late in rulegroups", - ["title Mixing late and non-late in rulegroups\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ player ]\n+ late [ crate ] -> [ player ]\n+ [ player ] -> [ crate ]\n\n\nlate [ crate ] -> [ player ]\n+ [ player ] -> [ crate ]\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 82 : Oh gosh you can mix late and non-late rules in a rule-group if you really want to, but gosh why would you want to do that? What do you expect to accomplish?","line 83 : Oh gosh you can mix late and non-late rules in a rule-group if you really want to, but gosh why would you want to do that? What do you expect to accomplish?","line 87 : Oh gosh you can mix late and non-late rules in a rule-group if you really want to, but gosh why would you want to do that? What do you expect to accomplish?"],0] - ], - [ - "loop points in the middle of rule-groups", - ["title loop points in the middle of rule-groups\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ player ]\nstartloop\n+ [ crate ] -> [ player ]\n+ [ player ] -> [ crate ]\n\n\n[ crate ] -> [ player ]\nendloop\n+ [ player ] -> [ crate ]\n\n\nstartloop\n[]->[]\n+ [] -> []\nendloop\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 82 : Found a loop point in the middle of a rule. You probably don't want to do this, right?","line 88 : Found a loop point in the middle of a rule. You probably don't want to do this, right?"],0] - ], - [ - "can declare the same object to be on a layer multiple times #770", - ["title can declare the same object to be on a layer multiple times #770\nauthor increpare\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground (special, automatically placed in its own layer)\ngreen darkgreen\n11111\n01111\n11101\n11111\n10111\n\nPlayer (Required by game)\npink\n..0..\n00000\n..0..\n.000.\n.0.0.\n\nRobot\ngray black red\n.000.\n.200.\n...0.\n00000\n01010\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n* = Robot\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nPlayer, player, player, player, player, player\nrobot\nBackground\n\n======\nRULES\n======\n\n[ stationary Robot ] -> [ randomDir Robot ] \n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n...........\n.....*.....\n...........\n.....*.....\n...........\n.....*.....\n..P........\n.....*.....\n...........\n\n",["line 49 : Object \"PLAYER\" included explicitly multiple times in the same layer. Don't do that innit."],0] - ], - [ - "Double-Ellipsis error message neighbouring ellipses", - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | Crate | ... | ... | crate ] -> [ > Player | > Crate | ... | ... | crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 81 : Why would you go and have two ellipses in a row like that? It's exactly the same as just having a single ellipsis, right?"],0] - ], - [ - "Simple Block Pushing Game", - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | ... | Crate| ... | Crate |... | Crate ] -> [ > Player |...| > Crate|...| > Crate|...| > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 78 : You can't use more than two ellipses in a single cell match pattern."],1] - ], - [ - "Warning for duplicate objects on layer", - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, wall\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 72 : Object \"WALL\" included explicitly multiple times in the same layer. Don't do that innit."],0] - ], - [ - "No warning for duplicate objects on layer", - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ncow = crate or wall\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, cow\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[],0] - ], - [ - "Warning for duplicate properties on layer", - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ncow = crate or wall\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, cow, cow\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["line 72 : Object \"COW\" included explicitly multiple times in the same layer. Don't do that innit."],0] - ], - [ - "Ambiguous properties throw an exception #929", - ["OBJECTS\n\nBackground\nblack\n\nPlayer\nblue\n\nA\ngreen\n\nB\nred\n\nLEGEND\nC = A or B\n\nSOUNDS\nCOLLISIONLAYERS\n\nA \nB\n\nRULES\nright [ C | C | ] -> [ C | C | C ]\n\nWINCONDITIONS\nLEVELS\n",["line 25 : This rule has a property on the right-hand side, \"C\", that can't be inferred from the left-hand side. (either for every property on the right there has to be a corresponding one on the left in the same cell, OR, if there's a single occurrence of a particular property name on the left, all properties of the same name on the right are assumed to be the same).","line 3 : Object \"BACKGROUND\" has been defined, but not assigned to a layer.","line 6 : Object \"PLAYER\" has been defined, but not assigned to a layer.","No levels found. Add some levels!"],4] - ], -]; +]; \ No newline at end of file diff --git a/src/tests/resources/testdata.js b/src/tests/resources/testdata.js index 491d28878..b5aad3c1b 100644 --- a/src/tests/resources/testdata.js +++ b/src/tests/resources/testdata.js @@ -1,388 +1,388 @@ 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"] + ["(\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"] + ["(\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"] + ["========\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"] + ["========\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"] + ["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"] + ["(\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"] + ["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"] + ["(\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"] + ["(\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"] + ["(\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"] + ["(\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"] + ["(\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] + ["========\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"] + ["(\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"] + ["(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"] + ["(\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"] + ["(\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] + ["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 increpare\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] + ["title Simple Block Pushing Game\nauthor increpare\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] + ["========\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] + ["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 increpare\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] + ["title Simple Block Pushing Game\nauthor increpare\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] + ["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] + ["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] + ["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] + ["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 increpare\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] + ["title Simple Block Pushing Game\nauthor increpare\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 increpare\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] + ["title Simple Block Pushing Game\nauthor increpare\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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["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] + ["\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] + ["\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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] - ],*/ +/* [ + "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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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 increpare\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"] + ["title Kettle\nauthor increpare\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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["========\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"] + ["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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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 [ @@ -391,1247 +391,1042 @@ var testdata = [ ],*/ [ "100 objects", - ["title Simple Block Pushing Game\nauthor increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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"] + ["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 increpare\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"] + ["(\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 increpare\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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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"] + ["( 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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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"] + ["========\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"] + ["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"] + ["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"] + ["========\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"] + ["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 increpare\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"] + ["title EYE EYE EYE\nauthor increpare\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"] + ["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 increpare\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"] + ["title Several Rigid Bodies\nauthor increpare\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"] + ["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 increpare\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"] + ["title Simple Block Pushing Game\nauthor increpare\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"] + ["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"] ], [ "Synonym confusion", - ["title Simple Block Pushing Game\nauthor increpare\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nRed\n\nPlayer\nOrange\n\nFloorB2\nYellow\n\nFloorB1\nGreen\n\nFloorMain\nBlue\n\n=======\nLEGEND\n=======\n\nFloorB2AndDown = FloorB2\nFloorB1AndDown = FloorB1 and FloorB2AndDown\nFloorMainAndDown = FloorMain and FloorB1AndDown\n\n. = Background\nP = Player\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFloorB2\nFloorB1\nFloorMain, Player\n\n======\nRULES\n======\n\n==============\nWINCONDITIONS\n==============\n\nno Player\n\n=======\nLEVELS\n=======\n\n...\n..P\n", [1], "background:0,0,0,\nbackground player:1,0,0,\n", 0, "1496933845000"] + ["title Simple Block Pushing Game\nauthor increpare\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nRed\n\nPlayer\nOrange\n\nFloorB2\nYellow\n\nFloorB1\nGreen\n\nFloorMain\nBlue\n\n=======\nLEGEND\n=======\n\nFloorB2AndDown = FloorB2\nFloorB1AndDown = FloorB1 and FloorB2AndDown\nFloorMainAndDown = FloorMain and FloorB1AndDown\n\n. = Background\nP = Player\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFloorB2\nFloorB1\nFloorMain, Player\n\n======\nRULES\n======\n\n==============\nWINCONDITIONS\n==============\n\nno Player\n\n=======\nLEVELS\n=======\n\n...\n..P\n",[1],"background:0,0,0,\nbackground player:1,0,0,\n",0,"1496933845000"] ], [ "a = b and b #393", - ["title Simple Block Pushing Game\nauthor increpare\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\nO = Target\n\nab = crate\n@ = ab and crate\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n\n======\nRULES\n======\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\n", [0, 2, 2, 1, 0], "background wall:0,0,0,0,0,0,\n0,0,background:1,background crate:2,background player:3,1,\n1,0,0,background target:4,1,1,\n1,1,0,0,0,0,\n1,2,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 0, "1499256887390.9216"] + ["title Simple Block Pushing Game\nauthor increpare\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\nO = Target\n\nab = crate\n@ = ab and crate\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n\n======\nRULES\n======\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\n",[0,2,2,1,0],"background wall:0,0,0,0,0,0,\n0,0,background:1,background crate:2,background player:3,1,\n1,0,0,background target:4,1,1,\n1,1,0,0,0,0,\n1,2,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1499256887390.9216"] ], [ "Rule direction inference test (#407)", - ["title Simple Block Pushing Game\nauthor increpare\nhomepage www.puzzlescript.net\ndebug\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[ > Player | Crate ] -> [ > Player | ^ Crate ]\n\n[ horizontal Player ] [ vertical Crate ] -> [ horizontal Player ] [ horizontal Crate ]\n\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#..*.#\n#....#\n######\n\n", [2, 3, 2, 2, 1, 1, 0, 2, 3, 0, 2, 1, 0, "undo", 1, 0, 3, 3, 2, "undo", "undo", 2, 3, 3, 0, 1], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,1,1,\nbackground crate:2,1,0,0,1,1,\n1,background player:3,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n", 1, "1503122963823.3987"] + ["title Simple Block Pushing Game\nauthor increpare\nhomepage www.puzzlescript.net\ndebug\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[ > Player | Crate ] -> [ > Player | ^ Crate ]\n\n[ horizontal Player ] [ vertical Crate ] -> [ horizontal Player ] [ horizontal Crate ]\n\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#..*.#\n#....#\n######\n\n",[2,3,2,2,1,1,0,2,3,0,2,1,0,"undo",1,0,3,3,2,"undo","undo",2,3,3,0,1],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,1,1,\nbackground crate:2,1,0,0,1,1,\n1,background player:3,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n",1,"1503122963823.3987"] ], [ "Reserved keywords are too greedy (#419)", - ["========\nOBJECTS(cat)\n========\n\nbackground \nwhite\n\nPlayer\nblue\n\nLevelscat\nblack\n\n=======\nLEGEND\n=======\n\nP = Player\n\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS \n================\n\nbackground\nplayer\nLevelscat\n\n======\nRULES\n======\n\n\n==============\nWINCONDITIONS\n==============\n\n(there's no way to win against a floating eyeball :S )\n\n=======\nLEVELS\n=======\n\np\n\n", [3, 3, 0], "background player:0,\n", 0, "1506517029540.7014"] + ["========\nOBJECTS(cat)\n========\n\nbackground \nwhite\n\nPlayer\nblue\n\nLevelscat\nblack\n\n=======\nLEGEND\n=======\n\nP = Player\n\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS \n================\n\nbackground\nplayer\nLevelscat\n\n======\nRULES\n======\n\n\n==============\nWINCONDITIONS\n==============\n\n(there's no way to win against a floating eyeball :S )\n\n=======\nLEVELS\n=======\n\np\n\n",[3,3,0],"background player:0,\n",0,"1506517029540.7014"] ], [ `Removing background tiles breaks "no X" wincondition (#534)`, - ["title no Coin, all Player on Target\nauthor Zachary Abel\nhomepage zacharyabel.com\n\nrun_rules_on_level_start\n\n=======\nOBJECTS\n=======\n\nBackground\ngreen\n\nPlayer\nRed\n.000.\n.0.0.\n.000.\n.0...\n.0...\n\n\n======\nLEGEND\n======\n\nP = Player\n. = Background\n\n======\nSOUNDS\n======\n\n===============\nCOLLISIONLAYERS\n===============\n\nBackground\nPlayer\n\n=====\nRULES\n=====\n\n[Background] -> []\n\n=============\nWINCONDITIONS\n=============\n\nno Player\n\n======\nLEVELS\n======\n\nP.\n\n", [3, 3], ":0,player:1,\n", 0, "1612779741066.1199"] + ["title no Coin, all Player on Target\nauthor Zachary Abel\nhomepage zacharyabel.com\n\nrun_rules_on_level_start\n\n=======\nOBJECTS\n=======\n\nBackground\ngreen\n\nPlayer\nRed\n.000.\n.0.0.\n.000.\n.0...\n.0...\n\n\n======\nLEGEND\n======\n\nP = Player\n. = Background\n\n======\nSOUNDS\n======\n\n===============\nCOLLISIONLAYERS\n===============\n\nBackground\nPlayer\n\n=====\nRULES\n=====\n\n[Background] -> []\n\n=============\nWINCONDITIONS\n=============\n\nno Player\n\n======\nLEVELS\n======\n\nP.\n\n",[3,3],":0,player:1,\n",0,"1612779741066.1199"] ], [ `should allow overlapping things #512`, - ["title Bloygizpo\nauthor increpare\nhomepage www.puzzlescript.net\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\ngreen GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\nTarget_aktiviert\nyellow\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall1\ndarkbrown darkbrown\n0.0.0\n.1.1.\n0.0.0\n.1.1.\n0.0.0\n\nWall2\ndarkbrown darkbrown\n.0.1.\n1.1.1\n.1.0.\n1.1.1\n.0.1.\n\nPlayer1\nBlack Orange White Blue\n..0..\n.1.1.\n2.2.2\n.3.3.\n.....\n\nPlayer2\nBlack Orange White Blue\n.0.0.\n..1..\n.2.2.\n..3..\n.3.3.\n\n\nCrate1\nOrange Yellow\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\n\nCrate2\nOrange Yellow\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nTuer1\nBlack brown\n..0..\n.1.1.\n0.1.0\n.1.1.\n0.0.0\n\nTuer2\nBlack brown\n.0.0.\n0.1.0\n.1.1.\n0.1.0\n.0.0.\n\nTuer_Offen\nyellow yellow\n.000.\n01110\n01110\n01110\n00000\n\n=======\nLEGEND\n=======\n\nPlayer = Player1 or player2\nCrate = Crate1 or Crate2\nWall = wall1 or wall2\ntuer = tuer1 or tuer2\n\n. = Background\n# = Wall1\nP = Player1 \n\n* = Crate1\n@ = Crate1\nO = Target\n\nq = crate1\nw = crate2\n\nt = tuer1 \n\ngewicht1 = player1 or Crate1 \ngewicht2 = player2 or Crate2\ngewicht = player or crate\n\n\n=======\nSOUNDS\n=======\n\nCrate1 MOVE 36772507\nCrate2 MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nTarget_aktiviert\ntuer_offen\nplayer1, crate1, wall1, tuer1\nplayer2, crate2, wall2, tuer2\n\n\n======\nRULES\n======\n\n[ player tuer ] -> [player tuer]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n#########\n#...t...#\n#.......#\n#.o...o.#\n#.......#\n#...q...#\n#.......#\n#...p...#\n#.......#\n#########\n\n(\n\nauszuprobieren\n\tteilweises Aufmachen\n 2 klötze\n)\n", [3, 0, 3, 3], "background wall1:0,0,0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,1,1,1,\n1,0,0,1,1,background target:2,1,1,1,\n1,1,0,0,1,1,1,1,1,\n1,1,1,0,0,background tuer1:3,1,1,1,\nbackground crate1:4,1,1,1,0,0,1,1,1,\n1,1,1,1,1,0,0,1,1,\n2,1,1,1,1,1,0,0,1,\n1,1,1,1,background player1:5,1,1,0,0,\n0,0,0,0,0,0,0,0,0,\n", 0, "1612782799099.4512"] + ["title Bloygizpo\nauthor increpare\nhomepage www.puzzlescript.net\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\ngreen GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\nTarget_aktiviert\nyellow\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall1\ndarkbrown darkbrown\n0.0.0\n.1.1.\n0.0.0\n.1.1.\n0.0.0\n\nWall2\ndarkbrown darkbrown\n.0.1.\n1.1.1\n.1.0.\n1.1.1\n.0.1.\n\nPlayer1\nBlack Orange White Blue\n..0..\n.1.1.\n2.2.2\n.3.3.\n.....\n\nPlayer2\nBlack Orange White Blue\n.0.0.\n..1..\n.2.2.\n..3..\n.3.3.\n\n\nCrate1\nOrange Yellow\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\n\nCrate2\nOrange Yellow\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nTuer1\nBlack brown\n..0..\n.1.1.\n0.1.0\n.1.1.\n0.0.0\n\nTuer2\nBlack brown\n.0.0.\n0.1.0\n.1.1.\n0.1.0\n.0.0.\n\nTuer_Offen\nyellow yellow\n.000.\n01110\n01110\n01110\n00000\n\n=======\nLEGEND\n=======\n\nPlayer = Player1 or player2\nCrate = Crate1 or Crate2\nWall = wall1 or wall2\ntuer = tuer1 or tuer2\n\n. = Background\n# = Wall1\nP = Player1 \n\n* = Crate1\n@ = Crate1\nO = Target\n\nq = crate1\nw = crate2\n\nt = tuer1 \n\ngewicht1 = player1 or Crate1 \ngewicht2 = player2 or Crate2\ngewicht = player or crate\n\n\n=======\nSOUNDS\n=======\n\nCrate1 MOVE 36772507\nCrate2 MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nTarget_aktiviert\ntuer_offen\nplayer1, crate1, wall1, tuer1\nplayer2, crate2, wall2, tuer2\n\n\n======\nRULES\n======\n\n[ player tuer ] -> [player tuer]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n#########\n#...t...#\n#.......#\n#.o...o.#\n#.......#\n#...q...#\n#.......#\n#...p...#\n#.......#\n#########\n\n(\n\nauszuprobieren\n\tteilweises Aufmachen\n 2 klötze\n)\n",[3,0,3,3],"background wall1:0,0,0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,1,1,1,\n1,0,0,1,1,background target:2,1,1,1,\n1,1,0,0,1,1,1,1,1,\n1,1,1,0,0,background tuer1:3,1,1,1,\nbackground crate1:4,1,1,1,0,0,1,1,1,\n1,1,1,1,1,0,0,1,1,\n2,1,1,1,1,1,0,0,1,\n1,1,1,1,background player1:5,1,1,0,0,\n0,0,0,0,0,0,0,0,0,\n",0,"1612782799099.4512"] ], [ `trouble parsing non-ascii in unicode #528`, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\n\n\n大\nred\n\nmauer\nBROWN \n\nPlayer\nwhite white white white\n.....\n.111.\n.111.\n.111.\n.....\n\n\nschlange_oben q\nlightgreen red yellow\n.....\n.....\n.000.\n.202.\n.000.\n\nschlange_mitte a \ngreen red white\n.000.\n.000.\n.000.\n.000.\n.000.\n\nschlange_unten z\nlightgreen red white brown\n.000.\n.000.\n.000.\n..0..\n.....\n\n\nleiter_oben w\nyellow \n.....\n.0.0.\n.000.\n.0.0.\n.000.\n\nleiter_mitte s\norange\n.0.0.\n.000.\n.0.0.\n.000.\n.0.0.\n\nleiter_unten x\nyellow\n.000.\n.0.0.\n.000.\n.0.0.\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = mauer\nP = Player\nO = 大\n\nleiter = leiter_oben or leiter_unten or leiter_mitte\nschlange = schlange_oben or schlange_unten or schlange_mitte\n\nmitte = leiter_mitte or schlange_mitte\noben = leiter_oben or schlange_oben\nunten = leiter_unten or schlange_unten\n\nstück = leiter or schlange\n\nobstacle = stück or mauer or player\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n大\nleiter, schlange\nPlayer, mauer\n\n======\nRULES\n======\n\nhorizontal [ > player | mitte ] -> [ > player | > mitte ]\n\nvertical [ left schlange_mitte | schlange ] -> [ left schlange_mitte | left schlange ] \nvertical [ right schlange_mitte | schlange ] -> [ right schlange_mitte | right schlange ] \n\nvertical [ left leiter_mitte | leiter ] -> [ left leiter_mitte | left leiter ] \n\nvertical [ right leiter_mitte | leiter ] -> [ right leiter_mitte | right leiter ] \n\n[> stück | stück] -> cancel\n[> stück | mauer] -> cancel\n\n\nlate up [ Player leiter_unten | ] -> [ leiter_unten | player ]\nlate up [ player leiter_mitte | ] -> [ leiter_mitte | player ]\n\n\nlate down [ Player schlange_oben | ] -> [ schlange_oben | player ]\nlate down [ player schlange_mitte | ] -> [ schlange_mitte | player ]\n\n==============\nWINCONDITIONS\n==============\n\nall player on 大\n\n=======\nLEVELS\n=======\n\n\n\n\n\n#######\n#o....#\n#.....#\n#.....#\n#.....#\n#.....#\n#p....#\n#######\n", [3, 0, 3], "background mauer:0,0,0,0,0,0,0,\n0,0,background 大:1,background:2,2,2,2,\n2,0,0,2,2,2,2,\n2,2,0,0,2,2,2,\n2,background player:3,2,0,0,2,2,\n2,2,2,2,0,0,2,\n2,2,2,2,2,0,0,\n0,0,0,0,0,0,0,\n", 0, "1612797615322.4563"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\n\n\n大\nred\n\nmauer\nBROWN \n\nPlayer\nwhite white white white\n.....\n.111.\n.111.\n.111.\n.....\n\n\nschlange_oben q\nlightgreen red yellow\n.....\n.....\n.000.\n.202.\n.000.\n\nschlange_mitte a \ngreen red white\n.000.\n.000.\n.000.\n.000.\n.000.\n\nschlange_unten z\nlightgreen red white brown\n.000.\n.000.\n.000.\n..0..\n.....\n\n\nleiter_oben w\nyellow \n.....\n.0.0.\n.000.\n.0.0.\n.000.\n\nleiter_mitte s\norange\n.0.0.\n.000.\n.0.0.\n.000.\n.0.0.\n\nleiter_unten x\nyellow\n.000.\n.0.0.\n.000.\n.0.0.\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = mauer\nP = Player\nO = 大\n\nleiter = leiter_oben or leiter_unten or leiter_mitte\nschlange = schlange_oben or schlange_unten or schlange_mitte\n\nmitte = leiter_mitte or schlange_mitte\noben = leiter_oben or schlange_oben\nunten = leiter_unten or schlange_unten\n\nstück = leiter or schlange\n\nobstacle = stück or mauer or player\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n大\nleiter, schlange\nPlayer, mauer\n\n======\nRULES\n======\n\nhorizontal [ > player | mitte ] -> [ > player | > mitte ]\n\nvertical [ left schlange_mitte | schlange ] -> [ left schlange_mitte | left schlange ] \nvertical [ right schlange_mitte | schlange ] -> [ right schlange_mitte | right schlange ] \n\nvertical [ left leiter_mitte | leiter ] -> [ left leiter_mitte | left leiter ] \n\nvertical [ right leiter_mitte | leiter ] -> [ right leiter_mitte | right leiter ] \n\n[> stück | stück] -> cancel\n[> stück | mauer] -> cancel\n\n\nlate up [ Player leiter_unten | ] -> [ leiter_unten | player ]\nlate up [ player leiter_mitte | ] -> [ leiter_mitte | player ]\n\n\nlate down [ Player schlange_oben | ] -> [ schlange_oben | player ]\nlate down [ player schlange_mitte | ] -> [ schlange_mitte | player ]\n\n==============\nWINCONDITIONS\n==============\n\nall player on 大\n\n=======\nLEVELS\n=======\n\n\n\n\n\n#######\n#o....#\n#.....#\n#.....#\n#.....#\n#.....#\n#p....#\n#######\n",[3,0,3],"background mauer:0,0,0,0,0,0,0,\n0,0,background 大:1,background:2,2,2,2,\n2,0,0,2,2,2,2,\n2,2,0,0,2,2,2,\n2,background player:3,2,0,0,2,2,\n2,2,2,2,0,0,2,\n2,2,2,2,2,0,0,\n0,0,0,0,0,0,0,\n",0,"1612797615322.4563"] ], [ `Can't start message with section keywords #490`, - ["title Simple Block Pushing Game\nauthor increpare\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage object swap\nmessage the objects swap\nmessage objectsswap\nmessage objects swap; comment me out!\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n", [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", 4, "1612811326612.0864"] + ["title Simple Block Pushing Game\nauthor increpare\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage object swap\nmessage the objects swap\nmessage objectsswap\nmessage objects swap; comment me out!\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[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",4,"1612811326612.0864"] ], [ `Bug: "norestart" prelude option can interfere with "restart" command #411`, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\nnorestart\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[ > Player | Crate ] -> restart\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\n", [0, "restart", 1, 2, 2, "restart", 2, 2, 0, 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,background player:4,\n1,1,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 0, "1612832538428.8394"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\nnorestart\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[ > Player | Crate ] -> restart\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\n",[0,"restart",1,2,2,"restart",2,2,0,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,background player:4,\n1,1,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1612832538428.8394"] ], [ `undoing reset undoes two steps, not one #453`, - ["title Simple Block Pushing Game\nauthor David Skinner\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[ > 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\n", [2, 2, "restart", "undo"], "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,background player:4,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 0, "1612997864833.277"] + ["title Simple Block Pushing Game\nauthor David Skinner\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[ > 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\n",[2,2,"restart","undo"],"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,background player:4,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1612997864833.277"] ], [ `Recent update broke some games with tabs in the source code #609`, - ["title Simple Block Pushing Game\nauthor David Skinner\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# \t= Wall\nP = \tPlayer\n* = Crate\n@ \t= Crate and Target\nK = \tCrate and Target\nM = Crate \tand Target\nN = Crate and \tTarget\nQ \t= Crate \tand 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[ > 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\n", [2, 2, 1, 0, 3, 0, 3, 3, 1, 1, 2, 1, 0], "background wall:0,0,0,0,0,0,\n0,0,background:1,background crate:2,background player target:3,1,\n1,0,0,background target:4,1,1,\n1,1,0,0,0,0,\n1,2,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 0, "1615587622342.6877"] + ["title Simple Block Pushing Game\nauthor David Skinner\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# \t= Wall\nP = \tPlayer\n* = Crate\n@ \t= Crate and Target\nK = \tCrate and Target\nM = Crate \tand Target\nN = Crate and \tTarget\nQ \t= Crate \tand 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[ > 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\n",[2,2,1,0,3,0,3,3,1,1,2,1,0],"background wall:0,0,0,0,0,0,\n0,0,background:1,background crate:2,background player target:3,1,\n1,0,0,background target:4,1,1,\n1,1,0,0,0,0,\n1,2,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1615587622342.6877"] ], [ `Test travelling through multiple levels`, - ["title Simple Block Pushing Game\nauthor David Skinner\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[ > 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\n", [2, 1, 0, 3, 3, 3, 2, 1, 0, 1, 1, 2, 2, 3, 0, 1, 0, 3, 0, 0, 1, 2, 3, 2, 2, 3, 3, 0, 1, 2, 1, 0, 0, 3, 2, 2, 1, 0, 0], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,0,background crate:2,\nbackground crate target:3,1,0,0,2,background player:4,\nbackground target:5,5,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n", 0, "1627477832505.31"] + ["title Simple Block Pushing Game\nauthor David Skinner\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[ > 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\n",[2,1,0,3,3,3,2,1,0,1,1,2,2,3,0,1,0,3,0,0,1,2,3,2,2,3,3,0,1,2,1,0,0,3,2,2,1,0,0],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,0,background crate:2,\nbackground crate target:3,1,0,0,2,background player:4,\nbackground target:5,5,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n",0,"1627477832505.31"] ], [ `Win condition test "NO X"`, - ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Crate ] -> [ > Player | ]\n\n==============\nWINCONDITIONS\n==============\n\nno crate\n\n=======\nLEVELS\n=======\n\n\n.....\n.@o*.\n.p...\n.....\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n", [0, 3, 3], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,0,background crate:2,\nbackground target:3,1,0,0,1,background player:4,\nbackground crate target:5,5,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n", 0, "1627477994465.8933"] + ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Crate ] -> [ > Player | ]\n\n==============\nWINCONDITIONS\n==============\n\nno crate\n\n=======\nLEVELS\n=======\n\n\n.....\n.@o*.\n.p...\n.....\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[0,3,3],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,0,background crate:2,\nbackground target:3,1,0,0,1,background player:4,\nbackground crate target:5,5,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n",0,"1627477994465.8933"] ], [ `Win condition test "SOME X"`, - ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Target ] -> [ Player | TARGET Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nsome crate\n\n=======\nLEVELS\n=======\n\n\n.....\n..oo.\n.p...\n.....\n\n..p..\n.....\n", [3, 0, 3], "background:0,0,0,0,0,\n0,background player:1,0,0,0,\n", 0, "1627478110201.5347"] + ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Target ] -> [ Player | TARGET Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nsome crate\n\n=======\nLEVELS\n=======\n\n\n.....\n..oo.\n.p...\n.....\n\n..p..\n.....\n",[3,0,3],"background:0,0,0,0,0,\n0,background player:1,0,0,0,\n",0,"1627478110201.5347"] ], [ `Win condition test "SOME X ON Y"`, - ["title Simple Block Pushing Game\nauthor David Skinner\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\nup [ action Player | ] -> [ action Player | Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nsome crate on target\n\n=======\nLEVELS\n=======\n\n\n.....\n..oo.\n.p...\n.....\n\n..p..\n.....\n", [1, 4, 3, 0, 4, 2, 3, 4, 2, 4, 1, 1, 4], "background crate:0,background player:1,background:2,2,0,\n2,2,2,2,2,\n", 0, "1627478147227.8706"] + ["title Simple Block Pushing Game\nauthor David Skinner\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\nup [ action Player | ] -> [ action Player | Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nsome crate on target\n\n=======\nLEVELS\n=======\n\n\n.....\n..oo.\n.p...\n.....\n\n..p..\n.....\n",[1,4,3,0,4,2,3,4,2,4,1,1,4],"background crate:0,background player:1,background:2,2,0,\n2,2,2,2,2,\n",0,"1627478147227.8706"] ], [ `Win condition test "NO X ON Y"`, - ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nno 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\n", [0, 1, 2, 3, 2, 2, 1, 1, 2, 3], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,background crate:2,\n1,0,0,1,0,2,\nbackground target:3,1,0,0,1,1,\nbackground crate target:4,3,background player:5,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n", 0, "1627478173305.2952"] + ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nno 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\n",[0,1,2,3,2,2,1,1,2,3],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,background crate:2,\n1,0,0,1,0,2,\nbackground target:3,1,0,0,1,1,\nbackground crate target:4,3,background player:5,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n",0,"1627478173305.2952"] ], [ `Test for cancel cancelling restart #374`, - ["title Simple Block Pushing Game\nauthor David Skinner\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[ action player ] -> restart \n[ action player ] -> cancel \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\n", [2, 1, 0, 4, 4, 3, 4, 4], "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,\nbackground player:4,1,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 0, "1627560547946.0017"] + ["title Simple Block Pushing Game\nauthor David Skinner\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[ action player ] -> restart \n[ action player ] -> cancel \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\n",[2,1,0,4,4,3,4,4],"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,\nbackground player:4,1,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1627560547946.0017"] ], - [`Test for trigger message at same time as reset`, - ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n[action Player] -> restart message ACTION\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\n", [2, 4, 1, 2, 2, 4, 0], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,background crate target:2,1,\n1,0,0,background target:3,background player:4,1,\n1,1,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 0, "1627560815572.0037"] + [ `Test for trigger message at same time as reset`, + ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n[action Player] -> restart message ACTION\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\n",[2,4,1,2,2,4,0],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,background crate target:2,1,\n1,0,0,background target:3,background player:4,1,\n1,1,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1627560815572.0037"] ], - [`Test for trigger message at same time as cancel`, - ["title Simple Block Pushing Game\nauthor David Skinner\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[moving Player] -> cancel message ACTION\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\n", [2, 2, 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,background player:4,\n1,1,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 0, "1627560887718.9905"] + [ `Test for trigger message at same time as cancel`, + ["title Simple Block Pushing Game\nauthor David Skinner\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[moving Player] -> cancel message ACTION\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\n",[2,2,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,background player:4,\n1,1,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1627560887718.9905"] ], [ `movement not getting correctly cleared from tile - #492`, - ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\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\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=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n(^ COMMENT ME OUT/DELETE ME)\n\n\n[ | < Player | Crate ] -> [ Player | Crate | Crate ]\n([ Crate | > Player | ] -> [ Crate | Crate | Player ])\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#....#\n#*P*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n", [3, 0, 1, 1], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,background player:2,background crate:3,\n1,0,0,background target:4,1,1,\n3,1,0,0,0,0,\n1,1,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 0, "1627732650514.1125"] + ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\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\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=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n(^ COMMENT ME OUT/DELETE ME)\n\n\n[ | < Player | Crate ] -> [ Player | Crate | Crate ]\n([ Crate | > Player | ] -> [ Crate | Crate | Player ])\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#....#\n#*P*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[3,0,1,1],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,background player:2,background crate:3,\n1,0,0,background target:4,1,1,\n3,1,0,0,0,0,\n1,1,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1627732650514.1125"] ], [ `second test for #492 movement not getting correctly cleared from tile`, - ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\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\nperson1\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nperson2\nlightbrown orange white red\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 = Person1\nd = Person2\n* = Crate\n@ = Crate and Target\nO = Target\n\nPlayer = Person1 or person2\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget, Wall\nPlayer, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n(^ COMMENT ME OUT/DELETE ME)\n\n[ | < Person1 | Crate ] -> [ Person1 | Crate | Crate ]\n[ | < Person2 | Crate ] -> [ stationary Person2 | Crate | Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n......#......\n......#......\n......#......\n......#......\n.*p*..#.*d*..\n......#......\no.....#o.....\n\n", [3], "background:0,0,0,0,0,0,background target:1,0,0,0,0,background crate:2,0,\n0,0,0,0,0,2,0,0,0,0,0,0,background person1:3,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background wall:4,4,4,4,4,4,4,0,0,0,\n0,0,0,1,0,0,0,0,2,0,0,0,0,\n0,0,2,0,0,0,0,0,0,background person2:5,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 0, "1627732858112.287"] + ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\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\nperson1\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nperson2\nlightbrown orange white red\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 = Person1\nd = Person2\n* = Crate\n@ = Crate and Target\nO = Target\n\nPlayer = Person1 or person2\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget, Wall\nPlayer, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n(^ COMMENT ME OUT/DELETE ME)\n\n[ | < Person1 | Crate ] -> [ Person1 | Crate | Crate ]\n[ | < Person2 | Crate ] -> [ stationary Person2 | Crate | Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n......#......\n......#......\n......#......\n......#......\n.*p*..#.*d*..\n......#......\no.....#o.....\n\n",[3],"background:0,0,0,0,0,0,background target:1,0,0,0,0,background crate:2,0,\n0,0,0,0,0,2,0,0,0,0,0,0,background person1:3,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background wall:4,4,4,4,4,4,4,0,0,0,\n0,0,0,1,0,0,0,0,2,0,0,0,0,\n0,0,2,0,0,0,0,0,0,background person2:5,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n",0,"1627732858112.287"] ], [ `third test for #492 movement not getting correctly cleared from tile`, - ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nplayer p\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n* = Crate\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n[ > Player | ] -> [ Crate | Player ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\np*.\n\n", [3], "background crate:0,background player:1,background:2,\n", 0, "1627732919488.2104"] + ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nplayer p\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n* = Crate\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n[ > Player | ] -> [ Crate | Player ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\np*.\n\n",[3],"background crate:0,background player:1,background:2,\n",0,"1627732919488.2104"] ], [ `fourth test for #492 movement not getting correctly cleared from tile`, - ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nplayer p\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\ncrate\nred\n\n\n=======\nLEGEND\n=======\n\n. = Background\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ncrate\n======\nRULES\n======\n\nright [> player | crate ] -> [ > player | > crate ]\nright [ > Player | ] -> [ Player | Player ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\npp.\n\n", [3], "background player:0,0,background:1,\n", 0, "1627733021968.0657"] + ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nplayer p\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\ncrate\nred\n\n\n=======\nLEGEND\n=======\n\n. = Background\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ncrate\n======\nRULES\n======\n\nright [> player | crate ] -> [ > player | > crate ]\nright [ > Player | ] -> [ Player | Player ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\npp.\n\n",[3],"background player:0,0,background:1,\n",0,"1627733021968.0657"] ], [ `fifth test for #492 movement not getting correctly cleared from tile`, - ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nplayer p\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\ncrate\nred\n\n\n=======\nLEGEND\n=======\n\n. = Background\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ncrate\n======\nRULES\n======\n\nright [ > Player | ] -> [ Player | Player ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\npp.\n\n", [3], "background player:0,0,background:1,\n", 0, "1627733036654.9438"] + ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nplayer p\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\ncrate\nred\n\n\n=======\nLEGEND\n=======\n\n. = Background\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ncrate\n======\nRULES\n======\n\nright [ > Player | ] -> [ Player | Player ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\npp.\n\n",[3],"background player:0,0,background:1,\n",0,"1627733036654.9438"] ], [ `test for convention #2 to issue right [ > Player | ] -> [ Player | Player ]🐱‍🐉 #679 : Should right [ Player | ] -> [ Player | Player ] propagate movements? (A: yes?) `, - ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nplayer p\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\ncrate\nred\n\n\n=======\nLEGEND\n=======\n\n. = Background\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ncrate\n======\nRULES\n======\n\nrandom right [ Player | ] -> [ | Player ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n..p....\n\n", [3], "background:0,0,0,background player:1,0,0,0,\n", 0, "1627733171811.7598"] + ["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nplayer p\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\ncrate\nred\n\n\n=======\nLEGEND\n=======\n\n. = Background\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ncrate\n======\nRULES\n======\n\nrandom right [ Player | ] -> [ | Player ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n..p....\n\n",[3],"background:0,0,0,background player:1,0,0,0,\n",0,"1627733171811.7598"] ], [ `right [ vertical Player | perpendicular Player ] -> [ perpendicular Player | ] produces error #682`, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\nbaba = player or Background\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\n\n======\nRULES\n======\n\nright [ up player | up player ] -> [ up player | down player ]\nright [ vertical Player | perpendicular Player ] -> [ perpendicular Player | ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...pp..\n.......\n", [2], "background:0,0,0,0,0,0,0,\n0,0,0,0,background player:1,0,0,\n0,0,0,0,0,0,0,\n", 0, "1627766697714.8755"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\nbaba = player or Background\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\n\n======\nRULES\n======\n\nright [ up player | up player ] -> [ up player | down player ]\nright [ vertical Player | perpendicular Player ] -> [ perpendicular Player | ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...pp..\n.......\n",[2],"background:0,0,0,0,0,0,0,\n0,0,0,0,background player:1,0,0,\n0,0,0,0,0,0,0,\n",0,"1627766697714.8755"] ], [ `right [ horizontal TestObject1 | perpendicular TestObject1 ] -> [ perpendicular TestObject1 | ] produces an error #498`, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\n\n======\nRULES\n======\n\nright [ right player | right player ] -> [ right player | down player ]\nright [ horizontal Player | perpendicular Player ] -> [ perpendicular Player | ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...pp..\n.......\n\n", [3], "background:0,0,0,0,0,0,0,\n0,0,0,0,background player:1,0,0,\n0,0,0,0,0,0,0,\n", 0, "1627766801845.8809"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\n\n======\nRULES\n======\n\nright [ right player | right player ] -> [ right player | down player ]\nright [ horizontal Player | perpendicular Player ] -> [ perpendicular Player | ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...pp..\n.......\n\n",[3],"background:0,0,0,0,0,0,0,\n0,0,0,0,background player:1,0,0,\n0,0,0,0,0,0,0,\n",0,"1627766801845.8809"] ], [ `[ orthogonal a | moving a ] -> [ moving a | orthogonal a ] produces an error #496`, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\n\n======\nRULES\n======\n\nright [ down player | down player ] -> [ down player | action player ]\nright [ orthogonal player | moving player ] -> [ moving player | orthogonal player ]\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...pp..\n.......\n\n", [2], "background:0,0,0,0,0,0,0,\n0,0,0,background player:1,0,0,0,\n1,0,0,0,0,0,0,\n", 0, "1627766972788.5994"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\n\n======\nRULES\n======\n\nright [ down player | down player ] -> [ down player | action player ]\nright [ orthogonal player | moving player ] -> [ moving player | orthogonal player ]\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...pp..\n.......\n\n",[2],"background:0,0,0,0,0,0,0,\n0,0,0,background player:1,0,0,0,\n1,0,0,0,0,0,0,\n",0,"1627766972788.5994"] ], [ `1st alternative test for: right [ vertical Player | perpendicular Player ] -> [ perpendicular Player | ] produces error #682`, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\ncrate\nblue\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n* = crate\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer,crate\n\n======\nRULES\n======\n\n[crate]->[up crate]\nright [ horizontal Player | perpendicular crate ] -> [ perpendicular crate | ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...p*..\n.......\n\n", [3, "restart", 3], "background:0,0,0,0,0,0,0,\n0,0,background crate:1,0,0,0,0,\n0,0,0,0,0,0,0,\n", 0, "1627767245523.3818"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\ncrate\nblue\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n* = crate\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer,crate\n\n======\nRULES\n======\n\n[crate]->[up crate]\nright [ horizontal Player | perpendicular crate ] -> [ perpendicular crate | ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...p*..\n.......\n\n",[3,"restart",3],"background:0,0,0,0,0,0,0,\n0,0,background crate:1,0,0,0,0,\n0,0,0,0,0,0,0,\n",0,"1627767245523.3818"] ], [ `2nd alternative test for: right [ vertical Player | perpendicular Player ] -> [ perpendicular Player | ] produces error #682`, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\ncrate\nblue\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n* = crate\ncrateorbackground = crate or Background\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer,crate\n\n======\nRULES\n======\n\n[crate]->[up crate]\nright [ horizontal Player | perpendicular crateorbackground ] -> [ perpendicular crateorbackground | ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...p*..\n.......\n\n", [3], "background:0,0,0,0,0,0,0,\n0,0,background crate:1,0,0,0,0,\n0,0,0,0,0,0,0,\n", 0, "1627767313362.127"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\ncrate\nblue\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n* = crate\ncrateorbackground = crate or Background\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer,crate\n\n======\nRULES\n======\n\n[crate]->[up crate]\nright [ horizontal Player | perpendicular crateorbackground ] -> [ perpendicular crateorbackground | ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...p*..\n.......\n\n",[3],"background:0,0,0,0,0,0,0,\n0,0,background crate:1,0,0,0,0,\n0,0,0,0,0,0,0,\n",0,"1627767313362.127"] ], [ `super tricky (related to #469) right [ vertical playerortarget | vertical player ] -> [ vertical playerortarget | vertical playerortarget ] `, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\ntarget\nblue\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\nplayerortarget = player or target\n@ = target\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ntarget\n======\nRULES\n======\n\n[target]->[up target]\n\nright [ vertical playerortarget | vertical player ] -> [ vertical playerortarget | vertical playerortarget ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...@p..\n.......\n", [0], "background:0,0,0,0,0,0,0,\n0,0,background target:1,0,0,1,0,\n0,0,0,0,0,0,0,\n", 0, "1627768267232.6797"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\ntarget\nblue\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\nplayerortarget = player or target\n@ = target\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ntarget\n======\nRULES\n======\n\n[target]->[up target]\n\nright [ vertical playerortarget | vertical player ] -> [ vertical playerortarget | vertical playerortarget ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...@p..\n.......\n",[0],"background:0,0,0,0,0,0,0,\n0,0,background target:1,0,0,1,0,\n0,0,0,0,0,0,0,\n",0,"1627768267232.6797"] ], [ `right [ vertical playerortarget | vertical player ] -> [ vertical player | vertical playerortarget ]`, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\ntarget\nblue\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\nplayerortarget = player or target\n@ = target\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ntarget\n======\nRULES\n======\n\n[target]->[down target]\n\nright [ vertical playerortarget | vertical player ] -> [ vertical player | vertical playerortarget ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...@p..\n.......\n", [0], "background:0,0,0,0,0,0,0,\n0,0,background player:1,0,0,0,0,\nbackground target:2,0,0,0,0,0,0,\n", 0, "1627768474619.1826"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nPlayer\nBlack \n\ntarget\nblue\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\nplayerortarget = player or target\n@ = target\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\ntarget\n======\nRULES\n======\n\n[target]->[down target]\n\nright [ vertical playerortarget | vertical player ] -> [ vertical player | vertical playerortarget ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n...@p..\n.......\n",[0],"background:0,0,0,0,0,0,0,\n0,0,background player:1,0,0,0,0,\nbackground target:2,0,0,0,0,0,0,\n",0,"1627768474619.1826"] ], [ `gallery game: sokodig`, - ["title Sokodig\nauthor Ezra Szanton\nhomepage ezras.work\n\n========\nOBJECTS\n========\n\nstoneBackground\nBLACK darkgray\n11111\n11111\n11111\n11111\n11111\n\ngrassBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\nTarget\ndarkred red lightred\n.....\n.202.\n.010.\n.202.\n.....\n\nWall\nBROWN DARKBROWN\n11101\n10111\n11110\n00111\n11001\n\nPlayer0Dig\nBlack Orange White Blue\n.000.\n02020\n00000\n.000.\n.0.0.\n\nPlayer1Dig\n#573103 grey #6e6c69 \n..0..\n..0..\n..0..\n.111.\n..1..\n\nPlayer2Dig\n#573103 grey #6e6c69 \n..0..\n..0..\n.121.\n.111.\n..1..\n\nCrate\nOrange darkred red lightred\n22122\n2...2\n1...1\n2...2\n22122\n\nDoor\ndarkbrown\n.....\n.....\n..0..\n.....\n.....\n\ntemp\nbrown\n.....\n.....\n.....\n.....\n.....\n\nstairs\n #565756 #373b37 #212421 #1c1c29 Black\n00000\n11111\n22222\n33333\n44444\n\nshovel\ngrey #573103\n....1\n...1.\n0.1..\n00...\n000..\n\ngoldShovel\nyellow #573103\n....1\n...1.\n0.1..\n00...\n000..\n\nSuperPlayer\n#573103 yellow #d4bc37\n..0..\n..0..\n.121.\n.111.\n..1..\n\n\n=======\nLEGEND\n=======\n\nPlayer = Player0Dig or Player1Dig or Player2Dig or SuperPlayer\nBackground = stoneBackground or grassBackground\n\n\n# = Wall\n. = stoneBackground\nP = Player0Dig\n* = Crate\n@ = Crate and Target\nO = Target\nd = Door\ne = Player0Dig\ng = goldShovel\ns = stairs\nh = shovel\nr = grassBackground\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nPlayer move 17705907\n\nsfx0 66043100 (clink)\nsfx1 25555704 (dig)\nsfx2 51411503 (super)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget, Door, Stairs\nPlayer, Wall, Crate, goldShovel, shovel\ntemp\n\n======\nRULES\n======\n\n([DOWN Door] no [ Target no Crate] -> [] )\n\n( no [Target no Crate] -> [] no [no Crate] )\n\n[ > Player | shovel ] -> [ | Player2Dig ]\n\n[ > Player | goldShovel ] -> [ | SuperPlayer ] sfx2\n\n[ > Player | Crate ] [stairs] -> [ Player | Crate ] [stairs] sfx0\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n[ > Player2Dig | Wall ] -> [ | Player1Dig] sfx1\n\n[ > Player1Dig | Wall ] -> [ | Player0Dig] sfx1\n\n[ > Player0Dig | Wall ] -> [ Player0Dig | Wall ] sfx0\n\n[ > SuperPlayer | Wall ] -> [ | SuperPlayer] sfx1\n\n(Altogether makes the rule that the stairs will appear if all crates are on targets)\nlate [Target no Crate] [] -> [Target no Crate] [temp] \nlate random [door no temp] -> [ stairs ] \nlate [temp] -> [] \n\n==============\nWINCONDITIONS\n==============\n\nall player on stairs\n\n=======\nLEVELS\n=======\n\nmessage 1/10 runes in the stone\n\n#########\n#########\n##.....##\n##pd.*o##\n##.....##\n#########\n######### \n\nmessage 2/10 just me and my shovel\n\n#############\n#############\n##dph##.*o.##\n#############\n#############\n\nmessage 3/10 Remember, z to undo, r to restart\n\n############\n############\n#######d.###\n##ph###.*o##\n############\n###.....####\n############\n############\n\nmessage 4/10 How long have I been down here\n\n#######\n#######\n##...##\n##*o.##\n##hd.##\n##.p.##\n#######\n#######\n\nmessage 5/10 I can only go, down\n\n#######\n#.....#\n#.oo..#\n####*.#\n####*.#\n####dp#\n####h.#\n#######\n\nmessage 6/10 I lost my shovel ;-;\n\n#######\n#.o####\n##*.###\n##*h###\n#.p*..#\n#o.d..#\n#....o#\n#######\n\nmessage 7/10 riddles in the earth\n\n###########\n#.........#\n#.........#\n#.........#\n#..####...#\n#...*.#.o.#\n#..#**#.o.#\n#..##.#.o.#\n#.........#\n#.Ph....d.#\n#.........#\n###########\n\nmessage 8/10 will I ever see the light again\n\n##########\n##########\n##o.hp.d##\n##.##*#.##\n##.#@@#.##\n##......##\n##########\n##########\n\nmessage 9/10 I sense a great pressure\n\n###########\n###p..#h###\n###.#######\n#...###...#\n#.*.#d#**.#\n###h###ooo#\n###########\n\n#########\n####p####\n####.####\n####.####\n####.####\n####.####\n####.####\n####s####\n#########\n\n#######\n###p###\n###.###\n###.###\n###.###\n###s###\n#######\n\n#####\n##p##\n##.##\n##s##\n#####\n\nmessage 10/10 my final trial\n\n#######\n#######\n##oo.##\n###**##\n###dp##\n####h##\n#######\n#######\n\n\nmessage 11/10 deepest~\n\n#############\n#p.h##g##...#\n#########.d.#\n#########...#\n#############\n#############\n#############\n#############\n#############\n#.*.#########\n#...#########\n#.o.#########\n#############\n\n###########\n#####s#####\n###########\n###########\n###########\n###########\n###########\n###########\n#####g#####\n#####p#####\n###########\n\n#########\n####s####\n#########\n#########\n#########\n#########\n####g####\n####p####\n#########\n\n#######\n###s###\n#######\n#######\n###g###\n###p###\n#######\n\nmessage 0/10 freedom\n\nrrrr#####rrrr\nrrrrr#s#rrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrr###rrrrr\nrrrr#####rrrr\nrrr###h###rrr\n#####rpr#####\n\n\n\n\n\n\n\n", [3, 3, 3, 3, 3, 2, 2, 1, 1, 2, 2, 3, 3, 2, 2, 2, 1, 1, 1, 2, 1, 0, 1, 1, 2, 3, 0, 3, 2, 2, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0], "stonebackground wall:0,0,0,0,0,0,0,0,stonebackground:1,1,0,0,0,\n0,1,0,0,0,0,0,0,1,1,1,1,0,\n0,1,0,0,0,0,0,0,1,1,1,crate stonebackground target:2,0,\n0,1,0,0,0,0,0,0,1,1,1,1,0,\n0,1,0,1,1,1,0,0,1,0,1,0,0,\n0,1,0,1,0,1,0,0,1,0,1,0,0,\n0,1,1,1,0,1,1,1,1,0,1,0,0,\n0,0,0,0,0,0,0,0,0,0,1,0,0,\n0,0,0,0,0,0,0,0,0,0,1,0,0,\n0,1,1,stonebackground superplayer:3,1,1,1,1,1,1,1,0,0,\n0,1,stairs stonebackground:4,1,0,0,0,0,0,0,0,0,0,\n0,1,1,1,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 24, "1627769218300.0015"] + ["title Sokodig\nauthor Ezra Szanton\nhomepage ezras.work\n\n========\nOBJECTS\n========\n\nstoneBackground\nBLACK darkgray\n11111\n11111\n11111\n11111\n11111\n\ngrassBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\nTarget\ndarkred red lightred\n.....\n.202.\n.010.\n.202.\n.....\n\nWall\nBROWN DARKBROWN\n11101\n10111\n11110\n00111\n11001\n\nPlayer0Dig\nBlack Orange White Blue\n.000.\n02020\n00000\n.000.\n.0.0.\n\nPlayer1Dig\n#573103 grey #6e6c69 \n..0..\n..0..\n..0..\n.111.\n..1..\n\nPlayer2Dig\n#573103 grey #6e6c69 \n..0..\n..0..\n.121.\n.111.\n..1..\n\nCrate\nOrange darkred red lightred\n22122\n2...2\n1...1\n2...2\n22122\n\nDoor\ndarkbrown\n.....\n.....\n..0..\n.....\n.....\n\ntemp\nbrown\n.....\n.....\n.....\n.....\n.....\n\nstairs\n #565756 #373b37 #212421 #1c1c29 Black\n00000\n11111\n22222\n33333\n44444\n\nshovel\ngrey #573103\n....1\n...1.\n0.1..\n00...\n000..\n\ngoldShovel\nyellow #573103\n....1\n...1.\n0.1..\n00...\n000..\n\nSuperPlayer\n#573103 yellow #d4bc37\n..0..\n..0..\n.121.\n.111.\n..1..\n\n\n=======\nLEGEND\n=======\n\nPlayer = Player0Dig or Player1Dig or Player2Dig or SuperPlayer\nBackground = stoneBackground or grassBackground\n\n\n# = Wall\n. = stoneBackground\nP = Player0Dig\n* = Crate\n@ = Crate and Target\nO = Target\nd = Door\ne = Player0Dig\ng = goldShovel\ns = stairs\nh = shovel\nr = grassBackground\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nPlayer move 17705907\n\nsfx0 66043100 (clink)\nsfx1 25555704 (dig)\nsfx2 51411503 (super)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget, Door, Stairs\nPlayer, Wall, Crate, goldShovel, shovel\ntemp\n\n======\nRULES\n======\n\n([DOWN Door] no [ Target no Crate] -> [] )\n\n( no [Target no Crate] -> [] no [no Crate] )\n\n[ > Player | shovel ] -> [ | Player2Dig ]\n\n[ > Player | goldShovel ] -> [ | SuperPlayer ] sfx2\n\n[ > Player | Crate ] [stairs] -> [ Player | Crate ] [stairs] sfx0\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n[ > Player2Dig | Wall ] -> [ | Player1Dig] sfx1\n\n[ > Player1Dig | Wall ] -> [ | Player0Dig] sfx1\n\n[ > Player0Dig | Wall ] -> [ Player0Dig | Wall ] sfx0\n\n[ > SuperPlayer | Wall ] -> [ | SuperPlayer] sfx1\n\n(Altogether makes the rule that the stairs will appear if all crates are on targets)\nlate [Target no Crate] [] -> [Target no Crate] [temp] \nlate random [door no temp] -> [ stairs ] \nlate [temp] -> [] \n\n==============\nWINCONDITIONS\n==============\n\nall player on stairs\n\n=======\nLEVELS\n=======\n\nmessage 1/10 runes in the stone\n\n#########\n#########\n##.....##\n##pd.*o##\n##.....##\n#########\n######### \n\nmessage 2/10 just me and my shovel\n\n#############\n#############\n##dph##.*o.##\n#############\n#############\n\nmessage 3/10 Remember, z to undo, r to restart\n\n############\n############\n#######d.###\n##ph###.*o##\n############\n###.....####\n############\n############\n\nmessage 4/10 How long have I been down here\n\n#######\n#######\n##...##\n##*o.##\n##hd.##\n##.p.##\n#######\n#######\n\nmessage 5/10 I can only go, down\n\n#######\n#.....#\n#.oo..#\n####*.#\n####*.#\n####dp#\n####h.#\n#######\n\nmessage 6/10 I lost my shovel ;-;\n\n#######\n#.o####\n##*.###\n##*h###\n#.p*..#\n#o.d..#\n#....o#\n#######\n\nmessage 7/10 riddles in the earth\n\n###########\n#.........#\n#.........#\n#.........#\n#..####...#\n#...*.#.o.#\n#..#**#.o.#\n#..##.#.o.#\n#.........#\n#.Ph....d.#\n#.........#\n###########\n\nmessage 8/10 will I ever see the light again\n\n##########\n##########\n##o.hp.d##\n##.##*#.##\n##.#@@#.##\n##......##\n##########\n##########\n\nmessage 9/10 I sense a great pressure\n\n###########\n###p..#h###\n###.#######\n#...###...#\n#.*.#d#**.#\n###h###ooo#\n###########\n\n#########\n####p####\n####.####\n####.####\n####.####\n####.####\n####.####\n####s####\n#########\n\n#######\n###p###\n###.###\n###.###\n###.###\n###s###\n#######\n\n#####\n##p##\n##.##\n##s##\n#####\n\nmessage 10/10 my final trial\n\n#######\n#######\n##oo.##\n###**##\n###dp##\n####h##\n#######\n#######\n\n\nmessage 11/10 deepest~\n\n#############\n#p.h##g##...#\n#########.d.#\n#########...#\n#############\n#############\n#############\n#############\n#############\n#.*.#########\n#...#########\n#.o.#########\n#############\n\n###########\n#####s#####\n###########\n###########\n###########\n###########\n###########\n###########\n#####g#####\n#####p#####\n###########\n\n#########\n####s####\n#########\n#########\n#########\n#########\n####g####\n####p####\n#########\n\n#######\n###s###\n#######\n#######\n###g###\n###p###\n#######\n\nmessage 0/10 freedom\n\nrrrr#####rrrr\nrrrrr#s#rrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrrrrrrrrrr\nrrrrr###rrrrr\nrrrr#####rrrr\nrrr###h###rrr\n#####rpr#####\n\n\n\n\n\n\n\n",[3,3,3,3,3,2,2,1,1,2,2,3,3,2,2,2,1,1,1,2,1,0,1,1,2,3,0,3,2,2,3,3,3,3,3,3,3,0,0,0,0,0,0,0],"stonebackground wall:0,0,0,0,0,0,0,0,stonebackground:1,1,0,0,0,\n0,1,0,0,0,0,0,0,1,1,1,1,0,\n0,1,0,0,0,0,0,0,1,1,1,crate stonebackground target:2,0,\n0,1,0,0,0,0,0,0,1,1,1,1,0,\n0,1,0,1,1,1,0,0,1,0,1,0,0,\n0,1,0,1,0,1,0,0,1,0,1,0,0,\n0,1,1,1,0,1,1,1,1,0,1,0,0,\n0,0,0,0,0,0,0,0,0,0,1,0,0,\n0,0,0,0,0,0,0,0,0,0,1,0,0,\n0,1,1,stonebackground superplayer:3,1,1,1,1,1,1,1,0,0,\n0,1,stairs stonebackground:4,1,0,0,0,0,0,0,0,0,0,\n0,1,1,1,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n",24,"1627769218300.0015"] ], [ `gallery game: at the hedges of time`, - ["title At the Hedges of Time\nauthor galactical\n\nbackground_color #222323\n\ntext_color #f0f6f0\n\nrun_rules_on_level_start\n\nnoundo\n\nzoomscreen 12x11\n\n========\nOBJECTS\n========\n\nBackground\n#c5ccb8\n\nDot\n#9a9a97\n.....\n.....\n.....\n..0..\n.....\n\nBounds\nTransparent\n\nBoundaryWall\nTransparent\n\nWall\n#93a167 #557064\n00000\n00000\n11111\n11111\n11111\n\nOverWall\n#93a167\n.....\n.....\n00000\n00000\n00000\n\nCrate\n#8d6268 #6E4D51\n00000\n00000\n11111\n11111\n11111\n\nOverCrate\n#8d6268\n.....\n.....\n.....\n00000\n00000\n\nTimeCrate\n#70568F #433455\n00000\n00000\n11111\n11111\n11111\n\nOverTimeCrate\n#70568F\n.....\n.....\n.....\n00000\n00000\n\nFadeCrate\n#8d6268 #6E4D51\n0.0.0\n.0.0.\n1.1.1\n.1.1.\n1.1.1\n\nOverFadeCrate\n#8d6268\n.....\n.....\n.....\n0.0.0\n.0.0.\n\nPlayer\nTransparent\n\nTarget\n#f7e26b #c5ccb8\n00000\n01110\n01010\n01110\n00000\n\nCam\nTransparent\n\nStatue\n#696969 (nice) #787878 #636363\n.111.\n.111.\n.000.\n.0.0.\n.....\n\nOverStatue\n#696969 #787878 #585858\n.....\n.222.\n.222.\n21112\n00000\n\nClock\n#f7e26b #f0f6f0 black\n.000.\n01110\n11211\n11221\n11111\n\nClockL\n#f7e26b\n.....\n.....\n....0\n....0\n....0\n\nClockR\n#f7e26b\n.....\n.....\n0....\n0....\n0....\n\nClockD\n#f7e26b #f0f6f0 #6e6962\n01110\n.000.\n..2..\n..2..\n.....\n\nPlayerSpr\n#F1C69B #4A403B Black\n.202.\n.000.\n.111.\n.1.1.\n.....\n\n\nUPlayer\n#F1C69B #4A403B Black #c5ccb8 #f7e26b\n4000.\n.000.\n.111.\n.1.1.\n.....\n\nRPlayer\n#F1C69B #4A403B Black #c5ccb8 #f7e26b\n.0024\n.000.\n.111.\n.1.1.\n.....\n\nLPlayer\n#F1C69B #4A403B Black #c5ccb8 #f7e26b\n4200.\n.000.\n.111.\n.1.1.\n.....\n\nDPlayer\n#F1C69B #4A403B Black #c5ccb8 #f7e26b\n.2424\n.004.\n.111.\n.1.1.\n.....\n\n\nOverPlayer\n#F1C69B #564A44 #3E3531 #4A403B\n.....\n.222.\n.222.\n21112\n33333\n\nExit\n#5F5A54\n.....\n.....\n.....\n00000\n.....\n\nExitR\n#6e6962 #c5ccb8 #5F5A54\n0....\n0....\n0....\n0....\n.....\n\nExitL\n#6e6962 #c5ccb8 #5F5A54\n....0\n....0\n....0\n....0\n.....\n\nExitU\n#6e6962 #5F5A54\n.111.\n10001\n00.00\n.....\n.....\n\nExitUR\n#c5ccb8 #6e6962 #5F5A54\n.....\n2....\n1....\n1....\n1....\n\nExitUL\n#c5ccb8 #6e6962 #5F5A54\n.....\n....2\n....1\n....1\n....1\n\nDoor\n#514D48\n0.0.0\n.0.0.\n0.0.0\n.....\n.....\n\nOverDoor\n#514D48\n.....\n.....\n.0.0.\n0.0.0\n.0.0.\n\nGate\n#f7e26b #ECD968\n.....\n.....\n.....\n00000\n.....\n\nGateR\n#f7e26b #ECD968\n0....\n0....\n0....\n0....\n.....\n\nGateL\n#f7e26b #ECD968\n....0\n....0\n....0\n....0\n.....\n\nGateU\n#f7e26b #ECD968\n.111.\n10001\n00.00\n.....\n.....\n\nGateUR\n#f7e26b #ECD968\n.....\n1....\n0....\n0....\n0....\n\nGateUL\n#f7e26b #ECD968\n.....\n....1\n....0\n....0\n....0\n\nOverBushR\n#93a167\n.....\n.....\n..000\n..000\n..000\n\nOverBushL\n#93a167\n.....\n.....\n000..\n000..\n000..\n\nBushR\n#93a167 #557064\n..000\n..000\n..111\n..111\n..111\n\nBushL\n#93a167 #557064\n000..\n000..\n111..\n111..\n111..\n\n0\n#f0f6f0 \n.....\n..0..\n.0.0.\n.0.0.\n..0..\n\n1\n#f0f6f0 \n.....\n..0..\n.00..\n..0..\n.000.\n\n2\n#f0f6f0 \n.....\n.00..\n...0.\n..0..\n.000.\n\n3\n#f0f6f0 \n.....\n.000.\n..00.\n...0.\n.000.\n\n4\n#f0f6f0 \n.....\n.0...\n.0.0.\n.000.\n...0.\n\n5\n#f0f6f0 \n.....\n.00..\n.000.\n...0.\n.000.\n\n6\n#f0f6f0 \n.....\n.0...\n.0...\n.000.\n.000.\n\n7\n#f0f6f0 \n.....\n.000.\n...0.\n..0..\n.0...\n\n8\n#f0f6f0 \n.....\n.000.\n.000.\n.0.0.\n.000.\n\n9\n#f0f6f0 \n.....\n.000.\n.0.0.\n.000.\n...0.\n\nSoundStop\ntransparent\n\nCountDown\ntransparent\n\nCountUp\ntransparent\n\ncp\nTransparent\n\nStop\nTransparent\n\nSame\nTransparent\n\nRewind\nTransparent\n\nNoMarks\ntransparent\n\nHighest\ntransparent\n\nz0\ntransparent\n\nx0\ntransparent\n\nq1\ntransparent\nq2\nTransparent\nq3\nTransparent\nq4\nTransparent\nq5\nTransparent\nq6\nTransparent\nq7\nTransparent\nq8\nTransparent\nq9\nTransparent\nq10\nTransparent\nq11\nTransparent\nq12\nTransparent\nq13\nTransparent\nq14\nTransparent\nq15\nTransparent\nq16\nTransparent\nq17\nTransparent\nq18\nTransparent\nq19\nTransparent\nq20\nTransparent\nq21\nTransparent\nq22\nTransparent\nq23\nTransparent\nq24\nTransparent\nq25\nTransparent\nq26\nTransparent\nq27\nTransparent\nq28\nTransparent\nq29\nTransparent\nq30\nTransparent\nq31\nTransparent\nq32\nTransparent\nq33\nTransparent\nq34\nTransparent\nq35\nTransparent\nq36\nTransparent\nq37\nTransparent\nq38\nTransparent\nq39\nTransparent\nq40\nTransparent\nq41\nTransparent\nq42\nTransparent\nq43\nTransparent\nq44\nTransparent\nq45\nTransparent\nq46\nTransparent\nq47\nTransparent\nq48\nTransparent\nq49\nTransparent\nq50\nTransparent\nq51\nTransparent\nq52\nTransparent\nq53\nTransparent\nq54\nTransparent\nq55\nTransparent\nq56\nTransparent\nq57\nTransparent\nq58\nTransparent\nq59\nTransparent\nq60\nTransparent\nq61\nTransparent\nq62\nTransparent\nq63\nTransparent\nq64\nTransparent\nq65\nTransparent\nq66\nTransparent\nq67\nTransparent\nq68\nTransparent\nq69\nTransparent\nq70\nTransparent\nq71\nTransparent\nq72\nTransparent\nq73\nTransparent\nq74\nTransparent\nq75\nTransparent\nq76\nTransparent\nq77\nTransparent\nq78\nTransparent\nq79\nTransparent\nq80\nTransparent\nq81\nTransparent\nq82\nTransparent\nq83\nTransparent\nq84\nTransparent\nq85\nTransparent\nq86\nTransparent\nq87\nTransparent\nq88\nTransparent\nq89\nTransparent\nq90\nTransparent\nq91\nTransparent\nq92\nTransparent\nq93\nTransparent\nq94\nTransparent\nq95\nTransparent\nq96\nTransparent\nq97\nTransparent\nq98\nTransparent\nq99\nTransparent\nq100\nTransparent\nq101\ntransparent\nq102\ntransparent\nq103\ntransparent\nq104\ntransparent\nq105\ntransparent\nq106\ntransparent\nq107\ntransparent\nq108\ntransparent\nq109\ntransparent\nq110\ntransparent\nq111\ntransparent\nq112\ntransparent\nq113\ntransparent\nq114\ntransparent\nq115\ntransparent\nq116\ntransparent\nq117\ntransparent\nq118\ntransparent\nq119\ntransparent\nq120\ntransparent\nq121\ntransparent\nq122\ntransparent\nq123\ntransparent\nq124\ntransparent\nq125\ntransparent\nq126\ntransparent\nq127\ntransparent\nq128\ntransparent\nq129\ntransparent\nq130\ntransparent\nq131\ntransparent\nq132\ntransparent\nq133\ntransparent\nq134\ntransparent\nq135\ntransparent\nq136\ntransparent\nq137\ntransparent\nq138\ntransparent\nq139\ntransparent\nq140\ntransparent\nq141\ntransparent\nq142\ntransparent\nq143\ntransparent\nq144\ntransparent\nq145\ntransparent\nq146\ntransparent\nq147\ntransparent\nq148\ntransparent\nq149\ntransparent\nq150\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n\n- = Bounds\n\n# = Wall\n! = BoundaryWall and Wall\np = PlayerSpr and q1\ne = Exit and Bounds\n* = Crate\nt = TimeCrate\no = Target\nc = clock and BoundaryWall and Wall\ng = gate\n\nWalls = Wall or BushR or BushL or Door\nCrates = Crate or TimeCrate\n\nWallOrExit = Walls or Exit\n\nremove = OverWall or OverPlayer or ExitR or ExitL or ExitU or ExitUR or ExitUL or Dot or OverBushR or OverBushL or OverCrate or OverTimeCrate or FadeCrate or OverFadeCrate or OverDoor or ClockR or ClockD or ClockL or OverStatue\n\nDirPlayer = UPlayer or RPlayer or DPlayer or LPlayer\n\nNumber = 0 or 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9\n\nClockSide = ClockL or ClockR\n\nMark = q150 or q149 or q148 or q147 or q146 or q145 or q144 or q143 or q142 or q141 or q140 or q139 or q138 or q137 or q136 or q135 or q134 or q133 or q132 or q131 or q130 or q129 or q128 or q127 or q126 or q125 or q124 or q123 or q122 or q121 or q120 or q119 or q118 or q117 or q116 or q115 or q114 or q113 or q112 or q111 or q110 or q109 or q108 or q107 or q106 or q105 or q104 or q103 or q102 or q101 or q100 or q99 or q98 or q97 or q96 or q95 or q94 or q93 or q92 or q91 or q90 or q89 or q88 or q87 or q86 or q85 or q84 or q83 or q82 or q81 or q80 or q79 or q78 or q77 or q76 or q75 or q74 or q73 or q72 or q71 or q70 or q69 or q68 or q67 or q66 or q65 or q64 or q63 or q62 or q61 or q60 or q59 or q58 or q57 or q56 or q55 or q54 or q53 or q52 or q51 or q50 or q49 or q48 or q47 or q46 or q45 or q44 or q43 or q42 or q41 or q40 or q39 or q38 or q37 or q36 or q35 or q34 or q33 or q32 or q31 or q30 or q29 or q28 or q27 or q26 or q25 or q24 or q23 or q22 or q21 or q20 or q19 or q18 or q17 or q16 or q15 or q14 or q13 or q12 or q11 or q10 or q9 or q8 or q7 or q6 or q5 or q4 or q3 or q2\n\n=======\nSOUNDS\n=======\n\nsfx0 76045107\nsfx1 32958905\nsfx2 11140903\nsfx3 3750107\n\nrestart 26711100\n\nshowmessage 76045107\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nDot\nExit\nGate\nCam\nBounds\nTarget\nSoundStop\ncp\nStop\nRewind\nSame\nNoMarks\nHighest\nz0\nx0\nq1\nq2\nq3\nq4\nq5\nq6\nq7\nq8\nq9\nq10\nq11\nq12\nq13\nq14\nq15\nq16\nq17\nq18\nq19\nq20\nq21\nq22\nq23\nq24\nq25\nq26\nq27\nq28\nq29\nq30\nq31\nq32\nq33\nq34\nq35\nq36\nq37\nq38\nq39\nq40\nq41\nq42\nq43\nq44\nq45\nq46\nq47\nq48\nq49\nq50\nq51\nq52\nq53\nq54\nq55\nq56\nq57\nq58\nq59\nq60\nq61\nq62\nq63\nq64\nq65\nq66\nq67\nq68\nq69\nq70\nq71\nq72\nq73\nq74\nq75\nq76\nq77\nq78\nq79\nq80\nq81\nq82\nq83\nq84\nq85\nq86\nq87\nq88\nq89\nq90\nq91\nq92\nq93\nq94\nq95\nq96\nq97\nq98\nq99\nq100\nq101\nq102\nq103\nq104\nq105\nq106\nq107\nq108\nq109\nq110\nq111\nq112\nq113\nq114\nq115\nq116\nq117\nq118\nq119\nq120\nq121\nq122\nq123\nq124\nq125\nq126\nq127\nq128\nq129\nq130\nq131\nq132\nq133\nq134\nq135\nq136\nq137\nq138\nq139\nq140\nq141\nq142\nq143\nq144\nq145\nq146\nq147\nq148\nq149\nq150\nExitR ExitL\nGateR GateL\nDoor\nCrate\nWall PlayerSpr BushR BushL\nUPlayer RPlayer DPlayer LPlayer\nStatue\nTimeCrate\nFadeCrate\nOverWall OverBushR OverBushL OverCrate OverTimeCrate\nOverFadeCrate\nExitU ExitUR ExitUL\nGateU GateUR GateUL\nOverDoor\nOverPlayer\nOverStatue\nClock\nClockR Clockd ClockL\nCountDown CountUp\nNumber\nPlayer\nBoundaryWall\n\n======\nRULES\n======\n\nup [PlayerSpr no DirPlayer no Statue] [ | Exit | ] -> [PlayerSpr] [cp | Exit | cp]\n\n[DirPlayer] -> []\n\n[stationary Player] -> cancel\n\n[> Player] [q150] -> cancel\n\n[] -> [NoMarks]\n[NoMarks] [Mark] -> [] [Mark]\n[action Player] [NoMarks] -> cancel\n\n(Movement)\n[> Player] [PlayerSpr] -> [Player] [> PlayerSpr] \n\n[> PlayerSpr Statue] -> [PlayerSpr Statue] cancel\n[> PlayerSpr | Crates | Crates] -> [PlayerSpr | Crates | Crates] cancel\n[> PlayerSpr | Crates | Walls] -> [PlayerSpr | Crates | Walls] cancel\n[> PlayerSpr | Walls] -> [PlayerSpr | Walls] cancel\n\n[> PlayerSpr] -> sfx0\n\n[OverPlayer Gate] -> [Gate] win\ndown [> PlayerSpr Gate] -> [Gate OverPlayer] again\n\n(Sprite direction)\nup [> PlayerSpr] -> [> PlayerSpr > UPlayer]\nright [> PlayerSpr] -> [> PlayerSpr > RPlayer]\ndown [> PlayerSpr] -> [> PlayerSpr > DPlayer]\nleft [> PlayerSpr] -> [> PlayerSpr > LPlayer]\n\n[> PlayerSpr | TimeCrate] -> [> PlayerSpr | > TimeCrate]\n\n[Stop] -> []\n[action Player] [PlayerSpr] -> [Player] [action PlayerSpr]\n\n\n(Placing Player Markers)\n(--Can this be refactored to be scalable?????? Probably not...)\n[> PlayerSpr no Stop] [q149]-> [> PlayerSpr > q150 Stop] [q149]\n[> PlayerSpr no Stop] [q148]-> [> PlayerSpr > q149 Stop] [q148]\n[> PlayerSpr no Stop] [q147]-> [> PlayerSpr > q148 Stop] [q147]\n[> PlayerSpr no Stop] [q146]-> [> PlayerSpr > q147 Stop] [q146]\n[> PlayerSpr no Stop] [q145]-> [> PlayerSpr > q146 Stop] [q145]\n[> PlayerSpr no Stop] [q144]-> [> PlayerSpr > q145 Stop] [q144]\n[> PlayerSpr no Stop] [q143]-> [> PlayerSpr > q144 Stop] [q143]\n[> PlayerSpr no Stop] [q142]-> [> PlayerSpr > q143 Stop] [q142]\n[> PlayerSpr no Stop] [q141]-> [> PlayerSpr > q142 Stop] [q141]\n[> PlayerSpr no Stop] [q140]-> [> PlayerSpr > q141 Stop] [q140]\n[> PlayerSpr no Stop] [q139]-> [> PlayerSpr > q140 Stop] [q139]\n[> PlayerSpr no Stop] [q138]-> [> PlayerSpr > q139 Stop] [q138]\n[> PlayerSpr no Stop] [q137]-> [> PlayerSpr > q138 Stop] [q137]\n[> PlayerSpr no Stop] [q136]-> [> PlayerSpr > q137 Stop] [q136]\n[> PlayerSpr no Stop] [q135]-> [> PlayerSpr > q136 Stop] [q135]\n[> PlayerSpr no Stop] [q134]-> [> PlayerSpr > q135 Stop] [q134]\n[> PlayerSpr no Stop] [q133]-> [> PlayerSpr > q134 Stop] [q133]\n[> PlayerSpr no Stop] [q132]-> [> PlayerSpr > q133 Stop] [q132]\n[> PlayerSpr no Stop] [q131]-> [> PlayerSpr > q132 Stop] [q131]\n[> PlayerSpr no Stop] [q130]-> [> PlayerSpr > q131 Stop] [q130]\n[> PlayerSpr no Stop] [q129]-> [> PlayerSpr > q130 Stop] [q129]\n[> PlayerSpr no Stop] [q128]-> [> PlayerSpr > q129 Stop] [q128]\n[> PlayerSpr no Stop] [q127]-> [> PlayerSpr > q128 Stop] [q127]\n[> PlayerSpr no Stop] [q126]-> [> PlayerSpr > q127 Stop] [q126]\n[> PlayerSpr no Stop] [q125]-> [> PlayerSpr > q126 Stop] [q125]\n[> PlayerSpr no Stop] [q124]-> [> PlayerSpr > q125 Stop] [q124]\n[> PlayerSpr no Stop] [q123]-> [> PlayerSpr > q124 Stop] [q123]\n[> PlayerSpr no Stop] [q122]-> [> PlayerSpr > q123 Stop] [q122]\n[> PlayerSpr no Stop] [q121]-> [> PlayerSpr > q122 Stop] [q121]\n[> PlayerSpr no Stop] [q120]-> [> PlayerSpr > q121 Stop] [q120]\n[> PlayerSpr no Stop] [q119]-> [> PlayerSpr > q120 Stop] [q119]\n[> PlayerSpr no Stop] [q118]-> [> PlayerSpr > q119 Stop] [q118]\n[> PlayerSpr no Stop] [q117]-> [> PlayerSpr > q118 Stop] [q117]\n[> PlayerSpr no Stop] [q116]-> [> PlayerSpr > q117 Stop] [q116]\n[> PlayerSpr no Stop] [q115]-> [> PlayerSpr > q116 Stop] [q115]\n[> PlayerSpr no Stop] [q114]-> [> PlayerSpr > q115 Stop] [q114]\n[> PlayerSpr no Stop] [q113]-> [> PlayerSpr > q114 Stop] [q113]\n[> PlayerSpr no Stop] [q112]-> [> PlayerSpr > q113 Stop] [q112]\n[> PlayerSpr no Stop] [q111]-> [> PlayerSpr > q112 Stop] [q111]\n[> PlayerSpr no Stop] [q110]-> [> PlayerSpr > q111 Stop] [q110]\n[> PlayerSpr no Stop] [q109]-> [> PlayerSpr > q110 Stop] [q109]\n[> PlayerSpr no Stop] [q108]-> [> PlayerSpr > q109 Stop] [q108]\n[> PlayerSpr no Stop] [q107]-> [> PlayerSpr > q108 Stop] [q107]\n[> PlayerSpr no Stop] [q106]-> [> PlayerSpr > q107 Stop] [q106]\n[> PlayerSpr no Stop] [q105]-> [> PlayerSpr > q106 Stop] [q105]\n[> PlayerSpr no Stop] [q104]-> [> PlayerSpr > q105 Stop] [q104]\n[> PlayerSpr no Stop] [q103]-> [> PlayerSpr > q104 Stop] [q103]\n[> PlayerSpr no Stop] [q102]-> [> PlayerSpr > q103 Stop] [q102]\n[> PlayerSpr no Stop] [q101]-> [> PlayerSpr > q102 Stop] [q101]\n[> PlayerSpr no Stop] [q100]-> [> PlayerSpr > q101 Stop] [q100]\n[> PlayerSpr no Stop] [q99] -> [> PlayerSpr > q100 Stop] [q99]\n[> PlayerSpr no Stop] [q98] -> [> PlayerSpr > q99 Stop] [q98]\n[> PlayerSpr no Stop] [q97] -> [> PlayerSpr > q98 Stop] [q97]\n[> PlayerSpr no Stop] [q96] -> [> PlayerSpr > q97 Stop] [q96]\n[> PlayerSpr no Stop] [q95] -> [> PlayerSpr > q96 Stop] [q95]\n[> PlayerSpr no Stop] [q94] -> [> PlayerSpr > q95 Stop] [q94]\n[> PlayerSpr no Stop] [q93] -> [> PlayerSpr > q94 Stop] [q93]\n[> PlayerSpr no Stop] [q92] -> [> PlayerSpr > q93 Stop] [q92]\n[> PlayerSpr no Stop] [q91] -> [> PlayerSpr > q92 Stop] [q91]\n[> PlayerSpr no Stop] [q90] -> [> PlayerSpr > q91 Stop] [q90]\n[> PlayerSpr no Stop] [q89] -> [> PlayerSpr > q90 Stop] [q89]\n[> PlayerSpr no Stop] [q88] -> [> PlayerSpr > q89 Stop] [q88]\n[> PlayerSpr no Stop] [q87] -> [> PlayerSpr > q88 Stop] [q87]\n[> PlayerSpr no Stop] [q86] -> [> PlayerSpr > q87 Stop] [q86]\n[> PlayerSpr no Stop] [q85] -> [> PlayerSpr > q86 Stop] [q85]\n[> PlayerSpr no Stop] [q84] -> [> PlayerSpr > q85 Stop] [q84]\n[> PlayerSpr no Stop] [q83] -> [> PlayerSpr > q84 Stop] [q83]\n[> PlayerSpr no Stop] [q82] -> [> PlayerSpr > q83 Stop] [q82]\n[> PlayerSpr no Stop] [q81] -> [> PlayerSpr > q82 Stop] [q81]\n[> PlayerSpr no Stop] [q80] -> [> PlayerSpr > q81 Stop] [q80]\n[> PlayerSpr no Stop] [q79] -> [> PlayerSpr > q80 Stop] [q79]\n[> PlayerSpr no Stop] [q78] -> [> PlayerSpr > q79 Stop] [q78]\n[> PlayerSpr no Stop] [q77] -> [> PlayerSpr > q78 Stop] [q77]\n[> PlayerSpr no Stop] [q76] -> [> PlayerSpr > q77 Stop] [q76]\n[> PlayerSpr no Stop] [q75] -> [> PlayerSpr > q76 Stop] [q75]\n[> PlayerSpr no Stop] [q74] -> [> PlayerSpr > q75 Stop] [q74]\n[> PlayerSpr no Stop] [q73] -> [> PlayerSpr > q74 Stop] [q73]\n[> PlayerSpr no Stop] [q72] -> [> PlayerSpr > q73 Stop] [q72]\n[> PlayerSpr no Stop] [q71] -> [> PlayerSpr > q72 Stop] [q71]\n[> PlayerSpr no Stop] [q70] -> [> PlayerSpr > q71 Stop] [q70]\n[> PlayerSpr no Stop] [q69] -> [> PlayerSpr > q70 Stop] [q69]\n[> PlayerSpr no Stop] [q68] -> [> PlayerSpr > q69 Stop] [q68]\n[> PlayerSpr no Stop] [q67] -> [> PlayerSpr > q68 Stop] [q67]\n[> PlayerSpr no Stop] [q66] -> [> PlayerSpr > q67 Stop] [q66]\n[> PlayerSpr no Stop] [q65] -> [> PlayerSpr > q66 Stop] [q65]\n[> PlayerSpr no Stop] [q64] -> [> PlayerSpr > q65 Stop] [q64]\n[> PlayerSpr no Stop] [q63] -> [> PlayerSpr > q64 Stop] [q63]\n[> PlayerSpr no Stop] [q62] -> [> PlayerSpr > q63 Stop] [q62]\n[> PlayerSpr no Stop] [q61] -> [> PlayerSpr > q62 Stop] [q61]\n[> PlayerSpr no Stop] [q60] -> [> PlayerSpr > q61 Stop] [q60]\n[> PlayerSpr no Stop] [q59] -> [> PlayerSpr > q60 Stop] [q59]\n[> PlayerSpr no Stop] [q58] -> [> PlayerSpr > q59 Stop] [q58]\n[> PlayerSpr no Stop] [q57] -> [> PlayerSpr > q58 Stop] [q57]\n[> PlayerSpr no Stop] [q56] -> [> PlayerSpr > q57 Stop] [q56]\n[> PlayerSpr no Stop] [q55] -> [> PlayerSpr > q56 Stop] [q55]\n[> PlayerSpr no Stop] [q54] -> [> PlayerSpr > q55 Stop] [q54]\n[> PlayerSpr no Stop] [q53] -> [> PlayerSpr > q54 Stop] [q53]\n[> PlayerSpr no Stop] [q52] -> [> PlayerSpr > q53 Stop] [q52]\n[> PlayerSpr no Stop] [q51] -> [> PlayerSpr > q52 Stop] [q51]\n[> PlayerSpr no Stop] [q50] -> [> PlayerSpr > q51 Stop] [q50]\n[> PlayerSpr no Stop] [q49] -> [> PlayerSpr > q50 Stop] [q49]\n[> PlayerSpr no Stop] [q48] -> [> PlayerSpr > q49 Stop] [q48]\n[> PlayerSpr no Stop] [q47] -> [> PlayerSpr > q48 Stop] [q47]\n[> PlayerSpr no Stop] [q46] -> [> PlayerSpr > q47 Stop] [q46]\n[> PlayerSpr no Stop] [q45] -> [> PlayerSpr > q46 Stop] [q45]\n[> PlayerSpr no Stop] [q44] -> [> PlayerSpr > q45 Stop] [q44]\n[> PlayerSpr no Stop] [q43] -> [> PlayerSpr > q44 Stop] [q43]\n[> PlayerSpr no Stop] [q42] -> [> PlayerSpr > q43 Stop] [q42]\n[> PlayerSpr no Stop] [q41] -> [> PlayerSpr > q42 Stop] [q41]\n[> PlayerSpr no Stop] [q40] -> [> PlayerSpr > q41 Stop] [q40]\n[> PlayerSpr no Stop] [q39] -> [> PlayerSpr > q40 Stop] [q39]\n[> PlayerSpr no Stop] [q38] -> [> PlayerSpr > q39 Stop] [q38]\n[> PlayerSpr no Stop] [q37] -> [> PlayerSpr > q38 Stop] [q37]\n[> PlayerSpr no Stop] [q36] -> [> PlayerSpr > q37 Stop] [q36]\n[> PlayerSpr no Stop] [q35] -> [> PlayerSpr > q36 Stop] [q35]\n[> PlayerSpr no Stop] [q34] -> [> PlayerSpr > q35 Stop] [q34]\n[> PlayerSpr no Stop] [q33] -> [> PlayerSpr > q34 Stop] [q33]\n[> PlayerSpr no Stop] [q32] -> [> PlayerSpr > q33 Stop] [q32]\n[> PlayerSpr no Stop] [q31] -> [> PlayerSpr > q32 Stop] [q31]\n[> PlayerSpr no Stop] [q30] -> [> PlayerSpr > q31 Stop] [q30]\n[> PlayerSpr no Stop] [q29] -> [> PlayerSpr > q30 Stop] [q29]\n[> PlayerSpr no Stop] [q28] -> [> PlayerSpr > q29 Stop] [q28]\n[> PlayerSpr no Stop] [q27] -> [> PlayerSpr > q28 Stop] [q27]\n[> PlayerSpr no Stop] [q26] -> [> PlayerSpr > q27 Stop] [q26]\n[> PlayerSpr no Stop] [q25] -> [> PlayerSpr > q26 Stop] [q25]\n[> PlayerSpr no Stop] [q24] -> [> PlayerSpr > q25 Stop] [q24]\n[> PlayerSpr no Stop] [q23] -> [> PlayerSpr > q24 Stop] [q23]\n[> PlayerSpr no Stop] [q22] -> [> PlayerSpr > q23 Stop] [q22]\n[> PlayerSpr no Stop] [q21] -> [> PlayerSpr > q22 Stop] [q21]\n[> PlayerSpr no Stop] [q20] -> [> PlayerSpr > q21 Stop] [q20]\n[> PlayerSpr no Stop] [q19] -> [> PlayerSpr > q20 Stop] [q19]\n[> PlayerSpr no Stop] [q18] -> [> PlayerSpr > q19 Stop] [q18]\n[> PlayerSpr no Stop] [q17] -> [> PlayerSpr > q18 Stop] [q17]\n[> PlayerSpr no Stop] [q16] -> [> PlayerSpr > q17 Stop] [q16]\n[> PlayerSpr no Stop] [q15] -> [> PlayerSpr > q16 Stop] [q15]\n[> PlayerSpr no Stop] [q14] -> [> PlayerSpr > q15 Stop] [q14]\n[> PlayerSpr no Stop] [q13] -> [> PlayerSpr > q14 Stop] [q13]\n[> PlayerSpr no Stop] [q12] -> [> PlayerSpr > q13 Stop] [q12]\n[> PlayerSpr no Stop] [q11] -> [> PlayerSpr > q12 Stop] [q11]\n[> PlayerSpr no Stop] [q10] -> [> PlayerSpr > q11 Stop] [q10]\n[> PlayerSpr no Stop] [q9] -> [> PlayerSpr > q10 Stop] [q9]\n[> PlayerSpr no Stop] [q8] -> [> PlayerSpr > q9 Stop] [q8]\n[> PlayerSpr no Stop] [q7] -> [> PlayerSpr > q8 Stop] [q7]\n[> PlayerSpr no Stop] [q6] -> [> PlayerSpr > q7 Stop] [q6]\n[> PlayerSpr no Stop] [q5] -> [> PlayerSpr > q6 Stop] [q5]\n[> PlayerSpr no Stop] [q4] -> [> PlayerSpr > q5 Stop] [q4]\n[> PlayerSpr no Stop] [q3] -> [> PlayerSpr > q4 Stop] [q3]\n[> PlayerSpr no Stop] [q2] -> [> PlayerSpr > q3 Stop] [q2]\n[> PlayerSpr no Stop] [q1] -> [> PlayerSpr > q2 Stop] [q1]\n\n(Placing Crate Markers)\n[> PlayerSpr > Mark | Crate] -> [> PlayerSpr > Mark | > Crate > Mark]\n\n(Rewinding)\n(Teleport the highest mark under the player and the highest mark that is under a crate next to each other at the x and z position)\n[Stop] -> []\n[action PlayerSpr Mark no Stop] [] -> [action PlayerSpr Mark Stop] [z0 Mark] sfx1\nright [z0 | ] -> [z0 | x0]\n[Stop] -> []\n[Highest] -> []\n[Mark Crate] [action PlayerSpr no Stop] [x0] -> [Crate Mark Highest] [action PlayerSpr Stop] [x0 Mark]\n\n(Try to move the objects together)\nright [z0 | Mark x0 ] -> [z0 | < Mark x0]\n\n(The rest of the code must be done \"late\" so I can see the result of the equality check, so I convert the action state to an object called \"Rewind\")\n[Rewind] -> []\n[action PlayerSpr] -> [Rewind PlayerSpr]\n\n(Place the PlayerD object if it's the first turn)\n[stationary PlayerSpr no Rewind] -> [PlayerSpr DPlayer]\n\n(Checks if the two objects failed to combine, if this is the case, then we know they are the same object)\nlate [x0 Mark] [Crate Highest] -> [x0] [Crate Mark Same]\nlate [Mark z0] -> [z0]\n\n(Rewinds a pushed crate)\nlate [Rewind PlayerSpr] [Crate Mark Same] -> [Rewind PlayerSpr Crate] []\n\n(Removes the highest mark that is under the player)\nlate [Stop] -> []\nlate [Rewind PlayerSpr Mark no Stop] -> [Rewind PlayerSpr Stop]\n(Teleports the player to the starting position if there are no marks)\nlate [] -> [NoMarks]\nlate [NoMarks] [Mark] -> [] [Mark]\nlate [NoMarks] [Rewind PlayerSpr no q1] [q1 no Crate] -> [NoMarks] [] [PlayerSpr q1 Rewind DPlayer]\n(Teleports the player to the highest mark)\nlate [Stop] -> []\nlate [Rewind PlayerSpr no Stop] [Mark no Crate no PlayerSpr] -> [] [PlayerSpr Mark Rewind Stop]\n\n(Faces the player in the correct direction after rewinding)\nlate [Stop] -> []\nlate [Highest] -> []\nlate [PlayerSpr no Stop] [Mark no Crate no PlayerSpr] -> [PlayerSpr Stop] [Mark Highest]\n\nlate [] -> [NoMarks]\nlate [NoMarks] [Mark no q2] -> [] [Mark]\n\nlate up [NoMarks] [Rewind PlayerSpr | q1] -> [][Rewind PlayerSpr DPlayer | q1]\nlate right[NoMarks] [Rewind PlayerSpr | q1] -> [][Rewind PlayerSpr LPlayer | q1]\nlate down[NoMarks] [Rewind PlayerSpr | q1] -> [] [Rewind PlayerSpr UPlayer | q1]\nlate left[NoMarks] [Rewind PlayerSpr | q1] -> [] [Rewind PlayerSpr RPlayer | q1]\n\nlate up [Rewind PlayerSpr | Highest] -> [Rewind PlayerSpr DPlayer | ]\nlate right [Rewind PlayerSpr | Highest] -> [Rewind PlayerSpr LPlayer | ]\nlate down [Rewind PlayerSpr | Highest] -> [Rewind PlayerSpr UPlayer | ]\nlate left [Rewind PlayerSpr | Highest] -> [Rewind PlayerSpr RPlayer | ]\n\n\n[Number no Wall] -> [Number Wall BoundaryWall]\n\n(Player/Camera)\nlate [PlayerSpr no Exit no Gate] [Player] -> [PlayerSpr] []\nlate [PlayerSpr no Exit no Gate] -> [PlayerSpr Player]\nlate [Player no BoundaryWall no Exit no Gate | ] -> [Player | Player]\n\n(Doors)\nlate [SoundStop] -> []\nlate [Door] -> [Door SoundStop]\nlate [Door] -> []\nlate [Player | | Exit] [Player Target no Crates] -> [Player | | Exit Door] [Player Target]\n\n[moving Player] [stationary Player] -> [moving Player] [moving Player]\n\nlate [PlayerSpr Exit] [Door] -> [PlayerSpr Exit] []\n\n(Door Sfx)\nlate [SoundStop Exit no Door] -> [Exit] sfx2\n\n(Checkpoint)\nlate [cp Player no PlayerSpr] -> [Player]\nlate [cp PlayerSpr] -> checkpoint\n\n(Timer)\n(Decrease when player moves)\nlate [ClockD Player | no 0 | 0] [PlayerSpr no Rewind] -> [ClockD Player | | 9 Countdown] [PlayerSpr]\nlate [ClockD Player | | 1] [PlayerSpr no Rewind] -> [ClockD Player | | 0] [PlayerSpr]\nlate [ClockD Player | | 2] [PlayerSpr no Rewind] -> [ClockD Player | | 1] [PlayerSpr]\nlate [ClockD Player | | 3] [PlayerSpr no Rewind] -> [ClockD Player | | 2] [PlayerSpr]\nlate [ClockD Player | | 4] [PlayerSpr no Rewind] -> [ClockD Player | | 3] [PlayerSpr]\nlate [ClockD Player | | 5] [PlayerSpr no Rewind] -> [ClockD Player | | 4] [PlayerSpr]\nlate [ClockD Player | | 6] [PlayerSpr no Rewind] -> [ClockD Player | | 5] [PlayerSpr]\nlate [ClockD Player | | 7] [PlayerSpr no Rewind] -> [ClockD Player | | 6] [PlayerSpr]\nlate [ClockD Player | | 8] [PlayerSpr no Rewind] -> [ClockD Player | | 7] [PlayerSpr]\nlate [ClockD Player | | 9 no CountDown] [PlayerSpr no Rewind] -> [ClockD Player | | 8] [PlayerSpr]\n\n(Increase when player rewinds)\nlate [ClockD Player | | 9] [Rewind PlayerSpr] -> [ClockD Player | | 0 CountUp] [Rewind PlayerSpr]\nlate [ClockD Player | | 8] [Rewind PlayerSpr] -> [ClockD Player | | 9] [Rewind PlayerSpr]\nlate [ClockD Player | | 7] [Rewind PlayerSpr] -> [ClockD Player | | 8] [Rewind PlayerSpr]\nlate [ClockD Player | | 6] [Rewind PlayerSpr] -> [ClockD Player | | 7] [Rewind PlayerSpr]\nlate [ClockD Player | | 5] [Rewind PlayerSpr] -> [ClockD Player | | 6] [Rewind PlayerSpr]\nlate [ClockD Player | | 4] [Rewind PlayerSpr] -> [ClockD Player | | 5] [Rewind PlayerSpr]\nlate [ClockD Player | | 3] [Rewind PlayerSpr] -> [ClockD Player | | 4] [Rewind PlayerSpr]\nlate [ClockD Player | | 2] [Rewind PlayerSpr] -> [ClockD Player | | 3] [Rewind PlayerSpr]\nlate [ClockD Player | | 1] [Rewind PlayerSpr] -> [ClockD Player | | 2] [Rewind PlayerSpr]\nlate [ClockD Player | | 0 no CountUp] [Rewind PlayerSpr] -> [ClockD Player | | 1] [Rewind PlayerSpr]\n\n(Tens digit countdown)\nlate down [1 | CountDown] -> [0 | ]\nlate down [2 | CountDown] -> [1 | ]\nlate down [3 | CountDown] -> [2 | ]\nlate down [4 | CountDown] -> [3 | ]\nlate down [5 | CountDown] -> [4 | ]\nlate down [6 | CountDown] -> [5 | ]\nlate down [7 | CountDown] -> [6 | ]\nlate down [8 | CountDown] -> [7 | ]\nlate down [9 | CountDown] -> [8 | ]\n\n(Tens digit countup)\nlate down [8 | CountUp] -> [9 | ]\nlate down [7 | CountUp] -> [8 | ]\nlate down [6 | CountUp] -> [7 | ]\nlate down [5 | CountUp] -> [6 | ]\nlate down [4 | CountUp] -> [5 | ]\nlate down [3 | CountUp] -> [4 | ]\nlate down [2 | CountUp] -> [3 | ]\nlate down [1 | CountUp] -> [2 | ]\nlate down [0 | CountUp] -> [1 | ]\n\n(Turns player into statue)\nlate [SoundStop] -> []\nlate [PlayerSpr no Statue] -> [PlayerSpr SoundStop]\nlate [Statue] -> []\nlate [0 | 0 Player] [PlayerSpr no Rewind] [ClockSide Player] -> [0 | 0] [PlayerSpr Statue] [ClockSide Player]\n\nlate [PlayerSpr SoundStop Statue] -> sfx3\n\n(Places the camera)\nlate down [Player | | | | | | | | | Player] -> [Player | | | | Cam | | | | | Player]\nlate right [Cam | Cam | Cam | Cam | Cam | Cam | Cam | Cam] -> [ | | | | Cam | | | ]\nlate [Player no Cam] -> []\n\n(Visuals)\nlate [remove no Gate] -> []\n\nlate [Crate TimeCrate] -> [Crate TimeCrate FadeCrate]\n\nlate [DirPlayer Statue] -> [Statue]\n\nlate up [Wall | ] -> [Wall | OverWall]\nlate up [Crate | ] -> [Crate | OverCrate]\nlate up [TimeCrate | ] -> [TimeCrate | OverTimeCrate]\nlate up [FadeCrate | ] -> [FadeCrate | OverFadeCrate]\nlate up [PlayerSpr | ] -> [PlayerSpr | OverPlayer]\nlate up [Statue | ] -> [Statue | OverStatue]\nlate up [Exit | ] -> [Exit | ExitU]\nlate up [Gate | ] -> [Gate | GateU]\nlate up [Door | ] -> [Door | OverDoor]\n\nlate right [Clock | ] -> [Clock | ClockR]\nlate down [Clock | ] -> [Clock | ClockD]\nlate left [Clock | ] -> [Clock | ClockL]\n\nlate right [Exit | ] -> [Exit | ExitR]\nlate left [Exit | ] -> [Exit | ExitL]\nlate right [ExitU | ] -> [ExitU | ExitUR]\nlate left [ExitU | ] -> [ExitU | ExitUL]\n\nlate right [Gate | ] -> [Gate | GateR]\nlate left [Gate | ] -> [Gate | GateL]\nlate right [GateU | ] -> [GateU | GateUR]\nlate left [GateU | ] -> [GateU | GateUL]\n\nlate right [Exit | Wall] -> [Exit | BushR]\nlate left [Exit | Wall] -> [Exit | BushL]\n\nlate right [Gate | Wall] -> [Gate | BushR]\nlate left [Gate | Wall] -> [Gate | BushL]\n\nlate up [BushR | ] -> [BushR | OverBushR]\nlate up [BushL | ] -> [BushL | OverBushL]\n\nlate right down [BackGround no Dot| BackGround no Dot] -> [BackGround | Dot BackGround]\nlate down [Dot | Dot] -> [Dot | BackGround]\nlate [Bounds Dot] -> [Bounds]\n\nlate [ExitU Dot] -> [ExitU]\nlate [PlayerSpr Dot] -> [PlayerSpr]\nlate [Gate | Dot] -> [Gate | ]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\nmessage It was a warm and sunny day\nmessage So into the hedges went Sir Montaclé\n\nmessage Then, a witch's curse befell the poor bloke\nmessage Now one step too many, will turn him to stone\n\nmessage Montaclé despaired, wandering lost in the maze\nmessage He knew freedom lay, just beyond the golden gate\n\nmessage But Montaclé was clever, and so are you, so fret not\nmessage Press R to restart, and space to turn back the clock\n\n---------------------\n-----!!!!!!!!!!------\n-----c......##!------\n-----!.t....##!------\n-----2#####.##!------\n-----1..o*..o.!------\n-----!...##...!------\n-----!...#####!------\n-----!........!------\n-----!........!------\n-!!!!!!!e!!!e!!!!!!!-\n-c........!........c-\n-!....####!....#o..!-\n-1.......#!........1-\n-6####..##!..#.to##7-\n-!###o.###!####.###!-\n-!##..####!...t....!-\n-!#.....t.!.....##.!-\n-!........!....#...!-\n-!!!e!!!!!!!!!!!!e!!-\n-c#...####!####....c-\n-!......##!...#.t#.!-\n-1.......o!.t.#*...1-\n-0.....#..!...#o###5-\n-!.......#!....o##.!-\n-!....#t.#!....o#..!-\n-!.......#!........!-\n-!#....###!........!-\n-!!!e!!!!!!!e!!!!!!!-\n-c#...####!.....###c-\n-!......##!......##!-\n-1..o....#!.*.....#2-\n-6...##..#!........1-\n-!....#..#!####....!-\n-!.....*.#!...#..o.!-\n-!#......#!#..#....!-\n-!######.#!.t.#....!-\n-!!!!!!!e!!!e!!!!e!!-\n-c....#...!...#....c-\n-!..#.....!..#.....!-\n-1..#.....!....#.t.2-\n-5..######!....#...0-\n-!...p....!....####!-\n-!....###.!...*o.##!-\n-!#####.#.!####...#!-\n-!....*t..!........!-\n-!!g!!!e!!!e!!!!!!!!-\n-----!...#...#c------\n-----!...#...#!------\n-----!...#...#1------\n-----!#.....##3------\n-----!##...###!------\n-----!########!------\n-----!#.....##!------\n-----!.......#!------\n-----!!!!!!!!!!------\n---------------------\n\nmessage Thank you for playing!\n\n(\n(Level1)\n---------------------\n-----!!!!!!!!!!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-!!!!!!!e!!!e!!!!!!!-\n-c....#...!........c-\n-!..#.....!........!-\n-1..#.....!........!-\n-5..######!........!-\n-!...p....!........!-\n-!....###.!........!-\n-!#####.#.!........!-\n-!....*t..!........!-\n-!!g!!!e!!!!e!!!!!!!-\n-----!........c------\n-----!........!------\n-----!........1------\n-----!........3------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!!!!!!!!!!------\n---------------------\n\n\n(Level2)\n-!........!.\n-!!!e!!!!!!!\n-c#...####!.\n-!......##!.\n-1..o....#!.\n-6...##..#!.\n-!....#..#!.\n-!.....*.#!.\n-!#......#!.\n-!######p#!.\n-!!!!!!!e!!!\n\n\n(Level3)\n-!........!.\n-!!!e!!!!!!!\n-c#...####!.\n-!......##!.\n-1.......o!.\n-0.....#..!.\n-!.......#!.\n-!....#t.#!.\n-!.......#!.\n-!#.p..###!.\n-!!!e!!!!!!!\n\n\n(Level4)\n-!........!.\n-!!!!!!!e!!!\n-c........!.\n-!....####!.\n-1.......#!.\n-6####..##!.\n-!###o.###!.\n-!##..####!.\n-!#.....t.!.\n-!..p.....!.\n-!!!e!!!!!!!\n\n\n(Level5)\n------------\n-!!!!!!!!!!-\n-c......##!-\n-!.t....##!-\n-2#####.##!-\n-1..o*..o.!-\n-!...##...!-\n-!...#####!-\n-!........!-\n-!..p.....!-\n!!!!e!!!e!!!\n\n(Level6)\n-!........!.\n!!!e!!!!!!!.\n-!.p......c.\n-!....#o..!.\n-!........1.\n-!..#.to##6.\n-!####.###!.\n-!...t....!.\n-!.....##.!.\n-!....#...!.\n!!!!!!!!e!!.\n\n(Level7)\n-!........!.\n!!!!!!!!e!!.\n-!####..p.c.\n-!...#.t#.!.\n-!.t.#*...1.\n-!...#o###5.\n-!....o##.!.\n-!....o#..!.\n-!........!.\n-!.......#!.\n!!!e!!!!!!!.\n\n(Level8)\n------------\n-!!e!!!!!!!-\n-!.p...###c-\n-!......##!-\n-!.*.....#2-\n-!........0-\n-!####....!-\n-!...#..o.!-\n-!#..#....!-\n-!.t.#....!-\n-!!e!!!!e!!-\n-!...#....c-\n-!..#.....!-\n-!....#.t.2-\n-!....#...0-\n-!....####!-\n-!...*o.##!-\n-!####...#!-\n-!........!-\n-!e!!!!!!!!-\n------------\n\n(Bottom Room, no puzzle)\n-.....!.....\n!!!e!!!e!!!!\n-!...#.p.#c.\n-!...#...#!.\n-!...#...#1.\n-!#.....##3.\n-!##...###!.\n-!########!.\n-!#.....##!.\n-!.......#!.\n-!!!!!!!!!!.\n)\n", [1, 1, 0, 0, 0, 0, 3, 3, 2, 3, 3, 3, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 1, 1, 1, 0, 1, 0, 0, 0, "restart", 0, "restart", 0, 3, 3, 3, 0, "undo", 4, 4, 4, 4, 0, 0, 3, 3, 3, 2, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 0, 0, 0, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 3, 3, 3, 3], "background bounds z0:0,background bounds:1,1,1,1,1,1,1,1,1,1,background bounds clockl:2,1,1,1,1,1,1,1,1,2,\n1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,2,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background bounds x0:3,1,1,1,1,1,\n1,1,1,background bounds overwall:4,background boundarywall dot overwall wall:5,background boundarywall clock overwall wall:6,background boundarywall clockd dot overwall wall:7,1 background boundarywall overwall wall:8,6 background boundarywall dot overwall wall:9,background boundarywall overwall wall:10,5,10,5,10,background boundarywall clock dot overwall wall:11,background boundarywall clockd overwall wall:12,0 background boundarywall dot overwall wall:13,0 background boundarywall overwall wall:14,5,10,5,\n10,5,6,7,14,1 background boundarywall dot overwall wall:15,10,5,10,5,10,11,12,13,8,5,10,5,10,background boundarywall dot wall:16,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,background boundarywall wall:17,background clockr dot:18,\nbackground:19,background dot overwall:20,background overwall wall:21,background dot overwall wall:22,21,background dot wall:23,background overwall:24,5,background clockr wall:25,background dot:26,19,26,19,26,24,22,10,background clockr dot wall:27,19,26,19,\n26,24,22,21,16,background clockr:28,26,19,26,19,20,background wall:29,background dot gateul overbushl:30,background boundarywall bushl gatel:31,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,4,16,19,26,24,22,21,23,19,\nbackground dot exitul overbushl:32,background boundarywall bushl exitl:33,26,19,26,19,26,19,26,background exitul overbushl:34,background boundarywall bushl dot exitl:35,19,26,19,26,19,26,24,22,17,background dot q7:36,\nbackground q6:37,background dot q5:38,background q4:39,background dot q3:40,24,23,background gateu:41,background dot gate:42,1,1,1,1,1,1,1,1,1,1,1,1,2,\n1,1,1,1,1,1,4,17,26,19,20,21,23,19,26,background cp exitu:43,background bounds exit:44,19,26,19,26,\n19,26,background q32:45,background exitu q31:46,background bounds exit q30:47,background dot q29:48,background overcrate q28:49,background crate dot q26 target:50,19,26,19,20,21,16,background overwall q8:51,22,21,23,background q2:52,20,29,\nbackground dot gateur overbushr:53,background boundarywall bushr gater:54,1,1,1,1,1,1,1,1,1,1,4,10,11,12,2 background boundarywall dot overwall wall:55,8,5,10,5,\n10,16,19,26,24,23,background target:56,26,19,background dot exitur overbushr:57,background boundarywall bushr exitr:58,26,19,background dot q37:59,background q36:60,background dot q35:61,background q34:62,background dot q33:63,background exitur overbushr:64,background boundarywall bushr dot exitr:65,19,\nbackground dot q27:66,background overwall q25 q26:67,23,19,26,24,22,17,background dot q9:68,background q10:69,20,29,background dot q1:70,24,23,24,5,10,5,10,5,\n10,5,10,5,17,1,4,16,28,20,29,26,19,26,19,20,17,20,29,26,19,\n20,29,26,24,5,29,26,background q38:71,background cam dot player:72,24,23,19,20,10,23,19,background dot overwall q24 q25:73,background cam overwall wall:74,23,19,20,\n21,5,29,background dot q11:75,24,background cam dot wall:76,24,22,background overcrate wall:77,background crate dot exitul overbushl:78,33,26,19,20,21,22,21,23,24,16,1,\n4,17,background dot overtimecrate:79,background overwall timecrate:80,23,19,26,19,26,34,35,24,23,19,20,21,23,19,20,10,23,\n19,background dot highest overwall q39:81,29,26,19,20,21,5,29,26,background q21 q24:82,background dot q20 q21:83,background q19 q20:84,background dot q19:85,background overwall q18:86,background dot exitul overbushl wall:87,33,26,background q12:88,20,29,\n20,29,79,background exitu timecrate:89,44,background cp:90,26,19,20,21,23,19,20,17,1,4,16,19,20,29,background dot target:91,\n19,26,19,43,44,background cp dot overwall:92,29,20,21,22,background overtimecrate wall:93,background dot timecrate:94,24,5,21,background dot overplayer overstatue wall:95,background playerspr q40 soundstop statue stop:96,26,19,26,24,\n22,10,22,29,background dot q23:97,background q22:98,26,19,background dot q17:99,background exitu q16:100,background bounds exit q15:101,background q14:102,background dot q13:103,24,23,24,22,29,57,58,26,\n19,26,19,20,29,26,24,16,1,4,17,26,24,background dot overcrate wall:104,background crate overwall:105,22,29,26,64,65,24,\n22,21,22,21,23,19,20,10,22,93,background dot target timecrate:106,24,22,21,22,21,5,21,22,21,22,\n21,22,21,background dot exitur overbushr wall:107,58,26,19,20,29,26,19,26,24,5,21,22,29,26,24,23,19,\n20,17,1,4,16,19,20,29,20,21,23,19,20,10,5,10,5,10,5,10,5,\n10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,\n5,10,5,10,5,10,background boundarywall dot exitul overbushl wall:108,33,26,19,26,19,20,29,26,24,16,1,4,17,26,\n19,26,19,20,29,26,34,35,19,26,19,20,29,26,19,20,10,23,19,26,19,\n26,19,26,34,35,19,26,19,20,29,20,29,32,33,26,19,26,19,26,24,23,\n43,44,90,26,19,20,21,23,19,20,17,1,4,5,21,22,29,91,24,23,19,\n43,44,background cp dot:109,19,26,24,23,19,26,24,5,29,79,background timecrate:110,26,19,26,19,43,44,109,\nbackground overcrate:111,background crate dot:112,24,23,19,79,background cp exitu timecrate:113,44,90,26,19,26,19,20,29,57,58,26,19,20,21,\n22,21,23,24,16,1,4,10,22,21,23,19,20,29,26,64,65,19,26,24,22,\n29,26,19,20,10,23,19,26,19,26,19,26,64,65,19,26,19,20,29,26,19,\n57,58,20,29,26,19,26,24,23,24,5,background clockl overwall wall:114,22,21,22,21,22,21,22,17,1,\n4,5,10,5,10,5,10,5,10,5,17,26,19,26,24,background dot overtimecrate wall:115,110,26,24,5,21,\n22,21,23,19,26,19,20,17,26,19,26,24,22,21,22,21,5,29,26,19,26,\n111,background crate dot overwall:116,29,20,10,11,12,15,3 background boundarywall overwall wall:117,5,10,5,10,16,1,1,1,1,1,1,1,\n1,1,1,4,16,24,23,background overtimecrate:118,94,19,26,24,22,17,26,111,112,56,91,56,26,\n24,16,19,26,19,26,19,26,19,20,17,26,24,22,21,23,56,26,24,16,background bounds clockr:119,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,17,26,\n56,26,background overwall target:120,23,24,23,34,35,118,94,24,22,21,23,19,20,10,23,19,26,19,\n26,19,26,34,35,19,26,19,20,29,26,19,20,17,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,4,16,19,26,24,22,29,20,29,\n43,44,92,29,20,21,23,19,26,24,5,21,23,19,26,19,91,19,43,44,109,\n118,94,24,22,29,26,24,16,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,4,17,background clockl dot:121,19,20,21,23,19,26,64,65,background clockl:122,26,24,23,\n19,26,19,20,10,background clockl dot overwall wall:123,21,23,19,26,19,26,64,65,122,26,19,20,21,22,29,\n20,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n4,5,6,7,8,7 background boundarywall dot overwall wall:124,10,5,10,5,10,11,12,15,5 background boundarywall overwall wall:125,5,10,5,10,5,6,\n7,2 background boundarywall overwall wall:126,15,10,5,10,5,10,11,12,55,14,5,10,5,10,16,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,119,1,1,1,\n1,1,1,1,1,119,1,1,1,1,1,1,1,1,119,1,1,1,1,1,1,\n1,1,119,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n", 8, "1627769376598.7021"] + ["title At the Hedges of Time\nauthor galactical\n\nbackground_color #222323\n\ntext_color #f0f6f0\n\nrun_rules_on_level_start\n\nnoundo\n\nzoomscreen 12x11\n\n========\nOBJECTS\n========\n\nBackground\n#c5ccb8\n\nDot\n#9a9a97\n.....\n.....\n.....\n..0..\n.....\n\nBounds\nTransparent\n\nBoundaryWall\nTransparent\n\nWall\n#93a167 #557064\n00000\n00000\n11111\n11111\n11111\n\nOverWall\n#93a167\n.....\n.....\n00000\n00000\n00000\n\nCrate\n#8d6268 #6E4D51\n00000\n00000\n11111\n11111\n11111\n\nOverCrate\n#8d6268\n.....\n.....\n.....\n00000\n00000\n\nTimeCrate\n#70568F #433455\n00000\n00000\n11111\n11111\n11111\n\nOverTimeCrate\n#70568F\n.....\n.....\n.....\n00000\n00000\n\nFadeCrate\n#8d6268 #6E4D51\n0.0.0\n.0.0.\n1.1.1\n.1.1.\n1.1.1\n\nOverFadeCrate\n#8d6268\n.....\n.....\n.....\n0.0.0\n.0.0.\n\nPlayer\nTransparent\n\nTarget\n#f7e26b #c5ccb8\n00000\n01110\n01010\n01110\n00000\n\nCam\nTransparent\n\nStatue\n#696969 (nice) #787878 #636363\n.111.\n.111.\n.000.\n.0.0.\n.....\n\nOverStatue\n#696969 #787878 #585858\n.....\n.222.\n.222.\n21112\n00000\n\nClock\n#f7e26b #f0f6f0 black\n.000.\n01110\n11211\n11221\n11111\n\nClockL\n#f7e26b\n.....\n.....\n....0\n....0\n....0\n\nClockR\n#f7e26b\n.....\n.....\n0....\n0....\n0....\n\nClockD\n#f7e26b #f0f6f0 #6e6962\n01110\n.000.\n..2..\n..2..\n.....\n\nPlayerSpr\n#F1C69B #4A403B Black\n.202.\n.000.\n.111.\n.1.1.\n.....\n\n\nUPlayer\n#F1C69B #4A403B Black #c5ccb8 #f7e26b\n4000.\n.000.\n.111.\n.1.1.\n.....\n\nRPlayer\n#F1C69B #4A403B Black #c5ccb8 #f7e26b\n.0024\n.000.\n.111.\n.1.1.\n.....\n\nLPlayer\n#F1C69B #4A403B Black #c5ccb8 #f7e26b\n4200.\n.000.\n.111.\n.1.1.\n.....\n\nDPlayer\n#F1C69B #4A403B Black #c5ccb8 #f7e26b\n.2424\n.004.\n.111.\n.1.1.\n.....\n\n\nOverPlayer\n#F1C69B #564A44 #3E3531 #4A403B\n.....\n.222.\n.222.\n21112\n33333\n\nExit\n#5F5A54\n.....\n.....\n.....\n00000\n.....\n\nExitR\n#6e6962 #c5ccb8 #5F5A54\n0....\n0....\n0....\n0....\n.....\n\nExitL\n#6e6962 #c5ccb8 #5F5A54\n....0\n....0\n....0\n....0\n.....\n\nExitU\n#6e6962 #5F5A54\n.111.\n10001\n00.00\n.....\n.....\n\nExitUR\n#c5ccb8 #6e6962 #5F5A54\n.....\n2....\n1....\n1....\n1....\n\nExitUL\n#c5ccb8 #6e6962 #5F5A54\n.....\n....2\n....1\n....1\n....1\n\nDoor\n#514D48\n0.0.0\n.0.0.\n0.0.0\n.....\n.....\n\nOverDoor\n#514D48\n.....\n.....\n.0.0.\n0.0.0\n.0.0.\n\nGate\n#f7e26b #ECD968\n.....\n.....\n.....\n00000\n.....\n\nGateR\n#f7e26b #ECD968\n0....\n0....\n0....\n0....\n.....\n\nGateL\n#f7e26b #ECD968\n....0\n....0\n....0\n....0\n.....\n\nGateU\n#f7e26b #ECD968\n.111.\n10001\n00.00\n.....\n.....\n\nGateUR\n#f7e26b #ECD968\n.....\n1....\n0....\n0....\n0....\n\nGateUL\n#f7e26b #ECD968\n.....\n....1\n....0\n....0\n....0\n\nOverBushR\n#93a167\n.....\n.....\n..000\n..000\n..000\n\nOverBushL\n#93a167\n.....\n.....\n000..\n000..\n000..\n\nBushR\n#93a167 #557064\n..000\n..000\n..111\n..111\n..111\n\nBushL\n#93a167 #557064\n000..\n000..\n111..\n111..\n111..\n\n0\n#f0f6f0 \n.....\n..0..\n.0.0.\n.0.0.\n..0..\n\n1\n#f0f6f0 \n.....\n..0..\n.00..\n..0..\n.000.\n\n2\n#f0f6f0 \n.....\n.00..\n...0.\n..0..\n.000.\n\n3\n#f0f6f0 \n.....\n.000.\n..00.\n...0.\n.000.\n\n4\n#f0f6f0 \n.....\n.0...\n.0.0.\n.000.\n...0.\n\n5\n#f0f6f0 \n.....\n.00..\n.000.\n...0.\n.000.\n\n6\n#f0f6f0 \n.....\n.0...\n.0...\n.000.\n.000.\n\n7\n#f0f6f0 \n.....\n.000.\n...0.\n..0..\n.0...\n\n8\n#f0f6f0 \n.....\n.000.\n.000.\n.0.0.\n.000.\n\n9\n#f0f6f0 \n.....\n.000.\n.0.0.\n.000.\n...0.\n\nSoundStop\ntransparent\n\nCountDown\ntransparent\n\nCountUp\ntransparent\n\ncp\nTransparent\n\nStop\nTransparent\n\nSame\nTransparent\n\nRewind\nTransparent\n\nNoMarks\ntransparent\n\nHighest\ntransparent\n\nz0\ntransparent\n\nx0\ntransparent\n\nq1\ntransparent\nq2\nTransparent\nq3\nTransparent\nq4\nTransparent\nq5\nTransparent\nq6\nTransparent\nq7\nTransparent\nq8\nTransparent\nq9\nTransparent\nq10\nTransparent\nq11\nTransparent\nq12\nTransparent\nq13\nTransparent\nq14\nTransparent\nq15\nTransparent\nq16\nTransparent\nq17\nTransparent\nq18\nTransparent\nq19\nTransparent\nq20\nTransparent\nq21\nTransparent\nq22\nTransparent\nq23\nTransparent\nq24\nTransparent\nq25\nTransparent\nq26\nTransparent\nq27\nTransparent\nq28\nTransparent\nq29\nTransparent\nq30\nTransparent\nq31\nTransparent\nq32\nTransparent\nq33\nTransparent\nq34\nTransparent\nq35\nTransparent\nq36\nTransparent\nq37\nTransparent\nq38\nTransparent\nq39\nTransparent\nq40\nTransparent\nq41\nTransparent\nq42\nTransparent\nq43\nTransparent\nq44\nTransparent\nq45\nTransparent\nq46\nTransparent\nq47\nTransparent\nq48\nTransparent\nq49\nTransparent\nq50\nTransparent\nq51\nTransparent\nq52\nTransparent\nq53\nTransparent\nq54\nTransparent\nq55\nTransparent\nq56\nTransparent\nq57\nTransparent\nq58\nTransparent\nq59\nTransparent\nq60\nTransparent\nq61\nTransparent\nq62\nTransparent\nq63\nTransparent\nq64\nTransparent\nq65\nTransparent\nq66\nTransparent\nq67\nTransparent\nq68\nTransparent\nq69\nTransparent\nq70\nTransparent\nq71\nTransparent\nq72\nTransparent\nq73\nTransparent\nq74\nTransparent\nq75\nTransparent\nq76\nTransparent\nq77\nTransparent\nq78\nTransparent\nq79\nTransparent\nq80\nTransparent\nq81\nTransparent\nq82\nTransparent\nq83\nTransparent\nq84\nTransparent\nq85\nTransparent\nq86\nTransparent\nq87\nTransparent\nq88\nTransparent\nq89\nTransparent\nq90\nTransparent\nq91\nTransparent\nq92\nTransparent\nq93\nTransparent\nq94\nTransparent\nq95\nTransparent\nq96\nTransparent\nq97\nTransparent\nq98\nTransparent\nq99\nTransparent\nq100\nTransparent\nq101\ntransparent\nq102\ntransparent\nq103\ntransparent\nq104\ntransparent\nq105\ntransparent\nq106\ntransparent\nq107\ntransparent\nq108\ntransparent\nq109\ntransparent\nq110\ntransparent\nq111\ntransparent\nq112\ntransparent\nq113\ntransparent\nq114\ntransparent\nq115\ntransparent\nq116\ntransparent\nq117\ntransparent\nq118\ntransparent\nq119\ntransparent\nq120\ntransparent\nq121\ntransparent\nq122\ntransparent\nq123\ntransparent\nq124\ntransparent\nq125\ntransparent\nq126\ntransparent\nq127\ntransparent\nq128\ntransparent\nq129\ntransparent\nq130\ntransparent\nq131\ntransparent\nq132\ntransparent\nq133\ntransparent\nq134\ntransparent\nq135\ntransparent\nq136\ntransparent\nq137\ntransparent\nq138\ntransparent\nq139\ntransparent\nq140\ntransparent\nq141\ntransparent\nq142\ntransparent\nq143\ntransparent\nq144\ntransparent\nq145\ntransparent\nq146\ntransparent\nq147\ntransparent\nq148\ntransparent\nq149\ntransparent\nq150\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n\n- = Bounds\n\n# = Wall\n! = BoundaryWall and Wall\np = PlayerSpr and q1\ne = Exit and Bounds\n* = Crate\nt = TimeCrate\no = Target\nc = clock and BoundaryWall and Wall\ng = gate\n\nWalls = Wall or BushR or BushL or Door\nCrates = Crate or TimeCrate\n\nWallOrExit = Walls or Exit\n\nremove = OverWall or OverPlayer or ExitR or ExitL or ExitU or ExitUR or ExitUL or Dot or OverBushR or OverBushL or OverCrate or OverTimeCrate or FadeCrate or OverFadeCrate or OverDoor or ClockR or ClockD or ClockL or OverStatue\n\nDirPlayer = UPlayer or RPlayer or DPlayer or LPlayer\n\nNumber = 0 or 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9\n\nClockSide = ClockL or ClockR\n\nMark = q150 or q149 or q148 or q147 or q146 or q145 or q144 or q143 or q142 or q141 or q140 or q139 or q138 or q137 or q136 or q135 or q134 or q133 or q132 or q131 or q130 or q129 or q128 or q127 or q126 or q125 or q124 or q123 or q122 or q121 or q120 or q119 or q118 or q117 or q116 or q115 or q114 or q113 or q112 or q111 or q110 or q109 or q108 or q107 or q106 or q105 or q104 or q103 or q102 or q101 or q100 or q99 or q98 or q97 or q96 or q95 or q94 or q93 or q92 or q91 or q90 or q89 or q88 or q87 or q86 or q85 or q84 or q83 or q82 or q81 or q80 or q79 or q78 or q77 or q76 or q75 or q74 or q73 or q72 or q71 or q70 or q69 or q68 or q67 or q66 or q65 or q64 or q63 or q62 or q61 or q60 or q59 or q58 or q57 or q56 or q55 or q54 or q53 or q52 or q51 or q50 or q49 or q48 or q47 or q46 or q45 or q44 or q43 or q42 or q41 or q40 or q39 or q38 or q37 or q36 or q35 or q34 or q33 or q32 or q31 or q30 or q29 or q28 or q27 or q26 or q25 or q24 or q23 or q22 or q21 or q20 or q19 or q18 or q17 or q16 or q15 or q14 or q13 or q12 or q11 or q10 or q9 or q8 or q7 or q6 or q5 or q4 or q3 or q2\n\n=======\nSOUNDS\n=======\n\nsfx0 76045107\nsfx1 32958905\nsfx2 11140903\nsfx3 3750107\n\nrestart 26711100\n\nshowmessage 76045107\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nDot\nExit\nGate\nCam\nBounds\nTarget\nSoundStop\ncp\nStop\nRewind\nSame\nNoMarks\nHighest\nz0\nx0\nq1\nq2\nq3\nq4\nq5\nq6\nq7\nq8\nq9\nq10\nq11\nq12\nq13\nq14\nq15\nq16\nq17\nq18\nq19\nq20\nq21\nq22\nq23\nq24\nq25\nq26\nq27\nq28\nq29\nq30\nq31\nq32\nq33\nq34\nq35\nq36\nq37\nq38\nq39\nq40\nq41\nq42\nq43\nq44\nq45\nq46\nq47\nq48\nq49\nq50\nq51\nq52\nq53\nq54\nq55\nq56\nq57\nq58\nq59\nq60\nq61\nq62\nq63\nq64\nq65\nq66\nq67\nq68\nq69\nq70\nq71\nq72\nq73\nq74\nq75\nq76\nq77\nq78\nq79\nq80\nq81\nq82\nq83\nq84\nq85\nq86\nq87\nq88\nq89\nq90\nq91\nq92\nq93\nq94\nq95\nq96\nq97\nq98\nq99\nq100\nq101\nq102\nq103\nq104\nq105\nq106\nq107\nq108\nq109\nq110\nq111\nq112\nq113\nq114\nq115\nq116\nq117\nq118\nq119\nq120\nq121\nq122\nq123\nq124\nq125\nq126\nq127\nq128\nq129\nq130\nq131\nq132\nq133\nq134\nq135\nq136\nq137\nq138\nq139\nq140\nq141\nq142\nq143\nq144\nq145\nq146\nq147\nq148\nq149\nq150\nExitR ExitL\nGateR GateL\nDoor\nCrate\nWall PlayerSpr BushR BushL\nUPlayer RPlayer DPlayer LPlayer\nStatue\nTimeCrate\nFadeCrate\nOverWall OverBushR OverBushL OverCrate OverTimeCrate\nOverFadeCrate\nExitU ExitUR ExitUL\nGateU GateUR GateUL\nOverDoor\nOverPlayer\nOverStatue\nClock\nClockR Clockd ClockL\nCountDown CountUp\nNumber\nPlayer\nBoundaryWall\n\n======\nRULES\n======\n\nup [PlayerSpr no DirPlayer no Statue] [ | Exit | ] -> [PlayerSpr] [cp | Exit | cp]\n\n[DirPlayer] -> []\n\n[stationary Player] -> cancel\n\n[> Player] [q150] -> cancel\n\n[] -> [NoMarks]\n[NoMarks] [Mark] -> [] [Mark]\n[action Player] [NoMarks] -> cancel\n\n(Movement)\n[> Player] [PlayerSpr] -> [Player] [> PlayerSpr] \n\n[> PlayerSpr Statue] -> [PlayerSpr Statue] cancel\n[> PlayerSpr | Crates | Crates] -> [PlayerSpr | Crates | Crates] cancel\n[> PlayerSpr | Crates | Walls] -> [PlayerSpr | Crates | Walls] cancel\n[> PlayerSpr | Walls] -> [PlayerSpr | Walls] cancel\n\n[> PlayerSpr] -> sfx0\n\n[OverPlayer Gate] -> [Gate] win\ndown [> PlayerSpr Gate] -> [Gate OverPlayer] again\n\n(Sprite direction)\nup [> PlayerSpr] -> [> PlayerSpr > UPlayer]\nright [> PlayerSpr] -> [> PlayerSpr > RPlayer]\ndown [> PlayerSpr] -> [> PlayerSpr > DPlayer]\nleft [> PlayerSpr] -> [> PlayerSpr > LPlayer]\n\n[> PlayerSpr | TimeCrate] -> [> PlayerSpr | > TimeCrate]\n\n[Stop] -> []\n[action Player] [PlayerSpr] -> [Player] [action PlayerSpr]\n\n\n(Placing Player Markers)\n(--Can this be refactored to be scalable?????? Probably not...)\n[> PlayerSpr no Stop] [q149]-> [> PlayerSpr > q150 Stop] [q149]\n[> PlayerSpr no Stop] [q148]-> [> PlayerSpr > q149 Stop] [q148]\n[> PlayerSpr no Stop] [q147]-> [> PlayerSpr > q148 Stop] [q147]\n[> PlayerSpr no Stop] [q146]-> [> PlayerSpr > q147 Stop] [q146]\n[> PlayerSpr no Stop] [q145]-> [> PlayerSpr > q146 Stop] [q145]\n[> PlayerSpr no Stop] [q144]-> [> PlayerSpr > q145 Stop] [q144]\n[> PlayerSpr no Stop] [q143]-> [> PlayerSpr > q144 Stop] [q143]\n[> PlayerSpr no Stop] [q142]-> [> PlayerSpr > q143 Stop] [q142]\n[> PlayerSpr no Stop] [q141]-> [> PlayerSpr > q142 Stop] [q141]\n[> PlayerSpr no Stop] [q140]-> [> PlayerSpr > q141 Stop] [q140]\n[> PlayerSpr no Stop] [q139]-> [> PlayerSpr > q140 Stop] [q139]\n[> PlayerSpr no Stop] [q138]-> [> PlayerSpr > q139 Stop] [q138]\n[> PlayerSpr no Stop] [q137]-> [> PlayerSpr > q138 Stop] [q137]\n[> PlayerSpr no Stop] [q136]-> [> PlayerSpr > q137 Stop] [q136]\n[> PlayerSpr no Stop] [q135]-> [> PlayerSpr > q136 Stop] [q135]\n[> PlayerSpr no Stop] [q134]-> [> PlayerSpr > q135 Stop] [q134]\n[> PlayerSpr no Stop] [q133]-> [> PlayerSpr > q134 Stop] [q133]\n[> PlayerSpr no Stop] [q132]-> [> PlayerSpr > q133 Stop] [q132]\n[> PlayerSpr no Stop] [q131]-> [> PlayerSpr > q132 Stop] [q131]\n[> PlayerSpr no Stop] [q130]-> [> PlayerSpr > q131 Stop] [q130]\n[> PlayerSpr no Stop] [q129]-> [> PlayerSpr > q130 Stop] [q129]\n[> PlayerSpr no Stop] [q128]-> [> PlayerSpr > q129 Stop] [q128]\n[> PlayerSpr no Stop] [q127]-> [> PlayerSpr > q128 Stop] [q127]\n[> PlayerSpr no Stop] [q126]-> [> PlayerSpr > q127 Stop] [q126]\n[> PlayerSpr no Stop] [q125]-> [> PlayerSpr > q126 Stop] [q125]\n[> PlayerSpr no Stop] [q124]-> [> PlayerSpr > q125 Stop] [q124]\n[> PlayerSpr no Stop] [q123]-> [> PlayerSpr > q124 Stop] [q123]\n[> PlayerSpr no Stop] [q122]-> [> PlayerSpr > q123 Stop] [q122]\n[> PlayerSpr no Stop] [q121]-> [> PlayerSpr > q122 Stop] [q121]\n[> PlayerSpr no Stop] [q120]-> [> PlayerSpr > q121 Stop] [q120]\n[> PlayerSpr no Stop] [q119]-> [> PlayerSpr > q120 Stop] [q119]\n[> PlayerSpr no Stop] [q118]-> [> PlayerSpr > q119 Stop] [q118]\n[> PlayerSpr no Stop] [q117]-> [> PlayerSpr > q118 Stop] [q117]\n[> PlayerSpr no Stop] [q116]-> [> PlayerSpr > q117 Stop] [q116]\n[> PlayerSpr no Stop] [q115]-> [> PlayerSpr > q116 Stop] [q115]\n[> PlayerSpr no Stop] [q114]-> [> PlayerSpr > q115 Stop] [q114]\n[> PlayerSpr no Stop] [q113]-> [> PlayerSpr > q114 Stop] [q113]\n[> PlayerSpr no Stop] [q112]-> [> PlayerSpr > q113 Stop] [q112]\n[> PlayerSpr no Stop] [q111]-> [> PlayerSpr > q112 Stop] [q111]\n[> PlayerSpr no Stop] [q110]-> [> PlayerSpr > q111 Stop] [q110]\n[> PlayerSpr no Stop] [q109]-> [> PlayerSpr > q110 Stop] [q109]\n[> PlayerSpr no Stop] [q108]-> [> PlayerSpr > q109 Stop] [q108]\n[> PlayerSpr no Stop] [q107]-> [> PlayerSpr > q108 Stop] [q107]\n[> PlayerSpr no Stop] [q106]-> [> PlayerSpr > q107 Stop] [q106]\n[> PlayerSpr no Stop] [q105]-> [> PlayerSpr > q106 Stop] [q105]\n[> PlayerSpr no Stop] [q104]-> [> PlayerSpr > q105 Stop] [q104]\n[> PlayerSpr no Stop] [q103]-> [> PlayerSpr > q104 Stop] [q103]\n[> PlayerSpr no Stop] [q102]-> [> PlayerSpr > q103 Stop] [q102]\n[> PlayerSpr no Stop] [q101]-> [> PlayerSpr > q102 Stop] [q101]\n[> PlayerSpr no Stop] [q100]-> [> PlayerSpr > q101 Stop] [q100]\n[> PlayerSpr no Stop] [q99] -> [> PlayerSpr > q100 Stop] [q99]\n[> PlayerSpr no Stop] [q98] -> [> PlayerSpr > q99 Stop] [q98]\n[> PlayerSpr no Stop] [q97] -> [> PlayerSpr > q98 Stop] [q97]\n[> PlayerSpr no Stop] [q96] -> [> PlayerSpr > q97 Stop] [q96]\n[> PlayerSpr no Stop] [q95] -> [> PlayerSpr > q96 Stop] [q95]\n[> PlayerSpr no Stop] [q94] -> [> PlayerSpr > q95 Stop] [q94]\n[> PlayerSpr no Stop] [q93] -> [> PlayerSpr > q94 Stop] [q93]\n[> PlayerSpr no Stop] [q92] -> [> PlayerSpr > q93 Stop] [q92]\n[> PlayerSpr no Stop] [q91] -> [> PlayerSpr > q92 Stop] [q91]\n[> PlayerSpr no Stop] [q90] -> [> PlayerSpr > q91 Stop] [q90]\n[> PlayerSpr no Stop] [q89] -> [> PlayerSpr > q90 Stop] [q89]\n[> PlayerSpr no Stop] [q88] -> [> PlayerSpr > q89 Stop] [q88]\n[> PlayerSpr no Stop] [q87] -> [> PlayerSpr > q88 Stop] [q87]\n[> PlayerSpr no Stop] [q86] -> [> PlayerSpr > q87 Stop] [q86]\n[> PlayerSpr no Stop] [q85] -> [> PlayerSpr > q86 Stop] [q85]\n[> PlayerSpr no Stop] [q84] -> [> PlayerSpr > q85 Stop] [q84]\n[> PlayerSpr no Stop] [q83] -> [> PlayerSpr > q84 Stop] [q83]\n[> PlayerSpr no Stop] [q82] -> [> PlayerSpr > q83 Stop] [q82]\n[> PlayerSpr no Stop] [q81] -> [> PlayerSpr > q82 Stop] [q81]\n[> PlayerSpr no Stop] [q80] -> [> PlayerSpr > q81 Stop] [q80]\n[> PlayerSpr no Stop] [q79] -> [> PlayerSpr > q80 Stop] [q79]\n[> PlayerSpr no Stop] [q78] -> [> PlayerSpr > q79 Stop] [q78]\n[> PlayerSpr no Stop] [q77] -> [> PlayerSpr > q78 Stop] [q77]\n[> PlayerSpr no Stop] [q76] -> [> PlayerSpr > q77 Stop] [q76]\n[> PlayerSpr no Stop] [q75] -> [> PlayerSpr > q76 Stop] [q75]\n[> PlayerSpr no Stop] [q74] -> [> PlayerSpr > q75 Stop] [q74]\n[> PlayerSpr no Stop] [q73] -> [> PlayerSpr > q74 Stop] [q73]\n[> PlayerSpr no Stop] [q72] -> [> PlayerSpr > q73 Stop] [q72]\n[> PlayerSpr no Stop] [q71] -> [> PlayerSpr > q72 Stop] [q71]\n[> PlayerSpr no Stop] [q70] -> [> PlayerSpr > q71 Stop] [q70]\n[> PlayerSpr no Stop] [q69] -> [> PlayerSpr > q70 Stop] [q69]\n[> PlayerSpr no Stop] [q68] -> [> PlayerSpr > q69 Stop] [q68]\n[> PlayerSpr no Stop] [q67] -> [> PlayerSpr > q68 Stop] [q67]\n[> PlayerSpr no Stop] [q66] -> [> PlayerSpr > q67 Stop] [q66]\n[> PlayerSpr no Stop] [q65] -> [> PlayerSpr > q66 Stop] [q65]\n[> PlayerSpr no Stop] [q64] -> [> PlayerSpr > q65 Stop] [q64]\n[> PlayerSpr no Stop] [q63] -> [> PlayerSpr > q64 Stop] [q63]\n[> PlayerSpr no Stop] [q62] -> [> PlayerSpr > q63 Stop] [q62]\n[> PlayerSpr no Stop] [q61] -> [> PlayerSpr > q62 Stop] [q61]\n[> PlayerSpr no Stop] [q60] -> [> PlayerSpr > q61 Stop] [q60]\n[> PlayerSpr no Stop] [q59] -> [> PlayerSpr > q60 Stop] [q59]\n[> PlayerSpr no Stop] [q58] -> [> PlayerSpr > q59 Stop] [q58]\n[> PlayerSpr no Stop] [q57] -> [> PlayerSpr > q58 Stop] [q57]\n[> PlayerSpr no Stop] [q56] -> [> PlayerSpr > q57 Stop] [q56]\n[> PlayerSpr no Stop] [q55] -> [> PlayerSpr > q56 Stop] [q55]\n[> PlayerSpr no Stop] [q54] -> [> PlayerSpr > q55 Stop] [q54]\n[> PlayerSpr no Stop] [q53] -> [> PlayerSpr > q54 Stop] [q53]\n[> PlayerSpr no Stop] [q52] -> [> PlayerSpr > q53 Stop] [q52]\n[> PlayerSpr no Stop] [q51] -> [> PlayerSpr > q52 Stop] [q51]\n[> PlayerSpr no Stop] [q50] -> [> PlayerSpr > q51 Stop] [q50]\n[> PlayerSpr no Stop] [q49] -> [> PlayerSpr > q50 Stop] [q49]\n[> PlayerSpr no Stop] [q48] -> [> PlayerSpr > q49 Stop] [q48]\n[> PlayerSpr no Stop] [q47] -> [> PlayerSpr > q48 Stop] [q47]\n[> PlayerSpr no Stop] [q46] -> [> PlayerSpr > q47 Stop] [q46]\n[> PlayerSpr no Stop] [q45] -> [> PlayerSpr > q46 Stop] [q45]\n[> PlayerSpr no Stop] [q44] -> [> PlayerSpr > q45 Stop] [q44]\n[> PlayerSpr no Stop] [q43] -> [> PlayerSpr > q44 Stop] [q43]\n[> PlayerSpr no Stop] [q42] -> [> PlayerSpr > q43 Stop] [q42]\n[> PlayerSpr no Stop] [q41] -> [> PlayerSpr > q42 Stop] [q41]\n[> PlayerSpr no Stop] [q40] -> [> PlayerSpr > q41 Stop] [q40]\n[> PlayerSpr no Stop] [q39] -> [> PlayerSpr > q40 Stop] [q39]\n[> PlayerSpr no Stop] [q38] -> [> PlayerSpr > q39 Stop] [q38]\n[> PlayerSpr no Stop] [q37] -> [> PlayerSpr > q38 Stop] [q37]\n[> PlayerSpr no Stop] [q36] -> [> PlayerSpr > q37 Stop] [q36]\n[> PlayerSpr no Stop] [q35] -> [> PlayerSpr > q36 Stop] [q35]\n[> PlayerSpr no Stop] [q34] -> [> PlayerSpr > q35 Stop] [q34]\n[> PlayerSpr no Stop] [q33] -> [> PlayerSpr > q34 Stop] [q33]\n[> PlayerSpr no Stop] [q32] -> [> PlayerSpr > q33 Stop] [q32]\n[> PlayerSpr no Stop] [q31] -> [> PlayerSpr > q32 Stop] [q31]\n[> PlayerSpr no Stop] [q30] -> [> PlayerSpr > q31 Stop] [q30]\n[> PlayerSpr no Stop] [q29] -> [> PlayerSpr > q30 Stop] [q29]\n[> PlayerSpr no Stop] [q28] -> [> PlayerSpr > q29 Stop] [q28]\n[> PlayerSpr no Stop] [q27] -> [> PlayerSpr > q28 Stop] [q27]\n[> PlayerSpr no Stop] [q26] -> [> PlayerSpr > q27 Stop] [q26]\n[> PlayerSpr no Stop] [q25] -> [> PlayerSpr > q26 Stop] [q25]\n[> PlayerSpr no Stop] [q24] -> [> PlayerSpr > q25 Stop] [q24]\n[> PlayerSpr no Stop] [q23] -> [> PlayerSpr > q24 Stop] [q23]\n[> PlayerSpr no Stop] [q22] -> [> PlayerSpr > q23 Stop] [q22]\n[> PlayerSpr no Stop] [q21] -> [> PlayerSpr > q22 Stop] [q21]\n[> PlayerSpr no Stop] [q20] -> [> PlayerSpr > q21 Stop] [q20]\n[> PlayerSpr no Stop] [q19] -> [> PlayerSpr > q20 Stop] [q19]\n[> PlayerSpr no Stop] [q18] -> [> PlayerSpr > q19 Stop] [q18]\n[> PlayerSpr no Stop] [q17] -> [> PlayerSpr > q18 Stop] [q17]\n[> PlayerSpr no Stop] [q16] -> [> PlayerSpr > q17 Stop] [q16]\n[> PlayerSpr no Stop] [q15] -> [> PlayerSpr > q16 Stop] [q15]\n[> PlayerSpr no Stop] [q14] -> [> PlayerSpr > q15 Stop] [q14]\n[> PlayerSpr no Stop] [q13] -> [> PlayerSpr > q14 Stop] [q13]\n[> PlayerSpr no Stop] [q12] -> [> PlayerSpr > q13 Stop] [q12]\n[> PlayerSpr no Stop] [q11] -> [> PlayerSpr > q12 Stop] [q11]\n[> PlayerSpr no Stop] [q10] -> [> PlayerSpr > q11 Stop] [q10]\n[> PlayerSpr no Stop] [q9] -> [> PlayerSpr > q10 Stop] [q9]\n[> PlayerSpr no Stop] [q8] -> [> PlayerSpr > q9 Stop] [q8]\n[> PlayerSpr no Stop] [q7] -> [> PlayerSpr > q8 Stop] [q7]\n[> PlayerSpr no Stop] [q6] -> [> PlayerSpr > q7 Stop] [q6]\n[> PlayerSpr no Stop] [q5] -> [> PlayerSpr > q6 Stop] [q5]\n[> PlayerSpr no Stop] [q4] -> [> PlayerSpr > q5 Stop] [q4]\n[> PlayerSpr no Stop] [q3] -> [> PlayerSpr > q4 Stop] [q3]\n[> PlayerSpr no Stop] [q2] -> [> PlayerSpr > q3 Stop] [q2]\n[> PlayerSpr no Stop] [q1] -> [> PlayerSpr > q2 Stop] [q1]\n\n(Placing Crate Markers)\n[> PlayerSpr > Mark | Crate] -> [> PlayerSpr > Mark | > Crate > Mark]\n\n(Rewinding)\n(Teleport the highest mark under the player and the highest mark that is under a crate next to each other at the x and z position)\n[Stop] -> []\n[action PlayerSpr Mark no Stop] [] -> [action PlayerSpr Mark Stop] [z0 Mark] sfx1\nright [z0 | ] -> [z0 | x0]\n[Stop] -> []\n[Highest] -> []\n[Mark Crate] [action PlayerSpr no Stop] [x0] -> [Crate Mark Highest] [action PlayerSpr Stop] [x0 Mark]\n\n(Try to move the objects together)\nright [z0 | Mark x0 ] -> [z0 | < Mark x0]\n\n(The rest of the code must be done \"late\" so I can see the result of the equality check, so I convert the action state to an object called \"Rewind\")\n[Rewind] -> []\n[action PlayerSpr] -> [Rewind PlayerSpr]\n\n(Place the PlayerD object if it's the first turn)\n[stationary PlayerSpr no Rewind] -> [PlayerSpr DPlayer]\n\n(Checks if the two objects failed to combine, if this is the case, then we know they are the same object)\nlate [x0 Mark] [Crate Highest] -> [x0] [Crate Mark Same]\nlate [Mark z0] -> [z0]\n\n(Rewinds a pushed crate)\nlate [Rewind PlayerSpr] [Crate Mark Same] -> [Rewind PlayerSpr Crate] []\n\n(Removes the highest mark that is under the player)\nlate [Stop] -> []\nlate [Rewind PlayerSpr Mark no Stop] -> [Rewind PlayerSpr Stop]\n(Teleports the player to the starting position if there are no marks)\nlate [] -> [NoMarks]\nlate [NoMarks] [Mark] -> [] [Mark]\nlate [NoMarks] [Rewind PlayerSpr no q1] [q1 no Crate] -> [NoMarks] [] [PlayerSpr q1 Rewind DPlayer]\n(Teleports the player to the highest mark)\nlate [Stop] -> []\nlate [Rewind PlayerSpr no Stop] [Mark no Crate no PlayerSpr] -> [] [PlayerSpr Mark Rewind Stop]\n\n(Faces the player in the correct direction after rewinding)\nlate [Stop] -> []\nlate [Highest] -> []\nlate [PlayerSpr no Stop] [Mark no Crate no PlayerSpr] -> [PlayerSpr Stop] [Mark Highest]\n\nlate [] -> [NoMarks]\nlate [NoMarks] [Mark no q2] -> [] [Mark]\n\nlate up [NoMarks] [Rewind PlayerSpr | q1] -> [][Rewind PlayerSpr DPlayer | q1]\nlate right[NoMarks] [Rewind PlayerSpr | q1] -> [][Rewind PlayerSpr LPlayer | q1]\nlate down[NoMarks] [Rewind PlayerSpr | q1] -> [] [Rewind PlayerSpr UPlayer | q1]\nlate left[NoMarks] [Rewind PlayerSpr | q1] -> [] [Rewind PlayerSpr RPlayer | q1]\n\nlate up [Rewind PlayerSpr | Highest] -> [Rewind PlayerSpr DPlayer | ]\nlate right [Rewind PlayerSpr | Highest] -> [Rewind PlayerSpr LPlayer | ]\nlate down [Rewind PlayerSpr | Highest] -> [Rewind PlayerSpr UPlayer | ]\nlate left [Rewind PlayerSpr | Highest] -> [Rewind PlayerSpr RPlayer | ]\n\n\n[Number no Wall] -> [Number Wall BoundaryWall]\n\n(Player/Camera)\nlate [PlayerSpr no Exit no Gate] [Player] -> [PlayerSpr] []\nlate [PlayerSpr no Exit no Gate] -> [PlayerSpr Player]\nlate [Player no BoundaryWall no Exit no Gate | ] -> [Player | Player]\n\n(Doors)\nlate [SoundStop] -> []\nlate [Door] -> [Door SoundStop]\nlate [Door] -> []\nlate [Player | | Exit] [Player Target no Crates] -> [Player | | Exit Door] [Player Target]\n\n[moving Player] [stationary Player] -> [moving Player] [moving Player]\n\nlate [PlayerSpr Exit] [Door] -> [PlayerSpr Exit] []\n\n(Door Sfx)\nlate [SoundStop Exit no Door] -> [Exit] sfx2\n\n(Checkpoint)\nlate [cp Player no PlayerSpr] -> [Player]\nlate [cp PlayerSpr] -> checkpoint\n\n(Timer)\n(Decrease when player moves)\nlate [ClockD Player | no 0 | 0] [PlayerSpr no Rewind] -> [ClockD Player | | 9 Countdown] [PlayerSpr]\nlate [ClockD Player | | 1] [PlayerSpr no Rewind] -> [ClockD Player | | 0] [PlayerSpr]\nlate [ClockD Player | | 2] [PlayerSpr no Rewind] -> [ClockD Player | | 1] [PlayerSpr]\nlate [ClockD Player | | 3] [PlayerSpr no Rewind] -> [ClockD Player | | 2] [PlayerSpr]\nlate [ClockD Player | | 4] [PlayerSpr no Rewind] -> [ClockD Player | | 3] [PlayerSpr]\nlate [ClockD Player | | 5] [PlayerSpr no Rewind] -> [ClockD Player | | 4] [PlayerSpr]\nlate [ClockD Player | | 6] [PlayerSpr no Rewind] -> [ClockD Player | | 5] [PlayerSpr]\nlate [ClockD Player | | 7] [PlayerSpr no Rewind] -> [ClockD Player | | 6] [PlayerSpr]\nlate [ClockD Player | | 8] [PlayerSpr no Rewind] -> [ClockD Player | | 7] [PlayerSpr]\nlate [ClockD Player | | 9 no CountDown] [PlayerSpr no Rewind] -> [ClockD Player | | 8] [PlayerSpr]\n\n(Increase when player rewinds)\nlate [ClockD Player | | 9] [Rewind PlayerSpr] -> [ClockD Player | | 0 CountUp] [Rewind PlayerSpr]\nlate [ClockD Player | | 8] [Rewind PlayerSpr] -> [ClockD Player | | 9] [Rewind PlayerSpr]\nlate [ClockD Player | | 7] [Rewind PlayerSpr] -> [ClockD Player | | 8] [Rewind PlayerSpr]\nlate [ClockD Player | | 6] [Rewind PlayerSpr] -> [ClockD Player | | 7] [Rewind PlayerSpr]\nlate [ClockD Player | | 5] [Rewind PlayerSpr] -> [ClockD Player | | 6] [Rewind PlayerSpr]\nlate [ClockD Player | | 4] [Rewind PlayerSpr] -> [ClockD Player | | 5] [Rewind PlayerSpr]\nlate [ClockD Player | | 3] [Rewind PlayerSpr] -> [ClockD Player | | 4] [Rewind PlayerSpr]\nlate [ClockD Player | | 2] [Rewind PlayerSpr] -> [ClockD Player | | 3] [Rewind PlayerSpr]\nlate [ClockD Player | | 1] [Rewind PlayerSpr] -> [ClockD Player | | 2] [Rewind PlayerSpr]\nlate [ClockD Player | | 0 no CountUp] [Rewind PlayerSpr] -> [ClockD Player | | 1] [Rewind PlayerSpr]\n\n(Tens digit countdown)\nlate down [1 | CountDown] -> [0 | ]\nlate down [2 | CountDown] -> [1 | ]\nlate down [3 | CountDown] -> [2 | ]\nlate down [4 | CountDown] -> [3 | ]\nlate down [5 | CountDown] -> [4 | ]\nlate down [6 | CountDown] -> [5 | ]\nlate down [7 | CountDown] -> [6 | ]\nlate down [8 | CountDown] -> [7 | ]\nlate down [9 | CountDown] -> [8 | ]\n\n(Tens digit countup)\nlate down [8 | CountUp] -> [9 | ]\nlate down [7 | CountUp] -> [8 | ]\nlate down [6 | CountUp] -> [7 | ]\nlate down [5 | CountUp] -> [6 | ]\nlate down [4 | CountUp] -> [5 | ]\nlate down [3 | CountUp] -> [4 | ]\nlate down [2 | CountUp] -> [3 | ]\nlate down [1 | CountUp] -> [2 | ]\nlate down [0 | CountUp] -> [1 | ]\n\n(Turns player into statue)\nlate [SoundStop] -> []\nlate [PlayerSpr no Statue] -> [PlayerSpr SoundStop]\nlate [Statue] -> []\nlate [0 | 0 Player] [PlayerSpr no Rewind] [ClockSide Player] -> [0 | 0] [PlayerSpr Statue] [ClockSide Player]\n\nlate [PlayerSpr SoundStop Statue] -> sfx3\n\n(Places the camera)\nlate down [Player | | | | | | | | | Player] -> [Player | | | | Cam | | | | | Player]\nlate right [Cam | Cam | Cam | Cam | Cam | Cam | Cam | Cam] -> [ | | | | Cam | | | ]\nlate [Player no Cam] -> []\n\n(Visuals)\nlate [remove no Gate] -> []\n\nlate [Crate TimeCrate] -> [Crate TimeCrate FadeCrate]\n\nlate [DirPlayer Statue] -> [Statue]\n\nlate up [Wall | ] -> [Wall | OverWall]\nlate up [Crate | ] -> [Crate | OverCrate]\nlate up [TimeCrate | ] -> [TimeCrate | OverTimeCrate]\nlate up [FadeCrate | ] -> [FadeCrate | OverFadeCrate]\nlate up [PlayerSpr | ] -> [PlayerSpr | OverPlayer]\nlate up [Statue | ] -> [Statue | OverStatue]\nlate up [Exit | ] -> [Exit | ExitU]\nlate up [Gate | ] -> [Gate | GateU]\nlate up [Door | ] -> [Door | OverDoor]\n\nlate right [Clock | ] -> [Clock | ClockR]\nlate down [Clock | ] -> [Clock | ClockD]\nlate left [Clock | ] -> [Clock | ClockL]\n\nlate right [Exit | ] -> [Exit | ExitR]\nlate left [Exit | ] -> [Exit | ExitL]\nlate right [ExitU | ] -> [ExitU | ExitUR]\nlate left [ExitU | ] -> [ExitU | ExitUL]\n\nlate right [Gate | ] -> [Gate | GateR]\nlate left [Gate | ] -> [Gate | GateL]\nlate right [GateU | ] -> [GateU | GateUR]\nlate left [GateU | ] -> [GateU | GateUL]\n\nlate right [Exit | Wall] -> [Exit | BushR]\nlate left [Exit | Wall] -> [Exit | BushL]\n\nlate right [Gate | Wall] -> [Gate | BushR]\nlate left [Gate | Wall] -> [Gate | BushL]\n\nlate up [BushR | ] -> [BushR | OverBushR]\nlate up [BushL | ] -> [BushL | OverBushL]\n\nlate right down [BackGround no Dot| BackGround no Dot] -> [BackGround | Dot BackGround]\nlate down [Dot | Dot] -> [Dot | BackGround]\nlate [Bounds Dot] -> [Bounds]\n\nlate [ExitU Dot] -> [ExitU]\nlate [PlayerSpr Dot] -> [PlayerSpr]\nlate [Gate | Dot] -> [Gate | ]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\nmessage It was a warm and sunny day\nmessage So into the hedges went Sir Montaclé\n\nmessage Then, a witch's curse befell the poor bloke\nmessage Now one step too many, will turn him to stone\n\nmessage Montaclé despaired, wandering lost in the maze\nmessage He knew freedom lay, just beyond the golden gate\n\nmessage But Montaclé was clever, and so are you, so fret not\nmessage Press R to restart, and space to turn back the clock\n\n---------------------\n-----!!!!!!!!!!------\n-----c......##!------\n-----!.t....##!------\n-----2#####.##!------\n-----1..o*..o.!------\n-----!...##...!------\n-----!...#####!------\n-----!........!------\n-----!........!------\n-!!!!!!!e!!!e!!!!!!!-\n-c........!........c-\n-!....####!....#o..!-\n-1.......#!........1-\n-6####..##!..#.to##7-\n-!###o.###!####.###!-\n-!##..####!...t....!-\n-!#.....t.!.....##.!-\n-!........!....#...!-\n-!!!e!!!!!!!!!!!!e!!-\n-c#...####!####....c-\n-!......##!...#.t#.!-\n-1.......o!.t.#*...1-\n-0.....#..!...#o###5-\n-!.......#!....o##.!-\n-!....#t.#!....o#..!-\n-!.......#!........!-\n-!#....###!........!-\n-!!!e!!!!!!!e!!!!!!!-\n-c#...####!.....###c-\n-!......##!......##!-\n-1..o....#!.*.....#2-\n-6...##..#!........1-\n-!....#..#!####....!-\n-!.....*.#!...#..o.!-\n-!#......#!#..#....!-\n-!######.#!.t.#....!-\n-!!!!!!!e!!!e!!!!e!!-\n-c....#...!...#....c-\n-!..#.....!..#.....!-\n-1..#.....!....#.t.2-\n-5..######!....#...0-\n-!...p....!....####!-\n-!....###.!...*o.##!-\n-!#####.#.!####...#!-\n-!....*t..!........!-\n-!!g!!!e!!!e!!!!!!!!-\n-----!...#...#c------\n-----!...#...#!------\n-----!...#...#1------\n-----!#.....##3------\n-----!##...###!------\n-----!########!------\n-----!#.....##!------\n-----!.......#!------\n-----!!!!!!!!!!------\n---------------------\n\nmessage Thank you for playing!\n\n(\n(Level1)\n---------------------\n-----!!!!!!!!!!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-!!!!!!!e!!!e!!!!!!!-\n-c....#...!........c-\n-!..#.....!........!-\n-1..#.....!........!-\n-5..######!........!-\n-!...p....!........!-\n-!....###.!........!-\n-!#####.#.!........!-\n-!....*t..!........!-\n-!!g!!!e!!!!e!!!!!!!-\n-----!........c------\n-----!........!------\n-----!........1------\n-----!........3------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!........!------\n-----!!!!!!!!!!------\n---------------------\n\n\n(Level2)\n-!........!.\n-!!!e!!!!!!!\n-c#...####!.\n-!......##!.\n-1..o....#!.\n-6...##..#!.\n-!....#..#!.\n-!.....*.#!.\n-!#......#!.\n-!######p#!.\n-!!!!!!!e!!!\n\n\n(Level3)\n-!........!.\n-!!!e!!!!!!!\n-c#...####!.\n-!......##!.\n-1.......o!.\n-0.....#..!.\n-!.......#!.\n-!....#t.#!.\n-!.......#!.\n-!#.p..###!.\n-!!!e!!!!!!!\n\n\n(Level4)\n-!........!.\n-!!!!!!!e!!!\n-c........!.\n-!....####!.\n-1.......#!.\n-6####..##!.\n-!###o.###!.\n-!##..####!.\n-!#.....t.!.\n-!..p.....!.\n-!!!e!!!!!!!\n\n\n(Level5)\n------------\n-!!!!!!!!!!-\n-c......##!-\n-!.t....##!-\n-2#####.##!-\n-1..o*..o.!-\n-!...##...!-\n-!...#####!-\n-!........!-\n-!..p.....!-\n!!!!e!!!e!!!\n\n(Level6)\n-!........!.\n!!!e!!!!!!!.\n-!.p......c.\n-!....#o..!.\n-!........1.\n-!..#.to##6.\n-!####.###!.\n-!...t....!.\n-!.....##.!.\n-!....#...!.\n!!!!!!!!e!!.\n\n(Level7)\n-!........!.\n!!!!!!!!e!!.\n-!####..p.c.\n-!...#.t#.!.\n-!.t.#*...1.\n-!...#o###5.\n-!....o##.!.\n-!....o#..!.\n-!........!.\n-!.......#!.\n!!!e!!!!!!!.\n\n(Level8)\n------------\n-!!e!!!!!!!-\n-!.p...###c-\n-!......##!-\n-!.*.....#2-\n-!........0-\n-!####....!-\n-!...#..o.!-\n-!#..#....!-\n-!.t.#....!-\n-!!e!!!!e!!-\n-!...#....c-\n-!..#.....!-\n-!....#.t.2-\n-!....#...0-\n-!....####!-\n-!...*o.##!-\n-!####...#!-\n-!........!-\n-!e!!!!!!!!-\n------------\n\n(Bottom Room, no puzzle)\n-.....!.....\n!!!e!!!e!!!!\n-!...#.p.#c.\n-!...#...#!.\n-!...#...#1.\n-!#.....##3.\n-!##...###!.\n-!########!.\n-!#.....##!.\n-!.......#!.\n-!!!!!!!!!!.\n)\n",[1,1,0,0,0,0,3,3,2,3,3,3,0,0,0,0,1,0,0,0,3,0,1,1,1,0,1,0,0,0,"restart",0,"restart",0,3,3,3,0,"undo",4,4,4,4,0,0,3,3,3,2,4,4,4,4,4,4,3,3,3,3,0,0,0,4,4,4,4,4,4,0,0,0,0,3,3,3,3],"background bounds z0:0,background bounds:1,1,1,1,1,1,1,1,1,1,background bounds clockl:2,1,1,1,1,1,1,1,1,2,\n1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,2,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background bounds x0:3,1,1,1,1,1,\n1,1,1,background bounds overwall:4,background boundarywall dot overwall wall:5,background boundarywall clock overwall wall:6,background boundarywall clockd dot overwall wall:7,1 background boundarywall overwall wall:8,6 background boundarywall dot overwall wall:9,background boundarywall overwall wall:10,5,10,5,10,background boundarywall clock dot overwall wall:11,background boundarywall clockd overwall wall:12,0 background boundarywall dot overwall wall:13,0 background boundarywall overwall wall:14,5,10,5,\n10,5,6,7,14,1 background boundarywall dot overwall wall:15,10,5,10,5,10,11,12,13,8,5,10,5,10,background boundarywall dot wall:16,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,background boundarywall wall:17,background clockr dot:18,\nbackground:19,background dot overwall:20,background overwall wall:21,background dot overwall wall:22,21,background dot wall:23,background overwall:24,5,background clockr wall:25,background dot:26,19,26,19,26,24,22,10,background clockr dot wall:27,19,26,19,\n26,24,22,21,16,background clockr:28,26,19,26,19,20,background wall:29,background dot gateul overbushl:30,background boundarywall bushl gatel:31,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,4,16,19,26,24,22,21,23,19,\nbackground dot exitul overbushl:32,background boundarywall bushl exitl:33,26,19,26,19,26,19,26,background exitul overbushl:34,background boundarywall bushl dot exitl:35,19,26,19,26,19,26,24,22,17,background dot q7:36,\nbackground q6:37,background dot q5:38,background q4:39,background dot q3:40,24,23,background gateu:41,background dot gate:42,1,1,1,1,1,1,1,1,1,1,1,1,2,\n1,1,1,1,1,1,4,17,26,19,20,21,23,19,26,background cp exitu:43,background bounds exit:44,19,26,19,26,\n19,26,background q32:45,background exitu q31:46,background bounds exit q30:47,background dot q29:48,background overcrate q28:49,background crate dot q26 target:50,19,26,19,20,21,16,background overwall q8:51,22,21,23,background q2:52,20,29,\nbackground dot gateur overbushr:53,background boundarywall bushr gater:54,1,1,1,1,1,1,1,1,1,1,4,10,11,12,2 background boundarywall dot overwall wall:55,8,5,10,5,\n10,16,19,26,24,23,background target:56,26,19,background dot exitur overbushr:57,background boundarywall bushr exitr:58,26,19,background dot q37:59,background q36:60,background dot q35:61,background q34:62,background dot q33:63,background exitur overbushr:64,background boundarywall bushr dot exitr:65,19,\nbackground dot q27:66,background overwall q25 q26:67,23,19,26,24,22,17,background dot q9:68,background q10:69,20,29,background dot q1:70,24,23,24,5,10,5,10,5,\n10,5,10,5,17,1,4,16,28,20,29,26,19,26,19,20,17,20,29,26,19,\n20,29,26,24,5,29,26,background q38:71,background cam dot player:72,24,23,19,20,10,23,19,background dot overwall q24 q25:73,background cam overwall wall:74,23,19,20,\n21,5,29,background dot q11:75,24,background cam dot wall:76,24,22,background overcrate wall:77,background crate dot exitul overbushl:78,33,26,19,20,21,22,21,23,24,16,1,\n4,17,background dot overtimecrate:79,background overwall timecrate:80,23,19,26,19,26,34,35,24,23,19,20,21,23,19,20,10,23,\n19,background dot highest overwall q39:81,29,26,19,20,21,5,29,26,background q21 q24:82,background dot q20 q21:83,background q19 q20:84,background dot q19:85,background overwall q18:86,background dot exitul overbushl wall:87,33,26,background q12:88,20,29,\n20,29,79,background exitu timecrate:89,44,background cp:90,26,19,20,21,23,19,20,17,1,4,16,19,20,29,background dot target:91,\n19,26,19,43,44,background cp dot overwall:92,29,20,21,22,background overtimecrate wall:93,background dot timecrate:94,24,5,21,background dot overplayer overstatue wall:95,background playerspr q40 soundstop statue stop:96,26,19,26,24,\n22,10,22,29,background dot q23:97,background q22:98,26,19,background dot q17:99,background exitu q16:100,background bounds exit q15:101,background q14:102,background dot q13:103,24,23,24,22,29,57,58,26,\n19,26,19,20,29,26,24,16,1,4,17,26,24,background dot overcrate wall:104,background crate overwall:105,22,29,26,64,65,24,\n22,21,22,21,23,19,20,10,22,93,background dot target timecrate:106,24,22,21,22,21,5,21,22,21,22,\n21,22,21,background dot exitur overbushr wall:107,58,26,19,20,29,26,19,26,24,5,21,22,29,26,24,23,19,\n20,17,1,4,16,19,20,29,20,21,23,19,20,10,5,10,5,10,5,10,5,\n10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,\n5,10,5,10,5,10,background boundarywall dot exitul overbushl wall:108,33,26,19,26,19,20,29,26,24,16,1,4,17,26,\n19,26,19,20,29,26,34,35,19,26,19,20,29,26,19,20,10,23,19,26,19,\n26,19,26,34,35,19,26,19,20,29,20,29,32,33,26,19,26,19,26,24,23,\n43,44,90,26,19,20,21,23,19,20,17,1,4,5,21,22,29,91,24,23,19,\n43,44,background cp dot:109,19,26,24,23,19,26,24,5,29,79,background timecrate:110,26,19,26,19,43,44,109,\nbackground overcrate:111,background crate dot:112,24,23,19,79,background cp exitu timecrate:113,44,90,26,19,26,19,20,29,57,58,26,19,20,21,\n22,21,23,24,16,1,4,10,22,21,23,19,20,29,26,64,65,19,26,24,22,\n29,26,19,20,10,23,19,26,19,26,19,26,64,65,19,26,19,20,29,26,19,\n57,58,20,29,26,19,26,24,23,24,5,background clockl overwall wall:114,22,21,22,21,22,21,22,17,1,\n4,5,10,5,10,5,10,5,10,5,17,26,19,26,24,background dot overtimecrate wall:115,110,26,24,5,21,\n22,21,23,19,26,19,20,17,26,19,26,24,22,21,22,21,5,29,26,19,26,\n111,background crate dot overwall:116,29,20,10,11,12,15,3 background boundarywall overwall wall:117,5,10,5,10,16,1,1,1,1,1,1,1,\n1,1,1,4,16,24,23,background overtimecrate:118,94,19,26,24,22,17,26,111,112,56,91,56,26,\n24,16,19,26,19,26,19,26,19,20,17,26,24,22,21,23,56,26,24,16,background bounds clockr:119,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,17,26,\n56,26,background overwall target:120,23,24,23,34,35,118,94,24,22,21,23,19,20,10,23,19,26,19,\n26,19,26,34,35,19,26,19,20,29,26,19,20,17,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,4,16,19,26,24,22,29,20,29,\n43,44,92,29,20,21,23,19,26,24,5,21,23,19,26,19,91,19,43,44,109,\n118,94,24,22,29,26,24,16,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,4,17,background clockl dot:121,19,20,21,23,19,26,64,65,background clockl:122,26,24,23,\n19,26,19,20,10,background clockl dot overwall wall:123,21,23,19,26,19,26,64,65,122,26,19,20,21,22,29,\n20,17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n4,5,6,7,8,7 background boundarywall dot overwall wall:124,10,5,10,5,10,11,12,15,5 background boundarywall overwall wall:125,5,10,5,10,5,6,\n7,2 background boundarywall overwall wall:126,15,10,5,10,5,10,11,12,55,14,5,10,5,10,16,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,119,1,1,1,\n1,1,1,1,1,119,1,1,1,1,1,1,1,1,119,1,1,1,1,1,1,\n1,1,119,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n",8,"1627769376598.7021"] ], [ `gallery game: shall we golf?`, - ["title Shall We Golf?\nauthor nebu soku\nhomepage www.puzzlescript.net\n\nrealtime_interval 0.13\nrun_rules_on_level_Start\nbackground_color #3a6aa3\ntext_color lightblue\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nGreen\n#659b2d green\n11111\n10001\n10101\n10001\n11111\n\nWater\nlightblue \n\nAddWaterLUD\nlightblue \n0....\n.....\n.....\n.....\n0....\n\nAddWaterLU\nlightblue \n0....\n.....\n.....\n.....\n.....\n\nAddWaterLD\nlightblue \n.....\n.....\n.....\n.....\n0....\n\nAddWaterRUD\nlightblue \n....0\n.....\n.....\n.....\n....0\n\nAddWaterRU\nlightblue \n....0\n.....\n.....\n.....\n.....\n\nAddWaterRD\nlightblue \n.....\n.....\n.....\n.....\n....0\n\nRemoveWaterLUD\ngreen\n0....\n.....\n.....\n.....\n0....\n\nRemoveWaterLU\ngreen\n0....\n.....\n.....\n.....\n.....\n\nRemoveWaterLD\ngreen\n.....\n.....\n.....\n.....\n0....\n\nRemoveWaterRUD\ngreen\n....0\n.....\n.....\n.....\n....0\n\nRemoveWaterRU\ngreen\n....0\n.....\n.....\n.....\n.....\n\nRemoveWaterRD\ngreen\n.....\n.....\n.....\n.....\n....0\n\nBunker\nlightbrown orange #2a6b17\n00000\n00010\n00000\n01000\n00000\n\nAddBunkerLUD\nlightbrown\n0....\n.....\n.....\n.....\n0....\n\nAddBunkerLU\nlightbrown\n0....\n.....\n.....\n.....\n.....\n\nAddBunkerLD\nlightbrown\n.....\n.....\n.....\n.....\n0....\n\nAddBunkerRUD\nlightbrown\n....0\n.....\n.....\n.....\n....0\n\nAddBunkerRU\nlightbrown\n....0\n.....\n.....\n.....\n.....\n\nAddBunkerRD\nlightbrown\n.....\n.....\n.....\n.....\n....0\n\nRemoveBunkerLUD\ngreen\n0....\n.....\n.....\n.....\n0....\n\nRemoveBunkerLU\ngreen\n0....\n.....\n.....\n.....\n.....\n\nRemoveBunkerLD\ngreen\n.....\n.....\n.....\n.....\n0....\n\nRemoveBunkerRUD\ngreen\n....0\n.....\n.....\n.....\n....0\n\nRemoveBunkerRU\ngreen\n....0\n.....\n.....\n.....\n.....\n\nRemoveBunkerRD\ngreen\n.....\n.....\n.....\n.....\n....0\n\nOnBunker\nblack\n.....\n.....\n.....\n.....\n.....\n\nblank\n#3a6aa3\n\nWin1\n#3a6aa3\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\nWin2\n#3a6aa3\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nWinS1\nwhite\n\nWinS2\nblack\n\nRSVWin1\nblack\n.....\n.....\n.....\n.....\n.....\n\nRSVWin2\nblack\n.....\n.....\n.....\n.....\n.....\n\nTarget\nlightgray red darkblue\n..0..\n..0..\n..2..\n.....\n.....\n\nFlag\nred lightgray\n.....\n.....\n.....\n..00.\n..1..\n\nclubR\ngray darkgray white\n.....\n.....\n.0...\n.2...\n.11..\n\nclubL\ngray darkgray white\n.....\n.....\n...0.\n...2.\n..11.\n\nBall\nwhite\n.....\n.....\n..0..\n.....\n.....\n\nBallR\nwhite darkblue\n..0..\n.....\n..1..\n.....\n.....\n\nBallL\nwhite darkblue\n..0..\n.....\n..1..\n.....\n.....\n\nBallU\nwhite darkblue\n..0..\n.....\n..1..\n.....\n.....\n\nBallD\nwhite darkblue\n..0..\n.....\n..1..\n.....\n.....\n\nBallIn\ndarkblue\n.....\n.....\n..0..\n.....\n.....\n\nStart\nlightgreen green\n11111\n11111\n10111\n11111\n11101\n\nTree\ndarkgreen brown #134b3d\n.000.\n.000.\n..1..\n.....\n.....\n\nTreeU\ndarkgreen #134b3d\n.....\n.....\n.....\n.111.\n.111.\n\nLeftRSV\npurple\n\nUnmovableR\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n63636\n.3333\n.0330\n.3.6.\n\nUnmovableL\nwhite lightbrown lightgray darkblue brown blue black\n6666.\n63636\n3333.\n0330.\n.6.3.\n\nPlayerR\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n63636\n.2333\n.0330\n.776.\n\nWalkR1\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n63636\n.3233\n.3033\n3.776\n\nWalkR2\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n62636\n.2333\n.0332\n.773.\n\nWalkR3\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n63636\n23333\n03330\n77..3\n\nPlayerL\nwhite lightbrown lightgray darkblue brown blue black darkgray\n6666.\n63636\n3332.\n0330.\n.677.\n\nWalkL1\nwhite lightbrown lightgray darkblue brown blue black darkgray\n6666.\n63636\n3323.\n.303.\n677.3\n\nWalkL2\nwhite lightbrown lightgray darkblue brown blue black darkgray\n6666.\n63636\n3332.\n2330.\n.377.\n\nWalkL3\nwhite lightbrown lightgray darkblue brown blue black darkgray\n6666.\n63636\n33332\n03330\n3..77\n\nRSVR1\npink\n.....\n.....\n.....\n.....\n.....\n\nRSVL1\npink\n.....\n.....\n.....\n.....\n.....\n\nTM1R\nwhite lightbrown lightgray pink brown blue darkred\n.6666\n63636\n.3333\n.0330\n.3.6.\n\nTM1WalkR1\nwhite lightbrown lightgray pink brown blue darkred\n.6666\n63636\n.3333\n.3033\n3...6\n\nTM1WalkR2\nwhite lightbrown lightgray pink brown blue darkred\n.6666\n63636\n.3333\n.0332\n.6.3.\n\nTM1WalkR3\nwhite lightbrown lightgray pink brown blue darkred\n.6666\n63636\n.3333\n03330\n6...3\n\nTM1L\nwhite lightbrown lightgray pink brown blue darkred\n6666.\n63636\n3333.\n0330.\n.6.3.\n\nTM1WalkL1\nwhite lightbrown lightgray pink brown blue darkred\n6666.\n63636\n3333.\n3303.\n6...3\n\nTM1WalkL2\nwhite lightbrown lightgray pink brown blue darkred\n6666.\n63636\n3333.\n2330.\n.3.6.\n\nTM1WalkL3\nwhite lightbrown lightgray pink brown blue darkred\n6666.\n63636\n3333.\n03330\n3...6\n\nRSVR2\nyellow\n.....\n.....\n.....\n.....\n.....\n\nRSVL2\nyellow\n.....\n.....\n.....\n.....\n.....\n\nTM2R\nwhite lightbrown lightgray yellow brown blue orange\n.6666\n63636\n.3333\n.0330\n.3.6.\n\nTM2WalkR1\nwhite lightbrown lightgray yellow brown blue orange\n.6666\n63636\n.3333\n.3033\n3...6\n\nTM2WalkR2\nwhite lightbrown lightgray yellow brown blue orange\n.6666\n63636\n.3333\n.0332\n.6.3.\n\nTM2WalkR3\nwhite lightbrown lightgray yellow brown blue orange\n.6666\n63636\n.3333\n03330\n6...3\n\nTM2L\nwhite lightbrown lightgray yellow brown blue orange\n6666.\n63636\n3333.\n0330.\n.6.3.\n\nTM2WalkL1\nwhite lightbrown lightgray yellow brown blue orange\n6666.\n63636\n3333.\n3303.\n6...3\n\nTM2WalkL2\nwhite lightbrown lightgray yellow brown blue orange\n6666.\n63636\n3333.\n2330.\n.3.6.\n\nTM2WalkL3\nwhite lightbrown lightgray yellow brown blue orange\n6666.\n63636\n3333.\n03330\n3...6\n\nRSVR3\ngray\n.....\n.....\n.....\n.....\n.....\n\nRSVL3\ngray\n.....\n.....\n.....\n.....\n.....\n\nTM3R\nwhite lightbrown lightgray Blue brown blue #153759\n.6666\n63636\n.3333\n.0330\n.3.6.\n\nTM3WalkR1\nwhite lightbrown lightgray Blue brown blue #153759\n.6666\n63636\n.3333\n.3033\n3...6\n\nTM3WalkR2\nwhite lightbrown lightgray Blue brown blue #153759\n.6666\n63636\n.3333\n.0332\n.6.3.\n\nTM3WalkR3\nwhite lightbrown lightgray Blue brown blue #153759\n.6666\n63636\n.3333\n03330\n6...3\n\nTM3L\nwhite lightbrown lightgray Blue brown blue #153759\n6666.\n63636\n3333.\n0330.\n.6.3.\n\nTM3WalkL1\nwhite lightbrown lightgray Blue brown blue #153759\n6666.\n63636\n3333.\n3303.\n6...3\n\nTM3WalkL2\nwhite lightbrown lightgray Blue brown blue #153759\n6666.\n63636\n3333.\n2330.\n.3.6.\n\nTM3WalkL3\nwhite lightbrown lightgray Blue brown blue #153759\n6666.\n63636\n3333.\n03330\n3...6\n\nAddGreenLUD\ngreen\n0....\n.....\n.....\n.....\n0....\n\nAddGreenLU\ngreen\n0....\n.....\n.....\n.....\n.....\n\nAddGreenLD\ngreen\n.....\n.....\n.....\n.....\n0....\n\nAddGreenRUD\ngreen\n....0\n.....\n.....\n.....\n....0\n\nAddGreenRU\ngreen\n....0\n.....\n.....\n.....\n.....\n\nAddGreenRD\ngreen\n.....\n.....\n.....\n.....\n....0\n\nRemoveGreenLUD\n#1d4c2c\n0....\n.....\n.....\n.....\n0....\n\nRemoveGreenLU\n#1d4c2c\n0....\n.....\n.....\n.....\n.....\n\nRemoveGreenLD\n#1d4c2c\n.....\n.....\n.....\n.....\n0....\n\nRemoveGreenRUD\n#1d4c2c\n....0\n.....\n.....\n.....\n....0\n\nRemoveGreenRU\n#1d4c2c\n....0\n.....\n.....\n.....\n.....\n\nRemoveGreenRD\n#1d4c2c\n.....\n.....\n.....\n.....\n....0\n\nBorderR\n#1d4c2c\n0....\n0....\n0....\n0....\n0....\n\nBorderL\n#1d4c2c\n....0\n....0\n....0\n....0\n....0\n\nBorderU\n#1d4c2c\n.....\n.....\n.....\n.....\n00000\n\nBorderD\n#1d4c2c\n00000\n.....\n.....\n.....\n.....\n\nRemoveBorderRU\n#3a6aa3\n0....\n.....\n.....\n.....\n.....\n\nRemoveBorderLU\n#3a6aa3\n....0\n.....\n.....\n.....\n.....\n\nRemoveBorderRD\n#3a6aa3\n.....\n.....\n.....\n.....\n0....\n\nRemoveBorderLD\n#3a6aa3\n.....\n.....\n.....\n.....\n....0\n\nRipples1\nwhite\n.....\n.....\n..0..\n.....\n.....\n\nRipples2\nwhite #3a6aa3\n.....\n...0.\n.0...\n..1..\n.....\n\nRipples3\nwhite #3a6aa3\n.....\n.....\n.....\n.....\n..1..\n\nArrowR\ngray lightgray red\n.111.\n11211\n11121\n11211\n.111.\n\nArrowL\ngray lightgray red\n.111.\n11211\n12111\n11211\n.111.\n\nArrowU\ngray lightgray red\n.111.\n11211\n12121\n11111\n.111.\n\nArrowD\ngray lightgray red\n.111.\n11111\n12121\n11211\n.111.\n\nRSVText\npurple\n\nNT\n#fa5c5c\n0...0\n00..0\n0.0.0\n0..00\n0...0\n\nIT\norange yellow\n.0.11\n.0.1.\n.0.1.\n.0.1.\n.0.11\n\nCT\nyellow #27cc20\n000.1\n....1\n....1\n....1\n000.1\n\nET\n#27cc20\n0000.\n.....\n0000.\n.....\n0000.\n\nST\n#4bb6e3\n.0000\n.0...\n.0000\n.....\n.0000\n\nHT\n#4bb6e3 blue\n0.1..\n..1..\n0.111\n0.1..\n0.1..\n\nOT\nblue #bb4be2\n.0.11\n.0.1.\n00.1.\n.0.1.\n.0.11\n\nTT\n#bb4be2 pink\n000.1\n..0..\n..0..\n..0..\n000..\n\nTT2\npink\n0000.\n.0...\n.0...\n.0...\n.0...\n\nExT\n#fa5c5c\n.0...\n.0...\n.0...\n.....\n.0...\n\nCursor\nred\n0...0\n.....\n.....\n.....\n0...0\n\n=======\nLEGEND\n=======\n\nPlayer = PlayerR or PlayerL or WalkR1 or WalkR2 or WalkR3 or WalkL1 or WalkL2 or WalkL3 or clubR or clubL\nLeader = PlayerR or PlayerL or WalkR1 or WalkR2 or WalkR3 or WalkL1 or WalkL2 or WalkL3\nWalkR = WalkR1 or WalkR2 or WalkR3\nWalkL = WalkL1 or WalkL2 or WalkL3\n\nTM1 = TM1R or TM1L\nTM1WalkR = TM1R or TM1WalkR1 or TM1WalkR2 or TM1WalkR3\nTM1WalkL = TM1L or TM1WalkL1 or TM1WalkL2 or TM1WalkL3\nRSV1 = RSVR1 or RSVL1\n\nTM2 = TM2R or TM2L\nTM2WalkR = TM2R or TM2WalkR1 or TM2WalkR2 or TM2WalkR3\nTM2WalkL = TM2L or TM2WalkL1 or TM2WalkL2 or TM2WalkL3\nRSV2 = RSVR2 or RSVL2\n\nTM3 = TM3R or TM3L\nTM3WalkR = TM3R or TM3WalkR1 or TM3WalkR2 or TM3WalkR3\nTM3WalkL = TM3L or TM3WalkL1 or TM3WalkL2 or TM3WalkL3\nRSV3 = RSVR3 or RSVL3\n\nTMs = TM1WalkR or TM1WalkL or TM2WalkR or TM2WalkL or TM3WalkR or TM3WalkL or UnmovableR or UnmovableL\n\nclub = clubR or clubL\n\nArrows = ArrowR or ArrowL or ArrowU or ArrowD\n\nObstacles = Player or TMs or blank or Tree\nOBforP = Ball or blank or Target or Tree or Water\n\n. = Background\n, = Green\nP = PlayerR\nO = Target and Green\n_ = blank\nT = Tree and Green\nS = Start and PlayerR and Green\nB = Ball and Green\nW = Water and Green\n+ = Bunker and Green\nR = ArrowR and Green\nL = ArrowL and Green\nU = ArrowU and Green\nD = ArrowD and Green\n1 = WinS1 and blank\n2 = WinS2 and blank\n3 = RSVText and blank\n* = LeftRSV and blank\n\nAddGreenL = AddGreenLUD or AddGreenLU or AddGreenLD\nAddGreenR = AddGreenRUD or AddGreenRU or AddGreenRD\n\nRemoveGreenL = RemoveGreenLUD or RemoveGreenLU or RemoveGreenLD\nRemoveGreenR = RemoveGreenRUD or RemoveGreenRU or RemoveGreenRD\n\nAddWaterL = AddWaterLUD or AddWaterLU or AddWaterLD\nAddwaterR = AddWaterRUD or AddWaterRU or AddWaterRD\n\nRemoveWaterL = RemoveWaterLUD or RemoveWaterLU or RemoveWaterLD\nRemoveWaterR = RemoveWaterRUD or RemoveWaterRU or RemoveWaterRD\n\nAddBunkerL = AddBunkerLUD or AddBunkerLU or AddBunkerLD\nAddBunkerR = AddBunkerRUD or AddBunkerRU or AddBunkerRD\n\nRemoveBunkerL = RemoveBunkerLD or RemoveBunkerLU or RemoveBunkerLUD\nRemoveBunkerR = RemoveBunkerRUD or RemoveBunkerRU or RemoveBunkerRD\n\n=======\nSOUNDS\n=======\n\nLeader MOVE 62144707\nblank MOVE 16278507\nblank move 95612108\nTarget action 6210100\nclub move 44711106\nBall action 45846907\nRipples2 action 22937701\nRipples1 action 73444303\n\nsfx0 47327503\nsfx1 44711106\nsfx2 48837904\n\nrestart 58221102\nundo 12286707\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nStart, WinS1, WinS2, RSVText, LeftRSV\nGreen\nTarget, Bunker, Water\nAddWaterL\nAddwaterR\nAddBunkerL\nAddBunkerR\nRemoveWaterL\nRemoveWaterR\nRemoveBunkerL\nRemoveBunkerR\nRipples1, Ripples2, Ripples3\nRemoveGreenL\nRemoveGreenR\nArrows\nLeader, TM1WalkR, TM1WalkL, TM2WalkR, TM2WalkL, TM3WalkR, TM3WalkL, UnmovableR, UnmovableL, Ball, blank, Tree, BallIn\nclubR, clubL\nBallR, BallL, BallU, BallD\nRSV1, RSV2, RSV3\nOnBunker\nBorderR\nBorderL\nBorderU\nBorderD\nRemoveBorderRU\nRemoveBorderLU\nRemoveBorderRD\nRemoveBorderLD\nAddGreenL\nAddGreenR\nFlag, TreeU\nCursor\nWin1, RSVWin1\nWin2, RSVWin2\nNT, IT, CT, ET, ST, HT, OT, TT, TT2, ExT\n\n======\nRULES\n======\n\nup [ Target | no Flag ] -> [ Target | Flag ]\nup [ Tree | no TreeU ] -> [ Tree | TreeU ]\n\n[ > Player | OBforP ] -> [ Player | OBforP ]\n\n[ LeftRSV ] [ PlayerR ] -> [ ] [ PlayerL ]\n\n([ > Player | Arrows | no OBforP ] -> [ > Player | > Arrows | ]\n[ > Player | Arrows | OBforP ] -> [ Player | Arrows | OBforP ])\n\n(Arrows)\n\nright [ BallU ArrowR | no Obstacles ] -> [ ArrowR | BallU ]\nright [ BallD ArrowR | no Obstacles ] -> [ ArrowR | BallD ]\nright [ BallL ArrowR | no Obstacles ] -> [ ArrowR | Ball ]\nleft [ BallU ArrowL | no Obstacles ] -> [ ArrowL | BallU ]\nleft [ BallD ArrowL | no Obstacles ] -> [ ArrowL | BallD ]\nleft [ BallR ArrowL | no Obstacles ] -> [ ArrowL | Ball ]\nup [ BallR ArrowU | no Obstacles ] -> [ ArrowU | BallR ]\nup [ BallL ArrowU | no Obstacles ] -> [ ArrowU | BallL ]\nup [ BallD ArrowU | no Obstacles ] -> [ ArrowU | Ball ]\ndown [ BallR ArrowD | no Obstacles ] -> [ ArrowD | BallR ]\ndown [ BallL ArrowD | no Obstacles ] -> [ ArrowD | BallL ]\ndown [ BallU ArrowD | no Obstacles ] -> [ ArrowD | Ball ]\n\n(Water)\n\nleft [ no Water no AddWaterL | Water ] -> [ AddWaterLUD | Water ]\nright [ no Water no AddWaterR | Water ] -> [ AddWaterRUD | Water ]\n\nup [ AddWaterLUD | no Water ] -> [ AddWaterLD | ]\nup [ AddWaterRUD | no Water ] -> [ AddWaterRD | ]\n\ndown [ AddWaterLUD | no Water ] -> [ AddWaterLU | ]\ndown [ AddWaterRUD | no Water ] -> [ AddWaterRU | ]\n\ndown [ AddWaterLD | no Water ] -> [ | ]\ndown [ AddWaterRD | no Water ] -> [ | ]\n\nleft [ Water no RemoveWaterL | no Water ] -> [ Water RemoveWaterLUD | ]\nright [ Water no RemoveWaterR | no Water ] -> [ Water RemoveWaterRUD | ]\n\nup [ RemoveWaterLUD | Water ] -> [ RemoveWaterLD | Water ]\nup [ RemoveWaterRUD | Water ] -> [ RemoveWaterRD | Water ]\n\ndown [ RemoveWaterLUD | Water ] -> [ RemoveWaterLU | Water ]\ndown [ RemoveWaterRUD | Water ] -> [ RemoveWaterRU | Water ]\n\ndown [ RemoveWaterLD | Water ] -> [ | Water ]\ndown [ RemoveWaterRD | Water ] -> [ | Water ]\n\nright [ RemoveWaterRU | AddWaterLU ] -> [ RemoveWaterRU | ]\nright [ RemoveWaterRD | AddWaterLD ] -> [ RemoveWaterRD | ]\n\nright [ RemoveWaterRUD | AddWaterLU ] -> [ RemoveWaterRUD | ]\nright [ RemoveWaterRUD | AddWaterLD ] -> [ RemoveWaterRUD | ]\n\nleft [ RemoveWaterLU | AddWaterRU ] -> [ RemoveWaterLU | ]\nleft [ RemoveWaterLD | AddWaterRD ] -> [ RemoveWaterLD | ]\n\nleft [ RemoveWaterLUD | AddWaterRU ] -> [ RemoveWaterLUD | ]\nleft [ RemoveWaterLUD | AddWaterRD ] -> [ RemoveWaterLUD | ]\n\n[ Ball Water ] -> [ Ripples1 Water ]\n[ stationary Ripples3 ] -> [ ]\n[ stationary Ripples2 ] -> [ Ripples3 ]\n[ stationary Ripples1 ] -> [ action Ripples2 ]\n\n(Bunker)\n\nleft [ no Bunker no AddBunkerL | Bunker ] -> [ AddBunkerLUD | Bunker ]\nright [ no Bunker no AddBunkerR | Bunker ] -> [ AddBunkerRUD | Bunker ]\n\nup [ AddBunkerLUD | no Bunker ] -> [ AddBunkerLD | ]\nup [ AddBunkerRUD | no Bunker ] -> [ AddBunkerRD | ]\n\ndown [ AddBunkerLUD | no Bunker ] -> [ AddBunkerLU | ]\ndown [ AddBunkerRUD | no Bunker ] -> [ AddBunkerRU | ]\n\ndown [ AddBunkerLD | no Bunker ] -> [ | ]\ndown [ AddBunkerRD | no Bunker ] -> [ | ]\n\nleft [ Bunker no RemoveBunkerL | no Bunker ] -> [ Bunker RemoveBunkerLUD | ]\nright [ Bunker no RemoveBunkerR | no Bunker ] -> [ Bunker RemoveBunkerRUD | ]\n\nup [ RemoveBunkerLUD | Bunker ] -> [ RemoveBunkerLD | Bunker ]\nup [ RemoveBunkerRUD | Bunker ] -> [ RemoveBunkerRD | Bunker ]\n\ndown [ RemoveBunkerLUD | Bunker ] -> [ RemoveBunkerLU | Bunker ]\ndown [ RemoveBunkerRUD | Bunker ] -> [ RemoveBunkerRU | Bunker ]\n\ndown [ RemoveBunkerLD | Bunker ] -> [ | Bunker ]\ndown [ RemoveBunkerRD | Bunker ] -> [ | Bunker ]\n\nright [ RemoveBunkerRU | AddBunkerLU ] -> [ RemoveBunkerRU | ]\nright [ RemoveBunkerRD | AddBunkerLD ] -> [ RemoveBunkerRD | ]\n\nright [ RemoveBunkerRUD | AddBunkerLU ] -> [ RemoveBunkerRUD | ]\nright [ RemoveBunkerRUD | AddBunkerLD ] -> [ RemoveBunkerRUD | ]\n\nleft [ RemoveBunkerLU | AddBunkerRU ] -> [ RemoveBunkerLU | ]\nleft [ RemoveBunkerLD | AddBunkerRD ] -> [ RemoveBunkerLD | ]\n\nleft [ RemoveBunkerLUD | AddBunkerRU ] -> [ RemoveBunkerLUD | ]\nleft [ RemoveBunkerLUD | AddBunkerRD ] -> [ RemoveBunkerLUD | ]\n\n(Green)\n\nleft [ no Green no AddGreenL | Green ] -> [ AddGreenLUD | Green ]\nright [ no Green no AddGreenR | Green ] -> [ AddGreenRUD | Green ]\n\nup [ AddGreenLUD | no Green ] -> [ AddGreenLD | ]\nup [ AddGreenRUD | no Green ] -> [ AddGreenRD | ]\n\ndown [ AddGreenLUD | no Green ] -> [ AddGreenLU | ]\ndown [ AddGreenRUD | no Green ] -> [ AddGreenRU | ]\n\ndown [ AddGreenLD | no Green ] -> [ | ]\ndown [ AddGreenRD | no Green ] -> [ | ]\n\nleft [ Green no RemoveGreenL | no Green ] -> [ Green RemoveGreenLUD | ]\nright [ Green no RemoveGreenR | no Green ] -> [ Green RemoveGreenRUD | ]\n\nup [ RemoveGreenLUD | Green ] -> [ RemoveGreenLD | Green ]\nup [ RemoveGreenRUD | Green ] -> [ RemoveGreenRD | Green ]\n\ndown [ RemoveGreenLUD | Green ] -> [ RemoveGreenLU | Green ]\ndown [ RemoveGreenRUD | Green ] -> [ RemoveGreenRU | Green ]\n\ndown [ RemoveGreenLD | Green ] -> [ | Green ]\ndown [ RemoveGreenRD | Green ] -> [ | Green ]\n\nright [ RemoveGreenRU | AddGreenLU ] -> [ RemoveGreenRU | ]\nright [ RemoveGreenRD | AddGreenLD ] -> [ RemoveGreenRD | ]\n\nright [ RemoveGreenRUD | AddGreenLU ] -> [ RemoveGreenRUD | ]\nright [ RemoveGreenRUD | AddGreenLD ] -> [ RemoveGreenRUD | ]\n\nleft [ RemoveGreenLU | AddGreenRU ] -> [ RemoveGreenLU | ]\nleft [ RemoveGreenLD | AddGreenRD ] -> [ RemoveGreenLD | ]\n\nleft [ RemoveGreenLUD | AddGreenRU ] -> [ RemoveGreenLUD | ]\nleft [ RemoveGreenLUD | AddGreenRD ] -> [ RemoveGreenLUD | ]\n\n(Border)\n\nright [ Green | blank ] -> [ Green | BorderR blank ]\nleft [ Green | blank ] -> [ Green | BorderL blank ]\nup [ Green | blank ] -> [ Green | BorderU blank ]\ndown [ Green | blank ] -> [ Green | BorderD blank ]\n\nup [ BorderR | no BorderR ] -> [ BorderR RemoveBorderRU | ]\ndown [ BorderR | no BorderR ] -> [ BorderR RemoveBorderRD | ]\nup [ BorderL | no BorderL ] -> [ BorderL RemoveBorderLU | ]\ndown [ BorderL | no BorderL ] -> [ BorderL RemoveBorderLD | ]\nright [ BorderU | no BorderU ] -> [ BorderU RemoveBorderLD | ]\nleft [ BorderU | no BorderU ] -> [ BorderU RemoveBorderRD | ]\nright [ BorderD | no BorderD ] -> [ BorderD RemoveBorderLU | ]\nleft [ BorderD | no BorderD ] -> [ BorderD RemoveBorderRU | ]\n\n(club)\n\n[ > PlayerR | TMs ] -> [ UnmovableR | TMs clubR ] sfx1\n[ > WalkR | TMs ] -> [ UnmovableR | TMs clubR ] sfx1\n[ > PlayerL | TMs ] -> [ UnmovableL | TMs clubL ] sfx1\n[ > WalkL | TMs ] -> [ UnmovableL | TMs clubL ] sfx1\n\n[ > club | no TMs ] -> [ club | ]\nlate [ club UnmovableR ] -> [ clubR UnmovableR ]\nlate [ club UnmovableL ] -> [ clubL UnmovableL ]\nlate [ club TM1WalkR ] -> [ clubR TM1WalkR ]\nlate [ club TM1WalkL ] -> [ clubL TM1WalkL ]\nlate [ club TM2WalkR ] -> [ clubR TM2WalkR ]\nlate [ club TM2WalkL ] -> [ clubL TM2WalkL ]\nlate [ club TM3WalkR ] -> [ clubR TM3WalkR ]\nlate [ club TM3WalkL ] -> [ clubL TM3WalkL ]\n\nlate [ club UnmovableR ] -> [ PlayerR ]\nlate [ club UnmovableL ] -> [ PlayerL ]\n\nlate up [ club TMs no Cursor ] -> [ club TMs Cursor ]\nlate up [ no club TMs Cursor ] -> [ TMs ]\n\n(Hit)\n\n[ Ball Target ] -> [ BallIn Target ]\n\nright [ Bunker OnBunker | BallR ] -> [ Bunker | action Ball ]\nleft [ Bunker OnBunker | BallL ] -> [ Bunker | action Ball ]\nup [ Bunker OnBunker | BallU ] -> [ Bunker | action Ball ]\ndown [ Bunker OnBunker | BallD ] -> [ Bunker | action Ball ]\n\nright [ action Player | Ball no Bunker | no Obstacles ] -> [ Player | BallR | ] sfx0\nleft [ action Player | Ball no Bunker | no Obstacles ] -> [ Player | BallL | ] sfx0\nup [ action Player | Ball no Bunker | no Obstacles ] -> [ Player | BallU | ] sfx0\ndown [ action Player | Ball no Bunker | no Obstacles ] -> [ Player | BallD | ] sfx0\n\nright [ action Player | Ball Bunker | no Obstacles ] -> [ Player | BallR Bunker OnBunker | ] sfx2\nleft [ action Player | Ball Bunker | no Obstacles ] -> [ Player | BallL Bunker OnBunker | ] sfx2\nup [ action Player | Ball Bunker | no Obstacles ] -> [ Player | BallU Bunker OnBunker | ] sfx2\ndown [ action Player | Ball Bunker | no Obstacles ] -> [ Player | BallD Bunker OnBunker | ] sfx2\n\nright [ BallR | no Obstacles ] -> [ > BallR | ]\nright [ BallR | Obstacles ] -> [ action Ball | Obstacles ]\nleft [ BallL | no Obstacles ] -> [ > BallL | ]\nleft [ BallL | Obstacles ] -> [ action Ball | Obstacles ]\nup [ BallU | no Obstacles ] -> [ > BallU | ]\nup [ BallU | Obstacles ] -> [ action Ball | Obstacles ]\ndown [ BallD | no Obstacles ] -> [ > BallD | ]\ndown [ BallD | Obstacles ] -> [ action Ball | Obstacles ]\n\n(Follower)\n\n[ Start RSVR1 no Player ] -> [ Start TM1R RSVR1 ]\n\n[ PlayerR ] -> [ PlayerR RSVR1 ]\n[ WalkR ] -> [ WalkR RSVR1 ]\n[ PlayerL ] -> [ PlayerL RSVL1 ]\n[ WalkL ] -> [ WalkL RSVL1 ]\n\n[ > Leader ] [ RSVR3 ] -> [ > Leader ] [ RSVR1 ]\n[ > Leader ] [ RSVL3 ] -> [ > Leader ] [ RSVL1 ]\n[ > Leader ] [ RSVR2 ] -> [ > Leader ] [ RSVR3 ]\n[ > Leader ] [ RSVL2 ] -> [ > Leader ] [ RSVL3 ]\n[ > Leader ] [ RSVR1 no Player no TM3WalkR ] -> [ > Leader ] [ RSVR2 ]\n[ > Leader ] [ RSVL1 no Player no TM3WalkL no UnmovableR no UnmovableL ] -> [ > Leader ] [ RSVL2 ]\n\nlate [ TM2WalkR RSVR3 ] -> [ TM3WalkR1 RSVR3 ]\nlate [ TM2WalkL RSVL3 ] -> [ TM3WalkL1 RSVL3 ]\nlate [ TM1WalkR RSVR2 ] -> [ TM2WalkR1 RSVR2 ]\nlate [ TM1WalkL RSVL2 ] -> [ TM2WalkL1 RSVL2 ]\nlate [ RSVR1 no Player no TM1WalkR no UnmovableR no UnmovableL ] -> [ TM1WalkR1 RSVR1 ]\nlate [ RSVL1 no Player no TM1WalkL no UnmovableR no UnmovableL ] -> [ TM1WalkL1 RSVL1 ]\n\n(Walking anim)\n\nleft [ > PlayerR ] -> [ > PlayerL ]\nleft [ > WalkR1 ] -> [ > WalkL1 ]\nleft [ > WalkR2 ] -> [ > WalkL2 ]\nleft [ > WalkR3 ] -> [ > WalkL3 ]\nright [ > PlayerL ] -> [ > PlayerR ]\nright [ > WalkL1 ] -> [ > WalkR1 ]\nright [ > WalkL2 ] -> [ > WalkR2 ]\nright [ > WalkL3 ] -> [ > WalkR3 ]\n\n[ stationary TM3walkR3 ] -> [ TM3R ]\n[ stationary TM3WalkR2 ] -> [ TM3walkR3 ]\n[ stationary TM3WalkR1 ] -> [ TM3walkR2 ]\n[ stationary TM3walkL3 ] -> [ TM3L ]\n[ stationary TM3WalkL2 ] -> [ TM3walkL3 ]\n[ stationary TM3WalkL1 ] -> [ TM3walkL2 ]\n\n[ stationary TM2walkR3 ] -> [ TM2R ]\n[ stationary TM2WalkR2 ] -> [ TM2walkR3 ]\n[ stationary TM2WalkR1 ] -> [ TM2walkR2 ]\n[ stationary TM2walkL3 ] -> [ TM2L ]\n[ stationary TM2WalkL2 ] -> [ TM2walkL3 ]\n[ stationary TM2WalkL1 ] -> [ TM2walkL2 ]\n\n[ stationary TM1walkR3 ] -> [ TM1R ]\n[ stationary TM1WalkR2 ] -> [ TM1walkR3 ]\n[ stationary TM1WalkR1 ] -> [ TM1walkR2 ]\n[ stationary TM1walkL3 ] -> [ TM1L ]\n[ stationary TM1WalkL2 ] -> [ TM1walkL3 ]\n[ stationary TM1WalkL1 ] -> [ TM1walkL2 ]\n\n[ > PlayerR ] -> [ > WalkR1 ]\n[ stationary walkR3 ] -> [ PlayerR ]\n[ stationary WalkR2 ] -> [ walkR3 ]\n[ stationary WalkR1 ] -> [ walkR2 ]\n\n[ > PlayerL ] -> [ > WalkL1 ]\n[ stationary walkL3 ] -> [ PlayerL ]\n[ stationary WalkL2 ] -> [ walkL3 ]\n[ stationary WalkL1 ] -> [ walkL2 ]\n\n(Win)\n\nright [ BallIn Target ] [ WinS1 no Win1 ] [ WinS2 no Win2 ] [ RSVText | | ] -> [ BallIn action Target ] [ WinS1 Win1 ] [ WinS2 Win2 ] [ RSVText | | NT ]\n[ Win1 | no Win1 ] -> [ Win1 | RSVWin1 ]\n[ Win2 | no Win2 ] -> [ Win2 | RSVWin2 ]\n[ RSVWin1 ] -> [ Win1 ]\n[ RSVWin2 ] -> [ Win2 ]\n\nright [ NT | | | | | | | | | ] -> [ NT | IT | CT | ET | ST | HT | OT | TT | TT2 | ExT ]\n\n==============\nWINCONDITIONS\n==============\n\nAll WinS1 on Win2\n\n=======\nLEVELS\n=======\n\nmessage Hole 1 of 15\nmessage X to hit.\n______________\n______________\n_1____________\n__s,,,,,,,,,__\n___,,,,,,,o,__\n3__,,,,,,,,,__\n___,,b,,,,,,__\n___,,,,,,,,,__\n____________2_\n______________\n______________\n\nmessage Hole 2 of 15\nmessage Everybody can use the club.\nmessage Press move key towards followers.\n\n______________\n______________\n__1___________\n______o_______\n____,,,,,_____\n3___,,,,,_____\n____,,t,,_____\n____,,b,,_____\n___s,,,,,_____\n_________2____\n______________\n\nmessage Hole 3 of 15\n\n______________\n__1___________\n____,o________\n____,,________\n____,,,,,_____\n3___,,,,,_____\n____,t,,,_____\n____,,,,,_____\n____,b,,,_____\n___s,,,,,_____\n_________2____\n\nmessage Hole 4 of 15\n\n______________\n__1___________\n____,,,,,,____\n___,,,b,,,____\n___,,ttt,,____\n3__,,,o,,,____\n___,,ttt,,____\n___,,,,,,,____\n_________s____\n__________2___\n_____________*\n\nmessage Hole 5 of 15\n\n______________\n__1___________\n____,,,,,,____\n____,,,,,,____\n____,,,ow,____\n3___,,,,w,____\n____,,,,,,____\n____,bt,______\n___s,,,,______\n__________2___\n______________\n\nmessage Hole 6 of 15\n\n______________\n______________\n1_____________\n__,,,,,,,,,___\n__,,,,,,,,,___\n3_t,w,o,w,,___\n__,,tt,tt,,___\n__,bwwwww,,___\n_s,,,,,,,,,___\n___________2__\n______________\n\nmessage Hole 7 of 15\n\n1_____________\n__,,,,,,,,,,,_\n__,,,,,,,,,,,_\n__,,ww,,,ww,,_\n__,,ww,w,ww,,_\n3_,,ww,o,ww,,_\n__t,ww,b,ww,t_\n__,,wwwwwww,,_\n_s,,,,,,,,,,,_\n__,,,,,,,,,,,_\n_____________2\n\nmessage Hole 8 of 15\n\n______________\n1_____________\n__,,,,,,,,,,__\n__,b,,t,,t,,__\n__,,t,,,,,,,__\n3_,,ww,twow,__\n__,,t,,,www,__\n__,,t,t,,,,,__\n_s,,,,,,,,,,__\n____________2_\n______________\n\nmessage Hole 9 of 15\n\n______________\n__1___________\n_______o______\n___,,,,,,_____\n___,b,,,,_____\n3__,,,,,,_____\n___,,,,,,_____\n___,,,,,,_____\n_______s______\n_________2____\n_____________*\n\nmessage Hole 10 of 15\nmessage The bunker could be useful.\n\n______________\n______________\n______________\n_1____________\n___,,,,,,,,,__\n3__,,,,,,,,o__\n__s,b,+,,,,,__\n___,,,,,,,,,__\n____________2_\n______________\n______________\n\nmessage Hole 11 of 15\n\n______________\n_1____________\n_____,,_______\n_____,owwww___\n_____,,,,,,___\n3____,,+,,,___\n___,,,,,w,,___\n___,,,,,,,,___\n___,,,w,,b,___\n__s,,,,,,,,___\n___________2__\n\n\nmessage Hole 12 of 15\n\n______________\n_1____________\n___,,,,www____\n___,o,,,,,____\n___,,,,+++____\n3_s,ttt,+,____\n___,t,,,+,,,__\n___,,,,,,,,,__\n___,b,,,t,,,__\n___,,,,,,,____\n____________2_\n\n(______________\n______________\n_________o____\n______,,,,w___\n____,,,,,,w___\n____,,,b+,w___\n____,,,,,,w___\n____,,,,,,w___\n____,,,,,,w___\n___s,,,,,,w___\n______________\n\n______________\n______________\n__________o___\n_______,,,,w__\n____,,,,,,,w__\n___,,b,,,,,w__\n___,,,,,,,,w__\n___,,,,t,+,w__\n___,,,,,,,,w__\n__s,,,,,,,,w__\n______________)\n\nmessage Hole 13 of 15\n\n_1____________\n______s_______\n__,,,,,,,,,___\n__,,,tbt,,,___\n__,+++,+++,___\n3_,+++,+++,___\n__,+++,+++,___\n__,,+++++,,___\n__,,,wow,,,___\n__,,,www,,,___\n___________2__\n\nmessage Hole 14 of 15\n\n_1____________\n______s_______\n__,,,,,,,,,___\n__,+++b+++,___\n__,+++,+++,___\n3_,w++,++w,___\n__,+++,+++,___\n__,,+++++,,___\n__,,,wow,,,___\n__,,,www,,,___\n___________2__\n\nmessage Hole 15 of 15\n\n______________\n_1____________\n_______,,,,ow_\n____,,,,t,,,w_\n___,,b,,,,,,w_\n3__,,,,,,,,,w_\n___,,,,,,,+,w_\n___,,,,w,,,,w_\n__s,,,,,,,,,w_\n_____________2\n______________\n\n(______________\n______________\n_______s______\n__,,,,,,,,,,,_\n__,,,,,,,,,,,_\n__,,,,,b,,,,,_\n__,,,,,dttttt_\n__ttttt,,,,,o_\n______________\n______________\n______________\n\n______________\n__s,,,,,,,,,__\n___,t,,b,tt,__\n___,,,,t,,,,,_\n___,,,,,,,,,,_\n___,tt,,,tt,,_\n___,o,,t,,,,,_\n___,,,ltd,,,,_\n___,tt,,,tt,,_\n___,,,,,,,,,__\n______________\n\n______________\n_____,,,,,____\n_____,,o,,____\n_____,www,____\n_____,,l,,____\n_____,,r,,____\n_____,,,,,____\n_____,,,,,____\n_____,tbt,____\n____s,,,,,____\n______________)\n\nmessage Thanks for playing!\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", 2, "tick", 2, "tick", 2, "tick", 2, "tick", "tick", 3, "tick", 3, "tick", 3, "tick", 3, "tick", 3, "tick", "tick", 0, "tick", "tick", 0, "tick", 4, "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", 1, "tick", 1, "tick", 1, "tick", 1, "tick", "tick", "tick", 1, "tick", 0, 4, "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "restart", "tick", "tick", "tick", 3, "tick", 2, "tick", "tick", "tick", 3, 2, "tick", 2, "tick", "tick", 2, 3, "tick", 3, "tick", 3, "tick", 3, "tick", "tick", 3, "tick", 0, "tick", "tick", "tick", 4, "tick", "tick", "tick", 2, "tick", 1, "tick", 1, "tick", 1, "tick", 1, "tick", "tick", 1, 0, "tick", 4, "tick", "tick", "tick", "tick", 2, "tick", "tick", 4, "tick", "tick", "tick", "tick", 3, "tick", 3, "tick", 3, "tick", 3, "tick", 3, "tick", 0, "tick", "tick", 0, "tick", 0, "tick", 0, "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", 4, "tick", "tick", 3, "tick", 2, "tick", "tick", 2, "tick", 2, "tick", 2, 1, "tick", 4, "tick", "tick", "tick", "tick", 3, "tick", 3, "tick", 0, "tick", 0, "tick", 0, "tick", 4, "tick", 4, "tick", "tick", "tick", "tick", "tick"], "background blank:0,0,0,0,0,background blank rsvtext:1,0,0,0,0,0,0,0,background blank wins1:2,\nbackground blank borderl removeborderld removeborderlu:3,0,0,0,0,0,0,0,0,0,background blank borderu removeborderrd:4,background green removegreenlud rsvr1 start tm1r:5,addgreenru background blank borderd borderl removeborderlu removeborderru:6,background blank borderl:7,\n7,background blank borderl removeborderld:8,0,0,0,0,0,background blank borderu:9,background green rsvr3 tm3r:10,background green rsvr2 tm2r:11,background green:12,12,background green removegreenld:13,background blank borderd removeborderru:14,\n0,0,0,0,9,12,background green rsvr1 tm1r:15,10,11,15,background blank borderd:16,0,0,0,\n0,9,12,background ball green:17,12,12,10,16,0,0,0,0,9,12,\n12,12,12,11,16,0,0,0,0,9,12,12,12,12,\n15,16,0,0,0,0,9,background green rsvl1 unmovablel:18,12,12,12,10,16,0,\n0,0,0,9,15,background clubr cursor green rsvr2 tm2r:19,10,15,11,16,0,0,0,0,\n9,background flag green:20,background green target:21,12,12,12,16,0,0,0,0,background blank borderu removeborderld:22,background green removegreenru:23,12,\n12,12,background green removegreenrd:24,background blank borderd removeborderlu:25,0,0,0,0,0,background blank borderr removeborderru:26,background blank borderr:27,27,27,background blank borderr removeborderrd:28,\nbackground blank wins2:29,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 2, "1627770891133.2458"] + ["title Shall We Golf?\nauthor nebu soku\nhomepage www.puzzlescript.net\n\nrealtime_interval 0.13\nrun_rules_on_level_Start\nbackground_color #3a6aa3\ntext_color lightblue\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nGreen\n#659b2d green\n11111\n10001\n10101\n10001\n11111\n\nWater\nlightblue \n\nAddWaterLUD\nlightblue \n0....\n.....\n.....\n.....\n0....\n\nAddWaterLU\nlightblue \n0....\n.....\n.....\n.....\n.....\n\nAddWaterLD\nlightblue \n.....\n.....\n.....\n.....\n0....\n\nAddWaterRUD\nlightblue \n....0\n.....\n.....\n.....\n....0\n\nAddWaterRU\nlightblue \n....0\n.....\n.....\n.....\n.....\n\nAddWaterRD\nlightblue \n.....\n.....\n.....\n.....\n....0\n\nRemoveWaterLUD\ngreen\n0....\n.....\n.....\n.....\n0....\n\nRemoveWaterLU\ngreen\n0....\n.....\n.....\n.....\n.....\n\nRemoveWaterLD\ngreen\n.....\n.....\n.....\n.....\n0....\n\nRemoveWaterRUD\ngreen\n....0\n.....\n.....\n.....\n....0\n\nRemoveWaterRU\ngreen\n....0\n.....\n.....\n.....\n.....\n\nRemoveWaterRD\ngreen\n.....\n.....\n.....\n.....\n....0\n\nBunker\nlightbrown orange #2a6b17\n00000\n00010\n00000\n01000\n00000\n\nAddBunkerLUD\nlightbrown\n0....\n.....\n.....\n.....\n0....\n\nAddBunkerLU\nlightbrown\n0....\n.....\n.....\n.....\n.....\n\nAddBunkerLD\nlightbrown\n.....\n.....\n.....\n.....\n0....\n\nAddBunkerRUD\nlightbrown\n....0\n.....\n.....\n.....\n....0\n\nAddBunkerRU\nlightbrown\n....0\n.....\n.....\n.....\n.....\n\nAddBunkerRD\nlightbrown\n.....\n.....\n.....\n.....\n....0\n\nRemoveBunkerLUD\ngreen\n0....\n.....\n.....\n.....\n0....\n\nRemoveBunkerLU\ngreen\n0....\n.....\n.....\n.....\n.....\n\nRemoveBunkerLD\ngreen\n.....\n.....\n.....\n.....\n0....\n\nRemoveBunkerRUD\ngreen\n....0\n.....\n.....\n.....\n....0\n\nRemoveBunkerRU\ngreen\n....0\n.....\n.....\n.....\n.....\n\nRemoveBunkerRD\ngreen\n.....\n.....\n.....\n.....\n....0\n\nOnBunker\nblack\n.....\n.....\n.....\n.....\n.....\n\nblank\n#3a6aa3\n\nWin1\n#3a6aa3\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\nWin2\n#3a6aa3\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nWinS1\nwhite\n\nWinS2\nblack\n\nRSVWin1\nblack\n.....\n.....\n.....\n.....\n.....\n\nRSVWin2\nblack\n.....\n.....\n.....\n.....\n.....\n\nTarget\nlightgray red darkblue\n..0..\n..0..\n..2..\n.....\n.....\n\nFlag\nred lightgray\n.....\n.....\n.....\n..00.\n..1..\n\nclubR\ngray darkgray white\n.....\n.....\n.0...\n.2...\n.11..\n\nclubL\ngray darkgray white\n.....\n.....\n...0.\n...2.\n..11.\n\nBall\nwhite\n.....\n.....\n..0..\n.....\n.....\n\nBallR\nwhite darkblue\n..0..\n.....\n..1..\n.....\n.....\n\nBallL\nwhite darkblue\n..0..\n.....\n..1..\n.....\n.....\n\nBallU\nwhite darkblue\n..0..\n.....\n..1..\n.....\n.....\n\nBallD\nwhite darkblue\n..0..\n.....\n..1..\n.....\n.....\n\nBallIn\ndarkblue\n.....\n.....\n..0..\n.....\n.....\n\nStart\nlightgreen green\n11111\n11111\n10111\n11111\n11101\n\nTree\ndarkgreen brown #134b3d\n.000.\n.000.\n..1..\n.....\n.....\n\nTreeU\ndarkgreen #134b3d\n.....\n.....\n.....\n.111.\n.111.\n\nLeftRSV\npurple\n\nUnmovableR\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n63636\n.3333\n.0330\n.3.6.\n\nUnmovableL\nwhite lightbrown lightgray darkblue brown blue black\n6666.\n63636\n3333.\n0330.\n.6.3.\n\nPlayerR\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n63636\n.2333\n.0330\n.776.\n\nWalkR1\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n63636\n.3233\n.3033\n3.776\n\nWalkR2\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n62636\n.2333\n.0332\n.773.\n\nWalkR3\nwhite lightbrown lightgray darkblue brown blue black darkgray\n.6666\n63636\n23333\n03330\n77..3\n\nPlayerL\nwhite lightbrown lightgray darkblue brown blue black darkgray\n6666.\n63636\n3332.\n0330.\n.677.\n\nWalkL1\nwhite lightbrown lightgray darkblue brown blue black darkgray\n6666.\n63636\n3323.\n.303.\n677.3\n\nWalkL2\nwhite lightbrown lightgray darkblue brown blue black darkgray\n6666.\n63636\n3332.\n2330.\n.377.\n\nWalkL3\nwhite lightbrown lightgray darkblue brown blue black darkgray\n6666.\n63636\n33332\n03330\n3..77\n\nRSVR1\npink\n.....\n.....\n.....\n.....\n.....\n\nRSVL1\npink\n.....\n.....\n.....\n.....\n.....\n\nTM1R\nwhite lightbrown lightgray pink brown blue darkred\n.6666\n63636\n.3333\n.0330\n.3.6.\n\nTM1WalkR1\nwhite lightbrown lightgray pink brown blue darkred\n.6666\n63636\n.3333\n.3033\n3...6\n\nTM1WalkR2\nwhite lightbrown lightgray pink brown blue darkred\n.6666\n63636\n.3333\n.0332\n.6.3.\n\nTM1WalkR3\nwhite lightbrown lightgray pink brown blue darkred\n.6666\n63636\n.3333\n03330\n6...3\n\nTM1L\nwhite lightbrown lightgray pink brown blue darkred\n6666.\n63636\n3333.\n0330.\n.6.3.\n\nTM1WalkL1\nwhite lightbrown lightgray pink brown blue darkred\n6666.\n63636\n3333.\n3303.\n6...3\n\nTM1WalkL2\nwhite lightbrown lightgray pink brown blue darkred\n6666.\n63636\n3333.\n2330.\n.3.6.\n\nTM1WalkL3\nwhite lightbrown lightgray pink brown blue darkred\n6666.\n63636\n3333.\n03330\n3...6\n\nRSVR2\nyellow\n.....\n.....\n.....\n.....\n.....\n\nRSVL2\nyellow\n.....\n.....\n.....\n.....\n.....\n\nTM2R\nwhite lightbrown lightgray yellow brown blue orange\n.6666\n63636\n.3333\n.0330\n.3.6.\n\nTM2WalkR1\nwhite lightbrown lightgray yellow brown blue orange\n.6666\n63636\n.3333\n.3033\n3...6\n\nTM2WalkR2\nwhite lightbrown lightgray yellow brown blue orange\n.6666\n63636\n.3333\n.0332\n.6.3.\n\nTM2WalkR3\nwhite lightbrown lightgray yellow brown blue orange\n.6666\n63636\n.3333\n03330\n6...3\n\nTM2L\nwhite lightbrown lightgray yellow brown blue orange\n6666.\n63636\n3333.\n0330.\n.6.3.\n\nTM2WalkL1\nwhite lightbrown lightgray yellow brown blue orange\n6666.\n63636\n3333.\n3303.\n6...3\n\nTM2WalkL2\nwhite lightbrown lightgray yellow brown blue orange\n6666.\n63636\n3333.\n2330.\n.3.6.\n\nTM2WalkL3\nwhite lightbrown lightgray yellow brown blue orange\n6666.\n63636\n3333.\n03330\n3...6\n\nRSVR3\ngray\n.....\n.....\n.....\n.....\n.....\n\nRSVL3\ngray\n.....\n.....\n.....\n.....\n.....\n\nTM3R\nwhite lightbrown lightgray Blue brown blue #153759\n.6666\n63636\n.3333\n.0330\n.3.6.\n\nTM3WalkR1\nwhite lightbrown lightgray Blue brown blue #153759\n.6666\n63636\n.3333\n.3033\n3...6\n\nTM3WalkR2\nwhite lightbrown lightgray Blue brown blue #153759\n.6666\n63636\n.3333\n.0332\n.6.3.\n\nTM3WalkR3\nwhite lightbrown lightgray Blue brown blue #153759\n.6666\n63636\n.3333\n03330\n6...3\n\nTM3L\nwhite lightbrown lightgray Blue brown blue #153759\n6666.\n63636\n3333.\n0330.\n.6.3.\n\nTM3WalkL1\nwhite lightbrown lightgray Blue brown blue #153759\n6666.\n63636\n3333.\n3303.\n6...3\n\nTM3WalkL2\nwhite lightbrown lightgray Blue brown blue #153759\n6666.\n63636\n3333.\n2330.\n.3.6.\n\nTM3WalkL3\nwhite lightbrown lightgray Blue brown blue #153759\n6666.\n63636\n3333.\n03330\n3...6\n\nAddGreenLUD\ngreen\n0....\n.....\n.....\n.....\n0....\n\nAddGreenLU\ngreen\n0....\n.....\n.....\n.....\n.....\n\nAddGreenLD\ngreen\n.....\n.....\n.....\n.....\n0....\n\nAddGreenRUD\ngreen\n....0\n.....\n.....\n.....\n....0\n\nAddGreenRU\ngreen\n....0\n.....\n.....\n.....\n.....\n\nAddGreenRD\ngreen\n.....\n.....\n.....\n.....\n....0\n\nRemoveGreenLUD\n#1d4c2c\n0....\n.....\n.....\n.....\n0....\n\nRemoveGreenLU\n#1d4c2c\n0....\n.....\n.....\n.....\n.....\n\nRemoveGreenLD\n#1d4c2c\n.....\n.....\n.....\n.....\n0....\n\nRemoveGreenRUD\n#1d4c2c\n....0\n.....\n.....\n.....\n....0\n\nRemoveGreenRU\n#1d4c2c\n....0\n.....\n.....\n.....\n.....\n\nRemoveGreenRD\n#1d4c2c\n.....\n.....\n.....\n.....\n....0\n\nBorderR\n#1d4c2c\n0....\n0....\n0....\n0....\n0....\n\nBorderL\n#1d4c2c\n....0\n....0\n....0\n....0\n....0\n\nBorderU\n#1d4c2c\n.....\n.....\n.....\n.....\n00000\n\nBorderD\n#1d4c2c\n00000\n.....\n.....\n.....\n.....\n\nRemoveBorderRU\n#3a6aa3\n0....\n.....\n.....\n.....\n.....\n\nRemoveBorderLU\n#3a6aa3\n....0\n.....\n.....\n.....\n.....\n\nRemoveBorderRD\n#3a6aa3\n.....\n.....\n.....\n.....\n0....\n\nRemoveBorderLD\n#3a6aa3\n.....\n.....\n.....\n.....\n....0\n\nRipples1\nwhite\n.....\n.....\n..0..\n.....\n.....\n\nRipples2\nwhite #3a6aa3\n.....\n...0.\n.0...\n..1..\n.....\n\nRipples3\nwhite #3a6aa3\n.....\n.....\n.....\n.....\n..1..\n\nArrowR\ngray lightgray red\n.111.\n11211\n11121\n11211\n.111.\n\nArrowL\ngray lightgray red\n.111.\n11211\n12111\n11211\n.111.\n\nArrowU\ngray lightgray red\n.111.\n11211\n12121\n11111\n.111.\n\nArrowD\ngray lightgray red\n.111.\n11111\n12121\n11211\n.111.\n\nRSVText\npurple\n\nNT\n#fa5c5c\n0...0\n00..0\n0.0.0\n0..00\n0...0\n\nIT\norange yellow\n.0.11\n.0.1.\n.0.1.\n.0.1.\n.0.11\n\nCT\nyellow #27cc20\n000.1\n....1\n....1\n....1\n000.1\n\nET\n#27cc20\n0000.\n.....\n0000.\n.....\n0000.\n\nST\n#4bb6e3\n.0000\n.0...\n.0000\n.....\n.0000\n\nHT\n#4bb6e3 blue\n0.1..\n..1..\n0.111\n0.1..\n0.1..\n\nOT\nblue #bb4be2\n.0.11\n.0.1.\n00.1.\n.0.1.\n.0.11\n\nTT\n#bb4be2 pink\n000.1\n..0..\n..0..\n..0..\n000..\n\nTT2\npink\n0000.\n.0...\n.0...\n.0...\n.0...\n\nExT\n#fa5c5c\n.0...\n.0...\n.0...\n.....\n.0...\n\nCursor\nred\n0...0\n.....\n.....\n.....\n0...0\n\n=======\nLEGEND\n=======\n\nPlayer = PlayerR or PlayerL or WalkR1 or WalkR2 or WalkR3 or WalkL1 or WalkL2 or WalkL3 or clubR or clubL\nLeader = PlayerR or PlayerL or WalkR1 or WalkR2 or WalkR3 or WalkL1 or WalkL2 or WalkL3\nWalkR = WalkR1 or WalkR2 or WalkR3\nWalkL = WalkL1 or WalkL2 or WalkL3\n\nTM1 = TM1R or TM1L\nTM1WalkR = TM1R or TM1WalkR1 or TM1WalkR2 or TM1WalkR3\nTM1WalkL = TM1L or TM1WalkL1 or TM1WalkL2 or TM1WalkL3\nRSV1 = RSVR1 or RSVL1\n\nTM2 = TM2R or TM2L\nTM2WalkR = TM2R or TM2WalkR1 or TM2WalkR2 or TM2WalkR3\nTM2WalkL = TM2L or TM2WalkL1 or TM2WalkL2 or TM2WalkL3\nRSV2 = RSVR2 or RSVL2\n\nTM3 = TM3R or TM3L\nTM3WalkR = TM3R or TM3WalkR1 or TM3WalkR2 or TM3WalkR3\nTM3WalkL = TM3L or TM3WalkL1 or TM3WalkL2 or TM3WalkL3\nRSV3 = RSVR3 or RSVL3\n\nTMs = TM1WalkR or TM1WalkL or TM2WalkR or TM2WalkL or TM3WalkR or TM3WalkL or UnmovableR or UnmovableL\n\nclub = clubR or clubL\n\nArrows = ArrowR or ArrowL or ArrowU or ArrowD\n\nObstacles = Player or TMs or blank or Tree\nOBforP = Ball or blank or Target or Tree or Water\n\n. = Background\n, = Green\nP = PlayerR\nO = Target and Green\n_ = blank\nT = Tree and Green\nS = Start and PlayerR and Green\nB = Ball and Green\nW = Water and Green\n+ = Bunker and Green\nR = ArrowR and Green\nL = ArrowL and Green\nU = ArrowU and Green\nD = ArrowD and Green\n1 = WinS1 and blank\n2 = WinS2 and blank\n3 = RSVText and blank\n* = LeftRSV and blank\n\nAddGreenL = AddGreenLUD or AddGreenLU or AddGreenLD\nAddGreenR = AddGreenRUD or AddGreenRU or AddGreenRD\n\nRemoveGreenL = RemoveGreenLUD or RemoveGreenLU or RemoveGreenLD\nRemoveGreenR = RemoveGreenRUD or RemoveGreenRU or RemoveGreenRD\n\nAddWaterL = AddWaterLUD or AddWaterLU or AddWaterLD\nAddwaterR = AddWaterRUD or AddWaterRU or AddWaterRD\n\nRemoveWaterL = RemoveWaterLUD or RemoveWaterLU or RemoveWaterLD\nRemoveWaterR = RemoveWaterRUD or RemoveWaterRU or RemoveWaterRD\n\nAddBunkerL = AddBunkerLUD or AddBunkerLU or AddBunkerLD\nAddBunkerR = AddBunkerRUD or AddBunkerRU or AddBunkerRD\n\nRemoveBunkerL = RemoveBunkerLD or RemoveBunkerLU or RemoveBunkerLUD\nRemoveBunkerR = RemoveBunkerRUD or RemoveBunkerRU or RemoveBunkerRD\n\n=======\nSOUNDS\n=======\n\nLeader MOVE 62144707\nblank MOVE 16278507\nblank move 95612108\nTarget action 6210100\nclub move 44711106\nBall action 45846907\nRipples2 action 22937701\nRipples1 action 73444303\n\nsfx0 47327503\nsfx1 44711106\nsfx2 48837904\n\nrestart 58221102\nundo 12286707\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nStart, WinS1, WinS2, RSVText, LeftRSV\nGreen\nTarget, Bunker, Water\nAddWaterL\nAddwaterR\nAddBunkerL\nAddBunkerR\nRemoveWaterL\nRemoveWaterR\nRemoveBunkerL\nRemoveBunkerR\nRipples1, Ripples2, Ripples3\nRemoveGreenL\nRemoveGreenR\nArrows\nLeader, TM1WalkR, TM1WalkL, TM2WalkR, TM2WalkL, TM3WalkR, TM3WalkL, UnmovableR, UnmovableL, Ball, blank, Tree, BallIn\nclubR, clubL\nBallR, BallL, BallU, BallD\nRSV1, RSV2, RSV3\nOnBunker\nBorderR\nBorderL\nBorderU\nBorderD\nRemoveBorderRU\nRemoveBorderLU\nRemoveBorderRD\nRemoveBorderLD\nAddGreenL\nAddGreenR\nFlag, TreeU\nCursor\nWin1, RSVWin1\nWin2, RSVWin2\nNT, IT, CT, ET, ST, HT, OT, TT, TT2, ExT\n\n======\nRULES\n======\n\nup [ Target | no Flag ] -> [ Target | Flag ]\nup [ Tree | no TreeU ] -> [ Tree | TreeU ]\n\n[ > Player | OBforP ] -> [ Player | OBforP ]\n\n[ LeftRSV ] [ PlayerR ] -> [ ] [ PlayerL ]\n\n([ > Player | Arrows | no OBforP ] -> [ > Player | > Arrows | ]\n[ > Player | Arrows | OBforP ] -> [ Player | Arrows | OBforP ])\n\n(Arrows)\n\nright [ BallU ArrowR | no Obstacles ] -> [ ArrowR | BallU ]\nright [ BallD ArrowR | no Obstacles ] -> [ ArrowR | BallD ]\nright [ BallL ArrowR | no Obstacles ] -> [ ArrowR | Ball ]\nleft [ BallU ArrowL | no Obstacles ] -> [ ArrowL | BallU ]\nleft [ BallD ArrowL | no Obstacles ] -> [ ArrowL | BallD ]\nleft [ BallR ArrowL | no Obstacles ] -> [ ArrowL | Ball ]\nup [ BallR ArrowU | no Obstacles ] -> [ ArrowU | BallR ]\nup [ BallL ArrowU | no Obstacles ] -> [ ArrowU | BallL ]\nup [ BallD ArrowU | no Obstacles ] -> [ ArrowU | Ball ]\ndown [ BallR ArrowD | no Obstacles ] -> [ ArrowD | BallR ]\ndown [ BallL ArrowD | no Obstacles ] -> [ ArrowD | BallL ]\ndown [ BallU ArrowD | no Obstacles ] -> [ ArrowD | Ball ]\n\n(Water)\n\nleft [ no Water no AddWaterL | Water ] -> [ AddWaterLUD | Water ]\nright [ no Water no AddWaterR | Water ] -> [ AddWaterRUD | Water ]\n\nup [ AddWaterLUD | no Water ] -> [ AddWaterLD | ]\nup [ AddWaterRUD | no Water ] -> [ AddWaterRD | ]\n\ndown [ AddWaterLUD | no Water ] -> [ AddWaterLU | ]\ndown [ AddWaterRUD | no Water ] -> [ AddWaterRU | ]\n\ndown [ AddWaterLD | no Water ] -> [ | ]\ndown [ AddWaterRD | no Water ] -> [ | ]\n\nleft [ Water no RemoveWaterL | no Water ] -> [ Water RemoveWaterLUD | ]\nright [ Water no RemoveWaterR | no Water ] -> [ Water RemoveWaterRUD | ]\n\nup [ RemoveWaterLUD | Water ] -> [ RemoveWaterLD | Water ]\nup [ RemoveWaterRUD | Water ] -> [ RemoveWaterRD | Water ]\n\ndown [ RemoveWaterLUD | Water ] -> [ RemoveWaterLU | Water ]\ndown [ RemoveWaterRUD | Water ] -> [ RemoveWaterRU | Water ]\n\ndown [ RemoveWaterLD | Water ] -> [ | Water ]\ndown [ RemoveWaterRD | Water ] -> [ | Water ]\n\nright [ RemoveWaterRU | AddWaterLU ] -> [ RemoveWaterRU | ]\nright [ RemoveWaterRD | AddWaterLD ] -> [ RemoveWaterRD | ]\n\nright [ RemoveWaterRUD | AddWaterLU ] -> [ RemoveWaterRUD | ]\nright [ RemoveWaterRUD | AddWaterLD ] -> [ RemoveWaterRUD | ]\n\nleft [ RemoveWaterLU | AddWaterRU ] -> [ RemoveWaterLU | ]\nleft [ RemoveWaterLD | AddWaterRD ] -> [ RemoveWaterLD | ]\n\nleft [ RemoveWaterLUD | AddWaterRU ] -> [ RemoveWaterLUD | ]\nleft [ RemoveWaterLUD | AddWaterRD ] -> [ RemoveWaterLUD | ]\n\n[ Ball Water ] -> [ Ripples1 Water ]\n[ stationary Ripples3 ] -> [ ]\n[ stationary Ripples2 ] -> [ Ripples3 ]\n[ stationary Ripples1 ] -> [ action Ripples2 ]\n\n(Bunker)\n\nleft [ no Bunker no AddBunkerL | Bunker ] -> [ AddBunkerLUD | Bunker ]\nright [ no Bunker no AddBunkerR | Bunker ] -> [ AddBunkerRUD | Bunker ]\n\nup [ AddBunkerLUD | no Bunker ] -> [ AddBunkerLD | ]\nup [ AddBunkerRUD | no Bunker ] -> [ AddBunkerRD | ]\n\ndown [ AddBunkerLUD | no Bunker ] -> [ AddBunkerLU | ]\ndown [ AddBunkerRUD | no Bunker ] -> [ AddBunkerRU | ]\n\ndown [ AddBunkerLD | no Bunker ] -> [ | ]\ndown [ AddBunkerRD | no Bunker ] -> [ | ]\n\nleft [ Bunker no RemoveBunkerL | no Bunker ] -> [ Bunker RemoveBunkerLUD | ]\nright [ Bunker no RemoveBunkerR | no Bunker ] -> [ Bunker RemoveBunkerRUD | ]\n\nup [ RemoveBunkerLUD | Bunker ] -> [ RemoveBunkerLD | Bunker ]\nup [ RemoveBunkerRUD | Bunker ] -> [ RemoveBunkerRD | Bunker ]\n\ndown [ RemoveBunkerLUD | Bunker ] -> [ RemoveBunkerLU | Bunker ]\ndown [ RemoveBunkerRUD | Bunker ] -> [ RemoveBunkerRU | Bunker ]\n\ndown [ RemoveBunkerLD | Bunker ] -> [ | Bunker ]\ndown [ RemoveBunkerRD | Bunker ] -> [ | Bunker ]\n\nright [ RemoveBunkerRU | AddBunkerLU ] -> [ RemoveBunkerRU | ]\nright [ RemoveBunkerRD | AddBunkerLD ] -> [ RemoveBunkerRD | ]\n\nright [ RemoveBunkerRUD | AddBunkerLU ] -> [ RemoveBunkerRUD | ]\nright [ RemoveBunkerRUD | AddBunkerLD ] -> [ RemoveBunkerRUD | ]\n\nleft [ RemoveBunkerLU | AddBunkerRU ] -> [ RemoveBunkerLU | ]\nleft [ RemoveBunkerLD | AddBunkerRD ] -> [ RemoveBunkerLD | ]\n\nleft [ RemoveBunkerLUD | AddBunkerRU ] -> [ RemoveBunkerLUD | ]\nleft [ RemoveBunkerLUD | AddBunkerRD ] -> [ RemoveBunkerLUD | ]\n\n(Green)\n\nleft [ no Green no AddGreenL | Green ] -> [ AddGreenLUD | Green ]\nright [ no Green no AddGreenR | Green ] -> [ AddGreenRUD | Green ]\n\nup [ AddGreenLUD | no Green ] -> [ AddGreenLD | ]\nup [ AddGreenRUD | no Green ] -> [ AddGreenRD | ]\n\ndown [ AddGreenLUD | no Green ] -> [ AddGreenLU | ]\ndown [ AddGreenRUD | no Green ] -> [ AddGreenRU | ]\n\ndown [ AddGreenLD | no Green ] -> [ | ]\ndown [ AddGreenRD | no Green ] -> [ | ]\n\nleft [ Green no RemoveGreenL | no Green ] -> [ Green RemoveGreenLUD | ]\nright [ Green no RemoveGreenR | no Green ] -> [ Green RemoveGreenRUD | ]\n\nup [ RemoveGreenLUD | Green ] -> [ RemoveGreenLD | Green ]\nup [ RemoveGreenRUD | Green ] -> [ RemoveGreenRD | Green ]\n\ndown [ RemoveGreenLUD | Green ] -> [ RemoveGreenLU | Green ]\ndown [ RemoveGreenRUD | Green ] -> [ RemoveGreenRU | Green ]\n\ndown [ RemoveGreenLD | Green ] -> [ | Green ]\ndown [ RemoveGreenRD | Green ] -> [ | Green ]\n\nright [ RemoveGreenRU | AddGreenLU ] -> [ RemoveGreenRU | ]\nright [ RemoveGreenRD | AddGreenLD ] -> [ RemoveGreenRD | ]\n\nright [ RemoveGreenRUD | AddGreenLU ] -> [ RemoveGreenRUD | ]\nright [ RemoveGreenRUD | AddGreenLD ] -> [ RemoveGreenRUD | ]\n\nleft [ RemoveGreenLU | AddGreenRU ] -> [ RemoveGreenLU | ]\nleft [ RemoveGreenLD | AddGreenRD ] -> [ RemoveGreenLD | ]\n\nleft [ RemoveGreenLUD | AddGreenRU ] -> [ RemoveGreenLUD | ]\nleft [ RemoveGreenLUD | AddGreenRD ] -> [ RemoveGreenLUD | ]\n\n(Border)\n\nright [ Green | blank ] -> [ Green | BorderR blank ]\nleft [ Green | blank ] -> [ Green | BorderL blank ]\nup [ Green | blank ] -> [ Green | BorderU blank ]\ndown [ Green | blank ] -> [ Green | BorderD blank ]\n\nup [ BorderR | no BorderR ] -> [ BorderR RemoveBorderRU | ]\ndown [ BorderR | no BorderR ] -> [ BorderR RemoveBorderRD | ]\nup [ BorderL | no BorderL ] -> [ BorderL RemoveBorderLU | ]\ndown [ BorderL | no BorderL ] -> [ BorderL RemoveBorderLD | ]\nright [ BorderU | no BorderU ] -> [ BorderU RemoveBorderLD | ]\nleft [ BorderU | no BorderU ] -> [ BorderU RemoveBorderRD | ]\nright [ BorderD | no BorderD ] -> [ BorderD RemoveBorderLU | ]\nleft [ BorderD | no BorderD ] -> [ BorderD RemoveBorderRU | ]\n\n(club)\n\n[ > PlayerR | TMs ] -> [ UnmovableR | TMs clubR ] sfx1\n[ > WalkR | TMs ] -> [ UnmovableR | TMs clubR ] sfx1\n[ > PlayerL | TMs ] -> [ UnmovableL | TMs clubL ] sfx1\n[ > WalkL | TMs ] -> [ UnmovableL | TMs clubL ] sfx1\n\n[ > club | no TMs ] -> [ club | ]\nlate [ club UnmovableR ] -> [ clubR UnmovableR ]\nlate [ club UnmovableL ] -> [ clubL UnmovableL ]\nlate [ club TM1WalkR ] -> [ clubR TM1WalkR ]\nlate [ club TM1WalkL ] -> [ clubL TM1WalkL ]\nlate [ club TM2WalkR ] -> [ clubR TM2WalkR ]\nlate [ club TM2WalkL ] -> [ clubL TM2WalkL ]\nlate [ club TM3WalkR ] -> [ clubR TM3WalkR ]\nlate [ club TM3WalkL ] -> [ clubL TM3WalkL ]\n\nlate [ club UnmovableR ] -> [ PlayerR ]\nlate [ club UnmovableL ] -> [ PlayerL ]\n\nlate up [ club TMs no Cursor ] -> [ club TMs Cursor ]\nlate up [ no club TMs Cursor ] -> [ TMs ]\n\n(Hit)\n\n[ Ball Target ] -> [ BallIn Target ]\n\nright [ Bunker OnBunker | BallR ] -> [ Bunker | action Ball ]\nleft [ Bunker OnBunker | BallL ] -> [ Bunker | action Ball ]\nup [ Bunker OnBunker | BallU ] -> [ Bunker | action Ball ]\ndown [ Bunker OnBunker | BallD ] -> [ Bunker | action Ball ]\n\nright [ action Player | Ball no Bunker | no Obstacles ] -> [ Player | BallR | ] sfx0\nleft [ action Player | Ball no Bunker | no Obstacles ] -> [ Player | BallL | ] sfx0\nup [ action Player | Ball no Bunker | no Obstacles ] -> [ Player | BallU | ] sfx0\ndown [ action Player | Ball no Bunker | no Obstacles ] -> [ Player | BallD | ] sfx0\n\nright [ action Player | Ball Bunker | no Obstacles ] -> [ Player | BallR Bunker OnBunker | ] sfx2\nleft [ action Player | Ball Bunker | no Obstacles ] -> [ Player | BallL Bunker OnBunker | ] sfx2\nup [ action Player | Ball Bunker | no Obstacles ] -> [ Player | BallU Bunker OnBunker | ] sfx2\ndown [ action Player | Ball Bunker | no Obstacles ] -> [ Player | BallD Bunker OnBunker | ] sfx2\n\nright [ BallR | no Obstacles ] -> [ > BallR | ]\nright [ BallR | Obstacles ] -> [ action Ball | Obstacles ]\nleft [ BallL | no Obstacles ] -> [ > BallL | ]\nleft [ BallL | Obstacles ] -> [ action Ball | Obstacles ]\nup [ BallU | no Obstacles ] -> [ > BallU | ]\nup [ BallU | Obstacles ] -> [ action Ball | Obstacles ]\ndown [ BallD | no Obstacles ] -> [ > BallD | ]\ndown [ BallD | Obstacles ] -> [ action Ball | Obstacles ]\n\n(Follower)\n\n[ Start RSVR1 no Player ] -> [ Start TM1R RSVR1 ]\n\n[ PlayerR ] -> [ PlayerR RSVR1 ]\n[ WalkR ] -> [ WalkR RSVR1 ]\n[ PlayerL ] -> [ PlayerL RSVL1 ]\n[ WalkL ] -> [ WalkL RSVL1 ]\n\n[ > Leader ] [ RSVR3 ] -> [ > Leader ] [ RSVR1 ]\n[ > Leader ] [ RSVL3 ] -> [ > Leader ] [ RSVL1 ]\n[ > Leader ] [ RSVR2 ] -> [ > Leader ] [ RSVR3 ]\n[ > Leader ] [ RSVL2 ] -> [ > Leader ] [ RSVL3 ]\n[ > Leader ] [ RSVR1 no Player no TM3WalkR ] -> [ > Leader ] [ RSVR2 ]\n[ > Leader ] [ RSVL1 no Player no TM3WalkL no UnmovableR no UnmovableL ] -> [ > Leader ] [ RSVL2 ]\n\nlate [ TM2WalkR RSVR3 ] -> [ TM3WalkR1 RSVR3 ]\nlate [ TM2WalkL RSVL3 ] -> [ TM3WalkL1 RSVL3 ]\nlate [ TM1WalkR RSVR2 ] -> [ TM2WalkR1 RSVR2 ]\nlate [ TM1WalkL RSVL2 ] -> [ TM2WalkL1 RSVL2 ]\nlate [ RSVR1 no Player no TM1WalkR no UnmovableR no UnmovableL ] -> [ TM1WalkR1 RSVR1 ]\nlate [ RSVL1 no Player no TM1WalkL no UnmovableR no UnmovableL ] -> [ TM1WalkL1 RSVL1 ]\n\n(Walking anim)\n\nleft [ > PlayerR ] -> [ > PlayerL ]\nleft [ > WalkR1 ] -> [ > WalkL1 ]\nleft [ > WalkR2 ] -> [ > WalkL2 ]\nleft [ > WalkR3 ] -> [ > WalkL3 ]\nright [ > PlayerL ] -> [ > PlayerR ]\nright [ > WalkL1 ] -> [ > WalkR1 ]\nright [ > WalkL2 ] -> [ > WalkR2 ]\nright [ > WalkL3 ] -> [ > WalkR3 ]\n\n[ stationary TM3walkR3 ] -> [ TM3R ]\n[ stationary TM3WalkR2 ] -> [ TM3walkR3 ]\n[ stationary TM3WalkR1 ] -> [ TM3walkR2 ]\n[ stationary TM3walkL3 ] -> [ TM3L ]\n[ stationary TM3WalkL2 ] -> [ TM3walkL3 ]\n[ stationary TM3WalkL1 ] -> [ TM3walkL2 ]\n\n[ stationary TM2walkR3 ] -> [ TM2R ]\n[ stationary TM2WalkR2 ] -> [ TM2walkR3 ]\n[ stationary TM2WalkR1 ] -> [ TM2walkR2 ]\n[ stationary TM2walkL3 ] -> [ TM2L ]\n[ stationary TM2WalkL2 ] -> [ TM2walkL3 ]\n[ stationary TM2WalkL1 ] -> [ TM2walkL2 ]\n\n[ stationary TM1walkR3 ] -> [ TM1R ]\n[ stationary TM1WalkR2 ] -> [ TM1walkR3 ]\n[ stationary TM1WalkR1 ] -> [ TM1walkR2 ]\n[ stationary TM1walkL3 ] -> [ TM1L ]\n[ stationary TM1WalkL2 ] -> [ TM1walkL3 ]\n[ stationary TM1WalkL1 ] -> [ TM1walkL2 ]\n\n[ > PlayerR ] -> [ > WalkR1 ]\n[ stationary walkR3 ] -> [ PlayerR ]\n[ stationary WalkR2 ] -> [ walkR3 ]\n[ stationary WalkR1 ] -> [ walkR2 ]\n\n[ > PlayerL ] -> [ > WalkL1 ]\n[ stationary walkL3 ] -> [ PlayerL ]\n[ stationary WalkL2 ] -> [ walkL3 ]\n[ stationary WalkL1 ] -> [ walkL2 ]\n\n(Win)\n\nright [ BallIn Target ] [ WinS1 no Win1 ] [ WinS2 no Win2 ] [ RSVText | | ] -> [ BallIn action Target ] [ WinS1 Win1 ] [ WinS2 Win2 ] [ RSVText | | NT ]\n[ Win1 | no Win1 ] -> [ Win1 | RSVWin1 ]\n[ Win2 | no Win2 ] -> [ Win2 | RSVWin2 ]\n[ RSVWin1 ] -> [ Win1 ]\n[ RSVWin2 ] -> [ Win2 ]\n\nright [ NT | | | | | | | | | ] -> [ NT | IT | CT | ET | ST | HT | OT | TT | TT2 | ExT ]\n\n==============\nWINCONDITIONS\n==============\n\nAll WinS1 on Win2\n\n=======\nLEVELS\n=======\n\nmessage Hole 1 of 15\nmessage X to hit.\n______________\n______________\n_1____________\n__s,,,,,,,,,__\n___,,,,,,,o,__\n3__,,,,,,,,,__\n___,,b,,,,,,__\n___,,,,,,,,,__\n____________2_\n______________\n______________\n\nmessage Hole 2 of 15\nmessage Everybody can use the club.\nmessage Press move key towards followers.\n\n______________\n______________\n__1___________\n______o_______\n____,,,,,_____\n3___,,,,,_____\n____,,t,,_____\n____,,b,,_____\n___s,,,,,_____\n_________2____\n______________\n\nmessage Hole 3 of 15\n\n______________\n__1___________\n____,o________\n____,,________\n____,,,,,_____\n3___,,,,,_____\n____,t,,,_____\n____,,,,,_____\n____,b,,,_____\n___s,,,,,_____\n_________2____\n\nmessage Hole 4 of 15\n\n______________\n__1___________\n____,,,,,,____\n___,,,b,,,____\n___,,ttt,,____\n3__,,,o,,,____\n___,,ttt,,____\n___,,,,,,,____\n_________s____\n__________2___\n_____________*\n\nmessage Hole 5 of 15\n\n______________\n__1___________\n____,,,,,,____\n____,,,,,,____\n____,,,ow,____\n3___,,,,w,____\n____,,,,,,____\n____,bt,______\n___s,,,,______\n__________2___\n______________\n\nmessage Hole 6 of 15\n\n______________\n______________\n1_____________\n__,,,,,,,,,___\n__,,,,,,,,,___\n3_t,w,o,w,,___\n__,,tt,tt,,___\n__,bwwwww,,___\n_s,,,,,,,,,___\n___________2__\n______________\n\nmessage Hole 7 of 15\n\n1_____________\n__,,,,,,,,,,,_\n__,,,,,,,,,,,_\n__,,ww,,,ww,,_\n__,,ww,w,ww,,_\n3_,,ww,o,ww,,_\n__t,ww,b,ww,t_\n__,,wwwwwww,,_\n_s,,,,,,,,,,,_\n__,,,,,,,,,,,_\n_____________2\n\nmessage Hole 8 of 15\n\n______________\n1_____________\n__,,,,,,,,,,__\n__,b,,t,,t,,__\n__,,t,,,,,,,__\n3_,,ww,twow,__\n__,,t,,,www,__\n__,,t,t,,,,,__\n_s,,,,,,,,,,__\n____________2_\n______________\n\nmessage Hole 9 of 15\n\n______________\n__1___________\n_______o______\n___,,,,,,_____\n___,b,,,,_____\n3__,,,,,,_____\n___,,,,,,_____\n___,,,,,,_____\n_______s______\n_________2____\n_____________*\n\nmessage Hole 10 of 15\nmessage The bunker could be useful.\n\n______________\n______________\n______________\n_1____________\n___,,,,,,,,,__\n3__,,,,,,,,o__\n__s,b,+,,,,,__\n___,,,,,,,,,__\n____________2_\n______________\n______________\n\nmessage Hole 11 of 15\n\n______________\n_1____________\n_____,,_______\n_____,owwww___\n_____,,,,,,___\n3____,,+,,,___\n___,,,,,w,,___\n___,,,,,,,,___\n___,,,w,,b,___\n__s,,,,,,,,___\n___________2__\n\n\nmessage Hole 12 of 15\n\n______________\n_1____________\n___,,,,www____\n___,o,,,,,____\n___,,,,+++____\n3_s,ttt,+,____\n___,t,,,+,,,__\n___,,,,,,,,,__\n___,b,,,t,,,__\n___,,,,,,,____\n____________2_\n\n(______________\n______________\n_________o____\n______,,,,w___\n____,,,,,,w___\n____,,,b+,w___\n____,,,,,,w___\n____,,,,,,w___\n____,,,,,,w___\n___s,,,,,,w___\n______________\n\n______________\n______________\n__________o___\n_______,,,,w__\n____,,,,,,,w__\n___,,b,,,,,w__\n___,,,,,,,,w__\n___,,,,t,+,w__\n___,,,,,,,,w__\n__s,,,,,,,,w__\n______________)\n\nmessage Hole 13 of 15\n\n_1____________\n______s_______\n__,,,,,,,,,___\n__,,,tbt,,,___\n__,+++,+++,___\n3_,+++,+++,___\n__,+++,+++,___\n__,,+++++,,___\n__,,,wow,,,___\n__,,,www,,,___\n___________2__\n\nmessage Hole 14 of 15\n\n_1____________\n______s_______\n__,,,,,,,,,___\n__,+++b+++,___\n__,+++,+++,___\n3_,w++,++w,___\n__,+++,+++,___\n__,,+++++,,___\n__,,,wow,,,___\n__,,,www,,,___\n___________2__\n\nmessage Hole 15 of 15\n\n______________\n_1____________\n_______,,,,ow_\n____,,,,t,,,w_\n___,,b,,,,,,w_\n3__,,,,,,,,,w_\n___,,,,,,,+,w_\n___,,,,w,,,,w_\n__s,,,,,,,,,w_\n_____________2\n______________\n\n(______________\n______________\n_______s______\n__,,,,,,,,,,,_\n__,,,,,,,,,,,_\n__,,,,,b,,,,,_\n__,,,,,dttttt_\n__ttttt,,,,,o_\n______________\n______________\n______________\n\n______________\n__s,,,,,,,,,__\n___,t,,b,tt,__\n___,,,,t,,,,,_\n___,,,,,,,,,,_\n___,tt,,,tt,,_\n___,o,,t,,,,,_\n___,,,ltd,,,,_\n___,tt,,,tt,,_\n___,,,,,,,,,__\n______________\n\n______________\n_____,,,,,____\n_____,,o,,____\n_____,www,____\n_____,,l,,____\n_____,,r,,____\n_____,,,,,____\n_____,,,,,____\n_____,tbt,____\n____s,,,,,____\n______________)\n\nmessage Thanks for playing!\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick",3,"tick","tick",2,"tick",2,"tick",2,"tick",2,"tick","tick",3,"tick",3,"tick",3,"tick",3,"tick",3,"tick","tick",0,"tick","tick",0,"tick",4,"tick","tick","tick","tick","tick",2,"tick","tick","tick",2,"tick",1,"tick",1,"tick",1,"tick",1,"tick","tick","tick",1,"tick",0,4,"tick","tick","tick","tick","tick","tick",2,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","restart","tick","tick","tick",3,"tick",2,"tick","tick","tick",3,2,"tick",2,"tick","tick",2,3,"tick",3,"tick",3,"tick",3,"tick","tick",3,"tick",0,"tick","tick","tick",4,"tick","tick","tick",2,"tick",1,"tick",1,"tick",1,"tick",1,"tick","tick",1,0,"tick",4,"tick","tick","tick","tick",2,"tick","tick",4,"tick","tick","tick","tick",3,"tick",3,"tick",3,"tick",3,"tick",3,"tick",0,"tick","tick",0,"tick",0,"tick",0,"tick",1,"tick","tick","tick","tick","tick","tick","tick",4,"tick","tick",3,"tick",2,"tick","tick",2,"tick",2,"tick",2,1,"tick",4,"tick","tick","tick","tick",3,"tick",3,"tick",0,"tick",0,"tick",0,"tick",4,"tick",4,"tick","tick","tick","tick","tick"],"background blank:0,0,0,0,0,background blank rsvtext:1,0,0,0,0,0,0,0,background blank wins1:2,\nbackground blank borderl removeborderld removeborderlu:3,0,0,0,0,0,0,0,0,0,background blank borderu removeborderrd:4,background green removegreenlud rsvr1 start tm1r:5,addgreenru background blank borderd borderl removeborderlu removeborderru:6,background blank borderl:7,\n7,background blank borderl removeborderld:8,0,0,0,0,0,background blank borderu:9,background green rsvr3 tm3r:10,background green rsvr2 tm2r:11,background green:12,12,background green removegreenld:13,background blank borderd removeborderru:14,\n0,0,0,0,9,12,background green rsvr1 tm1r:15,10,11,15,background blank borderd:16,0,0,0,\n0,9,12,background ball green:17,12,12,10,16,0,0,0,0,9,12,\n12,12,12,11,16,0,0,0,0,9,12,12,12,12,\n15,16,0,0,0,0,9,background green rsvl1 unmovablel:18,12,12,12,10,16,0,\n0,0,0,9,15,background clubr cursor green rsvr2 tm2r:19,10,15,11,16,0,0,0,0,\n9,background flag green:20,background green target:21,12,12,12,16,0,0,0,0,background blank borderu removeborderld:22,background green removegreenru:23,12,\n12,12,background green removegreenrd:24,background blank borderd removeborderlu:25,0,0,0,0,0,background blank borderr removeborderru:26,background blank borderr:27,27,27,background blank borderr removeborderrd:28,\nbackground blank wins2:29,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",2,"1627770891133.2458"] ], [ `gallery game: Indigestion`, - ["title Indigestion\nauthor Le Slo\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\n\nagain_interval 0.05\n\nnoaction\n\nbackground_color #5974eF\n\n========\nOBJECTS\n========\n\nBackground\n#A9E4EF\n\nBorderB\n#4026bf #5046ef #5565ef\n.....\n.....\n.1111\n.....\n00000\n\nBorderBL\n#4026bf #5046ef #5565ef\n.....\n.....\n.11..\n..1..\n0.1..\n\nBorderBR\n#4026bf #5046ef #5565ef\n.....\n.....\n..111\n..1..\n....0\n\n\nBorderL\n#4026bf #5046ef #5565ef\n0....\n0.1..\n0.1..\n0.1..\n0.1..\n\nBorderR\n#4026bf #5046ef #5565ef\n..1.0\n..1.0\n..1.0\n..1.0\n....0\n\n\nBorderT\n#4026bf #5046ef #5565ef\n00000\n.....\n1111.\n.....\n.....\n\nBorderTL\n#4026bf #5046ef #5565ef\n0....\n..1..\n111..\n.....\n.....\n\nBorderTR\n#4026bf #5046ef #5565ef\n..1.0\n..1..\n..11.\n.....\n.....\n\nCornerTR\n#4026bf #5046ef\n00000\n....0\n111.0\n..1.0\n....0\n\nCornerTL\n#4026bf #5046ef\n00000\n0....\n0.11.\n0.1..\n0.1..\n\nCornerBL\n#4026bf #5046ef\n0....\n0.1..\n0.111\n0....\n00000\n\nCornerBR\n#5046ef #4026bf\n..0.1\n..0.1\n.00.1\n....1\n11111\n\nTL\n#4026bf #5046ef\n00000\n0....\n0.111\n0....\n00000\n\nTB\n#4026bf #5046ef\n0.1.0\n0.1.0\n0.1.0\n0...0\n00000\n\nTR\n#4026bf #5046ef\n00000\n....0\n111.0\n....0\n00000\n\nTT\n#4026bf #5046ef\n00000\n0...0\n0.1.0\n0.1.0\n0.1.0\n\nCenter\n#4026bf #5046ef\n00000\n0...0\n0.1.0\n0...0\n00000\n\nPlayerR\n#96d550\n.....\n....0\n....0\n....0\n.....\n\nPlayerL\n#96d550\n.....\n0....\n0....\n0....\n.....\n\nPlayerT\n#96d550\n.000.\n.....\n.....\n.....\n.....\n\nPlayerB\n#96d550\n.....\n.....\n.....\n.....\n.000.\n\nPlayerExtraR\n#A9E4EF\n.....\n....0\n....0\n....0\n.....\n\nPlayerExtraL\n#A9E4EF\n.....\n0....\n0....\n0....\n.....\n\nPlayerExtraT\n#A9E4EF\n.000.\n.....\n.....\n.....\n.....\n\nPlayerExtraB\n#A9E4EF\n.....\n.....\n.....\n.....\n.000.\n\nThingR\n#7A306C #A9E4EF\n.....\n...00\n...1.\n...00\n.....\n\nThingL\n#7A306C #A9E4EF\n.....\n00...\n.1...\n00...\n.....\n\nThingB\n#7A306C #A9E4EF\n.....\n.....\n.....\n.010.\n.0.0.\n\nThingT\n#7A306C #A9E4EF\n.0.0.\n.010.\n.....\n.....\n.....\n\nThingJellyR\n#7A706C #96d550\n.....\n...00\n...1.\n...00\n.....\n\nThingJellyL\n#7A706C #96d550\n.....\n00...\n.1...\n00...\n.....\n\nThingJellyB\n#7A706C #96d550\n.....\n.....\n.....\n.010.\n.0.0.\n\nThingJellyT\n#7A706C #96d550\n.0.0.\n.010.\n.....\n.....\n.....\n\nTargetA\n#7A306C\n.....\n.....\n..0..\n.....\n.....\n\nTargetB\n#E15554\n.....\n.....\n..0..\n.....\n.....\n\nTargetC\n#499167\n.....\n.....\n..0..\n.....\n.....\n\nWall\n#5974eF\n\nPlayer\n#96d550 #499167\n11111\n10001\n10001\n10001\n11111\n\nPlayerExtra\n#499167\n00000\n0...0\n0...0\n0...0\n00000\n\nthing\n#7A306C\n.....\n.000.\n.0.0.\n.000.\n.....\n\nminiCrate\n#E15554\n.....\n.000.\n.0.0.\n.000.\n.....\n\nminiCrateJelly\n#E19564\n.....\n.000.\n.0.0.\n.000.\n.....\n\nthingJelly\n#7A706C\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTargetAJelly\n#7A706C\n.....\n.....\n..0..\n.....\n.....\n\nTargetBJelly\n#E19564\n.....\n.....\n..0..\n.....\n.....\n\nTargetCJelly\n#76b530\n.....\n.....\n..0..\n.....\n.....\n\nmove\ntransparent\n\ncanMovePlayer\ntransparent\n\nstart\ntransparent\n\ncantMovePlayer\n#c97167\n00000\n0...0\n0...0\n0...0\n00000\n\nendanimation\ntransparent\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player and start\n* = PlayerExtra\nO = TargetA\nb = TargetB\nd = TargetC\nx = thing\nc = miniCrate\ne = PlayerExtra and Thing\nf = playerExtra and miniCrate\ng = Player and Thing\nh = player and miniCrate\nj = player and TargetB\nk = playerExtra and TargetB\n\nTarget = TargetA or TargetB or TargetC\nplayers = Player or PlayerExtra\npushable = miniCrate or thing\n\ncorners = CornerTR or CornerTL or CornerBL or CornerBR or TL or TB or TR or TT or center\n\nplayerArt = PlayerR or PlayerL or PlayerT or PlayerB or PlayerExtraR or PlayerExtraL or PlayerExtraT or PlayerExtraB or thingR or ThingL or ThingB or ThingT or ThingJellyR or ThingJellyL or ThingJellyB or ThingJellyT or TargetAJelly or TargetBJelly or TargetCJelly\n\npushableArt = miniCrateJelly or thingJelly\n\n\n\n\n=======\nSOUNDS\n=======\n\nsfx0 91710308\nsfx1 92912108 (out of thing)\nplayer move 99671708 (jelly move)\n\nsfx3 39045308 (wrong move)\nsfx5 51693308 (jelly moveout)\nsfx4 26547308 (jelly move2)\n\nsfx6 12306908 (jello no move)\n\nstartgame 87148308\n\nshowmessage 26755108\nendlevel 33616908\n\nrestart 24552908\nundo 24552908\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncanMovePlayer, endanimation\nTarget\nPlayerExtra\nPlayer, Wall\nthing\nminiCrate\nmove\nstart\n\ncantMovePlayer,\n\nPlayerR\nPlayerL\nPlayerT\nPlayerB\n\nPlayerExtraR\nPlayerExtraL\nPlayerExtraT\nPlayerExtraB\n\npushableArt\n\nThingR\nThingL\nThingB\nThingT\n\nThingJellyR\nThingJellyL\nThingJellyB\nThingJellyT\n\nBorderTR\nBorderTL\nBorderBR\nBorderBL\nBorderT\nBorderB\nBorderR\nBorderL\n\ncorners\n\nTargetAJelly\nTargetBJelly\nTargetCJelly\n\n\n\n======\nRULES \n====== \n\n(----------------------------Aesthetic borders---------------------)\nright[start][wall | no wall] -> [start][wall BorderR | ]\nleft [start][wall | no wall] -> [start][wall BorderL | ]\nup [start][wall | no wall] -> [start][wall BorderT | ]\ndown [start][wall | no wall] -> [start][wall BorderB | ]\n\nright[start][no borderT wall | borderT] -> [start][wall borderTR | borderT]\nleft[start][no borderT wall | borderT] -> [start][wall borderTL | borderT]\nright[start][no borderB wall | borderB] -> [start][wall borderBR | borderB]\nleft [start][no borderB wall | borderB] -> [start][wall borderBL | borderB]\n\n[start][borderT borderB borderR borderL] -> [start][center]\n\n[start][borderT borderB borderR] -> [start][TR]\n[start][borderT borderB borderL] -> [start][TL]\n[start][borderL borderR borderT] -> [start][TT]\n[start][borderL borderR borderB] -> [start][TB]\n\n\n[start][borderT borderR] -> [start][CornerTR]\n[start][borderT borderL] -> [start][CornerTL]\n[start][borderL borderB] -> [start][CornerBL]\n[start][borderR borderB] -> [start][CornerBR]\n\n[start] -> []\n\n[canMovePlayer] -> []\n(-----------------------Player movement--------------------------)\n\n\n[moving player | stationary player] -> [moving player | moving player]\n\n[> players | wall] -> [players | wall]\n\n[moving players | stationary players] -> [ players | players]\n \n (------------------------Pushable movement --------------------)\n \n[> Players pushable | ] -> [ > Players move pushable |]\n[> players] [pushable move] -> [> players] [> pushable canMovePlayer]\n\n\nstartloop\n[moving thing canMovePlayer| stationary thing no canMovePlayer] -> [moving thing canMovePlayer| moving thing canMovePlayer]\n[moving thing | stationary thing] -> [moving thing | moving thing]\n[> pushable canMovePlayer| stationary pushable no canMovePlayer ] -> [> pushable canMovePlayer| > pushable canMovePlayer]\n[> pushable | stationary pushable ] -> [> pushable | > pushable ]\n\n(Move groups of jelly that are not the player)\n[> Pushable stationary PlayerExtra | ] -> [ > Pushable move playerExtra |]\n[> players] [PlayerExtra move] -> [> players] [> PlayerExtra]\n\n[moving playerExtra | playerExtra] -> [moving playerExtra | moving playerExtra]\n[> PlayerExtra stationary pushable | ] -> [ > PlayerExtra move pushable |]\n[> playerExtra] [pushable move] -> [> playerExtra] [> pushable]\nendloop\n\n[> pushable | wall] -> [pushable | wall]\n[> PlayerExtra | wall] -> [PlayerExtra | wall]\n\nstartloop\n[moving thing | stationary thing] -> [ thing | thing]\n[> pushable | stationary pushable] -> [ pushable | pushable]\n\n[stationary PlayerExtra moving pushable no canMovePlayer] -> [PlayerExtra pushable]\n\n[moving PlayerExtra stationary pushable canMovePlayer] -> [PlayerExtra pushable]\n[moving PlayerExtra | stationary PlayerExtra] -> [PlayerExtra | playerExtra]\n\n[stationary pushable | > miniCrate no players] -> [pushable | miniCrate]\nendloop\n\n[canMovePlayer] -> []\n[player] -> [player canMovePlayer]\n\n\nstartloop\n[canMovePlayer | moving pushable no canMovePlayer] -> [canMovePlayer | moving pushable canMovePlayer]\n[canMovePlayer | moving PlayerExtra no canMovePlayer] -> [canMovePlayer | moving PlayerExtra canMovePlayer]\nendloop\n\n[stationary pushable canMovePlayer] -> [pushable]\n[moving PlayerExtra no canMovePlayer] -> [playerExtra]\n[moving pushable no canMovePlayer] -> [pushable]\n\n(_--------------------------------------Sound RULES--------------------------------)\n\n[stationary pushable moving player] -> sfx4\n[stationary pushable moving player] -> sfx4\n\n\n[stationary player cantMovePlayer] -> [stationary player endAnimation]\n[stationary player no cantMovePlayer no endanimation] -> [stationary player cantMovePlayer] again sfx6\n[player cantMovePlayer][player] -> [player cantMovePlayer][player cantMovePlayer]\n\n[> player no pushable | stationary pushable no player] -> sfx3\n\n[endanimation]->[]\n\n(_--------------------------------------LATE RULES--------------------------------)\n\nlate[player | PlayerExtra] -> [player | player] sfx5\n\n\nlate[playerArt] -> []\nlate[pushableArt] -> []\nlate right [player | player] -> [player playerR | player playerL]\nlate down [player | player] -> [player playerB | player playerT]\n\nlate right [playerExtra | playerExtra] -> [playerExtra playerExtraR | playerExtra playerExtraL]\nlate down [playerExtra | playerExtra] -> [playerExtra playerExtraB | playerExtra playerExtraT]\n\nlate right [thing | thing] -> [thing thingR | thing thingL]\nlate down [thing | thing] -> [thing thingB | thing thingT]\n\nlate[miniCrate player] -> [miniCrate miniCrateJelly player]\nlate[thing player] -> [thing thingJelly player]\nlate[thingR player] -> [thingR thingJellyR player]\nlate[thingL player] -> [thingL thingJellyL player]\nlate[thingT player] -> [thingT thingJellyT player]\nlate[thingB player] -> [thingB thingJellyB player]\n\nlate[targetA player] -> [targetA TargetAJelly player]\nlate[TargetB player] -> [targetB TargetBJelly player]\nlate[targetC player] -> [targetC TargetCJelly player]\n\n==============\nWINCONDITIONS\n==============\n\nAll TargetA on thing \nAll TargetB on miniCrate\nAll TargetC on players\n\n======= \nLEVELS\n=======\n\nmessage . [o]o o o o o o o o o o o o o o\n\n#########\n#########\n###.c.###\n##p...b##\n##p...b##\n###.c.###\n#########\n#########\n\nmessage . [o o]o o o o o o o o o o o o o\n\n#########\n#########\n###.c.###\n##p...b##\n##....b##\n###.c.###\n#########\n#########\n\nmessage . [o o o]o o o o o o o o o o o o\n\n########\n########\n###ppb##\n##..b.##\n##.b..##\n##.ccc##\n########\n########\n\nmessage . [o o o o]o o o o o o o o o o o\n\n########\n########\n##.c####\n##.ccc##\n##.b..##\n##bbpp##\n##b.pp##\n########\n########\n\nmessage . [o o o o o] o o o o o o o o o o\n\n###########\n###########\n####.b.####\n###.cfc.###\n##.......##\n##*..*..*##\n##.......##\n###.bpb.###\n####...####\n###########\n###########\n\nmessage . [o o o o o] [o]o o o o o o o o o\n\n#########\n#########\n###.#.###\n##.pppp##\n##x...o##\n##x#.#o##\n#########\n#########\n\nmessage . [o o o o o] [o o]o o o o o o o o\n\n##########\n##########\n####b#x.##\n####.#x.##\n##......##\n##..pp..##\n##....c.##\n######*###\n######**##\n##########\n##########\n\nmessage . [o o o o o] [o o o]o o o o o o o\n\n#########\n#########\n##..o..##\n##.xxgp##\n##..c.p##\n##.bcb.##\n#########\n#########\n\nmessage . [o o o o o] [o o o o]o o o o o o\n\n###########\n###########\n##*k**#####\n###...cc.##\n##.......##\n##..g....##\n###ggg..o##\n###########\n###########\n\nmessage . [o o o o o] [o o o o o] o o o o o\n\n#############\n#############\n##.......####\n##.ggggg..###\n##.g...g..###\n##.gc...cbb##\n##.g...g..###\n##.ggggg..###\n##.......####\n#############\n#############\n\nmessage . [o o o o o] [o o o o o] [o]o o o o\n\n###########\n###########\n##x.o...o##\n##x...o..##\n##*#.ppxx##\n###e.pp..##\n####.....##\n###########\n###########\n\nmessage . [o o o o o] [o o o o o] [o o]o o o\n\n###########\n###########\n##k########\n##******k##\n##*.....###\n##*.xc.p###\n##*.....###\n##f.xx.x###\n##ex....###\n###########\n###########\n\nmessage . [o o o o o] [o o o o o] [o o o]o o\n\n##########\n##########\n##...o..##\n##..p..*##\n##..c.#*##\n##x..x#k##\n###xx#####\n##########\n##########\n\n\nmessage . [o o o o o] [o o o o o] [o o o o]o\n\n\n############\n############\n##....######\n##..c...####\n##p.bbc.####\n##pxxx#.####\n##p.....#*##\n##.x...c**##\n##......####\n############\n############\n\n\nmessage . [o o o o o] [o o o o o] [o o o o o]\n\n##########\n##########\n###....###\n##x.obb###\n##x.p..###\n##x.hh.###\n##..p..###\n###....###\n####..####\n##**fk.###\n##########\n##########\n\nmessage . [o o o o o] [o o o o o] [o o o o o]\n\nmessage . [x x x x x] [x x x x x] [x x x x x]\n\n############\n############\n##...x.xb.##\n##..ppp...##\n##..p.....##\n##..ppp...##\n##..coc.o.##\n############\n############\n\n\nmessage . [ ] [ ] [ ]\n\n\n\n", [0, 2, 2, 3, 0, 0, 0, 1, "restart", 3, 3, 0, 0, 0, 2, 2, 2, 2, 1, 0, 0, 3], "background wall:0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,background borderbr wall:1,background borderr wall:2,2,2,background bordertr wall:3,0,\n0,0,0,0,0,background borderb wall:4,background:5,5,5,background bordert wall:6,\n0,0,0,0,1,2,background cornerbr wall:7,5,5,5,\n6,0,0,0,0,4,background targetb:8,5,5,5,\n5,6,0,0,0,0,background borderbl borderbr wall:9,background borderl borderr wall:10,background tb wall:11,5,\n5,5,background cornertr wall:12,2,3,0,0,4,5,5,\n5,5,background player playerb playerr thing thingb thingjelly thingjellyb:13,background player playerb playert thing thingjelly thingjellyt thingt:14,background minicrate minicratejelly player playerr playert:15,6,0,0,4,5,\n5,5,5,background player playerl:16,background tl wall:17,16,6,0,0,background borderbl wall:18,\nbackground borderl wall:19,19,19,19,19,background borderbl bordertl wall:20,19,background bordertl wall:21,0,0,\n0,0,0,0,0,0,0,0,0,0,\n", 13, "1627769708001.6777"] + ["title Indigestion\nauthor Le Slo\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\n\nagain_interval 0.05\n\nnoaction\n\nbackground_color #5974eF\n\n========\nOBJECTS\n========\n\nBackground\n#A9E4EF\n\nBorderB\n#4026bf #5046ef #5565ef\n.....\n.....\n.1111\n.....\n00000\n\nBorderBL\n#4026bf #5046ef #5565ef\n.....\n.....\n.11..\n..1..\n0.1..\n\nBorderBR\n#4026bf #5046ef #5565ef\n.....\n.....\n..111\n..1..\n....0\n\n\nBorderL\n#4026bf #5046ef #5565ef\n0....\n0.1..\n0.1..\n0.1..\n0.1..\n\nBorderR\n#4026bf #5046ef #5565ef\n..1.0\n..1.0\n..1.0\n..1.0\n....0\n\n\nBorderT\n#4026bf #5046ef #5565ef\n00000\n.....\n1111.\n.....\n.....\n\nBorderTL\n#4026bf #5046ef #5565ef\n0....\n..1..\n111..\n.....\n.....\n\nBorderTR\n#4026bf #5046ef #5565ef\n..1.0\n..1..\n..11.\n.....\n.....\n\nCornerTR\n#4026bf #5046ef\n00000\n....0\n111.0\n..1.0\n....0\n\nCornerTL\n#4026bf #5046ef\n00000\n0....\n0.11.\n0.1..\n0.1..\n\nCornerBL\n#4026bf #5046ef\n0....\n0.1..\n0.111\n0....\n00000\n\nCornerBR\n#5046ef #4026bf\n..0.1\n..0.1\n.00.1\n....1\n11111\n\nTL\n#4026bf #5046ef\n00000\n0....\n0.111\n0....\n00000\n\nTB\n#4026bf #5046ef\n0.1.0\n0.1.0\n0.1.0\n0...0\n00000\n\nTR\n#4026bf #5046ef\n00000\n....0\n111.0\n....0\n00000\n\nTT\n#4026bf #5046ef\n00000\n0...0\n0.1.0\n0.1.0\n0.1.0\n\nCenter\n#4026bf #5046ef\n00000\n0...0\n0.1.0\n0...0\n00000\n\nPlayerR\n#96d550\n.....\n....0\n....0\n....0\n.....\n\nPlayerL\n#96d550\n.....\n0....\n0....\n0....\n.....\n\nPlayerT\n#96d550\n.000.\n.....\n.....\n.....\n.....\n\nPlayerB\n#96d550\n.....\n.....\n.....\n.....\n.000.\n\nPlayerExtraR\n#A9E4EF\n.....\n....0\n....0\n....0\n.....\n\nPlayerExtraL\n#A9E4EF\n.....\n0....\n0....\n0....\n.....\n\nPlayerExtraT\n#A9E4EF\n.000.\n.....\n.....\n.....\n.....\n\nPlayerExtraB\n#A9E4EF\n.....\n.....\n.....\n.....\n.000.\n\nThingR\n#7A306C #A9E4EF\n.....\n...00\n...1.\n...00\n.....\n\nThingL\n#7A306C #A9E4EF\n.....\n00...\n.1...\n00...\n.....\n\nThingB\n#7A306C #A9E4EF\n.....\n.....\n.....\n.010.\n.0.0.\n\nThingT\n#7A306C #A9E4EF\n.0.0.\n.010.\n.....\n.....\n.....\n\nThingJellyR\n#7A706C #96d550\n.....\n...00\n...1.\n...00\n.....\n\nThingJellyL\n#7A706C #96d550\n.....\n00...\n.1...\n00...\n.....\n\nThingJellyB\n#7A706C #96d550\n.....\n.....\n.....\n.010.\n.0.0.\n\nThingJellyT\n#7A706C #96d550\n.0.0.\n.010.\n.....\n.....\n.....\n\nTargetA\n#7A306C\n.....\n.....\n..0..\n.....\n.....\n\nTargetB\n#E15554\n.....\n.....\n..0..\n.....\n.....\n\nTargetC\n#499167\n.....\n.....\n..0..\n.....\n.....\n\nWall\n#5974eF\n\nPlayer\n#96d550 #499167\n11111\n10001\n10001\n10001\n11111\n\nPlayerExtra\n#499167\n00000\n0...0\n0...0\n0...0\n00000\n\nthing\n#7A306C\n.....\n.000.\n.0.0.\n.000.\n.....\n\nminiCrate\n#E15554\n.....\n.000.\n.0.0.\n.000.\n.....\n\nminiCrateJelly\n#E19564\n.....\n.000.\n.0.0.\n.000.\n.....\n\nthingJelly\n#7A706C\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTargetAJelly\n#7A706C\n.....\n.....\n..0..\n.....\n.....\n\nTargetBJelly\n#E19564\n.....\n.....\n..0..\n.....\n.....\n\nTargetCJelly\n#76b530\n.....\n.....\n..0..\n.....\n.....\n\nmove\ntransparent\n\ncanMovePlayer\ntransparent\n\nstart\ntransparent\n\ncantMovePlayer\n#c97167\n00000\n0...0\n0...0\n0...0\n00000\n\nendanimation\ntransparent\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player and start\n* = PlayerExtra\nO = TargetA\nb = TargetB\nd = TargetC\nx = thing\nc = miniCrate\ne = PlayerExtra and Thing\nf = playerExtra and miniCrate\ng = Player and Thing\nh = player and miniCrate\nj = player and TargetB\nk = playerExtra and TargetB\n\nTarget = TargetA or TargetB or TargetC\nplayers = Player or PlayerExtra\npushable = miniCrate or thing\n\ncorners = CornerTR or CornerTL or CornerBL or CornerBR or TL or TB or TR or TT or center\n\nplayerArt = PlayerR or PlayerL or PlayerT or PlayerB or PlayerExtraR or PlayerExtraL or PlayerExtraT or PlayerExtraB or thingR or ThingL or ThingB or ThingT or ThingJellyR or ThingJellyL or ThingJellyB or ThingJellyT or TargetAJelly or TargetBJelly or TargetCJelly\n\npushableArt = miniCrateJelly or thingJelly\n\n\n\n\n=======\nSOUNDS\n=======\n\nsfx0 91710308\nsfx1 92912108 (out of thing)\nplayer move 99671708 (jelly move)\n\nsfx3 39045308 (wrong move)\nsfx5 51693308 (jelly moveout)\nsfx4 26547308 (jelly move2)\n\nsfx6 12306908 (jello no move)\n\nstartgame 87148308\n\nshowmessage 26755108\nendlevel 33616908\n\nrestart 24552908\nundo 24552908\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncanMovePlayer, endanimation\nTarget\nPlayerExtra\nPlayer, Wall\nthing\nminiCrate\nmove\nstart\n\ncantMovePlayer,\n\nPlayerR\nPlayerL\nPlayerT\nPlayerB\n\nPlayerExtraR\nPlayerExtraL\nPlayerExtraT\nPlayerExtraB\n\npushableArt\n\nThingR\nThingL\nThingB\nThingT\n\nThingJellyR\nThingJellyL\nThingJellyB\nThingJellyT\n\nBorderTR\nBorderTL\nBorderBR\nBorderBL\nBorderT\nBorderB\nBorderR\nBorderL\n\ncorners\n\nTargetAJelly\nTargetBJelly\nTargetCJelly\n\n\n\n======\nRULES \n====== \n\n(----------------------------Aesthetic borders---------------------)\nright[start][wall | no wall] -> [start][wall BorderR | ]\nleft [start][wall | no wall] -> [start][wall BorderL | ]\nup [start][wall | no wall] -> [start][wall BorderT | ]\ndown [start][wall | no wall] -> [start][wall BorderB | ]\n\nright[start][no borderT wall | borderT] -> [start][wall borderTR | borderT]\nleft[start][no borderT wall | borderT] -> [start][wall borderTL | borderT]\nright[start][no borderB wall | borderB] -> [start][wall borderBR | borderB]\nleft [start][no borderB wall | borderB] -> [start][wall borderBL | borderB]\n\n[start][borderT borderB borderR borderL] -> [start][center]\n\n[start][borderT borderB borderR] -> [start][TR]\n[start][borderT borderB borderL] -> [start][TL]\n[start][borderL borderR borderT] -> [start][TT]\n[start][borderL borderR borderB] -> [start][TB]\n\n\n[start][borderT borderR] -> [start][CornerTR]\n[start][borderT borderL] -> [start][CornerTL]\n[start][borderL borderB] -> [start][CornerBL]\n[start][borderR borderB] -> [start][CornerBR]\n\n[start] -> []\n\n[canMovePlayer] -> []\n(-----------------------Player movement--------------------------)\n\n\n[moving player | stationary player] -> [moving player | moving player]\n\n[> players | wall] -> [players | wall]\n\n[moving players | stationary players] -> [ players | players]\n \n (------------------------Pushable movement --------------------)\n \n[> Players pushable | ] -> [ > Players move pushable |]\n[> players] [pushable move] -> [> players] [> pushable canMovePlayer]\n\n\nstartloop\n[moving thing canMovePlayer| stationary thing no canMovePlayer] -> [moving thing canMovePlayer| moving thing canMovePlayer]\n[moving thing | stationary thing] -> [moving thing | moving thing]\n[> pushable canMovePlayer| stationary pushable no canMovePlayer ] -> [> pushable canMovePlayer| > pushable canMovePlayer]\n[> pushable | stationary pushable ] -> [> pushable | > pushable ]\n\n(Move groups of jelly that are not the player)\n[> Pushable stationary PlayerExtra | ] -> [ > Pushable move playerExtra |]\n[> players] [PlayerExtra move] -> [> players] [> PlayerExtra]\n\n[moving playerExtra | playerExtra] -> [moving playerExtra | moving playerExtra]\n[> PlayerExtra stationary pushable | ] -> [ > PlayerExtra move pushable |]\n[> playerExtra] [pushable move] -> [> playerExtra] [> pushable]\nendloop\n\n[> pushable | wall] -> [pushable | wall]\n[> PlayerExtra | wall] -> [PlayerExtra | wall]\n\nstartloop\n[moving thing | stationary thing] -> [ thing | thing]\n[> pushable | stationary pushable] -> [ pushable | pushable]\n\n[stationary PlayerExtra moving pushable no canMovePlayer] -> [PlayerExtra pushable]\n\n[moving PlayerExtra stationary pushable canMovePlayer] -> [PlayerExtra pushable]\n[moving PlayerExtra | stationary PlayerExtra] -> [PlayerExtra | playerExtra]\n\n[stationary pushable | > miniCrate no players] -> [pushable | miniCrate]\nendloop\n\n[canMovePlayer] -> []\n[player] -> [player canMovePlayer]\n\n\nstartloop\n[canMovePlayer | moving pushable no canMovePlayer] -> [canMovePlayer | moving pushable canMovePlayer]\n[canMovePlayer | moving PlayerExtra no canMovePlayer] -> [canMovePlayer | moving PlayerExtra canMovePlayer]\nendloop\n\n[stationary pushable canMovePlayer] -> [pushable]\n[moving PlayerExtra no canMovePlayer] -> [playerExtra]\n[moving pushable no canMovePlayer] -> [pushable]\n\n(_--------------------------------------Sound RULES--------------------------------)\n\n[stationary pushable moving player] -> sfx4\n[stationary pushable moving player] -> sfx4\n\n\n[stationary player cantMovePlayer] -> [stationary player endAnimation]\n[stationary player no cantMovePlayer no endanimation] -> [stationary player cantMovePlayer] again sfx6\n[player cantMovePlayer][player] -> [player cantMovePlayer][player cantMovePlayer]\n\n[> player no pushable | stationary pushable no player] -> sfx3\n\n[endanimation]->[]\n\n(_--------------------------------------LATE RULES--------------------------------)\n\nlate[player | PlayerExtra] -> [player | player] sfx5\n\n\nlate[playerArt] -> []\nlate[pushableArt] -> []\nlate right [player | player] -> [player playerR | player playerL]\nlate down [player | player] -> [player playerB | player playerT]\n\nlate right [playerExtra | playerExtra] -> [playerExtra playerExtraR | playerExtra playerExtraL]\nlate down [playerExtra | playerExtra] -> [playerExtra playerExtraB | playerExtra playerExtraT]\n\nlate right [thing | thing] -> [thing thingR | thing thingL]\nlate down [thing | thing] -> [thing thingB | thing thingT]\n\nlate[miniCrate player] -> [miniCrate miniCrateJelly player]\nlate[thing player] -> [thing thingJelly player]\nlate[thingR player] -> [thingR thingJellyR player]\nlate[thingL player] -> [thingL thingJellyL player]\nlate[thingT player] -> [thingT thingJellyT player]\nlate[thingB player] -> [thingB thingJellyB player]\n\nlate[targetA player] -> [targetA TargetAJelly player]\nlate[TargetB player] -> [targetB TargetBJelly player]\nlate[targetC player] -> [targetC TargetCJelly player]\n\n==============\nWINCONDITIONS\n==============\n\nAll TargetA on thing \nAll TargetB on miniCrate\nAll TargetC on players\n\n======= \nLEVELS\n=======\n\nmessage . [o]o o o o o o o o o o o o o o\n\n#########\n#########\n###.c.###\n##p...b##\n##p...b##\n###.c.###\n#########\n#########\n\nmessage . [o o]o o o o o o o o o o o o o\n\n#########\n#########\n###.c.###\n##p...b##\n##....b##\n###.c.###\n#########\n#########\n\nmessage . [o o o]o o o o o o o o o o o o\n\n########\n########\n###ppb##\n##..b.##\n##.b..##\n##.ccc##\n########\n########\n\nmessage . [o o o o]o o o o o o o o o o o\n\n########\n########\n##.c####\n##.ccc##\n##.b..##\n##bbpp##\n##b.pp##\n########\n########\n\nmessage . [o o o o o] o o o o o o o o o o\n\n###########\n###########\n####.b.####\n###.cfc.###\n##.......##\n##*..*..*##\n##.......##\n###.bpb.###\n####...####\n###########\n###########\n\nmessage . [o o o o o] [o]o o o o o o o o o\n\n#########\n#########\n###.#.###\n##.pppp##\n##x...o##\n##x#.#o##\n#########\n#########\n\nmessage . [o o o o o] [o o]o o o o o o o o\n\n##########\n##########\n####b#x.##\n####.#x.##\n##......##\n##..pp..##\n##....c.##\n######*###\n######**##\n##########\n##########\n\nmessage . [o o o o o] [o o o]o o o o o o o\n\n#########\n#########\n##..o..##\n##.xxgp##\n##..c.p##\n##.bcb.##\n#########\n#########\n\nmessage . [o o o o o] [o o o o]o o o o o o\n\n###########\n###########\n##*k**#####\n###...cc.##\n##.......##\n##..g....##\n###ggg..o##\n###########\n###########\n\nmessage . [o o o o o] [o o o o o] o o o o o\n\n#############\n#############\n##.......####\n##.ggggg..###\n##.g...g..###\n##.gc...cbb##\n##.g...g..###\n##.ggggg..###\n##.......####\n#############\n#############\n\nmessage . [o o o o o] [o o o o o] [o]o o o o\n\n###########\n###########\n##x.o...o##\n##x...o..##\n##*#.ppxx##\n###e.pp..##\n####.....##\n###########\n###########\n\nmessage . [o o o o o] [o o o o o] [o o]o o o\n\n###########\n###########\n##k########\n##******k##\n##*.....###\n##*.xc.p###\n##*.....###\n##f.xx.x###\n##ex....###\n###########\n###########\n\nmessage . [o o o o o] [o o o o o] [o o o]o o\n\n##########\n##########\n##...o..##\n##..p..*##\n##..c.#*##\n##x..x#k##\n###xx#####\n##########\n##########\n\n\nmessage . [o o o o o] [o o o o o] [o o o o]o\n\n\n############\n############\n##....######\n##..c...####\n##p.bbc.####\n##pxxx#.####\n##p.....#*##\n##.x...c**##\n##......####\n############\n############\n\n\nmessage . [o o o o o] [o o o o o] [o o o o o]\n\n##########\n##########\n###....###\n##x.obb###\n##x.p..###\n##x.hh.###\n##..p..###\n###....###\n####..####\n##**fk.###\n##########\n##########\n\nmessage . [o o o o o] [o o o o o] [o o o o o]\n\nmessage . [x x x x x] [x x x x x] [x x x x x]\n\n############\n############\n##...x.xb.##\n##..ppp...##\n##..p.....##\n##..ppp...##\n##..coc.o.##\n############\n############\n\n\nmessage . [ ] [ ] [ ]\n\n\n\n",[0,2,2,3,0,0,0,1,"restart",3,3,0,0,0,2,2,2,2,1,0,0,3],"background wall:0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,background borderbr wall:1,background borderr wall:2,2,2,background bordertr wall:3,0,\n0,0,0,0,0,background borderb wall:4,background:5,5,5,background bordert wall:6,\n0,0,0,0,1,2,background cornerbr wall:7,5,5,5,\n6,0,0,0,0,4,background targetb:8,5,5,5,\n5,6,0,0,0,0,background borderbl borderbr wall:9,background borderl borderr wall:10,background tb wall:11,5,\n5,5,background cornertr wall:12,2,3,0,0,4,5,5,\n5,5,background player playerb playerr thing thingb thingjelly thingjellyb:13,background player playerb playert thing thingjelly thingjellyt thingt:14,background minicrate minicratejelly player playerr playert:15,6,0,0,4,5,\n5,5,5,background player playerl:16,background tl wall:17,16,6,0,0,background borderbl wall:18,\nbackground borderl wall:19,19,19,19,19,background borderbl bordertl wall:20,19,background bordertl wall:21,0,0,\n0,0,0,0,0,0,0,0,0,0,\n",13,"1627769708001.6777"] ], [ `gallery game: two worlds`, - ["title Two Worlds\nauthor nebu soku\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\nrealtime_interval 0.1\nagain_interval 0.05\nbackground_color #282818\ntext_color #c8c8a8\nflickscreen 19x16\n\n========\nOBJECTS\n========\n\nBackground \n#282818\n\nOutLine\n#282818\n\nBGBlue\n#c8c8a8 #c1e4f0\n\nBGPink\n#282818 #f8cefd\n\nTarget \n#a0a088\n00.00\n00000\n00000\n.000.\n..0..\n\nGhostTarget \n#a0a088\n00.00\n00000\n00000\n.000.\n..0..\n\nWall \n#a0a088 #686850 #282818\n01000\n02010\n00020\n00000\n11111\n\nWallAbove\n#a0a088\n.....\n.....\n.....\n.....\n00000\n\nWallBelow\n#686850\n00000\n.....\n.....\n.....\n.....\n\nZonePurple\n#282818 #a0a088 #3d1e7e\n00000\n00000\n00100\n00000\n00000\n\nZonePurpleBelow\n#686850 #a0a088\n00000\n.....\n.....\n.....\n.....\n\nZonePink\n#c8c8a8 #ef90e3\n\nPlayerBlueRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850 #54b4d5\n.0000\n.0000\n.0121\n5.33.\n..34.\n\nWalkAnimBR1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850(#4fbbdf #608b8c #d5f5f6 #1d7788 #1a6978 #53aecc)\n.0000\n.0000\n.0121\n5.33.\n.....\n\nWalkAnimBR2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n.4..3\n\nWalkAnimBR3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n..3..\n\nPlayerBlueLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.43..\n\nWalkAnimBL1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.....\n\nWalkAnimBL2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n3..4.\n\nWalkAnimBL3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n..3..\n\nStayBlueRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n..34.\n\nStayBlueLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.43..\n\nPlayerPinkRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818(#de4fdd #8a608b #f6d4f5 #871d86 #741978 #cc52c9 #d153d5)\n.5000\n.0000\n.0121\n..33.\n..34.\n\nWalkAnimPR1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.....\n\nWalkAnimPR2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nWalkAnimPR3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n..3..\n\nPlayerPinkLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.43..\n\nWalkAnimPL1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.....\n\nWalkAnimPL2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nWalkAnimPL3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n..3..\n\nStayPinkRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n..34.\n\nStayPinkLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.43..\n\nFallRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nFallLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nClimbRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nClimbLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nGhostPlayer\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAbove\n#c8c8a8\n.....\n.....\n.....\n.....\n.000.\n\nGhostPlayerAnim1\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAnim2\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAnim3\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nGhostPlayerAnim4\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nGhostPlayerAnim5\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nStuckRigid\nblack\n\nStuckCursor\n#282818\n0...0\n0...0\n0...0\n00000\n.....\n\nStuckCursorAbove\n#282818\n.....\n.....\n.....\n.....\n00000\n\nCrate \n#a0a088 #686850 #282818 #c8c8a8\n01110\n02220\n02020\n00000\n11111\n\nCrateAbove\n#a0a088\n.....\n.....\n.....\n.....\n00000\n\nCrateBelow\n#686850\n00000\n.....\n.....\n.....\n.....\n\nCrateLine\n#a0a088\n.....\n.....\n.....\n00000\n.....\n\nRigidCrate\n#a0a088 #282818\n11111\n11111\n11011\n11111\n11111\n\nRigidU\n#686850\n00000\n.....\n.....\n.....\n.....\n\nRigidUL\n#686850\n....0\n.....\n.....\n.....\n.....\n\nRigidUR\n#686850\n0....\n.....\n.....\n.....\n.....\n\nRigidD\n#a0a088 #686850\n.....\n.....\n.....\n00000\n11111\n\nRigidL\n#a0a088\n0....\n0....\n0....\n0....\n0....\n\nRigidR\n#a0a088\n....0\n....0\n....0\n....0\n....0\n\nRigidLR\n#a0a088\n0...0\n0...0\n0...0\n0...0\n0...0\n\nAboveRigidL\n#a0a088\n.....\n.....\n.....\n0....\n0....\n\nAboveRigidR\n#a0a088\n.....\n.....\n.....\n....0\n....0\n\nAboveRigidLR\n#a0a088\n.....\n.....\n.....\n0...0\n0...0\n\nAboveRigidLRwithR\n#a0a088\n....0\n....0\n....0\n0...0\n0...0\n\nAboveRigidLRwithL\n#a0a088\n0....\n0....\n0....\n0...0\n0...0\n\nrigid1\nblack\n\nrigid2\nblack\n\nBlock \n#c8c8a8 #a0a088 #686850\n12222\n21112\n21112\n21112\n22221\n\nGhostBlock\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim1\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim2\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim3\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\nGhostBlockAnim4\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\nGhostBlockAnim5\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\n\nClimbable\npink\n\nColBGPink\nblack\n.....\n.....\n.....\n.....\n.....\n\nFallBlock\nblack\n\nWinable\nblack\n\nAddPinkLUD\n#c8c8a8\n0....\n.....\n.....\n.....\n0....\n\nAddPinkLU\n#c8c8a8\n0....\n.....\n.....\n.....\n.....\n\nAddPinkLD\n#c8c8a8\n.....\n.....\n.....\n.....\n0....\n\nAddPinkRUD\n#c8c8a8\n....0\n.....\n.....\n.....\n....0\n\nAddPinkRU\n#c8c8a8\n....0\n.....\n.....\n.....\n.....\n\nAddPinkRD\n#c8c8a8\n.....\n.....\n.....\n.....\n....0\n\nRemovePinkLUD\n#282818\n0....\n.....\n.....\n.....\n0....\n\nRemovePinkLU\n#282818\n0....\n.....\n.....\n.....\n.....\n\nRemovePinkLD\n#282818\n.....\n.....\n.....\n.....\n0....\n\nRemovePinkRUD\n#282818\n....0\n.....\n.....\n.....\n....0\n\nRemovePinkRU\n#282818\n....0\n.....\n.....\n.....\n.....\n\nRemovePinkRD\n#282818\n.....\n.....\n.....\n.....\n....0\n\nTransition1\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransition2\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransition3\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransition4\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransition5\n#282818\n00000\n00000\n00000\n00000\n00000\n\nTransition6\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransition7\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransition8\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransition9\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransitionR1\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransitionR2\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransitionR3\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransitionR4\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransitionR5\n#282818\n00000\n00000\n00000\n00000\n00000\n\nTransitionR6\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransitionR7\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransitionR8\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransitionR9\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nHide\n#c8c8a8\n\nWinAnim1\n#c8c8a8\n.....\n.0...\n.....\n.....\n.....\n\nWinAnim2\n#c8c8a8\n.....\n.0...\n.....\n.....\n.....\n\nWinAnim3\n#c8c8a8\n.0...\n000..\n.0...\n...0.\n.....\n\nWinAnim4\n#c8c8a8\n.....\n.0...\n...0.\n..000\n...0.\n\nWinAnim5\n#c8c8a8\n.....\n.....\n.....\n...0.\n.....\n\nWinAnim6\n#c8c8a8\n.....\n.....\n.....\n.....\n.....\n\nLevelStart\n#282818\n\nPressX\n#686850 #282818\n0.0.0\n0.0.0\n00.00\n0.0.0\n0.0.0\n\nTCount1\nblack\n\nTCount2\nblack\n\nTCount3\nblack\n\nTCount4\nblack\n\nTCount5\nblack\n\n=======\nLEGEND\n=======\n\nBlueRight = PlayerBlueRight or WalkAnimBR1 or WalkAnimBR2 or WalkAnimBR3\nBlueLeft = PlayerBlueLeft or WalkAnimBL1 or WalkAnimBL2 or WalkAnimBL3\nPlayerBlue = BlueRight or BlueLeft\n\nPinkRight = PlayerPinkRight or WalkAnimPR1 or WalkAnimPR2 or WalkAnimPR3 \nPinkLeft = PlayerPinkLeft or WalkAnimPL1 or WalkAnimPL2 or WalkAnimPL3\nPlayerPink = PinkRight or PinkLeft\nPlayerFall = PlayerPink or FallRight or FallLeft\n\nPlayer = PlayerBlue or PlayerPink or ClimbRight or ClimbLeft\nPlayerMove = PlayerBlue or PlayerPink\n\nGBlock = GhostBlock or GhostBlockAnim1 or GhostBlockAnim2 or GhostBlockAnim3 or GhostBlockAnim4 or GhostBlockAnim5\n\nGPlayer = GhostPlayer or GhostPlayerAnim1 or GhostPlayerAnim2 or GhostPlayerAnim3 or GhostPlayerAnim4 or GhostPlayerAnim5\nGPAboveAnim = GhostPlayerAnim3 or GhostPlayerAnim4 or GhostPlayerAnim5\n\nRidable = BGPink or Block or ColBGPink\n\nRigids = rigid1 or rigid2\n\nAboveDeco = AboveRigidL or AboveRigidR or RigidL or RigidR or RigidLR\nRigidDeco = RigidU or AboveDeco or RigidD or AboveRigidLR or AboveRigidLRwithR or AboveRigidLRwithL or RigidUL or RigidUR\n\nAddPinkL = AddPinkLUD or AddPinkLU or AddPinkLD\nAddPinkR = AddPinkRUD or AddPinkRU or AddPinkRD\n\nRemovePinkL = RemovePinkLUD or RemovePinkLU or RemovePinkLD\nRemovePinkR = RemovePinkRUD or RemovePinkRU or RemovePinkRD\n\nTransition = Transition1 or Transition2 or Transition3 or Transition4 or Transition5 or Transition6 or Transition7 or Transition8 or Transition9\nTransitionR = TransitionR1 or TransitionR2 or TransitionR3 or TransitionR4 or TransitionR5 or TransitionR6 or TransitionR7 or TransitionR8 or TransitionR9\n\nWinAnim = WinAnim1 or WinAnim2 or WinAnim3 or WinAnim4 or WinAnim5 or WinAnim6\nTCount = TCount1 or TCount2 or TCount3 or TCount4\n\n. = Background\n, = BGBlue\n' = BGPink\n# = Wall and BGBlue\nB = PlayerBlueRight and BGBlue\nP = PlayerPinkRight and ZonePink\n* = Crate and BGBlue\n@ = RigidCrate and rigid1 and BGBlue\n2 = RigidCrate and rigid2 and BGBlue\nO = GhostTarget and ZonePurple\nx = ZonePurple and BGBlue\n+ = ZonePink\n\" = GhostBlock and ZonePurple and BGBlue\n! = GhostPlayer and ZonePurple and BGBlue\n($ = StayBlueRight and BGBlue)\n% = StayPinkRight and ZonePink\n石 = Block and ZonePink\n文 = PressX and BGBlue\n\n=======\nSOUNDS\n=======\n\nPlayerMove move 15203103\nCrate move 80987507\nRigidCrate move 80987507\nBlock action 70814309\nStuckCursor action 20002502 (boo)\nZonePurple move 95712903\nZonePink action 52706103\nTransition1 action 54782309\nTransitionR1 action 54782309\n\nsfx0 30806303\nsfx1 91797700 (fall)\nsfx2 99718300\nsfx3 65480100\nsfx4 80396503 (jump1)\nsfx5 80987507 (block)\nsfx6 45846907\nsfx7 28015305 (jump2)\nsfx8 10636903\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPressX\nTCount, TCount5\nLevelStart\nClimbable\nFallBlock\nWinable\nrigids\nStuckRigid\nBGBlue\nZonePink\nBGPink\nWallBelow\nTarget\nHide\nCrateBelow, ZonePurpleBelow\nPlayer, Wall, Crate, ZonePurple, StayBlueRight, StayBlueLeft, StayPinkRight, StayPinkLeft, FallRight, FallLeft, ClimbRight, ClimbLeft, Block, ColBGPink, RigidCrate\nRemovePinkL\nRemovePinkR\nGhostTarget\nRigidU, RigidUL, RigidUR\nGPlayer\nAboveRigidL, AboveRigidR, RigidL, RigidR, RigidLR\nRigidD, AboveRigidLR, AboveRigidLRwithR, AboveRigidLRwithL\nCrateAbove\nStuckCursorAbove\nWallAbove\nGBlock\nGhostPlayerAbove\nCrateLine\nStuckCursor\nAddPinkL\nAddPinkR\nOutLine\nWinAnim\nTransition, TransitionR\n\n======\nRULES \n====== \n[ > Player ] [ FallBlock ] -> cancel (bug?) \n\n(int)\n\n[ > Player Transition ] -> [ Player Transition ]\n[ ColBGPink ] -> [ ]\n[ BGPink ] -> [ BGPink ColBGPink ]\n[ Background no BGBlue no BGPink no ZonePurple no ZonePink ] -> [ Background OutLine ColBGPink ]\n\nright [ GhostTarget | | | | | | | | | | | | | | | | | | | ] -> [ GhostTarget | | | | | | | | | | | | | | | | | | | Target ]\n\ndown [ ZonePurple | no ZonePurple ] -> [ ZonePurple | ZonePurpleBelow ]\n\nup [ Wall | ] -> [ Wall | WallAbove ]\ndown [ Wall | ] -> [ Wall | WallBelow ]\n\n(Crate-ZonePink)\n\n[ CrateAbove ] -> [ ]\n[ CrateBelow ] -> [ ]\n[ CrateLine ] -> [ ]\nlate up [ | Crate | ] -> [ CrateBelow | Crate CrateLine | CrateAbove ]\n(late down [ Crate | ] -> [ Crate | CrateBelow ])\n\nlate right [ no Crate no ZonePurple no RigidCrate | | | | | | | | | | | | | | | | | | | ZonePink ] -> [ | | | | | | | | | | | | | | | | | | | BGPink ]\nlate right [ PlayerPink ] [ Crate | | | | | | | | | | | | | | | | | | | BGPink ] -> [ PlayerPink ] [ Crate | | | | | | | | | | | | | | | | | | | ZonePink ]\nlate right [ PlayerPink ] [ RigidCrate | | | | | | | | | | | | | | | | | | | BGPink ] -> [ PlayerPink ] [ RigidCrate | | | | | | | | | | | | | | | | | | | ZonePink ]\n\n(Block-GhostBlock)\n\n[ PlayerPink ] [ GBlock ] -> [ PlayerPink ] [ ]\nright [ PlayerPink ] [ | | | | | | | | | | | | | | | | | | | Block ] -> [ PlayerPink ] [ GhostBlock | | | | | | | | | | | | | | | | | | | Block ]\n\n[ PlayerBlue ] [ Block ] -> [ PlayerBlue ] [ ]\nright [ PlayerBlue ] [ GBlock | | | | | | | | | | | | | | | | | | | ] -> [ PlayerBlue ] [ GBlock | | | | | | | | | | | | | | | | | | | Block ]\n\n(Player-GhostPlayer)\n\n[ PlayerPink ] [ GPlayer ] -> [ PlayerPink ] [ ]\nright [ PlayerPink ] [ | | | | | | | | | | | | | | | | | | | PlayerPink ] -> [ PlayerPink ] [ GhostPlayer | | | | | | | | | | | | | | | | | | | PlayerPink ]\n\n(Switch)\n\n[ Target LevelStart ] [ action BlueRight ] [ StayPinkRight ] [ Background ] -> [ Target LevelStart ] [ BlueRight ] [ StayPinkRight ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueRight ] [ StayPinkRight ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueRight ] [ PlayerPinkRight ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueRight ] [ StayPinkLeft ] [ Background ] -> [ Target LevelStart ] [ BlueRight ] [ StayPinkLeft ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueRight ] [ StayPinkLeft ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueRight ] [ PlayerPinkLeft ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueLeft ] [ StayPinkRight ] [ Background ] -> [ Target LevelStart ] [ BlueLeft ] [ StayPinkRight ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueLeft ] [ StayPinkRight ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueLeft ] [ PlayerPinkRight ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueLeft ] [ StayPinkLeft ] [ Background ] -> [ Target LevelStart ] [ BlueLeft ] [ StayPinkLeft ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueLeft ] [ StayPinkLeft ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueLeft ] [ PlayerPinkLeft ] [ Transition6 ]\n\n[ action PlayerPinkRight no FallBlock ] [ StayBlueRight ] [ Background ] -> [ PlayerPinkRight ] [ StayBlueRight ] [ Background action TransitionR1 ]\n[ PlayerPinkRight ] [ StayBlueRight ] [ TransitionR6 ] -> [ StayPinkRight ] [ PlayerBlueRight ] [ TransitionR6 ]\n[ action PlayerPinkRight no FallBlock ] [ StayBlueLeft ] [ Background ] -> [ PlayerPinkRight ] [ StayBlueLeft ] [ Background action TransitionR1 ]\n[ PlayerPinkRight ] [ StayBlueLeft ] [ TransitionR6 ] -> [ StayPinkRight ] [ PlayerBlueLeft ] [ TransitionR6 ]\n[ action PlayerPinkLeft no FallBlock ] [ StayBlueRight ] [ Background ] -> [ PlayerPinkLeft ] [ StayBlueRight ] [ Background action TransitionR1 ]\n[ PlayerPinkLeft ] [ StayBlueRight ] [ TransitionR6 ] -> [ StayPinkLeft ] [ PlayerBlueRight ] [ TransitionR6 ]\n[ action PlayerPinkLeft no FallBlock ] [ StayBlueLeft ] [ Background ] -> [ PlayerPinkLeft ] [ StayBlueLeft ] [ Background action TransitionR1 ]\n[ PlayerPinkLeft ] [ StayBlueLeft ] [ TransitionR6 ] -> [ StayPinkLeft ] [ PlayerBlueLeft ] [ TransitionR6 ]\n\n(Climb)\n\n[ Climbable ] -> [ ]\nhorizontal [ BGPink | ZonePink ] -> [ BGPink Climbable | ZonePink ]\nhorizontal [ BGPink | Block ] -> [ BGPink | Block Climbable ]\nhorizontal [ Block | Block ] -> [ Block Climbable | Block Climbable ]\n\ndown [ ClimbRight | BGPink ] -> [ PlayerPinkRight | BGPink ]\ndown [ ClimbRight | Block ] -> [ PlayerPinkRight | Block ]\nright [ ClimbRight | ZonePink ] -> [ > ClimbRight | ZonePink ]\nright [ ClimbRight | Climbable ] -> [ FallRight | Climbable ]\nright [ > PinkRight no FallBlock | Climbable ] -> [ up ClimbRight | Climbable ] sfx7\n\ndown [ ClimbLeft | BGPink ] -> [ PlayerPinkLeft | BGPink ]\ndown [ ClimbLeft | Block ] -> [ PlayerPinkLeft | Block ]\nleft [ ClimbLeft | ZonePink ] -> [ > ClimbLeft | ZonePink ]\nleft [ ClimbLeft | Climbable ] -> [ FallLeft | Climbable ]\nleft [ > PinkLeft no FallBlock | Climbable ] -> [ up ClimbLeft | Climbable ] sfx7\n\n(Push)\n\n[ > Player | Crate no GPlayer no PressX no TCount ] -> [ > Player | > Crate ]\n[ > Player no FallBlock | Block ] -> [ > Player | > Block ] sfx5\n[ > Player | GBlock no rigids no ZonePurple | no Wall no ZonePurple no OutLine no Crate ] -> [ > Player | > GBlock | ]\n\n[ StuckCursor ] -> [ ] (Stuck effect)\n[ StuckCursorAbove ] -> [ ]\nlate up [ StuckCursor | ] -> [ StuckCursor | StuckCursorAbove ]\n[ > PlayerBlueRight | GPlayer Crate ] -> [ WalkAnimBR1 | GPlayer action StuckCursor Crate ]\n[ > PlayerBlueLeft | GPlayer Crate ] -> [ WalkAnimBL1 | GPlayer action StuckCursor Crate ]\n[ > PlayerBlueRight | StuckRigid ] [ GPlayer ] -> [ WalkAnimBR1 | StuckRigid ] [ GPlayer action StuckCursor ]\n[ > PlayerBlueLeft | StuckRigid ] [ GPlayer ] -> [ WalkAnimBL1 | StuckRigid ] [ GPlayer action StuckCursor ]\n\n[ StuckRigid ] -> [ ]\n[ Rigid1 GPlayer ] [ Rigid1 ] -> [ Rigid1 GPlayer StuckRigid ] [ Rigid1 StuckRigid ]\n[ Rigid2 GPlayer ] [ Rigid2 ] -> [ Rigid2 GPlayer StuckRigid ] [ Rigid2 StuckRigid ]\n\nrigid [ > Player | RigidCrate rigid1 no StuckRigid ] -> [ > Player | > RigidCrate > rigid1 ]\n+ rigid [ moving RigidCrate rigid1 | RigidCrate rigid1 ] -> [ moving RigidCrate moving rigid1 | moving RigidCrate moving rigid1 ]\n+ rigid [ moving rigid1 | GBlock rigid1 ] -> [ moving rigid1 | moving GBlock moving rigid1 ]\n\nrigid [ > Player | RigidCrate rigid2 no StuckRigid ] -> [ > Player | > RigidCrate > rigid2 ]\n+ rigid [ moving RigidCrate rigid2 | RigidCrate rigid2 ] -> [ moving RigidCrate moving rigid2 | moving RigidCrate moving rigid2 ]\n+ rigid [ moving rigid2 | GBlock rigid2 ] -> [ moving rigid2 | moving GBlock moving rigid2 ]\n\n(RigidCrate)\n\n[ RigidDeco ] -> [ ]\nlate down [ rigid1 | no rigid1 ] -> [ rigid1 RigidD | CrateBelow ]\nlate up [ rigid1 | no rigid1 ] -> [ rigid1 | CrateAbove ]\nlate left [ rigid1 | no rigid1 ] -> [ rigid1 RigidL | ]\nlate right [ rigid1 RigidL | no rigid1 ] -> [ rigid1 RigidLR | ]\nlate right [ rigid1 no AboveDeco | no rigid1 ] -> [ rigid1 RigidR | ]\n\nlate up [ RigidL rigid1 | rigid1 no AboveDeco ] -> [ RigidL rigid1 | rigid1 AboveRigidL ]\nlate up [ RigidR rigid1 | rigid1 no AboveDeco ] -> [ RigidR rigid1 | rigid1 AboveRigidR ]\nlate up [ RigidLR rigid1 | rigid1 ] -> [ RigidLR rigid1 | rigid1 AboveRigidLR ]\n\nlate up [ RigidL rigid1 | rigid1 RigidR ] -> [ RigidL rigid1 | rigid1 AboveRigidLRwithR ]\nlate up [ RigidR rigid1 | rigid1 RigidL ] -> [ RigidR rigid1 | rigid1 AboveRigidLRwithL ]\n\nlate up [ rigid1 | CrateAbove ] -> [ rigid1 RigidU | CrateAbove ]\n\nlate left [ rigid1 RigidU | rigid1 no RigidU ] -> [ rigid1 RigidU | rigid1 RigidUL ]\nlate right [ rigid1 RigidU | rigid1 no RigidU ] -> [ rigid1 RigidU | rigid1 RigidUR ]\n\n\nlate down [ rigid2 | no rigid2 ] -> [ rigid2 RigidD | CrateBelow ]\nlate up [ rigid2 | no rigid2 ] -> [ rigid2 | CrateAbove ]\nlate left [ rigid2 | no rigid2 ] -> [ rigid2 RigidL | ]\nlate right [ rigid2 RigidL | no rigid2 ] -> [ rigid2 RigidLR | ]\nlate right [ rigid2 no AboveDeco | no rigid2 ] -> [ rigid2 RigidR | ]\n\nlate up [ RigidL rigid2 | rigid2 no AboveDeco ] -> [ RigidL rigid2 | rigid2 AboveRigidL ]\nlate up [ RigidR rigid2 | rigid2 no AboveDeco ] -> [ RigidR rigid2 | rigid2 AboveRigidR ]\nlate up [ RigidLR rigid2 | rigid2 ] -> [ RigidLR rigid2 | rigid2 AboveRigidLR ]\n\nlate up [ RigidL rigid2 | rigid2 RigidR ] -> [ RigidL rigid2 | rigid2 AboveRigidLRwithR ]\nlate up [ RigidR rigid2 | rigid2 RigidL ] -> [ RigidR rigid2 | rigid2 AboveRigidLRwithL ]\n\nlate up [ rigid2 | CrateAbove ] -> [ rigid2 RigidU | CrateAbove ]\n\nlate left [ rigid2 RigidU | rigid2 no RigidU ] -> [ rigid2 RigidU | rigid2 RigidUL ]\nlate right [ rigid2 RigidU | rigid2 no RigidU ] -> [ rigid2 RigidU | rigid2 RigidUR ]\n\n(Fall)\n\ndown [ FallRight | Ridable ] -> [ PlayerPinkRight | Ridable ]\ndown [ FallRight no Transition | no Ridable ] -> [ > FallRight | ]\ndown [ PinkRight no Transition | no Ridable ] -> [ > FallRight | ] sfx7\n\ndown [ FallLeft | BGPink ] -> [ PlayerPinkLeft | BGPink ]\ndown [ FallLeft | Block ] -> [ PlayerPinkLeft | Block ]\ndown [ FallLeft no Transition | no Ridable ] -> [ > FallLeft | ]\ndown [ PinkLeft no Transition | no Ridable ] -> [ > FallLeft | ] sfx7\n\n[ FallBlock ] -> [ ]\ndown [ Block no Transition | no ColBGPink no Block no Player ] [ PlayerFall ] -> [ > Block | ] [ PlayerFall FallBlock ] sfx1\n\n(ZonePink border)\n\n[ AddPinkL ] -> [ ]\n[ RemovePinkL ] -> [ ]\n[ AddPinkR ] -> [ ]\n[ RemovePinkR ] -> [ ]\n\nlate left [ no ZonePink no AddPinkL | ZonePink ] -> [ AddPinkLUD | ZonePink ]\nlate right [ no ZonePink no AddPinkR | ZonePink ] -> [ AddPinkRUD | ZonePink ]\n\nlate up [ AddPinkLUD | no ZonePink ] -> [ AddPinkLD | ]\nlate up [ AddPinkRUD | no ZonePink ] -> [ AddPinkRD | ]\n\nlate down [ AddPinkLUD | no ZonePink ] -> [ AddPinkLU | ]\nlate down [ AddPinkRUD | no ZonePink ] -> [ AddPinkRU | ]\n\nlate down [ AddPinkLD | no ZonePink ] -> [ | ]\nlate down [ AddPinkRD | no ZonePink ] -> [ | ]\n\nlate left [ ZonePink no RemovePinkL | no ZonePink ] -> [ ZonePink RemovePinkLUD | ]\nlate right [ ZonePink no RemovePinkR | no ZonePink ] -> [ ZonePink RemovePinkRUD | ]\n\nlate up [ RemovePinkLUD | ZonePink ] -> [ RemovePinkLD | ZonePink ]\nlate up [ RemovePinkRUD | ZonePink ] -> [ RemovePinkRD | ZonePink ]\n\nlate down [ RemovePinkLUD | ZonePink ] -> [ RemovePinkLU | ZonePink ]\nlate down [ RemovePinkRUD | ZonePink ] -> [ RemovePinkRU | ZonePink ]\n\nlate down [ RemovePinkLD | ZonePink ] -> [ | ZonePink ]\nlate down [ RemovePinkRD | ZonePink ] -> [ | ZonePink ]\n\nlate right [ RemovePinkRU | AddPinkLU ] -> [ RemovePinkRU | ]\nlate right [ RemovePinkRD | AddPinkLD ] -> [ RemovePinkRD | ]\n\nlate right [ RemovePinkRUD | AddPinkLU ] -> [ RemovePinkRUD | ]\nlate right [ RemovePinkRUD | AddPinkLD ] -> [ RemovePinkRUD | ]\n\nlate left [ RemovePinkLU | AddPinkRU ] -> [ RemovePinkLU | ]\nlate left [ RemovePinkLD | AddPinkRD ] -> [ RemovePinkLD | ]\n\nlate left [ RemovePinkLUD | AddPinkRU ] -> [ RemovePinkLUD | ]\nlate left [ RemovePinkLUD | AddPinkRD ] -> [ RemovePinkLUD | ]\n\nlate left [ AddPinkLUD | RemovePinkRUD ] -> [ | RemovePinkRUD ]\nlate right [ AddPinkRUD | RemovePinkLUD ] -> [ | RemovePinkLUD ]\nlate left [ AddPinkLUD | RemovePinkRU ] -> [ AddPinkLD | RemovePinkRU ]\nlate right [ AddPinkRUD | RemovePinkLU ] -> [ AddPinkRD | RemovePinkLU ]\nlate left [ AddPinkLUD | RemovePinkRD ] -> [ AddPinkLU | RemovePinkRD ]\nlate right [ AddPinkRUD | RemovePinkLD ] -> [ AddPinkRU | RemovePinkLD ]\nlate left [ AddPinkLU | RemovePinkRU ] -> [ | RemovePinkRU ]\nlate right [ AddPinkRU | RemovePinkLU ] -> [ | RemovePinkLU ]\nlate left [ AddPinkLD | RemovePinkRD ] -> [ | RemovePinkRD ]\nlate right [ AddPinkRD | RemovePinkLD ] -> [ | RemovePinkLD ]\n\n(Animation)\n\nright [ > PlayerBlueLeft ] -> [ > PlayerBlueRight ]\nright [ > WalkAnimBL1 ] -> [ > WalkAnimBR1 ]\nright [ > WalkAnimBL2 ] -> [ > WalkAnimBR2 ]\nright [ > WalkAnimBL3 ] -> [ > WalkAnimBR3 ]\n\nleft [ > PlayerBlueRight ] -> [ > PlayerBlueLeft ]\nleft [ > WalkAnimBR1 ] -> [ > WalkAnimBL1 ]\nleft [ > WalkAnimBR2 ] -> [ > WalkAnimBL2 ]\nleft [ > WalkAnimBR3 ] -> [ > WalkAnimBL3 ]\n\n[ WalkAnimBR3 ] -> [ PlayerBlueRight ]\n[ WalkAnimBR2 ] -> [ WalkAnimBR3 ]\n[ WalkAnimBR1 ] -> [ WalkAnimBR2 ]\n[ > PlayerBlueRight ] -> [ > WalkAnimBR1 ]\n\n[ WalkAnimBL3 ] -> [ PlayerBlueLeft ]\n[ WalkAnimBL2 ] -> [ WalkAnimBL3 ]\n[ WalkAnimBL1 ] -> [ WalkAnimBL2 ]\n[ > PlayerBlueLeft ] -> [ > WalkAnimBL1 ]\n\nright [ > PlayerPinkLeft ] -> [ > PlayerPinkRight ]\nright [ > WalkAnimPL1 ] -> [ > WalkAnimPR1 ]\nright [ > WalkAnimPL2 ] -> [ > WalkAnimPR2 ]\nright [ > WalkAnimPL3 ] -> [ > WalkAnimPR3 ]\n\nleft [ > PlayerPinkRight ] -> [ > PlayerPinkLeft ]\nleft [ > WalkAnimPR1 ] -> [ > WalkAnimPL1 ]\nleft [ > WalkAnimPR2 ] -> [ > WalkAnimPL2 ]\nleft [ > WalkAnimPR3 ] -> [ > WalkAnimPL3 ]\n\n[ WalkAnimPR3 ] -> [ PlayerPinkRight ]\n[ WalkAnimPR2 ] -> [ WalkAnimPR3 ]\n[ WalkAnimPR1 ] -> [ WalkAnimPR2 ]\n[ > PlayerPinkRight ] -> [ > WalkAnimPR1 ]\n\n[ WalkAnimPL3 ] -> [ PlayerPinkLeft ]\n[ WalkAnimPL2 ] -> [ WalkAnimPL3 ]\n[ WalkAnimPL1 ] -> [ WalkAnimPL2 ]\n[ > PlayerPinkLeft ] -> [ > WalkAnimPL1 ]\n\n[ stationary Player ] [ stationary GhostBlockAnim5 ] -> [ Player ] [ action GhostBlock ]\n[ stationary Player ] [ stationary GhostBlockAnim4 ] -> [ Player ] [ action GhostBlockAnim5 ]\n[ stationary Player ] [ stationary GhostBlockAnim3 ] -> [ Player ] [ action GhostBlockAnim4 ]\n[ stationary Player ] [ stationary GhostBlockAnim2 ] -> [ Player ] [ action GhostBlockAnim3 ]\n[ stationary Player ] [ stationary GhostBlockAnim1 ] -> [ Player ] [ action GhostBlockAnim2 ]\n[ stationary Player ] [ stationary GhostBlock ] -> [ Player ] [ action GhostBlockAnim1 ]\n\n[ GhostPlayerAbove ] -> [ ]\nlate up [ GPAboveAnim | ] -> [ GPAboveAnim | GhostPlayerAbove ]\n\n[ stationary Player ] [ stationary GhostPlayerAnim5 ] -> [ Player ] [ action GhostPlayer ]\n[ stationary Player ] [ stationary GhostPlayerAnim4 ] -> [ Player ] [ action GhostPlayerAnim5 ]\n[ stationary Player ] [ stationary GhostPlayerAnim3 ] -> [ Player ] [ action GhostPlayerAnim4 ]\n[ stationary Player ] [ stationary GhostPlayerAnim2 ] -> [ Player ] [ action GhostPlayerAnim3 ]\n[ stationary Player ] [ stationary GhostPlayerAnim1 ] -> [ Player ] [ action GhostPlayerAnim2 ]\n[ stationary Player ] [ stationary GhostPlayer ] -> [ Player ] [ action GhostPlayerAnim1 ]\n\n[ Background Transition1 ] [ Background no Transition1 ] -> [ Background Transition1 ] [ Background Transition1 ]\n[ stationary Transition9 ] -> [ ] again\n[ stationary Transition8 ] -> [ action Transition9 ] again\n[ stationary Transition7 ] -> [ action Transition8 ] again\n[ stationary Transition6 ] -> [ action Transition7 ] again\n[ stationary Transition5 ] -> [ action Transition6 ] again\n[ stationary Transition4 ] -> [ action Transition5 ] again\n[ stationary Transition3 ] -> [ action Transition4 ] again\n[ stationary Transition2 ] -> [ action Transition3 ] again\n[ stationary Transition1 ] -> [ action Transition2 ] again\n\n[ Background TransitionR1 ] [ Background no TransitionR1 ] -> [ Background TransitionR1 ] [ Background TransitionR1 ]\n[ stationary TransitionR9 ] -> [ ] again\n[ stationary TransitionR8 ] -> [ action TransitionR9 ] again\n[ stationary TransitionR7 ] -> [ action TransitionR8 ] again\n[ stationary TransitionR6 ] -> [ action TransitionR7 ] again\n[ stationary TransitionR5 ] -> [ action TransitionR6 ] again\n[ stationary TransitionR4 ] -> [ action TransitionR5 ] again\n[ stationary TransitionR3 ] -> [ action TransitionR4 ] again\n[ stationary TransitionR2 ] -> [ action TransitionR3 ] again\n[ stationary TransitionR1 ] -> [ action TransitionR2 ] again\n\n(Level start)\n\n[ Target no LevelStart ] [ Background no Transition ] -> [ Target ] [ Background Transition5 ]\n[ Target Transition9 no LevelStart ] -> [ Target LevelStart ]\n\n(Win)\n\ndown [ PlayerPink no WinAnim Target no FallBlock | Ridable ]-> [ PlayerPink WinAnim1 Target | Ridable ] sfx8\n\n[ WinAnim6 ] [ Background no Transition ] -> [ WinAnim6 ] [ Background Transition1 ]\n[ WinAnim5 ] -> [ WinAnim6 ]\n[ WinAnim4 ] -> [ WinAnim5 ]\n[ WinAnim3 ] -> [ WinAnim4 ]\n[ WinAnim2 ] -> [ WinAnim3 ]\n[ WinAnim1 ] -> [ WinAnim2 ]\n\n[ > Player WinAnim ] -> cancel\n[ action Player WinAnim ] -> cancel\n\n[ Target WinAnim6 Transition5 ] -> [ Target WinAnim6 Transition5 Winable ]\n\n(tutorial)\n\n[ Crate PressX no TCount ] [ PressX ] -> [ Crate TCount1 ] [ ]\n\n[ TCount5 ] -> [ ]\n[ TCount4 ] -> [ TCount5 ] message X or spacebar to switch characters.\n[ TCount3 ] -> [ TCount4 ]\n[ TCount2 ] -> [ TCount3 ]\n[ TCount1 ] -> [ TCount2 ]\n\n[ > Player ] [ Crate PressX ] -> [ Player ] [ Crate PressX ]\n[ > Player ] [ Crate TCount ] -> [ Player ] [ Crate TCount ]\n[ PlayerPink ] [ PressX ] -> [ PlayerPink ] [ ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Winable \n\n======= \nLEVELS\n=======\n\n\n(Tutorial)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,!xxxxxxxxxo,,,..'''p++++++++++'''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxxx\"xxxxxx,,,..'''p+①+①++++++'''.\n.,,,,,,x,xxxoxx,,,..''''''+'++++++'''.\n.,,,xxxxxxxx,xx,,,..'''++++++++'++'''.\n.,,,xxxxxxxxxxx,,,..'''+++①+++++++'''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,!xxxxxxxx,,,,..''''p++++++++''''.\n.,,,,,,,xxxxxx,,,,..'''''''++++++''''.\n.,,,,,,xxxxxox,,,,..''''''+++++++''''.\n.,,,,xxxxxx\",x,,,,..''''++++++①'+''''.\n.,,,,xx\"xxx\"xx,,,,..''''++①+++①++''''.\n.,,,,xx\"x,,,,,,,,,..''''++①+'''''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxx!xxxx,,,,..''''++++p++++''''.\n.,,,,xxxx\"xxxx,,,,..''''++++①++++''''.\n.,,,,x,,,,,,,x,,,,..''''+'''''''+''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxx\"xxx,,,,..''''+++++①+++''''.\n.,,,,xxx\"o,\"xx,,,,..''''+++①+'①++''''.\n.,,,,xx\",xx\"xx,,,,..''''++①'++①++''''.\n.,,,,xx\"xx,,,,,,,,..''''++①++''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxox,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xx!xx\"xx,,,,,,..'''++p++①++''''''.\n.,,,,,,,,,,,,$,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(二つでスタックのチュートリアル)\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxx!xxxoxxx,,,..'''+++%+++++++'''.\n.,,,,xx\"x\"xxxx,,,,..''''+++++++++''''.\n.,,,,#########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,b,*,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.xxxxxxxxxxxxxxxxx..+++++++++++++++++.\n.x,,,,,,,,,,,,,,,x..+'''''''''''''''+.\n.x,,,,,,b,*,,,,,,x..+''''''''+''''''+.\n.x,,xxxxxxxxxxx,,x..+''+++++++++++''+.\n.x,,xxx!xxxoxxx,,x..+''+++%+++++++''+.\n.x,,,xx\"x\"xxxx,,,x..+'''+++++++++'''+.\n.x,,,,,,,,,,,,,,,x..+'''''''''''''''+.\n.xxxxxxxxxxxxxxxxx..+++++++++++++++++.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(一個なら押しのけて登れる)\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,xxxxxx,,,,,..''''''++++++'''''.\n.,,,,,,x\",x\"x,,,,,..''''''++'+++'''''.\n.,,,,,,,!,,,x,,,,,..'''''''%'''+'''''.\n.,,,,#b,,,*,x,,,,,..'''''''''''+'''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,oxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,,,,xxxxxx,,,,..'''''''++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage Reach the heart to win.\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,x!xxxxxox,,,,..''''+p+++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage You can climb one square.\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxox,,,,..''''+石+++++++''''.\n.,,,,,!,,,,,,,,,,,..'''''p'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage You can only push one block at a time.\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxox,,,,..''''+++++++++''''.\n.,,,,x!\"xxxx\"x,,,,..''''+p石++++石+''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 1. Two Worlds\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,!xxx,b,xxxxxo,,..''%+++'''++++++''.\n.,,,xxx,,,xxxx,,,,..'''+++'''++++''''.\n.,,,xxx,,,xxxx,,,,..'''+++'''++++''''.\n.,,,xxx,,,xxx,,,,,..'''+++'''+++'''''.\n.,,,xxxx*x\"xx,,,,,..'''++++'++++'''''.\n.,,,xxx,,,,,,,,,,,..'''+++'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,文,,,,,,,,..'''''''''''''''''.\n.,,,!xxx,,,xxxo,,,..'''%+++'''++++'''.\n.,,,,xxxx*xxx,,,,,..''''++++'+++'''''.\n.,,,,xxx,,,xx,,,,,..''''+++'''++'''''.\n.,,,,,,,,文,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 2. Delivery\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,oxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,,xxxxxx,,,,,..''''''++++++'''''.\n.,,,,,,x!x\"xx,,,,,..''''''+%++++'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,b*,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 3. One-way Tickets\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx,,,,,,,,,,,..''''++'''''''''''.\n.,,,,x\",,,b*,,,,,,..''''++'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx########,,,..''''++'''''''''''.\n.,,,,xxxxxxxxxx,,,..''''++++++++++'''.\n.,,,,xxxxxxxxxx,,,..''''++++++++++'''.\n.,,,,xxx!xxxoxx,,,..''''+++%++++++'''.\n.,,,,#xx\"x\"xxxx,,,..'''''+++++++++'''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(message Brain training\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,b*,,x\"x,,,,,,,..'''''''+++'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxx!xxxxxxx,,,..'''+++%+++++++'''.\n.,,,xxx,,,,,xxx,,,..'''+++'''''+++'''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxxxxx\"xxxx,,,..'''+++++++++++'''.\n.,,,xxxx\"o,\"xxx,,,..'''++++++'++++'''.\n.,,,xxx\",xx\"xx,,,,..'''++++'+++++''''.\n.,,,,xx\"xx####,,,,..''''+++++''''''''.\n.,,,,######,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(message 2 x 3\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,##,,,,,##,,,,..'''''''''''''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#,\"x\"x\",#,,,,..''''''+++++''''''.\n.,,,,#,,b,*,,#,,,,..'''''''''''''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,xxxxo,,,,,,..''''''+++++''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,xx!xx,,,,,,..''''''++%++''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,##,,,,,##,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 4. 3 x 6\n\n\n......................................\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,b*,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxo,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,!xxxxx,,,,,,..'''''%+++++''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,##########,,,,..'''''''''''''''''.\n.,,,#,,,,,,,,#,,,,..'''''''''''''''''.\n.,,,#,\"!\"x\"x,#,,,,..'''''+p++++''''''.\n.,,,#b,,,*,,,#,,,,..'''''''''''''''''.\n.,,,#,xxxxxx##,,,,..'''''++++++''''''.\n.,,,#,*,,,,,,o,,,,..''''''''''''+''''.\n.,,,#,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,,,,,,,,#,,,,..'''''''''''''''''.\n.,,,##########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 5. Too Small to Climb\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,ox\"#,,,,,,..'''''''+++'''''''.\n.,,,,,,,,,\"#,,,,,,..'''''''''+'''''''.\n.,,,,,,,x,\"#,,,,,,..'''''''+'+'''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,!b*,,,,,,,..'''''''%'''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,b@,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,@,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,oxxx,,,,,,,..''''''++++'''''''.\n.,,,,,#,xxx,,,,,,,..'''''''+++'''''''.\n.,,,,,!,xxx,,,,,,,..'''''%'+++'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 6. I Hope That's Enough\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,xox,,,,,..''''''''++++'''''.\n.,,,,,,,,,xxx\"xx,,..''''''''+++++++''.\n.,,,,,,,,,,,,\"xx,,..''''''''''''+++''.\n.,,######xxxx\"xx,,..''''''''+++++++''.\n.,,#,,,!#x\",,,,,,,..''''''%'++'''''''.\n.,,#,*,,xx\"x,*,*,,..'''''''++++''''''.\n.,,####,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,##,,,,,,b,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 7. The Larger, the Better\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,#,#,#,#,#,#,..'''''''''''''''''.\n.,,,,,xxxxxo,,,,,,..'''''++++++''''''.\n.,,,,,xx\",,,,,,,,,..'''''+++'''''''''.\n.,,,,,xx\",,,,,,,,,..'''''+++'''''''''.\n.,,,,,!x\",@@@@,,,,..'''''%++'''''''''.\n.,#,#,#,#,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,b,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 8. Cut the Screen\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,oxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,@@@@@@@,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"x#x,,,,,..'''''+++++'+'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,x!x\"xxx,,,,,..'''''+%+++++'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,oxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,2222222,,,,,..'''''''''''''''''.\n.,x,,,xxx\"xxx,,,,,..'+'''+++++++'''''.\n.,,,,,@@@@@@@,,,,,..'''''''''''''''''.\n.,,,,,,xxxx!x,,,,,..''''''++++%+'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 9. Transfer\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.#################..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,xx,,,2b@@@,,o,,..''++''''''''''+''.\n.,,!\",222,@,,,,x,,..''%+''''''''''+''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.#################..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 10. Do You Like Math Puzzles?\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,b,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,\"@#xx#xx#xx#x#..'''+''++++++++'+'.\n.,,\"\"@#xxxxxxxxxx#..''++''++++++++++'.\n.,,\"\"@#xx,xx,xx,o#..''++''++'++'++'+'.\n.,,,,@#!x,xx,xx,x#..''''''%+'++'++'+'.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 11. Haste Makes Waste\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,xxx,,,,,,,..'''''''+++'''''''.\n.,,xxx,,,,,,,xxx,,..''+++'''''''+++''.\n.,,xx\",,@@@,,xox,,..''+++'''''''+++''.\n.,,!x\",,@@@,,xxx,,..''%++'''''''+++''.\n.,,###,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 12. Neither Road Leads to Rome\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,#############,,,..'''''''''''''''''.\n.,#,,,,!\"\"\"x\"x###,..''''''%+++++++++'.\n.,#b@@,,,,,,,,xo#,..'''''''''''''+++'.\n.,#,,,,xxxxxx,xx#,..''''''++++++'+++'.\n.,#,,,,,,,,,,,###,..'''''''''''''''''.\n.,#############,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 13. This Elevator Will Be Taking No Passengers\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,o\"\"\"\"\",,,,,,..'''''++++++''''''.\n.,,b*,,\"\"\"\"\",,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.####xxx,,,xxx####..''''+++'''+++''''.\n.,,,,xxx@@@xxx,,,,..''''+++'''+++''''.\n.,,,,xxx@@@xxx,,,,..''''+++'''+++''''.\n.,,,,xxx,,,xxx,,,,..''''+++'''+++''''.\n.,,,,xxx,,,xxx,,,,..''''+++'''+++''''.\n.,,,,x!x,,,xxx,,,,..''''+%+'''+++''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................)\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx\"\"\"\"\"xx,,,,..''''+++++++++''''.\n.,b*,xx\"\"\"\"\"xx,,,,..''''+++++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#oxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#,xx@@@xxx#,,,..'''''++'''+++''''.\n.,,,#xxx@@@xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#x!x,,,xxx#,,,..''''+%+'''+++''''.\n.,,,###,,,,,###,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,xxxx\"\"\"xx,,,,..''''+++++++++''''.\n.,,,,xxx\"\"\"\"xx,,,,..''''+++++++++''''.\n.,b*,xx,\"\"\"\"xx,,,,..''''++'++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#oxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#,xx@@@xxx#,,,..'''''++'''+++''''.\n.,,,#xxx@@@xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#x!x,,,xxx#,,,..''''+%+'''+++''''.\n.,,,###,,,,,###,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 14. 3 x 21\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,#,,xxx\"\"\"o,,..''''''''+++++++''.\n.,,,,@@@,xxx\"\"\",,,..''''''''++++++'''.\n.,,,,@@@#\"\"\"\"\"\",,,..''''''''++++++'''.\n.,,,#@@@,\"\"\"\"\"\",,,..''''''''++++++'''.\n.,,,,@@@,\"\"\"\"\"\",#,..''''''''++++++'''.\n.,,,,@@@,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#,,,,b,,22,,,,..'''''''''''''''''.\n.,,,x!,,,,,,,2,,,,..'''+%''''''''''''.\n.,,,,#,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,#,#,#,#,#,..'''''''''''''''''.\n.,,,,,#,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\nmessage Thanks for playing!\n\n\n(......................................\n.,,,,,#,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#o,b,#,,,,,,..''''''+''''''''''.\n.,,,,,,,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#,*,*#,,,,,,..'''''''''''''''''.\n.,,,,,#,@@@#,,,,,,..'''''''''''''''''.\n.,,,,,#,@@@##,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,##,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,x,,#,,,,,..''''''''%''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,b,,,,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,o,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,\",,,,,,#,,..'''''''+'''''''''.\n.,*,*,*,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,#,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,@@,@@@#,,,,,,#,,..'''''''''''''''''.\n.,@@,,@@,,,,,,,,,,..'''''''''''''''''.\n.,@@@@@@#,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,#,!,#,#,,..''''''''''%''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,##!######,,,,..''''''%''''''''''.\n.,,,,#,,,,,,o#,,,,..'''''''''''+'''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#,,@b2,,#,,,,..'''''''+'+'''''''.\n.,,,,#,@@,22,#,,,,..''''''++'++''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,x\"\"\"x,,,,,,..''''''+++++''''''.\n.,,,,,,\"\"\"\"\",,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,#,xxx,,,,,oxx,#,..'''+++'''''+++'''.\n.,#,xxx,222,xxx,#,..'''+++'''''+++'''.\n.,#,xxx,,,,,xxx,#,..'''+++'''''+++'''.\n.,#,xxx,@@,,xxx,#,..'''+++'''''+++'''.\n.,#,x!x,,,,,xxx,#,..'''+%+'''''+++'''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,\"o,,#,,,..'''''''''++''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#xxx,,,,xxx#,,,..'''+++''''+++''''.\n.,,#xxx,,,,\"xx#,,,..'''+++''''+++''''.\n.,,#xxx,,,,\"xx#,,,..'''+++''''+++''''.\n.,,#xxx,2@,\"xx#,,,..'''+++''''+++''''.\n.,,#!xx22@@\"xx#,,,..'''%++''''+++''''.\n.,,#,,,2,,@,,,#,,,..'''''''''''''''''.\n.,,#,,,2,,@,,,#,,,..'''''''''''''''''.\n.,,#,b,22@@,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n......................................)", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", 2, "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", 2, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 1, "tick", 4, "tick", "tick", "tick", 3, "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background colbgpink outline:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background bgblue:1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,background bgblue zonepurple:2,background bgblue zonepurplebelow:3,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,2,2,2,3,1,1,1,1,0,0,1,1,1,1,1,1,2,2,background bgblue ghostplayeranim1 zonepurple:4,3,1,1,1,1,0,0,1,\n1,1,1,1,1,2,2,2,3,1,1,1,1,0,0,1,1,1,1,1,1,1,2,3,background bgblue stayblueleft:5,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,2,background bgblue crateabove zonepurplebelow:6,background bgblue crate crateline:7,background bgblue cratebelow:8,1,1,1,0,0,1,1,1,1,1,1,2,2,2,3,1,1,1,\n1,0,0,1,1,1,1,1,1,2,2,2,3,1,1,1,1,0,0,1,1,1,1,1,1,2,3,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,background ghosttarget zonepurple:9,3,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background bgpink colbgpink:10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,\n10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,background bgpink climbable colbgpink:11,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,background removepinklud zonepink:12,addpinkru background bgpink climbable colbgpink:13,11,10,10,\n10,10,10,0,0,10,10,10,10,10,10,background zonepink:14,14,background removepinkld zonepink:15,10,10,10,10,10,0,0,10,10,10,10,10,10,14,14,background playerpinkright zonepink:16,10,10,10,10,10,0,0,10,\n10,10,10,10,10,background removepinkru zonepink:17,14,background removepinkrd zonepink:18,10,10,10,10,10,0,0,10,10,10,10,10,10,addpinkld background bgpink climbable colbgpink:19,background removepinkrud zonepink:20,addpinklu background bgpink climbable colbgpink:21,10,10,10,10,10,0,0,10,10,10,10,10,10,10,\n11,10,11,10,10,10,10,0,0,10,10,10,10,10,10,addpinkrd background bgpink climbable colbgpink:22,12,13,background removepinklud removepinkrud zonepink:23,10,10,10,10,0,0,10,10,10,10,10,10,background removepinklu zonepink:24,14,15,11,10,10,10,\n10,0,0,10,10,10,10,10,10,14,14,18,10,10,10,10,10,0,0,10,10,10,10,10,10,14,21,11,10,10,10,10,10,0,0,10,10,10,\n10,10,10,background levelstart removepinkrud target zonepink:25,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,11,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,10,10,10,\n10,10,10,10,10,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", "7", "1627769807359.2505"] + ["title Two Worlds\nauthor nebu soku\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\nrealtime_interval 0.1\nagain_interval 0.05\nbackground_color #282818\ntext_color #c8c8a8\nflickscreen 19x16\n\n========\nOBJECTS\n========\n\nBackground \n#282818\n\nOutLine\n#282818\n\nBGBlue\n#c8c8a8 #c1e4f0\n\nBGPink\n#282818 #f8cefd\n\nTarget \n#a0a088\n00.00\n00000\n00000\n.000.\n..0..\n\nGhostTarget \n#a0a088\n00.00\n00000\n00000\n.000.\n..0..\n\nWall \n#a0a088 #686850 #282818\n01000\n02010\n00020\n00000\n11111\n\nWallAbove\n#a0a088\n.....\n.....\n.....\n.....\n00000\n\nWallBelow\n#686850\n00000\n.....\n.....\n.....\n.....\n\nZonePurple\n#282818 #a0a088 #3d1e7e\n00000\n00000\n00100\n00000\n00000\n\nZonePurpleBelow\n#686850 #a0a088\n00000\n.....\n.....\n.....\n.....\n\nZonePink\n#c8c8a8 #ef90e3\n\nPlayerBlueRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850 #54b4d5\n.0000\n.0000\n.0121\n5.33.\n..34.\n\nWalkAnimBR1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850(#4fbbdf #608b8c #d5f5f6 #1d7788 #1a6978 #53aecc)\n.0000\n.0000\n.0121\n5.33.\n.....\n\nWalkAnimBR2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n.4..3\n\nWalkAnimBR3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n..3..\n\nPlayerBlueLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.43..\n\nWalkAnimBL1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.....\n\nWalkAnimBL2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n3..4.\n\nWalkAnimBL3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n..3..\n\nStayBlueRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n..34.\n\nStayBlueLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.43..\n\nPlayerPinkRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818(#de4fdd #8a608b #f6d4f5 #871d86 #741978 #cc52c9 #d153d5)\n.5000\n.0000\n.0121\n..33.\n..34.\n\nWalkAnimPR1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.....\n\nWalkAnimPR2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nWalkAnimPR3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n..3..\n\nPlayerPinkLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.43..\n\nWalkAnimPL1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.....\n\nWalkAnimPL2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nWalkAnimPL3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n..3..\n\nStayPinkRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n..34.\n\nStayPinkLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.43..\n\nFallRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nFallLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nClimbRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nClimbLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nGhostPlayer\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAbove\n#c8c8a8\n.....\n.....\n.....\n.....\n.000.\n\nGhostPlayerAnim1\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAnim2\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAnim3\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nGhostPlayerAnim4\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nGhostPlayerAnim5\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nStuckRigid\nblack\n\nStuckCursor\n#282818\n0...0\n0...0\n0...0\n00000\n.....\n\nStuckCursorAbove\n#282818\n.....\n.....\n.....\n.....\n00000\n\nCrate \n#a0a088 #686850 #282818 #c8c8a8\n01110\n02220\n02020\n00000\n11111\n\nCrateAbove\n#a0a088\n.....\n.....\n.....\n.....\n00000\n\nCrateBelow\n#686850\n00000\n.....\n.....\n.....\n.....\n\nCrateLine\n#a0a088\n.....\n.....\n.....\n00000\n.....\n\nRigidCrate\n#a0a088 #282818\n11111\n11111\n11011\n11111\n11111\n\nRigidU\n#686850\n00000\n.....\n.....\n.....\n.....\n\nRigidUL\n#686850\n....0\n.....\n.....\n.....\n.....\n\nRigidUR\n#686850\n0....\n.....\n.....\n.....\n.....\n\nRigidD\n#a0a088 #686850\n.....\n.....\n.....\n00000\n11111\n\nRigidL\n#a0a088\n0....\n0....\n0....\n0....\n0....\n\nRigidR\n#a0a088\n....0\n....0\n....0\n....0\n....0\n\nRigidLR\n#a0a088\n0...0\n0...0\n0...0\n0...0\n0...0\n\nAboveRigidL\n#a0a088\n.....\n.....\n.....\n0....\n0....\n\nAboveRigidR\n#a0a088\n.....\n.....\n.....\n....0\n....0\n\nAboveRigidLR\n#a0a088\n.....\n.....\n.....\n0...0\n0...0\n\nAboveRigidLRwithR\n#a0a088\n....0\n....0\n....0\n0...0\n0...0\n\nAboveRigidLRwithL\n#a0a088\n0....\n0....\n0....\n0...0\n0...0\n\nrigid1\nblack\n\nrigid2\nblack\n\nBlock \n#c8c8a8 #a0a088 #686850\n12222\n21112\n21112\n21112\n22221\n\nGhostBlock\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim1\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim2\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim3\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\nGhostBlockAnim4\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\nGhostBlockAnim5\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\n\nClimbable\npink\n\nColBGPink\nblack\n.....\n.....\n.....\n.....\n.....\n\nFallBlock\nblack\n\nWinable\nblack\n\nAddPinkLUD\n#c8c8a8\n0....\n.....\n.....\n.....\n0....\n\nAddPinkLU\n#c8c8a8\n0....\n.....\n.....\n.....\n.....\n\nAddPinkLD\n#c8c8a8\n.....\n.....\n.....\n.....\n0....\n\nAddPinkRUD\n#c8c8a8\n....0\n.....\n.....\n.....\n....0\n\nAddPinkRU\n#c8c8a8\n....0\n.....\n.....\n.....\n.....\n\nAddPinkRD\n#c8c8a8\n.....\n.....\n.....\n.....\n....0\n\nRemovePinkLUD\n#282818\n0....\n.....\n.....\n.....\n0....\n\nRemovePinkLU\n#282818\n0....\n.....\n.....\n.....\n.....\n\nRemovePinkLD\n#282818\n.....\n.....\n.....\n.....\n0....\n\nRemovePinkRUD\n#282818\n....0\n.....\n.....\n.....\n....0\n\nRemovePinkRU\n#282818\n....0\n.....\n.....\n.....\n.....\n\nRemovePinkRD\n#282818\n.....\n.....\n.....\n.....\n....0\n\nTransition1\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransition2\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransition3\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransition4\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransition5\n#282818\n00000\n00000\n00000\n00000\n00000\n\nTransition6\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransition7\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransition8\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransition9\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransitionR1\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransitionR2\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransitionR3\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransitionR4\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransitionR5\n#282818\n00000\n00000\n00000\n00000\n00000\n\nTransitionR6\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransitionR7\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransitionR8\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransitionR9\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nHide\n#c8c8a8\n\nWinAnim1\n#c8c8a8\n.....\n.0...\n.....\n.....\n.....\n\nWinAnim2\n#c8c8a8\n.....\n.0...\n.....\n.....\n.....\n\nWinAnim3\n#c8c8a8\n.0...\n000..\n.0...\n...0.\n.....\n\nWinAnim4\n#c8c8a8\n.....\n.0...\n...0.\n..000\n...0.\n\nWinAnim5\n#c8c8a8\n.....\n.....\n.....\n...0.\n.....\n\nWinAnim6\n#c8c8a8\n.....\n.....\n.....\n.....\n.....\n\nLevelStart\n#282818\n\nPressX\n#686850 #282818\n0.0.0\n0.0.0\n00.00\n0.0.0\n0.0.0\n\nTCount1\nblack\n\nTCount2\nblack\n\nTCount3\nblack\n\nTCount4\nblack\n\nTCount5\nblack\n\n=======\nLEGEND\n=======\n\nBlueRight = PlayerBlueRight or WalkAnimBR1 or WalkAnimBR2 or WalkAnimBR3\nBlueLeft = PlayerBlueLeft or WalkAnimBL1 or WalkAnimBL2 or WalkAnimBL3\nPlayerBlue = BlueRight or BlueLeft\n\nPinkRight = PlayerPinkRight or WalkAnimPR1 or WalkAnimPR2 or WalkAnimPR3 \nPinkLeft = PlayerPinkLeft or WalkAnimPL1 or WalkAnimPL2 or WalkAnimPL3\nPlayerPink = PinkRight or PinkLeft\nPlayerFall = PlayerPink or FallRight or FallLeft\n\nPlayer = PlayerBlue or PlayerPink or ClimbRight or ClimbLeft\nPlayerMove = PlayerBlue or PlayerPink\n\nGBlock = GhostBlock or GhostBlockAnim1 or GhostBlockAnim2 or GhostBlockAnim3 or GhostBlockAnim4 or GhostBlockAnim5\n\nGPlayer = GhostPlayer or GhostPlayerAnim1 or GhostPlayerAnim2 or GhostPlayerAnim3 or GhostPlayerAnim4 or GhostPlayerAnim5\nGPAboveAnim = GhostPlayerAnim3 or GhostPlayerAnim4 or GhostPlayerAnim5\n\nRidable = BGPink or Block or ColBGPink\n\nRigids = rigid1 or rigid2\n\nAboveDeco = AboveRigidL or AboveRigidR or RigidL or RigidR or RigidLR\nRigidDeco = RigidU or AboveDeco or RigidD or AboveRigidLR or AboveRigidLRwithR or AboveRigidLRwithL or RigidUL or RigidUR\n\nAddPinkL = AddPinkLUD or AddPinkLU or AddPinkLD\nAddPinkR = AddPinkRUD or AddPinkRU or AddPinkRD\n\nRemovePinkL = RemovePinkLUD or RemovePinkLU or RemovePinkLD\nRemovePinkR = RemovePinkRUD or RemovePinkRU or RemovePinkRD\n\nTransition = Transition1 or Transition2 or Transition3 or Transition4 or Transition5 or Transition6 or Transition7 or Transition8 or Transition9\nTransitionR = TransitionR1 or TransitionR2 or TransitionR3 or TransitionR4 or TransitionR5 or TransitionR6 or TransitionR7 or TransitionR8 or TransitionR9\n\nWinAnim = WinAnim1 or WinAnim2 or WinAnim3 or WinAnim4 or WinAnim5 or WinAnim6\nTCount = TCount1 or TCount2 or TCount3 or TCount4\n\n. = Background\n, = BGBlue\n' = BGPink\n# = Wall and BGBlue\nB = PlayerBlueRight and BGBlue\nP = PlayerPinkRight and ZonePink\n* = Crate and BGBlue\n@ = RigidCrate and rigid1 and BGBlue\n2 = RigidCrate and rigid2 and BGBlue\nO = GhostTarget and ZonePurple\nx = ZonePurple and BGBlue\n+ = ZonePink\n\" = GhostBlock and ZonePurple and BGBlue\n! = GhostPlayer and ZonePurple and BGBlue\n($ = StayBlueRight and BGBlue)\n% = StayPinkRight and ZonePink\n石 = Block and ZonePink\n文 = PressX and BGBlue\n\n=======\nSOUNDS\n=======\n\nPlayerMove move 15203103\nCrate move 80987507\nRigidCrate move 80987507\nBlock action 70814309\nStuckCursor action 20002502 (boo)\nZonePurple move 95712903\nZonePink action 52706103\nTransition1 action 54782309\nTransitionR1 action 54782309\n\nsfx0 30806303\nsfx1 91797700 (fall)\nsfx2 99718300\nsfx3 65480100\nsfx4 80396503 (jump1)\nsfx5 80987507 (block)\nsfx6 45846907\nsfx7 28015305 (jump2)\nsfx8 10636903\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPressX\nTCount, TCount5\nLevelStart\nClimbable\nFallBlock\nWinable\nrigids\nStuckRigid\nBGBlue\nZonePink\nBGPink\nWallBelow\nTarget\nHide\nCrateBelow, ZonePurpleBelow\nPlayer, Wall, Crate, ZonePurple, StayBlueRight, StayBlueLeft, StayPinkRight, StayPinkLeft, FallRight, FallLeft, ClimbRight, ClimbLeft, Block, ColBGPink, RigidCrate\nRemovePinkL\nRemovePinkR\nGhostTarget\nRigidU, RigidUL, RigidUR\nGPlayer\nAboveRigidL, AboveRigidR, RigidL, RigidR, RigidLR\nRigidD, AboveRigidLR, AboveRigidLRwithR, AboveRigidLRwithL\nCrateAbove\nStuckCursorAbove\nWallAbove\nGBlock\nGhostPlayerAbove\nCrateLine\nStuckCursor\nAddPinkL\nAddPinkR\nOutLine\nWinAnim\nTransition, TransitionR\n\n======\nRULES \n====== \n[ > Player ] [ FallBlock ] -> cancel (bug?) \n\n(int)\n\n[ > Player Transition ] -> [ Player Transition ]\n[ ColBGPink ] -> [ ]\n[ BGPink ] -> [ BGPink ColBGPink ]\n[ Background no BGBlue no BGPink no ZonePurple no ZonePink ] -> [ Background OutLine ColBGPink ]\n\nright [ GhostTarget | | | | | | | | | | | | | | | | | | | ] -> [ GhostTarget | | | | | | | | | | | | | | | | | | | Target ]\n\ndown [ ZonePurple | no ZonePurple ] -> [ ZonePurple | ZonePurpleBelow ]\n\nup [ Wall | ] -> [ Wall | WallAbove ]\ndown [ Wall | ] -> [ Wall | WallBelow ]\n\n(Crate-ZonePink)\n\n[ CrateAbove ] -> [ ]\n[ CrateBelow ] -> [ ]\n[ CrateLine ] -> [ ]\nlate up [ | Crate | ] -> [ CrateBelow | Crate CrateLine | CrateAbove ]\n(late down [ Crate | ] -> [ Crate | CrateBelow ])\n\nlate right [ no Crate no ZonePurple no RigidCrate | | | | | | | | | | | | | | | | | | | ZonePink ] -> [ | | | | | | | | | | | | | | | | | | | BGPink ]\nlate right [ PlayerPink ] [ Crate | | | | | | | | | | | | | | | | | | | BGPink ] -> [ PlayerPink ] [ Crate | | | | | | | | | | | | | | | | | | | ZonePink ]\nlate right [ PlayerPink ] [ RigidCrate | | | | | | | | | | | | | | | | | | | BGPink ] -> [ PlayerPink ] [ RigidCrate | | | | | | | | | | | | | | | | | | | ZonePink ]\n\n(Block-GhostBlock)\n\n[ PlayerPink ] [ GBlock ] -> [ PlayerPink ] [ ]\nright [ PlayerPink ] [ | | | | | | | | | | | | | | | | | | | Block ] -> [ PlayerPink ] [ GhostBlock | | | | | | | | | | | | | | | | | | | Block ]\n\n[ PlayerBlue ] [ Block ] -> [ PlayerBlue ] [ ]\nright [ PlayerBlue ] [ GBlock | | | | | | | | | | | | | | | | | | | ] -> [ PlayerBlue ] [ GBlock | | | | | | | | | | | | | | | | | | | Block ]\n\n(Player-GhostPlayer)\n\n[ PlayerPink ] [ GPlayer ] -> [ PlayerPink ] [ ]\nright [ PlayerPink ] [ | | | | | | | | | | | | | | | | | | | PlayerPink ] -> [ PlayerPink ] [ GhostPlayer | | | | | | | | | | | | | | | | | | | PlayerPink ]\n\n(Switch)\n\n[ Target LevelStart ] [ action BlueRight ] [ StayPinkRight ] [ Background ] -> [ Target LevelStart ] [ BlueRight ] [ StayPinkRight ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueRight ] [ StayPinkRight ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueRight ] [ PlayerPinkRight ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueRight ] [ StayPinkLeft ] [ Background ] -> [ Target LevelStart ] [ BlueRight ] [ StayPinkLeft ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueRight ] [ StayPinkLeft ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueRight ] [ PlayerPinkLeft ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueLeft ] [ StayPinkRight ] [ Background ] -> [ Target LevelStart ] [ BlueLeft ] [ StayPinkRight ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueLeft ] [ StayPinkRight ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueLeft ] [ PlayerPinkRight ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueLeft ] [ StayPinkLeft ] [ Background ] -> [ Target LevelStart ] [ BlueLeft ] [ StayPinkLeft ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueLeft ] [ StayPinkLeft ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueLeft ] [ PlayerPinkLeft ] [ Transition6 ]\n\n[ action PlayerPinkRight no FallBlock ] [ StayBlueRight ] [ Background ] -> [ PlayerPinkRight ] [ StayBlueRight ] [ Background action TransitionR1 ]\n[ PlayerPinkRight ] [ StayBlueRight ] [ TransitionR6 ] -> [ StayPinkRight ] [ PlayerBlueRight ] [ TransitionR6 ]\n[ action PlayerPinkRight no FallBlock ] [ StayBlueLeft ] [ Background ] -> [ PlayerPinkRight ] [ StayBlueLeft ] [ Background action TransitionR1 ]\n[ PlayerPinkRight ] [ StayBlueLeft ] [ TransitionR6 ] -> [ StayPinkRight ] [ PlayerBlueLeft ] [ TransitionR6 ]\n[ action PlayerPinkLeft no FallBlock ] [ StayBlueRight ] [ Background ] -> [ PlayerPinkLeft ] [ StayBlueRight ] [ Background action TransitionR1 ]\n[ PlayerPinkLeft ] [ StayBlueRight ] [ TransitionR6 ] -> [ StayPinkLeft ] [ PlayerBlueRight ] [ TransitionR6 ]\n[ action PlayerPinkLeft no FallBlock ] [ StayBlueLeft ] [ Background ] -> [ PlayerPinkLeft ] [ StayBlueLeft ] [ Background action TransitionR1 ]\n[ PlayerPinkLeft ] [ StayBlueLeft ] [ TransitionR6 ] -> [ StayPinkLeft ] [ PlayerBlueLeft ] [ TransitionR6 ]\n\n(Climb)\n\n[ Climbable ] -> [ ]\nhorizontal [ BGPink | ZonePink ] -> [ BGPink Climbable | ZonePink ]\nhorizontal [ BGPink | Block ] -> [ BGPink | Block Climbable ]\nhorizontal [ Block | Block ] -> [ Block Climbable | Block Climbable ]\n\ndown [ ClimbRight | BGPink ] -> [ PlayerPinkRight | BGPink ]\ndown [ ClimbRight | Block ] -> [ PlayerPinkRight | Block ]\nright [ ClimbRight | ZonePink ] -> [ > ClimbRight | ZonePink ]\nright [ ClimbRight | Climbable ] -> [ FallRight | Climbable ]\nright [ > PinkRight no FallBlock | Climbable ] -> [ up ClimbRight | Climbable ] sfx7\n\ndown [ ClimbLeft | BGPink ] -> [ PlayerPinkLeft | BGPink ]\ndown [ ClimbLeft | Block ] -> [ PlayerPinkLeft | Block ]\nleft [ ClimbLeft | ZonePink ] -> [ > ClimbLeft | ZonePink ]\nleft [ ClimbLeft | Climbable ] -> [ FallLeft | Climbable ]\nleft [ > PinkLeft no FallBlock | Climbable ] -> [ up ClimbLeft | Climbable ] sfx7\n\n(Push)\n\n[ > Player | Crate no GPlayer no PressX no TCount ] -> [ > Player | > Crate ]\n[ > Player no FallBlock | Block ] -> [ > Player | > Block ] sfx5\n[ > Player | GBlock no rigids no ZonePurple | no Wall no ZonePurple no OutLine no Crate ] -> [ > Player | > GBlock | ]\n\n[ StuckCursor ] -> [ ] (Stuck effect)\n[ StuckCursorAbove ] -> [ ]\nlate up [ StuckCursor | ] -> [ StuckCursor | StuckCursorAbove ]\n[ > PlayerBlueRight | GPlayer Crate ] -> [ WalkAnimBR1 | GPlayer action StuckCursor Crate ]\n[ > PlayerBlueLeft | GPlayer Crate ] -> [ WalkAnimBL1 | GPlayer action StuckCursor Crate ]\n[ > PlayerBlueRight | StuckRigid ] [ GPlayer ] -> [ WalkAnimBR1 | StuckRigid ] [ GPlayer action StuckCursor ]\n[ > PlayerBlueLeft | StuckRigid ] [ GPlayer ] -> [ WalkAnimBL1 | StuckRigid ] [ GPlayer action StuckCursor ]\n\n[ StuckRigid ] -> [ ]\n[ Rigid1 GPlayer ] [ Rigid1 ] -> [ Rigid1 GPlayer StuckRigid ] [ Rigid1 StuckRigid ]\n[ Rigid2 GPlayer ] [ Rigid2 ] -> [ Rigid2 GPlayer StuckRigid ] [ Rigid2 StuckRigid ]\n\nrigid [ > Player | RigidCrate rigid1 no StuckRigid ] -> [ > Player | > RigidCrate > rigid1 ]\n+ rigid [ moving RigidCrate rigid1 | RigidCrate rigid1 ] -> [ moving RigidCrate moving rigid1 | moving RigidCrate moving rigid1 ]\n+ rigid [ moving rigid1 | GBlock rigid1 ] -> [ moving rigid1 | moving GBlock moving rigid1 ]\n\nrigid [ > Player | RigidCrate rigid2 no StuckRigid ] -> [ > Player | > RigidCrate > rigid2 ]\n+ rigid [ moving RigidCrate rigid2 | RigidCrate rigid2 ] -> [ moving RigidCrate moving rigid2 | moving RigidCrate moving rigid2 ]\n+ rigid [ moving rigid2 | GBlock rigid2 ] -> [ moving rigid2 | moving GBlock moving rigid2 ]\n\n(RigidCrate)\n\n[ RigidDeco ] -> [ ]\nlate down [ rigid1 | no rigid1 ] -> [ rigid1 RigidD | CrateBelow ]\nlate up [ rigid1 | no rigid1 ] -> [ rigid1 | CrateAbove ]\nlate left [ rigid1 | no rigid1 ] -> [ rigid1 RigidL | ]\nlate right [ rigid1 RigidL | no rigid1 ] -> [ rigid1 RigidLR | ]\nlate right [ rigid1 no AboveDeco | no rigid1 ] -> [ rigid1 RigidR | ]\n\nlate up [ RigidL rigid1 | rigid1 no AboveDeco ] -> [ RigidL rigid1 | rigid1 AboveRigidL ]\nlate up [ RigidR rigid1 | rigid1 no AboveDeco ] -> [ RigidR rigid1 | rigid1 AboveRigidR ]\nlate up [ RigidLR rigid1 | rigid1 ] -> [ RigidLR rigid1 | rigid1 AboveRigidLR ]\n\nlate up [ RigidL rigid1 | rigid1 RigidR ] -> [ RigidL rigid1 | rigid1 AboveRigidLRwithR ]\nlate up [ RigidR rigid1 | rigid1 RigidL ] -> [ RigidR rigid1 | rigid1 AboveRigidLRwithL ]\n\nlate up [ rigid1 | CrateAbove ] -> [ rigid1 RigidU | CrateAbove ]\n\nlate left [ rigid1 RigidU | rigid1 no RigidU ] -> [ rigid1 RigidU | rigid1 RigidUL ]\nlate right [ rigid1 RigidU | rigid1 no RigidU ] -> [ rigid1 RigidU | rigid1 RigidUR ]\n\n\nlate down [ rigid2 | no rigid2 ] -> [ rigid2 RigidD | CrateBelow ]\nlate up [ rigid2 | no rigid2 ] -> [ rigid2 | CrateAbove ]\nlate left [ rigid2 | no rigid2 ] -> [ rigid2 RigidL | ]\nlate right [ rigid2 RigidL | no rigid2 ] -> [ rigid2 RigidLR | ]\nlate right [ rigid2 no AboveDeco | no rigid2 ] -> [ rigid2 RigidR | ]\n\nlate up [ RigidL rigid2 | rigid2 no AboveDeco ] -> [ RigidL rigid2 | rigid2 AboveRigidL ]\nlate up [ RigidR rigid2 | rigid2 no AboveDeco ] -> [ RigidR rigid2 | rigid2 AboveRigidR ]\nlate up [ RigidLR rigid2 | rigid2 ] -> [ RigidLR rigid2 | rigid2 AboveRigidLR ]\n\nlate up [ RigidL rigid2 | rigid2 RigidR ] -> [ RigidL rigid2 | rigid2 AboveRigidLRwithR ]\nlate up [ RigidR rigid2 | rigid2 RigidL ] -> [ RigidR rigid2 | rigid2 AboveRigidLRwithL ]\n\nlate up [ rigid2 | CrateAbove ] -> [ rigid2 RigidU | CrateAbove ]\n\nlate left [ rigid2 RigidU | rigid2 no RigidU ] -> [ rigid2 RigidU | rigid2 RigidUL ]\nlate right [ rigid2 RigidU | rigid2 no RigidU ] -> [ rigid2 RigidU | rigid2 RigidUR ]\n\n(Fall)\n\ndown [ FallRight | Ridable ] -> [ PlayerPinkRight | Ridable ]\ndown [ FallRight no Transition | no Ridable ] -> [ > FallRight | ]\ndown [ PinkRight no Transition | no Ridable ] -> [ > FallRight | ] sfx7\n\ndown [ FallLeft | BGPink ] -> [ PlayerPinkLeft | BGPink ]\ndown [ FallLeft | Block ] -> [ PlayerPinkLeft | Block ]\ndown [ FallLeft no Transition | no Ridable ] -> [ > FallLeft | ]\ndown [ PinkLeft no Transition | no Ridable ] -> [ > FallLeft | ] sfx7\n\n[ FallBlock ] -> [ ]\ndown [ Block no Transition | no ColBGPink no Block no Player ] [ PlayerFall ] -> [ > Block | ] [ PlayerFall FallBlock ] sfx1\n\n(ZonePink border)\n\n[ AddPinkL ] -> [ ]\n[ RemovePinkL ] -> [ ]\n[ AddPinkR ] -> [ ]\n[ RemovePinkR ] -> [ ]\n\nlate left [ no ZonePink no AddPinkL | ZonePink ] -> [ AddPinkLUD | ZonePink ]\nlate right [ no ZonePink no AddPinkR | ZonePink ] -> [ AddPinkRUD | ZonePink ]\n\nlate up [ AddPinkLUD | no ZonePink ] -> [ AddPinkLD | ]\nlate up [ AddPinkRUD | no ZonePink ] -> [ AddPinkRD | ]\n\nlate down [ AddPinkLUD | no ZonePink ] -> [ AddPinkLU | ]\nlate down [ AddPinkRUD | no ZonePink ] -> [ AddPinkRU | ]\n\nlate down [ AddPinkLD | no ZonePink ] -> [ | ]\nlate down [ AddPinkRD | no ZonePink ] -> [ | ]\n\nlate left [ ZonePink no RemovePinkL | no ZonePink ] -> [ ZonePink RemovePinkLUD | ]\nlate right [ ZonePink no RemovePinkR | no ZonePink ] -> [ ZonePink RemovePinkRUD | ]\n\nlate up [ RemovePinkLUD | ZonePink ] -> [ RemovePinkLD | ZonePink ]\nlate up [ RemovePinkRUD | ZonePink ] -> [ RemovePinkRD | ZonePink ]\n\nlate down [ RemovePinkLUD | ZonePink ] -> [ RemovePinkLU | ZonePink ]\nlate down [ RemovePinkRUD | ZonePink ] -> [ RemovePinkRU | ZonePink ]\n\nlate down [ RemovePinkLD | ZonePink ] -> [ | ZonePink ]\nlate down [ RemovePinkRD | ZonePink ] -> [ | ZonePink ]\n\nlate right [ RemovePinkRU | AddPinkLU ] -> [ RemovePinkRU | ]\nlate right [ RemovePinkRD | AddPinkLD ] -> [ RemovePinkRD | ]\n\nlate right [ RemovePinkRUD | AddPinkLU ] -> [ RemovePinkRUD | ]\nlate right [ RemovePinkRUD | AddPinkLD ] -> [ RemovePinkRUD | ]\n\nlate left [ RemovePinkLU | AddPinkRU ] -> [ RemovePinkLU | ]\nlate left [ RemovePinkLD | AddPinkRD ] -> [ RemovePinkLD | ]\n\nlate left [ RemovePinkLUD | AddPinkRU ] -> [ RemovePinkLUD | ]\nlate left [ RemovePinkLUD | AddPinkRD ] -> [ RemovePinkLUD | ]\n\nlate left [ AddPinkLUD | RemovePinkRUD ] -> [ | RemovePinkRUD ]\nlate right [ AddPinkRUD | RemovePinkLUD ] -> [ | RemovePinkLUD ]\nlate left [ AddPinkLUD | RemovePinkRU ] -> [ AddPinkLD | RemovePinkRU ]\nlate right [ AddPinkRUD | RemovePinkLU ] -> [ AddPinkRD | RemovePinkLU ]\nlate left [ AddPinkLUD | RemovePinkRD ] -> [ AddPinkLU | RemovePinkRD ]\nlate right [ AddPinkRUD | RemovePinkLD ] -> [ AddPinkRU | RemovePinkLD ]\nlate left [ AddPinkLU | RemovePinkRU ] -> [ | RemovePinkRU ]\nlate right [ AddPinkRU | RemovePinkLU ] -> [ | RemovePinkLU ]\nlate left [ AddPinkLD | RemovePinkRD ] -> [ | RemovePinkRD ]\nlate right [ AddPinkRD | RemovePinkLD ] -> [ | RemovePinkLD ]\n\n(Animation)\n\nright [ > PlayerBlueLeft ] -> [ > PlayerBlueRight ]\nright [ > WalkAnimBL1 ] -> [ > WalkAnimBR1 ]\nright [ > WalkAnimBL2 ] -> [ > WalkAnimBR2 ]\nright [ > WalkAnimBL3 ] -> [ > WalkAnimBR3 ]\n\nleft [ > PlayerBlueRight ] -> [ > PlayerBlueLeft ]\nleft [ > WalkAnimBR1 ] -> [ > WalkAnimBL1 ]\nleft [ > WalkAnimBR2 ] -> [ > WalkAnimBL2 ]\nleft [ > WalkAnimBR3 ] -> [ > WalkAnimBL3 ]\n\n[ WalkAnimBR3 ] -> [ PlayerBlueRight ]\n[ WalkAnimBR2 ] -> [ WalkAnimBR3 ]\n[ WalkAnimBR1 ] -> [ WalkAnimBR2 ]\n[ > PlayerBlueRight ] -> [ > WalkAnimBR1 ]\n\n[ WalkAnimBL3 ] -> [ PlayerBlueLeft ]\n[ WalkAnimBL2 ] -> [ WalkAnimBL3 ]\n[ WalkAnimBL1 ] -> [ WalkAnimBL2 ]\n[ > PlayerBlueLeft ] -> [ > WalkAnimBL1 ]\n\nright [ > PlayerPinkLeft ] -> [ > PlayerPinkRight ]\nright [ > WalkAnimPL1 ] -> [ > WalkAnimPR1 ]\nright [ > WalkAnimPL2 ] -> [ > WalkAnimPR2 ]\nright [ > WalkAnimPL3 ] -> [ > WalkAnimPR3 ]\n\nleft [ > PlayerPinkRight ] -> [ > PlayerPinkLeft ]\nleft [ > WalkAnimPR1 ] -> [ > WalkAnimPL1 ]\nleft [ > WalkAnimPR2 ] -> [ > WalkAnimPL2 ]\nleft [ > WalkAnimPR3 ] -> [ > WalkAnimPL3 ]\n\n[ WalkAnimPR3 ] -> [ PlayerPinkRight ]\n[ WalkAnimPR2 ] -> [ WalkAnimPR3 ]\n[ WalkAnimPR1 ] -> [ WalkAnimPR2 ]\n[ > PlayerPinkRight ] -> [ > WalkAnimPR1 ]\n\n[ WalkAnimPL3 ] -> [ PlayerPinkLeft ]\n[ WalkAnimPL2 ] -> [ WalkAnimPL3 ]\n[ WalkAnimPL1 ] -> [ WalkAnimPL2 ]\n[ > PlayerPinkLeft ] -> [ > WalkAnimPL1 ]\n\n[ stationary Player ] [ stationary GhostBlockAnim5 ] -> [ Player ] [ action GhostBlock ]\n[ stationary Player ] [ stationary GhostBlockAnim4 ] -> [ Player ] [ action GhostBlockAnim5 ]\n[ stationary Player ] [ stationary GhostBlockAnim3 ] -> [ Player ] [ action GhostBlockAnim4 ]\n[ stationary Player ] [ stationary GhostBlockAnim2 ] -> [ Player ] [ action GhostBlockAnim3 ]\n[ stationary Player ] [ stationary GhostBlockAnim1 ] -> [ Player ] [ action GhostBlockAnim2 ]\n[ stationary Player ] [ stationary GhostBlock ] -> [ Player ] [ action GhostBlockAnim1 ]\n\n[ GhostPlayerAbove ] -> [ ]\nlate up [ GPAboveAnim | ] -> [ GPAboveAnim | GhostPlayerAbove ]\n\n[ stationary Player ] [ stationary GhostPlayerAnim5 ] -> [ Player ] [ action GhostPlayer ]\n[ stationary Player ] [ stationary GhostPlayerAnim4 ] -> [ Player ] [ action GhostPlayerAnim5 ]\n[ stationary Player ] [ stationary GhostPlayerAnim3 ] -> [ Player ] [ action GhostPlayerAnim4 ]\n[ stationary Player ] [ stationary GhostPlayerAnim2 ] -> [ Player ] [ action GhostPlayerAnim3 ]\n[ stationary Player ] [ stationary GhostPlayerAnim1 ] -> [ Player ] [ action GhostPlayerAnim2 ]\n[ stationary Player ] [ stationary GhostPlayer ] -> [ Player ] [ action GhostPlayerAnim1 ]\n\n[ Background Transition1 ] [ Background no Transition1 ] -> [ Background Transition1 ] [ Background Transition1 ]\n[ stationary Transition9 ] -> [ ] again\n[ stationary Transition8 ] -> [ action Transition9 ] again\n[ stationary Transition7 ] -> [ action Transition8 ] again\n[ stationary Transition6 ] -> [ action Transition7 ] again\n[ stationary Transition5 ] -> [ action Transition6 ] again\n[ stationary Transition4 ] -> [ action Transition5 ] again\n[ stationary Transition3 ] -> [ action Transition4 ] again\n[ stationary Transition2 ] -> [ action Transition3 ] again\n[ stationary Transition1 ] -> [ action Transition2 ] again\n\n[ Background TransitionR1 ] [ Background no TransitionR1 ] -> [ Background TransitionR1 ] [ Background TransitionR1 ]\n[ stationary TransitionR9 ] -> [ ] again\n[ stationary TransitionR8 ] -> [ action TransitionR9 ] again\n[ stationary TransitionR7 ] -> [ action TransitionR8 ] again\n[ stationary TransitionR6 ] -> [ action TransitionR7 ] again\n[ stationary TransitionR5 ] -> [ action TransitionR6 ] again\n[ stationary TransitionR4 ] -> [ action TransitionR5 ] again\n[ stationary TransitionR3 ] -> [ action TransitionR4 ] again\n[ stationary TransitionR2 ] -> [ action TransitionR3 ] again\n[ stationary TransitionR1 ] -> [ action TransitionR2 ] again\n\n(Level start)\n\n[ Target no LevelStart ] [ Background no Transition ] -> [ Target ] [ Background Transition5 ]\n[ Target Transition9 no LevelStart ] -> [ Target LevelStart ]\n\n(Win)\n\ndown [ PlayerPink no WinAnim Target no FallBlock | Ridable ]-> [ PlayerPink WinAnim1 Target | Ridable ] sfx8\n\n[ WinAnim6 ] [ Background no Transition ] -> [ WinAnim6 ] [ Background Transition1 ]\n[ WinAnim5 ] -> [ WinAnim6 ]\n[ WinAnim4 ] -> [ WinAnim5 ]\n[ WinAnim3 ] -> [ WinAnim4 ]\n[ WinAnim2 ] -> [ WinAnim3 ]\n[ WinAnim1 ] -> [ WinAnim2 ]\n\n[ > Player WinAnim ] -> cancel\n[ action Player WinAnim ] -> cancel\n\n[ Target WinAnim6 Transition5 ] -> [ Target WinAnim6 Transition5 Winable ]\n\n(tutorial)\n\n[ Crate PressX no TCount ] [ PressX ] -> [ Crate TCount1 ] [ ]\n\n[ TCount5 ] -> [ ]\n[ TCount4 ] -> [ TCount5 ] message X or spacebar to switch characters.\n[ TCount3 ] -> [ TCount4 ]\n[ TCount2 ] -> [ TCount3 ]\n[ TCount1 ] -> [ TCount2 ]\n\n[ > Player ] [ Crate PressX ] -> [ Player ] [ Crate PressX ]\n[ > Player ] [ Crate TCount ] -> [ Player ] [ Crate TCount ]\n[ PlayerPink ] [ PressX ] -> [ PlayerPink ] [ ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Winable \n\n======= \nLEVELS\n=======\n\n\n(Tutorial)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,!xxxxxxxxxo,,,..'''p++++++++++'''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxxx\"xxxxxx,,,..'''p+①+①++++++'''.\n.,,,,,,x,xxxoxx,,,..''''''+'++++++'''.\n.,,,xxxxxxxx,xx,,,..'''++++++++'++'''.\n.,,,xxxxxxxxxxx,,,..'''+++①+++++++'''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,!xxxxxxxx,,,,..''''p++++++++''''.\n.,,,,,,,xxxxxx,,,,..'''''''++++++''''.\n.,,,,,,xxxxxox,,,,..''''''+++++++''''.\n.,,,,xxxxxx\",x,,,,..''''++++++①'+''''.\n.,,,,xx\"xxx\"xx,,,,..''''++①+++①++''''.\n.,,,,xx\"x,,,,,,,,,..''''++①+'''''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxx!xxxx,,,,..''''++++p++++''''.\n.,,,,xxxx\"xxxx,,,,..''''++++①++++''''.\n.,,,,x,,,,,,,x,,,,..''''+'''''''+''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxx\"xxx,,,,..''''+++++①+++''''.\n.,,,,xxx\"o,\"xx,,,,..''''+++①+'①++''''.\n.,,,,xx\",xx\"xx,,,,..''''++①'++①++''''.\n.,,,,xx\"xx,,,,,,,,..''''++①++''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxox,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xx!xx\"xx,,,,,,..'''++p++①++''''''.\n.,,,,,,,,,,,,$,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(二つでスタックのチュートリアル)\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxx!xxxoxxx,,,..'''+++%+++++++'''.\n.,,,,xx\"x\"xxxx,,,,..''''+++++++++''''.\n.,,,,#########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,b,*,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.xxxxxxxxxxxxxxxxx..+++++++++++++++++.\n.x,,,,,,,,,,,,,,,x..+'''''''''''''''+.\n.x,,,,,,b,*,,,,,,x..+''''''''+''''''+.\n.x,,xxxxxxxxxxx,,x..+''+++++++++++''+.\n.x,,xxx!xxxoxxx,,x..+''+++%+++++++''+.\n.x,,,xx\"x\"xxxx,,,x..+'''+++++++++'''+.\n.x,,,,,,,,,,,,,,,x..+'''''''''''''''+.\n.xxxxxxxxxxxxxxxxx..+++++++++++++++++.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(一個なら押しのけて登れる)\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,xxxxxx,,,,,..''''''++++++'''''.\n.,,,,,,x\",x\"x,,,,,..''''''++'+++'''''.\n.,,,,,,,!,,,x,,,,,..'''''''%'''+'''''.\n.,,,,#b,,,*,x,,,,,..'''''''''''+'''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,oxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,,,,xxxxxx,,,,..'''''''++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage Reach the heart to win.\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,x!xxxxxox,,,,..''''+p+++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage You can climb one square.\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxox,,,,..''''+石+++++++''''.\n.,,,,,!,,,,,,,,,,,..'''''p'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage You can only push one block at a time.\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxox,,,,..''''+++++++++''''.\n.,,,,x!\"xxxx\"x,,,,..''''+p石++++石+''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 1. Two Worlds\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,!xxx,b,xxxxxo,,..''%+++'''++++++''.\n.,,,xxx,,,xxxx,,,,..'''+++'''++++''''.\n.,,,xxx,,,xxxx,,,,..'''+++'''++++''''.\n.,,,xxx,,,xxx,,,,,..'''+++'''+++'''''.\n.,,,xxxx*x\"xx,,,,,..'''++++'++++'''''.\n.,,,xxx,,,,,,,,,,,..'''+++'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,文,,,,,,,,..'''''''''''''''''.\n.,,,!xxx,,,xxxo,,,..'''%+++'''++++'''.\n.,,,,xxxx*xxx,,,,,..''''++++'+++'''''.\n.,,,,xxx,,,xx,,,,,..''''+++'''++'''''.\n.,,,,,,,,文,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 2. Delivery\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,oxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,,xxxxxx,,,,,..''''''++++++'''''.\n.,,,,,,x!x\"xx,,,,,..''''''+%++++'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,b*,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 3. One-way Tickets\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx,,,,,,,,,,,..''''++'''''''''''.\n.,,,,x\",,,b*,,,,,,..''''++'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx########,,,..''''++'''''''''''.\n.,,,,xxxxxxxxxx,,,..''''++++++++++'''.\n.,,,,xxxxxxxxxx,,,..''''++++++++++'''.\n.,,,,xxx!xxxoxx,,,..''''+++%++++++'''.\n.,,,,#xx\"x\"xxxx,,,..'''''+++++++++'''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(message Brain training\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,b*,,x\"x,,,,,,,..'''''''+++'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxx!xxxxxxx,,,..'''+++%+++++++'''.\n.,,,xxx,,,,,xxx,,,..'''+++'''''+++'''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxxxxx\"xxxx,,,..'''+++++++++++'''.\n.,,,xxxx\"o,\"xxx,,,..'''++++++'++++'''.\n.,,,xxx\",xx\"xx,,,,..'''++++'+++++''''.\n.,,,,xx\"xx####,,,,..''''+++++''''''''.\n.,,,,######,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(message 2 x 3\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,##,,,,,##,,,,..'''''''''''''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#,\"x\"x\",#,,,,..''''''+++++''''''.\n.,,,,#,,b,*,,#,,,,..'''''''''''''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,xxxxo,,,,,,..''''''+++++''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,xx!xx,,,,,,..''''''++%++''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,##,,,,,##,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 4. 3 x 6\n\n\n......................................\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,b*,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxo,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,!xxxxx,,,,,,..'''''%+++++''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,##########,,,,..'''''''''''''''''.\n.,,,#,,,,,,,,#,,,,..'''''''''''''''''.\n.,,,#,\"!\"x\"x,#,,,,..'''''+p++++''''''.\n.,,,#b,,,*,,,#,,,,..'''''''''''''''''.\n.,,,#,xxxxxx##,,,,..'''''++++++''''''.\n.,,,#,*,,,,,,o,,,,..''''''''''''+''''.\n.,,,#,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,,,,,,,,#,,,,..'''''''''''''''''.\n.,,,##########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 5. Too Small to Climb\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,ox\"#,,,,,,..'''''''+++'''''''.\n.,,,,,,,,,\"#,,,,,,..'''''''''+'''''''.\n.,,,,,,,x,\"#,,,,,,..'''''''+'+'''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,!b*,,,,,,,..'''''''%'''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,b@,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,@,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,oxxx,,,,,,,..''''''++++'''''''.\n.,,,,,#,xxx,,,,,,,..'''''''+++'''''''.\n.,,,,,!,xxx,,,,,,,..'''''%'+++'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 6. I Hope That's Enough\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,xox,,,,,..''''''''++++'''''.\n.,,,,,,,,,xxx\"xx,,..''''''''+++++++''.\n.,,,,,,,,,,,,\"xx,,..''''''''''''+++''.\n.,,######xxxx\"xx,,..''''''''+++++++''.\n.,,#,,,!#x\",,,,,,,..''''''%'++'''''''.\n.,,#,*,,xx\"x,*,*,,..'''''''++++''''''.\n.,,####,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,##,,,,,,b,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 7. The Larger, the Better\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,#,#,#,#,#,#,..'''''''''''''''''.\n.,,,,,xxxxxo,,,,,,..'''''++++++''''''.\n.,,,,,xx\",,,,,,,,,..'''''+++'''''''''.\n.,,,,,xx\",,,,,,,,,..'''''+++'''''''''.\n.,,,,,!x\",@@@@,,,,..'''''%++'''''''''.\n.,#,#,#,#,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,b,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 8. Cut the Screen\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,oxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,@@@@@@@,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"x#x,,,,,..'''''+++++'+'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,x!x\"xxx,,,,,..'''''+%+++++'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,oxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,2222222,,,,,..'''''''''''''''''.\n.,x,,,xxx\"xxx,,,,,..'+'''+++++++'''''.\n.,,,,,@@@@@@@,,,,,..'''''''''''''''''.\n.,,,,,,xxxx!x,,,,,..''''''++++%+'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 9. Transfer\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.#################..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,xx,,,2b@@@,,o,,..''++''''''''''+''.\n.,,!\",222,@,,,,x,,..''%+''''''''''+''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.#################..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 10. Do You Like Math Puzzles?\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,b,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,\"@#xx#xx#xx#x#..'''+''++++++++'+'.\n.,,\"\"@#xxxxxxxxxx#..''++''++++++++++'.\n.,,\"\"@#xx,xx,xx,o#..''++''++'++'++'+'.\n.,,,,@#!x,xx,xx,x#..''''''%+'++'++'+'.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 11. Haste Makes Waste\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,xxx,,,,,,,..'''''''+++'''''''.\n.,,xxx,,,,,,,xxx,,..''+++'''''''+++''.\n.,,xx\",,@@@,,xox,,..''+++'''''''+++''.\n.,,!x\",,@@@,,xxx,,..''%++'''''''+++''.\n.,,###,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 12. Neither Road Leads to Rome\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,#############,,,..'''''''''''''''''.\n.,#,,,,!\"\"\"x\"x###,..''''''%+++++++++'.\n.,#b@@,,,,,,,,xo#,..'''''''''''''+++'.\n.,#,,,,xxxxxx,xx#,..''''''++++++'+++'.\n.,#,,,,,,,,,,,###,..'''''''''''''''''.\n.,#############,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 13. This Elevator Will Be Taking No Passengers\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,o\"\"\"\"\",,,,,,..'''''++++++''''''.\n.,,b*,,\"\"\"\"\",,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.####xxx,,,xxx####..''''+++'''+++''''.\n.,,,,xxx@@@xxx,,,,..''''+++'''+++''''.\n.,,,,xxx@@@xxx,,,,..''''+++'''+++''''.\n.,,,,xxx,,,xxx,,,,..''''+++'''+++''''.\n.,,,,xxx,,,xxx,,,,..''''+++'''+++''''.\n.,,,,x!x,,,xxx,,,,..''''+%+'''+++''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................)\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx\"\"\"\"\"xx,,,,..''''+++++++++''''.\n.,b*,xx\"\"\"\"\"xx,,,,..''''+++++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#oxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#,xx@@@xxx#,,,..'''''++'''+++''''.\n.,,,#xxx@@@xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#x!x,,,xxx#,,,..''''+%+'''+++''''.\n.,,,###,,,,,###,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,xxxx\"\"\"xx,,,,..''''+++++++++''''.\n.,,,,xxx\"\"\"\"xx,,,,..''''+++++++++''''.\n.,b*,xx,\"\"\"\"xx,,,,..''''++'++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#oxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#,xx@@@xxx#,,,..'''''++'''+++''''.\n.,,,#xxx@@@xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#x!x,,,xxx#,,,..''''+%+'''+++''''.\n.,,,###,,,,,###,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 14. 3 x 21\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,#,,xxx\"\"\"o,,..''''''''+++++++''.\n.,,,,@@@,xxx\"\"\",,,..''''''''++++++'''.\n.,,,,@@@#\"\"\"\"\"\",,,..''''''''++++++'''.\n.,,,#@@@,\"\"\"\"\"\",,,..''''''''++++++'''.\n.,,,,@@@,\"\"\"\"\"\",#,..''''''''++++++'''.\n.,,,,@@@,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#,,,,b,,22,,,,..'''''''''''''''''.\n.,,,x!,,,,,,,2,,,,..'''+%''''''''''''.\n.,,,,#,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,#,#,#,#,#,..'''''''''''''''''.\n.,,,,,#,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\nmessage Thanks for playing!\n\n\n(......................................\n.,,,,,#,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#o,b,#,,,,,,..''''''+''''''''''.\n.,,,,,,,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#,*,*#,,,,,,..'''''''''''''''''.\n.,,,,,#,@@@#,,,,,,..'''''''''''''''''.\n.,,,,,#,@@@##,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,##,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,x,,#,,,,,..''''''''%''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,b,,,,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,o,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,\",,,,,,#,,..'''''''+'''''''''.\n.,*,*,*,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,#,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,@@,@@@#,,,,,,#,,..'''''''''''''''''.\n.,@@,,@@,,,,,,,,,,..'''''''''''''''''.\n.,@@@@@@#,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,#,!,#,#,,..''''''''''%''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,##!######,,,,..''''''%''''''''''.\n.,,,,#,,,,,,o#,,,,..'''''''''''+'''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#,,@b2,,#,,,,..'''''''+'+'''''''.\n.,,,,#,@@,22,#,,,,..''''''++'++''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,x\"\"\"x,,,,,,..''''''+++++''''''.\n.,,,,,,\"\"\"\"\",,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,#,xxx,,,,,oxx,#,..'''+++'''''+++'''.\n.,#,xxx,222,xxx,#,..'''+++'''''+++'''.\n.,#,xxx,,,,,xxx,#,..'''+++'''''+++'''.\n.,#,xxx,@@,,xxx,#,..'''+++'''''+++'''.\n.,#,x!x,,,,,xxx,#,..'''+%+'''''+++'''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,\"o,,#,,,..'''''''''++''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#xxx,,,,xxx#,,,..'''+++''''+++''''.\n.,,#xxx,,,,\"xx#,,,..'''+++''''+++''''.\n.,,#xxx,,,,\"xx#,,,..'''+++''''+++''''.\n.,,#xxx,2@,\"xx#,,,..'''+++''''+++''''.\n.,,#!xx22@@\"xx#,,,..'''%++''''+++''''.\n.,,#,,,2,,@,,,#,,,..'''''''''''''''''.\n.,,#,,,2,,@,,,#,,,..'''''''''''''''''.\n.,,#,b,22@@,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n......................................)",["tick","tick","tick","tick","tick","tick","tick","tick",2,"tick",2,"tick","tick",2,"tick","tick","tick",2,"tick",2,"tick","tick","tick","tick","tick","tick","tick",1,"tick","tick",2,"tick","tick","tick",3,"tick","tick","tick","tick",1,"tick",4,"tick","tick","tick",3,"tick",3,"tick","tick","tick",3,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background colbgpink outline:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background bgblue:1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,background bgblue zonepurple:2,background bgblue zonepurplebelow:3,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,2,2,2,3,1,1,1,1,0,0,1,1,1,1,1,1,2,2,background bgblue ghostplayeranim1 zonepurple:4,3,1,1,1,1,0,0,1,\n1,1,1,1,1,2,2,2,3,1,1,1,1,0,0,1,1,1,1,1,1,1,2,3,background bgblue stayblueleft:5,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,2,background bgblue crateabove zonepurplebelow:6,background bgblue crate crateline:7,background bgblue cratebelow:8,1,1,1,0,0,1,1,1,1,1,1,2,2,2,3,1,1,1,\n1,0,0,1,1,1,1,1,1,2,2,2,3,1,1,1,1,0,0,1,1,1,1,1,1,2,3,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,background ghosttarget zonepurple:9,3,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background bgpink colbgpink:10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,\n10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,background bgpink climbable colbgpink:11,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,background removepinklud zonepink:12,addpinkru background bgpink climbable colbgpink:13,11,10,10,\n10,10,10,0,0,10,10,10,10,10,10,background zonepink:14,14,background removepinkld zonepink:15,10,10,10,10,10,0,0,10,10,10,10,10,10,14,14,background playerpinkright zonepink:16,10,10,10,10,10,0,0,10,\n10,10,10,10,10,background removepinkru zonepink:17,14,background removepinkrd zonepink:18,10,10,10,10,10,0,0,10,10,10,10,10,10,addpinkld background bgpink climbable colbgpink:19,background removepinkrud zonepink:20,addpinklu background bgpink climbable colbgpink:21,10,10,10,10,10,0,0,10,10,10,10,10,10,10,\n11,10,11,10,10,10,10,0,0,10,10,10,10,10,10,addpinkrd background bgpink climbable colbgpink:22,12,13,background removepinklud removepinkrud zonepink:23,10,10,10,10,0,0,10,10,10,10,10,10,background removepinklu zonepink:24,14,15,11,10,10,10,\n10,0,0,10,10,10,10,10,10,14,14,18,10,10,10,10,10,0,0,10,10,10,10,10,10,14,21,11,10,10,10,10,10,0,0,10,10,10,\n10,10,10,background levelstart removepinkrud target zonepink:25,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,11,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,10,10,10,\n10,10,10,10,10,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n","7","1627769807359.2505"] ], [ `gallery game: mad queens`, - ["title Mad Queens\nauthor Chris Pickel\nhomepage https://sfiera.net/\ntext_color DarkRed\nbackground_color \t Gray\nkey_repeat_interval 0.25\nagain_interval 0.10\nnoaction\nrequire_player_movement\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBlack \n#222\n\nWhite .\n#ddd\n\nAlice Player @ \nBlue Brown White Yellow\n.333.\n.313.\n02020\n30203\n.000.\n\nKing K\nRed DarkRed\n..0..\n.010.\n..0..\n00001\n.....\n\nQueen Q\nRed DarkRed\n0.0.1\n.001.\n..1..\n00001\n.....\n\nRook R\nRed DarkRed\n0.0.1\n00001\n.111.\n00001\n.....\n\nBishop B\nRed DarkRed\n..0..\n.101.\n.010.\n00001\n.....\n\nKnight N\nRed DarkRed\n.101.\n0000.\n..01.\n00001\n.....\n\nPawn P\nRed DarkRed\n.....\n..0..\n..0..\n.001.\n.....\n\nThreatened\nRed\n.....\n.....\n..0..\n.....\n.....\n\nDying\nRed\n\nHorizontalThreat\nTransparent\n\nVerticalThreat\nTransparent\n\nDownRightThreat\nTransparent\n\nDownLeftThreat\nTransparent\n\nUpLeftThreat\nTransparent\n\nUpRightThreat\nTransparent\n\nFurtherRight\nTransparent\n\nFurtherDownRight\nTransparent\n\nFurtherDown\nTransparent\n\nFurtherDownLeft\nTransparent\n\nFurtherLeft\nTransparent\n\nFurtherUpLeft\nTransparent\n\nFurtherUp\nTransparent\n\nFurtherUpRight\nTransparent\n\n=======\nLEGEND\n=======\n\nBackground = Black or White\n\nPiece = King or Queen or Rook or Bishop or Knight or Pawn\nSolid = Alice or Piece\n\nDiagonally = Bishop or Queen\nOrthogonally = Rook or Queen\nRightward = Orthogonally or FurtherRight\nDownRightward = Diagonally or FurtherDownRight\nDownward = Orthogonally or FurtherDown\nDownLeftward = Diagonally or FurtherDownLeft\nLeftward = Orthogonally or FurtherLeft\nUpLeftward = Diagonally or FurtherUpLeft\nUpward = Orthogonally or FurtherUp\nUpRightward = Diagonally or FurtherUpRight\n\nFurther = FurtherRight or FurtherDownRight or FurtherDown or FurtherDownLeft or FurtherLeft or FurtherUpLeft or FurtherUp or FurtherUpRight\nThreat = HorizontalThreat or VerticalThreat or DownRightThreat or DownLeftThreat or UpLeftThreat or UpRightThreat\nTemporary = Threat or Further\n\n=======\nSOUNDS\n=======\n\nAlice move 93593507\nPiece move 69693707\nAlice destroy 31577701\nPiece destroy 2057504\nstartgame 92634708\nendlevel 63318705\nendgame 6260903\nundo 86245107\nrestart 2571701\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSolid\nHorizontalThreat\nVerticalThreat\nDownRightThreat\nDownLeftThreat\nUpLeftThreat\nUpRightThreat\nFurther\nThreatened\nDying\n\n======\nRULES \n====== \n\n[> Alice | Piece] -> [> Alice | > Piece]\n\nlate [Dying Solid] -> []\nlate [Threatened] -> []\n\nlate up [Pawn |] -> [Pawn | HorizontalThreat]\nlate vertical [King |] -> [King | Threatened HorizontalThreat]\nlate horizontal [King |] -> [King | Threatened VerticalThreat]\nlate vertical [Knight | |] -> [Knight | | HorizontalThreat]\nlate horizontal [Knight | |] -> [Knight | | VerticalThreat]\n\nlate horizontal [HorizontalThreat |] -> [HorizontalThreat | Threatened]\nlate vertical [VerticalThreat |] -> [VerticalThreat | Threatened]\n\nlate right [Rightward |] -> [Rightward | Threatened FurtherRight]\nlate down [Downward |] -> [Downward | Threatened FurtherDown]\nlate left [Leftward |] -> [Leftward | Threatened FurtherLeft]\nlate up [Upward |] -> [Upward | Threatened FurtherUp]\n\nlate down [DownRightward |] -> [DownRightward | DownRightThreat]\n+ late right [DownRightThreat |] -> [DownRightThreat | Threatened FurtherDownRight]\nlate down [DownLeftward |] -> [DownLeftward | DownLeftThreat]\n+ late left [DownLeftThreat |] -> [DownLeftThreat | Threatened FurtherDownLeft]\nlate up [UpLeftward |] -> [UpLeftward | UpLeftThreat]\n+ late left [UpLeftThreat |] -> [UpLeftThreat | Threatened FurtherUpLeft]\nlate up [UpRightward |] -> [UpRightward | UpRightThreat]\n+ late right [UpRightThreat |] -> [UpRightThreat | Threatened FurtherUpRight]\n\nlate [Temporary] -> []\n\nlate [Threatened Solid] -> [Dying Solid] again\n\n(Alice wins in the top row)\nlate up [||||||| Alice no Dying] -> win\n\n(Make the checkerboard pattern)\nlate right down [White | White] -> [White | Black]\nlate down [Black | Black] -> [Black | White]\n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\n(0)\n........\n........\n........\n........\n........\n........\n........\n...@....\n\n(1)\n........\n........\n........\n........\n........\n........\nPPPPPPPP\n...@....\n\n(2)\n........\n.N......\n....N...\n.N.....N\n........\n.....N..\n........\n...@....\n\n(3)\n........\n....N...\n...N....\n......N.\n.N......\n........\n.P.PPPPP\n...@....\n\n(4)\n......R.\n.R......\n........\n........\n........\n........\nP.PPPP.P\n...@....\n\n(5)\n......R.\n.....R..\n....R...\n.N......\n........\n........\nPPPP...P\n...@....\n\n(6)\n......B.\n........\n..B.....\n........\n........\n........\n.PN..P.N\n...@....\n\n(7)\n.....Q..\n........\n........\n...N....\nR.......\n........\n.PPPP.PP\n...@....\n\n(8)\n...K....\n.....B.N\n........\nR.......\n........\n...N....\n......PP\n...@....\n\n(9)\n.B......\n......Q.\n........\n........\n....B...\n........\nP..PPP..\n...@....\n\n(10)\n.K......\n.....N..\n.BB...N.\n........\n........\n........\nPPPPP..P\n...@....\n", [0, 2, 3, 3, 0, 1, 3, 0, 0, 0, 1, 0, 0, "undo"], "threatened white:0,black threatened:1,white:2,black:3,2,3,pawn white:4,3,\n1,rook white:5,1,0,1,0,1,0,\n0,1,2,3,2,1,4,3,\n1,0,3,2,3,0,black pawn:6,2,\n0,1,alice white:7,3,2,1,2,3,\n1,0,3,2,3,2,3,2,\n5,1,0,1,0,1,0,1,\n1,0,3,2,3,2,6,2,\n", 4, "1627769866824.53"] + ["title Mad Queens\nauthor Chris Pickel\nhomepage https://sfiera.net/\ntext_color DarkRed\nbackground_color \t Gray\nkey_repeat_interval 0.25\nagain_interval 0.10\nnoaction\nrequire_player_movement\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBlack \n#222\n\nWhite .\n#ddd\n\nAlice Player @ \nBlue Brown White Yellow\n.333.\n.313.\n02020\n30203\n.000.\n\nKing K\nRed DarkRed\n..0..\n.010.\n..0..\n00001\n.....\n\nQueen Q\nRed DarkRed\n0.0.1\n.001.\n..1..\n00001\n.....\n\nRook R\nRed DarkRed\n0.0.1\n00001\n.111.\n00001\n.....\n\nBishop B\nRed DarkRed\n..0..\n.101.\n.010.\n00001\n.....\n\nKnight N\nRed DarkRed\n.101.\n0000.\n..01.\n00001\n.....\n\nPawn P\nRed DarkRed\n.....\n..0..\n..0..\n.001.\n.....\n\nThreatened\nRed\n.....\n.....\n..0..\n.....\n.....\n\nDying\nRed\n\nHorizontalThreat\nTransparent\n\nVerticalThreat\nTransparent\n\nDownRightThreat\nTransparent\n\nDownLeftThreat\nTransparent\n\nUpLeftThreat\nTransparent\n\nUpRightThreat\nTransparent\n\nFurtherRight\nTransparent\n\nFurtherDownRight\nTransparent\n\nFurtherDown\nTransparent\n\nFurtherDownLeft\nTransparent\n\nFurtherLeft\nTransparent\n\nFurtherUpLeft\nTransparent\n\nFurtherUp\nTransparent\n\nFurtherUpRight\nTransparent\n\n=======\nLEGEND\n=======\n\nBackground = Black or White\n\nPiece = King or Queen or Rook or Bishop or Knight or Pawn\nSolid = Alice or Piece\n\nDiagonally = Bishop or Queen\nOrthogonally = Rook or Queen\nRightward = Orthogonally or FurtherRight\nDownRightward = Diagonally or FurtherDownRight\nDownward = Orthogonally or FurtherDown\nDownLeftward = Diagonally or FurtherDownLeft\nLeftward = Orthogonally or FurtherLeft\nUpLeftward = Diagonally or FurtherUpLeft\nUpward = Orthogonally or FurtherUp\nUpRightward = Diagonally or FurtherUpRight\n\nFurther = FurtherRight or FurtherDownRight or FurtherDown or FurtherDownLeft or FurtherLeft or FurtherUpLeft or FurtherUp or FurtherUpRight\nThreat = HorizontalThreat or VerticalThreat or DownRightThreat or DownLeftThreat or UpLeftThreat or UpRightThreat\nTemporary = Threat or Further\n\n=======\nSOUNDS\n=======\n\nAlice move 93593507\nPiece move 69693707\nAlice destroy 31577701\nPiece destroy 2057504\nstartgame 92634708\nendlevel 63318705\nendgame 6260903\nundo 86245107\nrestart 2571701\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSolid\nHorizontalThreat\nVerticalThreat\nDownRightThreat\nDownLeftThreat\nUpLeftThreat\nUpRightThreat\nFurther\nThreatened\nDying\n\n======\nRULES \n====== \n\n[> Alice | Piece] -> [> Alice | > Piece]\n\nlate [Dying Solid] -> []\nlate [Threatened] -> []\n\nlate up [Pawn |] -> [Pawn | HorizontalThreat]\nlate vertical [King |] -> [King | Threatened HorizontalThreat]\nlate horizontal [King |] -> [King | Threatened VerticalThreat]\nlate vertical [Knight | |] -> [Knight | | HorizontalThreat]\nlate horizontal [Knight | |] -> [Knight | | VerticalThreat]\n\nlate horizontal [HorizontalThreat |] -> [HorizontalThreat | Threatened]\nlate vertical [VerticalThreat |] -> [VerticalThreat | Threatened]\n\nlate right [Rightward |] -> [Rightward | Threatened FurtherRight]\nlate down [Downward |] -> [Downward | Threatened FurtherDown]\nlate left [Leftward |] -> [Leftward | Threatened FurtherLeft]\nlate up [Upward |] -> [Upward | Threatened FurtherUp]\n\nlate down [DownRightward |] -> [DownRightward | DownRightThreat]\n+ late right [DownRightThreat |] -> [DownRightThreat | Threatened FurtherDownRight]\nlate down [DownLeftward |] -> [DownLeftward | DownLeftThreat]\n+ late left [DownLeftThreat |] -> [DownLeftThreat | Threatened FurtherDownLeft]\nlate up [UpLeftward |] -> [UpLeftward | UpLeftThreat]\n+ late left [UpLeftThreat |] -> [UpLeftThreat | Threatened FurtherUpLeft]\nlate up [UpRightward |] -> [UpRightward | UpRightThreat]\n+ late right [UpRightThreat |] -> [UpRightThreat | Threatened FurtherUpRight]\n\nlate [Temporary] -> []\n\nlate [Threatened Solid] -> [Dying Solid] again\n\n(Alice wins in the top row)\nlate up [||||||| Alice no Dying] -> win\n\n(Make the checkerboard pattern)\nlate right down [White | White] -> [White | Black]\nlate down [Black | Black] -> [Black | White]\n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\n(0)\n........\n........\n........\n........\n........\n........\n........\n...@....\n\n(1)\n........\n........\n........\n........\n........\n........\nPPPPPPPP\n...@....\n\n(2)\n........\n.N......\n....N...\n.N.....N\n........\n.....N..\n........\n...@....\n\n(3)\n........\n....N...\n...N....\n......N.\n.N......\n........\n.P.PPPPP\n...@....\n\n(4)\n......R.\n.R......\n........\n........\n........\n........\nP.PPPP.P\n...@....\n\n(5)\n......R.\n.....R..\n....R...\n.N......\n........\n........\nPPPP...P\n...@....\n\n(6)\n......B.\n........\n..B.....\n........\n........\n........\n.PN..P.N\n...@....\n\n(7)\n.....Q..\n........\n........\n...N....\nR.......\n........\n.PPPP.PP\n...@....\n\n(8)\n...K....\n.....B.N\n........\nR.......\n........\n...N....\n......PP\n...@....\n\n(9)\n.B......\n......Q.\n........\n........\n....B...\n........\nP..PPP..\n...@....\n\n(10)\n.K......\n.....N..\n.BB...N.\n........\n........\n........\nPPPPP..P\n...@....\n",[0,2,3,3,0,1,3,0,0,0,1,0,0,"undo"],"threatened white:0,black threatened:1,white:2,black:3,2,3,pawn white:4,3,\n1,rook white:5,1,0,1,0,1,0,\n0,1,2,3,2,1,4,3,\n1,0,3,2,3,0,black pawn:6,2,\n0,1,alice white:7,3,2,1,2,3,\n1,0,3,2,3,2,3,2,\n5,1,0,1,0,1,0,1,\n1,0,3,2,3,2,6,2,\n",4,"1627769866824.53"] ], [ `gallery game: fall leaves`, - ["title Fall Leaves \nauthor Le Slo\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\nbackground_color #5d3a2f\n\n========\nOBJECTS\n========\n\nPlayerL\n#ad6545 #c96845 #d97865\n0.12.\n.0012\n.1112\n..111\n.....\n\n\nPlayerR\n#c96845 #ad6545 #d97865\n..222\n.0002\n.0100\n1100.\n.....\n\nPlayerN\n#c96845 #ad6545 #d97865\n.02..\n.002.\n11102\n.000.\n.00..\n\nVent1\n#485259 #7a8891 \n1..11\n01.0.\n..0..\n.0.01\n00..0\n\nVent2\n#485259 #7a8891\n..11.\n1.0..\n00001\n..0.0\n.00..\n\nAir0\n#86A2E4\n.0...\n...0.\n.0.0.\n.0...\n...0.\n\nAir1\n#86A2E4\n...0.\n.0.0.\n.0...\n...0.\n.0...\n\nAir2\n#86A2E4\n.0.0.\n.0...\n...0.\n.0...\n...0.\n\nAir3\n#86A2E4\n.0...\n...0.\n.0...\n...0.\n.0.0.\n\nAir4\n#86A2E4\n...0.\n.0...\n...0.\n.0.0.\n.0...\n\nCrate\n#7b865e #3d743d\n.000.\n11100\n11110\n11110\n.111.\n\nTarget\n#5d3a2f\n.....\n.000.\n.0.0.\n.000.\n.....\n\nBackground\n#cfb39b #f5bda2 #e6b3a1 #d9b193 #dba886 #f0cbb9\n01100\n23340\n44425\n42245\n32340\n\nBackground2\n#9d7a5f #5d3a2f\n11111\n11111\n11111\n11111\n11111\n\n\nWall\n#9d7a5f #d07953 #c96845 #906646 #ad6545 #dd906f\n01100\n23340\n44425\n42245\n32340\n\nauxAnim\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = PlayerN\n* = Crate\n@ = Crate and Target\nO = Target\nx = vent1\n` = vent2\ny = Background2\n\nvent = Vent1 or Vent2\ncollision = wall or crate or vent\nair = Air0 or Air1 or Air2 or Air3 or Air4\npushable = vent or crate\nplayer = PlayerL or PlayerR or playerN\n\n======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nvent move 19444907\nstartgame 60152908\nundo 31509107\nrestart 24415508\nshowmessage 5759908\n\nsfx1 37419308\nsfx0 36262108\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBackground2\nauxAnim\nTarget\nair\nPlayer, Wall, Crate, Vent\n\n======\nRULES\n======\n[right playerN no auxAnim] -> [right playerR auxAnim]\n[left playerN no auxAnim] -> [left playerL auxAnim]\n[right playerL no auxAnim] -> [right playerN auxAnim]\n[left playerR no auxAnim] -> [left playerN auxAnim]\n[down player no auxAnim] -> [down playerN auxAnim]\n\n[ up player no air] -> [ player] sfx1\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Player | Vent ] -> [ > Player | > Vent ]\n[ > pushable | pushable] -> [> pushable | > pushable]\n\n\nup[vent | ... | player air | no collision] -> [vent | ... | up player | no collision]\n\n(animations)\nlate [vent1] -> [vent2 auxAnim]\nlate [vent2 no auxAnim] -> [vent1]\n\n\nlate [air crate ] -> [crate]\nlate down[air | no air no vent] -> [ | ]\n\nlate [air0 no auxAnim] -> [ air1 auxAnim]\nlate [air1 no auxAnim] -> [ air2 auxAnim]\nlate [air2 no auxAnim] -> [ air3 auxAnim]\nlate [air3 no auxAnim] -> [ air4 auxAnim]\nlate [air4 no auxAnim] -> [ air0 auxAnim]\n\nlate [ auxAnim ] -> []\n\nstartLoop\nlate up[vent | no air no collision] -> [vent | Air0]\nlate up[air0 | no air no collision] -> [air0 | air1]\nlate up[air1 | no air no collision] -> [air1 | air2]\nlate up[air2 | no air no collision] -> [air2 | air3]\nlate up[air3 | no air no collision] -> [air3 | air4]\nlate up[air4 | no air no collision] -> [air4 | air0]\nendLoop\n\nlate up[vent | ... | player air | no collision] -> again sfx0\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n(##########\n#........#\n#..#.*...#\n#..p.#...#\n#.x....#.#\n#.....x..#\n#...x....#\n#..#o#...#\n#..###...#\n##########)\n\n\n\n(SOLVABLE)\n\nmessage 7 leaves left\n\n########\n#.p....#\n#...*..#\n#.*...`#\n#.o...##\n#...o.#y\n#.....#y\n#######y\n\nmessage 6 leaves left\n\n##########\n#........#\n#.*..p...#\n#.....o..#\n#.*o.....#\n#.....o..#\n#.*......#\n#........#\n###`##`###\nyy######yy\n\nmessage 5 leaves left\n\nyy#######\n###.....#\n#.....o.#\n#.*..*o.#\n#.p.....#\n#....*###\n##....#yy\ny##...#yy\nyy#xxx#yy\nyy#####yy\n\nmessage 4 leaves left\n\nyyy#######yyy\n####..p..####\n#.....#.....#\n#..*..#.....#\n#..#.....#o.#\n#...#.......#\n###...x...###\nyy####`####yy\nyyyyy###yyyyy\n\nmessage 3 leaves left\n\ny#########y\ny#.#.#.#.#y\n##.......##\n#..p......#\n#..*..#.o.#\n#..x......#\n#..x......#\n#..x......#\n###########\n\nmessage 2 leaves left\n\n##########\n#.....#o.#\n#.#p.....#\n#.....#..#\n#..*.....#\n#....x#..#\n#........#\n#........#\n#.x......#\n##########\n\nmessage 1 leaf left\n\nyyy#####yyy\nyyy#.#.#yyy\n####.o.####\n#.........#\n#....p.x..#\n#....*....#\n#..x......#\n#......x..#\n#.........#\n###########\n\nmessage no more leaves\nmessage welcome to winter\n\n\n", [3, 1, 1, 1, 2, 1, 1, 1, 2, 3, 2, 0, 0, 1, 2, 3, "undo", "undo", "undo", 2, 3, 3, 1, 3, 0, 1, 1, 1, 2, 2, 2, 3, 0, 1, 0, 3, 3, 1, 2, 1, 2, 3], "background wall:0,0,0,0,0,0,0,0,0,background background2:1,\n0,background:2,2,2,2,2,2,2,0,1,\n0,2,2,2,2,background playerr:3,2,2,0,0,\n0,2,background crate:4,2,background target:5,4,air3 background:6,air2 background:7,background vent1:8,0,\n0,2,2,2,2,2,4,2,0,0,\n0,2,2,2,2,2,2,2,0,0,\n0,7,7,air1 background target:9,air0 background:10,air4 background target:11,6,7,8,0,\n0,2,2,2,2,2,2,2,0,0,\n0,2,2,2,2,2,2,2,0,1,\n0,0,0,0,0,0,0,0,0,1,\n", 3, "1627770803266.147"] + ["title Fall Leaves \nauthor Le Slo\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\nbackground_color #5d3a2f\n\n========\nOBJECTS\n========\n\nPlayerL\n#ad6545 #c96845 #d97865\n0.12.\n.0012\n.1112\n..111\n.....\n\n\nPlayerR\n#c96845 #ad6545 #d97865\n..222\n.0002\n.0100\n1100.\n.....\n\nPlayerN\n#c96845 #ad6545 #d97865\n.02..\n.002.\n11102\n.000.\n.00..\n\nVent1\n#485259 #7a8891 \n1..11\n01.0.\n..0..\n.0.01\n00..0\n\nVent2\n#485259 #7a8891\n..11.\n1.0..\n00001\n..0.0\n.00..\n\nAir0\n#86A2E4\n.0...\n...0.\n.0.0.\n.0...\n...0.\n\nAir1\n#86A2E4\n...0.\n.0.0.\n.0...\n...0.\n.0...\n\nAir2\n#86A2E4\n.0.0.\n.0...\n...0.\n.0...\n...0.\n\nAir3\n#86A2E4\n.0...\n...0.\n.0...\n...0.\n.0.0.\n\nAir4\n#86A2E4\n...0.\n.0...\n...0.\n.0.0.\n.0...\n\nCrate\n#7b865e #3d743d\n.000.\n11100\n11110\n11110\n.111.\n\nTarget\n#5d3a2f\n.....\n.000.\n.0.0.\n.000.\n.....\n\nBackground\n#cfb39b #f5bda2 #e6b3a1 #d9b193 #dba886 #f0cbb9\n01100\n23340\n44425\n42245\n32340\n\nBackground2\n#9d7a5f #5d3a2f\n11111\n11111\n11111\n11111\n11111\n\n\nWall\n#9d7a5f #d07953 #c96845 #906646 #ad6545 #dd906f\n01100\n23340\n44425\n42245\n32340\n\nauxAnim\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = PlayerN\n* = Crate\n@ = Crate and Target\nO = Target\nx = vent1\n` = vent2\ny = Background2\n\nvent = Vent1 or Vent2\ncollision = wall or crate or vent\nair = Air0 or Air1 or Air2 or Air3 or Air4\npushable = vent or crate\nplayer = PlayerL or PlayerR or playerN\n\n======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nvent move 19444907\nstartgame 60152908\nundo 31509107\nrestart 24415508\nshowmessage 5759908\n\nsfx1 37419308\nsfx0 36262108\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBackground2\nauxAnim\nTarget\nair\nPlayer, Wall, Crate, Vent\n\n======\nRULES\n======\n[right playerN no auxAnim] -> [right playerR auxAnim]\n[left playerN no auxAnim] -> [left playerL auxAnim]\n[right playerL no auxAnim] -> [right playerN auxAnim]\n[left playerR no auxAnim] -> [left playerN auxAnim]\n[down player no auxAnim] -> [down playerN auxAnim]\n\n[ up player no air] -> [ player] sfx1\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Player | Vent ] -> [ > Player | > Vent ]\n[ > pushable | pushable] -> [> pushable | > pushable]\n\n\nup[vent | ... | player air | no collision] -> [vent | ... | up player | no collision]\n\n(animations)\nlate [vent1] -> [vent2 auxAnim]\nlate [vent2 no auxAnim] -> [vent1]\n\n\nlate [air crate ] -> [crate]\nlate down[air | no air no vent] -> [ | ]\n\nlate [air0 no auxAnim] -> [ air1 auxAnim]\nlate [air1 no auxAnim] -> [ air2 auxAnim]\nlate [air2 no auxAnim] -> [ air3 auxAnim]\nlate [air3 no auxAnim] -> [ air4 auxAnim]\nlate [air4 no auxAnim] -> [ air0 auxAnim]\n\nlate [ auxAnim ] -> []\n\nstartLoop\nlate up[vent | no air no collision] -> [vent | Air0]\nlate up[air0 | no air no collision] -> [air0 | air1]\nlate up[air1 | no air no collision] -> [air1 | air2]\nlate up[air2 | no air no collision] -> [air2 | air3]\nlate up[air3 | no air no collision] -> [air3 | air4]\nlate up[air4 | no air no collision] -> [air4 | air0]\nendLoop\n\nlate up[vent | ... | player air | no collision] -> again sfx0\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n(##########\n#........#\n#..#.*...#\n#..p.#...#\n#.x....#.#\n#.....x..#\n#...x....#\n#..#o#...#\n#..###...#\n##########)\n\n\n\n(SOLVABLE)\n\nmessage 7 leaves left\n\n########\n#.p....#\n#...*..#\n#.*...`#\n#.o...##\n#...o.#y\n#.....#y\n#######y\n\nmessage 6 leaves left\n\n##########\n#........#\n#.*..p...#\n#.....o..#\n#.*o.....#\n#.....o..#\n#.*......#\n#........#\n###`##`###\nyy######yy\n\nmessage 5 leaves left\n\nyy#######\n###.....#\n#.....o.#\n#.*..*o.#\n#.p.....#\n#....*###\n##....#yy\ny##...#yy\nyy#xxx#yy\nyy#####yy\n\nmessage 4 leaves left\n\nyyy#######yyy\n####..p..####\n#.....#.....#\n#..*..#.....#\n#..#.....#o.#\n#...#.......#\n###...x...###\nyy####`####yy\nyyyyy###yyyyy\n\nmessage 3 leaves left\n\ny#########y\ny#.#.#.#.#y\n##.......##\n#..p......#\n#..*..#.o.#\n#..x......#\n#..x......#\n#..x......#\n###########\n\nmessage 2 leaves left\n\n##########\n#.....#o.#\n#.#p.....#\n#.....#..#\n#..*.....#\n#....x#..#\n#........#\n#........#\n#.x......#\n##########\n\nmessage 1 leaf left\n\nyyy#####yyy\nyyy#.#.#yyy\n####.o.####\n#.........#\n#....p.x..#\n#....*....#\n#..x......#\n#......x..#\n#.........#\n###########\n\nmessage no more leaves\nmessage welcome to winter\n\n\n",[3,1,1,1,2,1,1,1,2,3,2,0,0,1,2,3,"undo","undo","undo",2,3,3,1,3,0,1,1,1,2,2,2,3,0,1,0,3,3,1,2,1,2,3],"background wall:0,0,0,0,0,0,0,0,0,background background2:1,\n0,background:2,2,2,2,2,2,2,0,1,\n0,2,2,2,2,background playerr:3,2,2,0,0,\n0,2,background crate:4,2,background target:5,4,air3 background:6,air2 background:7,background vent1:8,0,\n0,2,2,2,2,2,4,2,0,0,\n0,2,2,2,2,2,2,2,0,0,\n0,7,7,air1 background target:9,air0 background:10,air4 background target:11,6,7,8,0,\n0,2,2,2,2,2,2,2,0,0,\n0,2,2,2,2,2,2,2,0,1,\n0,0,0,0,0,0,0,0,0,1,\n",3,"1627770803266.147"] ], [ `gallery game: mini nomerads`, - ["title Mini Nomerads\nauthor Dan Williams\nhomepage www.activeupgames.com\n\n========\nOBJECTS\n========\n\nBackground\ngreen #11aa11\n00000\n01000\n00000\n00010\n00000\n\nTarget\nDarkBlue\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nWall\nBROWN orange darkbrown green\n31113\n10002\n10002\n10002\n32223\n\nPlayer\nBlack red White Blue\n.222.\n.020.\n11111\n.333.\n.3.3.\n\nball\nlightblue blue darkblue\n.011.\n01111\n11111\n11112\n.112.\n\nredball\nyellow orange\n..0..\n.000.\n00100\n.000.\n..0..\n\nballright\ntransparent\n\nballdown\ntransparent\n\nballleft\ntransparent\n\nballup\ntransparent\n\nrublock\nwhite lightgray gray\n0....\n01...\n011..\n0111.\n12222\n\nrdblock\nwhite lightgray gray\n00001\n0112.\n012..\n02...\n1....\n\nldblock\nwhite lightgray gray\n00001\n.1112\n..112\n...12\n....2\n\nlublock\nwhite lightgray gray\n....1\n...02\n..012\n.0112\n12222\n\nsrblock\npink #ffcccc #ff5599\n1....\n10...\n102..\n12...\n2....\n\nsdblock\npink #ffcccc #ff5599\n11110\n.002.\n..2..\n.....\n.....\n\nslblock\npink #ffcccc #ff5599\n....0\n...12\n..102\n...02\n....2\n\nsublock\npink #ffcccc #ff5599\n.....\n.....\n..1..\n.100.\n12222\n\nrugen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nrdgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nldgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nlugen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nsrgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nsdgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nslgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nsugen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nrugenbg\nyellow\n0....\n.....\n0.0..\n.....\n0.0.0\n\nrdgenbg\nyellow\n0.0.0\n.....\n0.0..\n.....\n0....\n\nldgenbg\nyellow\n0.0.0\n.....\n..0.0\n.....\n....0\n\nlugenbg\nyellow\n....0\n.....\n..0.0\n.....\n0.0.0\n\nsrgenbg\nyellow\n0....\n.....\n0.0..\n.....\n0....\n\nsdgenbg\nyellow\n0.0.0\n.....\n..0..\n.....\n.....\n\nslgenbg\nyellow\n....0\n.....\n..0.0\n.....\n....0\n\nsugenbg\nyellow\n.....\n.....\n..0..\n.....\n0.0.0\n\nstopper\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = Target\n* = ball\nX = redball\n@ = redball and Target\n1 = rublock\n2 = rdblock\n3 = ldblock\n4 = lublock\n5 = srblock\n6 = sdblock\n7 = slblock\n8 = sublock\na = rugen\nb = rdgen\nc = ldgen\nd = lugen\ne = srgen\nf = sdgen\ng = slgen\nh = sugen\nq = rugenbg\nw = rdgenbg\nv = ldgenbg\nr = lugenbg\nt = srgenbg\ny = sdgenbg\nu = slgenbg\ni = sugenbg\nblock = rublock or rdblock or lublock or ldblock or srblock or sdblock or slblock or sublock\nballdir = ballright or balldown or ballleft or ballup\ngenblock = rugen or rdgen or ldgen or lugen or srgen or sdgen or slgen or sugen\nbg = rugenbg or rdgenbg or ldgenbg or lugenbg or srgenbg or sdgenbg or slgenbg or sugenbg\n\n=======\nSOUNDS\n=======\n\nplayer MOVE 29986507\nblock create 8026309\ngenblock create 8026309\nstartgame 50407900\nrestart 90013309\nclosemessage 35794303\n\nundo 21150709\nsfx0 6213103 (redirect)\nsfx1 55324302 (split)\nsfx2 24543300 (get redball on target)\nsfx3 58317102 (destroy block)\nsfx4 21946837 (push block)\nsfx5 77326104 (ball thud against wall)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbg\nTarget, block, genblock\nPlayer, Wall, ball, redball\nballdir\nstopper\n\n======\nRULES\n======\n\n[ > Player | block ] -> [ > Player | > block ] sfx4\n[ > Player | ball ] -> [ > Player | > ball ] sfx4\n\n\n([ ball target ] -> [ redball target ])\n\n[ ball | redball ] -> [ redball | redball ] sfx2\n\n[ block wall ] -> [ wall ] sfx3\n\n\n(ball movement)\n[UP ball] -> [ball ballup]\n[DOWN ball] -> [ball balldown]\n[LEFT ball] -> [ball ballleft]\n[RIGHT ball] -> [ball ballright]\n\nUP [ ball ballup no stopper | no ball no Wall ] -> [ | ballup stopper ball ] again\nDOWN [ ball balldown no stopper | no ball no Wall ] -> [ | balldown stopper ball ] again\nLEFT [ ball ballleft no stopper | no ball no Wall ] -> [ | ballleft stopper ball ] again\nRIGHT [ ball ballright no stopper| no ball no Wall ] -> [ | ballright stopper ball ] again\n\n(ball collision)\nstartloop\nvertical [ | ballright slblock | ] -> [ ball balldown | no ball slblock | ball ballup ] sfx1\nhorizontal [ | balldown sublock | ] -> [ ball ballright | no ball sublock | ball ballleft ] sfx1\nvertical [ | ballleft srblock | ] -> [ ball balldown | no ball srblock | ball ballup ] sfx1\nhorizontal [ | ballup sdblock | ] -> [ ball ballright | no ball sdblock | ball ballleft ] sfx1\nendloop\n\n[ ballright lublock ] -> [ ballup lublock ] sfx0\n[ ballright ldblock ] -> [ ldblock balldown ] sfx0\n\n[ balldown rublock ] -> [ ballright rublock ] sfx0\n[ balldown lublock ] -> [ ballleft lublock ] sfx0\n\n[ ballleft rublock ] -> [ ballup rublock ] sfx0\n[ ballleft rdblock ] -> [ balldown rdblock ] sfx0\n\n[ ballup rdblock ] -> [ ballright rdblock ] sfx0\n[ ballup ldblock ] -> [ ballleft ldblock ] sfx0\n\n\n\n\n\n[ > ballleft ] -> [ > ballleft ]\n[ > ballright ] -> [ > ballright ]\n\n(block generation)\nlate up [ player rugen | no block ] -> [ player rugen | rublock ] \nlate up [ player rdgen | no block ] -> [ player rdgen | rdblock ] \nlate up [ player ldgen | no block ] -> [ player ldgen | ldblock ] \nlate up [ player lugen | no block ] -> [ player lugen | lublock ] \nlate up [ player srgen | no block ] -> [ player srgen | srblock ] \nlate up [ player sdgen | no block ] -> [ player sdgen | sdblock ] \nlate up [ player slgen | no block ] -> [ player slgen | slblock ] \nlate up [ player sugen | no block ] -> [ player sugen | sublock ] \n\n\n[stopper]->[]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll redball on Target\nAll target on redball\n\n=======\nLEVELS\n=======\n\nmessage Video games.\n\nMessage Push the blue ball. Blue balls stick to yellow targets and bounce off of blocks. You can push the blocks and generate them. Push blocks into walls to get rid of them.\n\nMessage Level 1 of 9\n\n\n###########\n#.........#\n#.p.*..O@.#\n#.........#\n###########\n\n\nMessage Level 2 of 9\n\n###########\n#.........#\n#.p.*..3..#\n#.........#\n#......O..#\n#......@..#\n###########\n\nmessage Level 3 of 9\n\n###########\n#.........#\n#.p.*...3.#\n#.........#\n#....O.4..#\n#....@....#\n###########\n\nmessage Level 4 of 9\n\n###########\n#......@..#\n#......O..#\n#.p.*.....#\n#..r......#\n#..d......#\n###########\n\nmessage Level 5 of 9\n\n#############\n#......O....#\n#......@....#\n#...........#\n#.p.*.......#\n#..q.w.v.r..#\n#..a.b.c.d..#\n#############\n\nmessage Level 6 of 9\n\n#############\n#...@O......#\n#....O......#\n#...........#\n#.p.*...7...#\n#...........#\n#..q.w.v.r..#\n#..a.b.c.d..#\n#############\n\nMessage Level 7 of 9\n\n###################\n#.................#\n#........o........#\n#.......o@o.......#\n#........o........#\n#.................#\n#.p.*.............#\n#.................#\n#.q.w.v.r.t.y.u.i.#\n#.a.b.c.d.e.f.g.h.#\n###################\n\nMessage Level 8 of 9\n\n###################\n#.................#\n#.................#\n#........@oo......#\n#........oo.......#\n#.................#\n#.p.*.............#\n#.................#\n#.q.w.v.r.t.y.u.i.#\n#.a.b.c.d.e.f.g.h.#\n###################\n\nMessage Level 9 of 9\n\n#######################\n#.....................#\n#.....................#\n#.....................#\n#.........ooo.........#\n#.........o@o.........#\n#.........ooo.........#\n#.....................#\n#...p.*...............#\n#.....................#\n#...q.w.v.r.t.y.u.i...#\n#...a.b.c.d.e.f.g.h...#\n#######################\n\nMessage You win! There will be a full version of this game coming out eventually. Follow @activeupgames if you want to know when that happens. I love video games!\n\n\n\n\n\n", [3, 3, "undo", 1, 2, 3, 2, 1, 3, 4, 4, 0, 1, 0, 3, 3, "undo", "undo", 0, 0, 3, 2, 2, 1, 2, 3, 3, 3, 2, 3, 0, 1, 1, 1, 0, 3], "background wall:0,0,0,0,0,0,0,0,background:1,1,1,\n1,1,0,0,1,1,1,1,1,0,0,\n1,1,1,background lugenbg:2,background lugen:3,0,0,1,1,background player:4,1,\n1,0,0,1,1,1,1,1,0,0,background ballup redball:5,\n1,background lublock:6,1,1,0,0,background redball target:7,background target:8,1,1,1,\n0,0,1,1,1,1,1,0,0,1,1,\n1,1,1,0,0,0,0,0,0,0,0,\n", 9, "1627769983359.2385"] + ["title Mini Nomerads\nauthor Dan Williams\nhomepage www.activeupgames.com\n\n========\nOBJECTS\n========\n\nBackground\ngreen #11aa11\n00000\n01000\n00000\n00010\n00000\n\nTarget\nDarkBlue\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nWall\nBROWN orange darkbrown green\n31113\n10002\n10002\n10002\n32223\n\nPlayer\nBlack red White Blue\n.222.\n.020.\n11111\n.333.\n.3.3.\n\nball\nlightblue blue darkblue\n.011.\n01111\n11111\n11112\n.112.\n\nredball\nyellow orange\n..0..\n.000.\n00100\n.000.\n..0..\n\nballright\ntransparent\n\nballdown\ntransparent\n\nballleft\ntransparent\n\nballup\ntransparent\n\nrublock\nwhite lightgray gray\n0....\n01...\n011..\n0111.\n12222\n\nrdblock\nwhite lightgray gray\n00001\n0112.\n012..\n02...\n1....\n\nldblock\nwhite lightgray gray\n00001\n.1112\n..112\n...12\n....2\n\nlublock\nwhite lightgray gray\n....1\n...02\n..012\n.0112\n12222\n\nsrblock\npink #ffcccc #ff5599\n1....\n10...\n102..\n12...\n2....\n\nsdblock\npink #ffcccc #ff5599\n11110\n.002.\n..2..\n.....\n.....\n\nslblock\npink #ffcccc #ff5599\n....0\n...12\n..102\n...02\n....2\n\nsublock\npink #ffcccc #ff5599\n.....\n.....\n..1..\n.100.\n12222\n\nrugen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nrdgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nldgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nlugen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nsrgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nsdgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nslgen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nsugen\ndarkgray gray\n.111.\n10001\n10101\n10001\n01110\n\nrugenbg\nyellow\n0....\n.....\n0.0..\n.....\n0.0.0\n\nrdgenbg\nyellow\n0.0.0\n.....\n0.0..\n.....\n0....\n\nldgenbg\nyellow\n0.0.0\n.....\n..0.0\n.....\n....0\n\nlugenbg\nyellow\n....0\n.....\n..0.0\n.....\n0.0.0\n\nsrgenbg\nyellow\n0....\n.....\n0.0..\n.....\n0....\n\nsdgenbg\nyellow\n0.0.0\n.....\n..0..\n.....\n.....\n\nslgenbg\nyellow\n....0\n.....\n..0.0\n.....\n....0\n\nsugenbg\nyellow\n.....\n.....\n..0..\n.....\n0.0.0\n\nstopper\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = Target\n* = ball\nX = redball\n@ = redball and Target\n1 = rublock\n2 = rdblock\n3 = ldblock\n4 = lublock\n5 = srblock\n6 = sdblock\n7 = slblock\n8 = sublock\na = rugen\nb = rdgen\nc = ldgen\nd = lugen\ne = srgen\nf = sdgen\ng = slgen\nh = sugen\nq = rugenbg\nw = rdgenbg\nv = ldgenbg\nr = lugenbg\nt = srgenbg\ny = sdgenbg\nu = slgenbg\ni = sugenbg\nblock = rublock or rdblock or lublock or ldblock or srblock or sdblock or slblock or sublock\nballdir = ballright or balldown or ballleft or ballup\ngenblock = rugen or rdgen or ldgen or lugen or srgen or sdgen or slgen or sugen\nbg = rugenbg or rdgenbg or ldgenbg or lugenbg or srgenbg or sdgenbg or slgenbg or sugenbg\n\n=======\nSOUNDS\n=======\n\nplayer MOVE 29986507\nblock create 8026309\ngenblock create 8026309\nstartgame 50407900\nrestart 90013309\nclosemessage 35794303\n\nundo 21150709\nsfx0 6213103 (redirect)\nsfx1 55324302 (split)\nsfx2 24543300 (get redball on target)\nsfx3 58317102 (destroy block)\nsfx4 21946837 (push block)\nsfx5 77326104 (ball thud against wall)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbg\nTarget, block, genblock\nPlayer, Wall, ball, redball\nballdir\nstopper\n\n======\nRULES\n======\n\n[ > Player | block ] -> [ > Player | > block ] sfx4\n[ > Player | ball ] -> [ > Player | > ball ] sfx4\n\n\n([ ball target ] -> [ redball target ])\n\n[ ball | redball ] -> [ redball | redball ] sfx2\n\n[ block wall ] -> [ wall ] sfx3\n\n\n(ball movement)\n[UP ball] -> [ball ballup]\n[DOWN ball] -> [ball balldown]\n[LEFT ball] -> [ball ballleft]\n[RIGHT ball] -> [ball ballright]\n\nUP [ ball ballup no stopper | no ball no Wall ] -> [ | ballup stopper ball ] again\nDOWN [ ball balldown no stopper | no ball no Wall ] -> [ | balldown stopper ball ] again\nLEFT [ ball ballleft no stopper | no ball no Wall ] -> [ | ballleft stopper ball ] again\nRIGHT [ ball ballright no stopper| no ball no Wall ] -> [ | ballright stopper ball ] again\n\n(ball collision)\nstartloop\nvertical [ | ballright slblock | ] -> [ ball balldown | no ball slblock | ball ballup ] sfx1\nhorizontal [ | balldown sublock | ] -> [ ball ballright | no ball sublock | ball ballleft ] sfx1\nvertical [ | ballleft srblock | ] -> [ ball balldown | no ball srblock | ball ballup ] sfx1\nhorizontal [ | ballup sdblock | ] -> [ ball ballright | no ball sdblock | ball ballleft ] sfx1\nendloop\n\n[ ballright lublock ] -> [ ballup lublock ] sfx0\n[ ballright ldblock ] -> [ ldblock balldown ] sfx0\n\n[ balldown rublock ] -> [ ballright rublock ] sfx0\n[ balldown lublock ] -> [ ballleft lublock ] sfx0\n\n[ ballleft rublock ] -> [ ballup rublock ] sfx0\n[ ballleft rdblock ] -> [ balldown rdblock ] sfx0\n\n[ ballup rdblock ] -> [ ballright rdblock ] sfx0\n[ ballup ldblock ] -> [ ballleft ldblock ] sfx0\n\n\n\n\n\n[ > ballleft ] -> [ > ballleft ]\n[ > ballright ] -> [ > ballright ]\n\n(block generation)\nlate up [ player rugen | no block ] -> [ player rugen | rublock ] \nlate up [ player rdgen | no block ] -> [ player rdgen | rdblock ] \nlate up [ player ldgen | no block ] -> [ player ldgen | ldblock ] \nlate up [ player lugen | no block ] -> [ player lugen | lublock ] \nlate up [ player srgen | no block ] -> [ player srgen | srblock ] \nlate up [ player sdgen | no block ] -> [ player sdgen | sdblock ] \nlate up [ player slgen | no block ] -> [ player slgen | slblock ] \nlate up [ player sugen | no block ] -> [ player sugen | sublock ] \n\n\n[stopper]->[]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll redball on Target\nAll target on redball\n\n=======\nLEVELS\n=======\n\nmessage Video games.\n\nMessage Push the blue ball. Blue balls stick to yellow targets and bounce off of blocks. You can push the blocks and generate them. Push blocks into walls to get rid of them.\n\nMessage Level 1 of 9\n\n\n###########\n#.........#\n#.p.*..O@.#\n#.........#\n###########\n\n\nMessage Level 2 of 9\n\n###########\n#.........#\n#.p.*..3..#\n#.........#\n#......O..#\n#......@..#\n###########\n\nmessage Level 3 of 9\n\n###########\n#.........#\n#.p.*...3.#\n#.........#\n#....O.4..#\n#....@....#\n###########\n\nmessage Level 4 of 9\n\n###########\n#......@..#\n#......O..#\n#.p.*.....#\n#..r......#\n#..d......#\n###########\n\nmessage Level 5 of 9\n\n#############\n#......O....#\n#......@....#\n#...........#\n#.p.*.......#\n#..q.w.v.r..#\n#..a.b.c.d..#\n#############\n\nmessage Level 6 of 9\n\n#############\n#...@O......#\n#....O......#\n#...........#\n#.p.*...7...#\n#...........#\n#..q.w.v.r..#\n#..a.b.c.d..#\n#############\n\nMessage Level 7 of 9\n\n###################\n#.................#\n#........o........#\n#.......o@o.......#\n#........o........#\n#.................#\n#.p.*.............#\n#.................#\n#.q.w.v.r.t.y.u.i.#\n#.a.b.c.d.e.f.g.h.#\n###################\n\nMessage Level 8 of 9\n\n###################\n#.................#\n#.................#\n#........@oo......#\n#........oo.......#\n#.................#\n#.p.*.............#\n#.................#\n#.q.w.v.r.t.y.u.i.#\n#.a.b.c.d.e.f.g.h.#\n###################\n\nMessage Level 9 of 9\n\n#######################\n#.....................#\n#.....................#\n#.....................#\n#.........ooo.........#\n#.........o@o.........#\n#.........ooo.........#\n#.....................#\n#...p.*...............#\n#.....................#\n#...q.w.v.r.t.y.u.i...#\n#...a.b.c.d.e.f.g.h...#\n#######################\n\nMessage You win! There will be a full version of this game coming out eventually. Follow @activeupgames if you want to know when that happens. I love video games!\n\n\n\n\n\n",[3,3,"undo",1,2,3,2,1,3,4,4,0,1,0,3,3,"undo","undo",0,0,3,2,2,1,2,3,3,3,2,3,0,1,1,1,0,3],"background wall:0,0,0,0,0,0,0,0,background:1,1,1,\n1,1,0,0,1,1,1,1,1,0,0,\n1,1,1,background lugenbg:2,background lugen:3,0,0,1,1,background player:4,1,\n1,0,0,1,1,1,1,1,0,0,background ballup redball:5,\n1,background lublock:6,1,1,0,0,background redball target:7,background target:8,1,1,1,\n0,0,1,1,1,1,1,0,0,1,1,\n1,1,1,0,0,0,0,0,0,0,0,\n",9,"1627769983359.2385"] ], [ `gallery game: Broken Abacus`, - ["title Broken Abacus\nauthor Le Slo\nhomepage le-slo.itch.io/\n\nbackground_color #0A060f\nnoaction\nagain_interval 0.05\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nFloorL\n#9A9510 #7A4690\n01111\n01111\n01111\n01111\n01111\n\nFloorR\n#7A4690 #9A9510\n00001\n00001\n00001\n00001\n00001\n\nFloorT\n#9A9510 #8d6d9f\n00000\n11111\n11111\n11111\n11111\n\nFloorB\n#8d6d9f #9A9510\n00000\n00000\n00000\n00000\n11111\n\nCornerTL\n#9A9510 #7A4690\n00000\n01011\n00111\n01111\n01111\n\nCornerTR\n#9A9510 #7A4690\n00000\n11010\n11100\n11110\n11110\n\n\n\nCornerBL\n#9A9510 #7A4690\n01111\n01111\n00111\n01011\n00000\n\nCornerBR\n#7A4690 #9A9510\n00001\n00001\n00011\n00101\n11111\n\nPitT\n#5A3670 #3A2640 #1A1620\n00000\n11111\n11111\n22222\n22222\n\nPitWT\n #364355 #162335 #081118\n00000\n11111\n11111\n22222\n22222\n\n\nWallT\n#6187b9 #6d8caf\n00000\n00000\n00000\n00000\n00000\n\nPit\n#0A060f\n00000\n00000\n00000\n00000\n00000\n\nWall\n#6187b9 #6187b9 #465365\n00000\n11111\n11111\n11111\n22222\n\n\nBackground\n#7A4690 #7A4690\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\n#d6cF24\n.....\n.000.\n.0.0.\n.000.\n.....\n\nBarH\n#a69F10\n.....\n.....\n00000\n.....\n.....\n\nBarV\n#C6BF14 black\n..1..\n..1..\n..1..\n..1..\n..1..\n\nBarHN\nred\n.....\n.....\n00000\n.....\n.....\n\nBarVN\n#465365 #4A3500\n..1..\n..1..\n..1..\n..1..\n..1..\n\ncrate01\n#C6BF14 #7A7510 #9A9510 #d6cF24\n.....\n.003.\n.200.\n.120.\n.....\n\n\naux\ntransparent\n\ncantMove\ntransparent\n\n\ncantMove2\ntransparent\n\nauxPush\ntransparent\n\nauxSolid\n#23285b\n.....\n.000.\n.000.\n.000.\n.....\n\nauxPit\ntransparent\n\n\nAnim01\n#ccd7a5\n..0..\n.000.\n00.00\n.000.\n..0..\n\nAnim02\n#ccd7a5\n..0..\n.0.0.\n0.0.0\n.0.0.\n..0..\n\nAnim03\n#ccd7a5\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nAnim04\n#ccd7a5\n.....\n..0..\n.000.\n..0..\n.....\n\nAnim05\n#ccd7a5\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = barH\nI = barvn\nT = pit\n\nO = Target\n\n1 = Crate01\n2 = barH and BarVN and crate01\n\na = Crate01 and barh\nb = Crate01 and barvn\nc = barh and barvn\n\nd = CornerTL\ne = CornerTR\nf = CornerBL\ng = CornerBR\nh = FloorL\nj = FloorR\nk = FloorT\nl = FloorB\nplayer = barH or BarV or barhn or barvn\ncrate = crate01\n\nplayernotMove = barhn or barvn\n\nanims = anim01 or anim02 or anim03 or anim04 or anim05\n\nFloor = CornerTL or CornerTR or CornerBL or CornerBR or FloorL or FloorR or FloorT or FloorB\n=======\nSOUNDS\n=======\n\nsfx0 36772507\nsfx1 36772505\n\nbarh move 13941707\n\nsfx2 75593907\n\nsfx3 978108\n\nclosemessage 489108\n\nrestart 35665908\nundo 23271308\n\n(fall)\n\nsfx10 49054908\n\n(stumble)\n\nsfx9 8799108\n\nstartlevel 35665908\n\ntitlescreen 39484708\n\nendlevel 72619508\n\nstartgame 48479708\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFloor\n\npit\nauxPit\nauxSolid\ncantMove2\naux, auxPush\nTarget\npitT, pitWT\nbarvn, barv\n\nbarhn, BarH,\nWall, Crate\ncantMove\nWallT\nanims\n\n======\nRULES\n======\n\ndown [wall no WallT| wall] -> [Wall WallT | wall] \nup [pit no pitT | no pit no wall] -> [pit pitT | ] \nup [pit no pitWT | no pit wall] -> [pit pitWT | wall] \n\n(BLOQUEAMOS EL MOVIMIENTO DE LOS INACTIVOS)\n[> playernotMove] -> [playernotMove]\n\n(***************************HORIZONTAL ACTIVO*******************************)\n\n(-----------------CONTROLA HORIZONTAL------------------)\n\n(casos en los que se puede empujar la barra vertical)\nhorizontal[ > barh crate | barvn] -> [ > barh > crate | > barvn]\nhorizontal[ > barh crate | crate] -> [ > barh > crate| > crate ]\nhorizontal[ > barh crate barvn] -> [ > barh > crate > barvn]\n\n(hacemos el multiban)\nhorizontal[> Crate | crate] -> [> Crate | > Crate ]\n+ horizontal[> crate | barvn] -> [> crate | > barvn ] \n+ horizontal[> crate barvn] -> [> crate > barvn ]\n\n\n(Quitazmos el movimiento de las cajas)\nhorizontal[> crate ] -> [crate]\n\n(movemos todas las piezas verticales)\n[> barvn] [barvn] -> [> barvn] [> barvn]\n(horizontal[> barvn no auxSolid ] -> [> barvn auxSolid] sfx1\n+ vertical[auxSolid| barvn no auxSolid] -> [auxSolid | barvn auxSolid]\n\nhorizontal[> barvn][auxSolid barvn no auxPush] -> [> barvn][> barvn auxSolid auxPush] sfx0\n[auxSolid] -> [ ])\n\n(Empujamos cajas)\nhorizontal[ > barvn | Crate ] -> [ > barvn | > Crate]\n\n(hacemos el multiban)\nhorizontal[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ horizontal[> Crate | crate aux] -> [Crate aux | crate aux]\n+ horizontal[> Crate | wall] -> [crate aux | wall]\n\n(Vemos si nos chocamos)\nhorizontal[> barvn | crate Aux] -> [barvn cantMove | crate Aux] \nhorizontal [ > barvn | wall] -> [barvn cantMove | wall]\n\n(Paralizamos todas las barras)\nhorizontal[cantMove][> barvn] -> [cantMove] [barvn cantMove]\nhorizontal[cantMove][> crate] -> [cantMove] [crate ]\n\n(Empujar en horizontal)\nhorizontal[ > barh crate no BarVN| Crate no barh] -> [ > barh > crate| > Crate] \nhorizontal[ > barh crate no BarVN] -> [ > barh > crate]\n\nhorizontal[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ horizontal[> Crate | crate aux] -> [Crate aux | crate aux] \n+ horizontal[> Crate | wall] -> [crate aux | wall] \n+ horizontal[> Crate | cantMove] -> [crate aux | cantMove] \n\n(Vemos si nos chocamos)\nhorizontal[ > barh | wall ] -> [ barh cantMove2| wall]sfx9\n(Paralizamos todas las barras)\nhorizontal[> barh][barh cantMove2] -> [barh cantMove2][barh cantMove2]\n\nhorizontal[> crate cantMove] -> [crate cantMove]\nhorizontal[> crate cantMove2] -> [crate cantMove2]\nhorizontal[> crate | cantMove] -> [crate | cantMove]\n\n\nhorizontal[> barvn] [cantMove2] -> [barvn] [cantMove2] sfx9\n(Movemos lo que está pegado a la barra vertical)\n\nhorizontal[> barvn crate] -> [> barvn > crate]\nhorizontal[> crate] [cantMove2] -> [crate] [cantMove2]\n\n\nhorizontal[> barh crate no cantMove | no barvn] -> [> barh > crate no cantMove | no barvn]\n\n(Limpiamos el tablero)\n[aux] -> []\n[cantMove] -> []\n[cantMove2] -> []\n[auxPush] -> []\n\n\n(-----------------CONTROLA VERTICAL------------------)\n\nvertical [> crate ] -> [crate] \n(casos en los que se puede empujar la barra vertical)\nvertical[ > barh | crate] -> [ > barh | > crate ]\nvertical[ > barh crate barvn] -> [ > barh > crate > barvn] \n\n\n(hacemos el multiban)\nvertical[> Crate | crate] -> [> Crate | > Crate ] \n+ vertical[> crate | barvn crate] -> [> crate | > barvn crate] \n+ vertical[> crate barvn] -> [> crate > barvn ] \n\n\n(Quitazmos el movimiento de las cajas)\nvertical [> crate ] -> [crate] \nvertical [ > barvn | wall] -> [barvn cantMove | wall]\n\n(movemos todas las piezas verticales)\n[> barvn] [barvn] -> [> barvn] [> barvn]\n(vertical[> barvn no auxSolid ] -> [> barvn auxSolid] \n+ vertical[auxSolid| barvn no auxSolid] -> [auxSolid | barvn auxSolid]\n\nvertical[> barvn][auxSolid barvn no auxPush] -> [> barvn][> barvn auxSolid auxPush] sfx0\n[auxSolid] -> [ ])\n\n(Empujamos cajas)\nvertical[ > barvn crate| Crate ] -> [ > barvn crate| > Crate]\n\n(hacemos el multiban)\nvertical[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ vertical[> Crate | crate aux] -> [Crate aux | crate aux]\n+ vertical[> Crate | wall] -> [crate aux | wall]\n\n(Vemos si nos chocamos)\nvertical[ > barvn | wall] -> [barvn cantMove | wall] \n\n(Paralizamos todas las barras)\nvertical[cantMove][> barvn] -> [cantMove] [barvn cantMove]\nvertical[cantMove][> crate] -> [cantMove] [crate ]\n(En vertical)\nvertical[ > barh | Crate ] -> [ > barh | > Crate]\nvertical[ > barh crate] -> [ > barh > crate] \n\nvertical[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ vertical[> Crate | crate aux] -> [Crate aux | crate aux] \n+ vertical[> Crate | wall] -> [crate aux | wall] \n\n(Vemos si nos chocamos)\nvertical[ > barh | wall ] -> [ barh cantMove2| wall]\nvertical[ > barh | crate aux ] -> [ barh cantMove2| crate aux]\n(Paralizamos todas las barras)\nvertical[> barh][barh cantMove2] -> [barh cantMove2][barh cantMove2] sfx9\nvertical [> barvn] [cantMove2] -> [barvn] [cantMove2] sfx9\n\nvertical[> crate] [cantMove2] -> [crate] [cantMove2]\n\n(Movemos lo que está pegado a la barra vertical)\nvertical[> barvn crate] -> [> barvn > crate]\n\nvertical[> barh crate] -> [> barh > crate]\n(Limpiamos el tablero)\n[aux] -> []\n[cantMove] -> []\n[cantMove2] -> []\n[auxPush] -> []\n\n(\n(comprobamos si empujamos y nos chocamos con la barra vertical)\nhorizontal[ > barh crate | barvn] -> [ > barh > crate | > barvn auxPush]\nhorizontal[ > barh barvn crate ] -> [ > barh > crate > barvn auxPush]\n\n[> barVN auxPush] [barVn no auxPush] -> [> barVN auxPush][> barVN auxPush]\n\nhorizontal [ > barvn | wall] -> [barvn cantMove | wall]\n\n[cantMove][> barvn] -> [cantMove] [barvn cantMove]\n\nhorizontal[ > barvn | Crate ] -> [ > barvn | > Crate]\n\n[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ [> Crate | crate aux] -> [Crate aux | crate aux]\n+ [> Crate | wall] -> [crate aux | wall]\n\nhorizontal[> barvn | crate Aux] -> [barvn cantMove | crate Aux]\n\n[cantMove][> barvn] -> [cantMove] [barvn cantMove]\n\n[> barvn crate] -> [> barvn > crate]\n\nhorizontal[ > barh | wall ] -> [ barh cantMove| wall]\n\n(Movimiento básico)\n\n(Empujar en horizontal)\nhorizontal[ > barh crate | Crate no barh] -> [ > barh > crate| > Crate] sfx0\nhorizontal[ > barh crate no BarVN] -> [ > barh > crate]\n(En vertical)\nvertical[ > barh | Crate ] -> [ > barh | > Crate]\nvertical[ > barh crate] -> [ > barh > crate]\n\n[aux] -> []\n\n[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ [> Crate | crate aux] -> [Crate aux | crate aux]\n+ [> Crate | wall] -> [crate aux | wall]\n\nhorizontal[> barh | crate Aux] -> [> barh | crate Aux]\nvertical[> barh | wall] -> [barh cantMove | wall]\n[cantMove][> crate] -> [cantMove] [crate cantMove]\n\n[cantMove][> crate] -> [cantMove][crate]\n[cantMove][> barvn] -> [cantMove][barvn]\n\n[aux] -> []\n[cantMove] -> []\n[auxPush] -> []\n\n)\n\n\n(\nvertical[ > barh | Crate ] -> [ > barh | > Crate]\n\n\nhorizontal[ > barv | Crate ] -> [ > barv | > Crate]\nvertical[ > barv crate | Crate no barv] -> [ > barv > crate| > Crate] sfx0\n\n\n\nvertical[> barh | crate Aux] -> [barh cantMove | crate Aux]\nhorizontal[> barv | crate Aux] -> [barv cantMove | crate Aux]\n[> player | wall] -> [player cantMove| wall]\n\n\n\n\n[> player][cantMove] ->[player][cantMove]\nvertical [> barv no barHN crate] -> [> barv > crate]\nhorizontal [> barv crate] -> [> barv > crate]\nhorizontal [> barh no barvN crate] -> [> barh > crate]\nvertical [> barh crate] -> [> barh > crate]\n[aux] -> []\n[cantMove] -> [])\n\n(Cambiar los personajes)\n\nvertical [ > barvn | crate no barvn] -> [ > barvn | crate no barvn] sfx2\nhorizontal [ > barh | crate no barh] -> [ > barh | crate no barh] sfx2\nhorizontal [ > barh crate | barvn] -> [ > barh crate | barvn] sfx2\n[> crate no barh no barvn ] -> [> crate no barh no barvn ] sfx0\n\n[action player] [barVN]-> [action player][barV aux]\n[action player] [barV no aux]-> [action player][barVN]\n\n[aux] -> []\n\n[action player] [barHN]-> [action player][barH aux]\n[action player] [barH no aux]-> [action player][barHN]\n\n[aux] -> []\n\n\nlate[anim05] -> []\nlate[anim04] -> [anim05]\nlate[anim03] -> [anim04]\nlate[anim02] -> [anim03]\nlate[anim01] -> [anim02]\n\n\nlate random[] -> [cantMove]\n\nlate[barvn pit no auxSolid] -> [barVn pit auxSolid] \nlate[cantMove][barvn no pit] -> [cantMove2][barVn] \n\nlate[barvn barh crate auxSolid no auxPit] -> [barvn barh crate auxSolid auxPit]\n\nlate[auxPit][barh pit no auxPit] -> [auxPit][barh pit auxPit] \nlate[auxPit][cantMove][barh no pit] -> [auxPit][cantMove2][barh] \n\nlate [CantMove][barVn auxSolid] -> [CantMove] [Anim01 auxSolid]\nlate [CantMove][barH auxPit] -> [CantMove] [Anim01 auxPit]\n\nlate [CantMove] -> []\nlate [CantMove2] -> []\nlate [auxPit] -> []\nlate [auxSolid] -> [ ]\n\nlate [aux] -> []\n\nlate random[] -> [cantMove]\n\nlate[barh pit no auxPit] -> [barh pit auxPit] \nlate[cantMove][barh no pit] -> [cantMove2][barh] \n\nlate[barvn barh crate auxPit no auxSolid] -> [barvn barh crate auxSolid auxPit]\n\nlate[auxSolid][barvn pit no auxSolid] -> [auxSolid][barvn pit auxSolid] \nlate[auxSolid][cantMove][barvn no pit] -> [auxSolid][cantMove2][barvn] \n\nlate [CantMove][barVn auxSolid] -> [CantMove] [Anim01 auxSolid]\nlate [CantMove][barh auxPit] -> [CantMove] [Anim01 auxPit]\n\nlate [CantMove] -> []\nlate [CantMove2] -> []\nlate [auxPit] -> []\nlate [auxSolid] -> [ ]\n\nlate [aux] -> []\n\nlate[crate no player pit] -> [pit Anim01]\n\nlate [anims] -> [anims] again\nlate[Anim01] -> [Anim01] sfx10\n(late[barvn aux pit no auxSolid] -> [barvn auxSolid aux pit] \n+late vertical [barvn auxSolid| barvn pit no auxSolid] -> [barvn auxSolid | barvn pit auxSolid aux] \n+late vertical [cantMove][barvn auxSolid| barvn no pit] -> [cantMove2] [barvn auxSolid | barvn] \n+late [barvn auxSolid crate barh no auxPit] -> [barvn auxSolid auxPit crate barh] \n+late [barvn auxPit crate barh no auxSolid] -> [barvn auxSolid auxPit crate barh] \n+late horizontal [barh auxPit | barh pit no auxPit] -> [barh auxPit |pit barh auxPit aux] \n+late horizontal [cantMove][barh auxSolid| barh no pit] -> [cantMove2][barh auxSolid | barh] \n\nlate [CantMove][player auxSolid] -> [CantMove] [auxSolid]\nlate [CantMove][player auxPit] -> [CantMove] [auxPit]\n\nlate [CantMove] -> []\nlate [CantMove2] -> []\nlate [auxPit] -> []\nlate [auxSolid] -> [ ]\nlate [aux] -> []\n\nrandom late[barh no aux] -> [barh aux]\nrandom late [] -> [cantMove]\n\nlate[barh aux pit no auxPit] -> [barh auxPit aux pit] \n+late vertical [barvn auxSolid| barvn pit no auxSolid] -> [barvn auxSolid | barvn pit auxSolid aux] \n+late vertical [cantMove][barvn auxSolid| barvn no pit] -> [cantMove2] [barvn auxSolid | barvn] \n+late [barvn auxSolid crate barh no auxPit] -> [barvn auxSolid auxPit crate barh] \n+late [barvn auxPit crate barh no auxSolid] -> [barvn auxSolid auxPit crate barh] \n+late horizontal [barh auxPit | barh pit no auxSolid] -> [barh auxPit |pit barh auxPit aux] \n+late horizontal [cantMove][barh auxSolid| barh no pit] -> [cantMove2][barh auxSolid | barh] \n\nlate [CantMove][player auxSolid] -> [CantMove] [auxSolid]\nlate [CantMove][player auxPit] -> [CantMove] [auxPit])\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll target on crate\nAll barv on Crate\n(no barh)\n=======\nLEVELS\n=======\n\nmessage . ||||-----| |||||----- \n\n###########\n#d.......e#\n#..1.1.1..#\n#...ppp...#\n#...ooo...#\n#f.......g#\n###########\nttttttttttt\n\nmessage . |||-----|| |||||----- \n\n#########\n#d.....e#\n#...o1#.#\n#.ppo1..#\n#.#.o1..#\n#f.....g#\n#########\nttttttttt\n\nmessage . ||-----||| |||||----- \n\n#########\n#d..1..e#\n#.o..i..#\n#.pppi..#\n#.o..i..#\n#f..1..g#\n#########\nttttttttt\n\nmessage . |-----|||| |||||----- \n\n#############\n#d.....e#d.e#\n#.......#.o.#\n#..i.#1.#f..#\n#.pcp#1.##o.#\n#..i..1.....#\n#.........o.#\n#f.........g#\n#############\nttttttttttttt\n\nmessage . |||||----- ||||-----| \n\nttt###ttt\n####i####\n#d..i.oe#\n#..1i1..#\n#f..i.o.#\n##pp2...#\nt#f...og#\nt########\nttttttttt \n\nmessage . ||||-----| ||||-----| \n \n########### \n#d.......e# \n#........g# \n#.o.bo##### \n#...i.e#### \n#.apcag#### \n#.o.bo##### \n#........e# \n#f.......g# \n########### \nttttttttttt \n \nmessage . |||-----|| ||||-----| \n \n#######\n#d..1e#\n#o..i.#\n#.ppi.#\n#o..i.#\n#f..1g#\n#######\nttttttt \n \nmessage . ||-----||| ||||-----| \n \n \ntttt### \n#####o# \n#d....# \n#i.pp.# \n#i.11.# \n#f.g#o# \n####### \nttttttt \n \nmessage . |-----|||| ||||-----| \n \n \n###ttttt \n#o###### \n#.#d..e# \n#o#.ppg# \n#..i1.##\n#o.i.1e#\n#..i1..#\n#f....g#\n########\ntttttttt\n\nmessage . |||||----- |||-----|| \n\nttt######\nttt#de#1#\nttt#....#\n####i.1.#\n#de#i1..#\n#.o..pp.#\n#foog#fg#\n#########\nttttttttt\n\nmessage . ||||-----| |||-----|| \n\nt#####tttt\n##d.e##ttt\n#d.i.###tt\n#f.b..e#tt\n##..pa.###\n#o.#....e#\n#f...g#og#\n##########\ntttttttttt\n\nmessage . |||-----|| |||-----|| \n\nmessage CRACK!\n\n###ttttttttttt\n#d.tt.tt.#tttt\n#..ttttttt.t#t\n#...ttttt.t.#t\n#..i..tt.ttttt\n#.acpttttt.#tt\n#..i.tttttt#tt\n#...#t##tot#tt\n#f....ttt#tttt\n######tttttttt\ntttttttttttttt\n\nmessage . ||-----/|| |||-----|| \n\n##########\n#dooo..e##\n#.......e#\n#..i.#1..#\n#.pcp#1.g#\n#..i..1t##\n#......t#t\n#f.....t#t\n#########t\ntttttttttt\n\nmessage . |-----/\\|| |||-----|| \n\n############\n#d...tttttt#\n#.oootttttt#\n#...i..1ttt#\n#.aa2tt..o.#\n#f...tttttt#\n############\ntttttttttttt\n\nmessage . |\\//\\----- ||-----/|| \n\n#############\n#d....ettd.e#\n#......tt...#\n#.pp...tt#.o#\n#.1i...tt...#\n#.1i..#o....#\n#..i...tt...#\n#f....gttf.g#\n#############\nttttttttttttt\n\n\nmessage . |\\\\/-----/ ||-----/|\\ \n\n\n########\n#d..o.e#\n#..pp..#\n#ttttto#\n#..11b.#\n#f..oig#\n########\ntttttttt\n\nmessage . - || < \\ < / | | \\ / - / \n\n", [2, 2, 2, 3, 3, 3, 3, 3, 0, 0, 1, 1, 2, 1, 1, 0, 0, 1, 1, 3, 3, 3, 3, 2, 1, 1, 1, 1, 0, 0, 3, 1, 2, 3, 3, 1, 0, 0, 0, 3, 3, 3], "background wall wallt:0,0,0,0,0,0,0,0,background wall:1,background pit pitwt:2,1,background cornertl:3,background:4,\n4,4,4,4,background cornerbl:5,1,2,1,4,4,4,4,4,\n4,4,1,2,1,4,4,4,4,4,4,4,1,\n2,1,background barvn:6,background barvn crate01:7,6,4,4,4,4,1,2,1,4,\nbackground barh:8,0,1,4,4,4,1,2,1,4,8,background crate01:9,9,\n4,4,4,1,2,1,background cornertr:10,8,4,4,4,4,4,\n1,2,0,0,0,0,1,4,4,4,1,2,1,\n3,4,5,1,4,4,4,1,2,1,4,background target:11,4,\n11,4,11,4,1,2,1,10,4,4,4,4,4,\nbackground cornerbr:12,1,2,0,0,0,0,0,0,0,0,1,2,\n", 7, "1627770023925.0144"] + ["title Broken Abacus\nauthor Le Slo\nhomepage le-slo.itch.io/\n\nbackground_color #0A060f\nnoaction\nagain_interval 0.05\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nFloorL\n#9A9510 #7A4690\n01111\n01111\n01111\n01111\n01111\n\nFloorR\n#7A4690 #9A9510\n00001\n00001\n00001\n00001\n00001\n\nFloorT\n#9A9510 #8d6d9f\n00000\n11111\n11111\n11111\n11111\n\nFloorB\n#8d6d9f #9A9510\n00000\n00000\n00000\n00000\n11111\n\nCornerTL\n#9A9510 #7A4690\n00000\n01011\n00111\n01111\n01111\n\nCornerTR\n#9A9510 #7A4690\n00000\n11010\n11100\n11110\n11110\n\n\n\nCornerBL\n#9A9510 #7A4690\n01111\n01111\n00111\n01011\n00000\n\nCornerBR\n#7A4690 #9A9510\n00001\n00001\n00011\n00101\n11111\n\nPitT\n#5A3670 #3A2640 #1A1620\n00000\n11111\n11111\n22222\n22222\n\nPitWT\n #364355 #162335 #081118\n00000\n11111\n11111\n22222\n22222\n\n\nWallT\n#6187b9 #6d8caf\n00000\n00000\n00000\n00000\n00000\n\nPit\n#0A060f\n00000\n00000\n00000\n00000\n00000\n\nWall\n#6187b9 #6187b9 #465365\n00000\n11111\n11111\n11111\n22222\n\n\nBackground\n#7A4690 #7A4690\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\n#d6cF24\n.....\n.000.\n.0.0.\n.000.\n.....\n\nBarH\n#a69F10\n.....\n.....\n00000\n.....\n.....\n\nBarV\n#C6BF14 black\n..1..\n..1..\n..1..\n..1..\n..1..\n\nBarHN\nred\n.....\n.....\n00000\n.....\n.....\n\nBarVN\n#465365 #4A3500\n..1..\n..1..\n..1..\n..1..\n..1..\n\ncrate01\n#C6BF14 #7A7510 #9A9510 #d6cF24\n.....\n.003.\n.200.\n.120.\n.....\n\n\naux\ntransparent\n\ncantMove\ntransparent\n\n\ncantMove2\ntransparent\n\nauxPush\ntransparent\n\nauxSolid\n#23285b\n.....\n.000.\n.000.\n.000.\n.....\n\nauxPit\ntransparent\n\n\nAnim01\n#ccd7a5\n..0..\n.000.\n00.00\n.000.\n..0..\n\nAnim02\n#ccd7a5\n..0..\n.0.0.\n0.0.0\n.0.0.\n..0..\n\nAnim03\n#ccd7a5\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nAnim04\n#ccd7a5\n.....\n..0..\n.000.\n..0..\n.....\n\nAnim05\n#ccd7a5\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = barH\nI = barvn\nT = pit\n\nO = Target\n\n1 = Crate01\n2 = barH and BarVN and crate01\n\na = Crate01 and barh\nb = Crate01 and barvn\nc = barh and barvn\n\nd = CornerTL\ne = CornerTR\nf = CornerBL\ng = CornerBR\nh = FloorL\nj = FloorR\nk = FloorT\nl = FloorB\nplayer = barH or BarV or barhn or barvn\ncrate = crate01\n\nplayernotMove = barhn or barvn\n\nanims = anim01 or anim02 or anim03 or anim04 or anim05\n\nFloor = CornerTL or CornerTR or CornerBL or CornerBR or FloorL or FloorR or FloorT or FloorB\n=======\nSOUNDS\n=======\n\nsfx0 36772507\nsfx1 36772505\n\nbarh move 13941707\n\nsfx2 75593907\n\nsfx3 978108\n\nclosemessage 489108\n\nrestart 35665908\nundo 23271308\n\n(fall)\n\nsfx10 49054908\n\n(stumble)\n\nsfx9 8799108\n\nstartlevel 35665908\n\ntitlescreen 39484708\n\nendlevel 72619508\n\nstartgame 48479708\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFloor\n\npit\nauxPit\nauxSolid\ncantMove2\naux, auxPush\nTarget\npitT, pitWT\nbarvn, barv\n\nbarhn, BarH,\nWall, Crate\ncantMove\nWallT\nanims\n\n======\nRULES\n======\n\ndown [wall no WallT| wall] -> [Wall WallT | wall] \nup [pit no pitT | no pit no wall] -> [pit pitT | ] \nup [pit no pitWT | no pit wall] -> [pit pitWT | wall] \n\n(BLOQUEAMOS EL MOVIMIENTO DE LOS INACTIVOS)\n[> playernotMove] -> [playernotMove]\n\n(***************************HORIZONTAL ACTIVO*******************************)\n\n(-----------------CONTROLA HORIZONTAL------------------)\n\n(casos en los que se puede empujar la barra vertical)\nhorizontal[ > barh crate | barvn] -> [ > barh > crate | > barvn]\nhorizontal[ > barh crate | crate] -> [ > barh > crate| > crate ]\nhorizontal[ > barh crate barvn] -> [ > barh > crate > barvn]\n\n(hacemos el multiban)\nhorizontal[> Crate | crate] -> [> Crate | > Crate ]\n+ horizontal[> crate | barvn] -> [> crate | > barvn ] \n+ horizontal[> crate barvn] -> [> crate > barvn ]\n\n\n(Quitazmos el movimiento de las cajas)\nhorizontal[> crate ] -> [crate]\n\n(movemos todas las piezas verticales)\n[> barvn] [barvn] -> [> barvn] [> barvn]\n(horizontal[> barvn no auxSolid ] -> [> barvn auxSolid] sfx1\n+ vertical[auxSolid| barvn no auxSolid] -> [auxSolid | barvn auxSolid]\n\nhorizontal[> barvn][auxSolid barvn no auxPush] -> [> barvn][> barvn auxSolid auxPush] sfx0\n[auxSolid] -> [ ])\n\n(Empujamos cajas)\nhorizontal[ > barvn | Crate ] -> [ > barvn | > Crate]\n\n(hacemos el multiban)\nhorizontal[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ horizontal[> Crate | crate aux] -> [Crate aux | crate aux]\n+ horizontal[> Crate | wall] -> [crate aux | wall]\n\n(Vemos si nos chocamos)\nhorizontal[> barvn | crate Aux] -> [barvn cantMove | crate Aux] \nhorizontal [ > barvn | wall] -> [barvn cantMove | wall]\n\n(Paralizamos todas las barras)\nhorizontal[cantMove][> barvn] -> [cantMove] [barvn cantMove]\nhorizontal[cantMove][> crate] -> [cantMove] [crate ]\n\n(Empujar en horizontal)\nhorizontal[ > barh crate no BarVN| Crate no barh] -> [ > barh > crate| > Crate] \nhorizontal[ > barh crate no BarVN] -> [ > barh > crate]\n\nhorizontal[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ horizontal[> Crate | crate aux] -> [Crate aux | crate aux] \n+ horizontal[> Crate | wall] -> [crate aux | wall] \n+ horizontal[> Crate | cantMove] -> [crate aux | cantMove] \n\n(Vemos si nos chocamos)\nhorizontal[ > barh | wall ] -> [ barh cantMove2| wall]sfx9\n(Paralizamos todas las barras)\nhorizontal[> barh][barh cantMove2] -> [barh cantMove2][barh cantMove2]\n\nhorizontal[> crate cantMove] -> [crate cantMove]\nhorizontal[> crate cantMove2] -> [crate cantMove2]\nhorizontal[> crate | cantMove] -> [crate | cantMove]\n\n\nhorizontal[> barvn] [cantMove2] -> [barvn] [cantMove2] sfx9\n(Movemos lo que está pegado a la barra vertical)\n\nhorizontal[> barvn crate] -> [> barvn > crate]\nhorizontal[> crate] [cantMove2] -> [crate] [cantMove2]\n\n\nhorizontal[> barh crate no cantMove | no barvn] -> [> barh > crate no cantMove | no barvn]\n\n(Limpiamos el tablero)\n[aux] -> []\n[cantMove] -> []\n[cantMove2] -> []\n[auxPush] -> []\n\n\n(-----------------CONTROLA VERTICAL------------------)\n\nvertical [> crate ] -> [crate] \n(casos en los que se puede empujar la barra vertical)\nvertical[ > barh | crate] -> [ > barh | > crate ]\nvertical[ > barh crate barvn] -> [ > barh > crate > barvn] \n\n\n(hacemos el multiban)\nvertical[> Crate | crate] -> [> Crate | > Crate ] \n+ vertical[> crate | barvn crate] -> [> crate | > barvn crate] \n+ vertical[> crate barvn] -> [> crate > barvn ] \n\n\n(Quitazmos el movimiento de las cajas)\nvertical [> crate ] -> [crate] \nvertical [ > barvn | wall] -> [barvn cantMove | wall]\n\n(movemos todas las piezas verticales)\n[> barvn] [barvn] -> [> barvn] [> barvn]\n(vertical[> barvn no auxSolid ] -> [> barvn auxSolid] \n+ vertical[auxSolid| barvn no auxSolid] -> [auxSolid | barvn auxSolid]\n\nvertical[> barvn][auxSolid barvn no auxPush] -> [> barvn][> barvn auxSolid auxPush] sfx0\n[auxSolid] -> [ ])\n\n(Empujamos cajas)\nvertical[ > barvn crate| Crate ] -> [ > barvn crate| > Crate]\n\n(hacemos el multiban)\nvertical[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ vertical[> Crate | crate aux] -> [Crate aux | crate aux]\n+ vertical[> Crate | wall] -> [crate aux | wall]\n\n(Vemos si nos chocamos)\nvertical[ > barvn | wall] -> [barvn cantMove | wall] \n\n(Paralizamos todas las barras)\nvertical[cantMove][> barvn] -> [cantMove] [barvn cantMove]\nvertical[cantMove][> crate] -> [cantMove] [crate ]\n(En vertical)\nvertical[ > barh | Crate ] -> [ > barh | > Crate]\nvertical[ > barh crate] -> [ > barh > crate] \n\nvertical[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ vertical[> Crate | crate aux] -> [Crate aux | crate aux] \n+ vertical[> Crate | wall] -> [crate aux | wall] \n\n(Vemos si nos chocamos)\nvertical[ > barh | wall ] -> [ barh cantMove2| wall]\nvertical[ > barh | crate aux ] -> [ barh cantMove2| crate aux]\n(Paralizamos todas las barras)\nvertical[> barh][barh cantMove2] -> [barh cantMove2][barh cantMove2] sfx9\nvertical [> barvn] [cantMove2] -> [barvn] [cantMove2] sfx9\n\nvertical[> crate] [cantMove2] -> [crate] [cantMove2]\n\n(Movemos lo que está pegado a la barra vertical)\nvertical[> barvn crate] -> [> barvn > crate]\n\nvertical[> barh crate] -> [> barh > crate]\n(Limpiamos el tablero)\n[aux] -> []\n[cantMove] -> []\n[cantMove2] -> []\n[auxPush] -> []\n\n(\n(comprobamos si empujamos y nos chocamos con la barra vertical)\nhorizontal[ > barh crate | barvn] -> [ > barh > crate | > barvn auxPush]\nhorizontal[ > barh barvn crate ] -> [ > barh > crate > barvn auxPush]\n\n[> barVN auxPush] [barVn no auxPush] -> [> barVN auxPush][> barVN auxPush]\n\nhorizontal [ > barvn | wall] -> [barvn cantMove | wall]\n\n[cantMove][> barvn] -> [cantMove] [barvn cantMove]\n\nhorizontal[ > barvn | Crate ] -> [ > barvn | > Crate]\n\n[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ [> Crate | crate aux] -> [Crate aux | crate aux]\n+ [> Crate | wall] -> [crate aux | wall]\n\nhorizontal[> barvn | crate Aux] -> [barvn cantMove | crate Aux]\n\n[cantMove][> barvn] -> [cantMove] [barvn cantMove]\n\n[> barvn crate] -> [> barvn > crate]\n\nhorizontal[ > barh | wall ] -> [ barh cantMove| wall]\n\n(Movimiento básico)\n\n(Empujar en horizontal)\nhorizontal[ > barh crate | Crate no barh] -> [ > barh > crate| > Crate] sfx0\nhorizontal[ > barh crate no BarVN] -> [ > barh > crate]\n(En vertical)\nvertical[ > barh | Crate ] -> [ > barh | > Crate]\nvertical[ > barh crate] -> [ > barh > crate]\n\n[aux] -> []\n\n[> Crate | crate no aux] -> [> Crate | > Crate ]\n+ [> Crate | crate aux] -> [Crate aux | crate aux]\n+ [> Crate | wall] -> [crate aux | wall]\n\nhorizontal[> barh | crate Aux] -> [> barh | crate Aux]\nvertical[> barh | wall] -> [barh cantMove | wall]\n[cantMove][> crate] -> [cantMove] [crate cantMove]\n\n[cantMove][> crate] -> [cantMove][crate]\n[cantMove][> barvn] -> [cantMove][barvn]\n\n[aux] -> []\n[cantMove] -> []\n[auxPush] -> []\n\n)\n\n\n(\nvertical[ > barh | Crate ] -> [ > barh | > Crate]\n\n\nhorizontal[ > barv | Crate ] -> [ > barv | > Crate]\nvertical[ > barv crate | Crate no barv] -> [ > barv > crate| > Crate] sfx0\n\n\n\nvertical[> barh | crate Aux] -> [barh cantMove | crate Aux]\nhorizontal[> barv | crate Aux] -> [barv cantMove | crate Aux]\n[> player | wall] -> [player cantMove| wall]\n\n\n\n\n[> player][cantMove] ->[player][cantMove]\nvertical [> barv no barHN crate] -> [> barv > crate]\nhorizontal [> barv crate] -> [> barv > crate]\nhorizontal [> barh no barvN crate] -> [> barh > crate]\nvertical [> barh crate] -> [> barh > crate]\n[aux] -> []\n[cantMove] -> [])\n\n(Cambiar los personajes)\n\nvertical [ > barvn | crate no barvn] -> [ > barvn | crate no barvn] sfx2\nhorizontal [ > barh | crate no barh] -> [ > barh | crate no barh] sfx2\nhorizontal [ > barh crate | barvn] -> [ > barh crate | barvn] sfx2\n[> crate no barh no barvn ] -> [> crate no barh no barvn ] sfx0\n\n[action player] [barVN]-> [action player][barV aux]\n[action player] [barV no aux]-> [action player][barVN]\n\n[aux] -> []\n\n[action player] [barHN]-> [action player][barH aux]\n[action player] [barH no aux]-> [action player][barHN]\n\n[aux] -> []\n\n\nlate[anim05] -> []\nlate[anim04] -> [anim05]\nlate[anim03] -> [anim04]\nlate[anim02] -> [anim03]\nlate[anim01] -> [anim02]\n\n\nlate random[] -> [cantMove]\n\nlate[barvn pit no auxSolid] -> [barVn pit auxSolid] \nlate[cantMove][barvn no pit] -> [cantMove2][barVn] \n\nlate[barvn barh crate auxSolid no auxPit] -> [barvn barh crate auxSolid auxPit]\n\nlate[auxPit][barh pit no auxPit] -> [auxPit][barh pit auxPit] \nlate[auxPit][cantMove][barh no pit] -> [auxPit][cantMove2][barh] \n\nlate [CantMove][barVn auxSolid] -> [CantMove] [Anim01 auxSolid]\nlate [CantMove][barH auxPit] -> [CantMove] [Anim01 auxPit]\n\nlate [CantMove] -> []\nlate [CantMove2] -> []\nlate [auxPit] -> []\nlate [auxSolid] -> [ ]\n\nlate [aux] -> []\n\nlate random[] -> [cantMove]\n\nlate[barh pit no auxPit] -> [barh pit auxPit] \nlate[cantMove][barh no pit] -> [cantMove2][barh] \n\nlate[barvn barh crate auxPit no auxSolid] -> [barvn barh crate auxSolid auxPit]\n\nlate[auxSolid][barvn pit no auxSolid] -> [auxSolid][barvn pit auxSolid] \nlate[auxSolid][cantMove][barvn no pit] -> [auxSolid][cantMove2][barvn] \n\nlate [CantMove][barVn auxSolid] -> [CantMove] [Anim01 auxSolid]\nlate [CantMove][barh auxPit] -> [CantMove] [Anim01 auxPit]\n\nlate [CantMove] -> []\nlate [CantMove2] -> []\nlate [auxPit] -> []\nlate [auxSolid] -> [ ]\n\nlate [aux] -> []\n\nlate[crate no player pit] -> [pit Anim01]\n\nlate [anims] -> [anims] again\nlate[Anim01] -> [Anim01] sfx10\n(late[barvn aux pit no auxSolid] -> [barvn auxSolid aux pit] \n+late vertical [barvn auxSolid| barvn pit no auxSolid] -> [barvn auxSolid | barvn pit auxSolid aux] \n+late vertical [cantMove][barvn auxSolid| barvn no pit] -> [cantMove2] [barvn auxSolid | barvn] \n+late [barvn auxSolid crate barh no auxPit] -> [barvn auxSolid auxPit crate barh] \n+late [barvn auxPit crate barh no auxSolid] -> [barvn auxSolid auxPit crate barh] \n+late horizontal [barh auxPit | barh pit no auxPit] -> [barh auxPit |pit barh auxPit aux] \n+late horizontal [cantMove][barh auxSolid| barh no pit] -> [cantMove2][barh auxSolid | barh] \n\nlate [CantMove][player auxSolid] -> [CantMove] [auxSolid]\nlate [CantMove][player auxPit] -> [CantMove] [auxPit]\n\nlate [CantMove] -> []\nlate [CantMove2] -> []\nlate [auxPit] -> []\nlate [auxSolid] -> [ ]\nlate [aux] -> []\n\nrandom late[barh no aux] -> [barh aux]\nrandom late [] -> [cantMove]\n\nlate[barh aux pit no auxPit] -> [barh auxPit aux pit] \n+late vertical [barvn auxSolid| barvn pit no auxSolid] -> [barvn auxSolid | barvn pit auxSolid aux] \n+late vertical [cantMove][barvn auxSolid| barvn no pit] -> [cantMove2] [barvn auxSolid | barvn] \n+late [barvn auxSolid crate barh no auxPit] -> [barvn auxSolid auxPit crate barh] \n+late [barvn auxPit crate barh no auxSolid] -> [barvn auxSolid auxPit crate barh] \n+late horizontal [barh auxPit | barh pit no auxSolid] -> [barh auxPit |pit barh auxPit aux] \n+late horizontal [cantMove][barh auxSolid| barh no pit] -> [cantMove2][barh auxSolid | barh] \n\nlate [CantMove][player auxSolid] -> [CantMove] [auxSolid]\nlate [CantMove][player auxPit] -> [CantMove] [auxPit])\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll target on crate\nAll barv on Crate\n(no barh)\n=======\nLEVELS\n=======\n\nmessage . ||||-----| |||||----- \n\n###########\n#d.......e#\n#..1.1.1..#\n#...ppp...#\n#...ooo...#\n#f.......g#\n###########\nttttttttttt\n\nmessage . |||-----|| |||||----- \n\n#########\n#d.....e#\n#...o1#.#\n#.ppo1..#\n#.#.o1..#\n#f.....g#\n#########\nttttttttt\n\nmessage . ||-----||| |||||----- \n\n#########\n#d..1..e#\n#.o..i..#\n#.pppi..#\n#.o..i..#\n#f..1..g#\n#########\nttttttttt\n\nmessage . |-----|||| |||||----- \n\n#############\n#d.....e#d.e#\n#.......#.o.#\n#..i.#1.#f..#\n#.pcp#1.##o.#\n#..i..1.....#\n#.........o.#\n#f.........g#\n#############\nttttttttttttt\n\nmessage . |||||----- ||||-----| \n\nttt###ttt\n####i####\n#d..i.oe#\n#..1i1..#\n#f..i.o.#\n##pp2...#\nt#f...og#\nt########\nttttttttt \n\nmessage . ||||-----| ||||-----| \n \n########### \n#d.......e# \n#........g# \n#.o.bo##### \n#...i.e#### \n#.apcag#### \n#.o.bo##### \n#........e# \n#f.......g# \n########### \nttttttttttt \n \nmessage . |||-----|| ||||-----| \n \n#######\n#d..1e#\n#o..i.#\n#.ppi.#\n#o..i.#\n#f..1g#\n#######\nttttttt \n \nmessage . ||-----||| ||||-----| \n \n \ntttt### \n#####o# \n#d....# \n#i.pp.# \n#i.11.# \n#f.g#o# \n####### \nttttttt \n \nmessage . |-----|||| ||||-----| \n \n \n###ttttt \n#o###### \n#.#d..e# \n#o#.ppg# \n#..i1.##\n#o.i.1e#\n#..i1..#\n#f....g#\n########\ntttttttt\n\nmessage . |||||----- |||-----|| \n\nttt######\nttt#de#1#\nttt#....#\n####i.1.#\n#de#i1..#\n#.o..pp.#\n#foog#fg#\n#########\nttttttttt\n\nmessage . ||||-----| |||-----|| \n\nt#####tttt\n##d.e##ttt\n#d.i.###tt\n#f.b..e#tt\n##..pa.###\n#o.#....e#\n#f...g#og#\n##########\ntttttttttt\n\nmessage . |||-----|| |||-----|| \n\nmessage CRACK!\n\n###ttttttttttt\n#d.tt.tt.#tttt\n#..ttttttt.t#t\n#...ttttt.t.#t\n#..i..tt.ttttt\n#.acpttttt.#tt\n#..i.tttttt#tt\n#...#t##tot#tt\n#f....ttt#tttt\n######tttttttt\ntttttttttttttt\n\nmessage . ||-----/|| |||-----|| \n\n##########\n#dooo..e##\n#.......e#\n#..i.#1..#\n#.pcp#1.g#\n#..i..1t##\n#......t#t\n#f.....t#t\n#########t\ntttttttttt\n\nmessage . |-----/\\|| |||-----|| \n\n############\n#d...tttttt#\n#.oootttttt#\n#...i..1ttt#\n#.aa2tt..o.#\n#f...tttttt#\n############\ntttttttttttt\n\nmessage . |\\//\\----- ||-----/|| \n\n#############\n#d....ettd.e#\n#......tt...#\n#.pp...tt#.o#\n#.1i...tt...#\n#.1i..#o....#\n#..i...tt...#\n#f....gttf.g#\n#############\nttttttttttttt\n\n\nmessage . |\\\\/-----/ ||-----/|\\ \n\n\n########\n#d..o.e#\n#..pp..#\n#ttttto#\n#..11b.#\n#f..oig#\n########\ntttttttt\n\nmessage . - || < \\ < / | | \\ / - / \n\n",[2,2,2,3,3,3,3,3,0,0,1,1,2,1,1,0,0,1,1,3,3,3,3,2,1,1,1,1,0,0,3,1,2,3,3,1,0,0,0,3,3,3],"background wall wallt:0,0,0,0,0,0,0,0,background wall:1,background pit pitwt:2,1,background cornertl:3,background:4,\n4,4,4,4,background cornerbl:5,1,2,1,4,4,4,4,4,\n4,4,1,2,1,4,4,4,4,4,4,4,1,\n2,1,background barvn:6,background barvn crate01:7,6,4,4,4,4,1,2,1,4,\nbackground barh:8,0,1,4,4,4,1,2,1,4,8,background crate01:9,9,\n4,4,4,1,2,1,background cornertr:10,8,4,4,4,4,4,\n1,2,0,0,0,0,1,4,4,4,1,2,1,\n3,4,5,1,4,4,4,1,2,1,4,background target:11,4,\n11,4,11,4,1,2,1,10,4,4,4,4,4,\nbackground cornerbr:12,1,2,0,0,0,0,0,0,0,0,1,2,\n",7,"1627770023925.0144"] ], [ `gallery game: soliquid`, - ["title Soliquid\nauthor Anton Klinger\nhomepage www.puzzlescript.net\ncolor_palette 7\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\ndarkgray Gray\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nwhite\n.....\n.000.\n.000.\n.000.\n.....\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nCrate\norange Yellow\n00000\n0...0\n0.1.0\n0...0\n00000\n\nFrom\norange\n.....\n.000.\n.....\n.000.\n.....\n\nTo\norange\n.....\n.0.0.\n.0.0.\n.0.0.\n.....\n\nLiquid\ntransparent Green green\n01110\n12001\n12201\n12221\n01110\n\nFrozen\ntransparent lightblue lightblue\n01110\n12221\n10221\n10021\n01110\n\nWantsToFreeze\nwhite\n.....\n.....\n.0...\n.....\n.....\n\nWantsToMelt\nblack\n.....\n.....\n...0.\n.....\n.....\n\nFreezer\nlightblue lightgray black\n1...1\n.202.\n.000.\n.202.\n1...1\n\nHeater\nyellow darkred black\n1...1\n.020.\n.202.\n.020.\n1...1\n\nFront1\nRed\n00000\n.....\n00000\n.....\n00000\n\nFront2\nblue\n00000\n.....\n00000\n.....\n00000\n\n\nUU\nYellow\n..0..\n..0..\n.....\n.....\n.....\n\nDD\nYellow\n.....\n.....\n.....\n..0..\n..0..\n\nLL\nYellow\n.....\n.....\n00...\n.....\n.....\n\nRR\nYellow\n.....\n.....\n...00\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Liquid\nPlayer = Liquid or Frozen\nO = Target\nC = Crate\nT = Target and Crate\nF = Target and Liquid\nObstacle = Wall or Crate\nK = Freezer\nH = Heater\n\nFront = Front1 or Front2\n\n=======\nSOUNDS\n=======\n\nLiquid MOVE 32774309\nFrozen Move 88300107\nendlevel 58794308\nendgame 37721308\nsfx0 35611100\nsfx1 66706102\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nFreezer, Heater\nLiquid, Wall, Crate, Frozen\nFront1, Front2\nUU,DD,LL,RR\nFrom, To\nWantsToFreeze, WantsToMelt\n\n======\nRULES\n======\n(establish front)\n[ > Player | Crate | NO Obstacle ] -> [ > Player | From | To ]\n[ > Liquid | Obstacle ] -> [ Front1 | Obstacle]\n[ > Frozen | Obstacle ] -> [ Front2 | Obstacle]\n[ UP Player ] -> [ up Player UU ]\n[ down Player ] -> [ down Player DD ]\n[ left Player ] -> [ left Player LL ]\n[ right Player ] -> [ right Player RR ]\n\n[Front] [From] -> [Front] [Crate]\n[Front] [To] -> [Front] []\n[Front] [> Player | NO Player NO Front] -> [Front] [ Front | ]\n\n(move all players)\n\n(create trail for liquid)\nlate UP [UU NO Obstacle | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | ]\nlate UP [UU NO Obstacle | Liquid | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | Liquid | ]\n\nlate down [DD NO Obstacle | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | ]\nlate down [DD NO Obstacle | Liquid | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | Liquid | ]\n\nlate left [LL NO Obstacle | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | ]\nlate left [LL NO Obstacle | Liquid | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | Liquid | ]\n\nlate right [RR NO Obstacle | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | ]\nlate right [RR NO Obstacle | Liquid | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | Liquid | ]\n\n\n(prevent frozen from getting smaller)\nlate UP [UU NO Obstacle | Frozen | Frozen Front| NO Frozen ] -> [Frozen | Frozen | Frozen | ]\nlate UP [UU NO Obstacle | Frozen Front| NO Frozen ] -> [Frozen | Frozen | ]\n\nlate down [DD NO Obstacle | Frozen | Frozen Front| NO Frozen ] -> [Frozen | Frozen | Frozen | ]\nlate down [DD NO Obstacle | Frozen Front| NO Frozen ] -> [Frozen | Frozen | ]\n\nlate left [LL NO Obstacle | Frozen | Frozen Front| NO Frozen ] -> [Frozen | Frozen | Frozen | ]\nlate left [LL NO Obstacle | Frozen Front| NO Frozen ] -> [Frozen | Frozen | ]\n\nlate right [RR NO Obstacle | Frozen | Frozen Front| NO Frozen ] -> [Frozen | Frozen | Frozen | ]\nlate right [RR NO Obstacle | Frozen Front| NO Frozen ] -> [Frozen | Frozen | ]\n\n(cleanup)\nlate [UU] -> []\nlate [DD] -> []\nlate [LL] -> []\nlate [RR] -> []\nlate [Front1] -> [ Liquid ]\nlate [Front2] -> [ Frozen ]\nlate [From] -> []\nlate [To] -> [Crate]\n\n(check freezing or heating)\nlate [Freezer Liquid] -> [Freezer WantsToFreeze]\nlate [Liquid NO Freezer][WantsToFreeze] -> [Liquid][Liquid]\nlate [WantsToFreeze] -> [Frozen] sfx0\n\nlate [Heater Frozen] -> [Heater WantsToMelt]\nlate [Frozen NO Heater][WantsToMelt] -> [Frozen][Frozen]\nlate [WantsToMelt] -> [Liquid] sfx1\n\n==============\nWINCONDITIONS\n==============\n\nAll Player on Target\nAll Target on Player\n\n=======\nLEVELS\n=======\n\n#########\n#.......#\n#.......#\n#...ooo.#\n#.p.ooo.#\n#...ooo.#\n#.......#\n#.......#\n#########\n\n#########\n####....#\n#.......#\n#.p.....#\n#.......#\n####o####\n####o####\n####o####\n#########\n\n#########\n#########\n#....####\n#.p..####\n#...oo.##\n###.oo.##\n###....##\n#########\n#########\n\n#########\n#.#...#.#\n#.#.p.#.#\n#.#...#.#\n#.#ccc#.#\n#.#ooo#.#\n#.#...#.#\n#.#...#.#\n#########\n\n##########\n#####...##\n#...c...##\n#.......##\n#....p.c##\n##c.o....#\n##.......#\n##...c...#\n##...#####\n##########\n\n#########\n#########\n#hh....k#\n#hh.p..k#\n#......k#\n##o######\n##o######\n##o######\n#########\n\n########\n#...####\n#.p....#\n#oo##..#\n#......#\n#..#.kk#\n####.kk#\n########\n\n############\n####hh######\n####..######\n#.......kk##\n#.p..o..kk##\n#..#.o##..##\n####......##\n############\n\n############\n#kk...#....#\n#kk.p.#.oo.#\n#.....#.oo.#\n#..####....#\n#..hh..hh..#\n#..hh..hh..#\n#hh..hh..hh#\n#hh..hh..hh#\n############\n\n#################\n#kkkkk.kk.kkk#oo#\n#k.kk#k#kkkk.#.##\n#kk#k.k.kkkkkkk.#\n#k...k.kkk#.kkkk#\n#k.p.kkkkkkkkk.k#\n#k...k.kk..kk#kk#\n#kkk#kk#kkk#.k.k#\n#k#.k#kkkk.kkkkk#\n#kkkkk..kkkkkkk.#\n#################\n\n##########\n#........#\n#.p......#\n#...cc...#\n#..cooc..#\n#..cooc..#\n#...cc...#\n#........#\n#........#\n##########\n\nmessage Thank you for playing my game!\n\n", [2, 2, 3, 3, 0, 3, 2, 1, 0, 1, 2, 3, 2, 2, 2, 2, 2, 1, 0, 0], "background wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n0,1,1,1,background liquid:2,background liquid target:3,2,background crate:4,0,\n0,1,1,1,2,3,2,4,0,\n0,1,1,1,1,background target:5,1,4,0,\n0,0,0,0,0,0,0,0,0,\n0,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n", 3, "1627770093173.774"] + ["title Soliquid\nauthor Anton Klinger\nhomepage www.puzzlescript.net\ncolor_palette 7\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\ndarkgray Gray\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nwhite\n.....\n.000.\n.000.\n.000.\n.....\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nCrate\norange Yellow\n00000\n0...0\n0.1.0\n0...0\n00000\n\nFrom\norange\n.....\n.000.\n.....\n.000.\n.....\n\nTo\norange\n.....\n.0.0.\n.0.0.\n.0.0.\n.....\n\nLiquid\ntransparent Green green\n01110\n12001\n12201\n12221\n01110\n\nFrozen\ntransparent lightblue lightblue\n01110\n12221\n10221\n10021\n01110\n\nWantsToFreeze\nwhite\n.....\n.....\n.0...\n.....\n.....\n\nWantsToMelt\nblack\n.....\n.....\n...0.\n.....\n.....\n\nFreezer\nlightblue lightgray black\n1...1\n.202.\n.000.\n.202.\n1...1\n\nHeater\nyellow darkred black\n1...1\n.020.\n.202.\n.020.\n1...1\n\nFront1\nRed\n00000\n.....\n00000\n.....\n00000\n\nFront2\nblue\n00000\n.....\n00000\n.....\n00000\n\n\nUU\nYellow\n..0..\n..0..\n.....\n.....\n.....\n\nDD\nYellow\n.....\n.....\n.....\n..0..\n..0..\n\nLL\nYellow\n.....\n.....\n00...\n.....\n.....\n\nRR\nYellow\n.....\n.....\n...00\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Liquid\nPlayer = Liquid or Frozen\nO = Target\nC = Crate\nT = Target and Crate\nF = Target and Liquid\nObstacle = Wall or Crate\nK = Freezer\nH = Heater\n\nFront = Front1 or Front2\n\n=======\nSOUNDS\n=======\n\nLiquid MOVE 32774309\nFrozen Move 88300107\nendlevel 58794308\nendgame 37721308\nsfx0 35611100\nsfx1 66706102\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nFreezer, Heater\nLiquid, Wall, Crate, Frozen\nFront1, Front2\nUU,DD,LL,RR\nFrom, To\nWantsToFreeze, WantsToMelt\n\n======\nRULES\n======\n(establish front)\n[ > Player | Crate | NO Obstacle ] -> [ > Player | From | To ]\n[ > Liquid | Obstacle ] -> [ Front1 | Obstacle]\n[ > Frozen | Obstacle ] -> [ Front2 | Obstacle]\n[ UP Player ] -> [ up Player UU ]\n[ down Player ] -> [ down Player DD ]\n[ left Player ] -> [ left Player LL ]\n[ right Player ] -> [ right Player RR ]\n\n[Front] [From] -> [Front] [Crate]\n[Front] [To] -> [Front] []\n[Front] [> Player | NO Player NO Front] -> [Front] [ Front | ]\n\n(move all players)\n\n(create trail for liquid)\nlate UP [UU NO Obstacle | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | ]\nlate UP [UU NO Obstacle | Liquid | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | Liquid | ]\n\nlate down [DD NO Obstacle | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | ]\nlate down [DD NO Obstacle | Liquid | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | Liquid | ]\n\nlate left [LL NO Obstacle | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | ]\nlate left [LL NO Obstacle | Liquid | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | Liquid | ]\n\nlate right [RR NO Obstacle | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | ]\nlate right [RR NO Obstacle | Liquid | Liquid NO Front| NO Liquid ] -> [Liquid | Liquid | Liquid | ]\n\n\n(prevent frozen from getting smaller)\nlate UP [UU NO Obstacle | Frozen | Frozen Front| NO Frozen ] -> [Frozen | Frozen | Frozen | ]\nlate UP [UU NO Obstacle | Frozen Front| NO Frozen ] -> [Frozen | Frozen | ]\n\nlate down [DD NO Obstacle | Frozen | Frozen Front| NO Frozen ] -> [Frozen | Frozen | Frozen | ]\nlate down [DD NO Obstacle | Frozen Front| NO Frozen ] -> [Frozen | Frozen | ]\n\nlate left [LL NO Obstacle | Frozen | Frozen Front| NO Frozen ] -> [Frozen | Frozen | Frozen | ]\nlate left [LL NO Obstacle | Frozen Front| NO Frozen ] -> [Frozen | Frozen | ]\n\nlate right [RR NO Obstacle | Frozen | Frozen Front| NO Frozen ] -> [Frozen | Frozen | Frozen | ]\nlate right [RR NO Obstacle | Frozen Front| NO Frozen ] -> [Frozen | Frozen | ]\n\n(cleanup)\nlate [UU] -> []\nlate [DD] -> []\nlate [LL] -> []\nlate [RR] -> []\nlate [Front1] -> [ Liquid ]\nlate [Front2] -> [ Frozen ]\nlate [From] -> []\nlate [To] -> [Crate]\n\n(check freezing or heating)\nlate [Freezer Liquid] -> [Freezer WantsToFreeze]\nlate [Liquid NO Freezer][WantsToFreeze] -> [Liquid][Liquid]\nlate [WantsToFreeze] -> [Frozen] sfx0\n\nlate [Heater Frozen] -> [Heater WantsToMelt]\nlate [Frozen NO Heater][WantsToMelt] -> [Frozen][Frozen]\nlate [WantsToMelt] -> [Liquid] sfx1\n\n==============\nWINCONDITIONS\n==============\n\nAll Player on Target\nAll Target on Player\n\n=======\nLEVELS\n=======\n\n#########\n#.......#\n#.......#\n#...ooo.#\n#.p.ooo.#\n#...ooo.#\n#.......#\n#.......#\n#########\n\n#########\n####....#\n#.......#\n#.p.....#\n#.......#\n####o####\n####o####\n####o####\n#########\n\n#########\n#########\n#....####\n#.p..####\n#...oo.##\n###.oo.##\n###....##\n#########\n#########\n\n#########\n#.#...#.#\n#.#.p.#.#\n#.#...#.#\n#.#ccc#.#\n#.#ooo#.#\n#.#...#.#\n#.#...#.#\n#########\n\n##########\n#####...##\n#...c...##\n#.......##\n#....p.c##\n##c.o....#\n##.......#\n##...c...#\n##...#####\n##########\n\n#########\n#########\n#hh....k#\n#hh.p..k#\n#......k#\n##o######\n##o######\n##o######\n#########\n\n########\n#...####\n#.p....#\n#oo##..#\n#......#\n#..#.kk#\n####.kk#\n########\n\n############\n####hh######\n####..######\n#.......kk##\n#.p..o..kk##\n#..#.o##..##\n####......##\n############\n\n############\n#kk...#....#\n#kk.p.#.oo.#\n#.....#.oo.#\n#..####....#\n#..hh..hh..#\n#..hh..hh..#\n#hh..hh..hh#\n#hh..hh..hh#\n############\n\n#################\n#kkkkk.kk.kkk#oo#\n#k.kk#k#kkkk.#.##\n#kk#k.k.kkkkkkk.#\n#k...k.kkk#.kkkk#\n#k.p.kkkkkkkkk.k#\n#k...k.kk..kk#kk#\n#kkk#kk#kkk#.k.k#\n#k#.k#kkkk.kkkkk#\n#kkkkk..kkkkkkk.#\n#################\n\n##########\n#........#\n#.p......#\n#...cc...#\n#..cooc..#\n#..cooc..#\n#...cc...#\n#........#\n#........#\n##########\n\nmessage Thank you for playing my game!\n\n",[2,2,3,3,0,3,2,1,0,1,2,3,2,2,2,2,2,1,0,0],"background wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n0,1,1,1,background liquid:2,background liquid target:3,2,background crate:4,0,\n0,1,1,1,2,3,2,4,0,\n0,1,1,1,1,background target:5,1,4,0,\n0,0,0,0,0,0,0,0,0,\n0,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n",3,"1627770093173.774"] ], [ `gallery game: vexd edit`, - ["title VEXT EDIT\nauthor JACK\n\nrun_rules_on_level_start\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\n#eeeeee\n\nPlayerTarget1mark\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1mark\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nPlayerTarget1\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0Mark\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nWall0 \n#884400 #f00\n00000\n00000\n00000\n00000\n00000\n\nwalll0 \nBrown #f00\n1....\n1....\n1....\n1....\n1....\n\nWallr0 \nBrown #f00\n....1\n....1\n....1\n....1\n....1\n\nWalld0 \nBrown #f00\n.....\n.....\n.....\n.....\n11111\n\nWallu0 \nBrown #f00\n11111\n.....\n.....\n.....\n.....\n\nBlack\nblack\n\nwall0ghost\ntransparent\n\nWall0Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1 \n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall2\n#884400 #00f\n00000\n00000\n00000\n00000\n00000\n\nwalll2\nBrown #00f\n1....\n1....\n1....\n1....\n1....\n\nWallr2 \nBrown #00f\n....1\n....1\n....1\n....1\n....1\n\nWalld2 \nBrown #00f\n.....\n.....\n.....\n.....\n11111\n\nWallu2 \nBrown #00f\n11111\n.....\n.....\n.....\n.....\n\nwalll1 \nBrown #ff0\n1....\n1....\n1....\n1....\n1....\n\nWallr1 \nBrown #ff0\n....1\n....1\n....1\n....1\n....1\n\nWalld1 \nBrown #ff0\n.....\n.....\n.....\n.....\n11111\n\nWallu1 \nBrown #ff0\n11111\n.....\n.....\n.....\n.....\n\nCrate1Mark\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate1\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate01\ntransparent\n\nCrate0\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate0mark\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\ncrate0ghost\ntransparent\n\nPlayer1Mark\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nPlayer1\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nDed1Mark\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nDed1\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nCrated0\n#f80 #f00\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu0\n#f80 #f00\n.010.\n.010.\n.....\n.....\n.....\n\nCratel0\n#f80 #f00\n.....\n00...\n11...\n00...\n.....\n\nCrater0\n#f80 #f00\n.....\n...00\n...11\n...00\n.....\n\nCrated1\n#f80 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu1\n#f80 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nCratel1\n#f80 #ff0\n.....\n00...\n11...\n00...\n.....\n\nCrater1\n#f80 #ff0\n.....\n...00\n...11\n...00\n.....\n\n\nPit1Mark\nblack #bbbb00 white\n.111.\n10001\n10001\n10001\n.111.\n\n\nPit1\nblack #bbbb00 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\npit0ghost\ntransparent\n\nPit0\nblack #bb0000 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\n\npit0u\nblack #bb0000\n10001\n.....\n.....\n.....\n.....\n\npit0d\nblack #bb0000\n.....\n.....\n.....\n.....\n10001\n\npit0l\nblack #bb0000\n1....\n0....\n0....\n0....\n1....\n\npit0r\nblack #bb0000\n....1\n....0\n....0\n....0\n....1\n\npit1u\nblack #bbbb00\n10001\n.....\n.....\n.....\n.....\n\npit1d\nblack #bbbb00\n.....\n.....\n.....\n.....\n10001\n\npit1l\nblack #bbbb00\n1....\n0....\n0....\n0....\n1....\n\npit1r\nblack #bbbb00\n....1\n....0\n....0\n....0\n....1\n\nrim0u\n#b00\n.000.\n.....\n.....\n.....\n.....\n\nrim0l\n#b00\n.....\n0....\n0....\n0....\n.....\n\nrim0r\n#b00\n.....\n....0\n....0\n....0\n.....\n\nrim0d\n#b00\n.....\n.....\n.....\n.....\n.000.\n\nrim1u\n#bb0\n.000.\n.....\n.....\n.....\n.....\n\nrim1l\n#bb0\n.....\n0....\n0....\n0....\n.....\n\nrim1r\n#bb0\n.....\n....0\n....0\n....0\n.....\n\nrim1d\n#bb0\n.....\n.....\n.....\n.....\n.000.\n\nblackul\nblack\n0....\n.....\n.....\n.....\n.....\n\nblackur\nblack\n....0\n.....\n.....\n.....\n.....\n\nblackdl\nblack\n.....\n.....\n.....\n.....\n0....\n\nblackdr\nblack\n.....\n.....\n.....\n.....\n....0\n\nfell0\n#884400 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1mark\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfelld1\n#884400 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nfellu1\n#884400 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nfelll1\n#884400 #ff0\n.....\n00...\n11...\n00...\n.....\n\nfellr1\n#884400 #ff0\n.....\n...00\n...11\n...00\n.....\n\nfell0ghost\ntransparent\n\nsupported\ntransparent\n\nfellcant1\ntransparent\n\ncant1\ntransparent\n\ncant0\ntransparent\n\nfellcant0\ntransparent\n\ndead0a\ndarkred\n.....\n.0.0.\n.....\n.0.0.\n.....\n\ncursor0a\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\ncursor0b\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\n\n\ncursor2a\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\ncursor2b\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\none2mark\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2mark\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2mark\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none2\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0mark\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0mark\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0mark\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\nfour0\n#f00\n.0.0.\n.0.0.\n..00.\n...0.\n...0.\n\nfive0\n#f00\n.000.\n.0...\n.00..\n...0.\n.00..\n\nsix0\n#f00\n..00.\n.0...\n.00..\n.0.0.\n..0..\n\nseven0\n#f00\n.000.\n...0.\n...0.\n..0..\n..0..\n\ninf0\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\ninf0mark\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\n\ndecrement\ntransparent\n\nholding\ntransparent\n\nactiveb\n#f00\n.....\n.0.0.\n.....\n.....\n.....\n\nactive\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\nactivefell\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\npickeda0\ntransparent\n\npickedb0\ntransparent\n\npickeda2\ntransparent\n\npickedb2\ntransparent\n\nchosepink\n#ff22ff\n\nchosecyan\n#22ffff\n\npink\n#ff88ff\n\ncyan\n#88ffff\n\nplacemark\ntransparent\n\nactivecurse0\ntransparent\n\npartb\ntransparent\n\npartc\ntransparent\n\ncursor0mark\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\nwall2ghost\ntransparent\n\ncant2\ntransparent\n\nshowhere\ntransparent\n\nshowthis\ntransparent\n=======\nLEGEND\n=======\n\n` = Background\n& = Wall2 and wall1 and wall0\n# = Wall1\nX = Wall0\n+ = Wall0 and Wall1\nP = Player1 and active\n\nn = crate0 and crate1 and crate01\no = Crate1\n- = crate1 and crater1\n: = crate1 and crateu1\nL = crate1 and crater1 and crateu1\n0 = pit1\n! = crate0\n? = pit0\n/ = pit0 and pit1\n\n@ = one0 and pit0\nz = player1 and pit0\n\n| = black\n\n' = partb\n\" = partc\n\n~ = cursor2a\n_ = cursor2b\n\n1 = one0\n2 = two0\n3 = three0\n4 = four0\n5 = five0\n6 = six0\n7 = seven0\n8 = inf0\n\n[ = one2\n{ = two2\n] = three2\n> = wall2\nactiveab = active or activeb or activefell\npartbc = partb or partc\n\ny = target0\nu = Target1 and pit1\nt = Target1\nq = playertarget1\nr = player1\nb = cursor0a\nc = cursor0a and activecurse0\nk = cursor0b and activecurse0\ncurse0a = cursor0a or dead0a\ncurse0 = curse0a or cursor0b\ncurse2 = cursor2a or cursor2b\ncursor0 = cursor0a or cursor0b\n \nplayer = curse2 or activecurse0 or active or dead0a or activefell\ndead0 = dead0a\nx1 = player1 or crate1 or wall1 or target1 or playertarget1 or pit1\nx0 = crate0 or wall0 or pit0 or fell0\nxx = x0 or x1 or curse0\nx0ghost = crate0ghost or wall0ghost or pit0ghost or fell0ghost\ncratex1 = cratel1 or crater1 or crated1 or crateu1\nwallx2 = walll2 or wallr2 or walld2 or wallu2\nwallx1 = walll1 or wallr1 or walld1 or wallu1\nwallx0 = walll0 or wallr0 or walld0 or wallu0\nfellx1 = felll1 or fellr1 or felld1 or fellu1\npit0x = pit0l or pit0r or pit0d or pit0u\npit1x = pit1l or pit1r or pit1d or pit1u\ncrateorfell1 = crate1 or fell1\nplayerormark1 = player1 or player1mark\n\nx0mark = one0mark or two0mark or three0mark or cursor0mark or wall0mark or target0mark or crate0mark or inf0mark\nx1mark = player1mark or crate1mark or pit1mark or wall1mark or fell1mark or ded1mark or crate1mark or Target1mark or PlayerTarget1mark\nx2mark = one2mark or two2mark or three2mark\nxmark = x0mark or x1mark or x2mark\nnumber0 = one0 or two0 or three0 or four0 or five0 or six0 or seven0 or inf0\nnumber2 = one2 or two2 or three2\npicked = pickeda0 or pickedb0 or pickeda2 or pickedb2\n\npickable = player1 or pit1 or crate1 or number0 or wall1 or number2 or fell1 or ded1 or target0 or PlayerTarget1 or Target1\npickable2 = curse0a or pickable or wall0 or crate0 \n\nblackcorner = blackul or blackdl or blackur or blackdr\nrim0x = rim0l or rim0d or rim0u or rim0r\nrim1x = rim1l or rim1d or rim1u or rim1r \n=======\nSOUNDS\n=======\n\nSFX0 51304502\n\nsfx1 22108304\n\nSFX2 84700307\n\nSFX3 78571302\n\nSFX4 25131906\n\nSFX5 13408901\n\nSFX6 50704903\n\nSFX7 24622504\n\nSFX8 29744504\n\nSFX9 13344503\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\npink, chosepink\ncyan, chosecyan\n\n\nPit1,\npit1r\npit1l\npit1d\npit1u\npit0, pit0ghost\npit0r\npit0l\npit0d\npit0u\nblackul\nblackur\nblackdr\nblackdl\nTarget1, PlayerTarget1, target0\n\nfell1, ded1\nfelll1\nfellr1\nfelld1\nfellu1\n\ndead0a, fell0, fell0ghost\nrim0l \nrim0d \nrim0u \nrim0r\n\nrim1l \nrim1d \nrim1u \nrim1r \nPlayer1, Wall1, Crate1, \npit1mark\nfell1mark, ded1mark, target0mark\nTarget1mark, PlayerTarget1mark\nplayer1mark, crate1mark\nwall1mark\none0mark, two0mark, three0mark, wall0mark, inf0mark\none2mark, two2mark, three2mark\ncursor0mark, crate0mark\nnumber0, number2\ncratel1, walll1, \ncrater1, wallr1, \ncrated1, walld1, \ncrateu1, wallu1, \ncursor0, wall0, crate0, wall0ghost, crate0ghost\n walll0, cratel0\n wallr0, crater0\n walld0, crated0\n wallu0, crateu0\n crate01\n wall2, wall2ghost\n wallr2\n wallu2\n walll2\n walld2\n cursor2a, cursor2b\n \nfellcant1\nfellcant0\ncant0\ncant1\ncant2\nsupported\nactivefell\nactive, activeb\nactivecurse0\nholding\ndecrement\npickeda0, pickeda2\npickedb0, pickedb2\nplacemark\npartb partc\nshowthis\nshowhere\nblack\n\n======\nRULES\n======\n\n(Deal with action-----------------------------------------------------------------------------)\n\n[action activecurse0 curse0] -> [activecurse0 action curse0]\n\n(pick up ready icon)\ndown[action curse0a no holding pickable|number0] -> [curse0a holding pickable|number0 pickeda0] SFX9\ndown[action cursor0b no holding pickable|number0] -> [cursor0b holding pickable|number0 pickedb0] SFX9\ndown[action cursor2a no holding pickable2|number2] -> [cursor2a holding pickable2|number2 pickeda2] SFX9\ndown[action cursor2b no holding pickable2|number2] -> [cursor2b holding pickable2|number2 pickedb2] SFX9\n(switch to new ready icon)\ndown [action curse0a pickable| number0 no pickeda0][pickeda0] -> [curse0a pickable | number0 pickeda0][] SFX9\ndown [action cursor0b pickable| number0 no pickedb0][pickedb0] -> [cursor0b pickable | number0 pickedb0][] SFX9\ndown [action cursor2a pickable2| number2 no pickeda2][pickeda2] -> [cursor2a pickable2 | number2 pickeda2][] SFX9\ndown [action cursor2b pickable2| number2 no pickedb2][pickedb2] -> [cursor2b pickable2 | number2 pickedb2][] SFX9\n\n(put down ready icon)\ndown [action curse0 holding pickable| picked] -> [curse0 pickable|] SFX8\ndown [action cursor2a holding pickable2| pickeda2] -> [cursor2a pickable2|] SFX8\ndown [action cursor2b holding pickable2| pickedb2] -> [cursor2b pickable2|] SFX8\n\n(show mark)\nlate [xmark] -> []\nlate [showthis] -> []\nlate [showhere] -> []\n\nlate down [ | number0 pickeda0][curse0a] -> [showthis | number0 pickeda0][curse0a showhere]\nlate down [ | number0 pickedb0][cursor0b] -> [showthis | number0 pickedb0][cursor0b showhere]\nlate down [ | number2 pickeda2][cursor2a] -> [showthis | number2 pickeda2][cursor2a showhere]\nlate down [ | number2 pickedb2][cursor2b] -> [showthis | number2 pickedb2][cursor2b showhere]\nlate [showthis player1][showhere] -> [showthis player1][showhere player1mark]\nlate [showthis pit1][showhere] -> [showthis pit1][showhere pit1mark]\nlate [showthis crate1][showhere] -> [showthis crate1][showhere crate1mark]\nlate [showthis wall1][showhere] -> [showthis wall1][showhere wall1mark]\nlate [showthis one0][showhere] -> [showthis one0][showhere one0mark]\nlate [showthis two0][showhere] -> [showthis two0][showhere two0mark]\nlate [showthis three0][showhere] -> [showthis three0][showhere three0mark]\nlate [showthis one2][showhere] -> [showthis one2][showhere one2mark]\nlate [showthis two2][showhere] -> [showthis two2][showhere two2mark]\nlate [showthis three2][showhere] -> [showthis three2][showhere three2mark]\nlate [showthis wall0][showhere] -> [showthis wall0][showhere wall0mark]\nlate [showthis fell1][showhere] -> [showthis fell1][showhere fell1mark]\nlate [showthis ded1][showhere] -> [showthis ded1][showhere ded1mark]\nlate [showthis target0][showhere] -> [showthis target0][showhere target0mark]\nlate [showthis crate0][showhere] -> [showthis crate0][showhere crate0mark]\nlate [showthis cursor0][showhere] -> [showthis cursor0][showhere cursor0mark]\nlate [showthis inf0][showhere] -> [showthis inf0][showhere inf0mark]\nlate [showthis Target1][showhere] -> [showthis target1][showhere Target1mark]\nlate [showthis PlayerTarget1][showhere] -> [showthis PlayerTarget1][showhere PlayerTarget1mark]\n(connect cratemark)\nup [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crateu1 | crate1 crated1]\ndown [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crated1 | crate1 crateu1]\nleft [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark cratel1 | crate1 crater1]\nright [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crater1 | crate1 cratel1]\nup [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crateu1 | fell1 felld1]\ndown [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crated1 | fell1 fellu1]\nleft [action curse0 holding fell1mark no xx no number0 no number2| fell1] -> [action curse0 holding fell1mark cratel1 | fell1 fellr1]\nright [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crater1 | fell1 felll1]\n\n(place mark)\n[placemark] -> []\n\ndown [action curse0a holding xmark no x1 no number0][pickeda0 number0] -> [curse0a holding xmark placemark][pickeda0 decrement number0] SFX7\ndown [action cursor0b holding xmark no x1 no number0][pickedb0 number0] -> [cursor0b holding xmark placemark][pickedb0 decrement number0] SFX7\n\ndown [action cursor2a holding xmark no xx no number0 no number2][pickeda2 number2] -> [cursor2a holding xmark placemark][pickeda2 decrement number2] SFX7\ndown [action cursor2b holding xmark no xx no number0 no number2][pickedb2 number2] -> [cursor2b holding xmark placemark][pickedb2 decrement number2] SFX7\n\n\n\n[placemark player1mark] -> [placemark player1 player1mark]\n[placemark pit1mark] -> [placemark pit1 pit1mark]\n[placemark crate1mark] -> [placemark crate1 crate1mark]\n[placemark wall1mark] -> [placemark wall1 wall1mark]\n[placemark one0mark] -> [placemark one0 one0mark]\n[placemark two0mark] -> [placemark two0 two0mark]\n[placemark three0mark] -> [placemark three0 three0mark]\n[placemark one2mark] -> [placemark one2 one2mark]\n[placemark two2mark] -> [placemark two2 two2mark]\n[placemark three2mark] -> [placemark three2 three2mark]\n[placemark wall0mark] -> [placemark wall0 wall0mark]\n[placemark fell1mark] -> [placemark fell1 fell1mark]\n[placemark ded1mark] -> [placemark ded1 ded1mark]\n[placemark target0mark] -> [placemark target0 target0mark]\n[placemark crate0mark] -> [placemark crate0 crate0mark]\n[placemark Target1mark] -> [placemark target1 Target1mark]\n[placemark inf0mark] -> [placemark inf0 inf0mark]\n[placemark PlayerTarget1mark] -> [placemark playertarget1 PlayerTarget1mark]\ndown [placemark cursor0mark][curse0a|no one2] -> [ cursor0b cursor0mark][curse0a|]\n[placemark cursor0mark] -> [placemark cursor0a cursor0mark]\n\n(decrement number of placed item)\ndown [xmark holding cursor2a][pickable2|one2 decrement pickeda2] -> [xmark holding cursor2a][|one2 decrement pickeda2]\ndown [xmark holding cursor2b][pickable2|one2 decrement pickedb2] -> [xmark holding cursor2b][|one2 decrement pickedb2]\ndown [xmark holding curse0a][pickable|one0 decrement pickeda0] -> [xmark holding curse0a][|one0 decrement pickeda0]\ndown [xmark holding cursor0b][pickable|one0 decrement pickedb0] -> [xmark holding cursor0b][|one0 decrement pickedb0]\ndown [xmark holding cursor2a][|one2 decrement pickeda2] -> [cursor2a][|]\ndown [xmark holding cursor2b][|one2 decrement pickedb2] -> [cursor2b][|]\ndown [xmark holding cursor0a][|one0 decrement pickeda0] -> [cursor0a][|]\ndown [xmark holding cursor0b][|one0 decrement pickedb0] -> [cursor0b][|]\n[one0 decrement] -> []\n[two0 decrement] -> [one0]\n[three0 decrement] -> [two0]\n[four0 decrement] -> [three0]\n[five0 decrement] -> [four0]\n[six0 decrement] -> [five0]\n[seven0 decrement] -> [six0]\n[one2 decrement] -> []\n[two2 decrement] -> [one2]\n[three2 decrement] -> [two2]\n\n\n\n(player -> cursor)\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [player1 action active no wall0ghost no crate0ghost][partbc] -> [cursor0a player1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [ded1 action activefell no wall0ghost no crate0ghost][partbc] -> [cursor0a ded1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\n\n(cursor holding -> player)\ndown [action curse0a activecurse0 player1 holding xmark][| number0 pickeda0] -> [active player1][ | number0] SFX6\ndown [action curse0a activecurse0 ded1 holding xmark][| number0 pickeda0] -> [activefell ded1][ | number0] SFX6\ndown [action cursor0b activecurse0 player1 holding xmark][| number0 pickedb0] -> [active player1][ | number0] SFX6\ndown [action cursor0b activecurse0 ded1 holding xmark][| number0 pickedb0] -> [activefell ded1][ | number0] SFX6\n(empty cursor -> player)\n[action curse0 player1 activecurse0 no holding] -> [active player1] SFX6\n[action curse0 ded1 activecurse0 no holding] -> [activefell ded1] SFX6\n(red -> blue)\n[action cursor0a activecurse0 holding xmark][partc][pickeda0] -> [cursor0a cursor2a][partc][] SFX5\n[action cursor0a activecurse0 ][partc] -> [cursor0a cursor2a][partc] SFX5\n[action cursor0b activecurse0 holding xmark][partc][pickedb0] -> [cursor0b cursor2b][partc][] SFX5\n[action cursor0b activecurse0 ][partc] -> [cursor0b cursor2b][partc] SFX5\n(blue holding -> red)\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\nrandom down [action curse2 curse0 holding xmark][| number2 pickeda2] -> [activecurse0 cursor0a][ | number2] SFX6\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\n(empty blue -> red)\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\nrandom [action curse2 curse0 no holding] -> [activecurse0 cursor0a] SFX6\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\n\n\n[action player] -> SFX0\n[action curse0] -> SFX0\n\n(Aesthetic----------------------------------------------------------------------------------------)\n\n\n\n(ghosts)\n[player1 active][pit0] -> [player1 active][pit0ghost]\n[pit0ghost][cursor0] -> [pit0][cursor0]\n[player1 active][wall0] -> [player1 active][wall0ghost]\n[wall0ghost][cursor0] -> [wall0][cursor0]\n[player1 active][crate0] -> [player1 active][crate0ghost]\n[crate0ghost][cursor0] -> [crate0][cursor0]\n[player1 active][fell0] -> [player1 active][fell0ghost]\n[fell0ghost][cursor0] -> [fell0][cursor0]\n[curse0 activecurse0][wall2] -> [curse0 activecurse0][wall2ghost]\n[wall2ghost][curse2] -> [wall2][curse2]\n\n\n(wall boundaries)\n[wallx2] -> []\n[wallx1] -> []\n[wallx0] -> []\nup [wall2 | no wall2] -> [wall2 wallu2 | ]\ndown [wall2 | no wall2] -> [wall2 walld2 | ]\nleft [wall2 | no wall2] -> [wall2 walll2 | ]\nright [wall2 | no wall2] -> [wall2 wallr2 | ]\nup [wall1 | no wall1] -> [wall1 wallu1 | ]\ndown [wall1 | no wall1] -> [wall1 walld1 | ]\nleft [wall1 | no wall1] -> [wall1 walll1 | ]\nright [wall1 | no wall1] -> [wall1 wallr1 | ]\nup [wall0 | no wall0] -> [wall0 wallu0 | ]\ndown [wall0 | no wall0] -> [wall0 walld0 | ]\nleft [wall0 | no wall0] -> [wall0 walll0 | ]\nright [wall0 | no wall0] -> [wall0 wallr0 | ]\n\n(crate connectors)\nup [crateu0|] -> [crateu0 | crated0]\nright [crater0|] -> [crater0 | cratel0]\nup [crateu1|] -> [crateu1 | crated1]\nright [crater1|] -> [crater1 | cratel1]\n(pit connectors)\n[blackcorner] -> []\n[pit0x] -> [] \n[pit1x] -> [] \nup [pit1 | pit1] -> [pit1u pit1|pit1d pit1]\nright [pit1 | pit1] -> [pit1r pit1|pit1l pit1]\nup [pit0 | pit0] -> [pit0u pit0|pit0d pit0]\nright [pit0 | pit0] -> [pit0r pit0|pit0l pit0]\n[pit1u pit1r] -> [pit1u pit1r blackur]\n[pit1u pit1l] -> [pit1u pit1l blackul]\n[pit1d pit1r] -> [pit1d pit1r blackdr]\n[pit1d pit1l] -> [pit1d pit1l blackdl]\n[pit0u pit0r] -> [pit0u pit0r blackur]\n[pit0u pit0l] -> [pit0u pit0l blackul]\n[pit0d pit0r] -> [pit0d pit0r blackdr]\n[pit0d pit0l] -> [pit0d pit0l blackdl]\n[rim1x] -> []\n[rim0x] -> []\nup[pit0|no pit0] -> [pit0 rim0u|]\ndown[pit0|no pit0] -> [pit0 rim0d|]\nleft[pit0|no pit0] -> [pit0 rim0l|]\nright[pit0|no pit0] -> [pit0 rim0r|]\nup[pit1|no pit1] -> [pit1 rim1u|]\ndown[pit1|no pit1] -> [pit1 rim1d|]\nleft[pit1|no pit1] -> [pit1 rim1l|]\nright[pit1|no pit1] -> [pit1 rim1r|]\nlate [pink] -> []\nlate [cyan] -> []\nlate [chosepink] -> []\nlate [chosecyan] -> []\nlate down [pickable |number0] -> [pickable pink | number0 pink]\nlate down [pickable2 |number2] -> [pickable2 cyan | number2 cyan]\nlate up [pink picked|pink] -> [chosepink picked|chosepink ]\nlate up [cyan picked|cyan ] -> [chosecyan picked|chosecyan ]\n\n(Movement----------------------------------------------------------------------------------------)\n\n(move attached items)\n[moving activecurse0 curse0] -> [moving activecurse0 moving curse0]\n[moving active player1] -> [moving active moving player1]\n[moving activefell ded1] -> [moving activefell moving ded1]\n[moving curse0 holding] -> [moving curse0 moving holding]\n[moving curse2 holding] -> [moving curse2 moving holding]\n\n(reset and propogate cant)\n[cant0] -> []\n[cant1] -> []\n[cant2] -> []\n[fellcant0] -> []\n[fellcant1] -> []\n\n[black no cant0 no cant1 no cant2] -> [black cant0 cant1 cant2]\n[wall2 no cant2] -> [wall2 cant2]\n[wall1 no cant1] -> [wall1 cant1]\n[wall0 no cant0] -> [wall0 cant0]\n[number0] -> [number0 cant1]\n[number2] -> [number2 cant1]\n[no pit1 no fellcant1] -> [fellcant1]\n[no pit0 no fellcant0] -> [fellcant0]\n\n[> ded1][fell1|fellcant1] -> [> ded1][fell1 fellcant1 | fellcant1]\n+ [> ded1][ded1|fellcant1] -> [> ded1][ded1 fellcant1 | fellcant1]\n+ up[fellu1|fellcant1] -> [fellu1 fellcant1 | fellcant1]\n+ left[felll1|fellcant1] -> [felll1 fellcant1 | fellcant1]\n+ down[felld1|fellcant1] -> [felld1 fellcant1 | fellcant1]\n+ right[fellr1|fellcant1] -> [fellr1 fellcant1 | fellcant1]\n\n+ [> player1][crate1|cant1] -> [> player1][crate1 cant1 | cant1]\n+ [> player1][player1|cant1] -> [> player1][player1 cant1 | cant1]\n+ up[crateu1|cant1] -> [crateu1 cant1 | cant1]\n+ left[cratel1|cant1] -> [cratel1 cant1 | cant1]\n+ down[crated1|cant1] -> [crated1 cant1 | cant1]\n+ right[crater1|cant1] -> [crater1 cant1 | cant1]\n+ [crate1 crate0 cant0] -> [crate1 crate0 cant0 cant1]\n+ [crate1 crate0 cant1] -> [crate1 crate0 cant0 cant1]\n+ [> dead0][dead0|fellcant0] -> [> dead0][dead0 fellcant0 | fellcant0]\n+ [> cursor0][cursor0|cant0] -> [> cursor0][cursor0 cant0 | cant0]\n+ [> cursor0][crate0 | number0] -> [> cursor0][crate0 cant0| number0]\n+ [> cursor0][crate0|cant0] -> [> cursor0][crate0 cant0 | cant0]\n+ up[crateu0|cant0] -> [crateu0 cant0 | cant0]\n+ left[cratel0|cant0] -> [cratel0 cant0 | cant0]\n+ down[crated0|cant0] -> [crated0 cant0 | cant0]\n+ right[crater0|cant0] -> [crater0 cant0 | cant0]\n\n[> curse2 | wall2] -> [stationary curse2 | wall2]\n[> curse2 | black] -> [stationary curse2 | black]\n[cursor0 cant0] -> [stationary cursor0 cant0]\n[player1 cant1] -> [stationary player1 cant1]\n[ded1 fellcant1] -> [stationary ded1 fellcant1]\n[dead0 fellcant0] -> [stationary dead0 fellcant0]\n\n\n(propagate movement)\n\n[ > Ded1 | Fell1 no fellcant1] -> [ > Ded1 | > Fell1 ]\n\n[ > Cursor0 | Crate0 ] -> [ > Cursor0 | > Crate0 ]\n+ [ > Cursor0 | Cursor0 ] -> [ > Cursor0 | > Cursor0 ]\n+ [ > Crate0 | Crate0 ] -> [ > Crate0 | > Crate0 ]\n\n+ [ > Player1 | Crate1 ] -> [ > Player1 | > Crate1 ]\n+ [ > Player1 | Player1] -> [ > Player1 | > Player1 ]\n+ [ > Crate1 | Player1 ] -> [ > Crate1 | > Player1 ]\n+ [> crate1|crate1] -> [> crate1 | > crate1]\n+ up[moving crate1 crateu1|crate1] -> [moving crate1 crateu1 | moving crate1]\n+ left[moving crate1 cratel1|crate1] -> [moving crate1 cratel1 | moving crate1]\n+ down[moving crate1 crated1|crate1] -> [moving crate1 crated1 | moving crate1]\n+ right[moving crate1 crater1|crate1] -> [moving crate1 crater1 | moving crate1]\n \n\n[> fell1|fell1] -> [> fell1 | > fell1]\n+ up[moving fell1 fellu1|fell1] -> [moving fell1 fellu1 | moving fell1]\n+ left[moving fell1 felll1|fell1] -> [moving fell1 felll1 | moving fell1]\n+ down[moving fell1 felld1|fell1] -> [moving fell1 felld1 | moving fell1]\n+ right[moving fell1 fellr1|fell1] -> [moving fell1 fellr1 | moving fell1]\n\n[moving crate1 cratex1] -> [moving crate1 moving cratex1]\n[moving fell1 fellx1] -> [moving fell1 moving fellx1]\n[moving crate1 crate0ghost] -> [moving crate1 moving crate0ghost]\n\n[active stationary player1] -> [stationary active stationary player1]\n[activecurse0 stationary curse0] -> [stationary activecurse0 stationary curse0]\n[activefell stationary ded1] -> [stationary activefell stationary ded1]\n[stationary cursor0 activecurse0 holding] -> [stationary cursor0 activecurse0 stationary holding]\n[stationary curse2 holding] -> [stationary curse2 stationary holding]\n\n\n(falling)\nlate [supported] -> []\n\nlate [crate1 ded1] -> [crate1 supported ded1]\nlate [crate1 no pit1] -> [crate1 supported]\nlate [crate1 fell1] -> [crate1 fell1 supported]\n\n\nlate up[crateu1|supported] -> [crateu1 supported | supported]\n+ late left[cratel1|supported] -> [cratel1 supported | supported]\n+ late down[crated1|supported] -> [crated1 supported | supported]\n+ late right[crater1|supported] -> [crater1 supported | supported]\n\n\nlate [cursor0 pit0 no fell0] -> [pit0 dead0a]SFX3\nlate [player1 active pit1 no fell1 no ded1] -> [pit1 ded1 activefell]SFX3\nlate [player1 pit1 no fell1 no ded1] -> [pit1 ded1 ]SFX3\nlate [crate0 pit0 no supported] -> [pit0 fell0]SFX3\nlate [crate1 pit1 no supported] -> [pit1 fell1] SFX3\n\n\n\nlate [crateu1 no crate1 fell1] -> [fellu1 fell1]\nlate [cratel1 no crate1 fell1] -> [felll1 fell1]\nlate [crater1 no crate1 fell1] -> [fellr1 fell1]\nlate [crated1 no crate1 fell1] -> [felld1 fell1]\n\nlate [crateu1 no crate1] -> []\nlate [cratel1 no crate1] -> []\nlate [crater1 no crate1] -> []\nlate [crated1 no crate1] -> []\nlate up [crateu1 |no crate1] -> [|]\nlate left [cratel1 |no crate1] -> [|]\nlate right [crater1 |no crate1] -> [|]\nlate down [crated1 |no crate1] -> [|]\nlate [player1 ded1] -> [player1 ded1] SFX0\nlate [player1 ded1] -> cancel \n\n[moving crate0] -> SFX2\n[moving crate1] -> SFX2\n\n==============\nWINCONDITIONS\n==============\n\n\nAll target0 on crate0\nAll Target1 on Crateorfell1\nAll PlayerTarget1 on Playerormark1\nno Cursor0 on target1\nno cursor0 on PlayerTarget1\n\n=======\nLEVELS\n=======\n\nmessage Book 1: BASE\n\nmessage Page 1.1: GOAL\n\n#######\n#`````#\n#`p`t`#\n#`````#\n#`o`q`#\n#`````#\n#######\n\nmessage Page 1.2: TOOL\n\n#######\n#`t`o`#\n#t`-:`#\n#``tlo#\n#p````#\n#######\n\nmessage Page 1.3: HOLE\n\n########\n##``0`##\n#```0``#\n#``o0`t#\n#po:0``#\n#``:0`t#\n#```0``#\n##``0`##\n########\n\nmessage Page 1.4: FALL\n\n########\n#00u``0#\n#00po`0#\n#`000`0#\n#`00```#\n#`000``#\n#`000``#\n########\n\nmessage Book 2: EDIT\n\nmessage Page 2.1: MINI\n\n||||||||||\n|```````'|\n|`######`|\n|`#````#`|\n|`#``t`#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 2.2: FORM\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 2.3: PLUG\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#ro`o`#`|\n|`#####`#`|\n|`###`o`#`|\n|`#``oLo#`|\n|`#````##`|\n|`#`q####`|\n|`#######`|\n|`````````|\n|``c`0````|\n|````8````|\n|`````````|\n|||||||||||\n\nmessage Page 2.4: TRAP\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#``````#`|\n|`#``t```#`|\n|`#`tqt``#`|\n|`#``t```#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````16````|\n|``````````|\n||||||||||||\n\nmessage Book 3: DUAL\n\nmessage Page 3.1: CO-OP\n\n#######\n####qq#\n#po000#\n#`o000#\n###o``#\n###r`'#\n#######\n\nmessage Page 3.2: REST\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#`r00q#`|\n|`#######`|\n|`````````|\n|``c`o````|\n|````2````|\n|`````````|\n|||||||||||\nmessage Page 3.3: SAIL\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#0000q#`|\n|`#00000#`|\n|`#00000#`|\n|`#```00#`|\n|`#```00#`|\n|`#######`|\n|`````````|\n|``c`ro```|\n|````23```|\n|`````````|\n|||||||||||\n\nmessage Page 3.4: TWIN\n\n|||||||||||||||||||||\n|`````````+````````'|\n|`#######`+`#######`|\n|`#`````#`+`#`````#`|\n|`#```q`#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`q```#`|\n|`#`````#`+`#`````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````6````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Book 4: WHAT\n\nmessage Page 4.1: GUIS\n\n\n#######\n#q#``'#\n#``8#`#\n#`#p#`#\n#`#o#`#\n#`#1``#\n#######\n\nmessage Page 4.2: IDEA\n\n||||||||||\n|```````'|\n|`######`|\n|`#```t#`|\n|`#```t#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```31```|\n|````````|\n||||||||||\n\nmessage Page 4.3: FILL\n\n\n######\n#0poq#\n#0`70#\n#'000#\n#0000#\n######\n\nmessage Page 4.4: A LOT\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|``````'|\n|`c3o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Book 5: UHHH\n\nmessage Page 5.1: WALL\n\n||||||||||\n|```````'|\n|`######`|\n|`#t`#`#`|\n|`#````#`|\n|`##`o`#`|\n|x+xxxx+x|\n|`#````#`|\n|`#````#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 5.2: SAFE\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#xxxxx#`|\n|`#x```x#`|\n|`#x`t`x#`|\n|`#x```x#`|\n|`#xxxxx#`|\n|`#######`|\n|`````````|\n|`c`o1r```|\n|```111```|\n|`````````|\n|||||||||||\n\nmessage Page 5.3: LOCK\n\n|||||||||||||\n|o```'`xxxcx|\n|1``x```qx!x|\n|`1!````qx`x|\n|``1?x`xxx?x|\n|r``1````!`x|\n|````2`xxxxx|\n|||||||||||||\n\n\n\nmessage Page 5.4: POST\n\n+++++++++\n+p#```#q+\n+`#``'#3+\n+`#`1`#`+\n+`#`2`#`+\n+`#```#`+\n+`#```#`+\n+++++++++\nmessage Book 6: BLUE\n\nmessage Page 6.1: META\n\n||||||||||||\n|++++++++++|\n|+````\"```+|\n|+`######`+|\n|+`#````#`+|\n|+`#``t`#`+|\n|+`#````#`+|\n|+`######`+|\n|+````````+|\n|+```ro```+|\n|+````````+|\n|+````````+|\n|++++++++++|\n|``````````|\n|``~`1b````|\n|````{[````|\n|``````````|\n||||||||||||\n\nmessage Page 6.2: WILD\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`#######`+|\n|+`#0000q#`+|\n|+`#00000#`+|\n|+`#`0000#`+|\n|+`#`0000#`+|\n|+`#```00#`+|\n|+`#######`+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\nmessage Page 6.3: UH OH\n\n|||||||||||\n|+++++++++|\n|+``````\"+|\n|+`+++++`+|\n|+`+```+`+|\n|+`+`t`+`+|\n|+`+```+`+|\n|+`+```+`+|\n|+`+++++`+|\n|+```````+|\n|+```o```+|\n|+```````+|\n|+```````+|\n|+++++++++|\n|`````````|\n|`````````|\n|`~`1br```|\n|```][[```|\n|`````````|\n|||||||||||\n\nmessage Page 6.4: VARY\n\n|||||||||||||||||||||||\n|++++++++++&++++++++++|\n|+``````\"`x&x````````+|\n|+`######`x&x`######`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`#`qt`#`x&x`#`tq`#`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`######`x&x`######`+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|++++++++++&++++++++++|\n|``````````&``````````|\n|`~`r1ob```&`_`r1ob```|\n|```[{[[```&```[[[[```|\n|``````````&``````````|\n|||||||||||||||||||||||\n\nmessage Book 7: ?!?!\n\nmessage Page 7.1: EACH\n\n+++++++\n+````'+\n+`###`+\n+`#q#`+\n+`#0#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`###`+\n+`````+\n+``c``+\n+`r0o`+\n+``4``+\n+`````+\n+++++++\n\nmessage Page 7.2: HOLD\n\n&&&&&&&&&\n&`8```+`&\n&`{po`+`&\n&`\"```+t&\n&&&&&&&&&\n\nmessage Page 7.3: TRIP\n\n&&&&&&&\n&```\"`&\n&`o`!`&\n&`````&\n&+++++&\n&`r2b`&\n&`[[{~&\n&y```t&\n&&&&&&&\n\nmessage Page 7.4: PLAN\n\n\n|||||||||\n|```t```|\n|```````|\n|+++++++|\n|```````|\n|```````|\n|>>>>>>>|\n|```````|\n|```````|\n|+++++++|\n|```~```|\n|[[`2\"11|\n|[[`[`[[|\n|&&`&&&&|\n|&&bor&&|\n|||||||||\n\n\n\n\n\nmessage Book 8: (RE)STAR(TS)\n\n\nmessage Page 8.1: (IN)FORM(ED)\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 8.2: (EN)TWIN(ED)\n\n|||||||||||||||||||||\n|`````````+`````````|\n|`#######`+`#######`|\n|`#````q#`+`#`````#`|\n|`#`````#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`````#`|\n|`#`````#`+`#q````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````5````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Page 8.3: (ZE)ALOT(RY)\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|```````|\n|`c2o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Page 8.4: (BE)WILD(ER)\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`+++++++`+|\n|+`+0000q+`+|\n|+`+00000+`+|\n|+`+00000+`+|\n|+`+`0000+`+|\n|+`+```00+`+|\n|+`+++++++`+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", [3, 3, 4, 0, 0, 0, 3, 4, 0, 4, 3, 0, 0, 4, 0, 4, 1, 1, 1, 2, 4, 2, 4, 2, 3, 0, 4, 3, 3, 2, 1, 1, 0, 1, 0, 1, 0, 3, 3, 2, 3, 3, 2, 2], "background black cant0 cant1 cant2 fellcant0 fellcant1:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background fellcant0 fellcant1:1,1,1,1,1,1,\n1,1,1,1,1,1,0,0,1,background cant1 fellcant0 fellcant1 wall1 walll1 wallu1:2,background cant1 fellcant0 fellcant1 wall1 walll1 wallr1:3,3,3,3,3,background cant1 fellcant0 fellcant1 wall1 walld1 walll1:4,1,1,1,1,0,\n0,1,background cant1 fellcant0 fellcant1 wall1 walld1 wallu1:5,1,1,1,1,1,5,1,1,1,1,0,0,1,5,1,1,1,background cant1 crate1 crated1 fellcant0 fellcant1 supported:6,\nbackground cant1 crate1 crateu1 fellcant0 fellcant1 supported:7,5,1,1,1,1,0,0,1,5,1,1,1,1,1,5,1,1,1,1,0,\n0,1,5,background crate1 fellcant0 fellcant1 supported:8,background fellcant0 fellcant1 playertarget1:9,1,active background fellcant0 fellcant1 player1:10,1,5,1,1,1,1,0,0,1,5,background crate1 crated1 fellcant0 fellcant1 supported:11,background crate1 crateu1 fellcant0 fellcant1 supported:12,1,1,\n1,5,1,1,1,1,0,0,1,background cant1 fellcant0 fellcant1 wall1 wallr1 wallu1:13,3,3,3,3,3,background cant1 fellcant0 fellcant1 wall1 walld1 wallr1:14,1,1,1,1,0,\n0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,background cant1 fellcant0 fellcant1 wall0ghost wall1 walll1 wallr1 wallu1:15,background cant1 fellcant0 fellcant1 wall0ghost wall1 walll1 wallr1:16,16,16,16,16,\n16,16,16,16,16,background cant1 fellcant0 fellcant1 wall0ghost wall1 walld1 walll1 wallr1:17,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,2,3,3,3,3,3,4,1,1,1,1,0,0,1,5,1,11,12,1,\n1,5,1,1,1,1,0,0,1,5,1,1,1,background cant1 crate1 crated1 fellcant0 fellcant1 playertarget1 supported:18,7,5,1,1,1,1,0,\n0,1,5,1,1,1,1,1,5,1,1,1,1,0,0,1,5,1,1,1,10,\n1,5,1,1,1,1,0,0,1,5,11,12,1,1,1,5,1,1,1,1,0,\n0,1,13,3,3,3,3,3,14,1,1,1,1,0,0,background fellcant0 fellcant1 partb:19,1,1,1,1,1,\n1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 26, "1627770125763.7583"] + ["title VEXT EDIT\nauthor JACK\n\nrun_rules_on_level_start\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\n#eeeeee\n\nPlayerTarget1mark\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1mark\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nPlayerTarget1\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0Mark\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nWall0 \n#884400 #f00\n00000\n00000\n00000\n00000\n00000\n\nwalll0 \nBrown #f00\n1....\n1....\n1....\n1....\n1....\n\nWallr0 \nBrown #f00\n....1\n....1\n....1\n....1\n....1\n\nWalld0 \nBrown #f00\n.....\n.....\n.....\n.....\n11111\n\nWallu0 \nBrown #f00\n11111\n.....\n.....\n.....\n.....\n\nBlack\nblack\n\nwall0ghost\ntransparent\n\nWall0Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1 \n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall2\n#884400 #00f\n00000\n00000\n00000\n00000\n00000\n\nwalll2\nBrown #00f\n1....\n1....\n1....\n1....\n1....\n\nWallr2 \nBrown #00f\n....1\n....1\n....1\n....1\n....1\n\nWalld2 \nBrown #00f\n.....\n.....\n.....\n.....\n11111\n\nWallu2 \nBrown #00f\n11111\n.....\n.....\n.....\n.....\n\nwalll1 \nBrown #ff0\n1....\n1....\n1....\n1....\n1....\n\nWallr1 \nBrown #ff0\n....1\n....1\n....1\n....1\n....1\n\nWalld1 \nBrown #ff0\n.....\n.....\n.....\n.....\n11111\n\nWallu1 \nBrown #ff0\n11111\n.....\n.....\n.....\n.....\n\nCrate1Mark\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate1\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate01\ntransparent\n\nCrate0\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate0mark\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\ncrate0ghost\ntransparent\n\nPlayer1Mark\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nPlayer1\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nDed1Mark\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nDed1\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nCrated0\n#f80 #f00\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu0\n#f80 #f00\n.010.\n.010.\n.....\n.....\n.....\n\nCratel0\n#f80 #f00\n.....\n00...\n11...\n00...\n.....\n\nCrater0\n#f80 #f00\n.....\n...00\n...11\n...00\n.....\n\nCrated1\n#f80 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu1\n#f80 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nCratel1\n#f80 #ff0\n.....\n00...\n11...\n00...\n.....\n\nCrater1\n#f80 #ff0\n.....\n...00\n...11\n...00\n.....\n\n\nPit1Mark\nblack #bbbb00 white\n.111.\n10001\n10001\n10001\n.111.\n\n\nPit1\nblack #bbbb00 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\npit0ghost\ntransparent\n\nPit0\nblack #bb0000 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\n\npit0u\nblack #bb0000\n10001\n.....\n.....\n.....\n.....\n\npit0d\nblack #bb0000\n.....\n.....\n.....\n.....\n10001\n\npit0l\nblack #bb0000\n1....\n0....\n0....\n0....\n1....\n\npit0r\nblack #bb0000\n....1\n....0\n....0\n....0\n....1\n\npit1u\nblack #bbbb00\n10001\n.....\n.....\n.....\n.....\n\npit1d\nblack #bbbb00\n.....\n.....\n.....\n.....\n10001\n\npit1l\nblack #bbbb00\n1....\n0....\n0....\n0....\n1....\n\npit1r\nblack #bbbb00\n....1\n....0\n....0\n....0\n....1\n\nrim0u\n#b00\n.000.\n.....\n.....\n.....\n.....\n\nrim0l\n#b00\n.....\n0....\n0....\n0....\n.....\n\nrim0r\n#b00\n.....\n....0\n....0\n....0\n.....\n\nrim0d\n#b00\n.....\n.....\n.....\n.....\n.000.\n\nrim1u\n#bb0\n.000.\n.....\n.....\n.....\n.....\n\nrim1l\n#bb0\n.....\n0....\n0....\n0....\n.....\n\nrim1r\n#bb0\n.....\n....0\n....0\n....0\n.....\n\nrim1d\n#bb0\n.....\n.....\n.....\n.....\n.000.\n\nblackul\nblack\n0....\n.....\n.....\n.....\n.....\n\nblackur\nblack\n....0\n.....\n.....\n.....\n.....\n\nblackdl\nblack\n.....\n.....\n.....\n.....\n0....\n\nblackdr\nblack\n.....\n.....\n.....\n.....\n....0\n\nfell0\n#884400 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1mark\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfelld1\n#884400 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nfellu1\n#884400 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nfelll1\n#884400 #ff0\n.....\n00...\n11...\n00...\n.....\n\nfellr1\n#884400 #ff0\n.....\n...00\n...11\n...00\n.....\n\nfell0ghost\ntransparent\n\nsupported\ntransparent\n\nfellcant1\ntransparent\n\ncant1\ntransparent\n\ncant0\ntransparent\n\nfellcant0\ntransparent\n\ndead0a\ndarkred\n.....\n.0.0.\n.....\n.0.0.\n.....\n\ncursor0a\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\ncursor0b\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\n\n\ncursor2a\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\ncursor2b\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\none2mark\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2mark\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2mark\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none2\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0mark\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0mark\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0mark\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\nfour0\n#f00\n.0.0.\n.0.0.\n..00.\n...0.\n...0.\n\nfive0\n#f00\n.000.\n.0...\n.00..\n...0.\n.00..\n\nsix0\n#f00\n..00.\n.0...\n.00..\n.0.0.\n..0..\n\nseven0\n#f00\n.000.\n...0.\n...0.\n..0..\n..0..\n\ninf0\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\ninf0mark\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\n\ndecrement\ntransparent\n\nholding\ntransparent\n\nactiveb\n#f00\n.....\n.0.0.\n.....\n.....\n.....\n\nactive\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\nactivefell\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\npickeda0\ntransparent\n\npickedb0\ntransparent\n\npickeda2\ntransparent\n\npickedb2\ntransparent\n\nchosepink\n#ff22ff\n\nchosecyan\n#22ffff\n\npink\n#ff88ff\n\ncyan\n#88ffff\n\nplacemark\ntransparent\n\nactivecurse0\ntransparent\n\npartb\ntransparent\n\npartc\ntransparent\n\ncursor0mark\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\nwall2ghost\ntransparent\n\ncant2\ntransparent\n\nshowhere\ntransparent\n\nshowthis\ntransparent\n=======\nLEGEND\n=======\n\n` = Background\n& = Wall2 and wall1 and wall0\n# = Wall1\nX = Wall0\n+ = Wall0 and Wall1\nP = Player1 and active\n\nn = crate0 and crate1 and crate01\no = Crate1\n- = crate1 and crater1\n: = crate1 and crateu1\nL = crate1 and crater1 and crateu1\n0 = pit1\n! = crate0\n? = pit0\n/ = pit0 and pit1\n\n@ = one0 and pit0\nz = player1 and pit0\n\n| = black\n\n' = partb\n\" = partc\n\n~ = cursor2a\n_ = cursor2b\n\n1 = one0\n2 = two0\n3 = three0\n4 = four0\n5 = five0\n6 = six0\n7 = seven0\n8 = inf0\n\n[ = one2\n{ = two2\n] = three2\n> = wall2\nactiveab = active or activeb or activefell\npartbc = partb or partc\n\ny = target0\nu = Target1 and pit1\nt = Target1\nq = playertarget1\nr = player1\nb = cursor0a\nc = cursor0a and activecurse0\nk = cursor0b and activecurse0\ncurse0a = cursor0a or dead0a\ncurse0 = curse0a or cursor0b\ncurse2 = cursor2a or cursor2b\ncursor0 = cursor0a or cursor0b\n \nplayer = curse2 or activecurse0 or active or dead0a or activefell\ndead0 = dead0a\nx1 = player1 or crate1 or wall1 or target1 or playertarget1 or pit1\nx0 = crate0 or wall0 or pit0 or fell0\nxx = x0 or x1 or curse0\nx0ghost = crate0ghost or wall0ghost or pit0ghost or fell0ghost\ncratex1 = cratel1 or crater1 or crated1 or crateu1\nwallx2 = walll2 or wallr2 or walld2 or wallu2\nwallx1 = walll1 or wallr1 or walld1 or wallu1\nwallx0 = walll0 or wallr0 or walld0 or wallu0\nfellx1 = felll1 or fellr1 or felld1 or fellu1\npit0x = pit0l or pit0r or pit0d or pit0u\npit1x = pit1l or pit1r or pit1d or pit1u\ncrateorfell1 = crate1 or fell1\nplayerormark1 = player1 or player1mark\n\nx0mark = one0mark or two0mark or three0mark or cursor0mark or wall0mark or target0mark or crate0mark or inf0mark\nx1mark = player1mark or crate1mark or pit1mark or wall1mark or fell1mark or ded1mark or crate1mark or Target1mark or PlayerTarget1mark\nx2mark = one2mark or two2mark or three2mark\nxmark = x0mark or x1mark or x2mark\nnumber0 = one0 or two0 or three0 or four0 or five0 or six0 or seven0 or inf0\nnumber2 = one2 or two2 or three2\npicked = pickeda0 or pickedb0 or pickeda2 or pickedb2\n\npickable = player1 or pit1 or crate1 or number0 or wall1 or number2 or fell1 or ded1 or target0 or PlayerTarget1 or Target1\npickable2 = curse0a or pickable or wall0 or crate0 \n\nblackcorner = blackul or blackdl or blackur or blackdr\nrim0x = rim0l or rim0d or rim0u or rim0r\nrim1x = rim1l or rim1d or rim1u or rim1r \n=======\nSOUNDS\n=======\n\nSFX0 51304502\n\nsfx1 22108304\n\nSFX2 84700307\n\nSFX3 78571302\n\nSFX4 25131906\n\nSFX5 13408901\n\nSFX6 50704903\n\nSFX7 24622504\n\nSFX8 29744504\n\nSFX9 13344503\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\npink, chosepink\ncyan, chosecyan\n\n\nPit1,\npit1r\npit1l\npit1d\npit1u\npit0, pit0ghost\npit0r\npit0l\npit0d\npit0u\nblackul\nblackur\nblackdr\nblackdl\nTarget1, PlayerTarget1, target0\n\nfell1, ded1\nfelll1\nfellr1\nfelld1\nfellu1\n\ndead0a, fell0, fell0ghost\nrim0l \nrim0d \nrim0u \nrim0r\n\nrim1l \nrim1d \nrim1u \nrim1r \nPlayer1, Wall1, Crate1, \npit1mark\nfell1mark, ded1mark, target0mark\nTarget1mark, PlayerTarget1mark\nplayer1mark, crate1mark\nwall1mark\none0mark, two0mark, three0mark, wall0mark, inf0mark\none2mark, two2mark, three2mark\ncursor0mark, crate0mark\nnumber0, number2\ncratel1, walll1, \ncrater1, wallr1, \ncrated1, walld1, \ncrateu1, wallu1, \ncursor0, wall0, crate0, wall0ghost, crate0ghost\n walll0, cratel0\n wallr0, crater0\n walld0, crated0\n wallu0, crateu0\n crate01\n wall2, wall2ghost\n wallr2\n wallu2\n walll2\n walld2\n cursor2a, cursor2b\n \nfellcant1\nfellcant0\ncant0\ncant1\ncant2\nsupported\nactivefell\nactive, activeb\nactivecurse0\nholding\ndecrement\npickeda0, pickeda2\npickedb0, pickedb2\nplacemark\npartb partc\nshowthis\nshowhere\nblack\n\n======\nRULES\n======\n\n(Deal with action-----------------------------------------------------------------------------)\n\n[action activecurse0 curse0] -> [activecurse0 action curse0]\n\n(pick up ready icon)\ndown[action curse0a no holding pickable|number0] -> [curse0a holding pickable|number0 pickeda0] SFX9\ndown[action cursor0b no holding pickable|number0] -> [cursor0b holding pickable|number0 pickedb0] SFX9\ndown[action cursor2a no holding pickable2|number2] -> [cursor2a holding pickable2|number2 pickeda2] SFX9\ndown[action cursor2b no holding pickable2|number2] -> [cursor2b holding pickable2|number2 pickedb2] SFX9\n(switch to new ready icon)\ndown [action curse0a pickable| number0 no pickeda0][pickeda0] -> [curse0a pickable | number0 pickeda0][] SFX9\ndown [action cursor0b pickable| number0 no pickedb0][pickedb0] -> [cursor0b pickable | number0 pickedb0][] SFX9\ndown [action cursor2a pickable2| number2 no pickeda2][pickeda2] -> [cursor2a pickable2 | number2 pickeda2][] SFX9\ndown [action cursor2b pickable2| number2 no pickedb2][pickedb2] -> [cursor2b pickable2 | number2 pickedb2][] SFX9\n\n(put down ready icon)\ndown [action curse0 holding pickable| picked] -> [curse0 pickable|] SFX8\ndown [action cursor2a holding pickable2| pickeda2] -> [cursor2a pickable2|] SFX8\ndown [action cursor2b holding pickable2| pickedb2] -> [cursor2b pickable2|] SFX8\n\n(show mark)\nlate [xmark] -> []\nlate [showthis] -> []\nlate [showhere] -> []\n\nlate down [ | number0 pickeda0][curse0a] -> [showthis | number0 pickeda0][curse0a showhere]\nlate down [ | number0 pickedb0][cursor0b] -> [showthis | number0 pickedb0][cursor0b showhere]\nlate down [ | number2 pickeda2][cursor2a] -> [showthis | number2 pickeda2][cursor2a showhere]\nlate down [ | number2 pickedb2][cursor2b] -> [showthis | number2 pickedb2][cursor2b showhere]\nlate [showthis player1][showhere] -> [showthis player1][showhere player1mark]\nlate [showthis pit1][showhere] -> [showthis pit1][showhere pit1mark]\nlate [showthis crate1][showhere] -> [showthis crate1][showhere crate1mark]\nlate [showthis wall1][showhere] -> [showthis wall1][showhere wall1mark]\nlate [showthis one0][showhere] -> [showthis one0][showhere one0mark]\nlate [showthis two0][showhere] -> [showthis two0][showhere two0mark]\nlate [showthis three0][showhere] -> [showthis three0][showhere three0mark]\nlate [showthis one2][showhere] -> [showthis one2][showhere one2mark]\nlate [showthis two2][showhere] -> [showthis two2][showhere two2mark]\nlate [showthis three2][showhere] -> [showthis three2][showhere three2mark]\nlate [showthis wall0][showhere] -> [showthis wall0][showhere wall0mark]\nlate [showthis fell1][showhere] -> [showthis fell1][showhere fell1mark]\nlate [showthis ded1][showhere] -> [showthis ded1][showhere ded1mark]\nlate [showthis target0][showhere] -> [showthis target0][showhere target0mark]\nlate [showthis crate0][showhere] -> [showthis crate0][showhere crate0mark]\nlate [showthis cursor0][showhere] -> [showthis cursor0][showhere cursor0mark]\nlate [showthis inf0][showhere] -> [showthis inf0][showhere inf0mark]\nlate [showthis Target1][showhere] -> [showthis target1][showhere Target1mark]\nlate [showthis PlayerTarget1][showhere] -> [showthis PlayerTarget1][showhere PlayerTarget1mark]\n(connect cratemark)\nup [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crateu1 | crate1 crated1]\ndown [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crated1 | crate1 crateu1]\nleft [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark cratel1 | crate1 crater1]\nright [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crater1 | crate1 cratel1]\nup [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crateu1 | fell1 felld1]\ndown [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crated1 | fell1 fellu1]\nleft [action curse0 holding fell1mark no xx no number0 no number2| fell1] -> [action curse0 holding fell1mark cratel1 | fell1 fellr1]\nright [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crater1 | fell1 felll1]\n\n(place mark)\n[placemark] -> []\n\ndown [action curse0a holding xmark no x1 no number0][pickeda0 number0] -> [curse0a holding xmark placemark][pickeda0 decrement number0] SFX7\ndown [action cursor0b holding xmark no x1 no number0][pickedb0 number0] -> [cursor0b holding xmark placemark][pickedb0 decrement number0] SFX7\n\ndown [action cursor2a holding xmark no xx no number0 no number2][pickeda2 number2] -> [cursor2a holding xmark placemark][pickeda2 decrement number2] SFX7\ndown [action cursor2b holding xmark no xx no number0 no number2][pickedb2 number2] -> [cursor2b holding xmark placemark][pickedb2 decrement number2] SFX7\n\n\n\n[placemark player1mark] -> [placemark player1 player1mark]\n[placemark pit1mark] -> [placemark pit1 pit1mark]\n[placemark crate1mark] -> [placemark crate1 crate1mark]\n[placemark wall1mark] -> [placemark wall1 wall1mark]\n[placemark one0mark] -> [placemark one0 one0mark]\n[placemark two0mark] -> [placemark two0 two0mark]\n[placemark three0mark] -> [placemark three0 three0mark]\n[placemark one2mark] -> [placemark one2 one2mark]\n[placemark two2mark] -> [placemark two2 two2mark]\n[placemark three2mark] -> [placemark three2 three2mark]\n[placemark wall0mark] -> [placemark wall0 wall0mark]\n[placemark fell1mark] -> [placemark fell1 fell1mark]\n[placemark ded1mark] -> [placemark ded1 ded1mark]\n[placemark target0mark] -> [placemark target0 target0mark]\n[placemark crate0mark] -> [placemark crate0 crate0mark]\n[placemark Target1mark] -> [placemark target1 Target1mark]\n[placemark inf0mark] -> [placemark inf0 inf0mark]\n[placemark PlayerTarget1mark] -> [placemark playertarget1 PlayerTarget1mark]\ndown [placemark cursor0mark][curse0a|no one2] -> [ cursor0b cursor0mark][curse0a|]\n[placemark cursor0mark] -> [placemark cursor0a cursor0mark]\n\n(decrement number of placed item)\ndown [xmark holding cursor2a][pickable2|one2 decrement pickeda2] -> [xmark holding cursor2a][|one2 decrement pickeda2]\ndown [xmark holding cursor2b][pickable2|one2 decrement pickedb2] -> [xmark holding cursor2b][|one2 decrement pickedb2]\ndown [xmark holding curse0a][pickable|one0 decrement pickeda0] -> [xmark holding curse0a][|one0 decrement pickeda0]\ndown [xmark holding cursor0b][pickable|one0 decrement pickedb0] -> [xmark holding cursor0b][|one0 decrement pickedb0]\ndown [xmark holding cursor2a][|one2 decrement pickeda2] -> [cursor2a][|]\ndown [xmark holding cursor2b][|one2 decrement pickedb2] -> [cursor2b][|]\ndown [xmark holding cursor0a][|one0 decrement pickeda0] -> [cursor0a][|]\ndown [xmark holding cursor0b][|one0 decrement pickedb0] -> [cursor0b][|]\n[one0 decrement] -> []\n[two0 decrement] -> [one0]\n[three0 decrement] -> [two0]\n[four0 decrement] -> [three0]\n[five0 decrement] -> [four0]\n[six0 decrement] -> [five0]\n[seven0 decrement] -> [six0]\n[one2 decrement] -> []\n[two2 decrement] -> [one2]\n[three2 decrement] -> [two2]\n\n\n\n(player -> cursor)\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [player1 action active no wall0ghost no crate0ghost][partbc] -> [cursor0a player1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [ded1 action activefell no wall0ghost no crate0ghost][partbc] -> [cursor0a ded1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\n\n(cursor holding -> player)\ndown [action curse0a activecurse0 player1 holding xmark][| number0 pickeda0] -> [active player1][ | number0] SFX6\ndown [action curse0a activecurse0 ded1 holding xmark][| number0 pickeda0] -> [activefell ded1][ | number0] SFX6\ndown [action cursor0b activecurse0 player1 holding xmark][| number0 pickedb0] -> [active player1][ | number0] SFX6\ndown [action cursor0b activecurse0 ded1 holding xmark][| number0 pickedb0] -> [activefell ded1][ | number0] SFX6\n(empty cursor -> player)\n[action curse0 player1 activecurse0 no holding] -> [active player1] SFX6\n[action curse0 ded1 activecurse0 no holding] -> [activefell ded1] SFX6\n(red -> blue)\n[action cursor0a activecurse0 holding xmark][partc][pickeda0] -> [cursor0a cursor2a][partc][] SFX5\n[action cursor0a activecurse0 ][partc] -> [cursor0a cursor2a][partc] SFX5\n[action cursor0b activecurse0 holding xmark][partc][pickedb0] -> [cursor0b cursor2b][partc][] SFX5\n[action cursor0b activecurse0 ][partc] -> [cursor0b cursor2b][partc] SFX5\n(blue holding -> red)\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\nrandom down [action curse2 curse0 holding xmark][| number2 pickeda2] -> [activecurse0 cursor0a][ | number2] SFX6\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\n(empty blue -> red)\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\nrandom [action curse2 curse0 no holding] -> [activecurse0 cursor0a] SFX6\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\n\n\n[action player] -> SFX0\n[action curse0] -> SFX0\n\n(Aesthetic----------------------------------------------------------------------------------------)\n\n\n\n(ghosts)\n[player1 active][pit0] -> [player1 active][pit0ghost]\n[pit0ghost][cursor0] -> [pit0][cursor0]\n[player1 active][wall0] -> [player1 active][wall0ghost]\n[wall0ghost][cursor0] -> [wall0][cursor0]\n[player1 active][crate0] -> [player1 active][crate0ghost]\n[crate0ghost][cursor0] -> [crate0][cursor0]\n[player1 active][fell0] -> [player1 active][fell0ghost]\n[fell0ghost][cursor0] -> [fell0][cursor0]\n[curse0 activecurse0][wall2] -> [curse0 activecurse0][wall2ghost]\n[wall2ghost][curse2] -> [wall2][curse2]\n\n\n(wall boundaries)\n[wallx2] -> []\n[wallx1] -> []\n[wallx0] -> []\nup [wall2 | no wall2] -> [wall2 wallu2 | ]\ndown [wall2 | no wall2] -> [wall2 walld2 | ]\nleft [wall2 | no wall2] -> [wall2 walll2 | ]\nright [wall2 | no wall2] -> [wall2 wallr2 | ]\nup [wall1 | no wall1] -> [wall1 wallu1 | ]\ndown [wall1 | no wall1] -> [wall1 walld1 | ]\nleft [wall1 | no wall1] -> [wall1 walll1 | ]\nright [wall1 | no wall1] -> [wall1 wallr1 | ]\nup [wall0 | no wall0] -> [wall0 wallu0 | ]\ndown [wall0 | no wall0] -> [wall0 walld0 | ]\nleft [wall0 | no wall0] -> [wall0 walll0 | ]\nright [wall0 | no wall0] -> [wall0 wallr0 | ]\n\n(crate connectors)\nup [crateu0|] -> [crateu0 | crated0]\nright [crater0|] -> [crater0 | cratel0]\nup [crateu1|] -> [crateu1 | crated1]\nright [crater1|] -> [crater1 | cratel1]\n(pit connectors)\n[blackcorner] -> []\n[pit0x] -> [] \n[pit1x] -> [] \nup [pit1 | pit1] -> [pit1u pit1|pit1d pit1]\nright [pit1 | pit1] -> [pit1r pit1|pit1l pit1]\nup [pit0 | pit0] -> [pit0u pit0|pit0d pit0]\nright [pit0 | pit0] -> [pit0r pit0|pit0l pit0]\n[pit1u pit1r] -> [pit1u pit1r blackur]\n[pit1u pit1l] -> [pit1u pit1l blackul]\n[pit1d pit1r] -> [pit1d pit1r blackdr]\n[pit1d pit1l] -> [pit1d pit1l blackdl]\n[pit0u pit0r] -> [pit0u pit0r blackur]\n[pit0u pit0l] -> [pit0u pit0l blackul]\n[pit0d pit0r] -> [pit0d pit0r blackdr]\n[pit0d pit0l] -> [pit0d pit0l blackdl]\n[rim1x] -> []\n[rim0x] -> []\nup[pit0|no pit0] -> [pit0 rim0u|]\ndown[pit0|no pit0] -> [pit0 rim0d|]\nleft[pit0|no pit0] -> [pit0 rim0l|]\nright[pit0|no pit0] -> [pit0 rim0r|]\nup[pit1|no pit1] -> [pit1 rim1u|]\ndown[pit1|no pit1] -> [pit1 rim1d|]\nleft[pit1|no pit1] -> [pit1 rim1l|]\nright[pit1|no pit1] -> [pit1 rim1r|]\nlate [pink] -> []\nlate [cyan] -> []\nlate [chosepink] -> []\nlate [chosecyan] -> []\nlate down [pickable |number0] -> [pickable pink | number0 pink]\nlate down [pickable2 |number2] -> [pickable2 cyan | number2 cyan]\nlate up [pink picked|pink] -> [chosepink picked|chosepink ]\nlate up [cyan picked|cyan ] -> [chosecyan picked|chosecyan ]\n\n(Movement----------------------------------------------------------------------------------------)\n\n(move attached items)\n[moving activecurse0 curse0] -> [moving activecurse0 moving curse0]\n[moving active player1] -> [moving active moving player1]\n[moving activefell ded1] -> [moving activefell moving ded1]\n[moving curse0 holding] -> [moving curse0 moving holding]\n[moving curse2 holding] -> [moving curse2 moving holding]\n\n(reset and propogate cant)\n[cant0] -> []\n[cant1] -> []\n[cant2] -> []\n[fellcant0] -> []\n[fellcant1] -> []\n\n[black no cant0 no cant1 no cant2] -> [black cant0 cant1 cant2]\n[wall2 no cant2] -> [wall2 cant2]\n[wall1 no cant1] -> [wall1 cant1]\n[wall0 no cant0] -> [wall0 cant0]\n[number0] -> [number0 cant1]\n[number2] -> [number2 cant1]\n[no pit1 no fellcant1] -> [fellcant1]\n[no pit0 no fellcant0] -> [fellcant0]\n\n[> ded1][fell1|fellcant1] -> [> ded1][fell1 fellcant1 | fellcant1]\n+ [> ded1][ded1|fellcant1] -> [> ded1][ded1 fellcant1 | fellcant1]\n+ up[fellu1|fellcant1] -> [fellu1 fellcant1 | fellcant1]\n+ left[felll1|fellcant1] -> [felll1 fellcant1 | fellcant1]\n+ down[felld1|fellcant1] -> [felld1 fellcant1 | fellcant1]\n+ right[fellr1|fellcant1] -> [fellr1 fellcant1 | fellcant1]\n\n+ [> player1][crate1|cant1] -> [> player1][crate1 cant1 | cant1]\n+ [> player1][player1|cant1] -> [> player1][player1 cant1 | cant1]\n+ up[crateu1|cant1] -> [crateu1 cant1 | cant1]\n+ left[cratel1|cant1] -> [cratel1 cant1 | cant1]\n+ down[crated1|cant1] -> [crated1 cant1 | cant1]\n+ right[crater1|cant1] -> [crater1 cant1 | cant1]\n+ [crate1 crate0 cant0] -> [crate1 crate0 cant0 cant1]\n+ [crate1 crate0 cant1] -> [crate1 crate0 cant0 cant1]\n+ [> dead0][dead0|fellcant0] -> [> dead0][dead0 fellcant0 | fellcant0]\n+ [> cursor0][cursor0|cant0] -> [> cursor0][cursor0 cant0 | cant0]\n+ [> cursor0][crate0 | number0] -> [> cursor0][crate0 cant0| number0]\n+ [> cursor0][crate0|cant0] -> [> cursor0][crate0 cant0 | cant0]\n+ up[crateu0|cant0] -> [crateu0 cant0 | cant0]\n+ left[cratel0|cant0] -> [cratel0 cant0 | cant0]\n+ down[crated0|cant0] -> [crated0 cant0 | cant0]\n+ right[crater0|cant0] -> [crater0 cant0 | cant0]\n\n[> curse2 | wall2] -> [stationary curse2 | wall2]\n[> curse2 | black] -> [stationary curse2 | black]\n[cursor0 cant0] -> [stationary cursor0 cant0]\n[player1 cant1] -> [stationary player1 cant1]\n[ded1 fellcant1] -> [stationary ded1 fellcant1]\n[dead0 fellcant0] -> [stationary dead0 fellcant0]\n\n\n(propagate movement)\n\n[ > Ded1 | Fell1 no fellcant1] -> [ > Ded1 | > Fell1 ]\n\n[ > Cursor0 | Crate0 ] -> [ > Cursor0 | > Crate0 ]\n+ [ > Cursor0 | Cursor0 ] -> [ > Cursor0 | > Cursor0 ]\n+ [ > Crate0 | Crate0 ] -> [ > Crate0 | > Crate0 ]\n\n+ [ > Player1 | Crate1 ] -> [ > Player1 | > Crate1 ]\n+ [ > Player1 | Player1] -> [ > Player1 | > Player1 ]\n+ [ > Crate1 | Player1 ] -> [ > Crate1 | > Player1 ]\n+ [> crate1|crate1] -> [> crate1 | > crate1]\n+ up[moving crate1 crateu1|crate1] -> [moving crate1 crateu1 | moving crate1]\n+ left[moving crate1 cratel1|crate1] -> [moving crate1 cratel1 | moving crate1]\n+ down[moving crate1 crated1|crate1] -> [moving crate1 crated1 | moving crate1]\n+ right[moving crate1 crater1|crate1] -> [moving crate1 crater1 | moving crate1]\n \n\n[> fell1|fell1] -> [> fell1 | > fell1]\n+ up[moving fell1 fellu1|fell1] -> [moving fell1 fellu1 | moving fell1]\n+ left[moving fell1 felll1|fell1] -> [moving fell1 felll1 | moving fell1]\n+ down[moving fell1 felld1|fell1] -> [moving fell1 felld1 | moving fell1]\n+ right[moving fell1 fellr1|fell1] -> [moving fell1 fellr1 | moving fell1]\n\n[moving crate1 cratex1] -> [moving crate1 moving cratex1]\n[moving fell1 fellx1] -> [moving fell1 moving fellx1]\n[moving crate1 crate0ghost] -> [moving crate1 moving crate0ghost]\n\n[active stationary player1] -> [stationary active stationary player1]\n[activecurse0 stationary curse0] -> [stationary activecurse0 stationary curse0]\n[activefell stationary ded1] -> [stationary activefell stationary ded1]\n[stationary cursor0 activecurse0 holding] -> [stationary cursor0 activecurse0 stationary holding]\n[stationary curse2 holding] -> [stationary curse2 stationary holding]\n\n\n(falling)\nlate [supported] -> []\n\nlate [crate1 ded1] -> [crate1 supported ded1]\nlate [crate1 no pit1] -> [crate1 supported]\nlate [crate1 fell1] -> [crate1 fell1 supported]\n\n\nlate up[crateu1|supported] -> [crateu1 supported | supported]\n+ late left[cratel1|supported] -> [cratel1 supported | supported]\n+ late down[crated1|supported] -> [crated1 supported | supported]\n+ late right[crater1|supported] -> [crater1 supported | supported]\n\n\nlate [cursor0 pit0 no fell0] -> [pit0 dead0a]SFX3\nlate [player1 active pit1 no fell1 no ded1] -> [pit1 ded1 activefell]SFX3\nlate [player1 pit1 no fell1 no ded1] -> [pit1 ded1 ]SFX3\nlate [crate0 pit0 no supported] -> [pit0 fell0]SFX3\nlate [crate1 pit1 no supported] -> [pit1 fell1] SFX3\n\n\n\nlate [crateu1 no crate1 fell1] -> [fellu1 fell1]\nlate [cratel1 no crate1 fell1] -> [felll1 fell1]\nlate [crater1 no crate1 fell1] -> [fellr1 fell1]\nlate [crated1 no crate1 fell1] -> [felld1 fell1]\n\nlate [crateu1 no crate1] -> []\nlate [cratel1 no crate1] -> []\nlate [crater1 no crate1] -> []\nlate [crated1 no crate1] -> []\nlate up [crateu1 |no crate1] -> [|]\nlate left [cratel1 |no crate1] -> [|]\nlate right [crater1 |no crate1] -> [|]\nlate down [crated1 |no crate1] -> [|]\nlate [player1 ded1] -> [player1 ded1] SFX0\nlate [player1 ded1] -> cancel \n\n[moving crate0] -> SFX2\n[moving crate1] -> SFX2\n\n==============\nWINCONDITIONS\n==============\n\n\nAll target0 on crate0\nAll Target1 on Crateorfell1\nAll PlayerTarget1 on Playerormark1\nno Cursor0 on target1\nno cursor0 on PlayerTarget1\n\n=======\nLEVELS\n=======\n\nmessage Book 1: BASE\n\nmessage Page 1.1: GOAL\n\n#######\n#`````#\n#`p`t`#\n#`````#\n#`o`q`#\n#`````#\n#######\n\nmessage Page 1.2: TOOL\n\n#######\n#`t`o`#\n#t`-:`#\n#``tlo#\n#p````#\n#######\n\nmessage Page 1.3: HOLE\n\n########\n##``0`##\n#```0``#\n#``o0`t#\n#po:0``#\n#``:0`t#\n#```0``#\n##``0`##\n########\n\nmessage Page 1.4: FALL\n\n########\n#00u``0#\n#00po`0#\n#`000`0#\n#`00```#\n#`000``#\n#`000``#\n########\n\nmessage Book 2: EDIT\n\nmessage Page 2.1: MINI\n\n||||||||||\n|```````'|\n|`######`|\n|`#````#`|\n|`#``t`#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 2.2: FORM\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 2.3: PLUG\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#ro`o`#`|\n|`#####`#`|\n|`###`o`#`|\n|`#``oLo#`|\n|`#````##`|\n|`#`q####`|\n|`#######`|\n|`````````|\n|``c`0````|\n|````8````|\n|`````````|\n|||||||||||\n\nmessage Page 2.4: TRAP\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#``````#`|\n|`#``t```#`|\n|`#`tqt``#`|\n|`#``t```#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````16````|\n|``````````|\n||||||||||||\n\nmessage Book 3: DUAL\n\nmessage Page 3.1: CO-OP\n\n#######\n####qq#\n#po000#\n#`o000#\n###o``#\n###r`'#\n#######\n\nmessage Page 3.2: REST\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#`r00q#`|\n|`#######`|\n|`````````|\n|``c`o````|\n|````2````|\n|`````````|\n|||||||||||\nmessage Page 3.3: SAIL\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#0000q#`|\n|`#00000#`|\n|`#00000#`|\n|`#```00#`|\n|`#```00#`|\n|`#######`|\n|`````````|\n|``c`ro```|\n|````23```|\n|`````````|\n|||||||||||\n\nmessage Page 3.4: TWIN\n\n|||||||||||||||||||||\n|`````````+````````'|\n|`#######`+`#######`|\n|`#`````#`+`#`````#`|\n|`#```q`#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`q```#`|\n|`#`````#`+`#`````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````6````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Book 4: WHAT\n\nmessage Page 4.1: GUIS\n\n\n#######\n#q#``'#\n#``8#`#\n#`#p#`#\n#`#o#`#\n#`#1``#\n#######\n\nmessage Page 4.2: IDEA\n\n||||||||||\n|```````'|\n|`######`|\n|`#```t#`|\n|`#```t#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```31```|\n|````````|\n||||||||||\n\nmessage Page 4.3: FILL\n\n\n######\n#0poq#\n#0`70#\n#'000#\n#0000#\n######\n\nmessage Page 4.4: A LOT\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|``````'|\n|`c3o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Book 5: UHHH\n\nmessage Page 5.1: WALL\n\n||||||||||\n|```````'|\n|`######`|\n|`#t`#`#`|\n|`#````#`|\n|`##`o`#`|\n|x+xxxx+x|\n|`#````#`|\n|`#````#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 5.2: SAFE\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#xxxxx#`|\n|`#x```x#`|\n|`#x`t`x#`|\n|`#x```x#`|\n|`#xxxxx#`|\n|`#######`|\n|`````````|\n|`c`o1r```|\n|```111```|\n|`````````|\n|||||||||||\n\nmessage Page 5.3: LOCK\n\n|||||||||||||\n|o```'`xxxcx|\n|1``x```qx!x|\n|`1!````qx`x|\n|``1?x`xxx?x|\n|r``1````!`x|\n|````2`xxxxx|\n|||||||||||||\n\n\n\nmessage Page 5.4: POST\n\n+++++++++\n+p#```#q+\n+`#``'#3+\n+`#`1`#`+\n+`#`2`#`+\n+`#```#`+\n+`#```#`+\n+++++++++\nmessage Book 6: BLUE\n\nmessage Page 6.1: META\n\n||||||||||||\n|++++++++++|\n|+````\"```+|\n|+`######`+|\n|+`#````#`+|\n|+`#``t`#`+|\n|+`#````#`+|\n|+`######`+|\n|+````````+|\n|+```ro```+|\n|+````````+|\n|+````````+|\n|++++++++++|\n|``````````|\n|``~`1b````|\n|````{[````|\n|``````````|\n||||||||||||\n\nmessage Page 6.2: WILD\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`#######`+|\n|+`#0000q#`+|\n|+`#00000#`+|\n|+`#`0000#`+|\n|+`#`0000#`+|\n|+`#```00#`+|\n|+`#######`+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\nmessage Page 6.3: UH OH\n\n|||||||||||\n|+++++++++|\n|+``````\"+|\n|+`+++++`+|\n|+`+```+`+|\n|+`+`t`+`+|\n|+`+```+`+|\n|+`+```+`+|\n|+`+++++`+|\n|+```````+|\n|+```o```+|\n|+```````+|\n|+```````+|\n|+++++++++|\n|`````````|\n|`````````|\n|`~`1br```|\n|```][[```|\n|`````````|\n|||||||||||\n\nmessage Page 6.4: VARY\n\n|||||||||||||||||||||||\n|++++++++++&++++++++++|\n|+``````\"`x&x````````+|\n|+`######`x&x`######`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`#`qt`#`x&x`#`tq`#`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`######`x&x`######`+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|++++++++++&++++++++++|\n|``````````&``````````|\n|`~`r1ob```&`_`r1ob```|\n|```[{[[```&```[[[[```|\n|``````````&``````````|\n|||||||||||||||||||||||\n\nmessage Book 7: ?!?!\n\nmessage Page 7.1: EACH\n\n+++++++\n+````'+\n+`###`+\n+`#q#`+\n+`#0#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`###`+\n+`````+\n+``c``+\n+`r0o`+\n+``4``+\n+`````+\n+++++++\n\nmessage Page 7.2: HOLD\n\n&&&&&&&&&\n&`8```+`&\n&`{po`+`&\n&`\"```+t&\n&&&&&&&&&\n\nmessage Page 7.3: TRIP\n\n&&&&&&&\n&```\"`&\n&`o`!`&\n&`````&\n&+++++&\n&`r2b`&\n&`[[{~&\n&y```t&\n&&&&&&&\n\nmessage Page 7.4: PLAN\n\n\n|||||||||\n|```t```|\n|```````|\n|+++++++|\n|```````|\n|```````|\n|>>>>>>>|\n|```````|\n|```````|\n|+++++++|\n|```~```|\n|[[`2\"11|\n|[[`[`[[|\n|&&`&&&&|\n|&&bor&&|\n|||||||||\n\n\n\n\n\nmessage Book 8: (RE)STAR(TS)\n\n\nmessage Page 8.1: (IN)FORM(ED)\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 8.2: (EN)TWIN(ED)\n\n|||||||||||||||||||||\n|`````````+`````````|\n|`#######`+`#######`|\n|`#````q#`+`#`````#`|\n|`#`````#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`````#`|\n|`#`````#`+`#q````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````5````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Page 8.3: (ZE)ALOT(RY)\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|```````|\n|`c2o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Page 8.4: (BE)WILD(ER)\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`+++++++`+|\n|+`+0000q+`+|\n|+`+00000+`+|\n|+`+00000+`+|\n|+`+`0000+`+|\n|+`+```00+`+|\n|+`+++++++`+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",[3,3,4,0,0,0,3,4,0,4,3,0,0,4,0,4,1,1,1,2,4,2,4,2,3,0,4,3,3,2,1,1,0,1,0,1,0,3,3,2,3,3,2,2],"background black cant0 cant1 cant2 fellcant0 fellcant1:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background fellcant0 fellcant1:1,1,1,1,1,1,\n1,1,1,1,1,1,0,0,1,background cant1 fellcant0 fellcant1 wall1 walll1 wallu1:2,background cant1 fellcant0 fellcant1 wall1 walll1 wallr1:3,3,3,3,3,background cant1 fellcant0 fellcant1 wall1 walld1 walll1:4,1,1,1,1,0,\n0,1,background cant1 fellcant0 fellcant1 wall1 walld1 wallu1:5,1,1,1,1,1,5,1,1,1,1,0,0,1,5,1,1,1,background cant1 crate1 crated1 fellcant0 fellcant1 supported:6,\nbackground cant1 crate1 crateu1 fellcant0 fellcant1 supported:7,5,1,1,1,1,0,0,1,5,1,1,1,1,1,5,1,1,1,1,0,\n0,1,5,background crate1 fellcant0 fellcant1 supported:8,background fellcant0 fellcant1 playertarget1:9,1,active background fellcant0 fellcant1 player1:10,1,5,1,1,1,1,0,0,1,5,background crate1 crated1 fellcant0 fellcant1 supported:11,background crate1 crateu1 fellcant0 fellcant1 supported:12,1,1,\n1,5,1,1,1,1,0,0,1,background cant1 fellcant0 fellcant1 wall1 wallr1 wallu1:13,3,3,3,3,3,background cant1 fellcant0 fellcant1 wall1 walld1 wallr1:14,1,1,1,1,0,\n0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,background cant1 fellcant0 fellcant1 wall0ghost wall1 walll1 wallr1 wallu1:15,background cant1 fellcant0 fellcant1 wall0ghost wall1 walll1 wallr1:16,16,16,16,16,\n16,16,16,16,16,background cant1 fellcant0 fellcant1 wall0ghost wall1 walld1 walll1 wallr1:17,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,2,3,3,3,3,3,4,1,1,1,1,0,0,1,5,1,11,12,1,\n1,5,1,1,1,1,0,0,1,5,1,1,1,background cant1 crate1 crated1 fellcant0 fellcant1 playertarget1 supported:18,7,5,1,1,1,1,0,\n0,1,5,1,1,1,1,1,5,1,1,1,1,0,0,1,5,1,1,1,10,\n1,5,1,1,1,1,0,0,1,5,11,12,1,1,1,5,1,1,1,1,0,\n0,1,13,3,3,3,3,3,14,1,1,1,1,0,0,background fellcant0 fellcant1 partb:19,1,1,1,1,1,\n1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",26,"1627770125763.7583"] ], [ `gallery game: I'm too far gone`, - ["title I'm too far gone\n\n\nzoomscreen 11x11\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground\nwhite\n\nb1\nwhite #dddddd\n00000\n00010\n00000\n10000\n00000\n\nb2\nwhite #dddddd\n00000\n00000\n00100\n00000\n00000\n\nb3\nwhite #dddddd\n01000\n00000\n00000\n00100\n00000\n\nb4\nwhite #dddddd\n00000\n00000\n00000\n00000\n00001\n\nb5\nwhite #dddddd\n00000\n10000\n00000\n00100\n00000\n\nfloor\ndarkgrey\n\nEe\ndarkgrey yellow\n01110\n01000\n01110\n01000\n01110\n\nNn\ndarkgrey yellow\n00000\n01110\n01010\n01010\n00000\n\nDd\ndarkgrey yellow\n01100\n01010\n01010\n01010\n01100\n\nwall\ngrey\n\nredgen\nred lightgrey\n11011\n11011\n01010\n10001\n11011\n\nbluegen\nblue lightgrey\n11011\n10001\n01010\n11011\n11011\n\nred\nlightred red\n.111.\n10001\n10001\n10001\n.111.\n\nblue\nlightblue blue\n.111.\n10001\n10001\n10001\n.111.\n\nred1\nred darkred\n11111\n10001\n10001\n10001\n11111\n\nblue1\nblue darkblue\n11111\n10001\n10001\n10001\n11111\n\nru\nlightred red\n10001\n.....\n.....\n.....\n.....\n\nrd\nlightred red\n.....\n.....\n.....\n.....\n10001\n\nrr\nlightred red\n....1\n....0\n....0\n....0\n....1\n\nrl\nlightred red\n1....\n0....\n0....\n0....\n1....\n\nbu\nlightblue blue\n10001\n.....\n.....\n.....\n.....\n\nbd\nlightblue blue\n.....\n.....\n.....\n.....\n10001\n\nbr\nlightblue blue\n....1\n....0\n....0\n....0\n....1\n\nbl\nlightblue blue\n1....\n0....\n0....\n0....\n1....\n\nded\nbrown\n.....\n.000.\n.000.\n.000.\n.....\n\nru1\nred darkred\n10001\n.....\n.....\n.....\n.....\n\nrd1\nred darkred\n.....\n.....\n.....\n.....\n10001\n\nrr1\nred darkred\n....1\n....0\n....0\n....0\n....1\n\nrl1\nred darkred\n1....\n0....\n0....\n0....\n1....\n\nbu1\nblue darkblue\n10001\n.....\n.....\n.....\n.....\n\nbd1\nblue darkblue\n.....\n.....\n.....\n.....\n10001\n\nbr1\nblue darkblue\n....1\n....0\n....0\n....0\n....1\n\nbl1\nblue darkblue\n1....\n0....\n0....\n0....\n1....\n\n\nplayer\nyellow\n.....\n.000.\n.000.\n.000.\n.....\n\nsupp\ntransparent\n\nmovee\ntransparent\n\nmoven\ntransparent\n\nmoved\ntransparent\n\nmem\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall and floor\nr = redgen and wall\nb = bluegen and wall\n- = floor\np = player and floor\nE = Ee\nN = Nn \nD = Dd \ncol = red or blue\ncol1 = red1 or blue1\nxx = rr or rl or ru or rd or br or bl or bd or bu\nxx1 = rr1 or rl1 or ru1 or rd1 or br1 or bl1 or bd1 or bu1\nend = ee or nn or dd\n! = red and floor\n? = mem\nbx = b1 or b2 or b3 or b4 or b5\n=======\nSOUNDS\n=======\nSFX1 9924503\nSFX2 79825304\nSFX3 17145902\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbx\nfloor, red1, blue1, ded\nrr1\nrl1\nru1\nrd1\nbr1\nbl1\nbd1\nbu1\nPlayer, Wall, red, blue, \nrr\nrl\nru\nrd\nbr\nbl\nbd\nbu\nredgen, bluegen, Ee, Nn, Dd\nsupp\nmovee\nmoven\nmoved\nmem\n======\nRULES\n======\n[background no bx] -> [background random bx]\nlate down [redgen|no player no red no blue] -> [redgen|red movee moven moved] SFX1\nlate up [bluegen|no player no red no blue] -> [bluegen|blue movee moven moved] SFX1\n\nlate right[movee][ee|] -> [][|ee]\nlate right[moven][nn|] -> [][|nn]\nlate right[moved][dd|] -> [][|dd]\n\n[> player | red] -> [> player| > red]\n[> player | blue] -> [> player| > blue]\n\n[moving red | red] -> [moving red | moving red]\n+[moving blue | blue] -> [moving blue | moving blue]\n+[moving red1 | red1] -> [moving red1 | moving red1]\n+[moving blue1 | blue1] -> [moving blue1 | moving blue1]\n+[moving red red1] -> [moving red moving red1]\n+[moving blue blue1] -> [moving blue moving blue1]\n+[ red moving red1] -> [moving red moving red1]\n+[ blue moving blue1] -> [moving blue moving blue1]\n+[> red | blue] -> [> red | > blue]\n+[> blue | red] -> [> blue | > red]\n+[> red1 | blue1] -> [> red1 | > blue1]\n+[> blue1 | red1] -> [> blue1 | > red1]\n\n[player moving col1] -> cancel\n[> col | wall] -> cancel\n[> col1 | floor] -> cancel\n\nlate [supp] -> []\nlate [col floor] -> [col supp floor]\nlate [col col1] -> [col supp col1]\nlate [red supp | red] -> [red supp | red supp]\nlate [blue supp | blue] -> [blue supp | blue supp]\n\nlate [red no supp] -> [red1] SFX2\nlate [blue no supp] -> [blue1] SFX2\nlate [player no col1 no floor] -> [ded] SFX3\n\nlate [xx] -> []\nlate [xx1] -> []\n\nlate up [red | red] -> [red ru | red rd]\nlate left [red | red] -> [red rl | red rr]\nlate up [blue | blue] -> [blue bu | blue bd]\nlate left [blue | blue] -> [blue bl | blue br]\nlate up [red1 | red1] -> [red1 ru1 | red1 rd1]\nlate left [red1 | red1] -> [red1 rl1 | red1 rr1]\nlate up [blue1 | blue1] -> [blue1 bu1 | blue1 bd1]\nlate left [blue1 | blue1] -> [blue1 bl1 | blue1 br1]\n\nlate [nn mem][player] -> [nn mem][ded] message YOU'VE GONE TOO FAR (THIS IS NOT A WIN)\n==============\nWINCONDITIONS\n==============\n\nall player on end\nno ded\n=======\nLEVELS\n=======\n\n\nmessage Level 25 of 25\n\n##########################################################################################################################################################################\n#.........................................................................................................................................................................\n#.-------.................................................................................................................................................................\n#.---r---.................................................................................................................................................................\n#.---!---E................................................................................................................................................................\n#.-----p-N...............................................................................................................................................................?\n#.-------D................................................................................................................................................................\n#.---b---.................................................................................................................................................................\n#.-------.................................................................................................................................................................\n#.........................................................................................................................................................................\n##########################################################################################################################################################################\n\n\n\n", [1, 1, 1, 2, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 3, 1, 1, 0, 1, 1, 0, 3, 3, 2, 1, 1, 0, 3, 1, 3, 3, 0, 3, 2, 1, 2, 3, 3, 1, 1, 1, 1, 0, 3, 3, 3, 0, 3, 2, 1, 2, 3, 1, 1, 1, 1, 0, 3, 3, 3, 0, 3, 2, 1, 2, 3, 1, 1, 1, 1, 0, 3, 3, 3, 0, 3, "undo", "undo", "undo", 0, 3, 2, 2, 1, 2, 3, 3, 3, 3, 3, 3, 3], "b5 background floor wall:0,b3 background floor wall:1,b1 background floor wall:2,2,1,b2 background floor wall:3,3,1,b4 background floor wall:4,4,4,0,b4 background:5,b1 background:6,6,6,b5 background:7,b2 background:8,6,6,7,3,1,8,b4 background floor:9,b2 background floor:10,b5 background floor:11,9,10,10,b1 background floor:12,8,4,0,b3 background:13,9,11,12,11,11,10,9,13,0,3,8,11,10,12,10,10,10,10,5,3,1,13,b3 background floor:14,b3 background redgen wall:15,b1 background floor red supp:16,14,b1 background blue floor supp:17,b1 background bluegen wall:18,11,5,2,3,5,9,9,9,10,11,12,10,8,1,0,6,12,12,10,10,9,12,11,6,1,2,13,9,11,10,12,11,10,12,7,3,4,7,6,7,5,7,b3 background blue1 br1:19,5,7,6,0,0,7,7,8,13,5,b2 background bl1 blue1 br1:20,13,13,6,4,3,5,7,8,8,7,20,5,8,8,0,0,7,8,7,13,7,b3 background bl1 blue1 br1:21,6,6,6,0,2,6,7,6,6,13,b1 background bl1 blue1 player:22,13,6,7,1,2,8,7,13,13,b1 background rd red rr supp:23,b4 background red ru supp:24,7,7,6,3,1,8,13,13,7,\nb5 background red red1 rl rr1 supp:25,8,13,6,8,4,3,5,6,13,7,b5 background red1 rl1 rr1:26,5,13,8,7,1,2,5,7,6,6,b3 background red1 rl1:27,5,6,6,7,4,4,13,7,8,8,6,7,6,7,5,0,1,8,7,6,5,6,7,6,13,7,3,3,13,8,6,13,8,5,5,8,7,4,4,7,13,13,b2 background ee:28,b5 background nn:29,b5 background dd:30,7,13,13,1,4,5,5,8,13,5,13,13,8,6,1,4,13,5,5,8,6,7,7,8,7,3,3,8,7,8,5,8,13,7,8,5,1,4,6,6,8,8,5,13,13,13,8,0,0,8,5,7,7,13,13,7,8,5,2,2,13,7,6,7,8,13,13,13,13,3,3,5,13,13,6,6,6,6,8,7,4,1,5,8,13,5,5,8,13,6,13,1,4,13,7,8,8,6,7,8,6,6,\n3,1,5,5,13,6,7,8,7,5,13,1,1,7,5,8,13,6,5,7,6,7,0,0,7,7,6,5,13,7,5,8,6,2,0,8,6,5,6,6,5,13,13,7,1,2,7,5,6,6,6,6,5,8,8,0,1,6,5,5,13,7,5,7,13,5,2,4,5,8,5,5,6,7,6,6,8,2,0,5,6,7,5,8,7,7,7,5,3,0,5,7,8,6,5,6,8,5,6,4,1,8,13,8,5,5,5,8,6,5,1,4,5,13,7,8,5,13,13,13,5,3,3,7,5,5,13,8,7,6,5,13,2,3,8,6,13,7,13,8,6,7,8,0,3,5,5,5,8,7,7,5,6,13,3,1,6,5,8,13,7,7,8,8,6,0,4,8,13,7,\n5,13,5,6,13,13,4,3,7,5,5,6,5,6,6,8,5,0,2,7,8,7,7,7,5,13,8,13,3,1,6,5,6,7,8,6,6,6,7,2,4,5,5,6,7,13,13,7,5,5,2,4,6,7,13,13,7,5,8,13,5,3,1,8,6,7,5,5,13,13,6,8,0,1,7,6,7,7,6,8,8,6,5,0,4,5,7,6,13,6,13,13,8,5,2,0,13,13,6,8,6,7,7,6,6,0,4,7,13,8,8,7,8,5,5,13,3,3,5,13,7,5,6,8,13,6,5,0,1,6,6,6,6,7,5,8,8,5,0,1,7,13,7,6,5,7,8,5,8,0,3,6,13,5,8,5,8,5,7,7,3,4,5,6,5,7,13,8,13,5,\n5,4,3,8,5,6,5,13,8,6,6,6,1,2,7,7,8,13,5,6,5,5,7,2,2,13,8,6,8,6,8,13,6,7,0,4,7,7,5,7,8,7,6,8,8,3,4,8,5,13,6,6,13,13,6,6,4,3,6,7,13,5,8,6,7,8,13,0,4,5,13,7,13,6,5,7,13,7,0,4,8,7,8,6,5,13,7,8,13,4,0,5,6,8,7,5,5,13,5,13,2,1,13,13,7,8,8,8,5,8,8,4,1,6,13,8,7,7,7,7,13,13,4,4,7,6,8,8,6,8,6,5,7,4,4,8,13,6,5,8,7,6,7,6,1,2,5,5,5,8,6,6,7,7,6,0,0,8,13,8,6,13,5,5,6,8,2,1,13,5,\n7,6,8,5,13,5,13,0,2,13,5,5,5,7,13,6,5,13,2,4,13,13,7,5,8,7,13,8,6,1,3,8,7,7,8,6,7,13,5,6,1,2,7,8,13,13,6,8,7,5,13,4,2,5,5,6,5,7,6,13,6,5,1,4,8,6,7,13,8,7,8,7,8,4,4,8,13,5,5,5,5,7,13,7,2,0,8,8,5,5,13,8,7,6,13,2,4,7,8,8,8,13,5,13,6,5,1,4,7,5,13,13,8,8,6,5,7,0,1,13,7,8,6,7,5,7,8,6,2,1,8,13,8,7,13,8,7,5,8,1,0,6,13,8,8,13,6,8,13,6,4,0,8,6,5,8,6,8,7,8,8,2,0,7,8,8,6,8,6,7,\n5,6,4,4,5,5,13,5,8,8,5,13,13,3,2,8,7,6,5,7,5,13,6,8,3,4,7,6,7,13,13,13,8,6,13,0,0,7,5,6,13,13,6,6,5,5,0,2,13,7,7,6,5,7,6,8,5,4,4,8,5,7,8,6,5,6,8,7,0,2,8,7,5,8,6,13,5,7,13,0,4,8,8,13,7,5,13,13,5,7,0,3,8,7,7,8,13,8,7,6,6,1,3,6,5,5,5,13,13,13,8,7,1,1,6,7,7,5,6,6,5,6,5,4,0,8,6,6,7,5,8,7,7,6,2,1,13,5,13,8,5,8,6,7,13,3,0,8,5,6,6,13,13,5,8,8,1,3,8,5,7,7,6,7,7,5,8,2,4,6,\n8,7,5,7,7,8,13,5,2,1,13,6,7,7,8,8,8,13,8,1,3,5,13,13,5,6,8,6,7,13,4,0,6,13,6,13,13,13,13,6,5,0,2,13,7,5,5,8,8,6,8,5,4,3,5,6,5,6,13,5,13,6,6,2,2,7,5,13,7,13,5,6,13,8,3,0,13,7,8,13,6,13,7,8,6,4,2,7,8,8,6,13,5,8,7,5,0,2,5,7,13,7,6,8,6,5,6,4,0,6,7,5,6,6,8,8,7,5,2,0,6,6,8,13,5,13,6,6,7,4,0,13,5,7,13,8,13,6,8,13,2,0,7,13,6,5,5,7,6,5,6,2,4,7,13,5,6,5,7,7,6,7,0,0,8,5,6,13,13,6,\n5,13,13,1,1,7,7,13,6,5,8,13,6,8,0,1,6,13,8,13,7,7,8,6,5,3,4,6,8,13,13,5,5,13,13,7,3,3,6,13,6,7,13,8,5,6,5,0,2,8,13,8,5,5,7,13,5,6,2,0,7,7,13,8,6,6,13,13,6,3,4,8,8,5,13,5,13,5,8,5,1,0,5,7,8,8,5,8,7,7,6,2,3,6,6,8,13,13,6,7,5,6,3,1,13,8,8,5,13,8,7,8,7,3,1,8,7,13,13,6,8,8,7,7,2,0,7,13,7,8,7,5,8,8,7,0,0,5,6,13,5,6,5,7,5,13,4,4,5,6,6,7,13,7,7,13,6,2,4,6,8,6,5,13,8,7,8,13,0,0,\n7,6,6,7,8,5,13,7,5,4,4,7,13,7,7,6,13,5,6,8,1,1,7,7,13,6,13,7,5,7,6,0,3,13,7,5,13,5,13,5,7,7,3,1,8,6,8,5,6,5,13,7,5,0,0,8,13,7,6,5,8,6,13,6,4,1,13,13,5,13,5,5,5,6,8,1,2,7,5,13,13,6,13,6,8,6,4,1,13,8,8,13,13,5,8,8,8,0,2,7,6,8,7,8,6,5,6,7,3,1,8,5,7,6,6,6,5,6,5,4,0,8,13,5,5,13,8,6,7,7,2,2,5,5,8,8,8,6,5,6,8,3,4,7,7,7,7,5,6,7,8,8,4,3,8,5,5,13,7,8,7,5,7,2,1,8,13,13,5,6,\n5,13,7,5,2,3,5,8,13,6,8,7,13,13,13,3,3,6,6,13,5,8,6,8,5,6,2,1,7,8,8,5,13,6,7,5,7,2,3,8,7,6,5,6,5,7,6,7,3,0,7,8,13,8,13,5,6,7,8,1,4,6,5,8,6,13,8,7,7,5,4,1,6,13,7,5,7,7,7,7,6,3,1,5,13,5,6,8,6,13,6,13,1,4,6,8,7,6,5,8,7,5,6,3,4,8,8,7,7,8,7,7,8,6,3,1,13,6,13,13,13,7,13,5,6,0,1,5,7,7,5,13,7,13,7,6,4,1,7,8,6,13,13,5,7,13,6,2,0,13,5,7,7,13,8,8,5,6,0,4,7,6,5,6,b2 background mem:31,5,5,5,7,1,\n", 1, "1627770159927.0508"] + ["title I'm too far gone\n\n\nzoomscreen 11x11\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground\nwhite\n\nb1\nwhite #dddddd\n00000\n00010\n00000\n10000\n00000\n\nb2\nwhite #dddddd\n00000\n00000\n00100\n00000\n00000\n\nb3\nwhite #dddddd\n01000\n00000\n00000\n00100\n00000\n\nb4\nwhite #dddddd\n00000\n00000\n00000\n00000\n00001\n\nb5\nwhite #dddddd\n00000\n10000\n00000\n00100\n00000\n\nfloor\ndarkgrey\n\nEe\ndarkgrey yellow\n01110\n01000\n01110\n01000\n01110\n\nNn\ndarkgrey yellow\n00000\n01110\n01010\n01010\n00000\n\nDd\ndarkgrey yellow\n01100\n01010\n01010\n01010\n01100\n\nwall\ngrey\n\nredgen\nred lightgrey\n11011\n11011\n01010\n10001\n11011\n\nbluegen\nblue lightgrey\n11011\n10001\n01010\n11011\n11011\n\nred\nlightred red\n.111.\n10001\n10001\n10001\n.111.\n\nblue\nlightblue blue\n.111.\n10001\n10001\n10001\n.111.\n\nred1\nred darkred\n11111\n10001\n10001\n10001\n11111\n\nblue1\nblue darkblue\n11111\n10001\n10001\n10001\n11111\n\nru\nlightred red\n10001\n.....\n.....\n.....\n.....\n\nrd\nlightred red\n.....\n.....\n.....\n.....\n10001\n\nrr\nlightred red\n....1\n....0\n....0\n....0\n....1\n\nrl\nlightred red\n1....\n0....\n0....\n0....\n1....\n\nbu\nlightblue blue\n10001\n.....\n.....\n.....\n.....\n\nbd\nlightblue blue\n.....\n.....\n.....\n.....\n10001\n\nbr\nlightblue blue\n....1\n....0\n....0\n....0\n....1\n\nbl\nlightblue blue\n1....\n0....\n0....\n0....\n1....\n\nded\nbrown\n.....\n.000.\n.000.\n.000.\n.....\n\nru1\nred darkred\n10001\n.....\n.....\n.....\n.....\n\nrd1\nred darkred\n.....\n.....\n.....\n.....\n10001\n\nrr1\nred darkred\n....1\n....0\n....0\n....0\n....1\n\nrl1\nred darkred\n1....\n0....\n0....\n0....\n1....\n\nbu1\nblue darkblue\n10001\n.....\n.....\n.....\n.....\n\nbd1\nblue darkblue\n.....\n.....\n.....\n.....\n10001\n\nbr1\nblue darkblue\n....1\n....0\n....0\n....0\n....1\n\nbl1\nblue darkblue\n1....\n0....\n0....\n0....\n1....\n\n\nplayer\nyellow\n.....\n.000.\n.000.\n.000.\n.....\n\nsupp\ntransparent\n\nmovee\ntransparent\n\nmoven\ntransparent\n\nmoved\ntransparent\n\nmem\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall and floor\nr = redgen and wall\nb = bluegen and wall\n- = floor\np = player and floor\nE = Ee\nN = Nn \nD = Dd \ncol = red or blue\ncol1 = red1 or blue1\nxx = rr or rl or ru or rd or br or bl or bd or bu\nxx1 = rr1 or rl1 or ru1 or rd1 or br1 or bl1 or bd1 or bu1\nend = ee or nn or dd\n! = red and floor\n? = mem\nbx = b1 or b2 or b3 or b4 or b5\n=======\nSOUNDS\n=======\nSFX1 9924503\nSFX2 79825304\nSFX3 17145902\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbx\nfloor, red1, blue1, ded\nrr1\nrl1\nru1\nrd1\nbr1\nbl1\nbd1\nbu1\nPlayer, Wall, red, blue, \nrr\nrl\nru\nrd\nbr\nbl\nbd\nbu\nredgen, bluegen, Ee, Nn, Dd\nsupp\nmovee\nmoven\nmoved\nmem\n======\nRULES\n======\n[background no bx] -> [background random bx]\nlate down [redgen|no player no red no blue] -> [redgen|red movee moven moved] SFX1\nlate up [bluegen|no player no red no blue] -> [bluegen|blue movee moven moved] SFX1\n\nlate right[movee][ee|] -> [][|ee]\nlate right[moven][nn|] -> [][|nn]\nlate right[moved][dd|] -> [][|dd]\n\n[> player | red] -> [> player| > red]\n[> player | blue] -> [> player| > blue]\n\n[moving red | red] -> [moving red | moving red]\n+[moving blue | blue] -> [moving blue | moving blue]\n+[moving red1 | red1] -> [moving red1 | moving red1]\n+[moving blue1 | blue1] -> [moving blue1 | moving blue1]\n+[moving red red1] -> [moving red moving red1]\n+[moving blue blue1] -> [moving blue moving blue1]\n+[ red moving red1] -> [moving red moving red1]\n+[ blue moving blue1] -> [moving blue moving blue1]\n+[> red | blue] -> [> red | > blue]\n+[> blue | red] -> [> blue | > red]\n+[> red1 | blue1] -> [> red1 | > blue1]\n+[> blue1 | red1] -> [> blue1 | > red1]\n\n[player moving col1] -> cancel\n[> col | wall] -> cancel\n[> col1 | floor] -> cancel\n\nlate [supp] -> []\nlate [col floor] -> [col supp floor]\nlate [col col1] -> [col supp col1]\nlate [red supp | red] -> [red supp | red supp]\nlate [blue supp | blue] -> [blue supp | blue supp]\n\nlate [red no supp] -> [red1] SFX2\nlate [blue no supp] -> [blue1] SFX2\nlate [player no col1 no floor] -> [ded] SFX3\n\nlate [xx] -> []\nlate [xx1] -> []\n\nlate up [red | red] -> [red ru | red rd]\nlate left [red | red] -> [red rl | red rr]\nlate up [blue | blue] -> [blue bu | blue bd]\nlate left [blue | blue] -> [blue bl | blue br]\nlate up [red1 | red1] -> [red1 ru1 | red1 rd1]\nlate left [red1 | red1] -> [red1 rl1 | red1 rr1]\nlate up [blue1 | blue1] -> [blue1 bu1 | blue1 bd1]\nlate left [blue1 | blue1] -> [blue1 bl1 | blue1 br1]\n\nlate [nn mem][player] -> [nn mem][ded] message YOU'VE GONE TOO FAR (THIS IS NOT A WIN)\n==============\nWINCONDITIONS\n==============\n\nall player on end\nno ded\n=======\nLEVELS\n=======\n\n\nmessage Level 25 of 25\n\n##########################################################################################################################################################################\n#.........................................................................................................................................................................\n#.-------.................................................................................................................................................................\n#.---r---.................................................................................................................................................................\n#.---!---E................................................................................................................................................................\n#.-----p-N...............................................................................................................................................................?\n#.-------D................................................................................................................................................................\n#.---b---.................................................................................................................................................................\n#.-------.................................................................................................................................................................\n#.........................................................................................................................................................................\n##########################################################################################################################################################################\n\n\n\n",[1,1,1,2,3,1,3,1,3,1,3,1,3,3,3,3,1,1,0,1,1,0,3,3,2,1,1,0,3,1,3,3,0,3,2,1,2,3,3,1,1,1,1,0,3,3,3,0,3,2,1,2,3,1,1,1,1,0,3,3,3,0,3,2,1,2,3,1,1,1,1,0,3,3,3,0,3,"undo","undo","undo",0,3,2,2,1,2,3,3,3,3,3,3,3],"b5 background floor wall:0,b3 background floor wall:1,b1 background floor wall:2,2,1,b2 background floor wall:3,3,1,b4 background floor wall:4,4,4,0,b4 background:5,b1 background:6,6,6,b5 background:7,b2 background:8,6,6,7,3,1,8,b4 background floor:9,b2 background floor:10,b5 background floor:11,9,10,10,b1 background floor:12,8,4,0,b3 background:13,9,11,12,11,11,10,9,13,0,3,8,11,10,12,10,10,10,10,5,3,1,13,b3 background floor:14,b3 background redgen wall:15,b1 background floor red supp:16,14,b1 background blue floor supp:17,b1 background bluegen wall:18,11,5,2,3,5,9,9,9,10,11,12,10,8,1,0,6,12,12,10,10,9,12,11,6,1,2,13,9,11,10,12,11,10,12,7,3,4,7,6,7,5,7,b3 background blue1 br1:19,5,7,6,0,0,7,7,8,13,5,b2 background bl1 blue1 br1:20,13,13,6,4,3,5,7,8,8,7,20,5,8,8,0,0,7,8,7,13,7,b3 background bl1 blue1 br1:21,6,6,6,0,2,6,7,6,6,13,b1 background bl1 blue1 player:22,13,6,7,1,2,8,7,13,13,b1 background rd red rr supp:23,b4 background red ru supp:24,7,7,6,3,1,8,13,13,7,\nb5 background red red1 rl rr1 supp:25,8,13,6,8,4,3,5,6,13,7,b5 background red1 rl1 rr1:26,5,13,8,7,1,2,5,7,6,6,b3 background red1 rl1:27,5,6,6,7,4,4,13,7,8,8,6,7,6,7,5,0,1,8,7,6,5,6,7,6,13,7,3,3,13,8,6,13,8,5,5,8,7,4,4,7,13,13,b2 background ee:28,b5 background nn:29,b5 background dd:30,7,13,13,1,4,5,5,8,13,5,13,13,8,6,1,4,13,5,5,8,6,7,7,8,7,3,3,8,7,8,5,8,13,7,8,5,1,4,6,6,8,8,5,13,13,13,8,0,0,8,5,7,7,13,13,7,8,5,2,2,13,7,6,7,8,13,13,13,13,3,3,5,13,13,6,6,6,6,8,7,4,1,5,8,13,5,5,8,13,6,13,1,4,13,7,8,8,6,7,8,6,6,\n3,1,5,5,13,6,7,8,7,5,13,1,1,7,5,8,13,6,5,7,6,7,0,0,7,7,6,5,13,7,5,8,6,2,0,8,6,5,6,6,5,13,13,7,1,2,7,5,6,6,6,6,5,8,8,0,1,6,5,5,13,7,5,7,13,5,2,4,5,8,5,5,6,7,6,6,8,2,0,5,6,7,5,8,7,7,7,5,3,0,5,7,8,6,5,6,8,5,6,4,1,8,13,8,5,5,5,8,6,5,1,4,5,13,7,8,5,13,13,13,5,3,3,7,5,5,13,8,7,6,5,13,2,3,8,6,13,7,13,8,6,7,8,0,3,5,5,5,8,7,7,5,6,13,3,1,6,5,8,13,7,7,8,8,6,0,4,8,13,7,\n5,13,5,6,13,13,4,3,7,5,5,6,5,6,6,8,5,0,2,7,8,7,7,7,5,13,8,13,3,1,6,5,6,7,8,6,6,6,7,2,4,5,5,6,7,13,13,7,5,5,2,4,6,7,13,13,7,5,8,13,5,3,1,8,6,7,5,5,13,13,6,8,0,1,7,6,7,7,6,8,8,6,5,0,4,5,7,6,13,6,13,13,8,5,2,0,13,13,6,8,6,7,7,6,6,0,4,7,13,8,8,7,8,5,5,13,3,3,5,13,7,5,6,8,13,6,5,0,1,6,6,6,6,7,5,8,8,5,0,1,7,13,7,6,5,7,8,5,8,0,3,6,13,5,8,5,8,5,7,7,3,4,5,6,5,7,13,8,13,5,\n5,4,3,8,5,6,5,13,8,6,6,6,1,2,7,7,8,13,5,6,5,5,7,2,2,13,8,6,8,6,8,13,6,7,0,4,7,7,5,7,8,7,6,8,8,3,4,8,5,13,6,6,13,13,6,6,4,3,6,7,13,5,8,6,7,8,13,0,4,5,13,7,13,6,5,7,13,7,0,4,8,7,8,6,5,13,7,8,13,4,0,5,6,8,7,5,5,13,5,13,2,1,13,13,7,8,8,8,5,8,8,4,1,6,13,8,7,7,7,7,13,13,4,4,7,6,8,8,6,8,6,5,7,4,4,8,13,6,5,8,7,6,7,6,1,2,5,5,5,8,6,6,7,7,6,0,0,8,13,8,6,13,5,5,6,8,2,1,13,5,\n7,6,8,5,13,5,13,0,2,13,5,5,5,7,13,6,5,13,2,4,13,13,7,5,8,7,13,8,6,1,3,8,7,7,8,6,7,13,5,6,1,2,7,8,13,13,6,8,7,5,13,4,2,5,5,6,5,7,6,13,6,5,1,4,8,6,7,13,8,7,8,7,8,4,4,8,13,5,5,5,5,7,13,7,2,0,8,8,5,5,13,8,7,6,13,2,4,7,8,8,8,13,5,13,6,5,1,4,7,5,13,13,8,8,6,5,7,0,1,13,7,8,6,7,5,7,8,6,2,1,8,13,8,7,13,8,7,5,8,1,0,6,13,8,8,13,6,8,13,6,4,0,8,6,5,8,6,8,7,8,8,2,0,7,8,8,6,8,6,7,\n5,6,4,4,5,5,13,5,8,8,5,13,13,3,2,8,7,6,5,7,5,13,6,8,3,4,7,6,7,13,13,13,8,6,13,0,0,7,5,6,13,13,6,6,5,5,0,2,13,7,7,6,5,7,6,8,5,4,4,8,5,7,8,6,5,6,8,7,0,2,8,7,5,8,6,13,5,7,13,0,4,8,8,13,7,5,13,13,5,7,0,3,8,7,7,8,13,8,7,6,6,1,3,6,5,5,5,13,13,13,8,7,1,1,6,7,7,5,6,6,5,6,5,4,0,8,6,6,7,5,8,7,7,6,2,1,13,5,13,8,5,8,6,7,13,3,0,8,5,6,6,13,13,5,8,8,1,3,8,5,7,7,6,7,7,5,8,2,4,6,\n8,7,5,7,7,8,13,5,2,1,13,6,7,7,8,8,8,13,8,1,3,5,13,13,5,6,8,6,7,13,4,0,6,13,6,13,13,13,13,6,5,0,2,13,7,5,5,8,8,6,8,5,4,3,5,6,5,6,13,5,13,6,6,2,2,7,5,13,7,13,5,6,13,8,3,0,13,7,8,13,6,13,7,8,6,4,2,7,8,8,6,13,5,8,7,5,0,2,5,7,13,7,6,8,6,5,6,4,0,6,7,5,6,6,8,8,7,5,2,0,6,6,8,13,5,13,6,6,7,4,0,13,5,7,13,8,13,6,8,13,2,0,7,13,6,5,5,7,6,5,6,2,4,7,13,5,6,5,7,7,6,7,0,0,8,5,6,13,13,6,\n5,13,13,1,1,7,7,13,6,5,8,13,6,8,0,1,6,13,8,13,7,7,8,6,5,3,4,6,8,13,13,5,5,13,13,7,3,3,6,13,6,7,13,8,5,6,5,0,2,8,13,8,5,5,7,13,5,6,2,0,7,7,13,8,6,6,13,13,6,3,4,8,8,5,13,5,13,5,8,5,1,0,5,7,8,8,5,8,7,7,6,2,3,6,6,8,13,13,6,7,5,6,3,1,13,8,8,5,13,8,7,8,7,3,1,8,7,13,13,6,8,8,7,7,2,0,7,13,7,8,7,5,8,8,7,0,0,5,6,13,5,6,5,7,5,13,4,4,5,6,6,7,13,7,7,13,6,2,4,6,8,6,5,13,8,7,8,13,0,0,\n7,6,6,7,8,5,13,7,5,4,4,7,13,7,7,6,13,5,6,8,1,1,7,7,13,6,13,7,5,7,6,0,3,13,7,5,13,5,13,5,7,7,3,1,8,6,8,5,6,5,13,7,5,0,0,8,13,7,6,5,8,6,13,6,4,1,13,13,5,13,5,5,5,6,8,1,2,7,5,13,13,6,13,6,8,6,4,1,13,8,8,13,13,5,8,8,8,0,2,7,6,8,7,8,6,5,6,7,3,1,8,5,7,6,6,6,5,6,5,4,0,8,13,5,5,13,8,6,7,7,2,2,5,5,8,8,8,6,5,6,8,3,4,7,7,7,7,5,6,7,8,8,4,3,8,5,5,13,7,8,7,5,7,2,1,8,13,13,5,6,\n5,13,7,5,2,3,5,8,13,6,8,7,13,13,13,3,3,6,6,13,5,8,6,8,5,6,2,1,7,8,8,5,13,6,7,5,7,2,3,8,7,6,5,6,5,7,6,7,3,0,7,8,13,8,13,5,6,7,8,1,4,6,5,8,6,13,8,7,7,5,4,1,6,13,7,5,7,7,7,7,6,3,1,5,13,5,6,8,6,13,6,13,1,4,6,8,7,6,5,8,7,5,6,3,4,8,8,7,7,8,7,7,8,6,3,1,13,6,13,13,13,7,13,5,6,0,1,5,7,7,5,13,7,13,7,6,4,1,7,8,6,13,13,5,7,13,6,2,0,13,5,7,7,13,8,8,5,6,0,4,7,6,5,6,b2 background mem:31,5,5,5,7,1,\n",1,"1627770159927.0508"] ], [ `gallery game: maera public works`, - ["(version 1.0)\ntitle Maera Public Works\nauthor CHz\nhomepage quiteajolt.com\n\nbackground_color DarkBlue\nrun_rules_on_level_start\nagain_interval 0.25\n\n\n========\nOBJECTS\n========\n\nBackground \nBlack\n\nSurface\n#DDDDDD\n\nWall \n#222222\n\nRomanNumeral1\n#FF0000\n.....\n..0..\n..0..\n..0..\n.....\n\nRomanNumeral2\n#FF0000\n.....\n.0.0.\n.0.0.\n.0.0.\n.....\n\nRomanNumeral3\n#FF0000\n.....\n0.0.0\n0.0.0\n0.0.0\n.....\n\nRomanNumeral4\n#FF0000\n.....\n0.0.0\n0.0.0\n0..0.\n.....\n\nRomanNumeral5\n#FF0000\n.....\n.0.0.\n.0.0.\n..0..\n.....\n\n\nWaterWheelHorizWet\n#555500 #777700 #0080FF\n22022\n00000\n01010\n00000\n22022\n\nWaterWheelHorizDry\n#555500 #777700 #999999\n22022\n00000\n01010\n00000\n22022\n\nWaterWheelVertWet\n#555500 #777700 #0080FF\n20002\n20102\n00000\n20102\n20002\n\nWaterWheelVertDry\n#555500 #777700 #999999\n20002\n20102\n00000\n20102\n20002\n\nWaterSource\nTransparent\n\n\nDitch\n#999999\n\nWater\n#0080FF\n\nSwitchOn\n#222222 #999999\n...1.\n...1.\n..1..\n.000.\n.....\n\nSwitchOff\n#222222 #999999\n.1...\n.1...\n..1..\n.000.\n.....\n\nSwitchToggleToken\nTransparent\n\n\nGateVertOpen\n#444444\n.000.\n.....\n.....\n.....\n.000.\n\nGateVertOpenWet\n#444444 #0080FF\n10001\n11111\n11111\n11111\n10001\n\nGateVertClosed\n#444444\n.000.\n.000.\n.000.\n.000.\n.000.\n\nGateVertClosedLeft\n#444444 #0080FF\n1000.\n1000.\n1000.\n1000.\n1000.\n\nGateVertClosedRight\n#444444 #0080FF\n.0001\n.0001\n.0001\n.0001\n.0001\n\nGateHorizOpen\n#444444\n.....\n0...0\n0...0\n0...0\n.....\n\nGateHorizOpenWet\n#444444 #0080FF\n11111\n01110\n01110\n01110\n11111\n\nGateHorizClosed\n#444444\n.....\n00000\n00000\n00000\n.....\n\nGateHorizClosedUp\n#444444 #0080FF\n11111\n00000\n00000\n00000\n.....\n\nGateHorizClosedDown\n#444444 #0080FF\n.....\n00000\n00000\n00000\n11111\n\n\nCrateDitch\n#F0B030 #D06000\n.....\n.111.\n.101.\n.111.\n.....\n\nCrateSurface\n#F0E060 #F08000 #0080FF\n21112\n10001\n10001\n10001\n21112\n\nBlock\n#555555 #222222\n11111\n10001\n10001\n10001\n11111\n\nBlockSurface\n#555555 #222222\n11111\n10001\n10001\n10001\n11111\n\n\nLadderUpTop\nBrown\n.....\n.....\n.....\n.....\n.000.\n\nLadderUp\nBrown\n..0..\n..0..\n..0..\n..0..\n.....\n\nLadderDown\nBrown\n.....\n..0..\n..0..\n..0..\n..0..\n\nLadderDownTop\nBrown\n.000.\n.....\n.....\n.....\n.....\n\nLadderLeft\nBrown\n.....\n.....\n0000.\n.....\n.....\n\nLadderLeftTop\nBrown\n.....\n....0\n....0\n....0\n.....\n\nLadderRight\nBrown\n.....\n.....\n.0000\n.....\n.....\n\nLadderRightTop\nBrown\n.....\n0....\n0....\n0....\n.....\n\n\nPlayerSurface\n#009020\n..0..\n.000.\n00000\n.000.\n..0..\n\nPlayerDitch\n#007010\n.....\n..0..\n.000.\n..0..\n.....\n\nPlayerDrowned\nDarkBrown\n.....\n..0..\n.000.\n..0..\n.....\n\n\nGoal\nTransparent\n\nDoorClosed\n#444444\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n\n\nTimer9\nTransparent\n\nTimer8\nTransparent\n\nTimer7\nTransparent\n\nTimer6\nTransparent\n\nTimer5\nTransparent\n\nTimer4\nTransparent\n\nTimer3\nTransparent\n\nTimer2\nTransparent\n\nTimer1\nTransparent\n\nTimer0\nTransparent\n\n\nBase1Token\nTransparent\n\nBase2Token\nTransparent\n\nBase3Token\nTransparent\n\nBase4Token\nTransparent\n\nBase5Token\nTransparent\n\nFakeSwitchOff\n#222222 #999999\n.1...\n.1...\n..1..\n.000.\n.....\n\nFakeSwitchOn\n#222222 #999999\n...1.\n...1.\n..1..\n.000.\n.....\n\nFakeWaterWheelVertWet\n#555500 #777700 #0080FF\n20002\n20102\n00000\n20102\n20002\n\nFakeGateHorizOpenWet\n#444444 #0080FF\n11111\n01110\n01110\n01110\n11111\n\nFakeDoorClosed\n#444444\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n\nBaseWheel11\nDarkBrown\n.....\n.....\n...00\n..000\n..000\n\nBaseWheel21\nDarkBrown\n.....\n.....\n.....\n0...0\n00.00\n\nBaseWheel31\nDarkBrown\n.....\n.....\n..000\n00000\n00...\n\nBaseWheel41\nDarkBrown\n.000.\n.000.\n00000\n00000\n.000.\n\nBaseWheel51\nDarkBrown\n.....\n.....\n000..\n00000\n...00\n\nBaseWheel61\nDarkBrown\n.....\n.....\n.....\n0...0\n00.00\n\nBaseWheel71\nDarkBrown\n.....\n.....\n00...\n000..\n000..\n\nBaseWheel71Wet\nDarkBrown #0080FF\n11111\n11111\n00111\n00011\n00011\n\nBaseWheel12\nDarkBrown\n...00\n....0\n.....\n....0\n...00\n\nBaseWheel22\nDarkBrown\n00000\n0000.\n00000\n00000\n0.000\n\nBaseWheel32\nDarkBrown\n.....\n.....\n.....\n0....\n00...\n\nBaseWheel42\nDarkBrown\n.000.\n.000.\n.000.\n.000.\n.000.\n\nBaseWheel52\nDarkBrown\n.....\n.....\n.....\n....0\n...00\n\nBaseWheel62\nDarkBrown\n00000\n.0000\n00000\n00000\n000.0\n\nBaseWheel72\nDarkBrown\n00...\n0....\n.....\n0....\n00...\n\nBaseWheel72Wet\nDarkBrown #0080FF\n00111\n01111\n11111\n01111\n00111\n\nBaseWheel13\nDarkBrown\n...00\n...00\n..00.\n..00.\n..00.\n\nBaseWheel23\nDarkBrown\n...00\n....0\n.....\n.....\n.....\n\nBaseWheel33\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheel43\nDarkBrown\n00000\n00000\n.000.\n00000\n00000\n\nBaseWheel53\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheel63\nDarkBrown\n00...\n0....\n.....\n.....\n.....\n\nBaseWheel73\nDarkBrown\n00...\n00...\n.00..\n.00..\n.00..\n\nBaseWheel73Wet\nDarkBrown #0080FF\n00111\n00111\n.0011\n.0011\n.0011\n\nBaseWheel14\nDarkBrown\n..00.\n00000\n00000\n00000\n..00.\n\nBaseWheel24\nDarkBrown\n.....\n00000\n00000\n00000\n.....\n\nBaseWheel34\nDarkBrown\n00.00\n00000\n00000\n00000\n00.00\n\nBaseWheel44\nDarkBrown DarkGray\n00000\n01110\n01110\n01110\n00000\n\nBaseWheel54\nDarkBrown\n00.00\n00000\n00000\n00000\n00.00\n\nBaseWheel64\nDarkBrown\n.....\n00000\n00000\n00000\n.....\n\nBaseWheel74\nDarkBrown\n.00..\n00000\n00000\n00000\n.00..\n\nBaseWheel74Wet1\nDarkBrown #0080FF\n.0011\n00000\n00000\n00000\n.00..\n\nBaseWheel74Wet2\nDarkBrown #0080FF\n.0011\n00000\n00000\n00000\n.0011\n\nBaseWheel15\nDarkBrown\n..00.\n..00.\n..00.\n...00\n...00\n\nBaseWheel25\nDarkBrown\n.....\n.....\n.....\n....0\n...00\n\nBaseWheel35\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheel45\nDarkBrown\n00000\n00000\n.000.\n00000\n00000\n\nBaseWheel55\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheel65\nDarkBrown\n.....\n.....\n.....\n0....\n00...\n\nBaseWheel75\nDarkBrown\n.00..\n.00..\n.00..\n00...\n00...\n\nBaseWheel75Wet\nDarkBrown #0080FF\n.0011\n.0011\n.0011\n00111\n00111\n\nBaseWheel16\nDarkBrown\n...00\n....0\n.....\n....0\n...00\n\nBaseWheel26\nDarkBrown\n0.000\n00000\n00000\n0000.\n00000\n\nBaseWheel36\nDarkBrown\n00...\n0....\n.....\n.....\n.....\n\nBaseWheel46\nDarkBrown\n.000.\n.000.\n.000.\n.000.\n.000.\n\nBaseWheel56\nDarkBrown\n...00\n....0\n.....\n.....\n.....\n\nBaseWheel66\nDarkBrown\n000.0\n00000\n00000\n.0000\n00000\n\nBaseWheel76\nDarkBrown\n00...\n0....\n.....\n0....\n00...\n\nBaseWheel76Wet\nDarkBrown #0080FF\n00111\n01111\n11111\n01111\n00111\n\nBaseWheel17\nDarkBrown\n..000\n..000\n...00\n.....\n.....\n\nBaseWheel27\nDarkBrown\n00.00\n0...0\n.....\n.....\n.....\n\nBaseWheel37\nDarkBrown\n00...\n00000\n..000\n.....\n.....\n\nBaseWheel47\nDarkBrown\n.000.\n00000\n00000\n.000.\n.000.\n\nBaseWheel57\nDarkBrown\n...00\n00000\n000..\n.....\n.....\n\nBaseWheel67\nDarkBrown\n00.00\n0...0\n.....\n.....\n.....\n\nBaseWheel77\nDarkBrown\n000..\n000..\n00...\n.....\n.....\n\nBaseWheel77Wet\nDarkBrown #0080FF\n00011\n00011\n00111\n11111\n11111\n\nBaseWheelT11\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT21\nDarkBrown\n..000\n...00\n...00\n...00\n...00\n\nBaseWheelT31\nDarkBrown\n.....\n0....\n00000\n00000\n000..\n\nBaseWheelT41\nDarkBrown\n.....\n.....\n00000\n00000\n.....\n\nBaseWheelT51\nDarkBrown\n.....\n....0\n00000\n00000\n..000\n\nBaseWheelT61\nDarkBrown\n000..\n00...\n00...\n00...\n00...\n\nBaseWheelT71\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT71Wet\nDarkBrown #0080FF\n11111\n11111\n11111\n11111\n11111\n\nBaseWheelT12\nDarkBrown\n.....\n.....\n0...0\n00000\n00000\n\nBaseWheelT22\nDarkBrown\n..000\n.000.\n00...\n00...\n0....\n\nBaseWheelT32\nDarkBrown\n000..\n0000.\n.000.\n.0000\n..000\n\nBaseWheelT42\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT52\nDarkBrown\n..000\n.0000\n.000.\n0000.\n000..\n\nBaseWheelT62\nDarkBrown\n000..\n.000.\n...00\n...00\n....0\n\nBaseWheelT72\nDarkBrown\n.....\n.....\n....0\n00000\n00000\n\nBaseWheelT72Wet\nDarkBrown #0080FF\n11111\n11111\n11110\n00000\n00000\n\nBaseWheelT13\nDarkBrown\n.0000\n..000\n..000\n..00.\n..00.\n\nBaseWheelT23\nDarkBrown\n00...\n0000.\n00000\n.0000\n...00\n\nBaseWheelT33\nDarkBrown\n..000\n..000\n00000\n000.0\n00000\n\nBaseWheelT43\nDarkBrown\n00000\n00000\n00.00\n00.00\n00000\n\nBaseWheelT53\nDarkBrown\n000..\n000..\n00000\n0.000\n00000\n\nBaseWheelT63\nDarkBrown\n...00\n.0000\n00000\n0000.\n00...\n\nBaseWheelT73\nDarkBrown\n0000.\n000..\n000..\n.00..\n.00..\n\nBaseWheelT73Wet\nDarkBrown #0080FF\n00001\n00011\n00011\n.0011\n.0011\n\nBaseWheelT14\nDarkBrown\n..00.\n..00.\n..00.\n..00.\n..00.\n\nBaseWheelT24\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT34\nDarkBrown\n00000\n00000\n00..0\n00000\n00000\n\nBaseWheelT44\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheelT54\nDarkBrown\n00000\n00000\n0..00\n00000\n00000\n\nBaseWheelT64\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT74\nDarkBrown\n.00..\n.00..\n.00..\n.00..\n.00..\n\nBaseWheelT74Wet\nDarkBrown #0080FF\n.0011\n.0011\n.0011\n.0011\n.0011\n\nBaseWheelT15\nDarkBrown\n..00.\n..00.\n..000\n..000\n.0000\n\nBaseWheelT25\nDarkBrown\n...00\n.0000\n00000\n0000.\n00...\n\nBaseWheelT35\nDarkBrown\n00000\n000.0\n00000\n..000\n..000\n\nBaseWheelT45\nDarkBrown\n00000\n00.00\n00.00\n00000\n00000\n\nBaseWheelT55\nDarkBrown\n00000\n0.000\n00000\n00...\n00...\n\nBaseWheelT65\nDarkBrown\n00...\n0000.\n00000\n.0000\n...00\n\nBaseWheelT75\nDarkBrown\n.00..\n.00..\n000..\n000..\n0000.\n\nBaseWheelT75Wet\nDarkBrown #0080FF\n.0011\n.0011\n00011\n00011\n00001\n\nBaseWheelT16\nDarkBrown\n00000\n00000\n0....\n.....\n.....\n\nBaseWheelT26\nDarkBrown\n0....\n00...\n00...\n.000.\n..000\n\nBaseWheelT36\nDarkBrown\n..000\n.0000\n.000.\n0000.\n000..\n\nBaseWheelT46\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT56\nDarkBrown\n000..\n0000.\n.000.\n.0000\n..000\n\nBaseWheelT66\nDarkBrown\n....0\n...00\n...00\n.000.\n00...\n\nBaseWheelT76\nDarkBrown\n00000\n00000\n....0\n.....\n.....\n\nBaseWheelT76Wet\nDarkBrown #0080FF\n00000\n00000\n11110\n11111\n11111\n\nBaseWheelT17\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT27\nDarkBrown\n...00\n...00\n...00\n...00\n..000\n\nBaseWheelT37\nDarkBrown\n000..\n00000\n00000\n0....\n.....\n\nBaseWheelT47\nDarkBrown\n.....\n00000\n00000\n.....\n.....\n\nBaseWheelT57\nDarkBrown\n..000\n00000\n00000\n....0\n.....\n\nBaseWheelT67\nDarkBrown\n00...\n00...\n00...\n00...\n000..\n\nBaseWheelT77\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT77Wet\nDarkBrown #0080FF\n11111\n11111\n11111\n11111\n11111\n\n\n\n\n\nCutsceneBackground\nGreen\n\nHouse\nDarkBrown\n\nHouseRoofLeft\nDarkBrown\n.....\n....0\n...00\n..000\n.0000\n\nHouseRoofRight\nDarkBrown\n.....\n0....\n00...\n000..\n0000.\n\nWindow\nLightBlue\n\nDoorClosedTop\nDarkBrown #383020\n11111\n10001\n10001\n10001\n10001\n\nDoorClosedBottom\nDarkBrown #383020\n10001\n10001\n10001\n10001\n10001\n\nRoadLeft\n#E0D010\n....0\n...00\n..000\n.0000\n00000\n\nRoad\n#E0D010\n\nRoadRight\n#E0D010\n.....\n0....\n00...\n000..\n0000.\n\nClockTowerLeft\n#252525\n\nClockTowerRight\n#252525\n0000.\n0000.\n0000.\n0000.\n0000.\n\nClock11\n#252525 White\n.....\n....0\n...00\n..000\n..001\n\nClock21\n#252525 White\n00000\n00000\n01111\n11101\n11101\n\nClock21b\n#252525 White\n00000\n00000\n01111\n11110\n11110\n\nClock31\n#252525 White\n0000.\n00000\n11100\n11110\n11111\n\nClock41\n#252525 White\n.....\n.....\n0....\n00...\n00...\n\nClock12\n#252525 White\n..001\n..001\n..001\n..001\n..001\n\nClock22\n#252525 White\n11110\n11110\n11110\n11111\n11111\n\nClock32\n#252525 White\n11111\n11111\n00011\n11111\n11111\n\nClock42\n#252525 White\n00...\n00...\n00...\n00...\n00...\n\nClock13\n#252525 White\n..001\n..000\n...00\n....0\n.....\n\nClock23\n#252525 White\n11111\n11111\n01111\n00000\n00000\n\nClock33\n#252525 White\n11111\n11110\n11100\n00000\n0000.\n\nClock43\n#252525 White\n00...\n00...\n0....\n.....\n.....\n\nDoorOpen\nBlack\n\nCutsceneWater\n#0080FF\n\nPlayerHead\n#009020 White\n..0..\n.000.\n00000\n.000.\n.101.\n\nPlayerBody\n#009020 White\n.111.\n.111.\n.111.\n.1.1.\n.1.1.\n\n\nSoundTrigger0\nTransparent\n\nSoundTrigger1\nTransparent\n\nSoundTrigger2\nTransparent\n\nSoundTrigger3\nTransparent\n\nSoundTrigger4\nTransparent\n\n\n=======\nLEGEND\n=======\n\n! = Background\n\n. = Surface\n# = Wall\n\nⅠ = Wall AND RomanNumeral1\nⅡ = Wall AND RomanNumeral2\nⅢ = Wall AND RomanNumeral3\nⅣ = Wall AND RomanNumeral4\nⅤ = Wall AND RomanNumeral5\nRomanNumeral = RomanNumeral1 OR RomanNumeral2 OR RomanNumeral3 OR RomanNumeral4 OR RomanNumeral5\n\n5 = WaterWheelHorizWet AND WaterSource\n6 = WaterWheelHorizDry\n7 = WaterWheelVertWet AND WaterSource\n8 = WaterWheelVertDry\nWaterWheel = WaterWheelHorizWet OR WaterWheelHorizDry OR WaterWheelVertWet OR WaterWheelVertDry OR FakeWaterWheelVertWet\nWaterPropagator = Water OR CrateSurface OR WaterSource OR GateVertOpenWet OR GateHorizOpenWet\n\n- = Ditch\n1 = GateVertOpen AND Ditch\n2 = GateVertClosed AND Ditch\n3 = GateHorizOpen AND Ditch\n4 = GateHorizClosed AND Ditch\n\n$ = CrateDitch AND Ditch\nCrate = CrateDitch OR CrateSurface\n% = Block AND Ditch\n\nPushable = CrateDitch OR Block\n\n/ = SwitchOn AND Surface\n\\ = SwitchOff AND Surface\nSwitch = SwitchOn OR SwitchOff OR FakeSwitchOn OR FakeSwitchOff\n\nU = LadderUp AND Ditch\nD = LadderDown AND Ditch\nL = LadderLeft AND Ditch\nR = LadderRight AND Ditch\nLadder = LadderUp OR LadderDown OR LadderLeft OR LadderRight\n\nGate = GateVertOpen OR GateVertOpenWet OR GateVertClosed OR GateVertClosedLeft OR GateVertClosedRight OR GateHorizOpen OR GateHorizOpenWet OR GateHorizClosed OR GateHorizClosedUp OR GateHorizClosedDown OR FakeGateHorizOpenWet\n\n@ = PlayerSurface AND Surface\nPlayer = PlayerSurface OR PlayerDitch\n\nG = Goal AND Surface\n\n一 = Timer1 AND CutsceneBackground\n二 = Timer2 AND CutsceneBackground\n三 = Timer3 AND CutsceneBackground\n四 = Timer4 AND CutsceneBackground\n五 = Timer5 AND CutsceneBackground\n六 = Timer6 AND CutsceneBackground\n七 = Timer7 AND CutsceneBackground\n八 = Timer8 AND CutsceneBackground\n九 = Timer9 AND CutsceneBackground\nTimer = Timer1 OR Timer2 OR Timer3 OR Timer4 OR Timer5 OR Timer6 OR Timer7 OR Timer8 OR Timer9 OR Timer0\n\nⒶ = BaseWheel11 AND Base1Token AND Ditch\nⒷ = BaseWheel11 AND Base2Token AND Ditch\nⒸ = BaseWheelT11 AND Base3Token AND Ditch\nⒹ = BaseWheel11 AND Base4Token AND Ditch\nⒺ = BaseWheelT11 AND Base5Token AND Ditch\nBaseToken = Base1Token OR Base2Token OR Base3Token OR Base4Token OR Base5Token\nBaseWheel = BaseWheel11 OR BaseWheel21 OR BaseWheel31 OR BaseWheel41 OR BaseWheel51 OR BaseWheel61 OR BaseWheel71 OR BaseWheel12 OR BaseWheel22 OR BaseWheel32 OR BaseWheel42 OR BaseWheel52 OR BaseWheel62 OR BaseWheel72 OR BaseWheel13 OR BaseWheel23 OR BaseWheel33 OR BaseWheel43 OR BaseWheel53 OR BaseWheel63 OR BaseWheel73 OR BaseWheel14 OR BaseWheel24 OR BaseWheel34 OR BaseWheel44 OR BaseWheel54 OR BaseWheel64 OR BaseWheel74 OR BaseWheel15 OR BaseWheel25 OR BaseWheel35 OR BaseWheel45 OR BaseWheel55 OR BaseWheel65 OR BaseWheel75 OR BaseWheel16 OR BaseWheel26 OR BaseWheel36 OR BaseWheel46 OR BaseWheel56 OR BaseWheel66 OR BaseWheel76 OR BaseWheel17 OR BaseWheel27 OR BaseWheel37 OR BaseWheel47 OR BaseWheel57 OR BaseWheel67 OR BaseWheel77 OR BaseWheel71Wet OR BaseWheel72Wet OR BaseWheel73Wet OR BaseWheel74Wet1 OR BaseWheel74Wet2 OR BaseWheel75Wet OR BaseWheel76Wet OR BaseWheel77Wet OR BaseWheelT11 OR BaseWheelT21 OR BaseWheelT31 OR BaseWheelT41 OR BaseWheelT51 OR BaseWheelT61 OR BaseWheelT71 OR BaseWheelT12 OR BaseWheelT22 OR BaseWheelT32 OR BaseWheelT42 OR BaseWheelT52 OR BaseWheelT62 OR BaseWheelT72 OR BaseWheelT13 OR BaseWheelT23 OR BaseWheelT33 OR BaseWheelT43 OR BaseWheelT53 OR BaseWheelT63 OR BaseWheelT73 OR BaseWheelT14 OR BaseWheelT24 OR BaseWheelT34 OR BaseWheelT44 OR BaseWheelT54 OR BaseWheelT64 OR BaseWheelT74 OR BaseWheelT15 OR BaseWheelT25 OR BaseWheelT35 OR BaseWheelT45 OR BaseWheelT55 OR BaseWheelT65 OR BaseWheelT75 OR BaseWheelT16 OR BaseWheelT26 OR BaseWheelT36 OR BaseWheelT46 OR BaseWheelT56 OR BaseWheelT66 OR BaseWheelT76 OR BaseWheelT17 OR BaseWheelT27 OR BaseWheelT37 OR BaseWheelT47 OR BaseWheelT57 OR BaseWheelT67 OR BaseWheelT77 OR BaseWheelT71Wet OR BaseWheelT72Wet OR BaseWheelT73Wet OR BaseWheelT74Wet OR BaseWheelT75Wet OR BaseWheelT76Wet OR BaseWheelT77Wet\n\nA = CutsceneBackground\nB = House AND CutsceneBackground\nC = HouseRoofLeft AND CutsceneBackground\nD = HouseRoofRight AND CutsceneBackground\nE = DoorClosedTop AND CutsceneBackground\nF = DoorClosedBottom AND CutsceneBackground\nG = Window AND CutsceneBackground\nH = RoadLeft AND CutsceneBackground\nI = Road AND CutsceneBackground\nJ = RoadRight AND CutsceneBackground\nK = ClockTowerLeft AND CutsceneBackground\nL = ClockTowerRight AND CutsceneBackground\nM = Clock11 AND CutsceneBackground\nN = Clock21 AND CutsceneBackground\nO = Clock31 AND CutsceneBackground\nP = Clock41 AND CutsceneBackground\nQ = Clock12 AND CutsceneBackground\nR = Clock22 AND CutsceneBackground\nS = Clock32 AND CutsceneBackground\nT = Clock42 AND CutsceneBackground\nU = Clock13 AND CutsceneBackground\nV = Clock23 AND CutsceneBackground\nW = Clock33 AND CutsceneBackground\nX = Clock43 AND CutsceneBackground\nY = DoorOpen AND PlayerHead AND CutsceneBackground\nZ = DoorOpen AND PlayerBody AND CutsceneBackground\n0 = DoorOpen AND CutsceneBackground\n1 = House AND PlayerHead AND CutsceneBackground\n2 = House AND PlayerBody AND CutsceneBackground\n3 = Clock21b AND CutsceneBackground\n~ = CutsceneWater AND CutsceneBackground\n\n⓪ = SoundTrigger0 AND CutsceneBackground\n① = SoundTrigger1 AND CutsceneBackground\n② = SoundTrigger2 AND CutsceneBackground\n③ = SoundTrigger3 AND CutsceneBackground\n④ = SoundTrigger4 AND CutsceneBackground\nSoundTrigger = SoundTrigger0 OR SoundTrigger1 OR SoundTrigger2 OR SoundTrigger3 OR SoundTrigger4\n\n=======\nSOUNDS\n=======\n\nPlayerSurface create 48266305 (climb up)\nPlayerDitch create 41817501 (climb down)\n\n(water movement)\nSwitchOn create 36552908\nSwitchOff create 36552908\nSoundTrigger0 destroy 36552908\nsfx1 36552908\n\nPlayerDrowned create 36552908 (play water movement too)\nPlayerDrowned create 66299108 (u ded)\n\nSoundTrigger1 destroy 56950107 (open door)\nSoundTrigger2 destroy 73601104 (close door)\n\nSoundTrigger3 destroy 20889900 (chime)\n\nSoundTrigger4 destroy 25204707 (wheel click)\n\nsfx0 9950900 (finish a puzzle level)\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nCutsceneBackground\nSurface, Ditch\nLadder\nLadderUpTop (tops all on separate layers so more than one can be on one tile)\nLadderDownTop\nLadderLeftTop\nLadderRightTop\nCrateSurface, BlockSurface\nPlayer, Wall, Water, Gate, Switch, CrateDitch, Block, WaterWheel, DoorClosed, FakeDoorClosed, BaseWheel\nGoal\nSwitchToggleToken, BaseToken\nWaterSource\nTimer, RomanNumeral, PlayerDrowned\nHouse, HouseRoofLeft, HouseRoofRight, DoorClosedTop, DoorClosedBottom, Window, RoadLeft, Road, RoadRight, ClockTowerLeft, ClockTowerRight, Clock11, Clock21, Clock21b, Clock31, Clock41, Clock12, Clock22, Clock32, Clock42, Clock13, Clock23, Clock33, Clock43, DoorOpen, CutsceneWater\nPlayerHead, PlayerBody\nSoundTrigger\n\n\n======\nRULES\n======\n\n(================\nLEVEL GENERATION\n================)\n\n(Generate the tops of the ladders.)\nDOWN [ | LadderUp ] -> [ LadderUpTop | LadderUp ]\nDOWN [ LadderDown | ] -> [ LadderDown | LadderDownTop ]\nRIGHT [ | LadderLeft ] -> [ LadderLeftTop | LadderLeft ]\nRIGHT [ LadderRight | ] -> [ LadderRight | LadderRightTop ]\n\n\n(========\nMOVEMENT\n========)\n\n(Convert blocks to and from fake surfaces when the player walks on and off them, because layers.)\n[ > Player Surface | Block Ditch ] -> [ > Player Surface | BlockSurface Surface ]\nLATE [ BlockSurface Surface no Player ] -> [ Block Ditch ]\n\n(Shove crates and blocks. They can never move to the surface.)\n[ > PlayerDitch | Pushable ] -> [ > PlayerDitch | > Pushable ]\n[ > Pushable | Surface ] -> [ Pushable | Surface ]\n\n(Cancel movement if the player walks into the void.)\n[ > Player | no Surface no Ditch ] -> [ Player | ]\n\n(Cancel movement if a player on the surface tries to move into a ditch without using a ladder.)\nDOWN [ > Player Surface | Ditch no LadderUp ] -> [ Player Surface | Ditch ]\nUP [ > Player Surface | Ditch no LadderDown ] -> [ Player Surface | Ditch ]\nLEFT [ > Player Surface | Ditch no LadderRight ] -> [ Player Surface | Ditch ]\nRIGHT [ > Player Surface | Ditch no LadderLeft ] -> [ Player Surface | Ditch ]\n\n(Cancel movement if a player in a ditch tries to move to the surface without using a ladder.)\nDOWN [ > Player Ditch no LadderDown | Surface ] -> [ Player Ditch | Surface ]\nUP [ > Player Ditch no LadderUp | Surface ] -> [ Player Ditch | Surface ]\nLEFT [ > Player Ditch no LadderLeft | Surface ] -> [ Player Ditch | Surface ]\nRIGHT [ > Player Ditch no LadderRight | Surface ] -> [ Player Ditch | Surface ]\n\n(Change the player sprite based on their height.)\nLATE [ PlayerSurface Ditch ] -> [ PlayerDitch Ditch ]\nLATE [ PlayerDitch Surface ] -> [ PlayerSurface Surface ]\n\n(Play a sound when the player finishes a puzzle level. Done like this so it doesn't happen on the cutscene levels.)\nLATE [ Player Goal ] -> sfx0\n\n\n(=============\nSPLISH SPLASH\n=============)\n\n(Get started by marking that we're toggling and clearing current water)\n[ > Player Surface | Switch ] -> [ > Player Surface | Switch SwitchToggleToken ]\n[ SwitchToggleToken ] [ Water ] -> [ SwitchToggleToken ] [ ]\n[ SwitchToggleToken ] [ GateVertOpenWet ] -> [ SwitchToggleToken ] [ GateVertOpen ]\n[ SwitchToggleToken ] [ GateVertClosedLeft ] -> [ SwitchToggleToken ] [ GateVertClosed ]\n[ SwitchToggleToken ] [ GateVertClosedRight ] -> [ SwitchToggleToken ] [ GateVertClosed ]\n[ SwitchToggleToken ] [ GateHorizOpenWet ] -> [ SwitchToggleToken ] [ GateHorizOpen ]\n[ SwitchToggleToken ] [ GateHorizClosedUp ] -> [ SwitchToggleToken ] [ GateHorizClosed ]\n[ SwitchToggleToken ] [ GateHorizClosedDown ] -> [ SwitchToggleToken ] [ GateHorizClosed ]\n[ SwitchToggleToken ] [ WaterWheelVertWet no WaterSource ] -> [ SwitchToggleToken ] [ WaterWheelVertDry ]\n[ SwitchToggleToken ] [ WaterWheelHorizWet no WaterSource ] -> [ SwitchToggleToken ] [ WaterWheelHorizDry ]\n[ SwitchToggleToken ] [ CrateSurface Surface ] -> [ SwitchToggleToken ] [ CrateDitch Ditch ]\n\n(Open the associated gate and send the water along.)\n[ SwitchOff SwitchToggleToken | GateVertClosed ] -> [ SwitchOff SwitchToggleToken | GateVertOpen ]\n[ SwitchOff SwitchToggleToken | GateHorizClosed ] -> [ SwitchOff SwitchToggleToken | GateHorizOpen ]\nstartloop\n\t(This water propagation is bad lmao, don't worry about it)\n\t(We do this LATE so we can propagate after a player moves a block.)\n\tLATE [ WaterPropagator | Ditch no Water no Gate no Crate no Block no Player ] -> [ WaterPropagator | Ditch Water ]\n LATE [ WaterPropagator | PlayerDitch ] -> [ WaterPropagator | PlayerDrowned ]\n\tLATE [ WaterPropagator | CrateDitch Ditch ] -> [ WaterPropagator | CrateSurface Surface ]\n LATE [ WaterPropagator | GateVertOpen ] -> [ WaterPropagator | GateVertOpenWet ]\n LATE RIGHT [ WaterPropagator | GateVertClosed ] -> [ WaterPropagator | GateVertClosedLeft ]\n LATE RIGHT [ GateVertClosed | WaterPropagator ] -> [ GateVertClosedRight | WaterPropagator ]\n LATE [ WaterPropagator | GateHorizOpen ] -> [ WaterPropagator | GateHorizOpenWet ]\n LATE DOWN [ WaterPropagator | GateHorizClosed ] -> [ WaterPropagator | GateHorizClosedUp ]\n LATE DOWN [ GateHorizClosed | WaterPropagator ] -> [ GateHorizClosedDown | WaterPropagator ]\nendloop\nLATE [ WaterPropagator | WaterWheelVertDry ] -> [ WaterPropagator | WaterWheelVertWet ]\nLATE [ WaterPropagator | WaterWheelHorizDry ] -> [ WaterPropagator | WaterWheelHorizWet ]\n[ SwitchOff SwitchToggleToken ] -> [ SwitchOn ]\n\n(Close the associated gate.)\n[ SwitchOn SwitchToggleToken | GateVertOpen ] -> [ SwitchOn SwitchToggleToken | GateVertClosed ]\n[ SwitchOn SwitchToggleToken | GateHorizOpen ] -> [ SwitchOn SwitchToggleToken | GateHorizClosed ]\n[ SwitchOn SwitchToggleToken ] -> [ SwitchOff ]\n\n(Open/close the door depending on whether the water wheel is powered.)\nLATE [ Goal DoorClosed ] -> [ Goal ]\nLATE [ WaterWheelVertDry ] [ Goal ] -> [ WaterWheelVertDry ] [ Goal DoorClosed ]\nLATE [ WaterWheelHorizDry ] [ Goal ] -> [ WaterWheelHorizDry ] [ Goal DoorClosed ]\n\n\n(=========\nCUTSCENES\n=========)\n\n(Wheel generation for the base levels - #1)\nRIGHT [ Base1Token ] [ BaseWheel11 | | | | | | ] -> [ Base1Token ] [ BaseWheel11 | BaseWheel21 | BaseWheel31 | BaseWheel41 | BaseWheel51 | BaseWheel61 | BaseWheel71 ]\nDOWN [ Base1Token ] [ BaseWheel11 | | | | | | ] -> [ Base1Token ] [ BaseWheel11 | BaseWheel12 | BaseWheel13 | BaseWheel14 | BaseWheel15 | BaseWheel16 | BaseWheel17 ]\nDOWN [ Base1Token ] [ BaseWheel21 | | | | | | ] -> [ Base1Token ] [ BaseWheel21 | BaseWheel22 | BaseWheel23 | BaseWheel24 | BaseWheel25 | BaseWheel26 | BaseWheel27 ]\nDOWN [ Base1Token ] [ BaseWheel31 | | | | | | ] -> [ Base1Token ] [ BaseWheel31 | BaseWheel32 | BaseWheel33 | BaseWheel34 | BaseWheel35 | BaseWheel36 | BaseWheel37 ]\nDOWN [ Base1Token ] [ BaseWheel41 | | | | | | ] -> [ Base1Token ] [ BaseWheel41 | BaseWheel42 | BaseWheel43 | BaseWheel44 | BaseWheel45 | BaseWheel46 | BaseWheel47 ]\nDOWN [ Base1Token ] [ BaseWheel51 | | | | | | ] -> [ Base1Token ] [ BaseWheel51 | BaseWheel52 | BaseWheel53 | BaseWheel54 | BaseWheel55 | BaseWheel56 | BaseWheel57 ]\nDOWN [ Base1Token ] [ BaseWheel61 | | | | | | ] -> [ Base1Token ] [ BaseWheel61 | BaseWheel62 | BaseWheel63 | BaseWheel64 | BaseWheel65 | BaseWheel66 | BaseWheel67 ]\nDOWN [ Base1Token ] [ BaseWheel71 | | | | | | ] -> [ Base1Token ] [ BaseWheel71 | BaseWheel72 | BaseWheel73 | BaseWheel74 | BaseWheel75 | BaseWheel76 | BaseWheel77 ]\n\n(Wheel generation for the base levels - #2)\nRIGHT [ Base2Token ] [ BaseWheel11 | | | | | | ] -> [ Base2Token ] [ BaseWheel11 | BaseWheel21 | BaseWheel31 | BaseWheel41 | BaseWheel51 | BaseWheel61 | BaseWheel71Wet ]\nDOWN [ Base2Token ] [ BaseWheel11 | | | | | | ] -> [ Base2Token ] [ BaseWheel11 | BaseWheel12 | BaseWheel13 | BaseWheel14 | BaseWheel15 | BaseWheel16 | BaseWheel17 ]\nDOWN [ Base2Token ] [ BaseWheel21 | | | | | | ] -> [ Base2Token ] [ BaseWheel21 | BaseWheel22 | BaseWheel23 | BaseWheel24 | BaseWheel25 | BaseWheel26 | BaseWheel27 ]\nDOWN [ Base2Token ] [ BaseWheel31 | | | | | | ] -> [ Base2Token ] [ BaseWheel31 | BaseWheel32 | BaseWheel33 | BaseWheel34 | BaseWheel35 | BaseWheel36 | BaseWheel37 ]\nDOWN [ Base2Token ] [ BaseWheel41 | | | | | | ] -> [ Base2Token ] [ BaseWheel41 | BaseWheel42 | BaseWheel43 | BaseWheel44 | BaseWheel45 | BaseWheel46 | BaseWheel47 ]\nDOWN [ Base2Token ] [ BaseWheel51 | | | | | | ] -> [ Base2Token ] [ BaseWheel51 | BaseWheel52 | BaseWheel53 | BaseWheel54 | BaseWheel55 | BaseWheel56 | BaseWheel57 ]\nDOWN [ Base2Token ] [ BaseWheel61 | | | | | | ] -> [ Base2Token ] [ BaseWheel61 | BaseWheel62 | BaseWheel63 | BaseWheel64 | BaseWheel65 | BaseWheel66 | BaseWheel67 ]\nDOWN [ Base2Token ] [ BaseWheel71Wet | | | | | | ] -> [ Base2Token ] [ BaseWheel71Wet | BaseWheel72Wet | BaseWheel73Wet | BaseWheel74Wet1 | BaseWheel75 | BaseWheel76 | BaseWheel77 ]\n\n(Wheel generation for the base levels - #3)\nRIGHT [ Base3Token ] [ BaseWheelT11 | | | | | | ] -> [ Base3Token ] [ BaseWheelT11 | BaseWheelT21 | BaseWheelT31 | BaseWheelT41 | BaseWheelT51 | BaseWheelT61 | BaseWheelT71Wet ]\nDOWN [ Base3Token ] [ BaseWheelT11 | | | | | | ] -> [ Base3Token ] [ BaseWheelT11 | BaseWheelT12 | BaseWheelT13 | BaseWheelT14 | BaseWheelT15 | BaseWheelT16 | BaseWheelT17 ]\nDOWN [ Base3Token ] [ BaseWheelT21 | | | | | | ] -> [ Base3Token ] [ BaseWheelT21 | BaseWheelT22 | BaseWheelT23 | BaseWheelT24 | BaseWheelT25 | BaseWheelT26 | BaseWheelT27 ]\nDOWN [ Base3Token ] [ BaseWheelT31 | | | | | | ] -> [ Base3Token ] [ BaseWheelT31 | BaseWheelT32 | BaseWheelT33 | BaseWheelT34 | BaseWheelT35 | BaseWheelT36 | BaseWheelT37 ]\nDOWN [ Base3Token ] [ BaseWheelT41 | | | | | | ] -> [ Base3Token ] [ BaseWheelT41 | BaseWheelT42 | BaseWheelT43 | BaseWheelT44 | BaseWheelT45 | BaseWheelT46 | BaseWheelT47 ]\nDOWN [ Base3Token ] [ BaseWheelT51 | | | | | | ] -> [ Base3Token ] [ BaseWheelT51 | BaseWheelT52 | BaseWheelT53 | BaseWheelT54 | BaseWheelT55 | BaseWheelT56 | BaseWheelT57 ]\nDOWN [ Base3Token ] [ BaseWheelT61 | | | | | | ] -> [ Base3Token ] [ BaseWheelT61 | BaseWheelT62 | BaseWheelT63 | BaseWheelT64 | BaseWheelT65 | BaseWheelT66 | BaseWheelT67 ]\nDOWN [ Base3Token ] [ BaseWheelT71Wet | | | | | | ] -> [ Base3Token ] [ BaseWheelT71Wet | BaseWheelT72Wet | BaseWheelT73Wet | BaseWheelT74Wet | BaseWheelT75Wet | BaseWheelT76 | BaseWheelT77 ]\n\n(Wheel generation for the base levels - #4)\nRIGHT [ Base4Token ] [ BaseWheel11 | | | | | | ] -> [ Base4Token ] [ BaseWheel11 | BaseWheel21 | BaseWheel31 | BaseWheel41 | BaseWheel51 | BaseWheel61 | BaseWheel71Wet ]\nDOWN [ Base4Token ] [ BaseWheel11 | | | | | | ] -> [ Base4Token ] [ BaseWheel11 | BaseWheel12 | BaseWheel13 | BaseWheel14 | BaseWheel15 | BaseWheel16 | BaseWheel17 ]\nDOWN [ Base4Token ] [ BaseWheel21 | | | | | | ] -> [ Base4Token ] [ BaseWheel21 | BaseWheel22 | BaseWheel23 | BaseWheel24 | BaseWheel25 | BaseWheel26 | BaseWheel27 ]\nDOWN [ Base4Token ] [ BaseWheel31 | | | | | | ] -> [ Base4Token ] [ BaseWheel31 | BaseWheel32 | BaseWheel33 | BaseWheel34 | BaseWheel35 | BaseWheel36 | BaseWheel37 ]\nDOWN [ Base4Token ] [ BaseWheel41 | | | | | | ] -> [ Base4Token ] [ BaseWheel41 | BaseWheel42 | BaseWheel43 | BaseWheel44 | BaseWheel45 | BaseWheel46 | BaseWheel47 ]\nDOWN [ Base4Token ] [ BaseWheel51 | | | | | | ] -> [ Base4Token ] [ BaseWheel51 | BaseWheel52 | BaseWheel53 | BaseWheel54 | BaseWheel55 | BaseWheel56 | BaseWheel57 ]\nDOWN [ Base4Token ] [ BaseWheel61 | | | | | | ] -> [ Base4Token ] [ BaseWheel61 | BaseWheel62 | BaseWheel63 | BaseWheel64 | BaseWheel65 | BaseWheel66 | BaseWheel67 ]\nDOWN [ Base4Token ] [ BaseWheel71Wet | | | | | | ] -> [ Base4Token ] [ BaseWheel71Wet | BaseWheel72Wet | BaseWheel73Wet | BaseWheel74Wet2 | BaseWheel75Wet | BaseWheel76Wet | BaseWheel77Wet ]\n\n(Wheel generation for the base levels - #5)\nRIGHT [ Base5Token ] [ BaseWheelT11 | | | | | | ] -> [ Base5Token ] [ BaseWheelT11 | BaseWheelT21 | BaseWheelT31 | BaseWheelT41 | BaseWheelT51 | BaseWheelT61 | BaseWheelT71Wet ]\nDOWN [ Base5Token ] [ BaseWheelT11 | | | | | | ] -> [ Base5Token ] [ BaseWheelT11 | BaseWheelT12 | BaseWheelT13 | BaseWheelT14 | BaseWheelT15 | BaseWheelT16 | BaseWheelT17 ]\nDOWN [ Base5Token ] [ BaseWheelT21 | | | | | | ] -> [ Base5Token ] [ BaseWheelT21 | BaseWheelT22 | BaseWheelT23 | BaseWheelT24 | BaseWheelT25 | BaseWheelT26 | BaseWheelT27 ]\nDOWN [ Base5Token ] [ BaseWheelT31 | | | | | | ] -> [ Base5Token ] [ BaseWheelT31 | BaseWheelT32 | BaseWheelT33 | BaseWheelT34 | BaseWheelT35 | BaseWheelT36 | BaseWheelT37 ]\nDOWN [ Base5Token ] [ BaseWheelT41 | | | | | | ] -> [ Base5Token ] [ BaseWheelT41 | BaseWheelT42 | BaseWheelT43 | BaseWheelT44 | BaseWheelT45 | BaseWheelT46 | BaseWheelT47 ]\nDOWN [ Base5Token ] [ BaseWheelT51 | | | | | | ] -> [ Base5Token ] [ BaseWheelT51 | BaseWheelT52 | BaseWheelT53 | BaseWheelT54 | BaseWheelT55 | BaseWheelT56 | BaseWheelT57 ]\nDOWN [ Base5Token ] [ BaseWheelT61 | | | | | | ] -> [ Base5Token ] [ BaseWheelT61 | BaseWheelT62 | BaseWheelT63 | BaseWheelT64 | BaseWheelT65 | BaseWheelT66 | BaseWheelT67 ]\nDOWN [ Base5Token ] [ BaseWheelT71Wet | | | | | | ] -> [ Base5Token ] [ BaseWheelT71Wet | BaseWheelT72Wet | BaseWheelT73Wet | BaseWheelT74Wet | BaseWheelT75Wet | BaseWheelT76Wet | BaseWheelT77Wet ]\n\n(Replace objects with fakes that don't do anything.)\n[ BaseToken ] [ CutsceneBackground ] -> [ BaseToken ] [ Wall ]\n[ BaseToken ] [ WaterWheelHorizWet WaterSource ] -> [ BaseToken ] [ FakeWaterWheelVertWet ]\n[ BaseToken ] [ SwitchOff ] -> [ BaseToken ] [ FakeSwitchOff ]\n[ BaseToken ] [ GateHorizOpen ] -> [ BaseToken ] [ FakeGateHorizOpenWet ]\n[ BaseToken ] [ Goal ] -> [ BaseToken ] [ FakeDoorClosed ]\n(Fill spaces with fake water in part 2 and beyond)\nDOWN [ BaseToken no Base1Token ] [ FakeGateHorizOpenWet | Ditch ] -> [ BaseToken ] [ FakeGateHorizOpenWet | Ditch CutsceneWater ]\n(Fill spaces with fake water in part 4 and beyond)\n[ BaseToken no Base1Token no Base2Token no Base3Token ] [ Ditch no BaseWheel ] -> [ BaseToken ] [ Ditch CutsceneWater ]\n[ BaseToken no Base1Token no Base2Token no Base3Token ] [ WaterWheelVertDry ] -> [ BaseToken ] [ FakeWaterWheelVertWet ]\n\n(Start autoplaying)\nRIGHT [ > Player | FakeSwitchOff ] -> [ Player | FakeSwitchOn Timer1 ] sfx1\nRIGHT [ FakeSwitchOn | GateHorizClosed ] -> [ FakeSwitchOn | FakeGateHorizOpenWet ]\nDOWN [ FakeSwitchOn ] [ FakeGateHorizOpenWet | | | | | ] -> [ FakeSwitchOn ] [ FakeGateHorizOpenWet | CutsceneWater | BaseWheel71Wet | BaseWheel72Wet | BaseWheel73Wet | BaseWheel74Wet1 ]\n\n[ BaseToken ] -> [ ]\n\n(Timer countdowns)\n[Timer0] -> win\n[Timer1] -> [Timer0] again\n[Timer2] -> [Timer1] again\n[Timer3] -> [Timer2] again\n[Timer4] -> [Timer3] again\n[Timer5] -> [Timer4] again\n[Timer6] -> [Timer5] again\n[Timer7] -> [Timer6] again\n[Timer8] -> [Timer7] again\n[Timer9] -> [Timer8] again\n\n[SoundTrigger] -> []\n\n\n==============\nWINCONDITIONS\n==============\n\nSome Player on Goal\n\n\n=======\nLEVELS\n=======\n\n(Opening cutscene)\nAAAAAAAAAAAAA六\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\n~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~\n\nAAAAAAAAAAAA⓪一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\n~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~\n\nAAAAAAAAAAAA⓪一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBEBBGBAKLABB\n~~~~~~~~~~~~~~\n\nAAAAAAAAAAAA⓪六\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBEBBGBAKLABB\nABBFBBBBHIIJBB\n\nAAAAAAAAAAAA①一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBYBBGBAKLABB\nABBZBBBBHIIJBB\n\nAAAAAAAAAAAAA一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nA1B0BBGBAKLABB\nA2B0BBBBHIIJBB\n\nAAAAAAAAAAAAA六\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\n\n(tutorial)\n###@######\n#.-......G\n52-......#\n#\\---%D$-6\n#.L.$..#.#\n#...L###.#\n#...-....#\n##########\n\n(1)\n##########Ⅰ\n@....#....#\n#/..U--...#\n51U--%-$D-6\n#...---...#\n#.........G\n###########\n\n(2)\n##################Ⅱ\n51----------------6\n#/...L-%$%$%--....#\n@....---------....G\n#....-#######-....#\n#..-----###-----..#\n#..-----###-----..#\n#..-###-###-###-..#\n#.---#---#---#---.#\n#.---#---#---#---.#\n#.L.-.R.-.-.-.L.R.#\n###################\n\n(3)\n################Ⅲ\n#...$.....-----.#\n#...-#U%---###-.#\n#...-#-$#---#--.#\n#...-#-%-------.#\n#...L#......---.G\n#\\..-#---#####$.#\n51DU%--$%-----$$6\n#/..-#---#####$.#\n@...L#......---.#\n#...-#-%-------.#\n#...-#-$#---#--.#\n#...-#D%---###-.#\n#...$.....-----.#\n#################\n\n(4)\n#############Ⅳ\n#..L--..L--..#\n#.##$#..#$##.#\n#.#---..---#.#\n#..-%-$$-%-..#\n@..-%-..-%-..G\n#/.-%-..-%-..#\n51U---#U-----6\n##############\n\n(5)\n############Ⅴ\n#...L...R...#\n@...-...-...#\n#/..-...-...#\n51U-%---$--U#\n#...-...-...#\n#...-...-...#\n#...-...-...#\n#D--$-U-%---#\n#...L...-...#\n#...-...-...#\n#...R...-...#\n########8#G##\n\n\n(ending cutscene - clocktower base)\n#########7#@#\n#.......\\4..#\n#.......#-..#\n#..Ⓐ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######G#8###\n\n#########7#.一\n#......@/3..④\n#.......#-..#\n#..Ⓒ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######G#8###\n\n#########7#.一\n#......@/3..④\n#.......#-..#\n#..Ⓓ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######.#8###\n\n#########7#.一\n#......@/3..④\n#.......#-..#\n#..Ⓔ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######.#8###\n\n#########7#.一\n#......@/3..④\n#.......#-..#\n#..Ⓓ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######.#8###\n\n\n(ending cutscene - town)\nAAAAAAAAAAAA④一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA④一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA④一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA③一\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA③一\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA③六\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAAA一\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nA1B0BBGBAKLABB\nA2B0BBBBHIIJBB\n\nAAAAAAAAAAAAA一\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBYBBGBAKLABB\nABBZBBBBHIIJBB\n\nAAAAAAAAAAAA②六\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBEBBGBAKLABB\nABBFBBBBHIIJBB\n\n", [3, 3, 0, 1, 1, 0, 0, 1, 0, 3, 0, 1, 1, 0, 3, 3, 1, 3, 2, 2, 3, 3], "background wall:0,0,0,0,0,0,0,background watersource waterwheelhorizwet:1,0,background surface:2,0,0,0,0,0,0,2,\n2,2,2,2,background surface switchon:3,background ditch gatevertopenwet:4,background surface switchoff:5,2,2,2,2,2,0,0,2,2,2,\n2,2,2,background ditch ladderdown water:6,background ladderdowntop surface:7,2,2,2,2,2,0,0,2,2,2,2,background ladderlefttop surface:8,\nbackground ladderuptop surface:9,background ditch ladderup water:10,2,8,2,2,2,2,0,0,background cratesurface surface:11,background ditch water:12,12,12,background ditch ladderleft water:13,12,background ditch playerdrowned water:14,\nbackground block ditch:15,background ditch ladderleft:16,background ditch:17,17,17,background crateditch ditch:18,0,0,2,0,0,0,0,0,12,0,0,\n0,0,0,2,0,0,9,background ditch ladderup:19,17,17,2,12,12,12,2,17,17,\nbackground ditch ladderdown:20,7,0,0,2,15,18,15,2,12,11,12,2,15,18,15,2,\n0,0,2,17,0,17,2,12,15,12,2,17,0,17,2,0,0,\n2,17,17,17,2,0,17,0,2,17,17,17,2,0,0,17,17,\n17,17,2,0,17,0,2,17,17,17,17,0,0,17,0,17,17,\n2,0,17,0,2,17,17,0,17,0,0,17,0,0,17,17,0,\n17,0,17,17,0,0,17,0,0,17,0,17,17,17,0,17,0,\n17,17,17,0,17,0,0,17,17,17,17,17,18,18,18,17,17,\n17,17,17,0,0,2,2,2,2,2,2,18,2,2,2,2,2,\n2,0,background romannumeral3 wall:21,0,0,0,0,background doorclosed goal surface:22,0,background waterwheelhorizdry:23,0,0,0,0,0,0,0,\n", 10, "1627770256142.56"] + ["(version 1.0)\ntitle Maera Public Works\nauthor CHz\nhomepage quiteajolt.com\n\nbackground_color DarkBlue\nrun_rules_on_level_start\nagain_interval 0.25\n\n\n========\nOBJECTS\n========\n\nBackground \nBlack\n\nSurface\n#DDDDDD\n\nWall \n#222222\n\nRomanNumeral1\n#FF0000\n.....\n..0..\n..0..\n..0..\n.....\n\nRomanNumeral2\n#FF0000\n.....\n.0.0.\n.0.0.\n.0.0.\n.....\n\nRomanNumeral3\n#FF0000\n.....\n0.0.0\n0.0.0\n0.0.0\n.....\n\nRomanNumeral4\n#FF0000\n.....\n0.0.0\n0.0.0\n0..0.\n.....\n\nRomanNumeral5\n#FF0000\n.....\n.0.0.\n.0.0.\n..0..\n.....\n\n\nWaterWheelHorizWet\n#555500 #777700 #0080FF\n22022\n00000\n01010\n00000\n22022\n\nWaterWheelHorizDry\n#555500 #777700 #999999\n22022\n00000\n01010\n00000\n22022\n\nWaterWheelVertWet\n#555500 #777700 #0080FF\n20002\n20102\n00000\n20102\n20002\n\nWaterWheelVertDry\n#555500 #777700 #999999\n20002\n20102\n00000\n20102\n20002\n\nWaterSource\nTransparent\n\n\nDitch\n#999999\n\nWater\n#0080FF\n\nSwitchOn\n#222222 #999999\n...1.\n...1.\n..1..\n.000.\n.....\n\nSwitchOff\n#222222 #999999\n.1...\n.1...\n..1..\n.000.\n.....\n\nSwitchToggleToken\nTransparent\n\n\nGateVertOpen\n#444444\n.000.\n.....\n.....\n.....\n.000.\n\nGateVertOpenWet\n#444444 #0080FF\n10001\n11111\n11111\n11111\n10001\n\nGateVertClosed\n#444444\n.000.\n.000.\n.000.\n.000.\n.000.\n\nGateVertClosedLeft\n#444444 #0080FF\n1000.\n1000.\n1000.\n1000.\n1000.\n\nGateVertClosedRight\n#444444 #0080FF\n.0001\n.0001\n.0001\n.0001\n.0001\n\nGateHorizOpen\n#444444\n.....\n0...0\n0...0\n0...0\n.....\n\nGateHorizOpenWet\n#444444 #0080FF\n11111\n01110\n01110\n01110\n11111\n\nGateHorizClosed\n#444444\n.....\n00000\n00000\n00000\n.....\n\nGateHorizClosedUp\n#444444 #0080FF\n11111\n00000\n00000\n00000\n.....\n\nGateHorizClosedDown\n#444444 #0080FF\n.....\n00000\n00000\n00000\n11111\n\n\nCrateDitch\n#F0B030 #D06000\n.....\n.111.\n.101.\n.111.\n.....\n\nCrateSurface\n#F0E060 #F08000 #0080FF\n21112\n10001\n10001\n10001\n21112\n\nBlock\n#555555 #222222\n11111\n10001\n10001\n10001\n11111\n\nBlockSurface\n#555555 #222222\n11111\n10001\n10001\n10001\n11111\n\n\nLadderUpTop\nBrown\n.....\n.....\n.....\n.....\n.000.\n\nLadderUp\nBrown\n..0..\n..0..\n..0..\n..0..\n.....\n\nLadderDown\nBrown\n.....\n..0..\n..0..\n..0..\n..0..\n\nLadderDownTop\nBrown\n.000.\n.....\n.....\n.....\n.....\n\nLadderLeft\nBrown\n.....\n.....\n0000.\n.....\n.....\n\nLadderLeftTop\nBrown\n.....\n....0\n....0\n....0\n.....\n\nLadderRight\nBrown\n.....\n.....\n.0000\n.....\n.....\n\nLadderRightTop\nBrown\n.....\n0....\n0....\n0....\n.....\n\n\nPlayerSurface\n#009020\n..0..\n.000.\n00000\n.000.\n..0..\n\nPlayerDitch\n#007010\n.....\n..0..\n.000.\n..0..\n.....\n\nPlayerDrowned\nDarkBrown\n.....\n..0..\n.000.\n..0..\n.....\n\n\nGoal\nTransparent\n\nDoorClosed\n#444444\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n\n\nTimer9\nTransparent\n\nTimer8\nTransparent\n\nTimer7\nTransparent\n\nTimer6\nTransparent\n\nTimer5\nTransparent\n\nTimer4\nTransparent\n\nTimer3\nTransparent\n\nTimer2\nTransparent\n\nTimer1\nTransparent\n\nTimer0\nTransparent\n\n\nBase1Token\nTransparent\n\nBase2Token\nTransparent\n\nBase3Token\nTransparent\n\nBase4Token\nTransparent\n\nBase5Token\nTransparent\n\nFakeSwitchOff\n#222222 #999999\n.1...\n.1...\n..1..\n.000.\n.....\n\nFakeSwitchOn\n#222222 #999999\n...1.\n...1.\n..1..\n.000.\n.....\n\nFakeWaterWheelVertWet\n#555500 #777700 #0080FF\n20002\n20102\n00000\n20102\n20002\n\nFakeGateHorizOpenWet\n#444444 #0080FF\n11111\n01110\n01110\n01110\n11111\n\nFakeDoorClosed\n#444444\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n\nBaseWheel11\nDarkBrown\n.....\n.....\n...00\n..000\n..000\n\nBaseWheel21\nDarkBrown\n.....\n.....\n.....\n0...0\n00.00\n\nBaseWheel31\nDarkBrown\n.....\n.....\n..000\n00000\n00...\n\nBaseWheel41\nDarkBrown\n.000.\n.000.\n00000\n00000\n.000.\n\nBaseWheel51\nDarkBrown\n.....\n.....\n000..\n00000\n...00\n\nBaseWheel61\nDarkBrown\n.....\n.....\n.....\n0...0\n00.00\n\nBaseWheel71\nDarkBrown\n.....\n.....\n00...\n000..\n000..\n\nBaseWheel71Wet\nDarkBrown #0080FF\n11111\n11111\n00111\n00011\n00011\n\nBaseWheel12\nDarkBrown\n...00\n....0\n.....\n....0\n...00\n\nBaseWheel22\nDarkBrown\n00000\n0000.\n00000\n00000\n0.000\n\nBaseWheel32\nDarkBrown\n.....\n.....\n.....\n0....\n00...\n\nBaseWheel42\nDarkBrown\n.000.\n.000.\n.000.\n.000.\n.000.\n\nBaseWheel52\nDarkBrown\n.....\n.....\n.....\n....0\n...00\n\nBaseWheel62\nDarkBrown\n00000\n.0000\n00000\n00000\n000.0\n\nBaseWheel72\nDarkBrown\n00...\n0....\n.....\n0....\n00...\n\nBaseWheel72Wet\nDarkBrown #0080FF\n00111\n01111\n11111\n01111\n00111\n\nBaseWheel13\nDarkBrown\n...00\n...00\n..00.\n..00.\n..00.\n\nBaseWheel23\nDarkBrown\n...00\n....0\n.....\n.....\n.....\n\nBaseWheel33\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheel43\nDarkBrown\n00000\n00000\n.000.\n00000\n00000\n\nBaseWheel53\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheel63\nDarkBrown\n00...\n0....\n.....\n.....\n.....\n\nBaseWheel73\nDarkBrown\n00...\n00...\n.00..\n.00..\n.00..\n\nBaseWheel73Wet\nDarkBrown #0080FF\n00111\n00111\n.0011\n.0011\n.0011\n\nBaseWheel14\nDarkBrown\n..00.\n00000\n00000\n00000\n..00.\n\nBaseWheel24\nDarkBrown\n.....\n00000\n00000\n00000\n.....\n\nBaseWheel34\nDarkBrown\n00.00\n00000\n00000\n00000\n00.00\n\nBaseWheel44\nDarkBrown DarkGray\n00000\n01110\n01110\n01110\n00000\n\nBaseWheel54\nDarkBrown\n00.00\n00000\n00000\n00000\n00.00\n\nBaseWheel64\nDarkBrown\n.....\n00000\n00000\n00000\n.....\n\nBaseWheel74\nDarkBrown\n.00..\n00000\n00000\n00000\n.00..\n\nBaseWheel74Wet1\nDarkBrown #0080FF\n.0011\n00000\n00000\n00000\n.00..\n\nBaseWheel74Wet2\nDarkBrown #0080FF\n.0011\n00000\n00000\n00000\n.0011\n\nBaseWheel15\nDarkBrown\n..00.\n..00.\n..00.\n...00\n...00\n\nBaseWheel25\nDarkBrown\n.....\n.....\n.....\n....0\n...00\n\nBaseWheel35\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheel45\nDarkBrown\n00000\n00000\n.000.\n00000\n00000\n\nBaseWheel55\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheel65\nDarkBrown\n.....\n.....\n.....\n0....\n00...\n\nBaseWheel75\nDarkBrown\n.00..\n.00..\n.00..\n00...\n00...\n\nBaseWheel75Wet\nDarkBrown #0080FF\n.0011\n.0011\n.0011\n00111\n00111\n\nBaseWheel16\nDarkBrown\n...00\n....0\n.....\n....0\n...00\n\nBaseWheel26\nDarkBrown\n0.000\n00000\n00000\n0000.\n00000\n\nBaseWheel36\nDarkBrown\n00...\n0....\n.....\n.....\n.....\n\nBaseWheel46\nDarkBrown\n.000.\n.000.\n.000.\n.000.\n.000.\n\nBaseWheel56\nDarkBrown\n...00\n....0\n.....\n.....\n.....\n\nBaseWheel66\nDarkBrown\n000.0\n00000\n00000\n.0000\n00000\n\nBaseWheel76\nDarkBrown\n00...\n0....\n.....\n0....\n00...\n\nBaseWheel76Wet\nDarkBrown #0080FF\n00111\n01111\n11111\n01111\n00111\n\nBaseWheel17\nDarkBrown\n..000\n..000\n...00\n.....\n.....\n\nBaseWheel27\nDarkBrown\n00.00\n0...0\n.....\n.....\n.....\n\nBaseWheel37\nDarkBrown\n00...\n00000\n..000\n.....\n.....\n\nBaseWheel47\nDarkBrown\n.000.\n00000\n00000\n.000.\n.000.\n\nBaseWheel57\nDarkBrown\n...00\n00000\n000..\n.....\n.....\n\nBaseWheel67\nDarkBrown\n00.00\n0...0\n.....\n.....\n.....\n\nBaseWheel77\nDarkBrown\n000..\n000..\n00...\n.....\n.....\n\nBaseWheel77Wet\nDarkBrown #0080FF\n00011\n00011\n00111\n11111\n11111\n\nBaseWheelT11\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT21\nDarkBrown\n..000\n...00\n...00\n...00\n...00\n\nBaseWheelT31\nDarkBrown\n.....\n0....\n00000\n00000\n000..\n\nBaseWheelT41\nDarkBrown\n.....\n.....\n00000\n00000\n.....\n\nBaseWheelT51\nDarkBrown\n.....\n....0\n00000\n00000\n..000\n\nBaseWheelT61\nDarkBrown\n000..\n00...\n00...\n00...\n00...\n\nBaseWheelT71\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT71Wet\nDarkBrown #0080FF\n11111\n11111\n11111\n11111\n11111\n\nBaseWheelT12\nDarkBrown\n.....\n.....\n0...0\n00000\n00000\n\nBaseWheelT22\nDarkBrown\n..000\n.000.\n00...\n00...\n0....\n\nBaseWheelT32\nDarkBrown\n000..\n0000.\n.000.\n.0000\n..000\n\nBaseWheelT42\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT52\nDarkBrown\n..000\n.0000\n.000.\n0000.\n000..\n\nBaseWheelT62\nDarkBrown\n000..\n.000.\n...00\n...00\n....0\n\nBaseWheelT72\nDarkBrown\n.....\n.....\n....0\n00000\n00000\n\nBaseWheelT72Wet\nDarkBrown #0080FF\n11111\n11111\n11110\n00000\n00000\n\nBaseWheelT13\nDarkBrown\n.0000\n..000\n..000\n..00.\n..00.\n\nBaseWheelT23\nDarkBrown\n00...\n0000.\n00000\n.0000\n...00\n\nBaseWheelT33\nDarkBrown\n..000\n..000\n00000\n000.0\n00000\n\nBaseWheelT43\nDarkBrown\n00000\n00000\n00.00\n00.00\n00000\n\nBaseWheelT53\nDarkBrown\n000..\n000..\n00000\n0.000\n00000\n\nBaseWheelT63\nDarkBrown\n...00\n.0000\n00000\n0000.\n00...\n\nBaseWheelT73\nDarkBrown\n0000.\n000..\n000..\n.00..\n.00..\n\nBaseWheelT73Wet\nDarkBrown #0080FF\n00001\n00011\n00011\n.0011\n.0011\n\nBaseWheelT14\nDarkBrown\n..00.\n..00.\n..00.\n..00.\n..00.\n\nBaseWheelT24\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT34\nDarkBrown\n00000\n00000\n00..0\n00000\n00000\n\nBaseWheelT44\nDarkBrown\n00000\n00000\n00000\n00000\n00000\n\nBaseWheelT54\nDarkBrown\n00000\n00000\n0..00\n00000\n00000\n\nBaseWheelT64\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT74\nDarkBrown\n.00..\n.00..\n.00..\n.00..\n.00..\n\nBaseWheelT74Wet\nDarkBrown #0080FF\n.0011\n.0011\n.0011\n.0011\n.0011\n\nBaseWheelT15\nDarkBrown\n..00.\n..00.\n..000\n..000\n.0000\n\nBaseWheelT25\nDarkBrown\n...00\n.0000\n00000\n0000.\n00...\n\nBaseWheelT35\nDarkBrown\n00000\n000.0\n00000\n..000\n..000\n\nBaseWheelT45\nDarkBrown\n00000\n00.00\n00.00\n00000\n00000\n\nBaseWheelT55\nDarkBrown\n00000\n0.000\n00000\n00...\n00...\n\nBaseWheelT65\nDarkBrown\n00...\n0000.\n00000\n.0000\n...00\n\nBaseWheelT75\nDarkBrown\n.00..\n.00..\n000..\n000..\n0000.\n\nBaseWheelT75Wet\nDarkBrown #0080FF\n.0011\n.0011\n00011\n00011\n00001\n\nBaseWheelT16\nDarkBrown\n00000\n00000\n0....\n.....\n.....\n\nBaseWheelT26\nDarkBrown\n0....\n00...\n00...\n.000.\n..000\n\nBaseWheelT36\nDarkBrown\n..000\n.0000\n.000.\n0000.\n000..\n\nBaseWheelT46\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT56\nDarkBrown\n000..\n0000.\n.000.\n.0000\n..000\n\nBaseWheelT66\nDarkBrown\n....0\n...00\n...00\n.000.\n00...\n\nBaseWheelT76\nDarkBrown\n00000\n00000\n....0\n.....\n.....\n\nBaseWheelT76Wet\nDarkBrown #0080FF\n00000\n00000\n11110\n11111\n11111\n\nBaseWheelT17\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT27\nDarkBrown\n...00\n...00\n...00\n...00\n..000\n\nBaseWheelT37\nDarkBrown\n000..\n00000\n00000\n0....\n.....\n\nBaseWheelT47\nDarkBrown\n.....\n00000\n00000\n.....\n.....\n\nBaseWheelT57\nDarkBrown\n..000\n00000\n00000\n....0\n.....\n\nBaseWheelT67\nDarkBrown\n00...\n00...\n00...\n00...\n000..\n\nBaseWheelT77\nDarkBrown\n.....\n.....\n.....\n.....\n.....\n\nBaseWheelT77Wet\nDarkBrown #0080FF\n11111\n11111\n11111\n11111\n11111\n\n\n\n\n\nCutsceneBackground\nGreen\n\nHouse\nDarkBrown\n\nHouseRoofLeft\nDarkBrown\n.....\n....0\n...00\n..000\n.0000\n\nHouseRoofRight\nDarkBrown\n.....\n0....\n00...\n000..\n0000.\n\nWindow\nLightBlue\n\nDoorClosedTop\nDarkBrown #383020\n11111\n10001\n10001\n10001\n10001\n\nDoorClosedBottom\nDarkBrown #383020\n10001\n10001\n10001\n10001\n10001\n\nRoadLeft\n#E0D010\n....0\n...00\n..000\n.0000\n00000\n\nRoad\n#E0D010\n\nRoadRight\n#E0D010\n.....\n0....\n00...\n000..\n0000.\n\nClockTowerLeft\n#252525\n\nClockTowerRight\n#252525\n0000.\n0000.\n0000.\n0000.\n0000.\n\nClock11\n#252525 White\n.....\n....0\n...00\n..000\n..001\n\nClock21\n#252525 White\n00000\n00000\n01111\n11101\n11101\n\nClock21b\n#252525 White\n00000\n00000\n01111\n11110\n11110\n\nClock31\n#252525 White\n0000.\n00000\n11100\n11110\n11111\n\nClock41\n#252525 White\n.....\n.....\n0....\n00...\n00...\n\nClock12\n#252525 White\n..001\n..001\n..001\n..001\n..001\n\nClock22\n#252525 White\n11110\n11110\n11110\n11111\n11111\n\nClock32\n#252525 White\n11111\n11111\n00011\n11111\n11111\n\nClock42\n#252525 White\n00...\n00...\n00...\n00...\n00...\n\nClock13\n#252525 White\n..001\n..000\n...00\n....0\n.....\n\nClock23\n#252525 White\n11111\n11111\n01111\n00000\n00000\n\nClock33\n#252525 White\n11111\n11110\n11100\n00000\n0000.\n\nClock43\n#252525 White\n00...\n00...\n0....\n.....\n.....\n\nDoorOpen\nBlack\n\nCutsceneWater\n#0080FF\n\nPlayerHead\n#009020 White\n..0..\n.000.\n00000\n.000.\n.101.\n\nPlayerBody\n#009020 White\n.111.\n.111.\n.111.\n.1.1.\n.1.1.\n\n\nSoundTrigger0\nTransparent\n\nSoundTrigger1\nTransparent\n\nSoundTrigger2\nTransparent\n\nSoundTrigger3\nTransparent\n\nSoundTrigger4\nTransparent\n\n\n=======\nLEGEND\n=======\n\n! = Background\n\n. = Surface\n# = Wall\n\nⅠ = Wall AND RomanNumeral1\nⅡ = Wall AND RomanNumeral2\nⅢ = Wall AND RomanNumeral3\nⅣ = Wall AND RomanNumeral4\nⅤ = Wall AND RomanNumeral5\nRomanNumeral = RomanNumeral1 OR RomanNumeral2 OR RomanNumeral3 OR RomanNumeral4 OR RomanNumeral5\n\n5 = WaterWheelHorizWet AND WaterSource\n6 = WaterWheelHorizDry\n7 = WaterWheelVertWet AND WaterSource\n8 = WaterWheelVertDry\nWaterWheel = WaterWheelHorizWet OR WaterWheelHorizDry OR WaterWheelVertWet OR WaterWheelVertDry OR FakeWaterWheelVertWet\nWaterPropagator = Water OR CrateSurface OR WaterSource OR GateVertOpenWet OR GateHorizOpenWet\n\n- = Ditch\n1 = GateVertOpen AND Ditch\n2 = GateVertClosed AND Ditch\n3 = GateHorizOpen AND Ditch\n4 = GateHorizClosed AND Ditch\n\n$ = CrateDitch AND Ditch\nCrate = CrateDitch OR CrateSurface\n% = Block AND Ditch\n\nPushable = CrateDitch OR Block\n\n/ = SwitchOn AND Surface\n\\ = SwitchOff AND Surface\nSwitch = SwitchOn OR SwitchOff OR FakeSwitchOn OR FakeSwitchOff\n\nU = LadderUp AND Ditch\nD = LadderDown AND Ditch\nL = LadderLeft AND Ditch\nR = LadderRight AND Ditch\nLadder = LadderUp OR LadderDown OR LadderLeft OR LadderRight\n\nGate = GateVertOpen OR GateVertOpenWet OR GateVertClosed OR GateVertClosedLeft OR GateVertClosedRight OR GateHorizOpen OR GateHorizOpenWet OR GateHorizClosed OR GateHorizClosedUp OR GateHorizClosedDown OR FakeGateHorizOpenWet\n\n@ = PlayerSurface AND Surface\nPlayer = PlayerSurface OR PlayerDitch\n\nG = Goal AND Surface\n\n一 = Timer1 AND CutsceneBackground\n二 = Timer2 AND CutsceneBackground\n三 = Timer3 AND CutsceneBackground\n四 = Timer4 AND CutsceneBackground\n五 = Timer5 AND CutsceneBackground\n六 = Timer6 AND CutsceneBackground\n七 = Timer7 AND CutsceneBackground\n八 = Timer8 AND CutsceneBackground\n九 = Timer9 AND CutsceneBackground\nTimer = Timer1 OR Timer2 OR Timer3 OR Timer4 OR Timer5 OR Timer6 OR Timer7 OR Timer8 OR Timer9 OR Timer0\n\nⒶ = BaseWheel11 AND Base1Token AND Ditch\nⒷ = BaseWheel11 AND Base2Token AND Ditch\nⒸ = BaseWheelT11 AND Base3Token AND Ditch\nⒹ = BaseWheel11 AND Base4Token AND Ditch\nⒺ = BaseWheelT11 AND Base5Token AND Ditch\nBaseToken = Base1Token OR Base2Token OR Base3Token OR Base4Token OR Base5Token\nBaseWheel = BaseWheel11 OR BaseWheel21 OR BaseWheel31 OR BaseWheel41 OR BaseWheel51 OR BaseWheel61 OR BaseWheel71 OR BaseWheel12 OR BaseWheel22 OR BaseWheel32 OR BaseWheel42 OR BaseWheel52 OR BaseWheel62 OR BaseWheel72 OR BaseWheel13 OR BaseWheel23 OR BaseWheel33 OR BaseWheel43 OR BaseWheel53 OR BaseWheel63 OR BaseWheel73 OR BaseWheel14 OR BaseWheel24 OR BaseWheel34 OR BaseWheel44 OR BaseWheel54 OR BaseWheel64 OR BaseWheel74 OR BaseWheel15 OR BaseWheel25 OR BaseWheel35 OR BaseWheel45 OR BaseWheel55 OR BaseWheel65 OR BaseWheel75 OR BaseWheel16 OR BaseWheel26 OR BaseWheel36 OR BaseWheel46 OR BaseWheel56 OR BaseWheel66 OR BaseWheel76 OR BaseWheel17 OR BaseWheel27 OR BaseWheel37 OR BaseWheel47 OR BaseWheel57 OR BaseWheel67 OR BaseWheel77 OR BaseWheel71Wet OR BaseWheel72Wet OR BaseWheel73Wet OR BaseWheel74Wet1 OR BaseWheel74Wet2 OR BaseWheel75Wet OR BaseWheel76Wet OR BaseWheel77Wet OR BaseWheelT11 OR BaseWheelT21 OR BaseWheelT31 OR BaseWheelT41 OR BaseWheelT51 OR BaseWheelT61 OR BaseWheelT71 OR BaseWheelT12 OR BaseWheelT22 OR BaseWheelT32 OR BaseWheelT42 OR BaseWheelT52 OR BaseWheelT62 OR BaseWheelT72 OR BaseWheelT13 OR BaseWheelT23 OR BaseWheelT33 OR BaseWheelT43 OR BaseWheelT53 OR BaseWheelT63 OR BaseWheelT73 OR BaseWheelT14 OR BaseWheelT24 OR BaseWheelT34 OR BaseWheelT44 OR BaseWheelT54 OR BaseWheelT64 OR BaseWheelT74 OR BaseWheelT15 OR BaseWheelT25 OR BaseWheelT35 OR BaseWheelT45 OR BaseWheelT55 OR BaseWheelT65 OR BaseWheelT75 OR BaseWheelT16 OR BaseWheelT26 OR BaseWheelT36 OR BaseWheelT46 OR BaseWheelT56 OR BaseWheelT66 OR BaseWheelT76 OR BaseWheelT17 OR BaseWheelT27 OR BaseWheelT37 OR BaseWheelT47 OR BaseWheelT57 OR BaseWheelT67 OR BaseWheelT77 OR BaseWheelT71Wet OR BaseWheelT72Wet OR BaseWheelT73Wet OR BaseWheelT74Wet OR BaseWheelT75Wet OR BaseWheelT76Wet OR BaseWheelT77Wet\n\nA = CutsceneBackground\nB = House AND CutsceneBackground\nC = HouseRoofLeft AND CutsceneBackground\nD = HouseRoofRight AND CutsceneBackground\nE = DoorClosedTop AND CutsceneBackground\nF = DoorClosedBottom AND CutsceneBackground\nG = Window AND CutsceneBackground\nH = RoadLeft AND CutsceneBackground\nI = Road AND CutsceneBackground\nJ = RoadRight AND CutsceneBackground\nK = ClockTowerLeft AND CutsceneBackground\nL = ClockTowerRight AND CutsceneBackground\nM = Clock11 AND CutsceneBackground\nN = Clock21 AND CutsceneBackground\nO = Clock31 AND CutsceneBackground\nP = Clock41 AND CutsceneBackground\nQ = Clock12 AND CutsceneBackground\nR = Clock22 AND CutsceneBackground\nS = Clock32 AND CutsceneBackground\nT = Clock42 AND CutsceneBackground\nU = Clock13 AND CutsceneBackground\nV = Clock23 AND CutsceneBackground\nW = Clock33 AND CutsceneBackground\nX = Clock43 AND CutsceneBackground\nY = DoorOpen AND PlayerHead AND CutsceneBackground\nZ = DoorOpen AND PlayerBody AND CutsceneBackground\n0 = DoorOpen AND CutsceneBackground\n1 = House AND PlayerHead AND CutsceneBackground\n2 = House AND PlayerBody AND CutsceneBackground\n3 = Clock21b AND CutsceneBackground\n~ = CutsceneWater AND CutsceneBackground\n\n⓪ = SoundTrigger0 AND CutsceneBackground\n① = SoundTrigger1 AND CutsceneBackground\n② = SoundTrigger2 AND CutsceneBackground\n③ = SoundTrigger3 AND CutsceneBackground\n④ = SoundTrigger4 AND CutsceneBackground\nSoundTrigger = SoundTrigger0 OR SoundTrigger1 OR SoundTrigger2 OR SoundTrigger3 OR SoundTrigger4\n\n=======\nSOUNDS\n=======\n\nPlayerSurface create 48266305 (climb up)\nPlayerDitch create 41817501 (climb down)\n\n(water movement)\nSwitchOn create 36552908\nSwitchOff create 36552908\nSoundTrigger0 destroy 36552908\nsfx1 36552908\n\nPlayerDrowned create 36552908 (play water movement too)\nPlayerDrowned create 66299108 (u ded)\n\nSoundTrigger1 destroy 56950107 (open door)\nSoundTrigger2 destroy 73601104 (close door)\n\nSoundTrigger3 destroy 20889900 (chime)\n\nSoundTrigger4 destroy 25204707 (wheel click)\n\nsfx0 9950900 (finish a puzzle level)\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nCutsceneBackground\nSurface, Ditch\nLadder\nLadderUpTop (tops all on separate layers so more than one can be on one tile)\nLadderDownTop\nLadderLeftTop\nLadderRightTop\nCrateSurface, BlockSurface\nPlayer, Wall, Water, Gate, Switch, CrateDitch, Block, WaterWheel, DoorClosed, FakeDoorClosed, BaseWheel\nGoal\nSwitchToggleToken, BaseToken\nWaterSource\nTimer, RomanNumeral, PlayerDrowned\nHouse, HouseRoofLeft, HouseRoofRight, DoorClosedTop, DoorClosedBottom, Window, RoadLeft, Road, RoadRight, ClockTowerLeft, ClockTowerRight, Clock11, Clock21, Clock21b, Clock31, Clock41, Clock12, Clock22, Clock32, Clock42, Clock13, Clock23, Clock33, Clock43, DoorOpen, CutsceneWater\nPlayerHead, PlayerBody\nSoundTrigger\n\n\n======\nRULES\n======\n\n(================\nLEVEL GENERATION\n================)\n\n(Generate the tops of the ladders.)\nDOWN [ | LadderUp ] -> [ LadderUpTop | LadderUp ]\nDOWN [ LadderDown | ] -> [ LadderDown | LadderDownTop ]\nRIGHT [ | LadderLeft ] -> [ LadderLeftTop | LadderLeft ]\nRIGHT [ LadderRight | ] -> [ LadderRight | LadderRightTop ]\n\n\n(========\nMOVEMENT\n========)\n\n(Convert blocks to and from fake surfaces when the player walks on and off them, because layers.)\n[ > Player Surface | Block Ditch ] -> [ > Player Surface | BlockSurface Surface ]\nLATE [ BlockSurface Surface no Player ] -> [ Block Ditch ]\n\n(Shove crates and blocks. They can never move to the surface.)\n[ > PlayerDitch | Pushable ] -> [ > PlayerDitch | > Pushable ]\n[ > Pushable | Surface ] -> [ Pushable | Surface ]\n\n(Cancel movement if the player walks into the void.)\n[ > Player | no Surface no Ditch ] -> [ Player | ]\n\n(Cancel movement if a player on the surface tries to move into a ditch without using a ladder.)\nDOWN [ > Player Surface | Ditch no LadderUp ] -> [ Player Surface | Ditch ]\nUP [ > Player Surface | Ditch no LadderDown ] -> [ Player Surface | Ditch ]\nLEFT [ > Player Surface | Ditch no LadderRight ] -> [ Player Surface | Ditch ]\nRIGHT [ > Player Surface | Ditch no LadderLeft ] -> [ Player Surface | Ditch ]\n\n(Cancel movement if a player in a ditch tries to move to the surface without using a ladder.)\nDOWN [ > Player Ditch no LadderDown | Surface ] -> [ Player Ditch | Surface ]\nUP [ > Player Ditch no LadderUp | Surface ] -> [ Player Ditch | Surface ]\nLEFT [ > Player Ditch no LadderLeft | Surface ] -> [ Player Ditch | Surface ]\nRIGHT [ > Player Ditch no LadderRight | Surface ] -> [ Player Ditch | Surface ]\n\n(Change the player sprite based on their height.)\nLATE [ PlayerSurface Ditch ] -> [ PlayerDitch Ditch ]\nLATE [ PlayerDitch Surface ] -> [ PlayerSurface Surface ]\n\n(Play a sound when the player finishes a puzzle level. Done like this so it doesn't happen on the cutscene levels.)\nLATE [ Player Goal ] -> sfx0\n\n\n(=============\nSPLISH SPLASH\n=============)\n\n(Get started by marking that we're toggling and clearing current water)\n[ > Player Surface | Switch ] -> [ > Player Surface | Switch SwitchToggleToken ]\n[ SwitchToggleToken ] [ Water ] -> [ SwitchToggleToken ] [ ]\n[ SwitchToggleToken ] [ GateVertOpenWet ] -> [ SwitchToggleToken ] [ GateVertOpen ]\n[ SwitchToggleToken ] [ GateVertClosedLeft ] -> [ SwitchToggleToken ] [ GateVertClosed ]\n[ SwitchToggleToken ] [ GateVertClosedRight ] -> [ SwitchToggleToken ] [ GateVertClosed ]\n[ SwitchToggleToken ] [ GateHorizOpenWet ] -> [ SwitchToggleToken ] [ GateHorizOpen ]\n[ SwitchToggleToken ] [ GateHorizClosedUp ] -> [ SwitchToggleToken ] [ GateHorizClosed ]\n[ SwitchToggleToken ] [ GateHorizClosedDown ] -> [ SwitchToggleToken ] [ GateHorizClosed ]\n[ SwitchToggleToken ] [ WaterWheelVertWet no WaterSource ] -> [ SwitchToggleToken ] [ WaterWheelVertDry ]\n[ SwitchToggleToken ] [ WaterWheelHorizWet no WaterSource ] -> [ SwitchToggleToken ] [ WaterWheelHorizDry ]\n[ SwitchToggleToken ] [ CrateSurface Surface ] -> [ SwitchToggleToken ] [ CrateDitch Ditch ]\n\n(Open the associated gate and send the water along.)\n[ SwitchOff SwitchToggleToken | GateVertClosed ] -> [ SwitchOff SwitchToggleToken | GateVertOpen ]\n[ SwitchOff SwitchToggleToken | GateHorizClosed ] -> [ SwitchOff SwitchToggleToken | GateHorizOpen ]\nstartloop\n\t(This water propagation is bad lmao, don't worry about it)\n\t(We do this LATE so we can propagate after a player moves a block.)\n\tLATE [ WaterPropagator | Ditch no Water no Gate no Crate no Block no Player ] -> [ WaterPropagator | Ditch Water ]\n LATE [ WaterPropagator | PlayerDitch ] -> [ WaterPropagator | PlayerDrowned ]\n\tLATE [ WaterPropagator | CrateDitch Ditch ] -> [ WaterPropagator | CrateSurface Surface ]\n LATE [ WaterPropagator | GateVertOpen ] -> [ WaterPropagator | GateVertOpenWet ]\n LATE RIGHT [ WaterPropagator | GateVertClosed ] -> [ WaterPropagator | GateVertClosedLeft ]\n LATE RIGHT [ GateVertClosed | WaterPropagator ] -> [ GateVertClosedRight | WaterPropagator ]\n LATE [ WaterPropagator | GateHorizOpen ] -> [ WaterPropagator | GateHorizOpenWet ]\n LATE DOWN [ WaterPropagator | GateHorizClosed ] -> [ WaterPropagator | GateHorizClosedUp ]\n LATE DOWN [ GateHorizClosed | WaterPropagator ] -> [ GateHorizClosedDown | WaterPropagator ]\nendloop\nLATE [ WaterPropagator | WaterWheelVertDry ] -> [ WaterPropagator | WaterWheelVertWet ]\nLATE [ WaterPropagator | WaterWheelHorizDry ] -> [ WaterPropagator | WaterWheelHorizWet ]\n[ SwitchOff SwitchToggleToken ] -> [ SwitchOn ]\n\n(Close the associated gate.)\n[ SwitchOn SwitchToggleToken | GateVertOpen ] -> [ SwitchOn SwitchToggleToken | GateVertClosed ]\n[ SwitchOn SwitchToggleToken | GateHorizOpen ] -> [ SwitchOn SwitchToggleToken | GateHorizClosed ]\n[ SwitchOn SwitchToggleToken ] -> [ SwitchOff ]\n\n(Open/close the door depending on whether the water wheel is powered.)\nLATE [ Goal DoorClosed ] -> [ Goal ]\nLATE [ WaterWheelVertDry ] [ Goal ] -> [ WaterWheelVertDry ] [ Goal DoorClosed ]\nLATE [ WaterWheelHorizDry ] [ Goal ] -> [ WaterWheelHorizDry ] [ Goal DoorClosed ]\n\n\n(=========\nCUTSCENES\n=========)\n\n(Wheel generation for the base levels - #1)\nRIGHT [ Base1Token ] [ BaseWheel11 | | | | | | ] -> [ Base1Token ] [ BaseWheel11 | BaseWheel21 | BaseWheel31 | BaseWheel41 | BaseWheel51 | BaseWheel61 | BaseWheel71 ]\nDOWN [ Base1Token ] [ BaseWheel11 | | | | | | ] -> [ Base1Token ] [ BaseWheel11 | BaseWheel12 | BaseWheel13 | BaseWheel14 | BaseWheel15 | BaseWheel16 | BaseWheel17 ]\nDOWN [ Base1Token ] [ BaseWheel21 | | | | | | ] -> [ Base1Token ] [ BaseWheel21 | BaseWheel22 | BaseWheel23 | BaseWheel24 | BaseWheel25 | BaseWheel26 | BaseWheel27 ]\nDOWN [ Base1Token ] [ BaseWheel31 | | | | | | ] -> [ Base1Token ] [ BaseWheel31 | BaseWheel32 | BaseWheel33 | BaseWheel34 | BaseWheel35 | BaseWheel36 | BaseWheel37 ]\nDOWN [ Base1Token ] [ BaseWheel41 | | | | | | ] -> [ Base1Token ] [ BaseWheel41 | BaseWheel42 | BaseWheel43 | BaseWheel44 | BaseWheel45 | BaseWheel46 | BaseWheel47 ]\nDOWN [ Base1Token ] [ BaseWheel51 | | | | | | ] -> [ Base1Token ] [ BaseWheel51 | BaseWheel52 | BaseWheel53 | BaseWheel54 | BaseWheel55 | BaseWheel56 | BaseWheel57 ]\nDOWN [ Base1Token ] [ BaseWheel61 | | | | | | ] -> [ Base1Token ] [ BaseWheel61 | BaseWheel62 | BaseWheel63 | BaseWheel64 | BaseWheel65 | BaseWheel66 | BaseWheel67 ]\nDOWN [ Base1Token ] [ BaseWheel71 | | | | | | ] -> [ Base1Token ] [ BaseWheel71 | BaseWheel72 | BaseWheel73 | BaseWheel74 | BaseWheel75 | BaseWheel76 | BaseWheel77 ]\n\n(Wheel generation for the base levels - #2)\nRIGHT [ Base2Token ] [ BaseWheel11 | | | | | | ] -> [ Base2Token ] [ BaseWheel11 | BaseWheel21 | BaseWheel31 | BaseWheel41 | BaseWheel51 | BaseWheel61 | BaseWheel71Wet ]\nDOWN [ Base2Token ] [ BaseWheel11 | | | | | | ] -> [ Base2Token ] [ BaseWheel11 | BaseWheel12 | BaseWheel13 | BaseWheel14 | BaseWheel15 | BaseWheel16 | BaseWheel17 ]\nDOWN [ Base2Token ] [ BaseWheel21 | | | | | | ] -> [ Base2Token ] [ BaseWheel21 | BaseWheel22 | BaseWheel23 | BaseWheel24 | BaseWheel25 | BaseWheel26 | BaseWheel27 ]\nDOWN [ Base2Token ] [ BaseWheel31 | | | | | | ] -> [ Base2Token ] [ BaseWheel31 | BaseWheel32 | BaseWheel33 | BaseWheel34 | BaseWheel35 | BaseWheel36 | BaseWheel37 ]\nDOWN [ Base2Token ] [ BaseWheel41 | | | | | | ] -> [ Base2Token ] [ BaseWheel41 | BaseWheel42 | BaseWheel43 | BaseWheel44 | BaseWheel45 | BaseWheel46 | BaseWheel47 ]\nDOWN [ Base2Token ] [ BaseWheel51 | | | | | | ] -> [ Base2Token ] [ BaseWheel51 | BaseWheel52 | BaseWheel53 | BaseWheel54 | BaseWheel55 | BaseWheel56 | BaseWheel57 ]\nDOWN [ Base2Token ] [ BaseWheel61 | | | | | | ] -> [ Base2Token ] [ BaseWheel61 | BaseWheel62 | BaseWheel63 | BaseWheel64 | BaseWheel65 | BaseWheel66 | BaseWheel67 ]\nDOWN [ Base2Token ] [ BaseWheel71Wet | | | | | | ] -> [ Base2Token ] [ BaseWheel71Wet | BaseWheel72Wet | BaseWheel73Wet | BaseWheel74Wet1 | BaseWheel75 | BaseWheel76 | BaseWheel77 ]\n\n(Wheel generation for the base levels - #3)\nRIGHT [ Base3Token ] [ BaseWheelT11 | | | | | | ] -> [ Base3Token ] [ BaseWheelT11 | BaseWheelT21 | BaseWheelT31 | BaseWheelT41 | BaseWheelT51 | BaseWheelT61 | BaseWheelT71Wet ]\nDOWN [ Base3Token ] [ BaseWheelT11 | | | | | | ] -> [ Base3Token ] [ BaseWheelT11 | BaseWheelT12 | BaseWheelT13 | BaseWheelT14 | BaseWheelT15 | BaseWheelT16 | BaseWheelT17 ]\nDOWN [ Base3Token ] [ BaseWheelT21 | | | | | | ] -> [ Base3Token ] [ BaseWheelT21 | BaseWheelT22 | BaseWheelT23 | BaseWheelT24 | BaseWheelT25 | BaseWheelT26 | BaseWheelT27 ]\nDOWN [ Base3Token ] [ BaseWheelT31 | | | | | | ] -> [ Base3Token ] [ BaseWheelT31 | BaseWheelT32 | BaseWheelT33 | BaseWheelT34 | BaseWheelT35 | BaseWheelT36 | BaseWheelT37 ]\nDOWN [ Base3Token ] [ BaseWheelT41 | | | | | | ] -> [ Base3Token ] [ BaseWheelT41 | BaseWheelT42 | BaseWheelT43 | BaseWheelT44 | BaseWheelT45 | BaseWheelT46 | BaseWheelT47 ]\nDOWN [ Base3Token ] [ BaseWheelT51 | | | | | | ] -> [ Base3Token ] [ BaseWheelT51 | BaseWheelT52 | BaseWheelT53 | BaseWheelT54 | BaseWheelT55 | BaseWheelT56 | BaseWheelT57 ]\nDOWN [ Base3Token ] [ BaseWheelT61 | | | | | | ] -> [ Base3Token ] [ BaseWheelT61 | BaseWheelT62 | BaseWheelT63 | BaseWheelT64 | BaseWheelT65 | BaseWheelT66 | BaseWheelT67 ]\nDOWN [ Base3Token ] [ BaseWheelT71Wet | | | | | | ] -> [ Base3Token ] [ BaseWheelT71Wet | BaseWheelT72Wet | BaseWheelT73Wet | BaseWheelT74Wet | BaseWheelT75Wet | BaseWheelT76 | BaseWheelT77 ]\n\n(Wheel generation for the base levels - #4)\nRIGHT [ Base4Token ] [ BaseWheel11 | | | | | | ] -> [ Base4Token ] [ BaseWheel11 | BaseWheel21 | BaseWheel31 | BaseWheel41 | BaseWheel51 | BaseWheel61 | BaseWheel71Wet ]\nDOWN [ Base4Token ] [ BaseWheel11 | | | | | | ] -> [ Base4Token ] [ BaseWheel11 | BaseWheel12 | BaseWheel13 | BaseWheel14 | BaseWheel15 | BaseWheel16 | BaseWheel17 ]\nDOWN [ Base4Token ] [ BaseWheel21 | | | | | | ] -> [ Base4Token ] [ BaseWheel21 | BaseWheel22 | BaseWheel23 | BaseWheel24 | BaseWheel25 | BaseWheel26 | BaseWheel27 ]\nDOWN [ Base4Token ] [ BaseWheel31 | | | | | | ] -> [ Base4Token ] [ BaseWheel31 | BaseWheel32 | BaseWheel33 | BaseWheel34 | BaseWheel35 | BaseWheel36 | BaseWheel37 ]\nDOWN [ Base4Token ] [ BaseWheel41 | | | | | | ] -> [ Base4Token ] [ BaseWheel41 | BaseWheel42 | BaseWheel43 | BaseWheel44 | BaseWheel45 | BaseWheel46 | BaseWheel47 ]\nDOWN [ Base4Token ] [ BaseWheel51 | | | | | | ] -> [ Base4Token ] [ BaseWheel51 | BaseWheel52 | BaseWheel53 | BaseWheel54 | BaseWheel55 | BaseWheel56 | BaseWheel57 ]\nDOWN [ Base4Token ] [ BaseWheel61 | | | | | | ] -> [ Base4Token ] [ BaseWheel61 | BaseWheel62 | BaseWheel63 | BaseWheel64 | BaseWheel65 | BaseWheel66 | BaseWheel67 ]\nDOWN [ Base4Token ] [ BaseWheel71Wet | | | | | | ] -> [ Base4Token ] [ BaseWheel71Wet | BaseWheel72Wet | BaseWheel73Wet | BaseWheel74Wet2 | BaseWheel75Wet | BaseWheel76Wet | BaseWheel77Wet ]\n\n(Wheel generation for the base levels - #5)\nRIGHT [ Base5Token ] [ BaseWheelT11 | | | | | | ] -> [ Base5Token ] [ BaseWheelT11 | BaseWheelT21 | BaseWheelT31 | BaseWheelT41 | BaseWheelT51 | BaseWheelT61 | BaseWheelT71Wet ]\nDOWN [ Base5Token ] [ BaseWheelT11 | | | | | | ] -> [ Base5Token ] [ BaseWheelT11 | BaseWheelT12 | BaseWheelT13 | BaseWheelT14 | BaseWheelT15 | BaseWheelT16 | BaseWheelT17 ]\nDOWN [ Base5Token ] [ BaseWheelT21 | | | | | | ] -> [ Base5Token ] [ BaseWheelT21 | BaseWheelT22 | BaseWheelT23 | BaseWheelT24 | BaseWheelT25 | BaseWheelT26 | BaseWheelT27 ]\nDOWN [ Base5Token ] [ BaseWheelT31 | | | | | | ] -> [ Base5Token ] [ BaseWheelT31 | BaseWheelT32 | BaseWheelT33 | BaseWheelT34 | BaseWheelT35 | BaseWheelT36 | BaseWheelT37 ]\nDOWN [ Base5Token ] [ BaseWheelT41 | | | | | | ] -> [ Base5Token ] [ BaseWheelT41 | BaseWheelT42 | BaseWheelT43 | BaseWheelT44 | BaseWheelT45 | BaseWheelT46 | BaseWheelT47 ]\nDOWN [ Base5Token ] [ BaseWheelT51 | | | | | | ] -> [ Base5Token ] [ BaseWheelT51 | BaseWheelT52 | BaseWheelT53 | BaseWheelT54 | BaseWheelT55 | BaseWheelT56 | BaseWheelT57 ]\nDOWN [ Base5Token ] [ BaseWheelT61 | | | | | | ] -> [ Base5Token ] [ BaseWheelT61 | BaseWheelT62 | BaseWheelT63 | BaseWheelT64 | BaseWheelT65 | BaseWheelT66 | BaseWheelT67 ]\nDOWN [ Base5Token ] [ BaseWheelT71Wet | | | | | | ] -> [ Base5Token ] [ BaseWheelT71Wet | BaseWheelT72Wet | BaseWheelT73Wet | BaseWheelT74Wet | BaseWheelT75Wet | BaseWheelT76Wet | BaseWheelT77Wet ]\n\n(Replace objects with fakes that don't do anything.)\n[ BaseToken ] [ CutsceneBackground ] -> [ BaseToken ] [ Wall ]\n[ BaseToken ] [ WaterWheelHorizWet WaterSource ] -> [ BaseToken ] [ FakeWaterWheelVertWet ]\n[ BaseToken ] [ SwitchOff ] -> [ BaseToken ] [ FakeSwitchOff ]\n[ BaseToken ] [ GateHorizOpen ] -> [ BaseToken ] [ FakeGateHorizOpenWet ]\n[ BaseToken ] [ Goal ] -> [ BaseToken ] [ FakeDoorClosed ]\n(Fill spaces with fake water in part 2 and beyond)\nDOWN [ BaseToken no Base1Token ] [ FakeGateHorizOpenWet | Ditch ] -> [ BaseToken ] [ FakeGateHorizOpenWet | Ditch CutsceneWater ]\n(Fill spaces with fake water in part 4 and beyond)\n[ BaseToken no Base1Token no Base2Token no Base3Token ] [ Ditch no BaseWheel ] -> [ BaseToken ] [ Ditch CutsceneWater ]\n[ BaseToken no Base1Token no Base2Token no Base3Token ] [ WaterWheelVertDry ] -> [ BaseToken ] [ FakeWaterWheelVertWet ]\n\n(Start autoplaying)\nRIGHT [ > Player | FakeSwitchOff ] -> [ Player | FakeSwitchOn Timer1 ] sfx1\nRIGHT [ FakeSwitchOn | GateHorizClosed ] -> [ FakeSwitchOn | FakeGateHorizOpenWet ]\nDOWN [ FakeSwitchOn ] [ FakeGateHorizOpenWet | | | | | ] -> [ FakeSwitchOn ] [ FakeGateHorizOpenWet | CutsceneWater | BaseWheel71Wet | BaseWheel72Wet | BaseWheel73Wet | BaseWheel74Wet1 ]\n\n[ BaseToken ] -> [ ]\n\n(Timer countdowns)\n[Timer0] -> win\n[Timer1] -> [Timer0] again\n[Timer2] -> [Timer1] again\n[Timer3] -> [Timer2] again\n[Timer4] -> [Timer3] again\n[Timer5] -> [Timer4] again\n[Timer6] -> [Timer5] again\n[Timer7] -> [Timer6] again\n[Timer8] -> [Timer7] again\n[Timer9] -> [Timer8] again\n\n[SoundTrigger] -> []\n\n\n==============\nWINCONDITIONS\n==============\n\nSome Player on Goal\n\n\n=======\nLEVELS\n=======\n\n(Opening cutscene)\nAAAAAAAAAAAAA六\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\n~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~\n\nAAAAAAAAAAAA⓪一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\n~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~\n\nAAAAAAAAAAAA⓪一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBEBBGBAKLABB\n~~~~~~~~~~~~~~\n\nAAAAAAAAAAAA⓪六\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBEBBGBAKLABB\nABBFBBBBHIIJBB\n\nAAAAAAAAAAAA①一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBYBBGBAKLABB\nABBZBBBBHIIJBB\n\nAAAAAAAAAAAAA一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nA1B0BBGBAKLABB\nA2B0BBBBHIIJBB\n\nAAAAAAAAAAAAA六\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\n\n(tutorial)\n###@######\n#.-......G\n52-......#\n#\\---%D$-6\n#.L.$..#.#\n#...L###.#\n#...-....#\n##########\n\n(1)\n##########Ⅰ\n@....#....#\n#/..U--...#\n51U--%-$D-6\n#...---...#\n#.........G\n###########\n\n(2)\n##################Ⅱ\n51----------------6\n#/...L-%$%$%--....#\n@....---------....G\n#....-#######-....#\n#..-----###-----..#\n#..-----###-----..#\n#..-###-###-###-..#\n#.---#---#---#---.#\n#.---#---#---#---.#\n#.L.-.R.-.-.-.L.R.#\n###################\n\n(3)\n################Ⅲ\n#...$.....-----.#\n#...-#U%---###-.#\n#...-#-$#---#--.#\n#...-#-%-------.#\n#...L#......---.G\n#\\..-#---#####$.#\n51DU%--$%-----$$6\n#/..-#---#####$.#\n@...L#......---.#\n#...-#-%-------.#\n#...-#-$#---#--.#\n#...-#D%---###-.#\n#...$.....-----.#\n#################\n\n(4)\n#############Ⅳ\n#..L--..L--..#\n#.##$#..#$##.#\n#.#---..---#.#\n#..-%-$$-%-..#\n@..-%-..-%-..G\n#/.-%-..-%-..#\n51U---#U-----6\n##############\n\n(5)\n############Ⅴ\n#...L...R...#\n@...-...-...#\n#/..-...-...#\n51U-%---$--U#\n#...-...-...#\n#...-...-...#\n#...-...-...#\n#D--$-U-%---#\n#...L...-...#\n#...-...-...#\n#...R...-...#\n########8#G##\n\n\n(ending cutscene - clocktower base)\n#########7#@#\n#.......\\4..#\n#.......#-..#\n#..Ⓐ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######G#8###\n\n#########7#.一\n#......@/3..④\n#.......#-..#\n#..Ⓒ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######G#8###\n\n#########7#.一\n#......@/3..④\n#.......#-..#\n#..Ⓓ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######.#8###\n\n#########7#.一\n#......@/3..④\n#.......#-..#\n#..Ⓔ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######.#8###\n\n#########7#.一\n#......@/3..④\n#.......#-..#\n#..Ⓓ------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#..-------..#\n#........R..#\n#........L..#\n#######.#8###\n\n\n(ending cutscene - town)\nAAAAAAAAAAAA④一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA④一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA④一\nAAAAAAAAMNOPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA③一\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA③一\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAA③六\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABB0BBGBAKLABB\nABB0BBBBHIIJBB\n\nAAAAAAAAAAAAA一\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nA1B0BBGBAKLABB\nA2B0BBBBHIIJBB\n\nAAAAAAAAAAAAA一\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBYBBGBAKLABB\nABBZBBBBHIIJBB\n\nAAAAAAAAAAAA②六\nAAAAAAAAM3OPAA\nAAAAAAAAQRSTAA\nAAAAAAAAUVWXAA\nAACBBBDAAKLAAC\nACBBBBBDAKLACB\nCBBBBBBBDKLCBB\nABBBBBBBAKLABB\nABBEBBGBAKLABB\nABBFBBBBHIIJBB\n\n",[3,3,0,1,1,0,0,1,0,3,0,1,1,0,3,3,1,3,2,2,3,3],"background wall:0,0,0,0,0,0,0,background watersource waterwheelhorizwet:1,0,background surface:2,0,0,0,0,0,0,2,\n2,2,2,2,background surface switchon:3,background ditch gatevertopenwet:4,background surface switchoff:5,2,2,2,2,2,0,0,2,2,2,\n2,2,2,background ditch ladderdown water:6,background ladderdowntop surface:7,2,2,2,2,2,0,0,2,2,2,2,background ladderlefttop surface:8,\nbackground ladderuptop surface:9,background ditch ladderup water:10,2,8,2,2,2,2,0,0,background cratesurface surface:11,background ditch water:12,12,12,background ditch ladderleft water:13,12,background ditch playerdrowned water:14,\nbackground block ditch:15,background ditch ladderleft:16,background ditch:17,17,17,background crateditch ditch:18,0,0,2,0,0,0,0,0,12,0,0,\n0,0,0,2,0,0,9,background ditch ladderup:19,17,17,2,12,12,12,2,17,17,\nbackground ditch ladderdown:20,7,0,0,2,15,18,15,2,12,11,12,2,15,18,15,2,\n0,0,2,17,0,17,2,12,15,12,2,17,0,17,2,0,0,\n2,17,17,17,2,0,17,0,2,17,17,17,2,0,0,17,17,\n17,17,2,0,17,0,2,17,17,17,17,0,0,17,0,17,17,\n2,0,17,0,2,17,17,0,17,0,0,17,0,0,17,17,0,\n17,0,17,17,0,0,17,0,0,17,0,17,17,17,0,17,0,\n17,17,17,0,17,0,0,17,17,17,17,17,18,18,18,17,17,\n17,17,17,0,0,2,2,2,2,2,2,18,2,2,2,2,2,\n2,0,background romannumeral3 wall:21,0,0,0,0,background doorclosed goal surface:22,0,background waterwheelhorizdry:23,0,0,0,0,0,0,0,\n",10,"1627770256142.56"] ], [ `gallery game: path lines`, - ["title Path lines\nauthor Rosden Shadow [Mark Signorelli]\nhomepage rosden.itch.io\nrun_rules_on_level_Start\n\nbackground_color #423D39\n\ntext_color #FFD9FC\n\n========\nOBJECTS\n========\n\nBackground\n#423D39 #5B4846\n00000\n01010\n00100\n01010\n00000\n(\n00101\n01110\n11011\n01111\n10110)\n(\n11101\n00101\n11111\n10100\n10111)\n\n\npathline\n#E0AAF2 #FFD9FC\n00000\n01010\n00100\n01010\n00000\n\nTarget\n #847A5C #E5C17E\n.....\n.010.\n.1.1.\n.010.\n.....\n\nWall\n#A87EE5 #E0AAF2 #705C84 #42393C\n20001\n20001\n22220\n23232\n32323\n\noverwall\n #A87EE5 #E0AAF2 #705C84 #42393C\n.....\n.....\n.....\n01111\n20001\n\n\nPlayerright\n#F3FFD9 #BCE57E #A87EE5 #705C84\n.000.\n11202\n11313\n11110\n.1.1.\n\nplayerleft\n#F3FFD9 #BCE57E #A87EE5 #705C84\n.000.\n20211\n31311\n01111\n.1.1.\n\nCrate2\n#82A17C #7EE58D #4F5B46 #394239 \n20011\n20001\n22001\n32223\n.333.\n\novercrate2\n#82A17C #7EE58D #4F5B46 #394239\n.....\n.....\n.....\n.....\n.111.\n\nCrate\n#E5C17E #F2F2AA #847A5C #5B5746\n20011\n20001\n22001\n32223\n.333.\n\novercrate\n#E5C17E #F2F2AA #847A5C #5B5746\n.....\n.....\n.....\n.....\n.111.\n\ncloner\n#E5C17E #DB7F55 #B32D2D #73342E\n.100.\n.210.\n.221.\n.332.\n.....\n\nswapcrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\nswapwall\nblack\n.....\n.....\n.....\n.....\n.....\n\nthefloor\n#423D39\n00000\n00000\n00000\n00000\n00000\n\nstopper\nblack\n.....\n.....\n.....\n.....\n.....\n\nshiftright\nblack\n.....\n.....\n.....\n.....\n.....\n\nshiftup\nblack\n.....\n.....\n.....\n.....\n.....\n\nshiftdown\nblack\n.....\n.....\n.....\n.....\n.....\n\nshiftleft\nblack\n.....\n.....\n.....\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background and stopper\n# = Wall\nP = Playerright\n* = Crate\n@ = Crate and Target\nO = Target\nc=cloner\n-=thefloor\n\nfeel=overwall or overcrate or overcrate2\npushable=crate or cloner or swapcrate or crate2\nwin=crate or wall\n\nplayer=playerright or playerleft\n\nshift=shiftright or shiftup or shiftdown or shiftleft\nmainlayer=player or wall or pushable or swapwall or thefloor\n=======\nSOUNDS\n=======\n\npushable MOVE 36772507\n\n\nsfx0 52836103\nsfx1 6257504\n================\nCOLLISIONLAYERS\n================\n\nBackground\npathline\nTarget\nshiftright\nshiftleft\nshiftup\nshiftdown\nPlayer, Wall, pushable,swapwall,thefloor\nstopper\nfeel\n\n======\nRULES\n======\n\n[feel]->[]\n[shift]->[]\n[stopper]->[]\n\n[Background no mainlayer] -> [background stopper]\n\n\n\n[crate]->[crate shiftright shiftleft shiftup shiftdown]\n\nright [shiftright| ]->[shiftright | shiftright]\n\nup [shiftup| ]->[shiftup | shiftup]\n\ndown [shiftdown| ]->[shiftdown | shiftdown]\n\nleft [shiftleft| ]->[shiftleft | shiftleft]\n\n[shift]->[shift pathline]\n[pathline stopper] -> [pathline]\n\n[ > Player | pushable ] -> [ > Player | > pushable ]\n\n([ > pushable | pushable ] -> [ > pushable | > pushable ])\n\n[> player | stopper] -> [ player | stopper]\n\n[ left Playerright] -> [ left playerleft]\n[ right Playerleft] -> [ right playerright]\n\n(-------------------)\nlate [shift]->[]\nlate [stopper]->[]\nlate [pathline]->[]\nlate [crate]->[crate shiftright shiftleft shiftup shiftdown]\n\nlate right [shiftright| ]->[shiftright | shiftright]\n\nlate up [shiftup| ]->[shiftup | shiftup]\n\nlate down [shiftdown| ]->[shiftdown | shiftdown]\n\nlate left [shiftleft| ]->[shiftleft | shiftleft]\n\nlate [shift]->[shift pathline]\nlate [pathline stopper] -> [pathline]\n\n(------------------)\n\nlate up [wall| ]-> [wall|overwall]\nlate up [crate| ]-> [crate|overcrate]\nlate up [crate2| ]-> [crate2|overcrate2]\n==============\nWINCONDITIONS\n==============\n\nAll Target on win\n\n=======\nLEVELS\n=======\n\nmessage cover up all targets with blocks \n\nmessage level 1 of 4\n--------\n-######-\n##.*..##\n#......#\n#...*..#\n#..O...#\n#......#\n#......#\n#..P...#\n##....##\n-######-\n\nmessage level 2 of 4\n--------\n-######-\n##....##\n#......#\n#......#\n#.O.*..#\n#..*.O.#\n#......#\n#..P...#\n##....##\n-######-\n\nmessage level 3 of 4\n--------\n#######-\n#O....#-\n#.....#-\n#O....#-\n##...##-\n##**###-\n#..*..#-\n#..P.O#-\n##...##-\n-#####--\n\nmessage level 4 of 4\n--------\n#######-\n##...O#-\n#.....#-\n#.*...#-\n#..*..#-\n#...*.#-\n#O.p.O#-\n#.....##\n####..*#\n---#####\n(\n--------\n#######-\n##...O#-\n#.....#-\n#.*...#-\n#..*..#-\n#...*.#-\n#..p..#-\n#O....#-\n#....O#-\n#######-\n)\n\n\n\nmessage The path is now clear\n\n\n(--------\n-######-\n##....##\n#......#\n#.*....#\n#....*.#\n#.O....#\n#.OO.*.#\n#.P....#\n##....##\n-######-)\n\n", [0, 1, 0, 3, 3, 1, 0, 0, 1, 0, 3, 3, 0, 1, 1, 0, 1, 2, 3, 1, 2, 2, 3, 2, 3, 3, 2, 1, 1], "background overwall thefloor:0,background overwall wall:1,1,1,background overwall pathline shiftleft wall:2,1,1,2,\n2,background wall:3,background thefloor:4,background overwall pathline shiftup thefloor:5,background pathline shiftup wall:6,background pathline shiftup target:7,background pathline shiftup:8,background overwall pathline shiftleft shiftup target:9,\nbackground overwall pathline shiftup wall:10,6,background overcrate pathline shiftleft shiftup:11,background crate overwall pathline shiftdown shiftleft shiftright shiftup:12,background overwall pathline shiftdown wall:13,background pathline shiftdown wall:14,0,3,\nbackground:15,15,background pathline shiftleft:16,15,15,16,background pathline playerleft shiftright:17,background overwall:18,\n3,0,3,15,15,16,15,15,\n16,background pathline shiftright:19,18,3,0,3,15,15,\n16,18,3,16,19,18,3,5,\n6,8,background overcrate pathline shiftup:20,12,background overwall pathline shiftdown shiftup wall:21,background overcrate pathline shiftdown shiftup wall:22,background crate pathline shiftdown shiftleft shiftright shiftup:23,background overwall pathline shiftdown shiftright target:24,\n13,14,0,1,1,1,background overwall pathline shiftright wall:25,1,\n1,25,25,3,4,4,4,4,\n4,background pathline shiftright thefloor:26,4,4,26,26,4,4,\n", 6, "1627770350033.7073"] + ["title Path lines\nauthor Rosden Shadow [Mark Signorelli]\nhomepage rosden.itch.io\nrun_rules_on_level_Start\n\nbackground_color #423D39\n\ntext_color #FFD9FC\n\n========\nOBJECTS\n========\n\nBackground\n#423D39 #5B4846\n00000\n01010\n00100\n01010\n00000\n(\n00101\n01110\n11011\n01111\n10110)\n(\n11101\n00101\n11111\n10100\n10111)\n\n\npathline\n#E0AAF2 #FFD9FC\n00000\n01010\n00100\n01010\n00000\n\nTarget\n #847A5C #E5C17E\n.....\n.010.\n.1.1.\n.010.\n.....\n\nWall\n#A87EE5 #E0AAF2 #705C84 #42393C\n20001\n20001\n22220\n23232\n32323\n\noverwall\n #A87EE5 #E0AAF2 #705C84 #42393C\n.....\n.....\n.....\n01111\n20001\n\n\nPlayerright\n#F3FFD9 #BCE57E #A87EE5 #705C84\n.000.\n11202\n11313\n11110\n.1.1.\n\nplayerleft\n#F3FFD9 #BCE57E #A87EE5 #705C84\n.000.\n20211\n31311\n01111\n.1.1.\n\nCrate2\n#82A17C #7EE58D #4F5B46 #394239 \n20011\n20001\n22001\n32223\n.333.\n\novercrate2\n#82A17C #7EE58D #4F5B46 #394239\n.....\n.....\n.....\n.....\n.111.\n\nCrate\n#E5C17E #F2F2AA #847A5C #5B5746\n20011\n20001\n22001\n32223\n.333.\n\novercrate\n#E5C17E #F2F2AA #847A5C #5B5746\n.....\n.....\n.....\n.....\n.111.\n\ncloner\n#E5C17E #DB7F55 #B32D2D #73342E\n.100.\n.210.\n.221.\n.332.\n.....\n\nswapcrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\nswapwall\nblack\n.....\n.....\n.....\n.....\n.....\n\nthefloor\n#423D39\n00000\n00000\n00000\n00000\n00000\n\nstopper\nblack\n.....\n.....\n.....\n.....\n.....\n\nshiftright\nblack\n.....\n.....\n.....\n.....\n.....\n\nshiftup\nblack\n.....\n.....\n.....\n.....\n.....\n\nshiftdown\nblack\n.....\n.....\n.....\n.....\n.....\n\nshiftleft\nblack\n.....\n.....\n.....\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background and stopper\n# = Wall\nP = Playerright\n* = Crate\n@ = Crate and Target\nO = Target\nc=cloner\n-=thefloor\n\nfeel=overwall or overcrate or overcrate2\npushable=crate or cloner or swapcrate or crate2\nwin=crate or wall\n\nplayer=playerright or playerleft\n\nshift=shiftright or shiftup or shiftdown or shiftleft\nmainlayer=player or wall or pushable or swapwall or thefloor\n=======\nSOUNDS\n=======\n\npushable MOVE 36772507\n\n\nsfx0 52836103\nsfx1 6257504\n================\nCOLLISIONLAYERS\n================\n\nBackground\npathline\nTarget\nshiftright\nshiftleft\nshiftup\nshiftdown\nPlayer, Wall, pushable,swapwall,thefloor\nstopper\nfeel\n\n======\nRULES\n======\n\n[feel]->[]\n[shift]->[]\n[stopper]->[]\n\n[Background no mainlayer] -> [background stopper]\n\n\n\n[crate]->[crate shiftright shiftleft shiftup shiftdown]\n\nright [shiftright| ]->[shiftright | shiftright]\n\nup [shiftup| ]->[shiftup | shiftup]\n\ndown [shiftdown| ]->[shiftdown | shiftdown]\n\nleft [shiftleft| ]->[shiftleft | shiftleft]\n\n[shift]->[shift pathline]\n[pathline stopper] -> [pathline]\n\n[ > Player | pushable ] -> [ > Player | > pushable ]\n\n([ > pushable | pushable ] -> [ > pushable | > pushable ])\n\n[> player | stopper] -> [ player | stopper]\n\n[ left Playerright] -> [ left playerleft]\n[ right Playerleft] -> [ right playerright]\n\n(-------------------)\nlate [shift]->[]\nlate [stopper]->[]\nlate [pathline]->[]\nlate [crate]->[crate shiftright shiftleft shiftup shiftdown]\n\nlate right [shiftright| ]->[shiftright | shiftright]\n\nlate up [shiftup| ]->[shiftup | shiftup]\n\nlate down [shiftdown| ]->[shiftdown | shiftdown]\n\nlate left [shiftleft| ]->[shiftleft | shiftleft]\n\nlate [shift]->[shift pathline]\nlate [pathline stopper] -> [pathline]\n\n(------------------)\n\nlate up [wall| ]-> [wall|overwall]\nlate up [crate| ]-> [crate|overcrate]\nlate up [crate2| ]-> [crate2|overcrate2]\n==============\nWINCONDITIONS\n==============\n\nAll Target on win\n\n=======\nLEVELS\n=======\n\nmessage cover up all targets with blocks \n\nmessage level 1 of 4\n--------\n-######-\n##.*..##\n#......#\n#...*..#\n#..O...#\n#......#\n#......#\n#..P...#\n##....##\n-######-\n\nmessage level 2 of 4\n--------\n-######-\n##....##\n#......#\n#......#\n#.O.*..#\n#..*.O.#\n#......#\n#..P...#\n##....##\n-######-\n\nmessage level 3 of 4\n--------\n#######-\n#O....#-\n#.....#-\n#O....#-\n##...##-\n##**###-\n#..*..#-\n#..P.O#-\n##...##-\n-#####--\n\nmessage level 4 of 4\n--------\n#######-\n##...O#-\n#.....#-\n#.*...#-\n#..*..#-\n#...*.#-\n#O.p.O#-\n#.....##\n####..*#\n---#####\n(\n--------\n#######-\n##...O#-\n#.....#-\n#.*...#-\n#..*..#-\n#...*.#-\n#..p..#-\n#O....#-\n#....O#-\n#######-\n)\n\n\n\nmessage The path is now clear\n\n\n(--------\n-######-\n##....##\n#......#\n#.*....#\n#....*.#\n#.O....#\n#.OO.*.#\n#.P....#\n##....##\n-######-)\n\n",[0,1,0,3,3,1,0,0,1,0,3,3,0,1,1,0,1,2,3,1,2,2,3,2,3,3,2,1,1],"background overwall thefloor:0,background overwall wall:1,1,1,background overwall pathline shiftleft wall:2,1,1,2,\n2,background wall:3,background thefloor:4,background overwall pathline shiftup thefloor:5,background pathline shiftup wall:6,background pathline shiftup target:7,background pathline shiftup:8,background overwall pathline shiftleft shiftup target:9,\nbackground overwall pathline shiftup wall:10,6,background overcrate pathline shiftleft shiftup:11,background crate overwall pathline shiftdown shiftleft shiftright shiftup:12,background overwall pathline shiftdown wall:13,background pathline shiftdown wall:14,0,3,\nbackground:15,15,background pathline shiftleft:16,15,15,16,background pathline playerleft shiftright:17,background overwall:18,\n3,0,3,15,15,16,15,15,\n16,background pathline shiftright:19,18,3,0,3,15,15,\n16,18,3,16,19,18,3,5,\n6,8,background overcrate pathline shiftup:20,12,background overwall pathline shiftdown shiftup wall:21,background overcrate pathline shiftdown shiftup wall:22,background crate pathline shiftdown shiftleft shiftright shiftup:23,background overwall pathline shiftdown shiftright target:24,\n13,14,0,1,1,1,background overwall pathline shiftright wall:25,1,\n1,25,25,3,4,4,4,4,\n4,background pathline shiftright thefloor:26,4,4,26,26,4,4,\n",6,"1627770350033.7073"] ], [ `gallery game: interconnection`, - ["title interconnection\nauthor Rosden Shadow [Mark Signorelli]\nhomepage rosden.itch.io\n\nrun_rules_on_level_Start\n\nbackground_color #66CC52\n\ntext_color #845C7A\n========\nOBJECTS\n========\n\nBackground\n#66CC52 #7EE58D #567353\n10001\n00100\n01010\n00100\n10001\n\n\nTarget\n#E57ED5 #FFD9FC #845C7A\n.....\n.011.\n.201.\n.220.\n.....\n\nWall\n#46595B #5C8484 #394240 #1F2026\n10001\n21001\n22120\n33232\n32333\n\noverwall\n#46595B #5C8484 #394240 #1F2026\n.....\n.....\n.....\n01121\n20012\n\n\nPlayerright\n#F3FFD9 #E5C17E #845C7A #423942 #66CC52 #2DB34E\n5000.\n11202\n11313\n11110\n5151.\n\nPlayerleft\n#F3FFD9 #E5C17E #845C7A #423942 #66CC52 #2DB34E\n5000.\n20211\n31311\n01111\n5151.\n\nplayershadowleft\n#2DB34E #66CC52\n.....\n....0\n....0\n....0\n.....\n\nplayershadowtop\n#2DB34E #66CC52\n.....\n.....\n.....\n.....\n.....\n\nplayershadowtopleft\n#2DB34E #66CC52\n.....\n.....\n.....\n.....\n.....\n\nCratey\n#9B7CA1 #423942 #E57ED5 #845C7A\n13220\n11000\n11100\n11000\n.110.\n\nCratex\n#9B7CA1 #423942 #E57ED5 #845C7A\n13220\n11000\n11100\n11000\n.110.\n\ncrateshadow\n#2DB34E #66CC52 #567353\n...01\n...00\n....0\n....0\n.....\n\ncrateshadowtop\n#2DB34E #66CC52 #567353 (#66CC52)(#394239 #567353 )\n.....\n.....\n.....\n....0\n...01\n\nCratetop\n#E57ED5 #845C7A #9B7CA1 #423942 #FFD9FC\n.....\n.....\n..0..\n.140.\n11040\n\nleftshift\nblack\n.....\n.....\n.....\n.....\n.....\n\nrightshift\nblack\n.....\n.....\n.....\n.....\n.....\n\nupshift\nblack\n.....\n.....\n.....\n.....\n.....\n\ndownshift\nblack\n.....\n.....\n.....\n.....\n.....\n\nleftshiftx\nblack\n.....\n.....\n..0..\n.....\n.....\n\nrightshiftx\nblack\n.....\n.....\n..0..\n.....\n.....\n\nupshiftx\nblack\n.....\n.....\n..0..\n.....\n.....\n\ndownshiftx\nblack\n.....\n.....\n..0..\n.....\n.....\n\nnoshift\nblack\n.....\n.....\n.....\n.....\n.....\n\nchan\nblack\n.....\n.....\n.....\n.....\n.....\n\nthefloor\n#66CC52\n00000\n00000\n00000\n00000\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Playerleft\n* = Cratey\n@ = Cratey and Target\nO = Target\nc=chan\n-=thefloor\n\nplayer=Playerright or playerleft\nfeel=cratetop or overwall\n\ncrate= cratey or cratex\n\nblocker=wall or crate\n\nshadow= crateshadow or crateshadowtop or playershadowleft or playershadowtop or playershadowtopleft\n\nshift =leftshiftx or rightshiftx or upshiftx or downshiftx or leftshift or rightshift or upshift or downshift\nshiftx=leftshiftx or rightshiftx or upshiftx or downshiftx\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\nsfx0 10685903\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncrateshadow\ncrateshadowtop\nplayershadowleft\nplayershadowtop\nplayershadowtopleft\nthefloor\nTarget\nPlayer, Wall, Crate\nfeel\nshift,noshift\nchan\n\n\n======\nRULES\n======\n[cratetop]->[]\n[shadow]->[]\n\n[chan]->[up chan]\n\n[chan]->[]\n\n[cratex]->[cratey]\n[ > Player | Cratey ] -> [ > Player | > Cratey]\n\n\n[ left Playerright] -> [ left playerleft]\n[ right Playerleft] -> [ right playerright]\n\n[left cratey] -> [left cratex left leftshiftx]\n[right cratey] -> [right cratex right rightshiftx]\n[up cratey] -> [up cratex up upshiftx]\n[down cratey] -> [down cratex down downshiftx]\n \n [parallel cratex | blocker] ->[parallel cratex noshift |blocker]\n\n[cratex Target] -> [cratex Target] sfx0\n\n[leftshiftx]->[leftshift]\n[rightshiftx]->[rightshift]\n[upshiftx]->[upshift]\n[downshiftx]->[downshift]\n\n\n[leftshift|no leftshift] ->[leftshift|leftshift]\n[upshift|no upshift] ->[upshift|upshift]\n[rightshift|no rightshift] ->[rightshift|rightshift]\n[downshift|no downshift] ->[downshift|downshift]\n\n[cratey |leftshift]->[left cratex | leftshift]\n[cratey |rightshift]->[right cratex | rightshift]\n[cratey |upshift]->[up cratex | upshift]\n[cratey |downshift]->[down cratex | downshift]\n\n\nlate up [crate| ]->[crate| cratetop]\nlate left [crate| ]->[crate| crateshadow]\nlate up [crateshadow| ]->[crateshadow| crateshadowtop]\n\nlate up [player| ]->[player| playershadowtop]\nlate left [player| ]->[player| playershadowleft]\nlate up [playershadowleft| ]->[playershadowleft| playershadowtopleft]\n\nlate up [wall| ]-> [wall|overwall]\n\nlate [leftshift] ->[]\nlate [rightshift] ->[]\nlate [upshift] -> []\nlate [downshift] -> []\n\n[]->again\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage cover up all the buttons\nmessage level 1 of 3\n--------\n########\n#c.....#\n#......#\n#.p..*.#\n#......#\n########\n#.....##\n#O...*.#\n#..#...#\n#.*....#\n#..O...#\n########\n\nmessage level 2 of 3\n--------\n########\n#c...###\n#....#O#\n###p.#.#\n###..#.#\n#...*#.#\n#.*..#.#\n#..**#.#\n#..*.#.#\n#.#.##.#\n#..#*..#\n########\n\nmessage level 3 of 3\n--------\n########\n####O###\n###...##\n##....c#\n#...#..#\n#.*..*.#\n#...p..#\n#.*..*.#\n#.....##\n##...###\n###O####\n########\n\nmessage interconnectivity is key\n", [0, 3, 3, 3, 3, 2, 1, 1, 1, 0, 1, 1, 2, 3, 3, 0, 3, 2], "background overwall thefloor:0,background overwall wall:1,1,1,1,1,1,1,\n1,1,1,1,background wall:2,0,2,background:3,\n3,3,background overwall:4,2,3,background target:5,3,3,\n4,2,0,2,3,3,3,4,\n2,3,3,3,background crateshadowtop:6,background crateshadow overwall:7,2,0,\n2,3,background playershadowtopleft:8,background crateshadowtop playershadowleft:9,7,2,3,background crateshadowtop overwall:10,\nbackground crateshadow wall:11,background cratetop:12,background cratey overwall target:13,2,0,2,3,background playershadowtop:14,\nbackground cratetop playerright:15,background cratey overwall:16,2,3,12,background cratey:17,3,4,\n2,0,2,3,3,3,4,2,\n3,3,3,3,4,2,0,2,\n3,3,3,4,1,2,3,3,\n3,4,2,0,1,1,1,1,\n1,1,1,1,1,1,1,2,\n", 2, "1627770378083.7458"] + ["title interconnection\nauthor Rosden Shadow [Mark Signorelli]\nhomepage rosden.itch.io\n\nrun_rules_on_level_Start\n\nbackground_color #66CC52\n\ntext_color #845C7A\n========\nOBJECTS\n========\n\nBackground\n#66CC52 #7EE58D #567353\n10001\n00100\n01010\n00100\n10001\n\n\nTarget\n#E57ED5 #FFD9FC #845C7A\n.....\n.011.\n.201.\n.220.\n.....\n\nWall\n#46595B #5C8484 #394240 #1F2026\n10001\n21001\n22120\n33232\n32333\n\noverwall\n#46595B #5C8484 #394240 #1F2026\n.....\n.....\n.....\n01121\n20012\n\n\nPlayerright\n#F3FFD9 #E5C17E #845C7A #423942 #66CC52 #2DB34E\n5000.\n11202\n11313\n11110\n5151.\n\nPlayerleft\n#F3FFD9 #E5C17E #845C7A #423942 #66CC52 #2DB34E\n5000.\n20211\n31311\n01111\n5151.\n\nplayershadowleft\n#2DB34E #66CC52\n.....\n....0\n....0\n....0\n.....\n\nplayershadowtop\n#2DB34E #66CC52\n.....\n.....\n.....\n.....\n.....\n\nplayershadowtopleft\n#2DB34E #66CC52\n.....\n.....\n.....\n.....\n.....\n\nCratey\n#9B7CA1 #423942 #E57ED5 #845C7A\n13220\n11000\n11100\n11000\n.110.\n\nCratex\n#9B7CA1 #423942 #E57ED5 #845C7A\n13220\n11000\n11100\n11000\n.110.\n\ncrateshadow\n#2DB34E #66CC52 #567353\n...01\n...00\n....0\n....0\n.....\n\ncrateshadowtop\n#2DB34E #66CC52 #567353 (#66CC52)(#394239 #567353 )\n.....\n.....\n.....\n....0\n...01\n\nCratetop\n#E57ED5 #845C7A #9B7CA1 #423942 #FFD9FC\n.....\n.....\n..0..\n.140.\n11040\n\nleftshift\nblack\n.....\n.....\n.....\n.....\n.....\n\nrightshift\nblack\n.....\n.....\n.....\n.....\n.....\n\nupshift\nblack\n.....\n.....\n.....\n.....\n.....\n\ndownshift\nblack\n.....\n.....\n.....\n.....\n.....\n\nleftshiftx\nblack\n.....\n.....\n..0..\n.....\n.....\n\nrightshiftx\nblack\n.....\n.....\n..0..\n.....\n.....\n\nupshiftx\nblack\n.....\n.....\n..0..\n.....\n.....\n\ndownshiftx\nblack\n.....\n.....\n..0..\n.....\n.....\n\nnoshift\nblack\n.....\n.....\n.....\n.....\n.....\n\nchan\nblack\n.....\n.....\n.....\n.....\n.....\n\nthefloor\n#66CC52\n00000\n00000\n00000\n00000\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Playerleft\n* = Cratey\n@ = Cratey and Target\nO = Target\nc=chan\n-=thefloor\n\nplayer=Playerright or playerleft\nfeel=cratetop or overwall\n\ncrate= cratey or cratex\n\nblocker=wall or crate\n\nshadow= crateshadow or crateshadowtop or playershadowleft or playershadowtop or playershadowtopleft\n\nshift =leftshiftx or rightshiftx or upshiftx or downshiftx or leftshift or rightshift or upshift or downshift\nshiftx=leftshiftx or rightshiftx or upshiftx or downshiftx\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\nsfx0 10685903\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncrateshadow\ncrateshadowtop\nplayershadowleft\nplayershadowtop\nplayershadowtopleft\nthefloor\nTarget\nPlayer, Wall, Crate\nfeel\nshift,noshift\nchan\n\n\n======\nRULES\n======\n[cratetop]->[]\n[shadow]->[]\n\n[chan]->[up chan]\n\n[chan]->[]\n\n[cratex]->[cratey]\n[ > Player | Cratey ] -> [ > Player | > Cratey]\n\n\n[ left Playerright] -> [ left playerleft]\n[ right Playerleft] -> [ right playerright]\n\n[left cratey] -> [left cratex left leftshiftx]\n[right cratey] -> [right cratex right rightshiftx]\n[up cratey] -> [up cratex up upshiftx]\n[down cratey] -> [down cratex down downshiftx]\n \n [parallel cratex | blocker] ->[parallel cratex noshift |blocker]\n\n[cratex Target] -> [cratex Target] sfx0\n\n[leftshiftx]->[leftshift]\n[rightshiftx]->[rightshift]\n[upshiftx]->[upshift]\n[downshiftx]->[downshift]\n\n\n[leftshift|no leftshift] ->[leftshift|leftshift]\n[upshift|no upshift] ->[upshift|upshift]\n[rightshift|no rightshift] ->[rightshift|rightshift]\n[downshift|no downshift] ->[downshift|downshift]\n\n[cratey |leftshift]->[left cratex | leftshift]\n[cratey |rightshift]->[right cratex | rightshift]\n[cratey |upshift]->[up cratex | upshift]\n[cratey |downshift]->[down cratex | downshift]\n\n\nlate up [crate| ]->[crate| cratetop]\nlate left [crate| ]->[crate| crateshadow]\nlate up [crateshadow| ]->[crateshadow| crateshadowtop]\n\nlate up [player| ]->[player| playershadowtop]\nlate left [player| ]->[player| playershadowleft]\nlate up [playershadowleft| ]->[playershadowleft| playershadowtopleft]\n\nlate up [wall| ]-> [wall|overwall]\n\nlate [leftshift] ->[]\nlate [rightshift] ->[]\nlate [upshift] -> []\nlate [downshift] -> []\n\n[]->again\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage cover up all the buttons\nmessage level 1 of 3\n--------\n########\n#c.....#\n#......#\n#.p..*.#\n#......#\n########\n#.....##\n#O...*.#\n#..#...#\n#.*....#\n#..O...#\n########\n\nmessage level 2 of 3\n--------\n########\n#c...###\n#....#O#\n###p.#.#\n###..#.#\n#...*#.#\n#.*..#.#\n#..**#.#\n#..*.#.#\n#.#.##.#\n#..#*..#\n########\n\nmessage level 3 of 3\n--------\n########\n####O###\n###...##\n##....c#\n#...#..#\n#.*..*.#\n#...p..#\n#.*..*.#\n#.....##\n##...###\n###O####\n########\n\nmessage interconnectivity is key\n",[0,3,3,3,3,2,1,1,1,0,1,1,2,3,3,0,3,2],"background overwall thefloor:0,background overwall wall:1,1,1,1,1,1,1,\n1,1,1,1,background wall:2,0,2,background:3,\n3,3,background overwall:4,2,3,background target:5,3,3,\n4,2,0,2,3,3,3,4,\n2,3,3,3,background crateshadowtop:6,background crateshadow overwall:7,2,0,\n2,3,background playershadowtopleft:8,background crateshadowtop playershadowleft:9,7,2,3,background crateshadowtop overwall:10,\nbackground crateshadow wall:11,background cratetop:12,background cratey overwall target:13,2,0,2,3,background playershadowtop:14,\nbackground cratetop playerright:15,background cratey overwall:16,2,3,12,background cratey:17,3,4,\n2,0,2,3,3,3,4,2,\n3,3,3,3,4,2,0,2,\n3,3,3,4,1,2,3,3,\n3,4,2,0,1,1,1,1,\n1,1,1,1,1,1,1,2,\n",2,"1627770378083.7458"] ], [ `gallery game: the art of cloning`, - ["title the art of cloning\nauthor Rosden Shadow [Mark Signorelli]\nhomepage rosden.itch.io\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\n#581AB2 #000000 #291E4C\n11111\n12121\n11211\n12121\n11111\n\n\nTarget\n#FF263B #911A45\n.....\n.0.0.\n..0..\n.0.0.\n.....\n(\n.0.0.\n.101.\n.010.\n.1.1.\n.....\n)\n(.....\n.0.0.\n..0..\n.0.0.\n.....)\n\n\n\n\n\nWall\n#1AB258 #0E664E #CBFF7F\n02222\n10002\n10002\n10002\n11110\n\nPlayer\n#4CB5FF #26FFEA #263BFF\n.000.\n.202.\n01110\n.111.\n.2.2.\n\nCrate\n#FFB37F #993D74 #FFFFFF\n02222\n10002\n10002\n10002\n11110\n\n\n\nCratepos\nred\n00000\n0...0\n0...0\n0...0\n00000\n\n\nCrateneg\nblue\n00000\n0...0\n0...0\n0...0\n00000\n\nfloor\nblack\n.....\n.....\n.....\n.....\n.....\n\nfloor0\nblack\n.....\n.....\n.....\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n+ = cratepos\n- = crateneg\n@ = Crate and Target\nt = Target\n\nObject = Crate or Player or Wall\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nfloor,floor0\nTarget\nPlayer, Wall, Crate,Cratepos,Crateneg\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ player | > Crate ]\n\n[ > crate | crate] -> [ > crate | > crate ]\n\n[ > Player | Cratepos ] -> [ > Player | > Cratepos ]\n\n[ > Player | Crateneg ] -> [ > Player | > Crateneg ]\n\nlate [Floor no Object] -> [no Floor Crate]\n\n[crate no Floor] -> [crate floor]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage the goal is to cover-up all the red crosses\n\nmessage level 1 of 1\n#########\n#ttttttt#\n#t.....t#\n#t.....t#\n#t..*.pt#\n#t.....t#\n#t.....t#\n#ttttttt#\n#########\n\nmessage Good work!\n\n", [1, 1, 1, 0, 1, 2, 2, 1, 1, 2, 1, 2, 2, 3, 3, 3, 2, 3, 3, 3, 3, 3], "background wall:0,0,0,0,0,0,0,0,0,\n0,background target:1,1,1,1,1,1,1,0,\n0,1,background:2,2,background crate floor:3,3,2,1,0,\n0,1,2,2,3,3,background player:4,1,0,\n0,1,2,2,3,3,background crate:5,1,0,\n0,1,2,2,2,3,3,1,0,\n0,1,2,2,2,3,3,1,0,\n0,1,1,1,1,1,background crate target:6,1,0,\n0,0,0,0,0,0,0,0,0,\n", 2, "1627770402138.347"] + ["title the art of cloning\nauthor Rosden Shadow [Mark Signorelli]\nhomepage rosden.itch.io\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\n#581AB2 #000000 #291E4C\n11111\n12121\n11211\n12121\n11111\n\n\nTarget\n#FF263B #911A45\n.....\n.0.0.\n..0..\n.0.0.\n.....\n(\n.0.0.\n.101.\n.010.\n.1.1.\n.....\n)\n(.....\n.0.0.\n..0..\n.0.0.\n.....)\n\n\n\n\n\nWall\n#1AB258 #0E664E #CBFF7F\n02222\n10002\n10002\n10002\n11110\n\nPlayer\n#4CB5FF #26FFEA #263BFF\n.000.\n.202.\n01110\n.111.\n.2.2.\n\nCrate\n#FFB37F #993D74 #FFFFFF\n02222\n10002\n10002\n10002\n11110\n\n\n\nCratepos\nred\n00000\n0...0\n0...0\n0...0\n00000\n\n\nCrateneg\nblue\n00000\n0...0\n0...0\n0...0\n00000\n\nfloor\nblack\n.....\n.....\n.....\n.....\n.....\n\nfloor0\nblack\n.....\n.....\n.....\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n+ = cratepos\n- = crateneg\n@ = Crate and Target\nt = Target\n\nObject = Crate or Player or Wall\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nfloor,floor0\nTarget\nPlayer, Wall, Crate,Cratepos,Crateneg\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ player | > Crate ]\n\n[ > crate | crate] -> [ > crate | > crate ]\n\n[ > Player | Cratepos ] -> [ > Player | > Cratepos ]\n\n[ > Player | Crateneg ] -> [ > Player | > Crateneg ]\n\nlate [Floor no Object] -> [no Floor Crate]\n\n[crate no Floor] -> [crate floor]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage the goal is to cover-up all the red crosses\n\nmessage level 1 of 1\n#########\n#ttttttt#\n#t.....t#\n#t.....t#\n#t..*.pt#\n#t.....t#\n#t.....t#\n#ttttttt#\n#########\n\nmessage Good work!\n\n",[1,1,1,0,1,2,2,1,1,2,1,2,2,3,3,3,2,3,3,3,3,3],"background wall:0,0,0,0,0,0,0,0,0,\n0,background target:1,1,1,1,1,1,1,0,\n0,1,background:2,2,background crate floor:3,3,2,1,0,\n0,1,2,2,3,3,background player:4,1,0,\n0,1,2,2,3,3,background crate:5,1,0,\n0,1,2,2,2,3,3,1,0,\n0,1,2,2,2,3,3,1,0,\n0,1,1,1,1,1,background crate target:6,1,0,\n0,0,0,0,0,0,0,0,0,\n",2,"1627770402138.347"] ], [ `galley game: easy enigma`, - ["title Easy Enigma\n\nrun_rules_on_level_start\nrealtime_interval 0.2\n\nnorepeat_action\n\nbackground_color black\n\nflickscreen 42x19\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nfakeground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\nfakeWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\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\ncapa あ\nblack transparent\n01100\n10010\n11110\n10010\n10010\n\ncapb い\nblack transparent\n11100\n10010\n11100\n10010\n11100\n\ncapc う\nblack transparent\n01110\n10000\n10000\n10000\n01110\n\ncapd え\nblack transparent\n11100\n10010\n10010\n10010\n11100\n\ncape 1\nblack transparent\n11110\n10000\n11100\n10000\n11110\n\ncapf お\nblack transparent\n11110\n10000\n11100\n10000\n10000\n\ncapg か\nblack transparent\n01110\n10000\n10110\n10010\n01100\n\ncaph き\nblack transparent\n10010\n10010\n11110\n10010\n10010\n\ncapi く\nblack transparent\n01110\n00100\n00100\n00100\n01110\n\ncapj け\nblack transparent\n11110\n00100\n00100\n10100\n01000\n\ncapk こ\nblack transparent\n10010\n10010\n11100\n10010\n10010\n\ncapl そ\nblack transparent\n10000\n10000\n10000\n10000\n11110\n\ncapm し\nblack transparent\n01010\n10101\n10101\n10101\n10101\n\ncapn ゐ\nblack transparent\n10010\n11010\n10110\n10010\n10010\n\ncapo る\nblack transparent\n01100\n10010\n10010\n10010\n01100\n\ncapp ら\nblack transparent\n11100\n10010\n11100\n10000\n10000\n\ncapq み\nblack transparent\n01100\n10010\n10010\n10110\n01110\n\ncapr 5\nblack transparent\n11100\n10010\n11100\n10010\n10010\n\ncaps 2\nblack transparent\n01110\n10000\n01100\n00010\n11100\n\ncapt わ\nblack transparent\n01110\n00100\n00100\n00100\n00100\n\ncapu ゆ\nblack transparent\n10010\n10010\n10010\n10010\n01100\n\ncapv を\nblack transparent\n10010\n10010\n10100\n11000\n10000\n\ncapw む\nblack transparent\n10001\n10101\n10101\n10101\n01010\n\ncapx 3\nblack transparent\n10010\n10010\n01100\n10010\n10010\n\ncapy ふ\nblack transparent\n10010\n10010\n01110\n00010\n11100\n\ncapz 4\nblack transparent\n11110\n00010\n00100\n01000\n11110\n\nlhash 6\nblack transparent\n01010\n11111\n01010\n11111\n01010\n\nrhash 0\nblack transparent\n01010\n11111\n01010\n11111\n01010\n\n\na\nblack transparent\n00000\n01110\n10010\n10010\n01110\n\nb\nblack transparent\n10000\n10000\n11100\n10010\n01100\n\nc\nblack transparent\n00000\n01110\n10000\n10000\n01110\n\nd\nblack transparent\n00010\n00010\n01110\n10010\n01100\n\ne\nblack transparent\n01100\n10010\n11100\n10000\n01100\n\nf\nblack transparent\n00000\n00110\n01000\n11100\n01000\n\ng\nblack transparent\n01100\n10010\n01110\n00010\n01100\n\nh\nblack transparent\n10000\n10000\n11100\n10010\n10010\n\ni\nblack transparent\n01000\n00000\n11000\n01000\n11100\n\nj\nblack transparent\n00100\n00000\n00100\n10100\n01000\n\nk\nblack transparent\n10000\n10010\n11100\n10010\n10010\n\nl\nblack transparent\n10000\n10000\n10000\n10010\n01100\n\nm\nblack transparent\n00000\n01010\n10101\n10101\n10101\n\nn\nblack transparent\n00000\n01100\n10010\n10010\n10010\n\no\nblack transparent\n00000\n01100\n10010\n10010\n01100\n\np\nblack transparent\n00000\n01100\n10010\n11100\n10000\n\nq\nblack transparent\n00000\n01100\n10010\n01110\n00010\n\nr\nblack transparent\n00000\n01110\n10000\n10000\n10000\n\ns\nblack transparent\n01110\n10000\n01100\n00010\n11100\n\nt\nblack transparent\n10000\n11000\n10000\n10010\n01100\n\nu\nblack transparent\n00000\n10010\n10010\n10010\n01100\n\nv\nblack transparent\n00000\n10010\n10100\n11000\n10000\n\nw\nblack transparent\n00000\n10001\n10101\n10101\n01010\n\nx\nblack transparent\n00000\n10010\n01100\n01100\n10010\n\ny\nblack transparent\n10010\n10010\n01110\n00010\n11100\n\nz\nblack transparent\n00000\n11110\n00100\n01000\n11110\n\nglitch1\ntransparent\n\nglitch2\ntransparent\n\nwhite\nwhite\n\nblack\nblack\n\nmark\ntransparent\n\nmark2\ntransparent\n\nglitchright1\n#af1239 #2167ee\n00000\n11111\n...1.\n00000\n.....\n\nglitchright2\n#3fa257 #1878ff #ae2629\n.....\n012..\n...20\n22222\n11111\n\nglitchright3\n#c0ffee #3de312 #087a55\n00000\n..00.\n1111.\n....1\n22222\n\n\n\nglitchright4\ntransparent\n\nglitchright5\n#e451b8 #cbff12\n.0...\n0.000\n.00..\n11111\n.....\n\nglitchright6\n#12baef #55efcb #f16743\n.....\n22222\n000.0\n.....\n.1111\n\nroulette1\ntransparent\n\nroulette2\ntransparent\n\nroulette3\ntransparent\n\nroulette4\ntransparent\n\nroulette5\ntransparent\n\nroulette6\ntransparent\n\nglitch3\ntransparent\n\nglitch4\ntransparent\n\nglitch6\ntransparent\n\nback1\n black\n.00.0\n.00.0\n.00.0\n.00.0\n.00.0\n\nback2\n black\n00.0.\n00.0.\n00.0.\n00.0.\n00.0.\n\nback3\n black\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n\nback4\n black\n..0..\n..0..\n..0..\n..0..\n..0..\n\ntimer9\ntransparent\n\ntimer8\ntransparent\n\ntimer7\ntransparent\n\ntimer6\ntransparent\n\ntimer5\ntransparent\n\ntimer4\ntransparent\n\ntimer3\ntransparent\n\ntimer2\ntransparent\n\ntimer1\ntransparent\n\ntimer0\ntransparent\n\npressaction\ntransparent\n\ncover\nblack\n\nplay1\ntransparent\n\nplay2\ntransparent\n\nglitch5\ntransparent\n\ntextgrass\nwhite black\n11111\n11111\n11111\n11011\n11111\n\ntextwall\nwhite black\n11111\n10101\n11011\n10101\n11111\n\ntextsecret\nwhite black\n10001\n11101\n11001\n11111\n11011\n\ntextplayer\nwhite black\n11011\n11011\n11011\n11111\n11011\n\ntextcrate\nwhite black\n11111\n10001\n01111\n01111\n10001\n\ntexttarget\nwhite black\n10001\n01101\n10001\n11101\n10011\n\nplay3\ntransparent\n\nleftbracket ろ\nblack transparent\n01100\n01000\n01000\n01000\n01100\n\nrightbracket ゑ\nblack transparent\n00110\n00010\n00010\n00010\n00110\n\n\ncolon\nblack transparent\n00000\n01000\n00000\n01000\n00000\n\narrow り\nblack transparent\n00100\n00010\n11101\n00010\n00100\n \nvertica や\nblack transparent\n00100\n00100\n00100\n00100\n00100\n\nequals ひ\nblack transparent\n00000\n11110\n00000\n11110\n00000\n\ncaret れ\nblack transparent\n00000\n01000\n00100\n01000\n00000\n\ncomma よ\nblack transparent\n00000\n00000\n00000\n00100\n01000\n\ntmark\ntransparent\n\npmark\ntransparent\n\ncmark\ntransparent\n\nplay4\ntransparent\n\nnott\ntransparent\n\nnota\ntransparent\n\nnotr\ntransparent\n\nnotg\ntransparent\n\nnote\ntransparent\n\nplay5\ntransparent\n\nblackwall に\nblack\n\nsgoal の\ntransparent\n\ntgoal さ\ntransparent\n\nagoal た\ntransparent\n\nrgoal な\ntransparent\n\nggoal は\ntransparent\n\nmgoal ぬ\ntransparent\n\negoal ま\ntransparent\n\nending \"\ntransparent\n\nsf2 |\ntransparent\n\nfakeTarget =\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\ngreen\n#10ae1c\n\npurple\n#a055c0\n\ngrey\n#888888\n\nred\n#c11d16\n\nsfa め\ntransparent\n\nsfb へ\ntransparent\n\n\n=======\nLEGEND\n=======\n\n7 = timer2 and cover\n8 = timer5 and cover\n9 = timer9 and cover\n. = Background\n, = fakeground\n+ = Wall and fakeground\n? = player and fakeground\n- = Crate and fakeground\n~ = target and fakeground\n} = Crate and Target and fakeground\nglitchright = glitchright1 or glitchright2 or glitchright3 or glitchright4 or glitchright5 or glitchright6\nroulette = roulette1 or roulette2 or roulette3 or roulette4 or roulette5 or roulette6\nback = back1 or back2 or back3 or back4\ntimer = timer0 or timer1 or timer2 or timer3 or timer4 or timer5 or timer6 or timer7 or timer8 or timer9\n$ = glitch1\n% = glitch2\n& = glitch3\n* = glitch4\n^ = mark\n` = pressaction\n\\ = cover and player\n/ = play1\n> = play2\n{ = play3\n< = glitch5\n; = glitch6\n[ = textsecret and fakeground\n] = play4 and mark\ntext = textplayer or textgrass or textwall or textcrate or texttarget\n' = play5\nせ = p and pmark\nす = t and tmark\nと = c and cmark\n# = colon\nxmark = pmark or tmark or cmark\nitem = player or crate or wall\ncapxx = capq or capw or cape or capr or capt or capy or capu or capi or capo or capp or capa or caps or capd or capf or capg or caph or capj or capk or capl or capz or capx or capc or capv or capv or capb or capn or capm\nletter = 1 or 2 or 3 or 4 or 5 or q or w or e or r or t or y or u or i or o or p or a or s or d or f or g or h or j or k or l or z or x or c or v or b or n or m or leftbracket or rightbracket or vertica or arrow or equals or comma or caret or capq or capw or cape or capr or capt or capy or capu or capi or capo or capp or capa or caps or capd or capf or capg or caph or capj or capk or capl or capz or capx or capc or capv or capv or capb or capn or capm or colon\n: = fakewall\nxgoal = sgoal or tgoal or agoal or rgoal or ggoal or mgoal or egoal\ncols = grey or purple or green or red\n=======\nSOUNDS\n=======\n\nSFX7 24019108\nSFX8 5183708\nSFX9 32607708\nSFX0 51652308\nSFX1 11432507\nSFX2 10961308\n================\nCOLLISIONLAYERS\n================\n\nBackground\nfakeground, \nblack\nTarget\nsfa\nsfb\nfaketarget\nxgoal\nwhite\nback\nfakewall\nPlayer, Wall, Crate, blackwall\nred, green, purple, grey\nletter\n6, rhash\nending\nglitch1, glitch2, glitch3, glitch4, glitch5, glitch6, play1, play2, play3, play4, play5\nglitchright\nroulette\ntimer\nmark\nmark2\npressaction\ntmark, \ncmark, pmark\nnott, nota,notr,notg,note\ntext, textsecret\ncover\nsf2\n\n======\nRULES\n======\n\n[faketarget] -> [faketarget fakeground]\n\n[sf2] -> SFX2\n[action player][pressaction] -> [player][]\n\n\n[player cover no timer] -> [player cover mark2]\n[player cover mark2][pressaction] -> [player cover ][pressaction]\n\n\nleft [player cover mark2][lhash|] -> [player cover mark2][lhash|lhash]\nright [player cover mark2][rhash|] -> [player cover mark2][rhash|rhash]\n[player cover mark2] -> [player cover]\n\n[timer0] -> []\n[timer1] -> [timer0]\n[timer2] -> [timer1]\n[timer3] -> [timer2]\n[timer4] -> [timer3]\n[timer5] -> [timer4]\n[timer6] -> [timer5]\n[timer7] -> [timer6]\n[timer8] -> [timer7]\n[timer9] -> [timer8]\n\n\n\nlate [letter no white] -> [letter white]\n\n[6 no white] -> [6 white]\n[0 no white] -> [0 white]\n\nup [glitch1][letter ] -> [glitch1][random letter mark]\nleft [glitch1][letter |...| no mark] -> [glitch1][letter mark | ... |letter]\ndown [glitch1][letter |...| no mark] -> [glitch1][letter mark| ... |letter]\n\n\n\n[glitch2][glitchright no roulette] -> [glitch2][glitchright random roulette]\n[glitch2][roulette6 glitchright] -> [glitch2][]\n[glitch2][roulette] -> [glitch2][]\ndown [glitch2][no glitchright|mark] -> [glitch2][random glitchright|mark]\nright [glitch2][glitchright|] -> [glitch2][glitchright|glitchright]\n\n\nleft [glitch3][letter no mark| no letter] -> [glitch3][letter mark|letter ]\nleft [glitch3][letter no mark| mark] -> [glitch3][letter mark|letter mark]\nup [glitch3][letter no mark| no letter] -> [glitch3][letter mark|letter ]\nup [glitch3][letter no mark| mark] -> [glitch3][letter mark|letter mark]\n[glitch3][letter mark] -> [glitch3][letter]\n\n[glitch5][mark] -> [glitch5][]\nright [glitch5][3 no mark | no 3 | ] -> [glitch5][3|3 mark | 3 mark]\n\n[glitch4][letter no mark] -> [glitch4][letter random back mark]\n[glitch4][mark] -> [glitch4][] SFX0\n\n[play1][moving player][wall no roulette] -> [play1][moving player][wall random roulette]\n[play1][moving player][wall roulette6 mark2] -> [play1][moving player][]\n[play1][moving player][wall roulette6 mark] -> [play1][moving player][wall mark2]\n[play1][moving player][wall roulette6] -> [play1][moving player][wall mark]\n[play1][moving player][roulette] -> [play1][moving player][]\n\n\n[play2][no fakeground no black] -> [play2][black]\n[play2][no fakeground] -> [play2][fakeground ]\n[play2][moving player][black] -> [play2][moving player][moving black]\n[play2][moving player][fakeground] -> [play2][moving player][moving fakeground]\n[play2][> fakeground no black no mark| black] -> [play2][> fakeground | mark]\n[play2][moving player] -> [play2][stationary player]\n[play2][> black | wall] -> [play2][> black | > wall]\n[play2][moving wall | wall] -> [play2][moving wall | moving wall]\n[play2][> wall | player] -> [play2][> wall | > player]\n[play2][> wall | crate] -> [play2][> wall | > crate]\n[play2][> player | wall] -> [play2][> player | > wall]\n[play2][> crate | wall] -> [play2][> crate | > wall]\n[play2][> crate | player] -> [play2][> crate | > player]\n[play2][> player | crate] -> [play2][> player | > crate]\n\nlate [play3][text] -> [play3][]\nlate [play3][crate] -> [play3][ textcrate crate]\nlate [play3][player] -> [play3 ][textplayer player]\n[play3][> player | letter no c no g] -> [play3][stationary player | letter]\n \nlate [play3][target no crate no player] -> [play3][ texttarget target]\nlate [play3][fakeground no crate no wall no player no target no textsecret] -> [play3 ][textgrass fakeground]\nlate [play3][wall] -> [play3 ][textwall wall]\n\nright [play4 mark][pmark | letter no comma no vertica] -> [play4 mark][pmark | pmark letter]\nright [play4 mark][tmark | letter] -> [play4 mark][tmark | tmark letter]\nright [play4 mark][cmark | letter no rightbracket no comma] -> [play4 mark][cmark | cmark letter]\n[play4 mark] -> [play4]\n\n[play4][t tmark no nott no nota no notr no notg no note] -> [play4][t tmark nott]\n[play4][a tmark no nott no nota no notr no notg no note] -> [play4][a tmark nota]\n[play4][r tmark no nott no nota no notr no notg no note] -> [play4][r tmark notr]\n[play4][g tmark no nott no nota no notr no notg no note] -> [play4][g tmark notg]\n[play4][e tmark no nott no nota no notr no notg no note] -> [play4][e tmark note]\n\nlate [play4][white no letter] -> [play4][]\n[play4][moving player][pmark letter] -> [play4][moving player][moving pmark moving letter]\n\n[play4][> pmark > letter| stationary letter no cmark no tmark no pmark] -> [play4][stationary pmark stationary letter | letter]\n+ [play4][> cmark > letter| stationary letter no tmark no cmark] -> [play4][stationary cmark stationary letter | letter]\n+ [play4][stationary letter stationary pmark | letter pmark] -> [play4][stationary letter stationary pmark |stationary letter stationary pmark]\n+ [play4][stationary letter stationary cmark | letter cmark] -> [play4][stationary letter stationary cmark |stationary letter stationary cmark]\n\n[play4][> letter > pmark | letter cmark] -> [play4][> letter > pmark |> letter > cmark]\n+ [play4][> letter > cmark | letter cmark] -> [play4][> letter > cmark |> letter > cmark]\n+ [play4][moving letter moving pmark | letter pmark] -> [play4][moving letter moving pmark |moving letter moving pmark]\n+ [play4][moving letter moving cmark | letter cmark] -> [play4][moving letter moving cmark |moving letter moving cmark]\n\n\n[sfa] -> SFX1\n[sfb] -> SFX7\n[sfb] -> SFX9\n\n\n[> letter | letter tmark no pmark no cmark] -> [> letter | tmark]\nlate [tmark no letter nott] -> [tmark t]\nlate [tmark no letter nota] -> [tmark a]\nlate [tmark no letter notg] -> [tmark g]\nlate [tmark no letter note] -> [tmark e]\nlate [tmark no letter notr] -> [tmark r]\n\nlate [play4][letter no white] -> [play4][letter white]\n\n\n[play4][> pmark > letter| stationary letter] -> [play4][stationary pmark stationary letter | letter]\n+ [play4][> cmark > letter| stationary letter] -> [play4][stationary cmark stationary letter | letter]\n+ [play4][stationary letter stationary pmark | letter pmark] -> [play4][stationary letter stationary pmark |stationary letter stationary pmark]\n+ [play4][stationary letter stationary cmark | letter cmark] -> [play4][stationary letter stationary cmark |stationary letter stationary cmark]\n\n\n[cover moving player] -> [cover stationary player]\n\n[> player | crate] -> [> player | > crate] SFX1\n\n\n[play3][> crate | letter] -> [play3][stationary crate |stationary letter]\n[play3][> player | stationary crate] -> [play3][stationary player |stationary crate]\n\n[play5][> player | wall] -> [play5][> player | > wall]\n\n[play5][> wall | letter] -> [play5][stationary wall | letter]\n[play5][> wall | blackwall] -> [play5][stationary wall | blackwall]\n[play5][> wall | lhash] -> [play5][stationary wall | lhash]\n[play5][> wall | rhash] -> [play5][stationary wall | rhash]\n[play5][> wall | wall] -> [play5][stationary wall | wall]\n[play5][> wall | crate] -> [play5][stationary wall | crate]\n\n[play5][> player | letter] -> [play5][> player | > letter]\nlate [play5][white no letter no 6 no 0] -> [play5][]\n\n[play5][> letter | wall] -> [play5][stationary letter | wall]\n[play5][> letter | letter] -> [play5][stationary letter | letter]\n[play5][> letter | blackwall] -> [play5][stationary letter | blackwall]\n[play5][> letter | lhash] -> [play5][stationary letter | lhash]\n[play5][> letter | rhash] -> [play5][stationary letter | rhash]\n[play5][> letter | crate] -> [play5][stationary letter | crate]\n[play5][> player | stationary letter] -> [play5][stationary player | stationary letter]\n[play5][> player | stationary wall] -> [play5][stationary player | stationary wall]\n\n[play5] -> [play5 mark2]\n[play5 mark2][sgoal no s] -> [play5][sgoal]\n[play5 mark2][tgoal no t] -> [play5][tgoal]\n[play5 mark2][agoal no a] -> [play5][agoal]\n[play5 mark2][rgoal no r] -> [play5][rgoal]\n[play5 mark2][ggoal no g] -> [play5][ggoal]\n[play5 mark2][mgoal no m] -> [play5][mgoal]\n[play5 mark2][egoal no e] -> [play5][egoal]\n\n[action player][play5 no mark2] -> [player][play5]\n[play5][action player][pressaction] -> [play5][player][]\n[play5 mark2][pressaction] -> [play5][pressaction]\n\n\n\nleft [play5 mark2][lhash| no target] -> [play5 mark2][lhash|lhash]\n[lhash | target] -> [lhash | target crate]\n[lhash crate] -> [lhash]\nright [play5 mark2][rhash|] -> [play5 mark2][rhash|rhash]\n\n[glitch1][mark] -> [glitch1][]\n\n[crate target][player ending][play5] -> [crate target][player ending][]\n\n[glitch6][item no roulette] -> [glitch6 ][ item random roulette]\n[glitch6][item roulette6] -> [glitch6][random item]\n[glitch6][roulette] -> [glitch6][]\n\n\n\nlate [fakeground][player no fakeground] -> [fakeground][player fakeground]\n\nlate [play4][xmark] -> [play4][xmark green]\nlate [play4][equals] -> [play4][equals grey]\nlate [play4][caret] -> [play4][caret red]\nlate [play4][arrow] -> [play4][arrow red]\nlate [play4][capxx] -> [play4][capxx purple]\nlate right [play4][white a no grey no green no red | ... | green ] -> [play4][white a purple | ... | green ]\nlate right [play4][white l no grey no green no red| ... | green ] -> [play4][white l purple | ... | green ]\nlate right [play4][white o no grey no green no red| ... | green ] -> [play4][white o purple | ... | green ]\nlate right [play4][white n no grey no green no red| ... | green ] -> [play4][white n purple | ... | green ]\nlate [play4][letter no rightbracket no leftbracket no vertica no purple no grey no red] -> [play4][letter green]\n\nlate [green no letter] -> []\nlate [red no letter] -> []\nlate [grey no letter] -> []\nlate [purple no letter] -> []\n==============\nWINCONDITIONS\n==============\nno timer\nall target on crate\nno pressaction\nall notg on cmark\nno play5\n\n\n\n=======\nLEVELS\n=======\n\n\n\n(..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++++,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n.........................................;)\n\n\n\n\n\n\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............,,,,,,,,,,,,,...............\n..............,+++++++++++,...............\n..............,+,?-,,,,~,+,...............\n..............,+++++++++++,...............\n..............,,,,,,,,,,,,,...............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n...you.can.only.push.one.box.at.a.time....\n..........................................\n..........................................\n..........................................\n...........press.3.to.continue............\n..........................................\n..........................................\n..........................................\n.........................................`\n.........................................\\\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++++,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..dont.forget.to.press.5.if.you.get.stuck.\n..........................................\n..........................................\n..........................................\n...........press.3.to.continue............\n..........................................\n..........................................\n.........................................`\n.........................................`\n.........................................\\\n\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,dont7forget.to.press.5.if.you.get.stuck,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,press.3.to.continue,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,????,,,................\n................,???,,???,................\n................,?+~,,~,?,................\n................,?,,--,,?,................\n................,????????,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+,,,,,,+,................\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time...|\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time...8\n...you.can.only.push.one.box.at.a.time....\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............,,,,,,,,,,,,,...............\n..............,+++++++++++,...............\n..dont.forget.to?pr-ss.5~if.you.get.stuck.\n..............,+++++++++++,...............\n..............,,,,,,,,,,,,,...............\n..........................................\n...........press.3.to.continue............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n++++,,++++++++,,++++++++,,++++++++,,++++++\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n++,,,,,,++++,,,,,,++++,,,,,,++++,,,,,,++++\n,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+\n,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n++++,,++++++++,,++++++++,,++++++++,,++++++\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n++,,,,,,++++,,,,,,++++,,,,,,++++,,,,,,++++\n,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+\n,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,9-\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n++++,,++++++++,,++++++++,,++++++++,,++++++\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n++,,,,,,++++,,,,,,++++,,,,,,++++,,,,,,++++\n,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+\n,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,へ-\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n++++,,++++++++,,++++++++,,++++++++,,++++++\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n++,,,,,,++++,,,,,,++++,,,,,,++++,,,,,,++++\n,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+\n,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n\n..........................................\n..........................................\n...............1ゐかくゐ1.155る5...............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.0..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n.........................................`\n.........................................\\\n\n&.........................................\n..........................................\n...............1ゐかくゐ1.155る5.........7.....\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.0..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n..........................................\n..........................................\n\n(..........................................\n..........................................\n...............1ngine.1rror...............\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++++,................\n................,,,,,,,,,,................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n..........................................\n.........................................>)\n\n\n\n\n\n..........................................\n..........................................\n..........................................\n..............2?+,~-}.....................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++++,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n\n%.....................................7...\n.....................^....................\n...............1ゐかくゐ1.155る5...............\n..........................................\n..........................................\n...........^..............................\n..........................................\n..........................................\n..............6.2tart.game.6..............\n.....................^....................\n..........................................\n..........................................\narrow.keys.to.move........................\n...^......................................\n3.to.action...............................\n..................................^.......\n4.to.undo..5.to.restart...................\n..........................................\n..............^...........................\n\nect.canmove.has.been.defined.but.not.assig\n..........................................\nule.matches.object.types.that.cant.overlap\n..........................................\n.name.crtae.referred.to.in.a.rule.does.not\n..........................................\no.indicate.in.which.direction.a.rule.appli\n..........................................\nch.on.the.left.must.have.a.corresponding.p\n..........................................\n.was.looking.for.color.for.object.playerle\n..........................................\ned.an.object.v.but.this.is.a.keyword.dont.\n................\\`````````````............\n...........press.3.to.continue............\n.........................................<\n.arrow.here.consider.reading.up.about.rule\n..........................................\nrors.detected.during.compilation.the.game.\n\n..........................................\n..........................................\n...............1ゐかくゐ1.155る5...............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.0..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undoよ.5.to.restart...................\n.........................................`\n.........................................\\\n\n*....................め....................\n..........................................\n...............1ゐかくゐ1.155る5..........8....\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.0..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n..........................................\n..........................................\n\n\n\n\n\n..........................................\n..........................................\nらrintin~.level.-ontents#..................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++[+,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n.........................................{\n\n$.....................................7...\n.....................^....................\n...............1ゐかくゐ1.155る5...............\n..........................................\n..........................................\n...........^..............................\n..........................................\n..........................................\n..............6.2tart.game.6..............\n.....................^....................\n..........................................\n..........................................\narrow.keys.to.move........................\n...^......................................\n3.to.action...............................\n..................................^.......\n4.to.undo..5.to.restart...................\n..........................................\n..............^...........................\n\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\n.........................................7\n\nひひひひひひひひひひひひひひひひ..........................\nうるそそく2くるゐそあふ152...........................\nひひひひひひひひひひひひひひひひ..........................\nbackground................................\nとrateよ.せlayer.............................\nすarget....................................\n..........................................\nひひひひひひ....................................\n5ゆそ12.....................................\nひひひひひひ....................................\nろれ.せlayerやとrateゑりろれ.せlayerやれ.とrateゑ.......\n..........................................\nひひひひひひひひひひひひひひ............................\nむくゐうるゐえくわくるゐ2.............................\nひひひひひひひひひひひひひひ............................\n..........................................\nall.すarget.on.とrate.......................\n.........................................\\\nひひひひひひひひひ................................]\n\n\n\n......................................\"............................................'\n......................................\".............................................\n......................................\".................1ngine.1rror................\n......................................\".............................................\n......................................\".............................................\n......................................\".............................................\n................,,,,,,,,,,............\".............................................\n................,++++++++,............\".............................................\n................,+?,~,-,+,............\"................6.のさたなさ.はたぬま.0...............\n................,++++++++,............\".............................................\n................,,,,,,,,,,............\".............................................\n......................................\".............................................\n......................................\"..arrow.keys.to.move.........................\n......................................\".............................................\n......................................\"..3.to.action................................\n......................................\".............................................\n......................................\"..4.to.undo..5.to.restart....................\n......................................\"...にににににににににににににににににににににににににににににににににににににににににに\n......................................\"...にににににににににににににににににににににににににににににににににににににににににに\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n(\n\n\n\n..........................................\n..........................................\n...............1ngine.1rror...............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.6..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n..........................................\n..........................................\n", ["tick", "tick", "tick", 3, 3, "tick", 3, "tick", "tick", 3, "tick", 3, "tick", "tick", 4, "tick", "tick", "tick", "tick", 3, "tick", 2, "tick", 3, "tick", 3, 0, "tick", 1, 2, "tick", "tick", "tick", 0, "tick", "undo", "tick", "undo", "tick", "undo", "tick", 0, "tick", 1, 2, "tick", 3, 2, "tick", "tick", 3, "tick", 3, 0, "tick", 1, "tick", "tick", "tick", 0, "tick", 0, 3, "tick", 3, "tick", 3, 2, "tick", 3, 3, 2, "tick", 1, "tick", 1, "tick", "tick", 1, "tick", 0, "tick", 0, 3, "tick", 2, 1, "tick", 1, "tick", 1, 2, 3, "tick", "tick", "tick", 4, "tick", "tick", "tick", "tick", 4, "tick", "tick", "tick", "tick", "tick", 2, "tick", 2, "tick", 2, "tick", 2, "tick", "tick", "tick", "tick"], "background: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,\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,\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,\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,\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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background fakeground:1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,background fakeground player:2,\n2,2,2,0,0,0,0,0,0,0,0,0,1,1,2,background fakeground wall:3,1,1,1,1,1,2,0,0,0,0,0,0,0,0,0,1,1,1,background fakeground target:4,1,2,2,1,1,2,0,\n0,0,0,0,0,0,0,0,1,1,1,1,1,2,background crate fakeground:5,1,1,2,0,0,0,0,0,0,0,0,0,1,1,1,1,1,2,5,1,1,2,0,0,0,0,0,\n0,0,0,0,1,1,1,4,1,2,2,1,1,2,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,2,1,1,2,0,0,0,0,0,0,0,0,0,\n1,1,1,1,1,1,2,2,2,2,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,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,\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,\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,\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,\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,\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,\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,\n", 0, "1627770452561.3662"] + ["title Easy Enigma\n\nrun_rules_on_level_start\nrealtime_interval 0.2\n\nnorepeat_action\n\nbackground_color black\n\nflickscreen 42x19\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nfakeground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\nfakeWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\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\ncapa あ\nblack transparent\n01100\n10010\n11110\n10010\n10010\n\ncapb い\nblack transparent\n11100\n10010\n11100\n10010\n11100\n\ncapc う\nblack transparent\n01110\n10000\n10000\n10000\n01110\n\ncapd え\nblack transparent\n11100\n10010\n10010\n10010\n11100\n\ncape 1\nblack transparent\n11110\n10000\n11100\n10000\n11110\n\ncapf お\nblack transparent\n11110\n10000\n11100\n10000\n10000\n\ncapg か\nblack transparent\n01110\n10000\n10110\n10010\n01100\n\ncaph き\nblack transparent\n10010\n10010\n11110\n10010\n10010\n\ncapi く\nblack transparent\n01110\n00100\n00100\n00100\n01110\n\ncapj け\nblack transparent\n11110\n00100\n00100\n10100\n01000\n\ncapk こ\nblack transparent\n10010\n10010\n11100\n10010\n10010\n\ncapl そ\nblack transparent\n10000\n10000\n10000\n10000\n11110\n\ncapm し\nblack transparent\n01010\n10101\n10101\n10101\n10101\n\ncapn ゐ\nblack transparent\n10010\n11010\n10110\n10010\n10010\n\ncapo る\nblack transparent\n01100\n10010\n10010\n10010\n01100\n\ncapp ら\nblack transparent\n11100\n10010\n11100\n10000\n10000\n\ncapq み\nblack transparent\n01100\n10010\n10010\n10110\n01110\n\ncapr 5\nblack transparent\n11100\n10010\n11100\n10010\n10010\n\ncaps 2\nblack transparent\n01110\n10000\n01100\n00010\n11100\n\ncapt わ\nblack transparent\n01110\n00100\n00100\n00100\n00100\n\ncapu ゆ\nblack transparent\n10010\n10010\n10010\n10010\n01100\n\ncapv を\nblack transparent\n10010\n10010\n10100\n11000\n10000\n\ncapw む\nblack transparent\n10001\n10101\n10101\n10101\n01010\n\ncapx 3\nblack transparent\n10010\n10010\n01100\n10010\n10010\n\ncapy ふ\nblack transparent\n10010\n10010\n01110\n00010\n11100\n\ncapz 4\nblack transparent\n11110\n00010\n00100\n01000\n11110\n\nlhash 6\nblack transparent\n01010\n11111\n01010\n11111\n01010\n\nrhash 0\nblack transparent\n01010\n11111\n01010\n11111\n01010\n\n\na\nblack transparent\n00000\n01110\n10010\n10010\n01110\n\nb\nblack transparent\n10000\n10000\n11100\n10010\n01100\n\nc\nblack transparent\n00000\n01110\n10000\n10000\n01110\n\nd\nblack transparent\n00010\n00010\n01110\n10010\n01100\n\ne\nblack transparent\n01100\n10010\n11100\n10000\n01100\n\nf\nblack transparent\n00000\n00110\n01000\n11100\n01000\n\ng\nblack transparent\n01100\n10010\n01110\n00010\n01100\n\nh\nblack transparent\n10000\n10000\n11100\n10010\n10010\n\ni\nblack transparent\n01000\n00000\n11000\n01000\n11100\n\nj\nblack transparent\n00100\n00000\n00100\n10100\n01000\n\nk\nblack transparent\n10000\n10010\n11100\n10010\n10010\n\nl\nblack transparent\n10000\n10000\n10000\n10010\n01100\n\nm\nblack transparent\n00000\n01010\n10101\n10101\n10101\n\nn\nblack transparent\n00000\n01100\n10010\n10010\n10010\n\no\nblack transparent\n00000\n01100\n10010\n10010\n01100\n\np\nblack transparent\n00000\n01100\n10010\n11100\n10000\n\nq\nblack transparent\n00000\n01100\n10010\n01110\n00010\n\nr\nblack transparent\n00000\n01110\n10000\n10000\n10000\n\ns\nblack transparent\n01110\n10000\n01100\n00010\n11100\n\nt\nblack transparent\n10000\n11000\n10000\n10010\n01100\n\nu\nblack transparent\n00000\n10010\n10010\n10010\n01100\n\nv\nblack transparent\n00000\n10010\n10100\n11000\n10000\n\nw\nblack transparent\n00000\n10001\n10101\n10101\n01010\n\nx\nblack transparent\n00000\n10010\n01100\n01100\n10010\n\ny\nblack transparent\n10010\n10010\n01110\n00010\n11100\n\nz\nblack transparent\n00000\n11110\n00100\n01000\n11110\n\nglitch1\ntransparent\n\nglitch2\ntransparent\n\nwhite\nwhite\n\nblack\nblack\n\nmark\ntransparent\n\nmark2\ntransparent\n\nglitchright1\n#af1239 #2167ee\n00000\n11111\n...1.\n00000\n.....\n\nglitchright2\n#3fa257 #1878ff #ae2629\n.....\n012..\n...20\n22222\n11111\n\nglitchright3\n#c0ffee #3de312 #087a55\n00000\n..00.\n1111.\n....1\n22222\n\n\n\nglitchright4\ntransparent\n\nglitchright5\n#e451b8 #cbff12\n.0...\n0.000\n.00..\n11111\n.....\n\nglitchright6\n#12baef #55efcb #f16743\n.....\n22222\n000.0\n.....\n.1111\n\nroulette1\ntransparent\n\nroulette2\ntransparent\n\nroulette3\ntransparent\n\nroulette4\ntransparent\n\nroulette5\ntransparent\n\nroulette6\ntransparent\n\nglitch3\ntransparent\n\nglitch4\ntransparent\n\nglitch6\ntransparent\n\nback1\n black\n.00.0\n.00.0\n.00.0\n.00.0\n.00.0\n\nback2\n black\n00.0.\n00.0.\n00.0.\n00.0.\n00.0.\n\nback3\n black\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n\nback4\n black\n..0..\n..0..\n..0..\n..0..\n..0..\n\ntimer9\ntransparent\n\ntimer8\ntransparent\n\ntimer7\ntransparent\n\ntimer6\ntransparent\n\ntimer5\ntransparent\n\ntimer4\ntransparent\n\ntimer3\ntransparent\n\ntimer2\ntransparent\n\ntimer1\ntransparent\n\ntimer0\ntransparent\n\npressaction\ntransparent\n\ncover\nblack\n\nplay1\ntransparent\n\nplay2\ntransparent\n\nglitch5\ntransparent\n\ntextgrass\nwhite black\n11111\n11111\n11111\n11011\n11111\n\ntextwall\nwhite black\n11111\n10101\n11011\n10101\n11111\n\ntextsecret\nwhite black\n10001\n11101\n11001\n11111\n11011\n\ntextplayer\nwhite black\n11011\n11011\n11011\n11111\n11011\n\ntextcrate\nwhite black\n11111\n10001\n01111\n01111\n10001\n\ntexttarget\nwhite black\n10001\n01101\n10001\n11101\n10011\n\nplay3\ntransparent\n\nleftbracket ろ\nblack transparent\n01100\n01000\n01000\n01000\n01100\n\nrightbracket ゑ\nblack transparent\n00110\n00010\n00010\n00010\n00110\n\n\ncolon\nblack transparent\n00000\n01000\n00000\n01000\n00000\n\narrow り\nblack transparent\n00100\n00010\n11101\n00010\n00100\n \nvertica や\nblack transparent\n00100\n00100\n00100\n00100\n00100\n\nequals ひ\nblack transparent\n00000\n11110\n00000\n11110\n00000\n\ncaret れ\nblack transparent\n00000\n01000\n00100\n01000\n00000\n\ncomma よ\nblack transparent\n00000\n00000\n00000\n00100\n01000\n\ntmark\ntransparent\n\npmark\ntransparent\n\ncmark\ntransparent\n\nplay4\ntransparent\n\nnott\ntransparent\n\nnota\ntransparent\n\nnotr\ntransparent\n\nnotg\ntransparent\n\nnote\ntransparent\n\nplay5\ntransparent\n\nblackwall に\nblack\n\nsgoal の\ntransparent\n\ntgoal さ\ntransparent\n\nagoal た\ntransparent\n\nrgoal な\ntransparent\n\nggoal は\ntransparent\n\nmgoal ぬ\ntransparent\n\negoal ま\ntransparent\n\nending \"\ntransparent\n\nsf2 |\ntransparent\n\nfakeTarget =\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\ngreen\n#10ae1c\n\npurple\n#a055c0\n\ngrey\n#888888\n\nred\n#c11d16\n\nsfa め\ntransparent\n\nsfb へ\ntransparent\n\n\n=======\nLEGEND\n=======\n\n7 = timer2 and cover\n8 = timer5 and cover\n9 = timer9 and cover\n. = Background\n, = fakeground\n+ = Wall and fakeground\n? = player and fakeground\n- = Crate and fakeground\n~ = target and fakeground\n} = Crate and Target and fakeground\nglitchright = glitchright1 or glitchright2 or glitchright3 or glitchright4 or glitchright5 or glitchright6\nroulette = roulette1 or roulette2 or roulette3 or roulette4 or roulette5 or roulette6\nback = back1 or back2 or back3 or back4\ntimer = timer0 or timer1 or timer2 or timer3 or timer4 or timer5 or timer6 or timer7 or timer8 or timer9\n$ = glitch1\n% = glitch2\n& = glitch3\n* = glitch4\n^ = mark\n` = pressaction\n\\ = cover and player\n/ = play1\n> = play2\n{ = play3\n< = glitch5\n; = glitch6\n[ = textsecret and fakeground\n] = play4 and mark\ntext = textplayer or textgrass or textwall or textcrate or texttarget\n' = play5\nせ = p and pmark\nす = t and tmark\nと = c and cmark\n# = colon\nxmark = pmark or tmark or cmark\nitem = player or crate or wall\ncapxx = capq or capw or cape or capr or capt or capy or capu or capi or capo or capp or capa or caps or capd or capf or capg or caph or capj or capk or capl or capz or capx or capc or capv or capv or capb or capn or capm\nletter = 1 or 2 or 3 or 4 or 5 or q or w or e or r or t or y or u or i or o or p or a or s or d or f or g or h or j or k or l or z or x or c or v or b or n or m or leftbracket or rightbracket or vertica or arrow or equals or comma or caret or capq or capw or cape or capr or capt or capy or capu or capi or capo or capp or capa or caps or capd or capf or capg or caph or capj or capk or capl or capz or capx or capc or capv or capv or capb or capn or capm or colon\n: = fakewall\nxgoal = sgoal or tgoal or agoal or rgoal or ggoal or mgoal or egoal\ncols = grey or purple or green or red\n=======\nSOUNDS\n=======\n\nSFX7 24019108\nSFX8 5183708\nSFX9 32607708\nSFX0 51652308\nSFX1 11432507\nSFX2 10961308\n================\nCOLLISIONLAYERS\n================\n\nBackground\nfakeground, \nblack\nTarget\nsfa\nsfb\nfaketarget\nxgoal\nwhite\nback\nfakewall\nPlayer, Wall, Crate, blackwall\nred, green, purple, grey\nletter\n6, rhash\nending\nglitch1, glitch2, glitch3, glitch4, glitch5, glitch6, play1, play2, play3, play4, play5\nglitchright\nroulette\ntimer\nmark\nmark2\npressaction\ntmark, \ncmark, pmark\nnott, nota,notr,notg,note\ntext, textsecret\ncover\nsf2\n\n======\nRULES\n======\n\n[faketarget] -> [faketarget fakeground]\n\n[sf2] -> SFX2\n[action player][pressaction] -> [player][]\n\n\n[player cover no timer] -> [player cover mark2]\n[player cover mark2][pressaction] -> [player cover ][pressaction]\n\n\nleft [player cover mark2][lhash|] -> [player cover mark2][lhash|lhash]\nright [player cover mark2][rhash|] -> [player cover mark2][rhash|rhash]\n[player cover mark2] -> [player cover]\n\n[timer0] -> []\n[timer1] -> [timer0]\n[timer2] -> [timer1]\n[timer3] -> [timer2]\n[timer4] -> [timer3]\n[timer5] -> [timer4]\n[timer6] -> [timer5]\n[timer7] -> [timer6]\n[timer8] -> [timer7]\n[timer9] -> [timer8]\n\n\n\nlate [letter no white] -> [letter white]\n\n[6 no white] -> [6 white]\n[0 no white] -> [0 white]\n\nup [glitch1][letter ] -> [glitch1][random letter mark]\nleft [glitch1][letter |...| no mark] -> [glitch1][letter mark | ... |letter]\ndown [glitch1][letter |...| no mark] -> [glitch1][letter mark| ... |letter]\n\n\n\n[glitch2][glitchright no roulette] -> [glitch2][glitchright random roulette]\n[glitch2][roulette6 glitchright] -> [glitch2][]\n[glitch2][roulette] -> [glitch2][]\ndown [glitch2][no glitchright|mark] -> [glitch2][random glitchright|mark]\nright [glitch2][glitchright|] -> [glitch2][glitchright|glitchright]\n\n\nleft [glitch3][letter no mark| no letter] -> [glitch3][letter mark|letter ]\nleft [glitch3][letter no mark| mark] -> [glitch3][letter mark|letter mark]\nup [glitch3][letter no mark| no letter] -> [glitch3][letter mark|letter ]\nup [glitch3][letter no mark| mark] -> [glitch3][letter mark|letter mark]\n[glitch3][letter mark] -> [glitch3][letter]\n\n[glitch5][mark] -> [glitch5][]\nright [glitch5][3 no mark | no 3 | ] -> [glitch5][3|3 mark | 3 mark]\n\n[glitch4][letter no mark] -> [glitch4][letter random back mark]\n[glitch4][mark] -> [glitch4][] SFX0\n\n[play1][moving player][wall no roulette] -> [play1][moving player][wall random roulette]\n[play1][moving player][wall roulette6 mark2] -> [play1][moving player][]\n[play1][moving player][wall roulette6 mark] -> [play1][moving player][wall mark2]\n[play1][moving player][wall roulette6] -> [play1][moving player][wall mark]\n[play1][moving player][roulette] -> [play1][moving player][]\n\n\n[play2][no fakeground no black] -> [play2][black]\n[play2][no fakeground] -> [play2][fakeground ]\n[play2][moving player][black] -> [play2][moving player][moving black]\n[play2][moving player][fakeground] -> [play2][moving player][moving fakeground]\n[play2][> fakeground no black no mark| black] -> [play2][> fakeground | mark]\n[play2][moving player] -> [play2][stationary player]\n[play2][> black | wall] -> [play2][> black | > wall]\n[play2][moving wall | wall] -> [play2][moving wall | moving wall]\n[play2][> wall | player] -> [play2][> wall | > player]\n[play2][> wall | crate] -> [play2][> wall | > crate]\n[play2][> player | wall] -> [play2][> player | > wall]\n[play2][> crate | wall] -> [play2][> crate | > wall]\n[play2][> crate | player] -> [play2][> crate | > player]\n[play2][> player | crate] -> [play2][> player | > crate]\n\nlate [play3][text] -> [play3][]\nlate [play3][crate] -> [play3][ textcrate crate]\nlate [play3][player] -> [play3 ][textplayer player]\n[play3][> player | letter no c no g] -> [play3][stationary player | letter]\n \nlate [play3][target no crate no player] -> [play3][ texttarget target]\nlate [play3][fakeground no crate no wall no player no target no textsecret] -> [play3 ][textgrass fakeground]\nlate [play3][wall] -> [play3 ][textwall wall]\n\nright [play4 mark][pmark | letter no comma no vertica] -> [play4 mark][pmark | pmark letter]\nright [play4 mark][tmark | letter] -> [play4 mark][tmark | tmark letter]\nright [play4 mark][cmark | letter no rightbracket no comma] -> [play4 mark][cmark | cmark letter]\n[play4 mark] -> [play4]\n\n[play4][t tmark no nott no nota no notr no notg no note] -> [play4][t tmark nott]\n[play4][a tmark no nott no nota no notr no notg no note] -> [play4][a tmark nota]\n[play4][r tmark no nott no nota no notr no notg no note] -> [play4][r tmark notr]\n[play4][g tmark no nott no nota no notr no notg no note] -> [play4][g tmark notg]\n[play4][e tmark no nott no nota no notr no notg no note] -> [play4][e tmark note]\n\nlate [play4][white no letter] -> [play4][]\n[play4][moving player][pmark letter] -> [play4][moving player][moving pmark moving letter]\n\n[play4][> pmark > letter| stationary letter no cmark no tmark no pmark] -> [play4][stationary pmark stationary letter | letter]\n+ [play4][> cmark > letter| stationary letter no tmark no cmark] -> [play4][stationary cmark stationary letter | letter]\n+ [play4][stationary letter stationary pmark | letter pmark] -> [play4][stationary letter stationary pmark |stationary letter stationary pmark]\n+ [play4][stationary letter stationary cmark | letter cmark] -> [play4][stationary letter stationary cmark |stationary letter stationary cmark]\n\n[play4][> letter > pmark | letter cmark] -> [play4][> letter > pmark |> letter > cmark]\n+ [play4][> letter > cmark | letter cmark] -> [play4][> letter > cmark |> letter > cmark]\n+ [play4][moving letter moving pmark | letter pmark] -> [play4][moving letter moving pmark |moving letter moving pmark]\n+ [play4][moving letter moving cmark | letter cmark] -> [play4][moving letter moving cmark |moving letter moving cmark]\n\n\n[sfa] -> SFX1\n[sfb] -> SFX7\n[sfb] -> SFX9\n\n\n[> letter | letter tmark no pmark no cmark] -> [> letter | tmark]\nlate [tmark no letter nott] -> [tmark t]\nlate [tmark no letter nota] -> [tmark a]\nlate [tmark no letter notg] -> [tmark g]\nlate [tmark no letter note] -> [tmark e]\nlate [tmark no letter notr] -> [tmark r]\n\nlate [play4][letter no white] -> [play4][letter white]\n\n\n[play4][> pmark > letter| stationary letter] -> [play4][stationary pmark stationary letter | letter]\n+ [play4][> cmark > letter| stationary letter] -> [play4][stationary cmark stationary letter | letter]\n+ [play4][stationary letter stationary pmark | letter pmark] -> [play4][stationary letter stationary pmark |stationary letter stationary pmark]\n+ [play4][stationary letter stationary cmark | letter cmark] -> [play4][stationary letter stationary cmark |stationary letter stationary cmark]\n\n\n[cover moving player] -> [cover stationary player]\n\n[> player | crate] -> [> player | > crate] SFX1\n\n\n[play3][> crate | letter] -> [play3][stationary crate |stationary letter]\n[play3][> player | stationary crate] -> [play3][stationary player |stationary crate]\n\n[play5][> player | wall] -> [play5][> player | > wall]\n\n[play5][> wall | letter] -> [play5][stationary wall | letter]\n[play5][> wall | blackwall] -> [play5][stationary wall | blackwall]\n[play5][> wall | lhash] -> [play5][stationary wall | lhash]\n[play5][> wall | rhash] -> [play5][stationary wall | rhash]\n[play5][> wall | wall] -> [play5][stationary wall | wall]\n[play5][> wall | crate] -> [play5][stationary wall | crate]\n\n[play5][> player | letter] -> [play5][> player | > letter]\nlate [play5][white no letter no 6 no 0] -> [play5][]\n\n[play5][> letter | wall] -> [play5][stationary letter | wall]\n[play5][> letter | letter] -> [play5][stationary letter | letter]\n[play5][> letter | blackwall] -> [play5][stationary letter | blackwall]\n[play5][> letter | lhash] -> [play5][stationary letter | lhash]\n[play5][> letter | rhash] -> [play5][stationary letter | rhash]\n[play5][> letter | crate] -> [play5][stationary letter | crate]\n[play5][> player | stationary letter] -> [play5][stationary player | stationary letter]\n[play5][> player | stationary wall] -> [play5][stationary player | stationary wall]\n\n[play5] -> [play5 mark2]\n[play5 mark2][sgoal no s] -> [play5][sgoal]\n[play5 mark2][tgoal no t] -> [play5][tgoal]\n[play5 mark2][agoal no a] -> [play5][agoal]\n[play5 mark2][rgoal no r] -> [play5][rgoal]\n[play5 mark2][ggoal no g] -> [play5][ggoal]\n[play5 mark2][mgoal no m] -> [play5][mgoal]\n[play5 mark2][egoal no e] -> [play5][egoal]\n\n[action player][play5 no mark2] -> [player][play5]\n[play5][action player][pressaction] -> [play5][player][]\n[play5 mark2][pressaction] -> [play5][pressaction]\n\n\n\nleft [play5 mark2][lhash| no target] -> [play5 mark2][lhash|lhash]\n[lhash | target] -> [lhash | target crate]\n[lhash crate] -> [lhash]\nright [play5 mark2][rhash|] -> [play5 mark2][rhash|rhash]\n\n[glitch1][mark] -> [glitch1][]\n\n[crate target][player ending][play5] -> [crate target][player ending][]\n\n[glitch6][item no roulette] -> [glitch6 ][ item random roulette]\n[glitch6][item roulette6] -> [glitch6][random item]\n[glitch6][roulette] -> [glitch6][]\n\n\n\nlate [fakeground][player no fakeground] -> [fakeground][player fakeground]\n\nlate [play4][xmark] -> [play4][xmark green]\nlate [play4][equals] -> [play4][equals grey]\nlate [play4][caret] -> [play4][caret red]\nlate [play4][arrow] -> [play4][arrow red]\nlate [play4][capxx] -> [play4][capxx purple]\nlate right [play4][white a no grey no green no red | ... | green ] -> [play4][white a purple | ... | green ]\nlate right [play4][white l no grey no green no red| ... | green ] -> [play4][white l purple | ... | green ]\nlate right [play4][white o no grey no green no red| ... | green ] -> [play4][white o purple | ... | green ]\nlate right [play4][white n no grey no green no red| ... | green ] -> [play4][white n purple | ... | green ]\nlate [play4][letter no rightbracket no leftbracket no vertica no purple no grey no red] -> [play4][letter green]\n\nlate [green no letter] -> []\nlate [red no letter] -> []\nlate [grey no letter] -> []\nlate [purple no letter] -> []\n==============\nWINCONDITIONS\n==============\nno timer\nall target on crate\nno pressaction\nall notg on cmark\nno play5\n\n\n\n=======\nLEVELS\n=======\n\n\n\n(..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++++,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n.........................................;)\n\n\n\n\n\n\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............,,,,,,,,,,,,,...............\n..............,+++++++++++,...............\n..............,+,?-,,,,~,+,...............\n..............,+++++++++++,...............\n..............,,,,,,,,,,,,,...............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n...you.can.only.push.one.box.at.a.time....\n..........................................\n..........................................\n..........................................\n...........press.3.to.continue............\n..........................................\n..........................................\n..........................................\n.........................................`\n.........................................\\\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++++,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..dont.forget.to.press.5.if.you.get.stuck.\n..........................................\n..........................................\n..........................................\n...........press.3.to.continue............\n..........................................\n..........................................\n.........................................`\n.........................................`\n.........................................\\\n\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,dont7forget.to.press.5.if.you.get.stuck,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,press.3.to.continue,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,????,,,................\n................,???,,???,................\n................,?+~,,~,?,................\n................,?,,--,,?,................\n................,????????,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+,,,,,,+,................\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time...|\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time....\n...you.can.only.push.one.box.at.a.time...8\n...you.can.only.push.one.box.at.a.time....\n\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............,,,,,,,,,,,,,...............\n..............,+++++++++++,...............\n..dont.forget.to?pr-ss.5~if.you.get.stuck.\n..............,+++++++++++,...............\n..............,,,,,,,,,,,,,...............\n..........................................\n...........press.3.to.continue............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n++++,,++++++++,,++++++++,,++++++++,,++++++\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n++,,,,,,++++,,,,,,++++,,,,,,++++,,,,,,++++\n,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+\n,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n++++,,++++++++,,++++++++,,++++++++,,++++++\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n++,,,,,,++++,,,,,,++++,,,,,,++++,,,,,,++++\n,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+\n,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,9-\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n++++,,++++++++,,++++++++,,++++++++,,++++++\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n++,,,,,,++++,,,,,,++++,,,,,,++++,,,,,,++++\n,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+\n,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,へ-\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n++++,,++++++++,,++++++++,,++++++++,,++++++\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n++,,,,,,++++,,,,,,++++,,,,,,++++,,,,,,++++\n,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+++,,+\n,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-,+,,+?-,,-\n,,,+,,+,,==,,+,,+,,==,,+,,+,,==,,+,,+,,==,\n\n..........................................\n..........................................\n...............1ゐかくゐ1.155る5...............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.0..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n.........................................`\n.........................................\\\n\n&.........................................\n..........................................\n...............1ゐかくゐ1.155る5.........7.....\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.0..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n..........................................\n..........................................\n\n(..........................................\n..........................................\n...............1ngine.1rror...............\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++++,................\n................,,,,,,,,,,................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n..........................................\n.........................................>)\n\n\n\n\n\n..........................................\n..........................................\n..........................................\n..............2?+,~-}.....................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++++,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n\n\n%.....................................7...\n.....................^....................\n...............1ゐかくゐ1.155る5...............\n..........................................\n..........................................\n...........^..............................\n..........................................\n..........................................\n..............6.2tart.game.6..............\n.....................^....................\n..........................................\n..........................................\narrow.keys.to.move........................\n...^......................................\n3.to.action...............................\n..................................^.......\n4.to.undo..5.to.restart...................\n..........................................\n..............^...........................\n\nect.canmove.has.been.defined.but.not.assig\n..........................................\nule.matches.object.types.that.cant.overlap\n..........................................\n.name.crtae.referred.to.in.a.rule.does.not\n..........................................\no.indicate.in.which.direction.a.rule.appli\n..........................................\nch.on.the.left.must.have.a.corresponding.p\n..........................................\n.was.looking.for.color.for.object.playerle\n..........................................\ned.an.object.v.but.this.is.a.keyword.dont.\n................\\`````````````............\n...........press.3.to.continue............\n.........................................<\n.arrow.here.consider.reading.up.about.rule\n..........................................\nrors.detected.during.compilation.the.game.\n\n..........................................\n..........................................\n...............1ゐかくゐ1.155る5...............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.0..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undoよ.5.to.restart...................\n.........................................`\n.........................................\\\n\n*....................め....................\n..........................................\n...............1ゐかくゐ1.155る5..........8....\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.0..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n..........................................\n..........................................\n\n\n\n\n\n..........................................\n..........................................\nらrintin~.level.-ontents#..................\n..........................................\n..........................................\n..........................................\n................,,,,,,,,,,................\n................,,,++++,,,................\n................,+++,,+++,................\n................,+?-,,-,+,................\n................,+,,~~,,+,................\n................,++++++[+,................\n................,,,,,,,,,,................\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n.........................................{\n\n$.....................................7...\n.....................^....................\n...............1ゐかくゐ1.155る5...............\n..........................................\n..........................................\n...........^..............................\n..........................................\n..........................................\n..............6.2tart.game.6..............\n.....................^....................\n..........................................\n..........................................\narrow.keys.to.move........................\n...^......................................\n3.to.action...............................\n..................................^.......\n4.to.undo..5.to.restart...................\n..........................................\n..............^...........................\n\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\nひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひひ\n.........................................7\n\nひひひひひひひひひひひひひひひひ..........................\nうるそそく2くるゐそあふ152...........................\nひひひひひひひひひひひひひひひひ..........................\nbackground................................\nとrateよ.せlayer.............................\nすarget....................................\n..........................................\nひひひひひひ....................................\n5ゆそ12.....................................\nひひひひひひ....................................\nろれ.せlayerやとrateゑりろれ.せlayerやれ.とrateゑ.......\n..........................................\nひひひひひひひひひひひひひひ............................\nむくゐうるゐえくわくるゐ2.............................\nひひひひひひひひひひひひひひ............................\n..........................................\nall.すarget.on.とrate.......................\n.........................................\\\nひひひひひひひひひ................................]\n\n\n\n......................................\"............................................'\n......................................\".............................................\n......................................\".................1ngine.1rror................\n......................................\".............................................\n......................................\".............................................\n......................................\".............................................\n................,,,,,,,,,,............\".............................................\n................,++++++++,............\".............................................\n................,+?,~,-,+,............\"................6.のさたなさ.はたぬま.0...............\n................,++++++++,............\".............................................\n................,,,,,,,,,,............\".............................................\n......................................\".............................................\n......................................\"..arrow.keys.to.move.........................\n......................................\".............................................\n......................................\"..3.to.action................................\n......................................\".............................................\n......................................\"..4.to.undo..5.to.restart....................\n......................................\"...にににににににににににににににににににににににににににににににににににににににににに\n......................................\"...にににににににににににににににににににににににににににににににににににににににににに\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n(\n\n\n\n..........................................\n..........................................\n...............1ngine.1rror...............\n..........................................\n..........................................\n..........................................\n..........................................\n..........................................\n..............6.2tart.game.6..............\n..........................................\n..........................................\n..........................................\narrow.keys.to.move........................\n..........................................\n3.to.action...............................\n..........................................\n4.to.undo..5.to.restart...................\n..........................................\n..........................................\n",["tick","tick","tick",3,3,"tick",3,"tick","tick",3,"tick",3,"tick","tick",4,"tick","tick","tick","tick",3,"tick",2,"tick",3,"tick",3,0,"tick",1,2,"tick","tick","tick",0,"tick","undo","tick","undo","tick","undo","tick",0,"tick",1,2,"tick",3,2,"tick","tick",3,"tick",3,0,"tick",1,"tick","tick","tick",0,"tick",0,3,"tick",3,"tick",3,2,"tick",3,3,2,"tick",1,"tick",1,"tick","tick",1,"tick",0,"tick",0,3,"tick",2,1,"tick",1,"tick",1,2,3,"tick","tick","tick",4,"tick","tick","tick","tick",4,"tick","tick","tick","tick","tick",2,"tick",2,"tick",2,"tick",2,"tick","tick","tick","tick"],"background: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,\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,\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,\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,\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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background fakeground:1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,background fakeground player:2,\n2,2,2,0,0,0,0,0,0,0,0,0,1,1,2,background fakeground wall:3,1,1,1,1,1,2,0,0,0,0,0,0,0,0,0,1,1,1,background fakeground target:4,1,2,2,1,1,2,0,\n0,0,0,0,0,0,0,0,1,1,1,1,1,2,background crate fakeground:5,1,1,2,0,0,0,0,0,0,0,0,0,1,1,1,1,1,2,5,1,1,2,0,0,0,0,0,\n0,0,0,0,1,1,1,4,1,2,2,1,1,2,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,2,1,1,2,0,0,0,0,0,0,0,0,0,\n1,1,1,1,1,1,2,2,2,2,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,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,\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,\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,\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,\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,\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,\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,\n",0,"1627770452561.3662"] ], [ `gallery game: coin collector`, - ["title Coin Counter\n\nverbose_logging\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground \nlightblue\n\nwall\ndarkbrown\n\nt\ntransparent\n\ntl\ntransparent\n\ntr\ntransparent\n\nm\ntransparent\n\nbl\ntransparent\n\nbr\ntransparent\n\nb\ntransparent\n\ncorner\ntransparent\n\non\nblue\n\noff\ndarkbrown\n\none 1\ntransparent\n\ntwo 2\ntransparent\n\nthree 3\ntransparent\n\nfour 4\ntransparent\n\nfive 5\ntransparent\n\nsix 6\ntransparent\n\nseven 7\ntransparent\n\neight 8\ntransparent\n\nnine 9\ntransparent\n\nzero 0\ntransparent\n\nplayer\ngreen\n\ncoin\n#ff0\n.....\n.000.\n.0.0.\n.000.\n.....\n\nending\ntransparent\n\ntens\ntransparent\n\ncarry\ntransparent\n\nfiver\n#ff0\n..0..\n.000.\n00.00\n.000.\n..0..\n\nstar\n#ff0 yellow orange\n0.0.0\n.121.\n02.20\n.121.\n0.0.0\n\nhund\ntransparent\n\nwon\ntransparent\n\nlast\ntransparent\n\nfakecoin\n#ff0\n.....\n.000.\n.0.0.\n.000.\n.....\n=======\nLEGEND\n=======\n\nc = corner\nl = tl\nr = tr\nw = bl\ne = br\nseg = t or l or r or m or w or e or b\nnum = zero or one or two or three or four or five or six or seven or eight or nine\np = player\nk = coin\n. = background\nx = wall\n\n! = t and coin\n@ = l and coin\n# = r and coin\n$ = m and coin\n% = w and coin\n^ = e and coin\n& = b and coin\n* = c and coin\n\n{ = t and fiver\n} = l and fiver\n; = r and fiver\n: = m and fiver\n' = w and fiver\n\" = e and fiver\n, = b and fiver\n/ = c and fiver\n\nf = fiver\n\n? = tens and wall\n\n- = fakecoin\n\nj = star\n` = hund\nz = ending\n~ = last\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nseg\ncorner\nnum\non\noff\ncoin, fiver\nstar\nplayer, wall\nending\ntens\ncarry\nwon\nhund\nlast\nfakecoin\n======\nRULES \n====== \n\n[last][ action player ]-> win\n[last ][moving player] -> win\nup [tens|no tens] -> [tens | tens]\ndown [tens|no tens] -> [tens | tens]\n\n[> player | off] -> [stationary player | off]\nlate [player off] -> [off]\n\nlate [player coin] -> again\nlate [player fiver] -> again\nlate [player star] -> again\n\n[player coin][zero no tens] -> [player][one]\n[player coin][one no tens] -> [player][two]\n[player coin][two no tens] -> [player][three]\n[player coin][three no tens] -> [player][four]\n[player coin][four no tens] -> [player][five]\n[player coin][five no tens] -> [player][six]\n[player coin][six no tens] -> [player][seven]\n[player coin][seven no tens] -> [player][eight]\n[player coin][eight no tens] -> [player][nine]\n[player coin][nine no tens] -> [player][zero carry]\n\n[player fiver][zero no tens] -> [player][five]\n[player fiver][one no tens] -> [player][six]\n[player fiver][two no tens] -> [player][seven]\n[player fiver][three no tens] -> [player][eight]\n[player fiver][four no tens] -> [player][nine]\n[player fiver][five no tens] -> [player][zero carry]\n[player fiver][six no tens] -> [player][one carry]\n[player fiver][seven no tens] -> [player][two carry]\n[player fiver][eight no tens] -> [player][three carry]\n[player fiver][nine no tens] -> [player][four carry]\n\n[carry no tens][zero tens] -> [][one tens]\n[carry no tens ][one tens] -> [][two tens]\n[carry no tens ][two tens] -> [][three tens]\n[carry no tens ][three tens] -> [][four tens]\n[carry no tens ][four tens] -> [][five tens]\n[carry no tens ][five tens] -> [][six tens]\n[carry no tens ][six tens] -> [][seven tens]\n[carry no tens ][seven tens] -> [][eight tens]\n[carry no tens ][eight tens] -> [][nine tens]\n[carry no tens ][nine tens] -> [][zero tens carry]\n\n\n\n[hund] -> [hund off]\n\n[tens carry][hund off] -> [tens carry][hund on]\n[player won] -> win\n\n[star player][tens carry] -> [player won][tens no carry] again\n\n[carry no tens] -> []\n[seg no on] -> [seg on]\n[seg off] -> [seg]\n\n[m no tens][zero no tens] -> [m off][zero]\n[l no tens][one no tens] -> [l off][one]\n[w no tens][one no tens] -> [w off][one]\n[m no tens][one no tens] -> [m off][one]\n[t no tens][one no tens] -> [t off][one]\n[b no tens][one no tens] -> [b off][one]\n[l no tens][two no tens] -> [l off][two]\n[e no tens][two no tens] -> [e off][two]\n[l no tens][three no tens] -> [l off][three]\n[w no tens][three no tens] -> [w off][three]\n[b no tens][four no tens] -> [b off][four]\n[w no tens][four no tens] -> [w off][four]\n[t no tens][four no tens] -> [t off][four]\n[r no tens][five no tens] -> [r off][five]\n[w no tens][five no tens] -> [w off][five]\n[r no tens][six no tens] -> [r off][six]\n[l no tens][seven no tens] -> [l off][seven]\n[w no tens][seven no tens] -> [w off][seven]\n[m no tens][seven no tens] -> [m off][seven]\n[b no tens][seven no tens] -> [b off][seven]\n[w no tens][nine no tens] -> [w off][nine]\n\n[seg tens][zero tens] -> [seg off tens][zero tens]\n[l tens][one tens] -> [l off tens][one tens]\n[w tens][one tens] -> [w off tens][one tens]\n[m tens][one tens] -> [m off tens][one tens]\n[t tens][one tens] -> [t off tens][one tens]\n[b tens][one tens] -> [b off tens][one tens]\n[l tens][two tens] -> [l off tens][two tens]\n[e tens][two tens] -> [e off tens][two tens]\n[l tens][three tens] -> [l off tens][three tens]\n[w tens][three tens] -> [w off tens][three tens]\n[b tens][four tens] -> [b off tens][four tens]\n[w tens][four tens] -> [w off tens][four tens]\n[t tens][four tens] -> [t off tens][four tens]\n[r tens][five tens] -> [r off tens][five tens]\n[w tens][five tens] -> [w off tens][five tens]\n[r tens][six tens] -> [r off tens][six tens]\n[l tens][seven tens] -> [l off tens][seven tens]\n[w tens][seven tens] -> [w off tens][seven tens]\n[m tens][seven tens] -> [m off tens][seven tens]\n[b tens][seven tens] -> [b off tens][seven tens]\n[w tens][nine tens] -> [w off tens][nine tens]\n\n [hund on][seg off] -> [hund on][seg on]\n [hund on][m on] -> [hund on][m off]\n\n[on off] -> [off]\n\n[corner no off] -> [corner off]\n[corner on] -> [corner]\n\n[corner off|seg on] -> [corner on| seg on]\n\n\n\n\n\n\n\n==============\nWINCONDITIONS\n==============\nno coin\nno fiver\nall ending on player\n======= \nLEVELS\n=======\n\n\n\n\n\n\nx-xxxxxxxxx\nxxxctcxctcx\nxxxlxrxlxrx\nxxxcmcxcmcx\nxxxwxexwxex\nxxxcbcxcbcx\nxjx???xxxxx\nxxxxxxxxxxx\nxp0k0.k..kz\nxxxxxxxxxxx\n\nxxxxxxxxxxxxxxx\nxxxxxxxctc....z\nxxxxxxxlxrxxxxx\nxxxxxxxcmcxxxxx\nxxxxxxxwxexxxxx\np.3k.k.cbcxxxxx\nxxxxxxxxxxxxxxx\n\nxxxxxxzx\nx?xxxx.x\nx......x\nx.xxxxxx\nxckctckx\nxrxlxrxx\nxcxc$cxx\nxexwxexx\nxckcbckx\nxxxxxx.x\np05....x\nxxxxxxxx\n\n\nx?xxxx?zx\nxxxxxxx0x\nxcx*!*x.x\nxrxlxrx.x\nxcx*$*x.x\nxexwxex.x\nxcx*&*1px\nxxxxxxx.x\n\nxx???xxxx?x\nz.ctc.c!c.x\nx.lxrx@x#.x\nx.cmcxc$c.x\nx9wxexwx^1x\nx.cbc.cbc.x\nxxxxxxxxxpx\n\nx????xxxxxx\nz.ctcfctc.p\nx.lxrxlx#.x\nx.cmcxcm*.x\nx2wxexwx^4x\nx.cbcfcbc.x\nxxxxxxxxxxx\n\nx????xxxxx\nxctc3ctcxx\nx@xrx}xrxx\nxc$cxc:c7p\nxwx^xwx\".x\nxc&cxc,c.x\nxxxxxxxxzx\n\nx????xxxpx\nxctc6ctc.x\nx}x;x@x#.x\nxcmcxc$c1x\nx'x\"xwx^.x\nxc,c.c&c.x\nxxxxxxxxzx\n\nxx???xxxxpx\nx..k91.k..x\nx.ctcxctc.x\nxklxrxlxrkx\nx.cmcxcmc.x\nxkwxexwxekx\nx.cbcxcbc.x\nx..k...k..x\nxzxxxxxxxxx\n\n\n\nxpxxxxxxxxx\nxkxxxxxxxxx\nx`xctcxctcx\nx`xlxrxlxrx\nx`xcmcxcmcx\nx`xwxexwxex\nx`xcbcxcbcx\nxjx???xxxxx\nxxxxxxxxxxx\nx.9.9.....z\nxxxxxxxxxxx\n\nxxx???xxxxxxxxxxxxxxxxxxxxxxxxxxxx\nxxx???xxxxxxxxxxxxxxxxxxxxxxxxxxxx\nxxx???.ctcxxxxxxxxxxxxxxxxxxxxxxxx\nxxx???xlxrxxxxxxxxxxxxxxxxxxxxxxxx\nxxx???xcmc..z.xxx.ctc..z.xxx.ctc.x\nxxx???xwxe.xx.xxxxlxr.xx.xxxxlxr.x\nxxx???xcbc.xx.xxxxcmc.xx.xxxxcmc.x\nxxx???xxxxzxx.xxxxwxe.xx.xxxxwxe.x\nxxx???xxxx.xx.xxx.cbc.xx.xxx.cbc.x\nxxxctc.ctc.xxxxxxxxxxzxxxxxxxxxx.x\nxxxl?rxlxr.xxxxxxxxxxxxxxxxxxxxxzx\nxxxcmcxcmc.xxxxxxxxxxxxxxxxxxxxx.x\nxxxw?exwxe.xxxxxx.....xxxxxxctcx.x\nxxxcbc.cbc.xxxx..xxxxx..xxxxlxrx.x\nxxx???xxxxzxxx.xxxxxxxxx.xxxcmcx.x\nxxx???xxxx.xxx.xx.xxx.xx.xxxwxex.x\nx..........xx.xxx.xxx.xxx.xxcbc..x\nx.xxx?xctc.xx.xxx.x.x.xxx.xxxxxx.x\nx.x?x?xlxr.xx.xxxxx~xxxxx.xxxxxxzx\nx.xxx?xcmc.xx.xx..xxx..xx.xxxxxx.x\nx.x?x?xwxe.xx.xx.......xx.x......x\nx.xxx?xcbc.xx..xx.....xx.xx.xxxxxx\nx..........xxx.xxx...xxx.xxx.ctc.x\nxzx???xxxxxxxxx..xxxxx..xxxxxlxrxx\nx.x???xxxxxxxxxxx.....xxxxxxxcmcxx\nxxxctcxctcxxxxxxxxxxxxxxxxxxxwxexx\nxxxl?rxlxrxxxxxxxxxxxxxxxxxx.cbc.x\nxxxcmcxcmcxxxxxxxxxxxxxxxxxxxxxx.x\nxxxw?exwxexxxxxxxxctc....z.......x\nxxxcbcxcbcxxxxxxxxlxrxxxxxxxxxxxxx\nxpx???xxxxxxxxxxxxcmcxxxxxxxxxxxxx\nxxx???xxxxxxxxxxxxwxexxxxxxxxxxxxx\n0...0.....z.......cbcxxxxxxxxxxxxx\nxxx???xxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\n", [2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 1, 1, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 3, 3, 3, 3, 1, 2, 2, 2, 2, 1, 1, 1, 3, 3, 3, 0, 0, 1], "background wall:0,0,0,0,0,0,0,0,\n0,0,background:1,0,background tens wall:2,2,background tens:3,3,\nbackground corner on tens:4,background on tens tr:5,4,background br on tens:6,4,2,background one tens:7,2,\n0,0,1,0,1,0,0,0,\n1,0,background zero:8,0,0,0,1,0,\nbackground corner on:9,background on tl:10,9,background bl on:11,9,0,1,0,\n0,0,1,0,background on t:12,0,background m off:13,0,\nb background on:14,0,1,0,0,0,1,0,\n9,background on tr:15,9,background br on:16,9,0,1,0,\nbackground ending:17,1,1,0,1,0,0,0,\n1,1,1,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1627770506202.4248"] + ["title Coin Counter\n\nverbose_logging\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground \nlightblue\n\nwall\ndarkbrown\n\nt\ntransparent\n\ntl\ntransparent\n\ntr\ntransparent\n\nm\ntransparent\n\nbl\ntransparent\n\nbr\ntransparent\n\nb\ntransparent\n\ncorner\ntransparent\n\non\nblue\n\noff\ndarkbrown\n\none 1\ntransparent\n\ntwo 2\ntransparent\n\nthree 3\ntransparent\n\nfour 4\ntransparent\n\nfive 5\ntransparent\n\nsix 6\ntransparent\n\nseven 7\ntransparent\n\neight 8\ntransparent\n\nnine 9\ntransparent\n\nzero 0\ntransparent\n\nplayer\ngreen\n\ncoin\n#ff0\n.....\n.000.\n.0.0.\n.000.\n.....\n\nending\ntransparent\n\ntens\ntransparent\n\ncarry\ntransparent\n\nfiver\n#ff0\n..0..\n.000.\n00.00\n.000.\n..0..\n\nstar\n#ff0 yellow orange\n0.0.0\n.121.\n02.20\n.121.\n0.0.0\n\nhund\ntransparent\n\nwon\ntransparent\n\nlast\ntransparent\n\nfakecoin\n#ff0\n.....\n.000.\n.0.0.\n.000.\n.....\n=======\nLEGEND\n=======\n\nc = corner\nl = tl\nr = tr\nw = bl\ne = br\nseg = t or l or r or m or w or e or b\nnum = zero or one or two or three or four or five or six or seven or eight or nine\np = player\nk = coin\n. = background\nx = wall\n\n! = t and coin\n@ = l and coin\n# = r and coin\n$ = m and coin\n% = w and coin\n^ = e and coin\n& = b and coin\n* = c and coin\n\n{ = t and fiver\n} = l and fiver\n; = r and fiver\n: = m and fiver\n' = w and fiver\n\" = e and fiver\n, = b and fiver\n/ = c and fiver\n\nf = fiver\n\n? = tens and wall\n\n- = fakecoin\n\nj = star\n` = hund\nz = ending\n~ = last\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nseg\ncorner\nnum\non\noff\ncoin, fiver\nstar\nplayer, wall\nending\ntens\ncarry\nwon\nhund\nlast\nfakecoin\n======\nRULES \n====== \n\n[last][ action player ]-> win\n[last ][moving player] -> win\nup [tens|no tens] -> [tens | tens]\ndown [tens|no tens] -> [tens | tens]\n\n[> player | off] -> [stationary player | off]\nlate [player off] -> [off]\n\nlate [player coin] -> again\nlate [player fiver] -> again\nlate [player star] -> again\n\n[player coin][zero no tens] -> [player][one]\n[player coin][one no tens] -> [player][two]\n[player coin][two no tens] -> [player][three]\n[player coin][three no tens] -> [player][four]\n[player coin][four no tens] -> [player][five]\n[player coin][five no tens] -> [player][six]\n[player coin][six no tens] -> [player][seven]\n[player coin][seven no tens] -> [player][eight]\n[player coin][eight no tens] -> [player][nine]\n[player coin][nine no tens] -> [player][zero carry]\n\n[player fiver][zero no tens] -> [player][five]\n[player fiver][one no tens] -> [player][six]\n[player fiver][two no tens] -> [player][seven]\n[player fiver][three no tens] -> [player][eight]\n[player fiver][four no tens] -> [player][nine]\n[player fiver][five no tens] -> [player][zero carry]\n[player fiver][six no tens] -> [player][one carry]\n[player fiver][seven no tens] -> [player][two carry]\n[player fiver][eight no tens] -> [player][three carry]\n[player fiver][nine no tens] -> [player][four carry]\n\n[carry no tens][zero tens] -> [][one tens]\n[carry no tens ][one tens] -> [][two tens]\n[carry no tens ][two tens] -> [][three tens]\n[carry no tens ][three tens] -> [][four tens]\n[carry no tens ][four tens] -> [][five tens]\n[carry no tens ][five tens] -> [][six tens]\n[carry no tens ][six tens] -> [][seven tens]\n[carry no tens ][seven tens] -> [][eight tens]\n[carry no tens ][eight tens] -> [][nine tens]\n[carry no tens ][nine tens] -> [][zero tens carry]\n\n\n\n[hund] -> [hund off]\n\n[tens carry][hund off] -> [tens carry][hund on]\n[player won] -> win\n\n[star player][tens carry] -> [player won][tens no carry] again\n\n[carry no tens] -> []\n[seg no on] -> [seg on]\n[seg off] -> [seg]\n\n[m no tens][zero no tens] -> [m off][zero]\n[l no tens][one no tens] -> [l off][one]\n[w no tens][one no tens] -> [w off][one]\n[m no tens][one no tens] -> [m off][one]\n[t no tens][one no tens] -> [t off][one]\n[b no tens][one no tens] -> [b off][one]\n[l no tens][two no tens] -> [l off][two]\n[e no tens][two no tens] -> [e off][two]\n[l no tens][three no tens] -> [l off][three]\n[w no tens][three no tens] -> [w off][three]\n[b no tens][four no tens] -> [b off][four]\n[w no tens][four no tens] -> [w off][four]\n[t no tens][four no tens] -> [t off][four]\n[r no tens][five no tens] -> [r off][five]\n[w no tens][five no tens] -> [w off][five]\n[r no tens][six no tens] -> [r off][six]\n[l no tens][seven no tens] -> [l off][seven]\n[w no tens][seven no tens] -> [w off][seven]\n[m no tens][seven no tens] -> [m off][seven]\n[b no tens][seven no tens] -> [b off][seven]\n[w no tens][nine no tens] -> [w off][nine]\n\n[seg tens][zero tens] -> [seg off tens][zero tens]\n[l tens][one tens] -> [l off tens][one tens]\n[w tens][one tens] -> [w off tens][one tens]\n[m tens][one tens] -> [m off tens][one tens]\n[t tens][one tens] -> [t off tens][one tens]\n[b tens][one tens] -> [b off tens][one tens]\n[l tens][two tens] -> [l off tens][two tens]\n[e tens][two tens] -> [e off tens][two tens]\n[l tens][three tens] -> [l off tens][three tens]\n[w tens][three tens] -> [w off tens][three tens]\n[b tens][four tens] -> [b off tens][four tens]\n[w tens][four tens] -> [w off tens][four tens]\n[t tens][four tens] -> [t off tens][four tens]\n[r tens][five tens] -> [r off tens][five tens]\n[w tens][five tens] -> [w off tens][five tens]\n[r tens][six tens] -> [r off tens][six tens]\n[l tens][seven tens] -> [l off tens][seven tens]\n[w tens][seven tens] -> [w off tens][seven tens]\n[m tens][seven tens] -> [m off tens][seven tens]\n[b tens][seven tens] -> [b off tens][seven tens]\n[w tens][nine tens] -> [w off tens][nine tens]\n\n [hund on][seg off] -> [hund on][seg on]\n [hund on][m on] -> [hund on][m off]\n\n[on off] -> [off]\n\n[corner no off] -> [corner off]\n[corner on] -> [corner]\n\n[corner off|seg on] -> [corner on| seg on]\n\n\n\n\n\n\n\n==============\nWINCONDITIONS\n==============\nno coin\nno fiver\nall ending on player\n======= \nLEVELS\n=======\n\n\n\n\n\n\nx-xxxxxxxxx\nxxxctcxctcx\nxxxlxrxlxrx\nxxxcmcxcmcx\nxxxwxexwxex\nxxxcbcxcbcx\nxjx???xxxxx\nxxxxxxxxxxx\nxp0k0.k..kz\nxxxxxxxxxxx\n\nxxxxxxxxxxxxxxx\nxxxxxxxctc....z\nxxxxxxxlxrxxxxx\nxxxxxxxcmcxxxxx\nxxxxxxxwxexxxxx\np.3k.k.cbcxxxxx\nxxxxxxxxxxxxxxx\n\nxxxxxxzx\nx?xxxx.x\nx......x\nx.xxxxxx\nxckctckx\nxrxlxrxx\nxcxc$cxx\nxexwxexx\nxckcbckx\nxxxxxx.x\np05....x\nxxxxxxxx\n\n\nx?xxxx?zx\nxxxxxxx0x\nxcx*!*x.x\nxrxlxrx.x\nxcx*$*x.x\nxexwxex.x\nxcx*&*1px\nxxxxxxx.x\n\nxx???xxxx?x\nz.ctc.c!c.x\nx.lxrx@x#.x\nx.cmcxc$c.x\nx9wxexwx^1x\nx.cbc.cbc.x\nxxxxxxxxxpx\n\nx????xxxxxx\nz.ctcfctc.p\nx.lxrxlx#.x\nx.cmcxcm*.x\nx2wxexwx^4x\nx.cbcfcbc.x\nxxxxxxxxxxx\n\nx????xxxxx\nxctc3ctcxx\nx@xrx}xrxx\nxc$cxc:c7p\nxwx^xwx\".x\nxc&cxc,c.x\nxxxxxxxxzx\n\nx????xxxpx\nxctc6ctc.x\nx}x;x@x#.x\nxcmcxc$c1x\nx'x\"xwx^.x\nxc,c.c&c.x\nxxxxxxxxzx\n\nxx???xxxxpx\nx..k91.k..x\nx.ctcxctc.x\nxklxrxlxrkx\nx.cmcxcmc.x\nxkwxexwxekx\nx.cbcxcbc.x\nx..k...k..x\nxzxxxxxxxxx\n\n\n\nxpxxxxxxxxx\nxkxxxxxxxxx\nx`xctcxctcx\nx`xlxrxlxrx\nx`xcmcxcmcx\nx`xwxexwxex\nx`xcbcxcbcx\nxjx???xxxxx\nxxxxxxxxxxx\nx.9.9.....z\nxxxxxxxxxxx\n\nxxx???xxxxxxxxxxxxxxxxxxxxxxxxxxxx\nxxx???xxxxxxxxxxxxxxxxxxxxxxxxxxxx\nxxx???.ctcxxxxxxxxxxxxxxxxxxxxxxxx\nxxx???xlxrxxxxxxxxxxxxxxxxxxxxxxxx\nxxx???xcmc..z.xxx.ctc..z.xxx.ctc.x\nxxx???xwxe.xx.xxxxlxr.xx.xxxxlxr.x\nxxx???xcbc.xx.xxxxcmc.xx.xxxxcmc.x\nxxx???xxxxzxx.xxxxwxe.xx.xxxxwxe.x\nxxx???xxxx.xx.xxx.cbc.xx.xxx.cbc.x\nxxxctc.ctc.xxxxxxxxxxzxxxxxxxxxx.x\nxxxl?rxlxr.xxxxxxxxxxxxxxxxxxxxxzx\nxxxcmcxcmc.xxxxxxxxxxxxxxxxxxxxx.x\nxxxw?exwxe.xxxxxx.....xxxxxxctcx.x\nxxxcbc.cbc.xxxx..xxxxx..xxxxlxrx.x\nxxx???xxxxzxxx.xxxxxxxxx.xxxcmcx.x\nxxx???xxxx.xxx.xx.xxx.xx.xxxwxex.x\nx..........xx.xxx.xxx.xxx.xxcbc..x\nx.xxx?xctc.xx.xxx.x.x.xxx.xxxxxx.x\nx.x?x?xlxr.xx.xxxxx~xxxxx.xxxxxxzx\nx.xxx?xcmc.xx.xx..xxx..xx.xxxxxx.x\nx.x?x?xwxe.xx.xx.......xx.x......x\nx.xxx?xcbc.xx..xx.....xx.xx.xxxxxx\nx..........xxx.xxx...xxx.xxx.ctc.x\nxzx???xxxxxxxxx..xxxxx..xxxxxlxrxx\nx.x???xxxxxxxxxxx.....xxxxxxxcmcxx\nxxxctcxctcxxxxxxxxxxxxxxxxxxxwxexx\nxxxl?rxlxrxxxxxxxxxxxxxxxxxx.cbc.x\nxxxcmcxcmcxxxxxxxxxxxxxxxxxxxxxx.x\nxxxw?exwxexxxxxxxxctc....z.......x\nxxxcbcxcbcxxxxxxxxlxrxxxxxxxxxxxxx\nxpx???xxxxxxxxxxxxcmcxxxxxxxxxxxxx\nxxx???xxxxxxxxxxxxwxexxxxxxxxxxxxx\n0...0.....z.......cbcxxxxxxxxxxxxx\nxxx???xxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\n",[2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,1,1,0,0,0,0,0,1,3,3,3,3,1,2,2,2,2,1,1,1,3,3,3,0,0,1],"background wall:0,0,0,0,0,0,0,0,\n0,0,background:1,0,background tens wall:2,2,background tens:3,3,\nbackground corner on tens:4,background on tens tr:5,4,background br on tens:6,4,2,background one tens:7,2,\n0,0,1,0,1,0,0,0,\n1,0,background zero:8,0,0,0,1,0,\nbackground corner on:9,background on tl:10,9,background bl on:11,9,0,1,0,\n0,0,1,0,background on t:12,0,background m off:13,0,\nb background on:14,0,1,0,0,0,1,0,\n9,background on tr:15,9,background br on:16,9,0,1,0,\nbackground ending:17,1,1,0,1,0,0,0,\n1,1,1,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n",0,"1627770506202.4248"] ], [ `gallery game: two worlds`, - ["title Two Worlds\nauthor nebu soku\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\nrealtime_interval 0.1\nagain_interval 0.05\nbackground_color #282818\ntext_color #c8c8a8\nflickscreen 19x16\n\n========\nOBJECTS\n========\n\nBackground \n#282818\n\nOutLine\n#282818\n\nBGBlue\n#c8c8a8 #c1e4f0\n\nBGPink\n#282818 #f8cefd\n\nTarget \n#a0a088\n00.00\n00000\n00000\n.000.\n..0..\n\nGhostTarget \n#a0a088\n00.00\n00000\n00000\n.000.\n..0..\n\nWall \n#a0a088 #686850 #282818\n01000\n02010\n00020\n00000\n11111\n\nWallAbove\n#a0a088\n.....\n.....\n.....\n.....\n00000\n\nWallBelow\n#686850\n00000\n.....\n.....\n.....\n.....\n\nZonePurple\n#282818 #a0a088 #3d1e7e\n00000\n00000\n00100\n00000\n00000\n\nZonePurpleBelow\n#686850 #a0a088\n00000\n.....\n.....\n.....\n.....\n\nZonePink\n#c8c8a8 #ef90e3\n\nPlayerBlueRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850 #54b4d5\n.0000\n.0000\n.0121\n5.33.\n..34.\n\nWalkAnimBR1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850(#4fbbdf #608b8c #d5f5f6 #1d7788 #1a6978 #53aecc)\n.0000\n.0000\n.0121\n5.33.\n.....\n\nWalkAnimBR2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n.4..3\n\nWalkAnimBR3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n..3..\n\nPlayerBlueLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.43..\n\nWalkAnimBL1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.....\n\nWalkAnimBL2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n3..4.\n\nWalkAnimBL3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n..3..\n\nStayBlueRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n..34.\n\nStayBlueLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.43..\n\nPlayerPinkRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818(#de4fdd #8a608b #f6d4f5 #871d86 #741978 #cc52c9 #d153d5)\n.5000\n.0000\n.0121\n..33.\n..34.\n\nWalkAnimPR1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.....\n\nWalkAnimPR2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nWalkAnimPR3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n..3..\n\nPlayerPinkLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.43..\n\nWalkAnimPL1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.....\n\nWalkAnimPL2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nWalkAnimPL3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n..3..\n\nStayPinkRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n..34.\n\nStayPinkLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.43..\n\nFallRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nFallLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nClimbRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nClimbLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nGhostPlayer\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAbove\n#c8c8a8\n.....\n.....\n.....\n.....\n.000.\n\nGhostPlayerAnim1\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAnim2\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAnim3\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nGhostPlayerAnim4\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nGhostPlayerAnim5\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nStuckRigid\nblack\n\nStuckCursor\n#282818\n0...0\n0...0\n0...0\n00000\n.....\n\nStuckCursorAbove\n#282818\n.....\n.....\n.....\n.....\n00000\n\nCrate \n#a0a088 #686850 #282818 #c8c8a8\n01110\n02220\n02020\n00000\n11111\n\nCrateAbove\n#a0a088\n.....\n.....\n.....\n.....\n00000\n\nCrateBelow\n#686850\n00000\n.....\n.....\n.....\n.....\n\nCrateLine\n#a0a088\n.....\n.....\n.....\n00000\n.....\n\nRigidCrate\n#a0a088 #282818\n11111\n11111\n11011\n11111\n11111\n\nRigidU\n#686850\n00000\n.....\n.....\n.....\n.....\n\nRigidUL\n#686850\n....0\n.....\n.....\n.....\n.....\n\nRigidUR\n#686850\n0....\n.....\n.....\n.....\n.....\n\nRigidD\n#a0a088 #686850\n.....\n.....\n.....\n00000\n11111\n\nRigidL\n#a0a088\n0....\n0....\n0....\n0....\n0....\n\nRigidR\n#a0a088\n....0\n....0\n....0\n....0\n....0\n\nRigidLR\n#a0a088\n0...0\n0...0\n0...0\n0...0\n0...0\n\nAboveRigidL\n#a0a088\n.....\n.....\n.....\n0....\n0....\n\nAboveRigidR\n#a0a088\n.....\n.....\n.....\n....0\n....0\n\nAboveRigidLR\n#a0a088\n.....\n.....\n.....\n0...0\n0...0\n\nAboveRigidLRwithR\n#a0a088\n....0\n....0\n....0\n0...0\n0...0\n\nAboveRigidLRwithL\n#a0a088\n0....\n0....\n0....\n0...0\n0...0\n\nrigid1\nblack\n\nrigid2\nblack\n\nBlock \n#c8c8a8 #a0a088 #686850\n12222\n21112\n21112\n21112\n22221\n\nGhostBlock\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim1\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim2\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim3\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\nGhostBlockAnim4\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\nGhostBlockAnim5\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\n\nClimbable\npink\n\nColBGPink\nblack\n.....\n.....\n.....\n.....\n.....\n\nFallBlock\nblack\n\nWinable\nblack\n\nAddPinkLUD\n#c8c8a8\n0....\n.....\n.....\n.....\n0....\n\nAddPinkLU\n#c8c8a8\n0....\n.....\n.....\n.....\n.....\n\nAddPinkLD\n#c8c8a8\n.....\n.....\n.....\n.....\n0....\n\nAddPinkRUD\n#c8c8a8\n....0\n.....\n.....\n.....\n....0\n\nAddPinkRU\n#c8c8a8\n....0\n.....\n.....\n.....\n.....\n\nAddPinkRD\n#c8c8a8\n.....\n.....\n.....\n.....\n....0\n\nRemovePinkLUD\n#282818\n0....\n.....\n.....\n.....\n0....\n\nRemovePinkLU\n#282818\n0....\n.....\n.....\n.....\n.....\n\nRemovePinkLD\n#282818\n.....\n.....\n.....\n.....\n0....\n\nRemovePinkRUD\n#282818\n....0\n.....\n.....\n.....\n....0\n\nRemovePinkRU\n#282818\n....0\n.....\n.....\n.....\n.....\n\nRemovePinkRD\n#282818\n.....\n.....\n.....\n.....\n....0\n\nTransition1\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransition2\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransition3\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransition4\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransition5\n#282818\n00000\n00000\n00000\n00000\n00000\n\nTransition6\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransition7\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransition8\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransition9\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransitionR1\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransitionR2\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransitionR3\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransitionR4\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransitionR5\n#282818\n00000\n00000\n00000\n00000\n00000\n\nTransitionR6\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransitionR7\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransitionR8\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransitionR9\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nHide\n#c8c8a8\n\nWinAnim1\n#c8c8a8\n.....\n.0...\n.....\n.....\n.....\n\nWinAnim2\n#c8c8a8\n.....\n.0...\n.....\n.....\n.....\n\nWinAnim3\n#c8c8a8\n.0...\n000..\n.0...\n...0.\n.....\n\nWinAnim4\n#c8c8a8\n.....\n.0...\n...0.\n..000\n...0.\n\nWinAnim5\n#c8c8a8\n.....\n.....\n.....\n...0.\n.....\n\nWinAnim6\n#c8c8a8\n.....\n.....\n.....\n.....\n.....\n\nLevelStart\n#282818\n\nPressX\n#686850 #282818\n0.0.0\n0.0.0\n00.00\n0.0.0\n0.0.0\n\nTCount1\nblack\n\nTCount2\nblack\n\nTCount3\nblack\n\nTCount4\nblack\n\nTCount5\nblack\n\n=======\nLEGEND\n=======\n\nBlueRight = PlayerBlueRight or WalkAnimBR1 or WalkAnimBR2 or WalkAnimBR3\nBlueLeft = PlayerBlueLeft or WalkAnimBL1 or WalkAnimBL2 or WalkAnimBL3\nPlayerBlue = BlueRight or BlueLeft\n\nPinkRight = PlayerPinkRight or WalkAnimPR1 or WalkAnimPR2 or WalkAnimPR3 \nPinkLeft = PlayerPinkLeft or WalkAnimPL1 or WalkAnimPL2 or WalkAnimPL3\nPlayerPink = PinkRight or PinkLeft\nPlayerFall = PlayerPink or FallRight or FallLeft\n\nPlayer = PlayerBlue or PlayerPink or ClimbRight or ClimbLeft\nPlayerMove = PlayerBlue or PlayerPink\n\nGBlock = GhostBlock or GhostBlockAnim1 or GhostBlockAnim2 or GhostBlockAnim3 or GhostBlockAnim4 or GhostBlockAnim5\n\nGPlayer = GhostPlayer or GhostPlayerAnim1 or GhostPlayerAnim2 or GhostPlayerAnim3 or GhostPlayerAnim4 or GhostPlayerAnim5\nGPAboveAnim = GhostPlayerAnim3 or GhostPlayerAnim4 or GhostPlayerAnim5\n\nRidable = BGPink or Block or ColBGPink\n\nRigids = rigid1 or rigid2\n\nAboveDeco = AboveRigidL or AboveRigidR or RigidL or RigidR or RigidLR\nRigidDeco = RigidU or AboveDeco or RigidD or AboveRigidLR or AboveRigidLRwithR or AboveRigidLRwithL or RigidUL or RigidUR\n\nAddPinkL = AddPinkLUD or AddPinkLU or AddPinkLD\nAddPinkR = AddPinkRUD or AddPinkRU or AddPinkRD\n\nRemovePinkL = RemovePinkLUD or RemovePinkLU or RemovePinkLD\nRemovePinkR = RemovePinkRUD or RemovePinkRU or RemovePinkRD\n\nTransition = Transition1 or Transition2 or Transition3 or Transition4 or Transition5 or Transition6 or Transition7 or Transition8 or Transition9\nTransitionR = TransitionR1 or TransitionR2 or TransitionR3 or TransitionR4 or TransitionR5 or TransitionR6 or TransitionR7 or TransitionR8 or TransitionR9\n\nWinAnim = WinAnim1 or WinAnim2 or WinAnim3 or WinAnim4 or WinAnim5 or WinAnim6\nTCount = TCount1 or TCount2 or TCount3 or TCount4\n\n. = Background\n, = BGBlue\n' = BGPink\n# = Wall and BGBlue\nB = PlayerBlueRight and BGBlue\nP = PlayerPinkRight and ZonePink\n* = Crate and BGBlue\n@ = RigidCrate and rigid1 and BGBlue\n2 = RigidCrate and rigid2 and BGBlue\nO = GhostTarget and ZonePurple\nx = ZonePurple and BGBlue\n+ = ZonePink\n\" = GhostBlock and ZonePurple and BGBlue\n! = GhostPlayer and ZonePurple and BGBlue\n($ = StayBlueRight and BGBlue)\n% = StayPinkRight and ZonePink\n石 = Block and ZonePink\n文 = PressX and BGBlue\n\n=======\nSOUNDS\n=======\n\nPlayerMove move 15203103\nCrate move 80987507\nRigidCrate move 80987507\nBlock action 70814309\nStuckCursor action 20002502 (boo)\nZonePurple move 95712903\nZonePink action 52706103\nTransition1 action 54782309\nTransitionR1 action 54782309\n\nsfx0 30806303\nsfx1 91797700 (fall)\nsfx2 99718300\nsfx3 65480100\nsfx4 80396503 (jump1)\nsfx5 80987507 (block)\nsfx6 45846907\nsfx7 28015305 (jump2)\nsfx8 10636903\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPressX\nTCount, TCount5\nLevelStart\nClimbable\nFallBlock\nWinable\nrigids\nStuckRigid\nBGBlue\nZonePink\nBGPink\nWallBelow\nTarget\nHide\nCrateBelow, ZonePurpleBelow\nPlayer, Wall, Crate, ZonePurple, StayBlueRight, StayBlueLeft, StayPinkRight, StayPinkLeft, FallRight, FallLeft, ClimbRight, ClimbLeft, Block, ColBGPink, RigidCrate\nRemovePinkL\nRemovePinkR\nGhostTarget\nRigidU, RigidUL, RigidUR\nGPlayer\nAboveRigidL, AboveRigidR, RigidL, RigidR, RigidLR\nRigidD, AboveRigidLR, AboveRigidLRwithR, AboveRigidLRwithL\nCrateAbove\nStuckCursorAbove\nWallAbove\nGBlock\nGhostPlayerAbove\nCrateLine\nStuckCursor\nAddPinkL\nAddPinkR\nOutLine\nWinAnim\nTransition, TransitionR\n\n======\nRULES \n====== \n[ > Player ] [ FallBlock ] -> cancel (bug?) \n\n(int)\n\n[ > Player Transition ] -> [ Player Transition ]\n[ ColBGPink ] -> [ ]\n[ BGPink ] -> [ BGPink ColBGPink ]\n[ Background no BGBlue no BGPink no ZonePurple no ZonePink ] -> [ Background OutLine ColBGPink ]\n\nright [ GhostTarget | | | | | | | | | | | | | | | | | | | ] -> [ GhostTarget | | | | | | | | | | | | | | | | | | | Target ]\n\ndown [ ZonePurple | no ZonePurple ] -> [ ZonePurple | ZonePurpleBelow ]\n\nup [ Wall | ] -> [ Wall | WallAbove ]\ndown [ Wall | ] -> [ Wall | WallBelow ]\n\n(Crate-ZonePink)\n\n[ CrateAbove ] -> [ ]\n[ CrateBelow ] -> [ ]\n[ CrateLine ] -> [ ]\nlate up [ | Crate | ] -> [ CrateBelow | Crate CrateLine | CrateAbove ]\n(late down [ Crate | ] -> [ Crate | CrateBelow ])\n\nlate right [ no Crate no ZonePurple no RigidCrate | | | | | | | | | | | | | | | | | | | ZonePink ] -> [ | | | | | | | | | | | | | | | | | | | BGPink ]\nlate right [ PlayerPink ] [ Crate | | | | | | | | | | | | | | | | | | | BGPink ] -> [ PlayerPink ] [ Crate | | | | | | | | | | | | | | | | | | | ZonePink ]\nlate right [ PlayerPink ] [ RigidCrate | | | | | | | | | | | | | | | | | | | BGPink ] -> [ PlayerPink ] [ RigidCrate | | | | | | | | | | | | | | | | | | | ZonePink ]\n\n(Block-GhostBlock)\n\n[ PlayerPink ] [ GBlock ] -> [ PlayerPink ] [ ]\nright [ PlayerPink ] [ | | | | | | | | | | | | | | | | | | | Block ] -> [ PlayerPink ] [ GhostBlock | | | | | | | | | | | | | | | | | | | Block ]\n\n[ PlayerBlue ] [ Block ] -> [ PlayerBlue ] [ ]\nright [ PlayerBlue ] [ GBlock | | | | | | | | | | | | | | | | | | | ] -> [ PlayerBlue ] [ GBlock | | | | | | | | | | | | | | | | | | | Block ]\n\n(Player-GhostPlayer)\n\n[ PlayerPink ] [ GPlayer ] -> [ PlayerPink ] [ ]\nright [ PlayerPink ] [ | | | | | | | | | | | | | | | | | | | PlayerPink ] -> [ PlayerPink ] [ GhostPlayer | | | | | | | | | | | | | | | | | | | PlayerPink ]\n\n(Switch)\n\n[ Target LevelStart ] [ action BlueRight ] [ StayPinkRight ] [ Background ] -> [ Target LevelStart ] [ BlueRight ] [ StayPinkRight ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueRight ] [ StayPinkRight ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueRight ] [ PlayerPinkRight ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueRight ] [ StayPinkLeft ] [ Background ] -> [ Target LevelStart ] [ BlueRight ] [ StayPinkLeft ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueRight ] [ StayPinkLeft ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueRight ] [ PlayerPinkLeft ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueLeft ] [ StayPinkRight ] [ Background ] -> [ Target LevelStart ] [ BlueLeft ] [ StayPinkRight ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueLeft ] [ StayPinkRight ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueLeft ] [ PlayerPinkRight ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueLeft ] [ StayPinkLeft ] [ Background ] -> [ Target LevelStart ] [ BlueLeft ] [ StayPinkLeft ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueLeft ] [ StayPinkLeft ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueLeft ] [ PlayerPinkLeft ] [ Transition6 ]\n\n[ action PlayerPinkRight no FallBlock ] [ StayBlueRight ] [ Background ] -> [ PlayerPinkRight ] [ StayBlueRight ] [ Background action TransitionR1 ]\n[ PlayerPinkRight ] [ StayBlueRight ] [ TransitionR6 ] -> [ StayPinkRight ] [ PlayerBlueRight ] [ TransitionR6 ]\n[ action PlayerPinkRight no FallBlock ] [ StayBlueLeft ] [ Background ] -> [ PlayerPinkRight ] [ StayBlueLeft ] [ Background action TransitionR1 ]\n[ PlayerPinkRight ] [ StayBlueLeft ] [ TransitionR6 ] -> [ StayPinkRight ] [ PlayerBlueLeft ] [ TransitionR6 ]\n[ action PlayerPinkLeft no FallBlock ] [ StayBlueRight ] [ Background ] -> [ PlayerPinkLeft ] [ StayBlueRight ] [ Background action TransitionR1 ]\n[ PlayerPinkLeft ] [ StayBlueRight ] [ TransitionR6 ] -> [ StayPinkLeft ] [ PlayerBlueRight ] [ TransitionR6 ]\n[ action PlayerPinkLeft no FallBlock ] [ StayBlueLeft ] [ Background ] -> [ PlayerPinkLeft ] [ StayBlueLeft ] [ Background action TransitionR1 ]\n[ PlayerPinkLeft ] [ StayBlueLeft ] [ TransitionR6 ] -> [ StayPinkLeft ] [ PlayerBlueLeft ] [ TransitionR6 ]\n\n(Climb)\n\n[ Climbable ] -> [ ]\nhorizontal [ BGPink | ZonePink ] -> [ BGPink Climbable | ZonePink ]\nhorizontal [ BGPink | Block ] -> [ BGPink | Block Climbable ]\nhorizontal [ Block | Block ] -> [ Block Climbable | Block Climbable ]\n\ndown [ ClimbRight | BGPink ] -> [ PlayerPinkRight | BGPink ]\ndown [ ClimbRight | Block ] -> [ PlayerPinkRight | Block ]\nright [ ClimbRight | ZonePink ] -> [ > ClimbRight | ZonePink ]\nright [ ClimbRight | Climbable ] -> [ FallRight | Climbable ]\nright [ > PinkRight no FallBlock | Climbable ] -> [ up ClimbRight | Climbable ] sfx7\n\ndown [ ClimbLeft | BGPink ] -> [ PlayerPinkLeft | BGPink ]\ndown [ ClimbLeft | Block ] -> [ PlayerPinkLeft | Block ]\nleft [ ClimbLeft | ZonePink ] -> [ > ClimbLeft | ZonePink ]\nleft [ ClimbLeft | Climbable ] -> [ FallLeft | Climbable ]\nleft [ > PinkLeft no FallBlock | Climbable ] -> [ up ClimbLeft | Climbable ] sfx7\n\n(Push)\n\n[ > Player | Crate no GPlayer no PressX no TCount ] -> [ > Player | > Crate ]\n[ > Player no FallBlock | Block ] -> [ > Player | > Block ] sfx5\n[ > Player | GBlock no rigids no ZonePurple | no Wall no ZonePurple no OutLine no Crate ] -> [ > Player | > GBlock | ]\n\n[ StuckCursor ] -> [ ] (Stuck effect)\n[ StuckCursorAbove ] -> [ ]\nlate up [ StuckCursor | ] -> [ StuckCursor | StuckCursorAbove ]\n[ > PlayerBlueRight | GPlayer Crate ] -> [ WalkAnimBR1 | GPlayer action StuckCursor Crate ]\n[ > PlayerBlueLeft | GPlayer Crate ] -> [ WalkAnimBL1 | GPlayer action StuckCursor Crate ]\n[ > PlayerBlueRight | StuckRigid ] [ GPlayer ] -> [ WalkAnimBR1 | StuckRigid ] [ GPlayer action StuckCursor ]\n[ > PlayerBlueLeft | StuckRigid ] [ GPlayer ] -> [ WalkAnimBL1 | StuckRigid ] [ GPlayer action StuckCursor ]\n\n[ StuckRigid ] -> [ ]\n[ Rigid1 GPlayer ] [ Rigid1 ] -> [ Rigid1 GPlayer StuckRigid ] [ Rigid1 StuckRigid ]\n[ Rigid2 GPlayer ] [ Rigid2 ] -> [ Rigid2 GPlayer StuckRigid ] [ Rigid2 StuckRigid ]\n\nrigid [ > Player | RigidCrate rigid1 no StuckRigid ] -> [ > Player | > RigidCrate > rigid1 ]\n+ rigid [ moving RigidCrate rigid1 | RigidCrate rigid1 ] -> [ moving RigidCrate moving rigid1 | moving RigidCrate moving rigid1 ]\n+ rigid [ moving rigid1 | GBlock rigid1 ] -> [ moving rigid1 | moving GBlock moving rigid1 ]\n\nrigid [ > Player | RigidCrate rigid2 no StuckRigid ] -> [ > Player | > RigidCrate > rigid2 ]\n+ rigid [ moving RigidCrate rigid2 | RigidCrate rigid2 ] -> [ moving RigidCrate moving rigid2 | moving RigidCrate moving rigid2 ]\n+ rigid [ moving rigid2 | GBlock rigid2 ] -> [ moving rigid2 | moving GBlock moving rigid2 ]\n\n(RigidCrate)\n\n[ RigidDeco ] -> [ ]\nlate down [ rigid1 | no rigid1 ] -> [ rigid1 RigidD | CrateBelow ]\nlate up [ rigid1 | no rigid1 ] -> [ rigid1 | CrateAbove ]\nlate left [ rigid1 | no rigid1 ] -> [ rigid1 RigidL | ]\nlate right [ rigid1 RigidL | no rigid1 ] -> [ rigid1 RigidLR | ]\nlate right [ rigid1 no AboveDeco | no rigid1 ] -> [ rigid1 RigidR | ]\n\nlate up [ RigidL rigid1 | rigid1 no AboveDeco ] -> [ RigidL rigid1 | rigid1 AboveRigidL ]\nlate up [ RigidR rigid1 | rigid1 no AboveDeco ] -> [ RigidR rigid1 | rigid1 AboveRigidR ]\nlate up [ RigidLR rigid1 | rigid1 ] -> [ RigidLR rigid1 | rigid1 AboveRigidLR ]\n\nlate up [ RigidL rigid1 | rigid1 RigidR ] -> [ RigidL rigid1 | rigid1 AboveRigidLRwithR ]\nlate up [ RigidR rigid1 | rigid1 RigidL ] -> [ RigidR rigid1 | rigid1 AboveRigidLRwithL ]\n\nlate up [ rigid1 | CrateAbove ] -> [ rigid1 RigidU | CrateAbove ]\n\nlate left [ rigid1 RigidU | rigid1 no RigidU ] -> [ rigid1 RigidU | rigid1 RigidUL ]\nlate right [ rigid1 RigidU | rigid1 no RigidU ] -> [ rigid1 RigidU | rigid1 RigidUR ]\n\n\nlate down [ rigid2 | no rigid2 ] -> [ rigid2 RigidD | CrateBelow ]\nlate up [ rigid2 | no rigid2 ] -> [ rigid2 | CrateAbove ]\nlate left [ rigid2 | no rigid2 ] -> [ rigid2 RigidL | ]\nlate right [ rigid2 RigidL | no rigid2 ] -> [ rigid2 RigidLR | ]\nlate right [ rigid2 no AboveDeco | no rigid2 ] -> [ rigid2 RigidR | ]\n\nlate up [ RigidL rigid2 | rigid2 no AboveDeco ] -> [ RigidL rigid2 | rigid2 AboveRigidL ]\nlate up [ RigidR rigid2 | rigid2 no AboveDeco ] -> [ RigidR rigid2 | rigid2 AboveRigidR ]\nlate up [ RigidLR rigid2 | rigid2 ] -> [ RigidLR rigid2 | rigid2 AboveRigidLR ]\n\nlate up [ RigidL rigid2 | rigid2 RigidR ] -> [ RigidL rigid2 | rigid2 AboveRigidLRwithR ]\nlate up [ RigidR rigid2 | rigid2 RigidL ] -> [ RigidR rigid2 | rigid2 AboveRigidLRwithL ]\n\nlate up [ rigid2 | CrateAbove ] -> [ rigid2 RigidU | CrateAbove ]\n\nlate left [ rigid2 RigidU | rigid2 no RigidU ] -> [ rigid2 RigidU | rigid2 RigidUL ]\nlate right [ rigid2 RigidU | rigid2 no RigidU ] -> [ rigid2 RigidU | rigid2 RigidUR ]\n\n(Fall)\n\ndown [ FallRight | Ridable ] -> [ PlayerPinkRight | Ridable ]\ndown [ FallRight no Transition | no Ridable ] -> [ > FallRight | ]\ndown [ PinkRight no Transition | no Ridable ] -> [ > FallRight | ] sfx7\n\ndown [ FallLeft | BGPink ] -> [ PlayerPinkLeft | BGPink ]\ndown [ FallLeft | Block ] -> [ PlayerPinkLeft | Block ]\ndown [ FallLeft no Transition | no Ridable ] -> [ > FallLeft | ]\ndown [ PinkLeft no Transition | no Ridable ] -> [ > FallLeft | ] sfx7\n\n[ FallBlock ] -> [ ]\ndown [ Block no Transition | no ColBGPink no Block no Player ] [ PlayerFall ] -> [ > Block | ] [ PlayerFall FallBlock ] sfx1\n\n(ZonePink border)\n\n[ AddPinkL ] -> [ ]\n[ RemovePinkL ] -> [ ]\n[ AddPinkR ] -> [ ]\n[ RemovePinkR ] -> [ ]\n\nlate left [ no ZonePink no AddPinkL | ZonePink ] -> [ AddPinkLUD | ZonePink ]\nlate right [ no ZonePink no AddPinkR | ZonePink ] -> [ AddPinkRUD | ZonePink ]\n\nlate up [ AddPinkLUD | no ZonePink ] -> [ AddPinkLD | ]\nlate up [ AddPinkRUD | no ZonePink ] -> [ AddPinkRD | ]\n\nlate down [ AddPinkLUD | no ZonePink ] -> [ AddPinkLU | ]\nlate down [ AddPinkRUD | no ZonePink ] -> [ AddPinkRU | ]\n\nlate down [ AddPinkLD | no ZonePink ] -> [ | ]\nlate down [ AddPinkRD | no ZonePink ] -> [ | ]\n\nlate left [ ZonePink no RemovePinkL | no ZonePink ] -> [ ZonePink RemovePinkLUD | ]\nlate right [ ZonePink no RemovePinkR | no ZonePink ] -> [ ZonePink RemovePinkRUD | ]\n\nlate up [ RemovePinkLUD | ZonePink ] -> [ RemovePinkLD | ZonePink ]\nlate up [ RemovePinkRUD | ZonePink ] -> [ RemovePinkRD | ZonePink ]\n\nlate down [ RemovePinkLUD | ZonePink ] -> [ RemovePinkLU | ZonePink ]\nlate down [ RemovePinkRUD | ZonePink ] -> [ RemovePinkRU | ZonePink ]\n\nlate down [ RemovePinkLD | ZonePink ] -> [ | ZonePink ]\nlate down [ RemovePinkRD | ZonePink ] -> [ | ZonePink ]\n\nlate right [ RemovePinkRU | AddPinkLU ] -> [ RemovePinkRU | ]\nlate right [ RemovePinkRD | AddPinkLD ] -> [ RemovePinkRD | ]\n\nlate right [ RemovePinkRUD | AddPinkLU ] -> [ RemovePinkRUD | ]\nlate right [ RemovePinkRUD | AddPinkLD ] -> [ RemovePinkRUD | ]\n\nlate left [ RemovePinkLU | AddPinkRU ] -> [ RemovePinkLU | ]\nlate left [ RemovePinkLD | AddPinkRD ] -> [ RemovePinkLD | ]\n\nlate left [ RemovePinkLUD | AddPinkRU ] -> [ RemovePinkLUD | ]\nlate left [ RemovePinkLUD | AddPinkRD ] -> [ RemovePinkLUD | ]\n\nlate left [ AddPinkLUD | RemovePinkRUD ] -> [ | RemovePinkRUD ]\nlate right [ AddPinkRUD | RemovePinkLUD ] -> [ | RemovePinkLUD ]\nlate left [ AddPinkLUD | RemovePinkRU ] -> [ AddPinkLD | RemovePinkRU ]\nlate right [ AddPinkRUD | RemovePinkLU ] -> [ AddPinkRD | RemovePinkLU ]\nlate left [ AddPinkLUD | RemovePinkRD ] -> [ AddPinkLU | RemovePinkRD ]\nlate right [ AddPinkRUD | RemovePinkLD ] -> [ AddPinkRU | RemovePinkLD ]\nlate left [ AddPinkLU | RemovePinkRU ] -> [ | RemovePinkRU ]\nlate right [ AddPinkRU | RemovePinkLU ] -> [ | RemovePinkLU ]\nlate left [ AddPinkLD | RemovePinkRD ] -> [ | RemovePinkRD ]\nlate right [ AddPinkRD | RemovePinkLD ] -> [ | RemovePinkLD ]\n\n(Animation)\n\nright [ > PlayerBlueLeft ] -> [ > PlayerBlueRight ]\nright [ > WalkAnimBL1 ] -> [ > WalkAnimBR1 ]\nright [ > WalkAnimBL2 ] -> [ > WalkAnimBR2 ]\nright [ > WalkAnimBL3 ] -> [ > WalkAnimBR3 ]\n\nleft [ > PlayerBlueRight ] -> [ > PlayerBlueLeft ]\nleft [ > WalkAnimBR1 ] -> [ > WalkAnimBL1 ]\nleft [ > WalkAnimBR2 ] -> [ > WalkAnimBL2 ]\nleft [ > WalkAnimBR3 ] -> [ > WalkAnimBL3 ]\n\n[ WalkAnimBR3 ] -> [ PlayerBlueRight ]\n[ WalkAnimBR2 ] -> [ WalkAnimBR3 ]\n[ WalkAnimBR1 ] -> [ WalkAnimBR2 ]\n[ > PlayerBlueRight ] -> [ > WalkAnimBR1 ]\n\n[ WalkAnimBL3 ] -> [ PlayerBlueLeft ]\n[ WalkAnimBL2 ] -> [ WalkAnimBL3 ]\n[ WalkAnimBL1 ] -> [ WalkAnimBL2 ]\n[ > PlayerBlueLeft ] -> [ > WalkAnimBL1 ]\n\nright [ > PlayerPinkLeft ] -> [ > PlayerPinkRight ]\nright [ > WalkAnimPL1 ] -> [ > WalkAnimPR1 ]\nright [ > WalkAnimPL2 ] -> [ > WalkAnimPR2 ]\nright [ > WalkAnimPL3 ] -> [ > WalkAnimPR3 ]\n\nleft [ > PlayerPinkRight ] -> [ > PlayerPinkLeft ]\nleft [ > WalkAnimPR1 ] -> [ > WalkAnimPL1 ]\nleft [ > WalkAnimPR2 ] -> [ > WalkAnimPL2 ]\nleft [ > WalkAnimPR3 ] -> [ > WalkAnimPL3 ]\n\n[ WalkAnimPR3 ] -> [ PlayerPinkRight ]\n[ WalkAnimPR2 ] -> [ WalkAnimPR3 ]\n[ WalkAnimPR1 ] -> [ WalkAnimPR2 ]\n[ > PlayerPinkRight ] -> [ > WalkAnimPR1 ]\n\n[ WalkAnimPL3 ] -> [ PlayerPinkLeft ]\n[ WalkAnimPL2 ] -> [ WalkAnimPL3 ]\n[ WalkAnimPL1 ] -> [ WalkAnimPL2 ]\n[ > PlayerPinkLeft ] -> [ > WalkAnimPL1 ]\n\n[ stationary Player ] [ stationary GhostBlockAnim5 ] -> [ Player ] [ action GhostBlock ]\n[ stationary Player ] [ stationary GhostBlockAnim4 ] -> [ Player ] [ action GhostBlockAnim5 ]\n[ stationary Player ] [ stationary GhostBlockAnim3 ] -> [ Player ] [ action GhostBlockAnim4 ]\n[ stationary Player ] [ stationary GhostBlockAnim2 ] -> [ Player ] [ action GhostBlockAnim3 ]\n[ stationary Player ] [ stationary GhostBlockAnim1 ] -> [ Player ] [ action GhostBlockAnim2 ]\n[ stationary Player ] [ stationary GhostBlock ] -> [ Player ] [ action GhostBlockAnim1 ]\n\n[ GhostPlayerAbove ] -> [ ]\nlate up [ GPAboveAnim | ] -> [ GPAboveAnim | GhostPlayerAbove ]\n\n[ stationary Player ] [ stationary GhostPlayerAnim5 ] -> [ Player ] [ action GhostPlayer ]\n[ stationary Player ] [ stationary GhostPlayerAnim4 ] -> [ Player ] [ action GhostPlayerAnim5 ]\n[ stationary Player ] [ stationary GhostPlayerAnim3 ] -> [ Player ] [ action GhostPlayerAnim4 ]\n[ stationary Player ] [ stationary GhostPlayerAnim2 ] -> [ Player ] [ action GhostPlayerAnim3 ]\n[ stationary Player ] [ stationary GhostPlayerAnim1 ] -> [ Player ] [ action GhostPlayerAnim2 ]\n[ stationary Player ] [ stationary GhostPlayer ] -> [ Player ] [ action GhostPlayerAnim1 ]\n\n[ Background Transition1 ] [ Background no Transition1 ] -> [ Background Transition1 ] [ Background Transition1 ]\n[ stationary Transition9 ] -> [ ] again\n[ stationary Transition8 ] -> [ action Transition9 ] again\n[ stationary Transition7 ] -> [ action Transition8 ] again\n[ stationary Transition6 ] -> [ action Transition7 ] again\n[ stationary Transition5 ] -> [ action Transition6 ] again\n[ stationary Transition4 ] -> [ action Transition5 ] again\n[ stationary Transition3 ] -> [ action Transition4 ] again\n[ stationary Transition2 ] -> [ action Transition3 ] again\n[ stationary Transition1 ] -> [ action Transition2 ] again\n\n[ Background TransitionR1 ] [ Background no TransitionR1 ] -> [ Background TransitionR1 ] [ Background TransitionR1 ]\n[ stationary TransitionR9 ] -> [ ] again\n[ stationary TransitionR8 ] -> [ action TransitionR9 ] again\n[ stationary TransitionR7 ] -> [ action TransitionR8 ] again\n[ stationary TransitionR6 ] -> [ action TransitionR7 ] again\n[ stationary TransitionR5 ] -> [ action TransitionR6 ] again\n[ stationary TransitionR4 ] -> [ action TransitionR5 ] again\n[ stationary TransitionR3 ] -> [ action TransitionR4 ] again\n[ stationary TransitionR2 ] -> [ action TransitionR3 ] again\n[ stationary TransitionR1 ] -> [ action TransitionR2 ] again\n\n(Level start)\n\n[ Target no LevelStart ] [ Background no Transition ] -> [ Target ] [ Background Transition5 ]\n[ Target Transition9 no LevelStart ] -> [ Target LevelStart ]\n\n(Win)\n\ndown [ PlayerPink no WinAnim Target no FallBlock | Ridable ]-> [ PlayerPink WinAnim1 Target | Ridable ] sfx8\n\n[ WinAnim6 ] [ Background no Transition ] -> [ WinAnim6 ] [ Background Transition1 ]\n[ WinAnim5 ] -> [ WinAnim6 ]\n[ WinAnim4 ] -> [ WinAnim5 ]\n[ WinAnim3 ] -> [ WinAnim4 ]\n[ WinAnim2 ] -> [ WinAnim3 ]\n[ WinAnim1 ] -> [ WinAnim2 ]\n\n[ > Player WinAnim ] -> cancel\n[ action Player WinAnim ] -> cancel\n\n[ Target WinAnim6 Transition5 ] -> [ Target WinAnim6 Transition5 Winable ]\n\n(tutorial)\n\n[ Crate PressX no TCount ] [ PressX ] -> [ Crate TCount1 ] [ ]\n\n[ TCount5 ] -> [ ]\n[ TCount4 ] -> [ TCount5 ] message X or spacebar to switch characters.\n[ TCount3 ] -> [ TCount4 ]\n[ TCount2 ] -> [ TCount3 ]\n[ TCount1 ] -> [ TCount2 ]\n\n[ > Player ] [ Crate PressX ] -> [ Player ] [ Crate PressX ]\n[ > Player ] [ Crate TCount ] -> [ Player ] [ Crate TCount ]\n[ PlayerPink ] [ PressX ] -> [ PlayerPink ] [ ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Winable \n\n======= \nLEVELS\n=======\n\n\n(Tutorial)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,!xxxxxxxxxo,,,..'''p++++++++++'''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxxx\"xxxxxx,,,..'''p+①+①++++++'''.\n.,,,,,,x,xxxoxx,,,..''''''+'++++++'''.\n.,,,xxxxxxxx,xx,,,..'''++++++++'++'''.\n.,,,xxxxxxxxxxx,,,..'''+++①+++++++'''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,!xxxxxxxx,,,,..''''p++++++++''''.\n.,,,,,,,xxxxxx,,,,..'''''''++++++''''.\n.,,,,,,xxxxxox,,,,..''''''+++++++''''.\n.,,,,xxxxxx\",x,,,,..''''++++++①'+''''.\n.,,,,xx\"xxx\"xx,,,,..''''++①+++①++''''.\n.,,,,xx\"x,,,,,,,,,..''''++①+'''''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxx!xxxx,,,,..''''++++p++++''''.\n.,,,,xxxx\"xxxx,,,,..''''++++①++++''''.\n.,,,,x,,,,,,,x,,,,..''''+'''''''+''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxx\"xxx,,,,..''''+++++①+++''''.\n.,,,,xxx\"o,\"xx,,,,..''''+++①+'①++''''.\n.,,,,xx\",xx\"xx,,,,..''''++①'++①++''''.\n.,,,,xx\"xx,,,,,,,,..''''++①++''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxox,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xx!xx\"xx,,,,,,..'''++p++①++''''''.\n.,,,,,,,,,,,,$,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(二つでスタックのチュートリアル)\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxx!xxxoxxx,,,..'''+++%+++++++'''.\n.,,,,xx\"x\"xxxx,,,,..''''+++++++++''''.\n.,,,,#########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,b,*,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.xxxxxxxxxxxxxxxxx..+++++++++++++++++.\n.x,,,,,,,,,,,,,,,x..+'''''''''''''''+.\n.x,,,,,,b,*,,,,,,x..+''''''''+''''''+.\n.x,,xxxxxxxxxxx,,x..+''+++++++++++''+.\n.x,,xxx!xxxoxxx,,x..+''+++%+++++++''+.\n.x,,,xx\"x\"xxxx,,,x..+'''+++++++++'''+.\n.x,,,,,,,,,,,,,,,x..+'''''''''''''''+.\n.xxxxxxxxxxxxxxxxx..+++++++++++++++++.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(一個なら押しのけて登れる)\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,xxxxxx,,,,,..''''''++++++'''''.\n.,,,,,,x\",x\"x,,,,,..''''''++'+++'''''.\n.,,,,,,,!,,,x,,,,,..'''''''%'''+'''''.\n.,,,,#b,,,*,x,,,,,..'''''''''''+'''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,oxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,,,,xxxxxx,,,,..'''''''++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage Reach the heart to win.\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,x!xxxxxox,,,,..''''+p+++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage You can climb one square.\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxox,,,,..''''+石+++++++''''.\n.,,,,,!,,,,,,,,,,,..'''''p'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage You can only push one block at a time.\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxox,,,,..''''+++++++++''''.\n.,,,,x!\"xxxx\"x,,,,..''''+p石++++石+''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 1. Two Worlds\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,!xxx,b,xxxxxo,,..''%+++'''++++++''.\n.,,,xxx,,,xxxx,,,,..'''+++'''++++''''.\n.,,,xxx,,,xxxx,,,,..'''+++'''++++''''.\n.,,,xxx,,,xxx,,,,,..'''+++'''+++'''''.\n.,,,xxxx*x\"xx,,,,,..'''++++'++++'''''.\n.,,,xxx,,,,,,,,,,,..'''+++'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,文,,,,,,,,..'''''''''''''''''.\n.,,,!xxx,,,xxxo,,,..'''%+++'''++++'''.\n.,,,,xxxx*xxx,,,,,..''''++++'+++'''''.\n.,,,,xxx,,,xx,,,,,..''''+++'''++'''''.\n.,,,,,,,,文,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 2. Delivery\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,oxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,,xxxxxx,,,,,..''''''++++++'''''.\n.,,,,,,x!x\"xx,,,,,..''''''+%++++'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,b*,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 3. One-way Tickets\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx,,,,,,,,,,,..''''++'''''''''''.\n.,,,,x\",,,b*,,,,,,..''''++'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx########,,,..''''++'''''''''''.\n.,,,,xxxxxxxxxx,,,..''''++++++++++'''.\n.,,,,xxxxxxxxxx,,,..''''++++++++++'''.\n.,,,,xxx!xxxoxx,,,..''''+++%++++++'''.\n.,,,,#xx\"x\"xxxx,,,..'''''+++++++++'''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(message Brain training\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,b*,,x\"x,,,,,,,..'''''''+++'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxx!xxxxxxx,,,..'''+++%+++++++'''.\n.,,,xxx,,,,,xxx,,,..'''+++'''''+++'''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxxxxx\"xxxx,,,..'''+++++++++++'''.\n.,,,xxxx\"o,\"xxx,,,..'''++++++'++++'''.\n.,,,xxx\",xx\"xx,,,,..'''++++'+++++''''.\n.,,,,xx\"xx####,,,,..''''+++++''''''''.\n.,,,,######,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(message 2 x 3\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,##,,,,,##,,,,..'''''''''''''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#,\"x\"x\",#,,,,..''''''+++++''''''.\n.,,,,#,,b,*,,#,,,,..'''''''''''''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,xxxxo,,,,,,..''''''+++++''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,xx!xx,,,,,,..''''''++%++''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,##,,,,,##,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 4. 3 x 6\n\n\n......................................\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,b*,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxo,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,!xxxxx,,,,,,..'''''%+++++''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,##########,,,,..'''''''''''''''''.\n.,,,#,,,,,,,,#,,,,..'''''''''''''''''.\n.,,,#,\"!\"x\"x,#,,,,..'''''+p++++''''''.\n.,,,#b,,,*,,,#,,,,..'''''''''''''''''.\n.,,,#,xxxxxx##,,,,..'''''++++++''''''.\n.,,,#,*,,,,,,o,,,,..''''''''''''+''''.\n.,,,#,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,,,,,,,,#,,,,..'''''''''''''''''.\n.,,,##########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 5. Too Small to Climb\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,ox\"#,,,,,,..'''''''+++'''''''.\n.,,,,,,,,,\"#,,,,,,..'''''''''+'''''''.\n.,,,,,,,x,\"#,,,,,,..'''''''+'+'''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,!b*,,,,,,,..'''''''%'''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,b@,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,@,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,oxxx,,,,,,,..''''''++++'''''''.\n.,,,,,#,xxx,,,,,,,..'''''''+++'''''''.\n.,,,,,!,xxx,,,,,,,..'''''%'+++'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 6. I Hope That's Enough\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,xox,,,,,..''''''''++++'''''.\n.,,,,,,,,,xxx\"xx,,..''''''''+++++++''.\n.,,,,,,,,,,,,\"xx,,..''''''''''''+++''.\n.,,######xxxx\"xx,,..''''''''+++++++''.\n.,,#,,,!#x\",,,,,,,..''''''%'++'''''''.\n.,,#,*,,xx\"x,*,*,,..'''''''++++''''''.\n.,,####,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,##,,,,,,b,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 7. The Larger, the Better\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,#,#,#,#,#,#,..'''''''''''''''''.\n.,,,,,xxxxxo,,,,,,..'''''++++++''''''.\n.,,,,,xx\",,,,,,,,,..'''''+++'''''''''.\n.,,,,,xx\",,,,,,,,,..'''''+++'''''''''.\n.,,,,,!x\",@@@@,,,,..'''''%++'''''''''.\n.,#,#,#,#,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,b,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 8. Cut the Screen\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,oxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,@@@@@@@,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"x#x,,,,,..'''''+++++'+'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,x!x\"xxx,,,,,..'''''+%+++++'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,oxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,2222222,,,,,..'''''''''''''''''.\n.,x,,,xxx\"xxx,,,,,..'+'''+++++++'''''.\n.,,,,,@@@@@@@,,,,,..'''''''''''''''''.\n.,,,,,,xxxx!x,,,,,..''''''++++%+'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 9. Transfer\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.#################..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,xx,,,2b@@@,,o,,..''++''''''''''+''.\n.,,!\",222,@,,,,x,,..''%+''''''''''+''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.#################..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 10. Do You Like Math Puzzles?\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,b,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,\"@#xx#xx#xx#x#..'''+''++++++++'+'.\n.,,\"\"@#xxxxxxxxxx#..''++''++++++++++'.\n.,,\"\"@#xx,xx,xx,o#..''++''++'++'++'+'.\n.,,,,@#!x,xx,xx,x#..''''''%+'++'++'+'.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 11. Haste Makes Waste\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,xxx,,,,,,,..'''''''+++'''''''.\n.,,xxx,,,,,,,xxx,,..''+++'''''''+++''.\n.,,xx\",,@@@,,xox,,..''+++'''''''+++''.\n.,,!x\",,@@@,,xxx,,..''%++'''''''+++''.\n.,,###,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 12. Neither Road Leads to Rome\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,#############,,,..'''''''''''''''''.\n.,#,,,,!\"\"\"x\"x###,..''''''%+++++++++'.\n.,#b@@,,,,,,,,xo#,..'''''''''''''+++'.\n.,#,,,,xxxxxx,xx#,..''''''++++++'+++'.\n.,#,,,,,,,,,,,###,..'''''''''''''''''.\n.,#############,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 13. This Elevator Will Be Taking No Passengers\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,o\"\"\"\"\",,,,,,..'''''++++++''''''.\n.,,b*,,\"\"\"\"\",,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.####xxx,,,xxx####..''''+++'''+++''''.\n.,,,,xxx@@@xxx,,,,..''''+++'''+++''''.\n.,,,,xxx@@@xxx,,,,..''''+++'''+++''''.\n.,,,,xxx,,,xxx,,,,..''''+++'''+++''''.\n.,,,,xxx,,,xxx,,,,..''''+++'''+++''''.\n.,,,,x!x,,,xxx,,,,..''''+%+'''+++''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................)\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx\"\"\"\"\"xx,,,,..''''+++++++++''''.\n.,b*,xx\"\"\"\"\"xx,,,,..''''+++++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#oxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#,xx@@@xxx#,,,..'''''++'''+++''''.\n.,,,#xxx@@@xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#x!x,,,xxx#,,,..''''+%+'''+++''''.\n.,,,###,,,,,###,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,xxxx\"\"\"xx,,,,..''''+++++++++''''.\n.,,,,xxx\"\"\"\"xx,,,,..''''+++++++++''''.\n.,b*,xx,\"\"\"\"xx,,,,..''''++'++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#oxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#,xx@@@xxx#,,,..'''''++'''+++''''.\n.,,,#xxx@@@xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#x!x,,,xxx#,,,..''''+%+'''+++''''.\n.,,,###,,,,,###,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 14. 3 x 21\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,#,,xxx\"\"\"o,,..''''''''+++++++''.\n.,,,,@@@,xxx\"\"\",,,..''''''''++++++'''.\n.,,,,@@@#\"\"\"\"\"\",,,..''''''''++++++'''.\n.,,,#@@@,\"\"\"\"\"\",,,..''''''''++++++'''.\n.,,,,@@@,\"\"\"\"\"\",#,..''''''''++++++'''.\n.,,,,@@@,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#,,,,b,,22,,,,..'''''''''''''''''.\n.,,,x!,,,,,,,2,,,,..'''+%''''''''''''.\n.,,,,#,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,#,#,#,#,#,..'''''''''''''''''.\n.,,,,,#,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\nmessage Thanks for playing!\n\n\n(......................................\n.,,,,,#,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#o,b,#,,,,,,..''''''+''''''''''.\n.,,,,,,,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#,*,*#,,,,,,..'''''''''''''''''.\n.,,,,,#,@@@#,,,,,,..'''''''''''''''''.\n.,,,,,#,@@@##,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,##,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,x,,#,,,,,..''''''''%''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,b,,,,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,o,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,\",,,,,,#,,..'''''''+'''''''''.\n.,*,*,*,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,#,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,@@,@@@#,,,,,,#,,..'''''''''''''''''.\n.,@@,,@@,,,,,,,,,,..'''''''''''''''''.\n.,@@@@@@#,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,#,!,#,#,,..''''''''''%''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,##!######,,,,..''''''%''''''''''.\n.,,,,#,,,,,,o#,,,,..'''''''''''+'''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#,,@b2,,#,,,,..'''''''+'+'''''''.\n.,,,,#,@@,22,#,,,,..''''''++'++''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,x\"\"\"x,,,,,,..''''''+++++''''''.\n.,,,,,,\"\"\"\"\",,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,#,xxx,,,,,oxx,#,..'''+++'''''+++'''.\n.,#,xxx,222,xxx,#,..'''+++'''''+++'''.\n.,#,xxx,,,,,xxx,#,..'''+++'''''+++'''.\n.,#,xxx,@@,,xxx,#,..'''+++'''''+++'''.\n.,#,x!x,,,,,xxx,#,..'''+%+'''''+++'''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,\"o,,#,,,..'''''''''++''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#xxx,,,,xxx#,,,..'''+++''''+++''''.\n.,,#xxx,,,,\"xx#,,,..'''+++''''+++''''.\n.,,#xxx,,,,\"xx#,,,..'''+++''''+++''''.\n.,,#xxx,2@,\"xx#,,,..'''+++''''+++''''.\n.,,#!xx22@@\"xx#,,,..'''%++''''+++''''.\n.,,#,,,2,,@,,,#,,,..'''''''''''''''''.\n.,,#,,,2,,@,,,#,,,..'''''''''''''''''.\n.,,#,b,22@@,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n......................................)\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", 2, "tick", "tick", 2, "tick", 2, "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 4, "tick", "tick", "tick", "tick"], "background colbgpink outline:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background bgblue:1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,background bgblue ghostplayeranim1 zonepurple:2,background bgblue zonepurplebelow:3,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,background bgblue zonepurple:4,4,4,3,1,1,1,1,0,0,1,1,1,1,1,1,4,4,4,3,1,1,1,1,0,0,1,\n1,1,1,1,1,4,4,4,3,1,1,1,1,0,0,1,1,1,1,1,1,1,4,background bgblue stayblueleft zonepurplebelow:5,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,background bgblue crateabove:6,background bgblue crate crateline:7,background bgblue cratebelow:8,1,1,1,0,0,1,1,1,1,1,1,1,4,3,1,1,1,1,1,0,0,1,1,1,1,1,1,4,4,4,3,1,1,1,\n1,0,0,1,1,1,1,1,1,4,4,4,3,1,1,1,1,0,0,1,1,1,1,1,1,4,3,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,background ghosttarget zonepurple:9,3,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background bgpink colbgpink:10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,\n10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,background bgpink climbable colbgpink:11,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,background playerpinkright removepinklud zonepink:12,addpinkru background bgpink climbable colbgpink:13,11,10,10,\n10,10,10,0,0,10,10,10,10,10,10,background zonepink:14,14,background removepinkld zonepink:15,10,10,10,10,10,0,0,10,10,10,10,10,10,14,14,14,10,10,10,10,10,0,0,10,\n10,10,10,10,10,background removepinkru zonepink:16,14,background removepinkrd zonepink:17,10,10,10,10,10,0,0,10,10,10,10,10,10,addpinkld background bgpink climbable colbgpink:18,background removepinkrud zonepink:19,addpinklu background bgpink climbable colbgpink:20,11,10,10,10,10,0,0,10,10,10,10,10,10,10,\n11,10,background removepinklud removepinkrud zonepink:21,10,10,10,10,0,0,10,10,10,10,10,10,addpinkrd background bgpink climbable colbgpink:22,background removepinklud zonepink:23,13,11,10,10,10,10,0,0,10,10,10,10,10,10,background removepinklu zonepink:24,14,15,10,10,10,10,\n10,0,0,10,10,10,10,10,10,14,14,17,10,10,10,10,10,0,0,10,10,10,10,10,10,14,20,11,10,10,10,10,10,0,0,10,10,10,\n10,10,10,background levelstart removepinkrud target zonepink:25,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,11,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,10,10,10,\n10,10,10,10,10,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", "7", "1627770584313.9392"] + ["title Two Worlds\nauthor nebu soku\nhomepage www.puzzlescript.net\n\nrun_rules_on_level_start\nrealtime_interval 0.1\nagain_interval 0.05\nbackground_color #282818\ntext_color #c8c8a8\nflickscreen 19x16\n\n========\nOBJECTS\n========\n\nBackground \n#282818\n\nOutLine\n#282818\n\nBGBlue\n#c8c8a8 #c1e4f0\n\nBGPink\n#282818 #f8cefd\n\nTarget \n#a0a088\n00.00\n00000\n00000\n.000.\n..0..\n\nGhostTarget \n#a0a088\n00.00\n00000\n00000\n.000.\n..0..\n\nWall \n#a0a088 #686850 #282818\n01000\n02010\n00020\n00000\n11111\n\nWallAbove\n#a0a088\n.....\n.....\n.....\n.....\n00000\n\nWallBelow\n#686850\n00000\n.....\n.....\n.....\n.....\n\nZonePurple\n#282818 #a0a088 #3d1e7e\n00000\n00000\n00100\n00000\n00000\n\nZonePurpleBelow\n#686850 #a0a088\n00000\n.....\n.....\n.....\n.....\n\nZonePink\n#c8c8a8 #ef90e3\n\nPlayerBlueRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850 #54b4d5\n.0000\n.0000\n.0121\n5.33.\n..34.\n\nWalkAnimBR1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850(#4fbbdf #608b8c #d5f5f6 #1d7788 #1a6978 #53aecc)\n.0000\n.0000\n.0121\n5.33.\n.....\n\nWalkAnimBR2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n.4..3\n\nWalkAnimBR3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n..3..\n\nPlayerBlueLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.43..\n\nWalkAnimBL1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.....\n\nWalkAnimBL2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n3..4.\n\nWalkAnimBL3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n..3..\n\nStayBlueRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n.0000\n.0000\n.0121\n5.33.\n..34.\n\nStayBlueLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #686850\n0000.\n0000.\n1210.\n.33.5\n.43..\n\nPlayerPinkRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818(#de4fdd #8a608b #f6d4f5 #871d86 #741978 #cc52c9 #d153d5)\n.5000\n.0000\n.0121\n..33.\n..34.\n\nWalkAnimPR1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.....\n\nWalkAnimPR2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nWalkAnimPR3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n..3..\n\nPlayerPinkLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.43..\n\nWalkAnimPL1\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.....\n\nWalkAnimPL2\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nWalkAnimPL3\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n..3..\n\nStayPinkRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n..34.\n\nStayPinkLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n.43..\n\nFallRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nFallLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nClimbRight\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n.5000\n.0000\n.0121\n..33.\n.4..3\n\nClimbLeft\n#686850 #a0a088 #c8c8a8 #686850 #282818 #282818\n0005.\n0000.\n1210.\n.33..\n3..4.\n\nGhostPlayer\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAbove\n#c8c8a8\n.....\n.....\n.....\n.....\n.000.\n\nGhostPlayerAnim1\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAnim2\n#c8c8a8 #686850\n.000.\n.010.\n.000.\n.111.\n.....\n\nGhostPlayerAnim3\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nGhostPlayerAnim4\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nGhostPlayerAnim5\n#c8c8a8 #686850\n.010.\n.000.\n.111.\n.....\n.....\n\nStuckRigid\nblack\n\nStuckCursor\n#282818\n0...0\n0...0\n0...0\n00000\n.....\n\nStuckCursorAbove\n#282818\n.....\n.....\n.....\n.....\n00000\n\nCrate \n#a0a088 #686850 #282818 #c8c8a8\n01110\n02220\n02020\n00000\n11111\n\nCrateAbove\n#a0a088\n.....\n.....\n.....\n.....\n00000\n\nCrateBelow\n#686850\n00000\n.....\n.....\n.....\n.....\n\nCrateLine\n#a0a088\n.....\n.....\n.....\n00000\n.....\n\nRigidCrate\n#a0a088 #282818\n11111\n11111\n11011\n11111\n11111\n\nRigidU\n#686850\n00000\n.....\n.....\n.....\n.....\n\nRigidUL\n#686850\n....0\n.....\n.....\n.....\n.....\n\nRigidUR\n#686850\n0....\n.....\n.....\n.....\n.....\n\nRigidD\n#a0a088 #686850\n.....\n.....\n.....\n00000\n11111\n\nRigidL\n#a0a088\n0....\n0....\n0....\n0....\n0....\n\nRigidR\n#a0a088\n....0\n....0\n....0\n....0\n....0\n\nRigidLR\n#a0a088\n0...0\n0...0\n0...0\n0...0\n0...0\n\nAboveRigidL\n#a0a088\n.....\n.....\n.....\n0....\n0....\n\nAboveRigidR\n#a0a088\n.....\n.....\n.....\n....0\n....0\n\nAboveRigidLR\n#a0a088\n.....\n.....\n.....\n0...0\n0...0\n\nAboveRigidLRwithR\n#a0a088\n....0\n....0\n....0\n0...0\n0...0\n\nAboveRigidLRwithL\n#a0a088\n0....\n0....\n0....\n0...0\n0...0\n\nrigid1\nblack\n\nrigid2\nblack\n\nBlock \n#c8c8a8 #a0a088 #686850\n12222\n21112\n21112\n21112\n22221\n\nGhostBlock\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim1\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim2\n#c8c8a8 #686850\n.....\n..0..\n..1..\n.....\n.....\n\nGhostBlockAnim3\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\nGhostBlockAnim4\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\nGhostBlockAnim5\n#c8c8a8 #686850\n..0..\n..1..\n.....\n.....\n.....\n\n\nClimbable\npink\n\nColBGPink\nblack\n.....\n.....\n.....\n.....\n.....\n\nFallBlock\nblack\n\nWinable\nblack\n\nAddPinkLUD\n#c8c8a8\n0....\n.....\n.....\n.....\n0....\n\nAddPinkLU\n#c8c8a8\n0....\n.....\n.....\n.....\n.....\n\nAddPinkLD\n#c8c8a8\n.....\n.....\n.....\n.....\n0....\n\nAddPinkRUD\n#c8c8a8\n....0\n.....\n.....\n.....\n....0\n\nAddPinkRU\n#c8c8a8\n....0\n.....\n.....\n.....\n.....\n\nAddPinkRD\n#c8c8a8\n.....\n.....\n.....\n.....\n....0\n\nRemovePinkLUD\n#282818\n0....\n.....\n.....\n.....\n0....\n\nRemovePinkLU\n#282818\n0....\n.....\n.....\n.....\n.....\n\nRemovePinkLD\n#282818\n.....\n.....\n.....\n.....\n0....\n\nRemovePinkRUD\n#282818\n....0\n.....\n.....\n.....\n....0\n\nRemovePinkRU\n#282818\n....0\n.....\n.....\n.....\n.....\n\nRemovePinkRD\n#282818\n.....\n.....\n.....\n.....\n....0\n\nTransition1\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransition2\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransition3\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransition4\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransition5\n#282818\n00000\n00000\n00000\n00000\n00000\n\nTransition6\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransition7\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransition8\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransition9\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransitionR1\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nTransitionR2\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransitionR3\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransitionR4\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransitionR5\n#282818\n00000\n00000\n00000\n00000\n00000\n\nTransitionR6\n#282818\n00000\n00000\n00.00\n00000\n00000\n\nTransitionR7\n#282818\n00000\n0.0.0\n0...0\n00.00\n00000\n\nTransitionR8\n#282818\n..0..\n.....\n.....\n0...0\n00.00\n\nTransitionR9\n#282818\n.....\n.....\n.....\n.....\n0...0\n\nHide\n#c8c8a8\n\nWinAnim1\n#c8c8a8\n.....\n.0...\n.....\n.....\n.....\n\nWinAnim2\n#c8c8a8\n.....\n.0...\n.....\n.....\n.....\n\nWinAnim3\n#c8c8a8\n.0...\n000..\n.0...\n...0.\n.....\n\nWinAnim4\n#c8c8a8\n.....\n.0...\n...0.\n..000\n...0.\n\nWinAnim5\n#c8c8a8\n.....\n.....\n.....\n...0.\n.....\n\nWinAnim6\n#c8c8a8\n.....\n.....\n.....\n.....\n.....\n\nLevelStart\n#282818\n\nPressX\n#686850 #282818\n0.0.0\n0.0.0\n00.00\n0.0.0\n0.0.0\n\nTCount1\nblack\n\nTCount2\nblack\n\nTCount3\nblack\n\nTCount4\nblack\n\nTCount5\nblack\n\n=======\nLEGEND\n=======\n\nBlueRight = PlayerBlueRight or WalkAnimBR1 or WalkAnimBR2 or WalkAnimBR3\nBlueLeft = PlayerBlueLeft or WalkAnimBL1 or WalkAnimBL2 or WalkAnimBL3\nPlayerBlue = BlueRight or BlueLeft\n\nPinkRight = PlayerPinkRight or WalkAnimPR1 or WalkAnimPR2 or WalkAnimPR3 \nPinkLeft = PlayerPinkLeft or WalkAnimPL1 or WalkAnimPL2 or WalkAnimPL3\nPlayerPink = PinkRight or PinkLeft\nPlayerFall = PlayerPink or FallRight or FallLeft\n\nPlayer = PlayerBlue or PlayerPink or ClimbRight or ClimbLeft\nPlayerMove = PlayerBlue or PlayerPink\n\nGBlock = GhostBlock or GhostBlockAnim1 or GhostBlockAnim2 or GhostBlockAnim3 or GhostBlockAnim4 or GhostBlockAnim5\n\nGPlayer = GhostPlayer or GhostPlayerAnim1 or GhostPlayerAnim2 or GhostPlayerAnim3 or GhostPlayerAnim4 or GhostPlayerAnim5\nGPAboveAnim = GhostPlayerAnim3 or GhostPlayerAnim4 or GhostPlayerAnim5\n\nRidable = BGPink or Block or ColBGPink\n\nRigids = rigid1 or rigid2\n\nAboveDeco = AboveRigidL or AboveRigidR or RigidL or RigidR or RigidLR\nRigidDeco = RigidU or AboveDeco or RigidD or AboveRigidLR or AboveRigidLRwithR or AboveRigidLRwithL or RigidUL or RigidUR\n\nAddPinkL = AddPinkLUD or AddPinkLU or AddPinkLD\nAddPinkR = AddPinkRUD or AddPinkRU or AddPinkRD\n\nRemovePinkL = RemovePinkLUD or RemovePinkLU or RemovePinkLD\nRemovePinkR = RemovePinkRUD or RemovePinkRU or RemovePinkRD\n\nTransition = Transition1 or Transition2 or Transition3 or Transition4 or Transition5 or Transition6 or Transition7 or Transition8 or Transition9\nTransitionR = TransitionR1 or TransitionR2 or TransitionR3 or TransitionR4 or TransitionR5 or TransitionR6 or TransitionR7 or TransitionR8 or TransitionR9\n\nWinAnim = WinAnim1 or WinAnim2 or WinAnim3 or WinAnim4 or WinAnim5 or WinAnim6\nTCount = TCount1 or TCount2 or TCount3 or TCount4\n\n. = Background\n, = BGBlue\n' = BGPink\n# = Wall and BGBlue\nB = PlayerBlueRight and BGBlue\nP = PlayerPinkRight and ZonePink\n* = Crate and BGBlue\n@ = RigidCrate and rigid1 and BGBlue\n2 = RigidCrate and rigid2 and BGBlue\nO = GhostTarget and ZonePurple\nx = ZonePurple and BGBlue\n+ = ZonePink\n\" = GhostBlock and ZonePurple and BGBlue\n! = GhostPlayer and ZonePurple and BGBlue\n($ = StayBlueRight and BGBlue)\n% = StayPinkRight and ZonePink\n石 = Block and ZonePink\n文 = PressX and BGBlue\n\n=======\nSOUNDS\n=======\n\nPlayerMove move 15203103\nCrate move 80987507\nRigidCrate move 80987507\nBlock action 70814309\nStuckCursor action 20002502 (boo)\nZonePurple move 95712903\nZonePink action 52706103\nTransition1 action 54782309\nTransitionR1 action 54782309\n\nsfx0 30806303\nsfx1 91797700 (fall)\nsfx2 99718300\nsfx3 65480100\nsfx4 80396503 (jump1)\nsfx5 80987507 (block)\nsfx6 45846907\nsfx7 28015305 (jump2)\nsfx8 10636903\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPressX\nTCount, TCount5\nLevelStart\nClimbable\nFallBlock\nWinable\nrigids\nStuckRigid\nBGBlue\nZonePink\nBGPink\nWallBelow\nTarget\nHide\nCrateBelow, ZonePurpleBelow\nPlayer, Wall, Crate, ZonePurple, StayBlueRight, StayBlueLeft, StayPinkRight, StayPinkLeft, FallRight, FallLeft, ClimbRight, ClimbLeft, Block, ColBGPink, RigidCrate\nRemovePinkL\nRemovePinkR\nGhostTarget\nRigidU, RigidUL, RigidUR\nGPlayer\nAboveRigidL, AboveRigidR, RigidL, RigidR, RigidLR\nRigidD, AboveRigidLR, AboveRigidLRwithR, AboveRigidLRwithL\nCrateAbove\nStuckCursorAbove\nWallAbove\nGBlock\nGhostPlayerAbove\nCrateLine\nStuckCursor\nAddPinkL\nAddPinkR\nOutLine\nWinAnim\nTransition, TransitionR\n\n======\nRULES \n====== \n[ > Player ] [ FallBlock ] -> cancel (bug?) \n\n(int)\n\n[ > Player Transition ] -> [ Player Transition ]\n[ ColBGPink ] -> [ ]\n[ BGPink ] -> [ BGPink ColBGPink ]\n[ Background no BGBlue no BGPink no ZonePurple no ZonePink ] -> [ Background OutLine ColBGPink ]\n\nright [ GhostTarget | | | | | | | | | | | | | | | | | | | ] -> [ GhostTarget | | | | | | | | | | | | | | | | | | | Target ]\n\ndown [ ZonePurple | no ZonePurple ] -> [ ZonePurple | ZonePurpleBelow ]\n\nup [ Wall | ] -> [ Wall | WallAbove ]\ndown [ Wall | ] -> [ Wall | WallBelow ]\n\n(Crate-ZonePink)\n\n[ CrateAbove ] -> [ ]\n[ CrateBelow ] -> [ ]\n[ CrateLine ] -> [ ]\nlate up [ | Crate | ] -> [ CrateBelow | Crate CrateLine | CrateAbove ]\n(late down [ Crate | ] -> [ Crate | CrateBelow ])\n\nlate right [ no Crate no ZonePurple no RigidCrate | | | | | | | | | | | | | | | | | | | ZonePink ] -> [ | | | | | | | | | | | | | | | | | | | BGPink ]\nlate right [ PlayerPink ] [ Crate | | | | | | | | | | | | | | | | | | | BGPink ] -> [ PlayerPink ] [ Crate | | | | | | | | | | | | | | | | | | | ZonePink ]\nlate right [ PlayerPink ] [ RigidCrate | | | | | | | | | | | | | | | | | | | BGPink ] -> [ PlayerPink ] [ RigidCrate | | | | | | | | | | | | | | | | | | | ZonePink ]\n\n(Block-GhostBlock)\n\n[ PlayerPink ] [ GBlock ] -> [ PlayerPink ] [ ]\nright [ PlayerPink ] [ | | | | | | | | | | | | | | | | | | | Block ] -> [ PlayerPink ] [ GhostBlock | | | | | | | | | | | | | | | | | | | Block ]\n\n[ PlayerBlue ] [ Block ] -> [ PlayerBlue ] [ ]\nright [ PlayerBlue ] [ GBlock | | | | | | | | | | | | | | | | | | | ] -> [ PlayerBlue ] [ GBlock | | | | | | | | | | | | | | | | | | | Block ]\n\n(Player-GhostPlayer)\n\n[ PlayerPink ] [ GPlayer ] -> [ PlayerPink ] [ ]\nright [ PlayerPink ] [ | | | | | | | | | | | | | | | | | | | PlayerPink ] -> [ PlayerPink ] [ GhostPlayer | | | | | | | | | | | | | | | | | | | PlayerPink ]\n\n(Switch)\n\n[ Target LevelStart ] [ action BlueRight ] [ StayPinkRight ] [ Background ] -> [ Target LevelStart ] [ BlueRight ] [ StayPinkRight ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueRight ] [ StayPinkRight ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueRight ] [ PlayerPinkRight ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueRight ] [ StayPinkLeft ] [ Background ] -> [ Target LevelStart ] [ BlueRight ] [ StayPinkLeft ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueRight ] [ StayPinkLeft ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueRight ] [ PlayerPinkLeft ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueLeft ] [ StayPinkRight ] [ Background ] -> [ Target LevelStart ] [ BlueLeft ] [ StayPinkRight ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueLeft ] [ StayPinkRight ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueLeft ] [ PlayerPinkRight ] [ Transition6 ]\n[ Target LevelStart ] [ action BlueLeft ] [ StayPinkLeft ] [ Background ] -> [ Target LevelStart ] [ BlueLeft ] [ StayPinkLeft ] [ Background action Transition1 ]\n[ Target LevelStart ] [ BlueLeft ] [ StayPinkLeft ] [ Transition6 ] -> [ Target LevelStart ] [ StayBlueLeft ] [ PlayerPinkLeft ] [ Transition6 ]\n\n[ action PlayerPinkRight no FallBlock ] [ StayBlueRight ] [ Background ] -> [ PlayerPinkRight ] [ StayBlueRight ] [ Background action TransitionR1 ]\n[ PlayerPinkRight ] [ StayBlueRight ] [ TransitionR6 ] -> [ StayPinkRight ] [ PlayerBlueRight ] [ TransitionR6 ]\n[ action PlayerPinkRight no FallBlock ] [ StayBlueLeft ] [ Background ] -> [ PlayerPinkRight ] [ StayBlueLeft ] [ Background action TransitionR1 ]\n[ PlayerPinkRight ] [ StayBlueLeft ] [ TransitionR6 ] -> [ StayPinkRight ] [ PlayerBlueLeft ] [ TransitionR6 ]\n[ action PlayerPinkLeft no FallBlock ] [ StayBlueRight ] [ Background ] -> [ PlayerPinkLeft ] [ StayBlueRight ] [ Background action TransitionR1 ]\n[ PlayerPinkLeft ] [ StayBlueRight ] [ TransitionR6 ] -> [ StayPinkLeft ] [ PlayerBlueRight ] [ TransitionR6 ]\n[ action PlayerPinkLeft no FallBlock ] [ StayBlueLeft ] [ Background ] -> [ PlayerPinkLeft ] [ StayBlueLeft ] [ Background action TransitionR1 ]\n[ PlayerPinkLeft ] [ StayBlueLeft ] [ TransitionR6 ] -> [ StayPinkLeft ] [ PlayerBlueLeft ] [ TransitionR6 ]\n\n(Climb)\n\n[ Climbable ] -> [ ]\nhorizontal [ BGPink | ZonePink ] -> [ BGPink Climbable | ZonePink ]\nhorizontal [ BGPink | Block ] -> [ BGPink | Block Climbable ]\nhorizontal [ Block | Block ] -> [ Block Climbable | Block Climbable ]\n\ndown [ ClimbRight | BGPink ] -> [ PlayerPinkRight | BGPink ]\ndown [ ClimbRight | Block ] -> [ PlayerPinkRight | Block ]\nright [ ClimbRight | ZonePink ] -> [ > ClimbRight | ZonePink ]\nright [ ClimbRight | Climbable ] -> [ FallRight | Climbable ]\nright [ > PinkRight no FallBlock | Climbable ] -> [ up ClimbRight | Climbable ] sfx7\n\ndown [ ClimbLeft | BGPink ] -> [ PlayerPinkLeft | BGPink ]\ndown [ ClimbLeft | Block ] -> [ PlayerPinkLeft | Block ]\nleft [ ClimbLeft | ZonePink ] -> [ > ClimbLeft | ZonePink ]\nleft [ ClimbLeft | Climbable ] -> [ FallLeft | Climbable ]\nleft [ > PinkLeft no FallBlock | Climbable ] -> [ up ClimbLeft | Climbable ] sfx7\n\n(Push)\n\n[ > Player | Crate no GPlayer no PressX no TCount ] -> [ > Player | > Crate ]\n[ > Player no FallBlock | Block ] -> [ > Player | > Block ] sfx5\n[ > Player | GBlock no rigids no ZonePurple | no Wall no ZonePurple no OutLine no Crate ] -> [ > Player | > GBlock | ]\n\n[ StuckCursor ] -> [ ] (Stuck effect)\n[ StuckCursorAbove ] -> [ ]\nlate up [ StuckCursor | ] -> [ StuckCursor | StuckCursorAbove ]\n[ > PlayerBlueRight | GPlayer Crate ] -> [ WalkAnimBR1 | GPlayer action StuckCursor Crate ]\n[ > PlayerBlueLeft | GPlayer Crate ] -> [ WalkAnimBL1 | GPlayer action StuckCursor Crate ]\n[ > PlayerBlueRight | StuckRigid ] [ GPlayer ] -> [ WalkAnimBR1 | StuckRigid ] [ GPlayer action StuckCursor ]\n[ > PlayerBlueLeft | StuckRigid ] [ GPlayer ] -> [ WalkAnimBL1 | StuckRigid ] [ GPlayer action StuckCursor ]\n\n[ StuckRigid ] -> [ ]\n[ Rigid1 GPlayer ] [ Rigid1 ] -> [ Rigid1 GPlayer StuckRigid ] [ Rigid1 StuckRigid ]\n[ Rigid2 GPlayer ] [ Rigid2 ] -> [ Rigid2 GPlayer StuckRigid ] [ Rigid2 StuckRigid ]\n\nrigid [ > Player | RigidCrate rigid1 no StuckRigid ] -> [ > Player | > RigidCrate > rigid1 ]\n+ rigid [ moving RigidCrate rigid1 | RigidCrate rigid1 ] -> [ moving RigidCrate moving rigid1 | moving RigidCrate moving rigid1 ]\n+ rigid [ moving rigid1 | GBlock rigid1 ] -> [ moving rigid1 | moving GBlock moving rigid1 ]\n\nrigid [ > Player | RigidCrate rigid2 no StuckRigid ] -> [ > Player | > RigidCrate > rigid2 ]\n+ rigid [ moving RigidCrate rigid2 | RigidCrate rigid2 ] -> [ moving RigidCrate moving rigid2 | moving RigidCrate moving rigid2 ]\n+ rigid [ moving rigid2 | GBlock rigid2 ] -> [ moving rigid2 | moving GBlock moving rigid2 ]\n\n(RigidCrate)\n\n[ RigidDeco ] -> [ ]\nlate down [ rigid1 | no rigid1 ] -> [ rigid1 RigidD | CrateBelow ]\nlate up [ rigid1 | no rigid1 ] -> [ rigid1 | CrateAbove ]\nlate left [ rigid1 | no rigid1 ] -> [ rigid1 RigidL | ]\nlate right [ rigid1 RigidL | no rigid1 ] -> [ rigid1 RigidLR | ]\nlate right [ rigid1 no AboveDeco | no rigid1 ] -> [ rigid1 RigidR | ]\n\nlate up [ RigidL rigid1 | rigid1 no AboveDeco ] -> [ RigidL rigid1 | rigid1 AboveRigidL ]\nlate up [ RigidR rigid1 | rigid1 no AboveDeco ] -> [ RigidR rigid1 | rigid1 AboveRigidR ]\nlate up [ RigidLR rigid1 | rigid1 ] -> [ RigidLR rigid1 | rigid1 AboveRigidLR ]\n\nlate up [ RigidL rigid1 | rigid1 RigidR ] -> [ RigidL rigid1 | rigid1 AboveRigidLRwithR ]\nlate up [ RigidR rigid1 | rigid1 RigidL ] -> [ RigidR rigid1 | rigid1 AboveRigidLRwithL ]\n\nlate up [ rigid1 | CrateAbove ] -> [ rigid1 RigidU | CrateAbove ]\n\nlate left [ rigid1 RigidU | rigid1 no RigidU ] -> [ rigid1 RigidU | rigid1 RigidUL ]\nlate right [ rigid1 RigidU | rigid1 no RigidU ] -> [ rigid1 RigidU | rigid1 RigidUR ]\n\n\nlate down [ rigid2 | no rigid2 ] -> [ rigid2 RigidD | CrateBelow ]\nlate up [ rigid2 | no rigid2 ] -> [ rigid2 | CrateAbove ]\nlate left [ rigid2 | no rigid2 ] -> [ rigid2 RigidL | ]\nlate right [ rigid2 RigidL | no rigid2 ] -> [ rigid2 RigidLR | ]\nlate right [ rigid2 no AboveDeco | no rigid2 ] -> [ rigid2 RigidR | ]\n\nlate up [ RigidL rigid2 | rigid2 no AboveDeco ] -> [ RigidL rigid2 | rigid2 AboveRigidL ]\nlate up [ RigidR rigid2 | rigid2 no AboveDeco ] -> [ RigidR rigid2 | rigid2 AboveRigidR ]\nlate up [ RigidLR rigid2 | rigid2 ] -> [ RigidLR rigid2 | rigid2 AboveRigidLR ]\n\nlate up [ RigidL rigid2 | rigid2 RigidR ] -> [ RigidL rigid2 | rigid2 AboveRigidLRwithR ]\nlate up [ RigidR rigid2 | rigid2 RigidL ] -> [ RigidR rigid2 | rigid2 AboveRigidLRwithL ]\n\nlate up [ rigid2 | CrateAbove ] -> [ rigid2 RigidU | CrateAbove ]\n\nlate left [ rigid2 RigidU | rigid2 no RigidU ] -> [ rigid2 RigidU | rigid2 RigidUL ]\nlate right [ rigid2 RigidU | rigid2 no RigidU ] -> [ rigid2 RigidU | rigid2 RigidUR ]\n\n(Fall)\n\ndown [ FallRight | Ridable ] -> [ PlayerPinkRight | Ridable ]\ndown [ FallRight no Transition | no Ridable ] -> [ > FallRight | ]\ndown [ PinkRight no Transition | no Ridable ] -> [ > FallRight | ] sfx7\n\ndown [ FallLeft | BGPink ] -> [ PlayerPinkLeft | BGPink ]\ndown [ FallLeft | Block ] -> [ PlayerPinkLeft | Block ]\ndown [ FallLeft no Transition | no Ridable ] -> [ > FallLeft | ]\ndown [ PinkLeft no Transition | no Ridable ] -> [ > FallLeft | ] sfx7\n\n[ FallBlock ] -> [ ]\ndown [ Block no Transition | no ColBGPink no Block no Player ] [ PlayerFall ] -> [ > Block | ] [ PlayerFall FallBlock ] sfx1\n\n(ZonePink border)\n\n[ AddPinkL ] -> [ ]\n[ RemovePinkL ] -> [ ]\n[ AddPinkR ] -> [ ]\n[ RemovePinkR ] -> [ ]\n\nlate left [ no ZonePink no AddPinkL | ZonePink ] -> [ AddPinkLUD | ZonePink ]\nlate right [ no ZonePink no AddPinkR | ZonePink ] -> [ AddPinkRUD | ZonePink ]\n\nlate up [ AddPinkLUD | no ZonePink ] -> [ AddPinkLD | ]\nlate up [ AddPinkRUD | no ZonePink ] -> [ AddPinkRD | ]\n\nlate down [ AddPinkLUD | no ZonePink ] -> [ AddPinkLU | ]\nlate down [ AddPinkRUD | no ZonePink ] -> [ AddPinkRU | ]\n\nlate down [ AddPinkLD | no ZonePink ] -> [ | ]\nlate down [ AddPinkRD | no ZonePink ] -> [ | ]\n\nlate left [ ZonePink no RemovePinkL | no ZonePink ] -> [ ZonePink RemovePinkLUD | ]\nlate right [ ZonePink no RemovePinkR | no ZonePink ] -> [ ZonePink RemovePinkRUD | ]\n\nlate up [ RemovePinkLUD | ZonePink ] -> [ RemovePinkLD | ZonePink ]\nlate up [ RemovePinkRUD | ZonePink ] -> [ RemovePinkRD | ZonePink ]\n\nlate down [ RemovePinkLUD | ZonePink ] -> [ RemovePinkLU | ZonePink ]\nlate down [ RemovePinkRUD | ZonePink ] -> [ RemovePinkRU | ZonePink ]\n\nlate down [ RemovePinkLD | ZonePink ] -> [ | ZonePink ]\nlate down [ RemovePinkRD | ZonePink ] -> [ | ZonePink ]\n\nlate right [ RemovePinkRU | AddPinkLU ] -> [ RemovePinkRU | ]\nlate right [ RemovePinkRD | AddPinkLD ] -> [ RemovePinkRD | ]\n\nlate right [ RemovePinkRUD | AddPinkLU ] -> [ RemovePinkRUD | ]\nlate right [ RemovePinkRUD | AddPinkLD ] -> [ RemovePinkRUD | ]\n\nlate left [ RemovePinkLU | AddPinkRU ] -> [ RemovePinkLU | ]\nlate left [ RemovePinkLD | AddPinkRD ] -> [ RemovePinkLD | ]\n\nlate left [ RemovePinkLUD | AddPinkRU ] -> [ RemovePinkLUD | ]\nlate left [ RemovePinkLUD | AddPinkRD ] -> [ RemovePinkLUD | ]\n\nlate left [ AddPinkLUD | RemovePinkRUD ] -> [ | RemovePinkRUD ]\nlate right [ AddPinkRUD | RemovePinkLUD ] -> [ | RemovePinkLUD ]\nlate left [ AddPinkLUD | RemovePinkRU ] -> [ AddPinkLD | RemovePinkRU ]\nlate right [ AddPinkRUD | RemovePinkLU ] -> [ AddPinkRD | RemovePinkLU ]\nlate left [ AddPinkLUD | RemovePinkRD ] -> [ AddPinkLU | RemovePinkRD ]\nlate right [ AddPinkRUD | RemovePinkLD ] -> [ AddPinkRU | RemovePinkLD ]\nlate left [ AddPinkLU | RemovePinkRU ] -> [ | RemovePinkRU ]\nlate right [ AddPinkRU | RemovePinkLU ] -> [ | RemovePinkLU ]\nlate left [ AddPinkLD | RemovePinkRD ] -> [ | RemovePinkRD ]\nlate right [ AddPinkRD | RemovePinkLD ] -> [ | RemovePinkLD ]\n\n(Animation)\n\nright [ > PlayerBlueLeft ] -> [ > PlayerBlueRight ]\nright [ > WalkAnimBL1 ] -> [ > WalkAnimBR1 ]\nright [ > WalkAnimBL2 ] -> [ > WalkAnimBR2 ]\nright [ > WalkAnimBL3 ] -> [ > WalkAnimBR3 ]\n\nleft [ > PlayerBlueRight ] -> [ > PlayerBlueLeft ]\nleft [ > WalkAnimBR1 ] -> [ > WalkAnimBL1 ]\nleft [ > WalkAnimBR2 ] -> [ > WalkAnimBL2 ]\nleft [ > WalkAnimBR3 ] -> [ > WalkAnimBL3 ]\n\n[ WalkAnimBR3 ] -> [ PlayerBlueRight ]\n[ WalkAnimBR2 ] -> [ WalkAnimBR3 ]\n[ WalkAnimBR1 ] -> [ WalkAnimBR2 ]\n[ > PlayerBlueRight ] -> [ > WalkAnimBR1 ]\n\n[ WalkAnimBL3 ] -> [ PlayerBlueLeft ]\n[ WalkAnimBL2 ] -> [ WalkAnimBL3 ]\n[ WalkAnimBL1 ] -> [ WalkAnimBL2 ]\n[ > PlayerBlueLeft ] -> [ > WalkAnimBL1 ]\n\nright [ > PlayerPinkLeft ] -> [ > PlayerPinkRight ]\nright [ > WalkAnimPL1 ] -> [ > WalkAnimPR1 ]\nright [ > WalkAnimPL2 ] -> [ > WalkAnimPR2 ]\nright [ > WalkAnimPL3 ] -> [ > WalkAnimPR3 ]\n\nleft [ > PlayerPinkRight ] -> [ > PlayerPinkLeft ]\nleft [ > WalkAnimPR1 ] -> [ > WalkAnimPL1 ]\nleft [ > WalkAnimPR2 ] -> [ > WalkAnimPL2 ]\nleft [ > WalkAnimPR3 ] -> [ > WalkAnimPL3 ]\n\n[ WalkAnimPR3 ] -> [ PlayerPinkRight ]\n[ WalkAnimPR2 ] -> [ WalkAnimPR3 ]\n[ WalkAnimPR1 ] -> [ WalkAnimPR2 ]\n[ > PlayerPinkRight ] -> [ > WalkAnimPR1 ]\n\n[ WalkAnimPL3 ] -> [ PlayerPinkLeft ]\n[ WalkAnimPL2 ] -> [ WalkAnimPL3 ]\n[ WalkAnimPL1 ] -> [ WalkAnimPL2 ]\n[ > PlayerPinkLeft ] -> [ > WalkAnimPL1 ]\n\n[ stationary Player ] [ stationary GhostBlockAnim5 ] -> [ Player ] [ action GhostBlock ]\n[ stationary Player ] [ stationary GhostBlockAnim4 ] -> [ Player ] [ action GhostBlockAnim5 ]\n[ stationary Player ] [ stationary GhostBlockAnim3 ] -> [ Player ] [ action GhostBlockAnim4 ]\n[ stationary Player ] [ stationary GhostBlockAnim2 ] -> [ Player ] [ action GhostBlockAnim3 ]\n[ stationary Player ] [ stationary GhostBlockAnim1 ] -> [ Player ] [ action GhostBlockAnim2 ]\n[ stationary Player ] [ stationary GhostBlock ] -> [ Player ] [ action GhostBlockAnim1 ]\n\n[ GhostPlayerAbove ] -> [ ]\nlate up [ GPAboveAnim | ] -> [ GPAboveAnim | GhostPlayerAbove ]\n\n[ stationary Player ] [ stationary GhostPlayerAnim5 ] -> [ Player ] [ action GhostPlayer ]\n[ stationary Player ] [ stationary GhostPlayerAnim4 ] -> [ Player ] [ action GhostPlayerAnim5 ]\n[ stationary Player ] [ stationary GhostPlayerAnim3 ] -> [ Player ] [ action GhostPlayerAnim4 ]\n[ stationary Player ] [ stationary GhostPlayerAnim2 ] -> [ Player ] [ action GhostPlayerAnim3 ]\n[ stationary Player ] [ stationary GhostPlayerAnim1 ] -> [ Player ] [ action GhostPlayerAnim2 ]\n[ stationary Player ] [ stationary GhostPlayer ] -> [ Player ] [ action GhostPlayerAnim1 ]\n\n[ Background Transition1 ] [ Background no Transition1 ] -> [ Background Transition1 ] [ Background Transition1 ]\n[ stationary Transition9 ] -> [ ] again\n[ stationary Transition8 ] -> [ action Transition9 ] again\n[ stationary Transition7 ] -> [ action Transition8 ] again\n[ stationary Transition6 ] -> [ action Transition7 ] again\n[ stationary Transition5 ] -> [ action Transition6 ] again\n[ stationary Transition4 ] -> [ action Transition5 ] again\n[ stationary Transition3 ] -> [ action Transition4 ] again\n[ stationary Transition2 ] -> [ action Transition3 ] again\n[ stationary Transition1 ] -> [ action Transition2 ] again\n\n[ Background TransitionR1 ] [ Background no TransitionR1 ] -> [ Background TransitionR1 ] [ Background TransitionR1 ]\n[ stationary TransitionR9 ] -> [ ] again\n[ stationary TransitionR8 ] -> [ action TransitionR9 ] again\n[ stationary TransitionR7 ] -> [ action TransitionR8 ] again\n[ stationary TransitionR6 ] -> [ action TransitionR7 ] again\n[ stationary TransitionR5 ] -> [ action TransitionR6 ] again\n[ stationary TransitionR4 ] -> [ action TransitionR5 ] again\n[ stationary TransitionR3 ] -> [ action TransitionR4 ] again\n[ stationary TransitionR2 ] -> [ action TransitionR3 ] again\n[ stationary TransitionR1 ] -> [ action TransitionR2 ] again\n\n(Level start)\n\n[ Target no LevelStart ] [ Background no Transition ] -> [ Target ] [ Background Transition5 ]\n[ Target Transition9 no LevelStart ] -> [ Target LevelStart ]\n\n(Win)\n\ndown [ PlayerPink no WinAnim Target no FallBlock | Ridable ]-> [ PlayerPink WinAnim1 Target | Ridable ] sfx8\n\n[ WinAnim6 ] [ Background no Transition ] -> [ WinAnim6 ] [ Background Transition1 ]\n[ WinAnim5 ] -> [ WinAnim6 ]\n[ WinAnim4 ] -> [ WinAnim5 ]\n[ WinAnim3 ] -> [ WinAnim4 ]\n[ WinAnim2 ] -> [ WinAnim3 ]\n[ WinAnim1 ] -> [ WinAnim2 ]\n\n[ > Player WinAnim ] -> cancel\n[ action Player WinAnim ] -> cancel\n\n[ Target WinAnim6 Transition5 ] -> [ Target WinAnim6 Transition5 Winable ]\n\n(tutorial)\n\n[ Crate PressX no TCount ] [ PressX ] -> [ Crate TCount1 ] [ ]\n\n[ TCount5 ] -> [ ]\n[ TCount4 ] -> [ TCount5 ] message X or spacebar to switch characters.\n[ TCount3 ] -> [ TCount4 ]\n[ TCount2 ] -> [ TCount3 ]\n[ TCount1 ] -> [ TCount2 ]\n\n[ > Player ] [ Crate PressX ] -> [ Player ] [ Crate PressX ]\n[ > Player ] [ Crate TCount ] -> [ Player ] [ Crate TCount ]\n[ PlayerPink ] [ PressX ] -> [ PlayerPink ] [ ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Winable \n\n======= \nLEVELS\n=======\n\n\n(Tutorial)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,!xxxxxxxxxo,,,..'''p++++++++++'''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxxx\"xxxxxx,,,..'''p+①+①++++++'''.\n.,,,,,,x,xxxoxx,,,..''''''+'++++++'''.\n.,,,xxxxxxxx,xx,,,..'''++++++++'++'''.\n.,,,xxxxxxxxxxx,,,..'''+++①+++++++'''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,!xxxxxxxx,,,,..''''p++++++++''''.\n.,,,,,,,xxxxxx,,,,..'''''''++++++''''.\n.,,,,,,xxxxxox,,,,..''''''+++++++''''.\n.,,,,xxxxxx\",x,,,,..''''++++++①'+''''.\n.,,,,xx\"xxx\"xx,,,,..''''++①+++①++''''.\n.,,,,xx\"x,,,,,,,,,..''''++①+'''''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxx!xxxx,,,,..''''++++p++++''''.\n.,,,,xxxx\"xxxx,,,,..''''++++①++++''''.\n.,,,,x,,,,,,,x,,,,..''''+'''''''+''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxx\"xxx,,,,..''''+++++①+++''''.\n.,,,,xxx\"o,\"xx,,,,..''''+++①+'①++''''.\n.,,,,xx\",xx\"xx,,,,..''''++①'++①++''''.\n.,,,,xx\"xx,,,,,,,,..''''++①++''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxxx,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xxxox,,,..'''+++++①+++++'''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xxxxx\"xx,,,,,,..'''+++++①++''''''.\n.,,,xx!xx\"xx,,,,,,..'''++p++①++''''''.\n.,,,,,,,,,,,,$,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(二つでスタックのチュートリアル)\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxx!xxxoxxx,,,..'''+++%+++++++'''.\n.,,,,xx\"x\"xxxx,,,,..''''+++++++++''''.\n.,,,,#########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,b,*,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.xxxxxxxxxxxxxxxxx..+++++++++++++++++.\n.x,,,,,,,,,,,,,,,x..+'''''''''''''''+.\n.x,,,,,,b,*,,,,,,x..+''''''''+''''''+.\n.x,,xxxxxxxxxxx,,x..+''+++++++++++''+.\n.x,,xxx!xxxoxxx,,x..+''+++%+++++++''+.\n.x,,,xx\"x\"xxxx,,,x..+'''+++++++++'''+.\n.x,,,,,,,,,,,,,,,x..+'''''''''''''''+.\n.xxxxxxxxxxxxxxxxx..+++++++++++++++++.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(一個なら押しのけて登れる)\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,xxxxxx,,,,,..''''''++++++'''''.\n.,,,,,,x\",x\"x,,,,,..''''''++'+++'''''.\n.,,,,,,,!,,,x,,,,,..'''''''%'''+'''''.\n.,,,,#b,,,*,x,,,,,..'''''''''''+'''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,oxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,,,,xxxxxx,,,,..'''''''++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage Reach the heart to win.\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,x!xxxxxox,,,,..''''+p+++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage You can climb one square.\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxox,,,,..''''+石+++++++''''.\n.,,,,,!,,,,,,,,,,,..'''''p'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage You can only push one block at a time.\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xxxxxxxxx,,,,..''''+++++++++''''.\n.,,,,xxxxxxxox,,,,..''''+++++++++''''.\n.,,,,x!\"xxxx\"x,,,,..''''+p石++++石+''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 1. Two Worlds\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,!xxx,b,xxxxxo,,..''%+++'''++++++''.\n.,,,xxx,,,xxxx,,,,..'''+++'''++++''''.\n.,,,xxx,,,xxxx,,,,..'''+++'''++++''''.\n.,,,xxx,,,xxx,,,,,..'''+++'''+++'''''.\n.,,,xxxx*x\"xx,,,,,..'''++++'++++'''''.\n.,,,xxx,,,,,,,,,,,..'''+++'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,文,,,,,,,,..'''''''''''''''''.\n.,,,!xxx,,,xxxo,,,..'''%+++'''++++'''.\n.,,,,xxxx*xxx,,,,,..''''++++'+++'''''.\n.,,,,xxx,,,xx,,,,,..''''+++'''++'''''.\n.,,,,,,,,文,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 2. Delivery\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,oxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,,xxxxxx,,,,,..''''''++++++'''''.\n.,,,,,,x!x\"xx,,,,,..''''''+%++++'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,b*,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 3. One-way Tickets\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx,,,,,,,,,,,..''''++'''''''''''.\n.,,,,x\",,,b*,,,,,,..''''++'''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx########,,,..''''++'''''''''''.\n.,,,,xxxxxxxxxx,,,..''''++++++++++'''.\n.,,,,xxxxxxxxxx,,,..''''++++++++++'''.\n.,,,,xxx!xxxoxx,,,..''''+++%++++++'''.\n.,,,,#xx\"x\"xxxx,,,..'''''+++++++++'''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(message Brain training\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,b*,,x\"x,,,,,,,..'''''''+++'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,xxx!xxxxxxx,,,..'''+++%+++++++'''.\n.,,,xxx,,,,,xxx,,,..'''+++'''''+++'''.\n.,,,xxxxxxxxxxx,,,..'''+++++++++++'''.\n.,,,xxxxxx\"xxxx,,,..'''+++++++++++'''.\n.,,,xxxx\"o,\"xxx,,,..'''++++++'++++'''.\n.,,,xxx\",xx\"xx,,,,..'''++++'+++++''''.\n.,,,,xx\"xx####,,,,..''''+++++''''''''.\n.,,,,######,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n(message 2 x 3\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,##,,,,,##,,,,..'''''''''''''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#,\"x\"x\",#,,,,..''''''+++++''''''.\n.,,,,#,,b,*,,#,,,,..'''''''''''''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,xxxxo,,,,,,..''''''+++++''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,xx!xx,,,,,,..''''''++%++''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,##,,,,,##,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 4. 3 x 6\n\n\n......................................\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,b*,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,\",,,,,,,..'''''''''+'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxxo,,,,,..'''''+++++++'''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,xxxxxx,,,,,,..'''''++++++''''''.\n.,,,,,!xxxxx,,,,,,..'''''%+++++''''''.\n.,,,,,,xxxxx,,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,##########,,,,..'''''''''''''''''.\n.,,,#,,,,,,,,#,,,,..'''''''''''''''''.\n.,,,#,\"!\"x\"x,#,,,,..'''''+p++++''''''.\n.,,,#b,,,*,,,#,,,,..'''''''''''''''''.\n.,,,#,xxxxxx##,,,,..'''''++++++''''''.\n.,,,#,*,,,,,,o,,,,..''''''''''''+''''.\n.,,,#,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,xxxxxx,#,,,,..'''''++++++''''''.\n.,,,#,,,,,,,,#,,,,..'''''''''''''''''.\n.,,,##########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 5. Too Small to Climb\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,ox\"#,,,,,,..'''''''+++'''''''.\n.,,,,,,,,,\"#,,,,,,..'''''''''+'''''''.\n.,,,,,,,x,\"#,,,,,,..'''''''+'+'''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,x,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,!b*,,,,,,,..'''''''%'''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,,\",,,,,,,,..''''''''+''''''''.\n.,,,,,,,b@,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,@,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,oxxx,,,,,,,..''''''++++'''''''.\n.,,,,,#,xxx,,,,,,,..'''''''+++'''''''.\n.,,,,,!,xxx,,,,,,,..'''''%'+++'''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 6. I Hope That's Enough\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,xox,,,,,..''''''''++++'''''.\n.,,,,,,,,,xxx\"xx,,..''''''''+++++++''.\n.,,,,,,,,,,,,\"xx,,..''''''''''''+++''.\n.,,######xxxx\"xx,,..''''''''+++++++''.\n.,,#,,,!#x\",,,,,,,..''''''%'++'''''''.\n.,,#,*,,xx\"x,*,*,,..'''''''++++''''''.\n.,,####,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,##,,,,,,b,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 7. The Larger, the Better\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,#,#,#,#,#,#,..'''''''''''''''''.\n.,,,,,xxxxxo,,,,,,..'''''++++++''''''.\n.,,,,,xx\",,,,,,,,,..'''''+++'''''''''.\n.,,,,,xx\",,,,,,,,,..'''''+++'''''''''.\n.,,,,,!x\",@@@@,,,,..'''''%++'''''''''.\n.,#,#,#,#,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,b,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 8. Cut the Screen\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,oxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,@@@@@@@,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"x#x,,,,,..'''''+++++'+'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,x!x\"xxx,,,,,..'''''+%+++++'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................)\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,xxxxxxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,oxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,xxx\"xxx,,,,,..'''''+++++++'''''.\n.,,,,,2222222,,,,,..'''''''''''''''''.\n.,x,,,xxx\"xxx,,,,,..'+'''+++++++'''''.\n.,,,,,@@@@@@@,,,,,..'''''''''''''''''.\n.,,,,,,xxxx!x,,,,,..''''''++++%+'''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 9. Transfer\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.#################..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,xx,,,2b@@@,,o,,..''++''''''''''+''.\n.,,!\",222,@,,,,x,,..''%+''''''''''+''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.#################..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 10. Do You Like Math Puzzles?\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,b,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,\"@#xx#xx#xx#x#..'''+''++++++++'+'.\n.,,\"\"@#xxxxxxxxxx#..''++''++++++++++'.\n.,,\"\"@#xx,xx,xx,o#..''++''++'++'++'+'.\n.,,,,@#!x,xx,xx,x#..''''''%+'++'++'+'.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 11. Haste Makes Waste\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,xxx,,,,,,,..'''''''+++'''''''.\n.,,xxx,,,,,,,xxx,,..''+++'''''''+++''.\n.,,xx\",,@@@,,xox,,..''+++'''''''+++''.\n.,,!x\",,@@@,,xxx,,..''%++'''''''+++''.\n.,,###,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 12. Neither Road Leads to Rome\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,#############,,,..'''''''''''''''''.\n.,#,,,,!\"\"\"x\"x###,..''''''%+++++++++'.\n.,#b@@,,,,,,,,xo#,..'''''''''''''+++'.\n.,#,,,,xxxxxx,xx#,..''''''++++++'+++'.\n.,#,,,,,,,,,,,###,..'''''''''''''''''.\n.,#############,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\nmessage 13. This Elevator Will Be Taking No Passengers\n\n\n(......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,o\"\"\"\"\",,,,,,..'''''++++++''''''.\n.,,b*,,\"\"\"\"\",,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.####xxx,,,xxx####..''''+++'''+++''''.\n.,,,,xxx@@@xxx,,,,..''''+++'''+++''''.\n.,,,,xxx@@@xxx,,,,..''''+++'''+++''''.\n.,,,,xxx,,,xxx,,,,..''''+++'''+++''''.\n.,,,,xxx,,,xxx,,,,..''''+++'''+++''''.\n.,,,,x!x,,,xxx,,,,..''''+%+'''+++''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................)\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,xx\"\"\"\"\"xx,,,,..''''+++++++++''''.\n.,b*,xx\"\"\"\"\"xx,,,,..''''+++++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#oxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#,xx@@@xxx#,,,..'''''++'''+++''''.\n.,,,#xxx@@@xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#x!x,,,xxx#,,,..''''+%+'''+++''''.\n.,,,###,,,,,###,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................\n\n\n(......................................\n.,,,,xxxx\"\"\"xx,,,,..''''+++++++++''''.\n.,,,,xxx\"\"\"\"xx,,,,..''''+++++++++''''.\n.,b*,xx,\"\"\"\"xx,,,,..''''++'++++++''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#oxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#,xx@@@xxx#,,,..'''''++'''+++''''.\n.,,,#xxx@@@xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#xxx,,,xxx#,,,..''''+++'''+++''''.\n.,,,#x!x,,,xxx#,,,..''''+%+'''+++''''.\n.,,,###,,,,,###,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n......................................)\n\n\nmessage 14. 3 x 21\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,#,,xxx\"\"\"o,,..''''''''+++++++''.\n.,,,,@@@,xxx\"\"\",,,..''''''''++++++'''.\n.,,,,@@@#\"\"\"\"\"\",,,..''''''''++++++'''.\n.,,,#@@@,\"\"\"\"\"\",,,..''''''''++++++'''.\n.,,,,@@@,\"\"\"\"\"\",#,..''''''''++++++'''.\n.,,,,@@@,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,#,,,,b,,22,,,,..'''''''''''''''''.\n.,,,x!,,,,,,,2,,,,..'''+%''''''''''''.\n.,,,,#,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,#,#,#,#,#,..'''''''''''''''''.\n.,,,,,#,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\nmessage Thanks for playing!\n\n\n(......................................\n.,,,,,#,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#o,b,#,,,,,,..''''''+''''''''''.\n.,,,,,,,,,,#,,,,,,..'''''''''''''''''.\n.,,,,,#,*,*#,,,,,,..'''''''''''''''''.\n.,,,,,#,@@@#,,,,,,..'''''''''''''''''.\n.,,,,,#,@@@##,,,,,..'''''''''''''''''.\n.,,,,,#,,,,,#,,,,,..'''''''''''''''''.\n.,,,,,##,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,x,,#,,,,,..''''''''%''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n.,,,,,,#,,,,#,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,b,,,,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,o,,,,,,,,,..'''''''+'''''''''.\n.,,,,,,,\",,,,,,#,,..'''''''+'''''''''.\n.,*,*,*,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,#,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,@@,@@@#,,,,,,#,,..'''''''''''''''''.\n.,@@,,@@,,,,,,,,,,..'''''''''''''''''.\n.,@@@@@@#,,,,,,#,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,#,!,#,#,,..''''''''''%''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,##!######,,,,..''''''%''''''''''.\n.,,,,#,,,,,,o#,,,,..'''''''''''+'''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#,,@b2,,#,,,,..'''''''+'+'''''''.\n.,,,,#,@@,22,#,,,,..''''''++'++''''''.\n.,,,,#,,,,,,,#,,,,..'''''''''''''''''.\n.,,,,#########,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,x\"\"\"x,,,,,,..''''''+++++''''''.\n.,,,,,,\"\"\"\"\",,,,,,..''''''+++++''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,#,xxx,,,,,oxx,#,..'''+++'''''+++'''.\n.,#,xxx,222,xxx,#,..'''+++'''''+++'''.\n.,#,xxx,,,,,xxx,#,..'''+++'''''+++'''.\n.,#,xxx,@@,,xxx,#,..'''+++'''''+++'''.\n.,#,x!x,,,,,xxx,#,..'''+%+'''''+++'''.\n.,,,,,,,,b,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n.,,,,,,,,,,,,,,,,,..'''''''''''''''''.\n......................................\n\n\n......................................\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,\"o,,#,,,..'''''''''++''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#xxx,,,,xxx#,,,..'''+++''''+++''''.\n.,,#xxx,,,,\"xx#,,,..'''+++''''+++''''.\n.,,#xxx,,,,\"xx#,,,..'''+++''''+++''''.\n.,,#xxx,2@,\"xx#,,,..'''+++''''+++''''.\n.,,#!xx22@@\"xx#,,,..'''%++''''+++''''.\n.,,#,,,2,,@,,,#,,,..'''''''''''''''''.\n.,,#,,,2,,@,,,#,,,..'''''''''''''''''.\n.,,#,b,22@@,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n.,,#,,,,,,,,,,#,,,..'''''''''''''''''.\n......................................)\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick",2,"tick","tick",2,"tick",2,"tick","tick","tick",1,"tick","tick","tick","tick",4,"tick","tick","tick","tick"],"background colbgpink outline:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background bgblue:1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,background bgblue ghostplayeranim1 zonepurple:2,background bgblue zonepurplebelow:3,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,background bgblue zonepurple:4,4,4,3,1,1,1,1,0,0,1,1,1,1,1,1,4,4,4,3,1,1,1,1,0,0,1,\n1,1,1,1,1,4,4,4,3,1,1,1,1,0,0,1,1,1,1,1,1,1,4,background bgblue stayblueleft zonepurplebelow:5,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,background bgblue crateabove:6,background bgblue crate crateline:7,background bgblue cratebelow:8,1,1,1,0,0,1,1,1,1,1,1,1,4,3,1,1,1,1,1,0,0,1,1,1,1,1,1,4,4,4,3,1,1,1,\n1,0,0,1,1,1,1,1,1,4,4,4,3,1,1,1,1,0,0,1,1,1,1,1,1,4,3,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,background ghosttarget zonepurple:9,3,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background bgpink colbgpink:10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,\n10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,background bgpink climbable colbgpink:11,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,background playerpinkright removepinklud zonepink:12,addpinkru background bgpink climbable colbgpink:13,11,10,10,\n10,10,10,0,0,10,10,10,10,10,10,background zonepink:14,14,background removepinkld zonepink:15,10,10,10,10,10,0,0,10,10,10,10,10,10,14,14,14,10,10,10,10,10,0,0,10,\n10,10,10,10,10,background removepinkru zonepink:16,14,background removepinkrd zonepink:17,10,10,10,10,10,0,0,10,10,10,10,10,10,addpinkld background bgpink climbable colbgpink:18,background removepinkrud zonepink:19,addpinklu background bgpink climbable colbgpink:20,11,10,10,10,10,0,0,10,10,10,10,10,10,10,\n11,10,background removepinklud removepinkrud zonepink:21,10,10,10,10,0,0,10,10,10,10,10,10,addpinkrd background bgpink climbable colbgpink:22,background removepinklud zonepink:23,13,11,10,10,10,10,0,0,10,10,10,10,10,10,background removepinklu zonepink:24,14,15,10,10,10,10,\n10,0,0,10,10,10,10,10,10,14,14,17,10,10,10,10,10,0,0,10,10,10,10,10,10,14,20,11,10,10,10,10,10,0,0,10,10,10,\n10,10,10,background levelstart removepinkrud target zonepink:25,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,11,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,10,10,10,\n10,10,10,10,10,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n","7","1627770584313.9392"] ], [ `gallery: multi-word dictionary`, - ["title Multi-word Dictionary Game\nauthor Sarah Northway\nhomepage www.sarahnorthway.com\n\n(included with permission of Sarah Northway)\n\n========\nOBJECTS\n========\n\nBackground \npink \n\nWall \ngrey\n\nPlayer \nBlue \n\nWon\nyellow\n\nLetterC\nwhite black\n.111.\n1....\n1....\n1....\n.111.\n\nLetterA \nwhite black\n.111.\n1...1\n11111\n1...1\n1...1\n\nLetterT\nwhite black\n11111\n..1..\n..1..\n..1..\n..1..\n\n=======\nLEGEND\n=======\n\nLetter = LetterA or LetterC or LetterT\n. = Background\n# = Wall\nP = Player\nW = Won\nC = LetterC\nA = LetterA\nT = LetterT\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWon\nPlayer, Wall, Letter\n\n======\nRULES \n====== \n\n[ > Player | Letter ] -> [ > Player | > Letter ]\n[ < Player | Letter ] -> [ < Player | < Letter ]\n\nlate right [LetterC | LetterA | LetterT ] -> [ Won LetterC | Won LetterA | Won LetterT ] message You spelled CAT!\nlate right [LetterA | LetterC | LetterT] -> [ Won LetterA | Won LetterC | Won LetterT ] message You spelled ACT!\n\n==============\nWINCONDITIONS\n==============\n\nSome Won\n\n======= \nLEVELS\n=======\n\n#########\n#.......#\n#.A..C..#\n#.......#\n#...P...#\n#.T.....#\n#########\n\n", [1, 1, 1, 0, 0, 3, 0, 3, 2, 2, 3, 3, 3, 0, 1, 1, 1, 1, 0, 1, 2, 2, 2, 3, 3], "background wall:0,0,0,0,0,0,0,0,background:1,\n1,1,1,background letterc:2,0,0,1,1,1,\n1,background lettert:3,0,0,1,1,1,background player:4,1,\n0,0,1,1,1,background lettera:5,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, "1627777496017.3152"] + ["title Multi-word Dictionary Game\nauthor Sarah Northway\nhomepage www.sarahnorthway.com\n\n(included with permission of Sarah Northway)\n\n========\nOBJECTS\n========\n\nBackground \npink \n\nWall \ngrey\n\nPlayer \nBlue \n\nWon\nyellow\n\nLetterC\nwhite black\n.111.\n1....\n1....\n1....\n.111.\n\nLetterA \nwhite black\n.111.\n1...1\n11111\n1...1\n1...1\n\nLetterT\nwhite black\n11111\n..1..\n..1..\n..1..\n..1..\n\n=======\nLEGEND\n=======\n\nLetter = LetterA or LetterC or LetterT\n. = Background\n# = Wall\nP = Player\nW = Won\nC = LetterC\nA = LetterA\nT = LetterT\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWon\nPlayer, Wall, Letter\n\n======\nRULES \n====== \n\n[ > Player | Letter ] -> [ > Player | > Letter ]\n[ < Player | Letter ] -> [ < Player | < Letter ]\n\nlate right [LetterC | LetterA | LetterT ] -> [ Won LetterC | Won LetterA | Won LetterT ] message You spelled CAT!\nlate right [LetterA | LetterC | LetterT] -> [ Won LetterA | Won LetterC | Won LetterT ] message You spelled ACT!\n\n==============\nWINCONDITIONS\n==============\n\nSome Won\n\n======= \nLEVELS\n=======\n\n#########\n#.......#\n#.A..C..#\n#.......#\n#...P...#\n#.T.....#\n#########\n\n",[1,1,1,0,0,3,0,3,2,2,3,3,3,0,1,1,1,1,0,1,2,2,2,3,3],"background wall:0,0,0,0,0,0,0,0,background:1,\n1,1,1,background letterc:2,0,0,1,1,1,\n1,background lettert:3,0,0,1,1,1,background player:4,1,\n0,0,1,1,1,background lettera:5,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,"1627777496017.3152"] ], [ `gallery: midas`, - ["title Midas\nauthor wanderlands\nhomepage www.wanderlands.org\n\n(A port of the luxuriant Wanderlands game, Midas, with permission of the authors. It's a bit messy, if you can find a way to tidy it up, let me know :]\n\nthe original is here\nhttp://wanderlands.org/main/midas\n\n)\n\n========\nOBJECTS\n========\n\nBackground\nWHITE\n\nlovebase\nwhite\n\nTarget\nBLACK\n.....\n..0..\n.000.\n..0..\n.0.0.\n\n\nGoldTarget\nORANGE\n.....\n..0..\n.000.\n..0..\n.0.0.\n\nPlayerGround\nBLACK\n.....\n..0..\n.000.\n.000.\n.0.0.\n\nPlayerJump1\nBLACK\n.....\n..0..\n00000\n.000.\n.0.0.\n\nPlayerJump2\nBLACK\n.....\n..0..\n00000\n.000.\n.0.0.\n\nCrown\nOrange\n.000.\n.0.0.\n.....\n.....\n.....\n\n\nGoldBlock\nOrange\n\n\nGoldingBlock\nbrown\n\nWater\nBlue\n\nWall\nGRAY\n\nlove\npink\n.0.0.\n00000\n00000\n.000.\n..0..\n\n=======\nLEGEND\n=======\n\nJumpingPlayer = PlayerJump1 or PlayerJump2\nPlayer = PlayerGround or PlayerJump1 or PlayerJump2\nObstacle = Player or Wall or Water or GoldingBlock or GoldBlock or Target or GoldTarget\nCanFall = GoldBlock or Target or GoldTarget\n. = Background\n# = Wall\nP = PlayerGround and Crown\nT = Target\nW = Water\nG = GoldBlock\nD = GoldingBlock\n\n\n=========\nSOUNDS\n=========\nSFX0 28219707 (touch water)\nSFX1 45545307 (golding)\nSFX2 42491507 (make lady gold :/ )\nStartGame 8892900\nEndLevel 28067900\nEndGame 28067900\nCloseMessage 44855507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nlovebase\nPlayerGround, PlayerJump1,PlayerJump2, Wall, Water, GoldBlock, Target, GoldTarget, GoldingBlock\nCrown\nlove\n\n======\nRULES\n======\n\nUP [ Up PlayerGround | No Obstacle ] -> [ Up PlayerJump2 | ]\nDOWN [ Up JumpingPlayer | no obstacle ] -> [ JumpingPlayer | ]\nDOWN [ Up PlayerJump2 | no obstacle ] -> [ PlayerJump2 | ]\n\n[ Stationary CanFall ] -> [ Down CanFall ]\n\nHORIZONTAL [ > PlayerJump1 | NO obstacle ] -> [ | PlayerGround ]\nHORIZONTAL [ > PlayerJump2 | NO obstacle ] -> [ | PlayerJump1 ]\nLATE DOWN [ PlayerGround | NO obstacle ] -> [ | playerground ]\n\nLATE [ crown no player ] [ player ] -> [ ] [ crown player ]\nLATE [ goldingblock ] -> [goldblock]\nLATE [ crown | wall ] -> [crown | goldingblock] SFX1\nLATE [ crown | water ] -> [ | water ] SFX0\nLATE [ crown | target ] -> [ crown | goldtarget ] SFX2\nLATE DOWN [ JumpingPlayer | Obstacle ] -> [ PlayerGround | Obstacle ]\n\nLATE [ player | target ] -> [ player lovebase | target ]\nLATE UP [ lovebase | ] -> [ | love ]\n\n==============\nWINCONDITIONS\n==============\nsome love (Awwww!)\n\n=======\nLEVELS\n=======\n##############\n#............#\n#............#\n#.P.......T..#\n##G######WWW##\n##############\n\nmessage MIDAS\n\n###############\n#.............#\n#.............#\n#.....#.......#\n#.P..##..#.T..#\n##G#######WWW##\n###############\n\nmessage She waits for me every day\n\n###############\n#.............#\n#.............#\n#.............#\n#.....#.#.....#\n#.P..##.#..T..#\n##G#######WWW##\n###############\n\nmessage This is the price of gold:\n\n##############\n#............#\n#............#\n#.P..........#\n##G###T##WWW##\n##############\n\nmessage A heavy heart\n\n#################\n#...............#\n#...............#\n#......#.#......#\n#.....#####.....#\n#.......#.......#\n#.T.P...#.......#\n####G#######WWW##\n#################\n\nmessage I step in the same river\nmessage again and again\n\n#####################\n#...................#\n#...................#\n#...................#\n#.........#.#.......#\n#..P........#.......#\n#..d##########......#\n#.......######......#\n#...................#\n#.......T...........#\n#....#########WWW...#\n#...................#\n#...................#\n#...................#\n#####################\n\nmessage Just so I can touch her hand.\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#..P................#\n#..d##T########WWW..#\n#.....#.............#\n#...................#\n#...................#\n#####################\n\nmessage I am a prison to Pactolus\n\n#####################\n#...................#\n#........###........#\n#.......#####.......#\n#......##...##......#\n#.....T##.P.##W.....#\n#.....####d####.....#\n#.....#########.....#\n#...................#\n#####################\n\nmessage But I must have her!\n\n#####################\n#...................#\n#...................#\n#..T..#...###..W....#\n#..#####...#####....#\n#.....###...#.......#\n#........P..........#\n#.....###D###.......#\n#.....#######.......#\n#...................#\n#...................#\n#####################\n\nmessage My burden only grows\n\n#####################\n#...................#\n#........G..........#\n#.....W.GGG.T.......#\n#.....#######.......#\n#.....#.....#.......#\n#.....#..P..#.......#\n#.....###D###.......#\n#.....#######.......#\n#...................#\n#...................#\n#...................#\n#####################\n\nmessage My world collapses.\n\n#####################\n#...................#\n#...................#\n#..G....WW..........#\n#..##.####..........#\n#.....####..........#\n#...................#\n#.#...........T.....#\n#.##.......P..#.....#\n#..############.....#\n#...#.....####......#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\nmessage And she feels so distant\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#..P......#.........#\n#..GG...........WW..#\n#..##T############..#\n#....#..............#\n#...................#\n#...................#\n#####################\n\n\nmessage I live on borrowed time\n\n\n#####################\n#...................#\n#...................#\n#..........T........#\n#.........##........#\n#...................#\n#.......P...........#\n#.......D##.........#\n#...........#.......#\n#...................#\n#...................#\n#.......###W#.......#\n#####################\n\n\nmessage Is she still waiting?\n\n\n#####################\n#...................#\n#....###########....#\n#...................#\n#....P.........W....#\n#....###########....#\n#....#.........#....#\n#...................#\n#.........#.........#\n#......#..#..#......#\n#....T.#..#..#......#\n#....###########....#\n#...................#\n#...................#\n#...................#\n#####################\n\nmessage Is love just fool's gold?\n\n\n#####################\n#...................#\n#...................#\n#...........####....#\n#..T##.##..#...#....#\n#..#..#..#.#.P.#....#\n#..#.....#...G#.....#\n#...#...#....#......#\n#....#W#.....#......#\n#.....#.............#\n#............#......#\n#...................#\n#...................#\n#####################\n\n\nmessage Midas\n\n", [3, 3, 3, 0, 3, 3], "background wall:0,0,0,0,0,0,0,background:1,1,1,0,0,0,1,\n1,1,background goldblock:2,0,0,1,1,1,2,0,0,1,1,1,\n2,0,0,1,1,1,2,0,0,1,1,1,0,0,\n0,1,1,background crown playerground:3,background goldingblock:4,0,0,1,1,1,0,0,0,1,\n1,1,background water:5,0,0,1,1,background target:6,5,0,0,1,1,1,\n5,0,0,1,1,1,0,0,0,0,0,0,0,0,\n", 0, "1627777554778.3638"] + ["title Midas\nauthor wanderlands\nhomepage www.wanderlands.org\n\n(A port of the luxuriant Wanderlands game, Midas, with permission of the authors. It's a bit messy, if you can find a way to tidy it up, let me know :]\n\nthe original is here\nhttp://wanderlands.org/main/midas\n\n)\n\n========\nOBJECTS\n========\n\nBackground\nWHITE\n\nlovebase\nwhite\n\nTarget\nBLACK\n.....\n..0..\n.000.\n..0..\n.0.0.\n\n\nGoldTarget\nORANGE\n.....\n..0..\n.000.\n..0..\n.0.0.\n\nPlayerGround\nBLACK\n.....\n..0..\n.000.\n.000.\n.0.0.\n\nPlayerJump1\nBLACK\n.....\n..0..\n00000\n.000.\n.0.0.\n\nPlayerJump2\nBLACK\n.....\n..0..\n00000\n.000.\n.0.0.\n\nCrown\nOrange\n.000.\n.0.0.\n.....\n.....\n.....\n\n\nGoldBlock\nOrange\n\n\nGoldingBlock\nbrown\n\nWater\nBlue\n\nWall\nGRAY\n\nlove\npink\n.0.0.\n00000\n00000\n.000.\n..0..\n\n=======\nLEGEND\n=======\n\nJumpingPlayer = PlayerJump1 or PlayerJump2\nPlayer = PlayerGround or PlayerJump1 or PlayerJump2\nObstacle = Player or Wall or Water or GoldingBlock or GoldBlock or Target or GoldTarget\nCanFall = GoldBlock or Target or GoldTarget\n. = Background\n# = Wall\nP = PlayerGround and Crown\nT = Target\nW = Water\nG = GoldBlock\nD = GoldingBlock\n\n\n=========\nSOUNDS\n=========\nSFX0 28219707 (touch water)\nSFX1 45545307 (golding)\nSFX2 42491507 (make lady gold :/ )\nStartGame 8892900\nEndLevel 28067900\nEndGame 28067900\nCloseMessage 44855507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nlovebase\nPlayerGround, PlayerJump1,PlayerJump2, Wall, Water, GoldBlock, Target, GoldTarget, GoldingBlock\nCrown\nlove\n\n======\nRULES\n======\n\nUP [ Up PlayerGround | No Obstacle ] -> [ Up PlayerJump2 | ]\nDOWN [ Up JumpingPlayer | no obstacle ] -> [ JumpingPlayer | ]\nDOWN [ Up PlayerJump2 | no obstacle ] -> [ PlayerJump2 | ]\n\n[ Stationary CanFall ] -> [ Down CanFall ]\n\nHORIZONTAL [ > PlayerJump1 | NO obstacle ] -> [ | PlayerGround ]\nHORIZONTAL [ > PlayerJump2 | NO obstacle ] -> [ | PlayerJump1 ]\nLATE DOWN [ PlayerGround | NO obstacle ] -> [ | playerground ]\n\nLATE [ crown no player ] [ player ] -> [ ] [ crown player ]\nLATE [ goldingblock ] -> [goldblock]\nLATE [ crown | wall ] -> [crown | goldingblock] SFX1\nLATE [ crown | water ] -> [ | water ] SFX0\nLATE [ crown | target ] -> [ crown | goldtarget ] SFX2\nLATE DOWN [ JumpingPlayer | Obstacle ] -> [ PlayerGround | Obstacle ]\n\nLATE [ player | target ] -> [ player lovebase | target ]\nLATE UP [ lovebase | ] -> [ | love ]\n\n==============\nWINCONDITIONS\n==============\nsome love (Awwww!)\n\n=======\nLEVELS\n=======\n##############\n#............#\n#............#\n#.P.......T..#\n##G######WWW##\n##############\n\nmessage MIDAS\n\n###############\n#.............#\n#.............#\n#.....#.......#\n#.P..##..#.T..#\n##G#######WWW##\n###############\n\nmessage She waits for me every day\n\n###############\n#.............#\n#.............#\n#.............#\n#.....#.#.....#\n#.P..##.#..T..#\n##G#######WWW##\n###############\n\nmessage This is the price of gold:\n\n##############\n#............#\n#............#\n#.P..........#\n##G###T##WWW##\n##############\n\nmessage A heavy heart\n\n#################\n#...............#\n#...............#\n#......#.#......#\n#.....#####.....#\n#.......#.......#\n#.T.P...#.......#\n####G#######WWW##\n#################\n\nmessage I step in the same river\nmessage again and again\n\n#####################\n#...................#\n#...................#\n#...................#\n#.........#.#.......#\n#..P........#.......#\n#..d##########......#\n#.......######......#\n#...................#\n#.......T...........#\n#....#########WWW...#\n#...................#\n#...................#\n#...................#\n#####################\n\nmessage Just so I can touch her hand.\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#..P................#\n#..d##T########WWW..#\n#.....#.............#\n#...................#\n#...................#\n#####################\n\nmessage I am a prison to Pactolus\n\n#####################\n#...................#\n#........###........#\n#.......#####.......#\n#......##...##......#\n#.....T##.P.##W.....#\n#.....####d####.....#\n#.....#########.....#\n#...................#\n#####################\n\nmessage But I must have her!\n\n#####################\n#...................#\n#...................#\n#..T..#...###..W....#\n#..#####...#####....#\n#.....###...#.......#\n#........P..........#\n#.....###D###.......#\n#.....#######.......#\n#...................#\n#...................#\n#####################\n\nmessage My burden only grows\n\n#####################\n#...................#\n#........G..........#\n#.....W.GGG.T.......#\n#.....#######.......#\n#.....#.....#.......#\n#.....#..P..#.......#\n#.....###D###.......#\n#.....#######.......#\n#...................#\n#...................#\n#...................#\n#####################\n\nmessage My world collapses.\n\n#####################\n#...................#\n#...................#\n#..G....WW..........#\n#..##.####..........#\n#.....####..........#\n#...................#\n#.#...........T.....#\n#.##.......P..#.....#\n#..############.....#\n#...#.....####......#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\nmessage And she feels so distant\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#..P......#.........#\n#..GG...........WW..#\n#..##T############..#\n#....#..............#\n#...................#\n#...................#\n#####################\n\n\nmessage I live on borrowed time\n\n\n#####################\n#...................#\n#...................#\n#..........T........#\n#.........##........#\n#...................#\n#.......P...........#\n#.......D##.........#\n#...........#.......#\n#...................#\n#...................#\n#.......###W#.......#\n#####################\n\n\nmessage Is she still waiting?\n\n\n#####################\n#...................#\n#....###########....#\n#...................#\n#....P.........W....#\n#....###########....#\n#....#.........#....#\n#...................#\n#.........#.........#\n#......#..#..#......#\n#....T.#..#..#......#\n#....###########....#\n#...................#\n#...................#\n#...................#\n#####################\n\nmessage Is love just fool's gold?\n\n\n#####################\n#...................#\n#...................#\n#...........####....#\n#..T##.##..#...#....#\n#..#..#..#.#.P.#....#\n#..#.....#...G#.....#\n#...#...#....#......#\n#....#W#.....#......#\n#.....#.............#\n#............#......#\n#...................#\n#...................#\n#####################\n\n\nmessage Midas\n\n",[3,3,3,0,3,3],"background wall:0,0,0,0,0,0,0,background:1,1,1,0,0,0,1,\n1,1,background goldblock:2,0,0,1,1,1,2,0,0,1,1,1,\n2,0,0,1,1,1,2,0,0,1,1,1,0,0,\n0,1,1,background crown playerground:3,background goldingblock:4,0,0,1,1,1,0,0,0,1,\n1,1,background water:5,0,0,1,1,background target:6,5,0,0,1,1,1,\n5,0,0,1,1,1,0,0,0,0,0,0,0,0,\n",0,"1627777554778.3638"] ], [ `gallery: heroes of sokoban`, - ["title Heroes of Sokoban\nauthor Jonah Ostroff\ntext_color yellow\nkey_repeat_interval 0.25\n\n========\nOBJECTS\n========\n\nBackground \n#AAAAAA #DDDDDD\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 \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#00BB00 Pink DarkBrown\n.000.\n.010.\n00000\n.0.0.\n.0.0.\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\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\nTemp\nPink\n\nShadowDoor\nPurple\n\n=======\nLEGEND\n=======\n\nPlayer = Fighter or Wizard or Thief\nSPlayer = Swizard or Sthief or SFighter\nHero = Player or Splayer\nClosedDoor = PurpleDoor or YellowDoor\nOpenDoor = YellowOpen or PurpleOpen\nSwitch = PurpleSwitch or YellowSwitch\nMoveable = Crate or SPlayer\nStatic = Wall or ClosedDoor\nWeighing = Crate or Player or SPlayer\n. = Background\n# = Wall\nF = Fighter\nW = Wizard\nT = Thief\n1 = SFighter\n2 = SThief\n3 = SWizard\n* = Crate\nG = Goal\n[ = YellowDoor\n] = PurpleDoor\n{ = YellowSwitch\n} = PurpleSwitch\n\n=======\nSOUNDS\n=======\n\nMoveable move 82056307\nSfx0 21221308\nEndlevel 36315908\nSfx1 66399906\nSfx2 92172900\nSfx3 15129100\nEndGame 86793500\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTemp\nGoal, Switch, OpenDoor, ShadowDoor\nClosedDoor, Hero, Crate, Wall\n\n======\nRULES \n====== \n\n[ > Fighter | Moveable ] -> [ > Fighter | > Moveable ] \n[ > Moveable | Moveable ] [ Fighter] -> [ > Moveable | > Moveable ] [ Fighter]\n\n[ < Thief | Moveable ] -> [ < Thief | < Moveable ]\n\n[ > Wizard ] -> [ Wizard > Temp]\n[ > Temp | no Moveable no Static] -> [ | > Temp]\n[ > Temp | Static] [Wizard] -> [ | Static ] [> Wizard]\n[ > Temp | Moveable ] [Wizard] -> [ | Wizard Sfx0] [Moveable]\n\nLate [Temp] -> []\n\n[ Action Fighter] [SThief] -> [SFighter] [Thief Sfx1]\n[ Action Thief] [SWizard] -> [SThief] [Wizard Sfx1]\n[ Action Wizard] [SFighter] -> [SWizard] [Fighter Sfx1]\n[ Action Fighter] [no SThief] [SWizard] -> [SFighter] [no SThief] [Wizard Sfx1]\n[ Action Thief] [no Swizard] [SFighter] -> [SThief] [no SWizard] [Fighter Sfx1]\n[ Action Wizard] [no SFighter] [SThief] -> [SWizard] [no SFighter] [Thief Sfx1]\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\n==============\nWINCONDITIONS\n==============\n\nAll Hero on Goal \nAll Goal on Hero\n\n======= \nLEVELS\n=======\n\nMessage Walk to the exit.\n\n#############\n#...........#\n#.F.......G.#\n#...........#\n#############\n\nMessage Red warrior pushes blocks.\n\n#############\n#...#.*.#.*.#\n#.F...*.**G.#\n#...#.*.#.*.#\n#############\n\nMessage Hold down switches to open doors. \n\n#############\n#...#...#...#\n#.F.*.{.#.G.#\n#...#...[...#\n#############\n\nMessage Press multiple switches at once.\n\n#########\n#.....#G#\n#.#*..#[#\n#.**.F..#\n#.......#\n#.{.{.{.#\n#.......#\n#########\n\nMessage Green thief pulls blocks.\n\n#############\n#...#..*#...#\n#.T.*.{.#.G.#\n#...#..*[...#\n#############\n\n#########\n#.....#G#\n#.#*..#[#\n#.**.T..#\n#.......#\n#.{.{.{.#\n#.......#\n#########\n\n#########\n#...##G.#\n#.#..##[#\n#....{..#\n#.#.#.#.#\n#..*.T..#\n#########\n\nMessage Blue wizard teleports to blocks.\n\n#############\n#...*.{.#...#\n#.W.*.{.[.G.#\n#...#...#...#\n#############\n\n#########\n#.....#G# \n#.#*..#[#\n#.**.W..#\n#.......#\n#.{.{.{.#\n#.......#\n#########\n\n#######\n#W#G#*#\n#.#.#.#\n#*...*#\n#.###.#\n#*.*..#\n#######\n\nMessage Press action to switch heroes.\n\n#############\n#...#...#...#\n#.F...}.[.G.#\n#...#...#...#\n#############\n#...#...#...#\n#.3.].{...G.#\n#...#...#...#\n#############\n\nMessage Heroes can move each other.\n\n###########\n#*#..##G.G#\n#.#.2.#...#\n#.....#..##\n#W###.*..*#\n###########\n\n###########\n#F.*.#.*#{#\n#..#...*..#\n####...*.*#\n#..#.##[###\n#2...#*.GG#\n###########\n\n#############\n#.###########\n#*....{....3#\n#.####.######\n#.#..#.###..#\n#.#G....[].G#\n#.#..#.###..#\n#.####.######\n#.....}....T#\n#############\n\n#############\n##G.#F#*#...#\n#*..[.....{.#\n##G.#3###...#\n#############\n\n###########\n#W..{...[*#\n#######.#[#\n#G#G#G#.#2#\n#.......#1#\n###########\n\n#########\n#*......#\n#######.#\n#F23.]#.#\n#..##G#.#\n#..#GG#.#\n##.####.#\n#.......#\n##}####.#\n#########\n\n#############\n#...#G.G#...#\n#.*.#F23#.G.#\n#...#...#...#\n##[###.###[##\n#...#...#...#\n#.{...{...{.#\n#...#...#...#\n#############\n\n#######\n#G***F#\n#*****#\n#G***2#\n#*****#\n#G***3#\n#######\n\n########\n#3..G[*#\n########\n#F**G{{#\n########\n#2.[G..#\n########\n\n#############\n#...#...#...#\n#F#.*.#.*.#3#\n#...#...#...#\n######.######\n#...#...#####\n#2#.*.#...}*#\n#...#...#####\n######.######\n#G..#...#...#\n#G..].#...#.#\n#G..#...#...#\n#############\n\n#############\n#F.........G#\n#############\n#T.........G#\n#############\n#W.........G#\n#############\nMessage Thanks for playing!\n", [2, 2, 3, 2, 2, 2, 1, 1, 1, 1, 0, 0, 2, 1, 4, 2, 2, 2, 1, 2, 1, 1, 1, 3, 3, 3, 3, 4, 1, 2], "background wall:0,0,0,0,0,0,0,0,0,0,background:1,1,1,\n0,1,1,1,0,0,1,background crate:2,1,background yellowdoor:3,1,background yellowswitch:4,1,\n0,0,1,1,1,0,1,1,1,0,0,0,0,\n0,0,0,1,0,0,0,background goal:5,1,1,0,1,background sfighter:6,\n1,0,0,1,background sthief:7,1,1,1,background wizard yellowswitch:8,1,0,0,5,\n1,1,0,1,1,1,0,0,0,0,0,0,0,\n1,0,0,0,1,1,1,0,1,1,1,0,0,\n1,5,1,3,1,4,1,0,0,1,1,1,0,\n1,1,1,0,0,0,0,0,0,0,0,0,0,\n", 25, "1627777591387.1045"] + ["title Heroes of Sokoban\nauthor Jonah Ostroff\ntext_color yellow\nkey_repeat_interval 0.25\n\n========\nOBJECTS\n========\n\nBackground \n#AAAAAA #DDDDDD\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 \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#00BB00 Pink DarkBrown\n.000.\n.010.\n00000\n.0.0.\n.0.0.\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\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\nTemp\nPink\n\nShadowDoor\nPurple\n\n=======\nLEGEND\n=======\n\nPlayer = Fighter or Wizard or Thief\nSPlayer = Swizard or Sthief or SFighter\nHero = Player or Splayer\nClosedDoor = PurpleDoor or YellowDoor\nOpenDoor = YellowOpen or PurpleOpen\nSwitch = PurpleSwitch or YellowSwitch\nMoveable = Crate or SPlayer\nStatic = Wall or ClosedDoor\nWeighing = Crate or Player or SPlayer\n. = Background\n# = Wall\nF = Fighter\nW = Wizard\nT = Thief\n1 = SFighter\n2 = SThief\n3 = SWizard\n* = Crate\nG = Goal\n[ = YellowDoor\n] = PurpleDoor\n{ = YellowSwitch\n} = PurpleSwitch\n\n=======\nSOUNDS\n=======\n\nMoveable move 82056307\nSfx0 21221308\nEndlevel 36315908\nSfx1 66399906\nSfx2 92172900\nSfx3 15129100\nEndGame 86793500\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTemp\nGoal, Switch, OpenDoor, ShadowDoor\nClosedDoor, Hero, Crate, Wall\n\n======\nRULES \n====== \n\n[ > Fighter | Moveable ] -> [ > Fighter | > Moveable ] \n[ > Moveable | Moveable ] [ Fighter] -> [ > Moveable | > Moveable ] [ Fighter]\n\n[ < Thief | Moveable ] -> [ < Thief | < Moveable ]\n\n[ > Wizard ] -> [ Wizard > Temp]\n[ > Temp | no Moveable no Static] -> [ | > Temp]\n[ > Temp | Static] [Wizard] -> [ | Static ] [> Wizard]\n[ > Temp | Moveable ] [Wizard] -> [ | Wizard Sfx0] [Moveable]\n\nLate [Temp] -> []\n\n[ Action Fighter] [SThief] -> [SFighter] [Thief Sfx1]\n[ Action Thief] [SWizard] -> [SThief] [Wizard Sfx1]\n[ Action Wizard] [SFighter] -> [SWizard] [Fighter Sfx1]\n[ Action Fighter] [no SThief] [SWizard] -> [SFighter] [no SThief] [Wizard Sfx1]\n[ Action Thief] [no Swizard] [SFighter] -> [SThief] [no SWizard] [Fighter Sfx1]\n[ Action Wizard] [no SFighter] [SThief] -> [SWizard] [no SFighter] [Thief Sfx1]\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\n==============\nWINCONDITIONS\n==============\n\nAll Hero on Goal \nAll Goal on Hero\n\n======= \nLEVELS\n=======\n\nMessage Walk to the exit.\n\n#############\n#...........#\n#.F.......G.#\n#...........#\n#############\n\nMessage Red warrior pushes blocks.\n\n#############\n#...#.*.#.*.#\n#.F...*.**G.#\n#...#.*.#.*.#\n#############\n\nMessage Hold down switches to open doors. \n\n#############\n#...#...#...#\n#.F.*.{.#.G.#\n#...#...[...#\n#############\n\nMessage Press multiple switches at once.\n\n#########\n#.....#G#\n#.#*..#[#\n#.**.F..#\n#.......#\n#.{.{.{.#\n#.......#\n#########\n\nMessage Green thief pulls blocks.\n\n#############\n#...#..*#...#\n#.T.*.{.#.G.#\n#...#..*[...#\n#############\n\n#########\n#.....#G#\n#.#*..#[#\n#.**.T..#\n#.......#\n#.{.{.{.#\n#.......#\n#########\n\n#########\n#...##G.#\n#.#..##[#\n#....{..#\n#.#.#.#.#\n#..*.T..#\n#########\n\nMessage Blue wizard teleports to blocks.\n\n#############\n#...*.{.#...#\n#.W.*.{.[.G.#\n#...#...#...#\n#############\n\n#########\n#.....#G# \n#.#*..#[#\n#.**.W..#\n#.......#\n#.{.{.{.#\n#.......#\n#########\n\n#######\n#W#G#*#\n#.#.#.#\n#*...*#\n#.###.#\n#*.*..#\n#######\n\nMessage Press action to switch heroes.\n\n#############\n#...#...#...#\n#.F...}.[.G.#\n#...#...#...#\n#############\n#...#...#...#\n#.3.].{...G.#\n#...#...#...#\n#############\n\nMessage Heroes can move each other.\n\n###########\n#*#..##G.G#\n#.#.2.#...#\n#.....#..##\n#W###.*..*#\n###########\n\n###########\n#F.*.#.*#{#\n#..#...*..#\n####...*.*#\n#..#.##[###\n#2...#*.GG#\n###########\n\n#############\n#.###########\n#*....{....3#\n#.####.######\n#.#..#.###..#\n#.#G....[].G#\n#.#..#.###..#\n#.####.######\n#.....}....T#\n#############\n\n#############\n##G.#F#*#...#\n#*..[.....{.#\n##G.#3###...#\n#############\n\n###########\n#W..{...[*#\n#######.#[#\n#G#G#G#.#2#\n#.......#1#\n###########\n\n#########\n#*......#\n#######.#\n#F23.]#.#\n#..##G#.#\n#..#GG#.#\n##.####.#\n#.......#\n##}####.#\n#########\n\n#############\n#...#G.G#...#\n#.*.#F23#.G.#\n#...#...#...#\n##[###.###[##\n#...#...#...#\n#.{...{...{.#\n#...#...#...#\n#############\n\n#######\n#G***F#\n#*****#\n#G***2#\n#*****#\n#G***3#\n#######\n\n########\n#3..G[*#\n########\n#F**G{{#\n########\n#2.[G..#\n########\n\n#############\n#...#...#...#\n#F#.*.#.*.#3#\n#...#...#...#\n######.######\n#...#...#####\n#2#.*.#...}*#\n#...#...#####\n######.######\n#G..#...#...#\n#G..].#...#.#\n#G..#...#...#\n#############\n\n#############\n#F.........G#\n#############\n#T.........G#\n#############\n#W.........G#\n#############\nMessage Thanks for playing!\n",[2,2,3,2,2,2,1,1,1,1,0,0,2,1,4,2,2,2,1,2,1,1,1,3,3,3,3,4,1,2],"background wall:0,0,0,0,0,0,0,0,0,0,background:1,1,1,\n0,1,1,1,0,0,1,background crate:2,1,background yellowdoor:3,1,background yellowswitch:4,1,\n0,0,1,1,1,0,1,1,1,0,0,0,0,\n0,0,0,1,0,0,0,background goal:5,1,1,0,1,background sfighter:6,\n1,0,0,1,background sthief:7,1,1,1,background wizard yellowswitch:8,1,0,0,5,\n1,1,0,1,1,1,0,0,0,0,0,0,0,\n1,0,0,0,1,1,1,0,1,1,1,0,0,\n1,5,1,3,1,4,1,0,0,1,1,1,0,\n1,1,1,0,0,0,0,0,0,0,0,0,0,\n",25,"1627777591387.1045"] ], [ `gallery: cake monsters`, - ["title Cake Monsters\nauthor Matt Rix\nhomepage www.magicule.com\ncolor_palette whitingjp\ntext_color #FF5588\nbackground_color #050A0A\nnoaction\nyoutube Z6ih1aKeETk (tycho!)\n\n========\nOBJECTS\n========\n\n(-----------------------)\n(----MONSTER COLOURS----)\n(-----------------------)\n\nRedMon\n#D8144D #B00F3F BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nYellowMon\n#F3F333 #C7C829 BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nBlueMon\n#0366E3 #0A52BB BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nPurpleMon\n#9E14E2 #800FBA BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nOrangeMon\n#E68A25 #BB711E BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nGreenMon\n#1CED55 #15C346 BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nTrashMon\n#7C6953 #6D5239 BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\n\n(------------------------)\n(------CAKE COLOURS------)\n(------------------------)\n\nRedCake\n#D8144D #B00F3F\n.000.\n00000\n00000\n10001\n.111.\n\nYellowCake\n#F3F333 #C7C829\n.000.\n00000\n00000\n10001\n.111.\n\nBlueCake\n#0366E3 #0A52BB\n.000.\n00000\n00000\n10001\n.111.\n\n\nPurpleCake\n#9E14E2 #800FBA\n.000.\n00000\n00000\n10001\n.111.\n\nOrangeCake\n#E68A25 #BB711E\n.000.\n00000\n00000\n10001\n.111.\n\nGreenCake\n#1CED55 #15C346\n.000.\n00000\n00000\n10001\n.111.\n\nTrashCake\n#7C6953 #6D5239\n.000.\n00000\n00000\n10001\n.111.\n\n(-----------------------)\n(------OTHER STUFF------)\n(-----------------------)\n\nDestroyer\n#001111 #223333 #384949\n.222.\n20202\n12021\n10101\n.111.\n\nBackground\n#152020 #192525\n01101\n10110\n01101\n11010\n01010\n\n\nWall\n#334444 #384949 #445555 #475959 #4A6B6B\n34443\n23332\n12221\n01110\n00000\n\nBlackness\n#050A0A\n\n\n=======\nLEGEND\n=======\n\n\n. = Background\n_ = Blackness\n# = Wall\nX = Destroyer\n\nR = RedMon\nY = YellowMon\nB = BlueMon\nP = PurpleMon\nO = OrangeMon\nG = GreenMon\nT = TrashMon\n\nMonster = RedMon or YellowMon or BlueMon or PurpleMon or OrangeMon or GreenMon or TrashMon\nPlayer = Monster\n\nPrimaryMon = RedMon or YellowMon or BlueMon\nSecondaryMon = PurpleMon or OrangeMon or GreenMon\n\n(each cake char is the next letter in the alphabet after the monster char)\n(except for orange, sadly)\nS = RedCake\nZ = YellowCake\nC = BlueCake\nQ = PurpleCake\nA = OrangeCake\nH = GreenCake\nU = TrashCake\n\nCake = RedCake or YellowCake or BlueCake or PurpleCake or OrangeCake or GreenCake or TrashCake\n\n=======\nSOUNDS\n=======\n\nsfx0 8478107 (move)\nsfx1 18590508 (eat other monster)\nsfx2 61437309 (eat cake)\nsfx3 89161102 (monster destroyed)\nstartlevel 563108\nendlevel 76028308\nundo 82948709\nrestart 22851101\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBlackness, Wall, Destroyer\nMonster,Cake\n\n\n\n======\nRULES \n====== \n\n(------------------------)\n(----MONSTER MOVEMENT----)\n(------------------------)\n\n(movement sound)\n[ > Monster ] -> [ > Monster ] sfx0\n\n(stop the monster if it hits a wall)\n[ > Monster | Wall ] -> [ Monster | Wall] \n\n(if monster hits a destroyer, remove the monster)\n[ > Monster | Destroyer ] -> [ | Destroyer] sfx3\n\n(monster eats cakes of the same color)\n[ > RedMon | RedCake] -> [ | RedMon] sfx2 \n[ > BlueMon | BlueCake] -> [ | BlueMon] sfx2 \n[ > YellowMon | YellowCake] -> [ | YellowMon] sfx2 \n[ > PurpleMon | PurpleCake] -> [ | PurpleMon] sfx2 \n[ > OrangeMon | OrangeCake] -> [ | OrangeMon] sfx2 \n[ > GreenMon | GreenCake] -> [ | GreenMon] sfx2 \n[ > TrashMon | TrashCake] -> [ | TrashMon] sfx2 \n\n(stop the monster if it hits a cake of a different color)\n(note: this is necessary to make sure the monster is marked as stationary)\n[ > RedMon | Cake no RedCake] -> [ RedMon | Cake no RedCake]\n[ > BlueMon | Cake no BlueCake] -> [ BlueMon | Cake no BlueCake]\n[ > YellowMon | Cake no YellowCake] -> [ YellowMon | Cake no YellowCake]\n[ > PurpleMon | Cake no PurpleCake] -> [ PurpleMon | Cake no PurpleCake]\n[ > OrangeMon | Cake no OrangeCake] -> [ OrangeMon | Cake no OrangeCake]\n[ > GreenMon | Cake no GreenCake] -> [ GreenMon | Cake no GreenCake]\n[ > TrashMon | Cake no TrashCake] -> [ TrashMon | Cake no TrashCake]\n\n(--------------------------)\n(---MONSTER COLOR MIXING---)\n(--------------------------)\n\n(red+blue = purple)\n[ > BlueMon | stationary RedMon] -> [ | PurpleMon] sfx1\n[ > RedMon | stationary BlueMon] -> [ | PurpleMon] sfx1\n\n(red+yellow = orange)\n[ > RedMon | stationary YellowMon] -> [ | OrangeMon] sfx1\n[ > YellowMon | stationary RedMon] -> [ | OrangeMon] sfx1\n\n(blue+yellow = green)\n[ > BlueMon | stationary YellowMon] -> [ | GreenMon] sfx1\n[ > YellowMon | stationary BlueMon] -> [ | GreenMon] sfx1\n\n(primary color + secondary color = brown aka trash)\n[ > PrimaryMon | stationary SecondaryMon] -> [ | TrashMon] sfx1\n[ > SecondaryMon | stationary PrimaryMon] -> [ | TrashMon] sfx1\n\n(green+orange = trash)\n[ > GreenMon | stationary OrangeMon] -> [ | TrashMon] sfx1\n[ > OrangeMon | stationary GreenMon] -> [ | TrashMon] sfx1\n\n(purple+orange = trash)\n[ > PurpleMon | stationary OrangeMon] -> [ | TrashMon] sfx1\n[ > OrangeMon | stationary PurpleMon] -> [ | TrashMon] sfx1\n\n(green+purple = trash)\n[ > GreenMon | stationary PurpleMon] -> [ | TrashMon] sfx1\n[ > PurpleMon | stationary GreenMon] -> [ | TrashMon] sfx1\n\n(trash+anything = trash)\n[ > TrashMon | stationary Monster] -> [ | TrashMon] sfx1\n[ > Monster | stationary TrashMon] -> [ | TrashMon] sfx1\n\n(monster + monster of the same color = monster of the same color)\n[ > Monster | stationary Monster] -> [ | Monster] sfx1\n\n \n==============\nWINCONDITIONS\n==============\n \nNo Cake\n\n\n======= \nLEVELS\n======= \n\n\nmessage WELCOME TO CAKE MONSTERS!\nmessage MONSTERS LIKE EATING CAKE\n\n_______\n#######\n#.....#\n#.r...#\n#...s.#\n#.....#\n#######\n_______\n(diff 0)\n\nmessage YOU MOVE ALL OF THE MONSTERS\n\n######_######\n#....#_#z...#\n#.r..#_#....#\n#..s.#_#....#\n#....#_#...y#\n######_######\n_____________\n######_######\n#.c..#_#....#\n#....#_#...h#\n#..b.#_#g...#\n#....#_#....#\n######_######\n(diff 0)\n\nmessage MONSTERS ONLY LIKE THEIR OWN CAKE\nmessage REMEMBER: Z TO UNDO, R TO RESTART\n_________\n#########\n#r.z....#\n#######.#\n#.......#\n#.sy....#\n#########\n_________\n(diff 1)\n\nmessage MONSTERS MIX WHEN THEY GET EATEN\n_________\n#########\n#.......#\n#.#####.#\n#.r.q.b.#\n#.#####.#\n#.......#\n#########\n_________\n(diff 1)\n\n\nmessage BROWN + ANY COLOR = BROWN\n__________\n##########\n#........#\n#.rybpog.#\n#........#\n#........#\n#.szcqah.#\n#........#\n#........#\n#.uuuuuu.#\n#........#\n##########\n__________\n(diff 1)\n\n\nmessage HAVE FUN!\n############\n#y........c#\n#b........z#\n#####..#####\n____#..#____\n____#..#____\n____#hh#____\n____####____\n(diff 1)\n\n(----------------------------)\n\n\n_____\n#####\n#RCQ#\n#.CS#\n#Q.B#\n#####\n_____\n(diff 2)\n\n\n\n\n______\n######\n#R...#\n#B...#\n#Q.QQ#\n#CSCS#\n######\n______\n(diff 2)\n\n_______\n#######\n#R.H.B#\n#.....#\n#.....#\n#Y.Q.B#\n#######\n_______\n(diff 2)\n\n_______\n#######\n#CCHCB#\n#.....#\n#YZHZZ#\n#######\n_______\n(diff 2)\n\n\n______\n######\n#R..B#\n#S.C.#\n#.A.C#\n#Y.C.#\n######\n______\n(diff 2)\n\n\nmessage PIECE OF CAKE, RIGHT?\n\n\n#########\n#ccccccc#\n#bcccccc#\n######cc#\n_____#ch#\n######zz#\n#yzzzzzz#\n#yzzzzzz#\n######zz#\n_____#sa#\n######ss#\n#rssssss#\n#sssssss#\n#########\n(diff 3, fun)\n\n_______\n#######\n#R.B.Y#\n#Y.B.R#\n#R.B.Y#\n#Y.B.R#\n#AHQHA#\n#######\n_______\n(diff 3)\n\n\n_______\n#######\n#AR.BA#\n#.#.#.#\n#H...H#\n##.A.##\n#HY#YH#\n#######\n_______\n(diff 3)\n\n\n\nmessage X TILES DESTROY MONSTERS\n_________\n_###_###_\n#...#...#\n#.q.x.p.#\n#...x...#\n_#..x..#_\n__#...#__\n___#.#___\n____#____\n_________\n(diff 0, destroyerz)\n\n\n_____\n#####\n#RAR#\n#RXY#\n#YAY#\n#####\n_____\n(diff 1, destroyerz)\n\n______\n######\n#BHHB#\n#YXXY#\n#YXXY#\n#BHHB#\n######\n______\n(diff 1 destroyerz)\n\n_______\n#######\n#RQXQR#\n#SQXQS#\n#BQXQB#\n#######\n_______\n(diff 1 destroyerz)\n\n___________\n#####_#####\n#sss#_#qqq#\n#sss###qqq#\n#x.......x#\n##x.rxb.x##\n#x.......x#\n#qqq###ccc#\n#qqq#_#ccc#\n#####_#####\n___________\n(diff 2 destroyerz)\n\n___________\n###########\n#...#q#.b.#\n#sxr#.#xx.#\n#.x.....c.#\n###########\n___________\n(diff 3 destroyerz)\n\n\n\nmessage YOU'RE CAKING THIS LOOK EASY!\n\n______\n######\n#RZSZ#\n#YSZS#\n#..SZ#\n#..ZS#\n######\n______\n(diff 3)\n\n\n#######\n#Y#B#Y#\n#.#R#.#\n#.#.#.#\n#.....#\n#.###.#\n#HHAHH#\n#######\n(diff 3, fun!)\n\n\n\n####__####\n#qc####cb#\n#c......c#\n##.####.##\n_#.#xx#.#_\n_#.c.r#.#_\n##.####.##\n#c......c#\n#qc####cq#\n####__####\n(diff 3)\n\n\n\n\n_#########_\n_#rrr.sss#_\n_#.......#_\n_#yyy.zzz#_\n_#.......#_\n##bbb.ccc##\n#.........#\n#.q..a..h.#\n#.........#\n###########\n\n______\n######\n#RA.Y#\n#....#\n#HH..#\n#SBCY#\n######\n______\n(diff 4)\n\nmessage LET'S CAKE IT TO THE NEXT TIER!\n\n\n#############\n#...#.h.#...#\n#.r.#...#.y.#\n#...c#c#s...#\n###c.....s###\n#..#.#h#.#..#\n#z.h.z.c.s.c#\n#..#.#s#.#..#\n###......z###\n#....#z#z...#\n#.b.#...#.g.#\n#...#.s.#...#\n#############\n(diff 3, easy but fun)\n\n\n_____\n#####\n#B.B#\n#RRY#\n#.Q.#\n#S.S#\n#CHC#\n#####\n_____\n(diff 5 - fun!)\n\n\n______\n######\n#HYBH#\n#YBYB#\n#BBBB#\n#HHHH#\n######\n______\n(diff 4)\n\n\n\n\n______\n######\n#BR.Y#\n#..A.#\n#SCZA#\n#CSZA#\n######\n______\n(diff 4)\n\n\n\n\n______\n######\n#CZG.#\n#ZCR##\n###..#\n#SHY##\n#HSB.#\n######\n______\n(diff 5 - very fun!)\n\n\nmessage YOU'RE GETTING BATTER!\n\n______\n######\n#YYYY#\n#...R#\n#AAAA#\n#ZZZZ#\n######\n______\n(diff 5 - fun but surprisingly hard)\n\n\n_______\n#######\n#Y..YA#\n#.BB.H#\n#R..RQ#\n#Y..YH#\n#######\n_______\n(diff 4)\n\n\nmessage ICING ON THE CAKE!\n\n______\n######\n#ZBBZ#\n#YBYB#\n#....#\n#ZHCZ#\n######\n______\n(diff 5)\n\n\n\n\n_______\n#######\n#A.S.A#\n#.Z.Z.#\n#SYRYS#\n#.ZYZ.#\n#A.S.A#\n#######\n_______\n(diff 5 - not too hard)\n\n\n\nmessage WILL YOU CAKE IT OUT ALIVE?\n______\n######\n#ZZZZ#\n#SSSS#\n#CCCC#\n#YRB.#\n######\n______\n(diff 6 - fun but tricky)\n\n\n\n\nmessage THE FINAL CHALLENGE!\nmessage DOUGH YOU HAVE WHAT IT CAKES?\n_____\n#####\n#AYA#\n#...#\n#CBC#\n#SZY#\n#RZS#\n#CBC#\n#...#\n#HOH#\n#####\n_____\n(diff 8 - a pretty tough one)\n\n\n\nmessage WELL, YOU REALLY TOOK THE CAKE!\nmessage CONGRATS, YOU WIN! :)\n\n\n\n", [1, 1, 1, 1, 3, 1, 2, 2, 0, 1, 1, 1, 1, 1, 2, 2, 2, 3, 1, 0, 0, 0, 0, 2, 1, 3, 2, 2, 2, 2, 2, 2, 1], "background wall:0,0,0,0,background blackness:1,1,0,0,0,0,\n0,background purplecake:2,background:3,0,0,0,0,background bluecake:4,2,0,\n0,3,3,3,3,3,3,3,background bluemon:5,0,\n0,0,3,0,0,3,0,3,0,0,\n1,0,3,0,background destroyer:6,3,0,3,0,1,\n1,0,3,0,6,3,0,3,0,1,\n0,0,3,0,0,0,0,3,0,0,\n0,3,3,3,3,3,3,3,4,0,\n0,3,4,0,0,0,0,4,2,0,\n0,0,0,0,1,1,0,0,0,0,\n", 33, "1627777633918.221"] + ["title Cake Monsters\nauthor Matt Rix\nhomepage www.magicule.com\ncolor_palette whitingjp\ntext_color #FF5588\nbackground_color #050A0A\nnoaction\nyoutube Z6ih1aKeETk (tycho!)\n\n========\nOBJECTS\n========\n\n(-----------------------)\n(----MONSTER COLOURS----)\n(-----------------------)\n\nRedMon\n#D8144D #B00F3F BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nYellowMon\n#F3F333 #C7C829 BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nBlueMon\n#0366E3 #0A52BB BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nPurpleMon\n#9E14E2 #800FBA BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nOrangeMon\n#E68A25 #BB711E BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nGreenMon\n#1CED55 #15C346 BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\nTrashMon\n#7C6953 #6D5239 BLACK WHITE\n00000\n020.3\n000..\n00000\n1..1.\n\n\n(------------------------)\n(------CAKE COLOURS------)\n(------------------------)\n\nRedCake\n#D8144D #B00F3F\n.000.\n00000\n00000\n10001\n.111.\n\nYellowCake\n#F3F333 #C7C829\n.000.\n00000\n00000\n10001\n.111.\n\nBlueCake\n#0366E3 #0A52BB\n.000.\n00000\n00000\n10001\n.111.\n\n\nPurpleCake\n#9E14E2 #800FBA\n.000.\n00000\n00000\n10001\n.111.\n\nOrangeCake\n#E68A25 #BB711E\n.000.\n00000\n00000\n10001\n.111.\n\nGreenCake\n#1CED55 #15C346\n.000.\n00000\n00000\n10001\n.111.\n\nTrashCake\n#7C6953 #6D5239\n.000.\n00000\n00000\n10001\n.111.\n\n(-----------------------)\n(------OTHER STUFF------)\n(-----------------------)\n\nDestroyer\n#001111 #223333 #384949\n.222.\n20202\n12021\n10101\n.111.\n\nBackground\n#152020 #192525\n01101\n10110\n01101\n11010\n01010\n\n\nWall\n#334444 #384949 #445555 #475959 #4A6B6B\n34443\n23332\n12221\n01110\n00000\n\nBlackness\n#050A0A\n\n\n=======\nLEGEND\n=======\n\n\n. = Background\n_ = Blackness\n# = Wall\nX = Destroyer\n\nR = RedMon\nY = YellowMon\nB = BlueMon\nP = PurpleMon\nO = OrangeMon\nG = GreenMon\nT = TrashMon\n\nMonster = RedMon or YellowMon or BlueMon or PurpleMon or OrangeMon or GreenMon or TrashMon\nPlayer = Monster\n\nPrimaryMon = RedMon or YellowMon or BlueMon\nSecondaryMon = PurpleMon or OrangeMon or GreenMon\n\n(each cake char is the next letter in the alphabet after the monster char)\n(except for orange, sadly)\nS = RedCake\nZ = YellowCake\nC = BlueCake\nQ = PurpleCake\nA = OrangeCake\nH = GreenCake\nU = TrashCake\n\nCake = RedCake or YellowCake or BlueCake or PurpleCake or OrangeCake or GreenCake or TrashCake\n\n=======\nSOUNDS\n=======\n\nsfx0 8478107 (move)\nsfx1 18590508 (eat other monster)\nsfx2 61437309 (eat cake)\nsfx3 89161102 (monster destroyed)\nstartlevel 563108\nendlevel 76028308\nundo 82948709\nrestart 22851101\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBlackness, Wall, Destroyer\nMonster,Cake\n\n\n\n======\nRULES \n====== \n\n(------------------------)\n(----MONSTER MOVEMENT----)\n(------------------------)\n\n(movement sound)\n[ > Monster ] -> [ > Monster ] sfx0\n\n(stop the monster if it hits a wall)\n[ > Monster | Wall ] -> [ Monster | Wall] \n\n(if monster hits a destroyer, remove the monster)\n[ > Monster | Destroyer ] -> [ | Destroyer] sfx3\n\n(monster eats cakes of the same color)\n[ > RedMon | RedCake] -> [ | RedMon] sfx2 \n[ > BlueMon | BlueCake] -> [ | BlueMon] sfx2 \n[ > YellowMon | YellowCake] -> [ | YellowMon] sfx2 \n[ > PurpleMon | PurpleCake] -> [ | PurpleMon] sfx2 \n[ > OrangeMon | OrangeCake] -> [ | OrangeMon] sfx2 \n[ > GreenMon | GreenCake] -> [ | GreenMon] sfx2 \n[ > TrashMon | TrashCake] -> [ | TrashMon] sfx2 \n\n(stop the monster if it hits a cake of a different color)\n(note: this is necessary to make sure the monster is marked as stationary)\n[ > RedMon | Cake no RedCake] -> [ RedMon | Cake no RedCake]\n[ > BlueMon | Cake no BlueCake] -> [ BlueMon | Cake no BlueCake]\n[ > YellowMon | Cake no YellowCake] -> [ YellowMon | Cake no YellowCake]\n[ > PurpleMon | Cake no PurpleCake] -> [ PurpleMon | Cake no PurpleCake]\n[ > OrangeMon | Cake no OrangeCake] -> [ OrangeMon | Cake no OrangeCake]\n[ > GreenMon | Cake no GreenCake] -> [ GreenMon | Cake no GreenCake]\n[ > TrashMon | Cake no TrashCake] -> [ TrashMon | Cake no TrashCake]\n\n(--------------------------)\n(---MONSTER COLOR MIXING---)\n(--------------------------)\n\n(red+blue = purple)\n[ > BlueMon | stationary RedMon] -> [ | PurpleMon] sfx1\n[ > RedMon | stationary BlueMon] -> [ | PurpleMon] sfx1\n\n(red+yellow = orange)\n[ > RedMon | stationary YellowMon] -> [ | OrangeMon] sfx1\n[ > YellowMon | stationary RedMon] -> [ | OrangeMon] sfx1\n\n(blue+yellow = green)\n[ > BlueMon | stationary YellowMon] -> [ | GreenMon] sfx1\n[ > YellowMon | stationary BlueMon] -> [ | GreenMon] sfx1\n\n(primary color + secondary color = brown aka trash)\n[ > PrimaryMon | stationary SecondaryMon] -> [ | TrashMon] sfx1\n[ > SecondaryMon | stationary PrimaryMon] -> [ | TrashMon] sfx1\n\n(green+orange = trash)\n[ > GreenMon | stationary OrangeMon] -> [ | TrashMon] sfx1\n[ > OrangeMon | stationary GreenMon] -> [ | TrashMon] sfx1\n\n(purple+orange = trash)\n[ > PurpleMon | stationary OrangeMon] -> [ | TrashMon] sfx1\n[ > OrangeMon | stationary PurpleMon] -> [ | TrashMon] sfx1\n\n(green+purple = trash)\n[ > GreenMon | stationary PurpleMon] -> [ | TrashMon] sfx1\n[ > PurpleMon | stationary GreenMon] -> [ | TrashMon] sfx1\n\n(trash+anything = trash)\n[ > TrashMon | stationary Monster] -> [ | TrashMon] sfx1\n[ > Monster | stationary TrashMon] -> [ | TrashMon] sfx1\n\n(monster + monster of the same color = monster of the same color)\n[ > Monster | stationary Monster] -> [ | Monster] sfx1\n\n \n==============\nWINCONDITIONS\n==============\n \nNo Cake\n\n\n======= \nLEVELS\n======= \n\n\nmessage WELCOME TO CAKE MONSTERS!\nmessage MONSTERS LIKE EATING CAKE\n\n_______\n#######\n#.....#\n#.r...#\n#...s.#\n#.....#\n#######\n_______\n(diff 0)\n\nmessage YOU MOVE ALL OF THE MONSTERS\n\n######_######\n#....#_#z...#\n#.r..#_#....#\n#..s.#_#....#\n#....#_#...y#\n######_######\n_____________\n######_######\n#.c..#_#....#\n#....#_#...h#\n#..b.#_#g...#\n#....#_#....#\n######_######\n(diff 0)\n\nmessage MONSTERS ONLY LIKE THEIR OWN CAKE\nmessage REMEMBER: Z TO UNDO, R TO RESTART\n_________\n#########\n#r.z....#\n#######.#\n#.......#\n#.sy....#\n#########\n_________\n(diff 1)\n\nmessage MONSTERS MIX WHEN THEY GET EATEN\n_________\n#########\n#.......#\n#.#####.#\n#.r.q.b.#\n#.#####.#\n#.......#\n#########\n_________\n(diff 1)\n\n\nmessage BROWN + ANY COLOR = BROWN\n__________\n##########\n#........#\n#.rybpog.#\n#........#\n#........#\n#.szcqah.#\n#........#\n#........#\n#.uuuuuu.#\n#........#\n##########\n__________\n(diff 1)\n\n\nmessage HAVE FUN!\n############\n#y........c#\n#b........z#\n#####..#####\n____#..#____\n____#..#____\n____#hh#____\n____####____\n(diff 1)\n\n(----------------------------)\n\n\n_____\n#####\n#RCQ#\n#.CS#\n#Q.B#\n#####\n_____\n(diff 2)\n\n\n\n\n______\n######\n#R...#\n#B...#\n#Q.QQ#\n#CSCS#\n######\n______\n(diff 2)\n\n_______\n#######\n#R.H.B#\n#.....#\n#.....#\n#Y.Q.B#\n#######\n_______\n(diff 2)\n\n_______\n#######\n#CCHCB#\n#.....#\n#YZHZZ#\n#######\n_______\n(diff 2)\n\n\n______\n######\n#R..B#\n#S.C.#\n#.A.C#\n#Y.C.#\n######\n______\n(diff 2)\n\n\nmessage PIECE OF CAKE, RIGHT?\n\n\n#########\n#ccccccc#\n#bcccccc#\n######cc#\n_____#ch#\n######zz#\n#yzzzzzz#\n#yzzzzzz#\n######zz#\n_____#sa#\n######ss#\n#rssssss#\n#sssssss#\n#########\n(diff 3, fun)\n\n_______\n#######\n#R.B.Y#\n#Y.B.R#\n#R.B.Y#\n#Y.B.R#\n#AHQHA#\n#######\n_______\n(diff 3)\n\n\n_______\n#######\n#AR.BA#\n#.#.#.#\n#H...H#\n##.A.##\n#HY#YH#\n#######\n_______\n(diff 3)\n\n\n\nmessage X TILES DESTROY MONSTERS\n_________\n_###_###_\n#...#...#\n#.q.x.p.#\n#...x...#\n_#..x..#_\n__#...#__\n___#.#___\n____#____\n_________\n(diff 0, destroyerz)\n\n\n_____\n#####\n#RAR#\n#RXY#\n#YAY#\n#####\n_____\n(diff 1, destroyerz)\n\n______\n######\n#BHHB#\n#YXXY#\n#YXXY#\n#BHHB#\n######\n______\n(diff 1 destroyerz)\n\n_______\n#######\n#RQXQR#\n#SQXQS#\n#BQXQB#\n#######\n_______\n(diff 1 destroyerz)\n\n___________\n#####_#####\n#sss#_#qqq#\n#sss###qqq#\n#x.......x#\n##x.rxb.x##\n#x.......x#\n#qqq###ccc#\n#qqq#_#ccc#\n#####_#####\n___________\n(diff 2 destroyerz)\n\n___________\n###########\n#...#q#.b.#\n#sxr#.#xx.#\n#.x.....c.#\n###########\n___________\n(diff 3 destroyerz)\n\n\n\nmessage YOU'RE CAKING THIS LOOK EASY!\n\n______\n######\n#RZSZ#\n#YSZS#\n#..SZ#\n#..ZS#\n######\n______\n(diff 3)\n\n\n#######\n#Y#B#Y#\n#.#R#.#\n#.#.#.#\n#.....#\n#.###.#\n#HHAHH#\n#######\n(diff 3, fun!)\n\n\n\n####__####\n#qc####cb#\n#c......c#\n##.####.##\n_#.#xx#.#_\n_#.c.r#.#_\n##.####.##\n#c......c#\n#qc####cq#\n####__####\n(diff 3)\n\n\n\n\n_#########_\n_#rrr.sss#_\n_#.......#_\n_#yyy.zzz#_\n_#.......#_\n##bbb.ccc##\n#.........#\n#.q..a..h.#\n#.........#\n###########\n\n______\n######\n#RA.Y#\n#....#\n#HH..#\n#SBCY#\n######\n______\n(diff 4)\n\nmessage LET'S CAKE IT TO THE NEXT TIER!\n\n\n#############\n#...#.h.#...#\n#.r.#...#.y.#\n#...c#c#s...#\n###c.....s###\n#..#.#h#.#..#\n#z.h.z.c.s.c#\n#..#.#s#.#..#\n###......z###\n#....#z#z...#\n#.b.#...#.g.#\n#...#.s.#...#\n#############\n(diff 3, easy but fun)\n\n\n_____\n#####\n#B.B#\n#RRY#\n#.Q.#\n#S.S#\n#CHC#\n#####\n_____\n(diff 5 - fun!)\n\n\n______\n######\n#HYBH#\n#YBYB#\n#BBBB#\n#HHHH#\n######\n______\n(diff 4)\n\n\n\n\n______\n######\n#BR.Y#\n#..A.#\n#SCZA#\n#CSZA#\n######\n______\n(diff 4)\n\n\n\n\n______\n######\n#CZG.#\n#ZCR##\n###..#\n#SHY##\n#HSB.#\n######\n______\n(diff 5 - very fun!)\n\n\nmessage YOU'RE GETTING BATTER!\n\n______\n######\n#YYYY#\n#...R#\n#AAAA#\n#ZZZZ#\n######\n______\n(diff 5 - fun but surprisingly hard)\n\n\n_______\n#######\n#Y..YA#\n#.BB.H#\n#R..RQ#\n#Y..YH#\n#######\n_______\n(diff 4)\n\n\nmessage ICING ON THE CAKE!\n\n______\n######\n#ZBBZ#\n#YBYB#\n#....#\n#ZHCZ#\n######\n______\n(diff 5)\n\n\n\n\n_______\n#######\n#A.S.A#\n#.Z.Z.#\n#SYRYS#\n#.ZYZ.#\n#A.S.A#\n#######\n_______\n(diff 5 - not too hard)\n\n\n\nmessage WILL YOU CAKE IT OUT ALIVE?\n______\n######\n#ZZZZ#\n#SSSS#\n#CCCC#\n#YRB.#\n######\n______\n(diff 6 - fun but tricky)\n\n\n\n\nmessage THE FINAL CHALLENGE!\nmessage DOUGH YOU HAVE WHAT IT CAKES?\n_____\n#####\n#AYA#\n#...#\n#CBC#\n#SZY#\n#RZS#\n#CBC#\n#...#\n#HOH#\n#####\n_____\n(diff 8 - a pretty tough one)\n\n\n\nmessage WELL, YOU REALLY TOOK THE CAKE!\nmessage CONGRATS, YOU WIN! :)\n\n\n\n",[1,1,1,1,3,1,2,2,0,1,1,1,1,1,2,2,2,3,1,0,0,0,0,2,1,3,2,2,2,2,2,2,1],"background wall:0,0,0,0,background blackness:1,1,0,0,0,0,\n0,background purplecake:2,background:3,0,0,0,0,background bluecake:4,2,0,\n0,3,3,3,3,3,3,3,background bluemon:5,0,\n0,0,3,0,0,3,0,3,0,0,\n1,0,3,0,background destroyer:6,3,0,3,0,1,\n1,0,3,0,6,3,0,3,0,1,\n0,0,3,0,0,0,0,3,0,0,\n0,3,3,3,3,3,3,3,4,0,\n0,3,4,0,0,0,0,4,2,0,\n0,0,0,0,1,1,0,0,0,0,\n",33,"1627777633918.221"] ], [ `gallery: you're pulleying my leg`, - ["title You're Pulleying My Leg\nauthor Alan Hazelden\nhomepage www.draknek.org\n\nrun_rules_on_level_start\n\nagain_interval 0.1\n\n(verbose_logging)\n\nzoomscreen 17x13\n\nnoaction\n\n========\nOBJECTS\n========\n\nSky\nblue\n\nWall\n#8a5c23 #805520 #966426\n00001\n01020\n00000\n20100\n00000\n\nBackground\nDarkBrown\n\nGrass1\nGreen\n00000\n.....\n.....\n.....\n.....\n\nGrass2\nGreen\n00000\n....0\n.....\n.....\n.....\n\nGrass3\nGreen\n00000\n0....\n.....\n.....\n.....\n\nPlayerL\n#3c8ee7 #e6e4d5\n..1..\n.00..\n..0..\n.00..\n.0.0.\n\nPlayerR\n#3c8ee7 #e6e4d5\n..1..\n..00.\n..0..\n..00.\n.0.0.\n\nPlayerClimbing\n#3c8ee7 #e6e4d5\n..1..\n.000.\n..0..\n..0..\n.0.0.\n\nPlayerClimbingL\n#3c8ee7 #e6e4d5\n.1...\n00...\n.0...\n00...\n0....\n\nPlayerClimbingR\n#3c8ee7 #e6e4d5\n...1.\n...00\n...0.\n...0.\n....0\n\nLiftCorner\nGrey Yellow\n.000.\n00000\n00100\n00000\n.000.\n\nLiftRope\n#d97d3c #d9903c\n..0..\n..0..\n..1..\n..0..\n..0..\n\nLiftRopeH\n#d97d3c #d9903c\n.....\n.....\n00100\n.....\n.....\n\nLift\ntransparent\n\nLiftGraphic\nBlack\n00000\n.....\n.....\n.....\n.....\n\nShelf\n#8a5c23 #f4c56a\n00000\n..1..\n.....\n.....\n.....\n\nLadder\n#d97d3c #f4c56a\n.0.0.\n.010.\n.0.0.\n.010.\n.0.0.\n\nRopeL\n#d97d3c #d9903c\n0....\n0....\n1....\n0....\n0....\n\nRopeR\n#d97d3c #d9903c\n....0\n....0\n....1\n....0\n....0\n\n(Boulder\n#1b1207 #30200c #2c190a\n.100.\n00200\n00000\n20010\n.000.)\n\nBoulder\n#be2633 #eb8931 #732930\n.000.\n01100\n01000\n00002\n.022.\n\n(Dark0_odd\ntransparent\n\nDark0_even\ntransparent\n\nDark1_odd\ntransparent\n\nDark1_even\ntransparent\n\nDark2_odd\ntransparent\n\nDark2_even\ntransparent\n\nDark3_odd\nblack\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nDark3_even\nblack\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\nDark4_odd\nblack\n\nDark4_even\nblack\n\nDark5\nblack\n\nDarkPending\ntransparent)\n\nLightSource\ntransparent\n\nLightSource2\n#1d57f7 #3164ea #4471dd #587ed0 #6c8bc3\n01234\n01234\n01234\n01234\n01234\n\nLightSource3\n#7f97b6 #93a5aa #a7b19c #bbbf90 #cfcc83\n01234\n01234\n01234\n01234\n01234\n\nLightL\n#f4e46a\n\nLightR\n#f4e46a\n\nLightU\n#f4e46a\n\nLightD\n#f4e46a\n\n(LightBlockedL\n#f4e46a\n...00\n...00\n...00\n...00\n...00\n\nLightBlockedR\n#f4e46a\n00...\n00...\n00...\n00...\n00...\n\nLightBlockedU\n#f4e46a\n.....\n.....\n.....\n00000\n00000\n\nLightBlockedD\n#f4e46a\n00000\n00000\n.....\n.....\n.....)\n\nMirrorUL\n#e6e4d5 #909090 #4e5159\n....0\n...01\n..011\n.0111\n01112\n\nMirrorUR\n#e6e4d5 #909090 #4e5159\n0....\n10...\n110..\n1110.\n21110\n\nMirrorDL\n#e6e4d5 #909090 #4e5159\n01111\n.0111\n..011\n...01\n22222\n\nMirrorDR\n#e6e4d5 #909090 #4e5159\n11110\n1110.\n110..\n10...\n22222\n\nTarget\n#f4e46a #e6e4d5 #909090\n11211\n10001\n20002\n10001\n11211\n\nSeenMirror\ntransparent\n\nSeenTarget\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n~ = Sky\no = LiftCorner\nL = Lift\nU = Ladder\nB = Boulder\n[ = RopeL\n] = RopeR\n/ = MirrorUL\n\\ = MirrorUR\n` = MirrorDL\n' = MirrorDR\n- = Shelf\nT = Shelf and Ladder\n+ = Lift and Shelf\n* = Target\np = PlayerR\n% = Shelf and Target\n\nPlayer = PlayerL or PlayerR or PlayerClimbing or PlayerClimbingL or PlayerClimbingR\n\nGrass = Grass1 or Grass2 or Grass3\n\nLiftChain = LiftRope or LiftRopeH or LiftCorner\n\nMirror = MirrorUL or MirrorUR or MirrorDL or MirrorDR\n\nFalling = Player or Boulder or Mirror\n\nPushable = Boulder or Mirror\n\nSolid = Wall or Boulder or Mirror or Target\n\nFloor = Solid or LiftGraphic or Shelf or Target\n\nClimbable = Ladder or RopeL or RopeR\n\n\n! = LightSource and Sky and SeenMirror and SeenTarget\n(! = LightSource and Dark0_even and Sky\n\nDarkness = Dark0_even or Dark0_odd or Dark1_even or Dark1_odd or Dark2_even or Dark2_odd or Dark3_even or Dark3_odd or Dark4_even or Dark4_odd or Dark5\n\nDark1 = Dark1_even or Dark1_odd\nDark2 = Dark2_even or Dark2_odd)\n\n(LightBlocked = LightBlockedL or LightBlockedR or LightBlockedU or LightBlockedD)\n\nLight = LightSource or LightSource2 or LightSource3 or LightL or LightR or LightU or LightD\n\n\n=======\nSOUNDS\n=======\n\nEndLevel 55891508\nPlayer Move 82426907\nLift Move 47466509\nMirror Move 62036907\nBoulder Move 62036907\nTarget Destroy 38934902\n\n(16126909)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nLight\nSky\nLift, Wall\nShelf\nLiftRope\nClimbable\nBoulder, Mirror, Target\nLiftGraphic\nGrass, LiftCorner, LiftRopeH\nPlayer\nSeenMirror\nSeenTarget\n(Darkness\nDarkPending)\n\n======\nRULES\n======\n\n(Observations)\n\nhorizontal [ Player | MirrorUL ] [ SeenMirror ] -> [ Player | MirrorUL ] [] message A massive angled mirror, sloping towards the cave ceiling\nhorizontal [ Player | MirrorDL ] [ SeenMirror ] -> [ Player | MirrorDL ] [] message A massive angled mirror, sloping towards the cave floor\nhorizontal [ Player | Target ] [ SeenTarget ] -> [ Player | Target ] [] message A large stone block with an engraved image of the sun\n\nlate [ Player | MirrorUL ] [ SeenMirror ] -> again\nlate [ Player | MirrorDL ] [ SeenMirror ] -> again\nlate [ Player | Target ] [ SeenTarget ] -> again\n\n(Init)\n\ndown [ Sky | Wall no Grass ] -> [ Sky | Wall random Grass ]\n\nright [ LiftCorner | no LiftRopeH no Wall | ... | LiftCorner ] -> [ LiftCorner | LiftRopeH | ... | LiftCorner ]\nright [ LiftRopeH | no LiftRopeH no Wall | ... | LiftCorner ] -> [ LiftRopeH | LiftRopeH | ... | LiftCorner ]\n\n(Darkness: can be commented out easily)\n\n([ Darkness no Sky ] -> [])\n\n([ Dark0_even | no Wall no Darkness ] -> [ Dark0_even | Dark0_odd ]\n+ [ Dark0_odd | no Wall no Darkness ] -> [ Dark0_odd | Dark0_even ]\n\n[ Dark0_even | no Darkness ] -> [ Dark0_even | Dark1_odd ]\n[ Dark0_odd | no Darkness ] -> [ Dark0_odd | Dark1_even ]\n\n[ Dark1 | no Darkness no DarkPending ] -> [ Dark1 | DarkPending ]\n\nstartloop\nrandom [ DarkPending no Darkness ] -> [ action DarkPending ]\n\nrandom [ action DarkPending | stationary Dark1 no DarkPending ] -> [ action DarkPending | action Dark1 ]\n\n[ action DarkPending | stationary Dark1_even no DarkPending ] -> [ Dark1_odd DarkPending | Dark1_even ]\n[ action DarkPending | stationary Dark1_odd no DarkPending ] -> [ Dark1_even DarkPending | Dark1_odd ]\n\n[ action DarkPending ] -> []\n[ action Dark1 ] -> [ Dark1 ]\nendloop\n\n[ DarkPending ] -> []\n\n[ Dark1_even | no Darkness ] -> [ Dark1_even | Dark2_odd ]\n[ Dark1_odd | no Darkness ] -> [ Dark1_odd | Dark2_even ]\n\n[ Dark2_even | no Darkness ] -> [ Dark2_even | Dark3_odd ]\n[ Dark2_odd | no Darkness ] -> [ Dark2_odd | Dark3_even ]\n\n[ Dark3_even | no Darkness ] -> [ Dark3_even | Dark4_odd ]\n[ Dark3_odd | no Darkness ] -> [ Dark3_odd | Dark4_even ]\n\n[ Dark4_even | no Darkness ] -> [ Dark4_even | Dark5 ]\n[ Dark4_odd | no Darkness ] -> [ Dark4_odd | Dark5 ]\n\n[ Dark5 | no Darkness ] -> [ Dark5 | Dark5 ])\n\n(Movement)\n\nright [ Solid | < Player | LightSource ] -> [ Solid | Player | LightSource ]\n\ndown [ right PlayerClimbingL | Floor ] -> [ PlayerR | Floor ]\ndown [ left PlayerClimbingR | Floor ] -> [ PlayerL | Floor ]\n\n[ left Player ] -> [ left PlayerL ]\n[ right Player ] -> [ right PlayerR ]\n\nleft [ > Player RopeL | Wall ] -> [ PlayerClimbingL RopeL | Wall ]\nright [ > Player RopeR | Wall ] -> [ PlayerClimbingR RopeR | Wall ]\n\n[ > Player | Wall ] -> cancel\n[ > Player | Target ] -> cancel\n\n[ up Player no Lift no Climbable ] -> [ Player ]\ndown [ > Player no Lift no Climbable | no Climbable ] -> [ Player | ]\ndown [ > Player Climbable | Floor no Climbable ] -> cancel\n\nup [ > Player Climbable no Floor no Lift | no Climbable ] -> [ Player Climbable | ]\n\nhorizontal [ > Player | Pushable ] -> [ > Player | > Pushable ]\nvertical [ > Player | Pushable ] -> cancel\n\n[ > Pushable | Solid ] -> cancel\n\n(Lifts)\n\n[ vertical Player Lift no PlayerClimbing no PlayerClimbingL no PlayerClimbingR ] -> [ Player vertical Lift ]\n\nup [ > Lift Falling | LiftCorner ] -> [ Lift Falling | LiftCorner ]\nup [ > Lift | Wall ] -> [ Lift | Wall ]\ndown [ > Lift | Solid ] -> [ Lift | Solid ]\n\n[ moving Lift | stationary LiftChain ] -> [ moving Lift | moving LiftChain ]\n[ moving LiftChain | stationary LiftChain ] -> [ moving LiftChain | moving LiftChain ]\n\n[ up LiftChain stationary Lift ] -> [ up LiftChain down Lift ]\n[ down LiftChain stationary Lift ] -> [ down LiftChain up Lift ]\n\nup [ > Lift Falling | LiftCorner ] -> [ Lift Falling | LiftCorner ]\nup [ > Lift | Wall ] -> [ Lift | Wall ]\ndown [ > Lift | Solid ] -> [ Lift | Solid ]\n\n[ stationary Lift moving LiftChain ] -> [ Lift action LiftChain ]\n\n[ action LiftChain | LiftChain ] -> [ action LiftChain | action LiftChain ]\n[ action LiftChain moving Lift ] -> [ action LiftChain Lift ]\n\n[ moving LiftChain ] -> [ LiftChain ]\n\n[ moving Lift stationary Falling ] -> [ moving Lift moving Falling ]\n\nup [ > Falling | Falling ] -> cancel\n\n(Update graphics)\n\nlate [ LiftRope ] -> []\nlate [ LiftGraphic ] -> []\nlate down [ Lift | ] -> [ Lift LiftRope | LiftGraphic ]\nlate up [ LiftRope no LiftCorner | no LiftCorner ] -> [ LiftRope | LiftRope ]\n\nlate down [ Player Ladder no Lift | no Floor ] -> [ PlayerClimbing Ladder | ]\nlate down [ Player RopeL no Lift | no Floor ] -> [ PlayerClimbingL RopeL | ]\nlate down [ Player RopeR no Lift | no Floor ] -> [ PlayerClimbingR RopeR | ]\n\nlate [ PlayerClimbingL no Climbable ] -> [ PlayerL ]\nlate [ PlayerClimbingR no Climbable ] -> [ PlayerR ]\n\n( Gravity)\n\nlate down [ Falling no Climbable | no Floor ] -> again\n\ndown [ stationary Falling no Climbable | no Floor ] -> [ > Falling | ]\n\n(Light)\n\nlate [ Light no LightSource ] -> []\n\nlate right [ LightSource no MirrorUL no MirrorDL | no Light no MirrorUR no MirrorDR ] -> [ LightSource | LightSource2 ]\nlate right [ LightSource2 no Solid | no Light no MirrorUR no MirrorDR ] -> [ LightSource2 | LightSource3 ]\n\nlate right [ LightSource2 Boulder | no Light no MirrorUR no MirrorDR ] -> [ LightSource2 Boulder | LightSource3 ]\n\nlate right [ LightSource3 no Solid | no Light no Mirror ] -> [ LightSource3 | LightR ]\nlate right [ LightSource3 no Solid | MirrorUL ] -> [ LightSource3 | MirrorUL LightU ]\nlate right [ LightSource3 no Solid | MirrorDL ] -> [ LightSource3 | MirrorDL LightD ]\n\nlate left [ LightL | no Light no Solid ] -> [ LightL | LightL ]\n+ late right [ LightR | no Light no Solid ] -> [ LightR | LightR ]\n+ late up [ LightU | no Light no Solid ] -> [ LightU | LightU ]\n+ late down [ LightD | no Light no Solid ] -> [ LightD | LightD ]\n\n+ late left [ LightL | MirrorUR ] -> [ LightL | MirrorUR LightU ]\n+ late left [ LightL | MirrorDR ] -> [ LightL | MirrorDR LightD ]\n+ late right [ LightR | MirrorUL ] -> [ LightR | MirrorUL LightU ]\n+ late right [ LightR | MirrorDL ] -> [ LightR | MirrorDL LightD ]\n+ late up [ LightU | MirrorDL ] -> [ LightU | MirrorDL LightL ]\n+ late up [ LightU | MirrorDR ] -> [ LightU | MirrorDR LightR ]\n+ late down [ LightD | MirrorUL ] -> [ LightD | MirrorUL LightL ]\n+ late down [ LightD | MirrorUR ] -> [ LightD | MirrorUR LightR ]\n\n+ late left [ LightL | Boulder ] -> [ LightL | Boulder LightL ]\n+ late right [ LightR | Boulder ] -> [ LightR | Boulder LightL ]\n+ late up [ LightU | Boulder ] -> [ LightU | Boulder LightL ]\n+ late down [ LightD | Boulder ] -> [ LightD | Boulder LightL ]\n\n+ late left [ Boulder Light | no Light no Solid ] -> [ Boulder Light | LightL ]\n+ late right [ Boulder Light | no Light no Solid ] -> [ Boulder Light | LightR ]\n+ late up [ Boulder Light | no Light no Solid ] -> [ Boulder Light | LightU ]\n+ late down [ Boulder Light | no Light no Solid ] -> [ Boulder Light | LightD ]\n\nlate [ Boulder Light | Target ] -> [ Boulder Light | ] again\n\nlate left [ LightL | Target ] -> [ LightL | Target Sky ]\nlate right [ LightR | Target ] -> [ LightR | Target Sky ]\nlate up [ LightU | Target ] -> [ LightU | Target Sky ]\nlate down [ LightD | Target ] -> [ LightD | Target Sky ]\n\nlate down [ Target Sky | no Target ] -> checkpoint\nlate [ Target Sky ] -> [] again\n\n==============\nWINCONDITIONS\n==============\n\nall boulder on sky\nall player on sky\n\n=======\nLEVELS\n=======\n\n(~~~~~~~~~~~~~~~~\n~~~~##########~~\n~~~###o..o#####~\n~~~###....######\n~~~!p.l...######\n####-t----##o.o#\n###..u..`l.*l..#\n###--t----t----#\n#u*..u./..u....#\n#u##########---#\n#u##########...#\n#u.............#\n#u............l#\n#u.............#\n################)\n\n~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###....#######\n~~!..pl...#######\n#####t----###o.o#\n####.u..`l......#\n###..t----t-%---#\n#u*..u./..u.*l..#\n#u#--#######--t-#\n#uo..o###.....u.#\n#ul...`.....\\.ul#\n#t--t--t--t---t.#\n#u**u..u..u...u.#\n##-t--###########\n##.u...##o...o###\n#..u............#\n#..u'l.t-+-t....#\n#########*###-t##\n####.....*....u.#\n####..b..*...lu.#\n####.t-t.*....u.#\n#################\n\n(~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###....#######\n~~~!p.l...#######\n#####t----###o.o#\n####.u..`l......#\n###..t----t-----#\n#u*..u./..u.*l..#\n#u#--#######--t-#\n#uo..o###.....u.#\n#ul...`.....\\.ul#\n#t--t--t--t---t.#\n#u**u..u..u...u.#\n##-t--###########\n##.u...##########\n#..u.l..........#\n#..u....b..'..\\.#\n#################\n\n\n~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###....#######\n~~~!..l.`.#######\n#####t----###o.o#\n####.u..\\l..`.pl#\n###..t----t-----#\n#u...u../.u.....#\n#u#--#######--t-#\n#uo..o###.....u.#\n#ul...........u.#\n#t--t--t--t---t.#\n#u**u..u..u..lu.#\n##-t--###########\n##.u...##o....o##\n#..u.....l......#\n#..u'l.t---t....#\n#########*###t-##\n######...*...u..#\n######...*...u..#\n######.b.*...ul.#\n#################\n\n~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###....#######\n~~~!..l.`.#######\n#####t----###o.o#\n####.u..\\l..`...#\n###..t----t-----#\n#u...u....u..l..#\n#u#--#######--t-#\n#uo..o###.....u.#\n#ul...........ul#\n#t--t--t--t---t.#\n#u..u..u..u./.u.#\n##-t--###########\n##.u...##o....o##\n#..u.....l......#\n#..u'l.t---t....#\n#########*###t-##\n######...*...u..#\n######...*...u..#\n######.b.*...ul.#\n#################\n\n~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###l...#######\n~~~!....`.#######\n#####t----###o.o#\n####.u.........l#\n###..t---+t-----#\n#u..'u../.u.....#\n#u#--#######--t-#\n#uo..o###.....u.#\n#u...l........u.#\n#t--t--t--t---t.#\n#u..u..u..u..lu.#\n##-t--###########\n##.u...##o...o###\n#..u............#\n#.lu\\..t-+-t...`#\n#########.###-t##\n####..........u.#\n####..b......lu.#\n####.t-t...p..u.#\n#################)\n\n\n\n(````````````````\n````````````````\n`````!``````````\n#####[##########\n#####[#o..o#####\n#####[#...bu####\n####.[ul--lu####\n####.pu.\\..u####\n################)\n\nmessage Congrats! Thanks for playing :)\n\n", [2, 2, 2, 3, 3, 3, 3, 3, 0, 0, 3, 3, 3, 2, 2, 3, 3, 2, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 2, 3, 3, 3, 2, 2, 1, 1, 3, 3, 0, 0, 0, 2, 1, 1, 1, 3, 3, 3, 0, 0, 1, 1, 1, 2, 2, 1, 2, 2, 3, 1], "background sky:0,0,0,0,0,background grass3 wall:1,background wall:2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,0,0,0,0,0,1,2,2,background ladder:3,3,3,\n3,background ladder shelf:4,3,2,2,background:5,5,2,2,2,2,2,0,0,0,0,background lightsource seentarget sky:6,\n1,2,2,background target:7,2,background liftcorner:8,background lift liftrope:9,background liftgraphic shelf:10,7,background shelf:11,5,5,5,2,2,2,2,\n2,0,0,1,2,background lightsource2:12,2,2,5,5,11,background liftropeh:13,5,11,7,4,3,\n3,3,2,2,2,2,2,0,background grass2 wall:14,2,2,background lightsource3:15,2,5,5,background mirrordl:16,11,\n13,5,4,3,11,5,5,background mirrordr:17,2,5,5,5,2,0,14,2,2,\nbackground lightr:18,4,background ladder playerl:19,4,3,2,8,background liftrope:20,background liftrope shelf:21,20,21,20,20,9,background liftgraphic wall:22,5,5,\n4,2,0,background grass1 wall:23,8,20,background liftrope lightr:24,21,9,10,5,2,2,16,11,5,2,\n5,5,5,2,5,background boulder:25,11,2,0,14,13,5,18,11,5,11,5,\n2,2,5,4,3,2,2,5,4,2,5,5,4,2,0,23,13,\n5,18,11,5,11,5,2,2,5,11,5,2,2,5,11,2,5,\n5,5,2,0,1,8,20,background lift liftrope lightr:26,10,5,11,5,2,5,5,11,5,\n2,8,20,background lift liftrope shelf:27,background liftgraphic target:28,7,7,7,2,0,14,2,2,2,2,5,4,\n3,2,5,5,4,3,2,13,5,11,2,5,5,5,2,0,23,\n2,2,2,2,5,11,background mirrorul:29,2,5,5,11,5,2,13,5,4,2,\n5,5,5,2,0,1,2,2,2,2,5,background shelf target:30,7,11,5,background mirrorur:31,11,\n5,2,13,5,5,2,5,5,5,2,0,23,2,2,2,8,20,\n21,9,10,5,5,11,5,2,8,20,20,21,20,9,background liftgraphic:32,2,0,\n0,1,2,2,13,5,11,5,4,3,3,4,3,2,2,5,5,\n4,3,3,3,2,0,0,0,23,2,8,20,21,20,21,20,9,\n32,5,2,2,5,5,2,5,5,5,2,0,0,0,1,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n", 0, "1627777767719.7332"] + ["title You're Pulleying My Leg\nauthor Alan Hazelden\nhomepage www.draknek.org\n\nrun_rules_on_level_start\n\nagain_interval 0.1\n\n(verbose_logging)\n\nzoomscreen 17x13\n\nnoaction\n\n========\nOBJECTS\n========\n\nSky\nblue\n\nWall\n#8a5c23 #805520 #966426\n00001\n01020\n00000\n20100\n00000\n\nBackground\nDarkBrown\n\nGrass1\nGreen\n00000\n.....\n.....\n.....\n.....\n\nGrass2\nGreen\n00000\n....0\n.....\n.....\n.....\n\nGrass3\nGreen\n00000\n0....\n.....\n.....\n.....\n\nPlayerL\n#3c8ee7 #e6e4d5\n..1..\n.00..\n..0..\n.00..\n.0.0.\n\nPlayerR\n#3c8ee7 #e6e4d5\n..1..\n..00.\n..0..\n..00.\n.0.0.\n\nPlayerClimbing\n#3c8ee7 #e6e4d5\n..1..\n.000.\n..0..\n..0..\n.0.0.\n\nPlayerClimbingL\n#3c8ee7 #e6e4d5\n.1...\n00...\n.0...\n00...\n0....\n\nPlayerClimbingR\n#3c8ee7 #e6e4d5\n...1.\n...00\n...0.\n...0.\n....0\n\nLiftCorner\nGrey Yellow\n.000.\n00000\n00100\n00000\n.000.\n\nLiftRope\n#d97d3c #d9903c\n..0..\n..0..\n..1..\n..0..\n..0..\n\nLiftRopeH\n#d97d3c #d9903c\n.....\n.....\n00100\n.....\n.....\n\nLift\ntransparent\n\nLiftGraphic\nBlack\n00000\n.....\n.....\n.....\n.....\n\nShelf\n#8a5c23 #f4c56a\n00000\n..1..\n.....\n.....\n.....\n\nLadder\n#d97d3c #f4c56a\n.0.0.\n.010.\n.0.0.\n.010.\n.0.0.\n\nRopeL\n#d97d3c #d9903c\n0....\n0....\n1....\n0....\n0....\n\nRopeR\n#d97d3c #d9903c\n....0\n....0\n....1\n....0\n....0\n\n(Boulder\n#1b1207 #30200c #2c190a\n.100.\n00200\n00000\n20010\n.000.)\n\nBoulder\n#be2633 #eb8931 #732930\n.000.\n01100\n01000\n00002\n.022.\n\n(Dark0_odd\ntransparent\n\nDark0_even\ntransparent\n\nDark1_odd\ntransparent\n\nDark1_even\ntransparent\n\nDark2_odd\ntransparent\n\nDark2_even\ntransparent\n\nDark3_odd\nblack\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nDark3_even\nblack\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\nDark4_odd\nblack\n\nDark4_even\nblack\n\nDark5\nblack\n\nDarkPending\ntransparent)\n\nLightSource\ntransparent\n\nLightSource2\n#1d57f7 #3164ea #4471dd #587ed0 #6c8bc3\n01234\n01234\n01234\n01234\n01234\n\nLightSource3\n#7f97b6 #93a5aa #a7b19c #bbbf90 #cfcc83\n01234\n01234\n01234\n01234\n01234\n\nLightL\n#f4e46a\n\nLightR\n#f4e46a\n\nLightU\n#f4e46a\n\nLightD\n#f4e46a\n\n(LightBlockedL\n#f4e46a\n...00\n...00\n...00\n...00\n...00\n\nLightBlockedR\n#f4e46a\n00...\n00...\n00...\n00...\n00...\n\nLightBlockedU\n#f4e46a\n.....\n.....\n.....\n00000\n00000\n\nLightBlockedD\n#f4e46a\n00000\n00000\n.....\n.....\n.....)\n\nMirrorUL\n#e6e4d5 #909090 #4e5159\n....0\n...01\n..011\n.0111\n01112\n\nMirrorUR\n#e6e4d5 #909090 #4e5159\n0....\n10...\n110..\n1110.\n21110\n\nMirrorDL\n#e6e4d5 #909090 #4e5159\n01111\n.0111\n..011\n...01\n22222\n\nMirrorDR\n#e6e4d5 #909090 #4e5159\n11110\n1110.\n110..\n10...\n22222\n\nTarget\n#f4e46a #e6e4d5 #909090\n11211\n10001\n20002\n10001\n11211\n\nSeenMirror\ntransparent\n\nSeenTarget\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n~ = Sky\no = LiftCorner\nL = Lift\nU = Ladder\nB = Boulder\n[ = RopeL\n] = RopeR\n/ = MirrorUL\n\\ = MirrorUR\n` = MirrorDL\n' = MirrorDR\n- = Shelf\nT = Shelf and Ladder\n+ = Lift and Shelf\n* = Target\np = PlayerR\n% = Shelf and Target\n\nPlayer = PlayerL or PlayerR or PlayerClimbing or PlayerClimbingL or PlayerClimbingR\n\nGrass = Grass1 or Grass2 or Grass3\n\nLiftChain = LiftRope or LiftRopeH or LiftCorner\n\nMirror = MirrorUL or MirrorUR or MirrorDL or MirrorDR\n\nFalling = Player or Boulder or Mirror\n\nPushable = Boulder or Mirror\n\nSolid = Wall or Boulder or Mirror or Target\n\nFloor = Solid or LiftGraphic or Shelf or Target\n\nClimbable = Ladder or RopeL or RopeR\n\n\n! = LightSource and Sky and SeenMirror and SeenTarget\n(! = LightSource and Dark0_even and Sky\n\nDarkness = Dark0_even or Dark0_odd or Dark1_even or Dark1_odd or Dark2_even or Dark2_odd or Dark3_even or Dark3_odd or Dark4_even or Dark4_odd or Dark5\n\nDark1 = Dark1_even or Dark1_odd\nDark2 = Dark2_even or Dark2_odd)\n\n(LightBlocked = LightBlockedL or LightBlockedR or LightBlockedU or LightBlockedD)\n\nLight = LightSource or LightSource2 or LightSource3 or LightL or LightR or LightU or LightD\n\n\n=======\nSOUNDS\n=======\n\nEndLevel 55891508\nPlayer Move 82426907\nLift Move 47466509\nMirror Move 62036907\nBoulder Move 62036907\nTarget Destroy 38934902\n\n(16126909)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nLight\nSky\nLift, Wall\nShelf\nLiftRope\nClimbable\nBoulder, Mirror, Target\nLiftGraphic\nGrass, LiftCorner, LiftRopeH\nPlayer\nSeenMirror\nSeenTarget\n(Darkness\nDarkPending)\n\n======\nRULES\n======\n\n(Observations)\n\nhorizontal [ Player | MirrorUL ] [ SeenMirror ] -> [ Player | MirrorUL ] [] message A massive angled mirror, sloping towards the cave ceiling\nhorizontal [ Player | MirrorDL ] [ SeenMirror ] -> [ Player | MirrorDL ] [] message A massive angled mirror, sloping towards the cave floor\nhorizontal [ Player | Target ] [ SeenTarget ] -> [ Player | Target ] [] message A large stone block with an engraved image of the sun\n\nlate [ Player | MirrorUL ] [ SeenMirror ] -> again\nlate [ Player | MirrorDL ] [ SeenMirror ] -> again\nlate [ Player | Target ] [ SeenTarget ] -> again\n\n(Init)\n\ndown [ Sky | Wall no Grass ] -> [ Sky | Wall random Grass ]\n\nright [ LiftCorner | no LiftRopeH no Wall | ... | LiftCorner ] -> [ LiftCorner | LiftRopeH | ... | LiftCorner ]\nright [ LiftRopeH | no LiftRopeH no Wall | ... | LiftCorner ] -> [ LiftRopeH | LiftRopeH | ... | LiftCorner ]\n\n(Darkness: can be commented out easily)\n\n([ Darkness no Sky ] -> [])\n\n([ Dark0_even | no Wall no Darkness ] -> [ Dark0_even | Dark0_odd ]\n+ [ Dark0_odd | no Wall no Darkness ] -> [ Dark0_odd | Dark0_even ]\n\n[ Dark0_even | no Darkness ] -> [ Dark0_even | Dark1_odd ]\n[ Dark0_odd | no Darkness ] -> [ Dark0_odd | Dark1_even ]\n\n[ Dark1 | no Darkness no DarkPending ] -> [ Dark1 | DarkPending ]\n\nstartloop\nrandom [ DarkPending no Darkness ] -> [ action DarkPending ]\n\nrandom [ action DarkPending | stationary Dark1 no DarkPending ] -> [ action DarkPending | action Dark1 ]\n\n[ action DarkPending | stationary Dark1_even no DarkPending ] -> [ Dark1_odd DarkPending | Dark1_even ]\n[ action DarkPending | stationary Dark1_odd no DarkPending ] -> [ Dark1_even DarkPending | Dark1_odd ]\n\n[ action DarkPending ] -> []\n[ action Dark1 ] -> [ Dark1 ]\nendloop\n\n[ DarkPending ] -> []\n\n[ Dark1_even | no Darkness ] -> [ Dark1_even | Dark2_odd ]\n[ Dark1_odd | no Darkness ] -> [ Dark1_odd | Dark2_even ]\n\n[ Dark2_even | no Darkness ] -> [ Dark2_even | Dark3_odd ]\n[ Dark2_odd | no Darkness ] -> [ Dark2_odd | Dark3_even ]\n\n[ Dark3_even | no Darkness ] -> [ Dark3_even | Dark4_odd ]\n[ Dark3_odd | no Darkness ] -> [ Dark3_odd | Dark4_even ]\n\n[ Dark4_even | no Darkness ] -> [ Dark4_even | Dark5 ]\n[ Dark4_odd | no Darkness ] -> [ Dark4_odd | Dark5 ]\n\n[ Dark5 | no Darkness ] -> [ Dark5 | Dark5 ])\n\n(Movement)\n\nright [ Solid | < Player | LightSource ] -> [ Solid | Player | LightSource ]\n\ndown [ right PlayerClimbingL | Floor ] -> [ PlayerR | Floor ]\ndown [ left PlayerClimbingR | Floor ] -> [ PlayerL | Floor ]\n\n[ left Player ] -> [ left PlayerL ]\n[ right Player ] -> [ right PlayerR ]\n\nleft [ > Player RopeL | Wall ] -> [ PlayerClimbingL RopeL | Wall ]\nright [ > Player RopeR | Wall ] -> [ PlayerClimbingR RopeR | Wall ]\n\n[ > Player | Wall ] -> cancel\n[ > Player | Target ] -> cancel\n\n[ up Player no Lift no Climbable ] -> [ Player ]\ndown [ > Player no Lift no Climbable | no Climbable ] -> [ Player | ]\ndown [ > Player Climbable | Floor no Climbable ] -> cancel\n\nup [ > Player Climbable no Floor no Lift | no Climbable ] -> [ Player Climbable | ]\n\nhorizontal [ > Player | Pushable ] -> [ > Player | > Pushable ]\nvertical [ > Player | Pushable ] -> cancel\n\n[ > Pushable | Solid ] -> cancel\n\n(Lifts)\n\n[ vertical Player Lift no PlayerClimbing no PlayerClimbingL no PlayerClimbingR ] -> [ Player vertical Lift ]\n\nup [ > Lift Falling | LiftCorner ] -> [ Lift Falling | LiftCorner ]\nup [ > Lift | Wall ] -> [ Lift | Wall ]\ndown [ > Lift | Solid ] -> [ Lift | Solid ]\n\n[ moving Lift | stationary LiftChain ] -> [ moving Lift | moving LiftChain ]\n[ moving LiftChain | stationary LiftChain ] -> [ moving LiftChain | moving LiftChain ]\n\n[ up LiftChain stationary Lift ] -> [ up LiftChain down Lift ]\n[ down LiftChain stationary Lift ] -> [ down LiftChain up Lift ]\n\nup [ > Lift Falling | LiftCorner ] -> [ Lift Falling | LiftCorner ]\nup [ > Lift | Wall ] -> [ Lift | Wall ]\ndown [ > Lift | Solid ] -> [ Lift | Solid ]\n\n[ stationary Lift moving LiftChain ] -> [ Lift action LiftChain ]\n\n[ action LiftChain | LiftChain ] -> [ action LiftChain | action LiftChain ]\n[ action LiftChain moving Lift ] -> [ action LiftChain Lift ]\n\n[ moving LiftChain ] -> [ LiftChain ]\n\n[ moving Lift stationary Falling ] -> [ moving Lift moving Falling ]\n\nup [ > Falling | Falling ] -> cancel\n\n(Update graphics)\n\nlate [ LiftRope ] -> []\nlate [ LiftGraphic ] -> []\nlate down [ Lift | ] -> [ Lift LiftRope | LiftGraphic ]\nlate up [ LiftRope no LiftCorner | no LiftCorner ] -> [ LiftRope | LiftRope ]\n\nlate down [ Player Ladder no Lift | no Floor ] -> [ PlayerClimbing Ladder | ]\nlate down [ Player RopeL no Lift | no Floor ] -> [ PlayerClimbingL RopeL | ]\nlate down [ Player RopeR no Lift | no Floor ] -> [ PlayerClimbingR RopeR | ]\n\nlate [ PlayerClimbingL no Climbable ] -> [ PlayerL ]\nlate [ PlayerClimbingR no Climbable ] -> [ PlayerR ]\n\n( Gravity)\n\nlate down [ Falling no Climbable | no Floor ] -> again\n\ndown [ stationary Falling no Climbable | no Floor ] -> [ > Falling | ]\n\n(Light)\n\nlate [ Light no LightSource ] -> []\n\nlate right [ LightSource no MirrorUL no MirrorDL | no Light no MirrorUR no MirrorDR ] -> [ LightSource | LightSource2 ]\nlate right [ LightSource2 no Solid | no Light no MirrorUR no MirrorDR ] -> [ LightSource2 | LightSource3 ]\n\nlate right [ LightSource2 Boulder | no Light no MirrorUR no MirrorDR ] -> [ LightSource2 Boulder | LightSource3 ]\n\nlate right [ LightSource3 no Solid | no Light no Mirror ] -> [ LightSource3 | LightR ]\nlate right [ LightSource3 no Solid | MirrorUL ] -> [ LightSource3 | MirrorUL LightU ]\nlate right [ LightSource3 no Solid | MirrorDL ] -> [ LightSource3 | MirrorDL LightD ]\n\nlate left [ LightL | no Light no Solid ] -> [ LightL | LightL ]\n+ late right [ LightR | no Light no Solid ] -> [ LightR | LightR ]\n+ late up [ LightU | no Light no Solid ] -> [ LightU | LightU ]\n+ late down [ LightD | no Light no Solid ] -> [ LightD | LightD ]\n\n+ late left [ LightL | MirrorUR ] -> [ LightL | MirrorUR LightU ]\n+ late left [ LightL | MirrorDR ] -> [ LightL | MirrorDR LightD ]\n+ late right [ LightR | MirrorUL ] -> [ LightR | MirrorUL LightU ]\n+ late right [ LightR | MirrorDL ] -> [ LightR | MirrorDL LightD ]\n+ late up [ LightU | MirrorDL ] -> [ LightU | MirrorDL LightL ]\n+ late up [ LightU | MirrorDR ] -> [ LightU | MirrorDR LightR ]\n+ late down [ LightD | MirrorUL ] -> [ LightD | MirrorUL LightL ]\n+ late down [ LightD | MirrorUR ] -> [ LightD | MirrorUR LightR ]\n\n+ late left [ LightL | Boulder ] -> [ LightL | Boulder LightL ]\n+ late right [ LightR | Boulder ] -> [ LightR | Boulder LightL ]\n+ late up [ LightU | Boulder ] -> [ LightU | Boulder LightL ]\n+ late down [ LightD | Boulder ] -> [ LightD | Boulder LightL ]\n\n+ late left [ Boulder Light | no Light no Solid ] -> [ Boulder Light | LightL ]\n+ late right [ Boulder Light | no Light no Solid ] -> [ Boulder Light | LightR ]\n+ late up [ Boulder Light | no Light no Solid ] -> [ Boulder Light | LightU ]\n+ late down [ Boulder Light | no Light no Solid ] -> [ Boulder Light | LightD ]\n\nlate [ Boulder Light | Target ] -> [ Boulder Light | ] again\n\nlate left [ LightL | Target ] -> [ LightL | Target Sky ]\nlate right [ LightR | Target ] -> [ LightR | Target Sky ]\nlate up [ LightU | Target ] -> [ LightU | Target Sky ]\nlate down [ LightD | Target ] -> [ LightD | Target Sky ]\n\nlate down [ Target Sky | no Target ] -> checkpoint\nlate [ Target Sky ] -> [] again\n\n==============\nWINCONDITIONS\n==============\n\nall boulder on sky\nall player on sky\n\n=======\nLEVELS\n=======\n\n(~~~~~~~~~~~~~~~~\n~~~~##########~~\n~~~###o..o#####~\n~~~###....######\n~~~!p.l...######\n####-t----##o.o#\n###..u..`l.*l..#\n###--t----t----#\n#u*..u./..u....#\n#u##########---#\n#u##########...#\n#u.............#\n#u............l#\n#u.............#\n################)\n\n~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###....#######\n~~!..pl...#######\n#####t----###o.o#\n####.u..`l......#\n###..t----t-%---#\n#u*..u./..u.*l..#\n#u#--#######--t-#\n#uo..o###.....u.#\n#ul...`.....\\.ul#\n#t--t--t--t---t.#\n#u**u..u..u...u.#\n##-t--###########\n##.u...##o...o###\n#..u............#\n#..u'l.t-+-t....#\n#########*###-t##\n####.....*....u.#\n####..b..*...lu.#\n####.t-t.*....u.#\n#################\n\n(~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###....#######\n~~~!p.l...#######\n#####t----###o.o#\n####.u..`l......#\n###..t----t-----#\n#u*..u./..u.*l..#\n#u#--#######--t-#\n#uo..o###.....u.#\n#ul...`.....\\.ul#\n#t--t--t--t---t.#\n#u**u..u..u...u.#\n##-t--###########\n##.u...##########\n#..u.l..........#\n#..u....b..'..\\.#\n#################\n\n\n~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###....#######\n~~~!..l.`.#######\n#####t----###o.o#\n####.u..\\l..`.pl#\n###..t----t-----#\n#u...u../.u.....#\n#u#--#######--t-#\n#uo..o###.....u.#\n#ul...........u.#\n#t--t--t--t---t.#\n#u**u..u..u..lu.#\n##-t--###########\n##.u...##o....o##\n#..u.....l......#\n#..u'l.t---t....#\n#########*###t-##\n######...*...u..#\n######...*...u..#\n######.b.*...ul.#\n#################\n\n~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###....#######\n~~~!..l.`.#######\n#####t----###o.o#\n####.u..\\l..`...#\n###..t----t-----#\n#u...u....u..l..#\n#u#--#######--t-#\n#uo..o###.....u.#\n#ul...........ul#\n#t--t--t--t---t.#\n#u..u..u..u./.u.#\n##-t--###########\n##.u...##o....o##\n#..u.....l......#\n#..u'l.t---t....#\n#########*###t-##\n######...*...u..#\n######...*...u..#\n######.b.*...ul.#\n#################\n\n~~~~~~~~~~~~~~~~~\n~~~~##########~~~\n~~~###o..o#####~~\n~~~###l...#######\n~~~!....`.#######\n#####t----###o.o#\n####.u.........l#\n###..t---+t-----#\n#u..'u../.u.....#\n#u#--#######--t-#\n#uo..o###.....u.#\n#u...l........u.#\n#t--t--t--t---t.#\n#u..u..u..u..lu.#\n##-t--###########\n##.u...##o...o###\n#..u............#\n#.lu\\..t-+-t...`#\n#########.###-t##\n####..........u.#\n####..b......lu.#\n####.t-t...p..u.#\n#################)\n\n\n\n(````````````````\n````````````````\n`````!``````````\n#####[##########\n#####[#o..o#####\n#####[#...bu####\n####.[ul--lu####\n####.pu.\\..u####\n################)\n\nmessage Congrats! Thanks for playing :)\n\n",[2,2,2,3,3,3,3,3,0,0,3,3,3,2,2,3,3,2,1,1,1,1,1,1,0,0,1,1,1,2,3,3,3,2,2,1,1,3,3,0,0,0,2,1,1,1,3,3,3,0,0,1,1,1,2,2,1,2,2,3,1],"background sky:0,0,0,0,0,background grass3 wall:1,background wall:2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,0,0,0,0,0,1,2,2,background ladder:3,3,3,\n3,background ladder shelf:4,3,2,2,background:5,5,2,2,2,2,2,0,0,0,0,background lightsource seentarget sky:6,\n1,2,2,background target:7,2,background liftcorner:8,background lift liftrope:9,background liftgraphic shelf:10,7,background shelf:11,5,5,5,2,2,2,2,\n2,0,0,1,2,background lightsource2:12,2,2,5,5,11,background liftropeh:13,5,11,7,4,3,\n3,3,2,2,2,2,2,0,background grass2 wall:14,2,2,background lightsource3:15,2,5,5,background mirrordl:16,11,\n13,5,4,3,11,5,5,background mirrordr:17,2,5,5,5,2,0,14,2,2,\nbackground lightr:18,4,background ladder playerl:19,4,3,2,8,background liftrope:20,background liftrope shelf:21,20,21,20,20,9,background liftgraphic wall:22,5,5,\n4,2,0,background grass1 wall:23,8,20,background liftrope lightr:24,21,9,10,5,2,2,16,11,5,2,\n5,5,5,2,5,background boulder:25,11,2,0,14,13,5,18,11,5,11,5,\n2,2,5,4,3,2,2,5,4,2,5,5,4,2,0,23,13,\n5,18,11,5,11,5,2,2,5,11,5,2,2,5,11,2,5,\n5,5,2,0,1,8,20,background lift liftrope lightr:26,10,5,11,5,2,5,5,11,5,\n2,8,20,background lift liftrope shelf:27,background liftgraphic target:28,7,7,7,2,0,14,2,2,2,2,5,4,\n3,2,5,5,4,3,2,13,5,11,2,5,5,5,2,0,23,\n2,2,2,2,5,11,background mirrorul:29,2,5,5,11,5,2,13,5,4,2,\n5,5,5,2,0,1,2,2,2,2,5,background shelf target:30,7,11,5,background mirrorur:31,11,\n5,2,13,5,5,2,5,5,5,2,0,23,2,2,2,8,20,\n21,9,10,5,5,11,5,2,8,20,20,21,20,9,background liftgraphic:32,2,0,\n0,1,2,2,13,5,11,5,4,3,3,4,3,2,2,5,5,\n4,3,3,3,2,0,0,0,23,2,8,20,21,20,21,20,9,\n32,5,2,2,5,5,2,5,5,5,2,0,0,0,1,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n",0,"1627777767719.7332"] ], [ `gallery: beam islands`, - ["title Beam Islands\nauthor mjau\nhomepage http://twitter.com/kamjau\nrun_rules_on_level_start\nrealtime_interval 0.3\ntext_color #f197e9\n(debug)\n\n( for ludum dare 29 )\n\n=========\n OBJECTS\n=========\n\n(\n\t#000000 Black\n\t#df2619 Inactive border \n\t#078ffd Active border\n\t#a27d5b Bridge\n\t#6719ac Dark water\n\t#a13cb7 Light water\n\t#f197e9 Beam water\n\t#606060 Beam under\n\t#f7e26b Player\n\t#ffffff White\n)\n\nAnimate\nTransparent\n\nBgNW1 .\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNE1\n#6719ac #a13cb7\n00000\n00000\n00100\n00000\n00000\n\nBgSW1\n#6719ac #a13cb7\n00000\n00000\n00000\n01000\n00000\n\nBgSE1\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNW2\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNE2\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgSW2\n#6719ac #a13cb7\n00000\n00000\n00000\n01100\n00000\n\nBgSE2\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNW3\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNE3\n#6719ac #a13cb7\n00000\n00000\n01000\n00000\n00000\n\nBgSW3\n#6719ac #a13cb7\n00000\n00000\n00000\n00100\n00000\n\nBgSE3\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNW4\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNE4\n#6719ac #a13cb7\n00000\n00000\n01100\n00000\n00000\n\nBgSW4\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgSE4\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nPlayerTop\n#f7e26b\n.....\n.....\n.....\n.0.0.\n.000.\n\nPlayer\n#f7e26b #000000\n01010\n.000.\n.0.0.\n.....\n.....\n\nIsland #\n#000000\n\nFromBlockIsland\nTransparent\n\nIslandEdgeDetect\nTransparent\n\nIslandInterior\nTransparent\n\nIslandSide\n#000000\n00000\n.....\n.....\n.....\n.....\n\nBeamTop1\n#ffffff #f197e9 #a13cb7\n..2..\n..1..\n..0..\n..1..\n..0..\n\nBeamTop2\n#ffffff #f197e9 #a13cb7\n.....\n..2..\n..1..\n..0..\n..0..\n\nBeam o\n#ffffff #f197e9 #a13cb7\n.101.\n.000.\n.000.\n.000.\n.212.\n\nBeamReflect\n#a13cb7\n..0..\n.....\n.....\n.....\n.....\n\nBridge -\n#000000 #a27d5b\n.....\n.111.\n.101.\n.111.\n.000.\n\nBeamUnder\n#606060\n.....\n..0..\n.000.\n.000.\n.....\n\nPlayerIsland\nTransparent #078ffd\n.....\n.....\n..0..\n.....\n.....\n\nBlockIsland\nTransparent #df2619\n.....\n.....\n..0..\n.....\n.....\n\nIslandEdgeN\nTransparent #df2619\n11111\n.....\n.....\n.....\n.....\n\nPlayerIslandEdgeN\nTransparent #078ffd\n11111\n.....\n.....\n.....\n.....\n\nIslandEdgeS\nTransparent #df2619\n.....\n.....\n.....\n.....\n11111\n\nPlayerIslandEdgeS\nTransparent #078ffd\n.....\n.....\n.....\n.....\n11111\n\nIslandEdgeE\nTransparent #df2619\n....1\n....1\n....1\n....1\n....1\n\nPlayerIslandEdgeE\nTransparent #078ffd\n....1\n....1\n....1\n....1\n....1\n\nIslandEdgeW\nTransparent #df2619\n1....\n1....\n1....\n1....\n1....\n\nPlayerIslandEdgeW\nTransparent #078ffd\n1....\n1....\n1....\n1....\n1....\n\n\nIslandInnerEdgeNW\nTransparent #df2619\n1....\n.....\n.....\n.....\n.....\n\nPlayerIslandInnerEdgeNW\nTransparent #078ffd\n1....\n.....\n.....\n.....\n.....\n\nIslandInnerEdgeNE\nTransparent #df2619\n....1\n.....\n.....\n.....\n.....\n\nPlayerIslandInnerEdgeNE\nTransparent #078ffd\n....1\n.....\n.....\n.....\n.....\n\nIslandInnerEdgeSW\nTransparent #df2619\n.....\n.....\n.....\n.....\n1....\n\nPlayerIslandInnerEdgeSW\nTransparent #078ffd\n.....\n.....\n.....\n.....\n1....\n\nIslandInnerEdgeSE\nTransparent #df2619\n.....\n.....\n.....\n.....\n....1\n\nPlayerIslandInnerEdgeSE\nTransparent #078ffd\n.....\n.....\n.....\n.....\n....1\n\n========\n LEGEND\n========\n\n@ = Player and Island\n\nBackground = BgNW1 or BgNE1 or BgSW1 or BgSE1 or BgNW2 or BgNE2 or BgSW2 or BgSE2 or BgNW3 or BgNE3 or BgSW3 or BgSE3 or BgNW4 or BgNE4 or BgSW4 or BgSE4\n\nIslandEdgeV = IslandEdgeN or IslandEdgeS\nIslandEdgeH = IslandEdgeE or IslandEdgeW\nIslandInnerEdge = IslandInnerEdgeNW or IslandInnerEdgeNE or IslandInnerEdgeSW or IslandInnerEdgeSE\nIslandEdge = IslandEdgeH or IslandEdgeV or IslandInnerEdge or IslandEdgeDetect or IslandInterior\nMovable = Player or Island or IslandEdge or PlayerIsland\nMoveBlock = Island or Bridge\nWalkable = Island or Bridge\nBeamTop = BeamTop1 or BeamTop2\n\nIslandEdgeDetectN = IslandEdgeN or IslandEdgeDetect\nIslandEdgeDetectS = IslandEdgeS or IslandEdgeDetect\nIslandEdgeDetectE = IslandEdgeE or IslandEdgeDetect\nIslandEdgeDetectW = IslandEdgeW or IslandEdgeDetect\n\nCleanup = IslandInnerEdge or BeamTop or BeamUnder or IslandSide or PlayerTop or BeamReflect\n\nFrame2 = BgNW2 or BgNW4\n\n========\n SOUNDS\n========\n\nSFX0 57465701 ( beam )\nSFX1 45881509 ( merge )\nSFX2 70148904 ( can't move )\nSFX3 3171908 ( move )\nEndLevel 94824903\n\n=================\n COLLISIONLAYERS\n=================\n\nBackground\nAnimate\nIslandSide, BeamReflect\nBeam\nIsland, Bridge\nIslandEdgeN, PlayerIslandEdgeN\nIslandEdgeS, PlayerIslandEdgeS\nIslandEdgeE, PlayerIslandEdgeE\nIslandEdgeW, PlayerIslandEdgeW\nIslandInnerEdgeNW, PlayerIslandInnerEdgeNW\nIslandInnerEdgeNE, PlayerIslandInnerEdgeNE\nIslandInnerEdgeSW, PlayerIslandInnerEdgeSW\nIslandInnerEdgeSE, PlayerIslandInnerEdgeSE\nIslandInterior, IslandEdgeDetect\nBeamUnder\nPlayer\nPlayerIsland, BlockIsland, FromBlockIsland\nBeamTop\nPlayerTop\n\n=======\n RULES\n=======\n\n[ no Background ] -> [ BgNW1 ]\ndown [ BgNW1 | BgNW1 ] -> [ BgNW1 | BgSW1 ]\nright [ BgNW1 | BgNW1 ] -> [ BgNW1 | BgNE1 ]\nright [ BgSW1 | BgSW1 ] -> [ BgSW1 | BgSE1 ]\n\n[ stationary Player ][ Background ] -> [ Player ][ Background Animate ]\n[ BgNW1 Animate ] -> [ BgNW2 ]\n[ BgNE1 Animate ] -> [ BgNE2 ]\n[ BgSW1 Animate ] -> [ BgSW2 ]\n[ BgSE1 Animate ] -> [ BgSE2 ]\n[ BgNW2 Animate ] -> [ BgNW3 ]\n[ BgNE2 Animate ] -> [ BgNE3 ]\n[ BgSW2 Animate ] -> [ BgSW3 ]\n[ BgSE2 Animate ] -> [ BgSE3 ]\n[ BgNW3 Animate ] -> [ BgNW4 ]\n[ BgNE3 Animate ] -> [ BgNE4 ]\n[ BgSW3 Animate ] -> [ BgSW4 ]\n[ BgSE3 Animate ] -> [ BgSE4 ]\n[ BgNW4 Animate ] -> [ BgNW1 ]\n[ BgNE4 Animate ] -> [ BgNE1 ]\n[ BgSW4 Animate ] -> [ BgSW1 ]\n[ BgSE4 Animate ] -> [ BgSE1 ]\n\n[ Cleanup ] -> []\n\n( reset player island edges )\n[ PlayerIslandEdgeN ] -> [ IslandEdgeN ]\n[ PlayerIslandEdgeS ] -> [ IslandEdgeS ]\n[ PlayerIslandEdgeE ] -> [ IslandEdgeE ]\n[ PlayerIslandEdgeW ] -> [ IslandEdgeW ]\n[ PlayerIslandInnerEdgeNE ] -> [ IslandInnerEdgeNE ]\n[ PlayerIslandInnerEdgeNW ] -> [ IslandInnerEdgeNW ]\n[ PlayerIslandInnerEdgeSE ] -> [ IslandInnerEdgeSE ]\n[ PlayerIslandInnerEdgeSW ] -> [ IslandInnerEdgeSW ]\n\n( merge )\n[ action Player ][ IslandEdge ] -> [ action Player ][]\n[ action Player ] -> [ Player ] SFX1\n\n( simple movement )\n[ > Player | Walkable ] -> [ | Player Walkable ]\n[ > Player Bridge | no Walkable ] -> [ Player Bridge | ]\n\n( swap island types if player changed islands )\n[ Player Bridge ][ PlayerIsland ] -> [ Player Bridge ][ BlockIsland ]\n[ Player BlockIsland ] -> [ Player FromBlockIsland ]\n[ Player FromBlockIsland ][ BlockIsland ] -> [ Player FromBlockIsland ][ FromBlockIsland ]\n[ Player FromBlockIsland ][ PlayerIsland ] -> [ Player FromBlockIsland ][ BlockIsland ]\n[ FromBlockIsland ] -> []\n\n( beam holes in unoccupied islands )\n[ Beam Island BlockIsland IslandEdge ] -> [ Beam Island BlockIsland ]\n[ Beam Island BlockIsland ] -> [ up Beam ] SFX0\nup [ up Beam | BlockIsland ] -> [ up Beam | BlockIsland IslandEdgeS ]\ndown [ up Beam | BlockIsland ] -> [ up Beam | BlockIsland IslandEdgeN ]\nright [ up Beam | BlockIsland ] -> [ up Beam | BlockIsland IslandEdgeW ]\nleft [ up Beam | BlockIsland ] -> [ up Beam | BlockIsland IslandEdgeE ]\n[ up Beam ] -> [ Beam ]\n\n( edge detection )\n[ Island no IslandEdge ] -> [ Island IslandEdgeN IslandEdgeS IslandEdgeE IslandEdgeW IslandEdgeDetect ]\nup [ IslandEdgeDetect IslandEdgeN | IslandEdgeDetect ] -> [ IslandEdgeDetect | IslandEdgeDetect ]\ndown [ IslandEdgeDetect IslandEdgeS | IslandEdgeDetect ] -> [ IslandEdgeDetect | IslandEdgeDetect ]\nright [ IslandEdgeDetect IslandEdgeE | IslandEdgeDetect ] -> [ IslandEdgeDetect | IslandEdgeDetect ]\nleft [ IslandEdgeDetect IslandEdgeW | IslandEdgeDetect ] -> [ IslandEdgeDetect | IslandEdgeDetect ]\n[ IslandEdgeDetect ] -> [ IslandInterior ]\n\nright [ IslandEdgeN no IslandEdgeE | no IslandEdgeN ] -> [ IslandEdgeN | IslandInnerEdgeNW ]\nleft [ IslandEdgeN no IslandEdgeW | no IslandEdgeN ] -> [ IslandEdgeN | IslandInnerEdgeNE ]\nright [ IslandEdgeS no IslandEdgeE | no IslandEdgeS ] -> [ IslandEdgeS | IslandInnerEdgeSW ]\nleft [ IslandEdgeS no IslandEdgeW | no IslandEdgeS ] -> [ IslandEdgeS | IslandInnerEdgeSE ]\n\n( player island )\n[ Player Island ] -> [ Player Island PlayerIsland ]\n up [ PlayerIsland no IslandEdgeN | Island ] -> [ PlayerIsland | Island PlayerIsland ]\n+ down [ PlayerIsland no IslandEdgeS | Island ] -> [ PlayerIsland | Island PlayerIsland ]\n+ right [ PlayerIsland no IslandEdgeE | Island ] -> [ PlayerIsland | Island PlayerIsland ]\n+ left [ PlayerIsland no IslandEdgeW | Island ] -> [ PlayerIsland | Island PlayerIsland ]\n[ Island no PlayerIsland ] -> [ Island BlockIsland ]\n\n( rigid movement )\n[ > Player ][ PlayerIsland ] -> [ > Player ][ > PlayerIsland ]\n[ > PlayerIsland Island | no MoveBlock ] -> [ > PlayerIsland > Island | ]\n[ < Island | Island no BlockIsland ] -> [ < Island | < Island ]\n[ stationary Island PlayerIsland ][ moving Player ] -> [ Island PlayerIsland ][ stationary Player ] SFX2\n[ stationary Island PlayerIsland ][ moving Movable ] -> [ Island stationary PlayerIsland ][ stationary Movable ]\n\n[ > PlayerIsland IslandEdge ] -> [ > PlayerIsland > IslandEdge ]\n\n( highlight player island edges )\n[ PlayerIsland IslandEdgeN ] -> [ PlayerIsland PlayerIslandEdgeN ]\n[ PlayerIsland IslandEdgeS ] -> [ PlayerIsland PlayerIslandEdgeS ]\n[ PlayerIsland IslandEdgeE ] -> [ PlayerIsland PlayerIslandEdgeE ]\n[ PlayerIsland IslandEdgeW ] -> [ PlayerIsland PlayerIslandEdgeW ]\n[ PlayerIsland IslandInnerEdgeNE ] -> [ PlayerIsland PlayerIslandInnerEdgeNE ]\n[ PlayerIsland IslandInnerEdgeNW ] -> [ PlayerIsland PlayerIslandInnerEdgeNW ]\n[ PlayerIsland IslandInnerEdgeSE ] -> [ PlayerIsland PlayerIslandInnerEdgeSE ]\n[ PlayerIsland IslandInnerEdgeSW ] -> [ PlayerIsland PlayerIslandInnerEdgeSW ]\n\n( fx )\n[ > Island | no Island ] -> [ | Island ] SFX3\nup [ Beam no Island | ] -> [ Beam | BeamTop1 ]\ndown [ Beam | ] -> [ Beam | BeamReflect ]\n[ Beam Island ] -> [ Beam Island BeamUnder ]\ndown [ Island | ] -> [ Island | IslandSide ]\n[ > Player | Walkable ] -> [ | Player Walkable ]\nup [ Player | ] -> [ Player | PlayerTop ]\n[ BeamTop1 ][ Frame2 ] -> [ BeamTop2 ][ Frame2 ]\n\n===============\n WINCONDITIONS\n===============\n\nall Beam on BeamUnder\n\n======== \n LEVELS\n========\n\nmessage cover all beams\n\n(ok)\n...........\n...........\n...........\n......o....\n...##..o...\n...@#......\n...........\n...........\n\nmessage unattended beams are dangerous\n\n(ok)\n..............\n.......###....\n......#####...\n......#..##...\n.........##...\n...#####.##...\n..-#@#o#.##...\n...#####.##...\n.........##...\n.......###o...\n..............\n..............\n.........o....\n..............\n\nmessage merge adjacent platforms with X\n\n(ok)\n.............\n.............\n......o......\n...o...#.o...\n.......#.....\n...#..@#.....\n...##..#..#..\n.......-###..\n.............\n.............\n\nmessage good luck!\n\n(ok)\n...........\n...........\n.....-.....\n....###....\n...o.@.o...\n....###....\n.....-.....\n...........\n...........\n\n(ok)\n...............\n...............\n.......-.......\n..o............\n......###......\n....-.#o#.-....\n......##@......\n...........##..\n.......-.......\n...............\n...............\n\n(ok)\n..................\n..............###.\n....o...........#.\n.-..........##..#.\n............##..#.\n........#@......#.\n......#######.....\n.....-..#....-....\n...o..............\n.....-............\n..................\n\n(ok)\n...-.....-...\n.....o.o.....\n....-.-.-....\n.............\n.............\n........###..\n..###.o..##..\n..#@#........\n..###........\n.............\n\n(ok)\n............\n.....#......\n...o###.o...\n...#-#.-.#..\n..###.#.###.\n...#.#@#.#..\n....-.#-....\n...o.#..o...\n....###.....\n.....#......\n............\n\nmessage congratulations! you win!\n\n", ["tick", "tick", "tick", 3, "tick", 3, "tick", 1, "tick", 0, "tick", 3, "tick", 3, "tick", 2, "tick", 2, "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", 2, "tick", "tick", 3, "tick", 0, "tick", 0, 0, "tick", 0, 0, "tick", 1, "tick", 1, 1, "tick", 1, 1, "tick", 1, 2, "tick", 3, "tick", 3, 3, "tick", 2, "tick", 2, "tick", "tick", "tick", "tick", "tick", 3, "tick", 3, "tick", "tick", 2, 1, "tick", 1, "tick", "tick", "tick", "tick", "tick", 0, "tick", 0, "tick", 0, 0, "tick", "tick", "tick"], "bgnw3:0,bgsw3:1,0,1,0,1,0,1,0,1,bgne3:2,bgse3:3,2,\n3,2,3,2,3,2,3,0,1,0,1,0,1,\n0,1,0,1,2,3,beamtop1 bgne3:4,beam bgse3:5,beamreflect bgne3:6,bgse3 blockisland island islandedgee islandedgen islandedgew islandinterior:7,bgne3 blockisland island islandedges islandedgew islandinneredgene islandinterior islandside:8,bgse3 islandside:9,2,\n3,0,1,bgnw3 island islandinterior playerisland playerislandedgen playerislandedges playerislandedgew:10,bgsw3 islandside:11,0,1,bgnw3 blockisland island islandedgee islandedgen islandedges islandinterior:12,11,0,1,2,3,\nbgne3 island islandinterior playerisland playerislandedgen playerislandedges:13,9,2,3,2,3,2,3,bgnw3 playertop:14,bgsw3 island islandinterior player playerisland playerislandedgee playerislandedgen playerislandedgew:15,beam beamunder bgnw3 island islandinterior islandside playerisland playerislandedgee playerislandedges playerislandinneredgenw:16,11,0,\nbgsw3 blockisland island islandedgen islandedges islandedgew islandinterior:17,bgnw3 islandside:18,1,0,1,2,3,2,7,bgne3 blockisland island islandedgee islandedgew islandinterior islandside:19,bgse3 blockisland island islandedgee islandinneredgenw islandinneredgesw islandinterior islandside:20,bgne3 blockisland island islandedgee islandedges islandedgew islandinterior islandside:21,bgse3 bridge islandside:22,\n2,3,0,1,0,1,0,1,0,1,0,1,2,\n3,4,5,6,3,2,3,2,3,0,1,0,1,\n0,1,0,1,0,1,2,3,2,3,2,3,2,\n3,2,3,0,1,0,1,0,1,0,1,0,1,\n", 5, "1627777817083.2576"] + ["title Beam Islands\nauthor mjau\nhomepage http://twitter.com/kamjau\nrun_rules_on_level_start\nrealtime_interval 0.3\ntext_color #f197e9\n(debug)\n\n( for ludum dare 29 )\n\n=========\n OBJECTS\n=========\n\n(\n\t#000000 Black\n\t#df2619 Inactive border \n\t#078ffd Active border\n\t#a27d5b Bridge\n\t#6719ac Dark water\n\t#a13cb7 Light water\n\t#f197e9 Beam water\n\t#606060 Beam under\n\t#f7e26b Player\n\t#ffffff White\n)\n\nAnimate\nTransparent\n\nBgNW1 .\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNE1\n#6719ac #a13cb7\n00000\n00000\n00100\n00000\n00000\n\nBgSW1\n#6719ac #a13cb7\n00000\n00000\n00000\n01000\n00000\n\nBgSE1\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNW2\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNE2\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgSW2\n#6719ac #a13cb7\n00000\n00000\n00000\n01100\n00000\n\nBgSE2\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNW3\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNE3\n#6719ac #a13cb7\n00000\n00000\n01000\n00000\n00000\n\nBgSW3\n#6719ac #a13cb7\n00000\n00000\n00000\n00100\n00000\n\nBgSE3\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNW4\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgNE4\n#6719ac #a13cb7\n00000\n00000\n01100\n00000\n00000\n\nBgSW4\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nBgSE4\n#6719ac #a13cb7\n00000\n00000\n00000\n00000\n00000\n\nPlayerTop\n#f7e26b\n.....\n.....\n.....\n.0.0.\n.000.\n\nPlayer\n#f7e26b #000000\n01010\n.000.\n.0.0.\n.....\n.....\n\nIsland #\n#000000\n\nFromBlockIsland\nTransparent\n\nIslandEdgeDetect\nTransparent\n\nIslandInterior\nTransparent\n\nIslandSide\n#000000\n00000\n.....\n.....\n.....\n.....\n\nBeamTop1\n#ffffff #f197e9 #a13cb7\n..2..\n..1..\n..0..\n..1..\n..0..\n\nBeamTop2\n#ffffff #f197e9 #a13cb7\n.....\n..2..\n..1..\n..0..\n..0..\n\nBeam o\n#ffffff #f197e9 #a13cb7\n.101.\n.000.\n.000.\n.000.\n.212.\n\nBeamReflect\n#a13cb7\n..0..\n.....\n.....\n.....\n.....\n\nBridge -\n#000000 #a27d5b\n.....\n.111.\n.101.\n.111.\n.000.\n\nBeamUnder\n#606060\n.....\n..0..\n.000.\n.000.\n.....\n\nPlayerIsland\nTransparent #078ffd\n.....\n.....\n..0..\n.....\n.....\n\nBlockIsland\nTransparent #df2619\n.....\n.....\n..0..\n.....\n.....\n\nIslandEdgeN\nTransparent #df2619\n11111\n.....\n.....\n.....\n.....\n\nPlayerIslandEdgeN\nTransparent #078ffd\n11111\n.....\n.....\n.....\n.....\n\nIslandEdgeS\nTransparent #df2619\n.....\n.....\n.....\n.....\n11111\n\nPlayerIslandEdgeS\nTransparent #078ffd\n.....\n.....\n.....\n.....\n11111\n\nIslandEdgeE\nTransparent #df2619\n....1\n....1\n....1\n....1\n....1\n\nPlayerIslandEdgeE\nTransparent #078ffd\n....1\n....1\n....1\n....1\n....1\n\nIslandEdgeW\nTransparent #df2619\n1....\n1....\n1....\n1....\n1....\n\nPlayerIslandEdgeW\nTransparent #078ffd\n1....\n1....\n1....\n1....\n1....\n\n\nIslandInnerEdgeNW\nTransparent #df2619\n1....\n.....\n.....\n.....\n.....\n\nPlayerIslandInnerEdgeNW\nTransparent #078ffd\n1....\n.....\n.....\n.....\n.....\n\nIslandInnerEdgeNE\nTransparent #df2619\n....1\n.....\n.....\n.....\n.....\n\nPlayerIslandInnerEdgeNE\nTransparent #078ffd\n....1\n.....\n.....\n.....\n.....\n\nIslandInnerEdgeSW\nTransparent #df2619\n.....\n.....\n.....\n.....\n1....\n\nPlayerIslandInnerEdgeSW\nTransparent #078ffd\n.....\n.....\n.....\n.....\n1....\n\nIslandInnerEdgeSE\nTransparent #df2619\n.....\n.....\n.....\n.....\n....1\n\nPlayerIslandInnerEdgeSE\nTransparent #078ffd\n.....\n.....\n.....\n.....\n....1\n\n========\n LEGEND\n========\n\n@ = Player and Island\n\nBackground = BgNW1 or BgNE1 or BgSW1 or BgSE1 or BgNW2 or BgNE2 or BgSW2 or BgSE2 or BgNW3 or BgNE3 or BgSW3 or BgSE3 or BgNW4 or BgNE4 or BgSW4 or BgSE4\n\nIslandEdgeV = IslandEdgeN or IslandEdgeS\nIslandEdgeH = IslandEdgeE or IslandEdgeW\nIslandInnerEdge = IslandInnerEdgeNW or IslandInnerEdgeNE or IslandInnerEdgeSW or IslandInnerEdgeSE\nIslandEdge = IslandEdgeH or IslandEdgeV or IslandInnerEdge or IslandEdgeDetect or IslandInterior\nMovable = Player or Island or IslandEdge or PlayerIsland\nMoveBlock = Island or Bridge\nWalkable = Island or Bridge\nBeamTop = BeamTop1 or BeamTop2\n\nIslandEdgeDetectN = IslandEdgeN or IslandEdgeDetect\nIslandEdgeDetectS = IslandEdgeS or IslandEdgeDetect\nIslandEdgeDetectE = IslandEdgeE or IslandEdgeDetect\nIslandEdgeDetectW = IslandEdgeW or IslandEdgeDetect\n\nCleanup = IslandInnerEdge or BeamTop or BeamUnder or IslandSide or PlayerTop or BeamReflect\n\nFrame2 = BgNW2 or BgNW4\n\n========\n SOUNDS\n========\n\nSFX0 57465701 ( beam )\nSFX1 45881509 ( merge )\nSFX2 70148904 ( can't move )\nSFX3 3171908 ( move )\nEndLevel 94824903\n\n=================\n COLLISIONLAYERS\n=================\n\nBackground\nAnimate\nIslandSide, BeamReflect\nBeam\nIsland, Bridge\nIslandEdgeN, PlayerIslandEdgeN\nIslandEdgeS, PlayerIslandEdgeS\nIslandEdgeE, PlayerIslandEdgeE\nIslandEdgeW, PlayerIslandEdgeW\nIslandInnerEdgeNW, PlayerIslandInnerEdgeNW\nIslandInnerEdgeNE, PlayerIslandInnerEdgeNE\nIslandInnerEdgeSW, PlayerIslandInnerEdgeSW\nIslandInnerEdgeSE, PlayerIslandInnerEdgeSE\nIslandInterior, IslandEdgeDetect\nBeamUnder\nPlayer\nPlayerIsland, BlockIsland, FromBlockIsland\nBeamTop\nPlayerTop\n\n=======\n RULES\n=======\n\n[ no Background ] -> [ BgNW1 ]\ndown [ BgNW1 | BgNW1 ] -> [ BgNW1 | BgSW1 ]\nright [ BgNW1 | BgNW1 ] -> [ BgNW1 | BgNE1 ]\nright [ BgSW1 | BgSW1 ] -> [ BgSW1 | BgSE1 ]\n\n[ stationary Player ][ Background ] -> [ Player ][ Background Animate ]\n[ BgNW1 Animate ] -> [ BgNW2 ]\n[ BgNE1 Animate ] -> [ BgNE2 ]\n[ BgSW1 Animate ] -> [ BgSW2 ]\n[ BgSE1 Animate ] -> [ BgSE2 ]\n[ BgNW2 Animate ] -> [ BgNW3 ]\n[ BgNE2 Animate ] -> [ BgNE3 ]\n[ BgSW2 Animate ] -> [ BgSW3 ]\n[ BgSE2 Animate ] -> [ BgSE3 ]\n[ BgNW3 Animate ] -> [ BgNW4 ]\n[ BgNE3 Animate ] -> [ BgNE4 ]\n[ BgSW3 Animate ] -> [ BgSW4 ]\n[ BgSE3 Animate ] -> [ BgSE4 ]\n[ BgNW4 Animate ] -> [ BgNW1 ]\n[ BgNE4 Animate ] -> [ BgNE1 ]\n[ BgSW4 Animate ] -> [ BgSW1 ]\n[ BgSE4 Animate ] -> [ BgSE1 ]\n\n[ Cleanup ] -> []\n\n( reset player island edges )\n[ PlayerIslandEdgeN ] -> [ IslandEdgeN ]\n[ PlayerIslandEdgeS ] -> [ IslandEdgeS ]\n[ PlayerIslandEdgeE ] -> [ IslandEdgeE ]\n[ PlayerIslandEdgeW ] -> [ IslandEdgeW ]\n[ PlayerIslandInnerEdgeNE ] -> [ IslandInnerEdgeNE ]\n[ PlayerIslandInnerEdgeNW ] -> [ IslandInnerEdgeNW ]\n[ PlayerIslandInnerEdgeSE ] -> [ IslandInnerEdgeSE ]\n[ PlayerIslandInnerEdgeSW ] -> [ IslandInnerEdgeSW ]\n\n( merge )\n[ action Player ][ IslandEdge ] -> [ action Player ][]\n[ action Player ] -> [ Player ] SFX1\n\n( simple movement )\n[ > Player | Walkable ] -> [ | Player Walkable ]\n[ > Player Bridge | no Walkable ] -> [ Player Bridge | ]\n\n( swap island types if player changed islands )\n[ Player Bridge ][ PlayerIsland ] -> [ Player Bridge ][ BlockIsland ]\n[ Player BlockIsland ] -> [ Player FromBlockIsland ]\n[ Player FromBlockIsland ][ BlockIsland ] -> [ Player FromBlockIsland ][ FromBlockIsland ]\n[ Player FromBlockIsland ][ PlayerIsland ] -> [ Player FromBlockIsland ][ BlockIsland ]\n[ FromBlockIsland ] -> []\n\n( beam holes in unoccupied islands )\n[ Beam Island BlockIsland IslandEdge ] -> [ Beam Island BlockIsland ]\n[ Beam Island BlockIsland ] -> [ up Beam ] SFX0\nup [ up Beam | BlockIsland ] -> [ up Beam | BlockIsland IslandEdgeS ]\ndown [ up Beam | BlockIsland ] -> [ up Beam | BlockIsland IslandEdgeN ]\nright [ up Beam | BlockIsland ] -> [ up Beam | BlockIsland IslandEdgeW ]\nleft [ up Beam | BlockIsland ] -> [ up Beam | BlockIsland IslandEdgeE ]\n[ up Beam ] -> [ Beam ]\n\n( edge detection )\n[ Island no IslandEdge ] -> [ Island IslandEdgeN IslandEdgeS IslandEdgeE IslandEdgeW IslandEdgeDetect ]\nup [ IslandEdgeDetect IslandEdgeN | IslandEdgeDetect ] -> [ IslandEdgeDetect | IslandEdgeDetect ]\ndown [ IslandEdgeDetect IslandEdgeS | IslandEdgeDetect ] -> [ IslandEdgeDetect | IslandEdgeDetect ]\nright [ IslandEdgeDetect IslandEdgeE | IslandEdgeDetect ] -> [ IslandEdgeDetect | IslandEdgeDetect ]\nleft [ IslandEdgeDetect IslandEdgeW | IslandEdgeDetect ] -> [ IslandEdgeDetect | IslandEdgeDetect ]\n[ IslandEdgeDetect ] -> [ IslandInterior ]\n\nright [ IslandEdgeN no IslandEdgeE | no IslandEdgeN ] -> [ IslandEdgeN | IslandInnerEdgeNW ]\nleft [ IslandEdgeN no IslandEdgeW | no IslandEdgeN ] -> [ IslandEdgeN | IslandInnerEdgeNE ]\nright [ IslandEdgeS no IslandEdgeE | no IslandEdgeS ] -> [ IslandEdgeS | IslandInnerEdgeSW ]\nleft [ IslandEdgeS no IslandEdgeW | no IslandEdgeS ] -> [ IslandEdgeS | IslandInnerEdgeSE ]\n\n( player island )\n[ Player Island ] -> [ Player Island PlayerIsland ]\n up [ PlayerIsland no IslandEdgeN | Island ] -> [ PlayerIsland | Island PlayerIsland ]\n+ down [ PlayerIsland no IslandEdgeS | Island ] -> [ PlayerIsland | Island PlayerIsland ]\n+ right [ PlayerIsland no IslandEdgeE | Island ] -> [ PlayerIsland | Island PlayerIsland ]\n+ left [ PlayerIsland no IslandEdgeW | Island ] -> [ PlayerIsland | Island PlayerIsland ]\n[ Island no PlayerIsland ] -> [ Island BlockIsland ]\n\n( rigid movement )\n[ > Player ][ PlayerIsland ] -> [ > Player ][ > PlayerIsland ]\n[ > PlayerIsland Island | no MoveBlock ] -> [ > PlayerIsland > Island | ]\n[ < Island | Island no BlockIsland ] -> [ < Island | < Island ]\n[ stationary Island PlayerIsland ][ moving Player ] -> [ Island PlayerIsland ][ stationary Player ] SFX2\n[ stationary Island PlayerIsland ][ moving Movable ] -> [ Island stationary PlayerIsland ][ stationary Movable ]\n\n[ > PlayerIsland IslandEdge ] -> [ > PlayerIsland > IslandEdge ]\n\n( highlight player island edges )\n[ PlayerIsland IslandEdgeN ] -> [ PlayerIsland PlayerIslandEdgeN ]\n[ PlayerIsland IslandEdgeS ] -> [ PlayerIsland PlayerIslandEdgeS ]\n[ PlayerIsland IslandEdgeE ] -> [ PlayerIsland PlayerIslandEdgeE ]\n[ PlayerIsland IslandEdgeW ] -> [ PlayerIsland PlayerIslandEdgeW ]\n[ PlayerIsland IslandInnerEdgeNE ] -> [ PlayerIsland PlayerIslandInnerEdgeNE ]\n[ PlayerIsland IslandInnerEdgeNW ] -> [ PlayerIsland PlayerIslandInnerEdgeNW ]\n[ PlayerIsland IslandInnerEdgeSE ] -> [ PlayerIsland PlayerIslandInnerEdgeSE ]\n[ PlayerIsland IslandInnerEdgeSW ] -> [ PlayerIsland PlayerIslandInnerEdgeSW ]\n\n( fx )\n[ > Island | no Island ] -> [ | Island ] SFX3\nup [ Beam no Island | ] -> [ Beam | BeamTop1 ]\ndown [ Beam | ] -> [ Beam | BeamReflect ]\n[ Beam Island ] -> [ Beam Island BeamUnder ]\ndown [ Island | ] -> [ Island | IslandSide ]\n[ > Player | Walkable ] -> [ | Player Walkable ]\nup [ Player | ] -> [ Player | PlayerTop ]\n[ BeamTop1 ][ Frame2 ] -> [ BeamTop2 ][ Frame2 ]\n\n===============\n WINCONDITIONS\n===============\n\nall Beam on BeamUnder\n\n======== \n LEVELS\n========\n\nmessage cover all beams\n\n(ok)\n...........\n...........\n...........\n......o....\n...##..o...\n...@#......\n...........\n...........\n\nmessage unattended beams are dangerous\n\n(ok)\n..............\n.......###....\n......#####...\n......#..##...\n.........##...\n...#####.##...\n..-#@#o#.##...\n...#####.##...\n.........##...\n.......###o...\n..............\n..............\n.........o....\n..............\n\nmessage merge adjacent platforms with X\n\n(ok)\n.............\n.............\n......o......\n...o...#.o...\n.......#.....\n...#..@#.....\n...##..#..#..\n.......-###..\n.............\n.............\n\nmessage good luck!\n\n(ok)\n...........\n...........\n.....-.....\n....###....\n...o.@.o...\n....###....\n.....-.....\n...........\n...........\n\n(ok)\n...............\n...............\n.......-.......\n..o............\n......###......\n....-.#o#.-....\n......##@......\n...........##..\n.......-.......\n...............\n...............\n\n(ok)\n..................\n..............###.\n....o...........#.\n.-..........##..#.\n............##..#.\n........#@......#.\n......#######.....\n.....-..#....-....\n...o..............\n.....-............\n..................\n\n(ok)\n...-.....-...\n.....o.o.....\n....-.-.-....\n.............\n.............\n........###..\n..###.o..##..\n..#@#........\n..###........\n.............\n\n(ok)\n............\n.....#......\n...o###.o...\n...#-#.-.#..\n..###.#.###.\n...#.#@#.#..\n....-.#-....\n...o.#..o...\n....###.....\n.....#......\n............\n\nmessage congratulations! you win!\n\n",["tick","tick","tick",3,"tick",3,"tick",1,"tick",0,"tick",3,"tick",3,"tick",2,"tick",2,"tick","tick",1,"tick","tick","tick",1,"tick","tick",2,"tick","tick",3,"tick",0,"tick",0,0,"tick",0,0,"tick",1,"tick",1,1,"tick",1,1,"tick",1,2,"tick",3,"tick",3,3,"tick",2,"tick",2,"tick","tick","tick","tick","tick",3,"tick",3,"tick","tick",2,1,"tick",1,"tick","tick","tick","tick","tick",0,"tick",0,"tick",0,0,"tick","tick","tick"],"bgnw3:0,bgsw3:1,0,1,0,1,0,1,0,1,bgne3:2,bgse3:3,2,\n3,2,3,2,3,2,3,0,1,0,1,0,1,\n0,1,0,1,2,3,beamtop1 bgne3:4,beam bgse3:5,beamreflect bgne3:6,bgse3 blockisland island islandedgee islandedgen islandedgew islandinterior:7,bgne3 blockisland island islandedges islandedgew islandinneredgene islandinterior islandside:8,bgse3 islandside:9,2,\n3,0,1,bgnw3 island islandinterior playerisland playerislandedgen playerislandedges playerislandedgew:10,bgsw3 islandside:11,0,1,bgnw3 blockisland island islandedgee islandedgen islandedges islandinterior:12,11,0,1,2,3,\nbgne3 island islandinterior playerisland playerislandedgen playerislandedges:13,9,2,3,2,3,2,3,bgnw3 playertop:14,bgsw3 island islandinterior player playerisland playerislandedgee playerislandedgen playerislandedgew:15,beam beamunder bgnw3 island islandinterior islandside playerisland playerislandedgee playerislandedges playerislandinneredgenw:16,11,0,\nbgsw3 blockisland island islandedgen islandedges islandedgew islandinterior:17,bgnw3 islandside:18,1,0,1,2,3,2,7,bgne3 blockisland island islandedgee islandedgew islandinterior islandside:19,bgse3 blockisland island islandedgee islandinneredgenw islandinneredgesw islandinterior islandside:20,bgne3 blockisland island islandedgee islandedges islandedgew islandinterior islandside:21,bgse3 bridge islandside:22,\n2,3,0,1,0,1,0,1,0,1,0,1,2,\n3,4,5,6,3,2,3,2,3,0,1,0,1,\n0,1,0,1,0,1,2,3,2,3,2,3,2,\n3,2,3,0,1,0,1,0,1,0,1,0,1,\n",5,"1627777817083.2576"] ], [ `gallery: singleton traffic`, - ["title Singleton Traffic\nauthor Toph Wells\nhomepage www.tophwells.com\nnoaction\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nPlayer\nWhite #ff0 #ff4\n22222\n21112\n21012\n21112\n22222\n\nBackground\nBlack\n\nIndicatorH\n#fa0\n.....\n0...0\n00.00\n0...0\n.....\n\nIndicatorV\n#f80\n.000.\n..0..\n.....\n..0..\n.000.\n\n=======\nLEGEND\n=======\n\n. = Background\no = Player\nIndicator = IndicatorH or IndicatorV\n\n=======\nSOUNDS\n=======\nEndLevel 93613502\nUndo 10562106\nSFX0 11806907\n\n================\nCOLLISIONLAYERS\n================\nBackground\nPlayer\nIndicatorH\nIndicatorV\n\n======\nRULES\n======\n\n[Perpendicular Player|Player] -> [Player|Player]\n\n[> Player|No Player] -> [|Player] SFX0\n\n[No Player|Player|No Player] -> [|Action Player|]\n[Player|Action Player|Player] -> [Player|Player|Player]\n[Action Player][Player] -> [Action Player][Action Player]\n[Stationary Player] -> Win\n[Action Player] -> [Stationary Player] \n\n[Indicator] -> []\nVertical [Player no IndicatorV|Player] -> [Player IndicatorV|Player]\nHorizontal [Player no IndicatorH|Player] -> [Player IndicatorH|Player]\n==============\nWINCONDITIONS\n==============\n=======\nLEVELS\n=======\n\nMessage Tiles can't move horizontally if there's something vertically adjacent.\nMessage Tiles can't move vertically if there's something horizontally adjacent.\nMessage You win when nothing can move.\nMessage 1 OF 3\n\nooooooooooo\no.........o\no.........o\no...ooo...o\no...ooo.o.o\no...ooo...o\no....o....o\no..o.o....o\nooooooooooo\n\nMessage 2 OF 3\n\noooooooooo\no........o\no.oo..o..o\no.....o..o\no........o\no........o\no........o\no........o\no........o\noooooooooo\n\nMessage 3 OF 3\n\noooooooo\no......o\no.o....o\no.o....o\no......o\no....o.o\no.....oo\noooooooo\nMessage 4 OF 3\n\noooooooo\no..o...o\no..o...o\nooo..ooo\no......o\no...o..o\no...o..o\noooooooo\n\nMessage 5 OF 3\n\nooooooooo\no.......o\no.ooooo.o\no.......o\no...o...o\no.......o\nooooooooo\no.......o\no.o.o...o\no.o.....o\no.o.....o\no.......o\nooooooooo\n\nMessage LAST OF 3\n\nooooooooooooo\no......oo...o\no......oo.o.o\no.o.oo..o...o\no.o.....o...o\no.o.........o\no...........o\nooooooooooooo\n", [3, 2, 2, 1, 1, 3, 3, 3, 3, 0, 1, 2, 2, 2, 2, 2, 2], "background indicatorh indicatorv player:0,background indicatorv player:1,1,1,1,1,1,1,1,0,\nbackground indicatorh player:2,background:3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,1,0,\n2,3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,1,1,1,0,\n2,3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,3,2,\n0,1,1,1,1,1,1,1,1,0,\n", 6, "1627777857936.9624"] + ["title Singleton Traffic\nauthor Toph Wells\nhomepage www.tophwells.com\nnoaction\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nPlayer\nWhite #ff0 #ff4\n22222\n21112\n21012\n21112\n22222\n\nBackground\nBlack\n\nIndicatorH\n#fa0\n.....\n0...0\n00.00\n0...0\n.....\n\nIndicatorV\n#f80\n.000.\n..0..\n.....\n..0..\n.000.\n\n=======\nLEGEND\n=======\n\n. = Background\no = Player\nIndicator = IndicatorH or IndicatorV\n\n=======\nSOUNDS\n=======\nEndLevel 93613502\nUndo 10562106\nSFX0 11806907\n\n================\nCOLLISIONLAYERS\n================\nBackground\nPlayer\nIndicatorH\nIndicatorV\n\n======\nRULES\n======\n\n[Perpendicular Player|Player] -> [Player|Player]\n\n[> Player|No Player] -> [|Player] SFX0\n\n[No Player|Player|No Player] -> [|Action Player|]\n[Player|Action Player|Player] -> [Player|Player|Player]\n[Action Player][Player] -> [Action Player][Action Player]\n[Stationary Player] -> Win\n[Action Player] -> [Stationary Player] \n\n[Indicator] -> []\nVertical [Player no IndicatorV|Player] -> [Player IndicatorV|Player]\nHorizontal [Player no IndicatorH|Player] -> [Player IndicatorH|Player]\n==============\nWINCONDITIONS\n==============\n=======\nLEVELS\n=======\n\nMessage Tiles can't move horizontally if there's something vertically adjacent.\nMessage Tiles can't move vertically if there's something horizontally adjacent.\nMessage You win when nothing can move.\nMessage 1 OF 3\n\nooooooooooo\no.........o\no.........o\no...ooo...o\no...ooo.o.o\no...ooo...o\no....o....o\no..o.o....o\nooooooooooo\n\nMessage 2 OF 3\n\noooooooooo\no........o\no.oo..o..o\no.....o..o\no........o\no........o\no........o\no........o\no........o\noooooooooo\n\nMessage 3 OF 3\n\noooooooo\no......o\no.o....o\no.o....o\no......o\no....o.o\no.....oo\noooooooo\nMessage 4 OF 3\n\noooooooo\no..o...o\no..o...o\nooo..ooo\no......o\no...o..o\no...o..o\noooooooo\n\nMessage 5 OF 3\n\nooooooooo\no.......o\no.ooooo.o\no.......o\no...o...o\no.......o\nooooooooo\no.......o\no.o.o...o\no.o.....o\no.o.....o\no.......o\nooooooooo\n\nMessage LAST OF 3\n\nooooooooooooo\no......oo...o\no......oo.o.o\no.o.oo..o...o\no.o.....o...o\no.o.........o\no...........o\nooooooooooooo\n",[3,2,2,1,1,3,3,3,3,0,1,2,2,2,2,2,2],"background indicatorh indicatorv player:0,background indicatorv player:1,1,1,1,1,1,1,1,0,\nbackground indicatorh player:2,background:3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,1,0,\n2,3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,1,1,1,0,\n2,3,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,3,2,\n0,1,1,1,1,1,1,1,1,0,\n",6,"1627777857936.9624"] ], [ `gallery: aa I'm being attacked by a giant tentacle`, - ["title Aaaah! I'm Being Attacked by a Giant Tentacle!\nauthor Ricky Liu\nhomepage www.puzzlescript.net\n\nnoaction\nrealtime_interval 0.6\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\n#ccc #ddd #bee\n10000\n12220\n12220\n12220\n11110\n\nWall\n#555 #444 #333 #222\n00220\n11001\n02220\n00011\n31113\n\n\nFire\nOrange Yellow DarkBrown\n.0.0.\n000..\n0100.\n.010.\n2.2.2\n\nFire2\nOrange Yellow DarkBrown\n0..0.\n..000\n.0010\n.010.\n2.2.2\n\nPlayer\nBrown #fda Purple pink black\n.000.\n.111.\n22222\n22222\n.434.\n\n\nSweatR\n#6af\n.....\n0....\n.0...\n.....\n.....\n\nSweatL\n#6af\n.....\n....0\n...0.\n.....\n.....\n\nDeadPlayer\nBlack\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nLivePlayer\nBrown #fda Red Blue Black\n.000.\n.111.\n22222\n.333.\n.4.4.\n\nAsh\nDarkGray\n...0.\n.0...\n..0..\n.000.\n00000\n\nPrev\ntransparent\n\nPrevU\npurple pink\n.000.\n.000.\n.000.\n.....\n.....\n\nPrevD\npurple pink\n.....\n.....\n.000.\n.000.\n.000.\n\nPrevL\npurple pink\n.....\n000..\n000..\n000..\n.....\n\nPrevR\npurple pink\n.....\n..000\n..000\n..000\n.....\n\nNextU\npurple pink\n.001.\n.001.\n.000.\n.....\n.....\n\nNextD\npurple pink\n.....\n.....\n.000.\n.100.\n.100.\n\nNextL\npurple pink\n.....\n110..\n000..\n000..\n.....\n\nNextR\npurple pink\n.....\n..000\n..000\n..011\n.....\n\nNextU2\npurple pink\n..001\n..001\n..00.\n.....\n.....\n\nNextD2\npurple pink\n.....\n.....\n.00..\n100..\n100..\n\nNextL2\npurple pink\n11...\n000..\n000..\n.....\n.....\n\nNextR2\npurple pink\n.....\n.....\n..000\n..000\n...11\n\nTemp\ntransparent\n\nRNG1\ntransparent\n\nRNG2\ntransparent\n\nTick\ntransparent\n\n=======\nLEGEND\n=======\n. = Background\nP = Player and PrevL\nF = Fire\n# = Wall\nu = PrevU\nd = PrevD\nl = PrevL\nr = PrevR\n\nObstacle = Wall or Prev\nNext = NextU or NextD or NextL or NextR or NextU2 or NextD2 or NextL2 or NextR2\nRNG = RNG1 or RNG2\nSweats = SweatL or SweatR\n\n=======\nSOUNDS\n=======\n\nSFX0 8062509\nDeadPlayer create 73802302\nEndLevel 70964300\nStartGame 70964300\n(SFX1 94383907)\n\n================\nCOLLISIONLAYERS\n================\nBackground\nRNG1, RNG2\nTick\nTemp\nPrev\nPrevU, PrevD, PrevL, PrevR\nNext\nFire, Fire2, Ash\nPlayer, DeadPlayer, LivePlayer, Wall\nSweats\n\n\n======\nRULES \n======\n\n[stationary Player] -> [Player Tick]\n\n(simplify)\n[PrevU] -> [Up Prev]\n[PrevD] -> [Down Prev]\n[PrevL] -> [Left Prev]\n[PrevR] -> [Right Prev]\n[Next] -> []\n[Fire2] -> [Fire]\n[Sweats] -> []\n\n(calculate movement)\n[> Player > Prev | Prev] -> [ | Player Prev] (SFX1)\n[> Player | Obstacle] -> cancel\n[ | < Player > Prev] -> [Player > Prev| > Prev] (SFX1)\n[Moving Player] -> [Moving Player Moving Temp] (SFX1)\n\n[Perpendicular Temp > Prev | ] -> [Perpendicular Temp > Prev | Perpendicular Temp]\n[> Temp > Prev | ] -> [> Temp > Prev | Temp]\n[> Temp | Obstacle no Temp] [Player Temp] -> [ | Obstacle] [Player no Temp]\n[Player no Temp] [Temp] -> [Player] [no Temp]\n[> Player no Temp | ] -> [ | Player < Prev]\n[> Player > Temp Perpendicular Prev | ] -> [ | Player Perpendicular Prev]\n[> Temp Perpendicular Prev | ] -> [ | Perpendicular Prev]\n[> Temp > Prev | Temp] -> [ | ]\n[ | < Temp > Prev ] -> [> Prev | > Prev]\n[Temp] -> []\n\n(check fire)\n[Player Prev Fire] -> [DeadPlayer Prev Fire]\n[Player Prev] [Prev Fire] -> [LivePlayer Ash] [Prev Fire]\n[Prev Fire] [Prev no Fire] -> [Prev Fire] [Ash]\n[Prev Fire] -> [Ash]\n\n(draw)\n[Up Prev] -> [PrevU]\n[Down Prev] -> [PrevD]\n[Left Prev] -> [PrevL]\n[Right Prev] -> [PrevR]\nUp [PrevU | ] -> [PrevU | NextD]\nDown [PrevD | ] -> [PrevD | NextU]\nLeft [PrevL | ] -> [PrevL | NextR]\nRight [PrevR | ] -> [PrevR | NextL]\n\n(animation)\n[Tick] [RNG] -> [Tick] []\n\n[Tick] [Fire no RNG] -> [Tick] [Fire random RNG]\n[Fire RNG2] -> [Fire2 RNG2]\n\n[Tick] [Player no RNG] -> [Tick] [Player random RNG]\n[Tick] [Player RNG2] -> [Tick] [Player]\n[Tick] [Player no RNG] -> [Tick] [Player random RNG]\nright [Player RNG2 | ] -> [Player | SweatR]\n[Tick] [Player no RNG] -> [Tick] [Player random RNG]\nleft [Player RNG2 | ] -> [Player | SweatL] SFX0\n\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[Tick] [Next RNG2] -> [Tick] [Next]\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[Tick] [Next RNG2] -> [Tick] [Next]\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[Tick] [Next RNG2] -> [Tick] [Next]\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[NextU RNG2] -> [NextU2 RNG2]\n[NextD RNG2] -> [NextD2 RNG2]\n[NextL RNG2] -> [NextL2 RNG2]\n[NextR RNG2] -> [NextR2 RNG2]\n\n[Tick] -> []\n\n\n\n==============\nWINCONDITIONS\n==============\nSome LivePlayer\n\n======= \nLEVELS\n=======\n\nMessage Level 1: Aaaah!\n\n############\n#..........#\n#..........#\nlllp.......#\n#..........#\n#........#.#\n#..........#\n#..........#\n#....f.....#\n#....#.....#\n#..........#\n############\n\nMessage Level 2: Aaaaah!\n\n############\nlllp.......#\n#..........#\n#..........#\n#...##.##..#\n#.......#..#\n#...#f.....#\n#...##.##..#\n#..........#\n#..........#\n############\n\n\nMessage Level 3: Aaaaaah!\n\n###################\n##...............##\n#.................#\n#.................#\n#......######.....#\n#.......####......#\n#....#...##.......#\nlllp.##......#....#\n#.....##....##....#\n#......#.f.##.....#\n#......#####......#\n#.................#\n#.................#\n##................#\n###################\n\n\nMessage Level 4: Aaaaaaah!\n\n##############\n#............#\n#............#\nlllp.........#\n#............#\n#.....#......#\n#............#\n#........#...#\n#............#\n#...........f#\n##############\n\nMessage Level 5: Aaaaaaaah!\n\n#################\nlllp........#####\n#...........#####\n#...........#####\n#...........#####\n#...........#####\n#..#..#..#..##..#\n#...........#..f#\n#..............##\n#.............###\n#################\n\nMessage Level 6: Aaaaaaaaah!\n\n##################\n#................#\n#................#\nlllp.............#\n#................#\n#....#..#..#.....#\n#................#\n#................#\n#....#..#..#.....#\n#................#\n#................#\n#................#\n#................#\n#...............f#\n##################\n\n\nMessage Level 7: Aaaaaaaaaah!\n\n###################\nlllp......#########\n#.........#########\n#.........#########\n#.........#########\n#.#.#.#.#.#########\n#.........#########\n#.........#########\n##.........########\n###.........#######\n#####.......#######\n######.......######\n#######.......#####\n#########.....#####\n##########.....####\n###########.....###\n#############...###\n##############...##\n###############...#\n################f.#\n###################\n\nMessage Level 8: Aaaaaaaaaaah!\n\n####################\n#..................#\n#.#................#\n#..................#\nlllp...............#\n#..................#\n#..................#\n#..................#\n#..................#\n#....######........#\n#.........#........#\n#.......#.#........#\n#.........#........#\n#.........#........#\n#.......#.#........#\n#..................#\n#..................#\n#..................#\n#..............#...#\n#..................#\n#..................#\n#..................#\n#..................#\n#f.................#\n####################\n\nMessage Level 9: Aaaaaaaaaaaah!\n\n##################\nlllp.............#\n#................#\n#.......#.#.#.#..#\n#..#.............#\n#.......#.#.#.#..#\n#..#.#...........#\n#.........#.#.#..#\n#..#.#.#.........#\n#...........#.#..#\n#..#.#.#.#.......#\n#.............#..#\n#..#.#.#.#.#f.#..#\n#...........###..#\n#................#\n#................#\n##################\n\nMessage Level 10: Aaaaaaaaaaaaah!\n\n###################\nlllp..#.....#.....#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.....#..f..#.....#\n###################\n\nMessage Ahhhh! Thanks for playing!\n", ["tick", 0, 0, "tick", 3, 3, "tick", 3, 3, "tick", 2, 2, 3, 2, "tick", 2, 3, "tick", 3, "tick", 0, "tick"], "background wall:0,0,0,0,0,0,0,ash background rng1:1,0,0,0,0,0,0,0,0,0,background:2,2,\n2,2,2,1,2,2,2,2,2,0,0,0,2,2,2,2,2,2,1,\n2,2,2,2,2,2,0,0,2,2,2,2,2,2,1,2,2,2,2,\n2,2,0,0,2,2,2,2,1,1,1,2,2,2,2,2,2,0,0,\n2,2,2,2,1,0,0,2,2,2,2,2,2,0,0,2,2,2,2,\n1,2,0,0,2,2,2,2,2,0,0,2,2,2,0,1,1,1,0,\n0,0,2,2,2,0,0,2,2,2,0,0,2,1,background rng1:3,2,0,2,2,\n2,0,0,2,2,2,0,0,0,ash background:4,4,ash background deadplayer rng1:5,0,2,2,2,0,0,2,\n2,2,0,0,0,2,2,2,0,2,2,2,0,0,2,2,2,0,0,\n2,2,2,0,0,2,2,2,0,0,2,2,2,0,2,2,2,0,0,\n2,2,2,2,0,0,2,2,2,2,2,2,0,0,2,2,2,2,2,\n0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,2,2,\n2,2,2,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,\n2,2,2,2,2,2,2,0,0,0,2,2,2,2,2,2,2,2,2,\n2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 5, "1627777889846.471"] + ["title Aaaah! I'm Being Attacked by a Giant Tentacle!\nauthor Ricky Liu\nhomepage www.puzzlescript.net\n\nnoaction\nrealtime_interval 0.6\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\n#ccc #ddd #bee\n10000\n12220\n12220\n12220\n11110\n\nWall\n#555 #444 #333 #222\n00220\n11001\n02220\n00011\n31113\n\n\nFire\nOrange Yellow DarkBrown\n.0.0.\n000..\n0100.\n.010.\n2.2.2\n\nFire2\nOrange Yellow DarkBrown\n0..0.\n..000\n.0010\n.010.\n2.2.2\n\nPlayer\nBrown #fda Purple pink black\n.000.\n.111.\n22222\n22222\n.434.\n\n\nSweatR\n#6af\n.....\n0....\n.0...\n.....\n.....\n\nSweatL\n#6af\n.....\n....0\n...0.\n.....\n.....\n\nDeadPlayer\nBlack\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nLivePlayer\nBrown #fda Red Blue Black\n.000.\n.111.\n22222\n.333.\n.4.4.\n\nAsh\nDarkGray\n...0.\n.0...\n..0..\n.000.\n00000\n\nPrev\ntransparent\n\nPrevU\npurple pink\n.000.\n.000.\n.000.\n.....\n.....\n\nPrevD\npurple pink\n.....\n.....\n.000.\n.000.\n.000.\n\nPrevL\npurple pink\n.....\n000..\n000..\n000..\n.....\n\nPrevR\npurple pink\n.....\n..000\n..000\n..000\n.....\n\nNextU\npurple pink\n.001.\n.001.\n.000.\n.....\n.....\n\nNextD\npurple pink\n.....\n.....\n.000.\n.100.\n.100.\n\nNextL\npurple pink\n.....\n110..\n000..\n000..\n.....\n\nNextR\npurple pink\n.....\n..000\n..000\n..011\n.....\n\nNextU2\npurple pink\n..001\n..001\n..00.\n.....\n.....\n\nNextD2\npurple pink\n.....\n.....\n.00..\n100..\n100..\n\nNextL2\npurple pink\n11...\n000..\n000..\n.....\n.....\n\nNextR2\npurple pink\n.....\n.....\n..000\n..000\n...11\n\nTemp\ntransparent\n\nRNG1\ntransparent\n\nRNG2\ntransparent\n\nTick\ntransparent\n\n=======\nLEGEND\n=======\n. = Background\nP = Player and PrevL\nF = Fire\n# = Wall\nu = PrevU\nd = PrevD\nl = PrevL\nr = PrevR\n\nObstacle = Wall or Prev\nNext = NextU or NextD or NextL or NextR or NextU2 or NextD2 or NextL2 or NextR2\nRNG = RNG1 or RNG2\nSweats = SweatL or SweatR\n\n=======\nSOUNDS\n=======\n\nSFX0 8062509\nDeadPlayer create 73802302\nEndLevel 70964300\nStartGame 70964300\n(SFX1 94383907)\n\n================\nCOLLISIONLAYERS\n================\nBackground\nRNG1, RNG2\nTick\nTemp\nPrev\nPrevU, PrevD, PrevL, PrevR\nNext\nFire, Fire2, Ash\nPlayer, DeadPlayer, LivePlayer, Wall\nSweats\n\n\n======\nRULES \n======\n\n[stationary Player] -> [Player Tick]\n\n(simplify)\n[PrevU] -> [Up Prev]\n[PrevD] -> [Down Prev]\n[PrevL] -> [Left Prev]\n[PrevR] -> [Right Prev]\n[Next] -> []\n[Fire2] -> [Fire]\n[Sweats] -> []\n\n(calculate movement)\n[> Player > Prev | Prev] -> [ | Player Prev] (SFX1)\n[> Player | Obstacle] -> cancel\n[ | < Player > Prev] -> [Player > Prev| > Prev] (SFX1)\n[Moving Player] -> [Moving Player Moving Temp] (SFX1)\n\n[Perpendicular Temp > Prev | ] -> [Perpendicular Temp > Prev | Perpendicular Temp]\n[> Temp > Prev | ] -> [> Temp > Prev | Temp]\n[> Temp | Obstacle no Temp] [Player Temp] -> [ | Obstacle] [Player no Temp]\n[Player no Temp] [Temp] -> [Player] [no Temp]\n[> Player no Temp | ] -> [ | Player < Prev]\n[> Player > Temp Perpendicular Prev | ] -> [ | Player Perpendicular Prev]\n[> Temp Perpendicular Prev | ] -> [ | Perpendicular Prev]\n[> Temp > Prev | Temp] -> [ | ]\n[ | < Temp > Prev ] -> [> Prev | > Prev]\n[Temp] -> []\n\n(check fire)\n[Player Prev Fire] -> [DeadPlayer Prev Fire]\n[Player Prev] [Prev Fire] -> [LivePlayer Ash] [Prev Fire]\n[Prev Fire] [Prev no Fire] -> [Prev Fire] [Ash]\n[Prev Fire] -> [Ash]\n\n(draw)\n[Up Prev] -> [PrevU]\n[Down Prev] -> [PrevD]\n[Left Prev] -> [PrevL]\n[Right Prev] -> [PrevR]\nUp [PrevU | ] -> [PrevU | NextD]\nDown [PrevD | ] -> [PrevD | NextU]\nLeft [PrevL | ] -> [PrevL | NextR]\nRight [PrevR | ] -> [PrevR | NextL]\n\n(animation)\n[Tick] [RNG] -> [Tick] []\n\n[Tick] [Fire no RNG] -> [Tick] [Fire random RNG]\n[Fire RNG2] -> [Fire2 RNG2]\n\n[Tick] [Player no RNG] -> [Tick] [Player random RNG]\n[Tick] [Player RNG2] -> [Tick] [Player]\n[Tick] [Player no RNG] -> [Tick] [Player random RNG]\nright [Player RNG2 | ] -> [Player | SweatR]\n[Tick] [Player no RNG] -> [Tick] [Player random RNG]\nleft [Player RNG2 | ] -> [Player | SweatL] SFX0\n\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[Tick] [Next RNG2] -> [Tick] [Next]\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[Tick] [Next RNG2] -> [Tick] [Next]\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[Tick] [Next RNG2] -> [Tick] [Next]\n[Tick] [Next no RNG] -> [Tick] [Next random RNG]\n[NextU RNG2] -> [NextU2 RNG2]\n[NextD RNG2] -> [NextD2 RNG2]\n[NextL RNG2] -> [NextL2 RNG2]\n[NextR RNG2] -> [NextR2 RNG2]\n\n[Tick] -> []\n\n\n\n==============\nWINCONDITIONS\n==============\nSome LivePlayer\n\n======= \nLEVELS\n=======\n\nMessage Level 1: Aaaah!\n\n############\n#..........#\n#..........#\nlllp.......#\n#..........#\n#........#.#\n#..........#\n#..........#\n#....f.....#\n#....#.....#\n#..........#\n############\n\nMessage Level 2: Aaaaah!\n\n############\nlllp.......#\n#..........#\n#..........#\n#...##.##..#\n#.......#..#\n#...#f.....#\n#...##.##..#\n#..........#\n#..........#\n############\n\n\nMessage Level 3: Aaaaaah!\n\n###################\n##...............##\n#.................#\n#.................#\n#......######.....#\n#.......####......#\n#....#...##.......#\nlllp.##......#....#\n#.....##....##....#\n#......#.f.##.....#\n#......#####......#\n#.................#\n#.................#\n##................#\n###################\n\n\nMessage Level 4: Aaaaaaah!\n\n##############\n#............#\n#............#\nlllp.........#\n#............#\n#.....#......#\n#............#\n#........#...#\n#............#\n#...........f#\n##############\n\nMessage Level 5: Aaaaaaaah!\n\n#################\nlllp........#####\n#...........#####\n#...........#####\n#...........#####\n#...........#####\n#..#..#..#..##..#\n#...........#..f#\n#..............##\n#.............###\n#################\n\nMessage Level 6: Aaaaaaaaah!\n\n##################\n#................#\n#................#\nlllp.............#\n#................#\n#....#..#..#.....#\n#................#\n#................#\n#....#..#..#.....#\n#................#\n#................#\n#................#\n#................#\n#...............f#\n##################\n\n\nMessage Level 7: Aaaaaaaaaah!\n\n###################\nlllp......#########\n#.........#########\n#.........#########\n#.........#########\n#.#.#.#.#.#########\n#.........#########\n#.........#########\n##.........########\n###.........#######\n#####.......#######\n######.......######\n#######.......#####\n#########.....#####\n##########.....####\n###########.....###\n#############...###\n##############...##\n###############...#\n################f.#\n###################\n\nMessage Level 8: Aaaaaaaaaaah!\n\n####################\n#..................#\n#.#................#\n#..................#\nlllp...............#\n#..................#\n#..................#\n#..................#\n#..................#\n#....######........#\n#.........#........#\n#.......#.#........#\n#.........#........#\n#.........#........#\n#.......#.#........#\n#..................#\n#..................#\n#..................#\n#..............#...#\n#..................#\n#..................#\n#..................#\n#..................#\n#f.................#\n####################\n\nMessage Level 9: Aaaaaaaaaaaah!\n\n##################\nlllp.............#\n#................#\n#.......#.#.#.#..#\n#..#.............#\n#.......#.#.#.#..#\n#..#.#...........#\n#.........#.#.#..#\n#..#.#.#.........#\n#...........#.#..#\n#..#.#.#.#.......#\n#.............#..#\n#..#.#.#.#.#f.#..#\n#...........###..#\n#................#\n#................#\n##################\n\nMessage Level 10: Aaaaaaaaaaaaah!\n\n###################\nlllp..#.....#.....#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.................#\n#.....#.....#.....#\n#.....#..f..#.....#\n###################\n\nMessage Ahhhh! Thanks for playing!\n",["tick",0,0,"tick",3,3,"tick",3,3,"tick",2,2,3,2,"tick",2,3,"tick",3,"tick",0,"tick"],"background wall:0,0,0,0,0,0,0,ash background rng1:1,0,0,0,0,0,0,0,0,0,background:2,2,\n2,2,2,1,2,2,2,2,2,0,0,0,2,2,2,2,2,2,1,\n2,2,2,2,2,2,0,0,2,2,2,2,2,2,1,2,2,2,2,\n2,2,0,0,2,2,2,2,1,1,1,2,2,2,2,2,2,0,0,\n2,2,2,2,1,0,0,2,2,2,2,2,2,0,0,2,2,2,2,\n1,2,0,0,2,2,2,2,2,0,0,2,2,2,0,1,1,1,0,\n0,0,2,2,2,0,0,2,2,2,0,0,2,1,background rng1:3,2,0,2,2,\n2,0,0,2,2,2,0,0,0,ash background:4,4,ash background deadplayer rng1:5,0,2,2,2,0,0,2,\n2,2,0,0,0,2,2,2,0,2,2,2,0,0,2,2,2,0,0,\n2,2,2,0,0,2,2,2,0,0,2,2,2,0,2,2,2,0,0,\n2,2,2,2,0,0,2,2,2,2,2,2,0,0,2,2,2,2,2,\n0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,2,2,\n2,2,2,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,\n2,2,2,2,2,2,2,0,0,0,2,2,2,2,2,2,2,2,2,\n2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",5,"1627777889846.471"] ], [ - `gallery: censored version of NSFW game pornography for beginners`, - ["title censored version of NSFW game by Holly Gramazio\nauthor Holly\nhomepage hollygramazio.net\n\nyoutube K5Yd1iOAzBA\ntext_color red\nbackground_color gray\n\n========\nOBJECTS\n========\n\nPlayer\nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nAAAApedPlayer\nblack black black black black black\n00005\n55150\n12525\n05530\n01050\n\nAAAApedPlayer2\nblack black black black black black\n00005\n55150\n12525\n05530\n01050\n\n\nAAAApedPlayer3\nblack black black black black black\n00000\n55140\n12521\n05530\n01050\n\nAAAApedPlayer4\nblack black black black black black\n00000\n55140\n12521\n05530\n01050\n\nAAAApedPlayer5\nblack black black black black black\n00000\n55140\n12555\n03330\n01010\n\nAAAApedPlayer6\nblack black black black black black\n00000\n55140\n12555\n03330\n01010\n\n\nBBBNNNplayer \nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nBBBNNNplayer2 \nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nBBBNNNplayer3 \nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nBBBNNNplayer4 \nblack black black black black\n00000\n04040\n10201\n03030\n.....\n\n\n(Backgrounds)\n\nBackground\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nFlowertrigger\ngreen black\n00010\n00100\n10000\n00001\n01000\n\n\nFlowertrigger2\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoors\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage1\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage2\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage3\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nScoring\nblack black\n00100\n00100\n11111\n00100\n00100\n\nIntro\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nIntro2\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nIntro3\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nIntro4\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nTarget\nblack black\n00100\n00100\n11111\n00100\n00100\n\nOutdoortarget\ngreen black\n00010\n00100\n10000\n00001\n01000\n\n(CCCCCes)\n\nCCCCC\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCCa\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCCb\nblack black black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCCc\nblack black black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCCd\nblack green black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCCe\nblack black black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCC2\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC3\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC4\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC5\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC6\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC7\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC8\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC9\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC10\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nBBBNNNCCCCC\nblack black black \n.000.\n.020.\n.020.\n00200\n00000\n\nBBBNNNCCCCC2\nblack black black \n.....\n.010.\n.020.\n00200\n00000\n\nBBBNNNCCCCC3\nblack black black \n.....\n.....\n.010.\n11211\n01010\n\nBBBNNNCCCCC4\nblack black black \n.....\n.....\n.010.\n01210\n.....\n\n(DDDDs)\n\nDDDD\nblack black black black\n03310\n31111\n31012\n11112\n01220\n\nDDDD2\nblack black black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD2\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD3\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD4\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nDDDDularity\nblack black black black \n03310\n31111\n31012\n11112\n01220\n\nDDDDularity2\nblack black black black \n03310\n31111\n31012\n11112\n01220\n\nDDDDularity3\nblack black black black \n03310\n31111\n31012\n11112\n01220\n\n\n(tutorial EEEEparts) \n\nTuteFFFFFF\nblack black\n00100\n01010\n01010\n01010\n00100\n\nTuteGGG\nblack black black black black\n40000\n40040\n40240\n00200\n01010\n\nTuteface\nblack black black black\n00000\n02120\n01110\n01310\n00100\n\n\n(FFFFFFs)\n\nFFFFFF\nblack black\n00100\n01010\n01010\n01010\n00100\n\nFFFFFF2\nblack black\n00100\n01010\n01010\n01010\n00100\n\nFFFFFF3\nblack black black\n00100\n01210\n01210\n01210\n00100\n\nFFFFFF4\nblack black black\n00100\n01210\n01210\n01210\n00100\n\nFFFFFF5\nblack black black\n00200\n02120\n02120\n02120\n00200\n\n(YYYYYYYs)\nOOOOe\nblack black black black\n.020.\n02000\n20001\n20011\n01130\n\nTuteOOOOe\nblack black black black\n.020.\n02000\n20001\n20011\n01130\n\nTuteSSSSQQQQQQQQion\nblack black black black black\n01010\n.010.\n.020.\n.000.\n02020\n\nSSSSQQQQQQQQion\nblack black black black black\n01010\n.010.\n.020.\n.000.\n02020\n\nTuteRRRRRRQQQQQQQQion\nblack black black black\n.010.\n01010\n01010\n.030.\n02020\n\nRRRRRRQQQQQQQQion\nblack black black black\n.010.\n01010\n01010\n.030.\n02020\n\n\n(TTTTopalypse)\nd123d12d12derTTTT\nblack black black black black\n01010\n.010.\n.020.\n.000.\n02020\n\nd123d12d12derZZZZZZ1\nblack\n.000.\n00000\n00000\n.0000\n00000\n\nd123d12d12derZZZZZZ2\nblack\n00000\n00000\n00000\n00000\n00000\n\nd123d12d12derZZZZZZ3\nblack\n00000\n00000\n00000\n00000\n00000\n\n(k33k3k23s)\n\nk33k3k23\nblack black \n01010\n01010\n01010\n00000\n00000\n\nVVVV\nblack black \n01010\n00000\n00000\n00000\n00000\n\n(GGGs)\n\nGGG\nblack black black black black\n40000\n40040\n40240\n00200\n01010\n\nblackGGG\nblack black black black black green green \n05005\n56056\n56256\n05250\n01010\n\npinkGGG\nblack black black black black green green \n55556\n56556\n56256\n06261\n01010\n\nHHHHHHdGGG\nblack black black black green green green \n44446\n46446\n56256\n66256\n01010\n\nblackGGG2\nblack black black black black green green \n05005\n56056\n56256\n05250\n01010\n\npinkGGG2\nblack black black black black green green \n55556\n56556\n56256\n06261\n01010\n\nHHHHHHdGGG2\nblack black black black green green green \n44446\n46446\n56256\n66256\n01010\n\nUUUUU\nblack black\n.010.\n.000.\n.000.\n01010\n.....\n\nSAAAAon\nblack black black black black \n22422\n22422\n33433\n22022\n22022\n\n(faces)\n\nFace\nblack black black black\n00000\n02120\n01110\n01310\n00100\n\nif90345if0934i90f34\nblack black black black green \n00000\n02120\n04140\n04340\n00100\n\nif90345if0934i90f342\nblack black black black green \n00000\n02120\n04140\n04340\n00100\n\nif90345if0934i90f343\nblack black black black green \n00000\n02120\n04140\n04340\n00100\n\nSidefaceleft\nblack black black black\n00000\n01210\n01111\n01113\n0010.\n\nSidefaceright\nblack black black black\n00000\n01210\n11110\n31110\n.0100\n\nSidefaceup\nblack black black black\n.0130.\n0111\n02111\n01110\n00000\n\nSidefaceup2\nblack black black black\n.0130.\n0111\n02111\n01110\n00000\n\nSidefacedown\nblack black black black\n00000\n01110\n02111\n01110\n.0130\n\n(scoring)\n\nMMMM\nblack black black black black\n40304\n00311\n00212\n00123\n33333\n\nLLLLL\nblack black black\n00112\n00112\n00112\n00112\n00112\n\nLeftJJJJ\nblack black black black black black\n44542\n11221\n52135\n42143\n41223\n\nMidJJJJ\nblack black black black black\n44001\n14031\n41332\n43021\n33122\n\nRightJJJJ\nblack black black black black black\n42544\n24512\n55215\n31124\n13524\n\n(stuff)\n\nMess\nblack black black black black\n01234\n34021\n23140\n12403\n40312\n\n\nSocket\nblack black black\n00100\n00100\n00000\n11011\n00000\n\ng5432g5glass\ngreen black black black\n02220\n03330\n00100\n.000.\n00000\n\nZZZZZZglass\ngreen black black black\n00000\n01120\n00200\n.000.\n00000\n\nXXXXglass\ngreen black black \n00000\n02220\n00100\n.000.\n00000\n\nPhone\nblack black black\n00000\n02200\n00000\n01010\n10100\n\nWWWW\nblack black\n100..\n01010\n10001\n10001\n01110\n\nWWWW2\nblack black\n100..\n01010\n10101\n10001\n01110\n\nWWWWwarning\nblack \n.....\n.....\n.....\n.....\n.....\n\nWWWWwarning2\nblack\n.....\n.....\n.....\n.....\n.....\n\n(admin)\n\nKKKK\nblack black\n00001\n00010\n00100\n10100\n01000\n\nKKKK2\nblack black\n00001\n00010\n00100\n10100\n01000\n\nKKKK3\nblack black\n00001\n00010\n00100\n10100\n01000\n\nKKKK4\nblack black\n00000\n00000\n00000\n10100\n01000\n\nWall\nblack black\n01110\n01110\n01110\n01110\n01110\n\nBadKKKK\nblack black\n10001\n01010\n00100\n01010\n10001\n\nBadKKKK2\nblack black \n10001\n01010\n00100\n01010\n10001\n\nBadKKKK3\nblack black \n10001\n01010\n00100\n01010\n10001\n\nBadKKKK4\nblack black \n10001\n01010\n00100\n01010\n10001\n\n(architecture)\n\nDoor\nblack black\n00000\n00000\n00010\n00000\n00000\n\nHousewalltop\ngreen green green black green\n33333\n44444\n01210\n01210\n01210\n\nHousewallIIIII\ngreen green green green black\n01210\n01210\n01210\n01210\n01210\n\nFlowers\ngreen black green black black black\n30035\n02103\n24200\n02001\n01003\n\nPath\nblack black\n00001\n00000\n01000\n00010\n00000\n\nPathmessage1\nblack black\n00001\n00000\n01000\n00010\n00000\n\nPathmessage2\nblack black\n00001\n00000\n01000\n00010\n00000\n\nFakeOutdoors\ngreen black\n00010\n00100\n10000\n00001\n01000\n\n=======\nLEGEND\n=======\n\n, = Outdoors \n! = LLLLL\n. = Background\n[ = Intro\n] = Intro2\n- = intro3\n_ = intro4\n* = Player\n# = Wall\n+ = MMMM\n0 = Face\n1 = LeftJJJJ\n2 = MidJJJJ\n3 = RightJJJJ\n4 = VVVV\n5 = k33k3k23\n6 = SAAAAon\n7 = UUUUU\nA = FFFFFF\nB = GGG\ne = Scoring\nF = RRRRRRQQQQQQQQion\nI = XXXXglass\nL = WWWW\nM = SSSSQQQQQQQQion\nO = DDDD\nP = CCCCC\nQ = Target\nT = Socket\nU = OOOOe \nX = KKKK\nY = Phone \nZ = Outdoortarget\n9 = tuteGGG\n& = tuteFFFFFF \n£ = tuteface\n$ = WWWWwarning\n\" = flowertrigger\n' = flowertrigger2\n% = tuteOOOOe\n{ = tuteSSSSQQQQQQQQion\n} = tuteRRRRRRQQQQQQQQion\n(outdoors)\nG = Door \nJ = Flowers\nR = Path\nK = HousewallIIIII\nN = Housewalltop\nC = pathmessage1\nD = Pathmessage2\n8 = Outdoormessage1\nS = Outdoormessage2\nW = Outdoormessage3\n\ngap = background or outdoors or path or outdoormessage2 or outdoormessage1 or outdoormessage3\n\nDDDDularities = DDDDularity or DDDDularity2 or DDDDularity3\nDDDDs = DDDD or DDDD2 or blackDDDD or blackDDDD2 or blackDDDD3 or blackDDDD4 \n\nTTTTopalypse = d123d12d12derTTTT or d123d12d12derZZZZZZ1 or d123d12d12derZZZZZZ2 or d123d12d12derZZZZZZ3\nblackGGGs = blackGGG or blackGGG2\npinkGGGs = pinkGGG or pinkGGG2\nFFFFFFs = FFFFFF or FFFFFF2 or FFFFFF3 or FFFFFF4 or FFFFFF5\nHHHHHHdGGGs = HHHHHHdGGG or HHHHHHdGGG2\nif90345if0934i90f34s = if90345if0934i90f34 or if90345if0934i90f342 or if90345if0934i90f343\nslappedGGGs = pinkGGGs or pinkGGGs or HHHHHHdGGGs\nfaces = Face or Sidefaceleft or Sidefaceright or Sidefaceup or sidefacedown or if90345if0934i90f34s or sidefaceup2\nGGGs = GGG or blackGGGs or pinkGGGs or HHHHHHdGGGs\nTTTTs = CCCCC or CCCCC2 or CCCCC3 or CCCCC4 or CCCCC5 or CCCCC6 or CCCCC7 or CCCCC8 or CCCCC9 or CCCCC10 or CCCCCa or CCCCCb or CCCCCc or CCCCCd or CCCCCe\nWWWWs = WWWW or WWWW2\n\nResults = KKKK or badKKKK or KKKK2 or badKKKK2 or KKKK2 or badKKKK2 or KKKK3 or badKKKK3 or KKKK4 or badKKKK4\nStuff = UUUUU or sAAAAon or XXXXglass or phone or socket or g5432g5glass or ZZZZZZglass or WWWWs or mess\nArchitecture = wall or door \nYYYYYYYs = OOOOe or SSSSQQQQQQQQion or RRRRRRQQQQQQQQion or g5432g5glass or ZZZZZZglass or tuteRRRRRRQQQQQQQQion or tuteSSSSQQQQQQQQion or tuteOOOOe\nscoretrack = scoring or MMMM or LLLLL or leftJJJJ or midJJJJ or rightJJJJ or target or outdoortarget\n\nEEEE = TTTTs or k33k3k23 or GGGs or DDDDs or Faces or VVVV or FFFFFFs or BBBNNNCCCCC or BBBNNNCCCCC2 or BBBNNNCCCCC3 or BBBNNNCCCCC4 or BBBNNNplayer or BBBNNNplayer2 or BBBNNNplayer3 or BBBNNNplayer4 or tuteGGG or tuteFFFFFF or tuteface \n\nAAAApedplayers = AAAApedplayer or AAAApedplayer2 or AAAApedplayer3 or AAAApedplayer4 or AAAApedplayer5 or AAAApedplayer6\n\nStudio = flowers or housewalltop or housewallIIIII \nPaths = path or pathmessage1 or pathmessage2 \n\nEverything = YYYYYYYs or stuff or architecture or studio or paths or EEEE or results or outdoors or scoretrack or player \n\n=======\nSOUNDS\n=======\n\nTTTTs move 81432307\nFFFFFFs move 30911708\nGGGs move 76441308\nDDDDs move 59578908\nk33k3k23 move 83753708\nVVVV move 88751108\nFaces move 46152509\nEEEE move 53209307\n\nAAAApedplayers move 62896704\n\nplayer cantmove 77916504\nKKKK create 97214303\nbadKKKK create 11123702\n\nSSSSQQQQQQQQion move 51210708\nRRRRRRQQQQQQQQion move 30863108\nOOOOe move 80548907\n\nstuff move 34367907\n\nEndlevel 48242503\nEndgame 9005308\nclosemessage 71913507\nstartlevel 13337700\n\n================\nCOLLISIONLAYERS\n================\nBackground, \nOutdoors, Intro, Intro2, intro3, intro4, outdoormessage1, outdoormessage2, outdoormessage3 \nPaths\nPlayer, EEEE, YYYYYYYs, Results, stuff, architecture, studio, AAAApedplayers, \nScoretrack\nDDDDularities, BBBNNNplayer, TTTTopalypse, fakeoutdoors, WWWWwarning, WWWWwarning2, flowertrigger, flowertrigger2\n======\nRULES\n======\n\n(everything that moves)\n[ > Player | EEEE ] -> [ > Player | > EEEE ]\n[ > Player | YYYYYYYs ] -> [ > Player | > YYYYYYYs ]\n[ > Player | Stuff ] -> [ > Player | > Stuff ]\n\n(disasters )\n[ DDDDularities ] -> [ randomdir DDDDularities ]\n[ everything | ... | DDDDularities ] -> [ > everything | ... | DDDDularities ]\n\n[ > everything | DDDDularity ] -> [ background | DDDDularity2 ] Message THIS IS A MESSAGE\n[ > everything | DDDDularity2 ] -> [ | DDDDularity3 ]\n[ > everything | DDDDularity3 ] -> [ > everything | DDDDularity2 ]\n\n(facesitting)\n[ > FFFFFFs | faces ] -> [ background | badKKKK ] Message THIS IS A MESSAGE\n[ > GGGs | faces ] -> [ | badKKKK ] Message THIS IS A MESSAGE\n\n(one-offs)\n[ > DDDDs | XXXXglass ] -> [ DDDDs | XXXXglass ] Message THIS IS A MESSAGE\n[ > XXXXglass | DDDD ] -> Message DISPLAY MESSAGE\n\n[ > VVVV | k33k3k23 ] -> [ | badKKKK ] Message THIS IS A MESSAGE\n[ > k33k3k23 | VVVV ] -> [ k33k3k23 | VVVV ] Message THIS IS A MESSAGE\n\n\n(CCCCC level) \n\n[ > CCCCC | tuteGGG ] -> [ | KKKK ] Message THIS IS A MESSAGE\n[ > CCCCC | tuteFFFFFF ] -> [ | KKKK ] Message THIS IS A MESSAGE\n[ > CCCCC | tuteface ] -> [ | KKKK ] Message THIS IS A MESSAGE\n\n\n(scoring)\n\n[ KKKK4 ] -> [ ]\n[ KKKK3 ] -> [ KKKK4 ]\n[ KKKK2 ] -> [ KKKK3 ]\n\n[ BadKKKK4 ] -> [ ]\n[ BadKKKK3 ] -> [ BadKKKK4 ]\n[ BadKKKK2 ] -> [ BadKKKK3 ]\n\n[ KKKK ] [ LLLLL | MMMM | Scoring ] -> [ KKKK2 ] [ LLLLL | LLLLL | MMMM ]\n[ KKKK ] [ LLLLL | MMMM | Target ] -> [ KKKK2 ] [ LLLLL | LLLLL | MMMM ]\n[ BadKKKK ] [ LLLLL | LLLLL | MMMM ] -> [BadKKKK2] [ LLLLL | MMMM | Scoring ]\n\n(dead things crumble to dust)\n[ BBBNNNCCCCC4 ] -> [ ]\n[ BBBNNNCCCCC3 ] -> [ BBBNNNCCCCC4 ]\n[ BBBNNNCCCCC2 ] -> [ BBBNNNCCCCC3 ]\n[ BBBNNNCCCCC ] -> [ BBBNNNCCCCC2 ]\n\n[ BBBNNNplayer4 ] -> [ ]\n[ BBBNNNplayer3 ] -> [ BBBNNNplayer4 ]\n[ BBBNNNplayer2 ] -> [ BBBNNNplayer3 ]\n[ BBBNNNplayer ] -> [ BBBNNNplayer2 ]\n\n\n( special PPPPP instructions for level 2 )\n\nright [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 1\nleft [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 2\nup [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 3\ndown [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 4\n\nright [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 5\nleft [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 6\nup [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 7\ndown [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 8\n\nright [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ] \nleft [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ]\nup [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ]\ndown [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ]\n\nright [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 9\nleft [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 10\nup [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 11\ndown [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 12\n\nright [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 13\nleft [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 14\nup [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 15\ndown [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 16\n\nright [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 17\nleft [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 18\nup [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 19\ndown [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 20\n\n\n(objects)\n\n[ > phone | OOOOe ] -> [ > phone | OOOOe ] Message THIS IS A MESSAGE 21\n\n\n[ > phone | RRRRRRQQQQQQQQion ] -> [ | KKKK ] Message THIS IS A MESSAGE 22\n\n[ > phone | SSSSQQQQQQQQion ] -> [ | KKKK ] Message THIS IS A MESSAGE 23\n[ > phone | DDDDs ] -> [ | KKKK ] Message THIS IS A MESSAGE 24\n\n[ > phone | TTTTs ] -> [ phone | TTTTs ] Message THIS IS A MESSAGE 25\n\n[> UUUUU | XXXXglass ] -> [ UUUUU | XXXXglass ] Message THIS IS A MESSAGE 26\n[> SAAAAon | XXXXglass ] -> [ SAAAAon | XXXXglass ] Message THIS IS A MESSAGE 27\n\n[> XXXXglass | socket ] -> [ | socket ] Message THIS IS A MESSAGE 28 \n[> g5432g5glass | socket ] -> [ | socket ] Message THIS IS A MESSAGE 29\n[> ZZZZZZglass | socket ] -> [ | socket ] Message THIS IS A MESSAGE 30\n\n[ > YYYYYYYs | phone ] -> [ | phone ] Message THIS IS A MESSAGE 31\n[ > phone | XXXXglass ] -> [ | XXXXglass ] Message THIS IS A MESSAGE 32\n\n[> TTTTs | Socket ] -> [ BBBNNNCCCCC | Socket ] Message THIS IS A MESSAGE 33\n[> TTTTs | Phone ] -> [ TTTTs | Phone ] Message THIS IS A MESSAGE 34 \n[ > TTTTs | XXXXglass ] -> [ TTTTs | XXXXglass ] Message THIS IS A MESSAGE 35\n\n[> player | k33k3k23 | socket ] -> [ | BBBNNNplayer | socket ] Message THIS IS A MESSAGE 36\n[> player | VVVV | socket ] -> [ player | VVVV | socket ] Message THIS IS A MESSAGE 37\n[> EEEE | Socket ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 38\n[> Socket | EEEE ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 39\n\n[ > player | YYYYYYYs | socket ] -> [ | BBBNNNplayer | socket ] Message THIS IS A MESSAGE 40\n\n[> Phone | FFFFFFs ] -> [ Background | FFFFFFs ] Message THIS IS A MESSAGE 41\n[> Phone | GGGs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 42\n\n[ > g5432g5glass | face ] -> [ | badKKKK ] Message THIS IS A MESSAGE 43\n[ > g5432g5glass | EEEE ] -> [ | badKKKK ] Message THIS IS A MESSAGE 44\n\n[ > ZZZZZZglass | face ] -> [ | KKKK ] Message THIS IS A MESSAGE 45\n[ > face | ZZZZZZglass ] -> [ | KKKK ] Message THIS IS A MESSAGE 46\n[ > ZZZZZZglass | FFFFFF ] -> [ | FFFFFF ] Message THIS IS A MESSAGE 47\n[ > ZZZZZZglass | GGG ] -> [ | badKKKK ] Message THIS IS A MESSAGE 48\n\n[ > XXXXglass | faces ] -> [ | faces ] Message THIS IS A MESSAGE 49\n[ > faces | XXXXglass ] -> [ faces | ] Message THIS IS A MESSAGE 50\n\nup down [ > phone | stuff ] -> [ phone | stuff ] Message THIS IS A MESSAGE 51\nleft right [ > phone | stuff ] -> [ phone | stuff ] Message THIS IS A MESSAGE 52\n\n\n\n[ > phone | face ] -> [ phone | face ] Message THIS IS A MESSAGE 53\n[ > GGGs | phone ] -> [ GGGs | phone ] Message THIS IS A MESSAGE 54\n[ > face | phone ] -> [ face | phone ] Message THIS IS A MESSAGE 55\n\n[ > UUUUU | socket ] -> [ UUUUU | socket ] Message THIS IS A MESSAGE 56\n\n\n[ > stuff | XXXXglass ] -> [ | XXXXglass ]\n[ > stuff | g5432g5glass ] -> [ | g5432g5glass ]\n[ > stuff | ZZZZZZglass ] -> [ | ZZZZZZglass ]\n\n\n( WWWW )\n\n[ AAAApedplayer6 ] -> [ player ] Message THIS IS A MESSAGE 57\n[ AAAApedplayer5 ] -> [ AAAApedplayer6 ]\n[ AAAApedplayer4 ] -> [ AAAApedplayer5 ]\n[ AAAApedplayer3 ] -> [ AAAApedplayer4 ] \n[ AAAApedplayer2 ] -> [ AAAApedplayer3 ]\n[ AAAApedplayer ] -> [ AAAApedplayer2 ] Message THIS IS A MESSAGE 58\n[ > player | WWWWs ] -> [ | < AAAApedplayer ] Message THIS IS A MESSAGE 59\n\n[ WWWWwarning ] [ WWWWwarning2 ] -> [ WWWWwarning2 ] [ WWWWwarning2 ]\n[ > player | WWWWwarning ] -> [ > player | WWWWwarning2 ] Message THIS IS A MESSAGE 60\n\nup [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 61\ndown [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 62\nup [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 63\nup [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 64\n\n[ > DDDDs | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 65\n[ > CCCCC | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 66\n[ > FFFFFFs | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 67\n[ > GGGs | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 68\n[ > k33k3k23 | WWWWs ] -> [ | badKKKK ] Message THIS IS A MESSAGE 69\n[ > VVVV | WWWWs ] -> [ | badKKKK ] Message THIS IS A MESSAGE 70\n\n\n(basic sex acts)\n\nup down [ > TTTTs | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE 71\nleft right [ > TTTTs | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE 72\n\nup [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 73\nleft [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 74\ndown [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 75\nright [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 76\n\nleft [ > FFFFFF | TTTTs ] -> [ | KKKK ] Message THIS IS A MESSAGE 77\nright [ > FFFFFF | TTTTs ] -> [ | KKKK ] \nup [ > FFFFFF | TTTTs ] -> [ | KKKK ] Message THIS IS A MESSAGE 78\ndown [ > FFFFFF | TTTTs ] -> [ | KKKK ] \n[ > TTTTs | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE 79\nright [ > FFFFFF | FFFFFF ] -> [ FFFFFF2 | FFFFFF2 ] Message THIS IS A MESSAGE 80\nleft up down [ > FFFFFF | FFFFFF ] -> [ FFFFFF2 | FFFFFF2 ]\ndown [ > FFFFFF2 | FFFFFF2 ] -> [ | KKKK ] Message THIS IS A MESSAGE 81\nleft up right [ > FFFFFF2 | FFFFFF2 ] -> [ | KKKK ]\n\n(UUUUUs) \n[ > FFFFFF3 | UUUUU ] -> [ background | KKKK ] \n[ > FFFFFFs | UUUUU ] -> [ FFFFFF3 | UUUUU ] Message THIS IS A MESSAGE 82\n\n[ > UUUUU | FFFFFFs ] -> [ background | sAAAAon ] Message THIS IS A MESSAGE 83\n\n\n[ > UUUUU | face ] -> [ UUUUU | face ] Message THIS IS A MESSAGE 84\n[ > sAAAAon | face ] -> [ | KKKK ] Message THIS IS A MESSAGE 85\n\n(sAAAAons) \n[ > sAAAAon | FFFFFFs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 86\n[ > sAAAAon | GGGs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 87\n[ > sAAAAon | DDDDs ] -> [ sAAAAon | DDDDs ] Message THIS IS A MESSAGE 88\n[ > sAAAAon | faces ] -> [ background | KKKK ] \n\n[ > FFFFFFs | sAAAAon ] -> [ background | KKKK ] \n[ > GGGs | sAAAAon ] -> [ background | KKKK ]\n[ > EEEE | sAAAAon ] -> [ EEEE | sAAAAon ]\n[ > faces | sAAAAon ] -> [ faces | sAAAAon ] Message THIS IS A MESSAGE 89\n\nup down [ > UUUUU | GGGs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 90\nleft right [ > UUUUU | GGGs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 91 \n\n[ > stuff | stuff | stuff | stuff ] -> [ stuff| stuff | stuff | stuff ] Message THIS IS A MESSAGE 92\n\n\n(the k33k3k23's jobs)\n\n[ > k33k3k23 | FFFFFF ] -> [ k33k3k23 | FFFFFF2 ] Message THIS IS A MESSAGE 93\n[ > k33k3k23 | FFFFFF2 ] -> [ k33k3k23 | FFFFFF3 ] \n[ > k33k3k23 | FFFFFF3 ] -> [ k33k3k23 | FFFFFF4 ] \n[ > k33k3k23 | FFFFFF4 ] -> [ k33k3k23 | FFFFFF5 ]\nup [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 94\ndown [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 95\nleft [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 96\nright [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 97\n\n[ > k33k3k23 | k33k3k23 ] -> [ k33k3k23 | k33k3k23 ] Message THIS IS A MESSAGE 98\nleft down [ > VVVV | VVVV ] -> [ VVVV | VVVV ] Message THIS IS A MESSAGE 99\nup right [ > VVVV | VVVV ] -> [ VVVV | VVVV ]\n\n(FFFFFFs)\n\n[ > FFFFFFs | GGG ] -> [ FFFFFFs | GGG ] Message THIS IS A MESSAGE 100\n[ > FFFFFFs | DDDD ] -> [ FFFFFFs | DDDD ] Message THIS IS A MESSAGE q1\n\n(piss)\n\n[ > OOOOe | TTTTs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q2\n[ > OOOOe | FFFFFFs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q3\n[ > OOOOe | SSSSQQQQQQQQion ] -> [ Background | BadKKKK ] \n[ > OOOOe | RRRRRRQQQQQQQQion ] -> [ Background | OOOOe ] Message THIS IS A MESSAGE q4\n[ > OOOOe | Face ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q5\n[ > OOOOe | k33k3k23 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q6\n[ > OOOOe | VVVV ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q7\n[ > OOOOe | GGGs ] -> [ Background | BadKKKK ]\n\n[ > OOOOe | OOOOe ] -> [ | OOOOe ] \n\n[ > OOOOe | EEEE ] -> [ Background | BadKKKK ]\n[ > RRRRRRQQQQQQQQion | EEEE ] -> [ Background | BadKKKK ]\n\n[ > RRRRRRQQQQQQQQion | SSSSQQQQQQQQion ] -> [ | BadKKKK ] Message THIS IS A MESSAGE q8\n[ > SSSSQQQQQQQQion | RRRRRRQQQQQQQQion ] -> [ | KKKK ] Message THIS IS A MESSAGE q9\n\n[ > TTTTs | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q10\n[ > FFFFFFs | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q11\n[ > SSSSQQQQQQQQion | OOOOe ] -> [ Background | OOOOe ] Message THIS IS A MESSAGE q12\n[ > RRRRRRQQQQQQQQion | OOOOe ] -> [ Background | OOOOe ] Message THIS IS A MESSAGE q13\n[ > Face | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q14\n[ > k33k3k23 | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q15\n[ > VVVV | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q16\n[ > GGG | OOOOe ] -> [ Background | BadKKKK ] \n\n(complicated things with glasses) \n\n[ > OOOOe | XXXXglass ] -> [ | g5432g5glass ]\n[ > RRRRRRQQQQQQQQion | XXXXglass ] -> [ | g5432g5glass ]\n[ > SSSSQQQQQQQQion | XXXXglass ] -> [ | ZZZZZZglass ]\n\n[ > OOOOe | ZZZZZZglass ] -> [ | g5432g5glass ]\n[ > RRRRRRQQQQQQQQion | ZZZZZZglass ] -> [ | g5432g5glass ]\n\n[ > SSSSQQQQQQQQion | g5432g5glass ] -> [ | ZZZZZZglass ]\n\n\n(DDDDs)\n\n[ > DDDDs | TTTTs ] -> [ DDDDs | TTTTs ] Message THIS IS A MESSAGE q17\n\n[ > DDDDs | FFFFFFs ] -> [ DDDDs | FFFFFF ] Message THIS IS A MESSAGE q18\n[ > DDDDs | SSSSQQQQQQQQion ] -> [ DDDD | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q19\n[ > DDDDs | Face ] -> [ DDDDs | Face ] Message THIS IS A MESSAGE q20\n[ > DDDDs | k33k3k23 ] -> [ DDDDs | k33k3k23 ] Message THIS IS A MESSAGE q21\n[ > DDDDs | GGG ] -> [ DDDDs | GGG ] Message THIS IS A MESSAGE q22\n\n[ > FFFFFFs | DDDDs ] -> [ FFFFFFs | DDDD ]\n[ > SSSSQQQQQQQQion | DDDDs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q23\n[ > SSSSQQQQQQQQion | Face ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q24\n\n[ > Face | DDDDs ] -> [ Face | DDDDs ] Message THIS IS A MESSAGE q25\n[ > DDDDs | Face | DDDDs ] -> [ DDDDs | Face | DDDDs ] Message THIS IS A MESSAGE q26\n\n[ > VVVV | DDDDs ] -> [ Background | BadKKKK ]\n[ > GGG | DDDDs ] -> [ GGG | DDDDs ] Message THIS IS A MESSAGE q27\n\n[ DDDDs | DDDDs | DDDDS | DDDDs | DDDDs | DDDDs | DDDDs ] -> [ Background | Background | Background | DDDDularity | Background | Background | Background ] Message THIS IS A MESSAGE q29 \n[ > DDDDs | DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q29\n[ > DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q30\n[ > DDDDs | DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q31\n[ > DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q32\n[ > DDDDs | DDDDs ] -> [ DDDDs | DDDDs ] Message THIS IS A MESSAGE q33\n\n(kissing)\nright [ > Faces | Faces ] -> [ Sidefaceleft | Sidefaceright ] Message THIS IS A MESSAGE q34\nleft [ > Faces | Faces ] -> [ Sidefaceright | Sidefaceleft ] Message THIS IS A MESSAGE q35\nup [ > Faces | Faces ] -> [ Sidefaceup | Sidefacedown ] Message THIS IS A MESSAGE q36\ndown [ > Faces | Faces ] -> [ Sidefacedown | Sidefaceup ] Message\n\n[ > GGGs | Outdoors ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q38\n\nup down [ > TTTTs | GGGs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q39\nleft [ > TTTTs | GGGs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q40\nright [ > TTTTs | GGGs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q41\n[ > GGGs | TTTTs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q42\n\n\n[ > k33k3k23 | Outdoors ] -> [ > k33k3k23 | > Outdoors ]\n[ > FFFFFFs | Outdoors ] -> [ Background | BadKKKK ]\n[ > TTTTs | Outdoors ] -> [ Background | BadKKKK ]\n[ > SSSSQQQQQQQQion | Outdoors ] -> [ Background | BadKKKK ]\n[ > RRRRRRQQQQQQQQion | Outdoors ] -> [ Background | BadKKKK ]\n[ > OOOOe | Outdoors ] -> [ | Outdoors ] Message THIS IS A MESSAGE q43\n\n[ > FFFFFFs | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q44\n[ > TTTTs | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q45\n[ > SSSSQQQQQQQQion | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q46\n[ > RRRRRRQQQQQQQQion | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q47\n[ > OOOOe | Path | Path | Path ] -> [ > OOOOe | Path | Path | Path ] Message THIS IS A MESSAGE q48\n\n\n[ > Outdoors | Faces | Faces ] -> [ Outdoors | Faces | Faces ] Message THIS IS A MESSAGE q49\n\n\n(smacks and slaps)\nup down [ > k33k3k23 | GGG ] -> [ k33k3k23 | blackGGG ] Message THIS IS A MESSAGE q50\nleft right [ > k33k3k23 | GGG ] -> [ k33k3k23 | blackGGG ] Message THIS IS A MESSAGE q51\n[ > k33k3k23 | blackGGGs ] -> [k33k3k23 | blackGGG ] Message THIS IS A MESSAGE q52\n[ > k33k3k23 | blackGGGs ] -> [k33k3k23 | HHHHHHdGGG ] Message THIS IS A MESSAGE q53\n[ > k33k3k23 | HHHHHHdGGGs ] -> [Background | BadKKKK ] Message THIS IS A MESSAGE q54\n\n[> k33k3k23 | if90345if0934i90f34s ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q55\n[ > k33k3k23 | Faces ] -> [ k33k3k23 | if90345if0934i90f34 ] Message THIS IS A MESSAGE q56\n\n[> Faces | k33k3k23 ] -> [ Face | k33k3k23 ] Message THIS IS A MESSAGE q57\n\n[ > k33k3k23 | DDDD ] -> [ k33k3k23 | DDDD2 ] Message THIS IS A MESSAGE q58\n[ > k33k3k23 | DDDD2 ] -> [ k33k3k23 | blackDDDD4 ] Message THIS IS A MESSAGE q59\n[ > k33k3k23 | blackDDDD ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q60\n[ > k33k3k23 | blackDDDD2 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q61\n[ > k33k3k23 | blackDDDD3 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q62\n[ > k33k3k23 | blackDDDD4 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q63\n\n(VVVVing and punching)\n\n[> VVVV | Faces ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q64\n[ > VVVV | FFFFFFs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q65\n[ > VVVV | GGGs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q66\n\n[ > EEEE | VVVV ] -> [ EEEE | VVVV ] \n\n(remaining CCCCCes)\n[ > CCCCCA | CCCCCA ] -> [ CCCCCB | CCCCCB ]\n[ > CCCCCB | CCCCCB ] -> [ CCCCCC | CCCCCC ]\n[ > CCCCCC | CCCCCC ] -> [ CCCCCD | CCCCCD ]\n[ > CCCCCD | CCCCCD ] -> [ CCCCCE | CCCCCE ]\n[ > CCCCCE | CCCCCE ] -> [ | KKKK ]\n[ > TTTTs | TTTTs ] -> [ CCCCCA | CCCCCA ] Message THIS IS A MESSAGE q77\n\n[ > k33k3k23 | CCCCC ] -> [ k33k3k23 | CCCCC3 ] Message THIS IS A MESSAGE q78\n[ > k33k3k23 | CCCCC2 ] -> [ k33k3k23 | CCCCC5 ] Message THIS IS A MESSAGE q79\n[ > k33k3k23 | CCCCC3 ] -> [ k33k3k23 | CCCCC5 ] Message THIS IS A MESSAGE q80\n[ > k33k3k23 | CCCCC4 ] -> [ k33k3k23 | CCCCC7 ] Message THIS IS A MESSAGE q81\n[ > k33k3k23 | CCCCC5 ] -> [ k33k3k23 | CCCCC7 ] Message THIS IS A MESSAGE q82\n[ > k33k3k23 | CCCCC6 ] -> [ k33k3k23 | CCCCC9 ] Message THIS IS A MESSAGE q83\n[ > k33k3k23 | CCCCC7 ] -> [ k33k3k23 | CCCCC9 ] Message THIS IS A MESSAGE q84\n[ > k33k3k23 | CCCCC8 ] -> [ k33k3k23 | CCCCC10 ]\n[ > k33k3k23 | CCCCC9 ] -> [ background | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q85\n[ > k33k3k23 | CCCCC10 ] -> [ background | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q86\n\n[ > TTTTs | k33k3k23 ] -> [ Background | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q87\n\nright [ > Faces | FFFFFF ] -> [ sidefaceleft | FFFFFF2 ] Message THIS IS A MESSAGE q88\nleft [ > Faces | FFFFFF ] -> [ sidefaceright | FFFFFF2 ] Message THIS IS A MESSAGE q89\nup [ > faces | FFFFFF ] -> [ sidefaceup | FFFFFF2 ] Message THIS IS A MESSAGE q90\ndown [ > faces | FFFFFF ] -> [ sidefacedown | FFFFFF2 ] Message THIS IS A MESSAGE q91\n\n\n[ > Faces | FFFFFF2 ] -> [ Faces | FFFFFF3 ] \n[ > Faces | FFFFFF3 ] -> [ Faces | FFFFFF4 ]\n[ > Faces | FFFFFFs ] -> [ | KKKK ] \n[ > Faces | SSSSQQQQQQQQion ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 101\n\n[ > VVVV | GGG ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 102\n\n[ > CCCCC | DDDDs ] -> [ CCCCC | DDDDs ] Message THIS IS A MESSAGE\n[ > DDDDs | CCCCC | DDDDs ] -> [ DDDDs | SSSSQQQQQQQQion | DDDDs ] Message THIS IS A MESSAGE 103\n[ > CCCCC | DDDDs | DDDDs ] -> [ KKKK | | ] Message THIS IS A MESSAGE.104\n\n[ > CCCCC | EEEE ] -> [ CCCCC | EEEE ] Message THIS IS A MESSAGE.105\n[ > CCCCC | stuff ] -> [ CCCCC | stuff ] Message THIS IS A MESSAGE.106\n[ > stuff | CCCCC ] -> [ stuff | CCCCC ] Message THIS IS A MESSAGE.107\n\n( slaps fade )\n[ if90345if0934i90f343 ] -> [ face ]\n[ if90345if0934i90f342 ] -> [ if90345if0934i90f343 ]\n[ if90345if0934i90f34 ] -> [ if90345if0934i90f342 ]\n\n[ blackGGG2 ] -> [ GGG ]\n[ blackGGG ] -> [ blackGGG2 ]\n\n[ blackGGG2 ] -> [ blackGGG ]\n[ blackGGG ] -> [ blackGGG2 ]\n\n[ HHHHHHdGGG2 ] -> [ blackGGG ]\n[ HHHHHHdGGG ] -> [ HHHHHHdGGG2 ]\n\n[ blackDDDD2 ] -> [ DDDD ]\n[ blackDDDD3 ] -> [ blackDDDD2 ]\n[ blackDDDD4 ] -> [ blackDDDD3 ] \n\n(erections too)\n[ CCCCC2 ] -> [ CCCCC ]\n[ CCCCC3 ] -> [ CCCCC2 ]\n[ CCCCC4 ] -> [ CCCCC3 ]\n[ CCCCC5 ] -> [ CCCCC4 ]\n[ CCCCC6 ] -> [ CCCCC5 ]\n[ CCCCC7 ] -> [ CCCCC6 ]\n[ CCCCC8 ] -> [ CCCCC7 ]\n[ CCCCC9 ] -> [ CCCCC8 ]\n[ CCCCC10 ] -> [ CCCCC9 ]\n\n\n( faces and EEEE parts )\nright [ > Faces | GGGs ] -> [ Sidefaceleft | GGGs ]\nleft [ > Faces | GGGs ] -> [ Sidefaceright | GGGs ]\nup [ > sidefaceup2 | GGGs ] -> [ | KKKK ] Message THIS IS A MESSAGE.108\nup [ > Faces | GGGs ] -> [ Sidefaceup2 | GGGs ] Message THIS IS A MESSAGE.109\ndown [ > Faces | GGGs ] -> [ Sidefacedown | GGGs ] \n\n\nright [ > Faces | DDDDs ] -> [ Sidefaceleft | DDDDs ]\nleft [ > Faces | DDDDs ] -> [ Sidefaceright | DDDDs ]\nup [ > Faces | DDDDs ] -> [ Sidefaceup | DDDDs ] \ndown [ > Faces | DDDDs ] -> [ Sidefacedown | DDDDs ]\n\n[ > DDDDs | faces | DDDDs ] -> [ DDDDs | faces | DDDDs ] Message THIS IS A MESSAGE.110\n\nright [ > Faces | TTTTs ] -> [ Sidefaceleft | TTTTs ]\nleft [ > Faces | TTTTs ] -> [ Sidefaceright | TTTTs ]\nup [ > Faces | TTTTs ] -> [ Sidefaceup | TTTTs ] Message THIS IS A MESSAGE.111\ndown [ > Faces | TTTTs ] -> [ Sidefacedown | TTTTs ] Message THIS IS A MESSAGE.112\n\n[ > Sidefacedown | TTTTs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE.113\n\n(intro level)\nright [ > player | housewalltop ] -> [ player | housewalltop ] Message THIS IS A MESSAGE.114\nleft [ > player | housewalltop ] -> [ player | housewalltop ] Message THIS IS A MESSAGE.115\nright [ > player | housewallIIIII ] -> [ player | housewallIIIII ] Message THIS IS A MESSAGE.116\nleft [ > player | housewallIIIII ] -> [ player | housewallIIIII ] Message THIS IS A MESSAGE.117\n\n[ flowertrigger ] [> player | flowers ] -> [flowertrigger2] [ player | flowers ] Message THIS IS A MESSAGE.118\n[ flowertrigger2 ] [> player | flowers ] -> [ ] [ player | flowers ] Message THIS IS A MESSAGE.119\n\n[ > player | pathmessage1 ] -> [ > player | path ] Message THIS IS A MESSAGE.120\n[ > player | pathmessage2 ] -> [ > player | path ] Message THIS IS A MESSAGE.121\n\n[ outdoortarget ] [ > player | door ] -> [ outdoors ] [ > player | door ]\n\n(explanations)\n[ > player | intro ] -> [ > player | background ] Message THIS IS A MESSAGE.122\n[ > player | intro2 ] -> [ > player | background ] Message THIS IS A MESSAGE.123\n[ > player | intro3 ] -> [ > player | background ] Message THIS IS A MESSAGE.124\n[ > player | intro4 ] -> [ > player | background ] Message THIS IS A MESSAGE.125\n\n[ > player | outdoormessage1 ] -> [ > player | outdoors ] Message THIS IS A MESSAGE.126\n[ > player | outdoormessage2 ] -> [ > player | outdoors ] Message THIS IS A MESSAGE.127\n[ > player | outdoormessage3 ] -> [ > player | outdoors ] Message THIS IS A MESSAGE.128\n\n\n\n( ZZZZZZ, wanking, CCCCCes otherwise unaddressed ) \n[ > SSSSQQQQQQQQion | GGGs ] -> [ | KKKK ] Message THIS IS A MESSAGE.129\n[ > SSSSQQQQQQQQion | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE.130\nup down [ > SSSSQQQQQQQQion | faces ] -> [ | KKKK ] Message THIS IS A MESSAGE.131\nleft right [ > SSSSQQQQQQQQion | faces ] -> [ | KKKK ] Message THIS IS A MESSAGE.132\n[ > SSSSQQQQQQQQion | EEEE ] -> [ SSSSQQQQQQQQion | EEEE ] Message THIS IS A MESSAGE.133\n\n[ > CCCCC | VVVV ] -> [ | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.134\n[ > VVVV | CCCCC ] -> [ | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.135\n\n\n( TTTTopalypse )\n[ SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion ] -> [ d123d12d12derTTTT | d123d12d12derTTTT | d123d12d12derTTTT | d123d12d12derTTTT ] Message THIS IS A MESSAGE.136\n[ > SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion ] -> [ SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.137\n[ > SSSSQQQQQQQQion | SSSSQQQQQQQQion ] -> [ SSSSQQQQQQQQion | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.138\n\n[ d123d12d12derZZZZZZ2 ] -> [ d123d12d12derZZZZZZ3 ]\n[ d123d12d12derZZZZZZ1 ] -> [ d123d12d12derZZZZZZ2 ]\n\n[ | d123d12d12derZZZZZZ3 ] -> [ d123d12d12derZZZZZZ1 | d123d12d12derZZZZZZ3 ] \n[ | d123d12d12derZZZZZZ2 ] -> [ d123d12d12derZZZZZZ1 | d123d12d12derZZZZZZ2 ]\n[ | d123d12d12derTTTT ] -> [ d123d12d12derZZZZZZ1 | d123d12d12derTTTT ]\n\n[ d123d12d12derTTTT | ] -> [ d123d12d12derTTTT | d123d12d12derZZZZZZ1 ] \n\n(tuteYYYYYYYs) \n\n[ RRRRRRQQQQQQQQion ] [ tuteRRRRRRQQQQQQQQion ] -> [ RRRRRRQQQQQQQQion ] [ RRRRRRQQQQQQQQion] \n[ SSSSQQQQQQQQion ] [ tuteSSSSQQQQQQQQion ] -> [ SSSSQQQQQQQQion ] [ SSSSQQQQQQQQion ]\n[ OOOOe ] [ tuteOOOOe ] -> [ OOOOe ] [ OOOOe ]\n\n[ > player | tuteOOOOe ] -> [ > player | OOOOe ] Message THIS IS A MESSAGE.139\n[ > player | tuteSSSSQQQQQQQQion ] -> [ > player | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.140\n[ > player | tuteRRRRRRQQQQQQQQion ] -> [ > player | RRRRRRQQQQQQQQion ] Message THIS IS A MESSAGE.141\n \n[ > XXXXglass | YYYYYYYs ] -> [ XXXXglass | YYYYYYYs ] Message THIS IS A MESSAGE.142\n\n[ > YYYYYYYs | WWWW ] -> [ | WWWW ] Message THIS IS A MESSAGE.143\n\n[ > phone | EEEE ] -> [ > phone | EEEE ] Message THIS IS A MESSAGE.144\n\n[ > GGGs | GGGs ] -> [ GGGs | GGGs ] Message THIS IS A MESSAGE.145\n[ > GGGs | GGGs | GGGs ] -> [ GGGs | GGGs | GGGs ] Message THIS IS A MESSAGE.146\n[ > GGGs | GGGs | GGGs| GGGs ] -> [ GGGs | GGGs | GGGs | GGGs ] Message THIS IS A MESSAGE.147\n[ > GGGs | GGGs | GGGs | GGGs| GGGs ] -> [ GGGs | GGGs | GGGs | GGGs | GGGs ] Message THIS IS A MESSAGE.148\n\n==============\nWINCONDITIONS\n==============\n\nNo Target \nno outdoortarget \n\n=======\nLEVELS\n=======\n\nMessage AAAw1\n\nZJJ,NNNNNNNNN,JJJ\nJ,,,KKKKGKKKK,,,,\nJ,,,,,,JRJ,,,,,,,\nJ,,,,,,JRJJJ,,,,,\n,,,,,,,JDRRRJ,,,,\n,,,8,,,,JJJCRJ,,J\n,,,,,,,,,,JJRJ,,J\n,,,JJ,,,,,,,RJ*,J\n\",,,JJ,,,,,,R,,,,\n\n\nMessage AAAw2\n\n#eQe##I#T#9#Y#£#&#\n#eee#.............\n#eee#......P......\n#e+e#...P.....P...\n#e!e#......[......\n#e!e#######*######\n#123#,,,,J,R,,,,,,\n\nMessage AAAw3\n#eQe#..O...OO...O.\n#eee#..O.O..O..O..\n#e+e#.............\n#e!e#.I..%...}..{.\n#e!e#.............\n#e!e#.Y..%...}..{.\n#e!e#......]......\n#e!e#######*######\n#123#,,,,J,R,,,,,,\n\n\n\nMessage AAAw4\n\n#eQe#.....B.B.....\n#eee#.0.P.....A.A.\n#eee#.....5.5.....\n#eee#.O.4..5..5.P.\n#e+e#.............\n#e!e#..5..4.4..5..\n#e!e#......-......\n#e!e#######*######\n#e!e#,,,,J,R,,,,,,\n#123#,,S,,,R,J,J,,\n\n\nMessage AAAw5\n\n#eQe#.............\n#eee#.0..T...7..5.\n#eee#......M.$....\n#e+e#.B..I..$L$.A.\n#e!e#......F.$....\n#e!e#.O..Y...4..P.\n#e!e#.............\n#e!e#######*######\n#e!e#,,,,J,R,,,,,,\n#123#,,S,,,R,J,J,,\n\nMessage AAAw6\n\n#eQe#.....A.O...P.B.....\n#eee#.M.5..I..T..B..A.P.\n#eee#..U.....5.P.....A..\n#eee#.0.O..M..F..4..0.5.\n#eee#..I..L.......P..O..\n#eee#.A.U..7..O..P..0.T.\n#eee#..7.....4.5.....B..\n#eee#.P.Y..P..B..0..O.I.\n#e+e#........._.........\n#e!e##########*#########\n#e!e#,,,,,,,J,R,,,,,,,,,\n#e!e#,,,W,,,,,R,J,J,,,,,\n#123#,,,,,,,,JRRRRJ,,,,,\n\nMessage AAAw7\n\n\n", [0, 0, 0, 3, 0, 1, 1, 1, 2, 2, 2, 1, 0, 0, 3, 3, 3, 3, 2, 3, 3, 0, 0, 3, 0, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 0, 3, 3, 2, 3, 0, 0, 1, 1, 1, 0, 0, 3, 3], "background wall:0,0,0,0,0,0,0,background scoring:1,1,1,1,1,1,background leftjjjj:2,background target:3,1,1,background mmmm:4,\nbackground lllll:5,5,background midjjjj:6,1,1,1,1,1,1,background rightjjjj:7,0,0,0,0,0,0,0,0,\nbackground:8,8,8,8,0,background outdoors:9,background xxxxglass:10,8,8,8,8,0,9,0,background player:11,8,8,8,\n0,9,background socket:12,background ccccca:13,8,8,8,0,9,0,13,background cccccc:14,8,8,0,background flowers:15,background tuteggg:16,8,\n8,8,8,0,9,0,8,8,8,8,8,background path:17,background phone:18,8,8,8,8,0,\n9,0,8,8,8,8,0,9,background tuteface:19,8,8,8,8,0,9,0,8,8,\n8,8,0,9,background tuteffffff:20,8,8,8,8,0,9,0,8,8,8,8,0,9,\n", 3, "1645471800404.333"] + `gallery: censored version of NSFW game pornography for beginners`, + ["title censored version of NSFW game by Holly Gramazio\nauthor Holly\nhomepage hollygramazio.net\n\nyoutube K5Yd1iOAzBA\ntext_color red\nbackground_color gray\n\n========\nOBJECTS\n========\n\nPlayer\nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nAAAApedPlayer\nblack black black black black black\n00005\n55150\n12525\n05530\n01050\n\nAAAApedPlayer2\nblack black black black black black\n00005\n55150\n12525\n05530\n01050\n\n\nAAAApedPlayer3\nblack black black black black black\n00000\n55140\n12521\n05530\n01050\n\nAAAApedPlayer4\nblack black black black black black\n00000\n55140\n12521\n05530\n01050\n\nAAAApedPlayer5\nblack black black black black black\n00000\n55140\n12555\n03330\n01010\n\nAAAApedPlayer6\nblack black black black black black\n00000\n55140\n12555\n03330\n01010\n\n\nBBBNNNplayer \nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nBBBNNNplayer2 \nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nBBBNNNplayer3 \nblack black black black black\n00000\n04140\n12221\n03330\n01010\n\nBBBNNNplayer4 \nblack black black black black\n00000\n04040\n10201\n03030\n.....\n\n\n(Backgrounds)\n\nBackground\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nFlowertrigger\ngreen black\n00010\n00100\n10000\n00001\n01000\n\n\nFlowertrigger2\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoors\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage1\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage2\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nOutdoormessage3\ngreen black\n00010\n00100\n10000\n00001\n01000\n\nScoring\nblack black\n00100\n00100\n11111\n00100\n00100\n\nIntro\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nIntro2\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nIntro3\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nIntro4\ngreen green \n11011 \n11011\n00000\n11011\n11011\n\nTarget\nblack black\n00100\n00100\n11111\n00100\n00100\n\nOutdoortarget\ngreen black\n00010\n00100\n10000\n00001\n01000\n\n(CCCCCes)\n\nCCCCC\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCCa\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCCb\nblack black black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCCc\nblack black black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCCd\nblack green black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCCe\nblack black black black green green \n.010.\n.020.\n.020.\n00200\n00000\n\nCCCCC2\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC3\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC4\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC5\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC6\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC7\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC8\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC9\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nCCCCC10\nblack black black black green green \n.000.\n.020.\n.020.\n00200\n00000\n\nBBBNNNCCCCC\nblack black black \n.000.\n.020.\n.020.\n00200\n00000\n\nBBBNNNCCCCC2\nblack black black \n.....\n.010.\n.020.\n00200\n00000\n\nBBBNNNCCCCC3\nblack black black \n.....\n.....\n.010.\n11211\n01010\n\nBBBNNNCCCCC4\nblack black black \n.....\n.....\n.010.\n01210\n.....\n\n(DDDDs)\n\nDDDD\nblack black black black\n03310\n31111\n31012\n11112\n01220\n\nDDDD2\nblack black black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD2\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD3\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nblackDDDD4\nblack green black black\n03310\n31111\n31012\n11112\n01220\n\nDDDDularity\nblack black black black \n03310\n31111\n31012\n11112\n01220\n\nDDDDularity2\nblack black black black \n03310\n31111\n31012\n11112\n01220\n\nDDDDularity3\nblack black black black \n03310\n31111\n31012\n11112\n01220\n\n\n(tutorial EEEEparts) \n\nTuteFFFFFF\nblack black\n00100\n01010\n01010\n01010\n00100\n\nTuteGGG\nblack black black black black\n40000\n40040\n40240\n00200\n01010\n\nTuteface\nblack black black black\n00000\n02120\n01110\n01310\n00100\n\n\n(FFFFFFs)\n\nFFFFFF\nblack black\n00100\n01010\n01010\n01010\n00100\n\nFFFFFF2\nblack black\n00100\n01010\n01010\n01010\n00100\n\nFFFFFF3\nblack black black\n00100\n01210\n01210\n01210\n00100\n\nFFFFFF4\nblack black black\n00100\n01210\n01210\n01210\n00100\n\nFFFFFF5\nblack black black\n00200\n02120\n02120\n02120\n00200\n\n(YYYYYYYs)\nOOOOe\nblack black black black\n.020.\n02000\n20001\n20011\n01130\n\nTuteOOOOe\nblack black black black\n.020.\n02000\n20001\n20011\n01130\n\nTuteSSSSQQQQQQQQion\nblack black black black black\n01010\n.010.\n.020.\n.000.\n02020\n\nSSSSQQQQQQQQion\nblack black black black black\n01010\n.010.\n.020.\n.000.\n02020\n\nTuteRRRRRRQQQQQQQQion\nblack black black black\n.010.\n01010\n01010\n.030.\n02020\n\nRRRRRRQQQQQQQQion\nblack black black black\n.010.\n01010\n01010\n.030.\n02020\n\n\n(TTTTopalypse)\nd123d12d12derTTTT\nblack black black black black\n01010\n.010.\n.020.\n.000.\n02020\n\nd123d12d12derZZZZZZ1\nblack\n.000.\n00000\n00000\n.0000\n00000\n\nd123d12d12derZZZZZZ2\nblack\n00000\n00000\n00000\n00000\n00000\n\nd123d12d12derZZZZZZ3\nblack\n00000\n00000\n00000\n00000\n00000\n\n(k33k3k23s)\n\nk33k3k23\nblack black \n01010\n01010\n01010\n00000\n00000\n\nVVVV\nblack black \n01010\n00000\n00000\n00000\n00000\n\n(GGGs)\n\nGGG\nblack black black black black\n40000\n40040\n40240\n00200\n01010\n\nblackGGG\nblack black black black black green green \n05005\n56056\n56256\n05250\n01010\n\npinkGGG\nblack black black black black green green \n55556\n56556\n56256\n06261\n01010\n\nHHHHHHdGGG\nblack black black black green green green \n44446\n46446\n56256\n66256\n01010\n\nblackGGG2\nblack black black black black green green \n05005\n56056\n56256\n05250\n01010\n\npinkGGG2\nblack black black black black green green \n55556\n56556\n56256\n06261\n01010\n\nHHHHHHdGGG2\nblack black black black green green green \n44446\n46446\n56256\n66256\n01010\n\nUUUUU\nblack black\n.010.\n.000.\n.000.\n01010\n.....\n\nSAAAAon\nblack black black black black \n22422\n22422\n33433\n22022\n22022\n\n(faces)\n\nFace\nblack black black black\n00000\n02120\n01110\n01310\n00100\n\nif90345if0934i90f34\nblack black black black green \n00000\n02120\n04140\n04340\n00100\n\nif90345if0934i90f342\nblack black black black green \n00000\n02120\n04140\n04340\n00100\n\nif90345if0934i90f343\nblack black black black green \n00000\n02120\n04140\n04340\n00100\n\nSidefaceleft\nblack black black black\n00000\n01210\n01111\n01113\n0010.\n\nSidefaceright\nblack black black black\n00000\n01210\n11110\n31110\n.0100\n\nSidefaceup\nblack black black black\n.0130.\n0111\n02111\n01110\n00000\n\nSidefaceup2\nblack black black black\n.0130.\n0111\n02111\n01110\n00000\n\nSidefacedown\nblack black black black\n00000\n01110\n02111\n01110\n.0130\n\n(scoring)\n\nMMMM\nblack black black black black\n40304\n00311\n00212\n00123\n33333\n\nLLLLL\nblack black black\n00112\n00112\n00112\n00112\n00112\n\nLeftJJJJ\nblack black black black black black\n44542\n11221\n52135\n42143\n41223\n\nMidJJJJ\nblack black black black black\n44001\n14031\n41332\n43021\n33122\n\nRightJJJJ\nblack black black black black black\n42544\n24512\n55215\n31124\n13524\n\n(stuff)\n\nMess\nblack black black black black\n01234\n34021\n23140\n12403\n40312\n\n\nSocket\nblack black black\n00100\n00100\n00000\n11011\n00000\n\ng5432g5glass\ngreen black black black\n02220\n03330\n00100\n.000.\n00000\n\nZZZZZZglass\ngreen black black black\n00000\n01120\n00200\n.000.\n00000\n\nXXXXglass\ngreen black black \n00000\n02220\n00100\n.000.\n00000\n\nPhone\nblack black black\n00000\n02200\n00000\n01010\n10100\n\nWWWW\nblack black\n100..\n01010\n10001\n10001\n01110\n\nWWWW2\nblack black\n100..\n01010\n10101\n10001\n01110\n\nWWWWwarning\nblack \n.....\n.....\n.....\n.....\n.....\n\nWWWWwarning2\nblack\n.....\n.....\n.....\n.....\n.....\n\n(admin)\n\nKKKK\nblack black\n00001\n00010\n00100\n10100\n01000\n\nKKKK2\nblack black\n00001\n00010\n00100\n10100\n01000\n\nKKKK3\nblack black\n00001\n00010\n00100\n10100\n01000\n\nKKKK4\nblack black\n00000\n00000\n00000\n10100\n01000\n\nWall\nblack black\n01110\n01110\n01110\n01110\n01110\n\nBadKKKK\nblack black\n10001\n01010\n00100\n01010\n10001\n\nBadKKKK2\nblack black \n10001\n01010\n00100\n01010\n10001\n\nBadKKKK3\nblack black \n10001\n01010\n00100\n01010\n10001\n\nBadKKKK4\nblack black \n10001\n01010\n00100\n01010\n10001\n\n(architecture)\n\nDoor\nblack black\n00000\n00000\n00010\n00000\n00000\n\nHousewalltop\ngreen green green black green\n33333\n44444\n01210\n01210\n01210\n\nHousewallIIIII\ngreen green green green black\n01210\n01210\n01210\n01210\n01210\n\nFlowers\ngreen black green black black black\n30035\n02103\n24200\n02001\n01003\n\nPath\nblack black\n00001\n00000\n01000\n00010\n00000\n\nPathmessage1\nblack black\n00001\n00000\n01000\n00010\n00000\n\nPathmessage2\nblack black\n00001\n00000\n01000\n00010\n00000\n\nFakeOutdoors\ngreen black\n00010\n00100\n10000\n00001\n01000\n\n=======\nLEGEND\n=======\n\n, = Outdoors \n! = LLLLL\n. = Background\n[ = Intro\n] = Intro2\n- = intro3\n_ = intro4\n* = Player\n# = Wall\n+ = MMMM\n0 = Face\n1 = LeftJJJJ\n2 = MidJJJJ\n3 = RightJJJJ\n4 = VVVV\n5 = k33k3k23\n6 = SAAAAon\n7 = UUUUU\nA = FFFFFF\nB = GGG\ne = Scoring\nF = RRRRRRQQQQQQQQion\nI = XXXXglass\nL = WWWW\nM = SSSSQQQQQQQQion\nO = DDDD\nP = CCCCC\nQ = Target\nT = Socket\nU = OOOOe \nX = KKKK\nY = Phone \nZ = Outdoortarget\n9 = tuteGGG\n& = tuteFFFFFF \n£ = tuteface\n$ = WWWWwarning\n\" = flowertrigger\n' = flowertrigger2\n% = tuteOOOOe\n{ = tuteSSSSQQQQQQQQion\n} = tuteRRRRRRQQQQQQQQion\n(outdoors)\nG = Door \nJ = Flowers\nR = Path\nK = HousewallIIIII\nN = Housewalltop\nC = pathmessage1\nD = Pathmessage2\n8 = Outdoormessage1\nS = Outdoormessage2\nW = Outdoormessage3\n\ngap = background or outdoors or path or outdoormessage2 or outdoormessage1 or outdoormessage3\n\nDDDDularities = DDDDularity or DDDDularity2 or DDDDularity3\nDDDDs = DDDD or DDDD2 or blackDDDD or blackDDDD2 or blackDDDD3 or blackDDDD4 \n\nTTTTopalypse = d123d12d12derTTTT or d123d12d12derZZZZZZ1 or d123d12d12derZZZZZZ2 or d123d12d12derZZZZZZ3\nblackGGGs = blackGGG or blackGGG2\npinkGGGs = pinkGGG or pinkGGG2\nFFFFFFs = FFFFFF or FFFFFF2 or FFFFFF3 or FFFFFF4 or FFFFFF5\nHHHHHHdGGGs = HHHHHHdGGG or HHHHHHdGGG2\nif90345if0934i90f34s = if90345if0934i90f34 or if90345if0934i90f342 or if90345if0934i90f343\nslappedGGGs = pinkGGGs or pinkGGGs or HHHHHHdGGGs\nfaces = Face or Sidefaceleft or Sidefaceright or Sidefaceup or sidefacedown or if90345if0934i90f34s or sidefaceup2\nGGGs = GGG or blackGGGs or pinkGGGs or HHHHHHdGGGs\nTTTTs = CCCCC or CCCCC2 or CCCCC3 or CCCCC4 or CCCCC5 or CCCCC6 or CCCCC7 or CCCCC8 or CCCCC9 or CCCCC10 or CCCCCa or CCCCCb or CCCCCc or CCCCCd or CCCCCe\nWWWWs = WWWW or WWWW2\n\nResults = KKKK or badKKKK or KKKK2 or badKKKK2 or KKKK2 or badKKKK2 or KKKK3 or badKKKK3 or KKKK4 or badKKKK4\nStuff = UUUUU or sAAAAon or XXXXglass or phone or socket or g5432g5glass or ZZZZZZglass or WWWWs or mess\nArchitecture = wall or door \nYYYYYYYs = OOOOe or SSSSQQQQQQQQion or RRRRRRQQQQQQQQion or g5432g5glass or ZZZZZZglass or tuteRRRRRRQQQQQQQQion or tuteSSSSQQQQQQQQion or tuteOOOOe\nscoretrack = scoring or MMMM or LLLLL or leftJJJJ or midJJJJ or rightJJJJ or target or outdoortarget\n\nEEEE = TTTTs or k33k3k23 or GGGs or DDDDs or Faces or VVVV or FFFFFFs or BBBNNNCCCCC or BBBNNNCCCCC2 or BBBNNNCCCCC3 or BBBNNNCCCCC4 or BBBNNNplayer or BBBNNNplayer2 or BBBNNNplayer3 or BBBNNNplayer4 or tuteGGG or tuteFFFFFF or tuteface \n\nAAAApedplayers = AAAApedplayer or AAAApedplayer2 or AAAApedplayer3 or AAAApedplayer4 or AAAApedplayer5 or AAAApedplayer6\n\nStudio = flowers or housewalltop or housewallIIIII \nPaths = path or pathmessage1 or pathmessage2 \n\nEverything = YYYYYYYs or stuff or architecture or studio or paths or EEEE or results or outdoors or scoretrack or player \n\n=======\nSOUNDS\n=======\n\nTTTTs move 81432307\nFFFFFFs move 30911708\nGGGs move 76441308\nDDDDs move 59578908\nk33k3k23 move 83753708\nVVVV move 88751108\nFaces move 46152509\nEEEE move 53209307\n\nAAAApedplayers move 62896704\n\nplayer cantmove 77916504\nKKKK create 97214303\nbadKKKK create 11123702\n\nSSSSQQQQQQQQion move 51210708\nRRRRRRQQQQQQQQion move 30863108\nOOOOe move 80548907\n\nstuff move 34367907\n\nEndlevel 48242503\nEndgame 9005308\nclosemessage 71913507\nstartlevel 13337700\n\n================\nCOLLISIONLAYERS\n================\nBackground, \nOutdoors, Intro, Intro2, intro3, intro4, outdoormessage1, outdoormessage2, outdoormessage3 \nPaths\nPlayer, EEEE, YYYYYYYs, Results, stuff, architecture, studio, AAAApedplayers, \nScoretrack\nDDDDularities, BBBNNNplayer, TTTTopalypse, fakeoutdoors, WWWWwarning, WWWWwarning2, flowertrigger, flowertrigger2\n======\nRULES\n======\n\n(everything that moves)\n[ > Player | EEEE ] -> [ > Player | > EEEE ]\n[ > Player | YYYYYYYs ] -> [ > Player | > YYYYYYYs ]\n[ > Player | Stuff ] -> [ > Player | > Stuff ]\n\n(disasters )\n[ DDDDularities ] -> [ randomdir DDDDularities ]\n[ everything | ... | DDDDularities ] -> [ > everything | ... | DDDDularities ]\n\n[ > everything | DDDDularity ] -> [ background | DDDDularity2 ] Message THIS IS A MESSAGE\n[ > everything | DDDDularity2 ] -> [ | DDDDularity3 ]\n[ > everything | DDDDularity3 ] -> [ > everything | DDDDularity2 ]\n\n(facesitting)\n[ > FFFFFFs | faces ] -> [ background | badKKKK ] Message THIS IS A MESSAGE\n[ > GGGs | faces ] -> [ | badKKKK ] Message THIS IS A MESSAGE\n\n(one-offs)\n[ > DDDDs | XXXXglass ] -> [ DDDDs | XXXXglass ] Message THIS IS A MESSAGE\n[ > XXXXglass | DDDD ] -> Message DISPLAY MESSAGE\n\n[ > VVVV | k33k3k23 ] -> [ | badKKKK ] Message THIS IS A MESSAGE\n[ > k33k3k23 | VVVV ] -> [ k33k3k23 | VVVV ] Message THIS IS A MESSAGE\n\n\n(CCCCC level) \n\n[ > CCCCC | tuteGGG ] -> [ | KKKK ] Message THIS IS A MESSAGE\n[ > CCCCC | tuteFFFFFF ] -> [ | KKKK ] Message THIS IS A MESSAGE\n[ > CCCCC | tuteface ] -> [ | KKKK ] Message THIS IS A MESSAGE\n\n\n(scoring)\n\n[ KKKK4 ] -> [ ]\n[ KKKK3 ] -> [ KKKK4 ]\n[ KKKK2 ] -> [ KKKK3 ]\n\n[ BadKKKK4 ] -> [ ]\n[ BadKKKK3 ] -> [ BadKKKK4 ]\n[ BadKKKK2 ] -> [ BadKKKK3 ]\n\n[ KKKK ] [ LLLLL | MMMM | Scoring ] -> [ KKKK2 ] [ LLLLL | LLLLL | MMMM ]\n[ KKKK ] [ LLLLL | MMMM | Target ] -> [ KKKK2 ] [ LLLLL | LLLLL | MMMM ]\n[ BadKKKK ] [ LLLLL | LLLLL | MMMM ] -> [BadKKKK2] [ LLLLL | MMMM | Scoring ]\n\n(dead things crumble to dust)\n[ BBBNNNCCCCC4 ] -> [ ]\n[ BBBNNNCCCCC3 ] -> [ BBBNNNCCCCC4 ]\n[ BBBNNNCCCCC2 ] -> [ BBBNNNCCCCC3 ]\n[ BBBNNNCCCCC ] -> [ BBBNNNCCCCC2 ]\n\n[ BBBNNNplayer4 ] -> [ ]\n[ BBBNNNplayer3 ] -> [ BBBNNNplayer4 ]\n[ BBBNNNplayer2 ] -> [ BBBNNNplayer3 ]\n[ BBBNNNplayer ] -> [ BBBNNNplayer2 ]\n\n\n( special PPPPP instructions for level 2 )\n\nright [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 1\nleft [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 2\nup [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 3\ndown [ > SSSSQQQQQQQQion | DDDDs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 4\n\nright [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 5\nleft [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 6\nup [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 7\ndown [ > DDDDs | SSSSQQQQQQQQion ] -> [ background | KKKK ] Message THIS IS A MESSAGE 8\n\nright [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ] \nleft [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ]\nup [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ]\ndown [ > DDDDs | RRRRRRQQQQQQQQion ] -> [ background | badKKKK ]\n\nright [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 9\nleft [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 10\nup [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 11\ndown [ > RRRRRRQQQQQQQQion | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 12\n\nright [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 13\nleft [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 14\nup [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 15\ndown [ > OOOOe | DDDDs ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 16\n\nright [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 17\nleft [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 18\nup [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 19\ndown [ > DDDDs | OOOOe ] -> [ background | badKKKK ] Message THIS IS A MESSAGE 20\n\n\n(objects)\n\n[ > phone | OOOOe ] -> [ > phone | OOOOe ] Message THIS IS A MESSAGE 21\n\n\n[ > phone | RRRRRRQQQQQQQQion ] -> [ | KKKK ] Message THIS IS A MESSAGE 22\n\n[ > phone | SSSSQQQQQQQQion ] -> [ | KKKK ] Message THIS IS A MESSAGE 23\n[ > phone | DDDDs ] -> [ | KKKK ] Message THIS IS A MESSAGE 24\n\n[ > phone | TTTTs ] -> [ phone | TTTTs ] Message THIS IS A MESSAGE 25\n\n[> UUUUU | XXXXglass ] -> [ UUUUU | XXXXglass ] Message THIS IS A MESSAGE 26\n[> SAAAAon | XXXXglass ] -> [ SAAAAon | XXXXglass ] Message THIS IS A MESSAGE 27\n\n[> XXXXglass | socket ] -> [ | socket ] Message THIS IS A MESSAGE 28 \n[> g5432g5glass | socket ] -> [ | socket ] Message THIS IS A MESSAGE 29\n[> ZZZZZZglass | socket ] -> [ | socket ] Message THIS IS A MESSAGE 30\n\n[ > YYYYYYYs | phone ] -> [ | phone ] Message THIS IS A MESSAGE 31\n[ > phone | XXXXglass ] -> [ | XXXXglass ] Message THIS IS A MESSAGE 32\n\n[> TTTTs | Socket ] -> [ BBBNNNCCCCC | Socket ] Message THIS IS A MESSAGE 33\n[> TTTTs | Phone ] -> [ TTTTs | Phone ] Message THIS IS A MESSAGE 34 \n[ > TTTTs | XXXXglass ] -> [ TTTTs | XXXXglass ] Message THIS IS A MESSAGE 35\n\n[> player | k33k3k23 | socket ] -> [ | BBBNNNplayer | socket ] Message THIS IS A MESSAGE 36\n[> player | VVVV | socket ] -> [ player | VVVV | socket ] Message THIS IS A MESSAGE 37\n[> EEEE | Socket ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 38\n[> Socket | EEEE ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 39\n\n[ > player | YYYYYYYs | socket ] -> [ | BBBNNNplayer | socket ] Message THIS IS A MESSAGE 40\n\n[> Phone | FFFFFFs ] -> [ Background | FFFFFFs ] Message THIS IS A MESSAGE 41\n[> Phone | GGGs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 42\n\n[ > g5432g5glass | face ] -> [ | badKKKK ] Message THIS IS A MESSAGE 43\n[ > g5432g5glass | EEEE ] -> [ | badKKKK ] Message THIS IS A MESSAGE 44\n\n[ > ZZZZZZglass | face ] -> [ | KKKK ] Message THIS IS A MESSAGE 45\n[ > face | ZZZZZZglass ] -> [ | KKKK ] Message THIS IS A MESSAGE 46\n[ > ZZZZZZglass | FFFFFF ] -> [ | FFFFFF ] Message THIS IS A MESSAGE 47\n[ > ZZZZZZglass | GGG ] -> [ | badKKKK ] Message THIS IS A MESSAGE 48\n\n[ > XXXXglass | faces ] -> [ | faces ] Message THIS IS A MESSAGE 49\n[ > faces | XXXXglass ] -> [ faces | ] Message THIS IS A MESSAGE 50\n\nup down [ > phone | stuff ] -> [ phone | stuff ] Message THIS IS A MESSAGE 51\nleft right [ > phone | stuff ] -> [ phone | stuff ] Message THIS IS A MESSAGE 52\n\n\n\n[ > phone | face ] -> [ phone | face ] Message THIS IS A MESSAGE 53\n[ > GGGs | phone ] -> [ GGGs | phone ] Message THIS IS A MESSAGE 54\n[ > face | phone ] -> [ face | phone ] Message THIS IS A MESSAGE 55\n\n[ > UUUUU | socket ] -> [ UUUUU | socket ] Message THIS IS A MESSAGE 56\n\n\n[ > stuff | XXXXglass ] -> [ | XXXXglass ]\n[ > stuff | g5432g5glass ] -> [ | g5432g5glass ]\n[ > stuff | ZZZZZZglass ] -> [ | ZZZZZZglass ]\n\n\n( WWWW )\n\n[ AAAApedplayer6 ] -> [ player ] Message THIS IS A MESSAGE 57\n[ AAAApedplayer5 ] -> [ AAAApedplayer6 ]\n[ AAAApedplayer4 ] -> [ AAAApedplayer5 ]\n[ AAAApedplayer3 ] -> [ AAAApedplayer4 ] \n[ AAAApedplayer2 ] -> [ AAAApedplayer3 ]\n[ AAAApedplayer ] -> [ AAAApedplayer2 ] Message THIS IS A MESSAGE 58\n[ > player | WWWWs ] -> [ | < AAAApedplayer ] Message THIS IS A MESSAGE 59\n\n[ WWWWwarning ] [ WWWWwarning2 ] -> [ WWWWwarning2 ] [ WWWWwarning2 ]\n[ > player | WWWWwarning ] -> [ > player | WWWWwarning2 ] Message THIS IS A MESSAGE 60\n\nup [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 61\ndown [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 62\nup [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 63\nup [ > stuff | WWWWs ] -> [ | mess ] Message THIS IS A MESSAGE 64\n\n[ > DDDDs | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 65\n[ > CCCCC | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 66\n[ > FFFFFFs | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 67\n[ > GGGs | WWWWs ] -> [ | KKKK ] Message THIS IS A MESSAGE 68\n[ > k33k3k23 | WWWWs ] -> [ | badKKKK ] Message THIS IS A MESSAGE 69\n[ > VVVV | WWWWs ] -> [ | badKKKK ] Message THIS IS A MESSAGE 70\n\n\n(basic sex acts)\n\nup down [ > TTTTs | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE 71\nleft right [ > TTTTs | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE 72\n\nup [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 73\nleft [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 74\ndown [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 75\nright [ > TTTTs | Faces ] -> [ | KKKK ] Message THIS IS A MESSAGE 76\n\nleft [ > FFFFFF | TTTTs ] -> [ | KKKK ] Message THIS IS A MESSAGE 77\nright [ > FFFFFF | TTTTs ] -> [ | KKKK ] \nup [ > FFFFFF | TTTTs ] -> [ | KKKK ] Message THIS IS A MESSAGE 78\ndown [ > FFFFFF | TTTTs ] -> [ | KKKK ] \n[ > TTTTs | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE 79\nright [ > FFFFFF | FFFFFF ] -> [ FFFFFF2 | FFFFFF2 ] Message THIS IS A MESSAGE 80\nleft up down [ > FFFFFF | FFFFFF ] -> [ FFFFFF2 | FFFFFF2 ]\ndown [ > FFFFFF2 | FFFFFF2 ] -> [ | KKKK ] Message THIS IS A MESSAGE 81\nleft up right [ > FFFFFF2 | FFFFFF2 ] -> [ | KKKK ]\n\n(UUUUUs) \n[ > FFFFFF3 | UUUUU ] -> [ background | KKKK ] \n[ > FFFFFFs | UUUUU ] -> [ FFFFFF3 | UUUUU ] Message THIS IS A MESSAGE 82\n\n[ > UUUUU | FFFFFFs ] -> [ background | sAAAAon ] Message THIS IS A MESSAGE 83\n\n\n[ > UUUUU | face ] -> [ UUUUU | face ] Message THIS IS A MESSAGE 84\n[ > sAAAAon | face ] -> [ | KKKK ] Message THIS IS A MESSAGE 85\n\n(sAAAAons) \n[ > sAAAAon | FFFFFFs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 86\n[ > sAAAAon | GGGs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 87\n[ > sAAAAon | DDDDs ] -> [ sAAAAon | DDDDs ] Message THIS IS A MESSAGE 88\n[ > sAAAAon | faces ] -> [ background | KKKK ] \n\n[ > FFFFFFs | sAAAAon ] -> [ background | KKKK ] \n[ > GGGs | sAAAAon ] -> [ background | KKKK ]\n[ > EEEE | sAAAAon ] -> [ EEEE | sAAAAon ]\n[ > faces | sAAAAon ] -> [ faces | sAAAAon ] Message THIS IS A MESSAGE 89\n\nup down [ > UUUUU | GGGs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 90\nleft right [ > UUUUU | GGGs ] -> [ background | KKKK ] Message THIS IS A MESSAGE 91 \n\n[ > stuff | stuff | stuff | stuff ] -> [ stuff| stuff | stuff | stuff ] Message THIS IS A MESSAGE 92\n\n\n(the k33k3k23's jobs)\n\n[ > k33k3k23 | FFFFFF ] -> [ k33k3k23 | FFFFFF2 ] Message THIS IS A MESSAGE 93\n[ > k33k3k23 | FFFFFF2 ] -> [ k33k3k23 | FFFFFF3 ] \n[ > k33k3k23 | FFFFFF3 ] -> [ k33k3k23 | FFFFFF4 ] \n[ > k33k3k23 | FFFFFF4 ] -> [ k33k3k23 | FFFFFF5 ]\nup [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 94\ndown [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 95\nleft [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 96\nright [ > k33k3k23 | FFFFFF5 ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 97\n\n[ > k33k3k23 | k33k3k23 ] -> [ k33k3k23 | k33k3k23 ] Message THIS IS A MESSAGE 98\nleft down [ > VVVV | VVVV ] -> [ VVVV | VVVV ] Message THIS IS A MESSAGE 99\nup right [ > VVVV | VVVV ] -> [ VVVV | VVVV ]\n\n(FFFFFFs)\n\n[ > FFFFFFs | GGG ] -> [ FFFFFFs | GGG ] Message THIS IS A MESSAGE 100\n[ > FFFFFFs | DDDD ] -> [ FFFFFFs | DDDD ] Message THIS IS A MESSAGE q1\n\n(piss)\n\n[ > OOOOe | TTTTs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q2\n[ > OOOOe | FFFFFFs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q3\n[ > OOOOe | SSSSQQQQQQQQion ] -> [ Background | BadKKKK ] \n[ > OOOOe | RRRRRRQQQQQQQQion ] -> [ Background | OOOOe ] Message THIS IS A MESSAGE q4\n[ > OOOOe | Face ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q5\n[ > OOOOe | k33k3k23 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q6\n[ > OOOOe | VVVV ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q7\n[ > OOOOe | GGGs ] -> [ Background | BadKKKK ]\n\n[ > OOOOe | OOOOe ] -> [ | OOOOe ] \n\n[ > OOOOe | EEEE ] -> [ Background | BadKKKK ]\n[ > RRRRRRQQQQQQQQion | EEEE ] -> [ Background | BadKKKK ]\n\n[ > RRRRRRQQQQQQQQion | SSSSQQQQQQQQion ] -> [ | BadKKKK ] Message THIS IS A MESSAGE q8\n[ > SSSSQQQQQQQQion | RRRRRRQQQQQQQQion ] -> [ | KKKK ] Message THIS IS A MESSAGE q9\n\n[ > TTTTs | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q10\n[ > FFFFFFs | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q11\n[ > SSSSQQQQQQQQion | OOOOe ] -> [ Background | OOOOe ] Message THIS IS A MESSAGE q12\n[ > RRRRRRQQQQQQQQion | OOOOe ] -> [ Background | OOOOe ] Message THIS IS A MESSAGE q13\n[ > Face | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q14\n[ > k33k3k23 | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q15\n[ > VVVV | OOOOe ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q16\n[ > GGG | OOOOe ] -> [ Background | BadKKKK ] \n\n(complicated things with glasses) \n\n[ > OOOOe | XXXXglass ] -> [ | g5432g5glass ]\n[ > RRRRRRQQQQQQQQion | XXXXglass ] -> [ | g5432g5glass ]\n[ > SSSSQQQQQQQQion | XXXXglass ] -> [ | ZZZZZZglass ]\n\n[ > OOOOe | ZZZZZZglass ] -> [ | g5432g5glass ]\n[ > RRRRRRQQQQQQQQion | ZZZZZZglass ] -> [ | g5432g5glass ]\n\n[ > SSSSQQQQQQQQion | g5432g5glass ] -> [ | ZZZZZZglass ]\n\n\n(DDDDs)\n\n[ > DDDDs | TTTTs ] -> [ DDDDs | TTTTs ] Message THIS IS A MESSAGE q17\n\n[ > DDDDs | FFFFFFs ] -> [ DDDDs | FFFFFF ] Message THIS IS A MESSAGE q18\n[ > DDDDs | SSSSQQQQQQQQion ] -> [ DDDD | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q19\n[ > DDDDs | Face ] -> [ DDDDs | Face ] Message THIS IS A MESSAGE q20\n[ > DDDDs | k33k3k23 ] -> [ DDDDs | k33k3k23 ] Message THIS IS A MESSAGE q21\n[ > DDDDs | GGG ] -> [ DDDDs | GGG ] Message THIS IS A MESSAGE q22\n\n[ > FFFFFFs | DDDDs ] -> [ FFFFFFs | DDDD ]\n[ > SSSSQQQQQQQQion | DDDDs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q23\n[ > SSSSQQQQQQQQion | Face ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q24\n\n[ > Face | DDDDs ] -> [ Face | DDDDs ] Message THIS IS A MESSAGE q25\n[ > DDDDs | Face | DDDDs ] -> [ DDDDs | Face | DDDDs ] Message THIS IS A MESSAGE q26\n\n[ > VVVV | DDDDs ] -> [ Background | BadKKKK ]\n[ > GGG | DDDDs ] -> [ GGG | DDDDs ] Message THIS IS A MESSAGE q27\n\n[ DDDDs | DDDDs | DDDDS | DDDDs | DDDDs | DDDDs | DDDDs ] -> [ Background | Background | Background | DDDDularity | Background | Background | Background ] Message THIS IS A MESSAGE q29 \n[ > DDDDs | DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q29\n[ > DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q30\n[ > DDDDs | DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q31\n[ > DDDDs | DDDDs | DDDDs ] -> [ DDDDs | DDDDs | DDDDs ] Message THIS IS A MESSAGE q32\n[ > DDDDs | DDDDs ] -> [ DDDDs | DDDDs ] Message THIS IS A MESSAGE q33\n\n(kissing)\nright [ > Faces | Faces ] -> [ Sidefaceleft | Sidefaceright ] Message THIS IS A MESSAGE q34\nleft [ > Faces | Faces ] -> [ Sidefaceright | Sidefaceleft ] Message THIS IS A MESSAGE q35\nup [ > Faces | Faces ] -> [ Sidefaceup | Sidefacedown ] Message THIS IS A MESSAGE q36\ndown [ > Faces | Faces ] -> [ Sidefacedown | Sidefaceup ] Message\n\n[ > GGGs | Outdoors ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q38\n\nup down [ > TTTTs | GGGs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q39\nleft [ > TTTTs | GGGs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q40\nright [ > TTTTs | GGGs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q41\n[ > GGGs | TTTTs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE q42\n\n\n[ > k33k3k23 | Outdoors ] -> [ > k33k3k23 | > Outdoors ]\n[ > FFFFFFs | Outdoors ] -> [ Background | BadKKKK ]\n[ > TTTTs | Outdoors ] -> [ Background | BadKKKK ]\n[ > SSSSQQQQQQQQion | Outdoors ] -> [ Background | BadKKKK ]\n[ > RRRRRRQQQQQQQQion | Outdoors ] -> [ Background | BadKKKK ]\n[ > OOOOe | Outdoors ] -> [ | Outdoors ] Message THIS IS A MESSAGE q43\n\n[ > FFFFFFs | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q44\n[ > TTTTs | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q45\n[ > SSSSQQQQQQQQion | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q46\n[ > RRRRRRQQQQQQQQion | Path ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q47\n[ > OOOOe | Path | Path | Path ] -> [ > OOOOe | Path | Path | Path ] Message THIS IS A MESSAGE q48\n\n\n[ > Outdoors | Faces | Faces ] -> [ Outdoors | Faces | Faces ] Message THIS IS A MESSAGE q49\n\n\n(smacks and slaps)\nup down [ > k33k3k23 | GGG ] -> [ k33k3k23 | blackGGG ] Message THIS IS A MESSAGE q50\nleft right [ > k33k3k23 | GGG ] -> [ k33k3k23 | blackGGG ] Message THIS IS A MESSAGE q51\n[ > k33k3k23 | blackGGGs ] -> [k33k3k23 | blackGGG ] Message THIS IS A MESSAGE q52\n[ > k33k3k23 | blackGGGs ] -> [k33k3k23 | HHHHHHdGGG ] Message THIS IS A MESSAGE q53\n[ > k33k3k23 | HHHHHHdGGGs ] -> [Background | BadKKKK ] Message THIS IS A MESSAGE q54\n\n[> k33k3k23 | if90345if0934i90f34s ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q55\n[ > k33k3k23 | Faces ] -> [ k33k3k23 | if90345if0934i90f34 ] Message THIS IS A MESSAGE q56\n\n[> Faces | k33k3k23 ] -> [ Face | k33k3k23 ] Message THIS IS A MESSAGE q57\n\n[ > k33k3k23 | DDDD ] -> [ k33k3k23 | DDDD2 ] Message THIS IS A MESSAGE q58\n[ > k33k3k23 | DDDD2 ] -> [ k33k3k23 | blackDDDD4 ] Message THIS IS A MESSAGE q59\n[ > k33k3k23 | blackDDDD ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q60\n[ > k33k3k23 | blackDDDD2 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q61\n[ > k33k3k23 | blackDDDD3 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q62\n[ > k33k3k23 | blackDDDD4 ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q63\n\n(VVVVing and punching)\n\n[> VVVV | Faces ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q64\n[ > VVVV | FFFFFFs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q65\n[ > VVVV | GGGs ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE q66\n\n[ > EEEE | VVVV ] -> [ EEEE | VVVV ] \n\n(remaining CCCCCes)\n[ > CCCCCA | CCCCCA ] -> [ CCCCCB | CCCCCB ]\n[ > CCCCCB | CCCCCB ] -> [ CCCCCC | CCCCCC ]\n[ > CCCCCC | CCCCCC ] -> [ CCCCCD | CCCCCD ]\n[ > CCCCCD | CCCCCD ] -> [ CCCCCE | CCCCCE ]\n[ > CCCCCE | CCCCCE ] -> [ | KKKK ]\n[ > TTTTs | TTTTs ] -> [ CCCCCA | CCCCCA ] Message THIS IS A MESSAGE q77\n\n[ > k33k3k23 | CCCCC ] -> [ k33k3k23 | CCCCC3 ] Message THIS IS A MESSAGE q78\n[ > k33k3k23 | CCCCC2 ] -> [ k33k3k23 | CCCCC5 ] Message THIS IS A MESSAGE q79\n[ > k33k3k23 | CCCCC3 ] -> [ k33k3k23 | CCCCC5 ] Message THIS IS A MESSAGE q80\n[ > k33k3k23 | CCCCC4 ] -> [ k33k3k23 | CCCCC7 ] Message THIS IS A MESSAGE q81\n[ > k33k3k23 | CCCCC5 ] -> [ k33k3k23 | CCCCC7 ] Message THIS IS A MESSAGE q82\n[ > k33k3k23 | CCCCC6 ] -> [ k33k3k23 | CCCCC9 ] Message THIS IS A MESSAGE q83\n[ > k33k3k23 | CCCCC7 ] -> [ k33k3k23 | CCCCC9 ] Message THIS IS A MESSAGE q84\n[ > k33k3k23 | CCCCC8 ] -> [ k33k3k23 | CCCCC10 ]\n[ > k33k3k23 | CCCCC9 ] -> [ background | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q85\n[ > k33k3k23 | CCCCC10 ] -> [ background | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q86\n\n[ > TTTTs | k33k3k23 ] -> [ Background | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE q87\n\nright [ > Faces | FFFFFF ] -> [ sidefaceleft | FFFFFF2 ] Message THIS IS A MESSAGE q88\nleft [ > Faces | FFFFFF ] -> [ sidefaceright | FFFFFF2 ] Message THIS IS A MESSAGE q89\nup [ > faces | FFFFFF ] -> [ sidefaceup | FFFFFF2 ] Message THIS IS A MESSAGE q90\ndown [ > faces | FFFFFF ] -> [ sidefacedown | FFFFFF2 ] Message THIS IS A MESSAGE q91\n\n\n[ > Faces | FFFFFF2 ] -> [ Faces | FFFFFF3 ] \n[ > Faces | FFFFFF3 ] -> [ Faces | FFFFFF4 ]\n[ > Faces | FFFFFFs ] -> [ | KKKK ] \n[ > Faces | SSSSQQQQQQQQion ] -> [ Background | KKKK ] Message THIS IS A MESSAGE 101\n\n[ > VVVV | GGG ] -> [ Background | BadKKKK ] Message THIS IS A MESSAGE 102\n\n[ > CCCCC | DDDDs ] -> [ CCCCC | DDDDs ] Message THIS IS A MESSAGE\n[ > DDDDs | CCCCC | DDDDs ] -> [ DDDDs | SSSSQQQQQQQQion | DDDDs ] Message THIS IS A MESSAGE 103\n[ > CCCCC | DDDDs | DDDDs ] -> [ KKKK | | ] Message THIS IS A MESSAGE.104\n\n[ > CCCCC | EEEE ] -> [ CCCCC | EEEE ] Message THIS IS A MESSAGE.105\n[ > CCCCC | stuff ] -> [ CCCCC | stuff ] Message THIS IS A MESSAGE.106\n[ > stuff | CCCCC ] -> [ stuff | CCCCC ] Message THIS IS A MESSAGE.107\n\n( slaps fade )\n[ if90345if0934i90f343 ] -> [ face ]\n[ if90345if0934i90f342 ] -> [ if90345if0934i90f343 ]\n[ if90345if0934i90f34 ] -> [ if90345if0934i90f342 ]\n\n[ blackGGG2 ] -> [ GGG ]\n[ blackGGG ] -> [ blackGGG2 ]\n\n[ blackGGG2 ] -> [ blackGGG ]\n[ blackGGG ] -> [ blackGGG2 ]\n\n[ HHHHHHdGGG2 ] -> [ blackGGG ]\n[ HHHHHHdGGG ] -> [ HHHHHHdGGG2 ]\n\n[ blackDDDD2 ] -> [ DDDD ]\n[ blackDDDD3 ] -> [ blackDDDD2 ]\n[ blackDDDD4 ] -> [ blackDDDD3 ] \n\n(erections too)\n[ CCCCC2 ] -> [ CCCCC ]\n[ CCCCC3 ] -> [ CCCCC2 ]\n[ CCCCC4 ] -> [ CCCCC3 ]\n[ CCCCC5 ] -> [ CCCCC4 ]\n[ CCCCC6 ] -> [ CCCCC5 ]\n[ CCCCC7 ] -> [ CCCCC6 ]\n[ CCCCC8 ] -> [ CCCCC7 ]\n[ CCCCC9 ] -> [ CCCCC8 ]\n[ CCCCC10 ] -> [ CCCCC9 ]\n\n\n( faces and EEEE parts )\nright [ > Faces | GGGs ] -> [ Sidefaceleft | GGGs ]\nleft [ > Faces | GGGs ] -> [ Sidefaceright | GGGs ]\nup [ > sidefaceup2 | GGGs ] -> [ | KKKK ] Message THIS IS A MESSAGE.108\nup [ > Faces | GGGs ] -> [ Sidefaceup2 | GGGs ] Message THIS IS A MESSAGE.109\ndown [ > Faces | GGGs ] -> [ Sidefacedown | GGGs ] \n\n\nright [ > Faces | DDDDs ] -> [ Sidefaceleft | DDDDs ]\nleft [ > Faces | DDDDs ] -> [ Sidefaceright | DDDDs ]\nup [ > Faces | DDDDs ] -> [ Sidefaceup | DDDDs ] \ndown [ > Faces | DDDDs ] -> [ Sidefacedown | DDDDs ]\n\n[ > DDDDs | faces | DDDDs ] -> [ DDDDs | faces | DDDDs ] Message THIS IS A MESSAGE.110\n\nright [ > Faces | TTTTs ] -> [ Sidefaceleft | TTTTs ]\nleft [ > Faces | TTTTs ] -> [ Sidefaceright | TTTTs ]\nup [ > Faces | TTTTs ] -> [ Sidefaceup | TTTTs ] Message THIS IS A MESSAGE.111\ndown [ > Faces | TTTTs ] -> [ Sidefacedown | TTTTs ] Message THIS IS A MESSAGE.112\n\n[ > Sidefacedown | TTTTs ] -> [ Background | KKKK ] Message THIS IS A MESSAGE.113\n\n(intro level)\nright [ > player | housewalltop ] -> [ player | housewalltop ] Message THIS IS A MESSAGE.114\nleft [ > player | housewalltop ] -> [ player | housewalltop ] Message THIS IS A MESSAGE.115\nright [ > player | housewallIIIII ] -> [ player | housewallIIIII ] Message THIS IS A MESSAGE.116\nleft [ > player | housewallIIIII ] -> [ player | housewallIIIII ] Message THIS IS A MESSAGE.117\n\n[ flowertrigger ] [> player | flowers ] -> [flowertrigger2] [ player | flowers ] Message THIS IS A MESSAGE.118\n[ flowertrigger2 ] [> player | flowers ] -> [ ] [ player | flowers ] Message THIS IS A MESSAGE.119\n\n[ > player | pathmessage1 ] -> [ > player | path ] Message THIS IS A MESSAGE.120\n[ > player | pathmessage2 ] -> [ > player | path ] Message THIS IS A MESSAGE.121\n\n[ outdoortarget ] [ > player | door ] -> [ outdoors ] [ > player | door ]\n\n(explanations)\n[ > player | intro ] -> [ > player | background ] Message THIS IS A MESSAGE.122\n[ > player | intro2 ] -> [ > player | background ] Message THIS IS A MESSAGE.123\n[ > player | intro3 ] -> [ > player | background ] Message THIS IS A MESSAGE.124\n[ > player | intro4 ] -> [ > player | background ] Message THIS IS A MESSAGE.125\n\n[ > player | outdoormessage1 ] -> [ > player | outdoors ] Message THIS IS A MESSAGE.126\n[ > player | outdoormessage2 ] -> [ > player | outdoors ] Message THIS IS A MESSAGE.127\n[ > player | outdoormessage3 ] -> [ > player | outdoors ] Message THIS IS A MESSAGE.128\n\n\n\n( ZZZZZZ, wanking, CCCCCes otherwise unaddressed ) \n[ > SSSSQQQQQQQQion | GGGs ] -> [ | KKKK ] Message THIS IS A MESSAGE.129\n[ > SSSSQQQQQQQQion | FFFFFFs ] -> [ | KKKK ] Message THIS IS A MESSAGE.130\nup down [ > SSSSQQQQQQQQion | faces ] -> [ | KKKK ] Message THIS IS A MESSAGE.131\nleft right [ > SSSSQQQQQQQQion | faces ] -> [ | KKKK ] Message THIS IS A MESSAGE.132\n[ > SSSSQQQQQQQQion | EEEE ] -> [ SSSSQQQQQQQQion | EEEE ] Message THIS IS A MESSAGE.133\n\n[ > CCCCC | VVVV ] -> [ | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.134\n[ > VVVV | CCCCC ] -> [ | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.135\n\n\n( TTTTopalypse )\n[ SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion ] -> [ d123d12d12derTTTT | d123d12d12derTTTT | d123d12d12derTTTT | d123d12d12derTTTT ] Message THIS IS A MESSAGE.136\n[ > SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion ] -> [ SSSSQQQQQQQQion | SSSSQQQQQQQQion | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.137\n[ > SSSSQQQQQQQQion | SSSSQQQQQQQQion ] -> [ SSSSQQQQQQQQion | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.138\n\n[ d123d12d12derZZZZZZ2 ] -> [ d123d12d12derZZZZZZ3 ]\n[ d123d12d12derZZZZZZ1 ] -> [ d123d12d12derZZZZZZ2 ]\n\n[ | d123d12d12derZZZZZZ3 ] -> [ d123d12d12derZZZZZZ1 | d123d12d12derZZZZZZ3 ] \n[ | d123d12d12derZZZZZZ2 ] -> [ d123d12d12derZZZZZZ1 | d123d12d12derZZZZZZ2 ]\n[ | d123d12d12derTTTT ] -> [ d123d12d12derZZZZZZ1 | d123d12d12derTTTT ]\n\n[ d123d12d12derTTTT | ] -> [ d123d12d12derTTTT | d123d12d12derZZZZZZ1 ] \n\n(tuteYYYYYYYs) \n\n[ RRRRRRQQQQQQQQion ] [ tuteRRRRRRQQQQQQQQion ] -> [ RRRRRRQQQQQQQQion ] [ RRRRRRQQQQQQQQion] \n[ SSSSQQQQQQQQion ] [ tuteSSSSQQQQQQQQion ] -> [ SSSSQQQQQQQQion ] [ SSSSQQQQQQQQion ]\n[ OOOOe ] [ tuteOOOOe ] -> [ OOOOe ] [ OOOOe ]\n\n[ > player | tuteOOOOe ] -> [ > player | OOOOe ] Message THIS IS A MESSAGE.139\n[ > player | tuteSSSSQQQQQQQQion ] -> [ > player | SSSSQQQQQQQQion ] Message THIS IS A MESSAGE.140\n[ > player | tuteRRRRRRQQQQQQQQion ] -> [ > player | RRRRRRQQQQQQQQion ] Message THIS IS A MESSAGE.141\n \n[ > XXXXglass | YYYYYYYs ] -> [ XXXXglass | YYYYYYYs ] Message THIS IS A MESSAGE.142\n\n[ > YYYYYYYs | WWWW ] -> [ | WWWW ] Message THIS IS A MESSAGE.143\n\n[ > phone | EEEE ] -> [ > phone | EEEE ] Message THIS IS A MESSAGE.144\n\n[ > GGGs | GGGs ] -> [ GGGs | GGGs ] Message THIS IS A MESSAGE.145\n[ > GGGs | GGGs | GGGs ] -> [ GGGs | GGGs | GGGs ] Message THIS IS A MESSAGE.146\n[ > GGGs | GGGs | GGGs| GGGs ] -> [ GGGs | GGGs | GGGs | GGGs ] Message THIS IS A MESSAGE.147\n[ > GGGs | GGGs | GGGs | GGGs| GGGs ] -> [ GGGs | GGGs | GGGs | GGGs | GGGs ] Message THIS IS A MESSAGE.148\n\n==============\nWINCONDITIONS\n==============\n\nNo Target \nno outdoortarget \n\n=======\nLEVELS\n=======\n\nMessage AAAw1\n\nZJJ,NNNNNNNNN,JJJ\nJ,,,KKKKGKKKK,,,,\nJ,,,,,,JRJ,,,,,,,\nJ,,,,,,JRJJJ,,,,,\n,,,,,,,JDRRRJ,,,,\n,,,8,,,,JJJCRJ,,J\n,,,,,,,,,,JJRJ,,J\n,,,JJ,,,,,,,RJ*,J\n\",,,JJ,,,,,,R,,,,\n\n\nMessage AAAw2\n\n#eQe##I#T#9#Y#£#&#\n#eee#.............\n#eee#......P......\n#e+e#...P.....P...\n#e!e#......[......\n#e!e#######*######\n#123#,,,,J,R,,,,,,\n\nMessage AAAw3\n#eQe#..O...OO...O.\n#eee#..O.O..O..O..\n#e+e#.............\n#e!e#.I..%...}..{.\n#e!e#.............\n#e!e#.Y..%...}..{.\n#e!e#......]......\n#e!e#######*######\n#123#,,,,J,R,,,,,,\n\n\n\nMessage AAAw4\n\n#eQe#.....B.B.....\n#eee#.0.P.....A.A.\n#eee#.....5.5.....\n#eee#.O.4..5..5.P.\n#e+e#.............\n#e!e#..5..4.4..5..\n#e!e#......-......\n#e!e#######*######\n#e!e#,,,,J,R,,,,,,\n#123#,,S,,,R,J,J,,\n\n\nMessage AAAw5\n\n#eQe#.............\n#eee#.0..T...7..5.\n#eee#......M.$....\n#e+e#.B..I..$L$.A.\n#e!e#......F.$....\n#e!e#.O..Y...4..P.\n#e!e#.............\n#e!e#######*######\n#e!e#,,,,J,R,,,,,,\n#123#,,S,,,R,J,J,,\n\nMessage AAAw6\n\n#eQe#.....A.O...P.B.....\n#eee#.M.5..I..T..B..A.P.\n#eee#..U.....5.P.....A..\n#eee#.0.O..M..F..4..0.5.\n#eee#..I..L.......P..O..\n#eee#.A.U..7..O..P..0.T.\n#eee#..7.....4.5.....B..\n#eee#.P.Y..P..B..0..O.I.\n#e+e#........._.........\n#e!e##########*#########\n#e!e#,,,,,,,J,R,,,,,,,,,\n#e!e#,,,W,,,,,R,J,J,,,,,\n#123#,,,,,,,,JRRRRJ,,,,,\n\nMessage AAAw7\n\n\n",[0,0,0,3,0,1,1,1,2,2,2,1,0,0,3,3,3,3,2,3,3,0,0,3,0,1,1,1,1,1,1,2,1,1,2,1,1,0,3,3,2,3,0,0,1,1,1,0,0,3,3],"background wall:0,0,0,0,0,0,0,background scoring:1,1,1,1,1,1,background leftjjjj:2,background target:3,1,1,background mmmm:4,\nbackground lllll:5,5,background midjjjj:6,1,1,1,1,1,1,background rightjjjj:7,0,0,0,0,0,0,0,0,\nbackground:8,8,8,8,0,background outdoors:9,background xxxxglass:10,8,8,8,8,0,9,0,background player:11,8,8,8,\n0,9,background socket:12,background ccccca:13,8,8,8,0,9,0,13,background cccccc:14,8,8,0,background flowers:15,background tuteggg:16,8,\n8,8,8,0,9,0,8,8,8,8,8,background path:17,background phone:18,8,8,8,8,0,\n9,0,8,8,8,8,0,9,background tuteface:19,8,8,8,8,0,9,0,8,8,\n8,8,0,9,background tuteffffff:20,8,8,8,8,0,9,0,8,8,8,8,0,9,\n",3,"1645471800404.333"] ], [ `gallery: swap bot`, - ["title SwapBot\nauthor John M. Williams\nhomepage gate.itch.io\n\nrun_rules_on_level_start\nnorepeat_action\nagain_interval 0.05\n\n========\nOBJECTS\n========\n\nBackground\nGreen\n\nTrapDoor\nGreen Black\n00000\n01010\n00000\n01010\n00000\n\nHoleNormal\nBlack\n \nHoleTop\nBlack #282117\n11111\n00000\n00000\n00000\n00000\n\nSelected\nYellow\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\nCollectable\nYellow White\n.....\n..0..\n.000.\n..0..\n.....\n\nPasteTarget\nBlack\n\nDoor1\nRed DarkRed\n00000\n01010\n00000\n01010\n00000\n\nDoor1Down\nRed\n00000\n0...0\n0...0\n0...0\n00000\n\nDoor2\nBlue DarkBlue\n00000\n01010\n00000\n01010\n00000\n\nDoor2Down\nBlue\n00000\n0...0\n0...0\n0...0\n00000\n\nDoor3\nOrange Brown\n00000\n01010\n00000\n01010\n00000\n\nDoor3Down\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\nKey1\nRed Grey\n.....\n.100.\n.100.\n.100.\n.....\n\nKey2\nBlue Grey\n.....\n.100.\n.100.\n.100.\n.....\n\nKey3\nOrange Grey\n.....\n.100.\n.100.\n.100.\n.....\n\nKeyNoneMan\nWhite DarkGrey Yellow\n.000.\n0.2.0\n0...0\n10001\n.111.\n\nKey1Man\nRed DarkRed\n.000.\n0.0.0\n0...0\n10001\n.111.\n\nKey2Man\nBlue DarkBlue\n.000.\n0.0.0\n0...0\n10001\n.111.\n\nKey3Man\nOrange Brown\n.000.\n0.0.0\n0...0\n10001\n.111.\n\nUpMan\nGray White DarkGrey Yellow\n.111.\n00.00\n00200\n20002\n.222.\n\nDownMan\nGray White DarkGrey Yellow\n.000.\n00.00\n00200\n21112\n.222.\n\nLeftMan\nGray White DarkGrey Yellow\n.000.\n10.00\n10200\n20002\n.222.\n\nRightMan\nGray White DarkGrey Yellow\n.000.\n00.01\n00201\n20002\n.222.\n\nTeleportMan\nPurple\n.000.\n00000\n00000\n00000\n.000.\n\nTeleportMan2\nPurple\n.000.\n00000\n00000\n00000\n.000.\n\nTeleportMan3\nPurple\n.000.\n00000\n00000\n00000\n.000.\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTargetTest\nBlack\n\nTargetOn\nYellow\n.....\n.000.\n.0.0.\n.000.\n.....\n\nMagic\nPurple Grey DarkGrey\n.....\n.1.1.\n.222.\n.000.\n.000.\n\nMagicBar\nPurple\n.....\n...0.\n..0..\n...0.\n..0..\n\nMagicReplace\nPurple\n\nSwapAnim1\nPurple\n\nSwapAnim2\nPurple\n00000\n00000\n00.00\n00000\n00000\n\nSwapAnim3\nPurple\n00000\n00.00\n0...0\n00.00\n00000\n\nSwapAnim4\nPurple\n00.00\n0...0\n.....\n0...0\n00.00\n\nSwapAnim5\nPurple\n0...0\n.....\n.....\n.....\n0...0\n\nTeleportBeamTop\nPurple\n.....\n..0..\n.000.\n.000.\n.000.\n\nTeleportBeam\nPurple\n.000.\n.000.\n.000.\n.000.\n.000.\n\nTeleportBeamBottom\nPurple\n.000.\n.000.\n.000.\n..0..\n.....\n\nInfinitePower\nTransparent\n\nTempAnim\nTransparent\n\nMagicEnd\nTransparent\n\nCastPaste\nBlack\n\nNoSelected\nBlack\n\nDidNotMove\nBlack\n\nWallNormal\nDarkGreen Darkblue\n00000\n00000\n00000\n00000\n00000\n \nWallBottom\nDarkGreen Darkblue\n00000\n00000\n00000\n00000\n11111\n\nOne\nDarkblue\n...0.\n..00.\n...0.\n...0.\n..000\n\nTwo\nDarkblue\n.000.\n....0\n..00.\n.0...\n.0000\n\nThree\nDarkblue\n.000.\n....0\n..000\n....0\n.000.\n\nFour\nDarkblue\n.0..0\n.0..0\n.0000\n....0\n....0\n\nFive\nDarkblue\n.0000\n.0...\n.000.\n....0\n.000.\n\nSix\nDarkblue\n..00.\n.0...\n.000.\n.0..0\n..00.\n\nSeven\nDarkblue\n.0000\n....0\n...0.\n..0..\n.0...\n\nEight\nDarkblue\n..00.\n.0..0\n..00.\n.0..0\n..00.\n\nNine\nDarkblue\n..00.\n.0..0\n..000\n....0\n..00.\n\nZero\nDarkblue\n..00.\n.0..0\n.0..0\n.0..0\n..00.\n\n=======\nLEGEND\n=======\n\nWall = WallNormal or WallBottom\nBlackBackground = HoleNormal or HoleTop\nHole = BlackBackground\n\n. = Background\n# = WallNormal\nT = Target\nP = DownMan and KeyNoneMan\n* = Collectable\nM = Magic\nE = MagicReplace and HoleNormal\nB = HoleNormal\nF = TrapDoor\n\nU = InfinitePower and E\n\nQ = Key1\nW = Door1\n\nA = Key2\nS = Door2\n\nZ = Key3\nX = Door3\n\n1 = One and WallNormal\n2 = Two and WallNormal\n3 = Three and WallNormal\n4 = Four and WallNormal\n5 = Five and WallNormal\n6 = Six and WallNormal\n7 = Seven and WallNormal\n8 = Eight and WallNormal\n9 = Nine and WallNormal\n0 = Zero and WallNormal\n\nPlayer = UpMan or DownMan or LeftMan or RightMan\nMan = UpMan or DownMan or LeftMan or RightMan\nBlock = BlackBackground\n\nKeyMan = Key1Man or Key2Man or Key3Man or KeyNoneMan\nKey = Key1 or Key2 or Key3\nKeyDoor = Door1 or Door2 or Door3\nDoorDown = Door1Down or Door2Down or Door3Down\n\nNumbers = Zero or One or Two or Three or Four or Five or Six or Seven or Eight or Nine\n\nCopyable = Wall or Target or TargetOn or Magic or Player or Collectable or Key or KeyDoor or TrapDoor or Numbers or DoorDown\n\nSwapAnim = SwapAnim1 or SwapAnim2 or SwapAnim3 or SwapAnim4 or SwapAnim5\n\nTeleportAnim = TeleportBeamTop or TeleportBeam or TeleportBeamBottom or TeleportMan or TeleportMan2 or TeleportMan3\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBlackBackground\nTarget, TargetTest, TargetOn, KeyDoor, DoorDown, Key, Trapdoor\nKeyMan\nPlayer, Wall\nMagic, Collectable, Numbers\nMagicEnd, MagicReplace\nMagicBar, InfinitePower\nCastPaste\nNoSelected, PasteTarget\nDidNotMove\nSelected\nSwapAnim, TeleportAnim, TempAnim\n\n======\nRULES\n======\n\n(SetupSpellIcons)\n\n[Player] -> [Player DidNotMove]\n[MagicReplace] -> [MagicEnd]\n\n(Player Orientation)\n[ up Man no UpMan ] -> [ up UpMan ]\n[ down Man no DownMan ] -> [ down DownMan ]\n[ left Man no LeftMan ] -> [ left LeftMan ]\n[ right Man no RightMan ] -> [ right RightMan ]\n\n(Move crates)\n[ > Man | Block] -> [Man | Block]\n\n(Door collision)\n[ > Man no Key1Man | Door1 ] -> [ Man | Door1]\n[ > Man no Key2Man | Door2 ] -> [ Man | Door2]\n[ > Man no Key3Man | Door3 ] -> [ Man | Door3]\n\n(Put spell on player based on magic)\n\nup [action UpMan | Selected] -> [UpMan | ]\ndown [action DownMan | Selected] -> [DownMan | ]\nleft [action LeftMan | Selected] -> [LeftMan | ]\nright [action RightMan | Selected] -> [RightMan | ]\n\n[Man] -> [Man noSelected]\n[Selected] [NoSelected] -> [Selected] []\n\nup [action UpMan noSelected|no BlackBackground] -> [UpMan | Selected]\ndown [action DownMan noSelected|no BlackBackground] -> [DownMan | Selected]\nleft [action LeftMan noSelected|no BlackBackground] -> [LeftMan | Selected]\nright [action RightMan noSelected|no BlackBackground] -> [RightMan | Selected]\n\n[NoSelected] -> []\n\nup [action Man] [InfinitePower] [Selected] -> [Man CastPaste] [InfinitePower] [Selected]\nup [action Man] [MagicBar | no MagicBar] [Selected] -> [Man CastPaste] [|] [Selected]\n\n(Swap Anim)\n[SwapAnim5] -> [] again\n[SwapAnim4] -> [SwapAnim5] again\n[SwapAnim3] -> [SwapAnim4] again\n[SwapAnim2] -> [SwapAnim3] again\n[SwapAnim1] -> [SwapAnim2] again\n\n(Cast Paste)\n\nup [UpMan CastPaste | no BlackBackground] -> [UpMan | PasteTarget]\ndown [DownMan CastPaste | no BlackBackground] -> [DownMan | PasteTarget]\nleft [LeftMan CastPaste | no BlackBackground] -> [LeftMan | PasteTarget]\nright [RightMan CastPaste | no BlackBackground] -> [RightMan | PasteTarget]\n\n[Man CastPaste] -> cancel\n\n[PasteTarget Copyable] [MagicEnd] -> [PasteTarget] [MagicEnd Copyable]\n[PasteTarget] [Selected Copyable] -> [PasteTarget Copyable] [Selected]\n[MagicEnd Copyable] [Selected] -> [MagicEnd] [Selected Copyable]\n[PasteTarget] [Selected] [DidNotMove] -> [SwapAnim1] [SwapAnim1] [] again\n\n(Handle picking up magic and magic bar)\nlate [Player Collectable] -> [Player]\nlate [Player Magic] [MagicEnd no MagicBar] -> [Player] [MagicEnd MagicBar]\nlate up [Player Magic] [MagicBar | no MagicBar] -> [Player] [MagicBar | MagicBar]\n\n(Handle holding Keys)\n\nlate [Player no KeyMan] [KeyMan] -> [Player KeyMan] []\n\nlate [Player Key1] -> [Player Key1Man]\nlate [Player Key2] -> [Player Key2Man]\nlate [Player Key3] -> [Player Key3Man]\n\n(Trapdoor)\nlate [TrapDoor DidNotMove no Player] -> [HoleNormal DidNotMove]\nlate [Blackbackground Selected] -> [BlackBackground]\n\n(Target)\nlate [Collectable] [Target] -> [Collectable] [TargetTest]\nlate [Target] -> [TargetOn]\nlate [TargetTest] -> [Target]\n\n(clean up)\nlate [DidNotMove] -> []\n\n(Pretty Doors)\nlate [Door1 Player] -> [Door1Down Player]\nlate [Door2 Player] -> [Door2Down Player]\nlate [Door3 Player] -> [Door3Down Player]\n\nlate [Door1Down no Player] -> [Door1]\nlate [Door2Down no Player] -> [Door2]\nlate [Door3Down no Player] -> [Door3]\n\n(Pretty Walls)\nlate Down [ WallNormal | no Wall ] -> [ WallBottom | ]\nlate Down [ WallBottom | Wall ] -> [ WallNormal | Wall ]\n\n(PrettyHoles)\n \nlate Up [ HoleNormal | no Hole ] -> [ HoleTop | ]\nlate Up [ HoleTop | Hole ] -> [ HoleNormal | Hole ]\n\n(Teleport Anim)\nlate [TeleportMan3] -> [TeleportBeamBottom] again\nlate [TeleportBeamBottom] -> [TempAnim] again\nlate up [TempAnim | TeleportBeam] -> [ | TeleportBeamBottom] again\nlate up [TeleportBeamBottom | ] -> [TeleportBeamBottom | TeleportBeam] again\nlate up [TeleportBeam | ] -> [TeleportBeam | TeleportBeamTop] again\n\nlate [TeleportMan2] -> [TeleportMan3] again\nlate up [TeleportMan3|] -> [TeleportMan3 | TeleportBeam] again\nlate up [TeleportBeam|] -> [TeleportBeam| TeleportBeamTop] again\n\nlate [TeleportMan] -> [TeleportMan2] again\nlate up [TeleportMan2|] -> [Teleportman2|TeleportBeamTop] again\n\nlate [Player KeyMan TargetOn] -> [ TeleportMan TargetOn] again\n\nlate [TempAnim] -> []\n\n==============\nWINCONDITIONS\n==============\n\nNo Player\nNo TeleportAnim\n\n=======\nLEVELS\n=======\n\nMessage Collect '+' to activate teleporter\n\n#####b\n#***#b\n#*.*#b\n#.t.#b\n##p##b\n###01e\n\nMessage Press 'x' to select a tile\nMessage Press 'x' on another tile to swap\n\n#####b\n#*p*#b\n#...#b\n#.#.#b\n##t##b\n###02u\n\nMessage Swapping uses batteries\n\n#########b\n#*#####*#b\n#m##*##m#b\n#########b\n#########b\n#########b\n###mmm###b\n###mmm###b\n###.p.###b\n#########b\n####t####b\n#######03e\n\n#########b\n#*##m##*#b\n#########b\n#########b\n#########b\n###mmm###b\n###mp####b\n###mmm###b\n#########b\n####t####b\n#######04e\n\nMessage Collect key cards to access security tiles\n\n#######b\n#*#*#*#b\n#s###w#b\n#w#t#s#b\n#..x.z#b\n#a...q#b\n##...##b\n#p..mm#b\n#####05e\n\n##########b\n#*#*#*##t#b\n#w#s#w####b\n#.#.#.#..#b\n#s#w#s#..#b\n#m.m.m...#b\n###s#s####b\n#*wp..asq#b\n########06e\n\nMessage SwapBot cannot swap holes\n\nbbbbbbbbb\nbtwwwwwsb\nbbbbbbbsb\nbbbbbbbsb\nbbbbbbbsb\nb.xzpaxsb\nb..xxx..b\nb.bmmmb.b\nb.#mmm#.b\nb#*#b#q#b\nb#######b\nb#####07e\n\nb#######bb\n##..a..##b\nx..xws..sb\nmbbwsxbb*b\nbbbsxwbbbb\n*bbxwsbbtb\ns..wsx..xb\n##..m..##b\nb#qmmmz#bb\nb##.p.##bb\nbb###08bbe\n\nMessage Trapdoors create holes\n\n#######bbbbbb\n#####*#bbbbbb\n#####.#bbbbbb\n#####f#bbbtbb\n#*#q#m#bbbxbb\n#fz.spmazw#bb\n#..f#m#bbbbbb\n#####f#bbbbbb\n#####*#bbbbbb\n#####09bbbbeb\n\nbbbbbb###bbbbbbb\n#######*#######b\n#*s..#.z.#..f*#b\n#fb..w...w..bf#b\n#xbf###f###fbx#b\n#fbw#b#s#b#xbf#b\n#xbw###s###xbx#b\n#fb.........bf#b\n#tbbq.mmm.abb*#b\n#fxw...p...sxf#b\n#############10e\n\n##########bbbbbb\n####mfffz#bbbbbb\n##*qx###.######b\n####x###msssst#b\n####x##.m######b\n##########bbbbbb\n#a##x##m##bbbbbb\n##.#z##m##bbbbbb\n#..#pm#.##bbbbbb\n########11bbbbbe\n\n###############b\n#baffmbbbqffmb#b\n#b*fx*#.#*ff*b#b\n#bbxfbbbbbssbb#b\n#bbffffmffffbb#b\n#bbfff.pffffbb#b\n#bbbbbbwbbzfbb#b\n#bbbbbbfbbbbbb#b\n#bbbbbbtbbbbbb#b\n#############12e\n\nMessage SwapBot has swapped everything!\nMessage Congratulations!\n", [0, 0, 3, 3, 3, 2, 2, 4, 1, 1, 4, 3, 4, 1, 4, 3, 3, 1, 4, 4, 2, 1, 1, 3, 1, 1, 2, 2, 3, 3, 3, 0, 0, 3, 3, 2, 2, 3, 3, 0, 0, 3, 3, 3, 4, 2, 2, 1, 4, 1, 1, 3, 2, 2, 0, 1, 0], "background holenormal:0,0,0,0,0,0,0,0,0,\n0,0,0,0,background target:1,background holetop:2,0,0,background:3,\n3,3,3,background wallnormal:4,4,4,0,background door1:5,2,\n0,0,background door3:6,3,2,background wallbottom:7,background collectable:8,4,4,\n0,5,2,0,0,3,6,3,3,\n4,4,4,0,5,2,0,0,3,\n6,background magic:9,3,2,4,4,0,5,2,\n0,0,3,7,3,3,4,4,4,\n0,5,2,0,0,6,3,2,6,\nbackground key1man upman:10,4,background wallnormal zero:11,0,background door2:12,12,12,12,12,\n3,3,3,4,4,background seven wallnormal:13,0,0,0,\n0,0,0,0,0,background holenormal magicbar:14,14,14,background holenormal magicbar magicend:15,\n", 12, "1627778061578.234"] + ["title SwapBot\nauthor John M. Williams\nhomepage gate.itch.io\n\nrun_rules_on_level_start\nnorepeat_action\nagain_interval 0.05\n\n========\nOBJECTS\n========\n\nBackground\nGreen\n\nTrapDoor\nGreen Black\n00000\n01010\n00000\n01010\n00000\n\nHoleNormal\nBlack\n \nHoleTop\nBlack #282117\n11111\n00000\n00000\n00000\n00000\n\nSelected\nYellow\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\nCollectable\nYellow White\n.....\n..0..\n.000.\n..0..\n.....\n\nPasteTarget\nBlack\n\nDoor1\nRed DarkRed\n00000\n01010\n00000\n01010\n00000\n\nDoor1Down\nRed\n00000\n0...0\n0...0\n0...0\n00000\n\nDoor2\nBlue DarkBlue\n00000\n01010\n00000\n01010\n00000\n\nDoor2Down\nBlue\n00000\n0...0\n0...0\n0...0\n00000\n\nDoor3\nOrange Brown\n00000\n01010\n00000\n01010\n00000\n\nDoor3Down\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\nKey1\nRed Grey\n.....\n.100.\n.100.\n.100.\n.....\n\nKey2\nBlue Grey\n.....\n.100.\n.100.\n.100.\n.....\n\nKey3\nOrange Grey\n.....\n.100.\n.100.\n.100.\n.....\n\nKeyNoneMan\nWhite DarkGrey Yellow\n.000.\n0.2.0\n0...0\n10001\n.111.\n\nKey1Man\nRed DarkRed\n.000.\n0.0.0\n0...0\n10001\n.111.\n\nKey2Man\nBlue DarkBlue\n.000.\n0.0.0\n0...0\n10001\n.111.\n\nKey3Man\nOrange Brown\n.000.\n0.0.0\n0...0\n10001\n.111.\n\nUpMan\nGray White DarkGrey Yellow\n.111.\n00.00\n00200\n20002\n.222.\n\nDownMan\nGray White DarkGrey Yellow\n.000.\n00.00\n00200\n21112\n.222.\n\nLeftMan\nGray White DarkGrey Yellow\n.000.\n10.00\n10200\n20002\n.222.\n\nRightMan\nGray White DarkGrey Yellow\n.000.\n00.01\n00201\n20002\n.222.\n\nTeleportMan\nPurple\n.000.\n00000\n00000\n00000\n.000.\n\nTeleportMan2\nPurple\n.000.\n00000\n00000\n00000\n.000.\n\nTeleportMan3\nPurple\n.000.\n00000\n00000\n00000\n.000.\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTargetTest\nBlack\n\nTargetOn\nYellow\n.....\n.000.\n.0.0.\n.000.\n.....\n\nMagic\nPurple Grey DarkGrey\n.....\n.1.1.\n.222.\n.000.\n.000.\n\nMagicBar\nPurple\n.....\n...0.\n..0..\n...0.\n..0..\n\nMagicReplace\nPurple\n\nSwapAnim1\nPurple\n\nSwapAnim2\nPurple\n00000\n00000\n00.00\n00000\n00000\n\nSwapAnim3\nPurple\n00000\n00.00\n0...0\n00.00\n00000\n\nSwapAnim4\nPurple\n00.00\n0...0\n.....\n0...0\n00.00\n\nSwapAnim5\nPurple\n0...0\n.....\n.....\n.....\n0...0\n\nTeleportBeamTop\nPurple\n.....\n..0..\n.000.\n.000.\n.000.\n\nTeleportBeam\nPurple\n.000.\n.000.\n.000.\n.000.\n.000.\n\nTeleportBeamBottom\nPurple\n.000.\n.000.\n.000.\n..0..\n.....\n\nInfinitePower\nTransparent\n\nTempAnim\nTransparent\n\nMagicEnd\nTransparent\n\nCastPaste\nBlack\n\nNoSelected\nBlack\n\nDidNotMove\nBlack\n\nWallNormal\nDarkGreen Darkblue\n00000\n00000\n00000\n00000\n00000\n \nWallBottom\nDarkGreen Darkblue\n00000\n00000\n00000\n00000\n11111\n\nOne\nDarkblue\n...0.\n..00.\n...0.\n...0.\n..000\n\nTwo\nDarkblue\n.000.\n....0\n..00.\n.0...\n.0000\n\nThree\nDarkblue\n.000.\n....0\n..000\n....0\n.000.\n\nFour\nDarkblue\n.0..0\n.0..0\n.0000\n....0\n....0\n\nFive\nDarkblue\n.0000\n.0...\n.000.\n....0\n.000.\n\nSix\nDarkblue\n..00.\n.0...\n.000.\n.0..0\n..00.\n\nSeven\nDarkblue\n.0000\n....0\n...0.\n..0..\n.0...\n\nEight\nDarkblue\n..00.\n.0..0\n..00.\n.0..0\n..00.\n\nNine\nDarkblue\n..00.\n.0..0\n..000\n....0\n..00.\n\nZero\nDarkblue\n..00.\n.0..0\n.0..0\n.0..0\n..00.\n\n=======\nLEGEND\n=======\n\nWall = WallNormal or WallBottom\nBlackBackground = HoleNormal or HoleTop\nHole = BlackBackground\n\n. = Background\n# = WallNormal\nT = Target\nP = DownMan and KeyNoneMan\n* = Collectable\nM = Magic\nE = MagicReplace and HoleNormal\nB = HoleNormal\nF = TrapDoor\n\nU = InfinitePower and E\n\nQ = Key1\nW = Door1\n\nA = Key2\nS = Door2\n\nZ = Key3\nX = Door3\n\n1 = One and WallNormal\n2 = Two and WallNormal\n3 = Three and WallNormal\n4 = Four and WallNormal\n5 = Five and WallNormal\n6 = Six and WallNormal\n7 = Seven and WallNormal\n8 = Eight and WallNormal\n9 = Nine and WallNormal\n0 = Zero and WallNormal\n\nPlayer = UpMan or DownMan or LeftMan or RightMan\nMan = UpMan or DownMan or LeftMan or RightMan\nBlock = BlackBackground\n\nKeyMan = Key1Man or Key2Man or Key3Man or KeyNoneMan\nKey = Key1 or Key2 or Key3\nKeyDoor = Door1 or Door2 or Door3\nDoorDown = Door1Down or Door2Down or Door3Down\n\nNumbers = Zero or One or Two or Three or Four or Five or Six or Seven or Eight or Nine\n\nCopyable = Wall or Target or TargetOn or Magic or Player or Collectable or Key or KeyDoor or TrapDoor or Numbers or DoorDown\n\nSwapAnim = SwapAnim1 or SwapAnim2 or SwapAnim3 or SwapAnim4 or SwapAnim5\n\nTeleportAnim = TeleportBeamTop or TeleportBeam or TeleportBeamBottom or TeleportMan or TeleportMan2 or TeleportMan3\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBlackBackground\nTarget, TargetTest, TargetOn, KeyDoor, DoorDown, Key, Trapdoor\nKeyMan\nPlayer, Wall\nMagic, Collectable, Numbers\nMagicEnd, MagicReplace\nMagicBar, InfinitePower\nCastPaste\nNoSelected, PasteTarget\nDidNotMove\nSelected\nSwapAnim, TeleportAnim, TempAnim\n\n======\nRULES\n======\n\n(SetupSpellIcons)\n\n[Player] -> [Player DidNotMove]\n[MagicReplace] -> [MagicEnd]\n\n(Player Orientation)\n[ up Man no UpMan ] -> [ up UpMan ]\n[ down Man no DownMan ] -> [ down DownMan ]\n[ left Man no LeftMan ] -> [ left LeftMan ]\n[ right Man no RightMan ] -> [ right RightMan ]\n\n(Move crates)\n[ > Man | Block] -> [Man | Block]\n\n(Door collision)\n[ > Man no Key1Man | Door1 ] -> [ Man | Door1]\n[ > Man no Key2Man | Door2 ] -> [ Man | Door2]\n[ > Man no Key3Man | Door3 ] -> [ Man | Door3]\n\n(Put spell on player based on magic)\n\nup [action UpMan | Selected] -> [UpMan | ]\ndown [action DownMan | Selected] -> [DownMan | ]\nleft [action LeftMan | Selected] -> [LeftMan | ]\nright [action RightMan | Selected] -> [RightMan | ]\n\n[Man] -> [Man noSelected]\n[Selected] [NoSelected] -> [Selected] []\n\nup [action UpMan noSelected|no BlackBackground] -> [UpMan | Selected]\ndown [action DownMan noSelected|no BlackBackground] -> [DownMan | Selected]\nleft [action LeftMan noSelected|no BlackBackground] -> [LeftMan | Selected]\nright [action RightMan noSelected|no BlackBackground] -> [RightMan | Selected]\n\n[NoSelected] -> []\n\nup [action Man] [InfinitePower] [Selected] -> [Man CastPaste] [InfinitePower] [Selected]\nup [action Man] [MagicBar | no MagicBar] [Selected] -> [Man CastPaste] [|] [Selected]\n\n(Swap Anim)\n[SwapAnim5] -> [] again\n[SwapAnim4] -> [SwapAnim5] again\n[SwapAnim3] -> [SwapAnim4] again\n[SwapAnim2] -> [SwapAnim3] again\n[SwapAnim1] -> [SwapAnim2] again\n\n(Cast Paste)\n\nup [UpMan CastPaste | no BlackBackground] -> [UpMan | PasteTarget]\ndown [DownMan CastPaste | no BlackBackground] -> [DownMan | PasteTarget]\nleft [LeftMan CastPaste | no BlackBackground] -> [LeftMan | PasteTarget]\nright [RightMan CastPaste | no BlackBackground] -> [RightMan | PasteTarget]\n\n[Man CastPaste] -> cancel\n\n[PasteTarget Copyable] [MagicEnd] -> [PasteTarget] [MagicEnd Copyable]\n[PasteTarget] [Selected Copyable] -> [PasteTarget Copyable] [Selected]\n[MagicEnd Copyable] [Selected] -> [MagicEnd] [Selected Copyable]\n[PasteTarget] [Selected] [DidNotMove] -> [SwapAnim1] [SwapAnim1] [] again\n\n(Handle picking up magic and magic bar)\nlate [Player Collectable] -> [Player]\nlate [Player Magic] [MagicEnd no MagicBar] -> [Player] [MagicEnd MagicBar]\nlate up [Player Magic] [MagicBar | no MagicBar] -> [Player] [MagicBar | MagicBar]\n\n(Handle holding Keys)\n\nlate [Player no KeyMan] [KeyMan] -> [Player KeyMan] []\n\nlate [Player Key1] -> [Player Key1Man]\nlate [Player Key2] -> [Player Key2Man]\nlate [Player Key3] -> [Player Key3Man]\n\n(Trapdoor)\nlate [TrapDoor DidNotMove no Player] -> [HoleNormal DidNotMove]\nlate [Blackbackground Selected] -> [BlackBackground]\n\n(Target)\nlate [Collectable] [Target] -> [Collectable] [TargetTest]\nlate [Target] -> [TargetOn]\nlate [TargetTest] -> [Target]\n\n(clean up)\nlate [DidNotMove] -> []\n\n(Pretty Doors)\nlate [Door1 Player] -> [Door1Down Player]\nlate [Door2 Player] -> [Door2Down Player]\nlate [Door3 Player] -> [Door3Down Player]\n\nlate [Door1Down no Player] -> [Door1]\nlate [Door2Down no Player] -> [Door2]\nlate [Door3Down no Player] -> [Door3]\n\n(Pretty Walls)\nlate Down [ WallNormal | no Wall ] -> [ WallBottom | ]\nlate Down [ WallBottom | Wall ] -> [ WallNormal | Wall ]\n\n(PrettyHoles)\n \nlate Up [ HoleNormal | no Hole ] -> [ HoleTop | ]\nlate Up [ HoleTop | Hole ] -> [ HoleNormal | Hole ]\n\n(Teleport Anim)\nlate [TeleportMan3] -> [TeleportBeamBottom] again\nlate [TeleportBeamBottom] -> [TempAnim] again\nlate up [TempAnim | TeleportBeam] -> [ | TeleportBeamBottom] again\nlate up [TeleportBeamBottom | ] -> [TeleportBeamBottom | TeleportBeam] again\nlate up [TeleportBeam | ] -> [TeleportBeam | TeleportBeamTop] again\n\nlate [TeleportMan2] -> [TeleportMan3] again\nlate up [TeleportMan3|] -> [TeleportMan3 | TeleportBeam] again\nlate up [TeleportBeam|] -> [TeleportBeam| TeleportBeamTop] again\n\nlate [TeleportMan] -> [TeleportMan2] again\nlate up [TeleportMan2|] -> [Teleportman2|TeleportBeamTop] again\n\nlate [Player KeyMan TargetOn] -> [ TeleportMan TargetOn] again\n\nlate [TempAnim] -> []\n\n==============\nWINCONDITIONS\n==============\n\nNo Player\nNo TeleportAnim\n\n=======\nLEVELS\n=======\n\nMessage Collect '+' to activate teleporter\n\n#####b\n#***#b\n#*.*#b\n#.t.#b\n##p##b\n###01e\n\nMessage Press 'x' to select a tile\nMessage Press 'x' on another tile to swap\n\n#####b\n#*p*#b\n#...#b\n#.#.#b\n##t##b\n###02u\n\nMessage Swapping uses batteries\n\n#########b\n#*#####*#b\n#m##*##m#b\n#########b\n#########b\n#########b\n###mmm###b\n###mmm###b\n###.p.###b\n#########b\n####t####b\n#######03e\n\n#########b\n#*##m##*#b\n#########b\n#########b\n#########b\n###mmm###b\n###mp####b\n###mmm###b\n#########b\n####t####b\n#######04e\n\nMessage Collect key cards to access security tiles\n\n#######b\n#*#*#*#b\n#s###w#b\n#w#t#s#b\n#..x.z#b\n#a...q#b\n##...##b\n#p..mm#b\n#####05e\n\n##########b\n#*#*#*##t#b\n#w#s#w####b\n#.#.#.#..#b\n#s#w#s#..#b\n#m.m.m...#b\n###s#s####b\n#*wp..asq#b\n########06e\n\nMessage SwapBot cannot swap holes\n\nbbbbbbbbb\nbtwwwwwsb\nbbbbbbbsb\nbbbbbbbsb\nbbbbbbbsb\nb.xzpaxsb\nb..xxx..b\nb.bmmmb.b\nb.#mmm#.b\nb#*#b#q#b\nb#######b\nb#####07e\n\nb#######bb\n##..a..##b\nx..xws..sb\nmbbwsxbb*b\nbbbsxwbbbb\n*bbxwsbbtb\ns..wsx..xb\n##..m..##b\nb#qmmmz#bb\nb##.p.##bb\nbb###08bbe\n\nMessage Trapdoors create holes\n\n#######bbbbbb\n#####*#bbbbbb\n#####.#bbbbbb\n#####f#bbbtbb\n#*#q#m#bbbxbb\n#fz.spmazw#bb\n#..f#m#bbbbbb\n#####f#bbbbbb\n#####*#bbbbbb\n#####09bbbbeb\n\nbbbbbb###bbbbbbb\n#######*#######b\n#*s..#.z.#..f*#b\n#fb..w...w..bf#b\n#xbf###f###fbx#b\n#fbw#b#s#b#xbf#b\n#xbw###s###xbx#b\n#fb.........bf#b\n#tbbq.mmm.abb*#b\n#fxw...p...sxf#b\n#############10e\n\n##########bbbbbb\n####mfffz#bbbbbb\n##*qx###.######b\n####x###msssst#b\n####x##.m######b\n##########bbbbbb\n#a##x##m##bbbbbb\n##.#z##m##bbbbbb\n#..#pm#.##bbbbbb\n########11bbbbbe\n\n###############b\n#baffmbbbqffmb#b\n#b*fx*#.#*ff*b#b\n#bbxfbbbbbssbb#b\n#bbffffmffffbb#b\n#bbfff.pffffbb#b\n#bbbbbbwbbzfbb#b\n#bbbbbbfbbbbbb#b\n#bbbbbbtbbbbbb#b\n#############12e\n\nMessage SwapBot has swapped everything!\nMessage Congratulations!\n",[0,0,3,3,3,2,2,4,1,1,4,3,4,1,4,3,3,1,4,4,2,1,1,3,1,1,2,2,3,3,3,0,0,3,3,2,2,3,3,0,0,3,3,3,4,2,2,1,4,1,1,3,2,2,0,1,0],"background holenormal:0,0,0,0,0,0,0,0,0,\n0,0,0,0,background target:1,background holetop:2,0,0,background:3,\n3,3,3,background wallnormal:4,4,4,0,background door1:5,2,\n0,0,background door3:6,3,2,background wallbottom:7,background collectable:8,4,4,\n0,5,2,0,0,3,6,3,3,\n4,4,4,0,5,2,0,0,3,\n6,background magic:9,3,2,4,4,0,5,2,\n0,0,3,7,3,3,4,4,4,\n0,5,2,0,0,6,3,2,6,\nbackground key1man upman:10,4,background wallnormal zero:11,0,background door2:12,12,12,12,12,\n3,3,3,4,4,background seven wallnormal:13,0,0,0,\n0,0,0,0,0,background holenormal magicbar:14,14,14,background holenormal magicbar magicend:15,\n",12,"1627778061578.234"] ], [ `gallery: spaceokoban`, - ["Title Spacekoban\nAuthor Connorses [Loneship Games]\nbackground_color #00001F\nagain_interval 0.12\n========\nOBJECTS\n========\nbackground\ngrey lightgrey\n10001\n00000\n00000\n00000\n10001\n\nplayer\nwhite darkbrown\n.000.\n.010.\n00000\n.000.\n.0.0.\n\nwall\nblack\n\ncrate\nred pink\n.....\n.000.\n.010.\n.000.\n.....\n\ntarget\nred\n00.00\n0...0\n.....\n0...0\n00.00\n\nladder\ndarkgrey\n.....\n00000\n.....\n00000\n.....\n\nbeam\nblue\n.....\n..0..\n.0.0.\n..0..\n.....\n\nexit\nyellow\n00000\n0...0\n0...0\n0...0\n00000\n\ncover\nblack darkgrey\n.....\n.000.\n.010.\n.000.\n.....\n\nu\ntransparent\n.....\n..0..\n.....\n.....\n.....\nd\ntransparent\n.....\n.....\n.....\n..0..\n.....\nl\ntransparent\n.....\n.....\n.0...\n.....\n.....\nr\ntransparent\n.....\n.....\n...0.\n.....\n.....\n=======\nLEGEND\n=======\n. = background\np = player and background\n# = wall\n* = crate\n\" = ladder\n: = player and ladder\no = target\n@ = crate and target\n% = beam\n& = crate and beam\n! = beam and target\n$ = crate and ladder\n] = player and target\ne = exit and cover\n\nobj = player or crate\ndir = U or D or L or R\nsolid = wall or cover\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\nbackground\ntarget\nladder, exit\nplayer, wall, crate, cover\nbeam\nu,d,l,r\n======\nRULES\n======\n[cover] -> [ ]\n[exit] [crate no target] -> [exit cover] [crate]\n\n[< player no ladder|no solid no crate] -> [player| ]\n\nup [< player|solid] -> [player D|solid] again\ndown [< player|solid] -> [player U|solid] again\nleft [< player|solid] -> [player R|solid] again\nright [< player|solid] -> [player L|solid] again\n\n[up player ladder] -> [player U ladder]\n[down player ladder] -> [player D ladder]\n[left player ladder] -> [player L ladder]\n[right player ladder] -> [player R ladder]\n\nup [< player|crate] -> [player D|crate U] again\ndown [< player|crate] -> [player U|crate D] again\nleft [< player|crate] -> [player R|crate L] again\nright [< player|crate] -> [player L|crate R] again\n\nup [obj U|obj] -> [obj U|obj U]\ndown [obj D|obj] -> [obj D|obj D]\nleft [obj L|obj] -> [obj L|obj L]\nright [obj R|obj] -> [obj R|obj R]\n\n[obj U] -> [up obj up U] again\n[obj D] -> [down obj down D] again\n[obj L] -> [left obj left L] again\n[obj R] -> [right obj right R] again\n\n[> dir|solid] -> [ |solid]\n\nlate [player dir ladder] -> [player ladder]\nlate [obj dir beam] -> [obj beam]\n==============\nWINCONDITIONS\n==============\nall crate on target\nall exit on player\nno dir\n=======\nLEVELS\n=======\n###########\n###########\n#######.###\n#........##\n#p....*..o#\n#........##\n#######.###\n###########\n###########\n\n#########\n####o####\n###...###\n##..*..##\n#.......#\n##.....##\n##..p..##\n##..*..##\n##.....##\n##.....##\n##.....##\n##..o..##\n#########\n\n############\n###..#.....#\n###........#\n###........#\n#oo@.*p*...#\n############\n###.......##\n############\n\n#########\n##.o#####\n#...#####\n#*#.#####\n#o#.*.###\n###p..###\n#########\n#########\n\n########\n#o.*p..#\n#......#\n#......#\n#.#o***#\n#.....o#\n#...o.##\n########\n\n#########(*U_2)\n#...#####\n#..*#####\n#..*#...#\n#p.....o#\n######.o#\n#########\n#########\n\n###########(*U_2)\n#o.......##\n#.....o..##\n#o.......##\n#.....@.###\n#....#*..##\n#ooo@@***.#\n#.....*...#\n#.....*...#\n#.........#\n######...p#\n#######..##\n###########\n\n##########(*U_1)\n###o*..###\n##.....###\n##...#*###\n####*#..##\n####]*..##\n######oo##\n##########\n##########\n\n##:############################\n##\"\"\"##########################\n####\"##########################\n#..............................\n#o.**.......................\"..\n#...o..........................\n###############################\n###############################\n###############################\n\n###########\n##..o....##\n#.........#\n#...*.....#\n#o.*\"$.\".o#\n#.........#\n#...p.....#\n#...*..\"..#\n#......*..#\n##o.....o##\n###########\n\n##########\n#..#o@p..#\n#........#\n#...*....#\n#o*.....*#\n#...\".\".o#\n##########\n\n##########(*U_2)\n##oo..*..#\n##o*...#.#\n###.*....#\n###...\".p#\n###.\"..###\n##########\n\n#############\n#############\n#...........#\n#...........#\n#.!..*p...%.#\n#...........#\n#...........#\n#############\n#############\n\n###########\n###########\n#.........#\n#.........#\n#.!.*p*\"!.#\n#.........#\n#.........#\n###########\n###########\n\n########\n#.o...\"#\n##.#..\"#\n#..#.#\"#\n#o.%.$:#\n##.#..\"#\n#.....\"#\n#....$\"#\n#\"\"\"\"\"\"#\n########\n\n#############\n#############\n#############\n#############\n#p....*.%%!.#\n#############\n#############\n#############\n#############\n\n##########\n##.....o##\n#.......o#\n#..:\"\"\"..#\n#..\"**\"..#\n#..\"**\"..#\n#..\"\"\"\"..#\n#o...%...#\n##o.....##\n##########\n\n###########\n#.*.*.!..o#\n#.....%...#\n#\".:..%...#\n#.....%...#\n#.*.*.!..o#\n###########\n\n############\n#####o######\n#...\"\"*..o##\n#.........##\n#....*.#####\n#o...%....##\n#..#*..:\"\"##\n#.%.o..*$\".#\n##..#o..%#.#\n########...#\n############\n\n###########\n#######\"\"\"#\n#\"\"\"\"\"\"\"\"\"#\n#:...*..\"\"#\n#\"....#...#\n#\"..*##*..#\n#\"...#....#\n#\"..$...oo#\n########!!#\n########..#\n###########\n", [1, 0, 3, 2], "background wall:0,0,0,0,0,0,0,0,0,0,0,0,\nbackground crate target:1,0,0,0,0,0,0,0,1,0,0,0,\n0,background:2,2,2,background target:3,0,2,0,0,2,2,2,\nbackground player:4,0,2,0,0,0,2,2,2,0,2,0,\n0,2,2,2,2,0,2,0,0,2,2,2,\n2,0,2,0,0,2,2,2,2,0,2,0,\n0,2,2,2,2,0,2,0,0,2,2,2,\nbackground crate:5,0,0,0,0,0,0,0,0,0,0,0,\n", 2, "1627778099494.4666"] + ["Title Spacekoban\nAuthor Connorses [Loneship Games]\nbackground_color #00001F\nagain_interval 0.12\n========\nOBJECTS\n========\nbackground\ngrey lightgrey\n10001\n00000\n00000\n00000\n10001\n\nplayer\nwhite darkbrown\n.000.\n.010.\n00000\n.000.\n.0.0.\n\nwall\nblack\n\ncrate\nred pink\n.....\n.000.\n.010.\n.000.\n.....\n\ntarget\nred\n00.00\n0...0\n.....\n0...0\n00.00\n\nladder\ndarkgrey\n.....\n00000\n.....\n00000\n.....\n\nbeam\nblue\n.....\n..0..\n.0.0.\n..0..\n.....\n\nexit\nyellow\n00000\n0...0\n0...0\n0...0\n00000\n\ncover\nblack darkgrey\n.....\n.000.\n.010.\n.000.\n.....\n\nu\ntransparent\n.....\n..0..\n.....\n.....\n.....\nd\ntransparent\n.....\n.....\n.....\n..0..\n.....\nl\ntransparent\n.....\n.....\n.0...\n.....\n.....\nr\ntransparent\n.....\n.....\n...0.\n.....\n.....\n=======\nLEGEND\n=======\n. = background\np = player and background\n# = wall\n* = crate\n\" = ladder\n: = player and ladder\no = target\n@ = crate and target\n% = beam\n& = crate and beam\n! = beam and target\n$ = crate and ladder\n] = player and target\ne = exit and cover\n\nobj = player or crate\ndir = U or D or L or R\nsolid = wall or cover\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\nbackground\ntarget\nladder, exit\nplayer, wall, crate, cover\nbeam\nu,d,l,r\n======\nRULES\n======\n[cover] -> [ ]\n[exit] [crate no target] -> [exit cover] [crate]\n\n[< player no ladder|no solid no crate] -> [player| ]\n\nup [< player|solid] -> [player D|solid] again\ndown [< player|solid] -> [player U|solid] again\nleft [< player|solid] -> [player R|solid] again\nright [< player|solid] -> [player L|solid] again\n\n[up player ladder] -> [player U ladder]\n[down player ladder] -> [player D ladder]\n[left player ladder] -> [player L ladder]\n[right player ladder] -> [player R ladder]\n\nup [< player|crate] -> [player D|crate U] again\ndown [< player|crate] -> [player U|crate D] again\nleft [< player|crate] -> [player R|crate L] again\nright [< player|crate] -> [player L|crate R] again\n\nup [obj U|obj] -> [obj U|obj U]\ndown [obj D|obj] -> [obj D|obj D]\nleft [obj L|obj] -> [obj L|obj L]\nright [obj R|obj] -> [obj R|obj R]\n\n[obj U] -> [up obj up U] again\n[obj D] -> [down obj down D] again\n[obj L] -> [left obj left L] again\n[obj R] -> [right obj right R] again\n\n[> dir|solid] -> [ |solid]\n\nlate [player dir ladder] -> [player ladder]\nlate [obj dir beam] -> [obj beam]\n==============\nWINCONDITIONS\n==============\nall crate on target\nall exit on player\nno dir\n=======\nLEVELS\n=======\n###########\n###########\n#######.###\n#........##\n#p....*..o#\n#........##\n#######.###\n###########\n###########\n\n#########\n####o####\n###...###\n##..*..##\n#.......#\n##.....##\n##..p..##\n##..*..##\n##.....##\n##.....##\n##.....##\n##..o..##\n#########\n\n############\n###..#.....#\n###........#\n###........#\n#oo@.*p*...#\n############\n###.......##\n############\n\n#########\n##.o#####\n#...#####\n#*#.#####\n#o#.*.###\n###p..###\n#########\n#########\n\n########\n#o.*p..#\n#......#\n#......#\n#.#o***#\n#.....o#\n#...o.##\n########\n\n#########(*U_2)\n#...#####\n#..*#####\n#..*#...#\n#p.....o#\n######.o#\n#########\n#########\n\n###########(*U_2)\n#o.......##\n#.....o..##\n#o.......##\n#.....@.###\n#....#*..##\n#ooo@@***.#\n#.....*...#\n#.....*...#\n#.........#\n######...p#\n#######..##\n###########\n\n##########(*U_1)\n###o*..###\n##.....###\n##...#*###\n####*#..##\n####]*..##\n######oo##\n##########\n##########\n\n##:############################\n##\"\"\"##########################\n####\"##########################\n#..............................\n#o.**.......................\"..\n#...o..........................\n###############################\n###############################\n###############################\n\n###########\n##..o....##\n#.........#\n#...*.....#\n#o.*\"$.\".o#\n#.........#\n#...p.....#\n#...*..\"..#\n#......*..#\n##o.....o##\n###########\n\n##########\n#..#o@p..#\n#........#\n#...*....#\n#o*.....*#\n#...\".\".o#\n##########\n\n##########(*U_2)\n##oo..*..#\n##o*...#.#\n###.*....#\n###...\".p#\n###.\"..###\n##########\n\n#############\n#############\n#...........#\n#...........#\n#.!..*p...%.#\n#...........#\n#...........#\n#############\n#############\n\n###########\n###########\n#.........#\n#.........#\n#.!.*p*\"!.#\n#.........#\n#.........#\n###########\n###########\n\n########\n#.o...\"#\n##.#..\"#\n#..#.#\"#\n#o.%.$:#\n##.#..\"#\n#.....\"#\n#....$\"#\n#\"\"\"\"\"\"#\n########\n\n#############\n#############\n#############\n#############\n#p....*.%%!.#\n#############\n#############\n#############\n#############\n\n##########\n##.....o##\n#.......o#\n#..:\"\"\"..#\n#..\"**\"..#\n#..\"**\"..#\n#..\"\"\"\"..#\n#o...%...#\n##o.....##\n##########\n\n###########\n#.*.*.!..o#\n#.....%...#\n#\".:..%...#\n#.....%...#\n#.*.*.!..o#\n###########\n\n############\n#####o######\n#...\"\"*..o##\n#.........##\n#....*.#####\n#o...%....##\n#..#*..:\"\"##\n#.%.o..*$\".#\n##..#o..%#.#\n########...#\n############\n\n###########\n#######\"\"\"#\n#\"\"\"\"\"\"\"\"\"#\n#:...*..\"\"#\n#\"....#...#\n#\"..*##*..#\n#\"...#....#\n#\"..$...oo#\n########!!#\n########..#\n###########\n",[1,0,3,2],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,\nbackground crate target:1,0,0,0,0,0,0,0,1,0,0,0,\n0,background:2,2,2,background target:3,0,2,0,0,2,2,2,\nbackground player:4,0,2,0,0,0,2,2,2,0,2,0,\n0,2,2,2,2,0,2,0,0,2,2,2,\n2,0,2,0,0,2,2,2,2,0,2,0,\n0,2,2,2,2,0,2,0,0,2,2,2,\nbackground crate:5,0,0,0,0,0,0,0,0,0,0,0,\n",2,"1627778099494.4666"] ], [ `gallery: pretender to the crown`, - ["title pretender to the crown\nauthor colin thil\nhomepage http://pretendertothecrown.wordpress.com/\nrun_rules_on_level_start\nbackground_color #d7dbef\ntext_color #69729f\nyoutube dasz1sSax2k\n\nrealtime_interval 0.1\nthrottle_movement \n\n========\nOBJECTS\n========\nExit\nred\n..0..\n..0..\n00000\n.000.\n..0..\n\nsnow1\n#d7dbef\n....0\n.....\n.....\n.....\n.....\n\nsnow2\n#d7dbef\n.....\n...0.\n.....\n.....\n.....\n\nsnow3\n#d7dbef\n.....\n.....\n...0.\n.....\n.....\n\nsnow4\n#d7dbef\n.....\n.....\n.....\n...0.\n.....\n\nsnow5\n#d7dbef\n.....\n.....\n.....\n.....\n....0\n\nsnow6\n#d7dbef\n.....\n.....\n.....\n.....\n....0\n\nBackground\n#d7dbef #e4e6f4\n00100\n00000\n10000\n00000\n00001\n\nplant1\n#2c5a42 #225039\n..0..\n.001.\n.011.\n00111\n01111\n\nplant2\n#14796c #0c6358\n..0..\n.001.\n.011.\n00111\n01111\n\nplant3\n#2e6549 #225039 #0c6358\n22022\n20012\n20112\n00111\n01111\n\nplant4\n#14796c #0c6358 #225039\n22022\n20012\n20112\n00111\n01111\n\ncrate\nLIGHTBROWN BROWN DARKBROWN\n00000\n01102\n01112\n02112\n22222\n\nplayer\n#ead5a8 #e1c99b #69729f #454b69 #f2c835 #ecbc16\n4.4.5\n.445.\n.011.\n.223.\n.333.\n\nsoldier\n#ead5a8 #e1c99b #69729f #454b69 #343b5f #c5c5c4\n5.3..\n5223.\n10044\n.0044\n.1.1.\n\nprisoner\n#ead5a8 #e1c99b #69729f #454b69\n..3..\n.223.\n.000.\n.000.\n.1.1.\n\nenemy\n#ead5a8 #e1c99b #c56c57 #bc5e48 #a7523e #c5c5c4\n5.3..\n5223.\n10044\n.0044\n.1.1.\n\nUpMarker\nRED\n\nLeftMarker\nRED\n\nRightMarker\nRED\n\nDownMarker\nRED\n\n\n=======\nLEGEND\n=======\n. = Background\np = prisoner\ny = plant1\nt = plant2\nz = plant3\nr = plant4\ne = enemy\nc = crate\nx = exit \na = player\n\nMarker = UpMarker or LeftMarker or RightMarker or DownMarker\ncrew = Player or soldier or prisoner\nplant = plant1 or plant2 or plant3 or plant4\nsnow = snow1 or snow2 or snow3 or snow4 or snow5 or snow6\n\n=======\nSOUNDS\n=======\n\nSFX0 52755904 (hit)\nSFX1 150500 (rescue)\nSFX2 6007707 (push)\nSFX3 13396704 (crush)\nEndLevel 83714500\n\n================\nCOLLISIONLAYERS\n================\n\nMarker,exit\n\nBackground\n\nplayer,soldier,enemy,prisoner,plant,crate\n\nsnow\n\n======\nRULES \n====== \n\nrandom down [no snow|no snow|no snow|no snow|no snow] -> [snow1||||]\n\n[ snow4 ] -> [ snow5 ]\n[ snow3 ] -> [ snow4 ]\n[ snow2 ] -> [ snow3 ]\n[ snow1 ] -> [ snow2 ]\ndown [ snow6|] -> [ |snow1 ]\n[ snow6] -> [ ]\n[ snow5 ] -> [ snow6 ]\n\n[ > player | crate] -> [ > player | > crate ] SFX2\n[ > crate | crate] -> [ > crate | > crate ] SFX2\n\nleft [ > Player | enemy | prisoner ] -> [ player | soldier Rightmarker | ] SFX0\nright [ > Player | enemy | prisoner ] -> [ player | soldier Leftmarker | ] SFX0\nup [ > Player | enemy | prisoner ] -> [ player | soldier Downmarker | ] SFX0\ndown [ > Player | enemy | prisoner ] -> [ player | soldier Upmarker | ] SFX0\n\n[ > Player | enemy | soldier ] -> [ player | | soldier ] SFX0\n\n[ left player ] -> [ left player Leftmarker ]\n[ right player ] -> [ right player Rightmarker ]\n[ up player ] -> [ up player Upmarker ]\n[ down player ] -> [ down player Downmarker ]\n\nstartloop\nlate left [ soldier Leftmarker | No crew ] -> [ Leftmarker | soldier ]\nlate right [ soldier Rightmarker | No crew ] -> [ Rightmarker | soldier ]\nlate up [ soldier Upmarker | No crew ] -> [ Upmarker | soldier ]\nlate down [ soldier Downmarker | No crew ] -> [ Downmarker | soldier ]\nendloop\n\n==============\nWINCONDITIONS\n==============\n\nno prisoner \nsome player on exit\n\n======= \nLEVELS\n=======\n\nmessage je suis fatigue, mortellement fatigue\nmessage mais chaque nuit, quand j arrive a dormir, je suis roi de norvege\n\nzrzrzrzrzrz\nrzrzrzrzrzr\nzrzrz.eperz\nrzpzr.tet.r\nzre.....z.z\nr....a....r\nz.y.....etz\nr..et.typzr\nztepe.zryrz\nrztyt.rzrzr\nzrzrzxzrzrz\n\nmessage depuis ma plus lointaine jeunesse un mal me ronge\nmessage il me faut etre roi, il m’est impossible de vivre autrement!\n\nzrzrzrzrzrz\nrzrzrzrzrzr\nzrzrprprzrz\nrzrzeaezrzr\nzrze...ezrz\nrzepecepezr\nzrye...eyrz\nrzryt.tyrzr\nzrzrz.zrzrz\nrzrzr.rzrzr\nzrzrzxzrzrz\n\nmessage le ciel m a fait pour que je gouverne, il n y a pas d autres remede pour moi\nmessage toi, le tout-puissant, qui m’as mis dans cette situation, il faut que tu assumes les consequences!\n\nzrzrzrzrzrz\nrzrz...zrzr\nzrze.p.ezrz\nrzepeeepezr\nzr.ey.ye.rz\na.........x\nyt.ey.ye.ty\nrzepe.epezr\nzrye...eyrz\nrzry...yrzr\nzrzrytyrzrz\n\nmessage j’ai vaincu\nmessage d'un coup d'epee, j’ai fait sauter la couronne du roi\n\nzrzrzazrzrz\nrzrzr.rzrzr\nzrzrz.zrzrz\nrprpr.rprpr\nzezez.zezez\nr.........r\nz.yt.e.ty.z\nr....e....r\nztyty.ytytz\nrzrzr.rzrzr\nzrzrzxzrzrz\n\nmessage Les boucliers etaient enfonces dans la neige mais il n’y avais personnes derriere eux\n\nzrzrzazrzrz\nrzrzr.rzrzr\nzreez.zeerz\nrz..e....zr\nzpe.tet.epz\nry..zpz..yr\nzpe.rer.epz\nrye.....eyr\nzreey.yeerz\nrztpr.rptzr\nzrztzxztzrz\n\nmessage ils se sont enfuis dans la foret, par les plateux et les marais, et les coteaux\nmessage aussi loin que leurs jambes voulaient les porter\n\nzrzrzazrzrz\nrzrzr.rzrzr\nzrpe...rzrz\nrzty...epzr\nzrpe.c.tyrz\nrztycycepzr\nzrpe.c.tyrz\nrzty...epzr\nzrzrt.ttyrz\nrzrzr.rzrzr\nzrzrzxzrzrz\n\nmessage j’ai defendu l’oeuvre de ma vie et le salut de mon ame\n\nzrzrzazrzrz\nrzrzr.rzrzr\nzpe.z.z.epz\nretyr.r.ter\nz..c...c..z\nr.t.tyt.t.r\nz.z.zrz.z.z\nr..c...c..r\nzet.y.ytyez\nrpe.r.r.epr\nztytzxztttz\n\nmessage ai-je l’air d un roi maintenant?\n\nrzrzrarzrzr\nzpe...zpzpz\nryt..yrerer\nzrz..r....z\nrzpe...y..r\nzry..t..yez\nrpr.tpt.rpr\nzez.zez.ztz\nr...r.r..zr\nz..tz...yzz\nrzrzrxtyrzr\n\nmessage chaque jour je doit regarder l’avenir en souriant\nmessage comme si j’etait sur de mon droit, de ma victoire et de mon succes\n\nzrzrzazrzrz\nr.........r\nz.e.e.e.e.z\nrypypypypyr\nzryryr.ryrz\nrppzpe.epzr\nzeeryt..yrz\nr...rzt...r\nz.y..pe.y.z\nr...t.t...r\nztytzxztytz \n\nmessage n’y a t’il donc la haut aucune loi certaine sur laquelle tout doit se regler?\n\nzrzrzazrzrz\nrprzr.rzrzr\nzezpe.epzrz\nr..e...erzr\nz.y..t..zpz\nr...tzt..er\nzty.zrz.e.z\nrz..r.r...r\nzre.....etz\nrzptt.ttpzr\nzryrzxzryrz\n\nmessage il y a une peur secrete dans cette victoire\n\nrzrzrarzrzr\nz.........z\nr..ctyte..r\nz.epepepc.z\nrytet.tetyr\nzpzpz.zpzpz\nreryr.ryrer\nz..c...c..z\nr..y.y.y..r\nz..c...c..z\nrytztxtztyr\n\nmessage si j’essaie de me voir comme le juste roi, il faut que je le fasse par artifice,\nmessage par une construction astucieuse, une oeuvre audacieuse\n\nrzrzrarzrzr\nzrzrz.zrzrz\nrpe.....epr\nztyt.ty.ytz\nrpe..c..epr\nztycy.ycytz\nrpe..c..epr\nzty.y.y.ytz\nrzr..cc.rzr\nzrztyxytzrz\nrzrzrxrzrzr\n\nmessage le roi etait-il d une autre etoffe que moi?\nmessage serait-il parmis ceux qui ont de la chance?\n\nrzrzrarzrzr\nz.....zpe.z\nr.t.tcryt.r\nz.c.....z.z\nr.tytetcr.r\nz...cpz...z\nretctyr.t.r\nzpz.....c.z\nryrctyt.tyr\nz...c...epz\nrytytxtytyr\n\nmessage mon royaume?\nmessage il est sombre, comme celui de l’ange qui se dressa contre dieu.\n\nrzrzrarzrzr\nzrzr...rzrz\nrzpe....epr\nzrytccccytz\nrpe.....epr\nzty.yt.tytz\nrpe....epzr\nztycccctyrz\nrzpe...epzr\nzryt...tyrz\nrzrztxtzrrr\n\nmessage que n ai-je sacrifie pour ce trone ou je ne suis pas parvenu?\n\nrzrzrarzrzr\nzrz.....zpz\nrz..tct..er\nz..t.c.t..z\nr.tpecept.r\nz.zpecepz.z\nr..y.c.y..r\nz...ycy..tz\nret.....tzr\nzpzty.ytzrz\nryrzrxrzrzr\n\nmessage je voulais etre le plus grand dans ce pays\nmessage seigneur voyez, je m’humilie devant vous, je suis le plus minable de tous!\n\nrzrzrarzrzr\nzrz....rprz\nrz...y..ezr\nzt.e.r..epz\nrpe...ty.yr\nzt.ty...epz\nrpe..y.e.yr\nzte..r...rz\nrzpy....tzr\nzrzry.ytzrz\nrzrzrxrzrzr\n\nmessage je suis un pauvre homme, je n’ais que ma vie a donner\nmessage prennez la et sauvez la pensee royale\nmessage -vous avez perdu-\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", 2, "tick", "tick", 2, "tick", 3, "tick", "tick", 3, "tick", 2, "tick", "tick", 2, "tick", "tick", 2, "tick", 2, "tick", "tick", 2, "tick", 1, "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", 1, "tick", "tick", 1, "tick", "tick", "tick", 0, "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background plant3:0,background plant4 snow3:1,0,background plant4:2,0,2,background plant3 snow4:3,2,0,2,0,\n2,0,background plant4 snow4:4,0,background prisoner:5,background plant1:6,5,6,background plant4 snow1:7,0,7,\n0,1,background enemy:8,background:9,8,9,8,background enemy snow3:10,8,background plant2:11,0,\n2,0,8,9,9,background player snow6:12,background soldier upmarker:13,background upmarker:14,8,5,11,\n0,2,0,8,11,background plant3 snow2:15,2,background leftmarker:16,6,2,background plant3 snow3:17,\nbackground downmarker:18,background downmarker snow2:19,background downmarker snow4:20,background rightmarker:21,8,5,8,16,background snow1:22,9,background exit:23,\n0,2,15,background rightmarker snow4:24,11,0,2,16,background plant1 snow6:25,2,0,\n2,0,8,18,18,20,18,16,14,9,11,\n0,2,8,background snow3:26,8,9,8,8,8,background plant2 snow1:27,15,\n2,0,background plant4 snow6:28,0,5,6,5,6,background plant4 snow2:29,0,2,\n0,2,0,4,15,2,0,2,0,29,17,\n", 13, "1627778178860.0981"] + ["title pretender to the crown\nauthor colin thil\nhomepage http://pretendertothecrown.wordpress.com/\nrun_rules_on_level_start\nbackground_color #d7dbef\ntext_color #69729f\nyoutube dasz1sSax2k\n\nrealtime_interval 0.1\nthrottle_movement \n\n========\nOBJECTS\n========\nExit\nred\n..0..\n..0..\n00000\n.000.\n..0..\n\nsnow1\n#d7dbef\n....0\n.....\n.....\n.....\n.....\n\nsnow2\n#d7dbef\n.....\n...0.\n.....\n.....\n.....\n\nsnow3\n#d7dbef\n.....\n.....\n...0.\n.....\n.....\n\nsnow4\n#d7dbef\n.....\n.....\n.....\n...0.\n.....\n\nsnow5\n#d7dbef\n.....\n.....\n.....\n.....\n....0\n\nsnow6\n#d7dbef\n.....\n.....\n.....\n.....\n....0\n\nBackground\n#d7dbef #e4e6f4\n00100\n00000\n10000\n00000\n00001\n\nplant1\n#2c5a42 #225039\n..0..\n.001.\n.011.\n00111\n01111\n\nplant2\n#14796c #0c6358\n..0..\n.001.\n.011.\n00111\n01111\n\nplant3\n#2e6549 #225039 #0c6358\n22022\n20012\n20112\n00111\n01111\n\nplant4\n#14796c #0c6358 #225039\n22022\n20012\n20112\n00111\n01111\n\ncrate\nLIGHTBROWN BROWN DARKBROWN\n00000\n01102\n01112\n02112\n22222\n\nplayer\n#ead5a8 #e1c99b #69729f #454b69 #f2c835 #ecbc16\n4.4.5\n.445.\n.011.\n.223.\n.333.\n\nsoldier\n#ead5a8 #e1c99b #69729f #454b69 #343b5f #c5c5c4\n5.3..\n5223.\n10044\n.0044\n.1.1.\n\nprisoner\n#ead5a8 #e1c99b #69729f #454b69\n..3..\n.223.\n.000.\n.000.\n.1.1.\n\nenemy\n#ead5a8 #e1c99b #c56c57 #bc5e48 #a7523e #c5c5c4\n5.3..\n5223.\n10044\n.0044\n.1.1.\n\nUpMarker\nRED\n\nLeftMarker\nRED\n\nRightMarker\nRED\n\nDownMarker\nRED\n\n\n=======\nLEGEND\n=======\n. = Background\np = prisoner\ny = plant1\nt = plant2\nz = plant3\nr = plant4\ne = enemy\nc = crate\nx = exit \na = player\n\nMarker = UpMarker or LeftMarker or RightMarker or DownMarker\ncrew = Player or soldier or prisoner\nplant = plant1 or plant2 or plant3 or plant4\nsnow = snow1 or snow2 or snow3 or snow4 or snow5 or snow6\n\n=======\nSOUNDS\n=======\n\nSFX0 52755904 (hit)\nSFX1 150500 (rescue)\nSFX2 6007707 (push)\nSFX3 13396704 (crush)\nEndLevel 83714500\n\n================\nCOLLISIONLAYERS\n================\n\nMarker,exit\n\nBackground\n\nplayer,soldier,enemy,prisoner,plant,crate\n\nsnow\n\n======\nRULES \n====== \n\nrandom down [no snow|no snow|no snow|no snow|no snow] -> [snow1||||]\n\n[ snow4 ] -> [ snow5 ]\n[ snow3 ] -> [ snow4 ]\n[ snow2 ] -> [ snow3 ]\n[ snow1 ] -> [ snow2 ]\ndown [ snow6|] -> [ |snow1 ]\n[ snow6] -> [ ]\n[ snow5 ] -> [ snow6 ]\n\n[ > player | crate] -> [ > player | > crate ] SFX2\n[ > crate | crate] -> [ > crate | > crate ] SFX2\n\nleft [ > Player | enemy | prisoner ] -> [ player | soldier Rightmarker | ] SFX0\nright [ > Player | enemy | prisoner ] -> [ player | soldier Leftmarker | ] SFX0\nup [ > Player | enemy | prisoner ] -> [ player | soldier Downmarker | ] SFX0\ndown [ > Player | enemy | prisoner ] -> [ player | soldier Upmarker | ] SFX0\n\n[ > Player | enemy | soldier ] -> [ player | | soldier ] SFX0\n\n[ left player ] -> [ left player Leftmarker ]\n[ right player ] -> [ right player Rightmarker ]\n[ up player ] -> [ up player Upmarker ]\n[ down player ] -> [ down player Downmarker ]\n\nstartloop\nlate left [ soldier Leftmarker | No crew ] -> [ Leftmarker | soldier ]\nlate right [ soldier Rightmarker | No crew ] -> [ Rightmarker | soldier ]\nlate up [ soldier Upmarker | No crew ] -> [ Upmarker | soldier ]\nlate down [ soldier Downmarker | No crew ] -> [ Downmarker | soldier ]\nendloop\n\n==============\nWINCONDITIONS\n==============\n\nno prisoner \nsome player on exit\n\n======= \nLEVELS\n=======\n\nmessage je suis fatigue, mortellement fatigue\nmessage mais chaque nuit, quand j arrive a dormir, je suis roi de norvege\n\nzrzrzrzrzrz\nrzrzrzrzrzr\nzrzrz.eperz\nrzpzr.tet.r\nzre.....z.z\nr....a....r\nz.y.....etz\nr..et.typzr\nztepe.zryrz\nrztyt.rzrzr\nzrzrzxzrzrz\n\nmessage depuis ma plus lointaine jeunesse un mal me ronge\nmessage il me faut etre roi, il m’est impossible de vivre autrement!\n\nzrzrzrzrzrz\nrzrzrzrzrzr\nzrzrprprzrz\nrzrzeaezrzr\nzrze...ezrz\nrzepecepezr\nzrye...eyrz\nrzryt.tyrzr\nzrzrz.zrzrz\nrzrzr.rzrzr\nzrzrzxzrzrz\n\nmessage le ciel m a fait pour que je gouverne, il n y a pas d autres remede pour moi\nmessage toi, le tout-puissant, qui m’as mis dans cette situation, il faut que tu assumes les consequences!\n\nzrzrzrzrzrz\nrzrz...zrzr\nzrze.p.ezrz\nrzepeeepezr\nzr.ey.ye.rz\na.........x\nyt.ey.ye.ty\nrzepe.epezr\nzrye...eyrz\nrzry...yrzr\nzrzrytyrzrz\n\nmessage j’ai vaincu\nmessage d'un coup d'epee, j’ai fait sauter la couronne du roi\n\nzrzrzazrzrz\nrzrzr.rzrzr\nzrzrz.zrzrz\nrprpr.rprpr\nzezez.zezez\nr.........r\nz.yt.e.ty.z\nr....e....r\nztyty.ytytz\nrzrzr.rzrzr\nzrzrzxzrzrz\n\nmessage Les boucliers etaient enfonces dans la neige mais il n’y avais personnes derriere eux\n\nzrzrzazrzrz\nrzrzr.rzrzr\nzreez.zeerz\nrz..e....zr\nzpe.tet.epz\nry..zpz..yr\nzpe.rer.epz\nrye.....eyr\nzreey.yeerz\nrztpr.rptzr\nzrztzxztzrz\n\nmessage ils se sont enfuis dans la foret, par les plateux et les marais, et les coteaux\nmessage aussi loin que leurs jambes voulaient les porter\n\nzrzrzazrzrz\nrzrzr.rzrzr\nzrpe...rzrz\nrzty...epzr\nzrpe.c.tyrz\nrztycycepzr\nzrpe.c.tyrz\nrzty...epzr\nzrzrt.ttyrz\nrzrzr.rzrzr\nzrzrzxzrzrz\n\nmessage j’ai defendu l’oeuvre de ma vie et le salut de mon ame\n\nzrzrzazrzrz\nrzrzr.rzrzr\nzpe.z.z.epz\nretyr.r.ter\nz..c...c..z\nr.t.tyt.t.r\nz.z.zrz.z.z\nr..c...c..r\nzet.y.ytyez\nrpe.r.r.epr\nztytzxztttz\n\nmessage ai-je l’air d un roi maintenant?\n\nrzrzrarzrzr\nzpe...zpzpz\nryt..yrerer\nzrz..r....z\nrzpe...y..r\nzry..t..yez\nrpr.tpt.rpr\nzez.zez.ztz\nr...r.r..zr\nz..tz...yzz\nrzrzrxtyrzr\n\nmessage chaque jour je doit regarder l’avenir en souriant\nmessage comme si j’etait sur de mon droit, de ma victoire et de mon succes\n\nzrzrzazrzrz\nr.........r\nz.e.e.e.e.z\nrypypypypyr\nzryryr.ryrz\nrppzpe.epzr\nzeeryt..yrz\nr...rzt...r\nz.y..pe.y.z\nr...t.t...r\nztytzxztytz \n\nmessage n’y a t’il donc la haut aucune loi certaine sur laquelle tout doit se regler?\n\nzrzrzazrzrz\nrprzr.rzrzr\nzezpe.epzrz\nr..e...erzr\nz.y..t..zpz\nr...tzt..er\nzty.zrz.e.z\nrz..r.r...r\nzre.....etz\nrzptt.ttpzr\nzryrzxzryrz\n\nmessage il y a une peur secrete dans cette victoire\n\nrzrzrarzrzr\nz.........z\nr..ctyte..r\nz.epepepc.z\nrytet.tetyr\nzpzpz.zpzpz\nreryr.ryrer\nz..c...c..z\nr..y.y.y..r\nz..c...c..z\nrytztxtztyr\n\nmessage si j’essaie de me voir comme le juste roi, il faut que je le fasse par artifice,\nmessage par une construction astucieuse, une oeuvre audacieuse\n\nrzrzrarzrzr\nzrzrz.zrzrz\nrpe.....epr\nztyt.ty.ytz\nrpe..c..epr\nztycy.ycytz\nrpe..c..epr\nzty.y.y.ytz\nrzr..cc.rzr\nzrztyxytzrz\nrzrzrxrzrzr\n\nmessage le roi etait-il d une autre etoffe que moi?\nmessage serait-il parmis ceux qui ont de la chance?\n\nrzrzrarzrzr\nz.....zpe.z\nr.t.tcryt.r\nz.c.....z.z\nr.tytetcr.r\nz...cpz...z\nretctyr.t.r\nzpz.....c.z\nryrctyt.tyr\nz...c...epz\nrytytxtytyr\n\nmessage mon royaume?\nmessage il est sombre, comme celui de l’ange qui se dressa contre dieu.\n\nrzrzrarzrzr\nzrzr...rzrz\nrzpe....epr\nzrytccccytz\nrpe.....epr\nzty.yt.tytz\nrpe....epzr\nztycccctyrz\nrzpe...epzr\nzryt...tyrz\nrzrztxtzrrr\n\nmessage que n ai-je sacrifie pour ce trone ou je ne suis pas parvenu?\n\nrzrzrarzrzr\nzrz.....zpz\nrz..tct..er\nz..t.c.t..z\nr.tpecept.r\nz.zpecepz.z\nr..y.c.y..r\nz...ycy..tz\nret.....tzr\nzpzty.ytzrz\nryrzrxrzrzr\n\nmessage je voulais etre le plus grand dans ce pays\nmessage seigneur voyez, je m’humilie devant vous, je suis le plus minable de tous!\n\nrzrzrarzrzr\nzrz....rprz\nrz...y..ezr\nzt.e.r..epz\nrpe...ty.yr\nzt.ty...epz\nrpe..y.e.yr\nzte..r...rz\nrzpy....tzr\nzrzry.ytzrz\nrzrzrxrzrzr\n\nmessage je suis un pauvre homme, je n’ais que ma vie a donner\nmessage prennez la et sauvez la pensee royale\nmessage -vous avez perdu-\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick","tick",2,"tick","tick",2,"tick",3,"tick","tick",3,"tick",2,"tick","tick",2,"tick","tick",2,"tick",2,"tick","tick",2,"tick",1,"tick","tick",1,"tick","tick","tick","tick","tick","tick",1,"tick",1,"tick","tick",1,"tick","tick","tick",0,"tick","tick",0,"tick","tick","tick","tick","tick","tick","tick"],"background plant3:0,background plant4 snow3:1,0,background plant4:2,0,2,background plant3 snow4:3,2,0,2,0,\n2,0,background plant4 snow4:4,0,background prisoner:5,background plant1:6,5,6,background plant4 snow1:7,0,7,\n0,1,background enemy:8,background:9,8,9,8,background enemy snow3:10,8,background plant2:11,0,\n2,0,8,9,9,background player snow6:12,background soldier upmarker:13,background upmarker:14,8,5,11,\n0,2,0,8,11,background plant3 snow2:15,2,background leftmarker:16,6,2,background plant3 snow3:17,\nbackground downmarker:18,background downmarker snow2:19,background downmarker snow4:20,background rightmarker:21,8,5,8,16,background snow1:22,9,background exit:23,\n0,2,15,background rightmarker snow4:24,11,0,2,16,background plant1 snow6:25,2,0,\n2,0,8,18,18,20,18,16,14,9,11,\n0,2,8,background snow3:26,8,9,8,8,8,background plant2 snow1:27,15,\n2,0,background plant4 snow6:28,0,5,6,5,6,background plant4 snow2:29,0,2,\n0,2,0,4,15,2,0,2,0,29,17,\n",13,"1627778178860.0981"] ], [ `gallery: boxes & balloons`, - ["title Boxes & Balloons\nauthor Ben Reilly\nhomepage ben-reilly.com\ncolor_palette amiga\nrealtime_interval 0.1\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\nLightGrey LightGrey\n00010\n11111\n01000\n11111\n00010\n\nExit\nYellow Brown\n.111.\n11111\n11111\n10111\n11111\n\nWall\nDarkGrey DarkGrey\n00010\n11111\n01000\n11111\n00010\n\nPlayer\ndarkbrown LightBrown orange\n.000.\n.111.\n22222\n.222.\n.0.0.\n\nDeadPlayer\ndarkred lightred red darkred\n.000.\n.111.\n22222\n.222.\n.3.3.\n\nCrate\nOrange Lightbrown\n00000\n01110\n01110\n01110\n00000\n\nStuckCrate\nDarkGrey Grey\n00000\n01110\n01110\n01110\n00000\n\nBalloon\nBlue Grey\n.000.\n00000\n.000.\n..1..\n.11..\n\nPoppingBalloon\nBlue Grey\n.0.0.\n0...0\n.0.0.\n..1.\n.1...\n\nLadderMain\nBrown\n.0.0.\n.000.\n.0.0.\n.000.\n.0.0.\n\nLadderTop\nBrown\n.....\n.....\n.0.0.\n.000.\n.0.0.\n\nLadderBottom\nBrown\n.0.0.\n.000.\n.0.0.\n.....\n.....\n\nDownSpike\ndarkgrey red\n..0..\n..0..\n..1..\n.....\n.....\n\nUpSpike\ndarkgrey red\n.....\n.....\n..1..\n..0..\n..0..\n\nRightSpike\nDarkgrey red\n.....\n.....\n001..\n.....\n.....\n\nLeftSpike\nDarkgrey red\n.....\n.....\n..100\n.....\n.....\n\n(Weights/forces acting on objects; Wx, where x is the amount of downward pushing force applied to an object. Note that there is only one negative one, since we do top-down force calculations, so we only need to know if an object is moving up, not with how much force.)\nFreeBody\nWhite\n\nWn1\nGrey\n\nW0\nGrey\n\nW1\nGrey\n\nW2\nGrey\n\nW3\nGrey\n\nW4\nGrey\n\nW5\nGrey\n\nFinal\nBlack\n\nTimeTick\nBlue\n\nAllowMove\nRed\n\nShadow\nBlack\n\nSound\nGrey\n\n\n=======\nLEGEND\n=======\nLadder = LadderMain or LadderTop or LadderBottom\n\nStatus = TimeTick or AllowMove or Sound\n\n. = Background\n# = Wall and Background\nP = Player\nC = Crate\nB = Balloon\n\nt = LadderTop\nL = LadderMain\nm = LadderBottom\n\n- = Crate and LadderMain\n+ = Balloon and LadderMain\n* = Player and LadderMain\n\n/ = Crate and LadderTop\n\n0 = upspike\n1 = rightspike\n2 = downspike\n3 = leftspike\n\nX = Exit\n\nW = Wn1 or W0 or W1 or W2 or W3 or W4 or W5\nFB = FreeBody\n\nUpper = Balloon\nDowner = Crate or Player\nObj = Upper or Downer\n\nSpike = Upspike or Downspike or Leftspike or Rightspike\nvertspike = upspike or downspike\nhorizspike = leftspike or rightspike\n\nGround = Obj or StuckCrate or Wall or Ladder\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 53548707\nBalloon MOVE 798907\n\nsfx5 15551704\nsfx6 12412104\nsfx7 50943104\n\n================\nCOLLISIONLAYERS\n================\n\nStatus\nFB\nW, Final\nShadow\nBackground\nLadder, Exit\nPlayer, Wall, Crate, Balloon, StuckCrate, PoppingBalloon, DeadPlayer\nSpike\n\n======\nRULES\n======\n\n(Mark if player is moving or not.)\n[orthogonal Player] [Exit no AllowMove] -> CANCEL\n[orthogonal Player] [timetick] -> [orthogonal Player] [no timetick]\n[stationary Player] [Exit no timetick] -> [Player] [Exit TimeTick]\n\n(If player moves, resolve gravity on the player before allowing another move.)\n[Player no Shadow] -> [Player Shadow]\nlate [Exit no AllowMove] -> [Exit AllowMove]\nlate [Player no Shadow] [AllowMove] -> [Player] []\nlate [Shadow] -> []\n\n(**********************************************************)\n(***PLAYER-CAUSED MOTION***)\n(**********************************************************)\n\n(Player cannot move vertically, except on ladders, and to exit a ladder from below.)\n[Exit no TimeTick] [vertical Player no Ladder] -> [Exit] [Player]\nup [Exit no TimeTick] [> Player Ladder | no Ladder] -> [Exit] [ Player Ladder | ]\n\n(Player cannot move horizontally mid-air)\ndown [Exit no TimeTick] [horizontal Player no Ladder | no Ground] -> [Exit] [Player |]\n\n(Player pushes things, things push things. Includes vertical movement because players are strong and grip ladders really tightly.)\n[Exit no TimeTick] [> Obj | Obj] -> [Exit] [> Obj | > Obj]\n\n(**********************************************************)\n(***GRAVITY***)\n(**********************************************************)\n(Idea: Apply gravitational forces to objects that are not being moved by the player. Process them from the top of a stack of objects downward, balancing the sum of positive (downward) and negative (upward) forces.\n\nSince we're processing downward, any object determined to be moving upwards is definitely moving upwards. Such an object indicates the bottom of a sub-stack, and the next object in the stack starts the calculation over.\n\nWhen we reach the bottom of a (sub-)stack, the movement of the final, lowest object tells us how the whole (sub-)stack will move, so we apply that movement iteratively upwards.\n\nNOTE: Players can grip ladders really tightly, so they are only affected by stack gravity when the player is not on a ladder.\n)\n\n(***STEP 1: Mark the bodies that the player is not affecting.***)\n[TimeTick] [stationary Balloon no FB] -> [TimeTick] [Balloon FB]\n[TimeTick] [stationary Crate no FB] -> [TimeTick] [Crate FB]\n[TimeTick] [stationary Player no Ladder no FB] -> [TimeTick] [Player FB]\n\n(***STEP 2: Begin the gravity calc at top of each stack.***)\ndown [no FB | Upper FB] -> [ | < Upper FB Wn1]\ndown [no FB | Downer FB] -> [ | > Downer FB W1]\n\n(***STEP 3: Iteratively apply gravity downward on stack.***)\n(1. DOWNWARD MOTION)\n down [> Obj W1 | Upper FB] -> [ Obj | Upper FB W0]\n + down [> Obj W2 | Upper FB] -> [> Obj | > Upper FB W1]\n + down [> Obj W3 | Upper FB] -> [> Obj | > Upper FB W2]\n + down [> Obj W4 | Upper FB] -> [> Obj | > Upper FB W3]\n + down [> Obj W5 | Upper FB] -> [> Obj | > Upper FB W4]\n\n + down [> Obj W1 | Downer FB] -> [> Obj | > Downer FB W2]\n + down [> Obj W2 | Downer FB] -> [> Obj | > Downer FB W3]\n + down [> Obj W3 | Downer FB] -> [> Obj | > Downer FB W4]\n + down [> Obj W4 | Downer FB] -> [> Obj | > Downer FB W5]\n + down [> Obj W5 | Downer FB] -> [> Obj | > Downer FB W5](!!)\n(2. UPWARD MOTION)\n (doesn't affect next; re-apply top-of-stack rules)\n + down [< Obj W | Upper FB] -> [< Obj Final | < Upper FB Wn1]\n + down [< Obj W | Downer FB] -> [< Obj Final | > Downer FB W1]\n(3. NO MOTION)\n (possibly subject to next obj; re-apply top-of-stack rules)\n + down [stationary Obj W | Upper FB] -> [< Obj Final | < Upper FB Wn1]\n + down [stationary Obj W | Downer FB] -> [ Obj | > Downer FB W1]\n\n(***Step 4: Stop at bottom of stack.***)\n(As with beginning a stack, if the stack is pushing into a non-free object, the stack remains still or else it might interrupt the other object's motion.)\ndown [Obj W | no FB] -> [Obj Final | ]\n\n(***Step 5: Apply bottom-of-sub-stack motion to whole sub-stack.)\n(1. UPWARD MOTION)\n up [> Obj Final | Obj FB no Final] -> [> Obj Final| > Obj Final]\n(2. DOWNWARD MOTION)\n + up [< Obj Final | Obj FB no Final] -> [< Obj Final | Obj Final]\n(3. NO MOTION)\n + up [stationary Obj Final | Obj FB no Final] -> [Obj Final | Obj Final]\n\n(**********************************************************)\n(***Cleanup***)\nlate [W] -> []\nlate [Final] -> []\nlate [FreeBody] -> []\n\n(\n(Horizontal motion has the right-of-way.)\nvertical [> Obj | horizontal Obj] -> [Obj | horizontal Obj]\n)\n\n(Spikes)\n[poppingballoon] -> []\nvertical [> balloon | vertspike] -> [> poppingballoon | vertspike]\nhorizontal [> balloon | horizspike] -> [> poppingballoon | horizspike]\nlate [poppingballoon no spike] -> [balloon]\nlate [poppingballoon] -> sfx5\n\nvertical [> Crate | vertspike] -> [> stuckcrate | vertspike]\nhorizontal [> Crate | horizspike] -> [> stuckcrate | horizspike]\nlate [stuckcrate no spike] -> [Crate]\nlate [stuckcrate no Sound] -> [StuckCrate Sound] sfx6\n\nvertical [> Player | vertspike] -> [> DeadPlayer | vertspike]\nhorizontal [> Player | horizspike] -> [> DeadPlayer | horizspike]\nlate [DeadPlayer no spike] -> [Player]\nlate [DeadPlayer no Sound] -> [DeadPlayer Sound] sfx7\n\n==============\nWINCONDITIONS\n==============\n\nAny Exit on Player\n\n=======\nLEVELS\n=======\n\nMessage Version 1.2\n\nMessage Level 1\n\n##########\n##tcc.####\n##l##.####\n##l#..####\n##l#..####\n#pl#....x#\n#######.##\n#######.##\n##########\n\nMessage Level 2\n\n#########\n##..tp..#\n##..l#c.#\n##..l.c.#\n##t.l.c.#\n#.l######\n#.l....x#\n####...##\n#########\n\nMessage Level 3\n\n##########\n##tc....##\n##lc....##\n##lc....##\n##l#....##\n##l.....##\n##lp..#.##\n#.l####.x#\n#.l.....##\n##########\n\nMessage Level 4\n\n##############\n#t...........#\n#l#####......#\n#lc..........#\n#l####.......#\n#lc..........#\n#l###........#\n#lc..........#\n#l##.........#\n#lc..........#\n#l#.........x#\n#l...p....#.##\n##############\n\nMessage Level 5\n\n##########\n##########\n#p.tb..x.#\n###l#.####\n###lb.####\n##########\n##########\n\nMessage Level 6\n\n###############\n#..x.b.......t#\n#####.###.###l#\n#####.###.###l#\n#....p.b.....l#\n#######b#######\n#######b#######\n#######b#######\n###############\n\nMessage Level 7\n\n###############\n#t.......b.x..#\n#l###.###.#####\n#l###.###.#####\n#l...p.b......#\n#######b#######\n#######b#######\n#######b#######\n###############\n\nMessage Level 8\n\n####################\n##.#################\n##t...........x.####\n##l######.#######.##\n##l..............t##\n#######.###.#####l##\n#.#####.###.#####l##\n#t...............l##\n#l###.###.###.######\n#l###.###.###.######\n#l###.###.###.######\n#l.b...b...b...b..p#\n###b###b###b###b####\n###b###b###b###b####\n###b###b###b########\n####################\n\nMessage Level 9\n\n###########\n#####t...##\n#####l##.##\n#x.pclb..##\n##.###b####\n######.####\n###########\n###########\n\nMessage Level 10\n\n#############\n#...........#\n#.x...pt....#\n####c##l##c.#\n#...b..l..b.#\n#......l..b.#\n#############\n\nMessage Level 11\n\n############\n####.#######\n#.p.t.....##\n####lc###.##\n####lc....##\n####lc###.##\n####lb....##\n####lb....##\n####lb.....#\n####l.....x#\n######..#.##\n######..#.##\n############\n############\n\nMessage Level 12\n\n############\n#......c...#\n#t.p.t.b.x.#\n#l###-#b####\n#l...+..####\n#l...l..####\n############\n\nMessage Level 13\n\n###############\n#..cbc......t.#\n#..#.#######l##\n#..#.#.....cl.#\n#..#.#.....bl.#\n#..#.b..c..bl.#\n#..#.#..###.l.#\n#..#.#######l##\n#.t.........l.#\n##l############\n#.l...........#\n#.l.p.....x...#\n#######c#######\n#######b#######\n#######b#######\n###############\n\nMessage Level 14\n\n#############\n##########.##\n##########.##\n##########.##\n#t../..b.p.x#\n#l##+##b##.##\n#l..+...#####\n####+########\n####l########\n####l########\n#############\n\nMessage Level 15\n\n###########\n####ttt####\n####l-l####\n###pl-l.###\n####l+l####\n####l+l####\n#####m#####\n#####.#####\n#####.#####\n#####.#####\n####.....x#\n#####.#.###\n#######.###\n###########\n\nMessage Level 16\n\n###############\n#t.t.p.t.b..x3#\n#l#l###l#.#####\n#l#m###l#.#####\n#l#..bbm#.#####\n#l#####.b.#####\n#l#####.#######\n#l......#######\n###############\n\nMessage Level 17\n\n################\n#############.##\n#t..p.........x#\n#l######.##.#.##\n#l###t.t.##c####\n#l###l#l...c.###\n#l###l#l###b####\n#l###l#l###b####\n#l###l#l###.####\n#l###l.l########\n#l#####l########\n#lbbbbbl########\n#######l########\n#######0########\n################\n\nMessage Level 18\n\n#################\n####c############\n####c############\n####c############\n##t.c...........#\n##l####.........#\n##l.............#\n##l......p.t....#\n##l.....###l....#\n#.l........l....#\n#.l....0...l...x#\n#############.###\n#############.###\n#############.###\n#############.###\n#################\n\nMessage Level 19\n\n############\n#########2##\n#t........##\n#l###.###.##\n#l#tc3#t.t##\n#l#lb.#l#l##\n#l#lb3#l#l.#\n#l.l...l.l.#\n#l###.###-##\n#l###..x#+##\n#l###.###l##\n#l.p.0...l##\n############\n\nMessage Level 20\n\n############\n#t.p.....x.#\n#l#####.####\n#l#2#2#.####\n#l.t....####\n#l#l#c#.####\n#l.-.c..####\n#l#+#b..####\n#l.l###.####\n###l..b3####\n############\n\nMessage Level 21\n\n##########\n####2#####\n#tp..2.x3#\n#l##tt####\n#l..ll...#\n####--####\n#tb.++.bt#\n#l##ll##l#\n#l##ll##l#\n#l##ll##l#\n#l..ll..l#\n##########\n\nMessage Level 22\n\n#####################\n###...........t.#####\n###.##########l..####\n###.#####.....l...###\n#.t.t...2..c..l....##\n#.m#l###.#####l.....#\n##cbl#x.......l.....#\n##b.l###1.....l.p..t#\n##.#l###.##########l#\n##.bl###....2......l#\n##..l#######.###.##l#\n##0.l.........b....l#\n##############b######\n##############b######\n##############b######\n##############b######\n#####################\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", 1, "tick", "tick", 1, "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", 1, "tick", 3, "tick", "tick", 3, "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "restart", "tick", "tick", 1, "tick", "tick", 1, "tick", 1, "tick", "tick", 1, "tick", 1, "tick", "tick", 1, "tick", 1, "tick", "tick", 1, "tick", 1, "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 0, "tick", "tick", 0, "tick", "tick", "tick", "tick", 0, "tick", 0, "tick", "tick", 0, "tick", 3, "tick", "tick", 3, "tick", "tick", 3, "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background balloon:1,background laddertop:2,background laddermain:3,3,3,3,0,0,0,0,0,background:4,2,3,3,0,0,4,\n0,0,0,4,0,0,0,0,0,0,4,0,4,0,0,4,0,0,0,1,\n1,1,4,0,0,0,4,0,4,0,0,4,0,0,0,4,0,0,0,0,\n0,0,4,0,4,0,0,4,4,4,4,background player:5,0,0,0,0,0,0,4,0,\n4,0,0,1,0,0,0,4,0,0,0,0,0,0,4,0,4,4,4,4,\n0,0,0,1,1,1,4,0,0,0,4,0,4,0,0,4,0,0,0,4,\n0,0,0,0,0,0,4,4,4,0,0,1,4,4,4,4,0,0,0,0,\n0,0,4,0,4,0,0,4,0,0,0,4,0,0,0,0,0,0,4,0,\n4,4,4,4,0,0,0,1,1,1,4,0,0,0,4,0,4,0,0,4,\n0,0,0,4,0,0,0,0,0,0,4,0,4,0,0,1,4,4,4,4,\n0,0,0,0,0,0,allowmove background exit:6,0,4,0,0,4,0,0,0,4,0,0,0,0,\n0,0,4,0,4,0,0,4,0,0,0,1,1,4,0,0,0,0,0,0,\n4,0,0,4,0,0,0,4,0,0,0,0,0,0,0,4,2,3,3,3,\n0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 16, "1627778214486.7048"] + ["title Boxes & Balloons\nauthor Ben Reilly\nhomepage ben-reilly.com\ncolor_palette amiga\nrealtime_interval 0.1\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\nLightGrey LightGrey\n00010\n11111\n01000\n11111\n00010\n\nExit\nYellow Brown\n.111.\n11111\n11111\n10111\n11111\n\nWall\nDarkGrey DarkGrey\n00010\n11111\n01000\n11111\n00010\n\nPlayer\ndarkbrown LightBrown orange\n.000.\n.111.\n22222\n.222.\n.0.0.\n\nDeadPlayer\ndarkred lightred red darkred\n.000.\n.111.\n22222\n.222.\n.3.3.\n\nCrate\nOrange Lightbrown\n00000\n01110\n01110\n01110\n00000\n\nStuckCrate\nDarkGrey Grey\n00000\n01110\n01110\n01110\n00000\n\nBalloon\nBlue Grey\n.000.\n00000\n.000.\n..1..\n.11..\n\nPoppingBalloon\nBlue Grey\n.0.0.\n0...0\n.0.0.\n..1.\n.1...\n\nLadderMain\nBrown\n.0.0.\n.000.\n.0.0.\n.000.\n.0.0.\n\nLadderTop\nBrown\n.....\n.....\n.0.0.\n.000.\n.0.0.\n\nLadderBottom\nBrown\n.0.0.\n.000.\n.0.0.\n.....\n.....\n\nDownSpike\ndarkgrey red\n..0..\n..0..\n..1..\n.....\n.....\n\nUpSpike\ndarkgrey red\n.....\n.....\n..1..\n..0..\n..0..\n\nRightSpike\nDarkgrey red\n.....\n.....\n001..\n.....\n.....\n\nLeftSpike\nDarkgrey red\n.....\n.....\n..100\n.....\n.....\n\n(Weights/forces acting on objects; Wx, where x is the amount of downward pushing force applied to an object. Note that there is only one negative one, since we do top-down force calculations, so we only need to know if an object is moving up, not with how much force.)\nFreeBody\nWhite\n\nWn1\nGrey\n\nW0\nGrey\n\nW1\nGrey\n\nW2\nGrey\n\nW3\nGrey\n\nW4\nGrey\n\nW5\nGrey\n\nFinal\nBlack\n\nTimeTick\nBlue\n\nAllowMove\nRed\n\nShadow\nBlack\n\nSound\nGrey\n\n\n=======\nLEGEND\n=======\nLadder = LadderMain or LadderTop or LadderBottom\n\nStatus = TimeTick or AllowMove or Sound\n\n. = Background\n# = Wall and Background\nP = Player\nC = Crate\nB = Balloon\n\nt = LadderTop\nL = LadderMain\nm = LadderBottom\n\n- = Crate and LadderMain\n+ = Balloon and LadderMain\n* = Player and LadderMain\n\n/ = Crate and LadderTop\n\n0 = upspike\n1 = rightspike\n2 = downspike\n3 = leftspike\n\nX = Exit\n\nW = Wn1 or W0 or W1 or W2 or W3 or W4 or W5\nFB = FreeBody\n\nUpper = Balloon\nDowner = Crate or Player\nObj = Upper or Downer\n\nSpike = Upspike or Downspike or Leftspike or Rightspike\nvertspike = upspike or downspike\nhorizspike = leftspike or rightspike\n\nGround = Obj or StuckCrate or Wall or Ladder\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 53548707\nBalloon MOVE 798907\n\nsfx5 15551704\nsfx6 12412104\nsfx7 50943104\n\n================\nCOLLISIONLAYERS\n================\n\nStatus\nFB\nW, Final\nShadow\nBackground\nLadder, Exit\nPlayer, Wall, Crate, Balloon, StuckCrate, PoppingBalloon, DeadPlayer\nSpike\n\n======\nRULES\n======\n\n(Mark if player is moving or not.)\n[orthogonal Player] [Exit no AllowMove] -> CANCEL\n[orthogonal Player] [timetick] -> [orthogonal Player] [no timetick]\n[stationary Player] [Exit no timetick] -> [Player] [Exit TimeTick]\n\n(If player moves, resolve gravity on the player before allowing another move.)\n[Player no Shadow] -> [Player Shadow]\nlate [Exit no AllowMove] -> [Exit AllowMove]\nlate [Player no Shadow] [AllowMove] -> [Player] []\nlate [Shadow] -> []\n\n(**********************************************************)\n(***PLAYER-CAUSED MOTION***)\n(**********************************************************)\n\n(Player cannot move vertically, except on ladders, and to exit a ladder from below.)\n[Exit no TimeTick] [vertical Player no Ladder] -> [Exit] [Player]\nup [Exit no TimeTick] [> Player Ladder | no Ladder] -> [Exit] [ Player Ladder | ]\n\n(Player cannot move horizontally mid-air)\ndown [Exit no TimeTick] [horizontal Player no Ladder | no Ground] -> [Exit] [Player |]\n\n(Player pushes things, things push things. Includes vertical movement because players are strong and grip ladders really tightly.)\n[Exit no TimeTick] [> Obj | Obj] -> [Exit] [> Obj | > Obj]\n\n(**********************************************************)\n(***GRAVITY***)\n(**********************************************************)\n(Idea: Apply gravitational forces to objects that are not being moved by the player. Process them from the top of a stack of objects downward, balancing the sum of positive (downward) and negative (upward) forces.\n\nSince we're processing downward, any object determined to be moving upwards is definitely moving upwards. Such an object indicates the bottom of a sub-stack, and the next object in the stack starts the calculation over.\n\nWhen we reach the bottom of a (sub-)stack, the movement of the final, lowest object tells us how the whole (sub-)stack will move, so we apply that movement iteratively upwards.\n\nNOTE: Players can grip ladders really tightly, so they are only affected by stack gravity when the player is not on a ladder.\n)\n\n(***STEP 1: Mark the bodies that the player is not affecting.***)\n[TimeTick] [stationary Balloon no FB] -> [TimeTick] [Balloon FB]\n[TimeTick] [stationary Crate no FB] -> [TimeTick] [Crate FB]\n[TimeTick] [stationary Player no Ladder no FB] -> [TimeTick] [Player FB]\n\n(***STEP 2: Begin the gravity calc at top of each stack.***)\ndown [no FB | Upper FB] -> [ | < Upper FB Wn1]\ndown [no FB | Downer FB] -> [ | > Downer FB W1]\n\n(***STEP 3: Iteratively apply gravity downward on stack.***)\n(1. DOWNWARD MOTION)\n down [> Obj W1 | Upper FB] -> [ Obj | Upper FB W0]\n + down [> Obj W2 | Upper FB] -> [> Obj | > Upper FB W1]\n + down [> Obj W3 | Upper FB] -> [> Obj | > Upper FB W2]\n + down [> Obj W4 | Upper FB] -> [> Obj | > Upper FB W3]\n + down [> Obj W5 | Upper FB] -> [> Obj | > Upper FB W4]\n\n + down [> Obj W1 | Downer FB] -> [> Obj | > Downer FB W2]\n + down [> Obj W2 | Downer FB] -> [> Obj | > Downer FB W3]\n + down [> Obj W3 | Downer FB] -> [> Obj | > Downer FB W4]\n + down [> Obj W4 | Downer FB] -> [> Obj | > Downer FB W5]\n + down [> Obj W5 | Downer FB] -> [> Obj | > Downer FB W5](!!)\n(2. UPWARD MOTION)\n (doesn't affect next; re-apply top-of-stack rules)\n + down [< Obj W | Upper FB] -> [< Obj Final | < Upper FB Wn1]\n + down [< Obj W | Downer FB] -> [< Obj Final | > Downer FB W1]\n(3. NO MOTION)\n (possibly subject to next obj; re-apply top-of-stack rules)\n + down [stationary Obj W | Upper FB] -> [< Obj Final | < Upper FB Wn1]\n + down [stationary Obj W | Downer FB] -> [ Obj | > Downer FB W1]\n\n(***Step 4: Stop at bottom of stack.***)\n(As with beginning a stack, if the stack is pushing into a non-free object, the stack remains still or else it might interrupt the other object's motion.)\ndown [Obj W | no FB] -> [Obj Final | ]\n\n(***Step 5: Apply bottom-of-sub-stack motion to whole sub-stack.)\n(1. UPWARD MOTION)\n up [> Obj Final | Obj FB no Final] -> [> Obj Final| > Obj Final]\n(2. DOWNWARD MOTION)\n + up [< Obj Final | Obj FB no Final] -> [< Obj Final | Obj Final]\n(3. NO MOTION)\n + up [stationary Obj Final | Obj FB no Final] -> [Obj Final | Obj Final]\n\n(**********************************************************)\n(***Cleanup***)\nlate [W] -> []\nlate [Final] -> []\nlate [FreeBody] -> []\n\n(\n(Horizontal motion has the right-of-way.)\nvertical [> Obj | horizontal Obj] -> [Obj | horizontal Obj]\n)\n\n(Spikes)\n[poppingballoon] -> []\nvertical [> balloon | vertspike] -> [> poppingballoon | vertspike]\nhorizontal [> balloon | horizspike] -> [> poppingballoon | horizspike]\nlate [poppingballoon no spike] -> [balloon]\nlate [poppingballoon] -> sfx5\n\nvertical [> Crate | vertspike] -> [> stuckcrate | vertspike]\nhorizontal [> Crate | horizspike] -> [> stuckcrate | horizspike]\nlate [stuckcrate no spike] -> [Crate]\nlate [stuckcrate no Sound] -> [StuckCrate Sound] sfx6\n\nvertical [> Player | vertspike] -> [> DeadPlayer | vertspike]\nhorizontal [> Player | horizspike] -> [> DeadPlayer | horizspike]\nlate [DeadPlayer no spike] -> [Player]\nlate [DeadPlayer no Sound] -> [DeadPlayer Sound] sfx7\n\n==============\nWINCONDITIONS\n==============\n\nAny Exit on Player\n\n=======\nLEVELS\n=======\n\nMessage Version 1.2\n\nMessage Level 1\n\n##########\n##tcc.####\n##l##.####\n##l#..####\n##l#..####\n#pl#....x#\n#######.##\n#######.##\n##########\n\nMessage Level 2\n\n#########\n##..tp..#\n##..l#c.#\n##..l.c.#\n##t.l.c.#\n#.l######\n#.l....x#\n####...##\n#########\n\nMessage Level 3\n\n##########\n##tc....##\n##lc....##\n##lc....##\n##l#....##\n##l.....##\n##lp..#.##\n#.l####.x#\n#.l.....##\n##########\n\nMessage Level 4\n\n##############\n#t...........#\n#l#####......#\n#lc..........#\n#l####.......#\n#lc..........#\n#l###........#\n#lc..........#\n#l##.........#\n#lc..........#\n#l#.........x#\n#l...p....#.##\n##############\n\nMessage Level 5\n\n##########\n##########\n#p.tb..x.#\n###l#.####\n###lb.####\n##########\n##########\n\nMessage Level 6\n\n###############\n#..x.b.......t#\n#####.###.###l#\n#####.###.###l#\n#....p.b.....l#\n#######b#######\n#######b#######\n#######b#######\n###############\n\nMessage Level 7\n\n###############\n#t.......b.x..#\n#l###.###.#####\n#l###.###.#####\n#l...p.b......#\n#######b#######\n#######b#######\n#######b#######\n###############\n\nMessage Level 8\n\n####################\n##.#################\n##t...........x.####\n##l######.#######.##\n##l..............t##\n#######.###.#####l##\n#.#####.###.#####l##\n#t...............l##\n#l###.###.###.######\n#l###.###.###.######\n#l###.###.###.######\n#l.b...b...b...b..p#\n###b###b###b###b####\n###b###b###b###b####\n###b###b###b########\n####################\n\nMessage Level 9\n\n###########\n#####t...##\n#####l##.##\n#x.pclb..##\n##.###b####\n######.####\n###########\n###########\n\nMessage Level 10\n\n#############\n#...........#\n#.x...pt....#\n####c##l##c.#\n#...b..l..b.#\n#......l..b.#\n#############\n\nMessage Level 11\n\n############\n####.#######\n#.p.t.....##\n####lc###.##\n####lc....##\n####lc###.##\n####lb....##\n####lb....##\n####lb.....#\n####l.....x#\n######..#.##\n######..#.##\n############\n############\n\nMessage Level 12\n\n############\n#......c...#\n#t.p.t.b.x.#\n#l###-#b####\n#l...+..####\n#l...l..####\n############\n\nMessage Level 13\n\n###############\n#..cbc......t.#\n#..#.#######l##\n#..#.#.....cl.#\n#..#.#.....bl.#\n#..#.b..c..bl.#\n#..#.#..###.l.#\n#..#.#######l##\n#.t.........l.#\n##l############\n#.l...........#\n#.l.p.....x...#\n#######c#######\n#######b#######\n#######b#######\n###############\n\nMessage Level 14\n\n#############\n##########.##\n##########.##\n##########.##\n#t../..b.p.x#\n#l##+##b##.##\n#l..+...#####\n####+########\n####l########\n####l########\n#############\n\nMessage Level 15\n\n###########\n####ttt####\n####l-l####\n###pl-l.###\n####l+l####\n####l+l####\n#####m#####\n#####.#####\n#####.#####\n#####.#####\n####.....x#\n#####.#.###\n#######.###\n###########\n\nMessage Level 16\n\n###############\n#t.t.p.t.b..x3#\n#l#l###l#.#####\n#l#m###l#.#####\n#l#..bbm#.#####\n#l#####.b.#####\n#l#####.#######\n#l......#######\n###############\n\nMessage Level 17\n\n################\n#############.##\n#t..p.........x#\n#l######.##.#.##\n#l###t.t.##c####\n#l###l#l...c.###\n#l###l#l###b####\n#l###l#l###b####\n#l###l#l###.####\n#l###l.l########\n#l#####l########\n#lbbbbbl########\n#######l########\n#######0########\n################\n\nMessage Level 18\n\n#################\n####c############\n####c############\n####c############\n##t.c...........#\n##l####.........#\n##l.............#\n##l......p.t....#\n##l.....###l....#\n#.l........l....#\n#.l....0...l...x#\n#############.###\n#############.###\n#############.###\n#############.###\n#################\n\nMessage Level 19\n\n############\n#########2##\n#t........##\n#l###.###.##\n#l#tc3#t.t##\n#l#lb.#l#l##\n#l#lb3#l#l.#\n#l.l...l.l.#\n#l###.###-##\n#l###..x#+##\n#l###.###l##\n#l.p.0...l##\n############\n\nMessage Level 20\n\n############\n#t.p.....x.#\n#l#####.####\n#l#2#2#.####\n#l.t....####\n#l#l#c#.####\n#l.-.c..####\n#l#+#b..####\n#l.l###.####\n###l..b3####\n############\n\nMessage Level 21\n\n##########\n####2#####\n#tp..2.x3#\n#l##tt####\n#l..ll...#\n####--####\n#tb.++.bt#\n#l##ll##l#\n#l##ll##l#\n#l##ll##l#\n#l..ll..l#\n##########\n\nMessage Level 22\n\n#####################\n###...........t.#####\n###.##########l..####\n###.#####.....l...###\n#.t.t...2..c..l....##\n#.m#l###.#####l.....#\n##cbl#x.......l.....#\n##b.l###1.....l.p..t#\n##.#l###.##########l#\n##.bl###....2......l#\n##..l#######.###.##l#\n##0.l.........b....l#\n##############b######\n##############b######\n##############b######\n##############b######\n#####################\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick",1,"tick",1,"tick","tick",1,"tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick",1,"tick","tick",1,"tick",3,"tick","tick",3,"tick","tick",3,"tick","tick","tick","tick","tick",3,"tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","restart","tick","tick",1,"tick","tick",1,"tick",1,"tick","tick",1,"tick",1,"tick","tick",1,"tick",1,"tick","tick",1,"tick",1,"tick","tick",1,"tick","tick","tick",1,"tick","tick","tick","tick",1,"tick","tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick",1,"tick","tick","tick","tick",0,"tick","tick",0,"tick","tick","tick","tick",0,"tick",0,"tick","tick",0,"tick",3,"tick","tick",3,"tick","tick",3,"tick",3,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background balloon:1,background laddertop:2,background laddermain:3,3,3,3,0,0,0,0,0,background:4,2,3,3,0,0,4,\n0,0,0,4,0,0,0,0,0,0,4,0,4,0,0,4,0,0,0,1,\n1,1,4,0,0,0,4,0,4,0,0,4,0,0,0,4,0,0,0,0,\n0,0,4,0,4,0,0,4,4,4,4,background player:5,0,0,0,0,0,0,4,0,\n4,0,0,1,0,0,0,4,0,0,0,0,0,0,4,0,4,4,4,4,\n0,0,0,1,1,1,4,0,0,0,4,0,4,0,0,4,0,0,0,4,\n0,0,0,0,0,0,4,4,4,0,0,1,4,4,4,4,0,0,0,0,\n0,0,4,0,4,0,0,4,0,0,0,4,0,0,0,0,0,0,4,0,\n4,4,4,4,0,0,0,1,1,1,4,0,0,0,4,0,4,0,0,4,\n0,0,0,4,0,0,0,0,0,0,4,0,4,0,0,1,4,4,4,4,\n0,0,0,0,0,0,allowmove background exit:6,0,4,0,0,4,0,0,0,4,0,0,0,0,\n0,0,4,0,4,0,0,4,0,0,0,1,1,4,0,0,0,0,0,0,\n4,0,0,4,0,0,0,4,0,0,0,0,0,0,0,4,2,3,3,3,\n0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",16,"1627778214486.7048"] ], [ `gallery: pushcat junior`, - ["title Pushcat Jr\nauthor Zut!\nhomepage zutgames.com/pushcat\nrealtime_interval 0.3\n\n\n========\nOBJECTS\n========\n\nBackground \n#150f28 #320f45 #200f2e\n20000\n00100\n00002\n10000\n00020\n\nEarth\n #511d37 #1b1132 #9a5971\n20000\n00100\n00002\n10000\n00020\n\nWall \n#584a4e #70a169 #b4d157 \n11111\n12221\n12221\n11111\n00000\n\nPlayer \n#F4D0B4 #9746b2 White DarkBlue\n1...1\n11011\n13031\n12221\n.101.\n\n\nGem1\n#feeba0 #feb704 #ae1a0f\n..0..\n.011.\n01012\n.112.\n..2..\n\nGem2\n#aeddfe #43a9f7 #1f37be\n.001.\n00111\n01012\n01122\n.222.\n\n\n\nBoulder\n#94b4a6 #7d9282 #556a64\n.000.\n00001\n00012\n00122\n.122.\n\nCoin\nWhite\n.....\n..0..\n.000.\n..0..\n.....\n\nExp\nWhite\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nWarn\nBlack\n.....\n.....\n.....\n.....\n.....\n\nVoid\nBlack\n.....\n.....\n.....\n.....\n.....\n\n\nLost\nRed\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nGen\n#b2b2b2 #736c6c #4d4040 black\n.122.\n13232\n12222\n10002\n1...2\n\n\nBomb\n#94b4a6 #7d9282 #556a64 Green\n.000.\n03031\n00012\n03332\n.122.\n\nBoom1\n#94b4a6 #7d9282 #556a64 Red\n.000.\n03031\n00012\n03332\n.122.\n\nBoom2\n#94b4a6 #7d9282 #556a64 Red\n.000.\n03031\n00012\n03332\n.122.\n\n\nBoom3\n#94b4a6 #7d9282 #556a64 Red\n.000.\n03031\n00012\n03332\n.122.\n\nBoom4\nRed\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nBoom5\nRed\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\n+ = Earth\n# = Wall\nP = Player\n0 = Boulder\n1 = Gem1\n2 = Gem2\nC = Coin\nX = Exp\n- = Void\nG = Gen\nW = Warn\nB = Bomb\n\nPushable = Gem1 or Gem2 or 0 or C or B\nFallable = Pushable or C or B\nObstacle = Pushable or Wall or P or C or Earth or Exp \nScorer = Gem1 or Gem2 or C or Exp\nExplodes=Fallable or P or Obstacle or Pushable \n\n\n\n=======\nSOUNDS\n=======\nplayer move 99217507\nsfx0 53304307\nsfx1 35514907\nsfx2 80864700\nsfx3 19899703\n\nEndLevel 96487708\nRestart 32376701\n================\nCOLLISIONLAYERS\n================\n\nBackground\nVoid, Lost, Warn\nPlayer, Wall, Gem1, Gem2, Boulder, Coin, Exp, Gen, Earth, Bomb, Boom1, Boom2, Boom3, Boom4, Boom5\n\n\n======\nRULES \n====== \n\n\n\ndown [ stationary Fallable | no Obstacle] -> [ | down Fallable ] \n\n\n \n\n\n [ > P | C ] -> [ > P | ] SFX2\n [ > P | Earth ] -> [ > P | ] SFX1 \n [ Exp ] -> [ Coin ]\n\nHorizontal [ > P | Pushable ] -> [ > P | > Pushable ] SFX0\nHorizontal [ moving Pushable | Pushable ] -> [moving Pushable| moving Pushable]\n \n[Boom4 ]->[]\n[Explodes | Boom3 ] -> [ Boom4 | Boom3]\n[Explodes | Boom3 ] -> [ Boom4 | Boom4]\n[Boom2] -> [Boom3]\n[Boom1] -> [Boom2] \n\n\nlate [Scorer Warn] -> [Scorer Warn] message Don't lose any gems or coins!\n[Scorer Void] -> Restart\n[0 Void] -> [ Void ]\n[0 Warn] -> [ Warn ]\n\n\n\n\nlate [ Gem1 | Gem1 | Gem1 ] -> [ Exp | Exp | Exp ] SFX3\nlate [ Gem2 | Gem2 | Gem2 ] -> [ Exp | Exp | Exp ] SFX3\n\n\nlate [ Bomb | Bomb | Bomb ] -> [ Boom1 | Boom1 | Boom1 ] \nlate [Boom5]->[Boom4]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nNo Scorer \nNo Lost\n\n\n======= \nLEVELS\n=======\n\n\nMESSAGE Cave 1: School of Push\n\n############\n#p..1.1....#\n##########.#\n#...2..2.#.#\n#.###..#.#.#\n#........#1#\n#.0...2..#+#\n#++#######+#\n#++0+++++0+#\n#+++++0++++#\n############\n\n\nMESSAGE Cave 2: Dirty Paws\n\n........0.....\n.p........1...\n..........0.2.\n............0.\n+++++1++++++++\n+++2+++2+++++2\n++++++2++1++++\n11++2++++++++1\n+++++++1+++2++\n++2++++++++12+\n+1+++1++2+++++\n+++++++++++2++\n+++1++2++1++++\n##############\n\n\nMessage Cave 3: Block Party \n\n..0..000...0++0+++\n.#############+##0\n.#..............#+\n.#.p.......200..#+\n.#....001..010..#+\n0#....010..012..#+\n0#....100..###..#0\n0#....###.......#+\n+#........000...#+\n+#..201...102...#0\n+#..000...###...#+\n0#..000.........#+\n+#..###.....000.#0\n+#..........000.#0\n+#.000..010.020.#0\n+#.002..000.###.#+\n0#.###..100.....#0\n+#WWWWWW###WWWWW#+\n+#WWWWWWWWWWWWWW#+\n+#--------------#+\n\n\nMessage Cave 4: Transport Dept.\n\n.#################.\n##.......0.......##\n#.......00........#\n#....10.000.....0.#\n#..0000000000...0.#\n########+++########\np...............1..\n................#..\n#1................#\n##0............++##\n##+...........00+##\n#+++000+..0.0+0+++#\n#+0000+0.+0.000+++#\n##00++++0+0++0+++##\n.#################.\n\nMESSAGE Cave 5: Rocky One\n\n##############\n#++0+0+++0+0C#\n#+0C++0++01++#\n#++++2++++0++#\n#00+0++0+++0+#\n#0++10+++0+2+#\n#+0++++p++00+#\n#+000+++++++C#\n#+++++0+0+01+#\n#+2+++0++++0+#\n#+00++0+0+0+0#\n#C+0++0++++0+#\n##############\n\n\nMESSAGE Cave 6: Snoop Drop\n\n...............\n..200.020.001..\n..001.010.100..\n..020.000.002..\n..###.###.###..\n...............\n.......p.......\n...............\n...............\n...............\n...............\n...............\n.1...1...2...2.\nW#WWW#WWW#WWW#W\nW#WWW#WWW#WWW#W\n-#---#---#---#-\n\n\nMESSAGE Cave 7: Blockopolis\n\n##############\n#p...........#\n#..00121202..#\n#..12121011..#\n#..11200120..#\n#..22001010..#\n#..10121200..#\n#..02200212..#\n#..01020120..#\n#..10001201..#\n#..00000000..#\n#..########..#\n#WW.######.WW#\n#WW..####..WW#\n#--..####..--#\n\nMESSAGE Cave 8: Scramble\n\n#################\n#+++000+++000+++#\n#+++000+++000+++#\n#000+++000+++000#\n#020+++010+++020#\n#+++000+++000+++#\n#+++010+++010+++#\n#000+++000+++000#\n#000+++020+++000#\n#+++000+++000+++#\n#+++000+++000+++#\n#000+++000+++000#\n#000+++000+++000#\n#+++++++++++++++#\n#...............#\n#.......p.......#\n#WWWWWWWWWWWWWWW#\n#WWWWWWWWWWWWWWW#\n#---------------#\n\nMESSAGE You did it! *HIGH FIVES*\n", ["tick", "tick", "tick", 2, 2, "tick", 2, 2, "tick", 3, "tick", 3, 2, "tick", 3, "tick", 3, 3, "tick", "tick", 0, "tick", 0, "tick", 3, "tick", 0, "tick", 1, 2, "tick", 2, "tick", 2, "tick", 3, 3, "tick", 0, "tick", 3, 3, "tick", 2, "tick", 3, 1, "tick", "tick", 1, "tick", 3, "tick"], "background:0,0,0,0,background earth:1,1,1,background gem1:2,1,1,1,1,1,background wall:3,\n0,0,0,0,0,0,1,2,1,1,2,1,1,3,\n0,0,0,0,1,0,0,1,1,background gem2:4,1,1,1,3,\n0,0,0,0,1,0,4,1,1,1,1,1,2,3,\n0,0,0,0,1,1,0,4,1,1,1,1,1,3,\n0,0,0,0,0,4,2,1,1,1,2,1,1,3,\n0,0,0,0,0,background boulder:5,4,1,1,1,1,1,4,3,\n0,0,0,0,0,0,1,1,2,1,1,1,1,3,\n0,0,0,0,0,background player:6,1,1,1,1,4,1,1,3,\n0,0,0,0,1,0,2,1,1,1,1,1,2,3,\n0,0,2,5,1,1,1,1,1,1,1,1,1,3,\n0,0,0,0,1,1,1,1,4,2,1,4,1,3,\n0,0,4,5,1,1,1,1,1,4,1,1,1,3,\n0,0,0,0,1,4,1,2,1,1,1,1,1,3,\n", 3, "1627778261438.5264"] + ["title Pushcat Jr\nauthor Zut!\nhomepage zutgames.com/pushcat\nrealtime_interval 0.3\n\n\n========\nOBJECTS\n========\n\nBackground \n#150f28 #320f45 #200f2e\n20000\n00100\n00002\n10000\n00020\n\nEarth\n #511d37 #1b1132 #9a5971\n20000\n00100\n00002\n10000\n00020\n\nWall \n#584a4e #70a169 #b4d157 \n11111\n12221\n12221\n11111\n00000\n\nPlayer \n#F4D0B4 #9746b2 White DarkBlue\n1...1\n11011\n13031\n12221\n.101.\n\n\nGem1\n#feeba0 #feb704 #ae1a0f\n..0..\n.011.\n01012\n.112.\n..2..\n\nGem2\n#aeddfe #43a9f7 #1f37be\n.001.\n00111\n01012\n01122\n.222.\n\n\n\nBoulder\n#94b4a6 #7d9282 #556a64\n.000.\n00001\n00012\n00122\n.122.\n\nCoin\nWhite\n.....\n..0..\n.000.\n..0..\n.....\n\nExp\nWhite\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nWarn\nBlack\n.....\n.....\n.....\n.....\n.....\n\nVoid\nBlack\n.....\n.....\n.....\n.....\n.....\n\n\nLost\nRed\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nGen\n#b2b2b2 #736c6c #4d4040 black\n.122.\n13232\n12222\n10002\n1...2\n\n\nBomb\n#94b4a6 #7d9282 #556a64 Green\n.000.\n03031\n00012\n03332\n.122.\n\nBoom1\n#94b4a6 #7d9282 #556a64 Red\n.000.\n03031\n00012\n03332\n.122.\n\nBoom2\n#94b4a6 #7d9282 #556a64 Red\n.000.\n03031\n00012\n03332\n.122.\n\n\nBoom3\n#94b4a6 #7d9282 #556a64 Red\n.000.\n03031\n00012\n03332\n.122.\n\nBoom4\nRed\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nBoom5\nRed\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\n+ = Earth\n# = Wall\nP = Player\n0 = Boulder\n1 = Gem1\n2 = Gem2\nC = Coin\nX = Exp\n- = Void\nG = Gen\nW = Warn\nB = Bomb\n\nPushable = Gem1 or Gem2 or 0 or C or B\nFallable = Pushable or C or B\nObstacle = Pushable or Wall or P or C or Earth or Exp \nScorer = Gem1 or Gem2 or C or Exp\nExplodes=Fallable or P or Obstacle or Pushable \n\n\n\n=======\nSOUNDS\n=======\nplayer move 99217507\nsfx0 53304307\nsfx1 35514907\nsfx2 80864700\nsfx3 19899703\n\nEndLevel 96487708\nRestart 32376701\n================\nCOLLISIONLAYERS\n================\n\nBackground\nVoid, Lost, Warn\nPlayer, Wall, Gem1, Gem2, Boulder, Coin, Exp, Gen, Earth, Bomb, Boom1, Boom2, Boom3, Boom4, Boom5\n\n\n======\nRULES \n====== \n\n\n\ndown [ stationary Fallable | no Obstacle] -> [ | down Fallable ] \n\n\n \n\n\n [ > P | C ] -> [ > P | ] SFX2\n [ > P | Earth ] -> [ > P | ] SFX1 \n [ Exp ] -> [ Coin ]\n\nHorizontal [ > P | Pushable ] -> [ > P | > Pushable ] SFX0\nHorizontal [ moving Pushable | Pushable ] -> [moving Pushable| moving Pushable]\n \n[Boom4 ]->[]\n[Explodes | Boom3 ] -> [ Boom4 | Boom3]\n[Explodes | Boom3 ] -> [ Boom4 | Boom4]\n[Boom2] -> [Boom3]\n[Boom1] -> [Boom2] \n\n\nlate [Scorer Warn] -> [Scorer Warn] message Don't lose any gems or coins!\n[Scorer Void] -> Restart\n[0 Void] -> [ Void ]\n[0 Warn] -> [ Warn ]\n\n\n\n\nlate [ Gem1 | Gem1 | Gem1 ] -> [ Exp | Exp | Exp ] SFX3\nlate [ Gem2 | Gem2 | Gem2 ] -> [ Exp | Exp | Exp ] SFX3\n\n\nlate [ Bomb | Bomb | Bomb ] -> [ Boom1 | Boom1 | Boom1 ] \nlate [Boom5]->[Boom4]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nNo Scorer \nNo Lost\n\n\n======= \nLEVELS\n=======\n\n\nMESSAGE Cave 1: School of Push\n\n############\n#p..1.1....#\n##########.#\n#...2..2.#.#\n#.###..#.#.#\n#........#1#\n#.0...2..#+#\n#++#######+#\n#++0+++++0+#\n#+++++0++++#\n############\n\n\nMESSAGE Cave 2: Dirty Paws\n\n........0.....\n.p........1...\n..........0.2.\n............0.\n+++++1++++++++\n+++2+++2+++++2\n++++++2++1++++\n11++2++++++++1\n+++++++1+++2++\n++2++++++++12+\n+1+++1++2+++++\n+++++++++++2++\n+++1++2++1++++\n##############\n\n\nMessage Cave 3: Block Party \n\n..0..000...0++0+++\n.#############+##0\n.#..............#+\n.#.p.......200..#+\n.#....001..010..#+\n0#....010..012..#+\n0#....100..###..#0\n0#....###.......#+\n+#........000...#+\n+#..201...102...#0\n+#..000...###...#+\n0#..000.........#+\n+#..###.....000.#0\n+#..........000.#0\n+#.000..010.020.#0\n+#.002..000.###.#+\n0#.###..100.....#0\n+#WWWWWW###WWWWW#+\n+#WWWWWWWWWWWWWW#+\n+#--------------#+\n\n\nMessage Cave 4: Transport Dept.\n\n.#################.\n##.......0.......##\n#.......00........#\n#....10.000.....0.#\n#..0000000000...0.#\n########+++########\np...............1..\n................#..\n#1................#\n##0............++##\n##+...........00+##\n#+++000+..0.0+0+++#\n#+0000+0.+0.000+++#\n##00++++0+0++0+++##\n.#################.\n\nMESSAGE Cave 5: Rocky One\n\n##############\n#++0+0+++0+0C#\n#+0C++0++01++#\n#++++2++++0++#\n#00+0++0+++0+#\n#0++10+++0+2+#\n#+0++++p++00+#\n#+000+++++++C#\n#+++++0+0+01+#\n#+2+++0++++0+#\n#+00++0+0+0+0#\n#C+0++0++++0+#\n##############\n\n\nMESSAGE Cave 6: Snoop Drop\n\n...............\n..200.020.001..\n..001.010.100..\n..020.000.002..\n..###.###.###..\n...............\n.......p.......\n...............\n...............\n...............\n...............\n...............\n.1...1...2...2.\nW#WWW#WWW#WWW#W\nW#WWW#WWW#WWW#W\n-#---#---#---#-\n\n\nMESSAGE Cave 7: Blockopolis\n\n##############\n#p...........#\n#..00121202..#\n#..12121011..#\n#..11200120..#\n#..22001010..#\n#..10121200..#\n#..02200212..#\n#..01020120..#\n#..10001201..#\n#..00000000..#\n#..########..#\n#WW.######.WW#\n#WW..####..WW#\n#--..####..--#\n\nMESSAGE Cave 8: Scramble\n\n#################\n#+++000+++000+++#\n#+++000+++000+++#\n#000+++000+++000#\n#020+++010+++020#\n#+++000+++000+++#\n#+++010+++010+++#\n#000+++000+++000#\n#000+++020+++000#\n#+++000+++000+++#\n#+++000+++000+++#\n#000+++000+++000#\n#000+++000+++000#\n#+++++++++++++++#\n#...............#\n#.......p.......#\n#WWWWWWWWWWWWWWW#\n#WWWWWWWWWWWWWWW#\n#---------------#\n\nMESSAGE You did it! *HIGH FIVES*\n",["tick","tick","tick",2,2,"tick",2,2,"tick",3,"tick",3,2,"tick",3,"tick",3,3,"tick","tick",0,"tick",0,"tick",3,"tick",0,"tick",1,2,"tick",2,"tick",2,"tick",3,3,"tick",0,"tick",3,3,"tick",2,"tick",3,1,"tick","tick",1,"tick",3,"tick"],"background:0,0,0,0,background earth:1,1,1,background gem1:2,1,1,1,1,1,background wall:3,\n0,0,0,0,0,0,1,2,1,1,2,1,1,3,\n0,0,0,0,1,0,0,1,1,background gem2:4,1,1,1,3,\n0,0,0,0,1,0,4,1,1,1,1,1,2,3,\n0,0,0,0,1,1,0,4,1,1,1,1,1,3,\n0,0,0,0,0,4,2,1,1,1,2,1,1,3,\n0,0,0,0,0,background boulder:5,4,1,1,1,1,1,4,3,\n0,0,0,0,0,0,1,1,2,1,1,1,1,3,\n0,0,0,0,0,background player:6,1,1,1,1,4,1,1,3,\n0,0,0,0,1,0,2,1,1,1,1,1,2,3,\n0,0,2,5,1,1,1,1,1,1,1,1,1,3,\n0,0,0,0,1,1,1,1,4,2,1,4,1,3,\n0,0,4,5,1,1,1,1,1,4,1,1,1,3,\n0,0,0,0,1,4,1,2,1,1,1,1,1,3,\n",3,"1627778261438.5264"] ], [ `gallery: sokoboros`, - ["title Sokoboros\nauthor Trevor Newton\nhomepage https://twitter.com/trevnewt\n\nflickscreen 13x13\nnoaction\nbackground_color #22170B\ntext_color lightgreen\n(youtube wPqwxBnNxWU)\n\n========\nOBJECTS\n========\n\nBackground \nDarkBrown DarkGrey\n00000\n00000\n00000\n00000\n00000\n\nMetal\n#333333\n00000\n00000\n00000\n00000\n00000\n\nEgg\nWhite\n..0..\n.000.\n00000\n00000\n.000.\n\nEggBottom\nLightGrey\n.....\n0....\n000.0\n00000\n.000.\n\nEggShell_1\nLightGrey\n.....\n.0...\n...0.\n..00.\n.....\n\nEggShell_2\nLightGrey\n.....\n.....\n.0...\n.....\n..0..\n\nButton\nRed DarkRed LightGrey\n11111\n11111\n11011\n11111\n11111\n\nPressed\nRed Grey\n00000\n00000\n00000\n00000\n00000\n\nYellowApple\nYellow Green Blue\n..1..\n.000.\n00000\n00000\n.000.\n\nBlueApple\nLightBlue Green Blue\n..1..\n.000.\n00000\n00000\n.000.\n\nNot_Just_Pressed\ntransparent\n\nKey\ntransparent\n\nCheckpoint_Marker\n#333333 #232323\n00000\n01010\n00100\n01010\n00000\n\nDoor1\nLightGrey #333333 LightRed\n00000\n00000\n00100\n00000\n00000\n\nDoor2\nLightGrey #333333 LightRed\n00000\n00000\n01010\n00000\n00000\n\nDoor2_1\nLightGrey #333333 LightRed\n00000\n00000\n02010\n00000\n00000\n\nDoor3\nLightGrey #333333 LightRed\n00000\n01010\n00000\n00100\n00000\n\nDoor3_1\nLightGrey #333333 LightRed\n00000\n02010\n00000\n00100\n00000\n\nDoor3_2\nLightGrey #333333 LightRed\n00000\n02020\n00000\n00100\n00000\n\nDoor4\nLightGrey #333333 LightRed\n00000\n01010\n00000\n01010\n00000\n\nDoor4_1\nLightGrey #333333 LightRed\n00000\n02010\n00000\n01010\n00000\n\nDoor4_2\nLightGrey #333333 LightRed\n00000\n02020\n00000\n01010\n00000\n\nDoor4_3\nLightGrey #333333 LightRed\n00000\n02020\n00000\n02010\n00000\n\n\nDoorXL\nLightGrey #333333\n00000\n00010\n00000\n00010\n00000\n\nDoorXL_1\nLightGrey #333333 LightRed\n00000\n00020\n00000\n00010\n00000\n\nDoorXL_6\nLightGrey #333333 LightRed\n00000\n00020\n00000\n00020\n00000\n\nDoorXM\nLightGrey #333333\n00000\n10101\n00000\n10101\n00000\n\nDoorXM_1\nLightGrey #333333\n00000\n10101\n00000\n10101\n00000\n\nDoorXM_2\nLightGrey #333333 LightRed\n00000\n20101\n00000\n10101\n00000\n\nDoorXM_3\nLightGrey #333333 LightRed\n00000\n20201\n00000\n10101\n00000\n\nDoorXM_4\nLightGrey #333333 LightRed\n00000\n20202\n00000\n10101\n00000\n\nDoorXM_5\nLightGrey #333333 LightRed\n00000\n20202\n00000\n10101\n00000\n\nDoorXM_6\nLightGrey #333333 LightRed\n00000\n20202\n00000\n10101\n00000\n\nDoorXM_7\nLightGrey #333333 LightRed\n00000\n20202\n00000\n20101\n00000\n\nDoorXM_8\nLightGrey #333333 LightRed\n00000\n20202\n00000\n20201\n00000\n\nDoorXM_9\nLightGrey #333333 LightRed\n00000\n20202\n00000\n20202\n00000\n\nDoorXM_10\ntransparent\n\nDoorXR\nLightGrey #333333\n00000\n01000\n00000\n01000\n00000\n\nDoorXR_5\nLightGrey #333333 LightRed\n00000\n02000\n00000\n01000\n00000\n\n\n\nWall \nOrange Brown\n1111.\n10111\n11111\n11101\n.1111\n\nWall_Metal_R\nGrey DarkGrey\n00001\n00001\n00001\n00001\n00001\n\nWall_Metal_L\nGrey DarkGrey\n10000\n10000\n10000\n10000\n10000\n\nWall_metal_U\nGrey DarkGrey\n11111\n00000\n00000\n00000\n00000\n\nWall_metal_D\nGrey DarkGrey\n00000\n00000\n00000\n00000\n11111\n\nWall_metal_DRC\nGrey DarkGrey\n00001\n00001\n00001\n00001\n11111\n\nWall_metal_DLC\nGrey DarkGrey\n10000\n10000\n10000\n10000\n11111\n\nWall_metal_URC\nGrey DarkGrey\n11111\n00001\n00001\n00001\n00001\n\nWall_metal_ULC\nGrey DarkGrey\n11111\n10000\n10000\n10000\n10000\n\nWall_metal_DR\nGrey DarkGrey\n00000\n00000\n00000\n00000\n00001\n\nWall_Metal_UR\nGrey DarkGrey\n00001\n00000\n00000\n00000\n00000\n\nWall_metal_DL\nGrey DarkGrey\n00000\n00000\n00000\n00000\n10000\n\nWall_metal_UL\nGrey DarkGrey\n10000\n00000\n00000\n00000\n00000\n\nPlayerLeft\nGreen Red\n0000.\n.0100\n..000\n.0000\n0000.\n\nPlayerAteLeft\nGreen Red LightGreen\n.000.\n00100\n20000\n00000\n.000.\n\nPlayerRight\nGreen Red\n.0000\n0010.\n000..\n0000.\n.0000\n\nPlayerAteRight\nGreen Red LightGreen\n.000.\n00100\n00002\n00000\n.000.\n\nPlayerUp\nGreen Red\n0...0\n00.00\n01000\n00000\n.000.\n\nPlayerAteUp\nGreen Red LightGreen\n.020.\n00000\n01000\n00000\n.000.\n\nPlayerDown\nGreen Red\n.000.\n00000\n00010\n00.00\n0...0\n\nPlayerAteDown\nGreen Red LightGreen\n.000.\n00000\n00010\n00000\n.020.\n\nBodyHorizontal\nGreen LightGreen\n.....\n00100\n00100\n00100\n.....\n\nBodyVertical\nGreen LightGreen\n.000.\n.000.\n.111.\n.000.\n.000.\n\n(BodyBend_1\nGreen LightGreen\n.....\n..000\n.0111\n.0100\n.010.)\n\nBodyBend_1\nGreen LightGreen\n.....\n..000\n.0100\n.0010\n.000.\n\nBodyBend_2\nGreen LightGreen\n.....\n000..\n0010.\n0100.\n.000.\n\nBodyBend_3\nGreen LightGreen\n.000.\n.0010\n.0100\n..000\n.....\n\nBodyBend_4\nGreen LightGreen\n.000.\n0100.\n0010.\n000..\n.....\n\nTail_1\nGreen LightGreen\n.....\n000..\n0000.\n000..\n.....\n\nTail_2\nGreen LightGreen\n.....\n..000\n.0000\n..000\n.....\n\nTail_3\nGreen LightGreen\n.000.\n.000.\n.000.\n..0..\n.....\n\nTail_4\nGreen LightGreen\n.....\n..0..\n.000.\n.000.\n.000.\n\nTowardsUp\nRED\n..0..\n.000.\n0.0.0\n..0..\n..0..\n\nTowardsLeft\nRED\n..0..\n.0...\n00000\n.0...\n..0..\n\nTowardsRight\nRED\n..0..\n...0.\n00000\n...0.\n..0..\n\nTowardsDown\nRED\n..0..\n..0..\n0.0.0\n.000.\n..0..\n\n=======\nLEGEND\n=======\n\n< = BodyHorizontal and TowardsLeft\n> = BodyBend_1 and TowardsRight and EggShell_2\n^ = BodyVertical and TowardsUp\nv = BodyVertical and TowardsDown\n\n(L = Tail and TowardsLeft\nR = Tail and TowardsRight)\nU = Tail_3 and TowardsUp and EggBottom\n(D = Tail and TowardsDown)\n\n. = Background\n- = Metal\n\n# = Wall\n% = Wall_Metal_R\n| = Wall_Metal_L\n' = Wall_Metal_U\n\" = Wall_Metal_D\n7 = Wall_Metal_UR\n6 = Wall_Metal_UL\n9 = Wall_Metal_DL\n8 = Wall_Metal_DR\n~ = Wall_Metal_URC\n@ = Wall_Metal_ULC\n_ = Wall_Metal_DRC\n! = Wall_Metal_DLC\n\nP = PlayerRight and TowardsRight\n1 = Door1 and Checkpoint_Marker\n2 = Door2 and Checkpoint_Marker\n3 = Door3 and Checkpoint_Marker\n4 = Door4 and Checkpoint_Marker\n+ = DoorXL and Checkpoint_Marker\nX = DoorXM and Checkpoint_Marker\n? = DoorXR and Checkpoint_Marker\nO = Button and Not_Just_Pressed\nA = YellowApple\nH = BlueApple\n\n\nE = EggShell_1\nB = EggBottom\nW = Egg\n\n\n\nMarker = TowardsLeft or TowardsRight or TowardsUp or TowardsDown\nPlayer = PlayerLeft or PlayerRight or PlayerUp or PlayerDown or PlayerAteLeft or PlayerAteRight or PlayerAteUp or PlayerAteDown\nTail = Tail_1 or Tail_2 or Tail_3 or Tail_4\nBodyBends = BodyBend_1 or BodyBend_2 or BodyBend_3 or BodyBend_4\nBodyPart = BodyHorizontal or BodyVertical or BodyBend_1 or BodyBend_2 or BodyBend_3 or BodyBend_4\nPlayerPart = Player or BodyPart or Tail\n\nDoorX = DoorXM or DoorXM_1 or DoorXM_2 or DoorXM_3 or DoorXM_4 or DoorXM_5 or DoorXM_6 or DoorXM_7 or DoorXM_8 or DoorXM_9 or DoorXM_10\n\nDoor = Door1 or Door2 or Door2_1 or Door3 or Door3_1 or Door3_2 or Door4 or Door4_1 or Door4_2 or Door4_3 or DoorXL or DoorXL_1 or DoorXL_6 or DoorXR or DoorXR_5 or DoorX\n\nWalls = Wall or Wall_Metal_U or Wall_Metal_L or Wall_Metal_R or Wall_Metal_D or Wall_Metal_UR or Wall_Metal_DR or Wall_Metal_DL or Wall_Metal_UL or Wall_Metal_URC or Wall_Metal_ULC or Wall_Metal_DRC or Wall_Metal_DLC\nObstacle = Walls or PlayerPart or Door\nApple = YellowApple or BlueApple or Egg\n\n=======\nSOUNDS\n=======\n\nUndo 50721302\n\nTitleScreen 46639909\nSFX0 66467307 (Walk on metal)\nSFX1 41037702 (Eat food)\nSFX2 78277102 (Press Button)\nSFX3 47230702 (Unpress Button)\nSFX4 44928302 (Open Door)\nSFX5 6466307 (Walk on dirt)\nSFX6 72511108 (Forboding...)\n\n================\nCOLLISIONLAYERS\n================\n\nNot_Just_Pressed\nKey\nMarker\nBackground\nMetal, Checkpoint_Marker\nEggShell_1, EggShell_2, EggBottom\nButton\nPressed\nPlayer, BodyPart, Door, Tail, Apple, Walls, Egg\n\n======\nRULES \n======\n\nleft [ > Player TowardsLeft | Apple ] -> [ BodyHorizontal TowardsLeft | PlayerAteLeft TowardsLeft ] SFX1\nleft [ > Player TowardsUp | Apple ] -> [ BodyBend_2 TowardsLeft | PlayerAteLeft TowardsLeft ] SFX1\nleft [ > Player TowardsDown | Apple ] -> [ BodyBend_4 TowardsLeft | PlayerAteLeft TowardsLeft ] SFX1\n\nright [ > Player TowardsRight | Apple ] -> [ BodyHorizontal TowardsRight | PlayerAteRight TowardsRight ] SFX1\nright [ > Player TowardsUp | Apple ] -> [ BodyBend_1 TowardsRight | PlayerAteRight TowardsRight ] SFX1\nright [ > Player TowardsDown | Apple ] -> [ BodyBend_3 TowardsRight | PlayerAteRight TowardsRight ] SFX1 \n\nup [ > Player TowardsUp | Apple ] -> [ BodyVertical TowardsUp | PlayerAteUp TowardsUp ] SFX1\nup [ > Player TowardsLeft | Apple ] -> [ BodyBend_3 TowardsUp | PlayerAteUp TowardsUp ] SFX1\nup [ > Player TowardsRight | Apple ] -> [ BodyBend_4 TowardsUp | PlayerAteUp TowardsUp ] SFX1\n\ndown [ > Player TowardsDown | Apple ] -> [ BodyVertical TowardsDown | PlayerAteDown TowardsDown ] SFX1\ndown [ > Player TowardsLeft | Apple ] -> [ BodyBend_1 TowardsDown | PlayerAteDown TowardsDown ] SFX1\ndown [ > Player TowardsRight | Apple ] -> [ BodyBend_2 TowardsDown | PlayerAteDown TowardsDown ] SFX1\n\n(If the player is NOT about to move onto a button, move the player normally.\nThis is actually somewhat complicated. When the snake head moves, we put a direction marker behind it, indicating which direction it went -- this gives the body parts directions to follow. But we ALSO put a direction marker, of the same direction, on the head's new space. This gets deleted on the next move and replaced with whatever move you make next. The purpose of the marker on top of the head is so that the game can keep in mind which direction you've come from. This is useful for creating new bodyparts when eating apples.)\n\nleft [ > player Marker | No Obstacle No Metal | ] -> [ TowardsLeft | PlayerLeft TowardsLeft | SFX5]\nright [ > player Marker | No Obstacle No Metal | ] -> [ TowardsRight | PlayerRight TowardsRight | SFX5]\nup [ > player Marker | No Obstacle No Metal | ] -> [ TowardsUp | PlayerUp TowardsUp | SFX5]\ndown [ > player Marker | No Obstacle No Metal | ] -> [ TowardsDown | PlayerDown TowardsDown | SFX5]\n\n(Moving on metal.)\n\nleft [ > player Marker | No Obstacle Metal | ] -> [ TowardsLeft | PlayerLeft Metal TowardsLeft | SFX0]\nright [ > player Marker | No Obstacle Metal | ] -> [ TowardsRight | PlayerRight Metal TowardsRight | SFX0]\nup [ > player Marker | No Obstacle Metal | ] -> [ TowardsUp | PlayerUp Metal TowardsUp | SFX0]\ndown [ > player Marker | No Obstacle Metal | ] -> [ TowardsDown | PlayerDown Metal TowardsDown | SFX0]\n\n\nstartloop\nlate left [ BodyPart TowardsLeft | No PlayerPart TowardsLeft ] -> [ TowardsLeft | BodyHorizontal TowardsLeft]\nlate left [ BodyPart TowardsLeft | No PlayerPart TowardsUp ] -> [ TowardsLeft | BodyBend_3 TowardsUp]\nlate left [ BodyPart TowardsLeft | No PlayerPart TowardsDown ] -> [ TowardsLeft | BodyBend_1 TowardsDown]\n\nlate right [ BodyPart TowardsRight | No PlayerPart TowardsRight] -> [ TowardsRight | BodyHorizontal TowardsRight]\nlate right [ BodyPart TowardsRight | No PlayerPart TowardsUp] -> [ TowardsRight | BodyBend_4 TowardsUp]\nlate right [ BodyPart TowardsRight | No PlayerPart TowardsDown] -> [ TowardsRight | BodyBend_2 TowardsDown ]\n\nlate up [ BodyPart TowardsUp | No PlayerPart TowardsUp] -> [ TowardsUp | BodyVertical TowardsUp]\nlate up [ BodyPart TowardsUp | No PlayerPart TowardsLeft] -> [ TowardsUp | BodyBend_2 TowardsLeft]\nlate up [ BodyPart TowardsUp | No PlayerPart TowardsRight] -> [ TowardsUp | BodyBend_1 TowardsRight]\n\nlate down [ BodyPart TowardsDown | No PlayerPart TowardsDown] -> [ TowardsDown | BodyVertical TowardsDown]\nlate down [ BodyPart TowardsDown | No PlayerPart TowardsLeft] -> [ TowardsDown | BodyBend_4 TowardsLeft]\nlate down [ BodyPart TowardsDown | No PlayerPart TowardsRight] -> [ TowardsDown | BodyBend_3 TowardsRight]\nendloop\n\n(If Tail is on button, move it off and handle that.)\n\nlate left [ Tail TowardsLeft Button Pressed | No PlayerPart ] -> [ Button Pressed | Tail_1 ] SFX3\nlate right [ Tail TowardsRight Button Pressed | No PlayerPart ] -> [ Button Pressed | Tail_2 ] SFX3\nlate up [ Tail TowardsUp Button Pressed | No PlayerPart ] -> [ Button Pressed | Tail_3 ] SFX3\nlate down [ Tail TowardsDown Button Pressed| No PlayerPart ] -> [ Button Pressed | Tail_4 ] SFX3\n\n(If Tail is not on button, just move it.)\n\nlate left [ Tail TowardsLeft No Button | No PlayerPart ] -> [ | Tail_1 ]\nlate right [ Tail TowardsRight No Button| No PlayerPart ] -> [ | Tail_2 ]\nlate up [ Tail TowardsUp No Button| No PlayerPart ] -> [ | Tail_3 ]\nlate down [ Tail TowardsDown No Button| No PlayerPart ] -> [ | Tail_4 ]\n\nlate [Tail TowardsRight] -> [Tail_2 TowardsRight]\nlate [Tail TowardsDown] -> [Tail_4 TowardsDown]\nlate [Tail TowardsUp] -> [Tail_3 TowardsUp]\nlate [Tail TowardsLeft] -> [Tail_1 TowardsLeft]\n\n\n\n\nlate [ Player Button No Pressed ] -> [ Player Button Pressed ] SFX2\n\nstartloop\nlate [ Player Button Not_Just_Pressed] [ Door No Key ] -> [ Player Button Not_Just_Pressed] [ Door Key ]\nendloop\n\nstartloop\nlate [ Player Button Not_Just_Pressed ] -> [ Player Button ]\nendloop\n\n\nlate [ Button Pressed No PlayerPart ] [ Door2_1 ] -> [ Button Pressed ] [ Door2 ]\n\nlate [ Button Pressed No PlayerPart ] [ Door3_1 ] -> [ Button Pressed ] [ Door3 ]\nlate [ Button Pressed No PlayerPart ] [ Door3_2 ] -> [ Button Pressed ] [ Door3_1 ]\n\nlate [ Button Pressed No PlayerPart ] [ Door4_1 ] -> [ Button Pressed ] [ Door4 ]\nlate [ Button Pressed No PlayerPart ] [ Door4_2 ] -> [ Button Pressed ] [ Door4_1 ]\nlate [ Button Pressed No PlayerPart ] [ Door4_3 ] -> [ Button Pressed ] [ Door4_2 ]\n\nlate [ Button Pressed No PlayerPart ] [ DoorXM_1 ] -> [ Button Pressed ] [ DoorXM ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_2 ] -> [ Button Pressed ] [ DoorXM_1 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_3 ] -> [ Button Pressed ] [ DoorXM_2 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_4 ] -> [ Button Pressed ] [ DoorXM_3 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_5 ] -> [ Button Pressed ] [ DoorXM_4 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_6 ] -> [ Button Pressed ] [ DoorXM_5 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_7 ] -> [ Button Pressed ] [ DoorXM_6 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_8 ] -> [ Button Pressed ] [ DoorXM_7 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_9 ] -> [ Button Pressed ] [ DoorXM_8 ]\n\n\n\nlate [ DoorXM_9 Key ] -> [ DoorXM_10] SFX6 checkpoint\nlate [ DoorXM_8 Key ] -> [ DoorXM_9 ]\nlate [ DoorXM_7 Key ] -> [ DoorXM_8 ]\nlate [ DoorXM_6 Key ] -> [ DoorXM_7 ]\nlate [ DoorXM_5 Key ] -> [ DoorXM_6 ]\nlate [ DoorXM_4 Key ] -> [ DoorXM_5 ]\nlate [ DoorXM_3 Key ] -> [ DoorXM_4 ]\nlate [ DoorXM_2 Key ] -> [ DoorXM_3 ]\nlate [ DoorXM_1 Key ] -> [ DoorXM_2 ]\nlate [ DoorXM Key ] -> [ DoorXM_1 ]\n\nlate [ Door4_3 Key ] -> [ ] SFX4 checkpoint\nlate [ Door4_2 Key ] -> [ Door4_3 ]\nlate [ Door4_1 Key ] -> [ Door4_2 ]\nlate [ Door4 Key ] -> [ Door4_1 ]\n\nlate [ Door3_2 Key ] -> [ ] SFX4 checkpoint\nlate [ Door3_1 Key ] -> [ Door3_2 ]\nlate [ Door3 Key ] -> [ Door3_1 ]\n\nlate [ Door2_1 Key ] -> [ ] SFX4 checkpoint\nlate [ Door2 Key ] -> [ Door2_1 ]\n\nlate [ Door1 Key ] -> [ ] SFX4 checkpoint\n\nlate [ DoorXM_1] [ DoorXL ] -> [ DoorXM_1 ] [ DoorXL_1 ]\nlate [ DoorXM] [ DoorXL_1 ] -> [ DoorXM ] [ DoorXL ]\nlate [ DoorXM_6] [ DoorXL_1 ] -> [ DoorXM_6 ] [ DoorXL_6 ]\nlate [ DoorXM_5] [ DoorXL_6 ] -> [ DoorXM ] [ DoorXL_1 ]\n\nlate [ DoorXM_5] [ DoorXR ] -> [ DoorXM_5 ] [ DoorXR_5 ]\nlate [ DoorXM_4] [ DoorXR_5 ] -> [ DoorXM ] [ DoorXR ]\n\nlate [ DoorXM_10 ] [ DoorXL_6 ] [ DoorXR_5 ] -> [ ] [ ] [ ]\n\n\nlate [ Button Pressed No PlayerPart ] -> [ Button Not_Just_Pressed ]\n\n(late [ Player Checkpoint_Marker ] -> [ Player Checkpoint_Marker] checkpoint)\n\n(Alternative solution: have a different key for each button, each on different layers. but unite them under a \"key\" word. Then do the multiple keys on doors method)\n\n==============\nWINCONDITIONS\n==============\n\nNo Egg \n\n======= \nLEVELS\n=======\n\nMessage Oh! A baby is born...\n\n#######################################.............\n#............#8\"\"\"\"\"\"\"\"\"9########haaha#.............\n#............#%---------|########aa.aa#.............\n#............#%-o-----o-|########aaaha#.............\n#............#%---------|####...#hhhaa#.............\n#............#%---------!####....hhaaa#.............\n#............#%---------4.......#haaha#.............\n#............#%---------@####....aaa.h#.............\n#............#%---------|####...#aahah#.............\n#............#%---o---o-|########ha.aa#.............\n#............#%---------|########ahaha#.............\n#............#7'''~-@'''6########haaah#.............\n###################.###################.............\n###################.################################\n###################.################################\n##...##########8\"\"_3!\"\"9############################\n##.a.#....#####_-------|####8\"\"\"\"\"\"\"9###############\n###..#..#......--o-o---|####%-------|#####...#######\n####.##.#######~-------|####%-----o-!###......#..###\n###..#...######%-------!####_--------.......#...a###\n##..##.h.######_-o------....2-------@####..####..###\n##.########....--------@####~-----o-|###############\n##...#####..###~-------|####%-------|###############\n##.#........###7''~3@''6####7''~-@''6###############\n##...##############.############.###################\n###################.############.###################\n###################.############.######.......######\n#...................############.######.............\n#.###########################8\"_1!\"9###.............\n#.#######...######.....######%-----|###.............\n#.........h.#####..###.######%-----|###.............\n###########.####..####.######%-----|###.............\n#h..........####.##>p..######%--o--|###.............\n#.#a#.......####.##ue########_-----|###.............\n#a#.#h##########.######......------|###.............\n#....h.#...h####..####..#####~-----|###.............\n#.####....aa#####......######7~+x?@6###.............\n#......#...a##################%---|####.............\n##############################%---|####.............\n..........................####%---|####.............\n..........................#8\"\"_---!\"\"9#.............\n..........................#%---------|#.............\n..........................#%-@'''''~-|#.............\n..........................#%-|#####%-|#.............\n..........................#%-|#...#%-|#.............\n..........................#%-|#.w.#%-|#.............\n..........................#%-|#...#%-|#.............\n..........................#%-|#.-.#%-|#.............\n..........................#%-!_---!_-|#.............\n..........................#%---------|#.............\n..........................#7'''''''''6#.............\n..........................#############.............\n\n(#######################################.............\n#............#8\"\"\"\"\"\"\"\"\"9#########aah##.............\n#............#%---------|########ahaaa#.............\n#............#%-o-----o-|########aaaha#.............\n#............#%---------|###....#hhhha#.............\n#............#%---------!###.....hhaaa#.............\n#............#%---------4.......#haaha#.............\n#............#%---------@###.....aaaah#.............\n#............#%---------|###....#aahah#.............\n#............#%--o----o-|########haaaa#.............\n#............#%---------|########ahaha#.............\n#............#7'''~-@'''6#########aaa##.............\n###################.###################.............\n###################.################################\n###################.################################\n##...##########8\"\"_3!\"\"9############################\n##.a.#....#####_-------|####8\"\"\"\"\"\"\"9###############\n###..#..#......---o----|####%-------|#####...#######\n####.##.#######~-------|####%-----o-!###......#..###\n###..#...######%-------!####_--------.......#...a###\n##..##.h.######_--o-o---....2-------@####..####..###\n##.########....--------@####~-----o-|###############\n##...#####..###~-------|####%-------|###############\n##.#........###7''~3@''6####7''~-@''6###############\n##...##############.############.###################\n###################.############.###################\n###################.############.######.......######\n#...................############.######.............\n#.###########################8\"_1!\"9###.............\n#.....a.....######.....######%-----|###.............\n#...a...h...#####..###.######%-----|###.............\n###########.####..####.######%-----|###.............\n#ha.........####.##>p..######%--o--|###.............\n#.#a#......a####.##uE########_-----|###.............\n#a#.#h##########.######......------|###.............\n#..h.ha.#..#####..####..#####~-----|###.............\n#.####....h.#####......######7~+X?@6###.............\n#......#....##################%---|####.............\n##############################%---|####.............\n..........................####%---|####.............\n..........................#8\"\"_---!\"\"9#.............\n..........................#%---------|#.............\n..........................#%-@'''''~-|#.............\n..........................#%-|#####%-|#.............\n..........................#%-|#...#%-|#.............\n..........................#%-|#.w.#%-|#.............\n..........................#%-|#...#%-|#.............\n..........................#%-|#.-.#%-|#.............\n..........................#%-!_---!_-|#.............\n..........................#%---------|#.............\n..........................#7'''''''''6#.............\n..........................#############.............)\n\nMessage Thank you for playing.\n\n(#######################################.............\n#............#8\"\"\"\"\"\"\"\"\"9#######aaaa###.............\n#............#%---------|#####...aaa###.............\n#............#%-o-----o-|####......####.............\n#............#%---------|####......####.............\n#............#%---------|#####.......##.............\n#............#%---------4........aaa.##.............\n#............#%---------|#####...aaa.##.............\n#............#%---------|#####...aaa.##.............\n#............#%--o---o--|#######.....##.............\n#............#%---------|#######....###.............\n#............#7''''-''''6########..####.............\n###################.###################.............\n###################.################################\n###################.################################\n##...##########8\"\"\"3\"\"\"9############################\n##.a.#....#####%-------|####8\"\"\"\"\"\"\"9###############\n###..#..#......---o----|####%-------|#####...#######\n####.##.#######%-------|####%-----o-|###......#..###\n###..#...######%-------|####%--------.......#...a###\n##..##.a.######%--o-o---....2-------|####..####..###\n##.########....--------|####%-----o-|###############\n##...#####..###%-------|####%-------|###############\n##.#........###7'''3'''6####7'''-'''6###############\n##...##############.############.###################\n###################.############.###################\n###################.############.######.......######\n###############.....############.######.............\n##..............#############8\"\"-\"\"9###.............\n##.###############.....######%-----|###.............\n##..a...a...#####..###.######%-----|###.............\n###...a...a.####..####.######%-----|###.............\n########a##.####.##>p..######%--o--|###.............\n##..a.......####.##u.########%-----|###.............\n##....a.########.######......------|###.............\n##.######...####..####..#####%-----|###.............\n##.........a#####......######7''4''6###.............\n#########...####################.######.............\n###############################...#####.............\n\n.............##########################.............\n.............#8\"\"\"\"\"\"\"\"\"9#######aaaa###.............\n.............#%---------|#####...aaa###.............\n.............#%-o-----o-|####......####.............\n.............#%---------|####......####.............\n.............#%---------|#####.......##.............\n.............#%---------4........aaa.##.............\n.............#%---------|#####...aaa.##.............\n.............#%---------|#####...aaa.##.............\n.............#%-o-----o-|#######.....##.............\n.............#%---------|#######....###.............\n.............#7''''-''''6########..####.............\n.............######.###################.............\n###################.################################\n###################.################################\n##...##########8\"\"\"3\"\"\"9############################\n##.a.#....#####%-------|####8\"\"\"\"\"\"\"9###############\n###..#..#......---o----|####%-------|#####...#######\n####.##.#######%-------|####%-----o-|###......#..###\n###..#...######%-------|####%--------.......#...a###\n##..##.a.######%--o-o---....2-------|####..####..###\n##.########....--------|####%-----o-|###############\n##...#####..###%-------|####%-------|###############\n##.#........###7'''3'''6####7'''-'''6###############\n##...##############.############.###################\n###################.############.###################\n###################.############.######.......######\n###############.....############.######.............\n##..............#####..######8\"\"-\"\"9###.............\n##.##a###########......######%-----|###.............\n##.##.#########....###.######%-----|###.............\n##.##.....#####..####..######%-----|###.............\n##.##.a...#####.##>p..#######%--o--|###.............\n##....###.#####.##u.#########%-----|###.............\n#######....####.######.......------|###.............\n#######a.a.####...####.######%-----|###.............\n#######a.a.######......######7''4''6###.............\n################################.######.............\n###############################...#####.............\n\n####################################################\n#..........###...........###########################\n#...........##...........###8\"\"\"\"\"\"\"9###############\n#...........##...........###%-------|###############\n#..#####.##.##...........###%-----o-|######..#######\n#..##..###..##...........###%-------|###.....##..###\n#.....#####.##..............2--------....##.....a###\n#..#..########...........###%-------|##########..###\n#..###.####.##...........###%-----o-|###############\n#.##..#####.##...........###%-------|###############\n#.#########.##...........###7'''-'''6###############\n#...........##...........#######.###################\n################################.###################\n################################.######.......######\n#...........####################.######.............\n#..########.#####......######8\"\"-\"\"9###.............\n#..########.#####.####.######%-----|###.............\n#..########.###...####.######%-----|###.............\n#..#######..###.#####..######%-----|###.............\n#..#######..###.##.P..#######%--o--|###.............\n#.########..###.##..#########%-----|###.............\n#.########..###.######.......------|###.............\n#.########..###...####.######%-----|###.............\n#.########..#####......######7''4''6###.............\n#...........####################.######.............\n###############################...#####.............\n\n#######################################\n#..........###...........##...........#\n#...........##...........##...........#\n#...........##...........##...........#\n#..#####.##.##...........##...........#\n#..##..###..##...........##...........#\n#.....#####.##...........##...o...o...#\n#..#..########...........##...........#\n#..###.####.##...........##...........#\n#.##..#####.##...........##...........#\n#.#########.##...........##...........#\n#...........##...........##...........#\n################################.######\n################################.######\n#...........####################.######\n#..########.#####......######8\"\"1\"\"9###\n#..########.#####.####.######%-----|###\n#..########.###...####.######%-----|###\n#..#######..###.#####..######%-----|###\n#..#######..###.##.p..#######%--o--|###\n#.########..###.##..#########%-----|###\n#.########..###.######.......------|###\n#.########..###...####.######%-----|###\n#.########..#####......######7''4''6###\n#...........####################.######\n###############################...#####\n\n############################################\n############.........#8\"\"\"\"\"\"\"\"\"##....##...#\n#.........###......o.#%---------...#..##.a.#\n#.........####.......#%-------o-####.###..##\n#.........##........##%---------###...##.###\n#..........3.o........2--o------###.aa##..##\n#.........##.........#%---------#########.##\n#.........####.....o.#%-------o-....###...##\n#.........#####......#%---------###.....#.##\n#.........#####..#####7'''---'''#######...##\n###############.###########.################\n###############.###########.################\n#############....######8\"\"\".\"\"\"9############\n#................######%-------|############\n#.#a###################%-------|############\n#.#......#####....#####%-------|############\n#.#.a....#####.....####%---o---|############\n#...####.#####...p.....--------|############\n######...#####.....####%-------|############\n######a.a.####b.e.#####%-------|############\n######a.a.#############7'''4'''6############\n##########################...###############\n\n#######################8\"\"\"\"\"\"\"\"\"\"\"#########\n############.........#8%----------....##...#\n#.........###......o.#%-------o---.#..##.a.#\n#.........####.......#%---------|'##.###..##\n#.........##........##%--------|6##...##.###\n#..........3.o........2--o-----####.aa##..##\n#.........##.........#%---------|\"#######.##\n#.........####.....o.#%-------o---..###...##\n#.........#####......#7%-----------.....#.##\n#.........#####..######7''---''''''####...##\n###############.###########.################\n###############.###########.################\n#############....######8\"\"\"1\"\"\"9############\n#................######%-------|############\n#.#a###################%-------|############\n#.#......#####....#####%-------|############\n#.#.a....#####.....####%---o---|############\n#...####.#####...p.....--------|############\n######...#####.....####%-------|############\n######a.a.####b.e.#####%-------|############\n######a.a.#############7'''4'''6############\n##########################...###############\n\n#########\n#.......#\n#..1..O.#\n#.P.1.O.#\n#.......#\n#.......#\n#########)\n\n", [3, 3, 0, 0, 0, 1, 1, 1, 3, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 3, 2, 3, 2, 3, 3, 3, 3, 0, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 2, 3, 3, 3, 0, 1, 2, 2, "undo", "undo", "undo", "undo", 3, 2, 3, 0, 0, 1, 2, 1, 1, 0, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 3, 3, 2, 2, 2], "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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,background blueapple:2,1,background yellowapple:3,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,0,0,0,1,1,1,1,1,0,0,1,0,0,1,0,1,0,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,3,1,0,1,1,0,1,0,1,0,0,1,0,0,1,0,1,3,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,0,0,1,1,1,0,0,1,0,0,1,0,1,0,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,2,2,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,1,1,0,0,1,0,0,0,1,0,0,1,0,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,2,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,1,0,1,1,0,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,1,0,1,2,0,1,1,0,1,3,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,1,0,1,1,1,1,1,0,2,3,3,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,background wall_metal_dr:4,background wall_metal_r:5,5,5,5,5,5,5,5,5,background wall_metal_ur:6,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,background wall_metal_d:7,background metal:8,8,8,8,8,8,8,8,8,background wall_metal_u:9,0,0,0,4,background wall_metal_drc:10,8,background wall_metal_urc:11,5,10,8,11,6,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,background button not_just_pressed:12,8,8,8,8,8,8,8,9,0,0,0,7,8,8,8,8,8,8,8,9,0,0,0,1,0,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,9,0,0,0,7,8,12,8,8,12,8,8,9,0,0,0,1,0,0,1,1,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,12,8,11,0,0,0,10,8,8,8,8,8,8,8,11,0,0,0,1,0,1,1,0,0,0,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,8,1,1,1,background checkpoint_marker door3_2:13,8,12,8,8,8,8,8,13,1,1,1,1,0,1,0,0,background eggshell_2:14,background eggbottom:15,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,background wall_metal_ulc:16,0,0,0,background wall_metal_dlc:17,8,8,8,8,8,8,8,16,0,0,0,0,0,1,0,0,1,background eggshell_1:18,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,9,0,0,0,7,8,8,8,8,8,8,8,9,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,12,8,8,8,8,8,12,8,9,0,0,0,7,8,8,8,8,8,8,8,9,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,9,0,0,0,background wall_metal_dl:19,background wall_metal_l:20,20,20,17,8,16,20,background wall_metal_ul:21,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,19,20,20,20,17,background checkpoint_marker door4_2:22,16,20,20,20,21,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,4,5,5,5,5,5,5,5,5,5,6,0,\n0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,4,5,5,10,background checkpoint_marker:23,11,5,6,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,7,8,8,8,8,8,8,8,8,8,9,0,\n0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,7,8,8,8,8,8,8,9,0,0,0,0,4,5,5,5,5,10,8,11,6,0,0,0,7,8,16,20,20,20,20,20,17,8,9,0,\n0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,7,8,8,8,8,8,8,9,0,0,0,0,7,8,8,8,8,8,8,8,11,5,5,5,10,8,9,0,0,0,0,0,10,8,9,0,\n0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,7,8,8,8,8,8,8,11,0,0,0,0,10,8,8,8,8,8,8,8,background checkpoint_marker doorxl_1 key:24,8,8,8,8,8,9,0,1,1,1,1,8,8,9,0,\n0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,7,8,8,8,8,8,8,8,1,1,1,1,23,8,8,8,12,8,8,8,background checkpoint_marker doorxm_2:25,8,8,8,8,8,9,0,1,background egg:26,1,8,8,8,9,0,\n0,2,3,3,2,2,2,3,3,2,3,2,0,0,0,0,7,8,8,8,8,8,8,16,0,0,0,0,17,8,8,8,8,8,8,8,background checkpoint_marker doorxr key:27,8,8,8,8,8,9,0,1,1,1,1,8,8,9,0,\n0,3,3,3,2,2,3,3,3,3,2,3,0,0,0,0,7,8,background button pressed tail_4 towardsdown:28,background bodyvertical metal towardsdown:29,29,background button playerdown pressed towardsdown:30,8,9,0,0,0,0,7,8,8,8,8,8,8,8,16,20,20,20,17,8,9,0,0,0,0,0,17,8,9,0,\n0,3,1,3,2,3,3,3,2,1,3,3,0,0,0,0,7,8,8,8,8,8,8,9,0,0,0,0,19,20,20,20,20,20,20,20,21,0,0,0,7,8,11,5,5,5,5,5,10,8,9,0,\n0,2,3,2,3,3,2,1,3,3,2,3,0,0,0,0,19,20,17,8,16,20,20,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8,8,8,8,8,8,8,8,9,0,\n0,3,3,3,3,3,3,2,2,3,3,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,20,20,20,20,20,20,20,20,20,21,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n", 1, "1627778292986.5747"] +["title Sokoboros\nauthor Trevor Newton\nhomepage https://twitter.com/trevnewt\n\nflickscreen 13x13\nnoaction\nbackground_color #22170B\ntext_color lightgreen\n(youtube wPqwxBnNxWU)\n\n========\nOBJECTS\n========\n\nBackground \nDarkBrown DarkGrey\n00000\n00000\n00000\n00000\n00000\n\nMetal\n#333333\n00000\n00000\n00000\n00000\n00000\n\nEgg\nWhite\n..0..\n.000.\n00000\n00000\n.000.\n\nEggBottom\nLightGrey\n.....\n0....\n000.0\n00000\n.000.\n\nEggShell_1\nLightGrey\n.....\n.0...\n...0.\n..00.\n.....\n\nEggShell_2\nLightGrey\n.....\n.....\n.0...\n.....\n..0..\n\nButton\nRed DarkRed LightGrey\n11111\n11111\n11011\n11111\n11111\n\nPressed\nRed Grey\n00000\n00000\n00000\n00000\n00000\n\nYellowApple\nYellow Green Blue\n..1..\n.000.\n00000\n00000\n.000.\n\nBlueApple\nLightBlue Green Blue\n..1..\n.000.\n00000\n00000\n.000.\n\nNot_Just_Pressed\ntransparent\n\nKey\ntransparent\n\nCheckpoint_Marker\n#333333 #232323\n00000\n01010\n00100\n01010\n00000\n\nDoor1\nLightGrey #333333 LightRed\n00000\n00000\n00100\n00000\n00000\n\nDoor2\nLightGrey #333333 LightRed\n00000\n00000\n01010\n00000\n00000\n\nDoor2_1\nLightGrey #333333 LightRed\n00000\n00000\n02010\n00000\n00000\n\nDoor3\nLightGrey #333333 LightRed\n00000\n01010\n00000\n00100\n00000\n\nDoor3_1\nLightGrey #333333 LightRed\n00000\n02010\n00000\n00100\n00000\n\nDoor3_2\nLightGrey #333333 LightRed\n00000\n02020\n00000\n00100\n00000\n\nDoor4\nLightGrey #333333 LightRed\n00000\n01010\n00000\n01010\n00000\n\nDoor4_1\nLightGrey #333333 LightRed\n00000\n02010\n00000\n01010\n00000\n\nDoor4_2\nLightGrey #333333 LightRed\n00000\n02020\n00000\n01010\n00000\n\nDoor4_3\nLightGrey #333333 LightRed\n00000\n02020\n00000\n02010\n00000\n\n\nDoorXL\nLightGrey #333333\n00000\n00010\n00000\n00010\n00000\n\nDoorXL_1\nLightGrey #333333 LightRed\n00000\n00020\n00000\n00010\n00000\n\nDoorXL_6\nLightGrey #333333 LightRed\n00000\n00020\n00000\n00020\n00000\n\nDoorXM\nLightGrey #333333\n00000\n10101\n00000\n10101\n00000\n\nDoorXM_1\nLightGrey #333333\n00000\n10101\n00000\n10101\n00000\n\nDoorXM_2\nLightGrey #333333 LightRed\n00000\n20101\n00000\n10101\n00000\n\nDoorXM_3\nLightGrey #333333 LightRed\n00000\n20201\n00000\n10101\n00000\n\nDoorXM_4\nLightGrey #333333 LightRed\n00000\n20202\n00000\n10101\n00000\n\nDoorXM_5\nLightGrey #333333 LightRed\n00000\n20202\n00000\n10101\n00000\n\nDoorXM_6\nLightGrey #333333 LightRed\n00000\n20202\n00000\n10101\n00000\n\nDoorXM_7\nLightGrey #333333 LightRed\n00000\n20202\n00000\n20101\n00000\n\nDoorXM_8\nLightGrey #333333 LightRed\n00000\n20202\n00000\n20201\n00000\n\nDoorXM_9\nLightGrey #333333 LightRed\n00000\n20202\n00000\n20202\n00000\n\nDoorXM_10\ntransparent\n\nDoorXR\nLightGrey #333333\n00000\n01000\n00000\n01000\n00000\n\nDoorXR_5\nLightGrey #333333 LightRed\n00000\n02000\n00000\n01000\n00000\n\n\n\nWall \nOrange Brown\n1111.\n10111\n11111\n11101\n.1111\n\nWall_Metal_R\nGrey DarkGrey\n00001\n00001\n00001\n00001\n00001\n\nWall_Metal_L\nGrey DarkGrey\n10000\n10000\n10000\n10000\n10000\n\nWall_metal_U\nGrey DarkGrey\n11111\n00000\n00000\n00000\n00000\n\nWall_metal_D\nGrey DarkGrey\n00000\n00000\n00000\n00000\n11111\n\nWall_metal_DRC\nGrey DarkGrey\n00001\n00001\n00001\n00001\n11111\n\nWall_metal_DLC\nGrey DarkGrey\n10000\n10000\n10000\n10000\n11111\n\nWall_metal_URC\nGrey DarkGrey\n11111\n00001\n00001\n00001\n00001\n\nWall_metal_ULC\nGrey DarkGrey\n11111\n10000\n10000\n10000\n10000\n\nWall_metal_DR\nGrey DarkGrey\n00000\n00000\n00000\n00000\n00001\n\nWall_Metal_UR\nGrey DarkGrey\n00001\n00000\n00000\n00000\n00000\n\nWall_metal_DL\nGrey DarkGrey\n00000\n00000\n00000\n00000\n10000\n\nWall_metal_UL\nGrey DarkGrey\n10000\n00000\n00000\n00000\n00000\n\nPlayerLeft\nGreen Red\n0000.\n.0100\n..000\n.0000\n0000.\n\nPlayerAteLeft\nGreen Red LightGreen\n.000.\n00100\n20000\n00000\n.000.\n\nPlayerRight\nGreen Red\n.0000\n0010.\n000..\n0000.\n.0000\n\nPlayerAteRight\nGreen Red LightGreen\n.000.\n00100\n00002\n00000\n.000.\n\nPlayerUp\nGreen Red\n0...0\n00.00\n01000\n00000\n.000.\n\nPlayerAteUp\nGreen Red LightGreen\n.020.\n00000\n01000\n00000\n.000.\n\nPlayerDown\nGreen Red\n.000.\n00000\n00010\n00.00\n0...0\n\nPlayerAteDown\nGreen Red LightGreen\n.000.\n00000\n00010\n00000\n.020.\n\nBodyHorizontal\nGreen LightGreen\n.....\n00100\n00100\n00100\n.....\n\nBodyVertical\nGreen LightGreen\n.000.\n.000.\n.111.\n.000.\n.000.\n\n(BodyBend_1\nGreen LightGreen\n.....\n..000\n.0111\n.0100\n.010.)\n\nBodyBend_1\nGreen LightGreen\n.....\n..000\n.0100\n.0010\n.000.\n\nBodyBend_2\nGreen LightGreen\n.....\n000..\n0010.\n0100.\n.000.\n\nBodyBend_3\nGreen LightGreen\n.000.\n.0010\n.0100\n..000\n.....\n\nBodyBend_4\nGreen LightGreen\n.000.\n0100.\n0010.\n000..\n.....\n\nTail_1\nGreen LightGreen\n.....\n000..\n0000.\n000..\n.....\n\nTail_2\nGreen LightGreen\n.....\n..000\n.0000\n..000\n.....\n\nTail_3\nGreen LightGreen\n.000.\n.000.\n.000.\n..0..\n.....\n\nTail_4\nGreen LightGreen\n.....\n..0..\n.000.\n.000.\n.000.\n\nTowardsUp\nRED\n..0..\n.000.\n0.0.0\n..0..\n..0..\n\nTowardsLeft\nRED\n..0..\n.0...\n00000\n.0...\n..0..\n\nTowardsRight\nRED\n..0..\n...0.\n00000\n...0.\n..0..\n\nTowardsDown\nRED\n..0..\n..0..\n0.0.0\n.000.\n..0..\n\n=======\nLEGEND\n=======\n\n< = BodyHorizontal and TowardsLeft\n> = BodyBend_1 and TowardsRight and EggShell_2\n^ = BodyVertical and TowardsUp\nv = BodyVertical and TowardsDown\n\n(L = Tail and TowardsLeft\nR = Tail and TowardsRight)\nU = Tail_3 and TowardsUp and EggBottom\n(D = Tail and TowardsDown)\n\n. = Background\n- = Metal\n\n# = Wall\n% = Wall_Metal_R\n| = Wall_Metal_L\n' = Wall_Metal_U\n\" = Wall_Metal_D\n7 = Wall_Metal_UR\n6 = Wall_Metal_UL\n9 = Wall_Metal_DL\n8 = Wall_Metal_DR\n~ = Wall_Metal_URC\n@ = Wall_Metal_ULC\n_ = Wall_Metal_DRC\n! = Wall_Metal_DLC\n\nP = PlayerRight and TowardsRight\n1 = Door1 and Checkpoint_Marker\n2 = Door2 and Checkpoint_Marker\n3 = Door3 and Checkpoint_Marker\n4 = Door4 and Checkpoint_Marker\n+ = DoorXL and Checkpoint_Marker\nX = DoorXM and Checkpoint_Marker\n? = DoorXR and Checkpoint_Marker\nO = Button and Not_Just_Pressed\nA = YellowApple\nH = BlueApple\n\n\nE = EggShell_1\nB = EggBottom\nW = Egg\n\n\n\nMarker = TowardsLeft or TowardsRight or TowardsUp or TowardsDown\nPlayer = PlayerLeft or PlayerRight or PlayerUp or PlayerDown or PlayerAteLeft or PlayerAteRight or PlayerAteUp or PlayerAteDown\nTail = Tail_1 or Tail_2 or Tail_3 or Tail_4\nBodyBends = BodyBend_1 or BodyBend_2 or BodyBend_3 or BodyBend_4\nBodyPart = BodyHorizontal or BodyVertical or BodyBend_1 or BodyBend_2 or BodyBend_3 or BodyBend_4\nPlayerPart = Player or BodyPart or Tail\n\nDoorX = DoorXM or DoorXM_1 or DoorXM_2 or DoorXM_3 or DoorXM_4 or DoorXM_5 or DoorXM_6 or DoorXM_7 or DoorXM_8 or DoorXM_9 or DoorXM_10\n\nDoor = Door1 or Door2 or Door2_1 or Door3 or Door3_1 or Door3_2 or Door4 or Door4_1 or Door4_2 or Door4_3 or DoorXL or DoorXL_1 or DoorXL_6 or DoorXR or DoorXR_5 or DoorX\n\nWalls = Wall or Wall_Metal_U or Wall_Metal_L or Wall_Metal_R or Wall_Metal_D or Wall_Metal_UR or Wall_Metal_DR or Wall_Metal_DL or Wall_Metal_UL or Wall_Metal_URC or Wall_Metal_ULC or Wall_Metal_DRC or Wall_Metal_DLC\nObstacle = Walls or PlayerPart or Door\nApple = YellowApple or BlueApple or Egg\n\n=======\nSOUNDS\n=======\n\nUndo 50721302\n\nTitleScreen 46639909\nSFX0 66467307 (Walk on metal)\nSFX1 41037702 (Eat food)\nSFX2 78277102 (Press Button)\nSFX3 47230702 (Unpress Button)\nSFX4 44928302 (Open Door)\nSFX5 6466307 (Walk on dirt)\nSFX6 72511108 (Forboding...)\n\n================\nCOLLISIONLAYERS\n================\n\nNot_Just_Pressed\nKey\nMarker\nBackground\nMetal, Checkpoint_Marker\nEggShell_1, EggShell_2, EggBottom\nButton\nPressed\nPlayer, BodyPart, Door, Tail, Apple, Walls, Egg\n\n======\nRULES \n======\n\nleft [ > Player TowardsLeft | Apple ] -> [ BodyHorizontal TowardsLeft | PlayerAteLeft TowardsLeft ] SFX1\nleft [ > Player TowardsUp | Apple ] -> [ BodyBend_2 TowardsLeft | PlayerAteLeft TowardsLeft ] SFX1\nleft [ > Player TowardsDown | Apple ] -> [ BodyBend_4 TowardsLeft | PlayerAteLeft TowardsLeft ] SFX1\n\nright [ > Player TowardsRight | Apple ] -> [ BodyHorizontal TowardsRight | PlayerAteRight TowardsRight ] SFX1\nright [ > Player TowardsUp | Apple ] -> [ BodyBend_1 TowardsRight | PlayerAteRight TowardsRight ] SFX1\nright [ > Player TowardsDown | Apple ] -> [ BodyBend_3 TowardsRight | PlayerAteRight TowardsRight ] SFX1 \n\nup [ > Player TowardsUp | Apple ] -> [ BodyVertical TowardsUp | PlayerAteUp TowardsUp ] SFX1\nup [ > Player TowardsLeft | Apple ] -> [ BodyBend_3 TowardsUp | PlayerAteUp TowardsUp ] SFX1\nup [ > Player TowardsRight | Apple ] -> [ BodyBend_4 TowardsUp | PlayerAteUp TowardsUp ] SFX1\n\ndown [ > Player TowardsDown | Apple ] -> [ BodyVertical TowardsDown | PlayerAteDown TowardsDown ] SFX1\ndown [ > Player TowardsLeft | Apple ] -> [ BodyBend_1 TowardsDown | PlayerAteDown TowardsDown ] SFX1\ndown [ > Player TowardsRight | Apple ] -> [ BodyBend_2 TowardsDown | PlayerAteDown TowardsDown ] SFX1\n\n(If the player is NOT about to move onto a button, move the player normally.\nThis is actually somewhat complicated. When the snake head moves, we put a direction marker behind it, indicating which direction it went -- this gives the body parts directions to follow. But we ALSO put a direction marker, of the same direction, on the head's new space. This gets deleted on the next move and replaced with whatever move you make next. The purpose of the marker on top of the head is so that the game can keep in mind which direction you've come from. This is useful for creating new bodyparts when eating apples.)\n\nleft [ > player Marker | No Obstacle No Metal | ] -> [ TowardsLeft | PlayerLeft TowardsLeft | SFX5]\nright [ > player Marker | No Obstacle No Metal | ] -> [ TowardsRight | PlayerRight TowardsRight | SFX5]\nup [ > player Marker | No Obstacle No Metal | ] -> [ TowardsUp | PlayerUp TowardsUp | SFX5]\ndown [ > player Marker | No Obstacle No Metal | ] -> [ TowardsDown | PlayerDown TowardsDown | SFX5]\n\n(Moving on metal.)\n\nleft [ > player Marker | No Obstacle Metal | ] -> [ TowardsLeft | PlayerLeft Metal TowardsLeft | SFX0]\nright [ > player Marker | No Obstacle Metal | ] -> [ TowardsRight | PlayerRight Metal TowardsRight | SFX0]\nup [ > player Marker | No Obstacle Metal | ] -> [ TowardsUp | PlayerUp Metal TowardsUp | SFX0]\ndown [ > player Marker | No Obstacle Metal | ] -> [ TowardsDown | PlayerDown Metal TowardsDown | SFX0]\n\n\nstartloop\nlate left [ BodyPart TowardsLeft | No PlayerPart TowardsLeft ] -> [ TowardsLeft | BodyHorizontal TowardsLeft]\nlate left [ BodyPart TowardsLeft | No PlayerPart TowardsUp ] -> [ TowardsLeft | BodyBend_3 TowardsUp]\nlate left [ BodyPart TowardsLeft | No PlayerPart TowardsDown ] -> [ TowardsLeft | BodyBend_1 TowardsDown]\n\nlate right [ BodyPart TowardsRight | No PlayerPart TowardsRight] -> [ TowardsRight | BodyHorizontal TowardsRight]\nlate right [ BodyPart TowardsRight | No PlayerPart TowardsUp] -> [ TowardsRight | BodyBend_4 TowardsUp]\nlate right [ BodyPart TowardsRight | No PlayerPart TowardsDown] -> [ TowardsRight | BodyBend_2 TowardsDown ]\n\nlate up [ BodyPart TowardsUp | No PlayerPart TowardsUp] -> [ TowardsUp | BodyVertical TowardsUp]\nlate up [ BodyPart TowardsUp | No PlayerPart TowardsLeft] -> [ TowardsUp | BodyBend_2 TowardsLeft]\nlate up [ BodyPart TowardsUp | No PlayerPart TowardsRight] -> [ TowardsUp | BodyBend_1 TowardsRight]\n\nlate down [ BodyPart TowardsDown | No PlayerPart TowardsDown] -> [ TowardsDown | BodyVertical TowardsDown]\nlate down [ BodyPart TowardsDown | No PlayerPart TowardsLeft] -> [ TowardsDown | BodyBend_4 TowardsLeft]\nlate down [ BodyPart TowardsDown | No PlayerPart TowardsRight] -> [ TowardsDown | BodyBend_3 TowardsRight]\nendloop\n\n(If Tail is on button, move it off and handle that.)\n\nlate left [ Tail TowardsLeft Button Pressed | No PlayerPart ] -> [ Button Pressed | Tail_1 ] SFX3\nlate right [ Tail TowardsRight Button Pressed | No PlayerPart ] -> [ Button Pressed | Tail_2 ] SFX3\nlate up [ Tail TowardsUp Button Pressed | No PlayerPart ] -> [ Button Pressed | Tail_3 ] SFX3\nlate down [ Tail TowardsDown Button Pressed| No PlayerPart ] -> [ Button Pressed | Tail_4 ] SFX3\n\n(If Tail is not on button, just move it.)\n\nlate left [ Tail TowardsLeft No Button | No PlayerPart ] -> [ | Tail_1 ]\nlate right [ Tail TowardsRight No Button| No PlayerPart ] -> [ | Tail_2 ]\nlate up [ Tail TowardsUp No Button| No PlayerPart ] -> [ | Tail_3 ]\nlate down [ Tail TowardsDown No Button| No PlayerPart ] -> [ | Tail_4 ]\n\nlate [Tail TowardsRight] -> [Tail_2 TowardsRight]\nlate [Tail TowardsDown] -> [Tail_4 TowardsDown]\nlate [Tail TowardsUp] -> [Tail_3 TowardsUp]\nlate [Tail TowardsLeft] -> [Tail_1 TowardsLeft]\n\n\n\n\nlate [ Player Button No Pressed ] -> [ Player Button Pressed ] SFX2\n\nstartloop\nlate [ Player Button Not_Just_Pressed] [ Door No Key ] -> [ Player Button Not_Just_Pressed] [ Door Key ]\nendloop\n\nstartloop\nlate [ Player Button Not_Just_Pressed ] -> [ Player Button ]\nendloop\n\n\nlate [ Button Pressed No PlayerPart ] [ Door2_1 ] -> [ Button Pressed ] [ Door2 ]\n\nlate [ Button Pressed No PlayerPart ] [ Door3_1 ] -> [ Button Pressed ] [ Door3 ]\nlate [ Button Pressed No PlayerPart ] [ Door3_2 ] -> [ Button Pressed ] [ Door3_1 ]\n\nlate [ Button Pressed No PlayerPart ] [ Door4_1 ] -> [ Button Pressed ] [ Door4 ]\nlate [ Button Pressed No PlayerPart ] [ Door4_2 ] -> [ Button Pressed ] [ Door4_1 ]\nlate [ Button Pressed No PlayerPart ] [ Door4_3 ] -> [ Button Pressed ] [ Door4_2 ]\n\nlate [ Button Pressed No PlayerPart ] [ DoorXM_1 ] -> [ Button Pressed ] [ DoorXM ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_2 ] -> [ Button Pressed ] [ DoorXM_1 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_3 ] -> [ Button Pressed ] [ DoorXM_2 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_4 ] -> [ Button Pressed ] [ DoorXM_3 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_5 ] -> [ Button Pressed ] [ DoorXM_4 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_6 ] -> [ Button Pressed ] [ DoorXM_5 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_7 ] -> [ Button Pressed ] [ DoorXM_6 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_8 ] -> [ Button Pressed ] [ DoorXM_7 ]\nlate [ Button Pressed No PlayerPart ] [ DoorXM_9 ] -> [ Button Pressed ] [ DoorXM_8 ]\n\n\n\nlate [ DoorXM_9 Key ] -> [ DoorXM_10] SFX6 checkpoint\nlate [ DoorXM_8 Key ] -> [ DoorXM_9 ]\nlate [ DoorXM_7 Key ] -> [ DoorXM_8 ]\nlate [ DoorXM_6 Key ] -> [ DoorXM_7 ]\nlate [ DoorXM_5 Key ] -> [ DoorXM_6 ]\nlate [ DoorXM_4 Key ] -> [ DoorXM_5 ]\nlate [ DoorXM_3 Key ] -> [ DoorXM_4 ]\nlate [ DoorXM_2 Key ] -> [ DoorXM_3 ]\nlate [ DoorXM_1 Key ] -> [ DoorXM_2 ]\nlate [ DoorXM Key ] -> [ DoorXM_1 ]\n\nlate [ Door4_3 Key ] -> [ ] SFX4 checkpoint\nlate [ Door4_2 Key ] -> [ Door4_3 ]\nlate [ Door4_1 Key ] -> [ Door4_2 ]\nlate [ Door4 Key ] -> [ Door4_1 ]\n\nlate [ Door3_2 Key ] -> [ ] SFX4 checkpoint\nlate [ Door3_1 Key ] -> [ Door3_2 ]\nlate [ Door3 Key ] -> [ Door3_1 ]\n\nlate [ Door2_1 Key ] -> [ ] SFX4 checkpoint\nlate [ Door2 Key ] -> [ Door2_1 ]\n\nlate [ Door1 Key ] -> [ ] SFX4 checkpoint\n\nlate [ DoorXM_1] [ DoorXL ] -> [ DoorXM_1 ] [ DoorXL_1 ]\nlate [ DoorXM] [ DoorXL_1 ] -> [ DoorXM ] [ DoorXL ]\nlate [ DoorXM_6] [ DoorXL_1 ] -> [ DoorXM_6 ] [ DoorXL_6 ]\nlate [ DoorXM_5] [ DoorXL_6 ] -> [ DoorXM ] [ DoorXL_1 ]\n\nlate [ DoorXM_5] [ DoorXR ] -> [ DoorXM_5 ] [ DoorXR_5 ]\nlate [ DoorXM_4] [ DoorXR_5 ] -> [ DoorXM ] [ DoorXR ]\n\nlate [ DoorXM_10 ] [ DoorXL_6 ] [ DoorXR_5 ] -> [ ] [ ] [ ]\n\n\nlate [ Button Pressed No PlayerPart ] -> [ Button Not_Just_Pressed ]\n\n(late [ Player Checkpoint_Marker ] -> [ Player Checkpoint_Marker] checkpoint)\n\n(Alternative solution: have a different key for each button, each on different layers. but unite them under a \"key\" word. Then do the multiple keys on doors method)\n\n==============\nWINCONDITIONS\n==============\n\nNo Egg \n\n======= \nLEVELS\n=======\n\nMessage Oh! A baby is born...\n\n#######################################.............\n#............#8\"\"\"\"\"\"\"\"\"9########haaha#.............\n#............#%---------|########aa.aa#.............\n#............#%-o-----o-|########aaaha#.............\n#............#%---------|####...#hhhaa#.............\n#............#%---------!####....hhaaa#.............\n#............#%---------4.......#haaha#.............\n#............#%---------@####....aaa.h#.............\n#............#%---------|####...#aahah#.............\n#............#%---o---o-|########ha.aa#.............\n#............#%---------|########ahaha#.............\n#............#7'''~-@'''6########haaah#.............\n###################.###################.............\n###################.################################\n###################.################################\n##...##########8\"\"_3!\"\"9############################\n##.a.#....#####_-------|####8\"\"\"\"\"\"\"9###############\n###..#..#......--o-o---|####%-------|#####...#######\n####.##.#######~-------|####%-----o-!###......#..###\n###..#...######%-------!####_--------.......#...a###\n##..##.h.######_-o------....2-------@####..####..###\n##.########....--------@####~-----o-|###############\n##...#####..###~-------|####%-------|###############\n##.#........###7''~3@''6####7''~-@''6###############\n##...##############.############.###################\n###################.############.###################\n###################.############.######.......######\n#...................############.######.............\n#.###########################8\"_1!\"9###.............\n#.#######...######.....######%-----|###.............\n#.........h.#####..###.######%-----|###.............\n###########.####..####.######%-----|###.............\n#h..........####.##>p..######%--o--|###.............\n#.#a#.......####.##ue########_-----|###.............\n#a#.#h##########.######......------|###.............\n#....h.#...h####..####..#####~-----|###.............\n#.####....aa#####......######7~+x?@6###.............\n#......#...a##################%---|####.............\n##############################%---|####.............\n..........................####%---|####.............\n..........................#8\"\"_---!\"\"9#.............\n..........................#%---------|#.............\n..........................#%-@'''''~-|#.............\n..........................#%-|#####%-|#.............\n..........................#%-|#...#%-|#.............\n..........................#%-|#.w.#%-|#.............\n..........................#%-|#...#%-|#.............\n..........................#%-|#.-.#%-|#.............\n..........................#%-!_---!_-|#.............\n..........................#%---------|#.............\n..........................#7'''''''''6#.............\n..........................#############.............\n\n(#######################################.............\n#............#8\"\"\"\"\"\"\"\"\"9#########aah##.............\n#............#%---------|########ahaaa#.............\n#............#%-o-----o-|########aaaha#.............\n#............#%---------|###....#hhhha#.............\n#............#%---------!###.....hhaaa#.............\n#............#%---------4.......#haaha#.............\n#............#%---------@###.....aaaah#.............\n#............#%---------|###....#aahah#.............\n#............#%--o----o-|########haaaa#.............\n#............#%---------|########ahaha#.............\n#............#7'''~-@'''6#########aaa##.............\n###################.###################.............\n###################.################################\n###################.################################\n##...##########8\"\"_3!\"\"9############################\n##.a.#....#####_-------|####8\"\"\"\"\"\"\"9###############\n###..#..#......---o----|####%-------|#####...#######\n####.##.#######~-------|####%-----o-!###......#..###\n###..#...######%-------!####_--------.......#...a###\n##..##.h.######_--o-o---....2-------@####..####..###\n##.########....--------@####~-----o-|###############\n##...#####..###~-------|####%-------|###############\n##.#........###7''~3@''6####7''~-@''6###############\n##...##############.############.###################\n###################.############.###################\n###################.############.######.......######\n#...................############.######.............\n#.###########################8\"_1!\"9###.............\n#.....a.....######.....######%-----|###.............\n#...a...h...#####..###.######%-----|###.............\n###########.####..####.######%-----|###.............\n#ha.........####.##>p..######%--o--|###.............\n#.#a#......a####.##uE########_-----|###.............\n#a#.#h##########.######......------|###.............\n#..h.ha.#..#####..####..#####~-----|###.............\n#.####....h.#####......######7~+X?@6###.............\n#......#....##################%---|####.............\n##############################%---|####.............\n..........................####%---|####.............\n..........................#8\"\"_---!\"\"9#.............\n..........................#%---------|#.............\n..........................#%-@'''''~-|#.............\n..........................#%-|#####%-|#.............\n..........................#%-|#...#%-|#.............\n..........................#%-|#.w.#%-|#.............\n..........................#%-|#...#%-|#.............\n..........................#%-|#.-.#%-|#.............\n..........................#%-!_---!_-|#.............\n..........................#%---------|#.............\n..........................#7'''''''''6#.............\n..........................#############.............)\n\nMessage Thank you for playing.\n\n(#######################################.............\n#............#8\"\"\"\"\"\"\"\"\"9#######aaaa###.............\n#............#%---------|#####...aaa###.............\n#............#%-o-----o-|####......####.............\n#............#%---------|####......####.............\n#............#%---------|#####.......##.............\n#............#%---------4........aaa.##.............\n#............#%---------|#####...aaa.##.............\n#............#%---------|#####...aaa.##.............\n#............#%--o---o--|#######.....##.............\n#............#%---------|#######....###.............\n#............#7''''-''''6########..####.............\n###################.###################.............\n###################.################################\n###################.################################\n##...##########8\"\"\"3\"\"\"9############################\n##.a.#....#####%-------|####8\"\"\"\"\"\"\"9###############\n###..#..#......---o----|####%-------|#####...#######\n####.##.#######%-------|####%-----o-|###......#..###\n###..#...######%-------|####%--------.......#...a###\n##..##.a.######%--o-o---....2-------|####..####..###\n##.########....--------|####%-----o-|###############\n##...#####..###%-------|####%-------|###############\n##.#........###7'''3'''6####7'''-'''6###############\n##...##############.############.###################\n###################.############.###################\n###################.############.######.......######\n###############.....############.######.............\n##..............#############8\"\"-\"\"9###.............\n##.###############.....######%-----|###.............\n##..a...a...#####..###.######%-----|###.............\n###...a...a.####..####.######%-----|###.............\n########a##.####.##>p..######%--o--|###.............\n##..a.......####.##u.########%-----|###.............\n##....a.########.######......------|###.............\n##.######...####..####..#####%-----|###.............\n##.........a#####......######7''4''6###.............\n#########...####################.######.............\n###############################...#####.............\n\n.............##########################.............\n.............#8\"\"\"\"\"\"\"\"\"9#######aaaa###.............\n.............#%---------|#####...aaa###.............\n.............#%-o-----o-|####......####.............\n.............#%---------|####......####.............\n.............#%---------|#####.......##.............\n.............#%---------4........aaa.##.............\n.............#%---------|#####...aaa.##.............\n.............#%---------|#####...aaa.##.............\n.............#%-o-----o-|#######.....##.............\n.............#%---------|#######....###.............\n.............#7''''-''''6########..####.............\n.............######.###################.............\n###################.################################\n###################.################################\n##...##########8\"\"\"3\"\"\"9############################\n##.a.#....#####%-------|####8\"\"\"\"\"\"\"9###############\n###..#..#......---o----|####%-------|#####...#######\n####.##.#######%-------|####%-----o-|###......#..###\n###..#...######%-------|####%--------.......#...a###\n##..##.a.######%--o-o---....2-------|####..####..###\n##.########....--------|####%-----o-|###############\n##...#####..###%-------|####%-------|###############\n##.#........###7'''3'''6####7'''-'''6###############\n##...##############.############.###################\n###################.############.###################\n###################.############.######.......######\n###############.....############.######.............\n##..............#####..######8\"\"-\"\"9###.............\n##.##a###########......######%-----|###.............\n##.##.#########....###.######%-----|###.............\n##.##.....#####..####..######%-----|###.............\n##.##.a...#####.##>p..#######%--o--|###.............\n##....###.#####.##u.#########%-----|###.............\n#######....####.######.......------|###.............\n#######a.a.####...####.######%-----|###.............\n#######a.a.######......######7''4''6###.............\n################################.######.............\n###############################...#####.............\n\n####################################################\n#..........###...........###########################\n#...........##...........###8\"\"\"\"\"\"\"9###############\n#...........##...........###%-------|###############\n#..#####.##.##...........###%-----o-|######..#######\n#..##..###..##...........###%-------|###.....##..###\n#.....#####.##..............2--------....##.....a###\n#..#..########...........###%-------|##########..###\n#..###.####.##...........###%-----o-|###############\n#.##..#####.##...........###%-------|###############\n#.#########.##...........###7'''-'''6###############\n#...........##...........#######.###################\n################################.###################\n################################.######.......######\n#...........####################.######.............\n#..########.#####......######8\"\"-\"\"9###.............\n#..########.#####.####.######%-----|###.............\n#..########.###...####.######%-----|###.............\n#..#######..###.#####..######%-----|###.............\n#..#######..###.##.P..#######%--o--|###.............\n#.########..###.##..#########%-----|###.............\n#.########..###.######.......------|###.............\n#.########..###...####.######%-----|###.............\n#.########..#####......######7''4''6###.............\n#...........####################.######.............\n###############################...#####.............\n\n#######################################\n#..........###...........##...........#\n#...........##...........##...........#\n#...........##...........##...........#\n#..#####.##.##...........##...........#\n#..##..###..##...........##...........#\n#.....#####.##...........##...o...o...#\n#..#..########...........##...........#\n#..###.####.##...........##...........#\n#.##..#####.##...........##...........#\n#.#########.##...........##...........#\n#...........##...........##...........#\n################################.######\n################################.######\n#...........####################.######\n#..########.#####......######8\"\"1\"\"9###\n#..########.#####.####.######%-----|###\n#..########.###...####.######%-----|###\n#..#######..###.#####..######%-----|###\n#..#######..###.##.p..#######%--o--|###\n#.########..###.##..#########%-----|###\n#.########..###.######.......------|###\n#.########..###...####.######%-----|###\n#.########..#####......######7''4''6###\n#...........####################.######\n###############################...#####\n\n############################################\n############.........#8\"\"\"\"\"\"\"\"\"##....##...#\n#.........###......o.#%---------...#..##.a.#\n#.........####.......#%-------o-####.###..##\n#.........##........##%---------###...##.###\n#..........3.o........2--o------###.aa##..##\n#.........##.........#%---------#########.##\n#.........####.....o.#%-------o-....###...##\n#.........#####......#%---------###.....#.##\n#.........#####..#####7'''---'''#######...##\n###############.###########.################\n###############.###########.################\n#############....######8\"\"\".\"\"\"9############\n#................######%-------|############\n#.#a###################%-------|############\n#.#......#####....#####%-------|############\n#.#.a....#####.....####%---o---|############\n#...####.#####...p.....--------|############\n######...#####.....####%-------|############\n######a.a.####b.e.#####%-------|############\n######a.a.#############7'''4'''6############\n##########################...###############\n\n#######################8\"\"\"\"\"\"\"\"\"\"\"#########\n############.........#8%----------....##...#\n#.........###......o.#%-------o---.#..##.a.#\n#.........####.......#%---------|'##.###..##\n#.........##........##%--------|6##...##.###\n#..........3.o........2--o-----####.aa##..##\n#.........##.........#%---------|\"#######.##\n#.........####.....o.#%-------o---..###...##\n#.........#####......#7%-----------.....#.##\n#.........#####..######7''---''''''####...##\n###############.###########.################\n###############.###########.################\n#############....######8\"\"\"1\"\"\"9############\n#................######%-------|############\n#.#a###################%-------|############\n#.#......#####....#####%-------|############\n#.#.a....#####.....####%---o---|############\n#...####.#####...p.....--------|############\n######...#####.....####%-------|############\n######a.a.####b.e.#####%-------|############\n######a.a.#############7'''4'''6############\n##########################...###############\n\n#########\n#.......#\n#..1..O.#\n#.P.1.O.#\n#.......#\n#.......#\n#########)\n\n",[3,3,0,0,0,1,1,1,3,1,1,2,2,1,2,1,2,1,2,2,2,3,2,3,2,3,3,3,3,0,3,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,0,3,3,3,3,3,3,3,3,3,0,3,3,2,3,3,3,0,1,2,2,"undo","undo","undo","undo",3,2,3,0,0,1,2,1,1,0,1,1,1,1,2,1,1,1,1,1,1,1,1,1,0,3,3,2,2,2],"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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,background blueapple:2,1,background yellowapple:3,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,0,0,0,1,1,1,1,1,0,0,1,0,0,1,0,1,0,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,3,1,0,1,1,0,1,0,1,0,0,1,0,0,1,0,1,3,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,0,0,1,1,1,0,0,1,0,0,1,0,1,0,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,2,2,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,1,1,0,0,1,0,0,0,1,0,0,1,0,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,2,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,1,0,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,1,0,1,1,0,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,1,0,1,2,0,1,1,0,1,3,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,1,0,1,1,1,1,1,0,2,3,3,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,background wall_metal_dr:4,background wall_metal_r:5,5,5,5,5,5,5,5,5,background wall_metal_ur:6,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,background wall_metal_d:7,background metal:8,8,8,8,8,8,8,8,8,background wall_metal_u:9,0,0,0,4,background wall_metal_drc:10,8,background wall_metal_urc:11,5,10,8,11,6,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,background button not_just_pressed:12,8,8,8,8,8,8,8,9,0,0,0,7,8,8,8,8,8,8,8,9,0,0,0,1,0,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,9,0,0,0,7,8,12,8,8,12,8,8,9,0,0,0,1,0,0,1,1,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,12,8,11,0,0,0,10,8,8,8,8,8,8,8,11,0,0,0,1,0,1,1,0,0,0,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,8,1,1,1,background checkpoint_marker door3_2:13,8,12,8,8,8,8,8,13,1,1,1,1,0,1,0,0,background eggshell_2:14,background eggbottom:15,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,background wall_metal_ulc:16,0,0,0,background wall_metal_dlc:17,8,8,8,8,8,8,8,16,0,0,0,0,0,1,0,0,1,background eggshell_1:18,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,9,0,0,0,7,8,8,8,8,8,8,8,9,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,12,8,8,8,8,8,12,8,9,0,0,0,7,8,8,8,8,8,8,8,9,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,7,8,8,8,8,8,8,8,8,8,9,0,0,0,background wall_metal_dl:19,background wall_metal_l:20,20,20,17,8,16,20,background wall_metal_ul:21,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,19,20,20,20,17,background checkpoint_marker door4_2:22,16,20,20,20,21,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,4,5,5,5,5,5,5,5,5,5,6,0,\n0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,4,5,5,10,background checkpoint_marker:23,11,5,6,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,7,8,8,8,8,8,8,8,8,8,9,0,\n0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,7,8,8,8,8,8,8,9,0,0,0,0,4,5,5,5,5,10,8,11,6,0,0,0,7,8,16,20,20,20,20,20,17,8,9,0,\n0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,7,8,8,8,8,8,8,9,0,0,0,0,7,8,8,8,8,8,8,8,11,5,5,5,10,8,9,0,0,0,0,0,10,8,9,0,\n0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,7,8,8,8,8,8,8,11,0,0,0,0,10,8,8,8,8,8,8,8,background checkpoint_marker doorxl_1 key:24,8,8,8,8,8,9,0,1,1,1,1,8,8,9,0,\n0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,7,8,8,8,8,8,8,8,1,1,1,1,23,8,8,8,12,8,8,8,background checkpoint_marker doorxm_2:25,8,8,8,8,8,9,0,1,background egg:26,1,8,8,8,9,0,\n0,2,3,3,2,2,2,3,3,2,3,2,0,0,0,0,7,8,8,8,8,8,8,16,0,0,0,0,17,8,8,8,8,8,8,8,background checkpoint_marker doorxr key:27,8,8,8,8,8,9,0,1,1,1,1,8,8,9,0,\n0,3,3,3,2,2,3,3,3,3,2,3,0,0,0,0,7,8,background button pressed tail_4 towardsdown:28,background bodyvertical metal towardsdown:29,29,background button playerdown pressed towardsdown:30,8,9,0,0,0,0,7,8,8,8,8,8,8,8,16,20,20,20,17,8,9,0,0,0,0,0,17,8,9,0,\n0,3,1,3,2,3,3,3,2,1,3,3,0,0,0,0,7,8,8,8,8,8,8,9,0,0,0,0,19,20,20,20,20,20,20,20,21,0,0,0,7,8,11,5,5,5,5,5,10,8,9,0,\n0,2,3,2,3,3,2,1,3,3,2,3,0,0,0,0,19,20,17,8,16,20,20,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8,8,8,8,8,8,8,8,9,0,\n0,3,3,3,3,3,3,2,2,3,3,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,20,20,20,20,20,20,20,20,20,21,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n",1,"1627778292986.5747"] ], [ `gallery: marble shot`, - ["title Marble Shoot\nauthor Stuart Burfield\nhomepage www.thepixelshelf.com\n\n========\nOBJECTS\n========\n\nBackground \n#CCFFCC\n\nPit\nBlack\n\nGoal \nBlack grey\n.000.\n00000\n00000\n00000\n.000.\n\nWall \nBlack #434f7b Blue #2ebdf5 #99CCFF darkblue #4DDBFF #B2F0FF\n13366\n12226\n52223\n52223\n55511\n\nHBlock\nBlack #293D3D #527A7A #85ADAD #99CCFF #0A0F0F #D1E0E0 white yellow #FF6600\n13367\n12226\n59993\n52223\n55511\n\nVBlock\nBlack #293D3D #527A7A #85ADAD #99CCFF #0A0F0F #D1E0E0 white #FFFF00 orange\n13367\n12826\n52823\n52823\n55511\n\nPlayerStill \nred Green orange Black grey darkred \n.333.\n.222.\n.121.\n20002\n.5.5.\n\nPlayerRight\nred Green orange Black grey\n.333.\n.222.\n.222.\n.0002\n.0.0.\n\nPlayerLeft\nred Green orange Black grey\n.333.\n.222.\n.222.\n2000.\n.0.0.\n\nPlayerDown\nred Green orange Black grey\n.333.\n.222.\n.121.\n20002\n.0.0.\n\nPlayerUp \nred Green orange Black grey\n.333.\n.222.\n22222\n.000.\n.0.0.\n\nGMarbStill\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbRight\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbLeft\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbDown\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbUp\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbGo1\n#001A00 Darkgreen green #b5e622 white\n.....\n.334.\n12234\n01223\n.011.\n\nGMarbGo2\n#001A00 Darkgreen green #b5e622 white\n.....\n.....\n.334.\n12234\n.122.\n\nGMarbGo3\nBlack Darkgreen green #b5e622 white\n.....\n.....\n.....\n.334.\n.223.\n\nGMarbGo4\nBlack Darkgreen green #b5e622 white\n.....\n.....\n.....\n.....\n.334.\n\nGMarbGo5\nBlack Darkgreen green #b5e622 white\n.....\n.....\n.....\n.....\n.....\n\nRMarbStill\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbRight\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbLeft\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbDown\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbUp\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbGo1\n#2E0000 DarkRed red orange yellow\n.....\n.334.\n12234\n01223\n.011.\n\nRMarbGo2\n#2E0000 DarkRed red orange yellow\n.....\n.....\n.334.\n12234\n.122.\n\nRMarbGo3\nBlack DarkRed red orange yellow\n.....\n.....\n.....\n.334.\n.223.\n\nRMarbGo4\nBlack DarkRed red orange yellow\n.....\n.....\n.....\n.....\n.334.\n\nRightArrow\n#2EB82E #FF3300#330000 #FFCC00\n21222\n21122\n21112\n21122\n21222\n\nRightArrowUsed\n#008AE6 #CCEBFF #001F7A #80CCFF \n21222\n21122\n21112\n21122\n21222\n\nLeftArrow\n#2EB82E #FF3300 #330000 #FFCC00 \n22212\n22112\n21112\n22112\n22212\n\nLeftArrowUsed\n#008AE6 #CCEBFF #001F7A #80CCFF \n22212\n22112\n21112\n22112\n22212\n\nUpArrow\n#2EB82E #FF3300 #330000 #FFCC00 \n22222\n22122\n21112\n11111\n22222\n\nUpArrowUsed\n#008AE6 #CCEBFF #001F7A #80CCFF \n22222\n22122\n21112\n11111\n22222\n\nDownArrow\n#2EB82E #FF3300 #330000 #FFCC00 \n22222\n11111\n21112\n22122\n22222\n\nDownArrowUsed\n#008AE6 #CCEBFF #001F7A #80CCFF \n22222\n11111\n21112\n22122\n22222\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = PlayerStill\nG = GMarbStill\nR = RMarbStill\nO = Goal\nH = RightArrow\nJ = LeftArrow\nK = UpArrow\nL = DownArrow\nX = Pit\nB = HBlock\nC = VBlock\n\nPlayer = PlayerStill or PlayerRight or PlayerLeft or PlayerDown or PlayerUp\nGreenMarble = GMarbStill or GMarbRight or GMarbLeft or GMarbDown or GMarbUp\nRedMarble = RMarbStill or RMarbRight or RMarbLeft or RMarbDown or RMarbUp or RMarbGo1 or RMarbGo2 or RMarbGo3 or RMarbGo4\nGreenDisappear = GMarbGo1 or GMarbGo2 or GMarbGo3 or GMarbGo4 or GMarbgo5\nObject = Player or wall or GreenMarble or RedMarble or Hblock or VBlock\nArrow = RightArrow or LeftArrow or DownArrow or UpArrow \nArrowUsed = RightArrowUsed or LeftArrowUsed or DownArrowUsed or UpArrowUsed\n\n\n=======\nSOUNDS\n=======\nsfx0 48153307 (push marble)\nsfx1 87174707 (marble hit)\nsfx2 41179907 (marble stopped)\nsfx3 72781708 (red marble in hole)\nsfx4 50556508 (green marble in hole)\nsfx5 91492107 (marble hit arrow)\nsfx6 90173307 (push arrow)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground \nGoal, RightArrow, LeftArrow, DownArrow, UpArrow, Pit, Arrow, ArrowUsed\nPlayer, Wall, GMarbStill, RMarbStill, Object, GreenDisappear\n\n======\nRULES \n======\n(Marble Disappear)\n[GMarbGo5] -> Restart\n[RMarbGo4] -> []\n[RMarbGo3] -> [RMarbGo4] again\n[RMarbGo2] -> [RMarbGo3] again\n[RMarbGo1] -> [RMarbGo2] again\n[GMarbGo4] -> [GMarbGo5] again\n[GMarbGo3] -> [GMarbGo4] again\n[GMarbGo2] -> [GMarbGo3] again\n[GMarbGo1] -> [GMarbGo2] again\n\n(Player Directions)\nright [ right Player ] -> [ right PlayerRight ]\nleft [ left Player ] -> [ left PlayerLeft ] \nup [ up Player ] -> [ up PlayerUp ] \ndown [ down Player ] -> [ down PlayerDown]\n\n(Block Push)\nHorizontal [ > Player | HBlock ] -> [ > Player | > HBlock ] \nVertical [ > Player | VBlock ] -> [ > Player | > VBlock ]\n\n(Can't Push)\n[ > Player | Goal ] -> [ Player | Goal ]\n\n(Arrow Push)\n[ > Player | Arrow | No Object ] -> [ > Player | > Arrow | No Object ] sfx6\n[ > Player | Arrow | Object ] -> [ Player | Arrow | Object ] sfx6\n[ > Player | Arrow | Arrow ] -> [ Player | Arrow | Arrow ] sfx6\n[ > Player | Arrow | ArrowUsed ] -> [ Player | Arrow | ArrowUsed ] sfx6\n\n[ > Player | ArrowUsed | No Object ] -> [ Player | ArrowUsed | No Object ] sfx6\n[ > Player | ArrowUsed | Object ] -> [ Player | ArrowUsed | Object ] sfx6\n[ > Player | ArrowUsed | Arrow ] -> [ Player | ArrowUsed | Arrow ] sfx6\n[ > Player | ArrowUsed | ArrowUsed ] -> [ Player | ArrowUsed | ArrowUsed ] sfx6\n\n(Marble Pushed)\n[ > PlayerRight | GMarbStill ] -> [ > PlayerStill | > GMarbRight ] sfx0\n[ > PlayerLeft | GMarbStill ] -> [ > PlayerStill | > GMarbLeft ] sfx0\n[ > PlayerDown | GMarbStill ] -> [ > PlayerStill | > GMarbDown ] sfx0\n[ > PlayerUp | GMarbStill ] -> [ > PlayerStill | > GMarbUp ] sfx0\n(Marble collision check)\nright [ GMarbRight | RMarbStill ] -> [ GMarbStill | > RMarbRight ] sfx1\nright [ RMarbRight | RMarbStill ] -> [ RMarbStill | > RMarbRight ] sfx1\nleft [ GMarbLeft | RMarbStill ] -> [ GMarbStill | > RMarbLeft ] sfx1\nleft [ RMarbLeft | RMarbStill ] -> [ RMarbStill | > RMarbLeft ] sfx1\nup [ GMarbUp | RMarbStill ] -> [ GMarbStill | > RMarbUp ] sfx1\nup [ RMarbUp | RMarbStill ] -> [ RMarbStill | > RMarbUp ] sfx1\ndown [ GMarbDown | RMarbStill ] -> [ GMarbStill | > RMarbDown ] sfx1\ndown [ RMarbDown | RMarbStill ] -> [ RMarbStill | > RMarbDown ] sfx1\n(MarblesOnArrows)\n[ RedMarble LeftArrow ] -> [ LEFT RMarbLeft LeftArrowUsed ] again sfx5\n[ RedMarble RightArrow ] -> [ RIGHT RMarbRight RightArrowUsed ] again sfx5\n[ RedMarble DownArrow ] -> [ DOWN RMarbDown DownArrowUsed ] again sfx5\n[ RedMarble UpArrow ] -> [ UP RMarbUp UpArrowUsed ] again sfx5\n[ GreenMarble LeftArrow ] -> [ LEFT GMarbLeft LeftArrowUsed ] again sfx5\n[ GreenMarble RightArrow ] -> [ RIGHT GMarbRight RightArrowUsed ] again sfx5\n[ GreenMarble DownArrow ] -> [ DOWN GMarbDown DownArrowUsed ] again sfx5\n[ GreenMarble UpArrow ] -> [ UP GMarbUp UpArrowUsed ] again sfx5\n\n[ RedMarble LeftArrowUsed ] -> [ LEFT RMarbLeft LeftArrowUsed ] again sfx5\n[ RedMarble RightArrowUsed ] -> [ RIGHT RMarbRight RightArrowUsed ] again sfx5\n[ RedMarble DownArrowUsed ] -> [ DOWN RMarbDown DownArrowUsed ] again sfx5\n[ RedMarble UpArrowUsed ] -> [ UP RMarbUp UpArrowUsed ] again sfx5\n[ GreenMarble LeftArrowUsed ] -> [ LEFT GMarbLeft LeftArrowUsed ] again sfx5\n[ GreenMarble RightArrowUsed ] -> [ RIGHT GMarbRight RightArrowUsed ] again sfx5\n[ GreenMarble DownArrowUsed ] -> [ DOWN GMarbDown DownArrowUsed ] again sfx5\n[ GreenMarble UpArrowUsed ] -> [ UP GMarbUp UpArrowUsed ] again sfx5\n(Marble In Hole)\nright [ RMarbRight | Goal ] -> [ > RMarbGo1 | Goal ] again sfx4\nleft [ RMarbLeft | Goal ] -> [ > RMarbGo1 | Goal ] again sfx4\nup [ RMarbUp | Goal ] -> [ > RMarbGo1 | Goal ] again sfx4\ndown [ RMarbDown | Goal ] -> [ > RMarbGo1 | Goal ] again sfx4\nright [ GMarbRight | Goal ] -> [ > GMarbGo1 | Goal ] again sfx3\nleft [ GMarbLeft | Goal ] -> [ > GMarbGo1 | Goal ] again sfx3\nup [ GMarbUp | Goal ] -> [ > GMarbGo1 | Goal ] again sfx3\ndown [ GMarbDown | Goal ] -> [ > GMarbGo1 | Goal ] again sfx3\n(Marble Move Loop)\nrandom left [ GMarbLeft | No Object ] -> [ | GMarbLeft ] again\nrandom left [ RMarbLeft | No Object ] -> [ | RMarbLeft ] again\nrandom right [ GMarbRight | No Object ] -> [ | GMarbRight ] again\nrandom right [ RMarbRight | No Object ] -> [ | RMarbRight ] again\nrandom down [ RMarbDown | No Object ] -> [ | RMarbDown ] again\nrandom down [ GMarbDown | No Object ] -> [ | GMarbDown ] again\nrandom up [ RMarbUp | No Object ] -> [ | RMarbUp ] again\nrandom up [ GMarbUp | No Object ] -> [ | GMarbUp ] again\n\n(Green Marble Stop)\nright [ GMarbRight | Wall ] -> [ GMarbStill | Wall ] sfx2\nleft [ GMarbLeft | Wall ] -> [ GMarbStill | Wall ] sfx2\ndown [ GMarbDown | Wall ] -> [ GMarbStill | Wall ] sfx2\nup [ GMarbUp | Wall ] -> [ GMarbStill | Wall ] sfx2\nright [ GMarbRight | HBlock ] -> [ GMarbStill | HBlock ] sfx2\nleft [ GMarbLeft | HBlock ] -> [ GMarbStill | HBlock ] sfx2\ndown [ GMarbDown | HBlock ] -> [ GMarbStill | HBlock ] sfx2\nup [ GMarbUp | HBlock ] -> [ GMarbStill | HBlock ] sfx2\n\n(Red Marble Stop)\nright [ RMarbRight | Wall ] -> [ RMarbStill | Wall ] sfx2\nleft [ RMarbLeft | Wall ] -> [ RMarbStill | Wall ] sfx2\ndown [ RMarbDown | Wall ] -> [ RMarbStill | Wall ] sfx2\nup [ RMarbUp | Wall ] -> [ RMarbStill | Wall ] sfx2\nright [ RMarbRight | HBlock ] -> [ RMarbStill | HBlock ] sfx2\nleft [ RMarbLeft | HBlock ] -> [ RMarbStill | HBlock ] sfx2\ndown [ RMarbDown | HBlock ] -> [ RMarbStill | HBlock ] sfx2\nup [ RMarbUp | HBlock ] -> [ RMarbStill | HBlock ] sfx2\n\n(Player Change Back)\nlate [ Player ] -> [ PlayerStill ]\n\n(cheat)\n([ action Player ] -> win)\n\n==============\nWINCONDITIONS\n==============\n\nNo RedMarble \n\n======= \nLEVELS\n=======\nMessage 1\n\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxx##########xx\n##############\n###........###\n##..#.......##\n##p.g..r..r.o#\n##..#.......##\n###........###\n##############\nxx##########xx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\n\nMessage 2\n\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\nx#######xx\n#########x\n###....##x\n#......##x\n#.......#x\n#..###..#x\n#p.###..#x\n#..###r.#x\n#.g.....#x\n#..###r.#x\nx#####o.#x\nxxxx####xx\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\n\nMessage 3\n\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxx#########xx\nxxx##......##xx\nx####.####..##x\n#p..#.......##x\n#...#..##...##x\n#.g.##....#r.#x\n#...#....##..#x\n#........##r.#x\n#######....o.#x\n##############x\nx########xxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n\nMessage 4\n\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxx#########xx\nx#############x\n#o...r........#\n######..#...#.#\n######..##....#\n#..g...r...####\n#p.........####\n#####.###....##\nx####......###x\nxxx##########xx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n\nMessage 5\n\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxx###x\nxxxxxxxxx##o#x\nx#####xxx##.#x\n##...######.##\n##.#.g..r...##\n##...........#\n##p....r....##\n##..#.......##\n###.......#.##\nx########...##\nxxxxxxx######x\nxxxxxxxxxx##xx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\n\nMessage 6\n\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\n###########\n##p......##\n###.g....##\n##....r..o#\n##.r....###\n##...r....#\n#o........#\n####...####\n#####o#####\n###########\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\n\nMessage 7\n\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nx###########x\n##.p#o..#####\n##.g#..r..###\n###.#.....###\n#o..r.....ro#\n##........###\n#####...r..##\n#####....#.##\n#####.##.#.##\nx####......#x\nxx#########xx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\n\nMessage 8\n\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nx#####xxxxxxx\nx#...#####xxx\n##.#.##..####\n##...##.....#\n###......#..#\n###....r....#\n###..r......#\n###.....#.g.#\n###.##...r.p#\n###o......#.#\nxx###########\nxx###########\nxx###########\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\n\nMessage 9\n\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxx##########x\n######......#\n######.####.#\n#o..........#\n###.###...r.#\n###r####....#\n#.....r.....#\n#.#.....r#..#\n#.#..g.#....#\n#..p......#o#\n#############\nxxxxxxxxxxx##\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\n\nMessage 10\n\nxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxx\nxxxxxxx######xxxx\nxx#######...#xxxx\nxx#....##.g.#xxxx\n###.##.##..####xx\n###........######\n#...#...p....####\n#.#.#.####.#.####\n#.....r....#.####\n###r#.##.......##\nxx#...##.....#.##\nxx#o...r.......##\nxxx#####..#####xx\nxxxxxxx####xxxxxx\nxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxx\n\nMessage 11\n\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\nxxxx#####x\nxxx#...###\nxxx#g..###\nxxx#..####\nx###.h..##\nx#####..##\nx######l##\n###..#..##\n#o.rpj..##\n###..#####\n##########\nxxx#######\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\n\nMessage 12\n\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxx####x\n######..##\n##h.....##\n##.####l##\n##g####.##\n##.p....##\n##o..##.##\n##..#l.j##\n##r.#.####\n##..#h.l##\n##.k.##..#\n##.......#\n######.#.#\nxxx###...#\nxxxxx####x\nxxxxxxxxxx\nxxxxxxxxxx\n\nMessage 13\n\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxx#####\nxxxxxxxxxx#...##\nx##########.g.##\n#.............##\n#.l##..##.##h##x\n#..#..........#x\n#...p...r.r...o#\n###############x\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\n\nMessage 14\n\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxx#####\nxxxxxx#...#\nxxxxxx#.#.#\nx######...#\n#.g.l....##\n#........##\n##....r.###\n###r....###\n###.ph.o###\nx##########\nx##########\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\n\nMessage 15\n\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n##########xxxxx\n##############x\n##..........o#x\n##.g..##...###x\n###.#.##.....#x\nx##.#...h....##\nx##.###...#...#\nx##.##...r#...#\nx##....k....###\nx#######.p...##\nx#########.#.##\nxx########...##\nxxxxxxxx######x\nxxxxxxxxxxx##xx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n\nMessage 16\n\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nx##############\nx##...p......o#\nx##.#...r.###.#\nx##.k..#..###.#\nx##.k....####.#\nx##...r.......#\nx##.###.#######\nx##.......k..##\nx##.g...##.#.##\nxx########...##\nxxxxxxxx######x\nxxxxxxxxxxx##xx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n\nMessage Congratulations! You won!\n", [0, 3, 3, 3, 2, 3, 3, 0, 3, 0, 0, 0, 0, 1], "background pit:0,0,0,0,0,0,background wall:1,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,1,background goal:2,1,1,background:3,3,1,\n1,0,0,0,0,0,0,0,0,0,0,1,3,1,1,\n3,3,1,1,0,0,0,0,0,0,0,0,0,0,1,\n3,1,1,3,3,1,1,1,0,0,0,0,0,0,0,\n0,1,1,3,1,1,3,3,1,1,1,0,0,0,0,\n0,0,0,0,1,1,background gmarbstill:4,1,1,3,3,3,3,1,0,\n0,0,0,0,0,0,0,1,1,background playerstill:5,3,3,3,3,1,\n3,1,0,0,0,0,0,0,0,0,1,1,3,3,3,\n3,3,1,3,1,0,0,0,0,0,0,0,0,1,1,\n3,1,1,3,3,1,3,1,0,0,0,0,0,0,0,\n0,1,1,3,3,1,3,3,3,3,1,0,0,0,0,\n0,0,0,0,1,1,3,3,3,background rmarbstill:6,3,3,3,1,0,\n0,0,0,0,0,0,0,1,1,3,3,3,1,1,3,\n1,1,0,0,0,0,0,0,0,0,1,1,3,1,3,\n1,1,3,1,1,0,0,0,0,0,0,0,0,0,1,\n3,3,3,1,1,1,1,0,0,0,0,0,0,0,0,\n0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,\n", 7, "1627778376637.0903"] + ["title Marble Shoot\nauthor Stuart Burfield\nhomepage www.thepixelshelf.com\n\n========\nOBJECTS\n========\n\nBackground \n#CCFFCC\n\nPit\nBlack\n\nGoal \nBlack grey\n.000.\n00000\n00000\n00000\n.000.\n\nWall \nBlack #434f7b Blue #2ebdf5 #99CCFF darkblue #4DDBFF #B2F0FF\n13366\n12226\n52223\n52223\n55511\n\nHBlock\nBlack #293D3D #527A7A #85ADAD #99CCFF #0A0F0F #D1E0E0 white yellow #FF6600\n13367\n12226\n59993\n52223\n55511\n\nVBlock\nBlack #293D3D #527A7A #85ADAD #99CCFF #0A0F0F #D1E0E0 white #FFFF00 orange\n13367\n12826\n52823\n52823\n55511\n\nPlayerStill \nred Green orange Black grey darkred \n.333.\n.222.\n.121.\n20002\n.5.5.\n\nPlayerRight\nred Green orange Black grey\n.333.\n.222.\n.222.\n.0002\n.0.0.\n\nPlayerLeft\nred Green orange Black grey\n.333.\n.222.\n.222.\n2000.\n.0.0.\n\nPlayerDown\nred Green orange Black grey\n.333.\n.222.\n.121.\n20002\n.0.0.\n\nPlayerUp \nred Green orange Black grey\n.333.\n.222.\n22222\n.000.\n.0.0.\n\nGMarbStill\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbRight\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbLeft\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbDown\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbUp\n#001A00 Darkgreen green #b5e622 white\n.334.\n12234\n01223\n00113\n.001.\n\nGMarbGo1\n#001A00 Darkgreen green #b5e622 white\n.....\n.334.\n12234\n01223\n.011.\n\nGMarbGo2\n#001A00 Darkgreen green #b5e622 white\n.....\n.....\n.334.\n12234\n.122.\n\nGMarbGo3\nBlack Darkgreen green #b5e622 white\n.....\n.....\n.....\n.334.\n.223.\n\nGMarbGo4\nBlack Darkgreen green #b5e622 white\n.....\n.....\n.....\n.....\n.334.\n\nGMarbGo5\nBlack Darkgreen green #b5e622 white\n.....\n.....\n.....\n.....\n.....\n\nRMarbStill\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbRight\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbLeft\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbDown\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbUp\n#2E0000 DarkRed red orange yellow\n.334.\n12234\n01223\n00113\n.001.\n\nRMarbGo1\n#2E0000 DarkRed red orange yellow\n.....\n.334.\n12234\n01223\n.011.\n\nRMarbGo2\n#2E0000 DarkRed red orange yellow\n.....\n.....\n.334.\n12234\n.122.\n\nRMarbGo3\nBlack DarkRed red orange yellow\n.....\n.....\n.....\n.334.\n.223.\n\nRMarbGo4\nBlack DarkRed red orange yellow\n.....\n.....\n.....\n.....\n.334.\n\nRightArrow\n#2EB82E #FF3300#330000 #FFCC00\n21222\n21122\n21112\n21122\n21222\n\nRightArrowUsed\n#008AE6 #CCEBFF #001F7A #80CCFF \n21222\n21122\n21112\n21122\n21222\n\nLeftArrow\n#2EB82E #FF3300 #330000 #FFCC00 \n22212\n22112\n21112\n22112\n22212\n\nLeftArrowUsed\n#008AE6 #CCEBFF #001F7A #80CCFF \n22212\n22112\n21112\n22112\n22212\n\nUpArrow\n#2EB82E #FF3300 #330000 #FFCC00 \n22222\n22122\n21112\n11111\n22222\n\nUpArrowUsed\n#008AE6 #CCEBFF #001F7A #80CCFF \n22222\n22122\n21112\n11111\n22222\n\nDownArrow\n#2EB82E #FF3300 #330000 #FFCC00 \n22222\n11111\n21112\n22122\n22222\n\nDownArrowUsed\n#008AE6 #CCEBFF #001F7A #80CCFF \n22222\n11111\n21112\n22122\n22222\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = PlayerStill\nG = GMarbStill\nR = RMarbStill\nO = Goal\nH = RightArrow\nJ = LeftArrow\nK = UpArrow\nL = DownArrow\nX = Pit\nB = HBlock\nC = VBlock\n\nPlayer = PlayerStill or PlayerRight or PlayerLeft or PlayerDown or PlayerUp\nGreenMarble = GMarbStill or GMarbRight or GMarbLeft or GMarbDown or GMarbUp\nRedMarble = RMarbStill or RMarbRight or RMarbLeft or RMarbDown or RMarbUp or RMarbGo1 or RMarbGo2 or RMarbGo3 or RMarbGo4\nGreenDisappear = GMarbGo1 or GMarbGo2 or GMarbGo3 or GMarbGo4 or GMarbgo5\nObject = Player or wall or GreenMarble or RedMarble or Hblock or VBlock\nArrow = RightArrow or LeftArrow or DownArrow or UpArrow \nArrowUsed = RightArrowUsed or LeftArrowUsed or DownArrowUsed or UpArrowUsed\n\n\n=======\nSOUNDS\n=======\nsfx0 48153307 (push marble)\nsfx1 87174707 (marble hit)\nsfx2 41179907 (marble stopped)\nsfx3 72781708 (red marble in hole)\nsfx4 50556508 (green marble in hole)\nsfx5 91492107 (marble hit arrow)\nsfx6 90173307 (push arrow)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground \nGoal, RightArrow, LeftArrow, DownArrow, UpArrow, Pit, Arrow, ArrowUsed\nPlayer, Wall, GMarbStill, RMarbStill, Object, GreenDisappear\n\n======\nRULES \n======\n(Marble Disappear)\n[GMarbGo5] -> Restart\n[RMarbGo4] -> []\n[RMarbGo3] -> [RMarbGo4] again\n[RMarbGo2] -> [RMarbGo3] again\n[RMarbGo1] -> [RMarbGo2] again\n[GMarbGo4] -> [GMarbGo5] again\n[GMarbGo3] -> [GMarbGo4] again\n[GMarbGo2] -> [GMarbGo3] again\n[GMarbGo1] -> [GMarbGo2] again\n\n(Player Directions)\nright [ right Player ] -> [ right PlayerRight ]\nleft [ left Player ] -> [ left PlayerLeft ] \nup [ up Player ] -> [ up PlayerUp ] \ndown [ down Player ] -> [ down PlayerDown]\n\n(Block Push)\nHorizontal [ > Player | HBlock ] -> [ > Player | > HBlock ] \nVertical [ > Player | VBlock ] -> [ > Player | > VBlock ]\n\n(Can't Push)\n[ > Player | Goal ] -> [ Player | Goal ]\n\n(Arrow Push)\n[ > Player | Arrow | No Object ] -> [ > Player | > Arrow | No Object ] sfx6\n[ > Player | Arrow | Object ] -> [ Player | Arrow | Object ] sfx6\n[ > Player | Arrow | Arrow ] -> [ Player | Arrow | Arrow ] sfx6\n[ > Player | Arrow | ArrowUsed ] -> [ Player | Arrow | ArrowUsed ] sfx6\n\n[ > Player | ArrowUsed | No Object ] -> [ Player | ArrowUsed | No Object ] sfx6\n[ > Player | ArrowUsed | Object ] -> [ Player | ArrowUsed | Object ] sfx6\n[ > Player | ArrowUsed | Arrow ] -> [ Player | ArrowUsed | Arrow ] sfx6\n[ > Player | ArrowUsed | ArrowUsed ] -> [ Player | ArrowUsed | ArrowUsed ] sfx6\n\n(Marble Pushed)\n[ > PlayerRight | GMarbStill ] -> [ > PlayerStill | > GMarbRight ] sfx0\n[ > PlayerLeft | GMarbStill ] -> [ > PlayerStill | > GMarbLeft ] sfx0\n[ > PlayerDown | GMarbStill ] -> [ > PlayerStill | > GMarbDown ] sfx0\n[ > PlayerUp | GMarbStill ] -> [ > PlayerStill | > GMarbUp ] sfx0\n(Marble collision check)\nright [ GMarbRight | RMarbStill ] -> [ GMarbStill | > RMarbRight ] sfx1\nright [ RMarbRight | RMarbStill ] -> [ RMarbStill | > RMarbRight ] sfx1\nleft [ GMarbLeft | RMarbStill ] -> [ GMarbStill | > RMarbLeft ] sfx1\nleft [ RMarbLeft | RMarbStill ] -> [ RMarbStill | > RMarbLeft ] sfx1\nup [ GMarbUp | RMarbStill ] -> [ GMarbStill | > RMarbUp ] sfx1\nup [ RMarbUp | RMarbStill ] -> [ RMarbStill | > RMarbUp ] sfx1\ndown [ GMarbDown | RMarbStill ] -> [ GMarbStill | > RMarbDown ] sfx1\ndown [ RMarbDown | RMarbStill ] -> [ RMarbStill | > RMarbDown ] sfx1\n(MarblesOnArrows)\n[ RedMarble LeftArrow ] -> [ LEFT RMarbLeft LeftArrowUsed ] again sfx5\n[ RedMarble RightArrow ] -> [ RIGHT RMarbRight RightArrowUsed ] again sfx5\n[ RedMarble DownArrow ] -> [ DOWN RMarbDown DownArrowUsed ] again sfx5\n[ RedMarble UpArrow ] -> [ UP RMarbUp UpArrowUsed ] again sfx5\n[ GreenMarble LeftArrow ] -> [ LEFT GMarbLeft LeftArrowUsed ] again sfx5\n[ GreenMarble RightArrow ] -> [ RIGHT GMarbRight RightArrowUsed ] again sfx5\n[ GreenMarble DownArrow ] -> [ DOWN GMarbDown DownArrowUsed ] again sfx5\n[ GreenMarble UpArrow ] -> [ UP GMarbUp UpArrowUsed ] again sfx5\n\n[ RedMarble LeftArrowUsed ] -> [ LEFT RMarbLeft LeftArrowUsed ] again sfx5\n[ RedMarble RightArrowUsed ] -> [ RIGHT RMarbRight RightArrowUsed ] again sfx5\n[ RedMarble DownArrowUsed ] -> [ DOWN RMarbDown DownArrowUsed ] again sfx5\n[ RedMarble UpArrowUsed ] -> [ UP RMarbUp UpArrowUsed ] again sfx5\n[ GreenMarble LeftArrowUsed ] -> [ LEFT GMarbLeft LeftArrowUsed ] again sfx5\n[ GreenMarble RightArrowUsed ] -> [ RIGHT GMarbRight RightArrowUsed ] again sfx5\n[ GreenMarble DownArrowUsed ] -> [ DOWN GMarbDown DownArrowUsed ] again sfx5\n[ GreenMarble UpArrowUsed ] -> [ UP GMarbUp UpArrowUsed ] again sfx5\n(Marble In Hole)\nright [ RMarbRight | Goal ] -> [ > RMarbGo1 | Goal ] again sfx4\nleft [ RMarbLeft | Goal ] -> [ > RMarbGo1 | Goal ] again sfx4\nup [ RMarbUp | Goal ] -> [ > RMarbGo1 | Goal ] again sfx4\ndown [ RMarbDown | Goal ] -> [ > RMarbGo1 | Goal ] again sfx4\nright [ GMarbRight | Goal ] -> [ > GMarbGo1 | Goal ] again sfx3\nleft [ GMarbLeft | Goal ] -> [ > GMarbGo1 | Goal ] again sfx3\nup [ GMarbUp | Goal ] -> [ > GMarbGo1 | Goal ] again sfx3\ndown [ GMarbDown | Goal ] -> [ > GMarbGo1 | Goal ] again sfx3\n(Marble Move Loop)\nrandom left [ GMarbLeft | No Object ] -> [ | GMarbLeft ] again\nrandom left [ RMarbLeft | No Object ] -> [ | RMarbLeft ] again\nrandom right [ GMarbRight | No Object ] -> [ | GMarbRight ] again\nrandom right [ RMarbRight | No Object ] -> [ | RMarbRight ] again\nrandom down [ RMarbDown | No Object ] -> [ | RMarbDown ] again\nrandom down [ GMarbDown | No Object ] -> [ | GMarbDown ] again\nrandom up [ RMarbUp | No Object ] -> [ | RMarbUp ] again\nrandom up [ GMarbUp | No Object ] -> [ | GMarbUp ] again\n\n(Green Marble Stop)\nright [ GMarbRight | Wall ] -> [ GMarbStill | Wall ] sfx2\nleft [ GMarbLeft | Wall ] -> [ GMarbStill | Wall ] sfx2\ndown [ GMarbDown | Wall ] -> [ GMarbStill | Wall ] sfx2\nup [ GMarbUp | Wall ] -> [ GMarbStill | Wall ] sfx2\nright [ GMarbRight | HBlock ] -> [ GMarbStill | HBlock ] sfx2\nleft [ GMarbLeft | HBlock ] -> [ GMarbStill | HBlock ] sfx2\ndown [ GMarbDown | HBlock ] -> [ GMarbStill | HBlock ] sfx2\nup [ GMarbUp | HBlock ] -> [ GMarbStill | HBlock ] sfx2\n\n(Red Marble Stop)\nright [ RMarbRight | Wall ] -> [ RMarbStill | Wall ] sfx2\nleft [ RMarbLeft | Wall ] -> [ RMarbStill | Wall ] sfx2\ndown [ RMarbDown | Wall ] -> [ RMarbStill | Wall ] sfx2\nup [ RMarbUp | Wall ] -> [ RMarbStill | Wall ] sfx2\nright [ RMarbRight | HBlock ] -> [ RMarbStill | HBlock ] sfx2\nleft [ RMarbLeft | HBlock ] -> [ RMarbStill | HBlock ] sfx2\ndown [ RMarbDown | HBlock ] -> [ RMarbStill | HBlock ] sfx2\nup [ RMarbUp | HBlock ] -> [ RMarbStill | HBlock ] sfx2\n\n(Player Change Back)\nlate [ Player ] -> [ PlayerStill ]\n\n(cheat)\n([ action Player ] -> win)\n\n==============\nWINCONDITIONS\n==============\n\nNo RedMarble \n\n======= \nLEVELS\n=======\nMessage 1\n\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxx##########xx\n##############\n###........###\n##..#.......##\n##p.g..r..r.o#\n##..#.......##\n###........###\n##############\nxx##########xx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\n\nMessage 2\n\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\nx#######xx\n#########x\n###....##x\n#......##x\n#.......#x\n#..###..#x\n#p.###..#x\n#..###r.#x\n#.g.....#x\n#..###r.#x\nx#####o.#x\nxxxx####xx\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\n\nMessage 3\n\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxx#########xx\nxxx##......##xx\nx####.####..##x\n#p..#.......##x\n#...#..##...##x\n#.g.##....#r.#x\n#...#....##..#x\n#........##r.#x\n#######....o.#x\n##############x\nx########xxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n\nMessage 4\n\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxx#########xx\nx#############x\n#o...r........#\n######..#...#.#\n######..##....#\n#..g...r...####\n#p.........####\n#####.###....##\nx####......###x\nxxx##########xx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n\nMessage 5\n\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxx###x\nxxxxxxxxx##o#x\nx#####xxx##.#x\n##...######.##\n##.#.g..r...##\n##...........#\n##p....r....##\n##..#.......##\n###.......#.##\nx########...##\nxxxxxxx######x\nxxxxxxxxxx##xx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\nxxxxxxxxxxxxxx\n\nMessage 6\n\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\n###########\n##p......##\n###.g....##\n##....r..o#\n##.r....###\n##...r....#\n#o........#\n####...####\n#####o#####\n###########\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\n\nMessage 7\n\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nx###########x\n##.p#o..#####\n##.g#..r..###\n###.#.....###\n#o..r.....ro#\n##........###\n#####...r..##\n#####....#.##\n#####.##.#.##\nx####......#x\nxx#########xx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\n\nMessage 8\n\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nx#####xxxxxxx\nx#...#####xxx\n##.#.##..####\n##...##.....#\n###......#..#\n###....r....#\n###..r......#\n###.....#.g.#\n###.##...r.p#\n###o......#.#\nxx###########\nxx###########\nxx###########\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\n\nMessage 9\n\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxx##########x\n######......#\n######.####.#\n#o..........#\n###.###...r.#\n###r####....#\n#.....r.....#\n#.#.....r#..#\n#.#..g.#....#\n#..p......#o#\n#############\nxxxxxxxxxxx##\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\nxxxxxxxxxxxxx\n\nMessage 10\n\nxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxx\nxxxxxxx######xxxx\nxx#######...#xxxx\nxx#....##.g.#xxxx\n###.##.##..####xx\n###........######\n#...#...p....####\n#.#.#.####.#.####\n#.....r....#.####\n###r#.##.......##\nxx#...##.....#.##\nxx#o...r.......##\nxxx#####..#####xx\nxxxxxxx####xxxxxx\nxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxx\n\nMessage 11\n\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\nxxxx#####x\nxxx#...###\nxxx#g..###\nxxx#..####\nx###.h..##\nx#####..##\nx######l##\n###..#..##\n#o.rpj..##\n###..#####\n##########\nxxx#######\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\n\nMessage 12\n\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxxxxxxx\nxxxxx####x\n######..##\n##h.....##\n##.####l##\n##g####.##\n##.p....##\n##o..##.##\n##..#l.j##\n##r.#.####\n##..#h.l##\n##.k.##..#\n##.......#\n######.#.#\nxxx###...#\nxxxxx####x\nxxxxxxxxxx\nxxxxxxxxxx\n\nMessage 13\n\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxx#####\nxxxxxxxxxx#...##\nx##########.g.##\n#.............##\n#.l##..##.##h##x\n#..#..........#x\n#...p...r.r...o#\n###############x\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxx\n\nMessage 14\n\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxx#####\nxxxxxx#...#\nxxxxxx#.#.#\nx######...#\n#.g.l....##\n#........##\n##....r.###\n###r....###\n###.ph.o###\nx##########\nx##########\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\nxxxxxxxxxxx\n\nMessage 15\n\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n##########xxxxx\n##############x\n##..........o#x\n##.g..##...###x\n###.#.##.....#x\nx##.#...h....##\nx##.###...#...#\nx##.##...r#...#\nx##....k....###\nx#######.p...##\nx#########.#.##\nxx########...##\nxxxxxxxx######x\nxxxxxxxxxxx##xx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n\nMessage 16\n\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nx##############\nx##...p......o#\nx##.#...r.###.#\nx##.k..#..###.#\nx##.k....####.#\nx##...r.......#\nx##.###.#######\nx##.......k..##\nx##.g...##.#.##\nxx########...##\nxxxxxxxx######x\nxxxxxxxxxxx##xx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxx\n\nMessage Congratulations! You won!\n",[0,3,3,3,2,3,3,0,3,0,0,0,0,1],"background pit:0,0,0,0,0,0,background wall:1,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,1,background goal:2,1,1,background:3,3,1,\n1,0,0,0,0,0,0,0,0,0,0,1,3,1,1,\n3,3,1,1,0,0,0,0,0,0,0,0,0,0,1,\n3,1,1,3,3,1,1,1,0,0,0,0,0,0,0,\n0,1,1,3,1,1,3,3,1,1,1,0,0,0,0,\n0,0,0,0,1,1,background gmarbstill:4,1,1,3,3,3,3,1,0,\n0,0,0,0,0,0,0,1,1,background playerstill:5,3,3,3,3,1,\n3,1,0,0,0,0,0,0,0,0,1,1,3,3,3,\n3,3,1,3,1,0,0,0,0,0,0,0,0,1,1,\n3,1,1,3,3,1,3,1,0,0,0,0,0,0,0,\n0,1,1,3,3,1,3,3,3,3,1,0,0,0,0,\n0,0,0,0,1,1,3,3,3,background rmarbstill:6,3,3,3,1,0,\n0,0,0,0,0,0,0,1,1,3,3,3,1,1,3,\n1,1,0,0,0,0,0,0,0,0,1,1,3,1,3,\n1,1,3,1,1,0,0,0,0,0,0,0,0,0,1,\n3,3,3,1,1,1,1,0,0,0,0,0,0,0,0,\n0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,\n",7,"1627778376637.0903"] ], [ `gallery:cyber-lasso`, - ["title Cyber-Lasso\nauthor Alan Hazelden\nhomepage www.draknek.org\n\nnorepeat_action\n\nagain_interval 0.05\nrealtime_interval 0.05\n\n(verbose_logging)\n\nflickscreen 11x11\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\n#dddddd #ffffff\n11111\n10001\n10001\n10001\n11111\n\nElectricFloor\nLightBlue White\n00001\n00010\n00100\n01000\n10000\n\nElectricFloor1\nLightBlue White\n00001\n00010\n00100\n01000\n10000\n\nElectricFloor2\nLightBlue\n\nPowered\nLightBlue\n\nUnpowered\nWhite\n\nWasPowered\ntransparent\n\nHole\nBlack\n\nButton\nRed Grey\n10001\n00000\n00000\n00000\n10001\n\nCrate\nDarkGreen Green\n.....\n.111.\n.101.\n.111.\n.....\n\nElectricCrate1\nYellow\n.....\n.....\n..0..\n.....\n.....\n\n(ElectricCrate2\nOrange\n.....\n.....\n..0..\n.....\n.....)\n\nElectrifyingL\nYellow\n.....\n.....\n0....\n.....\n.....\n\nElectrifyingR\nYellow\n.....\n.....\n....0\n.....\n.....\n\nElectrifyingU\nYellow\n..0..\n.....\n.....\n.....\n.....\n\nElectrifyingD\nYellow\n.....\n.....\n.....\n.....\n..0..\n\nDisappearingCrate\nGreen\n.....\n.....\n..0..\n.....\n.....\n\nDisappearingPlayer\n#a46422\n.....\n.....\n..0..\n.....\n.....\n\nSquashedPlayer\n#a46422 #493c2b #000000 red\n....3\n.30..\n01110\n.2.2.\n3..3.\n\nWallNormal\nDarkGrey\n\nDoorUp\nDarkGrey #5a7bb6\n11111\n10001\n10001\n10001\n11111\n\nDoorDown\n#ffffff #dddddd\n11111\n1...1\n1.0.1\n1...1\n11111\n\nUpWhenPowered\ntransparent\n\nWalkway\n#dddddd #9d9e9e\n11111\n10001\n10001\n10001\n11111\n\nWalkwayStartL\n#9d9e9e\n....0\n....0\n....0\n....0\n....0\n\nWalkwayStartR\n#9d9e9e\n0....\n0....\n0....\n0....\n0....\n\nWalkwayStartU\n#9d9e9e\n.....\n.....\n.....\n.....\n00000\n\nWalkwayStartD\n#9d9e9e\n00000\n.....\n.....\n.....\n.....\n\nPlayerNormal\n#a46422 #493c2b #000000\n..0..\n.111.\n01110\n02220\n.2.2.\n\nPlayerHoldL\n#a46422 #493c2b #000000 orange\n..0..\n.111.\n3330.\n0222.\n.2.2.\n\nPlayerHoldR\n#a46422 #493c2b #000000 orange\n..0..\n.111.\n01110\n0222.\n.2.2.\n\nPlayerHoldU\n#a46422 #493c2b #000000 orange\n..00.\n.110.\n0111.\n0222.\n.2.2.\n\nPlayerHoldD\n#a46422 #493c2b #000000 orange\n..0..\n.111.\n0110.\n0232.\n.232.\n\n(RopeNextToPlayerR\n#a46422\n.....\n.....\n0....\n.....\n.....)\n\nPlayerAiming\n#a46422 #493c2b #000000\n..0.0\n.1110\n0111.\n0222.\n.2.2.\n\nPlayerDying\nyellow yellow yellow\n..0..\n.111.\n01110\n02220\n.2.2.\n\nLassoAboveHead1\nbrown orange\n.....\n..00.\n.0..0\n..001\n....1\n\nLassoAboveHead2\nbrown orange\n.....\n.000.\n0...0\n.0001\n....1\n\nLassoAboveHead3\nbrown orange\n.....\n.00..\n0..0.\n.00..\n...1.\n\nLassoAboveHead4\nbrown orange\n.00..\n0..0.\n0..0.\n.00..\n...1.\n\nLassoAboveHead5\nbrown orange\n.00..\n0..0.\n.00..\n..1..\n...1.\n\nLassoAboveHead6\nbrown orange\n.000.\n0...0\n.000.\n..1..\n...1.\n\nLassoAboveHead7\nbrown orange\n..00.\n.0..0\n..00.\n...1.\n...1.\n\nLassoAboveHead8\nbrown orange\n..00.\n.0..0\n.0..0\n..00.\n...1.\n\nLassoThrownL\nbrown orange\n.00..\n0..0.\n0..01\n0..0.\n.00..\n\nLassoThrownR\nbrown orange\n..00.\n.0..0\n10..0\n.0..0\n..00.\n\nLassoThrownU\nbrown orange\n.000.\n0...0\n0...0\n.000.\n..1..\n\nLassoThrownD\nbrown orange\n..1..\n.000.\n0...0\n0...0\n.000.\n\nLassoReturn\nbrown orange\n.000.\n0...0\n0...0\n0...0\n.000.\n\nLassoCaught\nbrown\n.000.\n0...0\n0...0\n0...0\n.000.\n\nRopeH\norange\n.....\n.....\n00000\n.....\n.....\n\nRopeV\norange\n..0..\n..0..\n..0..\n..0..\n..0..\n\nRopeUL\norange\n..0..\n..0..\n000..\n.....\n.....\n\nRopeUR\norange\n..0..\n..0..\n..000\n.....\n.....\n\nRopeDL\norange\n.....\n.....\n000..\n..0..\n..0..\n\nRopeDR\norange\n.....\n.....\n..000\n..0..\n..0..\n\nWireLR\n#ffffff #dddddd\n00000\n11111\n.....\n11111\n00000\n\nWireUD\n#ffffff #dddddd\n01.10\n01.10\n01.10\n01.10\n01.10\n\nWireUL\n#ffffff #dddddd\n01.10\n11.10\n...10\n11110\n00000\n\nWireUR\n#ffffff #dddddd\n01.10\n01.11\n01...\n01111\n00000\n\nWireDL\n#ffffff #dddddd\n00000\n11110\n...10\n11.10\n01.10\n\nWireDR\n#ffffff #dddddd\n00000\n01111\n01...\n01.11\n01.10\n\nWireULR\n#ffffff #dddddd\n01.10\n11.11\n.....\n11111\n00000\n\nWireDLR\n#ffffff #dddddd\n00000\n11111\n.....\n11.11\n01.10\n\nWireUDL\n#ffffff #dddddd\n01.10\n11.10\n...10\n11.10\n01.10\n\nWireUDR\n#ffffff #dddddd\n01.10\n01.11\n01...\n01.11\n01.10\n\nAndGate\nGrey Grey Red\n.000.\n00000\n02020\n00000\n.000.\n\nPower1\nYellow\n.....\n.....\n.0...\n.....\n.....\n\nPower2\nYellow\n.....\n.....\n.0.0.\n.....\n.....\n\nDone\ntransparent\n\nHere\ntransparent\n\nClaimed\ntransparent\n\nChanged\nred\n\nExit\ntransparent\n\nCheckpointTrigger\ntransparent\n\nReactorTrigger\ntransparent\n\nU\nred\n..0..\n.0.0.\n.....\n.....\n.....\n\nD\nred\n.....\n.....\n.....\n.0.0.\n..0..\n\nL\nred\n.....\n.0...\n0....\n.0...\n.....\n\nR\nred\n.....\n...0.\n....0\n...0.\n.....\n\nWallL\nDarkRed\n0....\n0....\n0....\n0....\n0....\n\nWallR\nDarkRed\n....0\n....0\n....0\n....0\n....0\n\nWallU\nDarkRed\n00000\n.....\n.....\n.....\n.....\n\nWallD\nDarkRed\n.....\n.....\n.....\n.....\n00000\n\nWallLR\nDarkRed\n0...0\n0...0\n0...0\n0...0\n0...0\n\nWallUD\nDarkRed\n00000\n.....\n.....\n.....\n00000\n\nWallUL\nDarkRed\n0....\n.....\n.....\n.....\n.....\n\nWallUR\nDarkRed\n....0\n.....\n.....\n.....\n.....\n\nWallDL\nDarkRed\n.....\n.....\n.....\n.....\n0....\n\nWallDR\nDarkRed\n.....\n.....\n.....\n.....\n....0\n\nWallDLR\nDarkRed\n.....\n.....\n.....\n.....\n0...0\n\nWallULR\nDarkRed\n0...0\n.....\n.....\n.....\n.....\n\nWallLUD\nDarkRed\n0....\n.....\n.....\n.....\n0....\n\nWallWireLR\nDarkGrey #61686c\n00000\n00000\n00000\n00000\n00000\n\nDangerL\n#be656d\n0....\n0....\n0....\n0....\n0....\n\nDangerR\n#be656d\n....0\n....0\n....0\n....0\n....0\n\nDangerU\n#be656d\n00000\n.....\n.....\n.....\n.....\n\nDangerD\n#be656d\n.....\n.....\n.....\n.....\n00000\n\nDangerLR\n#be656d\n0...0\n0...0\n0...0\n0...0\n0...0\n\nDangerUD\n#be656d\n00000\n.....\n.....\n.....\n00000\n\nReactor\n#ffffff #dddddd\n01.10\n11.11\n.....\n11.11\n01.10\n\nWarning1\nWhite Black\n01100\n01010\n01100\n01010\n01010\n\nWarning2\nWhite Black\n11100\n10001\n11001\n10001\n11101\n\nWarning3\nWhite Black\n10001\n01010\n11010\n01010\n01001\n\nWarning4\nWhite Black\n10111\n00010\n00010\n00010\n10010\n\nWarning5\nWhite Black\n00110\n01001\n01001\n01001\n00110\n\nWarning6\nWhite Black\n01100\n01010\n01100\n01010\n01010\n\n\n=======\nLEGEND\n=======\n\nPlayerHold = PlayerHoldL or PlayerHoldR or PlayerHoldU or PlayerHoldD\nPlayer = PlayerNormal or PlayerAiming or PlayerHold or DisappearingPlayer or PlayerDying\nDirection = U or D or L or R\nRope = RopeH or RopeV or RopeUL or RopeUR or RopeDL or RopeDR\nRopePullsL = RopeH or RopeUR or RopeDR\nRopePullsR = RopeH or RopeUL or RopeDL\nRopePullsU = RopeV or RopeDL or RopeDR\nRopePullsD = RopeV or RopeUL or RopeUR\n\n(RopeNextToPlayer = RopeNextToPlayerR)\n\nLassoAboveHead = LassoAboveHead1 or LassoAboveHead2 or LassoAboveHead3 or LassoAboveHead4 or LassoAboveHead5 or LassoAboveHead6 or LassoAboveHead7 or LassoAboveHead8\n\nWallWire = WallWireLR\nWall = WallNormal or WallWire\n\nSolid = Wall or Crate or DoorUp\nSolidUncatchable = Wall or DoorUp\nChain = Rope or LassoCaught or Player\nLassoThrown = LassoThrownL or LassoThrownR or LassoThrownU or LassoThrownD or LassoReturn\n\nWallCoverLR = WallL or WallR or WallLR\nWallCoverUD = WallU or WallD or WallUD\nWallCoverCorner = WallUL or WallUR or WallDL or WallDR or WallDLR or WallLUD or WallULR\n\nWallCover = WallCoverLR or WallCoverUD or WallCoverCorner\n\nDangerBorderLR = DangerL or DangerR or DangerLR\nDangerBorderUD = DangerU or DangerD or DangerUD\nDangerBorder = DangerBorderLR or DangerBorderUD\n\nWireL = WireLR or WireUL or WireDL or WireUDL or WireULR or WireDLR or WallWireLR\nWireR = WireLR or WireUR or WireDR or WireUDR or WireULR or WireDLR or WallWireLR\nWireU = WireUD or WireUL or WireUR or WireUDL or WireUDR or WireULR\nWireD = WireUD or WireDL or WireDR or WireUDL or WireUDR or WireDLR\nWire = WireL or WireR or WireU or WireD\n\nDoor = DoorUp or DoorDown\n\nWalkwayStart = WalkwayStartL or WalkwayStartR or WalkwayStartU or WalkwayStartD\n\nPowerTransfer = Button or ElectricFloor or Door or Walkway or WalkwayStart or Reactor\n\nElectrified = ElectricCrate1\n\nElectrifiable = Player or Crate\n\nElectrifyingDir = ElectrifyingL or ElectrifyingR or ElectrifyingU or ElectrifyingD\n\nChainUnder = Wire or PowerTransfer or AndGate\nChainUnderOver = Button or ElectricFloor\nChainOver = Electrifiable or ChainUnderOver\n\nDisappearing = DisappearingCrate or DisappearingPlayer\nSquashed = SquashedPlayer\n\nPowerLevel = Power1 or Power2\n\nElectricFloorCover = ElectricFloor1 or ElectricFloor2\n\nWarning = Warning1 or Warning2 or Warning3 or Warning4 or Warning5 or Warning6\n\n. = Background\n# = WallNormal\nP = PlayerNormal and DoorUp\n* = Crate\n! = ElectricFloor\no = Hole\n@ = Button\n_ = DoorDown\nn = DoorUp\n% = Button and Crate\n2 = AndGate\n& = Crate and ElectricFloor\n═ = WallWireLR\n$ = Reactor\nW = Warning1\nX = Exit and DoorUp\nz = ReactorTrigger and WireUD\n\n\n(ref http://unicode-search.net/unicode-namesearch.pl?term=box%20drawings)\n\n- = WireLR\n| = WireUD\n┐ = WireDL\n┤ = WireUDL\n┘ = WireUL\n┌ = WireDR\n├ = WireUDR\n└ = WireUR\n┬ = WireDLR\n┴ = WireULR\n\n← = WalkwayStartL and Hole\n→ = WalkwayStartR and Hole\n↑ = WalkwayStartU and Hole\n↓ = WalkwayStartD and Hole\n\n\n=======\nSOUNDS\n=======\n\nLassoAboveHead create 86845907\nPlayerAiming destroy 19629107\nsfx0 81428909 (throw lasso)\nLassoCaught create 1688102\nLassoCaught destroy 11489509\nPlayer move 75749507\nsfx1 12358709 (bending rope)\nWasPowered create 56141902 (power on)\nWasPowered destroy 25196302 (power off)\nDisappearing create 96367909\nPlayerDying create 9797709\nPlayerDying destroy 82870709\n\nUndo 77836307\nRestart 41565108\n\nEndLevel 42704508\nEndGame 10304308\n\n(\nTodo:\ntweak electrocution\ngetting crushed\npower on/off triggers too much\nending sound triggers too late\n)\n\n\n================\nCOLLISIONLAYERS\n================\n\nCheckpointTrigger, ReactorTrigger\nDirection, Done, Here\nClaimed\nBackground\nElectricFloor, UpWhenPowered\nWasPowered\nPowered, Unpowered\nElectricFloorCover, Warning, Exit\nHole, Button, Wire, Door, AndGate, Reactor\nDangerBorderLR, WalkwayStart, PowerLevel\nDangerBorderUD, Walkway\nPlayer, PlayerDying, Wall, Crate, Disappearing, Squashed\nWallCoverLR, Electrified\nWallCoverUD, WallCoverCorner\nLassoAboveHead\nLassoThrown, LassoCaught, Rope\nElectrifyingL\nElectrifyingR\nElectrifyingU\nElectrifyingD\nChanged\n\n======\nRULES\n======\n\n([ Changed ] -> [])\n\n([ RopeNextToPlayer ] -> [])\n\n(Lasso aiming animation)\n\n[ up Player Exit ] -> [ Player Exit ] win\n\nright [ Warning1 | | | | | ] -> [ Warning1 | Warning2 | Warning3 | Warning4 | Warning5 | Warning6 ]\n\nlate up [ PlayerAiming | no LassoAboveHead ] -> [ PlayerAiming | LassoAboveHead1 ]\nlate up [ no PlayerAiming | LassoAboveHead ] -> [ | ]\n\nup [ moving Player | LassoAboveHead ] -> [ moving Player | action LassoAboveHead ]\n\n[ stationary LassoAboveHead1 ] -> [ action LassoAboveHead2 ]\n[ stationary LassoAboveHead2 ] -> [ action LassoAboveHead3 ]\n[ stationary LassoAboveHead3 ] -> [ action LassoAboveHead4 ]\n[ stationary LassoAboveHead4 ] -> [ action LassoAboveHead5 ]\n[ stationary LassoAboveHead5 ] -> [ action LassoAboveHead6 ]\n[ stationary LassoAboveHead6 ] -> [ action LassoAboveHead7 ]\n[ stationary LassoAboveHead7 ] -> [ action LassoAboveHead8 ]\n[ stationary LassoAboveHead8 ] -> [ action LassoAboveHead1 ]\n\n(Pressing action)\n\n[ action PlayerHold ] [ LassoCaught Crate ] -> [ PlayerHold ] [ LassoReturn action Crate Changed ] again\n\n[ action PlayerAiming ] -> [ PlayerNormal ]\n[ action PlayerNormal ] -> [ PlayerAiming ]\n\n(Throwing lasso)\n\nleft [ > PlayerAiming | no SolidUncatchable ] -> [ PlayerHoldL | L action LassoThrownL ] sfx0 again\nright [ > PlayerAiming | no SolidUncatchable ] -> [ PlayerHoldR | R action LassoThrownR ] sfx0 again\nup [ > PlayerAiming | no SolidUncatchable ] -> [ PlayerHoldU | U action LassoThrownU ] sfx0 again\ndown [ > PlayerAiming | no SolidUncatchable ] -> [ PlayerHoldD | D action LassoThrownD ] sfx0 again\n\nleft [ L stationary LassoThrownL | no SolidUncatchable ] -> [ RopeH | L action LassoThrownL ] again\nright [ R stationary LassoThrownR | no SolidUncatchable ] -> [ RopeH | R action LassoThrownR ] again\nup [ U stationary LassoThrownU | no SolidUncatchable ] -> [ RopeV | U action LassoThrownU ] again\ndown [ D stationary LassoThrownD | no SolidUncatchable ] -> [ RopeV | D action LassoThrownD ] again\n\n[ LassoThrown stationary Crate no LassoReturn ] -> [ action LassoCaught Crate no Direction ]\n\n[ Player | | | | | LassoThrown Direction ] -> [ Player | | | | | action LassoThrown ]\n\n([ Player | | | | | | | | LassoThrown Direction ] -> [ Player | | | | | | | | action LassoThrown ])\n\n(Moving while attached)\n\n[ > Player | Hole no Walkway ] -> cancel\n\n[ > Player Hole no Walkway ] -> cancel\n\n[ moving Player ] [ LassoCaught Crate ] [ Rope ] -> [ moving Player action Done ] [ moving LassoCaught action Crate ] [ moving Rope ]\n\n[ moving Player | LassoCaught Crate ] -> [ moving Player action Done | moving LassoCaught action Crate ]\n\n[ > Player | stationary Solid ] -> cancel\n\nstartloop\n\n(Start loop)\n\nleft [ action Done | RopePullsL no Done ] -> [ < Done | RopePullsL Here ]\nright [ action Done | RopePullsR no Done ] -> [ < Done | RopePullsR Here ]\nup [ action Done | RopePullsU no Done ] -> [ < Done | RopePullsU Here ]\ndown [ action Done | RopePullsD no Done ] -> [ < Done | RopePullsD Here ]\n[ action Done | LassoCaught no Done ] -> [ < Done | LassoCaught Here ]\n\n(Check for collisions)\n\n[ stationary Here > Chain | stationary Solid ] -> [ action Here > Chain | Solid ] sfx1 (set 'action Here' on collision)\n\n[ < Done | action Here > Chain ] -> cancel\n\n[ action Here ] [ Done > Chain | moving Done ] -> cancel\n\n[ action Here ] [ moving Done ] [ Chain no Done ] -> [ action Here ] [ moving Done ] [ moving Chain ] (update movement of future parts of the chain)\n\n(Handle movement)\n\nleft [ moving Done down RopeUL | action Here ] -> cancel\nleft [ moving Done up RopeDL | action Here ] -> cancel\n\nleft [ moving Done down RopeH | action Here ] -> [ moving Done down RopeUR | action Here ]\nleft [ moving Done down RopeDL | action Here ] -> [ moving Done down RopeV | action Here ]\nleft [ moving Done up RopeH | action Here ] -> [ moving Done up RopeDR | action Here ]\nleft [ moving Done up RopeUL | action Here ] -> [ moving Done up RopeV | action Here ]\n\nleft [ moving Done down Chain | action Here < RopeH ] -> [ moving Done down Chain | action Here < RopeDL ]\nleft [ moving Done down Chain | action Here < RopeUR ] -> [ moving Done down Chain | action Here < RopeV ]\nleft [ moving Done up Chain | action Here < RopeH ] -> [ moving Done up Chain | action Here < RopeUL ]\nleft [ moving Done up Chain | action Here < RopeDR ] -> [ moving Done up Chain | action Here < RopeV ]\n\nright [ moving Done down RopeUR | action Here ] -> cancel\nright [ moving Done up RopeDR | action Here ] -> cancel\n\nright [ moving Done down RopeH | action Here ] -> [ moving Done down RopeUL | action Here ]\nright [ moving Done down RopeDR | action Here ] -> [ moving Done down RopeV | action Here ]\nright [ moving Done up RopeH | action Here ] -> [ moving Done up RopeDL | action Here ]\nright [ moving Done up RopeUR | action Here ] -> [ moving Done up RopeV | action Here ]\n\nright [ moving Done down Chain | action Here < RopeH ] -> [ moving Done down Chain | action Here < RopeDR ]\nright [ moving Done down Chain | action Here < RopeUL ] -> [ moving Done down Chain | action Here < RopeV ]\nright [ moving Done up Chain | action Here < RopeH ] -> [ moving Done up Chain | action Here < RopeUR ]\nright [ moving Done up Chain | action Here < RopeDL ] -> [ moving Done up Chain | action Here < RopeV ]\n\nup [ moving Done left RopeUR | action Here ] -> cancel\nup [ moving Done right RopeUL | action Here ] -> cancel\n\nup [ moving Done left RopeV | action Here ] -> [ moving Done left RopeDR | action Here ]\nup [ moving Done left RopeUL | action Here ] -> [ moving Done left RopeH | action Here ]\nup [ moving Done right RopeV | action Here ] -> [ moving Done right RopeDL | action Here ]\nup [ moving Done right RopeUR | action Here ] -> [ moving Done right RopeH | action Here ]\n\nup [ moving Done left Chain | action Here < RopeV ] -> [ moving Done left Chain | action Here < RopeUL ]\nup [ moving Done left Chain | action Here < RopeDR ] -> [ moving Done left Chain | action Here < RopeH ]\nup [ moving Done right Chain | action Here < RopeV ] -> [ moving Done right Chain | action Here < RopeUR ]\nup [ moving Done right Chain | action Here < RopeDL ] -> [ moving Done right Chain | action Here < RopeH ]\n\ndown [ moving Done left RopeDR | action Here ] -> cancel\ndown [ moving Done right RopeDL | action Here ] -> cancel\n\ndown [ moving Done left RopeV | action Here ] -> [ moving Done left RopeUR | action Here ]\ndown [ moving Done left RopeDL | action Here ] -> [ moving Done left RopeH | action Here ]\ndown [ moving Done right RopeV | action Here ] -> [ moving Done right RopeUL | action Here ]\ndown [ moving Done right RopeDR | action Here ] -> [ moving Done right RopeH | action Here ]\n\ndown [ moving Done left Chain | action Here < RopeV ] -> [ moving Done left Chain | action Here < RopeDL ]\ndown [ moving Done left Chain | action Here < RopeUR ] -> [ moving Done left Chain | action Here < RopeH ]\ndown [ moving Done right Chain | action Here < RopeV ] -> [ moving Done right Chain | action Here < RopeDR ]\ndown [ moving Done right Chain | action Here < RopeUL ] -> [ moving Done right Chain | action Here < RopeH ]\n\n[ Here > Chain | Claimed ] -> cancel\n[ Here > Chain | ] -> [ Here > Chain | Claimed ]\n\n[ moving Done ] -> [ Done ]\n\n[ Here ] -> [ action Done ]\n\n(End loop)\n\nendloop\n\n[ Claimed ] -> []\n[ Here ] -> []\n[ Done ] -> []\n\nlate [ Player Rope ] -> cancel\nlate [ Player LassoCaught ] -> cancel\n\n([ left Chain ] -> [ L action Chain ]\n[ right Chain ] -> [ R action Chain ]\n[ up Chain ] -> [ U action Chain ]\n[ down Chain ] -> [ D action Chain ]\n[ Direction moving Crate ] -> [ Direction Crate ])\n\n[ moving LassoCaught Crate ] -> [ moving LassoCaught moving Crate ]\n\n(Pull the end of the lasso towards the player by one tile)\n\n[ stationary LassoThrown Direction ] -> [ LassoThrown ] again\n\nleft [ stationary LassoThrown | RopePullsL ] -> [ > LassoThrown | ] again\nright [ stationary LassoThrown | RopePullsR ] -> [ > LassoThrown | ] again\nup [ stationary LassoThrown | RopePullsU ] -> [ > LassoThrown | ] again\ndown [ stationary LassoThrown | RopePullsD ] -> [ > LassoThrown | ] again\n\n[ stationary LassoThrown | Player ] -> [ | PlayerNormal no Direction ]\n\n[ LassoThrown Player ] -> [ PlayerNormal ]\n\n[ > Player | ] -> [ > Player Changed | Changed ]\n[ > LassoCaught | ] -> [ > LassoCaught Changed | Changed ]\n\n(Holes)\n\nlate [ Disappearing ] -> [] again\n\nlate [ Crate Hole no Walkway no LassoCaught ] -> [ DisappearingCrate Hole ] again\nlate [ DisappearingCrate ] [ LassoReturn ] -> [ Crate ] [ LassoReturn ]\n\nlate [ Player Hole no Walkway no PlayerHold ] -> [ DisappearingPlayer Hole ]\n\n(Squashing)\n\nlate [ Player DoorUp Changed ] -> [ SquashedPlayer DoorUp ]\n\n(Add graphics)\n\nlate left [ PlayerHold | RopePullsL ] -> [ Claimed PlayerHoldL | RopePullsL ]\nlate right [ PlayerHold | RopePullsR ] -> [ Claimed PlayerHoldR | RopePullsR ]\nlate up [ PlayerHold | RopePullsU ] -> [ Claimed PlayerHoldU | RopePullsU ]\nlate down [ PlayerHold | RopePullsD ] -> [ Claimed PlayerHoldD | RopePullsD ]\n\nlate left [ PlayerHold no Claimed | LassoCaught ] -> [ PlayerHoldL | LassoCaught ]\nlate right [ PlayerHold no Claimed | LassoCaught ] -> [ PlayerHoldR | LassoCaught ]\nlate up [ PlayerHold no Claimed | LassoCaught ] -> [ PlayerHoldU | LassoCaught ]\nlate down [ PlayerHold no Claimed | LassoCaught ] -> [ PlayerHoldD | LassoCaught ]\n\nlate [ Claimed ] -> []\n\n(Draw wall edges)\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\nleft [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallLUD | WallUD ]\nup [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallULR | WallLR ]\n\nright [ WallD | Wall no WallCover ] -> [ WallD | Wall WallDL ]\nleft [ WallD | Wall no WallCover ] -> [ WallD | Wall WallDR ]\n\nright [ WallU | Wall no WallCover ] -> [ WallU | Wall WallUL ]\nleft [ WallU | Wall no WallCover ] -> [ WallU | Wall WallUR ]\n\n(Draw electric floor)\n\nleft [ ElectricFloor no DangerBorderLR | no ElectricFloor ] -> [ ElectricFloor DangerL | ]\nright [ ElectricFloor no DangerBorderLR | no ElectricFloor ] -> [ ElectricFloor DangerR | ]\nright [ ElectricFloor DangerL | no ElectricFloor ] -> [ ElectricFloor DangerLR | ]\n\nup [ ElectricFloor no DangerBorderUD | no ElectricFloor ] -> [ ElectricFloor DangerU | ]\ndown [ ElectricFloor no DangerBorderUD | no ElectricFloor ] -> [ ElectricFloor DangerD | ]\ndown [ ElectricFloor DangerU | no ElectricFloor ] -> [ ElectricFloor DangerUD | ]\n\n[ ElectricFloor no Powered ] -> [ ElectricFloor no ElectricFloorCover ]\n\n[ Player no Changed ] [ ElectricFloor Powered no ElectricFloorCover no Claimed ] -> [ Player ] [ ElectricFloor Powered ElectricFloor1 Claimed ]\n[ Player no Changed ][ ElectricFloor Powered ElectricFloor1 no Claimed ] -> [ Player ] [ ElectricFloor Powered ElectricFloor2 Claimed ]\n[ Player no Changed ][ ElectricFloor Powered ElectricFloor2 no Claimed ] ->[ Player ] [ ElectricFloor Powered no ElectricFloor Claimed ]\n\nlate [ Claimed ] -> []\n\n(Power flow)\n\nlate [ Changed no ChainUnderOver ] -> []\n\nlate [ Changed Electrifiable | no Changed Electrifiable ] -> [ Changed Electrifiable | Changed Electrifiable ]\n+ late [ Changed ChainUnder | no Changed ChainUnder ] -> [ Changed ChainUnder | Changed ChainUnder ]\n\nlate [ Changed Powered ] -> [ Changed ]\nlate [ Changed Walkway ] -> [ Changed ]\nlate [ PowerLevel ] -> []\nlate [ Changed Electrified ] -> [ Changed ]\nlate [ Changed ElectrifyingDir ] -> [ Changed ]\n\nlate [ Button Crate ] -> [ Button Crate Powered ]\nlate [ Button Player ] -> [ Button Player Powered ]\n\nstartloop\n\nlate left [ WireL no Powered | Powered ] -> [ WireL Powered | Powered ]\nlate right [ WireR no Powered | Powered ] -> [ WireR Powered | Powered ]\nlate up [ WireU no Powered | Powered ] -> [ WireU Powered | Powered ]\nlate down [ WireD no Powered | Powered ] -> [ WireD Powered | Powered ]\n\nlate left [ WireL Powered no Claimed | AndGate no Claimed ] -> [ WireL Powered Claimed | AndGate Claimed ]\nlate right [ WireR Powered no Claimed | AndGate no Claimed ] -> [ WireR Powered Claimed | AndGate Claimed ]\nlate up [ WireU Powered no Claimed | AndGate no Claimed ] -> [ WireU Powered Claimed | AndGate Claimed ]\nlate down [ WireD Powered no Claimed | AndGate no Claimed ] -> [ WireD Powered Claimed | AndGate Claimed ]\n\nlate left [ WireL Powered | no Powered no AndGate ] -> [ WireL Powered | Powered ]\nlate right [ WireR Powered | no Powered no AndGate ] -> [ WireR Powered | Powered ]\nlate up [ WireU Powered | no Powered no AndGate ] -> [ WireU Powered | Powered ]\nlate down [ WireD Powered | no Powered no AndGate ] -> [ WireD Powered | Powered ]\n\nlate [ AndGate Power1 Claimed ] -> [ AndGate Power2 Powered ]\nlate [ AndGate no PowerLevel Claimed ] -> [ AndGate Power1 no Powered ]\nlate [ AndGate Claimed ] -> [ AndGate no Powered ]\n\nlate [ PowerTransfer Powered | PowerTransfer no Powered ] -> [ PowerTransfer Powered | PowerTransfer Powered ]\n\nlate left [ WalkwayStartL Powered | Hole no WalkwayStart ] -> [ WalkwayStartL Powered | WalkwayStartL Hole ]\nlate right [ WalkwayStartR Powered | Hole no WalkwayStart ] -> [ WalkwayStartR Powered | WalkwayStartR Hole ]\nlate up [ WalkwayStartU Powered | Hole no WalkwayStart ] -> [ WalkwayStartU Powered | WalkwayStartU Hole ]\nlate down [ WalkwayStartD Powered | Hole no WalkwayStart ] -> [ WalkwayStartD Powered | WalkwayStartD Hole ]\n\nlate [ WalkwayStart Powered ] -> [ WalkwayStart Walkway Powered ]\n\nlate [ Electrifiable no Electrified ElectricFloor Powered ] -> [ Electrifiable Electrified ElectricFloor Powered ]\n\nlate [ Electrifiable Electrified | Electrifiable no Electrified ] -> [ Electrifiable Electrified | Electrifiable Electrified ]\n\nlate [ Electrifiable Electrified ElectricFloor no Powered ] -> [ Electrifiable Electrified ElectricFloor Powered ]\n\nlate [ Electrified LassoCaught ] [ Player ] -> [ Electrified LassoCaught ] [ Player Electrified ]\nlate [ LassoCaught ] [ Electrified Player ] -> [ Electrified LassoCaught ] [ Player Electrified ]\n\nendloop\n\nlate [ Claimed ] -> []\n\nlate [ Door Powered no UpWhenPowered no CheckpointTrigger ] [ Player no Button no PlayerHold ] -> [ Door Powered CheckpointTrigger ] [ Player ] checkpoint\n\nlate [ WalkwayStart Powered no CheckpointTrigger ] [ Player no Button no PlayerHold ] -> [ WalkwayStart Powered CheckpointTrigger ] [ Player ] checkpoint\n\nlate left [ Hole | WalkwayStartL ] -> [ Hole | ]\nlate right [ Hole | WalkwayStartR ] -> [ Hole | ]\nlate up [ Hole | WalkwayStartU ] -> [ Hole | ]\nlate down [ Hole | WalkwayStartD ] -> [ Hole | ]\n\nlate [ Wire no Powered ] -> [ Wire Unpowered ]\nlate [ PowerTransfer no Powered ] -> [ PowerTransfer Unpowered ]\n\nlate [ Door Powered UpWhenPowered ] -> [ DoorUp Powered UpWhenPowered ]\nlate [ Door no Powered UpWhenPowered ] -> [ DoorDown UpWhenPowered ]\nlate [ Door Powered no UpWhenPowered ] -> [ DoorDown Powered ]\nlate [ Door no Powered no UpWhenPowered ] -> [ DoorUp ]\n\n(Electrocute)\n\nlate left [ Electrified | Electrified ] -> [ Electrified ElectrifyingL | Electrified ElectrifyingR ]\nlate up [ Electrified | Electrified ] -> [ Electrified ElectrifyingU | Electrified ElectrifyingD ]\n\nlate [ PlayerDying Electrified no Claimed ] -> [ PlayerNormal Electrified Claimed ]\nlate [ Player Electrified no Claimed ] -> [ PlayerDying Electrified Claimed ]\n\nlate [ Player Electrified ] -> [ Player ]\n\nlate [ Player Claimed ] -> again\n\nlate [ Claimed ] -> []\n\nlate [ Player DoorUp no Changed no SquashedPlayer ] -> [ Player DoorDown ]\n\nlate [ Changed ] -> []\n\nlate [ Powered Reactor ] -> win\n\nlate [ ReactorTrigger Player ] [ ReactorTrigger ] -> checkpoint\nlate [ ReactorTrigger Player ] [ ReactorTrigger ] -> message The reactor core! I have to take it down by any means necessary.\nlate [ ReactorTrigger Player ] [ ReactorTrigger no Player ] -> [ ReactorTrigger Player ] []\n\nlate [ ReactorTrigger Player ] -> [ Player ]\n\nlate [ Powered no WasPowered ] -> [ Powered WasPowered ]\nlate [ no Powered WasPowered ] -> []\n\n==============\nWINCONDITIONS\n==============\n\n(all button on Crate\nno LassoCaught\nno Rope\nno LassoReturn)\n\n=======\nLEVELS\n=======\n\n(############################################\n#.........##.........##..!......##.........#\n#...!!!!..##.......┌-----!......##.........#\n#....*|...##.......|.##..!......##.........#\n#.!.!!!!!!##!!!!!!!!!##.........##.........#\n#.!--┘.|..##.|..|....##.!!!.....##.........#\n#.&...!!!!##.!..|....##..|...!!!##.........#\n#.*.....└----!..├-@..##..|...!..##.........#\n#!&!......##.!..|....##..└-┐.!..##.........#\n#.........##....|....##....|.!..##.........#\n################n##########n#!..############\n################n##########n#!..############\n############....|....##....|.!......oo.....#\n############@---2---@##.@..|.!-----┐oo.....#\n############.........##.|..|.!.....└!!--%..#\n############@---┬---@##.2--┘.!!!##..oo..|..#\n############...o↓o...##.|.......##..oo..|..#\n############ooooooooooo.|.oo#...##..oooo↓oo#\n############oo.....oooo.|.oo#!!!##..ooooooo#\n############oo.....oooo.|.oo#.|.##.........#\n############oo.....ooooo↓ooo#.|.##.........#\n################.ooooooooooo##|##########.##\n################.ooooooooooo##|##########.##\n#....@----------┐oooooooooooo.|.##┌----!...#\n#.oooooooooooooo↓oooooo...ooo.├---┘...o!...#\n#.ooooooooooooooooooooo.@.ooo!&!##....o!┐..#\n#.oo...oooooooo...ooooo.|.ooo...####..oo|###\n#*oo.#.ooooooo←-@.oooooo|oooo...####..oo|###\n#.oo...oooooooo...ooo##o|o##########..oo|###\n#.oooooooooooooo.oooo##.|.......##....o!┘..#\n#.oooooooooooooo.....nn-┴-------nn┐...o!.*.#\n#.ooooooooooooooooooo##.........##└----!-┐.#\n###########################n#############n##\n###########################n#############n##\n#.........##.........##....|....##w........#\n#.......*.##.........##..@-2-@..##.........#\n#.........##......┌--nn-┐.......##o!!!o!!!o#\n#.........##...%..|..##.|.......##o!%ooo%!o#\n#p...┌--@.##...|..|..##!!!!#!!!!##o!!!!!!!o#\n#....|....##!!!!!!!!!##....#.|..##.........#\n#....|....##.........##.%--═-┘..##.!!!-!!!.#\n#....|....##.........##....#..*.##.!%!-!%!.#\n#....|....##.........##....#....##.!!!-!!!.#\n#####n########n##############..###.|||.|||.#\n#####n########n##############..###.|||.|||.#\n#.........##..|..oo..##...ooo...##.!!!-!!!.#\n#....*....##..|..oo..##...ooo...##.!%!-!%!.#\n#.........##..└@.oo..##...ooo...##.!!!-!!!.#\n#.........##.....oo..##...ooo.@.##.|||.|||.#\n#.........##.....oo..##...ooo.|.##.|||.|||.#\n#oooooooooooooooooo.......oo←-┘.##.!!!-!!!.#\n#oooooo↑oooooo↑oooo.......oo←...##.!%!-!%!.#\n#..@---┘......|..oo..##...ooo...##.!!!┬!!!.#\n#.............@..oo..##...ooo...##...|||...#\n#################oo##################|||####\n#####################################|||####\n#.........##.........##.........##@%!┴┴┘...#\n#.........##.........##.........##%@!......#\n#.........##.........##.........##@%!.*.*..#\n#.........##.........##.........##!!!......#\n#.........##.........##.........##ooooooooo#\n#.........##.........##.........##ooooooooo#\n#.........##.........##.........##oo!!!!!oo#\n#.........##.........##.........##oo!┴┬┴!oo#\n#.........##.........##.........##oo!┬$┬!oo#\n##################################oo!┤|├!oo#)\n\n###########################x#####\n#.........##.........##....|....#\n#.......*.##.........##..@-2-@..#\n#.........##......┌--nn-┐.......#\n#.........##...%..|..##.|.......#\np....┌--@.##...|..|..##!!!!#!!!!#\n#....|....##!!!!!!!!!##....#.|..#\n#....|....##.........##.%--═-┘..#\n#....|....##.........##....#..*.#\n#....|....##.........##....#....#\n#####n########n##############..##\n#####n########n##############..##\n#.........##..|..oo..##...ooo...#\n#....*....##..|..oo..##...ooo...#\n#.........##..└@.oo..##...ooo...#\n#.........##.....oo..##...ooo.@.#\n#.........##.....oo..##...ooo.|.#\n#oooooooooooooooooo.......oo←-┘.#\n#oooooo↑oooooo↑oooo.......oo←...#\n#..@---┘......|..oo..##...ooo...#\n#.............@..oo..##...ooo...#\n#################oo##############\n\n#######################################################\n#.........##.........##..!......##.........##.........#\n#...!!!!!.##.......┌-----!......##.........##.........#\n#....*|...##.......|.##..!......##.........##.........#\n#.!.!!!!!!##!!!!!!!!!##.........##.........##.........#\n#.!--┘.|..##.|..|....##.!!!.....##.........##.........#\n#.&..!!!!!##.!..|....##..|...!!!##.........##.........#\n#.*.....├----!..├-@..##..|...!..##.........##.........#\n#!&!..!!!!##.!..|....##..└-┐.!..##.........##.........#\n#.........##....|....##....|.!..##.........##.........#\n################n##########n#!..#######################\n################n##########n#!..#######################\n############....|....##....|.!......oo.....##.........#\n############@---2---@##.@..|.!-----┐oo.....##.........#\n############.........##.|..|.!.....└!!--%..##.........#\n############@---┬---@##.2--┘.!!!##..oo..|..##.........#\n############...o↓o...##.|.......##..oo..|..##.........#\n############ooooooooooo.|.oo#...##..oooo↓oo#═.........#\n############oo.....oooo.|.oo#!!!##..ooooooo##.........#\n############oo.....oooo.|.oo#.|.##.........##.........#\n############oo.....ooooo↓ooo#.|.##.........##.........#\n################.ooooooooooo##|##########.#######n#####\n################.ooooooooooo##|##########.#######x#####\n#....@----------┐oooooooooooo.|.##┌----!...##%!--┘..!%#\n#.oooooooooooooo↓oooooo...ooo.├---┘...o!...##!!!!!..!!#\n#.ooooooooooooooooooooo.@.ooo!&!##....o!┐..##!.|.!..|.#\n#.oo...oooooooo...ooooo.|.ooo...####..oo|####!.!.!.!|.#\n#*oo.#.ooooooo←-@.oooooo|oooo...####..oo|####!.!.!-!!!#\n#.oo...oooooooo...ooo##o|o##########..oo|####!.!.!.!..#\n#.oooooooooooooo.oooo##.|.......##....o!┘..##!.!...|..#\n#.oooooooooooooo.....nn-┴-------nn┐...o!.*┌nn..!!!!!!!#\n#.ooooooooooooooooooo##.........##└----!--┘##!!!....!%#\n###########################p###########################\n\n######################\n#....................#\n#....................#\n#oooooooooooo!!!o!!!oo\n#ooo↑oooooooo!%ooo%!oo\n#oo.|.ooooooo!!!!!!!oo\n#oo.|.oooo##.........#\n#o!!!!!!!o##.!!!-!!!.#\n#o!....@!o##.!%!-!%!.#\n#o!!!!!!!o##.!!!-!!!.#\n#oooo...oo##.|||.|||.#\n#oooo...oo##.|||.|||.#\n#oo┌--┐...##.!!!-!!!.#\n#oo@..|...##.!%!-!%!.#\n#oo###n#####.!!!-!!!.#\n#oo.......##.|||.|||.#\n#oo.......##.|||.|||.#\n#oo..*.*..##.!!!-!!!.#\n#oo.......##.!%!-!%!.#\n#oo.......##.!!!┬!!!.#\n#oo.......##...|||...#\n######p########|||####\n######n########zzz####\n#%!---┘.!%##@%!┴┴┘...#\n#!!!!!..!!##%@!......#\n#!.|.!..|.##@%!.*.*..#\n#!.!.!.!|.##!!!......#\n#!.!.!-!!!##ooooooooo#\n#!.!.!.!..##ooooooooo#\n#!.!...|..##oo!!!!!oo#\nn..!!!!!!!##oo!┴┬┴!oo#\n#!!!....!%##oo!┬$┬!oo#\n############oo!┤|├!oo#\n\n(#######################################################\n#.........##.....!...##.........##...#.....##.........#\n#...!!!!!.##.....!-┬-nn.........##...#.....##.........#\n#....*|...##...┌-!.|.##.........##.*.#...@.##.........#\n#.!.!!!!!!##...|.##|.##.........##...#...|.##.........#\n#.!-┬┘.|..##...@.##|.##.!!!.....##.@-n-@.2.##.........#\n#.&.|!!!!!##.!...##|.##..|...!!!##...#...|.##.........#\n#.*.|...├----!...!.|.##..|...!..##.*.#...@.##.........#\n#!!!┘.!!!!##.!--┐!-┘.##..└┐..!..##...#.....##.........#\n#.........##....|!...##...|..!..##...#.....##.........#\n################n#########n##!..#######################)\n\n\nmessage BOOM\nmessage You will be remembered as a hero\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", 4, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", 3, "tick", "tick", "tick", 4, "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 4, "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background walldr wallnormal:0,background wallnormal wallr:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background wallnormal wallur:2,\n0,1,1,1,1,1,1,background walld wallnormal wallr:3,background doorup unpowered:4,background wallnormal wallr wallu:5,2,background walld wallnormal:6,background:7,7,background hole:8,8,8,8,8,8,8,8,\n8,8,8,8,8,8,8,8,8,8,background wallnormal wallu:9,6,background button crate powered waspowered:10,background dangerl dangeru electricfloor powered waspowered:11,background dangerlr electricfloor powered waspowered:12,12,12,12,background dangerd dangerlr electricfloor powered waspowered:13,7,background dangerl dangerud electricfloor powered waspowered:14,9,\n6,7,7,8,8,8,8,background dangerl dangeru electricfloor unpowered:15,background dangerlr electricfloor unpowered:16,background dangerd dangerl electricfloor unpowered:17,8,8,8,8,8,8,8,8,8,8,8,9,\n6,background dangerlr dangeru electricfloor powered waspowered:18,background dangerd electricfloor powered waspowered:19,7,7,7,7,7,7,background dangerud electricfloor powered waspowered:20,9,6,7,7,8,8,7,7,background dangerud electricfloor unpowered:21,7,21,8,\n8,background unpowered wiredr:22,background button unpowered:23,background walll wallnormal wallud:24,7,7,7,7,7,7,9,6,background powered waspowered wirelr:25,20,background powered waspowered wireud:26,18,12,12,12,background dangerl electricfloor powered waspowered:27,background dangerd dangerr electricfloor powered waspowered:28,9,\n6,7,7,8,background hole unpowered walkwaystartu:29,background unpowered wireud:30,30,21,7,21,8,8,background unpowered wirelr:31,7,background wallnormal wallud:32,7,7,7,7,7,7,9,\n6,25,20,7,7,7,7,7,20,7,9,6,7,7,8,8,7,7,21,7,21,7,\n7,31,7,background wallnormal wallr wallud:33,7,background playernormal:34,7,7,7,7,5,3,25,background dangerr dangeru electricfloor powered waspowered:35,12,12,12,13,7,20,7,9,\n6,7,7,8,8,8,8,21,7,21,7,7,background unpowered wiredl:36,30,4,7,7,7,7,7,7,background checkpointtrigger doordown powered waspowered:37,\n37,background powered waspowered wireul:38,7,7,7,25,7,7,20,7,9,6,7,7,8,8,8,8,21,23,21,7,\n7,7,7,24,7,7,background crate:39,7,7,7,background walll wallnormal wallu:40,background walld walll wallnormal:41,7,7,7,18,27,13,26,20,7,9,\n6,7,7,8,8,8,8,background dangerr dangeru electricfloor unpowered:42,16,background dangerd dangerr electricfloor unpowered:43,8,8,7,7,32,7,7,39,7,7,7,9,\n6,18,background dangerd dangerl electricfloor powered waspowered:44,26,26,20,7,7,background dangeru electricfloor powered waspowered:45,13,9,6,7,7,8,8,8,8,8,8,8,8,\n8,7,7,32,7,7,7,7,7,7,9,6,10,background dangerr dangerud electricfloor powered waspowered:46,7,7,46,7,7,46,10,9,\n6,7,7,8,8,8,40,background walll wallnormal:47,47,47,47,47,47,47,background walllud wallnormal:48,47,47,47,47,47,47,background wallnormal wallul:49,\nbackground walldl wallnormal:50,47,47,47,47,47,47,47,47,47,49,6,7,7,8,8,8,5,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,\n6,7,7,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,\n6,background button powered waspowered:51,10,51,14,8,8,8,8,8,8,6,7,7,11,12,44,7,11,12,44,26,\n26,11,12,44,26,26,11,12,44,7,9,6,10,51,10,20,8,8,8,8,8,8,\n6,7,7,20,10,20,7,20,10,20,26,26,20,10,20,26,26,20,10,20,7,5,\n3,18,12,12,28,8,8,15,16,16,16,6,7,7,46,8,20,7,35,12,28,26,\n26,35,12,28,26,26,35,12,28,26,26,background powered reactortrigger waspowered wireud:52,background powered waspowered wireulr:53,7,7,7,8,8,21,background unpowered wireulr:54,background unpowered wiredlr:55,background unpowered wireudl:56,\n6,7,7,8,8,20,7,25,25,25,7,7,25,25,25,7,7,25,25,background powered waspowered wiredlr:57,26,26,\n52,53,7,39,7,8,8,21,55,background reactor unpowered:58,30,6,7,7,14,8,20,7,11,12,44,26,\n26,11,12,44,26,26,11,12,44,26,26,52,38,7,7,7,8,8,21,54,55,background unpowered wireudr:59,\n6,7,7,20,10,20,7,20,10,20,26,26,20,10,20,26,26,20,10,20,7,40,\n41,7,7,39,7,8,8,42,16,16,16,6,7,7,35,12,28,7,35,12,28,26,\n26,35,12,28,26,26,35,12,28,7,9,6,7,7,7,7,8,8,8,8,8,8,\n6,7,7,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,\n6,7,7,7,7,8,8,8,8,8,8,50,47,41,8,8,8,40,47,47,47,47,\n47,47,47,47,47,47,47,47,47,47,49,50,47,47,47,47,47,47,47,47,47,47,\n", 2, "1627778403808.806"] + ["title Cyber-Lasso\nauthor Alan Hazelden\nhomepage www.draknek.org\n\nnorepeat_action\n\nagain_interval 0.05\nrealtime_interval 0.05\n\n(verbose_logging)\n\nflickscreen 11x11\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\n#dddddd #ffffff\n11111\n10001\n10001\n10001\n11111\n\nElectricFloor\nLightBlue White\n00001\n00010\n00100\n01000\n10000\n\nElectricFloor1\nLightBlue White\n00001\n00010\n00100\n01000\n10000\n\nElectricFloor2\nLightBlue\n\nPowered\nLightBlue\n\nUnpowered\nWhite\n\nWasPowered\ntransparent\n\nHole\nBlack\n\nButton\nRed Grey\n10001\n00000\n00000\n00000\n10001\n\nCrate\nDarkGreen Green\n.....\n.111.\n.101.\n.111.\n.....\n\nElectricCrate1\nYellow\n.....\n.....\n..0..\n.....\n.....\n\n(ElectricCrate2\nOrange\n.....\n.....\n..0..\n.....\n.....)\n\nElectrifyingL\nYellow\n.....\n.....\n0....\n.....\n.....\n\nElectrifyingR\nYellow\n.....\n.....\n....0\n.....\n.....\n\nElectrifyingU\nYellow\n..0..\n.....\n.....\n.....\n.....\n\nElectrifyingD\nYellow\n.....\n.....\n.....\n.....\n..0..\n\nDisappearingCrate\nGreen\n.....\n.....\n..0..\n.....\n.....\n\nDisappearingPlayer\n#a46422\n.....\n.....\n..0..\n.....\n.....\n\nSquashedPlayer\n#a46422 #493c2b #000000 red\n....3\n.30..\n01110\n.2.2.\n3..3.\n\nWallNormal\nDarkGrey\n\nDoorUp\nDarkGrey #5a7bb6\n11111\n10001\n10001\n10001\n11111\n\nDoorDown\n#ffffff #dddddd\n11111\n1...1\n1.0.1\n1...1\n11111\n\nUpWhenPowered\ntransparent\n\nWalkway\n#dddddd #9d9e9e\n11111\n10001\n10001\n10001\n11111\n\nWalkwayStartL\n#9d9e9e\n....0\n....0\n....0\n....0\n....0\n\nWalkwayStartR\n#9d9e9e\n0....\n0....\n0....\n0....\n0....\n\nWalkwayStartU\n#9d9e9e\n.....\n.....\n.....\n.....\n00000\n\nWalkwayStartD\n#9d9e9e\n00000\n.....\n.....\n.....\n.....\n\nPlayerNormal\n#a46422 #493c2b #000000\n..0..\n.111.\n01110\n02220\n.2.2.\n\nPlayerHoldL\n#a46422 #493c2b #000000 orange\n..0..\n.111.\n3330.\n0222.\n.2.2.\n\nPlayerHoldR\n#a46422 #493c2b #000000 orange\n..0..\n.111.\n01110\n0222.\n.2.2.\n\nPlayerHoldU\n#a46422 #493c2b #000000 orange\n..00.\n.110.\n0111.\n0222.\n.2.2.\n\nPlayerHoldD\n#a46422 #493c2b #000000 orange\n..0..\n.111.\n0110.\n0232.\n.232.\n\n(RopeNextToPlayerR\n#a46422\n.....\n.....\n0....\n.....\n.....)\n\nPlayerAiming\n#a46422 #493c2b #000000\n..0.0\n.1110\n0111.\n0222.\n.2.2.\n\nPlayerDying\nyellow yellow yellow\n..0..\n.111.\n01110\n02220\n.2.2.\n\nLassoAboveHead1\nbrown orange\n.....\n..00.\n.0..0\n..001\n....1\n\nLassoAboveHead2\nbrown orange\n.....\n.000.\n0...0\n.0001\n....1\n\nLassoAboveHead3\nbrown orange\n.....\n.00..\n0..0.\n.00..\n...1.\n\nLassoAboveHead4\nbrown orange\n.00..\n0..0.\n0..0.\n.00..\n...1.\n\nLassoAboveHead5\nbrown orange\n.00..\n0..0.\n.00..\n..1..\n...1.\n\nLassoAboveHead6\nbrown orange\n.000.\n0...0\n.000.\n..1..\n...1.\n\nLassoAboveHead7\nbrown orange\n..00.\n.0..0\n..00.\n...1.\n...1.\n\nLassoAboveHead8\nbrown orange\n..00.\n.0..0\n.0..0\n..00.\n...1.\n\nLassoThrownL\nbrown orange\n.00..\n0..0.\n0..01\n0..0.\n.00..\n\nLassoThrownR\nbrown orange\n..00.\n.0..0\n10..0\n.0..0\n..00.\n\nLassoThrownU\nbrown orange\n.000.\n0...0\n0...0\n.000.\n..1..\n\nLassoThrownD\nbrown orange\n..1..\n.000.\n0...0\n0...0\n.000.\n\nLassoReturn\nbrown orange\n.000.\n0...0\n0...0\n0...0\n.000.\n\nLassoCaught\nbrown\n.000.\n0...0\n0...0\n0...0\n.000.\n\nRopeH\norange\n.....\n.....\n00000\n.....\n.....\n\nRopeV\norange\n..0..\n..0..\n..0..\n..0..\n..0..\n\nRopeUL\norange\n..0..\n..0..\n000..\n.....\n.....\n\nRopeUR\norange\n..0..\n..0..\n..000\n.....\n.....\n\nRopeDL\norange\n.....\n.....\n000..\n..0..\n..0..\n\nRopeDR\norange\n.....\n.....\n..000\n..0..\n..0..\n\nWireLR\n#ffffff #dddddd\n00000\n11111\n.....\n11111\n00000\n\nWireUD\n#ffffff #dddddd\n01.10\n01.10\n01.10\n01.10\n01.10\n\nWireUL\n#ffffff #dddddd\n01.10\n11.10\n...10\n11110\n00000\n\nWireUR\n#ffffff #dddddd\n01.10\n01.11\n01...\n01111\n00000\n\nWireDL\n#ffffff #dddddd\n00000\n11110\n...10\n11.10\n01.10\n\nWireDR\n#ffffff #dddddd\n00000\n01111\n01...\n01.11\n01.10\n\nWireULR\n#ffffff #dddddd\n01.10\n11.11\n.....\n11111\n00000\n\nWireDLR\n#ffffff #dddddd\n00000\n11111\n.....\n11.11\n01.10\n\nWireUDL\n#ffffff #dddddd\n01.10\n11.10\n...10\n11.10\n01.10\n\nWireUDR\n#ffffff #dddddd\n01.10\n01.11\n01...\n01.11\n01.10\n\nAndGate\nGrey Grey Red\n.000.\n00000\n02020\n00000\n.000.\n\nPower1\nYellow\n.....\n.....\n.0...\n.....\n.....\n\nPower2\nYellow\n.....\n.....\n.0.0.\n.....\n.....\n\nDone\ntransparent\n\nHere\ntransparent\n\nClaimed\ntransparent\n\nChanged\nred\n\nExit\ntransparent\n\nCheckpointTrigger\ntransparent\n\nReactorTrigger\ntransparent\n\nU\nred\n..0..\n.0.0.\n.....\n.....\n.....\n\nD\nred\n.....\n.....\n.....\n.0.0.\n..0..\n\nL\nred\n.....\n.0...\n0....\n.0...\n.....\n\nR\nred\n.....\n...0.\n....0\n...0.\n.....\n\nWallL\nDarkRed\n0....\n0....\n0....\n0....\n0....\n\nWallR\nDarkRed\n....0\n....0\n....0\n....0\n....0\n\nWallU\nDarkRed\n00000\n.....\n.....\n.....\n.....\n\nWallD\nDarkRed\n.....\n.....\n.....\n.....\n00000\n\nWallLR\nDarkRed\n0...0\n0...0\n0...0\n0...0\n0...0\n\nWallUD\nDarkRed\n00000\n.....\n.....\n.....\n00000\n\nWallUL\nDarkRed\n0....\n.....\n.....\n.....\n.....\n\nWallUR\nDarkRed\n....0\n.....\n.....\n.....\n.....\n\nWallDL\nDarkRed\n.....\n.....\n.....\n.....\n0....\n\nWallDR\nDarkRed\n.....\n.....\n.....\n.....\n....0\n\nWallDLR\nDarkRed\n.....\n.....\n.....\n.....\n0...0\n\nWallULR\nDarkRed\n0...0\n.....\n.....\n.....\n.....\n\nWallLUD\nDarkRed\n0....\n.....\n.....\n.....\n0....\n\nWallWireLR\nDarkGrey #61686c\n00000\n00000\n00000\n00000\n00000\n\nDangerL\n#be656d\n0....\n0....\n0....\n0....\n0....\n\nDangerR\n#be656d\n....0\n....0\n....0\n....0\n....0\n\nDangerU\n#be656d\n00000\n.....\n.....\n.....\n.....\n\nDangerD\n#be656d\n.....\n.....\n.....\n.....\n00000\n\nDangerLR\n#be656d\n0...0\n0...0\n0...0\n0...0\n0...0\n\nDangerUD\n#be656d\n00000\n.....\n.....\n.....\n00000\n\nReactor\n#ffffff #dddddd\n01.10\n11.11\n.....\n11.11\n01.10\n\nWarning1\nWhite Black\n01100\n01010\n01100\n01010\n01010\n\nWarning2\nWhite Black\n11100\n10001\n11001\n10001\n11101\n\nWarning3\nWhite Black\n10001\n01010\n11010\n01010\n01001\n\nWarning4\nWhite Black\n10111\n00010\n00010\n00010\n10010\n\nWarning5\nWhite Black\n00110\n01001\n01001\n01001\n00110\n\nWarning6\nWhite Black\n01100\n01010\n01100\n01010\n01010\n\n\n=======\nLEGEND\n=======\n\nPlayerHold = PlayerHoldL or PlayerHoldR or PlayerHoldU or PlayerHoldD\nPlayer = PlayerNormal or PlayerAiming or PlayerHold or DisappearingPlayer or PlayerDying\nDirection = U or D or L or R\nRope = RopeH or RopeV or RopeUL or RopeUR or RopeDL or RopeDR\nRopePullsL = RopeH or RopeUR or RopeDR\nRopePullsR = RopeH or RopeUL or RopeDL\nRopePullsU = RopeV or RopeDL or RopeDR\nRopePullsD = RopeV or RopeUL or RopeUR\n\n(RopeNextToPlayer = RopeNextToPlayerR)\n\nLassoAboveHead = LassoAboveHead1 or LassoAboveHead2 or LassoAboveHead3 or LassoAboveHead4 or LassoAboveHead5 or LassoAboveHead6 or LassoAboveHead7 or LassoAboveHead8\n\nWallWire = WallWireLR\nWall = WallNormal or WallWire\n\nSolid = Wall or Crate or DoorUp\nSolidUncatchable = Wall or DoorUp\nChain = Rope or LassoCaught or Player\nLassoThrown = LassoThrownL or LassoThrownR or LassoThrownU or LassoThrownD or LassoReturn\n\nWallCoverLR = WallL or WallR or WallLR\nWallCoverUD = WallU or WallD or WallUD\nWallCoverCorner = WallUL or WallUR or WallDL or WallDR or WallDLR or WallLUD or WallULR\n\nWallCover = WallCoverLR or WallCoverUD or WallCoverCorner\n\nDangerBorderLR = DangerL or DangerR or DangerLR\nDangerBorderUD = DangerU or DangerD or DangerUD\nDangerBorder = DangerBorderLR or DangerBorderUD\n\nWireL = WireLR or WireUL or WireDL or WireUDL or WireULR or WireDLR or WallWireLR\nWireR = WireLR or WireUR or WireDR or WireUDR or WireULR or WireDLR or WallWireLR\nWireU = WireUD or WireUL or WireUR or WireUDL or WireUDR or WireULR\nWireD = WireUD or WireDL or WireDR or WireUDL or WireUDR or WireDLR\nWire = WireL or WireR or WireU or WireD\n\nDoor = DoorUp or DoorDown\n\nWalkwayStart = WalkwayStartL or WalkwayStartR or WalkwayStartU or WalkwayStartD\n\nPowerTransfer = Button or ElectricFloor or Door or Walkway or WalkwayStart or Reactor\n\nElectrified = ElectricCrate1\n\nElectrifiable = Player or Crate\n\nElectrifyingDir = ElectrifyingL or ElectrifyingR or ElectrifyingU or ElectrifyingD\n\nChainUnder = Wire or PowerTransfer or AndGate\nChainUnderOver = Button or ElectricFloor\nChainOver = Electrifiable or ChainUnderOver\n\nDisappearing = DisappearingCrate or DisappearingPlayer\nSquashed = SquashedPlayer\n\nPowerLevel = Power1 or Power2\n\nElectricFloorCover = ElectricFloor1 or ElectricFloor2\n\nWarning = Warning1 or Warning2 or Warning3 or Warning4 or Warning5 or Warning6\n\n. = Background\n# = WallNormal\nP = PlayerNormal and DoorUp\n* = Crate\n! = ElectricFloor\no = Hole\n@ = Button\n_ = DoorDown\nn = DoorUp\n% = Button and Crate\n2 = AndGate\n& = Crate and ElectricFloor\n═ = WallWireLR\n$ = Reactor\nW = Warning1\nX = Exit and DoorUp\nz = ReactorTrigger and WireUD\n\n\n(ref http://unicode-search.net/unicode-namesearch.pl?term=box%20drawings)\n\n- = WireLR\n| = WireUD\n┐ = WireDL\n┤ = WireUDL\n┘ = WireUL\n┌ = WireDR\n├ = WireUDR\n└ = WireUR\n┬ = WireDLR\n┴ = WireULR\n\n← = WalkwayStartL and Hole\n→ = WalkwayStartR and Hole\n↑ = WalkwayStartU and Hole\n↓ = WalkwayStartD and Hole\n\n\n=======\nSOUNDS\n=======\n\nLassoAboveHead create 86845907\nPlayerAiming destroy 19629107\nsfx0 81428909 (throw lasso)\nLassoCaught create 1688102\nLassoCaught destroy 11489509\nPlayer move 75749507\nsfx1 12358709 (bending rope)\nWasPowered create 56141902 (power on)\nWasPowered destroy 25196302 (power off)\nDisappearing create 96367909\nPlayerDying create 9797709\nPlayerDying destroy 82870709\n\nUndo 77836307\nRestart 41565108\n\nEndLevel 42704508\nEndGame 10304308\n\n(\nTodo:\ntweak electrocution\ngetting crushed\npower on/off triggers too much\nending sound triggers too late\n)\n\n\n================\nCOLLISIONLAYERS\n================\n\nCheckpointTrigger, ReactorTrigger\nDirection, Done, Here\nClaimed\nBackground\nElectricFloor, UpWhenPowered\nWasPowered\nPowered, Unpowered\nElectricFloorCover, Warning, Exit\nHole, Button, Wire, Door, AndGate, Reactor\nDangerBorderLR, WalkwayStart, PowerLevel\nDangerBorderUD, Walkway\nPlayer, PlayerDying, Wall, Crate, Disappearing, Squashed\nWallCoverLR, Electrified\nWallCoverUD, WallCoverCorner\nLassoAboveHead\nLassoThrown, LassoCaught, Rope\nElectrifyingL\nElectrifyingR\nElectrifyingU\nElectrifyingD\nChanged\n\n======\nRULES\n======\n\n([ Changed ] -> [])\n\n([ RopeNextToPlayer ] -> [])\n\n(Lasso aiming animation)\n\n[ up Player Exit ] -> [ Player Exit ] win\n\nright [ Warning1 | | | | | ] -> [ Warning1 | Warning2 | Warning3 | Warning4 | Warning5 | Warning6 ]\n\nlate up [ PlayerAiming | no LassoAboveHead ] -> [ PlayerAiming | LassoAboveHead1 ]\nlate up [ no PlayerAiming | LassoAboveHead ] -> [ | ]\n\nup [ moving Player | LassoAboveHead ] -> [ moving Player | action LassoAboveHead ]\n\n[ stationary LassoAboveHead1 ] -> [ action LassoAboveHead2 ]\n[ stationary LassoAboveHead2 ] -> [ action LassoAboveHead3 ]\n[ stationary LassoAboveHead3 ] -> [ action LassoAboveHead4 ]\n[ stationary LassoAboveHead4 ] -> [ action LassoAboveHead5 ]\n[ stationary LassoAboveHead5 ] -> [ action LassoAboveHead6 ]\n[ stationary LassoAboveHead6 ] -> [ action LassoAboveHead7 ]\n[ stationary LassoAboveHead7 ] -> [ action LassoAboveHead8 ]\n[ stationary LassoAboveHead8 ] -> [ action LassoAboveHead1 ]\n\n(Pressing action)\n\n[ action PlayerHold ] [ LassoCaught Crate ] -> [ PlayerHold ] [ LassoReturn action Crate Changed ] again\n\n[ action PlayerAiming ] -> [ PlayerNormal ]\n[ action PlayerNormal ] -> [ PlayerAiming ]\n\n(Throwing lasso)\n\nleft [ > PlayerAiming | no SolidUncatchable ] -> [ PlayerHoldL | L action LassoThrownL ] sfx0 again\nright [ > PlayerAiming | no SolidUncatchable ] -> [ PlayerHoldR | R action LassoThrownR ] sfx0 again\nup [ > PlayerAiming | no SolidUncatchable ] -> [ PlayerHoldU | U action LassoThrownU ] sfx0 again\ndown [ > PlayerAiming | no SolidUncatchable ] -> [ PlayerHoldD | D action LassoThrownD ] sfx0 again\n\nleft [ L stationary LassoThrownL | no SolidUncatchable ] -> [ RopeH | L action LassoThrownL ] again\nright [ R stationary LassoThrownR | no SolidUncatchable ] -> [ RopeH | R action LassoThrownR ] again\nup [ U stationary LassoThrownU | no SolidUncatchable ] -> [ RopeV | U action LassoThrownU ] again\ndown [ D stationary LassoThrownD | no SolidUncatchable ] -> [ RopeV | D action LassoThrownD ] again\n\n[ LassoThrown stationary Crate no LassoReturn ] -> [ action LassoCaught Crate no Direction ]\n\n[ Player | | | | | LassoThrown Direction ] -> [ Player | | | | | action LassoThrown ]\n\n([ Player | | | | | | | | LassoThrown Direction ] -> [ Player | | | | | | | | action LassoThrown ])\n\n(Moving while attached)\n\n[ > Player | Hole no Walkway ] -> cancel\n\n[ > Player Hole no Walkway ] -> cancel\n\n[ moving Player ] [ LassoCaught Crate ] [ Rope ] -> [ moving Player action Done ] [ moving LassoCaught action Crate ] [ moving Rope ]\n\n[ moving Player | LassoCaught Crate ] -> [ moving Player action Done | moving LassoCaught action Crate ]\n\n[ > Player | stationary Solid ] -> cancel\n\nstartloop\n\n(Start loop)\n\nleft [ action Done | RopePullsL no Done ] -> [ < Done | RopePullsL Here ]\nright [ action Done | RopePullsR no Done ] -> [ < Done | RopePullsR Here ]\nup [ action Done | RopePullsU no Done ] -> [ < Done | RopePullsU Here ]\ndown [ action Done | RopePullsD no Done ] -> [ < Done | RopePullsD Here ]\n[ action Done | LassoCaught no Done ] -> [ < Done | LassoCaught Here ]\n\n(Check for collisions)\n\n[ stationary Here > Chain | stationary Solid ] -> [ action Here > Chain | Solid ] sfx1 (set 'action Here' on collision)\n\n[ < Done | action Here > Chain ] -> cancel\n\n[ action Here ] [ Done > Chain | moving Done ] -> cancel\n\n[ action Here ] [ moving Done ] [ Chain no Done ] -> [ action Here ] [ moving Done ] [ moving Chain ] (update movement of future parts of the chain)\n\n(Handle movement)\n\nleft [ moving Done down RopeUL | action Here ] -> cancel\nleft [ moving Done up RopeDL | action Here ] -> cancel\n\nleft [ moving Done down RopeH | action Here ] -> [ moving Done down RopeUR | action Here ]\nleft [ moving Done down RopeDL | action Here ] -> [ moving Done down RopeV | action Here ]\nleft [ moving Done up RopeH | action Here ] -> [ moving Done up RopeDR | action Here ]\nleft [ moving Done up RopeUL | action Here ] -> [ moving Done up RopeV | action Here ]\n\nleft [ moving Done down Chain | action Here < RopeH ] -> [ moving Done down Chain | action Here < RopeDL ]\nleft [ moving Done down Chain | action Here < RopeUR ] -> [ moving Done down Chain | action Here < RopeV ]\nleft [ moving Done up Chain | action Here < RopeH ] -> [ moving Done up Chain | action Here < RopeUL ]\nleft [ moving Done up Chain | action Here < RopeDR ] -> [ moving Done up Chain | action Here < RopeV ]\n\nright [ moving Done down RopeUR | action Here ] -> cancel\nright [ moving Done up RopeDR | action Here ] -> cancel\n\nright [ moving Done down RopeH | action Here ] -> [ moving Done down RopeUL | action Here ]\nright [ moving Done down RopeDR | action Here ] -> [ moving Done down RopeV | action Here ]\nright [ moving Done up RopeH | action Here ] -> [ moving Done up RopeDL | action Here ]\nright [ moving Done up RopeUR | action Here ] -> [ moving Done up RopeV | action Here ]\n\nright [ moving Done down Chain | action Here < RopeH ] -> [ moving Done down Chain | action Here < RopeDR ]\nright [ moving Done down Chain | action Here < RopeUL ] -> [ moving Done down Chain | action Here < RopeV ]\nright [ moving Done up Chain | action Here < RopeH ] -> [ moving Done up Chain | action Here < RopeUR ]\nright [ moving Done up Chain | action Here < RopeDL ] -> [ moving Done up Chain | action Here < RopeV ]\n\nup [ moving Done left RopeUR | action Here ] -> cancel\nup [ moving Done right RopeUL | action Here ] -> cancel\n\nup [ moving Done left RopeV | action Here ] -> [ moving Done left RopeDR | action Here ]\nup [ moving Done left RopeUL | action Here ] -> [ moving Done left RopeH | action Here ]\nup [ moving Done right RopeV | action Here ] -> [ moving Done right RopeDL | action Here ]\nup [ moving Done right RopeUR | action Here ] -> [ moving Done right RopeH | action Here ]\n\nup [ moving Done left Chain | action Here < RopeV ] -> [ moving Done left Chain | action Here < RopeUL ]\nup [ moving Done left Chain | action Here < RopeDR ] -> [ moving Done left Chain | action Here < RopeH ]\nup [ moving Done right Chain | action Here < RopeV ] -> [ moving Done right Chain | action Here < RopeUR ]\nup [ moving Done right Chain | action Here < RopeDL ] -> [ moving Done right Chain | action Here < RopeH ]\n\ndown [ moving Done left RopeDR | action Here ] -> cancel\ndown [ moving Done right RopeDL | action Here ] -> cancel\n\ndown [ moving Done left RopeV | action Here ] -> [ moving Done left RopeUR | action Here ]\ndown [ moving Done left RopeDL | action Here ] -> [ moving Done left RopeH | action Here ]\ndown [ moving Done right RopeV | action Here ] -> [ moving Done right RopeUL | action Here ]\ndown [ moving Done right RopeDR | action Here ] -> [ moving Done right RopeH | action Here ]\n\ndown [ moving Done left Chain | action Here < RopeV ] -> [ moving Done left Chain | action Here < RopeDL ]\ndown [ moving Done left Chain | action Here < RopeUR ] -> [ moving Done left Chain | action Here < RopeH ]\ndown [ moving Done right Chain | action Here < RopeV ] -> [ moving Done right Chain | action Here < RopeDR ]\ndown [ moving Done right Chain | action Here < RopeUL ] -> [ moving Done right Chain | action Here < RopeH ]\n\n[ Here > Chain | Claimed ] -> cancel\n[ Here > Chain | ] -> [ Here > Chain | Claimed ]\n\n[ moving Done ] -> [ Done ]\n\n[ Here ] -> [ action Done ]\n\n(End loop)\n\nendloop\n\n[ Claimed ] -> []\n[ Here ] -> []\n[ Done ] -> []\n\nlate [ Player Rope ] -> cancel\nlate [ Player LassoCaught ] -> cancel\n\n([ left Chain ] -> [ L action Chain ]\n[ right Chain ] -> [ R action Chain ]\n[ up Chain ] -> [ U action Chain ]\n[ down Chain ] -> [ D action Chain ]\n[ Direction moving Crate ] -> [ Direction Crate ])\n\n[ moving LassoCaught Crate ] -> [ moving LassoCaught moving Crate ]\n\n(Pull the end of the lasso towards the player by one tile)\n\n[ stationary LassoThrown Direction ] -> [ LassoThrown ] again\n\nleft [ stationary LassoThrown | RopePullsL ] -> [ > LassoThrown | ] again\nright [ stationary LassoThrown | RopePullsR ] -> [ > LassoThrown | ] again\nup [ stationary LassoThrown | RopePullsU ] -> [ > LassoThrown | ] again\ndown [ stationary LassoThrown | RopePullsD ] -> [ > LassoThrown | ] again\n\n[ stationary LassoThrown | Player ] -> [ | PlayerNormal no Direction ]\n\n[ LassoThrown Player ] -> [ PlayerNormal ]\n\n[ > Player | ] -> [ > Player Changed | Changed ]\n[ > LassoCaught | ] -> [ > LassoCaught Changed | Changed ]\n\n(Holes)\n\nlate [ Disappearing ] -> [] again\n\nlate [ Crate Hole no Walkway no LassoCaught ] -> [ DisappearingCrate Hole ] again\nlate [ DisappearingCrate ] [ LassoReturn ] -> [ Crate ] [ LassoReturn ]\n\nlate [ Player Hole no Walkway no PlayerHold ] -> [ DisappearingPlayer Hole ]\n\n(Squashing)\n\nlate [ Player DoorUp Changed ] -> [ SquashedPlayer DoorUp ]\n\n(Add graphics)\n\nlate left [ PlayerHold | RopePullsL ] -> [ Claimed PlayerHoldL | RopePullsL ]\nlate right [ PlayerHold | RopePullsR ] -> [ Claimed PlayerHoldR | RopePullsR ]\nlate up [ PlayerHold | RopePullsU ] -> [ Claimed PlayerHoldU | RopePullsU ]\nlate down [ PlayerHold | RopePullsD ] -> [ Claimed PlayerHoldD | RopePullsD ]\n\nlate left [ PlayerHold no Claimed | LassoCaught ] -> [ PlayerHoldL | LassoCaught ]\nlate right [ PlayerHold no Claimed | LassoCaught ] -> [ PlayerHoldR | LassoCaught ]\nlate up [ PlayerHold no Claimed | LassoCaught ] -> [ PlayerHoldU | LassoCaught ]\nlate down [ PlayerHold no Claimed | LassoCaught ] -> [ PlayerHoldD | LassoCaught ]\n\nlate [ Claimed ] -> []\n\n(Draw wall edges)\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\nleft [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallLUD | WallUD ]\nup [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallULR | WallLR ]\n\nright [ WallD | Wall no WallCover ] -> [ WallD | Wall WallDL ]\nleft [ WallD | Wall no WallCover ] -> [ WallD | Wall WallDR ]\n\nright [ WallU | Wall no WallCover ] -> [ WallU | Wall WallUL ]\nleft [ WallU | Wall no WallCover ] -> [ WallU | Wall WallUR ]\n\n(Draw electric floor)\n\nleft [ ElectricFloor no DangerBorderLR | no ElectricFloor ] -> [ ElectricFloor DangerL | ]\nright [ ElectricFloor no DangerBorderLR | no ElectricFloor ] -> [ ElectricFloor DangerR | ]\nright [ ElectricFloor DangerL | no ElectricFloor ] -> [ ElectricFloor DangerLR | ]\n\nup [ ElectricFloor no DangerBorderUD | no ElectricFloor ] -> [ ElectricFloor DangerU | ]\ndown [ ElectricFloor no DangerBorderUD | no ElectricFloor ] -> [ ElectricFloor DangerD | ]\ndown [ ElectricFloor DangerU | no ElectricFloor ] -> [ ElectricFloor DangerUD | ]\n\n[ ElectricFloor no Powered ] -> [ ElectricFloor no ElectricFloorCover ]\n\n[ Player no Changed ] [ ElectricFloor Powered no ElectricFloorCover no Claimed ] -> [ Player ] [ ElectricFloor Powered ElectricFloor1 Claimed ]\n[ Player no Changed ][ ElectricFloor Powered ElectricFloor1 no Claimed ] -> [ Player ] [ ElectricFloor Powered ElectricFloor2 Claimed ]\n[ Player no Changed ][ ElectricFloor Powered ElectricFloor2 no Claimed ] ->[ Player ] [ ElectricFloor Powered no ElectricFloor Claimed ]\n\nlate [ Claimed ] -> []\n\n(Power flow)\n\nlate [ Changed no ChainUnderOver ] -> []\n\nlate [ Changed Electrifiable | no Changed Electrifiable ] -> [ Changed Electrifiable | Changed Electrifiable ]\n+ late [ Changed ChainUnder | no Changed ChainUnder ] -> [ Changed ChainUnder | Changed ChainUnder ]\n\nlate [ Changed Powered ] -> [ Changed ]\nlate [ Changed Walkway ] -> [ Changed ]\nlate [ PowerLevel ] -> []\nlate [ Changed Electrified ] -> [ Changed ]\nlate [ Changed ElectrifyingDir ] -> [ Changed ]\n\nlate [ Button Crate ] -> [ Button Crate Powered ]\nlate [ Button Player ] -> [ Button Player Powered ]\n\nstartloop\n\nlate left [ WireL no Powered | Powered ] -> [ WireL Powered | Powered ]\nlate right [ WireR no Powered | Powered ] -> [ WireR Powered | Powered ]\nlate up [ WireU no Powered | Powered ] -> [ WireU Powered | Powered ]\nlate down [ WireD no Powered | Powered ] -> [ WireD Powered | Powered ]\n\nlate left [ WireL Powered no Claimed | AndGate no Claimed ] -> [ WireL Powered Claimed | AndGate Claimed ]\nlate right [ WireR Powered no Claimed | AndGate no Claimed ] -> [ WireR Powered Claimed | AndGate Claimed ]\nlate up [ WireU Powered no Claimed | AndGate no Claimed ] -> [ WireU Powered Claimed | AndGate Claimed ]\nlate down [ WireD Powered no Claimed | AndGate no Claimed ] -> [ WireD Powered Claimed | AndGate Claimed ]\n\nlate left [ WireL Powered | no Powered no AndGate ] -> [ WireL Powered | Powered ]\nlate right [ WireR Powered | no Powered no AndGate ] -> [ WireR Powered | Powered ]\nlate up [ WireU Powered | no Powered no AndGate ] -> [ WireU Powered | Powered ]\nlate down [ WireD Powered | no Powered no AndGate ] -> [ WireD Powered | Powered ]\n\nlate [ AndGate Power1 Claimed ] -> [ AndGate Power2 Powered ]\nlate [ AndGate no PowerLevel Claimed ] -> [ AndGate Power1 no Powered ]\nlate [ AndGate Claimed ] -> [ AndGate no Powered ]\n\nlate [ PowerTransfer Powered | PowerTransfer no Powered ] -> [ PowerTransfer Powered | PowerTransfer Powered ]\n\nlate left [ WalkwayStartL Powered | Hole no WalkwayStart ] -> [ WalkwayStartL Powered | WalkwayStartL Hole ]\nlate right [ WalkwayStartR Powered | Hole no WalkwayStart ] -> [ WalkwayStartR Powered | WalkwayStartR Hole ]\nlate up [ WalkwayStartU Powered | Hole no WalkwayStart ] -> [ WalkwayStartU Powered | WalkwayStartU Hole ]\nlate down [ WalkwayStartD Powered | Hole no WalkwayStart ] -> [ WalkwayStartD Powered | WalkwayStartD Hole ]\n\nlate [ WalkwayStart Powered ] -> [ WalkwayStart Walkway Powered ]\n\nlate [ Electrifiable no Electrified ElectricFloor Powered ] -> [ Electrifiable Electrified ElectricFloor Powered ]\n\nlate [ Electrifiable Electrified | Electrifiable no Electrified ] -> [ Electrifiable Electrified | Electrifiable Electrified ]\n\nlate [ Electrifiable Electrified ElectricFloor no Powered ] -> [ Electrifiable Electrified ElectricFloor Powered ]\n\nlate [ Electrified LassoCaught ] [ Player ] -> [ Electrified LassoCaught ] [ Player Electrified ]\nlate [ LassoCaught ] [ Electrified Player ] -> [ Electrified LassoCaught ] [ Player Electrified ]\n\nendloop\n\nlate [ Claimed ] -> []\n\nlate [ Door Powered no UpWhenPowered no CheckpointTrigger ] [ Player no Button no PlayerHold ] -> [ Door Powered CheckpointTrigger ] [ Player ] checkpoint\n\nlate [ WalkwayStart Powered no CheckpointTrigger ] [ Player no Button no PlayerHold ] -> [ WalkwayStart Powered CheckpointTrigger ] [ Player ] checkpoint\n\nlate left [ Hole | WalkwayStartL ] -> [ Hole | ]\nlate right [ Hole | WalkwayStartR ] -> [ Hole | ]\nlate up [ Hole | WalkwayStartU ] -> [ Hole | ]\nlate down [ Hole | WalkwayStartD ] -> [ Hole | ]\n\nlate [ Wire no Powered ] -> [ Wire Unpowered ]\nlate [ PowerTransfer no Powered ] -> [ PowerTransfer Unpowered ]\n\nlate [ Door Powered UpWhenPowered ] -> [ DoorUp Powered UpWhenPowered ]\nlate [ Door no Powered UpWhenPowered ] -> [ DoorDown UpWhenPowered ]\nlate [ Door Powered no UpWhenPowered ] -> [ DoorDown Powered ]\nlate [ Door no Powered no UpWhenPowered ] -> [ DoorUp ]\n\n(Electrocute)\n\nlate left [ Electrified | Electrified ] -> [ Electrified ElectrifyingL | Electrified ElectrifyingR ]\nlate up [ Electrified | Electrified ] -> [ Electrified ElectrifyingU | Electrified ElectrifyingD ]\n\nlate [ PlayerDying Electrified no Claimed ] -> [ PlayerNormal Electrified Claimed ]\nlate [ Player Electrified no Claimed ] -> [ PlayerDying Electrified Claimed ]\n\nlate [ Player Electrified ] -> [ Player ]\n\nlate [ Player Claimed ] -> again\n\nlate [ Claimed ] -> []\n\nlate [ Player DoorUp no Changed no SquashedPlayer ] -> [ Player DoorDown ]\n\nlate [ Changed ] -> []\n\nlate [ Powered Reactor ] -> win\n\nlate [ ReactorTrigger Player ] [ ReactorTrigger ] -> checkpoint\nlate [ ReactorTrigger Player ] [ ReactorTrigger ] -> message The reactor core! I have to take it down by any means necessary.\nlate [ ReactorTrigger Player ] [ ReactorTrigger no Player ] -> [ ReactorTrigger Player ] []\n\nlate [ ReactorTrigger Player ] -> [ Player ]\n\nlate [ Powered no WasPowered ] -> [ Powered WasPowered ]\nlate [ no Powered WasPowered ] -> []\n\n==============\nWINCONDITIONS\n==============\n\n(all button on Crate\nno LassoCaught\nno Rope\nno LassoReturn)\n\n=======\nLEVELS\n=======\n\n(############################################\n#.........##.........##..!......##.........#\n#...!!!!..##.......┌-----!......##.........#\n#....*|...##.......|.##..!......##.........#\n#.!.!!!!!!##!!!!!!!!!##.........##.........#\n#.!--┘.|..##.|..|....##.!!!.....##.........#\n#.&...!!!!##.!..|....##..|...!!!##.........#\n#.*.....└----!..├-@..##..|...!..##.........#\n#!&!......##.!..|....##..└-┐.!..##.........#\n#.........##....|....##....|.!..##.........#\n################n##########n#!..############\n################n##########n#!..############\n############....|....##....|.!......oo.....#\n############@---2---@##.@..|.!-----┐oo.....#\n############.........##.|..|.!.....└!!--%..#\n############@---┬---@##.2--┘.!!!##..oo..|..#\n############...o↓o...##.|.......##..oo..|..#\n############ooooooooooo.|.oo#...##..oooo↓oo#\n############oo.....oooo.|.oo#!!!##..ooooooo#\n############oo.....oooo.|.oo#.|.##.........#\n############oo.....ooooo↓ooo#.|.##.........#\n################.ooooooooooo##|##########.##\n################.ooooooooooo##|##########.##\n#....@----------┐oooooooooooo.|.##┌----!...#\n#.oooooooooooooo↓oooooo...ooo.├---┘...o!...#\n#.ooooooooooooooooooooo.@.ooo!&!##....o!┐..#\n#.oo...oooooooo...ooooo.|.ooo...####..oo|###\n#*oo.#.ooooooo←-@.oooooo|oooo...####..oo|###\n#.oo...oooooooo...ooo##o|o##########..oo|###\n#.oooooooooooooo.oooo##.|.......##....o!┘..#\n#.oooooooooooooo.....nn-┴-------nn┐...o!.*.#\n#.ooooooooooooooooooo##.........##└----!-┐.#\n###########################n#############n##\n###########################n#############n##\n#.........##.........##....|....##w........#\n#.......*.##.........##..@-2-@..##.........#\n#.........##......┌--nn-┐.......##o!!!o!!!o#\n#.........##...%..|..##.|.......##o!%ooo%!o#\n#p...┌--@.##...|..|..##!!!!#!!!!##o!!!!!!!o#\n#....|....##!!!!!!!!!##....#.|..##.........#\n#....|....##.........##.%--═-┘..##.!!!-!!!.#\n#....|....##.........##....#..*.##.!%!-!%!.#\n#....|....##.........##....#....##.!!!-!!!.#\n#####n########n##############..###.|||.|||.#\n#####n########n##############..###.|||.|||.#\n#.........##..|..oo..##...ooo...##.!!!-!!!.#\n#....*....##..|..oo..##...ooo...##.!%!-!%!.#\n#.........##..└@.oo..##...ooo...##.!!!-!!!.#\n#.........##.....oo..##...ooo.@.##.|||.|||.#\n#.........##.....oo..##...ooo.|.##.|||.|||.#\n#oooooooooooooooooo.......oo←-┘.##.!!!-!!!.#\n#oooooo↑oooooo↑oooo.......oo←...##.!%!-!%!.#\n#..@---┘......|..oo..##...ooo...##.!!!┬!!!.#\n#.............@..oo..##...ooo...##...|||...#\n#################oo##################|||####\n#####################################|||####\n#.........##.........##.........##@%!┴┴┘...#\n#.........##.........##.........##%@!......#\n#.........##.........##.........##@%!.*.*..#\n#.........##.........##.........##!!!......#\n#.........##.........##.........##ooooooooo#\n#.........##.........##.........##ooooooooo#\n#.........##.........##.........##oo!!!!!oo#\n#.........##.........##.........##oo!┴┬┴!oo#\n#.........##.........##.........##oo!┬$┬!oo#\n##################################oo!┤|├!oo#)\n\n###########################x#####\n#.........##.........##....|....#\n#.......*.##.........##..@-2-@..#\n#.........##......┌--nn-┐.......#\n#.........##...%..|..##.|.......#\np....┌--@.##...|..|..##!!!!#!!!!#\n#....|....##!!!!!!!!!##....#.|..#\n#....|....##.........##.%--═-┘..#\n#....|....##.........##....#..*.#\n#....|....##.........##....#....#\n#####n########n##############..##\n#####n########n##############..##\n#.........##..|..oo..##...ooo...#\n#....*....##..|..oo..##...ooo...#\n#.........##..└@.oo..##...ooo...#\n#.........##.....oo..##...ooo.@.#\n#.........##.....oo..##...ooo.|.#\n#oooooooooooooooooo.......oo←-┘.#\n#oooooo↑oooooo↑oooo.......oo←...#\n#..@---┘......|..oo..##...ooo...#\n#.............@..oo..##...ooo...#\n#################oo##############\n\n#######################################################\n#.........##.........##..!......##.........##.........#\n#...!!!!!.##.......┌-----!......##.........##.........#\n#....*|...##.......|.##..!......##.........##.........#\n#.!.!!!!!!##!!!!!!!!!##.........##.........##.........#\n#.!--┘.|..##.|..|....##.!!!.....##.........##.........#\n#.&..!!!!!##.!..|....##..|...!!!##.........##.........#\n#.*.....├----!..├-@..##..|...!..##.........##.........#\n#!&!..!!!!##.!..|....##..└-┐.!..##.........##.........#\n#.........##....|....##....|.!..##.........##.........#\n################n##########n#!..#######################\n################n##########n#!..#######################\n############....|....##....|.!......oo.....##.........#\n############@---2---@##.@..|.!-----┐oo.....##.........#\n############.........##.|..|.!.....└!!--%..##.........#\n############@---┬---@##.2--┘.!!!##..oo..|..##.........#\n############...o↓o...##.|.......##..oo..|..##.........#\n############ooooooooooo.|.oo#...##..oooo↓oo#═.........#\n############oo.....oooo.|.oo#!!!##..ooooooo##.........#\n############oo.....oooo.|.oo#.|.##.........##.........#\n############oo.....ooooo↓ooo#.|.##.........##.........#\n################.ooooooooooo##|##########.#######n#####\n################.ooooooooooo##|##########.#######x#####\n#....@----------┐oooooooooooo.|.##┌----!...##%!--┘..!%#\n#.oooooooooooooo↓oooooo...ooo.├---┘...o!...##!!!!!..!!#\n#.ooooooooooooooooooooo.@.ooo!&!##....o!┐..##!.|.!..|.#\n#.oo...oooooooo...ooooo.|.ooo...####..oo|####!.!.!.!|.#\n#*oo.#.ooooooo←-@.oooooo|oooo...####..oo|####!.!.!-!!!#\n#.oo...oooooooo...ooo##o|o##########..oo|####!.!.!.!..#\n#.oooooooooooooo.oooo##.|.......##....o!┘..##!.!...|..#\n#.oooooooooooooo.....nn-┴-------nn┐...o!.*┌nn..!!!!!!!#\n#.ooooooooooooooooooo##.........##└----!--┘##!!!....!%#\n###########################p###########################\n\n######################\n#....................#\n#....................#\n#oooooooooooo!!!o!!!oo\n#ooo↑oooooooo!%ooo%!oo\n#oo.|.ooooooo!!!!!!!oo\n#oo.|.oooo##.........#\n#o!!!!!!!o##.!!!-!!!.#\n#o!....@!o##.!%!-!%!.#\n#o!!!!!!!o##.!!!-!!!.#\n#oooo...oo##.|||.|||.#\n#oooo...oo##.|||.|||.#\n#oo┌--┐...##.!!!-!!!.#\n#oo@..|...##.!%!-!%!.#\n#oo###n#####.!!!-!!!.#\n#oo.......##.|||.|||.#\n#oo.......##.|||.|||.#\n#oo..*.*..##.!!!-!!!.#\n#oo.......##.!%!-!%!.#\n#oo.......##.!!!┬!!!.#\n#oo.......##...|||...#\n######p########|||####\n######n########zzz####\n#%!---┘.!%##@%!┴┴┘...#\n#!!!!!..!!##%@!......#\n#!.|.!..|.##@%!.*.*..#\n#!.!.!.!|.##!!!......#\n#!.!.!-!!!##ooooooooo#\n#!.!.!.!..##ooooooooo#\n#!.!...|..##oo!!!!!oo#\nn..!!!!!!!##oo!┴┬┴!oo#\n#!!!....!%##oo!┬$┬!oo#\n############oo!┤|├!oo#\n\n(#######################################################\n#.........##.....!...##.........##...#.....##.........#\n#...!!!!!.##.....!-┬-nn.........##...#.....##.........#\n#....*|...##...┌-!.|.##.........##.*.#...@.##.........#\n#.!.!!!!!!##...|.##|.##.........##...#...|.##.........#\n#.!-┬┘.|..##...@.##|.##.!!!.....##.@-n-@.2.##.........#\n#.&.|!!!!!##.!...##|.##..|...!!!##...#...|.##.........#\n#.*.|...├----!...!.|.##..|...!..##.*.#...@.##.........#\n#!!!┘.!!!!##.!--┐!-┘.##..└┐..!..##...#.....##.........#\n#.........##....|!...##...|..!..##...#.....##.........#\n################n#########n##!..#######################)\n\n\nmessage BOOM\nmessage You will be remembered as a hero\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",0,"tick","tick","tick",0,"tick","tick","tick","tick","tick","tick",0,"tick","tick","tick",4,"tick","tick","tick","tick","tick","tick","tick","tick","tick",0,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick",0,"tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick",2,"tick","tick","tick",3,"tick","tick","tick",4,"tick","tick",0,"tick","tick","tick","tick","tick","tick",3,"tick","tick","tick","tick","tick",0,"tick","tick","tick","tick",3,"tick","tick","tick","tick","tick","tick","tick","tick",3,"tick","tick","tick","tick","tick","tick",0,"tick","tick","tick","tick",0,"tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",4,"tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background walldr wallnormal:0,background wallnormal wallr:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background wallnormal wallur:2,\n0,1,1,1,1,1,1,background walld wallnormal wallr:3,background doorup unpowered:4,background wallnormal wallr wallu:5,2,background walld wallnormal:6,background:7,7,background hole:8,8,8,8,8,8,8,8,\n8,8,8,8,8,8,8,8,8,8,background wallnormal wallu:9,6,background button crate powered waspowered:10,background dangerl dangeru electricfloor powered waspowered:11,background dangerlr electricfloor powered waspowered:12,12,12,12,background dangerd dangerlr electricfloor powered waspowered:13,7,background dangerl dangerud electricfloor powered waspowered:14,9,\n6,7,7,8,8,8,8,background dangerl dangeru electricfloor unpowered:15,background dangerlr electricfloor unpowered:16,background dangerd dangerl electricfloor unpowered:17,8,8,8,8,8,8,8,8,8,8,8,9,\n6,background dangerlr dangeru electricfloor powered waspowered:18,background dangerd electricfloor powered waspowered:19,7,7,7,7,7,7,background dangerud electricfloor powered waspowered:20,9,6,7,7,8,8,7,7,background dangerud electricfloor unpowered:21,7,21,8,\n8,background unpowered wiredr:22,background button unpowered:23,background walll wallnormal wallud:24,7,7,7,7,7,7,9,6,background powered waspowered wirelr:25,20,background powered waspowered wireud:26,18,12,12,12,background dangerl electricfloor powered waspowered:27,background dangerd dangerr electricfloor powered waspowered:28,9,\n6,7,7,8,background hole unpowered walkwaystartu:29,background unpowered wireud:30,30,21,7,21,8,8,background unpowered wirelr:31,7,background wallnormal wallud:32,7,7,7,7,7,7,9,\n6,25,20,7,7,7,7,7,20,7,9,6,7,7,8,8,7,7,21,7,21,7,\n7,31,7,background wallnormal wallr wallud:33,7,background playernormal:34,7,7,7,7,5,3,25,background dangerr dangeru electricfloor powered waspowered:35,12,12,12,13,7,20,7,9,\n6,7,7,8,8,8,8,21,7,21,7,7,background unpowered wiredl:36,30,4,7,7,7,7,7,7,background checkpointtrigger doordown powered waspowered:37,\n37,background powered waspowered wireul:38,7,7,7,25,7,7,20,7,9,6,7,7,8,8,8,8,21,23,21,7,\n7,7,7,24,7,7,background crate:39,7,7,7,background walll wallnormal wallu:40,background walld walll wallnormal:41,7,7,7,18,27,13,26,20,7,9,\n6,7,7,8,8,8,8,background dangerr dangeru electricfloor unpowered:42,16,background dangerd dangerr electricfloor unpowered:43,8,8,7,7,32,7,7,39,7,7,7,9,\n6,18,background dangerd dangerl electricfloor powered waspowered:44,26,26,20,7,7,background dangeru electricfloor powered waspowered:45,13,9,6,7,7,8,8,8,8,8,8,8,8,\n8,7,7,32,7,7,7,7,7,7,9,6,10,background dangerr dangerud electricfloor powered waspowered:46,7,7,46,7,7,46,10,9,\n6,7,7,8,8,8,40,background walll wallnormal:47,47,47,47,47,47,47,background walllud wallnormal:48,47,47,47,47,47,47,background wallnormal wallul:49,\nbackground walldl wallnormal:50,47,47,47,47,47,47,47,47,47,49,6,7,7,8,8,8,5,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,\n6,7,7,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,\n6,background button powered waspowered:51,10,51,14,8,8,8,8,8,8,6,7,7,11,12,44,7,11,12,44,26,\n26,11,12,44,26,26,11,12,44,7,9,6,10,51,10,20,8,8,8,8,8,8,\n6,7,7,20,10,20,7,20,10,20,26,26,20,10,20,26,26,20,10,20,7,5,\n3,18,12,12,28,8,8,15,16,16,16,6,7,7,46,8,20,7,35,12,28,26,\n26,35,12,28,26,26,35,12,28,26,26,background powered reactortrigger waspowered wireud:52,background powered waspowered wireulr:53,7,7,7,8,8,21,background unpowered wireulr:54,background unpowered wiredlr:55,background unpowered wireudl:56,\n6,7,7,8,8,20,7,25,25,25,7,7,25,25,25,7,7,25,25,background powered waspowered wiredlr:57,26,26,\n52,53,7,39,7,8,8,21,55,background reactor unpowered:58,30,6,7,7,14,8,20,7,11,12,44,26,\n26,11,12,44,26,26,11,12,44,26,26,52,38,7,7,7,8,8,21,54,55,background unpowered wireudr:59,\n6,7,7,20,10,20,7,20,10,20,26,26,20,10,20,26,26,20,10,20,7,40,\n41,7,7,39,7,8,8,42,16,16,16,6,7,7,35,12,28,7,35,12,28,26,\n26,35,12,28,26,26,35,12,28,7,9,6,7,7,7,7,8,8,8,8,8,8,\n6,7,7,8,8,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,\n6,7,7,7,7,8,8,8,8,8,8,50,47,41,8,8,8,40,47,47,47,47,\n47,47,47,47,47,47,47,47,47,47,49,50,47,47,47,47,47,47,47,47,47,47,\n",2,"1627778403808.806"] ], [ `gallery: train braining`, - ["title Train Braining\nauthor Alan Hazelden\nhomepage http://www.draknek.org\n\ncolor_palette pastel\n\nnoaction\n\nagain_interval 0.08\nkey_repeat_interval 0.16\n\n(verbose_logging)\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nStart\ntransparent\n\nDelay\ntransparent\n\nMoveTrigger\ntransparent\n\nTutorial\ntransparent\n\nBackground\nlightgreen green\n01000\n00110\n10010\n10100\n01001\n\nPickupBG\nlightgrey lightgreen\n00000\n01110\n01110\n01110\n00000\n\nWater1\nblue white lightblue\n20010\n02002\n12020\n00220\n02002\n\nWater2\nblue white lightblue\n02000\n20210\n00202\n01022\n20200\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\n(Player\nyellow black\n.000.\n01010\n10001\n01110\n.000.)\n\nFromD\ngrey darkbrown\n.....\n.....\n1...1\n0...0\n0...0\n\nFromU\ngrey darkbrown\n0...0\n0...0\n1...1\n.....\n.....\n\nFromL\ngrey darkbrown\n001..\n.....\n.....\n.....\n001..\n\nFromR\ngrey darkbrown\n..100\n.....\n.....\n.....\n..100\n\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\nCrossing\ngrey grey\n01110\n1...1\n1...1\n1...1\n01110\n(01010\n1...1\n0...0\n1...1\n01010)\n\nDRTrack\ngrey darkbrown\n...00\n..0..\n.01..\n0..1.\n0...1\n\nDLTrack\ngrey darkbrown\n00...\n..0..\n..10.\n.1..0\n1...0\n\nULTrack\ngrey darkbrown\n1...0\n.1..0\n..10.\n..0..\n00...\n\nURTrack\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\n(Smoke1\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\nBluePassengerWaiting\nDarkBrown Blue DarkBrown DarkBlue\n..0..\n.111.\n21112\n23332\n.3.3.\n\nBluePassengerOnCart\nDarkBrown Blue DarkBrown DarkBlue\n.....\n..0..\n.111.\n.111.\n.....\n\nBlueTarget\nlightblue darkbrown\n00000\n01110\n01110\n01110\n00000\n\nRedPassengerWaiting\nDarkBrown Red DarkBrown DarkRed\n..0..\n.111.\n21112\n23332\n.3.3.\n\nRedPassengerOnCart\nDarkBrown Red DarkBrown DarkRed\n.....\n..0..\n.111.\n.111.\n.....\n\nRedTarget\nlightRed darkbrown\n00000\n01110\n01110\n01110\n00000\n\nZero 0\nWhite Black\n10011\n01101\n01101\n01101\n10011\n\nOne 1\nWhite Black\n10011\n11011\n11011\n11011\n10001\n\nTwo 2\nWhite Black\n10011\n11101\n11011\n10111\n10001\n\nThree 3\nWhite Black\n10011\n11101\n11011\n11101\n10011\n\nFour 4\nWhite Black\n10101\n10101\n10001\n11101\n11101\n\nFive 5\nWhite Black\n10001\n10111\n10011\n11101\n10011\n\nSix 6\nWhite Black\n11001\n10111\n10001\n10110\n11001\n\nSeven 7\nWhite Black\n10001\n11101\n11011\n11011\n11011\n\nEight 8\nWhite Black\n11001\n10110\n11001\n10110\n11001\n\nNine 9\nWhite Black\n11001\n10110\n11000\n11110\n11001\n\nBlack\nblack\n\n=======\nLEGEND\n=======\n\n. = Background\nM = Mountain\n% = Forest\n~ = Water1\n, = Beach\n? = Tutorial\n\n| = VTrack\n- = HTrack\n+ = Crossing\n\n# = Black\n\nConnectsL = DLTrack or ULTrack or HTrack\nConnectsR = DRTrack or URTrack or HTrack\nConnectsU = ULTrack or URTrack or VTrack\nConnectsD = DLTrack or DRTrack or VTrack\n\nU = FromD and Start\nD = FromU and Start\nL = FromR and Start\nR = FromL and Start\n\n* = BluePassengerWaiting and PickupBG\nO = BlueTarget\n\n@ = RedPassengerWaiting and PickupBG\n! = RedTarget\n\nPlayer = FromD or FromU or FromL or FromR\n\nWater = Water1 or Water2\n\nTrack = VTrack or HTrack or URTrack or ULTrack or DRTrack or DLTrack or Crossing\n\nTrain = UTrain or DTrain or LTrain or RTrain\n\nTarget = BlueTarget or RedTarget\n\nPassengerWaiting = BluePassengerWaiting or RedPassengerWaiting\nPassengerOnCart = BluePassengerOnCart or RedPassengerOnCart\n\nPassenger = PassengerWaiting or PassengerOnCart\n\nNumber = 0 or 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9\n\nSolid = Mountain or Forest or Water or Black or Number\n\n=======\nSOUNDS\n=======\n\nSFX0 91301709\nSFX1 53409305\nSFX2 38557307\nSFX3 99431502\n\nEndLevel 78709508\n\nTrain Move 88405308\n\nTrack Create 24611507\n\nUndo 77031907\nTrack Destroy 77031907\n\nPassengerOnCart Create 77365107\nPassengerWaiting Create 18891907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Beach, Number, Black\nTrack, Solid\nTrain, Cart, PickupBG\nStart, Delay, MoveTrigger, Target\nTutorial\nPassenger\n\n======\nRULES\n======\n\n(spawn train)\n\nleft [ Track | Start Player ] -> [ LTrain Track Start | Player ]\nright [ Track | Start Player ] -> [ RTrain Track Start | Player ]\nup [ Track | Start Player ] -> [ UTrain Track Start | Player ]\ndown [ Track | Start Player ] -> [ DTrain Track Start | Player ]\n\n[ Start | Track no Train no Cart ] -> [ Start | Track Cart Start ]\n\n[ Start ] -> []\n\n(lay track)\n\n[ > Player | Passenger ] -> cancel\n[ > Player | Target ] -> cancel\n[ > Player | Solid ] -> cancel\n[ > Player | Train ] -> cancel\n\nleft [ left FromL | ConnectsL no Train ] -> [ | FromL ]\nleft [ left FromL | ConnectsU no Train ] -> [ | FromU ]\nleft [ left FromL | ConnectsD no Train ] -> [ | FromD ]\n\nright [ right FromR | ConnectsR no Train ] -> [ | FromR ]\nright [ right FromR | ConnectsU no Train ] -> [ | FromU ]\nright [ right FromR | ConnectsD no Train ] -> [ | FromD ]\n\nup [ up FromU | ConnectsL no Train ] -> [ | FromL ]\nup [ up FromU | ConnectsR no Train ] -> [ | FromR ]\nup [ up FromU | ConnectsU no Train ] -> [ | FromU ]\n\ndown [ down FromD | ConnectsL no Train ] -> [ | FromL ]\ndown [ down FromD | ConnectsR no Train ] -> [ | FromR ]\ndown [ down FromD | ConnectsD no Train ] -> [ | FromD ]\n\n[ left FromU no Track ] -> [ left FromR ULTrack ]\n[ right FromU no Track ] -> [ right FromL URTrack ]\n[ down FromU no Track ] -> [ down FromU VTrack ]\n\n[ left FromD no Track ] -> [ left FromR DLTrack ]\n[ right FromD no Track ] -> [ right FromL DRTrack ]\n[ up FromD no Track ] -> [ up FromD VTrack ]\n\n[ up FromL no Track ] -> [ up FromD ULTrack ]\n[ down FromL no Track ] -> [ down FromU DLTrack ]\n[ right FromL no Track ] -> [ right FromL HTrack ]\n\n[ up FromR no Track ] -> [ up FromD URTrack ]\n[ down FromR no Track ] -> [ down FromU DRTrack ]\n[ left FromR no Track ] -> [ left FromR HTrack ]\n\nleft [ ConnectsL | < Player ] -> [ ConnectsL MoveTrigger | ]\nright [ ConnectsR | < Player ] -> [ ConnectsR MoveTrigger | ]\nup [ ConnectsU | < Player ] -> [ ConnectsU MoveTrigger | ]\ndown [ ConnectsD | < Player ] -> [ ConnectsD MoveTrigger | ]\n\nlate [ Player Track ] -> cancel\n\n(start train)\n\n[ MoveTrigger ] [ UTrain ] -> [ MoveTrigger ] [ up UTrain ]\n[ MoveTrigger ] [ DTrain ] -> [ MoveTrigger ] [ down DTrain ]\n[ MoveTrigger ] [ LTrain ] -> [ MoveTrigger ] [ left LTrain ]\n[ MoveTrigger ] [ RTrain ] -> [ MoveTrigger ] [ right RTrain ]\n\n[ Delay ] [ moving Train ] -> [ Delay ] [ Train ]\n\n[ Delay ] [ MoveTrigger ] -> [ Delay ] [ action MoveTrigger ]\n\n[ > Train | Solid ] -> cancel\n[ > Train | Passenger ] -> cancel\n\n(cart follows train)\n\nleft [ MoveTrigger Cart ConnectsL | Cart ] -> [ MoveTrigger < Cart ConnectsL | Cart ]\nright [ MoveTrigger Cart ConnectsR | Cart ] -> [ MoveTrigger < Cart ConnectsR | Cart ]\nup [ MoveTrigger Cart ConnectsU | Cart ] -> [ MoveTrigger < Cart ConnectsU | Cart ]\ndown [ MoveTrigger Cart ConnectsD | Cart ] -> [ MoveTrigger < Cart ConnectsD | Cart ]\n\n[ stationary Cart | moving Train ] -> [ > Cart | moving Train ] again\n[ stationary Cart | moving Cart ] -> [ > Cart | moving Cart ]\n\n[ PassengerOnCart moving Cart ] -> [ moving PassengerOnCart moving Cart ]\n\n(train turns when entering corners)\nup [ > UTrain | DRTrack ] -> [ > RTrain | DRTrack ]\nup [ > UTrain | DLTrack ] -> [ > LTrain | DLTrack ]\n\nright [ > RTrain | DLTrack ] -> [ > DTrain | DLTrack ]\nright [ > RTrain | ULTrack ] -> [ > UTrain | ULTrack ]\n\ndown [ > DTrain | URTrack ] -> [ > RTrain | URTrack ]\ndown [ > DTrain | ULTrack ] -> [ > LTrain | ULTrack ]\n\nleft [ > LTrain | DRTrack ] -> [ > DTrain | DRTrack ]\nleft [ > LTrain | URTrack ] -> [ > UTrain | URTrack ]\n\n(Passengers get on/off)\n\nlate [ Delay no PassengerWaiting no PassengerOnCart ] -> [] again\n\nlate [ BluePassengerWaiting Delay no Cart no Target | Cart no PassengerOnCart ] -> [ Delay | Cart BluePassengerOnCart ] again\nlate [ RedPassengerWaiting Delay no Cart no Target | Cart no PassengerOnCart ] -> [ Delay | Cart RedPassengerOnCart ] again\n\nlate [ PassengerWaiting Delay no Cart no Target | Cart PassengerOnCart ] -> [ PassengerWaiting | Cart PassengerOnCart ] again\nlate [ PassengerWaiting no Cart no Delay no Target | Cart no PassengerOnCart ] -> [ PassengerWaiting Delay | Cart ] again\n\nlate [ BluePassengerOnCart Delay Cart | no PassengerWaiting BlueTarget ] -> [ Delay Cart | BluePassengerWaiting BlueTarget ] again\nlate [ RedPassengerOnCart Delay Cart | no PassengerWaiting RedTarget ] -> [ Delay Cart | RedPassengerWaiting RedTarget ] again\n\nlate [ BluePassengerOnCart Cart no Delay | no PassengerWaiting BlueTarget ] -> [ BluePassengerOnCart Cart Delay | BlueTarget ] again\nlate [ RedPassengerOnCart Cart no Delay | no PassengerWaiting RedTarget ] -> [ RedPassengerOnCart Cart Delay | RedTarget ] again\n\n(Train leaves world)\n\n[ stationary MoveTrigger Train ] [ Tutorial ] [ Passenger no Target ] -> message You have to take all the passengers to the blue station\n\n[ stationary MoveTrigger Train ] -> [ MoveTrigger ] again\n[ MoveTrigger Cart ] -> [ MoveTrigger ] again\n[ MoveTrigger PassengerOnCart ] -> [ MoveTrigger ] again\n\n==============\nWINCONDITIONS\n==============\n\nNo train\nNo cart\nall target on passengerWaiting\n\n======= \nLEVELS\n=======\n\nmessage Being a train route planner is very satisfying\n\n.......|.....\n.............\n.............\n....%........\n..........%..\n---r.........\n.............\n......%......\n.............\n.............\n\nmessage Until you have to deal with passengers\n\n.............\n.............\n..o......*...\n..o......*...\n..o......*..-\n..o......*...\n......U......\n......|......\n.?....|......\n......|......\n1############\n\n.............\n..o......*...\n..o......*...\n%.o......*...\n..o......*..-\n..o......*...\n..o.....%*...\n.............\n---r.........\n.............\n2############\n\n.....|....\n..%.......\n..oo...*..\n..oo%..*..\n..........\n...%...*..\n.......*..\n..........\n---r......\n..........\n3#########\n\n............\n.....%......\n....@..!....\n....@..!.%..\n...........-\n.u..*..o.%..\n.|..*..o....\n.|....%.....\n.|..........\n4###########\n\n(............\n-...........\n........**..\n........**..\n.!..........\n.!..........\n.!.....o....\n.!.....o....\n.......o..u.\n...@@..o..|.\n...@@.....|.\n..........|.)\n\n............\n............\n-......o..*.\n.......o.%*.\n.......o..*.\n..@@@.......\n............\n...%........\n............\n..!!!...l---\n............\n5###########\n\n..............\n..............\n....!!!.**....\n..............\n.....@........\n---r.........-\n.....*........\n..............\n....ooo.@@....\n..............\n..............\n6#############\n\n...........%........\n....................\n....*.*.*..%..ooo...\n....................\n...........%........\n---r...............-\n...........%........\n....................\n....@.@.@..%..!!!...\n....................\n...........%........\n7###################\n\n............\n............\n....@...!...\n....@...!...\n....@%.%!...\n...........-\n....*%.%o...\n.u..*...o...\n.|..*...o...\n.|..........\n.|..........\n8###########\n\n..............\n.............-\n...@.......*..\n......!.o.....\n...*..!.o..@..\n.u....!.o.....\n.|.@.......*..\n.|............\n.|............\n9#############\n\n...........\n...........\n.o.....*...\n.o...%.*...\n.o.....*..-\n.o.%...*...\n.o.....*...\n...........\n...........\n---r.......\n...........\n10#########\n\n................\n................\n...@@@..........\n........ooo.....\n................\n---r...........-\n................\n........!!!.....\n...***..........\n................\n................\n11##############\n\nmessage Thanks for playing!\n\n", [3, 3, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0], "background:0,0,0,0,0,0,0,0,background htrack:1,0,\nbackground three:2,0,0,0,0,0,0,0,0,1,\n0,background black:3,0,background forest:4,background bluetarget:5,5,0,0,0,0,\n1,0,3,0,0,5,5,0,4,0,\n0,1,0,3,0,0,0,4,0,0,\n0,0,1,0,3,background movetrigger vtrack:6,background vtrack:7,background urtrack:8,0,0,\n0,0,0,1,0,3,0,0,background dltrack:9,7,\n7,7,7,7,background ultrack:10,0,3,0,0,background bluepassengerwaiting pickupbg:11,\n11,0,background pickupbg:12,12,0,0,0,3,0,0,\n0,0,0,0,0,0,0,0,3,0,\n0,0,0,0,0,0,0,0,0,3,\n", 5, "1627778440298.4922"] + ["title Train Braining\nauthor Alan Hazelden\nhomepage http://www.draknek.org\n\ncolor_palette pastel\n\nnoaction\n\nagain_interval 0.08\nkey_repeat_interval 0.16\n\n(verbose_logging)\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nStart\ntransparent\n\nDelay\ntransparent\n\nMoveTrigger\ntransparent\n\nTutorial\ntransparent\n\nBackground\nlightgreen green\n01000\n00110\n10010\n10100\n01001\n\nPickupBG\nlightgrey lightgreen\n00000\n01110\n01110\n01110\n00000\n\nWater1\nblue white lightblue\n20010\n02002\n12020\n00220\n02002\n\nWater2\nblue white lightblue\n02000\n20210\n00202\n01022\n20200\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\n(Player\nyellow black\n.000.\n01010\n10001\n01110\n.000.)\n\nFromD\ngrey darkbrown\n.....\n.....\n1...1\n0...0\n0...0\n\nFromU\ngrey darkbrown\n0...0\n0...0\n1...1\n.....\n.....\n\nFromL\ngrey darkbrown\n001..\n.....\n.....\n.....\n001..\n\nFromR\ngrey darkbrown\n..100\n.....\n.....\n.....\n..100\n\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\nCrossing\ngrey grey\n01110\n1...1\n1...1\n1...1\n01110\n(01010\n1...1\n0...0\n1...1\n01010)\n\nDRTrack\ngrey darkbrown\n...00\n..0..\n.01..\n0..1.\n0...1\n\nDLTrack\ngrey darkbrown\n00...\n..0..\n..10.\n.1..0\n1...0\n\nULTrack\ngrey darkbrown\n1...0\n.1..0\n..10.\n..0..\n00...\n\nURTrack\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\n(Smoke1\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\nBluePassengerWaiting\nDarkBrown Blue DarkBrown DarkBlue\n..0..\n.111.\n21112\n23332\n.3.3.\n\nBluePassengerOnCart\nDarkBrown Blue DarkBrown DarkBlue\n.....\n..0..\n.111.\n.111.\n.....\n\nBlueTarget\nlightblue darkbrown\n00000\n01110\n01110\n01110\n00000\n\nRedPassengerWaiting\nDarkBrown Red DarkBrown DarkRed\n..0..\n.111.\n21112\n23332\n.3.3.\n\nRedPassengerOnCart\nDarkBrown Red DarkBrown DarkRed\n.....\n..0..\n.111.\n.111.\n.....\n\nRedTarget\nlightRed darkbrown\n00000\n01110\n01110\n01110\n00000\n\nZero 0\nWhite Black\n10011\n01101\n01101\n01101\n10011\n\nOne 1\nWhite Black\n10011\n11011\n11011\n11011\n10001\n\nTwo 2\nWhite Black\n10011\n11101\n11011\n10111\n10001\n\nThree 3\nWhite Black\n10011\n11101\n11011\n11101\n10011\n\nFour 4\nWhite Black\n10101\n10101\n10001\n11101\n11101\n\nFive 5\nWhite Black\n10001\n10111\n10011\n11101\n10011\n\nSix 6\nWhite Black\n11001\n10111\n10001\n10110\n11001\n\nSeven 7\nWhite Black\n10001\n11101\n11011\n11011\n11011\n\nEight 8\nWhite Black\n11001\n10110\n11001\n10110\n11001\n\nNine 9\nWhite Black\n11001\n10110\n11000\n11110\n11001\n\nBlack\nblack\n\n=======\nLEGEND\n=======\n\n. = Background\nM = Mountain\n% = Forest\n~ = Water1\n, = Beach\n? = Tutorial\n\n| = VTrack\n- = HTrack\n+ = Crossing\n\n# = Black\n\nConnectsL = DLTrack or ULTrack or HTrack\nConnectsR = DRTrack or URTrack or HTrack\nConnectsU = ULTrack or URTrack or VTrack\nConnectsD = DLTrack or DRTrack or VTrack\n\nU = FromD and Start\nD = FromU and Start\nL = FromR and Start\nR = FromL and Start\n\n* = BluePassengerWaiting and PickupBG\nO = BlueTarget\n\n@ = RedPassengerWaiting and PickupBG\n! = RedTarget\n\nPlayer = FromD or FromU or FromL or FromR\n\nWater = Water1 or Water2\n\nTrack = VTrack or HTrack or URTrack or ULTrack or DRTrack or DLTrack or Crossing\n\nTrain = UTrain or DTrain or LTrain or RTrain\n\nTarget = BlueTarget or RedTarget\n\nPassengerWaiting = BluePassengerWaiting or RedPassengerWaiting\nPassengerOnCart = BluePassengerOnCart or RedPassengerOnCart\n\nPassenger = PassengerWaiting or PassengerOnCart\n\nNumber = 0 or 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9\n\nSolid = Mountain or Forest or Water or Black or Number\n\n=======\nSOUNDS\n=======\n\nSFX0 91301709\nSFX1 53409305\nSFX2 38557307\nSFX3 99431502\n\nEndLevel 78709508\n\nTrain Move 88405308\n\nTrack Create 24611507\n\nUndo 77031907\nTrack Destroy 77031907\n\nPassengerOnCart Create 77365107\nPassengerWaiting Create 18891907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Beach, Number, Black\nTrack, Solid\nTrain, Cart, PickupBG\nStart, Delay, MoveTrigger, Target\nTutorial\nPassenger\n\n======\nRULES\n======\n\n(spawn train)\n\nleft [ Track | Start Player ] -> [ LTrain Track Start | Player ]\nright [ Track | Start Player ] -> [ RTrain Track Start | Player ]\nup [ Track | Start Player ] -> [ UTrain Track Start | Player ]\ndown [ Track | Start Player ] -> [ DTrain Track Start | Player ]\n\n[ Start | Track no Train no Cart ] -> [ Start | Track Cart Start ]\n\n[ Start ] -> []\n\n(lay track)\n\n[ > Player | Passenger ] -> cancel\n[ > Player | Target ] -> cancel\n[ > Player | Solid ] -> cancel\n[ > Player | Train ] -> cancel\n\nleft [ left FromL | ConnectsL no Train ] -> [ | FromL ]\nleft [ left FromL | ConnectsU no Train ] -> [ | FromU ]\nleft [ left FromL | ConnectsD no Train ] -> [ | FromD ]\n\nright [ right FromR | ConnectsR no Train ] -> [ | FromR ]\nright [ right FromR | ConnectsU no Train ] -> [ | FromU ]\nright [ right FromR | ConnectsD no Train ] -> [ | FromD ]\n\nup [ up FromU | ConnectsL no Train ] -> [ | FromL ]\nup [ up FromU | ConnectsR no Train ] -> [ | FromR ]\nup [ up FromU | ConnectsU no Train ] -> [ | FromU ]\n\ndown [ down FromD | ConnectsL no Train ] -> [ | FromL ]\ndown [ down FromD | ConnectsR no Train ] -> [ | FromR ]\ndown [ down FromD | ConnectsD no Train ] -> [ | FromD ]\n\n[ left FromU no Track ] -> [ left FromR ULTrack ]\n[ right FromU no Track ] -> [ right FromL URTrack ]\n[ down FromU no Track ] -> [ down FromU VTrack ]\n\n[ left FromD no Track ] -> [ left FromR DLTrack ]\n[ right FromD no Track ] -> [ right FromL DRTrack ]\n[ up FromD no Track ] -> [ up FromD VTrack ]\n\n[ up FromL no Track ] -> [ up FromD ULTrack ]\n[ down FromL no Track ] -> [ down FromU DLTrack ]\n[ right FromL no Track ] -> [ right FromL HTrack ]\n\n[ up FromR no Track ] -> [ up FromD URTrack ]\n[ down FromR no Track ] -> [ down FromU DRTrack ]\n[ left FromR no Track ] -> [ left FromR HTrack ]\n\nleft [ ConnectsL | < Player ] -> [ ConnectsL MoveTrigger | ]\nright [ ConnectsR | < Player ] -> [ ConnectsR MoveTrigger | ]\nup [ ConnectsU | < Player ] -> [ ConnectsU MoveTrigger | ]\ndown [ ConnectsD | < Player ] -> [ ConnectsD MoveTrigger | ]\n\nlate [ Player Track ] -> cancel\n\n(start train)\n\n[ MoveTrigger ] [ UTrain ] -> [ MoveTrigger ] [ up UTrain ]\n[ MoveTrigger ] [ DTrain ] -> [ MoveTrigger ] [ down DTrain ]\n[ MoveTrigger ] [ LTrain ] -> [ MoveTrigger ] [ left LTrain ]\n[ MoveTrigger ] [ RTrain ] -> [ MoveTrigger ] [ right RTrain ]\n\n[ Delay ] [ moving Train ] -> [ Delay ] [ Train ]\n\n[ Delay ] [ MoveTrigger ] -> [ Delay ] [ action MoveTrigger ]\n\n[ > Train | Solid ] -> cancel\n[ > Train | Passenger ] -> cancel\n\n(cart follows train)\n\nleft [ MoveTrigger Cart ConnectsL | Cart ] -> [ MoveTrigger < Cart ConnectsL | Cart ]\nright [ MoveTrigger Cart ConnectsR | Cart ] -> [ MoveTrigger < Cart ConnectsR | Cart ]\nup [ MoveTrigger Cart ConnectsU | Cart ] -> [ MoveTrigger < Cart ConnectsU | Cart ]\ndown [ MoveTrigger Cart ConnectsD | Cart ] -> [ MoveTrigger < Cart ConnectsD | Cart ]\n\n[ stationary Cart | moving Train ] -> [ > Cart | moving Train ] again\n[ stationary Cart | moving Cart ] -> [ > Cart | moving Cart ]\n\n[ PassengerOnCart moving Cart ] -> [ moving PassengerOnCart moving Cart ]\n\n(train turns when entering corners)\nup [ > UTrain | DRTrack ] -> [ > RTrain | DRTrack ]\nup [ > UTrain | DLTrack ] -> [ > LTrain | DLTrack ]\n\nright [ > RTrain | DLTrack ] -> [ > DTrain | DLTrack ]\nright [ > RTrain | ULTrack ] -> [ > UTrain | ULTrack ]\n\ndown [ > DTrain | URTrack ] -> [ > RTrain | URTrack ]\ndown [ > DTrain | ULTrack ] -> [ > LTrain | ULTrack ]\n\nleft [ > LTrain | DRTrack ] -> [ > DTrain | DRTrack ]\nleft [ > LTrain | URTrack ] -> [ > UTrain | URTrack ]\n\n(Passengers get on/off)\n\nlate [ Delay no PassengerWaiting no PassengerOnCart ] -> [] again\n\nlate [ BluePassengerWaiting Delay no Cart no Target | Cart no PassengerOnCart ] -> [ Delay | Cart BluePassengerOnCart ] again\nlate [ RedPassengerWaiting Delay no Cart no Target | Cart no PassengerOnCart ] -> [ Delay | Cart RedPassengerOnCart ] again\n\nlate [ PassengerWaiting Delay no Cart no Target | Cart PassengerOnCart ] -> [ PassengerWaiting | Cart PassengerOnCart ] again\nlate [ PassengerWaiting no Cart no Delay no Target | Cart no PassengerOnCart ] -> [ PassengerWaiting Delay | Cart ] again\n\nlate [ BluePassengerOnCart Delay Cart | no PassengerWaiting BlueTarget ] -> [ Delay Cart | BluePassengerWaiting BlueTarget ] again\nlate [ RedPassengerOnCart Delay Cart | no PassengerWaiting RedTarget ] -> [ Delay Cart | RedPassengerWaiting RedTarget ] again\n\nlate [ BluePassengerOnCart Cart no Delay | no PassengerWaiting BlueTarget ] -> [ BluePassengerOnCart Cart Delay | BlueTarget ] again\nlate [ RedPassengerOnCart Cart no Delay | no PassengerWaiting RedTarget ] -> [ RedPassengerOnCart Cart Delay | RedTarget ] again\n\n(Train leaves world)\n\n[ stationary MoveTrigger Train ] [ Tutorial ] [ Passenger no Target ] -> message You have to take all the passengers to the blue station\n\n[ stationary MoveTrigger Train ] -> [ MoveTrigger ] again\n[ MoveTrigger Cart ] -> [ MoveTrigger ] again\n[ MoveTrigger PassengerOnCart ] -> [ MoveTrigger ] again\n\n==============\nWINCONDITIONS\n==============\n\nNo train\nNo cart\nall target on passengerWaiting\n\n======= \nLEVELS\n=======\n\nmessage Being a train route planner is very satisfying\n\n.......|.....\n.............\n.............\n....%........\n..........%..\n---r.........\n.............\n......%......\n.............\n.............\n\nmessage Until you have to deal with passengers\n\n.............\n.............\n..o......*...\n..o......*...\n..o......*..-\n..o......*...\n......U......\n......|......\n.?....|......\n......|......\n1############\n\n.............\n..o......*...\n..o......*...\n%.o......*...\n..o......*..-\n..o......*...\n..o.....%*...\n.............\n---r.........\n.............\n2############\n\n.....|....\n..%.......\n..oo...*..\n..oo%..*..\n..........\n...%...*..\n.......*..\n..........\n---r......\n..........\n3#########\n\n............\n.....%......\n....@..!....\n....@..!.%..\n...........-\n.u..*..o.%..\n.|..*..o....\n.|....%.....\n.|..........\n4###########\n\n(............\n-...........\n........**..\n........**..\n.!..........\n.!..........\n.!.....o....\n.!.....o....\n.......o..u.\n...@@..o..|.\n...@@.....|.\n..........|.)\n\n............\n............\n-......o..*.\n.......o.%*.\n.......o..*.\n..@@@.......\n............\n...%........\n............\n..!!!...l---\n............\n5###########\n\n..............\n..............\n....!!!.**....\n..............\n.....@........\n---r.........-\n.....*........\n..............\n....ooo.@@....\n..............\n..............\n6#############\n\n...........%........\n....................\n....*.*.*..%..ooo...\n....................\n...........%........\n---r...............-\n...........%........\n....................\n....@.@.@..%..!!!...\n....................\n...........%........\n7###################\n\n............\n............\n....@...!...\n....@...!...\n....@%.%!...\n...........-\n....*%.%o...\n.u..*...o...\n.|..*...o...\n.|..........\n.|..........\n8###########\n\n..............\n.............-\n...@.......*..\n......!.o.....\n...*..!.o..@..\n.u....!.o.....\n.|.@.......*..\n.|............\n.|............\n9#############\n\n...........\n...........\n.o.....*...\n.o...%.*...\n.o.....*..-\n.o.%...*...\n.o.....*...\n...........\n...........\n---r.......\n...........\n10#########\n\n................\n................\n...@@@..........\n........ooo.....\n................\n---r...........-\n................\n........!!!.....\n...***..........\n................\n................\n11##############\n\nmessage Thanks for playing!\n\n",[3,3,3,0,0,0,0,0,0,1,0,0],"background:0,0,0,0,0,0,0,0,background htrack:1,0,\nbackground three:2,0,0,0,0,0,0,0,0,1,\n0,background black:3,0,background forest:4,background bluetarget:5,5,0,0,0,0,\n1,0,3,0,0,5,5,0,4,0,\n0,1,0,3,0,0,0,4,0,0,\n0,0,1,0,3,background movetrigger vtrack:6,background vtrack:7,background urtrack:8,0,0,\n0,0,0,1,0,3,0,0,background dltrack:9,7,\n7,7,7,7,background ultrack:10,0,3,0,0,background bluepassengerwaiting pickupbg:11,\n11,0,background pickupbg:12,12,0,0,0,3,0,0,\n0,0,0,0,0,0,0,0,3,0,\n0,0,0,0,0,0,0,0,0,3,\n",5,"1627778440298.4922"] ], [ `gallery: enqueue`, - ["title Enqueue\nauthor Allen Webster\nhomepage www.pushthegame.com\n\nnorepeat_action\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground .\nBLACK\n\nWall #\nDARKGRAY\n00.00\n0.0.0\n.000.\n0.0.0\n00.00\n\nPlayer S\nTRANSPARENT\n\nSelector\nWHITE\n00.00\n0...0\n.....\n0...0\n00.00\n\nRedBlock R\n#990000\n\nBlueBlock B\n#000099\n\nGreenBlock G\n#009900\n\nYellowBlock Y\n#888800\n\nPurpleBlock P\n#660066\n\nOrangeBlock O\n#994400\n\nPinkBlock I\nPINK\n\nBrownBlock W\n#222200\n\nRedPad\n#990000\n.....\n..0..\n.000.\n..0..\n.....\n\nBluePad \n#000099\n.....\n..0..\n.000.\n..0..\n.....\n\nGreenPad\n#009900\n.....\n..0..\n.000.\n..0..\n.....\n\nYellowPad\n#888800\n.....\n..0..\n.000.\n..0..\n.....\n\nPurplePad\n#660066\n.....\n..0..\n.000.\n..0..\n.....\n\nOrangePad\n#994400\n.....\n..0..\n.000.\n..0..\n.....\n\nPinkPad\nPINK\n.....\n..0..\n.000.\n..0..\n.....\n\nBrownPad\n#222200\n.....\n..0..\n.000.\n..0..\n.....\n\nQueueLocation\nTRANSPARENT\n\nQueueHead\nTRANSPARENT\n\nEnqueueHead\nTRANSPARENT\n\nTaker\nTRANSPARENT\n\nFiller\nTRANSPARENT\n\nWaitingFiller\nTRANSPARENT\n\nFillerTakerLocation\nTRANSPARENT\n\nModeGen\nTRANSPARENT\n\nWaitingGen\nTRANSPARENT\n\nSendMode\nTRANSPARENT\n\nSendModePerm\nTRANSPARENT\n\nReceiveMode\nTRANSPARENT\n\nReceiveModePerm\nTRANSPARENT\n\n=======\nLEGEND\n=======\n\n@ = Wall and Player and QueueLocation\nH = Wall and QueueLocation\nx = SendMode and Wall\nz = ReceiveMode and ModeGen and Wall\n? = WaitingGen and Wall\n+ = SendModePerm\n- = ReceiveModePerm\n\nBlock = RedBlock or BlueBlock or GreenBlock or YellowBlock or OrangeBlock or PurpleBlock or PinkBlock or BrownBlock\nPad = RedPad or BluePad or GreenPad or YellowPad or OrangePad or PurplePad or PinkPad or BrownPad\nHead = QueueHead or EnqueueHead\n\nF = Filler and Wall\n! = Taker and Wall\na = Filler and FillerTakerLocation and Wall\n\n[ = RedPad\n{ = BluePad\n] = GreenPad\n} = YellowPad\n: = PurplePad\n; = OrangePad\n' = PinkPad\n\" = BrownPad\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nQueueHead\nEnqueueHead\nQueueLocation\nWall\nRedBlock, BlueBlock, GreenBlock, YellowBlock, PurpleBlock, OrangeBlock, PinkBlock, BrownBlock\nRedPad, BluePad, GreenPad, YellowPad, PurplePad, OrangePad, PinkPad, BrownPad\nSelector\nFiller\nWaitingFiller\nTaker\nFillerTakerLocation\nModeGen\nWaitingGen\nSendMode\nReceiveMode\nSendModePerm\nReceiveModePerm\nPlayer\n\n====== \nRULES \n====== \n\nvertical [ > Player ] -> [ Player ]\n[ > Player | ... | Head ] -> [ | ... | Player Head ]\n[ > Player | ... | No Head ] -> [ Player | ... | ]\n\n[SendModePerm][ action Player ][ Selector Block ][ Filler ] -> [SendModePerm][ action Player ][ Wall Selector ][ RIGHT Filler Block ]\n\n[ReceiveModePerm][ action Player ][ Selector ][ Taker Block ] -> [ReceiveModePerm][ action Player ][ Selector Block ][ RIGHT Taker Wall ]\n\n(kill pads)\n[RedBlock RedPad] -> [RedBlock]\n[BlueBlock BluePad] -> [BlueBlock]\n[GreenBlock GreenPad] -> [GreenBlock]\n[YellowBlock YellowPad] -> [YellowBlock]\n[PurpleBlock PurplePad] -> [PurpleBlock]\n[OrangeBlock OrangePad] -> [OrangeBlock]\n[PinkBlock PinkPad] -> [PinkBlock]\n[BrownBlock BrownPad] -> [BrownBlock]\n\n(queue locations generating appropriate management types)\nhorizontal [QueueLocation | ... | SendMode] -> [QueueLocation QueueHead | ... | SendMode]\n[SendMode][Player No Head][QueueLocation] -> [SendMode][][QueueLocation Player]\n[SendMode] [ReceiveModePerm] -> [] [SendModePerm]\n[SendMode] -> []\n\nhorizontal [QueueLocation | ... | ReceiveMode] -> [QueueLocation EnqueueHead | ... | ReceiveMode]\n[ReceiveMode][Player No Head][QueueLocation] -> [ReceiveMode][][QueueLocation Player]\n[ReceiveMode] [SendModePerm] -> [] [ReceiveModePerm]\n[ReceiveMode] -> []\n\n(moving the player, queuehead and selector upon an action)\n[ action Player Head ] -> [ RIGHT Player RIGHT Head ]\nlate down [ QueueHead | No Block ] -> [ | ]\nlate down [ EnqueueHead | Wall ] -> [ | Wall ]\nlate horizontal [ Player No Head | ... | Head ] -> [ | ... | Player Head ]\n\n(selector always goes with player)\nlate down [ Player | No Selector ] -> [ Player | Selector ]\nlate down [ No Player | Selector ] -> [ | ]\nlate [Selector Wall] -> [Wall]\n\n(fix filler/taker advance mode hack)\nlate up [ Filler Wall | No Wall ] -> [ Wall | Filler ]\nlate down [ Filler | ... | Filler ] -> [ Filler | ... | WaitingFiller ]\nlate up [ Taker Wall | No Taker ] -> [ Wall | Taker ]\n\n(killing the filler/taker when it is finished)\nlate [ Taker No Block ][ModeGen] -> [][SendMode] again\nlate up [ Filler Wall | Wall ][WaitingGen] up [FillerTakerLocation | Block ][WaitingFiller] -> [ Wall | Wall ][ModeGen ReceiveMode][ | Block Taker][Filler] again\n\n==============\nWINCONDITIONS\n==============\n\nNo Pad\n\n======= \nLEVELS\n=======\n\n(level 1)\n#@###H#x\n#RR##BB#\n########\n+.......\n########\n##{[{[##\n##F#####\n\n(level 2)\n#@###H#x\n#RB##GR#\n########\n+.......\n########\n##[]{[##\n##F#####\n\nMessage The problem grows\n\n(level 3)\n########\n##RBRB##\n##!#####\n-.......\n#@###H#z\n#..##..#\n########\n........\n########\n##{[{[##\n##F#####\n\n(level 4)\n########\n##RGBY##\n##!#####\n-.......\n#@###H#z\n#..##..#\n########\n........\n########\n##][}{##\n##F#####\n\n(level 5)\n##########\n##RGRROR##\n##!#######\n-.........\n#@####H##z\n#...##...#\n##########\n..........\n##########\n##[;[[][##\n##F#######\n\n(level 6)\n##########\n##RRGORR##\n##!#######\n-.........\n#@####H##z\n#...##...#\n##########\n..........\n##########\n##[;[[][##\n##F#######\n\nMessage Mind the subsequences\n\n(level 7)\n##########\n##RGBYOP##\n##!#######\n-.........\n#@####H##z\n#...##...#\n##########\n..........\n##########\n##[;]{}:##\n##F#######\n\n(level 8)\n##########\n##RGBYOP##\n##!#######\n-.........\n#@####H##z\n#...##...#\n##########\n..........\n##########\n##[];:{}##\n##F#######\n\nMessage One shall not be enough\n\n(level 9)\n############\n##RGGBBYYR##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##]][[}}{{##\n##F#########\n \n(level 10)\n############\n##RRGGBBYY##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##[}[}]{]{##\n##F#########\n\n(level 11)\n############\n##GRRRRRRB##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##{[[[[[[]##\n##F#########\n\n(level 13)\n############\n##RGBYOPIW##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##\";:']{}[##\n##F#########\n\n(level 14)\n############\n##RGBYOPIW##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##\"]{};:'[##\n##F#########\n\n(level 15)\n############\n##RGBYOPIW##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##\";:]'{}[##\n##F#########\n\nMessage Thanks for playing!\n", [3, 0, 4, 1, 1, 4, 3, 4, 1, 4, 2, 4, 3, 4, 4, 4], "background wall:0,0,0,background sendmodeperm:1,0,0,0,background:2,\n0,0,0,0,0,0,2,background queuelocation wall:3,\n0,0,2,0,0,0,0,0,\n0,2,0,0,0,2,0,background greenblock:4,\n0,0,0,0,2,background player wall:5,0,0,\n2,0,background redblock:6,0,0,0,0,2,\n0,0,0,2,0,background blueblock yellowpad:7,0,0,\n0,0,2,3,0,0,2,0,\nbackground bluepad yellowblock:8,0,0,0,0,2,0,0,\n0,2,0,background filler wall:9,0,0,0,0,\n2,0,0,0,2,0,0,0,\n", 4, "1627778464558.232"] + ["title Enqueue\nauthor Allen Webster\nhomepage www.pushthegame.com\n\nnorepeat_action\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground .\nBLACK\n\nWall #\nDARKGRAY\n00.00\n0.0.0\n.000.\n0.0.0\n00.00\n\nPlayer S\nTRANSPARENT\n\nSelector\nWHITE\n00.00\n0...0\n.....\n0...0\n00.00\n\nRedBlock R\n#990000\n\nBlueBlock B\n#000099\n\nGreenBlock G\n#009900\n\nYellowBlock Y\n#888800\n\nPurpleBlock P\n#660066\n\nOrangeBlock O\n#994400\n\nPinkBlock I\nPINK\n\nBrownBlock W\n#222200\n\nRedPad\n#990000\n.....\n..0..\n.000.\n..0..\n.....\n\nBluePad \n#000099\n.....\n..0..\n.000.\n..0..\n.....\n\nGreenPad\n#009900\n.....\n..0..\n.000.\n..0..\n.....\n\nYellowPad\n#888800\n.....\n..0..\n.000.\n..0..\n.....\n\nPurplePad\n#660066\n.....\n..0..\n.000.\n..0..\n.....\n\nOrangePad\n#994400\n.....\n..0..\n.000.\n..0..\n.....\n\nPinkPad\nPINK\n.....\n..0..\n.000.\n..0..\n.....\n\nBrownPad\n#222200\n.....\n..0..\n.000.\n..0..\n.....\n\nQueueLocation\nTRANSPARENT\n\nQueueHead\nTRANSPARENT\n\nEnqueueHead\nTRANSPARENT\n\nTaker\nTRANSPARENT\n\nFiller\nTRANSPARENT\n\nWaitingFiller\nTRANSPARENT\n\nFillerTakerLocation\nTRANSPARENT\n\nModeGen\nTRANSPARENT\n\nWaitingGen\nTRANSPARENT\n\nSendMode\nTRANSPARENT\n\nSendModePerm\nTRANSPARENT\n\nReceiveMode\nTRANSPARENT\n\nReceiveModePerm\nTRANSPARENT\n\n=======\nLEGEND\n=======\n\n@ = Wall and Player and QueueLocation\nH = Wall and QueueLocation\nx = SendMode and Wall\nz = ReceiveMode and ModeGen and Wall\n? = WaitingGen and Wall\n+ = SendModePerm\n- = ReceiveModePerm\n\nBlock = RedBlock or BlueBlock or GreenBlock or YellowBlock or OrangeBlock or PurpleBlock or PinkBlock or BrownBlock\nPad = RedPad or BluePad or GreenPad or YellowPad or OrangePad or PurplePad or PinkPad or BrownPad\nHead = QueueHead or EnqueueHead\n\nF = Filler and Wall\n! = Taker and Wall\na = Filler and FillerTakerLocation and Wall\n\n[ = RedPad\n{ = BluePad\n] = GreenPad\n} = YellowPad\n: = PurplePad\n; = OrangePad\n' = PinkPad\n\" = BrownPad\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nQueueHead\nEnqueueHead\nQueueLocation\nWall\nRedBlock, BlueBlock, GreenBlock, YellowBlock, PurpleBlock, OrangeBlock, PinkBlock, BrownBlock\nRedPad, BluePad, GreenPad, YellowPad, PurplePad, OrangePad, PinkPad, BrownPad\nSelector\nFiller\nWaitingFiller\nTaker\nFillerTakerLocation\nModeGen\nWaitingGen\nSendMode\nReceiveMode\nSendModePerm\nReceiveModePerm\nPlayer\n\n====== \nRULES \n====== \n\nvertical [ > Player ] -> [ Player ]\n[ > Player | ... | Head ] -> [ | ... | Player Head ]\n[ > Player | ... | No Head ] -> [ Player | ... | ]\n\n[SendModePerm][ action Player ][ Selector Block ][ Filler ] -> [SendModePerm][ action Player ][ Wall Selector ][ RIGHT Filler Block ]\n\n[ReceiveModePerm][ action Player ][ Selector ][ Taker Block ] -> [ReceiveModePerm][ action Player ][ Selector Block ][ RIGHT Taker Wall ]\n\n(kill pads)\n[RedBlock RedPad] -> [RedBlock]\n[BlueBlock BluePad] -> [BlueBlock]\n[GreenBlock GreenPad] -> [GreenBlock]\n[YellowBlock YellowPad] -> [YellowBlock]\n[PurpleBlock PurplePad] -> [PurpleBlock]\n[OrangeBlock OrangePad] -> [OrangeBlock]\n[PinkBlock PinkPad] -> [PinkBlock]\n[BrownBlock BrownPad] -> [BrownBlock]\n\n(queue locations generating appropriate management types)\nhorizontal [QueueLocation | ... | SendMode] -> [QueueLocation QueueHead | ... | SendMode]\n[SendMode][Player No Head][QueueLocation] -> [SendMode][][QueueLocation Player]\n[SendMode] [ReceiveModePerm] -> [] [SendModePerm]\n[SendMode] -> []\n\nhorizontal [QueueLocation | ... | ReceiveMode] -> [QueueLocation EnqueueHead | ... | ReceiveMode]\n[ReceiveMode][Player No Head][QueueLocation] -> [ReceiveMode][][QueueLocation Player]\n[ReceiveMode] [SendModePerm] -> [] [ReceiveModePerm]\n[ReceiveMode] -> []\n\n(moving the player, queuehead and selector upon an action)\n[ action Player Head ] -> [ RIGHT Player RIGHT Head ]\nlate down [ QueueHead | No Block ] -> [ | ]\nlate down [ EnqueueHead | Wall ] -> [ | Wall ]\nlate horizontal [ Player No Head | ... | Head ] -> [ | ... | Player Head ]\n\n(selector always goes with player)\nlate down [ Player | No Selector ] -> [ Player | Selector ]\nlate down [ No Player | Selector ] -> [ | ]\nlate [Selector Wall] -> [Wall]\n\n(fix filler/taker advance mode hack)\nlate up [ Filler Wall | No Wall ] -> [ Wall | Filler ]\nlate down [ Filler | ... | Filler ] -> [ Filler | ... | WaitingFiller ]\nlate up [ Taker Wall | No Taker ] -> [ Wall | Taker ]\n\n(killing the filler/taker when it is finished)\nlate [ Taker No Block ][ModeGen] -> [][SendMode] again\nlate up [ Filler Wall | Wall ][WaitingGen] up [FillerTakerLocation | Block ][WaitingFiller] -> [ Wall | Wall ][ModeGen ReceiveMode][ | Block Taker][Filler] again\n\n==============\nWINCONDITIONS\n==============\n\nNo Pad\n\n======= \nLEVELS\n=======\n\n(level 1)\n#@###H#x\n#RR##BB#\n########\n+.......\n########\n##{[{[##\n##F#####\n\n(level 2)\n#@###H#x\n#RB##GR#\n########\n+.......\n########\n##[]{[##\n##F#####\n\nMessage The problem grows\n\n(level 3)\n########\n##RBRB##\n##!#####\n-.......\n#@###H#z\n#..##..#\n########\n........\n########\n##{[{[##\n##F#####\n\n(level 4)\n########\n##RGBY##\n##!#####\n-.......\n#@###H#z\n#..##..#\n########\n........\n########\n##][}{##\n##F#####\n\n(level 5)\n##########\n##RGRROR##\n##!#######\n-.........\n#@####H##z\n#...##...#\n##########\n..........\n##########\n##[;[[][##\n##F#######\n\n(level 6)\n##########\n##RRGORR##\n##!#######\n-.........\n#@####H##z\n#...##...#\n##########\n..........\n##########\n##[;[[][##\n##F#######\n\nMessage Mind the subsequences\n\n(level 7)\n##########\n##RGBYOP##\n##!#######\n-.........\n#@####H##z\n#...##...#\n##########\n..........\n##########\n##[;]{}:##\n##F#######\n\n(level 8)\n##########\n##RGBYOP##\n##!#######\n-.........\n#@####H##z\n#...##...#\n##########\n..........\n##########\n##[];:{}##\n##F#######\n\nMessage One shall not be enough\n\n(level 9)\n############\n##RGGBBYYR##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##]][[}}{{##\n##F#########\n \n(level 10)\n############\n##RRGGBBYY##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##[}[}]{]{##\n##F#########\n\n(level 11)\n############\n##GRRRRRRB##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##{[[[[[[]##\n##F#########\n\n(level 13)\n############\n##RGBYOPIW##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##\";:']{}[##\n##F#########\n\n(level 14)\n############\n##RGBYOPIW##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##\"]{};:'[##\n##F#########\n\n(level 15)\n############\n##RGBYOPIW##\n##!#########\n-...........\n#@#####H###z\n#....##....#\n############\n............\n############\n##........##\n##a#########\n............\n#H#####H###?\n#....##....#\n############\n............\n############\n##\";:]'{}[##\n##F#########\n\nMessage Thanks for playing!\n",[3,0,4,1,1,4,3,4,1,4,2,4,3,4,4,4],"background wall:0,0,0,background sendmodeperm:1,0,0,0,background:2,\n0,0,0,0,0,0,2,background queuelocation wall:3,\n0,0,2,0,0,0,0,0,\n0,2,0,0,0,2,0,background greenblock:4,\n0,0,0,0,2,background player wall:5,0,0,\n2,0,background redblock:6,0,0,0,0,2,\n0,0,0,2,0,background blueblock yellowpad:7,0,0,\n0,0,2,3,0,0,2,0,\nbackground bluepad yellowblock:8,0,0,0,0,2,0,0,\n0,2,0,background filler wall:9,0,0,0,0,\n2,0,0,0,2,0,0,0,\n",4,"1627778464558.232"] ], [ `gallery: tidy the cafe`, - ["title Tidy the Cafe!\nauthor Sally Bridgwater\nhomepage http://sallyanne.itch.io\n\nrealtime_interval 0.1\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground \nGrey DarkGrey\n00000\n01110\n01010\n01110\n00000\n\nTable\nYellow Red White\n(12121\n21212\n12121\n21212\n0...0)\n.....\n.121.\n.212.\n.121.\n.0.0.\n\nChairRightLoose\nYellow Red\n.....\n...0.\n.110.\n.110.\n.0.0.\n\nChairRightTuckedIn\nYellow Red\n.....\n..0..\n110..\n110..\n0.0..\n\nChairLeftLoose\nYellow Red\n.....\n.0...\n.011.\n.011.\n.0.0.\n\nChairLeftTuckedIn\nYellow Red\n.....\n..0..\n..011\n..011\n..0.0\n\nChairUpLoose\nYellow Red\n.....\n.000.\n.111.\n.111.\n.0.0.\n\nChairUpTuckedIn\nYellow Red\n.....\n.....\n.000.\n.111.\n.111.\n\nChairUpTuckedInOverlay\nYellow Red\n.0.0.\n.....\n.....\n.....\n.....\n\nChairDownLoose\nYellow Red\n.....\n.000.\n.000.\n.000.\n.0.0.\n\nChairDownTuckedIn\nYellow Red\n.000.\n.000.\n.000.\n.0.0.\n.....\n\nPlayer \nBlack White Brown Red\n..2..\n21312\n.111.\n.000.\n.0.0.\n\nTidy\nPink\n.....\n.....\n.....\n.....\n.....\n\n\nPlant\nGreen Orange\n.000.\n.000.\n11111\n.111.\n.111.\n\n\n\nCandleStick1\nBlack yellow white orange\n3.1.1\n2.2.2\n00000\n..0..\n.000.\n\nCandleStick2\nBlack yellow white orange\n1.3.1\n2.2.2\n00000\n..0..\n.000.\n\nCandleStick3\nBlack yellow white orange\n1.1.3\n2.2.2\n00000\n..0..\n.000.\n\nCandleStick4\nBlack yellow white orange\n1.1.1\n2.2.2\n00000\n..0..\n.000.\n\n\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Table\n@ = Player\nP = Plant\nC = CandleStick1\nL = ChairLeftLoose\nR = ChairRightLoose\nU = ChairUpLoose\nD = ChairDownLoose\n\nChairUp = ChairUpLoose or ChairUpTuckedIn\nChairDown = ChairDownLoose or ChairDownTuckedIn\nChairLeft = ChairLeftLoose or ChairLeftTuckedIn\nChairRight = ChairRightLoose or ChairRightTuckedIn\n\nChair = ChairUp or ChairDown or ChairLeft or ChairRight\nPushable = Chair or Table\nCandle = CandleStick1 or CandleStick2 or CandleStick3 or CandleStick4\n\nObstacle = Table or Candle or Plant\n\nTidyLeft = Obstacle or ChairLeft\nTidyRight = Obstacle or ChairRight\nTidyUp = Obstacle or ChairUp\nTidyDown = Obstacle or ChairDown\n\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTidy\nTable,Chair,Player,Plant,Candle\nChairUpTuckedInOverlay\n\n\n\n======\nRULES \n====== \n\n[ > Player | Pushable ] -> [ > Player | > Pushable ] again\n\n[ Candle ] -> [ action Candle ]\n[ action Candle ] -> [ random Candle ]\n\n[Tidy] -> [ ]\n[Table] ->[ Tidy Table]\n\nLeft [ Tidy Table | No TidyLeft] -> [ Table | ]\nRight[ Tidy Table | No TidyRight] -> [ Table | ]\nUp [ Tidy Table | No TidyUp] -> [Table | ]\nDown [ Tidy Table | No TidyDown] -> [Table | ]\n\nLeft [ Tidy Table | ChairLeft] -> [ Tidy Table | ChairLeft Tidy]\nRight[ Tidy Table | ChairRight] -> [ Tidy Table | ChairRight Tidy]\nUp [ Tidy Table | ChairUp] -> [ Tidy Table | ChairUp Tidy]\nDown [ Tidy Table | ChairDown] -> [ Tidy Table | ChairDown Tidy]\n\n[ ChairUp ] -> [ ChairUpLoose ]\n[ ChairDown ] -> [ ChairDownLoose ]\n[ ChairLeft ] -> [ ChairLeftLoose ]\n[ ChairRight ] -> [ ChairRightLoose ]\n\n[ Tidy ChairUp ] -> [ Tidy ChairUpTuckedIn ]\n[ Tidy ChairDown ] -> [ Tidy ChairDownTuckedIn ]\n[ Tidy ChairLeft ] -> [ Tidy ChairLeftTuckedIn ]\n[ Tidy ChairRight ] -> [ Tidy ChairRightTuckedIn ]\n\nLate [ ChairUpTuckedInOverlay ] -> [ ]\nLate Down [ ChairUpTuckedIn | ] -> [ ChairUpTuckedIn | ChairUpTuckedInOverlay ]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Table on Tidy \nAll Chair on Tidy\nsome Table\nsome Chair\n\n======= \nLEVELS\n=======\n\n(...u.\n...#r\n.l.d.\n....@)\n\n(....U.\n.#.D.R\n.L.@..\n......)\n\nc.up\n@l.r\n.d#.\n....\n\n(....\n@.ur\n..#.\npl#.\nl.dr\n....)\n\n#...#\n.drd.\n.r@l.\n.ulu.\n#...#\n\n...c...\n.u.c.u.\nl#r.l.r\n.#.@.d.\n.d.c...\n...c...\n\n.......\n..u#u..\n.l#@#r.\n..d#d..\n.......\n\n(...@...\n..#u#..\n.l.c.r.\n..dud..\n.......)\n\nc..c..c\n...u...\nc@r#l.c\n...d...\nc..c..c\n\n..u..\n.l#r.\n..d..\n.l#r.\n..@..\n.....\n\n\n\n(........\n....D.R.\n.#.P....\n@.L..#.R\n.DUU.L..\n........)\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", 1, "tick", 0, "tick", "tick", 3, "tick", "tick", 0, "tick", "tick", 3, "tick", "tick", 3, 0, "tick", 3, "tick", 2, 2, 1, "tick", 1, "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick"], "background:0,0,background chairlefttuckedin tidy:1,0,0,0,0,\nbackground chairuptuckedin tidy:2,background chairuptuckedinoverlay table tidy:3,background table:4,background chairdownloose:5,0,0,0,\nbackground chairrighttuckedin tidy:6,0,0,0,background candlestick1:7,background candlestick3:8,0,\n0,background candlestick2:9,8,0,background player:10,0,0,\n0,0,0,0,background chairleftloose:11,5,0,\n0,0,background chairuploose:12,background chairrightloose:13,0,0,0,\n", 2, "1627778539761.4514"] + ["title Tidy the Cafe!\nauthor Sally Bridgwater\nhomepage http://sallyanne.itch.io\n\nrealtime_interval 0.1\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground \nGrey DarkGrey\n00000\n01110\n01010\n01110\n00000\n\nTable\nYellow Red White\n(12121\n21212\n12121\n21212\n0...0)\n.....\n.121.\n.212.\n.121.\n.0.0.\n\nChairRightLoose\nYellow Red\n.....\n...0.\n.110.\n.110.\n.0.0.\n\nChairRightTuckedIn\nYellow Red\n.....\n..0..\n110..\n110..\n0.0..\n\nChairLeftLoose\nYellow Red\n.....\n.0...\n.011.\n.011.\n.0.0.\n\nChairLeftTuckedIn\nYellow Red\n.....\n..0..\n..011\n..011\n..0.0\n\nChairUpLoose\nYellow Red\n.....\n.000.\n.111.\n.111.\n.0.0.\n\nChairUpTuckedIn\nYellow Red\n.....\n.....\n.000.\n.111.\n.111.\n\nChairUpTuckedInOverlay\nYellow Red\n.0.0.\n.....\n.....\n.....\n.....\n\nChairDownLoose\nYellow Red\n.....\n.000.\n.000.\n.000.\n.0.0.\n\nChairDownTuckedIn\nYellow Red\n.000.\n.000.\n.000.\n.0.0.\n.....\n\nPlayer \nBlack White Brown Red\n..2..\n21312\n.111.\n.000.\n.0.0.\n\nTidy\nPink\n.....\n.....\n.....\n.....\n.....\n\n\nPlant\nGreen Orange\n.000.\n.000.\n11111\n.111.\n.111.\n\n\n\nCandleStick1\nBlack yellow white orange\n3.1.1\n2.2.2\n00000\n..0..\n.000.\n\nCandleStick2\nBlack yellow white orange\n1.3.1\n2.2.2\n00000\n..0..\n.000.\n\nCandleStick3\nBlack yellow white orange\n1.1.3\n2.2.2\n00000\n..0..\n.000.\n\nCandleStick4\nBlack yellow white orange\n1.1.1\n2.2.2\n00000\n..0..\n.000.\n\n\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Table\n@ = Player\nP = Plant\nC = CandleStick1\nL = ChairLeftLoose\nR = ChairRightLoose\nU = ChairUpLoose\nD = ChairDownLoose\n\nChairUp = ChairUpLoose or ChairUpTuckedIn\nChairDown = ChairDownLoose or ChairDownTuckedIn\nChairLeft = ChairLeftLoose or ChairLeftTuckedIn\nChairRight = ChairRightLoose or ChairRightTuckedIn\n\nChair = ChairUp or ChairDown or ChairLeft or ChairRight\nPushable = Chair or Table\nCandle = CandleStick1 or CandleStick2 or CandleStick3 or CandleStick4\n\nObstacle = Table or Candle or Plant\n\nTidyLeft = Obstacle or ChairLeft\nTidyRight = Obstacle or ChairRight\nTidyUp = Obstacle or ChairUp\nTidyDown = Obstacle or ChairDown\n\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTidy\nTable,Chair,Player,Plant,Candle\nChairUpTuckedInOverlay\n\n\n\n======\nRULES \n====== \n\n[ > Player | Pushable ] -> [ > Player | > Pushable ] again\n\n[ Candle ] -> [ action Candle ]\n[ action Candle ] -> [ random Candle ]\n\n[Tidy] -> [ ]\n[Table] ->[ Tidy Table]\n\nLeft [ Tidy Table | No TidyLeft] -> [ Table | ]\nRight[ Tidy Table | No TidyRight] -> [ Table | ]\nUp [ Tidy Table | No TidyUp] -> [Table | ]\nDown [ Tidy Table | No TidyDown] -> [Table | ]\n\nLeft [ Tidy Table | ChairLeft] -> [ Tidy Table | ChairLeft Tidy]\nRight[ Tidy Table | ChairRight] -> [ Tidy Table | ChairRight Tidy]\nUp [ Tidy Table | ChairUp] -> [ Tidy Table | ChairUp Tidy]\nDown [ Tidy Table | ChairDown] -> [ Tidy Table | ChairDown Tidy]\n\n[ ChairUp ] -> [ ChairUpLoose ]\n[ ChairDown ] -> [ ChairDownLoose ]\n[ ChairLeft ] -> [ ChairLeftLoose ]\n[ ChairRight ] -> [ ChairRightLoose ]\n\n[ Tidy ChairUp ] -> [ Tidy ChairUpTuckedIn ]\n[ Tidy ChairDown ] -> [ Tidy ChairDownTuckedIn ]\n[ Tidy ChairLeft ] -> [ Tidy ChairLeftTuckedIn ]\n[ Tidy ChairRight ] -> [ Tidy ChairRightTuckedIn ]\n\nLate [ ChairUpTuckedInOverlay ] -> [ ]\nLate Down [ ChairUpTuckedIn | ] -> [ ChairUpTuckedIn | ChairUpTuckedInOverlay ]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Table on Tidy \nAll Chair on Tidy\nsome Table\nsome Chair\n\n======= \nLEVELS\n=======\n\n(...u.\n...#r\n.l.d.\n....@)\n\n(....U.\n.#.D.R\n.L.@..\n......)\n\nc.up\n@l.r\n.d#.\n....\n\n(....\n@.ur\n..#.\npl#.\nl.dr\n....)\n\n#...#\n.drd.\n.r@l.\n.ulu.\n#...#\n\n...c...\n.u.c.u.\nl#r.l.r\n.#.@.d.\n.d.c...\n...c...\n\n.......\n..u#u..\n.l#@#r.\n..d#d..\n.......\n\n(...@...\n..#u#..\n.l.c.r.\n..dud..\n.......)\n\nc..c..c\n...u...\nc@r#l.c\n...d...\nc..c..c\n\n..u..\n.l#r.\n..d..\n.l#r.\n..@..\n.....\n\n\n\n(........\n....D.R.\n.#.P....\n@.L..#.R\n.DUU.L..\n........)\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",0,"tick","tick",1,"tick",0,"tick","tick",3,"tick","tick",0,"tick","tick",3,"tick","tick",3,0,"tick",3,"tick",2,2,1,"tick",1,"tick","tick",2,"tick","tick","tick","tick","tick","tick"],"background:0,0,background chairlefttuckedin tidy:1,0,0,0,0,\nbackground chairuptuckedin tidy:2,background chairuptuckedinoverlay table tidy:3,background table:4,background chairdownloose:5,0,0,0,\nbackground chairrighttuckedin tidy:6,0,0,0,background candlestick1:7,background candlestick3:8,0,\n0,background candlestick2:9,8,0,background player:10,0,0,\n0,0,0,0,background chairleftloose:11,5,0,\n0,0,background chairuploose:12,background chairrightloose:13,0,0,0,\n",2,"1627778539761.4514"] ], [ `gallery: flower dance`, - ["title Flower Dance\nauthor quat\nbackground_color lightbrown\ntext_color darkbrown\n\nrequire_player_movement\n\ncolor_palette 14\n\nagain_interval 0.1\n\nnoaction\n\n========\nOBJECTS\n========\n\nBackground .\nlightbrown\n\nPlayer\nred lightred\n.110.\n10000\n00000\n00000\n.000.\n\nMarker\ntransparent\n\nCheck &\nbrown\n.....\n.000.\n.0...\n.000.\n.....\n\nBud\nred green lightgreen\n.....\n.....\n...2.\n...1.\n...1.\n\nPlant\nred green lightgreen\n..0..\n.020.\n..01.\n..11.\n...1.\n\nWall #\ndarkgrey\n(darkgrey grey\n00000\n00100\n01110\n00100\n00000)\n\nEnd W\nbrown\n.....\n.000.\n.0.0.\n.000.\n.....\n\n=======\nLEGEND\n=======\n\nCollidable = Wall or Plant\n\nP = Player and Marker\n\n=======\nSOUNDS\n=======\n\nsfx7 34533704\nsfx1 78722500\nsfx2 38016702\nEndLevel 82634105\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nEnd\nCheck\nMarker\nBud\nPlayer, Wall, Plant\n\n\n======\nRULES\n======\n\n[> Player | No Collidable] -> [ | > Player] sfx7\n\n[Player] -> [Marker Player]\n\n[Bud Player] -> sfx2\n\n[Bud] -> [Plant]\n[Marker no Player] -> [Bud]\n\n[Player Check] -> [Player] checkpoint sfx1\n\n==============\nWINCONDITIONS\n==============\n\nSome Player\nAll Player on End\n\n=======\nLEVELS\n=======\n\nMessage Arrow keys to run across the garden.\nMessage Plant flowers in the dirt.\nMessage Don't land on the flower buds...\n\n......................#............#.............\n............#......#..#..#...#...................\n...........###..##...#...#....#....#.............\n...........##.##....#.#..#.#..#...#....#.........\n....##....#..##...##..#..#....#..#.#...##........\n........###..######....##.##..##.#.#.##..........\n...#######.#.###.#######.######..##..##.#........\n...#.#.###############.#####.##..##.#......#.....\n.....#.######.####.############.#####.###.#......\n.....#####.#..#..#..#.########..#.#######..#.....\n.......##.###########.#...#..###########.##......\n......######......###.#...#..##.....###.##.......\n..##.####.#........####...#####.###.###..#....#..\n.....#..###.........###...#####.###.#####.####...\n.#...######&....................###.########.....\n..#..##.###.........###...#####..&..###.###......\n...#.#.####........####...######....#####.....#..\n...#.#######......#####...#######.#######..#...##\n...#.#.#######.########...#######.#####.##.###...\n....#.####...#.#######.....##...#.##.###.#.#.....\n..###.#.#.####.##...#.......#...#.####.####.#....\n....#####.#..#.##.P.....w......##.##..#.###...#.#\n....#.###.#..#.##...#.......#...#.####...###.#...\n......########.#######.....##...#.#######........\n..##.##.######.########...###...#.###...###......\n.....##.##..........####.####.#.#.#######.#......\n.....#.##...........####.####...#.....#.#####....\n.....###............####.####...###...##..##...#.\n...#####................&####...###...####..##...\n.....###............#########.........####...#...\n.......##...........#########.........#.#.#......\n.##....#.#....&.....####################.#..#....\n....####.#############..##.####.#.####.##.#......\n.......###...#.##.##...####.###.#.###......#.#...\n..#.#.##.##.####.#####.##.#.#.#.##.#.##.##.#.....\n......#####......####.##.#.##.#####...#.####.....\n.....############.####.#..#...#.#.#.......#......\n.....####.##...#..#..........#...##...#..........\n.....#...#.....##.#..####...#...#..#....#........\n........#...#.#...##.....#.#.........#...........\n...........#..#...#.......#.....#................\n..............#....##....##.....#....#...........\n\n", [3, 3, 0, 1, 2, 2, 3, 3, 0, 1], "background: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,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,background wall:1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,\n0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,1,1,0,1,\n0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,\n1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,1,0,0,1,1,1,1,1,1,0,0,1,0,0,\n0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,0,1,0,1,1,1,1,0,0,0,0,\n0,0,0,0,0,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0,0,1,0,1,1,1,0,1,0,0,0,0,0,0,0,1,1,1,1,1,0,1,0,1,\n1,1,1,1,1,1,0,0,0,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,0,1,\n1,1,1,1,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,0,0,background check:2,0,0,1,1,0,1,0,0,1,1,0,0,0,\n0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,1,1,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,1,\n0,1,0,0,1,0,0,0,0,1,0,1,1,1,1,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,\n0,0,0,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,0,0,0,2,1,0,1,0,1,0,0,1,1,1,0,0,0,1,0,1,1,\n1,1,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,1,1,0,1,0,0,0,\n0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,0,0,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,\n0,0,1,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,0,0,0,1,1,1,0,background plant:3,0,1,1,0,0,0,\n0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,1,0,0,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,\n1,1,0,0,1,0,1,0,0,0,1,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,0,0,0,0,1,\n0,0,1,0,0,0,1,1,1,0,0,0,1,1,0,1,1,1,1,1,0,0,0,1,1,1,1,1,0,1,1,1,1,0,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,\n0,1,1,1,1,1,1,0,1,1,1,1,0,0,0,0,0,1,1,1,1,0,1,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,1,1,1,1,0,1,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,\nbackground end:4,0,0,0,0,0,0,2,1,1,1,1,1,1,0,0,0,1,0,0,0,0,1,1,1,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,\n1,1,1,1,1,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,0,1,1,\n0,1,0,0,0,1,1,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,1,0,0,\n0,0,0,0,0,0,1,0,1,1,0,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,0,1,0,0,0,0,1,\n1,1,1,1,1,1,1,0,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,3,1,1,1,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,\n0,1,1,1,1,3,0,3,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,\n1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,0,1,0,1,1,0,0,0,0,1,1,1,1,1,0,1,0,1,1,1,2,0,0,0,0,0,0,0,0,0,0,background marker player:5,1,1,0,0,1,0,0,1,\n1,0,1,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,1,1,0,0,0,0,\n1,0,1,0,1,1,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,\n1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,0,1,1,0,1,background bud:6,0,0,0,3,1,1,0,1,0,0,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,\n1,0,1,0,1,1,1,1,1,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,0,0,1,1,0,1,1,0,1,1,0,0,1,0,1,0,1,\n1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,0,1,1,1,0,1,0,1,\n1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,0,1,1,1,1,1,0,1,0,1,0,1,1,0,1,0,0,1,1,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,1,0,0,0,0,1,1,1,0,1,1,1,1,0,0,1,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,\n1,0,1,0,0,0,1,1,0,0,1,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,\n0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,\n0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,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,1,0,0,0,0,0,0,0,0,0,1,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,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 3, "1627778570211.9675"] + ["title Flower Dance\nauthor quat\nbackground_color lightbrown\ntext_color darkbrown\n\nrequire_player_movement\n\ncolor_palette 14\n\nagain_interval 0.1\n\nnoaction\n\n========\nOBJECTS\n========\n\nBackground .\nlightbrown\n\nPlayer\nred lightred\n.110.\n10000\n00000\n00000\n.000.\n\nMarker\ntransparent\n\nCheck &\nbrown\n.....\n.000.\n.0...\n.000.\n.....\n\nBud\nred green lightgreen\n.....\n.....\n...2.\n...1.\n...1.\n\nPlant\nred green lightgreen\n..0..\n.020.\n..01.\n..11.\n...1.\n\nWall #\ndarkgrey\n(darkgrey grey\n00000\n00100\n01110\n00100\n00000)\n\nEnd W\nbrown\n.....\n.000.\n.0.0.\n.000.\n.....\n\n=======\nLEGEND\n=======\n\nCollidable = Wall or Plant\n\nP = Player and Marker\n\n=======\nSOUNDS\n=======\n\nsfx7 34533704\nsfx1 78722500\nsfx2 38016702\nEndLevel 82634105\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nEnd\nCheck\nMarker\nBud\nPlayer, Wall, Plant\n\n\n======\nRULES\n======\n\n[> Player | No Collidable] -> [ | > Player] sfx7\n\n[Player] -> [Marker Player]\n\n[Bud Player] -> sfx2\n\n[Bud] -> [Plant]\n[Marker no Player] -> [Bud]\n\n[Player Check] -> [Player] checkpoint sfx1\n\n==============\nWINCONDITIONS\n==============\n\nSome Player\nAll Player on End\n\n=======\nLEVELS\n=======\n\nMessage Arrow keys to run across the garden.\nMessage Plant flowers in the dirt.\nMessage Don't land on the flower buds...\n\n......................#............#.............\n............#......#..#..#...#...................\n...........###..##...#...#....#....#.............\n...........##.##....#.#..#.#..#...#....#.........\n....##....#..##...##..#..#....#..#.#...##........\n........###..######....##.##..##.#.#.##..........\n...#######.#.###.#######.######..##..##.#........\n...#.#.###############.#####.##..##.#......#.....\n.....#.######.####.############.#####.###.#......\n.....#####.#..#..#..#.########..#.#######..#.....\n.......##.###########.#...#..###########.##......\n......######......###.#...#..##.....###.##.......\n..##.####.#........####...#####.###.###..#....#..\n.....#..###.........###...#####.###.#####.####...\n.#...######&....................###.########.....\n..#..##.###.........###...#####..&..###.###......\n...#.#.####........####...######....#####.....#..\n...#.#######......#####...#######.#######..#...##\n...#.#.#######.########...#######.#####.##.###...\n....#.####...#.#######.....##...#.##.###.#.#.....\n..###.#.#.####.##...#.......#...#.####.####.#....\n....#####.#..#.##.P.....w......##.##..#.###...#.#\n....#.###.#..#.##...#.......#...#.####...###.#...\n......########.#######.....##...#.#######........\n..##.##.######.########...###...#.###...###......\n.....##.##..........####.####.#.#.#######.#......\n.....#.##...........####.####...#.....#.#####....\n.....###............####.####...###...##..##...#.\n...#####................&####...###...####..##...\n.....###............#########.........####...#...\n.......##...........#########.........#.#.#......\n.##....#.#....&.....####################.#..#....\n....####.#############..##.####.#.####.##.#......\n.......###...#.##.##...####.###.#.###......#.#...\n..#.#.##.##.####.#####.##.#.#.#.##.#.##.##.#.....\n......#####......####.##.#.##.#####...#.####.....\n.....############.####.#..#...#.#.#.......#......\n.....####.##...#..#..........#...##...#..........\n.....#...#.....##.#..####...#...#..#....#........\n........#...#.#...##.....#.#.........#...........\n...........#..#...#.......#.....#................\n..............#....##....##.....#....#...........\n\n",[3,3,0,1,2,2,3,3,0,1],"background: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,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,background wall:1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,\n0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,1,1,0,1,\n0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,\n1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,1,0,0,1,1,1,1,1,1,0,0,1,0,0,\n0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,1,0,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,0,1,0,1,1,1,1,0,0,0,0,\n0,0,0,0,0,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0,0,1,0,1,1,1,0,1,0,0,0,0,0,0,0,1,1,1,1,1,0,1,0,1,\n1,1,1,1,1,1,0,0,0,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,0,1,\n1,1,1,1,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,0,0,background check:2,0,0,1,1,0,1,0,0,1,1,0,0,0,\n0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,1,1,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0,1,\n0,1,0,0,1,0,0,0,0,1,0,1,1,1,1,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,\n0,0,0,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,0,0,0,2,1,0,1,0,1,0,0,1,1,1,0,0,0,1,0,1,1,\n1,1,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,0,0,0,0,1,0,0,1,0,1,1,0,1,0,0,0,\n0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,0,0,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,\n0,0,1,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,0,0,0,1,1,1,0,background plant:3,0,1,1,0,0,0,\n0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,1,0,0,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,\n1,1,0,0,1,0,1,0,0,0,1,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,0,0,0,0,1,\n0,0,1,0,0,0,1,1,1,0,0,0,1,1,0,1,1,1,1,1,0,0,0,1,1,1,1,1,0,1,1,1,1,0,1,0,1,0,1,0,0,0,1,1,0,1,1,0,1,\n0,1,1,1,1,1,1,0,1,1,1,1,0,0,0,0,0,1,1,1,1,0,1,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,1,1,1,1,0,1,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,\nbackground end:4,0,0,0,0,0,0,2,1,1,1,1,1,1,0,0,0,1,0,0,0,0,1,1,1,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,\n1,1,1,1,1,1,0,1,0,0,0,1,0,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,0,1,1,\n0,1,0,0,0,1,1,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,1,0,0,\n0,0,0,0,0,0,1,0,1,1,0,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,0,1,0,0,0,0,1,\n1,1,1,1,1,1,1,0,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,3,1,1,1,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,\n0,1,1,1,1,3,0,3,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,\n1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,0,1,0,1,1,0,0,0,0,1,1,1,1,1,0,1,0,1,1,1,2,0,0,0,0,0,0,0,0,0,0,background marker player:5,1,1,0,0,1,0,0,1,\n1,0,1,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,1,1,1,0,0,0,0,\n1,0,1,0,1,1,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,\n1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,0,1,1,0,1,background bud:6,0,0,0,3,1,1,0,1,0,0,0,0,1,0,1,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,\n1,0,1,0,1,1,1,1,1,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,0,0,1,1,0,1,1,0,1,1,0,0,1,0,1,0,1,\n1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,0,1,1,1,0,1,0,1,\n1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,0,1,1,1,1,1,0,1,0,1,0,1,1,0,1,0,0,1,1,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,1,0,0,0,0,1,1,1,0,1,1,1,1,0,0,1,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,\n1,0,1,0,0,0,1,1,0,0,1,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,\n0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,\n0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,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,1,0,0,0,0,0,0,0,0,0,1,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,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",3,"1627778570211.9675"] ], [ `gallery: stairways`, - ["title Stairways\nauthor Franklin P. Dyer\n\n========\nOBJECTS\n========\n\nBackground .\nLightgray\n\nWall x\nDarkgray Gray\n00000\n01110\n01010\n01110\n00000\n\nBlock o\nDarkbrown Brown\n00000\n01110\n01010\n01110\n00000\n\nPlayer p\nBlack Brown #d2b48c Blue\n.000.\n00000\n.121.\n.333.\n.3.3.\n\nStairs s\nLightgray Gray Darkgray Black\n00000\n01110\n02220\n03330\n00000\n\n=======\nLEGEND\n=======\n\n@ = Block and Stairs\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nStairs\nPlayer, Wall, Block\n\n======\nRULES\n======\n\n[> Player|Block No Stairs] -> [> Player|> Block No Stairs]\n[> Player|Block Stairs] -> [Player|> Block Stairs]\n[> Block|...|Block|Wall] -> [Block|...|Block|Wall]\n[Wall|< Block|...|Block] -> [Wall|Block|...|Block]\n[Background|< Block|...|Block] -> [Background|< Block|...|< Block]\n[> Block|...|Block|Background] -> [> Block|...|> Block|Background]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Player on Stairs\n\n=======\nLEVELS\n=======\n\nmessage Find the stairs, and go down them.\nmessage All of the boxes in a row or column move together.\n\nxxxxxx\nx.po.x\nx.oo.x\nx....x\nx@o..x\nxxxxxx\n\nxxxxxxx\nx...oxx\nxoo.@xx\nxopoo.x\nx.o.oxx\nx.xxxxx\nxxxxxxx\n\nxxxxxxx\nxoooo.x\nxo@...x\nx.opo.x\nx...o.x\nx.o...x\nxxxxxxx\n\nmessage You win!\n\n\n", [0, 3, 3, 0, 2, 1, 3, 2, 2, 1, 0, 0, 3, 1, 3, 2, 2, 3, 0], "background wall:0,0,0,0,0,0,0,\n0,background:1,background block:2,1,1,1,0,\n0,2,1,2,1,0,0,\n0,1,1,2,2,0,0,\n0,2,background block stairs:3,background player:4,2,0,0,\n0,0,0,2,0,0,0,\n0,0,0,0,0,0,0,\n", 3, "1627778592073.838"] + ["title Stairways\nauthor Franklin P. Dyer\n\n========\nOBJECTS\n========\n\nBackground .\nLightgray\n\nWall x\nDarkgray Gray\n00000\n01110\n01010\n01110\n00000\n\nBlock o\nDarkbrown Brown\n00000\n01110\n01010\n01110\n00000\n\nPlayer p\nBlack Brown #d2b48c Blue\n.000.\n00000\n.121.\n.333.\n.3.3.\n\nStairs s\nLightgray Gray Darkgray Black\n00000\n01110\n02220\n03330\n00000\n\n=======\nLEGEND\n=======\n\n@ = Block and Stairs\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nStairs\nPlayer, Wall, Block\n\n======\nRULES\n======\n\n[> Player|Block No Stairs] -> [> Player|> Block No Stairs]\n[> Player|Block Stairs] -> [Player|> Block Stairs]\n[> Block|...|Block|Wall] -> [Block|...|Block|Wall]\n[Wall|< Block|...|Block] -> [Wall|Block|...|Block]\n[Background|< Block|...|Block] -> [Background|< Block|...|< Block]\n[> Block|...|Block|Background] -> [> Block|...|> Block|Background]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Player on Stairs\n\n=======\nLEVELS\n=======\n\nmessage Find the stairs, and go down them.\nmessage All of the boxes in a row or column move together.\n\nxxxxxx\nx.po.x\nx.oo.x\nx....x\nx@o..x\nxxxxxx\n\nxxxxxxx\nx...oxx\nxoo.@xx\nxopoo.x\nx.o.oxx\nx.xxxxx\nxxxxxxx\n\nxxxxxxx\nxoooo.x\nxo@...x\nx.opo.x\nx...o.x\nx.o...x\nxxxxxxx\n\nmessage You win!\n\n\n",[0,3,3,0,2,1,3,2,2,1,0,0,3,1,3,2,2,3,0],"background wall:0,0,0,0,0,0,0,\n0,background:1,background block:2,1,1,1,0,\n0,2,1,2,1,0,0,\n0,1,1,2,2,0,0,\n0,2,background block stairs:3,background player:4,2,0,0,\n0,0,0,2,0,0,0,\n0,0,0,0,0,0,0,\n",3,"1627778592073.838"] ], [ `gallery: rock, paper, scissors`, - ["title Rock, Paper, Scissors (v0.90 = v1.alpha)\nauthor chaotic_iak\nhomepage chaosatthesky.wordpress.com\n\nagain_interval 0.15\nkey_repeat_interval 0.2\nrun_rules_on_level_start\nverbose_logging\n\n(\n\"Rock, Paper, Scissors\" by chaotic_iak\nThe popular game can't be that hard, right?\n\nChangelog:\n09-Jul-2015 v0.10: Original mechanics\n10-Jul-2015 : Gems, sticky paper\n10-Jul-2015 v0.20: Add 1-8\n11-Jul-2015 : Skip level\n11-Jul-2015 v0.50: Add 9,10\n12-Jul-2015 v0.51: Change 3,5,6\n13-Jul-2015 v0.52: Change 7,8,9\n14-Jul-2015 v0.60: Move 10>12, add 10,11\n15-Jul-2015 v0.61: Change 9,11\n17-Jul-2015 v0.70: Move 11>12, add 11,13,14\n01-Aug-2015 v1.00: Move a lot, change 14, add 10,13,17\n)\n\n=======\nOBJECTS\n=======\nbackground\nlightgreen yellow\n00000\n00010\n00000\n01000\n00000\n\nwall\ndarkgreen green\n01110\n10001\n01110\n10001\n00000\n\nlevel0\ndarkgreen green\n01100\n10010\n10010\n10010\n01100\n\nlevel1\ndarkgreen green\n00100\n01100\n00100\n00100\n01110\n\nlevel2\ndarkgreen green\n01100\n10010\n00100\n01000\n11110\n\nlevel3\ndarkgreen green\n11100\n00010\n01100\n00010\n11100\n\nlevel4\ndarkgreen green\n00100\n01100\n10100\n11110\n00100\n\nlevel5\ndarkgreen green\n11110\n10000\n11100\n00010\n11100\n\nlevel6\ndarkgreen green\n01100\n10000\n11100\n10010\n01100\n\nlevel7\ndarkgreen green\n11110\n00010\n00100\n01000\n01000\n\nlevel8\ndarkgreen green\n01100\n10010\n01100\n10010\n01100\n\nlevel9\ndarkgreen green\n01100\n10010\n01110\n00010\n11100\n\nplayer\nblack orange red blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nrock\ndarkbrown brown orange\n.112.\n01112\n01112\n01111\n.000.\n\npaper\nlightgray gray\n0001.\n00001\n00000\n00000\n00000\n\npaperborderl\nwhite\n0....\n0....\n0....\n0....\n0....\n\npaperborderd\nwhite\n.....\n.....\n.....\n.....\n00000\n\npaperborderld\nwhite\n.....\n.....\n.....\n.....\n0....\n\npapernexttoborderl\ntransparent\n\npapernexttoborderd\ntransparent\n\npapernofold\nlightgray\n...00\n....0\n.....\n.....\n.....\n\nscissorsu\ndarkgray gray red darkred\n1...1\n01.10\n.010.\n22.22\n23.23\n\nscissorsl\ndarkgray gray red darkred\n10.22\n.1023\n..1..\n.1022\n10.23\n\nscissorsd\ndarkgray gray red darkred\n22.22\n23.23\n.010.\n01.10\n1...1\n\nscissorsr\ndarkgray gray red darkred\n22.01\n2301.\n..1..\n2201.\n23.01\n\ngem\nblue lightblue\n.....\n.011.\n00001\n.000.\n..0..\n\nstar\ndarkred red\n.....\n.011.\n00001\n.000.\n..0..\n\nnostar\ndarkgreen green\n00000\n01110\n11111\n01110\n00100\n\nstarcover\ndarkred red\n.....\n.011.\n00001\n.000.\n..0..\n\nexit\nblue lightblue\n.001.\n01011\n00011\n00101\n.011.\n\nexitholder\ntransparent\n\nstartlevel\ntransparent\n\nskipcheck\ntransparent\n\nnextstar\ntransparent\n\nprocessedstar\ntransparent\n\n======\nLEGEND\n======\n. = background\n# = wall\no = player and startlevel\ng = gem\ne = exit and exitholder\nr = rock\np = paper\nw = scissorsu\na = scissorsl\ns = scissorsd\nd = scissorsr\n0 = wall and level0\n1 = wall and level1\n2 = wall and level2\n3 = wall and level3\n4 = wall and level4\n5 = wall and level5\n6 = wall and level6\n7 = wall and level7\n8 = wall and level8\n9 = wall and level9\n* = star\n\nscissors = scissorsu or scissorsl or scissorsd or scissorsr\nobject = wall or player or rock or paper or scissors or gem or star or exitholder\nlvnum = level0 or level1 or level2 or level3 or level4 or level5 or level6 or level7 or level8 or level9\npaperborder = paperborderl or paperborderd or paperborderld or papernofold or papernexttoborderl or papernexttoborderd\nsprites = lvnum or paperborder\n\n======\nSOUNDS\n======\nplayer cantmove 88720304\n\nrock move 12612307\npaper move 96873507\nscissors move 93218507\n\nrock destroy 98086501\npaper destroy 41726709\nscissors destroy 5523702\ngem destroy 73128500\nstar destroy 64247508\n\nundo 28911504\nsfx0 13629103\nsfx9 31899108 (skip check)\nendlevel 18800703\n\n===============\nCOLLISIONLAYERS\n===============\nprocessedstar, nextstar, startlevel, skipcheck\npapernexttoborderd\npapernexttoborderl\nbackground\nexit\nobject\nlvnum, nostar\nstarcover\npaperborderl\npaperborderd\npaperborderld\npapernofold\n\n=====\nRULES\n=====\n(LEVEL START)\nright [startlevel][lvnum|no lvnum] -> [startlevel][lvnum|nextstar]\nright [startlevel][star no processedstar][nextstar|] -> [startlevel][star processedstar][nostar|nextstar]\n[startlevel][nextstar] -> [startlevel][]\n[startlevel][processedstar] -> [startlevel][]\nright [startlevel][lvnum|nostar] -> [startlevel][lvnum|nostar nextstar]\n[startlevel] -> []\n\n(STUFF)\n[action player skipcheck] -> [player] win\n[orthogonal player skipcheck] -> [orthogonal player]\n[action player no skipcheck] -> [player skipcheck] sfx9\n[skipcheck] -> message ********** SKIP LEVEL? *********** * - ACTION TWICE to CONFIRM * * - ACTION then MOVE to CANCEL *\n\n(MOVEMENT)\nstartloop\n(rock)\n[> player|rock] -> [> player|> rock]\n(scissors)\ndown [> object|scissors no scissorsu] -> [> object|> scissors]\ndown [> scissors|scissorsu] -> [> scissors|> scissorsu]\ndown [> gem|scissorsu] -> [> gem|> scissorsu]\nright [> object|scissors no scissorsl] -> [> object|> scissors]\nright [> scissors|scissorsl] -> [> scissors|> scissorsl]\nright [> gem|scissorsl] -> [> gem|> scissorsl]\nup [> object|scissors no scissorsd] -> [> object|> scissors]\nup [> scissors|scissorsd] -> [> scissors|> scissorsd]\nup [> gem|scissorsd] -> [> gem|> scissorsd]\nleft [> object|scissors no scissorsr] -> [> object|> scissors]\nleft [> scissors|scissorsr] -> [> scissors|> scissorsr]\nleft [> gem|scissorsr] -> [> gem|> scissorsr]\n(paper)\n rigid down [> object no rock no scissorsd|paper] -> [> object|> paper]\n+ rigid right [> object no rock no scissorsr|paper] -> [> object|> paper]\n+ rigid up [> object no rock no scissorsu|paper] -> [> object|> paper]\n+ rigid left [> object no rock no scissorsl|paper] -> [> object|> paper]\n+ rigid [orthogonal paper|paper] -> [orthogonal paper|orthogonal paper]\n(gem/star)\n[> player|gem] -> [> player|]\n[> player|star] -> [> player|processedstar]\n[> object|gem] -> [> object|> gem]\n[> object|star] -> [> object|> star]\nendloop\n(exit)\n[> player|exitholder] -> [> player|]\n\n(INTERACTION)\n(rock/paper)\n[> rock|stationary paper] -> [|paper]\n[> paper|stationary rock] -> [> paper|]\n(paper/scissors)\ndown [> paper|stationary scissorsu] -> [|scissorsu]\ndown [> scissorsd|stationary paper] -> [> scissorsd|]\nright [> paper|stationary scissorsl] -> [|scissorsl]\nright [> scissorsr|stationary paper] -> [> scissorsr|]\nup [> paper|stationary scissorsd] -> [|scissorsd]\nup [> scissorsu|stationary paper] -> [> scissorsu|]\nleft [> paper|stationary scissorsr] -> [|scissorsr]\nleft [> scissorsl|stationary paper] -> [> scissorsl|]\n(scissors/rock)\ndown [> scissorsd|stationary rock] -> [|rock]\ndown [> rock|stationary scissorsu] -> [> rock|]\nright [> scissorsr|stationary rock] -> [|rock]\nright [> rock|stationary scissorsl] -> [> rock|]\nup [> scissorsu|stationary rock] -> [|rock]\nup [> rock|stationary scissorsd] -> [> rock|]\nleft [> scissorsl|stationary rock] -> [|rock]\nleft [> rock|stationary scissorsr] -> [> rock|]\n\n(FINISH)\n(paper border)\nlate [paperborder] -> []\nlate left [paper|no paper] -> [paper paperborderl|]\nlate down [paper|no paper] -> [paper paperborderd|]\nlate up [paperborderl|paper] -> [paperborderl|paper papernexttoborderl]\nlate right [paperborderd|paper] -> [paperborderd|paper papernexttoborderd]\nlate [papernexttoborderl papernexttoborderd] -> [paperborderld]\nlate up [paper|paper] -> [paper papernofold|paper]\nlate right [paper|paper] -> [paper papernofold|paper]\n(star check)\nlate right [processedstar][nextstar|] -> [][starcover|nextstar]\n(exit check)\nlate [player exit][gem] -> sfx0\nlate [exit no player] -> [exit exitholder]\n\n=============\nWINCONDITIONS\n=============\nno gem\nall player on exit\n\n======\nLEVELS\n======\n(and unofficial titles!)\n\nmessage ROCKS are HEAVY\n\n(Rockfall)\n############\n#......#...#\n#.....rr...#\n##r##..#r.r#\n#...####rr.#\n#...##.r..r#\n#.o.#e..rr.#\n#...##..r..#\n01##########\n\nmessage BLUE GEMS are IMPORTANT\n\nmessage RED GEMS are DIFFICULT\n\n(Excavation)\n############\n#..........#\n#.g...r.rr.#\n##.##.rr.r.#\n#.e.##..rr.#\n#...#grr..##\n#.o.##.r.rg#\n#...##.*r.##\n02##########\n\nmessage GEMS are LIGHT\n\n(Gems in a Rock Pile)\n############\n#...#......#\n#.g..ergr..#\n#...##.#####\n##r##.grgr.#\n#...#.rgr*.#\n#.o.#.grgr.#\n#...#.rgrg.#\n03##########\n\nmessage PAPER is STICKY\n\n(Think Before You Stick)\n############\n#......*#e##\n#......#pp.#\n#ppp#..p..p#\n#p.p#.p.p.p#\n#...#.p..p.#\n#.o.#..pp..#\n#...#......#\n04##########\n\nmessage SCISSORS have SHARP BLADES\n\n(Ouch)\n############\n#..a.....###\n#..ag....###\n##d##...we.#\n#...#.a.s#.#\n#...#.s..#*#\n#.o.#....w.#\n#...#...#..#\n05##########\n\nmessage ROCK crushes SCISSORS\n\n(Demolition Derby)\n############\n#...#..#..##\n#.r.ad....##\n#...#..#.w*#\n##w##....w##\n#...##...w##\n#.o.#ew....#\n#...##w....#\n06##########\n\nmessage PAPER covers ROCK\n\n(One Versus Twenty-Two)\n############\n#.p.prrre#*#\n#...prr.r#r#\n##r##r.r.r.#\n#...#.r.r.r#\n#...#r.r.r.#\n#.o.#.rpr.r#\n#...#r.r.r.#\n07##########\n\nmessage SCISSORS cut PAPER\n\n(Big Paper is Useless)\n############\n#...p..e##*#\n#.p.p.a###p#\n#...p......#\n##w##...pp.#\n#...#.d.pp.#\n#.o.#...pp.#\n#...#......#\n08##########\n\nmessage ROCK must be PUSHED DIRECTLY\n\nmessage EVERYTHING ELSE can PUSH EACH OTHER\n\n(Light and Heavy)\n############\n#....r*..r.#\n#...g#r.#.e#\n#.dpp#g.ppp#\n##p###w.#..#\n#...#...#..#\n#.o.#......#\n#...#......#\n09##########\n\nmessage DISCOVER other SECRETS\n\nmessage GOOD LUCK\n\n(More Gems, More Rock Piles)\n#############\n#o...e#.....#\n#rgrgr#*rgrg#\n#grgrg#rgrgr#\n#ggrgrggrgrg#\n#rggrg#rgrgr#\n#grggr#gggrg#\n#.....#.....#\n10###########\n\n(Scissors Field)\n################\n#....#.....#e..#\n#.*.#.s..#a.#..#\n#...#.#.....#..#\n#s#s#...#...#..#\n#.........#.#s##\n#......#.....o.#\n#..............#\n11##############\n\n(Littered Boulders)\n############\n#...#...a..#\n#..g..#.#.e#\n#.rrr.rr##s#\n#..r.#....o#\n#.#r..rr##w#\n#..r..#.#..#\n#..r....a*.#\n12##########\n\n(Cleaning Job)\n###########\n#.....o#e.#\n#......#..#\n#..######s#\n#grggrgggr#\n#grrggrrrg#\n#rrgrrrggr#\n#.prrggrr*#\n#.rggrggrr#\n13#########\n\n(Clearing the Path)\n##############\n#p.........rr#\n#p...ss.aa.rr#\n#p...ss.aa.#r#\n#ppp...r...#*#\n#pop.dd.ww.###\n#p...dd.ww##e#\n#ppppp...rrrr#\n14############\n\n(A-maze-ing Paper)\n#################\n#..............r#\n#.ppppppppp.###.#\n#.p.....prp.#...#\n#.p.ppp...p.#.*.#\n#.p...pp..p.#...#\n#.ppp.ppppp.#####\n#.p...p...p.#...#\n#.pp.pp.p.p.#.e.#\n#.p.....p.o.a...#\n#.ppppppppp.#.w.#\n#...........#...#\n15###############\n\n(Exercising Into Shape)\n#############\n###.......#e#\n#....ppp..#r#\n#....ppp..o.#\n#....ppp....#\n#.#.........#\n#r#..w.a..###\n#*#.......###\n16###########\n\n(Surrounded)\n#######################\n#ppp....p....ppp......#\n#p.............p......#\n#p.............p......#\n#...p...p...p.........#\n#.....................#\n#...............#.....#\n#...............#.....#\n#p..p...p...p..p#.....#\n#...............#.....#\n#...............#..w..#\n#...............#..e..#\n#...p...p...p...#######\n#ppp...........p...ppp#\n#pop...........p...p*p#\n#ppp....p....ppp...ppp#\n17#####################\n\n(The Killer)\n##########\n#........#\n#.ppp....#\n#.prp.g..#\n#.ppp....#\n#....a...#\n###....aa#\n#ero.##*##\n18########\n\nmessage CONGRATULATIONS\n", [0, 0, 0, 0, 3, 3, 3, 3, 2, 2, 2, 2, 2, 3, 3, 3, 3, 0, 0, 0, 0, 2, 1, 1, 3, 3, 2, 2, 1, 0, 3, 0, 1, 2, 1, 0], "background wall:0,0,0,0,0,0,0,0,background level0 wall:1,0,background:2,2,\n2,2,2,2,2,background level4 wall:3,0,2,2,2,2,2,\n2,2,background nextstar nostar wall:4,0,2,2,2,2,2,2,2,0,\n0,background paper paperborderl papernexttoborderl papernofold:5,background paper paperborderd paperborderl papernofold:6,0,0,0,0,0,0,0,background paper paperborderd papernofold:7,2,\nbackground paper paperborderl papernexttoborderl:8,6,2,2,2,0,0,background paper paperborderld:9,6,2,background paper paperborderd papernexttoborderd papernofold:10,2,\n2,2,0,0,background star:11,0,background paper paperborderl papernofold:12,10,background player:13,2,2,0,\n0,0,12,7,2,2,2,2,0,0,background exit exitholder:14,background paper papernofold:15,\n10,2,2,2,2,0,0,0,background paper:16,10,2,2,\n2,2,0,0,0,0,0,0,0,0,0,0,\n", 8, "1627778623784.798"] + ["title Rock, Paper, Scissors (v0.90 = v1.alpha)\nauthor chaotic_iak\nhomepage chaosatthesky.wordpress.com\n\nagain_interval 0.15\nkey_repeat_interval 0.2\nrun_rules_on_level_start\nverbose_logging\n\n(\n\"Rock, Paper, Scissors\" by chaotic_iak\nThe popular game can't be that hard, right?\n\nChangelog:\n09-Jul-2015 v0.10: Original mechanics\n10-Jul-2015 : Gems, sticky paper\n10-Jul-2015 v0.20: Add 1-8\n11-Jul-2015 : Skip level\n11-Jul-2015 v0.50: Add 9,10\n12-Jul-2015 v0.51: Change 3,5,6\n13-Jul-2015 v0.52: Change 7,8,9\n14-Jul-2015 v0.60: Move 10>12, add 10,11\n15-Jul-2015 v0.61: Change 9,11\n17-Jul-2015 v0.70: Move 11>12, add 11,13,14\n01-Aug-2015 v1.00: Move a lot, change 14, add 10,13,17\n)\n\n=======\nOBJECTS\n=======\nbackground\nlightgreen yellow\n00000\n00010\n00000\n01000\n00000\n\nwall\ndarkgreen green\n01110\n10001\n01110\n10001\n00000\n\nlevel0\ndarkgreen green\n01100\n10010\n10010\n10010\n01100\n\nlevel1\ndarkgreen green\n00100\n01100\n00100\n00100\n01110\n\nlevel2\ndarkgreen green\n01100\n10010\n00100\n01000\n11110\n\nlevel3\ndarkgreen green\n11100\n00010\n01100\n00010\n11100\n\nlevel4\ndarkgreen green\n00100\n01100\n10100\n11110\n00100\n\nlevel5\ndarkgreen green\n11110\n10000\n11100\n00010\n11100\n\nlevel6\ndarkgreen green\n01100\n10000\n11100\n10010\n01100\n\nlevel7\ndarkgreen green\n11110\n00010\n00100\n01000\n01000\n\nlevel8\ndarkgreen green\n01100\n10010\n01100\n10010\n01100\n\nlevel9\ndarkgreen green\n01100\n10010\n01110\n00010\n11100\n\nplayer\nblack orange red blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nrock\ndarkbrown brown orange\n.112.\n01112\n01112\n01111\n.000.\n\npaper\nlightgray gray\n0001.\n00001\n00000\n00000\n00000\n\npaperborderl\nwhite\n0....\n0....\n0....\n0....\n0....\n\npaperborderd\nwhite\n.....\n.....\n.....\n.....\n00000\n\npaperborderld\nwhite\n.....\n.....\n.....\n.....\n0....\n\npapernexttoborderl\ntransparent\n\npapernexttoborderd\ntransparent\n\npapernofold\nlightgray\n...00\n....0\n.....\n.....\n.....\n\nscissorsu\ndarkgray gray red darkred\n1...1\n01.10\n.010.\n22.22\n23.23\n\nscissorsl\ndarkgray gray red darkred\n10.22\n.1023\n..1..\n.1022\n10.23\n\nscissorsd\ndarkgray gray red darkred\n22.22\n23.23\n.010.\n01.10\n1...1\n\nscissorsr\ndarkgray gray red darkred\n22.01\n2301.\n..1..\n2201.\n23.01\n\ngem\nblue lightblue\n.....\n.011.\n00001\n.000.\n..0..\n\nstar\ndarkred red\n.....\n.011.\n00001\n.000.\n..0..\n\nnostar\ndarkgreen green\n00000\n01110\n11111\n01110\n00100\n\nstarcover\ndarkred red\n.....\n.011.\n00001\n.000.\n..0..\n\nexit\nblue lightblue\n.001.\n01011\n00011\n00101\n.011.\n\nexitholder\ntransparent\n\nstartlevel\ntransparent\n\nskipcheck\ntransparent\n\nnextstar\ntransparent\n\nprocessedstar\ntransparent\n\n======\nLEGEND\n======\n. = background\n# = wall\no = player and startlevel\ng = gem\ne = exit and exitholder\nr = rock\np = paper\nw = scissorsu\na = scissorsl\ns = scissorsd\nd = scissorsr\n0 = wall and level0\n1 = wall and level1\n2 = wall and level2\n3 = wall and level3\n4 = wall and level4\n5 = wall and level5\n6 = wall and level6\n7 = wall and level7\n8 = wall and level8\n9 = wall and level9\n* = star\n\nscissors = scissorsu or scissorsl or scissorsd or scissorsr\nobject = wall or player or rock or paper or scissors or gem or star or exitholder\nlvnum = level0 or level1 or level2 or level3 or level4 or level5 or level6 or level7 or level8 or level9\npaperborder = paperborderl or paperborderd or paperborderld or papernofold or papernexttoborderl or papernexttoborderd\nsprites = lvnum or paperborder\n\n======\nSOUNDS\n======\nplayer cantmove 88720304\n\nrock move 12612307\npaper move 96873507\nscissors move 93218507\n\nrock destroy 98086501\npaper destroy 41726709\nscissors destroy 5523702\ngem destroy 73128500\nstar destroy 64247508\n\nundo 28911504\nsfx0 13629103\nsfx9 31899108 (skip check)\nendlevel 18800703\n\n===============\nCOLLISIONLAYERS\n===============\nprocessedstar, nextstar, startlevel, skipcheck\npapernexttoborderd\npapernexttoborderl\nbackground\nexit\nobject\nlvnum, nostar\nstarcover\npaperborderl\npaperborderd\npaperborderld\npapernofold\n\n=====\nRULES\n=====\n(LEVEL START)\nright [startlevel][lvnum|no lvnum] -> [startlevel][lvnum|nextstar]\nright [startlevel][star no processedstar][nextstar|] -> [startlevel][star processedstar][nostar|nextstar]\n[startlevel][nextstar] -> [startlevel][]\n[startlevel][processedstar] -> [startlevel][]\nright [startlevel][lvnum|nostar] -> [startlevel][lvnum|nostar nextstar]\n[startlevel] -> []\n\n(STUFF)\n[action player skipcheck] -> [player] win\n[orthogonal player skipcheck] -> [orthogonal player]\n[action player no skipcheck] -> [player skipcheck] sfx9\n[skipcheck] -> message ********** SKIP LEVEL? *********** * - ACTION TWICE to CONFIRM * * - ACTION then MOVE to CANCEL *\n\n(MOVEMENT)\nstartloop\n(rock)\n[> player|rock] -> [> player|> rock]\n(scissors)\ndown [> object|scissors no scissorsu] -> [> object|> scissors]\ndown [> scissors|scissorsu] -> [> scissors|> scissorsu]\ndown [> gem|scissorsu] -> [> gem|> scissorsu]\nright [> object|scissors no scissorsl] -> [> object|> scissors]\nright [> scissors|scissorsl] -> [> scissors|> scissorsl]\nright [> gem|scissorsl] -> [> gem|> scissorsl]\nup [> object|scissors no scissorsd] -> [> object|> scissors]\nup [> scissors|scissorsd] -> [> scissors|> scissorsd]\nup [> gem|scissorsd] -> [> gem|> scissorsd]\nleft [> object|scissors no scissorsr] -> [> object|> scissors]\nleft [> scissors|scissorsr] -> [> scissors|> scissorsr]\nleft [> gem|scissorsr] -> [> gem|> scissorsr]\n(paper)\n rigid down [> object no rock no scissorsd|paper] -> [> object|> paper]\n+ rigid right [> object no rock no scissorsr|paper] -> [> object|> paper]\n+ rigid up [> object no rock no scissorsu|paper] -> [> object|> paper]\n+ rigid left [> object no rock no scissorsl|paper] -> [> object|> paper]\n+ rigid [orthogonal paper|paper] -> [orthogonal paper|orthogonal paper]\n(gem/star)\n[> player|gem] -> [> player|]\n[> player|star] -> [> player|processedstar]\n[> object|gem] -> [> object|> gem]\n[> object|star] -> [> object|> star]\nendloop\n(exit)\n[> player|exitholder] -> [> player|]\n\n(INTERACTION)\n(rock/paper)\n[> rock|stationary paper] -> [|paper]\n[> paper|stationary rock] -> [> paper|]\n(paper/scissors)\ndown [> paper|stationary scissorsu] -> [|scissorsu]\ndown [> scissorsd|stationary paper] -> [> scissorsd|]\nright [> paper|stationary scissorsl] -> [|scissorsl]\nright [> scissorsr|stationary paper] -> [> scissorsr|]\nup [> paper|stationary scissorsd] -> [|scissorsd]\nup [> scissorsu|stationary paper] -> [> scissorsu|]\nleft [> paper|stationary scissorsr] -> [|scissorsr]\nleft [> scissorsl|stationary paper] -> [> scissorsl|]\n(scissors/rock)\ndown [> scissorsd|stationary rock] -> [|rock]\ndown [> rock|stationary scissorsu] -> [> rock|]\nright [> scissorsr|stationary rock] -> [|rock]\nright [> rock|stationary scissorsl] -> [> rock|]\nup [> scissorsu|stationary rock] -> [|rock]\nup [> rock|stationary scissorsd] -> [> rock|]\nleft [> scissorsl|stationary rock] -> [|rock]\nleft [> rock|stationary scissorsr] -> [> rock|]\n\n(FINISH)\n(paper border)\nlate [paperborder] -> []\nlate left [paper|no paper] -> [paper paperborderl|]\nlate down [paper|no paper] -> [paper paperborderd|]\nlate up [paperborderl|paper] -> [paperborderl|paper papernexttoborderl]\nlate right [paperborderd|paper] -> [paperborderd|paper papernexttoborderd]\nlate [papernexttoborderl papernexttoborderd] -> [paperborderld]\nlate up [paper|paper] -> [paper papernofold|paper]\nlate right [paper|paper] -> [paper papernofold|paper]\n(star check)\nlate right [processedstar][nextstar|] -> [][starcover|nextstar]\n(exit check)\nlate [player exit][gem] -> sfx0\nlate [exit no player] -> [exit exitholder]\n\n=============\nWINCONDITIONS\n=============\nno gem\nall player on exit\n\n======\nLEVELS\n======\n(and unofficial titles!)\n\nmessage ROCKS are HEAVY\n\n(Rockfall)\n############\n#......#...#\n#.....rr...#\n##r##..#r.r#\n#...####rr.#\n#...##.r..r#\n#.o.#e..rr.#\n#...##..r..#\n01##########\n\nmessage BLUE GEMS are IMPORTANT\n\nmessage RED GEMS are DIFFICULT\n\n(Excavation)\n############\n#..........#\n#.g...r.rr.#\n##.##.rr.r.#\n#.e.##..rr.#\n#...#grr..##\n#.o.##.r.rg#\n#...##.*r.##\n02##########\n\nmessage GEMS are LIGHT\n\n(Gems in a Rock Pile)\n############\n#...#......#\n#.g..ergr..#\n#...##.#####\n##r##.grgr.#\n#...#.rgr*.#\n#.o.#.grgr.#\n#...#.rgrg.#\n03##########\n\nmessage PAPER is STICKY\n\n(Think Before You Stick)\n############\n#......*#e##\n#......#pp.#\n#ppp#..p..p#\n#p.p#.p.p.p#\n#...#.p..p.#\n#.o.#..pp..#\n#...#......#\n04##########\n\nmessage SCISSORS have SHARP BLADES\n\n(Ouch)\n############\n#..a.....###\n#..ag....###\n##d##...we.#\n#...#.a.s#.#\n#...#.s..#*#\n#.o.#....w.#\n#...#...#..#\n05##########\n\nmessage ROCK crushes SCISSORS\n\n(Demolition Derby)\n############\n#...#..#..##\n#.r.ad....##\n#...#..#.w*#\n##w##....w##\n#...##...w##\n#.o.#ew....#\n#...##w....#\n06##########\n\nmessage PAPER covers ROCK\n\n(One Versus Twenty-Two)\n############\n#.p.prrre#*#\n#...prr.r#r#\n##r##r.r.r.#\n#...#.r.r.r#\n#...#r.r.r.#\n#.o.#.rpr.r#\n#...#r.r.r.#\n07##########\n\nmessage SCISSORS cut PAPER\n\n(Big Paper is Useless)\n############\n#...p..e##*#\n#.p.p.a###p#\n#...p......#\n##w##...pp.#\n#...#.d.pp.#\n#.o.#...pp.#\n#...#......#\n08##########\n\nmessage ROCK must be PUSHED DIRECTLY\n\nmessage EVERYTHING ELSE can PUSH EACH OTHER\n\n(Light and Heavy)\n############\n#....r*..r.#\n#...g#r.#.e#\n#.dpp#g.ppp#\n##p###w.#..#\n#...#...#..#\n#.o.#......#\n#...#......#\n09##########\n\nmessage DISCOVER other SECRETS\n\nmessage GOOD LUCK\n\n(More Gems, More Rock Piles)\n#############\n#o...e#.....#\n#rgrgr#*rgrg#\n#grgrg#rgrgr#\n#ggrgrggrgrg#\n#rggrg#rgrgr#\n#grggr#gggrg#\n#.....#.....#\n10###########\n\n(Scissors Field)\n################\n#....#.....#e..#\n#.*.#.s..#a.#..#\n#...#.#.....#..#\n#s#s#...#...#..#\n#.........#.#s##\n#......#.....o.#\n#..............#\n11##############\n\n(Littered Boulders)\n############\n#...#...a..#\n#..g..#.#.e#\n#.rrr.rr##s#\n#..r.#....o#\n#.#r..rr##w#\n#..r..#.#..#\n#..r....a*.#\n12##########\n\n(Cleaning Job)\n###########\n#.....o#e.#\n#......#..#\n#..######s#\n#grggrgggr#\n#grrggrrrg#\n#rrgrrrggr#\n#.prrggrr*#\n#.rggrggrr#\n13#########\n\n(Clearing the Path)\n##############\n#p.........rr#\n#p...ss.aa.rr#\n#p...ss.aa.#r#\n#ppp...r...#*#\n#pop.dd.ww.###\n#p...dd.ww##e#\n#ppppp...rrrr#\n14############\n\n(A-maze-ing Paper)\n#################\n#..............r#\n#.ppppppppp.###.#\n#.p.....prp.#...#\n#.p.ppp...p.#.*.#\n#.p...pp..p.#...#\n#.ppp.ppppp.#####\n#.p...p...p.#...#\n#.pp.pp.p.p.#.e.#\n#.p.....p.o.a...#\n#.ppppppppp.#.w.#\n#...........#...#\n15###############\n\n(Exercising Into Shape)\n#############\n###.......#e#\n#....ppp..#r#\n#....ppp..o.#\n#....ppp....#\n#.#.........#\n#r#..w.a..###\n#*#.......###\n16###########\n\n(Surrounded)\n#######################\n#ppp....p....ppp......#\n#p.............p......#\n#p.............p......#\n#...p...p...p.........#\n#.....................#\n#...............#.....#\n#...............#.....#\n#p..p...p...p..p#.....#\n#...............#.....#\n#...............#..w..#\n#...............#..e..#\n#...p...p...p...#######\n#ppp...........p...ppp#\n#pop...........p...p*p#\n#ppp....p....ppp...ppp#\n17#####################\n\n(The Killer)\n##########\n#........#\n#.ppp....#\n#.prp.g..#\n#.ppp....#\n#....a...#\n###....aa#\n#ero.##*##\n18########\n\nmessage CONGRATULATIONS\n",[0,0,0,0,3,3,3,3,2,2,2,2,2,3,3,3,3,0,0,0,0,2,1,1,3,3,2,2,1,0,3,0,1,2,1,0],"background wall:0,0,0,0,0,0,0,0,background level0 wall:1,0,background:2,2,\n2,2,2,2,2,background level4 wall:3,0,2,2,2,2,2,\n2,2,background nextstar nostar wall:4,0,2,2,2,2,2,2,2,0,\n0,background paper paperborderl papernexttoborderl papernofold:5,background paper paperborderd paperborderl papernofold:6,0,0,0,0,0,0,0,background paper paperborderd papernofold:7,2,\nbackground paper paperborderl papernexttoborderl:8,6,2,2,2,0,0,background paper paperborderld:9,6,2,background paper paperborderd papernexttoborderd papernofold:10,2,\n2,2,0,0,background star:11,0,background paper paperborderl papernofold:12,10,background player:13,2,2,0,\n0,0,12,7,2,2,2,2,0,0,background exit exitholder:14,background paper papernofold:15,\n10,2,2,2,2,0,0,0,background paper:16,10,2,2,\n2,2,0,0,0,0,0,0,0,0,0,0,\n",8,"1627778623784.798"] ], [ `gallery: hazard golf`, - ["title Hazard Golf\nauthor Mark Richardson\nagain_interval 0.1\nrun_rules_on_level_start\nzoomscreen 14x13\n(verbose_logging)\n\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nHud\nBlack\n\nStroke\nLightGray Gray DarkGray\n...0.\n...0.\n..02.\n111..\n.12..\n\nOverPar\n#F22 #D00 #800\n...0.\n...0.\n..02.\n111..\n.12..\n\nPlayer\nWhite Pink DarkBlue Red LightGray\n.00..\n.11..\n22224\n.03.4\n.30.4\n\nBall\nWhite\n.....\n.....\n..0..\n.....\n.....\n\nAirBall\nWhite\n.....\n.00..\n.00..\n.....\n.....\n\nTee\nRed #A00\n.....\n.....\n0...0\n..1..\n.....\n\nHole\nBlack White\n..1..\n..1..\n..0..\n.....\n.....\n\nPin\nRed White\n..0..\n..00.\n..000\n..1..\n..1..\n\nGreen\n#6F6\n\nFairway\n#2F2\n\nRough\n#0D0\n\nWater\nBlue\n\nBridgeV\n#C83 #D94 #B72 #A61\n01110\n02220\n03330\n01110\n02220\n\nBridgeH\n#C83 #D94 #B72 #A61\n00000\n21321\n21321\n21321\n00000\n\nSand\n#FF4 #FF0 #DD0\n00022\n12110\n22120\n00121\n21001\n\nTree\nBrown #7F7 #3F3 #0B0\n.111.\n32221\n32221\n.333.\n..0..\n\nConcrete\n#AAA #999\n10000\n10000\n10000\n10000\n01111\n\nIce\n#FF8\n\nCrack\n#FFD\n....0\n0.00.\n.0.0.\n..0..\n..0..\n\nBrokenGlass\n#FFF #BBF #77F\n11020\n01100\n20202\n11001\n20110\n\nDuck\nWhite Yellow Gray\n.....\n...0.\n02001\n.000.\n.....\n\nAirDuck\nWhite Yellow Gray\n.....\n22.0.\n02201\n.000.\n.....\n\nBear\nRed Black #B72 #A61\n.....\n.222.\n22221\n22220\n3..3.\n\nAimH\nWhite\n.....\n.....\n.000.\n.....\n.....\n\nAimV\nWhite\n.....\n..0..\n..0..\n..0..\n.....\n\nCursor1\nTransparent Yellow\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nCursor2\nWhite\n.....\n..0..\n.000.\n..0..\n.....\n\nCursor3\nTransparent Yellow\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nCheatMessage\nTransparent\n\nBrokenGlassMessage\nTransparent\n\nHole12Message\nTransparent\n\nBlood\nRed\n0...0\n.0...\n00000\n0..0.\n...0.\n\nOutOfBounds\n#F88\n0...0\n.....\n.....\n.....\n0...0\n\nInit\nTransparent\n\n\n=======\nLEGEND\n=======\n\n/ = Stroke and Hud and Rough\n_ = Hud and Rough\n@ = Player and Rough\nY = Fairway and Tee and Ball and CheatMessage and Init\nW = Rough and BrokenGlassMessage\nZ = Rough and Duck and Hole12Message\nP = Hole and Green\n: = Green\n, = Fairway\n. = Rough\n~ = Water\n# = BridgeV\nH = BridgeH\n- = Sand\nT = Tree and Rough\nQ = Tree and Fairway\n+ = Concrete\n% = Ice\n\" = BrokenGlass\nd = Duck and Rough\ne = Duck and Fairway\nf = Duck and Green\ng = Duck and Water\nA = Bear and Rough\nB = Bear and Fairway\n* = Blood and Fairway\n(Hole planning)\nx = Rough\nc = Rough\n\nDeadly = Bear\nEdible = Player or Duck\nHitable = Ball or Duck or Bear\nAirHitable = AirBall or AirDuck\nSinkable = Ball or Player\nSwimable = Duck\nWalkStop = Water or Tree or BrokenGlass or OutOfBounds\nAirStop = Tree or OutOfBounds\nRollGo = Green or BridgeV or BridgeH or Concrete or Ice\nRollStop = AirStop or Duck or Player or Bear\nScore = Stroke or OverPar\nAim = AimH or AimV\nHit2 = Green or Fairway or Concrete or Ice or Rough or BridgeV or BridgeH or Water or Sand or BrokenGlass\nHit3 = Green or Fairway or Concrete or Ice or Rough or BridgeV or BridgeH or Water\nHit5 = Green or Fairway or Concrete or Ice\nAirDeco = Pin or OutOfBounds or CheatMessage or BrokenGlassMessage or Hole12Message\n\n\n=======\nSOUNDS\n=======\n\nAirBall Create 58489507\nAirDuck Create 60653709\nBlood Create 50259908\nCrack Create 93556707\nWater Create 48152908\nEndLevel 26251903\nsfx1 26251903 (Sink ball)\nsfx2 96277908 (Splash)\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground (I don't need this layer)\nRollGo, Hit2 (Surfaces)\nTee, Hole, Crack, Blood (Ground decoration)\nHitable (Ground objects)\nPlayer, Tree, Bear (Obstacles)\nAirHitable (Airborne objects)\nAirDeco (Air decoration)\nCursor1, Cursor2, Cursor3, Init (Cursors)\nHud (Hud underlay)\nAim, Stroke, OverPar (Hud overlay)\n\n\n======\nRULES\n======\n\n(Decoration)\nup[Init][Hole|no Pin]->[Init][Hole|Pin]\n[Init][no AirDeco]->[Init][left OutOfBounds]\nleft[Init][||||||left OutOfBounds|||||||]->[Init][||||||down OutOfBounds|||||||]\ndown[Init][||||||down OutOfBounds||||||]->[Init][||||||||||||]\n[Init][moving OutOfBounds]->[Init][OutOfBounds]\n[Init]->[]\n\n(Cheat)\nup[moving Player][OverPar|OverPar][CheatMessage]->[moving Player][OverPar|OverPar][]message Psst... If you want to cheat, just walk up the hole and press X.\n[action Player Hole][OverPar]->[action Player Hole][]\n[action Player Hole][Ball]->[Player Hole Ball][]again message ♪ Nobody's watching, and... Hooray! I scored par!\n\n(Dead)\n[Edible|Deadly]->[Blood|Deadly]\n\n(Adjust aim)\n[moving Player][Cursor2]->[Player][moving Cursor2]\n[> Cursor2|Cursor1][Aim]->[> Cursor2|Cursor1][]\n[> Cursor2|Cursor1]->[|]\n[action Cursor2 Hitable]->cancel\n\n(Ready swing)\n[> Player|Hitable]->[Player|^ Hitable action Cursor1]\n[> Hitable Hit2 action Cursor1 |no AirStop no AimH]->[> Hitable Hit2 Cursor1|AimH Cursor2]\n[> Hitable Hit2|AimH |no AirStop no AimH]->[> Hitable Hit2|AimH|AimH]\n[> Hitable Hit3|AimH|AimH |no AirStop no AimH]->[> Hitable Hit3|AimH|AimH|AimH]\n[> Hitable Hit5|AimH|AimH|AimH |no AirStop no AimH]->[> Hitable Hit5|AimH|AimH|AimH|AimH]\n[> Hitable Hit5|AimH|AimH|AimH|AimH|no AirStop no AimH]->[> Hitable Hit5|AimH|AimH|AimH|AimH|AimH]\n[vertical Hitable][AimH]->[vertical Hitable][AimV]\n[action Cursor1]->[] \n[> Hitable]->[Hitable]\n\n(Swim)\n[moving Player][stationary Swimable Water]->[moving Player][randomdir Swimable Water]\n[Cursor1][moving Swimable]->[Cursor1][Swimable]\n[> Swimable|no Water]->[Swimable|]\n\n(Cancel aim)\n[Player|Cursor1 Ball][> Cursor2][Aim]->[> Player|Cursor1 Ball][> Cursor2][]\n[Player|Cursor1][< Cursor2][Aim]->[< Player|Cursor1][< Cursor2][]\n[Player|Cursor1 Ball][> Cursor2]->[> Player|Ball][]\n[Player|Cursor1][< Cursor2]->[< Player|][]\n[> Cursor2|no Aim]->[Cursor2|]\n\n(Move ball)\n[Cursor1|stationary Cursor3 stationary Ball RollGo|no RollStop]->[> Cursor1|> Cursor3 > Ball RollGo|]again\n[Cursor1|stationary Cursor3 stationary Ball]->[|Ball]\nlate[Cursor1 AirBall|Cursor3 Ice]->[Cursor1|Cursor3 Ice Crack]\nlate[Cursor1 AirBall|Cursor3]->[Cursor1|Cursor3 Ball]again\nlate[Cursor1 AirDuck|Cursor3]->[|Duck]\n[Cursor1 AirHitable|...|Cursor3]->[> Cursor1 > AirHitable|...|Cursor3]again\n\n(Sink)\nlate[Player Ice Crack]->[Player Water]again\n[Water Sinkable]->[Water]sfx2\n\n(Hit ball)\n[action Cursor2][Aim]->[action Cursor2][]\nup[Cursor1 Ball][action Cursor2][Stroke|no Stroke]->[Cursor1 AirBall][Cursor3][|]again\nup[Cursor1 Ball][action Cursor2][OverPar|Hud no OverPar]->[Cursor1 AirBall][Cursor3][OverPar|Hud OverPar]again\nup[Cursor1 Ball][action Cursor2][Hud||||||||||||Hud]->[Cursor1 AirBall][Cursor3][Hud OverPar||||||||||||Hud]again\n[Cursor1 Duck][action Cursor2]->[Cursor1 AirDuck][Cursor3]again\n\n(Walk)\n[> Player|BrokenGlass][BrokenGlassMessage]->[Player|BrokenGlass][]message Ouch! That's broken glass!\n[> Player|WalkStop]->cancel\n[> Player][stationary Score]->[> Player][> Score]\n[> Player][stationary Hud]->[> Player][> Hud]\nlate[Player|Deadly]->again\n\n(Start Hole 12)\nlate down[Player Hole12Message][Hud||||||||||||Hud]->[Player][Hud|||||||||Stroke|Stroke|Stroke|Hud Stroke]message Hole 12, Par 4\n\n(Fail)\nlate [Ball Hole][OverPar]->[Ball Hole][OverPar]again sfx1 message I'm over par. Let's pretend that never happened and try again.\n[Ball Hole][OverPar]->restart\n\n\n==============\nWINCONDITIONS\n==============\n\nsome Player\nall Hole on Ball\nno OverPar\n\n\n=======\nLEVELS\n=======\n\nmessage What a lovely day to play a round of golf.\nmessage Hole 1, Par 3\n\n.......................\n.......................\n.......................\n..T....................\n...................T...\n.......................\n.........T.............\n..........,,,,,........\n......T..,,:::,,.......\n.........,:::::,.......\n........,,::P::,..+++++\n........,,,::::,.......\n.T......,,,,::,,.......\n.._.....,,,,,,,........\n.._.....,,,,,..........\n.._.....,,,,,.T........\n.._.T....,,,...........\n.._....................\n.._....................\n.._......@Y...T........\n.._T...................\n.._....................\n.._.......+.......T....\n../.......+............\n../..T....+............\n../.......+............\n..........+............\n\nmessage Hole 2, Par 4\n\n.....T................\n......................\n............T.........\n......................\n.......T.........T....\n......................\n...............T......\n..........,,,.........\n..T......,,:,,....T...\n.........,:P:,........\n.........,,:,,........\n.........,,,,,...T....\n........,,,,,--.......\n.....T..,,,----.......\n........,,,---........\n.........,,,,,........\n..T......,,,,,........\n..........,,,,,.......\n..........,,,,,...T...\n..........,,,,,.......\n......T..,,,,,........\n.........,,,,,........\n..._.....---,,,.......\nT.._....----,,,.......\n..._....--,,,,........\n..._.....,,,,.........\n..._T.................\n..._............T.....\n..._......@Y..........\n..._..................\n..._..T..............T\n.../.......+..........\n.../.......+..........\n.../.......+....T.....\n.T./.......+..........\n...........+..........\n\nmessage Hole 3, Par 5\n\n.....+.T..T..T..T........\n...T.+............T......\n.....+++++++++++.........\n...............+.........\n...T..T..T..T..+..T......\n.........................\n.........................\n..............,,,....T...\n..T..........,,:,,.......\n.............,:P:,.......\n.............,,:,,.......\n.............,,,,,.....T.\n.............,,,,,.......\n.........T...,,,,,.......\n...T.........,,,,,..T....\n.............,,,,........\n............,,,,.........\n............,,,,......T..\n.....T.....,,,,,.........\n._.........,,,,...T......\nT_........,,,,...........\n._......,,,,,............\n._......,,,,..........T..\n._.............T.........\n._.......................\n._T.....@Y...............\n._...............T.......\n./.......................\n./.......+.T...........T.\n./.......+...............\n./.......+.........T.....\n./...T...+...............\n.........+...............\n\nmessage Hole 4, Par 4\n\n..............T..+..........\n.................+..........\n.........T.......+..........\n.................+.....T..T.\n.....T...........+..T.......\n.................+......~~~~\n......T.....T.T..+.~~g~~~~~~\n..........T.....~#~~~~g~~~..\n..T.....T....~~~~#~~~~......\n...........~~~~~.,,,....T.T.\n......T..~~~~~.,,,:,,.T.....\n....T...~~~~.,,,,:P:,.......\n......~~~~.,,,,,,,:,,...T...\n._T..~~~~~,,,,,,,,,,........\n._..~~~~~,,,,,,,............\n._T.~~~.,,,,,,........T.....\n._..~~~.,,,.................\n._.~~~~.........T...........\n._.~g~~.....................\n._.~~~..@Y..................\n._.~~~......T.......T.......\n._~~~~......................\n./~~~~...+..................\n./~~~~...+........T.........\n./~~~....+.....T............\n./~~~....+..................\n..~~~....+..................\n\nmessage There's ducks on the fairway! Why am I paying green fees?\nmessage Hole 5, Par 3\n\n~~~~...T.................\n~~~~~~...T......T........\n++~~~~~~...T..........T..\n.++++~~~~~...T...........\n....++++~~~~...T...T.....\n.......+..~~~~...........\n............~~~..T.......\n.........,,,.~~~.........\n........,,:,,.~~~..T.....\n........,:P:,.~~~~....T..\n........,,:,,..~~~..T....\n......_.,,,,,...~~~......\n......_.,,e,,,,,~~~~.T...\n......_.,e,,,,,,,~~~.....\n......_..,,e,,,,,~~~.T...\n......_.......d..~~~.....\n......_..........~~~.T...\n......_......@Y..~~~.....\n......_.........~g~~.T...\n......_.........~~~......\n......_.......+~~~~.T....\n....../......++~~~.......\n....../......+~~~~.T..T..\n....../.....++~~~........\n............+~~~~.T......\n\nmessage What's that sparkly stuff?\nmessage Hole 6, Par 4\n\n........................\n...T....................\n..................T.....\n........................\n............T...........\n.......T................\n.....................T..\n....T....,,,...T........\n........,,:,,...........\n++++++..,:P:,.....T.....\n........,,:,,...........\n..T......,,,,,..........\n......._.,,,,,,.......T.\n......._\"\",,,,,\"\".......\n......._\"\",,,,,\"\".......\n...T..._....,,,.........\n......._............T...\n......._.T..............\n......._......@YW.++++++\n......._................\n.T....._................\n......./...T........T...\n......./................\n......./........T.......\n......./................\n.....T..................\n\nmessage Hole 7, Par 5\n\n...T.....T.......T.......T...\n.T...T.......T......T........\n........T........T.....T.....\n...T........T...T........T...\n.T....T...T..........T.......\n....T........T....T.....T....\n.T.....T........T..........T.\n....T......T..T...,,,.T......\n..T......T......T,,:,,....T..\n......T.....T....,:P:,..T....\n...T....\"\"...T.T.,,:,,..+++++\n._...T..\"\",,,,,..T,,,...T....\n._T.....,,,,,,,,T.,,,T....T..\n._...T..,,,,,\"\",.T,,,........\nT_.....T,,,T.,,,,,,,,.T...T..\n._..T.......T,,,,,\"\",...T....\n._T........T..,,,,\"\".........\n._....T.@Y......T....T.....T.\n._............T....T...T.....\n./.T.....T.....T.............\nT/....T.+...T....T...T...T...\n./......+T....T.......T....T.\n./..T...+....T....T......T...\n./....T.+..T..........T......\n.T......+T......T........T...\n\nmessage That's a bear sleeping there. I'd better not disturb him.\nmessage Hole 8, Par 5\n\n..............................\n..............................\n..............................\n..............................\n..............................\n..............................\n.T.T..........................\n.....T.T...........--.........\n+++......T.........---........\n~~+++++....T......,,---.......\n~~~~~~++++...T...,,:,--.......\n~~~~~~~~~+++.....,:P:,........\n~~~~~~~~~~~++++..,,:,,...T....\n...T~~~~~~~~#~~~~~,,,......T.T\nT........~~~#~~~g~~~~~~~~.....\n..T...---.....~~~~~~~~~~~~~~~~\nT.....----.........~~g~~~~~~~~\n.T.....---,,,,,,,,,,,...~~~~~~\n._.....,,,,,,,,,,,B,,,..T....T\n._T....,,,,,,,,,,,,,,,....T...\nT_.....,,,,,,,,,,,,---..T....T\n._.T....,,,,,,,,,,,----....T..\n._..................---..T....\n._..T......................T..\nT_......@Y..............T.....\n._.T.............T...T....T.T.\n./....T......T.....T....T.....\nT/..T....+.....T......T....T..\n./.T...T.+..T.T......T..T....T\n./...T...+.......T........T...\n./T......+.....T...T...T......\nT.....T..+...T...T.........T..\n\nmessage Oh. Now I see why the course isn't being maintained...\nmessage Hole 9, Par 5\n\n....T...T...T.......T....T.\n.T..T..........T.......T...\n.........T...T....T........\n......T............T....T..\n..T............T...........\n......T..T.T..T..........T.\n.T..T......................\n........T..T....,,,........\n....T..........,,:,,.......\n.T........T....,:P:,..+++++\n...T..T.....T..,,:,,.......\n........T.....,,,,,........\n..T..........,,,,,,........\n......T....,,,B,,,.........\n...T.....,,,,,,,,,.........\n........,,,B*,,--,.........\n.....T..,,,,,,,----........\n..T.....,,,,,,,.---........\n........,,,,,..............\n.._.T...,,,,,..............\n.._.....,,,,,..............\n.._.....,,,,,............T.\n.._......,,,.........T.T...\n.._................T....+++\n.._............T.T...++++~~\n.._......@Y..T....++++~~~~~\n.._............++++~~~g~~~.\n../....T....++++~~~~~~~....\n../T.T.......~~~~~~~....T.T\n.T/.......~g~~~~~.....T....\n../....~~~~~~~....T.T......\n../.~~~~~~~.....T..........\n.~~~~~~~....T.T............\n\nmessage Maybe I'll take up lawn bowls instead.\n\n", [2, 3, 4, 0, 3, 1, 3, 0, 0, 0, 0, 2, 2, 3, 3, 3, 1, 4, 2, 3, 3, 3, 0, 0, 4], "background outofbounds rough:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background outofbounds rough tree:1,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,\n1,0,0,1,0,0,0,0,0,0,0,0,0,1,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,\n0,background hud outofbounds rough:2,2,2,2,2,2,2,2,2,2,background hud outofbounds rough stroke:3,3,3,0,background concrete outofbounds:4,4,4,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,\n4,0,1,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,1,0,4,0,0,0,background rough:5,5,5,5,5,5,5,5,5,5,5,5,5,\n5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,4,0,0,0,5,5,5,5,5,\n5,5,5,5,5,5,5,5,5,5,background fairway:6,6,5,5,5,5,0,0,0,0,0,0,0,0,4,\n0,1,0,5,5,5,5,5,5,5,background rough tree:7,5,5,5,5,5,5,5,6,6,5,5,background cheatmessage fairway tee:8,5,0,\n4,4,4,4,4,1,0,4,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,\n6,6,6,5,5,5,5,0,0,0,0,0,0,0,0,4,0,0,0,5,5,5,5,5,5,\n5,5,5,5,5,5,6,6,6,6,6,5,5,background player rough:9,5,0,1,0,0,0,0,0,0,4,0,\n1,0,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,background ball rough:10,5,5,5,5,0,0,\n0,0,0,0,1,0,4,0,0,0,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,\n5,5,5,5,5,5,0,0,0,0,0,0,0,0,4,0,0,0,5,6,6,background green:11,6,6,6,\n6,6,6,6,6,6,6,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,4,4,4,\n0,5,6,background green pin:12,background green hole:13,11,6,6,6,6,6,6,6,6,5,5,5,5,7,5,5,5,0,0,0,\n0,0,0,1,0,0,0,0,0,5,6,6,11,6,6,6,6,6,6,5,5,5,5,5,5,\n5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,5,5,6,6,6,6,6,6,\n6,5,5,5,5,5,5,5,5,5,5,5,7,0,0,0,0,0,0,0,1,0,0,1,0,\n5,5,5,5,5,5,5,5,5,5,5,5,5,7,5,5,5,5,5,5,5,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,\n0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,\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,\n1,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,1,0,0,0,0,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,1,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,\n", 6, "1627778649364.9995"] + ["title Hazard Golf\nauthor Mark Richardson\nagain_interval 0.1\nrun_rules_on_level_start\nzoomscreen 14x13\n(verbose_logging)\n\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nHud\nBlack\n\nStroke\nLightGray Gray DarkGray\n...0.\n...0.\n..02.\n111..\n.12..\n\nOverPar\n#F22 #D00 #800\n...0.\n...0.\n..02.\n111..\n.12..\n\nPlayer\nWhite Pink DarkBlue Red LightGray\n.00..\n.11..\n22224\n.03.4\n.30.4\n\nBall\nWhite\n.....\n.....\n..0..\n.....\n.....\n\nAirBall\nWhite\n.....\n.00..\n.00..\n.....\n.....\n\nTee\nRed #A00\n.....\n.....\n0...0\n..1..\n.....\n\nHole\nBlack White\n..1..\n..1..\n..0..\n.....\n.....\n\nPin\nRed White\n..0..\n..00.\n..000\n..1..\n..1..\n\nGreen\n#6F6\n\nFairway\n#2F2\n\nRough\n#0D0\n\nWater\nBlue\n\nBridgeV\n#C83 #D94 #B72 #A61\n01110\n02220\n03330\n01110\n02220\n\nBridgeH\n#C83 #D94 #B72 #A61\n00000\n21321\n21321\n21321\n00000\n\nSand\n#FF4 #FF0 #DD0\n00022\n12110\n22120\n00121\n21001\n\nTree\nBrown #7F7 #3F3 #0B0\n.111.\n32221\n32221\n.333.\n..0..\n\nConcrete\n#AAA #999\n10000\n10000\n10000\n10000\n01111\n\nIce\n#FF8\n\nCrack\n#FFD\n....0\n0.00.\n.0.0.\n..0..\n..0..\n\nBrokenGlass\n#FFF #BBF #77F\n11020\n01100\n20202\n11001\n20110\n\nDuck\nWhite Yellow Gray\n.....\n...0.\n02001\n.000.\n.....\n\nAirDuck\nWhite Yellow Gray\n.....\n22.0.\n02201\n.000.\n.....\n\nBear\nRed Black #B72 #A61\n.....\n.222.\n22221\n22220\n3..3.\n\nAimH\nWhite\n.....\n.....\n.000.\n.....\n.....\n\nAimV\nWhite\n.....\n..0..\n..0..\n..0..\n.....\n\nCursor1\nTransparent Yellow\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nCursor2\nWhite\n.....\n..0..\n.000.\n..0..\n.....\n\nCursor3\nTransparent Yellow\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nCheatMessage\nTransparent\n\nBrokenGlassMessage\nTransparent\n\nHole12Message\nTransparent\n\nBlood\nRed\n0...0\n.0...\n00000\n0..0.\n...0.\n\nOutOfBounds\n#F88\n0...0\n.....\n.....\n.....\n0...0\n\nInit\nTransparent\n\n\n=======\nLEGEND\n=======\n\n/ = Stroke and Hud and Rough\n_ = Hud and Rough\n@ = Player and Rough\nY = Fairway and Tee and Ball and CheatMessage and Init\nW = Rough and BrokenGlassMessage\nZ = Rough and Duck and Hole12Message\nP = Hole and Green\n: = Green\n, = Fairway\n. = Rough\n~ = Water\n# = BridgeV\nH = BridgeH\n- = Sand\nT = Tree and Rough\nQ = Tree and Fairway\n+ = Concrete\n% = Ice\n\" = BrokenGlass\nd = Duck and Rough\ne = Duck and Fairway\nf = Duck and Green\ng = Duck and Water\nA = Bear and Rough\nB = Bear and Fairway\n* = Blood and Fairway\n(Hole planning)\nx = Rough\nc = Rough\n\nDeadly = Bear\nEdible = Player or Duck\nHitable = Ball or Duck or Bear\nAirHitable = AirBall or AirDuck\nSinkable = Ball or Player\nSwimable = Duck\nWalkStop = Water or Tree or BrokenGlass or OutOfBounds\nAirStop = Tree or OutOfBounds\nRollGo = Green or BridgeV or BridgeH or Concrete or Ice\nRollStop = AirStop or Duck or Player or Bear\nScore = Stroke or OverPar\nAim = AimH or AimV\nHit2 = Green or Fairway or Concrete or Ice or Rough or BridgeV or BridgeH or Water or Sand or BrokenGlass\nHit3 = Green or Fairway or Concrete or Ice or Rough or BridgeV or BridgeH or Water\nHit5 = Green or Fairway or Concrete or Ice\nAirDeco = Pin or OutOfBounds or CheatMessage or BrokenGlassMessage or Hole12Message\n\n\n=======\nSOUNDS\n=======\n\nAirBall Create 58489507\nAirDuck Create 60653709\nBlood Create 50259908\nCrack Create 93556707\nWater Create 48152908\nEndLevel 26251903\nsfx1 26251903 (Sink ball)\nsfx2 96277908 (Splash)\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground (I don't need this layer)\nRollGo, Hit2 (Surfaces)\nTee, Hole, Crack, Blood (Ground decoration)\nHitable (Ground objects)\nPlayer, Tree, Bear (Obstacles)\nAirHitable (Airborne objects)\nAirDeco (Air decoration)\nCursor1, Cursor2, Cursor3, Init (Cursors)\nHud (Hud underlay)\nAim, Stroke, OverPar (Hud overlay)\n\n\n======\nRULES\n======\n\n(Decoration)\nup[Init][Hole|no Pin]->[Init][Hole|Pin]\n[Init][no AirDeco]->[Init][left OutOfBounds]\nleft[Init][||||||left OutOfBounds|||||||]->[Init][||||||down OutOfBounds|||||||]\ndown[Init][||||||down OutOfBounds||||||]->[Init][||||||||||||]\n[Init][moving OutOfBounds]->[Init][OutOfBounds]\n[Init]->[]\n\n(Cheat)\nup[moving Player][OverPar|OverPar][CheatMessage]->[moving Player][OverPar|OverPar][]message Psst... If you want to cheat, just walk up the hole and press X.\n[action Player Hole][OverPar]->[action Player Hole][]\n[action Player Hole][Ball]->[Player Hole Ball][]again message ♪ Nobody's watching, and... Hooray! I scored par!\n\n(Dead)\n[Edible|Deadly]->[Blood|Deadly]\n\n(Adjust aim)\n[moving Player][Cursor2]->[Player][moving Cursor2]\n[> Cursor2|Cursor1][Aim]->[> Cursor2|Cursor1][]\n[> Cursor2|Cursor1]->[|]\n[action Cursor2 Hitable]->cancel\n\n(Ready swing)\n[> Player|Hitable]->[Player|^ Hitable action Cursor1]\n[> Hitable Hit2 action Cursor1 |no AirStop no AimH]->[> Hitable Hit2 Cursor1|AimH Cursor2]\n[> Hitable Hit2|AimH |no AirStop no AimH]->[> Hitable Hit2|AimH|AimH]\n[> Hitable Hit3|AimH|AimH |no AirStop no AimH]->[> Hitable Hit3|AimH|AimH|AimH]\n[> Hitable Hit5|AimH|AimH|AimH |no AirStop no AimH]->[> Hitable Hit5|AimH|AimH|AimH|AimH]\n[> Hitable Hit5|AimH|AimH|AimH|AimH|no AirStop no AimH]->[> Hitable Hit5|AimH|AimH|AimH|AimH|AimH]\n[vertical Hitable][AimH]->[vertical Hitable][AimV]\n[action Cursor1]->[] \n[> Hitable]->[Hitable]\n\n(Swim)\n[moving Player][stationary Swimable Water]->[moving Player][randomdir Swimable Water]\n[Cursor1][moving Swimable]->[Cursor1][Swimable]\n[> Swimable|no Water]->[Swimable|]\n\n(Cancel aim)\n[Player|Cursor1 Ball][> Cursor2][Aim]->[> Player|Cursor1 Ball][> Cursor2][]\n[Player|Cursor1][< Cursor2][Aim]->[< Player|Cursor1][< Cursor2][]\n[Player|Cursor1 Ball][> Cursor2]->[> Player|Ball][]\n[Player|Cursor1][< Cursor2]->[< Player|][]\n[> Cursor2|no Aim]->[Cursor2|]\n\n(Move ball)\n[Cursor1|stationary Cursor3 stationary Ball RollGo|no RollStop]->[> Cursor1|> Cursor3 > Ball RollGo|]again\n[Cursor1|stationary Cursor3 stationary Ball]->[|Ball]\nlate[Cursor1 AirBall|Cursor3 Ice]->[Cursor1|Cursor3 Ice Crack]\nlate[Cursor1 AirBall|Cursor3]->[Cursor1|Cursor3 Ball]again\nlate[Cursor1 AirDuck|Cursor3]->[|Duck]\n[Cursor1 AirHitable|...|Cursor3]->[> Cursor1 > AirHitable|...|Cursor3]again\n\n(Sink)\nlate[Player Ice Crack]->[Player Water]again\n[Water Sinkable]->[Water]sfx2\n\n(Hit ball)\n[action Cursor2][Aim]->[action Cursor2][]\nup[Cursor1 Ball][action Cursor2][Stroke|no Stroke]->[Cursor1 AirBall][Cursor3][|]again\nup[Cursor1 Ball][action Cursor2][OverPar|Hud no OverPar]->[Cursor1 AirBall][Cursor3][OverPar|Hud OverPar]again\nup[Cursor1 Ball][action Cursor2][Hud||||||||||||Hud]->[Cursor1 AirBall][Cursor3][Hud OverPar||||||||||||Hud]again\n[Cursor1 Duck][action Cursor2]->[Cursor1 AirDuck][Cursor3]again\n\n(Walk)\n[> Player|BrokenGlass][BrokenGlassMessage]->[Player|BrokenGlass][]message Ouch! That's broken glass!\n[> Player|WalkStop]->cancel\n[> Player][stationary Score]->[> Player][> Score]\n[> Player][stationary Hud]->[> Player][> Hud]\nlate[Player|Deadly]->again\n\n(Start Hole 12)\nlate down[Player Hole12Message][Hud||||||||||||Hud]->[Player][Hud|||||||||Stroke|Stroke|Stroke|Hud Stroke]message Hole 12, Par 4\n\n(Fail)\nlate [Ball Hole][OverPar]->[Ball Hole][OverPar]again sfx1 message I'm over par. Let's pretend that never happened and try again.\n[Ball Hole][OverPar]->restart\n\n\n==============\nWINCONDITIONS\n==============\n\nsome Player\nall Hole on Ball\nno OverPar\n\n\n=======\nLEVELS\n=======\n\nmessage What a lovely day to play a round of golf.\nmessage Hole 1, Par 3\n\n.......................\n.......................\n.......................\n..T....................\n...................T...\n.......................\n.........T.............\n..........,,,,,........\n......T..,,:::,,.......\n.........,:::::,.......\n........,,::P::,..+++++\n........,,,::::,.......\n.T......,,,,::,,.......\n.._.....,,,,,,,........\n.._.....,,,,,..........\n.._.....,,,,,.T........\n.._.T....,,,...........\n.._....................\n.._....................\n.._......@Y...T........\n.._T...................\n.._....................\n.._.......+.......T....\n../.......+............\n../..T....+............\n../.......+............\n..........+............\n\nmessage Hole 2, Par 4\n\n.....T................\n......................\n............T.........\n......................\n.......T.........T....\n......................\n...............T......\n..........,,,.........\n..T......,,:,,....T...\n.........,:P:,........\n.........,,:,,........\n.........,,,,,...T....\n........,,,,,--.......\n.....T..,,,----.......\n........,,,---........\n.........,,,,,........\n..T......,,,,,........\n..........,,,,,.......\n..........,,,,,...T...\n..........,,,,,.......\n......T..,,,,,........\n.........,,,,,........\n..._.....---,,,.......\nT.._....----,,,.......\n..._....--,,,,........\n..._.....,,,,.........\n..._T.................\n..._............T.....\n..._......@Y..........\n..._..................\n..._..T..............T\n.../.......+..........\n.../.......+..........\n.../.......+....T.....\n.T./.......+..........\n...........+..........\n\nmessage Hole 3, Par 5\n\n.....+.T..T..T..T........\n...T.+............T......\n.....+++++++++++.........\n...............+.........\n...T..T..T..T..+..T......\n.........................\n.........................\n..............,,,....T...\n..T..........,,:,,.......\n.............,:P:,.......\n.............,,:,,.......\n.............,,,,,.....T.\n.............,,,,,.......\n.........T...,,,,,.......\n...T.........,,,,,..T....\n.............,,,,........\n............,,,,.........\n............,,,,......T..\n.....T.....,,,,,.........\n._.........,,,,...T......\nT_........,,,,...........\n._......,,,,,............\n._......,,,,..........T..\n._.............T.........\n._.......................\n._T.....@Y...............\n._...............T.......\n./.......................\n./.......+.T...........T.\n./.......+...............\n./.......+.........T.....\n./...T...+...............\n.........+...............\n\nmessage Hole 4, Par 4\n\n..............T..+..........\n.................+..........\n.........T.......+..........\n.................+.....T..T.\n.....T...........+..T.......\n.................+......~~~~\n......T.....T.T..+.~~g~~~~~~\n..........T.....~#~~~~g~~~..\n..T.....T....~~~~#~~~~......\n...........~~~~~.,,,....T.T.\n......T..~~~~~.,,,:,,.T.....\n....T...~~~~.,,,,:P:,.......\n......~~~~.,,,,,,,:,,...T...\n._T..~~~~~,,,,,,,,,,........\n._..~~~~~,,,,,,,............\n._T.~~~.,,,,,,........T.....\n._..~~~.,,,.................\n._.~~~~.........T...........\n._.~g~~.....................\n._.~~~..@Y..................\n._.~~~......T.......T.......\n._~~~~......................\n./~~~~...+..................\n./~~~~...+........T.........\n./~~~....+.....T............\n./~~~....+..................\n..~~~....+..................\n\nmessage There's ducks on the fairway! Why am I paying green fees?\nmessage Hole 5, Par 3\n\n~~~~...T.................\n~~~~~~...T......T........\n++~~~~~~...T..........T..\n.++++~~~~~...T...........\n....++++~~~~...T...T.....\n.......+..~~~~...........\n............~~~..T.......\n.........,,,.~~~.........\n........,,:,,.~~~..T.....\n........,:P:,.~~~~....T..\n........,,:,,..~~~..T....\n......_.,,,,,...~~~......\n......_.,,e,,,,,~~~~.T...\n......_.,e,,,,,,,~~~.....\n......_..,,e,,,,,~~~.T...\n......_.......d..~~~.....\n......_..........~~~.T...\n......_......@Y..~~~.....\n......_.........~g~~.T...\n......_.........~~~......\n......_.......+~~~~.T....\n....../......++~~~.......\n....../......+~~~~.T..T..\n....../.....++~~~........\n............+~~~~.T......\n\nmessage What's that sparkly stuff?\nmessage Hole 6, Par 4\n\n........................\n...T....................\n..................T.....\n........................\n............T...........\n.......T................\n.....................T..\n....T....,,,...T........\n........,,:,,...........\n++++++..,:P:,.....T.....\n........,,:,,...........\n..T......,,,,,..........\n......._.,,,,,,.......T.\n......._\"\",,,,,\"\".......\n......._\"\",,,,,\"\".......\n...T..._....,,,.........\n......._............T...\n......._.T..............\n......._......@YW.++++++\n......._................\n.T....._................\n......./...T........T...\n......./................\n......./........T.......\n......./................\n.....T..................\n\nmessage Hole 7, Par 5\n\n...T.....T.......T.......T...\n.T...T.......T......T........\n........T........T.....T.....\n...T........T...T........T...\n.T....T...T..........T.......\n....T........T....T.....T....\n.T.....T........T..........T.\n....T......T..T...,,,.T......\n..T......T......T,,:,,....T..\n......T.....T....,:P:,..T....\n...T....\"\"...T.T.,,:,,..+++++\n._...T..\"\",,,,,..T,,,...T....\n._T.....,,,,,,,,T.,,,T....T..\n._...T..,,,,,\"\",.T,,,........\nT_.....T,,,T.,,,,,,,,.T...T..\n._..T.......T,,,,,\"\",...T....\n._T........T..,,,,\"\".........\n._....T.@Y......T....T.....T.\n._............T....T...T.....\n./.T.....T.....T.............\nT/....T.+...T....T...T...T...\n./......+T....T.......T....T.\n./..T...+....T....T......T...\n./....T.+..T..........T......\n.T......+T......T........T...\n\nmessage That's a bear sleeping there. I'd better not disturb him.\nmessage Hole 8, Par 5\n\n..............................\n..............................\n..............................\n..............................\n..............................\n..............................\n.T.T..........................\n.....T.T...........--.........\n+++......T.........---........\n~~+++++....T......,,---.......\n~~~~~~++++...T...,,:,--.......\n~~~~~~~~~+++.....,:P:,........\n~~~~~~~~~~~++++..,,:,,...T....\n...T~~~~~~~~#~~~~~,,,......T.T\nT........~~~#~~~g~~~~~~~~.....\n..T...---.....~~~~~~~~~~~~~~~~\nT.....----.........~~g~~~~~~~~\n.T.....---,,,,,,,,,,,...~~~~~~\n._.....,,,,,,,,,,,B,,,..T....T\n._T....,,,,,,,,,,,,,,,....T...\nT_.....,,,,,,,,,,,,---..T....T\n._.T....,,,,,,,,,,,----....T..\n._..................---..T....\n._..T......................T..\nT_......@Y..............T.....\n._.T.............T...T....T.T.\n./....T......T.....T....T.....\nT/..T....+.....T......T....T..\n./.T...T.+..T.T......T..T....T\n./...T...+.......T........T...\n./T......+.....T...T...T......\nT.....T..+...T...T.........T..\n\nmessage Oh. Now I see why the course isn't being maintained...\nmessage Hole 9, Par 5\n\n....T...T...T.......T....T.\n.T..T..........T.......T...\n.........T...T....T........\n......T............T....T..\n..T............T...........\n......T..T.T..T..........T.\n.T..T......................\n........T..T....,,,........\n....T..........,,:,,.......\n.T........T....,:P:,..+++++\n...T..T.....T..,,:,,.......\n........T.....,,,,,........\n..T..........,,,,,,........\n......T....,,,B,,,.........\n...T.....,,,,,,,,,.........\n........,,,B*,,--,.........\n.....T..,,,,,,,----........\n..T.....,,,,,,,.---........\n........,,,,,..............\n.._.T...,,,,,..............\n.._.....,,,,,..............\n.._.....,,,,,............T.\n.._......,,,.........T.T...\n.._................T....+++\n.._............T.T...++++~~\n.._......@Y..T....++++~~~~~\n.._............++++~~~g~~~.\n../....T....++++~~~~~~~....\n../T.T.......~~~~~~~....T.T\n.T/.......~g~~~~~.....T....\n../....~~~~~~~....T.T......\n../.~~~~~~~.....T..........\n.~~~~~~~....T.T............\n\nmessage Maybe I'll take up lawn bowls instead.\n\n",[2,3,4,0,3,1,3,0,0,0,0,2,2,3,3,3,1,4,2,3,3,3,0,0,4],"background outofbounds rough:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background outofbounds rough tree:1,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,\n1,0,0,1,0,0,0,0,0,0,0,0,0,1,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,\n0,background hud outofbounds rough:2,2,2,2,2,2,2,2,2,2,background hud outofbounds rough stroke:3,3,3,0,background concrete outofbounds:4,4,4,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,\n4,0,1,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,1,0,4,0,0,0,background rough:5,5,5,5,5,5,5,5,5,5,5,5,5,\n5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,4,0,0,0,5,5,5,5,5,\n5,5,5,5,5,5,5,5,5,5,background fairway:6,6,5,5,5,5,0,0,0,0,0,0,0,0,4,\n0,1,0,5,5,5,5,5,5,5,background rough tree:7,5,5,5,5,5,5,5,6,6,5,5,background cheatmessage fairway tee:8,5,0,\n4,4,4,4,4,1,0,4,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,\n6,6,6,5,5,5,5,0,0,0,0,0,0,0,0,4,0,0,0,5,5,5,5,5,5,\n5,5,5,5,5,5,6,6,6,6,6,5,5,background player rough:9,5,0,1,0,0,0,0,0,0,4,0,\n1,0,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,background ball rough:10,5,5,5,5,0,0,\n0,0,0,0,1,0,4,0,0,0,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,\n5,5,5,5,5,5,0,0,0,0,0,0,0,0,4,0,0,0,5,6,6,background green:11,6,6,6,\n6,6,6,6,6,6,6,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,4,4,4,\n0,5,6,background green pin:12,background green hole:13,11,6,6,6,6,6,6,6,6,5,5,5,5,7,5,5,5,0,0,0,\n0,0,0,1,0,0,0,0,0,5,6,6,11,6,6,6,6,6,6,5,5,5,5,5,5,\n5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,5,5,6,6,6,6,6,6,\n6,5,5,5,5,5,5,5,5,5,5,5,7,0,0,0,0,0,0,0,1,0,0,1,0,\n5,5,5,5,5,5,5,5,5,5,5,5,5,7,5,5,5,5,5,5,5,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,\n0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,\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,\n1,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,1,0,0,0,0,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,1,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,\n",6,"1627778649364.9995"] ], [ `gallery: collapsable sokoban`, - ["title Collapsable Sokoban\nauthor Franklin P. Dyer\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\n@ = Player\no = Crate\n& = Crate and Target\n+ = 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[Wall|...|Player] -> [> Wall|...|Player]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 3\n\n..........\n.////////.\n./....../.\n./....@./.\n./..+.../.\n./..o.../.\n./....../.\n./....../.\n.////////.\n..........\n\nmessage Level 2 of 3\n\n..........\n......+o..\n..........\n///////...\n....../...\n.@..../...\n....../...\n....../...\n///////...\n..........\n\nmessage Level 3 of 3\n\n.........@\n......./..\n./..o.....\n...../....\n......../.\n../.+..o..\n....+.....\n......./..\n..../.....\n..........\n\n\nmessage Congratulations! You win!\n", [3, 3, 3, 0, 0, 1, 2, 3, 3, 2, 1, 2, 2, 3, 3, 3, 3], "background:0,0,0,background wall:1,0,0,0,0,0,0,\n0,0,0,0,1,0,0,0,1,0,\n0,0,0,0,1,1,0,1,0,0,\n0,0,0,0,0,0,1,1,1,0,\n0,0,0,0,0,1,1,1,1,0,\n0,0,0,0,1,0,0,0,1,0,\n0,background target:2,0,0,1,1,0,0,0,1,\n0,background crate:3,0,0,0,0,0,0,0,background player:4,\n0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,\n", 3, "1627778695403.4497"] + ["title Collapsable Sokoban\nauthor Franklin P. Dyer\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\n@ = Player\no = Crate\n& = Crate and Target\n+ = 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[Wall|...|Player] -> [> Wall|...|Player]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 3\n\n..........\n.////////.\n./....../.\n./....@./.\n./..+.../.\n./..o.../.\n./....../.\n./....../.\n.////////.\n..........\n\nmessage Level 2 of 3\n\n..........\n......+o..\n..........\n///////...\n....../...\n.@..../...\n....../...\n....../...\n///////...\n..........\n\nmessage Level 3 of 3\n\n.........@\n......./..\n./..o.....\n...../....\n......../.\n../.+..o..\n....+.....\n......./..\n..../.....\n..........\n\n\nmessage Congratulations! You win!\n",[3,3,3,0,0,1,2,3,3,2,1,2,2,3,3,3,3],"background:0,0,0,background wall:1,0,0,0,0,0,0,\n0,0,0,0,1,0,0,0,1,0,\n0,0,0,0,1,1,0,1,0,0,\n0,0,0,0,0,0,1,1,1,0,\n0,0,0,0,0,1,1,1,1,0,\n0,0,0,0,1,0,0,0,1,0,\n0,background target:2,0,0,1,1,0,0,0,1,\n0,background crate:3,0,0,0,0,0,0,0,background player:4,\n0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,\n",3,"1627778695403.4497"] ], [ `gallery: skipping stones to lonely homes`, - ["title Skipping Stones to Lonely Homes\nauthor Alan Hazelden\nhomepage www.draknek.org\n\n(verbose_logging)\n\nrun_rules_on_level_start\n\nrealtime_interval 0.1\nagain_interval 0.1\n(key_repeat_interval 0.2)\n\nflickscreen 19x14\n\nnoaction\n\n(youtube UuKbLbC1zw0)\n\n========\nOBJECTS\n========\n\nBackground\nLightBlue Blue\n11111\n11101\n11111\n10111\n11111\n\nSand .\n#dfcc4f yellow\n11111\n01111\n11101\n11111\n10111\n\nTree\nBrown Green\n..11.\n111..\n1.011\n..0.1\n..0..\n\n(Hole\n#c5b446 #dfcc4f\n11111\n01111\n11101\n11111\n10111\n\nCrate\nBrown Orange\n00000\n01110\n01110\n01110\n00000)\n\nLily\nGreen LightGreen\n.111.\n10001\n10001\n10001\n.111.\n\n\nRipple1\nBlue LightBlue\n00000\n01110\n01010\n01110\n00000\n\nRipple2\nBlue LightBlue\n01110\n10001\n10001\n10001\n01110\n\nRippleH\nBlue LightBlue\n00000\n00000\n01110\n00000\n00000\n\nRippleH2\nBlue LightBlue\n00000\n01110\n01010\n01110\n00000\n\nRippleH3\ntransparent\n\nRippleH4\ntransparent\n\nRippleH5\ntransparent\n\nRippleV\nBlue LightBlue\n00000\n00100\n00100\n00100\n00000\n\nRippleV2\nBlue LightBlue\n00000\n01110\n01010\n01110\n00000\n\nRippleV3\ntransparent\n\nRippleV4\ntransparent\n\nRippleV5\ntransparent\n\n(WaterNew\nwhite LightBlue\n11111\n01111\n11101\n11111\n10111)\n\n\nTreasure\n#d0be4a Yellow Yellow\n.111.\n10201\n12021\n10201\n.111.\n\nTreasure2\n#dfcc4f yellow\n1111.\n01111\n11101\n11111\n10111\n\nTreasure3\n#dfcc4f yellow #d0be4a orange white\n1111.\n11111\n12211\n10011\n11111\n\nTreasure4\n#dfcc4f yellow #d0be4a orange white\n1111.\n12221\n10001\n10001\n11111\n\nTreasure5\n#dfcc4f yellow #d0be4a orange white\n1111.\n22222\n00000\n00000\n11111\n\nTreasure6\n#dfcc4f yellow #d0be4a orange white\n1222.\n20002\n00300\n00000\n10001\n\nTreasure7\n#dfcc4f yellow #d0be4a orange white\n1222.\n20002\n03430\n03330\n10001\n\nTreasureTaken\n#dfcc4f yellow #d0be4a\n1222.\n20002\n00000\n00000\n10001\n\n\n\nTarget\ntransparent\n\nTarget2\ntransparent\n\nRemoveTarget\ntransparent\n\n(\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTarget2\nRed\n.....\n.000.\n.0.0.\n.000.\n.....\n\nRemoveTarget\nRed\n.....\n.....\n..0..\n.....\n.....\n)\n\nPlayerNormal\nDarkRed #493c2b #000000\n..0..\n.111.\n01110\n02220\n.2.2.\n\nPlayerInWater\nDarkRed #493c2b #000000\n..0..\n.111.\n01110\n02220\n.....\n\nPebble\nGrey DarkGrey LightGrey\n.....\n..00.\n.0001\n.0111\n...1.\n\nSubmergedPebble\nDarkGrey #263546 Blue LightBlue\n22222\n22232\n20022\n00012\n01112\n\nU\ntransparent\n\nD\ntransparent\n\nL\ntransparent\n\nR\ntransparent\n\n\nAddLandLUD\nYellow\n0....\n.....\n.....\n.....\n0....\n\nAddLandLU\nYellow\n0....\n.....\n.....\n.....\n.....\n\nAddLandLD\nYellow\n.....\n.....\n.....\n.....\n0....\n\nAddLandRUD\nYellow\n....0\n.....\n.....\n.....\n....0\n\nAddLandRU\nYellow\n....0\n.....\n.....\n.....\n.....\n\nAddLandRD\nYellow\n.....\n.....\n.....\n.....\n....0\n\nRemoveLandLUD\nBlue\n0....\n.....\n.....\n.....\n0....\n\nRemoveLandLU\nBlue\n0....\n.....\n.....\n.....\n.....\n\nRemoveLandLD\nBlue\n.....\n.....\n.....\n.....\n0....\n\nRemoveLandRUD\nBlue\n....0\n.....\n.....\n.....\n....0\n\nRemoveLandRU\nBlue\n....0\n.....\n.....\n.....\n.....\n\nRemoveLandRD\nBlue\n.....\n.....\n.....\n.....\n....0\n\n\nFlowL1 ←\n#3166f7 #cbe4ef\n00100\n00000\n00001\n00000\n01000\n\nFlowL2\n#3166f7 #cbe4ef\n01000\n00000\n00010\n00000\n10000\n\nFlowL3\n#3166f7 #cbe4ef\n10000\n00000\n00100\n00000\n00001\n\nFlowL4\n#3166f7 #cbe4ef\n00001\n00000\n01000\n00000\n00010\n\nFlowL5\n#3166f7 #cbe4ef\n00010\n00000\n10000\n00000\n00100\n\nFlowR1 →\n#3166f7 #cbe4ef\n10000\n00000\n00100\n00000\n00001\n\nFlowR2\n#3166f7 #cbe4ef\n01000\n00000\n00010\n00000\n10000\n\nFlowR3\n#3166f7 #cbe4ef\n00100\n00000\n00001\n00000\n01000\n\nFlowR4\n#3166f7 #cbe4ef\n00010\n00000\n10000\n00000\n00100\n\nFlowR5\n#3166f7 #cbe4ef\n00001\n00000\n01000\n00000\n00010\n\nFlowU1 ↑\n#3166f7 #cbe4ef\n10000\n00001\n00000\n00100\n00000\n\nFlowU2\n#3166f7 #cbe4ef\n00001\n00000\n00100\n00000\n10000\n\nFlowU3\n#3166f7 #cbe4ef\n00000\n00100\n00000\n10000\n00001\n\nFlowU4\n#3166f7 #cbe4ef\n00100\n00000\n10000\n00001\n00000\n\nFlowU5\n#3166f7 #cbe4ef\n00000\n10000\n00001\n00000\n00100\n\nFlowD1 ↓\n#3166f7 #cbe4ef\n10000\n00001\n00000\n00100\n00000\n\nFlowD2\n#3166f7 #cbe4ef\n00000\n10000\n00001\n00000\n00100\n\nFlowD3\n#3166f7 #cbe4ef\n00100\n00000\n10000\n00001\n00000\n\nFlowD4\n#3166f7 #cbe4ef\n00000\n00100\n00000\n10000\n00001\n\nFlowD5\n#3166f7 #cbe4ef\n00001\n00000\n00100\n00000\n10000\n\nStopFlow\ntransparent\n\nShip_Left\n#eb8931 #732930 #2f2416 #ffffff\n..030\n.0331\n01121\n.0111\n..000\n\nShip_Right1\n#eb8931 #732930 #2f2416 #ffffff\n3330.\n12110\n12110\n11110\n0000.\n\nShip_Right2\n#eb8931 #732930 #2f2416 #ffffff\n3330.\n12110\n12110\n11110\n0000.\n\nShip_Sails\n#ffffff\n.....\n.....\n.....\n.00..\n00...\n\nDarkness\nblack\n\nDeath\nLightBlue Blue\n11111\n11101\n11111\n10111\n11111\n\nSpeedup\ntransparent\n\nLight_trigger\ntransparent\n\nLight\nwhite\n\nMyMistake\ntransparent\n\n=======\nLEGEND\n=======\n\nw = Background\n\nDirection = U or D or L or R\n\nPlayer = PlayerNormal or PlayerInWater\n\nRipple = Ripple1 or Ripple2 or RippleH or RippleV or RippleH2 or RippleV2 or RippleH3 or RippleV3 or RippleH4 or RippleV4 or RippleH5 or RippleV5\n\nFloor = Lily or Sand or SubmergedPebble or Ship_Left or Ship_Right1 or Ship_Right2\n\nFlowL = FlowL1 or FlowL2 or FlowL3 or FlowL4 or FlowL5\nFlowR = FlowR1 or FlowR2 or FlowR3 or FlowR4 or FlowR5\nFlowU = FlowU1 or FlowU2 or FlowU3 or FlowU4 or FlowU5\nFlowD = FlowD1 or FlowD2 or FlowD3 or FlowD4 or FlowD5\n\nFlow = FlowL or FlowR or FlowU or FlowD\n\nFlow5 = FlowL5 or FlowR5 or FlowU5 or FlowD5\n\nP = PlayerNormal and Sand\n* = Pebble and Sand\nO = Lily\n@ = Target and Sand and Light_trigger\nx = Target2 and Sand and Light_trigger\n% = RemoveTarget and Sand\n! = Target and Light_trigger\n? = RemoveTarget\nn = SubmergedPebble\nT = Treasure and Sand\nS = Ship_Left\n1 = Ship_Right1 and TreasureTaken\n2 = Ship_Right2\n/ = Ship_Sails\n$ = Tree and Sand\n[ = FlowR1 and Speedup\n] = FlowD1 and Speedup\n{ = FlowU1 and Speedup\n} = FlowL1 and Speedup\nY = Death\n\nAddLandL = AddLandLUD or AddLandLU or AddLandLD\nAddLandR = AddLandRUD or AddLandRU or AddLandRD\n\nRemoveLandL = RemoveLandLUD or RemoveLandLU or RemoveLandLD\nRemoveLandR = RemoveLandRUD or RemoveLandRU or RemoveLandRD\n\nShip = Ship_Left or Ship_Right1 or Ship_Right2\n\n\n=======\nSOUNDS\n=======\n\nsfx1 60997509 ( 13158309) (bounce pebble)\nsfx2 53480307 (push pebble)\nsfx3 45570309 (rock submerging)\nsfx4 73166102 (rock landing on ground)\nsfx5 56148307 (player move)\nsfx6 14433907 (player can't move)\nsfx7 58358104 (rock hits rock)\nsfx8 97863107 (dig 1)\nsfx9 75661907 (dig 2)\nsfx0 23172308 (whirlpool death)\n\n(63191902)\n\nEndLevel 32481708\n\nUndo 8098307\nRestart 7235102\n\n(Treasure3 Create 97863107\nTreasure6 Create 75661907)\n\n(Treasure2 Create 55366107)\n(Treasure3 Create 47174507)\n(Treasure4 Create 71981107)\n(Treasure5 Create 40321302)\n(Treasure6 Create 33433507)\n(Treasure7 Create 97863107)\n\nTreasureTaken Create 2479500\nLight Create 71916703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSand, FlowL, FlowR, FlowU, FlowD\nSubmergedPebble, StopFlow\nAddLandL, RemoveLandL\nAddLandR, RemoveLandR\nRipple, Tree\nLily\nTarget, Target2, RemoveTarget, Treasure, Treasure2, Treasure3, Treasure4, Treasure5, Treasure6, Treasure7, TreasureTaken\nPlayer, Pebble\nDirection\nShip_Left, Ship_Right1, Ship_Right2, Ship_Sails, Light_trigger\nMyMistake\nSpeedup, Death, Darkness, Light\n\n\n======\nRULES\n======\n\n(oops)\n\n[ MyMistake ] -> [ MyMistake Death ]\n\ndown [ MyMistake ] [ no Sand | . no Target|.|.|.|.|.|.|.|. no Target|.|.|no Sand|.|.|.|no Sand|no Sand|no Sand|.|.|no Sand ] -> [] [no Sand | . no Target|.|.|.|.|.|.|.|. no Target|.|.|no Sand|.|.|.|no Sand|no Sand|no Sand|.|.|no Sand] message Sorry but I screwed up and this puzzle might not be possible. Please start over? My fault not yours :( :( :(\n\n(Island border)\n\nleft [ no Sand no AddLandL | Sand ] -> [ no Sand AddLandLUD | Sand ]\nright [ no Sand no AddLandR | Sand ] -> [ no Sand AddLandRUD | Sand ]\n\nup [ AddLandLUD | no Sand ] -> [ AddLandLD | no Sand ]\nup [ AddLandRUD | no Sand ] -> [ AddLandRD | no Sand ]\n\ndown [ AddLandLUD | no Sand ] -> [ AddLandLU | no Sand ]\ndown [ AddLandRUD | no Sand ] -> [ AddLandRU | no Sand ]\n\ndown [ AddLandLD | no Sand ] -> [ | no Sand ]\ndown [ AddLandRD | no Sand ] -> [ | no Sand ]\n\nleft [ Sand no RemoveLandL | no Sand ] -> [ Sand RemoveLandLUD | no Sand ]\nright [ Sand no RemoveLandR | no Sand ] -> [ Sand RemoveLandRUD | no Sand ]\n\nup [ RemoveLandLUD | Sand ] -> [ RemoveLandLD | Sand ]\nup [ RemoveLandRUD | Sand ] -> [ RemoveLandRD | Sand ]\n\ndown [ RemoveLandLUD | Sand ] -> [ RemoveLandLU | Sand ]\ndown [ RemoveLandRUD | Sand ] -> [ RemoveLandRU | Sand ]\n\ndown [ RemoveLandLD | Sand ] -> [ | Sand ]\ndown [ RemoveLandRD | Sand ] -> [ | Sand ]\n\nright [ RemoveLandRU | AddLandLU ] -> [ RemoveLandRU | ]\nright [ RemoveLandRD | AddLandLD ] -> [ RemoveLandRD | ]\n\nright [ RemoveLandRUD | AddLandLU ] -> [ RemoveLandRUD | ]\nright [ RemoveLandRUD | AddLandLD ] -> [ RemoveLandRUD | ]\n\nleft [ RemoveLandLU | AddLandRU ] -> [ RemoveLandLU | ]\nleft [ RemoveLandLD | AddLandRD ] -> [ RemoveLandLD | ]\n\nleft [ RemoveLandLUD | AddLandRU ] -> [ RemoveLandLUD | ]\nleft [ RemoveLandLUD | AddLandRD ] -> [ RemoveLandLUD | ]\n\n(water redirection)\n\nleft [ stationary FlowL5 | no Flow no Sand no SubmergedPebble ] -> [ FlowL5 | action FlowL5 ]\nright [ stationary FlowR5 | no Flow no Sand no SubmergedPebble ] -> [ FlowR5 | action FlowR5 ]\nup [ stationary FlowU5 | no Flow no Sand no SubmergedPebble ] -> [ FlowU5 | action FlowU5 ]\ndown [ stationary FlowD5 | no Flow no Sand no SubmergedPebble ] -> [ FlowD5 | action FlowD5 ]\n\n[ action Flow ] -> [ Flow ]\n\nleft [ FlowL | Flow SubmergedPebble no Ripple ] -> [ action FlowL | Flow action SubmergedPebble ]\nright [ FlowR | Flow SubmergedPebble no Ripple ] -> [ action FlowR | Flow action SubmergedPebble ]\nup [ FlowU | Flow SubmergedPebble no Ripple ] -> [ action FlowU | Flow action SubmergedPebble ]\ndown [ FlowD | Flow SubmergedPebble no Ripple ] -> [ action FlowD | Flow action SubmergedPebble ]\n\n[ Flow5 StopFlow ] -> [ Flow5 action StopFlow ]\n\nleft [ action StopFlow FlowL | Flow ] -> [ | Flow StopFlow ]\nright [ action StopFlow FlowR | Flow ] -> [ | Flow StopFlow ]\nup [ action StopFlow FlowU | Flow ] -> [ | Flow StopFlow ]\ndown [ action StopFlow FlowD | Flow ] -> [ | Flow StopFlow ]\n\n[ action StopFlow Flow ] -> []\n\n[ StopFlow RemoveTarget Flow ] -> [ RemoveTarget ]\n\nleft [ action SubmergedPebble FlowL | Flow ] -> [ action SubmergedPebble FlowL | Flow StopFlow ]\nright [ action SubmergedPebble FlowR | Flow ] -> [ action SubmergedPebble FlowR | Flow StopFlow ]\nup [ action SubmergedPebble FlowU | Flow ] -> [ action SubmergedPebble FlowU | Flow StopFlow ]\ndown [ action SubmergedPebble FlowD | Flow ] -> [ action SubmergedPebble FlowD | Flow StopFlow ]\n\ndown [ FlowD action SubmergedPebble ] [ action FlowL | no Floor ] -> [ FlowD action SubmergedPebble ] [ FlowD1 | FlowD ]\nup [ Flow action SubmergedPebble ] [ action FlowL | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowU1 | Flow ]\ndown [ Flow action SubmergedPebble ] [ action FlowL | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowD1 | Flow ]\n\nup [ FlowU action SubmergedPebble ] [ action FlowR | no Floor ] -> [ FlowU action SubmergedPebble ] [ FlowU1 | FlowU ]\ndown [ Flow action SubmergedPebble ] [ action FlowR | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowD1 | Flow ]\nup [ Flow action SubmergedPebble ] [ action FlowR | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowU1 | Flow ]\n\nright [ FlowR action SubmergedPebble ] [ action FlowD | no Floor ] -> [ FlowR action SubmergedPebble ] [ FlowR1 | FlowR ]\nleft [ Flow action SubmergedPebble ] [ action FlowD | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowL1 | Flow ]\nright [ Flow action SubmergedPebble ] [ action FlowD | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowR1 | Flow ]\n\nleft [ FlowL action SubmergedPebble ] [ action FlowU | no Floor ] -> [ FlowL action SubmergedPebble ] [ FlowL1 | FlowL ]\nright [ Flow action SubmergedPebble ] [ action FlowU | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowR1 | Flow ]\nleft [ Flow action SubmergedPebble ] [ action FlowU | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowL1 | Flow ]\n\n[ action SubmergedPebble Flow ] -> [ SubmergedPebble ]\n\n(Currents anim)\n\n[ stationary Player ] [ stationary FlowL5 ] -> [Player] [ action FlowL1 ]\n[ stationary Player ] [ stationary FlowL4 ] -> [Player] [ action FlowL5 ]\n[ stationary Player ] [ stationary FlowL3 ] -> [Player] [ action FlowL4 ]\n[ stationary Player ] [ stationary FlowL2 ] -> [Player] [ action FlowL3 ]\n[ stationary Player ] [ stationary FlowL1 ] -> [Player] [ action FlowL2 ]\n\n[ stationary Player ] [ stationary FlowR5 ] -> [Player] [ action FlowR1 ]\n[ stationary Player ] [ stationary FlowR4 ] -> [Player] [ action FlowR5 ]\n[ stationary Player ] [ stationary FlowR3 ] -> [Player] [ action FlowR4 ]\n[ stationary Player ] [ stationary FlowR2 ] -> [Player] [ action FlowR3 ]\n[ stationary Player ] [ stationary FlowR1 ] -> [Player] [ action FlowR2 ]\n\n[ stationary Player ] [ stationary FlowU5 ] -> [Player] [ action FlowU1 ]\n[ stationary Player ] [ stationary FlowU4 ] -> [Player] [ action FlowU5 ]\n[ stationary Player ] [ stationary FlowU3 ] -> [Player] [ action FlowU4 ]\n[ stationary Player ] [ stationary FlowU2 ] -> [Player] [ action FlowU3 ]\n[ stationary Player ] [ stationary FlowU1 ] -> [Player] [ action FlowU2 ]\n\n[ stationary Player ] [ stationary FlowD5 ] -> [Player] [ action FlowD1 ]\n[ stationary Player ] [ stationary FlowD4 ] -> [Player] [ action FlowD5 ]\n[ stationary Player ] [ stationary FlowD3 ] -> [Player] [ action FlowD4 ]\n[ stationary Player ] [ stationary FlowD2 ] -> [Player] [ action FlowD3 ]\n[ stationary Player ] [ stationary FlowD1 ] -> [Player] [ action FlowD2 ]\n\n[ stationary Player Speedup action FlowL4 ] -> [ Player Speedup stationary FlowL5 ]\n[ stationary Player Speedup action FlowL3 ] -> [ Player Speedup stationary FlowL4 ]\n[ stationary Player Speedup action FlowL2 ] -> [ Player Speedup stationary FlowL3 ]\n[ stationary Player Speedup action FlowL1 ] -> [ Player Speedup stationary FlowL2 ]\n\n[ stationary Player Speedup action FlowR4 ] -> [ Player Speedup stationary FlowR5 ]\n[ stationary Player Speedup action FlowR3 ] -> [ Player Speedup stationary FlowR4 ]\n[ stationary Player Speedup action FlowR2 ] -> [ Player Speedup stationary FlowR3 ]\n[ stationary Player Speedup action FlowR1 ] -> [ Player Speedup stationary FlowR2 ]\n\n[ stationary Player Speedup action FlowU4 ] -> [ Player Speedup stationary FlowU5 ]\n[ stationary Player Speedup action FlowU3 ] -> [ Player Speedup stationary FlowU4 ]\n[ stationary Player Speedup action FlowU2 ] -> [ Player Speedup stationary FlowU3 ]\n[ stationary Player Speedup action FlowU1 ] -> [ Player Speedup stationary FlowU2 ]\n\n[ stationary Player Speedup action FlowD4 ] -> [ Player Speedup stationary FlowD5 ]\n[ stationary Player Speedup action FlowD3 ] -> [ Player Speedup stationary FlowD4 ]\n[ stationary Player Speedup action FlowD2 ] -> [ Player Speedup stationary FlowD3 ]\n[ stationary Player Speedup action FlowD1 ] -> [ Player Speedup stationary FlowD2 ]\n\n[ stationary Player Speedup FlowD5 ] [ stationary Death ] -> [ Player Speedup FlowD5 ] [ right Death ]\n\n[ > Death | ] -> [ | Death ]\n\n[ moving Death ] [ Player ] -> [ Death Player ] [ no Lily ] sfx0\n\n[ Lily no Player Speedup FlowD5 ] -> [ Speedup FlowD5 no Pebble ]\n\n(Gameplay)\n\n[ stationary Player ] [ FlowL5 Lily ] -> [Player] [ FlowL5 left Lily ]\n[ stationary Player ] [ FlowR5 Lily ] -> [Player] [ FlowR5 right Lily ]\n[ stationary Player ] [ FlowU5 Lily ] -> [Player] [ FlowU5 up Lily ]\n[ stationary Player ] [ FlowD5 Lily ] -> [Player] [ FlowD5 down Lily ]\n\n[ Ripple1 | moving Lily ] -> [ Ripple1 | Lily ] (makes sure that we don't miss any when skimming past a current)\n\n[ Ripple2 no SubmergedPebble | Lily | no Floor ] -> [ Ripple2 | > Lily | ]\nhorizontal [ RippleH4 | stationary Lily no Flow ] -> [ RippleH4 | > Lily ]\nvertical [ RippleV4 | stationary Lily no Flow ] -> [ RippleV4 | > Lily ]\n\n[ Ripple1 | moving Lily | no Floor ] -> [ Ripple1 | Lily | ] (makes sure that we don't miss any when skimming past an already moving lily)\n\n([ > Lily | stationary Lily ] -> [ > Lily | > Lily ])\n\n[ stationary Player ] [ RippleH4 ] -> [Player] []\n[ stationary Player ] [ RippleV4 ] -> [Player] []\n[ stationary Player ] [ RippleH3 ] -> [Player] [ RippleH4 ]\n[ stationary Player ] [ RippleV3 ] -> [Player] [ RippleV4 ]\n[ stationary Player ] [ RippleH2 ] -> [Player] [ RippleH3 ]\n[ stationary Player ] [ RippleV2 ] -> [Player] [ RippleV3 ]\n[ stationary Player ] [ RippleH ] -> [Player] [ RippleH2 ]\n[ stationary Player ] [ RippleV ] -> [Player] [ RippleV2 ]\n\n(horizontal [ Lily | RippleH | no Ripple2 ] -> [ Lily | | ]\nvertical [ Lily | RippleV | no Ripple2 ] -> [ Lily | | ])\n\n[ stationary Player ] [ Ripple2 ] -> [Player] []\n[ stationary Player ] [ Ripple1 ] -> [Player] [ Ripple2 ]\n\nhorizontal [ > Lily Pebble | no Floor no Flow ] -> [ RippleH | Lily Pebble ]\nhorizontal [ > Lily Player | no Floor no Flow ] -> [ RippleH | Lily Player ]\nhorizontal [ > Lily | no Floor no Flow ] -> [ RippleH | Lily ]\nvertical [ > Lily Pebble | no Floor no Flow ] -> [ RippleV | Lily Pebble ]\nvertical [ > Lily Player | no Floor no Flow ] -> [ RippleV | Lily Player ]\nvertical [ > Lily | no Floor no Flow ] -> [ RippleV | Lily ]\n\n[ > Lily Pebble | no Floor no Pebble ] -> [ | Lily Pebble ]\n+ [ > Lily Player | no Floor no Pebble ] -> [ | Lily Player ]\n+ [ > Lily no Pebble no Player | no Floor ] -> [ | Lily ]\n\n[ > Lily Pebble | no Floor Pebble ] -> [ Lily Pebble | Pebble ]\n[ > Lily Player | no Floor Pebble ] -> [ Lily Player | Pebble ]\n\n[ > Lily | no Floor ] -> [ | Lily ]\n\n[ > Lily | Floor ] -> [ Lily | Floor ]\n\n[ stationary Player ] [ U Pebble ] -> [Player] [ U up Pebble ]\n[ stationary Player ] [ D Pebble ] -> [Player] [ D down Pebble ]\n[ stationary Player ] [ L Pebble ] -> [Player] [ L left Pebble ]\n[ stationary Player ] [ R Pebble ] -> [Player] [ R right Pebble ]\n\n[ Pebble Direction Floor ] -> [ stationary Pebble Floor ] sfx4 (pebble moves onto moving lily)\n\n[ > Player | no Floor ] -> [ Player | ] (sfx6)\n\n[ stationary Pebble no Floor no Direction ] -> [ SubmergedPebble Ripple1 ] sfx3\n\n[ > Pebble Floor | stationary Pebble ] -> [ Pebble Floor | Pebble ]\n[ > Pebble | stationary Pebble ] -> [ stationary Pebble no Direction | Pebble ] sfx7\n\n[ > Player | Pebble Treasure | Floor no Pebble ] -> [ | Treasure Player | Pebble Floor ] sfx2\n[ > Player | Pebble | Floor no Pebble no Treasure7 no Ship no Tree ] -> [ > Player | | Pebble Floor ] sfx2\n[ > Player | Pebble | no Floor no Pebble ] -> [ > Player | > Pebble | ]\n\n[ > Pebble | Ship ] -> [ Pebble no Direction | Ship ]\n\n[ left Pebble ] -> [ L left Pebble ]\n[ right Pebble ] -> [ R right Pebble ]\n[ up Pebble ] -> [ U up Pebble ]\n[ down Pebble ] -> [ D down Pebble ]\n\n[ moving Pebble no Floor ] -> [ moving Pebble Ripple1 ] sfx1\n\n[ > Pebble Direction | ] -> [ | Pebble Direction ]\n\n[ stationary Pebble Direction Floor ] -> [ Pebble Floor ] sfx4 (landing on floor)\n\n[ moving Pebble ] -> []\n\n[ moving Lily Pebble ] -> []\n[ moving Lily ] -> []\n\n(late [ Player Water ] -> [ PlayerInWater Water ]\nlate [ Player no Water ] -> [ PlayerNormal no Water ])\n\n(victory)\n\n[ > Player | Tree no Ship ] [ Ship_Right1 ] -> [ Player | TreasureTaken ] [ Ship_Right1 Tree ] message A palm tree! You can repair your ship with this.\n\n[ > Player | Ship_Right1 no Tree ] -> [ Player | Ship_Right1 ] message Your ship is damaged. You need to find some WOOD to repair it.\n\n[ Lily Ship_Right1 ] -> win\n[ Lily Ship_Right2 ] -> win\n\n[ > Player | Ship_Right1 Tree ] -> [ | Player action Ship_Right1 Tree Darkness ]\n[ > Player | Ship_Right2 ] -> [ | Player action Ship_Right2 Darkness ]\n\n[ Player Ship_Right1 ] -> again\n[ Player Ship_Right2 ] -> again\n\n[ Darkness | no Darkness ] -> [ Darkness | Darkness ]\n\n[ action Ship_Right1 TreasureTaken ] -> [ Ship_Right1 Lily TreasureTaken ] message You repair your ship and sail away to your next adventure!\n\n[ Ship_Right1 StopFlow Treasure ] -> [ Ship_Right1 Lily ] message Treasures found: 1/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure2 ] -> [ Ship_Right1 Lily ] message Treasures found: 2/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure3 ] -> [ Ship_Right1 Lily ] message Treasures found: 3/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure4 ] -> [ Ship_Right1 Lily ] message Treasures found: 4/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure5 ] -> [ Ship_Right1 Lily ] message Treasures found: 5/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure6 ] -> [ Ship_Right1 Lily ] message Treasures found: 6/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure7 ] -> [ Ship_Right1 Lily ] message Treasures found: 7/7, Kept: 0/7\n\n[ Ship_Right1 SubmergedPebble ] -> [ Ship_Right1 StopFlow ] message You reluctantly leave your spoils behind. Later you try to return, but you never manage to find the mysterious islands again.\n\n[ action Ship_Right1 no TreasureTaken ] -> [ Ship_Right1 SubmergedPebble ] message You repair it as best you can, but your battered ship isn't seaworthy enough to carry heavy treasure!\n\n[ Ship_Right2 StopFlow ] [ Ship_right1 TreasureTaken ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 0/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 1/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure2 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 2/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure3 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 3/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure4 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 4/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure5 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 5/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure6 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 6/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure7 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 7/7\n\n[ Ship_Right2 SubmergedPebble ] -> [ Ship_Right2 StopFlow ] message You sail away on your new ship, onwards to your next adventure!\n\n[ action Ship_Right2 ] -> [ Ship_Right2 SubmergedPebble ] message You find a strange ship, conveniently unguarded. It's probably haunted, but it seems seaworthy enough to carry you and your treasure.\n\n(treasure)\n\n[ TreasureTaken Lily | RemoveTarget ] -> message But are you stuck here with it?\n\n[ TreasureTaken Lily no Ship ] -> [ TreasureTaken ]\n\n[ > Player | Treasure no Pebble ] -> [ Player | action Treasure ]\n\n[ Treasure6 Sand ] -> [ Treasure7 Sand ] sfx8 again\n[ Treasure5 Sand ] -> [ Treasure6 Sand ] again\n[ Treasure4 Sand ] -> [ Treasure5 Sand ] again\n[ Treasure3 Sand ] -> [ Treasure4 Sand ] again\n[ Treasure2 Sand ] -> [ Treasure3 Sand ] sfx9 again\n\n[ action Treasure Sand ] -> [ Treasure2 Sand ] again\n\n[ > Player | Treasure7 ] -> [ Player | action TreasureTaken Lily ]\n\n[ action TreasureTaken ] [ no Sand TreasureTaken ] -> [ TreasureTaken ] [ Treasure ] message Found treasure! (1/7)\n[ action TreasureTaken ] [ no Sand Treasure ] -> [ TreasureTaken ] [ Treasure2 ] message Found treasure! (2/7)\n[ action TreasureTaken ] [ no Sand Treasure2 ] -> [ TreasureTaken ] [ Treasure3 ] message Found treasure! (3/7)\n[ action TreasureTaken ] [ no Sand Treasure3 ] -> [ TreasureTaken ] [ Treasure4 ] message Found treasure! (4/7)\n[ action TreasureTaken ] [ no Sand Treasure4 ] -> [ TreasureTaken ] [ Treasure5 ] message Found treasure! (5/7)\n[ action TreasureTaken ] [ no Sand Treasure5 ] -> [ TreasureTaken ] [ Treasure6 ] message Found treasure! (6/7)\n[ action TreasureTaken ] [ no Sand Treasure6 ] -> [ TreasureTaken ] [ Treasure7 ] message Found treasure! (7/7)\n([ action TreasureTaken ] [ no Sand Treasure7 ] -> [ TreasureTaken ] [ SubmergedPebble Lily ] message Found treasure! (8/8))\n\n(checkpoints)\n\n[ > Player | no Pebble ] -> [ | Player ] sfx5\n\n([ > Player | Pebble ] -> sfx6) (can't move)\n\n\n[ Player Target ] -> [ Player action Target ]\n[ action Target | stationary Target ] -> [ action Target | action Target ]\n[ action Target | RemoveTarget ] -> [ action Target | action RemoveTarget ]\n[ action Target Light_trigger ] -> [ action Target action Light_trigger ]\n[ action Target ] -> [] checkpoint\n\n\n[ Pebble Target2 ] -> [ Pebble action Target2 ]\n[ action Target2 | stationary Target2 ] -> [ action Target2 | action Target2 ]\n[ Player stationary Target2 ] -> [ Player Target2 StopFlow ]\n[ Target2 StopFlow | Target2 ] -> [ Target2 StopFlow | Target2 StopFlow ]\n[ Target2 StopFlow ] -> [ no Light_trigger ]\n[ action Target2 | RemoveTarget ] -> [ action Target2 | action RemoveTarget ]\n[ action Target2 Light_trigger ] -> [ action Target2 action Light_trigger ]\n[ action Target2 ] -> [] checkpoint\n\n\n[ action RemoveTarget | stationary RemoveTarget ] -> [ action RemoveTarget | action RemoveTarget ]\n[ action RemoveTarget ] -> []\n\n\n[ Pebble RemoveTarget ] -> [ Pebble action RemoveTarget ]\n[ action RemoveTarget | stationary RemoveTarget ] -> [ action RemoveTarget | action RemoveTarget ]\n[ action RemoveTarget | Target ] -> [ action RemoveTarget | no Light_trigger ]\n[ action RemoveTarget | Target2 ] -> [ action RemoveTarget | no Light_trigger ]\n\n\n[ Light ] -> [] checkpoint\n\n\n[ Player Light_trigger ] -> [ Player action Light_trigger ]\n\n[ action Light_trigger | Sand ] -> [ action Light_trigger | action Light_trigger Sand ]\n\n[ Player action Light_trigger | Sand ] -> [ Player action Light_trigger | action Sand Light ]\n\n[ action Sand Light | stationary Sand ] -> [ action Sand Light | action Sand Light no Light_trigger ]\n\n[ Light | no Light no Death no Speedup ] -> [ Light | Light ] again\n\n[ Light action Light_trigger ] -> [ Light ]\n\n\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww↓wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nwww/wwwwwwwwwwwwwwwwwwwwwwwwwwww↓wwwwwwwwwww...wwwwwwwn@wwwwwwwwwwwwwwwwwwww\nwws2w..wwwwwwwwwwwww...wwwwwwwwo↓wwwwwwwwww.....w..ww.w%%%.wwwwww.wwwwwwwwww\nwww......wwwwwwwwwwww....wwwowww↓wwwwwww.ww....↑wx....ww.%@.www...wwwwwwwwww\nwww......wwww.wwwwwww....wwwwwww↓ww..ww..www.ww↑xx...wwww?..........wwwwwwww\nww....@@wwwww...wwww....ww/wwwww↓....ww..w...ww↑....wwwoww.......*...wwwwwww\nww....@wwwww.....www....ws1..www↓@@w...@....www↑www.wowwwwww...t...wwwwwwwww\nwww..wwwww...t%...www..www.pww.w↓www...@.*.wwww↑w.*.wwwwwwwww....wwwwwwwwwww\nwwwwwwwwww....%%.wwwww.www...*....www..@....www↑w..←←←←←←←←←←←←←←←←←←←←←←←←←\nwwwwwwww.....w.%%w..ww..www....w*..ww..@.wwwwow↑wwww@wwwwwwwwwwwwwwwwwwwwwww\nwwwwwwwww..wwwww%%%x*w....ww..ww...wwww.wwwowww↑www..wwwwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwww.....ww..wwwwwwww..wwwwwwwwwwww↑www...wwwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwww...wwwwwwwwwwwww.→→→→→→→→→→→→→↑nwww...wwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwwwww..wwwwwwwwwwwwwwwwwwwwwwwwwww...wwwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwwwww.x?wwwwwwwwwwwwwwwwwwwwwwwwww...wwwwwwwwwwwwwwwwwwwwww\nwww..w.wwwwwwwwwwwwwwww%wwwwwwwwwwwwwwwnwwwwwwwww..@..wwwwwwwwwwwww...wwwwww\nww....@wwwwwwwwwwwwwwww..wwwwwwwwwwwwwwwwwwww.....*.wwww..wwwwwwwww....wwwww\nww.*..wwwwwww..wwwwww....wwwwwwww...wwwwwwwww...wwwwwww....?wwwwwwww....wwww\nwww...wwwwww...wwwwwww...wwwwwww..*..wwwwwwww.*.wwwwwww....x.wwwwowwn...wwww\nwwww.wwwwwww..wwowwwwww...wwwww......wwwwwww...wowwwwwww...x*.wwwwwww.....ww\nwwwwwwwwwwww..wwwwwwww....wwwww..t.....wnwww..wwwowwwwww...x..wwwwwwww....ww\nwwwwwwwwwwwww..wwwwww.....wwwwww.......!owww↑wwwwww.ww.....x..wwwwwoww...www\nwwwwwwwwwwwww.....ww....wwwwwwwww.w....??wwn↑←←←←←........wx.wwww.www...wwww\nwwwwwwwwwwwwww.........wwwwwwwwwwwww...w?www@..www........w...w...ww@.....ww\nwwwwwwwwwwwwwwww.....wwwwwwwwwwwowwwwwww?ww!..ww....ww..wwww...*...www...www\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww?????...@..www..wwwwww......ww..wwww\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww.....wwwww.wwwwwwwww..wwwww!wwww\nwwwwwwwwwwwwwwwwnwwwwwwwwwwwwwwwwwwwwwwwwnwwwwwwwwwwwwwwwwwwwwwwwwwwwww...ww\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww@@@ww\nww...wwwwwwwwwwwwwwwww.wwwwwwwwwwwwwwwwwwwww....w..wwwwwwwwwwwwwwwwwww..*.ww\nw...*.wwwwowwwwwwwwwnr...wwwwww..wwwwwwwwww.*.....*.w??...wwwwwwwwwwwww..www\nw.*...wwwwwww....nwwww..@wwwwwww...wwwwwww....w.*.%x.%x....wwwww.....ww..www\nw..w.→→→→→→→*....wwnwww.@wwwwowww....wwwww..wwwww.%x.%x.....www..*....wwnwww\nww.w→↑.*w.ww....wwnwww..@@wwwwwww.*..wwwwwwwwwwwww%x.wwwww..www.wwww..wwnwww\nwwww↑....@@www..wnwwn...@@wwwwww...*xwwwwwwwwowwwww.wwwwww....wwwwwww.w.wwww\nwwww↑..*.@←←←←←←←←!←←.w@@ww..www....xwwwwwwwwwwwwwwww..www.....!wwoww..@wwww\nwwow↑w...wwnw....www↑nw@@ww.....*.xxx...wwwwwwwwwwww...www.......wwww....www\nwwww↑wwwwwww.xxx.wnw↑wwwwwwwwww...xw...%%%ww...wwwwwww..www......wwww....www\nwwww↑wwowwwww...wwwn↑wwowwwwwww.w..wwww%xx.w....ww.@ww.wwwww.w...wwwww..wwww\nwwww↑wwwwwwww..wwwww↑wnwwwwwwwwww.wwwww%x.w..........wwwwwwwww...wwwwwwwwwww\nwwww↑wwwwnwww..→→→→→↑nwwwwwwwwwww.wwwwww..www..www...wwwwwwww...wwwwwwwwwnww\nwwww↑wwwwwww...wwwwwwwwwwwwwnwwwwwwnwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwnwwwwwwww\nwwww↑wwwwwww...wwnwwwwwwwwwwwwwwwwwnwwwwwwwwwwwwwwwwwwwnwwwwwwwwwwwwwwnwwwww\nwwww↑..wwwwww.x.wwwwww...wwww*.w...@.wwnwwwwww..wwwwwwwwwwwwwwwnwwwnwwwwnwww\nwwww...wwwwwww...wwww....wwww..*.t...wwwnwwww....w..wwwwwnwwnnwwwnwwwwwnwwww\nwww...wwwwowww....www.t..wwwww.....wwwnwwwwwww......wwwwnwnwwwnww↓↓↓↓wwwwwnw\nwww.....wwwwww....ww...wwwwwwwwwwwwwwwwwwwwwwww*...wnwwwwwwwwwww→→→→→↓wwnwww\nwwww....@↓←?←.....ww..wwwnwwwwwwwwwwwwwww→→→→→→→→→→→→→→→→→→→→→?→↑↓←←←↓←wwwww\nwww.*..ww?ww↑w....ww@@wwn→→→→→→→→→→→→→→→→↑n@@wwwwwwwwwwwwwwwww?→↑↓[]↑←←wwnww\nwwww..wwn↓ww?ww..wwwwwwww↑wwwwwwwwwwwwwwwww..%wwwwww@@wnwwnwwwn→↑↓{}←↓←wwwwn\nwwwww.wow→?→↑wwwwwww...ww!wwwnwwwwwwwwwwww.*x%...ww...wwwnwwwww→↑→→→↑↓←wnwwn\nwwwww↑wwwwowww@wwwww.....↑wwwwnww.w.wwwwww.xx%*.www....wwwwwwnww↑←←←←←wnwwww\nwwwww↑wwwwwwww@@@w....*.w↑wwwwww.....wwwwww%%%..www....wwwwnwwwww↑↑↑↑nwwwwnw\nwwwww↑wwwwwww@@.......www↑wwwwww.....wwwowwww..wwwww..wwwwwwnwwnw↑nwwwwwywww\nwwwww↑wwowwww...ww...wwow↑wwww......wwwwwwww..wwww...wwwnwnwwwwww↑wwnwwwnwww\nwwwww↑wwwwwwwwwwwwwwwwnww↑www.......wwwwwnwwwwwww.....wwwwwwwwwwn↑wwwwwwwwww\nwwwww↑wwwnwwwwwwwwwwwwwww↑www.......wnwwwwwwwwwww.....wwwwwwwwwww↑wwwwwwwwww\nwwwww↑wwwwwwnwww..wwww...↑ww..$....wwwwwwww......@@@@@.wwwwwwwwww↑wwwwwwwwww\nwwwww↑wwww..www.x.nnww...↑w......wwwwwwww...*..wwww.....wwwwwwwww↑www...wwww\nwwwww↑wnww..*.....wwn...w↑w....wwwww.www..*.wwwwnwwww.*.www..wwww↑ww...wwwww\nwwwww↑www.....*..www...ww↑www..www...www..wwwwowwnwww..www.....ww↑nw.t.wwwww\nnwwww↑www.t.ww..wwww...ww↑wwwwwww....wwww.wwwwwwwwww...wwwww.*...↑w.....wwww\nwwwww↑ww...*wwwwwwwww....↑wwwwwww..←←←←←←←←←←←←←←←←←..wwwww...*..↑.*...wwwww\nwwwww↑www....wwwwwww.....↑wwwwwwww.wwwwwwww......www...wnn@.....w↑ww.wwwwwww\nwwwnw↑wwwww..wwwwwwww....↑wwwwwwwwwww..www.x%%%*.wwww..wwww....ww↑wwwwwwwwww\nwwwww↑wwwwwwwwwwwwwwwwn.w↑wwww..w*...%x.ww.%w...wwoww..wwwwww...w↑wwwwwwwwww\nwwwww↑wwnwwwwwwwwowwwwwww↑wwow..*..*.%x..w..ww..wwwww..wwwwwwwwww↑wwwwwwwwww\nwwwww↑wwwwwwwwwwwwwwwwwww↑wwwww...w....wwwwwwwwwwww....wwnwwowwww↑wwwwwwwwww\nwwnww↑wwwwwwwwwwwwwwnwwww↑wwwwwwwwwwwwwwwwwwwowwww....wwwwnwwwwow↑wwwwwwwwww\nwwwww↑wwwwwwwwwwwwwwwwwww↑wwwwwwwwwwwwwwwwwwwwwwwwwwwwwnwwwwwwwww↑wwwwwwwwww\n\n\n(\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwww..ww.wwwwww\nwwwww.......w..wwwww\nwwww...........wwwww\nwww..*.www....wwwwww\nww....wwwwwwwwwww..w\nw..*wwwwowwwwwww...w\nw..p.wwwwwwwww.w.t.w\nw.*..wwwwwwwww.....w\nww..wwwwwwwwww....ww\nwww.wwwwwwwwwwww.www\nwwwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwwww\nwww...ww.....wwwwww\nwwww....w.....wwwww\nwwwww..wwww*.wwwwow\nwwwww.wwoww..wwwwww\nwww...wwwww..wwwoww\nw...*.wwww..←←←←←←←\nw.p..wwwwwwww.wwwww\nww..wwwwwwww..wwwww\nwwwwwwwwwww..@..www\nwwwwwwwwwwww...wwww\nwwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwww\nwwwwwww...ww\nwww.....*.ww\nwww.*.wwwwww\nwww.p.wwwwww\nww...wowwwww\nww..wwwowwww\nww↑wwwwww..w\nww↑←←←←←.@.w\nww...www...w\nw...ww....ww\nw........www\nwww....wwwww\nwwwwwwwwwwww\n\nwwwwwwwwwwwwwwww\nwwwwwwwwww...www\nwwwwwwwwwww...ww\nw...wwwwwww....w\nw.*.wwwwoww....w\nw..*.wwwwwww.@.w\nww..wwwwwwww...w\nw...wwwwwwoww..w\nww..wwww.www..ww\nww.p.w...ww...ww\nwww...*...www.ww\nwwwww......wwwww\nwwwwwww..wwwwwww\nwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwww\nwwwwwww.....wwwwww\nwwww.w....*..wwwww\nwwww....wwww.wwwww\nwww....wwwwwwwwwww\nwww....wwowww..www\nwww....wwww......w\nwww....wwww..@..ww\nwwww.*wwwww....www\nwwwwwwwwwww...wwww\nwww.....wwww..wwww\nwww...*.wwwwwwwwww\nww...p..wwwwwwwwww\nwwwww...wwwwwwwwww\nwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwww\nwwwwww..w....www\nwwwww.*.....*.ww\nwwww....*.w....w\nwwww..p.wwwww..w\nwwww.*.wwwwww.ww\nwwww...wwwwwwwww\nwwwww.wwwwwowwww\nw...wwwwwwwwwwww\nww...wwwwwwwwwww\nww.wwwwwww..wwww\nwwwww.www.@.wwww\nwwww.........www\nwwww...www.wwwww\nwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwww\nwwwww..wwwwww..wrw\nwww...wwwwwww...ww\nw...pwwwowww...wrw\nw..*.wwwwwww.@..ww\nw.*...wwwwww.....w\nww..*.www..ww..w.w\nwww..*.....www.www\nwwww...wwwwwwwwwww\nwwwwww.wwwwwwwwwww\nwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwww...ww\nwwwwwwwwowwww.*...w\nww....wwwwwww...*.w\nww....*←←←←←←←.w..w\nww.....ww.w*.↑←w.ww\nwww..wwww..p..↑wwww\nwwwwwwwww..*..↑wwww\nww....wwww...w↑woww\nww.@...wwwwwww↑wwww\nwww...wwwwwoww↑wwww\nwwwwwwwwwwwwww↑wwww\n\nwwwwwwwwwwwwwwwww\nwwwwwwwwwwww..www\nwww..wwwwwww...ww\nww...wwwwowww...w\nw.p.*wwwwww.*...w\nw.....→→→↓.....ww\nw.*..w↑ww↓ww....w\nww..ww↑ww↓www..ww\nwwwwww↑←←←wow.www\nwwww.wwwowwww↑www\nww...wwwwwwww↑www\nww.@..wwwwwww↑www\nwwww..wwwwoww↑www\nwwwwwwwwwwwww↑www\n\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwww..wwww\nwww...wwwwww..wwrow\nww....wwwww.....www\nww..@.wwwww.*.p..ww\nwww...wwww.....*.ww\nwww..wwwwwwww.*.www\nwwwwwwwwwwwwww..www\n←←←←←←←←←←←←←←←←←←←\nwwwwwwww....wwwwwww\nwwwwwww......wwwwww\nwwwwwww..w...wwwwww\nwwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwwww\nwwwww...ww.ww.wwwww\nwww........w...wwww\nwww...*.........www\nww..*.wwww.......ww\nw...w.wwowwww.*...w\nww..wwwwwwwwww..p.w\n←←←←←←←←←←←←←←....w\nwwwww.ww...www....←\nwwww.......wwww...w\nwww...w.@.wwoww...w\nwwww.www..wwwww..ww\nwwwwwwwwwwwwww...ww\nwwwwwwwwwwwwwwwwwww\n)\n\n(wwwwwwwwwwwwwwwwwww\nw...wwwwwwwwwwwwwww\nw.*..wwwwwwwwwwwwww\nw...wwwwowwwwwwwwww\nwp*.wwwwwwwwwwwwwww\nw.*.wwwoooooooooooo\nw..←←←←←←←←←←←←←←←←\nwwww.wwwwwwwwwwwwww\nwww..wwwwwwwwwwwwww\nww..@..wwwwwwwwwwww\nwww...wwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww)\n\n(wwwwwwwwwww\nw....ww..ww\nw...*.....w\nww..ww.p..w\nwwwwww...ww\nwwwowww.www\nwwwwwwwwwww\n\nwwwwwww\nww...ww\nww.p..w\nwww.*.w\nwow..ww\nww...ww\nwwwwwww)\n\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 2, "tick", "tick", 2, "tick", 3, "tick", "tick", 3, "tick", "tick", "tick", 2, "tick", 3, "tick", 0, "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", 3, "tick", "tick", 3, "tick", "tick", "tick", "tick", 0, "tick", 0, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background: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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background submergedpebble:1,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,addlandrd background:2,background removelandlu sand:3,background sand:4,background removelandld sand:5,addlandru background:6,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,background ship_left:7,0,2,3,5,6,0,0,0,0,\n0,0,0,2,3,5,6,0,0,0,0,0,0,0,0,0,0,3,4,background pebble sand:8,4,background removelandld removelandrd sand:9,0,0,background lily:10,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,1,0,0,background ship_sails:11,background ship_right2:12,3,4,4,4,5,0,0,0,0,0,0,0,3,4,8,\n5,6,0,0,0,0,0,0,0,0,0,4,4,4,addlandlu addlandru background:13,0,0,0,0,0,0,0,0,0,0,0,2,3,5,addlandrud background:14,background removelandlud sand:15,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,4,4,4,4,background removelandrd sand:16,0,0,0,0,0,0,0,background removelandru sand:17,4,4,4,9,0,0,0,0,\n0,0,0,0,0,17,8,4,9,background flowr4:18,background flowu4:19,19,19,19,19,19,19,19,19,addlandrd background flowu4:20,3,4,4,4,8,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,4,4,4,4,addlandlu background:21,0,0,0,0,0,0,0,addlandld addlandrd background:22,4,4,16,21,0,0,0,0,0,0,0,0,0,addlandld background:23,\n17,16,addlandlu background flowr4:24,20,3,5,6,0,0,0,0,0,0,3,4,4,4,4,4,4,9,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,0,0,17,4,4,background light_trigger sand target:25,background light_trigger removelandrd sand target:26,0,0,0,0,0,0,0,0,background removelandlu removelandru sand:27,26,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,3,4,4,\n5,0,0,0,0,0,0,17,16,addlandlud background:28,4,4,16,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,4,4,26,21,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,18,background pebble removelandru sand:29,4,8,4,0,10,0,0,0,\n0,0,0,0,17,4,21,0,10,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,17,16,21,0,0,0,15,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,22,4,4,16,0,0,0,0,0,0,0,0,0,23,background light_trigger removelandrud sand target:30,\n0,1,0,0,0,0,10,0,0,0,0,0,0,2,15,6,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,27,25,26,21,0,0,0,1,0,0,0,0,0,0,background flowd4:31,background flowd4 removetarget:32,31,18,0,0,0,\n0,0,1,0,0,2,3,4,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,3,4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,18,23,30,addlandlu background flowl4:33,0,0,0,0,0,0,0,0,0,10,0,background flowl4:34,0,0,background flowr4 removetarget:35,10,0,0,0,0,0,0,3,4,\n4,background sand treasure:36,4,4,6,0,0,0,0,0,0,0,0,0,0,0,2,4,4,4,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,34,1,0,0,0,0,0,0,0,0,0,0,background flowl4 removetarget:37,0,0,18,0,0,0,0,0,0,0,17,4,4,4,8,4,5,0,\n0,0,0,0,0,0,0,0,0,2,3,4,4,16,0,0,0,0,0,0,0,2,3,4,5,6,0,0,0,0,0,0,0,0,0,2,background pebble removelandlu sand:38,5,0,34,2,15,6,0,2,3,5,6,0,0,0,34,19,background flowu4 removetarget:39,19,0,0,0,0,0,0,1,23,8,4,21,23,17,16,0,0,0,0,0,0,0,\n0,0,27,4,4,36,4,13,0,0,0,0,0,0,0,3,4,4,4,4,5,6,0,0,0,0,0,0,0,3,4,4,6,34,3,background light_trigger sand target2:40,4,4,4,4,4,5,6,0,2,15,6,0,0,0,2,background light_trigger removelandlu sand target:41,5,0,0,0,0,4,4,6,0,0,0,0,0,0,0,0,0,0,0,0,23,4,4,background removetarget sand:42,\n42,5,0,0,0,0,0,0,0,17,16,21,23,17,4,5,0,0,0,0,0,0,0,4,4,4,5,34,4,40,4,4,4,4,4,40,4,4,4,4,5,6,0,background light_trigger removelandlu removelandru sand target:43,25,25,4,0,0,0,2,4,8,5,0,0,0,0,0,0,0,0,0,0,0,0,0,17,4,4,42,42,6,0,0,0,\n0,0,0,0,0,0,0,23,4,4,6,0,0,0,0,0,0,4,4,4,16,34,4,40,16,21,18,0,23,17,4,4,4,4,4,5,0,23,25,4,16,0,0,2,3,4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,23,17,4,4,42,42,5,6,0,0,0,0,0,0,10,\n0,0,4,4,5,0,0,1,0,0,0,17,16,21,0,34,17,16,21,0,18,0,0,23,17,4,4,4,4,16,0,0,background light_trigger removelandru sand target:44,4,21,0,0,3,40,4,16,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,background removelandrud sand:45,21,22,42,4,5,0,0,0,0,0,0,0,0,0,17,4,4,0,\n0,0,0,0,0,1,0,0,1,34,0,0,0,0,18,0,1,0,23,17,4,4,16,21,0,0,22,4,6,0,0,17,4,16,21,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,3,42,4,4,0,0,0,0,0,0,0,0,0,23,4,4,0,0,0,0,0,0,0,\n0,1,0,background flowl4 light_trigger target:46,0,1,0,0,18,0,0,0,0,0,0,0,0,0,0,0,3,4,5,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,40,4,16,0,0,0,0,0,0,0,0,0,2,4,4,0,0,0,0,0,0,0,1,0,0,34,0,0,\n1,0,18,0,0,0,0,0,0,0,0,0,0,2,4,4,4,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,15,6,2,3,5,6,0,23,29,16,21,0,0,0,0,0,0,0,0,2,3,4,16,0,0,0,0,0,1,0,0,0,1,34,19,19,19,19,19,0,0,0,\n0,2,3,4,background light_trigger removelandld sand target:47,0,3,4,4,4,16,0,0,0,0,addlandrd background submergedpebble:48,3,5,14,15,6,0,0,0,1,0,0,0,4,4,4,4,4,5,6,0,0,0,0,0,0,0,0,15,6,0,2,3,4,4,21,0,0,0,0,0,background r:49,0,0,2,3,9,1,0,0,0,1,0,0,2,3,4,4,4,26,0,\n4,4,4,16,21,0,0,0,2,3,4,4,4,4,5,0,0,0,0,0,0,0,17,4,4,4,4,4,4,4,5,6,0,3,5,6,2,4,5,14,3,4,4,16,0,0,0,0,0,27,4,5,14,3,4,13,0,0,0,1,0,0,0,3,4,36,16,21,0,0,17,4,8,21,0,1,\n0,3,4,4,4,4,4,4,4,addlandru background submergedpebble:50,0,0,0,0,0,0,23,4,4,4,16,21,23,17,4,5,0,17,40,42,4,4,4,4,4,4,16,21,0,0,0,0,0,23,4,4,4,4,4,25,47,0,10,0,0,0,0,4,4,4,21,0,0,0,23,4,16,0,10,0,0,4,4,16,21,23,\n4,4,4,9,0,0,0,0,0,0,0,17,16,21,0,0,0,23,4,16,0,0,background removetarget:51,23,17,4,4,4,4,4,21,0,0,0,0,0,0,0,17,25,25,25,25,25,26,0,0,0,0,0,0,17,4,16,0,0,1,0,0,45,21,0,0,0,0,17,16,21,0,0,17,4,16,21,0,0,\n0,0,0,0,0,0,0,0,7,0,0,0,45,21,0,0,0,0,0,0,23,17,4,16,0,0,0,0,0,0,0,0,0,0,23,44,26,21,0,0,0,0,0,0,0,0,0,0,0,1,18,19,background flowu4 light_trigger target:52,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,0,0,0,0,\n0,11,addlandrd background ship_right1 treasuretaken:53,3,5,6,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,18,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,3,4,4,5,\n6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,5,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,0,2,3,5,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,45,28,4,4,5,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,4,0,0,0,0,1,0,0,0,0,0,0,18,0,0,0,0,0,0,0,2,3,4,4,6,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,2,4,4,16,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,10,0,0,23,4,0,0,0,0,0,0,38,5,6,0,0,18,0,1,0,0,0,2,3,4,4,4,4,5,0,0,0,0,0,0,0,0,0,background u:54,0,0,0,0,0,0,27,4,16,21,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,4,6,0,0,0,0,0,17,4,5,0,0,18,0,0,1,0,0,3,4,4,background sand tree:55,4,4,16,0,0,0,0,3,5,6,0,0,0,0,0,0,0,0,0,23,4,13,0,0,0,0,0,0,0,0,2,3,5,6,0,0,0,0,0,0,0,0,15,6,0,0,\n0,2,4,4,9,0,0,0,0,22,8,4,0,0,18,0,0,0,0,2,4,4,4,4,4,21,0,0,0,0,0,17,4,5,0,0,31,31,31,31,31,31,31,background flowd4 lily playernormal:56,4,8,5,6,0,0,0,0,0,2,3,4,4,5,6,0,10,0,0,0,0,0,17,5,6,2,3,4,8,4,13,0,\n0,0,0,3,4,4,0,0,18,0,0,2,3,4,4,4,4,4,16,0,0,0,0,0,0,22,8,4,0,0,0,0,0,0,0,3,47,0,17,4,4,4,9,0,0,0,0,3,4,4,36,4,9,0,0,0,0,0,0,0,23,4,4,4,4,4,4,4,4,4,9,0,0,4,36,4,\n0,0,18,0,0,27,4,4,4,4,4,4,21,0,2,3,5,6,0,38,4,16,0,0,0,0,0,0,2,4,26,0,23,17,4,16,24,0,0,0,0,4,8,4,4,4,13,0,0,0,0,0,0,0,0,17,4,8,4,4,40,40,16,21,0,0,0,4,4,16,0,0,18,0,0,22,\n4,4,4,4,4,16,0,0,3,4,4,9,0,4,4,13,0,0,0,0,0,0,3,4,13,0,0,0,0,0,18,0,0,0,0,17,4,4,4,4,5,6,0,0,0,0,0,0,0,23,4,4,8,4,40,13,0,0,0,1,1,25,4,21,0,0,18,0,0,27,4,4,4,4,16,21,\n0,2,4,4,33,0,0,4,8,5,0,0,0,0,0,0,17,4,4,5,6,0,0,0,18,0,0,0,0,23,17,4,4,4,4,5,0,0,0,0,0,0,0,0,17,4,40,40,40,5,0,0,0,0,0,17,16,0,0,0,18,0,0,23,17,16,21,0,0,0,0,27,4,16,34,0,\n2,4,4,4,0,0,0,0,0,0,0,23,4,4,4,5,0,0,18,0,0,0,0,0,0,23,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,23,4,4,0,0,0,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,1,0,0,0,0,0,34,0,3,42,42,4,0,0,\n0,0,0,0,0,2,4,4,4,4,6,0,18,0,0,0,0,0,0,0,17,4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,4,4,6,0,0,0,0,0,0,1,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,17,40,40,16,0,0,0,0,0,2,3,4,\n25,25,25,25,9,0,18,0,0,1,0,0,0,0,0,background light_trigger target:57,51,0,0,0,0,0,0,0,0,0,0,0,0,0,17,42,42,background removelandld removetarget sand:58,6,0,0,1,0,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,23,17,4,21,0,0,0,0,0,27,4,4,4,4,4,16,21,0,\n18,0,0,0,0,0,0,0,1,10,51,51,51,51,0,0,0,0,0,0,0,0,0,0,23,42,40,40,5,0,0,0,1,0,0,0,18,0,0,0,0,10,0,0,0,0,2,3,5,6,34,0,0,23,45,0,0,0,0,0,0,0,0,22,4,8,4,21,0,0,18,0,0,0,0,0,\n0,0,0,0,0,0,0,51,0,1,0,0,0,0,0,0,0,0,0,background removelandru removetarget sand:59,40,4,16,0,0,0,0,0,0,18,19,0,0,0,0,0,0,1,0,0,3,4,4,9,34,0,0,0,0,0,0,0,0,0,0,0,0,3,4,4,4,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,\n0,51,0,0,0,0,2,3,5,0,0,0,0,23,45,21,0,0,0,0,0,0,0,18,1,2,3,5,6,0,0,0,0,2,4,8,21,0,34,2,3,4,5,0,0,0,0,2,3,5,14,4,16,28,45,0,10,0,18,0,0,0,0,0,0,0,0,0,1,0,57,51,0,0,0,2,\n3,4,16,0,0,0,0,0,2,15,0,0,0,0,0,0,0,18,41,4,8,40,58,0,0,0,0,3,4,16,0,0,34,3,40,42,16,0,0,0,0,3,4,4,4,16,21,0,0,0,0,0,18,0,0,0,0,0,2,3,5,19,19,41,5,addlandrud background removetarget:60,15,0,0,3,8,4,21,0,0,0,\n0,3,4,4,6,0,0,0,0,0,0,18,44,4,40,40,42,14,15,0,0,4,8,21,0,0,34,4,42,13,0,0,0,0,0,4,4,4,21,0,0,0,0,10,0,0,18,0,0,0,3,4,4,4,16,0,34,4,4,4,4,0,0,4,4,16,0,0,10,0,0,4,4,4,5,0,\n0,2,15,6,0,18,23,59,42,42,42,4,16,0,0,4,4,0,0,0,34,4,42,5,6,0,10,0,0,17,4,16,0,0,0,0,0,0,0,0,18,0,0,0,4,4,8,16,21,0,34,45,28,4,4,0,0,4,4,13,0,0,0,0,0,17,4,4,16,0,0,3,4,5,6,18,\n0,23,4,8,4,16,21,0,0,4,16,0,10,0,34,4,42,4,5,0,0,0,0,23,45,addlandlu background flowu4:61,19,19,19,19,19,19,19,19,19,0,0,0,4,4,16,21,0,0,34,0,2,4,4,0,0,17,4,5,0,0,0,0,0,23,17,4,21,0,0,17,4,4,background pebble removelandld sand:62,18,0,0,4,4,16,21,\n0,0,0,4,21,0,0,0,34,4,8,4,16,0,0,0,0,0,0,2,background light_trigger removelandlu sand target2:63,5,0,0,0,0,0,0,1,0,0,2,4,21,0,10,0,0,34,0,3,25,16,0,0,22,4,8,6,0,0,0,0,0,23,4,0,0,0,23,17,4,4,18,0,0,45,21,0,0,0,0,2,4,0,1,\n0,0,34,17,16,21,0,0,0,0,0,0,3,40,40,4,0,3,5,0,0,0,0,0,0,3,4,0,0,0,10,0,34,2,4,4,21,0,0,3,4,4,5,6,0,0,0,0,2,4,6,0,0,0,22,4,4,18,0,0,0,0,0,0,2,3,4,25,0,0,1,0,34,0,0,0,\n0,0,0,0,0,0,17,4,4,4,14,8,16,0,0,0,0,0,2,4,8,0,0,0,0,2,3,4,4,16,0,0,0,17,8,42,42,58,6,0,0,0,3,4,5,0,0,0,3,4,16,18,0,0,0,0,0,0,3,4,4,25,6,0,0,0,34,0,0,10,0,2,15,0,0,0,\n23,4,4,4,4,16,33,2,3,5,14,3,4,25,16,0,0,0,0,27,4,4,16,21,0,0,0,23,17,40,40,40,9,0,0,0,44,4,4,0,0,0,17,16,21,18,0,2,3,4,5,14,4,4,4,25,5,0,0,0,34,0,0,0,0,3,4,0,0,0,2,4,16,21,0,0,\n34,43,4,4,4,4,4,4,21,0,0,0,0,23,4,4,21,0,0,0,0,0,23,4,4,16,21,2,15,0,23,17,16,0,0,0,0,0,1,18,0,41,4,4,4,4,4,4,4,25,4,6,2,3,4,5,6,0,2,4,4,0,0,0,27,16,21,0,10,0,34,0,23,17,4,4,\n4,16,0,0,0,0,0,2,4,4,6,0,0,0,0,0,51,42,42,21,0,3,4,6,0,0,0,0,0,0,0,0,0,18,0,44,4,4,4,16,28,17,4,25,4,4,4,4,4,4,4,4,4,4,16,0,0,1,0,0,0,0,0,0,34,0,0,23,45,21,0,0,0,0,0,0,\n0,3,4,4,4,4,9,0,0,0,addlandrd background removetarget:64,40,40,0,0,17,4,4,9,0,0,0,0,0,0,0,0,18,0,0,23,17,16,21,0,0,23,17,4,8,4,16,28,17,4,4,4,16,21,0,0,43,58,6,0,10,0,0,34,0,0,0,0,0,0,0,2,3,5,6,2,4,4,4,4,16,\n21,0,0,0,3,4,4,0,0,0,23,45,21,0,0,0,1,0,0,0,0,18,0,1,0,0,0,0,0,0,0,23,17,16,21,0,0,0,0,0,0,0,0,1,0,23,42,5,0,0,0,0,34,0,0,0,0,0,0,0,3,4,4,4,4,4,4,4,21,0,0,0,0,0,4,4,\n4,0,0,0,0,0,0,0,0,0,0,0,0,1,0,18,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,42,42,addlandru background removetarget:65,0,0,0,34,0,0,0,0,0,0,0,17,4,4,4,4,4,4,16,0,0,0,0,0,0,17,4,4,6,0,0,0,0,\n0,0,0,0,0,0,1,0,0,18,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,17,25,4,5,0,0,34,0,0,0,0,0,0,0,23,17,4,4,4,4,13,0,0,0,0,0,0,0,23,17,4,4,4,4,5,6,0,0,0,0,0,0,\n0,1,0,18,0,1,0,0,0,0,1,0,0,0,0,2,15,0,2,background light_trigger removelandlud sand target:66,6,0,0,0,1,0,0,0,23,17,4,4,6,0,34,0,0,0,0,0,0,0,0,addlandld background removetarget:67,40,40,40,40,40,5,6,0,0,0,0,0,0,23,17,4,4,4,4,5,6,0,0,0,0,0,0,0,0,18,0,0,\n0,0,1,0,0,0,0,0,0,3,4,14,3,4,5,0,0,0,0,0,0,0,0,23,4,4,5,6,34,0,0,0,0,0,0,0,0,0,17,8,4,4,4,4,5,0,0,0,0,0,0,0,0,23,4,4,4,4,9,0,0,0,0,0,1,0,0,18,0,0,0,0,0,1,0,0,\n0,0,0,17,4,4,4,4,4,6,0,10,0,0,0,0,0,0,4,4,4,5,34,0,0,0,0,0,0,0,0,0,23,17,4,16,28,17,4,6,0,0,0,0,0,0,0,0,17,4,4,4,13,2,15,0,0,0,1,0,0,18,0,0,0,1,0,0,0,0,0,0,0,23,4,8,\n4,4,4,5,0,0,0,0,0,0,0,2,4,4,4,4,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,22,4,5,0,0,0,0,0,0,0,0,23,17,4,4,4,4,4,0,0,0,0,1,0,35,51,1,0,0,0,0,0,0,0,0,0,0,17,4,8,4,4,4,0,0,\n0,0,0,0,0,3,4,4,36,4,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,8,4,6,0,0,0,0,2,3,9,0,addlandld background light_trigger target:68,4,4,4,4,16,0,0,1,0,0,0,18,18,18,18,0,0,1,0,0,0,0,0,0,23,4,4,16,28,45,0,0,10,0,0,0,2,4,\n4,4,4,16,34,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,4,4,5,0,0,0,0,3,4,21,0,0,17,4,4,16,21,0,0,0,0,0,18,19,19,19,19,19,0,0,0,1,0,0,0,0,0,17,16,21,0,0,0,0,0,0,0,0,27,4,4,8,4,21,34,0,\n0,0,0,0,0,0,0,0,10,0,0,0,27,4,4,4,16,0,0,0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,1,31,18,31,31,31,18,34,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,0,0,0,23,4,4,16,0,34,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,23,17,4,21,0,0,0,0,4,4,0,0,10,0,0,0,0,0,0,0,0,0,31,18,34,background flowr4 speedup:69,background flowu4 speedup:70,18,34,19,1,0,0,0,0,0,0,1,2,15,0,0,0,0,0,0,0,0,0,0,0,17,4,21,0,34,0,0,0,0,0,0,3,5,6,0,0,0,10,\n0,0,23,45,0,0,0,0,0,4,4,6,0,0,0,0,0,0,0,1,0,1,0,31,18,34,background flowd4 speedup:71,background flowl4 speedup:72,18,34,19,0,0,0,0,0,0,0,2,3,8,6,0,0,0,0,0,0,0,0,0,0,23,45,0,0,34,0,0,0,0,0,0,4,4,5,50,0,0,0,2,66,0,0,0,0,\n0,0,0,17,4,5,6,0,0,0,0,0,0,0,0,0,0,31,18,34,19,34,19,34,19,0,1,0,0,0,2,3,4,4,4,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,17,4,4,4,5,6,2,3,4,6,0,0,0,0,0,0,23,17,4,\n4,4,4,5,6,0,0,0,0,0,0,0,31,31,34,31,31,34,1,0,0,0,0,0,3,4,36,4,4,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,23,17,4,4,4,4,4,4,4,4,5,0,0,2,15,6,0,0,0,22,4,4,4,5,0,\n0,0,1,0,0,0,0,34,34,34,34,0,0,0,0,0,0,0,4,4,4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,23,17,4,4,4,4,4,4,4,16,57,3,25,4,4,5,0,0,27,25,4,4,16,0,0,0,0,0,1,0,\n0,0,0,0,0,1,0,0,0,0,0,0,45,21,23,45,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,0,0,23,4,4,16,28,4,16,21,0,4,25,8,4,16,1,1,0,23,17,16,21,0,0,0,0,1,0,0,1,0,0,0,1,0,\n0,background death:73,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,0,0,0,17,16,21,0,45,21,0,0,17,25,16,21,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,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,34,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,1,0,0,0,0,0,0,1,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,34,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,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 0, "1627778728427.8804"] + ["title Skipping Stones to Lonely Homes\nauthor Alan Hazelden\nhomepage www.draknek.org\n\n(verbose_logging)\n\nrun_rules_on_level_start\n\nrealtime_interval 0.1\nagain_interval 0.1\n(key_repeat_interval 0.2)\n\nflickscreen 19x14\n\nnoaction\n\n(youtube UuKbLbC1zw0)\n\n========\nOBJECTS\n========\n\nBackground\nLightBlue Blue\n11111\n11101\n11111\n10111\n11111\n\nSand .\n#dfcc4f yellow\n11111\n01111\n11101\n11111\n10111\n\nTree\nBrown Green\n..11.\n111..\n1.011\n..0.1\n..0..\n\n(Hole\n#c5b446 #dfcc4f\n11111\n01111\n11101\n11111\n10111\n\nCrate\nBrown Orange\n00000\n01110\n01110\n01110\n00000)\n\nLily\nGreen LightGreen\n.111.\n10001\n10001\n10001\n.111.\n\n\nRipple1\nBlue LightBlue\n00000\n01110\n01010\n01110\n00000\n\nRipple2\nBlue LightBlue\n01110\n10001\n10001\n10001\n01110\n\nRippleH\nBlue LightBlue\n00000\n00000\n01110\n00000\n00000\n\nRippleH2\nBlue LightBlue\n00000\n01110\n01010\n01110\n00000\n\nRippleH3\ntransparent\n\nRippleH4\ntransparent\n\nRippleH5\ntransparent\n\nRippleV\nBlue LightBlue\n00000\n00100\n00100\n00100\n00000\n\nRippleV2\nBlue LightBlue\n00000\n01110\n01010\n01110\n00000\n\nRippleV3\ntransparent\n\nRippleV4\ntransparent\n\nRippleV5\ntransparent\n\n(WaterNew\nwhite LightBlue\n11111\n01111\n11101\n11111\n10111)\n\n\nTreasure\n#d0be4a Yellow Yellow\n.111.\n10201\n12021\n10201\n.111.\n\nTreasure2\n#dfcc4f yellow\n1111.\n01111\n11101\n11111\n10111\n\nTreasure3\n#dfcc4f yellow #d0be4a orange white\n1111.\n11111\n12211\n10011\n11111\n\nTreasure4\n#dfcc4f yellow #d0be4a orange white\n1111.\n12221\n10001\n10001\n11111\n\nTreasure5\n#dfcc4f yellow #d0be4a orange white\n1111.\n22222\n00000\n00000\n11111\n\nTreasure6\n#dfcc4f yellow #d0be4a orange white\n1222.\n20002\n00300\n00000\n10001\n\nTreasure7\n#dfcc4f yellow #d0be4a orange white\n1222.\n20002\n03430\n03330\n10001\n\nTreasureTaken\n#dfcc4f yellow #d0be4a\n1222.\n20002\n00000\n00000\n10001\n\n\n\nTarget\ntransparent\n\nTarget2\ntransparent\n\nRemoveTarget\ntransparent\n\n(\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTarget2\nRed\n.....\n.000.\n.0.0.\n.000.\n.....\n\nRemoveTarget\nRed\n.....\n.....\n..0..\n.....\n.....\n)\n\nPlayerNormal\nDarkRed #493c2b #000000\n..0..\n.111.\n01110\n02220\n.2.2.\n\nPlayerInWater\nDarkRed #493c2b #000000\n..0..\n.111.\n01110\n02220\n.....\n\nPebble\nGrey DarkGrey LightGrey\n.....\n..00.\n.0001\n.0111\n...1.\n\nSubmergedPebble\nDarkGrey #263546 Blue LightBlue\n22222\n22232\n20022\n00012\n01112\n\nU\ntransparent\n\nD\ntransparent\n\nL\ntransparent\n\nR\ntransparent\n\n\nAddLandLUD\nYellow\n0....\n.....\n.....\n.....\n0....\n\nAddLandLU\nYellow\n0....\n.....\n.....\n.....\n.....\n\nAddLandLD\nYellow\n.....\n.....\n.....\n.....\n0....\n\nAddLandRUD\nYellow\n....0\n.....\n.....\n.....\n....0\n\nAddLandRU\nYellow\n....0\n.....\n.....\n.....\n.....\n\nAddLandRD\nYellow\n.....\n.....\n.....\n.....\n....0\n\nRemoveLandLUD\nBlue\n0....\n.....\n.....\n.....\n0....\n\nRemoveLandLU\nBlue\n0....\n.....\n.....\n.....\n.....\n\nRemoveLandLD\nBlue\n.....\n.....\n.....\n.....\n0....\n\nRemoveLandRUD\nBlue\n....0\n.....\n.....\n.....\n....0\n\nRemoveLandRU\nBlue\n....0\n.....\n.....\n.....\n.....\n\nRemoveLandRD\nBlue\n.....\n.....\n.....\n.....\n....0\n\n\nFlowL1 ←\n#3166f7 #cbe4ef\n00100\n00000\n00001\n00000\n01000\n\nFlowL2\n#3166f7 #cbe4ef\n01000\n00000\n00010\n00000\n10000\n\nFlowL3\n#3166f7 #cbe4ef\n10000\n00000\n00100\n00000\n00001\n\nFlowL4\n#3166f7 #cbe4ef\n00001\n00000\n01000\n00000\n00010\n\nFlowL5\n#3166f7 #cbe4ef\n00010\n00000\n10000\n00000\n00100\n\nFlowR1 →\n#3166f7 #cbe4ef\n10000\n00000\n00100\n00000\n00001\n\nFlowR2\n#3166f7 #cbe4ef\n01000\n00000\n00010\n00000\n10000\n\nFlowR3\n#3166f7 #cbe4ef\n00100\n00000\n00001\n00000\n01000\n\nFlowR4\n#3166f7 #cbe4ef\n00010\n00000\n10000\n00000\n00100\n\nFlowR5\n#3166f7 #cbe4ef\n00001\n00000\n01000\n00000\n00010\n\nFlowU1 ↑\n#3166f7 #cbe4ef\n10000\n00001\n00000\n00100\n00000\n\nFlowU2\n#3166f7 #cbe4ef\n00001\n00000\n00100\n00000\n10000\n\nFlowU3\n#3166f7 #cbe4ef\n00000\n00100\n00000\n10000\n00001\n\nFlowU4\n#3166f7 #cbe4ef\n00100\n00000\n10000\n00001\n00000\n\nFlowU5\n#3166f7 #cbe4ef\n00000\n10000\n00001\n00000\n00100\n\nFlowD1 ↓\n#3166f7 #cbe4ef\n10000\n00001\n00000\n00100\n00000\n\nFlowD2\n#3166f7 #cbe4ef\n00000\n10000\n00001\n00000\n00100\n\nFlowD3\n#3166f7 #cbe4ef\n00100\n00000\n10000\n00001\n00000\n\nFlowD4\n#3166f7 #cbe4ef\n00000\n00100\n00000\n10000\n00001\n\nFlowD5\n#3166f7 #cbe4ef\n00001\n00000\n00100\n00000\n10000\n\nStopFlow\ntransparent\n\nShip_Left\n#eb8931 #732930 #2f2416 #ffffff\n..030\n.0331\n01121\n.0111\n..000\n\nShip_Right1\n#eb8931 #732930 #2f2416 #ffffff\n3330.\n12110\n12110\n11110\n0000.\n\nShip_Right2\n#eb8931 #732930 #2f2416 #ffffff\n3330.\n12110\n12110\n11110\n0000.\n\nShip_Sails\n#ffffff\n.....\n.....\n.....\n.00..\n00...\n\nDarkness\nblack\n\nDeath\nLightBlue Blue\n11111\n11101\n11111\n10111\n11111\n\nSpeedup\ntransparent\n\nLight_trigger\ntransparent\n\nLight\nwhite\n\nMyMistake\ntransparent\n\n=======\nLEGEND\n=======\n\nw = Background\n\nDirection = U or D or L or R\n\nPlayer = PlayerNormal or PlayerInWater\n\nRipple = Ripple1 or Ripple2 or RippleH or RippleV or RippleH2 or RippleV2 or RippleH3 or RippleV3 or RippleH4 or RippleV4 or RippleH5 or RippleV5\n\nFloor = Lily or Sand or SubmergedPebble or Ship_Left or Ship_Right1 or Ship_Right2\n\nFlowL = FlowL1 or FlowL2 or FlowL3 or FlowL4 or FlowL5\nFlowR = FlowR1 or FlowR2 or FlowR3 or FlowR4 or FlowR5\nFlowU = FlowU1 or FlowU2 or FlowU3 or FlowU4 or FlowU5\nFlowD = FlowD1 or FlowD2 or FlowD3 or FlowD4 or FlowD5\n\nFlow = FlowL or FlowR or FlowU or FlowD\n\nFlow5 = FlowL5 or FlowR5 or FlowU5 or FlowD5\n\nP = PlayerNormal and Sand\n* = Pebble and Sand\nO = Lily\n@ = Target and Sand and Light_trigger\nx = Target2 and Sand and Light_trigger\n% = RemoveTarget and Sand\n! = Target and Light_trigger\n? = RemoveTarget\nn = SubmergedPebble\nT = Treasure and Sand\nS = Ship_Left\n1 = Ship_Right1 and TreasureTaken\n2 = Ship_Right2\n/ = Ship_Sails\n$ = Tree and Sand\n[ = FlowR1 and Speedup\n] = FlowD1 and Speedup\n{ = FlowU1 and Speedup\n} = FlowL1 and Speedup\nY = Death\n\nAddLandL = AddLandLUD or AddLandLU or AddLandLD\nAddLandR = AddLandRUD or AddLandRU or AddLandRD\n\nRemoveLandL = RemoveLandLUD or RemoveLandLU or RemoveLandLD\nRemoveLandR = RemoveLandRUD or RemoveLandRU or RemoveLandRD\n\nShip = Ship_Left or Ship_Right1 or Ship_Right2\n\n\n=======\nSOUNDS\n=======\n\nsfx1 60997509 ( 13158309) (bounce pebble)\nsfx2 53480307 (push pebble)\nsfx3 45570309 (rock submerging)\nsfx4 73166102 (rock landing on ground)\nsfx5 56148307 (player move)\nsfx6 14433907 (player can't move)\nsfx7 58358104 (rock hits rock)\nsfx8 97863107 (dig 1)\nsfx9 75661907 (dig 2)\nsfx0 23172308 (whirlpool death)\n\n(63191902)\n\nEndLevel 32481708\n\nUndo 8098307\nRestart 7235102\n\n(Treasure3 Create 97863107\nTreasure6 Create 75661907)\n\n(Treasure2 Create 55366107)\n(Treasure3 Create 47174507)\n(Treasure4 Create 71981107)\n(Treasure5 Create 40321302)\n(Treasure6 Create 33433507)\n(Treasure7 Create 97863107)\n\nTreasureTaken Create 2479500\nLight Create 71916703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSand, FlowL, FlowR, FlowU, FlowD\nSubmergedPebble, StopFlow\nAddLandL, RemoveLandL\nAddLandR, RemoveLandR\nRipple, Tree\nLily\nTarget, Target2, RemoveTarget, Treasure, Treasure2, Treasure3, Treasure4, Treasure5, Treasure6, Treasure7, TreasureTaken\nPlayer, Pebble\nDirection\nShip_Left, Ship_Right1, Ship_Right2, Ship_Sails, Light_trigger\nMyMistake\nSpeedup, Death, Darkness, Light\n\n\n======\nRULES\n======\n\n(oops)\n\n[ MyMistake ] -> [ MyMistake Death ]\n\ndown [ MyMistake ] [ no Sand | . no Target|.|.|.|.|.|.|.|. no Target|.|.|no Sand|.|.|.|no Sand|no Sand|no Sand|.|.|no Sand ] -> [] [no Sand | . no Target|.|.|.|.|.|.|.|. no Target|.|.|no Sand|.|.|.|no Sand|no Sand|no Sand|.|.|no Sand] message Sorry but I screwed up and this puzzle might not be possible. Please start over? My fault not yours :( :( :(\n\n(Island border)\n\nleft [ no Sand no AddLandL | Sand ] -> [ no Sand AddLandLUD | Sand ]\nright [ no Sand no AddLandR | Sand ] -> [ no Sand AddLandRUD | Sand ]\n\nup [ AddLandLUD | no Sand ] -> [ AddLandLD | no Sand ]\nup [ AddLandRUD | no Sand ] -> [ AddLandRD | no Sand ]\n\ndown [ AddLandLUD | no Sand ] -> [ AddLandLU | no Sand ]\ndown [ AddLandRUD | no Sand ] -> [ AddLandRU | no Sand ]\n\ndown [ AddLandLD | no Sand ] -> [ | no Sand ]\ndown [ AddLandRD | no Sand ] -> [ | no Sand ]\n\nleft [ Sand no RemoveLandL | no Sand ] -> [ Sand RemoveLandLUD | no Sand ]\nright [ Sand no RemoveLandR | no Sand ] -> [ Sand RemoveLandRUD | no Sand ]\n\nup [ RemoveLandLUD | Sand ] -> [ RemoveLandLD | Sand ]\nup [ RemoveLandRUD | Sand ] -> [ RemoveLandRD | Sand ]\n\ndown [ RemoveLandLUD | Sand ] -> [ RemoveLandLU | Sand ]\ndown [ RemoveLandRUD | Sand ] -> [ RemoveLandRU | Sand ]\n\ndown [ RemoveLandLD | Sand ] -> [ | Sand ]\ndown [ RemoveLandRD | Sand ] -> [ | Sand ]\n\nright [ RemoveLandRU | AddLandLU ] -> [ RemoveLandRU | ]\nright [ RemoveLandRD | AddLandLD ] -> [ RemoveLandRD | ]\n\nright [ RemoveLandRUD | AddLandLU ] -> [ RemoveLandRUD | ]\nright [ RemoveLandRUD | AddLandLD ] -> [ RemoveLandRUD | ]\n\nleft [ RemoveLandLU | AddLandRU ] -> [ RemoveLandLU | ]\nleft [ RemoveLandLD | AddLandRD ] -> [ RemoveLandLD | ]\n\nleft [ RemoveLandLUD | AddLandRU ] -> [ RemoveLandLUD | ]\nleft [ RemoveLandLUD | AddLandRD ] -> [ RemoveLandLUD | ]\n\n(water redirection)\n\nleft [ stationary FlowL5 | no Flow no Sand no SubmergedPebble ] -> [ FlowL5 | action FlowL5 ]\nright [ stationary FlowR5 | no Flow no Sand no SubmergedPebble ] -> [ FlowR5 | action FlowR5 ]\nup [ stationary FlowU5 | no Flow no Sand no SubmergedPebble ] -> [ FlowU5 | action FlowU5 ]\ndown [ stationary FlowD5 | no Flow no Sand no SubmergedPebble ] -> [ FlowD5 | action FlowD5 ]\n\n[ action Flow ] -> [ Flow ]\n\nleft [ FlowL | Flow SubmergedPebble no Ripple ] -> [ action FlowL | Flow action SubmergedPebble ]\nright [ FlowR | Flow SubmergedPebble no Ripple ] -> [ action FlowR | Flow action SubmergedPebble ]\nup [ FlowU | Flow SubmergedPebble no Ripple ] -> [ action FlowU | Flow action SubmergedPebble ]\ndown [ FlowD | Flow SubmergedPebble no Ripple ] -> [ action FlowD | Flow action SubmergedPebble ]\n\n[ Flow5 StopFlow ] -> [ Flow5 action StopFlow ]\n\nleft [ action StopFlow FlowL | Flow ] -> [ | Flow StopFlow ]\nright [ action StopFlow FlowR | Flow ] -> [ | Flow StopFlow ]\nup [ action StopFlow FlowU | Flow ] -> [ | Flow StopFlow ]\ndown [ action StopFlow FlowD | Flow ] -> [ | Flow StopFlow ]\n\n[ action StopFlow Flow ] -> []\n\n[ StopFlow RemoveTarget Flow ] -> [ RemoveTarget ]\n\nleft [ action SubmergedPebble FlowL | Flow ] -> [ action SubmergedPebble FlowL | Flow StopFlow ]\nright [ action SubmergedPebble FlowR | Flow ] -> [ action SubmergedPebble FlowR | Flow StopFlow ]\nup [ action SubmergedPebble FlowU | Flow ] -> [ action SubmergedPebble FlowU | Flow StopFlow ]\ndown [ action SubmergedPebble FlowD | Flow ] -> [ action SubmergedPebble FlowD | Flow StopFlow ]\n\ndown [ FlowD action SubmergedPebble ] [ action FlowL | no Floor ] -> [ FlowD action SubmergedPebble ] [ FlowD1 | FlowD ]\nup [ Flow action SubmergedPebble ] [ action FlowL | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowU1 | Flow ]\ndown [ Flow action SubmergedPebble ] [ action FlowL | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowD1 | Flow ]\n\nup [ FlowU action SubmergedPebble ] [ action FlowR | no Floor ] -> [ FlowU action SubmergedPebble ] [ FlowU1 | FlowU ]\ndown [ Flow action SubmergedPebble ] [ action FlowR | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowD1 | Flow ]\nup [ Flow action SubmergedPebble ] [ action FlowR | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowU1 | Flow ]\n\nright [ FlowR action SubmergedPebble ] [ action FlowD | no Floor ] -> [ FlowR action SubmergedPebble ] [ FlowR1 | FlowR ]\nleft [ Flow action SubmergedPebble ] [ action FlowD | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowL1 | Flow ]\nright [ Flow action SubmergedPebble ] [ action FlowD | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowR1 | Flow ]\n\nleft [ FlowL action SubmergedPebble ] [ action FlowU | no Floor ] -> [ FlowL action SubmergedPebble ] [ FlowL1 | FlowL ]\nright [ Flow action SubmergedPebble ] [ action FlowU | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowR1 | Flow ]\nleft [ Flow action SubmergedPebble ] [ action FlowU | no Floor ] -> [ Flow action SubmergedPebble ] [ FlowL1 | Flow ]\n\n[ action SubmergedPebble Flow ] -> [ SubmergedPebble ]\n\n(Currents anim)\n\n[ stationary Player ] [ stationary FlowL5 ] -> [Player] [ action FlowL1 ]\n[ stationary Player ] [ stationary FlowL4 ] -> [Player] [ action FlowL5 ]\n[ stationary Player ] [ stationary FlowL3 ] -> [Player] [ action FlowL4 ]\n[ stationary Player ] [ stationary FlowL2 ] -> [Player] [ action FlowL3 ]\n[ stationary Player ] [ stationary FlowL1 ] -> [Player] [ action FlowL2 ]\n\n[ stationary Player ] [ stationary FlowR5 ] -> [Player] [ action FlowR1 ]\n[ stationary Player ] [ stationary FlowR4 ] -> [Player] [ action FlowR5 ]\n[ stationary Player ] [ stationary FlowR3 ] -> [Player] [ action FlowR4 ]\n[ stationary Player ] [ stationary FlowR2 ] -> [Player] [ action FlowR3 ]\n[ stationary Player ] [ stationary FlowR1 ] -> [Player] [ action FlowR2 ]\n\n[ stationary Player ] [ stationary FlowU5 ] -> [Player] [ action FlowU1 ]\n[ stationary Player ] [ stationary FlowU4 ] -> [Player] [ action FlowU5 ]\n[ stationary Player ] [ stationary FlowU3 ] -> [Player] [ action FlowU4 ]\n[ stationary Player ] [ stationary FlowU2 ] -> [Player] [ action FlowU3 ]\n[ stationary Player ] [ stationary FlowU1 ] -> [Player] [ action FlowU2 ]\n\n[ stationary Player ] [ stationary FlowD5 ] -> [Player] [ action FlowD1 ]\n[ stationary Player ] [ stationary FlowD4 ] -> [Player] [ action FlowD5 ]\n[ stationary Player ] [ stationary FlowD3 ] -> [Player] [ action FlowD4 ]\n[ stationary Player ] [ stationary FlowD2 ] -> [Player] [ action FlowD3 ]\n[ stationary Player ] [ stationary FlowD1 ] -> [Player] [ action FlowD2 ]\n\n[ stationary Player Speedup action FlowL4 ] -> [ Player Speedup stationary FlowL5 ]\n[ stationary Player Speedup action FlowL3 ] -> [ Player Speedup stationary FlowL4 ]\n[ stationary Player Speedup action FlowL2 ] -> [ Player Speedup stationary FlowL3 ]\n[ stationary Player Speedup action FlowL1 ] -> [ Player Speedup stationary FlowL2 ]\n\n[ stationary Player Speedup action FlowR4 ] -> [ Player Speedup stationary FlowR5 ]\n[ stationary Player Speedup action FlowR3 ] -> [ Player Speedup stationary FlowR4 ]\n[ stationary Player Speedup action FlowR2 ] -> [ Player Speedup stationary FlowR3 ]\n[ stationary Player Speedup action FlowR1 ] -> [ Player Speedup stationary FlowR2 ]\n\n[ stationary Player Speedup action FlowU4 ] -> [ Player Speedup stationary FlowU5 ]\n[ stationary Player Speedup action FlowU3 ] -> [ Player Speedup stationary FlowU4 ]\n[ stationary Player Speedup action FlowU2 ] -> [ Player Speedup stationary FlowU3 ]\n[ stationary Player Speedup action FlowU1 ] -> [ Player Speedup stationary FlowU2 ]\n\n[ stationary Player Speedup action FlowD4 ] -> [ Player Speedup stationary FlowD5 ]\n[ stationary Player Speedup action FlowD3 ] -> [ Player Speedup stationary FlowD4 ]\n[ stationary Player Speedup action FlowD2 ] -> [ Player Speedup stationary FlowD3 ]\n[ stationary Player Speedup action FlowD1 ] -> [ Player Speedup stationary FlowD2 ]\n\n[ stationary Player Speedup FlowD5 ] [ stationary Death ] -> [ Player Speedup FlowD5 ] [ right Death ]\n\n[ > Death | ] -> [ | Death ]\n\n[ moving Death ] [ Player ] -> [ Death Player ] [ no Lily ] sfx0\n\n[ Lily no Player Speedup FlowD5 ] -> [ Speedup FlowD5 no Pebble ]\n\n(Gameplay)\n\n[ stationary Player ] [ FlowL5 Lily ] -> [Player] [ FlowL5 left Lily ]\n[ stationary Player ] [ FlowR5 Lily ] -> [Player] [ FlowR5 right Lily ]\n[ stationary Player ] [ FlowU5 Lily ] -> [Player] [ FlowU5 up Lily ]\n[ stationary Player ] [ FlowD5 Lily ] -> [Player] [ FlowD5 down Lily ]\n\n[ Ripple1 | moving Lily ] -> [ Ripple1 | Lily ] (makes sure that we don't miss any when skimming past a current)\n\n[ Ripple2 no SubmergedPebble | Lily | no Floor ] -> [ Ripple2 | > Lily | ]\nhorizontal [ RippleH4 | stationary Lily no Flow ] -> [ RippleH4 | > Lily ]\nvertical [ RippleV4 | stationary Lily no Flow ] -> [ RippleV4 | > Lily ]\n\n[ Ripple1 | moving Lily | no Floor ] -> [ Ripple1 | Lily | ] (makes sure that we don't miss any when skimming past an already moving lily)\n\n([ > Lily | stationary Lily ] -> [ > Lily | > Lily ])\n\n[ stationary Player ] [ RippleH4 ] -> [Player] []\n[ stationary Player ] [ RippleV4 ] -> [Player] []\n[ stationary Player ] [ RippleH3 ] -> [Player] [ RippleH4 ]\n[ stationary Player ] [ RippleV3 ] -> [Player] [ RippleV4 ]\n[ stationary Player ] [ RippleH2 ] -> [Player] [ RippleH3 ]\n[ stationary Player ] [ RippleV2 ] -> [Player] [ RippleV3 ]\n[ stationary Player ] [ RippleH ] -> [Player] [ RippleH2 ]\n[ stationary Player ] [ RippleV ] -> [Player] [ RippleV2 ]\n\n(horizontal [ Lily | RippleH | no Ripple2 ] -> [ Lily | | ]\nvertical [ Lily | RippleV | no Ripple2 ] -> [ Lily | | ])\n\n[ stationary Player ] [ Ripple2 ] -> [Player] []\n[ stationary Player ] [ Ripple1 ] -> [Player] [ Ripple2 ]\n\nhorizontal [ > Lily Pebble | no Floor no Flow ] -> [ RippleH | Lily Pebble ]\nhorizontal [ > Lily Player | no Floor no Flow ] -> [ RippleH | Lily Player ]\nhorizontal [ > Lily | no Floor no Flow ] -> [ RippleH | Lily ]\nvertical [ > Lily Pebble | no Floor no Flow ] -> [ RippleV | Lily Pebble ]\nvertical [ > Lily Player | no Floor no Flow ] -> [ RippleV | Lily Player ]\nvertical [ > Lily | no Floor no Flow ] -> [ RippleV | Lily ]\n\n[ > Lily Pebble | no Floor no Pebble ] -> [ | Lily Pebble ]\n+ [ > Lily Player | no Floor no Pebble ] -> [ | Lily Player ]\n+ [ > Lily no Pebble no Player | no Floor ] -> [ | Lily ]\n\n[ > Lily Pebble | no Floor Pebble ] -> [ Lily Pebble | Pebble ]\n[ > Lily Player | no Floor Pebble ] -> [ Lily Player | Pebble ]\n\n[ > Lily | no Floor ] -> [ | Lily ]\n\n[ > Lily | Floor ] -> [ Lily | Floor ]\n\n[ stationary Player ] [ U Pebble ] -> [Player] [ U up Pebble ]\n[ stationary Player ] [ D Pebble ] -> [Player] [ D down Pebble ]\n[ stationary Player ] [ L Pebble ] -> [Player] [ L left Pebble ]\n[ stationary Player ] [ R Pebble ] -> [Player] [ R right Pebble ]\n\n[ Pebble Direction Floor ] -> [ stationary Pebble Floor ] sfx4 (pebble moves onto moving lily)\n\n[ > Player | no Floor ] -> [ Player | ] (sfx6)\n\n[ stationary Pebble no Floor no Direction ] -> [ SubmergedPebble Ripple1 ] sfx3\n\n[ > Pebble Floor | stationary Pebble ] -> [ Pebble Floor | Pebble ]\n[ > Pebble | stationary Pebble ] -> [ stationary Pebble no Direction | Pebble ] sfx7\n\n[ > Player | Pebble Treasure | Floor no Pebble ] -> [ | Treasure Player | Pebble Floor ] sfx2\n[ > Player | Pebble | Floor no Pebble no Treasure7 no Ship no Tree ] -> [ > Player | | Pebble Floor ] sfx2\n[ > Player | Pebble | no Floor no Pebble ] -> [ > Player | > Pebble | ]\n\n[ > Pebble | Ship ] -> [ Pebble no Direction | Ship ]\n\n[ left Pebble ] -> [ L left Pebble ]\n[ right Pebble ] -> [ R right Pebble ]\n[ up Pebble ] -> [ U up Pebble ]\n[ down Pebble ] -> [ D down Pebble ]\n\n[ moving Pebble no Floor ] -> [ moving Pebble Ripple1 ] sfx1\n\n[ > Pebble Direction | ] -> [ | Pebble Direction ]\n\n[ stationary Pebble Direction Floor ] -> [ Pebble Floor ] sfx4 (landing on floor)\n\n[ moving Pebble ] -> []\n\n[ moving Lily Pebble ] -> []\n[ moving Lily ] -> []\n\n(late [ Player Water ] -> [ PlayerInWater Water ]\nlate [ Player no Water ] -> [ PlayerNormal no Water ])\n\n(victory)\n\n[ > Player | Tree no Ship ] [ Ship_Right1 ] -> [ Player | TreasureTaken ] [ Ship_Right1 Tree ] message A palm tree! You can repair your ship with this.\n\n[ > Player | Ship_Right1 no Tree ] -> [ Player | Ship_Right1 ] message Your ship is damaged. You need to find some WOOD to repair it.\n\n[ Lily Ship_Right1 ] -> win\n[ Lily Ship_Right2 ] -> win\n\n[ > Player | Ship_Right1 Tree ] -> [ | Player action Ship_Right1 Tree Darkness ]\n[ > Player | Ship_Right2 ] -> [ | Player action Ship_Right2 Darkness ]\n\n[ Player Ship_Right1 ] -> again\n[ Player Ship_Right2 ] -> again\n\n[ Darkness | no Darkness ] -> [ Darkness | Darkness ]\n\n[ action Ship_Right1 TreasureTaken ] -> [ Ship_Right1 Lily TreasureTaken ] message You repair your ship and sail away to your next adventure!\n\n[ Ship_Right1 StopFlow Treasure ] -> [ Ship_Right1 Lily ] message Treasures found: 1/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure2 ] -> [ Ship_Right1 Lily ] message Treasures found: 2/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure3 ] -> [ Ship_Right1 Lily ] message Treasures found: 3/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure4 ] -> [ Ship_Right1 Lily ] message Treasures found: 4/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure5 ] -> [ Ship_Right1 Lily ] message Treasures found: 5/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure6 ] -> [ Ship_Right1 Lily ] message Treasures found: 6/7, Kept: 0/7\n[ Ship_Right1 StopFlow Treasure7 ] -> [ Ship_Right1 Lily ] message Treasures found: 7/7, Kept: 0/7\n\n[ Ship_Right1 SubmergedPebble ] -> [ Ship_Right1 StopFlow ] message You reluctantly leave your spoils behind. Later you try to return, but you never manage to find the mysterious islands again.\n\n[ action Ship_Right1 no TreasureTaken ] -> [ Ship_Right1 SubmergedPebble ] message You repair it as best you can, but your battered ship isn't seaworthy enough to carry heavy treasure!\n\n[ Ship_Right2 StopFlow ] [ Ship_right1 TreasureTaken ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 0/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 1/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure2 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 2/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure3 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 3/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure4 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 4/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure5 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 5/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure6 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 6/7\n[ Ship_Right2 StopFlow ] [ Ship_right1 Treasure7 ] -> [ Ship_Right2 Lily ] [ Ship_right1 ] message Treasures found: 7/7\n\n[ Ship_Right2 SubmergedPebble ] -> [ Ship_Right2 StopFlow ] message You sail away on your new ship, onwards to your next adventure!\n\n[ action Ship_Right2 ] -> [ Ship_Right2 SubmergedPebble ] message You find a strange ship, conveniently unguarded. It's probably haunted, but it seems seaworthy enough to carry you and your treasure.\n\n(treasure)\n\n[ TreasureTaken Lily | RemoveTarget ] -> message But are you stuck here with it?\n\n[ TreasureTaken Lily no Ship ] -> [ TreasureTaken ]\n\n[ > Player | Treasure no Pebble ] -> [ Player | action Treasure ]\n\n[ Treasure6 Sand ] -> [ Treasure7 Sand ] sfx8 again\n[ Treasure5 Sand ] -> [ Treasure6 Sand ] again\n[ Treasure4 Sand ] -> [ Treasure5 Sand ] again\n[ Treasure3 Sand ] -> [ Treasure4 Sand ] again\n[ Treasure2 Sand ] -> [ Treasure3 Sand ] sfx9 again\n\n[ action Treasure Sand ] -> [ Treasure2 Sand ] again\n\n[ > Player | Treasure7 ] -> [ Player | action TreasureTaken Lily ]\n\n[ action TreasureTaken ] [ no Sand TreasureTaken ] -> [ TreasureTaken ] [ Treasure ] message Found treasure! (1/7)\n[ action TreasureTaken ] [ no Sand Treasure ] -> [ TreasureTaken ] [ Treasure2 ] message Found treasure! (2/7)\n[ action TreasureTaken ] [ no Sand Treasure2 ] -> [ TreasureTaken ] [ Treasure3 ] message Found treasure! (3/7)\n[ action TreasureTaken ] [ no Sand Treasure3 ] -> [ TreasureTaken ] [ Treasure4 ] message Found treasure! (4/7)\n[ action TreasureTaken ] [ no Sand Treasure4 ] -> [ TreasureTaken ] [ Treasure5 ] message Found treasure! (5/7)\n[ action TreasureTaken ] [ no Sand Treasure5 ] -> [ TreasureTaken ] [ Treasure6 ] message Found treasure! (6/7)\n[ action TreasureTaken ] [ no Sand Treasure6 ] -> [ TreasureTaken ] [ Treasure7 ] message Found treasure! (7/7)\n([ action TreasureTaken ] [ no Sand Treasure7 ] -> [ TreasureTaken ] [ SubmergedPebble Lily ] message Found treasure! (8/8))\n\n(checkpoints)\n\n[ > Player | no Pebble ] -> [ | Player ] sfx5\n\n([ > Player | Pebble ] -> sfx6) (can't move)\n\n\n[ Player Target ] -> [ Player action Target ]\n[ action Target | stationary Target ] -> [ action Target | action Target ]\n[ action Target | RemoveTarget ] -> [ action Target | action RemoveTarget ]\n[ action Target Light_trigger ] -> [ action Target action Light_trigger ]\n[ action Target ] -> [] checkpoint\n\n\n[ Pebble Target2 ] -> [ Pebble action Target2 ]\n[ action Target2 | stationary Target2 ] -> [ action Target2 | action Target2 ]\n[ Player stationary Target2 ] -> [ Player Target2 StopFlow ]\n[ Target2 StopFlow | Target2 ] -> [ Target2 StopFlow | Target2 StopFlow ]\n[ Target2 StopFlow ] -> [ no Light_trigger ]\n[ action Target2 | RemoveTarget ] -> [ action Target2 | action RemoveTarget ]\n[ action Target2 Light_trigger ] -> [ action Target2 action Light_trigger ]\n[ action Target2 ] -> [] checkpoint\n\n\n[ action RemoveTarget | stationary RemoveTarget ] -> [ action RemoveTarget | action RemoveTarget ]\n[ action RemoveTarget ] -> []\n\n\n[ Pebble RemoveTarget ] -> [ Pebble action RemoveTarget ]\n[ action RemoveTarget | stationary RemoveTarget ] -> [ action RemoveTarget | action RemoveTarget ]\n[ action RemoveTarget | Target ] -> [ action RemoveTarget | no Light_trigger ]\n[ action RemoveTarget | Target2 ] -> [ action RemoveTarget | no Light_trigger ]\n\n\n[ Light ] -> [] checkpoint\n\n\n[ Player Light_trigger ] -> [ Player action Light_trigger ]\n\n[ action Light_trigger | Sand ] -> [ action Light_trigger | action Light_trigger Sand ]\n\n[ Player action Light_trigger | Sand ] -> [ Player action Light_trigger | action Sand Light ]\n\n[ action Sand Light | stationary Sand ] -> [ action Sand Light | action Sand Light no Light_trigger ]\n\n[ Light | no Light no Death no Speedup ] -> [ Light | Light ] again\n\n[ Light action Light_trigger ] -> [ Light ]\n\n\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww↓wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nwww/wwwwwwwwwwwwwwwwwwwwwwwwwwww↓wwwwwwwwwww...wwwwwwwn@wwwwwwwwwwwwwwwwwwww\nwws2w..wwwwwwwwwwwww...wwwwwwwwo↓wwwwwwwwww.....w..ww.w%%%.wwwwww.wwwwwwwwww\nwww......wwwwwwwwwwww....wwwowww↓wwwwwww.ww....↑wx....ww.%@.www...wwwwwwwwww\nwww......wwww.wwwwwww....wwwwwww↓ww..ww..www.ww↑xx...wwww?..........wwwwwwww\nww....@@wwwww...wwww....ww/wwwww↓....ww..w...ww↑....wwwoww.......*...wwwwwww\nww....@wwwww.....www....ws1..www↓@@w...@....www↑www.wowwwwww...t...wwwwwwwww\nwww..wwwww...t%...www..www.pww.w↓www...@.*.wwww↑w.*.wwwwwwwww....wwwwwwwwwww\nwwwwwwwwww....%%.wwwww.www...*....www..@....www↑w..←←←←←←←←←←←←←←←←←←←←←←←←←\nwwwwwwww.....w.%%w..ww..www....w*..ww..@.wwwwow↑wwww@wwwwwwwwwwwwwwwwwwwwwww\nwwwwwwwww..wwwww%%%x*w....ww..ww...wwww.wwwowww↑www..wwwwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwww.....ww..wwwwwwww..wwwwwwwwwwww↑www...wwwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwww...wwwwwwwwwwwww.→→→→→→→→→→→→→↑nwww...wwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwwwww..wwwwwwwwwwwwwwwwwwwwwwwwwww...wwwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwwwww.x?wwwwwwwwwwwwwwwwwwwwwwwwww...wwwwwwwwwwwwwwwwwwwwww\nwww..w.wwwwwwwwwwwwwwww%wwwwwwwwwwwwwwwnwwwwwwwww..@..wwwwwwwwwwwww...wwwwww\nww....@wwwwwwwwwwwwwwww..wwwwwwwwwwwwwwwwwwww.....*.wwww..wwwwwwwww....wwwww\nww.*..wwwwwww..wwwwww....wwwwwwww...wwwwwwwww...wwwwwww....?wwwwwwww....wwww\nwww...wwwwww...wwwwwww...wwwwwww..*..wwwwwwww.*.wwwwwww....x.wwwwowwn...wwww\nwwww.wwwwwww..wwowwwwww...wwwww......wwwwwww...wowwwwwww...x*.wwwwwww.....ww\nwwwwwwwwwwww..wwwwwwww....wwwww..t.....wnwww..wwwowwwwww...x..wwwwwwww....ww\nwwwwwwwwwwwww..wwwwww.....wwwwww.......!owww↑wwwwww.ww.....x..wwwwwoww...www\nwwwwwwwwwwwww.....ww....wwwwwwwww.w....??wwn↑←←←←←........wx.wwww.www...wwww\nwwwwwwwwwwwwww.........wwwwwwwwwwwww...w?www@..www........w...w...ww@.....ww\nwwwwwwwwwwwwwwww.....wwwwwwwwwwwowwwwwww?ww!..ww....ww..wwww...*...www...www\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww?????...@..www..wwwwww......ww..wwww\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww.....wwwww.wwwwwwwww..wwwww!wwww\nwwwwwwwwwwwwwwwwnwwwwwwwwwwwwwwwwwwwwwwwwnwwwwwwwwwwwwwwwwwwwwwwwwwwwww...ww\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww@@@ww\nww...wwwwwwwwwwwwwwwww.wwwwwwwwwwwwwwwwwwwww....w..wwwwwwwwwwwwwwwwwww..*.ww\nw...*.wwwwowwwwwwwwwnr...wwwwww..wwwwwwwwww.*.....*.w??...wwwwwwwwwwwww..www\nw.*...wwwwwww....nwwww..@wwwwwww...wwwwwww....w.*.%x.%x....wwwww.....ww..www\nw..w.→→→→→→→*....wwnwww.@wwwwowww....wwwww..wwwww.%x.%x.....www..*....wwnwww\nww.w→↑.*w.ww....wwnwww..@@wwwwwww.*..wwwwwwwwwwwww%x.wwwww..www.wwww..wwnwww\nwwww↑....@@www..wnwwn...@@wwwwww...*xwwwwwwwwowwwww.wwwwww....wwwwwww.w.wwww\nwwww↑..*.@←←←←←←←←!←←.w@@ww..www....xwwwwwwwwwwwwwwww..www.....!wwoww..@wwww\nwwow↑w...wwnw....www↑nw@@ww.....*.xxx...wwwwwwwwwwww...www.......wwww....www\nwwww↑wwwwwww.xxx.wnw↑wwwwwwwwww...xw...%%%ww...wwwwwww..www......wwww....www\nwwww↑wwowwwww...wwwn↑wwowwwwwww.w..wwww%xx.w....ww.@ww.wwwww.w...wwwww..wwww\nwwww↑wwwwwwww..wwwww↑wnwwwwwwwwww.wwwww%x.w..........wwwwwwwww...wwwwwwwwwww\nwwww↑wwwwnwww..→→→→→↑nwwwwwwwwwww.wwwwww..www..www...wwwwwwww...wwwwwwwwwnww\nwwww↑wwwwwww...wwwwwwwwwwwwwnwwwwwwnwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwnwwwwwwww\nwwww↑wwwwwww...wwnwwwwwwwwwwwwwwwwwnwwwwwwwwwwwwwwwwwwwnwwwwwwwwwwwwwwnwwwww\nwwww↑..wwwwww.x.wwwwww...wwww*.w...@.wwnwwwwww..wwwwwwwwwwwwwwwnwwwnwwwwnwww\nwwww...wwwwwww...wwww....wwww..*.t...wwwnwwww....w..wwwwwnwwnnwwwnwwwwwnwwww\nwww...wwwwowww....www.t..wwwww.....wwwnwwwwwww......wwwwnwnwwwnww↓↓↓↓wwwwwnw\nwww.....wwwwww....ww...wwwwwwwwwwwwwwwwwwwwwwww*...wnwwwwwwwwwww→→→→→↓wwnwww\nwwww....@↓←?←.....ww..wwwnwwwwwwwwwwwwwww→→→→→→→→→→→→→→→→→→→→→?→↑↓←←←↓←wwwww\nwww.*..ww?ww↑w....ww@@wwn→→→→→→→→→→→→→→→→↑n@@wwwwwwwwwwwwwwwww?→↑↓[]↑←←wwnww\nwwww..wwn↓ww?ww..wwwwwwww↑wwwwwwwwwwwwwwwww..%wwwwww@@wnwwnwwwn→↑↓{}←↓←wwwwn\nwwwww.wow→?→↑wwwwwww...ww!wwwnwwwwwwwwwwww.*x%...ww...wwwnwwwww→↑→→→↑↓←wnwwn\nwwwww↑wwwwowww@wwwww.....↑wwwwnww.w.wwwwww.xx%*.www....wwwwwwnww↑←←←←←wnwwww\nwwwww↑wwwwwwww@@@w....*.w↑wwwwww.....wwwwww%%%..www....wwwwnwwwww↑↑↑↑nwwwwnw\nwwwww↑wwwwwww@@.......www↑wwwwww.....wwwowwww..wwwww..wwwwwwnwwnw↑nwwwwwywww\nwwwww↑wwowwww...ww...wwow↑wwww......wwwwwwww..wwww...wwwnwnwwwwww↑wwnwwwnwww\nwwwww↑wwwwwwwwwwwwwwwwnww↑www.......wwwwwnwwwwwww.....wwwwwwwwwwn↑wwwwwwwwww\nwwwww↑wwwnwwwwwwwwwwwwwww↑www.......wnwwwwwwwwwww.....wwwwwwwwwww↑wwwwwwwwww\nwwwww↑wwwwwwnwww..wwww...↑ww..$....wwwwwwww......@@@@@.wwwwwwwwww↑wwwwwwwwww\nwwwww↑wwww..www.x.nnww...↑w......wwwwwwww...*..wwww.....wwwwwwwww↑www...wwww\nwwwww↑wnww..*.....wwn...w↑w....wwwww.www..*.wwwwnwwww.*.www..wwww↑ww...wwwww\nwwwww↑www.....*..www...ww↑www..www...www..wwwwowwnwww..www.....ww↑nw.t.wwwww\nnwwww↑www.t.ww..wwww...ww↑wwwwwww....wwww.wwwwwwwwww...wwwww.*...↑w.....wwww\nwwwww↑ww...*wwwwwwwww....↑wwwwwww..←←←←←←←←←←←←←←←←←..wwwww...*..↑.*...wwwww\nwwwww↑www....wwwwwww.....↑wwwwwwww.wwwwwwww......www...wnn@.....w↑ww.wwwwwww\nwwwnw↑wwwww..wwwwwwww....↑wwwwwwwwwww..www.x%%%*.wwww..wwww....ww↑wwwwwwwwww\nwwwww↑wwwwwwwwwwwwwwwwn.w↑wwww..w*...%x.ww.%w...wwoww..wwwwww...w↑wwwwwwwwww\nwwwww↑wwnwwwwwwwwowwwwwww↑wwow..*..*.%x..w..ww..wwwww..wwwwwwwwww↑wwwwwwwwww\nwwwww↑wwwwwwwwwwwwwwwwwww↑wwwww...w....wwwwwwwwwwww....wwnwwowwww↑wwwwwwwwww\nwwnww↑wwwwwwwwwwwwwwnwwww↑wwwwwwwwwwwwwwwwwwwowwww....wwwwnwwwwow↑wwwwwwwwww\nwwwww↑wwwwwwwwwwwwwwwwwww↑wwwwwwwwwwwwwwwwwwwwwwwwwwwwwnwwwwwwwww↑wwwwwwwwww\n\n\n(\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwww..ww.wwwwww\nwwwww.......w..wwwww\nwwww...........wwwww\nwww..*.www....wwwwww\nww....wwwwwwwwwww..w\nw..*wwwwowwwwwww...w\nw..p.wwwwwwwww.w.t.w\nw.*..wwwwwwwww.....w\nww..wwwwwwwwww....ww\nwww.wwwwwwwwwwww.www\nwwwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwwww\nwww...ww.....wwwwww\nwwww....w.....wwwww\nwwwww..wwww*.wwwwow\nwwwww.wwoww..wwwwww\nwww...wwwww..wwwoww\nw...*.wwww..←←←←←←←\nw.p..wwwwwwww.wwwww\nww..wwwwwwww..wwwww\nwwwwwwwwwww..@..www\nwwwwwwwwwwww...wwww\nwwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwww\nwwwwwww...ww\nwww.....*.ww\nwww.*.wwwwww\nwww.p.wwwwww\nww...wowwwww\nww..wwwowwww\nww↑wwwwww..w\nww↑←←←←←.@.w\nww...www...w\nw...ww....ww\nw........www\nwww....wwwww\nwwwwwwwwwwww\n\nwwwwwwwwwwwwwwww\nwwwwwwwwww...www\nwwwwwwwwwww...ww\nw...wwwwwww....w\nw.*.wwwwoww....w\nw..*.wwwwwww.@.w\nww..wwwwwwww...w\nw...wwwwwwoww..w\nww..wwww.www..ww\nww.p.w...ww...ww\nwww...*...www.ww\nwwwww......wwwww\nwwwwwww..wwwwwww\nwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwww\nwwwwwww.....wwwwww\nwwww.w....*..wwwww\nwwww....wwww.wwwww\nwww....wwwwwwwwwww\nwww....wwowww..www\nwww....wwww......w\nwww....wwww..@..ww\nwwww.*wwwww....www\nwwwwwwwwwww...wwww\nwww.....wwww..wwww\nwww...*.wwwwwwwwww\nww...p..wwwwwwwwww\nwwwww...wwwwwwwwww\nwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwww\nwwwwww..w....www\nwwwww.*.....*.ww\nwwww....*.w....w\nwwww..p.wwwww..w\nwwww.*.wwwwww.ww\nwwww...wwwwwwwww\nwwwww.wwwwwowwww\nw...wwwwwwwwwwww\nww...wwwwwwwwwww\nww.wwwwwww..wwww\nwwwww.www.@.wwww\nwwww.........www\nwwww...www.wwwww\nwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwww\nwwwww..wwwwww..wrw\nwww...wwwwwww...ww\nw...pwwwowww...wrw\nw..*.wwwwwww.@..ww\nw.*...wwwwww.....w\nww..*.www..ww..w.w\nwww..*.....www.www\nwwww...wwwwwwwwwww\nwwwwww.wwwwwwwwwww\nwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwww...ww\nwwwwwwwwowwww.*...w\nww....wwwwwww...*.w\nww....*←←←←←←←.w..w\nww.....ww.w*.↑←w.ww\nwww..wwww..p..↑wwww\nwwwwwwwww..*..↑wwww\nww....wwww...w↑woww\nww.@...wwwwwww↑wwww\nwww...wwwwwoww↑wwww\nwwwwwwwwwwwwww↑wwww\n\nwwwwwwwwwwwwwwwww\nwwwwwwwwwwww..www\nwww..wwwwwww...ww\nww...wwwwowww...w\nw.p.*wwwwww.*...w\nw.....→→→↓.....ww\nw.*..w↑ww↓ww....w\nww..ww↑ww↓www..ww\nwwwwww↑←←←wow.www\nwwww.wwwowwww↑www\nww...wwwwwwww↑www\nww.@..wwwwwww↑www\nwwww..wwwwoww↑www\nwwwwwwwwwwwww↑www\n\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwww..wwww\nwww...wwwwww..wwrow\nww....wwwww.....www\nww..@.wwwww.*.p..ww\nwww...wwww.....*.ww\nwww..wwwwwwww.*.www\nwwwwwwwwwwwwww..www\n←←←←←←←←←←←←←←←←←←←\nwwwwwwww....wwwwwww\nwwwwwww......wwwwww\nwwwwwww..w...wwwwww\nwwwwwwwwwwwwwwwwwww\n\nwwwwwwwwwwwwwwwwwww\nwwwww...ww.ww.wwwww\nwww........w...wwww\nwww...*.........www\nww..*.wwww.......ww\nw...w.wwowwww.*...w\nww..wwwwwwwwww..p.w\n←←←←←←←←←←←←←←....w\nwwwww.ww...www....←\nwwww.......wwww...w\nwww...w.@.wwoww...w\nwwww.www..wwwww..ww\nwwwwwwwwwwwwww...ww\nwwwwwwwwwwwwwwwwwww\n)\n\n(wwwwwwwwwwwwwwwwwww\nw...wwwwwwwwwwwwwww\nw.*..wwwwwwwwwwwwww\nw...wwwwowwwwwwwwww\nwp*.wwwwwwwwwwwwwww\nw.*.wwwoooooooooooo\nw..←←←←←←←←←←←←←←←←\nwwww.wwwwwwwwwwwwww\nwww..wwwwwwwwwwwwww\nww..@..wwwwwwwwwwww\nwww...wwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww)\n\n(wwwwwwwwwww\nw....ww..ww\nw...*.....w\nww..ww.p..w\nwwwwww...ww\nwwwowww.www\nwwwwwwwwwww\n\nwwwwwww\nww...ww\nww.p..w\nwww.*.w\nwow..ww\nww...ww\nwwwwwww)\n\n",["tick","tick","tick","tick","tick","tick","tick","tick",0,"tick","tick",1,"tick","tick","tick",1,"tick","tick","tick","tick",2,"tick","tick",2,"tick",3,"tick","tick",3,"tick","tick","tick",2,"tick",3,"tick",0,"tick","tick",0,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick","tick","tick","tick",3,"tick","tick",3,"tick","tick","tick","tick",0,"tick",0,"tick","tick","tick",3,"tick","tick","tick","tick","tick","tick","tick"],"background: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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background submergedpebble:1,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,addlandrd background:2,background removelandlu sand:3,background sand:4,background removelandld sand:5,addlandru background:6,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,background ship_left:7,0,2,3,5,6,0,0,0,0,\n0,0,0,2,3,5,6,0,0,0,0,0,0,0,0,0,0,3,4,background pebble sand:8,4,background removelandld removelandrd sand:9,0,0,background lily:10,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,1,0,0,background ship_sails:11,background ship_right2:12,3,4,4,4,5,0,0,0,0,0,0,0,3,4,8,\n5,6,0,0,0,0,0,0,0,0,0,4,4,4,addlandlu addlandru background:13,0,0,0,0,0,0,0,0,0,0,0,2,3,5,addlandrud background:14,background removelandlud sand:15,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,4,4,4,4,background removelandrd sand:16,0,0,0,0,0,0,0,background removelandru sand:17,4,4,4,9,0,0,0,0,\n0,0,0,0,0,17,8,4,9,background flowr4:18,background flowu4:19,19,19,19,19,19,19,19,19,addlandrd background flowu4:20,3,4,4,4,8,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,4,4,4,4,addlandlu background:21,0,0,0,0,0,0,0,addlandld addlandrd background:22,4,4,16,21,0,0,0,0,0,0,0,0,0,addlandld background:23,\n17,16,addlandlu background flowr4:24,20,3,5,6,0,0,0,0,0,0,3,4,4,4,4,4,4,9,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,0,0,17,4,4,background light_trigger sand target:25,background light_trigger removelandrd sand target:26,0,0,0,0,0,0,0,0,background removelandlu removelandru sand:27,26,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,3,4,4,\n5,0,0,0,0,0,0,17,16,addlandlud background:28,4,4,16,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,4,4,26,21,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,18,background pebble removelandru sand:29,4,8,4,0,10,0,0,0,\n0,0,0,0,17,4,21,0,10,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,17,16,21,0,0,0,15,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,22,4,4,16,0,0,0,0,0,0,0,0,0,23,background light_trigger removelandrud sand target:30,\n0,1,0,0,0,0,10,0,0,0,0,0,0,2,15,6,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,27,25,26,21,0,0,0,1,0,0,0,0,0,0,background flowd4:31,background flowd4 removetarget:32,31,18,0,0,0,\n0,0,1,0,0,2,3,4,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,3,4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,18,23,30,addlandlu background flowl4:33,0,0,0,0,0,0,0,0,0,10,0,background flowl4:34,0,0,background flowr4 removetarget:35,10,0,0,0,0,0,0,3,4,\n4,background sand treasure:36,4,4,6,0,0,0,0,0,0,0,0,0,0,0,2,4,4,4,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,34,1,0,0,0,0,0,0,0,0,0,0,background flowl4 removetarget:37,0,0,18,0,0,0,0,0,0,0,17,4,4,4,8,4,5,0,\n0,0,0,0,0,0,0,0,0,2,3,4,4,16,0,0,0,0,0,0,0,2,3,4,5,6,0,0,0,0,0,0,0,0,0,2,background pebble removelandlu sand:38,5,0,34,2,15,6,0,2,3,5,6,0,0,0,34,19,background flowu4 removetarget:39,19,0,0,0,0,0,0,1,23,8,4,21,23,17,16,0,0,0,0,0,0,0,\n0,0,27,4,4,36,4,13,0,0,0,0,0,0,0,3,4,4,4,4,5,6,0,0,0,0,0,0,0,3,4,4,6,34,3,background light_trigger sand target2:40,4,4,4,4,4,5,6,0,2,15,6,0,0,0,2,background light_trigger removelandlu sand target:41,5,0,0,0,0,4,4,6,0,0,0,0,0,0,0,0,0,0,0,0,23,4,4,background removetarget sand:42,\n42,5,0,0,0,0,0,0,0,17,16,21,23,17,4,5,0,0,0,0,0,0,0,4,4,4,5,34,4,40,4,4,4,4,4,40,4,4,4,4,5,6,0,background light_trigger removelandlu removelandru sand target:43,25,25,4,0,0,0,2,4,8,5,0,0,0,0,0,0,0,0,0,0,0,0,0,17,4,4,42,42,6,0,0,0,\n0,0,0,0,0,0,0,23,4,4,6,0,0,0,0,0,0,4,4,4,16,34,4,40,16,21,18,0,23,17,4,4,4,4,4,5,0,23,25,4,16,0,0,2,3,4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,23,17,4,4,42,42,5,6,0,0,0,0,0,0,10,\n0,0,4,4,5,0,0,1,0,0,0,17,16,21,0,34,17,16,21,0,18,0,0,23,17,4,4,4,4,16,0,0,background light_trigger removelandru sand target:44,4,21,0,0,3,40,4,16,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,background removelandrud sand:45,21,22,42,4,5,0,0,0,0,0,0,0,0,0,17,4,4,0,\n0,0,0,0,0,1,0,0,1,34,0,0,0,0,18,0,1,0,23,17,4,4,16,21,0,0,22,4,6,0,0,17,4,16,21,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,3,42,4,4,0,0,0,0,0,0,0,0,0,23,4,4,0,0,0,0,0,0,0,\n0,1,0,background flowl4 light_trigger target:46,0,1,0,0,18,0,0,0,0,0,0,0,0,0,0,0,3,4,5,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,40,4,16,0,0,0,0,0,0,0,0,0,2,4,4,0,0,0,0,0,0,0,1,0,0,34,0,0,\n1,0,18,0,0,0,0,0,0,0,0,0,0,2,4,4,4,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,15,6,2,3,5,6,0,23,29,16,21,0,0,0,0,0,0,0,0,2,3,4,16,0,0,0,0,0,1,0,0,0,1,34,19,19,19,19,19,0,0,0,\n0,2,3,4,background light_trigger removelandld sand target:47,0,3,4,4,4,16,0,0,0,0,addlandrd background submergedpebble:48,3,5,14,15,6,0,0,0,1,0,0,0,4,4,4,4,4,5,6,0,0,0,0,0,0,0,0,15,6,0,2,3,4,4,21,0,0,0,0,0,background r:49,0,0,2,3,9,1,0,0,0,1,0,0,2,3,4,4,4,26,0,\n4,4,4,16,21,0,0,0,2,3,4,4,4,4,5,0,0,0,0,0,0,0,17,4,4,4,4,4,4,4,5,6,0,3,5,6,2,4,5,14,3,4,4,16,0,0,0,0,0,27,4,5,14,3,4,13,0,0,0,1,0,0,0,3,4,36,16,21,0,0,17,4,8,21,0,1,\n0,3,4,4,4,4,4,4,4,addlandru background submergedpebble:50,0,0,0,0,0,0,23,4,4,4,16,21,23,17,4,5,0,17,40,42,4,4,4,4,4,4,16,21,0,0,0,0,0,23,4,4,4,4,4,25,47,0,10,0,0,0,0,4,4,4,21,0,0,0,23,4,16,0,10,0,0,4,4,16,21,23,\n4,4,4,9,0,0,0,0,0,0,0,17,16,21,0,0,0,23,4,16,0,0,background removetarget:51,23,17,4,4,4,4,4,21,0,0,0,0,0,0,0,17,25,25,25,25,25,26,0,0,0,0,0,0,17,4,16,0,0,1,0,0,45,21,0,0,0,0,17,16,21,0,0,17,4,16,21,0,0,\n0,0,0,0,0,0,0,0,7,0,0,0,45,21,0,0,0,0,0,0,23,17,4,16,0,0,0,0,0,0,0,0,0,0,23,44,26,21,0,0,0,0,0,0,0,0,0,0,0,1,18,19,background flowu4 light_trigger target:52,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,0,0,0,0,\n0,11,addlandrd background ship_right1 treasuretaken:53,3,5,6,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,18,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,3,4,4,5,\n6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,5,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,0,2,3,5,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,45,28,4,4,5,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,4,0,0,0,0,1,0,0,0,0,0,0,18,0,0,0,0,0,0,0,2,3,4,4,6,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,2,4,4,16,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,10,0,0,23,4,0,0,0,0,0,0,38,5,6,0,0,18,0,1,0,0,0,2,3,4,4,4,4,5,0,0,0,0,0,0,0,0,0,background u:54,0,0,0,0,0,0,27,4,16,21,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,4,6,0,0,0,0,0,17,4,5,0,0,18,0,0,1,0,0,3,4,4,background sand tree:55,4,4,16,0,0,0,0,3,5,6,0,0,0,0,0,0,0,0,0,23,4,13,0,0,0,0,0,0,0,0,2,3,5,6,0,0,0,0,0,0,0,0,15,6,0,0,\n0,2,4,4,9,0,0,0,0,22,8,4,0,0,18,0,0,0,0,2,4,4,4,4,4,21,0,0,0,0,0,17,4,5,0,0,31,31,31,31,31,31,31,background flowd4 lily playernormal:56,4,8,5,6,0,0,0,0,0,2,3,4,4,5,6,0,10,0,0,0,0,0,17,5,6,2,3,4,8,4,13,0,\n0,0,0,3,4,4,0,0,18,0,0,2,3,4,4,4,4,4,16,0,0,0,0,0,0,22,8,4,0,0,0,0,0,0,0,3,47,0,17,4,4,4,9,0,0,0,0,3,4,4,36,4,9,0,0,0,0,0,0,0,23,4,4,4,4,4,4,4,4,4,9,0,0,4,36,4,\n0,0,18,0,0,27,4,4,4,4,4,4,21,0,2,3,5,6,0,38,4,16,0,0,0,0,0,0,2,4,26,0,23,17,4,16,24,0,0,0,0,4,8,4,4,4,13,0,0,0,0,0,0,0,0,17,4,8,4,4,40,40,16,21,0,0,0,4,4,16,0,0,18,0,0,22,\n4,4,4,4,4,16,0,0,3,4,4,9,0,4,4,13,0,0,0,0,0,0,3,4,13,0,0,0,0,0,18,0,0,0,0,17,4,4,4,4,5,6,0,0,0,0,0,0,0,23,4,4,8,4,40,13,0,0,0,1,1,25,4,21,0,0,18,0,0,27,4,4,4,4,16,21,\n0,2,4,4,33,0,0,4,8,5,0,0,0,0,0,0,17,4,4,5,6,0,0,0,18,0,0,0,0,23,17,4,4,4,4,5,0,0,0,0,0,0,0,0,17,4,40,40,40,5,0,0,0,0,0,17,16,0,0,0,18,0,0,23,17,16,21,0,0,0,0,27,4,16,34,0,\n2,4,4,4,0,0,0,0,0,0,0,23,4,4,4,5,0,0,18,0,0,0,0,0,0,23,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,23,4,4,0,0,0,0,0,0,0,0,0,0,18,0,0,0,0,0,0,0,1,0,0,0,0,0,34,0,3,42,42,4,0,0,\n0,0,0,0,0,2,4,4,4,4,6,0,18,0,0,0,0,0,0,0,17,4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,4,4,6,0,0,0,0,0,0,1,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,17,40,40,16,0,0,0,0,0,2,3,4,\n25,25,25,25,9,0,18,0,0,1,0,0,0,0,0,background light_trigger target:57,51,0,0,0,0,0,0,0,0,0,0,0,0,0,17,42,42,background removelandld removetarget sand:58,6,0,0,1,0,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,23,17,4,21,0,0,0,0,0,27,4,4,4,4,4,16,21,0,\n18,0,0,0,0,0,0,0,1,10,51,51,51,51,0,0,0,0,0,0,0,0,0,0,23,42,40,40,5,0,0,0,1,0,0,0,18,0,0,0,0,10,0,0,0,0,2,3,5,6,34,0,0,23,45,0,0,0,0,0,0,0,0,22,4,8,4,21,0,0,18,0,0,0,0,0,\n0,0,0,0,0,0,0,51,0,1,0,0,0,0,0,0,0,0,0,background removelandru removetarget sand:59,40,4,16,0,0,0,0,0,0,18,19,0,0,0,0,0,0,1,0,0,3,4,4,9,34,0,0,0,0,0,0,0,0,0,0,0,0,3,4,4,4,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,\n0,51,0,0,0,0,2,3,5,0,0,0,0,23,45,21,0,0,0,0,0,0,0,18,1,2,3,5,6,0,0,0,0,2,4,8,21,0,34,2,3,4,5,0,0,0,0,2,3,5,14,4,16,28,45,0,10,0,18,0,0,0,0,0,0,0,0,0,1,0,57,51,0,0,0,2,\n3,4,16,0,0,0,0,0,2,15,0,0,0,0,0,0,0,18,41,4,8,40,58,0,0,0,0,3,4,16,0,0,34,3,40,42,16,0,0,0,0,3,4,4,4,16,21,0,0,0,0,0,18,0,0,0,0,0,2,3,5,19,19,41,5,addlandrud background removetarget:60,15,0,0,3,8,4,21,0,0,0,\n0,3,4,4,6,0,0,0,0,0,0,18,44,4,40,40,42,14,15,0,0,4,8,21,0,0,34,4,42,13,0,0,0,0,0,4,4,4,21,0,0,0,0,10,0,0,18,0,0,0,3,4,4,4,16,0,34,4,4,4,4,0,0,4,4,16,0,0,10,0,0,4,4,4,5,0,\n0,2,15,6,0,18,23,59,42,42,42,4,16,0,0,4,4,0,0,0,34,4,42,5,6,0,10,0,0,17,4,16,0,0,0,0,0,0,0,0,18,0,0,0,4,4,8,16,21,0,34,45,28,4,4,0,0,4,4,13,0,0,0,0,0,17,4,4,16,0,0,3,4,5,6,18,\n0,23,4,8,4,16,21,0,0,4,16,0,10,0,34,4,42,4,5,0,0,0,0,23,45,addlandlu background flowu4:61,19,19,19,19,19,19,19,19,19,0,0,0,4,4,16,21,0,0,34,0,2,4,4,0,0,17,4,5,0,0,0,0,0,23,17,4,21,0,0,17,4,4,background pebble removelandld sand:62,18,0,0,4,4,16,21,\n0,0,0,4,21,0,0,0,34,4,8,4,16,0,0,0,0,0,0,2,background light_trigger removelandlu sand target2:63,5,0,0,0,0,0,0,1,0,0,2,4,21,0,10,0,0,34,0,3,25,16,0,0,22,4,8,6,0,0,0,0,0,23,4,0,0,0,23,17,4,4,18,0,0,45,21,0,0,0,0,2,4,0,1,\n0,0,34,17,16,21,0,0,0,0,0,0,3,40,40,4,0,3,5,0,0,0,0,0,0,3,4,0,0,0,10,0,34,2,4,4,21,0,0,3,4,4,5,6,0,0,0,0,2,4,6,0,0,0,22,4,4,18,0,0,0,0,0,0,2,3,4,25,0,0,1,0,34,0,0,0,\n0,0,0,0,0,0,17,4,4,4,14,8,16,0,0,0,0,0,2,4,8,0,0,0,0,2,3,4,4,16,0,0,0,17,8,42,42,58,6,0,0,0,3,4,5,0,0,0,3,4,16,18,0,0,0,0,0,0,3,4,4,25,6,0,0,0,34,0,0,10,0,2,15,0,0,0,\n23,4,4,4,4,16,33,2,3,5,14,3,4,25,16,0,0,0,0,27,4,4,16,21,0,0,0,23,17,40,40,40,9,0,0,0,44,4,4,0,0,0,17,16,21,18,0,2,3,4,5,14,4,4,4,25,5,0,0,0,34,0,0,0,0,3,4,0,0,0,2,4,16,21,0,0,\n34,43,4,4,4,4,4,4,21,0,0,0,0,23,4,4,21,0,0,0,0,0,23,4,4,16,21,2,15,0,23,17,16,0,0,0,0,0,1,18,0,41,4,4,4,4,4,4,4,25,4,6,2,3,4,5,6,0,2,4,4,0,0,0,27,16,21,0,10,0,34,0,23,17,4,4,\n4,16,0,0,0,0,0,2,4,4,6,0,0,0,0,0,51,42,42,21,0,3,4,6,0,0,0,0,0,0,0,0,0,18,0,44,4,4,4,16,28,17,4,25,4,4,4,4,4,4,4,4,4,4,16,0,0,1,0,0,0,0,0,0,34,0,0,23,45,21,0,0,0,0,0,0,\n0,3,4,4,4,4,9,0,0,0,addlandrd background removetarget:64,40,40,0,0,17,4,4,9,0,0,0,0,0,0,0,0,18,0,0,23,17,16,21,0,0,23,17,4,8,4,16,28,17,4,4,4,16,21,0,0,43,58,6,0,10,0,0,34,0,0,0,0,0,0,0,2,3,5,6,2,4,4,4,4,16,\n21,0,0,0,3,4,4,0,0,0,23,45,21,0,0,0,1,0,0,0,0,18,0,1,0,0,0,0,0,0,0,23,17,16,21,0,0,0,0,0,0,0,0,1,0,23,42,5,0,0,0,0,34,0,0,0,0,0,0,0,3,4,4,4,4,4,4,4,21,0,0,0,0,0,4,4,\n4,0,0,0,0,0,0,0,0,0,0,0,0,1,0,18,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,42,42,addlandru background removetarget:65,0,0,0,34,0,0,0,0,0,0,0,17,4,4,4,4,4,4,16,0,0,0,0,0,0,17,4,4,6,0,0,0,0,\n0,0,0,0,0,0,1,0,0,18,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,17,25,4,5,0,0,34,0,0,0,0,0,0,0,23,17,4,4,4,4,13,0,0,0,0,0,0,0,23,17,4,4,4,4,5,6,0,0,0,0,0,0,\n0,1,0,18,0,1,0,0,0,0,1,0,0,0,0,2,15,0,2,background light_trigger removelandlud sand target:66,6,0,0,0,1,0,0,0,23,17,4,4,6,0,34,0,0,0,0,0,0,0,0,addlandld background removetarget:67,40,40,40,40,40,5,6,0,0,0,0,0,0,23,17,4,4,4,4,5,6,0,0,0,0,0,0,0,0,18,0,0,\n0,0,1,0,0,0,0,0,0,3,4,14,3,4,5,0,0,0,0,0,0,0,0,23,4,4,5,6,34,0,0,0,0,0,0,0,0,0,17,8,4,4,4,4,5,0,0,0,0,0,0,0,0,23,4,4,4,4,9,0,0,0,0,0,1,0,0,18,0,0,0,0,0,1,0,0,\n0,0,0,17,4,4,4,4,4,6,0,10,0,0,0,0,0,0,4,4,4,5,34,0,0,0,0,0,0,0,0,0,23,17,4,16,28,17,4,6,0,0,0,0,0,0,0,0,17,4,4,4,13,2,15,0,0,0,1,0,0,18,0,0,0,1,0,0,0,0,0,0,0,23,4,8,\n4,4,4,5,0,0,0,0,0,0,0,2,4,4,4,4,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,22,4,5,0,0,0,0,0,0,0,0,23,17,4,4,4,4,4,0,0,0,0,1,0,35,51,1,0,0,0,0,0,0,0,0,0,0,17,4,8,4,4,4,0,0,\n0,0,0,0,0,3,4,4,36,4,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,8,4,6,0,0,0,0,2,3,9,0,addlandld background light_trigger target:68,4,4,4,4,16,0,0,1,0,0,0,18,18,18,18,0,0,1,0,0,0,0,0,0,23,4,4,16,28,45,0,0,10,0,0,0,2,4,\n4,4,4,16,34,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,4,4,5,0,0,0,0,3,4,21,0,0,17,4,4,16,21,0,0,0,0,0,18,19,19,19,19,19,0,0,0,1,0,0,0,0,0,17,16,21,0,0,0,0,0,0,0,0,27,4,4,8,4,21,34,0,\n0,0,0,0,0,0,0,0,10,0,0,0,27,4,4,4,16,0,0,0,0,4,8,0,0,0,0,0,0,0,0,0,0,0,1,31,18,31,31,31,18,34,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,0,0,0,23,4,4,16,0,34,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,23,17,4,21,0,0,0,0,4,4,0,0,10,0,0,0,0,0,0,0,0,0,31,18,34,background flowr4 speedup:69,background flowu4 speedup:70,18,34,19,1,0,0,0,0,0,0,1,2,15,0,0,0,0,0,0,0,0,0,0,0,17,4,21,0,34,0,0,0,0,0,0,3,5,6,0,0,0,10,\n0,0,23,45,0,0,0,0,0,4,4,6,0,0,0,0,0,0,0,1,0,1,0,31,18,34,background flowd4 speedup:71,background flowl4 speedup:72,18,34,19,0,0,0,0,0,0,0,2,3,8,6,0,0,0,0,0,0,0,0,0,0,23,45,0,0,34,0,0,0,0,0,0,4,4,5,50,0,0,0,2,66,0,0,0,0,\n0,0,0,17,4,5,6,0,0,0,0,0,0,0,0,0,0,31,18,34,19,34,19,34,19,0,1,0,0,0,2,3,4,4,4,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,17,4,4,4,5,6,2,3,4,6,0,0,0,0,0,0,23,17,4,\n4,4,4,5,6,0,0,0,0,0,0,0,31,31,34,31,31,34,1,0,0,0,0,0,3,4,36,4,4,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,23,17,4,4,4,4,4,4,4,4,5,0,0,2,15,6,0,0,0,22,4,4,4,5,0,\n0,0,1,0,0,0,0,34,34,34,34,0,0,0,0,0,0,0,4,4,4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,23,17,4,4,4,4,4,4,4,16,57,3,25,4,4,5,0,0,27,25,4,4,16,0,0,0,0,0,1,0,\n0,0,0,0,0,1,0,0,0,0,0,0,45,21,23,45,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,0,0,23,4,4,16,28,4,16,21,0,4,25,8,4,16,1,1,0,23,17,16,21,0,0,0,0,1,0,0,1,0,0,0,1,0,\n0,background death:73,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,0,0,0,17,16,21,0,45,21,0,0,17,25,16,21,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,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,34,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,1,0,0,0,0,0,0,1,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,34,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,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",0,"1627778728427.8804"] ], [ `gallery: the undertaking`, - ["title the undertaking\nauthor anna anthropy\nhomepage www.auntiepixelante.com\nnoaction\nnoundo\nnorestart\nrun_rules_on_level_start\nrealtime_interval 0.01\n\n========\nOBJECTS\n========\n\nBackground \nBlack\n\nExit \nTransparent\n\nWall \nWhite\n\nPlayer\nWhite\n..0..\n.000.\n00000\n.000.\n.0.0.\n\nAutoplayer\nGrey\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\np = Player\nq = Autoplayer\nE = Exit\n\n=======\nSOUNDS\n=======\n\nPlayer Move 20440307\nPlayer CantMove 24953107\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nExit\nPlayer, Autoplayer, Wall\n\n======\nRULES \n====== \n\n[ Autoplayer ] -> [ Player Exit ]\n\n==============\nWINCONDITIONS\n==============\n\nall Player on Exit\n\n======= \nLEVELS\n=======\n\nmessage the void\n\nEEEEEEEEEEE\nE.........E\nE.........E\nE.........E\nE.........E\nE....p....E\nE.........E\nE.........E\nE.........E\nE.........E\nEEEEEEEEEEE\n\nmessage deep in the woods\n\n###.EE.##..\n####..####.\n.#......#.#\n#.........#\n##.......##\n###.p...#.#\n#......##..\n.#....####.\n###..#..#..\n####.##...#\n.#..####.##\n\nmessage an ancient temple\n\n####EEE####\n#..#...#..#\n#.##...##.#\n#.........#\n#.........#\n#.#.....#.#\n#.........#\n#.........#\n#.##...##.#\n#..#.p.#..#\n####...####\n\nmessage the crumbling ruins\n\n......###EE\n#..#.##...E\n.##.#.#...#\n#.........#\n.#.#......#\n#...#....#.\n#.........#\n#.......#..\n#...#.....#\n....#.#...#\n.p.########\n\nmessage a lonely shoreline\n\n###########\n###.#######\n#.#####..##\n.##...####.\n#..###...##\n.##...###..\n#........##\n..........E\n.....####.E\np.########E\n###########\n\nmessage a forbidding cave\n\n##..#####EE\n..#.##.#..E\n##...#....E\n..#..#....#\n#.........#\n.........##\n.......####\np........##\n......#....\n#.#...#.#.#\n.#.#.#.#.#.\n\nmessage a rocky tunnel\n\n###########\n###.#####.#\n#.####.#..#\n#.#.#..#..E\n..#.......E\np.........E\n......#...E\n#.......#.E\n#.#.#..##.#\n###.##.####\n###########\n\nmessage a deserted cavern\n\n######EE###\n###..#....#\n#.........#\n...#.....##\n.........##\np.........#\n..........#\n..#......##\n#......#..#\n##.#....###\n###########\n\nmessage a huge mushroom\n\n...#.#..#.#\n.#.#....#.#\n.#.#.###..#\n###.#####.#\n#.#...#...#\n#....##..##\n.#...##...E\n#.........E\n#..#......E\n##.#....#.#\n####.p.####\n\nmessage a collapsed passage\n\n#######.EE#\n###...##..#\n##..#..##.#\n#.#..#.#..#\n#....#.#.##\n##.##..#..#\n#...#.....#\n#.#..#.#..#\n####.#...##\np.....#####\n###########\n\nmessage a mysterious house\n\n####...####\n#.#......##\n....#####.#\n#####...#.#\n#E#.#...#..\n#.#.....#.#\n#...#...#..\n######.##..\n...........\n##...#....#\n#######.p.#\n\nmessage a secret passage\n\n.####......\n.####......\n###########\n.#p#.......\n.#.##..#..#\n.#..##.....\n.##..######\n..##......#\n...######.#\n.#...#..#.#\n...#....#E#\n\nmessage standing stones\n\n..###.###..\n.#...p...#.\n#...#.#...#\n#.#.#.#.#.E\n#.#.....#.E\n#.........E\n#.#..#....E\n#.#.....#.E\n#...#.#.#.#\n.#..#.#..#.\n..#######..\n\nmessage high technology\n\n###########\n#....#....#\n#.##.######\n#....#....E\n..........E\np.........E\n..........E\n#....#....E\n#.##.######\n#....#....#\n###########\n\nmessage a strange factory\n\n###########\n..#.#.#.#.#\np.........#\n..........#\n#.#.#.###.#\n#######.#.#\n#.#.#.###.#\n#.........#\n#.........#\n#.#.#.#.#.#\n#E#########\n\nmessage the vestibule\n\n#####p#####\n#...#.#...#\n##.......##\n#.........#\n###.....###\n#.#.....#.#\n####...####\n#..#...#..#\n#####.#####\n#...#.#...#\n#####E#####\n\nmessage the device\n\n###########\n#....p....#\n#.........#\n#.........#\n#.###.###.#\n#..#...#..#\n####EEE####\n#..#...#..#\n#.###.###.#\n#.........#\n###########\n\nmessage the void\n\nEEEEEEEEEEE\nE.........E\nE.........E\nE.........E\nE.........E\nE....p....E\nE.........E\nE.........E\nE.........E\nE.........E\nEEEEEEEEEEE\n\nmessage a glimmer\n\n.......E...\n......E#E..\n.....E###E.\n....E##.##E\n.....E###E.\n......E#E..\n.......E...\n...........\n...........\n..p........\n...........\n\nmessage a flash\n\n.....#.....\n.....#.....\n.....#.....\n.....#.....\n.....#.....\n#####q#####\n.....#.....\n.....#.....\n.....#.....\n.....#.....\n.....#.....\n\n.....#.....\n....#.#....\n...#...#...\n..#..#..#..\n.#..#.#..#.\n#..#.q.#..#\n.#..#.#..#.\n..#..#..#..\n...#...#...\n....#.#....\n.....#.....\n\n###########\n#.........#\n#.#######.#\n#.#.....#.#\n#.#.###.#.#\n#.#.#q#.#.#\n#.#...#.#.#\n#.#####.#.#\n#.......#.#\n#########.#\n..........#\n\n...........\n...###.....\n.###....#..\n###...#####\n###....###.\n###..q.#.#.\n###........\n###.....#..\n####...##..\n.#######...\n..#####....\n\n....#......\n.....#.....\n......#....\n.....#.....\n....#......\n...#.q.....\n..#.#......\n.#...#.....\n..#..#.....\n.#########.\n###########\n\n#######.###\n#.....#...#\n#.#.#####.#\n#.#.#...#.#\n###.#.#.#.#\n#...#q#...#\n#.###.#.#.#\n#.....#.#.#\n#.###.###.#\n#...#..#..#\n###.#######\n\n\n..#...#...#\n.#.#.#.#.#.\n#...#...#..\n...........\n..#...#...#\n.#.#.q.#.#.\n#...#...#..\n...........\n..#...#...#\n.#.#.#.#.#.\n#...#...#..\n\n....###....\n..##.#.##..\n.#..#.#..#.\n.#..#.#..#.\n#..#...#..#\n#..#.q.#..#\n#.#.....#.#\n.#########.\n.#.......#.\n..##...##..\n....###....\n\n###########\n#.........#\n#.#######.#\n#.#.....#.#\n#.#.###.#.#\n#.#.#q#.#.#\n#.#.###.#.#\n#.#.....#.#\n#.#######.#\n#.........#\n###########\n\n...#####...\n..#..#..#..\n.#...#...#.\n.#...#...#.\n.#..#.#..#.\n..###q###..\n..#######..\n...#.#.#...\n...........\n...#.#.#...\n....###....\n\n.....#.....\n.....#.....\n..#######..\n..#..#..#..\n..#.....#..\n####.q.####\n..#.....#..\n..#..#..#..\n..#######..\n.....#.....\n.....#.....\n\n....###....\n..#######..\n.#########.\n.##..#..##.\n##..#.#..##\n#..#.q.#..#\n##..#.#..##\n.##..#..##.\n.#########.\n..#######..\n....###....\n\n#####.#####\n####.#.####\n###.###.###\n##.##.##.##\n#.##.#.##.#\n.##.#q#.##.\n#.##.#.##.#\n##.##.##.##\n###.###.###\n####.#.####\n#####.#####\n\n#..........\n#.#########\n#.#.......#\n#.#.#####.#\n#.#.#...#.#\n#.#.#q#.#.#\n#.#.###.#.#\n#.#.....#.#\n#.#######.#\n#.........#\n###########\n\n#####.#####\n#####.#####\n#####.#####\n#####.#####\n#####.#####\n.....q.....\n#####.#####\n#####.#####\n#####.#####\n#####.#####\n#####.#####\n\n###########\n###########\n###########\n###########\n###########\n#####q#####\n###########\n###########\n###########\n###########\n###########\n\nmessage the undertaking\n\n.....#.....\n....#.#....\n...#...#...\n###.....###\n#.........#\n.#...q...#.\n..#.....#..\n..#.....#..\n..#..#..#..\n..#.#.#.#..\n..##...##..\n\n.....#.....\n....#.#....\n...#...#...\n###.....###\n#.........#\n.#...q...#.\n..#.....#..\n..#.....#..\n..#..#..#..\n..#.#.#.#..\n..##...##..\n\n.....#.....\n....#.#....\n...#...#...\n###.....###\n#.........#\n.#...q...#.\n..#.....#..\n..#.....#..\n..#..#..#..\n..#.#.#.#..\n..##...##..\n\nmessage end\n\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background wall:0,0,0,0,0,0,0,0,0,0,0,\n0,background:1,0,1,0,1,0,1,0,1,0,\n0,1,1,1,0,0,0,1,0,1,0,\n0,1,1,1,1,1,0,0,0,1,0,\n0,0,1,background player:2,1,1,1,1,0,0,0,\n1,1,1,1,1,1,1,1,1,1,background exit:3,\n0,0,1,1,1,1,1,1,0,0,0,\n0,1,1,1,1,1,0,0,0,1,0,\n0,1,1,1,0,0,0,1,0,1,0,\n0,1,0,1,0,1,0,1,0,1,0,\n0,0,0,0,0,0,0,0,0,0,0,\n", 31, "1627778765711.7197"] + ["title the undertaking\nauthor anna anthropy\nhomepage www.auntiepixelante.com\nnoaction\nnoundo\nnorestart\nrun_rules_on_level_start\nrealtime_interval 0.01\n\n========\nOBJECTS\n========\n\nBackground \nBlack\n\nExit \nTransparent\n\nWall \nWhite\n\nPlayer\nWhite\n..0..\n.000.\n00000\n.000.\n.0.0.\n\nAutoplayer\nGrey\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\np = Player\nq = Autoplayer\nE = Exit\n\n=======\nSOUNDS\n=======\n\nPlayer Move 20440307\nPlayer CantMove 24953107\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nExit\nPlayer, Autoplayer, Wall\n\n======\nRULES \n====== \n\n[ Autoplayer ] -> [ Player Exit ]\n\n==============\nWINCONDITIONS\n==============\n\nall Player on Exit\n\n======= \nLEVELS\n=======\n\nmessage the void\n\nEEEEEEEEEEE\nE.........E\nE.........E\nE.........E\nE.........E\nE....p....E\nE.........E\nE.........E\nE.........E\nE.........E\nEEEEEEEEEEE\n\nmessage deep in the woods\n\n###.EE.##..\n####..####.\n.#......#.#\n#.........#\n##.......##\n###.p...#.#\n#......##..\n.#....####.\n###..#..#..\n####.##...#\n.#..####.##\n\nmessage an ancient temple\n\n####EEE####\n#..#...#..#\n#.##...##.#\n#.........#\n#.........#\n#.#.....#.#\n#.........#\n#.........#\n#.##...##.#\n#..#.p.#..#\n####...####\n\nmessage the crumbling ruins\n\n......###EE\n#..#.##...E\n.##.#.#...#\n#.........#\n.#.#......#\n#...#....#.\n#.........#\n#.......#..\n#...#.....#\n....#.#...#\n.p.########\n\nmessage a lonely shoreline\n\n###########\n###.#######\n#.#####..##\n.##...####.\n#..###...##\n.##...###..\n#........##\n..........E\n.....####.E\np.########E\n###########\n\nmessage a forbidding cave\n\n##..#####EE\n..#.##.#..E\n##...#....E\n..#..#....#\n#.........#\n.........##\n.......####\np........##\n......#....\n#.#...#.#.#\n.#.#.#.#.#.\n\nmessage a rocky tunnel\n\n###########\n###.#####.#\n#.####.#..#\n#.#.#..#..E\n..#.......E\np.........E\n......#...E\n#.......#.E\n#.#.#..##.#\n###.##.####\n###########\n\nmessage a deserted cavern\n\n######EE###\n###..#....#\n#.........#\n...#.....##\n.........##\np.........#\n..........#\n..#......##\n#......#..#\n##.#....###\n###########\n\nmessage a huge mushroom\n\n...#.#..#.#\n.#.#....#.#\n.#.#.###..#\n###.#####.#\n#.#...#...#\n#....##..##\n.#...##...E\n#.........E\n#..#......E\n##.#....#.#\n####.p.####\n\nmessage a collapsed passage\n\n#######.EE#\n###...##..#\n##..#..##.#\n#.#..#.#..#\n#....#.#.##\n##.##..#..#\n#...#.....#\n#.#..#.#..#\n####.#...##\np.....#####\n###########\n\nmessage a mysterious house\n\n####...####\n#.#......##\n....#####.#\n#####...#.#\n#E#.#...#..\n#.#.....#.#\n#...#...#..\n######.##..\n...........\n##...#....#\n#######.p.#\n\nmessage a secret passage\n\n.####......\n.####......\n###########\n.#p#.......\n.#.##..#..#\n.#..##.....\n.##..######\n..##......#\n...######.#\n.#...#..#.#\n...#....#E#\n\nmessage standing stones\n\n..###.###..\n.#...p...#.\n#...#.#...#\n#.#.#.#.#.E\n#.#.....#.E\n#.........E\n#.#..#....E\n#.#.....#.E\n#...#.#.#.#\n.#..#.#..#.\n..#######..\n\nmessage high technology\n\n###########\n#....#....#\n#.##.######\n#....#....E\n..........E\np.........E\n..........E\n#....#....E\n#.##.######\n#....#....#\n###########\n\nmessage a strange factory\n\n###########\n..#.#.#.#.#\np.........#\n..........#\n#.#.#.###.#\n#######.#.#\n#.#.#.###.#\n#.........#\n#.........#\n#.#.#.#.#.#\n#E#########\n\nmessage the vestibule\n\n#####p#####\n#...#.#...#\n##.......##\n#.........#\n###.....###\n#.#.....#.#\n####...####\n#..#...#..#\n#####.#####\n#...#.#...#\n#####E#####\n\nmessage the device\n\n###########\n#....p....#\n#.........#\n#.........#\n#.###.###.#\n#..#...#..#\n####EEE####\n#..#...#..#\n#.###.###.#\n#.........#\n###########\n\nmessage the void\n\nEEEEEEEEEEE\nE.........E\nE.........E\nE.........E\nE.........E\nE....p....E\nE.........E\nE.........E\nE.........E\nE.........E\nEEEEEEEEEEE\n\nmessage a glimmer\n\n.......E...\n......E#E..\n.....E###E.\n....E##.##E\n.....E###E.\n......E#E..\n.......E...\n...........\n...........\n..p........\n...........\n\nmessage a flash\n\n.....#.....\n.....#.....\n.....#.....\n.....#.....\n.....#.....\n#####q#####\n.....#.....\n.....#.....\n.....#.....\n.....#.....\n.....#.....\n\n.....#.....\n....#.#....\n...#...#...\n..#..#..#..\n.#..#.#..#.\n#..#.q.#..#\n.#..#.#..#.\n..#..#..#..\n...#...#...\n....#.#....\n.....#.....\n\n###########\n#.........#\n#.#######.#\n#.#.....#.#\n#.#.###.#.#\n#.#.#q#.#.#\n#.#...#.#.#\n#.#####.#.#\n#.......#.#\n#########.#\n..........#\n\n...........\n...###.....\n.###....#..\n###...#####\n###....###.\n###..q.#.#.\n###........\n###.....#..\n####...##..\n.#######...\n..#####....\n\n....#......\n.....#.....\n......#....\n.....#.....\n....#......\n...#.q.....\n..#.#......\n.#...#.....\n..#..#.....\n.#########.\n###########\n\n#######.###\n#.....#...#\n#.#.#####.#\n#.#.#...#.#\n###.#.#.#.#\n#...#q#...#\n#.###.#.#.#\n#.....#.#.#\n#.###.###.#\n#...#..#..#\n###.#######\n\n\n..#...#...#\n.#.#.#.#.#.\n#...#...#..\n...........\n..#...#...#\n.#.#.q.#.#.\n#...#...#..\n...........\n..#...#...#\n.#.#.#.#.#.\n#...#...#..\n\n....###....\n..##.#.##..\n.#..#.#..#.\n.#..#.#..#.\n#..#...#..#\n#..#.q.#..#\n#.#.....#.#\n.#########.\n.#.......#.\n..##...##..\n....###....\n\n###########\n#.........#\n#.#######.#\n#.#.....#.#\n#.#.###.#.#\n#.#.#q#.#.#\n#.#.###.#.#\n#.#.....#.#\n#.#######.#\n#.........#\n###########\n\n...#####...\n..#..#..#..\n.#...#...#.\n.#...#...#.\n.#..#.#..#.\n..###q###..\n..#######..\n...#.#.#...\n...........\n...#.#.#...\n....###....\n\n.....#.....\n.....#.....\n..#######..\n..#..#..#..\n..#.....#..\n####.q.####\n..#.....#..\n..#..#..#..\n..#######..\n.....#.....\n.....#.....\n\n....###....\n..#######..\n.#########.\n.##..#..##.\n##..#.#..##\n#..#.q.#..#\n##..#.#..##\n.##..#..##.\n.#########.\n..#######..\n....###....\n\n#####.#####\n####.#.####\n###.###.###\n##.##.##.##\n#.##.#.##.#\n.##.#q#.##.\n#.##.#.##.#\n##.##.##.##\n###.###.###\n####.#.####\n#####.#####\n\n#..........\n#.#########\n#.#.......#\n#.#.#####.#\n#.#.#...#.#\n#.#.#q#.#.#\n#.#.###.#.#\n#.#.....#.#\n#.#######.#\n#.........#\n###########\n\n#####.#####\n#####.#####\n#####.#####\n#####.#####\n#####.#####\n.....q.....\n#####.#####\n#####.#####\n#####.#####\n#####.#####\n#####.#####\n\n###########\n###########\n###########\n###########\n###########\n#####q#####\n###########\n###########\n###########\n###########\n###########\n\nmessage the undertaking\n\n.....#.....\n....#.#....\n...#...#...\n###.....###\n#.........#\n.#...q...#.\n..#.....#..\n..#.....#..\n..#..#..#..\n..#.#.#.#..\n..##...##..\n\n.....#.....\n....#.#....\n...#...#...\n###.....###\n#.........#\n.#...q...#.\n..#.....#..\n..#.....#..\n..#..#..#..\n..#.#.#.#..\n..##...##..\n\n.....#.....\n....#.#....\n...#...#...\n###.....###\n#.........#\n.#...q...#.\n..#.....#..\n..#.....#..\n..#..#..#..\n..#.#.#.#..\n..##...##..\n\nmessage end\n\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background wall:0,0,0,0,0,0,0,0,0,0,0,\n0,background:1,0,1,0,1,0,1,0,1,0,\n0,1,1,1,0,0,0,1,0,1,0,\n0,1,1,1,1,1,0,0,0,1,0,\n0,0,1,background player:2,1,1,1,1,0,0,0,\n1,1,1,1,1,1,1,1,1,1,background exit:3,\n0,0,1,1,1,1,1,1,0,0,0,\n0,1,1,1,1,1,0,0,0,1,0,\n0,1,1,1,0,0,0,1,0,1,0,\n0,1,0,1,0,1,0,1,0,1,0,\n0,0,0,0,0,0,0,0,0,0,0,\n",31,"1627778765711.7197"] ], [ `gallery: JAM3 Game`, - ["title JAM3 Game\nauthor chaotic_iak\n\nagain_interval 0.07\nkey_repeat_interval 0.2\nrun_rules_on_level_start\nverbose_logging\n\n========\nOBJECTS\n========\n(need better sprites)\n\nbackground\nwhite\n\ntarget\n#9ff\n\nplayer\nblack\n.....\n..0..\n.000.\n..0..\n.....\n\ngem1\n#c00 #f33\n.....\n.001.\n.000.\n.000.\n.....\n\ngem2\n#990 #cc3\n.....\n.001.\n.000.\n.000.\n.....\n\ngem3\n#0c0 #3f3\n.....\n.001.\n.000.\n.000.\n.....\n\ngem4\n#00c #33f\n.....\n.001.\n.000.\n.000.\n.....\n\ngem5\n#909 #c3c\n.....\n.001.\n.000.\n.000.\n.....\n\ngem1pop\n#c00\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\ngem2pop\n#990\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\ngem3pop\n#0c0\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\ngem4pop\n#00c\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\ngem5pop\n#909\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\nwall0\n#333 white\n00000\n00000\n00000\n00000\n00100\n\nwall1\n#333 #f33\n00000\n00000\n00000\n00000\n00100\n\nwall2\n#333 #cc3\n00000\n00000\n00000\n00000\n00100\n\nwall3\n#333 #3f3\n00000\n00000\n00000\n00000\n00100\n\nwall4\n#333 #33f\n00000\n00000\n00000\n00000\n00100\n\nwall5\n#333 #c3c\n00000\n00000\n00000\n00000\n00100\n\nwalls\n#333\n\nlv1\nwhite\n.00..\n..0..\n..0..\n..0..\n.000.\n\nlv2\nwhite\n.000.\n...0.\n.000.\n.0...\n.000.\n\nlv3\nwhite\n.000.\n...0.\n.000.\n...0.\n.000.\n\nlv4\nwhite\n.0.0.\n.0.0.\n.000.\n...0.\n...0.\n\nlv5\nwhite\n.000.\n.0...\n.000.\n...0.\n.000.\n\nlv6\nwhite\n.000.\n.0...\n.000.\n.0.0.\n.000.\n\nlv7\nwhite\n.000.\n...0.\n..0..\n..0..\n..0..\n\nlv8\nwhite\n.000.\n.0.0.\n.000.\n.0.0.\n.000.\n\nlv9\nwhite\n.000.\n.0.0.\n.000.\n...0.\n.000.\n\nlv10\nwhite\n0.000\n0.0.0\n0.0.0\n0.0.0\n0.000\n\nlv11\nwhite\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n\nlv12\nwhite\n0.000\n0...0\n0.000\n0.0..\n0.000\n\nlv13\nwhite\n0.000\n0...0\n0.000\n0...0\n0.000\n\nlv14\nwhite\n0.0.0\n0.0.0\n0.000\n0...0\n0...0\n\nlv15\nwhite\n0.000\n0.0..\n0.000\n0...0\n0.000\n\nlvbin0\nred\n\nlvbin1\nblue\n\nstartlevel\nblack\n\npop\nblack\n\nremnant\nblack\n\nresume\nblack\n\nwinmarker\nblack\n\n=======\nLEGEND\n=======\n. = background\n* = target\n# = walls\np = wall0\nq = wall1\nw = wall2\ne = wall3\nr = wall4\nt = wall5\n& = player and startlevel\n0 = walls and lvbin0\n1 = walls and lvbin1\n\ngem = gem1 or gem2 or gem3 or gem4 or gem5\ngempop = gem1pop or gem2pop or gem3pop or gem4pop or gem5pop\nmovable = player or gem\nwall = walls or wall0 or wall1 or wall2 or wall3 or wall4 or wall5\nobject = player or gem or gempop or wall\nmarker = startlevel or pop or remnant or winmarker\nlv = lv1 or lv2 or lv3 or lv4 or lv5 or lv6 or lv7 or lv8 or lv9 or lv10 or lv11 or lv12 or lv13 or lv14 or lv15\n\n=======\nSOUNDS\n=======\ngempop create 66716500\nendlevel 54419303\n\n================\nCOLLISIONLAYERS\n================\nresume\nmarker\nbackground\ntarget\nwall, player\ngem, gempop\nlv, lvbin0, lvbin1\n\n======\nRULES\n======\n(start level: generate gems)\n[startlevel][no wall no player no gem] -> [startlevel][random gem]\nstartloop\n [startlevel][gem1|gem1|gem1] -> [startlevel][random gem|random gem|random gem]\n+[startlevel][gem2|gem2|gem2] -> [startlevel][random gem|random gem|random gem]\n+[startlevel][gem3|gem3|gem3] -> [startlevel][random gem|random gem|random gem]\n+[startlevel][gem4|gem4|gem4] -> [startlevel][random gem|random gem|random gem]\n+[startlevel][gem5|gem5|gem5] -> [startlevel][random gem|random gem|random gem]\ndown [startlevel][wall1|gem no gem1] -> [startlevel][wall1|gem1]\n+ [startlevel][wall2|gem no gem2] -> [startlevel][wall2|gem2]\n+ [startlevel][wall3|gem no gem3] -> [startlevel][wall3|gem3]\n+ [startlevel][wall4|gem no gem4] -> [startlevel][wall4|gem4]\n+ [startlevel][wall5|gem no gem5] -> [startlevel][wall5|gem5]\nendloop\n\n(start level: generate level number)\nright [startlevel][lvbin0|lvbin0|lvbin0|lvbin1] -> [startlevel][lv1|||]\nright [startlevel][lvbin0|lvbin0|lvbin1|lvbin0] -> [startlevel][lv2|||]\nright [startlevel][lvbin0|lvbin0|lvbin1|lvbin1] -> [startlevel][lv3|||]\nright [startlevel][lvbin0|lvbin1|lvbin0|lvbin0] -> [startlevel][lv4|||]\nright [startlevel][lvbin0|lvbin1|lvbin0|lvbin1] -> [startlevel][lv5|||]\nright [startlevel][lvbin0|lvbin1|lvbin1|lvbin0] -> [startlevel][lv6|||]\nright [startlevel][lvbin0|lvbin1|lvbin1|lvbin1] -> [startlevel][lv7|||]\nright [startlevel][lvbin1|lvbin0|lvbin0|lvbin0] -> [startlevel][lv8|||]\nright [startlevel][lvbin1|lvbin0|lvbin0|lvbin1] -> [startlevel][lv9|||]\nright [startlevel][lvbin1|lvbin0|lvbin1|lvbin0] -> [startlevel][lv10|||]\nright [startlevel][lvbin1|lvbin0|lvbin1|lvbin1] -> [startlevel][lv11|||]\nright [startlevel][lvbin1|lvbin1|lvbin0|lvbin0] -> [startlevel][lv12|||]\nright [startlevel][lvbin1|lvbin1|lvbin0|lvbin1] -> [startlevel][lv13|||]\nright [startlevel][lvbin1|lvbin1|lvbin1|lvbin0] -> [startlevel][lv14|||]\nright [startlevel][lvbin1|lvbin1|lvbin1|lvbin1] -> [startlevel][lv15|||]\n[startlevel] -> []\n\n(move)\n[> player|gem] -> [gem|player]\n\n(drop gems)\n[resume] -> []\n[lv][remnant] -> [lv resume][]\ndown [movable|no object][lv] -> [> movable|][lv resume]\ndown [movable|> movable][lv] -> [> movable|> movable][lv resume]\nlate down [resume][wall0|no object] -> [resume][wall0|random gem] again\nlate down [resume][wall1|no object] -> [resume][wall1|gem1] again\nlate down [resume][wall2|no object] -> [resume][wall2|gem2] again\nlate down [resume][wall3|no object] -> [resume][wall3|gem3] again\nlate down [resume][wall4|no object] -> [resume][wall4|gem4] again\nlate down [resume][wall5|no object] -> [resume][wall5|gem5] again\n\n(pop, with animation)\n[gempop] -> [remnant] again\n[gem1 pop] -> [gem1pop]\n[gem2 pop] -> [gem2pop]\n[gem3 pop] -> [gem3pop]\n[gem4 pop] -> [gem4pop]\n[gem5 pop] -> [gem5pop]\n[gempop] -> again\n\n(win check)\nlate [lv] -> [lv winmarker]\nlate [winmarker][target player] -> [][target player]\nlate [winmarker][target gem] -> [][target gem]\nlate [winmarker][target gem1pop][target gem2pop] -> [][target gem1pop][target gem2pop]\nlate [winmarker][target gem1pop][target gem3pop] -> [][target gem1pop][target gem3pop]\nlate [winmarker][target gem1pop][target gem4pop] -> [][target gem1pop][target gem4pop]\nlate [winmarker][target gem1pop][target gem5pop] -> [][target gem1pop][target gem5pop]\nlate [winmarker][target gem2pop][target gem3pop] -> [][target gem2pop][target gem3pop]\nlate [winmarker][target gem2pop][target gem4pop] -> [][target gem2pop][target gem4pop]\nlate [winmarker][target gem2pop][target gem5pop] -> [][target gem2pop][target gem5pop]\nlate [winmarker][target gem3pop][target gem4pop] -> [][target gem3pop][target gem4pop]\nlate [winmarker][target gem3pop][target gem5pop] -> [][target gem3pop][target gem5pop]\nlate [winmarker][target gem4pop][target gem5pop] -> [][target gem4pop][target gem5pop]\n\n(prepare popping)\nlate [lv no resume][gem1|gem1|gem1] -> [lv][gem1 pop|gem1 pop|gem1 pop]\nlate [lv no resume][gem2|gem2|gem2] -> [lv][gem2 pop|gem2 pop|gem2 pop]\nlate [lv no resume][gem3|gem3|gem3] -> [lv][gem3 pop|gem3 pop|gem3 pop]\nlate [lv no resume][gem4|gem4|gem4] -> [lv][gem4 pop|gem4 pop|gem4 pop]\nlate [lv no resume][gem5|gem5|gem5] -> [lv][gem5 pop|gem5 pop|gem5 pop]\nlate [gem pop] -> again\n\n==============\nWINCONDITIONS\n==============\nsome winmarker\n\n=======\nLEVELS\n=======\nmessage JUST ANOTHER MATCH 3 GAME\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#.....&....#\n#..........#\n#..........#\n#...****...#\n#..........#\n#..........#\n#..........#\n0001########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#....*.....#\n#...****...#\n#....*.....#\n#....*.&...#\n#..........#\n#..........#\n#..........#\n0010########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#.....&....#\n#..........#\n#..........#\n#..******..#\n#..........#\n#..........#\n#..........#\n0011########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#...#*#....#\n#...#*#....#\n#...#*#....#\n#...ppp&...#\n#..........#\n#..........#\n#..........#\n0100########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#.....&....#\n#....qr#...#\n#...***#...#\n#....ppp...#\n#..........#\n#..........#\n#..........#\n0101########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#....***...#\n#..........#\n#......&...#\n#...***....#\n#..........#\n#..........#\n#..........#\n0110########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#...***....#\n#...*&*....#\n#...***....#\n#..........#\n#..........#\n#..........#\n0111########\n\n", [0, 1, 1, 2, 2, 3, 3, 0, 0, 0, 0, 3, 0], "background walls:0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background lv3 walls:1,background wall0:2,background gem1:3,background gem4:4,background gem3:5,background gem2:6,6,3,6,\n6,5,background gem5:7,5,6,4,5,0,2,6,3,5,\n7,6,4,3,7,5,4,5,5,6,5,0,\n2,3,5,7,5,4,6,7,6,7,3,background gem4 target:8,\n6,7,6,0,2,4,7,3,4,4,3,3,\n4,3,7,background gem2 target:9,5,6,6,0,2,4,4,5,\n7,5,4,7,4,6,6,background gem5 target:10,3,4,3,0,\n2,5,7,3,3,6,7,4,3,3,4,9,\n6,4,4,0,2,6,4,4,5,4,background player:11,5,\n3,4,7,8,5,7,7,0,2,5,4,7,\n5,6,5,3,7,7,3,background gem3 target:12,3,4,6,0,\n2,4,5,7,3,4,6,5,4,6,6,4,\n3,7,5,0,2,3,6,6,4,6,6,3,\n7,7,4,5,5,7,3,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,\n", 3, "1627778784846.1284"] + ["title JAM3 Game\nauthor chaotic_iak\n\nagain_interval 0.07\nkey_repeat_interval 0.2\nrun_rules_on_level_start\nverbose_logging\n\n========\nOBJECTS\n========\n(need better sprites)\n\nbackground\nwhite\n\ntarget\n#9ff\n\nplayer\nblack\n.....\n..0..\n.000.\n..0..\n.....\n\ngem1\n#c00 #f33\n.....\n.001.\n.000.\n.000.\n.....\n\ngem2\n#990 #cc3\n.....\n.001.\n.000.\n.000.\n.....\n\ngem3\n#0c0 #3f3\n.....\n.001.\n.000.\n.000.\n.....\n\ngem4\n#00c #33f\n.....\n.001.\n.000.\n.000.\n.....\n\ngem5\n#909 #c3c\n.....\n.001.\n.000.\n.000.\n.....\n\ngem1pop\n#c00\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\ngem2pop\n#990\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\ngem3pop\n#0c0\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\ngem4pop\n#00c\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\ngem5pop\n#909\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\nwall0\n#333 white\n00000\n00000\n00000\n00000\n00100\n\nwall1\n#333 #f33\n00000\n00000\n00000\n00000\n00100\n\nwall2\n#333 #cc3\n00000\n00000\n00000\n00000\n00100\n\nwall3\n#333 #3f3\n00000\n00000\n00000\n00000\n00100\n\nwall4\n#333 #33f\n00000\n00000\n00000\n00000\n00100\n\nwall5\n#333 #c3c\n00000\n00000\n00000\n00000\n00100\n\nwalls\n#333\n\nlv1\nwhite\n.00..\n..0..\n..0..\n..0..\n.000.\n\nlv2\nwhite\n.000.\n...0.\n.000.\n.0...\n.000.\n\nlv3\nwhite\n.000.\n...0.\n.000.\n...0.\n.000.\n\nlv4\nwhite\n.0.0.\n.0.0.\n.000.\n...0.\n...0.\n\nlv5\nwhite\n.000.\n.0...\n.000.\n...0.\n.000.\n\nlv6\nwhite\n.000.\n.0...\n.000.\n.0.0.\n.000.\n\nlv7\nwhite\n.000.\n...0.\n..0..\n..0..\n..0..\n\nlv8\nwhite\n.000.\n.0.0.\n.000.\n.0.0.\n.000.\n\nlv9\nwhite\n.000.\n.0.0.\n.000.\n...0.\n.000.\n\nlv10\nwhite\n0.000\n0.0.0\n0.0.0\n0.0.0\n0.000\n\nlv11\nwhite\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n\nlv12\nwhite\n0.000\n0...0\n0.000\n0.0..\n0.000\n\nlv13\nwhite\n0.000\n0...0\n0.000\n0...0\n0.000\n\nlv14\nwhite\n0.0.0\n0.0.0\n0.000\n0...0\n0...0\n\nlv15\nwhite\n0.000\n0.0..\n0.000\n0...0\n0.000\n\nlvbin0\nred\n\nlvbin1\nblue\n\nstartlevel\nblack\n\npop\nblack\n\nremnant\nblack\n\nresume\nblack\n\nwinmarker\nblack\n\n=======\nLEGEND\n=======\n. = background\n* = target\n# = walls\np = wall0\nq = wall1\nw = wall2\ne = wall3\nr = wall4\nt = wall5\n& = player and startlevel\n0 = walls and lvbin0\n1 = walls and lvbin1\n\ngem = gem1 or gem2 or gem3 or gem4 or gem5\ngempop = gem1pop or gem2pop or gem3pop or gem4pop or gem5pop\nmovable = player or gem\nwall = walls or wall0 or wall1 or wall2 or wall3 or wall4 or wall5\nobject = player or gem or gempop or wall\nmarker = startlevel or pop or remnant or winmarker\nlv = lv1 or lv2 or lv3 or lv4 or lv5 or lv6 or lv7 or lv8 or lv9 or lv10 or lv11 or lv12 or lv13 or lv14 or lv15\n\n=======\nSOUNDS\n=======\ngempop create 66716500\nendlevel 54419303\n\n================\nCOLLISIONLAYERS\n================\nresume\nmarker\nbackground\ntarget\nwall, player\ngem, gempop\nlv, lvbin0, lvbin1\n\n======\nRULES\n======\n(start level: generate gems)\n[startlevel][no wall no player no gem] -> [startlevel][random gem]\nstartloop\n [startlevel][gem1|gem1|gem1] -> [startlevel][random gem|random gem|random gem]\n+[startlevel][gem2|gem2|gem2] -> [startlevel][random gem|random gem|random gem]\n+[startlevel][gem3|gem3|gem3] -> [startlevel][random gem|random gem|random gem]\n+[startlevel][gem4|gem4|gem4] -> [startlevel][random gem|random gem|random gem]\n+[startlevel][gem5|gem5|gem5] -> [startlevel][random gem|random gem|random gem]\ndown [startlevel][wall1|gem no gem1] -> [startlevel][wall1|gem1]\n+ [startlevel][wall2|gem no gem2] -> [startlevel][wall2|gem2]\n+ [startlevel][wall3|gem no gem3] -> [startlevel][wall3|gem3]\n+ [startlevel][wall4|gem no gem4] -> [startlevel][wall4|gem4]\n+ [startlevel][wall5|gem no gem5] -> [startlevel][wall5|gem5]\nendloop\n\n(start level: generate level number)\nright [startlevel][lvbin0|lvbin0|lvbin0|lvbin1] -> [startlevel][lv1|||]\nright [startlevel][lvbin0|lvbin0|lvbin1|lvbin0] -> [startlevel][lv2|||]\nright [startlevel][lvbin0|lvbin0|lvbin1|lvbin1] -> [startlevel][lv3|||]\nright [startlevel][lvbin0|lvbin1|lvbin0|lvbin0] -> [startlevel][lv4|||]\nright [startlevel][lvbin0|lvbin1|lvbin0|lvbin1] -> [startlevel][lv5|||]\nright [startlevel][lvbin0|lvbin1|lvbin1|lvbin0] -> [startlevel][lv6|||]\nright [startlevel][lvbin0|lvbin1|lvbin1|lvbin1] -> [startlevel][lv7|||]\nright [startlevel][lvbin1|lvbin0|lvbin0|lvbin0] -> [startlevel][lv8|||]\nright [startlevel][lvbin1|lvbin0|lvbin0|lvbin1] -> [startlevel][lv9|||]\nright [startlevel][lvbin1|lvbin0|lvbin1|lvbin0] -> [startlevel][lv10|||]\nright [startlevel][lvbin1|lvbin0|lvbin1|lvbin1] -> [startlevel][lv11|||]\nright [startlevel][lvbin1|lvbin1|lvbin0|lvbin0] -> [startlevel][lv12|||]\nright [startlevel][lvbin1|lvbin1|lvbin0|lvbin1] -> [startlevel][lv13|||]\nright [startlevel][lvbin1|lvbin1|lvbin1|lvbin0] -> [startlevel][lv14|||]\nright [startlevel][lvbin1|lvbin1|lvbin1|lvbin1] -> [startlevel][lv15|||]\n[startlevel] -> []\n\n(move)\n[> player|gem] -> [gem|player]\n\n(drop gems)\n[resume] -> []\n[lv][remnant] -> [lv resume][]\ndown [movable|no object][lv] -> [> movable|][lv resume]\ndown [movable|> movable][lv] -> [> movable|> movable][lv resume]\nlate down [resume][wall0|no object] -> [resume][wall0|random gem] again\nlate down [resume][wall1|no object] -> [resume][wall1|gem1] again\nlate down [resume][wall2|no object] -> [resume][wall2|gem2] again\nlate down [resume][wall3|no object] -> [resume][wall3|gem3] again\nlate down [resume][wall4|no object] -> [resume][wall4|gem4] again\nlate down [resume][wall5|no object] -> [resume][wall5|gem5] again\n\n(pop, with animation)\n[gempop] -> [remnant] again\n[gem1 pop] -> [gem1pop]\n[gem2 pop] -> [gem2pop]\n[gem3 pop] -> [gem3pop]\n[gem4 pop] -> [gem4pop]\n[gem5 pop] -> [gem5pop]\n[gempop] -> again\n\n(win check)\nlate [lv] -> [lv winmarker]\nlate [winmarker][target player] -> [][target player]\nlate [winmarker][target gem] -> [][target gem]\nlate [winmarker][target gem1pop][target gem2pop] -> [][target gem1pop][target gem2pop]\nlate [winmarker][target gem1pop][target gem3pop] -> [][target gem1pop][target gem3pop]\nlate [winmarker][target gem1pop][target gem4pop] -> [][target gem1pop][target gem4pop]\nlate [winmarker][target gem1pop][target gem5pop] -> [][target gem1pop][target gem5pop]\nlate [winmarker][target gem2pop][target gem3pop] -> [][target gem2pop][target gem3pop]\nlate [winmarker][target gem2pop][target gem4pop] -> [][target gem2pop][target gem4pop]\nlate [winmarker][target gem2pop][target gem5pop] -> [][target gem2pop][target gem5pop]\nlate [winmarker][target gem3pop][target gem4pop] -> [][target gem3pop][target gem4pop]\nlate [winmarker][target gem3pop][target gem5pop] -> [][target gem3pop][target gem5pop]\nlate [winmarker][target gem4pop][target gem5pop] -> [][target gem4pop][target gem5pop]\n\n(prepare popping)\nlate [lv no resume][gem1|gem1|gem1] -> [lv][gem1 pop|gem1 pop|gem1 pop]\nlate [lv no resume][gem2|gem2|gem2] -> [lv][gem2 pop|gem2 pop|gem2 pop]\nlate [lv no resume][gem3|gem3|gem3] -> [lv][gem3 pop|gem3 pop|gem3 pop]\nlate [lv no resume][gem4|gem4|gem4] -> [lv][gem4 pop|gem4 pop|gem4 pop]\nlate [lv no resume][gem5|gem5|gem5] -> [lv][gem5 pop|gem5 pop|gem5 pop]\nlate [gem pop] -> again\n\n==============\nWINCONDITIONS\n==============\nsome winmarker\n\n=======\nLEVELS\n=======\nmessage JUST ANOTHER MATCH 3 GAME\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#.....&....#\n#..........#\n#..........#\n#...****...#\n#..........#\n#..........#\n#..........#\n0001########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#....*.....#\n#...****...#\n#....*.....#\n#....*.&...#\n#..........#\n#..........#\n#..........#\n0010########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#.....&....#\n#..........#\n#..........#\n#..******..#\n#..........#\n#..........#\n#..........#\n0011########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#...#*#....#\n#...#*#....#\n#...#*#....#\n#...ppp&...#\n#..........#\n#..........#\n#..........#\n0100########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#.....&....#\n#....qr#...#\n#...***#...#\n#....ppp...#\n#..........#\n#..........#\n#..........#\n0101########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#....***...#\n#..........#\n#......&...#\n#...***....#\n#..........#\n#..........#\n#..........#\n0110########\n\n#pppppppppp#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#...***....#\n#...*&*....#\n#...***....#\n#..........#\n#..........#\n#..........#\n0111########\n\n",[0,1,1,2,2,3,3,0,0,0,0,3,0],"background walls:0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background lv3 walls:1,background wall0:2,background gem1:3,background gem4:4,background gem3:5,background gem2:6,6,3,6,\n6,5,background gem5:7,5,6,4,5,0,2,6,3,5,\n7,6,4,3,7,5,4,5,5,6,5,0,\n2,3,5,7,5,4,6,7,6,7,3,background gem4 target:8,\n6,7,6,0,2,4,7,3,4,4,3,3,\n4,3,7,background gem2 target:9,5,6,6,0,2,4,4,5,\n7,5,4,7,4,6,6,background gem5 target:10,3,4,3,0,\n2,5,7,3,3,6,7,4,3,3,4,9,\n6,4,4,0,2,6,4,4,5,4,background player:11,5,\n3,4,7,8,5,7,7,0,2,5,4,7,\n5,6,5,3,7,7,3,background gem3 target:12,3,4,6,0,\n2,4,5,7,3,4,6,5,4,6,6,4,\n3,7,5,0,2,3,6,6,4,6,6,3,\n7,7,4,5,5,7,3,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,\n",3,"1627778784846.1284"] ], [ `gallery: dharma dojo demake`, - ["(version 1.2.1)\ntitle Dharma Dojo demake\nauthor Metro [cloned by CHz]\nhomepage quiteajolt.com\n\nagain_interval 0.03\nrun_rules_on_level_start\n\n\n========\nOBJECTS\n========\n\nBackground \nGreen \n\nWall \nBrown\n\nCeiling\nBrown\n\n\nPlayer\nBlack\n...00\n..000\n..000\n..0..\n.0...\n\nDeadPlayer\nBlack\n...00\n..000\n..000\n..0..\n.0...\n\nPlayerSmacking\nBlack\n000..\n0000.\n000..\n.0...\n.0...\n\n\nBlock1\nRed\n.000.\n00000\n00000\n00000\n.000.\n\nBlock2\nBlue\n..0..\n.000.\n00000\n.000.\n..0..\n\nBlock3\nYellow\n..0..\n.000.\n.000.\n00000\n00000\n\nBlock4\nWhite\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nBlock5\nDarkBrown\n..0..\n..0..\n00000\n..0..\n..0..\n\nBlock6\nLightBlue\n00000\n00000\n.....\n00000\n00000\n\nBlock7\nOrange\n00.00\n00.00\n00.00\n00.00\n00.00\n\n\nChute\nGray Black\n01110\n01110\n01110\n01110\n01110\n\nFeeder\nGray Black\n01110\n01111\n01111\n01111\n00000\n\nHopper\nGray Black\n00000\n11111\n11111\n11111\n00000\n\n\nSetsToken1\nTransparent\n\nSetsToken2\nTransparent\n\nSetsToken3\nTransparent\n\nSetsToken4\nTransparent\n\nSetsToken5\nTransparent\n\nSetsToken6\nTransparent\n\nSetsToken7\nTransparent\n\nBlockToken\nTransparent\n\nField\nTransparent\n\n\nAssertGravityToken\nTransparent\n\nMatchTokenPositive\nTransparent\n\nMatchTokenNegative\nTransparent\n\nCheckMatchToken\nTransparent\n\n\nDeathCoverSeed1\nTransparent\n\nDeathCoverSeed2\nTransparent\n\nDeathCover1\nRed\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\nDeathCover1Token\nTransparent\n\nDeathCover2\nRed\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nDeathCover2Token\nTransparent\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nx = Ceiling\n\nP = Player\n\n| = Chute\n- = Hopper\n1 = Feeder and SetsToken1\n2 = Feeder and SetsToken1 and SetsToken2\n3 = Feeder and SetsToken1 and SetsToken2 and SetsToken3\n4 = Feeder and SetsToken1 and SetsToken2 and SetsToken3 and SetsToken4\n5 = Feeder and SetsToken1 and SetsToken2 and SetsToken3 and SetsToken4 and SetsToken5\n6 = Feeder and SetsToken1 and SetsToken2 and SetsToken3 and SetsToken4 and SetsToken5 and SetsToken6\n7 = Feeder and SetsToken1 and SetsToken2 and SetsToken3 and SetsToken4 and SetsToken5 and SetsToken6 and SetsToken7\nSetsToken = SetsToken1 or SetsToken2 or SetsToken3 or SetsToken4 or SetsToken5 or SetsToken6 or SetsToken7\n\nF = Field\n\nBlock = Block1 or Block2 or Block3 or Block4 or Block5 or Block6 or Block7\n\nMatchToken = MatchTokenPositive or MatchTokenNegative\n\nDeathCover = DeathCoverSeed1 or DeathCoverSeed2 or DeathCover1 or DeathCover2\nDeathCoverToken = DeathCover1Token or DeathCover2Token\n\n\n=======\nSOUNDS\n=======\n\nsfx0 23301902 (death)\nsfx1 79689507 (smack)\nsfx2 69201902 (clear)\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nCeiling Chute Feeder Hopper\nWall Block Field\nPlayer DeadPlayer PlayerSmacking\nBlockToken AssertGravityToken MatchToken CheckMatchToken DeathCover DeathCoverToken\nSetsToken1\nSetsToken2\nSetsToken3\nSetsToken4\nSetsToken5\nSetsToken6\nSetsToken7\n\n\n======\nRULES \n====== \n\n(================\n LEVEL GENERATION\n ================)\n\n(Randomly splat down N blocks for each requested color, where N is the length of the hopper.)\n[SetsToken1] [Hopper] -> [SetsToken1] [Hopper BlockToken]\nstartloop\nrandom [Field] [BlockToken] [SetsToken1] -> [Block1] [BlockToken] [SetsToken1]\nrandom [Field] [BlockToken] [SetsToken2] -> [Block2] [BlockToken] [SetsToken2]\nrandom [Field] [BlockToken] [SetsToken3] -> [Block3] [BlockToken] [SetsToken3]\nrandom [Field] [BlockToken] [SetsToken4] -> [Block4] [BlockToken] [SetsToken4]\nrandom [Field] [BlockToken] [SetsToken5] -> [Block5] [BlockToken] [SetsToken5]\nrandom [Field] [BlockToken] [SetsToken6] -> [Block6] [BlockToken] [SetsToken6]\nrandom [Field] [BlockToken] [SetsToken7] -> [Block7] [BlockToken] [SetsToken7]\nrandom [BlockToken] -> []\nendloop\n[SetsToken] -> [no SetsToken]\n\n(Shove all the blocks down and then to the left.)\nDOWN [Block | Field] -> [Field | Block]\nRIGHT [Field | Block] -> [Block | Field]\n[Field] -> []\n\n\n(===============\n PLAYER MOVEMENT\n ===============)\n\n(Player can only move up and down, and they'll automatically snap to the end of the row. If the player tries to move into the frame, then cancel the move.)\n[Left Player] -> [Action Player]\nlate RIGHT [no Block no Chute | Player] -> [Player | ]\nlate RIGHT [Player Block | ] -> [Block | Player]\nlate [Player Feeder] -> cancel\nlate [Player Wall] -> cancel\nlate [Player Ceiling] -> cancel\n\n\n(============\n ROW SMACKING\n ============)\n\n(These rules are listed in reverse order so that they can happen sequentially with again statements for animation.)\n\n(4. When the receptacle is full, clear it if it's all the same color or push the stack up if it's mixed.)\nRIGHT [Feeder | MatchToken] [PlayerSmacking] -> [Feeder | MatchToken] [PlayerSmacking CheckMatchToken]\n[MatchTokenNegative] [PlayerSmacking CheckMatchToken] -> [MatchTokenNegative] [PlayerSmacking]\n[PlayerSmacking CheckMatchToken] [Block MatchToken] -> [PlayerSmacking CheckMatchToken] [] sfx2\n[PlayerSmacking CheckMatchToken] -> [Player]\nRIGHT [Feeder | Block MatchToken] -> [Feeder | ^ Block MatchToken]\nRIGHT [^ Block Hopper | Block] -> [^ Block Hopper | ^ Block]\nDOWN [Block | < Block] -> [< Block | < Block]\nDOWN [PlayerSmacking | < Block] -> [< PlayerSmacking | < Block]\nlate [MatchToken no Block] [PlayerSmacking] -> [] [Player] again\nlate [MatchToken no Block] -> [] \n\n(3. Pull the block in the chute to the right when it's at the bottom and check if its color matches the block it's next to.)\nRIGHT [Block no MatchToken | Hopper] -> [> Block no MatchToken | Hopper] again\nlate RIGHT [PlayerSmacking] [Block no MatchToken | Wall] -> [Player] [Block MatchTokenPositive | Wall]\nlate RIGHT [PlayerSmacking] [Block1 no MatchToken | Block1 MatchTokenPositive] -> [Player] [Block1 MatchTokenPositive | Block1 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block2 no MatchToken | Block2 MatchTokenPositive] -> [Player] [Block2 MatchTokenPositive | Block2 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block3 no MatchToken | Block3 MatchTokenPositive] -> [Player] [Block3 MatchTokenPositive | Block3 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block4 no MatchToken | Block4 MatchTokenPositive] -> [Player] [Block4 MatchTokenPositive | Block4 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block5 no MatchToken | Block5 MatchTokenPositive] -> [Player] [Block5 MatchTokenPositive | Block5 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block6 no MatchToken | Block6 MatchTokenPositive] -> [Player] [Block6 MatchTokenPositive | Block6 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block7 no MatchToken | Block7 MatchTokenPositive] -> [Player] [Block7 MatchTokenPositive | Block7 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block no MatchToken | Block MatchToken] -> [Player] [Block MatchTokenNegative | Block MatchToken]\n(When the block is moved into position, control is returned to the player above. But when the hopper is full, we still have stuff to do, so we'll cancel that.)\nlate RIGHT [Player] [Feeder | Block] -> [PlayerSmacking] [Feeder | Block]\n\n(2. Assert gravity: pull the stack and the block in the chute down.)\nDOWN [AssertGravityToken] [Block | no Wall no Hopper] -> [AssertGravityToken] [> Block | ] again\n[AssertGravityToken] -> []\n(The AssertGravityToken rule in the step 1 block below will continue to trigger until the block reaches the bottom left corner, repeating this block.)\n\n(1. Push the row to the left.)\nRIGHT [Block | Action Player] -> [Block | Action PlayerSmacking] sfx1\nRIGHT [Block | Action PlayerSmacking] -> [< Block | Action PlayerSmacking]\nRIGHT [Block | < Block] -> [< Block | < Block]\nlate [Block Chute] [PlayerSmacking] -> [Block Chute] [PlayerSmacking AssertGravityToken] again\n\n\n(=========\n GAME OVER\n =========)\n\n(If a block hits the kill zone at the top, cover the screen with the death overlay and kill the player.)\nrandom [Block Ceiling no DeathCover] -> [Block Ceiling DeathCoverSeed1]\nstartloop\n[Block Ceiling DeathCoverSeed1 | Block Ceiling no DeathCover] -> [Block Ceiling DeathCoverSeed1 | Block Ceiling DeathCoverSeed2]\n[Block Ceiling DeathCoverSeed2 | Block Ceiling no DeathCover] -> [Block Ceiling DeathCoverSeed2 | Block Ceiling DeathCoverSeed1]\nendloop\n[DeathCoverSeed1 | no DeathCover] -> [DeathCoverSeed1 | DeathCover1Token]\n[DeathCoverSeed2 | no DeathCover] -> [DeathCoverSeed2 | DeathCover2Token]\n\n[Player] [DeathCoverToken] -> [DeadPlayer] [DeathCoverToken] sfx0\n[DeathCover1 | no DeathCover] -> [DeathCover1 | DeathCover2Token]\n[DeathCover2 | no DeathCover] -> [DeathCover2 | DeathCover1Token]\nlate [DeathCover1Token] -> [DeathCover1 no DeathCover1Token] again\nlate [DeathCover2Token] -> [DeathCover2 no DeathCover2Token] again\n \n\n==============\nWINCONDITIONS\n==============\n\nNo Block\n\n\n======= \nLEVELS\n=======\n\nmessage Move up and down with the arrows and hammer a row with X.\nmessage Fill the hopper with blocks of the same color to clear them. A mismatched row will be pushed back up into the stack.\nmessage Clear all the blocks to proceed.\n\nxxxxxxx\n|.....#\n|.....#\n|.....#\n|.....#\n|.....#\n|.....#\n|FFFF.#\n|FFFF.#\n|FFFF.#\n|FFFFP#\n4---###\n\nmessage Don't let blocks hit the ceiling!\nmessage Z undoes moves. R will reset with a new puzzle.\n\nxxxxxxxx\n|......#\n|......#\n|FFFFF.#\n|FFFFF.#\n|FFFFF.#\n|FFFFF.#\n|FFFFFP#\n5----###\n\nxxxxxxxxx\n|.......#\n|.......#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFFP#\n6-----###\n\nxxxxxxxxxx\n|........#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFFP#\n7------###\n\nxxxxxxxxx\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFFP#\n4------##\n\nmessage :)\n", [0, 1, 0, 1, 1, 2, 1, 2, 1, 1, 2, 1, 0, 0, 1, 1], "background ceiling:0,background chute:1,1,1,1,1,1,\n1,1,1,1,background feeder:2,0,background:3,\n3,3,3,3,3,background block2:4,background block1:5,\n4,background block4:6,background hopper:7,0,3,3,3,\n3,3,3,background player:8,6,6,5,\n7,0,3,3,3,3,3,\n3,3,3,3,5,7,0,\n3,3,3,3,3,3,3,\n3,3,4,background wall:9,0,3,3,\n3,3,3,3,3,3,3,\n3,9,0,9,9,9,9,\n9,9,9,9,9,9,9,\n", 3, "1627778809256.5396"] + ["(version 1.2.1)\ntitle Dharma Dojo demake\nauthor Metro [cloned by CHz]\nhomepage quiteajolt.com\n\nagain_interval 0.03\nrun_rules_on_level_start\n\n\n========\nOBJECTS\n========\n\nBackground \nGreen \n\nWall \nBrown\n\nCeiling\nBrown\n\n\nPlayer\nBlack\n...00\n..000\n..000\n..0..\n.0...\n\nDeadPlayer\nBlack\n...00\n..000\n..000\n..0..\n.0...\n\nPlayerSmacking\nBlack\n000..\n0000.\n000..\n.0...\n.0...\n\n\nBlock1\nRed\n.000.\n00000\n00000\n00000\n.000.\n\nBlock2\nBlue\n..0..\n.000.\n00000\n.000.\n..0..\n\nBlock3\nYellow\n..0..\n.000.\n.000.\n00000\n00000\n\nBlock4\nWhite\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nBlock5\nDarkBrown\n..0..\n..0..\n00000\n..0..\n..0..\n\nBlock6\nLightBlue\n00000\n00000\n.....\n00000\n00000\n\nBlock7\nOrange\n00.00\n00.00\n00.00\n00.00\n00.00\n\n\nChute\nGray Black\n01110\n01110\n01110\n01110\n01110\n\nFeeder\nGray Black\n01110\n01111\n01111\n01111\n00000\n\nHopper\nGray Black\n00000\n11111\n11111\n11111\n00000\n\n\nSetsToken1\nTransparent\n\nSetsToken2\nTransparent\n\nSetsToken3\nTransparent\n\nSetsToken4\nTransparent\n\nSetsToken5\nTransparent\n\nSetsToken6\nTransparent\n\nSetsToken7\nTransparent\n\nBlockToken\nTransparent\n\nField\nTransparent\n\n\nAssertGravityToken\nTransparent\n\nMatchTokenPositive\nTransparent\n\nMatchTokenNegative\nTransparent\n\nCheckMatchToken\nTransparent\n\n\nDeathCoverSeed1\nTransparent\n\nDeathCoverSeed2\nTransparent\n\nDeathCover1\nRed\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\nDeathCover1Token\nTransparent\n\nDeathCover2\nRed\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nDeathCover2Token\nTransparent\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nx = Ceiling\n\nP = Player\n\n| = Chute\n- = Hopper\n1 = Feeder and SetsToken1\n2 = Feeder and SetsToken1 and SetsToken2\n3 = Feeder and SetsToken1 and SetsToken2 and SetsToken3\n4 = Feeder and SetsToken1 and SetsToken2 and SetsToken3 and SetsToken4\n5 = Feeder and SetsToken1 and SetsToken2 and SetsToken3 and SetsToken4 and SetsToken5\n6 = Feeder and SetsToken1 and SetsToken2 and SetsToken3 and SetsToken4 and SetsToken5 and SetsToken6\n7 = Feeder and SetsToken1 and SetsToken2 and SetsToken3 and SetsToken4 and SetsToken5 and SetsToken6 and SetsToken7\nSetsToken = SetsToken1 or SetsToken2 or SetsToken3 or SetsToken4 or SetsToken5 or SetsToken6 or SetsToken7\n\nF = Field\n\nBlock = Block1 or Block2 or Block3 or Block4 or Block5 or Block6 or Block7\n\nMatchToken = MatchTokenPositive or MatchTokenNegative\n\nDeathCover = DeathCoverSeed1 or DeathCoverSeed2 or DeathCover1 or DeathCover2\nDeathCoverToken = DeathCover1Token or DeathCover2Token\n\n\n=======\nSOUNDS\n=======\n\nsfx0 23301902 (death)\nsfx1 79689507 (smack)\nsfx2 69201902 (clear)\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nCeiling Chute Feeder Hopper\nWall Block Field\nPlayer DeadPlayer PlayerSmacking\nBlockToken AssertGravityToken MatchToken CheckMatchToken DeathCover DeathCoverToken\nSetsToken1\nSetsToken2\nSetsToken3\nSetsToken4\nSetsToken5\nSetsToken6\nSetsToken7\n\n\n======\nRULES \n====== \n\n(================\n LEVEL GENERATION\n ================)\n\n(Randomly splat down N blocks for each requested color, where N is the length of the hopper.)\n[SetsToken1] [Hopper] -> [SetsToken1] [Hopper BlockToken]\nstartloop\nrandom [Field] [BlockToken] [SetsToken1] -> [Block1] [BlockToken] [SetsToken1]\nrandom [Field] [BlockToken] [SetsToken2] -> [Block2] [BlockToken] [SetsToken2]\nrandom [Field] [BlockToken] [SetsToken3] -> [Block3] [BlockToken] [SetsToken3]\nrandom [Field] [BlockToken] [SetsToken4] -> [Block4] [BlockToken] [SetsToken4]\nrandom [Field] [BlockToken] [SetsToken5] -> [Block5] [BlockToken] [SetsToken5]\nrandom [Field] [BlockToken] [SetsToken6] -> [Block6] [BlockToken] [SetsToken6]\nrandom [Field] [BlockToken] [SetsToken7] -> [Block7] [BlockToken] [SetsToken7]\nrandom [BlockToken] -> []\nendloop\n[SetsToken] -> [no SetsToken]\n\n(Shove all the blocks down and then to the left.)\nDOWN [Block | Field] -> [Field | Block]\nRIGHT [Field | Block] -> [Block | Field]\n[Field] -> []\n\n\n(===============\n PLAYER MOVEMENT\n ===============)\n\n(Player can only move up and down, and they'll automatically snap to the end of the row. If the player tries to move into the frame, then cancel the move.)\n[Left Player] -> [Action Player]\nlate RIGHT [no Block no Chute | Player] -> [Player | ]\nlate RIGHT [Player Block | ] -> [Block | Player]\nlate [Player Feeder] -> cancel\nlate [Player Wall] -> cancel\nlate [Player Ceiling] -> cancel\n\n\n(============\n ROW SMACKING\n ============)\n\n(These rules are listed in reverse order so that they can happen sequentially with again statements for animation.)\n\n(4. When the receptacle is full, clear it if it's all the same color or push the stack up if it's mixed.)\nRIGHT [Feeder | MatchToken] [PlayerSmacking] -> [Feeder | MatchToken] [PlayerSmacking CheckMatchToken]\n[MatchTokenNegative] [PlayerSmacking CheckMatchToken] -> [MatchTokenNegative] [PlayerSmacking]\n[PlayerSmacking CheckMatchToken] [Block MatchToken] -> [PlayerSmacking CheckMatchToken] [] sfx2\n[PlayerSmacking CheckMatchToken] -> [Player]\nRIGHT [Feeder | Block MatchToken] -> [Feeder | ^ Block MatchToken]\nRIGHT [^ Block Hopper | Block] -> [^ Block Hopper | ^ Block]\nDOWN [Block | < Block] -> [< Block | < Block]\nDOWN [PlayerSmacking | < Block] -> [< PlayerSmacking | < Block]\nlate [MatchToken no Block] [PlayerSmacking] -> [] [Player] again\nlate [MatchToken no Block] -> [] \n\n(3. Pull the block in the chute to the right when it's at the bottom and check if its color matches the block it's next to.)\nRIGHT [Block no MatchToken | Hopper] -> [> Block no MatchToken | Hopper] again\nlate RIGHT [PlayerSmacking] [Block no MatchToken | Wall] -> [Player] [Block MatchTokenPositive | Wall]\nlate RIGHT [PlayerSmacking] [Block1 no MatchToken | Block1 MatchTokenPositive] -> [Player] [Block1 MatchTokenPositive | Block1 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block2 no MatchToken | Block2 MatchTokenPositive] -> [Player] [Block2 MatchTokenPositive | Block2 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block3 no MatchToken | Block3 MatchTokenPositive] -> [Player] [Block3 MatchTokenPositive | Block3 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block4 no MatchToken | Block4 MatchTokenPositive] -> [Player] [Block4 MatchTokenPositive | Block4 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block5 no MatchToken | Block5 MatchTokenPositive] -> [Player] [Block5 MatchTokenPositive | Block5 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block6 no MatchToken | Block6 MatchTokenPositive] -> [Player] [Block6 MatchTokenPositive | Block6 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block7 no MatchToken | Block7 MatchTokenPositive] -> [Player] [Block7 MatchTokenPositive | Block7 MatchTokenPositive]\nlate RIGHT [PlayerSmacking] [Block no MatchToken | Block MatchToken] -> [Player] [Block MatchTokenNegative | Block MatchToken]\n(When the block is moved into position, control is returned to the player above. But when the hopper is full, we still have stuff to do, so we'll cancel that.)\nlate RIGHT [Player] [Feeder | Block] -> [PlayerSmacking] [Feeder | Block]\n\n(2. Assert gravity: pull the stack and the block in the chute down.)\nDOWN [AssertGravityToken] [Block | no Wall no Hopper] -> [AssertGravityToken] [> Block | ] again\n[AssertGravityToken] -> []\n(The AssertGravityToken rule in the step 1 block below will continue to trigger until the block reaches the bottom left corner, repeating this block.)\n\n(1. Push the row to the left.)\nRIGHT [Block | Action Player] -> [Block | Action PlayerSmacking] sfx1\nRIGHT [Block | Action PlayerSmacking] -> [< Block | Action PlayerSmacking]\nRIGHT [Block | < Block] -> [< Block | < Block]\nlate [Block Chute] [PlayerSmacking] -> [Block Chute] [PlayerSmacking AssertGravityToken] again\n\n\n(=========\n GAME OVER\n =========)\n\n(If a block hits the kill zone at the top, cover the screen with the death overlay and kill the player.)\nrandom [Block Ceiling no DeathCover] -> [Block Ceiling DeathCoverSeed1]\nstartloop\n[Block Ceiling DeathCoverSeed1 | Block Ceiling no DeathCover] -> [Block Ceiling DeathCoverSeed1 | Block Ceiling DeathCoverSeed2]\n[Block Ceiling DeathCoverSeed2 | Block Ceiling no DeathCover] -> [Block Ceiling DeathCoverSeed2 | Block Ceiling DeathCoverSeed1]\nendloop\n[DeathCoverSeed1 | no DeathCover] -> [DeathCoverSeed1 | DeathCover1Token]\n[DeathCoverSeed2 | no DeathCover] -> [DeathCoverSeed2 | DeathCover2Token]\n\n[Player] [DeathCoverToken] -> [DeadPlayer] [DeathCoverToken] sfx0\n[DeathCover1 | no DeathCover] -> [DeathCover1 | DeathCover2Token]\n[DeathCover2 | no DeathCover] -> [DeathCover2 | DeathCover1Token]\nlate [DeathCover1Token] -> [DeathCover1 no DeathCover1Token] again\nlate [DeathCover2Token] -> [DeathCover2 no DeathCover2Token] again\n \n\n==============\nWINCONDITIONS\n==============\n\nNo Block\n\n\n======= \nLEVELS\n=======\n\nmessage Move up and down with the arrows and hammer a row with X.\nmessage Fill the hopper with blocks of the same color to clear them. A mismatched row will be pushed back up into the stack.\nmessage Clear all the blocks to proceed.\n\nxxxxxxx\n|.....#\n|.....#\n|.....#\n|.....#\n|.....#\n|.....#\n|FFFF.#\n|FFFF.#\n|FFFF.#\n|FFFFP#\n4---###\n\nmessage Don't let blocks hit the ceiling!\nmessage Z undoes moves. R will reset with a new puzzle.\n\nxxxxxxxx\n|......#\n|......#\n|FFFFF.#\n|FFFFF.#\n|FFFFF.#\n|FFFFF.#\n|FFFFFP#\n5----###\n\nxxxxxxxxx\n|.......#\n|.......#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFFP#\n6-----###\n\nxxxxxxxxxx\n|........#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFF.#\n|FFFFFFFP#\n7------###\n\nxxxxxxxxx\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFF.#\n|FFFFFFP#\n4------##\n\nmessage :)\n",[0,1,0,1,1,2,1,2,1,1,2,1,0,0,1,1],"background ceiling:0,background chute:1,1,1,1,1,1,\n1,1,1,1,background feeder:2,0,background:3,\n3,3,3,3,3,background block2:4,background block1:5,\n4,background block4:6,background hopper:7,0,3,3,3,\n3,3,3,background player:8,6,6,5,\n7,0,3,3,3,3,3,\n3,3,3,3,5,7,0,\n3,3,3,3,3,3,3,\n3,3,4,background wall:9,0,3,3,\n3,3,3,3,3,3,3,\n3,9,0,9,9,9,9,\n9,9,9,9,9,9,9,\n",3,"1627778809256.5396"] ], [ `gallery: vines`, - ["title Vines\nauthor Stefan Peeters\n\nrealtime_interval .1\n\nzoomscreen 11x9\n\n(verbose_logging)\nrun_rules_on_level_start\nnoaction\n\n========\nOBJECTS\n========\n\nBackground \n#404040\n\nTarget\ntransparent\n\nVineUpEnd\nGreen darkgreen\n.....\n..1..\n.10..\n..1..\n..01.\n\nVineLeftEnd\nGreen darkgreen\n.....\n...0.\n..111\n.....\n.....\n\nVineRightEnd\nGreen darkgreen\n.....\n.0...\n011..\n.....\n.....\n\nVineLeftUp\nGreen darkgreen\n..1..\n.10..\n..011\n..1..\n.....\n\nVineRightUp\nGreen darkgreen\n..1..\n..1..\n1101.\n.1...\n.....\n\nVineUpUp\nGreen darkgreen\n.11..\n..01.\n..1..\n.10..\n..1..\n\nVineUpLeft\nGreen darkgreen\n.....\n.1...\n101..\n..01.\n..1..\n\nVineUpRight\nGreen darkgreen\n.....\n...1.\n..101\n.10.0\n..1..\n\nLadder\nlightbrown brown\n0...0\n0...0\n01110\n0...0\n01110\n\nPlatform\nBROWN\n00000\n.....\n.....\n.....\n.....\n\nWall\n#4d2700 #663300 #804100\n00000\n11111\n22222\n00000\n11111\n\nGlass\nWhite LightBlue\n00010\n1...0\n0...1\n0...0\n00101\n\nPlayer \nRed Brown Blue\n.000.\n.111.\n12021\n.222.\n.2.2.\n\nBox\nBROWN darkbrown lightBrown\n00000\n02110\n01210\n01120\n00000\n\nDirt\nBrown\n\nlightSource\ntransparent\n\nLightRight\nyellow\n00000\n.0000\n..000\n...00\n....0\n\nLightRightDown\nyellow\n0....\n00...\n000..\n0000.\n00000\n\nLightLeft\nyellow\n00000\n0000.\n000..\n00...\n0....\n\nLightLeftDown\nyellow\n....0\n...00\n..000\n.0000\n00000\n\nPot\nbrown\n00000\n00000\n.000.\n.000.\n.000.\n\nCheck\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n| = VineUpEnd\nH = Ladder\nT = Ladder and Platform\n_ = platform\nW = Wall\nD = Dirt\nB = Box\nP = Player\nO = Target\nG = Glass\nL = lightSource\nE = Glass and LightSource\nU = Pot\nC = Check\n\nVineEnd = VineLeftEnd or VineRightEnd or VineUpEnd\nVine = VineEnd or VineLeftUp or VineRightUp or VineUpUp or VineUpLeft or VineUpRight\n\nLight = LightRight or LightRightDown or LightLeft or LightLeftDown\nLightBlocker = Box or Wall\nVineBlocker = Box or Wall or Glass or Vine\n\nPushAble = Box\nClimable = Vine or Ladder\nFallAble = Box\nFloor = Wall or Platform or Player or Box\n\n=======\nSOUNDS\n=======\n\nBox move 67547707\nPlayer move horizontal 5015507\nplayer move vertical 54490507\n\nSfx0 85068307\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nLightSource\nLightRight\nLightRightDown\nLightLeft\nLightLeftDown\nTarget\nVine\nLadder\nPlatform\nCheck\nPlayer,Box, Wall, Glass, Dirt, Pot\n\n======\nRULES \n======\n\n[Player Check] -> [Player] checkpoint\n\n(Movement)\n[up Player no Climable] -> [Player]\nup [> Player Climable no Floor|no Climable] -> [Player Climable|]\ndown [> Player|Floor no Climable] -> [Player|Floor]\n\nhorizontal [> Player | PushAble] -> [> Player|> PushAble]\n\n(Gravity)\ndown [stationary Player no Climable | no Floor] -> [> Player|]\ndown [stationary FallAble | no Floor] -> [> FallAble|]\nlate down [Player no Climable | no Floor] -> again\nlate down [FallAble | no Floor] -> again\n\n(Light creation)\nlate right [LightSource no LightBlocker no LightRightDown] -> [LightSource LightRightDown]\n+ late right [LightRight|no LightRightDown no LightBlocker] -> [LightRight|LightRightDown] again\n+ late down [LightRightDown|no LightRight no LightBlocker] -> [LightRightDown|LightRight] again\n+ late left [LightLeft|no LightLeftDown no LightBlocker] -> [LightLeft|LightLeftDown] again\n+ late down [LightLeftDown|no LightLeft no LightBlocker] -> [LightLeftDown|LightLeft] again\n\n(Light removal)\nlate right [LightBlocker Light] -> [LightBlocker]\n+ late right [no LightRight|LightRightDown no lightSource] -> [|]\n+ late down [no LightRightDown|LightRight] -> [|]\n+ late left [no LightLeft|LightLeftDown] -> [|]\n+ late down [no LightLeftDown|LightLeft] -> [|]\n\n(Vine growth)\n\nup [VineEnd|Light no VineBlocker] -> [> VineEnd|Light] again Sfx0\nhorizontal [stationary VineUpEnd|Light no VineBlocker] -> [> VineUpEnd|Light] again Sfx0\n\nup [> VineUpEnd|] -> [VineUpUp | VineUpEnd]\nup [> VineLeftEnd|] -> [VineLeftUp | VineUpEnd]\nup [> VineRightEnd|] -> [VineRightUp| VineUpEnd]\n\nright [> VineUpEnd|] -> [VineUpRight| VineRightEnd]\nleft [> VineUpEnd|] -> [VineUpLeft | VineLeftEnd]\n\n==============\nWINCONDITIONS\n==============\n\nAll Player on Target\n\n======= \nLEVELS\n=======\n\nlllllllllll\nl..........\nl..........\nl..........\nl..........\nl..........\nl..........\nlooo.......\nl...ooooooo\nl...______w\nw.........g\ne..b......g\ne_________g\ne..b......g\ne__gt.....w\ne...h.....w\ne...h.w__ww\ne...h.g...g\ne...h.g..|g\ne...h....uw\ne.b.h.wwwww\nw.b.h.....w\nww__t.....g\nww..h.....g\ne...h.....g\ne.c.h.....w\ne_________w\ne.........w\ne.b......|w\ne.____twwdw\ne..gc.h.www\nw..g___.www\nw___.....ww\nww........w\nwww..b....w\nwww_t_____w\nwwwwh.|.p.w\nwwwwwddddww\n\nMessage \"Finally, out of the factory\"\n\n\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", 3, "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", 1, "tick", "tick", 0, "tick", "tick", 0, "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background lightrightdown lightsource:0,background lightright lightrightdown lightsource:1,1,1,1,1,1,1,1,1,background wall:2,\nbackground glass lightrightdown lightsource:3,background glass lightright lightrightdown lightsource:4,4,4,4,4,4,4,4,4,2,\n2,2,3,4,4,4,4,4,4,2,2,\n2,2,2,2,2,0,background lightright lightrightdown:5,5,5,5,5,\n5,background lightright lightrightdown target:6,5,5,background lightright:7,background:8,background lightrightdown platform:9,5,background lightright lightrightdown platform:10,5,5,\n5,5,5,5,7,2,2,8,background lightrightdown:11,10,5,\n5,5,5,7,background platform:12,2,2,2,2,2,0,\n5,5,5,5,5,5,6,5,5,5,7,\n12,11,10,5,5,5,5,5,background box:13,13,12,\n8,8,background check:14,9,5,13,9,5,5,background lightright platform:15,8,\n2,2,2,2,0,5,5,5,5,5,5,\n6,5,5,5,13,12,13,background glass lightrightdown:16,5,5,5,\n5,5,7,8,12,8,8,8,12,11,7,\n12,16,background glass lightright lightrightdown:17,10,7,8,12,2,2,0,5,\n5,5,5,5,5,5,6,10,5,7,12,\n8,background ladder platform:18,background ladder lightrightdown:19,background ladder lightright lightrightdown:20,20,20,20,20,background ladder lightright:21,18,background ladder:22,\n22,22,12,8,11,15,14,background lightrightdown platform vineupend:23,background lightright lightrightdown vineleftup:24,5,7,\n18,22,2,0,5,5,5,5,5,5,5,\n6,10,5,5,15,8,8,8,11,5,5,\n5,5,5,7,8,8,8,12,8,8,9,\n7,12,background lightrightdown vineupleft:25,background lightright lightrightdown vineupup:26,background lightright lightrightdown player vineupup:27,background lightright platform vineleftup:28,8,background dirt:29,0,5,5,\n5,5,5,5,5,6,10,5,5,10,7,\n8,8,2,16,17,5,2,11,5,7,8,\n8,12,8,8,18,19,15,8,11,13,background lightrightdown platform vineupleft:30,\nbackground lightright vineupup:31,29,0,5,5,5,5,5,5,5,6,\n10,5,5,10,5,7,8,12,8,11,5,\n2,8,11,5,7,8,12,8,8,2,8,\n11,7,8,8,12,11,background dirt lightright:32,0,5,5,5,\n5,5,5,5,6,10,5,5,10,5,5,\n7,12,8,8,11,2,8,8,11,5,7,\n12,8,8,2,2,2,11,7,8,12,8,\nbackground dirt lightrightdown:33,0,5,5,5,5,5,5,5,6,10,\n5,5,10,5,5,5,2,8,background vineupend:34,background pot:35,2,\n8,8,8,11,5,15,8,34,29,2,2,\n2,11,7,12,8,2,0,5,5,5,5,\n5,5,5,6,2,16,17,17,17,2,2,\n2,background glass:36,36,2,2,2,36,36,36,2,2,\n2,2,2,2,2,2,2,2,2,2,2,\n", 0, "1627778846524.428"] + ["title Vines\nauthor Stefan Peeters\n\nrealtime_interval .1\n\nzoomscreen 11x9\n\n(verbose_logging)\nrun_rules_on_level_start\nnoaction\n\n========\nOBJECTS\n========\n\nBackground \n#404040\n\nTarget\ntransparent\n\nVineUpEnd\nGreen darkgreen\n.....\n..1..\n.10..\n..1..\n..01.\n\nVineLeftEnd\nGreen darkgreen\n.....\n...0.\n..111\n.....\n.....\n\nVineRightEnd\nGreen darkgreen\n.....\n.0...\n011..\n.....\n.....\n\nVineLeftUp\nGreen darkgreen\n..1..\n.10..\n..011\n..1..\n.....\n\nVineRightUp\nGreen darkgreen\n..1..\n..1..\n1101.\n.1...\n.....\n\nVineUpUp\nGreen darkgreen\n.11..\n..01.\n..1..\n.10..\n..1..\n\nVineUpLeft\nGreen darkgreen\n.....\n.1...\n101..\n..01.\n..1..\n\nVineUpRight\nGreen darkgreen\n.....\n...1.\n..101\n.10.0\n..1..\n\nLadder\nlightbrown brown\n0...0\n0...0\n01110\n0...0\n01110\n\nPlatform\nBROWN\n00000\n.....\n.....\n.....\n.....\n\nWall\n#4d2700 #663300 #804100\n00000\n11111\n22222\n00000\n11111\n\nGlass\nWhite LightBlue\n00010\n1...0\n0...1\n0...0\n00101\n\nPlayer \nRed Brown Blue\n.000.\n.111.\n12021\n.222.\n.2.2.\n\nBox\nBROWN darkbrown lightBrown\n00000\n02110\n01210\n01120\n00000\n\nDirt\nBrown\n\nlightSource\ntransparent\n\nLightRight\nyellow\n00000\n.0000\n..000\n...00\n....0\n\nLightRightDown\nyellow\n0....\n00...\n000..\n0000.\n00000\n\nLightLeft\nyellow\n00000\n0000.\n000..\n00...\n0....\n\nLightLeftDown\nyellow\n....0\n...00\n..000\n.0000\n00000\n\nPot\nbrown\n00000\n00000\n.000.\n.000.\n.000.\n\nCheck\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n| = VineUpEnd\nH = Ladder\nT = Ladder and Platform\n_ = platform\nW = Wall\nD = Dirt\nB = Box\nP = Player\nO = Target\nG = Glass\nL = lightSource\nE = Glass and LightSource\nU = Pot\nC = Check\n\nVineEnd = VineLeftEnd or VineRightEnd or VineUpEnd\nVine = VineEnd or VineLeftUp or VineRightUp or VineUpUp or VineUpLeft or VineUpRight\n\nLight = LightRight or LightRightDown or LightLeft or LightLeftDown\nLightBlocker = Box or Wall\nVineBlocker = Box or Wall or Glass or Vine\n\nPushAble = Box\nClimable = Vine or Ladder\nFallAble = Box\nFloor = Wall or Platform or Player or Box\n\n=======\nSOUNDS\n=======\n\nBox move 67547707\nPlayer move horizontal 5015507\nplayer move vertical 54490507\n\nSfx0 85068307\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nLightSource\nLightRight\nLightRightDown\nLightLeft\nLightLeftDown\nTarget\nVine\nLadder\nPlatform\nCheck\nPlayer,Box, Wall, Glass, Dirt, Pot\n\n======\nRULES \n======\n\n[Player Check] -> [Player] checkpoint\n\n(Movement)\n[up Player no Climable] -> [Player]\nup [> Player Climable no Floor|no Climable] -> [Player Climable|]\ndown [> Player|Floor no Climable] -> [Player|Floor]\n\nhorizontal [> Player | PushAble] -> [> Player|> PushAble]\n\n(Gravity)\ndown [stationary Player no Climable | no Floor] -> [> Player|]\ndown [stationary FallAble | no Floor] -> [> FallAble|]\nlate down [Player no Climable | no Floor] -> again\nlate down [FallAble | no Floor] -> again\n\n(Light creation)\nlate right [LightSource no LightBlocker no LightRightDown] -> [LightSource LightRightDown]\n+ late right [LightRight|no LightRightDown no LightBlocker] -> [LightRight|LightRightDown] again\n+ late down [LightRightDown|no LightRight no LightBlocker] -> [LightRightDown|LightRight] again\n+ late left [LightLeft|no LightLeftDown no LightBlocker] -> [LightLeft|LightLeftDown] again\n+ late down [LightLeftDown|no LightLeft no LightBlocker] -> [LightLeftDown|LightLeft] again\n\n(Light removal)\nlate right [LightBlocker Light] -> [LightBlocker]\n+ late right [no LightRight|LightRightDown no lightSource] -> [|]\n+ late down [no LightRightDown|LightRight] -> [|]\n+ late left [no LightLeft|LightLeftDown] -> [|]\n+ late down [no LightLeftDown|LightLeft] -> [|]\n\n(Vine growth)\n\nup [VineEnd|Light no VineBlocker] -> [> VineEnd|Light] again Sfx0\nhorizontal [stationary VineUpEnd|Light no VineBlocker] -> [> VineUpEnd|Light] again Sfx0\n\nup [> VineUpEnd|] -> [VineUpUp | VineUpEnd]\nup [> VineLeftEnd|] -> [VineLeftUp | VineUpEnd]\nup [> VineRightEnd|] -> [VineRightUp| VineUpEnd]\n\nright [> VineUpEnd|] -> [VineUpRight| VineRightEnd]\nleft [> VineUpEnd|] -> [VineUpLeft | VineLeftEnd]\n\n==============\nWINCONDITIONS\n==============\n\nAll Player on Target\n\n======= \nLEVELS\n=======\n\nlllllllllll\nl..........\nl..........\nl..........\nl..........\nl..........\nl..........\nlooo.......\nl...ooooooo\nl...______w\nw.........g\ne..b......g\ne_________g\ne..b......g\ne__gt.....w\ne...h.....w\ne...h.w__ww\ne...h.g...g\ne...h.g..|g\ne...h....uw\ne.b.h.wwwww\nw.b.h.....w\nww__t.....g\nww..h.....g\ne...h.....g\ne.c.h.....w\ne_________w\ne.........w\ne.b......|w\ne.____twwdw\ne..gc.h.www\nw..g___.www\nw___.....ww\nww........w\nwww..b....w\nwww_t_____w\nwwwwh.|.p.w\nwwwwwddddww\n\nMessage \"Finally, out of the factory\"\n\n\n",["tick","tick","tick","tick","tick","tick","tick",1,"tick","tick",1,"tick","tick","tick",1,"tick","tick",3,"tick","tick",0,"tick","tick","tick","tick","tick","tick",1,"tick",1,"tick","tick",0,"tick","tick",0,"tick","tick",3,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background lightrightdown lightsource:0,background lightright lightrightdown lightsource:1,1,1,1,1,1,1,1,1,background wall:2,\nbackground glass lightrightdown lightsource:3,background glass lightright lightrightdown lightsource:4,4,4,4,4,4,4,4,4,2,\n2,2,3,4,4,4,4,4,4,2,2,\n2,2,2,2,2,0,background lightright lightrightdown:5,5,5,5,5,\n5,background lightright lightrightdown target:6,5,5,background lightright:7,background:8,background lightrightdown platform:9,5,background lightright lightrightdown platform:10,5,5,\n5,5,5,5,7,2,2,8,background lightrightdown:11,10,5,\n5,5,5,7,background platform:12,2,2,2,2,2,0,\n5,5,5,5,5,5,6,5,5,5,7,\n12,11,10,5,5,5,5,5,background box:13,13,12,\n8,8,background check:14,9,5,13,9,5,5,background lightright platform:15,8,\n2,2,2,2,0,5,5,5,5,5,5,\n6,5,5,5,13,12,13,background glass lightrightdown:16,5,5,5,\n5,5,7,8,12,8,8,8,12,11,7,\n12,16,background glass lightright lightrightdown:17,10,7,8,12,2,2,0,5,\n5,5,5,5,5,5,6,10,5,7,12,\n8,background ladder platform:18,background ladder lightrightdown:19,background ladder lightright lightrightdown:20,20,20,20,20,background ladder lightright:21,18,background ladder:22,\n22,22,12,8,11,15,14,background lightrightdown platform vineupend:23,background lightright lightrightdown vineleftup:24,5,7,\n18,22,2,0,5,5,5,5,5,5,5,\n6,10,5,5,15,8,8,8,11,5,5,\n5,5,5,7,8,8,8,12,8,8,9,\n7,12,background lightrightdown vineupleft:25,background lightright lightrightdown vineupup:26,background lightright lightrightdown player vineupup:27,background lightright platform vineleftup:28,8,background dirt:29,0,5,5,\n5,5,5,5,5,6,10,5,5,10,7,\n8,8,2,16,17,5,2,11,5,7,8,\n8,12,8,8,18,19,15,8,11,13,background lightrightdown platform vineupleft:30,\nbackground lightright vineupup:31,29,0,5,5,5,5,5,5,5,6,\n10,5,5,10,5,7,8,12,8,11,5,\n2,8,11,5,7,8,12,8,8,2,8,\n11,7,8,8,12,11,background dirt lightright:32,0,5,5,5,\n5,5,5,5,6,10,5,5,10,5,5,\n7,12,8,8,11,2,8,8,11,5,7,\n12,8,8,2,2,2,11,7,8,12,8,\nbackground dirt lightrightdown:33,0,5,5,5,5,5,5,5,6,10,\n5,5,10,5,5,5,2,8,background vineupend:34,background pot:35,2,\n8,8,8,11,5,15,8,34,29,2,2,\n2,11,7,12,8,2,0,5,5,5,5,\n5,5,5,6,2,16,17,17,17,2,2,\n2,background glass:36,36,2,2,2,36,36,36,2,2,\n2,2,2,2,2,2,2,2,2,2,2,\n",0,"1627778846524.428"] ], [ `gallery: unconventional guns`, - ["title Unconventional Guns\nauthor rectangular Tim\n\n(run_rules_on_level_start)\nbackground_color darkblue\nagain_interval 0.07\nkey_repeat_interval 0.15\n(verbose_logging)\n\nhomepage http://ludumdare.com/compo/ludum-dare-32/?action=preview&uid=39396\n\n========\nOBJECTS\n========\n\nBackground\nlightGray\n\nGun\nBlack\n.....\n.....\n.000.\n.0...\n.....\n\nPlayerU\nBlue LightRed Brown White\n.222.\n.222.\n10001\n.000.\n.2.2.\n\nPlayerD\nBlue LightRed Brown White\n.222.\n.313.\n10001\n.000.\n.2.2.\n\nPlayerL\nBlue LightRed Brown White\n.222.\n.312.\n.010.\n.000.\n..22.\n\nPlayerR\nBlue LightRed Brown White\n.222.\n.213.\n.010.\n.000.\n.22..\n\nZombiePlayerU\nBlue Green Brown Red\n.222.\n.222.\n10001\n.000.\n.2.2.\n\nZombiePlayerD\nBlue Green Brown Red\n.222.\n.313.\n10001\n.000.\n.2.2.\n\nZombiePlayerL\nBlue Green Brown Red\n.222.\n.312.\n.010.\n.000.\n..22.\n\nZombiePlayerR\nBlue Green Brown Red\n.222.\n.213.\n.010.\n.000.\n.22..\n\nZombieAsleep\nDarkRed Green Black Red\n.222.\n.111.\n10001\n.000.\n.2.2.\n\nZombieAwake\nDarkRed Green Black Red\n.222.\n.313.\n10001\n.000.\n.2.2.\n\nWerewolf\nBrown Black\n.000.\n.101.\n00000\n.000.\n.0.0.\n\nSnakeHeadU\nLightGreen Green White\n.000.\n12021\n11011\n11011\n.101.\n\nSnakeHeadD\nLightGreen Green White Black\n.101.\n12021\n10001\n13331\n.111.\n\nSnakeHeadL\nLightGreen Green White\n000..\n.1200\n..111\n.1111\n111..\n\nSnakeHeadR\nLightGreen Green White\n..000\n0021.\n111..\n1111.\n..111\n\nSnakeU\nLightGreen Green\n.101.\n.101.\n.....\n.....\n.....\n\nSnakeD\nLightGreen Green\n.....\n.....\n.101.\n.101.\n.101.\n\nSnakeL\nLightGreen Green\n.....\n000..\n111..\n111..\n.....\n\nSnakeR\nLightGreen Green\n.....\n..000\n..111\n..111\n.....\n\nWater\nBlue lightBlue\n10000\n00000\n00010\n00000\n00100\n\nFloodingR\nBlue lightBlue\n100..\n000..\n000..\n000..\n001..\n\nFloodingL\nBlue lightBlue\n..000\n..000\n..010\n..000\n..100\n\nFloodingU\nBlue lightBlue\n.....\n.....\n00010\n00000\n00100\n\nFloodingD\nBlue lightBlue\n10000\n00000\n00010\n.....\n.....\n\nWaterDrown0\nBlue #000033 lightBlue\n21110\n01110\n11111\n01110\n01210\n\nWaterDrown1\nBlue #000066 lightBlue\n21110\n01110\n11111\n01110\n01210\n\nWaterSinking0\n#000044 lightBlue\n10000\n00000\n00010\n00000\n00100\n\nWaterSinking1\n#000088 lightBlue\n10000\n00000\n00010\n00000\n00100\n\nWaterSinking2\nBlue lightBlue #000088\n10000\n02220\n02210\n02220\n00100\n\nWaterSinking3\nBlue lightBlue #0000BB\n10000\n02220\n02210\n02220\n00100\n\nWaterSinking4\nBlue lightBlue #0000BB\n10000\n00000\n00210\n00000\n00100\n\nCrate\nBrown Orange LightBrown\n12221\n20002\n20002\n20002\n12221\n\nWall\ndarkblue\n\nWallL\nBlack\n0....\n0....\n0....\n0....\n0....\n\nWallR\nBlack\n....0\n....0\n....0\n....0\n....0\n\nWallU\nBlack\n00000\n.....\n.....\n.....\n.....\n\nWallD\nBlack\n.....\n.....\n.....\n.....\n00000\n\nDigit0\nWhite\n..00.\n.0..0\n.0..0\n.0..0\n..00.\n\nDigit1\nWhite\n...0.\n..00.\n...0.\n...0.\n..000\n\nDigit2\nWhite\n..00.\n.0..0\n...0.\n..0..\n.0000\n\nDigit3\nWhite\n.000.\n....0\n..00.\n....0\n.000.\n\nDigit4\nWhite\n...0.\n..0..\n.0.0.\n.0000\n...0.\n\nDigit5\nWhite\n.0000\n.0...\n.000.\n....0\n.000.\n\nDigit6\nWhite\n..00.\n.0...\n.000.\n.0..0\n..00.\n\nDigit7\nWhite\n.0000\n....0\n...0.\n..0..\n.0...\n\nDigit8\nWhite\n..00.\n.0..0\n..00.\n.0..0\n..00.\n\nDigit9\nWhite\n..00.\n.0..0\n..000\n....0\n..00.\n\npreviousHead\ntransparent\n\npreviousCollision\ntransparent\n\nCollider\ntransparent\n\nGoU\ntransparent\n\nGoD\ntransparent\n\nGoL\ntransparent\n\nGoR\ntransparent\n\nVision\ntransparent\n\nLoLevelTarget\ntransparent\n\nHiLevelTarget\ntransparent\n\nSnakeGun\ntransparent\n\nWaterGun\ntransparent\n\ncanMove\ntransparent\n\nrecoil\ntransparent\n\npreviousPosition\ntransparent\n\nWinning\ntransparent\n\nCover\ndarkblue\n\nq\nBlack\n0....\n0....\n.0...\n..0..\n...00\n\ni\nBlack\n00...\n..0..\n...0.\n....0\n....0\n\ne\nBlack\n00000\n.....\n.....\n.....\n.....\n\nr\nBlack\n0....\n0....\n0....\n0....\n0....\n\nt\nBlack\n...00\n.00..\n.0...\n0....\n0....\n\ny\nBlack\n....0\n....0\n...0.\n..00.\n00...\n\nx\nGray\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nu\nGray\n.....\n..0..\n.000.\n0.0.0\n..0..\n\nl\nGray\n...0.\n..0..\n.0000\n..0..\n...0.\n\n=======\nLEGEND\n=======\n\nWallOutline = WallU or WallD or WallL or WallR\n\nAnyDigit = Digit0 or Digit1 or Digit2 or Digit3 or Digit4 or Digit5 or Digit6 or Digit7 or Digit8 or Digit9\n\nPlayer = PlayerU or PlayerD or PlayerL or PlayerR\nZombiePlayer = ZombiePlayerU or ZombiePlayerD or ZombiePlayerL or ZombiePlayerR\nAnyPlayer = Player or ZombiePlayer\nZombie = ZombieAwake or ZombieAsleep or ZombiePlayer\nMonster = Zombie or Werewolf\n\nSnakeHead = SnakeHeadU or SnakeHeadD or SnakeHeadL or SnakeHeadR\nSnakeBody = SnakeU or SnakeD or SnakeL or SnakeR\nSnake = SnakeHead or SnakeBody\n\nSnakeFood = AnyPlayer or Zombie or Werewolf\nWerewolfFood = AnyPlayer or Zombie\n\nWaterBlocker = Snake or Wall\nDrownable = Player or Werewolf\nSinking = WaterDrown0 or WaterDrown1 or WaterSinking0 or WaterSinking1 or WaterSinking2 or WaterSinking3 or WaterSinking4\nFlooding = FloodingU or FloodingD or FloodingL or FloodingR\nAnyWater = Water or Sinking\n\nAnimation = Flooding or Sinking\n\nNoSnakeBody = AnyPlayer or Zombie or Werewolf or Crate or Wall or SnakeHead\nObstacle = AnyPlayer or Zombie or Werewolf or Crate or Wall or SnakeHead or Collider\nDirection = GoU or GoD or GoL or GoR\n\nPushable = Crate or Zombie\nPusher = Player or SnakeHead or Pushable\n\nLines = q or i or e or r or t or y\nDecoration = Gun or Lines or x or u or l\n\nTarget = LoLevelTarget or HiLevelTarget\n\n. = Background\n# = Wall\n~ = Water\np = PlayerD and canMove\ns = PlayerD and SnakeGun and canMove\no = PlayerD and WaterGun and canMove\nz = ZombieAsleep\nw = Werewolf\ng = Gun\nc = Crate\n\" = PlayerD and Cover\n\n0 = Wall and Digit0\n1 = Wall and Digit1\n2 = Wall and Digit2\n3 = Wall and Digit3\n4 = Wall and Digit4\n5 = Wall and Digit5\n6 = Wall and Digit6\n7 = Wall and Digit7\n8 = Wall and Digit8\n9 = Wall and Digit9\n\n=======\nSOUNDS\n=======\n\nPlayer Move 23783707\nPlayer Create 23783707\nWerewolf Move 23783707\nsfx1 84569108 (death)\nsfx2 27012908 (snake shot)\nsfx3 17311702 (collide)\nsfx4 55941902 (eat)\nsfx5 59606702 (bat)\nsfx6 52112502 (impossible)\nsfx7 89706502 (crowbar)\nsfx8 1782108 (water shot)\nsfx9 59937708 (drown)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nAnyWater Flooding\nSnakeU Decoration\nSnakeL Direction\nSnakeR\nObstacle\nSnakeD\nWallL Vision Target\nWallR SnakeGun WaterGun\nWallU previousCollision previousPosition\nWallD recoil\nAnyDigit canMove previousHead Cover\nWinning\n\n======\nRULES\n======\n\n(Editing convenience: Automatically add outlines to walls)\n([ WallOutline ] -> [ ]\nup [ Wall | No Wall ] -> [ Wall WallU | ]\ndown [ Wall | No Wall ] -> [ Wall WallD | ]\nleft [ Wall | No Wall ] -> [ Wall WallL | ]\nright[ Wall | No Wall ] -> [ Wall WallR | ])\n\n(player faces a certain direction)\n[ up Player no PlayerU ] [ canMove ] -> [ PlayerU ] [ canMove ]\n[ down Player no PlayerD ] [ canMove ] -> [ PlayerD ] [ canMove ]\n[ left Player no PlayerL ] [ canMove ] -> [ PlayerL ] [ canMove ]\n[ right Player no PlayerR ] [ canMove ] -> [ PlayerR ] [ canMove ]\n\n(shoot the Snake Gun)\nup [ action PlayerU | no Wall no Crate ] [ canMove SnakeGun ] -> [ PlayerU recoil | SnakeHeadU ] [ SnakeGun ] sfx2\ndown [ action PlayerD | no Wall no Crate ] [ canMove SnakeGun ] -> [ PlayerD recoil | SnakeHeadD ] [ SnakeGun ] sfx2\nleft [ action PlayerL | no Wall no Crate ] [ canMove SnakeGun ] -> [ PlayerL recoil | SnakeHeadL ] [ SnakeGun ] sfx2\nright [ action PlayerR | no Wall no Crate ] [ canMove SnakeGun ] -> [ PlayerR recoil | SnakeHeadR ] [ SnakeGun ] sfx2\n[ action Player ] [ canMove SnakeGun ] -> [ Player ] [ canMove SnakeGun ] sfx6\n(choose snake direction, when it can't move anymore)\n[ moving Player ] [ SnakeHead previousHead ] -> [ stationary Player ] [ moving SnakeHead previousHead ]\n(snake head moves forwards)\nup [ stationary SnakeHeadU ] -> [ > SnakeHeadU ]\ndown [ stationary SnakeHeadD ] -> [ > SnakeHeadD ]\nleft [ stationary SnakeHeadL ] -> [ > SnakeHeadL ]\nright [ stationary SnakeHeadR ] -> [ > SnakeHeadR ]\n(BONK!)\nlate [ SnakeHead previousHead no previousCollision ] -> [ SnakeHead previousHead previousCollision] sfx3\nlate [ SnakeHead no previousHead ] [ previousCollision ] -> [ SnakeHead no previousHead ] [ ]\n(snakes eat things)\nup [ > SnakeHead | SnakeFood ] -> [ > SnakeHead | no SnakeBody ] sfx4\ndown [ > SnakeHead | SnakeFood ] -> [ > SnakeHead | no SnakeBody ] sfx4\nleft [ > SnakeHead | SnakeFood ] -> [ > SnakeHead | no SnakeBody ] sfx4\nright [ > SnakeHead | SnakeFood ] -> [ > SnakeHead | no SnakeBody ] sfx4\n(remember previous position of snake head)\n[ previousHead ] -> [ ]\n[ SnakeHead ] -> [ SnakeHead previousHead ]\n(set the snake head orientation)\nlate up [ previousHead | SnakeHead ] -> [ previousHead | SnakeHeadU ]\nlate down [ previousHead | SnakeHead ] -> [ previousHead | SnakeHeadD ]\nlate left [ previousHead | SnakeHead ] -> [ previousHead | SnakeHeadL ]\nlate right [ previousHead | SnakeHead ] -> [ previousHead | SnakeHeadR ]\n(create the snake body)\nup [ PlayerU no SnakeU ] [ Snake ] [ SnakeGun ] -> [ PlayerU SnakeU ] [ Snake ] [ SnakeGun ]\ndown [ PlayerD no SnakeD ] [ Snake ] [ SnakeGun ] -> [ PlayerD SnakeD ] [ Snake ] [ SnakeGun ]\nleft [ PlayerL no SnakeL ] [ Snake ] [ SnakeGun ] -> [ PlayerL SnakeL ] [ Snake ] [ SnakeGun ]\nright [ PlayerR no SnakeR ] [ Snake ] [ SnakeGun ] -> [ PlayerR SnakeR ] [ Snake ] [ SnakeGun ]\nlate up [ no SnakeU no AnyPlayer | SnakeHeadU ] -> [ SnakeU | SnakeHeadU ]\nlate down [ no SnakeD no AnyPlayer | SnakeHeadD ] -> [ SnakeD | SnakeHeadD ]\nlate left [ no SnakeL no AnyPlayer | SnakeHeadL ] -> [ SnakeL | SnakeHeadL ]\nlate right [ no SnakeR no AnyPlayer | SnakeHeadR ] -> [ SnakeR | SnakeHeadR ]\n(connect the snake body)\nlate up [ SnakeU | no SnakeD no NoSnakeBody ] -> [ SnakeU | SnakeD ]\nlate down [ SnakeD | no SnakeU no NoSnakeBody ] -> [ SnakeD | SnakeU ]\nlate left [ SnakeL | no SnakeR no NoSnakeBody ] -> [ SnakeL | SnakeR ]\nlate right [ SnakeR | no SnakeL no NoSnakeBody ] -> [ SnakeR | SnakeL ]\n(make the snake body impassable)\nlate [ SnakeBody no Obstacle ] -> [ SnakeBody Collider ]\n\n(recoil)\n[ previousPosition ] -> [ ]\n[ Player ] -> [ Player previousPosition ]\nup [ stationary PlayerU ] [ recoil ] -> [ < PlayerU ] [ recoil ]\ndown [ stationary PlayerD ] [ recoil ] -> [ < PlayerD ] [ recoil ]\nleft [ stationary PlayerL ] [ recoil ] -> [ < PlayerL ] [ recoil ]\nright [ stationary PlayerR ] [ recoil ] -> [ < PlayerR ] [ recoil ]\nlate [ Player previousPosition ] [ recoil ] -> [ Player previousPosition ] [ ]\n\n(flooding animation)\n[ Flooding ] -> [ Water ]\n(shoot the water gun)\n[ action Player ] [ canMove WaterGun ] -> [ action Player ] [ WaterGun ]\nup [ action PlayerU | no Water ] [ WaterGun ] -> [ PlayerU | FloodingU ] [ WaterGun ] sfx8\ndown [ action PlayerD | no Water ] [ WaterGun ] -> [ PlayerD | FloodingD ] [ WaterGun ] sfx8\nleft [ action PlayerL | no Water ] [ WaterGun ] -> [ PlayerL | FloodingL ] [ WaterGun ] sfx8\nright [ action PlayerR | no Water ] [ WaterGun ] -> [ PlayerR | FloodingR ] [ WaterGun ] sfx8\nup [ action PlayerU | Water ] [ WaterGun ] -> [ PlayerU | > FloodingU ] [ WaterGun ] sfx8\ndown [ action PlayerD | Water ] [ WaterGun ] -> [ PlayerD | > FloodingD ] [ WaterGun ] sfx8\nleft [ action PlayerL | Water ] [ WaterGun ] -> [ PlayerL | > FloodingL ] [ WaterGun ] sfx8\nright [ action PlayerR | Water ] [ WaterGun ] -> [ PlayerR | > FloodingR ] [ WaterGun ] sfx8\n[ action Player ] [ canMove WaterGun ] -> [ Player ] [ canMove WaterGun ] sfx6\nlate up [ PlayerU | no Flooding ] [ WaterGun no canMove ] -> [ PlayerU | Water ] [ WaterGun ] sfx8\nlate down [ PlayerD | no Flooding ] [ WaterGun no canMove ] -> [ PlayerD | Water ] [ WaterGun ] sfx8\nlate left [ PlayerL | no Flooding ] [ WaterGun no canMove ] -> [ PlayerL | Water ] [ WaterGun ] sfx8\nlate right [ PlayerR | no Flooding ] [ WaterGun no canMove ] -> [ PlayerR | Water ] [ WaterGun ] sfx8\nlate [ Player ] [ no canMove WaterGun ] -> [ Player ] [ canMove WaterGun ]\n[ > Flooding | WaterBlocker ] -> [ Flooding | WaterBlocker ]\n[ > Flooding | stationary Water ] -> [ > Water | > Flooding ]\n(sinking animation)\n[ WaterSinking4 ] -> [ Water ]\n[ WaterSinking3 ] -> [ WaterSinking4 ]\n[ WaterSinking2 ] -> [ WaterSinking3 ]\n[ WaterSinking1 ] -> [ WaterSinking2 ]\n[ WaterDrown1 ] -> [ WaterSinking2 ]\n[ WaterSinking0 ] -> [ WaterSinking1 ]\n[ WaterDrown0 ] -> [ WaterDrown1 ]\n(water interacts with stuff)\nlate [ AnyWater Crate ] -> [ WaterSinking0 ] sfx9\nlate [ AnyWater Drownable ] -> [ WaterDrown0 ] sfx9\nlate [ AnyWater WaterBlocker ] -> [ WaterBlocker ]\n[ > Water | stationary Zombie ] -> [ > Water | > Zombie ]\n[ > Flooding | stationary Zombie ] -> [ > Flooding | > Zombie ]\n\n(move crates)\n[ > Pusher | stationary Pushable ] -> [ > Pusher | > Pushable ]\n\n(zombies)\n[ PlayerU | ZombieAsleep ] -> [ stationary ZombiePlayerU | ZombieAwake ] sfx1\n[ PlayerD | ZombieAsleep ] -> [ stationary ZombiePlayerD | ZombieAwake ] sfx1\n[ PlayerL | ZombieAsleep ] -> [ stationary ZombiePlayerL | ZombieAwake ] sfx1\n[ PlayerR | ZombieAsleep ] -> [ stationary ZombiePlayerR | ZombieAwake ] sfx1\n\n(werewolves)\nup [ stationary Werewolf GoU | no Direction ] -> [ > Werewolf | GoU ]\ndown [ stationary Werewolf GoD | no Direction ] -> [ > Werewolf | GoD ]\nleft [ stationary Werewolf GoL | no Direction ] -> [ > Werewolf | GoL ]\nright [ stationary Werewolf GoR | no Direction ] -> [ > Werewolf | GoR ]\nup [ stationary Werewolf | GoU WerewolfFood ] -> [ > Werewolf | ] sfx1\ndown [ stationary Werewolf | GoD WerewolfFood ] -> [ > Werewolf | ] sfx1\nleft [ stationary Werewolf | GoL WerewolfFood ] -> [ > Werewolf | ] sfx1\nright [ stationary Werewolf | GoR WerewolfFood ] -> [ > Werewolf | ] sfx1\n[ Vision ] -> [ ]\n[ Target ] -> [ ]\n[ stationary Werewolf no Direction | no Obstacle no Vision | ... | WerewolfFood ] -> [ Werewolf | > Vision | ... | WerewolfFood ]\n[ > Vision | no Obstacle no Vision ] -> [ | > Vision ]\n[ > Vision | Zombie ] -> [ > HiLevelTarget | Zombie ]\n[ > Vision | Player ] -> [ > LoLevelTarget | Player ]\n[ no Werewolf | > Target ] -> [ > Target | ]\nup [ stationary Werewolf | > HiLevelTarget ] -> [ > Werewolf | GoU ]\ndown [ stationary Werewolf | > HiLevelTarget ] -> [ > Werewolf | GoD ]\nleft [ stationary Werewolf | > HiLevelTarget ] -> [ > Werewolf | GoL ]\nright [ stationary Werewolf | > HiLevelTarget ] -> [ > Werewolf | GoR ]\n[ stationary Werewolf no Direction | WerewolfFood ] -> [ > Werewolf | no Direction ] sfx1\nup [ stationary Werewolf | > LoLevelTarget ] -> [ > Werewolf | GoU ]\ndown [ stationary Werewolf | > LoLevelTarget ] -> [ > Werewolf | GoD ]\nleft [ stationary Werewolf | > LoLevelTarget ] -> [ > Werewolf | GoL ]\nright [ stationary Werewolf | > LoLevelTarget ] -> [ > Werewolf | GoR ]\n\nlate [ Player ] -> [ Player Winning ]\nlate [ Monster ] [ Winning ] -> [ Monster ] [ ]\nlate [ Animation ] [ Winning ] -> [ Animation ] [ ]\nlate [ SnakeHead no previousHead ] [ Winning ] -> [ SnakeHead ] [ ]\nlate [ Player Gun ] -> Win\nlate [ Lines ] -> Win\n\n[]->[] again (let's hope there's no infinite loop)\n\n==============\nWINCONDITIONS\n==============\n\nSome Winning\n\n=======\nLEVELS\n=======\n\nmessage Oh no. Zombies!\n\n1######\n#zl...#\n#..z..#\n#p...g#\n#..z..#\n#..u..#\n#..x..#\n#######\n\nmessage What's this?\n\n............\n.......tq...\n......y.ti..\n.....t.y.t..\n....y.t.y...\n...t.y.t....\n..y.t.yi....\n..qyyeqy....\n...eq..q....\n.....q..r...\n......qy....\n............\n\nmessage A snake gun! Just what I needed.\n\n1######\n#zl...#\n#..z..#\n#....s#\n#..z..#\n#..u..#\n#..x..#\n#######\n\nmessage Take that, zombie scum!\n\n2########\n#.......#\n#.#.z.#.#\n#..z.z..#\n#.......#\n#.......#\n#.s.#...#\n#.......#\n#...z...#\n#########\n\nmessage Victory, thy name is snake gun!\n\n3######\n#z..#z#\n#...z.#\n#.s...#\n#.....#\n#.c...#\n#..#..#\n#######\n\nmessage Oh no. Werewolves!\n\n4######\n#..w.w#\n#z....#\n#c#...#\n#sc...#\n#######\n\nmessage I'm almost out of snake bullets!\n\n5######\n#..w..#\n#....z#\n#w....#\n##s..##\n#.....#\n#.c...#\n#.....#\n#######\n\nmessage There's only one snake left.\n\n6############\n#.c....w....#\n#z#.....w.w.#\n#.c.cz......#\n#...........#\n#...........#\n#.#...w.....#\n#s..........#\n#############\n\nmessage What do I do now? Without snakes?\n\n7#######\n#g.....#\n#..w...#\n#.c....#\n#..~...#\n#..~..w#\n#p.#...#\n########\n\nmessage What's this? Another snake gun?\n\n............\n......tq....\n......rtq...\n...tqy.r.r..\n...r..y.y...\n..y.te.t....\n.t.y..yi....\n.qt.teqy....\n..eeq..i....\n.....i..r...\n......qy....\n............\n\n(water gun, snake gun gun, snake rocket launcher, crowbar, explosive werewolf food gun...)\nmessage No, it's an ocean gun!\n\n7#######\n#o.....#\n#.cw...#\n#......#\n#..~...#\n#..~...#\n#..#...#\n########\n\nmessage I wonder if zombies can swim.\n\n8########\n#....o..#\n#.......#\n#.z.....#\n#.....z.#\n#w......#\n#......w#\n#########\n\nmessage Take that, werewolf scum!\n\n9#########\n##.....w##\n#w.......#\n#........#\n#...z....#\n#.z.....z#\n#...cc...#\n##...o..##\n##########\n\nmessage I'm almost out of water!\n\n10########\n#....o...#\n#........#\n#.z.....z#\n#...z....#\n#........#\n#w.......#\n##########\n\nmessage Only a few monsters are left.\nmessage But I ran out of bullets.\nmessage What shall I do?\n\n11##########\n#\"##......w#\n###..p.....#\n##....c....#\n#..........#\n#..z..z....#\n#z......z..#\n#z.z.......#\n#.........~#\n#........~~#\n#.....z.~~~#\n############\n\nmessage A noble sacrifice.\nmessage Thanks for playing!\nmessage THE END\n", [2, 0, 4, 0, 3, 2, 3, 0, 1], "background digit6 wall:0,background wall:1,1,1,1,1,1,1,1,1,background collider snaked snaker:2,background collider snaked snakeu:3,3,\n3,3,3,background playeru previousposition snakegun snakeu:4,1,1,background collider snakel snaker:5,1,background crate:6,background:7,7,1,7,\n1,1,5,7,7,7,7,7,7,1,1,5,7,\n6,7,7,7,7,1,1,background collider snaked snakel:8,3,3,3,3,3,\nbackground collider snaker snakeu:9,1,1,6,7,7,7,7,background werewolf:10,5,1,1,background previouscollision previoushead snakeheadl:11,\n7,7,7,7,7,5,1,1,5,10,7,7,7,\n7,5,1,1,5,7,7,7,7,7,5,1,1,\n5,10,7,7,7,7,5,1,1,8,3,3,3,\n3,3,background collider snakel snakeu:12,1,1,1,1,1,1,1,1,1,1,\n", 15, "1627778871030.2454"] + ["title Unconventional Guns\nauthor rectangular Tim\n\n(run_rules_on_level_start)\nbackground_color darkblue\nagain_interval 0.07\nkey_repeat_interval 0.15\n(verbose_logging)\n\nhomepage http://ludumdare.com/compo/ludum-dare-32/?action=preview&uid=39396\n\n========\nOBJECTS\n========\n\nBackground\nlightGray\n\nGun\nBlack\n.....\n.....\n.000.\n.0...\n.....\n\nPlayerU\nBlue LightRed Brown White\n.222.\n.222.\n10001\n.000.\n.2.2.\n\nPlayerD\nBlue LightRed Brown White\n.222.\n.313.\n10001\n.000.\n.2.2.\n\nPlayerL\nBlue LightRed Brown White\n.222.\n.312.\n.010.\n.000.\n..22.\n\nPlayerR\nBlue LightRed Brown White\n.222.\n.213.\n.010.\n.000.\n.22..\n\nZombiePlayerU\nBlue Green Brown Red\n.222.\n.222.\n10001\n.000.\n.2.2.\n\nZombiePlayerD\nBlue Green Brown Red\n.222.\n.313.\n10001\n.000.\n.2.2.\n\nZombiePlayerL\nBlue Green Brown Red\n.222.\n.312.\n.010.\n.000.\n..22.\n\nZombiePlayerR\nBlue Green Brown Red\n.222.\n.213.\n.010.\n.000.\n.22..\n\nZombieAsleep\nDarkRed Green Black Red\n.222.\n.111.\n10001\n.000.\n.2.2.\n\nZombieAwake\nDarkRed Green Black Red\n.222.\n.313.\n10001\n.000.\n.2.2.\n\nWerewolf\nBrown Black\n.000.\n.101.\n00000\n.000.\n.0.0.\n\nSnakeHeadU\nLightGreen Green White\n.000.\n12021\n11011\n11011\n.101.\n\nSnakeHeadD\nLightGreen Green White Black\n.101.\n12021\n10001\n13331\n.111.\n\nSnakeHeadL\nLightGreen Green White\n000..\n.1200\n..111\n.1111\n111..\n\nSnakeHeadR\nLightGreen Green White\n..000\n0021.\n111..\n1111.\n..111\n\nSnakeU\nLightGreen Green\n.101.\n.101.\n.....\n.....\n.....\n\nSnakeD\nLightGreen Green\n.....\n.....\n.101.\n.101.\n.101.\n\nSnakeL\nLightGreen Green\n.....\n000..\n111..\n111..\n.....\n\nSnakeR\nLightGreen Green\n.....\n..000\n..111\n..111\n.....\n\nWater\nBlue lightBlue\n10000\n00000\n00010\n00000\n00100\n\nFloodingR\nBlue lightBlue\n100..\n000..\n000..\n000..\n001..\n\nFloodingL\nBlue lightBlue\n..000\n..000\n..010\n..000\n..100\n\nFloodingU\nBlue lightBlue\n.....\n.....\n00010\n00000\n00100\n\nFloodingD\nBlue lightBlue\n10000\n00000\n00010\n.....\n.....\n\nWaterDrown0\nBlue #000033 lightBlue\n21110\n01110\n11111\n01110\n01210\n\nWaterDrown1\nBlue #000066 lightBlue\n21110\n01110\n11111\n01110\n01210\n\nWaterSinking0\n#000044 lightBlue\n10000\n00000\n00010\n00000\n00100\n\nWaterSinking1\n#000088 lightBlue\n10000\n00000\n00010\n00000\n00100\n\nWaterSinking2\nBlue lightBlue #000088\n10000\n02220\n02210\n02220\n00100\n\nWaterSinking3\nBlue lightBlue #0000BB\n10000\n02220\n02210\n02220\n00100\n\nWaterSinking4\nBlue lightBlue #0000BB\n10000\n00000\n00210\n00000\n00100\n\nCrate\nBrown Orange LightBrown\n12221\n20002\n20002\n20002\n12221\n\nWall\ndarkblue\n\nWallL\nBlack\n0....\n0....\n0....\n0....\n0....\n\nWallR\nBlack\n....0\n....0\n....0\n....0\n....0\n\nWallU\nBlack\n00000\n.....\n.....\n.....\n.....\n\nWallD\nBlack\n.....\n.....\n.....\n.....\n00000\n\nDigit0\nWhite\n..00.\n.0..0\n.0..0\n.0..0\n..00.\n\nDigit1\nWhite\n...0.\n..00.\n...0.\n...0.\n..000\n\nDigit2\nWhite\n..00.\n.0..0\n...0.\n..0..\n.0000\n\nDigit3\nWhite\n.000.\n....0\n..00.\n....0\n.000.\n\nDigit4\nWhite\n...0.\n..0..\n.0.0.\n.0000\n...0.\n\nDigit5\nWhite\n.0000\n.0...\n.000.\n....0\n.000.\n\nDigit6\nWhite\n..00.\n.0...\n.000.\n.0..0\n..00.\n\nDigit7\nWhite\n.0000\n....0\n...0.\n..0..\n.0...\n\nDigit8\nWhite\n..00.\n.0..0\n..00.\n.0..0\n..00.\n\nDigit9\nWhite\n..00.\n.0..0\n..000\n....0\n..00.\n\npreviousHead\ntransparent\n\npreviousCollision\ntransparent\n\nCollider\ntransparent\n\nGoU\ntransparent\n\nGoD\ntransparent\n\nGoL\ntransparent\n\nGoR\ntransparent\n\nVision\ntransparent\n\nLoLevelTarget\ntransparent\n\nHiLevelTarget\ntransparent\n\nSnakeGun\ntransparent\n\nWaterGun\ntransparent\n\ncanMove\ntransparent\n\nrecoil\ntransparent\n\npreviousPosition\ntransparent\n\nWinning\ntransparent\n\nCover\ndarkblue\n\nq\nBlack\n0....\n0....\n.0...\n..0..\n...00\n\ni\nBlack\n00...\n..0..\n...0.\n....0\n....0\n\ne\nBlack\n00000\n.....\n.....\n.....\n.....\n\nr\nBlack\n0....\n0....\n0....\n0....\n0....\n\nt\nBlack\n...00\n.00..\n.0...\n0....\n0....\n\ny\nBlack\n....0\n....0\n...0.\n..00.\n00...\n\nx\nGray\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nu\nGray\n.....\n..0..\n.000.\n0.0.0\n..0..\n\nl\nGray\n...0.\n..0..\n.0000\n..0..\n...0.\n\n=======\nLEGEND\n=======\n\nWallOutline = WallU or WallD or WallL or WallR\n\nAnyDigit = Digit0 or Digit1 or Digit2 or Digit3 or Digit4 or Digit5 or Digit6 or Digit7 or Digit8 or Digit9\n\nPlayer = PlayerU or PlayerD or PlayerL or PlayerR\nZombiePlayer = ZombiePlayerU or ZombiePlayerD or ZombiePlayerL or ZombiePlayerR\nAnyPlayer = Player or ZombiePlayer\nZombie = ZombieAwake or ZombieAsleep or ZombiePlayer\nMonster = Zombie or Werewolf\n\nSnakeHead = SnakeHeadU or SnakeHeadD or SnakeHeadL or SnakeHeadR\nSnakeBody = SnakeU or SnakeD or SnakeL or SnakeR\nSnake = SnakeHead or SnakeBody\n\nSnakeFood = AnyPlayer or Zombie or Werewolf\nWerewolfFood = AnyPlayer or Zombie\n\nWaterBlocker = Snake or Wall\nDrownable = Player or Werewolf\nSinking = WaterDrown0 or WaterDrown1 or WaterSinking0 or WaterSinking1 or WaterSinking2 or WaterSinking3 or WaterSinking4\nFlooding = FloodingU or FloodingD or FloodingL or FloodingR\nAnyWater = Water or Sinking\n\nAnimation = Flooding or Sinking\n\nNoSnakeBody = AnyPlayer or Zombie or Werewolf or Crate or Wall or SnakeHead\nObstacle = AnyPlayer or Zombie or Werewolf or Crate or Wall or SnakeHead or Collider\nDirection = GoU or GoD or GoL or GoR\n\nPushable = Crate or Zombie\nPusher = Player or SnakeHead or Pushable\n\nLines = q or i or e or r or t or y\nDecoration = Gun or Lines or x or u or l\n\nTarget = LoLevelTarget or HiLevelTarget\n\n. = Background\n# = Wall\n~ = Water\np = PlayerD and canMove\ns = PlayerD and SnakeGun and canMove\no = PlayerD and WaterGun and canMove\nz = ZombieAsleep\nw = Werewolf\ng = Gun\nc = Crate\n\" = PlayerD and Cover\n\n0 = Wall and Digit0\n1 = Wall and Digit1\n2 = Wall and Digit2\n3 = Wall and Digit3\n4 = Wall and Digit4\n5 = Wall and Digit5\n6 = Wall and Digit6\n7 = Wall and Digit7\n8 = Wall and Digit8\n9 = Wall and Digit9\n\n=======\nSOUNDS\n=======\n\nPlayer Move 23783707\nPlayer Create 23783707\nWerewolf Move 23783707\nsfx1 84569108 (death)\nsfx2 27012908 (snake shot)\nsfx3 17311702 (collide)\nsfx4 55941902 (eat)\nsfx5 59606702 (bat)\nsfx6 52112502 (impossible)\nsfx7 89706502 (crowbar)\nsfx8 1782108 (water shot)\nsfx9 59937708 (drown)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nAnyWater Flooding\nSnakeU Decoration\nSnakeL Direction\nSnakeR\nObstacle\nSnakeD\nWallL Vision Target\nWallR SnakeGun WaterGun\nWallU previousCollision previousPosition\nWallD recoil\nAnyDigit canMove previousHead Cover\nWinning\n\n======\nRULES\n======\n\n(Editing convenience: Automatically add outlines to walls)\n([ WallOutline ] -> [ ]\nup [ Wall | No Wall ] -> [ Wall WallU | ]\ndown [ Wall | No Wall ] -> [ Wall WallD | ]\nleft [ Wall | No Wall ] -> [ Wall WallL | ]\nright[ Wall | No Wall ] -> [ Wall WallR | ])\n\n(player faces a certain direction)\n[ up Player no PlayerU ] [ canMove ] -> [ PlayerU ] [ canMove ]\n[ down Player no PlayerD ] [ canMove ] -> [ PlayerD ] [ canMove ]\n[ left Player no PlayerL ] [ canMove ] -> [ PlayerL ] [ canMove ]\n[ right Player no PlayerR ] [ canMove ] -> [ PlayerR ] [ canMove ]\n\n(shoot the Snake Gun)\nup [ action PlayerU | no Wall no Crate ] [ canMove SnakeGun ] -> [ PlayerU recoil | SnakeHeadU ] [ SnakeGun ] sfx2\ndown [ action PlayerD | no Wall no Crate ] [ canMove SnakeGun ] -> [ PlayerD recoil | SnakeHeadD ] [ SnakeGun ] sfx2\nleft [ action PlayerL | no Wall no Crate ] [ canMove SnakeGun ] -> [ PlayerL recoil | SnakeHeadL ] [ SnakeGun ] sfx2\nright [ action PlayerR | no Wall no Crate ] [ canMove SnakeGun ] -> [ PlayerR recoil | SnakeHeadR ] [ SnakeGun ] sfx2\n[ action Player ] [ canMove SnakeGun ] -> [ Player ] [ canMove SnakeGun ] sfx6\n(choose snake direction, when it can't move anymore)\n[ moving Player ] [ SnakeHead previousHead ] -> [ stationary Player ] [ moving SnakeHead previousHead ]\n(snake head moves forwards)\nup [ stationary SnakeHeadU ] -> [ > SnakeHeadU ]\ndown [ stationary SnakeHeadD ] -> [ > SnakeHeadD ]\nleft [ stationary SnakeHeadL ] -> [ > SnakeHeadL ]\nright [ stationary SnakeHeadR ] -> [ > SnakeHeadR ]\n(BONK!)\nlate [ SnakeHead previousHead no previousCollision ] -> [ SnakeHead previousHead previousCollision] sfx3\nlate [ SnakeHead no previousHead ] [ previousCollision ] -> [ SnakeHead no previousHead ] [ ]\n(snakes eat things)\nup [ > SnakeHead | SnakeFood ] -> [ > SnakeHead | no SnakeBody ] sfx4\ndown [ > SnakeHead | SnakeFood ] -> [ > SnakeHead | no SnakeBody ] sfx4\nleft [ > SnakeHead | SnakeFood ] -> [ > SnakeHead | no SnakeBody ] sfx4\nright [ > SnakeHead | SnakeFood ] -> [ > SnakeHead | no SnakeBody ] sfx4\n(remember previous position of snake head)\n[ previousHead ] -> [ ]\n[ SnakeHead ] -> [ SnakeHead previousHead ]\n(set the snake head orientation)\nlate up [ previousHead | SnakeHead ] -> [ previousHead | SnakeHeadU ]\nlate down [ previousHead | SnakeHead ] -> [ previousHead | SnakeHeadD ]\nlate left [ previousHead | SnakeHead ] -> [ previousHead | SnakeHeadL ]\nlate right [ previousHead | SnakeHead ] -> [ previousHead | SnakeHeadR ]\n(create the snake body)\nup [ PlayerU no SnakeU ] [ Snake ] [ SnakeGun ] -> [ PlayerU SnakeU ] [ Snake ] [ SnakeGun ]\ndown [ PlayerD no SnakeD ] [ Snake ] [ SnakeGun ] -> [ PlayerD SnakeD ] [ Snake ] [ SnakeGun ]\nleft [ PlayerL no SnakeL ] [ Snake ] [ SnakeGun ] -> [ PlayerL SnakeL ] [ Snake ] [ SnakeGun ]\nright [ PlayerR no SnakeR ] [ Snake ] [ SnakeGun ] -> [ PlayerR SnakeR ] [ Snake ] [ SnakeGun ]\nlate up [ no SnakeU no AnyPlayer | SnakeHeadU ] -> [ SnakeU | SnakeHeadU ]\nlate down [ no SnakeD no AnyPlayer | SnakeHeadD ] -> [ SnakeD | SnakeHeadD ]\nlate left [ no SnakeL no AnyPlayer | SnakeHeadL ] -> [ SnakeL | SnakeHeadL ]\nlate right [ no SnakeR no AnyPlayer | SnakeHeadR ] -> [ SnakeR | SnakeHeadR ]\n(connect the snake body)\nlate up [ SnakeU | no SnakeD no NoSnakeBody ] -> [ SnakeU | SnakeD ]\nlate down [ SnakeD | no SnakeU no NoSnakeBody ] -> [ SnakeD | SnakeU ]\nlate left [ SnakeL | no SnakeR no NoSnakeBody ] -> [ SnakeL | SnakeR ]\nlate right [ SnakeR | no SnakeL no NoSnakeBody ] -> [ SnakeR | SnakeL ]\n(make the snake body impassable)\nlate [ SnakeBody no Obstacle ] -> [ SnakeBody Collider ]\n\n(recoil)\n[ previousPosition ] -> [ ]\n[ Player ] -> [ Player previousPosition ]\nup [ stationary PlayerU ] [ recoil ] -> [ < PlayerU ] [ recoil ]\ndown [ stationary PlayerD ] [ recoil ] -> [ < PlayerD ] [ recoil ]\nleft [ stationary PlayerL ] [ recoil ] -> [ < PlayerL ] [ recoil ]\nright [ stationary PlayerR ] [ recoil ] -> [ < PlayerR ] [ recoil ]\nlate [ Player previousPosition ] [ recoil ] -> [ Player previousPosition ] [ ]\n\n(flooding animation)\n[ Flooding ] -> [ Water ]\n(shoot the water gun)\n[ action Player ] [ canMove WaterGun ] -> [ action Player ] [ WaterGun ]\nup [ action PlayerU | no Water ] [ WaterGun ] -> [ PlayerU | FloodingU ] [ WaterGun ] sfx8\ndown [ action PlayerD | no Water ] [ WaterGun ] -> [ PlayerD | FloodingD ] [ WaterGun ] sfx8\nleft [ action PlayerL | no Water ] [ WaterGun ] -> [ PlayerL | FloodingL ] [ WaterGun ] sfx8\nright [ action PlayerR | no Water ] [ WaterGun ] -> [ PlayerR | FloodingR ] [ WaterGun ] sfx8\nup [ action PlayerU | Water ] [ WaterGun ] -> [ PlayerU | > FloodingU ] [ WaterGun ] sfx8\ndown [ action PlayerD | Water ] [ WaterGun ] -> [ PlayerD | > FloodingD ] [ WaterGun ] sfx8\nleft [ action PlayerL | Water ] [ WaterGun ] -> [ PlayerL | > FloodingL ] [ WaterGun ] sfx8\nright [ action PlayerR | Water ] [ WaterGun ] -> [ PlayerR | > FloodingR ] [ WaterGun ] sfx8\n[ action Player ] [ canMove WaterGun ] -> [ Player ] [ canMove WaterGun ] sfx6\nlate up [ PlayerU | no Flooding ] [ WaterGun no canMove ] -> [ PlayerU | Water ] [ WaterGun ] sfx8\nlate down [ PlayerD | no Flooding ] [ WaterGun no canMove ] -> [ PlayerD | Water ] [ WaterGun ] sfx8\nlate left [ PlayerL | no Flooding ] [ WaterGun no canMove ] -> [ PlayerL | Water ] [ WaterGun ] sfx8\nlate right [ PlayerR | no Flooding ] [ WaterGun no canMove ] -> [ PlayerR | Water ] [ WaterGun ] sfx8\nlate [ Player ] [ no canMove WaterGun ] -> [ Player ] [ canMove WaterGun ]\n[ > Flooding | WaterBlocker ] -> [ Flooding | WaterBlocker ]\n[ > Flooding | stationary Water ] -> [ > Water | > Flooding ]\n(sinking animation)\n[ WaterSinking4 ] -> [ Water ]\n[ WaterSinking3 ] -> [ WaterSinking4 ]\n[ WaterSinking2 ] -> [ WaterSinking3 ]\n[ WaterSinking1 ] -> [ WaterSinking2 ]\n[ WaterDrown1 ] -> [ WaterSinking2 ]\n[ WaterSinking0 ] -> [ WaterSinking1 ]\n[ WaterDrown0 ] -> [ WaterDrown1 ]\n(water interacts with stuff)\nlate [ AnyWater Crate ] -> [ WaterSinking0 ] sfx9\nlate [ AnyWater Drownable ] -> [ WaterDrown0 ] sfx9\nlate [ AnyWater WaterBlocker ] -> [ WaterBlocker ]\n[ > Water | stationary Zombie ] -> [ > Water | > Zombie ]\n[ > Flooding | stationary Zombie ] -> [ > Flooding | > Zombie ]\n\n(move crates)\n[ > Pusher | stationary Pushable ] -> [ > Pusher | > Pushable ]\n\n(zombies)\n[ PlayerU | ZombieAsleep ] -> [ stationary ZombiePlayerU | ZombieAwake ] sfx1\n[ PlayerD | ZombieAsleep ] -> [ stationary ZombiePlayerD | ZombieAwake ] sfx1\n[ PlayerL | ZombieAsleep ] -> [ stationary ZombiePlayerL | ZombieAwake ] sfx1\n[ PlayerR | ZombieAsleep ] -> [ stationary ZombiePlayerR | ZombieAwake ] sfx1\n\n(werewolves)\nup [ stationary Werewolf GoU | no Direction ] -> [ > Werewolf | GoU ]\ndown [ stationary Werewolf GoD | no Direction ] -> [ > Werewolf | GoD ]\nleft [ stationary Werewolf GoL | no Direction ] -> [ > Werewolf | GoL ]\nright [ stationary Werewolf GoR | no Direction ] -> [ > Werewolf | GoR ]\nup [ stationary Werewolf | GoU WerewolfFood ] -> [ > Werewolf | ] sfx1\ndown [ stationary Werewolf | GoD WerewolfFood ] -> [ > Werewolf | ] sfx1\nleft [ stationary Werewolf | GoL WerewolfFood ] -> [ > Werewolf | ] sfx1\nright [ stationary Werewolf | GoR WerewolfFood ] -> [ > Werewolf | ] sfx1\n[ Vision ] -> [ ]\n[ Target ] -> [ ]\n[ stationary Werewolf no Direction | no Obstacle no Vision | ... | WerewolfFood ] -> [ Werewolf | > Vision | ... | WerewolfFood ]\n[ > Vision | no Obstacle no Vision ] -> [ | > Vision ]\n[ > Vision | Zombie ] -> [ > HiLevelTarget | Zombie ]\n[ > Vision | Player ] -> [ > LoLevelTarget | Player ]\n[ no Werewolf | > Target ] -> [ > Target | ]\nup [ stationary Werewolf | > HiLevelTarget ] -> [ > Werewolf | GoU ]\ndown [ stationary Werewolf | > HiLevelTarget ] -> [ > Werewolf | GoD ]\nleft [ stationary Werewolf | > HiLevelTarget ] -> [ > Werewolf | GoL ]\nright [ stationary Werewolf | > HiLevelTarget ] -> [ > Werewolf | GoR ]\n[ stationary Werewolf no Direction | WerewolfFood ] -> [ > Werewolf | no Direction ] sfx1\nup [ stationary Werewolf | > LoLevelTarget ] -> [ > Werewolf | GoU ]\ndown [ stationary Werewolf | > LoLevelTarget ] -> [ > Werewolf | GoD ]\nleft [ stationary Werewolf | > LoLevelTarget ] -> [ > Werewolf | GoL ]\nright [ stationary Werewolf | > LoLevelTarget ] -> [ > Werewolf | GoR ]\n\nlate [ Player ] -> [ Player Winning ]\nlate [ Monster ] [ Winning ] -> [ Monster ] [ ]\nlate [ Animation ] [ Winning ] -> [ Animation ] [ ]\nlate [ SnakeHead no previousHead ] [ Winning ] -> [ SnakeHead ] [ ]\nlate [ Player Gun ] -> Win\nlate [ Lines ] -> Win\n\n[]->[] again (let's hope there's no infinite loop)\n\n==============\nWINCONDITIONS\n==============\n\nSome Winning\n\n=======\nLEVELS\n=======\n\nmessage Oh no. Zombies!\n\n1######\n#zl...#\n#..z..#\n#p...g#\n#..z..#\n#..u..#\n#..x..#\n#######\n\nmessage What's this?\n\n............\n.......tq...\n......y.ti..\n.....t.y.t..\n....y.t.y...\n...t.y.t....\n..y.t.yi....\n..qyyeqy....\n...eq..q....\n.....q..r...\n......qy....\n............\n\nmessage A snake gun! Just what I needed.\n\n1######\n#zl...#\n#..z..#\n#....s#\n#..z..#\n#..u..#\n#..x..#\n#######\n\nmessage Take that, zombie scum!\n\n2########\n#.......#\n#.#.z.#.#\n#..z.z..#\n#.......#\n#.......#\n#.s.#...#\n#.......#\n#...z...#\n#########\n\nmessage Victory, thy name is snake gun!\n\n3######\n#z..#z#\n#...z.#\n#.s...#\n#.....#\n#.c...#\n#..#..#\n#######\n\nmessage Oh no. Werewolves!\n\n4######\n#..w.w#\n#z....#\n#c#...#\n#sc...#\n#######\n\nmessage I'm almost out of snake bullets!\n\n5######\n#..w..#\n#....z#\n#w....#\n##s..##\n#.....#\n#.c...#\n#.....#\n#######\n\nmessage There's only one snake left.\n\n6############\n#.c....w....#\n#z#.....w.w.#\n#.c.cz......#\n#...........#\n#...........#\n#.#...w.....#\n#s..........#\n#############\n\nmessage What do I do now? Without snakes?\n\n7#######\n#g.....#\n#..w...#\n#.c....#\n#..~...#\n#..~..w#\n#p.#...#\n########\n\nmessage What's this? Another snake gun?\n\n............\n......tq....\n......rtq...\n...tqy.r.r..\n...r..y.y...\n..y.te.t....\n.t.y..yi....\n.qt.teqy....\n..eeq..i....\n.....i..r...\n......qy....\n............\n\n(water gun, snake gun gun, snake rocket launcher, crowbar, explosive werewolf food gun...)\nmessage No, it's an ocean gun!\n\n7#######\n#o.....#\n#.cw...#\n#......#\n#..~...#\n#..~...#\n#..#...#\n########\n\nmessage I wonder if zombies can swim.\n\n8########\n#....o..#\n#.......#\n#.z.....#\n#.....z.#\n#w......#\n#......w#\n#########\n\nmessage Take that, werewolf scum!\n\n9#########\n##.....w##\n#w.......#\n#........#\n#...z....#\n#.z.....z#\n#...cc...#\n##...o..##\n##########\n\nmessage I'm almost out of water!\n\n10########\n#....o...#\n#........#\n#.z.....z#\n#...z....#\n#........#\n#w.......#\n##########\n\nmessage Only a few monsters are left.\nmessage But I ran out of bullets.\nmessage What shall I do?\n\n11##########\n#\"##......w#\n###..p.....#\n##....c....#\n#..........#\n#..z..z....#\n#z......z..#\n#z.z.......#\n#.........~#\n#........~~#\n#.....z.~~~#\n############\n\nmessage A noble sacrifice.\nmessage Thanks for playing!\nmessage THE END\n",[2,0,4,0,3,2,3,0,1],"background digit6 wall:0,background wall:1,1,1,1,1,1,1,1,1,background collider snaked snaker:2,background collider snaked snakeu:3,3,\n3,3,3,background playeru previousposition snakegun snakeu:4,1,1,background collider snakel snaker:5,1,background crate:6,background:7,7,1,7,\n1,1,5,7,7,7,7,7,7,1,1,5,7,\n6,7,7,7,7,1,1,background collider snaked snakel:8,3,3,3,3,3,\nbackground collider snaker snakeu:9,1,1,6,7,7,7,7,background werewolf:10,5,1,1,background previouscollision previoushead snakeheadl:11,\n7,7,7,7,7,5,1,1,5,10,7,7,7,\n7,5,1,1,5,7,7,7,7,7,5,1,1,\n5,10,7,7,7,7,5,1,1,8,3,3,3,\n3,3,background collider snakel snakeu:12,1,1,1,1,1,1,1,1,1,1,\n",15,"1627778871030.2454"] ], [ `gallery: newton's crates`, - ["title Newton's Crates\nauthor Andrey Shevchuk\nhomepage shevchuk.net\n\nbackground_color darkbrown\ntext_color lightgrey\nnoaction\n\nagain_interval 0.1\n\n========\nOBJECTS\n========\n\nBackground\nlightgrey\n00000\n00000\n00000\n00000\n00000\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nBROWN darkbrown\n11111\n11111\n11111\n11111\n11111\n\nPlayer\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nCrate\norange Yellow\n00000\n00000\n00000\n00000\n00000\n\nFinalist0\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nFinalist1\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nFinalist2\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nGenius\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner001\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner002\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner003\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.433.\n...4.\n\nWinner004\nGrey Orange White Brown Black\n.000.\n3010.\n.0303\n.334.\n.4...\n\nWinner005\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.433.\n...4.\n\nWinner006\nGrey Orange White Brown Black\n.000.\n3010.\n.0303\n.334.\n.4...\n\nWinner007\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.433.\n...4.\n\nWinner008\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nm1\ntransparent\n\nm2\ntransparent\n\nm3\ntransparent\n\nm4\ntransparent\n\nm5\ntransparent\n\nm6\ntransparent\n\n\nWinner101\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner102\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner103\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner104\nGrey Orange White Brown Black\n.000.\n.013.\n3033.\n.333.\n.4.4.\n\nWinner105\nGrey Orange White Brown Black\n.000.\n.030.\n3033.\n.333.\n.4.4.\n\nWinner106\nGrey Orange White Brown Black\n.000.\n.013.\n3033.\n.333.\n.4.4.\n\nWinner107\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner108\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner109\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner201\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner202\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner203\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner204\nGrey Orange White Brown Black\n.....\n.0003\n3000.\n.030.\n.4.4.\n\nWinner205\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner206\nGrey Orange White Brown Black\n.....\n.0003\n3000.\n.030.\n.4.4.\n\nWinner207\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner208\nGrey Orange White Brown Black\n.....\n.0003\n3000.\n.030.\n.4.4.\n\nWinner209\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner210\nGrey Orange White Brown Black\n.....\n.0003\n3000.\n.030.\n.4.4.\n\nWinner211\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner301\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner302\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner303\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.343.\n.4...\n\nWinner304\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.334.\n.4...\n\n\nWinner305\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4..4\n\nWinner306\nGrey Orange White Brown Black\n.000.\n3010.\n.0303\n.333.\n.4..4\n\nWinner307\nGrey Orange White Brown Black\n.000.\n30103\n.030.\n.333.\n.4..4\n\nWinner308\nGrey Orange White Brown Black DarkBrown\n.000.\n3010.\n.030.\n.3335\n.4..4\n\nWinner309\nGrey Orange White Brown Black DarkBrown\n.000.\n3010.\n.030.\n.3335\n.4..4\n\n(Hiding amongst the winners, a fruit)\n\nApple\nGreen Red Transparent DarkRed\n22200\n21032\n11133\n11133\n21332\n\nAppleCore\nGreen Red Transparent DarkRed White\n22200\n21032\n22422\n22342\n21332\n\nWinner401\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner402\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner403\nGrey Orange White Brown Black\n.000.\n30103\n.030.\n.333.\n.4.4.\n\nWinner404\nGrey Orange White Brown Black\n.000.\n.313.\n.333.\n.333.\n.4.4.\n\nWinner405\nGrey Orange White Brown Black\n.000.\n30103\n.030.\n.333.\n.4.4.\n\nWinner406\nGrey Orange White Brown Black\n.000.\n.313.\n.333.\n.333.\n.4.4.\n\nWinner407\nGrey Orange White Brown Black\n.000.\n30103\n.030.\n.333.\n.4.4.\n\nWinner408\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner409\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner501\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner502\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner503\nGrey Orange White Brown Black\n.....\n.000.\n30103\n.030.\n.4.4.\n\nWinner504\nGrey Orange White Brown Black DarkGrey\n.....\n.000.\n30003\n.030.\n.5.5.\n\nWinner505\nGrey Orange White Brown Black DarkGrey\n.....\n.000.\n30003\n.000.\n.5.5.\n\nWinner506\nGrey Orange White Brown Black DarkGrey\n.....\n30003\n.000.\n.000.\n.5.5.\n\nWinner507\nGrey Orange White Brown Black DarkGrey\n.....\n30003\n.000.\n.000.\n.5.5.\n\nWinner508\nGrey Orange White Brown Black DarkGrey\n.....\n30003\n.000.\n.000.\n.5.5.\n\nWinner509\nGrey Orange White Brown Black DarkGrey\n.....\n30003\n.000.\n.000.\n.5.5.\n\nwait0\ntransparent\n\nwait1\ntransparent\n\nwait2\ntransparent\n\nwait3\ntransparent\n\nwait4\ntransparent\n\nwait5\ntransparent\n\nCloud\ngreen (as usual)\n.....\n.....\n.....\n.....\n.....\n\nclearsky1\ntransparent yellow\n\nclearsky2\ntransparent yellow\n\nclearsky3\ntransparent yellow\n\nfapple0\nGreen #9a1f2a Transparent DarkRed\n22200\n21032\n11133\n11133\n21332\n\nfapple1\n#2a6308 DarkRed Transparent DarkRed\n22002\n21100\n11113\n11133\n23332\n\nfapple2\n#59a72a Red Transparent Red\n22202\n21032\n11133\n11333\n21332\n\nfapple3\n#32720C #9a1f2a Transparent #9a1f2a\n00222\n21032\n11133\n11133\n23332\n\nsquashUL\nGreen Red Transparent DarkRed\n11122\n12222\n22222\n22222\n22222\n\nsquashUR\nGreen Red Transparent Red\n22333\n22223\n22222\n22222\n22222\n\nsquashDL\nGreen Red Transparent DarkRed\n22222\n22222\n22222\n22222\n12222\n\nsquashDR\nGreen Red Transparent Red\n22222\n22222\n22222\n22223\n22233\n\nfappleg\n#29580d #71ae4c Transparent #50723b\n22200\n21032\n11133\n11133\n21332\n\nsquashgU\n#50723b Red Transparent DarkRed\n20022\n22222\n22222\n22222\n22222\n\nsquashgR\n#29580d #71ae4c Transparent #50723b\n22222\n22222\n22222\n22222\n22223\n\nsquashgL\n#29580d #71ae4c Transparent #50723b\n22222\n22222\n22222\n22222\n32222\n\nsquashgD\n#29580d #71ae4c Transparent #50723b\n22222\n22222\n22222\n22222\n32222\n\nsquashU\ntransparent\n\nsquashR\ntransparent\n\nsquashL\ntransparent\n\nsquashD\ntransparent\n\nspaace\nblue\n.....\n.....\n.....\n.....\n.....\n\nzCrate\nOrange Yellow\n00000\n0...0\n0.0.0\n0...0\n00000\n\nlastCrateOnTarget\nRed Yellow\n00000\n00000\n00000\n00000\n00000\n\nlastTarget\ntransparent\n\nyeaCrate\nOrange Yellow\n00000\n0...0\n0.0.0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\nz = zCrate\n0 = Crate and Target\n@ = zCrate and Target\no = Target\na = Apple\nc = AppleCore\n1 = m1 and Apple and Crate\n2 = m2 and Apple\n3 = m3 and Apple and Crate\n4 = m4 and Apple and Crate\n5 = m5 and Apple and Crate\n6 = m6 and Apple and Crate\ny = cloud\n, = spaace\ng = lastTarget\nh = lastTarget and Crate\n\nInertial = Crate or zCrate or Wall or lastCrateOnTarget\n\nMumbling = m1 or m2 or m3 or m4 or m5 or m6\n\nClearsky = clearsky1 or clearsky2 or clearsky3\nFapple = fapple0 or fapple1 or fapple2 or fapple3\nFapples = Fapple or fappleg\nFinalists = Finalist0 or Finalist1 or Finalist2\nPlayers = Player or Finalists or Genius\nSquashing = fapple or Wall or fappleg or lastCrateOnTarget\n\nWaitFrames = wait0 or wait1 or wait2 or wait3 or wait4 or wait5\n\nWinAnimationStartFrame = Winner001 or Winner101 or Winner201 or Winner301 or Winner401 or Winner501\n\nWinnerFrames = Winner001 or Winner002 or Winner003 or Winner004 or Winner005 or Winner006 or Winner007 or Winner008 or Winner101 or Winner102 or Winner103 or Winner104 or Winner105 or Winner106 or Winner107 or Winner108 or Winner109 or Winner201 or Winner202 or Winner203 or Winner204 or Winner205 or Winner206 or Winner207 or Winner208 or Winner209 or Winner210 or Winner211 or Winner301 or Winner302 or Winner303 or Winner304 or Winner305 or Winner306 or Winner307 or Winner308 or Winner309 or Winner401 or Winner402 or Winner403 or Winner404 or Winner405 or Winner406 or Winner407 or Winner408 or Winner409 or Winner501 or Winner502 or Winner503 or Winner504 or Winner505 or Winner506 or Winner507 or Winner508 or Winner509\n\n=======\nSOUNDS\n=======\n\nInertial MOVE 62522307 (66976107) (36772507) (36718107)\n(Player Move 61661707) (too repetitive on long runs)\nsfx0 60497100 (zCrate moves on target)\n(sfx1 (58358104) (16763304) (bumping into a wall))\n\nsfx1 17123907 (green)\nsfx2 74112904\nsfx3 60342907\nsfx5 47189907\nsfx6 68393107\nsfx4 21039704 (wall)\nsfx10 70198308\nsfx7 65707900 (Level Complete)\nUndo 54083907\nRestart 5315306\nsfx9 94701308 (30980508) (16825502) (apple!)\nsfx8 67172908 (eurika)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nsquashUL \nsquashUR\nsquashDL\nsquashDR\nsquashgU\nsquashgD\nsquashgL\nsquashgR\nsquashU\nsquashL\nsquashD\nsquashR, WaitFrames, Mumbling\nTarget, Apple, AppleCore, cloud, Clearsky, spaace, lastTarget\nPlayers, Inertial, yeaCrate, WinnerFrames, fapples\n\n======\nRULES\n======\n\n(The actual rules of the game)\n\n[ > Player | Inertial ] -> [ > Player | > Inertial ]\n[ > Inertial | Inertial ] -> [ Inertial | > Inertial ]\n[ > Wall ] -> [ Wall ]\n[ > zCrate | Target ] -> [ > zCrate | Target ] sfx0\n\n\n(Win conditions, convoluted for the purposes of animation)\n\nlate [ zCrate Target ] -> [ yeaCrate Target ]\nlate [ yeaCrate ][ zCrate ] -> [ zCrate ][ zCrate ]\nlate [ yeaCrate ][Player] -> [yeaCrate][ wait0 random WinAnimationStartFrame ] sfx7\n\n\n(Win animations)\n\nlate [wait4] -> [wait5] again\nlate [wait3] -> [wait4] again\nlate [wait2] -> [wait3] again\nlate [wait1] -> [wait2] again\nlate [wait0] -> [wait1] again\n\nlate [ Winner509 ] -> Win\nlate [ Winner508 ][wait3] -> [ Winner509 ][wait0] again\nlate [ Winner507 ][wait3] -> [ Winner508 ][wait0] again\nlate [ Winner506 ][wait3] -> [ Winner507 ][wait0] again\nlate [ Winner505 ][wait3] -> [ Winner506 ][wait0] again\nlate [ Winner504 ][wait3] -> [ Winner505 ][wait0] again\nlate [ Winner503 ][wait3] -> [ Winner504 ][wait0] again\nlate [ Winner502 ][wait3] -> [ Winner503 ][wait0] again\nlate [ Winner501 ][wait3] -> [ Winner502 ][wait0] again\n\nlate [ Winner409 ] -> Win\nlate [ Winner408 ][wait3] -> [ Winner409 ][wait0] again\nlate [ Winner407 ][wait3] -> [ Winner408 ][wait0] again\nlate [ Winner406 ][wait3] -> [ Winner407 ][wait0] again\nlate [ Winner405 ][wait3] -> [ Winner406 ][wait0] again\nlate [ Winner404 ][wait3] -> [ Winner405 ][wait0] again\nlate [ Winner403 ][wait3] -> [ Winner404 ][wait0] again\nlate [ Winner402 ][wait3] -> [ Winner403 ][wait0] again\nlate [ Winner401 ][wait3] -> [ Winner402 ][wait0] again\n\nlate [ Winner309 ] -> Win\nlate [ Winner308 ][wait3] -> [ Winner309 ][wait0] again\nlate [ Winner307 ][wait3] -> [ Winner308 ][wait0] again\nlate [ Winner306 ][wait3] -> [ Winner307 ][wait0] again\nlate [ Winner305 ][wait3] -> [ Winner306 ][wait0] again\nlate [ Winner304 ][wait3] -> [ Winner305 ][wait0] again\nlate [ Winner303 ][wait3] -> [ Winner304 ][wait0] again\nlate [ Winner302 ][wait3] -> [ Winner303 ][wait0] again\nlate [ Winner301 ][wait3] -> [ Winner302 ][wait0] again\n\nlate [ Winner211 ] -> Win\nlate [ Winner210 ][wait3] -> [ Winner211 ][wait0] again\nlate [ Winner209 ][wait3] -> [ Winner210 ][wait0] again\nlate [ Winner208 ][wait3] -> [ Winner209 ][wait0] again\nlate [ Winner207 ][wait3] -> [ Winner208 ][wait0] again\nlate [ Winner206 ][wait3] -> [ Winner207 ][wait0] again\nlate [ Winner205 ][wait3] -> [ Winner206 ][wait0] again\nlate [ Winner204 ][wait3] -> [ Winner205 ][wait0] again\nlate [ Winner203 ][wait3] -> [ Winner204 ][wait0] again\nlate [ Winner202 ][wait3] -> [ Winner203 ][wait0] again\nlate [ Winner201 ][wait3] -> [ Winner202 ][wait0] again\n\nlate [ Winner109 ] -> Win\nlate [ Winner108 ][wait3] -> [ Winner109 ][wait0] again\nlate [ Winner107 ][wait3] -> [ Winner108 ][wait0] again\nlate [ Winner106 ][wait3] -> [ Winner107 ][wait0] again\nlate [ Winner105 ][wait3] -> [ Winner106 ][wait0] again\nlate [ Winner104 ][wait3] -> [ Winner105 ][wait0] again\nlate [ Winner103 ][wait3] -> [ Winner104 ][wait0] again\nlate [ Winner102 ][wait3] -> [ Winner103 ][wait0] again\nlate [ Winner101 ][wait3] -> [ Winner102 ][wait0] again\n\nlate [ Winner008 ] -> Win\nlate [ Winner007 ][wait3] -> [ Winner008 ][wait0] again\nlate [ Winner006 ][wait3] -> [ Winner007 ][wait0] again\nlate [ Winner005 ][wait3] -> [ Winner006 ][wait0] again\nlate [ Winner004 ][wait3] -> [ Winner005 ][wait0] again\nlate [ Winner003 ][wait3] -> [ Winner004 ][wait0] again\nlate [ Winner002 ][wait3] -> [ Winner003 ][wait0] again\nlate [ Winner001 ][wait3] -> [ Winner002 ][wait0] again\n\n\n(Apples and Mumblings)\n\nlate [ Player Apple ] -> [ Player AppleCore] sfx9\n\nlate [ Player m1 ] -> [ Player ] message Doesn't make much sense to put easter eggs into an open source game, does it? :)\nlate [ Player m2 ] -> [ Player ] message Ooooo! An apple!\nlate [ Player m3 ] -> [ Player ] message Who even builds warehouses like this!?\nlate [ Player m4 ] -> [ Player ] message Boy, has science funding in this country seen better days...\nlate [ Player m5 ] -> [ Player ] message You've gained +3 health!\nlate [ Player m6 ] -> [ Player ] message Wait... how was I supposed to find this one!?\n\n\n\n(The cutscene ;)\n\nlate [ Crate lastTarget ] -> [ yeaCrate lastTarget ]\nlate [lastTarget][ Crate ][ yeaCrate ] -> [lastTarget][ Crate ][ Crate ]\nlate down [yeaCrate][cloud | ... | Player] -> [lastCrateOnTarget][cloud fapple0 | ... | Player] sfx10 (the aimed apple spawn)\n\ndown [ fapple | Player ] -> [ fapple | Finalist0 wait0 ] sfx8 again\n\n(The intriguing pause)\n[Finalist2 wait5] -> [Genius] again\n[Finalist1 wait5] -> [Finalist2 wait0] again\n[Finalist0 wait5] -> [Finalist1 wait0] again\n\nrandom [cloud no fapple][Genius] -> [cloud random fapple][Genius]\ndown [ cloud fapple | ... | spaace no fapples | fapples] -> [ cloud fappleg | ... | spaace | fapples]\ndown [ fapples | no wall no players no fapples no lastCrateOnTarget] -> [> fapples |] again\ndown [fapples | ... | moving fapples] -> [ | ... | moving fapples]\n\n(These are only for sfx)\n[> fapples | | wall] -> [ | fapples | wall] sfx4\n[> fapples | | lastCrateOnTarget] -> [ | fapples | lastCrateOnTarget] sfx4\n[> fappleg | | fapples] -> [ | fappleg | fapples] sfx1\n[> fapple0 | | fapples] -> [ | fapple0 | fapples] sfx2\n[> fapple1 | | fapples] -> [ | fapple1 | fapples] sfx3\n[> fapple2 | | fapples] -> [ | fapple2 | fapples] sfx5\n[> fapple3 | | fapples] -> [ | fapple3 | fapples] sfx6\n\n(Randomize clouds for the next iteration)\n[Clearsky] -> [cloud]\n[moving fapple][cloud] -> [moving fapple][random Clearsky]\n[clearsky1] -> [cloud]\n[cloud] -> [cloud] again\n\n(Squashing)\nleft [stationary fapples | stationary squashing] -> [fapples squashL | squashing]\nright [stationary fapples | stationary squashing] -> [fapples squashR | squashing]\ndown [stationary fapples | stationary squashing] -> [fapples squashD | squashing]\nup [stationary fapples | stationary squashing] -> [fapples squashU | squashing]\n[squashU squashL] -> [squashU squashL squashUL]\n[squashU squashR] -> [squashU squashR squashUR]\n[squashD squashL] -> [squashD squashL squashDL]\n[squashD squashR] -> [squashD squashR squashDR]\n[squashD squashU squashL squashR] -> []\n\nright [stationary fappleg | stationary fappleg] -> [fappleg squashgR | squashgL fappleg]\ndown [stationary fappleg | stationary fappleg] -> [fappleg squashgD | squashgU fappleg]\n\n==============\nWINCONDITIONS\n==============\n\n(All zCrate on Target)\n\n=======\nLEVELS\n=======\n\n#####################\n#####################\n#####################\n#####################\n#######o#############\n#######.......#######\n#######.####1.#######\n#######z#...#.#######\n#######.#.p.#.#######\n#######.#...#.#######\n#######.##.##.#######\n#######......z#######\n#############o#######\n#####################\n#####################\n#####################\n#####################\n\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n###...............###\n###.......p.......###\n###..###########..###\n###o.z..*...*..z.o###\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n###...............###\n###.......p.......###\n##########*#####..###\n###o.z*********z.o###\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n\n####################\n####################\n####################\n####################\n######........######\n######....*...######\n######..####..######\n######..#..#..######\n######....z#..######\n######...###..######\n######.o......######\n######...p....######\n####################\n####################\n####################\n####################\n####################\n\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n########.....########\n###########..########\n########..z*.########\n########.p###########\n########....o########\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n\n#####################\n######.........######\n#####...........#####\n#####....p.z....#####\n#####...##.##...#####\n#####...#...#...#####\n#####...#.#.#...#####\n#####...#.@.#...#####\n#####...#.o.#...#####\n#####...#####...#####\n#####...#####...#####\n#####....####...#####\n#####...#####...#####\n#####....####...#####\n#####..2..####..#####\n#####..########.#####\n#####################\n\n####################\n####################\n####################\n####################\n##................##\n##....p...........##\n##..#####..#####..##\n##..#z**#..#zzz#..##\n##..#*#*#..#*.*#..##\n##..#**o#..#000#..##\n##..#####..#####..##\n##................##\n##................##\n####################\n####################\n####################\n####################\n\n#####################\n#####################\n#####################\n####.............####\n####.***********.####\n####.*.........*.####\n####.*.#######.*.####\n####.*.#######.*.####\n####.*.##.*.##.3.####\n####.*.##.*.##.*.####\n####.*.##.*.##.*.####\n####.*.##.*....*.####\n####.*p##.******.####\n####.zo##........####\n#####################\n#####################\n#####################\n\n#####################\n#####################\n#####..........######\n#####..........######\n#####........p.######\n#####...####*########\n#####...#***#....####\n#####...#*..*....####\n#####...#*..*....####\n#####...*#**z...o####\n#####...#........####\n#####...#...z....####\n#########...o....####\n#########........####\n#####################\n#####################\n#####################\n\n#####################\n#####################\n#####################\n##.............#...##\n##.............#...##\n##.............#...##\n##......z......#...##\n##...#####*##..#...##\n##...#..#o*.#..#...##\n##...#..###.####...##\n##...#....*........##\n##...#....*.p......##\n##...#.............##\n##...#.............##\n#####################\n#####################\n#####################\n\n####################\n######....##########\n######.#############\n###o##.......#######\n###z########.#######\n###.##******.#...###\n###......***.#.#.###\n######***.**.#.#.###\n######***.**.#.#.###\n####......***#.#.###\n####.#*******#.#####\n####.#*******..#####\n####.###############\n####.....p...#######\n############.#######\n#########....#######\n####################\n\n#####################\n#####################\n###.......p.......###\n###.#z##.###.#.##.###\n###.#*##.###.#.##.###\n###.#*##.###.#z##.###\n###.#*##.###*#*##.###\n###..*..*...*.*oo.###\n#####*##*###*#*######\n#####*##6###*#*######\n#####*##*###*#.######\n#####*##*###*#.######\n########.###.########\n############.########\n#####################\n#####################\n#####################\n\n#####################\n#####################\n###.######.######.###\n###..####...####..###\n###...##.....##...###\n###...#4******#...###\n###...#***z***#...###\n###...#***#***#...###\n###...#*******#...###\n###...#*******#...###\n###...####.####...###\n###...............###\n###...o.......p...###\n###...............###\n#####################\n#####################\n#####################\n\n#####################\n#####################\n####*#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*..*.####\n####p#*..*.#*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n####o.*.#*..*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#z.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n#####################\n#####################\n\n#####################\n#####################\n#####################\n############..#######\n#####.........#######\n#####..######.#######\n#####.p****5#.#######\n#####.##***##.#######\n#####.#.***.#.#######\n#####.#.****#########\n#####.#****....######\n#####.#######.z.#####\n#####.......#..o#####\n#####################\n#####################\n#####################\n#####################\n\nmessage No more than one more...\n\n##########.....########.o###########\n###........###...........###########\n###.######.#.z..####z#z#z###########\n###.######.#...#####...#o###########\n###.######.o.####.##.###.###########\n###.#######..#######.#...#####..####\n#.o.**#####.########.###o.####..z...\n#.###.#####.########......####.##o..\n....z.#####....#####....######*###.#\n..###.########.##############..o##.#\n#.....########.##############.p.z..#\n##############.###############.##..#\n############...##########.####.#####\n############z.o#########.#####.#####\n###########.*...##############.#####\n###########..#.................#####\n###########..#..####################\n\nmessage That's it!\nmessage I'm done!\nmessage I quit!\nmessage I'm going back to my calculus!\n\n#################################################\n#yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy#\n#...............................................#\n#..................................,............#\n#.....,,,,,,.......................,,...........#\n#.....,....,...................,,,,,,,..........#\n#.....,.........................................#\n#.....,................,,,.,,....,,,,...........#\n#.....,,,,.....,,,,,...,..,..,..,...,...........#\n#.....,................,..,..,..,...,...........#\n#.....,........,,,,,...,..,..,..,...,...........#\n#.....,................,..,..,..,...,..,,.......#\n#.....,................,..,..,...,,,,..,,.......#\n#.......................................,.......#\n#......................................,........#\n#...............................................#\n#.........,.............,.......................#\n#.........,.............,.......................#\n#.........,.............,.......................#\n#.........,.............,...............,.......#\n#......,,,,..,...,...,,,,...,,,.....,,...,......#\n#.....,...,..,...,..,...,..,...,....,,...,,.....#\n#.....,...,..,...,..,...,..,,,,,.........,,.....#\n#.....,...,..,...,..,...,..,........,,...,,.....#\n#.....,...,..,...,..,...,..,........,,...,,.....#\n#......,,,,...,,,,...,,,,...,,,......,...,......#\n#...................................,...,.......#\n#...............................................#\n#..................*........*...................#\n#.................***.......*..**...............#\n#................#####ggggg#####*...............#\n#................#####g###g#####*...............#\n#................#####g#h#g#####................#\n#.......p........#####h###g#####................#\n######################hhhhh######################\n\n", [1, 1, 1, 1, 1, 3, 0, 0, 0, 0, 0, 2, 0, 1, 2, 1, 0, 0, 1, 1, 1, 1, 0, 0, 3, 3, 0, 3, 0, 0, 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,\n0,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,background:1,1,1,1,1,1,1,1,1,1,\n1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,\n0,0,0,0,0,1,1,background player:2,1,1,1,1,1,1,1,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,1,background target:3,1,0,0,0,0,0,0,0,0,apple background crate m4:4,1,\nbackground crate:5,5,5,0,1,1,1,0,0,0,0,0,0,0,1,5,5,5,5,5,0,\n1,1,1,0,0,0,0,0,0,1,5,5,5,5,5,5,0,1,1,1,0,\n0,0,0,0,1,1,5,background zcrate:6,1,0,5,5,1,1,1,1,0,0,0,0,0,\n0,1,1,5,5,5,5,5,0,1,1,1,0,0,0,0,0,0,0,1,5,\n5,5,5,5,0,1,1,1,0,0,0,0,0,0,0,0,5,5,5,5,5,\n0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,\n0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,\n0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 12, "1627778916845.6555"] + ["title Newton's Crates\nauthor Andrey Shevchuk\nhomepage shevchuk.net\n\nbackground_color darkbrown\ntext_color lightgrey\nnoaction\n\nagain_interval 0.1\n\n========\nOBJECTS\n========\n\nBackground\nlightgrey\n00000\n00000\n00000\n00000\n00000\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nBROWN darkbrown\n11111\n11111\n11111\n11111\n11111\n\nPlayer\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nCrate\norange Yellow\n00000\n00000\n00000\n00000\n00000\n\nFinalist0\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nFinalist1\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nFinalist2\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nGenius\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner001\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner002\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner003\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.433.\n...4.\n\nWinner004\nGrey Orange White Brown Black\n.000.\n3010.\n.0303\n.334.\n.4...\n\nWinner005\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.433.\n...4.\n\nWinner006\nGrey Orange White Brown Black\n.000.\n3010.\n.0303\n.334.\n.4...\n\nWinner007\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.433.\n...4.\n\nWinner008\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nm1\ntransparent\n\nm2\ntransparent\n\nm3\ntransparent\n\nm4\ntransparent\n\nm5\ntransparent\n\nm6\ntransparent\n\n\nWinner101\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner102\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner103\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner104\nGrey Orange White Brown Black\n.000.\n.013.\n3033.\n.333.\n.4.4.\n\nWinner105\nGrey Orange White Brown Black\n.000.\n.030.\n3033.\n.333.\n.4.4.\n\nWinner106\nGrey Orange White Brown Black\n.000.\n.013.\n3033.\n.333.\n.4.4.\n\nWinner107\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner108\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner109\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner201\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner202\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner203\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner204\nGrey Orange White Brown Black\n.....\n.0003\n3000.\n.030.\n.4.4.\n\nWinner205\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner206\nGrey Orange White Brown Black\n.....\n.0003\n3000.\n.030.\n.4.4.\n\nWinner207\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner208\nGrey Orange White Brown Black\n.....\n.0003\n3000.\n.030.\n.4.4.\n\nWinner209\nGrey Orange White Brown Black\n.000.\n.0103\n3030.\n.333.\n.4.4.\n\nWinner210\nGrey Orange White Brown Black\n.....\n.0003\n3000.\n.030.\n.4.4.\n\nWinner211\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner301\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner302\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner303\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.343.\n.4...\n\nWinner304\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.334.\n.4...\n\n\nWinner305\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4..4\n\nWinner306\nGrey Orange White Brown Black\n.000.\n3010.\n.0303\n.333.\n.4..4\n\nWinner307\nGrey Orange White Brown Black\n.000.\n30103\n.030.\n.333.\n.4..4\n\nWinner308\nGrey Orange White Brown Black DarkBrown\n.000.\n3010.\n.030.\n.3335\n.4..4\n\nWinner309\nGrey Orange White Brown Black DarkBrown\n.000.\n3010.\n.030.\n.3335\n.4..4\n\n(Hiding amongst the winners, a fruit)\n\nApple\nGreen Red Transparent DarkRed\n22200\n21032\n11133\n11133\n21332\n\nAppleCore\nGreen Red Transparent DarkRed White\n22200\n21032\n22422\n22342\n21332\n\nWinner401\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner402\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner403\nGrey Orange White Brown Black\n.000.\n30103\n.030.\n.333.\n.4.4.\n\nWinner404\nGrey Orange White Brown Black\n.000.\n.313.\n.333.\n.333.\n.4.4.\n\nWinner405\nGrey Orange White Brown Black\n.000.\n30103\n.030.\n.333.\n.4.4.\n\nWinner406\nGrey Orange White Brown Black\n.000.\n.313.\n.333.\n.333.\n.4.4.\n\nWinner407\nGrey Orange White Brown Black\n.000.\n30103\n.030.\n.333.\n.4.4.\n\nWinner408\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner409\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner501\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner502\nGrey Orange White Brown Black\n.000.\n.010.\n30303\n.333.\n.4.4.\n\nWinner503\nGrey Orange White Brown Black\n.....\n.000.\n30103\n.030.\n.4.4.\n\nWinner504\nGrey Orange White Brown Black DarkGrey\n.....\n.000.\n30003\n.030.\n.5.5.\n\nWinner505\nGrey Orange White Brown Black DarkGrey\n.....\n.000.\n30003\n.000.\n.5.5.\n\nWinner506\nGrey Orange White Brown Black DarkGrey\n.....\n30003\n.000.\n.000.\n.5.5.\n\nWinner507\nGrey Orange White Brown Black DarkGrey\n.....\n30003\n.000.\n.000.\n.5.5.\n\nWinner508\nGrey Orange White Brown Black DarkGrey\n.....\n30003\n.000.\n.000.\n.5.5.\n\nWinner509\nGrey Orange White Brown Black DarkGrey\n.....\n30003\n.000.\n.000.\n.5.5.\n\nwait0\ntransparent\n\nwait1\ntransparent\n\nwait2\ntransparent\n\nwait3\ntransparent\n\nwait4\ntransparent\n\nwait5\ntransparent\n\nCloud\ngreen (as usual)\n.....\n.....\n.....\n.....\n.....\n\nclearsky1\ntransparent yellow\n\nclearsky2\ntransparent yellow\n\nclearsky3\ntransparent yellow\n\nfapple0\nGreen #9a1f2a Transparent DarkRed\n22200\n21032\n11133\n11133\n21332\n\nfapple1\n#2a6308 DarkRed Transparent DarkRed\n22002\n21100\n11113\n11133\n23332\n\nfapple2\n#59a72a Red Transparent Red\n22202\n21032\n11133\n11333\n21332\n\nfapple3\n#32720C #9a1f2a Transparent #9a1f2a\n00222\n21032\n11133\n11133\n23332\n\nsquashUL\nGreen Red Transparent DarkRed\n11122\n12222\n22222\n22222\n22222\n\nsquashUR\nGreen Red Transparent Red\n22333\n22223\n22222\n22222\n22222\n\nsquashDL\nGreen Red Transparent DarkRed\n22222\n22222\n22222\n22222\n12222\n\nsquashDR\nGreen Red Transparent Red\n22222\n22222\n22222\n22223\n22233\n\nfappleg\n#29580d #71ae4c Transparent #50723b\n22200\n21032\n11133\n11133\n21332\n\nsquashgU\n#50723b Red Transparent DarkRed\n20022\n22222\n22222\n22222\n22222\n\nsquashgR\n#29580d #71ae4c Transparent #50723b\n22222\n22222\n22222\n22222\n22223\n\nsquashgL\n#29580d #71ae4c Transparent #50723b\n22222\n22222\n22222\n22222\n32222\n\nsquashgD\n#29580d #71ae4c Transparent #50723b\n22222\n22222\n22222\n22222\n32222\n\nsquashU\ntransparent\n\nsquashR\ntransparent\n\nsquashL\ntransparent\n\nsquashD\ntransparent\n\nspaace\nblue\n.....\n.....\n.....\n.....\n.....\n\nzCrate\nOrange Yellow\n00000\n0...0\n0.0.0\n0...0\n00000\n\nlastCrateOnTarget\nRed Yellow\n00000\n00000\n00000\n00000\n00000\n\nlastTarget\ntransparent\n\nyeaCrate\nOrange Yellow\n00000\n0...0\n0.0.0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\nz = zCrate\n0 = Crate and Target\n@ = zCrate and Target\no = Target\na = Apple\nc = AppleCore\n1 = m1 and Apple and Crate\n2 = m2 and Apple\n3 = m3 and Apple and Crate\n4 = m4 and Apple and Crate\n5 = m5 and Apple and Crate\n6 = m6 and Apple and Crate\ny = cloud\n, = spaace\ng = lastTarget\nh = lastTarget and Crate\n\nInertial = Crate or zCrate or Wall or lastCrateOnTarget\n\nMumbling = m1 or m2 or m3 or m4 or m5 or m6\n\nClearsky = clearsky1 or clearsky2 or clearsky3\nFapple = fapple0 or fapple1 or fapple2 or fapple3\nFapples = Fapple or fappleg\nFinalists = Finalist0 or Finalist1 or Finalist2\nPlayers = Player or Finalists or Genius\nSquashing = fapple or Wall or fappleg or lastCrateOnTarget\n\nWaitFrames = wait0 or wait1 or wait2 or wait3 or wait4 or wait5\n\nWinAnimationStartFrame = Winner001 or Winner101 or Winner201 or Winner301 or Winner401 or Winner501\n\nWinnerFrames = Winner001 or Winner002 or Winner003 or Winner004 or Winner005 or Winner006 or Winner007 or Winner008 or Winner101 or Winner102 or Winner103 or Winner104 or Winner105 or Winner106 or Winner107 or Winner108 or Winner109 or Winner201 or Winner202 or Winner203 or Winner204 or Winner205 or Winner206 or Winner207 or Winner208 or Winner209 or Winner210 or Winner211 or Winner301 or Winner302 or Winner303 or Winner304 or Winner305 or Winner306 or Winner307 or Winner308 or Winner309 or Winner401 or Winner402 or Winner403 or Winner404 or Winner405 or Winner406 or Winner407 or Winner408 or Winner409 or Winner501 or Winner502 or Winner503 or Winner504 or Winner505 or Winner506 or Winner507 or Winner508 or Winner509\n\n=======\nSOUNDS\n=======\n\nInertial MOVE 62522307 (66976107) (36772507) (36718107)\n(Player Move 61661707) (too repetitive on long runs)\nsfx0 60497100 (zCrate moves on target)\n(sfx1 (58358104) (16763304) (bumping into a wall))\n\nsfx1 17123907 (green)\nsfx2 74112904\nsfx3 60342907\nsfx5 47189907\nsfx6 68393107\nsfx4 21039704 (wall)\nsfx10 70198308\nsfx7 65707900 (Level Complete)\nUndo 54083907\nRestart 5315306\nsfx9 94701308 (30980508) (16825502) (apple!)\nsfx8 67172908 (eurika)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nsquashUL \nsquashUR\nsquashDL\nsquashDR\nsquashgU\nsquashgD\nsquashgL\nsquashgR\nsquashU\nsquashL\nsquashD\nsquashR, WaitFrames, Mumbling\nTarget, Apple, AppleCore, cloud, Clearsky, spaace, lastTarget\nPlayers, Inertial, yeaCrate, WinnerFrames, fapples\n\n======\nRULES\n======\n\n(The actual rules of the game)\n\n[ > Player | Inertial ] -> [ > Player | > Inertial ]\n[ > Inertial | Inertial ] -> [ Inertial | > Inertial ]\n[ > Wall ] -> [ Wall ]\n[ > zCrate | Target ] -> [ > zCrate | Target ] sfx0\n\n\n(Win conditions, convoluted for the purposes of animation)\n\nlate [ zCrate Target ] -> [ yeaCrate Target ]\nlate [ yeaCrate ][ zCrate ] -> [ zCrate ][ zCrate ]\nlate [ yeaCrate ][Player] -> [yeaCrate][ wait0 random WinAnimationStartFrame ] sfx7\n\n\n(Win animations)\n\nlate [wait4] -> [wait5] again\nlate [wait3] -> [wait4] again\nlate [wait2] -> [wait3] again\nlate [wait1] -> [wait2] again\nlate [wait0] -> [wait1] again\n\nlate [ Winner509 ] -> Win\nlate [ Winner508 ][wait3] -> [ Winner509 ][wait0] again\nlate [ Winner507 ][wait3] -> [ Winner508 ][wait0] again\nlate [ Winner506 ][wait3] -> [ Winner507 ][wait0] again\nlate [ Winner505 ][wait3] -> [ Winner506 ][wait0] again\nlate [ Winner504 ][wait3] -> [ Winner505 ][wait0] again\nlate [ Winner503 ][wait3] -> [ Winner504 ][wait0] again\nlate [ Winner502 ][wait3] -> [ Winner503 ][wait0] again\nlate [ Winner501 ][wait3] -> [ Winner502 ][wait0] again\n\nlate [ Winner409 ] -> Win\nlate [ Winner408 ][wait3] -> [ Winner409 ][wait0] again\nlate [ Winner407 ][wait3] -> [ Winner408 ][wait0] again\nlate [ Winner406 ][wait3] -> [ Winner407 ][wait0] again\nlate [ Winner405 ][wait3] -> [ Winner406 ][wait0] again\nlate [ Winner404 ][wait3] -> [ Winner405 ][wait0] again\nlate [ Winner403 ][wait3] -> [ Winner404 ][wait0] again\nlate [ Winner402 ][wait3] -> [ Winner403 ][wait0] again\nlate [ Winner401 ][wait3] -> [ Winner402 ][wait0] again\n\nlate [ Winner309 ] -> Win\nlate [ Winner308 ][wait3] -> [ Winner309 ][wait0] again\nlate [ Winner307 ][wait3] -> [ Winner308 ][wait0] again\nlate [ Winner306 ][wait3] -> [ Winner307 ][wait0] again\nlate [ Winner305 ][wait3] -> [ Winner306 ][wait0] again\nlate [ Winner304 ][wait3] -> [ Winner305 ][wait0] again\nlate [ Winner303 ][wait3] -> [ Winner304 ][wait0] again\nlate [ Winner302 ][wait3] -> [ Winner303 ][wait0] again\nlate [ Winner301 ][wait3] -> [ Winner302 ][wait0] again\n\nlate [ Winner211 ] -> Win\nlate [ Winner210 ][wait3] -> [ Winner211 ][wait0] again\nlate [ Winner209 ][wait3] -> [ Winner210 ][wait0] again\nlate [ Winner208 ][wait3] -> [ Winner209 ][wait0] again\nlate [ Winner207 ][wait3] -> [ Winner208 ][wait0] again\nlate [ Winner206 ][wait3] -> [ Winner207 ][wait0] again\nlate [ Winner205 ][wait3] -> [ Winner206 ][wait0] again\nlate [ Winner204 ][wait3] -> [ Winner205 ][wait0] again\nlate [ Winner203 ][wait3] -> [ Winner204 ][wait0] again\nlate [ Winner202 ][wait3] -> [ Winner203 ][wait0] again\nlate [ Winner201 ][wait3] -> [ Winner202 ][wait0] again\n\nlate [ Winner109 ] -> Win\nlate [ Winner108 ][wait3] -> [ Winner109 ][wait0] again\nlate [ Winner107 ][wait3] -> [ Winner108 ][wait0] again\nlate [ Winner106 ][wait3] -> [ Winner107 ][wait0] again\nlate [ Winner105 ][wait3] -> [ Winner106 ][wait0] again\nlate [ Winner104 ][wait3] -> [ Winner105 ][wait0] again\nlate [ Winner103 ][wait3] -> [ Winner104 ][wait0] again\nlate [ Winner102 ][wait3] -> [ Winner103 ][wait0] again\nlate [ Winner101 ][wait3] -> [ Winner102 ][wait0] again\n\nlate [ Winner008 ] -> Win\nlate [ Winner007 ][wait3] -> [ Winner008 ][wait0] again\nlate [ Winner006 ][wait3] -> [ Winner007 ][wait0] again\nlate [ Winner005 ][wait3] -> [ Winner006 ][wait0] again\nlate [ Winner004 ][wait3] -> [ Winner005 ][wait0] again\nlate [ Winner003 ][wait3] -> [ Winner004 ][wait0] again\nlate [ Winner002 ][wait3] -> [ Winner003 ][wait0] again\nlate [ Winner001 ][wait3] -> [ Winner002 ][wait0] again\n\n\n(Apples and Mumblings)\n\nlate [ Player Apple ] -> [ Player AppleCore] sfx9\n\nlate [ Player m1 ] -> [ Player ] message Doesn't make much sense to put easter eggs into an open source game, does it? :)\nlate [ Player m2 ] -> [ Player ] message Ooooo! An apple!\nlate [ Player m3 ] -> [ Player ] message Who even builds warehouses like this!?\nlate [ Player m4 ] -> [ Player ] message Boy, has science funding in this country seen better days...\nlate [ Player m5 ] -> [ Player ] message You've gained +3 health!\nlate [ Player m6 ] -> [ Player ] message Wait... how was I supposed to find this one!?\n\n\n\n(The cutscene ;)\n\nlate [ Crate lastTarget ] -> [ yeaCrate lastTarget ]\nlate [lastTarget][ Crate ][ yeaCrate ] -> [lastTarget][ Crate ][ Crate ]\nlate down [yeaCrate][cloud | ... | Player] -> [lastCrateOnTarget][cloud fapple0 | ... | Player] sfx10 (the aimed apple spawn)\n\ndown [ fapple | Player ] -> [ fapple | Finalist0 wait0 ] sfx8 again\n\n(The intriguing pause)\n[Finalist2 wait5] -> [Genius] again\n[Finalist1 wait5] -> [Finalist2 wait0] again\n[Finalist0 wait5] -> [Finalist1 wait0] again\n\nrandom [cloud no fapple][Genius] -> [cloud random fapple][Genius]\ndown [ cloud fapple | ... | spaace no fapples | fapples] -> [ cloud fappleg | ... | spaace | fapples]\ndown [ fapples | no wall no players no fapples no lastCrateOnTarget] -> [> fapples |] again\ndown [fapples | ... | moving fapples] -> [ | ... | moving fapples]\n\n(These are only for sfx)\n[> fapples | | wall] -> [ | fapples | wall] sfx4\n[> fapples | | lastCrateOnTarget] -> [ | fapples | lastCrateOnTarget] sfx4\n[> fappleg | | fapples] -> [ | fappleg | fapples] sfx1\n[> fapple0 | | fapples] -> [ | fapple0 | fapples] sfx2\n[> fapple1 | | fapples] -> [ | fapple1 | fapples] sfx3\n[> fapple2 | | fapples] -> [ | fapple2 | fapples] sfx5\n[> fapple3 | | fapples] -> [ | fapple3 | fapples] sfx6\n\n(Randomize clouds for the next iteration)\n[Clearsky] -> [cloud]\n[moving fapple][cloud] -> [moving fapple][random Clearsky]\n[clearsky1] -> [cloud]\n[cloud] -> [cloud] again\n\n(Squashing)\nleft [stationary fapples | stationary squashing] -> [fapples squashL | squashing]\nright [stationary fapples | stationary squashing] -> [fapples squashR | squashing]\ndown [stationary fapples | stationary squashing] -> [fapples squashD | squashing]\nup [stationary fapples | stationary squashing] -> [fapples squashU | squashing]\n[squashU squashL] -> [squashU squashL squashUL]\n[squashU squashR] -> [squashU squashR squashUR]\n[squashD squashL] -> [squashD squashL squashDL]\n[squashD squashR] -> [squashD squashR squashDR]\n[squashD squashU squashL squashR] -> []\n\nright [stationary fappleg | stationary fappleg] -> [fappleg squashgR | squashgL fappleg]\ndown [stationary fappleg | stationary fappleg] -> [fappleg squashgD | squashgU fappleg]\n\n==============\nWINCONDITIONS\n==============\n\n(All zCrate on Target)\n\n=======\nLEVELS\n=======\n\n#####################\n#####################\n#####################\n#####################\n#######o#############\n#######.......#######\n#######.####1.#######\n#######z#...#.#######\n#######.#.p.#.#######\n#######.#...#.#######\n#######.##.##.#######\n#######......z#######\n#############o#######\n#####################\n#####################\n#####################\n#####################\n\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n###...............###\n###.......p.......###\n###..###########..###\n###o.z..*...*..z.o###\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n###...............###\n###.......p.......###\n##########*#####..###\n###o.z*********z.o###\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n\n####################\n####################\n####################\n####################\n######........######\n######....*...######\n######..####..######\n######..#..#..######\n######....z#..######\n######...###..######\n######.o......######\n######...p....######\n####################\n####################\n####################\n####################\n####################\n\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n########.....########\n###########..########\n########..z*.########\n########.p###########\n########....o########\n#####################\n#####################\n#####################\n#####################\n#####################\n#####################\n\n#####################\n######.........######\n#####...........#####\n#####....p.z....#####\n#####...##.##...#####\n#####...#...#...#####\n#####...#.#.#...#####\n#####...#.@.#...#####\n#####...#.o.#...#####\n#####...#####...#####\n#####...#####...#####\n#####....####...#####\n#####...#####...#####\n#####....####...#####\n#####..2..####..#####\n#####..########.#####\n#####################\n\n####################\n####################\n####################\n####################\n##................##\n##....p...........##\n##..#####..#####..##\n##..#z**#..#zzz#..##\n##..#*#*#..#*.*#..##\n##..#**o#..#000#..##\n##..#####..#####..##\n##................##\n##................##\n####################\n####################\n####################\n####################\n\n#####################\n#####################\n#####################\n####.............####\n####.***********.####\n####.*.........*.####\n####.*.#######.*.####\n####.*.#######.*.####\n####.*.##.*.##.3.####\n####.*.##.*.##.*.####\n####.*.##.*.##.*.####\n####.*.##.*....*.####\n####.*p##.******.####\n####.zo##........####\n#####################\n#####################\n#####################\n\n#####################\n#####################\n#####..........######\n#####..........######\n#####........p.######\n#####...####*########\n#####...#***#....####\n#####...#*..*....####\n#####...#*..*....####\n#####...*#**z...o####\n#####...#........####\n#####...#...z....####\n#########...o....####\n#########........####\n#####################\n#####################\n#####################\n\n#####################\n#####################\n#####################\n##.............#...##\n##.............#...##\n##.............#...##\n##......z......#...##\n##...#####*##..#...##\n##...#..#o*.#..#...##\n##...#..###.####...##\n##...#....*........##\n##...#....*.p......##\n##...#.............##\n##...#.............##\n#####################\n#####################\n#####################\n\n####################\n######....##########\n######.#############\n###o##.......#######\n###z########.#######\n###.##******.#...###\n###......***.#.#.###\n######***.**.#.#.###\n######***.**.#.#.###\n####......***#.#.###\n####.#*******#.#####\n####.#*******..#####\n####.###############\n####.....p...#######\n############.#######\n#########....#######\n####################\n\n#####################\n#####################\n###.......p.......###\n###.#z##.###.#.##.###\n###.#*##.###.#.##.###\n###.#*##.###.#z##.###\n###.#*##.###*#*##.###\n###..*..*...*.*oo.###\n#####*##*###*#*######\n#####*##6###*#*######\n#####*##*###*#.######\n#####*##*###*#.######\n########.###.########\n############.########\n#####################\n#####################\n#####################\n\n#####################\n#####################\n###.######.######.###\n###..####...####..###\n###...##.....##...###\n###...#4******#...###\n###...#***z***#...###\n###...#***#***#...###\n###...#*******#...###\n###...#*******#...###\n###...####.####...###\n###...............###\n###...o.......p...###\n###...............###\n#####################\n#####################\n#####################\n\n#####################\n#####################\n####*#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*..*.####\n####p#*..*.#*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n####o.*.#*..*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#z.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n####.#*.#*.#*.#*.####\n#####################\n#####################\n\n#####################\n#####################\n#####################\n############..#######\n#####.........#######\n#####..######.#######\n#####.p****5#.#######\n#####.##***##.#######\n#####.#.***.#.#######\n#####.#.****#########\n#####.#****....######\n#####.#######.z.#####\n#####.......#..o#####\n#####################\n#####################\n#####################\n#####################\n\nmessage No more than one more...\n\n##########.....########.o###########\n###........###...........###########\n###.######.#.z..####z#z#z###########\n###.######.#...#####...#o###########\n###.######.o.####.##.###.###########\n###.#######..#######.#...#####..####\n#.o.**#####.########.###o.####..z...\n#.###.#####.########......####.##o..\n....z.#####....#####....######*###.#\n..###.########.##############..o##.#\n#.....########.##############.p.z..#\n##############.###############.##..#\n############...##########.####.#####\n############z.o#########.#####.#####\n###########.*...##############.#####\n###########..#.................#####\n###########..#..####################\n\nmessage That's it!\nmessage I'm done!\nmessage I quit!\nmessage I'm going back to my calculus!\n\n#################################################\n#yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy#\n#...............................................#\n#..................................,............#\n#.....,,,,,,.......................,,...........#\n#.....,....,...................,,,,,,,..........#\n#.....,.........................................#\n#.....,................,,,.,,....,,,,...........#\n#.....,,,,.....,,,,,...,..,..,..,...,...........#\n#.....,................,..,..,..,...,...........#\n#.....,........,,,,,...,..,..,..,...,...........#\n#.....,................,..,..,..,...,..,,.......#\n#.....,................,..,..,...,,,,..,,.......#\n#.......................................,.......#\n#......................................,........#\n#...............................................#\n#.........,.............,.......................#\n#.........,.............,.......................#\n#.........,.............,.......................#\n#.........,.............,...............,.......#\n#......,,,,..,...,...,,,,...,,,.....,,...,......#\n#.....,...,..,...,..,...,..,...,....,,...,,.....#\n#.....,...,..,...,..,...,..,,,,,.........,,.....#\n#.....,...,..,...,..,...,..,........,,...,,.....#\n#.....,...,..,...,..,...,..,........,,...,,.....#\n#......,,,,...,,,,...,,,,...,,,......,...,......#\n#...................................,...,.......#\n#...............................................#\n#..................*........*...................#\n#.................***.......*..**...............#\n#................#####ggggg#####*...............#\n#................#####g###g#####*...............#\n#................#####g#h#g#####................#\n#.......p........#####h###g#####................#\n######################hhhhh######################\n\n",[1,1,1,1,1,3,0,0,0,0,0,2,0,1,2,1,0,0,1,1,1,1,0,0,3,3,0,3,0,0,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,\n0,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,background:1,1,1,1,1,1,1,1,1,1,\n1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,\n0,0,0,0,0,1,1,background player:2,1,1,1,1,1,1,1,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,1,background target:3,1,0,0,0,0,0,0,0,0,apple background crate m4:4,1,\nbackground crate:5,5,5,0,1,1,1,0,0,0,0,0,0,0,1,5,5,5,5,5,0,\n1,1,1,0,0,0,0,0,0,1,5,5,5,5,5,5,0,1,1,1,0,\n0,0,0,0,1,1,5,background zcrate:6,1,0,5,5,1,1,1,1,0,0,0,0,0,\n0,1,1,5,5,5,5,5,0,1,1,1,0,0,0,0,0,0,0,1,5,\n5,5,5,5,0,1,1,1,0,0,0,0,0,0,0,0,5,5,5,5,5,\n0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,\n0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,\n0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",12,"1627778916845.6555"] ], [ `gallery: count mover`, - ["title Count Mover\nauthor Jonah Ostroff\nrun_rules_on_level_start\nkey_repeat_interval .5\nagain_interval 1\n\n========\nOBJECTS\n========\nBackground\n#AAA #EEE\n00000\n00010\n00000\n00100\n00000\n\nWall\n#842 #420\n01000\n11111\n00010\n11111\n01000\n\nPlayer\n#222 #57F #111\n.111.\n.111.\n00100\n.000.\n00.00\n\nGoal\nRed Yellow\n.000.\n01110\n01010\n01110\n.000.\n\nCrate\n#630 #951\n.....\n.000.\n.010.\n.000.\n.....\n\nN1\nWhite\n...0.\n..00.\n...0.\n...0.\n...0.\n\nN2\nWhite\n..00.\n.0..0\n...0.\n..0..\n.0000\n\nN3\nWhite\n..00.\n.0..0\n...0.\n.0..0\n..00.\n\nN4\nWhite\n.0..0\n.0..0\n.0000\n....0\n....0\n\nN5\nWhite\n.0000\n.0...\n.000.\n....0\n.000.\n\nN6\nWhite\n..00.\n.0...\n.000.\n.0..0\n..00.\n\nN7\nWhite\n.0000\n....0\n...0.\n..0..\n..0..\n\nN8\nWhite\n..00.\n.0..0\n..00.\n.0..0\n..00.\n\nN9\nWhite\n..00.\n.0..0\n..000\n....0\n..00.\n\nN0\nWhite\n..00.\n.0..0\n.0..0\n.0..0\n..00.\n\nPlus\nTransparent\n\nMinus\nTransparent\n\nNback\nBlack\n\nCountstart\nTransparent\n\nOnes\nTransparent\n\nStep1\nWhite\n.....\n....0\n.....\n.....\n....0\n\nStep2\nWhite\n00.00\n....0\n0...0\n.0..0\n0...0\n\nStep3\nWhite\n0.000\n..0..\n..00.\n..0..\n..000\n\nStep4\nWhite\n.00..\n.0.0.\n.00..\n.0...\n.0...\n\nStep5\nWhite\n.00..\n0...0\n.0...\n..0.0\n00...\n\nMin1\nWhite\n...00\n..0..\n..0.0\n..0..\n...00\n\nMin2\nWhite\n...0.\n..0.0\n0.0.0\n0.0.0\n...0.\n\nMin3\nWhite\n..0..\n.0.0.\n.000.\n.0.0.\n.0.0.\n\nMin4\nWhite\n0....\n0...0\n0....\n0...0\n000..\n\nDone\nTransparent\n\nResultBox\n#BBB\n.....\n.000.\n.0.0.\n.000.\n.....\n\nCheckBox\n#22F\n....0\n....0\n0..0.\n.0.0.\n..0..\n\nXBox\n#F00\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\n\nEnding1\nTransparent\n\nEnding2\nTransparent\n\nEnding3\nTransparent\n\nEnding4\nTransparent\n\n=======\nLEGEND\n=======\nMin = Min1 or Min2 or Min3 or Min4\nSteps = Step1 or Step2 or Step3 or Step4 or Step5\nNumber = N0 or N1 or N2 or N3 or N4 or N5 or N6 or N7 or N8 or N9\n\nEnding = Ending1 or Ending2 or Ending3 or Ending4\n\n# = Wall\n. = Background\n@ = Player\n* = Crate\nG = Goal\n0 = N0 and Nback\n! = N0 and Ones and Nback\n~ = Nback\n5 = Step5 and NBack\nR = Resultbox and NBack\n\n=======\nSOUNDS\n=======\nSfx1 97503900 (Done)\nSfx2 96982503 (See goal)\nSfx3 62353502 (Fail)\nSfx4 25691300 (Success!)\nPlayer CantMove 74490707\nCrate Move 76468107\n================\nCOLLISIONLAYERS\n================\nBackground\nNBack\nGoal ResultBox\nWall Player Crate Number Steps Min XBox Checkbox\nOnes Done Ending\nPlus Minus\nCountstart\n======\nRULES\n======\nRight[||||Step5] -> [Step1|Step2|Step3|Step4|Step5]\n\n[Player] -> [Player Countstart]\n\n[> Player|Crate] -> [> Player|> Crate]\n\nlate [Player no Countstart][Ones] -> [Player][Ones Plus]\n\n(Are we done?)\nlate [Player no Ending] -> [Player Done]\nlate [Done][Goal no Crate] -> [][Goal]\nlate [Ending3] -> [Ending4]\nlate [Ending2] -> [Ending3]\nlate [Ending1] -> [Ending2] Sfx2\nlate [Done] -> [Ending1] Sfx1\n\nlate [Ending4][Checkbox] -> [Ending4][Checkbox] Message Very efficient!\n\nlate [Ending4][XBox] -> [Ending4][XBox] Message I solved the puzzle! But I wasn't very efficient.\n\nlate RIGHT [Ending3][Step5|N0|N0][ResultBox] -> [Ending3][Step5|N0|N0][Resultbox Checkbox] Sfx4\nlate RIGHT [Ending3][ResultBox no CheckBox] -> [Ending3][ResultBox XBox] Sfx3\n\n\nstartloop\nlate [Plus N0] -> [N1]\nlate [Plus N1] -> [N2]\nlate [Plus N2] -> [N3]\nlate [Plus N3] -> [N4]\nlate [Plus N4] -> [N5]\nlate [Plus N5] -> [N6]\nlate [Plus N6] -> [N7]\nlate [Plus N7] -> [N8]\nlate [Plus N8] -> [N9]\nlate LEFT [Plus N9|] -> [N0|Plus]\nendloop\n\nlate [Plus] -> []\n\nlate UP [Ending2][Number||no Number] -> [Ending2][Number||Number]\nlate UP [Ending2][Ones||][Step5||] -> [Ending2][||Minus][Step5||Min4]\nlate Right [||||Min4] -> [ResultBox|Min1|Min2|Min3|Min4]\n\nstartloop\nlate [Minus N1] -> [N0]\nlate [Minus N2] -> [N1]\nlate [Minus N3] -> [N2]\nlate [Minus N4] -> [N3]\nlate [Minus N5] -> [N4]\nlate [Minus N6] -> [N5]\nlate [Minus N7] -> [N6]\nlate [Minus N8] -> [N7]\nlate [Minus N9] -> [N8]\nlate LEFT [Minus N0|] -> [N9|Minus]\nendloop\n\nlate [Minus] -> []\n\nlate [Countstart] -> []\n\nlate [Ending] -> [Ending] again\n\n==============\nWINCONDITIONS\n==============\nAll Crate on Goal\nSome Ending4\n=======\nLEVELS\n=======\nMessage Here at Count Mover's Moving Company, you can count on me to move your boxes as efficiently as possible.\n\n~~~~~~~~~\n~~~~~~~~~\n~~~~~~50!\n#########\n#...#...#\n#.G.#.@.#\n#.*.#...#\n#.G*##.##\n#.*GGG*.#\n#.G***G.#\n#.......#\n#########\n\n\n", [0, 2, 2, 2, 2, 3, 2, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 3, 2], "background nback:0,0,0,background wall:1,1,1,1,1,1,\n1,1,1,0,0,0,1,background:2,2,\n2,2,background crate:3,2,2,1,0,0,background nback step1:4,\n1,2,background goal:5,background player:6,background crate goal:7,2,5,2,1,\n0,0,background nback step2:8,1,2,2,2,3,5,\n3,2,1,0,0,background nback step3:9,1,1,1,\n1,1,5,3,2,1,0,0,background nback step4:10,\n1,2,2,2,1,5,3,2,1,\n0,0,background nback step5:11,1,2,2,2,2,2,\n7,2,1,0,0,background n1 nback:12,1,2,2,\n2,1,2,2,2,1,0,0,background n9 nback ones:13,\n1,1,1,1,1,1,1,1,1,\n", 1, "1627778943492.7725"] + ["title Count Mover\nauthor Jonah Ostroff\nrun_rules_on_level_start\nkey_repeat_interval .5\nagain_interval 1\n\n========\nOBJECTS\n========\nBackground\n#AAA #EEE\n00000\n00010\n00000\n00100\n00000\n\nWall\n#842 #420\n01000\n11111\n00010\n11111\n01000\n\nPlayer\n#222 #57F #111\n.111.\n.111.\n00100\n.000.\n00.00\n\nGoal\nRed Yellow\n.000.\n01110\n01010\n01110\n.000.\n\nCrate\n#630 #951\n.....\n.000.\n.010.\n.000.\n.....\n\nN1\nWhite\n...0.\n..00.\n...0.\n...0.\n...0.\n\nN2\nWhite\n..00.\n.0..0\n...0.\n..0..\n.0000\n\nN3\nWhite\n..00.\n.0..0\n...0.\n.0..0\n..00.\n\nN4\nWhite\n.0..0\n.0..0\n.0000\n....0\n....0\n\nN5\nWhite\n.0000\n.0...\n.000.\n....0\n.000.\n\nN6\nWhite\n..00.\n.0...\n.000.\n.0..0\n..00.\n\nN7\nWhite\n.0000\n....0\n...0.\n..0..\n..0..\n\nN8\nWhite\n..00.\n.0..0\n..00.\n.0..0\n..00.\n\nN9\nWhite\n..00.\n.0..0\n..000\n....0\n..00.\n\nN0\nWhite\n..00.\n.0..0\n.0..0\n.0..0\n..00.\n\nPlus\nTransparent\n\nMinus\nTransparent\n\nNback\nBlack\n\nCountstart\nTransparent\n\nOnes\nTransparent\n\nStep1\nWhite\n.....\n....0\n.....\n.....\n....0\n\nStep2\nWhite\n00.00\n....0\n0...0\n.0..0\n0...0\n\nStep3\nWhite\n0.000\n..0..\n..00.\n..0..\n..000\n\nStep4\nWhite\n.00..\n.0.0.\n.00..\n.0...\n.0...\n\nStep5\nWhite\n.00..\n0...0\n.0...\n..0.0\n00...\n\nMin1\nWhite\n...00\n..0..\n..0.0\n..0..\n...00\n\nMin2\nWhite\n...0.\n..0.0\n0.0.0\n0.0.0\n...0.\n\nMin3\nWhite\n..0..\n.0.0.\n.000.\n.0.0.\n.0.0.\n\nMin4\nWhite\n0....\n0...0\n0....\n0...0\n000..\n\nDone\nTransparent\n\nResultBox\n#BBB\n.....\n.000.\n.0.0.\n.000.\n.....\n\nCheckBox\n#22F\n....0\n....0\n0..0.\n.0.0.\n..0..\n\nXBox\n#F00\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\n\nEnding1\nTransparent\n\nEnding2\nTransparent\n\nEnding3\nTransparent\n\nEnding4\nTransparent\n\n=======\nLEGEND\n=======\nMin = Min1 or Min2 or Min3 or Min4\nSteps = Step1 or Step2 or Step3 or Step4 or Step5\nNumber = N0 or N1 or N2 or N3 or N4 or N5 or N6 or N7 or N8 or N9\n\nEnding = Ending1 or Ending2 or Ending3 or Ending4\n\n# = Wall\n. = Background\n@ = Player\n* = Crate\nG = Goal\n0 = N0 and Nback\n! = N0 and Ones and Nback\n~ = Nback\n5 = Step5 and NBack\nR = Resultbox and NBack\n\n=======\nSOUNDS\n=======\nSfx1 97503900 (Done)\nSfx2 96982503 (See goal)\nSfx3 62353502 (Fail)\nSfx4 25691300 (Success!)\nPlayer CantMove 74490707\nCrate Move 76468107\n================\nCOLLISIONLAYERS\n================\nBackground\nNBack\nGoal ResultBox\nWall Player Crate Number Steps Min XBox Checkbox\nOnes Done Ending\nPlus Minus\nCountstart\n======\nRULES\n======\nRight[||||Step5] -> [Step1|Step2|Step3|Step4|Step5]\n\n[Player] -> [Player Countstart]\n\n[> Player|Crate] -> [> Player|> Crate]\n\nlate [Player no Countstart][Ones] -> [Player][Ones Plus]\n\n(Are we done?)\nlate [Player no Ending] -> [Player Done]\nlate [Done][Goal no Crate] -> [][Goal]\nlate [Ending3] -> [Ending4]\nlate [Ending2] -> [Ending3]\nlate [Ending1] -> [Ending2] Sfx2\nlate [Done] -> [Ending1] Sfx1\n\nlate [Ending4][Checkbox] -> [Ending4][Checkbox] Message Very efficient!\n\nlate [Ending4][XBox] -> [Ending4][XBox] Message I solved the puzzle! But I wasn't very efficient.\n\nlate RIGHT [Ending3][Step5|N0|N0][ResultBox] -> [Ending3][Step5|N0|N0][Resultbox Checkbox] Sfx4\nlate RIGHT [Ending3][ResultBox no CheckBox] -> [Ending3][ResultBox XBox] Sfx3\n\n\nstartloop\nlate [Plus N0] -> [N1]\nlate [Plus N1] -> [N2]\nlate [Plus N2] -> [N3]\nlate [Plus N3] -> [N4]\nlate [Plus N4] -> [N5]\nlate [Plus N5] -> [N6]\nlate [Plus N6] -> [N7]\nlate [Plus N7] -> [N8]\nlate [Plus N8] -> [N9]\nlate LEFT [Plus N9|] -> [N0|Plus]\nendloop\n\nlate [Plus] -> []\n\nlate UP [Ending2][Number||no Number] -> [Ending2][Number||Number]\nlate UP [Ending2][Ones||][Step5||] -> [Ending2][||Minus][Step5||Min4]\nlate Right [||||Min4] -> [ResultBox|Min1|Min2|Min3|Min4]\n\nstartloop\nlate [Minus N1] -> [N0]\nlate [Minus N2] -> [N1]\nlate [Minus N3] -> [N2]\nlate [Minus N4] -> [N3]\nlate [Minus N5] -> [N4]\nlate [Minus N6] -> [N5]\nlate [Minus N7] -> [N6]\nlate [Minus N8] -> [N7]\nlate [Minus N9] -> [N8]\nlate LEFT [Minus N0|] -> [N9|Minus]\nendloop\n\nlate [Minus] -> []\n\nlate [Countstart] -> []\n\nlate [Ending] -> [Ending] again\n\n==============\nWINCONDITIONS\n==============\nAll Crate on Goal\nSome Ending4\n=======\nLEVELS\n=======\nMessage Here at Count Mover's Moving Company, you can count on me to move your boxes as efficiently as possible.\n\n~~~~~~~~~\n~~~~~~~~~\n~~~~~~50!\n#########\n#...#...#\n#.G.#.@.#\n#.*.#...#\n#.G*##.##\n#.*GGG*.#\n#.G***G.#\n#.......#\n#########\n\n\n",[0,2,2,2,2,3,2,1,1,0,1,1,1,1,1,0,1,0,0,3,2],"background nback:0,0,0,background wall:1,1,1,1,1,1,\n1,1,1,0,0,0,1,background:2,2,\n2,2,background crate:3,2,2,1,0,0,background nback step1:4,\n1,2,background goal:5,background player:6,background crate goal:7,2,5,2,1,\n0,0,background nback step2:8,1,2,2,2,3,5,\n3,2,1,0,0,background nback step3:9,1,1,1,\n1,1,5,3,2,1,0,0,background nback step4:10,\n1,2,2,2,1,5,3,2,1,\n0,0,background nback step5:11,1,2,2,2,2,2,\n7,2,1,0,0,background n1 nback:12,1,2,2,\n2,1,2,2,2,1,0,0,background n9 nback ones:13,\n1,1,1,1,1,1,1,1,1,\n",1,"1627778943492.7725"] ], [ `gallery: boxes love boxing gloves`, - ["title Boxes Love Boxing Gloves\nauthor Alan Hazelden\nhomepage www.draknek.org\n\nkey_repeat_interval 0.16\nagain_interval 0.16\nrealtime_interval 0.16\n\n(verbose_logging)\n\nnoaction\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\nBlack DarkBlue\n00000\n01110\n01110\n01110\n00000\n\n\nTarget\nWhite\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nGrey\n\nPlayer\n#a46422 #495e2b #493c2b #000000\n..0..\n.111.\n01110\n02220\n.2.2.\n\nBoxL L\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #d9c554\n01234\n92345\n93456\n94567\n45678\n\nBoxR R\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #edd964\n01234\n12349\n23459\n34569\n45678\n\nBoxU U\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #d9c554\n09994\n12345\n23456\n34567\n45678\n\nBoxD D\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #edd964\n01234\n12345\n23456\n34567\n49998\n\nSplatL\nred\n0....\n0....\n0....\n0....\n0....\n\nSplatR\nred\n....0\n....0\n....0\n....0\n....0\n\nSplatU\nred\n00000\n.....\n.....\n.....\n.....\n\nSplatD\nred\n.....\n.....\n.....\n.....\n00000\n\nSplatL2\nred\n0....\n0.0..\n00...\n0.0..\n0....\n\nSplatR2\nred\n....0\n..0.0\n...00\n..0.0\n....0\n\nSplatU2\nred\n00000\n..0..\n.0.0.\n.....\n.....\n\nSplatD2\nred\n.....\n.....\n.0.0.\n..0..\n00000\n\nGloveL\n#f2de68 #edd964 #e9d460 #e4cf5b #dfca57 #d9c554 #d5c14f #e5842d\n.012.\n01734\n12777\n23756\n.456.\n\nGloveR\n#f2de68 #edd964 #e9d460 #e4cf5b #dfca57 #d9c554 #d5c14f #d37521\n.012.\n01734\n77745\n23756\n.456.\n\nGloveU\n#f2de68 #edd964 #e9d460 #e4cf5b #dfca57 #d9c554 #d5c14f #e5842d\n.012.\n01234\n17775\n23756\n.476.\n\nGloveD\n#f2de68 #edd964 #e9d460 #e4cf5b #dfca57 #d9c554 #d5c14f #d37521\n.072.\n01734\n17775\n23456\n.456.\n\nCantTrigger\ntransparent\n\nTriggeredTemp\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #d9c554\n..2..\n.234.\n23456\n.456.\n..6..\n\nTriggeredFinal\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 Brown White\n..2..\n.777.\n27876\n.777.\n..6..\n\nPriority0\ntransparent\n\nPriority1\ntransparent\n\nPriority2\ntransparent\n\nPriority3\ntransparent\n\nPriority4\ntransparent\n\nTriggerCheck\ntransparent\n\nMoveHere\ntransparent\n\nPreventMove\ntransparent\n\nWallL\nDarkGrey\n0....\n0....\n0....\n0....\n0....\n\nWallR\nDarkGrey\n....0\n....0\n....0\n....0\n....0\n\nWallU\nDarkGrey\n00000\n.....\n.....\n.....\n.....\n\nWallD\nDarkGrey\n.....\n.....\n.....\n.....\n00000\n\nWallLR\nDarkGrey\n0...0\n0...0\n0...0\n0...0\n0...0\n\nWallUD\nDarkGrey\n00000\n.....\n.....\n.....\n00000\n \nWallUL\nDarkGrey\n0....\n.....\n.....\n.....\n.....\n \nWallUR\nDarkGrey\n....0\n.....\n.....\n.....\n.....\n \nWallDL\nDarkGrey\n.....\n.....\n.....\n.....\n0....\n \nWallDR\nDarkGrey\n.....\n.....\n.....\n.....\n....0\n \nWallDLR\nDarkGrey\n.....\n.....\n.....\n.....\n0...0\n \nWallULR\nDarkGrey\n0...0\n.....\n.....\n.....\n.....\n \nWallLUD\nDarkGrey\n0....\n.....\n.....\n.....\n0....\n \nWallRUD\nDarkGrey\n....0\n.....\n.....\n.....\n....0\n\nZero\nDarkGreen\n.000.\n.0.0.\n.0.0.\n.0.0.\n.000.\n\nOne\nDarkGreen\n.00..\n..0..\n..0..\n..0..\n.000.\n\nTwo\nDarkGreen\n.000.\n...0.\n.000.\n.0...\n.000.\n\nThree\nDarkGreen\n.000.\n...0.\n.000.\n...0.\n.000.\n\nFour\nDarkGreen\n.0.0.\n.0.0.\n.000.\n...0.\n...0.\n\nFive\nDarkGreen\n.000.\n.0...\n.000.\n...0.\n.000.\n\nSix\nDarkGreen\n.000.\n.0...\n.000.\n.0.0.\n.000.\n\nSeven\nDarkGreen\n.000.\n...0.\n...0.\n...0.\n...0.\n\nEight\nDarkGreen\n.000.\n.0.0.\n.000.\n.0.0.\n.000.\n\nNine\nDarkGreen\n.000.\n.0.0.\n.000.\n...0.\n.000.\n\nOnce\nBrown #dddddd\n.....\n.000.\n.010.\n.000.\n.....\n\n\n=======\nLEGEND\n=======\n\nCounter = Once\n\nCrate = BoxL or BoxR or BoxU or BoxD\n\nGlove = GloveL or GloveR or GloveU or GloveD\n\nHittable = Crate or Player or Glove\n\nPushable = Crate or Glove\n\nSolid = Crate or Wall or Glove\n\nSplat1 = SplatL or SplatR or SplatU or SplatD\nSplat2 = SplatL2 or SplatR2 or SplatU2 or SplatD2\n\nPriority = Priority1 or Priority2 or Priority3 or Priority4\n\nTriggered = TriggeredTemp or TriggeredFinal\n\n. = Background\n# = Wall\nP = Player\n* = Target\n! = Priority0\n? = Priority0 and BoxD\n$ = Priority0 and BoxU\n\nA = BoxL and Once\nB = BoxR and Once\nC = BoxU and Once\nE = BoxD and Once\n\nWallCoverLR = WallL or WallR or WallLR\nWallCoverUD = WallU or WallD or WallUD\nWallCoverCorner = WallUL or WallUR or WallDL or WallDR or WallDLR or WallLUD or WallRUD or WallULR\nWallCover = WallCoverLR or WallCoverUD or WallCoverCorner\n\nCoverLR = WallCoverLR\nCoverUD = WallCoverUD\n\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\n\n=======\nSOUNDS\n=======\n\nrestart 26040109\nundo 54997907\n\nendlevel 7293908\n\nPlayer move 88095307\nCrate move 5814507\n\nGlove create 55998304\nSplat1 create 2968302\n(67932504)\n\nsfx1 32201704 ( can't move )\nsfx2 5814507 ( crate move )\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget, Priority0\nPlayer, Wall, Crate, Glove\nTriggered, CantTrigger, Priority\nTriggerCheck, MoveHere\nWallCoverUD, Number, PreventMove\nWallCoverCorner, Counter\nWallCoverLR\nSplat1, Splat2\n\n\n======\nRULES\n======\n\n( Splat )\n\n[ SplatL ] -> [ SplatL2 ]\n[ SplatR ] -> [ SplatR2 ]\n[ SplatU ] -> [ SplatU2 ]\n[ SplatD ] -> [ SplatD2 ]\n\n( Set up temporary info we use for choosing a box )\n\n[ BoxL ] -> [ left BoxL ]\n[ BoxR ] -> [ right BoxR ]\n[ BoxU ] -> [ up BoxU ]\n[ BoxD ] -> [ down BoxD ]\n\n[ stationary Player ] -> [ action Player ]\n\n[ action Player Priority1 ] [ BoxL no Triggered no CantTrigger ] -> [ action Player Priority1 ] [ BoxL Priority1 ]\n[ action Player Priority1 ] [ BoxR no Triggered no CantTrigger ] -> [ action Player Priority1 ] [ BoxR Priority2 ]\n[ action Player Priority1 ] [ BoxU no Triggered no CantTrigger ] -> [ action Player Priority1 ] [ BoxU Priority4 ]\n[ action Player Priority1 ] [ BoxD no Triggered no CantTrigger ] -> [ action Player Priority1 ] [ BoxD Priority3 ]\n\n[ action Player Priority2 ] [ BoxL no Triggered no CantTrigger ] -> [ action Player Priority2 ] [ BoxL Priority2 ]\n[ action Player Priority2 ] [ BoxR no Triggered no CantTrigger ] -> [ action Player Priority2 ] [ BoxR Priority1 ]\n[ action Player Priority2 ] [ BoxU no Triggered no CantTrigger ] -> [ action Player Priority2 ] [ BoxU Priority4 ]\n[ action Player Priority2 ] [ BoxD no Triggered no CantTrigger ] -> [ action Player Priority2 ] [ BoxD Priority3 ]\n\n[ action Player Priority3 ] [ BoxL no Triggered no CantTrigger ] -> [ action Player Priority3 ] [ BoxL Priority3 ]\n[ action Player Priority3 ] [ BoxR no Triggered no CantTrigger ] -> [ action Player Priority3 ] [ BoxR Priority4 ]\n[ action Player Priority3 ] [ BoxU no Triggered no CantTrigger ] -> [ action Player Priority3 ] [ BoxU Priority1 ]\n[ action Player Priority3 ] [ BoxD no Triggered no CantTrigger ] -> [ action Player Priority3 ] [ BoxD Priority2 ]\n\n[ action Player Priority4 ] [ BoxL no Triggered no CantTrigger ] -> [ action Player Priority4 ] [ BoxL Priority3 ]\n[ action Player Priority4 ] [ BoxR no Triggered no CantTrigger ] -> [ action Player Priority4 ] [ BoxR Priority4 ]\n[ action Player Priority4 ] [ BoxU no Triggered no CantTrigger ] -> [ action Player Priority4 ] [ BoxU Priority2 ]\n[ action Player Priority4 ] [ BoxD no Triggered no CantTrigger ] -> [ action Player Priority4 ] [ BoxD Priority1 ]\n\n( Loop until we've chosen a box to trigger )\n\nstartloop\n\n( Choose a box )\n\nrandom [ action Player ] [ > Crate Priority0 Priority no Counter | Hittable ] -> [ Player ] [ > Crate Priority0 action TriggeredTemp | Hittable ]\n\nrandom [ action Player ] [ > Crate Priority1 no Counter | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority2 no Counter | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority3 no Counter | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority4 no Counter | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\n\nrandom [ action Player ] [ > Crate Priority1 | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority2 | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority3 | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority4 | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\n\n( Once we've chosen a box, choose the box behind it if that can also trigger )\n\n[ > Crate Priority | > Crate action Triggered ] -> [ > Crate action Triggered | > Crate Priority ]\n\n( Check if this box has space to push things forwards )\n( N.B. we use stationary TriggerCheck on the active box to prevent this loop thinking things are always going on )\n\n[ > Crate action Triggered no TriggerCheck | ] -> [ > Crate action Triggered TriggerCheck | > TriggerCheck ]\n\n[ > TriggerCheck Pushable | no MoveHere ] -> [ > TriggerCheck Pushable | > TriggerCheck ]\n+ [ perpendicular TriggerCheck Glove | no TriggerCheck < Crate Triggered ] -> [ perpendicular TriggerCheck Glove | perpendicular TriggerCheck < Crate Triggered ]\n+ [ perpendicular TriggerCheck > Crate Triggered | no TriggerCheck Glove ] -> [ perpendicular TriggerCheck > Crate Triggered | perpendicular TriggerCheck Glove ]\n\n( If can't move forwards )\n\n[ TriggerCheck Wall ] [ > TriggerCheck no Wall ] -> [ TriggerCheck Wall ] []\n[ TriggerCheck Wall ] -> [ action Wall ]\n\n( If can move forwards )\n\n[ > TriggerCheck no Solid ] -> [ > MoveHere ]\n\n( If can't move forwards, check if this box has space to push things backwards )\n\nrandom [ action Wall ] [ | > Crate action Triggered ] -> [ Wall ] [ < TriggerCheck | > Crate action Triggered ]\n\n[ action Wall ] -> [ Wall ]\n\n[ > TriggerCheck Pushable | no MoveHere ] -> [ > TriggerCheck Pushable | > TriggerCheck ]\n+ [ perpendicular TriggerCheck Glove | no TriggerCheck < Crate Triggered ] -> [ perpendicular TriggerCheck Glove | perpendicular TriggerCheck < Crate Triggered ]\n+ [ perpendicular TriggerCheck > Crate Triggered | no TriggerCheck Glove ] -> [ perpendicular TriggerCheck > Crate Triggered | perpendicular TriggerCheck Glove ]\n\n( If can't move backwards )\n\n[ TriggerCheck Wall ] [ Crate action Triggered ] -> [ TriggerCheck Wall ] [ Crate CantTrigger ]\n\n[ TriggerCheck Wall ] [ TriggerCheck no Wall ] -> [ TriggerCheck Wall ] []\n\n[ TriggerCheck Wall ] [ stationary Player ] -> [ Wall ] [ action Player ]\n\n[ TriggerCheck Wall ] -> [ Wall ]\n\n( If can move backwards )\n\n[ > TriggerCheck no Solid ] [ Crate action Triggered ] -> [ > MoveHere ] [ Crate > Triggered ]\n\n[ > TriggerCheck no Solid ] -> [ > MoveHere ]\n\nendloop\n\n[ moving TriggeredTemp Once ] -> [ moving TriggeredFinal ]\n\n[ > Crate TriggeredFinal | Glove ] -> [ > Crate TriggeredFinal | action Glove ]\n\n( now we've chosen a box or there's no suitable boxes )\n\n[ Priority no Player ] -> []\n\n[ moving Crate ] -> [ Crate ]\n\n( If all boxes triggered, remove all boxing gloves )\n\n[ action Player ] [ stationary Glove ] -> [ action Player ] []\n[ action Player ] [ TriggeredTemp ] -> [ action Player ] []\n[ action Player ] [ PreventMove ] -> [ action Player ] []\n[ CantTrigger ] -> []\n\n[ action Glove ] -> [ Glove ]\n\n( Push player - push untriggered boxes )\n\n[ MoveHere Player ] -> [ MoveHere Player PreventMove ]\n\n[ > MoveHere Player | BoxL Counter | no Solid ] -> [ > MoveHere no Priority | Player Priority1 | BoxL Counter ]\n[ > MoveHere Player | BoxR Counter | no Solid ] -> [ > MoveHere no Priority | Player Priority2 | BoxR Counter ]\n[ > MoveHere Player | BoxU Counter | no Solid ] -> [ > MoveHere no Priority | Player Priority3 | BoxU Counter ]\n[ > MoveHere Player | BoxD Counter | no Solid ] -> [ > MoveHere no Priority | Player Priority4 | BoxD Counter ]\n\n[ > MoveHere Player | BoxL no Triggered | no Solid ] -> [ > MoveHere no Priority | Player Priority1 | BoxL ]\n[ > MoveHere Player | BoxR no Triggered | no Solid ] -> [ > MoveHere no Priority | Player Priority2 | BoxR ]\n[ > MoveHere Player | BoxU no Triggered | no Solid ] -> [ > MoveHere no Priority | Player Priority3 | BoxU ]\n[ > MoveHere Player | BoxD no Triggered | no Solid ] -> [ > MoveHere no Priority | Player Priority4 | BoxD ]\n\n( Push player - push triggered boxes )\n\n[ > MoveHere Player | Crate Triggered ] -> [ > MoveHere Player | > Crate Triggered ]\n\n[ > MoveHere Player | Glove ] -> [ > MoveHere Player | > Glove ]\n\nleft [ GloveR | moving Crate Triggered ] -> [ moving GloveR | moving Crate Triggered ]\nright [ GloveL | moving Crate Triggered ] -> [ moving GloveL | moving Crate Triggered ]\nup [ GloveD | moving Crate Triggered ] -> [ moving GloveD | moving Crate Triggered ]\ndown [ GloveU | moving Crate Triggered ] -> [ moving GloveU | moving Crate Triggered ]\n\nleft [ moving GloveR | Crate Triggered ] -> [ moving GloveR | moving Crate Triggered ]\nright [ moving GloveL | Crate Triggered ] -> [ moving GloveL | moving Crate Triggered ]\nup [ moving GloveD | Crate Triggered ] -> [ moving GloveD | moving Crate Triggered ]\ndown [ moving GloveU | Crate Triggered ] -> [ moving GloveU | moving Crate Triggered ]\n\n[ > Crate | stationary Solid ] [ > Glove ] -> [ Crate | Solid ] [ Glove ]\n[ > Glove | stationary Solid ] [ > Crate ] -> [ Glove | Solid ] [ Crate ]\n\n[ > Crate Triggered | no Solid ] -> [ | Crate Triggered ]\n+ [ > Glove | no Solid ] -> [ | Glove ]\n\n[ > Pushable ] -> [ Pushable ]\n\n( Push player - push triggered box backwards )\n\n[ no Solid | Crate action Triggered | > MoveHere Player | Solid ] -> [ action Crate action Triggered | | Player | Solid ]\n\nleft [ action BoxL action Triggered | no Solid ] -> [ BoxL Triggered | GloveL ]\nright [ action BoxR action Triggered | no Solid ] -> [ BoxR Triggered | GloveR ]\nup [ action BoxU action Triggered | no Solid ] -> [ BoxU Triggered | GloveU ]\ndown [ action BoxD action Triggered | no Solid ] -> [ BoxD Triggered | GloveD ]\n\n( Push player - splat )\n\nleft [ > MoveHere Player | Solid ] -> [ > MoveHere SplatL | Solid SplatR ]\nright [ > MoveHere Player | Solid ] -> [ > MoveHere SplatR | Solid SplatL ]\nup [ > MoveHere Player | Solid ] -> [ > MoveHere SplatU | Solid SplatD ]\ndown [ > MoveHere Player | Solid ] -> [ > MoveHere SplatD | Solid SplatU ]\n\n( Push player - move safely )\n\nright [ > MoveHere Player | no Solid ] -> [ > MoveHere no Priority | Player Priority1 ]\nleft [ > MoveHere Player | no Solid ] -> [ > MoveHere no Priority | Player Priority2 ]\nup [ > MoveHere Player | no Solid ] -> [ > MoveHere no Priority | Player Priority3 ]\ndown [ > MoveHere Player | no Solid ] -> [ > MoveHere no Priority | Player Priority4 ]\n\n( Push boxes )\n\n[ > TriggerCheck Counter ] -> [ > TriggerCheck > Counter ]\n\n[ < MoveHere | < TriggerCheck Pushable no Triggered ] -> [ Pushable | < MoveHere ]\n+ [ < MoveHere | < TriggerCheck Pushable stationary Triggered ] -> [ Pushable Triggered | < MoveHere ]\n\nleft [ < MoveHere | Pushable < Triggered ] -> [ Pushable Triggered | GloveL ]\nright [ < MoveHere | Pushable < Triggered ] -> [ Pushable Triggered | GloveR ]\nup [ < MoveHere | Pushable < Triggered ] -> [ Pushable Triggered | GloveU ]\ndown [ < MoveHere | Pushable < Triggered ] -> [ Pushable Triggered | GloveD ]\n\nleft [ < MoveHere | Pushable action Triggered ] -> [ GloveR | Pushable Triggered ]\nright [ < MoveHere | Pushable action Triggered ] -> [ GloveL | Pushable Triggered ]\nup [ < MoveHere | Pushable action Triggered ] -> [ GloveD | Pushable Triggered ]\ndown [ < MoveHere | Pushable action Triggered ] -> [ GloveU | Pushable Triggered ]\n\n( Player movement - set trigger priority and mark which things to push )\n\n[ > Player | BoxL no Triggered ] -> [ > Player Priority1 | > BoxL ]\n[ > Player | BoxR no Triggered ] -> [ > Player Priority2 | > BoxR ]\n[ > Player | BoxU no Triggered ] -> [ > Player Priority3 | > BoxU ]\n[ > Player | BoxD no Triggered ] -> [ > Player Priority4 | > BoxD ]\n\n[ > Player | Glove ] -> [ > Player | > Glove ]\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nright [ > Player | no Crate ] -> [ > Player Priority1 | ]\nleft [ > Player | no Crate ] -> [ > Player Priority2 | ]\ndown [ > Player | no Crate ] -> [ > Player Priority3 | ]\nup [ > Player | no Crate ] -> [ > Player Priority4 | ]\n\nright [ > Player | Crate Triggered ] -> [ > Player Priority1 | Crate Triggered ]\nleft [ > Player | Crate Triggered ] -> [ > Player Priority2 | Crate Triggered ]\ndown [ > Player | Crate Triggered ] -> [ > Player Priority3 | Crate Triggered ]\nup [ > Player | Crate Triggered ] -> [ > Player Priority4 | Crate Triggered ]\n\n( Player movement - if part of a 2x1 box is moving, set the other part too )\n\nleft [ GloveR | moving Crate Triggered ] -> [ moving GloveR | moving Crate moving Triggered ]\nright [ GloveL | moving Crate Triggered ] -> [ moving GloveL | moving Crate moving Triggered ]\nup [ GloveD | moving Crate Triggered ] -> [ moving GloveD | moving Crate moving Triggered ]\ndown [ GloveU | moving Crate Triggered ] -> [ moving GloveU | moving Crate moving Triggered ]\n\nleft [ moving GloveR | Crate Triggered ] -> [ moving GloveR | moving Crate moving Triggered ]\nright [ moving GloveL | Crate Triggered ] -> [ moving GloveL | moving Crate moving Triggered ]\nup [ moving GloveD | Crate Triggered ] -> [ moving GloveD | moving Crate moving Triggered ]\ndown [ moving GloveU | Crate Triggered ] -> [ moving GloveU | moving Crate moving Triggered ]\n\n( Player movement - mark boxes which can't move )\n\n[ > Pushable | stationary Solid ] -> [ action Pushable | Solid ]\n\n[ action Crate | moving Glove ] -> [ Crate | Glove ]\n[ moving Crate | action Glove ] -> [ Crate | Glove ]\n\n[ action Pushable ] -> [ Pushable ]\n\n[ > Player | stationary Solid ] -> [ Player | Solid ] sfx1 ( can't move )\n\n[ stationary Crate moving Triggered ] -> [ Crate Triggered ]\n\n( Player movement - actually move )\n\n[ > Player Priority ] -> [ > Player > Priority ]\n[ > Crate Counter ] -> [ > Crate > Counter ]\n\n[ > Crate > Triggered | no Solid ] -> [ | action Crate Triggered ] sfx2\n+ [ > Crate | no Solid ] -> [ | action Crate ] sfx2\n+ [ > Glove | no Solid ] -> [ | action Glove ]\n\n( Cleanup and prevent player movement sometimes )\n\n[ > Glove ] -> cancel\n[ > Crate ] -> cancel\n\n[ TriggerCheck ] -> []\n[ MoveHere ] -> []\n\nleft [ stationary BoxL | action Pushable ] -> [ BoxL | Pushable PreventMove ]\nright [ stationary BoxR | action Pushable ] -> [ BoxR | Pushable PreventMove ]\nup [ stationary BoxU | action Pushable ] -> [ BoxU | Pushable PreventMove ]\ndown [ stationary BoxD | action Pushable ] -> [ BoxD | Pushable PreventMove ]\n\nleft [ action BoxL | stationary Pushable ] -> [ BoxL | Pushable PreventMove ]\nright [ action BoxR | stationary Pushable ] -> [ BoxR | Pushable PreventMove ]\nup [ action BoxU | stationary Pushable ] -> [ BoxU | Pushable PreventMove ]\ndown [ action BoxD | stationary Pushable ] -> [ BoxD | Pushable PreventMove ]\n\nlate left [ BoxL | Player ] -> [ BoxL | Player PreventMove ]\nlate right [ BoxR | Player ] -> [ BoxR | Player PreventMove ]\nlate up [ BoxU | Player ] -> [ BoxU | Player PreventMove ]\nlate down [ BoxD | Player ] -> [ BoxD | Player PreventMove ]\n\nlate [ PreventMove ] -> again\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\nleft [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallLUD | WallUD ]\nright [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallRUD | WallUD ]\nup [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallULR | WallLR ]\ndown [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallDLR | WallLR ]\n\nright [ WallD | Wall no WallCoverCorner no WallCoverUD ] -> [ WallD | Wall WallDL ]\nleft [ WallD | Wall no WallCoverCorner no WallCoverUD ] -> [ WallD | Wall WallDR ]\n \nright [ WallU | Wall no WallCoverCorner no WallCoverUD ] -> [ WallU | Wall WallUL ]\nleft [ WallU | Wall no WallCoverCorner no WallCoverUD ] -> [ WallU | Wall WallUR ]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll target on player\nAll player on target\n\n=======\nLEVELS\n=======\n\n##########\n#....d...#\n#..u.....#\n#.###.##.#\n#.....##.*\n###p######\n\n#####*##\n#.....##\n#.#.####\n#d..l..#\n#...#..#\n#r.....#\n#.!.u..#\n##p#####\n\n############\n#..r......##\n#..d..#uu.l#\np.....#...##\n#..u..#...##\n#r...l#....*\n############\n\n###########\n#r..#.....#\n*...#..u..#\n##?##..#..#\n#...#..#..#\n#.r....l..#\n#...#..#..#\n##p########\n\n##########p########\n######.........####\n######r#######.####\n#..dd...#####...l.#\n*........d......#.#\n#..........u....#.#\n#..uu...#####.....#\n###################\n\n############*##\n#.....#.#..#.##\n#.r.d......#.##\np.....#u#r....#\n#.r.u.###.lu..#\n#..........####\n###############\n\n###########\n#.....#####\n#.r.l..d.##\n#.........*\n#..u..u..##\n#.....#..l#\n###p#######\n\n####p######\n#......####\n#.u.#..####\n#.d.#..####\n#......####\n#.##...#..#\n#....l.#..*\n#......#r.#\n#....l.#d.#\n#.........#\n###########\n\n#############\n#....##d#.###\n#.r.........*\np.....a.u...#\n#.r..####.###\n#....####.###\n#############\n\n################\n#...####......##\n#.eu#......#..##\n#..........#..##\n#.......####.u.*\n##...#######..l#\n##p#############\n\n##############\n###..........#\n###....e.....#\n#.#..r...l..##\n#.#...###..u##\n*d#...###...a#\n#.....###...##\n#.#######...##\n##########p###\n\n##################\n#..............###\n#.e.......l.#..###\np.....#u#......###\n#.r.#########r.###\n#.b.#########r...#\n#...#########....#\n###############*##\n\n###############\n#............##\n#.r#......#...#\n#..#......!...#\n#..#......#u.##\n#..#...e..#r.##\n#..u......#..##\n#.........#...*\n#######p#######\n\n###########\n#####.....#\n###.......#\n*.#.e.r...#\n#.........#\n#!!$$.l...#\n#####.....#\n#######p###\n\n##############\n#########...##\n#########.u.##\n*.....##b...##\n#..u#........#\n#..d#.r.#..l.p\n#.......#....#\n##############\n\n#####*#########\n#####..####.d.#\n#...#.........#\n#.r.#.uu..#...#\n#.r.####..#.#.#\np.r.#.....#.#.#\n#.d.#.........#\n#...........a##\n#########uu####\n###############\n\n############\n#####...#..*\n#####.u.#..#\n#####.l.#d.#\np.#........#\n#.r.#.....l#\n#........###\n#####u######\n############\n\n#####p####\n#b.e....##\n#......a.#\n#..#..c..#\n*..#....##\n##########\n\n#################\n#.....###########\n#.e.e......a#####\np.....####.######\n#.b.b.d###.######\n#......d##.######\n####r...d#.######\n#####r.......#..*\n######r......#..#\n#######.........#\n#######....uu...#\n#################\n\n####################\n##...###.###########\n#..c.............###\n#..e........l.#..###\n#.....#u#u#.a....###\n#..b..#####...#r.###\n#..r..#####.c.#r...#\n#.............#....#\n########p########*##\n\n###*#########\n##..#..#..###\n##.lr..l..###\n##d##.##..###\n#..#........#\np..r..#.u...#\n#..#..#.d...#\n#..#........#\n#..r..u.#...#\n#..##########\n#############\n\n\n(alt levels)\n\n(###*######12#\n##..#..#..###\n##.lr..l..###\n##d##.##..###\n#..#........#\np..d..#.u...#\n#..#..#.d...#\n#..#........#\n#..r.u.###..#\n#..##########\n#############)\n\n\n(trashed levels)\n\n(############\n#####d######\n#.dd.......p\n#......r...#\n#..#.......#\n*..#...lu###\n####...#####\n####...#####\n############\n\n############\n####.......#\n####....#u##\n#.......#..*\n#.a#d#b.#d##\n#..........#\n###...######\n####p#######)\n\n\n(wip levels)\n\n(\n\n########\n####r..#\n####...*\n###d...#\n#....###\n#...u###\n#..#.###\n#......#\n#.r..l.p\n#......#\n########\n\n)\n\nmessage Thanks for playing :)\n\n( debug levels\n\n##############\n#.........##*#\n#....dr.r.####\n#...d.....####\n#........d...#\n#pr.r.r.u....#\n#........#####\n##############\n\n##############\n#...#.....##*#\n#....dr.r.####\n#...u.....####\n#........d...#\n#pr.r.r.u....#\n#........#####\n##############\n\n###########\n#.....#####\n#.p......##\n#........#*\n#.r......##\n#r.l#######\n###########\n\n############\n############\n####..######\n####..##d.##\n####..#...r#\n#.....#r..r#\n#...*.##ur##\n#.....###.##\n#########p##\n############\n\n\n###########\n#.....###*#\n#.p.r.d####\n#......d###\n####r...d##\n#####r....#\n######r...#\n#######...#\n###########\n\n)\n\n(11x7 screenshot)\n\n(###########\n####d###d##\n#r...r...##\n##.#.p.#.##\n##...l...l#\n##u###u####\n###########)\n\n", ["tick", "tick", "tick", "tick", 3, "tick", 2, "tick", 2, "tick", 3, "tick", 3, "tick", 0, "tick", "tick", 0, "tick", 3, "tick", 3, "tick", 0, "tick", "tick", "tick", "tick", "tick", 2, "tick", 3, "tick", 3, 0, "tick", "tick", "tick"], "background wall:0,0,0,background wall walld:1,background:2,background wall wallr wallu:3,background wall wallr:4,background wall wallur:5,0,0,0,0,\n1,2,background boxr:6,2,background wall wallu:7,0,0,0,0,background wall walldlr:8,background wall walld walllr:9,2,\n2,7,0,0,0,0,1,2,2,2,7,0,\nbackground wall walldr:10,4,4,background wall walld wallr:11,2,background wall walllr wallud:12,2,3,5,1,2,background boxu:13,\n2,2,2,2,13,7,1,2,2,2,2,2,\n2,background wall walll wallu:14,background wall wallul:15,1,2,background boxl:16,background player priority1:17,2,2,2,7,0,\n8,background wall walllr:18,18,9,2,2,2,7,0,1,2,2,\nbackground boxd:19,2,2,14,15,0,1,2,2,2,2,16,\n7,0,0,1,background target:20,14,background wall walll:21,21,21,15,0,0,\n", 16, "1627778966225.3145"] + ["title Boxes Love Boxing Gloves\nauthor Alan Hazelden\nhomepage www.draknek.org\n\nkey_repeat_interval 0.16\nagain_interval 0.16\nrealtime_interval 0.16\n\n(verbose_logging)\n\nnoaction\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\nBlack DarkBlue\n00000\n01110\n01110\n01110\n00000\n\n\nTarget\nWhite\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nGrey\n\nPlayer\n#a46422 #495e2b #493c2b #000000\n..0..\n.111.\n01110\n02220\n.2.2.\n\nBoxL L\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #d9c554\n01234\n92345\n93456\n94567\n45678\n\nBoxR R\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #edd964\n01234\n12349\n23459\n34569\n45678\n\nBoxU U\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #d9c554\n09994\n12345\n23456\n34567\n45678\n\nBoxD D\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #edd964\n01234\n12345\n23456\n34567\n49998\n\nSplatL\nred\n0....\n0....\n0....\n0....\n0....\n\nSplatR\nred\n....0\n....0\n....0\n....0\n....0\n\nSplatU\nred\n00000\n.....\n.....\n.....\n.....\n\nSplatD\nred\n.....\n.....\n.....\n.....\n00000\n\nSplatL2\nred\n0....\n0.0..\n00...\n0.0..\n0....\n\nSplatR2\nred\n....0\n..0.0\n...00\n..0.0\n....0\n\nSplatU2\nred\n00000\n..0..\n.0.0.\n.....\n.....\n\nSplatD2\nred\n.....\n.....\n.0.0.\n..0..\n00000\n\nGloveL\n#f2de68 #edd964 #e9d460 #e4cf5b #dfca57 #d9c554 #d5c14f #e5842d\n.012.\n01734\n12777\n23756\n.456.\n\nGloveR\n#f2de68 #edd964 #e9d460 #e4cf5b #dfca57 #d9c554 #d5c14f #d37521\n.012.\n01734\n77745\n23756\n.456.\n\nGloveU\n#f2de68 #edd964 #e9d460 #e4cf5b #dfca57 #d9c554 #d5c14f #e5842d\n.012.\n01234\n17775\n23756\n.476.\n\nGloveD\n#f2de68 #edd964 #e9d460 #e4cf5b #dfca57 #d9c554 #d5c14f #d37521\n.072.\n01734\n17775\n23456\n.456.\n\nCantTrigger\ntransparent\n\nTriggeredTemp\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #d9c554\n..2..\n.234.\n23456\n.456.\n..6..\n\nTriggeredFinal\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 Brown White\n..2..\n.777.\n27876\n.777.\n..6..\n\nPriority0\ntransparent\n\nPriority1\ntransparent\n\nPriority2\ntransparent\n\nPriority3\ntransparent\n\nPriority4\ntransparent\n\nTriggerCheck\ntransparent\n\nMoveHere\ntransparent\n\nPreventMove\ntransparent\n\nWallL\nDarkGrey\n0....\n0....\n0....\n0....\n0....\n\nWallR\nDarkGrey\n....0\n....0\n....0\n....0\n....0\n\nWallU\nDarkGrey\n00000\n.....\n.....\n.....\n.....\n\nWallD\nDarkGrey\n.....\n.....\n.....\n.....\n00000\n\nWallLR\nDarkGrey\n0...0\n0...0\n0...0\n0...0\n0...0\n\nWallUD\nDarkGrey\n00000\n.....\n.....\n.....\n00000\n \nWallUL\nDarkGrey\n0....\n.....\n.....\n.....\n.....\n \nWallUR\nDarkGrey\n....0\n.....\n.....\n.....\n.....\n \nWallDL\nDarkGrey\n.....\n.....\n.....\n.....\n0....\n \nWallDR\nDarkGrey\n.....\n.....\n.....\n.....\n....0\n \nWallDLR\nDarkGrey\n.....\n.....\n.....\n.....\n0...0\n \nWallULR\nDarkGrey\n0...0\n.....\n.....\n.....\n.....\n \nWallLUD\nDarkGrey\n0....\n.....\n.....\n.....\n0....\n \nWallRUD\nDarkGrey\n....0\n.....\n.....\n.....\n....0\n\nZero\nDarkGreen\n.000.\n.0.0.\n.0.0.\n.0.0.\n.000.\n\nOne\nDarkGreen\n.00..\n..0..\n..0..\n..0..\n.000.\n\nTwo\nDarkGreen\n.000.\n...0.\n.000.\n.0...\n.000.\n\nThree\nDarkGreen\n.000.\n...0.\n.000.\n...0.\n.000.\n\nFour\nDarkGreen\n.0.0.\n.0.0.\n.000.\n...0.\n...0.\n\nFive\nDarkGreen\n.000.\n.0...\n.000.\n...0.\n.000.\n\nSix\nDarkGreen\n.000.\n.0...\n.000.\n.0.0.\n.000.\n\nSeven\nDarkGreen\n.000.\n...0.\n...0.\n...0.\n...0.\n\nEight\nDarkGreen\n.000.\n.0.0.\n.000.\n.0.0.\n.000.\n\nNine\nDarkGreen\n.000.\n.0.0.\n.000.\n...0.\n.000.\n\nOnce\nBrown #dddddd\n.....\n.000.\n.010.\n.000.\n.....\n\n\n=======\nLEGEND\n=======\n\nCounter = Once\n\nCrate = BoxL or BoxR or BoxU or BoxD\n\nGlove = GloveL or GloveR or GloveU or GloveD\n\nHittable = Crate or Player or Glove\n\nPushable = Crate or Glove\n\nSolid = Crate or Wall or Glove\n\nSplat1 = SplatL or SplatR or SplatU or SplatD\nSplat2 = SplatL2 or SplatR2 or SplatU2 or SplatD2\n\nPriority = Priority1 or Priority2 or Priority3 or Priority4\n\nTriggered = TriggeredTemp or TriggeredFinal\n\n. = Background\n# = Wall\nP = Player\n* = Target\n! = Priority0\n? = Priority0 and BoxD\n$ = Priority0 and BoxU\n\nA = BoxL and Once\nB = BoxR and Once\nC = BoxU and Once\nE = BoxD and Once\n\nWallCoverLR = WallL or WallR or WallLR\nWallCoverUD = WallU or WallD or WallUD\nWallCoverCorner = WallUL or WallUR or WallDL or WallDR or WallDLR or WallLUD or WallRUD or WallULR\nWallCover = WallCoverLR or WallCoverUD or WallCoverCorner\n\nCoverLR = WallCoverLR\nCoverUD = WallCoverUD\n\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\n\n=======\nSOUNDS\n=======\n\nrestart 26040109\nundo 54997907\n\nendlevel 7293908\n\nPlayer move 88095307\nCrate move 5814507\n\nGlove create 55998304\nSplat1 create 2968302\n(67932504)\n\nsfx1 32201704 ( can't move )\nsfx2 5814507 ( crate move )\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget, Priority0\nPlayer, Wall, Crate, Glove\nTriggered, CantTrigger, Priority\nTriggerCheck, MoveHere\nWallCoverUD, Number, PreventMove\nWallCoverCorner, Counter\nWallCoverLR\nSplat1, Splat2\n\n\n======\nRULES\n======\n\n( Splat )\n\n[ SplatL ] -> [ SplatL2 ]\n[ SplatR ] -> [ SplatR2 ]\n[ SplatU ] -> [ SplatU2 ]\n[ SplatD ] -> [ SplatD2 ]\n\n( Set up temporary info we use for choosing a box )\n\n[ BoxL ] -> [ left BoxL ]\n[ BoxR ] -> [ right BoxR ]\n[ BoxU ] -> [ up BoxU ]\n[ BoxD ] -> [ down BoxD ]\n\n[ stationary Player ] -> [ action Player ]\n\n[ action Player Priority1 ] [ BoxL no Triggered no CantTrigger ] -> [ action Player Priority1 ] [ BoxL Priority1 ]\n[ action Player Priority1 ] [ BoxR no Triggered no CantTrigger ] -> [ action Player Priority1 ] [ BoxR Priority2 ]\n[ action Player Priority1 ] [ BoxU no Triggered no CantTrigger ] -> [ action Player Priority1 ] [ BoxU Priority4 ]\n[ action Player Priority1 ] [ BoxD no Triggered no CantTrigger ] -> [ action Player Priority1 ] [ BoxD Priority3 ]\n\n[ action Player Priority2 ] [ BoxL no Triggered no CantTrigger ] -> [ action Player Priority2 ] [ BoxL Priority2 ]\n[ action Player Priority2 ] [ BoxR no Triggered no CantTrigger ] -> [ action Player Priority2 ] [ BoxR Priority1 ]\n[ action Player Priority2 ] [ BoxU no Triggered no CantTrigger ] -> [ action Player Priority2 ] [ BoxU Priority4 ]\n[ action Player Priority2 ] [ BoxD no Triggered no CantTrigger ] -> [ action Player Priority2 ] [ BoxD Priority3 ]\n\n[ action Player Priority3 ] [ BoxL no Triggered no CantTrigger ] -> [ action Player Priority3 ] [ BoxL Priority3 ]\n[ action Player Priority3 ] [ BoxR no Triggered no CantTrigger ] -> [ action Player Priority3 ] [ BoxR Priority4 ]\n[ action Player Priority3 ] [ BoxU no Triggered no CantTrigger ] -> [ action Player Priority3 ] [ BoxU Priority1 ]\n[ action Player Priority3 ] [ BoxD no Triggered no CantTrigger ] -> [ action Player Priority3 ] [ BoxD Priority2 ]\n\n[ action Player Priority4 ] [ BoxL no Triggered no CantTrigger ] -> [ action Player Priority4 ] [ BoxL Priority3 ]\n[ action Player Priority4 ] [ BoxR no Triggered no CantTrigger ] -> [ action Player Priority4 ] [ BoxR Priority4 ]\n[ action Player Priority4 ] [ BoxU no Triggered no CantTrigger ] -> [ action Player Priority4 ] [ BoxU Priority2 ]\n[ action Player Priority4 ] [ BoxD no Triggered no CantTrigger ] -> [ action Player Priority4 ] [ BoxD Priority1 ]\n\n( Loop until we've chosen a box to trigger )\n\nstartloop\n\n( Choose a box )\n\nrandom [ action Player ] [ > Crate Priority0 Priority no Counter | Hittable ] -> [ Player ] [ > Crate Priority0 action TriggeredTemp | Hittable ]\n\nrandom [ action Player ] [ > Crate Priority1 no Counter | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority2 no Counter | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority3 no Counter | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority4 no Counter | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\n\nrandom [ action Player ] [ > Crate Priority1 | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority2 | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority3 | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\nrandom [ action Player ] [ > Crate Priority4 | Hittable ] -> [ Player ] [ > Crate action TriggeredTemp | Hittable ]\n\n( Once we've chosen a box, choose the box behind it if that can also trigger )\n\n[ > Crate Priority | > Crate action Triggered ] -> [ > Crate action Triggered | > Crate Priority ]\n\n( Check if this box has space to push things forwards )\n( N.B. we use stationary TriggerCheck on the active box to prevent this loop thinking things are always going on )\n\n[ > Crate action Triggered no TriggerCheck | ] -> [ > Crate action Triggered TriggerCheck | > TriggerCheck ]\n\n[ > TriggerCheck Pushable | no MoveHere ] -> [ > TriggerCheck Pushable | > TriggerCheck ]\n+ [ perpendicular TriggerCheck Glove | no TriggerCheck < Crate Triggered ] -> [ perpendicular TriggerCheck Glove | perpendicular TriggerCheck < Crate Triggered ]\n+ [ perpendicular TriggerCheck > Crate Triggered | no TriggerCheck Glove ] -> [ perpendicular TriggerCheck > Crate Triggered | perpendicular TriggerCheck Glove ]\n\n( If can't move forwards )\n\n[ TriggerCheck Wall ] [ > TriggerCheck no Wall ] -> [ TriggerCheck Wall ] []\n[ TriggerCheck Wall ] -> [ action Wall ]\n\n( If can move forwards )\n\n[ > TriggerCheck no Solid ] -> [ > MoveHere ]\n\n( If can't move forwards, check if this box has space to push things backwards )\n\nrandom [ action Wall ] [ | > Crate action Triggered ] -> [ Wall ] [ < TriggerCheck | > Crate action Triggered ]\n\n[ action Wall ] -> [ Wall ]\n\n[ > TriggerCheck Pushable | no MoveHere ] -> [ > TriggerCheck Pushable | > TriggerCheck ]\n+ [ perpendicular TriggerCheck Glove | no TriggerCheck < Crate Triggered ] -> [ perpendicular TriggerCheck Glove | perpendicular TriggerCheck < Crate Triggered ]\n+ [ perpendicular TriggerCheck > Crate Triggered | no TriggerCheck Glove ] -> [ perpendicular TriggerCheck > Crate Triggered | perpendicular TriggerCheck Glove ]\n\n( If can't move backwards )\n\n[ TriggerCheck Wall ] [ Crate action Triggered ] -> [ TriggerCheck Wall ] [ Crate CantTrigger ]\n\n[ TriggerCheck Wall ] [ TriggerCheck no Wall ] -> [ TriggerCheck Wall ] []\n\n[ TriggerCheck Wall ] [ stationary Player ] -> [ Wall ] [ action Player ]\n\n[ TriggerCheck Wall ] -> [ Wall ]\n\n( If can move backwards )\n\n[ > TriggerCheck no Solid ] [ Crate action Triggered ] -> [ > MoveHere ] [ Crate > Triggered ]\n\n[ > TriggerCheck no Solid ] -> [ > MoveHere ]\n\nendloop\n\n[ moving TriggeredTemp Once ] -> [ moving TriggeredFinal ]\n\n[ > Crate TriggeredFinal | Glove ] -> [ > Crate TriggeredFinal | action Glove ]\n\n( now we've chosen a box or there's no suitable boxes )\n\n[ Priority no Player ] -> []\n\n[ moving Crate ] -> [ Crate ]\n\n( If all boxes triggered, remove all boxing gloves )\n\n[ action Player ] [ stationary Glove ] -> [ action Player ] []\n[ action Player ] [ TriggeredTemp ] -> [ action Player ] []\n[ action Player ] [ PreventMove ] -> [ action Player ] []\n[ CantTrigger ] -> []\n\n[ action Glove ] -> [ Glove ]\n\n( Push player - push untriggered boxes )\n\n[ MoveHere Player ] -> [ MoveHere Player PreventMove ]\n\n[ > MoveHere Player | BoxL Counter | no Solid ] -> [ > MoveHere no Priority | Player Priority1 | BoxL Counter ]\n[ > MoveHere Player | BoxR Counter | no Solid ] -> [ > MoveHere no Priority | Player Priority2 | BoxR Counter ]\n[ > MoveHere Player | BoxU Counter | no Solid ] -> [ > MoveHere no Priority | Player Priority3 | BoxU Counter ]\n[ > MoveHere Player | BoxD Counter | no Solid ] -> [ > MoveHere no Priority | Player Priority4 | BoxD Counter ]\n\n[ > MoveHere Player | BoxL no Triggered | no Solid ] -> [ > MoveHere no Priority | Player Priority1 | BoxL ]\n[ > MoveHere Player | BoxR no Triggered | no Solid ] -> [ > MoveHere no Priority | Player Priority2 | BoxR ]\n[ > MoveHere Player | BoxU no Triggered | no Solid ] -> [ > MoveHere no Priority | Player Priority3 | BoxU ]\n[ > MoveHere Player | BoxD no Triggered | no Solid ] -> [ > MoveHere no Priority | Player Priority4 | BoxD ]\n\n( Push player - push triggered boxes )\n\n[ > MoveHere Player | Crate Triggered ] -> [ > MoveHere Player | > Crate Triggered ]\n\n[ > MoveHere Player | Glove ] -> [ > MoveHere Player | > Glove ]\n\nleft [ GloveR | moving Crate Triggered ] -> [ moving GloveR | moving Crate Triggered ]\nright [ GloveL | moving Crate Triggered ] -> [ moving GloveL | moving Crate Triggered ]\nup [ GloveD | moving Crate Triggered ] -> [ moving GloveD | moving Crate Triggered ]\ndown [ GloveU | moving Crate Triggered ] -> [ moving GloveU | moving Crate Triggered ]\n\nleft [ moving GloveR | Crate Triggered ] -> [ moving GloveR | moving Crate Triggered ]\nright [ moving GloveL | Crate Triggered ] -> [ moving GloveL | moving Crate Triggered ]\nup [ moving GloveD | Crate Triggered ] -> [ moving GloveD | moving Crate Triggered ]\ndown [ moving GloveU | Crate Triggered ] -> [ moving GloveU | moving Crate Triggered ]\n\n[ > Crate | stationary Solid ] [ > Glove ] -> [ Crate | Solid ] [ Glove ]\n[ > Glove | stationary Solid ] [ > Crate ] -> [ Glove | Solid ] [ Crate ]\n\n[ > Crate Triggered | no Solid ] -> [ | Crate Triggered ]\n+ [ > Glove | no Solid ] -> [ | Glove ]\n\n[ > Pushable ] -> [ Pushable ]\n\n( Push player - push triggered box backwards )\n\n[ no Solid | Crate action Triggered | > MoveHere Player | Solid ] -> [ action Crate action Triggered | | Player | Solid ]\n\nleft [ action BoxL action Triggered | no Solid ] -> [ BoxL Triggered | GloveL ]\nright [ action BoxR action Triggered | no Solid ] -> [ BoxR Triggered | GloveR ]\nup [ action BoxU action Triggered | no Solid ] -> [ BoxU Triggered | GloveU ]\ndown [ action BoxD action Triggered | no Solid ] -> [ BoxD Triggered | GloveD ]\n\n( Push player - splat )\n\nleft [ > MoveHere Player | Solid ] -> [ > MoveHere SplatL | Solid SplatR ]\nright [ > MoveHere Player | Solid ] -> [ > MoveHere SplatR | Solid SplatL ]\nup [ > MoveHere Player | Solid ] -> [ > MoveHere SplatU | Solid SplatD ]\ndown [ > MoveHere Player | Solid ] -> [ > MoveHere SplatD | Solid SplatU ]\n\n( Push player - move safely )\n\nright [ > MoveHere Player | no Solid ] -> [ > MoveHere no Priority | Player Priority1 ]\nleft [ > MoveHere Player | no Solid ] -> [ > MoveHere no Priority | Player Priority2 ]\nup [ > MoveHere Player | no Solid ] -> [ > MoveHere no Priority | Player Priority3 ]\ndown [ > MoveHere Player | no Solid ] -> [ > MoveHere no Priority | Player Priority4 ]\n\n( Push boxes )\n\n[ > TriggerCheck Counter ] -> [ > TriggerCheck > Counter ]\n\n[ < MoveHere | < TriggerCheck Pushable no Triggered ] -> [ Pushable | < MoveHere ]\n+ [ < MoveHere | < TriggerCheck Pushable stationary Triggered ] -> [ Pushable Triggered | < MoveHere ]\n\nleft [ < MoveHere | Pushable < Triggered ] -> [ Pushable Triggered | GloveL ]\nright [ < MoveHere | Pushable < Triggered ] -> [ Pushable Triggered | GloveR ]\nup [ < MoveHere | Pushable < Triggered ] -> [ Pushable Triggered | GloveU ]\ndown [ < MoveHere | Pushable < Triggered ] -> [ Pushable Triggered | GloveD ]\n\nleft [ < MoveHere | Pushable action Triggered ] -> [ GloveR | Pushable Triggered ]\nright [ < MoveHere | Pushable action Triggered ] -> [ GloveL | Pushable Triggered ]\nup [ < MoveHere | Pushable action Triggered ] -> [ GloveD | Pushable Triggered ]\ndown [ < MoveHere | Pushable action Triggered ] -> [ GloveU | Pushable Triggered ]\n\n( Player movement - set trigger priority and mark which things to push )\n\n[ > Player | BoxL no Triggered ] -> [ > Player Priority1 | > BoxL ]\n[ > Player | BoxR no Triggered ] -> [ > Player Priority2 | > BoxR ]\n[ > Player | BoxU no Triggered ] -> [ > Player Priority3 | > BoxU ]\n[ > Player | BoxD no Triggered ] -> [ > Player Priority4 | > BoxD ]\n\n[ > Player | Glove ] -> [ > Player | > Glove ]\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nright [ > Player | no Crate ] -> [ > Player Priority1 | ]\nleft [ > Player | no Crate ] -> [ > Player Priority2 | ]\ndown [ > Player | no Crate ] -> [ > Player Priority3 | ]\nup [ > Player | no Crate ] -> [ > Player Priority4 | ]\n\nright [ > Player | Crate Triggered ] -> [ > Player Priority1 | Crate Triggered ]\nleft [ > Player | Crate Triggered ] -> [ > Player Priority2 | Crate Triggered ]\ndown [ > Player | Crate Triggered ] -> [ > Player Priority3 | Crate Triggered ]\nup [ > Player | Crate Triggered ] -> [ > Player Priority4 | Crate Triggered ]\n\n( Player movement - if part of a 2x1 box is moving, set the other part too )\n\nleft [ GloveR | moving Crate Triggered ] -> [ moving GloveR | moving Crate moving Triggered ]\nright [ GloveL | moving Crate Triggered ] -> [ moving GloveL | moving Crate moving Triggered ]\nup [ GloveD | moving Crate Triggered ] -> [ moving GloveD | moving Crate moving Triggered ]\ndown [ GloveU | moving Crate Triggered ] -> [ moving GloveU | moving Crate moving Triggered ]\n\nleft [ moving GloveR | Crate Triggered ] -> [ moving GloveR | moving Crate moving Triggered ]\nright [ moving GloveL | Crate Triggered ] -> [ moving GloveL | moving Crate moving Triggered ]\nup [ moving GloveD | Crate Triggered ] -> [ moving GloveD | moving Crate moving Triggered ]\ndown [ moving GloveU | Crate Triggered ] -> [ moving GloveU | moving Crate moving Triggered ]\n\n( Player movement - mark boxes which can't move )\n\n[ > Pushable | stationary Solid ] -> [ action Pushable | Solid ]\n\n[ action Crate | moving Glove ] -> [ Crate | Glove ]\n[ moving Crate | action Glove ] -> [ Crate | Glove ]\n\n[ action Pushable ] -> [ Pushable ]\n\n[ > Player | stationary Solid ] -> [ Player | Solid ] sfx1 ( can't move )\n\n[ stationary Crate moving Triggered ] -> [ Crate Triggered ]\n\n( Player movement - actually move )\n\n[ > Player Priority ] -> [ > Player > Priority ]\n[ > Crate Counter ] -> [ > Crate > Counter ]\n\n[ > Crate > Triggered | no Solid ] -> [ | action Crate Triggered ] sfx2\n+ [ > Crate | no Solid ] -> [ | action Crate ] sfx2\n+ [ > Glove | no Solid ] -> [ | action Glove ]\n\n( Cleanup and prevent player movement sometimes )\n\n[ > Glove ] -> cancel\n[ > Crate ] -> cancel\n\n[ TriggerCheck ] -> []\n[ MoveHere ] -> []\n\nleft [ stationary BoxL | action Pushable ] -> [ BoxL | Pushable PreventMove ]\nright [ stationary BoxR | action Pushable ] -> [ BoxR | Pushable PreventMove ]\nup [ stationary BoxU | action Pushable ] -> [ BoxU | Pushable PreventMove ]\ndown [ stationary BoxD | action Pushable ] -> [ BoxD | Pushable PreventMove ]\n\nleft [ action BoxL | stationary Pushable ] -> [ BoxL | Pushable PreventMove ]\nright [ action BoxR | stationary Pushable ] -> [ BoxR | Pushable PreventMove ]\nup [ action BoxU | stationary Pushable ] -> [ BoxU | Pushable PreventMove ]\ndown [ action BoxD | stationary Pushable ] -> [ BoxD | Pushable PreventMove ]\n\nlate left [ BoxL | Player ] -> [ BoxL | Player PreventMove ]\nlate right [ BoxR | Player ] -> [ BoxR | Player PreventMove ]\nlate up [ BoxU | Player ] -> [ BoxU | Player PreventMove ]\nlate down [ BoxD | Player ] -> [ BoxD | Player PreventMove ]\n\nlate [ PreventMove ] -> again\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\nleft [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallLUD | WallUD ]\nright [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallRUD | WallUD ]\nup [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallULR | WallLR ]\ndown [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallDLR | WallLR ]\n\nright [ WallD | Wall no WallCoverCorner no WallCoverUD ] -> [ WallD | Wall WallDL ]\nleft [ WallD | Wall no WallCoverCorner no WallCoverUD ] -> [ WallD | Wall WallDR ]\n \nright [ WallU | Wall no WallCoverCorner no WallCoverUD ] -> [ WallU | Wall WallUL ]\nleft [ WallU | Wall no WallCoverCorner no WallCoverUD ] -> [ WallU | Wall WallUR ]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll target on player\nAll player on target\n\n=======\nLEVELS\n=======\n\n##########\n#....d...#\n#..u.....#\n#.###.##.#\n#.....##.*\n###p######\n\n#####*##\n#.....##\n#.#.####\n#d..l..#\n#...#..#\n#r.....#\n#.!.u..#\n##p#####\n\n############\n#..r......##\n#..d..#uu.l#\np.....#...##\n#..u..#...##\n#r...l#....*\n############\n\n###########\n#r..#.....#\n*...#..u..#\n##?##..#..#\n#...#..#..#\n#.r....l..#\n#...#..#..#\n##p########\n\n##########p########\n######.........####\n######r#######.####\n#..dd...#####...l.#\n*........d......#.#\n#..........u....#.#\n#..uu...#####.....#\n###################\n\n############*##\n#.....#.#..#.##\n#.r.d......#.##\np.....#u#r....#\n#.r.u.###.lu..#\n#..........####\n###############\n\n###########\n#.....#####\n#.r.l..d.##\n#.........*\n#..u..u..##\n#.....#..l#\n###p#######\n\n####p######\n#......####\n#.u.#..####\n#.d.#..####\n#......####\n#.##...#..#\n#....l.#..*\n#......#r.#\n#....l.#d.#\n#.........#\n###########\n\n#############\n#....##d#.###\n#.r.........*\np.....a.u...#\n#.r..####.###\n#....####.###\n#############\n\n################\n#...####......##\n#.eu#......#..##\n#..........#..##\n#.......####.u.*\n##...#######..l#\n##p#############\n\n##############\n###..........#\n###....e.....#\n#.#..r...l..##\n#.#...###..u##\n*d#...###...a#\n#.....###...##\n#.#######...##\n##########p###\n\n##################\n#..............###\n#.e.......l.#..###\np.....#u#......###\n#.r.#########r.###\n#.b.#########r...#\n#...#########....#\n###############*##\n\n###############\n#............##\n#.r#......#...#\n#..#......!...#\n#..#......#u.##\n#..#...e..#r.##\n#..u......#..##\n#.........#...*\n#######p#######\n\n###########\n#####.....#\n###.......#\n*.#.e.r...#\n#.........#\n#!!$$.l...#\n#####.....#\n#######p###\n\n##############\n#########...##\n#########.u.##\n*.....##b...##\n#..u#........#\n#..d#.r.#..l.p\n#.......#....#\n##############\n\n#####*#########\n#####..####.d.#\n#...#.........#\n#.r.#.uu..#...#\n#.r.####..#.#.#\np.r.#.....#.#.#\n#.d.#.........#\n#...........a##\n#########uu####\n###############\n\n############\n#####...#..*\n#####.u.#..#\n#####.l.#d.#\np.#........#\n#.r.#.....l#\n#........###\n#####u######\n############\n\n#####p####\n#b.e....##\n#......a.#\n#..#..c..#\n*..#....##\n##########\n\n#################\n#.....###########\n#.e.e......a#####\np.....####.######\n#.b.b.d###.######\n#......d##.######\n####r...d#.######\n#####r.......#..*\n######r......#..#\n#######.........#\n#######....uu...#\n#################\n\n####################\n##...###.###########\n#..c.............###\n#..e........l.#..###\n#.....#u#u#.a....###\n#..b..#####...#r.###\n#..r..#####.c.#r...#\n#.............#....#\n########p########*##\n\n###*#########\n##..#..#..###\n##.lr..l..###\n##d##.##..###\n#..#........#\np..r..#.u...#\n#..#..#.d...#\n#..#........#\n#..r..u.#...#\n#..##########\n#############\n\n\n(alt levels)\n\n(###*######12#\n##..#..#..###\n##.lr..l..###\n##d##.##..###\n#..#........#\np..d..#.u...#\n#..#..#.d...#\n#..#........#\n#..r.u.###..#\n#..##########\n#############)\n\n\n(trashed levels)\n\n(############\n#####d######\n#.dd.......p\n#......r...#\n#..#.......#\n*..#...lu###\n####...#####\n####...#####\n############\n\n############\n####.......#\n####....#u##\n#.......#..*\n#.a#d#b.#d##\n#..........#\n###...######\n####p#######)\n\n\n(wip levels)\n\n(\n\n########\n####r..#\n####...*\n###d...#\n#....###\n#...u###\n#..#.###\n#......#\n#.r..l.p\n#......#\n########\n\n)\n\nmessage Thanks for playing :)\n\n( debug levels\n\n##############\n#.........##*#\n#....dr.r.####\n#...d.....####\n#........d...#\n#pr.r.r.u....#\n#........#####\n##############\n\n##############\n#...#.....##*#\n#....dr.r.####\n#...u.....####\n#........d...#\n#pr.r.r.u....#\n#........#####\n##############\n\n###########\n#.....#####\n#.p......##\n#........#*\n#.r......##\n#r.l#######\n###########\n\n############\n############\n####..######\n####..##d.##\n####..#...r#\n#.....#r..r#\n#...*.##ur##\n#.....###.##\n#########p##\n############\n\n\n###########\n#.....###*#\n#.p.r.d####\n#......d###\n####r...d##\n#####r....#\n######r...#\n#######...#\n###########\n\n)\n\n(11x7 screenshot)\n\n(###########\n####d###d##\n#r...r...##\n##.#.p.#.##\n##...l...l#\n##u###u####\n###########)\n\n",["tick","tick","tick","tick",3,"tick",2,"tick",2,"tick",3,"tick",3,"tick",0,"tick","tick",0,"tick",3,"tick",3,"tick",0,"tick","tick","tick","tick","tick",2,"tick",3,"tick",3,0,"tick","tick","tick"],"background wall:0,0,0,background wall walld:1,background:2,background wall wallr wallu:3,background wall wallr:4,background wall wallur:5,0,0,0,0,\n1,2,background boxr:6,2,background wall wallu:7,0,0,0,0,background wall walldlr:8,background wall walld walllr:9,2,\n2,7,0,0,0,0,1,2,2,2,7,0,\nbackground wall walldr:10,4,4,background wall walld wallr:11,2,background wall walllr wallud:12,2,3,5,1,2,background boxu:13,\n2,2,2,2,13,7,1,2,2,2,2,2,\n2,background wall walll wallu:14,background wall wallul:15,1,2,background boxl:16,background player priority1:17,2,2,2,7,0,\n8,background wall walllr:18,18,9,2,2,2,7,0,1,2,2,\nbackground boxd:19,2,2,14,15,0,1,2,2,2,2,16,\n7,0,0,1,background target:20,14,background wall walll:21,21,21,15,0,0,\n",16,"1627778966225.3145"] ], [ `gallery: vacuum`, - ["title Vacuum\nauthor Mark Richardson\nagain_interval 0.3\nflickscreen 9x9\nkey_repeat_interval 0.15\nnoaction\n(verbose_logging)\n\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nSpacemanD\nWhite Black\n.000.\n.010.\n00000\n.000.\n00.00\n\nSpacemanL\nWhite Black\n0.0..\n00000\n.0010\n00000\n0.0..\n\nSpacemanR\nWhite Black\n..0.0\n00000\n0100.\n00000\n..0.0\n\nSpacemanU\nWhite Black\n00.00\n.000.\n00000\n.010.\n.000.\n\nCorpse\nWhite Black\n.....\n.....\n000..\n01000\n00000\n\nDoorwaySpace\nTransparent\n\nDoorwayGrate\n#333 #222\n.....\n.001.\n.0...\n.1...\n.....\n\nGrate\n#333 #222\n.....\n.001.\n.0...\n.1...\n.....\n\nSpace\nBlack\n\nAir7\n#003870\n\nAir6\n#003060\n\nAir5\n#002850\n\nAir4\n#002040\n\nAir3\n#001830\n\nAir2\n#001020\n\nAir1\n#000810\n\nAir0\n#000000\n\nWall\nWhite\n\nCracks\nWhite #AAA #888\n02000\n01000\n20102\n00010\n00020\n\nWindow\n#8EF #0DE\n00000\n01111\n01111\n01111\n01111\n\nCrateS\n#AAA #888 #666 #444 #222\n10001\n02420\n04230\n02320\n10001\n\nCrateL\n#AAA #888 #666 #444 #222\n10000\n02444\n04222\n02333\n10000\n\nCrateR\n#AAA #888 #666 #444 #222\n00001\n44420\n22230\n33320\n00001\n\nCrateU\n#AAA #888 #666 #444 #222\n10001\n02420\n04230\n04230\n04230\n\nCrateD\n#AAA #888 #666 #444 #222\n04230\n04230\n04230\n02320\n10001\n\nCrateUL\n#AAA #888 #666 #444 #222\n10000\n02444\n04222\n04222\n04222\n\nCrateUR\n#AAA #888 #666 #444 #222\n00001\n44420\n22230\n22230\n22230\n\nCrateDL\n#AAA #888 #666 #444 #222\n04222\n04222\n04222\n02333\n10000\n\nCrateDR\n#AAA #888 #666 #444 #222\n22230\n22230\n22230\n33320\n00001\n\nDoorD\n#AAA #555\n..1..\n.101.\n.101.\n.101.\n.101.\n\nDoorL\n#AAA #555\n.....\n1111.\n00001\n1111.\n.....\n\nDoorR\n#AAA #555\n.....\n.1111\n10000\n.1111\n.....\n\nDoorU\n#AAA #555\n.101.\n.101.\n.101.\n.101.\n..1..\n\nDoorDR\n#AAA #555\n.....\n.11..\n.101.\n..101\n...10\n\nDoorDL\n#AAA #555\n.....\n..11.\n.101.\n101..\n01...\n\nDoorUR\n#AAA #555\n...10\n..101\n.101.\n.11..\n.....\n\nDoorUL\n#AAA #555\n01...\n101..\n.101.\n..11.\n.....\n\nAirlockO\n#AAA White\n.....\n....0\n....0\n....0\n.....\n\nAirlockC\n#AAA #A50\n.....\n00000\n01110\n00000\n.....\n\nAirlockG\n#AAA #0A0\n.....\n00000\n01110\n00000\n.....\n\nAirlockL\n#AAA #A00\n.....\n00000\n01110\n00000\n.....\n\nLog\nWhite Green Black\n00000\n12121\n21212\n12121\n00000\n\nLogAction\nWhite Black Green\n00000\n12121\n21212\n12121\n00000\n\nAirlockOn\nWhite #0A0\n00100\n01100\n01110\n00110\n00100\n\nAirlockOff\nWhite #A00\n00000\n00000\n01110\n00000\n00000\n\nClampOnL\nWhite #0A0\n01100\n00100\n01110\n00100\n01100\n\nClampOnR\nWhite #0A0\n00110\n00100\n01110\n00100\n00110\n\nClampOffL\nWhite #A00\n00100\n00100\n00110\n00100\n00100\n\nClampOffR\nWhite #A00\n00100\n00100\n01100\n00100\n00100\n\nNumber0\n#0A0\n.00..\n0..0.\n0..0.\n0..0.\n.00..\n\nNumber1\n#0A0\n..0..\n.00..\n..0..\n..0..\n.000.\n\nNumber2\n#0A0\n000..\n...0.\n.00..\n0....\n0000.\n\nNumber3\n#0A0\n000..\n...0.\n.00..\n...0.\n000..\n\nNumber4\n#0A0\n0....\n0..0.\n0000.\n...0.\n...0.\n\nNumber5\n#0A0\n0000.\n0....\n000..\n...0.\n000..\n\nNumber6\n#0A0\n.00..\n0....\n000..\n0..0.\n.00..\n\nNumber7\n#0A0\n0000.\n...0.\n..0..\n.0...\n0....\n\nNumber8\n#0A0\n.00..\n0..0.\n.00..\n0..0.\n.00..\n\nNumber9\n#0A0\n.00..\n0..0.\n.000.\n...0.\n.00..\n\nClampArm\n#AAA #888 #555\n.....\n00000\n11111\n22222\n.....\n\nClampL\n#AAA #888 #555 Yellow Black\n...33\n00034\n11133\n22234\n...33\n\nClampR\n#AAA #888 #555 Yellow Black\n33...\n43000\n33111\n43222\n33...\n\nPlayer\nTransparent\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nStory1\nTransparent\n\nStory2\nTransparent\n\nStory3\nTransparent\n\nStory4\nTransparent\n\nStory5\nTransparent\n\nStory6\nTransparent\n\nStory7\nTransparent\n\nStory8\nTransparent\n\nStory9\nTransparent\n\nDockU\nTransparent\n\nDockD\nTransparent\n\nGoal\nTransparent\n\nFlip\nTransparent\n\nBreech\nTransparent\n\nThrusterL [\n#AAA #999 #888 #777\n00123\n01223\n01223\n01223\n00123\n\nThrusterR ]\n#777 #666 #555 #444\n01233\n01123\n01123\n01123\n01233\n\nWingUR `\n#FFF #EEE #DDD #BBB\n32100\n.2100\n..100\n...00\n....0\n\nWingUL '\n#FFF #EEE #DDD #BBB\n00123\n0012.\n001..\n00...\n0....\n\nWingDR /\n#FFF #EEE #DDD #BBB\n....0\n...00\n..100\n.2100\n32100\n\nWingDL \\\n#FFF #EEE #DDD #BBB\n0....\n00...\n001..\n0012.\n00123\n\nShuttleL {\n#FFF #EEE #DDD #BBB\n32100\n32100\n32100\n32100\n32100\n\nShuttleR }\n#FFF #EEE #DDD #BBB\n00123\n00123\n00123\n00123\n00123\n\nWall1 α\nWhite #AAA\n00000\n00001\n11111\n01001\n00000\n\nWall2 β\nWhite #AAA\n00000\n01001\n10101\n10101\n10011\n\nWall3 γ\nWhite #AAA\n00000\n01010\n10101\n10101\n10001\n\nWall4 δ\nWhite #AAA\n00000\n01111\n00100\n00100\n11100\n\nWall5 ε\nWhite #AAA\n00000\n10010\n10101\n10101\n11101\n\nPlanetUL ┌\n#F60 #A40 #520\n..221\n.2110\n21110\n21100\n21100\n\nPlanetUR ┐\n#F60 #A40 #520\n112..\n0011.\n00012\n00001\n00001\n\nPlanetDL └\n#F60 #A40 #520\n21100\n21100\n21110\n.2110\n..221\n\nPlanetDR ┘\n#F60 #A40 #520\n00001\n00001\n00012\n0011.\n112..\n\nStar\n#FFA #FF5 #AA0 #550\n...3.\n3212.\n.101.\n.2123\n.3...\n\n\n=======\nLEGEND\n=======\n\n. = Air0\n░ = Space\n, = Air0 and DoorwaySpace\n* = Air0 and Grate\n\" = Air0 and Flip\n¤ = Air0 and Star\n█ = Wall\n▒ = Window\n▓ = Cracks\n! = Wall and Number9\n$ = Air0 and Number9\n~ = Air7\n↓ = DoorD and DoorwayGrate and Air0\n← = DoorL and DoorwayGrate and Air0\n→ = DoorR and DoorwayGrate and Air0\n↑ = DoorU and DoorwayGrate and Air0\n□ = Air0 and CrateS\n╞ = Air0 and CrateL\n╡ = Air0 and CrateR\n╥ = Air0 and CrateU\n╨ = Air0 and CrateD\n╔ = Air0 and CrateUL\n╗ = Air0 and CrateUR\n╚ = Air0 and CrateDL\n╝ = Air0 and CrateDR\na = Player and SpacemanD and Air7\nb = Story1 and Log\nc = DockU and AirlockG and Air7\ne = DockU and AirlockC and Air0 and DoorwayGrate\nf = DockU and AirlockOn\ng = DockU and ClampOnL\nh = DockU and ClampL and Air0\ni = DockU and ClampR and Air0\nj = DockU and ClampArm and Air0\nm = Player and SpacemanD and Air0\nn = Air0 and DoorwayGrate and Breech\no = DockD and ClampArm and Air0\np = DockD and ClampL and Air0\nq = DockD and ClampR and Air0\ns = DockD and AirlockOff\nt = DockD and ClampOnR\nw = DockD and AirlockL and Air0 and DoorwayGrate\nx = DockD and AirlockL and Air7\ny = Story9 and Log\nz = Goal and Air7\n2 = Story2 and Air0\n3 = Story3 and Air0\n4 = Story4 and Air0\n5 = Story5 and Air0\n6 = Story6 and Air0\n7 = Story7 and Air0\n8 = Story8 and Air0\n\nAirT = Air1 or Air2 or Air3 or Air4 or Air5 or Air6\nAirlockA = AirlockC or AirlockG or AirlockO or AirlockL\nAirlockU = AirlockC or AirlockG or AirlockO\nAirlockControl = AirlockOn or AirlockOff\nClamp = ClampL or ClampR\nClampOn = ClampOnL or ClampOnR\nClampOff = ClampOffL or ClampOffR\nClampControl = ClampOn or ClampOff\nCrate = CrateS or CrateD or CrateL or CrateR or CrateU or CrateDL or CrateDR or CrateUL or CrateUR\nCrateDX = CrateD or CrateDL or CrateDR\nCrateLX = CrateL or CrateDL or CrateUL\nCrateRX = CrateR or CrateDR or CrateUR\nCrateUX = CrateU or CrateUL or CrateUR\nDock = DockU or DockD\nDoor = DoorD or DoorL or DoorR or DoorU or DoorDL or DoorDR or DoorUL or DoorUR\nDoorH = DoorL or DoorR\nDoorV = DoorD or DoorU\nDoorS = DoorDL or DoorDR or DoorUL or DoorUR\nDoorway = DoorwayGrate or DoorwaySpace\nNumber = Number0 or Number1 or Number2 or Number3 or Number4 or Number5 or Number6 or Number7 or Number8 or Number9\nPlanet = PlanetDL or PlanetDR or PlanetUL or PlanetUR\nShuttle = ThrusterL or ThrusterR or WingDL or WingDR or WingUL or WingUR or ShuttleL or ShuttleR\nSpaceman = SpacemanD or SpacemanL or SpacemanR or SpacemanU or Corpse\nStory = Story1 or Story2 or Story3 or Story4 or Story5 or Story6 or Story7 or Story8 or Story9\nImmovable = Wall or Window or Cracks or Space or AirlockL or ClampArm or Shuttle or Wall1 or Wall2 or Wall3 or Wall4 or Wall5\nObstruction = Immovable or Crate or Door or AirlockC or AirlockG or Log or LogAction or AirlockControl or ClampControl\nPushObstruction = Obstruction or Grate or DoorwayGrate\n\n\n=======\nSOUNDS\n=======\n\nsfx0 92775908 (Depressrisaion)\nsfx1 28333308 (Repressrisaion)\nsfx3 5427908 (Power down airlock)\nsfx4 68678908 (Power up airlock)\nLogAction Create 35901509 (Checkpoint)\nClampL Move 95348908 (Engage/release clamp)\nAirlockO Create 12359908 (Open airlock)\nAirlockO Destroy 12359908 (Close airlock)\nDoor Destroy 12359908 (Open door)\nCrate Move 58179108 (Crate pushed)\nEndLevel 63640708 (Start of win)\nEndGame 87777508 (Finished win!)\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nAir0, AirT, Air7\nDoorwaySpace, DoorwayGrate, Grate, Goal, Flip, Planet, Star\nPlayer, Obstruction\nDock\nSpaceman\nAirlockO, Clamp, Number, Story, Breech\n\n\n======\nRULES\n======\n\n[> Player Corpse]->cancel\n[> Player|Immovable]->cancel\n\n(Crates)\n[> Player|Crate]->[> Player|> Crate]\nup [moving CrateDX|stationary CrateUX]->[moving CrateDX|moving CrateUX]\ndown [moving CrateUX|stationary CrateDX]->[moving CrateUX|moving CrateDX]\nleft [moving CrateRX|stationary CrateLX]->[moving CrateRX|moving CrateLX]\nright[moving CrateLX|stationary CrateRX]->[moving CrateLX|moving CrateRX]\n[> Crate|stationary PushObstruction]->cancel\n\n(Doors)\nvertical [> Player|DoorH]->[> Player|> DoorH]\nhorizontal[> Player|DoorV]->[> Player|> DoorV]\n[> Player|DoorS]->[> Player|> DoorS]\n[> Door|Door]->[|> Door]\n[horizontal DoorH]->cancel\n[vertical DoorV]->cancel\n[up DoorDL]->[left DoorDL]\n[right DoorDL]->[down DoorDL]\n[up DoorDR]->[right DoorDR]\n[left DoorDR]->[down DoorDR]\n[down DoorUL]->[left DoorUL]\n[right DoorUL]->[up DoorUL]\n[down DoorUR]->[right DoorUR]\n[left DoorUR]->[up DoorUR]\nup [> DoorL|no Obstruction]->[|DoorDL]\ndown [> DoorL|no Obstruction]->[|DoorUL]\nup [> DoorR|no Obstruction]->[|DoorDR]\ndown [> DoorR|no Obstruction]->[|DoorUR]\nleft [> DoorU|no Obstruction]->[|DoorUR]\nright[> DoorU|no Obstruction]->[|DoorUL]\nleft [> DoorD|no Obstruction]->[|DoorDR]\nright[> DoorD|no Obstruction]->[|DoorDL]\ndown [> DoorDL|no Obstruction]->[|DoorL]\nleft [> DoorDL|no Obstruction]->[|DoorD]\ndown [> DoorDR|no Obstruction]->[|DoorR]\nright[> DoorDR|no Obstruction]->[|DoorD]\nup [> DoorUL|no Obstruction]->[|DoorL]\nleft [> DoorUL|no Obstruction]->[|DoorU]\nup [> DoorUR|no Obstruction]->[|DoorR]\nright[> DoorUR|no Obstruction]->[|DoorU]\n[Door DoorwayGrate|no Door DoorwayGrate]->[Door DoorwayGrate|Door DoorwayGrate]\n[> Door|Obstruction]->cancel\n\n(Airlock)\n[> Player|AirlockG]->[Player|AirlockO]\n[AirlockO|AirlockU]->[AirlockO|AirlockO]\n\n(Repressurisation)\n[Air7|Spaceman Air6|]->[Air7|Spaceman Air7|Air7]\n[Air7|Spaceman Air5|]->[Air7|Spaceman Air6|Air6]again\n[Air7|Spaceman Air4|]->[Air7|Spaceman Air5|Air5]again\n[Air7|Spaceman Air3|]->[Air7|Spaceman Air4|Air4]again\n[Air7|Spaceman Air2|]->[Air7|Spaceman Air3|Air3]again\n[Air7|Spaceman Air1|]->[Air7|Spaceman Air2|Air2]again\n[AirlockC Air7|< Player||AirlockU Air0]->[AirlockC Air7|Player Air1|Air1|AirlockC Air0]sfx1 again\n\n(Oxygen)\nright[Number0|Number0][Player Spaceman]->[Number0|Number0][Player Corpse]\nright[Number|Number]->[Number|down Number]\n[Corpse][down Number]->[Corpse][Number]\n[stationary Player AirT][down Number]->[stationary Player AirT][Number]\n[> Player Doorway|Doorway][down Number]->[> Player Doorway|Doorway][Number]\nright[Number|down Number0]->[down Number|Number9]\nright[no Number|down Number0|Number9]->[|Number0|Number0]\n[down Number1]->[Number0]\n[down Number2]->[Number1]\n[down Number3]->[Number2]\n[down Number4]->[Number3]\n[down Number5]->[Number4]\n[down Number6]->[Number5]\n[down Number7]->[Number6]\n[down Number8]->[Number7]\n[down Number9]->[Number8]\n[Spaceman Air7][Number]->[SpacemanD Air7][Number9]\n\n(Depressurisation)\n[Air0|Spaceman Air1|]->[Air0|Spaceman Air0|Air0]\n[Air0|Spaceman Air2|]->[Air0|Spaceman Air1|Air1]again\n[Air0|Spaceman Air3|]->[Air0|Spaceman Air2|Air2]again\n[Air0|Spaceman Air4|]->[Air0|Spaceman Air3|Air3]again\n[Air0|Spaceman Air5|]->[Air0|Spaceman Air4|Air4]again\n[Air0|Spaceman Air6|]->[Air0|Spaceman Air5|Air5]again\n[AirlockC Air0|< Player||AirlockU Air7]->[AirlockC Air0|Player Air6|Air6|AirlockC Air7]sfx0 again\n\n(Airlock link)\n[Air7|AirlockC Air7|Air7]->[Air7|AirlockG Air7|Air7]\n[Air0|AirlockC Air0|Air0]->[Air0|AirlockG Air0|Air0]\n[AirlockC|AirlockO]->[AirlockC|AirlockC]\n\n(Log)\n[LogAction]->[Log]checkpoint\n[> Player|Log no Story]->[> Player|LogAction]again\n[Player Air6|Log Story1]->[Player Air6|Log]again checkpoint message Press [R] to rewind to your last log entry. If you really stuff up, start a new game.\n[> Player Air7|Log Story1]->[Player Air5|Log Story1]again message I record a log of my experiences. It may be useful if I need to retrace my steps.\n\n(Story)\nlate[Player|Story2]->[Player|]message The station is devoid of air. The micro-meteors must have hit here too.\nlate[Player|Story3]->[Player|]message I'll have to find the other shuttle quickly.\nlate[Player|Story4]->[Player|]message These are typical zero-G crates that clamp to the floor when not being moved.\nlate[Player|Story5]->[Player|]message Let's see what useful stuff they're full of...\nlate[Player|Story6]->[Player|]message They're full of vacuum cleaners!\nlate[Player|Story7]->[Player|]message This looks promising!\nlate[Player|Story8]->[Player|]message They just don't make space stations like they used to.\nlate[Player|Story9]->[Player|]message Now I just need to release the docking clamps.\n\n(Power up/down airlock)\n[> Player|AirlockOff][AirlockOn]->[Player|AirlockOff][AirlockOn]message ERROR: Only one airlock may be powered at a time.\n[> Player|AirlockControl DockU][AirlockA DockU]->[> Player|AirlockControl DockU][action AirlockA DockU]\n[> Player|AirlockControl DockD][AirlockA DockD]->[> Player|AirlockControl DockD][action AirlockA DockD]\n[action AirlockU]->[AirlockL]\n[action AirlockL]->[AirlockC]\n[Air0|Air0 AirlockC|Air0]->[Air0|Air0 AirlockG|Air0]\n[> Player|AirlockOn]->[Player|AirlockOff]sfx3\n[> Player|AirlockOff]->[Player|AirlockOn]sfx4\n\n(Clamp/release new shuttle)\n[> Player|ClampOn DockU]->[Player|ClampOn DockU]message No, I'm not releasing the docking clamp on my shuttle. That's my only life line right now.\n[> Player|ClampOn DockD][ClampL DockD][ClampR DockD]->[Player|action ClampOn DockD][left ClampL DockD][right ClampR DockD]\n[> Player|ClampOff DockD][ClampL DockD][ClampR DockD]->[Player|action ClampOff DockD][right ClampL DockD][left ClampR DockD]\n[action ClampOnL ]->[ClampOffL]\n[action ClampOnR ]->[ClampOffR]\n[action ClampOffL]->[ClampOnL ]\n[action ClampOffR]->[ClampOnR ]\n\n(Space walking)\nright[> Player SpacemanR Breech|Breech]->[Breech|Player SpacemanD Breech]\nright[Breech|< Player SpacemanD Breech]->[Player SpacemanR Breech|Breech]\ndown [> Player SpacemanD Breech|Breech]->[Breech|Player SpacemanU Breech]\ndown [Breech|< Player SpacemanU Breech]->[Player SpacemanD Breech|Breech]\nleft [> Player SpacemanD|Flip]->[|Flip down Player down SpacemanR]\nright[> Player SpacemanD|Flip]->[|Flip down Player down SpacemanL]\ndown [> Player SpacemanL|Flip]->[|Flip left Player left SpacemanU]\nup [> Player SpacemanL|Flip]->[|Flip left Player left SpacemanD]\ndown [> Player SpacemanR|Flip]->[|Flip right Player right SpacemanU]\nup [> Player SpacemanR|Flip]->[|Flip right Player right SpacemanD]\nleft [> Player SpacemanU|Flip]->[|Flip up Player up SpacemanR]\nright[> Player SpacemanU|Flip]->[|Flip up Player up SpacemanL]\n\n(Move spaceman)\nlate[Spaceman][no Spaceman Player]->[][Spaceman Player]\n\n\n==============\nWINCONDITIONS\n==============\n\nall Goal on Player\nno ClampOn on DockD\n\n\n=======\nLEVELS\n=======\n\nmessage That micro-meteor storm came out of nowhere!\nmessage My shuttle is badly damaged. My engines are stuttering. My comms are out. I need help fast.\nmessage There's a space station with another shuttle docked there. I have to dock there.\nmessage The station's docking clamps automatically guide me in and affix me to the airlock.\n\n...............................................................\n...............................................................\n...............................................................\n...............................................................\n...............................................................\n.¤........¤........¤........¤........¤........¤........¤.......\n......░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░......\n......░\",,.......,,.......,,\".....\".,,......,,.......,,\"░......\n...┌┐.░$!██▒███▒!!██▒███▒!!█,[]█[]$!██▒███▒!!██▒███▒!!█,░....$$\n......░,█α█▒███▒██β█▒███▒██γ,[]█[],█δ█▒███▒██ε█▒███▒███,░......\n......░.█α╞╡...*.█α╥......█α.`{b}'.█α...□...█α.....□.██.░......\n......░.▒▒.╞╡.╞╡.██╨...╔╗.██.░{a}░.██.╞╡....██□..□.□.▒▒.░......\n......░.██...╥...██╔╗╥.╚╝.██jh{~}ij██.....□*██...□...██.░......\n......░.██.□.╨╞╡*↑↑╚╝╨..╥.██▒▒{~}▒▒██□╞╡╞╡╞╡↑↑5□.□□..██.░......\n.¤....░.██.╥╔╗.□.██.╞╡□.╨*██.▒`c'▒.██.□...╥.██□╞╡.□.□██¤░......\n......░.▒▒*╨╚╝.╞╡██......□↓↓.f/~\\g.↓↓.╥...╨.██.□..□..▒▒.░......\n...┌┐.░.██......□██╞╡.....██.▒{~}▒.██.╨.4...██.□□....██.░......\n...└┘.░$!████→██!!████←██!!████e██!!████←██!!████→██!!█,░....$$\n......░,█α███→████β███←████γ███e████δ███←████ε███→█████,░......\n......░.█β□.□...□█β....□..█β..*2*..█β.......█β.╥.6...██.░......\n......░.▒▒.□.□.□.██..╥.╥..██..*.*..██□□□□□□□██*╨..╔╗*▒▒.░......\n......░.██□.□.□.□██╞╡╨.╨╞╡██.╥..□..██.......██..╞╡╚╝.██.░......\n......░.██.□.□.□.↓↓..□.□..↓↓.╨╔╗...↓↓3╞╡.╞╡.↓↓.╞╡╥...██.░......\n.¤....░.██□.□.□.□██╞╡╥.╥╞╡██**╚╝.**██.╞╡.╞╡.██╞╡.╨...██¤░......\n...┌┐.░.▒▒.□.□.□.██..╨.╨..██..*╞╡..██□□□□□□.██.╞╡.□□□▒▒.░......\n...└┘.░.██□.□.□.□██....□..██..*....██.......██.......██.░......\n......░$!████→██!!████←██!!████→██!!████←██!!████→██!!█,░....$$\n......░,█α███→████β███←████γ███→████δ███←████ε███→█████,░......\n......░.█γ.....╞╡█γ*.*.*.*█γ..╥..╞╡█γ╥.□....█γ.......██.░......\n......░.▒▒╞╡.....██.╥.╞╡╥□██.*╨╔╗.□██╨╥.....██.╔╗.╔╗.▒▒.░......\n......░.██.╞╡╞╡╔╗██*╨*.*╨*██..*╚╝..██.╨╥...□██.╚╝.╚╝.██.░......\n......░.██.....╚╝↑↑...╥╞╡.↑↑...*╞╡.↑↑..╨╥...↑↑.╔╗.╔╗.██.░......\n.¤.┌┐.░.██.╞╡╔╗..██*□*╨*╥*██....*..██╔╗.╨╥..██.╚╝.╚╝.██¤░......\n...└┘.░.▒▒...╚╝..██..╞╡.╨.██.....*.██╚╝..╨╔╗██.╔╗.╔╗.▒▒.░......\n......░.██╞╡....□██*□*.*.*██.......██.....╚╝██.╚╝.╚╝.██.░......\n......░$!████→██!!████←██!!████w██!!████←██!!████→██!!█,░....$$\n......░,█α███→████β███←████γ███w████δ███←████ε███→█████,░......\n......░.█δ□..8..□█δ╥..╞╡..█δ.▒{.}▒.█δ.╔╗.╔╗.█δ..╥....██.░......\n......░.▒▒╔╗.*...██╨╞╡....↑↑.t`.'s7↑↑.╚╝.╚╝.██.╥╨╞╡╥.▒▒.░......\n......░.██╚╝╞╡□╔╗██╥......██.▒/x\\▒.██.╥.╥...██.╨...╨.██.░......\n...┌┐.░.██...*.╚╝↓↓╨......██▒▒{~}▒▒██.╨.╨╔╗.↓↓.╞╡.╥╞╡██.░......\n.¤.└┘.░.▓▓..╞╡□..██.......██op{~}qo██.╥..╚╝.██.□..╨..██¤░......\n......░.nn...*...██.......██.░{z}░.██.╨...╔╗██...╥...▒▒.░......\n......░.▓▓□.╞╡..□██.......██./{y}\\.██...□.╚╝██..□╨...██.░......\n......░$!██▒███▒!!█▓n▓██▒!!█,[]█[]$!██▒███▒!!██▒███▒!!█,░....$$\n......░,███▒███▒███▓n▓██▒███,[]█[],███▒███▒████▒███▒███,░......\n......░\",,.......,,.......,,\".....\",,.......,,.......,,\"░......\n......░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░......\n...┌┐......┌┐......┌┐......┌┐.......┐..........................\n...└┘......└┘......└┘......└┘.......┘..........................\n.¤........¤........¤........¤........¤........¤........¤.......\n...............................................................\n...............................................................\n.......$$.......$$.......$$.......$$.......$$.......$$.......$$\n\nmessage Life support: CHECK\nmessage Clamp released: CHECK\nmessage Airlock disengaged: CHECK\nmessage Engine power: CHECK\nmessage Still alive: ...\nmessage CHECK!\n\n", [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 0, 3, 2, 2, 3, 2, 3, 3, 3, 3], "air0 background: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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,air0 background star:1,0,0,0,\n0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,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,0,background planetul:2,0,0,0,0,0,0,0,2,background planetdl:3,0,0,0,0,0,0,2,3,0,\n0,0,0,0,0,2,3,0,0,0,0,0,0,2,3,0,0,0,0,0,0,2,3,0,0,0,0,0,0,0,0,0,0,0,0,background planetur:4,0,0,0,0,0,0,0,4,background planetdr:5,0,0,0,0,0,0,4,5,0,0,0,0,0,0,4,5,0,0,\n0,0,0,0,4,5,0,0,0,0,0,0,4,5,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,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background space:6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,\n0,0,0,0,0,0,6,air0 background flip:7,air0 background number8:8,air0 background doorwayspace:9,0,0,0,0,0,0,0,8,9,0,0,0,0,0,0,0,8,9,0,0,0,0,0,0,0,8,9,0,0,0,0,0,0,0,8,9,7,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,background number5 wall:10,\nbackground wall:11,11,background window:12,11,11,11,12,11,10,11,11,12,11,11,11,12,11,10,11,11,12,11,11,11,12,11,10,11,11,12,11,11,background cracks:13,air0 background breech doorwaygrate:14,13,10,11,9,6,0,0,0,0,0,air0 background number5:15,0,0,0,0,0,0,6,9,11,background wall1:16,16,12,11,11,11,12,11,11,\n16,background wall2:17,12,11,11,11,12,11,11,16,background wall3:18,12,11,11,11,12,11,11,16,background wall4:19,12,11,11,13,14,13,11,11,9,6,0,0,0,0,0,0,0,0,0,0,0,1,6,0,11,11,air0 background cratel:20,0,0,0,0,air0 background grate:21,0,11,11,air0 background crates:22,0,22,0,22,0,22,11,\n11,0,20,0,0,0,0,20,11,11,22,air0 background crateul:23,air0 background cratedl:24,0,0,0,22,11,11,0,6,0,0,1,0,0,0,0,0,0,0,0,0,6,0,12,12,air0 background crater:25,20,0,22,air0 background crateu:26,air0 background crated:27,0,11,11,0,22,0,22,0,22,0,11,11,0,25,20,0,20,0,25,11,\n11,0,air0 background crateur:28,air0 background cratedr:29,0,0,0,0,12,12,0,6,2,3,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,25,0,0,23,24,0,11,11,22,0,22,0,22,0,22,11,11,0,0,25,0,25,0,0,11,11,0,0,20,0,20,0,20,11,\n11,0,6,4,5,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,0,26,27,28,29,0,air0 background doorr doorwaygrate:30,30,0,22,0,22,0,22,0,30,30,0,0,20,0,23,24,0,30,30,air0 background story8:31,21,25,21,25,21,25,11,11,0,6,0,0,0,0,0,0,\n0,0,0,0,0,0,6,0,11,11,0,20,0,20,0,0,0,11,11,0,0,22,0,22,0,22,11,11,0,0,25,0,28,29,0,11,11,0,0,22,0,22,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,12,\n12,21,25,0,25,22,20,0,11,11,0,22,0,22,0,22,0,11,11,20,0,23,24,0,0,0,11,11,0,0,23,24,0,0,0,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,background number8 wall:32,11,0,0,0,21,0,25,22,32,\n11,22,0,22,0,22,0,22,32,11,25,0,28,29,0,0,22,32,11,22,0,28,29,0,0,22,32,11,0,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,10,11,11,11,11,air0 background dooru doorwaygrate:33,11,11,11,10,11,11,11,11,air0 background doord doorwaygrate:34,11,11,11,10,\n11,11,11,11,33,11,11,11,10,11,11,11,11,34,11,11,11,10,11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,17,16,11,11,33,11,11,11,11,17,17,11,11,34,11,11,11,11,17,18,11,11,33,11,11,11,11,\n17,19,11,11,34,11,11,11,11,11,9,6,0,0,0,0,0,0,0,0,0,0,0,1,6,0,11,11,26,27,23,24,0,0,20,11,11,0,0,20,0,20,0,0,11,11,21,0,21,0,21,0,21,11,11,26,27,26,27,0,0,0,13,\n13,0,6,2,3,1,0,0,0,0,0,0,0,0,0,6,0,12,12,0,0,28,29,20,0,25,11,11,0,0,25,0,25,0,0,11,11,0,26,27,0,22,0,22,11,11,0,20,0,0,0,0,0,14,14,0,6,4,5,0,0,0,0,\n0,0,0,0,0,0,6,0,11,11,0,0,26,27,25,0,0,11,11,0,26,27,22,26,27,0,11,11,21,0,21,0,21,20,21,11,11,0,25,0,0,0,0,0,13,13,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,\n11,0,0,0,0,22,0,0,air0 background doorl doorwaygrate:35,35,0,0,0,0,0,0,0,35,35,0,20,0,26,27,25,0,35,35,20,0,0,0,0,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,23,24,0,0,0,0,11,\n11,22,26,27,22,26,27,22,11,11,21,25,21,20,21,0,21,11,11,25,0,0,0,0,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,12,12,0,28,29,26,27,0,0,11,11,0,0,20,0,20,0,0,11,\n11,0,26,27,25,26,27,0,11,11,0,0,0,0,0,0,0,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,32,11,0,0,0,0,21,22,0,32,11,0,0,25,0,25,0,0,32,11,21,22,21,0,21,0,21,32,\n11,0,0,0,0,0,0,0,32,11,0,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,10,11,11,11,11,11,11,34,11,10,11,11,11,11,34,11,11,11,10,11,11,11,11,33,11,11,11,10,11,11,33,11,11,11,11,11,10,\n11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,18,16,11,11,11,11,34,11,11,18,17,11,11,34,11,11,11,11,18,18,11,11,33,11,11,11,11,18,19,33,11,11,11,11,11,11,11,9,6,2,3,0,0,0,0,\n0,0,0,0,0,1,6,7,9,9,0,0,air0 background clamparm docku:36,12,0,0,0,11,11,0,0,0,0,21,0,0,11,11,0,0,0,0,0,0,0,11,11,0,0,0,12,air0 background clamparm dockd:37,0,0,9,9,7,6,4,5,1,0,0,0,0,0,0,0,0,0,6,0,background thrusterl:38,\n38,background wingur:39,6,air0 background clampl docku:40,12,12,airlockon background docku:41,12,11,11,0,0,26,27,21,0,0,11,11,0,21,0,0,0,0,0,11,11,12,background clamponr dockd:42,12,12,air0 background clampl dockd:43,6,background wingdr:44,38,38,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,background thrusterr:45,45,background shuttlel:46,46,46,46,39,44,46,11,\n11,21,21,0,23,24,21,21,11,11,26,27,21,0,0,0,0,11,11,46,39,44,46,46,46,46,45,45,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,background log story1:47,air7 background:48,48,48,air7 airlockc background docku:49,0,0,air0 airlocko background docku doorwaygrate:50,50,0,0,0,28,29,20,0,30,\n30,0,23,24,21,0,0,0,air0 airlockl background dockd doorwaygrate:51,51,0,0,air7 airlockl background dockd:52,48,48,air7 background goal:53,background log story9:54,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,38,38,background shuttler:55,55,55,55,background wingul:56,background wingdl:57,55,11,11,21,21,0,0,0,25,0,11,11,0,28,29,20,21,0,0,11,\n11,55,56,57,55,55,55,55,38,38,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,45,45,56,6,air0 background clampr docku:58,12,12,background clamponl docku:59,12,11,11,0,0,0,22,21,0,0,11,11,20,0,0,25,0,21,0,11,11,12,airlockoff background dockd:60,12,12,air0 background clampr dockd:61,6,57,45,\n45,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,7,8,9,0,0,36,12,0,0,0,32,11,0,0,0,0,21,0,0,32,11,25,22,0,0,0,0,0,32,11,0,air0 background story7:62,0,12,37,0,0,8,9,7,6,0,0,0,0,0,8,\n0,0,0,0,0,0,6,0,10,11,11,11,11,11,11,34,11,10,11,11,11,11,air0 background doorwaygrate:63,11,11,11,10,11,11,11,11,33,11,11,11,10,11,11,33,11,11,11,11,11,10,11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,\n19,16,11,11,11,11,34,11,11,19,17,11,11,63,11,11,11,11,19,18,11,11,33,11,11,11,11,19,19,33,11,11,11,11,11,11,11,9,6,4,5,0,0,0,0,0,0,0,0,0,1,6,9,11,11,0,0,0,22,0,0,0,11,\n11,0,22,0,0,air0 background doorl:64,22,0,11,11,26,27,0,0,23,24,0,11,11,0,0,0,0,0,0,0,11,11,0,6,0,0,1,0,0,0,0,0,0,0,0,0,6,0,12,12,0,20,0,20,22,26,27,11,11,0,22,0,air0 background player spacemand:65,20,22,0,11,\n11,0,26,27,0,28,29,0,11,11,23,24,26,27,26,27,0,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,25,0,25,0,0,0,11,11,0,22,0,20,25,22,0,11,11,22,0,26,27,0,0,0,11,\n11,28,29,0,0,0,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,22,0,0,20,0,0,air0 background story4:66,35,35,0,22,0,25,0,22,0,35,35,0,0,0,26,27,0,0,35,35,0,0,26,27,0,0,22,11,\n11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,0,0,25,0,0,0,11,11,0,22,0,20,20,22,0,11,11,0,0,0,0,26,27,0,11,11,23,24,0,23,24,0,0,11,11,0,6,0,0,0,0,0,0,\n0,0,0,0,0,0,6,0,12,12,0,0,22,20,26,27,0,11,11,0,22,0,25,25,22,0,11,11,0,0,0,0,0,23,24,11,11,28,29,0,28,29,23,24,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,32,\n11,0,0,21,25,0,0,0,32,11,0,22,0,0,0,0,0,32,11,0,0,22,0,0,28,29,32,11,0,0,0,0,0,28,29,32,11,0,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,10,11,11,11,11,33,11,11,11,10,\n11,11,11,11,34,11,11,11,10,11,11,11,11,33,11,11,11,10,11,11,11,11,34,11,11,11,10,11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,background wall5:67,16,11,11,33,11,11,11,11,67,17,11,11,34,11,11,11,11,\n67,18,11,11,33,11,11,11,11,67,19,11,11,34,11,11,11,11,11,9,6,0,0,0,0,0,0,0,0,0,0,0,1,6,0,11,11,0,22,0,air0 background story5:68,22,0,0,11,11,0,21,0,0,20,0,0,11,11,0,0,0,0,0,0,0,11,\n11,0,0,0,0,0,0,0,11,11,0,6,0,0,1,0,0,0,0,0,0,0,0,0,6,0,12,12,0,0,0,22,20,22,22,11,11,26,27,0,20,25,20,0,11,11,0,23,24,23,24,23,24,11,11,0,26,27,20,22,0,0,12,\n12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,0,0,0,25,0,22,11,11,0,0,20,25,0,25,0,11,11,0,28,29,28,29,28,29,11,11,26,27,0,25,0,0,22,11,11,0,6,0,0,0,0,0,0,\n0,0,0,0,0,0,6,0,11,11,0,22,22,22,0,0,0,30,30,air0 background story6:69,0,25,26,27,0,0,30,30,0,0,0,0,0,0,0,30,30,0,20,0,0,0,26,27,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,\n11,0,0,0,22,22,22,0,11,11,0,23,24,0,0,22,0,11,11,0,23,24,23,24,23,24,11,11,0,25,0,26,27,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,12,12,22,22,0,0,0,0,0,11,\n11,0,28,29,0,0,22,0,11,11,0,28,29,28,29,28,29,11,11,0,26,27,20,0,0,0,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,32,11,0,0,0,0,22,0,0,32,11,0,21,0,0,0,22,0,32,\n11,0,0,0,0,0,0,0,32,11,0,0,0,25,0,0,0,32,11,0,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,10,11,11,12,11,11,11,12,11,10,11,11,12,11,11,11,12,11,10,11,11,12,11,11,11,12,11,10,\n11,11,12,11,11,11,12,11,10,11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,11,11,12,11,11,11,12,11,11,11,11,12,11,11,11,12,11,11,11,11,12,11,11,11,12,11,11,11,11,12,11,11,11,12,11,11,\n11,9,6,0,0,0,0,0,0,0,0,0,0,0,1,6,7,9,9,0,0,0,0,1,0,0,9,9,0,0,0,0,1,0,0,9,9,0,0,0,0,1,0,0,9,9,0,0,0,0,1,0,0,9,9,7,6,0,0,1,0,0,0,\n0,0,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,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,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,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,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,8,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,8,\n0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,\n", 4, "1627779001776.2905"] + ["title Vacuum\nauthor Mark Richardson\nagain_interval 0.3\nflickscreen 9x9\nkey_repeat_interval 0.15\nnoaction\n(verbose_logging)\n\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nSpacemanD\nWhite Black\n.000.\n.010.\n00000\n.000.\n00.00\n\nSpacemanL\nWhite Black\n0.0..\n00000\n.0010\n00000\n0.0..\n\nSpacemanR\nWhite Black\n..0.0\n00000\n0100.\n00000\n..0.0\n\nSpacemanU\nWhite Black\n00.00\n.000.\n00000\n.010.\n.000.\n\nCorpse\nWhite Black\n.....\n.....\n000..\n01000\n00000\n\nDoorwaySpace\nTransparent\n\nDoorwayGrate\n#333 #222\n.....\n.001.\n.0...\n.1...\n.....\n\nGrate\n#333 #222\n.....\n.001.\n.0...\n.1...\n.....\n\nSpace\nBlack\n\nAir7\n#003870\n\nAir6\n#003060\n\nAir5\n#002850\n\nAir4\n#002040\n\nAir3\n#001830\n\nAir2\n#001020\n\nAir1\n#000810\n\nAir0\n#000000\n\nWall\nWhite\n\nCracks\nWhite #AAA #888\n02000\n01000\n20102\n00010\n00020\n\nWindow\n#8EF #0DE\n00000\n01111\n01111\n01111\n01111\n\nCrateS\n#AAA #888 #666 #444 #222\n10001\n02420\n04230\n02320\n10001\n\nCrateL\n#AAA #888 #666 #444 #222\n10000\n02444\n04222\n02333\n10000\n\nCrateR\n#AAA #888 #666 #444 #222\n00001\n44420\n22230\n33320\n00001\n\nCrateU\n#AAA #888 #666 #444 #222\n10001\n02420\n04230\n04230\n04230\n\nCrateD\n#AAA #888 #666 #444 #222\n04230\n04230\n04230\n02320\n10001\n\nCrateUL\n#AAA #888 #666 #444 #222\n10000\n02444\n04222\n04222\n04222\n\nCrateUR\n#AAA #888 #666 #444 #222\n00001\n44420\n22230\n22230\n22230\n\nCrateDL\n#AAA #888 #666 #444 #222\n04222\n04222\n04222\n02333\n10000\n\nCrateDR\n#AAA #888 #666 #444 #222\n22230\n22230\n22230\n33320\n00001\n\nDoorD\n#AAA #555\n..1..\n.101.\n.101.\n.101.\n.101.\n\nDoorL\n#AAA #555\n.....\n1111.\n00001\n1111.\n.....\n\nDoorR\n#AAA #555\n.....\n.1111\n10000\n.1111\n.....\n\nDoorU\n#AAA #555\n.101.\n.101.\n.101.\n.101.\n..1..\n\nDoorDR\n#AAA #555\n.....\n.11..\n.101.\n..101\n...10\n\nDoorDL\n#AAA #555\n.....\n..11.\n.101.\n101..\n01...\n\nDoorUR\n#AAA #555\n...10\n..101\n.101.\n.11..\n.....\n\nDoorUL\n#AAA #555\n01...\n101..\n.101.\n..11.\n.....\n\nAirlockO\n#AAA White\n.....\n....0\n....0\n....0\n.....\n\nAirlockC\n#AAA #A50\n.....\n00000\n01110\n00000\n.....\n\nAirlockG\n#AAA #0A0\n.....\n00000\n01110\n00000\n.....\n\nAirlockL\n#AAA #A00\n.....\n00000\n01110\n00000\n.....\n\nLog\nWhite Green Black\n00000\n12121\n21212\n12121\n00000\n\nLogAction\nWhite Black Green\n00000\n12121\n21212\n12121\n00000\n\nAirlockOn\nWhite #0A0\n00100\n01100\n01110\n00110\n00100\n\nAirlockOff\nWhite #A00\n00000\n00000\n01110\n00000\n00000\n\nClampOnL\nWhite #0A0\n01100\n00100\n01110\n00100\n01100\n\nClampOnR\nWhite #0A0\n00110\n00100\n01110\n00100\n00110\n\nClampOffL\nWhite #A00\n00100\n00100\n00110\n00100\n00100\n\nClampOffR\nWhite #A00\n00100\n00100\n01100\n00100\n00100\n\nNumber0\n#0A0\n.00..\n0..0.\n0..0.\n0..0.\n.00..\n\nNumber1\n#0A0\n..0..\n.00..\n..0..\n..0..\n.000.\n\nNumber2\n#0A0\n000..\n...0.\n.00..\n0....\n0000.\n\nNumber3\n#0A0\n000..\n...0.\n.00..\n...0.\n000..\n\nNumber4\n#0A0\n0....\n0..0.\n0000.\n...0.\n...0.\n\nNumber5\n#0A0\n0000.\n0....\n000..\n...0.\n000..\n\nNumber6\n#0A0\n.00..\n0....\n000..\n0..0.\n.00..\n\nNumber7\n#0A0\n0000.\n...0.\n..0..\n.0...\n0....\n\nNumber8\n#0A0\n.00..\n0..0.\n.00..\n0..0.\n.00..\n\nNumber9\n#0A0\n.00..\n0..0.\n.000.\n...0.\n.00..\n\nClampArm\n#AAA #888 #555\n.....\n00000\n11111\n22222\n.....\n\nClampL\n#AAA #888 #555 Yellow Black\n...33\n00034\n11133\n22234\n...33\n\nClampR\n#AAA #888 #555 Yellow Black\n33...\n43000\n33111\n43222\n33...\n\nPlayer\nTransparent\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nStory1\nTransparent\n\nStory2\nTransparent\n\nStory3\nTransparent\n\nStory4\nTransparent\n\nStory5\nTransparent\n\nStory6\nTransparent\n\nStory7\nTransparent\n\nStory8\nTransparent\n\nStory9\nTransparent\n\nDockU\nTransparent\n\nDockD\nTransparent\n\nGoal\nTransparent\n\nFlip\nTransparent\n\nBreech\nTransparent\n\nThrusterL [\n#AAA #999 #888 #777\n00123\n01223\n01223\n01223\n00123\n\nThrusterR ]\n#777 #666 #555 #444\n01233\n01123\n01123\n01123\n01233\n\nWingUR `\n#FFF #EEE #DDD #BBB\n32100\n.2100\n..100\n...00\n....0\n\nWingUL '\n#FFF #EEE #DDD #BBB\n00123\n0012.\n001..\n00...\n0....\n\nWingDR /\n#FFF #EEE #DDD #BBB\n....0\n...00\n..100\n.2100\n32100\n\nWingDL \\\n#FFF #EEE #DDD #BBB\n0....\n00...\n001..\n0012.\n00123\n\nShuttleL {\n#FFF #EEE #DDD #BBB\n32100\n32100\n32100\n32100\n32100\n\nShuttleR }\n#FFF #EEE #DDD #BBB\n00123\n00123\n00123\n00123\n00123\n\nWall1 α\nWhite #AAA\n00000\n00001\n11111\n01001\n00000\n\nWall2 β\nWhite #AAA\n00000\n01001\n10101\n10101\n10011\n\nWall3 γ\nWhite #AAA\n00000\n01010\n10101\n10101\n10001\n\nWall4 δ\nWhite #AAA\n00000\n01111\n00100\n00100\n11100\n\nWall5 ε\nWhite #AAA\n00000\n10010\n10101\n10101\n11101\n\nPlanetUL ┌\n#F60 #A40 #520\n..221\n.2110\n21110\n21100\n21100\n\nPlanetUR ┐\n#F60 #A40 #520\n112..\n0011.\n00012\n00001\n00001\n\nPlanetDL └\n#F60 #A40 #520\n21100\n21100\n21110\n.2110\n..221\n\nPlanetDR ┘\n#F60 #A40 #520\n00001\n00001\n00012\n0011.\n112..\n\nStar\n#FFA #FF5 #AA0 #550\n...3.\n3212.\n.101.\n.2123\n.3...\n\n\n=======\nLEGEND\n=======\n\n. = Air0\n░ = Space\n, = Air0 and DoorwaySpace\n* = Air0 and Grate\n\" = Air0 and Flip\n¤ = Air0 and Star\n█ = Wall\n▒ = Window\n▓ = Cracks\n! = Wall and Number9\n$ = Air0 and Number9\n~ = Air7\n↓ = DoorD and DoorwayGrate and Air0\n← = DoorL and DoorwayGrate and Air0\n→ = DoorR and DoorwayGrate and Air0\n↑ = DoorU and DoorwayGrate and Air0\n□ = Air0 and CrateS\n╞ = Air0 and CrateL\n╡ = Air0 and CrateR\n╥ = Air0 and CrateU\n╨ = Air0 and CrateD\n╔ = Air0 and CrateUL\n╗ = Air0 and CrateUR\n╚ = Air0 and CrateDL\n╝ = Air0 and CrateDR\na = Player and SpacemanD and Air7\nb = Story1 and Log\nc = DockU and AirlockG and Air7\ne = DockU and AirlockC and Air0 and DoorwayGrate\nf = DockU and AirlockOn\ng = DockU and ClampOnL\nh = DockU and ClampL and Air0\ni = DockU and ClampR and Air0\nj = DockU and ClampArm and Air0\nm = Player and SpacemanD and Air0\nn = Air0 and DoorwayGrate and Breech\no = DockD and ClampArm and Air0\np = DockD and ClampL and Air0\nq = DockD and ClampR and Air0\ns = DockD and AirlockOff\nt = DockD and ClampOnR\nw = DockD and AirlockL and Air0 and DoorwayGrate\nx = DockD and AirlockL and Air7\ny = Story9 and Log\nz = Goal and Air7\n2 = Story2 and Air0\n3 = Story3 and Air0\n4 = Story4 and Air0\n5 = Story5 and Air0\n6 = Story6 and Air0\n7 = Story7 and Air0\n8 = Story8 and Air0\n\nAirT = Air1 or Air2 or Air3 or Air4 or Air5 or Air6\nAirlockA = AirlockC or AirlockG or AirlockO or AirlockL\nAirlockU = AirlockC or AirlockG or AirlockO\nAirlockControl = AirlockOn or AirlockOff\nClamp = ClampL or ClampR\nClampOn = ClampOnL or ClampOnR\nClampOff = ClampOffL or ClampOffR\nClampControl = ClampOn or ClampOff\nCrate = CrateS or CrateD or CrateL or CrateR or CrateU or CrateDL or CrateDR or CrateUL or CrateUR\nCrateDX = CrateD or CrateDL or CrateDR\nCrateLX = CrateL or CrateDL or CrateUL\nCrateRX = CrateR or CrateDR or CrateUR\nCrateUX = CrateU or CrateUL or CrateUR\nDock = DockU or DockD\nDoor = DoorD or DoorL or DoorR or DoorU or DoorDL or DoorDR or DoorUL or DoorUR\nDoorH = DoorL or DoorR\nDoorV = DoorD or DoorU\nDoorS = DoorDL or DoorDR or DoorUL or DoorUR\nDoorway = DoorwayGrate or DoorwaySpace\nNumber = Number0 or Number1 or Number2 or Number3 or Number4 or Number5 or Number6 or Number7 or Number8 or Number9\nPlanet = PlanetDL or PlanetDR or PlanetUL or PlanetUR\nShuttle = ThrusterL or ThrusterR or WingDL or WingDR or WingUL or WingUR or ShuttleL or ShuttleR\nSpaceman = SpacemanD or SpacemanL or SpacemanR or SpacemanU or Corpse\nStory = Story1 or Story2 or Story3 or Story4 or Story5 or Story6 or Story7 or Story8 or Story9\nImmovable = Wall or Window or Cracks or Space or AirlockL or ClampArm or Shuttle or Wall1 or Wall2 or Wall3 or Wall4 or Wall5\nObstruction = Immovable or Crate or Door or AirlockC or AirlockG or Log or LogAction or AirlockControl or ClampControl\nPushObstruction = Obstruction or Grate or DoorwayGrate\n\n\n=======\nSOUNDS\n=======\n\nsfx0 92775908 (Depressrisaion)\nsfx1 28333308 (Repressrisaion)\nsfx3 5427908 (Power down airlock)\nsfx4 68678908 (Power up airlock)\nLogAction Create 35901509 (Checkpoint)\nClampL Move 95348908 (Engage/release clamp)\nAirlockO Create 12359908 (Open airlock)\nAirlockO Destroy 12359908 (Close airlock)\nDoor Destroy 12359908 (Open door)\nCrate Move 58179108 (Crate pushed)\nEndLevel 63640708 (Start of win)\nEndGame 87777508 (Finished win!)\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nAir0, AirT, Air7\nDoorwaySpace, DoorwayGrate, Grate, Goal, Flip, Planet, Star\nPlayer, Obstruction\nDock\nSpaceman\nAirlockO, Clamp, Number, Story, Breech\n\n\n======\nRULES\n======\n\n[> Player Corpse]->cancel\n[> Player|Immovable]->cancel\n\n(Crates)\n[> Player|Crate]->[> Player|> Crate]\nup [moving CrateDX|stationary CrateUX]->[moving CrateDX|moving CrateUX]\ndown [moving CrateUX|stationary CrateDX]->[moving CrateUX|moving CrateDX]\nleft [moving CrateRX|stationary CrateLX]->[moving CrateRX|moving CrateLX]\nright[moving CrateLX|stationary CrateRX]->[moving CrateLX|moving CrateRX]\n[> Crate|stationary PushObstruction]->cancel\n\n(Doors)\nvertical [> Player|DoorH]->[> Player|> DoorH]\nhorizontal[> Player|DoorV]->[> Player|> DoorV]\n[> Player|DoorS]->[> Player|> DoorS]\n[> Door|Door]->[|> Door]\n[horizontal DoorH]->cancel\n[vertical DoorV]->cancel\n[up DoorDL]->[left DoorDL]\n[right DoorDL]->[down DoorDL]\n[up DoorDR]->[right DoorDR]\n[left DoorDR]->[down DoorDR]\n[down DoorUL]->[left DoorUL]\n[right DoorUL]->[up DoorUL]\n[down DoorUR]->[right DoorUR]\n[left DoorUR]->[up DoorUR]\nup [> DoorL|no Obstruction]->[|DoorDL]\ndown [> DoorL|no Obstruction]->[|DoorUL]\nup [> DoorR|no Obstruction]->[|DoorDR]\ndown [> DoorR|no Obstruction]->[|DoorUR]\nleft [> DoorU|no Obstruction]->[|DoorUR]\nright[> DoorU|no Obstruction]->[|DoorUL]\nleft [> DoorD|no Obstruction]->[|DoorDR]\nright[> DoorD|no Obstruction]->[|DoorDL]\ndown [> DoorDL|no Obstruction]->[|DoorL]\nleft [> DoorDL|no Obstruction]->[|DoorD]\ndown [> DoorDR|no Obstruction]->[|DoorR]\nright[> DoorDR|no Obstruction]->[|DoorD]\nup [> DoorUL|no Obstruction]->[|DoorL]\nleft [> DoorUL|no Obstruction]->[|DoorU]\nup [> DoorUR|no Obstruction]->[|DoorR]\nright[> DoorUR|no Obstruction]->[|DoorU]\n[Door DoorwayGrate|no Door DoorwayGrate]->[Door DoorwayGrate|Door DoorwayGrate]\n[> Door|Obstruction]->cancel\n\n(Airlock)\n[> Player|AirlockG]->[Player|AirlockO]\n[AirlockO|AirlockU]->[AirlockO|AirlockO]\n\n(Repressurisation)\n[Air7|Spaceman Air6|]->[Air7|Spaceman Air7|Air7]\n[Air7|Spaceman Air5|]->[Air7|Spaceman Air6|Air6]again\n[Air7|Spaceman Air4|]->[Air7|Spaceman Air5|Air5]again\n[Air7|Spaceman Air3|]->[Air7|Spaceman Air4|Air4]again\n[Air7|Spaceman Air2|]->[Air7|Spaceman Air3|Air3]again\n[Air7|Spaceman Air1|]->[Air7|Spaceman Air2|Air2]again\n[AirlockC Air7|< Player||AirlockU Air0]->[AirlockC Air7|Player Air1|Air1|AirlockC Air0]sfx1 again\n\n(Oxygen)\nright[Number0|Number0][Player Spaceman]->[Number0|Number0][Player Corpse]\nright[Number|Number]->[Number|down Number]\n[Corpse][down Number]->[Corpse][Number]\n[stationary Player AirT][down Number]->[stationary Player AirT][Number]\n[> Player Doorway|Doorway][down Number]->[> Player Doorway|Doorway][Number]\nright[Number|down Number0]->[down Number|Number9]\nright[no Number|down Number0|Number9]->[|Number0|Number0]\n[down Number1]->[Number0]\n[down Number2]->[Number1]\n[down Number3]->[Number2]\n[down Number4]->[Number3]\n[down Number5]->[Number4]\n[down Number6]->[Number5]\n[down Number7]->[Number6]\n[down Number8]->[Number7]\n[down Number9]->[Number8]\n[Spaceman Air7][Number]->[SpacemanD Air7][Number9]\n\n(Depressurisation)\n[Air0|Spaceman Air1|]->[Air0|Spaceman Air0|Air0]\n[Air0|Spaceman Air2|]->[Air0|Spaceman Air1|Air1]again\n[Air0|Spaceman Air3|]->[Air0|Spaceman Air2|Air2]again\n[Air0|Spaceman Air4|]->[Air0|Spaceman Air3|Air3]again\n[Air0|Spaceman Air5|]->[Air0|Spaceman Air4|Air4]again\n[Air0|Spaceman Air6|]->[Air0|Spaceman Air5|Air5]again\n[AirlockC Air0|< Player||AirlockU Air7]->[AirlockC Air0|Player Air6|Air6|AirlockC Air7]sfx0 again\n\n(Airlock link)\n[Air7|AirlockC Air7|Air7]->[Air7|AirlockG Air7|Air7]\n[Air0|AirlockC Air0|Air0]->[Air0|AirlockG Air0|Air0]\n[AirlockC|AirlockO]->[AirlockC|AirlockC]\n\n(Log)\n[LogAction]->[Log]checkpoint\n[> Player|Log no Story]->[> Player|LogAction]again\n[Player Air6|Log Story1]->[Player Air6|Log]again checkpoint message Press [R] to rewind to your last log entry. If you really stuff up, start a new game.\n[> Player Air7|Log Story1]->[Player Air5|Log Story1]again message I record a log of my experiences. It may be useful if I need to retrace my steps.\n\n(Story)\nlate[Player|Story2]->[Player|]message The station is devoid of air. The micro-meteors must have hit here too.\nlate[Player|Story3]->[Player|]message I'll have to find the other shuttle quickly.\nlate[Player|Story4]->[Player|]message These are typical zero-G crates that clamp to the floor when not being moved.\nlate[Player|Story5]->[Player|]message Let's see what useful stuff they're full of...\nlate[Player|Story6]->[Player|]message They're full of vacuum cleaners!\nlate[Player|Story7]->[Player|]message This looks promising!\nlate[Player|Story8]->[Player|]message They just don't make space stations like they used to.\nlate[Player|Story9]->[Player|]message Now I just need to release the docking clamps.\n\n(Power up/down airlock)\n[> Player|AirlockOff][AirlockOn]->[Player|AirlockOff][AirlockOn]message ERROR: Only one airlock may be powered at a time.\n[> Player|AirlockControl DockU][AirlockA DockU]->[> Player|AirlockControl DockU][action AirlockA DockU]\n[> Player|AirlockControl DockD][AirlockA DockD]->[> Player|AirlockControl DockD][action AirlockA DockD]\n[action AirlockU]->[AirlockL]\n[action AirlockL]->[AirlockC]\n[Air0|Air0 AirlockC|Air0]->[Air0|Air0 AirlockG|Air0]\n[> Player|AirlockOn]->[Player|AirlockOff]sfx3\n[> Player|AirlockOff]->[Player|AirlockOn]sfx4\n\n(Clamp/release new shuttle)\n[> Player|ClampOn DockU]->[Player|ClampOn DockU]message No, I'm not releasing the docking clamp on my shuttle. That's my only life line right now.\n[> Player|ClampOn DockD][ClampL DockD][ClampR DockD]->[Player|action ClampOn DockD][left ClampL DockD][right ClampR DockD]\n[> Player|ClampOff DockD][ClampL DockD][ClampR DockD]->[Player|action ClampOff DockD][right ClampL DockD][left ClampR DockD]\n[action ClampOnL ]->[ClampOffL]\n[action ClampOnR ]->[ClampOffR]\n[action ClampOffL]->[ClampOnL ]\n[action ClampOffR]->[ClampOnR ]\n\n(Space walking)\nright[> Player SpacemanR Breech|Breech]->[Breech|Player SpacemanD Breech]\nright[Breech|< Player SpacemanD Breech]->[Player SpacemanR Breech|Breech]\ndown [> Player SpacemanD Breech|Breech]->[Breech|Player SpacemanU Breech]\ndown [Breech|< Player SpacemanU Breech]->[Player SpacemanD Breech|Breech]\nleft [> Player SpacemanD|Flip]->[|Flip down Player down SpacemanR]\nright[> Player SpacemanD|Flip]->[|Flip down Player down SpacemanL]\ndown [> Player SpacemanL|Flip]->[|Flip left Player left SpacemanU]\nup [> Player SpacemanL|Flip]->[|Flip left Player left SpacemanD]\ndown [> Player SpacemanR|Flip]->[|Flip right Player right SpacemanU]\nup [> Player SpacemanR|Flip]->[|Flip right Player right SpacemanD]\nleft [> Player SpacemanU|Flip]->[|Flip up Player up SpacemanR]\nright[> Player SpacemanU|Flip]->[|Flip up Player up SpacemanL]\n\n(Move spaceman)\nlate[Spaceman][no Spaceman Player]->[][Spaceman Player]\n\n\n==============\nWINCONDITIONS\n==============\n\nall Goal on Player\nno ClampOn on DockD\n\n\n=======\nLEVELS\n=======\n\nmessage That micro-meteor storm came out of nowhere!\nmessage My shuttle is badly damaged. My engines are stuttering. My comms are out. I need help fast.\nmessage There's a space station with another shuttle docked there. I have to dock there.\nmessage The station's docking clamps automatically guide me in and affix me to the airlock.\n\n...............................................................\n...............................................................\n...............................................................\n...............................................................\n...............................................................\n.¤........¤........¤........¤........¤........¤........¤.......\n......░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░......\n......░\",,.......,,.......,,\".....\".,,......,,.......,,\"░......\n...┌┐.░$!██▒███▒!!██▒███▒!!█,[]█[]$!██▒███▒!!██▒███▒!!█,░....$$\n......░,█α█▒███▒██β█▒███▒██γ,[]█[],█δ█▒███▒██ε█▒███▒███,░......\n......░.█α╞╡...*.█α╥......█α.`{b}'.█α...□...█α.....□.██.░......\n......░.▒▒.╞╡.╞╡.██╨...╔╗.██.░{a}░.██.╞╡....██□..□.□.▒▒.░......\n......░.██...╥...██╔╗╥.╚╝.██jh{~}ij██.....□*██...□...██.░......\n......░.██.□.╨╞╡*↑↑╚╝╨..╥.██▒▒{~}▒▒██□╞╡╞╡╞╡↑↑5□.□□..██.░......\n.¤....░.██.╥╔╗.□.██.╞╡□.╨*██.▒`c'▒.██.□...╥.██□╞╡.□.□██¤░......\n......░.▒▒*╨╚╝.╞╡██......□↓↓.f/~\\g.↓↓.╥...╨.██.□..□..▒▒.░......\n...┌┐.░.██......□██╞╡.....██.▒{~}▒.██.╨.4...██.□□....██.░......\n...└┘.░$!████→██!!████←██!!████e██!!████←██!!████→██!!█,░....$$\n......░,█α███→████β███←████γ███e████δ███←████ε███→█████,░......\n......░.█β□.□...□█β....□..█β..*2*..█β.......█β.╥.6...██.░......\n......░.▒▒.□.□.□.██..╥.╥..██..*.*..██□□□□□□□██*╨..╔╗*▒▒.░......\n......░.██□.□.□.□██╞╡╨.╨╞╡██.╥..□..██.......██..╞╡╚╝.██.░......\n......░.██.□.□.□.↓↓..□.□..↓↓.╨╔╗...↓↓3╞╡.╞╡.↓↓.╞╡╥...██.░......\n.¤....░.██□.□.□.□██╞╡╥.╥╞╡██**╚╝.**██.╞╡.╞╡.██╞╡.╨...██¤░......\n...┌┐.░.▒▒.□.□.□.██..╨.╨..██..*╞╡..██□□□□□□.██.╞╡.□□□▒▒.░......\n...└┘.░.██□.□.□.□██....□..██..*....██.......██.......██.░......\n......░$!████→██!!████←██!!████→██!!████←██!!████→██!!█,░....$$\n......░,█α███→████β███←████γ███→████δ███←████ε███→█████,░......\n......░.█γ.....╞╡█γ*.*.*.*█γ..╥..╞╡█γ╥.□....█γ.......██.░......\n......░.▒▒╞╡.....██.╥.╞╡╥□██.*╨╔╗.□██╨╥.....██.╔╗.╔╗.▒▒.░......\n......░.██.╞╡╞╡╔╗██*╨*.*╨*██..*╚╝..██.╨╥...□██.╚╝.╚╝.██.░......\n......░.██.....╚╝↑↑...╥╞╡.↑↑...*╞╡.↑↑..╨╥...↑↑.╔╗.╔╗.██.░......\n.¤.┌┐.░.██.╞╡╔╗..██*□*╨*╥*██....*..██╔╗.╨╥..██.╚╝.╚╝.██¤░......\n...└┘.░.▒▒...╚╝..██..╞╡.╨.██.....*.██╚╝..╨╔╗██.╔╗.╔╗.▒▒.░......\n......░.██╞╡....□██*□*.*.*██.......██.....╚╝██.╚╝.╚╝.██.░......\n......░$!████→██!!████←██!!████w██!!████←██!!████→██!!█,░....$$\n......░,█α███→████β███←████γ███w████δ███←████ε███→█████,░......\n......░.█δ□..8..□█δ╥..╞╡..█δ.▒{.}▒.█δ.╔╗.╔╗.█δ..╥....██.░......\n......░.▒▒╔╗.*...██╨╞╡....↑↑.t`.'s7↑↑.╚╝.╚╝.██.╥╨╞╡╥.▒▒.░......\n......░.██╚╝╞╡□╔╗██╥......██.▒/x\\▒.██.╥.╥...██.╨...╨.██.░......\n...┌┐.░.██...*.╚╝↓↓╨......██▒▒{~}▒▒██.╨.╨╔╗.↓↓.╞╡.╥╞╡██.░......\n.¤.└┘.░.▓▓..╞╡□..██.......██op{~}qo██.╥..╚╝.██.□..╨..██¤░......\n......░.nn...*...██.......██.░{z}░.██.╨...╔╗██...╥...▒▒.░......\n......░.▓▓□.╞╡..□██.......██./{y}\\.██...□.╚╝██..□╨...██.░......\n......░$!██▒███▒!!█▓n▓██▒!!█,[]█[]$!██▒███▒!!██▒███▒!!█,░....$$\n......░,███▒███▒███▓n▓██▒███,[]█[],███▒███▒████▒███▒███,░......\n......░\",,.......,,.......,,\".....\",,.......,,.......,,\"░......\n......░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░......\n...┌┐......┌┐......┌┐......┌┐.......┐..........................\n...└┘......└┘......└┘......└┘.......┘..........................\n.¤........¤........¤........¤........¤........¤........¤.......\n...............................................................\n...............................................................\n.......$$.......$$.......$$.......$$.......$$.......$$.......$$\n\nmessage Life support: CHECK\nmessage Clamp released: CHECK\nmessage Airlock disengaged: CHECK\nmessage Engine power: CHECK\nmessage Still alive: ...\nmessage CHECK!\n\n",[2,2,2,2,2,2,2,2,2,2,2,2,2,3,0,3,2,2,3,2,3,3,3,3],"air0 background: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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,air0 background star:1,0,0,0,\n0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,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,0,background planetul:2,0,0,0,0,0,0,0,2,background planetdl:3,0,0,0,0,0,0,2,3,0,\n0,0,0,0,0,2,3,0,0,0,0,0,0,2,3,0,0,0,0,0,0,2,3,0,0,0,0,0,0,0,0,0,0,0,0,background planetur:4,0,0,0,0,0,0,0,4,background planetdr:5,0,0,0,0,0,0,4,5,0,0,0,0,0,0,4,5,0,0,\n0,0,0,0,4,5,0,0,0,0,0,0,4,5,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,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background space:6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,\n0,0,0,0,0,0,6,air0 background flip:7,air0 background number8:8,air0 background doorwayspace:9,0,0,0,0,0,0,0,8,9,0,0,0,0,0,0,0,8,9,0,0,0,0,0,0,0,8,9,0,0,0,0,0,0,0,8,9,7,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,background number5 wall:10,\nbackground wall:11,11,background window:12,11,11,11,12,11,10,11,11,12,11,11,11,12,11,10,11,11,12,11,11,11,12,11,10,11,11,12,11,11,background cracks:13,air0 background breech doorwaygrate:14,13,10,11,9,6,0,0,0,0,0,air0 background number5:15,0,0,0,0,0,0,6,9,11,background wall1:16,16,12,11,11,11,12,11,11,\n16,background wall2:17,12,11,11,11,12,11,11,16,background wall3:18,12,11,11,11,12,11,11,16,background wall4:19,12,11,11,13,14,13,11,11,9,6,0,0,0,0,0,0,0,0,0,0,0,1,6,0,11,11,air0 background cratel:20,0,0,0,0,air0 background grate:21,0,11,11,air0 background crates:22,0,22,0,22,0,22,11,\n11,0,20,0,0,0,0,20,11,11,22,air0 background crateul:23,air0 background cratedl:24,0,0,0,22,11,11,0,6,0,0,1,0,0,0,0,0,0,0,0,0,6,0,12,12,air0 background crater:25,20,0,22,air0 background crateu:26,air0 background crated:27,0,11,11,0,22,0,22,0,22,0,11,11,0,25,20,0,20,0,25,11,\n11,0,air0 background crateur:28,air0 background cratedr:29,0,0,0,0,12,12,0,6,2,3,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,25,0,0,23,24,0,11,11,22,0,22,0,22,0,22,11,11,0,0,25,0,25,0,0,11,11,0,0,20,0,20,0,20,11,\n11,0,6,4,5,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,0,26,27,28,29,0,air0 background doorr doorwaygrate:30,30,0,22,0,22,0,22,0,30,30,0,0,20,0,23,24,0,30,30,air0 background story8:31,21,25,21,25,21,25,11,11,0,6,0,0,0,0,0,0,\n0,0,0,0,0,0,6,0,11,11,0,20,0,20,0,0,0,11,11,0,0,22,0,22,0,22,11,11,0,0,25,0,28,29,0,11,11,0,0,22,0,22,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,12,\n12,21,25,0,25,22,20,0,11,11,0,22,0,22,0,22,0,11,11,20,0,23,24,0,0,0,11,11,0,0,23,24,0,0,0,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,background number8 wall:32,11,0,0,0,21,0,25,22,32,\n11,22,0,22,0,22,0,22,32,11,25,0,28,29,0,0,22,32,11,22,0,28,29,0,0,22,32,11,0,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,10,11,11,11,11,air0 background dooru doorwaygrate:33,11,11,11,10,11,11,11,11,air0 background doord doorwaygrate:34,11,11,11,10,\n11,11,11,11,33,11,11,11,10,11,11,11,11,34,11,11,11,10,11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,17,16,11,11,33,11,11,11,11,17,17,11,11,34,11,11,11,11,17,18,11,11,33,11,11,11,11,\n17,19,11,11,34,11,11,11,11,11,9,6,0,0,0,0,0,0,0,0,0,0,0,1,6,0,11,11,26,27,23,24,0,0,20,11,11,0,0,20,0,20,0,0,11,11,21,0,21,0,21,0,21,11,11,26,27,26,27,0,0,0,13,\n13,0,6,2,3,1,0,0,0,0,0,0,0,0,0,6,0,12,12,0,0,28,29,20,0,25,11,11,0,0,25,0,25,0,0,11,11,0,26,27,0,22,0,22,11,11,0,20,0,0,0,0,0,14,14,0,6,4,5,0,0,0,0,\n0,0,0,0,0,0,6,0,11,11,0,0,26,27,25,0,0,11,11,0,26,27,22,26,27,0,11,11,21,0,21,0,21,20,21,11,11,0,25,0,0,0,0,0,13,13,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,\n11,0,0,0,0,22,0,0,air0 background doorl doorwaygrate:35,35,0,0,0,0,0,0,0,35,35,0,20,0,26,27,25,0,35,35,20,0,0,0,0,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,23,24,0,0,0,0,11,\n11,22,26,27,22,26,27,22,11,11,21,25,21,20,21,0,21,11,11,25,0,0,0,0,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,12,12,0,28,29,26,27,0,0,11,11,0,0,20,0,20,0,0,11,\n11,0,26,27,25,26,27,0,11,11,0,0,0,0,0,0,0,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,32,11,0,0,0,0,21,22,0,32,11,0,0,25,0,25,0,0,32,11,21,22,21,0,21,0,21,32,\n11,0,0,0,0,0,0,0,32,11,0,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,10,11,11,11,11,11,11,34,11,10,11,11,11,11,34,11,11,11,10,11,11,11,11,33,11,11,11,10,11,11,33,11,11,11,11,11,10,\n11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,18,16,11,11,11,11,34,11,11,18,17,11,11,34,11,11,11,11,18,18,11,11,33,11,11,11,11,18,19,33,11,11,11,11,11,11,11,9,6,2,3,0,0,0,0,\n0,0,0,0,0,1,6,7,9,9,0,0,air0 background clamparm docku:36,12,0,0,0,11,11,0,0,0,0,21,0,0,11,11,0,0,0,0,0,0,0,11,11,0,0,0,12,air0 background clamparm dockd:37,0,0,9,9,7,6,4,5,1,0,0,0,0,0,0,0,0,0,6,0,background thrusterl:38,\n38,background wingur:39,6,air0 background clampl docku:40,12,12,airlockon background docku:41,12,11,11,0,0,26,27,21,0,0,11,11,0,21,0,0,0,0,0,11,11,12,background clamponr dockd:42,12,12,air0 background clampl dockd:43,6,background wingdr:44,38,38,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,background thrusterr:45,45,background shuttlel:46,46,46,46,39,44,46,11,\n11,21,21,0,23,24,21,21,11,11,26,27,21,0,0,0,0,11,11,46,39,44,46,46,46,46,45,45,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,background log story1:47,air7 background:48,48,48,air7 airlockc background docku:49,0,0,air0 airlocko background docku doorwaygrate:50,50,0,0,0,28,29,20,0,30,\n30,0,23,24,21,0,0,0,air0 airlockl background dockd doorwaygrate:51,51,0,0,air7 airlockl background dockd:52,48,48,air7 background goal:53,background log story9:54,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,38,38,background shuttler:55,55,55,55,background wingul:56,background wingdl:57,55,11,11,21,21,0,0,0,25,0,11,11,0,28,29,20,21,0,0,11,\n11,55,56,57,55,55,55,55,38,38,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,45,45,56,6,air0 background clampr docku:58,12,12,background clamponl docku:59,12,11,11,0,0,0,22,21,0,0,11,11,20,0,0,25,0,21,0,11,11,12,airlockoff background dockd:60,12,12,air0 background clampr dockd:61,6,57,45,\n45,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,7,8,9,0,0,36,12,0,0,0,32,11,0,0,0,0,21,0,0,32,11,25,22,0,0,0,0,0,32,11,0,air0 background story7:62,0,12,37,0,0,8,9,7,6,0,0,0,0,0,8,\n0,0,0,0,0,0,6,0,10,11,11,11,11,11,11,34,11,10,11,11,11,11,air0 background doorwaygrate:63,11,11,11,10,11,11,11,11,33,11,11,11,10,11,11,33,11,11,11,11,11,10,11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,\n19,16,11,11,11,11,34,11,11,19,17,11,11,63,11,11,11,11,19,18,11,11,33,11,11,11,11,19,19,33,11,11,11,11,11,11,11,9,6,4,5,0,0,0,0,0,0,0,0,0,1,6,9,11,11,0,0,0,22,0,0,0,11,\n11,0,22,0,0,air0 background doorl:64,22,0,11,11,26,27,0,0,23,24,0,11,11,0,0,0,0,0,0,0,11,11,0,6,0,0,1,0,0,0,0,0,0,0,0,0,6,0,12,12,0,20,0,20,22,26,27,11,11,0,22,0,air0 background player spacemand:65,20,22,0,11,\n11,0,26,27,0,28,29,0,11,11,23,24,26,27,26,27,0,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,25,0,25,0,0,0,11,11,0,22,0,20,25,22,0,11,11,22,0,26,27,0,0,0,11,\n11,28,29,0,0,0,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,22,0,0,20,0,0,air0 background story4:66,35,35,0,22,0,25,0,22,0,35,35,0,0,0,26,27,0,0,35,35,0,0,26,27,0,0,22,11,\n11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,0,0,25,0,0,0,11,11,0,22,0,20,20,22,0,11,11,0,0,0,0,26,27,0,11,11,23,24,0,23,24,0,0,11,11,0,6,0,0,0,0,0,0,\n0,0,0,0,0,0,6,0,12,12,0,0,22,20,26,27,0,11,11,0,22,0,25,25,22,0,11,11,0,0,0,0,0,23,24,11,11,28,29,0,28,29,23,24,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,32,\n11,0,0,21,25,0,0,0,32,11,0,22,0,0,0,0,0,32,11,0,0,22,0,0,28,29,32,11,0,0,0,0,0,28,29,32,11,0,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,10,11,11,11,11,33,11,11,11,10,\n11,11,11,11,34,11,11,11,10,11,11,11,11,33,11,11,11,10,11,11,11,11,34,11,11,11,10,11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,background wall5:67,16,11,11,33,11,11,11,11,67,17,11,11,34,11,11,11,11,\n67,18,11,11,33,11,11,11,11,67,19,11,11,34,11,11,11,11,11,9,6,0,0,0,0,0,0,0,0,0,0,0,1,6,0,11,11,0,22,0,air0 background story5:68,22,0,0,11,11,0,21,0,0,20,0,0,11,11,0,0,0,0,0,0,0,11,\n11,0,0,0,0,0,0,0,11,11,0,6,0,0,1,0,0,0,0,0,0,0,0,0,6,0,12,12,0,0,0,22,20,22,22,11,11,26,27,0,20,25,20,0,11,11,0,23,24,23,24,23,24,11,11,0,26,27,20,22,0,0,12,\n12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,11,0,0,0,0,25,0,22,11,11,0,0,20,25,0,25,0,11,11,0,28,29,28,29,28,29,11,11,26,27,0,25,0,0,22,11,11,0,6,0,0,0,0,0,0,\n0,0,0,0,0,0,6,0,11,11,0,22,22,22,0,0,0,30,30,air0 background story6:69,0,25,26,27,0,0,30,30,0,0,0,0,0,0,0,30,30,0,20,0,0,0,26,27,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,11,\n11,0,0,0,22,22,22,0,11,11,0,23,24,0,0,22,0,11,11,0,23,24,23,24,23,24,11,11,0,25,0,26,27,0,0,11,11,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,12,12,22,22,0,0,0,0,0,11,\n11,0,28,29,0,0,22,0,11,11,0,28,29,28,29,28,29,11,11,0,26,27,20,0,0,0,12,12,0,6,0,0,0,0,0,0,0,0,0,0,0,0,6,0,32,11,0,0,0,0,22,0,0,32,11,0,21,0,0,0,22,0,32,\n11,0,0,0,0,0,0,0,32,11,0,0,0,25,0,0,0,32,11,0,6,0,0,0,0,0,8,0,0,0,0,0,0,6,9,10,11,11,12,11,11,11,12,11,10,11,11,12,11,11,11,12,11,10,11,11,12,11,11,11,12,11,10,\n11,11,12,11,11,11,12,11,10,11,9,6,0,0,0,0,0,15,0,0,0,0,0,0,6,9,11,11,11,12,11,11,11,12,11,11,11,11,12,11,11,11,12,11,11,11,11,12,11,11,11,12,11,11,11,11,12,11,11,11,12,11,11,\n11,9,6,0,0,0,0,0,0,0,0,0,0,0,1,6,7,9,9,0,0,0,0,1,0,0,9,9,0,0,0,0,1,0,0,9,9,0,0,0,0,1,0,0,9,9,0,0,0,0,1,0,0,9,9,7,6,0,0,1,0,0,0,\n0,0,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,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,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,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,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,8,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,8,\n0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,15,\n",4,"1627779001776.2905"] ], [ `gallery: paralands`, - ["title ParaLands\nauthor Lukas\nrun_rules_on_level_start\nagain_interval 0.05\nnorepeat_action\n\n========\nOBJECTS\n========\n\n\nBackground\ndarkgray\n\nFloor1\ndarkgray\n\nFloor2\n#444444\n\nWall\ngray #444444 #bbbbbb\n.222.\n20001\n20001\n20001\n.111.\n\nWallConnectorN\ngray #444444 #bbbbbb\n20001\n.....\n.....\n.....\n.....\n\nWallConnectorS\ngray #444444 #bbbbbb\n.....\n.....\n.....\n.....\n20001\n\nWallConnectorE\ngray #444444 #bbbbbb\n....2\n....0\n....0\n....0\n....1\n\nWallConnectorW\ngray #444444 #bbbbbb\n2....\n0....\n0....\n0....\n1....\n\nWallConnectorNE\ngray\n....0\n.....\n.....\n.....\n.....\n\nWallConnectorNW\ngray\n0....\n.....\n.....\n.....\n.....\n\nWallConnectorSE\ngray\n.....\n.....\n.....\n.....\n....0\n\nWallConnectorSW\ngray\n.....\n.....\n.....\n.....\n0....\n\nPit\nblack\n\nPlayerOrange\norange blue\n.000.\n.101.\n00000\n.000.\n.0.0.\n\nPlayerBlue\nblue orange\n.000.\n.101.\n00000\n.000.\n.0.0.\n\nPlayerTrans1\norange blue black\n.....\n.000.\n.101.\n22222\n.222.\n\nPlayerTrans2\nblack\n.....\n.....\n.000.\n00000\n.000.\n\nPlayerTrans3\nblue orange black\n.....\n.000.\n.101.\n22222\n.222.\n\nCrateOrange\norange #ffbb88 #bb6600\n11112\n10002\n10002\n10002\n22222\n\nCrateBlue\nblue #8888ff #0000bb\n11112\n10002\n10002\n10002\n22222\n\nCrateOmni\norange #ffbb88 #bb6600 blue #8888ff #0000bb\n11145\n10035\n10035\n10335\n22555\n\nBallOrange\norange #ffbb88 #bb6600\n.002.\n01002\n00002\n20002\n.222.\n\nBallBlue\nblue #8888ff #0000bb\n.002.\n01002\n00002\n20002\n.222.\n\nBallOmni\norange #ffbb88 #bb6600 blue #0000bb\n.004.\n01034\n00034\n20334\n.244.\n\nDoorOrange\norange #bb6600\n.000.\n00000\n10001\n11111\n.111.\n\nDoorOpenOrange\norange\n.....\n.....\n.000.\n00000\n.000.\n\nDoorBlue\nblue #0000bb\n.000.\n00000\n10001\n11111\n.111.\n\nDoorOpenBlue\nblue\n.....\n.....\n.000.\n00000\n.000.\n\nDoorOmni\norange #bb6600 blue #0000bb\n.002.\n00022\n10223\n11333\n.133.\n\nDoorOpenOmni\norange blue\n.....\n.....\n.001.\n00011\n.011.\n\nSwitchOrange\norange\n.....\n..0..\n.000.\n..0..\n.....\n\nSwitchBlue\nblue\n.....\n..0..\n.000.\n..0..\n.....\n\nSwitchOmni\norange blue\n.....\n..0..\n.001.\n..1..\n.....\n\nTrapdoorOrange\norange #ffbb88\n.000.\n01010\n00000\n01010\n.000.\n\nTrapdoorBlue\nblue #8888ff\n.000.\n01010\n00000\n01010\n.000.\n\nTrapdoorOmni\norange #ffbb88 blue #8888ff\n.002.\n01032\n00022\n01232\n.022.\n\nEnemyOrangeIdle\norange #ffbb88\n.....\n..0..\n.101.\n.0.0.\n.0.0.\n\nEnemyOrangeActive\norange #ffbb88\n.....\n.....\n..0..\n.101.\n.0.0.\n\nEnemyBlueIdle\nblue #8888ff\n.....\n..0..\n.101.\n.0.0.\n.0.0.\n\nEnemyBlueActive\nblue #8888ff\n.....\n.....\n..0..\n.101.\n.0.0.\n\nEnemyOmniIdle\norange #ffbb88 blue #8888ff\n.....\n..0..\n.123.\n.0.2.\n.0.2.\n\nEnemyOmniActive\norange #ffbb88 blue #8888ff\n.....\n.....\n..0..\n.123.\n.0.2.\n\nPlatformOrange\n#bb6600\n.....\n.000.\n.000.\n.000.\n.....\n\nPlatformBlue\n#0000bb\n.....\n.000.\n.000.\n.000.\n.....\n\nPlatformOmni\n#bb6600 #0000bb\n.....\n.001.\n.001.\n.011.\n.....\n\nGoalFr1\ngray lightgray\n.000.\n00111\n01001\n00011\n.111.\n\nGoalFr2\ngray lightgray\n.111.\n01011\n01001\n00101\n.000.\n\nGoalFr3\ngray lightgray \n.111.\n11000\n10010\n11100\n.000.\n\nGoalFr4\ngray lightgray\n.000.\n10100\n10010\n11010\n.111.\n\nBlood\nred\n\nInactiveCrate\nwhite\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\nInactiveBall\nwhite\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nInactivePlatform\nwhite\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nInactiveDoor\nwhite\n.0.0.\n0...0\n.0.0.\n.....\n.....\n\nInactiveDoorOpen\nwhite\n.....\n.....\n.0.0.\n0...0\n.0.0.\n\nInactiveSwitch\ntransparent\n\nInactiveTrapdoor\nwhite\n0...0\n.....\n.....\n.....\n0...0\n\nInactiveEnemy\nwhite\n.....\n..0..\n.0.0.\n.....\n.0.0.\n\nTempCrate\ntransparent\n\nTempBall\ntransparent\n\nTempPlatform\ntransparent\n\ntempDoor\ntransparent\n\ntempDoorOpen\ntransparent\n\ntempSwitch\ntransparent\n\nTempTrapdoor\ntransparent\n\nTempEnemy\ntransparent\n\nInit\ntransparent\n\nEnemyTurn\ntransparent\n\nBuffer\ntransparent\n\nAnimate\ntransparent\n\nPlayerShadow\ntransparent\n\nOrangeToBlue\ntransparent\n\nBlueToOrange\ntransparent\n\nJumpNow\ntransparent\n\nPlayerCrosshair\ntransparent\n\nTrapdoorTriggered\ntransparent\n\nInactiveTrapdoorTriggered\ntransparent\n\nTempTrapdoorTriggered\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n@ = PlayerOrange and Init\n! = GoalFr1\n1 = CrateOrange and InactiveCrate\na = CrateOmni\n2 = BallOrange and InactiveBall\nb = BallOmni\n3 = EnemyOrangeIdle and InactiveEnemy\nc = EnemyOmniIdle\n4 = DoorOrange and InactiveDoor\nd = DoorOmni\n5 = SwitchOrange and InactiveSwitch\ne = SwitchOmni\n6 = Pit and TrapdoorOrange and InactiveTrapdoor\nf = Pit and TrapdoorOmni\n* = Pit\n\n(main game objects)\nFloor = Floor1 or Floor2\nPlayer = PlayerOrange or PlayerBlue or PlayerTrans1 or PlayerTrans2 or PlayerTrans3\nGoal = GoalFr1 or GoalFr2 or GoalFr3 or GoalFr4\n\n(PU game objects)\nMonoCrate = CrateOrange or CrateBlue\nCrate = MonoCrate or CrateOmni\nMonoBall = BallOrange or BallBlue\nBall = MonoBall or BallOmni\nMonoPlatform = PlatformOrange or PlatformBlue\nPlatform = MonoPlatform or PlatformOmni\nMonoDoor = DoorOrange or DoorBlue\nDoor = DoorOmni or MonoDoor\nMonoDoorOpen = DoorOpenOrange or DoorOpenBlue\nDoorOpen = DoorOpenOmni or MonoDoorOpen\nMonoSwitch = SwitchOrange or SwitchBlue\nSwitch = SwitchOmni or MonoSwitch\nMonoTrapdoor = TrapdoorOrange or TrapdoorBlue\nTrapdoor = MonoTrapdoor or TrapdoorOmni\n\nPushable = Ball or Crate\nInactivePushable = InactiveBall or InactiveCrate\nPushableOmni = BallOmni or CrateOmni\n\nEnemyOrange = EnemyOrangeIdle or EnemyOrangeActive\nEnemyBlue = EnemyBlueIdle or EnemyBlueActive\nEnemyOmni = EnemyOmniIdle or EnemyOmniActive\nMonoEnemy = EnemyOrange or EnemyBlue\nEnemy = MonoEnemy or EnemyOmni\nMonoEnemyActive = EnemyBlueActive or EnemyOrangeActive\nEnemyActive = MonoEnemyActive or EnemyOmniActive\n\n(general obstacles)\nObstacle = Wall or Player or Crate or Ball or Enemy or Door\n\n(inactive obstacles)\nInactiveObstacle = InactiveCrate or InactiveBall or InactiveEnemy or InactiveDoor\n\n(obstacles for inactive objects)\nObstacleForInactive = InactiveObstacle or Wall or CrateOmni or BallOmni or EnemyOmni\n\n(obstacles for active enemy)\nObstacleForMonoEnemy = Wall or Enemy or Door\n\n(obstacles for omni enemy)\nObstacleForOmniEnemy = ObstacleForMonoEnemy or InactiveEnemy or InactiveDoor\n\n(Have 4 different Pitfillers, so the correct platform is built)\nPitFillerOrange = CrateOrange or BallOrange\nPitFillerBlue = CrateBlue or BallBlue\nPitFillerOmni = CrateOmni or BallOmni\nPitFillerInactive = InactiveCrate or InactiveBall\n\n(Fillings)\nFilling = Platform or Trapdoor\nInactiveFilling = InactivePlatform or InactiveTrapdoor or PlatformOmni or TrapdoorOmni\n\n(Weights for doors)\nWeight = Player or Crate or Ball or Enemy\nInactiveWeight = InactiveCrate or InactiveBall or InactiveEnemy or CrateOmni or BallOmni or EnemyOmni\n\n(Trapdoor triggers)\nTrigger = Player or Enemy\nInactiveTrigger = InactiveEnemy or EnemyOmni\nOmniTrigger = Trigger or InactiveTrigger\n\n(Temporary objects, eg buffers, flags, ...)\nTempAnimTurn = Init or Buffer or EnemyTurn or Animate or PlayerCrosshair\nTempInputTurn = PlayerShadow\n\n=======\nSOUNDS\n=======\n\nsfx1 27102304\nsfx2 11336309\nPushable move 69429507\nsfx3 47602107\nsfx4 91878702\nTrapdoor Destroy 77067304\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFloor1, Floor2\nGoal, Pit, Switch, DoorOpen\nPlatform, Trapdoor\nInactivePlatform, InactiveTrapdoor\nTempPlatform, TempTrapdoor\nInactiveTrapdoorTriggered\nTempTrapdoorTriggered\nTrapdoorTriggered\nPlayer, Wall, Crate, Ball, Enemy, Door\nInactiveSwitch, InactiveDoorOpen\nTempSwitch, TempDoorOpen\nInactiveCrate, InactiveBall, InactiveEnemy, InactiveDoor\nTempCrate, TempBall, TempEnemy, TempDoor\n\n(Some flags. Just to be sure, might as well use a seperate layer for each)\nAnimate\nBuffer\nInit\nEnemyTurn\nPlayerShadow\nOrangeToBlue, BlueToOrange\nJumpNow\nPlayerCrosshair\n\n(wall connector sprites. Unfortunately, each one needs its own layer)\nWallConnectorN\nWallConnectorE\nWallConnectorS\nWallConnectorW\nWallConnectorNE\nWallConnectorNW\nWallConnectorSE\nWallConnectorSW\n\n(DEATH)\nBlood\n\n======\nRULES \n======\n\n(INIT TURN)\n(Rules in this section are only run once on level start)\n\n(init floor)\n[Init][Player] -> [Init][Player Floor1]\n[Floor1|no Floor] -> [Floor1|Floor2]\n+[Floor2|no Floor] -> [Floor2|Floor1]\n\n(init walls)\nright [Init][Wall|Wall] -> [Init][Wall WallConnectorE|Wall WallConnectorW]\ndown [Init][Wall|Wall] -> [Init][Wall WallConnectorS|Wall WallConnectorN]\n[Init][WallConnectorN WallConnectorE] -> [Init][WallConnectorN WallConnectorE WallConnectorNE]\n[Init][WallConnectorN WallConnectorW] -> [Init][WallConnectorN WallConnectorW WallConnectorNW]\n[Init][WallConnectorS WallConnectorE] -> [Init][WallConnectorS WallConnectorE WallConnectorSE]\n[Init][WallConnectorS WallConnectorW] -> [Init][WallConnectorS WallConnectorW WallConnectorSW]\n\n\n(UNIVERSE HOPPING)\n\n[PlayerTrans3 OrangeToBlue] -> [PlayerBlue]\n[PlayerTrans2 OrangeToBlue JumpNow] -> [PlayerTrans3 OrangeToBlue Animate] again\n[PlayerTrans2 OrangeToBlue no JumpNow] -> [PlayerTrans2 OrangeToBlue JumpNow Animate] again\n[PlayerTrans1 OrangeToBlue] -> [PlayerTrans2 OrangeToBlue Animate] again\n[action PlayerOrange no InactiveObstacle no Pit] -> [PlayerTrans1 OrangeToBlue Animate] again sfx2\n\n[PlayerTrans1 BlueToOrange] -> [PlayerOrange]\n[PlayerTrans2 BlueToOrange JumpNow] -> [PlayerTrans1 BlueToOrange Animate] again\n[PlayerTrans2 BlueToOrange no JumpNow] -> [PlayerTrans2 BlueToOrange JumpNow Animate] again\n[PlayerTrans3 BlueToOrange] -> [PlayerTrans2 BlueToOrange Animate] again\n[action PlayerBlue no InactiveObstacle no Pit] -> [PlayerTrans3 BlueToOrange Animate] again sfx2\n\n[action Player] -> sfx1\n\n\n(PARALLEL UNIVERSE OBJECTS)\n(lots of very similiar code, but no way to avoid that I guess)\n\n(buffer inactive objects)\n[JumpNow][InactiveCrate] -> [JumpNow][TempCrate]\n[JumpNow][InactiveBall] -> [JumpNow][TempBall]\n[JumpNow][InactivePlatform] -> [JumpNow][TempPlatform]\n[JumpNow][InactiveDoor] -> [JumpNow][TempDoor]\n[JumpNow][InactiveDoorOpen] -> [JumpNow][TempDoorOpen]\n[JumpNow][InactiveSwitch] -> [JumpNow][TempSwitch]\n[JumpNow][InactiveTrapdoor] -> [JumpNow][TempTrapdoor]\n[JumpNow][InactiveTrapdoorTriggered] -> [JumpNow][TempTrapdoorTriggered]\n[JumpNow][InactiveEnemy] -> [JumpNow][TempEnemy]\n\n(toggle active objects)\n[JumpNow][MonoCrate] -> [JumpNow][InactiveCrate]\n[JumpNow][MonoBall] -> [JumpNow][InactiveBall]\n[JumpNow][MonoPlatform] -> [JumpNow][InactivePlatform]\n[JumpNow][MonoDoor] -> [JumpNow][InactiveDoor]\n[JumpNow][MonoDoorOpen] -> [JumpNow][InactiveDoorOpen]\n[JumpNow][MonoSwitch] -> [JumpNow][InactiveSwitch]\n[JumpNow][MonoTrapdoor] -> [JumpNow][InactiveTrapdoor]\n[JumpNow][TrapdoorTriggered] -> [JumpNow][InactiveTrapdoorTriggered]\n[JumpNow][MonoEnemy] -> [JumpNow][InactiveEnemy]\n\n(\"load\" inactive objects)\n[TempCrate][OrangeToBlue] -> [CrateBlue][OrangeToBlue]\n[TempCrate][BlueToOrange] -> [CrateOrange][BlueToOrange]\n\n[TempBall][OrangeToBlue] -> [BallBlue][OrangeToBlue]\n[TempBall][BlueToOrange] -> [BallOrange][BlueToOrange]\n\n[TempPlatform][OrangeToBlue] -> [PlatformBlue][OrangeToBlue]\n[TempPlatform][BlueToOrange] -> [PlatformOrange][BlueToOrange]\n\n[TempDoor][OrangeToBlue] -> [DoorBlue][OrangeToBlue]\n[TempDoor][BlueToOrange] -> [DoorOrange][BlueToOrange]\n\n[TempDoorOpen][OrangeToBlue] -> [DoorOpenBlue][OrangeToBlue]\n[TempDoorOpen][BlueToOrange] -> [DoorOpenOrange][BlueToOrange]\n\n[TempSwitch][OrangeToBlue] -> [SwitchBlue][OrangeToBlue]\n[TempSwitch][BlueToOrange] -> [SwitchOrange][BlueToOrange]\n\n[TempTrapdoor][OrangeToBlue] -> [TrapdoorBlue][OrangeToBlue]\n[TempTrapdoor][BlueToOrange] -> [TrapdoorOrange][BlueToOrange]\n\n[TempTrapdoorTriggered] -> [TrapdoorTriggered]\n\n[TempEnemy][OrangeToBlue] -> [EnemyBlueIdle][OrangeToBlue]\n[TempEnemy][BlueToOrange] -> [EnemyOrangeIdle][BlueToOrange]\n\n\n(ENEMY TURN - Kinda nasty)\n\n(Vertical preference, of course - DROD rules!)\nvertical [stationary EnemyActive|...|Player] -> [> EnemyActive|...|Player]\nvertical [stationary EnemyActive|...|PlayerCrosshair] -> [> EnemyActive|...|PlayerCrosshair]\n\n(Do some basic checks if the move is possible)\n[> EnemyActive|ObstacleForMonoEnemy] -> [EnemyActive|ObstacleForMonoEnemy]\n[> EnemyActive|Pushable|Obstacle] -> [EnemyActive|Pushable|Obstacle]\n[> EnemyActive|Pit no Filling] -> [EnemyActive|Pit]\n\n(of course, an omni pushable can't be pushed if the inactive universe blocks it)\n[> EnemyActive|PushableOmni|ObstacleForInactive] -> [EnemyActive|PushableOmni|ObstacleForInactive]\n\n(Special attention to an omni enemy)\n[> EnemyOmniActive|ObstacleForOmniEnemy] -> [EnemyOmniActive|ObstacleForOmniEnemy]\n[> EnemyOmniActive|InactivePushable|ObstacleForInactive] -> [EnemyOmniActive|InactivePushable|ObstacleForInactive]\n[> EnemyOmniActive|Pit no InactiveFilling] -> [EnemyOmniActive|Pit]\n\n(Don't think this is possible without some code duplication)\nhorizontal [stationary EnemyActive|...|Player] -> [> EnemyActive|...|Player]\nhorizontal [stationary EnemyActive|...|PlayerCrosshair] -> [> EnemyActive|...|PlayerCrosshair]\n\n[> EnemyActive|ObstacleForMonoEnemy] -> [EnemyActive|ObstacleForMonoEnemy]\n[> EnemyActive|Pushable|Obstacle] -> [EnemyActive|Pushable|Obstacle]\n[> EnemyActive|Pit no Filling] -> [EnemyActive|Pit]\n\n[> EnemyActive|PushableOmni|ObstacleForInactive] -> [EnemyActive|PushableOmni|ObstacleForInactive]\n\n[> EnemyOmniActive|ObstacleForOmniEnemy] -> [EnemyOmniActive|ObstacleForOmniEnemy]\n[> EnemyOmniActive|InactivePushable|ObstacleForInactive] -> [EnemyOmniActive|InactivePushable|ObstacleForInactive]\n[> EnemyOmniActive|Pit no InactiveFilling] -> [EnemyOmniActive|Pit]\n\n(Move balls - special attention to \"double balls\")\n(do this check first so you might save the player from an unfair death)\n[> EnemyOmniActive|Ball InactiveBall] -> [EnemyOmniActive|> Ball > InactiveBall]\n[> EnemyActive|Ball] -> [EnemyActive|> Ball]\n[> EnemyOmniActive|InactiveBall] -> [EnemyOmniActive|> InactiveBall]\n\n(if able to move into the player, do so)\n[> EnemyActive|Player] -> [|Blood] sfx4\n\n(Move crates)\n[> EnemyActive|Crate] -> [> EnemyActive|> Crate]\n[> EnemyOmniActive|InactiveCrate] -> [> EnemyOmniActive|> InactiveCrate]\n\n\n(ANIMATION TURN)\n\n(Goal animation)\n[Animate][GoalFr4] -> [Animate][GoalFr1 Buffer]\n[Animate][GoalFr3] -> [Animate][GoalFr4]\n[Animate][GoalFr2] -> [Animate][GoalFr3]\n[Animate][GoalFr1 no Buffer] -> [Animate][GoalFr2]\n\n(Turn active monsters back into idle ones)\n[EnemyOrangeActive] -> [EnemyOrangeIdle]\n[EnemyBlueActive] -> [EnemyBlueIdle]\n[EnemyOmniActive] -> [EnemyOmniIdle]\n\n(Death animation)\n[Blood Buffer|] -> [Blood Buffer|Blood]\n\n(kill all temporary objects used by the Anim Turn)\n[TempAnimTurn] -> []\n\n(mark blood tiles)\n[Blood] -> [Blood Buffer] again\n\n\n(PLAYER TURN)\n\n(init player Shadow)\n[Player] -> [Player PlayerShadow]\n\n(don't move into pits)\n[> Player|Pit no Filling] -> [Player|Pit]\n\n(push stuff)\n[> Player|Crate] -> [> Player|> Crate]\n[> CrateOmni|InactiveObstacle] -> [CrateOmni|InactiveObstacle]\n\n[> Player|MonoBall|no Obstacle] -> [Player Animate EnemyTurn|> MonoBall|] again\n[> Player|BallOmni|no Obstacle no InactiveObstacle] -> [Player Animate EnemyTurn|> BallOmni|] again\n\n(move balls)\n[> BallOmni|InactiveObstacle] -> [BallOmni|InactiveObstacle]\n+[> Ball|no Obstacle] -> [|> Ball] sfx3\n+[> MonoBall Pit no Filling] -> [MonoBall Pit]\n+[> BallOmni Pit no Filling no InactiveFilling] -> [BallOmni Pit]\n\n(inactive ones, too)\n[> InactiveBall|ObstacleForInactive] -> [InactiveBall|ObstacleForInactive]\n+[> InactiveBall|no ObstacleForInactive] -> [|> InactiveBall]\n+[> InactiveBall Pit no InactiveFilling] -> [InactiveBall Pit]\n\n(LATE TURN)\n\n(is a trapdoor triggered?)\nlate [MonoTrapdoor Trigger] -> [MonoTrapdoor Trigger TrapdoorTriggered]\nlate [InactiveTrapdoor InactiveTrigger] -> [InactiveTrapdoor InactiveTrigger InactiveTrapdoorTriggered]\nlate [TrapdoorOmni OmniTrigger] -> [TrapdoorOmni OmniTrigger TrapdoorTriggered]\n\n(make triggered trapdoors fall if there's no more weight on top of them)\nlate [MonoTrapdoor TrapdoorTriggered no Weight] -> []\nlate [InactiveTrapdoor InactiveTrapdoorTriggered no InactiveWeight] -> []\nlate [TrapdoorOmni TrapdoorTriggered no Weight no InactiveWeight] -> []\n\n(if something is on top of a pit that can fill it, build a platform)\nlate [Pit no Filling PitFillerOrange] -> [Pit PlatformOrange]\nlate [Pit no Filling PitFillerBlue] -> [Pit PlatformBlue]\nlate [Pit no Filling no InactiveFilling PitFillerOmni] -> [Pit PlatformOmni]\nlate [Pit no InactiveFilling PitFillerInactive] -> [Pit InactivePlatform]\n\n(check door states)\n(start by pretending the doors ar open)\nlate [DoorOrange] -> [DoorOpenOrange]\nlate [DoorBlue] -> [DoorOpenBlue]\nlate [DoorOmni] -> [DoorOpenOmni]\nlate [InactiveDoor] -> [InactiveDoorOpen]\n\n(if there's nothing on top of the door and there's a switch without a weight, close the door)\n(again, this requires a lot of similiar code, but I don't know how to improve that)\nlate [DoorOpenOrange no Obstacle][MonoSwitch no Weight] -> [DoorOrange][MonoSwitch]\nlate [DoorOpenBlue no Obstacle][MonoSwitch no Weight] -> [DoorBlue][MonoSwitch]\nlate [DoorOpenOmni no Obstacle][MonoSwitch no Weight] -> [DoorOmni][MonoSwitch]\nlate [InactiveDoorOpen no ObstacleForInactive][InactiveSwitch no InactiveWeight] -> [InactiveDoor][InactiveSwitch]\n\n(an omni door additionaly needs inactive switches to be held down)\nlate [DoorOpenOmni no Obstacle][InactiveSwitch no InactiveWeight] -> [DoorOmni][InactiveSwitch]\n\n(note that omni switches can be held down in either dimension)\nlate [DoorOpenOrange no Obstacle][SwitchOmni no Weight no InactiveWeight] -> [DoorOrange][SwitchOmni]\nlate [DoorOpenBlue no Obstacle][SwitchOmni no Weight no InactiveWeight] -> [DoorBlue][SwitchOmni]\nlate [DoorOpenOmni no Obstacle][SwitchOmni no Weight no InactiveWeight] -> [DoorOmni][SwitchOmni]\nlate [InactiveDoorOpen no ObstacleForInactive][SwitchOmni no Weight no InactiveWeight] -> [InactiveDoor][SwitchOmni]\n\n(if the player has actually moved, it's the game's turn)\nlate [Player no PlayerShadow] -> [Player Animate EnemyTurn] again\n\n(is an enemy turn coming up? Turn idle monsters into active ones)\nlate [EnemyTurn][EnemyOrangeIdle] -> [EnemyTurn][EnemyOrangeActive]\nlate [EnemyTurn][EnemyBlueIdle] -> [EnemyTurn][EnemyBlueActive]\nlate [EnemyTurn][EnemyOmniIdle] -> [EnemyTurn][EnemyOmniActive]\n\n(also do that crosshair thing)\nlate [EnemyTurn][Player|...|] -> [EnemyTurn][Player|...|PlayerCrosshair]\n\n(kill all temporary objects used by the Player Turn)\nlate [TempInputTurn] -> []\n\n\n==============\nWINCONDITIONS\n==============\n\nsome Player on Goal\n\n======= \nLEVELS\n=======\n\n\nmessage Have you ever wondered ...\nmessage ... if you weren't there ...\nmessage ... would the universe really care?\n\n\nmessage I - Nothing New Under the Sun\n\n#####****###\n#@..#*####c#\n#.a.###d##.#\n#.####d!d#.#\n#*#..##d##.#\n#.#.b#.e.#.#\n#.f..#.e.#.#\n####.#...#.#\n**#..##f##.#\n###..*..##.#\n#.a..#..##.#\n#....#####.#\n######***###\n\n\nmessage II - Universe Hopper\n\n########*\n#..1.1.##\n#..1.1.!#\n#..1.1.##\n#.#######\n#.#*****#\n#.#*1*1*#\n#.#**1**#\n#.#*1*1*#\n#.#*****#\n#.#######\n#*.@.1..#\n#########\n\n\nmessage III - The Best of Both Worlds\n\n****#########****\n#####.......#****\n#...#.#.#.#.#####\n#.1.........*.*!#\n#####.#.#.#.#####\n#.b............@#\n#...#.#.#.#.#####\n#####.......#****\n****#########****\n\n\nmessage IV - Two Times Two\n\n*##########\n##...*#.*!#\n#.11....#*#\n##..#*#.#.#\n*#.##.*...#\n*########@#\n********###\n\nmessage V - Dimensional Prelude\n\n*####****\n*#d!#****\n##*###***\n#*.*.#***\n#@.#*###*\n#....4.##\n#.1#5#a.#\n#.1.....#\n#..######\n####*****\n\n\nmessage VI - Dimensional Gateways\n\n******#####******\n******#...#******\n#######.5.#######\n#...#...@...#...#\n#!.*d.1.e.a.4.1.#\n#...#.......#...#\n#######.5.#######\n******#...#******\n******#####******\n\n\nmessage VII - Two Times Four\n\n****###******\n**###.#######\n###..1..#eee#\n#!d@1.1..ee##\n###..1..#eee#\n**###.#######\n****###******\n\n\nmessage VIII - Game of Marbles\n\n#########**\n#.......#**\n#.2...2.#**\n#.@.....###\n#...5...d!#\n#.b.....###\n#.2...2.#**\n#.......#**\n#########**\n\n\nmessage IX - Fixing a Hole\n\n#######*********\n#..**!#*********\n#..####*********\n##6##########***\n##..........###*\n*#.##d##d##d#.##\n*#.##.##.##....#\n*#@..6..6...2.##\n*#.##.##.##...#*\n*#d##d##d##...#*\n*#............#*\n*####.1.b.....##\n*#**5..........#\n*###############\n\n\nmessage X - Half Time\n\n*****###*******\n*#####*#*******\n*#!..#*###*****\n*#.#d#.a.#*****\n*#.d5...5#*****\n####.....#####*\n#**...5..6...#*\n###a.....#...#*\n**#.5...5#...#*\n**####6###...#*\n*****#....2.2##\n*****#.....2..#\n*****#....2.b.#\n*****######..@#\n**********#####\n\n\nmessage XI - Nemesis\n\n#########******\n#.......#******\n#.#####.#***###\n#.#c#@#.#***#c#\n#.#a#.#.#####d#\n#.#*....b..f.e#\n#.#######b###.#\n###*#..3#f#*#.#\n****#.###.###.#\n****#....*...*#\n****#########d#\n************#!#\n************###\n\n\nmessage XII - Every Breath You Take\n\n****######***\n****#....#***\n****#.##.#***\n****#....#***\n****##c######\n****#*@*****#\n****#*.....*#\n****#*.b...*#\n****#*.....*#\n****#*...b.*#\n****#*.....*#\n****#*****.*#\n##########.##\n#!*b*b*b....#\n########.##.#\n*******#....#\n*******######\n\n\nmessage XIII - Stalking Across Universes\n\n**#########***\n**#.......#***\n**#.#...#.#***\n###.......####\n#c@...1...b*!#\n###.......####\n**#.#...#.#***\n**#.......#***\n**#########***\n\n\nmessage XIV - A Little Help From My Friends\n\n********######\n#########....#\n#.........##3#\n#.#####.b.####\n#.#.####..#***\n#.#..*!#.##***\n#.##.###..#***\n#..#......#***\n##.#.######***\n*#@#.#********\n*#####********\n\n\nmessage XV - Hope Spot\n\n***#####*###\n***#...#*#!#\n***#.1.#*#*#\n####.#####.#\n#.c#.e.2d..#\n#.##.#.###.#\n#.#@...#*#.#\n#.##.#.###.#\n#....#.....#\n############\n\n\nmessage XVI - Hope for the Hopeless\n\n***######*****\n***#*##*#####*\n***#....#*#*##\n***#.**.....*#\n***#.**.*.*.##\n####....*...##\n#!*b.e1..4.@c#\n####....*...##\n***#.**.*.*.##\n***#.**.....*#\n***#....#*#*##\n***#*##*#####*\n***######*****\n\n\nmessage XVII - Blockade\n\n**###\n**#!#\n###*#\n#.#.#\n#.b.#\n#.b.#\n#3#@#\n#####\n\n\n\nmessage XVIII - Pas de Trois\n\n###########\n#.........#\n#.........#\n#....3....#\n#.........#\n#..e...e..#\n#.........#\n#.........#\n#####@#####\n****#d#****\n****#!#****\n****###****\n\n\nmessage XIX - Orange Blues\n\n********###**\n********#!###\n#########6.3#\n#...c...d.###\n#.......#f#**\n#..#.#..#.#**\n#..#5#..###**\n#..###..#****\n#.......#****\n#.1...1.#****\n#.##@##.#****\n#.......#****\n#########****\n\n\nmessage XX - The Last Waltz\n\n**********###****\n**#########3#****\n**#c.##...#d#****\n**##.##.#2#.#****\n**#..#......#****\n###.##.#..#.#****\n#...*.......#****\n#.#a##......#****\n#.#6##.#..1.#****\n#.#6#.......#****\n#...#e#b##b####**\n###f#f#d##d##.#**\n**#@#e.*..*.#.###\n**#########..bb.#\n**********#!#.#f#\n**********###..3#\n************#####\n\n\nmessage Congratulations! Thanks for playing, hope you enjoyed.\n\nmessage Encore\nmessage [Might be a bit too much trial-and-error for an \"official\" level]\n\n###*###**********\n#c#*#e#*########*\n#d###a#*#......#*\n#...#@###....#.#*\n#.#b#........d3#*\n###.#.###..a.####\n###.#.#*#....dbc#\n#!.*f*###....####\n###f#..##....#***\n**#.##f#######***\n**####.#*********\n***#cd.#*********\n***#####*********\n", [3, 0, 3, 3, 2, 3, 3, 3, 1, 1, 1, 0, 1, 2, 1, 2, 1, 1, 4, 3, 0, 3, 3, 2, 3, 3, 3, 1, 1, 1, 1, 0, 1, 1, 2, 3, 3, 3, 3, 3, 3, 4], "background floor1 pit:0,background floor2 pit:1,background floor1 wall wallconnectore wallconnectors wallconnectorse:2,background floor2 wall wallconnectorn wallconnectors:3,background floor1 wall wallconnectore wallconnectorn wallconnectorne:4,1,0,1,0,background floor2 wall wallconnectore wallconnectorw:5,background floor1 goalfr3:6,5,0,\n1,0,background floor2 wall wallconnectore wallconnectors wallconnectorse:7,background floor1 wall wallconnectorn wallconnectornw wallconnectorw:8,background dooromni floor2:9,background floor1 wall wallconnectors wallconnectorsw wallconnectorw:10,background floor2 wall wallconnectore wallconnectorn wallconnectorne:11,0,1,background floor1 wall wallconnectore wallconnectorw:12,background floor2:13,background floor1:14,13,\n12,1,2,background floor2 wall wallconnectorn wallconnectornw wallconnectorw:15,14,13,14,background floor2 wall wallconnectors wallconnectorsw wallconnectorw:16,4,5,14,13,background crateorange floor1:17,\nbackground crateorange floor2 inactivecrate:18,14,5,10,11,14,13,background crateorange floor1 inactivecrate:19,7,8,1,12,18,\n14,13,12,1,0,background floor2 wall wallconnectore wallconnectors wallconnectorse wallconnectorsw wallconnectorw:20,background floor1 wall wallconnectorn:21,13,background floor1 wall wallconnectors:22,background floor2 wall wallconnectore wallconnectorn wallconnectorne wallconnectornw wallconnectorw:23,0,1,12,\nbackground floor2 switchomni:24,background floor1 playerorange switchomni:25,24,12,1,0,5,background floor1 switchomni:26,background floor2 inactivecrate switchomni:27,26,5,0,1,\n12,24,background floor1 wall wallconnectore:28,24,12,1,0,16,background floor1 wall wallconnectorn wallconnectors:29,background floor2 wall wallconnectorn wallconnectornw wallconnectors wallconnectorsw wallconnectorw:30,29,15,0,\n", 16, "1627779079985.3457"] + ["title ParaLands\nauthor Lukas\nrun_rules_on_level_start\nagain_interval 0.05\nnorepeat_action\n\n========\nOBJECTS\n========\n\n\nBackground\ndarkgray\n\nFloor1\ndarkgray\n\nFloor2\n#444444\n\nWall\ngray #444444 #bbbbbb\n.222.\n20001\n20001\n20001\n.111.\n\nWallConnectorN\ngray #444444 #bbbbbb\n20001\n.....\n.....\n.....\n.....\n\nWallConnectorS\ngray #444444 #bbbbbb\n.....\n.....\n.....\n.....\n20001\n\nWallConnectorE\ngray #444444 #bbbbbb\n....2\n....0\n....0\n....0\n....1\n\nWallConnectorW\ngray #444444 #bbbbbb\n2....\n0....\n0....\n0....\n1....\n\nWallConnectorNE\ngray\n....0\n.....\n.....\n.....\n.....\n\nWallConnectorNW\ngray\n0....\n.....\n.....\n.....\n.....\n\nWallConnectorSE\ngray\n.....\n.....\n.....\n.....\n....0\n\nWallConnectorSW\ngray\n.....\n.....\n.....\n.....\n0....\n\nPit\nblack\n\nPlayerOrange\norange blue\n.000.\n.101.\n00000\n.000.\n.0.0.\n\nPlayerBlue\nblue orange\n.000.\n.101.\n00000\n.000.\n.0.0.\n\nPlayerTrans1\norange blue black\n.....\n.000.\n.101.\n22222\n.222.\n\nPlayerTrans2\nblack\n.....\n.....\n.000.\n00000\n.000.\n\nPlayerTrans3\nblue orange black\n.....\n.000.\n.101.\n22222\n.222.\n\nCrateOrange\norange #ffbb88 #bb6600\n11112\n10002\n10002\n10002\n22222\n\nCrateBlue\nblue #8888ff #0000bb\n11112\n10002\n10002\n10002\n22222\n\nCrateOmni\norange #ffbb88 #bb6600 blue #8888ff #0000bb\n11145\n10035\n10035\n10335\n22555\n\nBallOrange\norange #ffbb88 #bb6600\n.002.\n01002\n00002\n20002\n.222.\n\nBallBlue\nblue #8888ff #0000bb\n.002.\n01002\n00002\n20002\n.222.\n\nBallOmni\norange #ffbb88 #bb6600 blue #0000bb\n.004.\n01034\n00034\n20334\n.244.\n\nDoorOrange\norange #bb6600\n.000.\n00000\n10001\n11111\n.111.\n\nDoorOpenOrange\norange\n.....\n.....\n.000.\n00000\n.000.\n\nDoorBlue\nblue #0000bb\n.000.\n00000\n10001\n11111\n.111.\n\nDoorOpenBlue\nblue\n.....\n.....\n.000.\n00000\n.000.\n\nDoorOmni\norange #bb6600 blue #0000bb\n.002.\n00022\n10223\n11333\n.133.\n\nDoorOpenOmni\norange blue\n.....\n.....\n.001.\n00011\n.011.\n\nSwitchOrange\norange\n.....\n..0..\n.000.\n..0..\n.....\n\nSwitchBlue\nblue\n.....\n..0..\n.000.\n..0..\n.....\n\nSwitchOmni\norange blue\n.....\n..0..\n.001.\n..1..\n.....\n\nTrapdoorOrange\norange #ffbb88\n.000.\n01010\n00000\n01010\n.000.\n\nTrapdoorBlue\nblue #8888ff\n.000.\n01010\n00000\n01010\n.000.\n\nTrapdoorOmni\norange #ffbb88 blue #8888ff\n.002.\n01032\n00022\n01232\n.022.\n\nEnemyOrangeIdle\norange #ffbb88\n.....\n..0..\n.101.\n.0.0.\n.0.0.\n\nEnemyOrangeActive\norange #ffbb88\n.....\n.....\n..0..\n.101.\n.0.0.\n\nEnemyBlueIdle\nblue #8888ff\n.....\n..0..\n.101.\n.0.0.\n.0.0.\n\nEnemyBlueActive\nblue #8888ff\n.....\n.....\n..0..\n.101.\n.0.0.\n\nEnemyOmniIdle\norange #ffbb88 blue #8888ff\n.....\n..0..\n.123.\n.0.2.\n.0.2.\n\nEnemyOmniActive\norange #ffbb88 blue #8888ff\n.....\n.....\n..0..\n.123.\n.0.2.\n\nPlatformOrange\n#bb6600\n.....\n.000.\n.000.\n.000.\n.....\n\nPlatformBlue\n#0000bb\n.....\n.000.\n.000.\n.000.\n.....\n\nPlatformOmni\n#bb6600 #0000bb\n.....\n.001.\n.001.\n.011.\n.....\n\nGoalFr1\ngray lightgray\n.000.\n00111\n01001\n00011\n.111.\n\nGoalFr2\ngray lightgray\n.111.\n01011\n01001\n00101\n.000.\n\nGoalFr3\ngray lightgray \n.111.\n11000\n10010\n11100\n.000.\n\nGoalFr4\ngray lightgray\n.000.\n10100\n10010\n11010\n.111.\n\nBlood\nred\n\nInactiveCrate\nwhite\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\nInactiveBall\nwhite\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nInactivePlatform\nwhite\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nInactiveDoor\nwhite\n.0.0.\n0...0\n.0.0.\n.....\n.....\n\nInactiveDoorOpen\nwhite\n.....\n.....\n.0.0.\n0...0\n.0.0.\n\nInactiveSwitch\ntransparent\n\nInactiveTrapdoor\nwhite\n0...0\n.....\n.....\n.....\n0...0\n\nInactiveEnemy\nwhite\n.....\n..0..\n.0.0.\n.....\n.0.0.\n\nTempCrate\ntransparent\n\nTempBall\ntransparent\n\nTempPlatform\ntransparent\n\ntempDoor\ntransparent\n\ntempDoorOpen\ntransparent\n\ntempSwitch\ntransparent\n\nTempTrapdoor\ntransparent\n\nTempEnemy\ntransparent\n\nInit\ntransparent\n\nEnemyTurn\ntransparent\n\nBuffer\ntransparent\n\nAnimate\ntransparent\n\nPlayerShadow\ntransparent\n\nOrangeToBlue\ntransparent\n\nBlueToOrange\ntransparent\n\nJumpNow\ntransparent\n\nPlayerCrosshair\ntransparent\n\nTrapdoorTriggered\ntransparent\n\nInactiveTrapdoorTriggered\ntransparent\n\nTempTrapdoorTriggered\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n@ = PlayerOrange and Init\n! = GoalFr1\n1 = CrateOrange and InactiveCrate\na = CrateOmni\n2 = BallOrange and InactiveBall\nb = BallOmni\n3 = EnemyOrangeIdle and InactiveEnemy\nc = EnemyOmniIdle\n4 = DoorOrange and InactiveDoor\nd = DoorOmni\n5 = SwitchOrange and InactiveSwitch\ne = SwitchOmni\n6 = Pit and TrapdoorOrange and InactiveTrapdoor\nf = Pit and TrapdoorOmni\n* = Pit\n\n(main game objects)\nFloor = Floor1 or Floor2\nPlayer = PlayerOrange or PlayerBlue or PlayerTrans1 or PlayerTrans2 or PlayerTrans3\nGoal = GoalFr1 or GoalFr2 or GoalFr3 or GoalFr4\n\n(PU game objects)\nMonoCrate = CrateOrange or CrateBlue\nCrate = MonoCrate or CrateOmni\nMonoBall = BallOrange or BallBlue\nBall = MonoBall or BallOmni\nMonoPlatform = PlatformOrange or PlatformBlue\nPlatform = MonoPlatform or PlatformOmni\nMonoDoor = DoorOrange or DoorBlue\nDoor = DoorOmni or MonoDoor\nMonoDoorOpen = DoorOpenOrange or DoorOpenBlue\nDoorOpen = DoorOpenOmni or MonoDoorOpen\nMonoSwitch = SwitchOrange or SwitchBlue\nSwitch = SwitchOmni or MonoSwitch\nMonoTrapdoor = TrapdoorOrange or TrapdoorBlue\nTrapdoor = MonoTrapdoor or TrapdoorOmni\n\nPushable = Ball or Crate\nInactivePushable = InactiveBall or InactiveCrate\nPushableOmni = BallOmni or CrateOmni\n\nEnemyOrange = EnemyOrangeIdle or EnemyOrangeActive\nEnemyBlue = EnemyBlueIdle or EnemyBlueActive\nEnemyOmni = EnemyOmniIdle or EnemyOmniActive\nMonoEnemy = EnemyOrange or EnemyBlue\nEnemy = MonoEnemy or EnemyOmni\nMonoEnemyActive = EnemyBlueActive or EnemyOrangeActive\nEnemyActive = MonoEnemyActive or EnemyOmniActive\n\n(general obstacles)\nObstacle = Wall or Player or Crate or Ball or Enemy or Door\n\n(inactive obstacles)\nInactiveObstacle = InactiveCrate or InactiveBall or InactiveEnemy or InactiveDoor\n\n(obstacles for inactive objects)\nObstacleForInactive = InactiveObstacle or Wall or CrateOmni or BallOmni or EnemyOmni\n\n(obstacles for active enemy)\nObstacleForMonoEnemy = Wall or Enemy or Door\n\n(obstacles for omni enemy)\nObstacleForOmniEnemy = ObstacleForMonoEnemy or InactiveEnemy or InactiveDoor\n\n(Have 4 different Pitfillers, so the correct platform is built)\nPitFillerOrange = CrateOrange or BallOrange\nPitFillerBlue = CrateBlue or BallBlue\nPitFillerOmni = CrateOmni or BallOmni\nPitFillerInactive = InactiveCrate or InactiveBall\n\n(Fillings)\nFilling = Platform or Trapdoor\nInactiveFilling = InactivePlatform or InactiveTrapdoor or PlatformOmni or TrapdoorOmni\n\n(Weights for doors)\nWeight = Player or Crate or Ball or Enemy\nInactiveWeight = InactiveCrate or InactiveBall or InactiveEnemy or CrateOmni or BallOmni or EnemyOmni\n\n(Trapdoor triggers)\nTrigger = Player or Enemy\nInactiveTrigger = InactiveEnemy or EnemyOmni\nOmniTrigger = Trigger or InactiveTrigger\n\n(Temporary objects, eg buffers, flags, ...)\nTempAnimTurn = Init or Buffer or EnemyTurn or Animate or PlayerCrosshair\nTempInputTurn = PlayerShadow\n\n=======\nSOUNDS\n=======\n\nsfx1 27102304\nsfx2 11336309\nPushable move 69429507\nsfx3 47602107\nsfx4 91878702\nTrapdoor Destroy 77067304\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFloor1, Floor2\nGoal, Pit, Switch, DoorOpen\nPlatform, Trapdoor\nInactivePlatform, InactiveTrapdoor\nTempPlatform, TempTrapdoor\nInactiveTrapdoorTriggered\nTempTrapdoorTriggered\nTrapdoorTriggered\nPlayer, Wall, Crate, Ball, Enemy, Door\nInactiveSwitch, InactiveDoorOpen\nTempSwitch, TempDoorOpen\nInactiveCrate, InactiveBall, InactiveEnemy, InactiveDoor\nTempCrate, TempBall, TempEnemy, TempDoor\n\n(Some flags. Just to be sure, might as well use a seperate layer for each)\nAnimate\nBuffer\nInit\nEnemyTurn\nPlayerShadow\nOrangeToBlue, BlueToOrange\nJumpNow\nPlayerCrosshair\n\n(wall connector sprites. Unfortunately, each one needs its own layer)\nWallConnectorN\nWallConnectorE\nWallConnectorS\nWallConnectorW\nWallConnectorNE\nWallConnectorNW\nWallConnectorSE\nWallConnectorSW\n\n(DEATH)\nBlood\n\n======\nRULES \n======\n\n(INIT TURN)\n(Rules in this section are only run once on level start)\n\n(init floor)\n[Init][Player] -> [Init][Player Floor1]\n[Floor1|no Floor] -> [Floor1|Floor2]\n+[Floor2|no Floor] -> [Floor2|Floor1]\n\n(init walls)\nright [Init][Wall|Wall] -> [Init][Wall WallConnectorE|Wall WallConnectorW]\ndown [Init][Wall|Wall] -> [Init][Wall WallConnectorS|Wall WallConnectorN]\n[Init][WallConnectorN WallConnectorE] -> [Init][WallConnectorN WallConnectorE WallConnectorNE]\n[Init][WallConnectorN WallConnectorW] -> [Init][WallConnectorN WallConnectorW WallConnectorNW]\n[Init][WallConnectorS WallConnectorE] -> [Init][WallConnectorS WallConnectorE WallConnectorSE]\n[Init][WallConnectorS WallConnectorW] -> [Init][WallConnectorS WallConnectorW WallConnectorSW]\n\n\n(UNIVERSE HOPPING)\n\n[PlayerTrans3 OrangeToBlue] -> [PlayerBlue]\n[PlayerTrans2 OrangeToBlue JumpNow] -> [PlayerTrans3 OrangeToBlue Animate] again\n[PlayerTrans2 OrangeToBlue no JumpNow] -> [PlayerTrans2 OrangeToBlue JumpNow Animate] again\n[PlayerTrans1 OrangeToBlue] -> [PlayerTrans2 OrangeToBlue Animate] again\n[action PlayerOrange no InactiveObstacle no Pit] -> [PlayerTrans1 OrangeToBlue Animate] again sfx2\n\n[PlayerTrans1 BlueToOrange] -> [PlayerOrange]\n[PlayerTrans2 BlueToOrange JumpNow] -> [PlayerTrans1 BlueToOrange Animate] again\n[PlayerTrans2 BlueToOrange no JumpNow] -> [PlayerTrans2 BlueToOrange JumpNow Animate] again\n[PlayerTrans3 BlueToOrange] -> [PlayerTrans2 BlueToOrange Animate] again\n[action PlayerBlue no InactiveObstacle no Pit] -> [PlayerTrans3 BlueToOrange Animate] again sfx2\n\n[action Player] -> sfx1\n\n\n(PARALLEL UNIVERSE OBJECTS)\n(lots of very similiar code, but no way to avoid that I guess)\n\n(buffer inactive objects)\n[JumpNow][InactiveCrate] -> [JumpNow][TempCrate]\n[JumpNow][InactiveBall] -> [JumpNow][TempBall]\n[JumpNow][InactivePlatform] -> [JumpNow][TempPlatform]\n[JumpNow][InactiveDoor] -> [JumpNow][TempDoor]\n[JumpNow][InactiveDoorOpen] -> [JumpNow][TempDoorOpen]\n[JumpNow][InactiveSwitch] -> [JumpNow][TempSwitch]\n[JumpNow][InactiveTrapdoor] -> [JumpNow][TempTrapdoor]\n[JumpNow][InactiveTrapdoorTriggered] -> [JumpNow][TempTrapdoorTriggered]\n[JumpNow][InactiveEnemy] -> [JumpNow][TempEnemy]\n\n(toggle active objects)\n[JumpNow][MonoCrate] -> [JumpNow][InactiveCrate]\n[JumpNow][MonoBall] -> [JumpNow][InactiveBall]\n[JumpNow][MonoPlatform] -> [JumpNow][InactivePlatform]\n[JumpNow][MonoDoor] -> [JumpNow][InactiveDoor]\n[JumpNow][MonoDoorOpen] -> [JumpNow][InactiveDoorOpen]\n[JumpNow][MonoSwitch] -> [JumpNow][InactiveSwitch]\n[JumpNow][MonoTrapdoor] -> [JumpNow][InactiveTrapdoor]\n[JumpNow][TrapdoorTriggered] -> [JumpNow][InactiveTrapdoorTriggered]\n[JumpNow][MonoEnemy] -> [JumpNow][InactiveEnemy]\n\n(\"load\" inactive objects)\n[TempCrate][OrangeToBlue] -> [CrateBlue][OrangeToBlue]\n[TempCrate][BlueToOrange] -> [CrateOrange][BlueToOrange]\n\n[TempBall][OrangeToBlue] -> [BallBlue][OrangeToBlue]\n[TempBall][BlueToOrange] -> [BallOrange][BlueToOrange]\n\n[TempPlatform][OrangeToBlue] -> [PlatformBlue][OrangeToBlue]\n[TempPlatform][BlueToOrange] -> [PlatformOrange][BlueToOrange]\n\n[TempDoor][OrangeToBlue] -> [DoorBlue][OrangeToBlue]\n[TempDoor][BlueToOrange] -> [DoorOrange][BlueToOrange]\n\n[TempDoorOpen][OrangeToBlue] -> [DoorOpenBlue][OrangeToBlue]\n[TempDoorOpen][BlueToOrange] -> [DoorOpenOrange][BlueToOrange]\n\n[TempSwitch][OrangeToBlue] -> [SwitchBlue][OrangeToBlue]\n[TempSwitch][BlueToOrange] -> [SwitchOrange][BlueToOrange]\n\n[TempTrapdoor][OrangeToBlue] -> [TrapdoorBlue][OrangeToBlue]\n[TempTrapdoor][BlueToOrange] -> [TrapdoorOrange][BlueToOrange]\n\n[TempTrapdoorTriggered] -> [TrapdoorTriggered]\n\n[TempEnemy][OrangeToBlue] -> [EnemyBlueIdle][OrangeToBlue]\n[TempEnemy][BlueToOrange] -> [EnemyOrangeIdle][BlueToOrange]\n\n\n(ENEMY TURN - Kinda nasty)\n\n(Vertical preference, of course - DROD rules!)\nvertical [stationary EnemyActive|...|Player] -> [> EnemyActive|...|Player]\nvertical [stationary EnemyActive|...|PlayerCrosshair] -> [> EnemyActive|...|PlayerCrosshair]\n\n(Do some basic checks if the move is possible)\n[> EnemyActive|ObstacleForMonoEnemy] -> [EnemyActive|ObstacleForMonoEnemy]\n[> EnemyActive|Pushable|Obstacle] -> [EnemyActive|Pushable|Obstacle]\n[> EnemyActive|Pit no Filling] -> [EnemyActive|Pit]\n\n(of course, an omni pushable can't be pushed if the inactive universe blocks it)\n[> EnemyActive|PushableOmni|ObstacleForInactive] -> [EnemyActive|PushableOmni|ObstacleForInactive]\n\n(Special attention to an omni enemy)\n[> EnemyOmniActive|ObstacleForOmniEnemy] -> [EnemyOmniActive|ObstacleForOmniEnemy]\n[> EnemyOmniActive|InactivePushable|ObstacleForInactive] -> [EnemyOmniActive|InactivePushable|ObstacleForInactive]\n[> EnemyOmniActive|Pit no InactiveFilling] -> [EnemyOmniActive|Pit]\n\n(Don't think this is possible without some code duplication)\nhorizontal [stationary EnemyActive|...|Player] -> [> EnemyActive|...|Player]\nhorizontal [stationary EnemyActive|...|PlayerCrosshair] -> [> EnemyActive|...|PlayerCrosshair]\n\n[> EnemyActive|ObstacleForMonoEnemy] -> [EnemyActive|ObstacleForMonoEnemy]\n[> EnemyActive|Pushable|Obstacle] -> [EnemyActive|Pushable|Obstacle]\n[> EnemyActive|Pit no Filling] -> [EnemyActive|Pit]\n\n[> EnemyActive|PushableOmni|ObstacleForInactive] -> [EnemyActive|PushableOmni|ObstacleForInactive]\n\n[> EnemyOmniActive|ObstacleForOmniEnemy] -> [EnemyOmniActive|ObstacleForOmniEnemy]\n[> EnemyOmniActive|InactivePushable|ObstacleForInactive] -> [EnemyOmniActive|InactivePushable|ObstacleForInactive]\n[> EnemyOmniActive|Pit no InactiveFilling] -> [EnemyOmniActive|Pit]\n\n(Move balls - special attention to \"double balls\")\n(do this check first so you might save the player from an unfair death)\n[> EnemyOmniActive|Ball InactiveBall] -> [EnemyOmniActive|> Ball > InactiveBall]\n[> EnemyActive|Ball] -> [EnemyActive|> Ball]\n[> EnemyOmniActive|InactiveBall] -> [EnemyOmniActive|> InactiveBall]\n\n(if able to move into the player, do so)\n[> EnemyActive|Player] -> [|Blood] sfx4\n\n(Move crates)\n[> EnemyActive|Crate] -> [> EnemyActive|> Crate]\n[> EnemyOmniActive|InactiveCrate] -> [> EnemyOmniActive|> InactiveCrate]\n\n\n(ANIMATION TURN)\n\n(Goal animation)\n[Animate][GoalFr4] -> [Animate][GoalFr1 Buffer]\n[Animate][GoalFr3] -> [Animate][GoalFr4]\n[Animate][GoalFr2] -> [Animate][GoalFr3]\n[Animate][GoalFr1 no Buffer] -> [Animate][GoalFr2]\n\n(Turn active monsters back into idle ones)\n[EnemyOrangeActive] -> [EnemyOrangeIdle]\n[EnemyBlueActive] -> [EnemyBlueIdle]\n[EnemyOmniActive] -> [EnemyOmniIdle]\n\n(Death animation)\n[Blood Buffer|] -> [Blood Buffer|Blood]\n\n(kill all temporary objects used by the Anim Turn)\n[TempAnimTurn] -> []\n\n(mark blood tiles)\n[Blood] -> [Blood Buffer] again\n\n\n(PLAYER TURN)\n\n(init player Shadow)\n[Player] -> [Player PlayerShadow]\n\n(don't move into pits)\n[> Player|Pit no Filling] -> [Player|Pit]\n\n(push stuff)\n[> Player|Crate] -> [> Player|> Crate]\n[> CrateOmni|InactiveObstacle] -> [CrateOmni|InactiveObstacle]\n\n[> Player|MonoBall|no Obstacle] -> [Player Animate EnemyTurn|> MonoBall|] again\n[> Player|BallOmni|no Obstacle no InactiveObstacle] -> [Player Animate EnemyTurn|> BallOmni|] again\n\n(move balls)\n[> BallOmni|InactiveObstacle] -> [BallOmni|InactiveObstacle]\n+[> Ball|no Obstacle] -> [|> Ball] sfx3\n+[> MonoBall Pit no Filling] -> [MonoBall Pit]\n+[> BallOmni Pit no Filling no InactiveFilling] -> [BallOmni Pit]\n\n(inactive ones, too)\n[> InactiveBall|ObstacleForInactive] -> [InactiveBall|ObstacleForInactive]\n+[> InactiveBall|no ObstacleForInactive] -> [|> InactiveBall]\n+[> InactiveBall Pit no InactiveFilling] -> [InactiveBall Pit]\n\n(LATE TURN)\n\n(is a trapdoor triggered?)\nlate [MonoTrapdoor Trigger] -> [MonoTrapdoor Trigger TrapdoorTriggered]\nlate [InactiveTrapdoor InactiveTrigger] -> [InactiveTrapdoor InactiveTrigger InactiveTrapdoorTriggered]\nlate [TrapdoorOmni OmniTrigger] -> [TrapdoorOmni OmniTrigger TrapdoorTriggered]\n\n(make triggered trapdoors fall if there's no more weight on top of them)\nlate [MonoTrapdoor TrapdoorTriggered no Weight] -> []\nlate [InactiveTrapdoor InactiveTrapdoorTriggered no InactiveWeight] -> []\nlate [TrapdoorOmni TrapdoorTriggered no Weight no InactiveWeight] -> []\n\n(if something is on top of a pit that can fill it, build a platform)\nlate [Pit no Filling PitFillerOrange] -> [Pit PlatformOrange]\nlate [Pit no Filling PitFillerBlue] -> [Pit PlatformBlue]\nlate [Pit no Filling no InactiveFilling PitFillerOmni] -> [Pit PlatformOmni]\nlate [Pit no InactiveFilling PitFillerInactive] -> [Pit InactivePlatform]\n\n(check door states)\n(start by pretending the doors ar open)\nlate [DoorOrange] -> [DoorOpenOrange]\nlate [DoorBlue] -> [DoorOpenBlue]\nlate [DoorOmni] -> [DoorOpenOmni]\nlate [InactiveDoor] -> [InactiveDoorOpen]\n\n(if there's nothing on top of the door and there's a switch without a weight, close the door)\n(again, this requires a lot of similiar code, but I don't know how to improve that)\nlate [DoorOpenOrange no Obstacle][MonoSwitch no Weight] -> [DoorOrange][MonoSwitch]\nlate [DoorOpenBlue no Obstacle][MonoSwitch no Weight] -> [DoorBlue][MonoSwitch]\nlate [DoorOpenOmni no Obstacle][MonoSwitch no Weight] -> [DoorOmni][MonoSwitch]\nlate [InactiveDoorOpen no ObstacleForInactive][InactiveSwitch no InactiveWeight] -> [InactiveDoor][InactiveSwitch]\n\n(an omni door additionaly needs inactive switches to be held down)\nlate [DoorOpenOmni no Obstacle][InactiveSwitch no InactiveWeight] -> [DoorOmni][InactiveSwitch]\n\n(note that omni switches can be held down in either dimension)\nlate [DoorOpenOrange no Obstacle][SwitchOmni no Weight no InactiveWeight] -> [DoorOrange][SwitchOmni]\nlate [DoorOpenBlue no Obstacle][SwitchOmni no Weight no InactiveWeight] -> [DoorBlue][SwitchOmni]\nlate [DoorOpenOmni no Obstacle][SwitchOmni no Weight no InactiveWeight] -> [DoorOmni][SwitchOmni]\nlate [InactiveDoorOpen no ObstacleForInactive][SwitchOmni no Weight no InactiveWeight] -> [InactiveDoor][SwitchOmni]\n\n(if the player has actually moved, it's the game's turn)\nlate [Player no PlayerShadow] -> [Player Animate EnemyTurn] again\n\n(is an enemy turn coming up? Turn idle monsters into active ones)\nlate [EnemyTurn][EnemyOrangeIdle] -> [EnemyTurn][EnemyOrangeActive]\nlate [EnemyTurn][EnemyBlueIdle] -> [EnemyTurn][EnemyBlueActive]\nlate [EnemyTurn][EnemyOmniIdle] -> [EnemyTurn][EnemyOmniActive]\n\n(also do that crosshair thing)\nlate [EnemyTurn][Player|...|] -> [EnemyTurn][Player|...|PlayerCrosshair]\n\n(kill all temporary objects used by the Player Turn)\nlate [TempInputTurn] -> []\n\n\n==============\nWINCONDITIONS\n==============\n\nsome Player on Goal\n\n======= \nLEVELS\n=======\n\n\nmessage Have you ever wondered ...\nmessage ... if you weren't there ...\nmessage ... would the universe really care?\n\n\nmessage I - Nothing New Under the Sun\n\n#####****###\n#@..#*####c#\n#.a.###d##.#\n#.####d!d#.#\n#*#..##d##.#\n#.#.b#.e.#.#\n#.f..#.e.#.#\n####.#...#.#\n**#..##f##.#\n###..*..##.#\n#.a..#..##.#\n#....#####.#\n######***###\n\n\nmessage II - Universe Hopper\n\n########*\n#..1.1.##\n#..1.1.!#\n#..1.1.##\n#.#######\n#.#*****#\n#.#*1*1*#\n#.#**1**#\n#.#*1*1*#\n#.#*****#\n#.#######\n#*.@.1..#\n#########\n\n\nmessage III - The Best of Both Worlds\n\n****#########****\n#####.......#****\n#...#.#.#.#.#####\n#.1.........*.*!#\n#####.#.#.#.#####\n#.b............@#\n#...#.#.#.#.#####\n#####.......#****\n****#########****\n\n\nmessage IV - Two Times Two\n\n*##########\n##...*#.*!#\n#.11....#*#\n##..#*#.#.#\n*#.##.*...#\n*########@#\n********###\n\nmessage V - Dimensional Prelude\n\n*####****\n*#d!#****\n##*###***\n#*.*.#***\n#@.#*###*\n#....4.##\n#.1#5#a.#\n#.1.....#\n#..######\n####*****\n\n\nmessage VI - Dimensional Gateways\n\n******#####******\n******#...#******\n#######.5.#######\n#...#...@...#...#\n#!.*d.1.e.a.4.1.#\n#...#.......#...#\n#######.5.#######\n******#...#******\n******#####******\n\n\nmessage VII - Two Times Four\n\n****###******\n**###.#######\n###..1..#eee#\n#!d@1.1..ee##\n###..1..#eee#\n**###.#######\n****###******\n\n\nmessage VIII - Game of Marbles\n\n#########**\n#.......#**\n#.2...2.#**\n#.@.....###\n#...5...d!#\n#.b.....###\n#.2...2.#**\n#.......#**\n#########**\n\n\nmessage IX - Fixing a Hole\n\n#######*********\n#..**!#*********\n#..####*********\n##6##########***\n##..........###*\n*#.##d##d##d#.##\n*#.##.##.##....#\n*#@..6..6...2.##\n*#.##.##.##...#*\n*#d##d##d##...#*\n*#............#*\n*####.1.b.....##\n*#**5..........#\n*###############\n\n\nmessage X - Half Time\n\n*****###*******\n*#####*#*******\n*#!..#*###*****\n*#.#d#.a.#*****\n*#.d5...5#*****\n####.....#####*\n#**...5..6...#*\n###a.....#...#*\n**#.5...5#...#*\n**####6###...#*\n*****#....2.2##\n*****#.....2..#\n*****#....2.b.#\n*****######..@#\n**********#####\n\n\nmessage XI - Nemesis\n\n#########******\n#.......#******\n#.#####.#***###\n#.#c#@#.#***#c#\n#.#a#.#.#####d#\n#.#*....b..f.e#\n#.#######b###.#\n###*#..3#f#*#.#\n****#.###.###.#\n****#....*...*#\n****#########d#\n************#!#\n************###\n\n\nmessage XII - Every Breath You Take\n\n****######***\n****#....#***\n****#.##.#***\n****#....#***\n****##c######\n****#*@*****#\n****#*.....*#\n****#*.b...*#\n****#*.....*#\n****#*...b.*#\n****#*.....*#\n****#*****.*#\n##########.##\n#!*b*b*b....#\n########.##.#\n*******#....#\n*******######\n\n\nmessage XIII - Stalking Across Universes\n\n**#########***\n**#.......#***\n**#.#...#.#***\n###.......####\n#c@...1...b*!#\n###.......####\n**#.#...#.#***\n**#.......#***\n**#########***\n\n\nmessage XIV - A Little Help From My Friends\n\n********######\n#########....#\n#.........##3#\n#.#####.b.####\n#.#.####..#***\n#.#..*!#.##***\n#.##.###..#***\n#..#......#***\n##.#.######***\n*#@#.#********\n*#####********\n\n\nmessage XV - Hope Spot\n\n***#####*###\n***#...#*#!#\n***#.1.#*#*#\n####.#####.#\n#.c#.e.2d..#\n#.##.#.###.#\n#.#@...#*#.#\n#.##.#.###.#\n#....#.....#\n############\n\n\nmessage XVI - Hope for the Hopeless\n\n***######*****\n***#*##*#####*\n***#....#*#*##\n***#.**.....*#\n***#.**.*.*.##\n####....*...##\n#!*b.e1..4.@c#\n####....*...##\n***#.**.*.*.##\n***#.**.....*#\n***#....#*#*##\n***#*##*#####*\n***######*****\n\n\nmessage XVII - Blockade\n\n**###\n**#!#\n###*#\n#.#.#\n#.b.#\n#.b.#\n#3#@#\n#####\n\n\n\nmessage XVIII - Pas de Trois\n\n###########\n#.........#\n#.........#\n#....3....#\n#.........#\n#..e...e..#\n#.........#\n#.........#\n#####@#####\n****#d#****\n****#!#****\n****###****\n\n\nmessage XIX - Orange Blues\n\n********###**\n********#!###\n#########6.3#\n#...c...d.###\n#.......#f#**\n#..#.#..#.#**\n#..#5#..###**\n#..###..#****\n#.......#****\n#.1...1.#****\n#.##@##.#****\n#.......#****\n#########****\n\n\nmessage XX - The Last Waltz\n\n**********###****\n**#########3#****\n**#c.##...#d#****\n**##.##.#2#.#****\n**#..#......#****\n###.##.#..#.#****\n#...*.......#****\n#.#a##......#****\n#.#6##.#..1.#****\n#.#6#.......#****\n#...#e#b##b####**\n###f#f#d##d##.#**\n**#@#e.*..*.#.###\n**#########..bb.#\n**********#!#.#f#\n**********###..3#\n************#####\n\n\nmessage Congratulations! Thanks for playing, hope you enjoyed.\n\nmessage Encore\nmessage [Might be a bit too much trial-and-error for an \"official\" level]\n\n###*###**********\n#c#*#e#*########*\n#d###a#*#......#*\n#...#@###....#.#*\n#.#b#........d3#*\n###.#.###..a.####\n###.#.#*#....dbc#\n#!.*f*###....####\n###f#..##....#***\n**#.##f#######***\n**####.#*********\n***#cd.#*********\n***#####*********\n",[3,0,3,3,2,3,3,3,1,1,1,0,1,2,1,2,1,1,4,3,0,3,3,2,3,3,3,1,1,1,1,0,1,1,2,3,3,3,3,3,3,4],"background floor1 pit:0,background floor2 pit:1,background floor1 wall wallconnectore wallconnectors wallconnectorse:2,background floor2 wall wallconnectorn wallconnectors:3,background floor1 wall wallconnectore wallconnectorn wallconnectorne:4,1,0,1,0,background floor2 wall wallconnectore wallconnectorw:5,background floor1 goalfr3:6,5,0,\n1,0,background floor2 wall wallconnectore wallconnectors wallconnectorse:7,background floor1 wall wallconnectorn wallconnectornw wallconnectorw:8,background dooromni floor2:9,background floor1 wall wallconnectors wallconnectorsw wallconnectorw:10,background floor2 wall wallconnectore wallconnectorn wallconnectorne:11,0,1,background floor1 wall wallconnectore wallconnectorw:12,background floor2:13,background floor1:14,13,\n12,1,2,background floor2 wall wallconnectorn wallconnectornw wallconnectorw:15,14,13,14,background floor2 wall wallconnectors wallconnectorsw wallconnectorw:16,4,5,14,13,background crateorange floor1:17,\nbackground crateorange floor2 inactivecrate:18,14,5,10,11,14,13,background crateorange floor1 inactivecrate:19,7,8,1,12,18,\n14,13,12,1,0,background floor2 wall wallconnectore wallconnectors wallconnectorse wallconnectorsw wallconnectorw:20,background floor1 wall wallconnectorn:21,13,background floor1 wall wallconnectors:22,background floor2 wall wallconnectore wallconnectorn wallconnectorne wallconnectornw wallconnectorw:23,0,1,12,\nbackground floor2 switchomni:24,background floor1 playerorange switchomni:25,24,12,1,0,5,background floor1 switchomni:26,background floor2 inactivecrate switchomni:27,26,5,0,1,\n12,24,background floor1 wall wallconnectore:28,24,12,1,0,16,background floor1 wall wallconnectorn wallconnectors:29,background floor2 wall wallconnectorn wallconnectornw wallconnectors wallconnectorsw wallconnectorw:30,29,15,0,\n",16,"1627779079985.3457"] ], [ `gallery: Some lines were meant to be crossed`, - ["title Some lines were meant to be crossed\nauthor Frpzzd\nagain_interval 0.08\nrealtime_interval 0.06\nkey_repeat_interval 0.12\nrequire_player_movement off\nbackground_color darkblue\ntext_color red\n\n========\nOBJECTS\n========\n\nBackground .\nDarkblue\n\nPlayer\nDarkred\n\nTail\nDarkred\n.....\n.....\n..0..\n.....\n.....\n\nPathvert |\nBlue\n.000.\n.000.\n.000.\n.000.\n.000.\n\nPathhoriz -\nBlue\n.....\n00000\n00000\n00000\n.....\n\nWallvert\nRed\n.000.\n.000.\n.000.\n.000.\n.000.\n\nWallhoriz\nred\n.....\n00000\n00000\n00000\n.....\n\nStart\nlightblue\n\n=======\nLEGEND\n=======\n\n@ = player and start\n+ = pathvert and pathhoriz\n\nPath = pathvert or pathhoriz\nWall = wallvert or wallhoriz\n\n=========\nSOUNDS\n=========\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ntail\nstart\npathvert, wallvert\npathhoriz, wallhoriz\nPlayer\n\n======\nRULES\n======\n\n[> player|wall]->cancel\n[> player|tail]->cancel\n[player pathvert]->[player wallvert]\n[player pathhoriz]->[player wallhoriz]\nLATE VERTICAL[ wallvert|pathvert]->[wallvert|wallvert]again\nLATE HORIZONTAL[ wallhoriz|pathhoriz]->[wallhoriz|wallhoriz]again\n\nLATE[player no start]->[player tail]\n\n==============\nWINCONDITIONS\n==============\n\nno path\nall player on start\n\n=======\nLEVELS\n=======\n\nmessage Cross all of the lines, then come back to where you began.\n\n.......\n.+---+.\n.|...|.\n.|.@.|.\n.|...|.\n.+---+.\n.......\n\n...............\n.+---+---+---+.\n.|...|...|...|.\n.|.@.|...|...|.\n.|...|...|...|.\n.+---+---+---+.\n...............\n\n...............\n.+---+---+---+.\n.|...|...|...|.\n.|.@.+---+...|.\n.|...|...|...|.\n.+---+---+---+.\n...............\n\n...........\n...+---+...\n...|...|...\n...|...|...\n...|...|...\n.+-+-+-+-+.\n.|...|...|.\n.|.@.|...|.\n.|...|...|.\n.+---+---+.\n...........\n\n...........\n...+---+...\n...|...|...\n...|.@.|...\n...|...|...\n.+-+-+-+-+.\n.|...|...|.\n.|...|...|.\n.|...|...|.\n.+---+---+.\n...........\n\n...........\n.....+---+.\n.....|...|.\n.....|.@.|.\n.....|...|.\n.+---+---+.\n.|...|.....\n.|...|.....\n.|...|.....\n.+---+.....\n...........\n\n...............\n.+---+...+---+.\n.|...|...|...|.\n.|...+---+...|.\n.|...|...|...|.\n.+-+-+...+-+-+.\n...|.......|...\n...|...@...|...\n...|.......|...\n.+-+-+...+-+-+.\n.|...|...|...|.\n.|...+---+...|.\n.|...|...|...|.\n.+---+...+---+.\n...............\n\n\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", 2, "tick", "tick", 3, "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", 3, "tick", "tick", 3, "tick", "tick", "tick", "tick", 2, "tick", "tick", 1, "tick", "tick", 0, "tick", "tick", "tick", "tick", 2, "tick", "tick", 2, "tick", 2, "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", 3, "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", 0, "tick", "tick", "tick", "tick", 0, "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", 1, "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background:0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background pathvert wallhoriz:1,background pathvert:2,2,2,1,0,\n0,0,0,background tail:3,3,background tail wallhoriz:4,3,0,0,background wallhoriz:5,0,\n0,background wallhoriz wallvert:6,background wallvert:7,background tail wallvert:8,7,6,3,0,0,5,0,\n0,5,0,3,0,5,3,0,0,5,0,\n0,5,0,background start:9,0,6,8,7,7,6,0,\nbackground player tail:10,4,3,3,3,5,3,3,0,5,0,\n0,6,7,7,8,6,0,3,3,4,3,\n0,0,0,0,3,5,0,3,3,5,3,\n0,0,0,0,3,1,2,2,2,1,3,\n0,0,0,0,3,3,3,3,3,3,3,\n", 5, "1627779102633.4878"] + ["title Some lines were meant to be crossed\nauthor Frpzzd\nagain_interval 0.08\nrealtime_interval 0.06\nkey_repeat_interval 0.12\nrequire_player_movement off\nbackground_color darkblue\ntext_color red\n\n========\nOBJECTS\n========\n\nBackground .\nDarkblue\n\nPlayer\nDarkred\n\nTail\nDarkred\n.....\n.....\n..0..\n.....\n.....\n\nPathvert |\nBlue\n.000.\n.000.\n.000.\n.000.\n.000.\n\nPathhoriz -\nBlue\n.....\n00000\n00000\n00000\n.....\n\nWallvert\nRed\n.000.\n.000.\n.000.\n.000.\n.000.\n\nWallhoriz\nred\n.....\n00000\n00000\n00000\n.....\n\nStart\nlightblue\n\n=======\nLEGEND\n=======\n\n@ = player and start\n+ = pathvert and pathhoriz\n\nPath = pathvert or pathhoriz\nWall = wallvert or wallhoriz\n\n=========\nSOUNDS\n=========\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ntail\nstart\npathvert, wallvert\npathhoriz, wallhoriz\nPlayer\n\n======\nRULES\n======\n\n[> player|wall]->cancel\n[> player|tail]->cancel\n[player pathvert]->[player wallvert]\n[player pathhoriz]->[player wallhoriz]\nLATE VERTICAL[ wallvert|pathvert]->[wallvert|wallvert]again\nLATE HORIZONTAL[ wallhoriz|pathhoriz]->[wallhoriz|wallhoriz]again\n\nLATE[player no start]->[player tail]\n\n==============\nWINCONDITIONS\n==============\n\nno path\nall player on start\n\n=======\nLEVELS\n=======\n\nmessage Cross all of the lines, then come back to where you began.\n\n.......\n.+---+.\n.|...|.\n.|.@.|.\n.|...|.\n.+---+.\n.......\n\n...............\n.+---+---+---+.\n.|...|...|...|.\n.|.@.|...|...|.\n.|...|...|...|.\n.+---+---+---+.\n...............\n\n...............\n.+---+---+---+.\n.|...|...|...|.\n.|.@.+---+...|.\n.|...|...|...|.\n.+---+---+---+.\n...............\n\n...........\n...+---+...\n...|...|...\n...|...|...\n...|...|...\n.+-+-+-+-+.\n.|...|...|.\n.|.@.|...|.\n.|...|...|.\n.+---+---+.\n...........\n\n...........\n...+---+...\n...|...|...\n...|.@.|...\n...|...|...\n.+-+-+-+-+.\n.|...|...|.\n.|...|...|.\n.|...|...|.\n.+---+---+.\n...........\n\n...........\n.....+---+.\n.....|...|.\n.....|.@.|.\n.....|...|.\n.+---+---+.\n.|...|.....\n.|...|.....\n.|...|.....\n.+---+.....\n...........\n\n...............\n.+---+...+---+.\n.|...|...|...|.\n.|...+---+...|.\n.|...|...|...|.\n.+-+-+...+-+-+.\n...|.......|...\n...|...@...|...\n...|.......|...\n.+-+-+...+-+-+.\n.|...|...|...|.\n.|...+---+...|.\n.|...|...|...|.\n.+---+...+---+.\n...............\n\n\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",1,"tick","tick","tick",1,"tick","tick",2,"tick","tick","tick",2,"tick",2,"tick","tick",3,"tick","tick",2,"tick","tick","tick","tick","tick","tick",1,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick",3,"tick","tick","tick",3,"tick","tick",3,"tick","tick","tick",3,"tick","tick","tick","tick","tick",2,"tick","tick",3,"tick","tick",3,"tick","tick","tick","tick",2,"tick","tick",1,"tick","tick",0,"tick","tick","tick","tick",2,"tick","tick",2,"tick",2,"tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",3,"tick",3,"tick",0,"tick","tick","tick",0,"tick","tick",0,"tick","tick","tick",0,"tick","tick",0,"tick","tick","tick","tick",0,"tick","tick",1,"tick","tick","tick",1,"tick","tick","tick",1,"tick","tick",0,"tick","tick","tick",0,"tick","tick","tick",1,"tick",0,"tick","tick","tick",0,"tick","tick","tick",0,"tick",0,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background:0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background pathvert wallhoriz:1,background pathvert:2,2,2,1,0,\n0,0,0,background tail:3,3,background tail wallhoriz:4,3,0,0,background wallhoriz:5,0,\n0,background wallhoriz wallvert:6,background wallvert:7,background tail wallvert:8,7,6,3,0,0,5,0,\n0,5,0,3,0,5,3,0,0,5,0,\n0,5,0,background start:9,0,6,8,7,7,6,0,\nbackground player tail:10,4,3,3,3,5,3,3,0,5,0,\n0,6,7,7,8,6,0,3,3,4,3,\n0,0,0,0,3,5,0,3,3,5,3,\n0,0,0,0,3,1,2,2,2,1,3,\n0,0,0,0,3,3,3,3,3,3,3,\n",5,"1627779102633.4878"] ], [ `gallery: Stand Off`, - ["title Stand Off\nauthor Mark Richardson\nagain_interval 0.05\nnorepeat_action\n(verbose_logging)\n\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nWall\n#555 #444\n01110\n10001\n10001\n10001\n01110\n\nWindow\n#555 #444 #cff\n01110\n12221\n12221\n12221\n01110\n\nBrokenWindow\n#555 #444 #cff #9bb #000\n01110\n12321\n13431\n12321\n01110\n\nExit\n#555 #444\n01110\n1...1\n1...1\n1...1\n0...0\n\nPlayer\n#642 #963\n.000.\n01110\n01010\n00100\n.000.\n\nGunMode\n#963 #c84\n.000.\n01110\n01010\n00100\n.000.\n\nBadGuy\n#b31 #f00\n.000.\n01110\n01010\n00100\n.000.\n\nCrate\n#642 #963\n.....\n.111.\n.100.\n.100.\n.....\n\nGunU\n#963 #fd9 #aaa\n.....\n..2..\n..2..\n..1..\n..0..\n\nGunD\n#963 #fd9 #aaa\n..0..\n..1..\n..2..\n..2..\n.....\n\nGunL\n#963 #fd9 #aaa\n.....\n.....\n.2210\n.....\n.....\n\nGunR\n#963 #fd9 #aaa\n.....\n.....\n0122.\n.....\n.....\n\nBullet\n#888 #444\n.....\n..1..\n.101.\n..1..\n.....\n\nCorpse\n#f00 #a00\n.1...\n..01.\n1000.\n..0.1\n1.1..\n\nLoS\nTransparent\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n+ = Window\nP = Player\nB = BadGuy\nC = Crate\nX = Exit\n\nGun = GunU or GunD or GunL or GunR\nObstacle = Wall or Window or BrokenWindow or BadGuy or Crate\nShroud = Wall or BadGuy or Crate or Gun or Exit or Bullet\n\n\n=======\nSOUNDS\n=======\n\nGun Create 80432507\nGun Destroy 74204901\nCrate Move 58388907\nBullet Create 38215704\nBrokenWindow Create 99929700\nCorpse Create 95969308\nEndLevel 44184703\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWall, Window, BrokenWindow, Player, BadGuy, Crate, Gun, Corpse\nExit, GunMode, LoS, Bullet\n\n\n======\nRULES\n======\n\n(Move bullet)\n[stationary Bullet|...|Player]->[> Bullet|...|Player]again\n[stationary Bullet|...|Corpse]->[> Bullet|...|Corpse]again\n[> Bullet|Player]->[|Corpse]\n[> Bullet|Corpse]->[|Corpse]\n\n(Toggle mode)\n[action Player GunMode]->[Player]\n[action Player]->[Player GunMode]\n\n(Holster gun)\n[> Player GunMode|Gun]->[Player|]\n\n(Draw gun)\n [> Player GunMode| Obstacle]->cancel\nup [> Player GunMode|no Obstacle]->[Player|GunU]\ndown [> Player GunMode|no Obstacle]->[Player|GunD]\nleft [> Player GunMode|no Obstacle]->[Player|GunL]\nright [> Player GunMode|no Obstacle]->[Player|GunR]\n\n(Validate number of guns)\nrandom [stationary Gun]->[up Gun]\nrandom [stationary Gun]->[down Gun]\nrandom [stationary Gun]->cancel\n[moving Gun]->[Gun]\n\n(Move player)\n[> Player|Crate|Obstacle]->cancel\n[> Player|Crate]->[> Player|> Crate]\n[> Player|stationary Obstacle]->cancel\n[> Player][stationary Gun]->[> Player][> Gun]\n[> Gun|Obstacle]->[|Obstacle]\n\n(Remove gun from exit)\nlate[Gun Exit]->[Exit]\n\n(Bad guys shoot)\nlate[Player|BadGuy]->[Player Bullet|BadGuy]\nlate[Player Bullet]->[Corpse]\nlate[Corpse Bullet]->[Corpse]\nlate[Player|no Shroud]->[Player|LoS]\nlate[Player|...|LoS|no Shroud]->[Player|...|LoS|LoS]\nlate[Player|...|LoS|BadGuy]->[Player|...|Bullet|BadGuy]again\nlate[LoS]->[]\nlate[Bullet Window]->[Bullet BrokenWindow]\nlate[Corpse GunMode]->[Corpse]\n\n\n==============\nWINCONDITIONS\n==============\n\nany Exit on Player\n\n\n=======\nLEVELS\n=======\n\nmessage Don't let them varmints point a gun at ya unless yer pointin' one at them too.\nmessage Press X 'n' an arrow to draw or holster one o' yer two guns.\n\n##########\n#...#.+..#\n#.P.#.#..#\n#...#.+..#\n#...#.#..#\n#...#B+..X\n#...#.#..#\n#........#\n#........#\n#...#....#\n##########\n\n#############\n#......B....#\nX...........#\n#...........#\n#...#B..#...#\n#........B..#\n#B..........#\n#...B.......#\n#...#...#..B#\n#...........#\n#.P.........#\n#.......B...#\n#############\n\n.##########X##.\n.#....#B#....#.\n.#.CC.#.#....#.\n.#....#.#....#.\n##...##.##...##\n#....#...#....#\n#B...........B#\n#....#...#....#\n##...##.##...##\n.#....#.#....#.\n.#.P..#.#....#.\n.#....#B#....#.\n.#############.\n\n#############\n#.B....#.B..#\n#......#....#\n#......#...P#\n#......#....#\n#...#..#....#\n#B..#.......#\n#...#.......#\n###C###...###\n#.....+.....#\n#.....+.....#\n#.....+B...B#\n#########X###\n\n#################\n#B..B...#B......#\n#.......#.......#\n#+......#.......#\nX..............B#\n#+......#.......#\n#.....C.#B.....B#\n#B......#.......#\n####.#######.####\n#.......#......B#\n#...C...#.......#\n#.......#.......#\n#...............#\n#.......#.....C.#\n#.P.....#.......#\n#......B#...B...#\n#################\n\n#####X#X#####\n#...#B#B#...#\n#...#+#+#...X\n#...C....C..#\n###C..C.C.###\nXB+....C..+BX\n###.C...C.###\nXB+..C....+BX\n###C..C..C###\n#...C...C...#\n#.P.#+#+#...#\n#...#B#B#...#\n#####X#X#####\n\n#####X#####\n#B.......B#\n#B........#\n#........B#\n#B........#\n#..C...C.B#\n#...P.....#\n#.........#\n#..B.B.B..#\n###########\n\n#################\n#......#.#......#\n#.....B#.#B.....#\n#B....++.++.....#\n#...##+...+##...#\n#...#.......#.#.#\n#...C...P...C...#\n#.#.#.......#.#.#\n#...##+...+##...#\n#B....++.++....B#\n#.....B#.#B..C..#\n#......#.#......#\n########X########\n\n+++++++X+++++++\n+B...+...+...B+\n+B...+...+...B+\n+B...+...+...B+\n+B...+...+...B+\n+B...+...+...B+\n+++..+...+..+++\n.+.....+.....+.\n.+.C.+...+.C.+.\n.+.C.+...+.C.+.\n.+.C.+...+.C.+.\n.+.C.+...+.C.+.\n.+.P.+...+...+.\n.++++++B++++++.\n\n.....#######.....\n...###..B..###...\n..##.........##..\n.##..B.....B..##.\n.#.............#.\n##.B.........B.##\n#.....P...C.....#\n#...............#\n#B......B......B#\n#...............#\n#.....C.....#...#\n##.B..........B##\n.#........#.X..#.\n.##..B.......B##.\n..##.......B.##..\n...###..B..###...\n.....#######.....\n\nmessage Man, am I glad to be outta that town.\n\n", [3, 4, 1, 0, 0, 0, 0], "background:0,0,0,0,background wall:1,1,1,1,1,0,0,0,0,1,1,\n1,1,1,0,background badguy:2,0,1,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,1,1,0,background crate:3,0,0,0,\nbackground gunl:4,0,0,0,0,0,1,1,0,3,0,0,0,background corpse:5,0,\n0,0,0,0,1,1,0,0,0,1,1,0,1,1,0,\n0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,\n1,1,2,0,0,0,0,0,0,0,0,0,2,1,1,\n1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,\n0,1,1,0,1,1,0,0,0,1,1,0,0,0,0,\n0,0,0,0,0,0,0,1,background exit:6,0,0,0,0,0,0,\n0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,\n0,0,0,1,1,1,1,1,1,0,2,0,1,1,1,\n1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,\n", 4, "1627779129731.5793"] + ["title Stand Off\nauthor Mark Richardson\nagain_interval 0.05\nnorepeat_action\n(verbose_logging)\n\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nWall\n#555 #444\n01110\n10001\n10001\n10001\n01110\n\nWindow\n#555 #444 #cff\n01110\n12221\n12221\n12221\n01110\n\nBrokenWindow\n#555 #444 #cff #9bb #000\n01110\n12321\n13431\n12321\n01110\n\nExit\n#555 #444\n01110\n1...1\n1...1\n1...1\n0...0\n\nPlayer\n#642 #963\n.000.\n01110\n01010\n00100\n.000.\n\nGunMode\n#963 #c84\n.000.\n01110\n01010\n00100\n.000.\n\nBadGuy\n#b31 #f00\n.000.\n01110\n01010\n00100\n.000.\n\nCrate\n#642 #963\n.....\n.111.\n.100.\n.100.\n.....\n\nGunU\n#963 #fd9 #aaa\n.....\n..2..\n..2..\n..1..\n..0..\n\nGunD\n#963 #fd9 #aaa\n..0..\n..1..\n..2..\n..2..\n.....\n\nGunL\n#963 #fd9 #aaa\n.....\n.....\n.2210\n.....\n.....\n\nGunR\n#963 #fd9 #aaa\n.....\n.....\n0122.\n.....\n.....\n\nBullet\n#888 #444\n.....\n..1..\n.101.\n..1..\n.....\n\nCorpse\n#f00 #a00\n.1...\n..01.\n1000.\n..0.1\n1.1..\n\nLoS\nTransparent\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n+ = Window\nP = Player\nB = BadGuy\nC = Crate\nX = Exit\n\nGun = GunU or GunD or GunL or GunR\nObstacle = Wall or Window or BrokenWindow or BadGuy or Crate\nShroud = Wall or BadGuy or Crate or Gun or Exit or Bullet\n\n\n=======\nSOUNDS\n=======\n\nGun Create 80432507\nGun Destroy 74204901\nCrate Move 58388907\nBullet Create 38215704\nBrokenWindow Create 99929700\nCorpse Create 95969308\nEndLevel 44184703\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWall, Window, BrokenWindow, Player, BadGuy, Crate, Gun, Corpse\nExit, GunMode, LoS, Bullet\n\n\n======\nRULES\n======\n\n(Move bullet)\n[stationary Bullet|...|Player]->[> Bullet|...|Player]again\n[stationary Bullet|...|Corpse]->[> Bullet|...|Corpse]again\n[> Bullet|Player]->[|Corpse]\n[> Bullet|Corpse]->[|Corpse]\n\n(Toggle mode)\n[action Player GunMode]->[Player]\n[action Player]->[Player GunMode]\n\n(Holster gun)\n[> Player GunMode|Gun]->[Player|]\n\n(Draw gun)\n [> Player GunMode| Obstacle]->cancel\nup [> Player GunMode|no Obstacle]->[Player|GunU]\ndown [> Player GunMode|no Obstacle]->[Player|GunD]\nleft [> Player GunMode|no Obstacle]->[Player|GunL]\nright [> Player GunMode|no Obstacle]->[Player|GunR]\n\n(Validate number of guns)\nrandom [stationary Gun]->[up Gun]\nrandom [stationary Gun]->[down Gun]\nrandom [stationary Gun]->cancel\n[moving Gun]->[Gun]\n\n(Move player)\n[> Player|Crate|Obstacle]->cancel\n[> Player|Crate]->[> Player|> Crate]\n[> Player|stationary Obstacle]->cancel\n[> Player][stationary Gun]->[> Player][> Gun]\n[> Gun|Obstacle]->[|Obstacle]\n\n(Remove gun from exit)\nlate[Gun Exit]->[Exit]\n\n(Bad guys shoot)\nlate[Player|BadGuy]->[Player Bullet|BadGuy]\nlate[Player Bullet]->[Corpse]\nlate[Corpse Bullet]->[Corpse]\nlate[Player|no Shroud]->[Player|LoS]\nlate[Player|...|LoS|no Shroud]->[Player|...|LoS|LoS]\nlate[Player|...|LoS|BadGuy]->[Player|...|Bullet|BadGuy]again\nlate[LoS]->[]\nlate[Bullet Window]->[Bullet BrokenWindow]\nlate[Corpse GunMode]->[Corpse]\n\n\n==============\nWINCONDITIONS\n==============\n\nany Exit on Player\n\n\n=======\nLEVELS\n=======\n\nmessage Don't let them varmints point a gun at ya unless yer pointin' one at them too.\nmessage Press X 'n' an arrow to draw or holster one o' yer two guns.\n\n##########\n#...#.+..#\n#.P.#.#..#\n#...#.+..#\n#...#.#..#\n#...#B+..X\n#...#.#..#\n#........#\n#........#\n#...#....#\n##########\n\n#############\n#......B....#\nX...........#\n#...........#\n#...#B..#...#\n#........B..#\n#B..........#\n#...B.......#\n#...#...#..B#\n#...........#\n#.P.........#\n#.......B...#\n#############\n\n.##########X##.\n.#....#B#....#.\n.#.CC.#.#....#.\n.#....#.#....#.\n##...##.##...##\n#....#...#....#\n#B...........B#\n#....#...#....#\n##...##.##...##\n.#....#.#....#.\n.#.P..#.#....#.\n.#....#B#....#.\n.#############.\n\n#############\n#.B....#.B..#\n#......#....#\n#......#...P#\n#......#....#\n#...#..#....#\n#B..#.......#\n#...#.......#\n###C###...###\n#.....+.....#\n#.....+.....#\n#.....+B...B#\n#########X###\n\n#################\n#B..B...#B......#\n#.......#.......#\n#+......#.......#\nX..............B#\n#+......#.......#\n#.....C.#B.....B#\n#B......#.......#\n####.#######.####\n#.......#......B#\n#...C...#.......#\n#.......#.......#\n#...............#\n#.......#.....C.#\n#.P.....#.......#\n#......B#...B...#\n#################\n\n#####X#X#####\n#...#B#B#...#\n#...#+#+#...X\n#...C....C..#\n###C..C.C.###\nXB+....C..+BX\n###.C...C.###\nXB+..C....+BX\n###C..C..C###\n#...C...C...#\n#.P.#+#+#...#\n#...#B#B#...#\n#####X#X#####\n\n#####X#####\n#B.......B#\n#B........#\n#........B#\n#B........#\n#..C...C.B#\n#...P.....#\n#.........#\n#..B.B.B..#\n###########\n\n#################\n#......#.#......#\n#.....B#.#B.....#\n#B....++.++.....#\n#...##+...+##...#\n#...#.......#.#.#\n#...C...P...C...#\n#.#.#.......#.#.#\n#...##+...+##...#\n#B....++.++....B#\n#.....B#.#B..C..#\n#......#.#......#\n########X########\n\n+++++++X+++++++\n+B...+...+...B+\n+B...+...+...B+\n+B...+...+...B+\n+B...+...+...B+\n+B...+...+...B+\n+++..+...+..+++\n.+.....+.....+.\n.+.C.+...+.C.+.\n.+.C.+...+.C.+.\n.+.C.+...+.C.+.\n.+.C.+...+.C.+.\n.+.P.+...+...+.\n.++++++B++++++.\n\n.....#######.....\n...###..B..###...\n..##.........##..\n.##..B.....B..##.\n.#.............#.\n##.B.........B.##\n#.....P...C.....#\n#...............#\n#B......B......B#\n#...............#\n#.....C.....#...#\n##.B..........B##\n.#........#.X..#.\n.##..B.......B##.\n..##.......B.##..\n...###..B..###...\n.....#######.....\n\nmessage Man, am I glad to be outta that town.\n\n",[3,4,1,0,0,0,0],"background:0,0,0,0,background wall:1,1,1,1,1,0,0,0,0,1,1,\n1,1,1,0,background badguy:2,0,1,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,1,1,0,background crate:3,0,0,0,\nbackground gunl:4,0,0,0,0,0,1,1,0,3,0,0,0,background corpse:5,0,\n0,0,0,0,1,1,0,0,0,1,1,0,1,1,0,\n0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,\n1,1,2,0,0,0,0,0,0,0,0,0,2,1,1,\n1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,\n0,1,1,0,1,1,0,0,0,1,1,0,0,0,0,\n0,0,0,0,0,0,0,1,background exit:6,0,0,0,0,0,0,\n0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,\n0,0,0,1,1,1,1,1,1,0,2,0,1,1,1,\n1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,\n",4,"1627779129731.5793"] ], [ `gallery: 🍡 -ooo- 🍡`, - ["title 🍡 -ooo- 🍡\nauthor Baku\nhomepage http://baku89.com\n\n========\nOBJECTS\n========\n\nDark +\nBlack\n00000\n00000\n00000\n00000\n00000\n\nBackgroundSolid .\n#EEEEEE\n00000\n00000\n00000\n00000\n00000\n\nInstructionT T\n#EEEEEE #dce2e5\n00100\n01110\n10101\n00100\n00100\n\nInstructionK K\n#EEEEEE #dce2e5\n00100\n01000\n11110\n01000\n00100\n\nInstructionD D\n#EEEEEE #dce2e5\n00100\n00010\n01111\n00010\n00100\n\nInstructionI I\n#EEEEEE #dce2e5\n00100\n00100\n00100\n00100\n00100\n\n\nInstruction1 1\n#EEEEEE #dce2e5\n01100\n00100\n00100\n00100\n01110\n\n\nInstruction2 2\n#EEEEEE #dce2e5\n11110\n00001\n01110\n10000\n11111\n\n\nInstruction3 3\n#EEEEEE #dce2e5\n01110\n10001\n00111\n10001\n01110\n\nWall #\n#d7b7a2\n00000\n00000\n00000\n00000\n00000\n\nPlayerV $\n#d5bd7d\n..0..\n..0..\n..0..\n..0..\n..0..\n\nStickV |\n#e3cc8e\n..0..\n..0..\n..0..\n..0..\n..0..\n\nPlayerH ~\n#d5bd7d\n.....\n.....\n00000\n.....\n.....\n\nStickH -\n#e3cc8e\n.....\n.....\n00000\n.....\n.....\n\nFloatA A\n#ffb1c5\n.000.\n00000\n00000\n00000\n.000.\n\nFloatB B\nWHITE\n.000.\n00000\n00000\n00000\n.000.\n\nFloatC C\n#d0dc6e\n.000.\n00000\n00000\n00000\n.000.\n\nFixedA X\n#ffb1c5\n.000.\n00000\n00000\n00000\n.000.\n\nFixedB Y\nWHITE\n.000.\n00000\n00000\n00000\n.000.\n\nFixedC Z\n#d0dc6e\n.000.\n00000\n00000\n00000\n.000.\n\n\n=======\nLEGEND\n=======\n\nBackground = BackgroundSolid or InstructionT or InstructionI or InstructionK or InstructionD or Instruction1 or Instruction2 or Instruction3\n\nStick = StickV or StickH\nPlayer = PlayerV or PlayerH\n\nFloat \t= FloatA or FloatB or FloatC\nFloatAB = FloatA or FloatB\nFloatAC = FloatA or FloatC\nFloatBC = FloatB or FloatC\n\nFixed = FixedA or FixedB or FixedC\n\nDango = Float or Fixed\n\nBody = Player or Fixed\n\nAxisV = PlayerV or StickV\nAxisH = PlayerH or StickH\nAxis = Player or Stick\n\n\n=======\nSOUNDS\n=======\n\nSFX0 17033707\n\nSFX1 63191907\n\nSFX2 83893307\n\nEndLevel 28146300\nEndGame 78733301\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nStick\nPlayer, Wall, Dango, Fixed, Dark\n\n======\nRULES\n======\n\n(-------------MOVING PROPAGATION-------------)\n\n(Not to break apart body)\n[ Moving Player ] [ Stick ] -> [ Moving Player ] [ Moving Stick ]\n[ Moving Player ] [ Fixed ] -> [ Moving Player ] [ Moving Fixed ]\n\n\n(Translate Dango by stick)\n(|)\n[ Horizontal StickV Dango ] -> [ Horizontal StickV Horizontal Dango ]\n(-)\n[ Vertical StickH Dango ] -> [ Vertical StickH Vertical Dango ]\n\n(Push by player)\n(|)\n(\nVertical [ > PlayerV | Dango StickV ] -> [ > PlayerV | > Dango StickV ]\nVertical [ > Dango StickV | Dango StickV ] -> [ > Dango StickV | > Dango StickV ]\n(-)\nHorizontal [ > PlayerH | Dango StickH ] -> [ > PlayerH | > Dango StickH ]\nHorizontal [ > Dango StickH | Dango StickH ] -> [ > Dango StickH | > Dango StickH ]\n)\n\n(-------------CAN'T MOVE-------------)\n\n(Wall Collision)\n[ > Axis | Wall ] -> Cancel\n\n(Cannot push Float in incorrect ways)\n(|)\nHorizontal [ > AxisV | Stationary Float ] -> Cancel \t(push by side)\nVertical [ > PlayerV | Stationary Float ] -> Cancel \t(push by root)\n(-)\nVertical [ > AxisH | Stationary Float ] -> Cancel \t(push by side)\nHorizontal [ > PlayerH | Stationary Float ] -> Cancel \t(push by root)\n\n(Too heavy)\n[ > Dango | > Dango | > Dango | Dango ] -> cancel\n\n(-------------CONVERT-------------)\n\n(Convert Dango to Fixed)\n(|)\nlate Vertical [PlayerV | FloatC StickV ] -> [ PlayerV | FixedC StickV ]\nlate Vertical [FixedC | FloatB StickV ] -> [ FixedC | FixedB StickV ]\nlate Vertical [FixedB | FloatA StickV ] -> [ FixedB | FixedA StickV ]\n(-)\nlate Horizontal [PlayerH | FloatC StickH ] -> [ PlayerH | FixedC StickH ]\nlate Horizontal [FixedC | FloatB StickH ] -> [ FixedC | FixedB StickH ]\nlate Horizontal [FixedB | FloatA StickH ] -> [ FixedB | FixedA StickH ]\n\n\n(-------------SOUND-------------)\n\n(Incorrect order SFX)\n(|)\nVertical [ > PlayerV | StickV | Stationary FloatAB ] -> SFX1\nVertical [ > FixedC | StickV | Stationary FloatAC ] -> SFX1\nVertical [ > FixedB | StickV | Stationary FloatBC ] -> SFX1\n(-)\nHorizontal [ > PlayerH | StickH | Stationary FloatAB ] -> SFX1\nHorizontal [ > FixedC | StickH | Stationary FloatAC ] -> SFX1\nHorizontal [ > FixedB | StickH | Stationary FloatBC ] -> SFX1\n\n(Stik SFX)\n(|)\nVertical [ > Player | StickV | StickV | StickV | Stationary Float ] -> SFX2\n(-)\nHorizontal [ > Player | StickH | StickH | StickH | Stationary Float ] -> SFX2\n\n(Glue SFX)\n(|)\nVertical [ > PlayerV | StickV | FloatC ] -> SFX0\nVertical [ > FixedC | StickV | FloatB ] -> SFX0\nVertical [ > FixedB | StickV | FloatA ] -> SFX0\n(-)\nHorizontal [ > PlayerH | StickH | FloatC ] -> SFX0\nHorizontal [ > FixedC | StickH | FloatB ] -> SFX0\nHorizontal [ > FixedB | StickH | FloatA ] -> SFX0\n\n\n==============\nWINCONDITIONS\n==============\n\nNo Float\n\n=======\nLEVELS\n=======\n\n\n###############\n#.............#\n#......a.1....#\n#.............#\n#....T........#\n#....I.b.2....#\n#....I........#\n#.............#\n#......c.3....#\n#.............#\n#......|K1....#\n#....2D|......#\n#......|K3....#\n#......$......#\n#.............#\n###############\n\n\n###############\n#.............#\n#.............#\n#.........cK3.#\n#.............#\n#......bK2....#\n#.............#\n#...aK1.......#\n#.............#\n#.............#\n#......|K1....#\n#....2D|......#\n#......|K3....#\n#......$......#\n#.............#\n###############\n\n\n+++++++++++++++\n+++++#####+++++\n+++++#...#+++++\n+++++#.#.#+++++\n+++++#.c.#+++++\n+++++#...#+++++\n+++++#.b.#+++++\n+++++#...#+++++\n+++++#.a.#+++++\n+++++#.|.#+++++\n+++++#.|.#+++++\n+++++##|.#+++++\n++++++#$.#+++++\n++++++####+++++\n+++++++++++++++\n+++++++++++++++\n\n\n+++++++++++++++\n+++#########+++\n+++##.#.#.##+++\n+++#b.....b#+++\n+++#.......#+++\n+++#..|.|..#+++\n+++#..|c|..#+++\n+++#..|c|..#+++\n+++#..$.$..#+++\n+++#.a...a.#+++\n+++#.......#+++\n+++#.......#+++\n+++#.......#+++\n+++#.......#+++\n+++#########+++\n+++++++++++++++\n\n\n\n++###########++\n++#.........#++\n++#.........#++\n++#...bac...#++\n++#...acb...#++\n###...cba...###\n#.............#\n#.............#\n#.............#\n#.....|||.....#\n###...|||...###\n++#...|||...#++\n++#...$$$...#++\n++#.........#++\n++#.........#++\n++###########++\n\n\n+++++#####+++++\n+++###..a###+++\n++##.......##++\n+##...c.....##+\n+#......|....#+\n##......|b...##\n#.......|.....#\n#.......$.....#\n#.....$.......#\n#.....|.......#\n##...b|......##\n+#....|......#+\n+##.....c...##+\n++##.......##++\n+++###a..###+++\n+++++#####+++++\n\n\n+++++++++++++++\n+#############+\n+#...........#+\n+#.....|.....#+\n+#..#..|..b.##+\n+#.....|.....#+\n+#.....$....b#+\n+#.---~......#+\n+#...........#+\n+#...........#+\n+#..c.c......#+\n+#...........#+\n+#..a.a......#+\n+#############+\n+++++++++++++++\n\n\n##############+\n#............##\n#........a....#\n#.............#\n#......|c.....#\n#...a..|.b....#\n#..b...|......#\n#..c...$......#\n#..---~.~---..#\n#......$...c..#\n#......|..b.a.#\n#......|......#\n#....c.|......#\n#.....b.......#\n##...a........#\n+##############\n\n\n\n\n", [2, 2, 2, 1, 3, 0, 0, 0, 0, 1, 1, 0, 0, 3, 2, 2, 2, 2, 3, 1, 1, 2, 2, 2, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 3, 2, 2, 3, 3, 0, 0, 0, 0, 3, 3, 3, 0, 1, 1], "backgroundsolid dark:0,0,0,0,0,backgroundsolid wall:1,1,1,1,1,1,0,0,0,0,\n0,0,0,0,1,1,1,backgroundsolid:2,2,2,2,1,1,1,0,\n0,0,0,0,1,1,2,2,2,2,2,2,2,2,1,\n1,0,0,0,1,1,2,2,2,2,2,2,2,2,2,\n2,1,1,0,0,1,2,2,2,2,2,2,2,2,2,\n2,2,2,1,0,1,1,2,2,2,backgroundsolid playerv:3,backgroundsolid stickv:4,4,4,2,\n2,2,2,2,1,1,1,2,2,backgroundsolid floatc:5,2,2,2,2,2,\n2,backgroundsolid floatb:6,2,2,2,backgroundsolid floata:7,1,1,backgroundsolid floata stickv:8,4,4,3,2,2,2,\n2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,\n2,2,2,2,2,5,2,2,1,1,1,2,2,2,6,\n2,2,2,2,2,2,2,2,1,1,0,1,2,2,2,\n2,2,2,2,2,2,2,2,2,1,0,0,1,1,2,\n2,2,2,2,2,2,2,2,2,1,1,0,0,0,1,\n1,2,2,2,2,2,2,2,2,1,1,0,0,0,0,\n0,1,1,1,2,2,2,2,1,1,1,0,0,0,0,\n0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,\n", 5, "1627779151924.9846"] + ["title 🍡 -ooo- 🍡\nauthor Baku\nhomepage http://baku89.com\n\n========\nOBJECTS\n========\n\nDark +\nBlack\n00000\n00000\n00000\n00000\n00000\n\nBackgroundSolid .\n#EEEEEE\n00000\n00000\n00000\n00000\n00000\n\nInstructionT T\n#EEEEEE #dce2e5\n00100\n01110\n10101\n00100\n00100\n\nInstructionK K\n#EEEEEE #dce2e5\n00100\n01000\n11110\n01000\n00100\n\nInstructionD D\n#EEEEEE #dce2e5\n00100\n00010\n01111\n00010\n00100\n\nInstructionI I\n#EEEEEE #dce2e5\n00100\n00100\n00100\n00100\n00100\n\n\nInstruction1 1\n#EEEEEE #dce2e5\n01100\n00100\n00100\n00100\n01110\n\n\nInstruction2 2\n#EEEEEE #dce2e5\n11110\n00001\n01110\n10000\n11111\n\n\nInstruction3 3\n#EEEEEE #dce2e5\n01110\n10001\n00111\n10001\n01110\n\nWall #\n#d7b7a2\n00000\n00000\n00000\n00000\n00000\n\nPlayerV $\n#d5bd7d\n..0..\n..0..\n..0..\n..0..\n..0..\n\nStickV |\n#e3cc8e\n..0..\n..0..\n..0..\n..0..\n..0..\n\nPlayerH ~\n#d5bd7d\n.....\n.....\n00000\n.....\n.....\n\nStickH -\n#e3cc8e\n.....\n.....\n00000\n.....\n.....\n\nFloatA A\n#ffb1c5\n.000.\n00000\n00000\n00000\n.000.\n\nFloatB B\nWHITE\n.000.\n00000\n00000\n00000\n.000.\n\nFloatC C\n#d0dc6e\n.000.\n00000\n00000\n00000\n.000.\n\nFixedA X\n#ffb1c5\n.000.\n00000\n00000\n00000\n.000.\n\nFixedB Y\nWHITE\n.000.\n00000\n00000\n00000\n.000.\n\nFixedC Z\n#d0dc6e\n.000.\n00000\n00000\n00000\n.000.\n\n\n=======\nLEGEND\n=======\n\nBackground = BackgroundSolid or InstructionT or InstructionI or InstructionK or InstructionD or Instruction1 or Instruction2 or Instruction3\n\nStick = StickV or StickH\nPlayer = PlayerV or PlayerH\n\nFloat \t= FloatA or FloatB or FloatC\nFloatAB = FloatA or FloatB\nFloatAC = FloatA or FloatC\nFloatBC = FloatB or FloatC\n\nFixed = FixedA or FixedB or FixedC\n\nDango = Float or Fixed\n\nBody = Player or Fixed\n\nAxisV = PlayerV or StickV\nAxisH = PlayerH or StickH\nAxis = Player or Stick\n\n\n=======\nSOUNDS\n=======\n\nSFX0 17033707\n\nSFX1 63191907\n\nSFX2 83893307\n\nEndLevel 28146300\nEndGame 78733301\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nStick\nPlayer, Wall, Dango, Fixed, Dark\n\n======\nRULES\n======\n\n(-------------MOVING PROPAGATION-------------)\n\n(Not to break apart body)\n[ Moving Player ] [ Stick ] -> [ Moving Player ] [ Moving Stick ]\n[ Moving Player ] [ Fixed ] -> [ Moving Player ] [ Moving Fixed ]\n\n\n(Translate Dango by stick)\n(|)\n[ Horizontal StickV Dango ] -> [ Horizontal StickV Horizontal Dango ]\n(-)\n[ Vertical StickH Dango ] -> [ Vertical StickH Vertical Dango ]\n\n(Push by player)\n(|)\n(\nVertical [ > PlayerV | Dango StickV ] -> [ > PlayerV | > Dango StickV ]\nVertical [ > Dango StickV | Dango StickV ] -> [ > Dango StickV | > Dango StickV ]\n(-)\nHorizontal [ > PlayerH | Dango StickH ] -> [ > PlayerH | > Dango StickH ]\nHorizontal [ > Dango StickH | Dango StickH ] -> [ > Dango StickH | > Dango StickH ]\n)\n\n(-------------CAN'T MOVE-------------)\n\n(Wall Collision)\n[ > Axis | Wall ] -> Cancel\n\n(Cannot push Float in incorrect ways)\n(|)\nHorizontal [ > AxisV | Stationary Float ] -> Cancel \t(push by side)\nVertical [ > PlayerV | Stationary Float ] -> Cancel \t(push by root)\n(-)\nVertical [ > AxisH | Stationary Float ] -> Cancel \t(push by side)\nHorizontal [ > PlayerH | Stationary Float ] -> Cancel \t(push by root)\n\n(Too heavy)\n[ > Dango | > Dango | > Dango | Dango ] -> cancel\n\n(-------------CONVERT-------------)\n\n(Convert Dango to Fixed)\n(|)\nlate Vertical [PlayerV | FloatC StickV ] -> [ PlayerV | FixedC StickV ]\nlate Vertical [FixedC | FloatB StickV ] -> [ FixedC | FixedB StickV ]\nlate Vertical [FixedB | FloatA StickV ] -> [ FixedB | FixedA StickV ]\n(-)\nlate Horizontal [PlayerH | FloatC StickH ] -> [ PlayerH | FixedC StickH ]\nlate Horizontal [FixedC | FloatB StickH ] -> [ FixedC | FixedB StickH ]\nlate Horizontal [FixedB | FloatA StickH ] -> [ FixedB | FixedA StickH ]\n\n\n(-------------SOUND-------------)\n\n(Incorrect order SFX)\n(|)\nVertical [ > PlayerV | StickV | Stationary FloatAB ] -> SFX1\nVertical [ > FixedC | StickV | Stationary FloatAC ] -> SFX1\nVertical [ > FixedB | StickV | Stationary FloatBC ] -> SFX1\n(-)\nHorizontal [ > PlayerH | StickH | Stationary FloatAB ] -> SFX1\nHorizontal [ > FixedC | StickH | Stationary FloatAC ] -> SFX1\nHorizontal [ > FixedB | StickH | Stationary FloatBC ] -> SFX1\n\n(Stik SFX)\n(|)\nVertical [ > Player | StickV | StickV | StickV | Stationary Float ] -> SFX2\n(-)\nHorizontal [ > Player | StickH | StickH | StickH | Stationary Float ] -> SFX2\n\n(Glue SFX)\n(|)\nVertical [ > PlayerV | StickV | FloatC ] -> SFX0\nVertical [ > FixedC | StickV | FloatB ] -> SFX0\nVertical [ > FixedB | StickV | FloatA ] -> SFX0\n(-)\nHorizontal [ > PlayerH | StickH | FloatC ] -> SFX0\nHorizontal [ > FixedC | StickH | FloatB ] -> SFX0\nHorizontal [ > FixedB | StickH | FloatA ] -> SFX0\n\n\n==============\nWINCONDITIONS\n==============\n\nNo Float\n\n=======\nLEVELS\n=======\n\n\n###############\n#.............#\n#......a.1....#\n#.............#\n#....T........#\n#....I.b.2....#\n#....I........#\n#.............#\n#......c.3....#\n#.............#\n#......|K1....#\n#....2D|......#\n#......|K3....#\n#......$......#\n#.............#\n###############\n\n\n###############\n#.............#\n#.............#\n#.........cK3.#\n#.............#\n#......bK2....#\n#.............#\n#...aK1.......#\n#.............#\n#.............#\n#......|K1....#\n#....2D|......#\n#......|K3....#\n#......$......#\n#.............#\n###############\n\n\n+++++++++++++++\n+++++#####+++++\n+++++#...#+++++\n+++++#.#.#+++++\n+++++#.c.#+++++\n+++++#...#+++++\n+++++#.b.#+++++\n+++++#...#+++++\n+++++#.a.#+++++\n+++++#.|.#+++++\n+++++#.|.#+++++\n+++++##|.#+++++\n++++++#$.#+++++\n++++++####+++++\n+++++++++++++++\n+++++++++++++++\n\n\n+++++++++++++++\n+++#########+++\n+++##.#.#.##+++\n+++#b.....b#+++\n+++#.......#+++\n+++#..|.|..#+++\n+++#..|c|..#+++\n+++#..|c|..#+++\n+++#..$.$..#+++\n+++#.a...a.#+++\n+++#.......#+++\n+++#.......#+++\n+++#.......#+++\n+++#.......#+++\n+++#########+++\n+++++++++++++++\n\n\n\n++###########++\n++#.........#++\n++#.........#++\n++#...bac...#++\n++#...acb...#++\n###...cba...###\n#.............#\n#.............#\n#.............#\n#.....|||.....#\n###...|||...###\n++#...|||...#++\n++#...$$$...#++\n++#.........#++\n++#.........#++\n++###########++\n\n\n+++++#####+++++\n+++###..a###+++\n++##.......##++\n+##...c.....##+\n+#......|....#+\n##......|b...##\n#.......|.....#\n#.......$.....#\n#.....$.......#\n#.....|.......#\n##...b|......##\n+#....|......#+\n+##.....c...##+\n++##.......##++\n+++###a..###+++\n+++++#####+++++\n\n\n+++++++++++++++\n+#############+\n+#...........#+\n+#.....|.....#+\n+#..#..|..b.##+\n+#.....|.....#+\n+#.....$....b#+\n+#.---~......#+\n+#...........#+\n+#...........#+\n+#..c.c......#+\n+#...........#+\n+#..a.a......#+\n+#############+\n+++++++++++++++\n\n\n##############+\n#............##\n#........a....#\n#.............#\n#......|c.....#\n#...a..|.b....#\n#..b...|......#\n#..c...$......#\n#..---~.~---..#\n#......$...c..#\n#......|..b.a.#\n#......|......#\n#....c.|......#\n#.....b.......#\n##...a........#\n+##############\n\n\n\n\n",[2,2,2,1,3,0,0,0,0,1,1,0,0,3,2,2,2,2,3,1,1,2,2,2,0,0,0,0,0,1,2,2,2,2,0,0,0,0,2,2,2,2,2,3,2,2,3,3,0,0,0,0,3,3,3,0,1,1],"backgroundsolid dark:0,0,0,0,0,backgroundsolid wall:1,1,1,1,1,1,0,0,0,0,\n0,0,0,0,1,1,1,backgroundsolid:2,2,2,2,1,1,1,0,\n0,0,0,0,1,1,2,2,2,2,2,2,2,2,1,\n1,0,0,0,1,1,2,2,2,2,2,2,2,2,2,\n2,1,1,0,0,1,2,2,2,2,2,2,2,2,2,\n2,2,2,1,0,1,1,2,2,2,backgroundsolid playerv:3,backgroundsolid stickv:4,4,4,2,\n2,2,2,2,1,1,1,2,2,backgroundsolid floatc:5,2,2,2,2,2,\n2,backgroundsolid floatb:6,2,2,2,backgroundsolid floata:7,1,1,backgroundsolid floata stickv:8,4,4,3,2,2,2,\n2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,\n2,2,2,2,2,5,2,2,1,1,1,2,2,2,6,\n2,2,2,2,2,2,2,2,1,1,0,1,2,2,2,\n2,2,2,2,2,2,2,2,2,1,0,0,1,1,2,\n2,2,2,2,2,2,2,2,2,1,1,0,0,0,1,\n1,2,2,2,2,2,2,2,2,1,1,0,0,0,0,\n0,1,1,1,2,2,2,2,1,1,1,0,0,0,0,\n0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,\n",5,"1627779151924.9846"] ], [ `gallery: Rose`, - ["title Rose\nhomepage www.puzzlescript.net\nnorepeat_action\nverbose_logging\nflickscreen 11x11\ntext_color #be2633\n\nagain_interval 1\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\n\nBackground\ngrey\n\nPhysicalWall \n#1a2d38\n00000\n00000\n00000\n00000\n00000\n\nWall\n#d4ca8e \n\nmanleft\n#ff7245 #2f2f3c #3d2c29 #ff8058\n.100.\n.300.\n0222.\n.300.\n.300.\n\nmanup\n#ff7245 #2f2f3c #3d2c29 #ff8058\n.300.\n.300.\n02220\n.300.\n.300.\n\nmanright\n#ff7245 #2f2f3c #3d2c29 #ff8058\n.301.\n.300.\n.2220\n.300.\n.300.\n\nmandown\n#ff7245 #2f2f3c #3d2c29 #ff8058\n.101.\n.300.\n02220\n.300.\n.300.\n\nrosetilestart\ntransparent\n\nrosetile1\n#88b32f #be2633 \n10000\n01000\n00010\n00101\n00010\n\nrosetile2\n#88b32f #be2633 \n00000\n01000\n10100\n01000\n00000\n\nrosetile3\n#88b32f #be2633 \n00000\n00100\n01010\n00100\n00000\n\ndirttile \n#a46422 #83501b #be2633\n10100\n01010\n00101\n10010\n02021\n\nrose1\n#fce6ad #dfe989\n00000\n00000\n00000\n00001\n00001\n\nrose2\n#fce6ad #dfe989 #a3ce27\n00000\n00000\n00000\n00010\n22222\n\nrose3\n#fce6ad #dfe989 #a3ce27\n00000\n00000\n00000\n00000\n00012\n\nrose4\n#fce6ad #dfe989 #a3ce27 #be2633 #9f2436\n00000\n03334\n33343\n33433\n24333\n\nrose5\n#fce6ad #dfe989 #a3ce27 #be2633 #9f2436\n00000\n40000\n30300\n33300\n34300\n\nrose6\n#fce6ad #dfe989 #a3ce27 #88b32f\n00002\n00022\n02333\n03330\n00000\n\nrose7\n#fce6ad #dfe989 #a3ce27 #88b32f\n23332\n30003\n00000\n00000\n00000\n\nrose8\n#fce6ad #dfe989 #a3ce27 #88b32f\n20012\n22223\n13330\n10000\n00000\n\nrose9\n#fce6ad #dfe989 #a3ce27 #88b32f #be2633 #9f2436\n33445\n00554\n00000\n00000\n00000\n\nrose10\n#fce6ad #dfe989 #a3ce27 #88b32f #be2633 #9f2436\n54004\n40040\n00000\n00000\n00000\n\n(scenery - tower exterior)\npathstart\ngrey\n\npathhoriz\n#d1ccb2 #dad6c3\n11111\n00000\n00000\n00000\n11111\n\npathvert\n#d1ccb2 #dad6c3\n10001\n10001\n10001\n10001\n10001\n\npathend\n#d1ccb2 #dad6c3\n..1..\n.111.\n.101.\n10001\n10001\n\npathtri\n#d1ccb2 #dad6c3\n10001\n00000\n00000\n00000\n11111\n\npathrightbend\n#d1ccb2 #dad6c3\n..111\n.1000\n10000\n10000\n10001\n\npathupbend\n#d1ccb2 #dad6c3\n10001\n00001\n00001\n0001.\n111..\n\ngroundstart\n#c5c4be #eaeae8\n00000\n00000\n00000\n00000\n00000\n\nground1\n#c5c4be #eaeae8\n00000\n00000\n00000\n01000\n00000\n\nground2\n#c5c4be #eaeae8\n00000\n00000\n00000\n00000\n00000\n\nground3\n#c5c4be #eaeae8\n00100\n00000\n00000\n00000\n00000\n\npuddlecenter\n#b8d9e9 #d4e8f2 #c5c4be\n10101\n01010\n00000\n10101\n01010\n\npuddleleft\n#b8d9e9 #d4e8f2 #c5c4be\n.1101\n.1010\n.1000\n.1101\n.1010\n\npuddleright\n#b8d9e9 #d4e8f2 #c5c4be\n1011.\n0101.\n001..\n101..\n0101.\n\npuddletop\n#b8d9e9 #d4e8f2 #c5c4be\n.....\n11111\n00000\n10101\n01010\n\npuddlebottom\n#b8d9e9 #d4e8f2 #c5c4be\n10101\n01010\n00000\n11111\n.....\n\npuddlecornertr\n#b8d9e9 #d4e8f2 #c5c4be\n.....\n111..\n0011.\n1011.\n0101.\n\npuddlecornertl\n#b8d9e9 #d4e8f2 #c5c4be\n.....\n...11\n..100\n..101\n.1010\n\npuddlecornerbl\n#b8d9e9 #d4e8f2 #c5c4be\n..101\n...10\n...10\n....1\n.....\n\npuddlecornerbr\n#b8d9e9 #d4e8f2 #c5c4be\n1011.\n0101.\n0011.\n111..\n.....\n\nhousewall\n#fbdf98\n\nhousewallcrack\n#fbdf98 #e2d4b1\n01000\n00100\n01000\n00000\n00000\n\nhousewallside\n#fbdf98 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\nhouseroof\n#b4865a #2d303f\n00100\n01000\n10000\n00001\n00010\n\nhouseroofside\n#b4865a #bc926b #2d303f\n....1\n...10\n..110\n.1002\n11020\n\nhouseentrance\n#41555f black\n00000\n01110\n01110\n01110\n01110\n\nhousewindow\n#b7ab69 #41555f #5c7787 #4f6774\n11012\n11023\n00000\n12011\n23011\n\ntowerwall1\n#1a2d38 #86858d\n01000\n01000\n01000\n11111\n00010\n\ntowerwall2\n#1a2d38 #86858d\n00010\n00010\n00010\n11111\n01000\n\ntowerbase \n#1a2d38 #86858d \n01010\n01010\n01010\n11111\n00100\n\ntowerwall1left\n#1a2d38 #86858d #365e6b #9e9da4\n23000\n23000\n23000\n33111\n22010\n\ntowerwall2left\n#1a2d38 #86858d #365e6b #9e9da4\n22010\n22010\n22010\n33111\n23000\n\ntowerbaseleft\n#1a2d38 #86858d #365e6b #9e9da4\n23010\n23010\n23010\n33111\n22100\n\ntowerwall1right\n#1a2d38 #86858d #15242d #6b6a71\n01022\n01022\n01022\n11133\n00032\n\ntowerwall2right\n#1a2d38 #86858d #15242d #6b6a71\n00032\n00032\n00032\n11133\n01022\n\ntowerbaseright\n#1a2d38 #86858d #15242d #6b6a71\n01032\n01032\n01032\n11133\n00122\n\ntowerentrance\nblack\n\ntowerentrancefront\nblack\n\n(scenery - house interior)\n\nhousefloornorm\n#dfaa18 #c99916\n10001\n10001\n10001\n10001\n10001\n\nhousefloor1\n#dfaa18 #c99916\n10001\n10001\n11111\n10001\n10001\n\nhousefloor2\n#dfaa18 #c99916\n10001\n10001\n10001\n10001\n11111\n\nhousewallinttop\n#fce6ad\n\nhousewallintright\n#f9d371 #fce6ad\n00001\n00001\n00001\n00001\n00001\n\nhousewallintleft\n#f9d371 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\nhousewallintdown\n#f9d371\n\nhousefloorstart\ntransparent\n\nhiddendoor\n#dfaa18 #c99916\n10001\n10001\n10001\n10001\n10001\n\nhiddendoortemp\ntransparent\n\n(scenery - tower interior)\n\ntowertile\n#587ba2 #4f6e92 #7895b6 #354961 #425a78\n21111\n20003\n20003\n20003\n44443\n\ntowertilecrack\n#587ba2 #4f6e92 #7895b6 #354961 #425a78\n21111\n20003\n20003\n20003\n44443\n\ntowertilecrack1\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #a6b0bc\n21111\n20003\n20553\n25003\n44443\n\ntowertilecrack2\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #a6b0bc\n21111\n50005\n50003\n25003\n45443\n\ntowertilecrack3\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #a6b0bc\n25111\n55003\n20005\n20053\n44453\n\ntowerwallbottomleft\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #1a2d38\n51111\n55003\n55503\n55553\n55555\n\ntowerwallbottomright\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #1a2d38 #354961\n21116\n20065\n20655\n26555\n65555\n\ntowerwallinttop\n#354961 #0f1b2d\n11111\n11111\n00000\n00000\n00000\n\ntowerwallinttoppermanent\n#354961 #0f1b2d\n11111\n11111\n00000\n00000\n00000\n\ntowerwallintbottom\n#1a2d38 #354961\n11111\n00000\n00000\n00000\n00000\n\ntowerwallintleft\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #354961 #0f1b2d\n65551\n55503\n55003\n50003\n44443\n\ntowerwallintleftmid\n#354961 #0f1b2d\n00011\n00111\n01110\n11100\n11000\n\ntowerwallintlefttop\n#354961 #0f1b2d\n....0\n...00\n..000\n.0000\n00001\n\ntowerwallintright\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #354961 #0f1b2d\n25556\n20555\n20055\n20005\n44443\n\ntowerwallintrightmid\n#354961 #0f1b2d\n11000\n11100\n01110\n00111\n00011\n\ntowerwallintrighttop\n#354961 #0f1b2d\n0....\n00...\n000..\n0000.\n10000\n\ntowerpillar1\n#1d304b #b7c5c4 #8da3a2 #7c9594 #28814b #be2633\n00230\n01530\n01240\n01230\n00000\n\ntowerpillartop1\n#7c9594 \n.....\n.....\n.....\n.....\n...0.\n\ntowerpillar2\n#1d304b #b7c5c4 #8da3a2 #7c9594 #28814b\n01230\n01240\n01430\n04230\n00000\n\ntowerpillartop2\n#7baab2 #b7c5c4 #8da3a2 #7c9594 #28814b\n.....\n.1...\n.12..\n.143.\n.423.\n\ntowerpillar2special\n#1d304b #b7c5c4 #2ff5d6 #7c9594 #28814b\n01230\n01230\n01230\n01230\n00000\n\ntowerpillartop2special\n#7baab2 #b7c5c4 #2ff5d6 #7c9594 #28814b\n.....\n.1...\n.12..\n.123.\n.123.\n\ntowerpillar3\n#1d304b #b7c5c4 #2ff5d6 #7c9594 #28814b\n01230\n01230\n01230\n01230\n00000\n\ntowerpillarmid3\n#7baab2 #b7c5c4 #2ff5d6 #7c9594 #28814b\n.123.\n.123.\n.123.\n.123.\n.123.\n\ntowerpillartop3\n#7baab2 #b7c5c4 #2ff5d6 #7c9594 #6f8c82 #6e98a1\n45554\n44444\n.123.\n.123.\n.123.\n\ntowerstairsup\n#d4dcdc #a4b5b5 #b5c4c3\n....1\n...22\n..110\n.2200\n11000\n\ntowerstairsdown1\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\ntowerstairsuptemp\n#d4dcdc #a4b5b5 #b5c4c3\n....1\n...22\n..110\n.2200\n11000\n\ntowerstairsdowntemp\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\ntowerwallint\ntransparent\n\n(tower balcony)\n\ntowertilehalflight\n#829d97 #b6c6b0 #94aba6 #66827d #7693a4 #91a8b6 #526b7c #354961\n10000\n12223\n52226\n54446\n66667\n\n\ntowertileoutside\n#94aba6 #829d97 #a9bcb8 #72908a #66827d\n21111\n20004\n20004\n20004\n33334\n\ntowerbalconyleft\n#94aba6 #829d97 #72908a #66827d #deddd1 #617978 #415150\n45611\n45603\n45603\n45603\n45623\n\ntowerbalconyright\n#94aba6 #829d97 #72908a #a9bcb8 #deddd1 #617978 #415150\n31654\n30654\n30654\n30654\n22654\n\ntowerbalconytop\n#415150 #deddd1 #617978 #94aba6 #a9bcb8 #72908a #66827d\n00000\n00000\n12011\n43336\n55556\n\ntowerbalconytopright\n#415150 #deddd1 #617978 #a9bcb8 #72908a\n21111\n02111\n00211\n30021\n44021\n\ntowerbalconytopleft\n#415150 #deddd1 #617978 #66827d #72908a\n11112\n11120\n11200\n12003\n12043\n\nhighgroundstart\n#deddd1\n\nhighground1\n#deddd1 #b8d9e9\n00000\n00000\n00000\n01000\n00000\n\nhighground2\n#deddd1 #d4e8f2 #b8d9e9\n00000\n01000\n00000\n00000\n00120\n\nhighground3\n#deddd1 #d4e8f2\n00010\n00000\n10000\n00001\n00000\n\nhighpuddletopleft1\n#deddd1 #d4e8f2 #b8d9e9\n00000\n00000\n00011\n00122\n00122\n\nhighpuddletopleft2\n#deddd1 #d4e8f2 #b8d9e9\n00000\n00000\n01111\n01222\n01122\n\nhighpuddletopright1\n#deddd1 #d4e8f2 #b8d9e9\n00000\n00000\n11000\n21000\n21000\n\nhighpuddletopright2\n#deddd1 #d4e8f2 #b8d9e9\n00000\n01110\n12221\n22221\n21110\n\nhighpuddlebottomleft1\n#deddd1 #d4e8f2 #b8d9e9\n00122\n01222\n01222\n00111\n00000\n\nhighpuddlebottomleft2\n#deddd1 #d4e8f2 #b8d9e9\n00122\n00111\n00001\n00001\n00000\n\nhighpuddlebottomright\n#deddd1 #d4e8f2 #b8d9e9\n21000\n21000\n10000\n10000\n00000\n\n(tower roof)\n\nroofpattern\ntransparent\n\nroofleft\n#829d97 #99b0ab\n.....\n.....\n100..\n.....\n.....\n\nroofup\n#829d97 #72908a\n..1..\n..0..\n..0..\n.....\n.....\n\nroofright\n#829d97 #5c7571\n.....\n.....\n..001\n.....\n.....\n\nroofdown\n#829d97 #66827d\n.....\n.....\n..0..\n..0..\n..1..\n\nbasementpattern\ntransparent\n\nbaseleft\n#2e5648 #376759\n.....\n.....\n100..\n.....\n.....\n\nbaseup\n#2e5648 #294d41\n..1..\n..0..\n..0..\n.....\n.....\n\nbaseright\n#2e5648 #1c332c\n.....\n.....\n..001\n.....\n.....\n\nbasedown\n#2e5648 #233e37\n.....\n.....\n..0..\n..0..\n..1..\n\nhalftilebottomright\n#94aba6 #829d97 #a9bcb8 #8aa47f #66827d\n21111\n2000.\n200..\n20...\n3....\n\nhalftilebottomleft\n#94aba6 #829d97 #a9bcb8 #72908a #66827d\n21111\n.0004\n..004\n...04\n....4\n\nhalftiletopright\n#94aba6 #829d97 #a9bcb8 #72908a #66827d\n211..\n2000.\n20004\n20004\n33334\n\nhalftiletopleft\n#94aba6 #829d97 #a9bcb8 #72908a #66827d\n..111\n.0004\n20004\n20004\n33334\n\ntowerbalconytoprightroof\n#415150 #deddd1 #617978 #a9bcb8 #72908a\n21111\n02111\n00211\n30021\n44002\n\ntowerbalconytopleftroof\n#415150 #deddd1 #617978 #66827d #72908a\n11112\n11120\n11200\n12003\n20043\n\ntowerbalconyrightroof\n#6f90bc #6388b7 #8da9cb #5077ab #466998 #415150\n21.55\n200.5\n2000.\n20004\n33334\n\ntowerbalconyleftroof\n#6f90bc #6388b7 #8da9cb #5077ab #466998 #415150\n55.11\n5.004\n.0004\n20004\n33334\n\n(tower basement)\n\nbasemententrance\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\nbasemententrance1\n#b7c5c4 #8da3a2 #98acab #335f50 #396959 #447f6c\n33331\n54422\n54110\n52200\n11000\n\nbasemententrance2\n#a7c7c4 #91b9b5 #6ba093 #b8d2d0 #7daca8\n11112\n30002\n30002\n30002\n34444\n\nbasementstairsdown\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\nbasementstairsdowntemp\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\nbasementtile\n#396959 #335f50 #223f36 #447f6c #2b4d43\n11112\n30002\n30002\n30002\n34444\n\nbasementstairsdownblocked\n#396959 #335f50 #223f36 #447f6c #2b4d43\n11112\n30002\n30002\n30002\n34444\n\ntowerstairsdown2\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\nbasementlinetile\n#a7c7c4 #91b9b5 #6ba093 #b8d2d0 #7daca8\n11112\n30002\n30002\n30002\n34444\n\nbasementblocktile\n#396959 #335f50 #223f36 #447f6c #2b4d43\n11112\n30002\n30002\n30002\n34444\n\nbasementlineblocktile\n#a7c7c4 #91b9b5 #6ba093 #b8d2d0 #7daca8\n11112\n30002\n30002\n30002\n34444\n\nbasementwallright\n#396959 #335f50 #46826c #447f6c #2b4d43 #78b6a0\n12225\n30222\n30022\n30002\n34444\n\nbasementwallrightmid\n#46826c #78b6a0\n11000\n11100\n01110\n00111\n00011\n\nbasementwallrighttop\n#46826c #78b6a0 #12261b\n02222\n00222\n00022\n00002\n10000 \n\nbasementwallleft\n#396959 #46826c #223f36 #447f6c #2b4d43 #78b6a0\n51112\n11102\n11002\n10002\n44444\n\nbasementwallleftmid\n#46826c #78b6a0\n00011\n00111\n01110\n11100\n11000\n\nbasementwalllefttop\n#46826c #78b6a0 #12261b\n22220\n22200\n22000\n20000\n00001\n\nbasementwallbottomleft\n#396959 #335f50 #223f36 #12261b\n31112\n33002\n33302\n33332\n33333\n\nbasementwallbottomright\n#396959 #335f50 #12261b #447f6c\n11112\n30022\n30222\n32222\n22222\n\nbasementwall\ngrey\n\nbasementphysicalwall\n#12261b\n\nbasementphysicalwallperm\n#12261b\n\nbasementpillar1\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.1...\n.1...\n.12..\n.123.\n00000\n\nbasementpillar2\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n00000\n\nbasementpillartop2\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.....\n...3.\n..23.\n.123.\n.123.\n\nbasementpillar3\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n00000\n\nbasementpillarmid3\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n.123.\n\nbasementpillartop3\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.....\n.....\n.1.3.\n.123.\n.123.\n\nbasementpillar4\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n00000\n\nbasementpillartop4\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.....\n.1...\n.12..\n.123.\n.123.\n\nbasementpillar5\n#6f8c82 #d77e57 #d16b3f #c55d2f\n...3.\n...3.\n..23.\n.123.\n00000\n\nbasementpillar6\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n00000\n\nbasementpillarmid6\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n.123.\n\nbasementpillartop6\n#6f8c82 #d77e57 #d16b3f #c55d2f #6f8c82 #6e98a1\n54445\n55555\n.123.\n.123.\n.123.\n\nend\n#123456\n000..\n.000.\n..000\n...00\n....0\n\n(Drawing)\n\ndrawingboardcenter\n#ffffb3\n\ndrawingboardleft\n#ffffb3 #f7f7bb\n10000\n10000\n10000\n10000\n10000\n\ndrawingboardtop\n#ffffb3 #f7f7bb\n11111\n00000\n00000\n00000\n00000\n\ndrawingboardright\n#ffffb3 #f7f7bb\n00001\n00001\n00001\n00001\n00001\n\ndrawingboarddown\n#ffffb3 #f7f7bb\n00000\n00000\n00000\n00000\n11111\n\ndrawingboardtopleft\n#ffffb3 #f7f7bb\n11111\n10000\n10000\n10000\n10000\n\ndrawingboarddownleft\n#ffffb3 #f7f7bb\n10000\n10000\n10000\n10000\n11111\n\ndrawingboardtopright\n#ffffb3 #f7f7bb\n11111\n00001\n00001\n00001\n00001\n\ndrawingboarddownright\n#ffffb3 #f7f7bb\n00001\n00001\n00001\n00001\n11111\n\ndrawleft\n#281904\n.....\n.....\n000..\n.....\n.....\n\ndrawup\n#281904\n..0..\n..0..\n..0..\n.....\n.....\n\ndrawright\n#281904\n.....\n.....\n..000\n.....\n.....\n\ndrawdown\n#281904\n.....\n.....\n..0..\n..0..\n..0..\n\ndrawgoal0\ntransparent\n\ndrawgoal1\ntransparent\n\ndrawgoal2\ntransparent\n\ndrawgoal3\ntransparent\n\ndrawgoal4\ntransparent\n\ndrawchange\ntransparent\n\ndrawgood\ntransparent\n\ndrawwrong\ntransparent\n\n(Earth Puzzle)\n\npuzzletilewrongnorm\n#2ff5d6\n0...0\n.0.0.\n.....\n.0.0.\n0...0\n\npuzzletilewrongend\n#2ff5d6\n0...0\n.0.0.\n.....\n.0.0.\n0...0\n\npuzzletilegoodnorm\n#39f52f\n0...0\n.0.0.\n.....\n.0.0.\n0...0\n\npuzzletilewronghidden\n#3d7162 #3a6b5a #2b5146 #478572 #335c50\n31111\n30002\n30002\n30002\n44442\n\npuzzletilegoodhidden\n#386759 #3a6b5a #2b5146 #478572 #335c50\n31111\n30002\n30002\n30002\n44442\n\npuzzletilehidden\ntransparent\n\npuzzlepanel\n#d4ca8e #e5dfbb #c0b25b #27a0fc\n.....\n10002\n10302\n10002\n.....\n\npuzzlestartbadnorm\n#2ff5d6\n\npuzzlestartbadend\n#2ff5d6\n\npuzzlestartgood\n#39f52f\n\nbalancespace\n#c4cbc3\n00000\n00000\n00000\n00000\n00000\n\nnodrawspace\n#c4cbc3\n00000\n00000\n00000\n00000\n00000\n\nimbalancespace\n#c4cbc3\n00000\n00000\n00000\n00000\n00000\n\nimbalancespacerandom\n#c4cbc3\n00000\n00000\n00000\n00000\n00000\n\nclearspace\n#c4cbc3 #d11320\n10001\n01010\n00100\n01010\n10001\n\nclear\ntransparent\n\nnodraw\ntransparent\n\nimbalance\ntransparent\n\nimbalancerandom\ntransparent\n.....\n.....\n.....\n.....\n.....\n\n1left\n#71806f\n.....\n.....\n00...\n.....\n.....\n\n1up\n#71806f\n..0..\n..0..\n.....\n.....\n.....\n\n1right\n#71806f\n.....\n.....\n...00\n.....\n.....\n\n1down\n#71806f\n.....\n.....\n.....\n..0..\n..0..\n\n(Earth - selectors)\n\nselector\n#da7c7c\n00.00\n0...0\n.....\n0...0\n00.00\n\nredselector\nred\n00.00\n0...0\n.....\n0...0\n00.00\n\nnumber1\n#15ae85\n.....\n.0...\n.....\n.....\n.....\n\nnumber2\n#157bae\n.....\n.0.0.\n.....\n.....\n.....\n\nnumber3\n#1520ae\n.....\n.0.0.\n.....\n.0...\n.....\n\nnumber4\n#6615ae\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nnumberQ\n#fdfe10\n.....\n.....\n..0..\n.....\n.....\n\nnumberE\n#0fb209\n.....\n.000.\n.0.0.\n.000.\n.....\n\nnumberEwrong\n#a70f17\n.....\n.000.\n.0.0.\n.000.\n.....\n\nnumberO\n#0fb209\n.....\n.000.\n.0.0.\n.000.\n.....\n\nnumberOwrong\n#a70f17\n.....\n.000.\n.0.0.\n.000.\n.....\n\nnumber0\ntransparent\n\nGood\n#39f52f\n.....\n.....\n..0..\n.....\n.....\n\ngoodtemp\ntransparent\n\nWrong\n#d11320\n.....\n.....\n..0..\n.....\n.....\n\nblocker\nblack\n.....\n.....\n..0..\n.....\n.....\n\nwrongtemp\ntransparent\n\nchange\ntransparent\n\n(Earth - count)\n\ncount0\ntransparent\n\ncount1\ntransparent\n\ncount2\ntransparent\n\ncount3\ntransparent\n\ncount4\ntransparent\n\ncountup\ntransparent\n\ncountdown\ntransparent\n\n(Earth - goals)\n\ngoal0\ntransparent\n\ngoal1\ntransparent\n\ngoal2\ntransparent\n\ngoal3\ntransparent\n\ngoal4\ntransparent\n\ngoale\ntransparent\n\ngoalo\ntransparent\n\nchain\ntransparent\n\nchainstart\ntransparent\n\nchaingoal\ntransparent\n\nchaingoaltemp\ntransparent\n\nchainstarttemp\ntransparent\n\nleftmark\ntransparent\n\nrightmark\ntransparent\n\nupmark\ntransparent\n\ndownmark\ntransparent\n\ndrawsetup1\ntransparent\n\ndrawsetup2\ntransparent\n\ndrawsetup3\ntransparent\n\ndrawsetup4\ntransparent\n\ndrawsetup5\ntransparent\n\nhousewallsecret\ntransparent\n\n(Darkness)\n\nDark\n#d4ca8e\n\nLight\ntransparent\n\nDarkbarrier\ntransparent\n\nlightout\ntransparent\n\nmark\ntransparent\n\nsecret\n#f9d371 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\nsecret2\n#f9d371 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\nsecretsetup\n#f9d371 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\ndrawmark\ntransparent\n\ndrawmarknegative\ntransparent\n\nbasementprogressmark\ntransparent\n\ntowerprogressmark\ntransparent\n\ntowerstairsupblocked\n#587ba2 #4f6e92 #7895b6 #354961 #425a78\n21111\n20003\n20003\n20003\n44443\n\n(messages)\n\nfloor0mesage\ntransparent\n\nfloor1mesage\ntransparent\n\nfloor2mesage\ntransparent\n\nfloor3mesage\ntransparent\n\nfloor4mesage\ntransparent\n\nfloor5mesage\ntransparent\n\nfloor6mesage\ntransparent\n\nfloor7mesage\ntransparent\n\nfloor8mesage\ntransparent\n\nfloor9mesage\ntransparent\n\nbfloor1mesage\ntransparent\n\nbfloor2mesage\ntransparent\n\nbfloor3mesage\ntransparent\n\nbfloor4mesage\ntransparent\n\nbfloor5mesage\ntransparent\n\nbfloor6mesage\ntransparent\n\nbfloor7mesage\ntransparent\n\nbfloor8mesage\ntransparent\n\nbfloor9mesage\ntransparent\n\nmessagemarkup\ntransparent\n\nmessagemarkdown\ntransparent\n\nentrancemesage\ntransparent\n\npuzzle1mesage1\ntransparent\n\npuzzle1mesage2\ntransparent\n\npuzzle2mesage1\ntransparent\n\npuzzle2mesage2\ntransparent\n\npuzzle3mesage1\ntransparent\n\npuzzle3mesage2\ntransparent\n\npuzzle4mesage1\ntransparent\n\npuzzle4mesage2\ntransparent\n\npuzzle5mesage1\ntransparent\n\npuzzle5mesage2\ntransparent\n\npuzzle6mesage1\ntransparent\n\npuzzle6mesage2\ntransparent\n\npuzzle8mesage1\ntransparent\n\npuzzle8mesage2\ntransparent\n\nbpuzzle1mesage\ntransparent\n\nbpuzzle2mesage\ntransparent\n\nbpuzzle3mesage\ntransparent\n\nbpuzzle4mesage\ntransparent\n\nbpuzzle5mesage\ntransparent\n\nbpuzzle6mesage\ntransparent\n\nbpuzzle7mesage\ntransparent\n\nbpuzzle8mesage\ntransparent\n\nbpuzzle9mesage\ntransparent\n\nimbalancemesage1\ntransparent\n\nimbalancemesage2\ntransparent\n\nbalancemesagefinal\ntransparent\n\nbalancemesagefinal2\ntransparent\n\nhiddenmesage\ntransparent\n\nbloomstart\ntransparent\n\nbloom1\n#d94148 #be2633 #96222d\n.....\n.....\n....1\n..012\n00222\n\nbloom2\n#d94148 #be2633 #96222d #ab222c\n.....\n.....\n1...3\n21332\n22122\n\nbloom3\n#be2633 #96222d #ab222c #d52c37\n.....\n2....\n2000.\n2220.\n13310\n\nbloom4\n#d94148 #b12833 #96222d\n....0\n....0\n....0\n..001\n..012\n\nbloom5\n#d94148 #b12833 #96222d #d52c37\n12233\n10323\n01223\n01232\n02322\n\nbloom6\n#96222d #d52c37 #be2633\n00200\n01102\n10010\n00010\n00001\n\nbloom7\n#96222d #d52c37 #be2633 #b5242a\n00100\n20101\n02001\n00111\n00131\n\nbloom8\n#871f27 #9a1f26 #be2633\n2....\n02...\n012..\n012..\n012..\n\nbloom9\n#d94148 #b12833 #96222d\n..010\n..012\n..012\n.0112\n..012\n\nbloom10\n#d94148 #b12833 #96222d #d52c37 #ac2322\n23234\n03234\n03234\n02232\n01232\n\nbloom11\n#d52c37 #5b1111 #7d1717 #ab222c\n00010\n02112\n01001\n31021\n32110\n\nbloom12\n#96222d #d52c37 #871f27 #b5242a\n00131\n01001\n01111\n11002\n00002\n\nbloom13\n#871f27 #9a1f26 #be2633 #d52c37\n0012.\n0012.\n013..\n013..\n03...\n\nbloom14\n#d94148 #b12833 #96222d\n..010\n..012\n.0012\n..000\n....0\n\nbloom15\n#d94148 #b12833 #96222d #d52c37\n01233\n02323\n02323\n32322\n32332\n\nbloom16\n#96222d #d52c37 #ab222c\n22222\n00000\n10001\n11111\n10000\n\nbloom17\n#96222d #d52c37 #b5242a #871f27 #9a1f26\n10001\n11113\n00213\n00113\n01134\n\nbloom18\n#d52c37 #9a1f26\n00...\n10...\n10...\n10...\n0....\n\nbloom19\n#96222d #d52c37\n11010\n.1110\n...10\n.....\n.....\n\nbloom20\n#96222d #d52c37\n11011\n01100\n10111\n.1...\n.....\n\nbloom21\n#96222d #d52c37\n11001\n0111.\n1....\n.....\n.....\n\nfinalleft\n#71806f\n.....\n.....\n00...\n.....\n.....\n\nfinalup\n#71806f\n..0..\n..0..\n.....\n.....\n.....\n\nfinalright\n#71806f\n.....\n.....\n...00\n.....\n.....\n\nfinaldown\n#71806f\n.....\n.....\n.....\n..0..\n..0..\n\nfinalpattern\ntransparent\n\nbloomend\ntransparent\n\nbloomend1\ntransparent\n\ntarget\ngreen\n\n=======\nLEGEND\n=======\n\nman = manup or mandown or manright or manleft\nPlayer = man or selector or redselector or bloomend1\nground = ground1 or ground2 or ground3\npuddle = puddlecenter or puddleleft or puddleright or puddletop or puddlebottom or puddlecornertr or puddlecornertl or puddlecornerbr or puddlecornerbl\nhighpuddletopleft = highpuddletopleft1 or highpuddletopleft2\nhighpuddletopright = highpuddletopright1 or highpuddletopright2 \nhighpuddlebottomleft = highpuddlebottomleft1 or highpuddlebottomleft2\nhighpuddle = highpuddletopleft1 or highpuddletopleft2 or highpuddletopright1 or highpuddletopright2 or highpuddlebottomleft1 or highpuddlebottomleft2 or highpuddlebottomright\nhighground = highground1 or highground2 or highground3\npuzzletilewrong = puzzletilewronghidden or puzzletilewrongnorm\npuzzletilegood = puzzletilegoodhidden or puzzletilegoodnorm\npuzzletile = puzzletilewrong or puzzletilegood or puzzletilehidden\ndirection = leftmark or rightmark or upmark or downmark\npuzzlespace = balancespace or imbalancespace or imbalancespacerandom\ndrawingboard = drawingboardcenter or drawingboardleft or drawingboardright or drawingboardtop or drawingboarddown or drawingboardtopleft or drawingboardtopright or drawingboarddownright or drawingboarddownleft\nhousefloor = housefloornorm or housefloor1 or housefloor2\nhousefloorcrease = housefloor1 or housefloor2\nrose = rose1 or rose2 or rose3 or rose4 or rose5 or rose6 or rose7 or rose8 or rose9 or rose10 \ntowertilepick = towertilecrack1 or towertilecrack2 or towertilecrack3\nblocktile = basementblocktile or basementlineblocktile\ntowerstairsdown = towerstairsdown1 or towerstairsdown2\ntowerstairs = towerstairsdown1 or towerstairsdown2 or towerstairsup\npath = pathupbend or pathrightbend or pathhoriz or pathvert or pathend or pathtri or pathstart\nfloormesage = floor1mesage or floor2mesage or floor3mesage or floor4mesage or floor5mesage or floor6mesage or floor7mesage or floor8mesage or floor9mesage or bfloor1mesage or bfloor2mesage or bfloor3mesage or bfloor4mesage or bfloor5mesage or bfloor6mesage or bfloor7mesage or bfloor8mesage or bfloor9mesage or floor0mesage\nrosetile = rosetile1 or rosetile2 or rosetile3\npuzzlestartbad = puzzlestartbadnorm or puzzlestartbadend\npuzzlestart = puzzlestartbad or puzzlestartgood\n\n# = Darkbarrier and Wall\n* = Wall and chainstarttemp\n@ = Wall and chaingoaltemp\n_ = PhysicalWall\n! = imbalance and wall\n: = imbalancerandom and wall\n⸝ = nodraw and wall\n£ = clearspace\n\n(outside)\nP = manright and pathvert and floor0mesage\n. = groundstart\n- = puddlecenter\nz = pathstart and groundstart\n` = housewall\n~ = houseroof\nh = houseentrance\n꠸ = housewindow\nq = towerwall1\nw = towerwall2\n$ = towerbase\nt = towerentrance\n(inside)\n, = towertile\nl = towertilecrack\n/ = towerpillar2 and towertile\n[ = towerpillar1 and towertile\n{ = towerpillar3 and towertile\n⥁ = towerpillar2special and towertile\n↥ = towerstairsup and towertile\nx = puzzletilewrongnorm and towertile\nᵽ = puzzletilewrongend and housefloornorm and balancemesagefinal\n¥ = puzzletilewrongnorm and towertileoutside and imbalancemesage1\nᵶ = puzzletilewrongnorm and towertile and imbalancemesage2\nᶍ = puzzletilewrongnorm and towertileoutside\n☌ = puzzletilehidden and towertile\ny = puzzlestartbadnorm and dark\nᵯ = puzzlestartbadend and dark and balancemesagefinal2 and end\n↓ = towerstairsdown1\n% = towerwallint\nc = towerwallinttoppermanent\n⏙ = towerstairsupblocked and towertile\n\n(balcony)\n& = highgroundstart\n+ = highpuddlebottomright\n' = towertileoutside\n⤫ = towertileoutside and rosetilestart\n\n\n(roof)\nk = roofpattern and towertileoutside\n\n(basement)\n\" = basementtile\n; = basementlinetile\nb = basemententrance1\nn = basemententrance2 and bpuzzle1mesage\n\\ = basementpillar4 and basementtile\n] = basementpillar5 and basementtile\n} = basementpillar6 and basementtile\n| = basementblocktile\n⚎ = basementphysicalwallperm\nᵹ = puzzletilewronghidden and basementtile\n\n\n(puzzle tiles/ messages)\n\n⅕ = puzzletilewrongnorm and towertile and puzzle2mesage1\n⅙ = puzzletilewrongnorm and towertileoutside and puzzle2mesage2\n⅛ = puzzletilewrongnorm and towertile and puzzle3mesage1\n⅔ = puzzletilewrongnorm and towertile and puzzle3mesage2\n⅖ = puzzletilewrongnorm and towertile and puzzle4mesage1\n⅗ = puzzletilewrongnorm and towertile and puzzle4mesage2\n⅘ = puzzletilewrongnorm and towertile and puzzle5mesage1\n⅜ = puzzletilewrongnorm and towertile and puzzle5mesage2\n⅚ = puzzletilewrongnorm and towertile and puzzle6mesage1\n⅐ = puzzletilewrongnorm and towertileoutside and puzzle6mesage2\n⅝ = puzzletilewrongnorm and towertile and puzzle8mesage1\n↉ = puzzletilewrongnorm and towertile and puzzle8mesage2\n⅑ = towerstairsdown1 and bpuzzle2mesage\n⅒ = towerstairsdown2 and bpuzzle3mesage\n⅞ = towerstairsdown2 and bpuzzle4mesage\n⥊ = towerstairsdown2 and bpuzzle5mesage\n⥋ = towerstairsdown2 and bpuzzle6mesage\n⥌ = towerstairsdown2 and bpuzzle7mesage\n⥍ = towerstairsdown2 and bpuzzle8mesage\n⥎ = towerstairsdown2 and bpuzzle9mesage\n⥏ = towerentrance and puzzle1mesage1\n¢ = puzzletilehidden and puzzle1mesage2 and towertile\n\n\n\n(earth)\n(s = selector and goal1 and count0 and number1 and wrongtemp and puzzlespace)\n0 = balancespace and goal0 and count0 and number0 and goodtemp and dark\n1 = balancespace and goal1 and count0 and number1 and wrongtemp and dark\n2 = balancespace and goal2 and count0 and number2 and wrongtemp and dark\n3 = balancespace and goal3 and count0 and number3 and wrongtemp and dark\n4 = balancespace and goal4 and count0 and number4 and wrongtemp and dark\n? = balancespace and count0 and numberQ and goodtemp and dark\ne = balancespace and goale and count0 and numbere and goodtemp and dark\no = balancespace and goalo and count0 and numberowrong and wrongtemp and dark\n(goals with blocker and no number)\n5 = balancespace and goal0 and count0 and goodtemp and dark and blocker\n6 = balancespace and goal1 and count0 and wrongtemp and dark and blocker\n7 = balancespace and goal2 and count0 and wrongtemp and dark and blocker\n8 = balancespace and goal3 and count0 and wrongtemp and dark and blocker\n9 = balancespace and goal4 and count0 and wrongtemp and dark and blocker\n\n(drawing)\na = secret\ns = drawingboardcenter and count0 and drawgoal0\nd = drawingboardcenter and count0 and drawgoal1\nf = drawingboardcenter and count0 and drawgoal2\ng = drawingboardcenter and count0 and drawgoal3\nj = drawingboardcenter and count0 and drawgoal4\nm = housewallintdown\nu = housefloornorm\ni = housefloorstart\nr = rose1\nÐ = housewallintleft and housewallsecret\nᶃ = hiddendoor and hiddenmesage\n\nᶊ = end\n\n► = bloomstart and balancespace and blocker\n◄ = target and balancespace and blocker\n¤ = balancespace and goal0 and count0 and goodtemp and blocker and finalpattern\n┰ = balancespace and goal0 and count0 and goodtemp and blocker\n\n\n=======\nSOUNDS\n=======\n\nsfx1 50548908\nsfx2 70091308\nsfx3 2038108\nsfx4 55009308\nsfx5 88082508\nsfx6 59276308\nsfx7 68756908\nsfx8 20891708\nsfx9 71493108\nsfx10 34050308\n\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ndrawgood, drawwrong, target, bloomstart\nmark, drawmark, drawmarknegative, housefloorstart\nground1, ground2, ground3, groundstart, towertile, towertilecrack1, towertilecrack2, towertilecrack,towertilehalflight,towertileoutside,towertilecrack3,end, balancespace, drawingboardcenter, drawingboardleft, drawingboardright, drawingboardtop, drawingboarddown, drawingboardtopleft, drawingboardtopright, drawingboarddownright, drawingboarddownleft, imbalancespace, imbalancespacerandom, housefloor, blocktile, nodrawspace, clearspace\npath, pathstart, messagemarkup, messagemarkdown\nbasementtile, basementlinetile, puddlecenter, puddleleft, puddleright, puddletop, puddlebottom, puddlecornertr, puddlecornertl, puddlecornerbr, puddlecornerbl\ngood, wrong, goodtemp, wrongtemp puzzletilewrong, puzzletilegood, puzzlestartbad, puzzlestartgood, puzzletilehidden, puzzletilewrongend\nLight, Darkbarrier, number1, number2, number3, number4, number0, numberQ, numbere, numbero, numberewrong, numberowrong, chainstart, chaingoal, chaingoaltemp, chainstarttemp, imbalance, imbalancerandom, nodraw, floormesage, balancemesagefinal2\nchain, leftmark, rightmark, upmark, downmark, countup, countdown, roofpattern,imbalancemesage1, imbalancemesage2, balancemesagefinal, basementpattern, finalpattern\n1Left, drawleft, roofleft, baseleft, finalleft,clear\n1right, drawright, roofright, baseright, finalright\n1up, drawup, roofup, baseup, finalup,towerwallint, Physicalwall, basementwall, basementphysicalwall, basementphysicalwallperm\n1down, drawdown, roofdown, basedown, finaldown\ncount0, count1, count2, count3, count4, drawsetup1, drawsetup2, drawsetup3, drawsetup4, drawsetup5, highgroundstart,highground1, highground2, highground3, highpuddletopright1,highpuddletopright2,highpuddletopleft1,highpuddletopleft2, highpuddlebottomleft1,highpuddlebottomleft2, highpuddlebottomright, towerbalconytopleft, towerbalconytopright\nchange, drawchange, houseentrance, towerentrance, towerentrancefront, towerstairsup, towerstairsdown1, towerstairsuptemp, towerstairsdowntemp,towerwallintleftmid, towerwallintlefttop,towerwallintrightmid, towerwallintrighttop, towerwallinttoppermanent, basementstairsdown, basementstairsdowntemp, secret, secret2, hiddendoortemp, hiddendoor,basementwallrightmid, basementwallrighttop, basementwallleftmid, basementwalllefttop, towerbalconytoprightroof, towerbalconytopleftroof, basemententrance, basemententrance1, basemententrance2, basementstairsdownblocked, towerstairsdown2, towerstairsupblocked, dirttile\nPlayer, Wall, housewall, housewallcrack, housewallside,houseroof, houseroofside, housewindow, towerbase, towerbaseleft, towerbaseright, towerpillar1, towerpillar2, towerpillar2special, towerpillar3,towerwallintleft, towerwallintright, towerwallbottomleft, towerwallbottomright, towerwallinttop, towerwallintbottom,towerwallinttoppermanent, towerbalconyleft, towerbalconyright, towerbalconytop, housewallinttop, housewallintright, housewallintleft, housewallintdown, rose, basementwallbottomleft, basementwallbottomright, basementwallleft, basementwallright, towerwall1, towerwall2, towerbalconyrightroof, towerbalconyleftroof, basementpillar1, basementpillar2, basementpillar3, basementpillar4, basementpillar5, basementpillar6, bloomend, rosetile, rosetilestart, towerwall1right, towerwall1left, towerwall2right, towerwall2left\ngoal0, goal1, goal2, goal3, goal4, goale, goalo, drawgoal0, drawgoal1, drawgoal2, drawgoal3, drawgoal4, puzzlepanel,towerpillartop2, towerpillartop2special, towerpillarmid3, towerpillartop3, basementpillartop2, basementpillarmid3, basementpillartop3, basementpillartop4, basementpillarmid6, basementpillartop6, towerpillartop1\nDark, light, lightout, halftiletopright, halftiletopleft, halftilebottomright, halftilebottomleft\nblocker, basementprogressmark, towerprogressmark, bloom1, bloom2, bloom3, bloom4, bloom5, bloom6, bloom7, bloom8, bloom9, bloom10, bloom11, bloom12, bloom13,bloom14, bloom15, bloom16, bloom17, bloom18, bloom19, bloom20, bloom21\npuzzle1mesage1, puzzle1mesage2, puzzle2mesage1, puzzle2mesage2, puzzle3mesage1, puzzle3mesage2, puzzle4mesage1, puzzle4mesage2, puzzle5mesage1, puzzle5mesage2, puzzle6mesage1, puzzle6mesage2, puzzle8mesage1, puzzle8mesage2, bpuzzle1mesage, bpuzzle2mesage, bpuzzle3mesage, bpuzzle4mesage, bpuzzle5mesage, bpuzzle6mesage, bpuzzle7mesage, bpuzzle8mesage, bpuzzle9mesage, entrancemesage, hiddenmesage, housewallsecret,secretsetup\n\n======\nRULES \n====== \n\n(World Creation)\n\n[groundstart] -> [random ground]\n\n[rosetilestart] -> [random rosetile]\n\n[basementtile| towertileoutside roofpattern] -> [basementtile| basementtile basementpattern]\n\nvertical[pathvert | pathstart] -> [pathvert|pathvert]\nhorizontal[pathvert|pathstart] -> [pathrightbend|pathhoriz]\nhorizontal[pathhoriz|pathstart] -> [pathhoriz|pathhoriz]\nup[pathhoriz|pathstart] -> [pathtri|pathvert]\nright[pathtri|no path] -> [pathupbend|no path]\nup[pathvert|no path] -> [pathend|no path]\n\nright [puddlecenter| no puddle] -> [puddlecenter| puddleright]\nleft [puddlecenter| no puddle] -> [puddlecenter| puddleleft]\nup [puddlecenter| no puddle] -> [puddlecenter| puddletop]\ndown [puddlecenter| no puddle] -> [puddlecenter| puddlebottom]\n\nup[puddleright| no puddle] -> [puddleright| puddlecornertr]\ndown[puddleright| no puddle] -> [puddleright| puddlecornerbr]\nup[puddleleft| no puddle] -> [puddleleft| puddlecornertl]\ndown[puddleleft| no puddle] -> [puddleleft| puddlecornerbl]\n\nleft[houseroof| no houseroof] -> [houseroof| houseroofside]\nleft[housewall|ground] -> [housewallside| ground]\n\nleft[housewindow|]-> [housewindow|housewallcrack]\n\ndown[towerentrance | ground] -> [towerentrance | towerentrancefront]\n\nleft[towerwall1|ground] -> [towerwall1left|ground]\nleft[towerwall2|ground] -> [towerwall2left|ground]\nleft[towerbase|ground] -> [towerbaseleft|ground]\n\nright[towerwall1|ground] -> [towerwall1right|ground]\nright[towerwall2|ground] -> [towerwall2right|ground]\nright[towerbase|ground] -> [towerbaseright|ground]\n\ndown[towertileoutside|towertile] -> [towertileoutside|towertilehalflight]\n\n[towerwallint|basementtile] -> [basementwall|basementtile]\n[basementwall|physicalwall] -> [basementwall|basementphysicalwall]\n[basementtile|physicalwall] -> [basementtile|basementphysicalwall]\n[basementphysicalwall|physicalwall] -> [basementphysicalwall|basementphysicalwall]\n\n[towertile|basementtile] -> [basementtile|basementtile]\n\n[towertile|basementlinetile] -> [basementlinetile|basementlinetile]\n\n[towerpillar1|basementtile] -> [basementpillar1|basementtile]\n[towerpillar2|basementtile] -> [basementpillar2|basementtile]\n[towerpillar3|basementtile] -> [basementpillar3|basementtile]\n\nup[towerpillar1|] -> [towerpillar1|towerpillartop1]\nup[towerpillar2|] -> [towerpillar2|towerpillartop2]\nup[towerpillar2special|] -> [towerpillar2special|towerpillartop2special]\nup[towerpillar3||] ->[towerpillar3|towerpillarmid3|towerpillartop3]\nup[basementpillar2|] -> [basementpillar2|basementpillartop2]\nup[basementpillar3||] -> [basementpillar3|basementpillarmid3|basementpillartop3]\nup[basementpillar4|] -> [basementpillar4|basementpillartop4]\nup[basementpillar6||] -> [basementpillar6|basementpillarmid6|basementpillartop6]\n\ndown[towerwallint|towertile] -> [towerwallinttop|towertile]\nup[towerwallint|towertile] -> [towerwallintbottom|towertile]\nleft[towerwallinttop|towertile] -> [towerwallintright|towertile]\nright[towerwallinttop|towertile] -> [towerwallintleft|towertile]\nleft[towerwallintbottom|towertile] -> [towerwallbottomright|towertile]\nright[towerwallintbottom|towertile] -> [towerwallbottomleft|towertile]\nup[towerwallintleft|]-> [towerwallintleft|towerwallintleftmid]\nup[towerwallintright|]-> [towerwallintright|towerwallintrightmid]\nleft[towerwallintleftmid|] -> [towerwallintleftmid|towerwallintlefttop]\nright[towerwallintrightmid|] -> [towerwallintrightmid|towerwallintrighttop]\n\n\ndown[towertileoutside|towerwallint|towerwall1] -> [towertileoutside|halftilebottomleft towerwall2left|towerwall1]\ndown[towertileoutside|towerwallint|towerwall2] -> [towertileoutside|halftilebottomleft towerwall1left|towerwall2]\nleft[halftilebottomleft towerwall1left|towertileoutside] -> [halftilebottomright towerwall1right|towertileoutside]\nleft[halftilebottomleft towerwall2left|towertileoutside] -> [halftilebottomright towerwall2right|towertileoutside]\nup[towerwallint|towertileoutside] -> [towerwall1|towertileoutside]\n\nup[towertileoutside|towerwallint|highgroundstart]->[towertileoutside|halftiletopleft highgroundstart|highgroundstart]\nleft[halftiletopleft|towertileoutside]->[halftiletopright |towertileoutside]\nup[towertileoutside|towerwallint]->[towertileoutside|highgroundstart]\n\nup[towerbaseleft|towerwall1] -> [towerbaseleft|towerwall1left]\nup[towerbaseleft|towerwall2] -> [towerbaseleft|towerwall2left]\nup[towerbaseright|towerwall1] -> [towerbaseright|towerwall1right]\nup[towerbaseright|towerwall2] -> [towerbaseright|towerwall2right]\nvertical[towerwall1right|towerwall2] -> [towerwall1right|towerwall2right]\nvertical[towerwall2right|towerwall1] -> [towerwall2right|towerwall1right]\nvertical[towerwall1left|towerwall2] -> [towerwall1left|towerwall2left]\nvertical[towerwall2left|towerwall1] -> [towerwall2left|towerwall1left]\n\nup [towertileoutside | towertile] -> [towertileoutside| towertileoutside]\n\n[highgroundstart] -> [random highground]\n\nleft [highpuddlebottomright| no highpuddle] -> [highpuddlebottomright|random highpuddlebottomleft]\nup [highpuddlebottomright| no highpuddle ] -> [highpuddlebottomright|random highpuddletopright]\nup [highpuddlebottomleft| no highpuddle ] -> [highpuddlebottomleft|random highpuddletopleft]\n\nleft[towertileoutside | no halftiletopleft highground] -> [towertileoutside|no halftiletopleft towerbalconyleft]\nright[towertileoutside |no halftiletopright highground] -> [towertileoutside|no halftiletopright towerbalconyright]\nup[towertileoutside | highground] -> [towertileoutside|towerbalconytop]\nup[towerbalconyleft | highground] -> [towerbalconyleft|towerbalconytopleft]\nup[towerbalconyright | highground] -> [towerbalconyright|towerbalconytopright]\n\nleft[towerbalconytop | highground] -> [towerbalconytop|towerbalconytopleftroof]\nright[towerbalconytop | highground] -> [towerbalconytop|towerbalconytoprightroof]\ndown[towerbalconytopleftroof|towerbalconytop] -> [towerbalconytopleftroof| towerbalconyleftroof]\ndown[towerbalconytoprightroof|towerbalconytop] -> [towerbalconytoprightroof|towerbalconyrightroof]\n\nleft[roofpattern|roofpattern] -> [roofpattern roofleft| roofpattern roofright]\nup[roofpattern|roofpattern] -> [roofpattern roofup| roofpattern roofdown]\n\nleft[finalpattern|finalpattern] -> [finalpattern finalleft| finalpattern finalright]\nup[finalpattern|finalpattern] -> [finalpattern finalup| finalpattern finaldown]\n\nleft[basementpattern|basementpattern] -> [basementpattern baseleft| basementpattern baseright]\nup[basementpattern|basementpattern] -> [basementpattern baseup| basementpattern basedown]\n\nup[puzzletilewrong no basementtile no basementlinetile | no puzzlepanel] -> [puzzletilewrong|puzzlepanel]\n\n[imbalance | balancespace] -> [imbalance | imbalancespace]\n[imbalancerandom | balancespace] -> [imbalancerandom | imbalancespacerandom]\n[imbalancespace | balancespace] -> [imbalancespace | imbalancespace]\n[imbalancespacerandom | balancespace] -> [imbalancespacerandom | imbalancespacerandom]\n[nodraw | balancespace] -> [nodraw|nodrawspace blocker]\n[nodrawspace|balancespace] -> [nodrawspace|nodrawspace blocker]\n\nleft[drawingboardcenter|housefloor] -> [drawingboardleft|housefloor]\nright[drawingboardcenter|housefloor] -> [drawingboardright|housefloor]\nup[drawingboardcenter|housefloor] -> [drawingboardtop|housefloor]\ndown[drawingboardcenter|housefloor] -> [drawingboarddown|housefloor]\nup[drawingboardleft|housefloor] -> [drawingboardtopleft|housefloor]\nup[drawingboardright|housefloor] -> [drawingboardtopright|housefloor]\ndown[drawingboardleft|housefloor] -> [drawingboarddownleft|housefloor]\ndown[drawingboardright|housefloor] -> [drawingboarddownright|housefloor]\n\n[housefloorstart] -> [random housefloorcrease]\nright [housewallintdown|housefloor] -> [housewallintright|housefloor]\nleft[housewallintdown|housefloor]-> [housewallintleft|housefloor]\ndown [housewallintdown|housewallintdown|housefloor] -> [housewallinttop|housewallinttop|housefloor]\nleft [housewallinttop|housewallintdown] -> [housewallinttop|housewallintright]\nright [housewallinttop|housewallintdown] -> [housewallinttop|housewallintleft]\n\nright[rose1||||] -> [rose1|rose2|rose3|rose4|rose5]\ndown[rose1|] -> [rose1|rose6]\nright[rose6||||] -> [rose6|rose7|rose8|rose9|rose10]\n\nup[basementtile|basementwall] -> [basementtile|basementwallleft]\nleft[basementwallleft|basementtile] -> [basementwallright|basementtile]\nleft[basementwallleft|basementblocktile] -> [basementwallright|basementblocktile]\nup[basementwallleft|basementphysicalwall]->[basementwallleft|basementwallleftmid]\nup[basementwallright|basementphysicalwall]->[basementwallright|basementwallrightmid]\nup[basementwallleftmid|no basementphysicalwallperm basementphysicalwall]->[basementwallleftmid|basementwalllefttop]\nup[basementwallrightmid|no basementphysicalwallperm basementphysicalwall]->[basementwallrightmid|basementwallrighttop]\ndown[basementtile|basementwall] -> [basementtile|basementwallbottomleft]\nleft[basementwallbottomleft|basementtile] -> [basementwallbottomright|basementtile]\nleft[basementwallbottomleft|basementblocktile] -> [basementwallbottomright|basementblocktile]\n\nvertical [ basementlinetile|basementblocktile] -> [basementlinetile|basementlineblocktile]\n[basementlinetile|basementtile puzzletilewrong] -> [basementlinetile| basementlinetile puzzletilewrong]\n\n[basementtile|towerstairsdown1] -> [basementtile|basementstairsdownblocked]\n\n[towertilecrack] -> [random towertilepick]\n\nhorizontal[towerentrance no puzzle1mesage1|puzzle1mesage1] -> [towerentrance no puzzle1mesage1| no puzzle1mesage1]\n\nup[rosetile| |rosetile] -> [rosetile| dirttile| rosetile]\n\ndown [basemententrance|||||||housewallsecret] -> [basemententrance|||||||secretsetup]\n\n[secretsetup] up [houseentrance||drawgoal0||||] -> [secretsetup] up [houseentrance||drawsetup1|drawsetup2|drawsetup3|drawsetup4|drawsetup5]\n\nright[drawsetup1||||||] -> [drawgoal2 count0|drawgoal1|drawgoal0|drawgoal0|drawgoal0|drawgoal0|drawgoal0]\nright[drawsetup2||||||] -> [drawgoal1 count0|drawgoal0|drawgoal0|drawgoal0|drawgoal2|drawgoal2|drawgoal0]\nright[drawsetup3||||||] -> [drawgoal0 count2|drawgoal2|drawgoal2|drawgoal0|drawgoal2|drawgoal2|drawgoal0]\nright[drawsetup4||||||] -> [drawgoal0 count3|drawgoal2|drawgoal2|drawgoal0|drawgoal0|drawgoal0|drawgoal1]\nright[drawsetup5||||||] -> [drawgoal0 count2|drawgoal0|drawgoal0|drawgoal0|drawgoal0|drawgoal1|drawgoal2]\n\n[secretsetup housewallintleft] -> [secret2 no housewallintleft]\n\n\n(Transportation Messages)\n[action man puzzle2mesage1] -> [action man] sfx1 message I've been watching you\n[action man puzzle2mesage2] -> [action man] sfx4 message Every connection draws us closer\n[action man puzzle3mesage1] -> [action man] sfx7 message If you don't want to, its ok\n[action man puzzle3mesage2] -> [action man] sfx4 message All you need to do is be here \n[action man puzzle4mesage1] -> [action man] sfx5 message I'll be waiting at the top\n[action man puzzle4mesage2] -> [action man] sfx6 message Take as much time as you need\n[action man puzzle5mesage1] -> [action man] sfx2 message My mind is above and heart below\n[action man puzzle5mesage2] -> [action man] sfx2 message Both parts equally important\n[action man puzzle6mesage1] -> [action man] sfx7 message I so enjoy you being here\n[action man puzzle6mesage2] -> [action man] sfx1 message Can you see it in my eyes?\n[action man puzzle8mesage1] -> [action man] sfx8 message I'd like it if you stay\n[action man puzzle8mesage2] -> [action man] sfx10 message I trust you feel the same\n[action man bpuzzle2mesage] -> [action man] sfx5 message I'll be waiting at the bottom\n[action man bpuzzle3mesage] -> [action man] sfx6 message I can't wait till you're here\n[action man bpuzzle4mesage] -> [action man] sfx10 message I know you feel the same\n[action man bpuzzle5mesage] -> [action man] sfx8 message I can't solve your problems\n[action man bpuzzle6mesage] -> [action man] sfx2 message But I will see them through with you\n[action man bpuzzle7mesage] -> [action man] sfx9 message I see you\n[action man bpuzzle8mesage] -> [action man] sfx9 message And you see me\n[action man bpuzzle9mesage] -> [action man] sfx3 message Where have you been?\n[action man puzzle1mesage2] -> [action man] sfx6 message Heart and mind together as one\n\n\n[action man imbalancemesage1] -> [action man imbalancemesage1] sfx9 message You can only do so much\n[action man imbalancemesage2] -> [action man imbalancemesage2] sfx9 message You can leave it if you want to\n[action man balancemesagefinal] -> [action man balancemesagefinal] sfx1 message I've been watching you... From thee empty floor\n[action selector balancemesagefinal2] -> [action selector balancemesagefinal2] sfx4 message Look me in the eyes\n\n(Transportation)\n\n[> man floormesage | puzzlepanel] -> [man floormesage| puzzlepanel]\n\n\nup [towerentrance man floormesage puzzle1mesage1 | | | towerentrance | ] -> [towerentrance | | | towerentrance | man floormesage messagemarkup] sfx3 message Where have you been?\nup [towerentrance man floormesage | | | towerentrance | ] -> [towerentrance | || towerentrance | man floormesage messagemarkup]\ndown [towerentrance man floormesage | | | towerentrance | ] -> [towerentrance | | | towerentrance | man floormesage messagemarkdown]\n\n [action man puzzletilewrongend] [puzzlestartbadend] -> [puzzletilewrongend] [selector puzzlestartbadend light] checkpoint\n [action selector puzzlestartbadend] [puzzletilewrongend] -> [puzzlestartbadend lightout] [mandown puzzletilewrongend] checkpoint\n\nhorizontal [action man puzzletile| ... | puzzlestart] -> [puzzletile|...| puzzlestart selector light] checkpoint\n\nhorizontal [action selector puzzlestart|...| puzzletile] -> [puzzlestart lightout|...|puzzletile mandown] checkpoint\n\n up [action man floormesage towerstairsup|...|towerstairsdown] -> [towerstairsup|...|towerstairsdown messagemarkup man floormesage ]\ndown [action man floormesage towerstairsdown|...|towerstairsup] -> [towerstairsdown|...|towerstairsup messagemarkdown man floormesage]\n[towerstairsuptemp no man] -> [towerstairsup]\n[towerstairsdowntemp no man] -> [towerstairsdown2]\n\n[houseentrance man floormesage no mark] [houseentrance no man] -> [houseentrance] [ houseentrance man floormesage mark]\n\n[hiddendoor man floormesage no mark hiddenmesage] [hiddendoor no man] -> [hiddendoor] [ hiddendoor man floormesage mark] sfx6 message My heart is yours\n[hiddendoor man floormesage no mark] [hiddendoor no man] -> [hiddendoor] [ hiddendoor man floormesage mark]\n\n[basemententrance man floormesage no mark] [basemententrance1 no man] -> [basemententrance] [basemententrance1 man floormesage mark messagemarkdown]\n[basemententrance1 man floormesage no mark] [basemententrance no man] -> [basemententrance1] [basemententrance man floormesage mark messagemarkup]\n[basemententrance2 man floormesage no mark bpuzzle1mesage] [basemententrance2 no man bpuzzle1mesage] -> [basemententrance2] [basemententrance2 man floormesage mark] sfx6 message My mind is yours\n[basemententrance2 man floormesage no mark] [basemententrance2 no man] -> [basemententrance2] [basemententrance2 man floormesage mark]\n\ndown [down man blocktile floormesage | blocktile] -> [man blocktile floormesage | blocktile]\nup [up man blocktile floormesage | blocktile] -> [man blocktile floormesage | blocktile]\n\n [ > man floormesage] -> [> man > floormesage]\n late [man] [floormesage no man] -> [man floormesage] []\n \n \n [> bloomend1] -> [bloomend1]\n(darkness)\n\n[light | dark] -> [light|light]\n\n[lightout | light] -> [lightout | lightout]\n\n[lightout] -> [dark]\n\n(man movement)\n[left man] -> [left manleft]\n[right man] -> [right manright]\n[up man] -> [up manup]\n[down man] -> [down mandown]\n\n(drawing)\n\nleft [left man drawingboard no drawleft | drawingboard] -> [drawingboard drawleft drawmark | drawingboard drawright man drawmark]\nright [right man drawingboard no drawright | drawingboard] -> [drawingboard drawright drawmark | drawingboard drawleft man drawmark]\nup [up man drawingboard no drawup | drawingboard] -> [drawingboard drawup drawmark| drawingboard drawdown man drawmark]\ndown [down man drawingboard no drawdown | drawingboard] -> [drawingboard drawdown drawmark| drawingboard drawup man drawmark]\n\nleft [left man drawingboard drawleft | drawingboard drawright] -> [drawingboard no drawleft drawmarknegative| drawingboard no drawright man drawmarknegative]\nright [right man drawingboard drawright | drawingboard drawleft] -> [drawingboard no drawright drawmarknegative| drawingboard no drawleft man drawmarknegative]\nup [up man drawingboard drawup | drawingboard drawdown] -> [drawingboard no drawup drawmarknegative| drawingboard no drawdown man drawmarknegative]\ndown [down man drawingboard drawdown | drawingboard drawup] -> [drawingboard no drawdown drawmarknegative| drawingboard no drawup man drawmarknegative]\n\n[count0 drawmark] -> [count1 drawchange]\n[count1 drawmark] -> [count2 drawchange]\n[count2 drawmark] -> [count3 drawchange]\n[count3 drawmark] -> [count4 drawchange]\n\n[count4 drawmarknegative] -> [count3 drawchange]\n[count3 drawmarknegative] -> [count2 drawchange]\n[count2 drawmarknegative] -> [count1 drawchange]\n[count1 drawmarknegative] -> [count0 drawchange]\n\n[count4 drawgoal4] [drawchange] -> [count4 drawgoal4 drawgood] [drawchange]\n[count3 drawgoal3] [drawchange] -> [count3 drawgoal3 drawgood] [drawchange]\n[count2 drawgoal2] [drawchange] -> [count2 drawgoal2 drawgood] [drawchange]\n[count1 drawgoal1] [drawchange] -> [count1 drawgoal1 drawgood] [drawchange]\n[count0 drawgoal0] [drawchange] -> [count0 drawgoal0 drawgood] [drawchange]\n\n[drawingboard no drawgood] [drawchange] -> [drawingboard drawwrong] [drawchange]\n\n[secret] -> [basementstairsdowntemp]\n[secret2] -> [hiddendoortemp]\n\n[basementstairsdowntemp] [drawingboard drawwrong]-> [secret] [drawingboard drawwrong]\n[basementstairsdowntemp] [drawchange]-> [basemententrance] [drawchange]\n[basementstairsdowntemp] -> [secret]\n[hiddendoortemp] [drawingboard drawwrong]-> [secret2] [drawingboard drawwrong]\n[hiddendoortemp] [drawchange]-> [hiddendoor] [drawchange]\n[hiddendoortemp] -> [secret2]\n\n\n[drawingboard drawgood] -> [drawingboard]\n[ > man | secret] -> [ man | secret]\n[ > man | secret2] -> [ man | secret2]\n[ > man | basementphysicalwall] -> [man | basementphysicalwall]\n\n(Earth)\n\n(clearing)\n[action selector clearspace| balancespace] -> [selector clearspace | clear balancespace]\n\nstartloop\n\n[clear 1right] -> [clear]\n[clear 1down] -> [clear]\n[clear 1up] -> [clear]\n[clear | balancespace] -> [clear |balancespace clear]\n\nendloop\n\n[clear] -> [count0 wrong change]\n\n(selector controls)\n\n[Action selector] -> [redselector]\n[Action redselector] -> [selector]\n\n[> redselector | puzzlestart] -> [redselector | puzzlestart]\n[> redselector nodrawspace] -> [redselector nodrawspace]\n[> redselector | clearspace] -> [redselector | clearspace]\n\n[wrongtemp light] -> [wrong light]\n[goodtemp light] -> [good light]\n[good dark] -> [goodtemp dark]\n[wrong dark] -> [wrongtemp dark]\n\n(marking for connection)\nright [right redselector balancespace | balancespace] -> right[redselector balancespace rightmark|balancespace leftmark]\nleft [left redselector balancespace | balancespace] -> left[redselector balancespace leftmark|balancespace rightmark]\nup [up redselector balancespace | balancespace] -> up[redselector balancespace upmark|balancespace downmark]\ndown [down redselector balancespace | balancespace] -> down[redselector balancespace downmark|balancespace upmark]\n\n(marking for connection in imbalance)\nright [right redselector imbalancespace | imbalancespace] -> right[redselector imbalancespace rightmark|imbalancespace rightmark]\nleft [left redselector imbalancespace | imbalancespace] -> left[redselector imbalancespace leftmark|imbalancespace leftmark]\nup [up redselector imbalancespace | imbalancespace] -> up[redselector imbalancespace upmark|imbalancespace upmark]\ndown [down redselector imbalancespace | imbalancespace] -> down[redselector imbalancespace downmark|imbalancespace downmark]\n\n(marking for connection in imbalance random)\nright [right redselector imbalancespacerandom | imbalancespacerandom] -> right[redselector imbalancespacerandom rightmark|imbalancespacerandom random direction]\nleft [left redselector imbalancespacerandom | imbalancespacerandom] -> left[redselector imbalancespacerandom leftmark|imbalancespacerandom random direction]\nup [up redselector imbalancespacerandom | imbalancespacerandom] -> up[redselector imbalancespacerandom upmark|imbalancespacerandom random direction]\ndown [down redselector imbalancespacerandom | imbalancespacerandom] -> down[redselector imbalancespacerandom downmark|imbalancespacerandom random direction]\n\n\n(making connection)\n[puzzlespace leftmark no 1left] -> [puzzlespace 1left countup]\n[puzzlespace leftmark 1left] -> [puzzlespace no 1left countdown]\n[puzzlespace rightmark no 1right] -> [puzzlespace 1right countup]\n[puzzlespace rightmark 1right] -> [puzzlespace no 1right countdown]\n[puzzlespace upmark no 1up] -> [puzzlespace 1up countup]\n[puzzlespace upmark 1up] -> [puzzlespace no 1up countdown]\n[puzzlespace downmark no 1down] -> [puzzlespace 1down countup]\n[puzzlespace downmark 1down] -> [puzzlespace no 1down countdown]\n\n(changing the count)\n[count0 countup] -> [count1 change]\n[count1 countup] -> [count2 change]\n[count2 countup] -> [count3 change]\n[count3 countup] -> [count4 change]\n[count4 countdown] -> [count3 change]\n[count3 countdown] -> [count2 change]\n[count2 countdown] -> [count1 change]\n[count1 countdown] -> [count0 change]\n\n(good and bad)\n\n[change numbere] -> [change numberewrong]\n[change numbero] -> [change numberowrong]\n[change good] -> [wrong]\n\n\n[count1 goal1 no goodtemp] -> [count1 goal1 good]\n[count2 goal2 no goodtemp] -> [count2 goal2 good]\n[count3 goal3 no goodtemp] -> [count3 goal3 good]\n[count4 goal4 no goodtemp] -> [count4 goal4 good]\n[count0 goal0 no goodtemp] -> [count0 goal0 good]\n[numberQ no goodtemp] -> [numberQ good]\n\n[count1 goalo no goodtemp numberowrong] -> [count1 goalo good numbero]\n[count2 goale no goodtemp numberewrong] -> [count2 goale good numbere]\n[count3 goalo no goodtemp numberowrong] -> [count3 goalo good numbero]\n[count4 goale no goodtemp numberewrong] -> [count4 goale good numbere]\n[count0 goale no goodtemp numberewrong] -> [count0 goale good numbere]\n\n\n(Chain)\n[chain] -> []\n\n[chainstarttemp | light] -> [chainstart | light]\n[chainstart | dark] -> [chainstarttemp | dark]\n[chaingoaltemp | light] -> [chaingoal | light]\n[chaingoal | dark] -> [chaingoaltemp | dark]\n\n[chainstart | puzzlespace] -> [chainstart | puzzlespace chain]\n[chainstart | imbalancespace] -> [chainstart | imbalancespace chain]\n[chainstart | imbalancespacerandom] -> [chainstart | imbalancespacerandom chain]\n\nstartloop\n\nright [chain 1right | ] -> [chain 1right | chain]\nleft [chain 1left | ] -> [chain 1left | chain]\nup [chain 1up | ] -> [chain 1up | chain]\ndown [chain 1down | ] -> [chain 1down | chain]\n\nendloop\n\n[chain | chaingoal] -> [chain | chaingoal chain]\n\n[mark no man] -> []\n[drawmark] -> []\n[drawmarknegative] -> []\n[drawchange] -> []\n\n(chacking for solution)\nhorizontal[puzzlestartbad|dark|...|puzzletilewrong] -> [puzzlestartbad|dark|...|puzzletilewrong mark]\nhorizontal[puzzlestartbad|...|puzzletilewrong] [chaingoal no chain] -> [puzzlestartbad|...|puzzletilewrong mark] [chaingoal no chain] \nhorizontal[puzzlestartbad|...|puzzletilewrong] [wrong] -> [puzzlestartbad|...|puzzletilewrong mark] [wrong]\n\nhorizontal[puzzletilewrongnorm no mark|...|puzzlestartbad] -> [puzzletilegoodnorm|...|puzzlestartgood]\nhorizontal[puzzletilewronghidden no mark|...|puzzlestartbad] -> [puzzletilegoodhidden|...|puzzlestartgood]\n\nup [puzzletilegood||||] -> [puzzletilegood||||basementprogressmark]\nleft [puzzletilegood||] -> [puzzletilegood||basementprogressmark]\n[basementprogressmark|basementstairsdownblocked] -> [basementprogressmark|towerstairsdown2]\n\n(messages)\n[man floor1mesage messagemarkup] -> [man floor2mesage] message Floor 2\n[man floor2mesage messagemarkup] -> [man floor3mesage] message Floor 3\n[man floor3mesage messagemarkup] -> [man floor4mesage] message Floor 4\n[man floor4mesage messagemarkup] -> [man floor5mesage] message Floor 5\n[man floor5mesage messagemarkup] -> [man floor6mesage] message Floor 6\n[man floor6mesage messagemarkup] -> [man floor7mesage] message Floor 7\n[man floor7mesage messagemarkup] -> [man floor8mesage] message Floor 8\n[man floor8mesage messagemarkup] -> [man floor9mesage] message Rooftop Garden\n[man floor9mesage messagemarkdown] -> [man floor8mesage] message Floor 8\n[man floor8mesage messagemarkdown] -> [man floor7mesage] message Floor 7\n[man floor7mesage messagemarkdown] -> [man floor6mesage] message Floor 6\n[man floor6mesage messagemarkdown] -> [man floor5mesage] message Floor 5\n[man floor5mesage messagemarkdown] -> [man floor4mesage] message Floor 4\n[man floor4mesage messagemarkdown] -> [man floor3mesage] message Floor 3\n[man floor3mesage messagemarkdown] -> [man floor2mesage] message Floor 2\n[man floor2mesage messagemarkdown] -> [man floor1mesage] message Floor 1\n[man floor1mesage messagemarkdown] -> [man floor0mesage]\n[man floor0mesage messagemarkdown] -> [man bfloor1mesage] message Basement Floor 1\n[man bfloor1mesage messagemarkdown] -> [man bfloor2mesage] message Basement Floor 2\n[man bfloor2mesage messagemarkdown] -> [man bfloor3mesage] message Basement Floor 3\n[man bfloor3mesage messagemarkdown] -> [man bfloor4mesage] message Basement Floor 4\n[man bfloor4mesage messagemarkdown] -> [man bfloor5mesage] message Basement Floor 5\n[man bfloor5mesage messagemarkdown] -> [man bfloor6mesage] message Basement Floor 6\n[man bfloor6mesage messagemarkdown] -> [man bfloor7mesage] message Basement Floor 7\n[man bfloor7mesage messagemarkdown] -> [man bfloor8mesage] message Basement Floor 8\n[man bfloor8mesage messagemarkdown] [drawingboard] -> [man bfloor9mesage] [drawingboard clear]\n[man bfloor9mesage messagemarkup] -> [man bfloor8mesage] message Basement Floor 8\n[man bfloor8mesage messagemarkup] -> [man bfloor7mesage] message Basement Floor 7\n[man bfloor7mesage messagemarkup] -> [man bfloor6mesage] message Basement Floor 6\n[man bfloor6mesage messagemarkup] -> [man bfloor5mesage] message Basement Floor 5\n[man bfloor5mesage messagemarkup] -> [man bfloor4mesage] message Basement Floor 4\n[man bfloor4mesage messagemarkup] -> [man bfloor3mesage] message Basement Floor 3\n[man bfloor3mesage messagemarkup] -> [man bfloor2mesage] message Basement Floor 2\n[man bfloor2mesage messagemarkup] -> [man bfloor1mesage] message Basement Floor 1\n[man bfloor1mesage messagemarkup] -> [man floor0mesage]\n[man floor0mesage messagemarkup] -> [man floor1mesage] message Floor 1\n\n[drawingboard clear| drawingboard] -> [drawingboard clear| drawingboard clear]\n\n[drawright clear] -> [clear]\n[drawup clear] -> [clear]\n[drawdown clear] -> [clear]\n[clear] -> [count0]\n\n(end)\nright[bloom21|] -> [bloom21|bloomend1]\n\nright[bloom17|] -> [bloom17|bloom18]\nright[bloom20|] -> [bloom20|bloom21] again\n\nright[bloom12|] -> [bloom12|bloom13]\nright[bloom16|] -> [bloom16|bloom17]\nright[bloom19|] -> [bloom19|bloom20] again\n\nright[bloom7|] -> [bloom7|bloom8]\nright[bloom11|] -> [bloom11|bloom12]\nright[bloom15|] -> [bloom15|bloom16]\ndown[bloom15|] -> [bloom15|bloom19 again]\n\nright[bloom6|] -> [bloom6|bloom7]\nright[bloom10|] -> [bloom10|bloom11]\nright[bloom14|] -> [bloom14|bloom15] again\n\nright[bloom2|] -> [bloom2|bloom3]\nright[bloom5|] -> [bloom5|bloom6]\nright[bloom9|] -> [bloom9|bloom10]\ndown[bloom9|] -> [bloom9|bloom14] again\n\nright[bloom1|] -> [bloom1|bloom2]\nright[bloom4|] -> [bloom4|bloom5]\ndown[bloom4|] -> [bloom4|bloom9] again\n\nright[bloomstart|] -> [bloomstart|bloom1]\ndown[bloomstart|] -> [bloomstart|bloom4] again\n\n[action bloomend1] -> [bloomend]\n\n\n==============\nWINCONDITIONS\n==============\n\n\nAll end on puzzlestartgood\n\nAll target on bloomend\n\n======= \nLEVELS\n=======\n\n###########&&&%%%%%&&&###########\n###########&&%⤫⤫⤫⤫⤫%&&###########\n###########&%kk'''kk%&###########\n###########%⤫kkk'kkk⤫%###########\n###########'⤫kkk'kkk⤫'###########\n###########'⤫'k''/k'⤫'###########\n###########'⤫'kkkkk'⤫'###########\n###########%⤫'/'''''⤫%###########\n###########q%''''↓''%q###########\n###########ww%⤫⤫⤫⤫⤫%ww###########\n###########qqq%%%%%qqq###########\n###########___%%%%%___###########\n##@###@####__%,,,,,%__###@###@###\n##221222###_%,[,{,,[%_##1221122##\n#y222222@##%[⅝,,[,,,[%##2302221@#\n#£122132###,[,[[[l,,,,#*2323121##\n##221212###,{,,,[[↉,{,##1241222y#\n#*222222@##,[[[,[[[[,,##13202?3£#\n##222232###%,,[↓/,,,,%##12?3222##\n##233212###_%,{[[↥,,%_#@2202232@#\n######@####__%,[,,[%__##2??2321##\n###########___%%%%%___###@###@###\n###########___%%%%%___###########\n###########__%,,,,,%__###########\n###########_%,,,l,,,%_######⸝####\n###########%,,⥁,,,{,,%###02110###\n###########,,,,{,{,,l,###22032###\n###########,,,,,¢,,,,,###23140y##\n###########,,,,{,{,,,,###10211###\n###########%,,{↥,↓{,,%###02100###\n###########_%,,,l,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########&&&&&&&&&&&###########\n###########&&&&&&&&&&&#####@#####\n###########&&+&&+&&+&&##22?2212@#\n###########&&&&&&&&&&&#@2101222##\n###########&&&&&&&&&&&##2222222##\n###########&&&&&&&&&&&##2212422*#\n###########&&&'''''&&&#@2220202£#\n###########&&&''⅐''&&&##222?222y#\n###########&&&'''''&&&#######@###\n###########&&&'''''&&&###########\n###########___c'''c___###########\n###########___c'''c___###########\n###########__%,,,,,%__###########\n#####*#####_%,l,,,,,%_###########\n##y13121###%,,,,⅚,,,,%###0220:###\n##£23232@##[[[,,,,,[[[###2222####\n###o3?33###,l,,,,,,,,ᵶ##@2222y###\n###12222###///,,l,,///###0220####\n###12121@##%,,,↓[↥,,,%#####*#####\n###@#######_%,l,,,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########___%%%%%___#######@###\n###########__%,⅜,[,%__###21?22y##\n###########_%,,,/l,,%_##@21022£##\n#####@#####%,,,,,,,,,%###23?22###\n###y11?####,,,,[,⅘,,,,###23023@##\n###*223####,,,,,/,,,,,##*12?11###\n####?32####,l,,,,,,,,,###########\n###########%,,,↥,↓,,,%###########\n###########_%,,l/,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########&&&&&&&&&&&###########\n###########&+&&&&&&&&&###########\n###########&&&&&&&&&&&###########\n###########&&&&&+&&&&&###@#!#####\n###########&&&&&&&&&&&###2221@###\n###########&&&&&&&&&&&###3221####\n###########&&&'''''&&&###3221####\n###########+&&''¥''&&&##@2221y###\n###########&&&'''''&&&#####*#####\n###########&&&'''''&&&###########\n###########___c'''c___###########\n###########___c'''c___###########\n#######@###__%,,,,,%__###########\n###*e2o1###_%,,,/,,,%_####@######\n####2o3o###%,,/,,,/,,%###e1321*##\n###yo1e1###,,⅗,,,,,,,,###2e232###\n###£2e3o@##,l,,,,,,⅖,,###21oe1y##\n####o3e2###,,,,,,,,l,,###1e3oo£##\n####@######%,,,↓/↥,,,%##@2o112###\n###########_%,,,l,,,%_#######@###\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########___%%%%%___###########\n###########__%/,,,,%__######@####\n###########_%/,,,,l,%_####e211@##\n######@####%,[⅔,,,/,,%####2432y##\n###@2oe####,,,[,,,,/,,###@133e£##\n###yee3####,,,,,l,⅛[,,####1212###\n####12o@###,l,,,,,[l,,#####*#####\n####*######%,,,↥,↓,,,%###########\n###########_%,,,,,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########&&&&&&&&&&&###########\n####@##@###&&&&&&&&+&&###########\n###122221##&&+&&&&&&&&###########\n###112132@#&&&&&&&&&&&###########\n##*222022##&&&&&&&&&&&###########\n###230232##&&&&&&&&&&&###########\n##£232331@#&&&'''''&&+###########\n##y222121##&&&''⅙''&&&###########\n####@##@###&&&'''''&&&###########\n###########&&&'''''&&&###########\n###########___c'''c___###########\n###########___c'''c___###########\n###########__%,,,,,%__###########\n####*######_%,,l,,,,%_###########\n##y22221@##%,⅕[,,,,,,%###1222####\n##£23232###,,,,,,l,,,,##@2331####\n###12212###,,l,,,,,,,,###2332£###\n###22421###,,,,,x,,,,,###1212y###\n###12221@##%,,,↓/↥,l,%####*######\n###@##@####_%,,,,,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########___%%%%%___###########\n###########__%,,,,,%__###########\n#####*#####_%,,l,,,,%_###########\n###12321###%x/,,,,,/,%##@22200y##\n##y12321###,,,,,,x,,l,###20201£##\n###@###@###,l,,,,,,,,,###22323###\n###########,,,,,,,,,,,###02101###\n###########%,,,↥/,,,,%###02100###\n###y121####_%xl,,,,,%_####*######\n###########__%,,,,,%__###########\n###########___%ttt%___###########\n.......$qqqqqqqqqqqqqqqqq$...~~~~\n..---...$$wwwwwwwwwwwww$$...~~~~~\n..-.......$$$qq⥏⥏⥏qq$$$....``````\n.............$$...$$.......```꠸``\n................z..........`h````\n................z...........z....\n............-...z...........z....\n...zzzzzzzzzzzzzzzzzzzzzzzzzz....\n...p....--............---........\n...z.........................--..\n...---...........................\nmmmmmmmmmmmmmmrmmmmmmm___________\nmmmmmmmmmmmmmmmmmmmmmm___________\nmmmmmmmmmmmmuiuuiuuuua___________\nmmmmmmmmmmmmuuiuuiuuum___________\nmiuiuᵽmmmmmmiffsssffim_\"\"\"\"\"\"____\nᶃuiuuummmmmmugjfsfjgumn;;;;;;____\nmmmmmmmmmmmmifjfsfjfum_\"\"\"\"\"\"____\nmmmmmmmmmmmmusfsssfsum____\"\"\"____\nmmmmmmmmmmmmusfffffsum____\"\"\"____\nmmmmmmmmmmmmuuuiuuiuiÐ____\"\"\"____\nmmmmmmmmmmmmmhmmmmmmmm____\"b\"____\n###########__%\"\";\"\"%__###########\n###########_%\"[⅑;\"]\"%_###@#######\n####@######%\"\"\"\"x\"\"\"\"%###2167y###\n###2167####\"/\"\"\";\"\"\"\\\"###3278£###\n##@3388*###\"\"\"\"\";\"\"\"\"\"###1276@###\n##y8888####;;;;;x;;;;n#####*#####\n##£7667####\"\"\"\"\";\"\"\"\"\"###########\n#####@#####\"/\"\"\";\"\"\"\\\"###########\n###########%\"\"\"\";\"\"\"\"%###########\n###########_%\"[\";\"]\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"↥;⅒\"\"%_###########\n###########%/\"\"\";\"\"\"{%######@####\n###########\"\"\"\"\";\"\"\"\"\"##@1232####\n###########\"\"\"]\";\"\\\"\"\"###3232*###\n###########\"\"\"\"\"x\"\"\"\"\"###2332y###\n###########\"\"\"/\";\"[\"\"\"##@7878£###\n###########\"\"\"\"\";\"\"\"\"\"###7876####\n###########%{\"\"\";\"\"\"\\%######@####\n###########_%\"\"\";\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"[⅞\"↥/\"%_###########\n###########%\"\"\"\"\"\"\"\"\"%###@###*###\n###########\"/\"\"\"\"\"\"\"\\\"###28677###\n###########\"\"\"\"\"\"\"\"\"\"\"###33892###\n###########\"\"\"\"\"x\"\"\"\"\"##@20731y##\n###########\"\"\"\"\"\"\"\"\"\"\"###37533£##\n###########\"[\"\"\"\"\"\"\"]\"###78782###\n###########%\"\"\"\"\"\"\"\"\"%###@###@###\n###########_%\"]\"\"\"\\\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"↥\"⥊\"\"%_###########\n###########%/\"]\"\"\"/\"/%###@#######\n###########\"\"\"\"\"\"\"\"\"\"\"###6866@###\n###########\"/\"\"\"\"\"\"\"]\"###6383####\n###########\"\"\"\"\"x\"\"\"\"\"##*8886y###\n###########\"]\"\"\"\"\"\"\"/\"###6181£###\n###########\"\"\"\"\"\"\"\"\"\"\"#####@#####\n###########%/\"/\"\"\"]\"/%###########\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"⥋\"↥\"\"%_###########\n###########%\"\"/\"\"\"{\"\"%###@#######\n###########\"[\"\"\"{\"\"\"/\"###2332@###\n###########\"\"\"\"\"\"\"\"\"\"\"###2222####\n###########;;;;;x;;;;;###7777y###\n###########\"\"\"\"\"\"\"\"\"\"\"##*7667£###\n###########\"{\"\"\"[\"\"\"/\"######@####\n###########%\"\"/\"\"\"[\"\"%###########\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"↥\"⥌\"\"%_#####@#####\n###########%\"\"\"\"\"\"\"\"\"%##222777###\n###########\"\"/[\"\"\"{\\\"\"#@343656###\n###########\"\"\"\"{\"]\"\"\"\"##222777###\n###########\"\"\"\"\"x\"\"\"\"\"##777777y##\n###########\"\"\"\"[\"{\"\"\"\"##656898£##\n###########\"\"/{\"\"\"]\\\"\"##777777###\n###########%\"\"\"\"\"\"\"\"\"%##*####@###\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"⥍\"↥\"\"%_###########\n###########%\"\"\"\"\"\"\"\"\"%######⸝####\n###########\"\"\"}\"\"\"}\"\"\"###00220###\n###########\"\"\"\"}\"}\"\"\"\"###14231###\n###########\"\"\"\"\"¢\"\"\"\"\"###11303y##\n###########\"\"\"\"}\"}\"\"\"\"###02410###\n###########\"\"\"{\"\"\"}\"\"\"###00210###\n###########%\"\"\"\"\"\"\"\"\"%###########\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\\↥\"⥎]\"%_###########\n##y6866*###%\"\"\"\"\"\"\"ᵹ\"%###########\n##£7777####\"/\"\"\"\"\"\"\"]\"###########\n###8687####\"\"\"\"\"\"\"\"\"\"\"######⸝####\n##@8797####\"\"\"\"\"\"\"\"\"\"\"###12332###\n###7676####\"\"\"\"\"\"\"\"\"\"\"###32121###\n###########\"[\"\"\"\"\"\"\"\\\"###12342###\n###########%\"x\"\"\"\"\"\"\"%###12221y##\n###########_%\"[\"\"\"/\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"\"\"↥\"\"%_###########\n###########%{\"\"\"\"\"\"\"{%###########\n###########\"\"\"\"\"\"\"kk\"\"###57875###\n###########\"\"\"kk\"\"\"k\"\"###79997###\n########ᵹ##\"\"\"kk\"kk\"\"\"###89998ᵯ##\n###########\"\"k\"\"\"kk\"\"\"###79997£##\n###########\"\"kk\"\"\"\"\"\"\"###57875###\n###########%{\"\"\"\"\"\"\"{%###########\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n\n\n###########\n###########\n###########\n###►¤¤¤┰###\n###¤¤¤¤¤###\n###¤¤¤¤¤###\n###¤¤¤¤¤###\n###┰¤¤¤◄###\n###########\n###########\n###########\n\nmessage Rose\nmessage By Jared Piers\n\n\n", [0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 1, 1, 4, 3, 3, 4, 1, 4, 3, 1, 4, 3, 1, 1, 1, 1, 4, 1, 1, 4, 3], "background darkbarrier 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,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,\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,\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,\nbackground ground1:1,background ground3:2,1,background ground2:3,1,1,1,2,1,3,2,background housewallintdown:4,4,background housewallintright:5,5,5,background hiddendoor hiddenmesage:6,4,4,4,4,4,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,\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,\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,\n0,0,0,background dark puzzlestartbadnorm:7,background clearspace:8,0,background chainstarttemp wall:9,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background ground3 puddlecornertl:10,background ground1 puddleleft:11,11,background ground1 puddlecornerbl:12,1,2,1,2,2,3,3,\n4,4,background housewallinttop:13,13,background housefloor1:14,background housefloornorm:15,4,4,4,4,4,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background chaingoaltemp wall:16,background balancespace count0 dark goal2 number2 wrongtemp:17,17,background balancespace count0 dark goal1 number1 wrongtemp:18,17,17,17,17,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,7,8,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,8,7,0,0,0,0,0,0,7,8,0,0,0,0,0,0,\n0,0,0,0,7,0,0,0,0,0,0,background ground1 puddletop:19,background puddlecenter:20,20,background ground1 puddlebottom:21,1,3,3,2,2,background ground2 puddlecornertl:22,11,background housewallintdown puddlecornerbl:23,4,13,13,15,background housefloor2:24,4,4,4,4,4,\n0,0,0,0,16,7,8,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,0,16,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,17,17,17,17,17,17,background balancespace count0 dark goal3 number3 wrongtemp:25,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,18,17,background balancespace count0 dark goalo numberowrong wrongtemp:26,18,18,16,0,0,0,0,0,0,7,9,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,7,8,0,0,0,0,0,0,0,0,0,16,7,0,0,0,0,0,\n0,0,18,18,17,17,17,17,0,0,0,0,0,0,17,17,18,17,18,16,0,0,0,0,0,18,18,16,0,0,background dark puzzlestartgood:27,0,0,\n19,20,background ground3 puddleright:28,background ground1 puddlecornerbr:29,3,3,2,background ground2 pathrightbend:30,background pathvert:31,background ground3 pathvert puddletop:32,20,background housewallintdown puddlebottom:33,4,13,13,14,15,4,4,4,4,4,0,0,0,17,25,background balancespace blocker count0 dark goal3 wrongtemp:34,background balancespace blocker count0 dark goal2 wrongtemp:35,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,\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,\n0,0,background balancespace blocker count0 dark goal1 wrongtemp:36,35,34,34,35,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,18,17,17,18,17,17,25,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,25,25,25,17,17,0,0,0,0,0,0,0,18,17,background balancespace count0 dark goodtemp numberq:37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background balancespace count0 dark goale goodtemp numbere:38,17,26,17,26,16,0,0,0,0,0,0,0,17,38,18,9,0,0,0,0,16,17,18,17,25,25,17,16,0,0,\n0,0,9,17,25,17,17,17,0,0,0,0,0,0,17,17,0,0,0,1right background balancespace count1 dark goal1 goodtemp number1:39,0,0,19,20,background ground2 puddlebottom:40,1,1,1,2,background ground1 pathhoriz:41,3,background ground3 puddletop:42,20,\n33,4,13,13,15,15,4,4,4,4,4,0,0,16,18,25,34,36,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,35,36,35,36,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,17,17,18,17,17,17,17,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,9,18,17,37,17,18,0,0,0,\n0,0,0,16,18,17,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,26,18,38,25,0,0,0,0,\n0,0,0,0,26,38,17,0,0,0,0,0,0,17,17,17,background balancespace count0 dark goal0 goodtemp number0:43,17,17,0,0,0,0,0,0,17,17,17,background balancespace count0 dark goal4 number4 wrongtemp:44,17,0,0,0,\n0,0,9,25,25,0,0,0,1left 1right background balancespace count2 dark goal2 goodtemp number2:45,0,0,background ground2 puddlecornertr:46,background ground2 puddleright:47,background ground3 puddlecornerbr:48,1,2,1,2,background ground3 pathhoriz:49,3,42,20,33,4,13,13,background balancemesagefinal housefloornorm puzzletilewrongend:50,15,4,4,4,4,4,\n0,0,0,36,34,34,36,16,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,36,35,34,background balancespace blocker count0 dark goal4 wrongtemp:51,35,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,16,17,17,25,18,17,25,18,16,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,17,25,25,17,17,0,0,0,0,0,0,0,37,25,17,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,26,25,38,25,38,0,0,0,0,0,0,0,16,38,25,26,0,0,0,0,\n0,0,17,18,43,17,25,18,0,0,0,0,0,0,17,25,18,17,17,16,0,0,0,0,0,17,17,0,0,0,1left background balancespace count1 dark goal1 goodtemp number1:52,0,0,\n3,3,1,3,2,2,2,41,2,background ground3 puddlecornertr:53,47,background housewallintdown puddlecornerbr:54,4,background housewallintleft:55,55,55,55,4,4,4,4,4,0,0,0,35,34,34,35,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,\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,\n0,0,36,35,35,35,36,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,17,17,17,17,17,17,17,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,18,17,25,17,18,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,16,18,26,18,26,17,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,16,17,25,17,25,25,17,16,0,0,\n0,0,0,18,17,17,18,18,0,0,0,0,0,0,18,18,16,0,0,0,0,0,background towerbaseleft:56,1,2,3,3,1,2,background ground1 pathhoriz puddlecornertl:57,background ground3 puddleleft:58,12,2,\n4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,9,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,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,16,0,0,16,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,16,0,0,16,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,16,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,18,17,17,17,18,18,0,0,0,0,0,0,16,0,0,0,16,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,background towerwall1left:59,56,1,1,1,1,3,background ground3 pathhoriz puddletop:60,20,background ground3 puddlebottom:61,3,4,4,4,4,4,4,4,4,4,4,4,\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,\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,\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,background basementtile mark puzzletilewronghidden:62,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,\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,\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,\n0,0,0,16,0,0,16,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,\nbackground towerwall1:63,background towerbase:64,3,2,2,3,3,60,20,61,3,4,4,4,4,4,4,4,4,4,4,4,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,\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,\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,\n0,0,background darkbarrier towerwallintlefttop wall:65,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,65,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background darkbarrier highpuddletopleft2 wall:66,background darkbarrier highpuddlebottomleft1 wall:67,0,0,0,\n0,0,65,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,65,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,0,0,0,59,background towerwall2left:68,56,2,3,2,1,background ground3 pathhoriz puddlecornertr:69,28,48,3,\n4,4,4,4,4,4,4,4,4,4,4,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,background highground3:70,background highground1:71,background towerbalconytopleftroof:72,background halftiletopleft towerbalconyleftroof:73,background towertileoutside:74,74,74,background halftilebottomleft towerwall2left:75,59,68,59,background physicalwall:76,background physicalwall towerwallintlefttop:77,background physicalwall towerwallintleftmid:78,background towerwallintleft:79,background towertile:80,80,80,background towerwallbottomleft:81,76,76,76,\n76,77,78,79,80,80,80,81,76,76,76,70,background highground2:82,71,71,70,71,71,70,82,82,76,76,77,78,background towerpillartop1 towerwallintleft:83,background towerpillar1 towertile:84,background towerpillartop2 towertile:85,background towerpillar2 towertile:86,81,76,76,76,\n76,77,78,79,80,80,80,81,76,76,76,background highpuddletopleft2:87,background highpuddlebottomleft2:88,71,82,71,71,background highpuddletopright1:89,background highpuddlebottomright:90,82,82,76,76,77,78,79,80,80,80,81,76,76,76,\n76,77,78,79,80,80,80,81,76,76,76,82,82,70,82,70,70,70,82,71,82,76,76,77,78,79,80,80,80,81,76,76,76,\n76,77,78,79,80,80,80,81,background basementprogressmark physicalwall:91,76,76,63,background towerwall2:92,64,1,1,10,background ground2 puddleleft:93,background ground1 pathhoriz puddlecornerbl:94,1,3,1,5,5,5,5,5,5,5,5,5,5,4,\nbackground basementwalllefttop:95,background basementwallleftmid:96,background basementwallleft:97,background basementtile:98,98,background basementlinetile:99,98,98,background basementwallbottomleft:100,background basementphysicalwall:101,101,95,96,97,98,98,98,98,98,100,101,101,95,96,97,98,98,98,98,98,100,101,101,\n95,96,97,98,98,98,98,98,100,101,101,95,96,97,98,98,99,98,98,100,101,101,95,96,97,98,98,98,98,98,100,101,101,\n95,96,97,98,98,98,98,98,100,101,101,95,96,97,98,98,98,98,98,100,101,101,95,96,97,98,98,98,98,98,100,101,101,\n82,72,73,background rosetile1 towertileoutside:102,background dirttile rosetile1 towertileoutside:103,103,background dirttile rosetile2 towertileoutside:104,102,background halftilebottomleft towerwall1left:105,68,59,77,78,83,background towerpillar1 towerpillartop3 towertile:106,background towerpillar1 towerpillarmid3 towertile:107,background towerpillar3 towerpillartop1 towertile:108,84,80,81,76,76,77,78,79,80,80,80,80,80,81,76,76,\n71,87,88,82,82,70,82,71,71,71,76,77,78,79,background towerpillartop1 towertile:109,84,background towerpillartop2 towertilecrack3:110,86,80,81,76,76,77,78,79,80,80,80,background towertilecrack2:111,80,81,76,76,\n89,90,82,71,82,82,70,82,82,82,76,77,78,79,80,80,111,80,80,81,76,76,77,78,79,80,80,80,111,80,81,76,76,\n82,background highpuddletopleft1:112,88,71,71,70,70,71,70,71,76,77,78,79,80,80,80,80,80,81,76,76,77,78,background puzzlepanel towerwallintleft:113,background mark puzzletilewrongnorm towertile:114,80,111,80,80,81,76,76,\n63,92,64,1,1,background ground2 puddletop:115,20,background ground1 pathhoriz puddlebottom:116,2,3,3,13,13,15,15,24,15,24,15,15,15,4,96,97,background basementpillartop2 basementtile:117,background basementpillar2 basementtile:118,98,99,117,118,98,100,background basementphysicalwallperm:119,\n96,background basementpillartop2 basementwallleft:120,118,98,98,98,background basementpillartop3 basementtile:121,background basementpillarmid3 basementtile:122,background basementpillar3 basementtile:123,100,119,96,97,117,118,98,98,98,background basementpillar1 basementtile:124,98,100,119,96,120,118,117,118,98,background basementpillar5 basementtile:125,117,118,100,119,\n96,97,98,124,98,background basementlinetile basementpillartop3:126,122,123,98,100,119,96,97,98,98,98,98,98,98,98,100,119,96,97,98,98,98,98,98,98,98,100,119,\n96,97,117,118,98,98,98,124,98,100,119,background basementpillartop3 basementwallleftmid:127,background basementpillarmid3 basementwallleft:128,123,98,98,98,121,122,123,100,119,72,73,background roofdown roofpattern roofright towertileoutside:129,background roofdown roofpattern roofright roofup towertileoutside:130,background roofpattern roofright roofup towertileoutside:131,74,74,74,74,75,59,\n78,79,background puzzlepanel towertile:132,background mark puzzle8mesage1 puzzletilewrongnorm towertile:133,80,109,84,80,80,81,76,78,79,80,80,80,80,80,80,80,81,76,82,background highpuddletopright2:134,90,82,82,background towerbalconytopleft:135,background towerbalconyleft:136,136,136,136,76,\n78,79,80,109,84,85,86,80,80,81,76,78,79,80,80,80,80,80,80,80,81,76,70,82,70,71,71,135,136,136,136,136,76,\n78,79,80,132,background mark puzzle4mesage2 puzzletilewrongnorm towertile:137,80,80,80,80,81,76,78,background towerpillartop2 towerwallintleft:138,background towerpillar2 towerpillartop1 towertile:139,84,80,80,80,80,80,81,76,82,89,90,70,71,135,136,136,136,136,76,\n78,79,132,background mark puzzle2mesage1 puzzletilewrongnorm towertile:140,80,background towertilecrack1:141,80,80,80,81,76,78,79,85,86,background basementprogressmark towertile:142,80,80,132,background puzzletilegoodnorm towertile:143,81,76,59,68,59,56,1,46,47,background ground1 pathhoriz puddlecornerbr:144,1,1,2,\n13,13,14,15,background count0 drawgoal2 drawingboardtop:145,background count0 drawgoal3 drawingboardleft:146,background count0 drawgoal2 drawingboardleft:147,background count0 drawgoal0 drawingboardleft:148,background count0 drawgoal0 drawingboarddownleft:149,15,background houseentrance:150,97,98,98,98,98,99,98,98,98,98,100,97,98,98,98,98,98,98,98,98,98,100,\n97,98,98,98,98,98,98,98,98,98,100,97,98,98,98,98,98,98,98,98,98,100,97,98,98,98,98,99,98,98,98,98,100,\n97,98,117,118,98,98,117,118,98,98,100,97,98,98,98,98,98,98,98,98,98,100,97,98,98,98,98,98,98,98,background basementtile mark puzzletilewrongnorm:151,98,100,\n97,98,98,98,98,98,background basedown basementpattern basementtile:152,background basementpattern basementtile baseright baseup:153,98,98,100,background towerbalconytop:154,background rosetile2 towertileoutside:155,background roofdown roofleft roofpattern towertileoutside:156,background roofdown roofleft roofpattern roofright roofup towertileoutside:157,157,background roofdown roofpattern roofup towertileoutside:158,background roofpattern roofright roofup towerpillartop2 towertileoutside:159,background towerpillar2 towertilehalflight:160,74,155,63,background towerwallinttop:161,109,84,109,84,109,106,107,background towerpillar3 towertile:162,80,background towerwallintbottom:163,\n161,80,background towerpillartop2special towertile:164,background towerpillar2special towertile:165,80,background towerpillartop3 towertile:166,background towerpillarmid3 towertile:167,162,80,80,163,70,82,82,70,82,154,74,74,74,74,background towerwallinttoppermanent:168,168,80,background towertilecrack3:169,80,80,80,80,80,141,80,163,\n161,80,80,80,80,80,80,80,80,80,163,82,71,70,82,70,154,74,74,74,74,168,168,80,85,86,80,80,80,80,80,80,163,\nbackground towerpillartop2 towerwallinttop:170,86,132,background mark puzzle3mesage2 puzzletilewrongnorm towerpillartop1 towertile:171,84,80,80,80,80,80,163,70,70,70,71,71,154,74,74,74,74,168,168,80,109,84,80,80,80,80,80,80,163,\n161,80,80,80,80,80,80,80,background floor1mesage manright towertilecrack2:172,80,163,63,92,63,64,1,1,3,41,3,2,1,background rose1:173,background rose6:174,15,14,145,background count0 drawgoal4 drawingboardcenter:175,175,background count0 drawgoal2 drawingboardcenter:176,background count0 drawgoal2 drawingboarddown:177,15,4,\n98,124,98,98,98,99,98,98,98,124,background basementblocktile:178,178,98,98,98,125,117,118,98,98,98,178,178,124,98,98,98,98,98,98,98,125,178,\n178,98,125,98,98,98,98,117,118,98,178,178,117,118,98,98,99,98,117,118,98,178,178,98,98,124,98,121,122,123,98,98,178,\n178,background basementpillartop6 basementtile:179,background basementpillarmid6 basementtile:180,background basementpillar6 basementtile:181,98,121,122,123,98,98,178,background basementblocktile basementpillartop4:182,background basementpillar4 basementtile:183,98,98,98,98,98,98,98,124,178,178,98,98,98,background basedown basementpattern basementtile baseright:184,153,98,background baseleft basementpattern basementtile:185,98,98,178,\n154,background rosetile3 towertileoutside:186,74,156,background roofleft roofpattern roofup towertileoutside:187,74,background roofleft roofpattern roofright towertileoutside:188,74,74,155,63,161,80,80,109,84,80,80,background towerpillartop1 towerstairsdown1:189,background towerpillar1 towerpillartop1 towertile:190,84,163,161,80,166,167,background towerpillar3 towerpillartop3 towertile:191,167,162,background towerstairsup towertile:192,80,80,163,\n71,87,88,82,71,154,74,74,74,74,74,74,background towertilehalflight:193,80,80,80,80,80,background towerstairsdown1:194,80,80,163,background puzzlepanel towerwallinttop:195,background mark puzzle5mesage2 puzzletilewrongnorm towertile:196,80,109,84,80,80,192,111,80,163,\n71,71,112,background highpuddlebottomleft1:197,82,154,74,74,74,74,74,74,193,80,80,80,80,80,194,80,80,163,161,80,80,80,80,80,80,192,80,80,163,\n82,71,70,71,70,154,74,74,74,74,74,74,193,111,80,80,80,80,194,80,80,163,161,80,141,80,80,80,80,192,80,80,background towerentrance:198,\n63,92,198,background towerentrancefront:199,1,3,1,41,1,2,3,background rose2:200,background rose7:201,15,15,background count0 drawgoal0 drawingboardtop:202,176,176,background count0 drawgoal0 drawingboardcenter:203,177,24,4,98,background basementstairsdownblocked bpuzzle2mesage:204,98,98,98,99,98,98,98,98,178,\n178,background basementtile towerstairsup:205,98,98,98,98,98,98,98,98,178,178,background bpuzzle4mesage towerstairsdown2:206,98,98,98,98,98,98,98,98,178,178,205,98,98,98,98,98,98,98,98,178,\n178,background bpuzzle6mesage towerstairsdown2:207,98,98,98,99,98,98,98,98,178,178,205,121,122,123,98,124,98,98,98,178,178,background bpuzzle8mesage towerstairsdown2:208,179,180,background basementpillar6 basementpillartop6 basementtile:209,180,181,98,98,98,178,\n178,205,98,98,98,98,98,98,98,98,178,178,98,98,98,background basedown baseleft basementpattern basementtile:210,background baseleft basementpattern basementtile baseup:211,98,98,98,98,178,154,102,74,74,74,74,188,74,74,186,63,\nbackground towerpillartop3 towerwallinttop:212,167,108,190,190,190,background towerpillar1 towerpillartop2 towertile:213,139,84,80,163,161,80,141,80,80,background puzzle1mesage2 puzzletilehidden towertile:214,80,80,169,80,163,70,134,90,71,71,154,background puzzlepanel towertileoutside:215,background mark puzzle6mesage2 puzzletilewrongnorm towertileoutside:216,74,74,74,\n74,193,132,background mark puzzle6mesage1 puzzletilewrongnorm towertile:217,80,80,background towerpillartop1 towertilecrack1:218,84,80,80,163,161,85,86,80,85,86,80,85,86,80,163,71,82,89,90,82,154,215,background imbalancemesage1 mark puzzletilewrongnorm towertileoutside:219,74,74,74,\n74,background towerpillartop2 towertilehalflight:220,86,80,80,80,85,86,111,80,163,161,80,80,80,80,141,80,80,80,80,163,71,82,71,82,70,154,215,background mark puzzle2mesage2 puzzletilewrongnorm towertileoutside:221,74,74,74,\n74,193,80,80,80,132,background mark puzzletilewrongnorm towerpillartop2 towertile:222,86,80,80,163,161,80,80,80,80,80,85,86,80,80,198,63,92,198,199,background ground1 pathend:223,background ground3 pathvert:224,background ground1 pathvert:225,background ground2 pathtri:226,2,3,3,\nbackground rose3:227,background rose8:228,24,15,202,203,203,203,177,15,4,99,99,background basementlinetile mark puzzletilewrongnorm:229,99,99,229,99,99,99,99,background basementlineblocktile:230,230,99,99,99,99,229,99,99,99,99,230,\n178,98,98,98,98,151,98,98,98,98,178,178,98,98,98,98,151,98,98,98,98,178,178,121,122,123,98,229,98,124,98,98,178,\n178,98,98,98,98,151,98,98,98,98,178,178,98,98,98,98,background basementtile puzzle1mesage2 puzzletilehidden:231,98,98,98,98,178,178,98,98,98,98,98,98,98,98,98,178,\n178,98,98,98,98,98,98,98,98,98,178,154,155,74,129,159,160,188,74,194,102,63,161,80,80,80,218,190,84,80,192,80,163,\n161,80,166,167,191,167,162,194,80,80,163,70,82,82,71,71,154,74,74,74,74,74,74,193,80,80,80,80,80,192,80,80,163,\nbackground towerpillartop1 towerwallinttop:232,84,169,132,background mark puzzle5mesage1 puzzletilewrongnorm towertile:233,80,80,194,80,80,163,71,82,71,82,71,154,74,74,74,74,74,74,193,80,80,80,80,80,192,80,80,163,\n161,80,80,80,80,80,80,194,80,80,163,70,71,71,82,70,154,74,74,74,74,74,74,193,80,80,141,80,80,192,80,80,163,\n161,80,80,132,114,80,80,80,80,80,198,63,92,198,199,1,3,1,41,3,3,1,background rose4:234,background rose9:235,15,24,202,176,176,203,177,15,4,\n98,98,98,98,98,99,98,98,98,98,178,178,background bpuzzle3mesage towerstairsdown2:236,98,98,98,98,98,98,98,98,178,178,205,98,98,98,98,98,98,98,98,178,\n178,background bpuzzle5mesage towerstairsdown2:237,98,98,98,98,98,98,98,98,178,178,205,98,98,98,99,98,98,98,98,178,178,background bpuzzle7mesage towerstairsdown2:238,98,98,background basementpillar5 basementpillartop3 basementtile:239,122,123,98,98,98,178,\n178,205,179,180,209,180,181,98,98,98,178,178,background bpuzzle9mesage towerstairsdown2:240,98,98,98,98,98,98,98,98,178,178,205,98,98,98,184,153,98,98,98,178,\n154,155,129,157,157,158,187,74,74,102,63,161,80,80,80,132,background mark puzzle8mesage2 puzzletilewrongnorm towerpillartop1 towertile:241,84,80,109,84,163,161,166,167,162,80,166,167,162,80,80,163,\n71,87,88,70,70,154,74,74,74,74,168,168,80,80,80,80,80,80,80,80,80,163,161,80,80,80,80,80,80,80,80,80,163,\n71,71,82,82,82,154,74,74,74,74,168,168,80,85,86,80,80,80,80,80,80,163,161,80,background towerpillartop2 towertilecrack2:242,86,132,background mark puzzle3mesage1 puzzletilewrongnorm towerpillartop1 towertile:243,84,80,80,80,163,\n112,88,70,71,82,154,74,74,74,74,168,168,80,80,80,80,80,80,80,80,80,163,161,80,80,80,80,80,80,80,80,80,163,\n63,92,63,64,1,1,3,49,3,2,1,background rose5:244,background rose10:245,15,15,145,175,175,176,177,24,4,98,125,98,98,98,99,98,98,98,125,178,\n178,98,98,background basementpillartop4 basementtile:246,183,98,124,98,98,98,178,background basementblocktile basementpillartop2:247,118,98,98,98,98,98,98,246,183,178,178,117,118,98,98,98,98,98,125,98,178,\nbackground basementblocktile basementpillartop3:248,122,123,98,98,99,98,98,124,98,178,178,121,122,123,98,98,98,125,98,98,178,178,179,180,181,98,179,180,181,98,98,178,\n178,125,98,98,98,98,98,98,117,118,178,178,98,98,background basementpattern basementtile baseright:249,98,210,211,98,98,98,178,background towerbalconytoprightroof:250,background halftiletopright towerbalconyrightroof:251,156,background roofdown roofleft roofpattern roofup towertileoutside:252,187,74,74,74,74,background halftilebottomright towerwall2right:253,background towerwall1right:254,\nbackground physicalwall towerwallintrightmid:255,background towerpillartop1 towerwallintright:256,84,80,80,109,84,80,80,background towerwallbottomright:257,76,255,background towerwallintright:258,80,80,80,80,80,80,80,257,76,70,89,90,70,70,background towerbalconytopright:259,background towerbalconyright:260,260,260,260,76,\n255,258,80,109,84,85,86,80,80,257,76,255,258,80,80,80,80,80,80,80,257,76,71,71,82,82,70,259,260,260,260,260,76,\n255,258,80,80,132,background mark puzzle4mesage1 puzzletilewrongnorm towertile:261,141,80,80,257,76,255,258,80,85,139,84,169,80,80,257,76,89,90,71,70,70,259,260,260,260,260,76,\n255,258,80,80,80,80,80,111,80,257,76,255,258,85,86,80,80,80,80,80,257,76,254,background towerwall2right:262,254,background towerbaseright:263,2,3,2,41,2,3,1,\n13,13,15,15,145,background count0 drawgoal3 drawingboardright:264,background count0 drawgoal2 drawingboardright:265,background count0 drawgoal0 drawingboardright:266,background count0 drawgoal0 drawingboarddownright:267,15,4,background basementwallright:268,98,98,98,98,99,98,98,98,98,background basementwallbottomright:269,268,98,98,98,98,98,98,98,98,98,269,\n268,98,98,98,98,98,98,98,98,98,269,268,98,98,98,98,98,98,98,98,98,269,268,98,98,98,98,99,98,98,98,98,269,\n268,98,246,183,98,98,246,183,98,98,269,268,98,98,98,98,98,98,98,98,98,269,268,98,62,98,98,98,98,98,98,98,269,\n268,98,98,210,background basementpattern basementtile baseup:270,98,98,98,98,98,269,71,250,251,102,background dirttile rosetile3 towertileoutside:271,104,271,186,background halftilebottomright towerwall1right:272,262,254,background physicalwall towerwallintrighttop:273,255,256,106,167,162,80,80,257,76,76,\n273,255,258,80,111,80,80,80,257,76,76,71,82,82,71,70,71,70,82,71,82,76,273,255,258,109,84,85,86,80,257,76,76,\n273,255,258,80,80,80,80,80,257,76,76,70,82,82,70,71,71,70,71,82,71,76,273,255,258,80,80,80,80,80,257,76,76,\n273,255,258,80,80,80,80,80,257,76,76,82,71,70,70,70,87,197,82,70,70,76,273,255,258,80,80,80,80,80,257,76,76,\n273,255,258,80,169,80,80,80,257,76,76,63,92,64,3,1,3,2,41,1,2,2,13,13,15,15,14,15,15,15,15,24,4,\nbackground basementwallrightmid:274,268,246,183,98,99,246,183,98,269,119,background basementpillartop3 basementwallrightmid:275,background basementpillarmid3 basementwallright:276,123,98,98,98,98,246,183,269,119,274,268,246,183,98,98,98,125,98,269,119,\n274,background basementpillartop2 basementwallright:277,118,98,125,117,118,117,118,269,119,274,268,117,118,98,99,117,118,98,269,119,274,268,98,98,98,98,98,98,98,269,119,\n274,268,98,98,98,98,98,98,98,269,119,274,268,98,125,98,98,246,183,98,269,119,275,276,123,98,98,98,121,122,123,269,119,\n71,82,250,251,74,74,74,253,254,262,254,76,273,255,258,80,80,80,257,76,76,76,76,273,255,258,80,80,80,257,76,76,76,\n82,82,82,82,82,82,71,82,70,82,76,76,273,255,256,background puzzlepanel towerpillar1 towertile:278,background imbalancemesage2 mark puzzletilewrongnorm towerpillartop2 towertile:279,86,257,76,76,76,76,273,255,258,80,80,80,257,76,76,76,\n82,82,71,71,71,70,70,70,71,70,76,76,273,255,258,80,80,80,257,76,76,76,76,273,255,258,80,80,80,257,76,76,76,\n70,70,71,82,70,134,90,82,70,71,76,76,273,255,258,80,80,80,257,76,76,76,76,273,255,258,80,80,80,257,76,76,76,\n63,92,64,3,1,2,3,background ground3 pathhoriz puddlecornertl:280,93,background ground2 puddlecornerbl:281,2,55,55,background secret:282,55,55,55,55,55,55,background housewallintleft housewallsecret:283,4,background basementwallrighttop:284,274,268,98,98,background basemententrance2 bpuzzle1mesage:285,98,98,269,101,101,\n284,274,268,98,98,98,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,\n284,274,268,98,98,99,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,\n284,274,268,98,98,98,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background darkbarrier towerwallintrighttop wall:286,0,0,0,0,0,0,0,0,0,0,286,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,286,0,0,0,0,0,0,0,0,0,0,286,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,286,0,0,0,0,0,0,0,0,0,0,286,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,286,0,0,0,0,0,0,0,0,0,0,286,0,0,0,0,0,0,0,0,254,262,263,2,2,2,3,background ground2 pathhoriz puddletop:287,20,40,1,\n101,101,101,101,101,285,101,101,101,101,101,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,\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,\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,9,0,0,0,16,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,16,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,63,64,3,3,3,1,3,287,20,40,1,101,101,101,101,98,99,98,101,101,101,101,\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,\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,16,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,18,17,17,18,18,18,17,17,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,17,17,17,17,17,17,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,16,0,0,9,0,0,0,0,0,\n0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,16,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,16,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,\n254,263,2,3,1,3,3,background ground1 pathhoriz puddletop:288,20,61,1,101,101,101,101,98,99,98,101,101,101,101,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,16,0,0,16,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,\n0,0,0,0,0,0,9,0,0,0,0,0,0,17,25,17,35,36,35,9,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,\n0,16,17,25,25,17,25,17,17,37,16,0,0,0,background blocker count0 dark goal0 goodtemp nodrawspace number0:289,background blocker count0 dark goal2 nodrawspace number2 wrongtemp:290,290,background blocker count0 dark goal1 nodrawspace number1 wrongtemp:291,289,0,0,0,0,0,17,18,17,17,17,17,0,0,0,\n0,0,0,background count0 dark goal0 goodtemp imbalancespacerandom number0:292,background count0 dark goal2 imbalancespacerandom number2 wrongtemp:293,293,292,0,0,0,0,0,17,17,17,17,18,0,0,0,0,0,0,0,0,16,background count0 dark goal2 imbalancespace number2 wrongtemp:294,background count0 dark goal3 imbalancespace number3 wrongtemp:295,295,294,0,0,0,\n0,0,0,38,17,17,18,17,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,18,17,17,18,0,0,0,0,0,0,0,17,17,17,43,43,0,0,0,263,2,3,2,3,3,3,background ground1 pathhoriz puddlecornertr:296,47,29,3,\n101,101,101,101,98,99,98,101,101,101,101,0,16,17,25,18,0,0,0,0,0,0,0,0,0,18,25,17,35,35,0,0,0,\n0,0,16,17,25,17,25,35,16,0,0,0,0,16,36,36,34,36,0,0,0,0,0,0,16,17,17,35,35,0,0,0,0,\n0,0,17,44,17,35,background balancespace blocker count0 dark goal0 goodtemp:297,35,0,0,0,0,0,0,289,291,291,289,289,0,0,0,0,0,0,0,0,291,background blocker count0 dark goal3 nodrawspace number3 wrongtemp:298,291,291,0,0,\n0,0,0,297,35,34,35,297,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,43,17,44,17,37,43,37,0,\n0,0,0,290,290,298,289,290,0,0,0,0,0,37,43,17,18,17,17,0,0,0,0,0,0,293,293,293,293,0,0,0,0,\n0,18,18,25,25,17,0,0,0,0,0,0,0,0,0,294,294,294,294,0,0,0,0,0,16,18,38,18,38,26,0,0,0,\n0,0,38,17,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,25,25,17,9,0,0,0,\n0,0,0,17,43,17,17,17,9,0,0,3,2,1,1,3,1,2,41,2,2,3,101,101,101,101,98,99,98,98,98,98,98,\n0,0,18,17,17,0,0,0,0,0,0,0,0,0,17,17,25,34,34,0,0,0,0,0,0,34,25,43,35,34,0,0,0,\n0,0,0,34,25,34,18,0,0,0,0,0,0,0,25,17,35,36,0,0,0,0,0,0,17,25,17,35,36,35,0,0,0,\n0,0,0,289,background blocker count0 dark goal4 nodrawspace number4 wrongtemp:299,291,290,289,0,0,0,0,0,0,0,0,290,290,290,290,0,0,0,0,0,35,51,51,51,35,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,18,17,25,18,43,25,17,17,0,0,0,0,291,289,291,290,291,0,0,0,\n0,16,17,18,17,17,43,37,0,0,0,0,0,0,293,293,293,293,9,0,0,0,0,37,43,37,43,37,0,0,0,0,0,\n0,0,0,background imbalance wall:300,294,294,294,294,9,0,0,0,0,0,25,17,26,25,18,0,0,0,0,0,17,44,25,17,9,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,25,25,18,0,0,0,0,0,0,0,17,17,25,18,18,0,0,0,\n2,background ground3 houseroofside:301,background housewallside:302,302,302,3,2,41,2,1,3,101,101,101,101,98,99,98,98,98,98,background basemententrance1:303,0,0,36,35,35,9,0,0,0,0,0,\n0,0,0,25,25,25,35,35,0,0,0,0,0,0,36,34,35,297,35,0,0,0,0,0,0,36,34,34,34,16,0,0,0,\n0,0,0,25,17,35,36,0,0,0,0,0,16,35,36,35,35,34,35,0,0,0,0,0,0,290,290,298,299,290,0,0,0,\n0,0,0,0,0,298,291,298,290,0,0,0,0,0,34,51,51,51,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,18,17,18,17,17,17,17,25,0,0,0,background nodraw wall:304,291,298,299,291,289,0,0,0,0,0,17,17,17,44,17,17,0,0,0,\n0,0,0,292,293,293,292,0,0,0,0,0,17,17,17,17,18,0,0,0,0,0,0,0,0,0,background count0 dark goal1 imbalancespace number1 wrongtemp:305,305,305,305,0,0,0,\n0,0,0,17,25,38,26,18,0,0,0,0,16,18,25,25,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,17,18,17,17,0,0,0,0,0,0,0,43,43,17,43,43,0,0,0,301,background houseroof:306,background housewall:307,307,150,background ground3 pathend:308,background ground2 pathvert:309,background ground1 pathupbend:310,background ground1 puddlecornertl:311,58,12,\n101,101,101,101,98,99,98,98,98,98,98,0,0,35,34,36,0,0,0,0,0,0,0,0,16,17,17,17,34,36,16,0,0,\n0,0,0,35,51,25,25,34,0,0,0,0,0,0,36,25,36,18,0,0,0,0,0,0,0,17,17,35,35,16,0,0,0,\n0,0,35,297,35,35,51,35,0,0,0,0,0,304,290,298,289,291,291,0,0,0,0,0,0,0,304,298,290,299,290,0,0,\n0,0,0,35,51,51,51,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,17,17,17,17,37,17,25,17,16,\n0,0,0,289,290,289,291,289,0,0,0,0,0,18,17,17,17,43,17,16,0,0,0,0,0,background imbalancerandom wall:312,0,7,0,0,0,0,0,\n16,17,17,17,25,18,0,0,0,0,0,0,0,0,0,16,0,0,7,0,0,0,0,0,0,18,17,18,26,17,16,0,0,\n0,0,18,17,38,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,7,0,0,0,0,\n0,0,0,43,18,25,18,43,0,0,0,306,306,307,background housewallcrack:313,307,2,1,1,42,20,40,101,101,101,101,101,101,101,101,101,101,101,\n0,0,7,8,16,0,0,0,0,0,0,0,0,0,0,9,7,8,0,0,0,0,0,0,9,35,17,18,25,17,16,0,0,\n0,0,0,16,0,7,8,0,0,0,0,0,0,0,16,0,7,8,0,0,0,0,0,0,35,36,35,35,34,35,16,0,0,\n0,0,0,289,291,298,289,289,0,0,0,0,0,0,0,0,290,291,290,291,0,0,0,0,0,297,35,34,35,297,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,17,18,18,17,25,17,17,18,0,0,0,0,0,0,7,0,0,0,0,0,\n0,0,17,17,17,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,0,16,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,7,8,0,0,0,0,0,0,16,7,8,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,7,8,0,0,0,0,0,0,\n306,306,307,background housewindow:314,307,2,2,3,42,20,21,101,101,101,101,101,101,101,101,101,101,101,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,7,8,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,7,8,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,\n0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,background balancemesagefinal2 dark end puzzlestartbadend:315,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,16,0,7,8,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,9,8,7,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,306,306,307,307,307,2,2,1,background ground1 puddlecornertr:316,47,background ground2 puddlecornerbr:317,\n101,101,101,101,101,101,101,101,101,101,101,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,\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,\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,\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,\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,\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,\n0,0,0,0,0,0,0,0,0,0,0,306,306,307,307,307,1,1,2,3,2,1,101,101,101,101,101,101,101,101,101,101,101,\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,\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,\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,\n", 0, "1627779185736.9275"] + ["title Rose\nhomepage www.puzzlescript.net\nnorepeat_action\nverbose_logging\nflickscreen 11x11\ntext_color #be2633\n\nagain_interval 1\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\n\nBackground\ngrey\n\nPhysicalWall \n#1a2d38\n00000\n00000\n00000\n00000\n00000\n\nWall\n#d4ca8e \n\nmanleft\n#ff7245 #2f2f3c #3d2c29 #ff8058\n.100.\n.300.\n0222.\n.300.\n.300.\n\nmanup\n#ff7245 #2f2f3c #3d2c29 #ff8058\n.300.\n.300.\n02220\n.300.\n.300.\n\nmanright\n#ff7245 #2f2f3c #3d2c29 #ff8058\n.301.\n.300.\n.2220\n.300.\n.300.\n\nmandown\n#ff7245 #2f2f3c #3d2c29 #ff8058\n.101.\n.300.\n02220\n.300.\n.300.\n\nrosetilestart\ntransparent\n\nrosetile1\n#88b32f #be2633 \n10000\n01000\n00010\n00101\n00010\n\nrosetile2\n#88b32f #be2633 \n00000\n01000\n10100\n01000\n00000\n\nrosetile3\n#88b32f #be2633 \n00000\n00100\n01010\n00100\n00000\n\ndirttile \n#a46422 #83501b #be2633\n10100\n01010\n00101\n10010\n02021\n\nrose1\n#fce6ad #dfe989\n00000\n00000\n00000\n00001\n00001\n\nrose2\n#fce6ad #dfe989 #a3ce27\n00000\n00000\n00000\n00010\n22222\n\nrose3\n#fce6ad #dfe989 #a3ce27\n00000\n00000\n00000\n00000\n00012\n\nrose4\n#fce6ad #dfe989 #a3ce27 #be2633 #9f2436\n00000\n03334\n33343\n33433\n24333\n\nrose5\n#fce6ad #dfe989 #a3ce27 #be2633 #9f2436\n00000\n40000\n30300\n33300\n34300\n\nrose6\n#fce6ad #dfe989 #a3ce27 #88b32f\n00002\n00022\n02333\n03330\n00000\n\nrose7\n#fce6ad #dfe989 #a3ce27 #88b32f\n23332\n30003\n00000\n00000\n00000\n\nrose8\n#fce6ad #dfe989 #a3ce27 #88b32f\n20012\n22223\n13330\n10000\n00000\n\nrose9\n#fce6ad #dfe989 #a3ce27 #88b32f #be2633 #9f2436\n33445\n00554\n00000\n00000\n00000\n\nrose10\n#fce6ad #dfe989 #a3ce27 #88b32f #be2633 #9f2436\n54004\n40040\n00000\n00000\n00000\n\n(scenery - tower exterior)\npathstart\ngrey\n\npathhoriz\n#d1ccb2 #dad6c3\n11111\n00000\n00000\n00000\n11111\n\npathvert\n#d1ccb2 #dad6c3\n10001\n10001\n10001\n10001\n10001\n\npathend\n#d1ccb2 #dad6c3\n..1..\n.111.\n.101.\n10001\n10001\n\npathtri\n#d1ccb2 #dad6c3\n10001\n00000\n00000\n00000\n11111\n\npathrightbend\n#d1ccb2 #dad6c3\n..111\n.1000\n10000\n10000\n10001\n\npathupbend\n#d1ccb2 #dad6c3\n10001\n00001\n00001\n0001.\n111..\n\ngroundstart\n#c5c4be #eaeae8\n00000\n00000\n00000\n00000\n00000\n\nground1\n#c5c4be #eaeae8\n00000\n00000\n00000\n01000\n00000\n\nground2\n#c5c4be #eaeae8\n00000\n00000\n00000\n00000\n00000\n\nground3\n#c5c4be #eaeae8\n00100\n00000\n00000\n00000\n00000\n\npuddlecenter\n#b8d9e9 #d4e8f2 #c5c4be\n10101\n01010\n00000\n10101\n01010\n\npuddleleft\n#b8d9e9 #d4e8f2 #c5c4be\n.1101\n.1010\n.1000\n.1101\n.1010\n\npuddleright\n#b8d9e9 #d4e8f2 #c5c4be\n1011.\n0101.\n001..\n101..\n0101.\n\npuddletop\n#b8d9e9 #d4e8f2 #c5c4be\n.....\n11111\n00000\n10101\n01010\n\npuddlebottom\n#b8d9e9 #d4e8f2 #c5c4be\n10101\n01010\n00000\n11111\n.....\n\npuddlecornertr\n#b8d9e9 #d4e8f2 #c5c4be\n.....\n111..\n0011.\n1011.\n0101.\n\npuddlecornertl\n#b8d9e9 #d4e8f2 #c5c4be\n.....\n...11\n..100\n..101\n.1010\n\npuddlecornerbl\n#b8d9e9 #d4e8f2 #c5c4be\n..101\n...10\n...10\n....1\n.....\n\npuddlecornerbr\n#b8d9e9 #d4e8f2 #c5c4be\n1011.\n0101.\n0011.\n111..\n.....\n\nhousewall\n#fbdf98\n\nhousewallcrack\n#fbdf98 #e2d4b1\n01000\n00100\n01000\n00000\n00000\n\nhousewallside\n#fbdf98 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\nhouseroof\n#b4865a #2d303f\n00100\n01000\n10000\n00001\n00010\n\nhouseroofside\n#b4865a #bc926b #2d303f\n....1\n...10\n..110\n.1002\n11020\n\nhouseentrance\n#41555f black\n00000\n01110\n01110\n01110\n01110\n\nhousewindow\n#b7ab69 #41555f #5c7787 #4f6774\n11012\n11023\n00000\n12011\n23011\n\ntowerwall1\n#1a2d38 #86858d\n01000\n01000\n01000\n11111\n00010\n\ntowerwall2\n#1a2d38 #86858d\n00010\n00010\n00010\n11111\n01000\n\ntowerbase \n#1a2d38 #86858d \n01010\n01010\n01010\n11111\n00100\n\ntowerwall1left\n#1a2d38 #86858d #365e6b #9e9da4\n23000\n23000\n23000\n33111\n22010\n\ntowerwall2left\n#1a2d38 #86858d #365e6b #9e9da4\n22010\n22010\n22010\n33111\n23000\n\ntowerbaseleft\n#1a2d38 #86858d #365e6b #9e9da4\n23010\n23010\n23010\n33111\n22100\n\ntowerwall1right\n#1a2d38 #86858d #15242d #6b6a71\n01022\n01022\n01022\n11133\n00032\n\ntowerwall2right\n#1a2d38 #86858d #15242d #6b6a71\n00032\n00032\n00032\n11133\n01022\n\ntowerbaseright\n#1a2d38 #86858d #15242d #6b6a71\n01032\n01032\n01032\n11133\n00122\n\ntowerentrance\nblack\n\ntowerentrancefront\nblack\n\n(scenery - house interior)\n\nhousefloornorm\n#dfaa18 #c99916\n10001\n10001\n10001\n10001\n10001\n\nhousefloor1\n#dfaa18 #c99916\n10001\n10001\n11111\n10001\n10001\n\nhousefloor2\n#dfaa18 #c99916\n10001\n10001\n10001\n10001\n11111\n\nhousewallinttop\n#fce6ad\n\nhousewallintright\n#f9d371 #fce6ad\n00001\n00001\n00001\n00001\n00001\n\nhousewallintleft\n#f9d371 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\nhousewallintdown\n#f9d371\n\nhousefloorstart\ntransparent\n\nhiddendoor\n#dfaa18 #c99916\n10001\n10001\n10001\n10001\n10001\n\nhiddendoortemp\ntransparent\n\n(scenery - tower interior)\n\ntowertile\n#587ba2 #4f6e92 #7895b6 #354961 #425a78\n21111\n20003\n20003\n20003\n44443\n\ntowertilecrack\n#587ba2 #4f6e92 #7895b6 #354961 #425a78\n21111\n20003\n20003\n20003\n44443\n\ntowertilecrack1\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #a6b0bc\n21111\n20003\n20553\n25003\n44443\n\ntowertilecrack2\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #a6b0bc\n21111\n50005\n50003\n25003\n45443\n\ntowertilecrack3\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #a6b0bc\n25111\n55003\n20005\n20053\n44453\n\ntowerwallbottomleft\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #1a2d38\n51111\n55003\n55503\n55553\n55555\n\ntowerwallbottomright\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #1a2d38 #354961\n21116\n20065\n20655\n26555\n65555\n\ntowerwallinttop\n#354961 #0f1b2d\n11111\n11111\n00000\n00000\n00000\n\ntowerwallinttoppermanent\n#354961 #0f1b2d\n11111\n11111\n00000\n00000\n00000\n\ntowerwallintbottom\n#1a2d38 #354961\n11111\n00000\n00000\n00000\n00000\n\ntowerwallintleft\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #354961 #0f1b2d\n65551\n55503\n55003\n50003\n44443\n\ntowerwallintleftmid\n#354961 #0f1b2d\n00011\n00111\n01110\n11100\n11000\n\ntowerwallintlefttop\n#354961 #0f1b2d\n....0\n...00\n..000\n.0000\n00001\n\ntowerwallintright\n#587ba2 #4f6e92 #7895b6 #354961 #425a78 #354961 #0f1b2d\n25556\n20555\n20055\n20005\n44443\n\ntowerwallintrightmid\n#354961 #0f1b2d\n11000\n11100\n01110\n00111\n00011\n\ntowerwallintrighttop\n#354961 #0f1b2d\n0....\n00...\n000..\n0000.\n10000\n\ntowerpillar1\n#1d304b #b7c5c4 #8da3a2 #7c9594 #28814b #be2633\n00230\n01530\n01240\n01230\n00000\n\ntowerpillartop1\n#7c9594 \n.....\n.....\n.....\n.....\n...0.\n\ntowerpillar2\n#1d304b #b7c5c4 #8da3a2 #7c9594 #28814b\n01230\n01240\n01430\n04230\n00000\n\ntowerpillartop2\n#7baab2 #b7c5c4 #8da3a2 #7c9594 #28814b\n.....\n.1...\n.12..\n.143.\n.423.\n\ntowerpillar2special\n#1d304b #b7c5c4 #2ff5d6 #7c9594 #28814b\n01230\n01230\n01230\n01230\n00000\n\ntowerpillartop2special\n#7baab2 #b7c5c4 #2ff5d6 #7c9594 #28814b\n.....\n.1...\n.12..\n.123.\n.123.\n\ntowerpillar3\n#1d304b #b7c5c4 #2ff5d6 #7c9594 #28814b\n01230\n01230\n01230\n01230\n00000\n\ntowerpillarmid3\n#7baab2 #b7c5c4 #2ff5d6 #7c9594 #28814b\n.123.\n.123.\n.123.\n.123.\n.123.\n\ntowerpillartop3\n#7baab2 #b7c5c4 #2ff5d6 #7c9594 #6f8c82 #6e98a1\n45554\n44444\n.123.\n.123.\n.123.\n\ntowerstairsup\n#d4dcdc #a4b5b5 #b5c4c3\n....1\n...22\n..110\n.2200\n11000\n\ntowerstairsdown1\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\ntowerstairsuptemp\n#d4dcdc #a4b5b5 #b5c4c3\n....1\n...22\n..110\n.2200\n11000\n\ntowerstairsdowntemp\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\ntowerwallint\ntransparent\n\n(tower balcony)\n\ntowertilehalflight\n#829d97 #b6c6b0 #94aba6 #66827d #7693a4 #91a8b6 #526b7c #354961\n10000\n12223\n52226\n54446\n66667\n\n\ntowertileoutside\n#94aba6 #829d97 #a9bcb8 #72908a #66827d\n21111\n20004\n20004\n20004\n33334\n\ntowerbalconyleft\n#94aba6 #829d97 #72908a #66827d #deddd1 #617978 #415150\n45611\n45603\n45603\n45603\n45623\n\ntowerbalconyright\n#94aba6 #829d97 #72908a #a9bcb8 #deddd1 #617978 #415150\n31654\n30654\n30654\n30654\n22654\n\ntowerbalconytop\n#415150 #deddd1 #617978 #94aba6 #a9bcb8 #72908a #66827d\n00000\n00000\n12011\n43336\n55556\n\ntowerbalconytopright\n#415150 #deddd1 #617978 #a9bcb8 #72908a\n21111\n02111\n00211\n30021\n44021\n\ntowerbalconytopleft\n#415150 #deddd1 #617978 #66827d #72908a\n11112\n11120\n11200\n12003\n12043\n\nhighgroundstart\n#deddd1\n\nhighground1\n#deddd1 #b8d9e9\n00000\n00000\n00000\n01000\n00000\n\nhighground2\n#deddd1 #d4e8f2 #b8d9e9\n00000\n01000\n00000\n00000\n00120\n\nhighground3\n#deddd1 #d4e8f2\n00010\n00000\n10000\n00001\n00000\n\nhighpuddletopleft1\n#deddd1 #d4e8f2 #b8d9e9\n00000\n00000\n00011\n00122\n00122\n\nhighpuddletopleft2\n#deddd1 #d4e8f2 #b8d9e9\n00000\n00000\n01111\n01222\n01122\n\nhighpuddletopright1\n#deddd1 #d4e8f2 #b8d9e9\n00000\n00000\n11000\n21000\n21000\n\nhighpuddletopright2\n#deddd1 #d4e8f2 #b8d9e9\n00000\n01110\n12221\n22221\n21110\n\nhighpuddlebottomleft1\n#deddd1 #d4e8f2 #b8d9e9\n00122\n01222\n01222\n00111\n00000\n\nhighpuddlebottomleft2\n#deddd1 #d4e8f2 #b8d9e9\n00122\n00111\n00001\n00001\n00000\n\nhighpuddlebottomright\n#deddd1 #d4e8f2 #b8d9e9\n21000\n21000\n10000\n10000\n00000\n\n(tower roof)\n\nroofpattern\ntransparent\n\nroofleft\n#829d97 #99b0ab\n.....\n.....\n100..\n.....\n.....\n\nroofup\n#829d97 #72908a\n..1..\n..0..\n..0..\n.....\n.....\n\nroofright\n#829d97 #5c7571\n.....\n.....\n..001\n.....\n.....\n\nroofdown\n#829d97 #66827d\n.....\n.....\n..0..\n..0..\n..1..\n\nbasementpattern\ntransparent\n\nbaseleft\n#2e5648 #376759\n.....\n.....\n100..\n.....\n.....\n\nbaseup\n#2e5648 #294d41\n..1..\n..0..\n..0..\n.....\n.....\n\nbaseright\n#2e5648 #1c332c\n.....\n.....\n..001\n.....\n.....\n\nbasedown\n#2e5648 #233e37\n.....\n.....\n..0..\n..0..\n..1..\n\nhalftilebottomright\n#94aba6 #829d97 #a9bcb8 #8aa47f #66827d\n21111\n2000.\n200..\n20...\n3....\n\nhalftilebottomleft\n#94aba6 #829d97 #a9bcb8 #72908a #66827d\n21111\n.0004\n..004\n...04\n....4\n\nhalftiletopright\n#94aba6 #829d97 #a9bcb8 #72908a #66827d\n211..\n2000.\n20004\n20004\n33334\n\nhalftiletopleft\n#94aba6 #829d97 #a9bcb8 #72908a #66827d\n..111\n.0004\n20004\n20004\n33334\n\ntowerbalconytoprightroof\n#415150 #deddd1 #617978 #a9bcb8 #72908a\n21111\n02111\n00211\n30021\n44002\n\ntowerbalconytopleftroof\n#415150 #deddd1 #617978 #66827d #72908a\n11112\n11120\n11200\n12003\n20043\n\ntowerbalconyrightroof\n#6f90bc #6388b7 #8da9cb #5077ab #466998 #415150\n21.55\n200.5\n2000.\n20004\n33334\n\ntowerbalconyleftroof\n#6f90bc #6388b7 #8da9cb #5077ab #466998 #415150\n55.11\n5.004\n.0004\n20004\n33334\n\n(tower basement)\n\nbasemententrance\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\nbasemententrance1\n#b7c5c4 #8da3a2 #98acab #335f50 #396959 #447f6c\n33331\n54422\n54110\n52200\n11000\n\nbasemententrance2\n#a7c7c4 #91b9b5 #6ba093 #b8d2d0 #7daca8\n11112\n30002\n30002\n30002\n34444\n\nbasementstairsdown\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\nbasementstairsdowntemp\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\nbasementtile\n#396959 #335f50 #223f36 #447f6c #2b4d43\n11112\n30002\n30002\n30002\n34444\n\nbasementstairsdownblocked\n#396959 #335f50 #223f36 #447f6c #2b4d43\n11112\n30002\n30002\n30002\n34444\n\ntowerstairsdown2\n#4f6362 #415150 #586e6d #627a79 #6d8786 #7b9493\n11115\n11145\n11345\n12345\n02345\n\nbasementlinetile\n#a7c7c4 #91b9b5 #6ba093 #b8d2d0 #7daca8\n11112\n30002\n30002\n30002\n34444\n\nbasementblocktile\n#396959 #335f50 #223f36 #447f6c #2b4d43\n11112\n30002\n30002\n30002\n34444\n\nbasementlineblocktile\n#a7c7c4 #91b9b5 #6ba093 #b8d2d0 #7daca8\n11112\n30002\n30002\n30002\n34444\n\nbasementwallright\n#396959 #335f50 #46826c #447f6c #2b4d43 #78b6a0\n12225\n30222\n30022\n30002\n34444\n\nbasementwallrightmid\n#46826c #78b6a0\n11000\n11100\n01110\n00111\n00011\n\nbasementwallrighttop\n#46826c #78b6a0 #12261b\n02222\n00222\n00022\n00002\n10000 \n\nbasementwallleft\n#396959 #46826c #223f36 #447f6c #2b4d43 #78b6a0\n51112\n11102\n11002\n10002\n44444\n\nbasementwallleftmid\n#46826c #78b6a0\n00011\n00111\n01110\n11100\n11000\n\nbasementwalllefttop\n#46826c #78b6a0 #12261b\n22220\n22200\n22000\n20000\n00001\n\nbasementwallbottomleft\n#396959 #335f50 #223f36 #12261b\n31112\n33002\n33302\n33332\n33333\n\nbasementwallbottomright\n#396959 #335f50 #12261b #447f6c\n11112\n30022\n30222\n32222\n22222\n\nbasementwall\ngrey\n\nbasementphysicalwall\n#12261b\n\nbasementphysicalwallperm\n#12261b\n\nbasementpillar1\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.1...\n.1...\n.12..\n.123.\n00000\n\nbasementpillar2\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n00000\n\nbasementpillartop2\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.....\n...3.\n..23.\n.123.\n.123.\n\nbasementpillar3\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n00000\n\nbasementpillarmid3\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n.123.\n\nbasementpillartop3\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.....\n.....\n.1.3.\n.123.\n.123.\n\nbasementpillar4\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n00000\n\nbasementpillartop4\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.....\n.1...\n.12..\n.123.\n.123.\n\nbasementpillar5\n#6f8c82 #d77e57 #d16b3f #c55d2f\n...3.\n...3.\n..23.\n.123.\n00000\n\nbasementpillar6\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n00000\n\nbasementpillarmid6\n#6f8c82 #d77e57 #d16b3f #c55d2f\n.123.\n.123.\n.123.\n.123.\n.123.\n\nbasementpillartop6\n#6f8c82 #d77e57 #d16b3f #c55d2f #6f8c82 #6e98a1\n54445\n55555\n.123.\n.123.\n.123.\n\nend\n#123456\n000..\n.000.\n..000\n...00\n....0\n\n(Drawing)\n\ndrawingboardcenter\n#ffffb3\n\ndrawingboardleft\n#ffffb3 #f7f7bb\n10000\n10000\n10000\n10000\n10000\n\ndrawingboardtop\n#ffffb3 #f7f7bb\n11111\n00000\n00000\n00000\n00000\n\ndrawingboardright\n#ffffb3 #f7f7bb\n00001\n00001\n00001\n00001\n00001\n\ndrawingboarddown\n#ffffb3 #f7f7bb\n00000\n00000\n00000\n00000\n11111\n\ndrawingboardtopleft\n#ffffb3 #f7f7bb\n11111\n10000\n10000\n10000\n10000\n\ndrawingboarddownleft\n#ffffb3 #f7f7bb\n10000\n10000\n10000\n10000\n11111\n\ndrawingboardtopright\n#ffffb3 #f7f7bb\n11111\n00001\n00001\n00001\n00001\n\ndrawingboarddownright\n#ffffb3 #f7f7bb\n00001\n00001\n00001\n00001\n11111\n\ndrawleft\n#281904\n.....\n.....\n000..\n.....\n.....\n\ndrawup\n#281904\n..0..\n..0..\n..0..\n.....\n.....\n\ndrawright\n#281904\n.....\n.....\n..000\n.....\n.....\n\ndrawdown\n#281904\n.....\n.....\n..0..\n..0..\n..0..\n\ndrawgoal0\ntransparent\n\ndrawgoal1\ntransparent\n\ndrawgoal2\ntransparent\n\ndrawgoal3\ntransparent\n\ndrawgoal4\ntransparent\n\ndrawchange\ntransparent\n\ndrawgood\ntransparent\n\ndrawwrong\ntransparent\n\n(Earth Puzzle)\n\npuzzletilewrongnorm\n#2ff5d6\n0...0\n.0.0.\n.....\n.0.0.\n0...0\n\npuzzletilewrongend\n#2ff5d6\n0...0\n.0.0.\n.....\n.0.0.\n0...0\n\npuzzletilegoodnorm\n#39f52f\n0...0\n.0.0.\n.....\n.0.0.\n0...0\n\npuzzletilewronghidden\n#3d7162 #3a6b5a #2b5146 #478572 #335c50\n31111\n30002\n30002\n30002\n44442\n\npuzzletilegoodhidden\n#386759 #3a6b5a #2b5146 #478572 #335c50\n31111\n30002\n30002\n30002\n44442\n\npuzzletilehidden\ntransparent\n\npuzzlepanel\n#d4ca8e #e5dfbb #c0b25b #27a0fc\n.....\n10002\n10302\n10002\n.....\n\npuzzlestartbadnorm\n#2ff5d6\n\npuzzlestartbadend\n#2ff5d6\n\npuzzlestartgood\n#39f52f\n\nbalancespace\n#c4cbc3\n00000\n00000\n00000\n00000\n00000\n\nnodrawspace\n#c4cbc3\n00000\n00000\n00000\n00000\n00000\n\nimbalancespace\n#c4cbc3\n00000\n00000\n00000\n00000\n00000\n\nimbalancespacerandom\n#c4cbc3\n00000\n00000\n00000\n00000\n00000\n\nclearspace\n#c4cbc3 #d11320\n10001\n01010\n00100\n01010\n10001\n\nclear\ntransparent\n\nnodraw\ntransparent\n\nimbalance\ntransparent\n\nimbalancerandom\ntransparent\n.....\n.....\n.....\n.....\n.....\n\n1left\n#71806f\n.....\n.....\n00...\n.....\n.....\n\n1up\n#71806f\n..0..\n..0..\n.....\n.....\n.....\n\n1right\n#71806f\n.....\n.....\n...00\n.....\n.....\n\n1down\n#71806f\n.....\n.....\n.....\n..0..\n..0..\n\n(Earth - selectors)\n\nselector\n#da7c7c\n00.00\n0...0\n.....\n0...0\n00.00\n\nredselector\nred\n00.00\n0...0\n.....\n0...0\n00.00\n\nnumber1\n#15ae85\n.....\n.0...\n.....\n.....\n.....\n\nnumber2\n#157bae\n.....\n.0.0.\n.....\n.....\n.....\n\nnumber3\n#1520ae\n.....\n.0.0.\n.....\n.0...\n.....\n\nnumber4\n#6615ae\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nnumberQ\n#fdfe10\n.....\n.....\n..0..\n.....\n.....\n\nnumberE\n#0fb209\n.....\n.000.\n.0.0.\n.000.\n.....\n\nnumberEwrong\n#a70f17\n.....\n.000.\n.0.0.\n.000.\n.....\n\nnumberO\n#0fb209\n.....\n.000.\n.0.0.\n.000.\n.....\n\nnumberOwrong\n#a70f17\n.....\n.000.\n.0.0.\n.000.\n.....\n\nnumber0\ntransparent\n\nGood\n#39f52f\n.....\n.....\n..0..\n.....\n.....\n\ngoodtemp\ntransparent\n\nWrong\n#d11320\n.....\n.....\n..0..\n.....\n.....\n\nblocker\nblack\n.....\n.....\n..0..\n.....\n.....\n\nwrongtemp\ntransparent\n\nchange\ntransparent\n\n(Earth - count)\n\ncount0\ntransparent\n\ncount1\ntransparent\n\ncount2\ntransparent\n\ncount3\ntransparent\n\ncount4\ntransparent\n\ncountup\ntransparent\n\ncountdown\ntransparent\n\n(Earth - goals)\n\ngoal0\ntransparent\n\ngoal1\ntransparent\n\ngoal2\ntransparent\n\ngoal3\ntransparent\n\ngoal4\ntransparent\n\ngoale\ntransparent\n\ngoalo\ntransparent\n\nchain\ntransparent\n\nchainstart\ntransparent\n\nchaingoal\ntransparent\n\nchaingoaltemp\ntransparent\n\nchainstarttemp\ntransparent\n\nleftmark\ntransparent\n\nrightmark\ntransparent\n\nupmark\ntransparent\n\ndownmark\ntransparent\n\ndrawsetup1\ntransparent\n\ndrawsetup2\ntransparent\n\ndrawsetup3\ntransparent\n\ndrawsetup4\ntransparent\n\ndrawsetup5\ntransparent\n\nhousewallsecret\ntransparent\n\n(Darkness)\n\nDark\n#d4ca8e\n\nLight\ntransparent\n\nDarkbarrier\ntransparent\n\nlightout\ntransparent\n\nmark\ntransparent\n\nsecret\n#f9d371 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\nsecret2\n#f9d371 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\nsecretsetup\n#f9d371 #fce6ad\n10000\n10000\n10000\n10000\n10000\n\ndrawmark\ntransparent\n\ndrawmarknegative\ntransparent\n\nbasementprogressmark\ntransparent\n\ntowerprogressmark\ntransparent\n\ntowerstairsupblocked\n#587ba2 #4f6e92 #7895b6 #354961 #425a78\n21111\n20003\n20003\n20003\n44443\n\n(messages)\n\nfloor0mesage\ntransparent\n\nfloor1mesage\ntransparent\n\nfloor2mesage\ntransparent\n\nfloor3mesage\ntransparent\n\nfloor4mesage\ntransparent\n\nfloor5mesage\ntransparent\n\nfloor6mesage\ntransparent\n\nfloor7mesage\ntransparent\n\nfloor8mesage\ntransparent\n\nfloor9mesage\ntransparent\n\nbfloor1mesage\ntransparent\n\nbfloor2mesage\ntransparent\n\nbfloor3mesage\ntransparent\n\nbfloor4mesage\ntransparent\n\nbfloor5mesage\ntransparent\n\nbfloor6mesage\ntransparent\n\nbfloor7mesage\ntransparent\n\nbfloor8mesage\ntransparent\n\nbfloor9mesage\ntransparent\n\nmessagemarkup\ntransparent\n\nmessagemarkdown\ntransparent\n\nentrancemesage\ntransparent\n\npuzzle1mesage1\ntransparent\n\npuzzle1mesage2\ntransparent\n\npuzzle2mesage1\ntransparent\n\npuzzle2mesage2\ntransparent\n\npuzzle3mesage1\ntransparent\n\npuzzle3mesage2\ntransparent\n\npuzzle4mesage1\ntransparent\n\npuzzle4mesage2\ntransparent\n\npuzzle5mesage1\ntransparent\n\npuzzle5mesage2\ntransparent\n\npuzzle6mesage1\ntransparent\n\npuzzle6mesage2\ntransparent\n\npuzzle8mesage1\ntransparent\n\npuzzle8mesage2\ntransparent\n\nbpuzzle1mesage\ntransparent\n\nbpuzzle2mesage\ntransparent\n\nbpuzzle3mesage\ntransparent\n\nbpuzzle4mesage\ntransparent\n\nbpuzzle5mesage\ntransparent\n\nbpuzzle6mesage\ntransparent\n\nbpuzzle7mesage\ntransparent\n\nbpuzzle8mesage\ntransparent\n\nbpuzzle9mesage\ntransparent\n\nimbalancemesage1\ntransparent\n\nimbalancemesage2\ntransparent\n\nbalancemesagefinal\ntransparent\n\nbalancemesagefinal2\ntransparent\n\nhiddenmesage\ntransparent\n\nbloomstart\ntransparent\n\nbloom1\n#d94148 #be2633 #96222d\n.....\n.....\n....1\n..012\n00222\n\nbloom2\n#d94148 #be2633 #96222d #ab222c\n.....\n.....\n1...3\n21332\n22122\n\nbloom3\n#be2633 #96222d #ab222c #d52c37\n.....\n2....\n2000.\n2220.\n13310\n\nbloom4\n#d94148 #b12833 #96222d\n....0\n....0\n....0\n..001\n..012\n\nbloom5\n#d94148 #b12833 #96222d #d52c37\n12233\n10323\n01223\n01232\n02322\n\nbloom6\n#96222d #d52c37 #be2633\n00200\n01102\n10010\n00010\n00001\n\nbloom7\n#96222d #d52c37 #be2633 #b5242a\n00100\n20101\n02001\n00111\n00131\n\nbloom8\n#871f27 #9a1f26 #be2633\n2....\n02...\n012..\n012..\n012..\n\nbloom9\n#d94148 #b12833 #96222d\n..010\n..012\n..012\n.0112\n..012\n\nbloom10\n#d94148 #b12833 #96222d #d52c37 #ac2322\n23234\n03234\n03234\n02232\n01232\n\nbloom11\n#d52c37 #5b1111 #7d1717 #ab222c\n00010\n02112\n01001\n31021\n32110\n\nbloom12\n#96222d #d52c37 #871f27 #b5242a\n00131\n01001\n01111\n11002\n00002\n\nbloom13\n#871f27 #9a1f26 #be2633 #d52c37\n0012.\n0012.\n013..\n013..\n03...\n\nbloom14\n#d94148 #b12833 #96222d\n..010\n..012\n.0012\n..000\n....0\n\nbloom15\n#d94148 #b12833 #96222d #d52c37\n01233\n02323\n02323\n32322\n32332\n\nbloom16\n#96222d #d52c37 #ab222c\n22222\n00000\n10001\n11111\n10000\n\nbloom17\n#96222d #d52c37 #b5242a #871f27 #9a1f26\n10001\n11113\n00213\n00113\n01134\n\nbloom18\n#d52c37 #9a1f26\n00...\n10...\n10...\n10...\n0....\n\nbloom19\n#96222d #d52c37\n11010\n.1110\n...10\n.....\n.....\n\nbloom20\n#96222d #d52c37\n11011\n01100\n10111\n.1...\n.....\n\nbloom21\n#96222d #d52c37\n11001\n0111.\n1....\n.....\n.....\n\nfinalleft\n#71806f\n.....\n.....\n00...\n.....\n.....\n\nfinalup\n#71806f\n..0..\n..0..\n.....\n.....\n.....\n\nfinalright\n#71806f\n.....\n.....\n...00\n.....\n.....\n\nfinaldown\n#71806f\n.....\n.....\n.....\n..0..\n..0..\n\nfinalpattern\ntransparent\n\nbloomend\ntransparent\n\nbloomend1\ntransparent\n\ntarget\ngreen\n\n=======\nLEGEND\n=======\n\nman = manup or mandown or manright or manleft\nPlayer = man or selector or redselector or bloomend1\nground = ground1 or ground2 or ground3\npuddle = puddlecenter or puddleleft or puddleright or puddletop or puddlebottom or puddlecornertr or puddlecornertl or puddlecornerbr or puddlecornerbl\nhighpuddletopleft = highpuddletopleft1 or highpuddletopleft2\nhighpuddletopright = highpuddletopright1 or highpuddletopright2 \nhighpuddlebottomleft = highpuddlebottomleft1 or highpuddlebottomleft2\nhighpuddle = highpuddletopleft1 or highpuddletopleft2 or highpuddletopright1 or highpuddletopright2 or highpuddlebottomleft1 or highpuddlebottomleft2 or highpuddlebottomright\nhighground = highground1 or highground2 or highground3\npuzzletilewrong = puzzletilewronghidden or puzzletilewrongnorm\npuzzletilegood = puzzletilegoodhidden or puzzletilegoodnorm\npuzzletile = puzzletilewrong or puzzletilegood or puzzletilehidden\ndirection = leftmark or rightmark or upmark or downmark\npuzzlespace = balancespace or imbalancespace or imbalancespacerandom\ndrawingboard = drawingboardcenter or drawingboardleft or drawingboardright or drawingboardtop or drawingboarddown or drawingboardtopleft or drawingboardtopright or drawingboarddownright or drawingboarddownleft\nhousefloor = housefloornorm or housefloor1 or housefloor2\nhousefloorcrease = housefloor1 or housefloor2\nrose = rose1 or rose2 or rose3 or rose4 or rose5 or rose6 or rose7 or rose8 or rose9 or rose10 \ntowertilepick = towertilecrack1 or towertilecrack2 or towertilecrack3\nblocktile = basementblocktile or basementlineblocktile\ntowerstairsdown = towerstairsdown1 or towerstairsdown2\ntowerstairs = towerstairsdown1 or towerstairsdown2 or towerstairsup\npath = pathupbend or pathrightbend or pathhoriz or pathvert or pathend or pathtri or pathstart\nfloormesage = floor1mesage or floor2mesage or floor3mesage or floor4mesage or floor5mesage or floor6mesage or floor7mesage or floor8mesage or floor9mesage or bfloor1mesage or bfloor2mesage or bfloor3mesage or bfloor4mesage or bfloor5mesage or bfloor6mesage or bfloor7mesage or bfloor8mesage or bfloor9mesage or floor0mesage\nrosetile = rosetile1 or rosetile2 or rosetile3\npuzzlestartbad = puzzlestartbadnorm or puzzlestartbadend\npuzzlestart = puzzlestartbad or puzzlestartgood\n\n# = Darkbarrier and Wall\n* = Wall and chainstarttemp\n@ = Wall and chaingoaltemp\n_ = PhysicalWall\n! = imbalance and wall\n: = imbalancerandom and wall\n⸝ = nodraw and wall\n£ = clearspace\n\n(outside)\nP = manright and pathvert and floor0mesage\n. = groundstart\n- = puddlecenter\nz = pathstart and groundstart\n` = housewall\n~ = houseroof\nh = houseentrance\n꠸ = housewindow\nq = towerwall1\nw = towerwall2\n$ = towerbase\nt = towerentrance\n(inside)\n, = towertile\nl = towertilecrack\n/ = towerpillar2 and towertile\n[ = towerpillar1 and towertile\n{ = towerpillar3 and towertile\n⥁ = towerpillar2special and towertile\n↥ = towerstairsup and towertile\nx = puzzletilewrongnorm and towertile\nᵽ = puzzletilewrongend and housefloornorm and balancemesagefinal\n¥ = puzzletilewrongnorm and towertileoutside and imbalancemesage1\nᵶ = puzzletilewrongnorm and towertile and imbalancemesage2\nᶍ = puzzletilewrongnorm and towertileoutside\n☌ = puzzletilehidden and towertile\ny = puzzlestartbadnorm and dark\nᵯ = puzzlestartbadend and dark and balancemesagefinal2 and end\n↓ = towerstairsdown1\n% = towerwallint\nc = towerwallinttoppermanent\n⏙ = towerstairsupblocked and towertile\n\n(balcony)\n& = highgroundstart\n+ = highpuddlebottomright\n' = towertileoutside\n⤫ = towertileoutside and rosetilestart\n\n\n(roof)\nk = roofpattern and towertileoutside\n\n(basement)\n\" = basementtile\n; = basementlinetile\nb = basemententrance1\nn = basemententrance2 and bpuzzle1mesage\n\\ = basementpillar4 and basementtile\n] = basementpillar5 and basementtile\n} = basementpillar6 and basementtile\n| = basementblocktile\n⚎ = basementphysicalwallperm\nᵹ = puzzletilewronghidden and basementtile\n\n\n(puzzle tiles/ messages)\n\n⅕ = puzzletilewrongnorm and towertile and puzzle2mesage1\n⅙ = puzzletilewrongnorm and towertileoutside and puzzle2mesage2\n⅛ = puzzletilewrongnorm and towertile and puzzle3mesage1\n⅔ = puzzletilewrongnorm and towertile and puzzle3mesage2\n⅖ = puzzletilewrongnorm and towertile and puzzle4mesage1\n⅗ = puzzletilewrongnorm and towertile and puzzle4mesage2\n⅘ = puzzletilewrongnorm and towertile and puzzle5mesage1\n⅜ = puzzletilewrongnorm and towertile and puzzle5mesage2\n⅚ = puzzletilewrongnorm and towertile and puzzle6mesage1\n⅐ = puzzletilewrongnorm and towertileoutside and puzzle6mesage2\n⅝ = puzzletilewrongnorm and towertile and puzzle8mesage1\n↉ = puzzletilewrongnorm and towertile and puzzle8mesage2\n⅑ = towerstairsdown1 and bpuzzle2mesage\n⅒ = towerstairsdown2 and bpuzzle3mesage\n⅞ = towerstairsdown2 and bpuzzle4mesage\n⥊ = towerstairsdown2 and bpuzzle5mesage\n⥋ = towerstairsdown2 and bpuzzle6mesage\n⥌ = towerstairsdown2 and bpuzzle7mesage\n⥍ = towerstairsdown2 and bpuzzle8mesage\n⥎ = towerstairsdown2 and bpuzzle9mesage\n⥏ = towerentrance and puzzle1mesage1\n¢ = puzzletilehidden and puzzle1mesage2 and towertile\n\n\n\n(earth)\n(s = selector and goal1 and count0 and number1 and wrongtemp and puzzlespace)\n0 = balancespace and goal0 and count0 and number0 and goodtemp and dark\n1 = balancespace and goal1 and count0 and number1 and wrongtemp and dark\n2 = balancespace and goal2 and count0 and number2 and wrongtemp and dark\n3 = balancespace and goal3 and count0 and number3 and wrongtemp and dark\n4 = balancespace and goal4 and count0 and number4 and wrongtemp and dark\n? = balancespace and count0 and numberQ and goodtemp and dark\ne = balancespace and goale and count0 and numbere and goodtemp and dark\no = balancespace and goalo and count0 and numberowrong and wrongtemp and dark\n(goals with blocker and no number)\n5 = balancespace and goal0 and count0 and goodtemp and dark and blocker\n6 = balancespace and goal1 and count0 and wrongtemp and dark and blocker\n7 = balancespace and goal2 and count0 and wrongtemp and dark and blocker\n8 = balancespace and goal3 and count0 and wrongtemp and dark and blocker\n9 = balancespace and goal4 and count0 and wrongtemp and dark and blocker\n\n(drawing)\na = secret\ns = drawingboardcenter and count0 and drawgoal0\nd = drawingboardcenter and count0 and drawgoal1\nf = drawingboardcenter and count0 and drawgoal2\ng = drawingboardcenter and count0 and drawgoal3\nj = drawingboardcenter and count0 and drawgoal4\nm = housewallintdown\nu = housefloornorm\ni = housefloorstart\nr = rose1\nÐ = housewallintleft and housewallsecret\nᶃ = hiddendoor and hiddenmesage\n\nᶊ = end\n\n► = bloomstart and balancespace and blocker\n◄ = target and balancespace and blocker\n¤ = balancespace and goal0 and count0 and goodtemp and blocker and finalpattern\n┰ = balancespace and goal0 and count0 and goodtemp and blocker\n\n\n=======\nSOUNDS\n=======\n\nsfx1 50548908\nsfx2 70091308\nsfx3 2038108\nsfx4 55009308\nsfx5 88082508\nsfx6 59276308\nsfx7 68756908\nsfx8 20891708\nsfx9 71493108\nsfx10 34050308\n\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ndrawgood, drawwrong, target, bloomstart\nmark, drawmark, drawmarknegative, housefloorstart\nground1, ground2, ground3, groundstart, towertile, towertilecrack1, towertilecrack2, towertilecrack,towertilehalflight,towertileoutside,towertilecrack3,end, balancespace, drawingboardcenter, drawingboardleft, drawingboardright, drawingboardtop, drawingboarddown, drawingboardtopleft, drawingboardtopright, drawingboarddownright, drawingboarddownleft, imbalancespace, imbalancespacerandom, housefloor, blocktile, nodrawspace, clearspace\npath, pathstart, messagemarkup, messagemarkdown\nbasementtile, basementlinetile, puddlecenter, puddleleft, puddleright, puddletop, puddlebottom, puddlecornertr, puddlecornertl, puddlecornerbr, puddlecornerbl\ngood, wrong, goodtemp, wrongtemp puzzletilewrong, puzzletilegood, puzzlestartbad, puzzlestartgood, puzzletilehidden, puzzletilewrongend\nLight, Darkbarrier, number1, number2, number3, number4, number0, numberQ, numbere, numbero, numberewrong, numberowrong, chainstart, chaingoal, chaingoaltemp, chainstarttemp, imbalance, imbalancerandom, nodraw, floormesage, balancemesagefinal2\nchain, leftmark, rightmark, upmark, downmark, countup, countdown, roofpattern,imbalancemesage1, imbalancemesage2, balancemesagefinal, basementpattern, finalpattern\n1Left, drawleft, roofleft, baseleft, finalleft,clear\n1right, drawright, roofright, baseright, finalright\n1up, drawup, roofup, baseup, finalup,towerwallint, Physicalwall, basementwall, basementphysicalwall, basementphysicalwallperm\n1down, drawdown, roofdown, basedown, finaldown\ncount0, count1, count2, count3, count4, drawsetup1, drawsetup2, drawsetup3, drawsetup4, drawsetup5, highgroundstart,highground1, highground2, highground3, highpuddletopright1,highpuddletopright2,highpuddletopleft1,highpuddletopleft2, highpuddlebottomleft1,highpuddlebottomleft2, highpuddlebottomright, towerbalconytopleft, towerbalconytopright\nchange, drawchange, houseentrance, towerentrance, towerentrancefront, towerstairsup, towerstairsdown1, towerstairsuptemp, towerstairsdowntemp,towerwallintleftmid, towerwallintlefttop,towerwallintrightmid, towerwallintrighttop, towerwallinttoppermanent, basementstairsdown, basementstairsdowntemp, secret, secret2, hiddendoortemp, hiddendoor,basementwallrightmid, basementwallrighttop, basementwallleftmid, basementwalllefttop, towerbalconytoprightroof, towerbalconytopleftroof, basemententrance, basemententrance1, basemententrance2, basementstairsdownblocked, towerstairsdown2, towerstairsupblocked, dirttile\nPlayer, Wall, housewall, housewallcrack, housewallside,houseroof, houseroofside, housewindow, towerbase, towerbaseleft, towerbaseright, towerpillar1, towerpillar2, towerpillar2special, towerpillar3,towerwallintleft, towerwallintright, towerwallbottomleft, towerwallbottomright, towerwallinttop, towerwallintbottom,towerwallinttoppermanent, towerbalconyleft, towerbalconyright, towerbalconytop, housewallinttop, housewallintright, housewallintleft, housewallintdown, rose, basementwallbottomleft, basementwallbottomright, basementwallleft, basementwallright, towerwall1, towerwall2, towerbalconyrightroof, towerbalconyleftroof, basementpillar1, basementpillar2, basementpillar3, basementpillar4, basementpillar5, basementpillar6, bloomend, rosetile, rosetilestart, towerwall1right, towerwall1left, towerwall2right, towerwall2left\ngoal0, goal1, goal2, goal3, goal4, goale, goalo, drawgoal0, drawgoal1, drawgoal2, drawgoal3, drawgoal4, puzzlepanel,towerpillartop2, towerpillartop2special, towerpillarmid3, towerpillartop3, basementpillartop2, basementpillarmid3, basementpillartop3, basementpillartop4, basementpillarmid6, basementpillartop6, towerpillartop1\nDark, light, lightout, halftiletopright, halftiletopleft, halftilebottomright, halftilebottomleft\nblocker, basementprogressmark, towerprogressmark, bloom1, bloom2, bloom3, bloom4, bloom5, bloom6, bloom7, bloom8, bloom9, bloom10, bloom11, bloom12, bloom13,bloom14, bloom15, bloom16, bloom17, bloom18, bloom19, bloom20, bloom21\npuzzle1mesage1, puzzle1mesage2, puzzle2mesage1, puzzle2mesage2, puzzle3mesage1, puzzle3mesage2, puzzle4mesage1, puzzle4mesage2, puzzle5mesage1, puzzle5mesage2, puzzle6mesage1, puzzle6mesage2, puzzle8mesage1, puzzle8mesage2, bpuzzle1mesage, bpuzzle2mesage, bpuzzle3mesage, bpuzzle4mesage, bpuzzle5mesage, bpuzzle6mesage, bpuzzle7mesage, bpuzzle8mesage, bpuzzle9mesage, entrancemesage, hiddenmesage, housewallsecret,secretsetup\n\n======\nRULES \n====== \n\n(World Creation)\n\n[groundstart] -> [random ground]\n\n[rosetilestart] -> [random rosetile]\n\n[basementtile| towertileoutside roofpattern] -> [basementtile| basementtile basementpattern]\n\nvertical[pathvert | pathstart] -> [pathvert|pathvert]\nhorizontal[pathvert|pathstart] -> [pathrightbend|pathhoriz]\nhorizontal[pathhoriz|pathstart] -> [pathhoriz|pathhoriz]\nup[pathhoriz|pathstart] -> [pathtri|pathvert]\nright[pathtri|no path] -> [pathupbend|no path]\nup[pathvert|no path] -> [pathend|no path]\n\nright [puddlecenter| no puddle] -> [puddlecenter| puddleright]\nleft [puddlecenter| no puddle] -> [puddlecenter| puddleleft]\nup [puddlecenter| no puddle] -> [puddlecenter| puddletop]\ndown [puddlecenter| no puddle] -> [puddlecenter| puddlebottom]\n\nup[puddleright| no puddle] -> [puddleright| puddlecornertr]\ndown[puddleright| no puddle] -> [puddleright| puddlecornerbr]\nup[puddleleft| no puddle] -> [puddleleft| puddlecornertl]\ndown[puddleleft| no puddle] -> [puddleleft| puddlecornerbl]\n\nleft[houseroof| no houseroof] -> [houseroof| houseroofside]\nleft[housewall|ground] -> [housewallside| ground]\n\nleft[housewindow|]-> [housewindow|housewallcrack]\n\ndown[towerentrance | ground] -> [towerentrance | towerentrancefront]\n\nleft[towerwall1|ground] -> [towerwall1left|ground]\nleft[towerwall2|ground] -> [towerwall2left|ground]\nleft[towerbase|ground] -> [towerbaseleft|ground]\n\nright[towerwall1|ground] -> [towerwall1right|ground]\nright[towerwall2|ground] -> [towerwall2right|ground]\nright[towerbase|ground] -> [towerbaseright|ground]\n\ndown[towertileoutside|towertile] -> [towertileoutside|towertilehalflight]\n\n[towerwallint|basementtile] -> [basementwall|basementtile]\n[basementwall|physicalwall] -> [basementwall|basementphysicalwall]\n[basementtile|physicalwall] -> [basementtile|basementphysicalwall]\n[basementphysicalwall|physicalwall] -> [basementphysicalwall|basementphysicalwall]\n\n[towertile|basementtile] -> [basementtile|basementtile]\n\n[towertile|basementlinetile] -> [basementlinetile|basementlinetile]\n\n[towerpillar1|basementtile] -> [basementpillar1|basementtile]\n[towerpillar2|basementtile] -> [basementpillar2|basementtile]\n[towerpillar3|basementtile] -> [basementpillar3|basementtile]\n\nup[towerpillar1|] -> [towerpillar1|towerpillartop1]\nup[towerpillar2|] -> [towerpillar2|towerpillartop2]\nup[towerpillar2special|] -> [towerpillar2special|towerpillartop2special]\nup[towerpillar3||] ->[towerpillar3|towerpillarmid3|towerpillartop3]\nup[basementpillar2|] -> [basementpillar2|basementpillartop2]\nup[basementpillar3||] -> [basementpillar3|basementpillarmid3|basementpillartop3]\nup[basementpillar4|] -> [basementpillar4|basementpillartop4]\nup[basementpillar6||] -> [basementpillar6|basementpillarmid6|basementpillartop6]\n\ndown[towerwallint|towertile] -> [towerwallinttop|towertile]\nup[towerwallint|towertile] -> [towerwallintbottom|towertile]\nleft[towerwallinttop|towertile] -> [towerwallintright|towertile]\nright[towerwallinttop|towertile] -> [towerwallintleft|towertile]\nleft[towerwallintbottom|towertile] -> [towerwallbottomright|towertile]\nright[towerwallintbottom|towertile] -> [towerwallbottomleft|towertile]\nup[towerwallintleft|]-> [towerwallintleft|towerwallintleftmid]\nup[towerwallintright|]-> [towerwallintright|towerwallintrightmid]\nleft[towerwallintleftmid|] -> [towerwallintleftmid|towerwallintlefttop]\nright[towerwallintrightmid|] -> [towerwallintrightmid|towerwallintrighttop]\n\n\ndown[towertileoutside|towerwallint|towerwall1] -> [towertileoutside|halftilebottomleft towerwall2left|towerwall1]\ndown[towertileoutside|towerwallint|towerwall2] -> [towertileoutside|halftilebottomleft towerwall1left|towerwall2]\nleft[halftilebottomleft towerwall1left|towertileoutside] -> [halftilebottomright towerwall1right|towertileoutside]\nleft[halftilebottomleft towerwall2left|towertileoutside] -> [halftilebottomright towerwall2right|towertileoutside]\nup[towerwallint|towertileoutside] -> [towerwall1|towertileoutside]\n\nup[towertileoutside|towerwallint|highgroundstart]->[towertileoutside|halftiletopleft highgroundstart|highgroundstart]\nleft[halftiletopleft|towertileoutside]->[halftiletopright |towertileoutside]\nup[towertileoutside|towerwallint]->[towertileoutside|highgroundstart]\n\nup[towerbaseleft|towerwall1] -> [towerbaseleft|towerwall1left]\nup[towerbaseleft|towerwall2] -> [towerbaseleft|towerwall2left]\nup[towerbaseright|towerwall1] -> [towerbaseright|towerwall1right]\nup[towerbaseright|towerwall2] -> [towerbaseright|towerwall2right]\nvertical[towerwall1right|towerwall2] -> [towerwall1right|towerwall2right]\nvertical[towerwall2right|towerwall1] -> [towerwall2right|towerwall1right]\nvertical[towerwall1left|towerwall2] -> [towerwall1left|towerwall2left]\nvertical[towerwall2left|towerwall1] -> [towerwall2left|towerwall1left]\n\nup [towertileoutside | towertile] -> [towertileoutside| towertileoutside]\n\n[highgroundstart] -> [random highground]\n\nleft [highpuddlebottomright| no highpuddle] -> [highpuddlebottomright|random highpuddlebottomleft]\nup [highpuddlebottomright| no highpuddle ] -> [highpuddlebottomright|random highpuddletopright]\nup [highpuddlebottomleft| no highpuddle ] -> [highpuddlebottomleft|random highpuddletopleft]\n\nleft[towertileoutside | no halftiletopleft highground] -> [towertileoutside|no halftiletopleft towerbalconyleft]\nright[towertileoutside |no halftiletopright highground] -> [towertileoutside|no halftiletopright towerbalconyright]\nup[towertileoutside | highground] -> [towertileoutside|towerbalconytop]\nup[towerbalconyleft | highground] -> [towerbalconyleft|towerbalconytopleft]\nup[towerbalconyright | highground] -> [towerbalconyright|towerbalconytopright]\n\nleft[towerbalconytop | highground] -> [towerbalconytop|towerbalconytopleftroof]\nright[towerbalconytop | highground] -> [towerbalconytop|towerbalconytoprightroof]\ndown[towerbalconytopleftroof|towerbalconytop] -> [towerbalconytopleftroof| towerbalconyleftroof]\ndown[towerbalconytoprightroof|towerbalconytop] -> [towerbalconytoprightroof|towerbalconyrightroof]\n\nleft[roofpattern|roofpattern] -> [roofpattern roofleft| roofpattern roofright]\nup[roofpattern|roofpattern] -> [roofpattern roofup| roofpattern roofdown]\n\nleft[finalpattern|finalpattern] -> [finalpattern finalleft| finalpattern finalright]\nup[finalpattern|finalpattern] -> [finalpattern finalup| finalpattern finaldown]\n\nleft[basementpattern|basementpattern] -> [basementpattern baseleft| basementpattern baseright]\nup[basementpattern|basementpattern] -> [basementpattern baseup| basementpattern basedown]\n\nup[puzzletilewrong no basementtile no basementlinetile | no puzzlepanel] -> [puzzletilewrong|puzzlepanel]\n\n[imbalance | balancespace] -> [imbalance | imbalancespace]\n[imbalancerandom | balancespace] -> [imbalancerandom | imbalancespacerandom]\n[imbalancespace | balancespace] -> [imbalancespace | imbalancespace]\n[imbalancespacerandom | balancespace] -> [imbalancespacerandom | imbalancespacerandom]\n[nodraw | balancespace] -> [nodraw|nodrawspace blocker]\n[nodrawspace|balancespace] -> [nodrawspace|nodrawspace blocker]\n\nleft[drawingboardcenter|housefloor] -> [drawingboardleft|housefloor]\nright[drawingboardcenter|housefloor] -> [drawingboardright|housefloor]\nup[drawingboardcenter|housefloor] -> [drawingboardtop|housefloor]\ndown[drawingboardcenter|housefloor] -> [drawingboarddown|housefloor]\nup[drawingboardleft|housefloor] -> [drawingboardtopleft|housefloor]\nup[drawingboardright|housefloor] -> [drawingboardtopright|housefloor]\ndown[drawingboardleft|housefloor] -> [drawingboarddownleft|housefloor]\ndown[drawingboardright|housefloor] -> [drawingboarddownright|housefloor]\n\n[housefloorstart] -> [random housefloorcrease]\nright [housewallintdown|housefloor] -> [housewallintright|housefloor]\nleft[housewallintdown|housefloor]-> [housewallintleft|housefloor]\ndown [housewallintdown|housewallintdown|housefloor] -> [housewallinttop|housewallinttop|housefloor]\nleft [housewallinttop|housewallintdown] -> [housewallinttop|housewallintright]\nright [housewallinttop|housewallintdown] -> [housewallinttop|housewallintleft]\n\nright[rose1||||] -> [rose1|rose2|rose3|rose4|rose5]\ndown[rose1|] -> [rose1|rose6]\nright[rose6||||] -> [rose6|rose7|rose8|rose9|rose10]\n\nup[basementtile|basementwall] -> [basementtile|basementwallleft]\nleft[basementwallleft|basementtile] -> [basementwallright|basementtile]\nleft[basementwallleft|basementblocktile] -> [basementwallright|basementblocktile]\nup[basementwallleft|basementphysicalwall]->[basementwallleft|basementwallleftmid]\nup[basementwallright|basementphysicalwall]->[basementwallright|basementwallrightmid]\nup[basementwallleftmid|no basementphysicalwallperm basementphysicalwall]->[basementwallleftmid|basementwalllefttop]\nup[basementwallrightmid|no basementphysicalwallperm basementphysicalwall]->[basementwallrightmid|basementwallrighttop]\ndown[basementtile|basementwall] -> [basementtile|basementwallbottomleft]\nleft[basementwallbottomleft|basementtile] -> [basementwallbottomright|basementtile]\nleft[basementwallbottomleft|basementblocktile] -> [basementwallbottomright|basementblocktile]\n\nvertical [ basementlinetile|basementblocktile] -> [basementlinetile|basementlineblocktile]\n[basementlinetile|basementtile puzzletilewrong] -> [basementlinetile| basementlinetile puzzletilewrong]\n\n[basementtile|towerstairsdown1] -> [basementtile|basementstairsdownblocked]\n\n[towertilecrack] -> [random towertilepick]\n\nhorizontal[towerentrance no puzzle1mesage1|puzzle1mesage1] -> [towerentrance no puzzle1mesage1| no puzzle1mesage1]\n\nup[rosetile| |rosetile] -> [rosetile| dirttile| rosetile]\n\ndown [basemententrance|||||||housewallsecret] -> [basemententrance|||||||secretsetup]\n\n[secretsetup] up [houseentrance||drawgoal0||||] -> [secretsetup] up [houseentrance||drawsetup1|drawsetup2|drawsetup3|drawsetup4|drawsetup5]\n\nright[drawsetup1||||||] -> [drawgoal2 count0|drawgoal1|drawgoal0|drawgoal0|drawgoal0|drawgoal0|drawgoal0]\nright[drawsetup2||||||] -> [drawgoal1 count0|drawgoal0|drawgoal0|drawgoal0|drawgoal2|drawgoal2|drawgoal0]\nright[drawsetup3||||||] -> [drawgoal0 count2|drawgoal2|drawgoal2|drawgoal0|drawgoal2|drawgoal2|drawgoal0]\nright[drawsetup4||||||] -> [drawgoal0 count3|drawgoal2|drawgoal2|drawgoal0|drawgoal0|drawgoal0|drawgoal1]\nright[drawsetup5||||||] -> [drawgoal0 count2|drawgoal0|drawgoal0|drawgoal0|drawgoal0|drawgoal1|drawgoal2]\n\n[secretsetup housewallintleft] -> [secret2 no housewallintleft]\n\n\n(Transportation Messages)\n[action man puzzle2mesage1] -> [action man] sfx1 message I've been watching you\n[action man puzzle2mesage2] -> [action man] sfx4 message Every connection draws us closer\n[action man puzzle3mesage1] -> [action man] sfx7 message If you don't want to, its ok\n[action man puzzle3mesage2] -> [action man] sfx4 message All you need to do is be here \n[action man puzzle4mesage1] -> [action man] sfx5 message I'll be waiting at the top\n[action man puzzle4mesage2] -> [action man] sfx6 message Take as much time as you need\n[action man puzzle5mesage1] -> [action man] sfx2 message My mind is above and heart below\n[action man puzzle5mesage2] -> [action man] sfx2 message Both parts equally important\n[action man puzzle6mesage1] -> [action man] sfx7 message I so enjoy you being here\n[action man puzzle6mesage2] -> [action man] sfx1 message Can you see it in my eyes?\n[action man puzzle8mesage1] -> [action man] sfx8 message I'd like it if you stay\n[action man puzzle8mesage2] -> [action man] sfx10 message I trust you feel the same\n[action man bpuzzle2mesage] -> [action man] sfx5 message I'll be waiting at the bottom\n[action man bpuzzle3mesage] -> [action man] sfx6 message I can't wait till you're here\n[action man bpuzzle4mesage] -> [action man] sfx10 message I know you feel the same\n[action man bpuzzle5mesage] -> [action man] sfx8 message I can't solve your problems\n[action man bpuzzle6mesage] -> [action man] sfx2 message But I will see them through with you\n[action man bpuzzle7mesage] -> [action man] sfx9 message I see you\n[action man bpuzzle8mesage] -> [action man] sfx9 message And you see me\n[action man bpuzzle9mesage] -> [action man] sfx3 message Where have you been?\n[action man puzzle1mesage2] -> [action man] sfx6 message Heart and mind together as one\n\n\n[action man imbalancemesage1] -> [action man imbalancemesage1] sfx9 message You can only do so much\n[action man imbalancemesage2] -> [action man imbalancemesage2] sfx9 message You can leave it if you want to\n[action man balancemesagefinal] -> [action man balancemesagefinal] sfx1 message I've been watching you... From thee empty floor\n[action selector balancemesagefinal2] -> [action selector balancemesagefinal2] sfx4 message Look me in the eyes\n\n(Transportation)\n\n[> man floormesage | puzzlepanel] -> [man floormesage| puzzlepanel]\n\n\nup [towerentrance man floormesage puzzle1mesage1 | | | towerentrance | ] -> [towerentrance | | | towerentrance | man floormesage messagemarkup] sfx3 message Where have you been?\nup [towerentrance man floormesage | | | towerentrance | ] -> [towerentrance | || towerentrance | man floormesage messagemarkup]\ndown [towerentrance man floormesage | | | towerentrance | ] -> [towerentrance | | | towerentrance | man floormesage messagemarkdown]\n\n [action man puzzletilewrongend] [puzzlestartbadend] -> [puzzletilewrongend] [selector puzzlestartbadend light] checkpoint\n [action selector puzzlestartbadend] [puzzletilewrongend] -> [puzzlestartbadend lightout] [mandown puzzletilewrongend] checkpoint\n\nhorizontal [action man puzzletile| ... | puzzlestart] -> [puzzletile|...| puzzlestart selector light] checkpoint\n\nhorizontal [action selector puzzlestart|...| puzzletile] -> [puzzlestart lightout|...|puzzletile mandown] checkpoint\n\n up [action man floormesage towerstairsup|...|towerstairsdown] -> [towerstairsup|...|towerstairsdown messagemarkup man floormesage ]\ndown [action man floormesage towerstairsdown|...|towerstairsup] -> [towerstairsdown|...|towerstairsup messagemarkdown man floormesage]\n[towerstairsuptemp no man] -> [towerstairsup]\n[towerstairsdowntemp no man] -> [towerstairsdown2]\n\n[houseentrance man floormesage no mark] [houseentrance no man] -> [houseentrance] [ houseentrance man floormesage mark]\n\n[hiddendoor man floormesage no mark hiddenmesage] [hiddendoor no man] -> [hiddendoor] [ hiddendoor man floormesage mark] sfx6 message My heart is yours\n[hiddendoor man floormesage no mark] [hiddendoor no man] -> [hiddendoor] [ hiddendoor man floormesage mark]\n\n[basemententrance man floormesage no mark] [basemententrance1 no man] -> [basemententrance] [basemententrance1 man floormesage mark messagemarkdown]\n[basemententrance1 man floormesage no mark] [basemententrance no man] -> [basemententrance1] [basemententrance man floormesage mark messagemarkup]\n[basemententrance2 man floormesage no mark bpuzzle1mesage] [basemententrance2 no man bpuzzle1mesage] -> [basemententrance2] [basemententrance2 man floormesage mark] sfx6 message My mind is yours\n[basemententrance2 man floormesage no mark] [basemententrance2 no man] -> [basemententrance2] [basemententrance2 man floormesage mark]\n\ndown [down man blocktile floormesage | blocktile] -> [man blocktile floormesage | blocktile]\nup [up man blocktile floormesage | blocktile] -> [man blocktile floormesage | blocktile]\n\n [ > man floormesage] -> [> man > floormesage]\n late [man] [floormesage no man] -> [man floormesage] []\n \n \n [> bloomend1] -> [bloomend1]\n(darkness)\n\n[light | dark] -> [light|light]\n\n[lightout | light] -> [lightout | lightout]\n\n[lightout] -> [dark]\n\n(man movement)\n[left man] -> [left manleft]\n[right man] -> [right manright]\n[up man] -> [up manup]\n[down man] -> [down mandown]\n\n(drawing)\n\nleft [left man drawingboard no drawleft | drawingboard] -> [drawingboard drawleft drawmark | drawingboard drawright man drawmark]\nright [right man drawingboard no drawright | drawingboard] -> [drawingboard drawright drawmark | drawingboard drawleft man drawmark]\nup [up man drawingboard no drawup | drawingboard] -> [drawingboard drawup drawmark| drawingboard drawdown man drawmark]\ndown [down man drawingboard no drawdown | drawingboard] -> [drawingboard drawdown drawmark| drawingboard drawup man drawmark]\n\nleft [left man drawingboard drawleft | drawingboard drawright] -> [drawingboard no drawleft drawmarknegative| drawingboard no drawright man drawmarknegative]\nright [right man drawingboard drawright | drawingboard drawleft] -> [drawingboard no drawright drawmarknegative| drawingboard no drawleft man drawmarknegative]\nup [up man drawingboard drawup | drawingboard drawdown] -> [drawingboard no drawup drawmarknegative| drawingboard no drawdown man drawmarknegative]\ndown [down man drawingboard drawdown | drawingboard drawup] -> [drawingboard no drawdown drawmarknegative| drawingboard no drawup man drawmarknegative]\n\n[count0 drawmark] -> [count1 drawchange]\n[count1 drawmark] -> [count2 drawchange]\n[count2 drawmark] -> [count3 drawchange]\n[count3 drawmark] -> [count4 drawchange]\n\n[count4 drawmarknegative] -> [count3 drawchange]\n[count3 drawmarknegative] -> [count2 drawchange]\n[count2 drawmarknegative] -> [count1 drawchange]\n[count1 drawmarknegative] -> [count0 drawchange]\n\n[count4 drawgoal4] [drawchange] -> [count4 drawgoal4 drawgood] [drawchange]\n[count3 drawgoal3] [drawchange] -> [count3 drawgoal3 drawgood] [drawchange]\n[count2 drawgoal2] [drawchange] -> [count2 drawgoal2 drawgood] [drawchange]\n[count1 drawgoal1] [drawchange] -> [count1 drawgoal1 drawgood] [drawchange]\n[count0 drawgoal0] [drawchange] -> [count0 drawgoal0 drawgood] [drawchange]\n\n[drawingboard no drawgood] [drawchange] -> [drawingboard drawwrong] [drawchange]\n\n[secret] -> [basementstairsdowntemp]\n[secret2] -> [hiddendoortemp]\n\n[basementstairsdowntemp] [drawingboard drawwrong]-> [secret] [drawingboard drawwrong]\n[basementstairsdowntemp] [drawchange]-> [basemententrance] [drawchange]\n[basementstairsdowntemp] -> [secret]\n[hiddendoortemp] [drawingboard drawwrong]-> [secret2] [drawingboard drawwrong]\n[hiddendoortemp] [drawchange]-> [hiddendoor] [drawchange]\n[hiddendoortemp] -> [secret2]\n\n\n[drawingboard drawgood] -> [drawingboard]\n[ > man | secret] -> [ man | secret]\n[ > man | secret2] -> [ man | secret2]\n[ > man | basementphysicalwall] -> [man | basementphysicalwall]\n\n(Earth)\n\n(clearing)\n[action selector clearspace| balancespace] -> [selector clearspace | clear balancespace]\n\nstartloop\n\n[clear 1right] -> [clear]\n[clear 1down] -> [clear]\n[clear 1up] -> [clear]\n[clear | balancespace] -> [clear |balancespace clear]\n\nendloop\n\n[clear] -> [count0 wrong change]\n\n(selector controls)\n\n[Action selector] -> [redselector]\n[Action redselector] -> [selector]\n\n[> redselector | puzzlestart] -> [redselector | puzzlestart]\n[> redselector nodrawspace] -> [redselector nodrawspace]\n[> redselector | clearspace] -> [redselector | clearspace]\n\n[wrongtemp light] -> [wrong light]\n[goodtemp light] -> [good light]\n[good dark] -> [goodtemp dark]\n[wrong dark] -> [wrongtemp dark]\n\n(marking for connection)\nright [right redselector balancespace | balancespace] -> right[redselector balancespace rightmark|balancespace leftmark]\nleft [left redselector balancespace | balancespace] -> left[redselector balancespace leftmark|balancespace rightmark]\nup [up redselector balancespace | balancespace] -> up[redselector balancespace upmark|balancespace downmark]\ndown [down redselector balancespace | balancespace] -> down[redselector balancespace downmark|balancespace upmark]\n\n(marking for connection in imbalance)\nright [right redselector imbalancespace | imbalancespace] -> right[redselector imbalancespace rightmark|imbalancespace rightmark]\nleft [left redselector imbalancespace | imbalancespace] -> left[redselector imbalancespace leftmark|imbalancespace leftmark]\nup [up redselector imbalancespace | imbalancespace] -> up[redselector imbalancespace upmark|imbalancespace upmark]\ndown [down redselector imbalancespace | imbalancespace] -> down[redselector imbalancespace downmark|imbalancespace downmark]\n\n(marking for connection in imbalance random)\nright [right redselector imbalancespacerandom | imbalancespacerandom] -> right[redselector imbalancespacerandom rightmark|imbalancespacerandom random direction]\nleft [left redselector imbalancespacerandom | imbalancespacerandom] -> left[redselector imbalancespacerandom leftmark|imbalancespacerandom random direction]\nup [up redselector imbalancespacerandom | imbalancespacerandom] -> up[redselector imbalancespacerandom upmark|imbalancespacerandom random direction]\ndown [down redselector imbalancespacerandom | imbalancespacerandom] -> down[redselector imbalancespacerandom downmark|imbalancespacerandom random direction]\n\n\n(making connection)\n[puzzlespace leftmark no 1left] -> [puzzlespace 1left countup]\n[puzzlespace leftmark 1left] -> [puzzlespace no 1left countdown]\n[puzzlespace rightmark no 1right] -> [puzzlespace 1right countup]\n[puzzlespace rightmark 1right] -> [puzzlespace no 1right countdown]\n[puzzlespace upmark no 1up] -> [puzzlespace 1up countup]\n[puzzlespace upmark 1up] -> [puzzlespace no 1up countdown]\n[puzzlespace downmark no 1down] -> [puzzlespace 1down countup]\n[puzzlespace downmark 1down] -> [puzzlespace no 1down countdown]\n\n(changing the count)\n[count0 countup] -> [count1 change]\n[count1 countup] -> [count2 change]\n[count2 countup] -> [count3 change]\n[count3 countup] -> [count4 change]\n[count4 countdown] -> [count3 change]\n[count3 countdown] -> [count2 change]\n[count2 countdown] -> [count1 change]\n[count1 countdown] -> [count0 change]\n\n(good and bad)\n\n[change numbere] -> [change numberewrong]\n[change numbero] -> [change numberowrong]\n[change good] -> [wrong]\n\n\n[count1 goal1 no goodtemp] -> [count1 goal1 good]\n[count2 goal2 no goodtemp] -> [count2 goal2 good]\n[count3 goal3 no goodtemp] -> [count3 goal3 good]\n[count4 goal4 no goodtemp] -> [count4 goal4 good]\n[count0 goal0 no goodtemp] -> [count0 goal0 good]\n[numberQ no goodtemp] -> [numberQ good]\n\n[count1 goalo no goodtemp numberowrong] -> [count1 goalo good numbero]\n[count2 goale no goodtemp numberewrong] -> [count2 goale good numbere]\n[count3 goalo no goodtemp numberowrong] -> [count3 goalo good numbero]\n[count4 goale no goodtemp numberewrong] -> [count4 goale good numbere]\n[count0 goale no goodtemp numberewrong] -> [count0 goale good numbere]\n\n\n(Chain)\n[chain] -> []\n\n[chainstarttemp | light] -> [chainstart | light]\n[chainstart | dark] -> [chainstarttemp | dark]\n[chaingoaltemp | light] -> [chaingoal | light]\n[chaingoal | dark] -> [chaingoaltemp | dark]\n\n[chainstart | puzzlespace] -> [chainstart | puzzlespace chain]\n[chainstart | imbalancespace] -> [chainstart | imbalancespace chain]\n[chainstart | imbalancespacerandom] -> [chainstart | imbalancespacerandom chain]\n\nstartloop\n\nright [chain 1right | ] -> [chain 1right | chain]\nleft [chain 1left | ] -> [chain 1left | chain]\nup [chain 1up | ] -> [chain 1up | chain]\ndown [chain 1down | ] -> [chain 1down | chain]\n\nendloop\n\n[chain | chaingoal] -> [chain | chaingoal chain]\n\n[mark no man] -> []\n[drawmark] -> []\n[drawmarknegative] -> []\n[drawchange] -> []\n\n(chacking for solution)\nhorizontal[puzzlestartbad|dark|...|puzzletilewrong] -> [puzzlestartbad|dark|...|puzzletilewrong mark]\nhorizontal[puzzlestartbad|...|puzzletilewrong] [chaingoal no chain] -> [puzzlestartbad|...|puzzletilewrong mark] [chaingoal no chain] \nhorizontal[puzzlestartbad|...|puzzletilewrong] [wrong] -> [puzzlestartbad|...|puzzletilewrong mark] [wrong]\n\nhorizontal[puzzletilewrongnorm no mark|...|puzzlestartbad] -> [puzzletilegoodnorm|...|puzzlestartgood]\nhorizontal[puzzletilewronghidden no mark|...|puzzlestartbad] -> [puzzletilegoodhidden|...|puzzlestartgood]\n\nup [puzzletilegood||||] -> [puzzletilegood||||basementprogressmark]\nleft [puzzletilegood||] -> [puzzletilegood||basementprogressmark]\n[basementprogressmark|basementstairsdownblocked] -> [basementprogressmark|towerstairsdown2]\n\n(messages)\n[man floor1mesage messagemarkup] -> [man floor2mesage] message Floor 2\n[man floor2mesage messagemarkup] -> [man floor3mesage] message Floor 3\n[man floor3mesage messagemarkup] -> [man floor4mesage] message Floor 4\n[man floor4mesage messagemarkup] -> [man floor5mesage] message Floor 5\n[man floor5mesage messagemarkup] -> [man floor6mesage] message Floor 6\n[man floor6mesage messagemarkup] -> [man floor7mesage] message Floor 7\n[man floor7mesage messagemarkup] -> [man floor8mesage] message Floor 8\n[man floor8mesage messagemarkup] -> [man floor9mesage] message Rooftop Garden\n[man floor9mesage messagemarkdown] -> [man floor8mesage] message Floor 8\n[man floor8mesage messagemarkdown] -> [man floor7mesage] message Floor 7\n[man floor7mesage messagemarkdown] -> [man floor6mesage] message Floor 6\n[man floor6mesage messagemarkdown] -> [man floor5mesage] message Floor 5\n[man floor5mesage messagemarkdown] -> [man floor4mesage] message Floor 4\n[man floor4mesage messagemarkdown] -> [man floor3mesage] message Floor 3\n[man floor3mesage messagemarkdown] -> [man floor2mesage] message Floor 2\n[man floor2mesage messagemarkdown] -> [man floor1mesage] message Floor 1\n[man floor1mesage messagemarkdown] -> [man floor0mesage]\n[man floor0mesage messagemarkdown] -> [man bfloor1mesage] message Basement Floor 1\n[man bfloor1mesage messagemarkdown] -> [man bfloor2mesage] message Basement Floor 2\n[man bfloor2mesage messagemarkdown] -> [man bfloor3mesage] message Basement Floor 3\n[man bfloor3mesage messagemarkdown] -> [man bfloor4mesage] message Basement Floor 4\n[man bfloor4mesage messagemarkdown] -> [man bfloor5mesage] message Basement Floor 5\n[man bfloor5mesage messagemarkdown] -> [man bfloor6mesage] message Basement Floor 6\n[man bfloor6mesage messagemarkdown] -> [man bfloor7mesage] message Basement Floor 7\n[man bfloor7mesage messagemarkdown] -> [man bfloor8mesage] message Basement Floor 8\n[man bfloor8mesage messagemarkdown] [drawingboard] -> [man bfloor9mesage] [drawingboard clear]\n[man bfloor9mesage messagemarkup] -> [man bfloor8mesage] message Basement Floor 8\n[man bfloor8mesage messagemarkup] -> [man bfloor7mesage] message Basement Floor 7\n[man bfloor7mesage messagemarkup] -> [man bfloor6mesage] message Basement Floor 6\n[man bfloor6mesage messagemarkup] -> [man bfloor5mesage] message Basement Floor 5\n[man bfloor5mesage messagemarkup] -> [man bfloor4mesage] message Basement Floor 4\n[man bfloor4mesage messagemarkup] -> [man bfloor3mesage] message Basement Floor 3\n[man bfloor3mesage messagemarkup] -> [man bfloor2mesage] message Basement Floor 2\n[man bfloor2mesage messagemarkup] -> [man bfloor1mesage] message Basement Floor 1\n[man bfloor1mesage messagemarkup] -> [man floor0mesage]\n[man floor0mesage messagemarkup] -> [man floor1mesage] message Floor 1\n\n[drawingboard clear| drawingboard] -> [drawingboard clear| drawingboard clear]\n\n[drawright clear] -> [clear]\n[drawup clear] -> [clear]\n[drawdown clear] -> [clear]\n[clear] -> [count0]\n\n(end)\nright[bloom21|] -> [bloom21|bloomend1]\n\nright[bloom17|] -> [bloom17|bloom18]\nright[bloom20|] -> [bloom20|bloom21] again\n\nright[bloom12|] -> [bloom12|bloom13]\nright[bloom16|] -> [bloom16|bloom17]\nright[bloom19|] -> [bloom19|bloom20] again\n\nright[bloom7|] -> [bloom7|bloom8]\nright[bloom11|] -> [bloom11|bloom12]\nright[bloom15|] -> [bloom15|bloom16]\ndown[bloom15|] -> [bloom15|bloom19 again]\n\nright[bloom6|] -> [bloom6|bloom7]\nright[bloom10|] -> [bloom10|bloom11]\nright[bloom14|] -> [bloom14|bloom15] again\n\nright[bloom2|] -> [bloom2|bloom3]\nright[bloom5|] -> [bloom5|bloom6]\nright[bloom9|] -> [bloom9|bloom10]\ndown[bloom9|] -> [bloom9|bloom14] again\n\nright[bloom1|] -> [bloom1|bloom2]\nright[bloom4|] -> [bloom4|bloom5]\ndown[bloom4|] -> [bloom4|bloom9] again\n\nright[bloomstart|] -> [bloomstart|bloom1]\ndown[bloomstart|] -> [bloomstart|bloom4] again\n\n[action bloomend1] -> [bloomend]\n\n\n==============\nWINCONDITIONS\n==============\n\n\nAll end on puzzlestartgood\n\nAll target on bloomend\n\n======= \nLEVELS\n=======\n\n###########&&&%%%%%&&&###########\n###########&&%⤫⤫⤫⤫⤫%&&###########\n###########&%kk'''kk%&###########\n###########%⤫kkk'kkk⤫%###########\n###########'⤫kkk'kkk⤫'###########\n###########'⤫'k''/k'⤫'###########\n###########'⤫'kkkkk'⤫'###########\n###########%⤫'/'''''⤫%###########\n###########q%''''↓''%q###########\n###########ww%⤫⤫⤫⤫⤫%ww###########\n###########qqq%%%%%qqq###########\n###########___%%%%%___###########\n##@###@####__%,,,,,%__###@###@###\n##221222###_%,[,{,,[%_##1221122##\n#y222222@##%[⅝,,[,,,[%##2302221@#\n#£122132###,[,[[[l,,,,#*2323121##\n##221212###,{,,,[[↉,{,##1241222y#\n#*222222@##,[[[,[[[[,,##13202?3£#\n##222232###%,,[↓/,,,,%##12?3222##\n##233212###_%,{[[↥,,%_#@2202232@#\n######@####__%,[,,[%__##2??2321##\n###########___%%%%%___###@###@###\n###########___%%%%%___###########\n###########__%,,,,,%__###########\n###########_%,,,l,,,%_######⸝####\n###########%,,⥁,,,{,,%###02110###\n###########,,,,{,{,,l,###22032###\n###########,,,,,¢,,,,,###23140y##\n###########,,,,{,{,,,,###10211###\n###########%,,{↥,↓{,,%###02100###\n###########_%,,,l,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########&&&&&&&&&&&###########\n###########&&&&&&&&&&&#####@#####\n###########&&+&&+&&+&&##22?2212@#\n###########&&&&&&&&&&&#@2101222##\n###########&&&&&&&&&&&##2222222##\n###########&&&&&&&&&&&##2212422*#\n###########&&&'''''&&&#@2220202£#\n###########&&&''⅐''&&&##222?222y#\n###########&&&'''''&&&#######@###\n###########&&&'''''&&&###########\n###########___c'''c___###########\n###########___c'''c___###########\n###########__%,,,,,%__###########\n#####*#####_%,l,,,,,%_###########\n##y13121###%,,,,⅚,,,,%###0220:###\n##£23232@##[[[,,,,,[[[###2222####\n###o3?33###,l,,,,,,,,ᵶ##@2222y###\n###12222###///,,l,,///###0220####\n###12121@##%,,,↓[↥,,,%#####*#####\n###@#######_%,l,,,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########___%%%%%___#######@###\n###########__%,⅜,[,%__###21?22y##\n###########_%,,,/l,,%_##@21022£##\n#####@#####%,,,,,,,,,%###23?22###\n###y11?####,,,,[,⅘,,,,###23023@##\n###*223####,,,,,/,,,,,##*12?11###\n####?32####,l,,,,,,,,,###########\n###########%,,,↥,↓,,,%###########\n###########_%,,l/,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########&&&&&&&&&&&###########\n###########&+&&&&&&&&&###########\n###########&&&&&&&&&&&###########\n###########&&&&&+&&&&&###@#!#####\n###########&&&&&&&&&&&###2221@###\n###########&&&&&&&&&&&###3221####\n###########&&&'''''&&&###3221####\n###########+&&''¥''&&&##@2221y###\n###########&&&'''''&&&#####*#####\n###########&&&'''''&&&###########\n###########___c'''c___###########\n###########___c'''c___###########\n#######@###__%,,,,,%__###########\n###*e2o1###_%,,,/,,,%_####@######\n####2o3o###%,,/,,,/,,%###e1321*##\n###yo1e1###,,⅗,,,,,,,,###2e232###\n###£2e3o@##,l,,,,,,⅖,,###21oe1y##\n####o3e2###,,,,,,,,l,,###1e3oo£##\n####@######%,,,↓/↥,,,%##@2o112###\n###########_%,,,l,,,%_#######@###\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########___%%%%%___###########\n###########__%/,,,,%__######@####\n###########_%/,,,,l,%_####e211@##\n######@####%,[⅔,,,/,,%####2432y##\n###@2oe####,,,[,,,,/,,###@133e£##\n###yee3####,,,,,l,⅛[,,####1212###\n####12o@###,l,,,,,[l,,#####*#####\n####*######%,,,↥,↓,,,%###########\n###########_%,,,,,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########&&&&&&&&&&&###########\n####@##@###&&&&&&&&+&&###########\n###122221##&&+&&&&&&&&###########\n###112132@#&&&&&&&&&&&###########\n##*222022##&&&&&&&&&&&###########\n###230232##&&&&&&&&&&&###########\n##£232331@#&&&'''''&&+###########\n##y222121##&&&''⅙''&&&###########\n####@##@###&&&'''''&&&###########\n###########&&&'''''&&&###########\n###########___c'''c___###########\n###########___c'''c___###########\n###########__%,,,,,%__###########\n####*######_%,,l,,,,%_###########\n##y22221@##%,⅕[,,,,,,%###1222####\n##£23232###,,,,,,l,,,,##@2331####\n###12212###,,l,,,,,,,,###2332£###\n###22421###,,,,,x,,,,,###1212y###\n###12221@##%,,,↓/↥,l,%####*######\n###@##@####_%,,,,,,,%_###########\n###########__%,,,,,%__###########\n###########___%%%%%___###########\n###########___%%%%%___###########\n###########__%,,,,,%__###########\n#####*#####_%,,l,,,,%_###########\n###12321###%x/,,,,,/,%##@22200y##\n##y12321###,,,,,,x,,l,###20201£##\n###@###@###,l,,,,,,,,,###22323###\n###########,,,,,,,,,,,###02101###\n###########%,,,↥/,,,,%###02100###\n###y121####_%xl,,,,,%_####*######\n###########__%,,,,,%__###########\n###########___%ttt%___###########\n.......$qqqqqqqqqqqqqqqqq$...~~~~\n..---...$$wwwwwwwwwwwww$$...~~~~~\n..-.......$$$qq⥏⥏⥏qq$$$....``````\n.............$$...$$.......```꠸``\n................z..........`h````\n................z...........z....\n............-...z...........z....\n...zzzzzzzzzzzzzzzzzzzzzzzzzz....\n...p....--............---........\n...z.........................--..\n...---...........................\nmmmmmmmmmmmmmmrmmmmmmm___________\nmmmmmmmmmmmmmmmmmmmmmm___________\nmmmmmmmmmmmmuiuuiuuuua___________\nmmmmmmmmmmmmuuiuuiuuum___________\nmiuiuᵽmmmmmmiffsssffim_\"\"\"\"\"\"____\nᶃuiuuummmmmmugjfsfjgumn;;;;;;____\nmmmmmmmmmmmmifjfsfjfum_\"\"\"\"\"\"____\nmmmmmmmmmmmmusfsssfsum____\"\"\"____\nmmmmmmmmmmmmusfffffsum____\"\"\"____\nmmmmmmmmmmmmuuuiuuiuiÐ____\"\"\"____\nmmmmmmmmmmmmmhmmmmmmmm____\"b\"____\n###########__%\"\";\"\"%__###########\n###########_%\"[⅑;\"]\"%_###@#######\n####@######%\"\"\"\"x\"\"\"\"%###2167y###\n###2167####\"/\"\"\";\"\"\"\\\"###3278£###\n##@3388*###\"\"\"\"\";\"\"\"\"\"###1276@###\n##y8888####;;;;;x;;;;n#####*#####\n##£7667####\"\"\"\"\";\"\"\"\"\"###########\n#####@#####\"/\"\"\";\"\"\"\\\"###########\n###########%\"\"\"\";\"\"\"\"%###########\n###########_%\"[\";\"]\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"↥;⅒\"\"%_###########\n###########%/\"\"\";\"\"\"{%######@####\n###########\"\"\"\"\";\"\"\"\"\"##@1232####\n###########\"\"\"]\";\"\\\"\"\"###3232*###\n###########\"\"\"\"\"x\"\"\"\"\"###2332y###\n###########\"\"\"/\";\"[\"\"\"##@7878£###\n###########\"\"\"\"\";\"\"\"\"\"###7876####\n###########%{\"\"\";\"\"\"\\%######@####\n###########_%\"\"\";\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"[⅞\"↥/\"%_###########\n###########%\"\"\"\"\"\"\"\"\"%###@###*###\n###########\"/\"\"\"\"\"\"\"\\\"###28677###\n###########\"\"\"\"\"\"\"\"\"\"\"###33892###\n###########\"\"\"\"\"x\"\"\"\"\"##@20731y##\n###########\"\"\"\"\"\"\"\"\"\"\"###37533£##\n###########\"[\"\"\"\"\"\"\"]\"###78782###\n###########%\"\"\"\"\"\"\"\"\"%###@###@###\n###########_%\"]\"\"\"\\\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"↥\"⥊\"\"%_###########\n###########%/\"]\"\"\"/\"/%###@#######\n###########\"\"\"\"\"\"\"\"\"\"\"###6866@###\n###########\"/\"\"\"\"\"\"\"]\"###6383####\n###########\"\"\"\"\"x\"\"\"\"\"##*8886y###\n###########\"]\"\"\"\"\"\"\"/\"###6181£###\n###########\"\"\"\"\"\"\"\"\"\"\"#####@#####\n###########%/\"/\"\"\"]\"/%###########\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"⥋\"↥\"\"%_###########\n###########%\"\"/\"\"\"{\"\"%###@#######\n###########\"[\"\"\"{\"\"\"/\"###2332@###\n###########\"\"\"\"\"\"\"\"\"\"\"###2222####\n###########;;;;;x;;;;;###7777y###\n###########\"\"\"\"\"\"\"\"\"\"\"##*7667£###\n###########\"{\"\"\"[\"\"\"/\"######@####\n###########%\"\"/\"\"\"[\"\"%###########\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"↥\"⥌\"\"%_#####@#####\n###########%\"\"\"\"\"\"\"\"\"%##222777###\n###########\"\"/[\"\"\"{\\\"\"#@343656###\n###########\"\"\"\"{\"]\"\"\"\"##222777###\n###########\"\"\"\"\"x\"\"\"\"\"##777777y##\n###########\"\"\"\"[\"{\"\"\"\"##656898£##\n###########\"\"/{\"\"\"]\\\"\"##777777###\n###########%\"\"\"\"\"\"\"\"\"%##*####@###\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"⥍\"↥\"\"%_###########\n###########%\"\"\"\"\"\"\"\"\"%######⸝####\n###########\"\"\"}\"\"\"}\"\"\"###00220###\n###########\"\"\"\"}\"}\"\"\"\"###14231###\n###########\"\"\"\"\"¢\"\"\"\"\"###11303y##\n###########\"\"\"\"}\"}\"\"\"\"###02410###\n###########\"\"\"{\"\"\"}\"\"\"###00210###\n###########%\"\"\"\"\"\"\"\"\"%###########\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\\↥\"⥎]\"%_###########\n##y6866*###%\"\"\"\"\"\"\"ᵹ\"%###########\n##£7777####\"/\"\"\"\"\"\"\"]\"###########\n###8687####\"\"\"\"\"\"\"\"\"\"\"######⸝####\n##@8797####\"\"\"\"\"\"\"\"\"\"\"###12332###\n###7676####\"\"\"\"\"\"\"\"\"\"\"###32121###\n###########\"[\"\"\"\"\"\"\"\\\"###12342###\n###########%\"x\"\"\"\"\"\"\"%###12221y##\n###########_%\"[\"\"\"/\"%_###########\n###########_⚎%|||||%⚎_###########\n###########__%|||||%__###########\n###########_%\"\"\"\"↥\"\"%_###########\n###########%{\"\"\"\"\"\"\"{%###########\n###########\"\"\"\"\"\"\"kk\"\"###57875###\n###########\"\"\"kk\"\"\"k\"\"###79997###\n########ᵹ##\"\"\"kk\"kk\"\"\"###89998ᵯ##\n###########\"\"k\"\"\"kk\"\"\"###79997£##\n###########\"\"kk\"\"\"\"\"\"\"###57875###\n###########%{\"\"\"\"\"\"\"{%###########\n###########_%\"\"\"\"\"\"\"%_###########\n###########_⚎%|||||%⚎_###########\n\n\n###########\n###########\n###########\n###►¤¤¤┰###\n###¤¤¤¤¤###\n###¤¤¤¤¤###\n###¤¤¤¤¤###\n###┰¤¤¤◄###\n###########\n###########\n###########\n\nmessage Rose\nmessage By Jared Piers\n\n\n",[0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,1,1,4,3,3,4,1,4,3,1,4,3,1,1,1,1,4,1,1,4,3],"background darkbarrier 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,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,\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,\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,\nbackground ground1:1,background ground3:2,1,background ground2:3,1,1,1,2,1,3,2,background housewallintdown:4,4,background housewallintright:5,5,5,background hiddendoor hiddenmesage:6,4,4,4,4,4,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,\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,\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,\n0,0,0,background dark puzzlestartbadnorm:7,background clearspace:8,0,background chainstarttemp wall:9,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background ground3 puddlecornertl:10,background ground1 puddleleft:11,11,background ground1 puddlecornerbl:12,1,2,1,2,2,3,3,\n4,4,background housewallinttop:13,13,background housefloor1:14,background housefloornorm:15,4,4,4,4,4,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background chaingoaltemp wall:16,background balancespace count0 dark goal2 number2 wrongtemp:17,17,background balancespace count0 dark goal1 number1 wrongtemp:18,17,17,17,17,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,7,8,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,8,7,0,0,0,0,0,0,7,8,0,0,0,0,0,0,\n0,0,0,0,7,0,0,0,0,0,0,background ground1 puddletop:19,background puddlecenter:20,20,background ground1 puddlebottom:21,1,3,3,2,2,background ground2 puddlecornertl:22,11,background housewallintdown puddlecornerbl:23,4,13,13,15,background housefloor2:24,4,4,4,4,4,\n0,0,0,0,16,7,8,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,0,16,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,17,17,17,17,17,17,background balancespace count0 dark goal3 number3 wrongtemp:25,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,18,17,background balancespace count0 dark goalo numberowrong wrongtemp:26,18,18,16,0,0,0,0,0,0,7,9,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,7,8,0,0,0,0,0,0,0,0,0,16,7,0,0,0,0,0,\n0,0,18,18,17,17,17,17,0,0,0,0,0,0,17,17,18,17,18,16,0,0,0,0,0,18,18,16,0,0,background dark puzzlestartgood:27,0,0,\n19,20,background ground3 puddleright:28,background ground1 puddlecornerbr:29,3,3,2,background ground2 pathrightbend:30,background pathvert:31,background ground3 pathvert puddletop:32,20,background housewallintdown puddlebottom:33,4,13,13,14,15,4,4,4,4,4,0,0,0,17,25,background balancespace blocker count0 dark goal3 wrongtemp:34,background balancespace blocker count0 dark goal2 wrongtemp:35,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,\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,\n0,0,background balancespace blocker count0 dark goal1 wrongtemp:36,35,34,34,35,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,18,17,17,18,17,17,25,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,25,25,25,17,17,0,0,0,0,0,0,0,18,17,background balancespace count0 dark goodtemp numberq:37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background balancespace count0 dark goale goodtemp numbere:38,17,26,17,26,16,0,0,0,0,0,0,0,17,38,18,9,0,0,0,0,16,17,18,17,25,25,17,16,0,0,\n0,0,9,17,25,17,17,17,0,0,0,0,0,0,17,17,0,0,0,1right background balancespace count1 dark goal1 goodtemp number1:39,0,0,19,20,background ground2 puddlebottom:40,1,1,1,2,background ground1 pathhoriz:41,3,background ground3 puddletop:42,20,\n33,4,13,13,15,15,4,4,4,4,4,0,0,16,18,25,34,36,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,35,36,35,36,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,17,17,18,17,17,17,17,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,9,18,17,37,17,18,0,0,0,\n0,0,0,16,18,17,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,26,18,38,25,0,0,0,0,\n0,0,0,0,26,38,17,0,0,0,0,0,0,17,17,17,background balancespace count0 dark goal0 goodtemp number0:43,17,17,0,0,0,0,0,0,17,17,17,background balancespace count0 dark goal4 number4 wrongtemp:44,17,0,0,0,\n0,0,9,25,25,0,0,0,1left 1right background balancespace count2 dark goal2 goodtemp number2:45,0,0,background ground2 puddlecornertr:46,background ground2 puddleright:47,background ground3 puddlecornerbr:48,1,2,1,2,background ground3 pathhoriz:49,3,42,20,33,4,13,13,background balancemesagefinal housefloornorm puzzletilewrongend:50,15,4,4,4,4,4,\n0,0,0,36,34,34,36,16,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,36,35,34,background balancespace blocker count0 dark goal4 wrongtemp:51,35,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,16,17,17,25,18,17,25,18,16,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,17,25,25,17,17,0,0,0,0,0,0,0,37,25,17,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,26,25,38,25,38,0,0,0,0,0,0,0,16,38,25,26,0,0,0,0,\n0,0,17,18,43,17,25,18,0,0,0,0,0,0,17,25,18,17,17,16,0,0,0,0,0,17,17,0,0,0,1left background balancespace count1 dark goal1 goodtemp number1:52,0,0,\n3,3,1,3,2,2,2,41,2,background ground3 puddlecornertr:53,47,background housewallintdown puddlecornerbr:54,4,background housewallintleft:55,55,55,55,4,4,4,4,4,0,0,0,35,34,34,35,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,\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,\n0,0,36,35,35,35,36,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,17,17,17,17,17,17,17,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,18,17,25,17,18,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,16,18,26,18,26,17,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,16,17,25,17,25,25,17,16,0,0,\n0,0,0,18,17,17,18,18,0,0,0,0,0,0,18,18,16,0,0,0,0,0,background towerbaseleft:56,1,2,3,3,1,2,background ground1 pathhoriz puddlecornertl:57,background ground3 puddleleft:58,12,2,\n4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,9,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,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,16,0,0,16,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,16,0,0,16,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,16,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,18,17,17,17,18,18,0,0,0,0,0,0,16,0,0,0,16,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,background towerwall1left:59,56,1,1,1,1,3,background ground3 pathhoriz puddletop:60,20,background ground3 puddlebottom:61,3,4,4,4,4,4,4,4,4,4,4,4,\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,\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,\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,background basementtile mark puzzletilewronghidden:62,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,\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,\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,\n0,0,0,16,0,0,16,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,\nbackground towerwall1:63,background towerbase:64,3,2,2,3,3,60,20,61,3,4,4,4,4,4,4,4,4,4,4,4,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,\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,\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,\n0,0,background darkbarrier towerwallintlefttop wall:65,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,65,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background darkbarrier highpuddletopleft2 wall:66,background darkbarrier highpuddlebottomleft1 wall:67,0,0,0,\n0,0,65,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,65,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,0,0,0,59,background towerwall2left:68,56,2,3,2,1,background ground3 pathhoriz puddlecornertr:69,28,48,3,\n4,4,4,4,4,4,4,4,4,4,4,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,background highground3:70,background highground1:71,background towerbalconytopleftroof:72,background halftiletopleft towerbalconyleftroof:73,background towertileoutside:74,74,74,background halftilebottomleft towerwall2left:75,59,68,59,background physicalwall:76,background physicalwall towerwallintlefttop:77,background physicalwall towerwallintleftmid:78,background towerwallintleft:79,background towertile:80,80,80,background towerwallbottomleft:81,76,76,76,\n76,77,78,79,80,80,80,81,76,76,76,70,background highground2:82,71,71,70,71,71,70,82,82,76,76,77,78,background towerpillartop1 towerwallintleft:83,background towerpillar1 towertile:84,background towerpillartop2 towertile:85,background towerpillar2 towertile:86,81,76,76,76,\n76,77,78,79,80,80,80,81,76,76,76,background highpuddletopleft2:87,background highpuddlebottomleft2:88,71,82,71,71,background highpuddletopright1:89,background highpuddlebottomright:90,82,82,76,76,77,78,79,80,80,80,81,76,76,76,\n76,77,78,79,80,80,80,81,76,76,76,82,82,70,82,70,70,70,82,71,82,76,76,77,78,79,80,80,80,81,76,76,76,\n76,77,78,79,80,80,80,81,background basementprogressmark physicalwall:91,76,76,63,background towerwall2:92,64,1,1,10,background ground2 puddleleft:93,background ground1 pathhoriz puddlecornerbl:94,1,3,1,5,5,5,5,5,5,5,5,5,5,4,\nbackground basementwalllefttop:95,background basementwallleftmid:96,background basementwallleft:97,background basementtile:98,98,background basementlinetile:99,98,98,background basementwallbottomleft:100,background basementphysicalwall:101,101,95,96,97,98,98,98,98,98,100,101,101,95,96,97,98,98,98,98,98,100,101,101,\n95,96,97,98,98,98,98,98,100,101,101,95,96,97,98,98,99,98,98,100,101,101,95,96,97,98,98,98,98,98,100,101,101,\n95,96,97,98,98,98,98,98,100,101,101,95,96,97,98,98,98,98,98,100,101,101,95,96,97,98,98,98,98,98,100,101,101,\n82,72,73,background rosetile1 towertileoutside:102,background dirttile rosetile1 towertileoutside:103,103,background dirttile rosetile2 towertileoutside:104,102,background halftilebottomleft towerwall1left:105,68,59,77,78,83,background towerpillar1 towerpillartop3 towertile:106,background towerpillar1 towerpillarmid3 towertile:107,background towerpillar3 towerpillartop1 towertile:108,84,80,81,76,76,77,78,79,80,80,80,80,80,81,76,76,\n71,87,88,82,82,70,82,71,71,71,76,77,78,79,background towerpillartop1 towertile:109,84,background towerpillartop2 towertilecrack3:110,86,80,81,76,76,77,78,79,80,80,80,background towertilecrack2:111,80,81,76,76,\n89,90,82,71,82,82,70,82,82,82,76,77,78,79,80,80,111,80,80,81,76,76,77,78,79,80,80,80,111,80,81,76,76,\n82,background highpuddletopleft1:112,88,71,71,70,70,71,70,71,76,77,78,79,80,80,80,80,80,81,76,76,77,78,background puzzlepanel towerwallintleft:113,background mark puzzletilewrongnorm towertile:114,80,111,80,80,81,76,76,\n63,92,64,1,1,background ground2 puddletop:115,20,background ground1 pathhoriz puddlebottom:116,2,3,3,13,13,15,15,24,15,24,15,15,15,4,96,97,background basementpillartop2 basementtile:117,background basementpillar2 basementtile:118,98,99,117,118,98,100,background basementphysicalwallperm:119,\n96,background basementpillartop2 basementwallleft:120,118,98,98,98,background basementpillartop3 basementtile:121,background basementpillarmid3 basementtile:122,background basementpillar3 basementtile:123,100,119,96,97,117,118,98,98,98,background basementpillar1 basementtile:124,98,100,119,96,120,118,117,118,98,background basementpillar5 basementtile:125,117,118,100,119,\n96,97,98,124,98,background basementlinetile basementpillartop3:126,122,123,98,100,119,96,97,98,98,98,98,98,98,98,100,119,96,97,98,98,98,98,98,98,98,100,119,\n96,97,117,118,98,98,98,124,98,100,119,background basementpillartop3 basementwallleftmid:127,background basementpillarmid3 basementwallleft:128,123,98,98,98,121,122,123,100,119,72,73,background roofdown roofpattern roofright towertileoutside:129,background roofdown roofpattern roofright roofup towertileoutside:130,background roofpattern roofright roofup towertileoutside:131,74,74,74,74,75,59,\n78,79,background puzzlepanel towertile:132,background mark puzzle8mesage1 puzzletilewrongnorm towertile:133,80,109,84,80,80,81,76,78,79,80,80,80,80,80,80,80,81,76,82,background highpuddletopright2:134,90,82,82,background towerbalconytopleft:135,background towerbalconyleft:136,136,136,136,76,\n78,79,80,109,84,85,86,80,80,81,76,78,79,80,80,80,80,80,80,80,81,76,70,82,70,71,71,135,136,136,136,136,76,\n78,79,80,132,background mark puzzle4mesage2 puzzletilewrongnorm towertile:137,80,80,80,80,81,76,78,background towerpillartop2 towerwallintleft:138,background towerpillar2 towerpillartop1 towertile:139,84,80,80,80,80,80,81,76,82,89,90,70,71,135,136,136,136,136,76,\n78,79,132,background mark puzzle2mesage1 puzzletilewrongnorm towertile:140,80,background towertilecrack1:141,80,80,80,81,76,78,79,85,86,background basementprogressmark towertile:142,80,80,132,background puzzletilegoodnorm towertile:143,81,76,59,68,59,56,1,46,47,background ground1 pathhoriz puddlecornerbr:144,1,1,2,\n13,13,14,15,background count0 drawgoal2 drawingboardtop:145,background count0 drawgoal3 drawingboardleft:146,background count0 drawgoal2 drawingboardleft:147,background count0 drawgoal0 drawingboardleft:148,background count0 drawgoal0 drawingboarddownleft:149,15,background houseentrance:150,97,98,98,98,98,99,98,98,98,98,100,97,98,98,98,98,98,98,98,98,98,100,\n97,98,98,98,98,98,98,98,98,98,100,97,98,98,98,98,98,98,98,98,98,100,97,98,98,98,98,99,98,98,98,98,100,\n97,98,117,118,98,98,117,118,98,98,100,97,98,98,98,98,98,98,98,98,98,100,97,98,98,98,98,98,98,98,background basementtile mark puzzletilewrongnorm:151,98,100,\n97,98,98,98,98,98,background basedown basementpattern basementtile:152,background basementpattern basementtile baseright baseup:153,98,98,100,background towerbalconytop:154,background rosetile2 towertileoutside:155,background roofdown roofleft roofpattern towertileoutside:156,background roofdown roofleft roofpattern roofright roofup towertileoutside:157,157,background roofdown roofpattern roofup towertileoutside:158,background roofpattern roofright roofup towerpillartop2 towertileoutside:159,background towerpillar2 towertilehalflight:160,74,155,63,background towerwallinttop:161,109,84,109,84,109,106,107,background towerpillar3 towertile:162,80,background towerwallintbottom:163,\n161,80,background towerpillartop2special towertile:164,background towerpillar2special towertile:165,80,background towerpillartop3 towertile:166,background towerpillarmid3 towertile:167,162,80,80,163,70,82,82,70,82,154,74,74,74,74,background towerwallinttoppermanent:168,168,80,background towertilecrack3:169,80,80,80,80,80,141,80,163,\n161,80,80,80,80,80,80,80,80,80,163,82,71,70,82,70,154,74,74,74,74,168,168,80,85,86,80,80,80,80,80,80,163,\nbackground towerpillartop2 towerwallinttop:170,86,132,background mark puzzle3mesage2 puzzletilewrongnorm towerpillartop1 towertile:171,84,80,80,80,80,80,163,70,70,70,71,71,154,74,74,74,74,168,168,80,109,84,80,80,80,80,80,80,163,\n161,80,80,80,80,80,80,80,background floor1mesage manright towertilecrack2:172,80,163,63,92,63,64,1,1,3,41,3,2,1,background rose1:173,background rose6:174,15,14,145,background count0 drawgoal4 drawingboardcenter:175,175,background count0 drawgoal2 drawingboardcenter:176,background count0 drawgoal2 drawingboarddown:177,15,4,\n98,124,98,98,98,99,98,98,98,124,background basementblocktile:178,178,98,98,98,125,117,118,98,98,98,178,178,124,98,98,98,98,98,98,98,125,178,\n178,98,125,98,98,98,98,117,118,98,178,178,117,118,98,98,99,98,117,118,98,178,178,98,98,124,98,121,122,123,98,98,178,\n178,background basementpillartop6 basementtile:179,background basementpillarmid6 basementtile:180,background basementpillar6 basementtile:181,98,121,122,123,98,98,178,background basementblocktile basementpillartop4:182,background basementpillar4 basementtile:183,98,98,98,98,98,98,98,124,178,178,98,98,98,background basedown basementpattern basementtile baseright:184,153,98,background baseleft basementpattern basementtile:185,98,98,178,\n154,background rosetile3 towertileoutside:186,74,156,background roofleft roofpattern roofup towertileoutside:187,74,background roofleft roofpattern roofright towertileoutside:188,74,74,155,63,161,80,80,109,84,80,80,background towerpillartop1 towerstairsdown1:189,background towerpillar1 towerpillartop1 towertile:190,84,163,161,80,166,167,background towerpillar3 towerpillartop3 towertile:191,167,162,background towerstairsup towertile:192,80,80,163,\n71,87,88,82,71,154,74,74,74,74,74,74,background towertilehalflight:193,80,80,80,80,80,background towerstairsdown1:194,80,80,163,background puzzlepanel towerwallinttop:195,background mark puzzle5mesage2 puzzletilewrongnorm towertile:196,80,109,84,80,80,192,111,80,163,\n71,71,112,background highpuddlebottomleft1:197,82,154,74,74,74,74,74,74,193,80,80,80,80,80,194,80,80,163,161,80,80,80,80,80,80,192,80,80,163,\n82,71,70,71,70,154,74,74,74,74,74,74,193,111,80,80,80,80,194,80,80,163,161,80,141,80,80,80,80,192,80,80,background towerentrance:198,\n63,92,198,background towerentrancefront:199,1,3,1,41,1,2,3,background rose2:200,background rose7:201,15,15,background count0 drawgoal0 drawingboardtop:202,176,176,background count0 drawgoal0 drawingboardcenter:203,177,24,4,98,background basementstairsdownblocked bpuzzle2mesage:204,98,98,98,99,98,98,98,98,178,\n178,background basementtile towerstairsup:205,98,98,98,98,98,98,98,98,178,178,background bpuzzle4mesage towerstairsdown2:206,98,98,98,98,98,98,98,98,178,178,205,98,98,98,98,98,98,98,98,178,\n178,background bpuzzle6mesage towerstairsdown2:207,98,98,98,99,98,98,98,98,178,178,205,121,122,123,98,124,98,98,98,178,178,background bpuzzle8mesage towerstairsdown2:208,179,180,background basementpillar6 basementpillartop6 basementtile:209,180,181,98,98,98,178,\n178,205,98,98,98,98,98,98,98,98,178,178,98,98,98,background basedown baseleft basementpattern basementtile:210,background baseleft basementpattern basementtile baseup:211,98,98,98,98,178,154,102,74,74,74,74,188,74,74,186,63,\nbackground towerpillartop3 towerwallinttop:212,167,108,190,190,190,background towerpillar1 towerpillartop2 towertile:213,139,84,80,163,161,80,141,80,80,background puzzle1mesage2 puzzletilehidden towertile:214,80,80,169,80,163,70,134,90,71,71,154,background puzzlepanel towertileoutside:215,background mark puzzle6mesage2 puzzletilewrongnorm towertileoutside:216,74,74,74,\n74,193,132,background mark puzzle6mesage1 puzzletilewrongnorm towertile:217,80,80,background towerpillartop1 towertilecrack1:218,84,80,80,163,161,85,86,80,85,86,80,85,86,80,163,71,82,89,90,82,154,215,background imbalancemesage1 mark puzzletilewrongnorm towertileoutside:219,74,74,74,\n74,background towerpillartop2 towertilehalflight:220,86,80,80,80,85,86,111,80,163,161,80,80,80,80,141,80,80,80,80,163,71,82,71,82,70,154,215,background mark puzzle2mesage2 puzzletilewrongnorm towertileoutside:221,74,74,74,\n74,193,80,80,80,132,background mark puzzletilewrongnorm towerpillartop2 towertile:222,86,80,80,163,161,80,80,80,80,80,85,86,80,80,198,63,92,198,199,background ground1 pathend:223,background ground3 pathvert:224,background ground1 pathvert:225,background ground2 pathtri:226,2,3,3,\nbackground rose3:227,background rose8:228,24,15,202,203,203,203,177,15,4,99,99,background basementlinetile mark puzzletilewrongnorm:229,99,99,229,99,99,99,99,background basementlineblocktile:230,230,99,99,99,99,229,99,99,99,99,230,\n178,98,98,98,98,151,98,98,98,98,178,178,98,98,98,98,151,98,98,98,98,178,178,121,122,123,98,229,98,124,98,98,178,\n178,98,98,98,98,151,98,98,98,98,178,178,98,98,98,98,background basementtile puzzle1mesage2 puzzletilehidden:231,98,98,98,98,178,178,98,98,98,98,98,98,98,98,98,178,\n178,98,98,98,98,98,98,98,98,98,178,154,155,74,129,159,160,188,74,194,102,63,161,80,80,80,218,190,84,80,192,80,163,\n161,80,166,167,191,167,162,194,80,80,163,70,82,82,71,71,154,74,74,74,74,74,74,193,80,80,80,80,80,192,80,80,163,\nbackground towerpillartop1 towerwallinttop:232,84,169,132,background mark puzzle5mesage1 puzzletilewrongnorm towertile:233,80,80,194,80,80,163,71,82,71,82,71,154,74,74,74,74,74,74,193,80,80,80,80,80,192,80,80,163,\n161,80,80,80,80,80,80,194,80,80,163,70,71,71,82,70,154,74,74,74,74,74,74,193,80,80,141,80,80,192,80,80,163,\n161,80,80,132,114,80,80,80,80,80,198,63,92,198,199,1,3,1,41,3,3,1,background rose4:234,background rose9:235,15,24,202,176,176,203,177,15,4,\n98,98,98,98,98,99,98,98,98,98,178,178,background bpuzzle3mesage towerstairsdown2:236,98,98,98,98,98,98,98,98,178,178,205,98,98,98,98,98,98,98,98,178,\n178,background bpuzzle5mesage towerstairsdown2:237,98,98,98,98,98,98,98,98,178,178,205,98,98,98,99,98,98,98,98,178,178,background bpuzzle7mesage towerstairsdown2:238,98,98,background basementpillar5 basementpillartop3 basementtile:239,122,123,98,98,98,178,\n178,205,179,180,209,180,181,98,98,98,178,178,background bpuzzle9mesage towerstairsdown2:240,98,98,98,98,98,98,98,98,178,178,205,98,98,98,184,153,98,98,98,178,\n154,155,129,157,157,158,187,74,74,102,63,161,80,80,80,132,background mark puzzle8mesage2 puzzletilewrongnorm towerpillartop1 towertile:241,84,80,109,84,163,161,166,167,162,80,166,167,162,80,80,163,\n71,87,88,70,70,154,74,74,74,74,168,168,80,80,80,80,80,80,80,80,80,163,161,80,80,80,80,80,80,80,80,80,163,\n71,71,82,82,82,154,74,74,74,74,168,168,80,85,86,80,80,80,80,80,80,163,161,80,background towerpillartop2 towertilecrack2:242,86,132,background mark puzzle3mesage1 puzzletilewrongnorm towerpillartop1 towertile:243,84,80,80,80,163,\n112,88,70,71,82,154,74,74,74,74,168,168,80,80,80,80,80,80,80,80,80,163,161,80,80,80,80,80,80,80,80,80,163,\n63,92,63,64,1,1,3,49,3,2,1,background rose5:244,background rose10:245,15,15,145,175,175,176,177,24,4,98,125,98,98,98,99,98,98,98,125,178,\n178,98,98,background basementpillartop4 basementtile:246,183,98,124,98,98,98,178,background basementblocktile basementpillartop2:247,118,98,98,98,98,98,98,246,183,178,178,117,118,98,98,98,98,98,125,98,178,\nbackground basementblocktile basementpillartop3:248,122,123,98,98,99,98,98,124,98,178,178,121,122,123,98,98,98,125,98,98,178,178,179,180,181,98,179,180,181,98,98,178,\n178,125,98,98,98,98,98,98,117,118,178,178,98,98,background basementpattern basementtile baseright:249,98,210,211,98,98,98,178,background towerbalconytoprightroof:250,background halftiletopright towerbalconyrightroof:251,156,background roofdown roofleft roofpattern roofup towertileoutside:252,187,74,74,74,74,background halftilebottomright towerwall2right:253,background towerwall1right:254,\nbackground physicalwall towerwallintrightmid:255,background towerpillartop1 towerwallintright:256,84,80,80,109,84,80,80,background towerwallbottomright:257,76,255,background towerwallintright:258,80,80,80,80,80,80,80,257,76,70,89,90,70,70,background towerbalconytopright:259,background towerbalconyright:260,260,260,260,76,\n255,258,80,109,84,85,86,80,80,257,76,255,258,80,80,80,80,80,80,80,257,76,71,71,82,82,70,259,260,260,260,260,76,\n255,258,80,80,132,background mark puzzle4mesage1 puzzletilewrongnorm towertile:261,141,80,80,257,76,255,258,80,85,139,84,169,80,80,257,76,89,90,71,70,70,259,260,260,260,260,76,\n255,258,80,80,80,80,80,111,80,257,76,255,258,85,86,80,80,80,80,80,257,76,254,background towerwall2right:262,254,background towerbaseright:263,2,3,2,41,2,3,1,\n13,13,15,15,145,background count0 drawgoal3 drawingboardright:264,background count0 drawgoal2 drawingboardright:265,background count0 drawgoal0 drawingboardright:266,background count0 drawgoal0 drawingboarddownright:267,15,4,background basementwallright:268,98,98,98,98,99,98,98,98,98,background basementwallbottomright:269,268,98,98,98,98,98,98,98,98,98,269,\n268,98,98,98,98,98,98,98,98,98,269,268,98,98,98,98,98,98,98,98,98,269,268,98,98,98,98,99,98,98,98,98,269,\n268,98,246,183,98,98,246,183,98,98,269,268,98,98,98,98,98,98,98,98,98,269,268,98,62,98,98,98,98,98,98,98,269,\n268,98,98,210,background basementpattern basementtile baseup:270,98,98,98,98,98,269,71,250,251,102,background dirttile rosetile3 towertileoutside:271,104,271,186,background halftilebottomright towerwall1right:272,262,254,background physicalwall towerwallintrighttop:273,255,256,106,167,162,80,80,257,76,76,\n273,255,258,80,111,80,80,80,257,76,76,71,82,82,71,70,71,70,82,71,82,76,273,255,258,109,84,85,86,80,257,76,76,\n273,255,258,80,80,80,80,80,257,76,76,70,82,82,70,71,71,70,71,82,71,76,273,255,258,80,80,80,80,80,257,76,76,\n273,255,258,80,80,80,80,80,257,76,76,82,71,70,70,70,87,197,82,70,70,76,273,255,258,80,80,80,80,80,257,76,76,\n273,255,258,80,169,80,80,80,257,76,76,63,92,64,3,1,3,2,41,1,2,2,13,13,15,15,14,15,15,15,15,24,4,\nbackground basementwallrightmid:274,268,246,183,98,99,246,183,98,269,119,background basementpillartop3 basementwallrightmid:275,background basementpillarmid3 basementwallright:276,123,98,98,98,98,246,183,269,119,274,268,246,183,98,98,98,125,98,269,119,\n274,background basementpillartop2 basementwallright:277,118,98,125,117,118,117,118,269,119,274,268,117,118,98,99,117,118,98,269,119,274,268,98,98,98,98,98,98,98,269,119,\n274,268,98,98,98,98,98,98,98,269,119,274,268,98,125,98,98,246,183,98,269,119,275,276,123,98,98,98,121,122,123,269,119,\n71,82,250,251,74,74,74,253,254,262,254,76,273,255,258,80,80,80,257,76,76,76,76,273,255,258,80,80,80,257,76,76,76,\n82,82,82,82,82,82,71,82,70,82,76,76,273,255,256,background puzzlepanel towerpillar1 towertile:278,background imbalancemesage2 mark puzzletilewrongnorm towerpillartop2 towertile:279,86,257,76,76,76,76,273,255,258,80,80,80,257,76,76,76,\n82,82,71,71,71,70,70,70,71,70,76,76,273,255,258,80,80,80,257,76,76,76,76,273,255,258,80,80,80,257,76,76,76,\n70,70,71,82,70,134,90,82,70,71,76,76,273,255,258,80,80,80,257,76,76,76,76,273,255,258,80,80,80,257,76,76,76,\n63,92,64,3,1,2,3,background ground3 pathhoriz puddlecornertl:280,93,background ground2 puddlecornerbl:281,2,55,55,background secret:282,55,55,55,55,55,55,background housewallintleft housewallsecret:283,4,background basementwallrighttop:284,274,268,98,98,background basemententrance2 bpuzzle1mesage:285,98,98,269,101,101,\n284,274,268,98,98,98,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,\n284,274,268,98,98,99,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,\n284,274,268,98,98,98,98,98,269,101,101,284,274,268,98,98,98,98,98,269,101,101,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background darkbarrier towerwallintrighttop wall:286,0,0,0,0,0,0,0,0,0,0,286,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,286,0,0,0,0,0,0,0,0,0,0,286,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,286,0,0,0,0,0,0,0,0,0,0,286,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,286,0,0,0,0,0,0,0,0,0,0,286,0,0,0,0,0,0,0,0,254,262,263,2,2,2,3,background ground2 pathhoriz puddletop:287,20,40,1,\n101,101,101,101,101,285,101,101,101,101,101,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,\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,\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,9,0,0,0,16,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,16,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,63,64,3,3,3,1,3,287,20,40,1,101,101,101,101,98,99,98,101,101,101,101,\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,\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,16,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,18,17,17,18,18,18,17,17,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,17,17,17,17,17,17,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,16,0,0,9,0,0,0,0,0,\n0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,16,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,16,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,\n254,263,2,3,1,3,3,background ground1 pathhoriz puddletop:288,20,61,1,101,101,101,101,98,99,98,101,101,101,101,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,16,0,0,16,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,\n0,0,0,0,0,0,9,0,0,0,0,0,0,17,25,17,35,36,35,9,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,\n0,16,17,25,25,17,25,17,17,37,16,0,0,0,background blocker count0 dark goal0 goodtemp nodrawspace number0:289,background blocker count0 dark goal2 nodrawspace number2 wrongtemp:290,290,background blocker count0 dark goal1 nodrawspace number1 wrongtemp:291,289,0,0,0,0,0,17,18,17,17,17,17,0,0,0,\n0,0,0,background count0 dark goal0 goodtemp imbalancespacerandom number0:292,background count0 dark goal2 imbalancespacerandom number2 wrongtemp:293,293,292,0,0,0,0,0,17,17,17,17,18,0,0,0,0,0,0,0,0,16,background count0 dark goal2 imbalancespace number2 wrongtemp:294,background count0 dark goal3 imbalancespace number3 wrongtemp:295,295,294,0,0,0,\n0,0,0,38,17,17,18,17,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,18,17,17,18,0,0,0,0,0,0,0,17,17,17,43,43,0,0,0,263,2,3,2,3,3,3,background ground1 pathhoriz puddlecornertr:296,47,29,3,\n101,101,101,101,98,99,98,101,101,101,101,0,16,17,25,18,0,0,0,0,0,0,0,0,0,18,25,17,35,35,0,0,0,\n0,0,16,17,25,17,25,35,16,0,0,0,0,16,36,36,34,36,0,0,0,0,0,0,16,17,17,35,35,0,0,0,0,\n0,0,17,44,17,35,background balancespace blocker count0 dark goal0 goodtemp:297,35,0,0,0,0,0,0,289,291,291,289,289,0,0,0,0,0,0,0,0,291,background blocker count0 dark goal3 nodrawspace number3 wrongtemp:298,291,291,0,0,\n0,0,0,297,35,34,35,297,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,43,17,44,17,37,43,37,0,\n0,0,0,290,290,298,289,290,0,0,0,0,0,37,43,17,18,17,17,0,0,0,0,0,0,293,293,293,293,0,0,0,0,\n0,18,18,25,25,17,0,0,0,0,0,0,0,0,0,294,294,294,294,0,0,0,0,0,16,18,38,18,38,26,0,0,0,\n0,0,38,17,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,25,25,17,9,0,0,0,\n0,0,0,17,43,17,17,17,9,0,0,3,2,1,1,3,1,2,41,2,2,3,101,101,101,101,98,99,98,98,98,98,98,\n0,0,18,17,17,0,0,0,0,0,0,0,0,0,17,17,25,34,34,0,0,0,0,0,0,34,25,43,35,34,0,0,0,\n0,0,0,34,25,34,18,0,0,0,0,0,0,0,25,17,35,36,0,0,0,0,0,0,17,25,17,35,36,35,0,0,0,\n0,0,0,289,background blocker count0 dark goal4 nodrawspace number4 wrongtemp:299,291,290,289,0,0,0,0,0,0,0,0,290,290,290,290,0,0,0,0,0,35,51,51,51,35,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,18,17,25,18,43,25,17,17,0,0,0,0,291,289,291,290,291,0,0,0,\n0,16,17,18,17,17,43,37,0,0,0,0,0,0,293,293,293,293,9,0,0,0,0,37,43,37,43,37,0,0,0,0,0,\n0,0,0,background imbalance wall:300,294,294,294,294,9,0,0,0,0,0,25,17,26,25,18,0,0,0,0,0,17,44,25,17,9,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,25,25,18,0,0,0,0,0,0,0,17,17,25,18,18,0,0,0,\n2,background ground3 houseroofside:301,background housewallside:302,302,302,3,2,41,2,1,3,101,101,101,101,98,99,98,98,98,98,background basemententrance1:303,0,0,36,35,35,9,0,0,0,0,0,\n0,0,0,25,25,25,35,35,0,0,0,0,0,0,36,34,35,297,35,0,0,0,0,0,0,36,34,34,34,16,0,0,0,\n0,0,0,25,17,35,36,0,0,0,0,0,16,35,36,35,35,34,35,0,0,0,0,0,0,290,290,298,299,290,0,0,0,\n0,0,0,0,0,298,291,298,290,0,0,0,0,0,34,51,51,51,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,18,17,18,17,17,17,17,25,0,0,0,background nodraw wall:304,291,298,299,291,289,0,0,0,0,0,17,17,17,44,17,17,0,0,0,\n0,0,0,292,293,293,292,0,0,0,0,0,17,17,17,17,18,0,0,0,0,0,0,0,0,0,background count0 dark goal1 imbalancespace number1 wrongtemp:305,305,305,305,0,0,0,\n0,0,0,17,25,38,26,18,0,0,0,0,16,18,25,25,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,17,18,17,17,0,0,0,0,0,0,0,43,43,17,43,43,0,0,0,301,background houseroof:306,background housewall:307,307,150,background ground3 pathend:308,background ground2 pathvert:309,background ground1 pathupbend:310,background ground1 puddlecornertl:311,58,12,\n101,101,101,101,98,99,98,98,98,98,98,0,0,35,34,36,0,0,0,0,0,0,0,0,16,17,17,17,34,36,16,0,0,\n0,0,0,35,51,25,25,34,0,0,0,0,0,0,36,25,36,18,0,0,0,0,0,0,0,17,17,35,35,16,0,0,0,\n0,0,35,297,35,35,51,35,0,0,0,0,0,304,290,298,289,291,291,0,0,0,0,0,0,0,304,298,290,299,290,0,0,\n0,0,0,35,51,51,51,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,17,17,17,17,37,17,25,17,16,\n0,0,0,289,290,289,291,289,0,0,0,0,0,18,17,17,17,43,17,16,0,0,0,0,0,background imbalancerandom wall:312,0,7,0,0,0,0,0,\n16,17,17,17,25,18,0,0,0,0,0,0,0,0,0,16,0,0,7,0,0,0,0,0,0,18,17,18,26,17,16,0,0,\n0,0,18,17,38,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,7,0,0,0,0,\n0,0,0,43,18,25,18,43,0,0,0,306,306,307,background housewallcrack:313,307,2,1,1,42,20,40,101,101,101,101,101,101,101,101,101,101,101,\n0,0,7,8,16,0,0,0,0,0,0,0,0,0,0,9,7,8,0,0,0,0,0,0,9,35,17,18,25,17,16,0,0,\n0,0,0,16,0,7,8,0,0,0,0,0,0,0,16,0,7,8,0,0,0,0,0,0,35,36,35,35,34,35,16,0,0,\n0,0,0,289,291,298,289,289,0,0,0,0,0,0,0,0,290,291,290,291,0,0,0,0,0,297,35,34,35,297,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,17,18,18,17,25,17,17,18,0,0,0,0,0,0,7,0,0,0,0,0,\n0,0,17,17,17,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,0,16,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,7,8,0,0,0,0,0,0,16,7,8,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,7,8,0,0,0,0,0,0,\n306,306,307,background housewindow:314,307,2,2,3,42,20,21,101,101,101,101,101,101,101,101,101,101,101,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,7,8,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,7,8,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,\n0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,background balancemesagefinal2 dark end puzzlestartbadend:315,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,16,0,7,8,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,9,8,7,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,306,306,307,307,307,2,2,1,background ground1 puddlecornertr:316,47,background ground2 puddlecornerbr:317,\n101,101,101,101,101,101,101,101,101,101,101,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,\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,\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,\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,\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,\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,\n0,0,0,0,0,0,0,0,0,0,0,306,306,307,307,307,1,1,2,3,2,1,101,101,101,101,101,101,101,101,101,101,101,\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,\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,\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,\n",0,"1627779185736.9275"] ], [ `gallery: season finale`, - ["title Season Finale\nrun_rules_on_level_start\nbackground_color #222\ntext_color #DDD\nagain_interval 0\n\n========\nOBJECTS\n========\n\nBackground 1\nblack\n\nsunlit \n#78D448\n\nmunlit\n#70F044\n\nsnlit \n#58BBE0\n\nwnlit\n#C0FFEE\n\nait\n#FEB047\n\nwit \n#EFC040\n\nmlit \n#FBFB68\n\nalit\n#FFFB66\n\nablock\n#C84202\n\nsblock w\n#043804\n\nmblock\n#14D0D0\n\nwblock\n#6094B2\n\nwdoor\n#6094B2 #5074A2\n11100\n11110\n11111\n11110\n11100\n\nadoor \n#FD712D #C84202\n00011\n00001\n00000\n00001\n00011\n\nsdoor e\n#109010 #043804\n00011\n00001\n00000\n00001\n00011\n\nmdoor\n#80F4F4 #14D0D0\n00011\n00001\n00000\n00001\n00011\n\nspring\n#109010 #041904\n.000.\n00000\n01010\n00000\n.000.\n\nbunnyd ,\n#745004 black pink white\n..3..\n.000.\n.000.\n.101.\n..2..\n\nbunnyl <\n#745004 black pink white \n.....\n.100.\n20003\n.100.\n.....\n\nbunnyu .\n#745004 black pink white\n..2..\n.101.\n.000.\n.000.\n..3..\n\nbunnyr >\n#745004 black pink white\n.....\n.001.\n30002\n.001.\n.....\n\n\n\ncrat 7\n#745004 #C47004\n.000.\n01110\n01110\n01110\n.000.\n\nglass q\n#745004 #C47004 white\n.000.\n02110\n02120\n01120\n.000.\n\nflower\n#043804 #109010\n.....\n..1..\n.101.\n..1..\n.....\n\nwater o\n#1040E0 \n\nice p\nlightblue\n\n\n\ndrowned\n#1040E0 #745004 \n00000\n00100\n01110\n00100\n00000\n\nnodoor\ntransparent\n\nstart\ntransparent\n\nvert\ntransparent\n\nmoved\ntransparent\n\nnomoved\ntransparent\n\n\n\neaten\ntransparent\n\nwatermark\ntransparent\n\n\n\n\n\nsummer\n#f41010 #600404 #FFB008\n.000.\n00000\n01010\n00000\n.000.\n\n\n\nlightu \n#FFC008\n.....\n..0..\n.0.0.\n.....\n.....\n\n\n\nlightr \n#FFC008\n.....\n..0..\n...0.\n..0..\n.....\n\nlightl \n#FFC008\n.....\n..0..\n.0...\n..0..\n.....\n\nlightd \n#FFC008\n.....\n.....\n.0.0.\n..0..\n.....\n\n\nu1\n#FF5800\n.....\n..0..\n.0.0.\n.....\n.....\n\nr1\n#FF5800\n.....\n..0..\n...0.\n..0..\n.....\n\nl1\n#FF5800\n.....\n..0..\n.0...\n..0..\n.....\n\nd1\n#FF5800\n.....\n.....\n.0.0.\n..0..\n.....\n\nu2\n#FF7800\n.....\n..0..\n.0.0.\n.....\n.....\n\nr2\n#FF7800\n.....\n..0..\n...0.\n..0..\n.....\n\nl2\n#FF7800\n.....\n..0..\n.0...\n..0..\n.....\n\nd2\n#FF7800\n.....\n.....\n.0.0.\n..0..\n.....\n\nu3\n#FF9800\n.....\n..0..\n.0.0.\n.....\n.....\n\nr3\n#FF9800\n.....\n..0..\n...0.\n..0..\n.....\n\nl3\n#FF9800\n.....\n..0..\n.0...\n..0..\n.....\n\nd3\n#FF9800\n.....\n.....\n.0.0.\n..0..\n.....\n\nu4\n#FFA800\n.....\n..0..\n.0.0.\n.....\n.....\n\nr4\n#FFA800\n.....\n..0..\n...0.\n..0..\n.....\n\nl4\n#FFA800\n.....\n..0..\n.0...\n..0..\n.....\n\nd4\n#FFA800\n.....\n.....\n.0.0.\n..0..\n.....\n\nx0\ntransparent\n\nx1\ntransparent\n\nx2\ntransparent\n\nx3\ntransparent\n\nx4\ntransparent\n\nx5\ntransparent\n\nplusone\ntransparent\n\n\nver\n#1040E0 #A07004\n01110\n01110\n01110\n01110\n01110\n\nhor\n#1040E0 #A07004\n00000\n11111\n11111\n11111\n00000\n\nwver\nlightblue #A07004\n01110\n01110\n01110\n01110\n01110\n\nwhor\nlightblue #A07004\n00000\n11111\n11111\n11111\n00000\n\nbloomed\n#209A00\n.000.\n00000\n00000\n00000\n.000.\n\n\n\n\nbad\n#985000 white #ff5064\n..2..\n.000.\n.000.\n.000.\n..1..\n\n\n\n\nlose\n#985000 white #ff5064 black\n..2..\n.303.\n.000.\n.000.\n..1..\n\nnemir z\n#985000 #14D0D0\n0....\n00...\n0.0..\n0..0.\n00000\n\nsemir x\n#985000 #14D0D0\n00000\n0..0.\n0.0..\n00...\n0....\n\nnwmir c\n#985000 #14D0D0\n....0\n...00\n..0.0\n.0..0\n00000\nswmir v\n#985000 #14D0D0\n00000\n.0..0\n..0.0\n...00\n....0\n\ndiag b\n#985000 #14D0D0\n00000\n00..0\n0.0.0\n0..00\n00000\n\ndiago n\n#985000 #14D0D0\n00000\n0..00\n0.0.0\n00..0\n00000\n\n\nwins\ntransparent\n\nnew\ntransparent\n\nmore\ntransparent\n\n\n\nautumn \n#F45305 #6A2402\n.000.\n00000\n01010\n00000\n.000.\n\n\nbird m\ndarkblue blue lightblue black\n..1..\n2.1.2\n11111\n.010.\n..1..\n\n\n\nfella\n#7E2D00\n.000.\n00000\n00000\n00000\n.000.\n\nfellb\n#9A0501\n.000.\n00000\n00000\n00000\n.000.\n\nfellc\n#CD0601\n.000.\n00000\n00000\n00000\n.000.\n\nfelld\n#CCC926\n.000.\n00000\n00000\n00000\n.000.\n\nfelle\n#F7C709\n.000.\n00000\n00000\n00000\n.000.\n\nfellf\n#F45305\n.000.\n00000\n00000\n00000\n.000.\n\nfellg\n#DA4528\n.000.\n00000\n00000\n00000\n.000.\n\nfellh\n#FD712D\n.000.\n00000\n00000\n00000\n.000.\n\nconnected\ntransparent\n\nfirst\ntransparent\n\nnotfirst\ntransparent\n\n\nwinter\n#1010B0 #101030\n.000.\n00000\n01010\n00000\n.000.\n\n\ndead\nbrown\n..0..\n..0..\n00000\n..0..\n..0..\n\ntemp\ntransparent\n\ntemp2\ntransparent\n\nlef\ntransparent\n\nrigh\ntransparent\n\ndow\ntransparent\n\nuq\ntransparent\n\nbunn\ntransparent\n\niffy \ntransparent\n\nwinner1\ntransparent\n\nwinner2\ntransparent\n\nwinner3\ntransparent\n=======\nLEGEND\n=======\n\nbunny = bunnyl or bunnyr or bunnyd or bunnyu\naqua = water or ice\n\nfell = fella or fellb or fellc or felld or felle or fellh or fellg or fellf\nflow = flower or bloomed or dead\n\ni = spring and start\n\nplayer = spring or summer or autumn or winter\n\nmirror = swmir or semir or nwmir or nemir\n\ndiags = diag or diago\nlight = lightu or lightd or lightr or lightl \nblock = sblock or ablock or wblock or mblock\nlit = alit or mlit\nunlit = munlit or sunlit\nnlit = snlit or wnlit\nit = wit or ait\nfloor = unlit or nlit or lit or it\nl= snlit\na = flower and snlit\nwinner = winner1 or winner2 or winner3\ndoor = sdoor or adoor or mdoor or wdoor\ncra = crat or block or mirror or diags or fell or dead or bunny\ncratd = crat or block or fell or dead\ncred = crat or diags or mirror or fell\ncre = spring or block or crat or glass or door or bunny or ice or mirror or diags\ncrae = block or glass or bad or flow\ncrate = crat or block or glass or aqua\ncrated = block or glass or mirror or bad or diags or summer or flow\npush = mirror or diags\nt = bad and mlit\nfir = u1 or d1 or l1 or r1\nsec = u2 or d2 or l2 or r2\nthi = u3 or d3 or l3 or r3\nfou = u4 or d4 or l4 or r4\nxs = x0 or x1 or x2 or x3 or x4 or x5\n2 = summer and start\n\nk= water \n\n\n\n\n\n=======\nSOUNDS\n=======\nSFX1 80425104\nSFX2 16467501\nSFX3 80127507\nSFX4 71317504\nSFX5 25216505\nSFX6 16917301\nSFX7 92204307\nSFX8 54283103\nSFX9 32265107\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nvert\nnodoor,wins, lose\nwatermark, connected\nfloor\nice\nmoved, nomoved\nflow, eaten\nwater,\nhor, ver, whor, wver\nlightu, first, notfirst\nlightr\nlightd\nlightl\nmore\nbad\nstart, new\ntemp, temp2\nplayer, glass, crat, block, door, bunny, mirror, diags, fell, bird,\nwinner\nlef, righ, dow, uq\nbunn\niffy\nstart, drowned\nplusone\nx0\nx1\nx2\nx3\nx4\nx5\nu1, u2, u3, u4\nd1, d2, d3, d4\nl1, l2, l3, l4\nr1, r2, r3, r4\n\n\n\n======\nRULES\n======\n\n\n\n[spring][start watermark] -> restart\n[spring][drowned][start] -> [spring][drowned][start watermark]\n\n[action spring no unlit no flower no aqua] -> [spring flower] SFX1\n[action spring flower] -> [spring eaten]\n\n[spring][floor] -> [spring][]\n[> spring| water] -> [spring|water]\n[> spring | crat| no cre no aqua flower] -> [|spring|crat] SFX3\n[> spring | crat| no cre no aqua] -> [|spring|crat] SFX7\n[> spring | mirror| no cre no aqua flower] -> [|spring|mirror] SFX3\n[> spring | mirror| no cre no aqua] -> [|spring|mirror] SFX7\n[spring][vert] ->[spring][]\n[spring][eaten]->[spring][]\n[spring][nomoved] -> [spring][]\n[spring][moved] -> [spring][]\n\nlate [spring ice] -> [spring ice watermark]\nlate [spring][no spring ice watermark] -> [spring][water watermark] SFX2\n\nlate [spring][bunny watermark] -> [spring][drowned] SFX6\n\nlate up [spring][bunnyu no moved |no cre flower] ->[spring] [|bunnyu moved eaten] SFX3 \nlate left [spring][bunnyl no moved |no cre flower] -> [spring][|bunnyl moved eaten] SFX3 \nlate right [spring][bunnyr no moved |no cre flower] -> [spring][|bunnyr moved eaten] SFX3 \nlate down [spring][bunnyd no moved |no cre flower] -> [spring][|bunnyd moved eaten] SFX3\n\n\nlate up [spring][bunnyu no moved |no cre no flower] ->[spring] [|bunnyu moved] \nlate left [spring][bunnyl no moved |no cre no flower] -> [spring][|bunnyl moved] \nlate right [spring][bunnyr no moved |no cre no flower] -> [spring][|bunnyr moved] \nlate down [spring][bunnyd no moved |no cre no flower] -> [spring][|bunnyd moved] \n\nlate right [|nodoor spring][eaten] -> [spring|sdoor][eaten]\nlate [spring][nodoor][eaten] -> [spring][sdoor][eaten]\n\nlate [spring] -> [spring nomoved]\nlate [nomoved spring][moved] -> [spring][moved]\nlate [spring][moved no spring]->[spring moved][] again\n\n\nlate [spring][no block no aqua] -> [spring][snlit]\nlate [spring][nodoor floor] -> [spring][nodoor sunlit]\nlate [spring][start floor] -> [spring][start sunlit]\n\nlate [spring][flow nlit] -> [spring][flow sunlit]\nlate [spring][flow |nlit] -> [spring][flow|sunlit]\nlate [spring][flow |ice] -> [spring][flow |water watermark]\nlate vertical [spring][flower|] -> [spring][flower|vert]\nlate horizontal [spring][vert|nlit] -> [spring][vert|sunlit]\nlate horizontal [spring][vert|ice] -> [spring][vert|water watermark]\n\nlate up [spring][nomoved][bunnyu | cre] -> [spring][nomoved][bunnyr|cre]\nlate right [spring][nomoved][bunnyr|cre] -> [spring][nomoved][bunnyd| cre]\nlate down [spring][nomoved][bunnyd| cre] -> [spring][nomoved][bunnyl| cre]\nlate left [spring][nomoved][bunnyl| cre] -> [spring][nomoved][bunnyu| cre]\nlate up [spring][nomoved][bunnyu | cre] -> [spring][nomoved][bunnyr|cre]\nlate right [spring][nomoved][bunnyr|cre] -> [spring][nomoved][bunnyd| cre]\nlate down [spring][nomoved][bunnyd| cre] -> [spring][nomoved][bunnyl| cre]\nlate left [spring][nomoved][bunnyl| cre] -> [spring][nomoved][bunnyu| cre]\nlate up [spring][nomoved][bunnyu | cre] -> [spring][nomoved][bunnyr|cre]\nlate right [spring][nomoved][bunnyr|cre] -> [spring][nomoved][bunnyd| cre]\nlate down [spring][nomoved][bunnyd| cre] -> [spring][nomoved][bunnyl| cre]\nlate left [spring][nomoved][bunnyl| cre] -> [spring][nomoved][bunnyu| cre]\nlate up [spring][nomoved][bunnyu | cre] -> [spring][nomoved][bunnyr|cre]\nlate right [spring][nomoved][bunnyr|cre] -> [spring][nomoved][bunnyd| cre]\nlate down [spring][nomoved][bunnyd| cre] -> [spring][nomoved][bunnyl| cre]\nlate left [spring][nomoved][bunnyl| cre] -> [spring][nomoved][bunnyu| cre]\n\nlate [spring][door] -> [spring][nodoor vert sunlit]\nlate [spring][nodoor vert floor no player][nlit] -> [spring][sdoor][snlit]\nlate [spring][nodoor vert floor no player][ice] -> [spring][sdoor][ice]\nlate [spring][nodoor floor no player][snlit] -> [spring][sdoor][snlit]\nlate [spring][nodoor floor no player][ice] -> [spring][sdoor][ice]\nlate [spring][nodoor vert] -> [spring][nodoor] SFX8\n\nlate [drowned][spring nodoor] -> [drowned][spring nodoor watermark]\n\n\n\n\n\n\nlate [start summer][bunny] -> [start summer][mlit bad]\nlate [summer][sunlit] -> [summer][munlit]\nlate [summer][sblock] -> [summer][mblock]\n\n[xs] -> []\n[fir] -> []\n[sec] -> []\n[thi] -> []\n[fou] -> []\n\n\n[summer][no floor no door no nodoor no block] -> [summer][munlit]\n\n\n[summer][new] -> [summer][]\n[light]->[]\n\n\n\n\n\n\n[> summer| water] -> cancel\n[> summer| flow] -> cancel\n[> summer| push| no crae no water] -> [> summer|> push|] SFX3\nstartloop\nright [summer][> nemir| swmir] -> [summer][|stationary diag]\nup [summer][> nemir| swmir] -> [summer][|stationary diag]\ndown [summer][> swmir| nemir] -> [summer][|stationary diag]\nleft [summer][> swmir| nemir] -> [summer][|stationary diag]\nleft [summer][> nwmir| semir] -> [summer][|stationary diago]\nup [summer][> nwmir| semir] -> [summer][|stationary diago]\ndown [summer][> semir| nwmir] -> [summer][|stationary diago]\nright [summer][> semir| nwmir] -> [summer][|stationary diago]\n\n[summer][> push|push| no crae no water] -> [summer][> push|> push|]\nendloop\n[summer][> push| stationary push] -> cancel\n[> summer| stationary push] -> cancel\n\nlate [summer] -> [summer lightu lightr lightd lightl x0]\n\n\n\nstartloop \n\nlate [light more] -> [light]\n\nlate up [lightu xs no flow no more|no lightu no cre no door ] -> [lightu xs| lightu more xs plusone]\nlate down [lightd xs no flow no more|no lightd no cre no door ] -> [lightd xs| lightd more xs plusone]\nlate left [lightl xs no flow no more|no lightl no cre no door ] -> [lightl xs| lightl more xs plusone]\nlate right [lightr xs no flow no more|no lightr no cre no door ] -> [lightr xs| lightr more xs plusone]\n\n\nlate up[lightu no more no flow xs|semir no lightr] -> [lightu xs|lightr more semir xs plusone]\nlate up[lightu no more no flow xs|swmir no lightl] -> [lightu xs|lightl more swmir xs plusone]\nlate down[lightd no more no flow xs|nemir no lightr] -> [lightd xs|lightr more nemir xs plusone]\nlate down[lightd no more no flow xs|nwmir no lightl] -> [lightd xs|lightl more nwmir xs plusone]\nlate left[lightl no more no flow xs|semir no lightd] -> [lightl xs|lightd more semir xs plusone]\nlate left[lightl no more no flow xs|nemir no lightu] -> [lightl xs|lightu more nemir xs plusone]\nlate right[lightr no more no flow xs|swmir no lightd] -> [lightr xs|lightd more swmir xs plusone]\nlate right[lightr no more no flow xs|nwmir no lightu] -> [lightr xs|lightu more nwmir xs plusone]\n\n\nlate up [lightu no crae mirror|flow no new] -> [lightu mirror|bloomed new] \nlate down [lightd no crae mirror|flow no new] -> [lightd mirror|bloomed new] \nlate left [lightl no crae mirror|flow no new] -> [lightl mirror| bloomed new] \nlate right [lightr no crae mirror|flow no new] -> [lightr mirror|bloomed new] \n\nlate up [lightu no crae summer|flow no new] -> [lightu summer|bloomed new] \nlate down [lightd no crae summer|flow no new] -> [lightd summer|bloomed new] \nlate left [lightl no crae summer|flow no new] -> [lightl summer| bloomed new] \nlate right [lightr no crae summer|flow no new] -> [lightr summer|bloomed new]\n\n\nlate up [lightu no crated water|flow no new floor] -> [ver|mlit] SFX4 again\nlate down [lightd no crated water|flow no new floor] -> [ver|mlit] SFX4 again\nlate left [lightl no crated water|flow no new floor] -> [hor|mlit] SFX4 again\nlate right [lightr no crated water|flow no new floor] -> [hor|mlit] SFX4 again\n\n\nlate up [lightu no crated no water no hor no ver|flow no new floor] -> [bloomed new|mlit] again SFX9\nlate down [lightd no crated no water no hor no ver|flow no new floor] -> [bloomed new|mlit] again SFX9\nlate left [lightl no crated no water no hor no ver|flow no new floor] -> [bloomed new|mlit] again SFX9\nlate right [lightr no crated no water no hor no ver|flow no new floor] -> [bloomed new|mlit] again SFX9\n\nlate [x0 plusone] -> [x1]\nlate [x1 plusone] -> [x2]\nlate [x2 plusone] -> [x3]\nlate [x3 plusone] -> [x4]\nlate [x4 plusone] -> [x5]\n\n\nendloop\n\n\nlate [summer unlit] -> [summer mlit]\nlate [light unlit] -> [light mlit]\nlate [summer|flower] -> [summer| bloomed]\nlate [light flow] -> [bloomed]\n\nlate up [lightu|crat floor] -> [lightu|glass mlit]\nlate down [lightd|crat floor] -> [lightd|glass mlit]\nlate right [lightr|crat floor] -> [lightr|glass mlit]\nlate left [lightl|crat floor] -> [lightl|glass mlit]\nlate up [lightu|glass floor] -> [lightu|glass mlit]\nlate down [lightd|glass floor] -> [lightd|glass mlit]\nlate right [lightr|glass floor] -> [lightr|glass mlit]\nlate left [lightl|glass floor] -> [lightl|glass mlit]\n\n\nlate [lightu x4] -> [lightu u4 x4]\nlate [lightd x4] -> [lightd d4 x4]\nlate [lightl x4] -> [lightl l4 x4]\nlate [lightr x4] -> [lightr r4 x4]\nlate [lightu x3] -> [lightu u3 x3]\nlate [lightd x3] -> [lightd d3 x3]\nlate [lightl x3] -> [lightl l3 x3]\nlate [lightr x3] -> [lightr r3 x3]\nlate [lightu x2] -> [lightu u2 x2]\nlate [lightd x2] -> [lightd d2 x2]\nlate [lightl x2] -> [lightl l2 x2]\nlate [lightr x2] -> [lightr r2 x2]\n\nlate [lightu x1] -> [lightu u1 x1]\nlate [lightd x1] -> [lightd d1 x1]\nlate [lightl x1] -> [lightl l1 x1]\nlate [lightr x1] -> [lightr r1 x1]\n\n\n\n\n\nlate [summer][door] -> [summer][nodoor new mlit]\n\nlate [summer][nodoor new lit][unlit] -> [summer][mdoor][munlit]\nlate [summer][lose]->restart\nlate [light bad] -> [light lose] SFX5\nlate [summer][nodoor new] -> [summer][nodoor] SFX8\nlate [summer nodoor] -> [wins summer]\n\n\n\n\nlate [autumn][xs] -> [autumn][]\nlate [autumn][fir] -> [autumn][]\nlate [autumn][sec] -> [autumn][]\nlate [autumn][thi] -> [autumn][]\nlate [autumn][fou] -> [autumn][]\nlate [autumn][mlit] -> [autumn][alit]\nlate [autumn][mblock] -> [autumn][ablock]\n\n\n[> autumn | crat| no cre no aqua] -> [| autumn |crat] SFX7\n[> autumn | mirror| no cre no aqua] -> [| autumn |mirror] SFX7\n\nlate [autumn][bad] -> [autumn][bunnyr]\n\n[first][autumn] -> [][autumn notfirst]\n\n\n[> autumn|crat|no block no bunny no bird no flow no door no crat no glass] -> [|autumn|crat]\n[> autumn|water] -> [autumn|water]\n\n[autumn][water floor] -> [autumn][water]\n[autumn][hor floor] -> [autumn][hor]\n[autumn][ver floor] -> [autumn][ver]\n[autumn][no floor no door no nodoor no block no water no hor no ver] -> [autumn][alit]\nlate [autumn][glass floor] -> [autumn][glass ait]\n[autumn][no vert] -> [autumn][vert]\ndown[autumn][vert|...|no block] -> [autumn][|...|]\nhorizontal[autumn][vert|...|no vert] -> [autumn][|...|]\n\nlate down [autumn][glass|no bloomed no player no bunny no bad no ablock] -> [autumn][crat|bird moved]\n\n[> autumn | bird|no bloomed no door no crate no fell no bird ] -> [> autumn| > bird|]\n\n\n[> autumn|bloomed|no bloomed no door no crate no fell no bird no bunny] -> [> autumn|random fell start|]\nhorizontal [> autumn|bloomed|no bloomed no door water no fell no bird no bunny] -> [|autumn|hor]\nvertical [> autumn|bloomed|no bloomed no door water no fell no bird no bunny] -> [|autumn|ver]\n[> autumn|start fell] -> [> autumn|> fell]\n[> autumn|bloomed] -> cancel\n\n\nlate [autumn][fell floor] -> [autumn][fell ait]\nlate [autumn floor] -> [autumn ait]\n\n\n\nlate [autumn][drowned] -> restart\nlate [autumn][moved no crat no bird] -> [autumn][]\nlate right [notfirst][autumn|...|no bloomed no bird no bunny no block no fell water|bunny no moved] -> [notfirst][autumn|...|drowned|]\nlate left [notfirst][autumn|...|no bloomed no bird no bunny no block no fell water|bunny no moved] -> [notfirst][autumn|...|drowned|]\nlate right [notfirst][autumn|...|no bloomed no bird no bunny no block no fell|bunny no moved] -> [notfirst][autumn|...|bunnyl moved|]\nlate left [][autumn|...|no bloomed no bird no bunny no block no fell|bunny no moved] -> [notfirst][autumn|...|bunnyr moved|]\n\nlate down [autumn][bird no moved|no door no fell no block no bloomed no player no bird no bunny] -> [autumn][|bird moved]\nlate [autumn][bird vert] -> [autumn][] \n\nlate [autumn][connected] -> [autumn][]\nlate [autumn no connected] -> [autumn connected]\n\n+ late [autumn][connected|no connected no fell no bird no crate no door no bloomed no bunny no ver no hor] -> [autumn][connected|connected]\n\nlate [autumn][floor connected] -> [autumn][ait connected]\n\nlate [autumn][bird moved] -> [autumn][bird] again\n\n\nlate [autumn][door] -> [autumn][nodoor ait]\nlate [autumn][nodoor it][lit] -> [autumn][adoor][alit]\nlate [autumn][nodoor it][bird] -> [autumn][adoor][bird]\nlate [autumn][nodoor it][glass] -> [autumn][adoor][glass]\n\nlate [autumn nodoor] -> [wins autumn]\n\n\nlate [winter][ait] -> [winter][wit]\nlate [winter][ablock] -> [winter][wblock]\n\n[winter][no floor no door no nodoor no block no flow] -> [winter][ait]\n\n([> player | crat|no flower] -> [> player| > crat|]\n[> player | diags|no flower] -> [> player| > diags|])\n[> winter][ lose] -> restart\n[uq] [winter] -> [] [up winter]\n[dow] [winter] -> [] [down winter]\n[righ] [winter] -> [] [right winter]\n[lef] [winter] -> [] [left winter]\n\n[moved] [winter] -> [] [winter] \n[bunn] [winter] -> [] [winter] \n[bunny] [winter] -> [bunny bunn] [winter] \n\n\n\n[> winter floor no moved|no flow no door no cra ] -> [wnlit |> winter moved] \n\n\n\nright [> winter floor no moved| stationary swmir] -> [> temp2 wnlit|v temp swmir]\nup [> winter floor no moved| stationary swmir] -> [> temp2 wnlit|^ temp swmir]\ndown [> winter floor no moved| stationary nwmir] -> [> temp2 wnlit|v temp nwmir]\nright [> winter floor no moved| stationary nwmir] -> [> temp2 wnlit|^ temp nwmir]\nleft [> winter floor no moved| stationary nemir] -> [> temp2 wnlit|v temp nemir]\ndown [> winter floor no moved| stationary nemir] -> [> temp2 wnlit|^ temp nemir]\nup [> winter floor no moved| stationary semir] -> [> temp2 wnlit|v temp semir]\nleft [> winter floor no moved| stationary semir] -> [> temp2 wnlit|^ temp semir]\n\nstartloop \nright [> temp floor no moved| stationary swmir] -> [ wnlit iffy|v temp swmir]\nup [> temp floor no moved| stationary swmir] -> [ wnlit iffy|^ temp swmir]\ndown [> temp floor no moved| stationary nwmir] -> [ wnlit iffy|v temp nwmir]\nright [> temp floor no moved| stationary nwmir] -> [ wnlit iffy|^ temp nwmir]\nleft [> temp floor no moved| stationary nemir] -> [ wnlit iffy|v temp nemir]\ndown [> temp floor no moved| stationary nemir] -> [ wnlit iffy|^ temp nemir]\nup [> temp floor no moved| stationary semir] -> [ wnlit iffy|v temp semir]\nleft [> temp floor no moved| stationary semir] -> [ wnlit iffy |^ temp semir]\n\nendloop\n\n[> temp floor|no flow no door no cra ] -> [wnlit|> winter moved] SFX1\n[temp][temp2][nlit iffy] -> [temp][temp2][wit]\n[temp][> temp2] -> [][> winter]\n[temp] -> []\n[temp2] -> []\n\n[iffy] -> []\n\n[> winter floor no moved|cred|no flow no door no block ] -> [wnlit > winter| > cred|]\n\n[winter it] -> [winter wnlit]\n[> winter no moved| door] -> [winter moved| temp door] \n[temp door] [winter] [it] -> [door] [winter] [it]\n[temp door][winter] -> [winter nodoor wnlit][]\n\n\n[ winter| bunny] -> [winter|> bunny] \n [winter] [> bunny| bunny] -> [winter] [> bunny| > bunny]\n [winter] [left bunny] -> [winter] [left bunnyl]\n [winter] [right bunny] -> [winter] [right bunnyr]\n [winter] [down bunny] -> [winter] [down bunnyd]\n [winter] [up bunny] -> [winter] [up bunnyu]\n\n [winter] [> bunny|water] -> [winter][|lose]\n [winter] [> bunny|ice] -> [winter][bunny|ice]\n\nlate [winter hor] -> [winter whor]\nlate [winter ver] -> [winter wver]\n\nlate [winter][bunny no bunn] -> SFX3\n\n\n[left winter moved] -> [lef winter] again\n[right winter moved] -> [righ winter] again\n[down winter moved] -> [dow winter] again\n[up winter moved] -> [uq winter] again\n\n[winter water uq] -> [winter ice]\n[winter water lef] -> [winter ice]\n[winter water dow] -> [winter ice]\n[winter water righ] -> [winter ice]\n[winter water] -> [winter ice]\n\n[winter][moved] -> [winter][] again\n\n\n\n\n\nright [winter][> nemir| swmir] -> [winter][|diag]\nup [winter][> nemir| swmir] -> [winter][|diag]\ndown [winter][> swmir| nemir] -> [winter][|diag]\nleft [winter][> swmir| nemir] -> [winter][|diag]\nleft [winter][> nwmir| semir] -> [winter][|diago]\nup [winter][> nwmir| semir] -> [winter][|diago]\ndown [winter][> semir| nwmir] -> [winter][|diago]\nright [winter][> semir| nwmir] -> [winter][|diago]\n[winter][> cre| cre| no flow no door no block] -> [winter][> cre| > cre| ]\n\n[winter][> cre|stationary cra] -> [winter][cre|cra]\n[> winter| fell floor] -> [winter|dead wnlit] SFX3\n[> winter|stationary cra] -> [winter|cra]\n\nlate [winter it] -> [winter wnlit]\nlate [winter][door] -> [winter][nodoor new wnlit]\nlate [winter][nodoor new nlit][it] -> [winter][wdoor][wit]\nlate [winter][nodoor new] -> [winter][nodoor] SFX8\nlate [winter nodoor] -> [wins winter]\nlate [start][winter wins floor] -> win\n\nlate [fell hor] -> cancel\nlate [fell ver] -> cancel\n\nlate [spring no moved nodoor] -> [winner1]\nlate [summer wins ] -> [winner2]\nlate [autumn wins] -> [winner3]\n\nlate [ winner1 no watermark no moved no first][start][sblock] -> [winner1 first][start][mblock] again\nlate [ winner1 no watermark no moved no first][start][mblock] -> [mdoor ][start summer][mblock] again\nlate [ winner2 no watermark no moved no first][start][mblock] -> [winner2 first][start][ablock] again\n\nlate [winner2 no watermark no moved no first][start][ablock] -> [adoor ][start first autumn][ablock] again\nlate [ winner3 no watermark no moved no first][start][ablock] -> [winner3 first][start][wblock] again\n\nlate [winner3 no watermark no moved no first][start][wblock] -> [adoor ][start first winter][wblock] again\n\nlate [winner first] -> [winner no first]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n\nmessage Spring: \"Wow, I can't believe that it's only been 82 thousand years! It feels like I've known about all of you for such a long time! \"\n\nmessage Summer: \"What I can't believe is that I've been able to put up with you for that long!\"\n\nmessage Autumn: \"Come on, there's no reason to be mean.\"\n\nmessage Winter: \"I assume that you are being hyperbolic again, Summer.”\nmessage Winter: \"I do not see what other option you would have had, as there is no other place that you could go.\"\n\nwwwwww\ni1111w\nw1111w\nw1111e\nwwwwww\n\nmessage Spring: \"I still remember it as if it were only a decade ago.\"\nmessage Spring: \"Oh! Autumn, you might be able to see one of my favorite comets soon!\n\nmessage Summer: \"Argh! Why do these things always seem to just miss me?\"\n\nmessage Autumn: \"I just saw it. The view was marvelous! Thanks for the heads up.\"\n\nmessage Winter: \"Speaking of our initial introductions, I have a question for you, Spring.\"\nmessage Winter: \"Did you actually think that I was an animal? Do I look more distinct from the rest of you than I had previously believed?\"\n\n\n\nwwwwwww\nwl1p11w\nwl1pppw\ni11p11e\nwwwwwww\nmessage Spring: \"Nope, You look just like us!\"\nmessage Spring: \"Even though now it's hard for me to even imagine life without knowing all of you friends,\"\nmessage Spring: \"At the time, I had no idea there was anything else like me!\"\nmessage Spring: \"You also slid by so fast, so that's why I assumed I must have seen an animal.\"\n\nmessage Summer: \"I guess none of us can blame you for making a wrong assumption Spring, 'cause we all did the same.\"\nmessage Summer: \"I still say that my guess was better than all of yours though!\"\n\nmessage Autumn: \"I can also hardly remember not knowing about you too, Spring.\"\nmessage Autumn: \"The intermediate time, when I only knew Summer, was a hard time for me, but your optimism and enthusiasm never ceases to inspire me.\"\n\nmessage Winter: \"Yes, I can imagine that the interim went...\"\nmessage Winter: \"...well...\"\nmessage Winter: \"...poorly, to say the least.\"\n\n\n\nwwwwwww\nw11q11w\nw11l11w\ni11l1le\nwwwwwww\n\nmessage Spring: \"This year is going to be the best year ever!\"\n\nmessage Summer: \"We GET IT already!\"\nmessage Summer: \"Do you have to say that EVERY SINGLE TIME?\"\n\nmessage Autumn: \"I agree with Spring.\"\nmessage Autumn: \"I think we should strive to make every year better than the last.\"\n\nmessage Winter: \"But I do not see any evidence that this year would be any different.\"\nmessage Winter: \"It will most likely not have any major improvements or regression.\"\n\nwwwwwww\nw1ppp1w\nw1ppp1e\nwp111pw\nwp111pw\nw1ppp1w\nip111pw\nwp111pw\nwwwwwww\n\nmessage Spring: \"Autumn, I wish that one day I could finally meet you, instead of having to leave these messages.\"\nmessage Spring: \"You sound so beautiful!\"\nmessage Spring: \"Summer or Winter, can you please describe how Autumn looks again for me?\"\n\nmessage Summer: \"He's orange.\"\n\nmessage Autumn: \"Quite the way with words as always, Summer.\"\n\nmessage Winter: \"I believe his skin looks closer to that of a tangerine than an orange.\"\nmessage Winter: \"And his eyes have a similar color to the seed coat of a peanut.\"\n\n\n\nwwwwwww\nwww1eww\nwwi1www\nwww1www\nwwl1l1w\nw111llw\nw111llw\nw111www\nwwwwwww\n\nmessage Spring: \"You must look so gorgeous Autumn!\"\nmessage Spring: \"I'd also wish that I could see you change the leaves' color sometime too, it seems so magical!\"\n\nmessage Spring: \"Hey Summer and Winter, what about you two? Do you ever think about wanting to meet each other?\"\n\nmessage Summer: \"Definitely not! It sounds like he's FREEZING!\"\n\nmessage Autumn: \"Awwww, Spring. I would be blushing if I could.\"\n\nmessage Winter: \"I will not lie and say that I am not curious about Summer's brightness\"\nmessage Winter: \"But I worry that your head may be full of dangerous thoughts, Spring\"\n\n\n\nwwwwwww\nwx11lle\nw1l1l1w\nwll111w\nil111cw\nwwwwwww\n\nmessage Spring: \"What?\"\nmessage Spring: \"What do you mean?\"\n\nmessage Summer: \"He's trying to say you're SCARING US!\"\nmessage Summer: \"All this talk about meeting our counterparts!\"\n\nmessage Autumn: \"I think you're overreacting a bit.\"\n\nmessage Winter: \"I do not believe she is.\"\nmessage Winter: \"We have no idea what could happen if one of us were to ignore our purpose.\"\n\n\n\nwwwwwwww\nilql11ww\nwllll11w\nwlllll1w\nwwwwlllw\nwwww11le\nwwwwww1w\n\nmessage Spring: \"I'm...\"\nmessage Spring: \"I'm so sorry Winter! I never meant to upset you!\"\nmessage Spring: \"I'll never mention it again!\"\n\nmessage Summer: \"GOOD!\"\nmessage Summer: \"I was getting sick of hearing you rambling on about it.\"\n\nmessage Autumn: \"Hey, don't talk to her that way!\"\nmessage Autumn: \"Winter, I agree that we have no idea what could happen.\"\nmessage Autumn: \"But that might just mean that it could be nothing!\"\nmessage Autumn: \"None of us can remember a time before our purposes, so none of us can know why we are doing it.\"\nmessage Autumn: \"It could all just be arbitrary and meaningless.\"\n\nmessage Winter: \"Autumn, please do not make any rash decisions because of your emotions.\"\nmessage Winter: \"Although it is true none of us know the meaning of the cycle, something must have set the chain in motion.\"\nmessage Winter: \"I do not believe that it all could lack meaning.\"\n\n\n\n\nwwwwwww\nw1111lw\nw111wlw\nw111wle\nw1111lw\nwl1lllw\nil1lllw\nwwwwwww\n\nmessage Spring: \"Please stop fighting you guys! I hate seeing when you argue!\"\n\nmessage Summer: \"Do like Spring said, and just stop being stupid about this Autumn!\"\n\nmessage Autumn: \"Spring didn't say I was being stupid.\"\nmessage Autumn: \"And I don't mean to start an argument, but I think that it's important to sort out what should be believed.\"\nmessage Autumn: \"We don't actually have any reason to believe that we even have a purpose.\"\nmessage Autumn: \"We'll never know unless we break the chain, and I don't think I want to live an eternity without you, Spring.\"\n\nmessage Winter: \"Be reasonable Autumn! This could affect the entire balance of the planet.\"\nmessage Winter: \"And it is not true that my claims are based on no evidence.\"\nmessage Winter: \"Do you think it is just coincidence that, with no knowledge of each other,\"\nmessage Winter: \"We all began to travel around the Earth along the same path, in the same direction, and with the same interval?\"\n\n\n\nwwwwwwww\nwllpllww\nwl1p11ww\nwppwppww\nw11pl1ww\ni1lpllww\nwppwppww\nwllpllww\nwl1p11ew\nwwwwwwww\n\nmessage Spring: \"Autumn...\"\nmessage Spring: \"Winter...\"\nmessage Spring: \"I...\"\nmessage Spring: \"I don't know what to do!\"\nmessage Spring: \"I don't know who to believe!\"\nmessage Spring: \"Can't we all just go back to being friends again?\"\n\nmessage Summer: \"UGHHHH\"\nmessage Summer: \"This is getting ridiculous.\"\nmessage Summer: \"If you two are going to abandon everything we know and meet each other, just DO IT already!\"\nmessage Summer: \"Otherwise...\"\nmessage Summer: \"SHUT THE HELL UP ABOUT IT ALREADY!\"\n\nmessage Autumn: \"I'm willing to meet you if you are, Spring\"\nmessage Autumn: \"If anything goes wrong, I just need you to know...\"\nmessage Autumn: \"I love you!\"\n\nmessage Winter: \"You must not!\"\nmessage Winter: \"You are putting us all at risk for nothing!\"\n\n\n\n\n\nwwwwwwwww\nwi1>1wwww\nww111l1ww\nwww11l1ew\nww111l1ww\nww1l1lwww\nwwwwwwwww\nwwwwwwwww\n\nmessage Spring: \"I...\"\nmessage Spring: \"I love you too!\"\nmessage Spring: \"I'm so excited to finally get to talk to you face to face!\"\nmessage Spring: \"Nothing will go wrong Autumn! I believe that love can conquer anything!\"\n\nmessage Summer: \"HEY!\"\nmessage Summer: \"Why should I have to keep working if they're going to stop!?\"\nmessage Summer: \"If they're going to quit, then I QUIT TOO!\"\n\nmessage Autumn: \"I sure hope you're right, Spring.\"\n\nmessage Winter: \"I should try to minimize the risk of catastrophe.\"\nmessage Winter: \"I will try to take up the purposes of all of us,\"\nmessage Winter: \"Although there are things I already am aware I will not be able to do as well.\"\n\n\nwwwwwwwwww\nwwwwwwwwww\nw111wwwwww\ni111ewwwww\nw111wwwwww\nw1l1wwwwww\nwlllwwwwww\nwlll1lll1w\nwlllwwwwww\nwwwwwwwwww\n\nmessage Winter: \"I do hope they return some day, but until then...\"\nmessage Winter: \"...I suppose that it is the beginning of an Age of Ice.\"\n\n\n\n\n\nwwwwww\nwww1ww\nww11ww\nw111ww\ni1llww\nw1llww\nww1lww\nww1llw\nww1lle\nww111w\nww11ww\nww1www\nwwwwww\n\nmessage END OF PART 5\n\n\n\n", [3, 3, 2, 2, 2, 3, 3, 3, 0, 3, 3, 1, 1, 0, 1, 4, 2, 2, 4, 3, 3, 0, 4, 2, 1, 1, 1, 4, 3, 2, 3, 4, 1, 1, 0, 4, 3, 3, 3, 3, 1, 1, 1, 1, 4, 4, 3, 1, 1, 1, 1, 3, 1, 1, 3, 3, 2, 1, 4, 3, 3, 4, 0, "undo", 1, 1, 1, 3, 3, 0, 0, 3, 1, 3, 4, 3, 3, 3, 3, 3, 2, 2, 2, 1, "undo", 2, "undo", 0, "undo", 2, "undo", "undo", "undo", "undo", 2, 2, 2, 2, 2, "undo", "undo", "undo", 0, 3, "undo", "undo", "undo", "undo", "undo", "undo", 3, 2, 3, 2, 2, 1, 2, "undo", 2, "undo", 0, 3, 3, "undo", "undo"], "background mblock:0,0,0,0,0,0,0,0,0,\nbackground mlit start:1,0,0,0,0,0,0,0,background mlit:2,\n2,0,background munlit:3,3,0,0,0,background mlit vert:4,2,\n4,background munlit vert:5,background flower munlit:6,background mblock vert:7,0,0,2,background bloomed mlit new x1:8,2,\n2,2,0,0,0,0,background lightd lightl lightr lightu mlit summer vert x0:9,8,5,\n6,7,0,0,0,background lightr mlit r1 x1:10,3,background bad mlit:11,0,\n0,0,0,0,0,background mdoor nomoved:12,0,0,0,\n0,0,0,0,0,0,0,0,0,\n", 98, "1627779217716.8293"] + ["title Season Finale\nrun_rules_on_level_start\nbackground_color #222\ntext_color #DDD\nagain_interval 0\n\n========\nOBJECTS\n========\n\nBackground 1\nblack\n\nsunlit \n#78D448\n\nmunlit\n#70F044\n\nsnlit \n#58BBE0\n\nwnlit\n#C0FFEE\n\nait\n#FEB047\n\nwit \n#EFC040\n\nmlit \n#FBFB68\n\nalit\n#FFFB66\n\nablock\n#C84202\n\nsblock w\n#043804\n\nmblock\n#14D0D0\n\nwblock\n#6094B2\n\nwdoor\n#6094B2 #5074A2\n11100\n11110\n11111\n11110\n11100\n\nadoor \n#FD712D #C84202\n00011\n00001\n00000\n00001\n00011\n\nsdoor e\n#109010 #043804\n00011\n00001\n00000\n00001\n00011\n\nmdoor\n#80F4F4 #14D0D0\n00011\n00001\n00000\n00001\n00011\n\nspring\n#109010 #041904\n.000.\n00000\n01010\n00000\n.000.\n\nbunnyd ,\n#745004 black pink white\n..3..\n.000.\n.000.\n.101.\n..2..\n\nbunnyl <\n#745004 black pink white \n.....\n.100.\n20003\n.100.\n.....\n\nbunnyu .\n#745004 black pink white\n..2..\n.101.\n.000.\n.000.\n..3..\n\nbunnyr >\n#745004 black pink white\n.....\n.001.\n30002\n.001.\n.....\n\n\n\ncrat 7\n#745004 #C47004\n.000.\n01110\n01110\n01110\n.000.\n\nglass q\n#745004 #C47004 white\n.000.\n02110\n02120\n01120\n.000.\n\nflower\n#043804 #109010\n.....\n..1..\n.101.\n..1..\n.....\n\nwater o\n#1040E0 \n\nice p\nlightblue\n\n\n\ndrowned\n#1040E0 #745004 \n00000\n00100\n01110\n00100\n00000\n\nnodoor\ntransparent\n\nstart\ntransparent\n\nvert\ntransparent\n\nmoved\ntransparent\n\nnomoved\ntransparent\n\n\n\neaten\ntransparent\n\nwatermark\ntransparent\n\n\n\n\n\nsummer\n#f41010 #600404 #FFB008\n.000.\n00000\n01010\n00000\n.000.\n\n\n\nlightu \n#FFC008\n.....\n..0..\n.0.0.\n.....\n.....\n\n\n\nlightr \n#FFC008\n.....\n..0..\n...0.\n..0..\n.....\n\nlightl \n#FFC008\n.....\n..0..\n.0...\n..0..\n.....\n\nlightd \n#FFC008\n.....\n.....\n.0.0.\n..0..\n.....\n\n\nu1\n#FF5800\n.....\n..0..\n.0.0.\n.....\n.....\n\nr1\n#FF5800\n.....\n..0..\n...0.\n..0..\n.....\n\nl1\n#FF5800\n.....\n..0..\n.0...\n..0..\n.....\n\nd1\n#FF5800\n.....\n.....\n.0.0.\n..0..\n.....\n\nu2\n#FF7800\n.....\n..0..\n.0.0.\n.....\n.....\n\nr2\n#FF7800\n.....\n..0..\n...0.\n..0..\n.....\n\nl2\n#FF7800\n.....\n..0..\n.0...\n..0..\n.....\n\nd2\n#FF7800\n.....\n.....\n.0.0.\n..0..\n.....\n\nu3\n#FF9800\n.....\n..0..\n.0.0.\n.....\n.....\n\nr3\n#FF9800\n.....\n..0..\n...0.\n..0..\n.....\n\nl3\n#FF9800\n.....\n..0..\n.0...\n..0..\n.....\n\nd3\n#FF9800\n.....\n.....\n.0.0.\n..0..\n.....\n\nu4\n#FFA800\n.....\n..0..\n.0.0.\n.....\n.....\n\nr4\n#FFA800\n.....\n..0..\n...0.\n..0..\n.....\n\nl4\n#FFA800\n.....\n..0..\n.0...\n..0..\n.....\n\nd4\n#FFA800\n.....\n.....\n.0.0.\n..0..\n.....\n\nx0\ntransparent\n\nx1\ntransparent\n\nx2\ntransparent\n\nx3\ntransparent\n\nx4\ntransparent\n\nx5\ntransparent\n\nplusone\ntransparent\n\n\nver\n#1040E0 #A07004\n01110\n01110\n01110\n01110\n01110\n\nhor\n#1040E0 #A07004\n00000\n11111\n11111\n11111\n00000\n\nwver\nlightblue #A07004\n01110\n01110\n01110\n01110\n01110\n\nwhor\nlightblue #A07004\n00000\n11111\n11111\n11111\n00000\n\nbloomed\n#209A00\n.000.\n00000\n00000\n00000\n.000.\n\n\n\n\nbad\n#985000 white #ff5064\n..2..\n.000.\n.000.\n.000.\n..1..\n\n\n\n\nlose\n#985000 white #ff5064 black\n..2..\n.303.\n.000.\n.000.\n..1..\n\nnemir z\n#985000 #14D0D0\n0....\n00...\n0.0..\n0..0.\n00000\n\nsemir x\n#985000 #14D0D0\n00000\n0..0.\n0.0..\n00...\n0....\n\nnwmir c\n#985000 #14D0D0\n....0\n...00\n..0.0\n.0..0\n00000\nswmir v\n#985000 #14D0D0\n00000\n.0..0\n..0.0\n...00\n....0\n\ndiag b\n#985000 #14D0D0\n00000\n00..0\n0.0.0\n0..00\n00000\n\ndiago n\n#985000 #14D0D0\n00000\n0..00\n0.0.0\n00..0\n00000\n\n\nwins\ntransparent\n\nnew\ntransparent\n\nmore\ntransparent\n\n\n\nautumn \n#F45305 #6A2402\n.000.\n00000\n01010\n00000\n.000.\n\n\nbird m\ndarkblue blue lightblue black\n..1..\n2.1.2\n11111\n.010.\n..1..\n\n\n\nfella\n#7E2D00\n.000.\n00000\n00000\n00000\n.000.\n\nfellb\n#9A0501\n.000.\n00000\n00000\n00000\n.000.\n\nfellc\n#CD0601\n.000.\n00000\n00000\n00000\n.000.\n\nfelld\n#CCC926\n.000.\n00000\n00000\n00000\n.000.\n\nfelle\n#F7C709\n.000.\n00000\n00000\n00000\n.000.\n\nfellf\n#F45305\n.000.\n00000\n00000\n00000\n.000.\n\nfellg\n#DA4528\n.000.\n00000\n00000\n00000\n.000.\n\nfellh\n#FD712D\n.000.\n00000\n00000\n00000\n.000.\n\nconnected\ntransparent\n\nfirst\ntransparent\n\nnotfirst\ntransparent\n\n\nwinter\n#1010B0 #101030\n.000.\n00000\n01010\n00000\n.000.\n\n\ndead\nbrown\n..0..\n..0..\n00000\n..0..\n..0..\n\ntemp\ntransparent\n\ntemp2\ntransparent\n\nlef\ntransparent\n\nrigh\ntransparent\n\ndow\ntransparent\n\nuq\ntransparent\n\nbunn\ntransparent\n\niffy \ntransparent\n\nwinner1\ntransparent\n\nwinner2\ntransparent\n\nwinner3\ntransparent\n=======\nLEGEND\n=======\n\nbunny = bunnyl or bunnyr or bunnyd or bunnyu\naqua = water or ice\n\nfell = fella or fellb or fellc or felld or felle or fellh or fellg or fellf\nflow = flower or bloomed or dead\n\ni = spring and start\n\nplayer = spring or summer or autumn or winter\n\nmirror = swmir or semir or nwmir or nemir\n\ndiags = diag or diago\nlight = lightu or lightd or lightr or lightl \nblock = sblock or ablock or wblock or mblock\nlit = alit or mlit\nunlit = munlit or sunlit\nnlit = snlit or wnlit\nit = wit or ait\nfloor = unlit or nlit or lit or it\nl= snlit\na = flower and snlit\nwinner = winner1 or winner2 or winner3\ndoor = sdoor or adoor or mdoor or wdoor\ncra = crat or block or mirror or diags or fell or dead or bunny\ncratd = crat or block or fell or dead\ncred = crat or diags or mirror or fell\ncre = spring or block or crat or glass or door or bunny or ice or mirror or diags\ncrae = block or glass or bad or flow\ncrate = crat or block or glass or aqua\ncrated = block or glass or mirror or bad or diags or summer or flow\npush = mirror or diags\nt = bad and mlit\nfir = u1 or d1 or l1 or r1\nsec = u2 or d2 or l2 or r2\nthi = u3 or d3 or l3 or r3\nfou = u4 or d4 or l4 or r4\nxs = x0 or x1 or x2 or x3 or x4 or x5\n2 = summer and start\n\nk= water \n\n\n\n\n\n=======\nSOUNDS\n=======\nSFX1 80425104\nSFX2 16467501\nSFX3 80127507\nSFX4 71317504\nSFX5 25216505\nSFX6 16917301\nSFX7 92204307\nSFX8 54283103\nSFX9 32265107\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nvert\nnodoor,wins, lose\nwatermark, connected\nfloor\nice\nmoved, nomoved\nflow, eaten\nwater,\nhor, ver, whor, wver\nlightu, first, notfirst\nlightr\nlightd\nlightl\nmore\nbad\nstart, new\ntemp, temp2\nplayer, glass, crat, block, door, bunny, mirror, diags, fell, bird,\nwinner\nlef, righ, dow, uq\nbunn\niffy\nstart, drowned\nplusone\nx0\nx1\nx2\nx3\nx4\nx5\nu1, u2, u3, u4\nd1, d2, d3, d4\nl1, l2, l3, l4\nr1, r2, r3, r4\n\n\n\n======\nRULES\n======\n\n\n\n[spring][start watermark] -> restart\n[spring][drowned][start] -> [spring][drowned][start watermark]\n\n[action spring no unlit no flower no aqua] -> [spring flower] SFX1\n[action spring flower] -> [spring eaten]\n\n[spring][floor] -> [spring][]\n[> spring| water] -> [spring|water]\n[> spring | crat| no cre no aqua flower] -> [|spring|crat] SFX3\n[> spring | crat| no cre no aqua] -> [|spring|crat] SFX7\n[> spring | mirror| no cre no aqua flower] -> [|spring|mirror] SFX3\n[> spring | mirror| no cre no aqua] -> [|spring|mirror] SFX7\n[spring][vert] ->[spring][]\n[spring][eaten]->[spring][]\n[spring][nomoved] -> [spring][]\n[spring][moved] -> [spring][]\n\nlate [spring ice] -> [spring ice watermark]\nlate [spring][no spring ice watermark] -> [spring][water watermark] SFX2\n\nlate [spring][bunny watermark] -> [spring][drowned] SFX6\n\nlate up [spring][bunnyu no moved |no cre flower] ->[spring] [|bunnyu moved eaten] SFX3 \nlate left [spring][bunnyl no moved |no cre flower] -> [spring][|bunnyl moved eaten] SFX3 \nlate right [spring][bunnyr no moved |no cre flower] -> [spring][|bunnyr moved eaten] SFX3 \nlate down [spring][bunnyd no moved |no cre flower] -> [spring][|bunnyd moved eaten] SFX3\n\n\nlate up [spring][bunnyu no moved |no cre no flower] ->[spring] [|bunnyu moved] \nlate left [spring][bunnyl no moved |no cre no flower] -> [spring][|bunnyl moved] \nlate right [spring][bunnyr no moved |no cre no flower] -> [spring][|bunnyr moved] \nlate down [spring][bunnyd no moved |no cre no flower] -> [spring][|bunnyd moved] \n\nlate right [|nodoor spring][eaten] -> [spring|sdoor][eaten]\nlate [spring][nodoor][eaten] -> [spring][sdoor][eaten]\n\nlate [spring] -> [spring nomoved]\nlate [nomoved spring][moved] -> [spring][moved]\nlate [spring][moved no spring]->[spring moved][] again\n\n\nlate [spring][no block no aqua] -> [spring][snlit]\nlate [spring][nodoor floor] -> [spring][nodoor sunlit]\nlate [spring][start floor] -> [spring][start sunlit]\n\nlate [spring][flow nlit] -> [spring][flow sunlit]\nlate [spring][flow |nlit] -> [spring][flow|sunlit]\nlate [spring][flow |ice] -> [spring][flow |water watermark]\nlate vertical [spring][flower|] -> [spring][flower|vert]\nlate horizontal [spring][vert|nlit] -> [spring][vert|sunlit]\nlate horizontal [spring][vert|ice] -> [spring][vert|water watermark]\n\nlate up [spring][nomoved][bunnyu | cre] -> [spring][nomoved][bunnyr|cre]\nlate right [spring][nomoved][bunnyr|cre] -> [spring][nomoved][bunnyd| cre]\nlate down [spring][nomoved][bunnyd| cre] -> [spring][nomoved][bunnyl| cre]\nlate left [spring][nomoved][bunnyl| cre] -> [spring][nomoved][bunnyu| cre]\nlate up [spring][nomoved][bunnyu | cre] -> [spring][nomoved][bunnyr|cre]\nlate right [spring][nomoved][bunnyr|cre] -> [spring][nomoved][bunnyd| cre]\nlate down [spring][nomoved][bunnyd| cre] -> [spring][nomoved][bunnyl| cre]\nlate left [spring][nomoved][bunnyl| cre] -> [spring][nomoved][bunnyu| cre]\nlate up [spring][nomoved][bunnyu | cre] -> [spring][nomoved][bunnyr|cre]\nlate right [spring][nomoved][bunnyr|cre] -> [spring][nomoved][bunnyd| cre]\nlate down [spring][nomoved][bunnyd| cre] -> [spring][nomoved][bunnyl| cre]\nlate left [spring][nomoved][bunnyl| cre] -> [spring][nomoved][bunnyu| cre]\nlate up [spring][nomoved][bunnyu | cre] -> [spring][nomoved][bunnyr|cre]\nlate right [spring][nomoved][bunnyr|cre] -> [spring][nomoved][bunnyd| cre]\nlate down [spring][nomoved][bunnyd| cre] -> [spring][nomoved][bunnyl| cre]\nlate left [spring][nomoved][bunnyl| cre] -> [spring][nomoved][bunnyu| cre]\n\nlate [spring][door] -> [spring][nodoor vert sunlit]\nlate [spring][nodoor vert floor no player][nlit] -> [spring][sdoor][snlit]\nlate [spring][nodoor vert floor no player][ice] -> [spring][sdoor][ice]\nlate [spring][nodoor floor no player][snlit] -> [spring][sdoor][snlit]\nlate [spring][nodoor floor no player][ice] -> [spring][sdoor][ice]\nlate [spring][nodoor vert] -> [spring][nodoor] SFX8\n\nlate [drowned][spring nodoor] -> [drowned][spring nodoor watermark]\n\n\n\n\n\n\nlate [start summer][bunny] -> [start summer][mlit bad]\nlate [summer][sunlit] -> [summer][munlit]\nlate [summer][sblock] -> [summer][mblock]\n\n[xs] -> []\n[fir] -> []\n[sec] -> []\n[thi] -> []\n[fou] -> []\n\n\n[summer][no floor no door no nodoor no block] -> [summer][munlit]\n\n\n[summer][new] -> [summer][]\n[light]->[]\n\n\n\n\n\n\n[> summer| water] -> cancel\n[> summer| flow] -> cancel\n[> summer| push| no crae no water] -> [> summer|> push|] SFX3\nstartloop\nright [summer][> nemir| swmir] -> [summer][|stationary diag]\nup [summer][> nemir| swmir] -> [summer][|stationary diag]\ndown [summer][> swmir| nemir] -> [summer][|stationary diag]\nleft [summer][> swmir| nemir] -> [summer][|stationary diag]\nleft [summer][> nwmir| semir] -> [summer][|stationary diago]\nup [summer][> nwmir| semir] -> [summer][|stationary diago]\ndown [summer][> semir| nwmir] -> [summer][|stationary diago]\nright [summer][> semir| nwmir] -> [summer][|stationary diago]\n\n[summer][> push|push| no crae no water] -> [summer][> push|> push|]\nendloop\n[summer][> push| stationary push] -> cancel\n[> summer| stationary push] -> cancel\n\nlate [summer] -> [summer lightu lightr lightd lightl x0]\n\n\n\nstartloop \n\nlate [light more] -> [light]\n\nlate up [lightu xs no flow no more|no lightu no cre no door ] -> [lightu xs| lightu more xs plusone]\nlate down [lightd xs no flow no more|no lightd no cre no door ] -> [lightd xs| lightd more xs plusone]\nlate left [lightl xs no flow no more|no lightl no cre no door ] -> [lightl xs| lightl more xs plusone]\nlate right [lightr xs no flow no more|no lightr no cre no door ] -> [lightr xs| lightr more xs plusone]\n\n\nlate up[lightu no more no flow xs|semir no lightr] -> [lightu xs|lightr more semir xs plusone]\nlate up[lightu no more no flow xs|swmir no lightl] -> [lightu xs|lightl more swmir xs plusone]\nlate down[lightd no more no flow xs|nemir no lightr] -> [lightd xs|lightr more nemir xs plusone]\nlate down[lightd no more no flow xs|nwmir no lightl] -> [lightd xs|lightl more nwmir xs plusone]\nlate left[lightl no more no flow xs|semir no lightd] -> [lightl xs|lightd more semir xs plusone]\nlate left[lightl no more no flow xs|nemir no lightu] -> [lightl xs|lightu more nemir xs plusone]\nlate right[lightr no more no flow xs|swmir no lightd] -> [lightr xs|lightd more swmir xs plusone]\nlate right[lightr no more no flow xs|nwmir no lightu] -> [lightr xs|lightu more nwmir xs plusone]\n\n\nlate up [lightu no crae mirror|flow no new] -> [lightu mirror|bloomed new] \nlate down [lightd no crae mirror|flow no new] -> [lightd mirror|bloomed new] \nlate left [lightl no crae mirror|flow no new] -> [lightl mirror| bloomed new] \nlate right [lightr no crae mirror|flow no new] -> [lightr mirror|bloomed new] \n\nlate up [lightu no crae summer|flow no new] -> [lightu summer|bloomed new] \nlate down [lightd no crae summer|flow no new] -> [lightd summer|bloomed new] \nlate left [lightl no crae summer|flow no new] -> [lightl summer| bloomed new] \nlate right [lightr no crae summer|flow no new] -> [lightr summer|bloomed new]\n\n\nlate up [lightu no crated water|flow no new floor] -> [ver|mlit] SFX4 again\nlate down [lightd no crated water|flow no new floor] -> [ver|mlit] SFX4 again\nlate left [lightl no crated water|flow no new floor] -> [hor|mlit] SFX4 again\nlate right [lightr no crated water|flow no new floor] -> [hor|mlit] SFX4 again\n\n\nlate up [lightu no crated no water no hor no ver|flow no new floor] -> [bloomed new|mlit] again SFX9\nlate down [lightd no crated no water no hor no ver|flow no new floor] -> [bloomed new|mlit] again SFX9\nlate left [lightl no crated no water no hor no ver|flow no new floor] -> [bloomed new|mlit] again SFX9\nlate right [lightr no crated no water no hor no ver|flow no new floor] -> [bloomed new|mlit] again SFX9\n\nlate [x0 plusone] -> [x1]\nlate [x1 plusone] -> [x2]\nlate [x2 plusone] -> [x3]\nlate [x3 plusone] -> [x4]\nlate [x4 plusone] -> [x5]\n\n\nendloop\n\n\nlate [summer unlit] -> [summer mlit]\nlate [light unlit] -> [light mlit]\nlate [summer|flower] -> [summer| bloomed]\nlate [light flow] -> [bloomed]\n\nlate up [lightu|crat floor] -> [lightu|glass mlit]\nlate down [lightd|crat floor] -> [lightd|glass mlit]\nlate right [lightr|crat floor] -> [lightr|glass mlit]\nlate left [lightl|crat floor] -> [lightl|glass mlit]\nlate up [lightu|glass floor] -> [lightu|glass mlit]\nlate down [lightd|glass floor] -> [lightd|glass mlit]\nlate right [lightr|glass floor] -> [lightr|glass mlit]\nlate left [lightl|glass floor] -> [lightl|glass mlit]\n\n\nlate [lightu x4] -> [lightu u4 x4]\nlate [lightd x4] -> [lightd d4 x4]\nlate [lightl x4] -> [lightl l4 x4]\nlate [lightr x4] -> [lightr r4 x4]\nlate [lightu x3] -> [lightu u3 x3]\nlate [lightd x3] -> [lightd d3 x3]\nlate [lightl x3] -> [lightl l3 x3]\nlate [lightr x3] -> [lightr r3 x3]\nlate [lightu x2] -> [lightu u2 x2]\nlate [lightd x2] -> [lightd d2 x2]\nlate [lightl x2] -> [lightl l2 x2]\nlate [lightr x2] -> [lightr r2 x2]\n\nlate [lightu x1] -> [lightu u1 x1]\nlate [lightd x1] -> [lightd d1 x1]\nlate [lightl x1] -> [lightl l1 x1]\nlate [lightr x1] -> [lightr r1 x1]\n\n\n\n\n\nlate [summer][door] -> [summer][nodoor new mlit]\n\nlate [summer][nodoor new lit][unlit] -> [summer][mdoor][munlit]\nlate [summer][lose]->restart\nlate [light bad] -> [light lose] SFX5\nlate [summer][nodoor new] -> [summer][nodoor] SFX8\nlate [summer nodoor] -> [wins summer]\n\n\n\n\nlate [autumn][xs] -> [autumn][]\nlate [autumn][fir] -> [autumn][]\nlate [autumn][sec] -> [autumn][]\nlate [autumn][thi] -> [autumn][]\nlate [autumn][fou] -> [autumn][]\nlate [autumn][mlit] -> [autumn][alit]\nlate [autumn][mblock] -> [autumn][ablock]\n\n\n[> autumn | crat| no cre no aqua] -> [| autumn |crat] SFX7\n[> autumn | mirror| no cre no aqua] -> [| autumn |mirror] SFX7\n\nlate [autumn][bad] -> [autumn][bunnyr]\n\n[first][autumn] -> [][autumn notfirst]\n\n\n[> autumn|crat|no block no bunny no bird no flow no door no crat no glass] -> [|autumn|crat]\n[> autumn|water] -> [autumn|water]\n\n[autumn][water floor] -> [autumn][water]\n[autumn][hor floor] -> [autumn][hor]\n[autumn][ver floor] -> [autumn][ver]\n[autumn][no floor no door no nodoor no block no water no hor no ver] -> [autumn][alit]\nlate [autumn][glass floor] -> [autumn][glass ait]\n[autumn][no vert] -> [autumn][vert]\ndown[autumn][vert|...|no block] -> [autumn][|...|]\nhorizontal[autumn][vert|...|no vert] -> [autumn][|...|]\n\nlate down [autumn][glass|no bloomed no player no bunny no bad no ablock] -> [autumn][crat|bird moved]\n\n[> autumn | bird|no bloomed no door no crate no fell no bird ] -> [> autumn| > bird|]\n\n\n[> autumn|bloomed|no bloomed no door no crate no fell no bird no bunny] -> [> autumn|random fell start|]\nhorizontal [> autumn|bloomed|no bloomed no door water no fell no bird no bunny] -> [|autumn|hor]\nvertical [> autumn|bloomed|no bloomed no door water no fell no bird no bunny] -> [|autumn|ver]\n[> autumn|start fell] -> [> autumn|> fell]\n[> autumn|bloomed] -> cancel\n\n\nlate [autumn][fell floor] -> [autumn][fell ait]\nlate [autumn floor] -> [autumn ait]\n\n\n\nlate [autumn][drowned] -> restart\nlate [autumn][moved no crat no bird] -> [autumn][]\nlate right [notfirst][autumn|...|no bloomed no bird no bunny no block no fell water|bunny no moved] -> [notfirst][autumn|...|drowned|]\nlate left [notfirst][autumn|...|no bloomed no bird no bunny no block no fell water|bunny no moved] -> [notfirst][autumn|...|drowned|]\nlate right [notfirst][autumn|...|no bloomed no bird no bunny no block no fell|bunny no moved] -> [notfirst][autumn|...|bunnyl moved|]\nlate left [][autumn|...|no bloomed no bird no bunny no block no fell|bunny no moved] -> [notfirst][autumn|...|bunnyr moved|]\n\nlate down [autumn][bird no moved|no door no fell no block no bloomed no player no bird no bunny] -> [autumn][|bird moved]\nlate [autumn][bird vert] -> [autumn][] \n\nlate [autumn][connected] -> [autumn][]\nlate [autumn no connected] -> [autumn connected]\n\n+ late [autumn][connected|no connected no fell no bird no crate no door no bloomed no bunny no ver no hor] -> [autumn][connected|connected]\n\nlate [autumn][floor connected] -> [autumn][ait connected]\n\nlate [autumn][bird moved] -> [autumn][bird] again\n\n\nlate [autumn][door] -> [autumn][nodoor ait]\nlate [autumn][nodoor it][lit] -> [autumn][adoor][alit]\nlate [autumn][nodoor it][bird] -> [autumn][adoor][bird]\nlate [autumn][nodoor it][glass] -> [autumn][adoor][glass]\n\nlate [autumn nodoor] -> [wins autumn]\n\n\nlate [winter][ait] -> [winter][wit]\nlate [winter][ablock] -> [winter][wblock]\n\n[winter][no floor no door no nodoor no block no flow] -> [winter][ait]\n\n([> player | crat|no flower] -> [> player| > crat|]\n[> player | diags|no flower] -> [> player| > diags|])\n[> winter][ lose] -> restart\n[uq] [winter] -> [] [up winter]\n[dow] [winter] -> [] [down winter]\n[righ] [winter] -> [] [right winter]\n[lef] [winter] -> [] [left winter]\n\n[moved] [winter] -> [] [winter] \n[bunn] [winter] -> [] [winter] \n[bunny] [winter] -> [bunny bunn] [winter] \n\n\n\n[> winter floor no moved|no flow no door no cra ] -> [wnlit |> winter moved] \n\n\n\nright [> winter floor no moved| stationary swmir] -> [> temp2 wnlit|v temp swmir]\nup [> winter floor no moved| stationary swmir] -> [> temp2 wnlit|^ temp swmir]\ndown [> winter floor no moved| stationary nwmir] -> [> temp2 wnlit|v temp nwmir]\nright [> winter floor no moved| stationary nwmir] -> [> temp2 wnlit|^ temp nwmir]\nleft [> winter floor no moved| stationary nemir] -> [> temp2 wnlit|v temp nemir]\ndown [> winter floor no moved| stationary nemir] -> [> temp2 wnlit|^ temp nemir]\nup [> winter floor no moved| stationary semir] -> [> temp2 wnlit|v temp semir]\nleft [> winter floor no moved| stationary semir] -> [> temp2 wnlit|^ temp semir]\n\nstartloop \nright [> temp floor no moved| stationary swmir] -> [ wnlit iffy|v temp swmir]\nup [> temp floor no moved| stationary swmir] -> [ wnlit iffy|^ temp swmir]\ndown [> temp floor no moved| stationary nwmir] -> [ wnlit iffy|v temp nwmir]\nright [> temp floor no moved| stationary nwmir] -> [ wnlit iffy|^ temp nwmir]\nleft [> temp floor no moved| stationary nemir] -> [ wnlit iffy|v temp nemir]\ndown [> temp floor no moved| stationary nemir] -> [ wnlit iffy|^ temp nemir]\nup [> temp floor no moved| stationary semir] -> [ wnlit iffy|v temp semir]\nleft [> temp floor no moved| stationary semir] -> [ wnlit iffy |^ temp semir]\n\nendloop\n\n[> temp floor|no flow no door no cra ] -> [wnlit|> winter moved] SFX1\n[temp][temp2][nlit iffy] -> [temp][temp2][wit]\n[temp][> temp2] -> [][> winter]\n[temp] -> []\n[temp2] -> []\n\n[iffy] -> []\n\n[> winter floor no moved|cred|no flow no door no block ] -> [wnlit > winter| > cred|]\n\n[winter it] -> [winter wnlit]\n[> winter no moved| door] -> [winter moved| temp door] \n[temp door] [winter] [it] -> [door] [winter] [it]\n[temp door][winter] -> [winter nodoor wnlit][]\n\n\n[ winter| bunny] -> [winter|> bunny] \n [winter] [> bunny| bunny] -> [winter] [> bunny| > bunny]\n [winter] [left bunny] -> [winter] [left bunnyl]\n [winter] [right bunny] -> [winter] [right bunnyr]\n [winter] [down bunny] -> [winter] [down bunnyd]\n [winter] [up bunny] -> [winter] [up bunnyu]\n\n [winter] [> bunny|water] -> [winter][|lose]\n [winter] [> bunny|ice] -> [winter][bunny|ice]\n\nlate [winter hor] -> [winter whor]\nlate [winter ver] -> [winter wver]\n\nlate [winter][bunny no bunn] -> SFX3\n\n\n[left winter moved] -> [lef winter] again\n[right winter moved] -> [righ winter] again\n[down winter moved] -> [dow winter] again\n[up winter moved] -> [uq winter] again\n\n[winter water uq] -> [winter ice]\n[winter water lef] -> [winter ice]\n[winter water dow] -> [winter ice]\n[winter water righ] -> [winter ice]\n[winter water] -> [winter ice]\n\n[winter][moved] -> [winter][] again\n\n\n\n\n\nright [winter][> nemir| swmir] -> [winter][|diag]\nup [winter][> nemir| swmir] -> [winter][|diag]\ndown [winter][> swmir| nemir] -> [winter][|diag]\nleft [winter][> swmir| nemir] -> [winter][|diag]\nleft [winter][> nwmir| semir] -> [winter][|diago]\nup [winter][> nwmir| semir] -> [winter][|diago]\ndown [winter][> semir| nwmir] -> [winter][|diago]\nright [winter][> semir| nwmir] -> [winter][|diago]\n[winter][> cre| cre| no flow no door no block] -> [winter][> cre| > cre| ]\n\n[winter][> cre|stationary cra] -> [winter][cre|cra]\n[> winter| fell floor] -> [winter|dead wnlit] SFX3\n[> winter|stationary cra] -> [winter|cra]\n\nlate [winter it] -> [winter wnlit]\nlate [winter][door] -> [winter][nodoor new wnlit]\nlate [winter][nodoor new nlit][it] -> [winter][wdoor][wit]\nlate [winter][nodoor new] -> [winter][nodoor] SFX8\nlate [winter nodoor] -> [wins winter]\nlate [start][winter wins floor] -> win\n\nlate [fell hor] -> cancel\nlate [fell ver] -> cancel\n\nlate [spring no moved nodoor] -> [winner1]\nlate [summer wins ] -> [winner2]\nlate [autumn wins] -> [winner3]\n\nlate [ winner1 no watermark no moved no first][start][sblock] -> [winner1 first][start][mblock] again\nlate [ winner1 no watermark no moved no first][start][mblock] -> [mdoor ][start summer][mblock] again\nlate [ winner2 no watermark no moved no first][start][mblock] -> [winner2 first][start][ablock] again\n\nlate [winner2 no watermark no moved no first][start][ablock] -> [adoor ][start first autumn][ablock] again\nlate [ winner3 no watermark no moved no first][start][ablock] -> [winner3 first][start][wblock] again\n\nlate [winner3 no watermark no moved no first][start][wblock] -> [adoor ][start first winter][wblock] again\n\nlate [winner first] -> [winner no first]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n\nmessage Spring: \"Wow, I can't believe that it's only been 82 thousand years! It feels like I've known about all of you for such a long time! \"\n\nmessage Summer: \"What I can't believe is that I've been able to put up with you for that long!\"\n\nmessage Autumn: \"Come on, there's no reason to be mean.\"\n\nmessage Winter: \"I assume that you are being hyperbolic again, Summer.”\nmessage Winter: \"I do not see what other option you would have had, as there is no other place that you could go.\"\n\nwwwwww\ni1111w\nw1111w\nw1111e\nwwwwww\n\nmessage Spring: \"I still remember it as if it were only a decade ago.\"\nmessage Spring: \"Oh! Autumn, you might be able to see one of my favorite comets soon!\n\nmessage Summer: \"Argh! Why do these things always seem to just miss me?\"\n\nmessage Autumn: \"I just saw it. The view was marvelous! Thanks for the heads up.\"\n\nmessage Winter: \"Speaking of our initial introductions, I have a question for you, Spring.\"\nmessage Winter: \"Did you actually think that I was an animal? Do I look more distinct from the rest of you than I had previously believed?\"\n\n\n\nwwwwwww\nwl1p11w\nwl1pppw\ni11p11e\nwwwwwww\nmessage Spring: \"Nope, You look just like us!\"\nmessage Spring: \"Even though now it's hard for me to even imagine life without knowing all of you friends,\"\nmessage Spring: \"At the time, I had no idea there was anything else like me!\"\nmessage Spring: \"You also slid by so fast, so that's why I assumed I must have seen an animal.\"\n\nmessage Summer: \"I guess none of us can blame you for making a wrong assumption Spring, 'cause we all did the same.\"\nmessage Summer: \"I still say that my guess was better than all of yours though!\"\n\nmessage Autumn: \"I can also hardly remember not knowing about you too, Spring.\"\nmessage Autumn: \"The intermediate time, when I only knew Summer, was a hard time for me, but your optimism and enthusiasm never ceases to inspire me.\"\n\nmessage Winter: \"Yes, I can imagine that the interim went...\"\nmessage Winter: \"...well...\"\nmessage Winter: \"...poorly, to say the least.\"\n\n\n\nwwwwwww\nw11q11w\nw11l11w\ni11l1le\nwwwwwww\n\nmessage Spring: \"This year is going to be the best year ever!\"\n\nmessage Summer: \"We GET IT already!\"\nmessage Summer: \"Do you have to say that EVERY SINGLE TIME?\"\n\nmessage Autumn: \"I agree with Spring.\"\nmessage Autumn: \"I think we should strive to make every year better than the last.\"\n\nmessage Winter: \"But I do not see any evidence that this year would be any different.\"\nmessage Winter: \"It will most likely not have any major improvements or regression.\"\n\nwwwwwww\nw1ppp1w\nw1ppp1e\nwp111pw\nwp111pw\nw1ppp1w\nip111pw\nwp111pw\nwwwwwww\n\nmessage Spring: \"Autumn, I wish that one day I could finally meet you, instead of having to leave these messages.\"\nmessage Spring: \"You sound so beautiful!\"\nmessage Spring: \"Summer or Winter, can you please describe how Autumn looks again for me?\"\n\nmessage Summer: \"He's orange.\"\n\nmessage Autumn: \"Quite the way with words as always, Summer.\"\n\nmessage Winter: \"I believe his skin looks closer to that of a tangerine than an orange.\"\nmessage Winter: \"And his eyes have a similar color to the seed coat of a peanut.\"\n\n\n\nwwwwwww\nwww1eww\nwwi1www\nwww1www\nwwl1l1w\nw111llw\nw111llw\nw111www\nwwwwwww\n\nmessage Spring: \"You must look so gorgeous Autumn!\"\nmessage Spring: \"I'd also wish that I could see you change the leaves' color sometime too, it seems so magical!\"\n\nmessage Spring: \"Hey Summer and Winter, what about you two? Do you ever think about wanting to meet each other?\"\n\nmessage Summer: \"Definitely not! It sounds like he's FREEZING!\"\n\nmessage Autumn: \"Awwww, Spring. I would be blushing if I could.\"\n\nmessage Winter: \"I will not lie and say that I am not curious about Summer's brightness\"\nmessage Winter: \"But I worry that your head may be full of dangerous thoughts, Spring\"\n\n\n\nwwwwwww\nwx11lle\nw1l1l1w\nwll111w\nil111cw\nwwwwwww\n\nmessage Spring: \"What?\"\nmessage Spring: \"What do you mean?\"\n\nmessage Summer: \"He's trying to say you're SCARING US!\"\nmessage Summer: \"All this talk about meeting our counterparts!\"\n\nmessage Autumn: \"I think you're overreacting a bit.\"\n\nmessage Winter: \"I do not believe she is.\"\nmessage Winter: \"We have no idea what could happen if one of us were to ignore our purpose.\"\n\n\n\nwwwwwwww\nilql11ww\nwllll11w\nwlllll1w\nwwwwlllw\nwwww11le\nwwwwww1w\n\nmessage Spring: \"I'm...\"\nmessage Spring: \"I'm so sorry Winter! I never meant to upset you!\"\nmessage Spring: \"I'll never mention it again!\"\n\nmessage Summer: \"GOOD!\"\nmessage Summer: \"I was getting sick of hearing you rambling on about it.\"\n\nmessage Autumn: \"Hey, don't talk to her that way!\"\nmessage Autumn: \"Winter, I agree that we have no idea what could happen.\"\nmessage Autumn: \"But that might just mean that it could be nothing!\"\nmessage Autumn: \"None of us can remember a time before our purposes, so none of us can know why we are doing it.\"\nmessage Autumn: \"It could all just be arbitrary and meaningless.\"\n\nmessage Winter: \"Autumn, please do not make any rash decisions because of your emotions.\"\nmessage Winter: \"Although it is true none of us know the meaning of the cycle, something must have set the chain in motion.\"\nmessage Winter: \"I do not believe that it all could lack meaning.\"\n\n\n\n\nwwwwwww\nw1111lw\nw111wlw\nw111wle\nw1111lw\nwl1lllw\nil1lllw\nwwwwwww\n\nmessage Spring: \"Please stop fighting you guys! I hate seeing when you argue!\"\n\nmessage Summer: \"Do like Spring said, and just stop being stupid about this Autumn!\"\n\nmessage Autumn: \"Spring didn't say I was being stupid.\"\nmessage Autumn: \"And I don't mean to start an argument, but I think that it's important to sort out what should be believed.\"\nmessage Autumn: \"We don't actually have any reason to believe that we even have a purpose.\"\nmessage Autumn: \"We'll never know unless we break the chain, and I don't think I want to live an eternity without you, Spring.\"\n\nmessage Winter: \"Be reasonable Autumn! This could affect the entire balance of the planet.\"\nmessage Winter: \"And it is not true that my claims are based on no evidence.\"\nmessage Winter: \"Do you think it is just coincidence that, with no knowledge of each other,\"\nmessage Winter: \"We all began to travel around the Earth along the same path, in the same direction, and with the same interval?\"\n\n\n\nwwwwwwww\nwllpllww\nwl1p11ww\nwppwppww\nw11pl1ww\ni1lpllww\nwppwppww\nwllpllww\nwl1p11ew\nwwwwwwww\n\nmessage Spring: \"Autumn...\"\nmessage Spring: \"Winter...\"\nmessage Spring: \"I...\"\nmessage Spring: \"I don't know what to do!\"\nmessage Spring: \"I don't know who to believe!\"\nmessage Spring: \"Can't we all just go back to being friends again?\"\n\nmessage Summer: \"UGHHHH\"\nmessage Summer: \"This is getting ridiculous.\"\nmessage Summer: \"If you two are going to abandon everything we know and meet each other, just DO IT already!\"\nmessage Summer: \"Otherwise...\"\nmessage Summer: \"SHUT THE HELL UP ABOUT IT ALREADY!\"\n\nmessage Autumn: \"I'm willing to meet you if you are, Spring\"\nmessage Autumn: \"If anything goes wrong, I just need you to know...\"\nmessage Autumn: \"I love you!\"\n\nmessage Winter: \"You must not!\"\nmessage Winter: \"You are putting us all at risk for nothing!\"\n\n\n\n\n\nwwwwwwwww\nwi1>1wwww\nww111l1ww\nwww11l1ew\nww111l1ww\nww1l1lwww\nwwwwwwwww\nwwwwwwwww\n\nmessage Spring: \"I...\"\nmessage Spring: \"I love you too!\"\nmessage Spring: \"I'm so excited to finally get to talk to you face to face!\"\nmessage Spring: \"Nothing will go wrong Autumn! I believe that love can conquer anything!\"\n\nmessage Summer: \"HEY!\"\nmessage Summer: \"Why should I have to keep working if they're going to stop!?\"\nmessage Summer: \"If they're going to quit, then I QUIT TOO!\"\n\nmessage Autumn: \"I sure hope you're right, Spring.\"\n\nmessage Winter: \"I should try to minimize the risk of catastrophe.\"\nmessage Winter: \"I will try to take up the purposes of all of us,\"\nmessage Winter: \"Although there are things I already am aware I will not be able to do as well.\"\n\n\nwwwwwwwwww\nwwwwwwwwww\nw111wwwwww\ni111ewwwww\nw111wwwwww\nw1l1wwwwww\nwlllwwwwww\nwlll1lll1w\nwlllwwwwww\nwwwwwwwwww\n\nmessage Winter: \"I do hope they return some day, but until then...\"\nmessage Winter: \"...I suppose that it is the beginning of an Age of Ice.\"\n\n\n\n\n\nwwwwww\nwww1ww\nww11ww\nw111ww\ni1llww\nw1llww\nww1lww\nww1llw\nww1lle\nww111w\nww11ww\nww1www\nwwwwww\n\nmessage END OF PART 5\n\n\n\n",[3,3,2,2,2,3,3,3,0,3,3,1,1,0,1,4,2,2,4,3,3,0,4,2,1,1,1,4,3,2,3,4,1,1,0,4,3,3,3,3,1,1,1,1,4,4,3,1,1,1,1,3,1,1,3,3,2,1,4,3,3,4,0,"undo",1,1,1,3,3,0,0,3,1,3,4,3,3,3,3,3,2,2,2,1,"undo",2,"undo",0,"undo",2,"undo","undo","undo","undo",2,2,2,2,2,"undo","undo","undo",0,3,"undo","undo","undo","undo","undo","undo",3,2,3,2,2,1,2,"undo",2,"undo",0,3,3,"undo","undo"],"background mblock:0,0,0,0,0,0,0,0,0,\nbackground mlit start:1,0,0,0,0,0,0,0,background mlit:2,\n2,0,background munlit:3,3,0,0,0,background mlit vert:4,2,\n4,background munlit vert:5,background flower munlit:6,background mblock vert:7,0,0,2,background bloomed mlit new x1:8,2,\n2,2,0,0,0,0,background lightd lightl lightr lightu mlit summer vert x0:9,8,5,\n6,7,0,0,0,background lightr mlit r1 x1:10,3,background bad mlit:11,0,\n0,0,0,0,0,background mdoor nomoved:12,0,0,0,\n0,0,0,0,0,0,0,0,0,\n",98,"1627779217716.8293"] ], [ `gallery: Spider's Hollow`, - ["title Spider's Hollow\nauthor John Thyer\nagain_interval 0.1\n\n========\nOBJECTS\n========\n\n( Background objects )\n\nBackground\nBrown #8b5d2e\n00100 \n00001\n01000\n00100\n10000\n\nEntrance\nBrown #ad7438\n00100 \n00001\n01000\n00100\n10000\n\n\nBackgroundBlack\nBlack\n00000\n00000\n00000\n00000\n00000\n\nBackgroundRed\nRed\n00000\n00000\n00000\n00000\n00000\n\nSky1\n#8fc2fc \n00000\n00000\n00000\n00000\n00000\n\nSky2\n#afd4ff\n00000\n00000\n00000\n00000\n00000\n\nSky3\n#9ecbff\n00000\n00000\n00000\n00000\n00000\n\nWood\n#52361b #3f2a14 #654321\n00000\n11111\n00000\n22222\n11111\n\nBackgroundWeb\n#a8a8a8 #bdbdbd\n00000\n00000\n00000\n00000\n00000\n\nLeaf1\n#3f7f18 #5db724\n..0..\n.010.\n.100.\n.110.\n..11.\n\nLeaf2\n#3f7f18 #5db724\n.11..\n.110.\n.100.\n.010.\n..0..\n\n( Collision-detecting objects )\n\nPlayer\n#28A9C9 #d180fc (#f49ade) (#7DA012) #C3C3C3 #ebcb99 #2873c9\n.111.\n21312\n20002\n.000.\n.4.4.\n\nFairy\n#fc6f86 #7DA012 #C3C3C3 #ebcb99 #ff3f5f\n.111.\n21312\n20002\n.000.\n.4.4.\n\nTrappedFairy\n#828282 #7DA012 #C3C3C3 #ebcb99 #8e8e8e\n.111.\n41314\n44444\n00000\n.444.\n\n\nWall\n#52361b #3f2a14 #654321\n00000\n11111\n00000\n22222\n11111\n\nHole\nBrown #8b5d2e Black DarkGrey\n.222.\n22222\n22222\n22222\n.222.\n\nBlock\n#52361b #3f2a14 #654321\n.121.\n10001\n02102\n10021\n.101.\n\nWeb1\n#a8a8a8 #bdbdbd\n.001. \n0..01\n.01.0\n1.010\n.1.0.\n\nWeb2\n#a8a8a8 #bdbdbd\n.001. \n0..01\n.01.0\n1.010\n.1.0.\n\nWeb3\n#a8a8a8 #bdbdbd\n.001. \n0..01\n.01.0\n1.010\n.1.0.\n\nSpider\nBlack DarkRed\n.....\n.000.\n01010\n.000.\n0...0\n\nSpiderRed\nBlack Red\n.....\n.000.\n01010\n.000.\n0...0\n\n( Invisible control objects )\n\nSpiderSleep\nBlack\n.....\n.....\n.....\n.....\n.....\n\nPath1\n#FFAAAA\n00000\n0...0\n0...0\n0...0\n00000\n\nPath2\n#55FF55\n00000\n0...0\n0...0\n0...0\n00000\n\nPath3\n#0000FF\n00000\n0...0\n0...0\n0...0\n00000\n\nRightPath \nBlue\n.....\n.....\n..0..\n.....\n.....\n\nTimer\nRed\n.....\n.....\n.....\n.....\n.....\n\nTimerAlarm\nGreen\n.....\n.....\n.....\n.....\n.....\n\nTimer2\nYellow\n.....\n.....\n.....\n.....\n.....\n\nTimerSleep\nLightRed\n.....\n.....\n.....\n.....\n.....\n\n=======\nLEGEND\n=======\n\n( Legend icons are largely arbitrary, next project I'll work out a better system )\n\n. = Background\n, = BackgroundBlack\n; = Sky1\n: = Sky2\n\" = Sky3\n' = Wood\n# = Wall\nP = Player and Entrance\nW = Spider\nB = Block\nS = Web1 and Background\nD = Web1 and BackgroundWeb\nH = Hole and Background\nE = Hole and Wood\nQ = Web1 and Block\n$ = Wood and Fairy\n[ = Player and Wood\nL = Leaf1 and Sky1\nU = Leaf2 and Sky3\nI = Leaf2 and Sky1\nY = Leaf1 and Sky3\nT = TrappedFairy and Web1 and BackgroundWeb\nG = Player and Web1 and BackgroundWeb and SpiderSleep\n! = Timer and BackgroundBlack\n@ = TimerAlarm and BackgroundBlack\n% = Player and SpiderSleep and Entrance\n& = TimerAlarm and Wall\n2 = Timer2 and BackgroundBlack\n* = TimerSleep and BackgroundBlack\n\n( Shortcut catch-all terms for defining rules and collisions )\n\nPath = Path1 or Path2 or Path3\nObstacle = Wall or Block\nLeaf = Leaf1 or Leaf2\nSky = Sky1 or Sky2 or Sky3\nStickyWeb = Web1 or Web2\n\n=======\nSOUNDS\n=======\n\nPlayer MOVE 36772507\nBlock MOVE 57485107\nWeb2 Create 72977302\nWeb3 Create 72977302\nSfx0 83744503\nstartgame 92244503\nSpiderRed Create 76932302\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBackgroundBlack, BackgroundWeb, BackgroundRed, Sky, Wood, Entrance\nWeb1, Web2, Web3, Hole, Leaf\nWall,Player,Block, Fairy, TrappedFairy, Spider\nSpiderRed, SpiderSleep\nPath1,Path2,Path3\nRightPath\nTimer, TimerAlarm, Timer2, TimerSleep\n\n======\nRULES\n======\n\n ( Pushing blocks if you're stuck in a web )\n\n [ > Player no StickyWeb | Block ] -> [ > Player | > Block ]\n\n ( Defines web behavior )\n\n [ Player | Web2 ] -> [ Player | Web1 ]\n [ Player | Web3 ] -> [ Player | Web1 ]\n [ > Player Web1 ] -> [ Player Web2 ]\n [ > Player Web2 ] -> [ Player Web3 ]\n \n ( Keeps player and spider from swapping places )\n \n [ > Player | Spider ] -> [ Player | Spider ]\n \n ( Spider can be pushed )\n \n [ > Block | Spider ] -> [ > Block | > Spider]\n \n ( Define fairy behavior during intro cutscene)\n \n [ Stationary Fairy ] -> [randomDir Fairy] \n\n ( Win state )\n\n [ > Player | Hole no Block ] -> [ | Player Hole ] Sfx0 Win \n \n( Tweaked version of Maadball's pathfinding algorithm -- many thanks! )\n( Source: https://groups.google.com/forum/#!topic/puzzlescript/lHy9O4DuWhk )\n\n [ Player ][ Spider | no Obstacle ] -> [ Player ][ Spider | Path1 ]\n \nstartloop\n [ Player Path1 ] -> [ Player Path1 ]\n [ Player ][ Path1 | no Obstacle no Spider no Path3 ] -> [ Player ][ Path1 | Path2 ]\n [ Player ][ Path2 | no Obstacle no Path1 ] -> [ Player ][ Path2 | Path3 ]\n [ Player Path3 ] -> [ Player Path3 ]\n [ Player ][ Path3 | no Obstacle no Path2 ] -> [ Player ][ Path3 | Path1 ]\nendloop\n\n[ Player Path ] -> [ Player Path RightPath ]\n\nstartloop\n [ Path3 RightPath | Path2 ] -> [ RightPath | Path2 RightPath ]\n [ Path2 RightPath | Path1 ] -> [ RightPath | Path1 RightPath ]\n [ Path1 RightPath | Path3 ] -> [ RightPath | Path3 RightPath ]\nendloop\n\n[ Path ] -> [ ]\n[ Player ] -> [ Player ]\n[ Spider | RightPath no Block] -> [ > Spider | ] \n[ RightPath ] -> [ ]\n\n( Ends last room )\n\n late[ TrappedFairy ][ SpiderRed ] -> [ TrappedFairy ][ SpiderRed] Win\n\n( Death animation) \n\n [ > Spider | Player ] -> [ | SpiderRed ]\n late [ SpiderRed ][ BackgroundBlack ] -> [ SpiderRed ][ BackgroundRed ]\n \n( Spider Spawning )\n\n [ Timer ] -> [ Right Timer ]\n [ Timer2 ] -> [ Right Timer2]\n [ Timer2 | TimerAlarm ][ TimerSleep ] -> [ | ][ Timer ]\n \n late [ Timer | TimerAlarm ][ SpiderSleep ] -> [ | ][Spider] \n\n==============\nWINCONDITIONS\n==============\n\n( Defined in rules )\n\n=======\nLEVELS\n=======\n\nmessage Once upon a time, five tiny adorable fairies happened upon a hollow in a great old tree.\n\n::'''''''::\n::''$''''::\n::'''''$'::\nU\"'''E'''\"\"\n''''''''$\"\"\n\"Y$''''''\"\"\n;;'''''''I;\n;;'''['''''\n;;''''''';L\n\nmessage The smallest and most fearful of the fairies peered inside, but was too afraid to go in.\n\nmessage The other four, who were more curious and adventurous, entered the tree. This left the little fairy all alone. \n\n::'''''''::\n::'''''''::\n::'''''''::\nU\"'''E'''\"\"\n'''''''''\"\"\n\"Y'''''''\"\"\n;;'''''''I;\n;;'''['''''\n;;''''''';L\n\nmessage She waited and waited, but her friends didn't return. Mustering her courage, she ventured in after them.\n\n,###,,,,,,,\n,#H#,,,,,,,\n,#.#,###,,,\n,#S###.#,,,\n,#SSS..#,,,\n######B##,,\n#P....B.#,,\n#####..##,,\n,,,,####,,,\n\nmessage This was unwise.\n\n,#######,,,\n,#P....##,,\n,#......#,,\n,###BBB##,,\n,,,#...#,,,\n#####S##,,,\n#H.SSS#,,,,\n#######,,,,\n,,,,,,,,,,,\n\nmessage You see, the brave little fairy didn't know about -me-.\n\n,###,,,,,,,\n,#.########\n,#.....SSS#\n,#.#####S.#\n,#B....##.#\n##.###.#..#\n#P.#SS.#H##\n##.#WS.###,\n,#######,,,\n\nmessage Watch out for my web little fairy. It's easy to get stuck.\n\n!,,#######,\n####.....#@\n#HS#..##.#,\n##S#...#.#,\n,#S##..#.#,\n,#SS..B#.#,\n,###....%#,\n,,,##B.###,\n,,,,####,,,\n\n!,,,,,,,@,,\n########,,,\n#%ssb..##,,\n#...b...##,\n######b..##\n,,####.bss#\n,,#hs.b.ss#\n,,####.b.##\n,,,,,#####,\n\n!,,,,,,,,,@\n,,#####,,,,\n###.b.###,,\n#s......#,,\n#.###ss.#,,\n#.h#ssb.#,,\n#bb%.b#.#,,\n###.....#,,\n,,#######,,\n\n!,,,,,#&##,\n,,,####SH#,\n,,,#..SS##,\n,,,#..BS.#,\n,###..B..#,\n,#%#SBBBS#,\n,#.......#,\n,#########,\n,,,,,,,,,,,\n\nmessage Don't worry. Like all the best fairy tales, this one has a happy ending.\n\n,#########,\n##...bb.%#,\n#.s#s...##,\n#.########,\n#s.s##ssh#,\n#bb.##s#s#,\n###ssssss#,\n,,########,\n,,,,,,,,,,,\n\nmessage The brave little fairy finds her friends.\n\n*,,,,,,,,,,\n,#########@\n,#DDTDDDD#,\n,#DDDDTDD#,\n,#DDDDDDG#,\n,#TDDDDDD#,\n,#DDDTDDD#,\n,#########@\n2,,,,,,,,,,\n\nmessage And she'll never be apart from them again.\n\n( End of code )\n", [3, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 3, 2], "background backgroundblack:0,0,0,0,0,background wall:1,1,1,0,1,1,\n1,1,1,1,background entrance:2,1,1,1,background block:3,background:4,4,\n4,4,4,4,1,1,1,4,1,4,1,\n1,1,1,0,1,4,1,4,1,background web1:5,4,\n1,0,1,4,1,4,1,5,5,1,0,\n1,4,1,4,4,4,4,1,0,1,background spider web1:6,\n1,1,1,1,1,1,0,1,5,background player web3:7,1,\n4,background hole:8,1,0,0,1,5,4,4,4,1,\n1,0,0,1,1,1,1,1,1,0,0,\n", 10, "1627779381588.6055"] + ["title Spider's Hollow\nauthor John Thyer\nagain_interval 0.1\n\n========\nOBJECTS\n========\n\n( Background objects )\n\nBackground\nBrown #8b5d2e\n00100 \n00001\n01000\n00100\n10000\n\nEntrance\nBrown #ad7438\n00100 \n00001\n01000\n00100\n10000\n\n\nBackgroundBlack\nBlack\n00000\n00000\n00000\n00000\n00000\n\nBackgroundRed\nRed\n00000\n00000\n00000\n00000\n00000\n\nSky1\n#8fc2fc \n00000\n00000\n00000\n00000\n00000\n\nSky2\n#afd4ff\n00000\n00000\n00000\n00000\n00000\n\nSky3\n#9ecbff\n00000\n00000\n00000\n00000\n00000\n\nWood\n#52361b #3f2a14 #654321\n00000\n11111\n00000\n22222\n11111\n\nBackgroundWeb\n#a8a8a8 #bdbdbd\n00000\n00000\n00000\n00000\n00000\n\nLeaf1\n#3f7f18 #5db724\n..0..\n.010.\n.100.\n.110.\n..11.\n\nLeaf2\n#3f7f18 #5db724\n.11..\n.110.\n.100.\n.010.\n..0..\n\n( Collision-detecting objects )\n\nPlayer\n#28A9C9 #d180fc (#f49ade) (#7DA012) #C3C3C3 #ebcb99 #2873c9\n.111.\n21312\n20002\n.000.\n.4.4.\n\nFairy\n#fc6f86 #7DA012 #C3C3C3 #ebcb99 #ff3f5f\n.111.\n21312\n20002\n.000.\n.4.4.\n\nTrappedFairy\n#828282 #7DA012 #C3C3C3 #ebcb99 #8e8e8e\n.111.\n41314\n44444\n00000\n.444.\n\n\nWall\n#52361b #3f2a14 #654321\n00000\n11111\n00000\n22222\n11111\n\nHole\nBrown #8b5d2e Black DarkGrey\n.222.\n22222\n22222\n22222\n.222.\n\nBlock\n#52361b #3f2a14 #654321\n.121.\n10001\n02102\n10021\n.101.\n\nWeb1\n#a8a8a8 #bdbdbd\n.001. \n0..01\n.01.0\n1.010\n.1.0.\n\nWeb2\n#a8a8a8 #bdbdbd\n.001. \n0..01\n.01.0\n1.010\n.1.0.\n\nWeb3\n#a8a8a8 #bdbdbd\n.001. \n0..01\n.01.0\n1.010\n.1.0.\n\nSpider\nBlack DarkRed\n.....\n.000.\n01010\n.000.\n0...0\n\nSpiderRed\nBlack Red\n.....\n.000.\n01010\n.000.\n0...0\n\n( Invisible control objects )\n\nSpiderSleep\nBlack\n.....\n.....\n.....\n.....\n.....\n\nPath1\n#FFAAAA\n00000\n0...0\n0...0\n0...0\n00000\n\nPath2\n#55FF55\n00000\n0...0\n0...0\n0...0\n00000\n\nPath3\n#0000FF\n00000\n0...0\n0...0\n0...0\n00000\n\nRightPath \nBlue\n.....\n.....\n..0..\n.....\n.....\n\nTimer\nRed\n.....\n.....\n.....\n.....\n.....\n\nTimerAlarm\nGreen\n.....\n.....\n.....\n.....\n.....\n\nTimer2\nYellow\n.....\n.....\n.....\n.....\n.....\n\nTimerSleep\nLightRed\n.....\n.....\n.....\n.....\n.....\n\n=======\nLEGEND\n=======\n\n( Legend icons are largely arbitrary, next project I'll work out a better system )\n\n. = Background\n, = BackgroundBlack\n; = Sky1\n: = Sky2\n\" = Sky3\n' = Wood\n# = Wall\nP = Player and Entrance\nW = Spider\nB = Block\nS = Web1 and Background\nD = Web1 and BackgroundWeb\nH = Hole and Background\nE = Hole and Wood\nQ = Web1 and Block\n$ = Wood and Fairy\n[ = Player and Wood\nL = Leaf1 and Sky1\nU = Leaf2 and Sky3\nI = Leaf2 and Sky1\nY = Leaf1 and Sky3\nT = TrappedFairy and Web1 and BackgroundWeb\nG = Player and Web1 and BackgroundWeb and SpiderSleep\n! = Timer and BackgroundBlack\n@ = TimerAlarm and BackgroundBlack\n% = Player and SpiderSleep and Entrance\n& = TimerAlarm and Wall\n2 = Timer2 and BackgroundBlack\n* = TimerSleep and BackgroundBlack\n\n( Shortcut catch-all terms for defining rules and collisions )\n\nPath = Path1 or Path2 or Path3\nObstacle = Wall or Block\nLeaf = Leaf1 or Leaf2\nSky = Sky1 or Sky2 or Sky3\nStickyWeb = Web1 or Web2\n\n=======\nSOUNDS\n=======\n\nPlayer MOVE 36772507\nBlock MOVE 57485107\nWeb2 Create 72977302\nWeb3 Create 72977302\nSfx0 83744503\nstartgame 92244503\nSpiderRed Create 76932302\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBackgroundBlack, BackgroundWeb, BackgroundRed, Sky, Wood, Entrance\nWeb1, Web2, Web3, Hole, Leaf\nWall,Player,Block, Fairy, TrappedFairy, Spider\nSpiderRed, SpiderSleep\nPath1,Path2,Path3\nRightPath\nTimer, TimerAlarm, Timer2, TimerSleep\n\n======\nRULES\n======\n\n ( Pushing blocks if you're stuck in a web )\n\n [ > Player no StickyWeb | Block ] -> [ > Player | > Block ]\n\n ( Defines web behavior )\n\n [ Player | Web2 ] -> [ Player | Web1 ]\n [ Player | Web3 ] -> [ Player | Web1 ]\n [ > Player Web1 ] -> [ Player Web2 ]\n [ > Player Web2 ] -> [ Player Web3 ]\n \n ( Keeps player and spider from swapping places )\n \n [ > Player | Spider ] -> [ Player | Spider ]\n \n ( Spider can be pushed )\n \n [ > Block | Spider ] -> [ > Block | > Spider]\n \n ( Define fairy behavior during intro cutscene)\n \n [ Stationary Fairy ] -> [randomDir Fairy] \n\n ( Win state )\n\n [ > Player | Hole no Block ] -> [ | Player Hole ] Sfx0 Win \n \n( Tweaked version of Maadball's pathfinding algorithm -- many thanks! )\n( Source: https://groups.google.com/forum/#!topic/puzzlescript/lHy9O4DuWhk )\n\n [ Player ][ Spider | no Obstacle ] -> [ Player ][ Spider | Path1 ]\n \nstartloop\n [ Player Path1 ] -> [ Player Path1 ]\n [ Player ][ Path1 | no Obstacle no Spider no Path3 ] -> [ Player ][ Path1 | Path2 ]\n [ Player ][ Path2 | no Obstacle no Path1 ] -> [ Player ][ Path2 | Path3 ]\n [ Player Path3 ] -> [ Player Path3 ]\n [ Player ][ Path3 | no Obstacle no Path2 ] -> [ Player ][ Path3 | Path1 ]\nendloop\n\n[ Player Path ] -> [ Player Path RightPath ]\n\nstartloop\n [ Path3 RightPath | Path2 ] -> [ RightPath | Path2 RightPath ]\n [ Path2 RightPath | Path1 ] -> [ RightPath | Path1 RightPath ]\n [ Path1 RightPath | Path3 ] -> [ RightPath | Path3 RightPath ]\nendloop\n\n[ Path ] -> [ ]\n[ Player ] -> [ Player ]\n[ Spider | RightPath no Block] -> [ > Spider | ] \n[ RightPath ] -> [ ]\n\n( Ends last room )\n\n late[ TrappedFairy ][ SpiderRed ] -> [ TrappedFairy ][ SpiderRed] Win\n\n( Death animation) \n\n [ > Spider | Player ] -> [ | SpiderRed ]\n late [ SpiderRed ][ BackgroundBlack ] -> [ SpiderRed ][ BackgroundRed ]\n \n( Spider Spawning )\n\n [ Timer ] -> [ Right Timer ]\n [ Timer2 ] -> [ Right Timer2]\n [ Timer2 | TimerAlarm ][ TimerSleep ] -> [ | ][ Timer ]\n \n late [ Timer | TimerAlarm ][ SpiderSleep ] -> [ | ][Spider] \n\n==============\nWINCONDITIONS\n==============\n\n( Defined in rules )\n\n=======\nLEVELS\n=======\n\nmessage Once upon a time, five tiny adorable fairies happened upon a hollow in a great old tree.\n\n::'''''''::\n::''$''''::\n::'''''$'::\nU\"'''E'''\"\"\n''''''''$\"\"\n\"Y$''''''\"\"\n;;'''''''I;\n;;'''['''''\n;;''''''';L\n\nmessage The smallest and most fearful of the fairies peered inside, but was too afraid to go in.\n\nmessage The other four, who were more curious and adventurous, entered the tree. This left the little fairy all alone. \n\n::'''''''::\n::'''''''::\n::'''''''::\nU\"'''E'''\"\"\n'''''''''\"\"\n\"Y'''''''\"\"\n;;'''''''I;\n;;'''['''''\n;;''''''';L\n\nmessage She waited and waited, but her friends didn't return. Mustering her courage, she ventured in after them.\n\n,###,,,,,,,\n,#H#,,,,,,,\n,#.#,###,,,\n,#S###.#,,,\n,#SSS..#,,,\n######B##,,\n#P....B.#,,\n#####..##,,\n,,,,####,,,\n\nmessage This was unwise.\n\n,#######,,,\n,#P....##,,\n,#......#,,\n,###BBB##,,\n,,,#...#,,,\n#####S##,,,\n#H.SSS#,,,,\n#######,,,,\n,,,,,,,,,,,\n\nmessage You see, the brave little fairy didn't know about -me-.\n\n,###,,,,,,,\n,#.########\n,#.....SSS#\n,#.#####S.#\n,#B....##.#\n##.###.#..#\n#P.#SS.#H##\n##.#WS.###,\n,#######,,,\n\nmessage Watch out for my web little fairy. It's easy to get stuck.\n\n!,,#######,\n####.....#@\n#HS#..##.#,\n##S#...#.#,\n,#S##..#.#,\n,#SS..B#.#,\n,###....%#,\n,,,##B.###,\n,,,,####,,,\n\n!,,,,,,,@,,\n########,,,\n#%ssb..##,,\n#...b...##,\n######b..##\n,,####.bss#\n,,#hs.b.ss#\n,,####.b.##\n,,,,,#####,\n\n!,,,,,,,,,@\n,,#####,,,,\n###.b.###,,\n#s......#,,\n#.###ss.#,,\n#.h#ssb.#,,\n#bb%.b#.#,,\n###.....#,,\n,,#######,,\n\n!,,,,,#&##,\n,,,####SH#,\n,,,#..SS##,\n,,,#..BS.#,\n,###..B..#,\n,#%#SBBBS#,\n,#.......#,\n,#########,\n,,,,,,,,,,,\n\nmessage Don't worry. Like all the best fairy tales, this one has a happy ending.\n\n,#########,\n##...bb.%#,\n#.s#s...##,\n#.########,\n#s.s##ssh#,\n#bb.##s#s#,\n###ssssss#,\n,,########,\n,,,,,,,,,,,\n\nmessage The brave little fairy finds her friends.\n\n*,,,,,,,,,,\n,#########@\n,#DDTDDDD#,\n,#DDDDTDD#,\n,#DDDDDDG#,\n,#TDDDDDD#,\n,#DDDTDDD#,\n,#########@\n2,,,,,,,,,,\n\nmessage And she'll never be apart from them again.\n\n( End of code )\n",[3,0,0,0,0,3,3,3,3,3,3,3,3,3,3,2,2,3,2],"background backgroundblack:0,0,0,0,0,background wall:1,1,1,0,1,1,\n1,1,1,1,background entrance:2,1,1,1,background block:3,background:4,4,\n4,4,4,4,1,1,1,4,1,4,1,\n1,1,1,0,1,4,1,4,1,background web1:5,4,\n1,0,1,4,1,4,1,5,5,1,0,\n1,4,1,4,4,4,4,1,0,1,background spider web1:6,\n1,1,1,1,1,1,0,1,5,background player web3:7,1,\n4,background hole:8,1,0,0,1,5,4,4,4,1,\n1,0,0,1,1,1,1,1,1,0,0,\n",10,"1627779381588.6055"] ], [ `gallery: i herd u liek water templs`, - ["title i herd u liek water templs \nauthor Denis Prause\nhomepage https://twitter.com/zejety\nrealtime_interval 0.22\nkey_repeat_interval 0.22\nnoaction\nthrottle_movement\nnoundo\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\npurple\n\nTarget \nyellow transparent\n11111\n11011\n10001\n11011\n11111\n\nWall \ndarkgrey\n\nDirWallUp\ngrey transparent\n00000\n01110\n11111\n11111\n11111\n\nDirWallDown\ngrey transparent\n11111\n11111\n11111\n01110\n00000\n\nDirWallLeft\ngrey transparent\n00111\n01111\n01111\n01111\n00111\n\nDirWallRight\ngrey transparent\n11100\n11110\n11110\n11110\n11100\n\nAmplitudeTop \nwhite transparent\n11111\n11111\n11011\n10001\n11111\n\nAmplitudeBottom\nwhite transparent\n11111\n11111\n11111\n10001\n11011\n\nWaveLimitTop\nlightgrey transparent\n11111\n11111\n00100\n11111\n11111\n\nWaveLimitBottom\nlightgrey transparent\n11111\n11111\n11111\n11111\n00100\n\nWaveLimitLocked\nlightgrey transparent\n11111\n11111\n00100\n01110\n00100\n\nEdgeV\ndarkgrey\n\nPlayer\nlightgreen transparent lightred white\n21212\n10001\n10001\n13331\n13131\n\n\nWaterTop\nLightBlue Transparent\n11111\n11111\n11111\n00000\n11111\n\nWaterTopBG\nblue Transparent\n11111\n11111\n11111\n11111\n00000\n\nWater\nBlue\n\nWaterTarget \ntransparent\n\nWaveGenEditor\nlightblue transparent\n11111\n11111\n11111\n11011\n11111\n\nWaveGenDown\ntransparent\n\nWaveGenUp\ntransparent\n\nInitialize\ntransparent\n\nAuto\ntransparent\n\nManual\ntransparent\n\nCrate \norange brown darkbrown\n00001\n01112\n01112\n01112\n22222\n\nTempBool\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n| = EdgeV and Wall\n_ = WaveLimitLocked and Wall\n+ = WaveGenEditor and Wall\nX = WaveGenEditor and Wall and WaveLimitLocked\n# = Wall\nP = Player\n* = Crate\nM = DirWallUp and Target\n@ = Crate and Target\nO = Target\nI = Initialize\nn = DirWallUp\nu = DirWallDown\nü = DirWallDown and Crate\n{ = DirWallLeft\n} = DirWallRight\n\nWaveGen = WaveGenEditor OR WaveGenUp OR WaveGenDown\nWaveLimit = WaveLimitTop OR WaveLimitBottom OR WaveLimitLocked\nAmplitude = AmplitudeTop OR AmplitudeBottom\nTickType = Auto OR Manual\nFalls = Player OR Crate\nFloats = Player OR Crate\nDirWall = DirWallUp OR DirWallDown OR DirWallLeft OR DirWallRight\nFooting = Crate OR Wall OR DirWallUp\n\n=======\nSOUNDS\n=======\n\nAmplitudeTop move up 15514706\nAmplitudeTop move down 11511507\nRestart 7460308\nShowMessage 84284103\nEndLevel 48691700\nCloseMessage 50465106\nCrate move horizontal 35598907\nsfx0 96204907 (steps)\nsfx1 56311707 (swim) \nEndGame 19886503\n(old swim sound 84033708)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWater\nWaterTopBG\nPlayer, Wall, Crate\nDirWall\nWaveLimit\nWaterTop\nWaterTarget\nEdgeV\nWaveGen\nAmplitudeTop\nAmplitudeBottom\nTarget\nInitialize\nTempBool\nAuto Manual\n\n\n======\nRULES \n====== \n\n(Iitialization)\n\tup [Initialize][WaveLimit | ... | WaveLimit] -> [Initialize][WaveLimitBottom | ... | WaveLimitTop]\n\t[Initialize] [WaveGen] -> [Initialize] [WaveGenUp AmplitudeTop AmplitudeBottom WaterTop]\n \tHorizontal [Initialize] [WaveGen |...| ] -> [Initialize] [WaveGen |...| WaterTop]\n UP [Initialize][no Water | ... | WaterTop] -> [Initialize][Water | ... | WaterTop] \n \t[Initialize][WaterTop no WaterTopBG] -> [Initialize][WaterTop WaterTopBG]\n \n random [] -> [Tempbool]\n \t[Initialize] -> []\n\n[TickType] -> []\nrandom [] -> [Manual]\n[ stationary Player ][Manual] -> [ stationary Player ][Auto] \n\n\n(player input)\n\t(vertical input)\n \t[Manual][up Player][AmplitudeBottom no WaveLimit][no WaveLimit AmplitudeTop] -> [Manual][up Player][down AmplitudeBottom no WaveLimit][no WaveLimit up AmplitudeTop]\n \t[Manual][down Player][AmplitudeBottom no AmplitudeTop][AmplitudeTop] -> [Manual][down Player][up AmplitudeBottom][down AmplitudeTop] \n \t[vertical Player] -> [Player]\n \n (horizontal input)\n \t[TempBool][horizontal Player] -> [up TempBool][horizontal Player]\n \tdown [TempBool][player no WaterTop | no Footing ] -> [down TempBool][player no WaterTop | no Footing]\n \tdown [down TempBool][WaterTop | ... | player] -> down [up TempBool][WaterTop | ... | player]\n \t[down TempBool][Player] -> [TempBool][stationary Player]\n \tright [right Player | Floats no DirWallLeft] -> [right Player | right Floats no DirWallLeft]\n \tleft [left Player | Floats no DirWallRight] -> [left Player | left Floats no DirWallRight]\n [TempBool] -> [stationary TempBool ]\n [TempBool][horizontal Player] -> [up TempBool][horizontal Player]\n down [TempBool][horizontal Player No Water | Footing ]->[stationary TempBool][horizontal Player | Footing ] SFX0 \n [up TempBool] -> [stationary TempBool] SFX1\n \n\n(timed events)\n [Auto][WaveGen] -> [Auto][WaveGen WaterTarget] \n\tVertical [Auto][ stationary WaterTop |...| WaterTarget ] -> [Auto][ > WaterTop |...| WaterTarget ]\n\t[Auto][WaterTarget] -> [Auto][right WaterTarget]\n (update Water)\n [moving WaterTop stationary WaterTopBG ] -> [moving WaterTop moving WaterTopBG]\n [up WaterTop no Water ] -> [up WaterTop stationary Water]\n down [> WaterTop | Water ] -> [> WaterTop | ]\n\n\t(WaveGen oscillerates between amplitude points)\n \tUp [Auto][WaveGenUp | ... | AmplitudeTop] -> [Auto][ > WaveGenUp | ... | AmplitudeTop]\n \tDown [Auto][WaveGenDown | ... | AmplitudeBottom] -> [Auto][ > WaveGenDown | ... | AmplitudeBottom]\n \t[Auto][WaveGenUp AmplitudeTop] -> [Auto][WaveGenDown AmplitudeTop]\n \t[Auto][WaveGenDown AmplitudeBottom] -> [Auto][WaveGenUp AmplitudeBottom]\n down [Auto][WaveGenUp |...| AmplitudeTop] -> [Auto][WaveGenDown |...| AmplitudeTop]\n up [Auto][WaveGenDown |...| AmplitudeBottom] -> [Auto][WaveGenUp |...| AmplitudeBottom]\n late [WaterTarget EdgeV] -> [EdgeV]\n \n\t(Floating/Falling objects)\n [Auto][vertical WaterTop Floats] -> [Auto][vertical WaterTop vertical Floats]\n UP[Auto][stationary Floats |...| WaterTop] -> [Auto][up Floats |...| WaterTop] \n up[Auto][up Floats | down WaterTop] -> [Auto][Floats | down WaterTop]\n down[Auto][stationary Falls no WaterTop no Water | no Water] -> [Auto][down Falls | ]\n\n(any tick)\ndown [> Floats | DirWallUp ] -> [ Floats | DirWallUp ]\nup [> Floats | DirWallDown ] -> [ Floats | DirWallDown ]\nleft [> Floats | DirWallRight ] -> [ Floats | DirWallRight ]\nright [> Floats | DirWallLeft ] -> [ Floats | DirWallLeft ]\nup [> Floats | Floats ] -> vertical [> Floats | > Floats]\ndown [> Floats | DirWallUp ] -> [ Floats | DirWallUp ]\nup [> Floats | DirWallDown ] -> [ Floats | DirWallDown ]\nleft [> Floats | DirWallRight ] -> [ Floats | DirWallRight ]\nright [> Floats | DirWallLeft ] -> [ Floats | DirWallLeft ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate \n\n======= \nLEVELS\n=======\nMessage Level 1 - Push a crate onto the yellow plus to complete a level!\n\n#################|\n#...............I|\n#P.*.............|\n######...........|\n#................|\n#...######.......|\nX............O...|\n#................|\n#################|\n\n\nMessage Level 2 - Use the up and down arrow keys to remote control the wave machine! \n#################|\n#I...............|\n#P...............|\n###..............|\n#................|\n_...............O|\n+....###*........|\n_................|\n#################|\n\n\nMessage Level 3 - With good timing, you can push crates while you and it are at a wave's peak or valley.\n#################|\n#I..#..*.P.......|\n#...#.#####......|\n#...#............|\n#................|\n_..####.........O|\n+..####.......###|\n_.............#..|\n#################|\n\n\nMessage Level 4: Cue Roundabout\n#################|\n#I.....#.........|\n#.....P}..O*.....|\n_....####n###u#..|\n#.#n*###..##.....|\n+...###..........|\n#................|\n_................|\n#################|\n\nMessage Level 5: Give Me a Lift\n#################|\n#I...............|\n#..O.............|\n_.........##.#.#.|\n#........*##.#.#.|\n+..P.....###.#.*.|\n#....#######.#.*.|\n_.....*......#.*.|\n#################|\n\nMessage Level 6: Stop Motion\n#################|\n#I...............|\n#................|\n#.O..u.u......*.P|\n_####ü#ü#.#.#####|\n+....*.*#n.n#....|\n_........*.*.....|\n#................|\n#################|\n\nMessage Level 7: Build Bridges, Not Walls\n#################|\n#I...............|\n#................|\n##.......P.u.....|\n_##uu*#####n#.*..|\n+#..}u#....n..**.|\n_mnnnn*.#..*.....|\n#................|\n#################|\n\nMessage Congratulations! You've managed to escape the dungeon!\n\n(\n#################|\n#I...............|\n#................|\n#................|\n#................|\n#................|\n#................|\n#................|\n#################|\n)\n\n\n", ["tick", "tick", "tick", 1, "tick", "tick", 1, "tick", 1, "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", 3, "tick", "tick", 2, "tick", 1, "tick", "tick", 0, "tick", 1, "tick", 1, "tick", "tick", "tick", "tick", "tick"], "background wall:0,background tempbool wall:1,0,background wall wavelimittop:2,amplitudetop background wall wavegenup:3,background wall watertop watertopbg:4,amplitudebottom background tempbool wall water:5,background wall water wavelimitbottom:6,background wall water:7,0,background:8,8,8,8,background watertarget:9,background player watertop watertopbg:10,background water:11,7,\n0,background tempbool:12,8,8,1,8,background watertarget watertop watertopbg:13,11,background tempbool wall water:14,auto background tempbool wall:15,8,8,8,background dirwallup:16,background watertop watertopbg:17,background water watertarget:18,11,7,\n1,12,8,12,background crate watertop watertopbg:19,background wall water watertarget:20,11,background tempbool water:21,14,0,8,12,0,background wall watertarget watertop watertopbg:22,7,11,21,7,\n1,8,8,1,background wall watertarget:23,4,11,11,7,0,1,background dirwallright:24,1,0,13,11,11,7,\n0,8,8,0,8,background tempbool watertarget watertop watertopbg:25,11,11,14,1,8,12,16,8,13,11,11,7,\n0,8,background target:26,0,0,13,21,11,14,0,12,background crate:27,0,1,25,21,11,14,\n0,8,8,0,8,13,21,11,7,0,8,8,background dirwalldown:28,8,25,11,21,7,\n0,8,8,0,8,9,17,21,7,0,8,8,8,8,8,13,21,7,\n0,8,8,8,8,17,18,21,7,background edgev wall:29,29,29,29,29,background edgev wall watertop watertopbg:30,background edgev wall water:31,31,31,\n", 7, "1627779397370.8157"] + ["title i herd u liek water templs \nauthor Denis Prause\nhomepage https://twitter.com/zejety\nrealtime_interval 0.22\nkey_repeat_interval 0.22\nnoaction\nthrottle_movement\nnoundo\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\npurple\n\nTarget \nyellow transparent\n11111\n11011\n10001\n11011\n11111\n\nWall \ndarkgrey\n\nDirWallUp\ngrey transparent\n00000\n01110\n11111\n11111\n11111\n\nDirWallDown\ngrey transparent\n11111\n11111\n11111\n01110\n00000\n\nDirWallLeft\ngrey transparent\n00111\n01111\n01111\n01111\n00111\n\nDirWallRight\ngrey transparent\n11100\n11110\n11110\n11110\n11100\n\nAmplitudeTop \nwhite transparent\n11111\n11111\n11011\n10001\n11111\n\nAmplitudeBottom\nwhite transparent\n11111\n11111\n11111\n10001\n11011\n\nWaveLimitTop\nlightgrey transparent\n11111\n11111\n00100\n11111\n11111\n\nWaveLimitBottom\nlightgrey transparent\n11111\n11111\n11111\n11111\n00100\n\nWaveLimitLocked\nlightgrey transparent\n11111\n11111\n00100\n01110\n00100\n\nEdgeV\ndarkgrey\n\nPlayer\nlightgreen transparent lightred white\n21212\n10001\n10001\n13331\n13131\n\n\nWaterTop\nLightBlue Transparent\n11111\n11111\n11111\n00000\n11111\n\nWaterTopBG\nblue Transparent\n11111\n11111\n11111\n11111\n00000\n\nWater\nBlue\n\nWaterTarget \ntransparent\n\nWaveGenEditor\nlightblue transparent\n11111\n11111\n11111\n11011\n11111\n\nWaveGenDown\ntransparent\n\nWaveGenUp\ntransparent\n\nInitialize\ntransparent\n\nAuto\ntransparent\n\nManual\ntransparent\n\nCrate \norange brown darkbrown\n00001\n01112\n01112\n01112\n22222\n\nTempBool\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n| = EdgeV and Wall\n_ = WaveLimitLocked and Wall\n+ = WaveGenEditor and Wall\nX = WaveGenEditor and Wall and WaveLimitLocked\n# = Wall\nP = Player\n* = Crate\nM = DirWallUp and Target\n@ = Crate and Target\nO = Target\nI = Initialize\nn = DirWallUp\nu = DirWallDown\nü = DirWallDown and Crate\n{ = DirWallLeft\n} = DirWallRight\n\nWaveGen = WaveGenEditor OR WaveGenUp OR WaveGenDown\nWaveLimit = WaveLimitTop OR WaveLimitBottom OR WaveLimitLocked\nAmplitude = AmplitudeTop OR AmplitudeBottom\nTickType = Auto OR Manual\nFalls = Player OR Crate\nFloats = Player OR Crate\nDirWall = DirWallUp OR DirWallDown OR DirWallLeft OR DirWallRight\nFooting = Crate OR Wall OR DirWallUp\n\n=======\nSOUNDS\n=======\n\nAmplitudeTop move up 15514706\nAmplitudeTop move down 11511507\nRestart 7460308\nShowMessage 84284103\nEndLevel 48691700\nCloseMessage 50465106\nCrate move horizontal 35598907\nsfx0 96204907 (steps)\nsfx1 56311707 (swim) \nEndGame 19886503\n(old swim sound 84033708)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWater\nWaterTopBG\nPlayer, Wall, Crate\nDirWall\nWaveLimit\nWaterTop\nWaterTarget\nEdgeV\nWaveGen\nAmplitudeTop\nAmplitudeBottom\nTarget\nInitialize\nTempBool\nAuto Manual\n\n\n======\nRULES \n====== \n\n(Iitialization)\n\tup [Initialize][WaveLimit | ... | WaveLimit] -> [Initialize][WaveLimitBottom | ... | WaveLimitTop]\n\t[Initialize] [WaveGen] -> [Initialize] [WaveGenUp AmplitudeTop AmplitudeBottom WaterTop]\n \tHorizontal [Initialize] [WaveGen |...| ] -> [Initialize] [WaveGen |...| WaterTop]\n UP [Initialize][no Water | ... | WaterTop] -> [Initialize][Water | ... | WaterTop] \n \t[Initialize][WaterTop no WaterTopBG] -> [Initialize][WaterTop WaterTopBG]\n \n random [] -> [Tempbool]\n \t[Initialize] -> []\n\n[TickType] -> []\nrandom [] -> [Manual]\n[ stationary Player ][Manual] -> [ stationary Player ][Auto] \n\n\n(player input)\n\t(vertical input)\n \t[Manual][up Player][AmplitudeBottom no WaveLimit][no WaveLimit AmplitudeTop] -> [Manual][up Player][down AmplitudeBottom no WaveLimit][no WaveLimit up AmplitudeTop]\n \t[Manual][down Player][AmplitudeBottom no AmplitudeTop][AmplitudeTop] -> [Manual][down Player][up AmplitudeBottom][down AmplitudeTop] \n \t[vertical Player] -> [Player]\n \n (horizontal input)\n \t[TempBool][horizontal Player] -> [up TempBool][horizontal Player]\n \tdown [TempBool][player no WaterTop | no Footing ] -> [down TempBool][player no WaterTop | no Footing]\n \tdown [down TempBool][WaterTop | ... | player] -> down [up TempBool][WaterTop | ... | player]\n \t[down TempBool][Player] -> [TempBool][stationary Player]\n \tright [right Player | Floats no DirWallLeft] -> [right Player | right Floats no DirWallLeft]\n \tleft [left Player | Floats no DirWallRight] -> [left Player | left Floats no DirWallRight]\n [TempBool] -> [stationary TempBool ]\n [TempBool][horizontal Player] -> [up TempBool][horizontal Player]\n down [TempBool][horizontal Player No Water | Footing ]->[stationary TempBool][horizontal Player | Footing ] SFX0 \n [up TempBool] -> [stationary TempBool] SFX1\n \n\n(timed events)\n [Auto][WaveGen] -> [Auto][WaveGen WaterTarget] \n\tVertical [Auto][ stationary WaterTop |...| WaterTarget ] -> [Auto][ > WaterTop |...| WaterTarget ]\n\t[Auto][WaterTarget] -> [Auto][right WaterTarget]\n (update Water)\n [moving WaterTop stationary WaterTopBG ] -> [moving WaterTop moving WaterTopBG]\n [up WaterTop no Water ] -> [up WaterTop stationary Water]\n down [> WaterTop | Water ] -> [> WaterTop | ]\n\n\t(WaveGen oscillerates between amplitude points)\n \tUp [Auto][WaveGenUp | ... | AmplitudeTop] -> [Auto][ > WaveGenUp | ... | AmplitudeTop]\n \tDown [Auto][WaveGenDown | ... | AmplitudeBottom] -> [Auto][ > WaveGenDown | ... | AmplitudeBottom]\n \t[Auto][WaveGenUp AmplitudeTop] -> [Auto][WaveGenDown AmplitudeTop]\n \t[Auto][WaveGenDown AmplitudeBottom] -> [Auto][WaveGenUp AmplitudeBottom]\n down [Auto][WaveGenUp |...| AmplitudeTop] -> [Auto][WaveGenDown |...| AmplitudeTop]\n up [Auto][WaveGenDown |...| AmplitudeBottom] -> [Auto][WaveGenUp |...| AmplitudeBottom]\n late [WaterTarget EdgeV] -> [EdgeV]\n \n\t(Floating/Falling objects)\n [Auto][vertical WaterTop Floats] -> [Auto][vertical WaterTop vertical Floats]\n UP[Auto][stationary Floats |...| WaterTop] -> [Auto][up Floats |...| WaterTop] \n up[Auto][up Floats | down WaterTop] -> [Auto][Floats | down WaterTop]\n down[Auto][stationary Falls no WaterTop no Water | no Water] -> [Auto][down Falls | ]\n\n(any tick)\ndown [> Floats | DirWallUp ] -> [ Floats | DirWallUp ]\nup [> Floats | DirWallDown ] -> [ Floats | DirWallDown ]\nleft [> Floats | DirWallRight ] -> [ Floats | DirWallRight ]\nright [> Floats | DirWallLeft ] -> [ Floats | DirWallLeft ]\nup [> Floats | Floats ] -> vertical [> Floats | > Floats]\ndown [> Floats | DirWallUp ] -> [ Floats | DirWallUp ]\nup [> Floats | DirWallDown ] -> [ Floats | DirWallDown ]\nleft [> Floats | DirWallRight ] -> [ Floats | DirWallRight ]\nright [> Floats | DirWallLeft ] -> [ Floats | DirWallLeft ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate \n\n======= \nLEVELS\n=======\nMessage Level 1 - Push a crate onto the yellow plus to complete a level!\n\n#################|\n#...............I|\n#P.*.............|\n######...........|\n#................|\n#...######.......|\nX............O...|\n#................|\n#################|\n\n\nMessage Level 2 - Use the up and down arrow keys to remote control the wave machine! \n#################|\n#I...............|\n#P...............|\n###..............|\n#................|\n_...............O|\n+....###*........|\n_................|\n#################|\n\n\nMessage Level 3 - With good timing, you can push crates while you and it are at a wave's peak or valley.\n#################|\n#I..#..*.P.......|\n#...#.#####......|\n#...#............|\n#................|\n_..####.........O|\n+..####.......###|\n_.............#..|\n#################|\n\n\nMessage Level 4: Cue Roundabout\n#################|\n#I.....#.........|\n#.....P}..O*.....|\n_....####n###u#..|\n#.#n*###..##.....|\n+...###..........|\n#................|\n_................|\n#################|\n\nMessage Level 5: Give Me a Lift\n#################|\n#I...............|\n#..O.............|\n_.........##.#.#.|\n#........*##.#.#.|\n+..P.....###.#.*.|\n#....#######.#.*.|\n_.....*......#.*.|\n#################|\n\nMessage Level 6: Stop Motion\n#################|\n#I...............|\n#................|\n#.O..u.u......*.P|\n_####ü#ü#.#.#####|\n+....*.*#n.n#....|\n_........*.*.....|\n#................|\n#################|\n\nMessage Level 7: Build Bridges, Not Walls\n#################|\n#I...............|\n#................|\n##.......P.u.....|\n_##uu*#####n#.*..|\n+#..}u#....n..**.|\n_mnnnn*.#..*.....|\n#................|\n#################|\n\nMessage Congratulations! You've managed to escape the dungeon!\n\n(\n#################|\n#I...............|\n#................|\n#................|\n#................|\n#................|\n#................|\n#................|\n#################|\n)\n\n\n",["tick","tick","tick",1,"tick","tick",1,"tick",1,"tick",0,"tick","tick","tick","tick","tick","tick",2,"tick","tick",3,"tick","tick",2,"tick",1,"tick","tick",0,"tick",1,"tick",1,"tick","tick","tick","tick","tick"],"background wall:0,background tempbool wall:1,0,background wall wavelimittop:2,amplitudetop background wall wavegenup:3,background wall watertop watertopbg:4,amplitudebottom background tempbool wall water:5,background wall water wavelimitbottom:6,background wall water:7,0,background:8,8,8,8,background watertarget:9,background player watertop watertopbg:10,background water:11,7,\n0,background tempbool:12,8,8,1,8,background watertarget watertop watertopbg:13,11,background tempbool wall water:14,auto background tempbool wall:15,8,8,8,background dirwallup:16,background watertop watertopbg:17,background water watertarget:18,11,7,\n1,12,8,12,background crate watertop watertopbg:19,background wall water watertarget:20,11,background tempbool water:21,14,0,8,12,0,background wall watertarget watertop watertopbg:22,7,11,21,7,\n1,8,8,1,background wall watertarget:23,4,11,11,7,0,1,background dirwallright:24,1,0,13,11,11,7,\n0,8,8,0,8,background tempbool watertarget watertop watertopbg:25,11,11,14,1,8,12,16,8,13,11,11,7,\n0,8,background target:26,0,0,13,21,11,14,0,12,background crate:27,0,1,25,21,11,14,\n0,8,8,0,8,13,21,11,7,0,8,8,background dirwalldown:28,8,25,11,21,7,\n0,8,8,0,8,9,17,21,7,0,8,8,8,8,8,13,21,7,\n0,8,8,8,8,17,18,21,7,background edgev wall:29,29,29,29,29,background edgev wall watertop watertopbg:30,background edgev wall water:31,31,31,\n",7,"1627779397370.8157"] ], [ `gallery: PrograMaze`, - ["title PrograMaze\nauthor Adam Gashlin\nhomepage gashlin.net\n\nagain_interval 0.25\nkey_repeat_interval 0.25\n\n========\nOBJECTS\n========\n\nZeroEven\nWhite\n.....\n.000.\n.0.0.\n.000.\n.....\n\nZeroOdd\nWhite\n.....\n000..\n0.0..\n000..\n.....\n\nOneEven\nWhite\n.....\n..0..\n..0..\n..0..\n.....\n\nOneOdd\nWhite\n.....\n.0...\n.0...\n.0...\n.....\n\nBackground\nBlack\n\nPlayerDigit\nYellow\n.....\n.....\n.....\n.....\n00000\n\nPlayerGuyRun\nOrange\n\nPlayerGuyRunStart\nOrange\n\nPlayerGuyStep\nOrange\n\nPlayerGuyPause\nOrange\n\nPlayerGuyDisabled\nOrange\n\nPCL\nRed\n00...\n0....\n.....\n0....\n00...\n\nPCR\nRed\n...00\n....0\n.....\n....0\n...00\n\nPCStart\nTransparent\n\nPCStartRow\nTransparent\n\nPCEndRow\nTransparent\n\nShadow\nTransparent\n\nGoal\nBlue\n\nLetterR\nGrey DarkGrey\n11111\n10011\n01111\n01111\n11111\n\nLetterU\nGrey DarkGrey\n11111\n01101\n01101\n00011\n11111\n\nLetterN\nGrey DarkGrey\n11111\n10011\n01101\n01101\n11111\n\nLetterS\nGrey DarkGrey\n10001\n01111\n10011\n11101\n00011\n\nLetterT\nGrey DarkGrey\n10111\n00011\n10111\n10111\n10111\n\nLetterE\nGrey DarkGrey\n10011\n01101\n00011\n01111\n10011\n\nLetterP\nGrey DarkGrey\n00111\n01011\n00111\n01111\n01111\n\nLeftArrow\nGrey DarkGrey\n11111\n11001\n10011\n11001\n11111\n\nRightArrow\nGrey DarkGrey\n11111\n10011\n11001\n10011\n11111\n\nUpArrow\nGrey DarkGrey\n11111\n11011\n10001\n10101\n11111\n\nDownArrow\nGrey DarkGrey\n11111\n10101\n10001\n11011\n11111\n\nEqual\nGrey DarkGrey\n11111\n10001\n11111\n10001\n11111\n\nShowZero\nGrey DarkGrey\n11111\n10001\n10101\n10001\n11111\n\nShowOne\nGrey DarkGrey\n11111\n11011\n11011\n11011\n11111\n\nWall\nDarkGrey\n\n=======\nLEGEND\n=======\n\n_ = Background\n. = ZeroOdd\n, = ZeroEven\nS = ZeroEven and PCStartRow and PCStart\nB = ZeroEven and PCStartRow\nE = ZeroOdd and PCEndRow\nJ = OneEven and PCStartRow\nI = OneOdd\nR = LetterR\nU = LetterU\nN = LetterN\nL = LeftArrow\nT = RightArrow\nP = UpArrow\nD = DownArrow\n0 = ShowZero\n1 = ShowOne\n\nQ = Equal\n\nZero = ZeroOdd or ZeroEven\nOne = OneOdd or OneEven\n\nC = PlayerDigit and Wall\nPlayer = PlayerDigit or PlayerGuyRun or PlayerGuyPause\nRUNLetter = LetterR or LetterU or LetterN\nSTEPLetter = LetterS or LetterT or LetterE or LetterP\nCmdLetter = RUNLetter or STEPLetter\nPlayerGuy = PlayerGuyRun or PlayerGuyStep\nWinnerGuy = PlayerGuy or PlayerGuyPause\n\n@ = PlayerGuyDisabled and ZeroOdd\n* = PlayerGuyDisabled and ZeroEven\nG = Goal and ZeroOdd\nH = Goal and ZeroEven\n\n# = Wall\n2 = LetterS\n3 = LetterT\n4 = LetterE\n5 = LetterP\n\nZ = Wall\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nGoal\nShadow\nRUNLetter, STEPLetter, Wall, PlayerGuyRun, PlayerGuyRunStart, PlayerGuyStep, PlayerGuyPause, PlayerGuyDisabled, UpArrow, DownArrow, LeftArrow, RightArrow, Equal, ShowZero, ShowOne\nZeroOdd, ZeroEven, OneOdd, OneEven\nPlayerDigit\nPCL, PCR\nPCStart\nPCStartRow, PCEndRow\n\n======\nRULES\n======\n\n[ PCL ] [ PlayerGuyRunStart ] -> [ PCL ] [ PlayerGuyRun ]\n[ moving PlayerGuy ] -> [ PlayerGuyStep ]\n[ action PlayerGuyPause ] -> [ PlayerGuyStep ]\n[ moving PlayerGuyPause ] -> [ PlayerGuyPause ]\n\n( 00 = left )\n[ PCL no Wall ] [ PCR no Wall ] [ PlayerGuy ] -> [ PCL ] [ PCR ] [ left PlayerGuy ]\n( 01 = right )\n[ PCL no Wall ] [ PCR Wall ] [ PlayerGuy ] -> [ PCL ] [ PCR Wall ] [ right PlayerGuy ]\n( 10 = up )\n[ PCL Wall ] [ PCR no Wall ] [ PlayerGuy ] -> [ PCL Wall ] [ PCR ] [ up PlayerGuy ]\n( 11 = down )\n[ PCL Wall ] [ PCR Wall ] [ PlayerGuy ] -> [ PCL Wall ] [ PCR Wall ] [ down PlayerGuy ]\n\n[ PlayerGuyRun ] [ PCL ] -> [ PlayerGuyRun ] [ right PCL ]\n[ PlayerGuyStep ] [ PCL ] -> [ PlayerGuyStep ] [ right PCL ]\n\n( advance PC )\nright [ right PCL | PCR | | ] -> [ | | PCL | PCR ] again\n( CRLF PC )\nright [ PCStartRow | | ... | right PCL | PCR PCEndRow ] -> [ PCStartRow down PCL | PCR | ... | | PCEndRow ]\ndown [ PCStartRow down PCL | PCStartRow ] [ PCR | ] -> [ PCStartRow | PCStartRow PCL ] [ | PCR ] again\n[ moving PCL ] -> [ PCL ]\n\n[ Action PlayerDigit OneOdd ] -> [PlayerDigit ZeroOdd ]\n[ Action PlayerDigit OneEven ] -> [ PlayerDigit ZeroEven ]\n[ Action PlayerDigit ZeroOdd ] -> [ PlayerDigit OneOdd ]\n[ Action PlayerDigit ZeroEven ] -> [ PlayerDigit OneEven ]\n\n(turn to stone)\n[ Action PlayerDigit CmdLetter ] [ Zero ] -> [ Action PlayerDigit CmdLetter ] [ ]\n[ Action PlayerDigit CmdLetter ] [ One ] -> [ Action PlayerDigit CmdLetter ] [ Wall ]\n[ Action PlayerDigit CmdLetter ] [ ShowZero ] -> [ Action PlayerDigit CmdLetter ] [ ]\n[ Action PlayerDigit CmdLetter ] [ ShowOne ] -> [ Action PlayerDigit CmdLetter ] [ Wall ]\n\n(run!)\nright [ Action PlayerDigit RUNLetter ] [ PCStart | ] [ PlayerGuyDisabled ] -> [ RUNLetter ] [ PCStart PCL | PCR ] [ PlayerGuyRunStart ] again\nright [ Action PlayerDigit STEPLetter ] [ PCStart | ] [ PlayerGuyDisabled ] -> [ STEPLetter ] [ PCStart PCL | PCR ] [ PlayerGuyPause ] again\n\n( in case the PlayerGuy gets wiped out by a wall )\n[ Action PlayerDigit CmdLetter ] -> [ CmdLetter ]\n\n[ PlayerGuy ] -> [ Shadow PlayerGuy ]\n\nlate [ PlayerGuy Shadow ] -> cancel\nlate [ Shadow ] -> []\nlate [ PlayerGuyStep ] -> [ PlayerGuyPause ]\n\n==============\nWINCONDITIONS\n==============\n\nSome WinnerGuy\nAll WinnerGuy on Goal\n\n=======\nLEVELS\n=======\n\nmessage Get the orange block to the blue goal, by moving the yellow cursor to \"step\" and using Action repeatedly to run the program.\n#############\n####S.,.,.*E#\n####JIH.,.,E#\n00QLB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n####C#2345###\n\nmessage You can edit the bits of the program with the cursor and Action.\n\n#############\n####S.,.,.,E#\n####B.,.,.,E#\n00QLB.*.,.,E#\n01QTB.,.,.HE#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n####C#2345###\n\nmessage \"run\" will run the program automatically.\n\n####C##RUN###\n####S.,.,.*E#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTBG,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n######2345###\n\n####C##RUN###\n####SG,.,.,E#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,@,E#\n######2345###\n\n####C##RUN###\n####S.,@,.,E#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,G,.,E#\n######2345###\n\n####C##RUN###\n####S.,.H.,E#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.*.,E#\n######2345###\n\nmessage Boss puzzle!\n\n####C##RUN###\n####S.,.,.HE#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B@,.,.,E#\n######2345###\n\n\nmessage Final phase!\n\n####C##RUN###\n####S@,.,.HE#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n######2345###\n\nmessage Thanks for playing!\n", [1, 1, 3, 3, 2, 4, 3, 4, 3, 4, 2, 4, 3, 4, 0, 3, 3, 4, 3, 0, 1, 4], "background wall:0,0,0,background:1,1,0,0,0,0,0,0,0,0,\n1,0,1,0,0,0,0,0,0,0,background equal:2,2,2,\n2,0,0,0,0,0,0,background leftarrow:3,background rightarrow:4,background uparrow:5,background downarrow:6,0,0,\n0,0,background pcstart pcstartrow wall:7,background pcl pcstartrow:8,background pcstartrow:9,9,9,9,9,9,0,0,0,\nbackground pcr:10,1,background goal:11,1,1,1,1,0,0,0,0,1,1,\n1,1,1,1,background letters:12,background letterr:13,1,0,1,1,1,1,1,\n1,background lettert:14,background letteru:15,1,1,1,1,1,1,1,1,background lettere:16,background lettern:17,\n0,1,1,1,1,1,1,1,background letterp:18,0,background playerguyrun:19,1,1,\n1,1,1,1,1,0,0,background pcendrow:20,20,20,20,20,20,\n20,20,0,0,0,0,0,0,0,0,0,0,0,\n", 5, "1627779463747.9348"] + ["title PrograMaze\nauthor Adam Gashlin\nhomepage gashlin.net\n\nagain_interval 0.25\nkey_repeat_interval 0.25\n\n========\nOBJECTS\n========\n\nZeroEven\nWhite\n.....\n.000.\n.0.0.\n.000.\n.....\n\nZeroOdd\nWhite\n.....\n000..\n0.0..\n000..\n.....\n\nOneEven\nWhite\n.....\n..0..\n..0..\n..0..\n.....\n\nOneOdd\nWhite\n.....\n.0...\n.0...\n.0...\n.....\n\nBackground\nBlack\n\nPlayerDigit\nYellow\n.....\n.....\n.....\n.....\n00000\n\nPlayerGuyRun\nOrange\n\nPlayerGuyRunStart\nOrange\n\nPlayerGuyStep\nOrange\n\nPlayerGuyPause\nOrange\n\nPlayerGuyDisabled\nOrange\n\nPCL\nRed\n00...\n0....\n.....\n0....\n00...\n\nPCR\nRed\n...00\n....0\n.....\n....0\n...00\n\nPCStart\nTransparent\n\nPCStartRow\nTransparent\n\nPCEndRow\nTransparent\n\nShadow\nTransparent\n\nGoal\nBlue\n\nLetterR\nGrey DarkGrey\n11111\n10011\n01111\n01111\n11111\n\nLetterU\nGrey DarkGrey\n11111\n01101\n01101\n00011\n11111\n\nLetterN\nGrey DarkGrey\n11111\n10011\n01101\n01101\n11111\n\nLetterS\nGrey DarkGrey\n10001\n01111\n10011\n11101\n00011\n\nLetterT\nGrey DarkGrey\n10111\n00011\n10111\n10111\n10111\n\nLetterE\nGrey DarkGrey\n10011\n01101\n00011\n01111\n10011\n\nLetterP\nGrey DarkGrey\n00111\n01011\n00111\n01111\n01111\n\nLeftArrow\nGrey DarkGrey\n11111\n11001\n10011\n11001\n11111\n\nRightArrow\nGrey DarkGrey\n11111\n10011\n11001\n10011\n11111\n\nUpArrow\nGrey DarkGrey\n11111\n11011\n10001\n10101\n11111\n\nDownArrow\nGrey DarkGrey\n11111\n10101\n10001\n11011\n11111\n\nEqual\nGrey DarkGrey\n11111\n10001\n11111\n10001\n11111\n\nShowZero\nGrey DarkGrey\n11111\n10001\n10101\n10001\n11111\n\nShowOne\nGrey DarkGrey\n11111\n11011\n11011\n11011\n11111\n\nWall\nDarkGrey\n\n=======\nLEGEND\n=======\n\n_ = Background\n. = ZeroOdd\n, = ZeroEven\nS = ZeroEven and PCStartRow and PCStart\nB = ZeroEven and PCStartRow\nE = ZeroOdd and PCEndRow\nJ = OneEven and PCStartRow\nI = OneOdd\nR = LetterR\nU = LetterU\nN = LetterN\nL = LeftArrow\nT = RightArrow\nP = UpArrow\nD = DownArrow\n0 = ShowZero\n1 = ShowOne\n\nQ = Equal\n\nZero = ZeroOdd or ZeroEven\nOne = OneOdd or OneEven\n\nC = PlayerDigit and Wall\nPlayer = PlayerDigit or PlayerGuyRun or PlayerGuyPause\nRUNLetter = LetterR or LetterU or LetterN\nSTEPLetter = LetterS or LetterT or LetterE or LetterP\nCmdLetter = RUNLetter or STEPLetter\nPlayerGuy = PlayerGuyRun or PlayerGuyStep\nWinnerGuy = PlayerGuy or PlayerGuyPause\n\n@ = PlayerGuyDisabled and ZeroOdd\n* = PlayerGuyDisabled and ZeroEven\nG = Goal and ZeroOdd\nH = Goal and ZeroEven\n\n# = Wall\n2 = LetterS\n3 = LetterT\n4 = LetterE\n5 = LetterP\n\nZ = Wall\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nGoal\nShadow\nRUNLetter, STEPLetter, Wall, PlayerGuyRun, PlayerGuyRunStart, PlayerGuyStep, PlayerGuyPause, PlayerGuyDisabled, UpArrow, DownArrow, LeftArrow, RightArrow, Equal, ShowZero, ShowOne\nZeroOdd, ZeroEven, OneOdd, OneEven\nPlayerDigit\nPCL, PCR\nPCStart\nPCStartRow, PCEndRow\n\n======\nRULES\n======\n\n[ PCL ] [ PlayerGuyRunStart ] -> [ PCL ] [ PlayerGuyRun ]\n[ moving PlayerGuy ] -> [ PlayerGuyStep ]\n[ action PlayerGuyPause ] -> [ PlayerGuyStep ]\n[ moving PlayerGuyPause ] -> [ PlayerGuyPause ]\n\n( 00 = left )\n[ PCL no Wall ] [ PCR no Wall ] [ PlayerGuy ] -> [ PCL ] [ PCR ] [ left PlayerGuy ]\n( 01 = right )\n[ PCL no Wall ] [ PCR Wall ] [ PlayerGuy ] -> [ PCL ] [ PCR Wall ] [ right PlayerGuy ]\n( 10 = up )\n[ PCL Wall ] [ PCR no Wall ] [ PlayerGuy ] -> [ PCL Wall ] [ PCR ] [ up PlayerGuy ]\n( 11 = down )\n[ PCL Wall ] [ PCR Wall ] [ PlayerGuy ] -> [ PCL Wall ] [ PCR Wall ] [ down PlayerGuy ]\n\n[ PlayerGuyRun ] [ PCL ] -> [ PlayerGuyRun ] [ right PCL ]\n[ PlayerGuyStep ] [ PCL ] -> [ PlayerGuyStep ] [ right PCL ]\n\n( advance PC )\nright [ right PCL | PCR | | ] -> [ | | PCL | PCR ] again\n( CRLF PC )\nright [ PCStartRow | | ... | right PCL | PCR PCEndRow ] -> [ PCStartRow down PCL | PCR | ... | | PCEndRow ]\ndown [ PCStartRow down PCL | PCStartRow ] [ PCR | ] -> [ PCStartRow | PCStartRow PCL ] [ | PCR ] again\n[ moving PCL ] -> [ PCL ]\n\n[ Action PlayerDigit OneOdd ] -> [PlayerDigit ZeroOdd ]\n[ Action PlayerDigit OneEven ] -> [ PlayerDigit ZeroEven ]\n[ Action PlayerDigit ZeroOdd ] -> [ PlayerDigit OneOdd ]\n[ Action PlayerDigit ZeroEven ] -> [ PlayerDigit OneEven ]\n\n(turn to stone)\n[ Action PlayerDigit CmdLetter ] [ Zero ] -> [ Action PlayerDigit CmdLetter ] [ ]\n[ Action PlayerDigit CmdLetter ] [ One ] -> [ Action PlayerDigit CmdLetter ] [ Wall ]\n[ Action PlayerDigit CmdLetter ] [ ShowZero ] -> [ Action PlayerDigit CmdLetter ] [ ]\n[ Action PlayerDigit CmdLetter ] [ ShowOne ] -> [ Action PlayerDigit CmdLetter ] [ Wall ]\n\n(run!)\nright [ Action PlayerDigit RUNLetter ] [ PCStart | ] [ PlayerGuyDisabled ] -> [ RUNLetter ] [ PCStart PCL | PCR ] [ PlayerGuyRunStart ] again\nright [ Action PlayerDigit STEPLetter ] [ PCStart | ] [ PlayerGuyDisabled ] -> [ STEPLetter ] [ PCStart PCL | PCR ] [ PlayerGuyPause ] again\n\n( in case the PlayerGuy gets wiped out by a wall )\n[ Action PlayerDigit CmdLetter ] -> [ CmdLetter ]\n\n[ PlayerGuy ] -> [ Shadow PlayerGuy ]\n\nlate [ PlayerGuy Shadow ] -> cancel\nlate [ Shadow ] -> []\nlate [ PlayerGuyStep ] -> [ PlayerGuyPause ]\n\n==============\nWINCONDITIONS\n==============\n\nSome WinnerGuy\nAll WinnerGuy on Goal\n\n=======\nLEVELS\n=======\n\nmessage Get the orange block to the blue goal, by moving the yellow cursor to \"step\" and using Action repeatedly to run the program.\n#############\n####S.,.,.*E#\n####JIH.,.,E#\n00QLB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n####C#2345###\n\nmessage You can edit the bits of the program with the cursor and Action.\n\n#############\n####S.,.,.,E#\n####B.,.,.,E#\n00QLB.*.,.,E#\n01QTB.,.,.HE#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n####C#2345###\n\nmessage \"run\" will run the program automatically.\n\n####C##RUN###\n####S.,.,.*E#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTBG,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n######2345###\n\n####C##RUN###\n####SG,.,.,E#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,@,E#\n######2345###\n\n####C##RUN###\n####S.,@,.,E#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,G,.,E#\n######2345###\n\n####C##RUN###\n####S.,.H.,E#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.*.,E#\n######2345###\n\nmessage Boss puzzle!\n\n####C##RUN###\n####S.,.,.HE#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B@,.,.,E#\n######2345###\n\n\nmessage Final phase!\n\n####C##RUN###\n####S@,.,.HE#\n####B.,.,.,E#\n00QLB.,.,.,E#\n01QTB.,.,.,E#\n10QPB.,.,.,E#\n11QDB.,.,.,E#\n####B.,.,.,E#\n####B.,.,.,E#\n######2345###\n\nmessage Thanks for playing!\n",[1,1,3,3,2,4,3,4,3,4,2,4,3,4,0,3,3,4,3,0,1,4],"background wall:0,0,0,background:1,1,0,0,0,0,0,0,0,0,\n1,0,1,0,0,0,0,0,0,0,background equal:2,2,2,\n2,0,0,0,0,0,0,background leftarrow:3,background rightarrow:4,background uparrow:5,background downarrow:6,0,0,\n0,0,background pcstart pcstartrow wall:7,background pcl pcstartrow:8,background pcstartrow:9,9,9,9,9,9,0,0,0,\nbackground pcr:10,1,background goal:11,1,1,1,1,0,0,0,0,1,1,\n1,1,1,1,background letters:12,background letterr:13,1,0,1,1,1,1,1,\n1,background lettert:14,background letteru:15,1,1,1,1,1,1,1,1,background lettere:16,background lettern:17,\n0,1,1,1,1,1,1,1,background letterp:18,0,background playerguyrun:19,1,1,\n1,1,1,1,1,0,0,background pcendrow:20,20,20,20,20,20,\n20,20,0,0,0,0,0,0,0,0,0,0,0,\n",5,"1627779463747.9348"] ], [ `gallery: Symbolism`, - ["title Symbolism\nauthor Richard Locke\nhomepage www.richardlocke.co.uk\nbackground_color #303030\ntext_color #a0a0a0\nagain_interval 0.5\nrealtime_interval 1.0\nkey_repeat_interval 0.2\nnorepeat_action\nrun_rules_on_level_start\n(verbose_logging)\n(debug)\n\n========\nOBJECTS\n========\n(These aren't in a particularly logical order. Oh well.)\n\nvoid\nTransparent\n\nrockInert\n#303040\n\nrockActive\n#303060\n \nboundary\n#808080 #303030\n00000\n00000\n00000\n11111\n11111\n\nbuttonInert\n#808080 #8050f0 #303030\n00000\n11111\n00000\n22222\n22222\n\nbuttonHover\n#808080 #c050f0 #303030\n00000\n11111\n00000\n22222\n22222\n\nbuttonActive\n#808080 #f050f0 #303030\n00000\n11111\n00000\n22222\n22222\n\nplayMode\ntransparent\n\nplayModeOff\ntransparent\n\ntimeRemaining\ntransparent\n\ntoolbox\n#304030\n\nborderTop\n#808080\n.....\n.....\n.....\n.....\n00000\n\nborderLeft\n#808080\n....0\n....0\n....0\n....0\n....0\n\nborderRight\n#808080\n0....\n0....\n0....\n0....\n0....\n\nborderBottom\n#808080\n00000\n.....\n.....\n.....\n.....\n\nborderTopLeft\n#808080\n.....\n.....\n.....\n.....\n....0\n\nborderTopRight\n#808080\n.....\n.....\n.....\n.....\n0....\n\nborderButtonBL\n#808080\n....0\n....0\n....0\n.....\n.....\n\nborderButtonBR\n#808080\n0....\n0....\n0....\n.....\n.....\n\nborderBL\n#808080\n....0\n.....\n.....\n.....\n.....\n\nborderBR\n#808080\n0....\n.....\n.....\n.....\n.....\n\nborderInsideTL\n#808080\n00000\n0....\n0....\n0....\n0....\n\nborderInsideTR\n#808080\n00000\n....0\n....0\n....0\n....0\n\nborderInsideBL\n#808080\n0....\n0....\n0....\n0....\n00000\n\nborderInsideBR\n#808080\n....0\n....0\n....0\n....0\n00000\n\nselect\n#e0e0e0\n00.00\n0...0\n.....\n0...0\n00.00\n\ninvisiplayer\nTransparent\n\nshield\n#505060\n\nshadow\ntransparent\n\nremoveShadow\nTransparent\n\nnoWin\ntransparent\n\nomega\n#ff9070\n...0.\n...0.\n0000.\n.0...\n.0...\n\nomegaShadow\ntransparent\n\nomegaRevert\ntransparent\n\nsquare\n#70d070\n..0..\n.000.\n.0.0.\n.000.\n.....\n\nsquareShadow\ntransparent\n\nsquareRevert\ntransparent\n\nviolet\n#90c0f0\n.000.\n.0.0.\n00.00\n...0.\n...0.\n\nvioletShadow\ntransparent\n\nvioletRevert\ntransparent\n\ndecayedViolet\ntransparent\n\ndecayedVioletShadow\ntransparent\n\ndecayedVioletRevert\ntransparent\n\nchariot\n#d0d080\n....0\n000.0\n0.0.0\n0.000\n0....\n\nchariotShadow\ntransparent\n\nchariotRevert\ntransparent\n\nhorse\n#f05050\n.....\n.0000\n00.0.\n..00.\n.00..\n\nhorseShadow\ntransparent\n\nhorseRevert\ntransparent\n\nslash\n#808080\n.....\n...0.\n..0..\n.0...\n0....\n\ntick\n#80a080\n.....\n.....\n...0.\n0.0..\n.0...\n\ncross\n#b08080\n.....\n.....\n0.0..\n.0...\n0.0..\n\nzero\n#808080\n0000.\n0..0.\n0..0.\n0..0.\n0000.\n\none\n#808080\n000..\n..0..\n..0..\n..0..\n0000.\n\ntwo\n#808080\n0000.\n...0.\n0000.\n0....\n0000.\n\nthree\n#808080\n000..\n...0.\n.00..\n...0.\n000..\n\nfour\n#808080\n0....\n0....\n0.0..\n0000.\n..0..\n\nfive\n#808080\n0000.\n0....\n000..\n...0.\n000..\n\nsix\n#808080\n.000.\n0....\n000..\n0..0.\n.00..\n\nseven\n#808080\n0000.\n...0.\n..0..\n.0...\n0....\n\neight\n#808080\n.00..\n0..0.\n.00..\n0..0.\n.00..\n\nnine\n#808080\n.00..\n0..0.\n.000.\n...0.\n000..\n\noneRevert\ntransparent\n\ntwoRevert\ntransparent\n\nthreeRevert\ntransparent\n\nfourRevert\ntransparent\n\nfiveRevert\ntransparent\n\nsixRevert\ntransparent\n\nsevenRevert\ntransparent\n\neightRevert\ntransparent\n\nnineRevert\ntransparent\n\nnumberCover\n#303030\n\nwall\n#b0b0b0\n00000\n00.00\n.0.0.\n00.00\n00000\n\nplayIcon\n#60c0a9\n.0...\n.00..\n.000.\n.00..\n.0...\n\npauseIcon\n#b08080\n00.00\n00.00\n00.00\n00.00\n00.00\n\nsolved\ntransparent\n\ntime\n#60c0a9\n00000\n.000.\n..0..\n.000.\n00000\n\ntimeShadow\ntransparent\n\ntimeRevert\ntransparent\n\napplyRules\ntransparent\n\nerror\n#603030\n\ninfo1\n#5080e0 #50c0c0\n.....\n..01.\n.00..\n..00.\n.....\n\ninfo2\n#5080e0 #50c0c0\n.....\n..10.\n..00.\n.10..\n.....\n\ninfo3\n#5080e0 #50c0c0\n.....\n.10..\n..01.\n.01..\n.....\n\ninfo4\n#5080e0 #50c0c0\n.....\n.100.\n..1..\n.11..\n.....\n\nplus\n#808080\n.....\n..0..\n.000.\n..0..\n.....\n\ntimebox\ntransparent\n\n=======\nLEGEND\n=======\n\n' = void\n. = rockInert\n$ = shield\n# = boundary and rockInert\nP = select and rockInert\nπ = select and shield\nS = square and void\nW = violet and void\nh = horse and void\n˙ = horse and shield\nO = omega and shield\nC = chariot and shield\nç = chariot and void\n√ = decayedViolet and shield\n/ = slash\n÷ = plus\n0 = zero\n1 = one\n2 = two\n3 = three\n4 = four\n5 = five\n6 = six\n7 = seven\n8 = eight\n9 = nine\n- = borderTop and void\n_ = borderBottom and void\n: = borderLeft and void\n; = borderRight and void\n{ = borderTopLeft and void\n} = borderTopRight and void\n` = borderButtonBL and void\n~ = borderButtonBR and void\nœ = borderInsideTL and void\n∑ = borderInsideTR and void\n´ = borderInsideBL and void\n® = borderInsideBR and void\n† = borderBL and void\n¥ = borderBR and void\nx = buttonInert and rockInert\nq = square and toolbox\nu = square and shield\ni = violet and shield\nm = omega\n§ = zero and numberCover\n! = one and numberCover\n@ = two and numberCover\n£ = three and numberCover\n± = four and numberCover\n% = five and numberCover\n\" = six and numberCover\n& = seven and numberCover\n* = eight and numberCover\n™ = nine and numberCover\n? = wall and shield\nt = time and shield\ne = time\nl = toolbox\n¬ = timebox\n¡ = info1 and shield\n¢ = info2 and shield\n∞ = info3 and shield\n¶ = info4 and shield\n\n\n\nrock = rockInert or rockActive\nbackground = rock or shield or void\nbutton = buttonInert or buttonHover or buttonActive\nborder = boundary or borderLeft or borderRight or borderTop or borderBottom or borderTopLeft or borderTopRight or borderButtonBL or borderButtonBR or borderInsideTL or borderInsideTR or borderInsideBL or borderInsideBR or borderBL or borderBR or button\nrevert = oneRevert or twoRevert or threeRevert or fourRevert or fiveRevert or sixRevert or sevenRevert or eightRevert or nineRevert or omegaRevert or squareRevert or violetRevert or chariotRevert or horseRevert or timeRevert or decayedVioletRevert\nnoop = border or shield or wall\nplayer = select or invisiplayer\nplayArea = rock or shield\n\nnumber = zero or one or two or three or four or five or six or seven or eight or nine\n\n(All symbols need to be added to this list)\nsymbol = omega or square or violet or chariot or horse or time or info1 or info2 or info3 or info4\n\n(Occupied spaces are important for symbol rules)\noccupied = symbol or border or button or wall\n\nicon = tick or cross or playIcon or pauseIcon\n\n=======\nSOUNDS\n=======\n\n(Draw symbol)\nsfx0 94979106\n\n(Erase symbol)\nsfx1 65786906\n\n(Draw fail)\nsfx2 90767506\n\n(Change symbol)\nsfx3 64174703\n\n(Timer tick)\nsfx4 54851300\n\n(Timer tick 2)\nsfx5 44900907\n\n(Empty toolbox)\nsfx6 3749704\n\nsfx7 39598503\n\n(atmosphere)\nsfx8 38051508\nsfx9 81574108\nsfx10 4497708\n\ntitleScreen 38051508\nstartGame 81574108\nundo 74844306\nrestart 4497708\nendGame 96315108\n\n================\nCOLLISIONLAYERS\n================\n\nrock, shield, void, toolbox, timebox\nerror\nborder, symbol, wall\ndecayedViolet\nslash, plus, icon, player\nnumber\nnumberCover\nrevert\nshadow, noWin, applyRules\nsolved\nomegaShadow\nsquareShadow\nvioletShadow\nchariotShadow\nhorseShadow\ntimeShadow\ndecayedVioletShadow\nremoveShadow\nplayMode, playModeOff\ntimeRemaining\n\n\n\n======\nRULES\n======\n\n(Info messages)\n[ > player | info1 ][ nine ] -> [ > player | info1 ][ nine ] message Species' biggest challenge: Data processing\n[ > player | info2 ][ nine ] -> [ > player | info2 ][ nine ] message Species' biggest challenge: War\n[ > player | info3 ][ nine ] -> [ > player | info3 ][ nine ] message Species' biggest challenge: Food/energy production\n[ > player | info4 ][ nine ] -> [ > player | info4 ][ nine ] message Species' biggest challenge: Spacetime manipulation\n\n[ > player | info1 ][ eight ] -> [ > player | info1 ][ eight ] message Purpose: The acquisition of knowledge\n[ > player | info2 ][ eight ] -> [ > player | info2 ][ eight ] message Purpose: The acquisition of resources\n[ > player | info3 ][ eight ] -> [ > player | info3 ][ eight ] message Purpose: The hegemony of your race\n[ > player | info4 ][ eight ] -> [ > player | info4 ][ eight ] message Purpose: The survival of your race\n\n[ > player | info1 ][ seven ] -> [ > player | info1 ][ seven ] message Decision: Sacrifice freedoms and submit to our control\n[ > player | info2 ][ seven ] -> [ > player | info2 ][ seven ] message Decision: Face annihilation\n\n\n(If the level is solved, don't allow normal rules to execute)\n[ action player solved ] -> [ player solved ] win\n[ > player solved ] -> [ player solved ] win\n\n(Stop the player from leaving the level bounds)\n[ > player | void ] -> cancel\n\n(Draw or remove a square when the action key is pressed and there are some in the toolbox. Put a shadow where the last item was in the toolbox so we can refill it in the right order.)\n(Can't draw on noop)\n[ action player noop no button ] -> [ player noop ] sfx2\n\n(Drawing a square)\n[ action player no square no noop ] -> [ player squareShadow ]\ndown [ squareShadow ][ square toolbox ] -> [ square ][ toolbox ] sfx0\n\n(Clean up error flags from last time)\n[ toolbox error ] -> [ toolbox ]\n\n(Nothing in the toolbox if the squareShadow is still present at this point)\n[ squareShadow ][ toolbox no error ] -> [ squareShadow ][ toolbox error ] sfx6\n[ squareShadow ] -> []\n\n(Erasing a square)\ndown [ action player square no noop ][ toolbox no symbol | toolbox symbol ] -> [ action player ][ square toolbox | toolbox symbol ] sfx1\n[ action player square no noop ][ toolbox no symbol ] -> [ action player ][ square toolbox ] sfx1\nright down [ action player ][ square toolbox | toolbox no square ] -> [ action player ][ toolbox no square | square toolbox ] sfx1\n\n\n\n(Play Mode)\n\n(Deactivate play mode when the player moves or presses action again)\n[ > player ][ playMode ] -> [ > player ][ playModeOff no timeRemaining ]\n[ action player ][ playMode ] -> [ player ][ playModeOff no timeRemaining ] (consume action)\n\n(When deactivating play mode, revert to the initial state)\n[ playModeOff ][ symbol decayedVioletRevert ] -> [ playModeOff ][ decayedVioletRevert ]\n[ playModeOff ][ decayedViolet no decayedVioletRevert ] -> [ playModeOff ][]\n[ playModeOff ][ symbol no revert ] -> [ playModeOff ][ ]\n[ playModeOff ][ nineRevert ] -> [ playModeOff ][ nine ]\n[ playModeOff ][ eightRevert ] -> [ playModeOff ][ eight ]\n[ playModeOff ][ sevenRevert ] -> [ playModeOff ][ seven ]\n[ playModeOff ][ sixRevert ] -> [ playModeOff ][ six ]\n[ playModeOff ][ fiveRevert ] -> [ playModeOff ][ five ]\n[ playModeOff ][ fourRevert ] -> [ playModeOff ][ four ]\n[ playModeOff ][ threeRevert ] -> [ playModeOff ][ three ]\n[ playModeOff ][ twoRevert ] -> [ playModeOff ][ two ]\n[ playModeOff ][ oneRevert ] -> [ playModeOff ][ one ]\n[ playModeOff ][ omegaRevert ] -> [ playModeOff ][ omega ]\n[ playModeOff ][ squareRevert ] -> [ playModeOff ][ square ]\n[ playModeOff ][ violetRevert ] -> [ playModeOff ][ violet ]\n[ playModeOff ][ chariotRevert ] -> [ playModeOff ][ chariot ]\n[ playModeOff ][ horseRevert ] -> [ playModeOff ][ horse ]\n[ playModeOff ][ timeRevert ] -> [ playModeOff ][ time ]\n[ playModeOff ][ decayedVioletRevert ] -> [ playModeOff ][ decayedViolet ]\n[ playModeOff ][ plus ] -> [ playModeOff ][ void ]\n\n(Remove the play or pause icon)\n[ playModeOff ][ | | number | time ] -> [ playModeOff ][ no icon | | number | time ]\n\n(Take the button out of active mode)\n[ playModeOff ][ player button ][ button ] -> [ playModeOff ][ player buttonHover ][ buttonHover ]\n[ playModeOff ][ player no button ][ button ] -> [ playModeOff ][ player ][ buttonInert ]\n\n(Reset the play area's appearance)\n[ playModeOff ][ rockActive ] -> [ playModeOff ][ rockInert ]\n\n[ playModeOff ] -> []\n\n(Activate play mode when the action key is pressed on the play button)\n(If the action is omitted from the RHS, it is consumed)\n[ action player button ][ button ][ | | number | time ] -> [ action player buttonActive playMode timeRemaining ][ buttonActive ][ playIcon | | number | time ]\n\n(Change the play area's appearance)\n[ action player button ][ rockInert ] -> [ action player button ][ rockActive ]\n\n(Save the state before play mode begins so we can revert to it afterwards)\n[ action player button ][ nine | time ] -> [ action player button ][ nine nineRevert | time ]\n[ action player button ][ eight | time ] -> [ action player button ][ eight eightRevert | time ]\n[ action player button ][ seven | time ] -> [ action player button ][ seven sevenRevert | time ]\n[ action player button ][ six | time ] -> [ action player button ][ six sixRevert | time ]\n[ action player button ][ five | time ] -> [ action player button ][ five fiveRevert | time ]\n[ action player button ][ four | time ] -> [ action player button ][ four fourRevert | time ]\n[ action player button ][ three | time ] -> [ action player button ][ three threeRevert | time ]\n[ action player button ][ two | time ] -> [ action player button ][ two twoRevert | time ]\n[ action player button ][ one | time ] -> [ action player button ][ one oneRevert | time ]\n[ action player button ][ omega ] -> [ action player button ][ omega omegaRevert ]\n[ action player button ][ square ] -> [ action player button ][ square squareRevert ]\n[ action player button ][ violet ] -> [ action player button ][ violet violetRevert ]\n[ action player button ][ chariot ] -> [ action player button ][ chariot chariotRevert ]\n[ action player button ][ horse ] -> [ action player button ][ horse horseRevert ]\n[ action player button ][ time ] -> [ action player button ][ time timeRevert ]\n[ action player button ][ decayedViolet ] -> [ action player button ][ decayedViolet decayedVioletRevert ]\n\n(Don't allow symbol interations once time gets to zero)\n[ timeRemaining ][ zero | time ] -> [][ zero | time ]\n\n(If there are hourglasses, however, we still have time remaining)\n[ playMode no timeRemaining ][ time playArea ] -> [ playMode timeRemaining ][ time playArea ]\n[ playMode no timeRemaining ][ time timebox ] -> [ playMode timeRemaining ][ time timebox ]\n\n\n(Change the button appearance when the player's on it)\n[ > player | button ][ buttonInert ] -> [ > invisiplayer | buttonHover ][ buttonHover ]\n[ no button | < player button ][ buttonHover ] -> [ | < select buttonInert ][ buttonInert ]\n\n\n(SYMBOL RULES)\n(These all apply to real-time moves only, and only when in play mode)\n(Set a marker to say we're okay to apply the symbol rules)\n[ stationary player ][ timeRemaining no solved ] -> [ stationary player ][ timeRemaining applyRules ]\n\n(Omega next to a square: remove square, replace omega with violet)\n[ applyRules ][ omega playArea | square playArea ] -> [ applyRules ][ omega violetShadow playArea | square removeShadow playArea ]\n\n(Chariot next to square: remove chariot, replace square with Omega)\n[ applyRules ][ chariot playArea | square playArea ] -> [ applyRules ][ chariot removeShadow playArea | square omegaShadow playArea ]\n\n(Three squares in a row produce a horse)\n[ applyRules ][ square playArea | square playArea | square playArea ] -> [ applyRules ][ square removeShadow playArea | square removeShadow horseShadow playArea | square removeShadow playArea ]\n\n(A square next to a horse will walk in the direction of the square)\n[ applyRules ][ square playArea | horse playArea | no occupied ] -> [ applyRules ][ square removeShadow playArea | horse removeShadow squareShadow playArea | horseShadow ]\n\n(A chariot next to a horse does the same thing)\n[ applyRules ][ chariot playArea | horse playArea | no occupied ] -> [ applyRules ][ chariot removeShadow playArea | horse removeShadow chariotShadow playArea | horseShadow ]\n\n(Two or more horses next to a violet become hourglasses)\n[ applyRules ] -> [ applyRules zero ]\n+ [ applyRules zero ][ violet playArea no zero no shadow ] -> [ applyRules ][ violet playArea zero ]\n+ [ applyRules ][ horse no shadow | violet zero no shadow ] -> [ applyRules ][ horse shadow | violet zero shadow ]\n+ [ applyRules ][ horse no shadow | violet zero shadow ] -> [ applyRules ][ horse timeShadow | violet zero shadow decayedVioletShadow ]\n+ [ applyRules ][ horse shadow | violet decayedVioletShadow ] -> [ applyRules ][ horse timeShadow no shadow | violet decayedVioletShadow ]\n+ [ applyRules ][ violet zero ] -> [ applyRules ][ violet shadow no zero ]\n+ [ applyRules ][ horse shadow ] -> [ applyRules ][ horse no shadow ]\n(Clean up - not part of rule group)\n[ applyRules ][ symbol shadow ] -> [ applyRules ][ symbol ]\n[ applyRules ][ violet zero ] -> [ applyRules ][ violet ]\n[ applyRules zero ] -> [ applyRules ]\n[ applyRules ][ violet decayedVioletShadow ] -> [ applyRules ][ decayedVioletShadow ]\n\n(An hourglass decays into a chariot, providing an extra second)\n(First, the indication that time needs to tick down)\n[ stationary player ][ playMode ] -> [ player ][ down playMode ]\n(Each separate group of hourglasses can tick independently. For each, the order is clockwise from 3 o' clock)\nleft [ applyRules ][ time playArea | decayedViolet no shadow ] -> [ applyRules ][ time chariotShadow playArea | decayedViolet shadow ] sfx4\nup [ applyRules ][ time playArea | decayedViolet no shadow ] -> [ applyRules ][ time chariotShadow playArea | decayedViolet shadow ] sfx4\nright [ applyRules ][ time playArea | decayedViolet no shadow ] -> [ applyRules ][ time chariotShadow playArea | decayedViolet shadow ] sfx4\ndown [ applyRules ][ time playArea | decayedViolet no shadow ] -> [ applyRules ][ time chariotShadow playArea | decayedViolet shadow ] sfx4\n(Put hourglasses in the timebox. Need a few rules to make sure they go in in the right order)\nright [ decayedViolet shadow ][ timebox time | timebox no time ] -> [ decayedViolet ][ timebox time | timebox time ]\ndown [ decayedViolet shadow ][ no timebox | timebox no time ] -> [ decayedViolet ][ no timebox | timebox time ]\ndown [ decayedViolet shadow ][ timebox time | timebox no time ] -> [ decayedViolet ][ timebox time | timebox time ]\nright [ decayedViolet shadow ][ timebox no time ] -> [ decayedViolet ][ timebox time]\n[ decayedViolet shadow ] -> [ decayedViolet ]\n\n(A decayed violet with no hourglasses next to it disappears)\nright [ applyRules ][ no time | decayedViolet | no time ] -> [ applyRules ][ no time | decayedViolet shadow | no time ]\ndown [ applyRules ][ no time | decayedViolet shadow | no time ] -> [ applyRules ][ no time | no decayedViolet | no time ]\n[ decayedViolet shadow ] -> [ decayedViolet no shadow]\n\n(Remove applyRules)\n[ applyRules ] -> [ no applyRules ]\n\n\n\n(Remove an hourglass from the timebox if there is one, then shuffle them to the top-left)\nright [ down playMode ][ plus | timebox time | timebox no time ] -> [ stationary playMode ][ void | timebox | timebox ] sfx4\n[ down playMode ][ timebox time ] -> [ stationary playMode ][ timebox ] sfx4\nup [ timebox time | timebox no time ] -> [ timebox | timebox time ]\nleft [ timebox time | timebox no time ] -> [ timebox | timebox time ]\nright [ void | timebox time ] -> [ plus | timebox time ]\n\n(Count the timer down)\nright [ down playMode ][ one | time ] -> [ playMode ][ zero | time] sfx4\nright [ down playMode ][ two | time ] -> [ playMode ][ one | time] sfx4\nright [ down playMode ][ three | time ] -> [ playMode ][ two | time] sfx4\nright [ down playMode ][ four | time ] -> [ playMode ][ three | time] sfx4\nright [ down playMode ][ five | time ] -> [ playMode ][ four | time] sfx4\nright [ down playMode ][ six | time ] -> [ playMode ][ five | time] sfx4\nright [ down playMode ][ seven | time ] -> [ playMode ][ six | time] sfx4\nright [ down playMode ][ eight | time ] -> [ playMode ][ seven | time] sfx4\nright [ down playMode ][ nine | time ] -> [ playMode ][ eight | time] sfx4\n\n[ down playMode ] -> [ playMode ]\n\n(Switch to a pause icon after the timer reaches zero)\nright [ playMode no timeRemaining][ playIcon | | zero ] -> [ playMode ][ pauseIcon | | zero ]\n\n\n(POST-SYMBOL RULES)\n(Remove any RemoveShadows and the symbol in that space)\n[ removeShadow symbol ] -> []\n\n(Replace symbol shadows with their real symbols)\n[ violetShadow ] -> [ violet ]\n[ omegaShadow ] -> [ omega ]\n[ squareShadow ] -> [ square ]\n[ chariotShadow ] -> [ chariot ]\n[ horseShadow ] -> [ horse ]\n[ timeShadow ] -> [ time ]\n[ decayedVioletShadow ] -> [ decayedViolet ]\n\n\n\n(Count up the number of target symbols by putting shadows on them then counting up as we remove them by shifting a shadow along the number line. Don't forget to set the count to zero first.)\n\n(violets)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | violet ][ violet No void ] -> [ number | violet ][ violet shadow ]\nright [ violet shadow ][ number shadow | number ] -> [ violet ][ number | number shadow ]\nright [ number shadow ][ | slash | | violet ] -> [ number ][ number | slash | | violet ]\n\n(omegas)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | omega ][ omega no void ] -> [ number | omega ][ omega shadow ]\nright [ omega shadow ][ number shadow | number ] -> [ omega ][ number | number shadow ]\nright [ number shadow ][ | slash | | omega ] -> [ number ][ number | slash | | omega ]\n\n(horses)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | horse ][ horse no void ] -> [ number | horse ][ horse shadow ]\nright [ horse shadow ][ number shadow | number ] -> [ horse ][ number | number shadow ]\nright [ number shadow ][ | slash | | horse ] -> [ number ][ number | slash | | horse ]\n\n(squares)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | square ][ square no void no toolbox ] -> [ number | square ][ square shadow ]\nright [ square shadow ][ number shadow | number ] -> [ square ][ number | number shadow ]\nright [ number shadow ][ | slash | | square ] -> [ number ][ number | slash | | square ]\n\n(chariots)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | chariot ][ chariot no void ] -> [ number | chariot ][ chariot shadow ]\nright [ chariot shadow ][ number shadow | number ] -> [ chariot ][ number | number shadow ]\nright [ number shadow ][ | slash | | chariot ] -> [ number ][ number | slash | | chariot ]\n\n(Clean up e.g. where there are more than 9 of a given symbol)\n[ symbol shadow ] -> [ symbol ]\n\n\n(Work out if the level is solved)\n(First, put crosses by all the counters)\nright [ | number | slash ] -> [ cross no tick | number | slash ]\n(Next, replace crosses with ticks where the targets are met)\nright [ cross | zero | slash | zero ] -> [ tick | zero | slash | zero ]\nright [ cross | one | slash | one ] -> [ tick | one | slash | one ]\nright [ cross | two | slash | two ] -> [ tick | two | slash | two ]\nright [ cross | three | slash | three ] -> [ tick | three | slash | three ]\nright [ cross | four | slash | four ] -> [ tick | four | slash | four ]\nright [ cross | five | slash | five ] -> [ tick | five | slash | five ]\nright [ cross | six | slash | six ] -> [ tick | six | slash | six ]\nright [ cross | seven | slash | seven ] -> [ tick | seven | slash | seven ]\nright [ cross | eight | slash | eight ] -> [ tick | eight | slash | eight ]\nright [ cross | nine | slash | nine ] -> [ tick | nine | slash | nine ]\n(Next, put a noWin on the player for any cross we find)\n[ cross ][ player ] -> [ cross ][ player noWin ]\n(If there's not a noWin on the player, the level is solved!)\n[ player no noWin no solved ] -> [ player solved no playMode ] sfx7\ndown [ solved ][ button | ] -> [ solved ][ button | tick ]\n[ playIcon ][ solved ] -> [ tick ][ solved ]\n[ pauseIcon ][ solved ] -> [ tick ][ solved ]\n[ player noWin ] -> [ player ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\n(There are a few features each level must have in order to work correctly:)\n(1. A row of hidden numbers 0-9 as this is used for counting)\n(2. At least one target symbol counter in the form 0/yZ where y is the required number and Z is the target symbol)\n(3. There must be a column to the left of the target counter so that ticks and crosses can be placed there by the rules)\n(4. An optional time limit in the form xe where x is the number of seconds allowed, up to a maximum of 9)\n(5. If a time limit is in place, it must have two columns to the left of it to allow the play and pause icons to be placed there by the rules)\n(6. At least one button sprite, x. By convention, these are put at the bottom of the play area.)\n(7. Levels with hourglasses need at least one timebox space)\n(7. Hourglasses tick down in groups around the violet they were produced by. If more than one of these groups may exist in the level, you'll need one timebox space per violet group to hold extra hourglasses)\n\nmessage Let it be known that proceeding may lead to the annihilation of your species.\nmessage X = draw/erase symbol, activate button\n\n§!@£±%\"&*™\n'''''{-}''\n'''4e:P;q'\n''''':O;''\n'0/1w:.;''\n'''''`x~''\n''''''''''\n\nmessage Acceptance confirmed. Analysis of species MW3022 commencing. Recognition of 'Hindu-Arabic' numerals likely.\n\n§!@£±%\"&*™'\n'''''{---}'\n'''4e:P.o;q\n''''':...;'\n'0/1w:o..;'\n'''''`xxx~'\n'''''''''''\n\nmessage Normalised threat rating: **\n\n§!@£±%\"&*™''''\n'''''{------}'\n'''4e:P.O$..;q\n''''':.$.$$O;q\n'0/4w:$O..$$;q\n''''':.$$..O;q\n'''''`xxxxxx~'\n''''''''''''''\n\nmessage Chance of accidental completion rated at 0.16% based on factorial analysis. Subject's comprehension is considered highly probable.\n\n§!@£±%\"&*™''''''\n'''''{-------}''\n'''4e:p.o$..$;lq\n''''':..$.o..;qq\n''''':$o..o$.;qq\n'0/4w:.o.$..$;qq\n''''':.$$..o$;qq\n'0/9s:o..$$..;qq\n''''':..o..$.;qq\n'''''`xxxxxxx~''\n''''''''''''''''\n\nmessage Normalised threat rating: ****\n\n§!@£±%\"&*™''''''\n'''''{--------}'\n'''4e:p.o$..o.;q\n''''':o..$.o.o;q\n'0/7w:.$..$..$;q\n''''':..o.o.o$;'\n''''':o..$.$..;'\n''''':.$o..$.o;'\n'''''`xxxxxxxx~'\n''''''''''''''''\n\nmessage Normalised threat rating: *****\n\n§!@£±%\"&*™'''\n'''''{-----}'\n'''4e:P.$.O;q\n''''':$.$$.;q\n'0/4w:.$C..;q\n''''':$..$$;q\n''''':.C$..;q\n''''':.$.O$;q\n'''''`xxxxx~'\n'''''''''''''\n\nmessage Normalised threat rating: *******\n\n§!@£±%\"&*™'''''\n'''''{-----}'''\n'''4e:P$..$;lqq\n''''':$..C.;lqq\n'0/8w:..$..;lqq\n''''':.C..$;qqq\n''''':$..$.;qqq\n'''''`xxxxx~'''\n'''''''''''''''\n\nmessage Normalised threat rating: *********\n\n§!@£±%\"&*™''''''''\n'''''{---------}''\n'''4e:p.c.o$..c;lq\n''''':$o$..$.$.;lq\n'0/7w:$..o$c$.o;lq\n''''':.o$.$..c.;lq\n'0/3m:c.c.o.o$$;qq\n'''''`xxxxxxxxx~''\n''''''''''''''''''\n\nmessage Normalised threat rating: ************\n\n§!''''{-}''\n'''4e{®p´}q\n''''':...;q\n'0/1h†∑.œ¥q\n''''''`x~''\n\nmessage Normalised threat rating: **************\n\n§!@£±%\"&*™'''''''''\n'''''{---------}'''\n'''4e:p$...$$$o;qqq\n''''':$$.$.o...;qqq\n'0/4h:$.o.$.$o$;qqq\n''''':o.$$.$.$.;qqq\n'0/6w:$.o..$$..;qqq\n''''':.$..$...$;'''\n'''''`xxxxxxxxx~'''\n'''''''''''''''''''\n\nmessage What is your species' biggest challenge? 1) Data processing, 2) War, 3) Food/energy production, 4) Spacetime manipulation\n\n§!''™{--}'\n'0/1s:¡p;q\n''''':¢.;'\n''''':∞.;'\n''''':¶.;'\n'''''†__¥'\n\nmessage Your response will be taken into consideration.\n\n§!@£±%\"&*™'{----}'\n'''9e'''''':$$$$;q\n''''''''''':$o$$;q\n''''''''''':$$$$;q\n''''''''''':$$$$;q\n'''''{-----®.$$.;q\n'0/2h:π$$...$$.$;q\n''''':$$$$...$$.;q\n'0/2w:$o$$.$$...;q\n''''':$$$$$.$..$;q\n'''''`xxxxxxxxxx~'\n''''''''''''''''''\n\nmessage Normalised threat rating: ****************\n\n§!@£±%\"&*™'''''''''\n'''''{----------}''\n'''9e:π...$..$..;''\n''''':$$..$$?.$.;lq\n'0/1w:$?$.$$...$;lq\n'''''†___∑.$$$$?;lq\n'''''{--}†∑?$o$.;lq\n''''':..´-®$$$$.;qq\n''''':...$$$$?$.;qq\n''''':?.$$$$.$.$;''\n'''''`xxxxxxxxxx~''\n'''''''''''''''''''\n\nmessage Normalised threat rating: *********************\n\n§!@£±%\"&*™'''''''''\n'''''{---------}'''\n'''4e:p.$..$..$;qqq\n''''':$$$.$.$..;qqq\n'0/9h:$..$...$.;qqq\n''''':...$...$.;qqq\n''''':...$$$$..;qqq\n''''':$$$...$..;'''\n''''':....$..$.;'''\n''''':..$...$$$;'''\n''''':.$..$$...;'''\n''''':$.$$.$...;'''\n''''':.$...$$..;'''\n'''''`xxxxxxxxx~'''\n'''''''''''''''''''\n\nmessage Normalised threat rating: ************************\n\n§!@£±%\"&*™'''''''\n'''''{---}'''''''\n'''1e:p..´}'''qqq\n''''':.$t$´}''qqq\n'¬¬¬¬:$t√.$´}'qqq\n'¬¬¬¬:..t...´}'''\n''''':$..$$..;'''\n''''':.t$.t√t;'''\n''''':t√t..tœ¥'''\n'0/9m:$..$.œ¥''''\n'''''`xxxxx~'''''\n'''''''''''''''''\n\nmessage Normalised threat rating: ***************************\n\n§!@£±%\"&*™'''''''''\n'''''{----}''''''''\n'''9e:p..$;'qqqqq''\n''''':$...;'qqqqq''\n'0/8m:....;{-----}'\n'''{-®$$$$;:o....;'\n'¬¬:o.t$$?´®.....;'\n''':$t√t$$$$$$$$$;'\n''':o.t$?...œ____¥'\n'''`xxxxxxxx~''''''\n'''''''''''''''''''\n\nmessage Normalised threat rating: ******************************\n\n§!@£±%\"&*™''''''\n'''''{----}'''''\n'''9e:p...;'''''\n''''':....;'''''\n'''¬¬:....;'qqq'\n'''¬¬:....;'qqq'\n'0/2m:$$$.;'qqq'\n{---}:.$$$;'''''\n:t√$´®$$$$´----}\n:$t$$$$$$$$$$$$;\n:$$$$$$$$$$$$t√;\n†____∑$$$$œ∑$$t;\n''{--®$...;†___¥\n'':$......´--}''\n'':$.......$$;''\n'':.$.......$;''\n''`xxxxxxxxxx~''\n''''''''''''''''\n\nmessage What is your purpose? 1) The acquisition of knowledge, 2) The acquisition of resources, 3) The hegemony of your race, 4) The survival of your race\n\n§!''*{--}'\n'0/1s:¡p;q\n''''':¢.;'\n''''':∞.;'\n''''':¶.;'\n'''''†__¥'\n\nmessage Your response will be taken into consideration.\n\n§!@£±%\"&*™'''\n'''''{---}'''\n'''2e:p..;lqq\n'¬¬¬¬:.i.;qqq\n'0/2ç:...;qqq\n'''''`xxx~'''\n'''''''''''''\n\nmessage Normalised threat rating: *************************************\n\n§!@£±%\"&*™''''''''\n'''''''{------}'''\n'''9e'':$$$$$c;lqq\n'''''''†∑uœ∑$œ¥qqq\n'¬¬¬¬'''†_¥:$;'qqq\n'''''{-----®$´}qqq\n''''':p......$;'''\n''''':.i......;'''\n'1/0s:........;'''\n'''''`xxxxxxxx~'''\n''''''''''''''''''\n\nmessage Normalised threat rating: *********************************************************\n\n§!@£±%\"&*™''''''''''''\n'''''{-----}{-----}'''\n'''2e:p...$;:.$...;qqq\n''''':$i...´®..$i.;qqq\n'''¬¬:$.$$.$$.$.$.;qqq\n'''¬¬:....$..i.$$$;qqq\n'''¬¬:...i.$....i.;qqq\n'''¬¬:$.$$$$.$.$..;qqq\n''''':$$...$$$$...;qqq\n''''':$....$$$$$i$;qqq\n'0/4m:.....$$$$$$$;'''\n'''''`xxxxxxxxxxxx~'''\n''''''''''''''''''''''\n\nmessage We come now to the final test. Consider your actions carefully, sapient one.\n\n'''''''''''''''''''''''{--}''''\n''''''''''''''''''''''':u$;''''\n'§!@£±%\"&*™'''''''''''':$$;qqq'\n'''''{------------}'''':$o;qqq'\n'''9e:p.....√.....´}''':u$;qqq'\n''''':˙.˙.˙.t.˙.˙.˙´--}:$$;qqq'\n'¬¬¬¬:.˙.˙.˙.˙.˙.˙....´®$o;qqq'\n'¬¬¬¬†__________∑........œ¥qqq'\n'¬¬¬¬{----------®........´}qqq'\n'¬¬¬¬:...˙...˙...˙....œ∑$o;qqq'\n''''':˙.˙.˙.t.˙.˙.˙œ__¥:$$;qqq'\n'4/0m:.˙...˙√..˙..œ¥''':u$;qqq'\n'''''`xxxxxxxxxxxx~'''':$o;qqq'\n''''''''''''''''''''''':$$;''''\n'''''''''''''''''''''''`xx~''''\n\nmessage Testing is now complete. Your risk rating has been calculated as...\nmessage CRITICAL\nmessage Dangerously intelligent life cannot be permitted to propagate unchecked within the galaxy. You must now decide on behalf of your civilisation whether to 1) Sacrifice your freedoms and submit to our direct control, or 2) Face annihilation.\n\n§!''&{--}'\n'0/1s:¡p;q\n''''':¢.;'\n'''''†__¥'\n\nmessage ERROR: Species designated 'homo sapiens' came under supervision 2500 years ago. Access to this system should not have been allowed. Our physical agents in the region may have been compromised.\nmessage Dispatching scout party to Orion Spur, Sol system.\nmessage ETA: 5 years\nmessage Shutting down...\n\n", ["tick", 3, 3, 4, 2, 2, "tick", 4, 3, 3, 4, 3, "tick", 0, 4, 3, 4, 2, 4, "tick", 1, 0, 4, 0, 4, 1, 4, "tick", 2, 4, 1, 4, 0, 4, 1, "tick", 1, 4, 1, 2, 2, 2, 1, "tick", 2, 3, 2, 4, "tick", "tick", "tick", "tick", "tick"], "numbercover shadow void zero:0,void:1,1,1,cross void:2,1,2,1,1,numbercover one void:3,1,pauseicon void:4,1,three void:5,1,six void:6,1,1,\nnumbercover two void:7,1,1,1,slash void:8,1,8,1,1,numbercover three void:9,1,fourrevert void zero:10,1,seven void:11,1,5,1,1,\nfour numbercover void:12,1,time timerevert void:13,1,violet violetrevert void:14,1,omega omegarevert void:15,1,1,five numbercover void:16,bordertopleft void:17,borderleft void:18,18,18,18,18,borderbuttonbl void:19,1,\nnumbercover six void:20,bordertop void:21,rockactive:22,shield:23,23,22,chariot chariotrevert shield:24,buttonactive rockactive:25,1,numbercover seven void:26,21,omega rockactive squarerevert:27,omegarevert shield violet:28,22,omega omegarevert shield:29,22,buttonactive invisiplayer playmode rockactive:30,1,\neight numbercover void:31,21,chariotrevert shield:32,23,rockactive squarerevert:33,23,24,25,1,nine numbercover void:34,21,27,33,28,22,22,25,1,\n1,21,28,33,23,23,29,25,1,1,21,23,23,24,22,22,25,1,\n1,21,22,rockactive square squarerevert:35,23,22,29,25,1,1,21,22,23,22,24,23,25,1,\n1,21,24,22,29,22,23,25,1,1,bordertopright void:36,borderright void:37,37,37,37,37,borderbuttonbr void:38,1,\n1,1,toolbox:39,39,39,39,39,1,1,1,1,39,39,39,39,39,1,1,\n", 16, "1627779484111.158"] + ["title Symbolism\nauthor Richard Locke\nhomepage www.richardlocke.co.uk\nbackground_color #303030\ntext_color #a0a0a0\nagain_interval 0.5\nrealtime_interval 1.0\nkey_repeat_interval 0.2\nnorepeat_action\nrun_rules_on_level_start\n(verbose_logging)\n(debug)\n\n========\nOBJECTS\n========\n(These aren't in a particularly logical order. Oh well.)\n\nvoid\nTransparent\n\nrockInert\n#303040\n\nrockActive\n#303060\n \nboundary\n#808080 #303030\n00000\n00000\n00000\n11111\n11111\n\nbuttonInert\n#808080 #8050f0 #303030\n00000\n11111\n00000\n22222\n22222\n\nbuttonHover\n#808080 #c050f0 #303030\n00000\n11111\n00000\n22222\n22222\n\nbuttonActive\n#808080 #f050f0 #303030\n00000\n11111\n00000\n22222\n22222\n\nplayMode\ntransparent\n\nplayModeOff\ntransparent\n\ntimeRemaining\ntransparent\n\ntoolbox\n#304030\n\nborderTop\n#808080\n.....\n.....\n.....\n.....\n00000\n\nborderLeft\n#808080\n....0\n....0\n....0\n....0\n....0\n\nborderRight\n#808080\n0....\n0....\n0....\n0....\n0....\n\nborderBottom\n#808080\n00000\n.....\n.....\n.....\n.....\n\nborderTopLeft\n#808080\n.....\n.....\n.....\n.....\n....0\n\nborderTopRight\n#808080\n.....\n.....\n.....\n.....\n0....\n\nborderButtonBL\n#808080\n....0\n....0\n....0\n.....\n.....\n\nborderButtonBR\n#808080\n0....\n0....\n0....\n.....\n.....\n\nborderBL\n#808080\n....0\n.....\n.....\n.....\n.....\n\nborderBR\n#808080\n0....\n.....\n.....\n.....\n.....\n\nborderInsideTL\n#808080\n00000\n0....\n0....\n0....\n0....\n\nborderInsideTR\n#808080\n00000\n....0\n....0\n....0\n....0\n\nborderInsideBL\n#808080\n0....\n0....\n0....\n0....\n00000\n\nborderInsideBR\n#808080\n....0\n....0\n....0\n....0\n00000\n\nselect\n#e0e0e0\n00.00\n0...0\n.....\n0...0\n00.00\n\ninvisiplayer\nTransparent\n\nshield\n#505060\n\nshadow\ntransparent\n\nremoveShadow\nTransparent\n\nnoWin\ntransparent\n\nomega\n#ff9070\n...0.\n...0.\n0000.\n.0...\n.0...\n\nomegaShadow\ntransparent\n\nomegaRevert\ntransparent\n\nsquare\n#70d070\n..0..\n.000.\n.0.0.\n.000.\n.....\n\nsquareShadow\ntransparent\n\nsquareRevert\ntransparent\n\nviolet\n#90c0f0\n.000.\n.0.0.\n00.00\n...0.\n...0.\n\nvioletShadow\ntransparent\n\nvioletRevert\ntransparent\n\ndecayedViolet\ntransparent\n\ndecayedVioletShadow\ntransparent\n\ndecayedVioletRevert\ntransparent\n\nchariot\n#d0d080\n....0\n000.0\n0.0.0\n0.000\n0....\n\nchariotShadow\ntransparent\n\nchariotRevert\ntransparent\n\nhorse\n#f05050\n.....\n.0000\n00.0.\n..00.\n.00..\n\nhorseShadow\ntransparent\n\nhorseRevert\ntransparent\n\nslash\n#808080\n.....\n...0.\n..0..\n.0...\n0....\n\ntick\n#80a080\n.....\n.....\n...0.\n0.0..\n.0...\n\ncross\n#b08080\n.....\n.....\n0.0..\n.0...\n0.0..\n\nzero\n#808080\n0000.\n0..0.\n0..0.\n0..0.\n0000.\n\none\n#808080\n000..\n..0..\n..0..\n..0..\n0000.\n\ntwo\n#808080\n0000.\n...0.\n0000.\n0....\n0000.\n\nthree\n#808080\n000..\n...0.\n.00..\n...0.\n000..\n\nfour\n#808080\n0....\n0....\n0.0..\n0000.\n..0..\n\nfive\n#808080\n0000.\n0....\n000..\n...0.\n000..\n\nsix\n#808080\n.000.\n0....\n000..\n0..0.\n.00..\n\nseven\n#808080\n0000.\n...0.\n..0..\n.0...\n0....\n\neight\n#808080\n.00..\n0..0.\n.00..\n0..0.\n.00..\n\nnine\n#808080\n.00..\n0..0.\n.000.\n...0.\n000..\n\noneRevert\ntransparent\n\ntwoRevert\ntransparent\n\nthreeRevert\ntransparent\n\nfourRevert\ntransparent\n\nfiveRevert\ntransparent\n\nsixRevert\ntransparent\n\nsevenRevert\ntransparent\n\neightRevert\ntransparent\n\nnineRevert\ntransparent\n\nnumberCover\n#303030\n\nwall\n#b0b0b0\n00000\n00.00\n.0.0.\n00.00\n00000\n\nplayIcon\n#60c0a9\n.0...\n.00..\n.000.\n.00..\n.0...\n\npauseIcon\n#b08080\n00.00\n00.00\n00.00\n00.00\n00.00\n\nsolved\ntransparent\n\ntime\n#60c0a9\n00000\n.000.\n..0..\n.000.\n00000\n\ntimeShadow\ntransparent\n\ntimeRevert\ntransparent\n\napplyRules\ntransparent\n\nerror\n#603030\n\ninfo1\n#5080e0 #50c0c0\n.....\n..01.\n.00..\n..00.\n.....\n\ninfo2\n#5080e0 #50c0c0\n.....\n..10.\n..00.\n.10..\n.....\n\ninfo3\n#5080e0 #50c0c0\n.....\n.10..\n..01.\n.01..\n.....\n\ninfo4\n#5080e0 #50c0c0\n.....\n.100.\n..1..\n.11..\n.....\n\nplus\n#808080\n.....\n..0..\n.000.\n..0..\n.....\n\ntimebox\ntransparent\n\n=======\nLEGEND\n=======\n\n' = void\n. = rockInert\n$ = shield\n# = boundary and rockInert\nP = select and rockInert\nπ = select and shield\nS = square and void\nW = violet and void\nh = horse and void\n˙ = horse and shield\nO = omega and shield\nC = chariot and shield\nç = chariot and void\n√ = decayedViolet and shield\n/ = slash\n÷ = plus\n0 = zero\n1 = one\n2 = two\n3 = three\n4 = four\n5 = five\n6 = six\n7 = seven\n8 = eight\n9 = nine\n- = borderTop and void\n_ = borderBottom and void\n: = borderLeft and void\n; = borderRight and void\n{ = borderTopLeft and void\n} = borderTopRight and void\n` = borderButtonBL and void\n~ = borderButtonBR and void\nœ = borderInsideTL and void\n∑ = borderInsideTR and void\n´ = borderInsideBL and void\n® = borderInsideBR and void\n† = borderBL and void\n¥ = borderBR and void\nx = buttonInert and rockInert\nq = square and toolbox\nu = square and shield\ni = violet and shield\nm = omega\n§ = zero and numberCover\n! = one and numberCover\n@ = two and numberCover\n£ = three and numberCover\n± = four and numberCover\n% = five and numberCover\n\" = six and numberCover\n& = seven and numberCover\n* = eight and numberCover\n™ = nine and numberCover\n? = wall and shield\nt = time and shield\ne = time\nl = toolbox\n¬ = timebox\n¡ = info1 and shield\n¢ = info2 and shield\n∞ = info3 and shield\n¶ = info4 and shield\n\n\n\nrock = rockInert or rockActive\nbackground = rock or shield or void\nbutton = buttonInert or buttonHover or buttonActive\nborder = boundary or borderLeft or borderRight or borderTop or borderBottom or borderTopLeft or borderTopRight or borderButtonBL or borderButtonBR or borderInsideTL or borderInsideTR or borderInsideBL or borderInsideBR or borderBL or borderBR or button\nrevert = oneRevert or twoRevert or threeRevert or fourRevert or fiveRevert or sixRevert or sevenRevert or eightRevert or nineRevert or omegaRevert or squareRevert or violetRevert or chariotRevert or horseRevert or timeRevert or decayedVioletRevert\nnoop = border or shield or wall\nplayer = select or invisiplayer\nplayArea = rock or shield\n\nnumber = zero or one or two or three or four or five or six or seven or eight or nine\n\n(All symbols need to be added to this list)\nsymbol = omega or square or violet or chariot or horse or time or info1 or info2 or info3 or info4\n\n(Occupied spaces are important for symbol rules)\noccupied = symbol or border or button or wall\n\nicon = tick or cross or playIcon or pauseIcon\n\n=======\nSOUNDS\n=======\n\n(Draw symbol)\nsfx0 94979106\n\n(Erase symbol)\nsfx1 65786906\n\n(Draw fail)\nsfx2 90767506\n\n(Change symbol)\nsfx3 64174703\n\n(Timer tick)\nsfx4 54851300\n\n(Timer tick 2)\nsfx5 44900907\n\n(Empty toolbox)\nsfx6 3749704\n\nsfx7 39598503\n\n(atmosphere)\nsfx8 38051508\nsfx9 81574108\nsfx10 4497708\n\ntitleScreen 38051508\nstartGame 81574108\nundo 74844306\nrestart 4497708\nendGame 96315108\n\n================\nCOLLISIONLAYERS\n================\n\nrock, shield, void, toolbox, timebox\nerror\nborder, symbol, wall\ndecayedViolet\nslash, plus, icon, player\nnumber\nnumberCover\nrevert\nshadow, noWin, applyRules\nsolved\nomegaShadow\nsquareShadow\nvioletShadow\nchariotShadow\nhorseShadow\ntimeShadow\ndecayedVioletShadow\nremoveShadow\nplayMode, playModeOff\ntimeRemaining\n\n\n\n======\nRULES\n======\n\n(Info messages)\n[ > player | info1 ][ nine ] -> [ > player | info1 ][ nine ] message Species' biggest challenge: Data processing\n[ > player | info2 ][ nine ] -> [ > player | info2 ][ nine ] message Species' biggest challenge: War\n[ > player | info3 ][ nine ] -> [ > player | info3 ][ nine ] message Species' biggest challenge: Food/energy production\n[ > player | info4 ][ nine ] -> [ > player | info4 ][ nine ] message Species' biggest challenge: Spacetime manipulation\n\n[ > player | info1 ][ eight ] -> [ > player | info1 ][ eight ] message Purpose: The acquisition of knowledge\n[ > player | info2 ][ eight ] -> [ > player | info2 ][ eight ] message Purpose: The acquisition of resources\n[ > player | info3 ][ eight ] -> [ > player | info3 ][ eight ] message Purpose: The hegemony of your race\n[ > player | info4 ][ eight ] -> [ > player | info4 ][ eight ] message Purpose: The survival of your race\n\n[ > player | info1 ][ seven ] -> [ > player | info1 ][ seven ] message Decision: Sacrifice freedoms and submit to our control\n[ > player | info2 ][ seven ] -> [ > player | info2 ][ seven ] message Decision: Face annihilation\n\n\n(If the level is solved, don't allow normal rules to execute)\n[ action player solved ] -> [ player solved ] win\n[ > player solved ] -> [ player solved ] win\n\n(Stop the player from leaving the level bounds)\n[ > player | void ] -> cancel\n\n(Draw or remove a square when the action key is pressed and there are some in the toolbox. Put a shadow where the last item was in the toolbox so we can refill it in the right order.)\n(Can't draw on noop)\n[ action player noop no button ] -> [ player noop ] sfx2\n\n(Drawing a square)\n[ action player no square no noop ] -> [ player squareShadow ]\ndown [ squareShadow ][ square toolbox ] -> [ square ][ toolbox ] sfx0\n\n(Clean up error flags from last time)\n[ toolbox error ] -> [ toolbox ]\n\n(Nothing in the toolbox if the squareShadow is still present at this point)\n[ squareShadow ][ toolbox no error ] -> [ squareShadow ][ toolbox error ] sfx6\n[ squareShadow ] -> []\n\n(Erasing a square)\ndown [ action player square no noop ][ toolbox no symbol | toolbox symbol ] -> [ action player ][ square toolbox | toolbox symbol ] sfx1\n[ action player square no noop ][ toolbox no symbol ] -> [ action player ][ square toolbox ] sfx1\nright down [ action player ][ square toolbox | toolbox no square ] -> [ action player ][ toolbox no square | square toolbox ] sfx1\n\n\n\n(Play Mode)\n\n(Deactivate play mode when the player moves or presses action again)\n[ > player ][ playMode ] -> [ > player ][ playModeOff no timeRemaining ]\n[ action player ][ playMode ] -> [ player ][ playModeOff no timeRemaining ] (consume action)\n\n(When deactivating play mode, revert to the initial state)\n[ playModeOff ][ symbol decayedVioletRevert ] -> [ playModeOff ][ decayedVioletRevert ]\n[ playModeOff ][ decayedViolet no decayedVioletRevert ] -> [ playModeOff ][]\n[ playModeOff ][ symbol no revert ] -> [ playModeOff ][ ]\n[ playModeOff ][ nineRevert ] -> [ playModeOff ][ nine ]\n[ playModeOff ][ eightRevert ] -> [ playModeOff ][ eight ]\n[ playModeOff ][ sevenRevert ] -> [ playModeOff ][ seven ]\n[ playModeOff ][ sixRevert ] -> [ playModeOff ][ six ]\n[ playModeOff ][ fiveRevert ] -> [ playModeOff ][ five ]\n[ playModeOff ][ fourRevert ] -> [ playModeOff ][ four ]\n[ playModeOff ][ threeRevert ] -> [ playModeOff ][ three ]\n[ playModeOff ][ twoRevert ] -> [ playModeOff ][ two ]\n[ playModeOff ][ oneRevert ] -> [ playModeOff ][ one ]\n[ playModeOff ][ omegaRevert ] -> [ playModeOff ][ omega ]\n[ playModeOff ][ squareRevert ] -> [ playModeOff ][ square ]\n[ playModeOff ][ violetRevert ] -> [ playModeOff ][ violet ]\n[ playModeOff ][ chariotRevert ] -> [ playModeOff ][ chariot ]\n[ playModeOff ][ horseRevert ] -> [ playModeOff ][ horse ]\n[ playModeOff ][ timeRevert ] -> [ playModeOff ][ time ]\n[ playModeOff ][ decayedVioletRevert ] -> [ playModeOff ][ decayedViolet ]\n[ playModeOff ][ plus ] -> [ playModeOff ][ void ]\n\n(Remove the play or pause icon)\n[ playModeOff ][ | | number | time ] -> [ playModeOff ][ no icon | | number | time ]\n\n(Take the button out of active mode)\n[ playModeOff ][ player button ][ button ] -> [ playModeOff ][ player buttonHover ][ buttonHover ]\n[ playModeOff ][ player no button ][ button ] -> [ playModeOff ][ player ][ buttonInert ]\n\n(Reset the play area's appearance)\n[ playModeOff ][ rockActive ] -> [ playModeOff ][ rockInert ]\n\n[ playModeOff ] -> []\n\n(Activate play mode when the action key is pressed on the play button)\n(If the action is omitted from the RHS, it is consumed)\n[ action player button ][ button ][ | | number | time ] -> [ action player buttonActive playMode timeRemaining ][ buttonActive ][ playIcon | | number | time ]\n\n(Change the play area's appearance)\n[ action player button ][ rockInert ] -> [ action player button ][ rockActive ]\n\n(Save the state before play mode begins so we can revert to it afterwards)\n[ action player button ][ nine | time ] -> [ action player button ][ nine nineRevert | time ]\n[ action player button ][ eight | time ] -> [ action player button ][ eight eightRevert | time ]\n[ action player button ][ seven | time ] -> [ action player button ][ seven sevenRevert | time ]\n[ action player button ][ six | time ] -> [ action player button ][ six sixRevert | time ]\n[ action player button ][ five | time ] -> [ action player button ][ five fiveRevert | time ]\n[ action player button ][ four | time ] -> [ action player button ][ four fourRevert | time ]\n[ action player button ][ three | time ] -> [ action player button ][ three threeRevert | time ]\n[ action player button ][ two | time ] -> [ action player button ][ two twoRevert | time ]\n[ action player button ][ one | time ] -> [ action player button ][ one oneRevert | time ]\n[ action player button ][ omega ] -> [ action player button ][ omega omegaRevert ]\n[ action player button ][ square ] -> [ action player button ][ square squareRevert ]\n[ action player button ][ violet ] -> [ action player button ][ violet violetRevert ]\n[ action player button ][ chariot ] -> [ action player button ][ chariot chariotRevert ]\n[ action player button ][ horse ] -> [ action player button ][ horse horseRevert ]\n[ action player button ][ time ] -> [ action player button ][ time timeRevert ]\n[ action player button ][ decayedViolet ] -> [ action player button ][ decayedViolet decayedVioletRevert ]\n\n(Don't allow symbol interations once time gets to zero)\n[ timeRemaining ][ zero | time ] -> [][ zero | time ]\n\n(If there are hourglasses, however, we still have time remaining)\n[ playMode no timeRemaining ][ time playArea ] -> [ playMode timeRemaining ][ time playArea ]\n[ playMode no timeRemaining ][ time timebox ] -> [ playMode timeRemaining ][ time timebox ]\n\n\n(Change the button appearance when the player's on it)\n[ > player | button ][ buttonInert ] -> [ > invisiplayer | buttonHover ][ buttonHover ]\n[ no button | < player button ][ buttonHover ] -> [ | < select buttonInert ][ buttonInert ]\n\n\n(SYMBOL RULES)\n(These all apply to real-time moves only, and only when in play mode)\n(Set a marker to say we're okay to apply the symbol rules)\n[ stationary player ][ timeRemaining no solved ] -> [ stationary player ][ timeRemaining applyRules ]\n\n(Omega next to a square: remove square, replace omega with violet)\n[ applyRules ][ omega playArea | square playArea ] -> [ applyRules ][ omega violetShadow playArea | square removeShadow playArea ]\n\n(Chariot next to square: remove chariot, replace square with Omega)\n[ applyRules ][ chariot playArea | square playArea ] -> [ applyRules ][ chariot removeShadow playArea | square omegaShadow playArea ]\n\n(Three squares in a row produce a horse)\n[ applyRules ][ square playArea | square playArea | square playArea ] -> [ applyRules ][ square removeShadow playArea | square removeShadow horseShadow playArea | square removeShadow playArea ]\n\n(A square next to a horse will walk in the direction of the square)\n[ applyRules ][ square playArea | horse playArea | no occupied ] -> [ applyRules ][ square removeShadow playArea | horse removeShadow squareShadow playArea | horseShadow ]\n\n(A chariot next to a horse does the same thing)\n[ applyRules ][ chariot playArea | horse playArea | no occupied ] -> [ applyRules ][ chariot removeShadow playArea | horse removeShadow chariotShadow playArea | horseShadow ]\n\n(Two or more horses next to a violet become hourglasses)\n[ applyRules ] -> [ applyRules zero ]\n+ [ applyRules zero ][ violet playArea no zero no shadow ] -> [ applyRules ][ violet playArea zero ]\n+ [ applyRules ][ horse no shadow | violet zero no shadow ] -> [ applyRules ][ horse shadow | violet zero shadow ]\n+ [ applyRules ][ horse no shadow | violet zero shadow ] -> [ applyRules ][ horse timeShadow | violet zero shadow decayedVioletShadow ]\n+ [ applyRules ][ horse shadow | violet decayedVioletShadow ] -> [ applyRules ][ horse timeShadow no shadow | violet decayedVioletShadow ]\n+ [ applyRules ][ violet zero ] -> [ applyRules ][ violet shadow no zero ]\n+ [ applyRules ][ horse shadow ] -> [ applyRules ][ horse no shadow ]\n(Clean up - not part of rule group)\n[ applyRules ][ symbol shadow ] -> [ applyRules ][ symbol ]\n[ applyRules ][ violet zero ] -> [ applyRules ][ violet ]\n[ applyRules zero ] -> [ applyRules ]\n[ applyRules ][ violet decayedVioletShadow ] -> [ applyRules ][ decayedVioletShadow ]\n\n(An hourglass decays into a chariot, providing an extra second)\n(First, the indication that time needs to tick down)\n[ stationary player ][ playMode ] -> [ player ][ down playMode ]\n(Each separate group of hourglasses can tick independently. For each, the order is clockwise from 3 o' clock)\nleft [ applyRules ][ time playArea | decayedViolet no shadow ] -> [ applyRules ][ time chariotShadow playArea | decayedViolet shadow ] sfx4\nup [ applyRules ][ time playArea | decayedViolet no shadow ] -> [ applyRules ][ time chariotShadow playArea | decayedViolet shadow ] sfx4\nright [ applyRules ][ time playArea | decayedViolet no shadow ] -> [ applyRules ][ time chariotShadow playArea | decayedViolet shadow ] sfx4\ndown [ applyRules ][ time playArea | decayedViolet no shadow ] -> [ applyRules ][ time chariotShadow playArea | decayedViolet shadow ] sfx4\n(Put hourglasses in the timebox. Need a few rules to make sure they go in in the right order)\nright [ decayedViolet shadow ][ timebox time | timebox no time ] -> [ decayedViolet ][ timebox time | timebox time ]\ndown [ decayedViolet shadow ][ no timebox | timebox no time ] -> [ decayedViolet ][ no timebox | timebox time ]\ndown [ decayedViolet shadow ][ timebox time | timebox no time ] -> [ decayedViolet ][ timebox time | timebox time ]\nright [ decayedViolet shadow ][ timebox no time ] -> [ decayedViolet ][ timebox time]\n[ decayedViolet shadow ] -> [ decayedViolet ]\n\n(A decayed violet with no hourglasses next to it disappears)\nright [ applyRules ][ no time | decayedViolet | no time ] -> [ applyRules ][ no time | decayedViolet shadow | no time ]\ndown [ applyRules ][ no time | decayedViolet shadow | no time ] -> [ applyRules ][ no time | no decayedViolet | no time ]\n[ decayedViolet shadow ] -> [ decayedViolet no shadow]\n\n(Remove applyRules)\n[ applyRules ] -> [ no applyRules ]\n\n\n\n(Remove an hourglass from the timebox if there is one, then shuffle them to the top-left)\nright [ down playMode ][ plus | timebox time | timebox no time ] -> [ stationary playMode ][ void | timebox | timebox ] sfx4\n[ down playMode ][ timebox time ] -> [ stationary playMode ][ timebox ] sfx4\nup [ timebox time | timebox no time ] -> [ timebox | timebox time ]\nleft [ timebox time | timebox no time ] -> [ timebox | timebox time ]\nright [ void | timebox time ] -> [ plus | timebox time ]\n\n(Count the timer down)\nright [ down playMode ][ one | time ] -> [ playMode ][ zero | time] sfx4\nright [ down playMode ][ two | time ] -> [ playMode ][ one | time] sfx4\nright [ down playMode ][ three | time ] -> [ playMode ][ two | time] sfx4\nright [ down playMode ][ four | time ] -> [ playMode ][ three | time] sfx4\nright [ down playMode ][ five | time ] -> [ playMode ][ four | time] sfx4\nright [ down playMode ][ six | time ] -> [ playMode ][ five | time] sfx4\nright [ down playMode ][ seven | time ] -> [ playMode ][ six | time] sfx4\nright [ down playMode ][ eight | time ] -> [ playMode ][ seven | time] sfx4\nright [ down playMode ][ nine | time ] -> [ playMode ][ eight | time] sfx4\n\n[ down playMode ] -> [ playMode ]\n\n(Switch to a pause icon after the timer reaches zero)\nright [ playMode no timeRemaining][ playIcon | | zero ] -> [ playMode ][ pauseIcon | | zero ]\n\n\n(POST-SYMBOL RULES)\n(Remove any RemoveShadows and the symbol in that space)\n[ removeShadow symbol ] -> []\n\n(Replace symbol shadows with their real symbols)\n[ violetShadow ] -> [ violet ]\n[ omegaShadow ] -> [ omega ]\n[ squareShadow ] -> [ square ]\n[ chariotShadow ] -> [ chariot ]\n[ horseShadow ] -> [ horse ]\n[ timeShadow ] -> [ time ]\n[ decayedVioletShadow ] -> [ decayedViolet ]\n\n\n\n(Count up the number of target symbols by putting shadows on them then counting up as we remove them by shifting a shadow along the number line. Don't forget to set the count to zero first.)\n\n(violets)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | violet ][ violet No void ] -> [ number | violet ][ violet shadow ]\nright [ violet shadow ][ number shadow | number ] -> [ violet ][ number | number shadow ]\nright [ number shadow ][ | slash | | violet ] -> [ number ][ number | slash | | violet ]\n\n(omegas)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | omega ][ omega no void ] -> [ number | omega ][ omega shadow ]\nright [ omega shadow ][ number shadow | number ] -> [ omega ][ number | number shadow ]\nright [ number shadow ][ | slash | | omega ] -> [ number ][ number | slash | | omega ]\n\n(horses)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | horse ][ horse no void ] -> [ number | horse ][ horse shadow ]\nright [ horse shadow ][ number shadow | number ] -> [ horse ][ number | number shadow ]\nright [ number shadow ][ | slash | | horse ] -> [ number ][ number | slash | | horse ]\n\n(squares)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | square ][ square no void no toolbox ] -> [ number | square ][ square shadow ]\nright [ square shadow ][ number shadow | number ] -> [ square ][ number | number shadow ]\nright [ number shadow ][ | slash | | square ] -> [ number ][ number | slash | | square ]\n\n(chariots)\n[ zero numberCover ] -> [ zero numberCover shadow ]\nright [ number | chariot ][ chariot no void ] -> [ number | chariot ][ chariot shadow ]\nright [ chariot shadow ][ number shadow | number ] -> [ chariot ][ number | number shadow ]\nright [ number shadow ][ | slash | | chariot ] -> [ number ][ number | slash | | chariot ]\n\n(Clean up e.g. where there are more than 9 of a given symbol)\n[ symbol shadow ] -> [ symbol ]\n\n\n(Work out if the level is solved)\n(First, put crosses by all the counters)\nright [ | number | slash ] -> [ cross no tick | number | slash ]\n(Next, replace crosses with ticks where the targets are met)\nright [ cross | zero | slash | zero ] -> [ tick | zero | slash | zero ]\nright [ cross | one | slash | one ] -> [ tick | one | slash | one ]\nright [ cross | two | slash | two ] -> [ tick | two | slash | two ]\nright [ cross | three | slash | three ] -> [ tick | three | slash | three ]\nright [ cross | four | slash | four ] -> [ tick | four | slash | four ]\nright [ cross | five | slash | five ] -> [ tick | five | slash | five ]\nright [ cross | six | slash | six ] -> [ tick | six | slash | six ]\nright [ cross | seven | slash | seven ] -> [ tick | seven | slash | seven ]\nright [ cross | eight | slash | eight ] -> [ tick | eight | slash | eight ]\nright [ cross | nine | slash | nine ] -> [ tick | nine | slash | nine ]\n(Next, put a noWin on the player for any cross we find)\n[ cross ][ player ] -> [ cross ][ player noWin ]\n(If there's not a noWin on the player, the level is solved!)\n[ player no noWin no solved ] -> [ player solved no playMode ] sfx7\ndown [ solved ][ button | ] -> [ solved ][ button | tick ]\n[ playIcon ][ solved ] -> [ tick ][ solved ]\n[ pauseIcon ][ solved ] -> [ tick ][ solved ]\n[ player noWin ] -> [ player ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\n(There are a few features each level must have in order to work correctly:)\n(1. A row of hidden numbers 0-9 as this is used for counting)\n(2. At least one target symbol counter in the form 0/yZ where y is the required number and Z is the target symbol)\n(3. There must be a column to the left of the target counter so that ticks and crosses can be placed there by the rules)\n(4. An optional time limit in the form xe where x is the number of seconds allowed, up to a maximum of 9)\n(5. If a time limit is in place, it must have two columns to the left of it to allow the play and pause icons to be placed there by the rules)\n(6. At least one button sprite, x. By convention, these are put at the bottom of the play area.)\n(7. Levels with hourglasses need at least one timebox space)\n(7. Hourglasses tick down in groups around the violet they were produced by. If more than one of these groups may exist in the level, you'll need one timebox space per violet group to hold extra hourglasses)\n\nmessage Let it be known that proceeding may lead to the annihilation of your species.\nmessage X = draw/erase symbol, activate button\n\n§!@£±%\"&*™\n'''''{-}''\n'''4e:P;q'\n''''':O;''\n'0/1w:.;''\n'''''`x~''\n''''''''''\n\nmessage Acceptance confirmed. Analysis of species MW3022 commencing. Recognition of 'Hindu-Arabic' numerals likely.\n\n§!@£±%\"&*™'\n'''''{---}'\n'''4e:P.o;q\n''''':...;'\n'0/1w:o..;'\n'''''`xxx~'\n'''''''''''\n\nmessage Normalised threat rating: **\n\n§!@£±%\"&*™''''\n'''''{------}'\n'''4e:P.O$..;q\n''''':.$.$$O;q\n'0/4w:$O..$$;q\n''''':.$$..O;q\n'''''`xxxxxx~'\n''''''''''''''\n\nmessage Chance of accidental completion rated at 0.16% based on factorial analysis. Subject's comprehension is considered highly probable.\n\n§!@£±%\"&*™''''''\n'''''{-------}''\n'''4e:p.o$..$;lq\n''''':..$.o..;qq\n''''':$o..o$.;qq\n'0/4w:.o.$..$;qq\n''''':.$$..o$;qq\n'0/9s:o..$$..;qq\n''''':..o..$.;qq\n'''''`xxxxxxx~''\n''''''''''''''''\n\nmessage Normalised threat rating: ****\n\n§!@£±%\"&*™''''''\n'''''{--------}'\n'''4e:p.o$..o.;q\n''''':o..$.o.o;q\n'0/7w:.$..$..$;q\n''''':..o.o.o$;'\n''''':o..$.$..;'\n''''':.$o..$.o;'\n'''''`xxxxxxxx~'\n''''''''''''''''\n\nmessage Normalised threat rating: *****\n\n§!@£±%\"&*™'''\n'''''{-----}'\n'''4e:P.$.O;q\n''''':$.$$.;q\n'0/4w:.$C..;q\n''''':$..$$;q\n''''':.C$..;q\n''''':.$.O$;q\n'''''`xxxxx~'\n'''''''''''''\n\nmessage Normalised threat rating: *******\n\n§!@£±%\"&*™'''''\n'''''{-----}'''\n'''4e:P$..$;lqq\n''''':$..C.;lqq\n'0/8w:..$..;lqq\n''''':.C..$;qqq\n''''':$..$.;qqq\n'''''`xxxxx~'''\n'''''''''''''''\n\nmessage Normalised threat rating: *********\n\n§!@£±%\"&*™''''''''\n'''''{---------}''\n'''4e:p.c.o$..c;lq\n''''':$o$..$.$.;lq\n'0/7w:$..o$c$.o;lq\n''''':.o$.$..c.;lq\n'0/3m:c.c.o.o$$;qq\n'''''`xxxxxxxxx~''\n''''''''''''''''''\n\nmessage Normalised threat rating: ************\n\n§!''''{-}''\n'''4e{®p´}q\n''''':...;q\n'0/1h†∑.œ¥q\n''''''`x~''\n\nmessage Normalised threat rating: **************\n\n§!@£±%\"&*™'''''''''\n'''''{---------}'''\n'''4e:p$...$$$o;qqq\n''''':$$.$.o...;qqq\n'0/4h:$.o.$.$o$;qqq\n''''':o.$$.$.$.;qqq\n'0/6w:$.o..$$..;qqq\n''''':.$..$...$;'''\n'''''`xxxxxxxxx~'''\n'''''''''''''''''''\n\nmessage What is your species' biggest challenge? 1) Data processing, 2) War, 3) Food/energy production, 4) Spacetime manipulation\n\n§!''™{--}'\n'0/1s:¡p;q\n''''':¢.;'\n''''':∞.;'\n''''':¶.;'\n'''''†__¥'\n\nmessage Your response will be taken into consideration.\n\n§!@£±%\"&*™'{----}'\n'''9e'''''':$$$$;q\n''''''''''':$o$$;q\n''''''''''':$$$$;q\n''''''''''':$$$$;q\n'''''{-----®.$$.;q\n'0/2h:π$$...$$.$;q\n''''':$$$$...$$.;q\n'0/2w:$o$$.$$...;q\n''''':$$$$$.$..$;q\n'''''`xxxxxxxxxx~'\n''''''''''''''''''\n\nmessage Normalised threat rating: ****************\n\n§!@£±%\"&*™'''''''''\n'''''{----------}''\n'''9e:π...$..$..;''\n''''':$$..$$?.$.;lq\n'0/1w:$?$.$$...$;lq\n'''''†___∑.$$$$?;lq\n'''''{--}†∑?$o$.;lq\n''''':..´-®$$$$.;qq\n''''':...$$$$?$.;qq\n''''':?.$$$$.$.$;''\n'''''`xxxxxxxxxx~''\n'''''''''''''''''''\n\nmessage Normalised threat rating: *********************\n\n§!@£±%\"&*™'''''''''\n'''''{---------}'''\n'''4e:p.$..$..$;qqq\n''''':$$$.$.$..;qqq\n'0/9h:$..$...$.;qqq\n''''':...$...$.;qqq\n''''':...$$$$..;qqq\n''''':$$$...$..;'''\n''''':....$..$.;'''\n''''':..$...$$$;'''\n''''':.$..$$...;'''\n''''':$.$$.$...;'''\n''''':.$...$$..;'''\n'''''`xxxxxxxxx~'''\n'''''''''''''''''''\n\nmessage Normalised threat rating: ************************\n\n§!@£±%\"&*™'''''''\n'''''{---}'''''''\n'''1e:p..´}'''qqq\n''''':.$t$´}''qqq\n'¬¬¬¬:$t√.$´}'qqq\n'¬¬¬¬:..t...´}'''\n''''':$..$$..;'''\n''''':.t$.t√t;'''\n''''':t√t..tœ¥'''\n'0/9m:$..$.œ¥''''\n'''''`xxxxx~'''''\n'''''''''''''''''\n\nmessage Normalised threat rating: ***************************\n\n§!@£±%\"&*™'''''''''\n'''''{----}''''''''\n'''9e:p..$;'qqqqq''\n''''':$...;'qqqqq''\n'0/8m:....;{-----}'\n'''{-®$$$$;:o....;'\n'¬¬:o.t$$?´®.....;'\n''':$t√t$$$$$$$$$;'\n''':o.t$?...œ____¥'\n'''`xxxxxxxx~''''''\n'''''''''''''''''''\n\nmessage Normalised threat rating: ******************************\n\n§!@£±%\"&*™''''''\n'''''{----}'''''\n'''9e:p...;'''''\n''''':....;'''''\n'''¬¬:....;'qqq'\n'''¬¬:....;'qqq'\n'0/2m:$$$.;'qqq'\n{---}:.$$$;'''''\n:t√$´®$$$$´----}\n:$t$$$$$$$$$$$$;\n:$$$$$$$$$$$$t√;\n†____∑$$$$œ∑$$t;\n''{--®$...;†___¥\n'':$......´--}''\n'':$.......$$;''\n'':.$.......$;''\n''`xxxxxxxxxx~''\n''''''''''''''''\n\nmessage What is your purpose? 1) The acquisition of knowledge, 2) The acquisition of resources, 3) The hegemony of your race, 4) The survival of your race\n\n§!''*{--}'\n'0/1s:¡p;q\n''''':¢.;'\n''''':∞.;'\n''''':¶.;'\n'''''†__¥'\n\nmessage Your response will be taken into consideration.\n\n§!@£±%\"&*™'''\n'''''{---}'''\n'''2e:p..;lqq\n'¬¬¬¬:.i.;qqq\n'0/2ç:...;qqq\n'''''`xxx~'''\n'''''''''''''\n\nmessage Normalised threat rating: *************************************\n\n§!@£±%\"&*™''''''''\n'''''''{------}'''\n'''9e'':$$$$$c;lqq\n'''''''†∑uœ∑$œ¥qqq\n'¬¬¬¬'''†_¥:$;'qqq\n'''''{-----®$´}qqq\n''''':p......$;'''\n''''':.i......;'''\n'1/0s:........;'''\n'''''`xxxxxxxx~'''\n''''''''''''''''''\n\nmessage Normalised threat rating: *********************************************************\n\n§!@£±%\"&*™''''''''''''\n'''''{-----}{-----}'''\n'''2e:p...$;:.$...;qqq\n''''':$i...´®..$i.;qqq\n'''¬¬:$.$$.$$.$.$.;qqq\n'''¬¬:....$..i.$$$;qqq\n'''¬¬:...i.$....i.;qqq\n'''¬¬:$.$$$$.$.$..;qqq\n''''':$$...$$$$...;qqq\n''''':$....$$$$$i$;qqq\n'0/4m:.....$$$$$$$;'''\n'''''`xxxxxxxxxxxx~'''\n''''''''''''''''''''''\n\nmessage We come now to the final test. Consider your actions carefully, sapient one.\n\n'''''''''''''''''''''''{--}''''\n''''''''''''''''''''''':u$;''''\n'§!@£±%\"&*™'''''''''''':$$;qqq'\n'''''{------------}'''':$o;qqq'\n'''9e:p.....√.....´}''':u$;qqq'\n''''':˙.˙.˙.t.˙.˙.˙´--}:$$;qqq'\n'¬¬¬¬:.˙.˙.˙.˙.˙.˙....´®$o;qqq'\n'¬¬¬¬†__________∑........œ¥qqq'\n'¬¬¬¬{----------®........´}qqq'\n'¬¬¬¬:...˙...˙...˙....œ∑$o;qqq'\n''''':˙.˙.˙.t.˙.˙.˙œ__¥:$$;qqq'\n'4/0m:.˙...˙√..˙..œ¥''':u$;qqq'\n'''''`xxxxxxxxxxxx~'''':$o;qqq'\n''''''''''''''''''''''':$$;''''\n'''''''''''''''''''''''`xx~''''\n\nmessage Testing is now complete. Your risk rating has been calculated as...\nmessage CRITICAL\nmessage Dangerously intelligent life cannot be permitted to propagate unchecked within the galaxy. You must now decide on behalf of your civilisation whether to 1) Sacrifice your freedoms and submit to our direct control, or 2) Face annihilation.\n\n§!''&{--}'\n'0/1s:¡p;q\n''''':¢.;'\n'''''†__¥'\n\nmessage ERROR: Species designated 'homo sapiens' came under supervision 2500 years ago. Access to this system should not have been allowed. Our physical agents in the region may have been compromised.\nmessage Dispatching scout party to Orion Spur, Sol system.\nmessage ETA: 5 years\nmessage Shutting down...\n\n",["tick",3,3,4,2,2,"tick",4,3,3,4,3,"tick",0,4,3,4,2,4,"tick",1,0,4,0,4,1,4,"tick",2,4,1,4,0,4,1,"tick",1,4,1,2,2,2,1,"tick",2,3,2,4,"tick","tick","tick","tick","tick"],"numbercover shadow void zero:0,void:1,1,1,cross void:2,1,2,1,1,numbercover one void:3,1,pauseicon void:4,1,three void:5,1,six void:6,1,1,\nnumbercover two void:7,1,1,1,slash void:8,1,8,1,1,numbercover three void:9,1,fourrevert void zero:10,1,seven void:11,1,5,1,1,\nfour numbercover void:12,1,time timerevert void:13,1,violet violetrevert void:14,1,omega omegarevert void:15,1,1,five numbercover void:16,bordertopleft void:17,borderleft void:18,18,18,18,18,borderbuttonbl void:19,1,\nnumbercover six void:20,bordertop void:21,rockactive:22,shield:23,23,22,chariot chariotrevert shield:24,buttonactive rockactive:25,1,numbercover seven void:26,21,omega rockactive squarerevert:27,omegarevert shield violet:28,22,omega omegarevert shield:29,22,buttonactive invisiplayer playmode rockactive:30,1,\neight numbercover void:31,21,chariotrevert shield:32,23,rockactive squarerevert:33,23,24,25,1,nine numbercover void:34,21,27,33,28,22,22,25,1,\n1,21,28,33,23,23,29,25,1,1,21,23,23,24,22,22,25,1,\n1,21,22,rockactive square squarerevert:35,23,22,29,25,1,1,21,22,23,22,24,23,25,1,\n1,21,24,22,29,22,23,25,1,1,bordertopright void:36,borderright void:37,37,37,37,37,borderbuttonbr void:38,1,\n1,1,toolbox:39,39,39,39,39,1,1,1,1,39,39,39,39,39,1,1,\n",16,"1627779484111.158"] ], [ `gallery: The Flames`, - ["title The Flames\nauthor Rosden Shadow [Mark Signorelli]\nhomepage rosden.itch.io\n\n========\nOBJECTS\n========\n\nBackground\n#5BB205 #34960A #18820A\n11010\n20101\n02010\n20201\n02022\n\nfilledground\n#AD6A06 #7F370B #59160A \n11010\n20101\n02010\n20201\n02022\n\nTarget\nDarkBlue\n(\n.....\n.000.\n.0.0.\n.000.\n.....\n)\n.....\n.....\n.....\n.....\n.....\n\nWall\n#787878 #444444 #a7a6a6\n02222\n10002\n10002\n10002\n11110\n\nwoodWall\n#7F370B #59160A #C67B09\n02222\n10002\n10002\n10002\n11110\n\nwoodWallx\n#7F370B #59160A #C67B09\n02222\n10002\n10002\n10002\n11110\n\nPlayer\n#EE1C24 white blue\n.011.\n.012.\n.011.\n.000.\n.0.0.\n(\n#62199E #A91ABF\n.011.\n01111\n01111\n01.01\n...01)\n\nPlayer1\n#62199E #A91ABF\n.011.\n01111\n01111\n01.01\n01...\nPlayerx1\n#62199E #A91ABF\n.011.\n01111\n01111\n01.01\n01...\n\nPlayerx2\n#62199E #A91ABF\n.011.\n01111\n01111\n01.01\n01...\n\n\n\nCrate\n#BA4D0E #91290D #F99807\n.222.\n10022\n10002\n11002\n.111.\n\nfireCrate1\n#BA4D0E #91290D #F99807 red yellow\n.3.3.\n10022\n10002\n11002\n.111.\n\nfireCrate2\n#BA4D0E #91290D #F99807 red yellow\n..3..\n.343.\n10002\n11002\n.111.\n\nfireCrate3\n#BA4D0E #91290D #F99807 red yellow\n.3.3.\n34343\n43434\n11002\n.111.\n\nfireCrate4\n#BA4D0E #91290D #F99807 red yellow\n..3..\n.343.\n34343\n43434\n.111.\n\n\n(\nfireper1\nred yellow\n.0.0.\n01010\n10101\n01010\n.010.\n\nfireper2\nred yellow\n..0..\n.010.\n01010\n10101\n.101.\n)\n\nfireper1\nred yellow\n00000\n01110\n01010\n01110\n00000\n\nfireper2\nred yellow\n00000\n00000\n00100\n00000\n00000\n\nfireper1x\nred yellow\n00000\n01110\n01010\n01110\n00000\n\nfireper2x\nred yellow\n00000\n00000\n00100\n00000\n00000\n\nfireper1xx\nred yellow\n00000\n01110\n01010\n01110\n00000\n\nfireper2xx\nred yellow\n00000\n00000\n00100\n00000\n00000\n\nfirex1\nred \n\n\nfirex2\nred\n\nfirex3\nred \n\n\nfirex4\nred\n\nfirex5\nred \n\nfirex6\nred\n\nash\nblack #333333\n.....\n.....\n..1..\n.011.\n00001\n\npit\nblack #7F370B\n11111\n11111\n00000\n00000\n00000\n\n\nbarrel\nred #444444 black yellow\n.0.0.\n.303.\n.211.\n.211.\n.222.\n\nbarrel1\nred #444444 black yellow\n..0..\n.030.\n.211.\n.211.\n.222.\n\nbarrelx1\nred \n\n\nbarrelx2\nred \n\nendflame\nblack \n.....\n.....\n.....\n.....\n.....\n\nflametrigger\nblack \n.....\n.....\n.....\n.....\n.....\n\nend1\nblack \n.....\n.....\n.....\n.....\n.....\n\nend2\nblack \n.....\n.....\n.....\n.....\n.....\n\nend3\nblack \n.....\n.....\n.....\n.....\n.....\n\nsrs\nblack \n.....\n.....\n.....\n.....\n.....\n\nbedup\nwhite #D7D7D7 #99122D #EE1C24 \n00000\n00000\n11111\n23333\n23333\n\nbeddown\nwhite #D7D7D7 #99122D #EE1C24 \n23333\n23333\n23333\n23333\n22222\n\ntable \n#FFC300 #BA6803 #FFF465\n22222\n00000\n0...0\n0...0\n0...0\n\nchair\n #BA6803 #FFC300 #FFF465\n.2...\n.2...\n.2...\n.211.\n.2.1.\n\nchair2\n #BA6803 #FFC300 #FFF465\n...2.\n...2.\n...2.\n.112.\n.1.2.\n\ncupboard\n#FFC300 #BA6803 black #FFF465\n.333.\n10003\n10003\n11110\n0...0\n=======\nLEGEND\n=======\n\n(Player = Player1 or fireper1x)\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\n(O = endarea)\ne = Target\n\nf = fireper1\nk = fireper2\n\nw = woodwall\nr=woodwallx\nd = pit\nj= filledground\nl = filledground and player\ng = pit and Target\nb=barrel\nx=barrel1\nt=barrel1 and target\na=ash\no=ash and player\n\ny=endflame and filledground\n%=endflame and filledground and end1 and flametrigger and srs\ni=endflame and filledground and flametrigger\nq=filledground and endflame and player\nu=filledground and target\n\nn=bedup\nm=beddown\nz=table and filledground\nc=chair and filledground\nh=chair2 and filledground\n&=cupboard and filledground\n\n\n=======\nSOUNDS\n=======\n\nplayer MOVE 35431509(97509308)\nbarrel MOVE 61477902\nbarrel1 MOVE 61477902\n\n\nCrate MOVE 36772507\n\nsfx1 2322302 (flame)\nsfx2 78713302(5964902) (woodwall flame)\nsfx3 47353904 (pit fill)\n\nsfx4 77411903 (test sound)\n\nshowmessage 42200307\nclosemessage 42200307\n\nstartgame 9611309\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nfilledground\nTarget(, endarea)\nflametrigger\nash,endflame\nPlayer,player1, Wall, woodwall,woodwallx, Crate, fireper1,fireper2,firex3,firex4,firex1,firex2,playerx1,playerx2,pit,barrel,barrel1,barrelx1,barrelx2,firecrate1,firecrate2,firecrate3,firecrate4,bedup,beddown,table,chair,chair2,cupboard\nend1,end2,end3\nfireper1x,fireper2x,fireper1xx,fireper2xx,firex5,firex6\nsrs\n\n======\nRULES\n======\n\n\n([> player][ player1] -> [> player] [> player1])\n\n(Horizontal [< player] -> [< player1]))\n\n[flametrigger|player] [ woodwallx] ->[flametrigger|player] [fireper1x]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n([ > Player1 | Crate ] -> [ > Player1 | > Crate ])\n\n[ > Player | barrel ] -> [ > Player | > barrel ]\n[ > Player | barrel1 ] -> [ > Player | > barrel1 ]\n\n[ > Player | firecrate1 ] -> [ > Player | > firecrate1 ] \n[ > Player | firecrate2 ] -> [ > Player | > firecrate2 ] \n[ > Player | firecrate3 ] -> [ > Player | > firecrate3 ] \n[ > Player | firecrate4 ] -> [ > Player | > firecrate4 ]\n\n[> crate | pit]-> [|filledground] sfx3\n[> firecrate1 | pit]-> [|filledground]sfx3\n[> firecrate2 | pit]-> [|filledground]sfx3\n[> firecrate3 | pit]-> [|filledground]sfx3\n[> firecrate4 | pit]-> [|filledground]sfx3\n\n(ee\n[> crate | pitx]-> [|filledground] sfx3\n[> firecrate1 | pitx]-> [|filledground]sfx3\n[> firecrate2 | pitx]-> [|filledground]sfx3\n[> firecrate3 | pitx]-> [|filledground]sfx3\n[> firecrate4 | pitx]-> [|filledground]sfx3\n)\n[player|fireper1x]->[|fireper1x]\n[player|fireper2x]->[|fireper2x]\n\n\n[barrel | woodwall] ->[barrel|fireper1]\n[barrel1 | woodwall] ->[barrel1|fireper1]\n\n\n\n[fireper2 | woodwall] ->[fireper2|fireper1]\n[fireper2x | woodwall] ->[fireper2x|fireper1x]\n\n[fireper2x | endflame] ->[fireper2x|fireper1x]\n\n([firecrate1 | woodwall] ->[firecrate1|fireper1])\n([firecrate1 |crate] -> [firecrate1|firecrate1])\n\n[firecrate2 | woodwall] ->[firecrate2|fireper1]\n[firecrate2 |crate] -> [firecrate2|firecrate1]\n\n[firecrate3 | woodwall] ->[firecrate3|fireper1]\n[firecrate3 |crate] -> [firecrate3|firecrate1]\n\n[firecrate4 | woodwall] ->[firecrate4|fireper1]\n[firecrate4 |crate] -> [firecrate4|firecrate1]\n\n(\n[Action Player | crate] -> [Action Player |fire]\n[Action Player1 | crate] -> [Action Player1 |fire])\n\n\n\nlate [end3|fireper1x]-> [target|player]\nlate [srs|target] -> [fireper1xx|target]\n\nlate [end2] -> [end3]\nlate [end1|fireper2x]->[end2|fireper2x]\n\nlate [firecrate4] -> [ash] sfx1\nlate [firecrate3] -> [firecrate4] sfx1\nlate [firecrate2] -> [firecrate3] sfx1\nlate [firecrate1] -> [firecrate2] sfx1\n\nlate [barrel|crate] -> [barrel|firecrate1] sfx1\nlate [barrel1|crate] -> [barrel1|firecrate1] sfx1\n\nlate [fireper2 |crate] -> [fireper2|firecrate1] sfx1\nlate [fireper1 |crate] -> [fireper1|firecrate1] sfx1\n\nlate [fireper1] -> [firex1]\nlate [fireper2] -> [firex2]\nlate [firex1] -> [fireper2] \nlate [firex2] -> [fireper1] \n\nlate [fireper1x] -> [firex3]\nlate [fireper2x] -> [firex4]\nlate [firex3] -> [fireper2x] \nlate [firex4] -> [fireper1x] \n\nlate [fireper1xx] -> [firex5]\nlate [fireper2xx] -> [firex6]\nlate [firex5] -> [fireper2xx] \nlate [firex6] -> [fireper1xx] \n\nlate [barrel] -> [barrelx1]\nlate [barrel1] -> [barrelx2]\nlate [barrelx1] -> [barrel1]\nlate [barrelx2] -> [barrel]\n(\nlate [player] -> [playerx1]\nlate [player1] -> [playerx2]\nlate [playerx1] -> [player1]\nlate [playerx2] -> [player])\n\n==============\nWINCONDITIONS\n==============\n\nsome Player on target\n\n(some Player1 on target)\n(All Player on endarea)\n\n=======\nLEVELS\n=======\n\nmessage zzz..z.zz\n\nmessage z.zzzz.z.z\n\nmessage zz.zz..z.z\n\nmessage z....(blink) (blink)\n\n..........\n.wwwwwwww.\n.wnjjj&jw.\n.wmljjjjw#\n.wjjjjjjje\n.wjczhjjw#\n.wjjjjjjw.\n.wwwwwwww.\n..........\n\n..........\nwwwwwww...\nnjjj&jw..e\nmjjjjjw###\njjjjjjle..\njczhjjw###\njjjjjjw...\nwwwwwww...\n..........\n\n..........\nwwwww.....\njj&jw..e..\njjjjw#####\njjjjjpe...\nzhjjw#####\njjjjw.....\nwwwww.....\n..........\n\n........##\nwww.....#.\n&jw.....#.\njjw######.\njjj.pe....\njjw######b\njjw.....#.\nwww.....#.\n........##\n\n......####\nw.....#...\nw.....#...\nw######...\nj..pee....\nw######x.*\nw.....#...\nw.....#.##\n......####\n\nmessage so I am on a journey to ignite the flames\n\n....######\n....#...##\n....#....#\n#####....*\n..pe.....#\n#####b.*.#\n....#...##\n....#.####\n....######\n\n..########\n..#...####\n..#....###\n###....**#\n.pe....#..\n###x.*.#..\n..#...##..\n..#.####..\n..########\n\n##########\n#...######\n#....#####\n#....**###\npe...#...#\n#b.*.#...#\n#...##...e\n#.####...#\n##########\n\nmessage 1 of 10\n\n##########\n#...######\n#....#####\n#....**###\n.p...#...#\n#b.*.#...#\n#...##...e\n#.####...#\n##########\n\n(move)\n########..\n..######..\n...#####..\n..aaa###..\n...#...#..\n...#...###\n..##...pe.\n####...##.\n##########\n\n######....\n######....\n.#####....\naaa###....\n.#...#....\n.#...####.\n##....pe##\n##...##...\n##########\n\n####......\n####......\n####......\na###......\n...#......\n...####...\n.....p####\n...##.e...\n##########\n\n##......##\n##......#w\n##......#w\n##......#.\n.#......#.\n.####...#.\n....######\n.##.pe....\n##########\n\nmessage even though the fire fills me with terror\n\n......####\n......#www\n......#www\n......#...\n......#..*\n###...#...\n..######..\n#..pe....#\n##########\n\n....######\n....#www##\n....#wwwww\n....#.....\n....#..*..\n#...#...x.\n######..##\n..pe...###\n##########\n\n..########\n..#www##.*\n..#wwwwwdw\n..#.....b.\n..#..*....\n..#...b..#\n####..####\n.pe..#####\n##########\n\n##########\n#www##.*d.\n#wwwwwdw##\n#.....x.##\n#..*....##\n#...x..###\n##..######\npe.#######\n##########\n\nmessage 2 of 10\n##########\n#www##.*de\n#wwwwwdw##\n#.....b.##\n#..*....##\n#...b..###\n##..######\n.p.#######\n##########\n\n(move)\n\n##########\nkf##..jpe.\nfkfkjw####\n......##..\n......##..\n.....###..\n.x######..\n.#######..\n########..\n\n##########\n##..j.pe..\nkfjw#####.\n....##..#.\n....##..#.\n...###..#.\n######..#.\n######..#.\n######..##\n\n#########.\n..j..pe.#.\njw#####.#.\n..##..#.#.\n..##..#.#.\n.###..#.#.\n####..#.##\n####..#...\n####..####\n\n#######.#w\nj...pe#.#w\n#####.#.ww\n##..#.#.ww\n##..#.#.ww\n##..#.#.ww\n##..#.##w.\n##..#.....\n##..######\n\n\nmessage I was scared by what the fire could seem to claim\n\n#####.#www\n...p#.#w..\n###.#.ww.w\n..#.#.ww..\n..#.#.ww.w\n..#.#.ww.w\n..#.##w.*w\n..#.e.....\n..########\n\n\n###.#wwwww\n..#.#w....\n#.#.ww.www\n#.#.ww....\n#.#.ww.www\n#.#.ww.w..\n#.##w.*www\n#.pee.....\n##########\n\n\n#.#wwwwwww\n#.#w....*.\n#.ww.wwww.\n#.ww....w.\n#.ww.wwww.\n#.ww.w....\n##w.*www..\n.pe.......\n##########\n\n#wwwwwww##\n#w....*..g\nww.wwww..#\nww....w..#\nww.wwww..#\nww.w.....#\nw.*www.b.#\npe.......#\n##########\n\nmessage 3 of 10\n#wwwwwww##\n#w....*..g\nww.wwww..#\nww....w..#\nww.wwww..#\nww.w.....#\nw.*www.b.#\n.p.......#\n##########\n\n(move)\nfkfkfk####\n.......le.\n.kfkf..###\na...k..#..\n.kfkf..#..\n.f.....#..\n.kfk...#..\n.......#..\n########..\n\nkfkf######\n.....jpe..\nkfk..#####\n..f..#...#\nkfk..#....\n.....#....\nkf...#....\n.....#....\n######....\n\nfk########\n...j.pe..#\nf..#####..\nk..#...###\nf..#......\n...#......\n...#......\n...#......\n####......\n\n##########\n.j..pe.##.\n.#####....\n.#...####.\n.#......#.\n.#......#.\n.#......#.\n.#......#.\n##......##\n\nmessage all my excuses made the fire seem scarier\n\n##########\n...pe##...\n####.....w\n...####...\n......#..w\n......#.**\n......#..w\n......#..w\n......####\n\n##########\n..p##.....\n##.e...www\n.####.....\n....#..w.#\n....#.**..\n....#..w..\n....#..ww.\n....######\n\n##########\n.##.......\n.pe..wwww.\n###.......\n..#..w.###\n..#.**..##\n..#..w..b.\n..#..ww...\n..########\n\n##########\n#.......##\npe.wwww.*e\n#........#\n#..w.###.#\n#.**..##.#\n#..w..b..#\n#..ww....#\n##########\n\nmessage 4 of 10\n##########\n#.......##\n.p.wwww.*e\n#........#\n#..w.###.#\n#.**..##.#\n#..w..b..#\n#..ww...##\n##########\n\n(move)\n########..\n......####\n.kfkf..pe.\n..a...a###\n.k.###.#..\n...b##.#..\n.w.....#..\n.ww...##..\n########..\n\n\n######....\n....######\nkfk..ape..\na...a#####\n.###.#...#\n.x##.#...#\n.....#...#\nw...##....\n######....\n\n\n####......\n..########\nf..a.pe..#\n..a#####.#\n##.#...#.#\n##.#...#..\n...#...###\n..##......\n####......\n\n\n##......##\n##########\n.a..pe.###\na#####.##.\n.#...#.##.\n.#...#....\n.#...#####\n##......##\n##......##\n\nmessage I avoided the flames until it was too much to bear\n\n......###w\n########*.\n...pe###..\n####.##...\n...#.##.*.\n...#......\n...######.\n......###.\n......####\n\n....###www\n######*...\n..p###..ww\n##.##....w\n.#.##.*.*w\n.#.e......\n.######.*.\n....###...\n....######\n\n..###wwwww\n####*...d.\n.###..wwww\n.##....www\n.##.*.*www\n.pe......w\n#####.*.b.\n..###.....\n..########\n\n###wwwwww#\n##*...d..g\n##..wwwwww\n#....wwww#\n#.*.*wwww#\npe.....ww#\n###.*.x.w#\n###.....w#\n##########\n\nmessage 5 of 10\n###wwwwww#\n##*...d..g\n##..wwwwww\n#....wwww#\n#.*.*wwww#\n.P.....ww#\n###.*.b.w#\n###.....w#\n##########\n(move)\n\n#wwwwww###\na...j..le.\na.wwwwww##\n...wwww#..\n...wwww#..\n.....ww#..\n#.....w#..\n#.....w#..\n########..\n\nwwwww#####\n..j..jpe..\nwwwwww####\n.wwww#...#\n.wwww#...#\n...ww#...#\n....w#...#\n....w#...#\n######....\n\nwww#######\nj..j.pe..#\nwwww####.#\nwww#...#.#\nwww#...#.#\n.ww#...#.#\n..w#...#..\n..w#...###\n####......\n\nw#########\n.j..pe.###\nww####.##.\nw#...#.##.\nw#...#.##.\nw#...#.##.\nw#...#....\nw#...####.\n##......##\n\nmessage now its time to start controlling the fire\n\n##########\n...pe###..\n####.##...\n...#.##...\n...#.##...\n...#.##...\n...#......\n...####.b.\n......####\n\n##########\n..p###....\n##.##.....\n.#.##.....\n.#.##...##\n.#.##...##\n.#.e.....#\n.####.x..#\n....######\n\n##########\n.###......\n.##.....*.\n.##......*\n.##...##*.\n.##...##.*\n.pe....#*.\n###.b..#..\n..########\n\n##########\n##......##\n#.....*..#\n#......*.#\n#...##*..#\n#...##.*.#\npe...#*..#\n#.x..#..*e\n##########\n\nmessage 6 of 10\n##########\n##......##\n#.....*..#\n#......*.#\n#...##*..#\n#...##.*.#\n.p...#*..#\n#.b..#..*e\n##########\n\n(move)\n########..\n.a....##..\n.....a.#..\n.......#..\na.##...#..\n..##a..#..\n...#...###\n...#.a.oe.\n##########\n\n######....\n....##....\n...a.#....\n.....#....\n##...#...#\n##a..#...#\n.#...#####\n.#.a.ape..\n##########\n\n####......\n..##......\n.a.#......\n...#......\n...#...###\na..#...#..\n...#####.#\n.a.a.pe..#\n##########\n\n##......##\n##......##\n.#......##\n.#......##\n.#...####.\n.#...#....\n.#####.##.\n.a..pe.###\n##########\n\nmessage now its time to get ready and prepare\n\n......####\n......####\n......####\n......##..\n...####...\n...#....b.\n####.##...\n...pe###..\n##########\n\n....######\n....#####*\n....####..\n....##..*.\n.####...w.\n.#.e..x.*.\n##.##...w.\n..p###....\n##########\n\n..########\n..#####*.d\n..####...#\n..##..*...\n###...w...\n.pe.b.*.*.\n.##...w...\n.###.....#\n##########\n\n##########\n#####*.ddg\n####...###\n##..*...##\n#...w...##\npex.*.*.##\n#...w...##\n##.....###\n##########\n\nmessage 7 of 10\n##########\n#####*.ddg\n####...###\n##..*...##\n#...w...##\n.pb.*.*.##\n#...w...##\n##.....###\n##########\n(move)\n\n##########\n###a.jjle.\n##b..#####\n......##..\n..f...##..\n......##..\n..w...##..\n.....###..\n########..\n\n##########\n#a.jjjpe..\nx..#######\n....##...#\nk...##...#\n....##...#\nw...##...#\n...###....\n######....\n\n##########\n.jjj.pee.#\n.#######.#\n..##...#.#\n..##...#.#\n..##...#..\n..##...###\n.###......\n####......\n\n########ww\njj..pe.#w#\n######.#w#\n##...#.#ww\n##...#.###\n##...#....\n##...####.\n##......##\n##......##\n\nmessage the time is gone to just aspire\n\n######wwww\n...pe#w##.\n####.#w##.\n...#.#www.\n...#.###w.\n...#...b..\n...####...\n......##..\n......####\n\n####wwwwww\n..p#w##...\n##.#w##...\n.#.#www.*.\n.#.###w...\n.#.e.x....\n.####.....\n....##....\n....######\n\n##wwwwwwww\n.#w##.....\n.#w##.....\n.#www.*.*.\n.###w.....\n.peb......\n###......d\n..##....dd\n..########\n\nwwwwwwwwww\nw##......w\nw##......w\nwww.*.*..w\n##w......w\npt.......w\n#......dww\n##....dd*g\n##########\n\nmessage 8 of 10\nwwwwwwwwww\nw##......w\nw##......w\nwww.*.*..w\n##w......w\n.pb......w\n#......dww\n##....dd*g\n##########\n\n(move)\n\nfkfkfkfk..\n#......f..\n#......k..\nk......f..\nf......k..\n.b.....f..\n.....jfk##\n....dj.le.\n##########\n\nkfkfkf....\n.....k....\n.....f....\n.....k...#\n.....f...#\n.....k...#\n...jkf####\n..dj.jpe..\n##########\n\nfkfk......\n...f......\n...k......\n...f...###\n...k...#..\n...f...#.#\n.jfk####.#\ndj.j.pe..#\n##########\n\nkf......##\n.k......##\n.f......##\n.k...####.\n.f...#....\n.k...#.##.\nkf####.###\n.j..pe.###\n##########\n\nmessage no more excuses for playing unnecessary games\n\n......####\n......###b\n......###.\n...####...\n...#......\n...#.##...\n####.####.\n...pe####.\n##########\n\n....######\n....###b#.\n....###...\n.####.....\n.#.e.....*\n.#.##...**\n##.####..*\n..p####...\n##########\n\n..########\n..###b#..#\n..###.....\n###.......\n.pe....***\n.##...**.*\n.####..***\n.####...wd\n########ww\n\n##########\n###b#..###\n###.....##\n#........#\npe...***.#\n#...**.*.#\n###..***w#\n###...wd*e\n######www#\n\nmessage 9 of 10\n##########\n###b#..###\n###.....##\n#........#\n.p...***.#\n#...**.*.#\n###..***w#\n###...wd*e\n######www#\n\n(move)\n\n########..\n#b#..###..\n#aa...##..\n.....a.#..\n....aa.#..\n....a..#..\n#...a.f###\n#...kj.oe.\n####fkf###\n\n######....\n#..###....\na...##....\n...a.#....\n..aa.#....\n..a..#...#\n..a.k#####\n..fj.ape..\n##kfk#####\n\n####......\n.###......\n..##......\n.a.#......\naa.#......\na..#...###\na.f#####..\nkj.a.pe..#\nfkf#######\n\n##......##\n##......##\n##......##\n.#......##\n.#......#.\n.#...####.\nk#####....\n.a..pe.###\nk#########\n\nmessage I will avoid my fears\n\n......####\n......####\n......####\n......###.\n......#...\n...####...\n####....*.\n...pe###..\n##########\n\n....######\n....####bb\n....####bb\n....###.bb\n....#....b\n.####...b.\n##.e..*..b\n..p###..bb\n##########\n\n..########\n..####xx..\n..####xx.x\n..###.xx.x\n..#....x..\n###...x.xx\n.pe.*..x..\n.###..xx##\n##########\n\n##########\n####bb..de\n####bb.b.w\n###.bb.b.w\n#....b...w\n#...b.bb.w\npe*..b...w\n##..bb####\n##########\n\nmessage 10 of 10\n##########\n####bb..de\n####bb.b.w\n###.bb.b.w\n#....b...w\n#...b.bb.w\n.p*..b...w\n##..bb####\n##########\n\n(move)\n##########\n##xx..jpe.\n##xx..xk##\n#xxx...f.#\nx......k.#\n......xf.#\n.....xxk.#\n..xx####.#\n########.#\n\n##########\nbb..j.pe.#\nbb..bf##.#\nbb...k.#.#\n.....f.#.#\n....bk.#.#\n...bbf.#.#\nbb####.#.#\n######.#.#\n\n########..\n..j..pe#..\n..xk##.#..\n...f.#.#..\n...k.#.#..\n..xf.#.#..\n.xxk.#.#..\n####.#.#..\n####.#.#..\n\n\n######....\nj...p#....\nbf##e#....\n.k.#.#....\n.f.#.#....\nbk.#.#....\nbf.#.#....\n##.#.#....\n##.#.#....\n\nxk##p#....\n.f.#e#....\n.k.#.#....\nxf.#.#....\nxk.#.#....\n##.#.#....\n##.#.#....\n...#.#....\nwwwwywwwww\n\n.k.#p#....\n.f.#e#....\nbk.#.#....\nbf.#.#....\n##.#.#....\n##.#.#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\n \n message I will be consumed by these flames\n \n.k.#p#....\nxf.#e#....\nxk.#.#....\n##.#.#....\n##.#.#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\n\n\nbk.#p#....\nbf.#e#....\n##.#.#....\n##.#.#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\n\nxk.#p#....\n##.#e#....\n##.#.#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\n\n##.#p#....\n##.#e#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\n##.#p#....\n...#e#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\n...#p#....\nwwwwuwwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\nrwwwqwwwwr\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwiii%%iiiw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nrwwwwwwwwr\n\n\n message I will become more than I am\nmessage THE END\n(\n#www######\n#*.wwwwww#\n#.d...d.de\n#p.###b.b#\n#...##...#\n#.b....*.#\n##..*.*..#\n#####...##\n##########)\n(\n##########\n##.*.....@\n#..wwww.##\n#p.ww...##\n#.....*.##\n#.*.www.##\n#...###w##\n##.b.www##\n####www###)\n\n\n\n\n\n", [3, 0, 0, 3, 3, 0, 3, 3, 2, 2], "background wall:0,0,0,0,0,background:1,0,0,0,0,\n0,0,0,1,1,1,0,0,0,0,\n0,1,1,1,1,1,0,0,0,0,\n1,1,background barrel:2,1,1,0,0,0,1,1,\nbackground fireper1:3,ash background:4,3,1,0,0,background crate:5,1,4,1,\n1,1,1,0,0,1,1,1,background player:6,5,\n1,1,0,0,background pit:7,0,1,1,1,1,\n0,0,0,7,0,0,0,0,0,0,\n0,0,background pit target:8,0,0,0,0,0,0,0,\n", 80, "1627779570245.4102"] + ["title The Flames\nauthor Rosden Shadow [Mark Signorelli]\nhomepage rosden.itch.io\n\n========\nOBJECTS\n========\n\nBackground\n#5BB205 #34960A #18820A\n11010\n20101\n02010\n20201\n02022\n\nfilledground\n#AD6A06 #7F370B #59160A \n11010\n20101\n02010\n20201\n02022\n\nTarget\nDarkBlue\n(\n.....\n.000.\n.0.0.\n.000.\n.....\n)\n.....\n.....\n.....\n.....\n.....\n\nWall\n#787878 #444444 #a7a6a6\n02222\n10002\n10002\n10002\n11110\n\nwoodWall\n#7F370B #59160A #C67B09\n02222\n10002\n10002\n10002\n11110\n\nwoodWallx\n#7F370B #59160A #C67B09\n02222\n10002\n10002\n10002\n11110\n\nPlayer\n#EE1C24 white blue\n.011.\n.012.\n.011.\n.000.\n.0.0.\n(\n#62199E #A91ABF\n.011.\n01111\n01111\n01.01\n...01)\n\nPlayer1\n#62199E #A91ABF\n.011.\n01111\n01111\n01.01\n01...\nPlayerx1\n#62199E #A91ABF\n.011.\n01111\n01111\n01.01\n01...\n\nPlayerx2\n#62199E #A91ABF\n.011.\n01111\n01111\n01.01\n01...\n\n\n\nCrate\n#BA4D0E #91290D #F99807\n.222.\n10022\n10002\n11002\n.111.\n\nfireCrate1\n#BA4D0E #91290D #F99807 red yellow\n.3.3.\n10022\n10002\n11002\n.111.\n\nfireCrate2\n#BA4D0E #91290D #F99807 red yellow\n..3..\n.343.\n10002\n11002\n.111.\n\nfireCrate3\n#BA4D0E #91290D #F99807 red yellow\n.3.3.\n34343\n43434\n11002\n.111.\n\nfireCrate4\n#BA4D0E #91290D #F99807 red yellow\n..3..\n.343.\n34343\n43434\n.111.\n\n\n(\nfireper1\nred yellow\n.0.0.\n01010\n10101\n01010\n.010.\n\nfireper2\nred yellow\n..0..\n.010.\n01010\n10101\n.101.\n)\n\nfireper1\nred yellow\n00000\n01110\n01010\n01110\n00000\n\nfireper2\nred yellow\n00000\n00000\n00100\n00000\n00000\n\nfireper1x\nred yellow\n00000\n01110\n01010\n01110\n00000\n\nfireper2x\nred yellow\n00000\n00000\n00100\n00000\n00000\n\nfireper1xx\nred yellow\n00000\n01110\n01010\n01110\n00000\n\nfireper2xx\nred yellow\n00000\n00000\n00100\n00000\n00000\n\nfirex1\nred \n\n\nfirex2\nred\n\nfirex3\nred \n\n\nfirex4\nred\n\nfirex5\nred \n\nfirex6\nred\n\nash\nblack #333333\n.....\n.....\n..1..\n.011.\n00001\n\npit\nblack #7F370B\n11111\n11111\n00000\n00000\n00000\n\n\nbarrel\nred #444444 black yellow\n.0.0.\n.303.\n.211.\n.211.\n.222.\n\nbarrel1\nred #444444 black yellow\n..0..\n.030.\n.211.\n.211.\n.222.\n\nbarrelx1\nred \n\n\nbarrelx2\nred \n\nendflame\nblack \n.....\n.....\n.....\n.....\n.....\n\nflametrigger\nblack \n.....\n.....\n.....\n.....\n.....\n\nend1\nblack \n.....\n.....\n.....\n.....\n.....\n\nend2\nblack \n.....\n.....\n.....\n.....\n.....\n\nend3\nblack \n.....\n.....\n.....\n.....\n.....\n\nsrs\nblack \n.....\n.....\n.....\n.....\n.....\n\nbedup\nwhite #D7D7D7 #99122D #EE1C24 \n00000\n00000\n11111\n23333\n23333\n\nbeddown\nwhite #D7D7D7 #99122D #EE1C24 \n23333\n23333\n23333\n23333\n22222\n\ntable \n#FFC300 #BA6803 #FFF465\n22222\n00000\n0...0\n0...0\n0...0\n\nchair\n #BA6803 #FFC300 #FFF465\n.2...\n.2...\n.2...\n.211.\n.2.1.\n\nchair2\n #BA6803 #FFC300 #FFF465\n...2.\n...2.\n...2.\n.112.\n.1.2.\n\ncupboard\n#FFC300 #BA6803 black #FFF465\n.333.\n10003\n10003\n11110\n0...0\n=======\nLEGEND\n=======\n\n(Player = Player1 or fireper1x)\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\n(O = endarea)\ne = Target\n\nf = fireper1\nk = fireper2\n\nw = woodwall\nr=woodwallx\nd = pit\nj= filledground\nl = filledground and player\ng = pit and Target\nb=barrel\nx=barrel1\nt=barrel1 and target\na=ash\no=ash and player\n\ny=endflame and filledground\n%=endflame and filledground and end1 and flametrigger and srs\ni=endflame and filledground and flametrigger\nq=filledground and endflame and player\nu=filledground and target\n\nn=bedup\nm=beddown\nz=table and filledground\nc=chair and filledground\nh=chair2 and filledground\n&=cupboard and filledground\n\n\n=======\nSOUNDS\n=======\n\nplayer MOVE 35431509(97509308)\nbarrel MOVE 61477902\nbarrel1 MOVE 61477902\n\n\nCrate MOVE 36772507\n\nsfx1 2322302 (flame)\nsfx2 78713302(5964902) (woodwall flame)\nsfx3 47353904 (pit fill)\n\nsfx4 77411903 (test sound)\n\nshowmessage 42200307\nclosemessage 42200307\n\nstartgame 9611309\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nfilledground\nTarget(, endarea)\nflametrigger\nash,endflame\nPlayer,player1, Wall, woodwall,woodwallx, Crate, fireper1,fireper2,firex3,firex4,firex1,firex2,playerx1,playerx2,pit,barrel,barrel1,barrelx1,barrelx2,firecrate1,firecrate2,firecrate3,firecrate4,bedup,beddown,table,chair,chair2,cupboard\nend1,end2,end3\nfireper1x,fireper2x,fireper1xx,fireper2xx,firex5,firex6\nsrs\n\n======\nRULES\n======\n\n\n([> player][ player1] -> [> player] [> player1])\n\n(Horizontal [< player] -> [< player1]))\n\n[flametrigger|player] [ woodwallx] ->[flametrigger|player] [fireper1x]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n([ > Player1 | Crate ] -> [ > Player1 | > Crate ])\n\n[ > Player | barrel ] -> [ > Player | > barrel ]\n[ > Player | barrel1 ] -> [ > Player | > barrel1 ]\n\n[ > Player | firecrate1 ] -> [ > Player | > firecrate1 ] \n[ > Player | firecrate2 ] -> [ > Player | > firecrate2 ] \n[ > Player | firecrate3 ] -> [ > Player | > firecrate3 ] \n[ > Player | firecrate4 ] -> [ > Player | > firecrate4 ]\n\n[> crate | pit]-> [|filledground] sfx3\n[> firecrate1 | pit]-> [|filledground]sfx3\n[> firecrate2 | pit]-> [|filledground]sfx3\n[> firecrate3 | pit]-> [|filledground]sfx3\n[> firecrate4 | pit]-> [|filledground]sfx3\n\n(ee\n[> crate | pitx]-> [|filledground] sfx3\n[> firecrate1 | pitx]-> [|filledground]sfx3\n[> firecrate2 | pitx]-> [|filledground]sfx3\n[> firecrate3 | pitx]-> [|filledground]sfx3\n[> firecrate4 | pitx]-> [|filledground]sfx3\n)\n[player|fireper1x]->[|fireper1x]\n[player|fireper2x]->[|fireper2x]\n\n\n[barrel | woodwall] ->[barrel|fireper1]\n[barrel1 | woodwall] ->[barrel1|fireper1]\n\n\n\n[fireper2 | woodwall] ->[fireper2|fireper1]\n[fireper2x | woodwall] ->[fireper2x|fireper1x]\n\n[fireper2x | endflame] ->[fireper2x|fireper1x]\n\n([firecrate1 | woodwall] ->[firecrate1|fireper1])\n([firecrate1 |crate] -> [firecrate1|firecrate1])\n\n[firecrate2 | woodwall] ->[firecrate2|fireper1]\n[firecrate2 |crate] -> [firecrate2|firecrate1]\n\n[firecrate3 | woodwall] ->[firecrate3|fireper1]\n[firecrate3 |crate] -> [firecrate3|firecrate1]\n\n[firecrate4 | woodwall] ->[firecrate4|fireper1]\n[firecrate4 |crate] -> [firecrate4|firecrate1]\n\n(\n[Action Player | crate] -> [Action Player |fire]\n[Action Player1 | crate] -> [Action Player1 |fire])\n\n\n\nlate [end3|fireper1x]-> [target|player]\nlate [srs|target] -> [fireper1xx|target]\n\nlate [end2] -> [end3]\nlate [end1|fireper2x]->[end2|fireper2x]\n\nlate [firecrate4] -> [ash] sfx1\nlate [firecrate3] -> [firecrate4] sfx1\nlate [firecrate2] -> [firecrate3] sfx1\nlate [firecrate1] -> [firecrate2] sfx1\n\nlate [barrel|crate] -> [barrel|firecrate1] sfx1\nlate [barrel1|crate] -> [barrel1|firecrate1] sfx1\n\nlate [fireper2 |crate] -> [fireper2|firecrate1] sfx1\nlate [fireper1 |crate] -> [fireper1|firecrate1] sfx1\n\nlate [fireper1] -> [firex1]\nlate [fireper2] -> [firex2]\nlate [firex1] -> [fireper2] \nlate [firex2] -> [fireper1] \n\nlate [fireper1x] -> [firex3]\nlate [fireper2x] -> [firex4]\nlate [firex3] -> [fireper2x] \nlate [firex4] -> [fireper1x] \n\nlate [fireper1xx] -> [firex5]\nlate [fireper2xx] -> [firex6]\nlate [firex5] -> [fireper2xx] \nlate [firex6] -> [fireper1xx] \n\nlate [barrel] -> [barrelx1]\nlate [barrel1] -> [barrelx2]\nlate [barrelx1] -> [barrel1]\nlate [barrelx2] -> [barrel]\n(\nlate [player] -> [playerx1]\nlate [player1] -> [playerx2]\nlate [playerx1] -> [player1]\nlate [playerx2] -> [player])\n\n==============\nWINCONDITIONS\n==============\n\nsome Player on target\n\n(some Player1 on target)\n(All Player on endarea)\n\n=======\nLEVELS\n=======\n\nmessage zzz..z.zz\n\nmessage z.zzzz.z.z\n\nmessage zz.zz..z.z\n\nmessage z....(blink) (blink)\n\n..........\n.wwwwwwww.\n.wnjjj&jw.\n.wmljjjjw#\n.wjjjjjjje\n.wjczhjjw#\n.wjjjjjjw.\n.wwwwwwww.\n..........\n\n..........\nwwwwwww...\nnjjj&jw..e\nmjjjjjw###\njjjjjjle..\njczhjjw###\njjjjjjw...\nwwwwwww...\n..........\n\n..........\nwwwww.....\njj&jw..e..\njjjjw#####\njjjjjpe...\nzhjjw#####\njjjjw.....\nwwwww.....\n..........\n\n........##\nwww.....#.\n&jw.....#.\njjw######.\njjj.pe....\njjw######b\njjw.....#.\nwww.....#.\n........##\n\n......####\nw.....#...\nw.....#...\nw######...\nj..pee....\nw######x.*\nw.....#...\nw.....#.##\n......####\n\nmessage so I am on a journey to ignite the flames\n\n....######\n....#...##\n....#....#\n#####....*\n..pe.....#\n#####b.*.#\n....#...##\n....#.####\n....######\n\n..########\n..#...####\n..#....###\n###....**#\n.pe....#..\n###x.*.#..\n..#...##..\n..#.####..\n..########\n\n##########\n#...######\n#....#####\n#....**###\npe...#...#\n#b.*.#...#\n#...##...e\n#.####...#\n##########\n\nmessage 1 of 10\n\n##########\n#...######\n#....#####\n#....**###\n.p...#...#\n#b.*.#...#\n#...##...e\n#.####...#\n##########\n\n(move)\n########..\n..######..\n...#####..\n..aaa###..\n...#...#..\n...#...###\n..##...pe.\n####...##.\n##########\n\n######....\n######....\n.#####....\naaa###....\n.#...#....\n.#...####.\n##....pe##\n##...##...\n##########\n\n####......\n####......\n####......\na###......\n...#......\n...####...\n.....p####\n...##.e...\n##########\n\n##......##\n##......#w\n##......#w\n##......#.\n.#......#.\n.####...#.\n....######\n.##.pe....\n##########\n\nmessage even though the fire fills me with terror\n\n......####\n......#www\n......#www\n......#...\n......#..*\n###...#...\n..######..\n#..pe....#\n##########\n\n....######\n....#www##\n....#wwwww\n....#.....\n....#..*..\n#...#...x.\n######..##\n..pe...###\n##########\n\n..########\n..#www##.*\n..#wwwwwdw\n..#.....b.\n..#..*....\n..#...b..#\n####..####\n.pe..#####\n##########\n\n##########\n#www##.*d.\n#wwwwwdw##\n#.....x.##\n#..*....##\n#...x..###\n##..######\npe.#######\n##########\n\nmessage 2 of 10\n##########\n#www##.*de\n#wwwwwdw##\n#.....b.##\n#..*....##\n#...b..###\n##..######\n.p.#######\n##########\n\n(move)\n\n##########\nkf##..jpe.\nfkfkjw####\n......##..\n......##..\n.....###..\n.x######..\n.#######..\n########..\n\n##########\n##..j.pe..\nkfjw#####.\n....##..#.\n....##..#.\n...###..#.\n######..#.\n######..#.\n######..##\n\n#########.\n..j..pe.#.\njw#####.#.\n..##..#.#.\n..##..#.#.\n.###..#.#.\n####..#.##\n####..#...\n####..####\n\n#######.#w\nj...pe#.#w\n#####.#.ww\n##..#.#.ww\n##..#.#.ww\n##..#.#.ww\n##..#.##w.\n##..#.....\n##..######\n\n\nmessage I was scared by what the fire could seem to claim\n\n#####.#www\n...p#.#w..\n###.#.ww.w\n..#.#.ww..\n..#.#.ww.w\n..#.#.ww.w\n..#.##w.*w\n..#.e.....\n..########\n\n\n###.#wwwww\n..#.#w....\n#.#.ww.www\n#.#.ww....\n#.#.ww.www\n#.#.ww.w..\n#.##w.*www\n#.pee.....\n##########\n\n\n#.#wwwwwww\n#.#w....*.\n#.ww.wwww.\n#.ww....w.\n#.ww.wwww.\n#.ww.w....\n##w.*www..\n.pe.......\n##########\n\n#wwwwwww##\n#w....*..g\nww.wwww..#\nww....w..#\nww.wwww..#\nww.w.....#\nw.*www.b.#\npe.......#\n##########\n\nmessage 3 of 10\n#wwwwwww##\n#w....*..g\nww.wwww..#\nww....w..#\nww.wwww..#\nww.w.....#\nw.*www.b.#\n.p.......#\n##########\n\n(move)\nfkfkfk####\n.......le.\n.kfkf..###\na...k..#..\n.kfkf..#..\n.f.....#..\n.kfk...#..\n.......#..\n########..\n\nkfkf######\n.....jpe..\nkfk..#####\n..f..#...#\nkfk..#....\n.....#....\nkf...#....\n.....#....\n######....\n\nfk########\n...j.pe..#\nf..#####..\nk..#...###\nf..#......\n...#......\n...#......\n...#......\n####......\n\n##########\n.j..pe.##.\n.#####....\n.#...####.\n.#......#.\n.#......#.\n.#......#.\n.#......#.\n##......##\n\nmessage all my excuses made the fire seem scarier\n\n##########\n...pe##...\n####.....w\n...####...\n......#..w\n......#.**\n......#..w\n......#..w\n......####\n\n##########\n..p##.....\n##.e...www\n.####.....\n....#..w.#\n....#.**..\n....#..w..\n....#..ww.\n....######\n\n##########\n.##.......\n.pe..wwww.\n###.......\n..#..w.###\n..#.**..##\n..#..w..b.\n..#..ww...\n..########\n\n##########\n#.......##\npe.wwww.*e\n#........#\n#..w.###.#\n#.**..##.#\n#..w..b..#\n#..ww....#\n##########\n\nmessage 4 of 10\n##########\n#.......##\n.p.wwww.*e\n#........#\n#..w.###.#\n#.**..##.#\n#..w..b..#\n#..ww...##\n##########\n\n(move)\n########..\n......####\n.kfkf..pe.\n..a...a###\n.k.###.#..\n...b##.#..\n.w.....#..\n.ww...##..\n########..\n\n\n######....\n....######\nkfk..ape..\na...a#####\n.###.#...#\n.x##.#...#\n.....#...#\nw...##....\n######....\n\n\n####......\n..########\nf..a.pe..#\n..a#####.#\n##.#...#.#\n##.#...#..\n...#...###\n..##......\n####......\n\n\n##......##\n##########\n.a..pe.###\na#####.##.\n.#...#.##.\n.#...#....\n.#...#####\n##......##\n##......##\n\nmessage I avoided the flames until it was too much to bear\n\n......###w\n########*.\n...pe###..\n####.##...\n...#.##.*.\n...#......\n...######.\n......###.\n......####\n\n....###www\n######*...\n..p###..ww\n##.##....w\n.#.##.*.*w\n.#.e......\n.######.*.\n....###...\n....######\n\n..###wwwww\n####*...d.\n.###..wwww\n.##....www\n.##.*.*www\n.pe......w\n#####.*.b.\n..###.....\n..########\n\n###wwwwww#\n##*...d..g\n##..wwwwww\n#....wwww#\n#.*.*wwww#\npe.....ww#\n###.*.x.w#\n###.....w#\n##########\n\nmessage 5 of 10\n###wwwwww#\n##*...d..g\n##..wwwwww\n#....wwww#\n#.*.*wwww#\n.P.....ww#\n###.*.b.w#\n###.....w#\n##########\n(move)\n\n#wwwwww###\na...j..le.\na.wwwwww##\n...wwww#..\n...wwww#..\n.....ww#..\n#.....w#..\n#.....w#..\n########..\n\nwwwww#####\n..j..jpe..\nwwwwww####\n.wwww#...#\n.wwww#...#\n...ww#...#\n....w#...#\n....w#...#\n######....\n\nwww#######\nj..j.pe..#\nwwww####.#\nwww#...#.#\nwww#...#.#\n.ww#...#.#\n..w#...#..\n..w#...###\n####......\n\nw#########\n.j..pe.###\nww####.##.\nw#...#.##.\nw#...#.##.\nw#...#.##.\nw#...#....\nw#...####.\n##......##\n\nmessage now its time to start controlling the fire\n\n##########\n...pe###..\n####.##...\n...#.##...\n...#.##...\n...#.##...\n...#......\n...####.b.\n......####\n\n##########\n..p###....\n##.##.....\n.#.##.....\n.#.##...##\n.#.##...##\n.#.e.....#\n.####.x..#\n....######\n\n##########\n.###......\n.##.....*.\n.##......*\n.##...##*.\n.##...##.*\n.pe....#*.\n###.b..#..\n..########\n\n##########\n##......##\n#.....*..#\n#......*.#\n#...##*..#\n#...##.*.#\npe...#*..#\n#.x..#..*e\n##########\n\nmessage 6 of 10\n##########\n##......##\n#.....*..#\n#......*.#\n#...##*..#\n#...##.*.#\n.p...#*..#\n#.b..#..*e\n##########\n\n(move)\n########..\n.a....##..\n.....a.#..\n.......#..\na.##...#..\n..##a..#..\n...#...###\n...#.a.oe.\n##########\n\n######....\n....##....\n...a.#....\n.....#....\n##...#...#\n##a..#...#\n.#...#####\n.#.a.ape..\n##########\n\n####......\n..##......\n.a.#......\n...#......\n...#...###\na..#...#..\n...#####.#\n.a.a.pe..#\n##########\n\n##......##\n##......##\n.#......##\n.#......##\n.#...####.\n.#...#....\n.#####.##.\n.a..pe.###\n##########\n\nmessage now its time to get ready and prepare\n\n......####\n......####\n......####\n......##..\n...####...\n...#....b.\n####.##...\n...pe###..\n##########\n\n....######\n....#####*\n....####..\n....##..*.\n.####...w.\n.#.e..x.*.\n##.##...w.\n..p###....\n##########\n\n..########\n..#####*.d\n..####...#\n..##..*...\n###...w...\n.pe.b.*.*.\n.##...w...\n.###.....#\n##########\n\n##########\n#####*.ddg\n####...###\n##..*...##\n#...w...##\npex.*.*.##\n#...w...##\n##.....###\n##########\n\nmessage 7 of 10\n##########\n#####*.ddg\n####...###\n##..*...##\n#...w...##\n.pb.*.*.##\n#...w...##\n##.....###\n##########\n(move)\n\n##########\n###a.jjle.\n##b..#####\n......##..\n..f...##..\n......##..\n..w...##..\n.....###..\n########..\n\n##########\n#a.jjjpe..\nx..#######\n....##...#\nk...##...#\n....##...#\nw...##...#\n...###....\n######....\n\n##########\n.jjj.pee.#\n.#######.#\n..##...#.#\n..##...#.#\n..##...#..\n..##...###\n.###......\n####......\n\n########ww\njj..pe.#w#\n######.#w#\n##...#.#ww\n##...#.###\n##...#....\n##...####.\n##......##\n##......##\n\nmessage the time is gone to just aspire\n\n######wwww\n...pe#w##.\n####.#w##.\n...#.#www.\n...#.###w.\n...#...b..\n...####...\n......##..\n......####\n\n####wwwwww\n..p#w##...\n##.#w##...\n.#.#www.*.\n.#.###w...\n.#.e.x....\n.####.....\n....##....\n....######\n\n##wwwwwwww\n.#w##.....\n.#w##.....\n.#www.*.*.\n.###w.....\n.peb......\n###......d\n..##....dd\n..########\n\nwwwwwwwwww\nw##......w\nw##......w\nwww.*.*..w\n##w......w\npt.......w\n#......dww\n##....dd*g\n##########\n\nmessage 8 of 10\nwwwwwwwwww\nw##......w\nw##......w\nwww.*.*..w\n##w......w\n.pb......w\n#......dww\n##....dd*g\n##########\n\n(move)\n\nfkfkfkfk..\n#......f..\n#......k..\nk......f..\nf......k..\n.b.....f..\n.....jfk##\n....dj.le.\n##########\n\nkfkfkf....\n.....k....\n.....f....\n.....k...#\n.....f...#\n.....k...#\n...jkf####\n..dj.jpe..\n##########\n\nfkfk......\n...f......\n...k......\n...f...###\n...k...#..\n...f...#.#\n.jfk####.#\ndj.j.pe..#\n##########\n\nkf......##\n.k......##\n.f......##\n.k...####.\n.f...#....\n.k...#.##.\nkf####.###\n.j..pe.###\n##########\n\nmessage no more excuses for playing unnecessary games\n\n......####\n......###b\n......###.\n...####...\n...#......\n...#.##...\n####.####.\n...pe####.\n##########\n\n....######\n....###b#.\n....###...\n.####.....\n.#.e.....*\n.#.##...**\n##.####..*\n..p####...\n##########\n\n..########\n..###b#..#\n..###.....\n###.......\n.pe....***\n.##...**.*\n.####..***\n.####...wd\n########ww\n\n##########\n###b#..###\n###.....##\n#........#\npe...***.#\n#...**.*.#\n###..***w#\n###...wd*e\n######www#\n\nmessage 9 of 10\n##########\n###b#..###\n###.....##\n#........#\n.p...***.#\n#...**.*.#\n###..***w#\n###...wd*e\n######www#\n\n(move)\n\n########..\n#b#..###..\n#aa...##..\n.....a.#..\n....aa.#..\n....a..#..\n#...a.f###\n#...kj.oe.\n####fkf###\n\n######....\n#..###....\na...##....\n...a.#....\n..aa.#....\n..a..#...#\n..a.k#####\n..fj.ape..\n##kfk#####\n\n####......\n.###......\n..##......\n.a.#......\naa.#......\na..#...###\na.f#####..\nkj.a.pe..#\nfkf#######\n\n##......##\n##......##\n##......##\n.#......##\n.#......#.\n.#...####.\nk#####....\n.a..pe.###\nk#########\n\nmessage I will avoid my fears\n\n......####\n......####\n......####\n......###.\n......#...\n...####...\n####....*.\n...pe###..\n##########\n\n....######\n....####bb\n....####bb\n....###.bb\n....#....b\n.####...b.\n##.e..*..b\n..p###..bb\n##########\n\n..########\n..####xx..\n..####xx.x\n..###.xx.x\n..#....x..\n###...x.xx\n.pe.*..x..\n.###..xx##\n##########\n\n##########\n####bb..de\n####bb.b.w\n###.bb.b.w\n#....b...w\n#...b.bb.w\npe*..b...w\n##..bb####\n##########\n\nmessage 10 of 10\n##########\n####bb..de\n####bb.b.w\n###.bb.b.w\n#....b...w\n#...b.bb.w\n.p*..b...w\n##..bb####\n##########\n\n(move)\n##########\n##xx..jpe.\n##xx..xk##\n#xxx...f.#\nx......k.#\n......xf.#\n.....xxk.#\n..xx####.#\n########.#\n\n##########\nbb..j.pe.#\nbb..bf##.#\nbb...k.#.#\n.....f.#.#\n....bk.#.#\n...bbf.#.#\nbb####.#.#\n######.#.#\n\n########..\n..j..pe#..\n..xk##.#..\n...f.#.#..\n...k.#.#..\n..xf.#.#..\n.xxk.#.#..\n####.#.#..\n####.#.#..\n\n\n######....\nj...p#....\nbf##e#....\n.k.#.#....\n.f.#.#....\nbk.#.#....\nbf.#.#....\n##.#.#....\n##.#.#....\n\nxk##p#....\n.f.#e#....\n.k.#.#....\nxf.#.#....\nxk.#.#....\n##.#.#....\n##.#.#....\n...#.#....\nwwwwywwwww\n\n.k.#p#....\n.f.#e#....\nbk.#.#....\nbf.#.#....\n##.#.#....\n##.#.#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\n \n message I will be consumed by these flames\n \n.k.#p#....\nxf.#e#....\nxk.#.#....\n##.#.#....\n##.#.#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\n\n\nbk.#p#....\nbf.#e#....\n##.#.#....\n##.#.#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\n\nxk.#p#....\n##.#e#....\n##.#.#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\n\n##.#p#....\n##.#e#....\n...#.#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\n##.#p#....\n...#e#....\nwwwwywwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\n...#p#....\nwwwwuwwwww\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\n\nrwwwqwwwwr\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nwiii%%iiiw\nwyyyyyyyyw\nwyyyyyyyyw\nwyyyyyyyyw\nrwwwwwwwwr\n\n\n message I will become more than I am\nmessage THE END\n(\n#www######\n#*.wwwwww#\n#.d...d.de\n#p.###b.b#\n#...##...#\n#.b....*.#\n##..*.*..#\n#####...##\n##########)\n(\n##########\n##.*.....@\n#..wwww.##\n#p.ww...##\n#.....*.##\n#.*.www.##\n#...###w##\n##.b.www##\n####www###)\n\n\n\n\n\n",[3,0,0,3,3,0,3,3,2,2],"background wall:0,0,0,0,0,background:1,0,0,0,0,\n0,0,0,1,1,1,0,0,0,0,\n0,1,1,1,1,1,0,0,0,0,\n1,1,background barrel:2,1,1,0,0,0,1,1,\nbackground fireper1:3,ash background:4,3,1,0,0,background crate:5,1,4,1,\n1,1,1,0,0,1,1,1,background player:6,5,\n1,1,0,0,background pit:7,0,1,1,1,1,\n0,0,0,7,0,0,0,0,0,0,\n0,0,background pit target:8,0,0,0,0,0,0,0,\n",80,"1627779570245.4102"] ], [ `gallery: Watch Your Step`, - ["title Watch Your Step\nauthor Aaron Steed\nhomepage www.puzzlescript.net\nrequire_player_movement\n\n========\nOBJECTS\n========\n\nBackground\n#2c2c2c #4f4f4f #ff0000 #ff0000 \n11110\n11111\n11111\n11110\n11100\n\nFloor0\n#ff0202 #ffc680 #ff952b #400040 \n.....\n..2..\n..0..\n.....\n.....\n\nFloor1\n#ff0202 #ffc680 #ff952b #400040 \n.2...\n.0...\n...2.\n...0.\n.....\n\nFloor2\n#ff0202 #ffc680 #ff952b #400040 \n.2...\n.01..\n..02.\n...0.\n.....\n\nFloor3\n#ff0202 #ffc680 #ff952b #400040 \n.2.2.\n.0.0.\n.2.2.\n.0.0.\n.....\n\nFloor4\n#ff0202 #ffc680 #ff952b #400040 \n.2.2.\n.010.\n.202.\n.0.0.\n.....\n\nTarget \n#2c2c2c #000000 #000040 #ff0000 \n02112\n21111\n11111\n11111\n21112\n\nWall \n#808080 #c0c0c0 #ff0000 #ff0000 \n11110\n11111\n11110\n11110\n01000\n\nPlayer\n#ffffff #c0c0c0 #000000 #ff0000 \n.000.\n00000\n02020\n00001\n11111\n\nCrate0\n#ff0202 #ffc680 #ff952b #000000 \n11111\n12220\n12320\n12220\n00000\n\nCrate1\n#ff0202 #ffc680 #ff952b #000000 \n11111\n13220\n12220\n12230\n00000\n\nCrate2\n#ff0202 #ffc680 #ff952b #000000 \n11111\n13220\n12320\n12230\n00000\n\nCrate3\n#ff0202 #ffc680 #ff952b #000000 \n11111\n13230\n12220\n13230\n00000\n\nCrate4\n#ff0202 #ffc680 #ff952b #000000 \n11111\n13230\n12320\n13230\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n0 = Crate0\n1 = Crate1\n2 = Crate2\n3 = Crate3\n4 = Crate4\n* = Target\n\nCrate = Crate0 or Crate1 or Crate2 or Crate3 or Crate4\nFloor = Floor0 or Floor1 or Floor2 or Floor3 or Floor4\nObject = Crate or Player or Wall\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFloor\nTarget\nPlayer, Wall, Crate \n\n======\nRULES \n====== \n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Crate0 | Crate0 ] -> [ | Crate1 ]\n[ > Crate1 | Crate1 ] -> [ | Crate2 ]\n[ > Crate2 | Crate2 ] -> [ | Crate3 ]\n[ > Crate3 | Crate3 ] -> [ | Crate4 ]\n\nlate [Floor4 no Object] -> [no Floor Crate0]\n\nlate [Floor3 no Object] -> [Floor4 no Object]\n[Floor2 no Object] -> [Floor3 no Object]\n[Floor1 no Object] -> [Floor2 no Object]\n[Floor0 no Object] -> [Floor1 no Object]\n[Player no Floor] -> [Player Floor0]\n\n==============\nWINCONDITIONS\n==============\n\nAny Crate4\n\n======= \nLEVELS\n=======\n\nmessage each step you take leaves a seed that grows into a no 1 crate\n\nmessage push two crates of the same number together to make a higher number crate\n\nmessage make a no 5 crate\n\n#########\n#.......#\n#.......#\n#.......#\n#...p...#\n#.......#\n#.......#\n#.......#\n#########\n\nmessage well done, I couldn't be bothered to find out myself, do let me know\n", [3, 3, 2, 1, 1, 0, 0, 3, 3], "background wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,0,\n0,1,background crate0:2,background floor1:3,background floor2:4,background floor4:5,1,1,0,\n0,1,1,background floor0:6,2,2,1,1,0,\n0,1,1,background player:7,2,2,1,1,0,\n0,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n", 3, "1627779589660.2917"] + ["title Watch Your Step\nauthor Aaron Steed\nhomepage www.puzzlescript.net\nrequire_player_movement\n\n========\nOBJECTS\n========\n\nBackground\n#2c2c2c #4f4f4f #ff0000 #ff0000 \n11110\n11111\n11111\n11110\n11100\n\nFloor0\n#ff0202 #ffc680 #ff952b #400040 \n.....\n..2..\n..0..\n.....\n.....\n\nFloor1\n#ff0202 #ffc680 #ff952b #400040 \n.2...\n.0...\n...2.\n...0.\n.....\n\nFloor2\n#ff0202 #ffc680 #ff952b #400040 \n.2...\n.01..\n..02.\n...0.\n.....\n\nFloor3\n#ff0202 #ffc680 #ff952b #400040 \n.2.2.\n.0.0.\n.2.2.\n.0.0.\n.....\n\nFloor4\n#ff0202 #ffc680 #ff952b #400040 \n.2.2.\n.010.\n.202.\n.0.0.\n.....\n\nTarget \n#2c2c2c #000000 #000040 #ff0000 \n02112\n21111\n11111\n11111\n21112\n\nWall \n#808080 #c0c0c0 #ff0000 #ff0000 \n11110\n11111\n11110\n11110\n01000\n\nPlayer\n#ffffff #c0c0c0 #000000 #ff0000 \n.000.\n00000\n02020\n00001\n11111\n\nCrate0\n#ff0202 #ffc680 #ff952b #000000 \n11111\n12220\n12320\n12220\n00000\n\nCrate1\n#ff0202 #ffc680 #ff952b #000000 \n11111\n13220\n12220\n12230\n00000\n\nCrate2\n#ff0202 #ffc680 #ff952b #000000 \n11111\n13220\n12320\n12230\n00000\n\nCrate3\n#ff0202 #ffc680 #ff952b #000000 \n11111\n13230\n12220\n13230\n00000\n\nCrate4\n#ff0202 #ffc680 #ff952b #000000 \n11111\n13230\n12320\n13230\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n0 = Crate0\n1 = Crate1\n2 = Crate2\n3 = Crate3\n4 = Crate4\n* = Target\n\nCrate = Crate0 or Crate1 or Crate2 or Crate3 or Crate4\nFloor = Floor0 or Floor1 or Floor2 or Floor3 or Floor4\nObject = Crate or Player or Wall\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFloor\nTarget\nPlayer, Wall, Crate \n\n======\nRULES \n====== \n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Crate0 | Crate0 ] -> [ | Crate1 ]\n[ > Crate1 | Crate1 ] -> [ | Crate2 ]\n[ > Crate2 | Crate2 ] -> [ | Crate3 ]\n[ > Crate3 | Crate3 ] -> [ | Crate4 ]\n\nlate [Floor4 no Object] -> [no Floor Crate0]\n\nlate [Floor3 no Object] -> [Floor4 no Object]\n[Floor2 no Object] -> [Floor3 no Object]\n[Floor1 no Object] -> [Floor2 no Object]\n[Floor0 no Object] -> [Floor1 no Object]\n[Player no Floor] -> [Player Floor0]\n\n==============\nWINCONDITIONS\n==============\n\nAny Crate4\n\n======= \nLEVELS\n=======\n\nmessage each step you take leaves a seed that grows into a no 1 crate\n\nmessage push two crates of the same number together to make a higher number crate\n\nmessage make a no 5 crate\n\n#########\n#.......#\n#.......#\n#.......#\n#...p...#\n#.......#\n#.......#\n#.......#\n#########\n\nmessage well done, I couldn't be bothered to find out myself, do let me know\n",[3,3,2,1,1,0,0,3,3],"background wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,0,\n0,1,background crate0:2,background floor1:3,background floor2:4,background floor4:5,1,1,0,\n0,1,1,background floor0:6,2,2,1,1,0,\n0,1,1,background player:7,2,2,1,1,0,\n0,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n",3,"1627779589660.2917"] ], [ `gallery: Spikes 'n' Stuff`, - ["title Spikes 'n' Stuff\n\nauthor Alan Hazelden\n\n(verbose_logging)\n\nagain_interval 0.05\nrealtime_interval 0.05\n\nflickscreen 11x11\n\nnoaction\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\n\nBackground\nDARKBLUE BLACK\n11111\n01111\n11101\n11111\n10111\n\nWall\n#767d80 #697175\n00111\n11101\n01001\n11110\n10011\n\nTarget\ntransparent\n(DarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....)\n\nExit\ntransparent\n\nArrowTrapUpReady\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n.123.\n0.2.4\n..2..\n..2..\n\nArrowTrapUpArmed\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n.153.\n0.5.4\n..5..\n..2..\n\nArrowTrapUpFired\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n01234\n..2..\n..2..\n..2..\n\nArrowTrapUpFired2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n.123.\n0.2.4\n..2..\n..2..\n\nArrowTrapUpFired3\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.....\n..2..\n.123.\n0.2.4\n..2..\n\nArrowTrapUpRearming\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.....\n.....\n..2..\n.123.\n0.2.4\n\nArrowTrapUpRearming2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.....\n..2..\n.123.\n0.2.4\n..2..\n\nArrowTrapDownReady\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n..2..\n0.2.4\n.123.\n..2..\n\nArrowTrapDownArmed\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n..5..\n0.5.4\n.153.\n..2..\n\nArrowTrapDownFired\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n..2..\n..2..\n01234\n..2..\n\nArrowTrapDownFired2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n..2..\n0.2.4\n.123.\n..2..\n\nArrowTrapDownFired3\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n0.2.4\n.123.\n..2..\n.....\n\nArrowTrapDownRearming\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n0.2.4\n.123.\n..2..\n.....\n.....\n\nArrowTrapDownRearming2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n0.2.4\n.123.\n..2..\n.....\n\nArrowTrapLeftReady\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n.1...\n22222\n.3...\n..4..\n\nArrowTrapLeftArmed\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n.1...\n25552\n.3...\n..4..\n\nArrowTrapLeftFired\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.0...\n.1...\n22222\n.3...\n.4...\n\nArrowTrapLeftFired2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n.1...\n22222\n.3...\n..4..\n\nArrowTrapLeftFired3\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n...0.\n..1..\n.2222\n..3..\n...4.\n\nArrowTrapLeftRearming\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n....0\n...1.\n..222\n...3.\n....4\n\nArrowTrapLeftRearming2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n...0.\n..1..\n.2222\n..3..\n...4.\n\nArrowTrapRightReady\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n...1.\n22222\n...3.\n..4..\n\nArrowTrapRightArmed\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n...1.\n25552\n...3.\n..4..\n\nArrowTrapRightFired\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n...0.\n...1.\n22222\n...3.\n...4.\n\nArrowTrapRightFired2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n...1.\n22222\n...3.\n..4..\n\nArrowTrapRightFired3\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.0...\n..1..\n2220.\n..3..\n.4...\n\nArrowTrapRightRearming\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n0....\n.1...\n222..\n.3...\n4....\n\nArrowTrapRightRearming2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.0...\n..1..\n2220.\n..3..\n.4...\n\n(#524432 #4d4030 #4a3c2c #443929 #403527)\n\nPlayer\n#a46422 #495e2b #493c2b #000000\n..0..\n.111.\n01110\n02220\n.2.2.\n\nPlayerDead\n#a46422 #495e2b #493c2b black white\n..00.\n.1122\n0112.\n.1122\n..00.\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\nGem\nYellow White Orange\n.000.\n01100\n01000\n00002\n.022.\n\nGemBroken\nYellow White Orange black\n.000.\n.313.\n01.0.\n03002\n..22.\n\nNoPattern\nblack\n\nSpikeTrap\ntransparent darkgreen black\n00000\n01210\n02220\n01210\n00000\n\nSpikeTrapArmed\ntransparent white transparent grey\n00000\n01210\n02220\n01210\n00000\n\nSpikeTrapDeadly\ntransparent white transparent grey\n01010\n03230\n01210\n03230\n00000\n\nArrowUp\nwhite\n.....\n..0..\n..0..\n..0..\n.....\n\nArrowDown\nwhite\n.....\n..0..\n..0..\n..0..\n.....\n\nArrowLeft\nwhite\n.....\n.....\n.000.\n.....\n.....\n\nArrowRight\nwhite\n.....\n.....\n.000.\n.....\n.....\n\nArrowCollision\nwhite\n.....\n..0..\n.000.\n..0..\n.....\n\nArrowCollision2\nwhite\n...0.\n.....\n.0...\n....0\n.....\n\nLOS\nwhite\n\nWallL\n#373c3f\n0....\n0....\n0....\n0....\n0....\n\nWallR\n#373c3f\n....0\n....0\n....0\n....0\n....0\n\nWallU\n#373c3f\n00000\n.....\n.....\n.....\n.....\n\nWallD\n#373c3f\n.....\n.....\n.....\n.....\n00000\n\nWallLR\n#373c3f\n0...0\n0...0\n0...0\n0...0\n0...0\n\nWallUD\n#373c3f\n00000\n.....\n.....\n.....\n00000\n \nWallUL\n#373c3f\n0....\n.....\n.....\n.....\n.....\n \nWallUR\n#373c3f\n....0\n.....\n.....\n.....\n.....\n \nWallDL\n#373c3f\n.....\n.....\n.....\n.....\n0....\n \nWallDR\n#373c3f\n.....\n.....\n.....\n.....\n....0\n \nWallDLR\n#373c3f\n.....\n.....\n.....\n.....\n0...0\n \nWallULR\n#373c3f\n0...0\n.....\n.....\n.....\n.....\n \nWallLUD\n#373c3f\n0....\n.....\n.....\n.....\n0....\n \nWallRUD\n#373c3f\n....0\n.....\n.....\n.....\n....0\n\nBloodL1\nred\n.....\n.....\n....0\n.....\n.....\n\nBloodL2\nred\n.....\n....0\n....0\n....0\n.....\n\nBloodL3\nred\n....0\n....0\n....0\n....0\n....0\n\nBloodL4_1\nred\n....0\n....0\n...00\n...00\n....0\n\nBloodL4_2\nred\n....0\n...00\n...00\n....0\n....0\n\nBloodR1\nred\n.....\n.....\n0....\n.....\n.....\n\nBloodR2\nred\n.....\n0....\n0....\n0....\n.....\n\nBloodR3\nred\n0....\n0....\n0....\n0....\n0....\n\nBloodR4_1\nred\n0....\n0....\n00...\n00...\n0....\n\nBloodR4_2\nred\n0....\n0....\n00...\n00...\n0....\n\nBloodU1\nred\n.....\n.....\n.....\n.....\n..0..\n\nBloodU2\nred\n.....\n.....\n.....\n.....\n.000.\n\nBloodU3\nred\n.....\n.....\n.....\n.....\n00000\n\nBloodU4_1\nred\n.....\n.....\n.....\n.00..\n00000\n\nBloodU4_2\nred\n.....\n.....\n.....\n..00.\n00000\n\nBloodD1\nred\n..0..\n.....\n.....\n.....\n.....\n\nBloodD2\nred\n.000.\n.....\n.....\n.....\n.....\n\nBloodD3\nred\n00000\n.....\n.....\n.....\n.....\n\nBloodD4_1\nred\n00000\n..00.\n.....\n.....\n.....\n\nBloodD4_2\nred\n00000\n.00..\n.....\n.....\n.....\n\nBloodD4_3\nred\n00000\n.....\n.....\n.....\n.....\n\nGemMarker\ntransparent\n\n\n=======\nLEGEND\n=======\n\n\n\nArrow = ArrowLeft or ArrowRight or ArrowUp or ArrowDown\nSpikeTrapAny = SpikeTrap or SpikeTrapArmed or SpikeTrapDeadly\n\nArrowTrapReady = ArrowTrapUpReady or ArrowTrapDownReady or ArrowTrapLeftReady or ArrowTrapRightReady\nArrowTrapArmed = ArrowTrapLeftArmed or ArrowTrapRightArmed or ArrowTrapUpArmed or ArrowTrapDownArmed\nArrowTrapRearming = ArrowTrapLeftRearming or ArrowTrapRightRearming or ArrowTrapUpRearming or ArrowTrapDownRearming\nArrowTrapRearming2 = ArrowTrapLeftRearming2 or ArrowTrapRightRearming2 or ArrowTrapUpRearming2 or ArrowTrapDownRearming2\n\nArrowTrapLeftFiredAny = ArrowTrapLeftFired or ArrowTrapLeftFired2 or ArrowTrapLeftFired3\nArrowTrapRightFiredAny = ArrowTrapRightFired or ArrowTrapRightFired2 or ArrowTrapRightFired3\nArrowTrapUpFiredAny = ArrowTrapUpFired or ArrowTrapUpFired2 or ArrowTrapUpFired3\nArrowTrapDownFiredAny = ArrowTrapDownFired or ArrowTrapDownFired2 or ArrowTrapDownFired3\n\nArrowTrapFiredAnim = ArrowTrapLeftFired or ArrowTrapLeftFired2 or ArrowTrapLeftFired3 or ArrowTrapRightFired or ArrowTrapRightFired2 or ArrowTrapRightFired3 or ArrowTrapUpFired or ArrowTrapUpFired2 or ArrowTrapUpFired3 or ArrowTrapDownFired or ArrowTrapDownFired2 or ArrowTrapDownFired3\n\nArrowTrapAny = ArrowTrapReady or ArrowTrapArmed or ArrowTrapRearming or ArrowTrapRearming2 or ArrowTrapFiredAnim\n\nTriggersSpikes = Crate or Gem or Player\nTriggersArrow = Player\nKillable = Player\nNeedsTick = SpikeTrap or SpikeTrapArmed or SpikeTrapDeadly or ArrowTrapAny\n\n\nSolid = Wall or Crate or Gem or ArrowTrapAny\n\n. = Background\n# = Wall\nP = Player and exit\nq = exit\n* = Crate\n(@ = SwitchOff)\nO = Target\n% = SpikeTrap and NoPattern\n~ = Gem and GemMarker\n\ni = ArrowTrapUpReady and NoPattern\n! = ArrowTrapDownReady and NoPattern\n{ = ArrowTrapLeftReady and NoPattern\n} = ArrowTrapRightReady and NoPattern\n\nBloodLeft = BloodL1 or BloodL2 or BloodL3 or BloodL4_1 or BloodL4_2\nBloodRight = BloodR1 or BloodR2 or BloodR3 or BloodR4_1 or BloodR4_2\nBloodUp = BloodU1 or BloodU2 or BloodU3 or BloodU4_1 or BloodU4_2\nBloodDown = BloodD1 or BloodD2 or BloodD3 or BloodD4_1 or BloodD4_2 or BloodD4_3\n\nBloodL4 = BloodL4_1 or BloodL4_2\nBloodR4 = BloodR4_1 or BloodR4_2\nBloodU4 = BloodU4_1 or BloodU4_2\nBloodD4 = BloodD4_1 or BloodD4_2 or BloodD4_3\n\nBloodFinal = BloodL4 or BloodR4 or BloodU4 or BloodD4\n\nBlood = BloodLeft or BloodRight or BloodUp or BloodDown\n\nWallCoverLR = WallL or WallR or WallLR\nWallCoverUD = WallU or WallD or WallUD\nWallCoverCorner = WallUL or WallUR or WallDL or WallDR or WallDLR or WallLUD or WallRUD or WallULR\nWallCover = WallCoverLR or WallCoverUD or WallCoverCorner\n\nCoverLR = WallCoverLR\nCoverUD = WallCoverUD\n\n\n=======\nSOUNDS\n=======\n\n(Player Create 1326707)\n\nSpikeTrapDeadly Create 85964907\nArrowTrapArmed Create 9956307\nArrowTrapRearming Create 95334907\n\n(Arrow Create 3367509)\n\nArrowCollision Create 3790700\nPlayerDead Create 97930904\nGemBroken Create 48343102\n\n(sfx1 76483702) (arrow hits wall)\nsfx2 13478508 (pick up gem for first time)\n\nUndo 8748307\n(Cancel 1326707)\nRestart 28758302\n\nEndLevel 73821303\nStartGame 47020108\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nNoPattern\nBloodLeft\nBloodRight\nBloodUp\nBloodDown\nTarget, SpikeTrap, SpikeTrapArmed, SpikeTrapDeadly, Exit, GemMarker\nGemBroken\nPlayer, Wall, Crate, Gem, PlayerDead\nWallCoverUD\nWallCoverCorner\nWallCoverLR, LOS\nArrowTrapAny\nArrow, ArrowCollision, ArrowCollision2\n\n======\nRULES\n======\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\nleft [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallLUD | WallUD ]\nright [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallRUD | WallUD ]\nup [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallULR | WallLR ]\ndown [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallDLR | WallLR ]\n\nright [ WallD | Wall no WallCoverCorner no WallCoverUD ] -> [ WallD | Wall WallDL ]\nleft [ WallD | Wall no WallCoverCorner no WallCoverUD ] -> [ WallD | Wall WallDR ]\n \nright [ WallU | Wall no WallCoverCorner no WallCoverUD ] -> [ WallU | Wall WallUL ]\nleft [ WallU | Wall no WallCoverCorner no WallCoverUD ] -> [ WallU | Wall WallUR ]\n\n(Blood)\n\n[ PlayerDead Blood ] -> [ PlayerDead action Blood ] again\n\nrandom [ PlayerDead | no Blood ] -> [ > PlayerDead no SpikeTrapAny | ]\n\n[ left PlayerDead no BloodRight ] -> [ PlayerDead BloodR1 ] again\n[ right PlayerDead no BloodLeft ] -> [ PlayerDead BloodL1 ] again\n[ up PlayerDead no BloodDown ] -> [ PlayerDead BloodD1 ] again\n[ down PlayerDead no BloodUp ] -> [ PlayerDead BloodU1 ] again\n\nrandom [ PlayerDead | no Blood ] -> [ > PlayerDead no SpikeTrapDeadly | ]\n\n[ left PlayerDead no BloodRight ] -> [ PlayerDead BloodR1 ] again\n[ right PlayerDead no BloodLeft ] -> [ PlayerDead BloodL1 ] again\n[ up PlayerDead no BloodDown ] -> [ PlayerDead BloodD1 ] again\n[ down PlayerDead no BloodUp ] -> [ PlayerDead BloodU1 ] again\n\n[ PlayerDead ] -> [ stationary PlayerDead ]\n\n[ action BloodL3 ] -> [ random BloodL4 ] again\n[ action BloodL2 ] -> [ BloodL3 ] again\n[ action BloodL1 ] -> [ BloodL2 ] again\n\n[ action BloodR3 ] -> [ random BloodR4 ] again\n[ action BloodR2 ] -> [ BloodR3 ] again\n[ action BloodR1 ] -> [ BloodR2 ] again\n\n[ action BloodU3 ] -> [ random BloodU4 ] again\n[ action BloodU2 ] -> [ BloodU3 ] again\n[ action BloodU1 ] -> [ BloodU2 ] again\n\n[ action BloodD3 ] -> [ random BloodD4 ] again\n[ action BloodD2 ] -> [ BloodD3 ] again\n[ action BloodD1 ] -> [ BloodD2 ] again\n\n[ BloodL3 no PlayerDead ] -> [ random BloodL4 ] again\n[ BloodL2 no PlayerDead ] -> [ BloodL3 ] again\n[ BloodL1 no PlayerDead ] -> [ BloodL2 ] again\n\n[ BloodR3 no PlayerDead ] -> [ random BloodR4 ] again\n[ BloodR2 no PlayerDead ] -> [ BloodR3 ] again\n[ BloodR1 no PlayerDead ] -> [ BloodR2 ] again\n\n[ BloodU3 no PlayerDead ] -> [ random BloodU4 ] again\n[ BloodU2 no PlayerDead ] -> [ BloodU3 ] again\n[ BloodU1 no PlayerDead ] -> [ BloodU2 ] again\n\n[ BloodD3 no PlayerDead ] -> [ random BloodD4 ] again\n[ BloodD2 no PlayerDead ] -> [ BloodD3 ] again\n[ BloodD1 no PlayerDead ] -> [ BloodD2 ] again\n\nleft [ action BloodR4 | no Blood ] -> [ BloodR4 | BloodL1 ] again\nright [ action BloodL4 | no Blood ] -> [ BloodL4 | BloodR1 ] again\nup [ action BloodD4 | no Blood ] -> [ BloodD4 | BloodU1 ] again\ndown [ action BloodU4 | no Blood ] -> [ BloodU4 | BloodD1 ] again\n\n[ Blood no BloodFinal ] -> again\n\n(arrow firing anim)\n\n[ stationary Player ] [ ArrowTrapFiredAnim ] -> [ Player ] [ action ArrowTrapFiredAnim ]\n[ PlayerDead ] [ ArrowTrapFiredAnim ] -> [ PlayerDead ] [ action ArrowTrapFiredAnim ]\n\n[ ArrowTrapAny no ArrowTrapFiredAnim Target ] -> [ ArrowTrapAny ]\n\n[ action ArrowTrapUpFired3 ] -> [ ArrowTrapUpRearming ]\n[ action ArrowTrapUpFired2 Target ] -> [ ArrowTrapUpFired3 ]\n[ action ArrowTrapUpFired2 no Target ] -> [ ArrowTrapUpFired2 Target ]\n[ action ArrowTrapUpFired Target ] -> [ ArrowTrapUpFired2 ]\n[ action ArrowTrapUpFired no Target ] -> [ ArrowTrapUpFired Target ]\n\n[ action ArrowTrapDownFired3 ] -> [ ArrowTrapDownRearming ]\n[ action ArrowTrapDownFired2 Target ] -> [ ArrowTrapDownFired3 ]\n[ action ArrowTrapDownFired2 no Target ] -> [ ArrowTrapDownFired2 Target ]\n[ action ArrowTrapDownFired Target ] -> [ ArrowTrapDownFired2 ]\n[ action ArrowTrapDownFired no Target ] -> [ ArrowTrapDownFired Target ]\n\n[ action ArrowTrapLeftFired3 ] -> [ ArrowTrapLeftRearming ]\n[ action ArrowTrapLeftFired2 Target ] -> [ ArrowTrapLeftFired3 ]\n[ action ArrowTrapLeftFired2 no Target ] -> [ ArrowTrapLeftFired2 Target ]\n[ action ArrowTrapLeftFired Target ] -> [ ArrowTrapLeftFired2 ]\n[ action ArrowTrapLeftFired no Target ] -> [ ArrowTrapLeftFired Target ]\n\n[ action ArrowTrapRightFired3 ] -> [ ArrowTrapRightRearming ]\n[ action ArrowTrapRightFired2 Target ] -> [ ArrowTrapRightFired3 ]\n[ action ArrowTrapRightFired2 no Target ] -> [ ArrowTrapRightFired2 Target ]\n[ action ArrowTrapRightFired Target ] -> [ ArrowTrapRightFired2 ]\n[ action ArrowTrapRightFired no Target ] -> [ ArrowTrapRightFired Target ]\n\n(Start of turn)\n\n[ Gem | moving Player ] -> [ > Gem | moving Player ]\n\n[ ArrowCollision2 ] -> []\n[ ArrowCollision ] -> [ ArrowCollision2 ] again\n\n[ moving Player ] [ NeedsTick ] -> [ moving Player ] [ action NeedsTick ]\n\n[ TriggersSpikes action SpikeTrapArmed ] -> [ TriggersSpikes SpikeTrapArmed ]\n\n[ action SpikeTrapDeadly ] -> [ SpikeTrap ]\n\n[ action SpikeTrapArmed ] -> [ SpikeTrapDeadly ]\n\n[ TriggersSpikes action SpikeTrap ] -> [ TriggersSpikes SpikeTrapArmed ]\n\n(prevent player moving out of path of arrow)\nleft [ ArrowLeft | ... | moving Player ] -> cancel\nright [ ArrowRight | ... | moving Player ] -> cancel\nup [ ArrowUp | ... | moving Player ] -> cancel\ndown [ ArrowDown | ... | moving Player ] -> cancel\n\nleft [ ArrowLeft | ... | moving Gem ] -> cancel\nright [ ArrowRight | ... | moving Gem ] -> cancel\nup [ ArrowUp | ... | moving Gem ] -> cancel\ndown [ ArrowDown | ... | moving Gem ] -> cancel\n\n[ moving Player ] [ Arrow ] -> [ moving Player ] [ action Arrow ]\n\n(movement)\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Player | Gem ] -> [ > Player | > Gem ]\n\n[ > Gem | Solid ] -> cancel\n[ > Crate | Solid ] -> cancel\n[ > Player | stationary Solid ] -> cancel\n[ > Player | ArrowTrapAny ] -> cancel\n\n[ > Player | no Solid ] -> [ | Player ]\n[ > Crate | no Solid ] -> [ | Crate ]\n[ > Gem | no Solid ] -> [ | Gem ]\n[ > Player | no Solid ] -> [ | Player ]\n\n( death )\n\n[ Player SpikeTrapDeadly ] -> [ PlayerDead SpikeTrapDeadly ] again\n\n\n( end of turn )\n\n[ action ArrowTrapUpReady ] -> [ ArrowTrapUpReady up LOS ]\n[ action ArrowTrapDownReady ] -> [ ArrowTrapDownReady down LOS ]\n[ action ArrowTrapLeftReady ] -> [ ArrowTrapLeftReady left LOS ]\n[ action ArrowTrapRightReady ] -> [ ArrowTrapRightReady right LOS ]\n\n[ > LOS | Solid ] -> [ | Solid ]\n+ [ > LOS | no Solid no LOS no TriggersArrow ] -> [ | > LOS ]\n\n[ > LOS | TriggersArrow ] -> [ < LOS | TriggersArrow ]\n\n[ > LOS no ArrowTrapReady | no Solid no LOS ] -> [ | > LOS ]\n[ > LOS no ArrowTrapReady | ArrowTrapReady ] -> [ | LOS ArrowTrapReady ]\n\n[ LOS ArrowTrapUpReady ] -> [ ArrowTrapUpArmed ]\n[ LOS ArrowTrapDownReady ] -> [ ArrowTrapDownArmed ]\n[ LOS ArrowTrapLeftReady ] -> [ ArrowTrapLeftArmed ]\n[ LOS ArrowTrapRightReady ] -> [ ArrowTrapRightArmed ]\n\n[ LOS ] -> []\n\n[ action ArrowTrapUpArmed ] -> [ ArrowTrapUpFired ArrowUp ]\n[ action ArrowTrapDownArmed ] -> [ ArrowTrapDownFired ArrowDown ]\n[ action ArrowTrapLeftArmed ] -> [ ArrowTrapLeftFired ArrowLeft ]\n[ action ArrowTrapRightArmed ] -> [ ArrowTrapRightFired ArrowRight ]\n\n[ action ArrowTrapUpFiredAny ] -> [ ArrowTrapUpRearming2 ]\n[ action ArrowTrapDownFiredAny ] -> [ ArrowTrapDownRearming2 ]\n[ action ArrowTrapLeftFiredAny ] -> [ ArrowTrapLeftRearming2 ]\n[ action ArrowTrapRightFiredAny ] -> [ ArrowTrapRightRearming2 ]\n\n[ action ArrowTrapUpRearming ] -> [ ArrowTrapUpRearming2 ]\n[ action ArrowTrapDownRearming ] -> [ ArrowTrapDownRearming2 ]\n[ action ArrowTrapLeftRearming ] -> [ ArrowTrapLeftRearming2 ]\n[ action ArrowTrapRightRearming ] -> [ ArrowTrapRightRearming2 ]\n\n[ action ArrowTrapUpRearming2 ] -> [ ArrowTrapUpReady ]\n[ action ArrowTrapDownRearming2 ] -> [ ArrowTrapDownReady ]\n[ action ArrowTrapLeftRearming2 ] -> [ ArrowTrapLeftReady ]\n[ action ArrowTrapRightRearming2 ] -> [ ArrowTrapRightReady ]\n\n(arrows)\n\n[ stationary ArrowUp ] -> [ up ArrowUp ]\n[ stationary ArrowDown ] -> [ down ArrowDown ]\n[ stationary ArrowLeft ] -> [ left ArrowLeft ]\n[ stationary ArrowRight ] -> [ right ArrowRight ]\n\n[ > Arrow | Player ] -> [ | PlayerDead ] again\n[ > Arrow | no Solid no Arrow ] -> [ | Arrow ] (again)\n[ > Arrow | Gem ] -> [ | GemBroken no SpikeTrapAny ]\n[ > Arrow | Solid ] -> [ | Solid ] sfx1\n[ > Arrow | no Solid no Arrow ] -> [ | Arrow ] (again)\n+ [ > Arrow | stationary Arrow ] -> [ | ArrowCollision ] (again)\n[ > Arrow | Gem ] -> [ | GemBroken no SpikeTrapAny ]\n[ > Arrow | Solid ] -> [ | Solid ] sfx1\n\n([ Arrow SpikeTrapArmed ] -> [ SpikeTrapArmed ]\n[ Arrow SpikeTrapDeadly ] -> [ SpikeTrapDeadly ])\n\n(checkpoints)\n\n[ Player Target ] -> [ Player action Target ]\n[ Gem Target ] -> [ Gem action Target ]\n\n[ Gem ] [ action Target ] -> checkpoint\n\n[ Player | GemMarker ] -> [ Player | ] sfx2\n\n\n==============\nWINCONDITIONS\n==============\n\nall player on exit\nall gem on exit\nsome player\nsome gem\n\n=======\nLEVELS\n=======\n\n(###p##################\n###q##############!###\n##...############...o.\n##....###########...##\n##...%.#!########..###\n###.%..%..##........##\n####..~%.o..o.......##\n#####..%..##........##\n##############i#######\n######################\n\n#####!!!!##\n#####%%%.##\n#....%.%.##\n#o###%%%###\n..#..%%%###\n###.....###\n###..#...##\n###..##...o\n##}......##\n###########)\n\n(###p###################################################\n###q##############!####################################\n###.#############...#############################!#####\n##...############...o..o...%%########....o..o.#!#%#!###\n##....###########...######%%%########.%%##..o...%.%.###\n##...%.###########.#####}%%%%#########%%#######.#%#.###\n###.%..%..##........#####%%%%######}%%%%#####...#.%.###\n####...%.o..o.......######%....#####.%#######....%#..##\n#####..%..##........######....o....o..###########.....o\n##############i########################################\n#######################################################\n\n#######################################################\n################!!!!#############################!#####\n####!!##########%%%.#########...o.o.############...####\n##.......###....%.%.#########...o.o.######...o.....####\n##......o###o###%%%#####}.....#####....###o#####....{##\n####..##.....#..%%%######.....#####..%.##..#####...####\n####%%########.....#####}.....####}.%......######.#####\n####..########..#...#####.....#####..%.##..##}......###\n.o....########..##...o.o..#i#i#####....########......o.\n#############}......#################i#########.....###\n#######################################################\n\n#######################################################\n###########################!########!###!##############\n######..o....o..!#!#######%.%#####...%.%...###.......##\n######...#####.....#######%.%#####...%.%...###.......##\n##}..%%#######}..%%#####..%.%..{###..###..####.......##\n##}.%%.%#######..%%#####..%.%%%{##}..###..####...~...##\n####..%%######}....#####..###%%###}..###..####.......##\n##..%.%%##########...o.o..###..####..###...o.o.......##\n..o##ii###########...o.o..###..o..o..###...o.o.......##\n#############################........##################\n#######################################################)\n\n###p#################################################################################################################################################################\n###q##############!####################################################!!!!#############################!################################!########!###!##############\n###.#############...#############################!#########!!##########%%%.#########...o.o.############...##########..o....o..!#!#######%.%#####...%.%...###.......##\n##...############...o..o...%%########....o..o.#!#%#!#####.......###....%.%.#########...o.o.######...o.....##########...#####.....#######%.%#####...%.%...###.......##\n##....###########...######%%%########.%%##..o...%.%.#####......o###o###%%%#####}.....#####....###o#####....{####}..%%#######}..%%#####..%.%..{###..###..####.......##\n##...%.###########.#####}%%%%#########%%#######.#%#.#######..##.....#..%%%######.....#####..%.##..#####...######}.%%.%#######..%%#####..%.%%%{##}..###..####...~...##\n###.%..%..##........#####%%%%######}%%%%#####...#.%.#######%%########.....#####}.....####}.%......######.#########..%%######}....#####..###%%###}..###..####.......##\n####...%.o..o.......######%....#####.%#######....%#..######..########..#...#####.....#####..%.##..##}......#####..%.%%##########...o.o..###..####..###...o.o.......##\n#####..%..##........######....o....o..###########.....o.o....########..##...o.o..#i#i#####....########......o...o##ii###########...o.o..###..o..o..###...o.o.......##\n##############i#####################################################}......#################i#########.....################################........##################\n#####################################################################################################################################################################\n\n\nmessage Thanks for playing :)\n\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", 2, 3, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "undo", "tick", "tick", "tick", "undo", "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,background wall walldr:1,background wall wallr:2,2,2,background wall wallur:3,0,0,0,0,2,2,background wall walld wallr:4,background:5,5,5,background wall wallr wallu:6,3,0,0,0,background exit:7,7,5,5,5,5,5,6,3,0,0,background wall walll:8,8,background wall walld walll:9,5,5,5,background nopattern spiketrap:10,5,6,3,0,0,0,background wall walldl:11,9,5,10,5,5,5,background wall wallu:12,0,0,0,0,11,9,5,5,5,5,12,0,0,0,0,0,11,9,10,10,10,12,0,0,0,0,0,0,background wall walld:13,5,5,5,12,0,0,0,0,0,0,13,5,background target:14,5,12,0,0,0,0,0,0,11,9,5,background wall walll wallu:15,background wall wallul:16,0,0,0,0,0,0,1,4,5,6,3,0,0,0,0,0,0,13,5,14,5,12,0,0,0,0,0,0,13,5,5,5,6,3,0,0,0,0,0,13,5,5,5,arrowtrapupready background nopattern:17,12,\n0,0,0,0,0,13,5,5,5,15,16,0,1,2,2,2,background wall walld wallrud:18,5,5,5,12,0,1,4,5,5,5,background wall wallr wallud:19,5,5,5,12,0,13,arrowtrapdownready background nopattern:20,5,5,5,5,5,5,5,12,0,11,9,5,5,5,background wall walll wallud:21,5,5,5,12,0,0,11,9,14,15,background wall walllud:22,8,8,8,16,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,14,background wall wallrud wallu:23,2,3,0,0,0,0,0,0,13,5,background wall wallud:24,arrowtraprightready background nopattern:25,6,3,0,0,0,0,0,13,5,19,10,10,6,2,3,0,0,0,13,5,10,10,background nopattern spiketrapdeadly:26,background nopattern spiketraparmed:27,5,12,0,0,0,13,10,10,10,10,background player:28,5,12,0,0,0,13,10,10,10,10,5,5,12,0,0,0,11,8,8,8,9,5,5,12,0,\n0,0,0,0,0,0,13,5,14,12,0,0,0,0,0,0,0,11,9,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,1,2,18,5,12,0,0,0,0,0,0,13,25,19,14,12,0,0,0,1,2,2,18,10,5,5,12,0,0,0,13,5,5,19,10,10,5,12,0,0,0,13,5,10,10,10,15,8,16,0,0,0,13,5,10,10,10,12,0,0,0,0,0,13,5,15,8,8,16,0,0,0,0,0,13,14,6,3,0,0,0,0,0,0,0,13,5,5,12,0,0,0,0,0,0,0,13,5,5,12,0,0,0,0,0,0,0,13,14,14,23,2,2,3,0,0,\n0,0,13,5,5,24,5,5,12,0,0,0,0,background wall walldlr:29,background wall walld walllr:30,5,19,5,5,12,0,0,0,0,13,20,5,5,5,5,12,0,0,0,1,background wall walldlr wallr:31,30,10,background wall walllr wallu:32,30,5,6,3,0,0,13,20,10,5,10,5,10,5,12,0,0,11,background wall walldlr walll:33,30,10,background wall walllr wallud:34,10,34,5,12,0,0,0,13,20,5,5,5,5,5,12,0,0,0,11,8,8,8,9,5,5,12,0,0,0,0,0,0,0,11,9,5,12,0,0,0,0,0,0,0,0,13,14,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,1,2,2,3,0,13,14,12,0,0,0,13,5,5,12,0,13,5,12,0,0,1,4,5,5,6,2,4,5,12,0,0,13,20,5,5,5,10,5,5,12,0,\n0,13,20,5,5,5,10,5,5,12,0,0,11,9,5,5,15,8,8,8,16,0,0,0,13,5,5,6,3,0,0,0,0,0,0,13,5,14,5,12,0,0,0,0,0,0,11,8,9,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,1,2,4,5,12,0,0,0,0,0,0,13,5,14,5,12,0,1,2,3,0,0,13,5,background wall walll wallrud wallu:35,background wall walllr:36,background wall wallr wallulr:37,2,4,25,12,0,0,13,5,24,5,5,5,5,5,12,1,2,4,5,19,5,5,5,5,5,12,13,20,10,10,10,10,5,32,background wall walld walll wallrud:38,5,12,13,20,10,5,10,10,5,5,19,5,12,13,20,10,10,10,10,5,5,5,5,12,13,20,5,5,15,8,9,5,5,5,12,\n11,8,8,8,16,0,11,9,5,15,16,0,0,0,0,0,0,0,13,14,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,1,2,background wall wallrud:39,2,18,14,12,0,0,0,0,13,25,19,25,19,5,12,0,0,0,0,13,5,5,5,5,5,12,0,0,0,0,13,5,5,5,5,32,background wall wallulr:40,0,0,0,0,13,5,5,5,5,17,12,0,0,1,2,4,5,5,5,5,32,40,0,0,13,5,5,5,5,5,5,17,12,0,0,13,5,5,15,8,8,8,8,16,0,0,13,5,5,12,0,0,0,0,0,0,0,13,14,14,12,0,0,0,0,0,0,0,13,5,5,12,1,2,3,0,0,0,0,13,14,14,6,4,25,6,2,3,0,\n0,13,5,5,5,5,5,5,5,12,0,0,11,8,9,5,5,10,5,5,6,3,0,0,0,13,5,10,5,10,5,17,12,0,0,0,13,5,5,5,5,5,15,16,0,0,0,11,8,9,5,15,8,16,0,0,0,0,0,1,4,5,6,3,0,0,0,0,1,2,4,5,5,5,12,0,0,0,0,13,5,14,5,5,5,12,0,0,0,0,13,5,15,8,8,8,16,0,0,0,0,13,5,12,0,1,2,3,0,0,0,0,13,14,12,0,13,25,12,0,0,0,0,13,5,12,0,13,5,6,2,3,0,1,4,5,6,2,18,5,5,5,12,1,4,5,5,5,5,19,5,5,5,12,13,20,5,5,5,5,5,5,5,5,12,\n11,9,5,5,5,5,21,5,5,5,12,0,11,8,9,5,15,background wall walld walllud:41,5,5,5,12,0,0,0,13,arrowtrapleftready background nopattern:42,12,11,9,5,15,16,0,0,0,11,8,16,0,13,14,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,1,2,2,39,4,5,12,0,0,0,0,13,25,25,24,5,14,12,0,0,0,0,13,5,5,19,5,15,16,0,0,0,0,13,5,10,5,10,6,3,0,0,1,2,4,10,10,5,5,17,12,0,0,13,5,5,10,5,10,10,17,12,0,0,13,5,5,21,10,10,10,15,16,0,0,13,14,5,background wall walllud wallu:43,8,8,8,16,0,0,0,13,5,15,16,0,0,0,0,0,0,\n0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,14,6,2,39,2,3,0,0,0,0,13,5,5,25,19,25,12,0,0,0,0,13,5,5,5,5,5,12,0,0,0,0,13,20,5,5,5,5,12,0,0,0,0,29,30,5,10,10,5,6,2,3,0,0,13,20,5,10,10,5,5,5,12,0,0,11,8,8,8,8,9,5,5,12,0,0,0,0,0,0,0,13,5,5,12,0,0,0,0,0,0,0,13,14,14,12,0,0,0,0,0,0,0,13,5,5,12,0,0,0,0,1,2,2,4,14,14,12,0,0,0,0,13,5,5,5,5,5,12,0,\n0,1,2,4,5,5,5,5,5,12,0,1,4,10,10,10,10,15,8,8,16,0,13,20,5,5,5,5,12,0,0,0,0,11,9,10,10,10,10,6,2,2,2,3,0,11,8,9,5,10,10,5,5,5,12,0,0,0,13,5,10,10,5,5,5,12,0,0,0,13,42,42,15,9,14,5,12,0,0,0,11,8,8,16,13,5,5,12,0,1,2,2,39,2,2,18,5,5,12,0,13,5,5,19,25,25,19,14,5,12,1,4,5,5,5,5,5,5,5,5,12,13,20,5,5,5,5,5,5,5,5,12,11,9,10,10,15,8,8,8,8,8,16,0,13,5,5,12,0,0,0,0,0,0,1,4,10,10,6,2,2,2,2,3,0,\n13,20,5,5,5,5,5,5,5,12,0,11,9,5,5,5,5,5,5,5,12,0,0,13,5,5,15,8,9,5,5,12,0,0,11,8,8,16,0,13,14,14,12,0,0,0,0,0,0,0,13,5,5,12,0,0,1,2,2,2,2,4,14,14,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,background gem gemmarker:44,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,11,8,8,8,8,8,8,8,16,0,0,0,0,0,0,0,0,0,0,0,0,\n", 0, "1627779607469.4893"] + ["title Spikes 'n' Stuff\n\nauthor Alan Hazelden\n\n(verbose_logging)\n\nagain_interval 0.05\nrealtime_interval 0.05\n\nflickscreen 11x11\n\nnoaction\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\n\nBackground\nDARKBLUE BLACK\n11111\n01111\n11101\n11111\n10111\n\nWall\n#767d80 #697175\n00111\n11101\n01001\n11110\n10011\n\nTarget\ntransparent\n(DarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....)\n\nExit\ntransparent\n\nArrowTrapUpReady\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n.123.\n0.2.4\n..2..\n..2..\n\nArrowTrapUpArmed\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n.153.\n0.5.4\n..5..\n..2..\n\nArrowTrapUpFired\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n01234\n..2..\n..2..\n..2..\n\nArrowTrapUpFired2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n.123.\n0.2.4\n..2..\n..2..\n\nArrowTrapUpFired3\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.....\n..2..\n.123.\n0.2.4\n..2..\n\nArrowTrapUpRearming\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.....\n.....\n..2..\n.123.\n0.2.4\n\nArrowTrapUpRearming2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.....\n..2..\n.123.\n0.2.4\n..2..\n\nArrowTrapDownReady\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n..2..\n0.2.4\n.123.\n..2..\n\nArrowTrapDownArmed\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n..5..\n0.5.4\n.153.\n..2..\n\nArrowTrapDownFired\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n..2..\n..2..\n01234\n..2..\n\nArrowTrapDownFired2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n..2..\n0.2.4\n.123.\n..2..\n\nArrowTrapDownFired3\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n0.2.4\n.123.\n..2..\n.....\n\nArrowTrapDownRearming\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n0.2.4\n.123.\n..2..\n.....\n.....\n\nArrowTrapDownRearming2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..2..\n0.2.4\n.123.\n..2..\n.....\n\nArrowTrapLeftReady\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n.1...\n22222\n.3...\n..4..\n\nArrowTrapLeftArmed\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n.1...\n25552\n.3...\n..4..\n\nArrowTrapLeftFired\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.0...\n.1...\n22222\n.3...\n.4...\n\nArrowTrapLeftFired2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n.1...\n22222\n.3...\n..4..\n\nArrowTrapLeftFired3\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n...0.\n..1..\n.2222\n..3..\n...4.\n\nArrowTrapLeftRearming\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n....0\n...1.\n..222\n...3.\n....4\n\nArrowTrapLeftRearming2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n...0.\n..1..\n.2222\n..3..\n...4.\n\nArrowTrapRightReady\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n...1.\n22222\n...3.\n..4..\n\nArrowTrapRightArmed\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n...1.\n25552\n...3.\n..4..\n\nArrowTrapRightFired\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n...0.\n...1.\n22222\n...3.\n...4.\n\nArrowTrapRightFired2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n..0..\n...1.\n22222\n...3.\n..4..\n\nArrowTrapRightFired3\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.0...\n..1..\n2220.\n..3..\n.4...\n\nArrowTrapRightRearming\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n0....\n.1...\n222..\n.3...\n4....\n\nArrowTrapRightRearming2\nDarkBrown DarkBrown DarkBrown DarkBrown DarkBrown white\n.0...\n..1..\n2220.\n..3..\n.4...\n\n(#524432 #4d4030 #4a3c2c #443929 #403527)\n\nPlayer\n#a46422 #495e2b #493c2b #000000\n..0..\n.111.\n01110\n02220\n.2.2.\n\nPlayerDead\n#a46422 #495e2b #493c2b black white\n..00.\n.1122\n0112.\n.1122\n..00.\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\nGem\nYellow White Orange\n.000.\n01100\n01000\n00002\n.022.\n\nGemBroken\nYellow White Orange black\n.000.\n.313.\n01.0.\n03002\n..22.\n\nNoPattern\nblack\n\nSpikeTrap\ntransparent darkgreen black\n00000\n01210\n02220\n01210\n00000\n\nSpikeTrapArmed\ntransparent white transparent grey\n00000\n01210\n02220\n01210\n00000\n\nSpikeTrapDeadly\ntransparent white transparent grey\n01010\n03230\n01210\n03230\n00000\n\nArrowUp\nwhite\n.....\n..0..\n..0..\n..0..\n.....\n\nArrowDown\nwhite\n.....\n..0..\n..0..\n..0..\n.....\n\nArrowLeft\nwhite\n.....\n.....\n.000.\n.....\n.....\n\nArrowRight\nwhite\n.....\n.....\n.000.\n.....\n.....\n\nArrowCollision\nwhite\n.....\n..0..\n.000.\n..0..\n.....\n\nArrowCollision2\nwhite\n...0.\n.....\n.0...\n....0\n.....\n\nLOS\nwhite\n\nWallL\n#373c3f\n0....\n0....\n0....\n0....\n0....\n\nWallR\n#373c3f\n....0\n....0\n....0\n....0\n....0\n\nWallU\n#373c3f\n00000\n.....\n.....\n.....\n.....\n\nWallD\n#373c3f\n.....\n.....\n.....\n.....\n00000\n\nWallLR\n#373c3f\n0...0\n0...0\n0...0\n0...0\n0...0\n\nWallUD\n#373c3f\n00000\n.....\n.....\n.....\n00000\n \nWallUL\n#373c3f\n0....\n.....\n.....\n.....\n.....\n \nWallUR\n#373c3f\n....0\n.....\n.....\n.....\n.....\n \nWallDL\n#373c3f\n.....\n.....\n.....\n.....\n0....\n \nWallDR\n#373c3f\n.....\n.....\n.....\n.....\n....0\n \nWallDLR\n#373c3f\n.....\n.....\n.....\n.....\n0...0\n \nWallULR\n#373c3f\n0...0\n.....\n.....\n.....\n.....\n \nWallLUD\n#373c3f\n0....\n.....\n.....\n.....\n0....\n \nWallRUD\n#373c3f\n....0\n.....\n.....\n.....\n....0\n\nBloodL1\nred\n.....\n.....\n....0\n.....\n.....\n\nBloodL2\nred\n.....\n....0\n....0\n....0\n.....\n\nBloodL3\nred\n....0\n....0\n....0\n....0\n....0\n\nBloodL4_1\nred\n....0\n....0\n...00\n...00\n....0\n\nBloodL4_2\nred\n....0\n...00\n...00\n....0\n....0\n\nBloodR1\nred\n.....\n.....\n0....\n.....\n.....\n\nBloodR2\nred\n.....\n0....\n0....\n0....\n.....\n\nBloodR3\nred\n0....\n0....\n0....\n0....\n0....\n\nBloodR4_1\nred\n0....\n0....\n00...\n00...\n0....\n\nBloodR4_2\nred\n0....\n0....\n00...\n00...\n0....\n\nBloodU1\nred\n.....\n.....\n.....\n.....\n..0..\n\nBloodU2\nred\n.....\n.....\n.....\n.....\n.000.\n\nBloodU3\nred\n.....\n.....\n.....\n.....\n00000\n\nBloodU4_1\nred\n.....\n.....\n.....\n.00..\n00000\n\nBloodU4_2\nred\n.....\n.....\n.....\n..00.\n00000\n\nBloodD1\nred\n..0..\n.....\n.....\n.....\n.....\n\nBloodD2\nred\n.000.\n.....\n.....\n.....\n.....\n\nBloodD3\nred\n00000\n.....\n.....\n.....\n.....\n\nBloodD4_1\nred\n00000\n..00.\n.....\n.....\n.....\n\nBloodD4_2\nred\n00000\n.00..\n.....\n.....\n.....\n\nBloodD4_3\nred\n00000\n.....\n.....\n.....\n.....\n\nGemMarker\ntransparent\n\n\n=======\nLEGEND\n=======\n\n\n\nArrow = ArrowLeft or ArrowRight or ArrowUp or ArrowDown\nSpikeTrapAny = SpikeTrap or SpikeTrapArmed or SpikeTrapDeadly\n\nArrowTrapReady = ArrowTrapUpReady or ArrowTrapDownReady or ArrowTrapLeftReady or ArrowTrapRightReady\nArrowTrapArmed = ArrowTrapLeftArmed or ArrowTrapRightArmed or ArrowTrapUpArmed or ArrowTrapDownArmed\nArrowTrapRearming = ArrowTrapLeftRearming or ArrowTrapRightRearming or ArrowTrapUpRearming or ArrowTrapDownRearming\nArrowTrapRearming2 = ArrowTrapLeftRearming2 or ArrowTrapRightRearming2 or ArrowTrapUpRearming2 or ArrowTrapDownRearming2\n\nArrowTrapLeftFiredAny = ArrowTrapLeftFired or ArrowTrapLeftFired2 or ArrowTrapLeftFired3\nArrowTrapRightFiredAny = ArrowTrapRightFired or ArrowTrapRightFired2 or ArrowTrapRightFired3\nArrowTrapUpFiredAny = ArrowTrapUpFired or ArrowTrapUpFired2 or ArrowTrapUpFired3\nArrowTrapDownFiredAny = ArrowTrapDownFired or ArrowTrapDownFired2 or ArrowTrapDownFired3\n\nArrowTrapFiredAnim = ArrowTrapLeftFired or ArrowTrapLeftFired2 or ArrowTrapLeftFired3 or ArrowTrapRightFired or ArrowTrapRightFired2 or ArrowTrapRightFired3 or ArrowTrapUpFired or ArrowTrapUpFired2 or ArrowTrapUpFired3 or ArrowTrapDownFired or ArrowTrapDownFired2 or ArrowTrapDownFired3\n\nArrowTrapAny = ArrowTrapReady or ArrowTrapArmed or ArrowTrapRearming or ArrowTrapRearming2 or ArrowTrapFiredAnim\n\nTriggersSpikes = Crate or Gem or Player\nTriggersArrow = Player\nKillable = Player\nNeedsTick = SpikeTrap or SpikeTrapArmed or SpikeTrapDeadly or ArrowTrapAny\n\n\nSolid = Wall or Crate or Gem or ArrowTrapAny\n\n. = Background\n# = Wall\nP = Player and exit\nq = exit\n* = Crate\n(@ = SwitchOff)\nO = Target\n% = SpikeTrap and NoPattern\n~ = Gem and GemMarker\n\ni = ArrowTrapUpReady and NoPattern\n! = ArrowTrapDownReady and NoPattern\n{ = ArrowTrapLeftReady and NoPattern\n} = ArrowTrapRightReady and NoPattern\n\nBloodLeft = BloodL1 or BloodL2 or BloodL3 or BloodL4_1 or BloodL4_2\nBloodRight = BloodR1 or BloodR2 or BloodR3 or BloodR4_1 or BloodR4_2\nBloodUp = BloodU1 or BloodU2 or BloodU3 or BloodU4_1 or BloodU4_2\nBloodDown = BloodD1 or BloodD2 or BloodD3 or BloodD4_1 or BloodD4_2 or BloodD4_3\n\nBloodL4 = BloodL4_1 or BloodL4_2\nBloodR4 = BloodR4_1 or BloodR4_2\nBloodU4 = BloodU4_1 or BloodU4_2\nBloodD4 = BloodD4_1 or BloodD4_2 or BloodD4_3\n\nBloodFinal = BloodL4 or BloodR4 or BloodU4 or BloodD4\n\nBlood = BloodLeft or BloodRight or BloodUp or BloodDown\n\nWallCoverLR = WallL or WallR or WallLR\nWallCoverUD = WallU or WallD or WallUD\nWallCoverCorner = WallUL or WallUR or WallDL or WallDR or WallDLR or WallLUD or WallRUD or WallULR\nWallCover = WallCoverLR or WallCoverUD or WallCoverCorner\n\nCoverLR = WallCoverLR\nCoverUD = WallCoverUD\n\n\n=======\nSOUNDS\n=======\n\n(Player Create 1326707)\n\nSpikeTrapDeadly Create 85964907\nArrowTrapArmed Create 9956307\nArrowTrapRearming Create 95334907\n\n(Arrow Create 3367509)\n\nArrowCollision Create 3790700\nPlayerDead Create 97930904\nGemBroken Create 48343102\n\n(sfx1 76483702) (arrow hits wall)\nsfx2 13478508 (pick up gem for first time)\n\nUndo 8748307\n(Cancel 1326707)\nRestart 28758302\n\nEndLevel 73821303\nStartGame 47020108\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nNoPattern\nBloodLeft\nBloodRight\nBloodUp\nBloodDown\nTarget, SpikeTrap, SpikeTrapArmed, SpikeTrapDeadly, Exit, GemMarker\nGemBroken\nPlayer, Wall, Crate, Gem, PlayerDead\nWallCoverUD\nWallCoverCorner\nWallCoverLR, LOS\nArrowTrapAny\nArrow, ArrowCollision, ArrowCollision2\n\n======\nRULES\n======\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\nleft [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallLUD | WallUD ]\nright [ Wall no WallCoverCorner no WallUD | WallUD ] -> [ Wall WallRUD | WallUD ]\nup [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallULR | WallLR ]\ndown [ Wall no WallCoverCorner no WallLR | WallLR ] -> [ Wall WallDLR | WallLR ]\n\nright [ WallD | Wall no WallCoverCorner no WallCoverUD ] -> [ WallD | Wall WallDL ]\nleft [ WallD | Wall no WallCoverCorner no WallCoverUD ] -> [ WallD | Wall WallDR ]\n \nright [ WallU | Wall no WallCoverCorner no WallCoverUD ] -> [ WallU | Wall WallUL ]\nleft [ WallU | Wall no WallCoverCorner no WallCoverUD ] -> [ WallU | Wall WallUR ]\n\n(Blood)\n\n[ PlayerDead Blood ] -> [ PlayerDead action Blood ] again\n\nrandom [ PlayerDead | no Blood ] -> [ > PlayerDead no SpikeTrapAny | ]\n\n[ left PlayerDead no BloodRight ] -> [ PlayerDead BloodR1 ] again\n[ right PlayerDead no BloodLeft ] -> [ PlayerDead BloodL1 ] again\n[ up PlayerDead no BloodDown ] -> [ PlayerDead BloodD1 ] again\n[ down PlayerDead no BloodUp ] -> [ PlayerDead BloodU1 ] again\n\nrandom [ PlayerDead | no Blood ] -> [ > PlayerDead no SpikeTrapDeadly | ]\n\n[ left PlayerDead no BloodRight ] -> [ PlayerDead BloodR1 ] again\n[ right PlayerDead no BloodLeft ] -> [ PlayerDead BloodL1 ] again\n[ up PlayerDead no BloodDown ] -> [ PlayerDead BloodD1 ] again\n[ down PlayerDead no BloodUp ] -> [ PlayerDead BloodU1 ] again\n\n[ PlayerDead ] -> [ stationary PlayerDead ]\n\n[ action BloodL3 ] -> [ random BloodL4 ] again\n[ action BloodL2 ] -> [ BloodL3 ] again\n[ action BloodL1 ] -> [ BloodL2 ] again\n\n[ action BloodR3 ] -> [ random BloodR4 ] again\n[ action BloodR2 ] -> [ BloodR3 ] again\n[ action BloodR1 ] -> [ BloodR2 ] again\n\n[ action BloodU3 ] -> [ random BloodU4 ] again\n[ action BloodU2 ] -> [ BloodU3 ] again\n[ action BloodU1 ] -> [ BloodU2 ] again\n\n[ action BloodD3 ] -> [ random BloodD4 ] again\n[ action BloodD2 ] -> [ BloodD3 ] again\n[ action BloodD1 ] -> [ BloodD2 ] again\n\n[ BloodL3 no PlayerDead ] -> [ random BloodL4 ] again\n[ BloodL2 no PlayerDead ] -> [ BloodL3 ] again\n[ BloodL1 no PlayerDead ] -> [ BloodL2 ] again\n\n[ BloodR3 no PlayerDead ] -> [ random BloodR4 ] again\n[ BloodR2 no PlayerDead ] -> [ BloodR3 ] again\n[ BloodR1 no PlayerDead ] -> [ BloodR2 ] again\n\n[ BloodU3 no PlayerDead ] -> [ random BloodU4 ] again\n[ BloodU2 no PlayerDead ] -> [ BloodU3 ] again\n[ BloodU1 no PlayerDead ] -> [ BloodU2 ] again\n\n[ BloodD3 no PlayerDead ] -> [ random BloodD4 ] again\n[ BloodD2 no PlayerDead ] -> [ BloodD3 ] again\n[ BloodD1 no PlayerDead ] -> [ BloodD2 ] again\n\nleft [ action BloodR4 | no Blood ] -> [ BloodR4 | BloodL1 ] again\nright [ action BloodL4 | no Blood ] -> [ BloodL4 | BloodR1 ] again\nup [ action BloodD4 | no Blood ] -> [ BloodD4 | BloodU1 ] again\ndown [ action BloodU4 | no Blood ] -> [ BloodU4 | BloodD1 ] again\n\n[ Blood no BloodFinal ] -> again\n\n(arrow firing anim)\n\n[ stationary Player ] [ ArrowTrapFiredAnim ] -> [ Player ] [ action ArrowTrapFiredAnim ]\n[ PlayerDead ] [ ArrowTrapFiredAnim ] -> [ PlayerDead ] [ action ArrowTrapFiredAnim ]\n\n[ ArrowTrapAny no ArrowTrapFiredAnim Target ] -> [ ArrowTrapAny ]\n\n[ action ArrowTrapUpFired3 ] -> [ ArrowTrapUpRearming ]\n[ action ArrowTrapUpFired2 Target ] -> [ ArrowTrapUpFired3 ]\n[ action ArrowTrapUpFired2 no Target ] -> [ ArrowTrapUpFired2 Target ]\n[ action ArrowTrapUpFired Target ] -> [ ArrowTrapUpFired2 ]\n[ action ArrowTrapUpFired no Target ] -> [ ArrowTrapUpFired Target ]\n\n[ action ArrowTrapDownFired3 ] -> [ ArrowTrapDownRearming ]\n[ action ArrowTrapDownFired2 Target ] -> [ ArrowTrapDownFired3 ]\n[ action ArrowTrapDownFired2 no Target ] -> [ ArrowTrapDownFired2 Target ]\n[ action ArrowTrapDownFired Target ] -> [ ArrowTrapDownFired2 ]\n[ action ArrowTrapDownFired no Target ] -> [ ArrowTrapDownFired Target ]\n\n[ action ArrowTrapLeftFired3 ] -> [ ArrowTrapLeftRearming ]\n[ action ArrowTrapLeftFired2 Target ] -> [ ArrowTrapLeftFired3 ]\n[ action ArrowTrapLeftFired2 no Target ] -> [ ArrowTrapLeftFired2 Target ]\n[ action ArrowTrapLeftFired Target ] -> [ ArrowTrapLeftFired2 ]\n[ action ArrowTrapLeftFired no Target ] -> [ ArrowTrapLeftFired Target ]\n\n[ action ArrowTrapRightFired3 ] -> [ ArrowTrapRightRearming ]\n[ action ArrowTrapRightFired2 Target ] -> [ ArrowTrapRightFired3 ]\n[ action ArrowTrapRightFired2 no Target ] -> [ ArrowTrapRightFired2 Target ]\n[ action ArrowTrapRightFired Target ] -> [ ArrowTrapRightFired2 ]\n[ action ArrowTrapRightFired no Target ] -> [ ArrowTrapRightFired Target ]\n\n(Start of turn)\n\n[ Gem | moving Player ] -> [ > Gem | moving Player ]\n\n[ ArrowCollision2 ] -> []\n[ ArrowCollision ] -> [ ArrowCollision2 ] again\n\n[ moving Player ] [ NeedsTick ] -> [ moving Player ] [ action NeedsTick ]\n\n[ TriggersSpikes action SpikeTrapArmed ] -> [ TriggersSpikes SpikeTrapArmed ]\n\n[ action SpikeTrapDeadly ] -> [ SpikeTrap ]\n\n[ action SpikeTrapArmed ] -> [ SpikeTrapDeadly ]\n\n[ TriggersSpikes action SpikeTrap ] -> [ TriggersSpikes SpikeTrapArmed ]\n\n(prevent player moving out of path of arrow)\nleft [ ArrowLeft | ... | moving Player ] -> cancel\nright [ ArrowRight | ... | moving Player ] -> cancel\nup [ ArrowUp | ... | moving Player ] -> cancel\ndown [ ArrowDown | ... | moving Player ] -> cancel\n\nleft [ ArrowLeft | ... | moving Gem ] -> cancel\nright [ ArrowRight | ... | moving Gem ] -> cancel\nup [ ArrowUp | ... | moving Gem ] -> cancel\ndown [ ArrowDown | ... | moving Gem ] -> cancel\n\n[ moving Player ] [ Arrow ] -> [ moving Player ] [ action Arrow ]\n\n(movement)\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Player | Gem ] -> [ > Player | > Gem ]\n\n[ > Gem | Solid ] -> cancel\n[ > Crate | Solid ] -> cancel\n[ > Player | stationary Solid ] -> cancel\n[ > Player | ArrowTrapAny ] -> cancel\n\n[ > Player | no Solid ] -> [ | Player ]\n[ > Crate | no Solid ] -> [ | Crate ]\n[ > Gem | no Solid ] -> [ | Gem ]\n[ > Player | no Solid ] -> [ | Player ]\n\n( death )\n\n[ Player SpikeTrapDeadly ] -> [ PlayerDead SpikeTrapDeadly ] again\n\n\n( end of turn )\n\n[ action ArrowTrapUpReady ] -> [ ArrowTrapUpReady up LOS ]\n[ action ArrowTrapDownReady ] -> [ ArrowTrapDownReady down LOS ]\n[ action ArrowTrapLeftReady ] -> [ ArrowTrapLeftReady left LOS ]\n[ action ArrowTrapRightReady ] -> [ ArrowTrapRightReady right LOS ]\n\n[ > LOS | Solid ] -> [ | Solid ]\n+ [ > LOS | no Solid no LOS no TriggersArrow ] -> [ | > LOS ]\n\n[ > LOS | TriggersArrow ] -> [ < LOS | TriggersArrow ]\n\n[ > LOS no ArrowTrapReady | no Solid no LOS ] -> [ | > LOS ]\n[ > LOS no ArrowTrapReady | ArrowTrapReady ] -> [ | LOS ArrowTrapReady ]\n\n[ LOS ArrowTrapUpReady ] -> [ ArrowTrapUpArmed ]\n[ LOS ArrowTrapDownReady ] -> [ ArrowTrapDownArmed ]\n[ LOS ArrowTrapLeftReady ] -> [ ArrowTrapLeftArmed ]\n[ LOS ArrowTrapRightReady ] -> [ ArrowTrapRightArmed ]\n\n[ LOS ] -> []\n\n[ action ArrowTrapUpArmed ] -> [ ArrowTrapUpFired ArrowUp ]\n[ action ArrowTrapDownArmed ] -> [ ArrowTrapDownFired ArrowDown ]\n[ action ArrowTrapLeftArmed ] -> [ ArrowTrapLeftFired ArrowLeft ]\n[ action ArrowTrapRightArmed ] -> [ ArrowTrapRightFired ArrowRight ]\n\n[ action ArrowTrapUpFiredAny ] -> [ ArrowTrapUpRearming2 ]\n[ action ArrowTrapDownFiredAny ] -> [ ArrowTrapDownRearming2 ]\n[ action ArrowTrapLeftFiredAny ] -> [ ArrowTrapLeftRearming2 ]\n[ action ArrowTrapRightFiredAny ] -> [ ArrowTrapRightRearming2 ]\n\n[ action ArrowTrapUpRearming ] -> [ ArrowTrapUpRearming2 ]\n[ action ArrowTrapDownRearming ] -> [ ArrowTrapDownRearming2 ]\n[ action ArrowTrapLeftRearming ] -> [ ArrowTrapLeftRearming2 ]\n[ action ArrowTrapRightRearming ] -> [ ArrowTrapRightRearming2 ]\n\n[ action ArrowTrapUpRearming2 ] -> [ ArrowTrapUpReady ]\n[ action ArrowTrapDownRearming2 ] -> [ ArrowTrapDownReady ]\n[ action ArrowTrapLeftRearming2 ] -> [ ArrowTrapLeftReady ]\n[ action ArrowTrapRightRearming2 ] -> [ ArrowTrapRightReady ]\n\n(arrows)\n\n[ stationary ArrowUp ] -> [ up ArrowUp ]\n[ stationary ArrowDown ] -> [ down ArrowDown ]\n[ stationary ArrowLeft ] -> [ left ArrowLeft ]\n[ stationary ArrowRight ] -> [ right ArrowRight ]\n\n[ > Arrow | Player ] -> [ | PlayerDead ] again\n[ > Arrow | no Solid no Arrow ] -> [ | Arrow ] (again)\n[ > Arrow | Gem ] -> [ | GemBroken no SpikeTrapAny ]\n[ > Arrow | Solid ] -> [ | Solid ] sfx1\n[ > Arrow | no Solid no Arrow ] -> [ | Arrow ] (again)\n+ [ > Arrow | stationary Arrow ] -> [ | ArrowCollision ] (again)\n[ > Arrow | Gem ] -> [ | GemBroken no SpikeTrapAny ]\n[ > Arrow | Solid ] -> [ | Solid ] sfx1\n\n([ Arrow SpikeTrapArmed ] -> [ SpikeTrapArmed ]\n[ Arrow SpikeTrapDeadly ] -> [ SpikeTrapDeadly ])\n\n(checkpoints)\n\n[ Player Target ] -> [ Player action Target ]\n[ Gem Target ] -> [ Gem action Target ]\n\n[ Gem ] [ action Target ] -> checkpoint\n\n[ Player | GemMarker ] -> [ Player | ] sfx2\n\n\n==============\nWINCONDITIONS\n==============\n\nall player on exit\nall gem on exit\nsome player\nsome gem\n\n=======\nLEVELS\n=======\n\n(###p##################\n###q##############!###\n##...############...o.\n##....###########...##\n##...%.#!########..###\n###.%..%..##........##\n####..~%.o..o.......##\n#####..%..##........##\n##############i#######\n######################\n\n#####!!!!##\n#####%%%.##\n#....%.%.##\n#o###%%%###\n..#..%%%###\n###.....###\n###..#...##\n###..##...o\n##}......##\n###########)\n\n(###p###################################################\n###q##############!####################################\n###.#############...#############################!#####\n##...############...o..o...%%########....o..o.#!#%#!###\n##....###########...######%%%########.%%##..o...%.%.###\n##...%.###########.#####}%%%%#########%%#######.#%#.###\n###.%..%..##........#####%%%%######}%%%%#####...#.%.###\n####...%.o..o.......######%....#####.%#######....%#..##\n#####..%..##........######....o....o..###########.....o\n##############i########################################\n#######################################################\n\n#######################################################\n################!!!!#############################!#####\n####!!##########%%%.#########...o.o.############...####\n##.......###....%.%.#########...o.o.######...o.....####\n##......o###o###%%%#####}.....#####....###o#####....{##\n####..##.....#..%%%######.....#####..%.##..#####...####\n####%%########.....#####}.....####}.%......######.#####\n####..########..#...#####.....#####..%.##..##}......###\n.o....########..##...o.o..#i#i#####....########......o.\n#############}......#################i#########.....###\n#######################################################\n\n#######################################################\n###########################!########!###!##############\n######..o....o..!#!#######%.%#####...%.%...###.......##\n######...#####.....#######%.%#####...%.%...###.......##\n##}..%%#######}..%%#####..%.%..{###..###..####.......##\n##}.%%.%#######..%%#####..%.%%%{##}..###..####...~...##\n####..%%######}....#####..###%%###}..###..####.......##\n##..%.%%##########...o.o..###..####..###...o.o.......##\n..o##ii###########...o.o..###..o..o..###...o.o.......##\n#############################........##################\n#######################################################)\n\n###p#################################################################################################################################################################\n###q##############!####################################################!!!!#############################!################################!########!###!##############\n###.#############...#############################!#########!!##########%%%.#########...o.o.############...##########..o....o..!#!#######%.%#####...%.%...###.......##\n##...############...o..o...%%########....o..o.#!#%#!#####.......###....%.%.#########...o.o.######...o.....##########...#####.....#######%.%#####...%.%...###.......##\n##....###########...######%%%########.%%##..o...%.%.#####......o###o###%%%#####}.....#####....###o#####....{####}..%%#######}..%%#####..%.%..{###..###..####.......##\n##...%.###########.#####}%%%%#########%%#######.#%#.#######..##.....#..%%%######.....#####..%.##..#####...######}.%%.%#######..%%#####..%.%%%{##}..###..####...~...##\n###.%..%..##........#####%%%%######}%%%%#####...#.%.#######%%########.....#####}.....####}.%......######.#########..%%######}....#####..###%%###}..###..####.......##\n####...%.o..o.......######%....#####.%#######....%#..######..########..#...#####.....#####..%.##..##}......#####..%.%%##########...o.o..###..####..###...o.o.......##\n#####..%..##........######....o....o..###########.....o.o....########..##...o.o..#i#i#####....########......o...o##ii###########...o.o..###..o..o..###...o.o.......##\n##############i#####################################################}......#################i#########.....################################........##################\n#####################################################################################################################################################################\n\n\nmessage Thanks for playing :)\n\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",0,"tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",2,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick","tick",3,"tick","tick","tick",2,"tick","tick","tick","tick",2,3,"tick","tick","tick","tick",3,"tick","tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick","tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick","tick",3,"tick","tick","tick","tick","tick",3,"tick","tick","tick","tick",0,"tick","tick","tick",1,"tick","tick","tick","tick","tick",0,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",2,"tick","tick","tick","tick","undo","tick","tick","tick","undo","tick","tick","tick","tick","tick","tick",3,"tick","tick","tick","tick",1,"tick","tick","tick","tick","tick","tick",1,"tick","tick","tick","tick",3,"tick","tick","tick","tick","tick",0,"tick","tick","tick","tick","tick",0,"tick","tick",3,"tick","tick","tick","tick","tick",0,"tick","tick","tick",3,"tick","tick","tick","tick",3,"tick","tick","tick","tick",3,"tick","tick","tick","tick","tick","tick",3,"tick","tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick",3,"tick","tick","tick","tick",2,"tick","tick","tick","tick","tick",2,"tick","tick","tick","tick",2,"tick","tick","tick","tick",2,"tick","tick","tick","tick","tick","tick",3,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,background wall walldr:1,background wall wallr:2,2,2,background wall wallur:3,0,0,0,0,2,2,background wall walld wallr:4,background:5,5,5,background wall wallr wallu:6,3,0,0,0,background exit:7,7,5,5,5,5,5,6,3,0,0,background wall walll:8,8,background wall walld walll:9,5,5,5,background nopattern spiketrap:10,5,6,3,0,0,0,background wall walldl:11,9,5,10,5,5,5,background wall wallu:12,0,0,0,0,11,9,5,5,5,5,12,0,0,0,0,0,11,9,10,10,10,12,0,0,0,0,0,0,background wall walld:13,5,5,5,12,0,0,0,0,0,0,13,5,background target:14,5,12,0,0,0,0,0,0,11,9,5,background wall walll wallu:15,background wall wallul:16,0,0,0,0,0,0,1,4,5,6,3,0,0,0,0,0,0,13,5,14,5,12,0,0,0,0,0,0,13,5,5,5,6,3,0,0,0,0,0,13,5,5,5,arrowtrapupready background nopattern:17,12,\n0,0,0,0,0,13,5,5,5,15,16,0,1,2,2,2,background wall walld wallrud:18,5,5,5,12,0,1,4,5,5,5,background wall wallr wallud:19,5,5,5,12,0,13,arrowtrapdownready background nopattern:20,5,5,5,5,5,5,5,12,0,11,9,5,5,5,background wall walll wallud:21,5,5,5,12,0,0,11,9,14,15,background wall walllud:22,8,8,8,16,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,14,background wall wallrud wallu:23,2,3,0,0,0,0,0,0,13,5,background wall wallud:24,arrowtraprightready background nopattern:25,6,3,0,0,0,0,0,13,5,19,10,10,6,2,3,0,0,0,13,5,10,10,background nopattern spiketrapdeadly:26,background nopattern spiketraparmed:27,5,12,0,0,0,13,10,10,10,10,background player:28,5,12,0,0,0,13,10,10,10,10,5,5,12,0,0,0,11,8,8,8,9,5,5,12,0,\n0,0,0,0,0,0,13,5,14,12,0,0,0,0,0,0,0,11,9,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,1,2,18,5,12,0,0,0,0,0,0,13,25,19,14,12,0,0,0,1,2,2,18,10,5,5,12,0,0,0,13,5,5,19,10,10,5,12,0,0,0,13,5,10,10,10,15,8,16,0,0,0,13,5,10,10,10,12,0,0,0,0,0,13,5,15,8,8,16,0,0,0,0,0,13,14,6,3,0,0,0,0,0,0,0,13,5,5,12,0,0,0,0,0,0,0,13,5,5,12,0,0,0,0,0,0,0,13,14,14,23,2,2,3,0,0,\n0,0,13,5,5,24,5,5,12,0,0,0,0,background wall walldlr:29,background wall walld walllr:30,5,19,5,5,12,0,0,0,0,13,20,5,5,5,5,12,0,0,0,1,background wall walldlr wallr:31,30,10,background wall walllr wallu:32,30,5,6,3,0,0,13,20,10,5,10,5,10,5,12,0,0,11,background wall walldlr walll:33,30,10,background wall walllr wallud:34,10,34,5,12,0,0,0,13,20,5,5,5,5,5,12,0,0,0,11,8,8,8,9,5,5,12,0,0,0,0,0,0,0,11,9,5,12,0,0,0,0,0,0,0,0,13,14,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,1,2,2,3,0,13,14,12,0,0,0,13,5,5,12,0,13,5,12,0,0,1,4,5,5,6,2,4,5,12,0,0,13,20,5,5,5,10,5,5,12,0,\n0,13,20,5,5,5,10,5,5,12,0,0,11,9,5,5,15,8,8,8,16,0,0,0,13,5,5,6,3,0,0,0,0,0,0,13,5,14,5,12,0,0,0,0,0,0,11,8,9,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,1,2,4,5,12,0,0,0,0,0,0,13,5,14,5,12,0,1,2,3,0,0,13,5,background wall walll wallrud wallu:35,background wall walllr:36,background wall wallr wallulr:37,2,4,25,12,0,0,13,5,24,5,5,5,5,5,12,1,2,4,5,19,5,5,5,5,5,12,13,20,10,10,10,10,5,32,background wall walld walll wallrud:38,5,12,13,20,10,5,10,10,5,5,19,5,12,13,20,10,10,10,10,5,5,5,5,12,13,20,5,5,15,8,9,5,5,5,12,\n11,8,8,8,16,0,11,9,5,15,16,0,0,0,0,0,0,0,13,14,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,1,2,background wall wallrud:39,2,18,14,12,0,0,0,0,13,25,19,25,19,5,12,0,0,0,0,13,5,5,5,5,5,12,0,0,0,0,13,5,5,5,5,32,background wall wallulr:40,0,0,0,0,13,5,5,5,5,17,12,0,0,1,2,4,5,5,5,5,32,40,0,0,13,5,5,5,5,5,5,17,12,0,0,13,5,5,15,8,8,8,8,16,0,0,13,5,5,12,0,0,0,0,0,0,0,13,14,14,12,0,0,0,0,0,0,0,13,5,5,12,1,2,3,0,0,0,0,13,14,14,6,4,25,6,2,3,0,\n0,13,5,5,5,5,5,5,5,12,0,0,11,8,9,5,5,10,5,5,6,3,0,0,0,13,5,10,5,10,5,17,12,0,0,0,13,5,5,5,5,5,15,16,0,0,0,11,8,9,5,15,8,16,0,0,0,0,0,1,4,5,6,3,0,0,0,0,1,2,4,5,5,5,12,0,0,0,0,13,5,14,5,5,5,12,0,0,0,0,13,5,15,8,8,8,16,0,0,0,0,13,5,12,0,1,2,3,0,0,0,0,13,14,12,0,13,25,12,0,0,0,0,13,5,12,0,13,5,6,2,3,0,1,4,5,6,2,18,5,5,5,12,1,4,5,5,5,5,19,5,5,5,12,13,20,5,5,5,5,5,5,5,5,12,\n11,9,5,5,5,5,21,5,5,5,12,0,11,8,9,5,15,background wall walld walllud:41,5,5,5,12,0,0,0,13,arrowtrapleftready background nopattern:42,12,11,9,5,15,16,0,0,0,11,8,16,0,13,14,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,1,2,2,39,4,5,12,0,0,0,0,13,25,25,24,5,14,12,0,0,0,0,13,5,5,19,5,15,16,0,0,0,0,13,5,10,5,10,6,3,0,0,1,2,4,10,10,5,5,17,12,0,0,13,5,5,10,5,10,10,17,12,0,0,13,5,5,21,10,10,10,15,16,0,0,13,14,5,background wall walllud wallu:43,8,8,8,16,0,0,0,13,5,15,16,0,0,0,0,0,0,\n0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,5,12,0,0,0,0,0,0,0,0,13,14,6,2,39,2,3,0,0,0,0,13,5,5,25,19,25,12,0,0,0,0,13,5,5,5,5,5,12,0,0,0,0,13,20,5,5,5,5,12,0,0,0,0,29,30,5,10,10,5,6,2,3,0,0,13,20,5,10,10,5,5,5,12,0,0,11,8,8,8,8,9,5,5,12,0,0,0,0,0,0,0,13,5,5,12,0,0,0,0,0,0,0,13,14,14,12,0,0,0,0,0,0,0,13,5,5,12,0,0,0,0,1,2,2,4,14,14,12,0,0,0,0,13,5,5,5,5,5,12,0,\n0,1,2,4,5,5,5,5,5,12,0,1,4,10,10,10,10,15,8,8,16,0,13,20,5,5,5,5,12,0,0,0,0,11,9,10,10,10,10,6,2,2,2,3,0,11,8,9,5,10,10,5,5,5,12,0,0,0,13,5,10,10,5,5,5,12,0,0,0,13,42,42,15,9,14,5,12,0,0,0,11,8,8,16,13,5,5,12,0,1,2,2,39,2,2,18,5,5,12,0,13,5,5,19,25,25,19,14,5,12,1,4,5,5,5,5,5,5,5,5,12,13,20,5,5,5,5,5,5,5,5,12,11,9,10,10,15,8,8,8,8,8,16,0,13,5,5,12,0,0,0,0,0,0,1,4,10,10,6,2,2,2,2,3,0,\n13,20,5,5,5,5,5,5,5,12,0,11,9,5,5,5,5,5,5,5,12,0,0,13,5,5,15,8,9,5,5,12,0,0,11,8,8,16,0,13,14,14,12,0,0,0,0,0,0,0,13,5,5,12,0,0,1,2,2,2,2,4,14,14,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,background gem gemmarker:44,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,13,5,5,5,5,5,5,5,12,0,0,11,8,8,8,8,8,8,8,16,0,0,0,0,0,0,0,0,0,0,0,0,\n",0,"1627779607469.4893"] ], [ `gallery: XL-Plan`, - ["title XL-Plan\nauthor Mark Richardson\nflickscreen 9x11\nkey_repeat_interval 0.5\nnoaction\nrequire_player_movement\nrun_rules_on_level_start\n(verbose_logging)\n\n\n========\nOBJECTS\n========\n\nBackground .\nBlack\n\nPlayer\n#800\n\nNext $\n#008\n\nRefill &\nTransparent (#066)\n\nGoal {\n#660\n\nCursor1\n#080\n\nCursor2\n#080\n\nCursor3\n#080\n\nWall #\n#222\n\nZ\nWhite\n.....\n.....\n..0..\n.....\n.....\n\nI\nWhite\n.....\n..0..\n..0..\n..0..\n.....\n\nU\nWhite\n.....\n.0.0.\n.0.0.\n..0..\n.....\n\nX\nWhite\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nL\nWhite\n.....\n.0...\n.0...\n.000.\n.....\n\nC\nWhite\n.....\n..00.\n.0...\n..00.\n.....\n\nD\nWhite\n.....\n.00..\n.0.0.\n.00..\n.....\n\nM\nWhite Gray\n.....\n.000.\n.010.\n.0.0.\n.....\n\nHyphen -\nWhite\n.....\n.....\n00000\n.....\n.....\n\nP\nWhite\n.00..\n.0.0.\n.00..\n.0...\n.....\n\nA\nWhite\n.....\n..00.\n.0.0.\n..00.\n.....\n\nN\nWhite\n.....\n.00..\n.0.0.\n.0.0.\n.....\n\n\n=======\nLEGEND\n=======\n\n@ = Player and Z\n1 = Cursor1 and Z\n2 = Cursor2 and Z\n3 = Cursor3 and Z\n\nNumeral = I or U or X or L or C or D or M or Z\nNotI = U or X or L or C or D or M or Z\nNotU = I or X or L or C or D or M or Z\nNotX = I or U or L or C or D or M or Z\nNotL = I or U or X or C or D or M or Z\nNotC = I or U or X or L or D or M or Z\nNotD = I or U or X or L or C or M or Z\nNotM = I or U or X or L or C or D or Z\nNotZ = I or U or X or L or C or D or M\nText = P or A or N or Hyphen\nCursor = Cursor1 or Cursor2 or Cursor3\n\n=======\nSOUNDS\n=======\n\nPlayer Move 73969707\nCancel 87888304\nUndo 87888304\nRestart 38699508\nEndLevel 16741708\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Next, Refill, Cursor1, Cursor2, Cursor3\nNumeral, Text, Goal\n\n\n======\nRULES\n======\n\n[Next I][> Player|NotI]->cancel\n[Next U][> Player|NotU]->cancel\n[Next X][> Player|NotX]->cancel\n[Next L][> Player|NotL]->cancel\n[Next C][> Player|NotC]->cancel\n[Next D][> Player|NotD]->cancel\n[Next M][> Player|NotM]->cancel\n[Next Z][> Player|NotZ]->cancel\n\nlate[Next Numeral][Player]->[Next][Player Numeral]\nlate right[Next no Numeral|Numeral]->[Next Numeral|]\nlate right[Next|...|no Numeral|Numeral]->[Next|...|Numeral|]\n\nstartloop\nlate random down[Refill no Numeral][Cursor1|]->[Refill][|Cursor1]\nlate down[||||||||||Cursor1][Cursor2|]->[Cursor1||||||||||][|Cursor2]\nlate down[||||||||||Cursor2][Cursor3|]->[Cursor2||||||||||][|Cursor3]\nlate down[||||||||||Cursor3]->win\nlate right[Refill no Numeral|...|no Numeral][Cursor3 Numeral|]->[Refill|...|Numeral][Numeral|Cursor3]\nlate right[Refill no Numeral|...|no Numeral][Cursor2 Numeral|]->[Refill|...|Numeral][Numeral|Cursor2]\nlate right[Refill no Numeral|...|no Numeral][Cursor1 Numeral|]->[Refill|...|Numeral][Numeral|Cursor1]\nlate right[Numeral|Cursor]->[Numeral Cursor|]\nlate right[Refill no Numeral|...|Z]->[Refill|...|]\nlate right[Refill no Numeral|...|no Numeral|Numeral]->[Refill no Numeral|...|Numeral|]\nlate random right[Refill no Numeral|...|no Numeral]->[Refill|...|Z]\n late right[Next no Numeral|Numeral]->[Next Numeral|]\n+ late right[Next|...|no Numeral|Numeral]->[Next|...|Numeral|]\nendloop\n\nlate right[Goal|Cursor1][Goal|Cursor2][Goal|Cursor3][Refill]->[|][|][|][]\nlate[Next no Numeral]->win\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\nmessage XL-Plan is a variant of the XL-Up maze.\nmessage The goal of XL-Plan is to build and walk through a grid of figures, writing out roman numerals in ascending order.\nmessage The final roman numeral is shown at the top of the screen. The next figures are shown at the bottom of the screen.\nmessage Each step you take must be on to a space showing the next figure, or an empty space that will become the next figure.\n\nUII--PLAN{3ZZZ{2ZZZ.1ZZZ.\n..........CZZZ.XZZZ.IZZZ.\n..........CCZZ.XXZZ.IIZZ.\n..#####...CCCZ.XXXZ.IIIZ.\n..#...#...CDZZ.XLZZ.IUZZ.\n..#.@.#...DZZZ.LZZZ.UZZZ.\n..#...#...DCZZ.LXZZ.UIZZ.\n..#####...DCCZ.LXXZ{UIIZ.\n..........DCCC.LXXX.UIII.\n..........CMZZ.XCZZ.IXZZ.\n$.......&................\n\nXXI--PLAN{3ZZZ.2ZZZ.1ZZZ.\n..........CZZZ{XZZZ.IZZZ.\n.#######..CCZZ.XXZZ.IIZZ.\n.#.....#..CCCZ.XXXZ.IIIZ.\n.#.....#..CDZZ.XLZZ.IUZZ.\n.#..@..#..DZZZ.LZZZ.UZZZ.\n.#.....#..DCZZ.LXZZ.UIZZ.\n.#######..DCCZ.LXXZ.UIIZ.\n..........DCCC.LXXX.UIII.\n..........CMZZ.XCZZ{IXZZ.\n$.......&................\n\nXXU--PLAN{3ZZZ.2ZZZ.1ZZZ.\n..........CZZZ.XZZZ.IZZZ.\n.#######..CCZZ{XXZZ.IIZZ.\n.#.....#..CCCZ.XXXZ.IIIZ.\n.#.....#..CDZZ.XLZZ.IUZZ.\n.#..@..#..DZZZ.LZZZ{UZZZ.\n.#.....#..DCZZ.LXZZ.UIZZ.\n.#.....#..DCCZ.LXXZ.UIIZ.\n.#######..DCCC.LXXX.UIII.\n..........CMZZ.XCZZ.IXZZ.\n$.......&................\n\n.L--PLAN.{3ZZZ.2ZZZ{1ZZZ.\n#########.CZZZ.XZZZ.IZZZ.\n#.......#.CCZZ.XXZZ.IIZZ.\n#.......#.CCCZ.XXXZ.IIIZ.\n#.......#.CDZZ.XLZZ.IUZZ.\n#...@...#.DZZZ{LZZZ.UZZZ.\n#.......#.DCZZ.LXZZ.UIZZ.\n#.......#.DCCZ.LXXZ.UIIZ.\n#.......#.DCCC.LXXX.UIII.\n#########.CMZZ.XCZZ.IXZZ.\n$.......&................\n\n", [3, 0, 1, 1, 2, 2, 3, 1, 0, 0, 0, 3, 1, 3, 1, 2, 1, 0, 2], "background x:0,background:1,1,1,1,1,1,1,1,1,background i next:2,0,1,background wall:3,3,3,3,3,3,3,1,background i:4,background u:5,1,3,\nbackground player u:6,background z:7,1,1,1,3,1,7,background hyphen:8,1,3,5,4,7,4,1,3,1,5,8,1,3,7,4,7,\n4,1,3,1,4,background p:9,1,3,1,7,4,1,1,3,1,4,background l:10,1,3,1,1,1,1,1,3,\n1,4,a background:11,1,3,3,3,3,3,3,3,1,7,background n:12,1,1,1,1,1,1,1,1,1,background i refill:13,background goal:14,\n1,1,1,1,1,1,1,1,1,0,background cursor3 z:15,background c:16,16,16,16,background d:17,17,17,17,16,7,7,7,16,16,\n17,7,16,16,16,background m:18,1,7,7,7,16,7,7,7,16,16,7,1,7,7,7,7,7,7,7,\n7,16,7,1,1,1,14,1,1,1,1,1,1,1,1,background cursor2 z:19,0,0,0,0,10,10,10,10,0,\n1,7,7,0,0,10,7,0,0,0,16,1,7,7,7,0,7,7,7,0,0,7,1,7,7,\n7,7,7,7,7,7,0,7,1,1,1,1,1,1,14,1,1,1,1,1,7,4,4,4,4,\n5,5,5,5,background cursor1 i:20,1,7,7,4,4,5,7,4,4,4,0,1,7,7,7,4,7,7,7,4,\n4,7,1,7,7,7,7,7,7,7,7,4,7,1,1,1,1,1,1,1,1,1,1,1,1,\n", 6, "1627779632918.6895"] + ["title XL-Plan\nauthor Mark Richardson\nflickscreen 9x11\nkey_repeat_interval 0.5\nnoaction\nrequire_player_movement\nrun_rules_on_level_start\n(verbose_logging)\n\n\n========\nOBJECTS\n========\n\nBackground .\nBlack\n\nPlayer\n#800\n\nNext $\n#008\n\nRefill &\nTransparent (#066)\n\nGoal {\n#660\n\nCursor1\n#080\n\nCursor2\n#080\n\nCursor3\n#080\n\nWall #\n#222\n\nZ\nWhite\n.....\n.....\n..0..\n.....\n.....\n\nI\nWhite\n.....\n..0..\n..0..\n..0..\n.....\n\nU\nWhite\n.....\n.0.0.\n.0.0.\n..0..\n.....\n\nX\nWhite\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nL\nWhite\n.....\n.0...\n.0...\n.000.\n.....\n\nC\nWhite\n.....\n..00.\n.0...\n..00.\n.....\n\nD\nWhite\n.....\n.00..\n.0.0.\n.00..\n.....\n\nM\nWhite Gray\n.....\n.000.\n.010.\n.0.0.\n.....\n\nHyphen -\nWhite\n.....\n.....\n00000\n.....\n.....\n\nP\nWhite\n.00..\n.0.0.\n.00..\n.0...\n.....\n\nA\nWhite\n.....\n..00.\n.0.0.\n..00.\n.....\n\nN\nWhite\n.....\n.00..\n.0.0.\n.0.0.\n.....\n\n\n=======\nLEGEND\n=======\n\n@ = Player and Z\n1 = Cursor1 and Z\n2 = Cursor2 and Z\n3 = Cursor3 and Z\n\nNumeral = I or U or X or L or C or D or M or Z\nNotI = U or X or L or C or D or M or Z\nNotU = I or X or L or C or D or M or Z\nNotX = I or U or L or C or D or M or Z\nNotL = I or U or X or C or D or M or Z\nNotC = I or U or X or L or D or M or Z\nNotD = I or U or X or L or C or M or Z\nNotM = I or U or X or L or C or D or Z\nNotZ = I or U or X or L or C or D or M\nText = P or A or N or Hyphen\nCursor = Cursor1 or Cursor2 or Cursor3\n\n=======\nSOUNDS\n=======\n\nPlayer Move 73969707\nCancel 87888304\nUndo 87888304\nRestart 38699508\nEndLevel 16741708\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Next, Refill, Cursor1, Cursor2, Cursor3\nNumeral, Text, Goal\n\n\n======\nRULES\n======\n\n[Next I][> Player|NotI]->cancel\n[Next U][> Player|NotU]->cancel\n[Next X][> Player|NotX]->cancel\n[Next L][> Player|NotL]->cancel\n[Next C][> Player|NotC]->cancel\n[Next D][> Player|NotD]->cancel\n[Next M][> Player|NotM]->cancel\n[Next Z][> Player|NotZ]->cancel\n\nlate[Next Numeral][Player]->[Next][Player Numeral]\nlate right[Next no Numeral|Numeral]->[Next Numeral|]\nlate right[Next|...|no Numeral|Numeral]->[Next|...|Numeral|]\n\nstartloop\nlate random down[Refill no Numeral][Cursor1|]->[Refill][|Cursor1]\nlate down[||||||||||Cursor1][Cursor2|]->[Cursor1||||||||||][|Cursor2]\nlate down[||||||||||Cursor2][Cursor3|]->[Cursor2||||||||||][|Cursor3]\nlate down[||||||||||Cursor3]->win\nlate right[Refill no Numeral|...|no Numeral][Cursor3 Numeral|]->[Refill|...|Numeral][Numeral|Cursor3]\nlate right[Refill no Numeral|...|no Numeral][Cursor2 Numeral|]->[Refill|...|Numeral][Numeral|Cursor2]\nlate right[Refill no Numeral|...|no Numeral][Cursor1 Numeral|]->[Refill|...|Numeral][Numeral|Cursor1]\nlate right[Numeral|Cursor]->[Numeral Cursor|]\nlate right[Refill no Numeral|...|Z]->[Refill|...|]\nlate right[Refill no Numeral|...|no Numeral|Numeral]->[Refill no Numeral|...|Numeral|]\nlate random right[Refill no Numeral|...|no Numeral]->[Refill|...|Z]\n late right[Next no Numeral|Numeral]->[Next Numeral|]\n+ late right[Next|...|no Numeral|Numeral]->[Next|...|Numeral|]\nendloop\n\nlate right[Goal|Cursor1][Goal|Cursor2][Goal|Cursor3][Refill]->[|][|][|][]\nlate[Next no Numeral]->win\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\nmessage XL-Plan is a variant of the XL-Up maze.\nmessage The goal of XL-Plan is to build and walk through a grid of figures, writing out roman numerals in ascending order.\nmessage The final roman numeral is shown at the top of the screen. The next figures are shown at the bottom of the screen.\nmessage Each step you take must be on to a space showing the next figure, or an empty space that will become the next figure.\n\nUII--PLAN{3ZZZ{2ZZZ.1ZZZ.\n..........CZZZ.XZZZ.IZZZ.\n..........CCZZ.XXZZ.IIZZ.\n..#####...CCCZ.XXXZ.IIIZ.\n..#...#...CDZZ.XLZZ.IUZZ.\n..#.@.#...DZZZ.LZZZ.UZZZ.\n..#...#...DCZZ.LXZZ.UIZZ.\n..#####...DCCZ.LXXZ{UIIZ.\n..........DCCC.LXXX.UIII.\n..........CMZZ.XCZZ.IXZZ.\n$.......&................\n\nXXI--PLAN{3ZZZ.2ZZZ.1ZZZ.\n..........CZZZ{XZZZ.IZZZ.\n.#######..CCZZ.XXZZ.IIZZ.\n.#.....#..CCCZ.XXXZ.IIIZ.\n.#.....#..CDZZ.XLZZ.IUZZ.\n.#..@..#..DZZZ.LZZZ.UZZZ.\n.#.....#..DCZZ.LXZZ.UIZZ.\n.#######..DCCZ.LXXZ.UIIZ.\n..........DCCC.LXXX.UIII.\n..........CMZZ.XCZZ{IXZZ.\n$.......&................\n\nXXU--PLAN{3ZZZ.2ZZZ.1ZZZ.\n..........CZZZ.XZZZ.IZZZ.\n.#######..CCZZ{XXZZ.IIZZ.\n.#.....#..CCCZ.XXXZ.IIIZ.\n.#.....#..CDZZ.XLZZ.IUZZ.\n.#..@..#..DZZZ.LZZZ{UZZZ.\n.#.....#..DCZZ.LXZZ.UIZZ.\n.#.....#..DCCZ.LXXZ.UIIZ.\n.#######..DCCC.LXXX.UIII.\n..........CMZZ.XCZZ.IXZZ.\n$.......&................\n\n.L--PLAN.{3ZZZ.2ZZZ{1ZZZ.\n#########.CZZZ.XZZZ.IZZZ.\n#.......#.CCZZ.XXZZ.IIZZ.\n#.......#.CCCZ.XXXZ.IIIZ.\n#.......#.CDZZ.XLZZ.IUZZ.\n#...@...#.DZZZ{LZZZ.UZZZ.\n#.......#.DCZZ.LXZZ.UIZZ.\n#.......#.DCCZ.LXXZ.UIIZ.\n#.......#.DCCC.LXXX.UIII.\n#########.CMZZ.XCZZ.IXZZ.\n$.......&................\n\n",[3,0,1,1,2,2,3,1,0,0,0,3,1,3,1,2,1,0,2],"background x:0,background:1,1,1,1,1,1,1,1,1,background i next:2,0,1,background wall:3,3,3,3,3,3,3,1,background i:4,background u:5,1,3,\nbackground player u:6,background z:7,1,1,1,3,1,7,background hyphen:8,1,3,5,4,7,4,1,3,1,5,8,1,3,7,4,7,\n4,1,3,1,4,background p:9,1,3,1,7,4,1,1,3,1,4,background l:10,1,3,1,1,1,1,1,3,\n1,4,a background:11,1,3,3,3,3,3,3,3,1,7,background n:12,1,1,1,1,1,1,1,1,1,background i refill:13,background goal:14,\n1,1,1,1,1,1,1,1,1,0,background cursor3 z:15,background c:16,16,16,16,background d:17,17,17,17,16,7,7,7,16,16,\n17,7,16,16,16,background m:18,1,7,7,7,16,7,7,7,16,16,7,1,7,7,7,7,7,7,7,\n7,16,7,1,1,1,14,1,1,1,1,1,1,1,1,background cursor2 z:19,0,0,0,0,10,10,10,10,0,\n1,7,7,0,0,10,7,0,0,0,16,1,7,7,7,0,7,7,7,0,0,7,1,7,7,\n7,7,7,7,7,7,0,7,1,1,1,1,1,1,14,1,1,1,1,1,7,4,4,4,4,\n5,5,5,5,background cursor1 i:20,1,7,7,4,4,5,7,4,4,4,0,1,7,7,7,4,7,7,7,4,\n4,7,1,7,7,7,7,7,7,7,7,4,7,1,1,1,1,1,1,1,1,1,1,1,1,\n",6,"1627779632918.6895"] ], [ `gallery: Play Mini Gemini Replay (PMGRP)`, - ["title Play Mini Gemini Replay PMGRP\nauthor Pedro PSI\nhomepage pedropsi.github.io\n(License: Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0))\n\n(last updated 20/06/2018)\n\nbackground_color #044700 (darkest green)\ntext_color #FFFF2C (yellow)\n\nyoutube Qelelnc1NKg (Space Flight by Tim Beek)\n\nrealtime_interval 0.166\nkey_repeat_interval 0.166\nthrottle_movement\n\nrun_rules_on_level_start\n\n(Palette\n-----------------\n#044700 (darkest green)\n#087102 (dark green)\n#FFFF2C (yellow)\n\n#FF9703 (player orange)\n#FF8403 (pdayer orange)\n)\n========\nOBJECTS\n========\n\nBackground\n#044700 (darkest green)\n\nWall\n#087102 (dark green)\n\ncUL\n#044700 (darkest green)\n..0..\n..0..\n000..\n.....\n.....\n\ncUR\n#044700 (darkest green)\n..0..\n..0..\n..000\n.....\n.....\n\ncDL\n#044700 (darkest green)\n.....\n.....\n000..\n..0..\n..0..\n\ncDR\n#044700 (darkest green)\n.....\n.....\n..000\n..0..\n..0..\n\n\ncH\n#044700 (darkest green)\n.....\n.....\n00000\n.....\n.....\n\ncV\n#044700 (darkest green)\n..0..\n..0..\n..0..\n..0..\n..0..\n\ncDot\n#044700 (darkest green)\n.....\n.000.\n.0.0.\n.000.\n.....\n\ncl\n#044700 (darkest green)\n.....\n.....\n0....\n.....\n.....\n\ncu\n#044700 (darkest green)\n..0..\n.....\n.....\n.....\n.....\n\ncr\n#044700 (darkest green)\n.....\n.....\n....0\n.....\n.....\n\ncd\n#044700 (darkest green)\n.....\n.....\n.....\n.....\n..0..\n\n\ntrycD\ntransparent\ntrycU\ntransparent\ntrycL\ntransparent\ntrycR\ntransparent\n\nHubDotL\n#087102 (dark green) #044700 (darkest green)\n.....\n0...0\n0111.\n0....\n.....\n\nHubDotR\n#087102 (dark green) #044700 (darkest green)\n.....\n0...0\n.1110\n....0\n.....\n\n\nHubUp\n#044700 (darkest green)\n.....\n00000\n00.00\n.....\n.....\n\nHubUp2\n#044700 (darkest green)\n.....\n.0.0.\n00000\n.....\n.....\n\nHubDown\n#044700 (darkest green)\n.....\n.....\n00.00\n00000\n.....\n\nHubDown2\n#044700 (darkest green)\n.....\n.....\n00000\n.000.\n.....\n\n\nThrownLeft1\n#FFFF2C (yellow)\n.....\n..000\n.000.\n..000\n.....\n\nThrownLeft2\n#FFFF2C (yellow)\n.....\n..00.\n.00..\n..00.\n.....\n\nThrownLeft3\n#FFFF2C (yellow)\n.....\n..0..\n.0...\n..0..\n.....\n\nThrownRight1\n#FFFF2C (yellow)\n.....\n000..\n.000.\n000..\n.....\n\nThrownRight2\n#FFFF2C (yellow)\n.....\n.00..\n..00.\n.00..\n.....\n\nThrownRight3\n#FFFF2C (yellow)\n.....\n..0..\n...0.\n..0..\n.....\n\nGoal\ntransparent \n\nGoal1\n#FFFF2C (yellow)\n.....\n...0.\n.....\n.....\n.....\n\nGoal2\n#FFFF2C (yellow)\n.....\n...0.\n..0..\n.....\n.....\n\nGoal3\n#FFFF2C (yellow)\n.....\n...0.\n..0..\n.0...\n.....\n\nGoal4\n#FFFF2C (yellow)\n.....\n.0.0.\n..0..\n.0...\n.....\n\nGoal5\n#FFFF2C (yellow)\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nGoal6\ntransparent\n\nDeco5\n#FFFF2C (yellow)\n.....\n00000\n.....\n.....\n.....\n\nDeco4\n#FFFF2C (yellow)\n.000.\n.....\n.....\n.....\n.....\n\nDeco3\n#FFFF2C (yellow)\n.....\n.....\n.....\n.....\n.0.0.\n\nDeco2\n#FFFF2C (yellow)\n.....\n.....\n.....\n.000.\n.....\n\nDeco1\n#FFFF2C (yellow)\n.....\n.....\n00000\n.....\n.....\n\nOver10\n#044700 (darkest green)\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n\nOver9\n#044700 (darkest green)\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n.....\n\nOver8\n#044700 (darkest green)\n.0.0.\n.0.0.\n.0.0.\n.....\n.....\n\nOver7\n#044700 (darkest green)\n.0.0.\n.0.0.\n.....\n.....\n.....\n\nOver6\n#044700 (darkest green)\n.0.0.\n.....\n.....\n.....\n.....\n\nOver5\n#044700 (darkest green)\n.000.\n00000\n00000\n.000.\n.0.0.\n\nOver4\n#044700 (darkest green)\n.000.\n00000\n00000\n.000.\n.....\n\nOver3\n#044700 (darkest green)\n.000.\n00000\n00000\n.....\n.....\n\nOver2\n#044700 (darkest green)\n.000.\n00000\n.....\n.....\n.....\n\nOver1\n#044700 (darkest green)\n.000.\n.....\n.....\n.....\n.....\n\n\n\nO\n#FFFF2C (yellow) #087102 (dark green) \n.....\n.000.\n.010.\n.000.\n.....\n\n\nAr\n#FFFF2C (yellow) #044700 (darkest green)\n11111\n10011\n11001\n10011\n11111\n\nAl\n#FFFF2C (yellow) #044700 (darkest green)\n11111\n11001\n10011\n11001\n11111\n\nAd\n#FFFF2C (yellow) #044700 (darkest green)\n11111\n10101\n10001\n11011\n11111\n\nAu\n#FFFF2C (yellow) #044700 (darkest green)\n11111\n11011\n10001\n10101\n11111\n\nArI\n#044700 (darkest green) #FFFF2C (yellow)\n11111\n10011\n11001\n10011\n11111\n\nAlI\n#044700 (darkest green) #FFFF2C (yellow)\n11111\n11001\n10011\n11001\n11111\n\nAdI\n#044700 (darkest green) #FFFF2C (yellow)\n11111\n10101\n10001\n11011\n11111\n\nAuI\n#044700 (darkest green) #FFFF2C (yellow)\n11111\n11011\n10001\n10101\n11111\n\n\nStorageTick T\n#FFFF2C (yellow)\n0...0\n.....\n..0..\n.....\n0...0\n\nStorage -\n#087102 (dark green)\n.....\n.....\n..0..\n.....\n.....\n\nReplay »\ntransparent\n(white \n.0...\n.000.\n.0.0.\n.000.\n...0.)\n\nFreePlay !\ntransparent\n(white \n.....\n0000.\n.0000\n0000.\n.....\n)\n\nStopPlay _\ntransparent (white \n.0...\n.0.0.\n.....\n.0.0.\n...0.\n)\nOnce\ntransparent\nRead\ntransparent\nTry\ntransparent\n\nRegisterSymbol &\nred\n\nPlayer\n#FF9703 (player orange) #FF8403 (pdayer orange)\n.000.\n00000\n10001\n.111.\n.1.1.\n\nPlayerLegs\n#FF9703 (pdayer orange) #FF8403 (player orange)\n.1.1.\n.1.1.\n.1.1.\n.1.1.\n.0.0.\n\nPlayer2\n#FF9703 (player orange) #FF8403 (pdayer orange)\n.000.\n00000\n10001\n.111.\n.1.1.\n\nPlayerLegs2\n#FF9703 (pdayer orange) #FF8403 (player orange)\n.1.1.\n.1.1.\n.1.1.\n.1.1.\n.0.0.\n\nPlayer2Cover\n#FFFF2C (yellow)\n.000.\n00000\n00000\n.000.\n.0.0.\n\nPlayerLegs2Cover\n#FFFF2C (yellow)\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n\nThrArmR\n#044700 (darkest green) #FF8403 (pdayer orange)\n1....\n.....\n0....\n.....\n.....\n\nThrArmL\n#044700 (darkest green) #FF8403 (pdayer orange)\n....1\n.....\n....0\n.....\n.....\n\nThrArmRCover\n#044700 (darkest green) #FFFF2C (yellow)\n1....\n.....\n0....\n.....\n.....\n\nThrArmLCover\n#044700 (darkest green) #FFFF2C (yellow)\n....1\n.....\n....0\n.....\n.....\n\nNextLegs\ntransparent\n\nPlayerDrop\ntransparent\n\nGravity G\ntransparent\n\nWait\ntransparent\n\nAnimate A\ntransparent\n\nStorageFull\ntransparent\n\nHint1\ntransparent\n\nAniReplay\n#FFFF2C (yellow)\n.....\n.....\n.000.\n.....\n.....\n\nReplayDelay1\ntransparent\n\nReplayDelay2\ntransparent\n\nReplayDelay3\ntransparent\n\nReplayNow\ntransparent\n\nWinNow\ntransparent\n\nFixed\ntransparent\n\n=======\nLEGEND\n=======\n\n# = Wall\n. = Background\n$ = Goal\nD = PlayerDrop\n\nP = Player and D\n\n\nAs = Ar or Al or Au or Ad\nAsi= ArI or AlI or AuI or AdI \n\nBlock = O\n\nPlayers = Player or Player2\n\nPlayerBody = Player or Playerlegs\nPlayerBody2 = Player2 or Playerlegs2\n\nPlayerLegsAny = Playerlegs or Playerlegs2\n\nPlayerBodies = PlayerBody or PlayerBody2\nSymbol = Block or PlayerBodies\nItem = Symbol or Wall\n\nconnectionUnDot = cUL or cUR or cDL or CDR or CV or CH\nconnection = connectionUnDot or CDot\noverdot = cl or cu or cu or cr or cd \n\nHub = HubUp or HubUp2 or HubDown or HubDown2\n\nc_R = cDR or cUR or cH or cDot\nc_U = cUL or cUR or cV or cDot\nc_L = cDL or cUL or cH or cDot\nc_D = cDL or cDR or cV or cDot\n\ncOR = c_R or Hub or cDot\ncOU = c_U or cDot\ncOL = c_L or Hub or cDot\ncOD = c_D or cDot\n\ncXL = cDR or cUR or cV \ncXD = cUL or cUR or cH or HubUp or HubUp2\ncXR = cDL or cUL or cV\ncXU = cDL or cDR or cH or HubDown or HubDown2\n\ntryc = trycr or trycd or trycl or trycu\n\ntrycall = trycr and trycd and trycl and trycu\n\ntrycnor = trycd and trycl and trycu\ntrycnol = trycd and trycr and trycu\ntrycnou = trycd and trycr and trycl\ntrycnod = trycu and trycr and trycl\n\n\nPlay = Freeplay or Replay or StopPlay \n\n(anima)\nDeco = Deco1 or Deco2 or Deco3 or Deco4 or Deco5\nGDeco = Goal1 or Goal2 or Goal3 or Goal4 or Goal5 or Goal6\nWinDeco = Over1 or Over2 or Over3 or Over4 or Over5 or Over6 or Over7 or Over8 or Over9 or Over10\n\nThrownDeco = ThrownRight1 or ThrownRight2 or ThrownRight3 or ThrownLeft1 or ThrownLeft2 or ThrownLeft3\nThrownDeco1 = ThrownRight1 or ThrownLeft1\nThrownDeco3 = ThrownRight3 or ThrownLeft3\n\nPlayerThrownDeco = ThrArmL or ThrArmR\n\nPlayerCover = Player2Cover or Playerlegs2Cover\nPlayerThrArmCover = ThrArmLCover or ThrArmRCover\n\n? = FreePlay and Hint1\n\nAniDot = Storage\n\nReplayDelay = ReplayDelay1 or ReplayDelay2 or ReplayDelay3\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\nbackground\nGoal, PlayerDrop\nDeco, GDeco\nThrownDeco\nGravity, Wait\nPlay\nOnce\nTry\nStorage\nAniReplay\nRead\nStorageTick\n\nAs\nAsi\nItem\nPlayerCover\nNextlegs\n\ntrycr\ntrycd\ntrycl\ntrycu\nConnection\nHub\ncd\ncu\ncr, hubdotr\ncl, hubdotl\n\nPlayerThrownDeco\nPlayerThrArmCover\n\nFixed\n\nWinDeco\nwinNow\nRegisterSymbol\nAnimate\n\nStorageFull\nHint1\n\nReplayDelay, ReplayNow\n\n======\nRULES\n======\n\n[Animate]->[]\n[stationary Player no Animate]->[stationary Player Animate]\n\n(Decoration)\n(---------------------------------------------------)\n[Play no wall]->[Play Wall]\n\n(circuit hubs)\nup [wall no Hub|Goal]-> [wall HubUp|Goal]\nup [wall no Hub|D ]-> [wall HubUp2|D ]\n\ndown [wall no Hub|Goal]-> [wall HubDown|Goal]\ndown [wall no Hub|D ]-> [wall HubDown2|D ]\n\nright[Hub|no wall]->[Hub hubdotr|]\nleft [Hub|no wall]->[Hub hubdotl|]\n\n(circuit connection borders)\n\n(prolong)\n[tryc]->[]\nright [cOR|wall no hub no connection no tryc][A]->[cOR|wall trycall][A]\nup [cOU|wall no hub no connection no tryc][A]->[cOU|wall trycall][A]\nleft [cOL|wall no hub no connection no tryc][A]->[cOL|wall trycall][A]\ndown [cOD|wall no hub no connection no tryc][A]->[cOD|wall trycall][A]\n\n(remove dead ends)\nright [trycr|no wall]->[|]\nup [trycu|no wall]->[|]\nleft [trycl|no wall]->[|]\ndown [trycd|no wall]->[|]\n\nright [trycr|cXL]->[|cXL]\nup [trycu|cXD]->[|cXD]\nleft [trycl|cXR]->[|cXR]\ndown [trycd|cXU]->[|cXU]\n\n[. tryc ]->[tryc random connectionUnDot no .]\n\n[no . ch no trycl]->[.]\n[no . ch no trycr]->[.]\n[no . cv no trycu]->[.]\n[no . cv no trycd]->[.]\n\n[no . cul no trycu]->[.]\n[no . cul no trycl]->[.]\n\n[no . cur no trycr]->[.]\n[no . cur no trycu]->[.]\n\n[no . cdr no trycd]->[.]\n[no . cdr no trycr]->[.]\n\n[no . cdl no trycl]->[.]\n[no . cdl no trycd]->[.]\n\nright [no . CXR|COL]->[.|COL]\nup [no . CXU|COD]->[.|COD]\nleft [no . CXL|COR]->[.|COR]\ndown [no . CXD|COU]->[.|COU]\n\n[tryc]->[no tryc]\n\nrandom [A][wall no hub no connection no tryc]->[A][wall cDot]\n\n[no .]->[.]\n\nleft [cDot no cL|COR]->[cDot cL|COR]\nup [cDot no cU|COD]->[cDot cU|COD]\nright [cDot no cR|COL]->[cDot cR|COL]\ndown [cDot no cD|COU]->[cDot cD|COU]\n\n\n(animated)\n[A][D no Deco]->[A][D Deco5]\n[A][Deco1]->[A][Deco5 no .]\n[A][Deco2]->[A][Deco1]\n[A][Deco3]->[A][Deco2]\n[A][Deco4]->[A][Deco3]\n[A][Deco5 .]->[A][Deco4 .]\n[A][Deco5 no .]->[A][Deco5 .]\n\nlate [A][Deco][player][player2]->[A][][player][player2]\nlate [A][Deco no D]->[A][]\n\n[A][Goal no GDeco]->[A][Goal Goal1]\n[A][Goal6]->[A][Goal1 no .]\n[A][Goal5]->[A][Goal6]\n[A][Goal4]->[A][Goal5]\n[A][Goal3]->[A][Goal4]\n[A][Goal2]->[A][Goal3]\n[A][Goal1 .]->[A][Goal2]\n[A][Goal1 no .]->[A][Goal1 .]\n\n[A][Players Goal no WinDeco]->[A][Players Goal Over1]\n\n(winning animation)\n[A][Over9]->[A][Over10 winNow]\n[A][Over8] ->[A][Over9]\n[A][Over7] ->[A][Over8]\n[A][Over6] ->[A][Over7]\ndown [Over5 |PlayerLegsAny no WinDeco][A]->[Over5|Over6 PlayerLegsAny][A]\n\n[A][Over4]->[A][Over5 winNow]\ndown [Over5 winNow|PlayerLegsAny no WinDeco][A]->[Over5| PlayerLegsAny][A]\n\n[A][Over3]->[A][Over4]\n[A][Over2]->[A][Over3]\n[A][Over1 .]->[A][Over2]\n[A][Over1 no .]->[A][Over1 .]\n\n\n[ThrownDeco3][PlayerThrownDeco]->[ThrownDeco3][] (put down raised arm)\n[PlayerThrownDeco no Player]->[]\n\n[ThrownRight3]->[]\n[ThrownRight2]->[ThrownRight3]\n[ThrownRight1]->[ThrownRight2]\n[ThrownLeft3]->[]\n[ThrownLeft2]->[ThrownLeft3]\n[ThrownLeft1]->[ThrownLeft2]\n[throwndeco symbol]->[symbol]\n\n(animate replay)\n[AniReplay]->[]\n[»][AniDot no AniReplay]->[»][AniDot AniReplay]\n\n\n(Switch Read/Write Phases & Gravity)\n(---------------------------------------------------)\n(Manage Player Spawn)\n[Player D][no Player D]->[Player][D](avoid overspawn)\n\n(RePlay)\n[Wait]->[]\n[ThrownDeco][Player no Wait]->[ThrownDeco][Player Wait] (pause until after thrown)\n[!][action player][D Item no Playerlegs] ->[!][Player][D item] (prevent respawn if blocked)\n[!][action player D] ->[!][Player D] \n[!][action player][D] ->[»][Player2][D Player Wait]\n[Player2][D]->[Player2][] (remove after spawning)\n\n[!][action player][player2]->[»][Player2][Player Wait]\n\n(StopPlay)\n[_][moving player]->[_][player]\n[_][action player]->[_][player]\n\n(clean read moves after stopping)\n[_][Read]->[_][]\n\n(GravityPlay)\n[G]->[]\ndown [Symbol |no Item][Play]-> [Symbol|][Play G]\n\n\n(Delay in Replay Mode)\n(---------------------------------------------------)\n[ReplayNow]->[]\n[ReplayDelay3]->[ReplayNow]\n[ReplayDelay2]->[ReplayDelay3]\n[ReplayDelay1]->[ReplayDelay2]\n\n[» no ReplayDelay no ReplayNow]->[» ReplayDelay1]\n[» ReplayDelay no ReplayNow][Player]->[» ReplayDelay Once][stationary Player Wait]\n\n(Action Storage)\n(---------------------------------------------------)\n(initialise or respawn ticker)\n[!][T]->[!][]\nrandom [!][- no As]->[!][- T]\n[!][G][T]->[!][G][] (don't register gravity)\n\n(place ticker at first emply position)\ndown [- T |- no T][!]->[-|- T][!]\nright[- T |- no T][!]->[-|- T][!]\n\nup [- T| - no T no As][!]->[-|- T][!]\nleft [- T| - no T no As][!]->[-|- T][!]\n\n(register player moves once, and keep ticker)\n[left Player][T][! no Once]->[left Player][T Al][! Once]\n[up Player][T][! no Once]->[up Player][T Au][! Once]\n[right Player][T][! no Once]->[right Player][T Ar][! Once]\n[down Player][T][! no Once]->[down Player][T Ad][! Once]\n[!][Try]->[!][]\n[! Once]->[! Try]\n\n(block action if no more space is available)\n[!]->[! Once]\n[T][! Once]->[T][!]\n[! Once][moving player]->[!][stationary player]\n[! Once]->[!]\n\n\n(Action Readage)\n(---------------------------------------------------)\n(initialise or respawn ticker)\n[»][T]->[»][]\nrandom [»][-]->[»][- T]\n[»][G][T]->[»][G][] (don't register gravity)\n\n(place ticker at last unread position)\ndown [- T |- no T][»]->[-|- T][»]\nright[- T |- no T][»]->[-|- T][»]\n[»][T Read]->[_ Once][Read StorageFull] (exit if no more unread moves)\n\nup [- T |- no T no Read][»]->[-|- T][»]\nleft [- T |- no T no Read][»]->[-|- T][»]\n\n(replay player moves once, and keep ticker)\n[Player no Wait][T Al][» no Once]->[left Player][T Al Read][» Once]\n[Player no Wait][T Au][» no Once]->[up Player][T Au Read][» Once]\n[Player no Wait][T Ar][» no Once]->[right Player][T Ar Read][» Once]\n[Player no Wait][T Ad][» no Once]->[down Player][T Ad Read][» Once]\n[» Once]->[»]\n\n(end after no more available moves and switch player)\n[»][T no As]->[! Once][]\n\n[! Once][Player][Player2]->[!][stationary Player2][stationary Player]\n[_ Once][Player][Player2]->[_][stationary Player2][stationary Player]\n[! Once]->[!]\n[_ Once]->[!]\n\n(embellish read arrows)\n[Al Read]->[Al Ali Read]\n[Au Read]->[Au Aui Read]\n[Ar Read]->[Ar Ari Read]\n[Ad Read]->[Ad Adi Read]\n\n\n(Player picks Blocks)\n(---------------------------------------------------)\n(Drop)\n(up [no playerlegs|down player|Symbol|Symbol] ->[|player|Symbol|Symbol])\nup [ playerlegs|down player|Symbol][no &]->[ |player|Symbol][&] (register)\nup [no playerlegs|down player|Symbol][no &]->[ |Symbol|player][&] (register)\n\n(Pick)\ndown [down player|Symbol no playerlegs][no &]->[Symbol|player][&]\n\n\n(Gravity)\n(---------------------------------------------------)\n\n(symbols fall, walls don't)\n[G][symbol]->[G][down symbol]\n[G][wall]->[G][stationary wall]\n\n(stationary items support other items on top)\ndown [G][down symbol | stationary Item]->[G][stationary symbol| stationary Item]\n\n\n(Player's Long Legs)\n(---------------------------------------------------)\n(swap legs)\nup [playerlegs|player2 ]->[playerlegs2| player2]\nup [playerlegs2|player ]->[playerlegs | player ]\n\n(remove legs on down press or horizonal movement)\nup [playerlegs |down player ][no &]->[stationary player |][&] \nup [playerlegs2|down player2]->[stationary player2|] \nup [playerlegs |up player ]->[playerlegs |stationary player ] \nup [playerlegs2|up player2]->[playerlegs2|stationary player2] \n\n(remove orphan legs)\nlate up [playerlegs |no player ]->[|]\nlate up [playerlegs2|no player2]->[|]\n\n(Rise )\n[up Player]->[up Player Nextlegs]\n[up Player2]->[up Player2 Nextlegs]\nlate [Nextlegs no Item]->[playerlegs] (player 2 is irrelevant)\nlate [Nextlegs]->[]\n\n[Fixed]->[]\nstartloop\n(Transport)\n(---------------------------------------------------)\nup [moving Symbol|Symbol no Fixed]->[moving Symbol|moving Symbol]\n\n(Player Push)\n(---------------------------------------------------)\n[> Player | Symbol]->[> Player|> Symbol]\n\n(Collision)\n(---------------------------------------------------)\nhorizontal [playerlegs2|< symbol ]->[ |< symbol ]\nhorizontal [playerlegs |< symbol ]->[ |< symbol]\n[> Symbol | stationary Symbol]->[> symbol |> symbol]\n\n(De-register Phase: deregister unacomplished moves)\n(---------------------------------------------------)\n[> Symbol | stationary Item]->[stationary Symbol Fixed|stationary Item]\nendloop\n\n(animate throw)\nup [stationary player |...|left Symbol]->[stationary player ThrArmL|...|left Symbol ThrownLeft1 ]\nup [stationary player |...|right Symbol]->[stationary player ThrArmR|...|right Symbol ThrownRight1]\n\n\n[!]->[! Once]\n[moving Symbol][! Once]->[moving Symbol][!]\n [&][! Once]->[][!]\n[! Once][T As]->[!][T no As]\n[! Once]->[!]\n[&]->[]\n\n(Don't move player after win)\n(---------------------------------------------------)\n[player][WinDeco]->[stationary player][WinDeco]\n\n\n(display hint in tutorial level)\n(---------------------------------------------------)\n[Windeco][StorageFull]->[Windeco][]\n[StorageFull][Hint1]->[][] message No more moves. Retry (R)?\n\n(highlight player)\nlate [PlayerCover]->[]\nlate [Player2 no Player2Cover]->[Player2 Player2Cover]\nlate [PlayerLegs2 no PlayerLegs2Cover]->[PlayerLegs2 PlayerLegs2Cover]\n\n\nlate [»][PlayerCover]->[»][]\nlate [»][Player no Player2Cover]->[»][Player Player2Cover]\nlate [»][PlayerLegs no PlayerLegs2Cover]->[»][PlayerLegs PlayerLegs2Cover]\n\n[PlayerThrArmCover]->[]\nlate [ThrArmL Player2Cover]->[ThrArmL ThrarmLCover Player2Cover]\nlate [ThrArmR Player2Cover]->[ThrArmR ThrarmRCover Player2Cover]\n\n==============\nWINCONDITIONS\n==============\nAny WinNow\n\n=======\nLEVELS\n=======\n\nmessage \"So you want to reach your goals?\"\nmessage \"Well, start by helping yourself!\" \nmessage Lesson 1 of 11\nmessage Arrows to play a move...\nmessage ...X to replay moves!\n\n(introduce game mechanics)\n############\n#P..D..#####\n######.#####\n######...$.#\n############\n#----?######\n############\n\n(introduce carrying)\nmessage \"You seem to have some potential.\" \nmessage Lesson 2 * \nmessage \"Carry on...\" \n\n##########\n#.......P#\n#.....####\n#$..######\n##########\n##########\n##-----!##\n##########\n\n(introduce go up)\nmessage Lesson 3 * \nmessage \"..through ups and downs.\" \n##########\n#P......$#\n##..#..###\n##########\n##########\n##------!#\n##########\n\n(introduce push over)\nmessage Lesson 4 * \nmessage \"If you push yourself over the edge...\"\n##########\n#$......P#\n#####...##\n#####...##\n##########\n##!-----##\n##########\n\n(introduce floating respawn spot)\nmessage Lesson 5 *\nmessage \"... do lift yourself up.\"\n##########\n#.d......#\n#........#\n#.......$#\n#.....####\n#.....####\n#.P...####\n##########\n##########\n##-----!##\n##########\n\n(fun: force carrying, great distance and height)\nmessage Lesson 6 **\nmessage \"Never give up,...\"\n############\n#$.........#\n###........#\n#####......#\n#####......#\n#######....#\n#########.P#\n############\n############\n#!--------##\n############\n\n(fun reverse directions, move blockade)\nmessage Lesson 7 **\nmessage \"...but change direction instead.\" \n#######\n#$#####\n#..D..#\n#.###.#\n#P....#\n#######\n#-----#\n#-----!\n#######\n\n\n(introduce blocks and under leg respawn)\nmessage Lesson 8 **\nmessage \"For every block...\"\n########\n#..O..##\n#.##..##\n#.....$#\n#P##.###\n####.###\n##!#####\n########\n#------#\n########\n\n(push and carry at same time)\nmessage Lesson 9 ***\nmessage \"... is a stepping stone...\"\n#########\n#......$#\n#......##\n#P.....##\n##o....##\n###....##\n#########\n#########\n#!#----##\n###----##\n#########\n\n(fun: five storey, so close but so far)\nmessage Lesson 10 ***\nmessage \"... to greater heights!\"\n#######\n#...D$#\n#...###\n#...#!#\n#...###\n#O.P###\n#######\n#######\n#-----#\n#-----#\n#######\n\n(fun: double block constraint)\nmessage Lesson 11 ****\nmessage \"Barriers... are to be knocked!\"\n#########\n##..##.$#\n##..o..##\n##P.o..##\n#########\n#########\n##-----!#\n#########\n\nmessage \"Congratulations, pupil...\"\nmessage \"...you've learned all...\"\nmessage \"... and became your own master.\"\n\nmessage \"So what are you waiting for?\"\nmessage \"Go and chase your dreams!\"\n \nmessage > Play Mini Gemini Replay PMGRP < > > > > > Pedro PSI 2018 < < < < < \nmessage > > > > > > > Music < < < < < < < > Space Flight > < < < Tim Beek < \n\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", 1, "tick", "tick", 0, "tick", "tick", 1, "tick", "tick", "tick", 3, "tick", 2, "tick", 1, "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", 0, 4, "tick", 4, "tick", 4, "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background ch wall:0,background cdl wall:1,background cd cdot cu wall:2,2,2,background cul wall:3,background cdr wall:4,\nbackground cur wall:5,1,2,3,background cdot cl cr wall:6,background:7,7,\n7,7,background o:8,background cdot cl wall:9,0,au aui background read storage:10,ar ari background read storage:11,\nbackground cdot cr wall:12,3,7,7,7,7,7,\n4,3,al ali background read storage:13,10,9,12,7,\n7,animate background player:14,background player2 player2cover:15,background playerlegs2 playerlegs2cover:16,background hubup2 wall:17,12,10,\nbackground storage storagetick:18,4,background hubdown2 wall:19,7,background hubdotl hubup2 wall:20,4,background cv wall:21,\nbackground cdot cr cu wall:22,0,6,13,background storage:23,0,background hubdown wall:24,\nbackground goal goal3:25,background hubup wall:26,background ch freeplay wall:27,background cdot wall:28,0,1,3,\n11,23,6,0,4,3,1,\n21,background cd cdot cl cu wall:29,2,21,2,5,1,\n", 33, "1627779684110.5146"] + ["title Play Mini Gemini Replay PMGRP\nauthor Pedro PSI\nhomepage pedropsi.github.io\n(License: Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0))\n\n(last updated 20/06/2018)\n\nbackground_color #044700 (darkest green)\ntext_color #FFFF2C (yellow)\n\nyoutube Qelelnc1NKg (Space Flight by Tim Beek)\n\nrealtime_interval 0.166\nkey_repeat_interval 0.166\nthrottle_movement\n\nrun_rules_on_level_start\n\n(Palette\n-----------------\n#044700 (darkest green)\n#087102 (dark green)\n#FFFF2C (yellow)\n\n#FF9703 (player orange)\n#FF8403 (pdayer orange)\n)\n========\nOBJECTS\n========\n\nBackground\n#044700 (darkest green)\n\nWall\n#087102 (dark green)\n\ncUL\n#044700 (darkest green)\n..0..\n..0..\n000..\n.....\n.....\n\ncUR\n#044700 (darkest green)\n..0..\n..0..\n..000\n.....\n.....\n\ncDL\n#044700 (darkest green)\n.....\n.....\n000..\n..0..\n..0..\n\ncDR\n#044700 (darkest green)\n.....\n.....\n..000\n..0..\n..0..\n\n\ncH\n#044700 (darkest green)\n.....\n.....\n00000\n.....\n.....\n\ncV\n#044700 (darkest green)\n..0..\n..0..\n..0..\n..0..\n..0..\n\ncDot\n#044700 (darkest green)\n.....\n.000.\n.0.0.\n.000.\n.....\n\ncl\n#044700 (darkest green)\n.....\n.....\n0....\n.....\n.....\n\ncu\n#044700 (darkest green)\n..0..\n.....\n.....\n.....\n.....\n\ncr\n#044700 (darkest green)\n.....\n.....\n....0\n.....\n.....\n\ncd\n#044700 (darkest green)\n.....\n.....\n.....\n.....\n..0..\n\n\ntrycD\ntransparent\ntrycU\ntransparent\ntrycL\ntransparent\ntrycR\ntransparent\n\nHubDotL\n#087102 (dark green) #044700 (darkest green)\n.....\n0...0\n0111.\n0....\n.....\n\nHubDotR\n#087102 (dark green) #044700 (darkest green)\n.....\n0...0\n.1110\n....0\n.....\n\n\nHubUp\n#044700 (darkest green)\n.....\n00000\n00.00\n.....\n.....\n\nHubUp2\n#044700 (darkest green)\n.....\n.0.0.\n00000\n.....\n.....\n\nHubDown\n#044700 (darkest green)\n.....\n.....\n00.00\n00000\n.....\n\nHubDown2\n#044700 (darkest green)\n.....\n.....\n00000\n.000.\n.....\n\n\nThrownLeft1\n#FFFF2C (yellow)\n.....\n..000\n.000.\n..000\n.....\n\nThrownLeft2\n#FFFF2C (yellow)\n.....\n..00.\n.00..\n..00.\n.....\n\nThrownLeft3\n#FFFF2C (yellow)\n.....\n..0..\n.0...\n..0..\n.....\n\nThrownRight1\n#FFFF2C (yellow)\n.....\n000..\n.000.\n000..\n.....\n\nThrownRight2\n#FFFF2C (yellow)\n.....\n.00..\n..00.\n.00..\n.....\n\nThrownRight3\n#FFFF2C (yellow)\n.....\n..0..\n...0.\n..0..\n.....\n\nGoal\ntransparent \n\nGoal1\n#FFFF2C (yellow)\n.....\n...0.\n.....\n.....\n.....\n\nGoal2\n#FFFF2C (yellow)\n.....\n...0.\n..0..\n.....\n.....\n\nGoal3\n#FFFF2C (yellow)\n.....\n...0.\n..0..\n.0...\n.....\n\nGoal4\n#FFFF2C (yellow)\n.....\n.0.0.\n..0..\n.0...\n.....\n\nGoal5\n#FFFF2C (yellow)\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nGoal6\ntransparent\n\nDeco5\n#FFFF2C (yellow)\n.....\n00000\n.....\n.....\n.....\n\nDeco4\n#FFFF2C (yellow)\n.000.\n.....\n.....\n.....\n.....\n\nDeco3\n#FFFF2C (yellow)\n.....\n.....\n.....\n.....\n.0.0.\n\nDeco2\n#FFFF2C (yellow)\n.....\n.....\n.....\n.000.\n.....\n\nDeco1\n#FFFF2C (yellow)\n.....\n.....\n00000\n.....\n.....\n\nOver10\n#044700 (darkest green)\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n\nOver9\n#044700 (darkest green)\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n.....\n\nOver8\n#044700 (darkest green)\n.0.0.\n.0.0.\n.0.0.\n.....\n.....\n\nOver7\n#044700 (darkest green)\n.0.0.\n.0.0.\n.....\n.....\n.....\n\nOver6\n#044700 (darkest green)\n.0.0.\n.....\n.....\n.....\n.....\n\nOver5\n#044700 (darkest green)\n.000.\n00000\n00000\n.000.\n.0.0.\n\nOver4\n#044700 (darkest green)\n.000.\n00000\n00000\n.000.\n.....\n\nOver3\n#044700 (darkest green)\n.000.\n00000\n00000\n.....\n.....\n\nOver2\n#044700 (darkest green)\n.000.\n00000\n.....\n.....\n.....\n\nOver1\n#044700 (darkest green)\n.000.\n.....\n.....\n.....\n.....\n\n\n\nO\n#FFFF2C (yellow) #087102 (dark green) \n.....\n.000.\n.010.\n.000.\n.....\n\n\nAr\n#FFFF2C (yellow) #044700 (darkest green)\n11111\n10011\n11001\n10011\n11111\n\nAl\n#FFFF2C (yellow) #044700 (darkest green)\n11111\n11001\n10011\n11001\n11111\n\nAd\n#FFFF2C (yellow) #044700 (darkest green)\n11111\n10101\n10001\n11011\n11111\n\nAu\n#FFFF2C (yellow) #044700 (darkest green)\n11111\n11011\n10001\n10101\n11111\n\nArI\n#044700 (darkest green) #FFFF2C (yellow)\n11111\n10011\n11001\n10011\n11111\n\nAlI\n#044700 (darkest green) #FFFF2C (yellow)\n11111\n11001\n10011\n11001\n11111\n\nAdI\n#044700 (darkest green) #FFFF2C (yellow)\n11111\n10101\n10001\n11011\n11111\n\nAuI\n#044700 (darkest green) #FFFF2C (yellow)\n11111\n11011\n10001\n10101\n11111\n\n\nStorageTick T\n#FFFF2C (yellow)\n0...0\n.....\n..0..\n.....\n0...0\n\nStorage -\n#087102 (dark green)\n.....\n.....\n..0..\n.....\n.....\n\nReplay »\ntransparent\n(white \n.0...\n.000.\n.0.0.\n.000.\n...0.)\n\nFreePlay !\ntransparent\n(white \n.....\n0000.\n.0000\n0000.\n.....\n)\n\nStopPlay _\ntransparent (white \n.0...\n.0.0.\n.....\n.0.0.\n...0.\n)\nOnce\ntransparent\nRead\ntransparent\nTry\ntransparent\n\nRegisterSymbol &\nred\n\nPlayer\n#FF9703 (player orange) #FF8403 (pdayer orange)\n.000.\n00000\n10001\n.111.\n.1.1.\n\nPlayerLegs\n#FF9703 (pdayer orange) #FF8403 (player orange)\n.1.1.\n.1.1.\n.1.1.\n.1.1.\n.0.0.\n\nPlayer2\n#FF9703 (player orange) #FF8403 (pdayer orange)\n.000.\n00000\n10001\n.111.\n.1.1.\n\nPlayerLegs2\n#FF9703 (pdayer orange) #FF8403 (player orange)\n.1.1.\n.1.1.\n.1.1.\n.1.1.\n.0.0.\n\nPlayer2Cover\n#FFFF2C (yellow)\n.000.\n00000\n00000\n.000.\n.0.0.\n\nPlayerLegs2Cover\n#FFFF2C (yellow)\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n\nThrArmR\n#044700 (darkest green) #FF8403 (pdayer orange)\n1....\n.....\n0....\n.....\n.....\n\nThrArmL\n#044700 (darkest green) #FF8403 (pdayer orange)\n....1\n.....\n....0\n.....\n.....\n\nThrArmRCover\n#044700 (darkest green) #FFFF2C (yellow)\n1....\n.....\n0....\n.....\n.....\n\nThrArmLCover\n#044700 (darkest green) #FFFF2C (yellow)\n....1\n.....\n....0\n.....\n.....\n\nNextLegs\ntransparent\n\nPlayerDrop\ntransparent\n\nGravity G\ntransparent\n\nWait\ntransparent\n\nAnimate A\ntransparent\n\nStorageFull\ntransparent\n\nHint1\ntransparent\n\nAniReplay\n#FFFF2C (yellow)\n.....\n.....\n.000.\n.....\n.....\n\nReplayDelay1\ntransparent\n\nReplayDelay2\ntransparent\n\nReplayDelay3\ntransparent\n\nReplayNow\ntransparent\n\nWinNow\ntransparent\n\nFixed\ntransparent\n\n=======\nLEGEND\n=======\n\n# = Wall\n. = Background\n$ = Goal\nD = PlayerDrop\n\nP = Player and D\n\n\nAs = Ar or Al or Au or Ad\nAsi= ArI or AlI or AuI or AdI \n\nBlock = O\n\nPlayers = Player or Player2\n\nPlayerBody = Player or Playerlegs\nPlayerBody2 = Player2 or Playerlegs2\n\nPlayerLegsAny = Playerlegs or Playerlegs2\n\nPlayerBodies = PlayerBody or PlayerBody2\nSymbol = Block or PlayerBodies\nItem = Symbol or Wall\n\nconnectionUnDot = cUL or cUR or cDL or CDR or CV or CH\nconnection = connectionUnDot or CDot\noverdot = cl or cu or cu or cr or cd \n\nHub = HubUp or HubUp2 or HubDown or HubDown2\n\nc_R = cDR or cUR or cH or cDot\nc_U = cUL or cUR or cV or cDot\nc_L = cDL or cUL or cH or cDot\nc_D = cDL or cDR or cV or cDot\n\ncOR = c_R or Hub or cDot\ncOU = c_U or cDot\ncOL = c_L or Hub or cDot\ncOD = c_D or cDot\n\ncXL = cDR or cUR or cV \ncXD = cUL or cUR or cH or HubUp or HubUp2\ncXR = cDL or cUL or cV\ncXU = cDL or cDR or cH or HubDown or HubDown2\n\ntryc = trycr or trycd or trycl or trycu\n\ntrycall = trycr and trycd and trycl and trycu\n\ntrycnor = trycd and trycl and trycu\ntrycnol = trycd and trycr and trycu\ntrycnou = trycd and trycr and trycl\ntrycnod = trycu and trycr and trycl\n\n\nPlay = Freeplay or Replay or StopPlay \n\n(anima)\nDeco = Deco1 or Deco2 or Deco3 or Deco4 or Deco5\nGDeco = Goal1 or Goal2 or Goal3 or Goal4 or Goal5 or Goal6\nWinDeco = Over1 or Over2 or Over3 or Over4 or Over5 or Over6 or Over7 or Over8 or Over9 or Over10\n\nThrownDeco = ThrownRight1 or ThrownRight2 or ThrownRight3 or ThrownLeft1 or ThrownLeft2 or ThrownLeft3\nThrownDeco1 = ThrownRight1 or ThrownLeft1\nThrownDeco3 = ThrownRight3 or ThrownLeft3\n\nPlayerThrownDeco = ThrArmL or ThrArmR\n\nPlayerCover = Player2Cover or Playerlegs2Cover\nPlayerThrArmCover = ThrArmLCover or ThrArmRCover\n\n? = FreePlay and Hint1\n\nAniDot = Storage\n\nReplayDelay = ReplayDelay1 or ReplayDelay2 or ReplayDelay3\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\nbackground\nGoal, PlayerDrop\nDeco, GDeco\nThrownDeco\nGravity, Wait\nPlay\nOnce\nTry\nStorage\nAniReplay\nRead\nStorageTick\n\nAs\nAsi\nItem\nPlayerCover\nNextlegs\n\ntrycr\ntrycd\ntrycl\ntrycu\nConnection\nHub\ncd\ncu\ncr, hubdotr\ncl, hubdotl\n\nPlayerThrownDeco\nPlayerThrArmCover\n\nFixed\n\nWinDeco\nwinNow\nRegisterSymbol\nAnimate\n\nStorageFull\nHint1\n\nReplayDelay, ReplayNow\n\n======\nRULES\n======\n\n[Animate]->[]\n[stationary Player no Animate]->[stationary Player Animate]\n\n(Decoration)\n(---------------------------------------------------)\n[Play no wall]->[Play Wall]\n\n(circuit hubs)\nup [wall no Hub|Goal]-> [wall HubUp|Goal]\nup [wall no Hub|D ]-> [wall HubUp2|D ]\n\ndown [wall no Hub|Goal]-> [wall HubDown|Goal]\ndown [wall no Hub|D ]-> [wall HubDown2|D ]\n\nright[Hub|no wall]->[Hub hubdotr|]\nleft [Hub|no wall]->[Hub hubdotl|]\n\n(circuit connection borders)\n\n(prolong)\n[tryc]->[]\nright [cOR|wall no hub no connection no tryc][A]->[cOR|wall trycall][A]\nup [cOU|wall no hub no connection no tryc][A]->[cOU|wall trycall][A]\nleft [cOL|wall no hub no connection no tryc][A]->[cOL|wall trycall][A]\ndown [cOD|wall no hub no connection no tryc][A]->[cOD|wall trycall][A]\n\n(remove dead ends)\nright [trycr|no wall]->[|]\nup [trycu|no wall]->[|]\nleft [trycl|no wall]->[|]\ndown [trycd|no wall]->[|]\n\nright [trycr|cXL]->[|cXL]\nup [trycu|cXD]->[|cXD]\nleft [trycl|cXR]->[|cXR]\ndown [trycd|cXU]->[|cXU]\n\n[. tryc ]->[tryc random connectionUnDot no .]\n\n[no . ch no trycl]->[.]\n[no . ch no trycr]->[.]\n[no . cv no trycu]->[.]\n[no . cv no trycd]->[.]\n\n[no . cul no trycu]->[.]\n[no . cul no trycl]->[.]\n\n[no . cur no trycr]->[.]\n[no . cur no trycu]->[.]\n\n[no . cdr no trycd]->[.]\n[no . cdr no trycr]->[.]\n\n[no . cdl no trycl]->[.]\n[no . cdl no trycd]->[.]\n\nright [no . CXR|COL]->[.|COL]\nup [no . CXU|COD]->[.|COD]\nleft [no . CXL|COR]->[.|COR]\ndown [no . CXD|COU]->[.|COU]\n\n[tryc]->[no tryc]\n\nrandom [A][wall no hub no connection no tryc]->[A][wall cDot]\n\n[no .]->[.]\n\nleft [cDot no cL|COR]->[cDot cL|COR]\nup [cDot no cU|COD]->[cDot cU|COD]\nright [cDot no cR|COL]->[cDot cR|COL]\ndown [cDot no cD|COU]->[cDot cD|COU]\n\n\n(animated)\n[A][D no Deco]->[A][D Deco5]\n[A][Deco1]->[A][Deco5 no .]\n[A][Deco2]->[A][Deco1]\n[A][Deco3]->[A][Deco2]\n[A][Deco4]->[A][Deco3]\n[A][Deco5 .]->[A][Deco4 .]\n[A][Deco5 no .]->[A][Deco5 .]\n\nlate [A][Deco][player][player2]->[A][][player][player2]\nlate [A][Deco no D]->[A][]\n\n[A][Goal no GDeco]->[A][Goal Goal1]\n[A][Goal6]->[A][Goal1 no .]\n[A][Goal5]->[A][Goal6]\n[A][Goal4]->[A][Goal5]\n[A][Goal3]->[A][Goal4]\n[A][Goal2]->[A][Goal3]\n[A][Goal1 .]->[A][Goal2]\n[A][Goal1 no .]->[A][Goal1 .]\n\n[A][Players Goal no WinDeco]->[A][Players Goal Over1]\n\n(winning animation)\n[A][Over9]->[A][Over10 winNow]\n[A][Over8] ->[A][Over9]\n[A][Over7] ->[A][Over8]\n[A][Over6] ->[A][Over7]\ndown [Over5 |PlayerLegsAny no WinDeco][A]->[Over5|Over6 PlayerLegsAny][A]\n\n[A][Over4]->[A][Over5 winNow]\ndown [Over5 winNow|PlayerLegsAny no WinDeco][A]->[Over5| PlayerLegsAny][A]\n\n[A][Over3]->[A][Over4]\n[A][Over2]->[A][Over3]\n[A][Over1 .]->[A][Over2]\n[A][Over1 no .]->[A][Over1 .]\n\n\n[ThrownDeco3][PlayerThrownDeco]->[ThrownDeco3][] (put down raised arm)\n[PlayerThrownDeco no Player]->[]\n\n[ThrownRight3]->[]\n[ThrownRight2]->[ThrownRight3]\n[ThrownRight1]->[ThrownRight2]\n[ThrownLeft3]->[]\n[ThrownLeft2]->[ThrownLeft3]\n[ThrownLeft1]->[ThrownLeft2]\n[throwndeco symbol]->[symbol]\n\n(animate replay)\n[AniReplay]->[]\n[»][AniDot no AniReplay]->[»][AniDot AniReplay]\n\n\n(Switch Read/Write Phases & Gravity)\n(---------------------------------------------------)\n(Manage Player Spawn)\n[Player D][no Player D]->[Player][D](avoid overspawn)\n\n(RePlay)\n[Wait]->[]\n[ThrownDeco][Player no Wait]->[ThrownDeco][Player Wait] (pause until after thrown)\n[!][action player][D Item no Playerlegs] ->[!][Player][D item] (prevent respawn if blocked)\n[!][action player D] ->[!][Player D] \n[!][action player][D] ->[»][Player2][D Player Wait]\n[Player2][D]->[Player2][] (remove after spawning)\n\n[!][action player][player2]->[»][Player2][Player Wait]\n\n(StopPlay)\n[_][moving player]->[_][player]\n[_][action player]->[_][player]\n\n(clean read moves after stopping)\n[_][Read]->[_][]\n\n(GravityPlay)\n[G]->[]\ndown [Symbol |no Item][Play]-> [Symbol|][Play G]\n\n\n(Delay in Replay Mode)\n(---------------------------------------------------)\n[ReplayNow]->[]\n[ReplayDelay3]->[ReplayNow]\n[ReplayDelay2]->[ReplayDelay3]\n[ReplayDelay1]->[ReplayDelay2]\n\n[» no ReplayDelay no ReplayNow]->[» ReplayDelay1]\n[» ReplayDelay no ReplayNow][Player]->[» ReplayDelay Once][stationary Player Wait]\n\n(Action Storage)\n(---------------------------------------------------)\n(initialise or respawn ticker)\n[!][T]->[!][]\nrandom [!][- no As]->[!][- T]\n[!][G][T]->[!][G][] (don't register gravity)\n\n(place ticker at first emply position)\ndown [- T |- no T][!]->[-|- T][!]\nright[- T |- no T][!]->[-|- T][!]\n\nup [- T| - no T no As][!]->[-|- T][!]\nleft [- T| - no T no As][!]->[-|- T][!]\n\n(register player moves once, and keep ticker)\n[left Player][T][! no Once]->[left Player][T Al][! Once]\n[up Player][T][! no Once]->[up Player][T Au][! Once]\n[right Player][T][! no Once]->[right Player][T Ar][! Once]\n[down Player][T][! no Once]->[down Player][T Ad][! Once]\n[!][Try]->[!][]\n[! Once]->[! Try]\n\n(block action if no more space is available)\n[!]->[! Once]\n[T][! Once]->[T][!]\n[! Once][moving player]->[!][stationary player]\n[! Once]->[!]\n\n\n(Action Readage)\n(---------------------------------------------------)\n(initialise or respawn ticker)\n[»][T]->[»][]\nrandom [»][-]->[»][- T]\n[»][G][T]->[»][G][] (don't register gravity)\n\n(place ticker at last unread position)\ndown [- T |- no T][»]->[-|- T][»]\nright[- T |- no T][»]->[-|- T][»]\n[»][T Read]->[_ Once][Read StorageFull] (exit if no more unread moves)\n\nup [- T |- no T no Read][»]->[-|- T][»]\nleft [- T |- no T no Read][»]->[-|- T][»]\n\n(replay player moves once, and keep ticker)\n[Player no Wait][T Al][» no Once]->[left Player][T Al Read][» Once]\n[Player no Wait][T Au][» no Once]->[up Player][T Au Read][» Once]\n[Player no Wait][T Ar][» no Once]->[right Player][T Ar Read][» Once]\n[Player no Wait][T Ad][» no Once]->[down Player][T Ad Read][» Once]\n[» Once]->[»]\n\n(end after no more available moves and switch player)\n[»][T no As]->[! Once][]\n\n[! Once][Player][Player2]->[!][stationary Player2][stationary Player]\n[_ Once][Player][Player2]->[_][stationary Player2][stationary Player]\n[! Once]->[!]\n[_ Once]->[!]\n\n(embellish read arrows)\n[Al Read]->[Al Ali Read]\n[Au Read]->[Au Aui Read]\n[Ar Read]->[Ar Ari Read]\n[Ad Read]->[Ad Adi Read]\n\n\n(Player picks Blocks)\n(---------------------------------------------------)\n(Drop)\n(up [no playerlegs|down player|Symbol|Symbol] ->[|player|Symbol|Symbol])\nup [ playerlegs|down player|Symbol][no &]->[ |player|Symbol][&] (register)\nup [no playerlegs|down player|Symbol][no &]->[ |Symbol|player][&] (register)\n\n(Pick)\ndown [down player|Symbol no playerlegs][no &]->[Symbol|player][&]\n\n\n(Gravity)\n(---------------------------------------------------)\n\n(symbols fall, walls don't)\n[G][symbol]->[G][down symbol]\n[G][wall]->[G][stationary wall]\n\n(stationary items support other items on top)\ndown [G][down symbol | stationary Item]->[G][stationary symbol| stationary Item]\n\n\n(Player's Long Legs)\n(---------------------------------------------------)\n(swap legs)\nup [playerlegs|player2 ]->[playerlegs2| player2]\nup [playerlegs2|player ]->[playerlegs | player ]\n\n(remove legs on down press or horizonal movement)\nup [playerlegs |down player ][no &]->[stationary player |][&] \nup [playerlegs2|down player2]->[stationary player2|] \nup [playerlegs |up player ]->[playerlegs |stationary player ] \nup [playerlegs2|up player2]->[playerlegs2|stationary player2] \n\n(remove orphan legs)\nlate up [playerlegs |no player ]->[|]\nlate up [playerlegs2|no player2]->[|]\n\n(Rise )\n[up Player]->[up Player Nextlegs]\n[up Player2]->[up Player2 Nextlegs]\nlate [Nextlegs no Item]->[playerlegs] (player 2 is irrelevant)\nlate [Nextlegs]->[]\n\n[Fixed]->[]\nstartloop\n(Transport)\n(---------------------------------------------------)\nup [moving Symbol|Symbol no Fixed]->[moving Symbol|moving Symbol]\n\n(Player Push)\n(---------------------------------------------------)\n[> Player | Symbol]->[> Player|> Symbol]\n\n(Collision)\n(---------------------------------------------------)\nhorizontal [playerlegs2|< symbol ]->[ |< symbol ]\nhorizontal [playerlegs |< symbol ]->[ |< symbol]\n[> Symbol | stationary Symbol]->[> symbol |> symbol]\n\n(De-register Phase: deregister unacomplished moves)\n(---------------------------------------------------)\n[> Symbol | stationary Item]->[stationary Symbol Fixed|stationary Item]\nendloop\n\n(animate throw)\nup [stationary player |...|left Symbol]->[stationary player ThrArmL|...|left Symbol ThrownLeft1 ]\nup [stationary player |...|right Symbol]->[stationary player ThrArmR|...|right Symbol ThrownRight1]\n\n\n[!]->[! Once]\n[moving Symbol][! Once]->[moving Symbol][!]\n [&][! Once]->[][!]\n[! Once][T As]->[!][T no As]\n[! Once]->[!]\n[&]->[]\n\n(Don't move player after win)\n(---------------------------------------------------)\n[player][WinDeco]->[stationary player][WinDeco]\n\n\n(display hint in tutorial level)\n(---------------------------------------------------)\n[Windeco][StorageFull]->[Windeco][]\n[StorageFull][Hint1]->[][] message No more moves. Retry (R)?\n\n(highlight player)\nlate [PlayerCover]->[]\nlate [Player2 no Player2Cover]->[Player2 Player2Cover]\nlate [PlayerLegs2 no PlayerLegs2Cover]->[PlayerLegs2 PlayerLegs2Cover]\n\n\nlate [»][PlayerCover]->[»][]\nlate [»][Player no Player2Cover]->[»][Player Player2Cover]\nlate [»][PlayerLegs no PlayerLegs2Cover]->[»][PlayerLegs PlayerLegs2Cover]\n\n[PlayerThrArmCover]->[]\nlate [ThrArmL Player2Cover]->[ThrArmL ThrarmLCover Player2Cover]\nlate [ThrArmR Player2Cover]->[ThrArmR ThrarmRCover Player2Cover]\n\n==============\nWINCONDITIONS\n==============\nAny WinNow\n\n=======\nLEVELS\n=======\n\nmessage \"So you want to reach your goals?\"\nmessage \"Well, start by helping yourself!\" \nmessage Lesson 1 of 11\nmessage Arrows to play a move...\nmessage ...X to replay moves!\n\n(introduce game mechanics)\n############\n#P..D..#####\n######.#####\n######...$.#\n############\n#----?######\n############\n\n(introduce carrying)\nmessage \"You seem to have some potential.\" \nmessage Lesson 2 * \nmessage \"Carry on...\" \n\n##########\n#.......P#\n#.....####\n#$..######\n##########\n##########\n##-----!##\n##########\n\n(introduce go up)\nmessage Lesson 3 * \nmessage \"..through ups and downs.\" \n##########\n#P......$#\n##..#..###\n##########\n##########\n##------!#\n##########\n\n(introduce push over)\nmessage Lesson 4 * \nmessage \"If you push yourself over the edge...\"\n##########\n#$......P#\n#####...##\n#####...##\n##########\n##!-----##\n##########\n\n(introduce floating respawn spot)\nmessage Lesson 5 *\nmessage \"... do lift yourself up.\"\n##########\n#.d......#\n#........#\n#.......$#\n#.....####\n#.....####\n#.P...####\n##########\n##########\n##-----!##\n##########\n\n(fun: force carrying, great distance and height)\nmessage Lesson 6 **\nmessage \"Never give up,...\"\n############\n#$.........#\n###........#\n#####......#\n#####......#\n#######....#\n#########.P#\n############\n############\n#!--------##\n############\n\n(fun reverse directions, move blockade)\nmessage Lesson 7 **\nmessage \"...but change direction instead.\" \n#######\n#$#####\n#..D..#\n#.###.#\n#P....#\n#######\n#-----#\n#-----!\n#######\n\n\n(introduce blocks and under leg respawn)\nmessage Lesson 8 **\nmessage \"For every block...\"\n########\n#..O..##\n#.##..##\n#.....$#\n#P##.###\n####.###\n##!#####\n########\n#------#\n########\n\n(push and carry at same time)\nmessage Lesson 9 ***\nmessage \"... is a stepping stone...\"\n#########\n#......$#\n#......##\n#P.....##\n##o....##\n###....##\n#########\n#########\n#!#----##\n###----##\n#########\n\n(fun: five storey, so close but so far)\nmessage Lesson 10 ***\nmessage \"... to greater heights!\"\n#######\n#...D$#\n#...###\n#...#!#\n#...###\n#O.P###\n#######\n#######\n#-----#\n#-----#\n#######\n\n(fun: double block constraint)\nmessage Lesson 11 ****\nmessage \"Barriers... are to be knocked!\"\n#########\n##..##.$#\n##..o..##\n##P.o..##\n#########\n#########\n##-----!#\n#########\n\nmessage \"Congratulations, pupil...\"\nmessage \"...you've learned all...\"\nmessage \"... and became your own master.\"\n\nmessage \"So what are you waiting for?\"\nmessage \"Go and chase your dreams!\"\n \nmessage > Play Mini Gemini Replay PMGRP < > > > > > Pedro PSI 2018 < < < < < \nmessage > > > > > > > Music < < < < < < < > Space Flight > < < < Tim Beek < \n\n",["tick","tick","tick","tick","tick","tick","tick",0,"tick",1,"tick","tick",0,"tick","tick",1,"tick","tick","tick",3,"tick",2,"tick",1,"tick",3,"tick","tick","tick",3,"tick","tick",0,4,"tick",4,"tick",4,"tick","tick","tick",1,"tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background ch wall:0,background cdl wall:1,background cd cdot cu wall:2,2,2,background cul wall:3,background cdr wall:4,\nbackground cur wall:5,1,2,3,background cdot cl cr wall:6,background:7,7,\n7,7,background o:8,background cdot cl wall:9,0,au aui background read storage:10,ar ari background read storage:11,\nbackground cdot cr wall:12,3,7,7,7,7,7,\n4,3,al ali background read storage:13,10,9,12,7,\n7,animate background player:14,background player2 player2cover:15,background playerlegs2 playerlegs2cover:16,background hubup2 wall:17,12,10,\nbackground storage storagetick:18,4,background hubdown2 wall:19,7,background hubdotl hubup2 wall:20,4,background cv wall:21,\nbackground cdot cr cu wall:22,0,6,13,background storage:23,0,background hubdown wall:24,\nbackground goal goal3:25,background hubup wall:26,background ch freeplay wall:27,background cdot wall:28,0,1,3,\n11,23,6,0,4,3,1,\n21,background cd cdot cl cu wall:29,2,21,2,5,1,\n",33,"1627779684110.5146"] ], [ `vertebrae`, - ["title Vertebrae\nauthor Ali Nikkhah\n\nnoaction\nbackground_color #000000\ntext_color #a98c47\nyoutube No3kOKsgIXE (dpndP-cBE60)\nrun_rules_on_level_start\nagain_interval 0.05\nkey_repeat_interval 0.12\n\n========\nOBJECTS\n========\n\nBackground\nWhite\n.....\n.....\n..0..\n.....\n.....\n\nGround \n#ac9071\n00000\n00000\n00000\n00000\n00000\n\nGroundCornerTRG\n#a99b8c #ac9071\n....0\n.....\n.....\n.....\n.....\n\nGroundCornerTRW\n#a99b8c #246894\n.11..\n...1.\n....1\n....1\n.....\n\nGroundCornerTLG\n#a99b8c #ac9071\n0....\n.....\n.....\n.....\n.....\n\nGroundCornerTLW\n#a99b8c #246894\n..11.\n.1...\n1....\n1....\n.....\n\nGroundCornerBRG\n#a99b8c #ac9071\n.....\n.....\n.....\n.....\n....0\n\nGroundCornerBRW\n#a99b8c #246894\n.....\n....1\n....1\n...1.\n.11..\n\nGroundCornerBLG\n#a99b8c #ac9071\n.....\n.....\n.....\n.....\n0....\n\nGroundCornerBLW\n#a99b8c #246894\n.....\n1....\n1....\n.1...\n..11.\n\nGroundEdgeUG\n#a99b8c #246894\n00000\n.....\n.....\n.....\n.....\n\nGroundEdgeUW\n#a99b8c #246894\n11111\n.....\n.....\n.....\n.....\n\nGroundEdgeRG\n#a99b8c #246894\n....0\n....0\n....0\n....0\n....0\n\nGroundEdgeRW\n#a99b8c #246894\n....1\n....1\n....1\n....1\n....1\n\nGroundEdgeDG\n#a99b8c #246894\n.....\n.....\n.....\n.....\n00000\n\nGroundEdgeDW\n#a99b8c #246894\n.....\n.....\n.....\n.....\n11111\n\nGroundEdgeLG\n#a99b8c #246894\n0....\n0....\n0....\n0....\n0....\n\nGroundEdgeLW\n#a99b8c #246894\n1....\n1....\n1....\n1....\n1....\n\nDirtWall \n#392800 #5a4000 #5e412b #433021 #4f3622 #744d2e #8b5a33\n.655.\n65122\n15243\n21443\n24433\n\nDoorVertical\n#d89005\n.000.\n.000.\n.000.\n.000.\n.000.\n\nOpenDoorVertical\n#d68708\n.0.0.\n.....\n.....\n.....\n.0.0.\n\nDoorHorizontal\n#d89005\n.....\n00000\n00000\n00000\n.....\n\nOpenDoorHorizontal\n#d68708\n.....\n0...0\n.....\n0...0\n.....\n\nGoal\nDarkBlue\n.....\n.....\n.....\n.....\n.....\n\nTrigger\nDarkBlue\n.....\n.....\n.....\n.....\n.....\n\nopen\ntransparent\n\nclose\ntransparent\n\nWater\n#1780c5 LightBlue\n10000\n00010\n01000\n00001\n00000\n\nWaterCornerTR\n#246894 #a99b8c\n.1110\n...11\n....1\n....1\n.....\n\nWaterCornerTL\n#246894 #a99b8c\n0111.\n11...\n1....\n1....\n.....\n\nWaterCornerBR\n#246894 #a99b8c\n.....\n....1\n....1\n...11\n.1110\n\nWaterCornerBL\n#246894 #a99b8c\n.....\n1....\n1....\n11...\n0111.\n\nLava\n#dd4e00 #ea5d00\n10000\n00010\n01000\n00001\n00000\n\nblood\nDarkred\n.000.\n00000\n00000\n00000\n.000.\n\nPlayerL\nBlack Brown Pink\n.....\n...2.\n2101.\n.1111\n11111\n\nPlayerU\nBlack Brown Pink\n..2..\n.010.\n21112\n11111\n.111.\n\nPlayerR\nBlack Brown Pink\n.....\n.2...\n.1012\n1111.\n11111\n\nPlayerD\nBlack Brown Pink\n.111.\n11111\n21112\n.010.\n..2..\n\nHeadL\nWhite\n.000.\n0.000\n...00\n..00.\n000..\n\nHeadD\nWhite\n.000.\n00000\n0.0.0\n0.0.0\n.000.\n\nHeadU\nWhite\n.000.\n0.0.0\n0.0.0\n00000\n.000.\n\nHeadR\nWhite\n.000.\n000.0\n00...\n.00..\n..000\n\nBodyRL\nWhite LightGrey\n.....\n..1..\n00000\n..1..\n.....\n\nBodyUD\nWhite LightGrey\n..0..\n..0..\n.101.\n..0..\n..0..\n\nBodyDR\nWhite LightGrey\n.....\n.1...\n..000\n..01.\n..0..\n\nBodyDL\nWhite LightGrey\n.....\n...1.\n000..\n.10..\n..0..\n\nBodyUR\nWhite LightGrey\n..0..\n..01.\n..000\n.1...\n.....\n\nBodyUL\nWhite LightGrey\n..0..\n.10..\n000..\n...1.\n.....\n\nTailL\nWhite LightGrey\n.....\n..1..\n0000.\n..1..\n.....\n\nTailR\nWhite LightGrey\n.....\n..1..\n.0000\n..1..\n.....\n\nTailU\nWhite LightGrey\n..0..\n..0..\n.101.\n..0..\n.....\n\nTailD\nWhite LightGrey\n.....\n..0..\n.101.\n..0..\n..0..\n\nDetachedTail\nWhite LightGray\n.....\n..0..\n.101.\n..0..\n.....\n\nBox\n#694632 #7c543d #563428\n.....\n.212.\n.101.\n.212.\n.....\n\nBoxBondU\n#766846\n..0..\n.....\n.....\n.....\n.....\n\nBoxBondR\n#766846\n.....\n.....\n....0\n.....\n.....\n\nBoxBondD\n#766846\n.....\n.....\n.....\n.....\n..0..\n\nBoxBondL\n#766846\n.....\n.....\n0....\n.....\n.....\n\nStep\n#9f835d #927051\n.111.\n10001\n10001\n10001\n.111.\n\nButton\n#7157df #360d8b Gray\n00011\n02221\n12221\n12220\n11000\n\nDartWallU\nBlack DarkGray Gray\n.....\n.112.\n12111\n11212\n11112\n\nDartWallL\nBlack DarkGray Gray\n.....\n.111.\n12112\n10112\n10111\n\nDartWallR\nBlack DarkGray Gray\n.....\n.111.\n21121\n21101\n11101\n\nDartWallD\nBlack DarkGray Gray\n.....\n.112.\n12111\n11012\n11012\n\nDartU\nLightGray\n.....\n..0..\n..0..\n.....\n.....\n\nDartR\nLightGray\n.....\n.....\n..00.\n.....\n.....\n\nDartD\nLightGray\n.....\n.....\n..0..\n..0..\n.....\n\nDartL\nLightGray\n.....\n.....\n.00..\n.....\n.....\n\nN1\nBlack\n..0..\n.00..\n..0..\n..0..\n.000.\n\nN2\nBlack\n000..\n...0.\n.00..\n0....\n0000.\n\nN3\nBlack\n000..\n...0.\n.00..\n...0.\n000..\n\nN4\nBlack\n...0.\n..00.\n.0.0.\n00000\n...0.\n\nN5\nBlack\n0000.\n0....\n000..\n...0.\n000..\n\nN6\nBlack\n.00..\n0....\n000..\n0..0.\n.00..\n\nN7\nBlack\n0000.\n...0.\n..0..\n.0...\n0....\n\nN8\nBlack\n.00..\n0..0.\n.00..\n0..0.\n.00..\n\nN9\nBlack\n.00..\n0..0.\n.000.\n...0.\n.00..\n\nN0\nBlack\n.00..\n0..0.\n0..0.\n0..0.\n.00..\n\nAttachR\ntransparent\n\nAttachL\ntransparent\n\nAttachD\ntransparent\n\nAttachU\ntransparent\n\nArrowU\ntransparent\n\nArrowL\ntransparent\n\nArrowR\ntransparent\n\nArrowD\ntransparent\n\nbreak\ntransparent\n\nclear\ntransparent\n\ncontinue\ntransparent\n\npull\ntransparent\n\nonGround\ntransparent\n\nblockedU\ntransparent\n\nblockedR\ntransparent\n\nblockedD\ntransparent\n\nblockedL\ntransparent\n\nstopU\ntransparent\n\nstopR\ntransparent\n\nstopD\ntransparent\n\nstopL\ntransparent\n\ntailit\ntransparent\n\npink\ntransparent\n\ngreen\ntransparent\n\nstart\ntransparent\n\nrayU\ntransparent\n\nrayR\ntransparent\n\nrayD\ntransparent\n\nrayL\ntransparent\n\nrayreturnU\ntransparent\n\nrayreturnR\ntransparent\n\nrayreturnD\ntransparent\n\nrayreturnL\ntransparent\n\n\nmessage0\ntransparent\n\nmessage1\ntransparent\n\nmessage2\ntransparent\n\nmessage3\ntransparent\n\nsavepoint\ntransparent\n\n\nedgeU\ntransparent\n\nedgeR\ntransparent\n\nedgeD\ntransparent\n\nedgeL\ntransparent\n\nfree\ntransparent\n\nredDot\nRed\n.....\n.....\n..0..\n.....\n.....\n\nblueDot\nblue\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n! = HeadL and ground\n& = HeadR and Water\n¤ = DetachedTail and Water\n\nw = water\nl = Lava\n. = ground\n# = DirtWall and ground\np = PlayerR and start and ground\n> = PlayerR and HeadR and start and ground\n^ = PlayerU and HeadU and start and ground\nv = PlayerD and HeadD and start and ground\n< = PlayerL and HeadL and start and ground\nd = DetachedTail and ground\n? = DetachedTail and Step and Water\n\" = DetachedTail and Box and Button and ground\nj = DetachedTail and Box and ground\ni = DetachedTail and Box and Step and Water\nb = box and ground\nn = box and button and ground\nm = box and water\nu = box and Step and water\nx = button and ground\ng = Step and Water\n$ = box and button and OpenDoorHorizontal and ground\n\nt = DoorVertical and ground\nz = DoorHorizontal and ground\n1 = DoorVertical and Step and Water\n2 = DoorHorizontal and Step and Water\n\no = Goal and ground\n0 = Goal and Step and Water\n- = Trigger and ground\n_ = trigger and water\n/ = trigger and DirtWall and ground\n: = Trigger and Step and Water\n\nA = DartWallU and ground\nY = DartWallR and ground\nK = DartWallD and ground\n7 = DartWallL and ground\n\n۱ = N1 and Water\n۲ = N2 and Water\n۳ = N3 and Water\n۴ = N4 and Water\n۵ = N5 and Water\n۶ = N6 and Water\n۷ = N7 and Water\n۸ = N8 and Water\n۹ = N9 and Water\n۰ = N0 and Water\n\nMarker = ArrowL or ArrowR or ArrowU or ArrowD\nAttachMarker = AttachU or AttachR or AttachD or AttachL\nBlockMarker = blockedU or blockedR or blockedD or blockedL\n\nBoxBondMarker = BoxBondU or BoxBondR or BoxBondD or BoxBondL\n\nPlayer = PlayerL or PlayerR or PlayerU or PlayerD\nTail = TailD or TailU or TailL or TailR\nHead = HeadL or HeadD or HeadR or HeadU\nVertebra = BodyRL or BodyUD or BodyUL or BodyDL or BodyUR or BodyDR or Tail\nMoveable = Vertebra or Head or DetachedTail or Box\n\nVertebraU = TailU or BodyUL or BodyUR or BodyUD\nVertebraR = TailR or BodyUR or BodyDR or BodyRL\nVertebraD = TailD or BodyDL or BodyDR or BodyUD\nVertebraL = TailL or BodyUL or BodyDL or BodyRL\n\nAttachable = Tail or DetachedTail\n\nDoor = DoorHorizontal or DoorVertical\nOpenDoor = OpenDoorHorizontal or OpenDoorVertical\n\nDartWall = DartWallU or DartWallR or DartWallD or DartWallL\nDart = DartU or DartR or DartD or DartL\n\nWall = DirtWall or Door or DartWall\nRayBlocker = Wall or Box or Vertebra or Dart or DetachedTail\nRay = rayU or rayR or rayD or rayL or rayreturnU or rayreturnR or rayreturnD or rayreturnL\n\nMapBackground = Water or Ground\nWalkable = Step or Ground\nNoGround = Button or DirtWall or Step\n\nWaterCorner = WaterCornerTR or WaterCornerTL or WaterCornerBR or WaterCornerBL\nGroundCorner = GroundCornerTRG or GroundCornerTLG or GroundCornerBRG or GroundCornerBLG or GroundCornerTRW or GroundCornerTLW or GroundCornerBRW or GroundCornerBLW\nGroundCornerU = GroundCornerTRG or GroundCornerTLG\nGroundCornerR = GroundCornerTRG or GroundCornerBRG\nGroundCornerD = GroundCornerBRG or GroundCornerBLG\nGroundCornerL = GroundCornerBLG or GroundCornerBRG\n\nedge = edgeU or edgeR or edgeD or edgeL\n=======\nSOUNDS\n=======\n\nUndo 33805504\n\nTitleScreen 92220309\n\nsfx1 98765764\nsfx2 74917107 (30004904)\nsfx3 3004904\nsfx4 32969702\nsfx5 75918304\nsfx6 88800304\nsfx7 1729107\nsfx8 30678307\n\n================\nCOLLISIONLAYERS\n================\n\nAttachU\nAttachD\nAttachL\nAttachR\n\nblockedU\nblockedR\nblockedD\nblockedL\n\nstopU\nstopR\nstopD\nstopL\n\nArrowU\nArrowR\nArrowD\nArrowL\n\nbreak\nclear\ncontinue\npull\nstart\nonground\n\ntailit\n\npink \ngreen\n\nBackground\nWater\nLava\nGround\n\nGroundCornerTRW\nGroundCornerTLW\nGroundCornerBRW\nGroundCornerBLW\nGroundEdgeUW\nGroundEdgeRW\nGroundEdgeDW\nGroundEdgeLW\n\nGroundCornerTRG\nGroundCornerTLG\nGroundCornerBRG\nGroundCornerBLG\nGroundEdgeUG\nGroundEdgeRG\nGroundEdgeDG\nGroundEdgeLG\n\nWaterCornerTR\nWaterCornerTL\nWaterCornerBR\nWaterCornerBL\n\nN0,N1,N2,N3,N4,N5,N6,N7,N8,N9\n\nStep\ngoal\nButton\nBlood\nOpenDoor\nPlayer\nWall, BodyRL, BodyUD, BodyUL, BodyDL, BodyUR, BodyDR, Head, DetachedTail \nTail\nBox\n\nBoxBondU\nBoxBondR\nBoxBondD\nBoxBondL\n\nDart\n\ntrigger\nopen\nclose\n\nray\n\nredDot\nbluedot\n\nmessage0\nmessage1\nmessage2\nmessage3\nsavepoint\n\nedgeU\nedgeR\nedgeD\nedgeL\n\nfree\n\n======\nRULES \n======\n\nup [ start ] [ Wall | Water no Wall ] -> [ start ] [ Wall WaterCornerTR WaterCornerTL | Water no GroundCornerBRG GroundCornerBLG ]\n\n[ start ] [ ] -> [ start ] [ edgeU edgeR edgeD edgeL ]\n\nup [ start ] [ edgeU | MapBackground ] -> [ start ] [ | MapBackground ]\nright [ start ] [ edgeR | MapBackground ] -> [ start ] [ | MapBackground ]\ndown [ start ] [ edgeD | MapBackground ] -> [ start ] [ | MapBackground ]\nleft [ start ] [ edgeL | MapBackground ] -> [ start ] [ | MapBackground ]\n\n[ start ] [ Step | Ground no NoGround | Step ] -> [ start ] [ Step | Step Water | Step ]\n\nup [ start ] [ DirtWall | Water no clear ] -> [ start ] [ Dirtwall no Ground | Water clear ]\n[ Water clear ] -> [ Water ]\n\n[ start ] [ Ground ] -> [ start ] [ Ground WaterCornerTR WaterCornerTL WaterCornerBR WaterCornerBL ]\n[ start ] [ Water ] -> [ start ] [ Water GroundCornerTRG GroundCornerTLG GroundCornerBRG GroundCornerBLG ]\n\nup [ start ] [ Ground | Ground ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerTR | Ground no WaterCornerBL no WaterCornerBR ]\nright [ start ] [ Ground | Ground ] -> [ start ] [ Ground no WaterCornerTR no WaterCornerBR | Ground no WaterCornerBL no WaterCornerTL ]\n\nup [ start ] [ Water | Water ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerTRG | Water no GroundCornerBLG no GroundCornerBRG ]\nright [ start ] [ Water | Water ] -> [ start ] [ Water no GroundCornerTRG no GroundCornerBRG | Water no GroundCornerBLG no GroundCornerTLG ]\n\nup [ start ] [ Water | DirtWall ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerTRG | DirtWall ]\nright [ start ] [ Water | DirtWall ] -> [ start ] [ Water no GroundCornerTRG no GroundCornerBRG | DirtWall ]\ndown [ start ] [ Water | DirtWall ] -> [ start ] [ Water no GroundCornerBLG no GroundCornerBRG | DirtWall ]\nleft [ start ] [ Water | DirtWall ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerBLG | DirtWall ]\n\nup [ start ] [ Ground | NoGround ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerTR | NoGround ]\nright [ start ] [ Ground | NoGround ] -> [ start ] [ Ground no WaterCornerTR no WaterCornerBR | NoGround ]\ndown [ start ] [ Ground | NoGround ] -> [ start ] [ Ground no WaterCornerBL no WaterCornerBR | NoGround ]\nleft [ start ] [ Ground | NoGround ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerBL | NoGround ]\n\n[ start ] [ Step WaterCorner ] -> [ start ] [ Step ]\n\n[ start ] [ Ground edgeD ] -> [ start ] [ Ground no WaterCornerBL no WaterCornerBR edgeD ]\n[ start ] [ Ground edgeL ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerBL edgeL ]\n[ start ] [ Ground edgeU ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerTR edgeU ]\n[ start ] [ Ground edgeR ] -> [ start ] [ Ground no WaterCornerTR no WaterCornerBR edgeR ]\n\n[ start ] [ Water edgeD ] -> [ start ] [ Water no GroundCornerBLG no GroundCornerBRG edgeD ]\n[ start ] [ Water edgeL ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerBLG edgeL ]\n[ start ] [ Water edgeU ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerTRG edgeU ]\n[ start ] [ Water edgeR ] -> [ start ] [ Water no GroundCornerTRG no GroundCornerBRG edgeR ]\n\nup [ start ] [ Water | Ground ] -> [ start ] [ Water GroundEdgeUW | Ground GroundEdgeDG ]\nright [ start ] [ Water | Ground ] -> [ start ] [ Water GroundEdgeRW | Ground GroundEdgeLG ]\ndown [ start ] [ Water | Ground ] -> [ start ] [ Water GroundEdgeDW | Ground GroundEdgeUG ]\nleft [ start ] [ Water | Ground ] -> [ start ] [ Water GroundEdgeLW | Ground GroundEdgeRG ]\n\n[ start ] [ GroundCornerTRG ] -> [ start ] [ GroundCornerTRG GroundCornerTRW ]\n[ start ] [ GroundCornerTLG ] -> [ start ] [ GroundCornerTLG GroundCornerTLW ]\n[ start ] [ GroundCornerBRG ] -> [ start ] [ GroundCornerBRG GroundCornerBRW ]\n[ start ] [ GroundCornerBLG ] -> [ start ] [ GroundCornerBLG GroundCornerBLW ]\n\n[ start ] [ GroundEdgeUG ] -> [ start ] [ GroundEdgeUG GroundEdgeUW ]\n[ start ] [ GroundEdgeRG ] -> [ start ] [ GroundEdgeRG GroundEdgeRW ]\n[ start ] [ GroundEdgeDG ] -> [ start ] [ GroundEdgeDG GroundEdgeDW ]\n[ start ] [ GroundEdgeLG ] -> [ start ] [ GroundEdgeLG GroundEdgeLW ]\n\n[ start ] [ GroundCorner | Button ] -> [ start ] [ | Button ]\n[ start ] [ | Button ] -> [ start ] [ | Button ]\n\n[ start ] [ no Ground ] -> [ start ] [ Water ]\n\n[ Player ] -> [ free Player ]\n\nup [ HeadU edgeU ] [ > Player ] -> [ HeadU edgeU ] [ no free > Player ]\nright [ HeadR edgeR ] [ > Player ] -> [ HeadR edgeR ] [ no free > Player ]\ndown [ HeadD edgeD ] [ > Player ] -> [ HeadD edgeD ] [ no free > Player ]\nleft [ HeadL edgeL ] [ > Player ] -> [ HeadL edgeL ] [ no free > Player ]\n\nup [ > Player no ArrowD ] -> [ free > Player ]\nright [ > Player no ArrowL ] -> [ free > Player ]\ndown [ > Player no ArrowU ] -> [ free > Player ]\nleft [ > Player no ArrowR ] -> [ free > Player ] \n\nlate [ Player Head savepoint ] -> [ Player Head ] checkpoint\n[ > Player Head message3 ] -> [ > Player Head > savepoint ] message \"Let's see what else is around here...\"\n[ Player Head message2 ] -> [ Player Head message3 ] message \"It's a bit too big, but I can use it if I fit my whole body into it.\"\n[ > Player message1 | Head ] -> [ > Player | Head message2 ] again message \"Oh, this skull seems like a fine helmet to wear.\"\n[ > Player no message0 | | Head ] -> [ > Player message0 | message1 | Head ] again message A predator! But no worry, it seems to have been dead for a long time!\n\nup [ Head start | DetachedTail no start ] -> [ Head start | start AttachD DetachedTail ]\nright [ Head start | DetachedTail no start ] -> [ Head start | start AttachL DetachedTail ]\ndown [ Head start | DetachedTail no start ] -> [ Head start | start AttachU DetachedTail ]\nleft [ Head start | DetachedTail no start ] -> [ Head start | start AttachR DetachedTail ]\n\n(Change player moving direction on corners)\n[ up Player HeadU WaterCornerTR no WaterCornerTL ] -> [ left Player HeadU WaterCornerTR ]\n[ up Player HeadU WaterCornerTL no WaterCornerTR ] -> [ right Player HeadU WaterCornerTL ]\n\n[ right Player HeadR WaterCornerTR no WaterCornerBR ] -> [ down Player HeadR WaterCornerTR ]\n[ right Player HeadR WaterCornerBR no WaterCornerTR ] -> [ up Player HeadR WaterCornerBR ]\n\n[ down Player HeadD WaterCornerBR no WaterCornerBL ] -> [ left Player HeadD WaterCornerBR ]\n[ down Player HeadD WaterCornerBL no WaterCornerBR ] -> [ right Player HeadD WaterCornerBL ]\n\n[ left Player HeadL WaterCornerTL no WaterCornerBL ] -> [ down Player HeadL WaterCornerTL ]\n[ left Player HeadL WaterCornerBL no WaterCornerTL ] -> [ up Player HeadL WaterCornerBL ]\n\n(Change sprite direction based on moving direction)\nup [ > Player ] -> [ > PlayerU ]\nright [ > Player ] -> [ > PlayerR ]\ndown [ > Player ] -> [ > PlayerD ]\nleft [ > Player ] -> [ > PlayerL ]\n\n(Stop player when moving toward water or leading the skeleton out of the map)\n[ > Player | no Walkable ] -> [ stationary Player | ]\n[ > Player no free ] -> [ stationary Player ]\n[ free ] -> []\n\n[ DartU ] -> [ up DartU ] again\n[ DartR ] -> [ right DartR ] again\n[ DartD ] -> [ down DartD ] again\n[ DartL ] -> [ left DartL ] again\n\n[ Dart Player ] -> [ Blood clear ] sfx6 again (Shot)\n\nup [ DartU | RayBlocker ] -> [ | Rayblocker ]\nright [ DartR | RayBlocker ] -> [ | Rayblocker ]\ndown [ DartD | RayBlocker ] -> [ | Rayblocker ]\nleft [ DartL | RayBlocker ] -> [ | Rayblocker ]\n\n[ > Player | Wall ] -> [ stationary Player | Wall ]\n[ > Player Head ] -> [ > Player > Head ]\n\nlate [ BlockMarker ] -> [ ]\n\n(Remove the direction and tail markers from the skeleton if the player is pushing, and not pulling, the skelleton)\nup [ > Head | VertebraD ] -> [ > Head clear | clear VertebraD ]\nright [ > Head | VertebraL ] -> [ > Head clear | clear VertebraL ] \ndown [ > Head | VertebraU ] -> [ > Head clear | clear VertebraU ]\nleft [ > Head | VertebraR ] -> [ > Head clear | clear VertebraR ]\n\nstartloop\n\nup [ clear VertebraU | VertebraD ] -> [ clear VertebraU | clear VertebraD ]\nright [ clear VertebraR | VertebraL ] -> [ clear VertebraR | clear VertebraL ]\ndown [ clear VertebraD | VertebraU ] -> [ clear VertebraD | clear VertebraU ]\nleft [ clear VertebraL | VertebraR ] -> [ clear VertebraL | clear VertebraR ]\n\nendloop\n\n[ clear Marker ] -> []\n[ clear break ] -> [] (break is also a marker for the tail)\n\n(Determine in which direction which objects represent an obstacle)\nstartloop\n\nup [ Moveable no break no Marker | Wall ] -> [ Moveable blockedD | Wall ]\nright [ Moveable no break no Marker | Wall ] -> [ Moveable blockedL | Wall ]\ndown [ Moveable no break no Marker | Wall ] -> [ Moveable blockedU | Wall ]\nleft [ Moveable no break no Marker | Wall ] -> [ Moveable blockedR | Wall ]\n\nup [ Moveable no break | Head Marker ] -> [ Moveable blockedD | Head Marker ] \nright [ Moveable no break | Head Marker ] -> [ Moveable blockedL | Head Marker ]\ndown [ Moveable no break | Head Marker ] -> [ Moveable blockedU | Head Marker ]\nleft [ Moveable no break | Head Marker ] -> [ Moveable blockedR | Head Marker]\n\nup [ Moveable no break | blockedD ] -> [ Moveable blockedD | blockedD ]\nright [ Moveable no break | blockedL ] -> [ Moveable blockedL | blockedL ]\ndown [ Moveable no break | blockedU ] -> [ Moveable blockedU | blockedU ]\nleft [ Moveable no break | blockedR ] -> [ Moveable blockedR | blockedR ]\n\nup [ ArrowD | Tail break | Wall ] -> [ ArrowD | Tail break blockedD | Wall ]\nright [ ArrowL | Tail break | Wall ] -> [ ArrowL | Tail break blockedL | Wall ]\ndown [ ArrowU | Tail break | Wall ] -> [ ArrowU | Tail break blockedU | Wall ]\nleft [ ArrowR | Tail break | Wall ] -> [ ArrowR | Tail break blockedR | Wall ] \n\nup [ ArrowD | Tail break | Head Marker ] -> [ ArrowD | Tail break blockedD | Head Marker ]\nright [ ArrowL | Tail break | Head Marker ] -> [ ArrowL | Tail break blockedL | Head Marker ]\ndown [ ArrowU | Tail break | Head Marker ] -> [ ArrowU | Tail break blockedU | Head Marker ]\nleft [ ArrowR | Tail break | Head Marker ] -> [ ArrowR | Tail break blockedR | Head Marker ] \n\nup [ ArrowD | Tail break | blockedD ] -> [ ArrowD | Tail break blockedD | blockedD ]\nright [ ArrowL | Tail break | blockedL ] -> [ ArrowL | Tail break blockedL | blockedL ]\ndown [ ArrowU | Tail break | blockedU ] -> [ ArrowU | Tail break blockedU | blockedU ]\nleft [ ArrowR | Tail break | blockedR ] -> [ ArrowR | Tail break blockedR | blockedR ] \n\nendloop\n\n(If head moves onto a vertebra directly, break the spine at that location)\nup [ > Head | Vertebra Marker no break ] -> [ > Head | break Marker ] sfx3\nright [ > Head | Vertebra Marker no break ] -> [ > Head | break Marker ] sfx3\ndown [ > Head | Vertebra Marker no break ] -> [ > Head | break Marker ] sfx3\nleft [ > Head | Vertebra Marker no break ] -> [ > Head | break Marker ] sfx3\n\n(Determine what object moves onto a moving vertebra indirectly)\nstartloop\n\n[ > Moveable | Moveable no Marker no break ] -> [ > Moveable | > Moveable ]\n\nup [ left VertebraU no blockedR | VertebraD no blockedR ] -> [ left VertebraU | left VertebraD ]\nup [ right VertebraU no blockedL | VertebraD no blockedL] -> [ right VertebraU | right VertebraD ]\n\nright [ up VertebraR no blockedD | VertebraL no blockedD] -> [ up VertebraR | up VertebraL ]\nright [ down VertebraR no blockedU | VertebraL no blockedU] -> [ down VertebraR | down VertebraL ]\n\ndown [ left VertebraD no blockedR | VertebraU no blockedR] -> [ left VertebraD | left VertebraU ]\ndown [ right VertebraD no blockedL | VertebraU no blockedL] -> [ right VertebraD | right VertebraU ]\n\nleft [ up VertebraL no BlockedD | VertebraR no blockedD] -> [ up VertebraL | up VertebraR ]\nleft [ down VertebraL no blockedU | VertebraR no blockedU] -> [ down VertebraL | down VertebraR ]\n\nup [ down VertebraU | VertebraD ] -> [ down VertebraU | down VertebraD ]\nright [ left VertebraR | VertebraL ] -> [ left VertebraR | left VertebraL ]\ndown [ up VertebraD | VertebraU ] -> [ up VertebraD | up VertebraU ]\nleft [ right VertebraL | VertebraR ] -> [ right VertebraL | right VertebraR ]\n\nendloop\n\n(Break the spine indirectly) \nup [ > Moveable no break | Marker no break ] -> [ > Moveable | break Marker ] sfx3\nright [ > Moveable no break | Marker no break ] -> [ > Moveable | break Marker ] sfx3\ndown [ > Moveable no break | Marker no break ] -> [ > Moveable | break Marker ] sfx3\nleft [ > Moveable no break | Marker no break ] -> [ > Moveable | break Marker ] sfx3\n\n(Removing the tail marker so that it doesn't interfere with the breaking process, it's add back later)\n[ Tail break ] -> [ Tail ]\n\n(Finding the broken spot nearest to the head to determine what chunk of the tail/body to cut off)\nstartloop\n\nup [ break VertebraU ArrowD | ] -> [ break VertebraU ArrowD | break ]\nright [ break VertebraR ArrowL | ] -> [ break VertebraR ArrowL | break ]\ndown [ break VertebraD ArrowU | ] -> [ break VertebraD ArrowU | break ]\nleft [ break VertebraL ArrowR | ] -> [ break VertebraL ArrowR | break ]\n\nendloop\n\n[ Tail break ] -> [ Tail break clear ]\n\nstartloop\n\nup [ break clear | break ArrowU ] -> [ | clear break ArrowU ]\nright [ break clear | break ArrowR ] -> [ | clear break ArrowR ]\ndown [ break clear | break ArrowD ] -> [ | clear break ArrowD ]\nleft [ break clear | break ArrowL ] -> [ | clear break ArrowL ]\n\nendloop\n\n[ break ] -> [ break bluedot ]\n[ no break ] -> [ no bluedot ]\n\n(Doing all the work again in case we break off a part that was actually supposed to block us from moving, thus also from breaking anything in the first place)\n[ > Moveable ] -> [ stationary Moveable ] \n[ > Player Head ] -> [ > Player > Head ] \n\nstartloop\n\nup [ Moveable no break | Wall ] -> [ Moveable blockedD | Wall ]\nright [ Moveable no break | Wall ] -> [ Moveable blockedL | Wall ]\ndown [ Moveable no break | Wall ] -> [ Moveable blockedU | Wall ]\nleft [ Moveable no break | Wall ] -> [ Moveable blockedR | Wall ]\n\nup [ Moveable no break | Head Marker ] -> [ Moveable blockedD | Head Marker ] \nright [ Moveable no break | Head Marker ] -> [ Moveable blockedL | Head Marker ]\ndown [ Moveable no break | Head Marker ] -> [ Moveable blockedU | Head Marker ]\nleft [ Moveable no break | Head Marker ] -> [ Moveable blockedR | Head Marker]\n\nup [ Moveable no break | blockedD ] -> [ Moveable blockedD | blockedD ]\nright [ Moveable no break | blockedL ] -> [ Moveable blockedL | blockedL ]\ndown [ Moveable no break | blockedU ] -> [ Moveable blockedU | blockedU ]\nleft [ Moveable no break | blockedR ] -> [ Moveable blockedR | blockedR ]\n\nup [ ArrowD | Tail break | Wall ] -> [ ArrowD | Tail break blockedD | Wall ]\nright [ ArrowL | Tail break | Wall ] -> [ ArrowL | Tail break blockedL | Wall ]\ndown [ ArrowU | Tail break | Wall ] -> [ ArrowU | Tail break blockedU | Wall ]\nleft [ ArrowR | Tail break | Wall ] -> [ ArrowR | Tail break blockedR | Wall ] \n\nup [ ArrowD | Tail break | Head Marker ] -> [ ArrowD | Tail break blockedD | Head Marker ]\nright [ ArrowL | Tail break | Head Marker ] -> [ ArrowL | Tail break blockedL | Head Marker ]\ndown [ ArrowU | Tail break | Head Marker ] -> [ ArrowU | Tail break blockedU | Head Marker ]\nleft [ ArrowR | Tail break | Head Marker ] -> [ ArrowR | Tail break blockedR | Head Marker ] \n\nup [ ArrowD | Tail break | blockedD ] -> [ ArrowD | Tail break blockedD | blockedD ]\nright [ ArrowL | Tail break | blockedL ] -> [ ArrowL | Tail break blockedL | blockedL ]\ndown [ ArrowU | Tail break | blockedU ] -> [ ArrowU | Tail break blockedU | blockedU ]\nleft [ ArrowR | Tail break | blockedR ] -> [ ArrowR | Tail break blockedR | blockedR ] \n\nendloop\n\nstartloop\n\n[ > Moveable | Moveable no Marker no break ] -> [ > Moveable | > Moveable ]\n\nup [ left VertebraU no blockedR | VertebraD no blockedR ] -> [ left VertebraU | left VertebraD ]\nup [ right VertebraU no blockedL | VertebraD no blockedL] -> [ right VertebraU | right VertebraD ]\n\nright [ up VertebraR no blockedD | VertebraL no blockedD] -> [ up VertebraR | up VertebraL ]\nright [ down VertebraR no blockedU | VertebraL no blockedU] -> [ down VertebraR | down VertebraL ]\n\ndown [ left VertebraD no blockedR | VertebraU no blockedR] -> [ left VertebraD | left VertebraU ]\ndown [ right VertebraD no blockedL | VertebraU no blockedL] -> [ right VertebraD | right VertebraU ]\n\nleft [ up VertebraL no BlockedD | VertebraR no blockedD] -> [ up VertebraL | up VertebraR ]\nleft [ down VertebraL no blockedU | VertebraR no blockedU] -> [ down VertebraL | down VertebraR ]\n\nup [ down VertebraU | VertebraD ] -> [ down VertebraU | down VertebraD ]\nright [ left VertebraR | VertebraL ] -> [ left VertebraR | left VertebraL ]\ndown [ up VertebraD | VertebraU ] -> [ up VertebraD | up VertebraU ]\nleft [ right VertebraL | VertebraR ] -> [ right VertebraL | right VertebraR ]\n\nendloop\n\n(Cancel the breaking in case we weren't supposed to break)\n[ > Head ] [ stationary Moveable | break ] -> [ > Head ] [ Moveable | ]\n\n(Find the spot that needs to be separated and do the action)\n[ > Vertebra ] -> [ stationary Vertebra ]\n[ > Attachable ] -> [ stationary Attachable ]\n[ > Box ] -> [ stationary Box ]\n[ Tail break ] -> [ Tail ]\n[ Vertebra break ] -> [ break ]\n\nrandom up [ break | ArrowU ] -> [ break TailU | ArrowU ]\n+right [ break | ArrowR ] -> [ break TailR | ArrowR ]\n+down [ break | ArrowD ] -> [ break TailD | ArrowD ]\n+left [ break | ArrowL ] -> [ break TailL | ArrowL ]\n\nrandom up [ Tail | ArrowU break ] -> [ DetachedTail | break ]\n+right [ Tail | ArrowR break ] -> [ DetachedTail | break ]\n+down [ Tail | ArrowD break ] -> [ DetachedTail | break ]\n+left [ Tail | ArrowL break ] -> [ DetachedTail | break ]\n\nrandom up [ Vertebra | ArrowU break ] -> [ break Vertebra | break ] \n+right [ Vertebra | ArrowR break ] -> [ break Vertebra | break ]\n+down [ Vertebra | ArrowD break ] -> [ break Vertebra | break ]\n+left [ Vertebra | ArrowL break ] -> [ break Vertebra | break ]\n\n[ Vertebra ArrowU break ] -> [ TailD clear ]\n[ Vertebra ArrowR break ] -> [ TailL clear ]\n[ Vertebra ArrowD break ] -> [ TailU clear ]\n[ Vertebra ArrowL break ] -> [ TailR clear ]\n\nup [ break TailU | no ArrowU ] -> [ TailU |]\nright [ break TailR | no ArrowR ] -> [ TailR |]\ndown [ break TailD | no ArrowD ] -> [ TailD |]\nleft [ break TailL | no ArrowL ] -> [ TailL |]\n\n(Clearing markers on the detached rest)\nstartloop\n\nup [ VertebraU clear | VertebraD Marker ] -> [ VertebraU | VertebraD clear ]\nright [ VertebraR clear | VertebraL Marker ] -> [ VertebraR | VertebraL clear ]\ndown [ VertebraD clear | VertebraU Marker ] -> [ VertebraD | VertebraU clear ]\nleft [ VertebraL clear | VertebraR Marker ] -> [ VertebraL | VertebraR clear ]\n\nendloop\n\n[ clear ] -> []\n\n(Marking the new tail)\nup [ TailU | ArrowU ] -> [ break TailU | ArrowU ]\nright [ TailR | ArrowR ] -> [ break TailR | ArrowR ]\ndown [ TailD | ArrowD ] -> [ break TailD | ArrowD ]\nleft [ TailL | ArrowL ] -> [ break TailL | ArrowL ]\n\n[ blockMarker ] -> []\n\n(Determine in which direction which objects represent an obstacle, this time if we are to block movement/break other sections)\nstartloop\n\nup [ Moveable no break no Marker | Wall ] -> [ Moveable blockedD | Wall ]\nright [ Moveable no break no Marker | Wall ] -> [ Moveable blockedL | Wall ]\ndown [ Moveable no break no Marker | Wall ] -> [ Moveable blockedU | Wall ]\nleft [ Moveable no break no Marker | Wall ] -> [ Moveable blockedR | Wall ]\n\nup [ Moveable no break | Head Marker ] -> [ Moveable blockedD | Head Marker ] \nright [ Moveable no break | Head Marker ] -> [ Moveable blockedL | Head Marker ]\ndown [ Moveable no break | Head Marker ] -> [ Moveable blockedU | Head Marker ]\nleft [ Moveable no break | Head Marker ] -> [ Moveable blockedR | Head Marker ]\n\nup [ Moveable no break | blockedD ] -> [ Moveable blockedD | blockedD ]\nright [ Moveable no break | blockedL ] -> [ Moveable blockedL | blockedL ]\ndown [ Moveable no break | blockedU ] -> [ Moveable blockedU | blockedU ]\nleft [ Moveable no break | blockedR ] -> [ Moveable blockedR | blockedR ]\n\nup [ ArrowD | Tail break | Wall ] -> [ ArrowD | Tail break blockedD | Wall ]\nright [ ArrowL | Tail break | Wall ] -> [ ArrowL | Tail break blockedL | Wall ]\ndown [ ArrowU | Tail break | Wall ] -> [ ArrowU | Tail break blockedU | Wall ]\nleft [ ArrowR | Tail break | Wall ] -> [ ArrowR | Tail break blockedR | Wall ] \n\nup [ ArrowD | Tail break | Head Marker ] -> [ ArrowD | Tail break blockedD | Head Marker ]\nright [ ArrowL | Tail break | Head Marker ] -> [ ArrowL | Tail break blockedL | Head Marker ]\ndown [ ArrowU | Tail break | Head Marker ] -> [ ArrowU | Tail break blockedU | Head Marker ]\nleft [ ArrowR | Tail break | Head Marker ] -> [ ArrowR | Tail break blockedR | Head Marker ] \n\nup [ ArrowD | Tail break | blockedD ] -> [ ArrowD | Tail break blockedD | blockedD ]\nright [ ArrowL | Tail break | blockedL ] -> [ ArrowL | Tail break blockedL | blockedL ]\ndown [ ArrowU | Tail break | blockedU ] -> [ ArrowU | Tail break blockedU | blockedU ]\nleft [ ArrowR | Tail break | blockedR ] -> [ ArrowR | Tail break blockedR | blockedR ]\n\nendloop\n\n(Determining which spots are supposed to break and which spots are supposed to be connected)\nstartloop\n\n[ > Moveable | Moveable no Marker no break ] -> [ > Moveable | > Moveable ]\n\n[ up Moveable Marker blockedD ] -> [ stationary Moveable Marker blockedD ]\n[ right Moveable Marker blockedL ] -> [ stationary Moveable Marker blockedL ]\n[ down Moveable Marker blockedU ] -> [ stationary Moveable Marker blockedU ]\n[ left Moveable Marker blockedR ] -> [ stationary Moveable Marker blockedR ]\n\nup [ left VertebraU no blockedR | VertebraD blockedR ] -> [ left VertebraU tailit | VertebraD tailit blockedR ]\nup [ right VertebraU no blockedL | VertebraD blockedL ] -> [ right VertebraU tailit | VertebraD tailit blockedL ]\n\nright [ up VertebraR no blockedD | VertebraL blockedD ] -> [ up VertebraR tailit | VertebraL tailit blockedD ]\nright [ down VertebraR no blockedU | VertebraL blockedU ] -> [ down VertebraR tailit | VertebraL tailit blockedU ]\n\ndown [ left VertebraD no blockedR | VertebraU blockedR ] -> [ left VertebraD tailit | VertebraU tailit blockedR ]\ndown [ right VertebraD no blockedL | VertebraU blockedL ] -> [ right VertebraD tailit | VertebraU tailit blockedL ]\n\nleft [ up VertebraL no blockedD | VertebraR blockedD ] -> [ up VertebraL tailit | VertebraR tailit blockedD ]\nleft [ down VertebraL no blockedU | VertebraR blockedU ] -> [ down VertebraL tailit | VertebraR tailit blockedU ]\n\nup [ left VertebraU no blockedR | VertebraD ] -> [ left VertebraU | left VertebraD ]\nup [ right VertebraU no blockedL | VertebraD ] -> [ right VertebraU | right VertebraD ]\n\nright [ up VertebraR no blockedD | VertebraL ] -> [ up VertebraR | up VertebraL ]\nright [ down VertebraR no blockedU | VertebraL ] -> [ down VertebraR | down VertebraL ]\n\ndown [ left VertebraD no blockedR | VertebraU ] -> [ left VertebraD | left VertebraU ]\ndown [ right VertebraD no blockedL | VertebraU ] -> [ right VertebraD | right VertebraU ]\n\nleft [ up VertebraL no BlockedD | VertebraR ] -> [ up VertebraL | up VertebraR ]\nleft [ down VertebraL no blockedU | VertebraR ] -> [ down VertebraL | down VertebraR ]\n\nup [ down VertebraU | VertebraD ] -> [ down VertebraU | down VertebraD ]\nright [ left VertebraR | VertebraL ] -> [ left VertebraR | left VertebraL ]\ndown [ up VertebraD | VertebraU ] -> [ up VertebraD | up VertebraU ]\nleft [ right VertebraL | VertebraR ] -> [ right VertebraL | right VertebraR ]\n\nup [ > Vertebra tailit | Vertebra tailit no break ] -> [ > Vertebra tailit AttachU | > Vertebra tailit AttachD ]\nright [ > Vertebra tailit | Vertebra tailit no break ] -> [ > Vertebra tailit AttachR | > Vertebra tailit AttachL ]\ndown [ > Vertebra tailit | Vertebra tailit no break ] -> [ > Vertebra tailit AttachD | > Vertebra tailit AttachU ]\nleft [ > Vertebra tailit | Vertebra tailit no break ] -> [ > Vertebra tailit AttachL | > Vertebra tailit AttachR ]\n\nup [ > Vertebra tailit | Attachable no break ] -> [ > Vertebra tailit AttachU | > Attachable AttachD ]\nright [ > Vertebra tailit | Attachable no break ] -> [ > Vertebra tailit AttachR | > Attachable AttachL ]\ndown [ > Vertebra tailit | Attachable no break ] -> [ > Vertebra tailit AttachD | > Attachable AttachU ]\nleft [ > Vertebra tailit | Attachable no break ] -> [ > Vertebra tailit AttachL | > Attachable AttachR ]\n\nup [ > Attachable | Vertebra tailit ] -> [ > Attachable AttachU | > Vertebra tailit AttachD ]\nright [ > Attachable | Vertebra tailit ] -> [ > Attachable AttachR | > Vertebra tailit AttachL ]\ndown [ > Attachable | Vertebra tailit ] -> [ > Attachable AttachD | > Vertebra tailit AttachU ]\nleft [ > Attachable | Vertebra tailit ] -> [ > Attachable AttachL | > Vertebra tailit AttachR ]\n\nendloop\n\n(Cancel movement if pushed against the edge of the map)\nup [ > Moveable edgeU ] [ > Player ] -> cancel\nright [ > Moveable edgeR ] [ > Player ] -> cancel\ndown [ > Moveable edgeD ] [ > Player ] -> cancel\nleft [ > Moveable edgeL ] [ > Player ] -> cancel\n\nup [ > Head edgeU ] [ > Player ] -> cancel\nright [ > Head edgeR ] [ > Player ] -> cancel\ndown [ > Head edgeD ] [ > Player ] -> cancel\nleft [ > Head edgeL ] [ > Player ] -> cancel\n\nup [ TailU AttachU ] -> [ TailU ]\nright [ TailR AttachR ] -> [ TailR ]\ndown [ TailD AttachD ] -> [ TailD ]\nleft [ TailL AttachL ] -> [ TailL ]\n\n()()()()\n\n[ tailit | perpendicular Vertebra tailit | tailit ] -> [ tailit | perpendicular DetachedTail | tailit ] sfx3\n[ perpendicular tailit | stationary Vertebra tailit | perpendicular tailit ] -> [ perpendicular tailit | DetachedTail | perpendicular tailit ] sfx3\n\nup [ moving Vertebra tailit | VertebraD no tailit ] -> [ moving TailU | VertebraD ] sfx3\nright [ moving Vertebra tailit | VertebraL no tailit ] -> [ moving TailR | VertebraL ] sfx3\ndown [ moving Vertebra tailit | VertebraU no tailit ] -> [ moving TailD | VertebraU ] sfx3\nleft [ moving Vertebra tailit | VertebraR no tailit ] -> [ moving TailL | VertebraR ] sfx3\n\nup [ stationary VertebraU tailit | stationary VertebraD tailit ] -> [ TailU | TailD ] sfx3\nright [ stationary VertebraR tailit | stationary VertebraL tailit ] -> [ TailR | TailL ] sfx3\ndown [ stationary VertebraD tailit | stationary VertebraU tailit ] -> [ TailD | TailU ] sfx3\nleft [ stationary VertebraL tailit | stationary VertebraR tailit ] -> [ TailL | TailR ] sfx3\n\nup [ > VertebraU tailit | > VertebraD tailit ] -> [ > TailU | > TailD ] sfx3\nright [ > VertebraR tailit | > VertebraL tailit ] -> [ > TailR | > TailL ] sfx3\ndown [ > VertebraD tailit | > VertebraU tailit ] -> [ > TailD | > TailU ] sfx3\nleft [ > VertebraL tailit | > VertebraR tailit ] -> [ > TailL | > TailR ] sfx3\n\nup [ moving Vertebra tailit | HeadU no tailit ] -> [ moving TailU | HeadU ] sfx3\nright [ moving Vertebra tailit | HeadR no tailit ] -> [ moving TailR | HeadR ] sfx3\ndown [ moving Vertebra tailit | HeadD no tailit ] -> [ moving TailD | HeadD ] sfx3\nleft [ moving Vertebra tailit | HeadL no tailit ] -> [ moving TailL | HeadL ] sfx3\n\nup [ stationary Vertebra tailit | VertebraD no tailit ] -> [ TailU | VertebraD ] sfx3\nright [ stationary Vertebra tailit | VertebraL no tailit ] -> [ TailR | VertebraL ] sfx3\ndown [ stationary Vertebra tailit | VertebraU no tailit ] -> [ TailD | VertebraU ] sfx3\nleft [ stationary Vertebra tailit | VertebraR no tailit ] -> [ TailL | VertebraR ] sfx3\n\n[ stationary Tail tailit ] -> [ DetachedTail ] sfx3\n[ > Tail tailit ] -> [ > DetachedTail ] sfx3\n\nup [ > Attachable | Attachable no break ] -> [ > Attachable AttachU | AttachD > Attachable ]\nright [ > Attachable | Attachable no break ] -> [ > Attachable AttachR | AttachL > Attachable ]\ndown [ > Attachable | Attachable no break ] -> [ > Attachable AttachD | AttachU > Attachable ]\nleft [ > Attachable | Attachable no break ] -> [ > Attachable AttachL | AttachR > Attachable ]\n\nup [ TailU AttachU ] -> [ TailU ]\nright [ TailR AttachR ] -> [ TailR ]\ndown [ TailD AttachD ] -> [ TailD ]\nleft [ TailL AttachL ] -> [ TailL ]\n\n(A clever trick to stop loop formation when two ends of one piece come to gether.)\nstartloop \n\n[ > Head | no pink Moveable ] -> [ > Head | pink Moveable ]\nup [ pink VertebraU | no pink VertebraD ] -> [ pink VertebraU | pink VertebraD ]\nright [ pink VertebraR | no pink VertebraL ] -> [ pink VertebraR | pink VertebraL ]\ndown [ pink VertebraD | no pink VertebraU ] -> [ pink VertebraD | pink VertebraU ]\nleft [ pink VertebraL | no pink VertebraR ] -> [ pink VertebraL | pink VertebraR ]\n\ndown [ > Head ] [ pink | no pink no AttachU Moveable ] -> [ > Head ] [ pink | pink Moveable ]\nleft [ > Head ] [ pink | no pink no AttachR Moveable ] -> [ > Head ] [ pink | pink Moveable ]\nup [ > Head ] [ pink | no pink no AttachD Moveable ] -> [ > Head ] [ pink | pink Moveable ]\nright [ > Head ] [ pink | no pink no AttachL Moveable ] -> [ > Head ] [ pink | pink Moveable ]\n\ndown [ > Head ] [ AttachD | pink AttachU ] -> [ > Head ] [ green AttachD | pink AttachU ]\nleft [ > Head ] [ AttachL | pink AttachR ] -> [ > Head ] [ green AttachL | pink AttachR ]\nup [ > Head ] [ AttachU | pink AttachD ] -> [ > Head ] [ green AttachU | pink AttachD ]\nright [ > Head ] [ AttachR | pink AttachL ] -> [ > Head ] [ green AttachR | pink AttachL ] \n\nup [ green VertebraU | no green no pink VertebraD ] -> [ green VertebraU | green VertebraD ]\nright [ green VertebraR | no green no pink VertebraL ] -> [ green VertebraR | green VertebraL ]\ndown [ green VertebraD | no green no pink VertebraU ] -> [ green VertebraD | green VertebraU ]\nleft [ green VertebraL | no green no pink VertebraR ] -> [ green VertebraL | green VertebraR ]\n\ndown [ > Head ] [ pink AttachD | green AttachU ] -> [ > Head ] [ pink AttachD | pink green AttachU ]\nleft [ > Head ] [ pink AttachL | green AttachR ] -> [ > Head ] [ pink AttachL | pink green AttachR ]\nup [ > Head ] [ pink AttachU | green AttachD ] -> [ > Head ] [ pink AttachU | pink green AttachD ]\nright [ > Head ] [ pink AttachR | green AttachL ] -> [ > Head ] [ pink AttachR | pink green AttachL ]\n\nendloop\n\ndown [ pink green AttachD | pink no green AttachU ] -> [ pink green | pink ]\nleft [ pink green AttachL | pink no green AttachR ] -> [ pink green | pink ]\nup [ pink green AttachU | pink no green AttachD ] -> [ pink green | pink ]\nright [ pink green AttachR | pink no green AttachL ] -> [ pink green | pink ] \n\n[ pink ] -> []\n[ green ] -> []\n\n(Prevent many attachables in a row to all attach together, if one in a row is already attached the attachment between it and the next one should be canceled)\nstartloop\n\nup [ no AttachU | > Tail AttachU | Tail AttachU | ] -> [ | > Tail AttachU | Tail AttachD | no AttachD ]\nright [ no AttachR | > Tail AttachR | Tail AttachR | ] -> [ | > Tail AttachR | Tail AttachL | no AttachL ]\ndown [ no AttachD | > Tail AttachD | Tail AttachD | ] -> [ | > Tail AttachD | Tail AttachU | no AttachU ]\nleft [ no AttachL | > Tail AttachL | Tail AttachL | ] -> [ | > Tail AttachL | Tail AttachR | no AttachR ]\n\nup [ | > DetachedTail AttachU | Tail AttachU | ] -> [ | > DetachedTail AttachU | Tail AttachD | no AttachD ]\nright [ | > DetachedTail AttachR | Tail AttachR | ] -> [ | > DetachedTail AttachR | Tail AttachL | no AttachL ]\ndown [ | > DetachedTail AttachD | Tail AttachD | ] -> [ | > DetachedTail AttachD | Tail AttachU | no AttachU ]\nleft [ | > DetachedTail AttachL | Tail AttachL | ] -> [ | > DetachedTail AttachL | Tail AttachR | no AttachR ]\n\nup [ > Head no Marker | no TailD Tail AttachU | ] -> [ > Head | Tail AttachD | no AttachD ]\nright [ > Head no Marker | no TailL Tail AttachR | ] -> [ > Head | Tail AttachL | no AttachL ]\ndown [ > Head no Marker | no TailU Tail AttachD | ] -> [ > Head | Tail AttachU | no AttachU ]\nleft [ > Head no Marker | no TailR Tail AttachL | ] -> [ > Head | Tail AttachR | no AttachR ]\n\nendloop\n\n(Boxes can't reattach once they are detached)\nup [ Box AttachU | AttachD ] -> [ Box | ]\nright [ Box AttachR | AttachL ] -> [ Box | ]\ndown [ Box AttachD | AttachU ] -> [ Box | ]\nleft [ Box AttachL | AttachR ] -> [ Box | ]\nlate [ Box DetachedTail ] -> [ Box ]\n\n(Attach all separated vertebrae at the start to make up the skeleton)\n[ start ] [ DetachedTail ] -> [ start ] [ start DetachedTail ]\n\nup [ DetachedTail start | DetachedTail start ] -> [ DetachedTail AttachU start | start AttachD DetachedTail ]\nright [ DetachedTail start | DetachedTail start ] -> [ DetachedTail AttachR start | start AttachL DetachedTail ]\ndown [ DetachedTail start | DetachedTail start ] -> [ DetachedTail AttachD start | start AttachU DetachedTail ]\nleft [ DetachedTail start | DetachedTail start ] -> [ DetachedTail AttachL start | start AttachR DetachedTail ]\n\n[ start ] -> []\n\n(Attach head to vertebra / spine)\nup [ > Head no Marker | Attachable no Box ] -> [ > HeadD | AttachD Attachable ] sfx1\nright [ > Head no Marker | Attachable no Box ] -> [ > HeadL | AttachL Attachable ] sfx1\ndown [ > Head no Marker | Attachable no Box ] -> [ > HeadU | AttachU Attachable ] sfx1\nleft [ > Head no Marker | Attachable no Box ] -> [ > HeadR | AttachR Attachable ] sfx1\n\n()\n\n[ > TailU ] -> [ > TailU AttachU ]\n[ > TailR ] -> [ > TailR AttachR ]\n[ > TailD ] -> [ > TailD AttachD ]\n[ > TailL ] -> [ > TailL AttachL ]\n\n(The process of attaching tails and vertebrae)\n\n[ > Attachable AttachU AttachR ] -> [ > BodyUR AttachU AttachR ] sfx1\n[ > Attachable AttachU AttachL ] -> [ > BodyUL AttachU AttachL ] sfx1\n[ > Attachable AttachD AttachR ] -> [ > BodyDR AttachD AttachR ] sfx1\n[ > Attachable AttachD AttachL ] -> [ > BodyDL AttachD AttachL ] sfx1\n[ > Attachable AttachL AttachR ] -> [ > BodyRL AttachL AttachR ] sfx1\n[ > Attachable AttachU AttachD ] -> [ > BodyUD AttachU AttachD ] sfx1\n\n[ > Attachable AttachU ] -> [ > TailU AttachU ] sfx1\n[ > Attachable AttachR ] -> [ > TailR AttachR ] sfx1\n[ > Attachable AttachD ] -> [ > TailD AttachD ] sfx1\n[ > Attachable AttachL ] -> [ > TailL AttachL ] sfx1\n\n[ Attachable AttachU AttachR ] -> [ BodyUR AttachU AttachR ] sfx1\n[ Attachable AttachU AttachL ] -> [ BodyUL AttachU AttachL ] sfx1\n[ Attachable AttachD AttachR ] -> [ BodyDR AttachD AttachR ] sfx1\n[ Attachable AttachD AttachL ] -> [ BodyDL AttachD AttachL ] sfx1\n[ Attachable AttachL AttachR ] -> [ BodyRL AttachL AttachR ] sfx1\n[ Attachable AttachU AttachD ] -> [ BodyUD AttachU AttachD ] sfx1\n\n[ Attachable AttachU ] -> [ TailU AttachU ] sfx1\n[ Attachable AttachR ] -> [ TailR AttachR ] sfx1\n[ Attachable AttachD ] -> [ TailD AttachD ] sfx1\n[ Attachable AttachL ] -> [ TailL AttachL ] sfx1\n\nup [ Attachable AttachU | no Attachable no VertebraD ] -> [ Attachable | ] sfx1\nright [ Attachable AttachR | no Attachable no VertebraL ] -> [ Attachable | ] sfx1\ndown [ Attachable AttachD | no Attachable no VertebraU ] -> [ Attachable | ] sfx1\nleft [ Attachable AttachL | no Attachable no VertebraR ] -> [ Attachable | ] sfx1\n\n()()()()\n\n[ AttachMarker ] -> []\n\n[ up Moveable blockedD ] -> [ stationary Moveable blockedD ]\n[ right Moveable blockedL ] -> [ stationary Moveable blockedL ]\n[ down Moveable blockedU ] -> [ stationary Moveable blockedU ]\n[ left Moveable blockedR ] -> [ stationary Moveable blockedR ]\n\nup [ > Head | no VertebraD ] -> [ > HeadU | ]\nright [ > Head | no VertebraL ] -> [ > HeadR | ]\ndown [ > Head | no VertebraU ] -> [ > HeadD | ]\nleft [ > Head | no VertebraR ] -> [ > HeadL | ]\n\n[ Marker ] -> [ no Marker ]\n\n(Marking the body, each part points in the reverse direction of the next part relative to itself (that means the direction the body is \"moving\" at that point))\nstartloop\n\nup [ Head no Marker | VertebraD ] -> [ Head ArrowD | VertebraD continue ]\nright [ Head no Marker | VertebraL ] -> [ Head ArrowL | VertebraL continue ]\ndown [ Head no Marker | VertebraU ] -> [ Head ArrowU | VertebraU continue ]\nleft [ Head no Marker | VertebraR ] -> [ Head ArrowR | VertebraR continue ]\n\nup [ Vertebra continue | VertebraD no Marker ] -> [ Vertebra ArrowD | VertebraD continue ]\nright [ Vertebra continue | VertebraL no Marker ] -> [ Vertebra ArrowL | VertebraL continue ]\ndown [ Vertebra continue | VertebraU no Marker ] -> [ Vertebra ArrowU | VertebraU continue ]\nleft [ Vertebra continue | VertebraR no Marker ] -> [ Vertebra ArrowR | VertebraR continue ]\n\n[ Tail continue ] -> [ break Tail ]\n\nendloop\n\n[ continue ] -> []\n\n(If the head is pulling the body and not pushing it)\nup [ > Head no ArrowD ] -> [ > Head pull] sfx2\nright [ > Head no ArrowL ] -> [ > Head pull] sfx2\ndown [ > Head no ArrowU ] -> [ > Head pull] sfx2\nleft [ > Head no ArrowR ] -> [ > Head pull] sfx2\n\n(Pull the spine)\nstartloop\n\nup [ stationary Vertebra | moving Moveable ArrowU pull ] -> [ > Vertebra pull | moving Moveable ArrowU pull ]\nright [ stationary Vertebra | moving Moveable ArrowR pull ] -> [ > Vertebra pull | moving Moveable ArrowR pull ]\ndown [ stationary Vertebra | moving Moveable ArrowD pull ] -> [ > Vertebra pull | moving Moveable ArrowD pull ]\nleft [ stationary Vertebra | moving Moveable ArrowL pull ] -> [ > Vertebra pull | moving Moveable ArrowL pull ]\n\nendloop\n\n(New markers for the new positions)\nstartloop\n\n[ up Moveable Marker pull ] -> [ up Moveable ArrowU pull ]\n[ right Moveable Marker pull ] -> [ right Moveable ArrowR pull ]\n[ down Moveable Marker pull ] -> [ down Moveable ArrowD pull ]\n[ left Moveable Marker pull ] -> [ left Moveable ArrowL pull ]\n\nendloop\n\n[ Head pull ] -> [ Head ]\n\n[ > Vertebra Box ] -> [ > Vertebra > Box ]\n[ > Moveable Marker ] -> [ > Moveable > Marker ]\n\n[ > Moveable pull ] -> [ > Moveable > pull ]\n[ > Tail break ] -> [ > Tail > break ]\n\n[ Player stationary Head ] -> [ stationary Player stationary Head ]\n\n[ > Box ground ] -> [ > Box ground ] sfx8\n[ > Box water no Step ] -> [ > Box water ] sfx7\n\n(Creating the new skeleton)\nstartloop\n\nlate up [ Vertebra ArrowU pull | ArrowU no pull ] -> [ BodyUD ArrowU | ArrowU ]\nlate up [ Vertebra ArrowR pull | ArrowU no pull ] -> [ BodyUL ArrowR | ArrowU ]\nlate up [ Vertebra ArrowL pull | ArrowU no pull ] -> [ BodyUR ArrowL | ArrowU ]\n\nlate right [ Vertebra ArrowR pull | ArrowR no pull ] -> [ BodyRL ArrowR | ArrowR ]\nlate right [ Vertebra ArrowU pull | ArrowR no pull ] -> [ BodyDR ArrowU | ArrowR ]\nlate right [ Vertebra ArrowD pull | ArrowR no pull ] -> [ BodyUR ArrowD | ArrowR ]\n\nlate down [ Vertebra ArrowD pull | ArrowD no pull ] -> [ BodyUD ArrowD | ArrowD ]\nlate down [ Vertebra ArrowR pull | ArrowD no pull ] -> [ BodyDL ArrowR | ArrowD ]\nlate down [ Vertebra ArrowL pull | ArrowD no pull ] -> [ BodyDR ArrowL | ArrowD ]\n\nlate left [ Vertebra ArrowL pull | ArrowL no pull ] -> [ BodyRL ArrowL | ArrowL ]\nlate left [ Vertebra ArrowU pull | ArrowL no pull ] -> [ BodyDL ArrowU | ArrowL ]\nlate left [ Vertebra ArrowD pull | ArrowL no pull ] -> [ BodyUL ArrowD | ArrowL ]\n\nlate up [ Tail pull | ArrowU no pull ] -> [ TailU | ArrowU ]\nlate right [ Tail pull | ArrowR no pull ] -> [ TailR | ArrowR ]\nlate down [ Tail pull | ArrowD no pull ] -> [ TailD | ArrowD ]\nlate left [ Tail pull | ArrowL no pull ] -> [ TailL | ArrowL ]\n\nendloop\n\n(Marking attached boxes' bonds to their neighboring attached boxes)\nlate [ BoxBondMarker ] -> []\nlate [ Box VertebraU ] -> [ Box BoxBondU VertebraU ]\nlate [ Box VertebraR ] -> [ Box BoxBondR VertebraR ]\nlate [ Box VertebraD ] -> [ Box BoxBondD VertebraD ]\nlate [ Box VertebraL ] -> [ Box BoxBondL VertebraL ] \n\n(Door/Button action)\nlate [ Head Button ] -> [ Head open Button ]\nlate [ Box Button ] -> [ Box open Button ]\n\nstartloop\n\nlate [ Button open | Trigger ] -> [ Button | Trigger open ]\nlate [ Trigger open | Trigger ] -> [ Trigger open | Trigger open ]\nlate [ Trigger open | DoorVertical ] -> [ Trigger | OpenDoorVertical ]\nlate [ Trigger open | DoorHorizontal ] -> [ Trigger | OpenDoorHorizontal ]\n\nendloop\n\nlate [ Button no Head no Box ] -> [ Button close ]\n\nstartloop\n\nlate [ Button close | Trigger ] -> [ Button close | Trigger close ]\nlate [ Trigger close | Trigger ] -> [ Trigger close | Trigger close ]\nlate [ Trigger close | OpenDoor no close ] -> [ Trigger close | OpenDoor close ]\n\nendloop\n\nlate [ close OpenDoor Box ] -> [ OpenDoor Box ]\n\nlate up [ VertebraU | close OpenDoor ] -> [ tailit VertebraU | close OpenDoor ]\nlate right [ VertebraR | close OpenDoor ] -> [ tailit VertebraR | close OpenDoor ]\nlate down [ VertebraD | close OpenDoor ] -> [ tailit VertebraD | close OpenDoor ]\nlate left [ VertebraL | close OpenDoor ] -> [ tailit VertebraL | close OpenDoor ]\n\nlate up [ HeadD | close OpenDoor ] -> [ no Marker HeadD | close OpenDoor ]\nlate right [ HeadL | close OpenDoor ] -> [ no Marker HeadL | close OpenDoor ]\nlate down [ HeadU | close OpenDoor ] -> [ no Marker HeadU | close OpenDoor ]\nlate left [ HeadR | close OpenDoor ] -> [ no Marker HeadR | close OpenDoor ]\n\nlate [ close OpenDoor Player ] -> [ close OpenDoor no Player Blood ] sfx5 message Crushed!\nlate [ close OpenDoor Moveable ] -> [ close OpenDoor no break no Marker ] sfx3\n\nlate [ close OpenDoorVertical ] -> [ DoorVertical ]\nlate [ close OpenDoorHorizontal ] -> [ DoorHorizontal ] \n\nlate [ open ] -> []\nlate [ close ] -> []\n\n(Breaking the spots that broke by closing doors)\nlate up [ VertebraU | Vertebra tailit ] -> [ VertebraU | TailD ]\nlate right [ VertebraR | Vertebra tailit ] -> [ VertebraR | TailL ]\nlate down [ VertebraD | Vertebra tailit ] -> [ VertebraD | TailU ]\nlate left [ VertebraL | Vertebra tailit ] -> [ VertebraL | TailR ]\n\nlate up [ HeadD | Vertebra tailit ] -> [ HeadD | TailD ]\nlate right [ HeadL | Vertebra tailit ] -> [ HeadL | TailL ]\nlate down [ HeadU | Vertebra tailit ] -> [ HeadU | TailU ]\nlate left [ HeadR | Vertebra tailit ] -> [ HeadR | TailR ]\n\n[tailit ] -> []\n[ break no Tail ] -> [ no break ]\n\nlate [ Tail tailit ] -> [ DetachedTail ]\n\n(Lava action (not used in the game))\nlate [ Head ] -> [ onGround Head ]\nlate [ Vertebra Ground ] -> [ Vertebra onGround Ground ]\nlate up [ onGround | VertebraD ] -> [ onGround | VertebraD onGround ]\nlate right [ onGround | VertebraL ] -> [ onGround | VertebraL onGround ]\nlate down [ onGround | VertebraU ] -> [ onGround | VertebraU onGround ]\nlate left [ onGround | VertebraR ] -> [ onGround | VertebraR onGround ]\n\nlate [ Vertebra Lava no onGround ] -> [ Lava ] sfx4\nlate [ DetachedTail Lava ] -> [ Lava ] sfx4\n\nlate [ onGround ] -> []\n\nlate up [ DartWallU ] -> [ DartWallU rayU ]\nlate right [ DartWallR ] -> [ DartWallR rayR ]\nlate down [ DartWallD ] -> [ DartWallD rayD ]\nlate left [ DartWallL ] -> [ DartWallL rayL ]\n\n(Dart shooting action (not used in the game))\nstartloop\n\nlate up [ rayU | no RayBlocker no Player ] -> [ | rayU ]\nlate right [ rayR | no RayBlocker no Player ] -> [ | rayR ]\nlate down [ rayD | no RayBlocker no Player ] -> [ | rayD ]\nlate left [ rayL | no RayBlocker no Player ] -> [ | rayL ] \n\nlate up [ rayU | rayBlocker no DartWallD ] -> [ | rayBlocker ]\nlate right [ rayR | rayBlocker no DartWallL ] -> [ | rayBlocker ]\nlate down [ rayD | rayBlocker no DartWallU ] -> [ | rayBlocker ]\nlate left [ rayL | rayBlocker no DartWallR ] -> [ | rayBlocker ] \n\nlate up [ rayU | Player ] -> [ | rayreturnD Player ]\nlate right [ rayR | Player ] -> [ | rayreturnL Player ]\nlate down [ rayD | Player ] -> [ | rayreturnU Player ]\nlate left [ rayL | Player ] -> [ | rayreturnR Player ] \n\nlate up [ rayreturnU | no rayBlocker no DartWallD ] -> [ | rayreturnU ]\nlate right [ rayreturnR | no rayBlocker no DartWallL ] -> [ | rayreturnR ]\nlate down [ rayreturnD | no rayBlocker no DartWallU ] -> [ | rayreturnD ]\nlate left [ rayreturnL | no rayBlocker no DartWallR ] -> [ | rayreturnL ] \n\nendloop\n\nlate up [ rayreturnU | DartWall ] -> [ | DartD DartWall ] again\nlate right [ rayreturnR | DartWall ] -> [ DartL | DartWall ] again\nlate down [ rayreturnD | DartWall ] -> [ DartU | DartWall ] again\nlate left [ rayreturnL | DartWall ] -> [ DartR | DartWall ] again\n\n==============\nWINCONDITIONS\n==============\n\nall Player on Goal\nno Blood\n\n======= \nLEVELS\n=======\n\n(4 - 3)\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwww..wwwwwww\nwwwwwwwww...gwwwwww\nwwwwww.....wggwwww#\nwwwwgg..#wwwgwww###\nwwwwgwwwwm#wggg:tto\ng???>gww#wwwwww_w/#\nwwwww...wwwwx___w_#\nwwwww..b.wwxwwwww_w\nwwwwww...ww_______w\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\nw۴wwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\n\n", [3, 2, 2, 1, 0, 0, 1, 1, 3, 0, 0, 3, 3, 3, 0, 3, 3, 3, 0, 0, 1, 2, 2, 1], "background edgel edgeu water:0,background edgel water:1,1,1,1,1,1,1,1,background edgel step water:2,1,1,1,1,1,1,background edged edgel water:3,background edgeu water:4,background water:5,\n5,5,5,5,5,5,5,background step water:6,5,5,5,5,5,background n4 water:7,background edged water:8,4,5,5,5,\n5,5,5,5,5,6,5,5,5,5,5,5,8,4,5,5,5,5,5,\n5,5,5,6,5,5,5,5,5,5,8,4,5,5,5,5,5,5,6,\n6,6,background groundedgerw water:9,9,5,5,5,5,8,4,5,5,5,5,5,9,background groundedgerw step water:10,5,background groundedgedw step water:11,\nbackground ground groundedgelg groundedgelw groundedgeug groundedgeuw:12,background ground groundedgedg groundedgedw groundedgelg groundedgelw watercornerbl:13,background groundcornertrg groundcornertrw groundedgerw groundedgeuw water:14,5,5,5,8,4,5,5,5,5,background groundedgedw water:15,background ground groundedgelg groundedgelw groundedgeug groundedgeuw watercornertl:16,background ground groundedgedg groundedgedw groundedgelg groundedgelw:17,background groundedgeuw water:18,15,background ground groundedgeug groundedgeuw:19,background ground:20,\n13,18,5,5,8,4,5,5,5,5,15,19,background ground groundedgedg groundedgedw:21,18,15,background ground groundedgerg groundedgerw groundedgeug groundedgeuw watercornertr:22,background box ground:23,21,18,\n5,5,8,4,5,5,5,5,background groundcornerbrg groundcornerbrw groundedgedw groundedgerw water:24,19,background dirtwall ground groundedgedg groundedgedw groundedgerg groundedgerw watercornerbr:25,18,background dirtwall water watercornertl watercornertr:26,background groundcornerblg groundcornerblw groundedgedw groundedgelw water:27,22,background ground groundedgedg groundedgedw groundedgerg groundedgerw watercornerbr:28,18,5,5,\n8,4,5,5,5,24,arrowl background ground groundedgelg groundedgelw groundedgeug groundedgeuw headl playerl watercornertl:29,21,background groundedgelw groundedgeuw water:30,background box water:31,5,5,background groundedgelw water:32,32,5,5,5,8,4,\n5,5,15,16,arrowu background bodydl ground:33,arrowu background bodyud ground groundedgedg groundedgedw groundedgerg groundedgerw watercornerbr:34,background break groundedgeuw tailu water:35,26,5,5,9,5,5,5,5,8,4,5,5,\n15,22,background ground groundedgedg groundedgedw groundedgerg groundedgerw:36,background groundcornertlg groundcornertlw groundedgelw groundedgeuw water:37,5,5,5,background groundedgedw groundedgerw water:38,background button ground groundedgedg groundedgedw groundedgelg groundedgelw groundedgerg groundedgerw groundedgeug groundedgeuw watercornerbl watercornerbr watercornertl watercornertr:39,background groundedgeuw trigger water:40,5,5,5,8,4,5,5,5,32,\nbackground groundedgelw step water:41,6,6,6,15,39,30,background trigger water:42,5,5,5,8,4,5,5,5,5,5,6,\n5,6,5,background groundedgelw trigger water:43,5,42,5,5,5,8,4,5,5,5,5,5,5,5,6,\n5,42,5,42,5,5,5,8,4,5,5,5,5,5,5,5,background groundedgerw step trigger water:44,42,42,\n5,42,5,5,5,8,4,5,5,5,5,5,5,26,background doorvertical ground groundedgedg groundedgedw groundedgelg groundedgelw:45,background groundedgerw groundedgeuw water:46,5,5,42,\n5,5,5,8,4,5,5,5,5,5,5,26,background doorvertical ground:47,background dirtwall ground groundedgedg groundedgedw groundedgelg groundedgelw trigger watercornerbl:48,background groundedgerw groundedgeuw trigger water:49,42,42,5,5,\n5,8,background edger edgeu water:50,background edger water:51,51,51,51,51,background dirtwall edger water watercornertl watercornertr:52,background dirtwall edger ground:53,background edger goal ground:54,53,background dirtwall edger ground groundedgedg groundedgedw groundedgelg groundedgelw watercornerbl:55,background edger groundedgeuw water:56,51,51,51,51,background edged edger water:57,\n", 0, "1627779869171.2134"] + ["title Vertebrae\nauthor Ali Nikkhah\n\nnoaction\nbackground_color #000000\ntext_color #a98c47\nyoutube No3kOKsgIXE (dpndP-cBE60)\nrun_rules_on_level_start\nagain_interval 0.05\nkey_repeat_interval 0.12\n\n========\nOBJECTS\n========\n\nBackground\nWhite\n.....\n.....\n..0..\n.....\n.....\n\nGround \n#ac9071\n00000\n00000\n00000\n00000\n00000\n\nGroundCornerTRG\n#a99b8c #ac9071\n....0\n.....\n.....\n.....\n.....\n\nGroundCornerTRW\n#a99b8c #246894\n.11..\n...1.\n....1\n....1\n.....\n\nGroundCornerTLG\n#a99b8c #ac9071\n0....\n.....\n.....\n.....\n.....\n\nGroundCornerTLW\n#a99b8c #246894\n..11.\n.1...\n1....\n1....\n.....\n\nGroundCornerBRG\n#a99b8c #ac9071\n.....\n.....\n.....\n.....\n....0\n\nGroundCornerBRW\n#a99b8c #246894\n.....\n....1\n....1\n...1.\n.11..\n\nGroundCornerBLG\n#a99b8c #ac9071\n.....\n.....\n.....\n.....\n0....\n\nGroundCornerBLW\n#a99b8c #246894\n.....\n1....\n1....\n.1...\n..11.\n\nGroundEdgeUG\n#a99b8c #246894\n00000\n.....\n.....\n.....\n.....\n\nGroundEdgeUW\n#a99b8c #246894\n11111\n.....\n.....\n.....\n.....\n\nGroundEdgeRG\n#a99b8c #246894\n....0\n....0\n....0\n....0\n....0\n\nGroundEdgeRW\n#a99b8c #246894\n....1\n....1\n....1\n....1\n....1\n\nGroundEdgeDG\n#a99b8c #246894\n.....\n.....\n.....\n.....\n00000\n\nGroundEdgeDW\n#a99b8c #246894\n.....\n.....\n.....\n.....\n11111\n\nGroundEdgeLG\n#a99b8c #246894\n0....\n0....\n0....\n0....\n0....\n\nGroundEdgeLW\n#a99b8c #246894\n1....\n1....\n1....\n1....\n1....\n\nDirtWall \n#392800 #5a4000 #5e412b #433021 #4f3622 #744d2e #8b5a33\n.655.\n65122\n15243\n21443\n24433\n\nDoorVertical\n#d89005\n.000.\n.000.\n.000.\n.000.\n.000.\n\nOpenDoorVertical\n#d68708\n.0.0.\n.....\n.....\n.....\n.0.0.\n\nDoorHorizontal\n#d89005\n.....\n00000\n00000\n00000\n.....\n\nOpenDoorHorizontal\n#d68708\n.....\n0...0\n.....\n0...0\n.....\n\nGoal\nDarkBlue\n.....\n.....\n.....\n.....\n.....\n\nTrigger\nDarkBlue\n.....\n.....\n.....\n.....\n.....\n\nopen\ntransparent\n\nclose\ntransparent\n\nWater\n#1780c5 LightBlue\n10000\n00010\n01000\n00001\n00000\n\nWaterCornerTR\n#246894 #a99b8c\n.1110\n...11\n....1\n....1\n.....\n\nWaterCornerTL\n#246894 #a99b8c\n0111.\n11...\n1....\n1....\n.....\n\nWaterCornerBR\n#246894 #a99b8c\n.....\n....1\n....1\n...11\n.1110\n\nWaterCornerBL\n#246894 #a99b8c\n.....\n1....\n1....\n11...\n0111.\n\nLava\n#dd4e00 #ea5d00\n10000\n00010\n01000\n00001\n00000\n\nblood\nDarkred\n.000.\n00000\n00000\n00000\n.000.\n\nPlayerL\nBlack Brown Pink\n.....\n...2.\n2101.\n.1111\n11111\n\nPlayerU\nBlack Brown Pink\n..2..\n.010.\n21112\n11111\n.111.\n\nPlayerR\nBlack Brown Pink\n.....\n.2...\n.1012\n1111.\n11111\n\nPlayerD\nBlack Brown Pink\n.111.\n11111\n21112\n.010.\n..2..\n\nHeadL\nWhite\n.000.\n0.000\n...00\n..00.\n000..\n\nHeadD\nWhite\n.000.\n00000\n0.0.0\n0.0.0\n.000.\n\nHeadU\nWhite\n.000.\n0.0.0\n0.0.0\n00000\n.000.\n\nHeadR\nWhite\n.000.\n000.0\n00...\n.00..\n..000\n\nBodyRL\nWhite LightGrey\n.....\n..1..\n00000\n..1..\n.....\n\nBodyUD\nWhite LightGrey\n..0..\n..0..\n.101.\n..0..\n..0..\n\nBodyDR\nWhite LightGrey\n.....\n.1...\n..000\n..01.\n..0..\n\nBodyDL\nWhite LightGrey\n.....\n...1.\n000..\n.10..\n..0..\n\nBodyUR\nWhite LightGrey\n..0..\n..01.\n..000\n.1...\n.....\n\nBodyUL\nWhite LightGrey\n..0..\n.10..\n000..\n...1.\n.....\n\nTailL\nWhite LightGrey\n.....\n..1..\n0000.\n..1..\n.....\n\nTailR\nWhite LightGrey\n.....\n..1..\n.0000\n..1..\n.....\n\nTailU\nWhite LightGrey\n..0..\n..0..\n.101.\n..0..\n.....\n\nTailD\nWhite LightGrey\n.....\n..0..\n.101.\n..0..\n..0..\n\nDetachedTail\nWhite LightGray\n.....\n..0..\n.101.\n..0..\n.....\n\nBox\n#694632 #7c543d #563428\n.....\n.212.\n.101.\n.212.\n.....\n\nBoxBondU\n#766846\n..0..\n.....\n.....\n.....\n.....\n\nBoxBondR\n#766846\n.....\n.....\n....0\n.....\n.....\n\nBoxBondD\n#766846\n.....\n.....\n.....\n.....\n..0..\n\nBoxBondL\n#766846\n.....\n.....\n0....\n.....\n.....\n\nStep\n#9f835d #927051\n.111.\n10001\n10001\n10001\n.111.\n\nButton\n#7157df #360d8b Gray\n00011\n02221\n12221\n12220\n11000\n\nDartWallU\nBlack DarkGray Gray\n.....\n.112.\n12111\n11212\n11112\n\nDartWallL\nBlack DarkGray Gray\n.....\n.111.\n12112\n10112\n10111\n\nDartWallR\nBlack DarkGray Gray\n.....\n.111.\n21121\n21101\n11101\n\nDartWallD\nBlack DarkGray Gray\n.....\n.112.\n12111\n11012\n11012\n\nDartU\nLightGray\n.....\n..0..\n..0..\n.....\n.....\n\nDartR\nLightGray\n.....\n.....\n..00.\n.....\n.....\n\nDartD\nLightGray\n.....\n.....\n..0..\n..0..\n.....\n\nDartL\nLightGray\n.....\n.....\n.00..\n.....\n.....\n\nN1\nBlack\n..0..\n.00..\n..0..\n..0..\n.000.\n\nN2\nBlack\n000..\n...0.\n.00..\n0....\n0000.\n\nN3\nBlack\n000..\n...0.\n.00..\n...0.\n000..\n\nN4\nBlack\n...0.\n..00.\n.0.0.\n00000\n...0.\n\nN5\nBlack\n0000.\n0....\n000..\n...0.\n000..\n\nN6\nBlack\n.00..\n0....\n000..\n0..0.\n.00..\n\nN7\nBlack\n0000.\n...0.\n..0..\n.0...\n0....\n\nN8\nBlack\n.00..\n0..0.\n.00..\n0..0.\n.00..\n\nN9\nBlack\n.00..\n0..0.\n.000.\n...0.\n.00..\n\nN0\nBlack\n.00..\n0..0.\n0..0.\n0..0.\n.00..\n\nAttachR\ntransparent\n\nAttachL\ntransparent\n\nAttachD\ntransparent\n\nAttachU\ntransparent\n\nArrowU\ntransparent\n\nArrowL\ntransparent\n\nArrowR\ntransparent\n\nArrowD\ntransparent\n\nbreak\ntransparent\n\nclear\ntransparent\n\ncontinue\ntransparent\n\npull\ntransparent\n\nonGround\ntransparent\n\nblockedU\ntransparent\n\nblockedR\ntransparent\n\nblockedD\ntransparent\n\nblockedL\ntransparent\n\nstopU\ntransparent\n\nstopR\ntransparent\n\nstopD\ntransparent\n\nstopL\ntransparent\n\ntailit\ntransparent\n\npink\ntransparent\n\ngreen\ntransparent\n\nstart\ntransparent\n\nrayU\ntransparent\n\nrayR\ntransparent\n\nrayD\ntransparent\n\nrayL\ntransparent\n\nrayreturnU\ntransparent\n\nrayreturnR\ntransparent\n\nrayreturnD\ntransparent\n\nrayreturnL\ntransparent\n\n\nmessage0\ntransparent\n\nmessage1\ntransparent\n\nmessage2\ntransparent\n\nmessage3\ntransparent\n\nsavepoint\ntransparent\n\n\nedgeU\ntransparent\n\nedgeR\ntransparent\n\nedgeD\ntransparent\n\nedgeL\ntransparent\n\nfree\ntransparent\n\nredDot\nRed\n.....\n.....\n..0..\n.....\n.....\n\nblueDot\nblue\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n! = HeadL and ground\n& = HeadR and Water\n¤ = DetachedTail and Water\n\nw = water\nl = Lava\n. = ground\n# = DirtWall and ground\np = PlayerR and start and ground\n> = PlayerR and HeadR and start and ground\n^ = PlayerU and HeadU and start and ground\nv = PlayerD and HeadD and start and ground\n< = PlayerL and HeadL and start and ground\nd = DetachedTail and ground\n? = DetachedTail and Step and Water\n\" = DetachedTail and Box and Button and ground\nj = DetachedTail and Box and ground\ni = DetachedTail and Box and Step and Water\nb = box and ground\nn = box and button and ground\nm = box and water\nu = box and Step and water\nx = button and ground\ng = Step and Water\n$ = box and button and OpenDoorHorizontal and ground\n\nt = DoorVertical and ground\nz = DoorHorizontal and ground\n1 = DoorVertical and Step and Water\n2 = DoorHorizontal and Step and Water\n\no = Goal and ground\n0 = Goal and Step and Water\n- = Trigger and ground\n_ = trigger and water\n/ = trigger and DirtWall and ground\n: = Trigger and Step and Water\n\nA = DartWallU and ground\nY = DartWallR and ground\nK = DartWallD and ground\n7 = DartWallL and ground\n\n۱ = N1 and Water\n۲ = N2 and Water\n۳ = N3 and Water\n۴ = N4 and Water\n۵ = N5 and Water\n۶ = N6 and Water\n۷ = N7 and Water\n۸ = N8 and Water\n۹ = N9 and Water\n۰ = N0 and Water\n\nMarker = ArrowL or ArrowR or ArrowU or ArrowD\nAttachMarker = AttachU or AttachR or AttachD or AttachL\nBlockMarker = blockedU or blockedR or blockedD or blockedL\n\nBoxBondMarker = BoxBondU or BoxBondR or BoxBondD or BoxBondL\n\nPlayer = PlayerL or PlayerR or PlayerU or PlayerD\nTail = TailD or TailU or TailL or TailR\nHead = HeadL or HeadD or HeadR or HeadU\nVertebra = BodyRL or BodyUD or BodyUL or BodyDL or BodyUR or BodyDR or Tail\nMoveable = Vertebra or Head or DetachedTail or Box\n\nVertebraU = TailU or BodyUL or BodyUR or BodyUD\nVertebraR = TailR or BodyUR or BodyDR or BodyRL\nVertebraD = TailD or BodyDL or BodyDR or BodyUD\nVertebraL = TailL or BodyUL or BodyDL or BodyRL\n\nAttachable = Tail or DetachedTail\n\nDoor = DoorHorizontal or DoorVertical\nOpenDoor = OpenDoorHorizontal or OpenDoorVertical\n\nDartWall = DartWallU or DartWallR or DartWallD or DartWallL\nDart = DartU or DartR or DartD or DartL\n\nWall = DirtWall or Door or DartWall\nRayBlocker = Wall or Box or Vertebra or Dart or DetachedTail\nRay = rayU or rayR or rayD or rayL or rayreturnU or rayreturnR or rayreturnD or rayreturnL\n\nMapBackground = Water or Ground\nWalkable = Step or Ground\nNoGround = Button or DirtWall or Step\n\nWaterCorner = WaterCornerTR or WaterCornerTL or WaterCornerBR or WaterCornerBL\nGroundCorner = GroundCornerTRG or GroundCornerTLG or GroundCornerBRG or GroundCornerBLG or GroundCornerTRW or GroundCornerTLW or GroundCornerBRW or GroundCornerBLW\nGroundCornerU = GroundCornerTRG or GroundCornerTLG\nGroundCornerR = GroundCornerTRG or GroundCornerBRG\nGroundCornerD = GroundCornerBRG or GroundCornerBLG\nGroundCornerL = GroundCornerBLG or GroundCornerBRG\n\nedge = edgeU or edgeR or edgeD or edgeL\n=======\nSOUNDS\n=======\n\nUndo 33805504\n\nTitleScreen 92220309\n\nsfx1 98765764\nsfx2 74917107 (30004904)\nsfx3 3004904\nsfx4 32969702\nsfx5 75918304\nsfx6 88800304\nsfx7 1729107\nsfx8 30678307\n\n================\nCOLLISIONLAYERS\n================\n\nAttachU\nAttachD\nAttachL\nAttachR\n\nblockedU\nblockedR\nblockedD\nblockedL\n\nstopU\nstopR\nstopD\nstopL\n\nArrowU\nArrowR\nArrowD\nArrowL\n\nbreak\nclear\ncontinue\npull\nstart\nonground\n\ntailit\n\npink \ngreen\n\nBackground\nWater\nLava\nGround\n\nGroundCornerTRW\nGroundCornerTLW\nGroundCornerBRW\nGroundCornerBLW\nGroundEdgeUW\nGroundEdgeRW\nGroundEdgeDW\nGroundEdgeLW\n\nGroundCornerTRG\nGroundCornerTLG\nGroundCornerBRG\nGroundCornerBLG\nGroundEdgeUG\nGroundEdgeRG\nGroundEdgeDG\nGroundEdgeLG\n\nWaterCornerTR\nWaterCornerTL\nWaterCornerBR\nWaterCornerBL\n\nN0,N1,N2,N3,N4,N5,N6,N7,N8,N9\n\nStep\ngoal\nButton\nBlood\nOpenDoor\nPlayer\nWall, BodyRL, BodyUD, BodyUL, BodyDL, BodyUR, BodyDR, Head, DetachedTail \nTail\nBox\n\nBoxBondU\nBoxBondR\nBoxBondD\nBoxBondL\n\nDart\n\ntrigger\nopen\nclose\n\nray\n\nredDot\nbluedot\n\nmessage0\nmessage1\nmessage2\nmessage3\nsavepoint\n\nedgeU\nedgeR\nedgeD\nedgeL\n\nfree\n\n======\nRULES \n======\n\nup [ start ] [ Wall | Water no Wall ] -> [ start ] [ Wall WaterCornerTR WaterCornerTL | Water no GroundCornerBRG GroundCornerBLG ]\n\n[ start ] [ ] -> [ start ] [ edgeU edgeR edgeD edgeL ]\n\nup [ start ] [ edgeU | MapBackground ] -> [ start ] [ | MapBackground ]\nright [ start ] [ edgeR | MapBackground ] -> [ start ] [ | MapBackground ]\ndown [ start ] [ edgeD | MapBackground ] -> [ start ] [ | MapBackground ]\nleft [ start ] [ edgeL | MapBackground ] -> [ start ] [ | MapBackground ]\n\n[ start ] [ Step | Ground no NoGround | Step ] -> [ start ] [ Step | Step Water | Step ]\n\nup [ start ] [ DirtWall | Water no clear ] -> [ start ] [ Dirtwall no Ground | Water clear ]\n[ Water clear ] -> [ Water ]\n\n[ start ] [ Ground ] -> [ start ] [ Ground WaterCornerTR WaterCornerTL WaterCornerBR WaterCornerBL ]\n[ start ] [ Water ] -> [ start ] [ Water GroundCornerTRG GroundCornerTLG GroundCornerBRG GroundCornerBLG ]\n\nup [ start ] [ Ground | Ground ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerTR | Ground no WaterCornerBL no WaterCornerBR ]\nright [ start ] [ Ground | Ground ] -> [ start ] [ Ground no WaterCornerTR no WaterCornerBR | Ground no WaterCornerBL no WaterCornerTL ]\n\nup [ start ] [ Water | Water ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerTRG | Water no GroundCornerBLG no GroundCornerBRG ]\nright [ start ] [ Water | Water ] -> [ start ] [ Water no GroundCornerTRG no GroundCornerBRG | Water no GroundCornerBLG no GroundCornerTLG ]\n\nup [ start ] [ Water | DirtWall ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerTRG | DirtWall ]\nright [ start ] [ Water | DirtWall ] -> [ start ] [ Water no GroundCornerTRG no GroundCornerBRG | DirtWall ]\ndown [ start ] [ Water | DirtWall ] -> [ start ] [ Water no GroundCornerBLG no GroundCornerBRG | DirtWall ]\nleft [ start ] [ Water | DirtWall ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerBLG | DirtWall ]\n\nup [ start ] [ Ground | NoGround ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerTR | NoGround ]\nright [ start ] [ Ground | NoGround ] -> [ start ] [ Ground no WaterCornerTR no WaterCornerBR | NoGround ]\ndown [ start ] [ Ground | NoGround ] -> [ start ] [ Ground no WaterCornerBL no WaterCornerBR | NoGround ]\nleft [ start ] [ Ground | NoGround ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerBL | NoGround ]\n\n[ start ] [ Step WaterCorner ] -> [ start ] [ Step ]\n\n[ start ] [ Ground edgeD ] -> [ start ] [ Ground no WaterCornerBL no WaterCornerBR edgeD ]\n[ start ] [ Ground edgeL ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerBL edgeL ]\n[ start ] [ Ground edgeU ] -> [ start ] [ Ground no WaterCornerTL no WaterCornerTR edgeU ]\n[ start ] [ Ground edgeR ] -> [ start ] [ Ground no WaterCornerTR no WaterCornerBR edgeR ]\n\n[ start ] [ Water edgeD ] -> [ start ] [ Water no GroundCornerBLG no GroundCornerBRG edgeD ]\n[ start ] [ Water edgeL ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerBLG edgeL ]\n[ start ] [ Water edgeU ] -> [ start ] [ Water no GroundCornerTLG no GroundCornerTRG edgeU ]\n[ start ] [ Water edgeR ] -> [ start ] [ Water no GroundCornerTRG no GroundCornerBRG edgeR ]\n\nup [ start ] [ Water | Ground ] -> [ start ] [ Water GroundEdgeUW | Ground GroundEdgeDG ]\nright [ start ] [ Water | Ground ] -> [ start ] [ Water GroundEdgeRW | Ground GroundEdgeLG ]\ndown [ start ] [ Water | Ground ] -> [ start ] [ Water GroundEdgeDW | Ground GroundEdgeUG ]\nleft [ start ] [ Water | Ground ] -> [ start ] [ Water GroundEdgeLW | Ground GroundEdgeRG ]\n\n[ start ] [ GroundCornerTRG ] -> [ start ] [ GroundCornerTRG GroundCornerTRW ]\n[ start ] [ GroundCornerTLG ] -> [ start ] [ GroundCornerTLG GroundCornerTLW ]\n[ start ] [ GroundCornerBRG ] -> [ start ] [ GroundCornerBRG GroundCornerBRW ]\n[ start ] [ GroundCornerBLG ] -> [ start ] [ GroundCornerBLG GroundCornerBLW ]\n\n[ start ] [ GroundEdgeUG ] -> [ start ] [ GroundEdgeUG GroundEdgeUW ]\n[ start ] [ GroundEdgeRG ] -> [ start ] [ GroundEdgeRG GroundEdgeRW ]\n[ start ] [ GroundEdgeDG ] -> [ start ] [ GroundEdgeDG GroundEdgeDW ]\n[ start ] [ GroundEdgeLG ] -> [ start ] [ GroundEdgeLG GroundEdgeLW ]\n\n[ start ] [ GroundCorner | Button ] -> [ start ] [ | Button ]\n[ start ] [ | Button ] -> [ start ] [ | Button ]\n\n[ start ] [ no Ground ] -> [ start ] [ Water ]\n\n[ Player ] -> [ free Player ]\n\nup [ HeadU edgeU ] [ > Player ] -> [ HeadU edgeU ] [ no free > Player ]\nright [ HeadR edgeR ] [ > Player ] -> [ HeadR edgeR ] [ no free > Player ]\ndown [ HeadD edgeD ] [ > Player ] -> [ HeadD edgeD ] [ no free > Player ]\nleft [ HeadL edgeL ] [ > Player ] -> [ HeadL edgeL ] [ no free > Player ]\n\nup [ > Player no ArrowD ] -> [ free > Player ]\nright [ > Player no ArrowL ] -> [ free > Player ]\ndown [ > Player no ArrowU ] -> [ free > Player ]\nleft [ > Player no ArrowR ] -> [ free > Player ] \n\nlate [ Player Head savepoint ] -> [ Player Head ] checkpoint\n[ > Player Head message3 ] -> [ > Player Head > savepoint ] message \"Let's see what else is around here...\"\n[ Player Head message2 ] -> [ Player Head message3 ] message \"It's a bit too big, but I can use it if I fit my whole body into it.\"\n[ > Player message1 | Head ] -> [ > Player | Head message2 ] again message \"Oh, this skull seems like a fine helmet to wear.\"\n[ > Player no message0 | | Head ] -> [ > Player message0 | message1 | Head ] again message A predator! But no worry, it seems to have been dead for a long time!\n\nup [ Head start | DetachedTail no start ] -> [ Head start | start AttachD DetachedTail ]\nright [ Head start | DetachedTail no start ] -> [ Head start | start AttachL DetachedTail ]\ndown [ Head start | DetachedTail no start ] -> [ Head start | start AttachU DetachedTail ]\nleft [ Head start | DetachedTail no start ] -> [ Head start | start AttachR DetachedTail ]\n\n(Change player moving direction on corners)\n[ up Player HeadU WaterCornerTR no WaterCornerTL ] -> [ left Player HeadU WaterCornerTR ]\n[ up Player HeadU WaterCornerTL no WaterCornerTR ] -> [ right Player HeadU WaterCornerTL ]\n\n[ right Player HeadR WaterCornerTR no WaterCornerBR ] -> [ down Player HeadR WaterCornerTR ]\n[ right Player HeadR WaterCornerBR no WaterCornerTR ] -> [ up Player HeadR WaterCornerBR ]\n\n[ down Player HeadD WaterCornerBR no WaterCornerBL ] -> [ left Player HeadD WaterCornerBR ]\n[ down Player HeadD WaterCornerBL no WaterCornerBR ] -> [ right Player HeadD WaterCornerBL ]\n\n[ left Player HeadL WaterCornerTL no WaterCornerBL ] -> [ down Player HeadL WaterCornerTL ]\n[ left Player HeadL WaterCornerBL no WaterCornerTL ] -> [ up Player HeadL WaterCornerBL ]\n\n(Change sprite direction based on moving direction)\nup [ > Player ] -> [ > PlayerU ]\nright [ > Player ] -> [ > PlayerR ]\ndown [ > Player ] -> [ > PlayerD ]\nleft [ > Player ] -> [ > PlayerL ]\n\n(Stop player when moving toward water or leading the skeleton out of the map)\n[ > Player | no Walkable ] -> [ stationary Player | ]\n[ > Player no free ] -> [ stationary Player ]\n[ free ] -> []\n\n[ DartU ] -> [ up DartU ] again\n[ DartR ] -> [ right DartR ] again\n[ DartD ] -> [ down DartD ] again\n[ DartL ] -> [ left DartL ] again\n\n[ Dart Player ] -> [ Blood clear ] sfx6 again (Shot)\n\nup [ DartU | RayBlocker ] -> [ | Rayblocker ]\nright [ DartR | RayBlocker ] -> [ | Rayblocker ]\ndown [ DartD | RayBlocker ] -> [ | Rayblocker ]\nleft [ DartL | RayBlocker ] -> [ | Rayblocker ]\n\n[ > Player | Wall ] -> [ stationary Player | Wall ]\n[ > Player Head ] -> [ > Player > Head ]\n\nlate [ BlockMarker ] -> [ ]\n\n(Remove the direction and tail markers from the skeleton if the player is pushing, and not pulling, the skelleton)\nup [ > Head | VertebraD ] -> [ > Head clear | clear VertebraD ]\nright [ > Head | VertebraL ] -> [ > Head clear | clear VertebraL ] \ndown [ > Head | VertebraU ] -> [ > Head clear | clear VertebraU ]\nleft [ > Head | VertebraR ] -> [ > Head clear | clear VertebraR ]\n\nstartloop\n\nup [ clear VertebraU | VertebraD ] -> [ clear VertebraU | clear VertebraD ]\nright [ clear VertebraR | VertebraL ] -> [ clear VertebraR | clear VertebraL ]\ndown [ clear VertebraD | VertebraU ] -> [ clear VertebraD | clear VertebraU ]\nleft [ clear VertebraL | VertebraR ] -> [ clear VertebraL | clear VertebraR ]\n\nendloop\n\n[ clear Marker ] -> []\n[ clear break ] -> [] (break is also a marker for the tail)\n\n(Determine in which direction which objects represent an obstacle)\nstartloop\n\nup [ Moveable no break no Marker | Wall ] -> [ Moveable blockedD | Wall ]\nright [ Moveable no break no Marker | Wall ] -> [ Moveable blockedL | Wall ]\ndown [ Moveable no break no Marker | Wall ] -> [ Moveable blockedU | Wall ]\nleft [ Moveable no break no Marker | Wall ] -> [ Moveable blockedR | Wall ]\n\nup [ Moveable no break | Head Marker ] -> [ Moveable blockedD | Head Marker ] \nright [ Moveable no break | Head Marker ] -> [ Moveable blockedL | Head Marker ]\ndown [ Moveable no break | Head Marker ] -> [ Moveable blockedU | Head Marker ]\nleft [ Moveable no break | Head Marker ] -> [ Moveable blockedR | Head Marker]\n\nup [ Moveable no break | blockedD ] -> [ Moveable blockedD | blockedD ]\nright [ Moveable no break | blockedL ] -> [ Moveable blockedL | blockedL ]\ndown [ Moveable no break | blockedU ] -> [ Moveable blockedU | blockedU ]\nleft [ Moveable no break | blockedR ] -> [ Moveable blockedR | blockedR ]\n\nup [ ArrowD | Tail break | Wall ] -> [ ArrowD | Tail break blockedD | Wall ]\nright [ ArrowL | Tail break | Wall ] -> [ ArrowL | Tail break blockedL | Wall ]\ndown [ ArrowU | Tail break | Wall ] -> [ ArrowU | Tail break blockedU | Wall ]\nleft [ ArrowR | Tail break | Wall ] -> [ ArrowR | Tail break blockedR | Wall ] \n\nup [ ArrowD | Tail break | Head Marker ] -> [ ArrowD | Tail break blockedD | Head Marker ]\nright [ ArrowL | Tail break | Head Marker ] -> [ ArrowL | Tail break blockedL | Head Marker ]\ndown [ ArrowU | Tail break | Head Marker ] -> [ ArrowU | Tail break blockedU | Head Marker ]\nleft [ ArrowR | Tail break | Head Marker ] -> [ ArrowR | Tail break blockedR | Head Marker ] \n\nup [ ArrowD | Tail break | blockedD ] -> [ ArrowD | Tail break blockedD | blockedD ]\nright [ ArrowL | Tail break | blockedL ] -> [ ArrowL | Tail break blockedL | blockedL ]\ndown [ ArrowU | Tail break | blockedU ] -> [ ArrowU | Tail break blockedU | blockedU ]\nleft [ ArrowR | Tail break | blockedR ] -> [ ArrowR | Tail break blockedR | blockedR ] \n\nendloop\n\n(If head moves onto a vertebra directly, break the spine at that location)\nup [ > Head | Vertebra Marker no break ] -> [ > Head | break Marker ] sfx3\nright [ > Head | Vertebra Marker no break ] -> [ > Head | break Marker ] sfx3\ndown [ > Head | Vertebra Marker no break ] -> [ > Head | break Marker ] sfx3\nleft [ > Head | Vertebra Marker no break ] -> [ > Head | break Marker ] sfx3\n\n(Determine what object moves onto a moving vertebra indirectly)\nstartloop\n\n[ > Moveable | Moveable no Marker no break ] -> [ > Moveable | > Moveable ]\n\nup [ left VertebraU no blockedR | VertebraD no blockedR ] -> [ left VertebraU | left VertebraD ]\nup [ right VertebraU no blockedL | VertebraD no blockedL] -> [ right VertebraU | right VertebraD ]\n\nright [ up VertebraR no blockedD | VertebraL no blockedD] -> [ up VertebraR | up VertebraL ]\nright [ down VertebraR no blockedU | VertebraL no blockedU] -> [ down VertebraR | down VertebraL ]\n\ndown [ left VertebraD no blockedR | VertebraU no blockedR] -> [ left VertebraD | left VertebraU ]\ndown [ right VertebraD no blockedL | VertebraU no blockedL] -> [ right VertebraD | right VertebraU ]\n\nleft [ up VertebraL no BlockedD | VertebraR no blockedD] -> [ up VertebraL | up VertebraR ]\nleft [ down VertebraL no blockedU | VertebraR no blockedU] -> [ down VertebraL | down VertebraR ]\n\nup [ down VertebraU | VertebraD ] -> [ down VertebraU | down VertebraD ]\nright [ left VertebraR | VertebraL ] -> [ left VertebraR | left VertebraL ]\ndown [ up VertebraD | VertebraU ] -> [ up VertebraD | up VertebraU ]\nleft [ right VertebraL | VertebraR ] -> [ right VertebraL | right VertebraR ]\n\nendloop\n\n(Break the spine indirectly) \nup [ > Moveable no break | Marker no break ] -> [ > Moveable | break Marker ] sfx3\nright [ > Moveable no break | Marker no break ] -> [ > Moveable | break Marker ] sfx3\ndown [ > Moveable no break | Marker no break ] -> [ > Moveable | break Marker ] sfx3\nleft [ > Moveable no break | Marker no break ] -> [ > Moveable | break Marker ] sfx3\n\n(Removing the tail marker so that it doesn't interfere with the breaking process, it's add back later)\n[ Tail break ] -> [ Tail ]\n\n(Finding the broken spot nearest to the head to determine what chunk of the tail/body to cut off)\nstartloop\n\nup [ break VertebraU ArrowD | ] -> [ break VertebraU ArrowD | break ]\nright [ break VertebraR ArrowL | ] -> [ break VertebraR ArrowL | break ]\ndown [ break VertebraD ArrowU | ] -> [ break VertebraD ArrowU | break ]\nleft [ break VertebraL ArrowR | ] -> [ break VertebraL ArrowR | break ]\n\nendloop\n\n[ Tail break ] -> [ Tail break clear ]\n\nstartloop\n\nup [ break clear | break ArrowU ] -> [ | clear break ArrowU ]\nright [ break clear | break ArrowR ] -> [ | clear break ArrowR ]\ndown [ break clear | break ArrowD ] -> [ | clear break ArrowD ]\nleft [ break clear | break ArrowL ] -> [ | clear break ArrowL ]\n\nendloop\n\n[ break ] -> [ break bluedot ]\n[ no break ] -> [ no bluedot ]\n\n(Doing all the work again in case we break off a part that was actually supposed to block us from moving, thus also from breaking anything in the first place)\n[ > Moveable ] -> [ stationary Moveable ] \n[ > Player Head ] -> [ > Player > Head ] \n\nstartloop\n\nup [ Moveable no break | Wall ] -> [ Moveable blockedD | Wall ]\nright [ Moveable no break | Wall ] -> [ Moveable blockedL | Wall ]\ndown [ Moveable no break | Wall ] -> [ Moveable blockedU | Wall ]\nleft [ Moveable no break | Wall ] -> [ Moveable blockedR | Wall ]\n\nup [ Moveable no break | Head Marker ] -> [ Moveable blockedD | Head Marker ] \nright [ Moveable no break | Head Marker ] -> [ Moveable blockedL | Head Marker ]\ndown [ Moveable no break | Head Marker ] -> [ Moveable blockedU | Head Marker ]\nleft [ Moveable no break | Head Marker ] -> [ Moveable blockedR | Head Marker]\n\nup [ Moveable no break | blockedD ] -> [ Moveable blockedD | blockedD ]\nright [ Moveable no break | blockedL ] -> [ Moveable blockedL | blockedL ]\ndown [ Moveable no break | blockedU ] -> [ Moveable blockedU | blockedU ]\nleft [ Moveable no break | blockedR ] -> [ Moveable blockedR | blockedR ]\n\nup [ ArrowD | Tail break | Wall ] -> [ ArrowD | Tail break blockedD | Wall ]\nright [ ArrowL | Tail break | Wall ] -> [ ArrowL | Tail break blockedL | Wall ]\ndown [ ArrowU | Tail break | Wall ] -> [ ArrowU | Tail break blockedU | Wall ]\nleft [ ArrowR | Tail break | Wall ] -> [ ArrowR | Tail break blockedR | Wall ] \n\nup [ ArrowD | Tail break | Head Marker ] -> [ ArrowD | Tail break blockedD | Head Marker ]\nright [ ArrowL | Tail break | Head Marker ] -> [ ArrowL | Tail break blockedL | Head Marker ]\ndown [ ArrowU | Tail break | Head Marker ] -> [ ArrowU | Tail break blockedU | Head Marker ]\nleft [ ArrowR | Tail break | Head Marker ] -> [ ArrowR | Tail break blockedR | Head Marker ] \n\nup [ ArrowD | Tail break | blockedD ] -> [ ArrowD | Tail break blockedD | blockedD ]\nright [ ArrowL | Tail break | blockedL ] -> [ ArrowL | Tail break blockedL | blockedL ]\ndown [ ArrowU | Tail break | blockedU ] -> [ ArrowU | Tail break blockedU | blockedU ]\nleft [ ArrowR | Tail break | blockedR ] -> [ ArrowR | Tail break blockedR | blockedR ] \n\nendloop\n\nstartloop\n\n[ > Moveable | Moveable no Marker no break ] -> [ > Moveable | > Moveable ]\n\nup [ left VertebraU no blockedR | VertebraD no blockedR ] -> [ left VertebraU | left VertebraD ]\nup [ right VertebraU no blockedL | VertebraD no blockedL] -> [ right VertebraU | right VertebraD ]\n\nright [ up VertebraR no blockedD | VertebraL no blockedD] -> [ up VertebraR | up VertebraL ]\nright [ down VertebraR no blockedU | VertebraL no blockedU] -> [ down VertebraR | down VertebraL ]\n\ndown [ left VertebraD no blockedR | VertebraU no blockedR] -> [ left VertebraD | left VertebraU ]\ndown [ right VertebraD no blockedL | VertebraU no blockedL] -> [ right VertebraD | right VertebraU ]\n\nleft [ up VertebraL no BlockedD | VertebraR no blockedD] -> [ up VertebraL | up VertebraR ]\nleft [ down VertebraL no blockedU | VertebraR no blockedU] -> [ down VertebraL | down VertebraR ]\n\nup [ down VertebraU | VertebraD ] -> [ down VertebraU | down VertebraD ]\nright [ left VertebraR | VertebraL ] -> [ left VertebraR | left VertebraL ]\ndown [ up VertebraD | VertebraU ] -> [ up VertebraD | up VertebraU ]\nleft [ right VertebraL | VertebraR ] -> [ right VertebraL | right VertebraR ]\n\nendloop\n\n(Cancel the breaking in case we weren't supposed to break)\n[ > Head ] [ stationary Moveable | break ] -> [ > Head ] [ Moveable | ]\n\n(Find the spot that needs to be separated and do the action)\n[ > Vertebra ] -> [ stationary Vertebra ]\n[ > Attachable ] -> [ stationary Attachable ]\n[ > Box ] -> [ stationary Box ]\n[ Tail break ] -> [ Tail ]\n[ Vertebra break ] -> [ break ]\n\nrandom up [ break | ArrowU ] -> [ break TailU | ArrowU ]\n+right [ break | ArrowR ] -> [ break TailR | ArrowR ]\n+down [ break | ArrowD ] -> [ break TailD | ArrowD ]\n+left [ break | ArrowL ] -> [ break TailL | ArrowL ]\n\nrandom up [ Tail | ArrowU break ] -> [ DetachedTail | break ]\n+right [ Tail | ArrowR break ] -> [ DetachedTail | break ]\n+down [ Tail | ArrowD break ] -> [ DetachedTail | break ]\n+left [ Tail | ArrowL break ] -> [ DetachedTail | break ]\n\nrandom up [ Vertebra | ArrowU break ] -> [ break Vertebra | break ] \n+right [ Vertebra | ArrowR break ] -> [ break Vertebra | break ]\n+down [ Vertebra | ArrowD break ] -> [ break Vertebra | break ]\n+left [ Vertebra | ArrowL break ] -> [ break Vertebra | break ]\n\n[ Vertebra ArrowU break ] -> [ TailD clear ]\n[ Vertebra ArrowR break ] -> [ TailL clear ]\n[ Vertebra ArrowD break ] -> [ TailU clear ]\n[ Vertebra ArrowL break ] -> [ TailR clear ]\n\nup [ break TailU | no ArrowU ] -> [ TailU |]\nright [ break TailR | no ArrowR ] -> [ TailR |]\ndown [ break TailD | no ArrowD ] -> [ TailD |]\nleft [ break TailL | no ArrowL ] -> [ TailL |]\n\n(Clearing markers on the detached rest)\nstartloop\n\nup [ VertebraU clear | VertebraD Marker ] -> [ VertebraU | VertebraD clear ]\nright [ VertebraR clear | VertebraL Marker ] -> [ VertebraR | VertebraL clear ]\ndown [ VertebraD clear | VertebraU Marker ] -> [ VertebraD | VertebraU clear ]\nleft [ VertebraL clear | VertebraR Marker ] -> [ VertebraL | VertebraR clear ]\n\nendloop\n\n[ clear ] -> []\n\n(Marking the new tail)\nup [ TailU | ArrowU ] -> [ break TailU | ArrowU ]\nright [ TailR | ArrowR ] -> [ break TailR | ArrowR ]\ndown [ TailD | ArrowD ] -> [ break TailD | ArrowD ]\nleft [ TailL | ArrowL ] -> [ break TailL | ArrowL ]\n\n[ blockMarker ] -> []\n\n(Determine in which direction which objects represent an obstacle, this time if we are to block movement/break other sections)\nstartloop\n\nup [ Moveable no break no Marker | Wall ] -> [ Moveable blockedD | Wall ]\nright [ Moveable no break no Marker | Wall ] -> [ Moveable blockedL | Wall ]\ndown [ Moveable no break no Marker | Wall ] -> [ Moveable blockedU | Wall ]\nleft [ Moveable no break no Marker | Wall ] -> [ Moveable blockedR | Wall ]\n\nup [ Moveable no break | Head Marker ] -> [ Moveable blockedD | Head Marker ] \nright [ Moveable no break | Head Marker ] -> [ Moveable blockedL | Head Marker ]\ndown [ Moveable no break | Head Marker ] -> [ Moveable blockedU | Head Marker ]\nleft [ Moveable no break | Head Marker ] -> [ Moveable blockedR | Head Marker ]\n\nup [ Moveable no break | blockedD ] -> [ Moveable blockedD | blockedD ]\nright [ Moveable no break | blockedL ] -> [ Moveable blockedL | blockedL ]\ndown [ Moveable no break | blockedU ] -> [ Moveable blockedU | blockedU ]\nleft [ Moveable no break | blockedR ] -> [ Moveable blockedR | blockedR ]\n\nup [ ArrowD | Tail break | Wall ] -> [ ArrowD | Tail break blockedD | Wall ]\nright [ ArrowL | Tail break | Wall ] -> [ ArrowL | Tail break blockedL | Wall ]\ndown [ ArrowU | Tail break | Wall ] -> [ ArrowU | Tail break blockedU | Wall ]\nleft [ ArrowR | Tail break | Wall ] -> [ ArrowR | Tail break blockedR | Wall ] \n\nup [ ArrowD | Tail break | Head Marker ] -> [ ArrowD | Tail break blockedD | Head Marker ]\nright [ ArrowL | Tail break | Head Marker ] -> [ ArrowL | Tail break blockedL | Head Marker ]\ndown [ ArrowU | Tail break | Head Marker ] -> [ ArrowU | Tail break blockedU | Head Marker ]\nleft [ ArrowR | Tail break | Head Marker ] -> [ ArrowR | Tail break blockedR | Head Marker ] \n\nup [ ArrowD | Tail break | blockedD ] -> [ ArrowD | Tail break blockedD | blockedD ]\nright [ ArrowL | Tail break | blockedL ] -> [ ArrowL | Tail break blockedL | blockedL ]\ndown [ ArrowU | Tail break | blockedU ] -> [ ArrowU | Tail break blockedU | blockedU ]\nleft [ ArrowR | Tail break | blockedR ] -> [ ArrowR | Tail break blockedR | blockedR ]\n\nendloop\n\n(Determining which spots are supposed to break and which spots are supposed to be connected)\nstartloop\n\n[ > Moveable | Moveable no Marker no break ] -> [ > Moveable | > Moveable ]\n\n[ up Moveable Marker blockedD ] -> [ stationary Moveable Marker blockedD ]\n[ right Moveable Marker blockedL ] -> [ stationary Moveable Marker blockedL ]\n[ down Moveable Marker blockedU ] -> [ stationary Moveable Marker blockedU ]\n[ left Moveable Marker blockedR ] -> [ stationary Moveable Marker blockedR ]\n\nup [ left VertebraU no blockedR | VertebraD blockedR ] -> [ left VertebraU tailit | VertebraD tailit blockedR ]\nup [ right VertebraU no blockedL | VertebraD blockedL ] -> [ right VertebraU tailit | VertebraD tailit blockedL ]\n\nright [ up VertebraR no blockedD | VertebraL blockedD ] -> [ up VertebraR tailit | VertebraL tailit blockedD ]\nright [ down VertebraR no blockedU | VertebraL blockedU ] -> [ down VertebraR tailit | VertebraL tailit blockedU ]\n\ndown [ left VertebraD no blockedR | VertebraU blockedR ] -> [ left VertebraD tailit | VertebraU tailit blockedR ]\ndown [ right VertebraD no blockedL | VertebraU blockedL ] -> [ right VertebraD tailit | VertebraU tailit blockedL ]\n\nleft [ up VertebraL no blockedD | VertebraR blockedD ] -> [ up VertebraL tailit | VertebraR tailit blockedD ]\nleft [ down VertebraL no blockedU | VertebraR blockedU ] -> [ down VertebraL tailit | VertebraR tailit blockedU ]\n\nup [ left VertebraU no blockedR | VertebraD ] -> [ left VertebraU | left VertebraD ]\nup [ right VertebraU no blockedL | VertebraD ] -> [ right VertebraU | right VertebraD ]\n\nright [ up VertebraR no blockedD | VertebraL ] -> [ up VertebraR | up VertebraL ]\nright [ down VertebraR no blockedU | VertebraL ] -> [ down VertebraR | down VertebraL ]\n\ndown [ left VertebraD no blockedR | VertebraU ] -> [ left VertebraD | left VertebraU ]\ndown [ right VertebraD no blockedL | VertebraU ] -> [ right VertebraD | right VertebraU ]\n\nleft [ up VertebraL no BlockedD | VertebraR ] -> [ up VertebraL | up VertebraR ]\nleft [ down VertebraL no blockedU | VertebraR ] -> [ down VertebraL | down VertebraR ]\n\nup [ down VertebraU | VertebraD ] -> [ down VertebraU | down VertebraD ]\nright [ left VertebraR | VertebraL ] -> [ left VertebraR | left VertebraL ]\ndown [ up VertebraD | VertebraU ] -> [ up VertebraD | up VertebraU ]\nleft [ right VertebraL | VertebraR ] -> [ right VertebraL | right VertebraR ]\n\nup [ > Vertebra tailit | Vertebra tailit no break ] -> [ > Vertebra tailit AttachU | > Vertebra tailit AttachD ]\nright [ > Vertebra tailit | Vertebra tailit no break ] -> [ > Vertebra tailit AttachR | > Vertebra tailit AttachL ]\ndown [ > Vertebra tailit | Vertebra tailit no break ] -> [ > Vertebra tailit AttachD | > Vertebra tailit AttachU ]\nleft [ > Vertebra tailit | Vertebra tailit no break ] -> [ > Vertebra tailit AttachL | > Vertebra tailit AttachR ]\n\nup [ > Vertebra tailit | Attachable no break ] -> [ > Vertebra tailit AttachU | > Attachable AttachD ]\nright [ > Vertebra tailit | Attachable no break ] -> [ > Vertebra tailit AttachR | > Attachable AttachL ]\ndown [ > Vertebra tailit | Attachable no break ] -> [ > Vertebra tailit AttachD | > Attachable AttachU ]\nleft [ > Vertebra tailit | Attachable no break ] -> [ > Vertebra tailit AttachL | > Attachable AttachR ]\n\nup [ > Attachable | Vertebra tailit ] -> [ > Attachable AttachU | > Vertebra tailit AttachD ]\nright [ > Attachable | Vertebra tailit ] -> [ > Attachable AttachR | > Vertebra tailit AttachL ]\ndown [ > Attachable | Vertebra tailit ] -> [ > Attachable AttachD | > Vertebra tailit AttachU ]\nleft [ > Attachable | Vertebra tailit ] -> [ > Attachable AttachL | > Vertebra tailit AttachR ]\n\nendloop\n\n(Cancel movement if pushed against the edge of the map)\nup [ > Moveable edgeU ] [ > Player ] -> cancel\nright [ > Moveable edgeR ] [ > Player ] -> cancel\ndown [ > Moveable edgeD ] [ > Player ] -> cancel\nleft [ > Moveable edgeL ] [ > Player ] -> cancel\n\nup [ > Head edgeU ] [ > Player ] -> cancel\nright [ > Head edgeR ] [ > Player ] -> cancel\ndown [ > Head edgeD ] [ > Player ] -> cancel\nleft [ > Head edgeL ] [ > Player ] -> cancel\n\nup [ TailU AttachU ] -> [ TailU ]\nright [ TailR AttachR ] -> [ TailR ]\ndown [ TailD AttachD ] -> [ TailD ]\nleft [ TailL AttachL ] -> [ TailL ]\n\n()()()()\n\n[ tailit | perpendicular Vertebra tailit | tailit ] -> [ tailit | perpendicular DetachedTail | tailit ] sfx3\n[ perpendicular tailit | stationary Vertebra tailit | perpendicular tailit ] -> [ perpendicular tailit | DetachedTail | perpendicular tailit ] sfx3\n\nup [ moving Vertebra tailit | VertebraD no tailit ] -> [ moving TailU | VertebraD ] sfx3\nright [ moving Vertebra tailit | VertebraL no tailit ] -> [ moving TailR | VertebraL ] sfx3\ndown [ moving Vertebra tailit | VertebraU no tailit ] -> [ moving TailD | VertebraU ] sfx3\nleft [ moving Vertebra tailit | VertebraR no tailit ] -> [ moving TailL | VertebraR ] sfx3\n\nup [ stationary VertebraU tailit | stationary VertebraD tailit ] -> [ TailU | TailD ] sfx3\nright [ stationary VertebraR tailit | stationary VertebraL tailit ] -> [ TailR | TailL ] sfx3\ndown [ stationary VertebraD tailit | stationary VertebraU tailit ] -> [ TailD | TailU ] sfx3\nleft [ stationary VertebraL tailit | stationary VertebraR tailit ] -> [ TailL | TailR ] sfx3\n\nup [ > VertebraU tailit | > VertebraD tailit ] -> [ > TailU | > TailD ] sfx3\nright [ > VertebraR tailit | > VertebraL tailit ] -> [ > TailR | > TailL ] sfx3\ndown [ > VertebraD tailit | > VertebraU tailit ] -> [ > TailD | > TailU ] sfx3\nleft [ > VertebraL tailit | > VertebraR tailit ] -> [ > TailL | > TailR ] sfx3\n\nup [ moving Vertebra tailit | HeadU no tailit ] -> [ moving TailU | HeadU ] sfx3\nright [ moving Vertebra tailit | HeadR no tailit ] -> [ moving TailR | HeadR ] sfx3\ndown [ moving Vertebra tailit | HeadD no tailit ] -> [ moving TailD | HeadD ] sfx3\nleft [ moving Vertebra tailit | HeadL no tailit ] -> [ moving TailL | HeadL ] sfx3\n\nup [ stationary Vertebra tailit | VertebraD no tailit ] -> [ TailU | VertebraD ] sfx3\nright [ stationary Vertebra tailit | VertebraL no tailit ] -> [ TailR | VertebraL ] sfx3\ndown [ stationary Vertebra tailit | VertebraU no tailit ] -> [ TailD | VertebraU ] sfx3\nleft [ stationary Vertebra tailit | VertebraR no tailit ] -> [ TailL | VertebraR ] sfx3\n\n[ stationary Tail tailit ] -> [ DetachedTail ] sfx3\n[ > Tail tailit ] -> [ > DetachedTail ] sfx3\n\nup [ > Attachable | Attachable no break ] -> [ > Attachable AttachU | AttachD > Attachable ]\nright [ > Attachable | Attachable no break ] -> [ > Attachable AttachR | AttachL > Attachable ]\ndown [ > Attachable | Attachable no break ] -> [ > Attachable AttachD | AttachU > Attachable ]\nleft [ > Attachable | Attachable no break ] -> [ > Attachable AttachL | AttachR > Attachable ]\n\nup [ TailU AttachU ] -> [ TailU ]\nright [ TailR AttachR ] -> [ TailR ]\ndown [ TailD AttachD ] -> [ TailD ]\nleft [ TailL AttachL ] -> [ TailL ]\n\n(A clever trick to stop loop formation when two ends of one piece come to gether.)\nstartloop \n\n[ > Head | no pink Moveable ] -> [ > Head | pink Moveable ]\nup [ pink VertebraU | no pink VertebraD ] -> [ pink VertebraU | pink VertebraD ]\nright [ pink VertebraR | no pink VertebraL ] -> [ pink VertebraR | pink VertebraL ]\ndown [ pink VertebraD | no pink VertebraU ] -> [ pink VertebraD | pink VertebraU ]\nleft [ pink VertebraL | no pink VertebraR ] -> [ pink VertebraL | pink VertebraR ]\n\ndown [ > Head ] [ pink | no pink no AttachU Moveable ] -> [ > Head ] [ pink | pink Moveable ]\nleft [ > Head ] [ pink | no pink no AttachR Moveable ] -> [ > Head ] [ pink | pink Moveable ]\nup [ > Head ] [ pink | no pink no AttachD Moveable ] -> [ > Head ] [ pink | pink Moveable ]\nright [ > Head ] [ pink | no pink no AttachL Moveable ] -> [ > Head ] [ pink | pink Moveable ]\n\ndown [ > Head ] [ AttachD | pink AttachU ] -> [ > Head ] [ green AttachD | pink AttachU ]\nleft [ > Head ] [ AttachL | pink AttachR ] -> [ > Head ] [ green AttachL | pink AttachR ]\nup [ > Head ] [ AttachU | pink AttachD ] -> [ > Head ] [ green AttachU | pink AttachD ]\nright [ > Head ] [ AttachR | pink AttachL ] -> [ > Head ] [ green AttachR | pink AttachL ] \n\nup [ green VertebraU | no green no pink VertebraD ] -> [ green VertebraU | green VertebraD ]\nright [ green VertebraR | no green no pink VertebraL ] -> [ green VertebraR | green VertebraL ]\ndown [ green VertebraD | no green no pink VertebraU ] -> [ green VertebraD | green VertebraU ]\nleft [ green VertebraL | no green no pink VertebraR ] -> [ green VertebraL | green VertebraR ]\n\ndown [ > Head ] [ pink AttachD | green AttachU ] -> [ > Head ] [ pink AttachD | pink green AttachU ]\nleft [ > Head ] [ pink AttachL | green AttachR ] -> [ > Head ] [ pink AttachL | pink green AttachR ]\nup [ > Head ] [ pink AttachU | green AttachD ] -> [ > Head ] [ pink AttachU | pink green AttachD ]\nright [ > Head ] [ pink AttachR | green AttachL ] -> [ > Head ] [ pink AttachR | pink green AttachL ]\n\nendloop\n\ndown [ pink green AttachD | pink no green AttachU ] -> [ pink green | pink ]\nleft [ pink green AttachL | pink no green AttachR ] -> [ pink green | pink ]\nup [ pink green AttachU | pink no green AttachD ] -> [ pink green | pink ]\nright [ pink green AttachR | pink no green AttachL ] -> [ pink green | pink ] \n\n[ pink ] -> []\n[ green ] -> []\n\n(Prevent many attachables in a row to all attach together, if one in a row is already attached the attachment between it and the next one should be canceled)\nstartloop\n\nup [ no AttachU | > Tail AttachU | Tail AttachU | ] -> [ | > Tail AttachU | Tail AttachD | no AttachD ]\nright [ no AttachR | > Tail AttachR | Tail AttachR | ] -> [ | > Tail AttachR | Tail AttachL | no AttachL ]\ndown [ no AttachD | > Tail AttachD | Tail AttachD | ] -> [ | > Tail AttachD | Tail AttachU | no AttachU ]\nleft [ no AttachL | > Tail AttachL | Tail AttachL | ] -> [ | > Tail AttachL | Tail AttachR | no AttachR ]\n\nup [ | > DetachedTail AttachU | Tail AttachU | ] -> [ | > DetachedTail AttachU | Tail AttachD | no AttachD ]\nright [ | > DetachedTail AttachR | Tail AttachR | ] -> [ | > DetachedTail AttachR | Tail AttachL | no AttachL ]\ndown [ | > DetachedTail AttachD | Tail AttachD | ] -> [ | > DetachedTail AttachD | Tail AttachU | no AttachU ]\nleft [ | > DetachedTail AttachL | Tail AttachL | ] -> [ | > DetachedTail AttachL | Tail AttachR | no AttachR ]\n\nup [ > Head no Marker | no TailD Tail AttachU | ] -> [ > Head | Tail AttachD | no AttachD ]\nright [ > Head no Marker | no TailL Tail AttachR | ] -> [ > Head | Tail AttachL | no AttachL ]\ndown [ > Head no Marker | no TailU Tail AttachD | ] -> [ > Head | Tail AttachU | no AttachU ]\nleft [ > Head no Marker | no TailR Tail AttachL | ] -> [ > Head | Tail AttachR | no AttachR ]\n\nendloop\n\n(Boxes can't reattach once they are detached)\nup [ Box AttachU | AttachD ] -> [ Box | ]\nright [ Box AttachR | AttachL ] -> [ Box | ]\ndown [ Box AttachD | AttachU ] -> [ Box | ]\nleft [ Box AttachL | AttachR ] -> [ Box | ]\nlate [ Box DetachedTail ] -> [ Box ]\n\n(Attach all separated vertebrae at the start to make up the skeleton)\n[ start ] [ DetachedTail ] -> [ start ] [ start DetachedTail ]\n\nup [ DetachedTail start | DetachedTail start ] -> [ DetachedTail AttachU start | start AttachD DetachedTail ]\nright [ DetachedTail start | DetachedTail start ] -> [ DetachedTail AttachR start | start AttachL DetachedTail ]\ndown [ DetachedTail start | DetachedTail start ] -> [ DetachedTail AttachD start | start AttachU DetachedTail ]\nleft [ DetachedTail start | DetachedTail start ] -> [ DetachedTail AttachL start | start AttachR DetachedTail ]\n\n[ start ] -> []\n\n(Attach head to vertebra / spine)\nup [ > Head no Marker | Attachable no Box ] -> [ > HeadD | AttachD Attachable ] sfx1\nright [ > Head no Marker | Attachable no Box ] -> [ > HeadL | AttachL Attachable ] sfx1\ndown [ > Head no Marker | Attachable no Box ] -> [ > HeadU | AttachU Attachable ] sfx1\nleft [ > Head no Marker | Attachable no Box ] -> [ > HeadR | AttachR Attachable ] sfx1\n\n()\n\n[ > TailU ] -> [ > TailU AttachU ]\n[ > TailR ] -> [ > TailR AttachR ]\n[ > TailD ] -> [ > TailD AttachD ]\n[ > TailL ] -> [ > TailL AttachL ]\n\n(The process of attaching tails and vertebrae)\n\n[ > Attachable AttachU AttachR ] -> [ > BodyUR AttachU AttachR ] sfx1\n[ > Attachable AttachU AttachL ] -> [ > BodyUL AttachU AttachL ] sfx1\n[ > Attachable AttachD AttachR ] -> [ > BodyDR AttachD AttachR ] sfx1\n[ > Attachable AttachD AttachL ] -> [ > BodyDL AttachD AttachL ] sfx1\n[ > Attachable AttachL AttachR ] -> [ > BodyRL AttachL AttachR ] sfx1\n[ > Attachable AttachU AttachD ] -> [ > BodyUD AttachU AttachD ] sfx1\n\n[ > Attachable AttachU ] -> [ > TailU AttachU ] sfx1\n[ > Attachable AttachR ] -> [ > TailR AttachR ] sfx1\n[ > Attachable AttachD ] -> [ > TailD AttachD ] sfx1\n[ > Attachable AttachL ] -> [ > TailL AttachL ] sfx1\n\n[ Attachable AttachU AttachR ] -> [ BodyUR AttachU AttachR ] sfx1\n[ Attachable AttachU AttachL ] -> [ BodyUL AttachU AttachL ] sfx1\n[ Attachable AttachD AttachR ] -> [ BodyDR AttachD AttachR ] sfx1\n[ Attachable AttachD AttachL ] -> [ BodyDL AttachD AttachL ] sfx1\n[ Attachable AttachL AttachR ] -> [ BodyRL AttachL AttachR ] sfx1\n[ Attachable AttachU AttachD ] -> [ BodyUD AttachU AttachD ] sfx1\n\n[ Attachable AttachU ] -> [ TailU AttachU ] sfx1\n[ Attachable AttachR ] -> [ TailR AttachR ] sfx1\n[ Attachable AttachD ] -> [ TailD AttachD ] sfx1\n[ Attachable AttachL ] -> [ TailL AttachL ] sfx1\n\nup [ Attachable AttachU | no Attachable no VertebraD ] -> [ Attachable | ] sfx1\nright [ Attachable AttachR | no Attachable no VertebraL ] -> [ Attachable | ] sfx1\ndown [ Attachable AttachD | no Attachable no VertebraU ] -> [ Attachable | ] sfx1\nleft [ Attachable AttachL | no Attachable no VertebraR ] -> [ Attachable | ] sfx1\n\n()()()()\n\n[ AttachMarker ] -> []\n\n[ up Moveable blockedD ] -> [ stationary Moveable blockedD ]\n[ right Moveable blockedL ] -> [ stationary Moveable blockedL ]\n[ down Moveable blockedU ] -> [ stationary Moveable blockedU ]\n[ left Moveable blockedR ] -> [ stationary Moveable blockedR ]\n\nup [ > Head | no VertebraD ] -> [ > HeadU | ]\nright [ > Head | no VertebraL ] -> [ > HeadR | ]\ndown [ > Head | no VertebraU ] -> [ > HeadD | ]\nleft [ > Head | no VertebraR ] -> [ > HeadL | ]\n\n[ Marker ] -> [ no Marker ]\n\n(Marking the body, each part points in the reverse direction of the next part relative to itself (that means the direction the body is \"moving\" at that point))\nstartloop\n\nup [ Head no Marker | VertebraD ] -> [ Head ArrowD | VertebraD continue ]\nright [ Head no Marker | VertebraL ] -> [ Head ArrowL | VertebraL continue ]\ndown [ Head no Marker | VertebraU ] -> [ Head ArrowU | VertebraU continue ]\nleft [ Head no Marker | VertebraR ] -> [ Head ArrowR | VertebraR continue ]\n\nup [ Vertebra continue | VertebraD no Marker ] -> [ Vertebra ArrowD | VertebraD continue ]\nright [ Vertebra continue | VertebraL no Marker ] -> [ Vertebra ArrowL | VertebraL continue ]\ndown [ Vertebra continue | VertebraU no Marker ] -> [ Vertebra ArrowU | VertebraU continue ]\nleft [ Vertebra continue | VertebraR no Marker ] -> [ Vertebra ArrowR | VertebraR continue ]\n\n[ Tail continue ] -> [ break Tail ]\n\nendloop\n\n[ continue ] -> []\n\n(If the head is pulling the body and not pushing it)\nup [ > Head no ArrowD ] -> [ > Head pull] sfx2\nright [ > Head no ArrowL ] -> [ > Head pull] sfx2\ndown [ > Head no ArrowU ] -> [ > Head pull] sfx2\nleft [ > Head no ArrowR ] -> [ > Head pull] sfx2\n\n(Pull the spine)\nstartloop\n\nup [ stationary Vertebra | moving Moveable ArrowU pull ] -> [ > Vertebra pull | moving Moveable ArrowU pull ]\nright [ stationary Vertebra | moving Moveable ArrowR pull ] -> [ > Vertebra pull | moving Moveable ArrowR pull ]\ndown [ stationary Vertebra | moving Moveable ArrowD pull ] -> [ > Vertebra pull | moving Moveable ArrowD pull ]\nleft [ stationary Vertebra | moving Moveable ArrowL pull ] -> [ > Vertebra pull | moving Moveable ArrowL pull ]\n\nendloop\n\n(New markers for the new positions)\nstartloop\n\n[ up Moveable Marker pull ] -> [ up Moveable ArrowU pull ]\n[ right Moveable Marker pull ] -> [ right Moveable ArrowR pull ]\n[ down Moveable Marker pull ] -> [ down Moveable ArrowD pull ]\n[ left Moveable Marker pull ] -> [ left Moveable ArrowL pull ]\n\nendloop\n\n[ Head pull ] -> [ Head ]\n\n[ > Vertebra Box ] -> [ > Vertebra > Box ]\n[ > Moveable Marker ] -> [ > Moveable > Marker ]\n\n[ > Moveable pull ] -> [ > Moveable > pull ]\n[ > Tail break ] -> [ > Tail > break ]\n\n[ Player stationary Head ] -> [ stationary Player stationary Head ]\n\n[ > Box ground ] -> [ > Box ground ] sfx8\n[ > Box water no Step ] -> [ > Box water ] sfx7\n\n(Creating the new skeleton)\nstartloop\n\nlate up [ Vertebra ArrowU pull | ArrowU no pull ] -> [ BodyUD ArrowU | ArrowU ]\nlate up [ Vertebra ArrowR pull | ArrowU no pull ] -> [ BodyUL ArrowR | ArrowU ]\nlate up [ Vertebra ArrowL pull | ArrowU no pull ] -> [ BodyUR ArrowL | ArrowU ]\n\nlate right [ Vertebra ArrowR pull | ArrowR no pull ] -> [ BodyRL ArrowR | ArrowR ]\nlate right [ Vertebra ArrowU pull | ArrowR no pull ] -> [ BodyDR ArrowU | ArrowR ]\nlate right [ Vertebra ArrowD pull | ArrowR no pull ] -> [ BodyUR ArrowD | ArrowR ]\n\nlate down [ Vertebra ArrowD pull | ArrowD no pull ] -> [ BodyUD ArrowD | ArrowD ]\nlate down [ Vertebra ArrowR pull | ArrowD no pull ] -> [ BodyDL ArrowR | ArrowD ]\nlate down [ Vertebra ArrowL pull | ArrowD no pull ] -> [ BodyDR ArrowL | ArrowD ]\n\nlate left [ Vertebra ArrowL pull | ArrowL no pull ] -> [ BodyRL ArrowL | ArrowL ]\nlate left [ Vertebra ArrowU pull | ArrowL no pull ] -> [ BodyDL ArrowU | ArrowL ]\nlate left [ Vertebra ArrowD pull | ArrowL no pull ] -> [ BodyUL ArrowD | ArrowL ]\n\nlate up [ Tail pull | ArrowU no pull ] -> [ TailU | ArrowU ]\nlate right [ Tail pull | ArrowR no pull ] -> [ TailR | ArrowR ]\nlate down [ Tail pull | ArrowD no pull ] -> [ TailD | ArrowD ]\nlate left [ Tail pull | ArrowL no pull ] -> [ TailL | ArrowL ]\n\nendloop\n\n(Marking attached boxes' bonds to their neighboring attached boxes)\nlate [ BoxBondMarker ] -> []\nlate [ Box VertebraU ] -> [ Box BoxBondU VertebraU ]\nlate [ Box VertebraR ] -> [ Box BoxBondR VertebraR ]\nlate [ Box VertebraD ] -> [ Box BoxBondD VertebraD ]\nlate [ Box VertebraL ] -> [ Box BoxBondL VertebraL ] \n\n(Door/Button action)\nlate [ Head Button ] -> [ Head open Button ]\nlate [ Box Button ] -> [ Box open Button ]\n\nstartloop\n\nlate [ Button open | Trigger ] -> [ Button | Trigger open ]\nlate [ Trigger open | Trigger ] -> [ Trigger open | Trigger open ]\nlate [ Trigger open | DoorVertical ] -> [ Trigger | OpenDoorVertical ]\nlate [ Trigger open | DoorHorizontal ] -> [ Trigger | OpenDoorHorizontal ]\n\nendloop\n\nlate [ Button no Head no Box ] -> [ Button close ]\n\nstartloop\n\nlate [ Button close | Trigger ] -> [ Button close | Trigger close ]\nlate [ Trigger close | Trigger ] -> [ Trigger close | Trigger close ]\nlate [ Trigger close | OpenDoor no close ] -> [ Trigger close | OpenDoor close ]\n\nendloop\n\nlate [ close OpenDoor Box ] -> [ OpenDoor Box ]\n\nlate up [ VertebraU | close OpenDoor ] -> [ tailit VertebraU | close OpenDoor ]\nlate right [ VertebraR | close OpenDoor ] -> [ tailit VertebraR | close OpenDoor ]\nlate down [ VertebraD | close OpenDoor ] -> [ tailit VertebraD | close OpenDoor ]\nlate left [ VertebraL | close OpenDoor ] -> [ tailit VertebraL | close OpenDoor ]\n\nlate up [ HeadD | close OpenDoor ] -> [ no Marker HeadD | close OpenDoor ]\nlate right [ HeadL | close OpenDoor ] -> [ no Marker HeadL | close OpenDoor ]\nlate down [ HeadU | close OpenDoor ] -> [ no Marker HeadU | close OpenDoor ]\nlate left [ HeadR | close OpenDoor ] -> [ no Marker HeadR | close OpenDoor ]\n\nlate [ close OpenDoor Player ] -> [ close OpenDoor no Player Blood ] sfx5 message Crushed!\nlate [ close OpenDoor Moveable ] -> [ close OpenDoor no break no Marker ] sfx3\n\nlate [ close OpenDoorVertical ] -> [ DoorVertical ]\nlate [ close OpenDoorHorizontal ] -> [ DoorHorizontal ] \n\nlate [ open ] -> []\nlate [ close ] -> []\n\n(Breaking the spots that broke by closing doors)\nlate up [ VertebraU | Vertebra tailit ] -> [ VertebraU | TailD ]\nlate right [ VertebraR | Vertebra tailit ] -> [ VertebraR | TailL ]\nlate down [ VertebraD | Vertebra tailit ] -> [ VertebraD | TailU ]\nlate left [ VertebraL | Vertebra tailit ] -> [ VertebraL | TailR ]\n\nlate up [ HeadD | Vertebra tailit ] -> [ HeadD | TailD ]\nlate right [ HeadL | Vertebra tailit ] -> [ HeadL | TailL ]\nlate down [ HeadU | Vertebra tailit ] -> [ HeadU | TailU ]\nlate left [ HeadR | Vertebra tailit ] -> [ HeadR | TailR ]\n\n[tailit ] -> []\n[ break no Tail ] -> [ no break ]\n\nlate [ Tail tailit ] -> [ DetachedTail ]\n\n(Lava action (not used in the game))\nlate [ Head ] -> [ onGround Head ]\nlate [ Vertebra Ground ] -> [ Vertebra onGround Ground ]\nlate up [ onGround | VertebraD ] -> [ onGround | VertebraD onGround ]\nlate right [ onGround | VertebraL ] -> [ onGround | VertebraL onGround ]\nlate down [ onGround | VertebraU ] -> [ onGround | VertebraU onGround ]\nlate left [ onGround | VertebraR ] -> [ onGround | VertebraR onGround ]\n\nlate [ Vertebra Lava no onGround ] -> [ Lava ] sfx4\nlate [ DetachedTail Lava ] -> [ Lava ] sfx4\n\nlate [ onGround ] -> []\n\nlate up [ DartWallU ] -> [ DartWallU rayU ]\nlate right [ DartWallR ] -> [ DartWallR rayR ]\nlate down [ DartWallD ] -> [ DartWallD rayD ]\nlate left [ DartWallL ] -> [ DartWallL rayL ]\n\n(Dart shooting action (not used in the game))\nstartloop\n\nlate up [ rayU | no RayBlocker no Player ] -> [ | rayU ]\nlate right [ rayR | no RayBlocker no Player ] -> [ | rayR ]\nlate down [ rayD | no RayBlocker no Player ] -> [ | rayD ]\nlate left [ rayL | no RayBlocker no Player ] -> [ | rayL ] \n\nlate up [ rayU | rayBlocker no DartWallD ] -> [ | rayBlocker ]\nlate right [ rayR | rayBlocker no DartWallL ] -> [ | rayBlocker ]\nlate down [ rayD | rayBlocker no DartWallU ] -> [ | rayBlocker ]\nlate left [ rayL | rayBlocker no DartWallR ] -> [ | rayBlocker ] \n\nlate up [ rayU | Player ] -> [ | rayreturnD Player ]\nlate right [ rayR | Player ] -> [ | rayreturnL Player ]\nlate down [ rayD | Player ] -> [ | rayreturnU Player ]\nlate left [ rayL | Player ] -> [ | rayreturnR Player ] \n\nlate up [ rayreturnU | no rayBlocker no DartWallD ] -> [ | rayreturnU ]\nlate right [ rayreturnR | no rayBlocker no DartWallL ] -> [ | rayreturnR ]\nlate down [ rayreturnD | no rayBlocker no DartWallU ] -> [ | rayreturnD ]\nlate left [ rayreturnL | no rayBlocker no DartWallR ] -> [ | rayreturnL ] \n\nendloop\n\nlate up [ rayreturnU | DartWall ] -> [ | DartD DartWall ] again\nlate right [ rayreturnR | DartWall ] -> [ DartL | DartWall ] again\nlate down [ rayreturnD | DartWall ] -> [ DartU | DartWall ] again\nlate left [ rayreturnL | DartWall ] -> [ DartR | DartWall ] again\n\n==============\nWINCONDITIONS\n==============\n\nall Player on Goal\nno Blood\n\n======= \nLEVELS\n=======\n\n(4 - 3)\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwww..wwwwwww\nwwwwwwwww...gwwwwww\nwwwwww.....wggwwww#\nwwwwgg..#wwwgwww###\nwwwwgwwwwm#wggg:tto\ng???>gww#wwwwww_w/#\nwwwww...wwwwx___w_#\nwwwww..b.wwxwwwww_w\nwwwwww...ww_______w\nwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\nw۴wwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwww\n\n",[3,2,2,1,0,0,1,1,3,0,0,3,3,3,0,3,3,3,0,0,1,2,2,1],"background edgel edgeu water:0,background edgel water:1,1,1,1,1,1,1,1,background edgel step water:2,1,1,1,1,1,1,background edged edgel water:3,background edgeu water:4,background water:5,\n5,5,5,5,5,5,5,background step water:6,5,5,5,5,5,background n4 water:7,background edged water:8,4,5,5,5,\n5,5,5,5,5,6,5,5,5,5,5,5,8,4,5,5,5,5,5,\n5,5,5,6,5,5,5,5,5,5,8,4,5,5,5,5,5,5,6,\n6,6,background groundedgerw water:9,9,5,5,5,5,8,4,5,5,5,5,5,9,background groundedgerw step water:10,5,background groundedgedw step water:11,\nbackground ground groundedgelg groundedgelw groundedgeug groundedgeuw:12,background ground groundedgedg groundedgedw groundedgelg groundedgelw watercornerbl:13,background groundcornertrg groundcornertrw groundedgerw groundedgeuw water:14,5,5,5,8,4,5,5,5,5,background groundedgedw water:15,background ground groundedgelg groundedgelw groundedgeug groundedgeuw watercornertl:16,background ground groundedgedg groundedgedw groundedgelg groundedgelw:17,background groundedgeuw water:18,15,background ground groundedgeug groundedgeuw:19,background ground:20,\n13,18,5,5,8,4,5,5,5,5,15,19,background ground groundedgedg groundedgedw:21,18,15,background ground groundedgerg groundedgerw groundedgeug groundedgeuw watercornertr:22,background box ground:23,21,18,\n5,5,8,4,5,5,5,5,background groundcornerbrg groundcornerbrw groundedgedw groundedgerw water:24,19,background dirtwall ground groundedgedg groundedgedw groundedgerg groundedgerw watercornerbr:25,18,background dirtwall water watercornertl watercornertr:26,background groundcornerblg groundcornerblw groundedgedw groundedgelw water:27,22,background ground groundedgedg groundedgedw groundedgerg groundedgerw watercornerbr:28,18,5,5,\n8,4,5,5,5,24,arrowl background ground groundedgelg groundedgelw groundedgeug groundedgeuw headl playerl watercornertl:29,21,background groundedgelw groundedgeuw water:30,background box water:31,5,5,background groundedgelw water:32,32,5,5,5,8,4,\n5,5,15,16,arrowu background bodydl ground:33,arrowu background bodyud ground groundedgedg groundedgedw groundedgerg groundedgerw watercornerbr:34,background break groundedgeuw tailu water:35,26,5,5,9,5,5,5,5,8,4,5,5,\n15,22,background ground groundedgedg groundedgedw groundedgerg groundedgerw:36,background groundcornertlg groundcornertlw groundedgelw groundedgeuw water:37,5,5,5,background groundedgedw groundedgerw water:38,background button ground groundedgedg groundedgedw groundedgelg groundedgelw groundedgerg groundedgerw groundedgeug groundedgeuw watercornerbl watercornerbr watercornertl watercornertr:39,background groundedgeuw trigger water:40,5,5,5,8,4,5,5,5,32,\nbackground groundedgelw step water:41,6,6,6,15,39,30,background trigger water:42,5,5,5,8,4,5,5,5,5,5,6,\n5,6,5,background groundedgelw trigger water:43,5,42,5,5,5,8,4,5,5,5,5,5,5,5,6,\n5,42,5,42,5,5,5,8,4,5,5,5,5,5,5,5,background groundedgerw step trigger water:44,42,42,\n5,42,5,5,5,8,4,5,5,5,5,5,5,26,background doorvertical ground groundedgedg groundedgedw groundedgelg groundedgelw:45,background groundedgerw groundedgeuw water:46,5,5,42,\n5,5,5,8,4,5,5,5,5,5,5,26,background doorvertical ground:47,background dirtwall ground groundedgedg groundedgedw groundedgelg groundedgelw trigger watercornerbl:48,background groundedgerw groundedgeuw trigger water:49,42,42,5,5,\n5,8,background edger edgeu water:50,background edger water:51,51,51,51,51,background dirtwall edger water watercornertl watercornertr:52,background dirtwall edger ground:53,background edger goal ground:54,53,background dirtwall edger ground groundedgedg groundedgedw groundedgelg groundedgelw watercornerbl:55,background edger groundedgeuw water:56,51,51,51,51,background edged edger water:57,\n",0,"1627779869171.2134"] ], [ `increpare game: cooperacing`, - ["title Cooperacing\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start \n\ncolor_palette amstrad \n\nyoutube ZdvPF9KQfXk\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\ngrey lightgrey\n01000\n00000\n00001\n00100\n00000\n\n\nWall\ngreen darkgreen\n11010\n01111\n10101\n11100\n01011\n\nWallV |\ndarkblue darkgreen green \n20202\n20202\n20202\n20202\n20202\n\nWallH -\ndarkblue darkgreen green\n22222\n00000\n22222\n00000\n22222\n\nRedCar\nred \n\nBlueCar \nblue\n\nActiveSeat\ndarkgrey yellow\n.....\n.101.\n.000.\n.101.\n.....\n\nInactiveSeat\ndarkgrey\n.....\n.000.\n.000.\n.000.\n.....\n\nNoWinRed\nDarkRed\n.....\n.000.\n.000.\n.000.\n.....\n\nWinRed\nBrown Red\n1111.\n1111.\n1111.\n0....\n0....\n\n\nNoWinBlue\nDarkBlue\n.....\n.000.\n.000.\n.000.\n.....\n\nWinBlue\nBrown Blue\n1111.\n1111.\n1111.\n0....\n0....\n\nCrate 0\nblack\n.000.\n00000\n00.00\n00000\n.000.\n\nFlag\nBlack White\n10101\n01010\n10101\n01010\n10101\n\n\n(decorative stuff BEGIN)\n\n\n\nRedCarFrontUp\ngrey red black\n..1..\n.111.\n21112\n21112\n.111.\n\nRedCarFrontDown\ngrey red black\n.111.\n21112\n21112\n.111.\n..1..\n\nRedCarFrontLeft\ngrey red black\n..22.\n.1111\n11111\n.1111\n..22.\n\nRedCarFrontRight\ngrey red black\n.22..\n1111.\n11111\n1111.\n.22..\n\n\nRedCarBackUp\ngrey red black\n.111.\n11111\n21112\n21112\n11111\n\nRedCarBackDown\ngrey red black\n11111\n21112\n21112\n11111\n.111.\n\nRedCarBackLeft\ngrey red black\n.1221\n11111\n11111\n11111\n.1221\n\nRedCarBackRight\ngrey red black\n.1221\n11111\n11111\n11111\n.1221\n\n\n\n\nBlueCarFrontUp\ngrey blue black\n..1..\n.111.\n21112\n21112\n.111.\n\nBlueCarFrontDown\ngrey blue black\n.111.\n21112\n21112\n.111.\n..1..\n\nBlueCarFrontLeft\ngrey blue black\n..22.\n.1111\n11111\n.1111\n..22.\n\nBlueCarFrontRight\ngrey blue black\n.22..\n1111.\n11111\n1111.\n.22..\n\n\nBlueCarBackUp\ngrey blue black\n.111.\n11111\n21112\n21112\n11111\n\nBlueCarBackDown\ngrey blue black\n11111\n21112\n21112\n11111\n.111.\n\nBlueCarBackLeft\ngrey blue black\n.1221\n11111\n11111\n11111\n.1221\n\nBlueCarBackRight\ngrey blue black\n.1221\n11111\n11111\n11111\n.1221\n\nHStreaks\ndarkgrey\n.....\n.000.\n.....\n.000.\n.....\n\nVStreaks\ndarkgrey\n.....\n.0.0.\n.0.0.\n.0.0.\n.....\n\n\n\n=======\nLEGEND\n=======\n\nRedCarDecorationFront = RedCarFrontUp or RedCarFrontDown or RedCarFrontLeft or RedCarFrontRight\nRedCarDecorationBack = RedCarBackUp or RedCarBackDown or RedCarBackLeft or RedCarBackRight\nRedCarDecoration = RedCarDecorationFront or RedCarDecorationBack\n\n\nBlueCarDecorationFront = BlueCarFrontUp or BlueCarFrontDown or BlueCarFrontLeft or BlueCarFrontRight\nBlueCarDecorationBack = BlueCarBackUp or BlueCarBackDown or BlueCarBackLeft or BlueCarBackRight\nBlueCarDecoration = BlueCarDecorationFront or BlueCarDecorationBack\n\n\nDecoration = RedCarDecoration or BlueCarDecoration \n\nVFX = HStreaks or VStreaks\n\nCar = RedCar or BlueCar\nSeat = ActiveSeat or InactiveSeat\nPushable = Car or Crate\nAnyWall = Wall or WallH or WallV\nObstacle = Wall or Car or Crate or WallH or WallV\nGUI = WinRed or WinBlue or NoWinRed or NoWinBlue\n\nPlayer = ActiveSeat \n\n# = Wall\n. = Background\na = RedCar and ActiveSeat\n1 = RedCar\nb = BlueCar and InactiveSeat\n2 = BlueCar\nx = NoWinRed and Wall\ny = NoWinBlue and Wall\n\nf = Flag\n\n=======\nSOUNDS\n=======\n\nSFX0 1367907 \nactiveseat move 76769307 (regular move)\nSFX2 47151508 (switchcar)\nSFX3 5892308 (touch flag)\nSFX4 36923307 (turn car)\nendlevel 84491108\nendgame 57925708\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nVFX\nFlag\nWall, Car, Crate, Decoration, WallH, WallV\nSeat\nGUI\n\n======\nRULES\n======\n\n[ RedCarDecoration ] -> [ RedCar ]\n[ BlueCarDecoration ] -> [ BlueCar ]\n\n[ Action ActiveSeat ] [ InactiveSeat ] -> [ InactiveSeat ] [ ActiveSeat ]\n\n(no reversing)\n[ < ActiveSeat RedCar | RedCar ] -> cancel\n[ < ActiveSeat BlueCar | BlueCar ] -> cancel\n\n(no turning towards foreign objects)\n[ > ActiveSeat BlueCar | RedCar ] -> cancel\n[ > ActiveSeat RedCar | BlueCar ] -> cancel\n[ > ActiveSeat BlueCar | Crate ] -> cancel\n[ > ActiveSeat RedCar | Crate ] -> cancel\n\n\n(turning)\n\n\n[ > ActiveSeat BlueCar | no Obstacle ] [ no ActiveSeat BlueCar ] -> [ ActiveSeat BlueCar | BlueCar ] [ ] sfx4\n\n\n[ > ActiveSeat RedCar | no Obstacle ] [ no ActiveSeat RedCar ] -> [ ActiveSeat RedCar | RedCar ] [ ] sfx4\n\n[ > ActiveSeat Car ] -> [ > ActiveSeat > Car ]\n\nstartLoop\n\n[ > Pushable | Pushable ] -> [ > Pushable | > Pushable ]\n\n[ moving RedCar | RedCar ] -> [ moving RedCar | moving RedCar ]\n[ moving BlueCar | BlueCar ] -> [ moving BlueCar | moving BlueCar ]\n\nendLoop\n\n[ moving Car Seat ] -> [ moving Car moving Seat ]\n\n[ > Pushable | AnyWall ] -> cancel\n\nhorizontal [ ^ RedCar | ^ RedCar ] -> [ VStreaks ^ RedCar | VStreaks ^ RedCar ] sfx0\nvertical [ ^ RedCar | ^ RedCar ] -> [ HStreaks ^ RedCar | HStreaks ^ RedCar ] sfx0\n\nhorizontal [ ^ BlueCar | ^ BlueCar ] -> [ VStreaks ^ BlueCar | VStreaks ^ BlueCar ] sfx0\nvertical [ ^ BlueCar | ^ BlueCar ] -> [ HStreaks ^ BlueCar | HStreaks ^ BlueCar ] sfx0\n\n\nlate [ BlueCar Flag ] [ NoWinBlue ] -> [ BlueCar Flag ] [ WinBlue ] sfx3\nlate [ RedCar Flag ] [ NoWinRed ] -> [ RedCar Flag ] [ WinRed ] sfx3\n\nlate up [ RedCar Seat | RedCar ] -> [ RedCarBackUp Seat | RedCarFrontUp ]\nlate down [ RedCar Seat | RedCar ] -> [ RedCarBackDown Seat | RedCarFrontDown ]\nlate left [ RedCar Seat | RedCar ] -> [ RedCarBackLeft Seat | RedCarFrontLeft ]\nlate right [ RedCar Seat | RedCar ] -> [ RedCarBackRight Seat | RedCarFrontRight ]\n\nlate up [ BlueCar Seat | BlueCar ] -> [ BlueCarBackUp Seat | BlueCarFrontUp ]\nlate down [ BlueCar Seat | BlueCar ] -> [ BlueCarBackDown Seat | BlueCarFrontDown ]\nlate left [ BlueCar Seat | BlueCar ] -> [ BlueCarBackLeft Seat | BlueCarFrontLeft ]\nlate right [ BlueCar Seat | BlueCar ] -> [ BlueCarBackRight Seat | BlueCarFrontRight ]\n\n==============\nWINCONDITIONS\n==============\n\nno NoWinRed\nno NoWinBlue\n\n=======\nLEVELS\n=======\n\nmessage RED appears to be in the lead, but what REALLY is important is everyone finishing the race\n\nmessage X to switch car, ARROWS to do turn or move forward. NO REVERSE\n\nmessage WARM UP LAP\n\n#############\n##---------##\n#|.........|#\n#|.....a1..|#\n#|..b2.....|#\n#|.........|#\n#|...#-#...|#\n#|...|#|...|#\n#|...|#|...|#\n#|...#-#...|#\n#|....f....|#\n#|....f....|#\n#|....f....|#\n#|....f....|#\n##---------##\n##xy#########\n\nmessage LAP 1\n\n###########\n##-------##\n#|.......|#\n#|.......|#\n###.----.|#\n##|..b2..|#\n##|..a1..|#\n###.----.|#\n#|...f...|#\n#|...f...|#\n##-------##\n###xy######\n\nmessage LAP 2\n\nmessage Watch out, tires on the track!\n\n###########\n#.....a1..#\n#...b2....#\n#...###...#\n#000###000#\n#...###...#\n#000###000#\n#....f....#\n#....f....#\n###xy######\n\nmessage Final Lap!\n\n##############\n##############\n#.......###.##\n#..a1.......##\n#..b2...###.##\n#.......###.##\n#####.#####.##\n#####...f....#\n###########.##\n#xy###########\n\nmessage RACE OVER\nmessage Race Results: \nmessage Teamwork is Victorious!\nmessage thanks for playing\n\n", [0, 0, 4, 1, 3, 3, 2, 4, 0, 3, 3, 0, 1, 1, 1, 0, 3, 1, 0, 3, 2, 2, 0, 3, 1, 1, 1, 0, 1, 0, 3, 3, 0, 1, 1, 4, 0, 0, 0, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 3, 3, 3, 3, 2, 1, 1, 1], "background wall:0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background wallv:1,1,0,0,0,0,1,1,\n0,0,0,background wallh:2,background:3,3,0,1,1,0,3,\n3,2,0,0,2,3,3,3,3,background redcarfrontleft:4,3,\nbackground bluecarfrontleft:5,3,2,background nowinred wall:6,0,2,3,3,2,3,background inactiveseat redcarbackleft:7,\n2,activeseat background bluecarbackleft:8,3,2,background wall winblue:9,0,2,3,3,2,3,\n3,2,background flag:10,10,2,0,0,2,3,3,2,\n3,3,2,3,3,2,0,0,2,3,3,\n2,background hstreaks:11,11,2,3,3,2,0,0,2,3,\n3,3,3,3,3,3,3,2,0,0,0,\n1,1,1,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n", 5, "1627888788733.95"] + ["title Cooperacing\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start \n\ncolor_palette amstrad \n\nyoutube ZdvPF9KQfXk\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\ngrey lightgrey\n01000\n00000\n00001\n00100\n00000\n\n\nWall\ngreen darkgreen\n11010\n01111\n10101\n11100\n01011\n\nWallV |\ndarkblue darkgreen green \n20202\n20202\n20202\n20202\n20202\n\nWallH -\ndarkblue darkgreen green\n22222\n00000\n22222\n00000\n22222\n\nRedCar\nred \n\nBlueCar \nblue\n\nActiveSeat\ndarkgrey yellow\n.....\n.101.\n.000.\n.101.\n.....\n\nInactiveSeat\ndarkgrey\n.....\n.000.\n.000.\n.000.\n.....\n\nNoWinRed\nDarkRed\n.....\n.000.\n.000.\n.000.\n.....\n\nWinRed\nBrown Red\n1111.\n1111.\n1111.\n0....\n0....\n\n\nNoWinBlue\nDarkBlue\n.....\n.000.\n.000.\n.000.\n.....\n\nWinBlue\nBrown Blue\n1111.\n1111.\n1111.\n0....\n0....\n\nCrate 0\nblack\n.000.\n00000\n00.00\n00000\n.000.\n\nFlag\nBlack White\n10101\n01010\n10101\n01010\n10101\n\n\n(decorative stuff BEGIN)\n\n\n\nRedCarFrontUp\ngrey red black\n..1..\n.111.\n21112\n21112\n.111.\n\nRedCarFrontDown\ngrey red black\n.111.\n21112\n21112\n.111.\n..1..\n\nRedCarFrontLeft\ngrey red black\n..22.\n.1111\n11111\n.1111\n..22.\n\nRedCarFrontRight\ngrey red black\n.22..\n1111.\n11111\n1111.\n.22..\n\n\nRedCarBackUp\ngrey red black\n.111.\n11111\n21112\n21112\n11111\n\nRedCarBackDown\ngrey red black\n11111\n21112\n21112\n11111\n.111.\n\nRedCarBackLeft\ngrey red black\n.1221\n11111\n11111\n11111\n.1221\n\nRedCarBackRight\ngrey red black\n.1221\n11111\n11111\n11111\n.1221\n\n\n\n\nBlueCarFrontUp\ngrey blue black\n..1..\n.111.\n21112\n21112\n.111.\n\nBlueCarFrontDown\ngrey blue black\n.111.\n21112\n21112\n.111.\n..1..\n\nBlueCarFrontLeft\ngrey blue black\n..22.\n.1111\n11111\n.1111\n..22.\n\nBlueCarFrontRight\ngrey blue black\n.22..\n1111.\n11111\n1111.\n.22..\n\n\nBlueCarBackUp\ngrey blue black\n.111.\n11111\n21112\n21112\n11111\n\nBlueCarBackDown\ngrey blue black\n11111\n21112\n21112\n11111\n.111.\n\nBlueCarBackLeft\ngrey blue black\n.1221\n11111\n11111\n11111\n.1221\n\nBlueCarBackRight\ngrey blue black\n.1221\n11111\n11111\n11111\n.1221\n\nHStreaks\ndarkgrey\n.....\n.000.\n.....\n.000.\n.....\n\nVStreaks\ndarkgrey\n.....\n.0.0.\n.0.0.\n.0.0.\n.....\n\n\n\n=======\nLEGEND\n=======\n\nRedCarDecorationFront = RedCarFrontUp or RedCarFrontDown or RedCarFrontLeft or RedCarFrontRight\nRedCarDecorationBack = RedCarBackUp or RedCarBackDown or RedCarBackLeft or RedCarBackRight\nRedCarDecoration = RedCarDecorationFront or RedCarDecorationBack\n\n\nBlueCarDecorationFront = BlueCarFrontUp or BlueCarFrontDown or BlueCarFrontLeft or BlueCarFrontRight\nBlueCarDecorationBack = BlueCarBackUp or BlueCarBackDown or BlueCarBackLeft or BlueCarBackRight\nBlueCarDecoration = BlueCarDecorationFront or BlueCarDecorationBack\n\n\nDecoration = RedCarDecoration or BlueCarDecoration \n\nVFX = HStreaks or VStreaks\n\nCar = RedCar or BlueCar\nSeat = ActiveSeat or InactiveSeat\nPushable = Car or Crate\nAnyWall = Wall or WallH or WallV\nObstacle = Wall or Car or Crate or WallH or WallV\nGUI = WinRed or WinBlue or NoWinRed or NoWinBlue\n\nPlayer = ActiveSeat \n\n# = Wall\n. = Background\na = RedCar and ActiveSeat\n1 = RedCar\nb = BlueCar and InactiveSeat\n2 = BlueCar\nx = NoWinRed and Wall\ny = NoWinBlue and Wall\n\nf = Flag\n\n=======\nSOUNDS\n=======\n\nSFX0 1367907 \nactiveseat move 76769307 (regular move)\nSFX2 47151508 (switchcar)\nSFX3 5892308 (touch flag)\nSFX4 36923307 (turn car)\nendlevel 84491108\nendgame 57925708\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nVFX\nFlag\nWall, Car, Crate, Decoration, WallH, WallV\nSeat\nGUI\n\n======\nRULES\n======\n\n[ RedCarDecoration ] -> [ RedCar ]\n[ BlueCarDecoration ] -> [ BlueCar ]\n\n[ Action ActiveSeat ] [ InactiveSeat ] -> [ InactiveSeat ] [ ActiveSeat ]\n\n(no reversing)\n[ < ActiveSeat RedCar | RedCar ] -> cancel\n[ < ActiveSeat BlueCar | BlueCar ] -> cancel\n\n(no turning towards foreign objects)\n[ > ActiveSeat BlueCar | RedCar ] -> cancel\n[ > ActiveSeat RedCar | BlueCar ] -> cancel\n[ > ActiveSeat BlueCar | Crate ] -> cancel\n[ > ActiveSeat RedCar | Crate ] -> cancel\n\n\n(turning)\n\n\n[ > ActiveSeat BlueCar | no Obstacle ] [ no ActiveSeat BlueCar ] -> [ ActiveSeat BlueCar | BlueCar ] [ ] sfx4\n\n\n[ > ActiveSeat RedCar | no Obstacle ] [ no ActiveSeat RedCar ] -> [ ActiveSeat RedCar | RedCar ] [ ] sfx4\n\n[ > ActiveSeat Car ] -> [ > ActiveSeat > Car ]\n\nstartLoop\n\n[ > Pushable | Pushable ] -> [ > Pushable | > Pushable ]\n\n[ moving RedCar | RedCar ] -> [ moving RedCar | moving RedCar ]\n[ moving BlueCar | BlueCar ] -> [ moving BlueCar | moving BlueCar ]\n\nendLoop\n\n[ moving Car Seat ] -> [ moving Car moving Seat ]\n\n[ > Pushable | AnyWall ] -> cancel\n\nhorizontal [ ^ RedCar | ^ RedCar ] -> [ VStreaks ^ RedCar | VStreaks ^ RedCar ] sfx0\nvertical [ ^ RedCar | ^ RedCar ] -> [ HStreaks ^ RedCar | HStreaks ^ RedCar ] sfx0\n\nhorizontal [ ^ BlueCar | ^ BlueCar ] -> [ VStreaks ^ BlueCar | VStreaks ^ BlueCar ] sfx0\nvertical [ ^ BlueCar | ^ BlueCar ] -> [ HStreaks ^ BlueCar | HStreaks ^ BlueCar ] sfx0\n\n\nlate [ BlueCar Flag ] [ NoWinBlue ] -> [ BlueCar Flag ] [ WinBlue ] sfx3\nlate [ RedCar Flag ] [ NoWinRed ] -> [ RedCar Flag ] [ WinRed ] sfx3\n\nlate up [ RedCar Seat | RedCar ] -> [ RedCarBackUp Seat | RedCarFrontUp ]\nlate down [ RedCar Seat | RedCar ] -> [ RedCarBackDown Seat | RedCarFrontDown ]\nlate left [ RedCar Seat | RedCar ] -> [ RedCarBackLeft Seat | RedCarFrontLeft ]\nlate right [ RedCar Seat | RedCar ] -> [ RedCarBackRight Seat | RedCarFrontRight ]\n\nlate up [ BlueCar Seat | BlueCar ] -> [ BlueCarBackUp Seat | BlueCarFrontUp ]\nlate down [ BlueCar Seat | BlueCar ] -> [ BlueCarBackDown Seat | BlueCarFrontDown ]\nlate left [ BlueCar Seat | BlueCar ] -> [ BlueCarBackLeft Seat | BlueCarFrontLeft ]\nlate right [ BlueCar Seat | BlueCar ] -> [ BlueCarBackRight Seat | BlueCarFrontRight ]\n\n==============\nWINCONDITIONS\n==============\n\nno NoWinRed\nno NoWinBlue\n\n=======\nLEVELS\n=======\n\nmessage RED appears to be in the lead, but what REALLY is important is everyone finishing the race\n\nmessage X to switch car, ARROWS to do turn or move forward. NO REVERSE\n\nmessage WARM UP LAP\n\n#############\n##---------##\n#|.........|#\n#|.....a1..|#\n#|..b2.....|#\n#|.........|#\n#|...#-#...|#\n#|...|#|...|#\n#|...|#|...|#\n#|...#-#...|#\n#|....f....|#\n#|....f....|#\n#|....f....|#\n#|....f....|#\n##---------##\n##xy#########\n\nmessage LAP 1\n\n###########\n##-------##\n#|.......|#\n#|.......|#\n###.----.|#\n##|..b2..|#\n##|..a1..|#\n###.----.|#\n#|...f...|#\n#|...f...|#\n##-------##\n###xy######\n\nmessage LAP 2\n\nmessage Watch out, tires on the track!\n\n###########\n#.....a1..#\n#...b2....#\n#...###...#\n#000###000#\n#...###...#\n#000###000#\n#....f....#\n#....f....#\n###xy######\n\nmessage Final Lap!\n\n##############\n##############\n#.......###.##\n#..a1.......##\n#..b2...###.##\n#.......###.##\n#####.#####.##\n#####...f....#\n###########.##\n#xy###########\n\nmessage RACE OVER\nmessage Race Results: \nmessage Teamwork is Victorious!\nmessage thanks for playing\n\n",[0,0,4,1,3,3,2,4,0,3,3,0,1,1,1,0,3,1,0,3,2,2,0,3,1,1,1,0,1,0,3,3,0,1,1,4,0,0,0,2,2,2,1,1,1,1,1,1,2,3,3,3,3,2,1,1,1],"background wall:0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background wallv:1,1,0,0,0,0,1,1,\n0,0,0,background wallh:2,background:3,3,0,1,1,0,3,\n3,2,0,0,2,3,3,3,3,background redcarfrontleft:4,3,\nbackground bluecarfrontleft:5,3,2,background nowinred wall:6,0,2,3,3,2,3,background inactiveseat redcarbackleft:7,\n2,activeseat background bluecarbackleft:8,3,2,background wall winblue:9,0,2,3,3,2,3,\n3,2,background flag:10,10,2,0,0,2,3,3,2,\n3,3,2,3,3,2,0,0,2,3,3,\n2,background hstreaks:11,11,2,3,3,2,0,0,2,3,\n3,3,3,3,3,3,3,2,0,0,0,\n1,1,1,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n",5,"1627888788733.95"] ], [ `increpare game: LED Challenge`, - ["(\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, "undo", 3, 3, 3, 3, 2, 3, 0, 0, "undo", "undo", 3, 0, 0, 0, 0, 0, 1, 2, 3, 2, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, "undo", 0, 1, 1, 1, 1, 2, 2, 2, 3, 3, 2, 3, 3, 0, 2, 1, 1, 1, "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "restart", 3, 3, 3, 3, 0, 3, 3, 0, 0, 1, 2, 3, 2, 2, 2, 1, 1, 0, 3, 1, 0, 0, 3, 2, 3, 3, 3, 2, 1, 1, 2, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 0, 0, 3, 0, "undo", "undo", 3, 0, 1, 2, 2, 1, 0], "background:0,0,0,0,0,0,0,0,0,0,0,0,\nbackground battery_h light light_left light_right:1,0,0,0,background red_on:2,background cable_ul light light_left light_up:3,background player:4,0,0,0,0,0,\n0,background wall:5,5,0,0,5,5,5,0,0,5,0,\n0,0,0,0,0,0,background green_off:6,0,0,0,0,0,\n0,0,0,background cable_ur:7,0,0,0,0,0,0,0,0,\n", 3, "1627888832451.9211"] + ["(\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,"undo",3,3,3,3,2,3,0,0,"undo","undo",3,0,0,0,0,0,1,2,3,2,1,1,1,1,1,3,3,3,3,3,2,1,1,1,1,0,1,0,1,1,1,"undo",0,1,1,1,1,2,2,2,3,3,2,3,3,0,2,1,1,1,"undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","restart",3,3,3,3,0,3,3,0,0,1,2,3,2,2,2,1,1,0,3,1,0,0,3,2,3,3,3,2,1,1,2,1,0,1,1,1,0,1,0,1,1,1,1,2,2,2,2,3,3,3,3,0,0,3,0,"undo","undo",3,0,1,2,2,1,0],"background:0,0,0,0,0,0,0,0,0,0,0,0,\nbackground battery_h light light_left light_right:1,0,0,0,background red_on:2,background cable_ul light light_left light_up:3,background player:4,0,0,0,0,0,\n0,background wall:5,5,0,0,5,5,5,0,0,5,0,\n0,0,0,0,0,0,background green_off:6,0,0,0,0,0,\n0,0,0,background cable_ur:7,0,0,0,0,0,0,0,0,\n",3,"1627888832451.9211"] ], [ `increpare game: robot arm`, - ["(\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 Robot Arm\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\ncolor_palette c64\n\nrun_rules_on_level_start\n\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground .\ndarkblue\n\nPlayer P\nBlack orange grey Blue\n.111.\n.111.\n22222\n13331\n.3.3.\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.010.\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 #\ndarkgrey grey lightgrey\n00000\n01110\n01010\n01110\n00000\n\nwater ,\nblue lightblue\n00000\n00010\n00000\n00000\n01000\n\nFruit F\nRed Green LightRed\n..1..\n.000.\n00020\n00000\n.000.\n\n\nFruitPicked G\nRed Green LightRed grey grey\n..4..\n.030.\n43334\n00300\n.040.\n\nDeadFruit \nblack black black black black\n..4..\n.030.\n43334\n00300\n.040.\n\nEndPoint E\ndarkgreen Yellow black green\n30003\n02220\n02220\n02220\n30003\n\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\nsfx0 43004308 (explosion)\nsfx1 69392707\nsfx2 57370907 (push machine)\nsfx3 62083508 (rotate machine)\nsfx4 90419908 (grab)\nsfx5 50782902 (drop in hole)\nsfx6 76878101 (empty grab)\nsfx7 13941101 (dead fruit)\nsfx8 42541302 (release)\nPlayer move 88476108\nstartgame 30513908\nendlevel 5524308\nendgame 5524308\nshowmessage 41852908\nclosemessage 41852908\n\n================\nCOLLISIONLAYERS\n================\nBackground\nwater\nEndPoint\nPlayer\nMoved\nFruit\nFRUITPICKED\ndeadfruit\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 | fruit ] -> cancel\n\n[ > player | water ] -> cancel\n\n[ > player | ] -> [ > player | > force ]\n\n[ > player | robotpiece | wall ] -> cancel\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] sfx2\n\n[ > force moving R1 perpendicular parent ] [ R0 ] -> [ moving R1 perpendicular parent ] [ > R0 ] sfx3\n[ > force moving R2 perpendicular parent ] [ R1 ] -> [ moving R2 perpendicular parent ] [ > R1 ] sfx3\n[ > force \t\tR3 perpendicular parent ] [ R2 ] -> [ R3 perpendicular parent ] [ > R2 ] sfx3\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 ] sfx0\n\n[ R0 R2 no explosion no explosion2] -> [ R0 R2 explosion ] sfx0\n[ R0 R3 no explosion no explosion2 ] -> [ R0 r3 explosion ] sfx0 \n[ R1 R3 no explosion no explosion2 ] -> [ R1 R3 explosion ] sfx0\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] sfx4\n[ action player ] [ R3 fruitpicked no fruit ] -> [ player ] [ r3 fruit ] sfx8\n\n[action player ] [ r3 no fruit no fruitpicked ] -> sfx6\n\n\n[ fruit endpoint ] -> [endpoint] sfx5\n[ fruit water ] -> [ deadfruit water ] sfx7\nlate [R0 water ] -> cancel\n[R0 fruit ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nno fruit\nno fruitpicked\nno deadfruit\n\n=======\nLEVELS\n=======\n\nmessage press x to grip and ungrip the mechanical arm\nmessage put fruit in hole\n\nmessage Level 1 of 3\n\n###################\n###################\n###################\n###..,........,.###\n###..,...3....,.###\n###..,...2....,.###\n###.F,.E.1.,,,F,###\n###..,...0....,.###\n###..,..P.....,.###\n###..,........,.###\n###################\n###################\n###################\n\nmessage Level 2 of 3\n\n##############\n##############\n##############\n###..3.....###\n###..2.....###\n###..1.,,,,###\n###.E0.,...###\n###....,FF.###\n###.P..,...###\n##############\n##############\n##############\n\nmessage Level 3 of 3 \n\n###################\n###################\n###################\n########........###\n###..3.#...##.f.###\n###..2..........###\n###..1...#....#.###\n###.e0..........###\n###..p..#...#.f.###\n#########.......###\n###################\n###################\n###################\n\nmessage congratulations\n\n", [3, 2, 3, 1, 1, 0, 0, 0, 3, 1, 2, 3, 3, 2, 3, 0, 3, 3, 0, 2, 1, 1, 1, 0, 0, 0, 0, 3, 3, 2, 1, 1, 2, 2, 2, 3, 3, 1, 4], "background wall: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,\n0,0,0,0,background:1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,\n1,background fruit:2,1,1,1,0,0,0,0,0,0,background water:3,3,3,3,3,3,3,0,\n0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,1,\n1,1,background endpoint force:4,1,1,background force:5,0,0,0,0,0,0,1,1,5,1,1,5,1,\n0,0,0,0,0,0,1,1,5,1,1,5,1,background force wall:6,0,0,0,0,0,\n5,1,1,1,1,5,5,0,0,0,0,0,0,1,1,1,3,1,background force player:7,\n5,0,0,0,0,0,0,1,1,1,3,1,1,1,0,0,0,0,0,\n0,1,5,1,3,1,background connector_right r0_right:8,5,0,0,0,0,0,0,3,3,3,background connector_down fruitpicked r3:9,background connector_down connector_up r2_up water:10,\nbackground connector_left connector_up force r1_up water:11,3,0,0,0,0,0,0,1,1,1,3,1,1,1,0,0,0,0,\n0,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,\n", 3, "1627890876560.982"] +["(\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 Robot Arm\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\ncolor_palette c64\n\nrun_rules_on_level_start\n\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground .\ndarkblue\n\nPlayer P\nBlack orange grey Blue\n.111.\n.111.\n22222\n13331\n.3.3.\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.010.\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 #\ndarkgrey grey lightgrey\n00000\n01110\n01010\n01110\n00000\n\nwater ,\nblue lightblue\n00000\n00010\n00000\n00000\n01000\n\nFruit F\nRed Green LightRed\n..1..\n.000.\n00020\n00000\n.000.\n\n\nFruitPicked G\nRed Green LightRed grey grey\n..4..\n.030.\n43334\n00300\n.040.\n\nDeadFruit \nblack black black black black\n..4..\n.030.\n43334\n00300\n.040.\n\nEndPoint E\ndarkgreen Yellow black green\n30003\n02220\n02220\n02220\n30003\n\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\nsfx0 43004308 (explosion)\nsfx1 69392707\nsfx2 57370907 (push machine)\nsfx3 62083508 (rotate machine)\nsfx4 90419908 (grab)\nsfx5 50782902 (drop in hole)\nsfx6 76878101 (empty grab)\nsfx7 13941101 (dead fruit)\nsfx8 42541302 (release)\nPlayer move 88476108\nstartgame 30513908\nendlevel 5524308\nendgame 5524308\nshowmessage 41852908\nclosemessage 41852908\n\n================\nCOLLISIONLAYERS\n================\nBackground\nwater\nEndPoint\nPlayer\nMoved\nFruit\nFRUITPICKED\ndeadfruit\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 | fruit ] -> cancel\n\n[ > player | water ] -> cancel\n\n[ > player | ] -> [ > player | > force ]\n\n[ > player | robotpiece | wall ] -> cancel\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] sfx2\n\n[ > force moving R1 perpendicular parent ] [ R0 ] -> [ moving R1 perpendicular parent ] [ > R0 ] sfx3\n[ > force moving R2 perpendicular parent ] [ R1 ] -> [ moving R2 perpendicular parent ] [ > R1 ] sfx3\n[ > force \t\tR3 perpendicular parent ] [ R2 ] -> [ R3 perpendicular parent ] [ > R2 ] sfx3\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 ] sfx0\n\n[ R0 R2 no explosion no explosion2] -> [ R0 R2 explosion ] sfx0\n[ R0 R3 no explosion no explosion2 ] -> [ R0 r3 explosion ] sfx0 \n[ R1 R3 no explosion no explosion2 ] -> [ R1 R3 explosion ] sfx0\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] sfx4\n[ action player ] [ R3 fruitpicked no fruit ] -> [ player ] [ r3 fruit ] sfx8\n\n[action player ] [ r3 no fruit no fruitpicked ] -> sfx6\n\n\n[ fruit endpoint ] -> [endpoint] sfx5\n[ fruit water ] -> [ deadfruit water ] sfx7\nlate [R0 water ] -> cancel\n[R0 fruit ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nno fruit\nno fruitpicked\nno deadfruit\n\n=======\nLEVELS\n=======\n\nmessage press x to grip and ungrip the mechanical arm\nmessage put fruit in hole\n\nmessage Level 1 of 3\n\n###################\n###################\n###################\n###..,........,.###\n###..,...3....,.###\n###..,...2....,.###\n###.F,.E.1.,,,F,###\n###..,...0....,.###\n###..,..P.....,.###\n###..,........,.###\n###################\n###################\n###################\n\nmessage Level 2 of 3\n\n##############\n##############\n##############\n###..3.....###\n###..2.....###\n###..1.,,,,###\n###.E0.,...###\n###....,FF.###\n###.P..,...###\n##############\n##############\n##############\n\nmessage Level 3 of 3 \n\n###################\n###################\n###################\n########........###\n###..3.#...##.f.###\n###..2..........###\n###..1...#....#.###\n###.e0..........###\n###..p..#...#.f.###\n#########.......###\n###################\n###################\n###################\n\nmessage congratulations\n\n",[3,2,3,1,1,0,0,0,3,1,2,3,3,2,3,0,3,3,0,2,1,1,1,0,0,0,0,3,3,2,1,1,2,2,2,3,3,1,4],"background wall: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,\n0,0,0,0,background:1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,\n1,background fruit:2,1,1,1,0,0,0,0,0,0,background water:3,3,3,3,3,3,3,0,\n0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,1,\n1,1,background endpoint force:4,1,1,background force:5,0,0,0,0,0,0,1,1,5,1,1,5,1,\n0,0,0,0,0,0,1,1,5,1,1,5,1,background force wall:6,0,0,0,0,0,\n5,1,1,1,1,5,5,0,0,0,0,0,0,1,1,1,3,1,background force player:7,\n5,0,0,0,0,0,0,1,1,1,3,1,1,1,0,0,0,0,0,\n0,1,5,1,3,1,background connector_right r0_right:8,5,0,0,0,0,0,0,3,3,3,background connector_down fruitpicked r3:9,background connector_down connector_up r2_up water:10,\nbackground connector_left connector_up force r1_up water:11,3,0,0,0,0,0,0,1,1,1,3,1,1,1,0,0,0,0,\n0,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,\n",3,"1627890876560.982"] ], [ `increpare game: snortal`, - ["title Snortal\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nnorepeat_action\n\nverbose_logging\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground \nbrown\n\ncounter ,\ngrey black\n11111\n10101\n11111\n10101\n11111\n\nportalmade\nred blue black\n20212\n20012\n20212\n20112\n20212\n\n\nfloor .\nbrown\n\nwall #\ngrey\n\nSnakeBod *\ngreen\n.000.\n00000\n00000\n00000\n.000.\n\nSnakeUp U\ngreen \n.000.\n0.0.0\n00000\n00000\n.000.\n\nSnakeDown D\ngreen \n.000.\n00000\n00000\n0.0.0\n.000.\n\nSnakeLeft L\ngreen \n.000.\n0.000\n00000\n0.000\n.000.\n\n\nSnakeRight R\ngreen \n.000.\n000.0\n00000\n000.0\n.000.\n\n\n\nPortalUpR\nred \n.000.\n.....\n.....\n.....\n.....\n\nPortalDownR\nred \n.....\n.....\n.....\n.....\n.000.\n\nPortalLeftR\nred \n.....\n0....\n0....\n0....\n.....\n\nPortalRightR\nred \n.....\n....0\n....0\n....0\n.....\n\nPortalUpB\nblue \n.000.\n.....\n.....\n.....\n.....\n\nPortalDownB\nblue \n.....\n.....\n.....\n.....\n.000.\n\nPortalLeftB\nblue \n.....\n0....\n0....\n0....\n.....\n\nPortalRightB\nblue \n.....\n....0\n....0\n....0\n.....\n\nRed\nred\n.000.\n00000\n00000\n00000\n.000.\n\nBlue\nblue\n.000.\n00000\n00000\n00000\n.000.\n\n\nold\nblack\n\nexit\norange\n\nenter\nyellow\n\nportaltarget\npink\n\ntemp \nblack\n\n=======\nLEGEND\n=======\n\n\nPlayer = SnakeUp or SnakeDown or SnakeLeft or SnakeRight\nObstacle = SnakeBod or Wall\nColor = red or blue\nsnaketotality = player or snakebod\n\nPortalUp = PortalUpR or PortalUpB\nPortalDown = PortalDownR or PortalDownB\nPortalLeft = PortalLeftR or PortalLeftB\nPortalRight = PortalRightR or PortalRightB\n\nPortalR = PortalUpR or PortalDownR or PortalLeftR or PortalRightR\nPortalB = PortalUpB or PortalDownB or PortalLeftB or PortalRightB\n\nPortal = PortalUp or PortalDown or PortalLeft or PortalRight\n\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nCounter\nPortalmade\nFloor\nWall \nColor\nPlayer, SnakeBod\nPortal\nOld\nExit, Enter\nportaltarget\ntemp\n\n======\nRULES\n======\n\n[ player no color ] -> [player red]\n\n\n[portal ] -> [old portal]\n\n\n[portalleft]->[left portalleft]\n[portalright]->[right portalright]\n[portalup]->[up portalup]\n[portaldown]->[down portaldown]\n\n[player ] -> [ player temp]\nup [ action snakeup temp | ... | obstacle ] -> [ action snakeup | ... | obstacle portaltarget ] \ndown [ action snakedown temp | ... | obstacle ] -> [ action snakedown | ... | obstacle portaltarget ] \nleft [ action snakeleft temp | ... | obstacle ] -> [ action snakeleft | ... | obstacle portaltarget ] \nright [ action snakeright temp | ... | obstacle ] -> [ action snakeright | ... | obstacle portaltarget ] \n[temp]->[]\n[portaltarget portal ] -> cancel\n\n[ > player | < portal ] -> [ > player | < portal enter ]\n\n[ > portal no enter | no obstacle no player ] [enter] [player] [counter] -> [ > portal | exit ] [ enter ] [ snakebod ] [portalmade] \n\n\n[ up portal | exit ] -> [ up portal | snakeup ]\n[ down portal | exit ] -> [ down portal | snakedown ]\n[ left portal | exit ] -> [ left portal | snakeleft ]\n[ right portal | exit ] -> [ right portal | snakeright ]\n[color no player ] [ player ] -> [] [color player]\n\n[ up player exit ] -> [ snakeup ]\n[ down player exit ] -> [ snakedown ]\n[ left player exit ] -> [ snakeleft ]\n[ right player exit ] -> [ snakeright ]\n\n[ > snakebod ] -> [snakebod]\n\n[ > portal ] -> [ portal ]\n\n[ > Player | Obstacle ] -> [ Player | Obstacle ]\nup [ up Player Color | No Obstacle ] -> [ SnakeBod | SnakeUp Color ] \ndown [ down Player Color | No Obstacle ] -> [ SnakeBod | SnakeDown Color ] \nleft [ left Player Color | No Obstacle ] -> [ SnakeBod | SnakeLeft Color ] \nright [ right Player Color | No Obstacle ] -> [ SnakeBod | SnakeRight Color ] \n\nright [ action snakeright Red | ... | Obstacle No Portal ] -> [snakeright Blue | ... | Obstacle PortalLeftR ]\nright [ action snakeright Blue | ... | Obstacle No Portal ] -> [snakeright Red | ... | Obstacle PortalLeftB ]\n\nleft [ action snakeleft Red | ... | Obstacle No Portal ] -> [snakeleft Blue | ... | Obstacle PortalRightR ]\nleft [ action snakeleft Blue | ... | Obstacle No Portal ] -> [snakeleft Red | ... | Obstacle PortalRightB ]\n\nup [ action snakeup Red | ... | Obstacle No Portal ] -> [snakeup Blue | ... | Obstacle PortalDownR ]\nup [ action snakeup Blue | ... | Obstacle No Portal ] -> [snakeup Red | ... | Obstacle PortalDownB ]\n\ndown [ action snakedown Red | ... | Obstacle No Portal ] -> [snakedown Blue | ... | Obstacle PortalupR ]\ndown [ action snakedown Blue | ... | Obstacle No Portal ] -> [snakedown Red | ... | Obstacle PortalupB ]\n\n\n\n[old portalB] [no old portalB] -> [] [portalB]\n[old portalR] [no old portalR] -> [] [portalR]\n[old] -> []\n\n[enter] -> []\n[exit] -> []\n\n[portaltarget]->[]\n\n==============\nWINCONDITIONS\n==============\nno counter\n\n=======\nLEVELS\n=======\n\n\n,,,,,,,\n#######\n#.....#\n#.....#\n#..U..#\n#.....#\n#.....#\n#######\n\n", [1, 1, 2, 2, 3, 0, 4, 3, 3, "restart", 4, 3, 4, 3, 3, 3, 1, "undo", "undo", 3, 0, 2, 1, 1, 2, 4, 2, 3, 4, 3, 3, 3, 3], "background portalmade:0,background wall:1,1,1,1,1,1,\n1,0,1,background floor:2,background floor snakebod:3,3,3,\nbackground floor red snakeup:4,background portalupr wall:5,background counter:6,1,2,3,2,\n3,2,1,6,1,3,3,\nbackground snakebod:7,3,2,1,6,1,2,\n2,3,3,2,1,6,1,\n2,2,3,3,2,1,6,\n1,1,1,1,background portalleftb wall:8,1,1,\n", 0, "1627888906100.3608"] +["title Snortal\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nnorepeat_action\n\nverbose_logging\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground \nbrown\n\ncounter ,\ngrey black\n11111\n10101\n11111\n10101\n11111\n\nportalmade\nred blue black\n20212\n20012\n20212\n20112\n20212\n\n\nfloor .\nbrown\n\nwall #\ngrey\n\nSnakeBod *\ngreen\n.000.\n00000\n00000\n00000\n.000.\n\nSnakeUp U\ngreen \n.000.\n0.0.0\n00000\n00000\n.000.\n\nSnakeDown D\ngreen \n.000.\n00000\n00000\n0.0.0\n.000.\n\nSnakeLeft L\ngreen \n.000.\n0.000\n00000\n0.000\n.000.\n\n\nSnakeRight R\ngreen \n.000.\n000.0\n00000\n000.0\n.000.\n\n\n\nPortalUpR\nred \n.000.\n.....\n.....\n.....\n.....\n\nPortalDownR\nred \n.....\n.....\n.....\n.....\n.000.\n\nPortalLeftR\nred \n.....\n0....\n0....\n0....\n.....\n\nPortalRightR\nred \n.....\n....0\n....0\n....0\n.....\n\nPortalUpB\nblue \n.000.\n.....\n.....\n.....\n.....\n\nPortalDownB\nblue \n.....\n.....\n.....\n.....\n.000.\n\nPortalLeftB\nblue \n.....\n0....\n0....\n0....\n.....\n\nPortalRightB\nblue \n.....\n....0\n....0\n....0\n.....\n\nRed\nred\n.000.\n00000\n00000\n00000\n.000.\n\nBlue\nblue\n.000.\n00000\n00000\n00000\n.000.\n\n\nold\nblack\n\nexit\norange\n\nenter\nyellow\n\nportaltarget\npink\n\ntemp \nblack\n\n=======\nLEGEND\n=======\n\n\nPlayer = SnakeUp or SnakeDown or SnakeLeft or SnakeRight\nObstacle = SnakeBod or Wall\nColor = red or blue\nsnaketotality = player or snakebod\n\nPortalUp = PortalUpR or PortalUpB\nPortalDown = PortalDownR or PortalDownB\nPortalLeft = PortalLeftR or PortalLeftB\nPortalRight = PortalRightR or PortalRightB\n\nPortalR = PortalUpR or PortalDownR or PortalLeftR or PortalRightR\nPortalB = PortalUpB or PortalDownB or PortalLeftB or PortalRightB\n\nPortal = PortalUp or PortalDown or PortalLeft or PortalRight\n\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nCounter\nPortalmade\nFloor\nWall \nColor\nPlayer, SnakeBod\nPortal\nOld\nExit, Enter\nportaltarget\ntemp\n\n======\nRULES\n======\n\n[ player no color ] -> [player red]\n\n\n[portal ] -> [old portal]\n\n\n[portalleft]->[left portalleft]\n[portalright]->[right portalright]\n[portalup]->[up portalup]\n[portaldown]->[down portaldown]\n\n[player ] -> [ player temp]\nup [ action snakeup temp | ... | obstacle ] -> [ action snakeup | ... | obstacle portaltarget ] \ndown [ action snakedown temp | ... | obstacle ] -> [ action snakedown | ... | obstacle portaltarget ] \nleft [ action snakeleft temp | ... | obstacle ] -> [ action snakeleft | ... | obstacle portaltarget ] \nright [ action snakeright temp | ... | obstacle ] -> [ action snakeright | ... | obstacle portaltarget ] \n[temp]->[]\n[portaltarget portal ] -> cancel\n\n[ > player | < portal ] -> [ > player | < portal enter ]\n\n[ > portal no enter | no obstacle no player ] [enter] [player] [counter] -> [ > portal | exit ] [ enter ] [ snakebod ] [portalmade] \n\n\n[ up portal | exit ] -> [ up portal | snakeup ]\n[ down portal | exit ] -> [ down portal | snakedown ]\n[ left portal | exit ] -> [ left portal | snakeleft ]\n[ right portal | exit ] -> [ right portal | snakeright ]\n[color no player ] [ player ] -> [] [color player]\n\n[ up player exit ] -> [ snakeup ]\n[ down player exit ] -> [ snakedown ]\n[ left player exit ] -> [ snakeleft ]\n[ right player exit ] -> [ snakeright ]\n\n[ > snakebod ] -> [snakebod]\n\n[ > portal ] -> [ portal ]\n\n[ > Player | Obstacle ] -> [ Player | Obstacle ]\nup [ up Player Color | No Obstacle ] -> [ SnakeBod | SnakeUp Color ] \ndown [ down Player Color | No Obstacle ] -> [ SnakeBod | SnakeDown Color ] \nleft [ left Player Color | No Obstacle ] -> [ SnakeBod | SnakeLeft Color ] \nright [ right Player Color | No Obstacle ] -> [ SnakeBod | SnakeRight Color ] \n\nright [ action snakeright Red | ... | Obstacle No Portal ] -> [snakeright Blue | ... | Obstacle PortalLeftR ]\nright [ action snakeright Blue | ... | Obstacle No Portal ] -> [snakeright Red | ... | Obstacle PortalLeftB ]\n\nleft [ action snakeleft Red | ... | Obstacle No Portal ] -> [snakeleft Blue | ... | Obstacle PortalRightR ]\nleft [ action snakeleft Blue | ... | Obstacle No Portal ] -> [snakeleft Red | ... | Obstacle PortalRightB ]\n\nup [ action snakeup Red | ... | Obstacle No Portal ] -> [snakeup Blue | ... | Obstacle PortalDownR ]\nup [ action snakeup Blue | ... | Obstacle No Portal ] -> [snakeup Red | ... | Obstacle PortalDownB ]\n\ndown [ action snakedown Red | ... | Obstacle No Portal ] -> [snakedown Blue | ... | Obstacle PortalupR ]\ndown [ action snakedown Blue | ... | Obstacle No Portal ] -> [snakedown Red | ... | Obstacle PortalupB ]\n\n\n\n[old portalB] [no old portalB] -> [] [portalB]\n[old portalR] [no old portalR] -> [] [portalR]\n[old] -> []\n\n[enter] -> []\n[exit] -> []\n\n[portaltarget]->[]\n\n==============\nWINCONDITIONS\n==============\nno counter\n\n=======\nLEVELS\n=======\n\n\n,,,,,,,\n#######\n#.....#\n#.....#\n#..U..#\n#.....#\n#.....#\n#######\n\n",[1,1,2,2,3,0,4,3,3,"restart",4,3,4,3,3,3,1,"undo","undo",3,0,2,1,1,2,4,2,3,4,3,3,3,3],"background portalmade:0,background wall:1,1,1,1,1,1,\n1,0,1,background floor:2,background floor snakebod:3,3,3,\nbackground floor red snakeup:4,background portalupr wall:5,background counter:6,1,2,3,2,\n3,2,1,6,1,3,3,\nbackground snakebod:7,3,2,1,6,1,2,\n2,3,3,2,1,6,1,\n2,2,3,3,2,1,6,\n1,1,1,1,background portalleftb wall:8,1,1,\n",0,"1627888906100.3608"] ], [ `increpare game: you complete me`, - ["title You Complete Me\nauthor Stephen Lavelle\nhomepage www.increpare.com\nrun_rules_on_level_start\n\nverbose_logging\nnoaction \n\n========\nOBJECTS\n========\n\nBackground \nGREEN \n\nTarget \nDarkBlue \n\nWall \nBROWN\n\nPlayer \nred \n.....\n.000.\n.000.\n.000.\n.....\n\nCrate \nOrange \n\nSUP \ntransparent\n\nSDOWN\ntransparent\n\nSLEFT\ntransparent\n\nSRIGHT\ntransparent\n\nice \nlightblue\n\nfreshice\nblue\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\ni = ice\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nmarker = SUP or SDOWN or SLEFT or SRIGHT\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nice, freshice\nTarget\nPlayer, Wall, Crate\nSUP, SDOWN, SLEFT, SRIGHT\n\n======\nRULES \n====== \n\n[> player | wall] -> cancel\nlate up [SUP] [|player] -> [SUP] [ice|player]\nlate down [SDOWN] [|player] -> [SDOWN] [ice|player]\nlate left [SLEFT] [|player] -> [SLEFT] [ice|player]\nlate right [SRIGHT] [|player] -> [SRIGHT] [ice|player]\n\nup [SUP] [Player ice | no wall ] -> [SUP] [ > Player ice | ] again\ndown [SDOWN] [Player ice | no wall ] -> [SDOWN] [ > Player ice | ] again\nleft [SLEFT] [Player ice | no wall ] -> [SLEFT] [ > Player ice | ] again\nright [SRIGHT] [Player ice | no wall ] -> [SRIGHT] [ > Player ice | ] again\n\n\n[marker]->[]\n\n\n[ > player ] -> [ > player ] again\nup [ > player ] -> [ > player sup ]\ndown [ > player ] -> [ > player sdown ]\nleft [ > player ] -> [ > player sleft ]\nright [ > player ] -> [ > player sright ]\n\n[ stationary player ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\n\n======= \nLEVELS\n=======\n\n###############\n##.#.#.#.#.#.##\n#.............#\n##.#.#.#.#.#.##\n#.............#\n##.#.#.#.#.#.##\n#.............#\n##.#.#.#.#.#.##\n#.............#\n##.#.#.#.#.#.##\n#......p......#\n##.#.#.#.#.#.##\n###############\n", [3, 3, 3, 0, 0, 1, 1, 1, 1, 2, 2, 3, 3, 0, 0, 1, 1], "background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\nbackground:1,0,1,0,1,0,1,0,1,0,0,0,1,1,1,\n1,1,1,1,1,1,1,1,0,0,0,1,0,1,0,\n1,0,1,0,1,0,0,0,1,1,1,1,1,1,1,\n1,1,1,1,0,0,0,1,0,1,0,1,0,background player:2,0,\n1,0,0,0,1,1,1,1,1,1,1,background ice sleft:3,background ice:4,4,1,\n0,0,0,1,0,1,0,1,0,4,0,4,0,0,0,\n1,1,1,1,1,1,1,4,1,4,1,0,0,0,1,\n0,1,0,1,0,4,0,4,0,0,0,1,1,1,1,\n1,1,1,4,4,4,1,0,0,0,1,0,1,0,1,\n0,4,0,4,0,0,0,1,1,1,1,1,1,1,4,\n4,4,1,0,0,0,1,0,1,0,1,0,1,0,1,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 0, "1627888927321.9932"] +["title You Complete Me\nauthor Stephen Lavelle\nhomepage www.increpare.com\nrun_rules_on_level_start\n\nverbose_logging\nnoaction \n\n========\nOBJECTS\n========\n\nBackground \nGREEN \n\nTarget \nDarkBlue \n\nWall \nBROWN\n\nPlayer \nred \n.....\n.000.\n.000.\n.000.\n.....\n\nCrate \nOrange \n\nSUP \ntransparent\n\nSDOWN\ntransparent\n\nSLEFT\ntransparent\n\nSRIGHT\ntransparent\n\nice \nlightblue\n\nfreshice\nblue\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\ni = ice\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nmarker = SUP or SDOWN or SLEFT or SRIGHT\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nice, freshice\nTarget\nPlayer, Wall, Crate\nSUP, SDOWN, SLEFT, SRIGHT\n\n======\nRULES \n====== \n\n[> player | wall] -> cancel\nlate up [SUP] [|player] -> [SUP] [ice|player]\nlate down [SDOWN] [|player] -> [SDOWN] [ice|player]\nlate left [SLEFT] [|player] -> [SLEFT] [ice|player]\nlate right [SRIGHT] [|player] -> [SRIGHT] [ice|player]\n\nup [SUP] [Player ice | no wall ] -> [SUP] [ > Player ice | ] again\ndown [SDOWN] [Player ice | no wall ] -> [SDOWN] [ > Player ice | ] again\nleft [SLEFT] [Player ice | no wall ] -> [SLEFT] [ > Player ice | ] again\nright [SRIGHT] [Player ice | no wall ] -> [SRIGHT] [ > Player ice | ] again\n\n\n[marker]->[]\n\n\n[ > player ] -> [ > player ] again\nup [ > player ] -> [ > player sup ]\ndown [ > player ] -> [ > player sdown ]\nleft [ > player ] -> [ > player sleft ]\nright [ > player ] -> [ > player sright ]\n\n[ stationary player ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\n\n======= \nLEVELS\n=======\n\n###############\n##.#.#.#.#.#.##\n#.............#\n##.#.#.#.#.#.##\n#.............#\n##.#.#.#.#.#.##\n#.............#\n##.#.#.#.#.#.##\n#.............#\n##.#.#.#.#.#.##\n#......p......#\n##.#.#.#.#.#.##\n###############\n",[3,3,3,0,0,1,1,1,1,2,2,3,3,0,0,1,1],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\nbackground:1,0,1,0,1,0,1,0,1,0,0,0,1,1,1,\n1,1,1,1,1,1,1,1,0,0,0,1,0,1,0,\n1,0,1,0,1,0,0,0,1,1,1,1,1,1,1,\n1,1,1,1,0,0,0,1,0,1,0,1,0,background player:2,0,\n1,0,0,0,1,1,1,1,1,1,1,background ice sleft:3,background ice:4,4,1,\n0,0,0,1,0,1,0,1,0,4,0,4,0,0,0,\n1,1,1,1,1,1,1,4,1,4,1,0,0,0,1,\n0,1,0,1,0,4,0,4,0,0,0,1,1,1,1,\n1,1,1,4,4,4,1,0,0,0,1,0,1,0,1,\n0,4,0,4,0,0,0,1,1,1,1,1,1,1,4,\n4,4,1,0,0,0,1,0,1,0,1,0,1,0,1,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",0,"1627888927321.9932"] ], [ `increpare game: `, - ["(\n\tescape snake\n)\n\ntitle 8 Happy Snakes\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nverbose_logging\n\ncolor_palette 1\n\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\ndarkblue\n\nHead\nLightGreen\n\nBody\nGreen\n\nWall\nblue\n\nT\npink\n\ngoodtarget\nwhite\n.....\n.....\n..0..\n.....\n.....\n\ntarget /\nyellow\n.....\n.....\n..0..\n.....\n.....\n\nbadtarget \ngray\n.....\n.....\n..0..\n.....\n.....\n\nVBarrier |\nred\n..0..\n.....\n..0..\n.....\n..0..\n\nHBarrier -\nred\n.....\n.....\n0.0.0\n.....\n.....\n\nHVBarrier +\nred\n..0..\n.....\n0.0.0\n.....\n..0..\n\nCollectable *\norange\n.....\n..0..\n.000.\n..0..\n.....\n\nStarSpawn S\ngray\n.....\n..0..\n.000.\n..0..\n.....\n\n=======\nLEGEND\n=======\n\nBarrier = HBarrier or VBarrier or HVBarrier\n\nPlayer = Head\n\n. = Background\n# = Wall\nP = Player\n\n@ = Player and Target\n\nThing = Wall or Player or Body\n\nworm = head or body\n\n=======\nSOUNDS\n=======\n\ncancel 95340304\nsfx1 78274500\nsfx2 14526700\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nHead, Wall, Body\nstarspawn\nTarget\nT, Barrier, Collectable\ngoodtarget\nbadtarget\n======\nRULES\n======\n\n[badtarget]->[]\n[goodtarget]->[]\n[ > Head | Barrier ] -> cancel\n\n[ > Head | No Thing ] -> [ Body | Head ]\n\n[ > Head | Wall ] [ Body ] -> [ > Head | Wall ] [ < Body ]\n\n[ > Body | Wall ] -> cancel\n\n[ Wall | > Head | Wall ] -> cancel\n\n[ | > Head | Wall ] -> [ T | Head | Wall ]\n\nlate [ T Body ] -> cancel\nlate [ T ] -> [ Body ]\n\nlate [ Collectable Worm ] -> [ Worm ] Sfx1\n\nlate [Starspawn] -> [Starspawn Collectable]\nlate [ worm no target ] [Starspawn Collectable] -> [ worm] [Starspawn]\nlate [ target no worm ] [Starspawn Collectable] -> [ target ] [Starspawn]\n\nlate [starspawn collectable ]->[collectable] sfx2\n\nlate [collectable] [target]->[collectable] []\nlate [collectable] [goodtarget]->[collectable] []\nlate [collectable] [badtarget]->[collectable] []\n\nlate [ worm target ] -> [ worm target goodtarget ]\nlate [ worm no target ] [ target] -> [worm] [target badtarget]\n\n==============\nWINCONDITIONS\n==============\n\nNo Collectable\nno starspawn\n\n=======\nLEVELS\n=======\n\nMessage 1 of 8\n\n#################\n#...............#\n#...............#\n#.......P.......#\n#...............#\n#...............#\n#......*.*......#\n#...............#\n#......*.*......#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\nMessage 2 of 8\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#......@//......#\n#....../S/......#\n#......///......#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\nMessage 3 of 8\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#...../.P.......#\n#...../S........#\n#.....///#......#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\nMessage 4 of 8\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#.......P.///...#\n#........./S/...#\n#........#///...#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\n\nMessage 5 of 8\n\n#################\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.*.......#\n#.....|....P....#\n#.....|.........#\n#..*..|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#################\n\nMessage 6 of 8\n\n#################\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|....P....#\n#.....|.........#\n#..*..|#........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#################\n\nMessage 7 of 8\n###################\n#+---------------+#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.p.......|#\n#|.....|.........|#\n#|..*.#|....#....|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#+---------------+#\n###################\n\n\nMessage 8 of 8\n\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#.......S.......#\n#.....///...#...#\n#...../.@////...#\n#.....///..//...#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n", [3, 0, 1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 3, 3, 0, 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,background:1,1,\n1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,background collectable:2,\n1,1,1,1,0,0,1,1,1,1,1,1,1,background body:3,3,1,1,\n1,0,0,1,1,1,1,3,3,3,3,3,1,1,1,0,0,\nbackground vbarrier:4,4,4,4,background body vbarrier:5,4,4,5,5,4,4,4,0,0,1,1,1,\n1,3,1,1,3,1,1,1,1,0,0,1,1,1,1,3,3,\n1,3,1,1,1,1,0,0,1,1,1,1,3,3,1,3,1,\n1,1,1,0,0,1,1,1,1,1,1,1,3,1,1,1,1,\n0,0,1,1,1,1,1,1,1,3,1,1,1,1,0,0,1,\n1,1,1,1,1,1,3,1,1,1,1,0,0,1,1,1,1,\n1,1,1,3,1,1,1,1,0,0,1,1,1,1,1,1,1,\n3,1,1,1,1,0,0,1,1,1,1,1,1,1,background head:6,1,1,\n1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 9, "1627888950120.6284"] +["(\n\tescape snake\n)\n\ntitle 8 Happy Snakes\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nverbose_logging\n\ncolor_palette 1\n\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\ndarkblue\n\nHead\nLightGreen\n\nBody\nGreen\n\nWall\nblue\n\nT\npink\n\ngoodtarget\nwhite\n.....\n.....\n..0..\n.....\n.....\n\ntarget /\nyellow\n.....\n.....\n..0..\n.....\n.....\n\nbadtarget \ngray\n.....\n.....\n..0..\n.....\n.....\n\nVBarrier |\nred\n..0..\n.....\n..0..\n.....\n..0..\n\nHBarrier -\nred\n.....\n.....\n0.0.0\n.....\n.....\n\nHVBarrier +\nred\n..0..\n.....\n0.0.0\n.....\n..0..\n\nCollectable *\norange\n.....\n..0..\n.000.\n..0..\n.....\n\nStarSpawn S\ngray\n.....\n..0..\n.000.\n..0..\n.....\n\n=======\nLEGEND\n=======\n\nBarrier = HBarrier or VBarrier or HVBarrier\n\nPlayer = Head\n\n. = Background\n# = Wall\nP = Player\n\n@ = Player and Target\n\nThing = Wall or Player or Body\n\nworm = head or body\n\n=======\nSOUNDS\n=======\n\ncancel 95340304\nsfx1 78274500\nsfx2 14526700\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nHead, Wall, Body\nstarspawn\nTarget\nT, Barrier, Collectable\ngoodtarget\nbadtarget\n======\nRULES\n======\n\n[badtarget]->[]\n[goodtarget]->[]\n[ > Head | Barrier ] -> cancel\n\n[ > Head | No Thing ] -> [ Body | Head ]\n\n[ > Head | Wall ] [ Body ] -> [ > Head | Wall ] [ < Body ]\n\n[ > Body | Wall ] -> cancel\n\n[ Wall | > Head | Wall ] -> cancel\n\n[ | > Head | Wall ] -> [ T | Head | Wall ]\n\nlate [ T Body ] -> cancel\nlate [ T ] -> [ Body ]\n\nlate [ Collectable Worm ] -> [ Worm ] Sfx1\n\nlate [Starspawn] -> [Starspawn Collectable]\nlate [ worm no target ] [Starspawn Collectable] -> [ worm] [Starspawn]\nlate [ target no worm ] [Starspawn Collectable] -> [ target ] [Starspawn]\n\nlate [starspawn collectable ]->[collectable] sfx2\n\nlate [collectable] [target]->[collectable] []\nlate [collectable] [goodtarget]->[collectable] []\nlate [collectable] [badtarget]->[collectable] []\n\nlate [ worm target ] -> [ worm target goodtarget ]\nlate [ worm no target ] [ target] -> [worm] [target badtarget]\n\n==============\nWINCONDITIONS\n==============\n\nNo Collectable\nno starspawn\n\n=======\nLEVELS\n=======\n\nMessage 1 of 8\n\n#################\n#...............#\n#...............#\n#.......P.......#\n#...............#\n#...............#\n#......*.*......#\n#...............#\n#......*.*......#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\nMessage 2 of 8\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#......@//......#\n#....../S/......#\n#......///......#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\nMessage 3 of 8\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#...../.P.......#\n#...../S........#\n#.....///#......#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\nMessage 4 of 8\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#.......P.///...#\n#........./S/...#\n#........#///...#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\n\nMessage 5 of 8\n\n#################\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.*.......#\n#.....|....P....#\n#.....|.........#\n#..*..|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#################\n\nMessage 6 of 8\n\n#################\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|....P....#\n#.....|.........#\n#..*..|#........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#.....|.........#\n#################\n\nMessage 7 of 8\n###################\n#+---------------+#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.p.......|#\n#|.....|.........|#\n#|..*.#|....#....|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#|.....|.........|#\n#+---------------+#\n###################\n\n\nMessage 8 of 8\n\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#.......S.......#\n#.....///...#...#\n#...../.@////...#\n#.....///..//...#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n",[3,0,1,1,1,1,2,2,2,1,1,2,3,3,0,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,background:1,1,\n1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,background collectable:2,\n1,1,1,1,0,0,1,1,1,1,1,1,1,background body:3,3,1,1,\n1,0,0,1,1,1,1,3,3,3,3,3,1,1,1,0,0,\nbackground vbarrier:4,4,4,4,background body vbarrier:5,4,4,5,5,4,4,4,0,0,1,1,1,\n1,3,1,1,3,1,1,1,1,0,0,1,1,1,1,3,3,\n1,3,1,1,1,1,0,0,1,1,1,1,3,3,1,3,1,\n1,1,1,0,0,1,1,1,1,1,1,1,3,1,1,1,1,\n0,0,1,1,1,1,1,1,1,3,1,1,1,1,0,0,1,\n1,1,1,1,1,1,3,1,1,1,1,0,0,1,1,1,1,\n1,1,1,3,1,1,1,1,0,0,1,1,1,1,1,1,1,\n3,1,1,1,1,0,0,1,1,1,1,1,1,1,background head:6,1,1,\n1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",9,"1627888950120.6284"] ], [ `increpare game: happy kraken`, - ["\n(\n\tSteps: \n \t- correctly draw selected hand\n \t- move selected hand and \n - move hand and create correct snake behind it\n \t- propagate power along arms at the start of each turn (as a late evaluation?)\n\t\t- action to select hand\n)\n\ntitle Hungry Kraken\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnorepeat_action\n\nverbose_logging\n\n========\nOBJECTS\n========\n\ndarkbrown 1\ndarkbrown\n\nbrown 2\nbrown\n\nwhite 3\nwhite\n\nred 4\nred\n\ngray 5\ngray\n\ndarkgray 6\ndarkgray\n\nblue 7\nblue\n\nblack 8\nblack\n\nBackground \ndarkblue black\n00000\n00000\n00000\n00000\n00000\n\nblackwall +\nblack\n\ntopbrownWall =\ndarkbrown brown\n11111\n01000\n00000\n00010\n00000\n\n\nbrownWall \ndarkBROWN brown\n00000\n01000\n00000\n00010\n00000\n\nSelected\nred\n\nActivate\npurple\n\nNutrient E\ngreen\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nPlant P\ngray darkgray\n.000.\n01010\n01010\n.000.\n.111.\n\nFish *\ngray blue\n.....\n..0.0\n.010.\n..0.0\n.....\n\nMouth M\nred grey\n.....\n.....\n..0..\n.000.\n.000.\n\nBody \ngray white red red gray\n02120\n02120\n04440\n01310\n00000\n\nSHandU\nwhite yellow black\n.111.\n10001\n10101\n10101\n10101\n\nSHandD\nwhite yellow black\n10101\n10101\n10101\n10001\n.111.\n\nSHandL\nwhite yellow black\n.1111\n10000\n10111\n10000\n.1111\n\nSHandR\nwhite yellow black\n1111.\n00001\n11101\n00001\n1111.\n\n\n\nHandU\nwhite gray black\n.111.\n10001\n10101\n10101\n10101\n\nHandD\nwhite gray black\n10101\n10101\n10101\n10001\n.111.\n\nHandL\nwhite gray black\n.1111\n10000\n10111\n10000\n.1111\n\nHandR\nwhite gray black\n1111.\n00001\n11101\n00001\n1111.\n\n\n\nIHandU\ntransparent yellow black\n.111.\n10001\n10101\n10101\n22222\n\nIHandD\ntransparent yellow black\n22222\n10101\n10101\n10001\n.111.\n\nIHandL\ntransparent yellow black\n.1112\n10002\n10112\n10002\n.1112\n\nIHandR\ntransparent yellow black\n2111.\n20001\n21101\n20001\n2111.\n\n\n\nArmH \ngray white\n.....\n00000\n11111\n00000\n.....\n\nArmV \ngray white\n.010.\n.010.\n.010.\n.010.\n.010.\n\nArmDR\ngray white\n.....\n...00\n..011\n.0100\n.010.\n\nArmDL\ngray white\n.....\n00...\n110..\n0010.\n.010.\n\nArmUR\ngray white\n.010.\n.0100\n..011\n...00\n.....\n\nArmUL\ngray white\n.010.\n0010.\n110..\n00...\n.....\n\n\n\n\nIArmH \nblack transparent\n.....\n00000\n11111\n00000\n.....\n\nIArmV \nblack transparent\n.010.\n.010.\n.010.\n.010.\n.010.\n\nIArmDR\nblack transparent\n.....\n.0000\n.0111\n.0100\n.010.\n\nIArmDL\nblack transparent\n.....\n0000.\n1110.\n0010.\n.010.\n\nIArmUR\nblack transparent\n.010.\n.0100\n.0111\n.0000\n.....\n\nIArmUL\nblack transparent\n.010.\n0010.\n1110.\n0000.\n.....\n\nT1\nred\n\nT_Slurp\nblue\n\nT_Grow\nyellow\n\nT_HandExtendToken\ngray\n\nT_Nutrient\npurple\n\nMARKER\nyellow yellow\n11111\n1...1\n1...1\n1...1\n11111\n\n=======\nLEGEND\n=======\n\nFood = Fish or Plant \nSelectedHand = SHandU or SHandD or SHandL or SHandR\nActiveHand = HandU or HandD or HandL or HandR\nInactiveHand = IHandU or IHandD or IHandL or IHandR\n\nOtherHand = ActiveHand\n\nHand = ActiveHand or InactiveHand or SelectedHand\n\nActiveArm = ArmH or ArmV or ArmDR or ArmDL or ArmUR or ArmUL or ArmDR or ArmDL\nInactiveArm = IArmH or IArmV or IArmDR or IArmDL or IArmUR or IArmUL or IArmDR or IArmDL\nArm = ActiveArm or InactiveArm\n\n\nNBArmOpening_U = ArmV or ArmUR or ArmUL\nNBArmOpening_D = ArmV or ArmDR or ArmDL\nNBArmOpening_R = ArmH or ArmDR or ArmUR \nNBArmOpening_L = ArmH or ArmDL or ArmUL \n\nArmOpening_U = ArmV or ArmUR or ArmUL\nArmOpening_D = ArmV or ArmDR or ArmDL\nArmOpening_R = ArmH or ArmDR or ArmUR or Body\nArmOpening_L = ArmH or ArmDL or ArmUL or Body\n\nOpening_D = HandD or ArmV or ArmDR or ArmDL\nOpening_U = HandU or ArmV or ArmUR or ArmUL\nOpening_L = HandR or ArmH or ArmDL or ArmUL or BODY\nOpening_R = HandL or ArmH or ArmDR or ArmUR or Body\n\nLimb = Hand or Arm or Body\n\n. = Background\n# = brownWall\n\nB = Body\nU = HandU\nD = HandD\nL = HandL\nR = HandR\n\n| = ArmV\n- = ArmH\n┌ = ArmDR \n┐ = ArmDL\n└ = ArmUR\n┘ = ArmUL\n\n_ = IArmH\n\nS = SHandL\n\nwall = brownwall or blackwall or topbrownwall\n\nPlayer = SHandU or SHandD or SHandL or SHandR \n\nPushable = Hand or Arm or Food or Plant or Nutrient\n\nObstacle = Body or Wall\n\nOtherhandAction = T_Slurp or T_Grow\n\nFallable = Plant\n\nthing = limb or wall or plant or fish or Nutrient\n\n=======\nSOUNDS\n=======\n\nsfx1 63819707\nsfx2 63819707\nsfx3 68238307\ncancel 20601507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSelected\nActivate \nM\nWall, blackwall, Limb, Food, Plant\nNutrient\nT1\nT_Slurp\nT_Grow\nT_HandExtendToken\nT_Nutrient\nMarker\n1,2,3,4,5,6,7,8\n\n======\nRULES \n====== \n\ndown [ no wall | wall ] -> [ | topbrownwall ] \n(nutrient gobbling with selected hand)\n\nUp [ > SHandU | Nutrient ] -> [ ArmV | SHandU ]\nUp [ > SHandR | Nutrient ] -> [ ArmUL | SHandU ]\nUp [ > SHandL | Nutrient ] -> [ ArmUR | SHandU ]\n\nDown [ > SHandD | Nutrient ] -> [ ArmV | SHandD ]\nDown [ > SHandR | Nutrient ] -> [ ArmDL | SHandD ]\nDown [ > SHandL | Nutrient ] -> [ ArmDR | SHandD ]\n\nRight [ > SHandR | Nutrient ] -> [ ArmH | SHandR ]\nRight [ > SHandU | Nutrient ] -> [ ArmDR | SHandR ]\nRight [ > SHandD | Nutrient ] -> [ ArmUR | SHandR ]\n\nLeft [ > SHandL | Nutrient ] -> [ ArmH | SHandL ]\nLeft [ > SHandU | Nutrient ] -> [ ArmDL | SHandL ]\nLeft [ > SHandD | Nutrient ] -> [ ArmUL | SHandL ]\n\n\nup [ food mouth ] [ HandU | thing ] -> [ mouth ] [ HandU | > thing ]\ndown [ food mouth ] [ HandD | thing ] -> [ mouth ] [ HandD | > thing ]\nleft [ food mouth ] [ HandL | thing ] -> [ mouth ] [ HandL | > thing ]\nright [ food mouth ] [ HandR | thing ] -> [ mouth ] [ HandR | > thing ]\n\nup [ food mouth ] [ HandU | no thing ] -> [ mouth ] [ ArmV | HandU ] sfx2\ndown [ food mouth ] [ HandD | no thing ] -> [ mouth ] [ ArmV | HandD ] sfx2\nleft [ food mouth ] [ HandL | no thing ] -> [ mouth ] [ ArmH | HandL ] sfx2\nright [ food mouth ] [ HandR | no thing ] -> [ mouth ] [ ArmH | HandR ] sfx2\n\n\n(tell other hand whether to slurp or grow)\n\n[ moving SHandU ] [ stationary Hand ] -> [ moving SHandU ] [ T_Slurp Hand ]\n(override above)\n[ down SHandU ] [ Stationary Hand ] -> [ down SHandU ] [ T_Grow no T_Slurp Hand ]\n\n[ moving SHandD ] [ stationary Hand ] -> [ moving SHandD ] [ T_Slurp Hand ]\n(override above)\n[ up SHandD ] [ Stationary Hand ] -> [ up SHandD ] [ T_Grow no T_Slurp Hand ]\n\n[ moving SHandL ] [ stationary Hand ] -> [ moving SHandL ] [ T_Slurp Hand ]\n(override above)\n [ right SHandL ] [ Stationary Hand ] -> [ right SHandL ] [ T_Grow no T_Slurp Hand ]\n\n[ moving SHandR ] [ stationary Hand ] -> [ moving SHandR ] [ T_Slurp Hand ]\n(override above)\n[ left SHandR ] [ Stationary Hand ] -> [ left SHandR ] [ T_Grow no T_Slurp Hand ]\n\n[ T_Slurp ] [ SelectedHand ] -> [ T_Slurp ] [ SelectedHand T_HandExtendToken ]\n[ > SelectedHand T_HandExtendToken ] -> [ > SelectedHand > T_HandExtendToken ]\n\n(nutrient gobbling with off-hand)\n\nUp [T_Grow] [ HandU | Nutrient ] [moving player] -> [] [ ArmV | HandU ] [player]\n\nDown [T_Grow] [ HandD | Nutrient ] [moving player] -> [] [ ArmV | HandD ] [player]\n\nRight [T_Grow] [ HandR | Nutrient ] [moving player] -> [] [ ArmH | HandR ] [player]\n\nLeft [T_Grow] [ HandL | Nutrient ] [moving player] -> [] [ ArmH | HandL ] [player]\n\n(mark hand action with direction hand moved from here)\n[ moving OtherHand OtherHandAction ] -> [ moving OtherHand moving OtherHandAction ]\n\n(swap hands)\n[ action SHandU ] [ stationary Hand ] -> [ HandU ] [ T1 Hand] \n[ action SHandD ] [ stationary Hand ] -> [ HandD ] [ T1 Hand] \n[ action SHandL ] [ stationary Hand ] -> [ HandL ] [ T1 Hand] \n[ action SHandR ] [ stationary Hand ] -> [ HandR ] [ T1 Hand] \n\n[T1 HandU] -> [ SHandU]\n[T1 HandD] -> [ SHandD]\n[T1 HandL] -> [ SHandL]\n[T1 HandR] -> [ SHandR]\n\n\n[T_Slurp] [ up SelectedHand ] -> [T_Slurp] [ up SHandU ]\n[T_Slurp] [ down SelectedHand ] -> [T_Slurp] [ down SHandD ]\n[T_Slurp] [ left SelectedHand ] -> [T_Slurp] [ left SHandL ]\n[T_Slurp] [ right SelectedHand ] -> [T_Slurp] [ right SHandR ]\n\n\n(you can't retract into your body)\nup [T_Grow] [ up SelectedHand | Body ] -> cancel\ndown [T_Grow] [ down SelectedHand | Body ] -> cancel\nleft [T_Grow] [ left SelectedHand | Body ] -> cancel\nright [T_Grow] [ right SelectedHand | Body ] -> cancel\n\n(you can't grow if the other hand is beside the body)\nright [ T_Slurp HandL | Body ] -> cancel\nleft [ T_Slurp HandR | Body ] -> cancel\n\n(retracting the active hand)\n\nup [T_Grow] [ up SelectedHand | Opening_L ] -> [T_Grow] [ | SHandR]\nup [T_Grow] [ up SelectedHand | Opening_U ] -> [T_Grow] [ | SHandD]\nup [T_Grow] [ up SelectedHand | Opening_R ] -> [T_Grow] [ | SHandL]\n\ndown [T_Grow] [ down SelectedHand | Opening_L ] -> [T_Grow] [ | SHandR]\ndown [T_Grow] [ down SelectedHand | Opening_R ] -> [T_Grow] [ | SHandL]\ndown [T_Grow] [ down SelectedHand | Opening_D ] -> [T_Grow] [ | SHandU]\n\nleft [T_Grow] [ left SelectedHand | Opening_L ] -> [T_Grow] [ | SHandR]\nleft [T_Grow] [ left SelectedHand | Opening_U ] -> [T_Grow] [ | SHandD]\nleft [T_Grow] [ left SelectedHand | Opening_D ] -> [T_Grow] [ | SHandU]\n\nright [T_Grow] [ right SelectedHand | Opening_U ] -> [T_Grow] [ | SHandD]\nright [T_Grow] [ right SelectedHand | Opening_R ] -> [T_Grow] [ | SHandL]\nright [T_Grow] [ right SelectedHand | Opening_D ] -> [T_Grow] [ | SHandU]\n\nup [ T_Grow HandU ] -> [ T_Grow up HandU ]\nup [ T_Grow HandD ] -> [ T_Grow down HandD ]\nup [ T_Grow HandL ] -> [ T_Grow left HandL ]\nup [ T_Grow HandR ] -> [ T_Grow right HandR ]\n\n(slurp other hand)\n\ndown [T_Slurp HandU | ] -> [ | up T_Slurp ]\nup [T_Slurp HandD | ] -> [ | down T_Slurp ]\nleft [T_Slurp HandR | ] -> [ | right T_Slurp ]\nright [T_Slurp HandL | ] -> [ | left T_Slurp ]\n\ndown [ up T_slurp | ArmOpening_U ] -> [ HandU | ArmOpening_U ]\nleft [ up T_Slurp | ArmOpening_R ] -> [ HandR | ArmOpening_R ]\nright [ up T_Slurp | ArmOpening_L ] -> [ HandL | ArmOpening_L ]\n\nup [ down T_slurp | ArmOpening_D ] -> [ HandD | ArmOpening_D ]\nleft [ down T_Slurp | ArmOpening_R ] -> [ HandR | ArmOpening_R ]\nright [ down T_Slurp | ArmOpening_L ] -> [ HandL | ArmOpening_L ]\n\nleft [ right T_slurp | ArmOpening_r ] -> [ HandR | ArmOpening_R ]\nup [ right T_slurp | ArmOpening_D ] -> [ HandD | ArmOpening_D ]\ndown [ right T_slurp | ArmOpening_U ] -> [ HandU | ArmOpening_U ]\n\n\nright [ left T_slurp | ArmOpening_l ] -> [ HandL | ArmOpening_L ]\nup [ left T_slurp | ArmOpening_D ] -> [ HandD | ArmOpening_D ]\ndown [ left T_slurp | ArmOpening_U ] -> [ HandU | ArmOpening_U ]\n\n(propagate movements)\n\n\n[ > Pushable | Pushable ] -> [ > Pushable | > Pushable ]\n\n[ > Pushable | Limb ] -> cancel\n\n[ > Pushable | Obstacle ] -> cancel\n\n[ > fish ] -> [ > fish] sfx3\n[ > plant ] -> [ > plant] sfx3\n\n[ no T_Grow > Pushable | no Pushable ] -> [ | Pushable ]\n+ right [ T_Grow right Pushable | no Pushable ] -> [ ArmH | Pushable ]\n+ left [ T_Grow left Pushable | no Pushable ] -> [ ArmH | Pushable ]\n+ up [ T_Grow up Pushable | no Pushable ] -> [ ArmV | Pushable ]\n+ down [ T_Grow down Pushable | no Pushable ] -> [ ArmV | Pushable ]\n\n\n(growing the selected hand, getting arm to match up)\n\nright [ up T_HandExtendToken | ArmOpening_L ] -> [ ArmUR | ArmOpening_L ]\nleft [ up T_HandExtendToken | ArmOpening_R ] -> [ ArmUL | ArmOpening_R ]\ndown [ up T_HandExtendToken | ArmOpening_U ] -> [ ArmV | ArmOpening_U ]\n\nright [ down T_HandExtendToken | ArmOpening_L ] -> [ ArmDR | ArmOpening_L ]\nleft [ down T_HandExtendToken | ArmOpening_R ] -> [ ArmDL | ArmOpening_R ]\nup [ down T_HandExtendToken | ArmOpening_D ] -> [ ArmV | ArmOpening_D ]\n\nright [ left T_HandExtendToken | ArmOpening_L ] -> [ ArmH | ArmOpening_L ]\nup [ left T_HandExtendToken | ArmOpening_D ] -> [ ArmUL | ArmOpening_D ]\ndown [ left T_HandExtendToken | ArmOpening_U ] -> [ ArmDL | ArmOpening_U ]\n\nup [ right T_HandExtendToken | ArmOpening_D ] -> [ ArmUR | ArmOpening_D ]\nleft [ right T_HandExtendToken | ArmOpening_R ] -> [ ArmH | ArmOpening_R ]\ndown [ right T_HandExtendToken | ArmOpening_U ] -> [ ArmDR | ArmOpening_U ]\n\n\nrandom down [ Fallable | no thing ] -> [ | Fallable ] sfx1 again\n\n\n[ moving Pushable ] -> [ Pushable ]\n[T_Slurp]->[]\n[T_Grow]->[]\n[T_HandExtendToken]->[]\n[ Food Mouth ] -> again\n\n==============\nWINCONDITIONS\n==============\n\nno Food \nsome body\n\n======= \nLEVELS\n=======\n\nMessage press X to switch tentacles\n\n++++++++++++++++++++++++\n+.........P............+\n+.........P............+\n+.........P............+\n+.........P............+\n+.........P............+\n+.........P............+\n+.........P............+\n+.........#............+\n+......................+\n+...P..................+\n+...#.......*..........+\n+...#..P....#..........+\n+...##.#.*.M#..........+\n+.......S--B--R........+\n+..........*...........+\n+......................+\n+.........#*#..........+\n+......................+\n+....................*.+\n+......................+\n+................P.....+\n+................#.....+\n+................#.....+\n+######################+\n\nMessage NOM NOM NOM\n\n...........................\n.....55..555...............\n....555.55555..............\n...5....55555........555...\n...5.....555...6...555.55..\n..5......666.6666.55....55.\n..5..........676..55.....5.\n..5...........66.........5.\n..5........44............5.\n..5........444..........55.\n..5.........44..........5..\n...5........44..........5..\n...55.....54445.......55...\n....55...5544455....555....\n.....5...55444555..55......\n......5555555555555........\n.........55355355..........\n.........55555555.....1111.\n111........5555.......11111\n111111.........1.1111111111\n1111111111...11111111111111\n111888181818811881881188111\n111181188818111811818181811\n111181181818811881818188111\n111111111111111111111111111\n", [0, 3, 3, 1, 2, 3, 0, 3, 0, 0, 3, 2, 2, 1, 1, 0, 1, 3, 2, 3, 2], "background blackwall: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,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,background topbrownwall:2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,2,0,1,1,1,1,1,1,1,1,1,background plant:3,2,background brownwall:4,4,1,1,1,1,1,1,\n1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,\n1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,3,2,0,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,\n1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,background shandl:5,\n1,1,1,1,1,1,1,1,1,2,0,3,3,3,3,3,3,3,2,1,1,1,1,1,\narmh background:6,1,1,2,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,\nbackground mouth:7,background body:8,background fish:9,1,9,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,9,\n2,4,6,1,1,2,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,\n1,1,1,6,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,6,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,background handr:10,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,4,4,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,1,1,1,1,2,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,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,\n", 1, "1627888997152.3042"] +["\n(\n\tSteps: \n \t- correctly draw selected hand\n \t- move selected hand and \n - move hand and create correct snake behind it\n \t- propagate power along arms at the start of each turn (as a late evaluation?)\n\t\t- action to select hand\n)\n\ntitle Hungry Kraken\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnorepeat_action\n\nverbose_logging\n\n========\nOBJECTS\n========\n\ndarkbrown 1\ndarkbrown\n\nbrown 2\nbrown\n\nwhite 3\nwhite\n\nred 4\nred\n\ngray 5\ngray\n\ndarkgray 6\ndarkgray\n\nblue 7\nblue\n\nblack 8\nblack\n\nBackground \ndarkblue black\n00000\n00000\n00000\n00000\n00000\n\nblackwall +\nblack\n\ntopbrownWall =\ndarkbrown brown\n11111\n01000\n00000\n00010\n00000\n\n\nbrownWall \ndarkBROWN brown\n00000\n01000\n00000\n00010\n00000\n\nSelected\nred\n\nActivate\npurple\n\nNutrient E\ngreen\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nPlant P\ngray darkgray\n.000.\n01010\n01010\n.000.\n.111.\n\nFish *\ngray blue\n.....\n..0.0\n.010.\n..0.0\n.....\n\nMouth M\nred grey\n.....\n.....\n..0..\n.000.\n.000.\n\nBody \ngray white red red gray\n02120\n02120\n04440\n01310\n00000\n\nSHandU\nwhite yellow black\n.111.\n10001\n10101\n10101\n10101\n\nSHandD\nwhite yellow black\n10101\n10101\n10101\n10001\n.111.\n\nSHandL\nwhite yellow black\n.1111\n10000\n10111\n10000\n.1111\n\nSHandR\nwhite yellow black\n1111.\n00001\n11101\n00001\n1111.\n\n\n\nHandU\nwhite gray black\n.111.\n10001\n10101\n10101\n10101\n\nHandD\nwhite gray black\n10101\n10101\n10101\n10001\n.111.\n\nHandL\nwhite gray black\n.1111\n10000\n10111\n10000\n.1111\n\nHandR\nwhite gray black\n1111.\n00001\n11101\n00001\n1111.\n\n\n\nIHandU\ntransparent yellow black\n.111.\n10001\n10101\n10101\n22222\n\nIHandD\ntransparent yellow black\n22222\n10101\n10101\n10001\n.111.\n\nIHandL\ntransparent yellow black\n.1112\n10002\n10112\n10002\n.1112\n\nIHandR\ntransparent yellow black\n2111.\n20001\n21101\n20001\n2111.\n\n\n\nArmH \ngray white\n.....\n00000\n11111\n00000\n.....\n\nArmV \ngray white\n.010.\n.010.\n.010.\n.010.\n.010.\n\nArmDR\ngray white\n.....\n...00\n..011\n.0100\n.010.\n\nArmDL\ngray white\n.....\n00...\n110..\n0010.\n.010.\n\nArmUR\ngray white\n.010.\n.0100\n..011\n...00\n.....\n\nArmUL\ngray white\n.010.\n0010.\n110..\n00...\n.....\n\n\n\n\nIArmH \nblack transparent\n.....\n00000\n11111\n00000\n.....\n\nIArmV \nblack transparent\n.010.\n.010.\n.010.\n.010.\n.010.\n\nIArmDR\nblack transparent\n.....\n.0000\n.0111\n.0100\n.010.\n\nIArmDL\nblack transparent\n.....\n0000.\n1110.\n0010.\n.010.\n\nIArmUR\nblack transparent\n.010.\n.0100\n.0111\n.0000\n.....\n\nIArmUL\nblack transparent\n.010.\n0010.\n1110.\n0000.\n.....\n\nT1\nred\n\nT_Slurp\nblue\n\nT_Grow\nyellow\n\nT_HandExtendToken\ngray\n\nT_Nutrient\npurple\n\nMARKER\nyellow yellow\n11111\n1...1\n1...1\n1...1\n11111\n\n=======\nLEGEND\n=======\n\nFood = Fish or Plant \nSelectedHand = SHandU or SHandD or SHandL or SHandR\nActiveHand = HandU or HandD or HandL or HandR\nInactiveHand = IHandU or IHandD or IHandL or IHandR\n\nOtherHand = ActiveHand\n\nHand = ActiveHand or InactiveHand or SelectedHand\n\nActiveArm = ArmH or ArmV or ArmDR or ArmDL or ArmUR or ArmUL or ArmDR or ArmDL\nInactiveArm = IArmH or IArmV or IArmDR or IArmDL or IArmUR or IArmUL or IArmDR or IArmDL\nArm = ActiveArm or InactiveArm\n\n\nNBArmOpening_U = ArmV or ArmUR or ArmUL\nNBArmOpening_D = ArmV or ArmDR or ArmDL\nNBArmOpening_R = ArmH or ArmDR or ArmUR \nNBArmOpening_L = ArmH or ArmDL or ArmUL \n\nArmOpening_U = ArmV or ArmUR or ArmUL\nArmOpening_D = ArmV or ArmDR or ArmDL\nArmOpening_R = ArmH or ArmDR or ArmUR or Body\nArmOpening_L = ArmH or ArmDL or ArmUL or Body\n\nOpening_D = HandD or ArmV or ArmDR or ArmDL\nOpening_U = HandU or ArmV or ArmUR or ArmUL\nOpening_L = HandR or ArmH or ArmDL or ArmUL or BODY\nOpening_R = HandL or ArmH or ArmDR or ArmUR or Body\n\nLimb = Hand or Arm or Body\n\n. = Background\n# = brownWall\n\nB = Body\nU = HandU\nD = HandD\nL = HandL\nR = HandR\n\n| = ArmV\n- = ArmH\n┌ = ArmDR \n┐ = ArmDL\n└ = ArmUR\n┘ = ArmUL\n\n_ = IArmH\n\nS = SHandL\n\nwall = brownwall or blackwall or topbrownwall\n\nPlayer = SHandU or SHandD or SHandL or SHandR \n\nPushable = Hand or Arm or Food or Plant or Nutrient\n\nObstacle = Body or Wall\n\nOtherhandAction = T_Slurp or T_Grow\n\nFallable = Plant\n\nthing = limb or wall or plant or fish or Nutrient\n\n=======\nSOUNDS\n=======\n\nsfx1 63819707\nsfx2 63819707\nsfx3 68238307\ncancel 20601507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSelected\nActivate \nM\nWall, blackwall, Limb, Food, Plant\nNutrient\nT1\nT_Slurp\nT_Grow\nT_HandExtendToken\nT_Nutrient\nMarker\n1,2,3,4,5,6,7,8\n\n======\nRULES \n====== \n\ndown [ no wall | wall ] -> [ | topbrownwall ] \n(nutrient gobbling with selected hand)\n\nUp [ > SHandU | Nutrient ] -> [ ArmV | SHandU ]\nUp [ > SHandR | Nutrient ] -> [ ArmUL | SHandU ]\nUp [ > SHandL | Nutrient ] -> [ ArmUR | SHandU ]\n\nDown [ > SHandD | Nutrient ] -> [ ArmV | SHandD ]\nDown [ > SHandR | Nutrient ] -> [ ArmDL | SHandD ]\nDown [ > SHandL | Nutrient ] -> [ ArmDR | SHandD ]\n\nRight [ > SHandR | Nutrient ] -> [ ArmH | SHandR ]\nRight [ > SHandU | Nutrient ] -> [ ArmDR | SHandR ]\nRight [ > SHandD | Nutrient ] -> [ ArmUR | SHandR ]\n\nLeft [ > SHandL | Nutrient ] -> [ ArmH | SHandL ]\nLeft [ > SHandU | Nutrient ] -> [ ArmDL | SHandL ]\nLeft [ > SHandD | Nutrient ] -> [ ArmUL | SHandL ]\n\n\nup [ food mouth ] [ HandU | thing ] -> [ mouth ] [ HandU | > thing ]\ndown [ food mouth ] [ HandD | thing ] -> [ mouth ] [ HandD | > thing ]\nleft [ food mouth ] [ HandL | thing ] -> [ mouth ] [ HandL | > thing ]\nright [ food mouth ] [ HandR | thing ] -> [ mouth ] [ HandR | > thing ]\n\nup [ food mouth ] [ HandU | no thing ] -> [ mouth ] [ ArmV | HandU ] sfx2\ndown [ food mouth ] [ HandD | no thing ] -> [ mouth ] [ ArmV | HandD ] sfx2\nleft [ food mouth ] [ HandL | no thing ] -> [ mouth ] [ ArmH | HandL ] sfx2\nright [ food mouth ] [ HandR | no thing ] -> [ mouth ] [ ArmH | HandR ] sfx2\n\n\n(tell other hand whether to slurp or grow)\n\n[ moving SHandU ] [ stationary Hand ] -> [ moving SHandU ] [ T_Slurp Hand ]\n(override above)\n[ down SHandU ] [ Stationary Hand ] -> [ down SHandU ] [ T_Grow no T_Slurp Hand ]\n\n[ moving SHandD ] [ stationary Hand ] -> [ moving SHandD ] [ T_Slurp Hand ]\n(override above)\n[ up SHandD ] [ Stationary Hand ] -> [ up SHandD ] [ T_Grow no T_Slurp Hand ]\n\n[ moving SHandL ] [ stationary Hand ] -> [ moving SHandL ] [ T_Slurp Hand ]\n(override above)\n [ right SHandL ] [ Stationary Hand ] -> [ right SHandL ] [ T_Grow no T_Slurp Hand ]\n\n[ moving SHandR ] [ stationary Hand ] -> [ moving SHandR ] [ T_Slurp Hand ]\n(override above)\n[ left SHandR ] [ Stationary Hand ] -> [ left SHandR ] [ T_Grow no T_Slurp Hand ]\n\n[ T_Slurp ] [ SelectedHand ] -> [ T_Slurp ] [ SelectedHand T_HandExtendToken ]\n[ > SelectedHand T_HandExtendToken ] -> [ > SelectedHand > T_HandExtendToken ]\n\n(nutrient gobbling with off-hand)\n\nUp [T_Grow] [ HandU | Nutrient ] [moving player] -> [] [ ArmV | HandU ] [player]\n\nDown [T_Grow] [ HandD | Nutrient ] [moving player] -> [] [ ArmV | HandD ] [player]\n\nRight [T_Grow] [ HandR | Nutrient ] [moving player] -> [] [ ArmH | HandR ] [player]\n\nLeft [T_Grow] [ HandL | Nutrient ] [moving player] -> [] [ ArmH | HandL ] [player]\n\n(mark hand action with direction hand moved from here)\n[ moving OtherHand OtherHandAction ] -> [ moving OtherHand moving OtherHandAction ]\n\n(swap hands)\n[ action SHandU ] [ stationary Hand ] -> [ HandU ] [ T1 Hand] \n[ action SHandD ] [ stationary Hand ] -> [ HandD ] [ T1 Hand] \n[ action SHandL ] [ stationary Hand ] -> [ HandL ] [ T1 Hand] \n[ action SHandR ] [ stationary Hand ] -> [ HandR ] [ T1 Hand] \n\n[T1 HandU] -> [ SHandU]\n[T1 HandD] -> [ SHandD]\n[T1 HandL] -> [ SHandL]\n[T1 HandR] -> [ SHandR]\n\n\n[T_Slurp] [ up SelectedHand ] -> [T_Slurp] [ up SHandU ]\n[T_Slurp] [ down SelectedHand ] -> [T_Slurp] [ down SHandD ]\n[T_Slurp] [ left SelectedHand ] -> [T_Slurp] [ left SHandL ]\n[T_Slurp] [ right SelectedHand ] -> [T_Slurp] [ right SHandR ]\n\n\n(you can't retract into your body)\nup [T_Grow] [ up SelectedHand | Body ] -> cancel\ndown [T_Grow] [ down SelectedHand | Body ] -> cancel\nleft [T_Grow] [ left SelectedHand | Body ] -> cancel\nright [T_Grow] [ right SelectedHand | Body ] -> cancel\n\n(you can't grow if the other hand is beside the body)\nright [ T_Slurp HandL | Body ] -> cancel\nleft [ T_Slurp HandR | Body ] -> cancel\n\n(retracting the active hand)\n\nup [T_Grow] [ up SelectedHand | Opening_L ] -> [T_Grow] [ | SHandR]\nup [T_Grow] [ up SelectedHand | Opening_U ] -> [T_Grow] [ | SHandD]\nup [T_Grow] [ up SelectedHand | Opening_R ] -> [T_Grow] [ | SHandL]\n\ndown [T_Grow] [ down SelectedHand | Opening_L ] -> [T_Grow] [ | SHandR]\ndown [T_Grow] [ down SelectedHand | Opening_R ] -> [T_Grow] [ | SHandL]\ndown [T_Grow] [ down SelectedHand | Opening_D ] -> [T_Grow] [ | SHandU]\n\nleft [T_Grow] [ left SelectedHand | Opening_L ] -> [T_Grow] [ | SHandR]\nleft [T_Grow] [ left SelectedHand | Opening_U ] -> [T_Grow] [ | SHandD]\nleft [T_Grow] [ left SelectedHand | Opening_D ] -> [T_Grow] [ | SHandU]\n\nright [T_Grow] [ right SelectedHand | Opening_U ] -> [T_Grow] [ | SHandD]\nright [T_Grow] [ right SelectedHand | Opening_R ] -> [T_Grow] [ | SHandL]\nright [T_Grow] [ right SelectedHand | Opening_D ] -> [T_Grow] [ | SHandU]\n\nup [ T_Grow HandU ] -> [ T_Grow up HandU ]\nup [ T_Grow HandD ] -> [ T_Grow down HandD ]\nup [ T_Grow HandL ] -> [ T_Grow left HandL ]\nup [ T_Grow HandR ] -> [ T_Grow right HandR ]\n\n(slurp other hand)\n\ndown [T_Slurp HandU | ] -> [ | up T_Slurp ]\nup [T_Slurp HandD | ] -> [ | down T_Slurp ]\nleft [T_Slurp HandR | ] -> [ | right T_Slurp ]\nright [T_Slurp HandL | ] -> [ | left T_Slurp ]\n\ndown [ up T_slurp | ArmOpening_U ] -> [ HandU | ArmOpening_U ]\nleft [ up T_Slurp | ArmOpening_R ] -> [ HandR | ArmOpening_R ]\nright [ up T_Slurp | ArmOpening_L ] -> [ HandL | ArmOpening_L ]\n\nup [ down T_slurp | ArmOpening_D ] -> [ HandD | ArmOpening_D ]\nleft [ down T_Slurp | ArmOpening_R ] -> [ HandR | ArmOpening_R ]\nright [ down T_Slurp | ArmOpening_L ] -> [ HandL | ArmOpening_L ]\n\nleft [ right T_slurp | ArmOpening_r ] -> [ HandR | ArmOpening_R ]\nup [ right T_slurp | ArmOpening_D ] -> [ HandD | ArmOpening_D ]\ndown [ right T_slurp | ArmOpening_U ] -> [ HandU | ArmOpening_U ]\n\n\nright [ left T_slurp | ArmOpening_l ] -> [ HandL | ArmOpening_L ]\nup [ left T_slurp | ArmOpening_D ] -> [ HandD | ArmOpening_D ]\ndown [ left T_slurp | ArmOpening_U ] -> [ HandU | ArmOpening_U ]\n\n(propagate movements)\n\n\n[ > Pushable | Pushable ] -> [ > Pushable | > Pushable ]\n\n[ > Pushable | Limb ] -> cancel\n\n[ > Pushable | Obstacle ] -> cancel\n\n[ > fish ] -> [ > fish] sfx3\n[ > plant ] -> [ > plant] sfx3\n\n[ no T_Grow > Pushable | no Pushable ] -> [ | Pushable ]\n+ right [ T_Grow right Pushable | no Pushable ] -> [ ArmH | Pushable ]\n+ left [ T_Grow left Pushable | no Pushable ] -> [ ArmH | Pushable ]\n+ up [ T_Grow up Pushable | no Pushable ] -> [ ArmV | Pushable ]\n+ down [ T_Grow down Pushable | no Pushable ] -> [ ArmV | Pushable ]\n\n\n(growing the selected hand, getting arm to match up)\n\nright [ up T_HandExtendToken | ArmOpening_L ] -> [ ArmUR | ArmOpening_L ]\nleft [ up T_HandExtendToken | ArmOpening_R ] -> [ ArmUL | ArmOpening_R ]\ndown [ up T_HandExtendToken | ArmOpening_U ] -> [ ArmV | ArmOpening_U ]\n\nright [ down T_HandExtendToken | ArmOpening_L ] -> [ ArmDR | ArmOpening_L ]\nleft [ down T_HandExtendToken | ArmOpening_R ] -> [ ArmDL | ArmOpening_R ]\nup [ down T_HandExtendToken | ArmOpening_D ] -> [ ArmV | ArmOpening_D ]\n\nright [ left T_HandExtendToken | ArmOpening_L ] -> [ ArmH | ArmOpening_L ]\nup [ left T_HandExtendToken | ArmOpening_D ] -> [ ArmUL | ArmOpening_D ]\ndown [ left T_HandExtendToken | ArmOpening_U ] -> [ ArmDL | ArmOpening_U ]\n\nup [ right T_HandExtendToken | ArmOpening_D ] -> [ ArmUR | ArmOpening_D ]\nleft [ right T_HandExtendToken | ArmOpening_R ] -> [ ArmH | ArmOpening_R ]\ndown [ right T_HandExtendToken | ArmOpening_U ] -> [ ArmDR | ArmOpening_U ]\n\n\nrandom down [ Fallable | no thing ] -> [ | Fallable ] sfx1 again\n\n\n[ moving Pushable ] -> [ Pushable ]\n[T_Slurp]->[]\n[T_Grow]->[]\n[T_HandExtendToken]->[]\n[ Food Mouth ] -> again\n\n==============\nWINCONDITIONS\n==============\n\nno Food \nsome body\n\n======= \nLEVELS\n=======\n\nMessage press X to switch tentacles\n\n++++++++++++++++++++++++\n+.........P............+\n+.........P............+\n+.........P............+\n+.........P............+\n+.........P............+\n+.........P............+\n+.........P............+\n+.........#............+\n+......................+\n+...P..................+\n+...#.......*..........+\n+...#..P....#..........+\n+...##.#.*.M#..........+\n+.......S--B--R........+\n+..........*...........+\n+......................+\n+.........#*#..........+\n+......................+\n+....................*.+\n+......................+\n+................P.....+\n+................#.....+\n+................#.....+\n+######################+\n\nMessage NOM NOM NOM\n\n...........................\n.....55..555...............\n....555.55555..............\n...5....55555........555...\n...5.....555...6...555.55..\n..5......666.6666.55....55.\n..5..........676..55.....5.\n..5...........66.........5.\n..5........44............5.\n..5........444..........55.\n..5.........44..........5..\n...5........44..........5..\n...55.....54445.......55...\n....55...5544455....555....\n.....5...55444555..55......\n......5555555555555........\n.........55355355..........\n.........55555555.....1111.\n111........5555.......11111\n111111.........1.1111111111\n1111111111...11111111111111\n111888181818811881881188111\n111181188818111811818181811\n111181181818811881818188111\n111111111111111111111111111\n",[0,3,3,1,2,3,0,3,0,0,3,2,2,1,1,0,1,3,2,3,2],"background blackwall: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,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,background topbrownwall:2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,2,0,1,1,1,1,1,1,1,1,1,background plant:3,2,background brownwall:4,4,1,1,1,1,1,1,\n1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,\n1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,3,2,0,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,\n1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,background shandl:5,\n1,1,1,1,1,1,1,1,1,2,0,3,3,3,3,3,3,3,2,1,1,1,1,1,\narmh background:6,1,1,2,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,\nbackground mouth:7,background body:8,background fish:9,1,9,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,9,\n2,4,6,1,1,2,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,\n1,1,1,6,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,6,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,background handr:10,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,4,4,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,1,1,1,1,2,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,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,\n",1,"1627888997152.3042"] ], [ `increpare game: match three billiards`, - ["title match three billiards \nauthor increpare\nhomepage www.increpare.com\n\n\nrun_rules_on_level_start\n\ncolor_palette 7\n\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\nhole\nblack\n\ntarget\nlightgreen black\n00000\n01110\n01110\n01110\n00000\n\n\nwallul E\nbrown\n00000\n0000.\n000..\n00...\n0....\n\nwallur R\nbrown\n00000\n.0000\n..000\n...00\n....0\n\nwalldl D\ntransparent brown brown\n20000\n12000\n11200\n11120\n11112\n\nwalldr F\ntransparent brown brown\n00002\n00021\n00211\n02111\n21111\n\nWall\nbrown\n\n\nplayer p\nwhite lightblue lightgray lightgray Blue\n.111.\n.000.\n22222\n.222.\n.1.1.\n\nBody\ndarkbrown\n.000.\n.000.\n.000.\n.000.\n.000.\n\nball\ndarkred darkred darkred\n.000.\n02220\n02220\n02220\n.000.\n\nAU \nred red red\n.000.\n02220\n02220\n02220\n.000.\n\nAD\nred red red\n.000.\n02220\n02220\n02220\n.000.\n\n\nAL\nred red red\n.000.\n02220\n02220\n02220\n.000.\n\n\nAR\nred red red\n.000.\n02220\n02220\n02220\n.000.\n\n\ngood\nyellow yellow yellow\n.000.\n02220\n02220\n02220\n.000.\n\n\n\n\nT\ntransparent\n\n=======\nLEGEND\n=======\n\nwalls = wall or wallul or wallur or walldl or walldr\n. = Background\n# = Wall\nC = ball\n@ = ball and target\nO = target\nArrow = AU or AD or AL or AR \nObstacle = ball or Wall\nblock = T or wall\nh = hole\n$ = ball and hole\ng = target and hole\nk = ball and hole and target\nanyball = ball or arrow\nanyballorgood = anyball or good\n\n=======\nSOUNDS\n=======\n\nsfx0 36772507 (ballmove)\nsfx1 20806902 (action)\nsfx2 44778100 (clink)\nsfx3 17355302 (win)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget\nWall, walls, ball, player\nbody\narrow\nT\nGood\n\n======\nRULES\n======\n\nup [ > player | ball ] -> [ player | AU ] sfx0\ndown [ > player | ball ] -> [ player | AD ] sfx0\nleft [ > player | ball ] -> [ player | AL ] sfx0\nright [ > player | ball ] -> [ player | AR ] sfx0\n \n\nup [ AU | Ball ] -> [ Ball | AU ] sfx2\n+ down [ AD | Ball ] -> [ Ball | AD ] sfx2\n+ left [ AL | Ball ] -> [ Ball | AL ] sfx2\n+ right [ AR | Ball ] -> [ Ball | AR ] sfx2\n \n\nup [ no T AU | WALLUL ] -> [ T AR | WALLUL ] again\nup [ no T AU | WALLUR ] -> [ T AL | WALLUR ] again\n\ndown [ no T AD | WALLDL ] -> [ T AR | WALLDL ] again\ndown [ no T AD | WALLDR ] -> [ T AL | WALLDR ] again\n\nleft [ no T AL | WALLUL ] -> [ T AD | WALLUL ] again\nleft [ no T AL | WALLDL ] -> [ T AU | WALLDL ] again\n\nright [ no T AR | WALLUR ] -> [ T AD | WALLUR ] again\nright [ no T AR | WALLDR ] -> [ T AU | WALLDR ] again\n\nright [ no T AR | wall ] -> [ T AL | wall ] again\nleft [ no T AL | wall ] -> [ T AR | wall ] again\nup [ no T AU | wall ] -> [ T AD | wall ] again\ndown [ no T AD | wall ] -> [ T AU | wall ] again\n\n[T]->[]\n\n\nup [ AU | player ] -> [ ball | player ] \ndown [ AD | player ] -> [ ball | player ] \nleft [ AL | player ] -> [ ball | player ] \nright [ AR | player ] -> [ ball | player ] \n\nup [ no T AU | no obstacle ] -> [ | T AU ] again\ndown [ no T AD | no obstacle ] -> [ | T AD ] again\nleft [ no T AL | no obstacle ] -> [ | T AL ] again\nright [ no T AR | no obstacle ] -> [ | T AR ] again\n\n[T]->[]\n\n(\nright [ no T AR | wall ] -> [ T AL | wall ] again\nleft [ no T AL | wall ] -> [ T AR | wall ] again\nup [ no T AU | wall ] -> [ T AD | wall ] again\ndown [ no T AD | wall ] -> [ T AU | wall ] again\n[t]->[]\n\nright [ no T AR | no obstacle ] -> [ | T AR ] again\nleft [ no T AL | no obstacle ] -> [ | T AL ] again\nup [ no T AU | no obstacle ] -> [ | T AU ] again\ndown [ no T AD | no obstacle ] -> [ | T AD ] again\n[T]->[]\n)\n\n[good] -> []\n\n[anyballorgood | anyballorgood | anyballorgood ] -> [ good | good | good ] again sfx3\n\n==============\nWINCONDITIONS\n==============\nno anyball\nno good\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 3\n\n##########er####\n..p..c......r###\n########e....r##\n#######e......r#\n######e........r\n#####e.........f\n#####d.....c..f#\n######d......f##\n#######d...cf###\n########d..f####\n#########df#####\n\nmessage level 2 of 3\n\n####er####\n###e..r###\n##e....r##\n#e.c..c.r#\ne........r\nd........f\n#d.p..c.f#\n##d....f##\n###d..f###\n####df####\n\nmessage level 3 of 3\n\n####er####\n###e..r###\n##e....r##\n#e.c.c..r#\ne........r\nd..c.c...f\n#d....p.f#\n##d....f##\n###d..f###\n####df####\n\n(\n\nmessage optional final level\n\n#####er####\n####e..r###\n###e....r##\n##e.c.c..r#\n#e........r\ne...c.c...f\nd........f#\n#d...p..f##\n##d....f###\n###d..f####\n####df#####\n\n######er#######\n#####e..r######\n####e....r#####\n###e......r####\n##e........r###\n#e...c..p...r##\ne............r#\nd..........c..r\n#d............f\n##d..........f#\n###d........f##\n####d..c...f###\n#####d....f####\n######d..f#####\n#######df######\n\n\n#####er####\n####e..r###\n###e....r##\n##e.c.c..r#\n#e........r\ne...c.c...f\nd........f#\n#d...p..f##\n##d....f###\n###d..f####\n####df####.\n\n\n##########er####\n..p..c......r###\n########e....r##\n#######e......r#\n######e........r\n#####e.....c...f\n#####d........f#\n######d....c.f##\n#######d....f###\n########d..f####\n#########df#####\n\n####er####\n###e..r###\n##e....r##\n#e......r#\ne........r\nd..p.....f\n#d......f#\n##d....f##\n###d..f###\n####df####\n\n####er####\n###e..r###\n##e....r##\n#e.c.c..r#\ne........r\nd..p.c...f\n#d......f#\n##d....f##\n###d..f###\n####df####\n\n#####er#####\n####e..r####\n###e....r###\n##e......r##\n#e..c.c...r#\ne..........r\nd....c.c...f\n#d........f#\n##d...p..f##\n###d....f###\n####d..f####\n#####df#####\n\n####er####\n###e..r###\n##e....r##\n#e.c.c..r#\ne........r\nd..p.c...f\n#d......f#\n##d....f##\n###d..f###\n####df####\n\n######er#######\n#####e..r######\n####e....r#####\n###e......r####\n##e........r###\n#e...c..p...r##\ne............r#\nd..........c..r\n#d............f\n##d..........f#\n###d........f##\n####d..c...f###\n#####d....f####\n######d..f#####\n#######df######\n\n######er#######\n#####e..r######\n####e....r#####\n###e......r####\n##e........r###\n#e...c......r##\ne.......#....r#\nd....c.....c..r\n#d...p........f\n##d..........f#\n###d........f##\n####d..c...f###\n#####d....f####\n######d..f#####\n#######df######\n\n##########er####\n....pc......r###\n########e....r##\n#######e......r#\n######e........r\n#####e.........f\n#####d........f#\n######d......f##\n#######d....f###\n########d..f####\n#########df#####\n\n##########er####\n..p..c......r###\n########e....r##\n#######e......r#\n######e........r\n#####e.....c...f\n#####d........f#\n######d....c.f##\n#######d....f###\n########d..f####\n#########df#####\n\n)\n", [3, 3, 3], "background wall:0,0,0,0,background wallul:1,background walldl:2,0,0,0,0,\n0,0,0,1,background:3,3,2,0,0,0,\n0,0,1,3,3,3,3,2,0,0,\n0,1,3,3,3,3,3,3,2,0,\n1,3,3,background ball:4,3,3,4,3,3,2,\nbackground wallur:5,3,3,3,3,3,background player:6,3,3,background walldr:7,\n0,5,3,3,3,3,3,3,7,0,\n0,0,5,4,3,3,3,7,0,0,\n0,0,0,5,3,3,7,0,0,0,\n0,0,0,0,5,7,0,0,0,0,\n", 3, "1627889017355.2273"] +["title match three billiards \nauthor increpare\nhomepage www.increpare.com\n\n\nrun_rules_on_level_start\n\ncolor_palette 7\n\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\nhole\nblack\n\ntarget\nlightgreen black\n00000\n01110\n01110\n01110\n00000\n\n\nwallul E\nbrown\n00000\n0000.\n000..\n00...\n0....\n\nwallur R\nbrown\n00000\n.0000\n..000\n...00\n....0\n\nwalldl D\ntransparent brown brown\n20000\n12000\n11200\n11120\n11112\n\nwalldr F\ntransparent brown brown\n00002\n00021\n00211\n02111\n21111\n\nWall\nbrown\n\n\nplayer p\nwhite lightblue lightgray lightgray Blue\n.111.\n.000.\n22222\n.222.\n.1.1.\n\nBody\ndarkbrown\n.000.\n.000.\n.000.\n.000.\n.000.\n\nball\ndarkred darkred darkred\n.000.\n02220\n02220\n02220\n.000.\n\nAU \nred red red\n.000.\n02220\n02220\n02220\n.000.\n\nAD\nred red red\n.000.\n02220\n02220\n02220\n.000.\n\n\nAL\nred red red\n.000.\n02220\n02220\n02220\n.000.\n\n\nAR\nred red red\n.000.\n02220\n02220\n02220\n.000.\n\n\ngood\nyellow yellow yellow\n.000.\n02220\n02220\n02220\n.000.\n\n\n\n\nT\ntransparent\n\n=======\nLEGEND\n=======\n\nwalls = wall or wallul or wallur or walldl or walldr\n. = Background\n# = Wall\nC = ball\n@ = ball and target\nO = target\nArrow = AU or AD or AL or AR \nObstacle = ball or Wall\nblock = T or wall\nh = hole\n$ = ball and hole\ng = target and hole\nk = ball and hole and target\nanyball = ball or arrow\nanyballorgood = anyball or good\n\n=======\nSOUNDS\n=======\n\nsfx0 36772507 (ballmove)\nsfx1 20806902 (action)\nsfx2 44778100 (clink)\nsfx3 17355302 (win)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget\nWall, walls, ball, player\nbody\narrow\nT\nGood\n\n======\nRULES\n======\n\nup [ > player | ball ] -> [ player | AU ] sfx0\ndown [ > player | ball ] -> [ player | AD ] sfx0\nleft [ > player | ball ] -> [ player | AL ] sfx0\nright [ > player | ball ] -> [ player | AR ] sfx0\n \n\nup [ AU | Ball ] -> [ Ball | AU ] sfx2\n+ down [ AD | Ball ] -> [ Ball | AD ] sfx2\n+ left [ AL | Ball ] -> [ Ball | AL ] sfx2\n+ right [ AR | Ball ] -> [ Ball | AR ] sfx2\n \n\nup [ no T AU | WALLUL ] -> [ T AR | WALLUL ] again\nup [ no T AU | WALLUR ] -> [ T AL | WALLUR ] again\n\ndown [ no T AD | WALLDL ] -> [ T AR | WALLDL ] again\ndown [ no T AD | WALLDR ] -> [ T AL | WALLDR ] again\n\nleft [ no T AL | WALLUL ] -> [ T AD | WALLUL ] again\nleft [ no T AL | WALLDL ] -> [ T AU | WALLDL ] again\n\nright [ no T AR | WALLUR ] -> [ T AD | WALLUR ] again\nright [ no T AR | WALLDR ] -> [ T AU | WALLDR ] again\n\nright [ no T AR | wall ] -> [ T AL | wall ] again\nleft [ no T AL | wall ] -> [ T AR | wall ] again\nup [ no T AU | wall ] -> [ T AD | wall ] again\ndown [ no T AD | wall ] -> [ T AU | wall ] again\n\n[T]->[]\n\n\nup [ AU | player ] -> [ ball | player ] \ndown [ AD | player ] -> [ ball | player ] \nleft [ AL | player ] -> [ ball | player ] \nright [ AR | player ] -> [ ball | player ] \n\nup [ no T AU | no obstacle ] -> [ | T AU ] again\ndown [ no T AD | no obstacle ] -> [ | T AD ] again\nleft [ no T AL | no obstacle ] -> [ | T AL ] again\nright [ no T AR | no obstacle ] -> [ | T AR ] again\n\n[T]->[]\n\n(\nright [ no T AR | wall ] -> [ T AL | wall ] again\nleft [ no T AL | wall ] -> [ T AR | wall ] again\nup [ no T AU | wall ] -> [ T AD | wall ] again\ndown [ no T AD | wall ] -> [ T AU | wall ] again\n[t]->[]\n\nright [ no T AR | no obstacle ] -> [ | T AR ] again\nleft [ no T AL | no obstacle ] -> [ | T AL ] again\nup [ no T AU | no obstacle ] -> [ | T AU ] again\ndown [ no T AD | no obstacle ] -> [ | T AD ] again\n[T]->[]\n)\n\n[good] -> []\n\n[anyballorgood | anyballorgood | anyballorgood ] -> [ good | good | good ] again sfx3\n\n==============\nWINCONDITIONS\n==============\nno anyball\nno good\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 3\n\n##########er####\n..p..c......r###\n########e....r##\n#######e......r#\n######e........r\n#####e.........f\n#####d.....c..f#\n######d......f##\n#######d...cf###\n########d..f####\n#########df#####\n\nmessage level 2 of 3\n\n####er####\n###e..r###\n##e....r##\n#e.c..c.r#\ne........r\nd........f\n#d.p..c.f#\n##d....f##\n###d..f###\n####df####\n\nmessage level 3 of 3\n\n####er####\n###e..r###\n##e....r##\n#e.c.c..r#\ne........r\nd..c.c...f\n#d....p.f#\n##d....f##\n###d..f###\n####df####\n\n(\n\nmessage optional final level\n\n#####er####\n####e..r###\n###e....r##\n##e.c.c..r#\n#e........r\ne...c.c...f\nd........f#\n#d...p..f##\n##d....f###\n###d..f####\n####df#####\n\n######er#######\n#####e..r######\n####e....r#####\n###e......r####\n##e........r###\n#e...c..p...r##\ne............r#\nd..........c..r\n#d............f\n##d..........f#\n###d........f##\n####d..c...f###\n#####d....f####\n######d..f#####\n#######df######\n\n\n#####er####\n####e..r###\n###e....r##\n##e.c.c..r#\n#e........r\ne...c.c...f\nd........f#\n#d...p..f##\n##d....f###\n###d..f####\n####df####.\n\n\n##########er####\n..p..c......r###\n########e....r##\n#######e......r#\n######e........r\n#####e.....c...f\n#####d........f#\n######d....c.f##\n#######d....f###\n########d..f####\n#########df#####\n\n####er####\n###e..r###\n##e....r##\n#e......r#\ne........r\nd..p.....f\n#d......f#\n##d....f##\n###d..f###\n####df####\n\n####er####\n###e..r###\n##e....r##\n#e.c.c..r#\ne........r\nd..p.c...f\n#d......f#\n##d....f##\n###d..f###\n####df####\n\n#####er#####\n####e..r####\n###e....r###\n##e......r##\n#e..c.c...r#\ne..........r\nd....c.c...f\n#d........f#\n##d...p..f##\n###d....f###\n####d..f####\n#####df#####\n\n####er####\n###e..r###\n##e....r##\n#e.c.c..r#\ne........r\nd..p.c...f\n#d......f#\n##d....f##\n###d..f###\n####df####\n\n######er#######\n#####e..r######\n####e....r#####\n###e......r####\n##e........r###\n#e...c..p...r##\ne............r#\nd..........c..r\n#d............f\n##d..........f#\n###d........f##\n####d..c...f###\n#####d....f####\n######d..f#####\n#######df######\n\n######er#######\n#####e..r######\n####e....r#####\n###e......r####\n##e........r###\n#e...c......r##\ne.......#....r#\nd....c.....c..r\n#d...p........f\n##d..........f#\n###d........f##\n####d..c...f###\n#####d....f####\n######d..f#####\n#######df######\n\n##########er####\n....pc......r###\n########e....r##\n#######e......r#\n######e........r\n#####e.........f\n#####d........f#\n######d......f##\n#######d....f###\n########d..f####\n#########df#####\n\n##########er####\n..p..c......r###\n########e....r##\n#######e......r#\n######e........r\n#####e.....c...f\n#####d........f#\n######d....c.f##\n#######d....f###\n########d..f####\n#########df#####\n\n)\n",[3,3,3],"background wall:0,0,0,0,background wallul:1,background walldl:2,0,0,0,0,\n0,0,0,1,background:3,3,2,0,0,0,\n0,0,1,3,3,3,3,2,0,0,\n0,1,3,3,3,3,3,3,2,0,\n1,3,3,background ball:4,3,3,4,3,3,2,\nbackground wallur:5,3,3,3,3,3,background player:6,3,3,background walldr:7,\n0,5,3,3,3,3,3,3,7,0,\n0,0,5,4,3,3,3,7,0,0,\n0,0,0,5,3,3,7,0,0,0,\n0,0,0,0,5,7,0,0,0,0,\n",3,"1627889017355.2273"] ], [ - "newton", - ["title newton \nauthor increpare\nhomepage www.increpare.com\nnoaction\n\ncolor_palette 8\n\n========\nOBJECTS\n========\n\nBackground\nlightgray lightgray \n11111\n01111\n11101\n11111\n10111\n\nhole\nblack\n\ntarget\norange black\n00000\n0...0\n0...0\n0...0\n00000\n\nWall\ndarkred black \n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nball\nlightblue white\n.000.\n0...0\n0...0\n01..0\n.000.\n\nAU \ntransparent\n\nAD\ntransparent\n\nAL\ntransparent\n\nAR\ntransparent\n\nT\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nC = ball\n@ = ball and target\nO = target\nArrow = AU or AD or AL or AR\nObstacle = ball or Wall\nblock = T or wall\nh = hole\n$ = ball and hole\nf = target and hole\n\n=======\nSOUNDS\n=======\n\nsfx0 36772507 (ballmove)\nsfx1 20806902 (action)\nsfx2 44778100 (clink)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget\nPlayer, Wall, ball\nArrow\nT\n\n======\nRULES\n======\n\n\n[ > player | hole ] -> cancel\n\n[ arrow ] [ player ] -> [arrow] [ action player ]\n[ AU ball ] -> [ up ball ]\n[ AD ball ] -> [ down ball ]\n[ AL ball ] -> [ left ball ]\n[ AR ball ] -> [ right ball ]\n\n[ > ball | stationary ball ] -> [ stationary ball | > ball ] \n\n[ > ball | wall ] -> [ T ball | wall ]\n[ > ball | T ] -> [ T ball | ]\n[t]->[]\n\n[ stationary ball | > ball ] -> sfx2\n\n[ > Player | ball ] -> [ > Player | > ball ] sfx0 \n[ > ball | ball ] -> [ > ball | > ball ]\n\nup \t\t[ > ball | no obstacle ] -> [ | ball AU ] again\ndown [ > ball | no obstacle ] -> [ | ball AD ] again\nleft \t[ > ball | no obstacle ] -> [ | ball AL ] again\nright \t[ > ball | no obstacle ] -> [ | ball AR ] again\n\n==============\nWINCONDITIONS\n==============\n\nall ball on target\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 3\n\n###############\n#hhhhhhfhhhhhh#\n#hhhhhhfhhhhhh#\n#hhhhhhfhhhhhh#\n#hhh.......hhh#\n#hhh..ccc..hhh#\n#ffh..ccc..hff#\n#hhh..ccc..hhh#\n#hhh.......hhh#\n#hhh...p...hhh#\n#hhh.......hhh#\n#hhhhhhhhhhhhh#\n#hhhhhhhhhhhhh#\n#hhhhhfhfhhhhh#\n###############\n\nmessage level 2 of 3\n\n###############\n#hhhhfffffhhhh#\n#hhhhhhhhhhhhh#\n#hhhhhhhhhhhhh#\n#hhh.......hhh#\n#hhh.c.c.c.hhh#\n#hhh.......hhh#\n#fhh.c.c.c.hhf#\n#hhh...p...hhh#\n#fhh.c.c.c.hhf#\n#hhh.......hhh#\n#hhhhhhhhhhhhh#\n#hhhhhhhhhhhhh#\n#hhhhhhhhhhhhh#\n###############\n\nmessage level 3 of 3\n\n#############\n#hhhfffffhhh#\n#hhhhhfhhhhh#\n#hhhhhhhhhhh#\n#hh.......hh#\n#hh.ccccc.hh#\n#fh.c...c.hf#\n#fh.c...c.hf#\n#fh.ccccc.hf#\n#fh.ccccc.hf#\n#hh...p...hh#\n#hhhhhhhhhhh#\n#hhhfffffhhh#\n#############\n", [0, 3, 3, 3, 0, 1], "background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background hole:1,1,1,1,1,background hole target:2,2,background ball hole target:3,2,1,1,\n1,0,0,1,1,1,1,1,1,1,background ball hole:4,1,1,\n1,1,0,0,1,1,1,background:5,5,5,5,5,5,\n5,1,1,0,0,2,1,1,5,background ball:6,6,6,5,\n6,5,1,2,0,0,2,1,1,5,6,5,5,\n5,6,5,1,2,0,0,3,3,1,5,5,5,\n6,6,5,5,1,2,0,0,2,1,1,5,6,\n5,5,6,5,5,1,2,0,0,2,1,1,5,\n6,6,6,background player:7,5,5,1,2,0,0,1,1,1,\n5,5,5,5,5,5,5,1,1,0,0,1,1,\n1,1,1,1,1,1,4,1,1,1,0,0,1,\n1,1,1,1,2,2,2,3,1,1,1,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 5, "1627891250265.7375"] + "newton", + ["title newton \nauthor increpare\nhomepage www.increpare.com\nnoaction\n\ncolor_palette 8\n\n========\nOBJECTS\n========\n\nBackground\nlightgray lightgray \n11111\n01111\n11101\n11111\n10111\n\nhole\nblack\n\ntarget\norange black\n00000\n0...0\n0...0\n0...0\n00000\n\nWall\ndarkred black \n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nball\nlightblue white\n.000.\n0...0\n0...0\n01..0\n.000.\n\nAU \ntransparent\n\nAD\ntransparent\n\nAL\ntransparent\n\nAR\ntransparent\n\nT\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nC = ball\n@ = ball and target\nO = target\nArrow = AU or AD or AL or AR\nObstacle = ball or Wall\nblock = T or wall\nh = hole\n$ = ball and hole\nf = target and hole\n\n=======\nSOUNDS\n=======\n\nsfx0 36772507 (ballmove)\nsfx1 20806902 (action)\nsfx2 44778100 (clink)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget\nPlayer, Wall, ball\nArrow\nT\n\n======\nRULES\n======\n\n\n[ > player | hole ] -> cancel\n\n[ arrow ] [ player ] -> [arrow] [ action player ]\n[ AU ball ] -> [ up ball ]\n[ AD ball ] -> [ down ball ]\n[ AL ball ] -> [ left ball ]\n[ AR ball ] -> [ right ball ]\n\n[ > ball | stationary ball ] -> [ stationary ball | > ball ] \n\n[ > ball | wall ] -> [ T ball | wall ]\n[ > ball | T ] -> [ T ball | ]\n[t]->[]\n\n[ stationary ball | > ball ] -> sfx2\n\n[ > Player | ball ] -> [ > Player | > ball ] sfx0 \n[ > ball | ball ] -> [ > ball | > ball ]\n\nup \t\t[ > ball | no obstacle ] -> [ | ball AU ] again\ndown [ > ball | no obstacle ] -> [ | ball AD ] again\nleft \t[ > ball | no obstacle ] -> [ | ball AL ] again\nright \t[ > ball | no obstacle ] -> [ | ball AR ] again\n\n==============\nWINCONDITIONS\n==============\n\nall ball on target\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 3\n\n###############\n#hhhhhhfhhhhhh#\n#hhhhhhfhhhhhh#\n#hhhhhhfhhhhhh#\n#hhh.......hhh#\n#hhh..ccc..hhh#\n#ffh..ccc..hff#\n#hhh..ccc..hhh#\n#hhh.......hhh#\n#hhh...p...hhh#\n#hhh.......hhh#\n#hhhhhhhhhhhhh#\n#hhhhhhhhhhhhh#\n#hhhhhfhfhhhhh#\n###############\n\nmessage level 2 of 3\n\n###############\n#hhhhfffffhhhh#\n#hhhhhhhhhhhhh#\n#hhhhhhhhhhhhh#\n#hhh.......hhh#\n#hhh.c.c.c.hhh#\n#hhh.......hhh#\n#fhh.c.c.c.hhf#\n#hhh...p...hhh#\n#fhh.c.c.c.hhf#\n#hhh.......hhh#\n#hhhhhhhhhhhhh#\n#hhhhhhhhhhhhh#\n#hhhhhhhhhhhhh#\n###############\n\nmessage level 3 of 3\n\n#############\n#hhhfffffhhh#\n#hhhhhfhhhhh#\n#hhhhhhhhhhh#\n#hh.......hh#\n#hh.ccccc.hh#\n#fh.c...c.hf#\n#fh.c...c.hf#\n#fh.ccccc.hf#\n#fh.ccccc.hf#\n#hh...p...hh#\n#hhhhhhhhhhh#\n#hhhfffffhhh#\n#############\n",[0,3,3,3,0,1],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background hole:1,1,1,1,1,background hole target:2,2,background ball hole target:3,2,1,1,\n1,0,0,1,1,1,1,1,1,1,background ball hole:4,1,1,\n1,1,0,0,1,1,1,background:5,5,5,5,5,5,\n5,1,1,0,0,2,1,1,5,background ball:6,6,6,5,\n6,5,1,2,0,0,2,1,1,5,6,5,5,\n5,6,5,1,2,0,0,3,3,1,5,5,5,\n6,6,5,5,1,2,0,0,2,1,1,5,6,\n5,5,6,5,5,1,2,0,0,2,1,1,5,\n6,6,6,background player:7,5,5,1,2,0,0,1,1,1,\n5,5,5,5,5,5,5,1,1,0,0,1,1,\n1,1,1,1,1,1,4,1,1,1,0,0,1,\n1,1,1,1,2,2,2,3,1,1,1,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n",5,"1627891250265.7375"] ], [ - "unewton", - ["title unewton \nauthor increpare\nhomepage www.increpare.com\n\n\ncolor_palette 7\n\n========\nOBJECTS\n========\n\nBackground\ngreen lightgreen\n11111\n01111\n11101\n11111\n10111\n\nhole\nblack\n\ntarget\norange black\n00000\n0...0\n0...0\n0...0\n00000\n\n\nWall\ndarkred black \n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nball\ndarkblue white blue\n.000.\n02220\n02220\n02220\n.000.\n\nAU \nblue white lightblue\n.000.\n02220\n02220\n02220\n.000.\n\nAD\nblue white lightblue\n.000.\n02220\n02220\n02220\n.000.\n\n\nAL\nblue white lightblue\n.000.\n02220\n02220\n02220\n.000.\n\n\nAR\nblue white lightblue\n.000.\n02220\n02220\n02220\n.000.\n\n\nT\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nC = ball\n@ = ball and target\nO = target\nArrow = AU or AD or AL or AR\nObstacle = ball or Wall\nblock = T or wall\nh = hole\n$ = ball and hole\nf = target and hole\nk = ball and hole and target\n\n=======\nSOUNDS\n=======\n\nsfx0 36772507 (ballmove)\nsfx1 20806902 (action)\nsfx2 44778100 (clink)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget\nPlayer, Wall, ball\nArrow\nT\n\n======\nRULES\n======\n\n\n[ > player | hole ] -> cancel\n\n[ arrow ] [ player ] -> [arrow] [ action player ]\n[ AU ball ] -> [ AU up ball ]\n[ AD ball ] -> [ AD down ball ]\n[ AL ball ] -> [ AL left ball ]\n[ AR ball ] -> [ AR right ball ]\n\n[ > ball | ball ] -> [ > ball | > ball ] \n\n[moving ball arrow] [ moving ball no arrow ] -> [ stationary ball ] [ moving ball no arrow ]\n\n[arrow]->[]\n\n[ > ball | wall ] -> [ T ball | wall ]\n[ > ball | T ] -> [ T ball | ]\n[t]->[]\n\n[ stationary ball | > ball ] -> sfx2\n\n[ action Player | ball ] -> [ action Player | > ball ] sfx0 \n\n[ > Player | ball ] -> [ > Player | > ball ] sfx0 \n[ > ball | ball ] -> [ > ball | > ball ]\n\nup \t\t[ action player ] [ > ball | no obstacle ] -> [ action player ] [ | ball AU ] again\ndown [ action player ] [ > ball | no obstacle ] -> [ action player ] [ | ball AD ] again\nleft \t[ action player ] [ > ball | no obstacle ] -> [ action player ] [ | ball AL ] again\nright \t[ action player ] [ > ball | no obstacle ] -> [ action player ] [ | ball AR ] again\n\n==============\nWINCONDITIONS\n==============\n\nall ball on target\nno arrow\n\n=======\nLEVELS\n=======\n\nmessage you can press X to kick balls!\n\nmessage level 1 of 4\n\n#########################\n#.......hhhhhhhhhhhhhhhh#\n#.c.c.c.hhhhhhhhhhhhhhhh#\n#.......hfhh$fhh$fhh$fff#\n#.c.c.c.hffh$hfh$hfh$hff#\n#....p..hfff$hhf$hhf$hhf#\n#.c.c.c.hhhhhhhhhhhhhhhh#\n#.......hhhhhhhhhhhhhhhh#\n#########################\n\nmessage level 2 of 4\n\n############\n#......fhhf#\n#.c.c..fh$f#\n#......fhhf#\n#.p.c..hhhh#\n#..........#\n#.c.c......#\n#..........#\n############\n\nmessage level 3 of 4\n\n\n#####################\n#.........o.........#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.cc.hfhkhfh.c..#.#\n#.#....hhhhhhh....#.#\n#....p..............#\n#...................#\n#####################\n\n\nmessage level 4 of 4\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$..o...#\n#.............#\n#.....hfh.....#\n#.#.$.f$f.$.#.#\n#.....hfh.....#\n#.............#\n#...p..$......#\n#.............#\n#......#......#\n#.............#\n###############\n\n(\n\nmessage level 4 of 5\n\n\n###########\n#hhhfhhhhh#\n#hhhfhh...#\n#fh$hfh.c.#\n#hhh$hh.c.#\n#.......c.#\n#hhh$hh...#\n#fh$hhh.p.#\n#hhhfhh...#\n#hhhfhhhhh#\n###########\n\n################\n#hhhhfffhhhhhhh#\n#hhhhfffhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhccccchhhff#\n#hhhhccccchhhff#\n#ffhhccpcchhhff#\n#ffhhccccchhhhh#\n#ffhhccccchhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhfffhhhhh#\n#hhhhhhfffhhhhh#\n################\n\n################\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhccccchhhhh#\n#hhhhccccchhhhh#\n#hhhhccpcchhhhh#\n#hhhhccccchhhhh#\n#hhhhccccchhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n################\n\n################\n#hhhhhhfhhhhhhh#\n#hhhhhhfhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhh.....hhhhh#\n#hhhh..c..hhhhh#\n#hhhh..p..hhhhh#\n#hhhh..c..hhhhh#\n#hhhh.....hhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n################\n\n\n################\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhh.....hhhhh#\n#hhhh.....hhhhh#\n#hhhh..p..hhhhh#\n#hhhh.....hhhhh#\n#hhhh.....hhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n################\n\n#################\n#...............#\n#.....c.c.c.....#\n#..cccccccc.....#\n#...hhhhhhhhh...#\n#..phhhhhhhhhc..#\n#...hhhhhhhhhcc.#\n#.cchhhhhhhhhcc.#\n#.cchhhh$hhhhcc.#\n#..chhhhhhhhhcc.#\n#...hhhhhhhhhc..#\n#...hhhhhhhhh...#\n#...hhhhhhhhh...#\n#....cccccc.....#\n#....ccccc......#\n#...............#\n#################\n\n\n#####################\n#...................#\n#........###........#\n#...................#\n#.......c.c.c.......#\n#....cccccccc.......#\n#.....hhhhhhhhh.....#\n#.....hhhhhhhhhc....#\n#...c.hhhhhhhhhcc...#\n#.#.cchhhhhhhhhcc.#.#\n#.#.pchhhh$hhhhcc.#.#\n#.#..chhhhhhhhhcc.#.#\n#.....hhhhhhhhhc....#\n#.....hhhhhhhhh.....#\n#.....hhhhhhhhh.....#\n#......cccccc.......#\n#......ccccc........#\n#...................#\n#........###........#\n#...................#\n#####################\n\n#####################\n#...................#\n#........###........#\n#...................#\n#.......c.c.c.......#\n#....cccccccc.......#\n#.....hhhhhhhhh.....#\n#.....hhhhhhhhhc....#\n#...c.hhhhfhhhhcc...#\n#.#.cchhhhhhhhhcc.#.#\n#.#.pchhfh$hfhhcc.#.#\n#.#..chhhhhhhhhcc.#.#\n#.....hhhhfhhhhc....#\n#.....hhhhhhhhh.....#\n#.....hhhhhhhhh.....#\n#......cccccc.......#\n#......ccccc........#\n#...................#\n#........###........#\n#...................#\n#####################\n\n#####################\n#...................#\n#........###........#\n#...................#\n#.......c.c.c.......#\n#....cccccccc.......#\n#...................#\n#...................#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.pc.hfh$hfh.c..#.#\n#.#....hhhhhhh....#.#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#........###........#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.pc.hfhkhfh.c..#.#\n#.#....hhhhhhh....#.#\n#...................#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.cc.hfhkhfh.c..#.#\n#.#....hhhhhhh....#.#\n#....p..............#\n#...................#\n#####################\n\n#####################\n#.........o.........#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.cc.hfhkhfh.c..#.#\n#.#....hhhhhhh....#.#\n#....p..............#\n#...................#\n#####################\n\nhhhhhhhhhhhh\nhhhhhhhhhhhh\nhhhhhhhh....\nh#fh$hfh.c..\nhhhhhhhh..c.\nh.......p...\nhhhhhhhh..c.\nh#hh$hhh.c..\nhhhhhhhh....\n\n############\n#hhhfhhhhhh#\n#hhhfhh....#\n#fh$hfh.c..#\n#hhh$hh....#\n#.......c.p#\n#hhh$hh....#\n#fh$hhh.c..#\n#hhhfhh....#\n#hhhfhhhhhh#\n############\n\n..........\n..........\n....$.....\n..........\n..........\n.$..$..$..\n....p.....\n..........\n....$.....\n..........\n..........\n\n##############\n#............#\n#............#\n#............#\n#.....$......#\n#............#\n#............#\n#..$..$..$...#\n#.....p......#\n#............#\n#.....$......#\n#............#\n#............#\n#............#\n##############\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$......#\n#.............#\n#.............#\n#.#.$..$..$.#.#\n#......p......#\n#.............#\n#......$......#\n#.............#\n#......#......#\n#.............#\n###############\n\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$......#\n#.............#\n#......h......#\n#.#.$.h$h.$.#.#\n#.p....h......#\n#.............#\n#......$......#\n#.............#\n#......#......#\n#.............#\n###############\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$......#\n#.............#\n#.....hfh.....#\n#.#.$.f@f.$.#.#\n#.p...hfh.....#\n#.............#\n#......$......#\n#.............#\n#......#......#\n#.............#\n###############\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$......#\n#.............#\n#.....hfh.....#\n#.#.$.fkf.$.#.#\n#.p...hfh.....#\n#.............#\n#......$......#\n#.............#\n#......#......#\n#.............#\n###############\n)\n", [1, 1, 0, 0, 3, 3, 0, 3, 2, 3, 1, 2, 2, 3, 1, 0, 4, "restart", 1, 1, 0, 0, 0, 2, 3, 4, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 4], "background wall:0,0,0,0,0,0,0,0,0,0,background:1,1,1,1,1,1,1,0,0,1,1,\n0,0,0,1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,\n0,1,1,background hole:2,2,2,1,1,0,0,1,1,2,background ball hole target:3,2,1,1,0,0,1,1,\n2,background ball hole:4,2,1,1,0,0,background target:5,1,2,background hole target:6,2,1,1,0,0,1,1,2,2,2,\n1,1,0,0,1,1,2,6,2,1,1,0,0,1,1,2,2,2,1,1,0,\n0,1,1,background player:7,1,1,1,background ball:8,0,0,1,1,1,1,1,1,1,0,0,1,1,\n1,1,1,1,1,0,0,1,1,1,8,1,1,1,0,0,1,1,0,0,0,\n1,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,\n", 6, "1627891297042.881"] + "unewton", + ["title unewton \nauthor increpare\nhomepage www.increpare.com\n\n\ncolor_palette 7\n\n========\nOBJECTS\n========\n\nBackground\ngreen lightgreen\n11111\n01111\n11101\n11111\n10111\n\nhole\nblack\n\ntarget\norange black\n00000\n0...0\n0...0\n0...0\n00000\n\n\nWall\ndarkred black \n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nball\ndarkblue white blue\n.000.\n02220\n02220\n02220\n.000.\n\nAU \nblue white lightblue\n.000.\n02220\n02220\n02220\n.000.\n\nAD\nblue white lightblue\n.000.\n02220\n02220\n02220\n.000.\n\n\nAL\nblue white lightblue\n.000.\n02220\n02220\n02220\n.000.\n\n\nAR\nblue white lightblue\n.000.\n02220\n02220\n02220\n.000.\n\n\nT\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nC = ball\n@ = ball and target\nO = target\nArrow = AU or AD or AL or AR\nObstacle = ball or Wall\nblock = T or wall\nh = hole\n$ = ball and hole\nf = target and hole\nk = ball and hole and target\n\n=======\nSOUNDS\n=======\n\nsfx0 36772507 (ballmove)\nsfx1 20806902 (action)\nsfx2 44778100 (clink)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget\nPlayer, Wall, ball\nArrow\nT\n\n======\nRULES\n======\n\n\n[ > player | hole ] -> cancel\n\n[ arrow ] [ player ] -> [arrow] [ action player ]\n[ AU ball ] -> [ AU up ball ]\n[ AD ball ] -> [ AD down ball ]\n[ AL ball ] -> [ AL left ball ]\n[ AR ball ] -> [ AR right ball ]\n\n[ > ball | ball ] -> [ > ball | > ball ] \n\n[moving ball arrow] [ moving ball no arrow ] -> [ stationary ball ] [ moving ball no arrow ]\n\n[arrow]->[]\n\n[ > ball | wall ] -> [ T ball | wall ]\n[ > ball | T ] -> [ T ball | ]\n[t]->[]\n\n[ stationary ball | > ball ] -> sfx2\n\n[ action Player | ball ] -> [ action Player | > ball ] sfx0 \n\n[ > Player | ball ] -> [ > Player | > ball ] sfx0 \n[ > ball | ball ] -> [ > ball | > ball ]\n\nup \t\t[ action player ] [ > ball | no obstacle ] -> [ action player ] [ | ball AU ] again\ndown [ action player ] [ > ball | no obstacle ] -> [ action player ] [ | ball AD ] again\nleft \t[ action player ] [ > ball | no obstacle ] -> [ action player ] [ | ball AL ] again\nright \t[ action player ] [ > ball | no obstacle ] -> [ action player ] [ | ball AR ] again\n\n==============\nWINCONDITIONS\n==============\n\nall ball on target\nno arrow\n\n=======\nLEVELS\n=======\n\nmessage you can press X to kick balls!\n\nmessage level 1 of 4\n\n#########################\n#.......hhhhhhhhhhhhhhhh#\n#.c.c.c.hhhhhhhhhhhhhhhh#\n#.......hfhh$fhh$fhh$fff#\n#.c.c.c.hffh$hfh$hfh$hff#\n#....p..hfff$hhf$hhf$hhf#\n#.c.c.c.hhhhhhhhhhhhhhhh#\n#.......hhhhhhhhhhhhhhhh#\n#########################\n\nmessage level 2 of 4\n\n############\n#......fhhf#\n#.c.c..fh$f#\n#......fhhf#\n#.p.c..hhhh#\n#..........#\n#.c.c......#\n#..........#\n############\n\nmessage level 3 of 4\n\n\n#####################\n#.........o.........#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.cc.hfhkhfh.c..#.#\n#.#....hhhhhhh....#.#\n#....p..............#\n#...................#\n#####################\n\n\nmessage level 4 of 4\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$..o...#\n#.............#\n#.....hfh.....#\n#.#.$.f$f.$.#.#\n#.....hfh.....#\n#.............#\n#...p..$......#\n#.............#\n#......#......#\n#.............#\n###############\n\n(\n\nmessage level 4 of 5\n\n\n###########\n#hhhfhhhhh#\n#hhhfhh...#\n#fh$hfh.c.#\n#hhh$hh.c.#\n#.......c.#\n#hhh$hh...#\n#fh$hhh.p.#\n#hhhfhh...#\n#hhhfhhhhh#\n###########\n\n################\n#hhhhfffhhhhhhh#\n#hhhhfffhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhccccchhhff#\n#hhhhccccchhhff#\n#ffhhccpcchhhff#\n#ffhhccccchhhhh#\n#ffhhccccchhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhfffhhhhh#\n#hhhhhhfffhhhhh#\n################\n\n################\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhccccchhhhh#\n#hhhhccccchhhhh#\n#hhhhccpcchhhhh#\n#hhhhccccchhhhh#\n#hhhhccccchhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n################\n\n################\n#hhhhhhfhhhhhhh#\n#hhhhhhfhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhh.....hhhhh#\n#hhhh..c..hhhhh#\n#hhhh..p..hhhhh#\n#hhhh..c..hhhhh#\n#hhhh.....hhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n################\n\n\n################\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhh.....hhhhh#\n#hhhh.....hhhhh#\n#hhhh..p..hhhhh#\n#hhhh.....hhhhh#\n#hhhh.....hhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n#hhhhhhhhhhhhhh#\n################\n\n#################\n#...............#\n#.....c.c.c.....#\n#..cccccccc.....#\n#...hhhhhhhhh...#\n#..phhhhhhhhhc..#\n#...hhhhhhhhhcc.#\n#.cchhhhhhhhhcc.#\n#.cchhhh$hhhhcc.#\n#..chhhhhhhhhcc.#\n#...hhhhhhhhhc..#\n#...hhhhhhhhh...#\n#...hhhhhhhhh...#\n#....cccccc.....#\n#....ccccc......#\n#...............#\n#################\n\n\n#####################\n#...................#\n#........###........#\n#...................#\n#.......c.c.c.......#\n#....cccccccc.......#\n#.....hhhhhhhhh.....#\n#.....hhhhhhhhhc....#\n#...c.hhhhhhhhhcc...#\n#.#.cchhhhhhhhhcc.#.#\n#.#.pchhhh$hhhhcc.#.#\n#.#..chhhhhhhhhcc.#.#\n#.....hhhhhhhhhc....#\n#.....hhhhhhhhh.....#\n#.....hhhhhhhhh.....#\n#......cccccc.......#\n#......ccccc........#\n#...................#\n#........###........#\n#...................#\n#####################\n\n#####################\n#...................#\n#........###........#\n#...................#\n#.......c.c.c.......#\n#....cccccccc.......#\n#.....hhhhhhhhh.....#\n#.....hhhhhhhhhc....#\n#...c.hhhhfhhhhcc...#\n#.#.cchhhhhhhhhcc.#.#\n#.#.pchhfh$hfhhcc.#.#\n#.#..chhhhhhhhhcc.#.#\n#.....hhhhfhhhhc....#\n#.....hhhhhhhhh.....#\n#.....hhhhhhhhh.....#\n#......cccccc.......#\n#......ccccc........#\n#...................#\n#........###........#\n#...................#\n#####################\n\n#####################\n#...................#\n#........###........#\n#...................#\n#.......c.c.c.......#\n#....cccccccc.......#\n#...................#\n#...................#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.pc.hfh$hfh.c..#.#\n#.#....hhhhhhh....#.#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#........###........#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.pc.hfhkhfh.c..#.#\n#.#....hhhhhhh....#.#\n#...................#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.cc.hfhkhfh.c..#.#\n#.#....hhhhhhh....#.#\n#....p..............#\n#...................#\n#####################\n\n#####################\n#.........o.........#\n#...................#\n#.#....hhhhhhh....#.#\n#.#.cc.hfhkhfh.c..#.#\n#.#....hhhhhhh....#.#\n#....p..............#\n#...................#\n#####################\n\nhhhhhhhhhhhh\nhhhhhhhhhhhh\nhhhhhhhh....\nh#fh$hfh.c..\nhhhhhhhh..c.\nh.......p...\nhhhhhhhh..c.\nh#hh$hhh.c..\nhhhhhhhh....\n\n############\n#hhhfhhhhhh#\n#hhhfhh....#\n#fh$hfh.c..#\n#hhh$hh....#\n#.......c.p#\n#hhh$hh....#\n#fh$hhh.c..#\n#hhhfhh....#\n#hhhfhhhhhh#\n############\n\n..........\n..........\n....$.....\n..........\n..........\n.$..$..$..\n....p.....\n..........\n....$.....\n..........\n..........\n\n##############\n#............#\n#............#\n#............#\n#.....$......#\n#............#\n#............#\n#..$..$..$...#\n#.....p......#\n#............#\n#.....$......#\n#............#\n#............#\n#............#\n##############\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$......#\n#.............#\n#.............#\n#.#.$..$..$.#.#\n#......p......#\n#.............#\n#......$......#\n#.............#\n#......#......#\n#.............#\n###############\n\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$......#\n#.............#\n#......h......#\n#.#.$.h$h.$.#.#\n#.p....h......#\n#.............#\n#......$......#\n#.............#\n#......#......#\n#.............#\n###############\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$......#\n#.............#\n#.....hfh.....#\n#.#.$.f@f.$.#.#\n#.p...hfh.....#\n#.............#\n#......$......#\n#.............#\n#......#......#\n#.............#\n###############\n\n###############\n#.............#\n#......#......#\n#.............#\n#......$......#\n#.............#\n#.....hfh.....#\n#.#.$.fkf.$.#.#\n#.p...hfh.....#\n#.............#\n#......$......#\n#.............#\n#......#......#\n#.............#\n###############\n)\n",[1,1,0,0,3,3,0,3,2,3,1,2,2,3,1,0,4,"restart",1,1,0,0,0,2,3,4,0,0,3,3,3,3,3,3,3,3,3,3,2,4],"background wall:0,0,0,0,0,0,0,0,0,0,background:1,1,1,1,1,1,1,0,0,1,1,\n0,0,0,1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,\n0,1,1,background hole:2,2,2,1,1,0,0,1,1,2,background ball hole target:3,2,1,1,0,0,1,1,\n2,background ball hole:4,2,1,1,0,0,background target:5,1,2,background hole target:6,2,1,1,0,0,1,1,2,2,2,\n1,1,0,0,1,1,2,6,2,1,1,0,0,1,1,2,2,2,1,1,0,\n0,1,1,background player:7,1,1,1,background ball:8,0,0,1,1,1,1,1,1,1,0,0,1,1,\n1,1,1,1,1,0,0,1,1,1,8,1,1,1,0,0,1,1,0,0,0,\n1,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,\n",6,"1627891297042.881"] ], [ - "Match two two by twos", - ["title Match two two by twos\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\nnorepeat_Action\n\n========\nOBJECTS\n========\n\nBackground\nblack black\n11111\n01111\n11101\n11111\n10111\n\n\nWall\ngray black\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nwhite \n00.00\n0...0\n.....\n0...0\n00.00\n\nRed R\nRed \n00000\n00.00\n0...0\n00.00\n00000\n\nGreen G\nGreen\n00000\n0.0.0\n00000\n0.0.0\n00000\n\nBlue B\nBlue \n00000\n0.000\n00.00\n000.0\n00000\n\nYellow Y\nyellow\n00000\n0...0\n00000\n0...0\n00000\n\nfunnel F\ngray black\n00010\n11111\n01000\n11111\n00010\n\ntodestroy\ntransparent white transparent transparent \n20002\n02.20\n0.1.0\n02.20\n20002\n\nMTL\ntransparent\n\nMTR\ntransparent\n\nMBL\ntransparent\n\nMBR\ntransparent\n\nMT\ntransparent\n\nMT2\ntransparent\n\n\nMTa\ntransparent\n\nMT2a\ntransparent\n\n\nMTb\ntransparent\n\nMT2b\ntransparent\n\nMb\ntransparent\n\nML\ntransparent\n\nMR\ntransparent\n\nmatch m\ntransparent\n\ntodelete D\ntransparent\n\ngobble\ntransparent\n.....\n.....\n..0..\n.....\n.....\n\nmidgobble\ntransparent\n.....\n.....\n..0..\n.....\n.....\n\nmoved\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n\n1 = gobble and blue\n2 = gobble and green\n3 = gobble and red\n4 = gobble and yellow\n5 = midgobble and blue\n6 = midgobble and green\n7 = midgobble and red\n8 = midgobble and yellow\n\nColor = red or green or blue or yellow\n\nanymatch = mtl or mtr or mbl or mbr or mt or mb or match or ml or mr or mt2 or mt or mta or mtb or mt2a or mt2b\n\npushable = color or player\n\n=======\nSOUNDS\n=======\n\nsfx0 30674702 (placement)\nsfx1 37302105 (remove)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncolor\nWall,player, Funnel\nmtl\nmtr\nmbl\nmbr\nmt\nmt2\nmta\nmt2a\nmtb\nmt2b\nmb\nml\nmr\nm\ntodelete\ntodestroy\ngobble\nmidgobble\nmoved\n\n======\nRULES\n======\n\n\n\n[todestroy]->[]\n\n(need to repeat this for down direction)\nright [ red \t| | red ] \t\t-> [ ml red \t| | mr red ]\nright [ green \t| | green ] \t-> [ ml green \t| | mr green ]\nright [ blue\t| | blue ] \t\t-> [ ml blue \t| | mr blue ]\nright [ yellow \t| | yellow ] \t-> [ ml yellow \t| | mr yellow ]\n\nright [ ml | ml | mr | mr ] -> [ ml mta | ml mtb | mr mta | mr mtb ]\n\n[ml]->[]\n[mr]->[]\n\n\ndown [ red \t| | red ] \t\t-> [ ml red \t| | mr red ]\ndown [ green \t| | green ] \t-> [ ml green \t| | mr green ]\ndown [ blue\t| | blue ] \t\t-> [ ml blue \t| | mr blue ]\ndown [ yellow \t| | yellow ] \t-> [ ml yellow \t| | mr yellow ]\n\ndown [ ml | ml | mr | mr ] -> [ ml mt2a | ml mt2b | mr mt2a | mr mt2b ]\n\n\ndown [ mta | mta ] -> [ mta no color todestroy | mta no color todestroy] sfx1 again\ndown [ mtb | mtb ] -> [ mtb no color todestroy | mtb no color todestroy ] sfx1 again\nright [ mt2a | mt2a ] -> [ mt2a no color todestroy | mt2a no color todestroy ] sfx1 again\nright [ mt2b | mt2b ] -> [ mt2b no color todestroy | mt2b no color todestroy ] sfx1 again\n\n[anymatch]->[]\n\n\nright [ midgobble | ... | color | no color ] -> [ midgobble | ... | | color ]\nright [ midgobble color | no color ] -> [ midgobble | color ]\n\nup [ gobble | ... | color | no color ] -> [ gobble | ... | | color ]\nup [ gobble color | no color ] -> [ gobble | color ]\n\n\n\n[action player color ] [gobble ] -> [ player moved] [ gobble color] again\n\n\ndown [ color | gobble no color ] -> [ | gobble color ]\ndown [ color | no color | ... | gobble ] -> [ | color | ... | gobble ]\n\n\nleft [ color | midgobble no color ] -> [ | midgobble color ]\nleft [ color | no color | ... | midgobble ] -> [ | color | ... | midgobble ]\n\n[action player no color ] [gobble color] -> [ action player color] [ gobble] sfx0 again\n\ndown [ color | gobble no color ] -> [ | gobble color ]\ndown [ color | no color | ... | gobble ] -> [ | color | ... | gobble ]\n\n\nleft [ color | midgobble no color ] -> [ | midgobble color ]\nleft [ color | no color | ... | midgobble ] -> [ | color | ... | midgobble ]\n\n==============\nWINCONDITIONS\n==============\n\nno color\n\n=======\nLEVELS\n=======\nmessage Level 1 of 3\n\nmessage create two identical 2x2 sections side by side to make them vanish\n\n#########\n#8yy.....\n#y#######\n#b#.....#\n#b#.....#\n#b#..p..#\n#1#.....#\n#F#######\n\nmessage Level 2 of 3\n\n#########\n#6bbbyyy.\n#g#######\n#g#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n\nmessage Level 3 of 3\n\n#########\n#7ryyyyyy\n#r#######\n#r#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\nmessage my congratulations\n\n(\n\n\n#########\n#7yyyyyyy\n#r#######\n#r#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n\n#########\n#6ggbbbyy\n#g#######\n#r#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n\n##############\n#............#\n#............#\n#............#\n#...RR.......#\n#p.R.R.......#\n#...RR.......#\n#...RR.......#\n#............#\n#............#\n#............#\n#............#\n##############\n\n\n#########\n#6gbbbyy#\n#g#######\n#r#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n#########\n#6bbbyyy#\n#g#######\n#g#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n\n###############\n#y#...........#\n#y#...........#\n#y#...........#\n#y#...........#\n#g#...........#\n#g#...........#\n#g#.....p.....#\n#g#...........#\n#r#...........#\n#r#...........#\n#b#...........#\n#b#...........#\n#1#...........#\n###############\n\n\n#############\n#8y.........#\n#y###########\n#b#.........#\n#b#.........#\n#b#.........#\n#g#.........#\n#g#....p....#\n#g#.........#\n#r#.........#\n#r#.........#\n#3#.........#\n#############\n\n#############\n#.#.........#\n#y#.........#\n#y#.........#\n#y#.........#\n#y#....p....#\n#b#.........#\n#b#.........#\n#b#.........#\n#1#.........#\n#############\n\n###############\n#.#...........#\n#y#...........#\n#y#...........#\n#y#...........#\n#g#...........#\n#g#...........#\n#g#.....p.....#\n#r#...........#\n#r#...........#\n#r#...........#\n#b#...........#\n#b#...........#\n#1#...........#\n###############\n\n\n#############\n#.#.........#\n#y#.........#\n#y#.........#\n#y#.........#\n#y#....p....#\n#b#.........#\n#b#.........#\n#b#.........#\n#1#.........#\n#############\n\n###########\n#.........#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.........#\n#....p....#\n#.........#\n###########\n###########\n#.........#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.......y.#\n#....p....#\n#.........#\n###########\n\n\n###########\n#.........#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.........#\n#....p....#\n#.........#\n###########\n\n\n##########\n#........#\n#...yb...#\n#..rgrg..#\n#p.byby..#\n#...gr...#\n#........#\n##########\n\n##########\n#........#\n#...gg...#\n#.p.gg...#\n#...gg...#\n#...gg...#\n#........#\n##########\n\n\n##########\n#........#\n#...yb...#\n#..rgrg..#\n#.byby...#\n#p..gr...#\n#........#\n##########\n\n\n\n##########\n#........#\n#........#\n#..rbbr..#\n#..gyyg..#\n#.p......#\n#........#\n##########\n\n########\n#......#\n#...p..#\n###....#\n#rgbr..#\n#bygy..#\n###....#\n########\n\n\n#############\n#...........#\n#...........#\n#...rrrrr...#\n#..r.rrr.r..#\n#...........#\n#.....p.....#\n#...........#\n#############\n\n\n###########\n#.........#\n#.........#\n#..rr.gg..#\n#..rr.gg..#\n#..rr.gg..#\n#.........#\n#....p....#\n#.........#\n###########\n\n\n\n\n##############\n#............#\n#.....P......#\n#.....R......#\n#...RR.RR....#\n#...RRRRR....#\n#.....RR.....#\n#.....RR.....#\n#............#\n#............#\n#............#\n#............#\n##############\n\n\n\n##############\n#............#\n#............#\n#............#\n#...RR.......#\n#p.R.R.......#\n#...RR.......#\n#...RR.......#\n#............#\n#............#\n#............#\n#............#\n##############\n\n##############\n#............#\n#............#\n#............#\n#...RRGG.....#\n#p.R.RGG.....#\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\n)\n", [3, 0, 1, 4, 3, 4, 3, 4, 2, 4, 1, 4, 1, 4, 1, 4, 0, 4, 0, 4, 3, 4, 3, 4, 3, 4, 3, 2, 1, 4, 1, 4, 1, 4, 1, 1, 4, 0, 4, 3, 1, 1, 3, 4, 3, 4, 3, 4, 2, 1, 1, 1, 2, 4, 3, 4, 3, 4, 3, 1, 1, 0, 0, 3, 3, 2, 2, 4, 1, 1, 1, 2, 4, 3, 3, 4, 0, 0, 3, 3, 4, 1, 1, 1, 1, 2, 4, 3, 3, 1, 1, 3, 3, 3, 2, 4, 1, 1, 4, 0, 3, 3, 3, 4, 1, 1, 4, 3, 4, 1, 1, 4, 3, 3, 4, 0, 4, 2, 4], "background wall:0,0,0,0,0,0,0,0,0,\nbackground midgobble:1,background:2,2,2,2,background gobble red:3,0,0,2,\n0,0,0,0,0,0,0,2,0,\nbackground moved:4,4,4,2,0,0,2,0,4,\n4,4,2,0,0,2,0,4,4,\n4,2,0,0,2,0,4,background blue moved:5,background moved player:6,\n2,0,0,2,0,2,background green:7,background yellow:8,2,\n0,0,2,0,0,0,0,0,0,\n", 4, "1627891318219.0203"] + "Match two two by twos", + ["title Match two two by twos\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\nnorepeat_Action\n\n========\nOBJECTS\n========\n\nBackground\nblack black\n11111\n01111\n11101\n11111\n10111\n\n\nWall\ngray black\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nwhite \n00.00\n0...0\n.....\n0...0\n00.00\n\nRed R\nRed \n00000\n00.00\n0...0\n00.00\n00000\n\nGreen G\nGreen\n00000\n0.0.0\n00000\n0.0.0\n00000\n\nBlue B\nBlue \n00000\n0.000\n00.00\n000.0\n00000\n\nYellow Y\nyellow\n00000\n0...0\n00000\n0...0\n00000\n\nfunnel F\ngray black\n00010\n11111\n01000\n11111\n00010\n\ntodestroy\ntransparent white transparent transparent \n20002\n02.20\n0.1.0\n02.20\n20002\n\nMTL\ntransparent\n\nMTR\ntransparent\n\nMBL\ntransparent\n\nMBR\ntransparent\n\nMT\ntransparent\n\nMT2\ntransparent\n\n\nMTa\ntransparent\n\nMT2a\ntransparent\n\n\nMTb\ntransparent\n\nMT2b\ntransparent\n\nMb\ntransparent\n\nML\ntransparent\n\nMR\ntransparent\n\nmatch m\ntransparent\n\ntodelete D\ntransparent\n\ngobble\ntransparent\n.....\n.....\n..0..\n.....\n.....\n\nmidgobble\ntransparent\n.....\n.....\n..0..\n.....\n.....\n\nmoved\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n\n1 = gobble and blue\n2 = gobble and green\n3 = gobble and red\n4 = gobble and yellow\n5 = midgobble and blue\n6 = midgobble and green\n7 = midgobble and red\n8 = midgobble and yellow\n\nColor = red or green or blue or yellow\n\nanymatch = mtl or mtr or mbl or mbr or mt or mb or match or ml or mr or mt2 or mt or mta or mtb or mt2a or mt2b\n\npushable = color or player\n\n=======\nSOUNDS\n=======\n\nsfx0 30674702 (placement)\nsfx1 37302105 (remove)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncolor\nWall,player, Funnel\nmtl\nmtr\nmbl\nmbr\nmt\nmt2\nmta\nmt2a\nmtb\nmt2b\nmb\nml\nmr\nm\ntodelete\ntodestroy\ngobble\nmidgobble\nmoved\n\n======\nRULES\n======\n\n\n\n[todestroy]->[]\n\n(need to repeat this for down direction)\nright [ red \t| | red ] \t\t-> [ ml red \t| | mr red ]\nright [ green \t| | green ] \t-> [ ml green \t| | mr green ]\nright [ blue\t| | blue ] \t\t-> [ ml blue \t| | mr blue ]\nright [ yellow \t| | yellow ] \t-> [ ml yellow \t| | mr yellow ]\n\nright [ ml | ml | mr | mr ] -> [ ml mta | ml mtb | mr mta | mr mtb ]\n\n[ml]->[]\n[mr]->[]\n\n\ndown [ red \t| | red ] \t\t-> [ ml red \t| | mr red ]\ndown [ green \t| | green ] \t-> [ ml green \t| | mr green ]\ndown [ blue\t| | blue ] \t\t-> [ ml blue \t| | mr blue ]\ndown [ yellow \t| | yellow ] \t-> [ ml yellow \t| | mr yellow ]\n\ndown [ ml | ml | mr | mr ] -> [ ml mt2a | ml mt2b | mr mt2a | mr mt2b ]\n\n\ndown [ mta | mta ] -> [ mta no color todestroy | mta no color todestroy] sfx1 again\ndown [ mtb | mtb ] -> [ mtb no color todestroy | mtb no color todestroy ] sfx1 again\nright [ mt2a | mt2a ] -> [ mt2a no color todestroy | mt2a no color todestroy ] sfx1 again\nright [ mt2b | mt2b ] -> [ mt2b no color todestroy | mt2b no color todestroy ] sfx1 again\n\n[anymatch]->[]\n\n\nright [ midgobble | ... | color | no color ] -> [ midgobble | ... | | color ]\nright [ midgobble color | no color ] -> [ midgobble | color ]\n\nup [ gobble | ... | color | no color ] -> [ gobble | ... | | color ]\nup [ gobble color | no color ] -> [ gobble | color ]\n\n\n\n[action player color ] [gobble ] -> [ player moved] [ gobble color] again\n\n\ndown [ color | gobble no color ] -> [ | gobble color ]\ndown [ color | no color | ... | gobble ] -> [ | color | ... | gobble ]\n\n\nleft [ color | midgobble no color ] -> [ | midgobble color ]\nleft [ color | no color | ... | midgobble ] -> [ | color | ... | midgobble ]\n\n[action player no color ] [gobble color] -> [ action player color] [ gobble] sfx0 again\n\ndown [ color | gobble no color ] -> [ | gobble color ]\ndown [ color | no color | ... | gobble ] -> [ | color | ... | gobble ]\n\n\nleft [ color | midgobble no color ] -> [ | midgobble color ]\nleft [ color | no color | ... | midgobble ] -> [ | color | ... | midgobble ]\n\n==============\nWINCONDITIONS\n==============\n\nno color\n\n=======\nLEVELS\n=======\nmessage Level 1 of 3\n\nmessage create two identical 2x2 sections side by side to make them vanish\n\n#########\n#8yy.....\n#y#######\n#b#.....#\n#b#.....#\n#b#..p..#\n#1#.....#\n#F#######\n\nmessage Level 2 of 3\n\n#########\n#6bbbyyy.\n#g#######\n#g#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n\nmessage Level 3 of 3\n\n#########\n#7ryyyyyy\n#r#######\n#r#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\nmessage my congratulations\n\n(\n\n\n#########\n#7yyyyyyy\n#r#######\n#r#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n\n#########\n#6ggbbbyy\n#g#######\n#r#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n\n##############\n#............#\n#............#\n#............#\n#...RR.......#\n#p.R.R.......#\n#...RR.......#\n#...RR.......#\n#............#\n#............#\n#............#\n#............#\n##############\n\n\n#########\n#6gbbbyy#\n#g#######\n#r#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n#########\n#6bbbyyy#\n#g#######\n#g#.....#\n#r#.....#\n#r#.p...#\n#3#.....#\n#########\n\n\n###############\n#y#...........#\n#y#...........#\n#y#...........#\n#y#...........#\n#g#...........#\n#g#...........#\n#g#.....p.....#\n#g#...........#\n#r#...........#\n#r#...........#\n#b#...........#\n#b#...........#\n#1#...........#\n###############\n\n\n#############\n#8y.........#\n#y###########\n#b#.........#\n#b#.........#\n#b#.........#\n#g#.........#\n#g#....p....#\n#g#.........#\n#r#.........#\n#r#.........#\n#3#.........#\n#############\n\n#############\n#.#.........#\n#y#.........#\n#y#.........#\n#y#.........#\n#y#....p....#\n#b#.........#\n#b#.........#\n#b#.........#\n#1#.........#\n#############\n\n###############\n#.#...........#\n#y#...........#\n#y#...........#\n#y#...........#\n#g#...........#\n#g#...........#\n#g#.....p.....#\n#r#...........#\n#r#...........#\n#r#...........#\n#b#...........#\n#b#...........#\n#1#...........#\n###############\n\n\n#############\n#.#.........#\n#y#.........#\n#y#.........#\n#y#.........#\n#y#....p....#\n#b#.........#\n#b#.........#\n#b#.........#\n#1#.........#\n#############\n\n###########\n#.........#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.........#\n#....p....#\n#.........#\n###########\n###########\n#.........#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.......y.#\n#....p....#\n#.........#\n###########\n\n\n###########\n#.........#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.r.g.b.y.#\n#.........#\n#....p....#\n#.........#\n###########\n\n\n##########\n#........#\n#...yb...#\n#..rgrg..#\n#p.byby..#\n#...gr...#\n#........#\n##########\n\n##########\n#........#\n#...gg...#\n#.p.gg...#\n#...gg...#\n#...gg...#\n#........#\n##########\n\n\n##########\n#........#\n#...yb...#\n#..rgrg..#\n#.byby...#\n#p..gr...#\n#........#\n##########\n\n\n\n##########\n#........#\n#........#\n#..rbbr..#\n#..gyyg..#\n#.p......#\n#........#\n##########\n\n########\n#......#\n#...p..#\n###....#\n#rgbr..#\n#bygy..#\n###....#\n########\n\n\n#############\n#...........#\n#...........#\n#...rrrrr...#\n#..r.rrr.r..#\n#...........#\n#.....p.....#\n#...........#\n#############\n\n\n###########\n#.........#\n#.........#\n#..rr.gg..#\n#..rr.gg..#\n#..rr.gg..#\n#.........#\n#....p....#\n#.........#\n###########\n\n\n\n\n##############\n#............#\n#.....P......#\n#.....R......#\n#...RR.RR....#\n#...RRRRR....#\n#.....RR.....#\n#.....RR.....#\n#............#\n#............#\n#............#\n#............#\n##############\n\n\n\n##############\n#............#\n#............#\n#............#\n#...RR.......#\n#p.R.R.......#\n#...RR.......#\n#...RR.......#\n#............#\n#............#\n#............#\n#............#\n##############\n\n##############\n#............#\n#............#\n#............#\n#...RRGG.....#\n#p.R.RGG.....#\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n##############\n\n)\n",[3,0,1,4,3,4,3,4,2,4,1,4,1,4,1,4,0,4,0,4,3,4,3,4,3,4,3,2,1,4,1,4,1,4,1,1,4,0,4,3,1,1,3,4,3,4,3,4,2,1,1,1,2,4,3,4,3,4,3,1,1,0,0,3,3,2,2,4,1,1,1,2,4,3,3,4,0,0,3,3,4,1,1,1,1,2,4,3,3,1,1,3,3,3,2,4,1,1,4,0,3,3,3,4,1,1,4,3,4,1,1,4,3,3,4,0,4,2,4],"background wall:0,0,0,0,0,0,0,0,0,\nbackground midgobble:1,background:2,2,2,2,background gobble red:3,0,0,2,\n0,0,0,0,0,0,0,2,0,\nbackground moved:4,4,4,2,0,0,2,0,4,\n4,4,2,0,0,2,0,4,4,\n4,2,0,0,2,0,4,background blue moved:5,background moved player:6,\n2,0,0,2,0,2,background green:7,background yellow:8,2,\n0,0,2,0,0,0,0,0,0,\n",4,"1627891318219.0203"] ], [ - "Garten der Medusen", - ["title Garten der Medusen\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nnoaction\nagain_interval 0.03\nbackground_color black\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nblood\ndarkred red \n..0..\n.010.\n01110\n.010.\n..0..\n\nMedussa_u 1\ngray green\n..1..\n.111.\n.010.\n00100\n.0.0.\n\n\nMedussa_d 2\ngray green\n.....\n.010.\n.010.\n01110\n.010.\n\nMedussa_l 3\ngray green\n.....\n.100.\n1111.\n01000\n.0.0.\n\nMedussa_r 4\ngray green\n.....\n.001.\n.1111\n00010\n.0.0.\n\nWall\ngray darkgray\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nyellow orange brown\n.000.\n.111.\n11111\n.222.\n.2.2.\n\nstatue\nlightgray gray darkgray\n.000.\n.111.\n11111\n.222.\n.2.2.\n\nmove_up\ntransparent\n\nmove_down\ntransparent\n\nmove_left\ntransparent\n\nmove_right\ntransparent\n\nmove_stop\ntransparent\n\nT\ntransparent\n\nSpawner\nblue\n.000.\n00000\n00000\n00000\n00000\n\nlight_h\nyellow\n.....\n.....\n.000.\n.....\n.....\n\n\nlight_v\nyellow\n.....\n..0..\n..0..\n..0..\n.....\n\ndontspawn\ntransparent\n\n=======\nLEGEND\n=======\n\nmedussa = 1 or 2 or 3 or 4\n\nobstacle = player or wall or medussa or statue\n. = Background\n# = Wall\nP = Player \nS = Spawner\n* = player and spawner\n\ntoken = move_up or move_down or move_left or move_right or move_stop\nlight = light_h or light_v\n\n\n=======\nSOUNDS\n=======\n\nsfx1 77753704 (kill medusa)\nsfx2 22214502 (statue)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n\nSpawner \nblood\n\nlight_h\nlight_v\nPlayer, Wall, Medussa, statue\n\ndontspawn\nT\nToken\n\n\n======\nRULES\n======\n\n\nrandom [ ] -> [ t ]\n[dontspawn]->[]\n\n[ player ] [ spawner ] -> [ player ] [ spawner dontspawn ]\n\n[ spawner no dontspawn ] [ token ] -> [ spawner no dontspawn ] [ ]\n[ spawner no dontspawn ] -> [ spawner player ]\n\n[ light ] -> []\n\n[ up player ] [ T ] -> [ player ] [ T move_up ]\n[ down player ] [ T ] -> [ player ] [ T move_down ]\n[ left player ] [ T ] -> [ player ] [ T move_left ]\n[ right player ] [ T ] -> [ player ] [ T move_right ]\n\n[ move_up ] [ player ] -> [ move_up ] [ up player ] again\n[ move_down ] [ player ] -> [ move_down ] [ down player ] again\n[ move_left ] [ player ] -> [ move_left ] [ left player ] again\n[ move_right ] [ player ] -> [ move_right ] [ right player ] again\n\n[ > player | obstacle ] [ token ] -> [ > player | obstacle ] [ move_stop ]\n\n[ > Player | Medussa ] -> [ > player | blood ] sfx1\n[ > player ] [ move_stop ] -> [ player ] [ move_stop ]\n\n[move_stop]->[]\n\nlate [ t ] -> [ ]\n\n\nlate up [ 1 | no obstacle ] -> [ 1 | light_v ]\nlate down [ 2 | no obstacle ] -> [ 2 | light_v ]\nlate left [ 3 | no obstacle ] -> [ 3 | light_h ]\nlate right [ 4 | no obstacle ] -> [ 4 | light_h ]\n\nlate horizontal [ light_h | no obstacle ] -> [ light_h | light_h ]\nlate vertical \t[ light_v | no obstacle ] -> [ light_v | light_v ]\n\n\nlate up [ 1 | player ] -> [ 1 | player light_h ]\nlate down [ 2 | player ] -> [ 2 | player light_h ]\nlate left [ 3 | player ] -> [ 3 | player light_h ]\nlate right [ 4 | player ] -> [ 4 | player light_h ]\n\nlate horizontal [ light_h | player ] -> [ light_h | player light_h ]\nlate vertical [ light_v | player ] -> [ light_v | player light_v ]\n\nlate [ player light ] -> [ statue light ] sfx2 again\n\n==============\nWINCONDITIONS\n==============\n\nNo Medussa\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 8\n\n#############\n#...........#\n#...........#\n#...1.......#\n#..3....2...#\n#...........#\n#...........#\n#..3..p..4..#\n#...2.......#\n#...........#\n#...........#\n#############\n\nmessage Level 2 von 8\n\n#############\n#...........#\n#...........#\n#...4.......#\n#...........#\n#...........#\n#.....p..2..#\n#...........#\n#..1........#\n#.......3...#\n#...........#\n#...........#\n#############\n\n\nmessage Level 3 von 8\n\n#############\n#...........#\n#...........#\n#...4.......#\n#........2..#\n#...........#\n#.....*.....#\n#...........#\n#..1........#\n#.......3...#\n#...........#\n#...........#\n#############\n\nmessage Level 4 von 8\n\n\n############\n#....34....#\n#....34....#\n#..........#\n#.....*....#\n#..........#\n#..........#\n#.4......3.#\n#..........#\n############\n\nmessage Level 5 von 8\n\n##############\n#............#\n#..2.2.2.2...#\n#............#\n#............#\n#..........*.#\n#............#\n#............#\n#.1.1.1.1....#\n#............#\n##############\n\nmessage Level 6 von 8\n\n\n#############\n#...........#\n#.4.........#\n#..2222.....#\n#...........#\n#...........#\n#........*..#\n#...........#\n#...........#\n#..1111.....#\n#.4.........#\n#...........#\n#############\n\nmessage Level 7 von 8\n\n\n###################\n#.................#\n#.................#\n#.....4...........#\n#.....4...........#\n#.....4...........#\n#............222..#\n#.................#\n#.................#\n#........*........#\n#.................#\n#.................#\n#..111............#\n#...........3.....#\n#...........3.....#\n#...........3.....#\n#.................#\n#.................#\n###################\n\n\nmessage Level 8 von 8\n\n###############\n#..........22.#\n#4............#\n#4............#\n#.............#\n#.............#\n#.............#\n#......*......#\n#.............#\n#.............#\n#.............#\n#............3#\n#............3#\n#.11..........#\n###############\n\nmessage ich gratuliere!\n\n(\n#################\n#...............#\n#...........22..#\n#.4.............#\n#.4.............#\n#...............#\n#...............#\n#...............#\n#.......*.......#\n#...............#\n#...............#\n#...............#\n#.............3.#\n#.............3.#\n#..11...........#\n#...............#\n#################\n\n\n#################\n#...............#\n#...............#\n#....4..........#\n#....4..........#\n#...........22..#\n#...............#\n#...............#\n#.......*.......#\n#...............#\n#...............#\n#..11...........#\n#..........3....#\n#..........3....#\n#...............#\n#...............#\n#################\n\n\n#################\n#...............#\n#....4..........#\n#....4..........#\n#....4..........#\n#...........222.#\n#...............#\n#...............#\n#.......*.......#\n#...............#\n#...............#\n#.111...........#\n#..........3....#\n#..........3....#\n#..........3....#\n#...............#\n#################\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.................11#\n#.........*........2#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.1.................#\n#...................#\n#####################\n\n\n###################\n#.................#\n#.................#\n#....4............#\n#....4............#\n#............22...#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#..11.............#\n#...........3.....#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n###################\n\n########\n#......#\n#.4....#\n#..2...#\n#....*.#\n#..1...#\n#.4....#\n#......#\n########\n\n\n##########\n#........#\n#.4......#\n#..2.....#\n#........#\n#.....*..#\n#........#\n#..1.....#\n#.4......#\n#........#\n##########\n\n#########\n#.......#\n#.2...2.#\n#..4.3..#\n#.......#\n#...*...#\n#.......#\n#########\n\n#############\n#...........#\n#.4.........#\n#..2........#\n#...........#\n#...........#\n#........*..#\n#...........#\n#...........#\n#..1........#\n#.4.........#\n#...........#\n#############\n\n###############\n#.............#\n#.4...........#\n#..2222.......#\n#.............#\n#.............#\n#...........*.#\n#.............#\n#.............#\n#..1111.......#\n#.4...........#\n#.............#\n###############\n\n\n##############\n#4...........#\n#.2222.......#\n#............#\n#............#\n#..........*.#\n#............#\n#............#\n#.1111.......#\n#4...........#\n##############\n\n#####################\n#...................#\n#..2.2.2.2..........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#..............*....#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.1.1.1.1...........#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#.............2.....#\n#...................#\n#...................#\n#................3..#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...4...............#\n#...................#\n#.....1.............#\n#...................#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#......4............#\n#.............2.....#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#.....1.............#\n#............3......#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#....4..............#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...4...............#\n#...................#\n#.....1.............#\n#.............1.....#\n#...................#\n#####################\n\n\n#############\n#...........#\n#...........#\n#...1.......#\n#..4....2...#\n#...........#\n#...........#\n#..3..*..4..#\n#...2.......#\n#...........#\n#...........#\n#############\n\n#############\n#...........#\n#...........#\n#...1.......#\n#..3....2...#\n#...........#\n#...........#\n#..3..*..4..#\n#...2.......#\n#...........#\n#...........#\n#############\n\n##############\n#............#\n#............#\n#...4........#\n#............#\n#............#\n#............#\n#.........1..#\n#..*.........#\n#............#\n##############\n\n##############\n#............#\n#............#\n#..4.........#\n#............#\n#............#\n#..#.........#\n#.4..........#\n#..p......1..#\n#............#\n##############\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#............1....#\n#.......p.........#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#............1....#\n#.......*.........#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#............1....#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n###################\n#.................#\n#.................#\n#.................#\n#....4............#\n#............2....#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n\n###################\n#.................#\n#.................#\n#.................#\n#....2............#\n#.................#\n#.................#\n#.................#\n#.......*....2....#\n#.................#\n#.................#\n#...1.............#\n#..............3..#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n###################\n#.................#\n#.................#\n#.................#\n#....2............#\n#.................#\n#.................#\n#............2....#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#..............3..#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n###################\n#.................#\n#.................#\n#.................#\n#....2............#\n#............2....#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#.............2.....#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#.....1.............#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#.............2.....#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.....1.............#\n#...................#\n#####################\n\n#####################\n#...................#\n#.............22....#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#....11.............#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#......4............#\n#.............2.....#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#.....1.............#\n#............3......#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#......4............#\n#.............2.....#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#.....1.............#\n#............3......#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#.............2.....#\n#....4..............#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#..............3....#\n#.....1.............#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#.......1...........#\n#......3....2.......#\n#...................#\n#...................#\n#......3..p..4......#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#.......1...........#\n#......3....2.......#\n#...................#\n#...................#\n#......3..p..4......#\n#.......2...........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#.......1...........#\n#......3....2.......#\n#...................#\n#...................#\n#......3..p..4......#\n#.......2...........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#.......1...........#\n#......3....2.......#\n#...................#\n#...................#\n#......3..p..4......#\n#.......2...........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n\n\n############\n#....34....#\n#....34....#\n#..........#\n#..........#\n#.....*....#\n#..........#\n#..........#\n#.4......3.#\n#..........#\n############\n\n\n############\n#....34....#\n#....34....#\n#..........#\n#.....*....#\n#..........#\n#.4......3.#\n#..........#\n############\n\n\n###################\n#.................#\n#.................#\n#....4............#\n#....4............#\n#............22...#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#..11.............#\n#.4...............#\n#.4...............#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n\n###############\n#.............#\n#.............#\n#...4.........#\n#.............#\n#.............#\n#.............#\n#......p...2..#\n#.............#\n#.............#\n#..1..........#\n#.........3...#\n#.............#\n#.............#\n###############\n\n###################\n#.................#\n#.................#\n#.................#\n#....4............#\n#.................#\n#.................#\n#.................#\n#.......p....2....#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n\n###################\n#.................#\n#.................#\n#.................#\n#....4............#\n#............2....#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n#############\n#....3.4....#\n#....3.4....#\n#...........#\n#.....*.....#\n#...........#\n#...........#\n#.4.......3.#\n#...........#\n#############\n\n)\n", [1, 0, 1, 0, 1, 0, 3, 0, 1, 2, 3, 0, 1, 2, 2], "background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,background medussa_r:2,1,1,1,1,1,1,1,2,1,0,\n0,1,background light_h:3,background medussa_d:4,background light_v:5,5,5,5,5,background medussa_u:6,3,1,0,\n0,1,3,4,5,5,5,5,5,6,3,1,0,\n0,1,3,4,5,5,5,5,5,6,3,1,0,\n0,1,3,4,5,5,background statue:7,5,5,6,3,1,0,\n0,1,7,1,1,1,1,1,1,1,7,1,0,\n0,1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,7,1,1,1,background dontspawn spawner:8,1,1,1,1,background player:9,0,\n0,1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,1,1,7,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 11, "1627891371908.893"] + "Garten der Medusen", + ["title Garten der Medusen\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nnoaction\nagain_interval 0.03\nbackground_color black\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nblood\ndarkred red \n..0..\n.010.\n01110\n.010.\n..0..\n\nMedussa_u 1\ngray green\n..1..\n.111.\n.010.\n00100\n.0.0.\n\n\nMedussa_d 2\ngray green\n.....\n.010.\n.010.\n01110\n.010.\n\nMedussa_l 3\ngray green\n.....\n.100.\n1111.\n01000\n.0.0.\n\nMedussa_r 4\ngray green\n.....\n.001.\n.1111\n00010\n.0.0.\n\nWall\ngray darkgray\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nyellow orange brown\n.000.\n.111.\n11111\n.222.\n.2.2.\n\nstatue\nlightgray gray darkgray\n.000.\n.111.\n11111\n.222.\n.2.2.\n\nmove_up\ntransparent\n\nmove_down\ntransparent\n\nmove_left\ntransparent\n\nmove_right\ntransparent\n\nmove_stop\ntransparent\n\nT\ntransparent\n\nSpawner\nblue\n.000.\n00000\n00000\n00000\n00000\n\nlight_h\nyellow\n.....\n.....\n.000.\n.....\n.....\n\n\nlight_v\nyellow\n.....\n..0..\n..0..\n..0..\n.....\n\ndontspawn\ntransparent\n\n=======\nLEGEND\n=======\n\nmedussa = 1 or 2 or 3 or 4\n\nobstacle = player or wall or medussa or statue\n. = Background\n# = Wall\nP = Player \nS = Spawner\n* = player and spawner\n\ntoken = move_up or move_down or move_left or move_right or move_stop\nlight = light_h or light_v\n\n\n=======\nSOUNDS\n=======\n\nsfx1 77753704 (kill medusa)\nsfx2 22214502 (statue)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n\nSpawner \nblood\n\nlight_h\nlight_v\nPlayer, Wall, Medussa, statue\n\ndontspawn\nT\nToken\n\n\n======\nRULES\n======\n\n\nrandom [ ] -> [ t ]\n[dontspawn]->[]\n\n[ player ] [ spawner ] -> [ player ] [ spawner dontspawn ]\n\n[ spawner no dontspawn ] [ token ] -> [ spawner no dontspawn ] [ ]\n[ spawner no dontspawn ] -> [ spawner player ]\n\n[ light ] -> []\n\n[ up player ] [ T ] -> [ player ] [ T move_up ]\n[ down player ] [ T ] -> [ player ] [ T move_down ]\n[ left player ] [ T ] -> [ player ] [ T move_left ]\n[ right player ] [ T ] -> [ player ] [ T move_right ]\n\n[ move_up ] [ player ] -> [ move_up ] [ up player ] again\n[ move_down ] [ player ] -> [ move_down ] [ down player ] again\n[ move_left ] [ player ] -> [ move_left ] [ left player ] again\n[ move_right ] [ player ] -> [ move_right ] [ right player ] again\n\n[ > player | obstacle ] [ token ] -> [ > player | obstacle ] [ move_stop ]\n\n[ > Player | Medussa ] -> [ > player | blood ] sfx1\n[ > player ] [ move_stop ] -> [ player ] [ move_stop ]\n\n[move_stop]->[]\n\nlate [ t ] -> [ ]\n\n\nlate up [ 1 | no obstacle ] -> [ 1 | light_v ]\nlate down [ 2 | no obstacle ] -> [ 2 | light_v ]\nlate left [ 3 | no obstacle ] -> [ 3 | light_h ]\nlate right [ 4 | no obstacle ] -> [ 4 | light_h ]\n\nlate horizontal [ light_h | no obstacle ] -> [ light_h | light_h ]\nlate vertical \t[ light_v | no obstacle ] -> [ light_v | light_v ]\n\n\nlate up [ 1 | player ] -> [ 1 | player light_h ]\nlate down [ 2 | player ] -> [ 2 | player light_h ]\nlate left [ 3 | player ] -> [ 3 | player light_h ]\nlate right [ 4 | player ] -> [ 4 | player light_h ]\n\nlate horizontal [ light_h | player ] -> [ light_h | player light_h ]\nlate vertical [ light_v | player ] -> [ light_v | player light_v ]\n\nlate [ player light ] -> [ statue light ] sfx2 again\n\n==============\nWINCONDITIONS\n==============\n\nNo Medussa\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 8\n\n#############\n#...........#\n#...........#\n#...1.......#\n#..3....2...#\n#...........#\n#...........#\n#..3..p..4..#\n#...2.......#\n#...........#\n#...........#\n#############\n\nmessage Level 2 von 8\n\n#############\n#...........#\n#...........#\n#...4.......#\n#...........#\n#...........#\n#.....p..2..#\n#...........#\n#..1........#\n#.......3...#\n#...........#\n#...........#\n#############\n\n\nmessage Level 3 von 8\n\n#############\n#...........#\n#...........#\n#...4.......#\n#........2..#\n#...........#\n#.....*.....#\n#...........#\n#..1........#\n#.......3...#\n#...........#\n#...........#\n#############\n\nmessage Level 4 von 8\n\n\n############\n#....34....#\n#....34....#\n#..........#\n#.....*....#\n#..........#\n#..........#\n#.4......3.#\n#..........#\n############\n\nmessage Level 5 von 8\n\n##############\n#............#\n#..2.2.2.2...#\n#............#\n#............#\n#..........*.#\n#............#\n#............#\n#.1.1.1.1....#\n#............#\n##############\n\nmessage Level 6 von 8\n\n\n#############\n#...........#\n#.4.........#\n#..2222.....#\n#...........#\n#...........#\n#........*..#\n#...........#\n#...........#\n#..1111.....#\n#.4.........#\n#...........#\n#############\n\nmessage Level 7 von 8\n\n\n###################\n#.................#\n#.................#\n#.....4...........#\n#.....4...........#\n#.....4...........#\n#............222..#\n#.................#\n#.................#\n#........*........#\n#.................#\n#.................#\n#..111............#\n#...........3.....#\n#...........3.....#\n#...........3.....#\n#.................#\n#.................#\n###################\n\n\nmessage Level 8 von 8\n\n###############\n#..........22.#\n#4............#\n#4............#\n#.............#\n#.............#\n#.............#\n#......*......#\n#.............#\n#.............#\n#.............#\n#............3#\n#............3#\n#.11..........#\n###############\n\nmessage ich gratuliere!\n\n(\n#################\n#...............#\n#...........22..#\n#.4.............#\n#.4.............#\n#...............#\n#...............#\n#...............#\n#.......*.......#\n#...............#\n#...............#\n#...............#\n#.............3.#\n#.............3.#\n#..11...........#\n#...............#\n#################\n\n\n#################\n#...............#\n#...............#\n#....4..........#\n#....4..........#\n#...........22..#\n#...............#\n#...............#\n#.......*.......#\n#...............#\n#...............#\n#..11...........#\n#..........3....#\n#..........3....#\n#...............#\n#...............#\n#################\n\n\n#################\n#...............#\n#....4..........#\n#....4..........#\n#....4..........#\n#...........222.#\n#...............#\n#...............#\n#.......*.......#\n#...............#\n#...............#\n#.111...........#\n#..........3....#\n#..........3....#\n#..........3....#\n#...............#\n#################\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.................11#\n#.........*........2#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.1.................#\n#...................#\n#####################\n\n\n###################\n#.................#\n#.................#\n#....4............#\n#....4............#\n#............22...#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#..11.............#\n#...........3.....#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n###################\n\n########\n#......#\n#.4....#\n#..2...#\n#....*.#\n#..1...#\n#.4....#\n#......#\n########\n\n\n##########\n#........#\n#.4......#\n#..2.....#\n#........#\n#.....*..#\n#........#\n#..1.....#\n#.4......#\n#........#\n##########\n\n#########\n#.......#\n#.2...2.#\n#..4.3..#\n#.......#\n#...*...#\n#.......#\n#########\n\n#############\n#...........#\n#.4.........#\n#..2........#\n#...........#\n#...........#\n#........*..#\n#...........#\n#...........#\n#..1........#\n#.4.........#\n#...........#\n#############\n\n###############\n#.............#\n#.4...........#\n#..2222.......#\n#.............#\n#.............#\n#...........*.#\n#.............#\n#.............#\n#..1111.......#\n#.4...........#\n#.............#\n###############\n\n\n##############\n#4...........#\n#.2222.......#\n#............#\n#............#\n#..........*.#\n#............#\n#............#\n#.1111.......#\n#4...........#\n##############\n\n#####################\n#...................#\n#..2.2.2.2..........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#..............*....#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.1.1.1.1...........#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#.............2.....#\n#...................#\n#...................#\n#................3..#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...4...............#\n#...................#\n#.....1.............#\n#...................#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#......4............#\n#.............2.....#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#.....1.............#\n#............3......#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#....4..............#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...4...............#\n#...................#\n#.....1.............#\n#.............1.....#\n#...................#\n#####################\n\n\n#############\n#...........#\n#...........#\n#...1.......#\n#..4....2...#\n#...........#\n#...........#\n#..3..*..4..#\n#...2.......#\n#...........#\n#...........#\n#############\n\n#############\n#...........#\n#...........#\n#...1.......#\n#..3....2...#\n#...........#\n#...........#\n#..3..*..4..#\n#...2.......#\n#...........#\n#...........#\n#############\n\n##############\n#............#\n#............#\n#...4........#\n#............#\n#............#\n#............#\n#.........1..#\n#..*.........#\n#............#\n##############\n\n##############\n#............#\n#............#\n#..4.........#\n#............#\n#............#\n#..#.........#\n#.4..........#\n#..p......1..#\n#............#\n##############\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#............1....#\n#.......p.........#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#............1....#\n#.......*.........#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#............1....#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n###################\n#.................#\n#.................#\n#.................#\n#....4............#\n#............2....#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n\n###################\n#.................#\n#.................#\n#.................#\n#....2............#\n#.................#\n#.................#\n#.................#\n#.......*....2....#\n#.................#\n#.................#\n#...1.............#\n#..............3..#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n###################\n#.................#\n#.................#\n#.................#\n#....2............#\n#.................#\n#.................#\n#............2....#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#..............3..#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n###################\n#.................#\n#.................#\n#.................#\n#....2............#\n#............2....#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n#####################\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#.............2.....#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#.....1.............#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#.............2.....#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.....1.............#\n#...................#\n#####################\n\n#####################\n#...................#\n#.............22....#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#....11.............#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#......4............#\n#.............2.....#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#.....1.............#\n#............3......#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#......4............#\n#.............2.....#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#.....1.............#\n#............3......#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#.............2.....#\n#....4..............#\n#...................#\n#...................#\n#...................#\n#.........*.........#\n#...................#\n#...................#\n#...................#\n#..............3....#\n#.....1.............#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#.......1...........#\n#......3....2.......#\n#...................#\n#...................#\n#......3..p..4......#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n#####################\n#...................#\n#...................#\n#...................#\n#.......1...........#\n#......3....2.......#\n#...................#\n#...................#\n#......3..p..4......#\n#.......2...........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#.......1...........#\n#......3....2.......#\n#...................#\n#...................#\n#......3..p..4......#\n#.......2...........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n\n\n\n#####################\n#...................#\n#...................#\n#...................#\n#.......1...........#\n#......3....2.......#\n#...................#\n#...................#\n#......3..p..4......#\n#.......2...........#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n\n\n############\n#....34....#\n#....34....#\n#..........#\n#..........#\n#.....*....#\n#..........#\n#..........#\n#.4......3.#\n#..........#\n############\n\n\n############\n#....34....#\n#....34....#\n#..........#\n#.....*....#\n#..........#\n#.4......3.#\n#..........#\n############\n\n\n###################\n#.................#\n#.................#\n#....4............#\n#....4............#\n#............22...#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#..11.............#\n#.4...............#\n#.4...............#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n\n###############\n#.............#\n#.............#\n#...4.........#\n#.............#\n#.............#\n#.............#\n#......p...2..#\n#.............#\n#.............#\n#..1..........#\n#.........3...#\n#.............#\n#.............#\n###############\n\n###################\n#.................#\n#.................#\n#.................#\n#....4............#\n#.................#\n#.................#\n#.................#\n#.......p....2....#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n\n###################\n#.................#\n#.................#\n#.................#\n#....4............#\n#............2....#\n#.................#\n#.................#\n#.......*.........#\n#.................#\n#.................#\n#...1.............#\n#...........3.....#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n#############\n#....3.4....#\n#....3.4....#\n#...........#\n#.....*.....#\n#...........#\n#...........#\n#.4.......3.#\n#...........#\n#############\n\n)\n",[1,0,1,0,1,0,3,0,1,2,3,0,1,2,2],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,background medussa_r:2,1,1,1,1,1,1,1,2,1,0,\n0,1,background light_h:3,background medussa_d:4,background light_v:5,5,5,5,5,background medussa_u:6,3,1,0,\n0,1,3,4,5,5,5,5,5,6,3,1,0,\n0,1,3,4,5,5,5,5,5,6,3,1,0,\n0,1,3,4,5,5,background statue:7,5,5,6,3,1,0,\n0,1,7,1,1,1,1,1,1,1,7,1,0,\n0,1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,7,1,1,1,background dontspawn spawner:8,1,1,1,1,background player:9,0,\n0,1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,1,1,7,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n",11,"1627891371908.893"] ], [ - "Kreiseln", - ["title Kreiseln\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nagain_interval 0.1\nverbose_logging\n\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen darkblue\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\npink\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nbrown yellow white blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nYellow yellow orange\n.111.\n10001\n10001\n21002\n.222.\n\n\nhinge H\norange brown darkbrown\n10101\n01210\n12221\n01210\n10101\n\ndoor_l L\norange brown\n.....\n0000.\n11110\n0000.\n.....\n\n\ndoor_r R\norange brown\n.....\n.0000\n01111\n.0000\n.....\n\n\n\ndoor_u U\norange brown\n.010.\n.010.\n.010.\n.010.\n..0..\n\ndoor_d D\norange brown\n..0..\n.010.\n.010.\n.010.\n.010.\n\n\ndoor_dl \norange brown\n.....\n..00.\n.010.\n010..\n10...\n\n\ndoor_dr \norange brown\n.....\n.00..\n.010.\n..010\n...01\n\n\ndoor_ul \norange brown\n10...\n010..\n.010.\n..00.\n.....\n\ndoor_ur \norange brown\n...01\n..010\n.010.\n.00..\n.....\n\nul\norange\n0....\n.....\n.....\n.....\n.....\n\nur\norange\n....0\n.....\n.....\n.....\n.....\n\n\ndl\norange\n.....\n.....\n.....\n.....\n0....\n\n\ndr\norange\n.....\n.....\n.....\n.....\n....0\n\n\ncw\ntransparent\n\nccw \ntransparent\n\nknock\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\northo = door_u or door_d or door_l or door_r\ndiagonal = door_ul or door_ur or door_dl or door_dr\nDoor = ortho or diagonal\ndoorpart = door or hinge\nobstacle = wall or player or hinge or crate\nw = cw or ccw\n\n\npushable = player or crate or ortho\n\npushing = player or crate\n\npixel = ul or ur or dl or dr\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, hinge\ndoor\ncw, ccw\nul\nur\ndl\ndr\nknock\n\n======\nRULES\n======\n\n[pixel]->[]\n\n\ndown [ cw door_dl | pushable | pushable ] -> [ cw door_dl | down pushable | left pushable ]\nleft [ ccw door_dl | pushable | pushable ] -> [ ccw door_dl | left pushable | down pushable ]\n\ndown [ ccw door_dr | pushable | pushable ] -> [ ccw door_dr | down pushable | right pushable ]\nright [ cw door_dr | pushable | pushable ] -> [ cw door_dr | right pushable | down pushable ]\n\nup [ ccw door_ul | pushable | pushable ] -> [ ccw door_ul | up pushable | left pushable ]\nleft [ cw door_ul | pushable | pushable ] -> [ cw door_ul | left pushable | up pushable ]\n\nup [ cw door_ur | pushable | pushable ] -> [ cw door_ur | up pushable | right pushable ]\nright [ ccw door_ur | pushable | pushable ] -> [ ccw door_ur | right pushable | up pushable ]\n\n[ > pushable | player ] -> [ > pushable | > player ]\n\ndown [ cw door_dl | pushable ] -> [ cw door_dl | down pushable ]\nleft [ ccw door_dl | pushable ] -> [ ccw door_dl | left pushable ]\n\ndown [ ccw door_dr | pushable ] -> [ ccw door_dr | down pushable ]\nright [ cw door_dr | pushable ] -> [ cw door_dr | right pushable ]\n\nup [ ccw door_ul | pushable ] -> [ ccw door_ul | up pushable ]\nleft [ cw door_ul | pushable ] -> [ cw door_ul | left pushable ]\n\nup [ cw door_ur | pushable ] -> [ cw door_ur | up pushable ]\nright [ ccw door_ur | pushable ] -> [ ccw door_ur | right pushable ]\n\n\ndown [ cw door_dl | ] -> [ | door_l ]\nleft [ ccw door_dl | ] -> [ | door_d ]\n\ndown [ ccw door_dr | ] -> [ | door_r ]\nright [ cw door_dr | ] -> [ | door_d ]\n\nup [ ccw door_ul | ] -> [ | door_l ]\nleft [ cw door_ul | ] -> [ | door_u ]\n\nup [ cw door_ur | ] -> [ | door_r ]\nright [ ccw door_ur | ] -> [ | door_u ]\n\n\n\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > player | crate | crate ] -> cancel\n([ > crate | stationary crate ] -> [ > crate | > crate ])\n\n[ > player | door ] -> [ > player knock | > door ]\n[> pushing | knock] -> [ pushing knock | knock ]\n\n[knock]->[]\n\nright [ down door_r | hinge ] -> [ down door_r | hinge ccw ] \nright [ up door_r | hinge ] -> [ up door_r | hinge cw ] \n\nleft [ up door_l | hinge ] -> [ up door_l | hinge ccw ] \nleft [ down door_l | hinge ] -> [ down door_l | hinge cw ] \n\nup [ left door_u | hinge ] -> [ left door_u | hinge cw ] \nup [ right door_u | hinge ] -> [ right door_u | hinge ccw ] \n\ndown [ right door_d | hinge ] -> [ right door_d | hinge cw ] \ndown [ left door_d | hinge ] -> [ left door_d | hinge ccw ] \n\n\n[ door_u ] -> [ up door_u ]\n[ door_d ] -> [ down door_d ]\n[ door_l ] -> [ left door_l ]\n[ door_r ] -> [ right door_r ]\n\n[ > door | hinge cw ] -> [ ^ door cw | hinge cw ]\n[ > door | hinge ccw ] -> [ ^ door ccw | hinge ccw ]\n[ > door | no hinge ] -> [ door | ]\n\n\ndown [ ccw door_r | wall ] -> cancel\nup [ cw door_r | wall ] -> cancel\ndown [ cw door_l | wall ] -> cancel\nup [ ccw door_l | wall ] -> cancel\nright [ ccw door_u | wall ] -> cancel\nleft [ cw door_u | wall ] -> cancel\nright [ cw door_d | wall ] -> cancel\nleft [ ccw door_d | wall ] -> cancel\n\ndown [ ccw door_r | pushable ] -> [ ccw door_r | right pushable ccw ]\nup [ cw door_r | pushable ] -> [ cw door_r | right pushable cw ]\ndown [ cw door_l | pushable ] -> [ cw door_l | left pushable cw ]\nup [ ccw door_l | pushable ] -> [ ccw door_l | left pushable ccw ]\nright [ ccw door_u | pushable ] -> [ ccw door_u | up pushable ccw ]\nleft [ cw door_u | pushable ] -> [ cw door_u | up pushable cw ]\nright [ cw door_d | pushable ] -> [ cw door_d | down pushable cw ]\nleft [ ccw door_d | pushable ] -> [ ccw door_d | down pushable ccw ]\n\n[ > crate | stationary crate ] -> [ > crate | > crate ]\n[ > crate | > crate | > crate | ... | > crate ] -> [ > crate | > crate | > crate | ... | stationary crate ]\n\n[ cw > crate | > crate | > crate ] -> [ cw > crate | > crate | v crate ]\n[ ccw > crate | > crate | > crate ] -> [ cw > crate | > crate | ^ crate ]\n[ w crate ] -> [ crate ]\n\n[ > crate | no obstacle ] -> [ | crate ] \n+ [ > player | no obstacle ] -> [ | player ] \n\n[ moving door ] -> [ door ] \n\n+ down [ ccw door_r | ] -> [ | ccw door_ur ]\n+ up [ cw door_r | ] -> [ | cw door_dr ]\n+ down [ cw door_l | ] -> [ | cw door_ul ]\n+ up [ ccw door_l | ] -> [ | ccw door_dl ]\n\n+ right [ ccw door_u | ] -> [ | ccw door_ul ]\n+ left [ cw door_u | ] -> [ | cw door_ur ]\n+ right [ cw door_d | ] -> [ | cw door_dl ]\n+ left [ ccw door_d | ] -> [ | ccw door_dr ]\n\n[ diagonal ] -> again\n\n[ w hinge ] -> [ hinge ]\n[ w ortho ] -> [ ortho ]\n\nlate [ crate door ] -> cancel\nlate [ player door ] -> cancel\n\n\nlate up [ door_ul | ] -> [ door_ul | dl ]\nlate left [ door_ul | ] -> [ door_ul | ur ]\n\nlate down [ door_dl | ] -> [ door_dl | ul ]\nlate left [ door_dl | ] -> [ door_dl | dr ]\n\nlate up [ door_ur | ] -> [ door_ur | dr ]\nlate right [ door_ur | ] -> [ door_ur | ul ]\n\nlate down [ door_dr | ] -> [ door_dr | ur ]\nlate right [ door_dr | ] -> [ door_dr | dl ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nno diagonal\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 5\n\n#######\n#.....#\n#..o..#\n#.....#\n#.d...#\n#.hl..#\n#.u.d.#\n#..rh.#\n#..*u.#\n#.....#\n#..p..#\n#.....#\n#######\n\nmessage Level 2 von 5\n\n\n#################\n#...*...*.odo...#\n#.p.*...*.oho...#\n#...*...*.ouo...#\n#################\n\nmessage Level 3 von 5\n\n\n#########\n#.......#\n#..rhl..#\n#.do*od.#\n#.h*.*h.#\n#.uo*ou.#\n#..rhl..#\n#.p.....#\n#########\n\nmessage Level 4 von 5\n\n#########\n#...o...#\n#..rhl..#\n#.d*.*d.#\n#.ho.oh.#\n#.u*o*u.#\n#..rhl..#\n#.p.....#\n#########\n\nmessage Level 5 von 5\n\n#########\n#...o...#\n#.hl.rh.#\n#.u*d*u.#\n#o.rhl.o#\n#.d*u*d.#\n#phl.rh.#\n#...o...#\n#########\n\nmessage Sie sind aber talentiert!\n\n\n", [0, 3, 3, 0, 0, 0, 1, 1, 0], "background wall:0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\nbackground:1,1,1,1,background door_r:2,1,1,\n1,1,1,1,0,0,1,\n1,1,background door_d:3,background hinge:4,1,1,1,\n1,1,1,0,0,1,background target:5,\n1,background player:6,background door_l:7,1,2,1,1,\n1,1,0,0,1,1,1,\n1,1,1,4,background door_u:8,1,1,\n1,0,0,1,1,1,1,\n1,1,7,background crate:9,1,1,1,\n0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\n", 1, "1627891389385.0288"] + "Kreiseln", + ["title Kreiseln\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nagain_interval 0.1\nverbose_logging\n\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen darkblue\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\npink\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nbrown yellow white blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nYellow yellow orange\n.111.\n10001\n10001\n21002\n.222.\n\n\nhinge H\norange brown darkbrown\n10101\n01210\n12221\n01210\n10101\n\ndoor_l L\norange brown\n.....\n0000.\n11110\n0000.\n.....\n\n\ndoor_r R\norange brown\n.....\n.0000\n01111\n.0000\n.....\n\n\n\ndoor_u U\norange brown\n.010.\n.010.\n.010.\n.010.\n..0..\n\ndoor_d D\norange brown\n..0..\n.010.\n.010.\n.010.\n.010.\n\n\ndoor_dl \norange brown\n.....\n..00.\n.010.\n010..\n10...\n\n\ndoor_dr \norange brown\n.....\n.00..\n.010.\n..010\n...01\n\n\ndoor_ul \norange brown\n10...\n010..\n.010.\n..00.\n.....\n\ndoor_ur \norange brown\n...01\n..010\n.010.\n.00..\n.....\n\nul\norange\n0....\n.....\n.....\n.....\n.....\n\nur\norange\n....0\n.....\n.....\n.....\n.....\n\n\ndl\norange\n.....\n.....\n.....\n.....\n0....\n\n\ndr\norange\n.....\n.....\n.....\n.....\n....0\n\n\ncw\ntransparent\n\nccw \ntransparent\n\nknock\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\northo = door_u or door_d or door_l or door_r\ndiagonal = door_ul or door_ur or door_dl or door_dr\nDoor = ortho or diagonal\ndoorpart = door or hinge\nobstacle = wall or player or hinge or crate\nw = cw or ccw\n\n\npushable = player or crate or ortho\n\npushing = player or crate\n\npixel = ul or ur or dl or dr\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, hinge\ndoor\ncw, ccw\nul\nur\ndl\ndr\nknock\n\n======\nRULES\n======\n\n[pixel]->[]\n\n\ndown [ cw door_dl | pushable | pushable ] -> [ cw door_dl | down pushable | left pushable ]\nleft [ ccw door_dl | pushable | pushable ] -> [ ccw door_dl | left pushable | down pushable ]\n\ndown [ ccw door_dr | pushable | pushable ] -> [ ccw door_dr | down pushable | right pushable ]\nright [ cw door_dr | pushable | pushable ] -> [ cw door_dr | right pushable | down pushable ]\n\nup [ ccw door_ul | pushable | pushable ] -> [ ccw door_ul | up pushable | left pushable ]\nleft [ cw door_ul | pushable | pushable ] -> [ cw door_ul | left pushable | up pushable ]\n\nup [ cw door_ur | pushable | pushable ] -> [ cw door_ur | up pushable | right pushable ]\nright [ ccw door_ur | pushable | pushable ] -> [ ccw door_ur | right pushable | up pushable ]\n\n[ > pushable | player ] -> [ > pushable | > player ]\n\ndown [ cw door_dl | pushable ] -> [ cw door_dl | down pushable ]\nleft [ ccw door_dl | pushable ] -> [ ccw door_dl | left pushable ]\n\ndown [ ccw door_dr | pushable ] -> [ ccw door_dr | down pushable ]\nright [ cw door_dr | pushable ] -> [ cw door_dr | right pushable ]\n\nup [ ccw door_ul | pushable ] -> [ ccw door_ul | up pushable ]\nleft [ cw door_ul | pushable ] -> [ cw door_ul | left pushable ]\n\nup [ cw door_ur | pushable ] -> [ cw door_ur | up pushable ]\nright [ ccw door_ur | pushable ] -> [ ccw door_ur | right pushable ]\n\n\ndown [ cw door_dl | ] -> [ | door_l ]\nleft [ ccw door_dl | ] -> [ | door_d ]\n\ndown [ ccw door_dr | ] -> [ | door_r ]\nright [ cw door_dr | ] -> [ | door_d ]\n\nup [ ccw door_ul | ] -> [ | door_l ]\nleft [ cw door_ul | ] -> [ | door_u ]\n\nup [ cw door_ur | ] -> [ | door_r ]\nright [ ccw door_ur | ] -> [ | door_u ]\n\n\n\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > player | crate | crate ] -> cancel\n([ > crate | stationary crate ] -> [ > crate | > crate ])\n\n[ > player | door ] -> [ > player knock | > door ]\n[> pushing | knock] -> [ pushing knock | knock ]\n\n[knock]->[]\n\nright [ down door_r | hinge ] -> [ down door_r | hinge ccw ] \nright [ up door_r | hinge ] -> [ up door_r | hinge cw ] \n\nleft [ up door_l | hinge ] -> [ up door_l | hinge ccw ] \nleft [ down door_l | hinge ] -> [ down door_l | hinge cw ] \n\nup [ left door_u | hinge ] -> [ left door_u | hinge cw ] \nup [ right door_u | hinge ] -> [ right door_u | hinge ccw ] \n\ndown [ right door_d | hinge ] -> [ right door_d | hinge cw ] \ndown [ left door_d | hinge ] -> [ left door_d | hinge ccw ] \n\n\n[ door_u ] -> [ up door_u ]\n[ door_d ] -> [ down door_d ]\n[ door_l ] -> [ left door_l ]\n[ door_r ] -> [ right door_r ]\n\n[ > door | hinge cw ] -> [ ^ door cw | hinge cw ]\n[ > door | hinge ccw ] -> [ ^ door ccw | hinge ccw ]\n[ > door | no hinge ] -> [ door | ]\n\n\ndown [ ccw door_r | wall ] -> cancel\nup [ cw door_r | wall ] -> cancel\ndown [ cw door_l | wall ] -> cancel\nup [ ccw door_l | wall ] -> cancel\nright [ ccw door_u | wall ] -> cancel\nleft [ cw door_u | wall ] -> cancel\nright [ cw door_d | wall ] -> cancel\nleft [ ccw door_d | wall ] -> cancel\n\ndown [ ccw door_r | pushable ] -> [ ccw door_r | right pushable ccw ]\nup [ cw door_r | pushable ] -> [ cw door_r | right pushable cw ]\ndown [ cw door_l | pushable ] -> [ cw door_l | left pushable cw ]\nup [ ccw door_l | pushable ] -> [ ccw door_l | left pushable ccw ]\nright [ ccw door_u | pushable ] -> [ ccw door_u | up pushable ccw ]\nleft [ cw door_u | pushable ] -> [ cw door_u | up pushable cw ]\nright [ cw door_d | pushable ] -> [ cw door_d | down pushable cw ]\nleft [ ccw door_d | pushable ] -> [ ccw door_d | down pushable ccw ]\n\n[ > crate | stationary crate ] -> [ > crate | > crate ]\n[ > crate | > crate | > crate | ... | > crate ] -> [ > crate | > crate | > crate | ... | stationary crate ]\n\n[ cw > crate | > crate | > crate ] -> [ cw > crate | > crate | v crate ]\n[ ccw > crate | > crate | > crate ] -> [ cw > crate | > crate | ^ crate ]\n[ w crate ] -> [ crate ]\n\n[ > crate | no obstacle ] -> [ | crate ] \n+ [ > player | no obstacle ] -> [ | player ] \n\n[ moving door ] -> [ door ] \n\n+ down [ ccw door_r | ] -> [ | ccw door_ur ]\n+ up [ cw door_r | ] -> [ | cw door_dr ]\n+ down [ cw door_l | ] -> [ | cw door_ul ]\n+ up [ ccw door_l | ] -> [ | ccw door_dl ]\n\n+ right [ ccw door_u | ] -> [ | ccw door_ul ]\n+ left [ cw door_u | ] -> [ | cw door_ur ]\n+ right [ cw door_d | ] -> [ | cw door_dl ]\n+ left [ ccw door_d | ] -> [ | ccw door_dr ]\n\n[ diagonal ] -> again\n\n[ w hinge ] -> [ hinge ]\n[ w ortho ] -> [ ortho ]\n\nlate [ crate door ] -> cancel\nlate [ player door ] -> cancel\n\n\nlate up [ door_ul | ] -> [ door_ul | dl ]\nlate left [ door_ul | ] -> [ door_ul | ur ]\n\nlate down [ door_dl | ] -> [ door_dl | ul ]\nlate left [ door_dl | ] -> [ door_dl | dr ]\n\nlate up [ door_ur | ] -> [ door_ur | dr ]\nlate right [ door_ur | ] -> [ door_ur | ul ]\n\nlate down [ door_dr | ] -> [ door_dr | ur ]\nlate right [ door_dr | ] -> [ door_dr | dl ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nno diagonal\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 5\n\n#######\n#.....#\n#..o..#\n#.....#\n#.d...#\n#.hl..#\n#.u.d.#\n#..rh.#\n#..*u.#\n#.....#\n#..p..#\n#.....#\n#######\n\nmessage Level 2 von 5\n\n\n#################\n#...*...*.odo...#\n#.p.*...*.oho...#\n#...*...*.ouo...#\n#################\n\nmessage Level 3 von 5\n\n\n#########\n#.......#\n#..rhl..#\n#.do*od.#\n#.h*.*h.#\n#.uo*ou.#\n#..rhl..#\n#.p.....#\n#########\n\nmessage Level 4 von 5\n\n#########\n#...o...#\n#..rhl..#\n#.d*.*d.#\n#.ho.oh.#\n#.u*o*u.#\n#..rhl..#\n#.p.....#\n#########\n\nmessage Level 5 von 5\n\n#########\n#...o...#\n#.hl.rh.#\n#.u*d*u.#\n#o.rhl.o#\n#.d*u*d.#\n#phl.rh.#\n#...o...#\n#########\n\nmessage Sie sind aber talentiert!\n\n\n",[0,3,3,0,0,0,1,1,0],"background wall:0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\nbackground:1,1,1,1,background door_r:2,1,1,\n1,1,1,1,0,0,1,\n1,1,background door_d:3,background hinge:4,1,1,1,\n1,1,1,0,0,1,background target:5,\n1,background player:6,background door_l:7,1,2,1,1,\n1,1,0,0,1,1,1,\n1,1,1,4,background door_u:8,1,1,\n1,0,0,1,1,1,1,\n1,1,7,background crate:9,1,1,1,\n0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\n",1,"1627891389385.0288"] ], [ - "Des Poseidons Dreizack", - ["title Des Poseidons Dreizack\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\ntext_color #e7cf5c\nbackground_color #041646\n\nnoaction\n\nrun_rules_on_level_start\n\nagain_interval 0.1\n(verbose_logging)\n\n\n(flickscreen 14x13)\n\n========\nOBJECTS\n========\n\nBackground\nblue #204ec5\n00000\n01000\n00000\n00010\n00000\n\nsmrocks k\nbrown darkbrown \n.1.1.\n10101\n.1.1.\n10101\n.1.1.\n\nteleport T\nlightblue blue darkblue\n10101\n01210\n12221\n01210\n10101\n\nTarget\ndarkblue transparent \n01110\n1.0.1\n10001\n1.0.1\n01110\n\nWall\ngreen lightgreen #2d6d0c\n00000\n00010\n00000\n01000\n00000\n\nwallalt \"\ngreen lightgreen #2d6d0c\n00000\n00000\n00000\n01000\n00000\n\n\nwallalt2 '\ngreen lightgreen #2d6d0c\n00000\n00010\n00000\n00000\n00000\n\ncoast_u\nlightblue\n.0.0.\n.....\n.....\n.....\n.....\n\ncoast_d\nlightblue\n.....\n.....\n.....\n.....\n.0.0.\n\ncoast_l\nlightblue\n.....\n0....\n.....\n0....\n.....\n\ncoast_r\nlightblue\n.....\n....0\n.....\n....0\n.....\n\nendhand x\npink\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\n\nPlayer\nbrown orange yellow lightblue\n2.2.2\n2.2.2\n22222\n..1..\n.313.\n\nunderplayer\nlightblue\n..0..\n.....\n.....\n.....\n.....\n\nmagnet\nlightblue blue\n.0000\n0....\n0.000\n0...0\n.000.\n\n\nflowers \ndarkgreen brown\n.000.\n00000\n.000.\n..1..\n..1..\n\nhinge H\norange green darkgray \n10001\n02220\n02220\n02220\n10001\n\ndoor_l L\npink darkgray transparent\n.2.2.\n0000.\n11110\n0000.\n.2.2.\n\n\ndoor_r R\npink darkgray transparent\n.2.2.\n.0000\n01111\n.0000\n.2.2.\n\n\n\ndoor_u U\npink darkgray transparent\n.010.\n20102\n.010.\n20102\n..0..\n\ndoor_d D\npink darkgray transparent\n..0..\n20102\n.010.\n20102\n.010.\n\n\ndoor_dl 1\npink darkgray\n.....\n..00.\n.010.\n010..\n10...\n\n\ndoor_dr 2\npink darkgray\n.....\n.00..\n.010.\n..010\n...01\n\n\ndoor_ul 3\npink darkgray\n10...\n010..\n.010.\n..00.\n.....\n\ndoor_ur 4\npink darkgray\n...01\n..010\n.010.\n.00..\n.....\n\nul\norange\n0....\n.....\n.....\n.....\n.....\n\nur\norange\n....0\n.....\n.....\n.....\n.....\n\n\ndl\norange\n.....\n.....\n.....\n.....\n0....\n\n\ndr\norange\n.....\n.....\n.....\n.....\n....0\n\nwu\ngreen lightgreen\n10101\n.....\n.....\n.....\n.....\n\nwd\ngreen lightgreen\n.....\n.....\n.....\n.....\n10101\n\nwl\ngreen lightgreen\n1....\n0....\n1....\n0....\n1....\n\nwr\ngreen lightgreen\n....1\n....0\n....1\n....0\n....1\n\nsuck_d\nlightblue\n.....\n.....\n.0.0.\n..0..\n.....\n\n\nsuck_u\nlightblue\n.....\n..0..\n.0.0.\n.....\n.....\n\n\nsuck_r\nlightblue\n.....\n..0..\n...0.\n..0..\n.....\n\n\nsuck_l\nlightblue\n.....\n..0..\n.0...\n..0..\n.....\n\ntemp\ntransparent\n\nA \ntransparent\n\nS\nlightblue\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nnopull\ntransparent\n\nspawned \ntransparent\n\n\nip1 §\n#ffff05 #ffa33b\n0.0.0\n0.0.0\n00000\n..1..\n..1..\n\nip2 ±\n#8e4833\n.....\n.....\n....0\n....0\n....0\n\nip3 `\n#8e4833 #dbc297\n.....\n00000\n11111\n1.1.1\n11111\n\nip4 ~\n#8e4833\n.....\n.....\n0....\n0....\n0....\n\n5\n#ffa33b #dbc297\n..0..\n.111.\n.111.\n.111.\n..011\n\n6\n#8e4833 #dbc297\n....0\n....0\n.....\n.....\n....1\n\n7\n#8e4833 #dbc297\n00000\n01110\n00000\n00000\n10001\n\n8\n#8e4833 #dbc297\n0....\n.....\n.....\n.....\n1....\n\n9\n#ffa33b #dbc297\n..0.1\n.....\n.....\n.....\n.....\n\n0\n#dbc297 white\n0..00\n00000\n.00.0\n....1\n....1\n\nbla !\n#dbc297 white\n00000\n00000\n00000\n10000\n11100\n\nblo @\n#dbc297\n00...\n000..\n000..\n0.00.\n..00.\n\n\n(BLANK)\n\nble £\nwhite\n....0\n....0\n....0\n...00\n...00\n\nble1 $\nwhite #dbc297\n00000\n00000\n00000\n00001\n00011\n\nble2 \\\n#dbc297 white\n..00.\n1.00.\n1000.\n1000.\n100..\n\n(SKIP)\n\nble3 Y\nwhite #dbc297\n...00\n...00\n....1\n....1\n....1\n\nble4 &\nwhite #dbc297\n00111\n1.111\n1..11\n1..11\n1..11\n\nble5 *\nwhite\n0....\n.....\n.....\n.....\n.....\n\n\nble6 -\n#dbc297\n.....\n...00\n.....\n.....\n.....\n\nble7 =\n#dbc297\n0..00\n0.000\n.....\n.....\n.....\n\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nM = magnet\nO = Target\n\n\nwalls = wall or wallalt or wallalt2\northo = door_u or door_d or door_l or door_r\ndiagonal = door_ul or door_ur or door_dl or door_dr\nDoor = ortho or diagonal\ndoorpart = door or hinge\nobstacle = walls or player or hinge or magnet or door or smrocks\nthick = wall or hinge or magnet or door or teleport\n\n\nfixture = wall or hinge \n\npixel = ul or ur or dl or dr\nwalltype = wall or wallalt or wallalt2\n\nfillwalltype = wall or hinge\n\nsuck = suck_u or suck_d or suck_l or suck_r\n\ncoast = coast_u or coast_d or coast_l or coast_r\n\nverge = wl or wr or wu or wd\ndecoration = coast or verge \n\n% = flowers and wall\n\nimage = ip1 or ip2 or ip3 or ip4 or 5 or 6 or 7 or 8 or 9 or 0 or bla or blo or ble or ble1 or ble2 or ble3 or ble4 or ble5 or ble6 or ble7 \n\n\n=======\nSOUNDS\n=======\n\nsfx0 1415300 (swing)\nsfx1 7555504 (cantmove)\nsfx2 16800907 (whirlpool move)\nsfx3 77044105 (teleport)\nsfx4 43993702 (whirlpool destroy)\nsfx5 43993702 (whirlpool create)\nendlevel 30657706\n\nplayer cantmove 7555504\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncoast_u\ncoast_d\ncoast_l\ncoast_r\nA\nTarget\nS\nunderplayer\nteleport\nendhand \nPlayer, Wall, wallalt, wallalt2, magnet, hinge, door, smrocks\nflowers\nul\nur\ndl\ndr\nwu\nwd\nwl\nwr\ntemp\nsuck_u\nsuck_d\nsuck_l\nsuck_r\nnopull\nspawned\nimage\n\n======\nRULES\n======\n\n[ player teleport no spawned | ... | teleport ] -> [ teleport | ... | player teleport spawned ] sfx3\n\n[ teleport magnet ] -> [ ] sfx4\n\n[decoration]->[]\n[underplayer]->[]\n[A]->[]\n[temp]->[]\n[suck]->[]\n[nopull]->[]\n\nright [ walls | ]->[walls | coast_l ]\nleft [ walls | ]->[walls | coast_r ]\ndown [ walls | ]->[walls | coast_u ]\nup [ walls | ]->[walls | coast_d ]\n\n\n\nup [ walls | no walltype ] -> [ walls wu | ]\ndown [ walls | no walltype ] -> [ walls wd | ]\nleft [ walls | no walltype ] -> [ walls wl | ]\nright [ walls | no walltype ] -> [ walls wr | ]\n\n[pixel]->[]\n\n\n[ > magnet | door ] -> cancel\n\n\n\n[ > Player | magnet ] -> [ > Player | > magnet ]\n\n[ > magnet | no obstacle ] -> [ | magnet ] sfx2\n+ [ > player | no obstacle ] -> [ | player ] \n+ [ > player | no obstacle ] -> [ | player ] \n\n\n[player no spawned] [ spawned] -> [player] []\n\n[ magnet ] -> [ magnet suck_u suck_d suck_l suck_r ]\n\nup [ suck_d | no thick ] -> [ suck_d | suck_d ]\ndown [ suck_u | no thick ] -> [ suck_u | suck_u ]\nleft [ suck_r | no thick ] -> [ suck_r | suck_r ]\nright [ suck_l | no thick ] -> [ suck_l | suck_l ]\n\n\n[S]->[]\n\n\nup [ suck_d | door | no suck_u ] -> [ suck_d | down door S | ]\n\n\ndown [ suck_u | door S | no suck_d ] -> [ suck_u | stationary door S | ]\ndown [ suck_u | door no S | no suck_d ] -> [ suck_u | up door S | ]\n\n\nleft [ suck_r | door S | no suck_l ] -> [ suck_r | stationary door S | ]\nleft [ suck_r | door no S | no suck_l ] -> [ suck_r | right door S | ]\n\n\nright [ suck_l | door S | no suck_r ] -> [ suck_l | stationary door S | ]\nright [ suck_l | door no S | no suck_r ] -> [ suck_l | left door S | ]\n\n[ > player | door no S ] -> [ > player | > door ]\n\n[s]->[]\n\nup [ suck_d | door ] -> [ suck_d | door S ]\ndown [ suck_u | door ] -> [ suck_u | door S ]\nleft [ suck_r | door ] -> [ suck_r | door S ]\nright [ suck_l | door ] -> [ suck_l | door S ]\n\n\n([ > player | > door S ] -> [ > player | > door ])\n\n\n(push ortho doors)\n\nup [ up door_l | no obstacle ] -> [ | door_dl ] sfx0\nup [ up door_r | no obstacle ] -> [ | door_dr ] sfx0\ndown [ down door_l | no obstacle ] -> [ | door_ul ] sfx0\ndown [ down door_r | no obstacle ] -> [ | door_ur ] sfx0\nleft [ left door_u | no obstacle ] -> [ | door_ur ] sfx0\nleft [ left door_d | no obstacle ] -> [ | door_dr ] sfx0\nright [ right door_u | no obstacle ] -> [ | door_ul ] sfx0\nright [ right door_d | no obstacle ] -> [ | door_dl ] sfx0\n\n(push diag doors)\nup [ up door_ul | no obstacle ] -> [ | door_l ] sfx0\nup [ up door_ur | no obstacle ] -> [ | door_r ] sfx0\nleft [ up door_dl no S | no obstacle ] -> [ | door_d ] sfx0\nright [ up door_dr no S | no obstacle ] -> [ | door_d ] sfx0\n\nleft [ down door_ul no S | no obstacle ] -> [ | door_u ] sfx0\nright [ down door_ur no S | no obstacle ] -> [ | door_u ] sfx0\ndown [ down door_dl | no obstacle ] -> [ | door_l ] sfx0\ndown [ down door_dr | no obstacle ] -> [ | door_r ] sfx0\n\nleft [ left door_ul | no obstacle ] -> [ | door_u ] sfx0\nup [ left door_ur no S | no obstacle ] -> [ | door_r ] sfx0\nleft [ left door_dl | no obstacle ] -> [ | door_d ] sfx0\ndown [ left door_dr no S | no obstacle ] -> [ | door_r ] sfx0\n\nup [ right door_ul no S | no obstacle ] -> [ | door_l ] sfx0\nright [ right door_ur | no obstacle ] -> [ | door_u ] sfx0\ndown [ right door_dl no S | no obstacle ] -> [ | door_l ] sfx0\nright [ right door_dr | no obstacle ] -> [ | door_d ] sfx0\n\n\n\n\n[ moving door ] -> [ door ] \n\n\nlate up [ door_ul | ] -> [ door_ul | dl ]\nlate left [ door_ul | ] -> [ door_ul | ur ]\n\nlate down [ door_dl | ] -> [ door_dl | ul ]\nlate left [ door_dl | ] -> [ door_dl | dr ]\n\nlate up [ door_ur | ] -> [ door_ur | dr ]\nlate right [ door_ur | ] -> [ door_ur | ul ]\n\nlate down [ door_dr | ] -> [ door_dr | ur ]\nlate right [ door_dr | ] -> [ door_dr | dl ]\n\nlate [ thick suck ] -> [ thick ]\n\n[player] -> again\n\nlate [magnet suck]->[]\nlate down [ player | ] -> [ player | underplayer]\n\nlate [ magnet target ] -> [ teleport ] sfx5 \n\n\n\n\n==============\nWINCONDITIONS\n==============\n\nall player on endhand\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 3 : Ausbruch\n\n##########%#%##\n#%##...####%##%\n####.m.######%#\n##.....##...###\n##...###.....##\n##....##.....##\n##.....##....##\n###hl..##....##\n###..........##\n###....#hl...##\n###.....#.#####\n#########.#####\n##....##......#\n#.t....#....o.#\n#...x..#..p...#\n##....##......#\n###############\n\nmessage Level 2 von 3 : Flucht\n\n##################\n##%#####.....#####\n#####%##.##.2...##\n########.##.1h#.##\n#....##..##h.##.##\n#.p..hh..###.##.##\n#....u.3####.#...#\n#hl##.######.#.x.#\n##.....#.....#...#\n#....o.#.t...#####\n#..m...#.....#####\n#......########%##\n##################\n\nmessage Level 3 von 3 : Fensterrose\n\n\n#######################\n#######.........#######\n######...........######\n##..##...kkkkk...##..##\n#....#...k...k...#....#\n#.t..#...k.t.k...#..x.#\n#....#...kk.kk...#....#\n#....#....2d1....#....#\n#..o.#...krhlk...#.t..#\n#....#...k...k...#....#\n#...##..m........#....#\n#.hl.............#....#\n#...##....p......#....#\n#######.........#######\n#######################\n\n............\n............\n....x.......\n............\n............\n............\n............\n........p...\n............\n\n............\n............\n....§±`~....\n....5678....\n....90!@....\n.....£$\\....\n.....Y&*....\n.....-=.....\n............\n\nmessage ICH BIN DER POSEIDON\n\n\n(\n\n#####################\n#######.......#######\n######.........######\n##..##..kkkkk..##..##\n#....#..k...k..#....#\n#.t..#..k.t.k..#..x.#\n#....#..kk.kk..#....#\n#....#...2d1...#....#\n#..o.#..krhlk..#.t..#\n#....#..k...k..#....#\n#...##.m.......#....#\n#.hl...........#....#\n#...##...p.....#....#\n#######.......#######\n#####################\n\n#############\n##.........##\n#...........#\n#...kkkkk...#\n#...k...k...#\n#...k.x.k...#\n#...kk.kk...#\n#....2d1....#\n#...krhlk...#\n#...k...k...#\n#...........#\n#..m........#\n#....p......#\n##.........##\n#############\n\n\n#############\n##.........##\n#...........#\n#...kkkkk...#\n#...k...k...#\n#...k.x.k...#\n#...kk.kk...#\n#....2d1....#\n#...krhlk...#\n#...k...k...#\n#...........#\n#.m.........#\n#...........#\n#......p....#\n##.........##\n#############\n\n\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#.....2d1.....#\n#....krhlk....#\n#....k...k....#\n#...m.........#\n#.............#\n#.....p.......#\n#.............#\n#.............#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#.....2d1.....#\n#....krhlk....#\n#....k...k....#\n#.............#\n#..........m..#\n#.............#\n#......p......#\n#.............#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#.....2d1.....#\n#....krhlk....#\n#....k...k....#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n######\"########\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#....k.d.k....#\n#....krhlk....#\n#...kk.u.k....#\n#...kt...k..o.#\n#...kkkkkk....#\n#..m......m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k.d.k....#\n#....krhlk....#\n#....k.u.k....#\n#....k...k....#\n#....k.t.k..o.#\n#....kkkkk....#\n#...m.........#\n#.............#\n##.....p.....##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#....k2d1k....#\n#....krhlk....#\n#....k........#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#....k2d1k....#\n#....krhlk....#\n#.............#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k2d......#\n#....krh......#\n#.....4u......#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k2d......#\n#....krh......#\n#....k4u......#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k2d......#\n#....krh......#\n#....k4.......#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k...k....#\n#....k2d.k....#\n#....krh.k....#\n#....k4..k....#\n#....k.k.k....#\n#....k.kkk....#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k2d......#\n#....krh......#\n#....k4.......#\n#....k........#\n#....k........#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k...k....#\n#....k2d.k....#\n#....krh.k....#\n#....k4u.k....#\n#....k.k.k....#\n#....k.kkk....#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n............\n............\n............\n...kkkkk....\n...k...k....\n...k.x.k....\n...k...k....\n...k2d.k....\n...krh.k....\n...k4..k....\n...k.k.k....\n...k.kkk....\n..m.....m...\n............\n......p.....\n............\n\n............\n............\n............\n...kkkkk....\n...k...k....\n...k.x.k....\n...k...k....\n...k2d.k....\n...krh.k....\n...k4u.k....\n...k.k.k....\n...k.kkk....\n..m.....m...\n............\n......p.....\n............\n\n\n............\n............\n............\n...kkkkk....\n...k...k....\n...k.x.k....\n...k...k....\n...k2..k....\n...krh.k....\n...k4..k....\n...k.k.k....\n...k.kkk....\n..m.....m...\n............\n.....p......\n............\n\n............\n............\n............\n...kkkkk....\n...k...k....\n...k.x.k....\n...k...k....\n...k.d.k....\n...krh.k....\n...k.u.k....\n...k.k.k....\n...k.kkk....\n..m.....m...\n............\n.....p......\n............\n\n............\n............\n..kkkkk.....\n..k...k.....\n..k.x.k.....\n..k...k.....\n..k.d.k.....\n..krh.k.....\n..k.u.k.....\n..k.k.k.....\n..k.kkk.....\n............\n........m...\n............\n..........p.\n............\n\n##################\n#####.......#....#\n#####.......#....#\n#####..##...#....#\n####hlrh#hl.#..rh#\n####....#.rh#hl..#\n####hlrh#hl.#..rh#\n####....#.rh#hl..#\n####hlrh#hl.#..rh#\n####....#.rh#hl..#\n####....#...#....#\n#.......#........#\n#.m..p..##########\n#.......#.........\n#########.........\n\n##################\n#####.........#..#\n#####...mp....#..#\n#####..##d....#..#\n####h..h#h2...#rh#\n####u..u#..h###..#\n####h..h#hl...#rh#\n####u..u#.rh###..#\n####h..h#hl...#rh#\n####u..u#.rh###..#\n####....#.....#..#\n#.......#.....#..#\n#.......#........#\n#.......#........#\n##################\n\n\n###################\n####....#.........#\n####hlrh#.........#\n####....#.........#\n####hlrh#.........#\n####....#.........#\n####hlrh#.........#\n####....#.........#\n####....#.........#\n#.................#\n#.m..p............#\n#.................#\n###################\n\n\n\n##################\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n###.###..........#\n#.....#..........#\n#.p...#..........#\n#.....#..........#\n#...m.#..........#\n#.....#..........#\n##################\n\n##################\n#####.........#..#\n#####.....pmk.#..#\n#####..##d..k.#..#\n####h..h#h2.k.#rh#\n####u..u#..h###..#\n####h..h#hl...#rh#\n####u..u#.rh###..#\n####h..h#hl...#rh#\n####u..u#.rh###..#\n####....#.....#..#\n#.......#.....#..#\n#...kkkk#........#\n#.......#........#\n##################\n\n##################\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n##################\n\n)\n", [3, 3, 2, 3, 3, 1, 1, 1, 2, 2, 2, 0, 3, 3, 3, 2, 2, 1, 1, 2, 1, 0, 2, 2, 3, 2, 3, 0, 0, 1, 0, 3, 2, 3, 0, 0, 0, "restart", 2, 3, 2, 3, 3, 2, 2, 2, 1, 2, 1, 2, 1, 1, 0, 3, 3, 2, 3, 0, 0, 1, 0, 3, 2, 3, 0, 0, 2], "background coast_d coast_r wall:0,background coast_d coast_r coast_u wall:1,1,1,background coast_d coast_u wall wr:2,2,2,2,1,2,2,2,background coast_r coast_u wall:3,background coast_d coast_l coast_r wall:4,background coast_d coast_l coast_r coast_u wall:5,5,background coast_l coast_r coast_u wall wd:6,background coast_l coast_u:7,\nbackground coast_l:8,background coast_l suck_r:9,background coast_d coast_l hinge:10,background coast_l ur wall wd wr wu:11,7,8,background coast_d coast_l:12,background coast_l coast_r wall wu:13,4,background coast_d coast_l coast_r coast_u flowers wall:14,5,6,background coast_u:15,background:16,background suck_r:17,background coast_r dl:18,background coast_l door_ul:19,16,\n16,background coast_d:20,13,4,5,5,6,15,16,background coast_d suck_r:21,background coast_r wall wd wl wu:22,15,16,16,20,13,4,5,\n5,6,background coast_r coast_u:23,16,21,background coast_l wall wd wr wu:24,15,16,16,20,13,4,5,14,5,background coast_r coast_u wall wd wl:25,background coast_u hinge:26,background magnet ur:27,\nbackground coast_l coast_r suck_u:28,background player suck_u:29,background suck_u target underplayer:30,background suck_u:31,background coast_d suck_u:32,13,4,5,5,5,background coast_l coast_u wall wd wr:33,background coast_u dl hinge:34,background coast_d door_ul s ur:35,22,23,background coast_r:36,36,background coast_d coast_r:37,\n13,4,background coast_d coast_l coast_u wall wr:38,38,33,7,background dl:39,background coast_d coast_r door_ul:40,background coast_d coast_l coast_r wall wu:41,background coast_d coast_u wall wl wr:42,42,42,background coast_d coast_r coast_u wall wl:43,background coast_l coast_r coast_u wall:44,background coast_l coast_r wall wd:45,7,background coast_l coast_r:46,46,\n36,37,background coast_d coast_r wall wl wu:47,6,7,8,12,41,44,45,background coast_d coast_u:48,47,43,43,43,5,6,15,\nbackground teleport:49,20,41,44,45,48,background coast_d coast_l wall wr wu:50,38,38,5,5,6,15,16,20,41,44,45,\n15,8,background coast_l dr:51,10,50,38,33,15,16,20,41,44,45,23,background door_dr:52,background door_dl ur:53,background coast_r ul:54,46,\n46,46,36,36,37,41,44,4,25,background coast_u dl:55,background coast_d coast_r hinge:56,47,43,42,42,42,43,43,\n5,44,4,6,48,background coast_d wall wl wr wu:57,38,33,7,8,12,41,5,5,44,4,6,23,\n46,46,46,16,background endhand:58,20,41,5,14,44,4,5,43,43,43,25,23,36,\n37,41,5,5,44,background coast_d coast_l wall:59,background coast_d coast_l coast_u wall:60,60,60,60,60,background coast_d coast_u wall wl:61,61,61,60,60,60,background coast_l coast_u wall:62,\n", 3, "1627891415131.3423"] + "Des Poseidons Dreizack", + ["title Des Poseidons Dreizack\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\ntext_color #e7cf5c\nbackground_color #041646\n\nnoaction\n\nrun_rules_on_level_start\n\nagain_interval 0.1\n(verbose_logging)\n\n\n(flickscreen 14x13)\n\n========\nOBJECTS\n========\n\nBackground\nblue #204ec5\n00000\n01000\n00000\n00010\n00000\n\nsmrocks k\nbrown darkbrown \n.1.1.\n10101\n.1.1.\n10101\n.1.1.\n\nteleport T\nlightblue blue darkblue\n10101\n01210\n12221\n01210\n10101\n\nTarget\ndarkblue transparent \n01110\n1.0.1\n10001\n1.0.1\n01110\n\nWall\ngreen lightgreen #2d6d0c\n00000\n00010\n00000\n01000\n00000\n\nwallalt \"\ngreen lightgreen #2d6d0c\n00000\n00000\n00000\n01000\n00000\n\n\nwallalt2 '\ngreen lightgreen #2d6d0c\n00000\n00010\n00000\n00000\n00000\n\ncoast_u\nlightblue\n.0.0.\n.....\n.....\n.....\n.....\n\ncoast_d\nlightblue\n.....\n.....\n.....\n.....\n.0.0.\n\ncoast_l\nlightblue\n.....\n0....\n.....\n0....\n.....\n\ncoast_r\nlightblue\n.....\n....0\n.....\n....0\n.....\n\nendhand x\npink\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\n\nPlayer\nbrown orange yellow lightblue\n2.2.2\n2.2.2\n22222\n..1..\n.313.\n\nunderplayer\nlightblue\n..0..\n.....\n.....\n.....\n.....\n\nmagnet\nlightblue blue\n.0000\n0....\n0.000\n0...0\n.000.\n\n\nflowers \ndarkgreen brown\n.000.\n00000\n.000.\n..1..\n..1..\n\nhinge H\norange green darkgray \n10001\n02220\n02220\n02220\n10001\n\ndoor_l L\npink darkgray transparent\n.2.2.\n0000.\n11110\n0000.\n.2.2.\n\n\ndoor_r R\npink darkgray transparent\n.2.2.\n.0000\n01111\n.0000\n.2.2.\n\n\n\ndoor_u U\npink darkgray transparent\n.010.\n20102\n.010.\n20102\n..0..\n\ndoor_d D\npink darkgray transparent\n..0..\n20102\n.010.\n20102\n.010.\n\n\ndoor_dl 1\npink darkgray\n.....\n..00.\n.010.\n010..\n10...\n\n\ndoor_dr 2\npink darkgray\n.....\n.00..\n.010.\n..010\n...01\n\n\ndoor_ul 3\npink darkgray\n10...\n010..\n.010.\n..00.\n.....\n\ndoor_ur 4\npink darkgray\n...01\n..010\n.010.\n.00..\n.....\n\nul\norange\n0....\n.....\n.....\n.....\n.....\n\nur\norange\n....0\n.....\n.....\n.....\n.....\n\n\ndl\norange\n.....\n.....\n.....\n.....\n0....\n\n\ndr\norange\n.....\n.....\n.....\n.....\n....0\n\nwu\ngreen lightgreen\n10101\n.....\n.....\n.....\n.....\n\nwd\ngreen lightgreen\n.....\n.....\n.....\n.....\n10101\n\nwl\ngreen lightgreen\n1....\n0....\n1....\n0....\n1....\n\nwr\ngreen lightgreen\n....1\n....0\n....1\n....0\n....1\n\nsuck_d\nlightblue\n.....\n.....\n.0.0.\n..0..\n.....\n\n\nsuck_u\nlightblue\n.....\n..0..\n.0.0.\n.....\n.....\n\n\nsuck_r\nlightblue\n.....\n..0..\n...0.\n..0..\n.....\n\n\nsuck_l\nlightblue\n.....\n..0..\n.0...\n..0..\n.....\n\ntemp\ntransparent\n\nA \ntransparent\n\nS\nlightblue\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nnopull\ntransparent\n\nspawned \ntransparent\n\n\nip1 §\n#ffff05 #ffa33b\n0.0.0\n0.0.0\n00000\n..1..\n..1..\n\nip2 ±\n#8e4833\n.....\n.....\n....0\n....0\n....0\n\nip3 `\n#8e4833 #dbc297\n.....\n00000\n11111\n1.1.1\n11111\n\nip4 ~\n#8e4833\n.....\n.....\n0....\n0....\n0....\n\n5\n#ffa33b #dbc297\n..0..\n.111.\n.111.\n.111.\n..011\n\n6\n#8e4833 #dbc297\n....0\n....0\n.....\n.....\n....1\n\n7\n#8e4833 #dbc297\n00000\n01110\n00000\n00000\n10001\n\n8\n#8e4833 #dbc297\n0....\n.....\n.....\n.....\n1....\n\n9\n#ffa33b #dbc297\n..0.1\n.....\n.....\n.....\n.....\n\n0\n#dbc297 white\n0..00\n00000\n.00.0\n....1\n....1\n\nbla !\n#dbc297 white\n00000\n00000\n00000\n10000\n11100\n\nblo @\n#dbc297\n00...\n000..\n000..\n0.00.\n..00.\n\n\n(BLANK)\n\nble £\nwhite\n....0\n....0\n....0\n...00\n...00\n\nble1 $\nwhite #dbc297\n00000\n00000\n00000\n00001\n00011\n\nble2 \\\n#dbc297 white\n..00.\n1.00.\n1000.\n1000.\n100..\n\n(SKIP)\n\nble3 Y\nwhite #dbc297\n...00\n...00\n....1\n....1\n....1\n\nble4 &\nwhite #dbc297\n00111\n1.111\n1..11\n1..11\n1..11\n\nble5 *\nwhite\n0....\n.....\n.....\n.....\n.....\n\n\nble6 -\n#dbc297\n.....\n...00\n.....\n.....\n.....\n\nble7 =\n#dbc297\n0..00\n0.000\n.....\n.....\n.....\n\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nM = magnet\nO = Target\n\n\nwalls = wall or wallalt or wallalt2\northo = door_u or door_d or door_l or door_r\ndiagonal = door_ul or door_ur or door_dl or door_dr\nDoor = ortho or diagonal\ndoorpart = door or hinge\nobstacle = walls or player or hinge or magnet or door or smrocks\nthick = wall or hinge or magnet or door or teleport\n\n\nfixture = wall or hinge \n\npixel = ul or ur or dl or dr\nwalltype = wall or wallalt or wallalt2\n\nfillwalltype = wall or hinge\n\nsuck = suck_u or suck_d or suck_l or suck_r\n\ncoast = coast_u or coast_d or coast_l or coast_r\n\nverge = wl or wr or wu or wd\ndecoration = coast or verge \n\n% = flowers and wall\n\nimage = ip1 or ip2 or ip3 or ip4 or 5 or 6 or 7 or 8 or 9 or 0 or bla or blo or ble or ble1 or ble2 or ble3 or ble4 or ble5 or ble6 or ble7 \n\n\n=======\nSOUNDS\n=======\n\nsfx0 1415300 (swing)\nsfx1 7555504 (cantmove)\nsfx2 16800907 (whirlpool move)\nsfx3 77044105 (teleport)\nsfx4 43993702 (whirlpool destroy)\nsfx5 43993702 (whirlpool create)\nendlevel 30657706\n\nplayer cantmove 7555504\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncoast_u\ncoast_d\ncoast_l\ncoast_r\nA\nTarget\nS\nunderplayer\nteleport\nendhand \nPlayer, Wall, wallalt, wallalt2, magnet, hinge, door, smrocks\nflowers\nul\nur\ndl\ndr\nwu\nwd\nwl\nwr\ntemp\nsuck_u\nsuck_d\nsuck_l\nsuck_r\nnopull\nspawned\nimage\n\n======\nRULES\n======\n\n[ player teleport no spawned | ... | teleport ] -> [ teleport | ... | player teleport spawned ] sfx3\n\n[ teleport magnet ] -> [ ] sfx4\n\n[decoration]->[]\n[underplayer]->[]\n[A]->[]\n[temp]->[]\n[suck]->[]\n[nopull]->[]\n\nright [ walls | ]->[walls | coast_l ]\nleft [ walls | ]->[walls | coast_r ]\ndown [ walls | ]->[walls | coast_u ]\nup [ walls | ]->[walls | coast_d ]\n\n\n\nup [ walls | no walltype ] -> [ walls wu | ]\ndown [ walls | no walltype ] -> [ walls wd | ]\nleft [ walls | no walltype ] -> [ walls wl | ]\nright [ walls | no walltype ] -> [ walls wr | ]\n\n[pixel]->[]\n\n\n[ > magnet | door ] -> cancel\n\n\n\n[ > Player | magnet ] -> [ > Player | > magnet ]\n\n[ > magnet | no obstacle ] -> [ | magnet ] sfx2\n+ [ > player | no obstacle ] -> [ | player ] \n+ [ > player | no obstacle ] -> [ | player ] \n\n\n[player no spawned] [ spawned] -> [player] []\n\n[ magnet ] -> [ magnet suck_u suck_d suck_l suck_r ]\n\nup [ suck_d | no thick ] -> [ suck_d | suck_d ]\ndown [ suck_u | no thick ] -> [ suck_u | suck_u ]\nleft [ suck_r | no thick ] -> [ suck_r | suck_r ]\nright [ suck_l | no thick ] -> [ suck_l | suck_l ]\n\n\n[S]->[]\n\n\nup [ suck_d | door | no suck_u ] -> [ suck_d | down door S | ]\n\n\ndown [ suck_u | door S | no suck_d ] -> [ suck_u | stationary door S | ]\ndown [ suck_u | door no S | no suck_d ] -> [ suck_u | up door S | ]\n\n\nleft [ suck_r | door S | no suck_l ] -> [ suck_r | stationary door S | ]\nleft [ suck_r | door no S | no suck_l ] -> [ suck_r | right door S | ]\n\n\nright [ suck_l | door S | no suck_r ] -> [ suck_l | stationary door S | ]\nright [ suck_l | door no S | no suck_r ] -> [ suck_l | left door S | ]\n\n[ > player | door no S ] -> [ > player | > door ]\n\n[s]->[]\n\nup [ suck_d | door ] -> [ suck_d | door S ]\ndown [ suck_u | door ] -> [ suck_u | door S ]\nleft [ suck_r | door ] -> [ suck_r | door S ]\nright [ suck_l | door ] -> [ suck_l | door S ]\n\n\n([ > player | > door S ] -> [ > player | > door ])\n\n\n(push ortho doors)\n\nup [ up door_l | no obstacle ] -> [ | door_dl ] sfx0\nup [ up door_r | no obstacle ] -> [ | door_dr ] sfx0\ndown [ down door_l | no obstacle ] -> [ | door_ul ] sfx0\ndown [ down door_r | no obstacle ] -> [ | door_ur ] sfx0\nleft [ left door_u | no obstacle ] -> [ | door_ur ] sfx0\nleft [ left door_d | no obstacle ] -> [ | door_dr ] sfx0\nright [ right door_u | no obstacle ] -> [ | door_ul ] sfx0\nright [ right door_d | no obstacle ] -> [ | door_dl ] sfx0\n\n(push diag doors)\nup [ up door_ul | no obstacle ] -> [ | door_l ] sfx0\nup [ up door_ur | no obstacle ] -> [ | door_r ] sfx0\nleft [ up door_dl no S | no obstacle ] -> [ | door_d ] sfx0\nright [ up door_dr no S | no obstacle ] -> [ | door_d ] sfx0\n\nleft [ down door_ul no S | no obstacle ] -> [ | door_u ] sfx0\nright [ down door_ur no S | no obstacle ] -> [ | door_u ] sfx0\ndown [ down door_dl | no obstacle ] -> [ | door_l ] sfx0\ndown [ down door_dr | no obstacle ] -> [ | door_r ] sfx0\n\nleft [ left door_ul | no obstacle ] -> [ | door_u ] sfx0\nup [ left door_ur no S | no obstacle ] -> [ | door_r ] sfx0\nleft [ left door_dl | no obstacle ] -> [ | door_d ] sfx0\ndown [ left door_dr no S | no obstacle ] -> [ | door_r ] sfx0\n\nup [ right door_ul no S | no obstacle ] -> [ | door_l ] sfx0\nright [ right door_ur | no obstacle ] -> [ | door_u ] sfx0\ndown [ right door_dl no S | no obstacle ] -> [ | door_l ] sfx0\nright [ right door_dr | no obstacle ] -> [ | door_d ] sfx0\n\n\n\n\n[ moving door ] -> [ door ] \n\n\nlate up [ door_ul | ] -> [ door_ul | dl ]\nlate left [ door_ul | ] -> [ door_ul | ur ]\n\nlate down [ door_dl | ] -> [ door_dl | ul ]\nlate left [ door_dl | ] -> [ door_dl | dr ]\n\nlate up [ door_ur | ] -> [ door_ur | dr ]\nlate right [ door_ur | ] -> [ door_ur | ul ]\n\nlate down [ door_dr | ] -> [ door_dr | ur ]\nlate right [ door_dr | ] -> [ door_dr | dl ]\n\nlate [ thick suck ] -> [ thick ]\n\n[player] -> again\n\nlate [magnet suck]->[]\nlate down [ player | ] -> [ player | underplayer]\n\nlate [ magnet target ] -> [ teleport ] sfx5 \n\n\n\n\n==============\nWINCONDITIONS\n==============\n\nall player on endhand\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 3 : Ausbruch\n\n##########%#%##\n#%##...####%##%\n####.m.######%#\n##.....##...###\n##...###.....##\n##....##.....##\n##.....##....##\n###hl..##....##\n###..........##\n###....#hl...##\n###.....#.#####\n#########.#####\n##....##......#\n#.t....#....o.#\n#...x..#..p...#\n##....##......#\n###############\n\nmessage Level 2 von 3 : Flucht\n\n##################\n##%#####.....#####\n#####%##.##.2...##\n########.##.1h#.##\n#....##..##h.##.##\n#.p..hh..###.##.##\n#....u.3####.#...#\n#hl##.######.#.x.#\n##.....#.....#...#\n#....o.#.t...#####\n#..m...#.....#####\n#......########%##\n##################\n\nmessage Level 3 von 3 : Fensterrose\n\n\n#######################\n#######.........#######\n######...........######\n##..##...kkkkk...##..##\n#....#...k...k...#....#\n#.t..#...k.t.k...#..x.#\n#....#...kk.kk...#....#\n#....#....2d1....#....#\n#..o.#...krhlk...#.t..#\n#....#...k...k...#....#\n#...##..m........#....#\n#.hl.............#....#\n#...##....p......#....#\n#######.........#######\n#######################\n\n............\n............\n....x.......\n............\n............\n............\n............\n........p...\n............\n\n............\n............\n....§±`~....\n....5678....\n....90!@....\n.....£$\\....\n.....Y&*....\n.....-=.....\n............\n\nmessage ICH BIN DER POSEIDON\n\n\n(\n\n#####################\n#######.......#######\n######.........######\n##..##..kkkkk..##..##\n#....#..k...k..#....#\n#.t..#..k.t.k..#..x.#\n#....#..kk.kk..#....#\n#....#...2d1...#....#\n#..o.#..krhlk..#.t..#\n#....#..k...k..#....#\n#...##.m.......#....#\n#.hl...........#....#\n#...##...p.....#....#\n#######.......#######\n#####################\n\n#############\n##.........##\n#...........#\n#...kkkkk...#\n#...k...k...#\n#...k.x.k...#\n#...kk.kk...#\n#....2d1....#\n#...krhlk...#\n#...k...k...#\n#...........#\n#..m........#\n#....p......#\n##.........##\n#############\n\n\n#############\n##.........##\n#...........#\n#...kkkkk...#\n#...k...k...#\n#...k.x.k...#\n#...kk.kk...#\n#....2d1....#\n#...krhlk...#\n#...k...k...#\n#...........#\n#.m.........#\n#...........#\n#......p....#\n##.........##\n#############\n\n\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#.....2d1.....#\n#....krhlk....#\n#....k...k....#\n#...m.........#\n#.............#\n#.....p.......#\n#.............#\n#.............#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#.....2d1.....#\n#....krhlk....#\n#....k...k....#\n#.............#\n#..........m..#\n#.............#\n#......p......#\n#.............#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#.....2d1.....#\n#....krhlk....#\n#....k...k....#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n######\"########\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#....k.d.k....#\n#....krhlk....#\n#...kk.u.k....#\n#...kt...k..o.#\n#...kkkkkk....#\n#..m......m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k.d.k....#\n#....krhlk....#\n#....k.u.k....#\n#....k...k....#\n#....k.t.k..o.#\n#....kkkkk....#\n#...m.........#\n#.............#\n##.....p.....##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#....k2d1k....#\n#....krhlk....#\n#....k........#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....kk.kk....#\n#....k2d1k....#\n#....krhlk....#\n#.............#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k2d......#\n#....krh......#\n#.....4u......#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k2d......#\n#....krh......#\n#....k4u......#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k2d......#\n#....krh......#\n#....k4.......#\n#.............#\n#.............#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k...k....#\n#....k2d.k....#\n#....krh.k....#\n#....k4..k....#\n#....k.k.k....#\n#....k.kkk....#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k.kkk....#\n#....k2d......#\n#....krh......#\n#....k4.......#\n#....k........#\n#....k........#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n###############\n##...........##\n#.............#\n#.............#\n#....kkkkk....#\n#....k...k....#\n#....k.x.k....#\n#....k...k....#\n#....k2d.k....#\n#....krh.k....#\n#....k4u.k....#\n#....k.k.k....#\n#....k.kkk....#\n#...m.....m...#\n#.............#\n#......p......#\n##...........##\n###############\n\n............\n............\n............\n...kkkkk....\n...k...k....\n...k.x.k....\n...k...k....\n...k2d.k....\n...krh.k....\n...k4..k....\n...k.k.k....\n...k.kkk....\n..m.....m...\n............\n......p.....\n............\n\n............\n............\n............\n...kkkkk....\n...k...k....\n...k.x.k....\n...k...k....\n...k2d.k....\n...krh.k....\n...k4u.k....\n...k.k.k....\n...k.kkk....\n..m.....m...\n............\n......p.....\n............\n\n\n............\n............\n............\n...kkkkk....\n...k...k....\n...k.x.k....\n...k...k....\n...k2..k....\n...krh.k....\n...k4..k....\n...k.k.k....\n...k.kkk....\n..m.....m...\n............\n.....p......\n............\n\n............\n............\n............\n...kkkkk....\n...k...k....\n...k.x.k....\n...k...k....\n...k.d.k....\n...krh.k....\n...k.u.k....\n...k.k.k....\n...k.kkk....\n..m.....m...\n............\n.....p......\n............\n\n............\n............\n..kkkkk.....\n..k...k.....\n..k.x.k.....\n..k...k.....\n..k.d.k.....\n..krh.k.....\n..k.u.k.....\n..k.k.k.....\n..k.kkk.....\n............\n........m...\n............\n..........p.\n............\n\n##################\n#####.......#....#\n#####.......#....#\n#####..##...#....#\n####hlrh#hl.#..rh#\n####....#.rh#hl..#\n####hlrh#hl.#..rh#\n####....#.rh#hl..#\n####hlrh#hl.#..rh#\n####....#.rh#hl..#\n####....#...#....#\n#.......#........#\n#.m..p..##########\n#.......#.........\n#########.........\n\n##################\n#####.........#..#\n#####...mp....#..#\n#####..##d....#..#\n####h..h#h2...#rh#\n####u..u#..h###..#\n####h..h#hl...#rh#\n####u..u#.rh###..#\n####h..h#hl...#rh#\n####u..u#.rh###..#\n####....#.....#..#\n#.......#.....#..#\n#.......#........#\n#.......#........#\n##################\n\n\n###################\n####....#.........#\n####hlrh#.........#\n####....#.........#\n####hlrh#.........#\n####....#.........#\n####hlrh#.........#\n####....#.........#\n####....#.........#\n#.................#\n#.m..p............#\n#.................#\n###################\n\n\n\n##################\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n###.###..........#\n#.....#..........#\n#.p...#..........#\n#.....#..........#\n#...m.#..........#\n#.....#..........#\n##################\n\n##################\n#####.........#..#\n#####.....pmk.#..#\n#####..##d..k.#..#\n####h..h#h2.k.#rh#\n####u..u#..h###..#\n####h..h#hl...#rh#\n####u..u#.rh###..#\n####h..h#hl...#rh#\n####u..u#.rh###..#\n####....#.....#..#\n#.......#.....#..#\n#...kkkk#........#\n#.......#........#\n##################\n\n##################\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n#................#\n##################\n\n)\n",[3,3,2,3,3,1,1,1,2,2,2,0,3,3,3,2,2,1,1,2,1,0,2,2,3,2,3,0,0,1,0,3,2,3,0,0,0,"restart",2,3,2,3,3,2,2,2,1,2,1,2,1,1,0,3,3,2,3,0,0,1,0,3,2,3,0,0,2],"background coast_d coast_r wall:0,background coast_d coast_r coast_u wall:1,1,1,background coast_d coast_u wall wr:2,2,2,2,1,2,2,2,background coast_r coast_u wall:3,background coast_d coast_l coast_r wall:4,background coast_d coast_l coast_r coast_u wall:5,5,background coast_l coast_r coast_u wall wd:6,background coast_l coast_u:7,\nbackground coast_l:8,background coast_l suck_r:9,background coast_d coast_l hinge:10,background coast_l ur wall wd wr wu:11,7,8,background coast_d coast_l:12,background coast_l coast_r wall wu:13,4,background coast_d coast_l coast_r coast_u flowers wall:14,5,6,background coast_u:15,background:16,background suck_r:17,background coast_r dl:18,background coast_l door_ul:19,16,\n16,background coast_d:20,13,4,5,5,6,15,16,background coast_d suck_r:21,background coast_r wall wd wl wu:22,15,16,16,20,13,4,5,\n5,6,background coast_r coast_u:23,16,21,background coast_l wall wd wr wu:24,15,16,16,20,13,4,5,14,5,background coast_r coast_u wall wd wl:25,background coast_u hinge:26,background magnet ur:27,\nbackground coast_l coast_r suck_u:28,background player suck_u:29,background suck_u target underplayer:30,background suck_u:31,background coast_d suck_u:32,13,4,5,5,5,background coast_l coast_u wall wd wr:33,background coast_u dl hinge:34,background coast_d door_ul s ur:35,22,23,background coast_r:36,36,background coast_d coast_r:37,\n13,4,background coast_d coast_l coast_u wall wr:38,38,33,7,background dl:39,background coast_d coast_r door_ul:40,background coast_d coast_l coast_r wall wu:41,background coast_d coast_u wall wl wr:42,42,42,background coast_d coast_r coast_u wall wl:43,background coast_l coast_r coast_u wall:44,background coast_l coast_r wall wd:45,7,background coast_l coast_r:46,46,\n36,37,background coast_d coast_r wall wl wu:47,6,7,8,12,41,44,45,background coast_d coast_u:48,47,43,43,43,5,6,15,\nbackground teleport:49,20,41,44,45,48,background coast_d coast_l wall wr wu:50,38,38,5,5,6,15,16,20,41,44,45,\n15,8,background coast_l dr:51,10,50,38,33,15,16,20,41,44,45,23,background door_dr:52,background door_dl ur:53,background coast_r ul:54,46,\n46,46,36,36,37,41,44,4,25,background coast_u dl:55,background coast_d coast_r hinge:56,47,43,42,42,42,43,43,\n5,44,4,6,48,background coast_d wall wl wr wu:57,38,33,7,8,12,41,5,5,44,4,6,23,\n46,46,46,16,background endhand:58,20,41,5,14,44,4,5,43,43,43,25,23,36,\n37,41,5,5,44,background coast_d coast_l wall:59,background coast_d coast_l coast_u wall:60,60,60,60,60,background coast_d coast_u wall wl:61,61,61,60,60,60,background coast_l coast_u wall:62,\n",3,"1627891415131.3423"] ], [ - "Bring the ice cube to the goal without exposing it to heat.", - ["title Bring the ice cube to the goal without exposing it to heat.\n\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nnoaction\n\n========\nOBJECTS\n========\n\nhot \ndarkred\n\ncold\ndarkblue\n\nHotSource 1\nred darkred white yellow\n11311\n10201\n10201\n10001\n11111\n\nicecube i\nlightblue blue \n.111.\n10001\n10001\n10001\n.111.\n\n\nBackground\ndarkblue darkblue\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\ndarkgreen\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkblue darkgreen\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nbrown darkbrown\n00000\n00110\n01010\n01100\n00000\n\npuddle u\nblue\n.....\n.000.\n00000\n.000.\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ninsulation = wall or crate\n\npushable = crate or hotsource or icecube\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx0 87367102 (melt)\nendlevel 87961509 \n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nHot,Cold\nTarget\npuddle\nPlayer, Wall, Crate, HotSource, icecube\n\n======\nRULES\n======\n\n[ icecube hot ] -> [ puddle ]\n\n\n[ > Player | pushable ] -> [ > Player | > pushable ]\n\nlate [hot]->[]\nlate [cold]->[]\nlate [ no insulation ] -> [ cold ]\n\nlate [HotSource] -> [HotSource hot]\n\nlate [ hot | no insulation ] -> [ hot | hot ]\n\n[] -> again\n\n==============\nWINCONDITIONS\n==============\nall icecube on target\nno puddle\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n###################\n#.....#.....#.....#\n#.....#.1...#.....#\n#..o..*.....*..i..#\n#.....#...p.#.....#\n#.....#.....#.....#\n###################\n\nmessage very good\n", [0, 0, 0, 1, 1, 2, 1, 2, 1, 1, 3, 3, 1, 1, 1, 3, 3, 2, 3, 3, 2, 3, 3, 0, 1, 1, 1, 1, 1, 0, 1, 2, 0, 1, 1, 2, 3, 3], "background wall:0,0,0,0,0,0,0,0,background hot:1,1,1,1,1,0,0,1,1,1,1,\n1,0,0,1,1,background hot target:2,1,1,0,0,1,1,background hot player:3,background hot hotsource:4,1,0,0,1,1,\nbackground crate:5,1,1,0,0,0,0,background cold:6,0,0,0,0,6,6,6,6,6,0,0,\n6,6,6,6,6,0,0,6,6,6,6,6,0,0,6,6,6,6,6,\n0,0,6,6,6,6,6,0,0,0,0,5,0,0,0,0,6,6,6,\n6,6,0,0,6,6,6,6,6,0,0,6,6,background cold icecube:7,6,6,0,0,6,\n6,6,6,6,0,0,6,6,6,6,6,0,0,0,0,0,0,0,0,\n", 1, "1627891487429.5186"] + "Bring the ice cube to the goal without exposing it to heat.", + ["title Bring the ice cube to the goal without exposing it to heat.\n\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nnoaction\n\n========\nOBJECTS\n========\n\nhot \ndarkred\n\ncold\ndarkblue\n\nHotSource 1\nred darkred white yellow\n11311\n10201\n10201\n10001\n11111\n\nicecube i\nlightblue blue \n.111.\n10001\n10001\n10001\n.111.\n\n\nBackground\ndarkblue darkblue\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\ndarkgreen\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkblue darkgreen\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nbrown darkbrown\n00000\n00110\n01010\n01100\n00000\n\npuddle u\nblue\n.....\n.000.\n00000\n.000.\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ninsulation = wall or crate\n\npushable = crate or hotsource or icecube\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx0 87367102 (melt)\nendlevel 87961509 \n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nHot,Cold\nTarget\npuddle\nPlayer, Wall, Crate, HotSource, icecube\n\n======\nRULES\n======\n\n[ icecube hot ] -> [ puddle ]\n\n\n[ > Player | pushable ] -> [ > Player | > pushable ]\n\nlate [hot]->[]\nlate [cold]->[]\nlate [ no insulation ] -> [ cold ]\n\nlate [HotSource] -> [HotSource hot]\n\nlate [ hot | no insulation ] -> [ hot | hot ]\n\n[] -> again\n\n==============\nWINCONDITIONS\n==============\nall icecube on target\nno puddle\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n###################\n#.....#.....#.....#\n#.....#.1...#.....#\n#..o..*.....*..i..#\n#.....#...p.#.....#\n#.....#.....#.....#\n###################\n\nmessage very good\n",[0,0,0,1,1,2,1,2,1,1,3,3,1,1,1,3,3,2,3,3,2,3,3,0,1,1,1,1,1,0,1,2,0,1,1,2,3,3],"background wall:0,0,0,0,0,0,0,0,background hot:1,1,1,1,1,0,0,1,1,1,1,\n1,0,0,1,1,background hot target:2,1,1,0,0,1,1,background hot player:3,background hot hotsource:4,1,0,0,1,1,\nbackground crate:5,1,1,0,0,0,0,background cold:6,0,0,0,0,6,6,6,6,6,0,0,\n6,6,6,6,6,0,0,6,6,6,6,6,0,0,6,6,6,6,6,\n0,0,6,6,6,6,6,0,0,0,0,5,0,0,0,0,6,6,6,\n6,6,0,0,6,6,6,6,6,0,0,6,6,background cold icecube:7,6,6,0,0,6,\n6,6,6,6,0,0,6,6,6,6,6,0,0,0,0,0,0,0,0,\n",1,"1627891487429.5186"] ], [ - "der Hydra Krypta", - ["title der Hydra Krypta\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nagain_interval 0.1\nnorepeat_action\n\nrun_rules_on_level_start\n(verbose_logging)\n\n========\nOBJECTS\n========\n\nBackground\ntransparent darkblue \n01010\n10001\n00000\n10001\n01010\n\nHeld\nlightblue white pink brown gray blue\n4333.\n4121.\n00000\n.555.\n.5.5.\n\ndecorateheld\nlightblue white pink brown gray blue\n4333.\n4121.\n00000\n.555.\n.5.5.\n\nWand\nDarkgreen black\n00010\n11111\n01000\n11111\n00010\n\nPlayer\ntransparent\n\nKopf_O\ngreen yellow darkgreen\n.000.\n.101.\n.020.\n..2..\n.....\n\nKopf_U\ngreen yellow darkgreen\n.....\n..2..\n.020.\n.101.\n.000.\n\nKopf_L\ngreen yellow darkgreen\n.....\n010..\n0022.\n010..\n.....\n\nKopf_R\ngreen yellow darkgreen\n.....\n..010\n.2200\n..010\n.....\n\nKoerper_L\ngreen darkgreen\n.....\n000..\n1111.\n000..\n.....\n\nKoerper_R\ngreen darkgreen\n.....\n..000\n.1111\n..000\n.....\n\nKoerper_O\ngreen darkgreen\n.010.\n.010.\n.010.\n..1..\n.....\n\nKoerper_U\ngreen darkgreen\n.....\n..1..\n.010.\n.010.\n.010.\n\nblut\nred darkred\n.1.0.\n00100\n.010.\n01001\n.1.0.\n\nt\ntransparent\n\nu\ntransparent\n\naktion \ntransparent\n\nFeuer\norange yellow brown\n.1...\n.1.1.\n10101\n10001\n.222.\n\nbranch \ntransparent\n\nstaticfeuer\norange yellow brown\n.1...\n.1.1.\n10101\n10001\n.222.\n\n\nsprt_0_0\ngreen yellow darkgreen\n.....\n.0000\n.0101\n.0000\n..020\n\nsprt_1_0\ngreen\n.....\n0....\n0....\n0...0\n....0\n\nsprt_2_0\ndarkgreen green\n.....\n.....\n0....\n01...\n01...\n\nsprt_3_0\ngreen darkgreen\n.....\n....0\n...10\n..010\n..010\n\nsprt_4_0\ngreen darkgreen\n.....\n00000\n11111\n00000\n.....\n\nsprt_5_0\ngreen darkgreen\n.....\n00...\n111..\n0000.\n.010.\n\nsprt_0_1\ngreen darkgreen\n..010\n..000\n...11\n....0\n.....\n\nsprt_1_1\ngreen darkgreen\n....0\n00000\n11111\n00100\n.010.\n\nsprt_2_1\ndarkgreen green\n01...\n0111.\n00010\n11110\n...10\n\nsprt_3_1\ngreen yellow\n.0000\n.0101\n.0000\n0....\n0....\n\nsprt_4_1\ngreen darkgreen\n0....\n0....\n0....\n.0000\n.1111\n\nsprt_5_1\ngreen darkgreen\n.010.\n.010.\n.010.\n0010.\n101..\n\nsprt_0_2\ngreen\n.....\n.....\n.....\n.....\n...00\n\nsprt_1_2\ngreen yellow\n00000\n01010\n00000\n.....\n00000\n\nsprt_2_2\ngreen darkgreen\n...01\n...01\n...01\n...01\n00001\n\nsprt_3_2\ngreen\n0....\n0....\n0....\n0....\n0....\n\nsprt_4_2\ngreen darkgreen\n00000\n010..\n010..\n010..\n010..\n\nsprt_5_2\ngreen darkgreen\n00...\n.....\n...1.\n..010\n..010\n\nsprt_0_3\ndarkgreen green\n..010\n.1011\n.101.\n.101.\n.101.\n\nsprt_1_3\ndarkgreen green yellow\n00000\n11111\n.....\n.1111\n.1212\n\nsprt_2_3\ndarkgreen green\n00000\n11110\n...10\n1..10\n1..10\n\nsprt_3_3\ngreen darkgreen\n00000\n11111\n00000\n0....\n0....\n\nsprt_4_3\ngreen darkgreen\n0100.\n11111\n00000\n...01\n...01\n\nsprt_5_3\ngreen darkgreen\n..010\n..010\n0.010\n00010\n1101.\n\nsprt_0_4\ngreen darkgreen\n.010.\n.010.\n.010.\n.010.\n.010.\n\nsprt_1_4\ngreen darkgreen\n.0000\n..010\n..010\n..010\n...10\n\nsprt_2_4\ngreen darkgreen\n0..01\n...01\n...01\n00001\n11111\n\nsprt_3_4\ngreen yellow\n0.000\n0.010\n0.000\n0....\n0....\n\nsprt_4_4\ngreen darkgreen yellow\n00.01\n20001\n00101\n.000.\n.....\n\nsprt_5_4\ngreen\n000..\n0....\n.....\n.....\n.....\n\nsprt_0_5\ngreen darkgreen\n.010.\n.010.\n..1..\n.....\n.....\n\nsprt_1_5\ngreen\n....0\n.....\n.....\n.....\n.....\n\nsprt_2_5\ngreen darkgreen\n00001\n...01\n...01\n....1\n.....\n\nsprt_3_5\ngreen darkgreen\n0....\n0....\n00000\n01111\n00000\n\nsprt_4_5\ngreen darkgreen\n.....\n.....\n0000.\n11111\n0000.\n\nsprt_5_5\ndarkgreen\n.....\n.....\n.0...\n0....\n.....\n\nblackbg\nblack\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wand\nP = Kopf_O and player\n* = Held and branch\nD = decorateheld\nF = staticfeuer\n\n\n\nkopf = Kopf_O or Kopf_U or Kopf_L or Kopf_R\nKoerper = Koerper_O or Koerper_U or Koerper_L or Koerper_R\nSchlange = Koerper or Koerper\nanyfeuer = feuer or staticfeuer\n\nb = blackbg \n\n1 = sprt_0_0 and blackbg\n2 = sprt_1_0 and blackbg\n3 = sprt_2_0 and blackbg\n4 = sprt_3_0 and blackbg\n5 = sprt_4_0 and blackbg\n6 = sprt_5_0 and blackbg\n7 = sprt_0_1 and blackbg\n8 = sprt_1_1 and blackbg\n9 = sprt_2_1 and blackbg\n0 = sprt_3_1 and blackbg\n- = sprt_4_1 and blackbg\nx = sprt_5_1 and blackbg\n; = sprt_0_2 and blackbg\n' = sprt_1_2 and blackbg\n\\ = sprt_2_2 and blackbg\n, = sprt_3_2 and blackbg\n~ = sprt_4_2 and blackbg\n/ = sprt_5_2 and blackbg\n! = sprt_0_3 and blackbg\n@ = sprt_1_3 and blackbg\n£ = sprt_2_3 and blackbg\n$ = sprt_3_3 and blackbg\n% = sprt_4_3 and blackbg\n& = sprt_5_3 and blackbg\nz = sprt_0_4 and wand\n_ = sprt_1_4 and wand\n+ = sprt_2_4 and wand\n{ = sprt_3_4 and wand\n} = sprt_4_4 and wand\n: = sprt_5_4 and wand\n\" = sprt_0_5 \nc = sprt_1_5 \n? = sprt_2_5 \n§ = sprt_3_5 \n± = sprt_4_5 \n` = sprt_5_5 \n\n=======\nSOUNDS\n=======\n\nsfx0 12264904 (Held essen)\n\nblut create 28419304\nfeuer create 77309907 \nendlevel 91964903\nstartlevel 49051702\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nblackbg\nWand\nHeld,decorateheld\nKoerper_O\nKoerper_U\nKoerper_L\nKoerper_R\nKopf_O\nKopf_U\nKopf_L\nKopf_R\nplayer\nblut\nfeuer, staticfeuer\nT\nU\naktion\nbranch\nsprt_0_0, sprt_1_0, sprt_2_0, sprt_3_0, sprt_4_0, sprt_5_0, sprt_0_1, sprt_1_1, sprt_2_1, sprt_3_1, sprt_4_1, sprt_5_1, sprt_0_2, sprt_1_2, sprt_2_2, sprt_3_2, sprt_4_2, sprt_5_2, sprt_0_3, sprt_1_3, sprt_2_3, sprt_3_3, sprt_4_3, sprt_5_3, sprt_0_4, sprt_1_4, sprt_2_4, sprt_3_4, sprt_4_4, sprt_5_4, sprt_0_5, sprt_1_5, sprt_2_5, sprt_3_5, sprt_4_5, sprt_5_5, \n\n\n======\nRULES\n======\n\n[aktion]->[]\n\n[blut]->cancel\n[t]->[]\n[u]->[]\n\n[t]->[]\n\n(action<->aktion swap)\n\n[Kopf_o]->[ up Kopf_o]\n[Kopf_u]->[ down Kopf_u]\n[Kopf_l]->[ left Kopf_l]\n[Kopf_r]->[ right Kopf_r]\n\n[ action player ] -> [ aktion player ]\n[ up player kopf ] -> [ action player > kopf ]\n\n\n(rotation code)\n\n[ left player kopf_o no koerper_l ] -> [ kopf_l ]\n[ right player kopf_o no koerper_r ] -> [ kopf_r ]\n\n[ left player kopf_u no koerper_r ] -> [ kopf_r ]\n[ right player kopf_u no koerper_l ] -> [ kopf_l ]\n\n[ left player kopf_l no koerper_u ] -> [ kopf_u ]\n[ right player kopf_l no koerper_o ] -> [ kopf_o ]\n\n[ left player kopf_r no koerper_o ] -> [ kopf_o ]\n[ right player kopf_r no koerper_u ] -> [ kopf_u ]\n\n\n[ orthogonal player ] -> [ player ]\n\n[Koerper_o]->[ up koerper_o]\n[Koerper_u]->[ down koerper_u]\n[Koerper_l]->[ left koerper_l]\n[Koerper_r]->[ right koerper_r]\n\n[Kopf_o]->[ up Kopf_o]\n[Kopf_u]->[ down Kopf_u]\n[Kopf_l]->[ left Kopf_l]\n[Kopf_r]->[ right Kopf_r]\n\n[action player ] [ > kopf | koerper ] -> [ action player ] [ blut | blut ] \n\n[action player ] [ > kopf | kopf ] -> [ action player ] [ blut | blut ]\n[action player ] [ > kopf | | kopf ] -> [ action player ] [ blut | blut | blut ]\n\n\n\n\n[ action player > kopf | wand ] -> cancel\n[ action player > kopf | schlange ] -> cancel\n\n\n[ action player > kopf | held ] -> [ > T | < T > player held ] sfx0\n[t koerper player ] -> [ player t koerper blut ]\n[ schlange | ^ player held | ] -> [ schlange blut | ^ player held | ]\n+ [ | ^ player held | schlange ] -> [ | ^ player held | schlange blut ]\n+ [ | ^ player held | ] -> [ < player > T | ^ U | < T > player ]\n+ [ horizontal U ] -> [ koerper_o koerper_u ]\n+ [ vertical U ] -> [ koerper_l koerper_r ]\n\n[ up player ] -> [ kopf_o ]\n[ down player ] -> [ kopf_u ]\n[ left player ] -> [ kopf_l ]\n[ right player ] -> [ kopf_r ]\n\n[ action player > kopf | no schlange ] -> [ > T | < T > player ]\n\n[ up T ] -> [ koerper_o ]\n[ down T ] -> [ koerper_u ]\n[ left T ] -> [ koerper_l ]\n[ right T ] -> [ koerper_r ]\n\n[ up Player ] -> [ kopf_o ]\n[ down Player ] -> [ kopf_u ]\n[ left Player ] -> [ kopf_l ]\n[ right Player ] -> [ kopf_r ]\n\n[koerper]->[stationary koerper]\n[kopf]->[stationary kopf]\n\n\n[t]->[]\n\n[ feuer no koerper ] -> [ ]\n\n[Koerper_o]->[ up koerper_o]\n[Koerper_u]->[ down koerper_u]\n[Koerper_l]->[ left koerper_l]\n[Koerper_r]->[ right koerper_r]\n\n[ | < koerper anyfeuer no T no branch ] -> [ feuer | feuer T ]\n[feuer branch]->[ branch]\n[feuer kopf]->[feuer] sfx1\n\n[t]->[]\n\n[moving koerper]->[stationary koerper]\n\n\nlate [ player ] -> []\nlate [kopf]->[ kopf player]\n\n\n[]->again\n\n\n==============\nWINCONDITIONS\n==============\n\nNo Held\nno blut\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 1 : Die Hyrda ist endlich umgegeben!\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#................*.................#\n#..................................#\n#.............*..P..*..............#\n#..................................#\n#................*.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Level 2 von 3 : Es muss moeglich sein, die Hydra zu toten!\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#.................*................#\n#..................................#\n#................*.................#\n#..................*...............#\n#..................................#\n#..............*.p.................#\n#..................................#\n#................*.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Level 3 von 5 : Wir haben ihren Schwachpunkt gefunden!\n\n\n####################################\n#..................................#\n#..................................#\n#................*.................#\n#..................................#\n#................*.................#\n#..................................#\n#................f.................#\n#..................................#\n#................*.................#\n#..................................#\n#................f.................#\n#..................................#\n#................*.................#\n#..................................#\n#..................................#\n#................p.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\n\nmessage Level 4 von 7 : Koennte sie ehrlich unsterblich sein!?\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#................*.................#\n#..................................#\n#................f.................#\n#..................................#\n#.............f..*..f..............#\n#..................................#\n#..................................#\n#.........*.f.*..P..*.f.*..........#\n#..................................#\n#..................................#\n#.............f..*..f..............#\n#..................................#\n#................f.................#\n#..................................#\n#................*.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Level 5 of 9 : Wir mussen uns gegen die Hydra schuetzen!\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..........fffffffffffff...........#\n#..........f...........f...........#\n#..........f..*..*..*..f...........#\n#..........f...........f...........#\n#..........f..*..*..*..f...........#\n#..........f...........f...........#\n#..........ff.........ff...........#\n#................p.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Level 6 of 11 : Haben wir alles umsonst gemacht?\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..........f.....f.....f...........#\n#..................................#\n#.............*..*..*..............#\n#..........f...........f...........#\n#.............*..*..*..............#\n#..................................#\n#..........f...........f...........#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#................p.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Es gibt kein Ende dieser Aufgabe. Wir verbeugen uns vor der Hydra.\n\n\nbbbbbbbb\nb123456b\nb7890-xb\nb;'\\,~/b\nb!@£$%&b\n#z_+{}:#\n.\"c?§±`.\n........\n..D..D..\n........\n\n\n\n", [1, 1, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 3, 3, 3, 0, 0, 0, 3, 0, 0, 3, 0, 0, "undo", 0, "restart", 0, 0, 0, 0, 3, 0, 0, 0, 0], "background wand: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,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,background koerper_u kopf_o player:2,background koerper_o koerper_u:3,3,3,background koerper_o koerper_r:4,1,background branch held:5,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,background koerper_l koerper_r:6,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n6,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,background branch koerper_l koerper_r koerper_u:7,3,background blut:8,1,5,1,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,6,1,background blut koerper_r:9,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,6,1,6,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,background koerper_l koerper_u:10,3,background branch koerper_l koerper_o koerper_r:11,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,background koerper_l kopf_r player:12,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,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,0,0,0,0,0,0,\n", 1, "1627891504088.934"] + "der Hydra Krypta", + ["title der Hydra Krypta\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nagain_interval 0.1\nnorepeat_action\n\nrun_rules_on_level_start\n(verbose_logging)\n\n========\nOBJECTS\n========\n\nBackground\ntransparent darkblue \n01010\n10001\n00000\n10001\n01010\n\nHeld\nlightblue white pink brown gray blue\n4333.\n4121.\n00000\n.555.\n.5.5.\n\ndecorateheld\nlightblue white pink brown gray blue\n4333.\n4121.\n00000\n.555.\n.5.5.\n\nWand\nDarkgreen black\n00010\n11111\n01000\n11111\n00010\n\nPlayer\ntransparent\n\nKopf_O\ngreen yellow darkgreen\n.000.\n.101.\n.020.\n..2..\n.....\n\nKopf_U\ngreen yellow darkgreen\n.....\n..2..\n.020.\n.101.\n.000.\n\nKopf_L\ngreen yellow darkgreen\n.....\n010..\n0022.\n010..\n.....\n\nKopf_R\ngreen yellow darkgreen\n.....\n..010\n.2200\n..010\n.....\n\nKoerper_L\ngreen darkgreen\n.....\n000..\n1111.\n000..\n.....\n\nKoerper_R\ngreen darkgreen\n.....\n..000\n.1111\n..000\n.....\n\nKoerper_O\ngreen darkgreen\n.010.\n.010.\n.010.\n..1..\n.....\n\nKoerper_U\ngreen darkgreen\n.....\n..1..\n.010.\n.010.\n.010.\n\nblut\nred darkred\n.1.0.\n00100\n.010.\n01001\n.1.0.\n\nt\ntransparent\n\nu\ntransparent\n\naktion \ntransparent\n\nFeuer\norange yellow brown\n.1...\n.1.1.\n10101\n10001\n.222.\n\nbranch \ntransparent\n\nstaticfeuer\norange yellow brown\n.1...\n.1.1.\n10101\n10001\n.222.\n\n\nsprt_0_0\ngreen yellow darkgreen\n.....\n.0000\n.0101\n.0000\n..020\n\nsprt_1_0\ngreen\n.....\n0....\n0....\n0...0\n....0\n\nsprt_2_0\ndarkgreen green\n.....\n.....\n0....\n01...\n01...\n\nsprt_3_0\ngreen darkgreen\n.....\n....0\n...10\n..010\n..010\n\nsprt_4_0\ngreen darkgreen\n.....\n00000\n11111\n00000\n.....\n\nsprt_5_0\ngreen darkgreen\n.....\n00...\n111..\n0000.\n.010.\n\nsprt_0_1\ngreen darkgreen\n..010\n..000\n...11\n....0\n.....\n\nsprt_1_1\ngreen darkgreen\n....0\n00000\n11111\n00100\n.010.\n\nsprt_2_1\ndarkgreen green\n01...\n0111.\n00010\n11110\n...10\n\nsprt_3_1\ngreen yellow\n.0000\n.0101\n.0000\n0....\n0....\n\nsprt_4_1\ngreen darkgreen\n0....\n0....\n0....\n.0000\n.1111\n\nsprt_5_1\ngreen darkgreen\n.010.\n.010.\n.010.\n0010.\n101..\n\nsprt_0_2\ngreen\n.....\n.....\n.....\n.....\n...00\n\nsprt_1_2\ngreen yellow\n00000\n01010\n00000\n.....\n00000\n\nsprt_2_2\ngreen darkgreen\n...01\n...01\n...01\n...01\n00001\n\nsprt_3_2\ngreen\n0....\n0....\n0....\n0....\n0....\n\nsprt_4_2\ngreen darkgreen\n00000\n010..\n010..\n010..\n010..\n\nsprt_5_2\ngreen darkgreen\n00...\n.....\n...1.\n..010\n..010\n\nsprt_0_3\ndarkgreen green\n..010\n.1011\n.101.\n.101.\n.101.\n\nsprt_1_3\ndarkgreen green yellow\n00000\n11111\n.....\n.1111\n.1212\n\nsprt_2_3\ndarkgreen green\n00000\n11110\n...10\n1..10\n1..10\n\nsprt_3_3\ngreen darkgreen\n00000\n11111\n00000\n0....\n0....\n\nsprt_4_3\ngreen darkgreen\n0100.\n11111\n00000\n...01\n...01\n\nsprt_5_3\ngreen darkgreen\n..010\n..010\n0.010\n00010\n1101.\n\nsprt_0_4\ngreen darkgreen\n.010.\n.010.\n.010.\n.010.\n.010.\n\nsprt_1_4\ngreen darkgreen\n.0000\n..010\n..010\n..010\n...10\n\nsprt_2_4\ngreen darkgreen\n0..01\n...01\n...01\n00001\n11111\n\nsprt_3_4\ngreen yellow\n0.000\n0.010\n0.000\n0....\n0....\n\nsprt_4_4\ngreen darkgreen yellow\n00.01\n20001\n00101\n.000.\n.....\n\nsprt_5_4\ngreen\n000..\n0....\n.....\n.....\n.....\n\nsprt_0_5\ngreen darkgreen\n.010.\n.010.\n..1..\n.....\n.....\n\nsprt_1_5\ngreen\n....0\n.....\n.....\n.....\n.....\n\nsprt_2_5\ngreen darkgreen\n00001\n...01\n...01\n....1\n.....\n\nsprt_3_5\ngreen darkgreen\n0....\n0....\n00000\n01111\n00000\n\nsprt_4_5\ngreen darkgreen\n.....\n.....\n0000.\n11111\n0000.\n\nsprt_5_5\ndarkgreen\n.....\n.....\n.0...\n0....\n.....\n\nblackbg\nblack\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wand\nP = Kopf_O and player\n* = Held and branch\nD = decorateheld\nF = staticfeuer\n\n\n\nkopf = Kopf_O or Kopf_U or Kopf_L or Kopf_R\nKoerper = Koerper_O or Koerper_U or Koerper_L or Koerper_R\nSchlange = Koerper or Koerper\nanyfeuer = feuer or staticfeuer\n\nb = blackbg \n\n1 = sprt_0_0 and blackbg\n2 = sprt_1_0 and blackbg\n3 = sprt_2_0 and blackbg\n4 = sprt_3_0 and blackbg\n5 = sprt_4_0 and blackbg\n6 = sprt_5_0 and blackbg\n7 = sprt_0_1 and blackbg\n8 = sprt_1_1 and blackbg\n9 = sprt_2_1 and blackbg\n0 = sprt_3_1 and blackbg\n- = sprt_4_1 and blackbg\nx = sprt_5_1 and blackbg\n; = sprt_0_2 and blackbg\n' = sprt_1_2 and blackbg\n\\ = sprt_2_2 and blackbg\n, = sprt_3_2 and blackbg\n~ = sprt_4_2 and blackbg\n/ = sprt_5_2 and blackbg\n! = sprt_0_3 and blackbg\n@ = sprt_1_3 and blackbg\n£ = sprt_2_3 and blackbg\n$ = sprt_3_3 and blackbg\n% = sprt_4_3 and blackbg\n& = sprt_5_3 and blackbg\nz = sprt_0_4 and wand\n_ = sprt_1_4 and wand\n+ = sprt_2_4 and wand\n{ = sprt_3_4 and wand\n} = sprt_4_4 and wand\n: = sprt_5_4 and wand\n\" = sprt_0_5 \nc = sprt_1_5 \n? = sprt_2_5 \n§ = sprt_3_5 \n± = sprt_4_5 \n` = sprt_5_5 \n\n=======\nSOUNDS\n=======\n\nsfx0 12264904 (Held essen)\n\nblut create 28419304\nfeuer create 77309907 \nendlevel 91964903\nstartlevel 49051702\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nblackbg\nWand\nHeld,decorateheld\nKoerper_O\nKoerper_U\nKoerper_L\nKoerper_R\nKopf_O\nKopf_U\nKopf_L\nKopf_R\nplayer\nblut\nfeuer, staticfeuer\nT\nU\naktion\nbranch\nsprt_0_0, sprt_1_0, sprt_2_0, sprt_3_0, sprt_4_0, sprt_5_0, sprt_0_1, sprt_1_1, sprt_2_1, sprt_3_1, sprt_4_1, sprt_5_1, sprt_0_2, sprt_1_2, sprt_2_2, sprt_3_2, sprt_4_2, sprt_5_2, sprt_0_3, sprt_1_3, sprt_2_3, sprt_3_3, sprt_4_3, sprt_5_3, sprt_0_4, sprt_1_4, sprt_2_4, sprt_3_4, sprt_4_4, sprt_5_4, sprt_0_5, sprt_1_5, sprt_2_5, sprt_3_5, sprt_4_5, sprt_5_5, \n\n\n======\nRULES\n======\n\n[aktion]->[]\n\n[blut]->cancel\n[t]->[]\n[u]->[]\n\n[t]->[]\n\n(action<->aktion swap)\n\n[Kopf_o]->[ up Kopf_o]\n[Kopf_u]->[ down Kopf_u]\n[Kopf_l]->[ left Kopf_l]\n[Kopf_r]->[ right Kopf_r]\n\n[ action player ] -> [ aktion player ]\n[ up player kopf ] -> [ action player > kopf ]\n\n\n(rotation code)\n\n[ left player kopf_o no koerper_l ] -> [ kopf_l ]\n[ right player kopf_o no koerper_r ] -> [ kopf_r ]\n\n[ left player kopf_u no koerper_r ] -> [ kopf_r ]\n[ right player kopf_u no koerper_l ] -> [ kopf_l ]\n\n[ left player kopf_l no koerper_u ] -> [ kopf_u ]\n[ right player kopf_l no koerper_o ] -> [ kopf_o ]\n\n[ left player kopf_r no koerper_o ] -> [ kopf_o ]\n[ right player kopf_r no koerper_u ] -> [ kopf_u ]\n\n\n[ orthogonal player ] -> [ player ]\n\n[Koerper_o]->[ up koerper_o]\n[Koerper_u]->[ down koerper_u]\n[Koerper_l]->[ left koerper_l]\n[Koerper_r]->[ right koerper_r]\n\n[Kopf_o]->[ up Kopf_o]\n[Kopf_u]->[ down Kopf_u]\n[Kopf_l]->[ left Kopf_l]\n[Kopf_r]->[ right Kopf_r]\n\n[action player ] [ > kopf | koerper ] -> [ action player ] [ blut | blut ] \n\n[action player ] [ > kopf | kopf ] -> [ action player ] [ blut | blut ]\n[action player ] [ > kopf | | kopf ] -> [ action player ] [ blut | blut | blut ]\n\n\n\n\n[ action player > kopf | wand ] -> cancel\n[ action player > kopf | schlange ] -> cancel\n\n\n[ action player > kopf | held ] -> [ > T | < T > player held ] sfx0\n[t koerper player ] -> [ player t koerper blut ]\n[ schlange | ^ player held | ] -> [ schlange blut | ^ player held | ]\n+ [ | ^ player held | schlange ] -> [ | ^ player held | schlange blut ]\n+ [ | ^ player held | ] -> [ < player > T | ^ U | < T > player ]\n+ [ horizontal U ] -> [ koerper_o koerper_u ]\n+ [ vertical U ] -> [ koerper_l koerper_r ]\n\n[ up player ] -> [ kopf_o ]\n[ down player ] -> [ kopf_u ]\n[ left player ] -> [ kopf_l ]\n[ right player ] -> [ kopf_r ]\n\n[ action player > kopf | no schlange ] -> [ > T | < T > player ]\n\n[ up T ] -> [ koerper_o ]\n[ down T ] -> [ koerper_u ]\n[ left T ] -> [ koerper_l ]\n[ right T ] -> [ koerper_r ]\n\n[ up Player ] -> [ kopf_o ]\n[ down Player ] -> [ kopf_u ]\n[ left Player ] -> [ kopf_l ]\n[ right Player ] -> [ kopf_r ]\n\n[koerper]->[stationary koerper]\n[kopf]->[stationary kopf]\n\n\n[t]->[]\n\n[ feuer no koerper ] -> [ ]\n\n[Koerper_o]->[ up koerper_o]\n[Koerper_u]->[ down koerper_u]\n[Koerper_l]->[ left koerper_l]\n[Koerper_r]->[ right koerper_r]\n\n[ | < koerper anyfeuer no T no branch ] -> [ feuer | feuer T ]\n[feuer branch]->[ branch]\n[feuer kopf]->[feuer] sfx1\n\n[t]->[]\n\n[moving koerper]->[stationary koerper]\n\n\nlate [ player ] -> []\nlate [kopf]->[ kopf player]\n\n\n[]->again\n\n\n==============\nWINCONDITIONS\n==============\n\nNo Held\nno blut\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 1 : Die Hyrda ist endlich umgegeben!\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#................*.................#\n#..................................#\n#.............*..P..*..............#\n#..................................#\n#................*.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Level 2 von 3 : Es muss moeglich sein, die Hydra zu toten!\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#.................*................#\n#..................................#\n#................*.................#\n#..................*...............#\n#..................................#\n#..............*.p.................#\n#..................................#\n#................*.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Level 3 von 5 : Wir haben ihren Schwachpunkt gefunden!\n\n\n####################################\n#..................................#\n#..................................#\n#................*.................#\n#..................................#\n#................*.................#\n#..................................#\n#................f.................#\n#..................................#\n#................*.................#\n#..................................#\n#................f.................#\n#..................................#\n#................*.................#\n#..................................#\n#..................................#\n#................p.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\n\nmessage Level 4 von 7 : Koennte sie ehrlich unsterblich sein!?\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#................*.................#\n#..................................#\n#................f.................#\n#..................................#\n#.............f..*..f..............#\n#..................................#\n#..................................#\n#.........*.f.*..P..*.f.*..........#\n#..................................#\n#..................................#\n#.............f..*..f..............#\n#..................................#\n#................f.................#\n#..................................#\n#................*.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Level 5 of 9 : Wir mussen uns gegen die Hydra schuetzen!\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..........fffffffffffff...........#\n#..........f...........f...........#\n#..........f..*..*..*..f...........#\n#..........f...........f...........#\n#..........f..*..*..*..f...........#\n#..........f...........f...........#\n#..........ff.........ff...........#\n#................p.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Level 6 of 11 : Haben wir alles umsonst gemacht?\n\n####################################\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..........f.....f.....f...........#\n#..................................#\n#.............*..*..*..............#\n#..........f...........f...........#\n#.............*..*..*..............#\n#..................................#\n#..........f...........f...........#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#................p.................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n#..................................#\n####################################\n\nmessage Es gibt kein Ende dieser Aufgabe. Wir verbeugen uns vor der Hydra.\n\n\nbbbbbbbb\nb123456b\nb7890-xb\nb;'\\,~/b\nb!@£$%&b\n#z_+{}:#\n.\"c?§±`.\n........\n..D..D..\n........\n\n\n\n",[1,1,0,3,0,0,0,0,3,0,0,0,3,3,3,0,0,0,3,0,0,3,0,0,"undo",0,"restart",0,0,0,0,3,0,0,0,0],"background wand: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,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,background koerper_u kopf_o player:2,background koerper_o koerper_u:3,3,3,background koerper_o koerper_r:4,1,background branch held:5,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,background koerper_l koerper_r:6,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n6,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,background branch koerper_l koerper_r koerper_u:7,3,background blut:8,1,5,1,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,6,1,background blut koerper_r:9,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,6,1,6,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,background koerper_l koerper_u:10,3,background branch koerper_l koerper_o koerper_r:11,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,background koerper_l kopf_r player:12,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,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,0,0,0,0,0,0,\n",1,"1627891504088.934"] ], [ - "Die schoene Steinmetzin", - ["title Die schoene Steinmetzin\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnoaction\n\nbackground_color blue\ntext_color white\n\ncolor_palette 14\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nhole\nblack\n\nWall\nBROWN \n\nPlayer\nred\n.....\n.000.\n.000.\n.000.\n.....\n\ncon_u\nred\n.000.\n.....\n.....\n.....\n.....\n\ncon_d\nred\n.....\n.....\n.....\n.....\n.000.\n\ncon_l\nred\n.....\n0....\n0....\n0....\n.....\n\ncon_r\nred\n.....\n....0\n....0\n....0\n.....\n\n\ntr\nred\n....0\n.....\n.....\n.....\n.....\n\n\ntl\nred\n0....\n.....\n.....\n.....\n.....\n\n\nbr\nred\n.....\n.....\n.....\n.....\n....0\n\n\nbl\nred\n.....\n.....\n.....\n.....\n0....\n\nknife_l\ngray\n0....\n0....\n0....\n0....\n0....\n\n\nknife_r\ngray\n....0\n....0\n....0\n....0\n....0\n\n\n\nknife_t\ngray\n00000\n.....\n.....\n.....\n.....\n\n\nknife_b\ngray\n.....\n.....\n.....\n.....\n00000\n\ncut_t\ntransparent\n\ncut_b\ntransparent\n\ncut_l\ntransparent\n\ncut_r\ntransparent\n\ntarget\norange\n\nsupported\ntransparent\n\n=======\nLEGEND\n=======\n\no = hole\n. = Background\n# = Wall\nP = Player\nconnection = con_u or con_d or con_l or con_r\nh = knife_r\nb = knife_b\nt = target\ncut = cut_t or cut_b or cut_l or cut_r\npixel = tr or tl or br or bl\n\n=======\nSOUNDS\n=======\nsfx0 29435104 (fall)\nsfx1 56782707 (cut)\nendlevel 53471503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget \nPlayer, Wall\ncon_u\ncon_d\ncon_l\ncon_r\nknife_t\nknife_b\nknife_l\nknife_r\ncut_t\ncut_b\ncut_l\ncut_r\ntr\ntl\nbr\nbl\nsupported\n\n======\nRULES\n======\n\n[pixel]->[]\n\nright [stationary player | player ] -> [ player con_r | player con_l ]\ndown [stationary player | player ] -> [ player con_d | player con_u ]\n\n\nright [knife_r | ] -> [ knife_r | knife_l]\ndown [knife_b | ] -> [ knife_b | knife_t]\n\n\n[ > player | wall ] -> [ player | wall ]\n+ [ right player knife_r ] -> [ stationary player knife_r]\n+ [ left player knife_l ] -> [ stationary player knife_l]\n+ [ up player knife_t ] -> [ stationary player knife_t]\n+ [ down player knife_b ] -> [ stationary player knife_b]\n\n+ up [ stationary player con_u | player ] -> [ stationary player con_u | stationary player ]\n+ down [ stationary player con_d | player ] -> [ stationary player con_d | stationary player ]\n+ left [ stationary player con_l | player ] -> [ stationary player con_l | stationary player ]\n+ right [ stationary player con_r | player ] -> [ stationary player con_r | stationary player ]\n\n+ [ > player | stationary player ] -> [ player | player ]\n\n\n[ > player connection ] -> [ > player > connection ]\n\n\n\n[ stationary player connection ] -> [ player stationary connection ]\n\n\nlate [ knife_r con_r ] -> [ knife_r cut_r ] sfx1\nlate [ knife_l con_l ] -> [ knife_l cut_l ] sfx1\n\nlate [ knife_t con_u ] -> [ knife_t cut_t ] sfx1\nlate [ knife_b con_d ] -> [ knife_b cut_b ] sfx1\n\n\nlate down [ con_r | con_u cut_r ] -> [ cut_r | con_u cut_r ]\nlate down [ con_l | con_u cut_l ] -> [ cut_l | con_u cut_l ]\n\nlate up [ con_r | con_d cut_r ] -> [ cut_r | con_d cut_r ]\nlate up [ con_l | con_d cut_l ] -> [ cut_l | con_d cut_l ]\n\nlate right [ con_u | con_l cut_t ] -> [ cut_t | con_l cut_t ]\nlate right [ con_d | con_l cut_b ] -> [ cut_b | con_l cut_b ]\n\nlate left [ con_u | con_r cut_t ] -> [ cut_t | con_r cut_t ]\nlate left [ con_d | con_r cut_b ] -> [ cut_b | con_r cut_b ]\n\nlate [ cut ]->[]\n\nlate [ player no hole ] -> [ player supported ]\n\nlate up [ supported con_u | ] -> [ supported con_u | supported ]\n+ late down [ supported con_d | ] -> [ supported con_d | supported ]\n+ late left [ supported con_l | ] -> [ supported con_l | supported ]\n+ late right [ supported con_r | ] -> [ supported con_r | supported ]\n\nlate [ player no supported ] -> [ no connection ] sfx0\n\nlate [ supported ] -> []\n\n\n\nlate right [ con_r con_d ] -> [ con_r con_d br ]\nlate right [ con_r con_u ] -> [ con_r con_u tr ]\nlate right [ con_l con_d ] -> [ con_l con_d bl ]\nlate right [ con_l con_u ] -> [ con_l con_u tl ]\n\n\n==============\nWINCONDITIONS\n==============\n\nall target on player\n\n=======\nLEVELS\n=======\n\n\n(OK LEVELS)\n\nmessage Level 1 von 5\n\n###############\n#.............#\n#.............#\n#....ppp..t.t.#\n##...ppp..ttt.#\n#....ppp..ttt.#\n#..........t..#\n#.............#\n#..h..........#\n###############\n\nmessage Level 2a von 5\n\n##################\n#................#\n#................#\n#....ppp..#...t..#\n#b...ppp..#..ttt.#\n#....ppp..#..ttt.#\n#.........#..t.t.#\n#................#\n#..h.............#\n##################\n\nmessage Level 2b von 5\n\n##################\n#................#\n#.....p..........#\n#....ppp..#......#\n#b...ppp..#..ttt.#\n#....p.p..#..ttt.#\n#.........#..ttt.#\n#................#\n#..h.............#\n##################\n\n\n\nmessage Level 3a von 5\n\n#################\n#........o......#\n#.........o.....#\n#...pp...o..ttt.#\n#b..ppp...o.t.t.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\nmessage Level 3b von 5\n\n(this is ok!)\n#################\n#....h...o......#\n#.........o.....#\n#...ppp..o..tt..#\n#b..p.p...o.ttt.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\nmessage Level 4a von 5\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#.ttt.ttt.#\n#...p.p...#.t.t.t.t.#\n#b..ppp..b#...ttt...#\n#...p.p...#.........#\n#...ppp...#.........#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n\nmessage Level 4b von 5\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#.........#...ttt...#\n#.ppp.ppp.#...t.t...#\n#bp.p.p.pb#...ttt...#\n#...ppp...#...t.t...#\n#.........#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n\nmessage level 5 von 5\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#...ttt...#\n#...p.....#...t.....#\n#b..ppp..b#...ttt...#\n#.....p...#.....t...#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n##...ot...###...ot...\no#.oootttooo#.ooottto\n##...###to###...###to\nottt.#tttooottt.#ttto\not...###...ot...###..\notttooo#.oootttooo#.o\n###to###...###to###..\n#tttooottt.#tttooottt\n###...ot...###...ot..\noo#.oootttooo#.ooottt\n###...###to###...###t\noottt.#tttooottt.#ttt\n.ot...###...ot...###.\nootttooo#.oootttooo#.\n.###to###...###to###.\n.#tttooottt.#tttooott\n.###...ot...###...ot.\nooo#.oootttooo#.ooott\n\n(\n(noT SURE LEVELS)\n\n(dunno!)\n##################\n#........#..######\n#........#.......#\n#...ppp..#...ttt.#\n#b..pp.......t.t.#\n#...ppp......ttt.#\n#........#.......#\n#........#..######\n#....h...#..######\n##################\n\n\n\n\n(lots of work)\n##################\n#............#...#\n#..........#.#...#\n#...pppp...#.tttt#\n#b..pppp...#.tttt#\n#...pppp...#.tttt#\n#...pppp...#.tttt#\n#..........#.#...#\n#..h.........#...#\n##################\n\n\n\n\n(nicht so gut:)\n##################\n#.........o.o#...#\n#..........o.#...#\n#...pppp..#..tttt#\n#b..pppp..#..tttt#\n#...pppp..#..tttt#\n#...pppp..#..tttt#\n#..........o.#...#\n#..h......o.o#...#\n##################\n\n\n#################\n#........o......#\n#.........o.....#\n#...ppp..o..tt..#\n#b..p.p...o.ttt.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\n#################\n#........o......#\n#.........o.....#\n#...ppp..o..ttt.#\n#b..pp....o.t.t.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\n#################\n#........o......#\n#.........o.....#\n#...ppp..o..ttt.#\n#b..pp....o.t.t.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\n(dupe of earlier)\n#################\n#..........######\n#...............#\n#...ppp.....ttt.#\n#b..pp......t.t.#\n#...ppp.....ttt.#\n#...............#\n#..........######\n#...h......######\n#################\n\n\n##################\n#.........o.o#...#\n#..........o.#...#\n#....ppp..#..ttt.#\n#b...ppp..#..ttt.#\n#....ppp..#..ttt.#\n#.........#......#\n#..........o.#...#\n#..h......o.o#...#\n##################\n\n#################\n#........o......#\n#.........o.....#\n#....ppp.o..ttt.#\n#b...pp...o.t.t.#\n#....ppp.o..ttt.#\n#.........o.....#\n#........o......#\n#..h......o.....#\n#################\n\n###############\n#.............#\n#.............#\n#....ppp..ttt.#\n#.#..pp..ttt..#\n#....ppp..ttt.#\n#b............#\n#.............#\n#.............#\n###############\n\n\n##################\n#.........o......#\n#..........o.....#\n#....ppp..#...t..#\n#b...ppp..#..ttt.#\n#....ppp..#..ttt.#\n#.........#..t.t.#\n#..........o.....#\n#..h......o......#\n##################\n\n\n##################\n#oo.......o......#\n#oo......o.......#\n#....ppp..o...t..#\n#b...ppp.o...ttt.#\n#....ppp..o..ttt.#\n#........o...t.t.#\n#.........o......#\n#..h.....o.......#\n##################\n\n\n###############\n#.............#\n#.............#\n#....ppp...t..#\n#b...ppp..ttt.#\n#....ppp..ttt.#\n#.........t.t.#\n#.............#\n#..h..........#\n###############\n\n#################\n#....h...o......#\n#.........o.....#\n#...ppp..o......#\n#...p.p...o.....#\n#...ppp..o..tt..#\n#b..p.p...o.ttt.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n#################\n#....h.....o....#\n#.........o.....#\n#...ppp...#.....#\n#...p.p...#.....#\n#b..ppp..b#.tt..#\n#...p.p...#.ttt.#\n#...ppp...#.ttt.#\n#.........#.....#\n#.........o.....#\n#....h.....o....#\n#################\n\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#.ttt.ttt.#\n#...p.p...#.t.t.t.t.#\n#b..ppp..b#.........#\n#...p.p...#.........#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#...ttt...#\n#...p.....#...t.....#\n#b..ppp..b#...ttt...#\n#...p.p...#.....t...#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n(OK)\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#...ttt...#\n#.....p...#...t.....#\n#b..ppp..b#...ttt...#\n#...p.....#.....t...#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n\n\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#...ttt...#\n#...p.....#.....t...#\n#b..ppp..b#...ttt...#\n#.....p...#...t.....#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n(also ok)\n)\n", [1, 0, 3, 0, 2, 2, 2, 2, 2, 1, 0, 3, 3, 3, 1, 0, 0, 3, 1, 2, 3, 1, 1, 1, 0, 0, 0, 0, 1, 2, 3, 1, 1, 1, 1, 3, 3, 2, 1, 1, 1, 3, 3, 3, 3, 3, 2, 3, 3, 1, 1, 0, 3, 3, 0, 0], "background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,1,1,1,background knife_b:2,background knife_t:3,1,1,\n1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,background knife_r:4,1,\n1,1,1,1,1,1,1,4,0,0,background knife_l:5,1,1,1,1,1,1,1,1,5,0,\n0,background br con_d con_r player:6,background con_d con_u player:7,background con_r con_u player tr:8,1,background con_r player:9,1,1,1,1,1,0,0,background con_l player:10,1,background con_l con_r player:11,background player:12,10,1,1,1,\n1,1,0,0,12,12,10,1,2,background con_d knife_t player:13,background con_u player:14,1,1,1,0,0,1,background hole:15,0,0,0,\n0,0,0,15,1,0,0,15,1,1,1,1,1,1,1,1,15,0,0,1,1,\nbackground target:16,16,1,1,1,1,1,1,0,0,1,1,16,1,1,1,1,1,1,1,0,\n0,1,1,16,16,16,1,1,1,1,1,0,0,1,1,1,1,16,1,1,1,\n1,1,0,0,1,1,16,16,16,1,1,1,1,1,0,0,1,1,16,1,1,\n1,1,1,1,1,0,0,1,1,16,16,1,1,1,1,1,1,0,0,0,1,\n1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 11, "1627891524914.4753"] + "Die schoene Steinmetzin", + ["title Die schoene Steinmetzin\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnoaction\n\nbackground_color blue\ntext_color white\n\ncolor_palette 14\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN\n\nhole\nblack\n\nWall\nBROWN \n\nPlayer\nred\n.....\n.000.\n.000.\n.000.\n.....\n\ncon_u\nred\n.000.\n.....\n.....\n.....\n.....\n\ncon_d\nred\n.....\n.....\n.....\n.....\n.000.\n\ncon_l\nred\n.....\n0....\n0....\n0....\n.....\n\ncon_r\nred\n.....\n....0\n....0\n....0\n.....\n\n\ntr\nred\n....0\n.....\n.....\n.....\n.....\n\n\ntl\nred\n0....\n.....\n.....\n.....\n.....\n\n\nbr\nred\n.....\n.....\n.....\n.....\n....0\n\n\nbl\nred\n.....\n.....\n.....\n.....\n0....\n\nknife_l\ngray\n0....\n0....\n0....\n0....\n0....\n\n\nknife_r\ngray\n....0\n....0\n....0\n....0\n....0\n\n\n\nknife_t\ngray\n00000\n.....\n.....\n.....\n.....\n\n\nknife_b\ngray\n.....\n.....\n.....\n.....\n00000\n\ncut_t\ntransparent\n\ncut_b\ntransparent\n\ncut_l\ntransparent\n\ncut_r\ntransparent\n\ntarget\norange\n\nsupported\ntransparent\n\n=======\nLEGEND\n=======\n\no = hole\n. = Background\n# = Wall\nP = Player\nconnection = con_u or con_d or con_l or con_r\nh = knife_r\nb = knife_b\nt = target\ncut = cut_t or cut_b or cut_l or cut_r\npixel = tr or tl or br or bl\n\n=======\nSOUNDS\n=======\nsfx0 29435104 (fall)\nsfx1 56782707 (cut)\nendlevel 53471503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget \nPlayer, Wall\ncon_u\ncon_d\ncon_l\ncon_r\nknife_t\nknife_b\nknife_l\nknife_r\ncut_t\ncut_b\ncut_l\ncut_r\ntr\ntl\nbr\nbl\nsupported\n\n======\nRULES\n======\n\n[pixel]->[]\n\nright [stationary player | player ] -> [ player con_r | player con_l ]\ndown [stationary player | player ] -> [ player con_d | player con_u ]\n\n\nright [knife_r | ] -> [ knife_r | knife_l]\ndown [knife_b | ] -> [ knife_b | knife_t]\n\n\n[ > player | wall ] -> [ player | wall ]\n+ [ right player knife_r ] -> [ stationary player knife_r]\n+ [ left player knife_l ] -> [ stationary player knife_l]\n+ [ up player knife_t ] -> [ stationary player knife_t]\n+ [ down player knife_b ] -> [ stationary player knife_b]\n\n+ up [ stationary player con_u | player ] -> [ stationary player con_u | stationary player ]\n+ down [ stationary player con_d | player ] -> [ stationary player con_d | stationary player ]\n+ left [ stationary player con_l | player ] -> [ stationary player con_l | stationary player ]\n+ right [ stationary player con_r | player ] -> [ stationary player con_r | stationary player ]\n\n+ [ > player | stationary player ] -> [ player | player ]\n\n\n[ > player connection ] -> [ > player > connection ]\n\n\n\n[ stationary player connection ] -> [ player stationary connection ]\n\n\nlate [ knife_r con_r ] -> [ knife_r cut_r ] sfx1\nlate [ knife_l con_l ] -> [ knife_l cut_l ] sfx1\n\nlate [ knife_t con_u ] -> [ knife_t cut_t ] sfx1\nlate [ knife_b con_d ] -> [ knife_b cut_b ] sfx1\n\n\nlate down [ con_r | con_u cut_r ] -> [ cut_r | con_u cut_r ]\nlate down [ con_l | con_u cut_l ] -> [ cut_l | con_u cut_l ]\n\nlate up [ con_r | con_d cut_r ] -> [ cut_r | con_d cut_r ]\nlate up [ con_l | con_d cut_l ] -> [ cut_l | con_d cut_l ]\n\nlate right [ con_u | con_l cut_t ] -> [ cut_t | con_l cut_t ]\nlate right [ con_d | con_l cut_b ] -> [ cut_b | con_l cut_b ]\n\nlate left [ con_u | con_r cut_t ] -> [ cut_t | con_r cut_t ]\nlate left [ con_d | con_r cut_b ] -> [ cut_b | con_r cut_b ]\n\nlate [ cut ]->[]\n\nlate [ player no hole ] -> [ player supported ]\n\nlate up [ supported con_u | ] -> [ supported con_u | supported ]\n+ late down [ supported con_d | ] -> [ supported con_d | supported ]\n+ late left [ supported con_l | ] -> [ supported con_l | supported ]\n+ late right [ supported con_r | ] -> [ supported con_r | supported ]\n\nlate [ player no supported ] -> [ no connection ] sfx0\n\nlate [ supported ] -> []\n\n\n\nlate right [ con_r con_d ] -> [ con_r con_d br ]\nlate right [ con_r con_u ] -> [ con_r con_u tr ]\nlate right [ con_l con_d ] -> [ con_l con_d bl ]\nlate right [ con_l con_u ] -> [ con_l con_u tl ]\n\n\n==============\nWINCONDITIONS\n==============\n\nall target on player\n\n=======\nLEVELS\n=======\n\n\n(OK LEVELS)\n\nmessage Level 1 von 5\n\n###############\n#.............#\n#.............#\n#....ppp..t.t.#\n##...ppp..ttt.#\n#....ppp..ttt.#\n#..........t..#\n#.............#\n#..h..........#\n###############\n\nmessage Level 2a von 5\n\n##################\n#................#\n#................#\n#....ppp..#...t..#\n#b...ppp..#..ttt.#\n#....ppp..#..ttt.#\n#.........#..t.t.#\n#................#\n#..h.............#\n##################\n\nmessage Level 2b von 5\n\n##################\n#................#\n#.....p..........#\n#....ppp..#......#\n#b...ppp..#..ttt.#\n#....p.p..#..ttt.#\n#.........#..ttt.#\n#................#\n#..h.............#\n##################\n\n\n\nmessage Level 3a von 5\n\n#################\n#........o......#\n#.........o.....#\n#...pp...o..ttt.#\n#b..ppp...o.t.t.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\nmessage Level 3b von 5\n\n(this is ok!)\n#################\n#....h...o......#\n#.........o.....#\n#...ppp..o..tt..#\n#b..p.p...o.ttt.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\nmessage Level 4a von 5\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#.ttt.ttt.#\n#...p.p...#.t.t.t.t.#\n#b..ppp..b#...ttt...#\n#...p.p...#.........#\n#...ppp...#.........#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n\nmessage Level 4b von 5\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#.........#...ttt...#\n#.ppp.ppp.#...t.t...#\n#bp.p.p.pb#...ttt...#\n#...ppp...#...t.t...#\n#.........#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n\nmessage level 5 von 5\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#...ttt...#\n#...p.....#...t.....#\n#b..ppp..b#...ttt...#\n#.....p...#.....t...#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n##...ot...###...ot...\no#.oootttooo#.ooottto\n##...###to###...###to\nottt.#tttooottt.#ttto\not...###...ot...###..\notttooo#.oootttooo#.o\n###to###...###to###..\n#tttooottt.#tttooottt\n###...ot...###...ot..\noo#.oootttooo#.ooottt\n###...###to###...###t\noottt.#tttooottt.#ttt\n.ot...###...ot...###.\nootttooo#.oootttooo#.\n.###to###...###to###.\n.#tttooottt.#tttooott\n.###...ot...###...ot.\nooo#.oootttooo#.ooott\n\n(\n(noT SURE LEVELS)\n\n(dunno!)\n##################\n#........#..######\n#........#.......#\n#...ppp..#...ttt.#\n#b..pp.......t.t.#\n#...ppp......ttt.#\n#........#.......#\n#........#..######\n#....h...#..######\n##################\n\n\n\n\n(lots of work)\n##################\n#............#...#\n#..........#.#...#\n#...pppp...#.tttt#\n#b..pppp...#.tttt#\n#...pppp...#.tttt#\n#...pppp...#.tttt#\n#..........#.#...#\n#..h.........#...#\n##################\n\n\n\n\n(nicht so gut:)\n##################\n#.........o.o#...#\n#..........o.#...#\n#...pppp..#..tttt#\n#b..pppp..#..tttt#\n#...pppp..#..tttt#\n#...pppp..#..tttt#\n#..........o.#...#\n#..h......o.o#...#\n##################\n\n\n#################\n#........o......#\n#.........o.....#\n#...ppp..o..tt..#\n#b..p.p...o.ttt.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\n#################\n#........o......#\n#.........o.....#\n#...ppp..o..ttt.#\n#b..pp....o.t.t.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\n#################\n#........o......#\n#.........o.....#\n#...ppp..o..ttt.#\n#b..pp....o.t.t.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n\n(dupe of earlier)\n#################\n#..........######\n#...............#\n#...ppp.....ttt.#\n#b..pp......t.t.#\n#...ppp.....ttt.#\n#...............#\n#..........######\n#...h......######\n#################\n\n\n##################\n#.........o.o#...#\n#..........o.#...#\n#....ppp..#..ttt.#\n#b...ppp..#..ttt.#\n#....ppp..#..ttt.#\n#.........#......#\n#..........o.#...#\n#..h......o.o#...#\n##################\n\n#################\n#........o......#\n#.........o.....#\n#....ppp.o..ttt.#\n#b...pp...o.t.t.#\n#....ppp.o..ttt.#\n#.........o.....#\n#........o......#\n#..h......o.....#\n#################\n\n###############\n#.............#\n#.............#\n#....ppp..ttt.#\n#.#..pp..ttt..#\n#....ppp..ttt.#\n#b............#\n#.............#\n#.............#\n###############\n\n\n##################\n#.........o......#\n#..........o.....#\n#....ppp..#...t..#\n#b...ppp..#..ttt.#\n#....ppp..#..ttt.#\n#.........#..t.t.#\n#..........o.....#\n#..h......o......#\n##################\n\n\n##################\n#oo.......o......#\n#oo......o.......#\n#....ppp..o...t..#\n#b...ppp.o...ttt.#\n#....ppp..o..ttt.#\n#........o...t.t.#\n#.........o......#\n#..h.....o.......#\n##################\n\n\n###############\n#.............#\n#.............#\n#....ppp...t..#\n#b...ppp..ttt.#\n#....ppp..ttt.#\n#.........t.t.#\n#.............#\n#..h..........#\n###############\n\n#################\n#....h...o......#\n#.........o.....#\n#...ppp..o......#\n#...p.p...o.....#\n#...ppp..o..tt..#\n#b..p.p...o.ttt.#\n#...ppp..o..ttt.#\n#.........o.....#\n#........o......#\n#....h....o.....#\n#################\n\n#################\n#....h.....o....#\n#.........o.....#\n#...ppp...#.....#\n#...p.p...#.....#\n#b..ppp..b#.tt..#\n#...p.p...#.ttt.#\n#...ppp...#.ttt.#\n#.........#.....#\n#.........o.....#\n#....h.....o....#\n#################\n\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#.ttt.ttt.#\n#...p.p...#.t.t.t.t.#\n#b..ppp..b#.........#\n#...p.p...#.........#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#...ttt...#\n#...p.....#...t.....#\n#b..ppp..b#...ttt...#\n#...p.p...#.....t...#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n(OK)\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#...ttt...#\n#.....p...#...t.....#\n#b..ppp..b#...ttt...#\n#...p.....#.....t...#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n\n\n\n#####################\n#....h.....o.......##\n#.........o.........#\n#...ppp...#...ttt...#\n#...p.....#.....t...#\n#b..ppp..b#...ttt...#\n#.....p...#...t.....#\n#...ppp...#...ttt...#\n#.........#.........#\n#.........o.........#\n#....h.....o.......##\n#####################\n\n(also ok)\n)\n",[1,0,3,0,2,2,2,2,2,1,0,3,3,3,1,0,0,3,1,2,3,1,1,1,0,0,0,0,1,2,3,1,1,1,1,3,3,2,1,1,1,3,3,3,3,3,2,3,3,1,1,0,3,3,0,0],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,1,1,1,background knife_b:2,background knife_t:3,1,1,\n1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,background knife_r:4,1,\n1,1,1,1,1,1,1,4,0,0,background knife_l:5,1,1,1,1,1,1,1,1,5,0,\n0,background br con_d con_r player:6,background con_d con_u player:7,background con_r con_u player tr:8,1,background con_r player:9,1,1,1,1,1,0,0,background con_l player:10,1,background con_l con_r player:11,background player:12,10,1,1,1,\n1,1,0,0,12,12,10,1,2,background con_d knife_t player:13,background con_u player:14,1,1,1,0,0,1,background hole:15,0,0,0,\n0,0,0,15,1,0,0,15,1,1,1,1,1,1,1,1,15,0,0,1,1,\nbackground target:16,16,1,1,1,1,1,1,0,0,1,1,16,1,1,1,1,1,1,1,0,\n0,1,1,16,16,16,1,1,1,1,1,0,0,1,1,1,1,16,1,1,1,\n1,1,0,0,1,1,16,16,16,1,1,1,1,1,0,0,1,1,16,1,1,\n1,1,1,1,1,0,0,1,1,16,16,1,1,1,1,1,1,0,0,0,1,\n1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",11,"1627891524914.4753"] ], [ - "I want to grind myself into dust", - ["title I want to grind myself into dust\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnoaction\n\nbackground_color #231617\ntext_color red\ncolor_palette 10\n\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nhole\n#231617\n\nWall\nred \n\ninvisiblewall\nred \n\nplayer\npink\n.0.0.\n00000\n00000\n.000.\n..0..\n\nblock\ndarkblue\n.....\n.000.\n.000.\n.000.\n.....\n\ncon_u\ndarkblue\n.000.\n.....\n.....\n.....\n.....\n\ncon_d\ndarkblue\n.....\n.....\n.....\n.....\n.000.\n\ncon_l\ndarkblue\n.....\n0....\n0....\n0....\n.....\n\ncon_r\ndarkblue\n.....\n....0\n....0\n....0\n.....\n\n\ntr\ndarkblue\n....0\n.....\n.....\n.....\n.....\n\n\ntl\ndarkblue\n0....\n.....\n.....\n.....\n.....\n\n\nbr\ndarkblue\n.....\n.....\n.....\n.....\n....0\n\n\nbl\ndarkblue\n.....\n.....\n.....\n.....\n0....\n\nknife_l\ngray\n0....\n0....\n0....\n0....\n0....\n\n\nknife_r\ngray\n....0\n....0\n....0\n....0\n....0\n\n\n\nknife_t\ngray\n00000\n.....\n.....\n.....\n.....\n\n\nknife_b\ngray\n.....\n.....\n.....\n.....\n00000\n\ncut_t\ntransparent\n\ncut_b\ntransparent\n\ncut_l\ntransparent\n\ncut_r\ntransparent\n\ntarget\norange\n\nsupported\ntransparent\n\nturn1\ntransparent\n\n=======\nLEGEND\n=======\n\no = hole\n. = Background\n# = Wall\n` = invisiblewall\nP = block\n* = block and player and turn1\nconnection = con_u or con_d or con_l or con_r\nh = knife_r\nb = knife_b\ng = knife_t\nk = knife_t and knife_b\nt = target\ncut = cut_t or cut_b or cut_l or cut_r\npixel = tr or tl or br or bl\nwalltype = wall or invisiblewall\n=======\nSOUNDS\n=======\nsfx0 29435104 (fall)\nsfx1 56782707 (cut)\nsfx2 6864307 (fall apart)\nendlevel 53471503\nplayer destroy 10882304\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget \nBlock, Wall, invisiblewall\ncon_u\ncon_d\ncon_l\ncon_r\nknife_t\nknife_b\nknife_l\nknife_r\nplayer\ncut_t\ncut_b\ncut_l\ncut_r\ntr\ntl\nbr\nbl\nsupported\nturn1\n\n======\nRULES\n======\n\n[ > player block ] -> [ > player > block ]\n\nup [ moving block con_u | stationary block ] -> [ moving block con_u | moving block ]\n+ down [ moving block con_d | stationary block ] -> [ moving block con_d | moving block ]\n+ left [ moving block con_l | stationary block ] -> [ moving block con_l | moving block ]\n+ right [ moving block con_r | stationary block ] -> [ moving block con_r | moving block ]\n+ [ > block | block ] -> [ > block | > block ]\n\n[pixel]->[]\n\nright [ turn1 ] [ block | block ] -> [turn1] [ block con_r | block con_l ]\ndown [ turn1 ] [ block | block ] -> [turn1] [ block con_d | block con_u ]\n\n[turn1]->[]\n\nright [knife_r | ] -> [ knife_r | knife_l]\ndown [knife_b | ] -> [ knife_b | knife_t]\nleft [knife_l | ] -> [ knife_l | knife_r]\nup [knife_t | ] -> [ knife_t | knife_b]\n\n\n[ > block | walltype ] -> [ block | walltype ]\n+ [ right block knife_r ] -> [ stationary block knife_r]\n+ [ left block knife_l ] -> [ stationary block knife_l]\n+ [ up block knife_t ] -> [ stationary block knife_t]\n+ [ down block knife_b ] -> [ stationary block knife_b]\n\n+ up [ stationary block con_u | block ] -> [ stationary block con_u | stationary block ]\n+ down [ stationary block con_d | block ] -> [ stationary block con_d | stationary block ]\n+ left [ stationary block con_l | block ] -> [ stationary block con_l | stationary block ]\n+ right [ stationary block con_r | block ] -> [ stationary block con_r | stationary block ]\n\n+ [ > block | stationary block ] -> [ block | block ]\n\n[ > player | hole ] -> cancel\n\n[ > block connection ] -> [ > block > connection ]\n\n\n\n[ stationary block connection ] -> [ block stationary connection ]\n\n\n[ > player stationary block ] -> cancel\n\nlate [ knife_r con_r ] -> [ cut_r ] sfx1\nlate [ knife_l con_l ] -> [ cut_l ] sfx1\n\nlate [ knife_t con_u ] -> [ cut_t ] sfx1\nlate [ knife_b con_d ] -> [ cut_b ] sfx1\n\n(\nlate down [ con_r | con_u cut_r ] -> [ cut_r | con_u cut_r ]\nlate down [ con_l | con_u cut_l ] -> [ cut_l | con_u cut_l ]\n\nlate up [ con_r | con_d cut_r ] -> [ cut_r | con_d cut_r ]\nlate up [ con_l | con_d cut_l ] -> [ cut_l | con_d cut_l ]\n\nlate right [ con_u | con_l cut_t ] -> [ cut_t | con_l cut_t ]\nlate right [ con_d | con_l cut_b ] -> [ cut_b | con_l cut_b ]\n\nlate left [ con_u | con_r cut_t ] -> [ cut_t | con_r cut_t ]\nlate left [ con_d | con_r cut_b ] -> [ cut_b | con_r cut_b ]\n)\nlate [ cut ]->[]\n\n(\nlate [ block no hole ] -> [ block supported ]\n\nlate up [ supported con_u | ] -> [ supported con_u | supported ]\n+ late down [ supported con_d | ] -> [ supported con_d | supported ]\n+ late left [ supported con_l | ] -> [ supported con_l | supported ]\n+ late right [ supported con_r | ] -> [ supported con_r | supported ]\n\nlate [ block no supported ] -> [ no connection ] sfx0\n\nlate [ supported ] -> []\n\n)\n\n\n\nlate [ con_r con_d ] -> [ con_r con_d br ]\nlate [ con_r con_u ] -> [ con_r con_u tr ]\nlate [ con_l con_d ] -> [ con_l con_d bl ]\nlate [ con_l con_u ] -> [ con_l con_u tl ]\n\nlate [ block no connection ] -> [ ]\nlate [player no block]->[] \n\n==============\nWINCONDITIONS\n==============\n\nno connection\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 3\n\n(main good level)\nooooooooooooooooooo\n#####oooooooooooooo\n#b..###############\n#k................#\n#g.######..#####..#\n##.........#...#..#\no#.........#####..#\no#...p*p..........#\no#...p.p..........#\no#...ppp...hhhhhhh#\no#.........########\no#b.......b#ooooooo\no#g.......g#ooooooo\no#.........#ooooooo\no#.........#ooooooo\no###########ooooooo\n\n\n\nmessage 2 of 3\n\n(level 2)\n````````````````````````````\n`..........................`\n`...........ppp............`\n`...........p.p............`\n`...........ppp............`\n`...........p.p............`\n`...........ppp............`\n`............p.............`\n`............*.............`\n`..........................`\n`.........ooooooo.....###..`\n`.........okhh.ko......b#..`\n`.........okhh.ko......k#..`\n`.........okhh.ko......g#..`\n`.........ooooooo.....###..`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n(level 3)\n\nmessage 3 of 3\n\n\n\n#############################\n#........................#..#\n#........................#.g#\n#......ppp...............#.g#\n#.......p................#.g#\n#....p..p..p.............#.g#\n#....p..p..p.............#.g#\n#....ppp*ppp.............#.g#\n#....p..p..p.............#.g#\n#....p..p..p...............g#\n#.......p...................#\n#....ppppppp................#\n#...........................#\n#...........................#\n#...........................#\n#...........................#\n#..........hhhhhh...........#\n#..........hhhhhh...........#\n#..........hhhhhh...........#\n#..........hhhhhh...........#\n#..........ooo.ooo..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#........``o.....o``........#\n#........`bo.....ob`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`go.....og`........#\n##```````````````#````````###\n\nmessage I am finally dust!\n\n(\n\n````````````````````````````\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`.....b......b....b........`\n`.....g......g....g........`\n`..........................`\n`..........ppppp...........`\n`............p.............`\n`.........p..p..p....h.....`\n`.........p..p..p..........`\n`....h....ppp*ppp..........`\n`.........p..p..p..........`\n`.........p..p..p....h.....`\n`............p.............`\n`..........ppppp...........`\n`...................b......`\n`....h........b.....g......`\n`.............g............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n````````````````````````````\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`.....b......b....b........`\n`.....g......g....g........`\n`............p.............`\n`............p.............`\n`............p.............`\n`............p.......h.....`\n`............p.............`\n`....h.......*.............`\n`............p.............`\n`............p.......h.....`\n`............p.............`\n`............p.............`\n`............p......b......`\n`....h.......pb.....g......`\n`............pg............`\n`............p.............`\n`............p.............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n````````````````````````````\n`..........................`\n`.....b......b....b........`\n`.....g......g....g........`\n`..........................`\n`..........................`\n`..........................`\n`..........ppppp.....h.....`\n`..........pp*pp...........`\n`....h.....ppppp...........`\n`..........................`\n`....................h.....`\n`..........................`\n`..........................`\n`...................b......`\n`....h........b.....g......`\n`.............g............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n\n......................................\n......................................\n......................................\n......................................\n......................................\n.......b..............................\n......................................\n.............h..h...h..h..h...........\n.......b.......................b......\n......................................\n......................................\n..............ppppppp.................\n.......b......p.p.p.p.................\n..............ppp*ppp..........b......\n..............p.p.p.p.................\n..............ppppppp.................\n.......b..............................\n...............................b......\n......................................\n......................................\n.......b..............................\n...............................b......\n......................................\n............h...h...h..h..h...........\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n.......ppppppp..........\n.......p.p.p.p..........\n.......ppp*ppp..........\n.......p.p.p.p..........\n.......ppppppp..........\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n\n...................\n#####..............\n#b..###############\n#b................#\n#..######..#####..#\n##.........#...#..#\n.#.........#####..#\n.#....p...........#\n.#....p...........#\n.#...p*p...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#.........#.......\n.###########.......\n\n\n\n.###################.\n.#.................#.\n.#.................#.\n.#.................#.\n.#.................#.\n.#ooooooooooooooooo#.\n.#.................#.\n.#....p*p..........#.\n.#....p.p..........#.\n.#b...ppp.........b#.\n.#....p.p..........#.\n##....ppp..........##\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#ooooooooooooooooo#\n#.................#\n#....p*p..........#\n#....p.p..........#\n#b...ppp.........b#\n#....p.p..........#\n#....ppp..........#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n\n...................\n#####..............\n#b..###############\n#b................#\n#..######..#####..#\n##.........#...#..#\n.#.........#####..#\n.#...p*p..........#\n.#...p.p..........#\n.#...ppp...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#.........#.......\n.###########.......\n\n\n\n####............\n#b.#############\n#b.............#\n#..###..#####..#\n##......#...#..#\n.#......#####..#\n.#..p*p........#\n.#..p.p........#\n.#..ppp.hhhhhhh#\n.#b....b########\n.#......#.......\n.#......#.......\n.#......#.......\n.########.......\n................\n\n\n...................\n#####..............\n#b..###############\n#b................#\n#..#####...####...#\n##.........#..#...#\n.#.........####...#\n.#...p*p..........#\n.#...p.p..........#\n.#...ppp...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#.........#.......\n.###########.......\n\n...................\n#####..............\n#b..###############\n#b................#\n#..######..#####..#\n##.........#...#..#\n.#.........#####..#\n.#...p*p..........#\n.#...p.p..........#\n.#...ppp...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#....h....#.......\n.###########.......\n\n...................\n#####..............\n#b..###############\n#b................#\n#..######..#####..#\n##.........#...#..#\n.#.........#####..#\n.#...p*p..........#\n.#...p.p..........#\n.#...ppp...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#....h....#.......\n.###########.......\n\n\n..........................\n...........ppp............\n...........p.p............\n...........ppp............\n...........p.p............\n...........p*p............\n..........................\n..........................\n.........ooooooo..........\n.........okhh.ko..........\n.........okhh.ko..........\n.........okhh.ko..........\n.........ooooooo..........\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n\n..........................\n...........ppp............\n...........p.p............\n...........ppp............\n...........p.p............\n...........ppp............\n............p.............\n............*.............\n.........ooooooo..........\n.........okhh.ko..........\n.........okhh.ko..........\n.........okhh.ko..........\n.........ooooooo..........\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n\n......................................\n......................................\n......................................\n......................................\n......................................\n.......b..............................\n......................................\n....................h..h..h...........\n.......b.......................b......\n......................................\n......................................\n......................................\n.......b..............................\n...............................b......\n......................................\n.............ppp......................\n.......b......p.......................\n.............*p................b......\n..............p.......................\n.............pp.......................\n.......b..............................\n..............ppp........p.....b......\n..............p.p........p............\n..............ppp.......pph...........\n..............p.p........p............\n..............ppp.......pp............\n............ooooooo...................\n............okhh.ko...................\n............obhh.bo...................\n............obhh.bo...................\n............ooooooo...................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n\n\n\n\n\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n...ppp.....................\n...p.p....ooooooo.....###..\n...ppp....okhh.ko......b#..\n...p.p....okhh.ko......k#..\n...ppp....okhh.ko......g#..\n....p.....ooooooo.....###..\n....*......................\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n\n\n````````````````````````````\n`........hhhhhhhh.....kkkkk`\n`........hhhhhhhh.....kkkkk`\n`........hhhhhhhh.....kkkkk`\n`........hhhhhhhh.....kkkkk`\n`.....................kkkkk`\n#.....................ggggg`\n#..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`.........ppppp............`\n`....b......p..............`\n`........p..p..p...........`\n`........p..p..p...........`\n`........ppp*ppp...........`\n`........p..p..p...........`\n`....b...p..p..p...........`\n`...........p..............`\n`.........ppppp............`\n`..........................`\n`..........................`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n\n````````````````````````````\n`........hhhhhhhh.....ggggk`\n`........hhhhhhhh.....ggggk`\n`........hhhhhhhh.....ggggk`\n`........hhhhhhhh.....ggggk`\n`.....................ggggg`\n#.....................ggggg`\n#..........................`\n`..........ppppp...........`\n`............p.............`\n`...........pp.............`\n`...........pp.............`\n`..........pppp............`\n`..........pp..............`\n`..........pp..............`\n`........ppppp.............`\n`.........p................`\n`.........p................`\n`......*ppp................`\n`.........p................`\n`.........p................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n\n############################\n`..........................`\n`.........ppppp............`\n`...........p..............`\n`........p..p..p...........`\n`........p..p..p...........`\n`........ppp*ppp...........`\n`........p..p..p...........`\n`........p..p..p...........`\n`...........p..............`\n`.........ppppp............`\n`..........................`\n`..........................`\n`..........................`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........`oo.oo`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n````````````````````````````\n\n############################\n`..........................`\n`.........ppppp............`\n`...........p..............`\n`........p..p..p...........`\n`........p..p..p...........`\n`........ppp*ppp...........`\n`........p..p..p...........`\n`........p..p..p...........`\n`...........p..............`\n`.........ppppp............`\n`..........................`\n`..........................`\n`..........................`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........`oo.oo`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n````````````````````````````\n\n############################\n`..........................`\n`..........ppp.............`\n`...........p..............`\n`...........p..............`\n`...........p..............`\n`...........*..............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`...........p.p............`\n`...........p.p............`\n`...........p.p............`\n`...........p.p............`\n`...........p.p............`\n`...........p.p............`\n`..........................`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n````````````````````````````\n\n\n############################\n`..........................`\n`..........ppp.............`\n`...........p..............`\n`........p..p..p...........`\n`........p..p..p...........`\n`........ppp*ppp...........`\n`........p..p..p...........`\n`........p..p..p...........`\n`...........p..............`\n`........ppppppp...........`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........ooo.ooo...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n````````````````````````````\n\n\n#########################\n`....................#.k#\n`....................#.k#\n`....ppp.............#.k#\n`.....p..............#.k#\n`..p..p..p...........#.k#\n`..p..p..p...........#.k#\n`..ppp*ppp...........#.k#\n`..p..p..p...........#.k#\n`..p..p..p..............#\n`.....p.................#\n`..ppppppp..............#\n`.......................#\n`.......................#\n`.......................#\n`.......................#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........ooo.ooo........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`......``o.....o``......#\n`......`bo.....ob`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`go.....og`......#\n```````````````#`````````\n\n\n\n#########################\n`....................#.k#\n`....................#.k#\n`....ppp.............#.k#\n`.....p..............#.k#\n`..p..p..p...........#.k#\n`..p..p..p...........#.k#\n`..ppp*ppp...........#.g#\n`..p..p..p..............#\n`..p..p..p..............#\n`.....p.................#\n`..ppppppp..............#\n`.......................#\n`.......................#\n`.......................#\n`.......................#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........ooo.ooo........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`......``o.....o``......#\n`......`bo.....ob`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`go.....og`......#\n```````````````#`````````\n\n\n#########################\n`....................#.g#\n`....................#.g#\n`..........ppp.......#.g#\n`...........p........#.g#\n`........p..p..p.....#.g#\n`........p..p..p.....#.g#\n`........ppp*ppp.....#.g#\n`........p..p..p........#\n`........p..p..p........#\n`...........p...........#\n`........ppppppp........#\n`.......................#\n`.......................#\n`.......................#\n`.......................#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........ooo.ooo........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`......``o.....o``......#\n`......`.o.....o.`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n```````````````#`````````\n\n\n)\n", [2, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 0, 0, 0, 0, 3, 0, 0, 0, 3, 3, 0, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 0, 0, 0, 3, 3, 3, 3, 3, 1, 1, 1, 1, 0, 0, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 0, 0, 0], "background invisiblewall: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,background:1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,1,1,1,1,1,1,1,1,1,1,background block con_r:2,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,background hole:3,background block con_l con_r hole:4,3,3,3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,\n1,1,1,1,1,background hole knife_b:5,background block con_l knife_t:6,1,1,3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,3,background knife_r:7,7,1,3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,3,\nbackground knife_l knife_r:8,8,1,3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,3,background knife_l:9,9,1,\n3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,3,1,1,1,3,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,3,3,3,3,3,1,1,1,1,1,\n1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,\n1,1,1,1,1,background bl block br con_d con_l con_r:10,background block con_d con_u:11,background block con_u player:12,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\nbackground wall:13,background block con_d:14,background block con_l con_u tl:15,1,13,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,13,background knife_b:16,background knife_b knife_t:17,\nbackground knife_t:18,13,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,13,13,13,13,13,1,\n1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,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,0,\n", 3, "1627891570621.5903"] + "I want to grind myself into dust", + ["title I want to grind myself into dust\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnoaction\n\nbackground_color #231617\ntext_color red\ncolor_palette 10\n\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nhole\n#231617\n\nWall\nred \n\ninvisiblewall\nred \n\nplayer\npink\n.0.0.\n00000\n00000\n.000.\n..0..\n\nblock\ndarkblue\n.....\n.000.\n.000.\n.000.\n.....\n\ncon_u\ndarkblue\n.000.\n.....\n.....\n.....\n.....\n\ncon_d\ndarkblue\n.....\n.....\n.....\n.....\n.000.\n\ncon_l\ndarkblue\n.....\n0....\n0....\n0....\n.....\n\ncon_r\ndarkblue\n.....\n....0\n....0\n....0\n.....\n\n\ntr\ndarkblue\n....0\n.....\n.....\n.....\n.....\n\n\ntl\ndarkblue\n0....\n.....\n.....\n.....\n.....\n\n\nbr\ndarkblue\n.....\n.....\n.....\n.....\n....0\n\n\nbl\ndarkblue\n.....\n.....\n.....\n.....\n0....\n\nknife_l\ngray\n0....\n0....\n0....\n0....\n0....\n\n\nknife_r\ngray\n....0\n....0\n....0\n....0\n....0\n\n\n\nknife_t\ngray\n00000\n.....\n.....\n.....\n.....\n\n\nknife_b\ngray\n.....\n.....\n.....\n.....\n00000\n\ncut_t\ntransparent\n\ncut_b\ntransparent\n\ncut_l\ntransparent\n\ncut_r\ntransparent\n\ntarget\norange\n\nsupported\ntransparent\n\nturn1\ntransparent\n\n=======\nLEGEND\n=======\n\no = hole\n. = Background\n# = Wall\n` = invisiblewall\nP = block\n* = block and player and turn1\nconnection = con_u or con_d or con_l or con_r\nh = knife_r\nb = knife_b\ng = knife_t\nk = knife_t and knife_b\nt = target\ncut = cut_t or cut_b or cut_l or cut_r\npixel = tr or tl or br or bl\nwalltype = wall or invisiblewall\n=======\nSOUNDS\n=======\nsfx0 29435104 (fall)\nsfx1 56782707 (cut)\nsfx2 6864307 (fall apart)\nendlevel 53471503\nplayer destroy 10882304\n================\nCOLLISIONLAYERS\n================\n\nBackground\nhole\ntarget \nBlock, Wall, invisiblewall\ncon_u\ncon_d\ncon_l\ncon_r\nknife_t\nknife_b\nknife_l\nknife_r\nplayer\ncut_t\ncut_b\ncut_l\ncut_r\ntr\ntl\nbr\nbl\nsupported\nturn1\n\n======\nRULES\n======\n\n[ > player block ] -> [ > player > block ]\n\nup [ moving block con_u | stationary block ] -> [ moving block con_u | moving block ]\n+ down [ moving block con_d | stationary block ] -> [ moving block con_d | moving block ]\n+ left [ moving block con_l | stationary block ] -> [ moving block con_l | moving block ]\n+ right [ moving block con_r | stationary block ] -> [ moving block con_r | moving block ]\n+ [ > block | block ] -> [ > block | > block ]\n\n[pixel]->[]\n\nright [ turn1 ] [ block | block ] -> [turn1] [ block con_r | block con_l ]\ndown [ turn1 ] [ block | block ] -> [turn1] [ block con_d | block con_u ]\n\n[turn1]->[]\n\nright [knife_r | ] -> [ knife_r | knife_l]\ndown [knife_b | ] -> [ knife_b | knife_t]\nleft [knife_l | ] -> [ knife_l | knife_r]\nup [knife_t | ] -> [ knife_t | knife_b]\n\n\n[ > block | walltype ] -> [ block | walltype ]\n+ [ right block knife_r ] -> [ stationary block knife_r]\n+ [ left block knife_l ] -> [ stationary block knife_l]\n+ [ up block knife_t ] -> [ stationary block knife_t]\n+ [ down block knife_b ] -> [ stationary block knife_b]\n\n+ up [ stationary block con_u | block ] -> [ stationary block con_u | stationary block ]\n+ down [ stationary block con_d | block ] -> [ stationary block con_d | stationary block ]\n+ left [ stationary block con_l | block ] -> [ stationary block con_l | stationary block ]\n+ right [ stationary block con_r | block ] -> [ stationary block con_r | stationary block ]\n\n+ [ > block | stationary block ] -> [ block | block ]\n\n[ > player | hole ] -> cancel\n\n[ > block connection ] -> [ > block > connection ]\n\n\n\n[ stationary block connection ] -> [ block stationary connection ]\n\n\n[ > player stationary block ] -> cancel\n\nlate [ knife_r con_r ] -> [ cut_r ] sfx1\nlate [ knife_l con_l ] -> [ cut_l ] sfx1\n\nlate [ knife_t con_u ] -> [ cut_t ] sfx1\nlate [ knife_b con_d ] -> [ cut_b ] sfx1\n\n(\nlate down [ con_r | con_u cut_r ] -> [ cut_r | con_u cut_r ]\nlate down [ con_l | con_u cut_l ] -> [ cut_l | con_u cut_l ]\n\nlate up [ con_r | con_d cut_r ] -> [ cut_r | con_d cut_r ]\nlate up [ con_l | con_d cut_l ] -> [ cut_l | con_d cut_l ]\n\nlate right [ con_u | con_l cut_t ] -> [ cut_t | con_l cut_t ]\nlate right [ con_d | con_l cut_b ] -> [ cut_b | con_l cut_b ]\n\nlate left [ con_u | con_r cut_t ] -> [ cut_t | con_r cut_t ]\nlate left [ con_d | con_r cut_b ] -> [ cut_b | con_r cut_b ]\n)\nlate [ cut ]->[]\n\n(\nlate [ block no hole ] -> [ block supported ]\n\nlate up [ supported con_u | ] -> [ supported con_u | supported ]\n+ late down [ supported con_d | ] -> [ supported con_d | supported ]\n+ late left [ supported con_l | ] -> [ supported con_l | supported ]\n+ late right [ supported con_r | ] -> [ supported con_r | supported ]\n\nlate [ block no supported ] -> [ no connection ] sfx0\n\nlate [ supported ] -> []\n\n)\n\n\n\nlate [ con_r con_d ] -> [ con_r con_d br ]\nlate [ con_r con_u ] -> [ con_r con_u tr ]\nlate [ con_l con_d ] -> [ con_l con_d bl ]\nlate [ con_l con_u ] -> [ con_l con_u tl ]\n\nlate [ block no connection ] -> [ ]\nlate [player no block]->[] \n\n==============\nWINCONDITIONS\n==============\n\nno connection\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 3\n\n(main good level)\nooooooooooooooooooo\n#####oooooooooooooo\n#b..###############\n#k................#\n#g.######..#####..#\n##.........#...#..#\no#.........#####..#\no#...p*p..........#\no#...p.p..........#\no#...ppp...hhhhhhh#\no#.........########\no#b.......b#ooooooo\no#g.......g#ooooooo\no#.........#ooooooo\no#.........#ooooooo\no###########ooooooo\n\n\n\nmessage 2 of 3\n\n(level 2)\n````````````````````````````\n`..........................`\n`...........ppp............`\n`...........p.p............`\n`...........ppp............`\n`...........p.p............`\n`...........ppp............`\n`............p.............`\n`............*.............`\n`..........................`\n`.........ooooooo.....###..`\n`.........okhh.ko......b#..`\n`.........okhh.ko......k#..`\n`.........okhh.ko......g#..`\n`.........ooooooo.....###..`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n(level 3)\n\nmessage 3 of 3\n\n\n\n#############################\n#........................#..#\n#........................#.g#\n#......ppp...............#.g#\n#.......p................#.g#\n#....p..p..p.............#.g#\n#....p..p..p.............#.g#\n#....ppp*ppp.............#.g#\n#....p..p..p.............#.g#\n#....p..p..p...............g#\n#.......p...................#\n#....ppppppp................#\n#...........................#\n#...........................#\n#...........................#\n#...........................#\n#..........hhhhhh...........#\n#..........hhhhhh...........#\n#..........hhhhhh...........#\n#..........hhhhhh...........#\n#..........ooo.ooo..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#..........o.....o..........#\n#........``o.....o``........#\n#........`bo.....ob`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`ko.....ok`........#\n#........`go.....og`........#\n##```````````````#````````###\n\nmessage I am finally dust!\n\n(\n\n````````````````````````````\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`.....b......b....b........`\n`.....g......g....g........`\n`..........................`\n`..........ppppp...........`\n`............p.............`\n`.........p..p..p....h.....`\n`.........p..p..p..........`\n`....h....ppp*ppp..........`\n`.........p..p..p..........`\n`.........p..p..p....h.....`\n`............p.............`\n`..........ppppp...........`\n`...................b......`\n`....h........b.....g......`\n`.............g............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n````````````````````````````\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`.....b......b....b........`\n`.....g......g....g........`\n`............p.............`\n`............p.............`\n`............p.............`\n`............p.......h.....`\n`............p.............`\n`....h.......*.............`\n`............p.............`\n`............p.......h.....`\n`............p.............`\n`............p.............`\n`............p......b......`\n`....h.......pb.....g......`\n`............pg............`\n`............p.............`\n`............p.............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n````````````````````````````\n`..........................`\n`.....b......b....b........`\n`.....g......g....g........`\n`..........................`\n`..........................`\n`..........................`\n`..........ppppp.....h.....`\n`..........pp*pp...........`\n`....h.....ppppp...........`\n`..........................`\n`....................h.....`\n`..........................`\n`..........................`\n`...................b......`\n`....h........b.....g......`\n`.............g............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n\n......................................\n......................................\n......................................\n......................................\n......................................\n.......b..............................\n......................................\n.............h..h...h..h..h...........\n.......b.......................b......\n......................................\n......................................\n..............ppppppp.................\n.......b......p.p.p.p.................\n..............ppp*ppp..........b......\n..............p.p.p.p.................\n..............ppppppp.................\n.......b..............................\n...............................b......\n......................................\n......................................\n.......b..............................\n...............................b......\n......................................\n............h...h...h..h..h...........\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n.......ppppppp..........\n.......p.p.p.p..........\n.......ppp*ppp..........\n.......p.p.p.p..........\n.......ppppppp..........\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n........................\n\n...................\n#####..............\n#b..###############\n#b................#\n#..######..#####..#\n##.........#...#..#\n.#.........#####..#\n.#....p...........#\n.#....p...........#\n.#...p*p...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#.........#.......\n.###########.......\n\n\n\n.###################.\n.#.................#.\n.#.................#.\n.#.................#.\n.#.................#.\n.#ooooooooooooooooo#.\n.#.................#.\n.#....p*p..........#.\n.#....p.p..........#.\n.#b...ppp.........b#.\n.#....p.p..........#.\n##....ppp..........##\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#...................#\n#####################\n\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#ooooooooooooooooo#\n#.................#\n#....p*p..........#\n#....p.p..........#\n#b...ppp.........b#\n#....p.p..........#\n#....ppp..........#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n#.................#\n###################\n\n\n\n\n...................\n#####..............\n#b..###############\n#b................#\n#..######..#####..#\n##.........#...#..#\n.#.........#####..#\n.#...p*p..........#\n.#...p.p..........#\n.#...ppp...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#.........#.......\n.###########.......\n\n\n\n####............\n#b.#############\n#b.............#\n#..###..#####..#\n##......#...#..#\n.#......#####..#\n.#..p*p........#\n.#..p.p........#\n.#..ppp.hhhhhhh#\n.#b....b########\n.#......#.......\n.#......#.......\n.#......#.......\n.########.......\n................\n\n\n...................\n#####..............\n#b..###############\n#b................#\n#..#####...####...#\n##.........#..#...#\n.#.........####...#\n.#...p*p..........#\n.#...p.p..........#\n.#...ppp...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#.........#.......\n.###########.......\n\n...................\n#####..............\n#b..###############\n#b................#\n#..######..#####..#\n##.........#...#..#\n.#.........#####..#\n.#...p*p..........#\n.#...p.p..........#\n.#...ppp...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#....h....#.......\n.###########.......\n\n...................\n#####..............\n#b..###############\n#b................#\n#..######..#####..#\n##.........#...#..#\n.#.........#####..#\n.#...p*p..........#\n.#...p.p..........#\n.#...ppp...hhhhhhh#\n.#.........########\n.#b.......b#.......\n.#.........#.......\n.#.........#.......\n.#....h....#.......\n.###########.......\n\n\n..........................\n...........ppp............\n...........p.p............\n...........ppp............\n...........p.p............\n...........p*p............\n..........................\n..........................\n.........ooooooo..........\n.........okhh.ko..........\n.........okhh.ko..........\n.........okhh.ko..........\n.........ooooooo..........\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n\n..........................\n...........ppp............\n...........p.p............\n...........ppp............\n...........p.p............\n...........ppp............\n............p.............\n............*.............\n.........ooooooo..........\n.........okhh.ko..........\n.........okhh.ko..........\n.........okhh.ko..........\n.........ooooooo..........\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n..........................\n\n......................................\n......................................\n......................................\n......................................\n......................................\n.......b..............................\n......................................\n....................h..h..h...........\n.......b.......................b......\n......................................\n......................................\n......................................\n.......b..............................\n...............................b......\n......................................\n.............ppp......................\n.......b......p.......................\n.............*p................b......\n..............p.......................\n.............pp.......................\n.......b..............................\n..............ppp........p.....b......\n..............p.p........p............\n..............ppp.......pph...........\n..............p.p........p............\n..............ppp.......pp............\n............ooooooo...................\n............okhh.ko...................\n............obhh.bo...................\n............obhh.bo...................\n............ooooooo...................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n......................................\n\n\n\n\n\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n...ppp.....................\n...p.p....ooooooo.....###..\n...ppp....okhh.ko......b#..\n...p.p....okhh.ko......k#..\n...ppp....okhh.ko......g#..\n....p.....ooooooo.....###..\n....*......................\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n...........................\n\n\n````````````````````````````\n`........hhhhhhhh.....kkkkk`\n`........hhhhhhhh.....kkkkk`\n`........hhhhhhhh.....kkkkk`\n`........hhhhhhhh.....kkkkk`\n`.....................kkkkk`\n#.....................ggggg`\n#..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`.........ppppp............`\n`....b......p..............`\n`........p..p..p...........`\n`........p..p..p...........`\n`........ppp*ppp...........`\n`........p..p..p...........`\n`....b...p..p..p...........`\n`...........p..............`\n`.........ppppp............`\n`..........................`\n`..........................`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n\n````````````````````````````\n`........hhhhhhhh.....ggggk`\n`........hhhhhhhh.....ggggk`\n`........hhhhhhhh.....ggggk`\n`........hhhhhhhh.....ggggk`\n`.....................ggggg`\n#.....................ggggg`\n#..........................`\n`..........ppppp...........`\n`............p.............`\n`...........pp.............`\n`...........pp.............`\n`..........pppp............`\n`..........pp..............`\n`..........pp..............`\n`........ppppp.............`\n`.........p................`\n`.........p................`\n`......*ppp................`\n`.........p................`\n`.........p................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n````````````````````````````\n\n\n############################\n`..........................`\n`.........ppppp............`\n`...........p..............`\n`........p..p..p...........`\n`........p..p..p...........`\n`........ppp*ppp...........`\n`........p..p..p...........`\n`........p..p..p...........`\n`...........p..............`\n`.........ppppp............`\n`..........................`\n`..........................`\n`..........................`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........`oo.oo`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n````````````````````````````\n\n############################\n`..........................`\n`.........ppppp............`\n`...........p..............`\n`........p..p..p...........`\n`........p..p..p...........`\n`........ppp*ppp...........`\n`........p..p..p...........`\n`........p..p..p...........`\n`...........p..............`\n`.........ppppp............`\n`..........................`\n`..........................`\n`..........................`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........`oo.oo`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n````````````````````````````\n\n############################\n`..........................`\n`..........ppp.............`\n`...........p..............`\n`...........p..............`\n`...........p..............`\n`...........*..............`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`...........p.p............`\n`...........p.p............`\n`...........p.p............`\n`...........p.p............`\n`...........p.p............`\n`...........p.p............`\n`..........................`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n`........`.....`...........`\n````````````````````````````\n\n\n############################\n`..........................`\n`..........ppp.............`\n`...........p..............`\n`........p..p..p...........`\n`........p..p..p...........`\n`........ppp*ppp...........`\n`........p..p..p...........`\n`........p..p..p...........`\n`...........p..............`\n`........ppppppp...........`\n`..........................`\n`..........................`\n`..........................`\n`..........................`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........hhhhhh............`\n`........ooo.ooo...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........o.....o...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n`........`g...g`...........`\n````````````````````````````\n\n\n#########################\n`....................#.k#\n`....................#.k#\n`....ppp.............#.k#\n`.....p..............#.k#\n`..p..p..p...........#.k#\n`..p..p..p...........#.k#\n`..ppp*ppp...........#.k#\n`..p..p..p...........#.k#\n`..p..p..p..............#\n`.....p.................#\n`..ppppppp..............#\n`.......................#\n`.......................#\n`.......................#\n`.......................#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........ooo.ooo........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`......``o.....o``......#\n`......`bo.....ob`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`go.....og`......#\n```````````````#`````````\n\n\n\n#########################\n`....................#.k#\n`....................#.k#\n`....ppp.............#.k#\n`.....p..............#.k#\n`..p..p..p...........#.k#\n`..p..p..p...........#.k#\n`..ppp*ppp...........#.g#\n`..p..p..p..............#\n`..p..p..p..............#\n`.....p.................#\n`..ppppppp..............#\n`.......................#\n`.......................#\n`.......................#\n`.......................#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........ooo.ooo........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`......``o.....o``......#\n`......`bo.....ob`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`ko.....ok`......#\n`......`go.....og`......#\n```````````````#`````````\n\n\n#########################\n`....................#.g#\n`....................#.g#\n`..........ppp.......#.g#\n`...........p........#.g#\n`........p..p..p.....#.g#\n`........p..p..p.....#.g#\n`........ppp*ppp.....#.g#\n`........p..p..p........#\n`........p..p..p........#\n`...........p...........#\n`........ppppppp........#\n`.......................#\n`.......................#\n`.......................#\n`.......................#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........hhhhhh.........#\n`........ooo.ooo........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`........o.....o........#\n`......``o.....o``......#\n`......`.o.....o.`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n`......`go.....og`......#\n```````````````#`````````\n\n\n)\n",[2,3,3,3,3,2,2,2,2,2,2,2,1,3,3,3,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,0,0,0,0,3,0,0,0,3,3,0,1,1,2,2,2,1,1,2,1,1,1,1,1,0,0,0,3,3,3,3,3,1,1,1,1,0,0,3,2,3,3,3,3,3,3,3,3,3,3,0,3,3,3,0,0,0],"background invisiblewall: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,background:1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,1,1,1,1,1,1,1,1,1,1,background block con_r:2,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,background hole:3,background block con_l con_r hole:4,3,3,3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,\n1,1,1,1,1,background hole knife_b:5,background block con_l knife_t:6,1,1,3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,3,background knife_r:7,7,1,3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,3,\nbackground knife_l knife_r:8,8,1,3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,3,background knife_l:9,9,1,\n3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,3,1,1,1,3,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,3,3,3,3,3,1,1,1,1,1,\n1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,\n1,1,1,1,1,background bl block br con_d con_l con_r:10,background block con_d con_u:11,background block con_u player:12,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\nbackground wall:13,background block con_d:14,background block con_l con_u tl:15,1,13,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,13,background knife_b:16,background knife_b knife_t:17,\nbackground knife_t:18,13,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,13,13,13,13,13,1,\n1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,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,0,\n",3,"1627891570621.5903"] ], [ - "Karamell", - ["title Karamell\nauthor Stephen Lavelle\nhomepage www.increpare.com\nrun_rules_on_level_start\n\nverbose_logging\n\nrequire_player_movement\n\nbackground_color #9c5445\n\n========\nOBJECTS\n========\n\nnostril \n#231617 transparent\n10001\n00000\n00000\n00000\n10001\n\nBackground\n#3d2d2e\n\nTarget\n#231617\n\ntargetp_tl\n#3d2d2e\n0....\n.....\n.....\n.....\n.....\n\ntargetp_tr\n#3d2d2e\n....0\n.....\n.....\n.....\n.....\n\ntargetp_bl\n#3d2d2e\n.....\n.....\n.....\n.....\n0....\n\ntargetp_br\n#3d2d2e\n.....\n.....\n.....\n.....\n....0\n\n\nborder_l\n#78403e\n0....\n0....\n0....\n0....\n0....\n\n\n\nborder_r\n#78403e\n....0\n....0\n....0\n....0\n....0\n\n\n\nborder_u\n#78403e\n00000\n.....\n.....\n.....\n.....\n\n\n\nborder_d\n#78403e\n.....\n.....\n.....\n.....\n00000\n\nUvula_c\n#2a1c1d #231617\n00000\n10001\n10001\n10001\n10001\n\nUvula\n#2a1c1d #231617\n10001\n00000\n00000\n00000\n10001\n\ntoffee\n#bb6a25 #d07d36 #e4944f\n.111.\n11111\n11111\n11111\n.111.\n\n\ntoffee_tl\n#bb6a25 #d07d36 #e4944f\n.1111\n01212\n01212\n01212\n01212\n\n\ntoffee_tr\n#bb6a25 #d07d36 #e4944f\n1111.\n12121\n12121\n12121\n12121\n\n\ntoffee_bl\n#bb6a25 #d07d36 #e4944f\n01212\n01212\n01212\n01212\n.1111\n\n\ntoffee_br\n#bb6a25 #d07d36 #e4944f\n12121\n12121\n12121\n12121\n1111.\n\ntoffee_full\n#bb6a25 #d07d36 #e4944f #ffffff\n.333.\n13331\n11111\n11111\n11111\n\ntoffee_fulldec\n#ffffff\n.000.\n.000.\n.....\n.....\n.....\n\ntoffee_fulldec_b\n#ffffff\n.....\n.....\n.....\n..0..\n.000.\n\ntongue \ndarkred\n\nlips \ndarkred\n\n\nWall\n#9c5445\n\nGum\n#ce474b\n.....\n00000\n00000\n00000\n00.00\n\nGum_Full\n#ce474b #ffffff\n.....\n00000\n00000\n00000\n00100\n\n\n\nzahn_d_t\n#ffffff\n.....\n.0.0.\n.0.0.\n.000.\n.000.\n\nzahn_d_b\n#ffffff\n.000.\n.000.\n.000.\n.000.\n.....\n\ncon_u\nyellow\n..0..\n.....\n.....\n.....\n.....\n\ncon_d\nyellow\n.....\n.....\n.....\n.....\n..0..\n\ncon_l\nyellow\n.....\n.....\n0....\n.....\n.....\n\ncon_r\nyellow\n.....\n.....\n....0\n.....\n.....\n\nmaketooth\ntransparent\n\nmarker\nred\n.....\n.....\n..0..\n.....\n.....\n\nagaining \ntransparent\n\nagaining2\ntransparent\n\nsupported\ngreen\n.....\n.....\n..0..\n.....\n.....\n\ntodrop\ntransparent\n\nshadow\nblack\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nm_l\ntransparent\n\nm_r\ntransparent\n\nm_t\ntransparent\n\nm_b\ntransparent\n\n=======\nLEGEND\n=======\n\ntoffee_any = toffee or toffee_full\n\nzahn = zahn_d_t or zahn_d_b\nplayer = gum or gum_full\ngum_any = player\n\nmotile = player or toffee or zahn or toffee_any\ndroppable_tile = toffee or zahn or toffee_any\nmotile_nonsticking = player or toffee or zahn_d_b or toffee_any\n\nwall_like = wall or lips or tongue\n\nconnection = con_u or con_d or con_l or con_r\nsolid = zahn or player or wall_like or toffee\n\n\nuvula_part = uvula or uvula_c\n\ntoffee_bottom = toffee_bl or toffee_br\n\ntoffeepart = toffee_tl or toffee_tr or toffee_bl or toffee_br\ntoffeedec = toffee_fulldec or toffee_fulldec_b\n\ntarget_pixels = targetp_tl or targetp_tr or targetp_bl or targetp_br\n\ndecoration = toffeedec \n\ntarget_part = uvula or uvula_c or target\nwall_toborder = wall or tongue\n. = Background\nu = uvula\nw = uvula_c\nL = lips\n# = Wall\nP = Player\nG = gum_full\ni = gum\nD = zahn_d_b\nT = Toffee\nH = Target\nn = nostril and wall\no = tongue\n\n=======\nSOUNDS\n=======\nsfx0 65988703 (pull)\nsfx1 70735502 (swallow)\nsfx2 23125707 (bite)\n\n================\nCOLLISIONLAYERS\n================\n\n\ncon_r\ncon_l\ncon_u\ncon_d\nmarker\n\n\nsupported\nBackground\nuvula, uvula_c\nTarget\ntargetp_tl\ntargetp_tr\ntargetp_bl\ntargetp_br\nWall, zahn_d_t, zahn_d_b, player, lips, tongue\ntoffee, toffee_full\n\nborder_u\nborder_d\nborder_l\nborder_r\ntoffee_tl \ntoffee_tr \ntoffee_bl \ntoffee_br\ntoffee_fulldec\nTOFFEE_FULLDEC_B\nmaketooth\nagaining\nagaining2\ntodrop\nshadow\nnostril\nm_l\nm_r\nm_t\nm_b\n\n\n\n======\nRULES\n======\n\n[shadow] -> [ ]\n[againing2] [ player ] ->[againing] [ action player ]\n[againing2]->[]\n[motile todrop] [ player ]->[shadow no connection no decoration no toffeepart] [ player againing2 ] again\n\n[marker]->[]\nright [ player | player ] -> [ player con_r | player con_l ]\ndown [ gum_full | zahn_d_b ] -> [ gum_full con_d | zahn_d_b con_u ]\n\nright [ stationary player no againing no againing2 ] [ no toffee | toffee | toffee ] -> [ player ] [ | toffee m_l | toffee m_r ]\ndown [ stationary player no againing no againing2 ] [ no toffee | toffee | toffee ] -> [ player ] [ | toffee m_t | toffee m_b ]\n\n[ m_t m_l ] -> [toffee_tl]\n[ m_b m_l ] -> [toffee_bl]\n[ m_t m_r ] -> [toffee_tr]\n[ m_b m_r ] -> [toffee_br]\n\nright [ stationary player no againing no againing2 ] [ toffee | toffee ] -> [ player ] [ toffee con_r | toffee con_l ]\ndown [ stationary player no againing no againing2 ] [ toffee | toffee ] -> [ player ] [ toffee con_d | toffee con_u ]\n\nright [stationary player no againing no againing2 ] [ target | no target no uvula_part] -> [player] [ targetp_tr targetp_br target | ]\nright [stationary player no againing no againing2 ] [ no target no uvula_part| target ] -> [player] [ | targetp_tl targetp_bl target ]\n\ndown [stationary player] [ target | targetp_tr ] -> [player] [ target | ]\ndown [stationary player] [ target | targetp_tl ] -> [player] [ target | ]\nup [stationary player] [ target | targetp_br ] -> [player] [ target | ]\nup [stationary player] [ target | targetp_bl ] -> [player] [ target | ]\n\n\n(propagate movements)\n\nup [ moving motile con_u | motile ] -> [ moving motile con_u | moving motile ] \n+ down [ moving motile con_d | motile ] -> [ moving motile con_d | moving motile ] \n+ left [ moving motile con_l | motile ] -> [ moving motile con_l | moving motile ] \n+ right [ moving motile con_r | motile ] -> [ moving motile con_r | moving motile ] \n+ [ > motile | motile ] -> [ > motile | > motile ]\n\n\n(back-propagate blockages)\n\n\t(toffee can't walk into walls)\n[ > motile | wall_like ] -> [ motile | wall_like ]\n\n+ [ > zahn | stationary zahn ] -> [ zahn | zahn ]\n\n+ horizontal [ > toffee | stationary zahn ] -> [ stationary toffee | zahn]\n+ [ > toffee_any | stationary toffee_any ] -> [ stationary toffee_any | toffee_any]\n\t(restick tooth in gums)\n+ down [ down gum | stationary zahn_d_t con_d ] -> [ down gum_full con_d | ] sfx2\n\t\n (back-propagate non-movement in toffees)\n+ up [ stationary toffee_any con_u | motile ] -> [ stationary toffee_any con_u | stationary motile ] \n+ down [ stationary toffee_any con_d | motile ] -> [ stationary toffee_any con_d | stationary motile ] \n+ left [ stationary toffee_any con_l | motile ] -> [ stationary toffee_any con_l | stationary motile ] \n+ right [ stationary toffee_any con_r | motile ] -> [ stationary toffee_any con_r | stationary motile ] \n\n+ down [ stationary zahn_d_t con_d | motile ] -> [ stationary zahn_d_t con_d | stationary motile ] \n+ down [ stationary zahn_d_t con_d | stationary motile ] -> [ zahn_d_t con_d | stationary motile ] \n\n (back-propagate non-movement in gums)\n+ up [ stationary gum_any con_u | motile ] -> [ stationary gum_any con_u | stationary motile ] \n+ down [ stationary gum_any con_d | motile ] -> [ stationary gum_any con_d | stationary motile ] \n+ left [ stationary gum_any con_l | motile ] -> [ stationary gum_any con_l | stationary motile ] \n+ right [ stationary gum_any con_r | motile ] -> [ stationary gum_any con_r | stationary motile ]\n\n+ up [ stationary zahn_d_b con_u | motile ] -> [ stationary zahn_d_b con_u | stationary motile ] \n\n\n\n+ [ > gum_any | stationary motile_nonsticking ] -> [ gum_any | motile_nonsticking ] \n\n+ [ > toffee | stationary toffee ] -> [ toffee | toffee ] \n\n\n\t(tooth unstick)\n+ down [ up gum_full con_d | stationary toffee_full con_u ] -> [ up gum_full maketooth | toffee_full ]\n\n\n[stationary motile]->[marker motile]\n[ > motile connection ] -> [ > motile > connection ]\n[ > toffee_any toffeepart ] -> [ > toffee_any > toffeepart ]\n\nlate down [ gum_full | toffee zahn_d_b ] -> [ gum_full | toffee_full ] sfx2\n\nlate down [ gum_full | maketooth | toffee_full ] -> [ gum | zahn_d_t con_d | toffee_full con_u ] sfx0\n\nlate down [ toffee | toffee_full ] -> [ toffee con_d | toffee_full con_u ]\n(decoration steps)\n\nlate [ decoration ] -> [ ]\n\nlate [toffee_full ] -> [ toffee_full toffee_fulldec ]\nlate [toffee_bottom con_d ] -> [ toffee_bottom con_d toffee_fulldec_b ]\n\n(check if things are supported)\n\nlate [supported]->[]\nlate [ gum_any ] -> [ gum_any supported ]\nlate [ motile no target_part ] -> [ motile supported ]\n\nlate up [ supported con_u | ] -> [ supported con_u | supported ]\n+ late down [ supported con_d | ] -> [ supported con_d | supported ]\n+ late left [ supported con_l | ] -> [ supported con_l | supported ]\n+ late right [ supported con_r | ] -> [ supported con_r | supported ]\n\n\nlate [againing]->[]\n\nlate [droppable_tile no supported] [player ]->[droppable_tile todrop] [player againing] sfx1 again\n\nlate right [ wall_toborder | no wall_like ] -> [ wall_toborder border_r | ]\nlate left [ wall_toborder | no wall_like ] -> [ wall_toborder border_l | ]\nlate up [ wall_toborder | no wall_like ] -> [ wall_toborder border_u | ]\nlate down [ wall_toborder | no wall_like ] -> [ wall_toborder border_d | ]\nlate [ player ] [ againing2] ->[ player againing2] [againing2]\n==============\nWINCONDITIONS\n==============\n\nno toffee\nno shadow\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 3 - Karamell, den liebe ich!\n\n######n#n######\n###############\n##lllllllllll##\n#l...........l#\n#.....ggg.....#\n#.....ddd.....#\n#.....hwh.....#\n#...#.huh.....#\n#.....hhh.....#\n#.............#\n#......tt.....#\n#......tt.....#\n#l...........l#\n##lllllllllll##\n\nmessage Level 2 von 3 - Ich bin ein Nimmersat des Karamellen\n\n########n#n########\n###################\n##lllllllllllllll##\n#l...............l#\n#.....gggg........#\n#.....dddd........#\n#.................#\n#.......#.........#\n#.................#\n#.................#\n#....tt...tt......#\n#....tt...tt......#\n#..............####\n#....#######...hwh#\n#..............huh#\n#lllllllllll...hhh#\n###########l...hhh#\n###########l...hhh#\n###########lllllll#\n\nmessage Level 3 von 3 - Meine Zaehne werden nicht ausfallen, wenn ich die schlucke!\n\n###########n#n#############\n###########################\n#lllllllllllllllllllllll###\n#.......................###\n#.......................###\n#..hhwhh........gggg....###\n#..hhuhh....#...dddd....###\n#..hhhhh................###\n#..hhhhh................###\n#..hhhhh................###\n#..hhhhh....tt....tt....###\n#..hhhhh....tt....tt....###\n#.......................###\n#.......................###\n#..........#....###########\n#..........#...############\n#..........#...############\n#..........#..##..........#\n#..........#..##..........#\n#..........#..##....tt....#\n#..........#tt##....tt....#\n#...........tt............#\n#.........................#\n#..........lllllllllllllll#\n#..........l###############\n#lllllllllll###############\n\n\nMessage Ich glaube an ... Karamell!\n\nhhhhhhhhhhhhhhhhhhhhhhhhh\nhhhhhhlllllllllllllhhhhhh\nhhhhhlllllllllllllllhhhhh\nhhhhhlllllllllllllllhhhhh\nhhhhhll###########llhhhhh\nhhhhhl###d#####d###lhhhhh\nhhh#h###############h#hhh\nhhh###################hhh\nhhh#h###############h#hhh\nhhhhh######n#n######hhhhh\nhhhhh###############hhhhh\nhhhhh##lllllllllll##hhhhh\nhhhhh##...hhwhh...##hhhhh\nhhhhh##lllllllllll##hhhhh\nhhhhh###############hhhhh\nhhhhh###############hhhhh\nhhhhhhhhhh#####hhhhhhhhhh\nhhhhhhhhhh#####hhhhhhhhhh\n\n(\n###########################\n#.......................###\n#.......................###\n#..hhwhh........gggg....###\n#..hhuhh....#...dddd....###\n#..hhhhh................###\n#..hhhhh................###\n#..hhhhh................###\n#..hhhhh....tt....tt....###\n#..hhhhh....tt....tt....###\n#.......................###\n#.......................###\n#..........#....###########\n#..........#...############\n#..........#...############\n#..........#..##..........#\n#..........#..##..........#\n#..........#..##....tt....#\n#..........#tt##....tt....#\n#...........tt............#\n#.........................#\n#..........################\n#..........################\n###########################\n)\n\n(\n(ooops this doesn't work)\n####################\n#..................#\n#..................#\n#..................#\n#...gggg...........#\n#...gggd....#......#\n#...ggd............#\n#...gd.............#\n#...d.tt...........#\n#.....tt.#.........#\n#.....####...##....#\n#........#.........#\n#........#.........#\n#........#.........#\n####################\n\n\n####################\n#..................#\n#..................#\n#..................#\n#.....gggg...tt....#\n#.....dddd...tt....#\n#..................#\n#......#.....tt....#\n#............tt....#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n####################\n\n\n######################\n#....................#\n#....................#\n#....................#\n#..............tt....#\n#..............tt....#\n#....................#\n#....................#\n#..gggg...#....tt....#\n#..dddd........tt....#\n#....................#\n#....................#\n#....................#\n#....................#\n#....................#\n#.......#..#.........#\n#.......#..#.........#\n#.......#..#.........#\n#.......#..#.........#\n#.......#..#.........#\n#.......#..#.........#\n#....####..####......#\n#....................#\n#....................#\n#....##########......#\n#....................#\n#....................#\n#....................#\n#....................#\n######################\n\n###############################\n#.........................#...#\n#.hhwhh...................#...#\n#.hhuhh...................#...#\n#.hhhhh.......#.....tt....#...#\n#.hhhhh.............tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.gggg........tt....#...#\n#.hhhhh.dddd........tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####....tt....#\n#.hhhhh...####tt####....tt....#\n#.hhhhh.......tt..............#\n#.............................#\n#.........##########..........#\n#.........##########..........#\n#.........##########..........#\n#.........##########..........#\n###############################\n\n###############################\n#.........................#...#\n#.hhwhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.......#.....tt....#...#\n#.hhhhh.............tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.gggg........tt....#...#\n#.hhhhh.dddd........tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####....tt....#\n#.hhhhh...####tt####....tt....#\n#.hhhhh.......tt..............#\n#.............................#\n####################....tt....#\n####################....tt....#\n####################..........#\n####################..........#\n###############################\n\n\n\n###############################\n#.........................#...#\n#.hhwhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.......#.....tt....#...#\n#.hhhhh.............tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.gggg........tt....#...#\n#.hhhhh.dddd........tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####....tt....#\n#.hhhhh...####tt####....tt....#\n#.hhhhh.......tt..............#\n#.............................#\n####################....tt....#\n####################....tt....#\n####################..........#\n####################..........#\n###############################\n\n######################\n#....................#\n#....................#\n#....................#\n#..............tt....#\n#..............tt....#\n#....................#\n#....................#\n#..gggg...#....tt....#\n#..dddd........tt....#\n#....................#\n#....................#\n#....................#\n#....................#\n#....................#\n#....####..####......#\n#....####..####......#\n#....####..####......#\n#....####..####......#\n#....####..####......#\n#....####..####......#\n#....####tt####......#\n#........tt..........#\n#....................#\n#....##########......#\n#....................#\n#....................#\n#....................#\n#....................#\n######################\n\n###############################\n#.........................#...#\n#.hhwhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.......#.....tt....#...#\n#.hhhhh.............tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.gggg........tt....#...#\n#.hhhhh.dddd........tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.........................#...#\n#.........................#...#\n#.........................#...#\n#...........#....##########...#\n#...........##..###########...#\n#...........##..###########...#\n#...........##..####..........#\n#...........##..####..........#\n#...........##..####....tt....#\n#...........##tt####....tt....#\n#.............tt..............#\n#.............................#\n####################....tt....#\n####################....tt....#\n####################..........#\n####################..........#\n###############################\n\n\n\n###############################\n#.........................#####\n#.hhwhh...................#####\n#.hhhhh...................#####\n#.hhhhh.......#.....tt....#####\n#.hhhhh.............tt....#####\n#.hhhhh...................#####\n#.hhhhh...................#####\n#.hhhhh.gggg........tt....#####\n#.hhhhh.dddd........tt....#####\n#.hhhhh...................#####\n#.hhhhh...................#####\n#.........................#####\n#.........................#####\n#.........................#####\n#............#....#############\n#............#...##############\n#............#...##############\n#............#..####..........#\n#............#..####..........#\n#............#..####....tt....#\n#............#tt####....tt....#\n#.............tt..............#\n#.............................#\n#............##################\n#............##################\n###############################\n\n###########################\n#.......................###\n#.hhwhh.........gggg....###\n#.hhuhh.....#...dddd....###\n#.hhhhh.................###\n#.hhhhh.................###\n#.hhhhh.....tt....tt....###\n#.hhhhh.....tt....tt....###\n#.......................###\n#.......................###\n#..........#....###########\n#..........#...############\n#..........#...############\n#..........#..##..........#\n#..........#..##..........#\n#..........#..##....tt....#\n#..........#tt##....tt....#\n#...........tt............#\n#.........................#\n#..........################\n#..........################\n###########################\n)\n", [1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 0, 3, 3, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 3, 3, 3, 3, 3, 2, 2, 2, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 2, 2, 1, 2, 2, 3, 3, 3, 3, 3, 0, 0, 3, 3, 1, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1], "background wall:0,0,0,0,background border_r wall:1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,\n0,0,0,background lips:2,background:3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,background con_d marker supported zahn_d_t:4,background con_d con_r con_u marker supported toffee_full toffee_fulldec toffee_tl:5,background con_r con_u marker supported toffee toffee_bl:6,3,3,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,background con_d con_l marker supported toffee toffee_tr:7,background con_l con_u marker supported toffee toffee_br:8,3,background border_d border_l border_u wall:9,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,3,3,3,background border_d border_u wall:10,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,3,3,3,10,3,2,0,0,0,\nbackground nostril wall:11,0,2,3,3,3,3,background border_d border_l border_r border_u wall:12,3,3,3,3,3,10,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,background con_r gum supported:13,3,3,3,10,3,2,0,0,0,\n11,0,2,3,3,3,3,3,3,background con_d con_l con_r gum_full supported:14,background con_u supported zahn_d_b:15,3,3,10,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,14,background con_d con_r con_u supported toffee_full toffee_fulldec toffee_tl:16,background con_r con_u supported toffee toffee_bl:17,3,background border_d border_r border_u wall:18,3,2,2,2,2,\n0,0,2,3,3,3,3,3,3,background con_d con_l gum_full supported:19,background con_d con_l con_u supported toffee_full toffee_fulldec toffee_tr:20,background con_l con_u supported toffee toffee_br:21,3,3,3,3,3,3,2,\n0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,\n0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,\n0,0,2,3,3,3,3,3,3,3,3,3,9,background target targetp_tl:22,background target:23,23,23,background target targetp_bl:24,2,\n0,0,2,3,3,3,3,3,3,3,3,3,10,background uvula_c:25,background uvula:26,23,23,23,2,\n0,0,0,2,3,3,3,3,3,3,3,3,10,background target targetp_tr:27,23,23,23,background target targetp_br:28,2,\n0,0,0,0,background border_l wall:29,29,29,29,29,29,29,29,0,29,29,29,29,29,0,\n", 3, "1627891595796.583"] + "Karamell", + ["title Karamell\nauthor Stephen Lavelle\nhomepage www.increpare.com\nrun_rules_on_level_start\n\nverbose_logging\n\nrequire_player_movement\n\nbackground_color #9c5445\n\n========\nOBJECTS\n========\n\nnostril \n#231617 transparent\n10001\n00000\n00000\n00000\n10001\n\nBackground\n#3d2d2e\n\nTarget\n#231617\n\ntargetp_tl\n#3d2d2e\n0....\n.....\n.....\n.....\n.....\n\ntargetp_tr\n#3d2d2e\n....0\n.....\n.....\n.....\n.....\n\ntargetp_bl\n#3d2d2e\n.....\n.....\n.....\n.....\n0....\n\ntargetp_br\n#3d2d2e\n.....\n.....\n.....\n.....\n....0\n\n\nborder_l\n#78403e\n0....\n0....\n0....\n0....\n0....\n\n\n\nborder_r\n#78403e\n....0\n....0\n....0\n....0\n....0\n\n\n\nborder_u\n#78403e\n00000\n.....\n.....\n.....\n.....\n\n\n\nborder_d\n#78403e\n.....\n.....\n.....\n.....\n00000\n\nUvula_c\n#2a1c1d #231617\n00000\n10001\n10001\n10001\n10001\n\nUvula\n#2a1c1d #231617\n10001\n00000\n00000\n00000\n10001\n\ntoffee\n#bb6a25 #d07d36 #e4944f\n.111.\n11111\n11111\n11111\n.111.\n\n\ntoffee_tl\n#bb6a25 #d07d36 #e4944f\n.1111\n01212\n01212\n01212\n01212\n\n\ntoffee_tr\n#bb6a25 #d07d36 #e4944f\n1111.\n12121\n12121\n12121\n12121\n\n\ntoffee_bl\n#bb6a25 #d07d36 #e4944f\n01212\n01212\n01212\n01212\n.1111\n\n\ntoffee_br\n#bb6a25 #d07d36 #e4944f\n12121\n12121\n12121\n12121\n1111.\n\ntoffee_full\n#bb6a25 #d07d36 #e4944f #ffffff\n.333.\n13331\n11111\n11111\n11111\n\ntoffee_fulldec\n#ffffff\n.000.\n.000.\n.....\n.....\n.....\n\ntoffee_fulldec_b\n#ffffff\n.....\n.....\n.....\n..0..\n.000.\n\ntongue \ndarkred\n\nlips \ndarkred\n\n\nWall\n#9c5445\n\nGum\n#ce474b\n.....\n00000\n00000\n00000\n00.00\n\nGum_Full\n#ce474b #ffffff\n.....\n00000\n00000\n00000\n00100\n\n\n\nzahn_d_t\n#ffffff\n.....\n.0.0.\n.0.0.\n.000.\n.000.\n\nzahn_d_b\n#ffffff\n.000.\n.000.\n.000.\n.000.\n.....\n\ncon_u\nyellow\n..0..\n.....\n.....\n.....\n.....\n\ncon_d\nyellow\n.....\n.....\n.....\n.....\n..0..\n\ncon_l\nyellow\n.....\n.....\n0....\n.....\n.....\n\ncon_r\nyellow\n.....\n.....\n....0\n.....\n.....\n\nmaketooth\ntransparent\n\nmarker\nred\n.....\n.....\n..0..\n.....\n.....\n\nagaining \ntransparent\n\nagaining2\ntransparent\n\nsupported\ngreen\n.....\n.....\n..0..\n.....\n.....\n\ntodrop\ntransparent\n\nshadow\nblack\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nm_l\ntransparent\n\nm_r\ntransparent\n\nm_t\ntransparent\n\nm_b\ntransparent\n\n=======\nLEGEND\n=======\n\ntoffee_any = toffee or toffee_full\n\nzahn = zahn_d_t or zahn_d_b\nplayer = gum or gum_full\ngum_any = player\n\nmotile = player or toffee or zahn or toffee_any\ndroppable_tile = toffee or zahn or toffee_any\nmotile_nonsticking = player or toffee or zahn_d_b or toffee_any\n\nwall_like = wall or lips or tongue\n\nconnection = con_u or con_d or con_l or con_r\nsolid = zahn or player or wall_like or toffee\n\n\nuvula_part = uvula or uvula_c\n\ntoffee_bottom = toffee_bl or toffee_br\n\ntoffeepart = toffee_tl or toffee_tr or toffee_bl or toffee_br\ntoffeedec = toffee_fulldec or toffee_fulldec_b\n\ntarget_pixels = targetp_tl or targetp_tr or targetp_bl or targetp_br\n\ndecoration = toffeedec \n\ntarget_part = uvula or uvula_c or target\nwall_toborder = wall or tongue\n. = Background\nu = uvula\nw = uvula_c\nL = lips\n# = Wall\nP = Player\nG = gum_full\ni = gum\nD = zahn_d_b\nT = Toffee\nH = Target\nn = nostril and wall\no = tongue\n\n=======\nSOUNDS\n=======\nsfx0 65988703 (pull)\nsfx1 70735502 (swallow)\nsfx2 23125707 (bite)\n\n================\nCOLLISIONLAYERS\n================\n\n\ncon_r\ncon_l\ncon_u\ncon_d\nmarker\n\n\nsupported\nBackground\nuvula, uvula_c\nTarget\ntargetp_tl\ntargetp_tr\ntargetp_bl\ntargetp_br\nWall, zahn_d_t, zahn_d_b, player, lips, tongue\ntoffee, toffee_full\n\nborder_u\nborder_d\nborder_l\nborder_r\ntoffee_tl \ntoffee_tr \ntoffee_bl \ntoffee_br\ntoffee_fulldec\nTOFFEE_FULLDEC_B\nmaketooth\nagaining\nagaining2\ntodrop\nshadow\nnostril\nm_l\nm_r\nm_t\nm_b\n\n\n\n======\nRULES\n======\n\n[shadow] -> [ ]\n[againing2] [ player ] ->[againing] [ action player ]\n[againing2]->[]\n[motile todrop] [ player ]->[shadow no connection no decoration no toffeepart] [ player againing2 ] again\n\n[marker]->[]\nright [ player | player ] -> [ player con_r | player con_l ]\ndown [ gum_full | zahn_d_b ] -> [ gum_full con_d | zahn_d_b con_u ]\n\nright [ stationary player no againing no againing2 ] [ no toffee | toffee | toffee ] -> [ player ] [ | toffee m_l | toffee m_r ]\ndown [ stationary player no againing no againing2 ] [ no toffee | toffee | toffee ] -> [ player ] [ | toffee m_t | toffee m_b ]\n\n[ m_t m_l ] -> [toffee_tl]\n[ m_b m_l ] -> [toffee_bl]\n[ m_t m_r ] -> [toffee_tr]\n[ m_b m_r ] -> [toffee_br]\n\nright [ stationary player no againing no againing2 ] [ toffee | toffee ] -> [ player ] [ toffee con_r | toffee con_l ]\ndown [ stationary player no againing no againing2 ] [ toffee | toffee ] -> [ player ] [ toffee con_d | toffee con_u ]\n\nright [stationary player no againing no againing2 ] [ target | no target no uvula_part] -> [player] [ targetp_tr targetp_br target | ]\nright [stationary player no againing no againing2 ] [ no target no uvula_part| target ] -> [player] [ | targetp_tl targetp_bl target ]\n\ndown [stationary player] [ target | targetp_tr ] -> [player] [ target | ]\ndown [stationary player] [ target | targetp_tl ] -> [player] [ target | ]\nup [stationary player] [ target | targetp_br ] -> [player] [ target | ]\nup [stationary player] [ target | targetp_bl ] -> [player] [ target | ]\n\n\n(propagate movements)\n\nup [ moving motile con_u | motile ] -> [ moving motile con_u | moving motile ] \n+ down [ moving motile con_d | motile ] -> [ moving motile con_d | moving motile ] \n+ left [ moving motile con_l | motile ] -> [ moving motile con_l | moving motile ] \n+ right [ moving motile con_r | motile ] -> [ moving motile con_r | moving motile ] \n+ [ > motile | motile ] -> [ > motile | > motile ]\n\n\n(back-propagate blockages)\n\n\t(toffee can't walk into walls)\n[ > motile | wall_like ] -> [ motile | wall_like ]\n\n+ [ > zahn | stationary zahn ] -> [ zahn | zahn ]\n\n+ horizontal [ > toffee | stationary zahn ] -> [ stationary toffee | zahn]\n+ [ > toffee_any | stationary toffee_any ] -> [ stationary toffee_any | toffee_any]\n\t(restick tooth in gums)\n+ down [ down gum | stationary zahn_d_t con_d ] -> [ down gum_full con_d | ] sfx2\n\t\n (back-propagate non-movement in toffees)\n+ up [ stationary toffee_any con_u | motile ] -> [ stationary toffee_any con_u | stationary motile ] \n+ down [ stationary toffee_any con_d | motile ] -> [ stationary toffee_any con_d | stationary motile ] \n+ left [ stationary toffee_any con_l | motile ] -> [ stationary toffee_any con_l | stationary motile ] \n+ right [ stationary toffee_any con_r | motile ] -> [ stationary toffee_any con_r | stationary motile ] \n\n+ down [ stationary zahn_d_t con_d | motile ] -> [ stationary zahn_d_t con_d | stationary motile ] \n+ down [ stationary zahn_d_t con_d | stationary motile ] -> [ zahn_d_t con_d | stationary motile ] \n\n (back-propagate non-movement in gums)\n+ up [ stationary gum_any con_u | motile ] -> [ stationary gum_any con_u | stationary motile ] \n+ down [ stationary gum_any con_d | motile ] -> [ stationary gum_any con_d | stationary motile ] \n+ left [ stationary gum_any con_l | motile ] -> [ stationary gum_any con_l | stationary motile ] \n+ right [ stationary gum_any con_r | motile ] -> [ stationary gum_any con_r | stationary motile ]\n\n+ up [ stationary zahn_d_b con_u | motile ] -> [ stationary zahn_d_b con_u | stationary motile ] \n\n\n\n+ [ > gum_any | stationary motile_nonsticking ] -> [ gum_any | motile_nonsticking ] \n\n+ [ > toffee | stationary toffee ] -> [ toffee | toffee ] \n\n\n\t(tooth unstick)\n+ down [ up gum_full con_d | stationary toffee_full con_u ] -> [ up gum_full maketooth | toffee_full ]\n\n\n[stationary motile]->[marker motile]\n[ > motile connection ] -> [ > motile > connection ]\n[ > toffee_any toffeepart ] -> [ > toffee_any > toffeepart ]\n\nlate down [ gum_full | toffee zahn_d_b ] -> [ gum_full | toffee_full ] sfx2\n\nlate down [ gum_full | maketooth | toffee_full ] -> [ gum | zahn_d_t con_d | toffee_full con_u ] sfx0\n\nlate down [ toffee | toffee_full ] -> [ toffee con_d | toffee_full con_u ]\n(decoration steps)\n\nlate [ decoration ] -> [ ]\n\nlate [toffee_full ] -> [ toffee_full toffee_fulldec ]\nlate [toffee_bottom con_d ] -> [ toffee_bottom con_d toffee_fulldec_b ]\n\n(check if things are supported)\n\nlate [supported]->[]\nlate [ gum_any ] -> [ gum_any supported ]\nlate [ motile no target_part ] -> [ motile supported ]\n\nlate up [ supported con_u | ] -> [ supported con_u | supported ]\n+ late down [ supported con_d | ] -> [ supported con_d | supported ]\n+ late left [ supported con_l | ] -> [ supported con_l | supported ]\n+ late right [ supported con_r | ] -> [ supported con_r | supported ]\n\n\nlate [againing]->[]\n\nlate [droppable_tile no supported] [player ]->[droppable_tile todrop] [player againing] sfx1 again\n\nlate right [ wall_toborder | no wall_like ] -> [ wall_toborder border_r | ]\nlate left [ wall_toborder | no wall_like ] -> [ wall_toborder border_l | ]\nlate up [ wall_toborder | no wall_like ] -> [ wall_toborder border_u | ]\nlate down [ wall_toborder | no wall_like ] -> [ wall_toborder border_d | ]\nlate [ player ] [ againing2] ->[ player againing2] [againing2]\n==============\nWINCONDITIONS\n==============\n\nno toffee\nno shadow\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 3 - Karamell, den liebe ich!\n\n######n#n######\n###############\n##lllllllllll##\n#l...........l#\n#.....ggg.....#\n#.....ddd.....#\n#.....hwh.....#\n#...#.huh.....#\n#.....hhh.....#\n#.............#\n#......tt.....#\n#......tt.....#\n#l...........l#\n##lllllllllll##\n\nmessage Level 2 von 3 - Ich bin ein Nimmersat des Karamellen\n\n########n#n########\n###################\n##lllllllllllllll##\n#l...............l#\n#.....gggg........#\n#.....dddd........#\n#.................#\n#.......#.........#\n#.................#\n#.................#\n#....tt...tt......#\n#....tt...tt......#\n#..............####\n#....#######...hwh#\n#..............huh#\n#lllllllllll...hhh#\n###########l...hhh#\n###########l...hhh#\n###########lllllll#\n\nmessage Level 3 von 3 - Meine Zaehne werden nicht ausfallen, wenn ich die schlucke!\n\n###########n#n#############\n###########################\n#lllllllllllllllllllllll###\n#.......................###\n#.......................###\n#..hhwhh........gggg....###\n#..hhuhh....#...dddd....###\n#..hhhhh................###\n#..hhhhh................###\n#..hhhhh................###\n#..hhhhh....tt....tt....###\n#..hhhhh....tt....tt....###\n#.......................###\n#.......................###\n#..........#....###########\n#..........#...############\n#..........#...############\n#..........#..##..........#\n#..........#..##..........#\n#..........#..##....tt....#\n#..........#tt##....tt....#\n#...........tt............#\n#.........................#\n#..........lllllllllllllll#\n#..........l###############\n#lllllllllll###############\n\n\nMessage Ich glaube an ... Karamell!\n\nhhhhhhhhhhhhhhhhhhhhhhhhh\nhhhhhhlllllllllllllhhhhhh\nhhhhhlllllllllllllllhhhhh\nhhhhhlllllllllllllllhhhhh\nhhhhhll###########llhhhhh\nhhhhhl###d#####d###lhhhhh\nhhh#h###############h#hhh\nhhh###################hhh\nhhh#h###############h#hhh\nhhhhh######n#n######hhhhh\nhhhhh###############hhhhh\nhhhhh##lllllllllll##hhhhh\nhhhhh##...hhwhh...##hhhhh\nhhhhh##lllllllllll##hhhhh\nhhhhh###############hhhhh\nhhhhh###############hhhhh\nhhhhhhhhhh#####hhhhhhhhhh\nhhhhhhhhhh#####hhhhhhhhhh\n\n(\n###########################\n#.......................###\n#.......................###\n#..hhwhh........gggg....###\n#..hhuhh....#...dddd....###\n#..hhhhh................###\n#..hhhhh................###\n#..hhhhh................###\n#..hhhhh....tt....tt....###\n#..hhhhh....tt....tt....###\n#.......................###\n#.......................###\n#..........#....###########\n#..........#...############\n#..........#...############\n#..........#..##..........#\n#..........#..##..........#\n#..........#..##....tt....#\n#..........#tt##....tt....#\n#...........tt............#\n#.........................#\n#..........################\n#..........################\n###########################\n)\n\n(\n(ooops this doesn't work)\n####################\n#..................#\n#..................#\n#..................#\n#...gggg...........#\n#...gggd....#......#\n#...ggd............#\n#...gd.............#\n#...d.tt...........#\n#.....tt.#.........#\n#.....####...##....#\n#........#.........#\n#........#.........#\n#........#.........#\n####################\n\n\n####################\n#..................#\n#..................#\n#..................#\n#.....gggg...tt....#\n#.....dddd...tt....#\n#..................#\n#......#.....tt....#\n#............tt....#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n#..................#\n####################\n\n\n######################\n#....................#\n#....................#\n#....................#\n#..............tt....#\n#..............tt....#\n#....................#\n#....................#\n#..gggg...#....tt....#\n#..dddd........tt....#\n#....................#\n#....................#\n#....................#\n#....................#\n#....................#\n#.......#..#.........#\n#.......#..#.........#\n#.......#..#.........#\n#.......#..#.........#\n#.......#..#.........#\n#.......#..#.........#\n#....####..####......#\n#....................#\n#....................#\n#....##########......#\n#....................#\n#....................#\n#....................#\n#....................#\n######################\n\n###############################\n#.........................#...#\n#.hhwhh...................#...#\n#.hhuhh...................#...#\n#.hhhhh.......#.....tt....#...#\n#.hhhhh.............tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.gggg........tt....#...#\n#.hhhhh.dddd........tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####....tt....#\n#.hhhhh...####tt####....tt....#\n#.hhhhh.......tt..............#\n#.............................#\n#.........##########..........#\n#.........##########..........#\n#.........##########..........#\n#.........##########..........#\n###############################\n\n###############################\n#.........................#...#\n#.hhwhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.......#.....tt....#...#\n#.hhhhh.............tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.gggg........tt....#...#\n#.hhhhh.dddd........tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####....tt....#\n#.hhhhh...####tt####....tt....#\n#.hhhhh.......tt..............#\n#.............................#\n####################....tt....#\n####################....tt....#\n####################..........#\n####################..........#\n###############################\n\n\n\n###############################\n#.........................#...#\n#.hhwhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.......#.....tt....#...#\n#.hhhhh.............tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.gggg........tt....#...#\n#.hhhhh.dddd........tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..###########...#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####..........#\n#.hhhhh...####..####....tt....#\n#.hhhhh...####tt####....tt....#\n#.hhhhh.......tt..............#\n#.............................#\n####################....tt....#\n####################....tt....#\n####################..........#\n####################..........#\n###############################\n\n######################\n#....................#\n#....................#\n#....................#\n#..............tt....#\n#..............tt....#\n#....................#\n#....................#\n#..gggg...#....tt....#\n#..dddd........tt....#\n#....................#\n#....................#\n#....................#\n#....................#\n#....................#\n#....####..####......#\n#....####..####......#\n#....####..####......#\n#....####..####......#\n#....####..####......#\n#....####..####......#\n#....####tt####......#\n#........tt..........#\n#....................#\n#....##########......#\n#....................#\n#....................#\n#....................#\n#....................#\n######################\n\n###############################\n#.........................#...#\n#.hhwhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.......#.....tt....#...#\n#.hhhhh.............tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.hhhhh.gggg........tt....#...#\n#.hhhhh.dddd........tt....#...#\n#.hhhhh...................#...#\n#.hhhhh...................#...#\n#.........................#...#\n#.........................#...#\n#.........................#...#\n#...........#....##########...#\n#...........##..###########...#\n#...........##..###########...#\n#...........##..####..........#\n#...........##..####..........#\n#...........##..####....tt....#\n#...........##tt####....tt....#\n#.............tt..............#\n#.............................#\n####################....tt....#\n####################....tt....#\n####################..........#\n####################..........#\n###############################\n\n\n\n###############################\n#.........................#####\n#.hhwhh...................#####\n#.hhhhh...................#####\n#.hhhhh.......#.....tt....#####\n#.hhhhh.............tt....#####\n#.hhhhh...................#####\n#.hhhhh...................#####\n#.hhhhh.gggg........tt....#####\n#.hhhhh.dddd........tt....#####\n#.hhhhh...................#####\n#.hhhhh...................#####\n#.........................#####\n#.........................#####\n#.........................#####\n#............#....#############\n#............#...##############\n#............#...##############\n#............#..####..........#\n#............#..####..........#\n#............#..####....tt....#\n#............#tt####....tt....#\n#.............tt..............#\n#.............................#\n#............##################\n#............##################\n###############################\n\n###########################\n#.......................###\n#.hhwhh.........gggg....###\n#.hhuhh.....#...dddd....###\n#.hhhhh.................###\n#.hhhhh.................###\n#.hhhhh.....tt....tt....###\n#.hhhhh.....tt....tt....###\n#.......................###\n#.......................###\n#..........#....###########\n#..........#...############\n#..........#...############\n#..........#..##..........#\n#..........#..##..........#\n#..........#..##....tt....#\n#..........#tt##....tt....#\n#...........tt............#\n#.........................#\n#..........################\n#..........################\n###########################\n)\n",[1,1,1,2,2,2,2,2,1,2,0,3,3,0,0,0,0,0,3,3,3,3,3,2,2,2,2,1,1,1,3,3,3,3,3,2,2,2,1,0,0,1,0,0,0,1,1,1,1,2,2,1,2,2,3,3,3,3,3,0,0,3,3,1,3,3,3,2,2,2,2,1,1,1,1],"background wall:0,0,0,0,background border_r wall:1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,\n0,0,0,background lips:2,background:3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,background con_d marker supported zahn_d_t:4,background con_d con_r con_u marker supported toffee_full toffee_fulldec toffee_tl:5,background con_r con_u marker supported toffee toffee_bl:6,3,3,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,background con_d con_l marker supported toffee toffee_tr:7,background con_l con_u marker supported toffee toffee_br:8,3,background border_d border_l border_u wall:9,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,3,3,3,background border_d border_u wall:10,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,3,3,3,3,10,3,2,0,0,0,\nbackground nostril wall:11,0,2,3,3,3,3,background border_d border_l border_r border_u wall:12,3,3,3,3,3,10,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,background con_r gum supported:13,3,3,3,10,3,2,0,0,0,\n11,0,2,3,3,3,3,3,3,background con_d con_l con_r gum_full supported:14,background con_u supported zahn_d_b:15,3,3,10,3,2,0,0,0,\n0,0,2,3,3,3,3,3,3,14,background con_d con_r con_u supported toffee_full toffee_fulldec toffee_tl:16,background con_r con_u supported toffee toffee_bl:17,3,background border_d border_r border_u wall:18,3,2,2,2,2,\n0,0,2,3,3,3,3,3,3,background con_d con_l gum_full supported:19,background con_d con_l con_u supported toffee_full toffee_fulldec toffee_tr:20,background con_l con_u supported toffee toffee_br:21,3,3,3,3,3,3,2,\n0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,\n0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,\n0,0,2,3,3,3,3,3,3,3,3,3,9,background target targetp_tl:22,background target:23,23,23,background target targetp_bl:24,2,\n0,0,2,3,3,3,3,3,3,3,3,3,10,background uvula_c:25,background uvula:26,23,23,23,2,\n0,0,0,2,3,3,3,3,3,3,3,3,10,background target targetp_tr:27,23,23,23,background target targetp_br:28,2,\n0,0,0,0,background border_l wall:29,29,29,29,29,29,29,29,0,29,29,29,29,29,0,\n",3,"1627891595796.583"] ], [ - "I am a gust of wind", - ["title I am a gust of wind\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrequire_player_movement\nbackground_color lightgreen\ntext_color black\nrun_rules_on_level_start\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nlightblue\n\n\nTarget\nyellow\n\nWall\nlightgreen \n\nPlayer\nwhite\n.0000\n0....\n0.00.\n0...0\n.000.\n\nCrate\nOrange Yellow brown\n..0..\n.000.\n00000\n00000\n..0..\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 59718707\nstartgame 30764907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ ^ Player | Crate ] -> [ ^ Player | ^ Crate ]\n[ v Player | Crate ] -> [ v Player | v Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nMessage Level 1 of 4\n\n.........\n.........\n....o.p..\n.........\n...*.....\n.....*...\n...o.....\n.........\n.........\n\n\nMessage Level 2 of 4\n\n.........\n.........\n....**...\n.....*...\n...ooo.p.\n.........\n.........\n\n\nMessage Level 3 of 4\n\n.......\n.......\n..O*O..\n..*O*..\n..O*O..\n..*O*..\n...P...\n.......\n\nMessage Level 4 of 4\n\no.o...\no.o##.\n*.*##.\n*.*##.\n......\n.p....\n......\n\nMessage What a most gentle wind I am!\n\n", [2, 2, 1, 1, 0, 0, 0, 1, 0, 3, 1, 1, 1, 0, 0, 3, 1, 0, 2, 3, 0, 3, 0, 1, 2, 2, 3, 3, 0, 0, 1, 2, 3, 0, 0, 0, 1, 2, 2, 2, 3], "background:0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,\n0,background crate:1,0,0,0,1,0,background target:2,0,\n0,0,0,0,0,background crate target:3,0,0,0,\n0,0,0,2,0,0,0,0,0,\n0,background player:4,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,\n", 3, "1627891616657.899"] + "I am a gust of wind", + ["title I am a gust of wind\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrequire_player_movement\nbackground_color lightgreen\ntext_color black\nrun_rules_on_level_start\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nlightblue\n\n\nTarget\nyellow\n\nWall\nlightgreen \n\nPlayer\nwhite\n.0000\n0....\n0.00.\n0...0\n.000.\n\nCrate\nOrange Yellow brown\n..0..\n.000.\n00000\n00000\n..0..\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 59718707\nstartgame 30764907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ ^ Player | Crate ] -> [ ^ Player | ^ Crate ]\n[ v Player | Crate ] -> [ v Player | v Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nMessage Level 1 of 4\n\n.........\n.........\n....o.p..\n.........\n...*.....\n.....*...\n...o.....\n.........\n.........\n\n\nMessage Level 2 of 4\n\n.........\n.........\n....**...\n.....*...\n...ooo.p.\n.........\n.........\n\n\nMessage Level 3 of 4\n\n.......\n.......\n..O*O..\n..*O*..\n..O*O..\n..*O*..\n...P...\n.......\n\nMessage Level 4 of 4\n\no.o...\no.o##.\n*.*##.\n*.*##.\n......\n.p....\n......\n\nMessage What a most gentle wind I am!\n\n",[2,2,1,1,0,0,0,1,0,3,1,1,1,0,0,3,1,0,2,3,0,3,0,1,2,2,3,3,0,0,1,2,3,0,0,0,1,2,2,2,3],"background:0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,\n0,background crate:1,0,0,0,1,0,background target:2,0,\n0,0,0,0,0,background crate target:3,0,0,0,\n0,0,0,2,0,0,0,0,0,\n0,background player:4,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,\n",3,"1627891616657.899"] ], [ - "Gabelstapler", - ["title Gabelstapler\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnorepeat_action\nrequire_player_movement\nverbose_logging\n\ncolor_palette 6\n\n\n\n========\nOBJECTS\n========\n\nBackground\n#999999 #888888\n00010\n11111\n00010\n00010\n00010\n\n\nWall\n#333333 #333333\n00000\n01010\n00000\n01010\n00000\n\nforklift\n#222222 #ffff00 #FFA500 #444444 black blue #ffcccc\n.00.3\n.0603\n10513\n11213\n.4.4.\n\nrod \n#444444\n....0\n....0\n....0\n....0\n....0\n\ntoprod\n#444444\n.....\n.....\n.....\n.....\n.....\n\n\nFork\n#ffff00\n.....\n.....\n.....\n0....\n00000\n\nend1 \ndarkblue lightblue brown #333333\n00000\n01110\n00000\n33333\n33333\n\nend2 \ndarkred lightred brown #333333\n11011\n10101\n11011\n33333\n33333\n\nend3 \ndarkgreen lightgreen brown #333333\n10001\n10101\n10001\n33333\n33333\n\n\nCrate1\ndarkblue blue brown\n00000\n01110\n00000\n22222\n.2.2.\n\n\nCrate2\ndarkred red brown\n11011\n10101\n11011\n22222\n.2.2.\n\n\nCrate3\ndarkgreen green brown\n01110\n01010\n01110\n22222\n.2.2.\n\noldfork\ntransparent\n\ncorrect\ntransparent\n\n=======\nLEGEND\n=======\nplayer = forklift or fork\ncrate = crate1 or crate2 or crate3\nobstacle = wall or crate or forklift\nmotile = crate or forklift or fork\nhasrod = forklift or rod or toprod\nisrod = rod or toprod\n. = Background\n# = Wall\nP = forklift\n1 = Crate1\n2 = Crate2\n3 = Crate3\nf = fork\nr = rod\nt = toprod\nq = end1 and wall\nw = end2 and wall\ne = end3 and wall\n\n=======\nSOUNDS\n=======\n\nforklift MOVE left 39169107\nforklift move right 81963107\ncrate move down 98604707\nendlevel 64983103\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nfork, rod, toprod\nforklift, Wall, Crate\nend1, end2, end3\noldfork\ncorrect\n\n======\nRULES\n======\n\n\n\n\n[ > fork | wall ] -> cancel\ndown [ down fork | obstacle] -> cancel\n\n[ vertical forklift ] -> [ forklift ]\n\n\n\nup [ moving player | crate ] -> [ moving player | moving crate ]\ndown [ stationary forklift | no obstacle ] [fork | no obstacle] -> [ down forklift | ] [down fork|]\n\nup [horizontal forklift | ... | hasrod ] -> [ horizontal forklift | ... | horizontal hasrod]\n\nright [ right rod | obstacle ] -> cancel\nright [ obstacle | left rod ] -> cancel\n\ndown [ moving forklift no obstacle ] -> [ stationary forklift ]\n\nright [ > forklift | Crate fork ] -> [ > forklift | > Crate > fork]\n\n\nright [ > forklift | crate no fork ] -> cancel \n\n(fork move objects)\n[moving fork crate ] -> [ moving fork moving crate ]\ndown [ left fork left crate | obstacle ] -> [ left fork stationary crate | obstacle ]\n\n\nup [ moving crate | crate ] -> [ moving crate | moving crate ]\n\nhorizontal [ > crate fork | stationary crate ] -> cancel\nhorizontal [ > obstacle | stationary obstacle ] -> [ obstacle | obstacle ]\n\nright[ stationary obstacle no forklift | left fork ] -> cancel\n\n\n\n(cancel movements upwards)\nhorizontal [ > crate | stationary obstacle no player ] -> [ stationary crate | obstacle ]\n\n\nup [stationary crate | moving crate no fork ] -> [ stationary crate | stationary crate ]\n\n[up fork crate]->[up fork oldfork crate]\n\n\n[ stationary crate no fork ] -> [ down crate ]\n\n[]->[] again\n\n\nlate [ rod ] -> []\nlate [ toprod ] -> []\nlate right [ no forklift | fork ] -> [ toprod | fork ]\nlate down [ isrod | no hasrod ] -> [ isrod | rod ]\nlate [ rod wall ] -> cancel\nlate [forklift fork]->cancel\n\nlate [oldfork crate ] -> cancel\nlate [oldfork]->[]\n\n\n(win condition)\nlate [forklift]->[forklift correct]\n\nlate up [ end1 | crate1 ] -> [ end1 | crate1 correct ]\nlate up [ end2 | crate2 ] -> [ end2 | crate2 correct ]\nlate up [ end3 | crate3 ] -> [ end3 | crate3 correct ]\nlate up [ correct crate1 | crate1 ] -> [ correct crate1 | correct crate1 ]\nlate up [ correct crate2 | crate2 ] -> [ correct crate2 | correct crate2 ]\nlate up [ correct crate3 | crate3 ] -> [ correct crate3 | correct crate3 ]\n\nlate [crate no correct] [ forklift correct ] -> [ crate ] [ forklift no correct] \nlate [forklift correct] [ fork no crate ] -> win\nlate [correct] ->[]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 3\n\n##########\n###.......\n..........\n..........\n.pf.2.1...\n#######qw#\n\n\nmessage Level 2 von 3\n\n################\n########.......#\n#..............#\n#..............#\n#..............#\n#........pf321.#\n###qwe##########\n\n\nmessage Level 3 von 3\n\n..........\n..........\n..........\n..........\n..........\n..........\n..#.......\n..........\n....233...\n.pf.111...\n#######qwe\n\nmessage Du bist aber gewandt!\n\n(\n########.....\n########.....\n.............\n.............\n.pf.1.3......\n########.##e#\n########q####)\n\n\n\n\n\n", [0, 3, 3, 0, 1, 1, 1, 0, 0, 3, 2, 0, 2, 2, 1, 0, 0, 3, 2, 0, 1, 2, 2, 2, 3, 3, 2, 3, 0, 2, 2, 3, 3, 3, 0, 0, 0, 3, 2, 1, 2, 2, 2, 3, 0, 0, 3, 1], "background:0,0,0,0,0,0,0,0,0,0,\nbackground wall:1,0,0,0,0,0,0,0,0,0,\n0,1,0,0,0,0,0,background crate2:2,1,0,\n0,0,1,0,0,0,0,0,0,0,\n0,0,0,1,0,0,0,0,0,0,\n0,background toprod:3,background rod:4,background forklift:5,1,0,0,0,0,0,\n0,0,background fork:6,0,0,1,0,0,0,0,\n0,background crate1:7,background crate3:8,7,8,7,1,0,0,0,\n0,0,0,0,0,0,0,background end1 wall:9,0,0,\n0,0,0,0,0,0,0,0,background end2 wall:10,0,\n0,0,0,0,0,0,0,0,0,background end3 wall:11,\n", 5, "1627891651612.1494"] + "Gabelstapler", + ["title Gabelstapler\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnorepeat_action\nrequire_player_movement\nverbose_logging\n\ncolor_palette 6\n\n\n\n========\nOBJECTS\n========\n\nBackground\n#999999 #888888\n00010\n11111\n00010\n00010\n00010\n\n\nWall\n#333333 #333333\n00000\n01010\n00000\n01010\n00000\n\nforklift\n#222222 #ffff00 #FFA500 #444444 black blue #ffcccc\n.00.3\n.0603\n10513\n11213\n.4.4.\n\nrod \n#444444\n....0\n....0\n....0\n....0\n....0\n\ntoprod\n#444444\n.....\n.....\n.....\n.....\n.....\n\n\nFork\n#ffff00\n.....\n.....\n.....\n0....\n00000\n\nend1 \ndarkblue lightblue brown #333333\n00000\n01110\n00000\n33333\n33333\n\nend2 \ndarkred lightred brown #333333\n11011\n10101\n11011\n33333\n33333\n\nend3 \ndarkgreen lightgreen brown #333333\n10001\n10101\n10001\n33333\n33333\n\n\nCrate1\ndarkblue blue brown\n00000\n01110\n00000\n22222\n.2.2.\n\n\nCrate2\ndarkred red brown\n11011\n10101\n11011\n22222\n.2.2.\n\n\nCrate3\ndarkgreen green brown\n01110\n01010\n01110\n22222\n.2.2.\n\noldfork\ntransparent\n\ncorrect\ntransparent\n\n=======\nLEGEND\n=======\nplayer = forklift or fork\ncrate = crate1 or crate2 or crate3\nobstacle = wall or crate or forklift\nmotile = crate or forklift or fork\nhasrod = forklift or rod or toprod\nisrod = rod or toprod\n. = Background\n# = Wall\nP = forklift\n1 = Crate1\n2 = Crate2\n3 = Crate3\nf = fork\nr = rod\nt = toprod\nq = end1 and wall\nw = end2 and wall\ne = end3 and wall\n\n=======\nSOUNDS\n=======\n\nforklift MOVE left 39169107\nforklift move right 81963107\ncrate move down 98604707\nendlevel 64983103\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nfork, rod, toprod\nforklift, Wall, Crate\nend1, end2, end3\noldfork\ncorrect\n\n======\nRULES\n======\n\n\n\n\n[ > fork | wall ] -> cancel\ndown [ down fork | obstacle] -> cancel\n\n[ vertical forklift ] -> [ forklift ]\n\n\n\nup [ moving player | crate ] -> [ moving player | moving crate ]\ndown [ stationary forklift | no obstacle ] [fork | no obstacle] -> [ down forklift | ] [down fork|]\n\nup [horizontal forklift | ... | hasrod ] -> [ horizontal forklift | ... | horizontal hasrod]\n\nright [ right rod | obstacle ] -> cancel\nright [ obstacle | left rod ] -> cancel\n\ndown [ moving forklift no obstacle ] -> [ stationary forklift ]\n\nright [ > forklift | Crate fork ] -> [ > forklift | > Crate > fork]\n\n\nright [ > forklift | crate no fork ] -> cancel \n\n(fork move objects)\n[moving fork crate ] -> [ moving fork moving crate ]\ndown [ left fork left crate | obstacle ] -> [ left fork stationary crate | obstacle ]\n\n\nup [ moving crate | crate ] -> [ moving crate | moving crate ]\n\nhorizontal [ > crate fork | stationary crate ] -> cancel\nhorizontal [ > obstacle | stationary obstacle ] -> [ obstacle | obstacle ]\n\nright[ stationary obstacle no forklift | left fork ] -> cancel\n\n\n\n(cancel movements upwards)\nhorizontal [ > crate | stationary obstacle no player ] -> [ stationary crate | obstacle ]\n\n\nup [stationary crate | moving crate no fork ] -> [ stationary crate | stationary crate ]\n\n[up fork crate]->[up fork oldfork crate]\n\n\n[ stationary crate no fork ] -> [ down crate ]\n\n[]->[] again\n\n\nlate [ rod ] -> []\nlate [ toprod ] -> []\nlate right [ no forklift | fork ] -> [ toprod | fork ]\nlate down [ isrod | no hasrod ] -> [ isrod | rod ]\nlate [ rod wall ] -> cancel\nlate [forklift fork]->cancel\n\nlate [oldfork crate ] -> cancel\nlate [oldfork]->[]\n\n\n(win condition)\nlate [forklift]->[forklift correct]\n\nlate up [ end1 | crate1 ] -> [ end1 | crate1 correct ]\nlate up [ end2 | crate2 ] -> [ end2 | crate2 correct ]\nlate up [ end3 | crate3 ] -> [ end3 | crate3 correct ]\nlate up [ correct crate1 | crate1 ] -> [ correct crate1 | correct crate1 ]\nlate up [ correct crate2 | crate2 ] -> [ correct crate2 | correct crate2 ]\nlate up [ correct crate3 | crate3 ] -> [ correct crate3 | correct crate3 ]\n\nlate [crate no correct] [ forklift correct ] -> [ crate ] [ forklift no correct] \nlate [forklift correct] [ fork no crate ] -> win\nlate [correct] ->[]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 3\n\n##########\n###.......\n..........\n..........\n.pf.2.1...\n#######qw#\n\n\nmessage Level 2 von 3\n\n################\n########.......#\n#..............#\n#..............#\n#..............#\n#........pf321.#\n###qwe##########\n\n\nmessage Level 3 von 3\n\n..........\n..........\n..........\n..........\n..........\n..........\n..#.......\n..........\n....233...\n.pf.111...\n#######qwe\n\nmessage Du bist aber gewandt!\n\n(\n########.....\n########.....\n.............\n.............\n.pf.1.3......\n########.##e#\n########q####)\n\n\n\n\n\n",[0,3,3,0,1,1,1,0,0,3,2,0,2,2,1,0,0,3,2,0,1,2,2,2,3,3,2,3,0,2,2,3,3,3,0,0,0,3,2,1,2,2,2,3,0,0,3,1],"background:0,0,0,0,0,0,0,0,0,0,\nbackground wall:1,0,0,0,0,0,0,0,0,0,\n0,1,0,0,0,0,0,background crate2:2,1,0,\n0,0,1,0,0,0,0,0,0,0,\n0,0,0,1,0,0,0,0,0,0,\n0,background toprod:3,background rod:4,background forklift:5,1,0,0,0,0,0,\n0,0,background fork:6,0,0,1,0,0,0,0,\n0,background crate1:7,background crate3:8,7,8,7,1,0,0,0,\n0,0,0,0,0,0,0,background end1 wall:9,0,0,\n0,0,0,0,0,0,0,0,background end2 wall:10,0,\n0,0,0,0,0,0,0,0,0,background end3 wall:11,\n",5,"1627891651612.1494"] ], [ - "Slot Machine", - ["title Slot Machine\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nbackground_color lightred\n\nrun_rules_on_level_Start\n\n\n========\nOBJECTS\n========\n\nBackground\nlightred\n\n\nVTarget\nblack transparent\n11011\n11011\n11011\n11011\n11011\n\nHTarget\nblack transparent\n11111\n11111\n11111\n11111\n00000\n\nWall\npurple \n\nPlayer\ndarkblue darkbrown green darkgreen\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nPlayer_fall\ndarkred darkbrown green darkgreen\n.....\n.....\n.000.\n21112\n.222.\n\nCoin_Flat\nyellow orange \n.....\n.000.\n00000\n10001\n.111.\n\ncoin_on_flatshadow\n#b14762\n.....\n.....\n.....\n.....\n0....\n\nCoin_H\nyellow orange\n.000.\n00000\n00000\n00000\n.000.\n\nCoin_V\nyellow orange\n..0..\n..0..\n..0..\n..0..\n..0..\n\nhalfin_h\nyellow orange\n.....\n.....\n.....\n.000.\n00000\n\nhalfin_v\nyellow orange\n.....\n..0..\n..0..\n..0..\n.....\n\nshadow_player\n#b14762\n.0.0.\n0.0..\n000..\n000..\n0....\n\nshadow_wall\n#b14762\n\nshadow_coin_flat\n#b14762\n0000.\n.....\n.....\n.....\n.....\n\nshadow_coin_h\n#b14762\n.000.\n.000.\n000..\n000..\n00...\n\nshadow_coin_v\n#b14762\n..0..\n.0...\n.0...\n0....\n0....\n\nwallshadow_1\n#b14762\n.....\n....0\n....0\n...00\n...00\n\nwallshadow_1b\n#b14762\n...00\n...00\n...00\n...00\n...00\n\n\nwallshadow_2\ntransparent #b14762\n11111\n11110\n11110\n11100\n11100\n\n\n=======\nLEGEND\n=======\n\ncoin = coin_h or coin_v or coin_flat\nobstacle = coin or wall or player\n\nanycoin = coin or halfin_h or halfin_v\n\n. = Background\n# = Wall\nP = Player\na = coin_flat\nb = coin_h\nc = coin_v\n1 = htarget\n2 = vtarget\nshadow = shadow_player or shadow_wall or shadow_coin_flat or shadow_coin_h or shadow_coin_v or coin_on_flatshadow or wallshadow_1 or wallshadow_1b or wallshadow_2\nwallshadow_v = wallshadow_1 or wallshadow_1b\n\n=======\nSOUNDS\n=======\nsfx0 4400100\nsfx1 56724504\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nshadow_player\nshadow_wall\nshadow_coin_flat\nshadow_coin_h\nshadow_coin_v\nwallshadow_1\nwallshadow_1b\nwallshadow_2\ncoin_on_flatshadow\nhtarget, vtarget\nPlayer, Wall, anycoin, player_Fall\n\n======\nRULES\n======\n\n\n[ htarget player_fall ] -> [ htarget ]\n\n([ htarget player ] -> [ htarget player_fall ] sfx1)\n\n[ htarget halfin_h ] -> [ htarget ]\n[ vtarget halfin_v ] -> [ vtarget ]\n\n[ coin_h htarget ] -> [ htarget halfin_h ] sfx0\n[ coin_v vtarget ] -> [ vtarget halfin_v ] sfx0\n\n\nhorizontal [ > player | coin_flat | no obstacle ] -> [ > player | | coin_v ]\nhorizontal [ > player | coin_v | no obstacle ] -> [ > player | | coin_flat ]\nhorizontal [ > player | coin_h | no obstacle ] -> [ > player | | coin_h ]\n\n\n\nvertical [ > player | coin_flat | no obstacle ] -> [ > player | | coin_h ]\nvertical [ > player | coin_h | no obstacle ] -> [ > player | | coin_flat ]\nvertical [ > player | coin_v | no obstacle ] -> [ > player | | coin_v ]\n\nlate [ shadow ] -> []\n\nlate down [ player | ] -> [ player | shadow_player ]\nlate down [ wall | ] -> [ wall | shadow_wall ] \n\nlate down [ coin_flat | ] -> [ coin_flat | shadow_coin_flat ]\nlate down [ coin_h | ] -> [ coin_h | shadow_coin_h ]\nlate down [ coin_v | ] -> [ coin_v | shadow_coin_v ]\nlate [ coin_flat ] -> [ coin_flat coin_on_flatshadow ]\n[]->again\n\n\n==============\nWINCONDITIONS\n==============\n\nno anycoin\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 2\n\n#########\n#.......#\n#.......#\n#.p.a.1.#\n#.......#\n#.......#\n#########\n.........\n\nmessage Level 2 von 2\n\n#########\n#.......#\n#....a..#\n#.p.aa1.#\n#....a..#\n#.......#\n#########\n.........\n\nmessage The End\n", [3, 3, 2, 3, 0, 1, 2, 2, 3, 3, 3, 0, 1, 1, 2, 1, 0, 1, 1, 0, 0, 3, 0, 3, 2, 2, 1, 2, 3], "background wall:0,background shadow_wall wall:1,1,1,1,1,1,background shadow_wall:2,0,\n2,background:3,3,3,3,0,2,0,2,\n3,3,3,3,0,2,0,2,3,\n3,background player:4,background shadow_player:5,0,2,0,2,background coin_h:6,background shadow_coin_h:7,\nbackground coin_v:8,background shadow_coin_v:9,0,2,0,2,background coin_flat coin_on_flatshadow:10,background coin_flat coin_on_flatshadow shadow_coin_flat:11,background shadow_coin_flat:12,\n3,0,2,0,2,3,background htarget:13,3,3,\n0,2,0,2,3,3,3,3,0,\n2,0,1,1,1,1,1,1,2,\n", 3, "1627891674117.2878"] + "Slot Machine", + ["title Slot Machine\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nbackground_color lightred\n\nrun_rules_on_level_Start\n\n\n========\nOBJECTS\n========\n\nBackground\nlightred\n\n\nVTarget\nblack transparent\n11011\n11011\n11011\n11011\n11011\n\nHTarget\nblack transparent\n11111\n11111\n11111\n11111\n00000\n\nWall\npurple \n\nPlayer\ndarkblue darkbrown green darkgreen\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nPlayer_fall\ndarkred darkbrown green darkgreen\n.....\n.....\n.000.\n21112\n.222.\n\nCoin_Flat\nyellow orange \n.....\n.000.\n00000\n10001\n.111.\n\ncoin_on_flatshadow\n#b14762\n.....\n.....\n.....\n.....\n0....\n\nCoin_H\nyellow orange\n.000.\n00000\n00000\n00000\n.000.\n\nCoin_V\nyellow orange\n..0..\n..0..\n..0..\n..0..\n..0..\n\nhalfin_h\nyellow orange\n.....\n.....\n.....\n.000.\n00000\n\nhalfin_v\nyellow orange\n.....\n..0..\n..0..\n..0..\n.....\n\nshadow_player\n#b14762\n.0.0.\n0.0..\n000..\n000..\n0....\n\nshadow_wall\n#b14762\n\nshadow_coin_flat\n#b14762\n0000.\n.....\n.....\n.....\n.....\n\nshadow_coin_h\n#b14762\n.000.\n.000.\n000..\n000..\n00...\n\nshadow_coin_v\n#b14762\n..0..\n.0...\n.0...\n0....\n0....\n\nwallshadow_1\n#b14762\n.....\n....0\n....0\n...00\n...00\n\nwallshadow_1b\n#b14762\n...00\n...00\n...00\n...00\n...00\n\n\nwallshadow_2\ntransparent #b14762\n11111\n11110\n11110\n11100\n11100\n\n\n=======\nLEGEND\n=======\n\ncoin = coin_h or coin_v or coin_flat\nobstacle = coin or wall or player\n\nanycoin = coin or halfin_h or halfin_v\n\n. = Background\n# = Wall\nP = Player\na = coin_flat\nb = coin_h\nc = coin_v\n1 = htarget\n2 = vtarget\nshadow = shadow_player or shadow_wall or shadow_coin_flat or shadow_coin_h or shadow_coin_v or coin_on_flatshadow or wallshadow_1 or wallshadow_1b or wallshadow_2\nwallshadow_v = wallshadow_1 or wallshadow_1b\n\n=======\nSOUNDS\n=======\nsfx0 4400100\nsfx1 56724504\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nshadow_player\nshadow_wall\nshadow_coin_flat\nshadow_coin_h\nshadow_coin_v\nwallshadow_1\nwallshadow_1b\nwallshadow_2\ncoin_on_flatshadow\nhtarget, vtarget\nPlayer, Wall, anycoin, player_Fall\n\n======\nRULES\n======\n\n\n[ htarget player_fall ] -> [ htarget ]\n\n([ htarget player ] -> [ htarget player_fall ] sfx1)\n\n[ htarget halfin_h ] -> [ htarget ]\n[ vtarget halfin_v ] -> [ vtarget ]\n\n[ coin_h htarget ] -> [ htarget halfin_h ] sfx0\n[ coin_v vtarget ] -> [ vtarget halfin_v ] sfx0\n\n\nhorizontal [ > player | coin_flat | no obstacle ] -> [ > player | | coin_v ]\nhorizontal [ > player | coin_v | no obstacle ] -> [ > player | | coin_flat ]\nhorizontal [ > player | coin_h | no obstacle ] -> [ > player | | coin_h ]\n\n\n\nvertical [ > player | coin_flat | no obstacle ] -> [ > player | | coin_h ]\nvertical [ > player | coin_h | no obstacle ] -> [ > player | | coin_flat ]\nvertical [ > player | coin_v | no obstacle ] -> [ > player | | coin_v ]\n\nlate [ shadow ] -> []\n\nlate down [ player | ] -> [ player | shadow_player ]\nlate down [ wall | ] -> [ wall | shadow_wall ] \n\nlate down [ coin_flat | ] -> [ coin_flat | shadow_coin_flat ]\nlate down [ coin_h | ] -> [ coin_h | shadow_coin_h ]\nlate down [ coin_v | ] -> [ coin_v | shadow_coin_v ]\nlate [ coin_flat ] -> [ coin_flat coin_on_flatshadow ]\n[]->again\n\n\n==============\nWINCONDITIONS\n==============\n\nno anycoin\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 2\n\n#########\n#.......#\n#.......#\n#.p.a.1.#\n#.......#\n#.......#\n#########\n.........\n\nmessage Level 2 von 2\n\n#########\n#.......#\n#....a..#\n#.p.aa1.#\n#....a..#\n#.......#\n#########\n.........\n\nmessage The End\n",[3,3,2,3,0,1,2,2,3,3,3,0,1,1,2,1,0,1,1,0,0,3,0,3,2,2,1,2,3],"background wall:0,background shadow_wall wall:1,1,1,1,1,1,background shadow_wall:2,0,\n2,background:3,3,3,3,0,2,0,2,\n3,3,3,3,0,2,0,2,3,\n3,background player:4,background shadow_player:5,0,2,0,2,background coin_h:6,background shadow_coin_h:7,\nbackground coin_v:8,background shadow_coin_v:9,0,2,0,2,background coin_flat coin_on_flatshadow:10,background coin_flat coin_on_flatshadow shadow_coin_flat:11,background shadow_coin_flat:12,\n3,0,2,0,2,3,background htarget:13,3,3,\n0,2,0,2,3,3,3,3,0,\n2,0,1,1,1,1,1,1,2,\n",3,"1627891674117.2878"] ], [ - "Participating in society", - ["title Participating in society\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n========\nOBJECTS\n========\n\nBackground\ngreen 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_sm\nDARKBROWN Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate1 0\nDARKBROWN\n\ncrate2 1\norange\n\ncrate3 2\nwhite\n\ncrate4 3\nblue\n\nplayer0 q\ndarkbrown\n\nplayer1 w\norange\n\nplayer2 e\nwhite\n\nplayer3 r\nblue\n\na \ntransparent\n\ns\ntransparent\n\nd \ntransparent\n\nf\ntransparent\n\n=======\nLEGEND\n=======\n\ncrate = crate1 or crate2 or crate3 or crate4\nplayer = player0 or player1 or player2 or player3\n\n. = Background\n# = Wall\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, player_sm\na,s,d,f\n\n======\nRULES\n======\n\n([ > Player | Crate ] -> [ > Player | > Crate ])\n([ > crate | crate ] -> [ > crate | > crate ])\n\n([ > crate | | | | | no crate ] -> [ | | | | | crate ] )\n==============\nWINCONDITIONS\n==============\nall q on a\nall w on s\nall e on d\nall r on f\n\n=======\nLEVELS\n=======\n\n\nmessage I don't know if it's a good idea to join in.\n\nmessage Level 1 of 1\n\n...................................\n...................................\n...................................\n...................................\n...................................\n..qqq.....000000000000000..........\n..www.....000000000000000..........\n.eeeee....aa0000000000000..........\n..rrr.....0a0000000000000..........\n..r.r.....000000000000000..........\n..........111111111111111..........\n..........111111111111111..........\n..........111111111111111..........\n..........111ss1111111111..........\n..........1111s1111111111..........\n.....222222222d222222222222222.....\n.....222222222d222222222222222.....\n.....222222222d222222222222222.....\n.....222222222d222222222222222.....\n.....222222222d222222222222222.....\n..........fffff3333333333..........\n..........333333333333333..........\n..........333333333333333..........\n..........333333333333333..........\n..........333333333333333..........\n..........33333.....33333..........\n..........33333.....33333..........\n..........33333.....33333..........\n..........33333.....33333..........\n..........33333.....33333..........\n...................................\n...................................\n...................................\n...................................\n...................................\n\nmessage The collective concludes that it has no regrets.\n\n\n", [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 2, 3, 2, 3, 3, 3, 0, 3, 0, 3, 0, 3, 0, 0], "background: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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,background player0:1,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,1,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,1,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,background crate3:2,2,2,2,2,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,2,2,2,2,2,background player2:3,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,2,2,2,2,2,3,3,background player3:4,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,2,2,2,2,2,background player1:5,4,4,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,2,2,2,2,2,5,4,4,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background crate1:6,6,a background:7,6,6,background crate2:8,8,8,8,8,2,2,2,2,2,background f player1:9,background crate4:10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,7,7,6,8,8,8,8,8,2,2,2,2,2,background f player2:11,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,background f:12,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,background s:13,8,2,2,2,2,2,12,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,13,13,background d:14,14,14,14,14,12,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,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,2,2,2,2,2,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,2,2,2,2,2,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,2,2,2,2,2,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,2,2,2,2,2,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,\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,\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,\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,\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,\n", 2, "1627891686718.0212"] + "Participating in society", + ["title Participating in society\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n========\nOBJECTS\n========\n\nBackground\ngreen 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_sm\nDARKBROWN Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate1 0\nDARKBROWN\n\ncrate2 1\norange\n\ncrate3 2\nwhite\n\ncrate4 3\nblue\n\nplayer0 q\ndarkbrown\n\nplayer1 w\norange\n\nplayer2 e\nwhite\n\nplayer3 r\nblue\n\na \ntransparent\n\ns\ntransparent\n\nd \ntransparent\n\nf\ntransparent\n\n=======\nLEGEND\n=======\n\ncrate = crate1 or crate2 or crate3 or crate4\nplayer = player0 or player1 or player2 or player3\n\n. = Background\n# = Wall\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, player_sm\na,s,d,f\n\n======\nRULES\n======\n\n([ > Player | Crate ] -> [ > Player | > Crate ])\n([ > crate | crate ] -> [ > crate | > crate ])\n\n([ > crate | | | | | no crate ] -> [ | | | | | crate ] )\n==============\nWINCONDITIONS\n==============\nall q on a\nall w on s\nall e on d\nall r on f\n\n=======\nLEVELS\n=======\n\n\nmessage I don't know if it's a good idea to join in.\n\nmessage Level 1 of 1\n\n...................................\n...................................\n...................................\n...................................\n...................................\n..qqq.....000000000000000..........\n..www.....000000000000000..........\n.eeeee....aa0000000000000..........\n..rrr.....0a0000000000000..........\n..r.r.....000000000000000..........\n..........111111111111111..........\n..........111111111111111..........\n..........111111111111111..........\n..........111ss1111111111..........\n..........1111s1111111111..........\n.....222222222d222222222222222.....\n.....222222222d222222222222222.....\n.....222222222d222222222222222.....\n.....222222222d222222222222222.....\n.....222222222d222222222222222.....\n..........fffff3333333333..........\n..........333333333333333..........\n..........333333333333333..........\n..........333333333333333..........\n..........333333333333333..........\n..........33333.....33333..........\n..........33333.....33333..........\n..........33333.....33333..........\n..........33333.....33333..........\n..........33333.....33333..........\n...................................\n...................................\n...................................\n...................................\n...................................\n\nmessage The collective concludes that it has no regrets.\n\n\n",[2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,2,3,2,3,3,3,0,3,0,3,0,3,0,0],"background: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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,background player0:1,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,1,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,1,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,background crate3:2,2,2,2,2,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,2,2,2,2,2,background player2:3,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,2,2,2,2,2,3,3,background player3:4,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,2,2,2,2,2,background player1:5,4,4,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,2,2,2,2,2,5,4,4,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background crate1:6,6,a background:7,6,6,background crate2:8,8,8,8,8,2,2,2,2,2,background f player1:9,background crate4:10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,7,7,6,8,8,8,8,8,2,2,2,2,2,background f player2:11,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,background f:12,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,background s:13,8,2,2,2,2,2,12,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,13,13,background d:14,14,14,14,14,12,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,6,6,6,6,6,8,8,8,8,8,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,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,2,2,2,2,2,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,2,2,2,2,2,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,2,2,2,2,2,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,2,2,2,2,2,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,\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,\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,\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,\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,\n",2,"1627891686718.0212"] ], [ - "Individuals can produce a society, but can a society produce individuals?", - ["title Individuals can produce a society, but can a society produce individuals?\nhomepage www.increpare.com\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\ngreen 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\nwall1 8\nbrown\n\nwall2 9\ndarkbrown\n\nPlayer_sm\nDARKBROWN Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate1 0\nDARKBROWN\n\ncrate2 1\norange\n\ncrate3 2\nwhite\n\ncrate4 3\nblue\n\nplayer0 q\ndarkbrown\n\nplayer1 w\norange\n\nplayer2 e\nwhite\n\nplayer3 r\nblue\n\na \ndarkblue\n\ns\ndarkblue\n\nd \ndarkblue\n\nf\ndarkblue\n\nbuhne x\npink\n\nerror\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\n=======\nLEGEND\n=======\n\ncrate = player0 or player1 or player2 or player3\nplayer = crate1 or crate2 or crate3 or crate4\n\n. = Background\n# = Wall\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbuhne\nTarget\na,s,d,f\nPlayer, Wall, Crate, player_sm, wall1, wall2\nerror\n\n======\nRULES\n======\n\n[error]->[]\n\nlate [ player buhne ] -> [ player buhne error ]\n\nlate [ a player no 0 ] -> [ a player error ]\nlate [ s player no 1 ] -> [ s player error ]\nlate [ d player no 2 ] -> [ d player error ]\nlate [ f player no 3 ] -> [ f player error ]\n\n([ > Player | Crate ] -> [ > Player | > Crate ])\n([ > crate | crate ] -> [ > crate | > crate ])\n\n([ > crate | | | | | no crate ] -> [ | | | | | crate ] )\n==============\nWINCONDITIONS\n==============\n\nall a on 0\nall s on 1\nall d on 2\nall f on 3\nno buhne on player\n\n=======\nLEVELS\n=======\n \n\nmessage Level 1 of 1\n\n\n........................................\n........................................\n.....xxxxx..............................\n.....xaaax..............................\n....xxsssxx.............................\n....xdddddx.............................\n....xxfffxx.............................\n.....xfxfx..............................\n.....xxxxx..............................\n........................................\n............000000......................\n............000000......................\n............111111......................\n............111111......................\n..........2222222222....................\n..........2222222222....................\n............333333......................\n............333333......................\n............33..33......................\n............33..33......................\n....................8888889988..........\n....................8888889988..........\n....................9999999999..........\n....................9999999999..........\n....................8899888888..........\n....................8899888888..........\n....................9999999999..........\n....................9999999999..........\n....................8888889988..........\n....................8888889988..........\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n\nmessage Yes\n\n\n\n\n\n", [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 2, 2, 2, 1, 1, 0, 0, 0, 1, 1, 1, 2, 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3], "background: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,\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,\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,\n0,0,0,0,background buhne:1,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,0,0,0,0,0,0,0,0,\n0,0,1,1,1,background d:2,1,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,0,0,0,0,0,0,\n0,0,1,a background:3,background s:4,2,background f:5,5,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,0,0,0,0,0,0,\n0,0,1,3,4,2,5,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,0,0,0,0,0,0,\n0,0,1,3,4,2,5,5,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,0,0,0,0,0,0,\n0,0,1,1,1,2,1,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,0,0,0,0,0,0,\n0,0,0,0,1,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,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,\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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background crate3:6,0,0,0,background crate4:7,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,6,6,0,0,0,7,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,6,background crate2:8,0,0,0,7,7,7,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,8,8,0,0,0,7,7,7,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,background crate1:9,8,8,6,6,7,7,7,7,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,9,8,8,6,6,7,7,7,7,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,9,8,8,6,6,7,background wall1:10,10,background wall2:11,11,10,10,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,8,8,6,6,7,10,10,11,11,10,10,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,8,6,6,6,7,10,10,11,11,11,11,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,6,6,6,6,7,10,10,11,11,11,11,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,10,10,11,11,10,10,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,10,10,11,11,10,10,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,11,11,11,11,10,10,11,11,11,11,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,11,11,11,11,10,10,11,11,11,11,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,10,10,11,11,10,10,11,11,10,10,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,10,10,11,11,10,10,11,11,10,10,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,6,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,\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,\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,\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,\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,\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,\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,\n", 1, "1627891699152.948"] + "Individuals can produce a society, but can a society produce individuals?", + ["title Individuals can produce a society, but can a society produce individuals?\nhomepage www.increpare.com\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\ngreen 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\nwall1 8\nbrown\n\nwall2 9\ndarkbrown\n\nPlayer_sm\nDARKBROWN Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate1 0\nDARKBROWN\n\ncrate2 1\norange\n\ncrate3 2\nwhite\n\ncrate4 3\nblue\n\nplayer0 q\ndarkbrown\n\nplayer1 w\norange\n\nplayer2 e\nwhite\n\nplayer3 r\nblue\n\na \ndarkblue\n\ns\ndarkblue\n\nd \ndarkblue\n\nf\ndarkblue\n\nbuhne x\npink\n\nerror\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\n=======\nLEGEND\n=======\n\ncrate = player0 or player1 or player2 or player3\nplayer = crate1 or crate2 or crate3 or crate4\n\n. = Background\n# = Wall\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbuhne\nTarget\na,s,d,f\nPlayer, Wall, Crate, player_sm, wall1, wall2\nerror\n\n======\nRULES\n======\n\n[error]->[]\n\nlate [ player buhne ] -> [ player buhne error ]\n\nlate [ a player no 0 ] -> [ a player error ]\nlate [ s player no 1 ] -> [ s player error ]\nlate [ d player no 2 ] -> [ d player error ]\nlate [ f player no 3 ] -> [ f player error ]\n\n([ > Player | Crate ] -> [ > Player | > Crate ])\n([ > crate | crate ] -> [ > crate | > crate ])\n\n([ > crate | | | | | no crate ] -> [ | | | | | crate ] )\n==============\nWINCONDITIONS\n==============\n\nall a on 0\nall s on 1\nall d on 2\nall f on 3\nno buhne on player\n\n=======\nLEVELS\n=======\n \n\nmessage Level 1 of 1\n\n\n........................................\n........................................\n.....xxxxx..............................\n.....xaaax..............................\n....xxsssxx.............................\n....xdddddx.............................\n....xxfffxx.............................\n.....xfxfx..............................\n.....xxxxx..............................\n........................................\n............000000......................\n............000000......................\n............111111......................\n............111111......................\n..........2222222222....................\n..........2222222222....................\n............333333......................\n............333333......................\n............33..33......................\n............33..33......................\n....................8888889988..........\n....................8888889988..........\n....................9999999999..........\n....................9999999999..........\n....................8899888888..........\n....................8899888888..........\n....................9999999999..........\n....................9999999999..........\n....................8888889988..........\n....................8888889988..........\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n........................................\n\nmessage Yes\n\n\n\n\n\n",[0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,0,1,0,0,1,1,2,2,2,1,1,0,0,0,1,1,1,2,1,2,2,3,3,3,3,3,3,3,3,2,3,2,3,2,3,2,3,2,2,2,2,2,2,2,1,1,2,1,2,3,2,3,2,3,2,3,3,3,3,3,3,3,0,0,0,0,0,0,3,3,3,3],"background: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,\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,\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,\n0,0,0,0,background buhne:1,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,0,0,0,0,0,0,0,0,\n0,0,1,1,1,background d:2,1,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,0,0,0,0,0,0,\n0,0,1,a background:3,background s:4,2,background f:5,5,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,0,0,0,0,0,0,\n0,0,1,3,4,2,5,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,0,0,0,0,0,0,\n0,0,1,3,4,2,5,5,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,0,0,0,0,0,0,\n0,0,1,1,1,2,1,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,0,0,0,0,0,0,\n0,0,0,0,1,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,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,\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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background crate3:6,0,0,0,background crate4:7,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,6,6,0,0,0,7,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,6,background crate2:8,0,0,0,7,7,7,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,8,8,0,0,0,7,7,7,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,background crate1:9,8,8,6,6,7,7,7,7,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,9,8,8,6,6,7,7,7,7,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,9,8,8,6,6,7,background wall1:10,10,background wall2:11,11,10,10,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,8,8,6,6,7,10,10,11,11,10,10,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,8,6,6,6,7,10,10,11,11,11,11,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,6,6,6,6,7,10,10,11,11,11,11,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,10,10,11,11,10,10,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,10,10,11,11,10,10,11,11,10,10,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,11,11,11,11,10,10,11,11,11,11,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,11,11,11,11,10,10,11,11,11,11,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,10,10,11,11,10,10,11,11,10,10,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,10,10,11,11,10,10,11,11,10,10,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,\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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,6,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,\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,\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,\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,\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,\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,\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,\n",1,"1627891699152.948"] ], [ - "the exit is under my left foot", - ["title the exit is under my left foot\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nrun_rules_on_level_start\nbackground_color darkblue\n\n========\nOBJECTS\n========\n\nBackground\nGREEN\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\np1\ngray \n.....\n.....\n..0..\n.....\n.....\n\np2\ngray \n.....\n.....\n..0..\n.....\n.....\n\np3\ngray \n.....\n.....\n..0..\n.....\n.....\n\np4\ngray \n.....\n.....\n..0..\n.....\n.....\n\np5\ngray \n.....\n.....\n..0..\n.....\n.....\n\n\n(\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.)\n\npixel_black \nblack\n\npixel_orange \norange\n\npixel_white \nwhite\n\npixel_blue \nblue\n\n\nwall_black \nblack\n\nwall_orange \norange\n\nwall_white \nwhite\n\nwall_blue \nblue\n\nrow_1 a\nTRANSPARENT\n\nrow_2 s\nTRANSPARENT\n\nrow_3 d\nTRANSPARENT\n\nrow_4 f\nTRANSPARENT\n\nrow_5 g\nTRANSPARENT\n\ndead\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\ngoal\ngray\n.....\n.....\n..0..\n.....\n.....\n\nquasigrenze\nTRANSPARENT\n\n=======\nLEGEND\n=======\n\n. = Background\n1 = p1\n2 = p2\n3 = p3\n4 = p4\n5 = p5\n\nO = Target\n\nb = goal \nn = goal and row_1\n\npixel = pixel_black or pixel_white or pixel_orange or pixel_blue\n\nplayer = p1 or p2 or p3 or p4 or p5\n\nq = pixel_black and p1\nw = pixel_orange and p2\ne = pixel_white and p3\nr = pixel_blue and p4\nt = pixel_blue and p5\n\nrow = row_1 or row_2 or row_3 or row_4 or row_5\nwall = wall_black or wall_orange or wall_white or wall_blue\nobstacle = wall\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\npixel\nWall\nPlayer\nrow\ngoal\ndead\nquasigrenze\n\n======\nRULES\n======\n\n\n[dead]->cancel\n\n[ > player pixel ] -> [ > player > pixel ]\n\n(\n[ moving player ] -> [ player ]\n\n[ player | player | player | player | player > pixel ] -> [ > player | > player | > player | > player | > player > pixel ]\n\n[ orthogonal player | stationary player ] -> [ orthogonal player | orthogonal player ]\n)\n\n\n[ ^ player wall | ^ player wall | ^ player wall | ^ player wall | ^ player wall ] -> [ quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall ]\n\n[ > pixel | > pixel | > pixel | > pixel | > pixel | obstacle ] [ moving player ] -> [ > pixel | > pixel | > pixel | > pixel | > pixel | obstacle ] [ player ] \n\n[ > pixel | quasigrenze ] [ moving player ] -> [ > pixel | quasigrenze ] [ player ] \n[quasigrenze]->[]\n\n[ > pixel | wall ] -> [ stationary pixel | wall ]\n[ > pixel | stationary pixel ] -> [ stationary pixel | pixel ]\n\nlate [wall]->[]\n\nlate [ pixel no player ] -> cancel\n\nlate right [ pixel_black 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_black 1 | 1 | 1 | 1 | 1 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_black 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_black 1 | 1 | 1 | 1 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_black 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_black 1 | 1 | 1 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_black 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_black 1 | 1 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_black 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_black 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_1 ]\nlate right [ pixel_black 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_black 2 | 2 | 2 | 2 | 2 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_black 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_black 2 | 2 | 2 | 2 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_black 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_black 2 | 2 | 2 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_black 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_black 2 | 2 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_black 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_black 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_2 ]\nlate right [ pixel_black 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_black 3 | 3 | 3 | 3 | 3 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_black 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_black 3 | 3 | 3 | 3 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_black 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_black 3 | 3 | 3 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_black 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_black 3 | 3 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_black 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_black 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_3 ]\nlate right [ pixel_black 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_black 4 | 4 | 4 | 4 | 4 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_black 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_black 4 | 4 | 4 | 4 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_black 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_black 4 | 4 | 4 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_black 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_black 4 | 4 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_black 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_black 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_4 ]\nlate right [ pixel_black 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_black 5 | 5 | 5 | 5 | 5 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_black 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_black 5 | 5 | 5 | 5 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_black 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_black 5 | 5 | 5 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_black 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_black 5 | 5 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_black 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_black 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_5 ]\n\n\nlate [pixel wall]->[pixel wall dead]\n\n==============\nWINCONDITIONS\n==============\n\nall player on goal\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n(11112222233333444445555)\n........................a\n........................a\n........................a\n........................a\n........................a\n........................s\n........................s\n........................s\n........................s\n........................s\n........................d\n........................d\n........................d\n........................d\n........................d\n........................f\n........................f\n........................f\n........................f\n........................f\n1qqq1..........bbbbb....g\n2www2..........bbbbb....g\neeeee..........bbbbb....g\n4rrr4..........bbbbb....g\n5t5t5..........bbbbb....g\n(11112222233333444445555)\n\n", [0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 0, 0, 1, 1, 0, 0, 0, 3, 3, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0], "background:0,0,0,0,0,background wall_black:1,1,1,1,1,background wall_white:2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,background p1 wall_black:3,background dead p2 pixel_black wall_white:4,background dead p3 pixel_white wall_white:5,background p4 wall_white:6,background p5 wall_white:7,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,3,4,background dead p3 pixel_orange wall_white:8,6,7,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,3,4,8,background dead p4 pixel_white wall_white:9,background dead p5 pixel_blue wall_white:10,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,3,background dead p2 pixel_orange wall_orange:11,background dead p3 pixel_white wall_orange:12,background dead p4 pixel_blue wall_orange:13,background dead p5 pixel_blue wall_orange:14,background wall_orange:15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,3,background dead p2 pixel_white wall_orange:16,12,13,14,15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,background wall_blue:17,17,17,17,17,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,background goal wall_blue:18,18,18,18,18,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,18,18,18,18,18,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,18,18,18,18,18,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,18,18,18,18,18,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,18,18,18,18,18,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,17,17,17,17,17,17,17,17,17,17,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,17,17,17,17,17,17,17,17,17,17,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,17,17,17,17,17,17,17,17,17,17,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,17,17,17,17,17,17,17,17,17,17,\nbackground row_1:19,19,19,19,19,background row_2 wall_white:20,20,20,20,20,background row_3 wall_white:21,21,21,21,21,background row_4 wall_blue:22,22,22,22,22,background row_5 wall_blue:23,23,23,23,23,\n", 1, "1627891726028.5537"] + "the exit is under my left foot", + ["title the exit is under my left foot\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nrun_rules_on_level_start\nbackground_color darkblue\n\n========\nOBJECTS\n========\n\nBackground\nGREEN\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\np1\ngray \n.....\n.....\n..0..\n.....\n.....\n\np2\ngray \n.....\n.....\n..0..\n.....\n.....\n\np3\ngray \n.....\n.....\n..0..\n.....\n.....\n\np4\ngray \n.....\n.....\n..0..\n.....\n.....\n\np5\ngray \n.....\n.....\n..0..\n.....\n.....\n\n\n(\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.)\n\npixel_black \nblack\n\npixel_orange \norange\n\npixel_white \nwhite\n\npixel_blue \nblue\n\n\nwall_black \nblack\n\nwall_orange \norange\n\nwall_white \nwhite\n\nwall_blue \nblue\n\nrow_1 a\nTRANSPARENT\n\nrow_2 s\nTRANSPARENT\n\nrow_3 d\nTRANSPARENT\n\nrow_4 f\nTRANSPARENT\n\nrow_5 g\nTRANSPARENT\n\ndead\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\ngoal\ngray\n.....\n.....\n..0..\n.....\n.....\n\nquasigrenze\nTRANSPARENT\n\n=======\nLEGEND\n=======\n\n. = Background\n1 = p1\n2 = p2\n3 = p3\n4 = p4\n5 = p5\n\nO = Target\n\nb = goal \nn = goal and row_1\n\npixel = pixel_black or pixel_white or pixel_orange or pixel_blue\n\nplayer = p1 or p2 or p3 or p4 or p5\n\nq = pixel_black and p1\nw = pixel_orange and p2\ne = pixel_white and p3\nr = pixel_blue and p4\nt = pixel_blue and p5\n\nrow = row_1 or row_2 or row_3 or row_4 or row_5\nwall = wall_black or wall_orange or wall_white or wall_blue\nobstacle = wall\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\npixel\nWall\nPlayer\nrow\ngoal\ndead\nquasigrenze\n\n======\nRULES\n======\n\n\n[dead]->cancel\n\n[ > player pixel ] -> [ > player > pixel ]\n\n(\n[ moving player ] -> [ player ]\n\n[ player | player | player | player | player > pixel ] -> [ > player | > player | > player | > player | > player > pixel ]\n\n[ orthogonal player | stationary player ] -> [ orthogonal player | orthogonal player ]\n)\n\n\n[ ^ player wall | ^ player wall | ^ player wall | ^ player wall | ^ player wall ] -> [ quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall ]\n\n[ > pixel | > pixel | > pixel | > pixel | > pixel | obstacle ] [ moving player ] -> [ > pixel | > pixel | > pixel | > pixel | > pixel | obstacle ] [ player ] \n\n[ > pixel | quasigrenze ] [ moving player ] -> [ > pixel | quasigrenze ] [ player ] \n[quasigrenze]->[]\n\n[ > pixel | wall ] -> [ stationary pixel | wall ]\n[ > pixel | stationary pixel ] -> [ stationary pixel | pixel ]\n\nlate [wall]->[]\n\nlate [ pixel no player ] -> cancel\n\nlate right [ pixel_black 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_black 1 | 1 | 1 | 1 | 1 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_black 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_black 1 | 1 | 1 | 1 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_black 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_black 1 | 1 | 1 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_black 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_black 1 | 1 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_black 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_black 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_1 ]\nlate right [ pixel_black 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_black 2 | 2 | 2 | 2 | 2 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_black 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_black 2 | 2 | 2 | 2 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_black 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_black 2 | 2 | 2 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_black 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_black 2 | 2 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_black 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_black 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_2 ]\nlate right [ pixel_black 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_black 3 | 3 | 3 | 3 | 3 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_black 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_black 3 | 3 | 3 | 3 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_black 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_black 3 | 3 | 3 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_black 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_black 3 | 3 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_black 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_black 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_3 ]\nlate right [ pixel_black 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_black 4 | 4 | 4 | 4 | 4 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_black 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_black 4 | 4 | 4 | 4 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_black 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_black 4 | 4 | 4 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_black 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_black 4 | 4 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_black 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_black 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_4 ]\nlate right [ pixel_black 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_black 5 | 5 | 5 | 5 | 5 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_black 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_black 5 | 5 | 5 | 5 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_black 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_black 5 | 5 | 5 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_black 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_black 5 | 5 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_black 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_black 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_5 ]\n\n\nlate [pixel wall]->[pixel wall dead]\n\n==============\nWINCONDITIONS\n==============\n\nall player on goal\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n(11112222233333444445555)\n........................a\n........................a\n........................a\n........................a\n........................a\n........................s\n........................s\n........................s\n........................s\n........................s\n........................d\n........................d\n........................d\n........................d\n........................d\n........................f\n........................f\n........................f\n........................f\n........................f\n1qqq1..........bbbbb....g\n2www2..........bbbbb....g\neeeee..........bbbbb....g\n4rrr4..........bbbbb....g\n5t5t5..........bbbbb....g\n(11112222233333444445555)\n\n",[0,0,0,0,0,0,0,3,3,3,3,3,3,3,2,2,2,2,2,3,3,3,3,3,0,0,1,1,0,0,0,3,3,1,0,0,0,0,0,1,1,0,0,0],"background:0,0,0,0,0,background wall_black:1,1,1,1,1,background wall_white:2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,background p1 wall_black:3,background dead p2 pixel_black wall_white:4,background dead p3 pixel_white wall_white:5,background p4 wall_white:6,background p5 wall_white:7,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,3,4,background dead p3 pixel_orange wall_white:8,6,7,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,3,4,8,background dead p4 pixel_white wall_white:9,background dead p5 pixel_blue wall_white:10,2,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,3,background dead p2 pixel_orange wall_orange:11,background dead p3 pixel_white wall_orange:12,background dead p4 pixel_blue wall_orange:13,background dead p5 pixel_blue wall_orange:14,background wall_orange:15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,3,background dead p2 pixel_white wall_orange:16,12,13,14,15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,background wall_blue:17,17,17,17,17,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,\n0,0,0,0,0,1,1,1,1,1,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,background goal wall_blue:18,18,18,18,18,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,18,18,18,18,18,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,18,18,18,18,18,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,18,18,18,18,18,\n0,0,0,0,0,15,15,15,15,15,2,2,2,2,2,17,17,17,17,17,18,18,18,18,18,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,17,17,17,17,17,17,17,17,17,17,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,17,17,17,17,17,17,17,17,17,17,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,17,17,17,17,17,17,17,17,17,17,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,17,17,17,17,17,17,17,17,17,17,\nbackground row_1:19,19,19,19,19,background row_2 wall_white:20,20,20,20,20,background row_3 wall_white:21,21,21,21,21,background row_4 wall_blue:22,22,22,22,22,background row_5 wall_blue:23,23,23,23,23,\n",1,"1627891726028.5537"] ], [ - "I SURE LOOK TASTY!", - ["title I SURE LOOK TASTY!\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nrun_rules_on_level_start\n\nverbose_logging\n========\nOBJECTS\n========\n\nBackground\nGREEN\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\np1\ngray \n.....\n.....\n..0..\n.....\n.....\n\np2\ngray \n.....\n.....\n..0..\n.....\n.....\n\np3\ngray \n.....\n.....\n..0..\n.....\n.....\n\np4\ngray \n.....\n.....\n..0..\n.....\n.....\n\np5\ngray \n.....\n.....\n..0..\n.....\n.....\n\n\n(\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.)\n\npixel_eye\norange white blue\n00000\n01110\n01210\n01210\n00000\n\n\npixel_orange \norange\n\npixel_white \nwhite\n\npixel_blue \nblue\n\npixel_mouth\norange red white darkred black\n01110\n12221\n34443\n12221\n01110\n\n\nwall_black \nblack\n\nwall_orange \norange\n\nwall_white \nwhite\n\nwall_blue \nblue\n\nwall_red\nred\n\nwall_darkred\ndarkred\n\nrow_1 a\nTRANSPARENT\n\nrow_2 s\nTRANSPARENT\n\nrow_3 d\nTRANSPARENT\n\nrow_4 f\nTRANSPARENT\n\nrow_5 g\nTRANSPARENT\n\nvr_1\nTRANSPARENT\n0....\n.....\n.....\n.....\n.....\n\nvr_2\nTRANSPARENT\n.0...\n.....\n.....\n.....\n.....\n\nvr_3\nTRANSPARENT\n..0..\n.....\n.....\n.....\n.....\n\nvr_4\nTRANSPARENT\n...0.\n.....\n.....\n.....\n.....\n\nvr_5\nTRANSPARENT\n....0\n.....\n.....\n.....\n.....\n\ndead\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\ngoal\ngray\n.....\n.....\n..0..\n.....\n.....\n\nquasigrenze\nTRANSPARENT\n\nmund\nTRANSPARENT\n\n=======\nLEGEND\n=======\n\n. = Background\n1 = p1\n2 = p2\n3 = p3\n4 = p4\n5 = p5\n\nO = Target\n\nb = goal \nn = goal and row_1\n\npixel = pixel_eye or pixel_white or pixel_orange or pixel_blue or pixel_mouth\n\nplayer = p1 or p2 or p3 or p4 or p5\n\nq = pixel_eye and p1\nw = pixel_orange and p2\ne = pixel_white and p3\nr = pixel_blue and p4\nt = pixel_blue and p5\ny = pixel_mouth and p2\nu = pixel_orange and p1\n\nrow = row_1 or row_2 or row_3 or row_4 or row_5\nwall = wall_black or wall_orange or wall_white or wall_blue or wall_red or wall_darkred\nobstacle = wall\n\nvr = vr_1 or vr_2 or vr_3 or vr_4 or vr_5\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nvr\nTarget\nWall\npixel\nPlayer\nrow\ngoal\ndead\nquasigrenze\nmund\n\n======\nRULES\n======\n\n\n[dead]->cancel\n\n[ > player pixel ] -> [ > player > pixel ]\n\n(\n[ moving player ] -> [ player ]\n\n[ player | player | player | player | player > pixel ] -> [ > player | > player | > player | > player | > player > pixel ]\n\n[ orthogonal player | stationary player ] -> [ orthogonal player | orthogonal player ]\n)\n\n\ndown [ row_1 | row_1 | row_1 | row_1 | row_1 ] -> [ row_1 vr_1 | row_1 vr_2 | row_1 vr_3 | row_1 vr_4 | row_1 vr_5 ]\ndown [ row_2 | row_2 | row_2 | row_2 | row_2 ] -> [ row_2 vr_1 | row_2 vr_2 | row_2 vr_3 | row_2 vr_4 | row_2 vr_5 ]\ndown [ row_3 | row_3 | row_3 | row_3 | row_3 ] -> [ row_3 vr_1 | row_3 vr_2 | row_3 vr_3 | row_3 vr_4 | row_3 vr_5 ]\ndown [ row_4 | row_4 | row_4 | row_4 | row_4 ] -> [ row_4 vr_1 | row_4 vr_2 | row_4 vr_3 | row_4 vr_4 | row_4 vr_5 ]\ndown [ row_5 | row_5 | row_5 | row_5 | row_5 ] -> [ row_5 vr_1 | row_5 vr_2 | row_5 vr_3 | row_5 vr_4 | row_5 vr_5 ]\n\n[ ^ player wall | ^ player wall | ^ player wall | ^ player wall | ^ player wall ] -> [ quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall ]\n\n[ > pixel | > pixel | > pixel | > pixel | > pixel | obstacle ] [ moving player ] -> [ > pixel | > pixel | > pixel | > pixel | > pixel | obstacle ] [ player ] \n\n[ > pixel | quasigrenze ] [ moving player ] -> [ > pixel | quasigrenze ] [ player ] \n[quasigrenze]->[]\n\n[ > pixel | wall ] -> [ stationary pixel | wall ]\n[ > pixel | stationary pixel ] -> [ stationary pixel | pixel ]\n\nlate [wall]->[]\nlate [mund]->[]\nlate [ pixel no player ] -> cancel\n\n\n\nlate right [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_1 ]\nlate right [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_2 ]\nlate right [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_3 ]\nlate right [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_4 ]\nlate right [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_5 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 vr_1 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 vr_1 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 vr_1 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 vr_1 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 vr_1 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_1 vr_2 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_2 vr_2 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_3 vr_2 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_4 vr_2 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_5 vr_2 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_1 vr_3 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_2 vr_3 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_3 vr_3 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_4 vr_3 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_5 vr_3 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_1 vr_4 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_2 vr_4 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_3 vr_4 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_4 vr_4 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_5 vr_4 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 vr_5 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 vr_5 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 vr_5 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 vr_5 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 vr_5 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_1 vr_1 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_2 vr_1 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_3 vr_1 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_4 vr_1 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_5 vr_1 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_1 vr_2 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_2 vr_2 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_3 vr_2 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_4 vr_2 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_5 vr_2 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_1 vr_3 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_2 vr_3 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_3 vr_3 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_4 vr_3 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_5 vr_3 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_1 vr_4 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_2 vr_4 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_3 vr_4 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_4 vr_4 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_5 vr_4 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_1 vr_5 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_2 vr_5 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_3 vr_5 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_4 vr_5 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_5 vr_5 ]\n\n\nlate [pixel mund ] -> [ mund ] \nlate [pixel wall]->[pixel wall dead]\n\n==============\nWINCONDITIONS\n==============\n\nno pixel\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n(11112222233333444445555)\n........................a\n........................a\n........................a\n........................a\n........................a\n........................s\n........................s\n........................s\n........................s\n........................s\n........................d\n........................d\n........................d\n........................d\n........................d\n........................f\n........................f\n........................f\n........................f\n........................f\n1quq1...................g\n2wyw2...................g\neeeee...................g\n4rrr4...................g\n5t5t5...................g\n(11112222233333444445555)\n\nmessage OM NOM NOM\n", [0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3], "background wall_white:0,0,0,0,0,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,background p1 pixel_white:2,background p2:3,background p3:4,background p4:5,background p5:6,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,2,3,4,5,6,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,background p1 pixel_eye:7,background p2 pixel_orange:8,background p3 pixel_white:9,background p4 pixel_blue:10,6,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,background p1 pixel_orange:11,background p2 pixel_mouth:12,9,10,background p5 pixel_blue:13,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,7,8,9,10,13,1,1,1,1,1,1,1,1,1,1,1,\nbackground wall_orange:14,14,14,14,14,14,14,14,14,14,0,0,0,0,0,background wall_blue:15,15,15,15,15,1,1,1,1,1,\n14,0,0,0,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,1,1,1,1,1,\n14,0,15,15,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,1,1,1,1,1,\n14,0,0,0,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,1,1,1,1,1,\n14,14,14,14,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,1,1,1,1,1,\n14,14,14,14,14,background mund wall_red:16,16,background mund wall_darkred:17,16,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,16,background mund wall_white:18,background mund wall_black:19,18,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,16,18,19,18,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,16,18,19,18,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,16,16,17,16,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,0,0,0,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,0,15,15,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,0,0,0,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\nbackground row_1 vr_1 wall_orange:20,background row_1 vr_2 wall_orange:21,background row_1 vr_3 wall_orange:22,background row_1 vr_4 wall_orange:23,background row_1 vr_5 wall_orange:24,background row_2 vr_1 wall_orange:25,background row_2 vr_2 wall_orange:26,background row_2 vr_3 wall_orange:27,background row_2 vr_4 wall_orange:28,background row_2 vr_5 wall_orange:29,background row_3 vr_1 wall_white:30,background row_3 vr_2 wall_white:31,background row_3 vr_3 wall_white:32,background row_3 vr_4 wall_white:33,background row_3 vr_5 wall_white:34,background row_4 vr_1 wall_blue:35,background row_4 vr_2 wall_blue:36,background row_4 vr_3 wall_blue:37,background row_4 vr_4 wall_blue:38,background row_4 vr_5 wall_blue:39,background row_5 vr_1 wall_blue:40,background row_5 vr_2 wall_blue:41,background row_5 vr_3 wall_blue:42,background row_5 vr_4 wall_blue:43,background row_5 vr_5 wall_blue:44,\n", 1, "1627891749225.5503"] + "I SURE LOOK TASTY!", + ["title I SURE LOOK TASTY!\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nrun_rules_on_level_start\n\nverbose_logging\n========\nOBJECTS\n========\n\nBackground\nGREEN\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\np1\ngray \n.....\n.....\n..0..\n.....\n.....\n\np2\ngray \n.....\n.....\n..0..\n.....\n.....\n\np3\ngray \n.....\n.....\n..0..\n.....\n.....\n\np4\ngray \n.....\n.....\n..0..\n.....\n.....\n\np5\ngray \n.....\n.....\n..0..\n.....\n.....\n\n\n(\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.)\n\npixel_eye\norange white blue\n00000\n01110\n01210\n01210\n00000\n\n\npixel_orange \norange\n\npixel_white \nwhite\n\npixel_blue \nblue\n\npixel_mouth\norange red white darkred black\n01110\n12221\n34443\n12221\n01110\n\n\nwall_black \nblack\n\nwall_orange \norange\n\nwall_white \nwhite\n\nwall_blue \nblue\n\nwall_red\nred\n\nwall_darkred\ndarkred\n\nrow_1 a\nTRANSPARENT\n\nrow_2 s\nTRANSPARENT\n\nrow_3 d\nTRANSPARENT\n\nrow_4 f\nTRANSPARENT\n\nrow_5 g\nTRANSPARENT\n\nvr_1\nTRANSPARENT\n0....\n.....\n.....\n.....\n.....\n\nvr_2\nTRANSPARENT\n.0...\n.....\n.....\n.....\n.....\n\nvr_3\nTRANSPARENT\n..0..\n.....\n.....\n.....\n.....\n\nvr_4\nTRANSPARENT\n...0.\n.....\n.....\n.....\n.....\n\nvr_5\nTRANSPARENT\n....0\n.....\n.....\n.....\n.....\n\ndead\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\ngoal\ngray\n.....\n.....\n..0..\n.....\n.....\n\nquasigrenze\nTRANSPARENT\n\nmund\nTRANSPARENT\n\n=======\nLEGEND\n=======\n\n. = Background\n1 = p1\n2 = p2\n3 = p3\n4 = p4\n5 = p5\n\nO = Target\n\nb = goal \nn = goal and row_1\n\npixel = pixel_eye or pixel_white or pixel_orange or pixel_blue or pixel_mouth\n\nplayer = p1 or p2 or p3 or p4 or p5\n\nq = pixel_eye and p1\nw = pixel_orange and p2\ne = pixel_white and p3\nr = pixel_blue and p4\nt = pixel_blue and p5\ny = pixel_mouth and p2\nu = pixel_orange and p1\n\nrow = row_1 or row_2 or row_3 or row_4 or row_5\nwall = wall_black or wall_orange or wall_white or wall_blue or wall_red or wall_darkred\nobstacle = wall\n\nvr = vr_1 or vr_2 or vr_3 or vr_4 or vr_5\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nvr\nTarget\nWall\npixel\nPlayer\nrow\ngoal\ndead\nquasigrenze\nmund\n\n======\nRULES\n======\n\n\n[dead]->cancel\n\n[ > player pixel ] -> [ > player > pixel ]\n\n(\n[ moving player ] -> [ player ]\n\n[ player | player | player | player | player > pixel ] -> [ > player | > player | > player | > player | > player > pixel ]\n\n[ orthogonal player | stationary player ] -> [ orthogonal player | orthogonal player ]\n)\n\n\ndown [ row_1 | row_1 | row_1 | row_1 | row_1 ] -> [ row_1 vr_1 | row_1 vr_2 | row_1 vr_3 | row_1 vr_4 | row_1 vr_5 ]\ndown [ row_2 | row_2 | row_2 | row_2 | row_2 ] -> [ row_2 vr_1 | row_2 vr_2 | row_2 vr_3 | row_2 vr_4 | row_2 vr_5 ]\ndown [ row_3 | row_3 | row_3 | row_3 | row_3 ] -> [ row_3 vr_1 | row_3 vr_2 | row_3 vr_3 | row_3 vr_4 | row_3 vr_5 ]\ndown [ row_4 | row_4 | row_4 | row_4 | row_4 ] -> [ row_4 vr_1 | row_4 vr_2 | row_4 vr_3 | row_4 vr_4 | row_4 vr_5 ]\ndown [ row_5 | row_5 | row_5 | row_5 | row_5 ] -> [ row_5 vr_1 | row_5 vr_2 | row_5 vr_3 | row_5 vr_4 | row_5 vr_5 ]\n\n[ ^ player wall | ^ player wall | ^ player wall | ^ player wall | ^ player wall ] -> [ quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall | quasigrenze ^ player wall ]\n\n[ > pixel | > pixel | > pixel | > pixel | > pixel | obstacle ] [ moving player ] -> [ > pixel | > pixel | > pixel | > pixel | > pixel | obstacle ] [ player ] \n\n[ > pixel | quasigrenze ] [ moving player ] -> [ > pixel | quasigrenze ] [ player ] \n[quasigrenze]->[]\n\n[ > pixel | wall ] -> [ stationary pixel | wall ]\n[ > pixel | stationary pixel ] -> [ stationary pixel | pixel ]\n\nlate [wall]->[]\nlate [mund]->[]\nlate [ pixel no player ] -> cancel\n\n\n\nlate right [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_1 ]\nlate right [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_2 ]\nlate right [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_3 ]\nlate right [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_4 ]\nlate right [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_5 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 vr_1 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 vr_1 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 vr_1 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 vr_1 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 vr_1 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_1 vr_2 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_2 vr_2 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_3 vr_2 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_4 vr_2 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_white | wall_white | wall_orange row_5 vr_2 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_1 vr_3 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_2 vr_3 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_3 vr_3 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_4 vr_3 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_5 vr_3 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_1 vr_4 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_2 vr_4 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_3 vr_4 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_4 vr_4 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_white | wall_blue | wall_white | wall_orange row_5 vr_4 ]\nlate right [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ pixel_eye 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | pixel_eye 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | pixel_eye 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | 1 | pixel_eye 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | 1 | 1 | pixel_eye 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 vr_5 ]\nlate right [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ pixel_eye 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | pixel_eye 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | pixel_eye 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | 2 | pixel_eye 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | 2 | 2 | pixel_eye 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 vr_5 ]\nlate right [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ pixel_eye 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | pixel_eye 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | pixel_eye 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | 3 | pixel_eye 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | 3 | 3 | pixel_eye 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 vr_5 ]\nlate right [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ pixel_eye 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | pixel_eye 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | pixel_eye 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | 4 | pixel_eye 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | 4 | 4 | pixel_eye 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 vr_5 ]\nlate right [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ pixel_eye 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | pixel_eye 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | pixel_eye 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | 5 | pixel_eye 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | 5 | 5 | pixel_eye 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 vr_5 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_1 vr_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_1 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_1 vr_1 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_2 vr_1 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_1 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_2 vr_1 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_3 vr_1 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_1 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_3 vr_1 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_4 vr_1 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_1 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_4 vr_1 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_5 vr_1 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_1 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_5 vr_1 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_1 vr_2 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_2 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_1 vr_2 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_2 vr_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_2 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_2 vr_2 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_3 vr_2 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_2 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_3 vr_2 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_4 vr_2 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_2 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_4 vr_2 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_5 vr_2 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_2 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_5 vr_2 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_1 vr_3 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_3 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_1 vr_3 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_2 vr_3 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_3 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_2 vr_3 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_3 vr_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_3 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_3 vr_3 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_4 vr_3 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_3 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_4 vr_3 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund | | | | | row_5 vr_3 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_3 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_darkred mund | wall_black mund | wall_black mund | wall_black mund | wall_darkred mund row_5 vr_3 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_1 vr_4 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_4 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_1 vr_4 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_2 vr_4 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_4 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_2 vr_4 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_3 vr_4 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_4 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_3 vr_4 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_4 vr_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_4 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_4 vr_4 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund | | | | | row_5 vr_4 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_4 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_white mund | wall_white mund | wall_white mund | wall_red mund row_5 vr_4 ]\nlate right [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ pixel_mouth 1 | 1 | 1 | 1 | 1 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | pixel_mouth 1 | 1 | 1 | 1 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | pixel_mouth 1 | 1 | 1 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | 1 | pixel_mouth 1 | 1 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_1 vr_5 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 vr_5 ] -> [ 1 | 1 | 1 | 1 | pixel_mouth 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_1 vr_5 ]\nlate right [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ pixel_mouth 2 | 2 | 2 | 2 | 2 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | pixel_mouth 2 | 2 | 2 | 2 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | pixel_mouth 2 | 2 | 2 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | 2 | pixel_mouth 2 | 2 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_2 vr_5 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 vr_5 ] -> [ 2 | 2 | 2 | 2 | pixel_mouth 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_2 vr_5 ]\nlate right [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ pixel_mouth 3 | 3 | 3 | 3 | 3 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | pixel_mouth 3 | 3 | 3 | 3 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | pixel_mouth 3 | 3 | 3 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | 3 | pixel_mouth 3 | 3 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_3 vr_5 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 vr_5 ] -> [ 3 | 3 | 3 | 3 | pixel_mouth 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_3 vr_5 ]\nlate right [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ pixel_mouth 4 | 4 | 4 | 4 | 4 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | pixel_mouth 4 | 4 | 4 | 4 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | pixel_mouth 4 | 4 | 4 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | 4 | pixel_mouth 4 | 4 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_4 vr_5 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 vr_5 ] -> [ 4 | 4 | 4 | 4 | pixel_mouth 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_4 vr_5 ]\nlate right [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ pixel_mouth 5 | 5 | 5 | 5 | 5 ] [ wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | pixel_mouth 5 | 5 | 5 | 5 ] [ | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | pixel_mouth 5 | 5 | 5 ] [ | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | 5 | pixel_mouth 5 | 5 ] [ | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund | | | | | row_5 vr_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 vr_5 ] -> [ 5 | 5 | 5 | 5 | pixel_mouth 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_red mund | wall_red mund | wall_red mund | wall_red mund | wall_red mund row_5 vr_5 ]\n\n\nlate [pixel mund ] -> [ mund ] \nlate [pixel wall]->[pixel wall dead]\n\n==============\nWINCONDITIONS\n==============\n\nno pixel\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n(11112222233333444445555)\n........................a\n........................a\n........................a\n........................a\n........................a\n........................s\n........................s\n........................s\n........................s\n........................s\n........................d\n........................d\n........................d\n........................d\n........................d\n........................f\n........................f\n........................f\n........................f\n........................f\n1quq1...................g\n2wyw2...................g\neeeee...................g\n4rrr4...................g\n5t5t5...................g\n(11112222233333444445555)\n\nmessage OM NOM NOM\n",[0,0,3,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3],"background wall_white:0,0,0,0,0,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,background p1 pixel_white:2,background p2:3,background p3:4,background p4:5,background p5:6,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,2,3,4,5,6,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,background p1 pixel_eye:7,background p2 pixel_orange:8,background p3 pixel_white:9,background p4 pixel_blue:10,6,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,background p1 pixel_orange:11,background p2 pixel_mouth:12,9,10,background p5 pixel_blue:13,1,1,1,1,1,1,1,1,1,1,1,\n0,0,0,0,0,1,1,1,1,7,8,9,10,13,1,1,1,1,1,1,1,1,1,1,1,\nbackground wall_orange:14,14,14,14,14,14,14,14,14,14,0,0,0,0,0,background wall_blue:15,15,15,15,15,1,1,1,1,1,\n14,0,0,0,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,1,1,1,1,1,\n14,0,15,15,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,1,1,1,1,1,\n14,0,0,0,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,1,1,1,1,1,\n14,14,14,14,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,1,1,1,1,1,\n14,14,14,14,14,background mund wall_red:16,16,background mund wall_darkred:17,16,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,16,background mund wall_white:18,background mund wall_black:19,18,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,16,18,19,18,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,16,18,19,18,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,16,16,17,16,16,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,14,14,14,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,0,0,0,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,0,15,15,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\n14,0,0,0,14,14,14,14,14,14,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,\nbackground row_1 vr_1 wall_orange:20,background row_1 vr_2 wall_orange:21,background row_1 vr_3 wall_orange:22,background row_1 vr_4 wall_orange:23,background row_1 vr_5 wall_orange:24,background row_2 vr_1 wall_orange:25,background row_2 vr_2 wall_orange:26,background row_2 vr_3 wall_orange:27,background row_2 vr_4 wall_orange:28,background row_2 vr_5 wall_orange:29,background row_3 vr_1 wall_white:30,background row_3 vr_2 wall_white:31,background row_3 vr_3 wall_white:32,background row_3 vr_4 wall_white:33,background row_3 vr_5 wall_white:34,background row_4 vr_1 wall_blue:35,background row_4 vr_2 wall_blue:36,background row_4 vr_3 wall_blue:37,background row_4 vr_4 wall_blue:38,background row_4 vr_5 wall_blue:39,background row_5 vr_1 wall_blue:40,background row_5 vr_2 wall_blue:41,background row_5 vr_3 wall_blue:42,background row_5 vr_4 wall_blue:43,background row_5 vr_5 wall_blue:44,\n",1,"1627891749225.5503"] ], [ - "Oh no I accidentally swallowed myself!", - ["title Oh no I accidentally swallowed myself!\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nverbose_logging\n\nbackground_color brown \n\n========\nOBJECTS\n========\n\nu\nblack\n\np\norange\n\no\nwhite\n\ni\nblue\n\ny \ndarkred\n\nt \nlightblue\n\nBackground\nbrown\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\np1\ngray \n.....\n.....\n..0..\n.....\n.....\n\np2\ngray \n.....\n.....\n..0..\n.....\n.....\n\np3\ngray \n.....\n.....\n..0..\n.....\n.....\n\np4\ngray \n.....\n.....\n..0..\n.....\n.....\n\np5\ngray \n.....\n.....\n..0..\n.....\n.....\n\n\n(\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.)\n\npixel_black \nblack\n\npixel_orange \norange\n\npixel_white \nwhite\n\npixel_blue \nblue\n\n\nwall_black \nDARKRED\n\nwall_orange \nDARKRED\n\nwall_white \nDARKRED\n\nwall_blue \nDARKRED\n\nrow_1 a\nTRANSPARENT\n\nrow_2 s\nTRANSPARENT\n\nrow_3 d\nTRANSPARENT\n\nrow_4 f\nTRANSPARENT\n\nrow_5 g\nTRANSPARENT\n\ndead\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\ngoal\nTRANSPARENT\n\ngoal_u\ngray\n00000\n.....\n.....\n.....\n.....\n\ngoal_d\ngray\n.....\n.....\n.....\n.....\n00000\n\ngoal_l\ngray\n0....\n0....\n0....\n0....\n0....\n\n\ngoal_r\ngray\n....0\n....0\n....0\n....0\n....0\n\n\nquasigrenze\nTRANSPARENT\n\noldplayer\ntransparent\n\nnewplayer\ntransparent\n\ndomove\nTRANSPARENT\n\ndontmove\nTRANSPARENT\n\ntemp\nTRANSPARENT\n\nm_up\nTRANSPARENT\n\nm_down\nTRANSPARENT\n\nm_left\nTRANSPARENT\n\nm_right\nTRANSPARENT\n\n=======\nLEGEND\n=======\n\n. = Background\n1 = p1\n2 = p2\n3 = p3\n4 = p4\n5 = p5\n\n, = Target\n\nb = goal \nn = goal and row_1\n\npixel = pixel_black or pixel_white or pixel_orange or pixel_blue\n\nplayer = p1 or p2 or p3 or p4 or p5\n\nq = pixel_black and p1\nw = pixel_orange and p2\ne = pixel_white and p3\nr = pixel_blue and p4\n; = pixel_blue and p5\n\nrow = row_1 or row_2 or row_3 or row_4 or row_5\nwall = wall_black or wall_orange or wall_white or wall_blue\nobstacle = wall\n\nm = m_up or m_down or m_left or m_right\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nWall\npixel\nPlayer\nrow\ngoal\ndead\nquasigrenze\noldplayer\nnewplayer\ndomove\ndontmove\ntemp\nm\ngoal_u\ngoal_d\ngoal_l\ngoal_r\np, o, i, u, y, t\n\n======\nRULES\n======\n\n\nup [ goal | no goal ] -> [ goal goal_u | ]\ndown [ goal | no goal ] -> [ goal goal_d | ]\nleft [ goal | no goal ] -> [ goal goal_l | ]\nright [ goal | no goal ] -> [ goal goal_r | ]\n\n[dead]->cancel\n\n[ > player pixel ] -> [ > player > pixel ]\n\n[ > player | > player | > player | > player | > player ] -> [ oldplayer > player | > player | > player | > player | > player ] \n\n[ > player | > player | > player | > player | > player | ] -> [ > player | > player | > player | > player | > player | newplayer] \n\n[ moving player ] -> [ player ]\n\n[ > pixel | no wall ] -> [ stationary pixel | ]\n[ > pixel | stationary pixel ] -> [ stationary pixel | pixel ]\n\n\n\n\nlate [ oldplayer pixel ] [ newplayer pixel ] -> cancel\n\n\nlate [ oldplayer pixel ] [ newplayer ]-> [ oldplayer pixel ] [ ]\n\n\nlate [ player | newplayer no player ] -> [ | player newplayer]\nlate [ player | no player | ... | newplayer ] -> [ | player | ... | newplayer ]\n\nlate [ oldplayer ] -> [ ]\nlate [ newplayer ] -> [ ]\n\nlate [ temp ] -> [ ]\nlate [ domove ] -> [ ]\nlate [wall]->[]\n\nlate right [ pixel_black 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_black 1 | 1 | 1 | 1 | 1 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_black 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_black 1 | 1 | 1 | 1 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_black 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_black 1 | 1 | 1 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_black 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_black 1 | 1 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_black 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_black 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_1 ]\nlate right [ pixel_black 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_black 2 | 2 | 2 | 2 | 2 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_black 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_black 2 | 2 | 2 | 2 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_black 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_black 2 | 2 | 2 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_black 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_black 2 | 2 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_black 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_black 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_2 ]\nlate right [ pixel_black 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_black 3 | 3 | 3 | 3 | 3 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_black 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_black 3 | 3 | 3 | 3 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_black 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_black 3 | 3 | 3 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_black 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_black 3 | 3 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_black 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_black 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_3 ]\nlate right [ pixel_black 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_black 4 | 4 | 4 | 4 | 4 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_black 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_black 4 | 4 | 4 | 4 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_black 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_black 4 | 4 | 4 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_black 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_black 4 | 4 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_black 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_black 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_4 ]\nlate right [ pixel_black 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_black 5 | 5 | 5 | 5 | 5 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_black 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_black 5 | 5 | 5 | 5 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_black 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_black 5 | 5 | 5 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_black 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_black 5 | 5 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_black 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_black 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_5 ]\n\n\nlate [pixel no wall]->[pixel dead]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nall pixel on goal\n\n=======\nLEVELS\n=======\n\n\nMessage Level 1 of 1\n\n(11112222233333444445555)\n........................a\n........................a\n........................a\n........................a\n........................a\n..........1qqq1.........s\n..........2www2.........s\n..........eeeee.........s\n..........4rrr4.........s\n..........5;5;5.........s\n........................d\n........................d\n........................d\n........................d\n........................d\n........................f\n..........bbbb..........f\n..........bbbb..........f\n..........bbbb..........f\n..........bbbb..........f\n........................g\n........................g\n........................g\n........................g\n........................g\n(11112222233333444445555)\n\n\ntttttttt\ntttttttt\ntttttttt\ntttttttt\nttuuuttt\nttpppttt\n\n\nttttttttttttt\nttttttttttttt\ntttttttuuuttt\ntttttttpppttt\nttttttooooott\ntttttttiipttt\ntttttttitittt\ntiiiiippppptt\ntiiiiippppptt\ntiiiiippppptt\ntiiiiippppptt\ntiiiiippppptt\n\ntttttttttttttttttttttttttti\nttttttttttttttttttttttttttp\ntttttttttttoooootuuuttttttp\ntttttttttttoooootpppttttttp\ntttttttttttooooooooootttttp\ntttttttttttoooootiipttttttp\ntttttttttttoooootitittttttp\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiiiiiiip\ntuuuuupppppoooooiiiiiiiiiip\ntuuuuupppppoooooiiiiiiiiiip\ntuuuuupppppoooooiiiiiiiiiip\ntuuuuupppppoooooiiiiiiiiiip\ntttttttttttooooottttttttttp\ntttttttttttooooottttttttttp\ntttttttttttooooottttttttttp\ntttttttttttooooottttttttttp\ntttttttttttooooottttttttttp\nooooooooooooooooooooooooooo\n\n\n\n", [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 0, 3, 0, 0, 0, 0, 3, 3, 0, 1, 2, 1, 0, 0, 3, 0, 1, 1], "background wall_black:0,0,0,0,0,background wall_orange:1,1,1,1,1,background wall_white:2,2,2,2,2,background wall_blue:3,3,3,3,3,2,2,2,2,2,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,2,2,2,2,2,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,2,2,2,2,2,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,2,2,2,2,2,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,background p1 pixel_black wall_blue:4,background p2 pixel_orange wall_blue:5,background p3 pixel_white wall_blue:6,background p4 pixel_blue wall_blue:7,background p5 pixel_white wall_blue:8,2,2,2,2,2,\nbackground:9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,background p1 wall_white:10,background p2 pixel_black wall_white:11,background p3 pixel_orange wall_white:12,background p4 pixel_white wall_white:13,background p5 pixel_blue wall_white:14,3,3,3,3,3,\n9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,background p1 pixel_black wall_white:15,background p2 pixel_orange wall_white:16,background p3 pixel_white wall_white:17,background p4 pixel_blue wall_white:18,14,3,3,3,3,3,\n9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,10,background p2 wall_white:19,background p3 wall_white:20,background p4 wall_white:21,14,3,3,3,3,3,\n9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,10,19,20,21,background p5 pixel_white wall_white:22,3,3,3,3,3,\n9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,background goal goal_l goal_u wall_blue:23,background goal goal_l wall_blue:24,24,background goal goal_d goal_l wall_blue:25,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,background goal goal_u wall_blue:26,background goal wall_blue:27,27,background goal goal_d wall_blue:28,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,26,27,27,28,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,background goal goal_r goal_u wall_blue:29,background goal goal_r wall_blue:30,30,background goal goal_d goal_r wall_blue:31,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,2,2,2,2,2,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,2,2,2,2,2,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,2,2,2,2,2,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,2,2,2,2,2,\nbackground row_1:32,32,32,32,32,background row_2:33,33,33,33,33,background row_3:34,34,34,34,34,background row_4:35,35,35,35,35,background row_5 wall_white:36,36,36,36,36,\n", 1, "1627891767692.0078"] + "Oh no I accidentally swallowed myself!", + ["title Oh no I accidentally swallowed myself!\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nverbose_logging\n\nbackground_color brown \n\n========\nOBJECTS\n========\n\nu\nblack\n\np\norange\n\no\nwhite\n\ni\nblue\n\ny \ndarkred\n\nt \nlightblue\n\nBackground\nbrown\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\np1\ngray \n.....\n.....\n..0..\n.....\n.....\n\np2\ngray \n.....\n.....\n..0..\n.....\n.....\n\np3\ngray \n.....\n.....\n..0..\n.....\n.....\n\np4\ngray \n.....\n.....\n..0..\n.....\n.....\n\np5\ngray \n.....\n.....\n..0..\n.....\n.....\n\n\n(\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.)\n\npixel_black \nblack\n\npixel_orange \norange\n\npixel_white \nwhite\n\npixel_blue \nblue\n\n\nwall_black \nDARKRED\n\nwall_orange \nDARKRED\n\nwall_white \nDARKRED\n\nwall_blue \nDARKRED\n\nrow_1 a\nTRANSPARENT\n\nrow_2 s\nTRANSPARENT\n\nrow_3 d\nTRANSPARENT\n\nrow_4 f\nTRANSPARENT\n\nrow_5 g\nTRANSPARENT\n\ndead\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\ngoal\nTRANSPARENT\n\ngoal_u\ngray\n00000\n.....\n.....\n.....\n.....\n\ngoal_d\ngray\n.....\n.....\n.....\n.....\n00000\n\ngoal_l\ngray\n0....\n0....\n0....\n0....\n0....\n\n\ngoal_r\ngray\n....0\n....0\n....0\n....0\n....0\n\n\nquasigrenze\nTRANSPARENT\n\noldplayer\ntransparent\n\nnewplayer\ntransparent\n\ndomove\nTRANSPARENT\n\ndontmove\nTRANSPARENT\n\ntemp\nTRANSPARENT\n\nm_up\nTRANSPARENT\n\nm_down\nTRANSPARENT\n\nm_left\nTRANSPARENT\n\nm_right\nTRANSPARENT\n\n=======\nLEGEND\n=======\n\n. = Background\n1 = p1\n2 = p2\n3 = p3\n4 = p4\n5 = p5\n\n, = Target\n\nb = goal \nn = goal and row_1\n\npixel = pixel_black or pixel_white or pixel_orange or pixel_blue\n\nplayer = p1 or p2 or p3 or p4 or p5\n\nq = pixel_black and p1\nw = pixel_orange and p2\ne = pixel_white and p3\nr = pixel_blue and p4\n; = pixel_blue and p5\n\nrow = row_1 or row_2 or row_3 or row_4 or row_5\nwall = wall_black or wall_orange or wall_white or wall_blue\nobstacle = wall\n\nm = m_up or m_down or m_left or m_right\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nWall\npixel\nPlayer\nrow\ngoal\ndead\nquasigrenze\noldplayer\nnewplayer\ndomove\ndontmove\ntemp\nm\ngoal_u\ngoal_d\ngoal_l\ngoal_r\np, o, i, u, y, t\n\n======\nRULES\n======\n\n\nup [ goal | no goal ] -> [ goal goal_u | ]\ndown [ goal | no goal ] -> [ goal goal_d | ]\nleft [ goal | no goal ] -> [ goal goal_l | ]\nright [ goal | no goal ] -> [ goal goal_r | ]\n\n[dead]->cancel\n\n[ > player pixel ] -> [ > player > pixel ]\n\n[ > player | > player | > player | > player | > player ] -> [ oldplayer > player | > player | > player | > player | > player ] \n\n[ > player | > player | > player | > player | > player | ] -> [ > player | > player | > player | > player | > player | newplayer] \n\n[ moving player ] -> [ player ]\n\n[ > pixel | no wall ] -> [ stationary pixel | ]\n[ > pixel | stationary pixel ] -> [ stationary pixel | pixel ]\n\n\n\n\nlate [ oldplayer pixel ] [ newplayer pixel ] -> cancel\n\n\nlate [ oldplayer pixel ] [ newplayer ]-> [ oldplayer pixel ] [ ]\n\n\nlate [ player | newplayer no player ] -> [ | player newplayer]\nlate [ player | no player | ... | newplayer ] -> [ | player | ... | newplayer ]\n\nlate [ oldplayer ] -> [ ]\nlate [ newplayer ] -> [ ]\n\nlate [ temp ] -> [ ]\nlate [ domove ] -> [ ]\nlate [wall]->[]\n\nlate right [ pixel_black 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_black 1 | 1 | 1 | 1 | 1 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_orange 1 | 1 | 1 | 1 | 1 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_white 1 | 1 | 1 | 1 | 1 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ pixel_blue 1 | 1 | 1 | 1 | 1 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_black 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_black 1 | 1 | 1 | 1 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_orange 1 | 1 | 1 | 1 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_white 1 | 1 | 1 | 1 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | pixel_blue 1 | 1 | 1 | 1 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_black 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_black 1 | 1 | 1 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_orange 1 | 1 | 1 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_white 1 | 1 | 1 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | pixel_blue 1 | 1 | 1 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_black 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_black 1 | 1 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_orange 1 | 1 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_white 1 | 1 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | pixel_blue 1 | 1 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_black 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_black 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_orange 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_white 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_1 ]\nlate right [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_1 ] -> [ 1 | 1 | 1 | 1 | pixel_blue 1 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_1 ]\nlate right [ pixel_black 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_black 2 | 2 | 2 | 2 | 2 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_orange 2 | 2 | 2 | 2 | 2 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_white 2 | 2 | 2 | 2 | 2 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ pixel_blue 2 | 2 | 2 | 2 | 2 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_black 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_black 2 | 2 | 2 | 2 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_orange 2 | 2 | 2 | 2 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_white 2 | 2 | 2 | 2 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | pixel_blue 2 | 2 | 2 | 2 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_black 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_black 2 | 2 | 2 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_orange 2 | 2 | 2 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_white 2 | 2 | 2 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | pixel_blue 2 | 2 | 2 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_black 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_black 2 | 2 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_orange 2 | 2 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_white 2 | 2 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | pixel_blue 2 | 2 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_black 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_black 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_orange 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_white 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_2 ]\nlate right [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_2 ] -> [ 2 | 2 | 2 | 2 | pixel_blue 2 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_2 ]\nlate right [ pixel_black 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_black 3 | 3 | 3 | 3 | 3 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_orange 3 | 3 | 3 | 3 | 3 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_white 3 | 3 | 3 | 3 | 3 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ pixel_blue 3 | 3 | 3 | 3 | 3 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_black 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_black 3 | 3 | 3 | 3 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_orange 3 | 3 | 3 | 3 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_white 3 | 3 | 3 | 3 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | pixel_blue 3 | 3 | 3 | 3 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_black 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_black 3 | 3 | 3 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_orange 3 | 3 | 3 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_white 3 | 3 | 3 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | pixel_blue 3 | 3 | 3 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_black 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_black 3 | 3 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_orange 3 | 3 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_white 3 | 3 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | pixel_blue 3 | 3 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_black 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_black 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_orange 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_white 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_3 ]\nlate right [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_3 ] -> [ 3 | 3 | 3 | 3 | pixel_blue 3 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_3 ]\nlate right [ pixel_black 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_black 4 | 4 | 4 | 4 | 4 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_orange 4 | 4 | 4 | 4 | 4 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_white 4 | 4 | 4 | 4 | 4 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ pixel_blue 4 | 4 | 4 | 4 | 4 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_black 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_black 4 | 4 | 4 | 4 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_orange 4 | 4 | 4 | 4 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_white 4 | 4 | 4 | 4 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | pixel_blue 4 | 4 | 4 | 4 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_black 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_black 4 | 4 | 4 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_orange 4 | 4 | 4 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_white 4 | 4 | 4 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | pixel_blue 4 | 4 | 4 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_black 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_black 4 | 4 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_orange 4 | 4 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_white 4 | 4 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | pixel_blue 4 | 4 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_black 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_black 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_orange 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_white 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_4 ]\nlate right [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_4 ] -> [ 4 | 4 | 4 | 4 | pixel_blue 4 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_4 ]\nlate right [ pixel_black 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_black 5 | 5 | 5 | 5 | 5 ] [ wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_orange 5 | 5 | 5 | 5 | 5 ] [ wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_white 5 | 5 | 5 | 5 | 5 ] [ wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ pixel_blue 5 | 5 | 5 | 5 | 5 ] [ wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_black 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_black 5 | 5 | 5 | 5 ] [ | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_orange 5 | 5 | 5 | 5 ] [ | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_white 5 | 5 | 5 | 5 ] [ | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | pixel_blue 5 | 5 | 5 | 5 ] [ | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_black 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_black 5 | 5 | 5 ] [ | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_orange 5 | 5 | 5 ] [ | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_white 5 | 5 | 5 ] [ | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | pixel_blue 5 | 5 | 5 ] [ | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_black 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_black 5 | 5 ] [ | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_orange 5 | 5 ] [ | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_white 5 | 5 ] [ | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | pixel_blue 5 | 5 ] [ | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue | | | | | row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_black 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_black 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_black | wall_black | wall_black | wall_black | wall_black row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_orange 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_orange | wall_orange | wall_orange | wall_orange | wall_orange row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_white 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_white | wall_white | wall_white | wall_white | wall_white row_5 ]\nlate right [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | | | | | row_5 ] -> [ 5 | 5 | 5 | 5 | pixel_blue 5 ] [ | | | | | | | | | | | | | | | | | | | | wall_blue | wall_blue | wall_blue | wall_blue | wall_blue row_5 ]\n\n\nlate [pixel no wall]->[pixel dead]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nall pixel on goal\n\n=======\nLEVELS\n=======\n\n\nMessage Level 1 of 1\n\n(11112222233333444445555)\n........................a\n........................a\n........................a\n........................a\n........................a\n..........1qqq1.........s\n..........2www2.........s\n..........eeeee.........s\n..........4rrr4.........s\n..........5;5;5.........s\n........................d\n........................d\n........................d\n........................d\n........................d\n........................f\n..........bbbb..........f\n..........bbbb..........f\n..........bbbb..........f\n..........bbbb..........f\n........................g\n........................g\n........................g\n........................g\n........................g\n(11112222233333444445555)\n\n\ntttttttt\ntttttttt\ntttttttt\ntttttttt\nttuuuttt\nttpppttt\n\n\nttttttttttttt\nttttttttttttt\ntttttttuuuttt\ntttttttpppttt\nttttttooooott\ntttttttiipttt\ntttttttitittt\ntiiiiippppptt\ntiiiiippppptt\ntiiiiippppptt\ntiiiiippppptt\ntiiiiippppptt\n\ntttttttttttttttttttttttttti\nttttttttttttttttttttttttttp\ntttttttttttoooootuuuttttttp\ntttttttttttoooootpppttttttp\ntttttttttttooooooooootttttp\ntttttttttttoooootiipttttttp\ntttttttttttoooootitittttttp\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppooooopppppiiiiip\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiitttttp\ntuuuuupppppoooooiiiiiiiiiip\ntuuuuupppppoooooiiiiiiiiiip\ntuuuuupppppoooooiiiiiiiiiip\ntuuuuupppppoooooiiiiiiiiiip\ntuuuuupppppoooooiiiiiiiiiip\ntttttttttttooooottttttttttp\ntttttttttttooooottttttttttp\ntttttttttttooooottttttttttp\ntttttttttttooooottttttttttp\ntttttttttttooooottttttttttp\nooooooooooooooooooooooooooo\n\n\n\n",[2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,1,1,1,1,1,0,3,0,0,0,0,3,3,0,1,2,1,0,0,3,0,1,1],"background wall_black:0,0,0,0,0,background wall_orange:1,1,1,1,1,background wall_white:2,2,2,2,2,background wall_blue:3,3,3,3,3,2,2,2,2,2,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,2,2,2,2,2,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,2,2,2,2,2,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,2,2,2,2,2,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,background p1 pixel_black wall_blue:4,background p2 pixel_orange wall_blue:5,background p3 pixel_white wall_blue:6,background p4 pixel_blue wall_blue:7,background p5 pixel_white wall_blue:8,2,2,2,2,2,\nbackground:9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,background p1 wall_white:10,background p2 pixel_black wall_white:11,background p3 pixel_orange wall_white:12,background p4 pixel_white wall_white:13,background p5 pixel_blue wall_white:14,3,3,3,3,3,\n9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,background p1 pixel_black wall_white:15,background p2 pixel_orange wall_white:16,background p3 pixel_white wall_white:17,background p4 pixel_blue wall_white:18,14,3,3,3,3,3,\n9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,10,background p2 wall_white:19,background p3 wall_white:20,background p4 wall_white:21,14,3,3,3,3,3,\n9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,10,19,20,21,background p5 pixel_white wall_white:22,3,3,3,3,3,\n9,9,9,9,9,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,background goal goal_l goal_u wall_blue:23,background goal goal_l wall_blue:24,24,background goal goal_d goal_l wall_blue:25,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,background goal goal_u wall_blue:26,background goal wall_blue:27,27,background goal goal_d wall_blue:28,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,26,27,27,28,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,background goal goal_r goal_u wall_blue:29,background goal goal_r wall_blue:30,30,background goal goal_d goal_r wall_blue:31,3,3,3,3,3,\n0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,3,3,3,3,3,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,2,2,2,2,2,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,2,2,2,2,2,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,2,2,2,2,2,\n9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,2,2,2,2,2,\nbackground row_1:32,32,32,32,32,background row_2:33,33,33,33,33,background row_3:34,34,34,34,34,background row_4:35,35,35,35,35,background row_5 wall_white:36,36,36,36,36,\n",1,"1627891767692.0078"] ], [ - "A cliche for bedtime", - ["title A cliche for bedtime\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nbackground_color darkblue\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\n\nTarget\npink\n.....\n.....\n..0..\n.....\n.....\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\ngray\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nCrate\n#ff00ff\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n.................\n.@.*.o@o.@*@.@@@.\n.@.*.@.@.o*o.@...\n.@**.@*@.o*o.@@@.\n.@.*.@.@.o*o.@...\n.@o@.@o@..@..@@@.\np................\n\n\n\n\n\n", [0, 0, 3, 3, 3, 0, 1, 0, 0, 0, 3, 3, 0, 3, 3, 3, 2, 2, 1, 0, 3, 3, 3, 3], "background:0,0,0,0,0,0,0,0,background target:1,background crate target:2,2,1,2,0,0,background crate:3,3,\n3,3,1,0,3,0,0,3,3,2,0,0,0,0,0,0,0,\n0,0,1,2,2,2,2,0,0,1,0,3,0,1,0,0,background player target:4,\n2,2,2,2,0,0,3,0,0,0,0,0,0,2,1,1,1,\n0,0,0,3,3,3,3,2,0,0,2,1,1,1,0,0,0,\n0,0,0,0,0,0,0,2,2,2,2,2,0,0,2,0,2,\n0,2,0,0,2,0,2,0,2,0,0,0,0,0,0,0,0,\n", 1, "1627891782371.159"] + "A cliche for bedtime", + ["title A cliche for bedtime\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nbackground_color darkblue\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\n\nTarget\npink\n.....\n.....\n..0..\n.....\n.....\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\ngray\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nCrate\n#ff00ff\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n.................\n.@.*.o@o.@*@.@@@.\n.@.*.@.@.o*o.@...\n.@**.@*@.o*o.@@@.\n.@.*.@.@.o*o.@...\n.@o@.@o@..@..@@@.\np................\n\n\n\n\n\n",[0,0,3,3,3,0,1,0,0,0,3,3,0,3,3,3,2,2,1,0,3,3,3,3],"background:0,0,0,0,0,0,0,0,background target:1,background crate target:2,2,1,2,0,0,background crate:3,3,\n3,3,1,0,3,0,0,3,3,2,0,0,0,0,0,0,0,\n0,0,1,2,2,2,2,0,0,1,0,3,0,1,0,0,background player target:4,\n2,2,2,2,0,0,3,0,0,0,0,0,0,2,1,1,1,\n0,0,0,3,3,3,3,2,0,0,2,1,1,1,0,0,0,\n0,0,0,0,0,0,0,2,2,2,2,2,0,0,2,0,2,\n0,2,0,0,2,0,2,0,2,0,0,0,0,0,0,0,0,\n",1,"1627891782371.159"] ], [ - "no heroes necessary", - ["title no heroes necessary\nauthor Stephen Lavelle\nhomepage www.increpare.com\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\nblack\n\nPlayer\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n, = wall\n# = 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[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate | crate ] -> [ > crate | > crate ]\n\n[ > player | wall ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 5\n\n,,,,,,,,,,,,,,,,,,,,\n,..................,\n,..................,\n,..................,\n,..................,\n,......####........,\n,......#.O#........,\n,......#..###......,\n,......#@...#......,\n,......#..*.#......,\n,......#..###......,\n,......####........,\n,..................,\n,..................,\n,..................,\n,..................,\n,,,,,,,,,,,,,,,,,,,,\n\nmessage Level 2 von 5\n\n,,,,,,,,,,,,,,,,,,,,,,,,\n,......................,\n,......................,\n,......................,\n,......................,\n,......................,\n,.....######.#####.....,\n,.....#....###...#.....,\n,.....#.**.....#.#.....,\n,.....#.*.#ooo...#.....,\n,.....#...########.....,\n,.....#####............,\n,......................,\n,......................,\n,......................,\n,......................,\n,......................,\n,,,,,,,,,,,,,,,,,,,,,,,,\n\nmessage Level 3 von 5\n\n,,,,,,,,,,,,,,,,,,,,\n,..................,\n,..................,\n,..................,\n,..................,\n,..................,\n,....#########.....,\n,....#.....#.#.....,\n,....#.#*..#.#.....,\n,....#.**....#.....,\n,....#.......#.....,\n,....#.O.O.O.#.....,\n,....#.......#.....,\n,....#########.....,\n,..................,\n,..................,\n,..................,\n,..................,\n,..................,\n,,,,,,,,,,,,,,,,,,,,\n\nmessage Level 4 von 5\n\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,............#####..........,\n,............#o..#..........,\n,............#o#.#..........,\n,......#######o#.#..........,\n,......#.*.*.*...#..........,\n,......#.#.#.#.###..........,\n,......#.......#............,\n,......#########............,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n\n\n\nmessage Level 5 von 5\n\n\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,.......#############.......,\n,.......#...#...#...#.......,\n,.......#...#***#...#.......,\n,.......#...#...#...#.......,\n,.......##.###.###.##.......,\n,.......#...#...#...#.......,\n,.......#.o...o...o.#.......,\n,.......#...#...#...#.......,\n,.......#############.......,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n\nmessage You really are strong, independent levels - you don't need a hero to solve your problems for you.\n\n", [0, 0, 1, 1, 1, 1, 2, 2, 3, 3, 3, 3, 3, 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,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,background player:2,\n2,2,2,2,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,2,1,1,background crate:3,2,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,1,1,1,1,1,\n1,1,0,0,1,1,1,1,1,1,1,1,1,2,1,1,3,2,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,2,1,2,1,2,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,\n1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,2,2,2,background player target:4,background target:5,\n4,1,2,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,\n1,1,1,1,1,1,0,0,1,1,1,1,1,1,2,1,2,2,1,2,2,2,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,2,1,1,1,3,2,1,1,1,1,1,1,1,1,1,1,0,0,1,1,\n1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,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", 7, "1627891794816.7026"] + "no heroes necessary", + ["title no heroes necessary\nauthor Stephen Lavelle\nhomepage www.increpare.com\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\nblack\n\nPlayer\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n, = wall\n# = 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[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate | crate ] -> [ > crate | > crate ]\n\n[ > player | wall ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 5\n\n,,,,,,,,,,,,,,,,,,,,\n,..................,\n,..................,\n,..................,\n,..................,\n,......####........,\n,......#.O#........,\n,......#..###......,\n,......#@...#......,\n,......#..*.#......,\n,......#..###......,\n,......####........,\n,..................,\n,..................,\n,..................,\n,..................,\n,,,,,,,,,,,,,,,,,,,,\n\nmessage Level 2 von 5\n\n,,,,,,,,,,,,,,,,,,,,,,,,\n,......................,\n,......................,\n,......................,\n,......................,\n,......................,\n,.....######.#####.....,\n,.....#....###...#.....,\n,.....#.**.....#.#.....,\n,.....#.*.#ooo...#.....,\n,.....#...########.....,\n,.....#####............,\n,......................,\n,......................,\n,......................,\n,......................,\n,......................,\n,,,,,,,,,,,,,,,,,,,,,,,,\n\nmessage Level 3 von 5\n\n,,,,,,,,,,,,,,,,,,,,\n,..................,\n,..................,\n,..................,\n,..................,\n,..................,\n,....#########.....,\n,....#.....#.#.....,\n,....#.#*..#.#.....,\n,....#.**....#.....,\n,....#.......#.....,\n,....#.O.O.O.#.....,\n,....#.......#.....,\n,....#########.....,\n,..................,\n,..................,\n,..................,\n,..................,\n,..................,\n,,,,,,,,,,,,,,,,,,,,\n\nmessage Level 4 von 5\n\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,............#####..........,\n,............#o..#..........,\n,............#o#.#..........,\n,......#######o#.#..........,\n,......#.*.*.*...#..........,\n,......#.#.#.#.###..........,\n,......#.......#............,\n,......#########............,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n\n\n\nmessage Level 5 von 5\n\n\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,.......#############.......,\n,.......#...#...#...#.......,\n,.......#...#***#...#.......,\n,.......#...#...#...#.......,\n,.......##.###.###.##.......,\n,.......#...#...#...#.......,\n,.......#.o...o...o.#.......,\n,.......#...#...#...#.......,\n,.......#############.......,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,...........................,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n\nmessage You really are strong, independent levels - you don't need a hero to solve your problems for you.\n\n",[0,0,1,1,1,1,2,2,3,3,3,3,3,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,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,background player:2,\n2,2,2,2,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,2,1,1,background crate:3,2,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,1,1,1,1,1,\n1,1,0,0,1,1,1,1,1,1,1,1,1,2,1,1,3,2,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,2,1,2,1,2,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,\n1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,2,2,2,background player target:4,background target:5,\n4,1,2,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,\n1,1,1,1,1,1,0,0,1,1,1,1,1,1,2,1,2,2,1,2,2,2,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,2,1,1,1,3,2,1,1,1,1,1,1,1,1,1,1,0,0,1,1,\n1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,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",7,"1627891794816.7026"] ], [ - "Sokogoban", - ["title Sokogoban\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nbackground_color DARKGREEN\ntext_color yellow\n\n========\nOBJECTS\n========\n\nBackground\nlightbrown DARKBROWN\n00000\n00000\n00100\n00000\n00000\n\nbg_up\nDARKBROWN\n..0..\n..0..\n.....\n.....\n.....\nbg_down\nDARKBROWN\n.....\n.....\n.....\n..0..\n..0..\n\nbg_left\nDARKBROWN\n.....\n.....\n00...\n.....\n.....\n\nbg_right\nDARKBROWN\n.....\n.....\n...00\n.....\n.....\n\n\nowall\nbrown lightbrown\n00000\n00000\n00000\n00000\n00000\n\nawall\nlightbrown\n\n\n\nPlayer\nBlack yellow lightgreen green blue\n.004.\n.111.\n12221\n13331\n.222.\n\nwhite\nwhite TRANSPARENT TRANSPARENT\n.....\n.000.\n00000\n10001\n.121.\n\nblack\nblack TRANSPARENT TRANSPARENT\n.....\n.000.\n00000\n10001\n.121.\n\nlid_white_0 \ndarkbrown black\n.....\n.000.\n00000\n.000.\n.....\n\nlid_white_1 \ndarkbrown black\n.....\n.000.\n01000\n.000.\n.....\n\nlid_white_2\ndarkbrown black\n.....\n.000.\n01010\n.000.\n.....\n\nlid_white_3\ndarkbrown black\n.....\n.000.\n01110\n.000.\n.....\n\n\nlid_white_4\ndarkbrown black\n.....\n.010.\n01110\n.000.\n.....\n\n\nlid_black_0\ndarkbrown white\n.....\n.000.\n00000\n.000.\n.....\n\n\nlid_black_1\ndarkbrown white\n.....\n.000.\n01000\n.000.\n.....\n\n\nlid_black_2\ndarkbrown white\n.....\n.000.\n01010\n.000.\n.....\n\n\nlid_black_3\ndarkbrown white\n.....\n.000.\n01110\n.000.\n.....\n\n\nlid_black_4\ndarkbrown white\n.....\n.010.\n01110\n.000.\n.....\n\nbowl_white \ndarkbrown white\n.....\n.000.\n01110\n00000\n.000.\n\nbowl_black \ndarkbrown black\n.....\n.000.\n01110\n00000\n.000.\n\nfill_whitesave\nTRANSPARENT\n\nfill_blacksave\nTRANSPARENT\n\n\nb_4\nblack\n...0.\n..00.\n.0.0.\n00000\n...0.\n\n\nb_3\nblack\n.000.\n...0.\n.000.\n...0.\n.000.\n\n\n\nb_2\nblack\n.000.\n...0.\n.000.\n.0...\n.000.\n\n\nb_1\nblack\n..0..\n.00..\n..0..\n..0..\n.000.\n\n\nb_0\nblack\n.000.\n.0.0.\n.0.0.\n.0.0.\n.000.\n\n\nw_4\nblack\n...0.\n..00.\n.0.0.\n00000\n...0.\n\n\nw_3\nblack\n.000.\n...0.\n.000.\n...0.\n.000.\n\n\n\nw_2\nblack\n.000.\n...0.\n.000.\n.0...\n.000.\n\n\nw_1\nblack\n..0..\n.00..\n..0..\n..0..\n.000.\n\n\nw_0\nblack\n.000.\n.0.0.\n.0.0.\n.0.0.\n.000.\n\n=======\nLEGEND\n=======\n\n. = Background\n# = aWall\nP = Player\n* = white\n@ = black\n, = owall\n\nv = bowl_white and owall\nb = bowl_black and owall\n\nn = lid_white_0 and owall\nm = lid_black_0 and owall\n\n\nj = lid_white_1 and owall\nk = lid_black_1 and owall\n\n\nu = lid_white_2 and owall\ni = lid_black_2 and owall\n\n\n7 = lid_white_3 and owall\n8 = lid_black_3 and owall\n\n\n\n9 = lid_white_4 and owall\n0 = lid_black_4 and owall\n\nbgs = bg_up or bg_down or bg_left or bg_right\nwall = awall or owall\nstone = white or black\n\nfill = fill_whitesave or fill_blacksave\n\nlid_white = lid_white_0 or lid_white_1 or lid_white_2 or lid_white_3 or lid_white_4 \nlid_black = lid_black_0 or lid_black_1 or lid_black_2 or lid_black_3 or lid_black_4\n\nw_nums = w_0 or w_1 or w_2 or w_3 or w_4\nb_nums = b_0 or b_1 or b_2 or b_3 or b_4\n\nnums = b_nums or w_nums\n\n=======\nSOUNDS\n=======\n\nstone MOVE 36772507\nblack destroy 87391700\nwhite destroy 59027500\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbg_up\nbg_down\nbg_left\nbg_right\nPlayer, Wall, stone\nbowl_white,bowl_black, lid_white,lid_black\nfill_whitesave\nfill_blacksave\nnums\n\n======\nRULES\n======\n\n[bgs]->[]\n\ndown [ no wall | no wall ] -> [ bg_down | bg_up ]\nright [ no wall | no wall ] -> [ bg_right | bg_left ]\n\n[ > Player | stone ] -> [ > Player | > stone ]\n\nlate [ no stone no wall ] -> [ fill_whitesave fill_blacksave ]\n\nlate [ fill_whitesave | no black no wall ] -> [ fill_whitesave | fill_whitesave ]\n\nlate [ fill_blacksave | no white no wall ] -> [ fill_blacksave | fill_blacksave ]\n\nlate [ black no fill_blacksave ] [ lid_white_3 ] -> [ ] [ lid_white_4 ] win\n\nlate [ black no fill_blacksave ] [ lid_white_2 ] -> [ ] [ lid_white_3 ] \n+ late [ black no fill_blacksave ] [ lid_white_1 ] -> [ ] [ lid_white_2 ]\n+ late [ black no fill_blacksave ] [ lid_white_0 ] -> [ ] [ lid_white_1 ]\n\nlate [ black no fill_blacksave ] -> [ ]\n\n\nlate [ white no fill_whitesave ] [ lid_black_3 ] -> [ ] [ lid_black_4 ] \nlate [ white no fill_whitesave ] [ lid_black_2 ] -> [ ] [ lid_black_3 ] \n+ late [ white no fill_whitesave ] [ lid_black_1 ] -> [ ] [ lid_black_2 ]\n+ late [ white no fill_whitesave ] [ lid_black_0 ] -> [ ] [ lid_black_1 ]\n\nlate [ white no fill_whitesave ] -> [ ]\n\n\nlate [ fill ] -> []\n\n\nlate [ lid_black_4 ] [ lid_white_4 ] [ player ] -> [ lid_black_4 ] [ lid_white_4 ] [ ] message It's a draw!\nlate [ lid_black_4 ] [ player ] -> [ lid_black_3 ] [ ] message Oh no you lost :(\n\nlate [nums] -> []\nlate up [lid_white_0|] -> [lid_white_0|w_4]\nlate up [lid_white_1|] -> [lid_white_1|w_3]\nlate up [lid_white_2|] -> [lid_white_2|w_2]\nlate up [lid_white_3|] -> [lid_white_3|w_1]\nlate up [lid_white_4|] -> [lid_white_4|w_0]\n\n(\nlate down [lid_black_0|] -> [lid_black_0|b_4]\nlate down [lid_black_1|] -> [lid_black_1|b_3]\nlate down [lid_black_2|] -> [lid_black_2|b_2]\nlate down [lid_black_3|] -> [lid_black_3|b_1]\nlate down [lid_black_4|] -> [lid_black_4|b_0]\n)\n==============\nWINCONDITIONS\n==============\n\nno black\n\n=======\nLEVELS\n=======\n\nmessage Surround enemy stones with yours to capture them. \n\nmessage Level 1 of 3 : Capture one final black tile to win!\n\nb,,,,,\ni....,\n,.,p.,\n,.@*.,\n,..*.,\n,....7\n,,,,,v\n\nmessage Level 2 of 3 : Capture three black tiles to win!\n\nb,,,,,,,,\nk,.....,,\n,@.@@@.@,\n,@.....@,\n,@.***.@,\n,@..p..@j\n,,,,,,,,v\n\nmessage Level 3 of 3 : Capture four black tiles\n\nb,,,,,,,,\nm.......,\n,.......,\n,..*@@.*,\n,.*@*...,\n,..@....,\n,.....p.,\n,.......n\n,,,,,,,,v\n\n\nmessage You are a true Sokogoban master!\n", [0, 0, 2, 1, 3, 0, 1, 0, 1, 1, 1, 0, 3, 0, 3, 3, 2, 1, 2, 2, 0, 0, 3, 3, 2, 2, 3, 3, 2, 2, 2, 1, 1, 1, 0], "background bowl_black owall:0,background lid_black_1 owall:1,background owall:2,2,2,2,2,2,2,\nbackground bg_down bg_right black:3,background bg_down bg_right bg_up black:4,4,background bg_right bg_up black:5,2,2,background bg_down bg_right:6,background bg_down bg_left bg_right bg_up:7,7,\nbackground bg_down bg_left bg_right bg_up white:8,background bg_left bg_right bg_up:9,2,2,background bg_down bg_left bg_right:10,7,background bg_down bg_left bg_right bg_up black:11,background bg_down bg_left bg_right bg_up player:12,9,\n2,2,10,11,8,7,9,2,2,\n10,7,11,8,9,2,2,background bg_down bg_left:13,7,\n7,7,9,2,2,2,background bg_down bg_left black:14,background bg_down bg_left bg_up black:15,15,\nbackground bg_left bg_up black:16,2,2,2,2,2,background owall w_3:17,background lid_white_1 owall:18,background bowl_white owall:19,\n", 4, "1627891805914.7593"] + "Sokogoban", + ["title Sokogoban\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nbackground_color DARKGREEN\ntext_color yellow\n\n========\nOBJECTS\n========\n\nBackground\nlightbrown DARKBROWN\n00000\n00000\n00100\n00000\n00000\n\nbg_up\nDARKBROWN\n..0..\n..0..\n.....\n.....\n.....\nbg_down\nDARKBROWN\n.....\n.....\n.....\n..0..\n..0..\n\nbg_left\nDARKBROWN\n.....\n.....\n00...\n.....\n.....\n\nbg_right\nDARKBROWN\n.....\n.....\n...00\n.....\n.....\n\n\nowall\nbrown lightbrown\n00000\n00000\n00000\n00000\n00000\n\nawall\nlightbrown\n\n\n\nPlayer\nBlack yellow lightgreen green blue\n.004.\n.111.\n12221\n13331\n.222.\n\nwhite\nwhite TRANSPARENT TRANSPARENT\n.....\n.000.\n00000\n10001\n.121.\n\nblack\nblack TRANSPARENT TRANSPARENT\n.....\n.000.\n00000\n10001\n.121.\n\nlid_white_0 \ndarkbrown black\n.....\n.000.\n00000\n.000.\n.....\n\nlid_white_1 \ndarkbrown black\n.....\n.000.\n01000\n.000.\n.....\n\nlid_white_2\ndarkbrown black\n.....\n.000.\n01010\n.000.\n.....\n\nlid_white_3\ndarkbrown black\n.....\n.000.\n01110\n.000.\n.....\n\n\nlid_white_4\ndarkbrown black\n.....\n.010.\n01110\n.000.\n.....\n\n\nlid_black_0\ndarkbrown white\n.....\n.000.\n00000\n.000.\n.....\n\n\nlid_black_1\ndarkbrown white\n.....\n.000.\n01000\n.000.\n.....\n\n\nlid_black_2\ndarkbrown white\n.....\n.000.\n01010\n.000.\n.....\n\n\nlid_black_3\ndarkbrown white\n.....\n.000.\n01110\n.000.\n.....\n\n\nlid_black_4\ndarkbrown white\n.....\n.010.\n01110\n.000.\n.....\n\nbowl_white \ndarkbrown white\n.....\n.000.\n01110\n00000\n.000.\n\nbowl_black \ndarkbrown black\n.....\n.000.\n01110\n00000\n.000.\n\nfill_whitesave\nTRANSPARENT\n\nfill_blacksave\nTRANSPARENT\n\n\nb_4\nblack\n...0.\n..00.\n.0.0.\n00000\n...0.\n\n\nb_3\nblack\n.000.\n...0.\n.000.\n...0.\n.000.\n\n\n\nb_2\nblack\n.000.\n...0.\n.000.\n.0...\n.000.\n\n\nb_1\nblack\n..0..\n.00..\n..0..\n..0..\n.000.\n\n\nb_0\nblack\n.000.\n.0.0.\n.0.0.\n.0.0.\n.000.\n\n\nw_4\nblack\n...0.\n..00.\n.0.0.\n00000\n...0.\n\n\nw_3\nblack\n.000.\n...0.\n.000.\n...0.\n.000.\n\n\n\nw_2\nblack\n.000.\n...0.\n.000.\n.0...\n.000.\n\n\nw_1\nblack\n..0..\n.00..\n..0..\n..0..\n.000.\n\n\nw_0\nblack\n.000.\n.0.0.\n.0.0.\n.0.0.\n.000.\n\n=======\nLEGEND\n=======\n\n. = Background\n# = aWall\nP = Player\n* = white\n@ = black\n, = owall\n\nv = bowl_white and owall\nb = bowl_black and owall\n\nn = lid_white_0 and owall\nm = lid_black_0 and owall\n\n\nj = lid_white_1 and owall\nk = lid_black_1 and owall\n\n\nu = lid_white_2 and owall\ni = lid_black_2 and owall\n\n\n7 = lid_white_3 and owall\n8 = lid_black_3 and owall\n\n\n\n9 = lid_white_4 and owall\n0 = lid_black_4 and owall\n\nbgs = bg_up or bg_down or bg_left or bg_right\nwall = awall or owall\nstone = white or black\n\nfill = fill_whitesave or fill_blacksave\n\nlid_white = lid_white_0 or lid_white_1 or lid_white_2 or lid_white_3 or lid_white_4 \nlid_black = lid_black_0 or lid_black_1 or lid_black_2 or lid_black_3 or lid_black_4\n\nw_nums = w_0 or w_1 or w_2 or w_3 or w_4\nb_nums = b_0 or b_1 or b_2 or b_3 or b_4\n\nnums = b_nums or w_nums\n\n=======\nSOUNDS\n=======\n\nstone MOVE 36772507\nblack destroy 87391700\nwhite destroy 59027500\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbg_up\nbg_down\nbg_left\nbg_right\nPlayer, Wall, stone\nbowl_white,bowl_black, lid_white,lid_black\nfill_whitesave\nfill_blacksave\nnums\n\n======\nRULES\n======\n\n[bgs]->[]\n\ndown [ no wall | no wall ] -> [ bg_down | bg_up ]\nright [ no wall | no wall ] -> [ bg_right | bg_left ]\n\n[ > Player | stone ] -> [ > Player | > stone ]\n\nlate [ no stone no wall ] -> [ fill_whitesave fill_blacksave ]\n\nlate [ fill_whitesave | no black no wall ] -> [ fill_whitesave | fill_whitesave ]\n\nlate [ fill_blacksave | no white no wall ] -> [ fill_blacksave | fill_blacksave ]\n\nlate [ black no fill_blacksave ] [ lid_white_3 ] -> [ ] [ lid_white_4 ] win\n\nlate [ black no fill_blacksave ] [ lid_white_2 ] -> [ ] [ lid_white_3 ] \n+ late [ black no fill_blacksave ] [ lid_white_1 ] -> [ ] [ lid_white_2 ]\n+ late [ black no fill_blacksave ] [ lid_white_0 ] -> [ ] [ lid_white_1 ]\n\nlate [ black no fill_blacksave ] -> [ ]\n\n\nlate [ white no fill_whitesave ] [ lid_black_3 ] -> [ ] [ lid_black_4 ] \nlate [ white no fill_whitesave ] [ lid_black_2 ] -> [ ] [ lid_black_3 ] \n+ late [ white no fill_whitesave ] [ lid_black_1 ] -> [ ] [ lid_black_2 ]\n+ late [ white no fill_whitesave ] [ lid_black_0 ] -> [ ] [ lid_black_1 ]\n\nlate [ white no fill_whitesave ] -> [ ]\n\n\nlate [ fill ] -> []\n\n\nlate [ lid_black_4 ] [ lid_white_4 ] [ player ] -> [ lid_black_4 ] [ lid_white_4 ] [ ] message It's a draw!\nlate [ lid_black_4 ] [ player ] -> [ lid_black_3 ] [ ] message Oh no you lost :(\n\nlate [nums] -> []\nlate up [lid_white_0|] -> [lid_white_0|w_4]\nlate up [lid_white_1|] -> [lid_white_1|w_3]\nlate up [lid_white_2|] -> [lid_white_2|w_2]\nlate up [lid_white_3|] -> [lid_white_3|w_1]\nlate up [lid_white_4|] -> [lid_white_4|w_0]\n\n(\nlate down [lid_black_0|] -> [lid_black_0|b_4]\nlate down [lid_black_1|] -> [lid_black_1|b_3]\nlate down [lid_black_2|] -> [lid_black_2|b_2]\nlate down [lid_black_3|] -> [lid_black_3|b_1]\nlate down [lid_black_4|] -> [lid_black_4|b_0]\n)\n==============\nWINCONDITIONS\n==============\n\nno black\n\n=======\nLEVELS\n=======\n\nmessage Surround enemy stones with yours to capture them. \n\nmessage Level 1 of 3 : Capture one final black tile to win!\n\nb,,,,,\ni....,\n,.,p.,\n,.@*.,\n,..*.,\n,....7\n,,,,,v\n\nmessage Level 2 of 3 : Capture three black tiles to win!\n\nb,,,,,,,,\nk,.....,,\n,@.@@@.@,\n,@.....@,\n,@.***.@,\n,@..p..@j\n,,,,,,,,v\n\nmessage Level 3 of 3 : Capture four black tiles\n\nb,,,,,,,,\nm.......,\n,.......,\n,..*@@.*,\n,.*@*...,\n,..@....,\n,.....p.,\n,.......n\n,,,,,,,,v\n\n\nmessage You are a true Sokogoban master!\n",[0,0,2,1,3,0,1,0,1,1,1,0,3,0,3,3,2,1,2,2,0,0,3,3,2,2,3,3,2,2,2,1,1,1,0],"background bowl_black owall:0,background lid_black_1 owall:1,background owall:2,2,2,2,2,2,2,\nbackground bg_down bg_right black:3,background bg_down bg_right bg_up black:4,4,background bg_right bg_up black:5,2,2,background bg_down bg_right:6,background bg_down bg_left bg_right bg_up:7,7,\nbackground bg_down bg_left bg_right bg_up white:8,background bg_left bg_right bg_up:9,2,2,background bg_down bg_left bg_right:10,7,background bg_down bg_left bg_right bg_up black:11,background bg_down bg_left bg_right bg_up player:12,9,\n2,2,10,11,8,7,9,2,2,\n10,7,11,8,9,2,2,background bg_down bg_left:13,7,\n7,7,9,2,2,2,background bg_down bg_left black:14,background bg_down bg_left bg_up black:15,15,\nbackground bg_left bg_up black:16,2,2,2,2,2,background owall w_3:17,background lid_white_1 owall:18,background bowl_white owall:19,\n",4,"1627891805914.7593"] ], [ - "SHY SNAKE", - ["title SHY SNAKE\nauthor Daniel Freer and increpare\nhomepage www.puzzlescript.net\nnorepeat_action\nrun_rules_on_level_start\n\nbackground_color #524c67 \ntext_color #8fff70\n\n\nnoaction\n\n========\nOBJECTS\n========\n\n\n\nSprite_R_LB\n#5b6e6d #ddff7d #8fff70 #73ce86 #383d41 \n.0000\n02222\n23043\n33443\n33333\n\nSprite_R_LF\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n.....\n000..\n1110.\n22234\n22234\n\nSprite_L_RF\n#5b6e6d #8fff70 #ddff7d #73ce86 \n.....\n..000\n.0111\n01333\n01333\n\nSprite_L_RB\n#5b6e6d #8fff70 #73ce86 #383d41 #689887 \n0000.\n11110\n20324\n23322\n22222\n\nSprite_U_LF\n#5b6e6d #ddff7d #8fff70 #73ce86 \n...00\n..012\n.0233\n.0233\n.0233\n\nSprite_U_RF\n#5b6e6d #8fff70 #73ce86 #383d41 #689887 \n00...\n123..\n2243.\n2243.\n2243.\n\nSprite_R_RB\n#73ce86 #5b6e6d #383d41 #689887 \n00000\n00120\n10220\n23333\n.2222\n\nSprite_R_RF\n#73ce86 #689887 #383d41 #5b6e6d \n00012\n00012\n1112.\n222..\n.....\n\nSprite_D_RB\n#5b6e6d #8fff70 #73ce86 #ddff7d #383d41 \n.0122\n03222\n01042\n01442\n01222\n\nSprite_D_LB\n#73ce86 #689887 #383d41 #5b6e6d \n0012.\n00012\n03212\n02212\n00012\n\nSprite_L_LF\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n01222\n02222\n.4333\n..444\n.....\n\nSprite_L_LB\n#73ce86 #5b6e6d #383d41 #689887 \n00000\n01200\n02201\n33332\n2222.\n\nSprite_U_LB\n#5b6e6d #8fff70 #73ce86 #575d67 #383d41 #689887 \n01222\n01342\n01442\n01222\n.0522\n\nSprite_U_RB\n#73ce86 #689887 #383d41 #575d67 #5b6e6d \n00012\n03212\n02212\n00012\n0042.\n\nSprite_D_RF\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n.0122\n.0122\n.0122\n..023\n...44\n\nSprite_D_LF\n#73ce86 #689887 #383d41 #5b6e6d \n0012.\n0012.\n0012.\n132..\n22...\n\nBODY\nTRANSPARENT\n\nEND_R_R\n#5b6e6d #8fff70 #73ce86 #383d41 \n.....\n.....\n00...\n1100.\n22123\n\nEND_L_L\n#5b6e6d #8fff70 #ddff7d #73ce86 \n.....\n.....\n...00\n.0011\n02133\n\nEND_D_L\n#5b6e6d #8fff70 #73ce86 #383d41 \n..012\n..012\n...01\n...02\n....3\n\nEND_D_R\n#73ce86 #689887 #383d41 #5b6e6d \n012..\n012..\n12...\n32...\n2....\n\n\n\n\nEND_R_L\n#73ce86 #689887 #5b6e6d #383d41 \n00123\n1133.\n33...\n.....\n.....\n\nEND_L_R\n#5b6e6d #73ce86 #689887 #383d41 \n01211\n.3322\n...33\n.....\n.....\n\nEND_U_L\n#5b6e6d #ddff7d #8fff70 #73ce86 \n....0\n...01\n...02\n..023\n..023\n\nEND_U_R\n#5b6e6d #73ce86 #383d41 #689887 \n0....\n12...\n32...\n132..\n132..\n\n\n\n\n\nPlayer\ngreen\n.....\n.....\n..0..\n.....\n.....\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\ntemp\ntransparent\n\n\n\ncon_u\nwhite\n..0..\n..0..\n.....\n.....\n.....\n\ncon_d\nwhite\n.....\n.....\n.....\n..0..\n..0..\n\ncon_l\nwhite\n.....\n.....\n00...\n.....\n.....\n\ncon_r\nwhite\n.....\n.....\n...00\n.....\n.....\n\nend_t\nTRANSPARENT\n\n\nbody_dr\n#5b6e6d #ddff7d #8fff70 #73ce86 \n.....\n...00\n..012\n.0133\n.0233\n\nbody_dlr\n#5b6e6d #8fff70 #73ce86 \n00000\n11111\n22222\n22222\n22222\n\nbody_dl\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n.....\n00...\n110..\n2234.\n2234.\n\nbody_udr\n#5b6e6d #8fff70 #73ce86 \n01222\n01222\n01222\n01222\n01222\n\nbody_ur\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n.0122\n.0122\n..033\n...44\n.....\n\nbody_ulr\n#73ce86 #689887 #383d41 \n00000\n00000\n00000\n11111\n22222\n\nbody_ul\n#73ce86 #689887 #383d41 \n0012.\n0012.\n112..\n22...\n.....\n\n\n\nbody_udl\n#73ce86 #689887 #383d41 \n00012\n00012\n00012\n00012\n00012\n\nbody_udlr\n#73ce86\n\nbody_inner_ul\n#73ce86 #689887 #383d41 \n00000\n00000\n00000\n00001\n00012\n\nbody_inner_ur\n#73ce86 #689887 #383d41 #8fff70 #5b6e6d \n00000\n00000\n00000\n10000\n43000\n\nbody_inner_dl\n#73ce86 #689887 #383d41 #5b6e6d #8fff70 \n00012\n00004\n00000\n00000\n00000\n\nbody_inner_dr\n#5b6e6d #8fff70 #73ce86 \n01222\n12222\n22222\n22222\n22222\n\n\n\n\n\n\n\n\n\nbackground\n#896359 #6b4949 #896359 #6b4949 #b77e63\n01110\n11100\n10110\n11112\n00200\n\n\n\nbackground_light\nLIGHTGRAY\n\nbackground_dark\ngray\n\non_background\nDARKGRAY\n\nbackground_border_up\n#b77e63 #896359 #6b4949 \n01111\n.....\n.....\n.....\n.....\n\n\nbackground_border_left\n#b77e63 #896359 #6b4949 \n0....\n1....\n1....\n1....\n1....\n\nbackground_border_right\n#896359 #6b4949 #b77e63 \n....0\n....0\n....0\n....2\n....0\n\nbackground_border_down\n#b77e63 #6b4949 #896359 \n.....\n.....\n.....\n.....\n22022\n\n\n\n\n\nWall\n#524c67 #524c67 \n00100\n00100\n11111\n00100\n00100\n\n\n\nWall_light\n#868998 #575d67\n00100\n00100\n11111\n00100\n00100\n\n\nwall_border_b\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n00100\n11111\n12222\n13333\n44444\n\nwall_border_r\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n01234\n01234\n11234\n01234\n01114\n\nwall_border_l\n#383d41 #575d67 #868998 #fffee9 #e2e0e8 \n01112\n03412\n03411\n03412\n03412\n\nwall_border_t\n#383d41 #fffee9 #575d67 #e2e0e8 #868998 \n00000\n11112\n33332\n22222\n44244\n\n\nwall_bright_u\ntransparent\n\nwall_bright_d\ntransparent\n\nwall_bright_l\ntransparent\n\nwall_bright_r\ntransparent\n\n\nwall_end_u\ntransparent\n\nwall_end_d\ntransparent\n\nwall_end_l\ntransparent\n\nwall_end_r\ntransparent\n\n\n\nSprite_0_0\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n00100\n01111\n11222\n01233\n01114\n\nSprite_1_0\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n00100\n11111\n12222\n13333\n44444\n\nSprite_2_0\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 #fffee9 \n00100\n11110\n12311\n13310\n45310\n\nSprite_3_0\n#383d41 #fffee9 #575d67 #e2e0e8 #868998 \n00000\n01112\n01332\n01322\n01324\n\nSprite_4_0\n#383d41 #fffee9 #e2e0e8 #bbbbce #575d67 #868998 \n00000\n11120\n22320\n44320\n54440\n\nSprite_5_0\n#524c67 #383d41 \n00100\n00100\n11111\n00100\n00100\n\nSprite_6_0\n#383d41 #fffee9 #e2e0e8 #bbbbce \n00000\n01120\n01320\n01320\n01220\n\nSprite_0_1\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n01234\n01234\n11234\n01234\n01114\n\nSprite_2_1\n#383d41 #575d67 #868998 #fffee9 #e2e0e8 \n01112\n03412\n03411\n03412\n03412\n\nSprite_3_1\n#383d41 #575d67 #868998 #fffee9 #e2e0e8 #bbbbce \n01112\n03411\n03455\n04444\n00000\n\nSprite_4_1\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n01234\n11234\n12234\n13334\n44444\n\nSprite_5_1\n#383d41 #fffee9 #e2e0e8 #bbbbce \n00000\n01120\n01320\n02220\n00000\n\nSprite_6_1\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n01110\n02230\n02430\n02430\n02330\n\nSprite_0_2\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n01234\n01231\n11331\n01111\n00100\n\nSprite_1_2\n#383d41 #fffee9 #575d67 #e2e0e8 #868998 \n00000\n11112\n33332\n22222\n44244\n\nSprite_2_2\n#383d41 #575d67 #868998 #fffee9 #e2e0e8 \n01112\n33412\n44411\n11112\n22122\n\nSprite_3_2\n#383d41 #fffee9 #575d67 #bbbbce #e2e0e8 \n00000\n01112\n01342\n04442\n00000\n\nSprite_4_2\n#383d41 #fffee9 #575d67 #bbbbce #e2e0e8 \n00000\n11112\n13342\n44442\n00000\n\nSprite_5_2\n#383d41 #fffee9 #e2e0e8 #bbbbce \n00000\n11120\n13320\n22220\n00000\n\nSprite_6_2\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n01110\n02230\n02430\n03330\n00000\n\n\nsprite_DL\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n.....\n.....\n44...\n334..\n134..\n\n\nsprite_DR\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n.....\n.....\n...44\n..433\n..431\n\nsprite_UL\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n134..\n334..\n44...\n.....\n.....\n\nsprite_UR\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n..431\n..433\n...44\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\nt = background\n\nobstacle = wall or body or player\n\nend = END_R_R or END_R_L or END_L_L or END_L_R or END_U_L or END_U_R or END_D_L or END_D_R\n\nhead = SPRITE_u_LB or SPRITE_u_LF or SPRITE_u_RB or SPRITE_u_RF or SPRITE_d_LB or SPRITE_d_LF or SPRITE_d_RB or SPRITE_d_RF or SPRITE_l_LB or SPRITE_l_LF or SPRITE_l_RB or SPRITE_l_RF or SPRITE_R_LB or SPRITE_R_LF or SPRITE_R_RB or SPRITE_R_RF \n\nbody_dec = body_ul or body_ur or body_dl or body_dr or body_dlr or body_udr or body_ulr or body_udl or body_udlr\n\nbody_inner = body_inner_ul or body_inner_ur or body_inner_dl or body_inner_dr\n\ncosmetics = head or end or body_dec or body_inner\n\ndir = con_u or con_d or con_l or con_r\ndir_h = con_l or con_r\ndir_v = con_u or con_d\nwall_border = wall_border_b or wall_border_t or wall_border_l or wall_border_r\n\nbackground_border = background_border_up or background_border_down or background_border_left or background_border_right\n\ntile= background_light or background_dark\n\n=======\nSOUNDS\n=======\n\nendlevel 29774302\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbackground_border_up\nbackground_border_left\nbackground_border_right\nbackground_border_down\nbackground_dark,background_light\non_background\nPlayer, Wall, Crate, body\ntemp\ncon_u\ncon_d\ncon_l\ncon_r\nend_t\nbody_dec\nbody_inner\nhead\nend\nwall_light\nwall_border_t\nwall_border_b\nwall_border_l\nwall_border_r\n\nwall_bright_u\nwall_bright_d\nwall_bright_l\nwall_bright_r\n\nwall_end_u\nwall_end_d\nwall_end_l\nwall_end_r\n\nSprite_0_0, sprite_1_0, sprite_2_0, sprite_3_0, sprite_4_0, sprite_5_0, sprite_6_0, Sprite_0_1, Sprite_2_1, Sprite_3_1, Sprite_4_1, Sprite_5_1, Sprite_6_1, Sprite_0_2, Sprite_1_2, Sprite_2_2, Sprite_3_2, Sprite_4_2, Sprite_5_2, Sprite_6_2, sprite_ul, sprite_ur, sprite_dl, sprite_dr\n\n======\nRULES\n======\n\n[wall | no wall] -> [wall Wall_light | ]\n\nup [wall | no wall] -> [wall | background_border_down ]\ndown [wall | no wall] -> [wall | background_border_up ]\nleft [wall | no wall] -> [wall | background_border_right ]\nright [wall | no wall] -> [wall | background_border_left ]\n\nup [ wall | no wall ] -> [wall wall_end_u | ]\ndown [ wall | no wall ] -> [wall wall_end_d | ]\nleft [ wall | no wall ] -> [wall wall_end_l | ]\nright [ wall | no wall ] -> [wall wall_end_r | ]\n\nup [ wall | Wall_light ] -> [ wall wall_bright_u | Wall_light ]\ndown [ wall | Wall_light ] -> [ wall wall_bright_d | Wall_light ]\nleft [ wall | Wall_light ] -> [ wall wall_bright_l | Wall_light ]\nright [ wall | Wall_light ] -> [ wall wall_bright_r | Wall_light ]\n\n[ wall_end_u ] -> [ wall_end_u sprite_1_2 ]\n[ wall_end_d ] -> [ wall_end_d sprite_1_0 ]\n[ wall_end_l ] -> [ wall_end_l sprite_2_1 ]\n[ wall_end_r ] -> [ wall_end_r sprite_0_1 ]\n\n\n[ wall_end_u wall_end_r ] -> [ wall_end_u wall_end_r sprite_4_0 ]\n[ wall_end_u wall_end_d ] -> [ wall_end_u wall_end_d sprite_4_2 ]\n[ wall_end_u wall_end_l ] -> [ wall_end_u wall_end_l sprite_3_0 ]\n\n[ wall_end_r wall_end_d ] -> [ wall_end_r wall_end_d sprite_4_1 ]\n[ wall_end_r wall_end_l ] -> [ wall_end_r wall_end_l sprite_6_1 ]\n\n[ wall_end_d wall_end_l ] -> [ wall_end_d wall_end_l sprite_3_1 ]\n\n\n[ wall_end_d wall_end_l wall_end_r ] -> [ wall_end_d wall_end_l wall_end_r sprite_6_2]\n[ wall_end_u wall_end_l wall_end_r ] -> [ wall_end_u wall_end_l wall_end_r sprite_6_0]\n[ wall_end_u wall_end_d wall_end_r ] -> [ wall_end_u wall_end_d wall_end_r sprite_5_2]\n[ wall_end_u wall_end_d wall_end_l ] -> [ wall_end_u wall_end_d wall_end_l sprite_3_2]\n\n[ no wall_light wall_bright_u wall_bright_r ] -> [ sprite_ur wall_bright_u wall_bright_r ]\n[ no wall_light wall_bright_u wall_bright_l ] -> [ sprite_ul wall_bright_u wall_bright_l ]\n[ no wall_light wall_bright_d wall_bright_r ] -> [ sprite_dr wall_bright_d wall_bright_r ]\n[ no wall_light wall_bright_d wall_bright_l ] -> [ sprite_dl wall_bright_d wall_bright_l ]\n\n\nup [ sprite_ur | no wall_end_r ] -> [ | ]\nright [ sprite_ur | no wall_end_u ] -> [ | ]\n\n\nup [ sprite_ul | no wall_end_l ] -> [ | ]\nleft [ sprite_ul | no wall_end_u ] -> [ | ]\n\ndown [ sprite_dr | no wall_end_r ] -> [ | ]\nright [ sprite_dr | no wall_end_d ] -> [ | ]\n\ndown [ sprite_dl | no wall_end_l ] -> [ | ]\nleft [ sprite_dl | no wall_end_d ] -> [ | ]\n\n\n[ wall_end_u wall_end_d wall_end_l wall_end_r ] -> [ wall_end_u wall_end_d wall_end_l wall_end_r sprite_5_1 ]\n\n[ > player | > player | obstacle ] -> cancel\n\nup [ > player | > player | no obstacle] -> [ body con_u | con_d con_u player | player ]\ndown [ > player | > player | no obstacle] -> [ body con_d | con_u con_d player | player ]\nleft [ > player | > player | no obstacle] -> [ body con_l | con_r con_l player | player ]\nright [ > player | > player | no obstacle] -> [ body con_r | con_l con_r player | player ]\n\n\nlate [temp]->[]\nlate [ no player no wall no obstacle ]->[temp]\n\n\n\nlate right [player | player ] -> [ player con_r | player con_l ]\nlate down [player | player ] -> [ player con_d | player con_u ]\n\n\nlate [ player background con_u con_r no tile] -> [ player background con_u con_r background_light]\nlate [ background_light | no tile ] -> [ background_light | background_dark ]\n+ late [background_dark | no tile ] -> [ background_dark | background_light ]\n\nlate [cosmetics]->[]\n\n\nlate [ body con_u con_l ] -> [ body con_u con_l body_ul ]\nlate [ body con_u con_r ] -> [ body con_u con_r body_ur ]\nlate [ body con_d con_l ] -> [ body con_d con_l body_dl ]\nlate [ body con_d con_r ] -> [ body con_d con_r body_dr ]\n\nlate [ body con_u con_d con_l ] -> [ body con_u con_d con_l body_udl ]\nlate [ body con_u con_d con_r ] -> [ body con_u con_d con_r body_udr ]\nlate [ body con_u con_l con_r ] -> [ body con_u con_l con_r body_ulr ]\nlate [ body con_d con_l con_r ] -> [ body con_d con_l con_r body_dlr ]\n\nlate [ body con_u con_d con_l con_r ] -> [ body con_u con_d con_l con_r body_udlr]\n\n(\nlate [ player con_d con_r ] -> [ player con_d con_r sprite_u_lf ]\nlate [ player con_u con_r ] -> [ player con_u con_r sprite_u_lb ]\nlate [ player con_d con_l ] -> [ player con_d con_l sprite_u_rf ]\nlate [ player con_u con_l ] -> [ player con_u con_l sprite_u_rb ]\n)\n\n\nlate [ player con_d con_r ] -> [ player con_d con_r body_dr ]\nlate [ player con_u con_r ] -> [ player con_u con_r body_ur ]\nlate [ player con_d con_l ] -> [ player con_d con_l body_dl ]\nlate [ player con_u con_l ] -> [ player con_u con_l body_ul ]\n\n\nlate down [ player con_r no con_l | player con_r con_d ] -> [ player con_R no body_dec | player con_r con_d no body_dec]\nlate down [ player con_l no con_r | player con_l con_d ] -> [ player con_l no body_dec | player con_l con_d no body_dec]\n\nlate right [ player con_d no con_u | player con_d con_r ] -> [ player con_d no body_dec | player con_d con_r no body_dec ]\nlate right [ player con_u no con_d | player con_u con_r ] -> [ player con_u no body_dec | player con_u con_r no body_dec ]\n\nlate left [ player con_d no con_u | player con_d con_l ] -> [ player con_d no body_dec | player con_d con_l no body_dec]\nlate left [ player con_u no con_d | player con_u con_l ] -> [ player con_u no body_dec | player con_u con_l no body_dec]\n\nlate up [ player con_l no con_r | player con_l con_u ] -> [ player con_l no body_dec | player con_l con_u no body_dec ]\nlate up [ player con_r no con_l | player con_r con_u ] -> [ player con_r no body_dec | player con_r con_u no body_dec ]\n\n\n\n\n\nlate down [ player con_r no con_l | player con_r con_d ] -> [ player con_R sprite_u_lf | player con_r con_d sprite_u_lb]\nlate down [ player con_l no con_r | player con_l con_d ] -> [ player con_l sprite_u_rf | player con_l con_d sprite_u_rb]\n\nlate right [ player con_d no con_u | player con_d con_r ] -> [ player con_d sprite_l_rf | player con_d con_r sprite_l_rb ]\nlate right [ player con_u no con_d | player con_u con_r ] -> [ player con_u sprite_l_lf | player con_u con_r sprite_l_lb ]\n\nlate left [ player con_d no con_u | player con_d con_l ] -> [ player con_d sprite_r_lf | player con_d con_l sprite_r_lb]\nlate left [ player con_u no con_d | player con_u con_l ] -> [ player con_u sprite_r_rf | player con_u con_l sprite_r_rb]\n\nlate up [ player con_l no con_r | player con_l con_u ] -> [ player con_l sprite_d_lf | player con_l con_u sprite_d_lb ]\nlate up [ player con_r no con_l | player con_r con_u ] -> [ player con_r sprite_d_rf | player con_r con_u sprite_d_rb ]\n\n\nlate right [ no con_d con_r | body_udlr ] -> [ con_r | body_inner_ur ]\nlate left [ no con_d con_l | body_udlr ] -> [ con_l | body_inner_ul ]\n\n\nlate right [ no con_u con_r | body_udlr ] -> [ con_r | body_inner_dr ]\nlate left [ no con_u con_l | body_udlr ] -> [ con_l | body_inner_dl ]\n\n\nlate up [ no con_r con_u | body_udlr ] -> [ con_u | body_inner_ul ]\nlate up [ no con_l con_u | body_udlr ] -> [ con_u | body_inner_ur ]\n\nlate down [ no con_r con_d | body_udlr ] -> [ con_d | body_inner_dl ]\nlate down [ no con_l con_d | body_udlr ] -> [ con_d | body_inner_dr ]\n\n\nlate right [ player con_r con_u con_d con_l ] ->[ player con_r con_u con_d con_l body_udlr ]\n\nlate [ player ] -> [ player on_background]\n\n(\n[ action player ] [ no wall no obstacle ] -> [ action player ] [wall]\n[ action player ] [ body ] -> [action player ] [ ]\n[ action player ]->[player]\n)\n\n==============\nWINCONDITIONS\n==============\nno temp\n\n=======\nLEVELS\n=======\n\n\nmessage 1 of 3 - If you are EVERYWHERE, nobody else can be ANYWHERE.\n\n(easy)\n##########\n#........#\n#........#\n#..##....#\n#........#\n#..pp....#\n#..pp##..#\n#........#\n#........#\n##########\n\nmessage 2 of 3 - Sometimes I just need my own space.\n(simple but ok?)\n\n##########################\n####.......#.........#####\n##.........#.........#####\n#......................###\n#........................#\n#..#....###..#..#..##....#\n#..#....###..#..#..#pp...#\n#..#....###..#..#..#pp...#\n#..###..###...##...##....#\n#........................#\n#........................#\n####.....................#\n####.....................#\n#######................###\n########..............####\n##########################\n\n\n\nmessage Level 3 of 3 - It's a real relief to be alone.\n\n(basically OK)\n##################\n#########.....####\n#########.....####\n#########..#..####\n#..........#..####\n#..........#..####\n#..####..........#\n#................#\n#........#..###..#\n#........#.......#\n#........#.......#\n###pp..#......####\n###pp..#......####\n###....#..##..####\n###...........####\n#.............####\n#........#..######\n#..##....#..######\n#...........######\n#...........######\n##################\n\nmessage Help! Somebody help! I'm stuck! \n(\n(insoluble)\n###################\n#.....#############\n#.....#############\n#.....#############\n#.....#############\n#.....#############\n#........##########\n#........##########\n#........##########\n#...........#######\n#...........#######\n#...........#######\n#..............####\n#..............####\n#pp............####\n#pp............####\n###################\n\n##########\n#..#######\n#....#####\n#....#####\n#....#####\n#....#####\n#......###\n#......pp#\n#......pp#\n##########\n\n\n##########\n#..#######\n#....#####\n#......###\n#........#\n#........#\n#........#\n#......pp#\n#......pp#\n##########\n\n##############################\n#................#############\n#................#############\n#................#############\n#...................##########\n#...................##########\n#...................##########\n#......................#######\n#...............pp.....#######\n#...............pp.....#######\n#.........................####\n#.........................####\n#.........................####\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n\n##############################\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#...........pp...............#\n#...........pp...............#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n################\n#..#############\n#....###########\n#......#########\n#........#######\n#..........#####\n#............###\n#............pp#\n#............pp#\n################\n\n(too easy)\n############\n#.....######\n#.....######\n#.....######\n#.....######\n#......#####\n#..........#\n#..........#\n#..........#\n#..........#\n#pp........#\n#pp........#\n############\n\n\n\n############\n#.....######\n#.....######\n#.....######\n#.....######\n#.....######\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#pp........#\n#pp........#\n############\n\n#################\n#.....###########\n#.....###########\n#.....###########\n#.....###########\n#.....###########\n#..........######\n#..........######\n#..........######\n#..........######\n#..........######\n#...............#\n#...............#\n#...............#\n#........pp.....#\n#........pp.....#\n#################\n\n#############\n#....########\n#....########\n#....########\n#....########\n#....########\n#.......#####\n#.......#####\n#.......#####\n#.......#####\n#.......#####\n#...........#\n#...........#\n#...........#\n#.......pp..#\n#.......pp..#\n#############\n\n\n\n(solvable + boring)\n#############\n#....########\n#....########\n#....########\n#....########\n#....########\n#.......#####\n#.......#####\n#.......#####\n#.......#####\n#.......#####\n#...........#\n#...........#\n#...........#\n#.....pp....#\n#.....pp....#\n#############\n\n(too easy)\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##################.....#######\n##################.....#######\n############........#.....####\n############........#.....####\n############..##......##..####\n############..............####\n############......##......####\n##############..#.......######\n##############..#.......######\n##############.....##...######\n##############..........######\n################pp#....#######\n################pp#..#########\n################.....#########\n################.....#########\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n\n\n\n\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##########.......#############\n#########........#############\n#########pp......#############\n#########pp#.....#############\n#######.....#....#############\n#######..........#############\n#######..#.......#############\n#######...#......#############\n#######..........#############\n##.....#.....#################\n##..........##################\n##..#.......##################\n##...#......##################\n##..........##################\n###.....######################\n##############################\n##############################\n##############################\n\n\n(bit too easy)\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##########.......#############\n#########........#############\n#########pp......#############\n#########pp#.....#############\n#######.....#....#############\n#######..........#############\n#######..#.......#############\n#######...#......#############\n#######..........#############\n##.....#.....#################\n##..........##################\n##..#.......##################\n##...#......##################\n##..........##################\n###.....######################\n##############################\n##############################\n##############################\n\n##############################\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#.........pp.................#\n#.........pp.................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n########################\n###..................###\n###..................###\n##....................##\n##....................##\n#......................#\n#......................#\n#..#..#..#....#..#..#..#\n#..#..#..#....#..#..#..#\n#......................#\n#......................#\n##....................##\n##....................##\n###...........pp.....###\n###...........pp.....###\n########################\n\n##############################\n#######.............##########\n#######.............##########\n######..............##########\n######..............##########\n######..............##########\n######..............##########\n######..............##########\n######.......pp.....##########\n####........#pp#....##########\n####........####....##########\n####................##########\n####................##########\n####................##########\n####................##########\n##############################\n\n(meh ok for level 1?)\n##################\n####.............#\n####.............#\n###..............#\n###..............#\n###..............#\n###..............#\n###..............#\n###.......pp.....#\n#........#pp#....#\n#........####....#\n#................#\n#................#\n#................#\n#................#\n##################\n\n(meh)\n##############################\n######......##################\n######......##################\n####....##........############\n####....##........############\n####..##......##..############\n####..##......##..############\n####......##....pp############\n####......##....pp############\n########....##..##############\n########....##..##############\n########..##....##############\n########..##....##############\n########......################\n########......################\n##############################\n\n\n\n(boring)\n##############################\n##################.....#######\n############..............####\n############........#.....####\n############..##......##..####\n############..##......##..####\n##########........##..pp..####\n########..........##..pp..####\n########....#....#....########\n########..##..........########\n########..##........##########\n########......################\n########......################\n##############################\n\n(boring)\n##############################\n########............##########\n########............##########\n########..##....##..##########\n########..##....##..##########\n########pp..........##########\n########pp..........##########\n##############################\n\n(boring)\n##############################\n##########......##......######\n##########..............######\n##########pp##......##..######\n##########pp##......##..######\n##########..............######\n##########......##......######\n##########......##......######\n##########..............######\n##########..##......##..######\n##########..##......##..######\n##########..............######\n##########......##......######\n##############################\n\n################\n#####.......####\n###...........##\n###....###....##\n###...........##\n###...........##\n###....###....##\n#..............#\n#..............#\n#..###....###..#\n#..............#\n#..............#\n##....####....##\n##............##\n##............##\n##............##\n##............##\n######....######\n######....######\n######..pp######\n######..pp######\n################\n\n############################\n#..........................#\n#..........................#\n#..........................#\n#..........................#\n#....#....###..#..#..##....#\n#....#....###..#pp#..#.....#\n#....#....###..#pp#..#.....#\n#....###..###...##...##....#\n#..........................#\n#..........................#\n#..........................#\n#..........................#\n#..........................#\n############################\n\n############################\n#######.................####\n#######.................####\n####....................####\n##.......................###\n#..........................#\n#..........................#\n#..........................#\n#..........................#\n#....#....###..#..#..##....#\n#....#....###..#pp#..#.....#\n#....#....###..#pp#..#.....#\n#....###..###...##...##....#\n#..........................#\n#........................###\n#......................#####\n#.....................######\n####............############\n####............############\n#######.........############\n############################\n\n(ok!)\n\n\n\n\n##############################.....\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#.........#.....####..#####..####..\n#.........#........#....#....#.....\n#.........#........#....#....#.....\n#.........####..####....#....####..\n#.........#pp#..#..#....#....#.....\n#.........#pp#..#..#....#....#.....\n#.........#..#..#..#....#....####..\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n##############################.....\n\n\n##############################\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#....#####..#..#..#....#.....#\n#....#......#..#..#....#.....#\n#....#......#..#..#....#.....#\n#....#......#..#..#....#.....#\n#....#......#..#..#....#.....#\n#....#####..####..######.....#\n#........#..#pp#.......#.....#\n#........#..#pp#.......#.....#\n#........#..#..#.......#.....#\n#........#..#..#.......#.....#\n#....#####..#..#..######.....#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n###########################\n######.........############\n######.........############\n#...................#######\n#...................#######\n#.........................#\n#.........................#\n#....#####..#..#..#....#..#\n#....#......#..#..#....#..#\n#....#......#..#..#....#..#\n#....#......#pp#..#....#..#\n#....#......#pp#..#....#..#\n#....#####..####..######..#\n#........#..#..#.......#..#\n#........#..#..#.......#..#\n#........#..#..#.......#..#\n#........#..#..#.......#..#\n#....#####..#..#..######..#\n#.........................#\n#........#................#\n#...................#######\n#...................#######\n#..................########\n#..................########\n###########################\n\n\n##############################...\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#.........#####...#....#...#...#.\n#.........#.......#....#...#...#.\n#.........#.......#....#...#...#.\n#.........#.......#....#...#...#.\n#.........#.......#....#...#...#.\n#.........#####...######...#####.\n#...........pp#...#....#.......#.\n#...........pp#...#....#.......#.\n#.............#...#....#.......#.\n#.............#...#....#.......#.\n#.........#####...#....#...#####.\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n##############################...\n\n##############################\n#............................#\n#............................#\n#............................#\n#............................#\n#....pp......................#\n#....pp......................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n##############################\n######.....###################\n#####.......#.....############\n#####...#..........###########\n#####..###.....#...###########\n#####...#.....###..###########\n#####..........#...pp#########\n######.....#.......pp.########\n#####.....###.....#...########\n####.......#.....###..########\n####...#..........#...########\n####..###.....#.......########\n####...#......##.....#########\n####..........################\n#####.....####################\n##############################\n\n\n##############################\n#########.....################\n###............#.....#########\n###........#..........########\n###.......###.....#...########\n###........#.....###..########\n###....#..........#...########\n###...###.....#.......########\n###....#.....###.....#########\n####..........#.....##########\n#####.....#..........#########\n#####....###.....#...#########\n#####.....#pp....##..#########\n#####......pp....#...#########\n#####..#.............#########\n#####...............##########\n#####..............###########\n##############################\n)\n", [3, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 0, 0, 1, 0, 1], "background background_dark wall:0,background background_light wall:1,background background_dark sprite_dr wall wall_bright_d wall_bright_r:2,background background_light sprite_0_1 wall wall_bright_d wall_end_r wall_light:3,background background_dark sprite_0_1 wall wall_bright_d wall_bright_u wall_end_r wall_light:4,background background_light sprite_0_1 wall wall_bright_d wall_bright_u wall_end_r wall_light:5,4,5,4,5,background background_dark sprite_0_1 wall wall_bright_u wall_end_r wall_light:6,background background_light sprite_ur wall wall_bright_r wall_bright_u:7,0,1,0,1,1,2,background background_light sprite_4_1 wall wall_end_d wall_end_r wall_light:8,background background_border_left background_border_up background_dark temp:9,background background_border_left background_light temp:10,background background_border_left background_dark temp:11,10,11,10,11,\nbackground background_border_down background_border_left background_light temp:12,background background_dark sprite_1_2 wall wall_bright_r wall_end_u wall_light:13,background background_light wall wall_bright_u:14,0,1,0,background background_dark wall wall_bright_d:15,background background_light sprite_1_0 wall wall_bright_r wall_end_d wall_light:16,9,background background_light temp:17,background background_dark temp:18,background background_border_right background_light temp:19,background background_border_right background_dark temp:20,19,20,17,background background_border_down background_dark temp:21,background background_light sprite_1_2 wall wall_bright_l wall_bright_r wall_end_u wall_light:22,background background_dark wall wall_bright_r wall_bright_u:23,1,0,1,background background_light sprite_dr wall wall_bright_d wall_bright_r:24,background background_dark sprite_4_1 wall wall_bright_l wall_end_d wall_end_r wall_light:25,background background_border_up background_light temp:26,18,\nbackground background_border_down background_light temp:27,background background_dark sprite_6_0 wall wall_bright_d wall_end_l wall_end_r wall_end_u wall_light:28,background background_light sprite_6_1 wall wall_bright_d wall_bright_u wall_end_l wall_end_r wall_light:29,background background_dark sprite_6_1 wall wall_bright_d wall_bright_u wall_end_l wall_end_r wall_light:30,background background_light sprite_3_1 wall wall_bright_r wall_bright_u wall_end_d wall_end_l wall_light:31,background background_border_up background_dark temp:32,27,background background_dark sprite_4_0 wall wall_bright_d wall_bright_l wall_end_r wall_end_u wall_light:33,background background_light sprite_0_1 wall wall_bright_u wall_end_r wall_light:34,background background_dark sprite_ur wall wall_bright_r wall_bright_u:35,1,0,background background_dark sprite_1_0 wall wall_bright_r wall_end_d wall_light:36,background background_border_left background_border_up background_light temp:37,18,17,18,10,11,12,background background_dark sprite_4_2 wall wall_bright_l wall_bright_r wall_end_d wall_end_u wall_light:38,26,18,10,background background_border_down background_border_left background_dark temp:39,background background_light sprite_1_2 wall wall_bright_r wall_end_u wall_light:40,\nbackground background_dark wall wall_bright_u:41,1,background background_light sprite_1_0 wall wall_bright_l wall_bright_r wall_end_d wall_light:42,32,17,18,17,18,17,21,background background_light sprite_5_2 wall wall_bright_l wall_end_d wall_end_r wall_end_u wall_light:43,32,17,18,27,background background_dark sprite_1_2 wall wall_bright_l wall_bright_r wall_end_u wall_light:44,14,0,background background_dark sprite_1_0 wall wall_bright_l wall_bright_r wall_end_d wall_light:45,26,18,17,18,17,18,17,\n11,17,18,17,21,background background_light sprite_4_0 wall wall_bright_l wall_end_r wall_end_u wall_light:46,35,1,42,32,17,18,17,20,19,20,19,18,17,18,17,39,background background_light sprite_4_0 wall wall_end_r wall_end_u wall_light:47,35,45,26,\n18,17,21,background background_light sprite_3_0 wall wall_bright_d wall_bright_r wall_end_l wall_end_u wall_light:48,background background_dark sprite_2_1 wall wall_bright_d wall_bright_u wall_end_l wall_light:49,background background_light sprite_2_1 wall wall_bright_d wall_bright_u wall_end_l wall_light:50,background background_dark sprite_3_1 wall wall_bright_r wall_bright_u wall_end_d wall_end_l wall_light:51,26,18,17,18,17,39,40,42,32,17,18,27,44,background background_light wall wall_bright_l wall_bright_r wall_bright_u:52,background background_dark wall wall_bright_d wall_bright_l wall_bright_r:53,42,32,17,18,\n17,18,27,44,background background_dark sprite_1_0 wall wall_bright_l wall_end_d wall_light:54,background background_border_right background_border_up background_light temp:55,20,17,21,background background_light sprite_4_0 wall wall_bright_d wall_bright_l wall_end_r wall_end_u wall_light:56,4,5,background background_dark sprite_4_1 wall wall_bright_l wall_bright_u wall_end_d wall_end_r wall_light:57,background background_border_up background_light con_d con_r on_background player sprite_l_rf:58,background background_dark con_r con_u on_background player sprite_l_lf:59,17,18,17,21,22,background background_light sprite_dl wall wall_bright_d wall_bright_l wall_bright_r:60,background background_dark sprite_6_1 wall wall_bright_d wall_end_l wall_end_r wall_light:61,background background_light sprite_6_2 wall wall_bright_u wall_end_d wall_end_l wall_end_r wall_light:62,32,17,11,\n10,11,10,background background_dark con_d con_l con_r on_background player sprite_l_rb:63,background background_light body_udlr con_d con_l con_r con_u on_background player sprite_l_lb:64,background background_dark body body_ur con_r con_u on_background:65,17,18,27,44,36,37,11,17,18,19,20,19,18,background background_light body body_dl con_d con_l on_background:66,background background_dark body body_inner_dl con_d con_l con_r con_u on_background:67,background background_light body body_inner_ur con_d con_l con_r con_u on_background:68,background background_dark body body_udr con_d con_r con_u on_background:69,background background_light body body_ur con_r con_u on_background:70,21,22,\n42,32,17,18,27,28,29,background background_dark sprite_6_2 wall wall_bright_u wall_end_d wall_end_l wall_end_r wall_light:71,55,18,66,background background_dark body body_udl con_d con_l con_u on_background:72,background background_light body body_inner_dl con_d con_l con_r con_u on_background:73,background background_dark body body_ulr con_l con_r con_u on_background:74,27,44,45,26,18,17,18,10,11,12,background background_dark sprite_3_2 wall wall_bright_r wall_end_d wall_end_l wall_end_u wall_light:75,26,\n18,17,background background_dark body body_dlr con_d con_l con_r on_background:76,background background_light body body_ulr con_l con_r con_u on_background:77,21,22,42,32,17,18,17,20,19,background background_border_down background_border_right background_dark temp:78,43,32,17,background background_dark body body_dr con_d con_r on_background:79,background background_light body body_inner_dr con_d con_l con_r con_u on_background:80,74,27,44,45,26,18,17,\n21,background background_light sprite_6_0 wall wall_bright_d wall_end_l wall_end_r wall_end_u wall_light:81,30,62,9,17,18,background background_light body body_dlr con_d con_l con_r on_background:82,background background_dark body body_inner_ul con_d con_l con_r con_u on_background:83,background background_light body body_ul con_l con_u on_background:84,21,22,42,32,17,18,17,11,10,11,17,18,17,76,77,18,\n27,44,45,26,18,17,18,19,20,19,20,background background_light body body_dr con_d con_r on_background:85,69,80,74,17,21,22,42,32,17,18,27,background background_dark sprite_3_0 wall wall_bright_d wall_bright_r wall_end_l wall_end_u wall_light:86,29,30,\n31,background background_border_up background_dark body body_dlr con_d con_l con_r on_background:87,background background_light body body_inner_ul con_d con_l con_r con_u on_background:88,72,84,18,27,44,54,55,20,17,21,43,background background_border_left background_border_up background_dark body body_dr con_d con_r on_background:89,background background_border_down background_border_left background_light body body_ur con_r con_u on_background:90,background background_dark sprite_5_2 wall wall_bright_l wall_end_d wall_end_r wall_end_u wall_light:91,background background_border_up background_light body body_dlr con_d con_l con_r on_background:92,74,17,18,17,21,22,background background_light sprite_dl wall wall_bright_d wall_bright_l:93,background background_dark sprite_2_1 wall wall_bright_d wall_end_l wall_light:94,\n31,32,17,11,82,background background_dark body body_inner_ur con_d con_l con_r con_u on_background:95,background background_border_left background_light body body_udr con_d con_r con_u on_background:96,background background_dark body body_inner_dr con_d con_l con_r con_u on_background:97,77,18,17,18,background background_border_down background_border_right background_light temp:98,background background_dark sprite_1_2 wall wall_bright_l wall_end_u wall_light:99,0,background background_light wall wall_bright_d wall_bright_l:100,54,55,18,17,background background_dark body body_dl con_d con_l on_background:101,background background_light body body_udl con_d con_l con_u on_background:102,72,102,background background_dark body body_ul con_l con_u on_background:103,17,\n18,98,background background_dark sprite_3_0 wall wall_end_l wall_end_u wall_light:104,background background_light sprite_ul wall wall_bright_l wall_bright_u:105,1,0,93,background background_dark sprite_3_1 wall wall_bright_r wall_end_d wall_end_l wall_light:106,26,18,17,18,17,18,17,18,27,background background_dark sprite_3_0 wall wall_bright_r wall_end_l wall_end_u wall_light:107,105,0,0,1,15,background background_light sprite_1_0 wall wall_bright_l wall_end_d wall_light:108,background background_border_right background_border_up background_dark temp:109,19,\n20,19,20,19,20,19,78,background background_light sprite_1_2 wall wall_bright_l wall_end_u wall_light:110,41,1,1,0,1,background background_dark sprite_dl wall wall_bright_d wall_bright_l:111,background background_light sprite_2_1 wall wall_bright_d wall_end_l wall_light:112,49,50,49,50,49,50,49,background background_light sprite_2_1 wall wall_bright_u wall_end_l wall_light:113,background background_dark sprite_ul wall wall_bright_l wall_bright_u:114,1,0,\n", 3, "1627891845531.74"] + "SHY SNAKE", + ["title SHY SNAKE\nauthor Daniel Freer and increpare\nhomepage www.puzzlescript.net\nnorepeat_action\nrun_rules_on_level_start\n\nbackground_color #524c67 \ntext_color #8fff70\n\n\nnoaction\n\n========\nOBJECTS\n========\n\n\n\nSprite_R_LB\n#5b6e6d #ddff7d #8fff70 #73ce86 #383d41 \n.0000\n02222\n23043\n33443\n33333\n\nSprite_R_LF\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n.....\n000..\n1110.\n22234\n22234\n\nSprite_L_RF\n#5b6e6d #8fff70 #ddff7d #73ce86 \n.....\n..000\n.0111\n01333\n01333\n\nSprite_L_RB\n#5b6e6d #8fff70 #73ce86 #383d41 #689887 \n0000.\n11110\n20324\n23322\n22222\n\nSprite_U_LF\n#5b6e6d #ddff7d #8fff70 #73ce86 \n...00\n..012\n.0233\n.0233\n.0233\n\nSprite_U_RF\n#5b6e6d #8fff70 #73ce86 #383d41 #689887 \n00...\n123..\n2243.\n2243.\n2243.\n\nSprite_R_RB\n#73ce86 #5b6e6d #383d41 #689887 \n00000\n00120\n10220\n23333\n.2222\n\nSprite_R_RF\n#73ce86 #689887 #383d41 #5b6e6d \n00012\n00012\n1112.\n222..\n.....\n\nSprite_D_RB\n#5b6e6d #8fff70 #73ce86 #ddff7d #383d41 \n.0122\n03222\n01042\n01442\n01222\n\nSprite_D_LB\n#73ce86 #689887 #383d41 #5b6e6d \n0012.\n00012\n03212\n02212\n00012\n\nSprite_L_LF\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n01222\n02222\n.4333\n..444\n.....\n\nSprite_L_LB\n#73ce86 #5b6e6d #383d41 #689887 \n00000\n01200\n02201\n33332\n2222.\n\nSprite_U_LB\n#5b6e6d #8fff70 #73ce86 #575d67 #383d41 #689887 \n01222\n01342\n01442\n01222\n.0522\n\nSprite_U_RB\n#73ce86 #689887 #383d41 #575d67 #5b6e6d \n00012\n03212\n02212\n00012\n0042.\n\nSprite_D_RF\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n.0122\n.0122\n.0122\n..023\n...44\n\nSprite_D_LF\n#73ce86 #689887 #383d41 #5b6e6d \n0012.\n0012.\n0012.\n132..\n22...\n\nBODY\nTRANSPARENT\n\nEND_R_R\n#5b6e6d #8fff70 #73ce86 #383d41 \n.....\n.....\n00...\n1100.\n22123\n\nEND_L_L\n#5b6e6d #8fff70 #ddff7d #73ce86 \n.....\n.....\n...00\n.0011\n02133\n\nEND_D_L\n#5b6e6d #8fff70 #73ce86 #383d41 \n..012\n..012\n...01\n...02\n....3\n\nEND_D_R\n#73ce86 #689887 #383d41 #5b6e6d \n012..\n012..\n12...\n32...\n2....\n\n\n\n\nEND_R_L\n#73ce86 #689887 #5b6e6d #383d41 \n00123\n1133.\n33...\n.....\n.....\n\nEND_L_R\n#5b6e6d #73ce86 #689887 #383d41 \n01211\n.3322\n...33\n.....\n.....\n\nEND_U_L\n#5b6e6d #ddff7d #8fff70 #73ce86 \n....0\n...01\n...02\n..023\n..023\n\nEND_U_R\n#5b6e6d #73ce86 #383d41 #689887 \n0....\n12...\n32...\n132..\n132..\n\n\n\n\n\nPlayer\ngreen\n.....\n.....\n..0..\n.....\n.....\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\ntemp\ntransparent\n\n\n\ncon_u\nwhite\n..0..\n..0..\n.....\n.....\n.....\n\ncon_d\nwhite\n.....\n.....\n.....\n..0..\n..0..\n\ncon_l\nwhite\n.....\n.....\n00...\n.....\n.....\n\ncon_r\nwhite\n.....\n.....\n...00\n.....\n.....\n\nend_t\nTRANSPARENT\n\n\nbody_dr\n#5b6e6d #ddff7d #8fff70 #73ce86 \n.....\n...00\n..012\n.0133\n.0233\n\nbody_dlr\n#5b6e6d #8fff70 #73ce86 \n00000\n11111\n22222\n22222\n22222\n\nbody_dl\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n.....\n00...\n110..\n2234.\n2234.\n\nbody_udr\n#5b6e6d #8fff70 #73ce86 \n01222\n01222\n01222\n01222\n01222\n\nbody_ur\n#5b6e6d #8fff70 #73ce86 #689887 #383d41 \n.0122\n.0122\n..033\n...44\n.....\n\nbody_ulr\n#73ce86 #689887 #383d41 \n00000\n00000\n00000\n11111\n22222\n\nbody_ul\n#73ce86 #689887 #383d41 \n0012.\n0012.\n112..\n22...\n.....\n\n\n\nbody_udl\n#73ce86 #689887 #383d41 \n00012\n00012\n00012\n00012\n00012\n\nbody_udlr\n#73ce86\n\nbody_inner_ul\n#73ce86 #689887 #383d41 \n00000\n00000\n00000\n00001\n00012\n\nbody_inner_ur\n#73ce86 #689887 #383d41 #8fff70 #5b6e6d \n00000\n00000\n00000\n10000\n43000\n\nbody_inner_dl\n#73ce86 #689887 #383d41 #5b6e6d #8fff70 \n00012\n00004\n00000\n00000\n00000\n\nbody_inner_dr\n#5b6e6d #8fff70 #73ce86 \n01222\n12222\n22222\n22222\n22222\n\n\n\n\n\n\n\n\n\nbackground\n#896359 #6b4949 #896359 #6b4949 #b77e63\n01110\n11100\n10110\n11112\n00200\n\n\n\nbackground_light\nLIGHTGRAY\n\nbackground_dark\ngray\n\non_background\nDARKGRAY\n\nbackground_border_up\n#b77e63 #896359 #6b4949 \n01111\n.....\n.....\n.....\n.....\n\n\nbackground_border_left\n#b77e63 #896359 #6b4949 \n0....\n1....\n1....\n1....\n1....\n\nbackground_border_right\n#896359 #6b4949 #b77e63 \n....0\n....0\n....0\n....2\n....0\n\nbackground_border_down\n#b77e63 #6b4949 #896359 \n.....\n.....\n.....\n.....\n22022\n\n\n\n\n\nWall\n#524c67 #524c67 \n00100\n00100\n11111\n00100\n00100\n\n\n\nWall_light\n#868998 #575d67\n00100\n00100\n11111\n00100\n00100\n\n\nwall_border_b\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n00100\n11111\n12222\n13333\n44444\n\nwall_border_r\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n01234\n01234\n11234\n01234\n01114\n\nwall_border_l\n#383d41 #575d67 #868998 #fffee9 #e2e0e8 \n01112\n03412\n03411\n03412\n03412\n\nwall_border_t\n#383d41 #fffee9 #575d67 #e2e0e8 #868998 \n00000\n11112\n33332\n22222\n44244\n\n\nwall_bright_u\ntransparent\n\nwall_bright_d\ntransparent\n\nwall_bright_l\ntransparent\n\nwall_bright_r\ntransparent\n\n\nwall_end_u\ntransparent\n\nwall_end_d\ntransparent\n\nwall_end_l\ntransparent\n\nwall_end_r\ntransparent\n\n\n\nSprite_0_0\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n00100\n01111\n11222\n01233\n01114\n\nSprite_1_0\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n00100\n11111\n12222\n13333\n44444\n\nSprite_2_0\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 #fffee9 \n00100\n11110\n12311\n13310\n45310\n\nSprite_3_0\n#383d41 #fffee9 #575d67 #e2e0e8 #868998 \n00000\n01112\n01332\n01322\n01324\n\nSprite_4_0\n#383d41 #fffee9 #e2e0e8 #bbbbce #575d67 #868998 \n00000\n11120\n22320\n44320\n54440\n\nSprite_5_0\n#524c67 #383d41 \n00100\n00100\n11111\n00100\n00100\n\nSprite_6_0\n#383d41 #fffee9 #e2e0e8 #bbbbce \n00000\n01120\n01320\n01320\n01220\n\nSprite_0_1\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n01234\n01234\n11234\n01234\n01114\n\nSprite_2_1\n#383d41 #575d67 #868998 #fffee9 #e2e0e8 \n01112\n03412\n03411\n03412\n03412\n\nSprite_3_1\n#383d41 #575d67 #868998 #fffee9 #e2e0e8 #bbbbce \n01112\n03411\n03455\n04444\n00000\n\nSprite_4_1\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n01234\n11234\n12234\n13334\n44444\n\nSprite_5_1\n#383d41 #fffee9 #e2e0e8 #bbbbce \n00000\n01120\n01320\n02220\n00000\n\nSprite_6_1\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n01110\n02230\n02430\n02430\n02330\n\nSprite_0_2\n#868998 #575d67 #bbbbce #e2e0e8 #383d41 \n01234\n01231\n11331\n01111\n00100\n\nSprite_1_2\n#383d41 #fffee9 #575d67 #e2e0e8 #868998 \n00000\n11112\n33332\n22222\n44244\n\nSprite_2_2\n#383d41 #575d67 #868998 #fffee9 #e2e0e8 \n01112\n33412\n44411\n11112\n22122\n\nSprite_3_2\n#383d41 #fffee9 #575d67 #bbbbce #e2e0e8 \n00000\n01112\n01342\n04442\n00000\n\nSprite_4_2\n#383d41 #fffee9 #575d67 #bbbbce #e2e0e8 \n00000\n11112\n13342\n44442\n00000\n\nSprite_5_2\n#383d41 #fffee9 #e2e0e8 #bbbbce \n00000\n11120\n13320\n22220\n00000\n\nSprite_6_2\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n01110\n02230\n02430\n03330\n00000\n\n\nsprite_DL\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n.....\n.....\n44...\n334..\n134..\n\n\nsprite_DR\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n.....\n.....\n...44\n..433\n..431\n\nsprite_UL\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n134..\n334..\n44...\n.....\n.....\n\nsprite_UR\n#383d41 #575d67 #fffee9 #e2e0e8 #bbbbce \n..431\n..433\n...44\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\nt = background\n\nobstacle = wall or body or player\n\nend = END_R_R or END_R_L or END_L_L or END_L_R or END_U_L or END_U_R or END_D_L or END_D_R\n\nhead = SPRITE_u_LB or SPRITE_u_LF or SPRITE_u_RB or SPRITE_u_RF or SPRITE_d_LB or SPRITE_d_LF or SPRITE_d_RB or SPRITE_d_RF or SPRITE_l_LB or SPRITE_l_LF or SPRITE_l_RB or SPRITE_l_RF or SPRITE_R_LB or SPRITE_R_LF or SPRITE_R_RB or SPRITE_R_RF \n\nbody_dec = body_ul or body_ur or body_dl or body_dr or body_dlr or body_udr or body_ulr or body_udl or body_udlr\n\nbody_inner = body_inner_ul or body_inner_ur or body_inner_dl or body_inner_dr\n\ncosmetics = head or end or body_dec or body_inner\n\ndir = con_u or con_d or con_l or con_r\ndir_h = con_l or con_r\ndir_v = con_u or con_d\nwall_border = wall_border_b or wall_border_t or wall_border_l or wall_border_r\n\nbackground_border = background_border_up or background_border_down or background_border_left or background_border_right\n\ntile= background_light or background_dark\n\n=======\nSOUNDS\n=======\n\nendlevel 29774302\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbackground_border_up\nbackground_border_left\nbackground_border_right\nbackground_border_down\nbackground_dark,background_light\non_background\nPlayer, Wall, Crate, body\ntemp\ncon_u\ncon_d\ncon_l\ncon_r\nend_t\nbody_dec\nbody_inner\nhead\nend\nwall_light\nwall_border_t\nwall_border_b\nwall_border_l\nwall_border_r\n\nwall_bright_u\nwall_bright_d\nwall_bright_l\nwall_bright_r\n\nwall_end_u\nwall_end_d\nwall_end_l\nwall_end_r\n\nSprite_0_0, sprite_1_0, sprite_2_0, sprite_3_0, sprite_4_0, sprite_5_0, sprite_6_0, Sprite_0_1, Sprite_2_1, Sprite_3_1, Sprite_4_1, Sprite_5_1, Sprite_6_1, Sprite_0_2, Sprite_1_2, Sprite_2_2, Sprite_3_2, Sprite_4_2, Sprite_5_2, Sprite_6_2, sprite_ul, sprite_ur, sprite_dl, sprite_dr\n\n======\nRULES\n======\n\n[wall | no wall] -> [wall Wall_light | ]\n\nup [wall | no wall] -> [wall | background_border_down ]\ndown [wall | no wall] -> [wall | background_border_up ]\nleft [wall | no wall] -> [wall | background_border_right ]\nright [wall | no wall] -> [wall | background_border_left ]\n\nup [ wall | no wall ] -> [wall wall_end_u | ]\ndown [ wall | no wall ] -> [wall wall_end_d | ]\nleft [ wall | no wall ] -> [wall wall_end_l | ]\nright [ wall | no wall ] -> [wall wall_end_r | ]\n\nup [ wall | Wall_light ] -> [ wall wall_bright_u | Wall_light ]\ndown [ wall | Wall_light ] -> [ wall wall_bright_d | Wall_light ]\nleft [ wall | Wall_light ] -> [ wall wall_bright_l | Wall_light ]\nright [ wall | Wall_light ] -> [ wall wall_bright_r | Wall_light ]\n\n[ wall_end_u ] -> [ wall_end_u sprite_1_2 ]\n[ wall_end_d ] -> [ wall_end_d sprite_1_0 ]\n[ wall_end_l ] -> [ wall_end_l sprite_2_1 ]\n[ wall_end_r ] -> [ wall_end_r sprite_0_1 ]\n\n\n[ wall_end_u wall_end_r ] -> [ wall_end_u wall_end_r sprite_4_0 ]\n[ wall_end_u wall_end_d ] -> [ wall_end_u wall_end_d sprite_4_2 ]\n[ wall_end_u wall_end_l ] -> [ wall_end_u wall_end_l sprite_3_0 ]\n\n[ wall_end_r wall_end_d ] -> [ wall_end_r wall_end_d sprite_4_1 ]\n[ wall_end_r wall_end_l ] -> [ wall_end_r wall_end_l sprite_6_1 ]\n\n[ wall_end_d wall_end_l ] -> [ wall_end_d wall_end_l sprite_3_1 ]\n\n\n[ wall_end_d wall_end_l wall_end_r ] -> [ wall_end_d wall_end_l wall_end_r sprite_6_2]\n[ wall_end_u wall_end_l wall_end_r ] -> [ wall_end_u wall_end_l wall_end_r sprite_6_0]\n[ wall_end_u wall_end_d wall_end_r ] -> [ wall_end_u wall_end_d wall_end_r sprite_5_2]\n[ wall_end_u wall_end_d wall_end_l ] -> [ wall_end_u wall_end_d wall_end_l sprite_3_2]\n\n[ no wall_light wall_bright_u wall_bright_r ] -> [ sprite_ur wall_bright_u wall_bright_r ]\n[ no wall_light wall_bright_u wall_bright_l ] -> [ sprite_ul wall_bright_u wall_bright_l ]\n[ no wall_light wall_bright_d wall_bright_r ] -> [ sprite_dr wall_bright_d wall_bright_r ]\n[ no wall_light wall_bright_d wall_bright_l ] -> [ sprite_dl wall_bright_d wall_bright_l ]\n\n\nup [ sprite_ur | no wall_end_r ] -> [ | ]\nright [ sprite_ur | no wall_end_u ] -> [ | ]\n\n\nup [ sprite_ul | no wall_end_l ] -> [ | ]\nleft [ sprite_ul | no wall_end_u ] -> [ | ]\n\ndown [ sprite_dr | no wall_end_r ] -> [ | ]\nright [ sprite_dr | no wall_end_d ] -> [ | ]\n\ndown [ sprite_dl | no wall_end_l ] -> [ | ]\nleft [ sprite_dl | no wall_end_d ] -> [ | ]\n\n\n[ wall_end_u wall_end_d wall_end_l wall_end_r ] -> [ wall_end_u wall_end_d wall_end_l wall_end_r sprite_5_1 ]\n\n[ > player | > player | obstacle ] -> cancel\n\nup [ > player | > player | no obstacle] -> [ body con_u | con_d con_u player | player ]\ndown [ > player | > player | no obstacle] -> [ body con_d | con_u con_d player | player ]\nleft [ > player | > player | no obstacle] -> [ body con_l | con_r con_l player | player ]\nright [ > player | > player | no obstacle] -> [ body con_r | con_l con_r player | player ]\n\n\nlate [temp]->[]\nlate [ no player no wall no obstacle ]->[temp]\n\n\n\nlate right [player | player ] -> [ player con_r | player con_l ]\nlate down [player | player ] -> [ player con_d | player con_u ]\n\n\nlate [ player background con_u con_r no tile] -> [ player background con_u con_r background_light]\nlate [ background_light | no tile ] -> [ background_light | background_dark ]\n+ late [background_dark | no tile ] -> [ background_dark | background_light ]\n\nlate [cosmetics]->[]\n\n\nlate [ body con_u con_l ] -> [ body con_u con_l body_ul ]\nlate [ body con_u con_r ] -> [ body con_u con_r body_ur ]\nlate [ body con_d con_l ] -> [ body con_d con_l body_dl ]\nlate [ body con_d con_r ] -> [ body con_d con_r body_dr ]\n\nlate [ body con_u con_d con_l ] -> [ body con_u con_d con_l body_udl ]\nlate [ body con_u con_d con_r ] -> [ body con_u con_d con_r body_udr ]\nlate [ body con_u con_l con_r ] -> [ body con_u con_l con_r body_ulr ]\nlate [ body con_d con_l con_r ] -> [ body con_d con_l con_r body_dlr ]\n\nlate [ body con_u con_d con_l con_r ] -> [ body con_u con_d con_l con_r body_udlr]\n\n(\nlate [ player con_d con_r ] -> [ player con_d con_r sprite_u_lf ]\nlate [ player con_u con_r ] -> [ player con_u con_r sprite_u_lb ]\nlate [ player con_d con_l ] -> [ player con_d con_l sprite_u_rf ]\nlate [ player con_u con_l ] -> [ player con_u con_l sprite_u_rb ]\n)\n\n\nlate [ player con_d con_r ] -> [ player con_d con_r body_dr ]\nlate [ player con_u con_r ] -> [ player con_u con_r body_ur ]\nlate [ player con_d con_l ] -> [ player con_d con_l body_dl ]\nlate [ player con_u con_l ] -> [ player con_u con_l body_ul ]\n\n\nlate down [ player con_r no con_l | player con_r con_d ] -> [ player con_R no body_dec | player con_r con_d no body_dec]\nlate down [ player con_l no con_r | player con_l con_d ] -> [ player con_l no body_dec | player con_l con_d no body_dec]\n\nlate right [ player con_d no con_u | player con_d con_r ] -> [ player con_d no body_dec | player con_d con_r no body_dec ]\nlate right [ player con_u no con_d | player con_u con_r ] -> [ player con_u no body_dec | player con_u con_r no body_dec ]\n\nlate left [ player con_d no con_u | player con_d con_l ] -> [ player con_d no body_dec | player con_d con_l no body_dec]\nlate left [ player con_u no con_d | player con_u con_l ] -> [ player con_u no body_dec | player con_u con_l no body_dec]\n\nlate up [ player con_l no con_r | player con_l con_u ] -> [ player con_l no body_dec | player con_l con_u no body_dec ]\nlate up [ player con_r no con_l | player con_r con_u ] -> [ player con_r no body_dec | player con_r con_u no body_dec ]\n\n\n\n\n\nlate down [ player con_r no con_l | player con_r con_d ] -> [ player con_R sprite_u_lf | player con_r con_d sprite_u_lb]\nlate down [ player con_l no con_r | player con_l con_d ] -> [ player con_l sprite_u_rf | player con_l con_d sprite_u_rb]\n\nlate right [ player con_d no con_u | player con_d con_r ] -> [ player con_d sprite_l_rf | player con_d con_r sprite_l_rb ]\nlate right [ player con_u no con_d | player con_u con_r ] -> [ player con_u sprite_l_lf | player con_u con_r sprite_l_lb ]\n\nlate left [ player con_d no con_u | player con_d con_l ] -> [ player con_d sprite_r_lf | player con_d con_l sprite_r_lb]\nlate left [ player con_u no con_d | player con_u con_l ] -> [ player con_u sprite_r_rf | player con_u con_l sprite_r_rb]\n\nlate up [ player con_l no con_r | player con_l con_u ] -> [ player con_l sprite_d_lf | player con_l con_u sprite_d_lb ]\nlate up [ player con_r no con_l | player con_r con_u ] -> [ player con_r sprite_d_rf | player con_r con_u sprite_d_rb ]\n\n\nlate right [ no con_d con_r | body_udlr ] -> [ con_r | body_inner_ur ]\nlate left [ no con_d con_l | body_udlr ] -> [ con_l | body_inner_ul ]\n\n\nlate right [ no con_u con_r | body_udlr ] -> [ con_r | body_inner_dr ]\nlate left [ no con_u con_l | body_udlr ] -> [ con_l | body_inner_dl ]\n\n\nlate up [ no con_r con_u | body_udlr ] -> [ con_u | body_inner_ul ]\nlate up [ no con_l con_u | body_udlr ] -> [ con_u | body_inner_ur ]\n\nlate down [ no con_r con_d | body_udlr ] -> [ con_d | body_inner_dl ]\nlate down [ no con_l con_d | body_udlr ] -> [ con_d | body_inner_dr ]\n\n\nlate right [ player con_r con_u con_d con_l ] ->[ player con_r con_u con_d con_l body_udlr ]\n\nlate [ player ] -> [ player on_background]\n\n(\n[ action player ] [ no wall no obstacle ] -> [ action player ] [wall]\n[ action player ] [ body ] -> [action player ] [ ]\n[ action player ]->[player]\n)\n\n==============\nWINCONDITIONS\n==============\nno temp\n\n=======\nLEVELS\n=======\n\n\nmessage 1 of 3 - If you are EVERYWHERE, nobody else can be ANYWHERE.\n\n(easy)\n##########\n#........#\n#........#\n#..##....#\n#........#\n#..pp....#\n#..pp##..#\n#........#\n#........#\n##########\n\nmessage 2 of 3 - Sometimes I just need my own space.\n(simple but ok?)\n\n##########################\n####.......#.........#####\n##.........#.........#####\n#......................###\n#........................#\n#..#....###..#..#..##....#\n#..#....###..#..#..#pp...#\n#..#....###..#..#..#pp...#\n#..###..###...##...##....#\n#........................#\n#........................#\n####.....................#\n####.....................#\n#######................###\n########..............####\n##########################\n\n\n\nmessage Level 3 of 3 - It's a real relief to be alone.\n\n(basically OK)\n##################\n#########.....####\n#########.....####\n#########..#..####\n#..........#..####\n#..........#..####\n#..####..........#\n#................#\n#........#..###..#\n#........#.......#\n#........#.......#\n###pp..#......####\n###pp..#......####\n###....#..##..####\n###...........####\n#.............####\n#........#..######\n#..##....#..######\n#...........######\n#...........######\n##################\n\nmessage Help! Somebody help! I'm stuck! \n(\n(insoluble)\n###################\n#.....#############\n#.....#############\n#.....#############\n#.....#############\n#.....#############\n#........##########\n#........##########\n#........##########\n#...........#######\n#...........#######\n#...........#######\n#..............####\n#..............####\n#pp............####\n#pp............####\n###################\n\n##########\n#..#######\n#....#####\n#....#####\n#....#####\n#....#####\n#......###\n#......pp#\n#......pp#\n##########\n\n\n##########\n#..#######\n#....#####\n#......###\n#........#\n#........#\n#........#\n#......pp#\n#......pp#\n##########\n\n##############################\n#................#############\n#................#############\n#................#############\n#...................##########\n#...................##########\n#...................##########\n#......................#######\n#...............pp.....#######\n#...............pp.....#######\n#.........................####\n#.........................####\n#.........................####\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n\n##############################\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#...........pp...............#\n#...........pp...............#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n################\n#..#############\n#....###########\n#......#########\n#........#######\n#..........#####\n#............###\n#............pp#\n#............pp#\n################\n\n(too easy)\n############\n#.....######\n#.....######\n#.....######\n#.....######\n#......#####\n#..........#\n#..........#\n#..........#\n#..........#\n#pp........#\n#pp........#\n############\n\n\n\n############\n#.....######\n#.....######\n#.....######\n#.....######\n#.....######\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#pp........#\n#pp........#\n############\n\n#################\n#.....###########\n#.....###########\n#.....###########\n#.....###########\n#.....###########\n#..........######\n#..........######\n#..........######\n#..........######\n#..........######\n#...............#\n#...............#\n#...............#\n#........pp.....#\n#........pp.....#\n#################\n\n#############\n#....########\n#....########\n#....########\n#....########\n#....########\n#.......#####\n#.......#####\n#.......#####\n#.......#####\n#.......#####\n#...........#\n#...........#\n#...........#\n#.......pp..#\n#.......pp..#\n#############\n\n\n\n(solvable + boring)\n#############\n#....########\n#....########\n#....########\n#....########\n#....########\n#.......#####\n#.......#####\n#.......#####\n#.......#####\n#.......#####\n#...........#\n#...........#\n#...........#\n#.....pp....#\n#.....pp....#\n#############\n\n(too easy)\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##################.....#######\n##################.....#######\n############........#.....####\n############........#.....####\n############..##......##..####\n############..............####\n############......##......####\n##############..#.......######\n##############..#.......######\n##############.....##...######\n##############..........######\n################pp#....#######\n################pp#..#########\n################.....#########\n################.....#########\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n\n\n\n\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##########.......#############\n#########........#############\n#########pp......#############\n#########pp#.....#############\n#######.....#....#############\n#######..........#############\n#######..#.......#############\n#######...#......#############\n#######..........#############\n##.....#.....#################\n##..........##################\n##..#.......##################\n##...#......##################\n##..........##################\n###.....######################\n##############################\n##############################\n##############################\n\n\n(bit too easy)\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##############################\n##########.......#############\n#########........#############\n#########pp......#############\n#########pp#.....#############\n#######.....#....#############\n#######..........#############\n#######..#.......#############\n#######...#......#############\n#######..........#############\n##.....#.....#################\n##..........##################\n##..#.......##################\n##...#......##################\n##..........##################\n###.....######################\n##############################\n##############################\n##############################\n\n##############################\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#.........pp.................#\n#.........pp.................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n########################\n###..................###\n###..................###\n##....................##\n##....................##\n#......................#\n#......................#\n#..#..#..#....#..#..#..#\n#..#..#..#....#..#..#..#\n#......................#\n#......................#\n##....................##\n##....................##\n###...........pp.....###\n###...........pp.....###\n########################\n\n##############################\n#######.............##########\n#######.............##########\n######..............##########\n######..............##########\n######..............##########\n######..............##########\n######..............##########\n######.......pp.....##########\n####........#pp#....##########\n####........####....##########\n####................##########\n####................##########\n####................##########\n####................##########\n##############################\n\n(meh ok for level 1?)\n##################\n####.............#\n####.............#\n###..............#\n###..............#\n###..............#\n###..............#\n###..............#\n###.......pp.....#\n#........#pp#....#\n#........####....#\n#................#\n#................#\n#................#\n#................#\n##################\n\n(meh)\n##############################\n######......##################\n######......##################\n####....##........############\n####....##........############\n####..##......##..############\n####..##......##..############\n####......##....pp############\n####......##....pp############\n########....##..##############\n########....##..##############\n########..##....##############\n########..##....##############\n########......################\n########......################\n##############################\n\n\n\n(boring)\n##############################\n##################.....#######\n############..............####\n############........#.....####\n############..##......##..####\n############..##......##..####\n##########........##..pp..####\n########..........##..pp..####\n########....#....#....########\n########..##..........########\n########..##........##########\n########......################\n########......################\n##############################\n\n(boring)\n##############################\n########............##########\n########............##########\n########..##....##..##########\n########..##....##..##########\n########pp..........##########\n########pp..........##########\n##############################\n\n(boring)\n##############################\n##########......##......######\n##########..............######\n##########pp##......##..######\n##########pp##......##..######\n##########..............######\n##########......##......######\n##########......##......######\n##########..............######\n##########..##......##..######\n##########..##......##..######\n##########..............######\n##########......##......######\n##############################\n\n################\n#####.......####\n###...........##\n###....###....##\n###...........##\n###...........##\n###....###....##\n#..............#\n#..............#\n#..###....###..#\n#..............#\n#..............#\n##....####....##\n##............##\n##............##\n##............##\n##............##\n######....######\n######....######\n######..pp######\n######..pp######\n################\n\n############################\n#..........................#\n#..........................#\n#..........................#\n#..........................#\n#....#....###..#..#..##....#\n#....#....###..#pp#..#.....#\n#....#....###..#pp#..#.....#\n#....###..###...##...##....#\n#..........................#\n#..........................#\n#..........................#\n#..........................#\n#..........................#\n############################\n\n############################\n#######.................####\n#######.................####\n####....................####\n##.......................###\n#..........................#\n#..........................#\n#..........................#\n#..........................#\n#....#....###..#..#..##....#\n#....#....###..#pp#..#.....#\n#....#....###..#pp#..#.....#\n#....###..###...##...##....#\n#..........................#\n#........................###\n#......................#####\n#.....................######\n####............############\n####............############\n#######.........############\n############################\n\n(ok!)\n\n\n\n\n##############################.....\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#.........#.....####..#####..####..\n#.........#........#....#....#.....\n#.........#........#....#....#.....\n#.........####..####....#....####..\n#.........#pp#..#..#....#....#.....\n#.........#pp#..#..#....#....#.....\n#.........#..#..#..#....#....####..\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n#..................................\n##############################.....\n\n\n##############################\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#....#####..#..#..#....#.....#\n#....#......#..#..#....#.....#\n#....#......#..#..#....#.....#\n#....#......#..#..#....#.....#\n#....#......#..#..#....#.....#\n#....#####..####..######.....#\n#........#..#pp#.......#.....#\n#........#..#pp#.......#.....#\n#........#..#..#.......#.....#\n#........#..#..#.......#.....#\n#....#####..#..#..######.....#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n###########################\n######.........############\n######.........############\n#...................#######\n#...................#######\n#.........................#\n#.........................#\n#....#####..#..#..#....#..#\n#....#......#..#..#....#..#\n#....#......#..#..#....#..#\n#....#......#pp#..#....#..#\n#....#......#pp#..#....#..#\n#....#####..####..######..#\n#........#..#..#.......#..#\n#........#..#..#.......#..#\n#........#..#..#.......#..#\n#........#..#..#.......#..#\n#....#####..#..#..######..#\n#.........................#\n#........#................#\n#...................#######\n#...................#######\n#..................########\n#..................########\n###########################\n\n\n##############################...\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#.........#####...#....#...#...#.\n#.........#.......#....#...#...#.\n#.........#.......#....#...#...#.\n#.........#.......#....#...#...#.\n#.........#.......#....#...#...#.\n#.........#####...######...#####.\n#...........pp#...#....#.......#.\n#...........pp#...#....#.......#.\n#.............#...#....#.......#.\n#.............#...#....#.......#.\n#.........#####...#....#...#####.\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n#................................\n##############################...\n\n##############################\n#............................#\n#............................#\n#............................#\n#............................#\n#....pp......................#\n#....pp......................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n#............................#\n##############################\n\n##############################\n######.....###################\n#####.......#.....############\n#####...#..........###########\n#####..###.....#...###########\n#####...#.....###..###########\n#####..........#...pp#########\n######.....#.......pp.########\n#####.....###.....#...########\n####.......#.....###..########\n####...#..........#...########\n####..###.....#.......########\n####...#......##.....#########\n####..........################\n#####.....####################\n##############################\n\n\n##############################\n#########.....################\n###............#.....#########\n###........#..........########\n###.......###.....#...########\n###........#.....###..########\n###....#..........#...########\n###...###.....#.......########\n###....#.....###.....#########\n####..........#.....##########\n#####.....#..........#########\n#####....###.....#...#########\n#####.....#pp....##..#########\n#####......pp....#...#########\n#####..#.............#########\n#####...............##########\n#####..............###########\n##############################\n)\n",[3,2,2,2,1,1,1,2,2,1,1,1,2,1,1,1,0,0,1,0,1],"background background_dark wall:0,background background_light wall:1,background background_dark sprite_dr wall wall_bright_d wall_bright_r:2,background background_light sprite_0_1 wall wall_bright_d wall_end_r wall_light:3,background background_dark sprite_0_1 wall wall_bright_d wall_bright_u wall_end_r wall_light:4,background background_light sprite_0_1 wall wall_bright_d wall_bright_u wall_end_r wall_light:5,4,5,4,5,background background_dark sprite_0_1 wall wall_bright_u wall_end_r wall_light:6,background background_light sprite_ur wall wall_bright_r wall_bright_u:7,0,1,0,1,1,2,background background_light sprite_4_1 wall wall_end_d wall_end_r wall_light:8,background background_border_left background_border_up background_dark temp:9,background background_border_left background_light temp:10,background background_border_left background_dark temp:11,10,11,10,11,\nbackground background_border_down background_border_left background_light temp:12,background background_dark sprite_1_2 wall wall_bright_r wall_end_u wall_light:13,background background_light wall wall_bright_u:14,0,1,0,background background_dark wall wall_bright_d:15,background background_light sprite_1_0 wall wall_bright_r wall_end_d wall_light:16,9,background background_light temp:17,background background_dark temp:18,background background_border_right background_light temp:19,background background_border_right background_dark temp:20,19,20,17,background background_border_down background_dark temp:21,background background_light sprite_1_2 wall wall_bright_l wall_bright_r wall_end_u wall_light:22,background background_dark wall wall_bright_r wall_bright_u:23,1,0,1,background background_light sprite_dr wall wall_bright_d wall_bright_r:24,background background_dark sprite_4_1 wall wall_bright_l wall_end_d wall_end_r wall_light:25,background background_border_up background_light temp:26,18,\nbackground background_border_down background_light temp:27,background background_dark sprite_6_0 wall wall_bright_d wall_end_l wall_end_r wall_end_u wall_light:28,background background_light sprite_6_1 wall wall_bright_d wall_bright_u wall_end_l wall_end_r wall_light:29,background background_dark sprite_6_1 wall wall_bright_d wall_bright_u wall_end_l wall_end_r wall_light:30,background background_light sprite_3_1 wall wall_bright_r wall_bright_u wall_end_d wall_end_l wall_light:31,background background_border_up background_dark temp:32,27,background background_dark sprite_4_0 wall wall_bright_d wall_bright_l wall_end_r wall_end_u wall_light:33,background background_light sprite_0_1 wall wall_bright_u wall_end_r wall_light:34,background background_dark sprite_ur wall wall_bright_r wall_bright_u:35,1,0,background background_dark sprite_1_0 wall wall_bright_r wall_end_d wall_light:36,background background_border_left background_border_up background_light temp:37,18,17,18,10,11,12,background background_dark sprite_4_2 wall wall_bright_l wall_bright_r wall_end_d wall_end_u wall_light:38,26,18,10,background background_border_down background_border_left background_dark temp:39,background background_light sprite_1_2 wall wall_bright_r wall_end_u wall_light:40,\nbackground background_dark wall wall_bright_u:41,1,background background_light sprite_1_0 wall wall_bright_l wall_bright_r wall_end_d wall_light:42,32,17,18,17,18,17,21,background background_light sprite_5_2 wall wall_bright_l wall_end_d wall_end_r wall_end_u wall_light:43,32,17,18,27,background background_dark sprite_1_2 wall wall_bright_l wall_bright_r wall_end_u wall_light:44,14,0,background background_dark sprite_1_0 wall wall_bright_l wall_bright_r wall_end_d wall_light:45,26,18,17,18,17,18,17,\n11,17,18,17,21,background background_light sprite_4_0 wall wall_bright_l wall_end_r wall_end_u wall_light:46,35,1,42,32,17,18,17,20,19,20,19,18,17,18,17,39,background background_light sprite_4_0 wall wall_end_r wall_end_u wall_light:47,35,45,26,\n18,17,21,background background_light sprite_3_0 wall wall_bright_d wall_bright_r wall_end_l wall_end_u wall_light:48,background background_dark sprite_2_1 wall wall_bright_d wall_bright_u wall_end_l wall_light:49,background background_light sprite_2_1 wall wall_bright_d wall_bright_u wall_end_l wall_light:50,background background_dark sprite_3_1 wall wall_bright_r wall_bright_u wall_end_d wall_end_l wall_light:51,26,18,17,18,17,39,40,42,32,17,18,27,44,background background_light wall wall_bright_l wall_bright_r wall_bright_u:52,background background_dark wall wall_bright_d wall_bright_l wall_bright_r:53,42,32,17,18,\n17,18,27,44,background background_dark sprite_1_0 wall wall_bright_l wall_end_d wall_light:54,background background_border_right background_border_up background_light temp:55,20,17,21,background background_light sprite_4_0 wall wall_bright_d wall_bright_l wall_end_r wall_end_u wall_light:56,4,5,background background_dark sprite_4_1 wall wall_bright_l wall_bright_u wall_end_d wall_end_r wall_light:57,background background_border_up background_light con_d con_r on_background player sprite_l_rf:58,background background_dark con_r con_u on_background player sprite_l_lf:59,17,18,17,21,22,background background_light sprite_dl wall wall_bright_d wall_bright_l wall_bright_r:60,background background_dark sprite_6_1 wall wall_bright_d wall_end_l wall_end_r wall_light:61,background background_light sprite_6_2 wall wall_bright_u wall_end_d wall_end_l wall_end_r wall_light:62,32,17,11,\n10,11,10,background background_dark con_d con_l con_r on_background player sprite_l_rb:63,background background_light body_udlr con_d con_l con_r con_u on_background player sprite_l_lb:64,background background_dark body body_ur con_r con_u on_background:65,17,18,27,44,36,37,11,17,18,19,20,19,18,background background_light body body_dl con_d con_l on_background:66,background background_dark body body_inner_dl con_d con_l con_r con_u on_background:67,background background_light body body_inner_ur con_d con_l con_r con_u on_background:68,background background_dark body body_udr con_d con_r con_u on_background:69,background background_light body body_ur con_r con_u on_background:70,21,22,\n42,32,17,18,27,28,29,background background_dark sprite_6_2 wall wall_bright_u wall_end_d wall_end_l wall_end_r wall_light:71,55,18,66,background background_dark body body_udl con_d con_l con_u on_background:72,background background_light body body_inner_dl con_d con_l con_r con_u on_background:73,background background_dark body body_ulr con_l con_r con_u on_background:74,27,44,45,26,18,17,18,10,11,12,background background_dark sprite_3_2 wall wall_bright_r wall_end_d wall_end_l wall_end_u wall_light:75,26,\n18,17,background background_dark body body_dlr con_d con_l con_r on_background:76,background background_light body body_ulr con_l con_r con_u on_background:77,21,22,42,32,17,18,17,20,19,background background_border_down background_border_right background_dark temp:78,43,32,17,background background_dark body body_dr con_d con_r on_background:79,background background_light body body_inner_dr con_d con_l con_r con_u on_background:80,74,27,44,45,26,18,17,\n21,background background_light sprite_6_0 wall wall_bright_d wall_end_l wall_end_r wall_end_u wall_light:81,30,62,9,17,18,background background_light body body_dlr con_d con_l con_r on_background:82,background background_dark body body_inner_ul con_d con_l con_r con_u on_background:83,background background_light body body_ul con_l con_u on_background:84,21,22,42,32,17,18,17,11,10,11,17,18,17,76,77,18,\n27,44,45,26,18,17,18,19,20,19,20,background background_light body body_dr con_d con_r on_background:85,69,80,74,17,21,22,42,32,17,18,27,background background_dark sprite_3_0 wall wall_bright_d wall_bright_r wall_end_l wall_end_u wall_light:86,29,30,\n31,background background_border_up background_dark body body_dlr con_d con_l con_r on_background:87,background background_light body body_inner_ul con_d con_l con_r con_u on_background:88,72,84,18,27,44,54,55,20,17,21,43,background background_border_left background_border_up background_dark body body_dr con_d con_r on_background:89,background background_border_down background_border_left background_light body body_ur con_r con_u on_background:90,background background_dark sprite_5_2 wall wall_bright_l wall_end_d wall_end_r wall_end_u wall_light:91,background background_border_up background_light body body_dlr con_d con_l con_r on_background:92,74,17,18,17,21,22,background background_light sprite_dl wall wall_bright_d wall_bright_l:93,background background_dark sprite_2_1 wall wall_bright_d wall_end_l wall_light:94,\n31,32,17,11,82,background background_dark body body_inner_ur con_d con_l con_r con_u on_background:95,background background_border_left background_light body body_udr con_d con_r con_u on_background:96,background background_dark body body_inner_dr con_d con_l con_r con_u on_background:97,77,18,17,18,background background_border_down background_border_right background_light temp:98,background background_dark sprite_1_2 wall wall_bright_l wall_end_u wall_light:99,0,background background_light wall wall_bright_d wall_bright_l:100,54,55,18,17,background background_dark body body_dl con_d con_l on_background:101,background background_light body body_udl con_d con_l con_u on_background:102,72,102,background background_dark body body_ul con_l con_u on_background:103,17,\n18,98,background background_dark sprite_3_0 wall wall_end_l wall_end_u wall_light:104,background background_light sprite_ul wall wall_bright_l wall_bright_u:105,1,0,93,background background_dark sprite_3_1 wall wall_bright_r wall_end_d wall_end_l wall_light:106,26,18,17,18,17,18,17,18,27,background background_dark sprite_3_0 wall wall_bright_r wall_end_l wall_end_u wall_light:107,105,0,0,1,15,background background_light sprite_1_0 wall wall_bright_l wall_end_d wall_light:108,background background_border_right background_border_up background_dark temp:109,19,\n20,19,20,19,20,19,78,background background_light sprite_1_2 wall wall_bright_l wall_end_u wall_light:110,41,1,1,0,1,background background_dark sprite_dl wall wall_bright_d wall_bright_l:111,background background_light sprite_2_1 wall wall_bright_d wall_end_l wall_light:112,49,50,49,50,49,50,49,background background_light sprite_2_1 wall wall_bright_u wall_end_l wall_light:113,background background_dark sprite_ul wall wall_bright_l wall_bright_u:114,1,0,\n",3,"1627891845531.74"] ], [ - "a distant sunset", - ["title a distant sunset\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nnorepeat_action\nagain_interval 0.3\n\n\nbackground_color darkblue\n\ntext_color LIGHTGRAY\n\n========\nOBJECTS\n========\n\nblack ,\nDARKBLUE\n\nBackground\nDARKBLUE\n\n\n\nWall\nDARKGREEN\n\nwall_tl\nDARKGREEN DARKBLUE \n00000\n01111\n01000\n01011\n01010\n\nwall_tr\ndarkgreen DARKBLUE\n00000\n11110\n00010\n11010\n01010\n\nwall_bl\nDARKGREEN DARKBLUE \n01010\n01011\n01000\n01111\n00000\n\nwall_br\ndarkgreen DARKBLUE\n01010\n11010\n00010\n11110\n00000\n\nwall_h\ndarkgreen DARKBLUE\n00000\n11111\n00000\n11111\n00000\n\nwall_v\ndarkgreen DARKBLUE\n01010\n01010\n01010\n01010\n01010\n\nwall_t\nDARKGREEN DARKBLUE\n01010\n11011\n00000\n11111\n00000\n\n\nPlayer\ngreen\n0.0.0\n.000.\n00000\n.000.\n0.0.0\n\n\n\nhand\nTRANSPARENT\n..000\n..000\n0.000\n.0000\n...00\n\nhand_turn\nTRANSPARENT\n000..\n.000.\n..000\n0.000\n.0000\n\n\nbody_1_1\nred blue\n....1\n...11\n..111\n.1111\n11111\n\nbody_1_2\nred blue\n11100\n11100\n11100\n11100\n11100\n\nbody_1_3\nred blue\n0....\n00...\n000..\n0000.\n00000\n\nbody_1_4\nblue\n\nbody_1_5\nred blue\n11100\n11100\n11100\n11000\n11000\n\nbody_1_6\nred\n\nbody_1_7\nred blue\n11111\n.1111\n..111\n...11\n....1\n\nbody_1_8\nred blue\n11000\n11000\n11000\n11000\n11000\n\nbody_1_9\nred\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\nbody_2_1\nred blue\n....0\n...00\n..100\n.1110\n11111\n\nbody_2_2\nred \n\nbody_2_3\nred blue\n0....\n00...\n000..\n0000.\n00000\n\nbody_2_4\nblue\n\nbody_2_5\nred blue\n00000\n10000\n11100\n11110\n11111\n\nbody_2_6\nred\n\nbody_2_7\nred blue\n11111\n.1111\n..111\n...11\n....1\n\nbody_2_8\nblue blue\n11000\n11000\n11000\n11000\n11000\n\nbody_2_9\nred blue\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\nbody_3_1\nred red\n....1\n...11\n..111\n.1111\n11111\n\nbody_3_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_3_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_3_4\nred blue\n00000\n00000\n00111\n11111\n11111\n\nbody_3_5\nred blue\n00000\n00000\n11111\n11111\n11111\n\nbody_3_6\nred blue\n00000\n00000\n11111\n11111\n11111\n\nbody_3_7\nblue blue\n11111\n.1111\n..111\n...11\n....1\n\nbody_3_8\nblue blue\n11000\n11000\n11000\n11000\n11000\n\nbody_3_9\nblue\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\nbody_4_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_4_2\nred \n\nbody_4_3\nred blue\n0....\n00...\n001..\n0111.\n11111\n\nbody_4_4\nred\n\nbody_4_5\nred blue\n00000\n00001\n00111\n01111\n11111\n\nbody_4_6\nblue\n\nbody_4_7\nred blue\n00001\n.0011\n..111\n...11\n....1\n\nbody_4_8\nblue blue\n11000\n11000\n11000\n11000\n11000\n\nbody_4_9\nblue blue\n10000\n1100.\n111..\n11...\n1....\n\n\nbody_5_1\nblue red\n....1\n...11\n..111\n.1111\n11111\n\nbody_5_2\nblue red\n11100\n11100\n11100\n11100\n11100\n\nbody_5_3\nblue red\n0....\n00...\n000..\n0000.\n00000\n\nbody_5_4\nred\n\nbody_5_5\nblue red\n11100\n11100\n11100\n11000\n11000\n\nbody_5_6\nblue\n\nbody_5_7\nblue red\n11111\n.1111\n..111\n...11\n....1\n\nbody_5_8\nblue red\n11000\n11000\n11000\n11000\n11000\n\nbody_5_9\nblue\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\nbody_6_1\nblue red\n....0\n...00\n..100\n.1110\n11111\n\nbody_6_2\nblue \n\nbody_6_3\nblue red\n0....\n00...\n000..\n0000.\n00000\n\nbody_6_4\nred\n\nbody_6_5\nblue red\n00000\n10000\n11100\n11110\n11111\n\nbody_6_6\nblue\n\nbody_6_7\nblue red\n11111\n.1111\n..111\n...11\n....1\n\nbody_6_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_6_9\nblue red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\n\n\nbody_7_1\nblue blue\n....1\n...11\n..111\n.1111\n11111\n\nbody_7_2\nblue blue\n11100\n11100\n11100\n11100\n11100\n\nbody_7_3\nblue blue\n0....\n00...\n000..\n0000.\n00000\n\nbody_7_4\nblue red\n00000\n00000\n00111\n11111\n11111\n\nbody_7_5\nblue red\n00000\n00000\n11111\n11111\n11111\n\nbody_7_6\nblue red\n00000\n00000\n11111\n11111\n11111\n\nbody_7_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_7_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_7_9\nred\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\n\nbody_8_1\nblue blue\n....0\n...00\n..100\n.1110\n11111\n\nbody_8_2\nblue \n\nbody_8_3\nblue red\n0....\n00...\n001..\n0111.\n11111\n\nbody_8_4\nblue\n\nbody_8_5\nblue red\n00000\n00001\n00111\n01111\n11111\n\nbody_8_6\nred\n\nbody_8_7\nblue red\n00001\n.0011\n..111\n...11\n....1\n\nbody_8_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_8_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\n\nball_wwww\nLIGHTGRAY LIGHTGRAY\n.000.\n00000\n00111\n11111\n.111.\n\nball_bbbb\nDARKGRAY DARKGRAY\n.000.\n00000\n00111\n11111\n.111.\n\nball_bbww\nDARKGRAY LIGHTGRAY\n.000.\n00000\n00111\n11111\n.111.\n\nball_wwbb\nLIGHTGRAY DARKGRAY\n.000.\n00000\n00111\n11111\n.111.\n\nball_bwbw\nLIGHTGRAY DARKGRAY \n.001.\n00011\n00111\n00111\n.011.\n\nball_wbwb\nDARKGRAY LIGHTGRAY \n.001.\n00011\n00111\n00111\n.011.\n\nt\nTRANSPARENT\n\n\n\nsprt_0_0 !\n#ec7153\n00000\n00000\n00000\n00000\n00000\n\nsprt_1_0 @\n#ec7153 #ecd25c\n00000\n00011\n00111\n00111\n00111\n\nsprt_2_0 £\n#ec7153 #ecd25c\n00000\n11000\n11100\n11100\n11100\n\nsprt_3_0 $\n#ec7153\n00000\n00000\n00000\n00000\n00000\n\nsprt_0_1 %\n#ec7153 #ecd25c\n00000\n00000\n00111\n01111\n01111\n\nsprt_1_1 ^\n#ec7153 #ecd25c\n00111\n00011\n10000\n11000\n11000\n\nsprt_2_1 &\n#ecd25c #ec7153\n00011\n00111\n11110\n11100\n11100\n\nsprt_3_1 *\n#ec7153 #ecd25c\n00000\n00000\n11100\n11110\n11110\n\nsprt_0_2 _\n#1ca4ff #44875f\n01111\n01111\n00111\n00000\n00000\n\nsprt_1_2 +\n#44875f #1ca4ff\n00111\n00111\n01111\n11100\n11000\n\nsprt_2_2 {\n#1ca4ff #44875f\n00011\n00011\n00001\n11000\n11100\n\nsprt_3_2 }\n#44875f #1ca4ff\n00001\n00001\n00011\n11111\n11111\n\nsprt_0_3 :\n#1ca4ff\n00000\n00000\n00000\n00000\n00000\n\nsprt_1_3 \"\n#1ca4ff #44875f\n00111\n00111\n00111\n00011\n00000\n\nsprt_2_3 |\n#44875f #1ca4ff\n00011\n00011\n00011\n00111\n11111\n\nsprt_3_3 <\n#1ca4ff\n00000\n00000\n00000\n00000\n00000\n\n\ndarkred >\ndarkred\n\ndarkblue ?\ndarkblue\n\nstars ~\nwhite\n.....\n.....\n.0...\n.....\n.....\n\n=======\nLEGEND\n=======\n\nball = ball_wwww or ball_bbbb or ball_bbww or ball_wwbb or ball_bwbw or ball_wbwb\n\n\nbody = body_1_1 or body_1_2 or body_1_3 or body_1_4 or body_1_5 or body_1_6 or body_1_7 or body_1_8 or body_1_9 or body_2_1 or body_2_2 or body_2_3 or body_2_4 or body_2_5 or body_2_6 or body_2_7 or body_2_8 or body_2_9 or body_3_1 or body_3_2 or body_3_3 or body_3_4 or body_3_5 or body_3_6 or body_3_7 or body_3_8 or body_3_9 or body_4_1 or body_4_2 or body_4_3 or body_4_4 or body_4_5 or body_4_6 or body_4_7 or body_4_8 or body_4_9 or body_5_1 or body_5_2 or body_5_3 or body_5_4 or body_5_5 or body_5_6 or body_5_7 or body_5_8 or body_5_9 or body_6_1 or body_6_2 or body_6_3 or body_6_4 or body_6_5 or body_6_6 or body_6_7 or body_6_8 or body_6_9 or body_7_1 or body_7_2 or body_7_3 or body_7_4 or body_7_5 or body_7_6 or body_7_7 or body_7_8 or body_7_9 or body_8_1 or body_8_2 or body_8_3 or body_8_4 or body_8_5 or body_8_6 or body_8_7 or body_8_8 or body_8_9\n\nhands = hand or hand_turn\n\napparatus = hands or body or ball\n. = Background\n# = Wall\nP = Player\n\n1 = body_1_1\n2 = body_1_2 and ball_wwww\n3 = body_1_3\n4 = body_1_4 and ball_wwww\n5 = body_1_5 and hand and Player\n6 = body_1_6 and ball_wwww\n7 = body_1_7\n8 = body_1_8 and ball_wwww\n9 = body_1_9\n\n\nq = wall and body_3_1 \nw = wall and body_3_2 and ball_wwww\ne = wall and body_3_3 \nr = wall and body_3_4 and ball_wwbb\ng = wall and body_3_5 \ny = wall and body_3_6 and ball_wwbb\nu = wall and body_3_7 \ni = wall and body_3_8 and ball_bbbb\no = wall and body_3_9 \n\n(\nq = wall \nw = wall and ball_wwww\ne = wall \nr = wall and ball_wwbb\ng = wall \ny = wall and ball_wwbb\nu = wall \ni = wall and ball_bbbb\no = wall \n)\n\nz = wall_tl and wall\nx = wall_tr and wall\nc = wall_bl and wall\nf = wall_br and wall\nb = wall_h and wall\nn = wall_v and wall\nm = wall_t and wall\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nblack\nWall\nPlayer\nbody\nball\nhands\nwall_tl, wall_tr, wall_bl, wall_br, wall_h, wall_v, wall_t\nt\n\nsprt_0_0, sprt_0_1, sprt_0_2, sprt_0_3, sprt_1_0, sprt_1_1, sprt_1_2, sprt_1_3, sprt_2_0, sprt_2_1, sprt_2_2, sprt_2_3, sprt_3_0, sprt_3_1, sprt_3_2, sprt_3_3, darkred, darkblue, stars\n\n======\nRULES\n======\n\n\n(ball translations)\n[ moving player ] [ ball no wall ] -> [ moving player ] [ moving ball ]\n\n(ball rotations)\n\nright [ ball | action player | ball ] -> [ down ball | action player | up ball ]\ndown [ ball | action player | ball ] -> [ left ball | action player | right ball ]\n\n\n(mark north of hand with t)\ndown [ | hand_turn ] -> [ t | hand_turn ]\nright [ hand_turn ] [ ball | t no wall | ball ] -> [ hand_turn ] [ down ball | t | left ball]\nright [ hand_turn ] [ ball | no wall no t | ball ] -> [ hand_turn ] [ right ball | no t | up ball]\n[t]->[]\n\n[ up ball_wwww ] -> [ ball_wwbb ]\n[ down ball_wwww ] -> [ ball_bbww ]\n[ right ball_wwww ] -> [ ball_wbwb ]\n[ left ball_wwww ] -> [ ball_bwbw ]\n\n[ up ball_bbbb ] -> [ ball_bbww ]\n[ down ball_bbbb ] -> [ ball_wwbb ]\n[ right ball_bbbb ] -> [ ball_bwbw ]\n[ left ball_bbbb ] -> [ ball_wbwb ]\n\n[ up ball_bbww ] -> [ ball_wwww ]\n[ down ball_bbww ] -> [ ball_bbbb ]\n[ right ball_bbww ] -> [ ball_bbww ]\n[ left ball_bbww ] -> [ ball_bbww ]\n\n[ up ball_wwbb ] -> [ ball_bbbb ]\n[ down ball_wwbb ] -> [ ball_wwww ]\n[ right ball_wwbb ] -> [ ball_wwbb ]\n[ left ball_wwbb ] -> [ ball_wwbb ]\n\n[ up ball_bwbw ] -> [ ball_bwbw ]\n[ down ball_bwbw ] -> [ ball_bwbw ]\n[ right ball_bwbw ] -> [ ball_wwww ]\n[ left ball_bwbw ] -> [ ball_bbbb ]\n\n[ up ball_wbwb ] -> [ ball_wbwb ]\n[ down ball_wbwb ] -> [ ball_wbwb ]\n[ right ball_wbwb ] -> [ ball_bbbb ]\n[ left ball_wbwb ] -> [ ball_wwww ]\n\n\n\n\n[ action player ] [ body_1_1 no wall ] -> [ action player ] [ body_2_1 ]\n[ action player ] [ body_1_2 no wall ] -> [ action player ] [ body_2_2 ]\n[ action player ] [ body_1_3 no wall ] -> [ action player ] [ body_2_3 ]\n[ action player ] [ body_1_4 no wall ] -> [ action player ] [ body_2_4 ]\n[ action player ] [ body_1_5 no wall ] -> [ action player ] [ body_2_5 ]\n[ action player ] [ body_1_6 no wall ] -> [ action player ] [ body_2_6 ]\n[ action player ] [ body_1_7 no wall ] -> [ action player ] [ body_2_7 ]\n[ action player ] [ body_1_8 no wall ] -> [ action player ] [ body_2_8 ]\n[ action player ] [ body_1_9 no wall ] -> [ action player ] [ body_2_9 ]\n\n[ action player ] [ body_3_1 no wall ] -> [ action player ] [ body_4_1 ]\n[ action player ] [ body_3_2 no wall ] -> [ action player ] [ body_4_2 ]\n[ action player ] [ body_3_3 no wall ] -> [ action player ] [ body_4_3 ]\n[ action player ] [ body_3_4 no wall ] -> [ action player ] [ body_4_4 ]\n[ action player ] [ body_3_5 no wall ] -> [ action player ] [ body_4_5 ]\n[ action player ] [ body_3_6 no wall ] -> [ action player ] [ body_4_6 ]\n[ action player ] [ body_3_7 no wall ] -> [ action player ] [ body_4_7 ]\n[ action player ] [ body_3_8 no wall ] -> [ action player ] [ body_4_8 ]\n[ action player ] [ body_3_9 no wall ] -> [ action player ] [ body_4_9 ]\n\n[ action player ] [ body_5_1 no wall ] -> [ action player ] [ body_6_1 ]\n[ action player ] [ body_5_2 no wall ] -> [ action player ] [ body_6_2 ]\n[ action player ] [ body_5_3 no wall ] -> [ action player ] [ body_6_3 ]\n[ action player ] [ body_5_4 no wall ] -> [ action player ] [ body_6_4 ]\n[ action player ] [ body_5_5 no wall ] -> [ action player ] [ body_6_5 ]\n[ action player ] [ body_5_6 no wall ] -> [ action player ] [ body_6_6 ]\n[ action player ] [ body_5_7 no wall ] -> [ action player ] [ body_6_7 ]\n[ action player ] [ body_5_8 no wall ] -> [ action player ] [ body_6_8 ]\n[ action player ] [ body_5_9 no wall ] -> [ action player ] [ body_6_9 ]\n\n[ action player ] [ body_7_1 no wall ] -> [ action player ] [ body_8_1 ]\n[ action player ] [ body_7_2 no wall ] -> [ action player ] [ body_8_2 ]\n[ action player ] [ body_7_3 no wall ] -> [ action player ] [ body_8_3 ]\n[ action player ] [ body_7_4 no wall ] -> [ action player ] [ body_8_4 ]\n[ action player ] [ body_7_5 no wall ] -> [ action player ] [ body_8_5 ]\n[ action player ] [ body_7_6 no wall ] -> [ action player ] [ body_8_6 ]\n[ action player ] [ body_7_7 no wall ] -> [ action player ] [ body_8_7 ]\n[ action player ] [ body_7_8 no wall ] -> [ action player ] [ body_8_8 ]\n[ action player ] [ body_7_9 no wall ] -> [ action player ] [ body_8_9 ]\n\n\n[ hand_turn ] [ body_2_1 no wall ] -> [ hand_turn ] [ body_3_1 ]\n[ hand_turn ] [ body_2_2 no wall ] -> [ hand_turn ] [ body_3_2 ]\n[ hand_turn ] [ body_2_3 no wall ] -> [ hand_turn ] [ body_3_3 ]\n[ hand_turn ] [ body_2_4 no wall ] -> [ hand_turn ] [ body_3_4 ]\n[ hand_turn ] [ body_2_5 no wall ] -> [ hand_turn ] [ body_3_5 ]\n[ hand_turn ] [ body_2_6 no wall ] -> [ hand_turn ] [ body_3_6 ]\n[ hand_turn ] [ body_2_7 no wall ] -> [ hand_turn ] [ body_3_7 ]\n[ hand_turn ] [ body_2_8 no wall ] -> [ hand_turn ] [ body_3_8 ]\n[ hand_turn ] [ body_2_9 no wall ] -> [ hand_turn ] [ body_3_9 ]\n\n[ hand_turn ] [ body_4_1 no wall ] -> [ hand_turn ] [ body_5_1 ]\n[ hand_turn ] [ body_4_2 no wall ] -> [ hand_turn ] [ body_5_2 ]\n[ hand_turn ] [ body_4_3 no wall ] -> [ hand_turn ] [ body_5_3 ]\n[ hand_turn ] [ body_4_4 no wall ] -> [ hand_turn ] [ body_5_4 ]\n[ hand_turn ] [ body_4_5 no wall ] -> [ hand_turn ] [ body_5_5 ]\n[ hand_turn ] [ body_4_6 no wall ] -> [ hand_turn ] [ body_5_6 ]\n[ hand_turn ] [ body_4_7 no wall ] -> [ hand_turn ] [ body_5_7 ]\n[ hand_turn ] [ body_4_8 no wall ] -> [ hand_turn ] [ body_5_8 ]\n[ hand_turn ] [ body_4_9 no wall ] -> [ hand_turn ] [ body_5_9 ]\n\n[ hand_turn ] [ body_6_1 no wall ] -> [ hand_turn ] [ body_7_1 ]\n[ hand_turn ] [ body_6_2 no wall ] -> [ hand_turn ] [ body_7_2 ]\n[ hand_turn ] [ body_6_3 no wall ] -> [ hand_turn ] [ body_7_3 ]\n[ hand_turn ] [ body_6_4 no wall ] -> [ hand_turn ] [ body_7_4 ]\n[ hand_turn ] [ body_6_5 no wall ] -> [ hand_turn ] [ body_7_5 ]\n[ hand_turn ] [ body_6_6 no wall ] -> [ hand_turn ] [ body_7_6 ]\n[ hand_turn ] [ body_6_7 no wall ] -> [ hand_turn ] [ body_7_7 ]\n[ hand_turn ] [ body_6_8 no wall ] -> [ hand_turn ] [ body_7_8 ]\n[ hand_turn ] [ body_6_9 no wall ] -> [ hand_turn ] [ body_7_9 ]\n\n[ hand_turn ] [ body_8_1 no wall ] -> [ hand_turn ] [ body_1_1 ]\n[ hand_turn ] [ body_8_2 no wall ] -> [ hand_turn ] [ body_1_2 ]\n[ hand_turn ] [ body_8_3 no wall ] -> [ hand_turn ] [ body_1_3 ]\n[ hand_turn ] [ body_8_4 no wall ] -> [ hand_turn ] [ body_1_4 ]\n[ hand_turn ] [ body_8_5 no wall ] -> [ hand_turn ] [ body_1_5 ]\n[ hand_turn ] [ body_8_6 no wall ] -> [ hand_turn ] [ body_1_6 ]\n[ hand_turn ] [ body_8_7 no wall ] -> [ hand_turn ] [ body_1_7 ]\n[ hand_turn ] [ body_8_8 no wall ] -> [ hand_turn ] [ body_1_8 ]\n[ hand_turn ] [ body_8_9 no wall ] -> [ hand_turn ] [ body_1_9 ]\n\n\n\n\n\n\n\n\n\n\n(need to do body rotations as well here!)\n\n(move object)\n[moving player ] [ stationary apparatus] -> [ moving player ] [ moving apparatus]\n\n\nright [ ball | action player | ball ] -> [ down ball | action player | up ball ]\ndown [ ball | action player | ball ] -> [ left ball | action player | right ball ]\n\n\ndown [ | hand_turn ] -> [ t | hand_turn ]\nright [ hand_turn ] [ ball | t | ball ] -> [ hand_turn ] [ down ball | t | left ball]\nright [ hand_turn ] [ ball | no t | ball ] -> [ hand_turn ] [ right ball | no t | up ball]\n\n\n\n[ hand_turn ] -> [ hand]\n[ action player ] [ hand ] -> [ action player ] [ hand_turn ] again \n\n[t]->[]\n\n[ body wall ] -> [ stationary body wall ] \n[ ball wall ] -> [ stationary ball wall ]\n\n[ > body | wall ] -> cancel\n\n\nlate down [ ball_wwww body_3_2 | player | ball_bbbb body_3_8 ] -> [ ball_wwww body_3_2 | player t | ball_bbbb body_3_8 ]\n\nlate right [ ball_wwbb body_3_4 | player t| ball_wwbb body_3_6 ] -> win \n\nlate [t] -> [ ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nno player\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n,,zbbbx,,\n,,nqwen,,\n,,nrgyn,,\n,,nuion,,\nzbmbbbmbx\nn.......n\nn.......n\nn..123..n\nn..456..n\nn..789..n\nn.......n\nn.......n\ncbbbbbbbf\n\nmessage The day is over\n\n!@£$\n%^&*\n_+{}\n:\"|<\n\n\n!!!$\n!@£!\n:\"|:\n::::\n\n\n>>>>\n>>>>\n????\n????\n\n?\n", [3, 0, 0, 1, 2, 2, 3, 0, 1, 1, 2, 2, 3, 3, 3, 0, 1, 1, 4], "background black:0,0,0,0,background wall wall_tl:1,background wall wall_v:2,2,2,2,\n2,2,2,background wall wall_bl:3,0,0,0,0,background wall wall_h:4,\nbackground:5,5,5,5,5,5,5,4,1,\n2,2,2,background wall wall_t:6,5,5,5,5,5,\n5,5,4,4,background body_3_1 wall:7,background ball_wwbb body_3_4 wall:8,background body_3_7 wall:9,4,5,\n5,background body_3_1:10,background ball_wwww body_3_4:11,background body_3_7:12,5,5,4,4,background ball_wwww body_3_2 wall:13,\nbackground body_3_5 wall:14,background ball_bbbb body_3_8 wall:15,4,5,5,background ball_wbwb body_3_2:16,background body_3_5 hand player:17,background ball_wbwb body_3_8:18,5,\n5,4,4,background body_3_3 wall:19,background ball_wwbb body_3_6 wall:20,background body_3_9 wall:21,4,5,5,\nbackground body_3_3:22,background ball_bbbb body_3_6:23,background body_3_9:24,5,5,4,background wall wall_tr:25,2,2,\n2,6,5,5,5,5,5,5,5,\n4,0,0,0,0,4,5,5,5,\n5,5,5,5,4,0,0,0,0,\n25,2,2,2,2,2,2,2,background wall wall_br:26,\n", 1, "1627891893861.785"] + "a distant sunset", + ["title a distant sunset\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nnorepeat_action\nagain_interval 0.3\n\n\nbackground_color darkblue\n\ntext_color LIGHTGRAY\n\n========\nOBJECTS\n========\n\nblack ,\nDARKBLUE\n\nBackground\nDARKBLUE\n\n\n\nWall\nDARKGREEN\n\nwall_tl\nDARKGREEN DARKBLUE \n00000\n01111\n01000\n01011\n01010\n\nwall_tr\ndarkgreen DARKBLUE\n00000\n11110\n00010\n11010\n01010\n\nwall_bl\nDARKGREEN DARKBLUE \n01010\n01011\n01000\n01111\n00000\n\nwall_br\ndarkgreen DARKBLUE\n01010\n11010\n00010\n11110\n00000\n\nwall_h\ndarkgreen DARKBLUE\n00000\n11111\n00000\n11111\n00000\n\nwall_v\ndarkgreen DARKBLUE\n01010\n01010\n01010\n01010\n01010\n\nwall_t\nDARKGREEN DARKBLUE\n01010\n11011\n00000\n11111\n00000\n\n\nPlayer\ngreen\n0.0.0\n.000.\n00000\n.000.\n0.0.0\n\n\n\nhand\nTRANSPARENT\n..000\n..000\n0.000\n.0000\n...00\n\nhand_turn\nTRANSPARENT\n000..\n.000.\n..000\n0.000\n.0000\n\n\nbody_1_1\nred blue\n....1\n...11\n..111\n.1111\n11111\n\nbody_1_2\nred blue\n11100\n11100\n11100\n11100\n11100\n\nbody_1_3\nred blue\n0....\n00...\n000..\n0000.\n00000\n\nbody_1_4\nblue\n\nbody_1_5\nred blue\n11100\n11100\n11100\n11000\n11000\n\nbody_1_6\nred\n\nbody_1_7\nred blue\n11111\n.1111\n..111\n...11\n....1\n\nbody_1_8\nred blue\n11000\n11000\n11000\n11000\n11000\n\nbody_1_9\nred\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\nbody_2_1\nred blue\n....0\n...00\n..100\n.1110\n11111\n\nbody_2_2\nred \n\nbody_2_3\nred blue\n0....\n00...\n000..\n0000.\n00000\n\nbody_2_4\nblue\n\nbody_2_5\nred blue\n00000\n10000\n11100\n11110\n11111\n\nbody_2_6\nred\n\nbody_2_7\nred blue\n11111\n.1111\n..111\n...11\n....1\n\nbody_2_8\nblue blue\n11000\n11000\n11000\n11000\n11000\n\nbody_2_9\nred blue\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\nbody_3_1\nred red\n....1\n...11\n..111\n.1111\n11111\n\nbody_3_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_3_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_3_4\nred blue\n00000\n00000\n00111\n11111\n11111\n\nbody_3_5\nred blue\n00000\n00000\n11111\n11111\n11111\n\nbody_3_6\nred blue\n00000\n00000\n11111\n11111\n11111\n\nbody_3_7\nblue blue\n11111\n.1111\n..111\n...11\n....1\n\nbody_3_8\nblue blue\n11000\n11000\n11000\n11000\n11000\n\nbody_3_9\nblue\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\nbody_4_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_4_2\nred \n\nbody_4_3\nred blue\n0....\n00...\n001..\n0111.\n11111\n\nbody_4_4\nred\n\nbody_4_5\nred blue\n00000\n00001\n00111\n01111\n11111\n\nbody_4_6\nblue\n\nbody_4_7\nred blue\n00001\n.0011\n..111\n...11\n....1\n\nbody_4_8\nblue blue\n11000\n11000\n11000\n11000\n11000\n\nbody_4_9\nblue blue\n10000\n1100.\n111..\n11...\n1....\n\n\nbody_5_1\nblue red\n....1\n...11\n..111\n.1111\n11111\n\nbody_5_2\nblue red\n11100\n11100\n11100\n11100\n11100\n\nbody_5_3\nblue red\n0....\n00...\n000..\n0000.\n00000\n\nbody_5_4\nred\n\nbody_5_5\nblue red\n11100\n11100\n11100\n11000\n11000\n\nbody_5_6\nblue\n\nbody_5_7\nblue red\n11111\n.1111\n..111\n...11\n....1\n\nbody_5_8\nblue red\n11000\n11000\n11000\n11000\n11000\n\nbody_5_9\nblue\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\nbody_6_1\nblue red\n....0\n...00\n..100\n.1110\n11111\n\nbody_6_2\nblue \n\nbody_6_3\nblue red\n0....\n00...\n000..\n0000.\n00000\n\nbody_6_4\nred\n\nbody_6_5\nblue red\n00000\n10000\n11100\n11110\n11111\n\nbody_6_6\nblue\n\nbody_6_7\nblue red\n11111\n.1111\n..111\n...11\n....1\n\nbody_6_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_6_9\nblue red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\n\n\nbody_7_1\nblue blue\n....1\n...11\n..111\n.1111\n11111\n\nbody_7_2\nblue blue\n11100\n11100\n11100\n11100\n11100\n\nbody_7_3\nblue blue\n0....\n00...\n000..\n0000.\n00000\n\nbody_7_4\nblue red\n00000\n00000\n00111\n11111\n11111\n\nbody_7_5\nblue red\n00000\n00000\n11111\n11111\n11111\n\nbody_7_6\nblue red\n00000\n00000\n11111\n11111\n11111\n\nbody_7_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_7_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_7_9\nred\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\n\nbody_8_1\nblue blue\n....0\n...00\n..100\n.1110\n11111\n\nbody_8_2\nblue \n\nbody_8_3\nblue red\n0....\n00...\n001..\n0111.\n11111\n\nbody_8_4\nblue\n\nbody_8_5\nblue red\n00000\n00001\n00111\n01111\n11111\n\nbody_8_6\nred\n\nbody_8_7\nblue red\n00001\n.0011\n..111\n...11\n....1\n\nbody_8_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_8_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\n\nball_wwww\nLIGHTGRAY LIGHTGRAY\n.000.\n00000\n00111\n11111\n.111.\n\nball_bbbb\nDARKGRAY DARKGRAY\n.000.\n00000\n00111\n11111\n.111.\n\nball_bbww\nDARKGRAY LIGHTGRAY\n.000.\n00000\n00111\n11111\n.111.\n\nball_wwbb\nLIGHTGRAY DARKGRAY\n.000.\n00000\n00111\n11111\n.111.\n\nball_bwbw\nLIGHTGRAY DARKGRAY \n.001.\n00011\n00111\n00111\n.011.\n\nball_wbwb\nDARKGRAY LIGHTGRAY \n.001.\n00011\n00111\n00111\n.011.\n\nt\nTRANSPARENT\n\n\n\nsprt_0_0 !\n#ec7153\n00000\n00000\n00000\n00000\n00000\n\nsprt_1_0 @\n#ec7153 #ecd25c\n00000\n00011\n00111\n00111\n00111\n\nsprt_2_0 £\n#ec7153 #ecd25c\n00000\n11000\n11100\n11100\n11100\n\nsprt_3_0 $\n#ec7153\n00000\n00000\n00000\n00000\n00000\n\nsprt_0_1 %\n#ec7153 #ecd25c\n00000\n00000\n00111\n01111\n01111\n\nsprt_1_1 ^\n#ec7153 #ecd25c\n00111\n00011\n10000\n11000\n11000\n\nsprt_2_1 &\n#ecd25c #ec7153\n00011\n00111\n11110\n11100\n11100\n\nsprt_3_1 *\n#ec7153 #ecd25c\n00000\n00000\n11100\n11110\n11110\n\nsprt_0_2 _\n#1ca4ff #44875f\n01111\n01111\n00111\n00000\n00000\n\nsprt_1_2 +\n#44875f #1ca4ff\n00111\n00111\n01111\n11100\n11000\n\nsprt_2_2 {\n#1ca4ff #44875f\n00011\n00011\n00001\n11000\n11100\n\nsprt_3_2 }\n#44875f #1ca4ff\n00001\n00001\n00011\n11111\n11111\n\nsprt_0_3 :\n#1ca4ff\n00000\n00000\n00000\n00000\n00000\n\nsprt_1_3 \"\n#1ca4ff #44875f\n00111\n00111\n00111\n00011\n00000\n\nsprt_2_3 |\n#44875f #1ca4ff\n00011\n00011\n00011\n00111\n11111\n\nsprt_3_3 <\n#1ca4ff\n00000\n00000\n00000\n00000\n00000\n\n\ndarkred >\ndarkred\n\ndarkblue ?\ndarkblue\n\nstars ~\nwhite\n.....\n.....\n.0...\n.....\n.....\n\n=======\nLEGEND\n=======\n\nball = ball_wwww or ball_bbbb or ball_bbww or ball_wwbb or ball_bwbw or ball_wbwb\n\n\nbody = body_1_1 or body_1_2 or body_1_3 or body_1_4 or body_1_5 or body_1_6 or body_1_7 or body_1_8 or body_1_9 or body_2_1 or body_2_2 or body_2_3 or body_2_4 or body_2_5 or body_2_6 or body_2_7 or body_2_8 or body_2_9 or body_3_1 or body_3_2 or body_3_3 or body_3_4 or body_3_5 or body_3_6 or body_3_7 or body_3_8 or body_3_9 or body_4_1 or body_4_2 or body_4_3 or body_4_4 or body_4_5 or body_4_6 or body_4_7 or body_4_8 or body_4_9 or body_5_1 or body_5_2 or body_5_3 or body_5_4 or body_5_5 or body_5_6 or body_5_7 or body_5_8 or body_5_9 or body_6_1 or body_6_2 or body_6_3 or body_6_4 or body_6_5 or body_6_6 or body_6_7 or body_6_8 or body_6_9 or body_7_1 or body_7_2 or body_7_3 or body_7_4 or body_7_5 or body_7_6 or body_7_7 or body_7_8 or body_7_9 or body_8_1 or body_8_2 or body_8_3 or body_8_4 or body_8_5 or body_8_6 or body_8_7 or body_8_8 or body_8_9\n\nhands = hand or hand_turn\n\napparatus = hands or body or ball\n. = Background\n# = Wall\nP = Player\n\n1 = body_1_1\n2 = body_1_2 and ball_wwww\n3 = body_1_3\n4 = body_1_4 and ball_wwww\n5 = body_1_5 and hand and Player\n6 = body_1_6 and ball_wwww\n7 = body_1_7\n8 = body_1_8 and ball_wwww\n9 = body_1_9\n\n\nq = wall and body_3_1 \nw = wall and body_3_2 and ball_wwww\ne = wall and body_3_3 \nr = wall and body_3_4 and ball_wwbb\ng = wall and body_3_5 \ny = wall and body_3_6 and ball_wwbb\nu = wall and body_3_7 \ni = wall and body_3_8 and ball_bbbb\no = wall and body_3_9 \n\n(\nq = wall \nw = wall and ball_wwww\ne = wall \nr = wall and ball_wwbb\ng = wall \ny = wall and ball_wwbb\nu = wall \ni = wall and ball_bbbb\no = wall \n)\n\nz = wall_tl and wall\nx = wall_tr and wall\nc = wall_bl and wall\nf = wall_br and wall\nb = wall_h and wall\nn = wall_v and wall\nm = wall_t and wall\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nblack\nWall\nPlayer\nbody\nball\nhands\nwall_tl, wall_tr, wall_bl, wall_br, wall_h, wall_v, wall_t\nt\n\nsprt_0_0, sprt_0_1, sprt_0_2, sprt_0_3, sprt_1_0, sprt_1_1, sprt_1_2, sprt_1_3, sprt_2_0, sprt_2_1, sprt_2_2, sprt_2_3, sprt_3_0, sprt_3_1, sprt_3_2, sprt_3_3, darkred, darkblue, stars\n\n======\nRULES\n======\n\n\n(ball translations)\n[ moving player ] [ ball no wall ] -> [ moving player ] [ moving ball ]\n\n(ball rotations)\n\nright [ ball | action player | ball ] -> [ down ball | action player | up ball ]\ndown [ ball | action player | ball ] -> [ left ball | action player | right ball ]\n\n\n(mark north of hand with t)\ndown [ | hand_turn ] -> [ t | hand_turn ]\nright [ hand_turn ] [ ball | t no wall | ball ] -> [ hand_turn ] [ down ball | t | left ball]\nright [ hand_turn ] [ ball | no wall no t | ball ] -> [ hand_turn ] [ right ball | no t | up ball]\n[t]->[]\n\n[ up ball_wwww ] -> [ ball_wwbb ]\n[ down ball_wwww ] -> [ ball_bbww ]\n[ right ball_wwww ] -> [ ball_wbwb ]\n[ left ball_wwww ] -> [ ball_bwbw ]\n\n[ up ball_bbbb ] -> [ ball_bbww ]\n[ down ball_bbbb ] -> [ ball_wwbb ]\n[ right ball_bbbb ] -> [ ball_bwbw ]\n[ left ball_bbbb ] -> [ ball_wbwb ]\n\n[ up ball_bbww ] -> [ ball_wwww ]\n[ down ball_bbww ] -> [ ball_bbbb ]\n[ right ball_bbww ] -> [ ball_bbww ]\n[ left ball_bbww ] -> [ ball_bbww ]\n\n[ up ball_wwbb ] -> [ ball_bbbb ]\n[ down ball_wwbb ] -> [ ball_wwww ]\n[ right ball_wwbb ] -> [ ball_wwbb ]\n[ left ball_wwbb ] -> [ ball_wwbb ]\n\n[ up ball_bwbw ] -> [ ball_bwbw ]\n[ down ball_bwbw ] -> [ ball_bwbw ]\n[ right ball_bwbw ] -> [ ball_wwww ]\n[ left ball_bwbw ] -> [ ball_bbbb ]\n\n[ up ball_wbwb ] -> [ ball_wbwb ]\n[ down ball_wbwb ] -> [ ball_wbwb ]\n[ right ball_wbwb ] -> [ ball_bbbb ]\n[ left ball_wbwb ] -> [ ball_wwww ]\n\n\n\n\n[ action player ] [ body_1_1 no wall ] -> [ action player ] [ body_2_1 ]\n[ action player ] [ body_1_2 no wall ] -> [ action player ] [ body_2_2 ]\n[ action player ] [ body_1_3 no wall ] -> [ action player ] [ body_2_3 ]\n[ action player ] [ body_1_4 no wall ] -> [ action player ] [ body_2_4 ]\n[ action player ] [ body_1_5 no wall ] -> [ action player ] [ body_2_5 ]\n[ action player ] [ body_1_6 no wall ] -> [ action player ] [ body_2_6 ]\n[ action player ] [ body_1_7 no wall ] -> [ action player ] [ body_2_7 ]\n[ action player ] [ body_1_8 no wall ] -> [ action player ] [ body_2_8 ]\n[ action player ] [ body_1_9 no wall ] -> [ action player ] [ body_2_9 ]\n\n[ action player ] [ body_3_1 no wall ] -> [ action player ] [ body_4_1 ]\n[ action player ] [ body_3_2 no wall ] -> [ action player ] [ body_4_2 ]\n[ action player ] [ body_3_3 no wall ] -> [ action player ] [ body_4_3 ]\n[ action player ] [ body_3_4 no wall ] -> [ action player ] [ body_4_4 ]\n[ action player ] [ body_3_5 no wall ] -> [ action player ] [ body_4_5 ]\n[ action player ] [ body_3_6 no wall ] -> [ action player ] [ body_4_6 ]\n[ action player ] [ body_3_7 no wall ] -> [ action player ] [ body_4_7 ]\n[ action player ] [ body_3_8 no wall ] -> [ action player ] [ body_4_8 ]\n[ action player ] [ body_3_9 no wall ] -> [ action player ] [ body_4_9 ]\n\n[ action player ] [ body_5_1 no wall ] -> [ action player ] [ body_6_1 ]\n[ action player ] [ body_5_2 no wall ] -> [ action player ] [ body_6_2 ]\n[ action player ] [ body_5_3 no wall ] -> [ action player ] [ body_6_3 ]\n[ action player ] [ body_5_4 no wall ] -> [ action player ] [ body_6_4 ]\n[ action player ] [ body_5_5 no wall ] -> [ action player ] [ body_6_5 ]\n[ action player ] [ body_5_6 no wall ] -> [ action player ] [ body_6_6 ]\n[ action player ] [ body_5_7 no wall ] -> [ action player ] [ body_6_7 ]\n[ action player ] [ body_5_8 no wall ] -> [ action player ] [ body_6_8 ]\n[ action player ] [ body_5_9 no wall ] -> [ action player ] [ body_6_9 ]\n\n[ action player ] [ body_7_1 no wall ] -> [ action player ] [ body_8_1 ]\n[ action player ] [ body_7_2 no wall ] -> [ action player ] [ body_8_2 ]\n[ action player ] [ body_7_3 no wall ] -> [ action player ] [ body_8_3 ]\n[ action player ] [ body_7_4 no wall ] -> [ action player ] [ body_8_4 ]\n[ action player ] [ body_7_5 no wall ] -> [ action player ] [ body_8_5 ]\n[ action player ] [ body_7_6 no wall ] -> [ action player ] [ body_8_6 ]\n[ action player ] [ body_7_7 no wall ] -> [ action player ] [ body_8_7 ]\n[ action player ] [ body_7_8 no wall ] -> [ action player ] [ body_8_8 ]\n[ action player ] [ body_7_9 no wall ] -> [ action player ] [ body_8_9 ]\n\n\n[ hand_turn ] [ body_2_1 no wall ] -> [ hand_turn ] [ body_3_1 ]\n[ hand_turn ] [ body_2_2 no wall ] -> [ hand_turn ] [ body_3_2 ]\n[ hand_turn ] [ body_2_3 no wall ] -> [ hand_turn ] [ body_3_3 ]\n[ hand_turn ] [ body_2_4 no wall ] -> [ hand_turn ] [ body_3_4 ]\n[ hand_turn ] [ body_2_5 no wall ] -> [ hand_turn ] [ body_3_5 ]\n[ hand_turn ] [ body_2_6 no wall ] -> [ hand_turn ] [ body_3_6 ]\n[ hand_turn ] [ body_2_7 no wall ] -> [ hand_turn ] [ body_3_7 ]\n[ hand_turn ] [ body_2_8 no wall ] -> [ hand_turn ] [ body_3_8 ]\n[ hand_turn ] [ body_2_9 no wall ] -> [ hand_turn ] [ body_3_9 ]\n\n[ hand_turn ] [ body_4_1 no wall ] -> [ hand_turn ] [ body_5_1 ]\n[ hand_turn ] [ body_4_2 no wall ] -> [ hand_turn ] [ body_5_2 ]\n[ hand_turn ] [ body_4_3 no wall ] -> [ hand_turn ] [ body_5_3 ]\n[ hand_turn ] [ body_4_4 no wall ] -> [ hand_turn ] [ body_5_4 ]\n[ hand_turn ] [ body_4_5 no wall ] -> [ hand_turn ] [ body_5_5 ]\n[ hand_turn ] [ body_4_6 no wall ] -> [ hand_turn ] [ body_5_6 ]\n[ hand_turn ] [ body_4_7 no wall ] -> [ hand_turn ] [ body_5_7 ]\n[ hand_turn ] [ body_4_8 no wall ] -> [ hand_turn ] [ body_5_8 ]\n[ hand_turn ] [ body_4_9 no wall ] -> [ hand_turn ] [ body_5_9 ]\n\n[ hand_turn ] [ body_6_1 no wall ] -> [ hand_turn ] [ body_7_1 ]\n[ hand_turn ] [ body_6_2 no wall ] -> [ hand_turn ] [ body_7_2 ]\n[ hand_turn ] [ body_6_3 no wall ] -> [ hand_turn ] [ body_7_3 ]\n[ hand_turn ] [ body_6_4 no wall ] -> [ hand_turn ] [ body_7_4 ]\n[ hand_turn ] [ body_6_5 no wall ] -> [ hand_turn ] [ body_7_5 ]\n[ hand_turn ] [ body_6_6 no wall ] -> [ hand_turn ] [ body_7_6 ]\n[ hand_turn ] [ body_6_7 no wall ] -> [ hand_turn ] [ body_7_7 ]\n[ hand_turn ] [ body_6_8 no wall ] -> [ hand_turn ] [ body_7_8 ]\n[ hand_turn ] [ body_6_9 no wall ] -> [ hand_turn ] [ body_7_9 ]\n\n[ hand_turn ] [ body_8_1 no wall ] -> [ hand_turn ] [ body_1_1 ]\n[ hand_turn ] [ body_8_2 no wall ] -> [ hand_turn ] [ body_1_2 ]\n[ hand_turn ] [ body_8_3 no wall ] -> [ hand_turn ] [ body_1_3 ]\n[ hand_turn ] [ body_8_4 no wall ] -> [ hand_turn ] [ body_1_4 ]\n[ hand_turn ] [ body_8_5 no wall ] -> [ hand_turn ] [ body_1_5 ]\n[ hand_turn ] [ body_8_6 no wall ] -> [ hand_turn ] [ body_1_6 ]\n[ hand_turn ] [ body_8_7 no wall ] -> [ hand_turn ] [ body_1_7 ]\n[ hand_turn ] [ body_8_8 no wall ] -> [ hand_turn ] [ body_1_8 ]\n[ hand_turn ] [ body_8_9 no wall ] -> [ hand_turn ] [ body_1_9 ]\n\n\n\n\n\n\n\n\n\n\n(need to do body rotations as well here!)\n\n(move object)\n[moving player ] [ stationary apparatus] -> [ moving player ] [ moving apparatus]\n\n\nright [ ball | action player | ball ] -> [ down ball | action player | up ball ]\ndown [ ball | action player | ball ] -> [ left ball | action player | right ball ]\n\n\ndown [ | hand_turn ] -> [ t | hand_turn ]\nright [ hand_turn ] [ ball | t | ball ] -> [ hand_turn ] [ down ball | t | left ball]\nright [ hand_turn ] [ ball | no t | ball ] -> [ hand_turn ] [ right ball | no t | up ball]\n\n\n\n[ hand_turn ] -> [ hand]\n[ action player ] [ hand ] -> [ action player ] [ hand_turn ] again \n\n[t]->[]\n\n[ body wall ] -> [ stationary body wall ] \n[ ball wall ] -> [ stationary ball wall ]\n\n[ > body | wall ] -> cancel\n\n\nlate down [ ball_wwww body_3_2 | player | ball_bbbb body_3_8 ] -> [ ball_wwww body_3_2 | player t | ball_bbbb body_3_8 ]\n\nlate right [ ball_wwbb body_3_4 | player t| ball_wwbb body_3_6 ] -> win \n\nlate [t] -> [ ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nno player\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n,,zbbbx,,\n,,nqwen,,\n,,nrgyn,,\n,,nuion,,\nzbmbbbmbx\nn.......n\nn.......n\nn..123..n\nn..456..n\nn..789..n\nn.......n\nn.......n\ncbbbbbbbf\n\nmessage The day is over\n\n!@£$\n%^&*\n_+{}\n:\"|<\n\n\n!!!$\n!@£!\n:\"|:\n::::\n\n\n>>>>\n>>>>\n????\n????\n\n?\n",[3,0,0,1,2,2,3,0,1,1,2,2,3,3,3,0,1,1,4],"background black:0,0,0,0,background wall wall_tl:1,background wall wall_v:2,2,2,2,\n2,2,2,background wall wall_bl:3,0,0,0,0,background wall wall_h:4,\nbackground:5,5,5,5,5,5,5,4,1,\n2,2,2,background wall wall_t:6,5,5,5,5,5,\n5,5,4,4,background body_3_1 wall:7,background ball_wwbb body_3_4 wall:8,background body_3_7 wall:9,4,5,\n5,background body_3_1:10,background ball_wwww body_3_4:11,background body_3_7:12,5,5,4,4,background ball_wwww body_3_2 wall:13,\nbackground body_3_5 wall:14,background ball_bbbb body_3_8 wall:15,4,5,5,background ball_wbwb body_3_2:16,background body_3_5 hand player:17,background ball_wbwb body_3_8:18,5,\n5,4,4,background body_3_3 wall:19,background ball_wwbb body_3_6 wall:20,background body_3_9 wall:21,4,5,5,\nbackground body_3_3:22,background ball_bbbb body_3_6:23,background body_3_9:24,5,5,4,background wall wall_tr:25,2,2,\n2,6,5,5,5,5,5,5,5,\n4,0,0,0,0,4,5,5,5,\n5,5,5,5,4,0,0,0,0,\n25,2,2,2,2,2,2,2,background wall wall_br:26,\n",1,"1627891893861.785"] ], [ - "Seize the flag!", - ["title Seize the flag!\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nnorepeat_action\nagain_interval 0.3\n\n\nbackground_color darkblue\n\ntext_color gray\n\n\nrun_rules_on_level_start\n\n\n========\nOBJECTS\n========\n\nblack ,\nblack\n\nBackground\nDARKGREEN\n\nlighttile\ndarkblue\n\ndarktile\ndarkgreen\n\ndoor \ngray darkbrown\n.111.\n10001\n10001\n10001\n11111\n\nkey k\nyellow\n00000\n0...0\n00000\n..0..\n..000\n\nperson б\nred darkred \n.000.\n01010\n.000.\n00000\n.0.0.\n\ntile_all\nwhite white white white\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\ntile_ur \nwhite black black white\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\ntile_dr \nblack white black white\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\ntile_ul \nwhite black white black\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\ntile_dl \nblack white white black\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\nflag г\nyellow white\n10000\n10000\n10000\n1....\n1....\n\nWall\ndarkgreen darkblue\n\nwall_tl\nDARKGREEN DARKBLUE \n00000\n01111\n01000\n01011\n01010\n\nwall_tr\ndarkgreen DARKBLUE\n00000\n11110\n00010\n11010\n01010\n\nwall_bl\nDARKGREEN DARKBLUE \n00000\n01110\n01010\n01110\n00000\n\nwall_br\ndarkblue darkgreen \n00100\n00100\n11111\n00100\n00100\n\nwall_h\ndarkgreen DARKBLUE\n00000\n11111\n00000\n11111\n00000\n\nwall_v\ndarkgreen DARKBLUE\n01010\n01010\n01010\n01010\n01010\n\nwall_t\nDARKGREEN DARKBLUE\n01010\n11011\n00000\n11111\n00000\n\n\nPlayer\nTRANSPARENT\n0.0.0\n.000.\n00000\n.000.\n0.0.0\n\n\n\nhand\nTRANSPARENT\n..000\n..000\n0.000\n.0000\n...00\n\nhand_turn\nTRANSPARENT\n000..\n.000.\n..000\n0.000\n.0000\n\n\nbody_1_1\nred red\n....1\n...11\n..1.1\n.1..1\n11111\n\nbody_1_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_1_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_1_4\nred\n\nbody_1_5\nred red\n11100\n11100\n11100\n11000\n11000\n\nbody_1_6\nred\n\nbody_1_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_1_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_1_9\nred\n00000\n0..0.\n0.0..\n00...\n0....\n\n\n\n\n\nbody_2_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_2_2\nred \n\nbody_2_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_2_4\nred red\n00000\n1.000\n1..00\n1.110\n11111\n\nbody_2_5\nred red\n00000\n10000\n11100\n11110\n11111\n\nbody_2_6\nred red\n00000\n100.0\n11..0\n111.0\n11111\n\nbody_2_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_2_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_2_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\nbody_3_1\nred red\n....1\n...11\n..111\n.1111\n11111\n\nbody_3_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_3_3\nred red\n0....\n00...\n0.0..\n0..0.\n00000\n\nbody_3_4\nred red\n00000\n00000\n00111\n11111\n11111\n\nbody_3_5\nred red\n00000\n00000\n11111\n11111\n11111\n\nbody_3_6\nred red\n00000\n00000\n11111\n11111\n11111\n\nbody_3_7\nred red\n11111\n.1..1\n..1.1\n...11\n....1\n\nbody_3_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_3_9\nred\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\nbody_4_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_4_2\nred red\n00000\n1...0\n11.00\n11110\n11111 \n\nbody_4_3\nred red\n0....\n00...\n001..\n0111.\n11111\n\nbody_4_4\nred\n\nbody_4_5\nred red\n00000\n00001\n00111\n01111\n11111\n\nbody_4_6\nred\n\nbody_4_7\nred red\n00001\n.0011\n..111\n...11\n....1\n\nbody_4_8\nred red\n11000\n11000\n11.00\n1...0\n11000\n\nbody_4_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\nbody_5_1\nred red\n....1\n...11\n..1.1\n.1..1\n11111\n\nbody_5_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_5_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_5_4\nred\n\nbody_5_5\nred red\n11100\n11100\n11100\n11000\n11000\n\nbody_5_6\nred\n\nbody_5_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_5_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_5_9\nred\n00000\n0..0.\n0.0..\n00...\n0....\n\n\n\n\n\nbody_6_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_6_2\nred \n\nbody_6_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_6_4\nred red\n00000\n1.000\n1..00\n1.110\n11111\n\nbody_6_5\nred red\n00000\n10000\n11100\n11110\n11111\n\nbody_6_6\nred red\n00000\n100.0\n11..0\n111.0\n11111\n\nbody_6_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_6_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_6_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\n\n\nbody_7_1\nred red\n....1\n...11\n..111\n.1111\n11111\n\nbody_7_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_7_3\nred red\n0....\n00...\n0.0..\n0..0.\n00000\n\nbody_7_4\nred red\n00000\n00000\n00111\n11111\n11111\n\nbody_7_5\nred red\n00000\n00000\n11111\n11111\n11111\n\nbody_7_6\nred red\n00000\n00000\n11111\n11111\n11111\n\nbody_7_7\nred red\n11111\n.1..1\n..1.1\n...11\n....1\n\nbody_7_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_7_9\nred\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\n\nbody_8_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_8_2\nred red\n00000\n1...0\n11.00\n11110\n11111 \n\nbody_8_3\nred red\n0....\n00...\n001..\n0111.\n11111\n\nbody_8_4\nred\n\nbody_8_5\nred red\n00000\n00001\n00111\n01111\n11111\n\nbody_8_6\nred\n\nbody_8_7\nred red\n00001\n.0011\n..111\n...11\n....1\n\nbody_8_8\nred red\n11000\n11000\n11.00\n1...0\n11000\n\nbody_8_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\n\nball_wwww\nwhite white\n.000.\n00000\n00111\n11111\n.111.\n\nball_bbbb\nblack black\n.000.\n00000\n00111\n11111\n.111.\n\nball_bbww\nblack white\n.000.\n00000\n00111\n11111\n.111.\n\nball_wwbb\nwhite black\n.000.\n00000\n00111\n11111\n.111.\n\nball_bwbw\nblack white \n.001.\n00011\n00111\n00111\n.011.\n\nball_wbwb\nwhite black \n.001.\n00011\n00111\n00111\n.011.\n\nt\nTRANSPARENT\n\n\n\n\n\n\ndarkred >\ndarkred\n\ndarkblue ?\ndarkblue\n\nstars ~\nwhite\n.....\n.....\n.0...\n.....\n.....\n\n\nmove_ul\ntransparent\n\nmove_ur\ntransparent\n\nmove_dl \ntransparent\n\nmove_dr\ntransparent\n\nmove_action\ntransparent\n\nmoved\ntransparent\n\nperson_target\ntransparent\n\n\n\n\nsprt_0_0 !\nyellow\n.....\n.....\n.....\n.....\n....0\n\nsprt_1_0 @\nyellow\n.....\n.....\n.0...\n000..\n00000\n\nsprt_2_0 £\nyellow white\n.....\n.....\n.....\n01...\n01...\n\n\nsprt_0_1 $\nyellow \n....0\n....0\n....0\n....0\n.....\n\nsprt_1_1 %\nyellow\n00000\n00000\n0.000\n...00\n.....\n\nsprt_2_1 ^\nyellow white\n01...\n01...\n01...\n.1...\n.1...\n\n\nsprt_0_2 &\nred darkred\n.....\n..000\n..010\n..000\n..001\n\nsprt_1_2 *\nred darkred\n.....\n0....\n1...0\n0..00\n1..0.\n\nsprt_2_2 -\nwhite red\n.0...\n111..\n111..\n.0...\n.0...\n\n\nsprt_0_3 \\\nred\n..000\n...00\n..000\n.0000\n00.00\n\nsprt_1_3 \"\nred\n0.00.\n000..\n0....\n0....\n0....\n\nsprt_2_3 \nwhite\n.0...\n.0...\n.....\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\nd = door and wall\nball = ball_wwww or ball_bbbb or ball_bbww or ball_wwbb or ball_bwbw or ball_wbwb\n\ntile = lighttile or darktile\n\nbody = body_1_1 or body_1_2 or body_1_3 or body_1_4 or body_1_5 or body_1_6 or body_1_7 or body_1_8 or body_1_9 or body_2_1 or body_2_2 or body_2_3 or body_2_4 or body_2_5 or body_2_6 or body_2_7 or body_2_8 or body_2_9 or body_3_1 or body_3_2 or body_3_3 or body_3_4 or body_3_5 or body_3_6 or body_3_7 or body_3_8 or body_3_9 or body_4_1 or body_4_2 or body_4_3 or body_4_4 or body_4_5 or body_4_6 or body_4_7 or body_4_8 or body_4_9 or body_5_1 or body_5_2 or body_5_3 or body_5_4 or body_5_5 or body_5_6 or body_5_7 or body_5_8 or body_5_9 or body_6_1 or body_6_2 or body_6_3 or body_6_4 or body_6_5 or body_6_6 or body_6_7 or body_6_8 or body_6_9 or body_7_1 or body_7_2 or body_7_3 or body_7_4 or body_7_5 or body_7_6 or body_7_7 or body_7_8 or body_7_9 or body_8_1 or body_8_2 or body_8_3 or body_8_4 or body_8_5 or body_8_6 or body_8_7 or body_8_8 or body_8_9\n\nhands = hand or hand_turn\n\napparatus = hands or body or ball\n. = Background\n# = Wall\nP = Player\n\n1 = body_1_1\n2 = body_1_2 and ball_bbbb\n3 = body_1_3\n4 = body_1_4 and ball_bbbb\n5 = body_1_5 and hand and Player\n6 = body_1_6 and ball_bbbb\n7 = body_1_7\n8 = body_1_8 and ball_bbbb\n9 = body_1_9\n\n(\nq = wall and body_3_1 \nw = wall and body_3_2 and ball_wwww\ne = wall and body_3_3 \nr = wall and body_3_4 and ball_wwbb\ng = wall and body_3_5 \ny = wall and body_3_6 and ball_wwbb\nu = wall and body_3_7 \ni = wall and body_3_8 and ball_bbbb\no = wall and body_3_9 \n)\n\nq = wall \nw = wall and ball_wwww\ne = wall \nr = wall and ball_wwbb\ng = wall \ny = wall and ball_wwbb\nu = wall \ni = wall and ball_bbbb\no = wall \n\n\nz = wall_tl and wall\nx = wall_tr and wall\nc = wall_bl and wall\nf = wall_br and wall\nb = wall_h and wall\nn = wall_v and wall\nm = wall_t and wall\n\n\nmove = move_ul or move_ur or move_dl or move_dr or move_action or moved\n\nmove_active = move_ul or move_ur or move_dl or move_dr\n\nє = tile_ul and Wall\nґ = tile_ur and Wall\nж = tile_dl and Wall\nд = tile_dr and Wall\nЮ = tile_all and Wall\n| = sprt_2_3 and Player\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nblack\ntile\nwall\nwall_tl, wall_tr, wall_bl, wall_br, wall_h, wall_v, wall_t\ndoor, key\nflag\nPlayer\nbody\nball\nhands\nt\n\ntile_ul, tile_ur, tile_dl, tile_dr, tile_all\n\nsprt_0_0, sprt_0_1, sprt_0_2, sprt_0_3, sprt_1_0, sprt_1_1, sprt_1_2, sprt_1_3, sprt_2_0, sprt_2_1, sprt_2_2, sprt_2_3, darkred, darkblue, stars\n\nperson\nperson_Target\nmove\n\n======\nRULES\n======\n\nright [flag | wall ] -> [flag wall | wall ]\n[person no tile ] -> [ person darktile]\n\n[darktile | no tile no wall ] -> [darktile | lighttile ]\n+[lighttile | no tile no wall ] -> [ lighttile | darktile ]\n(ball translations)\n [ ball | perpendicular player | ball ] -> [ perpendicular ball | perpendicular player | perpendicular ball ]\n\n(ball rotations)\n\nright [ ball | action player | ball ] -> [ down ball | action player | up ball ]\ndown [ ball | action player | ball ] -> [ left ball | action player | right ball ]\n\n\n[ up ball_wwww ] -> [ ball_wwbb ]\n[ down ball_wwww ] -> [ ball_bbww ]\n[ right ball_wwww ] -> [ ball_bwbw ]\n[ left ball_wwww ] -> [ ball_wbwb ]\n\n[ up ball_bbbb ] -> [ ball_bbww ]\n[ down ball_bbbb ] -> [ ball_wwbb ]\n[ right ball_bbbb ] -> [ ball_wbwb ]\n[ left ball_bbbb ] -> [ ball_bwbw ]\n\n[ up ball_bbww ] -> [ ball_wwww ]\n[ down ball_bbww ] -> [ ball_bbbb ]\n[ right ball_bbww ] -> [ ball_bbww ]\n[ left ball_bbww ] -> [ ball_bbww ]\n\n[ up ball_wwbb ] -> [ ball_bbbb ]\n[ down ball_wwbb ] -> [ ball_wwww ]\n[ right ball_wwbb ] -> [ ball_wwbb ]\n[ left ball_wwbb ] -> [ ball_wwbb ]\n\n[ up ball_bwbw ] -> [ ball_bwbw ]\n[ down ball_bwbw ] -> [ ball_bwbw ]\n[ right ball_bwbw ] -> [ ball_bbbb ]\n[ left ball_bwbw ] -> [ ball_wwww ]\n\n[ up ball_wbwb ] -> [ ball_wbwb ]\n[ down ball_wbwb ] -> [ ball_wbwb ]\n[ right ball_wbwb ] -> [ ball_wwww ]\n[ left ball_wbwb ] -> [ ball_bbbb ]\n\n\n\n\n(second part of movemet - rotate)\ndown [ | hand_turn ] -> [ t | hand_turn ]\nright [ hand_turn ] [ ball | t no wall | ball ] -> [ hand_turn ] [ down ball | t | left ball]\nright [ hand_turn ] [ ball | no wall no t | ball ] -> [ hand_turn ] [ right ball | no t | up ball]\n[t]->[]\n\n\n[ moving ball_wwww ] -> [ ball_wwww ]\n[ moving ball_bbbb ] -> [ ball_bbbb ]\n[ moving ball_bbww ] -> [ ball_bwbw ]\n[ moving ball_wwbb ] -> [ ball_wbwb ]\n[ moving ball_bwbw ] -> [ ball_wwbb ]\n[ moving ball_wbwb ] -> [ ball_bbww ]\n\n\n\n[ action player ] [ body_1_1 no wall ] -> [ action player ] [ body_2_1 ]\n[ action player ] [ body_1_2 no wall ] -> [ action player ] [ body_2_2 ]\n[ action player ] [ body_1_3 no wall ] -> [ action player ] [ body_2_3 ]\n[ action player ] [ body_1_4 no wall ] -> [ action player ] [ body_2_4 ]\n[ action player ] [ body_1_5 no wall ] -> [ action player ] [ body_2_5 ]\n[ action player ] [ body_1_6 no wall ] -> [ action player ] [ body_2_6 ]\n[ action player ] [ body_1_7 no wall ] -> [ action player ] [ body_2_7 ]\n[ action player ] [ body_1_8 no wall ] -> [ action player ] [ body_2_8 ]\n[ action player ] [ body_1_9 no wall ] -> [ action player ] [ body_2_9 ]\n\n[ action player ] [ body_3_1 no wall ] -> [ action player ] [ body_4_1 ]\n[ action player ] [ body_3_2 no wall ] -> [ action player ] [ body_4_2 ]\n[ action player ] [ body_3_3 no wall ] -> [ action player ] [ body_4_3 ]\n[ action player ] [ body_3_4 no wall ] -> [ action player ] [ body_4_4 ]\n[ action player ] [ body_3_5 no wall ] -> [ action player ] [ body_4_5 ]\n[ action player ] [ body_3_6 no wall ] -> [ action player ] [ body_4_6 ]\n[ action player ] [ body_3_7 no wall ] -> [ action player ] [ body_4_7 ]\n[ action player ] [ body_3_8 no wall ] -> [ action player ] [ body_4_8 ]\n[ action player ] [ body_3_9 no wall ] -> [ action player ] [ body_4_9 ]\n\n[ action player ] [ body_5_1 no wall ] -> [ action player ] [ body_6_1 ]\n[ action player ] [ body_5_2 no wall ] -> [ action player ] [ body_6_2 ]\n[ action player ] [ body_5_3 no wall ] -> [ action player ] [ body_6_3 ]\n[ action player ] [ body_5_4 no wall ] -> [ action player ] [ body_6_4 ]\n[ action player ] [ body_5_5 no wall ] -> [ action player ] [ body_6_5 ]\n[ action player ] [ body_5_6 no wall ] -> [ action player ] [ body_6_6 ]\n[ action player ] [ body_5_7 no wall ] -> [ action player ] [ body_6_7 ]\n[ action player ] [ body_5_8 no wall ] -> [ action player ] [ body_6_8 ]\n[ action player ] [ body_5_9 no wall ] -> [ action player ] [ body_6_9 ]\n\n[ action player ] [ body_7_1 no wall ] -> [ action player ] [ body_8_1 ]\n[ action player ] [ body_7_2 no wall ] -> [ action player ] [ body_8_2 ]\n[ action player ] [ body_7_3 no wall ] -> [ action player ] [ body_8_3 ]\n[ action player ] [ body_7_4 no wall ] -> [ action player ] [ body_8_4 ]\n[ action player ] [ body_7_5 no wall ] -> [ action player ] [ body_8_5 ]\n[ action player ] [ body_7_6 no wall ] -> [ action player ] [ body_8_6 ]\n[ action player ] [ body_7_7 no wall ] -> [ action player ] [ body_8_7 ]\n[ action player ] [ body_7_8 no wall ] -> [ action player ] [ body_8_8 ]\n[ action player ] [ body_7_9 no wall ] -> [ action player ] [ body_8_9 ]\n\n\n[ hand_turn ] [ body_2_1 no wall ] -> [ hand_turn ] [ body_3_1 ]\n[ hand_turn ] [ body_2_2 no wall ] -> [ hand_turn ] [ body_3_2 ]\n[ hand_turn ] [ body_2_3 no wall ] -> [ hand_turn ] [ body_3_3 ]\n[ hand_turn ] [ body_2_4 no wall ] -> [ hand_turn ] [ body_3_4 ]\n[ hand_turn ] [ body_2_5 no wall ] -> [ hand_turn ] [ body_3_5 ]\n[ hand_turn ] [ body_2_6 no wall ] -> [ hand_turn ] [ body_3_6 ]\n[ hand_turn ] [ body_2_7 no wall ] -> [ hand_turn ] [ body_3_7 ]\n[ hand_turn ] [ body_2_8 no wall ] -> [ hand_turn ] [ body_3_8 ]\n[ hand_turn ] [ body_2_9 no wall ] -> [ hand_turn ] [ body_3_9 ]\n\n[ hand_turn ] [ body_4_1 no wall ] -> [ hand_turn ] [ body_5_1 ]\n[ hand_turn ] [ body_4_2 no wall ] -> [ hand_turn ] [ body_5_2 ]\n[ hand_turn ] [ body_4_3 no wall ] -> [ hand_turn ] [ body_5_3 ]\n[ hand_turn ] [ body_4_4 no wall ] -> [ hand_turn ] [ body_5_4 ]\n[ hand_turn ] [ body_4_5 no wall ] -> [ hand_turn ] [ body_5_5 ]\n[ hand_turn ] [ body_4_6 no wall ] -> [ hand_turn ] [ body_5_6 ]\n[ hand_turn ] [ body_4_7 no wall ] -> [ hand_turn ] [ body_5_7 ]\n[ hand_turn ] [ body_4_8 no wall ] -> [ hand_turn ] [ body_5_8 ]\n[ hand_turn ] [ body_4_9 no wall ] -> [ hand_turn ] [ body_5_9 ]\n\n[ hand_turn ] [ body_6_1 no wall ] -> [ hand_turn ] [ body_7_1 ]\n[ hand_turn ] [ body_6_2 no wall ] -> [ hand_turn ] [ body_7_2 ]\n[ hand_turn ] [ body_6_3 no wall ] -> [ hand_turn ] [ body_7_3 ]\n[ hand_turn ] [ body_6_4 no wall ] -> [ hand_turn ] [ body_7_4 ]\n[ hand_turn ] [ body_6_5 no wall ] -> [ hand_turn ] [ body_7_5 ]\n[ hand_turn ] [ body_6_6 no wall ] -> [ hand_turn ] [ body_7_6 ]\n[ hand_turn ] [ body_6_7 no wall ] -> [ hand_turn ] [ body_7_7 ]\n[ hand_turn ] [ body_6_8 no wall ] -> [ hand_turn ] [ body_7_8 ]\n[ hand_turn ] [ body_6_9 no wall ] -> [ hand_turn ] [ body_7_9 ]\n\n[ hand_turn ] [ body_8_1 no wall ] -> [ hand_turn ] [ body_1_1 ]\n[ hand_turn ] [ body_8_2 no wall ] -> [ hand_turn ] [ body_1_2 ]\n[ hand_turn ] [ body_8_3 no wall ] -> [ hand_turn ] [ body_1_3 ]\n[ hand_turn ] [ body_8_4 no wall ] -> [ hand_turn ] [ body_1_4 ]\n[ hand_turn ] [ body_8_5 no wall ] -> [ hand_turn ] [ body_1_5 ]\n[ hand_turn ] [ body_8_6 no wall ] -> [ hand_turn ] [ body_1_6 ]\n[ hand_turn ] [ body_8_7 no wall ] -> [ hand_turn ] [ body_1_7 ]\n[ hand_turn ] [ body_8_8 no wall ] -> [ hand_turn ] [ body_1_8 ]\n[ hand_turn ] [ body_8_9 no wall ] -> [ hand_turn ] [ body_1_9 ]\n\n\n\n\n\n\n\n\n\n(need to do body rotations as well here!)\n\n(move object)\n[moving player ] [ stationary apparatus] -> [ moving player ] [ moving apparatus]\n\n\nright [ ball | action player | ball ] -> [ down ball | action player | up ball ]\ndown [ ball | action player | ball ] -> [ left ball | action player | right ball ]\n\n\ndown [ | hand_turn ] -> [ t | hand_turn ]\nright [ hand_turn ] [ ball | t | ball ] -> [ hand_turn ] [ down ball | t | left ball]\nright [ hand_turn ] [ ball | no t | ball ] -> [ hand_turn ] [ right ball | no t | up ball]\n\n\n\n[ hand_turn ] -> [ hand]\n[ action player ] [ hand ] -> [ action player ] [ hand_turn ] again \n\n[t]->[]\n\n[ body wall ] -> [ stationary body wall ] \n[ ball wall ] -> [ stationary ball wall ]\n\n[ > body | wall ] -> cancel\n\n\nrandom up [move_ul] [person | ] -> [ move_ul] [ person | person_target]\nrandom up [move_ur] [person | ] -> [ move_ur] [ person | person_target]\nrandom down [move_dl] [person | ] -> [ move_dl] [ person | person_target]\nrandom down [move_dr] [person | ] -> [ move_dr] [ person | person_target]\n\nrandom left [move_ul] [person_target | ] -> [ moved] [ | person_target ]\nrandom right [move_ur] [person_target | ] -> [ moved] [ | person_target ]\nrandom left [move_dl] [person_target | ] -> [ moved] [ | person_target ]\nrandom right [move_dr] [person_target | ] -> [ moved] [ | person_target ]\n[person_target wall ] -> [ wall] \n\n[person_target ] [ person ] -> [ person ] [ ]\n\n[move_active]->[]\n\nlate down [ ball_wwww | player no moved | ball_bbbb ] -> [ ball_wwww | player t | ball_bbbb ]\nlate right [ ball_wwww | player t| ball_bbbb ] -> [ ball_wwww | player move_ul | ball_bbbb ] again\nlate [t] -> [ ]\n\n\nlate down [ ball_wwww | player no moved | ball_bbbb ] -> [ ball_wwww | player t | ball_bbbb ]\nlate right [ ball_bbbb | player t| ball_wwww ] -> [ ball_bbbb | player move_ur | ball_wwww ] again\nlate [t] -> [ ]\n\n\nlate down [ ball_bbbb | player no moved | ball_wwww ] -> [ ball_bbbb | player t | ball_wwww ]\nlate right [ ball_wwww | player t| ball_bbbb ] -> [ ball_wwww | player move_dl | ball_bbbb ] again\nlate [t] -> [ ]\n\n\nlate down [ ball_bbbb | player no moved | ball_wwww ] -> [ ball_bbbb | player t | ball_wwww ]\nlate right [ ball_bbbb | player t| ball_wwww ] -> [ ball_bbbb | player move_dr | ball_wwww ] again\nlate [t] -> [ ]\n\n\nlate down [ ball_wwww | player no moved | ball_wwww ] -> [ ball_wwww | player t | ball_wwww ]\nlate right [ ball_wwww | player t | ball_wwww ] [person flag] -> win\nlate [t] -> [ ]\n\nlate [moved]->[]\n\n[action player sprt_2_3] -> win\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\nfffffffffffffffffffffffff\nffffю.гffffcbbbbbbbbbbbcf\nfffffffffffn...........nf\nfєbbbbbbbґfn...........nf\nfn.......nfn...........nf\nfn.......nfn...cbbbc...nf\nfn..123..nfn...n...n...nf\nfn..456..nfn...n.г.n...nf\nfn..789..nfn...n...c...nf\nfn.......nfn.б.n.......nf\nfn.......nfn...n.......nf\nfжbbbbbbbдfcbbbcbbbbbbbcf\nfffffffffffffffffffffffff\n\nmessage victory!\n\n!@£\n$%^\n&*-\n\\\"|\n\n\n\n", [3, 0, 4, 0, 4, 1, 3, 2, 1, 1, 4, 2, 3, 1, 1, 0, 0, 3, 1], "background wall wall_br:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background tile_ul wall:1,background wall wall_v:2,2,2,2,2,2,2,background tile_dl wall:3,\n0,0,0,0,background wall wall_h:4,background body_7_1:5,background ball_wwww body_7_4:6,background body_7_7:7,background:8,8,8,8,4,0,0,0,0,4,background ball_wwww body_7_2:9,background body_7_5 hand player:10,background ball_bbbb body_7_8:11,8,8,8,8,\n4,0,0,background tile_all wall:12,0,4,background body_7_3:13,background ball_bbbb body_7_6:14,background body_7_9:15,8,8,8,8,4,0,0,8,0,4,8,8,8,8,8,8,\n8,4,0,0,background flag wall:16,0,4,8,8,8,8,8,8,8,4,0,0,0,0,4,8,8,8,8,8,\n8,8,4,0,0,0,0,4,8,8,8,8,8,8,8,4,0,0,0,0,background tile_ur wall:17,2,2,2,2,\n2,2,2,background tile_dr wall:18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background wall wall_bl:19,2,2,2,2,2,\n2,2,2,2,19,0,0,4,background darktile:20,background lighttile:21,20,21,background darktile person:22,21,20,21,20,4,0,0,4,21,20,21,20,\n21,20,21,20,21,4,0,0,4,20,21,20,21,20,21,20,21,20,4,0,0,4,21,20,21,\n19,2,2,2,2,2,19,0,0,4,20,21,20,4,20,21,20,21,20,4,0,0,4,21,20,\n21,4,21,background darktile flag:23,21,20,21,4,0,0,4,20,21,20,4,20,21,20,21,20,4,0,0,4,21,\n20,21,19,2,2,19,20,21,4,0,0,4,20,21,20,21,20,21,20,21,20,4,0,0,4,\n21,20,21,20,21,20,21,20,21,4,0,0,4,20,21,20,21,20,21,20,21,20,4,0,0,\n19,2,2,2,2,2,2,2,2,2,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 1, "1627891910482.2163"] + "Seize the flag!", + ["title Seize the flag!\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nnorepeat_action\nagain_interval 0.3\n\n\nbackground_color darkblue\n\ntext_color gray\n\n\nrun_rules_on_level_start\n\n\n========\nOBJECTS\n========\n\nblack ,\nblack\n\nBackground\nDARKGREEN\n\nlighttile\ndarkblue\n\ndarktile\ndarkgreen\n\ndoor \ngray darkbrown\n.111.\n10001\n10001\n10001\n11111\n\nkey k\nyellow\n00000\n0...0\n00000\n..0..\n..000\n\nperson б\nred darkred \n.000.\n01010\n.000.\n00000\n.0.0.\n\ntile_all\nwhite white white white\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\ntile_ur \nwhite black black white\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\ntile_dr \nblack white black white\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\ntile_ul \nwhite black white black\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\ntile_dl \nblack white white black\n.000.\n2.0.3\n22.33\n2.1.3\n.111.\n\nflag г\nyellow white\n10000\n10000\n10000\n1....\n1....\n\nWall\ndarkgreen darkblue\n\nwall_tl\nDARKGREEN DARKBLUE \n00000\n01111\n01000\n01011\n01010\n\nwall_tr\ndarkgreen DARKBLUE\n00000\n11110\n00010\n11010\n01010\n\nwall_bl\nDARKGREEN DARKBLUE \n00000\n01110\n01010\n01110\n00000\n\nwall_br\ndarkblue darkgreen \n00100\n00100\n11111\n00100\n00100\n\nwall_h\ndarkgreen DARKBLUE\n00000\n11111\n00000\n11111\n00000\n\nwall_v\ndarkgreen DARKBLUE\n01010\n01010\n01010\n01010\n01010\n\nwall_t\nDARKGREEN DARKBLUE\n01010\n11011\n00000\n11111\n00000\n\n\nPlayer\nTRANSPARENT\n0.0.0\n.000.\n00000\n.000.\n0.0.0\n\n\n\nhand\nTRANSPARENT\n..000\n..000\n0.000\n.0000\n...00\n\nhand_turn\nTRANSPARENT\n000..\n.000.\n..000\n0.000\n.0000\n\n\nbody_1_1\nred red\n....1\n...11\n..1.1\n.1..1\n11111\n\nbody_1_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_1_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_1_4\nred\n\nbody_1_5\nred red\n11100\n11100\n11100\n11000\n11000\n\nbody_1_6\nred\n\nbody_1_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_1_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_1_9\nred\n00000\n0..0.\n0.0..\n00...\n0....\n\n\n\n\n\nbody_2_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_2_2\nred \n\nbody_2_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_2_4\nred red\n00000\n1.000\n1..00\n1.110\n11111\n\nbody_2_5\nred red\n00000\n10000\n11100\n11110\n11111\n\nbody_2_6\nred red\n00000\n100.0\n11..0\n111.0\n11111\n\nbody_2_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_2_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_2_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\nbody_3_1\nred red\n....1\n...11\n..111\n.1111\n11111\n\nbody_3_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_3_3\nred red\n0....\n00...\n0.0..\n0..0.\n00000\n\nbody_3_4\nred red\n00000\n00000\n00111\n11111\n11111\n\nbody_3_5\nred red\n00000\n00000\n11111\n11111\n11111\n\nbody_3_6\nred red\n00000\n00000\n11111\n11111\n11111\n\nbody_3_7\nred red\n11111\n.1..1\n..1.1\n...11\n....1\n\nbody_3_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_3_9\nred\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\nbody_4_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_4_2\nred red\n00000\n1...0\n11.00\n11110\n11111 \n\nbody_4_3\nred red\n0....\n00...\n001..\n0111.\n11111\n\nbody_4_4\nred\n\nbody_4_5\nred red\n00000\n00001\n00111\n01111\n11111\n\nbody_4_6\nred\n\nbody_4_7\nred red\n00001\n.0011\n..111\n...11\n....1\n\nbody_4_8\nred red\n11000\n11000\n11.00\n1...0\n11000\n\nbody_4_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\nbody_5_1\nred red\n....1\n...11\n..1.1\n.1..1\n11111\n\nbody_5_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_5_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_5_4\nred\n\nbody_5_5\nred red\n11100\n11100\n11100\n11000\n11000\n\nbody_5_6\nred\n\nbody_5_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_5_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_5_9\nred\n00000\n0..0.\n0.0..\n00...\n0....\n\n\n\n\n\nbody_6_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_6_2\nred \n\nbody_6_3\nred red\n0....\n00...\n000..\n0000.\n00000\n\nbody_6_4\nred red\n00000\n1.000\n1..00\n1.110\n11111\n\nbody_6_5\nred red\n00000\n10000\n11100\n11110\n11111\n\nbody_6_6\nred red\n00000\n100.0\n11..0\n111.0\n11111\n\nbody_6_7\nred red\n11111\n.1111\n..111\n...11\n....1\n\nbody_6_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_6_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\n\n\nbody_7_1\nred red\n....1\n...11\n..111\n.1111\n11111\n\nbody_7_2\nred red\n11100\n11100\n11100\n11100\n11100\n\nbody_7_3\nred red\n0....\n00...\n0.0..\n0..0.\n00000\n\nbody_7_4\nred red\n00000\n00000\n00111\n11111\n11111\n\nbody_7_5\nred red\n00000\n00000\n11111\n11111\n11111\n\nbody_7_6\nred red\n00000\n00000\n11111\n11111\n11111\n\nbody_7_7\nred red\n11111\n.1..1\n..1.1\n...11\n....1\n\nbody_7_8\nred red\n11000\n11000\n11000\n11000\n11000\n\nbody_7_9\nred\n00000\n0000.\n000..\n00...\n0....\n\n\n\n\n\n\nbody_8_1\nred red\n....0\n...00\n..100\n.1110\n11111\n\nbody_8_2\nred red\n00000\n1...0\n11.00\n11110\n11111 \n\nbody_8_3\nred red\n0....\n00...\n001..\n0111.\n11111\n\nbody_8_4\nred\n\nbody_8_5\nred red\n00000\n00001\n00111\n01111\n11111\n\nbody_8_6\nred\n\nbody_8_7\nred red\n00001\n.0011\n..111\n...11\n....1\n\nbody_8_8\nred red\n11000\n11000\n11.00\n1...0\n11000\n\nbody_8_9\nred red\n10000\n1100.\n111..\n11...\n1....\n\n\n\n\n\nball_wwww\nwhite white\n.000.\n00000\n00111\n11111\n.111.\n\nball_bbbb\nblack black\n.000.\n00000\n00111\n11111\n.111.\n\nball_bbww\nblack white\n.000.\n00000\n00111\n11111\n.111.\n\nball_wwbb\nwhite black\n.000.\n00000\n00111\n11111\n.111.\n\nball_bwbw\nblack white \n.001.\n00011\n00111\n00111\n.011.\n\nball_wbwb\nwhite black \n.001.\n00011\n00111\n00111\n.011.\n\nt\nTRANSPARENT\n\n\n\n\n\n\ndarkred >\ndarkred\n\ndarkblue ?\ndarkblue\n\nstars ~\nwhite\n.....\n.....\n.0...\n.....\n.....\n\n\nmove_ul\ntransparent\n\nmove_ur\ntransparent\n\nmove_dl \ntransparent\n\nmove_dr\ntransparent\n\nmove_action\ntransparent\n\nmoved\ntransparent\n\nperson_target\ntransparent\n\n\n\n\nsprt_0_0 !\nyellow\n.....\n.....\n.....\n.....\n....0\n\nsprt_1_0 @\nyellow\n.....\n.....\n.0...\n000..\n00000\n\nsprt_2_0 £\nyellow white\n.....\n.....\n.....\n01...\n01...\n\n\nsprt_0_1 $\nyellow \n....0\n....0\n....0\n....0\n.....\n\nsprt_1_1 %\nyellow\n00000\n00000\n0.000\n...00\n.....\n\nsprt_2_1 ^\nyellow white\n01...\n01...\n01...\n.1...\n.1...\n\n\nsprt_0_2 &\nred darkred\n.....\n..000\n..010\n..000\n..001\n\nsprt_1_2 *\nred darkred\n.....\n0....\n1...0\n0..00\n1..0.\n\nsprt_2_2 -\nwhite red\n.0...\n111..\n111..\n.0...\n.0...\n\n\nsprt_0_3 \\\nred\n..000\n...00\n..000\n.0000\n00.00\n\nsprt_1_3 \"\nred\n0.00.\n000..\n0....\n0....\n0....\n\nsprt_2_3 \nwhite\n.0...\n.0...\n.....\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\nd = door and wall\nball = ball_wwww or ball_bbbb or ball_bbww or ball_wwbb or ball_bwbw or ball_wbwb\n\ntile = lighttile or darktile\n\nbody = body_1_1 or body_1_2 or body_1_3 or body_1_4 or body_1_5 or body_1_6 or body_1_7 or body_1_8 or body_1_9 or body_2_1 or body_2_2 or body_2_3 or body_2_4 or body_2_5 or body_2_6 or body_2_7 or body_2_8 or body_2_9 or body_3_1 or body_3_2 or body_3_3 or body_3_4 or body_3_5 or body_3_6 or body_3_7 or body_3_8 or body_3_9 or body_4_1 or body_4_2 or body_4_3 or body_4_4 or body_4_5 or body_4_6 or body_4_7 or body_4_8 or body_4_9 or body_5_1 or body_5_2 or body_5_3 or body_5_4 or body_5_5 or body_5_6 or body_5_7 or body_5_8 or body_5_9 or body_6_1 or body_6_2 or body_6_3 or body_6_4 or body_6_5 or body_6_6 or body_6_7 or body_6_8 or body_6_9 or body_7_1 or body_7_2 or body_7_3 or body_7_4 or body_7_5 or body_7_6 or body_7_7 or body_7_8 or body_7_9 or body_8_1 or body_8_2 or body_8_3 or body_8_4 or body_8_5 or body_8_6 or body_8_7 or body_8_8 or body_8_9\n\nhands = hand or hand_turn\n\napparatus = hands or body or ball\n. = Background\n# = Wall\nP = Player\n\n1 = body_1_1\n2 = body_1_2 and ball_bbbb\n3 = body_1_3\n4 = body_1_4 and ball_bbbb\n5 = body_1_5 and hand and Player\n6 = body_1_6 and ball_bbbb\n7 = body_1_7\n8 = body_1_8 and ball_bbbb\n9 = body_1_9\n\n(\nq = wall and body_3_1 \nw = wall and body_3_2 and ball_wwww\ne = wall and body_3_3 \nr = wall and body_3_4 and ball_wwbb\ng = wall and body_3_5 \ny = wall and body_3_6 and ball_wwbb\nu = wall and body_3_7 \ni = wall and body_3_8 and ball_bbbb\no = wall and body_3_9 \n)\n\nq = wall \nw = wall and ball_wwww\ne = wall \nr = wall and ball_wwbb\ng = wall \ny = wall and ball_wwbb\nu = wall \ni = wall and ball_bbbb\no = wall \n\n\nz = wall_tl and wall\nx = wall_tr and wall\nc = wall_bl and wall\nf = wall_br and wall\nb = wall_h and wall\nn = wall_v and wall\nm = wall_t and wall\n\n\nmove = move_ul or move_ur or move_dl or move_dr or move_action or moved\n\nmove_active = move_ul or move_ur or move_dl or move_dr\n\nє = tile_ul and Wall\nґ = tile_ur and Wall\nж = tile_dl and Wall\nд = tile_dr and Wall\nЮ = tile_all and Wall\n| = sprt_2_3 and Player\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nblack\ntile\nwall\nwall_tl, wall_tr, wall_bl, wall_br, wall_h, wall_v, wall_t\ndoor, key\nflag\nPlayer\nbody\nball\nhands\nt\n\ntile_ul, tile_ur, tile_dl, tile_dr, tile_all\n\nsprt_0_0, sprt_0_1, sprt_0_2, sprt_0_3, sprt_1_0, sprt_1_1, sprt_1_2, sprt_1_3, sprt_2_0, sprt_2_1, sprt_2_2, sprt_2_3, darkred, darkblue, stars\n\nperson\nperson_Target\nmove\n\n======\nRULES\n======\n\nright [flag | wall ] -> [flag wall | wall ]\n[person no tile ] -> [ person darktile]\n\n[darktile | no tile no wall ] -> [darktile | lighttile ]\n+[lighttile | no tile no wall ] -> [ lighttile | darktile ]\n(ball translations)\n [ ball | perpendicular player | ball ] -> [ perpendicular ball | perpendicular player | perpendicular ball ]\n\n(ball rotations)\n\nright [ ball | action player | ball ] -> [ down ball | action player | up ball ]\ndown [ ball | action player | ball ] -> [ left ball | action player | right ball ]\n\n\n[ up ball_wwww ] -> [ ball_wwbb ]\n[ down ball_wwww ] -> [ ball_bbww ]\n[ right ball_wwww ] -> [ ball_bwbw ]\n[ left ball_wwww ] -> [ ball_wbwb ]\n\n[ up ball_bbbb ] -> [ ball_bbww ]\n[ down ball_bbbb ] -> [ ball_wwbb ]\n[ right ball_bbbb ] -> [ ball_wbwb ]\n[ left ball_bbbb ] -> [ ball_bwbw ]\n\n[ up ball_bbww ] -> [ ball_wwww ]\n[ down ball_bbww ] -> [ ball_bbbb ]\n[ right ball_bbww ] -> [ ball_bbww ]\n[ left ball_bbww ] -> [ ball_bbww ]\n\n[ up ball_wwbb ] -> [ ball_bbbb ]\n[ down ball_wwbb ] -> [ ball_wwww ]\n[ right ball_wwbb ] -> [ ball_wwbb ]\n[ left ball_wwbb ] -> [ ball_wwbb ]\n\n[ up ball_bwbw ] -> [ ball_bwbw ]\n[ down ball_bwbw ] -> [ ball_bwbw ]\n[ right ball_bwbw ] -> [ ball_bbbb ]\n[ left ball_bwbw ] -> [ ball_wwww ]\n\n[ up ball_wbwb ] -> [ ball_wbwb ]\n[ down ball_wbwb ] -> [ ball_wbwb ]\n[ right ball_wbwb ] -> [ ball_wwww ]\n[ left ball_wbwb ] -> [ ball_bbbb ]\n\n\n\n\n(second part of movemet - rotate)\ndown [ | hand_turn ] -> [ t | hand_turn ]\nright [ hand_turn ] [ ball | t no wall | ball ] -> [ hand_turn ] [ down ball | t | left ball]\nright [ hand_turn ] [ ball | no wall no t | ball ] -> [ hand_turn ] [ right ball | no t | up ball]\n[t]->[]\n\n\n[ moving ball_wwww ] -> [ ball_wwww ]\n[ moving ball_bbbb ] -> [ ball_bbbb ]\n[ moving ball_bbww ] -> [ ball_bwbw ]\n[ moving ball_wwbb ] -> [ ball_wbwb ]\n[ moving ball_bwbw ] -> [ ball_wwbb ]\n[ moving ball_wbwb ] -> [ ball_bbww ]\n\n\n\n[ action player ] [ body_1_1 no wall ] -> [ action player ] [ body_2_1 ]\n[ action player ] [ body_1_2 no wall ] -> [ action player ] [ body_2_2 ]\n[ action player ] [ body_1_3 no wall ] -> [ action player ] [ body_2_3 ]\n[ action player ] [ body_1_4 no wall ] -> [ action player ] [ body_2_4 ]\n[ action player ] [ body_1_5 no wall ] -> [ action player ] [ body_2_5 ]\n[ action player ] [ body_1_6 no wall ] -> [ action player ] [ body_2_6 ]\n[ action player ] [ body_1_7 no wall ] -> [ action player ] [ body_2_7 ]\n[ action player ] [ body_1_8 no wall ] -> [ action player ] [ body_2_8 ]\n[ action player ] [ body_1_9 no wall ] -> [ action player ] [ body_2_9 ]\n\n[ action player ] [ body_3_1 no wall ] -> [ action player ] [ body_4_1 ]\n[ action player ] [ body_3_2 no wall ] -> [ action player ] [ body_4_2 ]\n[ action player ] [ body_3_3 no wall ] -> [ action player ] [ body_4_3 ]\n[ action player ] [ body_3_4 no wall ] -> [ action player ] [ body_4_4 ]\n[ action player ] [ body_3_5 no wall ] -> [ action player ] [ body_4_5 ]\n[ action player ] [ body_3_6 no wall ] -> [ action player ] [ body_4_6 ]\n[ action player ] [ body_3_7 no wall ] -> [ action player ] [ body_4_7 ]\n[ action player ] [ body_3_8 no wall ] -> [ action player ] [ body_4_8 ]\n[ action player ] [ body_3_9 no wall ] -> [ action player ] [ body_4_9 ]\n\n[ action player ] [ body_5_1 no wall ] -> [ action player ] [ body_6_1 ]\n[ action player ] [ body_5_2 no wall ] -> [ action player ] [ body_6_2 ]\n[ action player ] [ body_5_3 no wall ] -> [ action player ] [ body_6_3 ]\n[ action player ] [ body_5_4 no wall ] -> [ action player ] [ body_6_4 ]\n[ action player ] [ body_5_5 no wall ] -> [ action player ] [ body_6_5 ]\n[ action player ] [ body_5_6 no wall ] -> [ action player ] [ body_6_6 ]\n[ action player ] [ body_5_7 no wall ] -> [ action player ] [ body_6_7 ]\n[ action player ] [ body_5_8 no wall ] -> [ action player ] [ body_6_8 ]\n[ action player ] [ body_5_9 no wall ] -> [ action player ] [ body_6_9 ]\n\n[ action player ] [ body_7_1 no wall ] -> [ action player ] [ body_8_1 ]\n[ action player ] [ body_7_2 no wall ] -> [ action player ] [ body_8_2 ]\n[ action player ] [ body_7_3 no wall ] -> [ action player ] [ body_8_3 ]\n[ action player ] [ body_7_4 no wall ] -> [ action player ] [ body_8_4 ]\n[ action player ] [ body_7_5 no wall ] -> [ action player ] [ body_8_5 ]\n[ action player ] [ body_7_6 no wall ] -> [ action player ] [ body_8_6 ]\n[ action player ] [ body_7_7 no wall ] -> [ action player ] [ body_8_7 ]\n[ action player ] [ body_7_8 no wall ] -> [ action player ] [ body_8_8 ]\n[ action player ] [ body_7_9 no wall ] -> [ action player ] [ body_8_9 ]\n\n\n[ hand_turn ] [ body_2_1 no wall ] -> [ hand_turn ] [ body_3_1 ]\n[ hand_turn ] [ body_2_2 no wall ] -> [ hand_turn ] [ body_3_2 ]\n[ hand_turn ] [ body_2_3 no wall ] -> [ hand_turn ] [ body_3_3 ]\n[ hand_turn ] [ body_2_4 no wall ] -> [ hand_turn ] [ body_3_4 ]\n[ hand_turn ] [ body_2_5 no wall ] -> [ hand_turn ] [ body_3_5 ]\n[ hand_turn ] [ body_2_6 no wall ] -> [ hand_turn ] [ body_3_6 ]\n[ hand_turn ] [ body_2_7 no wall ] -> [ hand_turn ] [ body_3_7 ]\n[ hand_turn ] [ body_2_8 no wall ] -> [ hand_turn ] [ body_3_8 ]\n[ hand_turn ] [ body_2_9 no wall ] -> [ hand_turn ] [ body_3_9 ]\n\n[ hand_turn ] [ body_4_1 no wall ] -> [ hand_turn ] [ body_5_1 ]\n[ hand_turn ] [ body_4_2 no wall ] -> [ hand_turn ] [ body_5_2 ]\n[ hand_turn ] [ body_4_3 no wall ] -> [ hand_turn ] [ body_5_3 ]\n[ hand_turn ] [ body_4_4 no wall ] -> [ hand_turn ] [ body_5_4 ]\n[ hand_turn ] [ body_4_5 no wall ] -> [ hand_turn ] [ body_5_5 ]\n[ hand_turn ] [ body_4_6 no wall ] -> [ hand_turn ] [ body_5_6 ]\n[ hand_turn ] [ body_4_7 no wall ] -> [ hand_turn ] [ body_5_7 ]\n[ hand_turn ] [ body_4_8 no wall ] -> [ hand_turn ] [ body_5_8 ]\n[ hand_turn ] [ body_4_9 no wall ] -> [ hand_turn ] [ body_5_9 ]\n\n[ hand_turn ] [ body_6_1 no wall ] -> [ hand_turn ] [ body_7_1 ]\n[ hand_turn ] [ body_6_2 no wall ] -> [ hand_turn ] [ body_7_2 ]\n[ hand_turn ] [ body_6_3 no wall ] -> [ hand_turn ] [ body_7_3 ]\n[ hand_turn ] [ body_6_4 no wall ] -> [ hand_turn ] [ body_7_4 ]\n[ hand_turn ] [ body_6_5 no wall ] -> [ hand_turn ] [ body_7_5 ]\n[ hand_turn ] [ body_6_6 no wall ] -> [ hand_turn ] [ body_7_6 ]\n[ hand_turn ] [ body_6_7 no wall ] -> [ hand_turn ] [ body_7_7 ]\n[ hand_turn ] [ body_6_8 no wall ] -> [ hand_turn ] [ body_7_8 ]\n[ hand_turn ] [ body_6_9 no wall ] -> [ hand_turn ] [ body_7_9 ]\n\n[ hand_turn ] [ body_8_1 no wall ] -> [ hand_turn ] [ body_1_1 ]\n[ hand_turn ] [ body_8_2 no wall ] -> [ hand_turn ] [ body_1_2 ]\n[ hand_turn ] [ body_8_3 no wall ] -> [ hand_turn ] [ body_1_3 ]\n[ hand_turn ] [ body_8_4 no wall ] -> [ hand_turn ] [ body_1_4 ]\n[ hand_turn ] [ body_8_5 no wall ] -> [ hand_turn ] [ body_1_5 ]\n[ hand_turn ] [ body_8_6 no wall ] -> [ hand_turn ] [ body_1_6 ]\n[ hand_turn ] [ body_8_7 no wall ] -> [ hand_turn ] [ body_1_7 ]\n[ hand_turn ] [ body_8_8 no wall ] -> [ hand_turn ] [ body_1_8 ]\n[ hand_turn ] [ body_8_9 no wall ] -> [ hand_turn ] [ body_1_9 ]\n\n\n\n\n\n\n\n\n\n(need to do body rotations as well here!)\n\n(move object)\n[moving player ] [ stationary apparatus] -> [ moving player ] [ moving apparatus]\n\n\nright [ ball | action player | ball ] -> [ down ball | action player | up ball ]\ndown [ ball | action player | ball ] -> [ left ball | action player | right ball ]\n\n\ndown [ | hand_turn ] -> [ t | hand_turn ]\nright [ hand_turn ] [ ball | t | ball ] -> [ hand_turn ] [ down ball | t | left ball]\nright [ hand_turn ] [ ball | no t | ball ] -> [ hand_turn ] [ right ball | no t | up ball]\n\n\n\n[ hand_turn ] -> [ hand]\n[ action player ] [ hand ] -> [ action player ] [ hand_turn ] again \n\n[t]->[]\n\n[ body wall ] -> [ stationary body wall ] \n[ ball wall ] -> [ stationary ball wall ]\n\n[ > body | wall ] -> cancel\n\n\nrandom up [move_ul] [person | ] -> [ move_ul] [ person | person_target]\nrandom up [move_ur] [person | ] -> [ move_ur] [ person | person_target]\nrandom down [move_dl] [person | ] -> [ move_dl] [ person | person_target]\nrandom down [move_dr] [person | ] -> [ move_dr] [ person | person_target]\n\nrandom left [move_ul] [person_target | ] -> [ moved] [ | person_target ]\nrandom right [move_ur] [person_target | ] -> [ moved] [ | person_target ]\nrandom left [move_dl] [person_target | ] -> [ moved] [ | person_target ]\nrandom right [move_dr] [person_target | ] -> [ moved] [ | person_target ]\n[person_target wall ] -> [ wall] \n\n[person_target ] [ person ] -> [ person ] [ ]\n\n[move_active]->[]\n\nlate down [ ball_wwww | player no moved | ball_bbbb ] -> [ ball_wwww | player t | ball_bbbb ]\nlate right [ ball_wwww | player t| ball_bbbb ] -> [ ball_wwww | player move_ul | ball_bbbb ] again\nlate [t] -> [ ]\n\n\nlate down [ ball_wwww | player no moved | ball_bbbb ] -> [ ball_wwww | player t | ball_bbbb ]\nlate right [ ball_bbbb | player t| ball_wwww ] -> [ ball_bbbb | player move_ur | ball_wwww ] again\nlate [t] -> [ ]\n\n\nlate down [ ball_bbbb | player no moved | ball_wwww ] -> [ ball_bbbb | player t | ball_wwww ]\nlate right [ ball_wwww | player t| ball_bbbb ] -> [ ball_wwww | player move_dl | ball_bbbb ] again\nlate [t] -> [ ]\n\n\nlate down [ ball_bbbb | player no moved | ball_wwww ] -> [ ball_bbbb | player t | ball_wwww ]\nlate right [ ball_bbbb | player t| ball_wwww ] -> [ ball_bbbb | player move_dr | ball_wwww ] again\nlate [t] -> [ ]\n\n\nlate down [ ball_wwww | player no moved | ball_wwww ] -> [ ball_wwww | player t | ball_wwww ]\nlate right [ ball_wwww | player t | ball_wwww ] [person flag] -> win\nlate [t] -> [ ]\n\nlate [moved]->[]\n\n[action player sprt_2_3] -> win\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\nfffffffffffffffffffffffff\nffffю.гffffcbbbbbbbbbbbcf\nfffffffffffn...........nf\nfєbbbbbbbґfn...........nf\nfn.......nfn...........nf\nfn.......nfn...cbbbc...nf\nfn..123..nfn...n...n...nf\nfn..456..nfn...n.г.n...nf\nfn..789..nfn...n...c...nf\nfn.......nfn.б.n.......nf\nfn.......nfn...n.......nf\nfжbbbbbbbдfcbbbcbbbbbbbcf\nfffffffffffffffffffffffff\n\nmessage victory!\n\n!@£\n$%^\n&*-\n\\\"|\n\n\n\n",[3,0,4,0,4,1,3,2,1,1,4,2,3,1,1,0,0,3,1],"background wall wall_br:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background tile_ul wall:1,background wall wall_v:2,2,2,2,2,2,2,background tile_dl wall:3,\n0,0,0,0,background wall wall_h:4,background body_7_1:5,background ball_wwww body_7_4:6,background body_7_7:7,background:8,8,8,8,4,0,0,0,0,4,background ball_wwww body_7_2:9,background body_7_5 hand player:10,background ball_bbbb body_7_8:11,8,8,8,8,\n4,0,0,background tile_all wall:12,0,4,background body_7_3:13,background ball_bbbb body_7_6:14,background body_7_9:15,8,8,8,8,4,0,0,8,0,4,8,8,8,8,8,8,\n8,4,0,0,background flag wall:16,0,4,8,8,8,8,8,8,8,4,0,0,0,0,4,8,8,8,8,8,\n8,8,4,0,0,0,0,4,8,8,8,8,8,8,8,4,0,0,0,0,background tile_ur wall:17,2,2,2,2,\n2,2,2,background tile_dr wall:18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background wall wall_bl:19,2,2,2,2,2,\n2,2,2,2,19,0,0,4,background darktile:20,background lighttile:21,20,21,background darktile person:22,21,20,21,20,4,0,0,4,21,20,21,20,\n21,20,21,20,21,4,0,0,4,20,21,20,21,20,21,20,21,20,4,0,0,4,21,20,21,\n19,2,2,2,2,2,19,0,0,4,20,21,20,4,20,21,20,21,20,4,0,0,4,21,20,\n21,4,21,background darktile flag:23,21,20,21,4,0,0,4,20,21,20,4,20,21,20,21,20,4,0,0,4,21,\n20,21,19,2,2,19,20,21,4,0,0,4,20,21,20,21,20,21,20,21,20,4,0,0,4,\n21,20,21,20,21,20,21,20,21,4,0,0,4,20,21,20,21,20,21,20,21,20,4,0,0,\n19,2,2,2,2,2,2,2,2,2,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",1,"1627891910482.2163"] ], [ - "An OK multiban level", - ["title An OK multiban level \nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground\ndarkblue darkgreen\n00000\n00010\n00000\n01000\n00000\n\n\nTarget\npink\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\nWall\ndarkgray darkbrown gray \n00010\n11111\n01000\n11111\n00010\n\n\nPlayer\ndarkbrown brown darkbrown black darkred\n.000.\n.111.\n42224\n14441\n.3.3.\n\n\n\nCrate\nOrange brown\n.000.\n11000\n11000\n11100\n.111.\n\nc_u\nlightgreen lightgreen\n.000.\n.111.\n..1..\n.....\n.....\n\nc_d\ngreen green\n.....\n.....\n..1..\n.111.\n.000.\n\nc_l\ngreen green\n.....\n01...\n011..\n01...\n.....\n\nc_r\nlightgreen lightgreen\n.....\n...10\n..110\n...10\n.....\n\n=======\nLEGEND\n=======\n\nc = c_u or c_d or c_l or c_r\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ns = crate and c_u and c_d and c_l and c_r\nd = s and target\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nc_u\nc_d\nc_l\nc_r\nTarget\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate | Crate ] -> [ > crate | > Crate ]\n\n[moving crate c] -> [ moving crate moving c]\n\n\nup [ c_u | < player ] -> cancel\ndown [ c_d | < player ] -> cancel\nleft [ c_l | < player ] -> cancel\nright [ c_r | < player ] -> cancel\n\n\nlate up [ c_u | crate ] -> [c_u|c_d crate]\nlate down [ c_d | crate ] -> [c_d|c_u crate]\nlate left [ c_l | crate ] -> [c_l|c_r crate]\nlate right [ c_r | crate ] -> [c_r|c_l crate]\n\nlate [ c no crate ] -> cancel\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n#########\n#...o...#\n#.**o**.#\n#.##o##.#\n#...o.p.#\n#########\n\nmessage congrats\n", [1, 1, 0, 0, 3, 0, 3, 3, 2, 2], "background wall:0,0,0,0,0,0,0,background:1,1,\n1,1,0,0,1,background crate:2,0,1,0,\n0,1,2,0,1,0,0,background target:3,3,\n3,3,0,0,1,1,0,1,0,\n0,1,2,0,1,0,0,1,1,\nbackground player:4,2,0,0,0,0,0,0,0,\n", 1, "1627891934752.9468"] + "An OK multiban level", + ["title An OK multiban level \nauthor Stephen Lavelle\nhomepage www.increpare.com\n\n\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground\ndarkblue darkgreen\n00000\n00010\n00000\n01000\n00000\n\n\nTarget\npink\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\nWall\ndarkgray darkbrown gray \n00010\n11111\n01000\n11111\n00010\n\n\nPlayer\ndarkbrown brown darkbrown black darkred\n.000.\n.111.\n42224\n14441\n.3.3.\n\n\n\nCrate\nOrange brown\n.000.\n11000\n11000\n11100\n.111.\n\nc_u\nlightgreen lightgreen\n.000.\n.111.\n..1..\n.....\n.....\n\nc_d\ngreen green\n.....\n.....\n..1..\n.111.\n.000.\n\nc_l\ngreen green\n.....\n01...\n011..\n01...\n.....\n\nc_r\nlightgreen lightgreen\n.....\n...10\n..110\n...10\n.....\n\n=======\nLEGEND\n=======\n\nc = c_u or c_d or c_l or c_r\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ns = crate and c_u and c_d and c_l and c_r\nd = s and target\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nc_u\nc_d\nc_l\nc_r\nTarget\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate | Crate ] -> [ > crate | > Crate ]\n\n[moving crate c] -> [ moving crate moving c]\n\n\nup [ c_u | < player ] -> cancel\ndown [ c_d | < player ] -> cancel\nleft [ c_l | < player ] -> cancel\nright [ c_r | < player ] -> cancel\n\n\nlate up [ c_u | crate ] -> [c_u|c_d crate]\nlate down [ c_d | crate ] -> [c_d|c_u crate]\nlate left [ c_l | crate ] -> [c_l|c_r crate]\nlate right [ c_r | crate ] -> [c_r|c_l crate]\n\nlate [ c no crate ] -> cancel\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n#########\n#...o...#\n#.**o**.#\n#.##o##.#\n#...o.p.#\n#########\n\nmessage congrats\n",[1,1,0,0,3,0,3,3,2,2],"background wall:0,0,0,0,0,0,0,background:1,1,\n1,1,0,0,1,background crate:2,0,1,0,\n0,1,2,0,1,0,0,background target:3,3,\n3,3,0,0,1,1,0,1,0,\n0,1,2,0,1,0,0,1,1,\nbackground player:4,2,0,0,0,0,0,0,0,\n",1,"1627891934752.9468"] ], [ - "Unclean Residues", - ["title Unclean Residues \nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\n\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground\ndarkblue darkgreen\n00000\n00010\n00000\n01000\n00000\n\n\nTarget\npink\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\nWall\ndarkgray darkbrown gray \n00010\n11111\n01000\n11111\n00010\n\n\nPlayer\ndarkbrown brown darkbrown black darkred\n.000.\n.111.\n42224\n14441\n.3.3.\n\n\n\nCrate\nOrange brown\n.000.\n11000\n11000\n11100\n.111.\n\nc_u\nlightgreen lightgreen\n.000.\n.111.\n..1..\n.....\n.....\n\nc_d\ngreen green\n.....\n.....\n..1..\n.111.\n.000.\n\nc_l\ngreen green\n.....\n01...\n011..\n01...\n.....\n\nc_r\nlightgreen lightgreen\n.....\n...10\n..110\n...10\n.....\n\n=======\nLEGEND\n=======\n\nc = c_u or c_d or c_l or c_r\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ns = crate and c_u and c_d and c_l and c_r\nd = s and target\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nc_u\nc_d\nc_l\nc_r\nTarget\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate | Crate ] -> [ > crate | > Crate ]\n\n[moving crate c] -> [ moving crate moving c]\n\n\nup [ c_u | < player ] -> cancel\ndown [ c_d | < player ] -> cancel\nleft [ c_l | < player ] -> cancel\nright [ c_r | < player ] -> cancel\n\n\nlate up [ c_u | crate ] -> [c_u|c_d crate]\nlate down [ c_d | crate ] -> [c_d|c_u crate]\nlate left [ c_l | crate ] -> [c_l|c_r crate]\nlate right [ c_r | crate ] -> [c_r|c_l crate]\n\nlate [ c no crate ] -> cancel\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 6\n\nmessage Place all the stones on the markers BUT BE WARY OF CONTAMINATION\n\n\n(ok?)\n###############\n#.............#\n#.............#\n#...o.o.*.s...#\n#........p....#\n#...o.o.s.*...#\n#.............#\n#.............#\n###############\n\n\nmessage Level 2 of 6\n\n(medium)\n########\n#......#\n#......#\n#..#p..#\n#..s@..#\n#..o@..#\n#......#\n#......#\n########\n\n\n\nmessage Level 3 of 6\n\n\n(ok? too easy?)\n#########\n#.......#\n#.......#\n#.**os*.#\n#.##o##.#\n#...o.p.#\n#...o...#\n#########\n\n\n\nmessage Level 4 of 6\n\n#########\n#.......#\n#...*...#\n#..*s*..#\n#.......#\n#..o.op.#\n#..o.o..#\n#.......#\n#########\n\n\nmessage Level 5 of 6\n\n#########\n#.......#\n#.......#\n#..oso..#\n#..*o*..#\n#..oso..#\n#..*o*..#\n#...p...#\n#.......#\n#########\n\nmessage OH NO THE WALLS ARE CLOSING IN\nmessage level 6 of 6\n\n(hard mode)\n#######\n#.....#\n#.oso.#\n#.*o*.#\n#.oso.#\n#.*o*.#\n#..p..#\n#######\n\nmessage CONGRATULATIONS \n\n(====================================\n\n#########\n#.......#\n#.......#\n#...*...#\n#..*s*..#\n#.......#\n#..o.op.#\n#..o.o..#\n#.......#\n#########\n\n\n#########\n#.......#\n#.......#\n#...*...#\n#..*s*..#\n#..ooo..#\n#...o.p.#\n#.......#\n#.......#\n#########\n\n(too similar leve to 1)\n#############\n#...........#\n#...........#\n#...........#\n#...o.*.o...#\n#...........#\n#...s.p.s...#\n#...........#\n#...o.*.o...#\n#...........#\n#...........#\n#...........#\n#############\n\n(insoluble?)\n###########\n#....o....#\n#....o....#\n#.***os**.#\n#.###o###.#\n#....o.p..#\n#....o....#\n###########\n\n(oh this is an ok multiban level -_-)\n#########\n#...o...#\n#.**o**.#\n#.##o##.#\n#...o.p.#\n#########\n\n\n#########\n#.......#\n#...o...#\n#.**os*.#\n#.##o##.#\n#...o.p.#\n#.......#\n#########\n\n#########\n#...o...#\n#.**os*.#\n#.##o##.#\n#...o.p.#\n#########\n\n(too easy)\n\n#######\n#.....#\n#.#*..#\n#.*s..#\n#...p.#\n#.ooo.#\n#.....#\n#######\n\n\n#########\n#.......#\n#.......#\n#.*sos*.#\n#.##o##.#\n#...p...#\n#...o...#\n#########\n\n#########\n#.*.o...#\n#...o.*.#\n#.##@##.#\n#...@.p.#\n#########\n\n#########\n#.....###\n#.#*..###\n#.*s....#\n#....p..#\n#.o.o.o.#\n#.......#\n#########\n\n#########\n#.......#\n#.#*....#\n#.*s....#\n#....p..#\n#.o.o.o.#\n#.......#\n#########\n\n\n(pretty easy)\n#######\n#.....#\n#.po*.#\n#.oso.#\n#.*o*.#\n#.....#\n#######\n\n(ok?)\n###############\n#.............#\n#.............#\n#......s......#\n#.............#\n#..s.o.o......#\n#.............#\n#........s....#\n#...p.........#\n#......*.o.o..#\n#.............#\n#.............#\n###############\n\n(meh)\n##########\n#........#\n#........#\n#...o*o..#\n#...o....#\n#...ss.p.#\n#...ss...#\n#....o...#\n#..o*o...#\n#........#\n#........#\n##########\n\n\n\n(not so hard)\n#######\n#.....#\n#.OsO.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n(too easy)\n.......\n.......\n..*os..\n..o.o..\n..so*..\n...p...\n.......\n\n\n#####.\n#O..##\n#P*.#.\n##...#\n.##..#\n..##O#\n...###\n\n\n#######\n#.....#\n#.OsO.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\n################\n#..............#\n#.ooo......ooo.#\n#.....ss.*.....#\n#.....ss.*.....#\n#..........p...#\n#..............#\n#..............#\n################\n\n############\n#..........#\n#.ooo..p...#\n#.ooo......#\n#..........#\n#....ss.*..#\n#....ss.*..#\n#..........#\n#..........#\n#..........#\n############\n\n###############\n#.............#\n#.............#\n#..ooo.ss.*...#\n#..ooo.ss.*...#\n#.............#\n#.....p.......#\n#.............#\n###############\n\n###############\n#.............#\n#.............#\n#...oo.s.*....#\n#...oo.s.*....#\n#.............#\n#.....p.......#\n#.............#\n###############\n\n\n###############\n#.............#\n#.............#\n#...o.o.s.*...#\n#........p....#\n#...o.o.s.*...#\n#.............#\n#.............#\n###############\n\n#############\n#...........#\n#...........#\n#......s....#\n#...........#\n#..s.o.o....#\n#.....p.....#\n#....o.o.s..#\n#...........#\n#....*......#\n#...........#\n#...........#\n#############\n\n###############\n#.............#\n#.............#\n#...o.o.*.*...#\n#........p....#\n#...o.o.s.*...#\n#.............#\n#.............#\n###############\n\n####################\n#..................#\n#..................#\n#...o.o....*.*.....#\n#........p.........#\n#...o.o....s.*.....#\n#..................#\n#..................#\n####################\n\n###################\n#.................#\n#.................#\n#..o.o.o.p.s.*.*..#\n#.................#\n#.................#\n###################\n\n\n###################\n#.................#\n#.................#\n#..o.o.o.p.s.*.*..#\n#.................#\n#.................#\n###################\n\n\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#.....p.s.*.....#\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\n#######################\n#.....................#\n#.....................#\n#.....................#\n#.....o.*.o...........#\n#.....................#\n#.....s.p.s...........#\n#.....................#\n#.....o.*.o...........#\n#.....................#\n#.....................#\n#.....................#\n#######################\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\n\n#############\n#...........#\n#.o.o.s.*...#\n#......p....#\n#.o.o.s.*...#\n#...........#\n#############\n\n#############\n#...........#\n#.ooo.s.**..#\n#....p......#\n#...........#\n#...........#\n#############\n)\n", [2, 3, 2, 0, 1, 1, 3, 2, 2, 1, 0, 2, 2, 1, 0, 1, 0, 3], "background wall:0,0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,\n1,1,0,0,1,1,0,background c_d c_l c_r c_u crate:2,\nbackground player target:3,1,1,0,0,1,1,1,\nbackground c_d c_l crate target:4,background c_u crate target:5,1,1,0,0,1,1,\n1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,0,0,\n0,0,0,0,0,0,0,0,\n", 4, "1627891984006.569"] + "Unclean Residues", + ["title Unclean Residues \nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\n\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground\ndarkblue darkgreen\n00000\n00010\n00000\n01000\n00000\n\n\nTarget\npink\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\nWall\ndarkgray darkbrown gray \n00010\n11111\n01000\n11111\n00010\n\n\nPlayer\ndarkbrown brown darkbrown black darkred\n.000.\n.111.\n42224\n14441\n.3.3.\n\n\n\nCrate\nOrange brown\n.000.\n11000\n11000\n11100\n.111.\n\nc_u\nlightgreen lightgreen\n.000.\n.111.\n..1..\n.....\n.....\n\nc_d\ngreen green\n.....\n.....\n..1..\n.111.\n.000.\n\nc_l\ngreen green\n.....\n01...\n011..\n01...\n.....\n\nc_r\nlightgreen lightgreen\n.....\n...10\n..110\n...10\n.....\n\n=======\nLEGEND\n=======\n\nc = c_u or c_d or c_l or c_r\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ns = crate and c_u and c_d and c_l and c_r\nd = s and target\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nc_u\nc_d\nc_l\nc_r\nTarget\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate | Crate ] -> [ > crate | > Crate ]\n\n[moving crate c] -> [ moving crate moving c]\n\n\nup [ c_u | < player ] -> cancel\ndown [ c_d | < player ] -> cancel\nleft [ c_l | < player ] -> cancel\nright [ c_r | < player ] -> cancel\n\n\nlate up [ c_u | crate ] -> [c_u|c_d crate]\nlate down [ c_d | crate ] -> [c_d|c_u crate]\nlate left [ c_l | crate ] -> [c_l|c_r crate]\nlate right [ c_r | crate ] -> [c_r|c_l crate]\n\nlate [ c no crate ] -> cancel\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 6\n\nmessage Place all the stones on the markers BUT BE WARY OF CONTAMINATION\n\n\n(ok?)\n###############\n#.............#\n#.............#\n#...o.o.*.s...#\n#........p....#\n#...o.o.s.*...#\n#.............#\n#.............#\n###############\n\n\nmessage Level 2 of 6\n\n(medium)\n########\n#......#\n#......#\n#..#p..#\n#..s@..#\n#..o@..#\n#......#\n#......#\n########\n\n\n\nmessage Level 3 of 6\n\n\n(ok? too easy?)\n#########\n#.......#\n#.......#\n#.**os*.#\n#.##o##.#\n#...o.p.#\n#...o...#\n#########\n\n\n\nmessage Level 4 of 6\n\n#########\n#.......#\n#...*...#\n#..*s*..#\n#.......#\n#..o.op.#\n#..o.o..#\n#.......#\n#########\n\n\nmessage Level 5 of 6\n\n#########\n#.......#\n#.......#\n#..oso..#\n#..*o*..#\n#..oso..#\n#..*o*..#\n#...p...#\n#.......#\n#########\n\nmessage OH NO THE WALLS ARE CLOSING IN\nmessage level 6 of 6\n\n(hard mode)\n#######\n#.....#\n#.oso.#\n#.*o*.#\n#.oso.#\n#.*o*.#\n#..p..#\n#######\n\nmessage CONGRATULATIONS \n\n(====================================\n\n#########\n#.......#\n#.......#\n#...*...#\n#..*s*..#\n#.......#\n#..o.op.#\n#..o.o..#\n#.......#\n#########\n\n\n#########\n#.......#\n#.......#\n#...*...#\n#..*s*..#\n#..ooo..#\n#...o.p.#\n#.......#\n#.......#\n#########\n\n(too similar leve to 1)\n#############\n#...........#\n#...........#\n#...........#\n#...o.*.o...#\n#...........#\n#...s.p.s...#\n#...........#\n#...o.*.o...#\n#...........#\n#...........#\n#...........#\n#############\n\n(insoluble?)\n###########\n#....o....#\n#....o....#\n#.***os**.#\n#.###o###.#\n#....o.p..#\n#....o....#\n###########\n\n(oh this is an ok multiban level -_-)\n#########\n#...o...#\n#.**o**.#\n#.##o##.#\n#...o.p.#\n#########\n\n\n#########\n#.......#\n#...o...#\n#.**os*.#\n#.##o##.#\n#...o.p.#\n#.......#\n#########\n\n#########\n#...o...#\n#.**os*.#\n#.##o##.#\n#...o.p.#\n#########\n\n(too easy)\n\n#######\n#.....#\n#.#*..#\n#.*s..#\n#...p.#\n#.ooo.#\n#.....#\n#######\n\n\n#########\n#.......#\n#.......#\n#.*sos*.#\n#.##o##.#\n#...p...#\n#...o...#\n#########\n\n#########\n#.*.o...#\n#...o.*.#\n#.##@##.#\n#...@.p.#\n#########\n\n#########\n#.....###\n#.#*..###\n#.*s....#\n#....p..#\n#.o.o.o.#\n#.......#\n#########\n\n#########\n#.......#\n#.#*....#\n#.*s....#\n#....p..#\n#.o.o.o.#\n#.......#\n#########\n\n\n(pretty easy)\n#######\n#.....#\n#.po*.#\n#.oso.#\n#.*o*.#\n#.....#\n#######\n\n(ok?)\n###############\n#.............#\n#.............#\n#......s......#\n#.............#\n#..s.o.o......#\n#.............#\n#........s....#\n#...p.........#\n#......*.o.o..#\n#.............#\n#.............#\n###############\n\n(meh)\n##########\n#........#\n#........#\n#...o*o..#\n#...o....#\n#...ss.p.#\n#...ss...#\n#....o...#\n#..o*o...#\n#........#\n#........#\n##########\n\n\n\n(not so hard)\n#######\n#.....#\n#.OsO.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n(too easy)\n.......\n.......\n..*os..\n..o.o..\n..so*..\n...p...\n.......\n\n\n#####.\n#O..##\n#P*.#.\n##...#\n.##..#\n..##O#\n...###\n\n\n#######\n#.....#\n#.OsO.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\n################\n#..............#\n#.ooo......ooo.#\n#.....ss.*.....#\n#.....ss.*.....#\n#..........p...#\n#..............#\n#..............#\n################\n\n############\n#..........#\n#.ooo..p...#\n#.ooo......#\n#..........#\n#....ss.*..#\n#....ss.*..#\n#..........#\n#..........#\n#..........#\n############\n\n###############\n#.............#\n#.............#\n#..ooo.ss.*...#\n#..ooo.ss.*...#\n#.............#\n#.....p.......#\n#.............#\n###############\n\n###############\n#.............#\n#.............#\n#...oo.s.*....#\n#...oo.s.*....#\n#.............#\n#.....p.......#\n#.............#\n###############\n\n\n###############\n#.............#\n#.............#\n#...o.o.s.*...#\n#........p....#\n#...o.o.s.*...#\n#.............#\n#.............#\n###############\n\n#############\n#...........#\n#...........#\n#......s....#\n#...........#\n#..s.o.o....#\n#.....p.....#\n#....o.o.s..#\n#...........#\n#....*......#\n#...........#\n#...........#\n#############\n\n###############\n#.............#\n#.............#\n#...o.o.*.*...#\n#........p....#\n#...o.o.s.*...#\n#.............#\n#.............#\n###############\n\n####################\n#..................#\n#..................#\n#...o.o....*.*.....#\n#........p.........#\n#...o.o....s.*.....#\n#..................#\n#..................#\n####################\n\n###################\n#.................#\n#.................#\n#..o.o.o.p.s.*.*..#\n#.................#\n#.................#\n###################\n\n\n###################\n#.................#\n#.................#\n#..o.o.o.p.s.*.*..#\n#.................#\n#.................#\n###################\n\n\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#.....p.s.*.....#\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#################\n\n#######################\n#.....................#\n#.....................#\n#.....................#\n#.....o.*.o...........#\n#.....................#\n#.....s.p.s...........#\n#.....................#\n#.....o.*.o...........#\n#.....................#\n#.....................#\n#.....................#\n#######################\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\n\n#############\n#...........#\n#.o.o.s.*...#\n#......p....#\n#.o.o.s.*...#\n#...........#\n#############\n\n#############\n#...........#\n#.ooo.s.**..#\n#....p......#\n#...........#\n#...........#\n#############\n)\n",[2,3,2,0,1,1,3,2,2,1,0,2,2,1,0,1,0,3],"background wall:0,0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,\n1,1,0,0,1,1,0,background c_d c_l c_r c_u crate:2,\nbackground player target:3,1,1,0,0,1,1,1,\nbackground c_d c_l crate target:4,background c_u crate target:5,1,1,0,0,1,1,\n1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,0,0,\n0,0,0,0,0,0,0,0,\n",4,"1627891984006.569"] ], [ - "Car Crash", - ["title Car Crash\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nnoaction\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground\nblack\n\nbg_light\ndarkgreen\n\nbg_dark\ndarkblue\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nblack \n\nPlayer_down\nlightred darkgreen\n.....\n.000.\n00000\n00000\n00000\n\n\nPlayer_up\nlightred darkgreen\n00000\n00000\n00000\n.000.\n.....\n\nplayer_right\nlightred darkgreen\n..000\n.0000\n.0000\n.0000\n..000\n\n\nplayer_left\nlightred darkgreen\n000..\n0000.\n0000.\n0000.\n000..\n\nplayer_crushed\ndarkgreen darkgray\n..1..\n.101.\n10001\n.101.\n..1..\n\nenemy_crushed\ndarkred darkgray\n..1..\n.101.\n10001\n.101.\n..1..\n\nenemy_down\nred\n..0..\n.000.\n00000\n00000\n00000\n\n\nenemy_up\nred\n00000\n00000\n00000\n.000.\n..0..\n\nenemy_right\nred\n..000\n.0000\n00000\n.0000\n..000\n\n\nenemy_left\nred\n000..\n0000.\n00000\n0000.\n000..\n\n\ngoal\nyellow\n.....\n..0..\n.000.\n..0..\n.....\n\n\nwint\nblack\n\ntemp\nTRANSPARENT\n\nt2\nTRANSPARENT\n\nfinaltext\nyellow\n\nblack \nblack\n\n=======\nLEGEND\n=======\n\n\nplayer_noup = player_down or player_left or player_right\nplayer_nodown = player_up or player_left or player_right\nplayer_noleft = player_up or player_down or player_right\nplayer_noright = player_up or player_down or player_left\n\nplayer_dir = player_up or player_down or player_left or player_right\nplayer = player_dir or player_crushed\n\nenemy = enemy_up or enemy_down or enemy_left or enemy_right\n\n. = Background\n# = Wall\nO = Target\n\n1 = player_down and player_right\n2 = player_down and player_left\n3 = player_up and player_down and player_right\n4 = player_up and player_down and player_left\n5 = player_up and player_right\n6 = player_up and player_left\n\n\n\n\nq = enemy_down and enemy_right\nw = enemy_down and enemy_left\ne = enemy_up and enemy_down and enemy_right\nr = enemy_up and enemy_down and enemy_left\nt = enemy_up and enemy_right\ny = enemy_up and enemy_left\n\nu = enemy_left and enemy_down and enemy_right\ni = enemy_left and enemy_up and enemy_right\n\ng = goal\na = wint\n\ns = enemy_right\nd = enemy_right and enemy_left\nf = enemy_left\n\nz = finaltext and black\n\n=======\nSOUNDS\n=======\n\nsfx0 7375900\nsfx1 12966304\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbg_light, bg_dark\n\nwint\n\nTarget\n\nenemy_up\nenemy_down\nenemy_left\nenemy_right\nenemy_crushed\n\nplayer_up\nplayer_down\nplayer_left\nplayer_right\nplayer_crushed\n\nwall\ngoal\n\ntemp\nt2\nfinaltext\nblack\n\n======\nRULES\n======\n\n(\n[ > player_crushed | enemy ] -> [ > player_crushed | > enemy ]\nup [ moving enemy_up | enemy ] -> [ moving enemy_up | moving enemy ]\n+ down [ moving enemy_down | enemy ] -> [ moving enemy_down | moving enemy ]\n+ left [ moving enemy_left | enemy ] -> [ moving enemy_left | moving enemy ]\n+ right [ moving enemy_right | enemy ] -> [ moving enemy_right | moving enemy ]\n)\n\nrandom [ ] -> [ bg_light]\n\n[bg_light | no bg_dark ] -> [ bg_light | bg_dark]\n+[bg_dark | no bg_light ] -> [ bg_dark | bg_light]\n\n[ > player | wall ] -> cancel \n[ > enemy | wall ] -> cancel\n\nlate [ player_dir enemy ] -> [ player_dir player_crushed enemy ] sfx1\n\n\nlate [ enemy_up player_crushed] -> [ player_up player_crushed ]\nlate [ enemy_down player_crushed] -> [ player_down player_crushed ]\nlate [ enemy_left player_crushed] -> [ player_left player_crushed ]\nlate [ enemy_right player_crushed] -> [ player_right player_crushed ]\n\nlate up [ player_up | enemy_down ] -> [ player_up | Player_down ]\n+ late down [ player_down | enemy_up ] -> [ player_down | Player_up ]\n+ late left [ player_left | enemy_right ] -> [ player_left | Player_right ]\n+ late right [ player_right | enemy_left ] -> [ player_right | Player_left ]\n+ late [ player_noup enemy_up] -> [ player_noup player_up ]\n+ late [ player_nodown enemy_down] -> [ player_nodown player_down ]\n+ late [ player_noleft enemy_left] -> [ player_noleft player_left ]\n+ late [ player_noright enemy_right] -> [ player_noright player_right ]\n\n\n(push an enemy into another enemy -_- )\n\nlate [ goal no player_crushed ] -> [ temp goal ]\nlate [ temp goal | no temp goal ] -> [ temp goal | temp goal ]\nlate [ player_crushed no goal ] [ goal ] -> [ player_crushed ] [ goal temp ]\nlate [ goal player_crushed no temp ] -> [ goal player_crushed t2 ] \n\nlate [t2] [ player_dir ] -> [t2] []\n\nlate down [t2] [ player_crushed | player_crushed ] -> [t2] [ player_crushed player_down | player_crushed player_up ]\n\nlate right [t2] [ player_crushed | player_crushed ] -> [t2] [ player_crushed player_right | player_crushed player_left ]\n\nlate [ t2] [ player_crushed goal ] -> [t2] [ player_crushed wint ] sfx0\n\nlate [ temp ] -> []\n\nlate [ t2 ] -> []\n\n[stationary finaltext]->[> finaltext]\n[moving finaltext | no finaltext ] -> [ moving finaltext | finaltext] again\n[moving finaltext ]-> [ finaltext]\n\n[finaltext] [ no finaltext ] -> [ finaltext t2 ] [ ]\n\n[finaltext no t2 ] -> win\n\n[t2]->[]\n\n==============\nWINCONDITIONS\n==============\n\nno goal\n\nno finaltext\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\n#########################################\n#.......................................#\n#...................12..................#\n#...................34..................#\n#...................56..................#\n#.......................................#\n#..................sdf..................#\n#....qw.....qw.............qw.....qw....#\n#....er.....er.....sdf.....er.....er....#\n#....ty.....ty.............ty.....ty....#\n#.......................................#\n#............g...ggg.g.g.aaa............#\n#............g...g.g.g.g.a..............#\n#............g...g.g.g.g.aaa............#\n#............g...g.g.g.g.a..............#\n#............ggg.ggg.ggg.aaa............#\n#.......................................#\n#....qw.....qw.....qw......qw.....qw....#\n#....er.....er.....er......er.....er....#\n#....ty.....ty.....ty......ty.....ty....#\n#.......................................#\n#.......................................#\n#.......................................#\n#.......................................#\n#.......................................#\n#.......................................#\n#########################################\n\n\n...............................\n...............................\n...............................\n........z...zzz.z.z.zzz........\n........z...z.z.z.z.z..........\n........z...z.z.z.z.zzz........\n........z...z.z.z.z.z..........\n........zzz.zzz.zzz.zzz........\n...............................\n...............................\n...............................\n\nmessage Love!\n\n", [2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 2, 2, 3, 3, "restart", 1, 1, 1, 2, 2, 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 1, 1, 1, 1, "restart", 3, 3, 2, 2, 2, 2, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 2, 3, 3, 2, 2, 2, 3, 2, 3, 3, 3, 3, 1, 1, 0, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0, 1, 1, 1, 1, 1], "background bg_dark wall:0,background bg_light wall: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,background bg_dark:2,background bg_light:3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,background bg_dark enemy_down enemy_right:4,background bg_light enemy_down enemy_right enemy_up:5,background bg_dark enemy_right enemy_up:6,3,2,3,2,3,2,3,4,5,6,3,2,3,2,3,2,1,0,3,\n2,3,2,3,2,background bg_light enemy_down enemy_left:7,background bg_dark enemy_down enemy_left enemy_up:8,background bg_light enemy_left enemy_up:9,2,3,2,3,2,3,2,7,8,9,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,\n2,3,2,background bg_light enemy_down enemy_right:10,background bg_dark enemy_down enemy_right enemy_up:11,background bg_light enemy_right enemy_up:12,2,3,2,3,2,3,2,10,11,12,2,3,2,3,2,3,0,1,2,3,2,3,2,3,background bg_dark enemy_down enemy_left:13,background bg_light enemy_down enemy_left enemy_up:14,background bg_dark enemy_left enemy_up:15,3,background bg_dark goal:16,background bg_light goal:17,16,17,16,3,13,\n14,15,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,17,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,16,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,16,17,16,17,16,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,\n2,3,2,3,2,17,2,3,2,17,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,16,17,16,17,16,3,4,5,6,\n3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,7,8,9,2,3,2,3,2,3,0,1,2,3,2,3,2,3,\n2,3,2,3,16,17,16,17,16,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,17,2,3,2,3,2,\n3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,16,17,16,17,16,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,background bg_light player_down player_right:18,background bg_dark player_down player_right player_up:19,background bg_light player_right player_up:20,2,3,background bg_dark wint:21,background bg_light wint:22,21,22,21,3,2,3,2,3,2,\n3,2,3,2,1,0,3,2,3,2,3,background bg_dark player_crushed player_down player_left player_right:23,background bg_light player_down player_left player_up:24,background bg_dark player_crushed player_left player_right player_up:25,3,2,22,2,22,2,22,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,background bg_light player_left player_right:26,2,26,\n2,3,21,3,21,3,21,3,4,5,6,3,2,3,2,3,2,1,0,3,2,3,background bg_dark player_down player_right:27,background bg_light player_down player_right player_up:28,25,3,background bg_dark player_left:29,3,2,3,2,3,2,3,2,7,8,9,2,3,2,\n3,2,3,0,1,2,3,2,background bg_light player_down player_left:30,background bg_dark player_crushed player_down player_left player_right player_up:31,background bg_light player_crushed player_down player_left player_right player_up:32,background bg_dark player_right player_up:33,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,30,background bg_dark player_down player_left player_up:34,background bg_light player_left player_up:35,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,10,11,12,2,3,2,3,2,\n3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,13,14,15,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,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,\n", 1, "1627891999778.8188"] + "Car Crash", + ["title Car Crash\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nnoaction\nrun_rules_on_level_start\n========\nOBJECTS\n========\n\nBackground\nblack\n\nbg_light\ndarkgreen\n\nbg_dark\ndarkblue\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nblack \n\nPlayer_down\nlightred darkgreen\n.....\n.000.\n00000\n00000\n00000\n\n\nPlayer_up\nlightred darkgreen\n00000\n00000\n00000\n.000.\n.....\n\nplayer_right\nlightred darkgreen\n..000\n.0000\n.0000\n.0000\n..000\n\n\nplayer_left\nlightred darkgreen\n000..\n0000.\n0000.\n0000.\n000..\n\nplayer_crushed\ndarkgreen darkgray\n..1..\n.101.\n10001\n.101.\n..1..\n\nenemy_crushed\ndarkred darkgray\n..1..\n.101.\n10001\n.101.\n..1..\n\nenemy_down\nred\n..0..\n.000.\n00000\n00000\n00000\n\n\nenemy_up\nred\n00000\n00000\n00000\n.000.\n..0..\n\nenemy_right\nred\n..000\n.0000\n00000\n.0000\n..000\n\n\nenemy_left\nred\n000..\n0000.\n00000\n0000.\n000..\n\n\ngoal\nyellow\n.....\n..0..\n.000.\n..0..\n.....\n\n\nwint\nblack\n\ntemp\nTRANSPARENT\n\nt2\nTRANSPARENT\n\nfinaltext\nyellow\n\nblack \nblack\n\n=======\nLEGEND\n=======\n\n\nplayer_noup = player_down or player_left or player_right\nplayer_nodown = player_up or player_left or player_right\nplayer_noleft = player_up or player_down or player_right\nplayer_noright = player_up or player_down or player_left\n\nplayer_dir = player_up or player_down or player_left or player_right\nplayer = player_dir or player_crushed\n\nenemy = enemy_up or enemy_down or enemy_left or enemy_right\n\n. = Background\n# = Wall\nO = Target\n\n1 = player_down and player_right\n2 = player_down and player_left\n3 = player_up and player_down and player_right\n4 = player_up and player_down and player_left\n5 = player_up and player_right\n6 = player_up and player_left\n\n\n\n\nq = enemy_down and enemy_right\nw = enemy_down and enemy_left\ne = enemy_up and enemy_down and enemy_right\nr = enemy_up and enemy_down and enemy_left\nt = enemy_up and enemy_right\ny = enemy_up and enemy_left\n\nu = enemy_left and enemy_down and enemy_right\ni = enemy_left and enemy_up and enemy_right\n\ng = goal\na = wint\n\ns = enemy_right\nd = enemy_right and enemy_left\nf = enemy_left\n\nz = finaltext and black\n\n=======\nSOUNDS\n=======\n\nsfx0 7375900\nsfx1 12966304\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbg_light, bg_dark\n\nwint\n\nTarget\n\nenemy_up\nenemy_down\nenemy_left\nenemy_right\nenemy_crushed\n\nplayer_up\nplayer_down\nplayer_left\nplayer_right\nplayer_crushed\n\nwall\ngoal\n\ntemp\nt2\nfinaltext\nblack\n\n======\nRULES\n======\n\n(\n[ > player_crushed | enemy ] -> [ > player_crushed | > enemy ]\nup [ moving enemy_up | enemy ] -> [ moving enemy_up | moving enemy ]\n+ down [ moving enemy_down | enemy ] -> [ moving enemy_down | moving enemy ]\n+ left [ moving enemy_left | enemy ] -> [ moving enemy_left | moving enemy ]\n+ right [ moving enemy_right | enemy ] -> [ moving enemy_right | moving enemy ]\n)\n\nrandom [ ] -> [ bg_light]\n\n[bg_light | no bg_dark ] -> [ bg_light | bg_dark]\n+[bg_dark | no bg_light ] -> [ bg_dark | bg_light]\n\n[ > player | wall ] -> cancel \n[ > enemy | wall ] -> cancel\n\nlate [ player_dir enemy ] -> [ player_dir player_crushed enemy ] sfx1\n\n\nlate [ enemy_up player_crushed] -> [ player_up player_crushed ]\nlate [ enemy_down player_crushed] -> [ player_down player_crushed ]\nlate [ enemy_left player_crushed] -> [ player_left player_crushed ]\nlate [ enemy_right player_crushed] -> [ player_right player_crushed ]\n\nlate up [ player_up | enemy_down ] -> [ player_up | Player_down ]\n+ late down [ player_down | enemy_up ] -> [ player_down | Player_up ]\n+ late left [ player_left | enemy_right ] -> [ player_left | Player_right ]\n+ late right [ player_right | enemy_left ] -> [ player_right | Player_left ]\n+ late [ player_noup enemy_up] -> [ player_noup player_up ]\n+ late [ player_nodown enemy_down] -> [ player_nodown player_down ]\n+ late [ player_noleft enemy_left] -> [ player_noleft player_left ]\n+ late [ player_noright enemy_right] -> [ player_noright player_right ]\n\n\n(push an enemy into another enemy -_- )\n\nlate [ goal no player_crushed ] -> [ temp goal ]\nlate [ temp goal | no temp goal ] -> [ temp goal | temp goal ]\nlate [ player_crushed no goal ] [ goal ] -> [ player_crushed ] [ goal temp ]\nlate [ goal player_crushed no temp ] -> [ goal player_crushed t2 ] \n\nlate [t2] [ player_dir ] -> [t2] []\n\nlate down [t2] [ player_crushed | player_crushed ] -> [t2] [ player_crushed player_down | player_crushed player_up ]\n\nlate right [t2] [ player_crushed | player_crushed ] -> [t2] [ player_crushed player_right | player_crushed player_left ]\n\nlate [ t2] [ player_crushed goal ] -> [t2] [ player_crushed wint ] sfx0\n\nlate [ temp ] -> []\n\nlate [ t2 ] -> []\n\n[stationary finaltext]->[> finaltext]\n[moving finaltext | no finaltext ] -> [ moving finaltext | finaltext] again\n[moving finaltext ]-> [ finaltext]\n\n[finaltext] [ no finaltext ] -> [ finaltext t2 ] [ ]\n\n[finaltext no t2 ] -> win\n\n[t2]->[]\n\n==============\nWINCONDITIONS\n==============\n\nno goal\n\nno finaltext\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\n#########################################\n#.......................................#\n#...................12..................#\n#...................34..................#\n#...................56..................#\n#.......................................#\n#..................sdf..................#\n#....qw.....qw.............qw.....qw....#\n#....er.....er.....sdf.....er.....er....#\n#....ty.....ty.............ty.....ty....#\n#.......................................#\n#............g...ggg.g.g.aaa............#\n#............g...g.g.g.g.a..............#\n#............g...g.g.g.g.aaa............#\n#............g...g.g.g.g.a..............#\n#............ggg.ggg.ggg.aaa............#\n#.......................................#\n#....qw.....qw.....qw......qw.....qw....#\n#....er.....er.....er......er.....er....#\n#....ty.....ty.....ty......ty.....ty....#\n#.......................................#\n#.......................................#\n#.......................................#\n#.......................................#\n#.......................................#\n#.......................................#\n#########################################\n\n\n...............................\n...............................\n...............................\n........z...zzz.z.z.zzz........\n........z...z.z.z.z.z..........\n........z...z.z.z.z.zzz........\n........z...z.z.z.z.z..........\n........zzz.zzz.zzz.zzz........\n...............................\n...............................\n...............................\n\nmessage Love!\n\n",[2,2,2,2,2,2,2,2,3,3,3,3,2,2,3,3,"restart",1,1,1,2,2,3,1,1,1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,3,3,2,2,2,2,2,3,3,3,3,3,3,0,0,0,0,0,1,1,1,1,"restart",3,3,2,2,2,2,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,2,3,3,2,2,2,3,2,3,3,3,3,1,1,0,0,0,3,3,3,3,3,3,0,0,1,1,1,1,1],"background bg_dark wall:0,background bg_light wall: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,background bg_dark:2,background bg_light:3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,background bg_dark enemy_down enemy_right:4,background bg_light enemy_down enemy_right enemy_up:5,background bg_dark enemy_right enemy_up:6,3,2,3,2,3,2,3,4,5,6,3,2,3,2,3,2,1,0,3,\n2,3,2,3,2,background bg_light enemy_down enemy_left:7,background bg_dark enemy_down enemy_left enemy_up:8,background bg_light enemy_left enemy_up:9,2,3,2,3,2,3,2,7,8,9,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,\n2,3,2,background bg_light enemy_down enemy_right:10,background bg_dark enemy_down enemy_right enemy_up:11,background bg_light enemy_right enemy_up:12,2,3,2,3,2,3,2,10,11,12,2,3,2,3,2,3,0,1,2,3,2,3,2,3,background bg_dark enemy_down enemy_left:13,background bg_light enemy_down enemy_left enemy_up:14,background bg_dark enemy_left enemy_up:15,3,background bg_dark goal:16,background bg_light goal:17,16,17,16,3,13,\n14,15,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,17,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,16,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,16,17,16,17,16,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,\n2,3,2,3,2,17,2,3,2,17,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,16,17,16,17,16,3,4,5,6,\n3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,7,8,9,2,3,2,3,2,3,0,1,2,3,2,3,2,3,\n2,3,2,3,16,17,16,17,16,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,17,2,3,2,3,2,\n3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,16,17,16,17,16,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,background bg_light player_down player_right:18,background bg_dark player_down player_right player_up:19,background bg_light player_right player_up:20,2,3,background bg_dark wint:21,background bg_light wint:22,21,22,21,3,2,3,2,3,2,\n3,2,3,2,1,0,3,2,3,2,3,background bg_dark player_crushed player_down player_left player_right:23,background bg_light player_down player_left player_up:24,background bg_dark player_crushed player_left player_right player_up:25,3,2,22,2,22,2,22,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,background bg_light player_left player_right:26,2,26,\n2,3,21,3,21,3,21,3,4,5,6,3,2,3,2,3,2,1,0,3,2,3,background bg_dark player_down player_right:27,background bg_light player_down player_right player_up:28,25,3,background bg_dark player_left:29,3,2,3,2,3,2,3,2,7,8,9,2,3,2,\n3,2,3,0,1,2,3,2,background bg_light player_down player_left:30,background bg_dark player_crushed player_down player_left player_right player_up:31,background bg_light player_crushed player_down player_left player_right player_up:32,background bg_dark player_right player_up:33,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,30,background bg_dark player_down player_left player_up:34,background bg_light player_left player_up:35,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,10,11,12,2,3,2,3,2,\n3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,13,14,15,3,2,3,2,3,2,1,0,3,2,3,2,3,2,3,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,\n1,0,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,1,2,3,2,3,2,3,2,3,2,3,2,3,\n2,3,2,3,2,3,2,3,2,3,2,3,2,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,\n",1,"1627891999778.8188"] ], [ - "Alternatey", - ["title Alternatey\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nbackground_color darkgray\n\nnoaction\n\nrequire_player_movement\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nwall \ndarkgray\n\n\nPlayer\nwhite\n\nt\nTRANSPARENT\n\ngoal g\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nh = goal and player\n\n\n=======\nSOUNDS\n=======\n\nendlevel 6300906 \nstartgame 6300906 \n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall\nt\ng\n\n======\nRULES\n======\n\n\n[moving player ] -> again\n\n[stationary player ] [ no player no wall ] -> [stationary player ] [ player t ]\n[stationary player ] [ player no t no wall ] ->[stationary player ] [ ]\n[stationary player ] [t]->[stationary player ] []\n\n==============\nWINCONDITIONS\n==============\nall player on goal\nall goal on player\n\n=======\nLEVELS\n=======\n\nmessage you control the white squares\n\nmessage level 1 of 3\n\n\n....\n..P.\n.gg.\nP...\n....\n\n\nmessage level 2 of 3\n\n......\n.g..g.\n..pp..\n..pp..\n.g..g.\n......\n\n\nmessage level 3 of 3\n\n#...#\n.gpg.\n.p.p.\n.gpg.\n#...#\n\nmessage Victory!\n\n", [0, 1, 2], "background player:0,0,0,0,0,0,\n0,background goal player:1,0,0,1,0,\n0,0,background:2,2,0,0,\n0,0,0,0,0,0,\n0,1,0,0,1,0,\n0,0,2,2,0,0,\n", 4, "1627892045163.187"] + "Alternatey", + ["title Alternatey\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nbackground_color darkgray\n\nnoaction\n\nrequire_player_movement\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nwall \ndarkgray\n\n\nPlayer\nwhite\n\nt\nTRANSPARENT\n\ngoal g\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nh = goal and player\n\n\n=======\nSOUNDS\n=======\n\nendlevel 6300906 \nstartgame 6300906 \n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall\nt\ng\n\n======\nRULES\n======\n\n\n[moving player ] -> again\n\n[stationary player ] [ no player no wall ] -> [stationary player ] [ player t ]\n[stationary player ] [ player no t no wall ] ->[stationary player ] [ ]\n[stationary player ] [t]->[stationary player ] []\n\n==============\nWINCONDITIONS\n==============\nall player on goal\nall goal on player\n\n=======\nLEVELS\n=======\n\nmessage you control the white squares\n\nmessage level 1 of 3\n\n\n....\n..P.\n.gg.\nP...\n....\n\n\nmessage level 2 of 3\n\n......\n.g..g.\n..pp..\n..pp..\n.g..g.\n......\n\n\nmessage level 3 of 3\n\n#...#\n.gpg.\n.p.p.\n.gpg.\n#...#\n\nmessage Victory!\n\n",[0,1,2],"background player:0,0,0,0,0,0,\n0,background goal player:1,0,0,1,0,\n0,0,background:2,2,0,0,\n0,0,0,0,0,0,\n0,1,0,0,1,0,\n0,0,2,2,0,0,\n",4,"1627892045163.187"] ], [ - "Push Pull", - ["title Push Pull\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrequire_player_movement\n\n(the levels are taken from D. Skinner's microban, a demo bundled with puzzlescript, but the mechanics are different, so?)\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\ncrate2\nLIGHTRED \n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\ncrates = crate or crate2\n\n. = Background\n# = Wall\nP = Player\n* = Crate\nj = crate2\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, crate2\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate2 ]\n[ < Player | Crate2 ] -> [ < Player | < Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crates\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 3\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 2 of 3\n\n\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\nmessage level 3 of 3\n\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\nmessage congrats :)\n", [2, 1, 0, 3, 3, 3, 2, 1, 0, 1, 1, 2, 2, 3, 0, 1, 0, 3, 1, 2, 0, 0, 3, 0], "background wall:0,0,0,0,0,0,\n0,0,background:1,background crate2:2,background target:3,1,\n1,0,0,3,background player:4,background crate:5,\n1,1,0,0,0,0,\n1,1,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 1, "1627892056284.9724"] + "Push Pull", + ["title Push Pull\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrequire_player_movement\n\n(the levels are taken from D. Skinner's microban, a demo bundled with puzzlescript, but the mechanics are different, so?)\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\ncrate2\nLIGHTRED \n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\ncrates = crate or crate2\n\n. = Background\n# = Wall\nP = Player\n* = Crate\nj = crate2\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, crate2\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate2 ]\n[ < Player | Crate2 ] -> [ < Player | < Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crates\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 3\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 2 of 3\n\n\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\nmessage level 3 of 3\n\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\nmessage congrats :)\n",[2,1,0,3,3,3,2,1,0,1,1,2,2,3,0,1,0,3,1,2,0,0,3,0],"background wall:0,0,0,0,0,0,\n0,0,background:1,background crate2:2,background target:3,1,\n1,0,0,3,background player:4,background crate:5,\n1,1,0,0,0,0,\n1,1,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",1,"1627892056284.9724"] ], [ - "Slide Pull", - ["title Slide Pull\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nrequire_player_movement\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\npink Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\ncrate2\nlightblue \n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\ncrates = crate or crate2\n\n. = Background\n# = Wall\nP = Player\n* = Crate2\nj = crate\n@ = Crate2 and Target\nO = Target\n\nobstacle = crates or wall or player \n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, crate2\n\n======\nRULES\n======\n\n\n[ > Player | Crate2 ] -> [ > Player | > Crate2 ]\n\n[ > crate2 | no obstacle ] -> [ | > crate2 ]\n[> crate2 | obstacle ] -> [ crate | obstacle ]\n\n[ < Player | Crate ] -> [ < Player | < Crate2 ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crates\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 7\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\nmessage level 2 of 7\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\nmessage level 3 of 7\n\n\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\n\n\n\nmessage level 4 of 7\n\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n\nmessage level 5 of 7\n\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\n\nmessage level 6 of 7\n\n\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n\nmessage level 7 of 7\n\n\n\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.j.j.j.#\n#.#.#.#.###\n#.......#..\n#########..\n\n\n\n\nmessage congrats :)\n\n", [1, 0, 1, 1, 2, 0, 1, 1, 1, 3, 3, 3, 2, 1, 2, 3, 0, 3, 0, 3, 3, 3, 1, 1, 2, 1, 0, 0, 3, 3, 3, 2, 1], "background wall:0,0,0,0,0,background:1,0,1,\nbackground crate:2,1,0,1,0,1,background crate target:3,1,\n0,1,0,1,background target:4,1,0,1,\n0,1,4,2,0,0,0,1,\nbackground player:5,1,1,0,0,1,1,1,\n1,0,0,0,0,0,0,0,\n", 5, "1627892069950.7256"] + "Slide Pull", + ["title Slide Pull\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\nrequire_player_movement\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\npink Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\ncrate2\nlightblue \n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\ncrates = crate or crate2\n\n. = Background\n# = Wall\nP = Player\n* = Crate2\nj = crate\n@ = Crate2 and Target\nO = Target\n\nobstacle = crates or wall or player \n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, crate2\n\n======\nRULES\n======\n\n\n[ > Player | Crate2 ] -> [ > Player | > Crate2 ]\n\n[ > crate2 | no obstacle ] -> [ | > crate2 ]\n[> crate2 | obstacle ] -> [ crate | obstacle ]\n\n[ < Player | Crate ] -> [ < Player | < Crate2 ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crates\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 7\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\nmessage level 2 of 7\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\nmessage level 3 of 7\n\n\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\n\n\n\nmessage level 4 of 7\n\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n\nmessage level 5 of 7\n\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\n\nmessage level 6 of 7\n\n\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n\nmessage level 7 of 7\n\n\n\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.j.j.j.#\n#.#.#.#.###\n#.......#..\n#########..\n\n\n\n\nmessage congrats :)\n\n",[1,0,1,1,2,0,1,1,1,3,3,3,2,1,2,3,0,3,0,3,3,3,1,1,2,1,0,0,3,3,3,2,1],"background wall:0,0,0,0,0,background:1,0,1,\nbackground crate:2,1,0,1,0,1,background crate target:3,1,\n0,1,0,1,background target:4,1,0,1,\n0,1,4,2,0,0,0,1,\nbackground player:5,1,1,0,0,1,1,1,\n1,0,0,0,0,0,0,0,\n",5,"1627892069950.7256"] ], [ - "Make way!", - ["title Make way!\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrequire_player_movement\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\nGREEN lightgreen \n11111\n01111\n11101\n11111\n10111\n\n\npit\nblack\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nblack\n\nPlayer\nBlack brown White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\ncrate\nblue \n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n\n. = Background\n# = Wall\nP = Player\nc = crate\n@ = crate and Target\nO = Target\n\nobstacle = crate or wall or player \n=======\nSOUNDS\n=======\n\nsfx0 67594107\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\npit\nTarget\nPlayer, Wall, crate\n\n======\nRULES\n======\n\n[> player | pit ] -> cancel\n\n[ moving player ] -> [ moving player pit ]\n[ > Player | crate ] -> [ > Player | > crate ] \n\n[ > crate | no obstacle ] -> [ | > crate no pit ]\n[> crate | obstacle ] -> [ crate | obstacle ] sfx0\n\n\n==============\nWINCONDITIONS\n==============\nall crate on target\n\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 2\n\n#######\n#.....#\n#..c..#\n#..c..#\n#..c..#\n#.....#\n#.....#\n#..p..#\n#o.o.o#\n#######\n\n\n\nmessage level 2 of 2\n\n#######\n#.....#\n#.c.c.#\n#.....#\n#.c.c.#\n#.....#\n#oopoo#\n#######\n\n\nmessage congrats :)\n\n\n\n\n\n", [0, 3, 0, 0, 0, 1, 1, 0, 1, 2], "background wall:0,0,0,0,0,0,0,\n0,0,0,0,background:1,background pit:2,background player:3,\n1,1,1,1,background crate target:4,0,0,\n1,2,2,1,1,1,1,\n1,0,0,1,background crate:5,2,5,\n1,2,2,background target:6,0,0,1,\n1,2,2,2,2,1,1,\n0,0,1,1,1,1,1,\n1,1,6,0,0,0,0,\n0,0,0,0,0,0,0,\n", 1, "1627892084709.0234"] + "Make way!", + ["title Make way!\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrequire_player_movement\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\nGREEN lightgreen \n11111\n01111\n11101\n11111\n10111\n\n\npit\nblack\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nblack\n\nPlayer\nBlack brown White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\ncrate\nblue \n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n\n. = Background\n# = Wall\nP = Player\nc = crate\n@ = crate and Target\nO = Target\n\nobstacle = crate or wall or player \n=======\nSOUNDS\n=======\n\nsfx0 67594107\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\npit\nTarget\nPlayer, Wall, crate\n\n======\nRULES\n======\n\n[> player | pit ] -> cancel\n\n[ moving player ] -> [ moving player pit ]\n[ > Player | crate ] -> [ > Player | > crate ] \n\n[ > crate | no obstacle ] -> [ | > crate no pit ]\n[> crate | obstacle ] -> [ crate | obstacle ] sfx0\n\n\n==============\nWINCONDITIONS\n==============\nall crate on target\n\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 2\n\n#######\n#.....#\n#..c..#\n#..c..#\n#..c..#\n#.....#\n#.....#\n#..p..#\n#o.o.o#\n#######\n\n\n\nmessage level 2 of 2\n\n#######\n#.....#\n#.c.c.#\n#.....#\n#.c.c.#\n#.....#\n#oopoo#\n#######\n\n\nmessage congrats :)\n\n\n\n\n\n",[0,3,0,0,0,1,1,0,1,2],"background wall:0,0,0,0,0,0,0,\n0,0,0,0,background:1,background pit:2,background player:3,\n1,1,1,1,background crate target:4,0,0,\n1,2,2,1,1,1,1,\n1,0,0,1,background crate:5,2,5,\n1,2,2,background target:6,0,0,1,\n1,2,2,2,2,1,1,\n0,0,1,1,1,1,1,\n1,1,6,0,0,0,0,\n0,0,0,0,0,0,0,\n",1,"1627892084709.0234"] ], [ - "DICE GOBLIN", - ["title DICE GOBLIN\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nd1 1\nwhite darkgray black\n22222\n20002\n20102\n20002\n22222\n\nd2a 2\nwhite darkgray black\n22222\n21002\n20002\n20012\n22222\n\n\nd2b 3\nwhite darkgray black\n22222\n20012\n20002\n21002\n22222\n\nd3a 4\nwhite darkgray black\n22222\n21002\n20102\n20012\n22222\n\n\nd3b 5\nwhite darkgray black\n22222\n20012\n20102\n21002\n22222\n\n\nd4 6\nwhite darkgray black\n22222\n21012\n20002\n21012\n22222\n\n\nd5 7\nwhite darkgray black\n22222\n21012\n20102\n21012\n22222\n\n\nd6a 8\nwhite darkgray black\n22222\n21112\n20002\n21112\n22222\n\n\nd6b 9\nwhite darkgray black\n22222\n21012\n21012\n21012\n22222\n\n\nBackground\nlightgray\n\nob\ngray\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nblack\n\nPlayer\ngreen lightgreen brown\n00.00\n.222.\n.101.\n00000\n.0.0.\n\nCrate\nblack\n.....\n..0..\n.000.\n..0..\n.....\n\ntl\nred\n\nx11\ntransparent\n\nx21\ntransparent\n\nx31\ntransparent\n\n\nx12\ntransparent\n\nx22\ntransparent\n\nx32\ntransparent\n\n\nx13\ntransparent\n\nx23\ntransparent\n\nx33\ntransparent\n\nvisited\ntransparent\n\nfound \norange\n00000\n0...0\n0...0\n0...0\n00000\n\npasses\nblue\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player and ob\n* = Crate \n~ = Crate and ob\nm = crate and ob and tl\nn = crate and tl\nO = Target\n, = ob\n\nd2 = d2a or d2b\nd3 = d3a or d3b\nd6 = d6a or d6b\n\ncoord = x11 or x12 or x13 or x21 or x22 or x23 or x31 or x32 or x33\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 51877303\n================\nCOLLISIONLAYERS\n================\n\ntl\nBackground\nob\nTarget\nPlayer, Wall, Crate\nd1, d2a,d2b,d3a,d3b,d4,d5,d6a,d6b\nfound\ncoord\nvisited\npasses\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[> crate|crate]->[> crate | > crate ]\n\n\n\n\n[found]->[]\n\nstartloop\n\nrandom down [tl no visited ||]->[tl visited x11|x12|x13]\n\n\n\n\n\n\nlate right [x11 no Crate | no crate | no crate ] -> [ x11 passes | | ]\nlate right [x12 no Crate | crate | no crate ] -> [ x12 passes | crate | ]\nlate right [x13 no Crate | no crate | no crate ] -> [ x13 passes \t | | ]\n\nlate down [x11 passes | passes | passes ] [ d1 ] -> [||] [d1 found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | no crate | no crate ] -> [ x11 passes crate | | ]\nlate right [x12 no Crate | no crate | no crate ] -> [ x12 passes | | ]\nlate right [x13 no Crate | no crate | crate ] -> [ x13 passes \t | | crate ]\n\nlate down [x11 passes | passes | passes ] [ d2a ] -> [||] [d2a found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 no Crate | no crate | crate ] -> [ x11 passes | | crate]\nlate right [x12 no Crate | no crate | no crate ] -> [ x12 passes | | ]\nlate right [x13 Crate | no crate | no crate ] -> [ x13 passes \tcrate | | ]\n\nlate down [x11 passes | passes | passes ] [ d2b ] -> [||] [d2b found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | no crate | no crate ] -> [ x11 crate passes | | ]\nlate right [x12 no Crate | crate | no crate ] -> [ x12 passes | crate |]\nlate right [x13 no Crate | no crate | crate ] -> [ x13 passes | | crate]\n\nlate down [ passes | passes | passes ] [ d3a ] -> [||] [d3a found] \n\nlate [ passes ] -> []\n\n\nlate right [x11 no Crate | no crate | crate ] -> [ x11 passes | | crate]\nlate right [x12 no Crate | crate | no crate ] -> [ x12 passes | crate| ]\nlate right [x13 Crate | no crate | no crate ] -> [ x13 passes \t crate | | ]\n\nlate down [x11 passes | passes | passes ] [ d3b ] -> [||] [d3b found] \n\nlate [ passes ] -> []\n\n\n\n\n\n\nlate right [x11 Crate | no crate | crate ] -> [ x11 passes crate| | crate]\nlate right [x12 no Crate | no crate | no crate ] -> [ x12 passes | | ]\nlate right [x13 Crate | no crate | crate ] -> [ x13 passes \tcrate | | crate]\n\nlate down [x11 passes | passes | passes ] [ d4 ] -> [||] [d4 found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | no crate | crate ] -> [ x11 passes crate| | crate]\nlate right [x12 no Crate | crate | no crate ] -> [ x12 passes |crate | ]\nlate right [x13 Crate | no crate | crate ] -> [ x13 passes \tcrate | | crate]\n\nlate down [x11 passes | passes | passes ] [ d5 ] -> [||] [d5 found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | crate | crate ] -> [ x11 passes crate| crate| crate]\nlate right [x12 no Crate | no crate | no crate ] -> [ x12 passes | | ]\nlate right [x13 Crate | crate | crate ] -> [ x13 passes \tcrate | crate| crate]\n\nlate down [x11 passes | passes | passes ] [ d6a ] -> [||] [d6a found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | no crate | crate ] -> [ x11 passes crate| |crate ]\nlate right [x12 Crate | no crate | crate ] -> [ x12 passes crate| |crate ]\nlate right [x13 Crate | no crate | crate ] -> [ x13 passes crate\t | |crate ]\n\nlate down [x11 passes | passes | passes ] [ d6b ] -> [||] [d6b found] \n\nlate [ passes ] -> []\n\n\n\nlate [coord]->[]\n\nendLoop\n\n\nlate [visited]->[]\n\n==============\nWINCONDITIONS\n==============\n\nsome found on d1\nsome found on d2\nsome found on d3\nsome found on d4\nsome found on d5\nsome found on d6\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\nmessage Oh no, there was an accident at the dice printing factory. \n\nmessage Save us, dice goblin! \n\n\n#1#######n.*###\n23#######...###\n45#######*.*###\n#6#m,,n..m,~n..\n#7#,~,.*.,,,.*.\n98#p,~..*~,~..*\n#########n.*###\n#########...###\n#########*.*###\n\nmessage Now we can sell our dice to the very best casinos in the universe. God themself will play with our dice! Thank you, dice goblin!\n", [3, 0, 3, 3, 3, 3, 3], "background wall:0,background d2a found:1,background d3a found:2,0,0,background d6b:3,0,0,0,background d1:4,background d2b:5,background d3b:6,background d4 found:7,background d5 found:8,background d6a:9,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\nbackground crate ob tl:10,background ob:11,11,0,0,0,0,0,0,background crate ob:12,11,11,0,0,0,\n0,0,0,11,11,12,0,0,0,0,0,0,background crate tl:13,background:14,14,\n0,0,0,0,0,0,14,14,14,0,0,0,0,0,0,\n14,14,background crate:15,0,0,0,13,14,15,10,background ob player:16,12,13,14,15,\n14,14,14,11,12,11,14,14,14,15,14,15,12,11,12,\n15,14,15,0,0,0,13,14,14,0,0,0,0,0,0,\n14,15,14,0,0,0,0,0,0,14,14,15,0,0,0,\n", 3, "1627892093944.9868"] + "DICE GOBLIN", + ["title DICE GOBLIN\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nd1 1\nwhite darkgray black\n22222\n20002\n20102\n20002\n22222\n\nd2a 2\nwhite darkgray black\n22222\n21002\n20002\n20012\n22222\n\n\nd2b 3\nwhite darkgray black\n22222\n20012\n20002\n21002\n22222\n\nd3a 4\nwhite darkgray black\n22222\n21002\n20102\n20012\n22222\n\n\nd3b 5\nwhite darkgray black\n22222\n20012\n20102\n21002\n22222\n\n\nd4 6\nwhite darkgray black\n22222\n21012\n20002\n21012\n22222\n\n\nd5 7\nwhite darkgray black\n22222\n21012\n20102\n21012\n22222\n\n\nd6a 8\nwhite darkgray black\n22222\n21112\n20002\n21112\n22222\n\n\nd6b 9\nwhite darkgray black\n22222\n21012\n21012\n21012\n22222\n\n\nBackground\nlightgray\n\nob\ngray\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nblack\n\nPlayer\ngreen lightgreen brown\n00.00\n.222.\n.101.\n00000\n.0.0.\n\nCrate\nblack\n.....\n..0..\n.000.\n..0..\n.....\n\ntl\nred\n\nx11\ntransparent\n\nx21\ntransparent\n\nx31\ntransparent\n\n\nx12\ntransparent\n\nx22\ntransparent\n\nx32\ntransparent\n\n\nx13\ntransparent\n\nx23\ntransparent\n\nx33\ntransparent\n\nvisited\ntransparent\n\nfound \norange\n00000\n0...0\n0...0\n0...0\n00000\n\npasses\nblue\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player and ob\n* = Crate \n~ = Crate and ob\nm = crate and ob and tl\nn = crate and tl\nO = Target\n, = ob\n\nd2 = d2a or d2b\nd3 = d3a or d3b\nd6 = d6a or d6b\n\ncoord = x11 or x12 or x13 or x21 or x22 or x23 or x31 or x32 or x33\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 51877303\n================\nCOLLISIONLAYERS\n================\n\ntl\nBackground\nob\nTarget\nPlayer, Wall, Crate\nd1, d2a,d2b,d3a,d3b,d4,d5,d6a,d6b\nfound\ncoord\nvisited\npasses\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[> crate|crate]->[> crate | > crate ]\n\n\n\n\n[found]->[]\n\nstartloop\n\nrandom down [tl no visited ||]->[tl visited x11|x12|x13]\n\n\n\n\n\n\nlate right [x11 no Crate | no crate | no crate ] -> [ x11 passes | | ]\nlate right [x12 no Crate | crate | no crate ] -> [ x12 passes | crate | ]\nlate right [x13 no Crate | no crate | no crate ] -> [ x13 passes \t | | ]\n\nlate down [x11 passes | passes | passes ] [ d1 ] -> [||] [d1 found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | no crate | no crate ] -> [ x11 passes crate | | ]\nlate right [x12 no Crate | no crate | no crate ] -> [ x12 passes | | ]\nlate right [x13 no Crate | no crate | crate ] -> [ x13 passes \t | | crate ]\n\nlate down [x11 passes | passes | passes ] [ d2a ] -> [||] [d2a found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 no Crate | no crate | crate ] -> [ x11 passes | | crate]\nlate right [x12 no Crate | no crate | no crate ] -> [ x12 passes | | ]\nlate right [x13 Crate | no crate | no crate ] -> [ x13 passes \tcrate | | ]\n\nlate down [x11 passes | passes | passes ] [ d2b ] -> [||] [d2b found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | no crate | no crate ] -> [ x11 crate passes | | ]\nlate right [x12 no Crate | crate | no crate ] -> [ x12 passes | crate |]\nlate right [x13 no Crate | no crate | crate ] -> [ x13 passes | | crate]\n\nlate down [ passes | passes | passes ] [ d3a ] -> [||] [d3a found] \n\nlate [ passes ] -> []\n\n\nlate right [x11 no Crate | no crate | crate ] -> [ x11 passes | | crate]\nlate right [x12 no Crate | crate | no crate ] -> [ x12 passes | crate| ]\nlate right [x13 Crate | no crate | no crate ] -> [ x13 passes \t crate | | ]\n\nlate down [x11 passes | passes | passes ] [ d3b ] -> [||] [d3b found] \n\nlate [ passes ] -> []\n\n\n\n\n\n\nlate right [x11 Crate | no crate | crate ] -> [ x11 passes crate| | crate]\nlate right [x12 no Crate | no crate | no crate ] -> [ x12 passes | | ]\nlate right [x13 Crate | no crate | crate ] -> [ x13 passes \tcrate | | crate]\n\nlate down [x11 passes | passes | passes ] [ d4 ] -> [||] [d4 found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | no crate | crate ] -> [ x11 passes crate| | crate]\nlate right [x12 no Crate | crate | no crate ] -> [ x12 passes |crate | ]\nlate right [x13 Crate | no crate | crate ] -> [ x13 passes \tcrate | | crate]\n\nlate down [x11 passes | passes | passes ] [ d5 ] -> [||] [d5 found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | crate | crate ] -> [ x11 passes crate| crate| crate]\nlate right [x12 no Crate | no crate | no crate ] -> [ x12 passes | | ]\nlate right [x13 Crate | crate | crate ] -> [ x13 passes \tcrate | crate| crate]\n\nlate down [x11 passes | passes | passes ] [ d6a ] -> [||] [d6a found] \n\nlate [ passes ] -> []\n\n\n\nlate right [x11 Crate | no crate | crate ] -> [ x11 passes crate| |crate ]\nlate right [x12 Crate | no crate | crate ] -> [ x12 passes crate| |crate ]\nlate right [x13 Crate | no crate | crate ] -> [ x13 passes crate\t | |crate ]\n\nlate down [x11 passes | passes | passes ] [ d6b ] -> [||] [d6b found] \n\nlate [ passes ] -> []\n\n\n\nlate [coord]->[]\n\nendLoop\n\n\nlate [visited]->[]\n\n==============\nWINCONDITIONS\n==============\n\nsome found on d1\nsome found on d2\nsome found on d3\nsome found on d4\nsome found on d5\nsome found on d6\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\nmessage Oh no, there was an accident at the dice printing factory. \n\nmessage Save us, dice goblin! \n\n\n#1#######n.*###\n23#######...###\n45#######*.*###\n#6#m,,n..m,~n..\n#7#,~,.*.,,,.*.\n98#p,~..*~,~..*\n#########n.*###\n#########...###\n#########*.*###\n\nmessage Now we can sell our dice to the very best casinos in the universe. God themself will play with our dice! Thank you, dice goblin!\n",[3,0,3,3,3,3,3],"background wall:0,background d2a found:1,background d3a found:2,0,0,background d6b:3,0,0,0,background d1:4,background d2b:5,background d3b:6,background d4 found:7,background d5 found:8,background d6a:9,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\nbackground crate ob tl:10,background ob:11,11,0,0,0,0,0,0,background crate ob:12,11,11,0,0,0,\n0,0,0,11,11,12,0,0,0,0,0,0,background crate tl:13,background:14,14,\n0,0,0,0,0,0,14,14,14,0,0,0,0,0,0,\n14,14,background crate:15,0,0,0,13,14,15,10,background ob player:16,12,13,14,15,\n14,14,14,11,12,11,14,14,14,15,14,15,12,11,12,\n15,14,15,0,0,0,13,14,14,0,0,0,0,0,0,\n14,15,14,0,0,0,0,0,0,14,14,15,0,0,0,\n",3,"1627892093944.9868"] ], [ - "KONSUM", - ["title KONSUM\nauthor increpare\nhomepage www.increpare.com\nrun_rules_on_level_start\nnorepeat_action\ntext_color lightgray\nbackground_color darkblue\n(thanks to eli cauley for helping test)\ncolor_palette 13\n\n========\nOBJECTS\n========\n\n\nBackground \ndarkblue \n \n\n\n\nwall_t #\ngray darkblue\n.....\n00000\n.....\n00000\n11111\n\n\nwall_b 2 \ngray darkblue\n11111\n00000\n.....\n00000\n.....\n\nwall_l 3 \ngray darkblue\n.0.01\n.0.01\n.0.01\n.0.01\n.0.01\n\n\nwall_r 4\ngray darkblue\n10.0.\n10.0.\n10.0.\n10.0.\n10.0.\n\nWall_tl 5\ngray darkblue\n.....\n..000\n.00..\n.0.00\n.0.01\n\nWall_tr 6\ngray darkblue\n.....\n000..\n..00.\n00.0.\n10.0.\n\nWall_bl 7\ngray darkblue\n.0.01\n.0.00\n.00..\n..000\n.....\n\nWall_br 8\ngray darkblue\n10.0.\n00.0.\n..00.\n000..\n.....\n\nblacktile\ngray\n\nwhitetile\ndarkgreen\n\nexplore\nyellow\n.....\n..0..\n.000.\n..0..\n.....\n\nplace\nyellow\n00.00\n0...0\n.....\n0...0\n00.00\n\n\nexploremode\nlightblue\n.....\n.0.0.\n.....\n.0.0.\n.....\n\ntemp\nred\n\nnosuck\nlightred\n.....\n..0..\n.000.\n..0..\n.....\n\ncanplace\npurple\n\nbadborder\nlightblue\n.....\n.....\n..0..\n.....\n.....\n\ny_up\nyellow\n00000\n.....\n.....\n.....\n.....\n\n\ny_down\nyellow\n.....\n.....\n.....\n.....\n00000\n\n\ny_left\nyellow\n0....\n0....\n0....\n0....\n0....\n\n\ny_right\nyellow\n....0\n....0\n....0\n....0\n....0\n\n\nr_up\n#ff0000\n00000\n.....\n.....\n.....\n.....\n\n\nr_down\n#ff0000\n.....\n.....\n.....\n.....\n00000\n\n\nr_left\n#ff0000\n0....\n0....\n0....\n0....\n0....\n\n\nr_right\n#ff0000\n....0\n....0\n....0\n....0\n....0\n\n\nb_up\ndarkbrown\n00000\n.....\n.....\n.....\n.....\n\n\nb_down\ndarkbrown\n.....\n.....\n.....\n.....\n00000\n\n\nb_left\ndarkbrown\n0....\n0....\n0....\n0....\n0....\n\n\nb_right\ndarkbrown\n....0\n....0\n....0\n....0\n....0\n\n=======\nLEGEND\n=======\n\n. = Background\nP = explore and blacktile\n0 = whitetile\n1 = blacktile \n\nplayer = explore or place\n\ny_lines = y_up or y_down or y_left or y_right\nr_lines = r_up or r_down or r_left or r_right\nb_lines = b_up or b_down or b_left or b_right\nlines = y_lines or r_lines or b_lines\nwall = Wall_t or wall_b or wall_l or wall_r or wall_tl or wall_tr or wall_bl or wall_br \n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nplace\nblacktile, whitetile\nWall\nexplore\nexploremode\ntemp\ncanplace\nnosuck\nbadborder\ny_up\ny_down\ny_left\ny_right\nr_up\nr_down\nr_left\nr_right\nb_up\nb_down\nb_left\nb_right\n\n\n======\nRULES\n======\n\n[lines]->[]\n\n[nosuck]->[]\n\n[ > player | wall ] -> cancel\n\n[action explore blacktile] -> [ place blacktile]\n[stationary place | blacktile ] -> [ place | blacktile place]\n\n\n(to place)\n\n(1 must have at least one piece on black)\nrandom [ place blacktile] -> [ place blacktile canplace ]\n\n[ canplace ] [ blacktile place | blacktile no place ] -> [ ] [ blacktile place | blacktile ]\n\n[canplace] [ action place ] ->[canplace] [ action place blacktile ]\n\n[canplace]->[]\n\nrandom [ action place ] -> [ explore ]\n\n[place ] [ explore ] -> [] [ explore ]\n\nlate [ explore no blacktile ] -> [ explore nosuck]\n\n\nlate up [ place | no place ] -> [ place y_up | ]\nlate down [ place | no place ] -> [ place y_down | ]\nlate left [ place | no place ] -> [ place y_left | ]\nlate right [ place | no place ] -> [ place y_right | ]\n\nrandom late [ place blacktile ] -> [ place temp blacktile ]\nlate [temp] [ place ] -> [ temp ] [ place temp ]\n\nlate [y_up no temp ] -> [ b_up ]\nlate [y_down no temp ] -> [ b_down ]\nlate [y_left no temp ] -> [ b_left ]\nlate [y_right no temp ] -> [ b_right ]\n\n\nlate [ temp] -> []\n\nlate up [ y_up blacktile | blacktile ] -> [ r_up blacktile | blacktile ]\nlate down [ y_down blacktile | blacktile ] -> [ r_down blacktile | blacktile ]\nlate left [ y_left blacktile | blacktile ] -> [ r_left blacktile | blacktile ]\nlate right [ y_right blacktile | blacktile ] -> [ r_right blacktile | blacktile ]\n\n==============\nWINCONDITIONS\n==============\n\nno whitetile\n\n\n=======\nLEVELS\n=======\n\nmessage LEVEL 1 / 1\n\n5########6\n3010000114\n300p000004\n3000001004\n3000010014\n3000000004\n3001000004\n3001000004\n3000000004\n7########8\n\nmessage CONSUMPTION SUCCESSFUL / ERFOLGEREICHER VERBRAUCH\n", [3, 1, 4, 3, 3, 2, 3, 4, 2, 4, 1, 4, 2, 2, 1, 1, 4, 4, 3, 3, 0, 0, 0, 0, 0, 3, 3, 3, 4, 4, 0, 4, 2, 2, 2, 1, 1, 3, 4, 3, 4, 4, 0, 0, 0, 4, 2, 2, 1, 1, 1, 4, 0, 1, 1, 4, 0, 4, 2, 1, 4, 3, 4, 2, 2, 2, 2, 4, 2, 4, 3, 0, 0, 1, 4, 2, 2, 4, 0, 0, 0, 0, 3, 1, 2, 2, 2, 2, 0, 2, 4, 3, 0, 0, 3, 0, 0, 2, 2, 2, 2, 2, 1, 1, 1, 0, 3, 4, 3, 3, 0, 0, 0, 0, 2, 4, 3, 4, 0, 1, 2, 4, 3, 0, 4, 1, 1, 0, 4, 4, 1, 0, 4], "background wall_tl:0,background wall_l:1,1,1,1,1,1,1,1,background wall_bl:2,\nbackground wall_t:3,background whitetile:4,4,4,4,4,4,4,4,3,\n3,background blacktile:5,background blacktile explore:6,4,4,4,4,4,4,3,\n3,5,5,5,4,4,5,5,4,3,\n3,4,5,4,4,4,4,4,4,3,\n3,4,4,5,5,4,4,4,4,3,\n3,4,4,5,4,4,4,4,4,3,\n3,5,4,4,4,4,4,4,4,3,\n3,5,4,4,5,4,4,4,4,3,\nbackground wall_tr:7,background wall_r:8,8,8,8,8,8,8,8,background wall_br:9,\n", 1, "1627892104859.3337"] + "KONSUM", + ["title KONSUM\nauthor increpare\nhomepage www.increpare.com\nrun_rules_on_level_start\nnorepeat_action\ntext_color lightgray\nbackground_color darkblue\n(thanks to eli cauley for helping test)\ncolor_palette 13\n\n========\nOBJECTS\n========\n\n\nBackground \ndarkblue \n \n\n\n\nwall_t #\ngray darkblue\n.....\n00000\n.....\n00000\n11111\n\n\nwall_b 2 \ngray darkblue\n11111\n00000\n.....\n00000\n.....\n\nwall_l 3 \ngray darkblue\n.0.01\n.0.01\n.0.01\n.0.01\n.0.01\n\n\nwall_r 4\ngray darkblue\n10.0.\n10.0.\n10.0.\n10.0.\n10.0.\n\nWall_tl 5\ngray darkblue\n.....\n..000\n.00..\n.0.00\n.0.01\n\nWall_tr 6\ngray darkblue\n.....\n000..\n..00.\n00.0.\n10.0.\n\nWall_bl 7\ngray darkblue\n.0.01\n.0.00\n.00..\n..000\n.....\n\nWall_br 8\ngray darkblue\n10.0.\n00.0.\n..00.\n000..\n.....\n\nblacktile\ngray\n\nwhitetile\ndarkgreen\n\nexplore\nyellow\n.....\n..0..\n.000.\n..0..\n.....\n\nplace\nyellow\n00.00\n0...0\n.....\n0...0\n00.00\n\n\nexploremode\nlightblue\n.....\n.0.0.\n.....\n.0.0.\n.....\n\ntemp\nred\n\nnosuck\nlightred\n.....\n..0..\n.000.\n..0..\n.....\n\ncanplace\npurple\n\nbadborder\nlightblue\n.....\n.....\n..0..\n.....\n.....\n\ny_up\nyellow\n00000\n.....\n.....\n.....\n.....\n\n\ny_down\nyellow\n.....\n.....\n.....\n.....\n00000\n\n\ny_left\nyellow\n0....\n0....\n0....\n0....\n0....\n\n\ny_right\nyellow\n....0\n....0\n....0\n....0\n....0\n\n\nr_up\n#ff0000\n00000\n.....\n.....\n.....\n.....\n\n\nr_down\n#ff0000\n.....\n.....\n.....\n.....\n00000\n\n\nr_left\n#ff0000\n0....\n0....\n0....\n0....\n0....\n\n\nr_right\n#ff0000\n....0\n....0\n....0\n....0\n....0\n\n\nb_up\ndarkbrown\n00000\n.....\n.....\n.....\n.....\n\n\nb_down\ndarkbrown\n.....\n.....\n.....\n.....\n00000\n\n\nb_left\ndarkbrown\n0....\n0....\n0....\n0....\n0....\n\n\nb_right\ndarkbrown\n....0\n....0\n....0\n....0\n....0\n\n=======\nLEGEND\n=======\n\n. = Background\nP = explore and blacktile\n0 = whitetile\n1 = blacktile \n\nplayer = explore or place\n\ny_lines = y_up or y_down or y_left or y_right\nr_lines = r_up or r_down or r_left or r_right\nb_lines = b_up or b_down or b_left or b_right\nlines = y_lines or r_lines or b_lines\nwall = Wall_t or wall_b or wall_l or wall_r or wall_tl or wall_tr or wall_bl or wall_br \n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nplace\nblacktile, whitetile\nWall\nexplore\nexploremode\ntemp\ncanplace\nnosuck\nbadborder\ny_up\ny_down\ny_left\ny_right\nr_up\nr_down\nr_left\nr_right\nb_up\nb_down\nb_left\nb_right\n\n\n======\nRULES\n======\n\n[lines]->[]\n\n[nosuck]->[]\n\n[ > player | wall ] -> cancel\n\n[action explore blacktile] -> [ place blacktile]\n[stationary place | blacktile ] -> [ place | blacktile place]\n\n\n(to place)\n\n(1 must have at least one piece on black)\nrandom [ place blacktile] -> [ place blacktile canplace ]\n\n[ canplace ] [ blacktile place | blacktile no place ] -> [ ] [ blacktile place | blacktile ]\n\n[canplace] [ action place ] ->[canplace] [ action place blacktile ]\n\n[canplace]->[]\n\nrandom [ action place ] -> [ explore ]\n\n[place ] [ explore ] -> [] [ explore ]\n\nlate [ explore no blacktile ] -> [ explore nosuck]\n\n\nlate up [ place | no place ] -> [ place y_up | ]\nlate down [ place | no place ] -> [ place y_down | ]\nlate left [ place | no place ] -> [ place y_left | ]\nlate right [ place | no place ] -> [ place y_right | ]\n\nrandom late [ place blacktile ] -> [ place temp blacktile ]\nlate [temp] [ place ] -> [ temp ] [ place temp ]\n\nlate [y_up no temp ] -> [ b_up ]\nlate [y_down no temp ] -> [ b_down ]\nlate [y_left no temp ] -> [ b_left ]\nlate [y_right no temp ] -> [ b_right ]\n\n\nlate [ temp] -> []\n\nlate up [ y_up blacktile | blacktile ] -> [ r_up blacktile | blacktile ]\nlate down [ y_down blacktile | blacktile ] -> [ r_down blacktile | blacktile ]\nlate left [ y_left blacktile | blacktile ] -> [ r_left blacktile | blacktile ]\nlate right [ y_right blacktile | blacktile ] -> [ r_right blacktile | blacktile ]\n\n==============\nWINCONDITIONS\n==============\n\nno whitetile\n\n\n=======\nLEVELS\n=======\n\nmessage LEVEL 1 / 1\n\n5########6\n3010000114\n300p000004\n3000001004\n3000010014\n3000000004\n3001000004\n3001000004\n3000000004\n7########8\n\nmessage CONSUMPTION SUCCESSFUL / ERFOLGEREICHER VERBRAUCH\n",[3,1,4,3,3,2,3,4,2,4,1,4,2,2,1,1,4,4,3,3,0,0,0,0,0,3,3,3,4,4,0,4,2,2,2,1,1,3,4,3,4,4,0,0,0,4,2,2,1,1,1,4,0,1,1,4,0,4,2,1,4,3,4,2,2,2,2,4,2,4,3,0,0,1,4,2,2,4,0,0,0,0,3,1,2,2,2,2,0,2,4,3,0,0,3,0,0,2,2,2,2,2,1,1,1,0,3,4,3,3,0,0,0,0,2,4,3,4,0,1,2,4,3,0,4,1,1,0,4,4,1,0,4],"background wall_tl:0,background wall_l:1,1,1,1,1,1,1,1,background wall_bl:2,\nbackground wall_t:3,background whitetile:4,4,4,4,4,4,4,4,3,\n3,background blacktile:5,background blacktile explore:6,4,4,4,4,4,4,3,\n3,5,5,5,4,4,5,5,4,3,\n3,4,5,4,4,4,4,4,4,3,\n3,4,4,5,5,4,4,4,4,3,\n3,4,4,5,4,4,4,4,4,3,\n3,5,4,4,4,4,4,4,4,3,\n3,5,4,4,5,4,4,4,4,3,\nbackground wall_tr:7,background wall_r:8,8,8,8,8,8,8,8,background wall_br:9,\n",1,"1627892104859.3337"] ], [ - "Expand, avoid the flames [also it's not always solvable]", - ["title Expand, avoid the flames [also it's not always solvable]\nauthor Stephen Lavelle\nhomepage www.increpare.com\nrun_rules_on_level_start\ncolor_palette 14\nbackground_color black\ntext_color orange\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nwall #\ndarkgreen\n..0..\n..0..\n..0..\n..0..\n..0..\n\ntotenkopf k\ngray\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nspawntile s\ndarkred\n\nfire f\nred yellow\n10101\n01010\n10101\n01010\n10101\n\nPlayer\nwhite\n0...0\n.....\n.....\n.....\n0...0\n\n\nu\nlightred \n.....\n..0..\n.0.0.\n.....\n.....\n\n0\nwhite\n.....\n.000.\n.000.\n.000.\n.....\n\nd\nyellow\n.....\n.....\n.0.0.\n..0..\n.....\n\n\n\nl\nlightgreen\n.....\n..0..\n.0...\n..0..\n.....\n\n\n\nr\nlightblue\n.....\n..0..\n...0.\n..0..\n.....\n\ntu\nred\n\ntd\nred\n\ntl\nred\n\ntr\nred\n\nmu\nyellow\n\nmd\nyellow\n\nml\nyellow\n\nmr\nyellow\n\ntemp\nblue\n\ndirekt \ntransparent\n\nt2 \ntransparent\n\nt3\ntransparent\n\nsuccess\ntransparent\n\nempty\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\nP = player\narrow = u or r or d or l\nt = tu or td or tl or tr\n2 = fire and t2\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nspawntile\nfire\nu,d,l,r\nPlayer,0, wall\ntu\ntd\ntl\ntr\nmu\nmd\nml\nmr\ntemp\ndirekt\nt2\nt3\ntotenkopf\nsuccess\nempty\n\n======\nRULES\n======\n\n[> player|fire]->cancel\n\n[spawntile no arrow ] -> [ spawntile random arrow ] again\n\nrandom [t2]->[up t3]\nrandom [stationary t3]->[t2]\n\n\n( down [ arrow | no arrow ] -> [> arrow| ] again\n+ down [ arrow | > arrow ] -> [ > arrow | > arrow ] again\n)\nup [ u | u | u ] -> [ tu u | tu u | tu u ]\nup [tu u | u no tu ] -> [ tu u | tu u ]\n\nup [ d | d | d ] -> [ tu d | tu d | tu d ]\nup [tu d | d no tu ] -> [ tu d | tu d ]\n\nup [ l | l | l ] -> [ tu l | tu l | tu l ]\nup [tu l | l no tu ] -> [ tu l | tu l ]\n\nup [ r | r | r ] -> [ tu r | tu r | tu r ]\nup [tu r | r no tu ] -> [ tu r | tu r ]\n\n\ndown [ u | u | u ] -> [ td u | td u | td u ]\ndown [td u | u no td ] -> [ td u | td u ]\n\ndown [ d | d | d ] -> [ td d | td d | td d ]\ndown [td d | d no td ] -> [ td d | td d ]\n\ndown [ l | l | l ] -> [ td l | td l | td l ]\ndown [td l | l no td ] -> [ td l | td l ]\n\ndown [ r | r | r ] -> [ td r | td r | td r ]\ndown [td r | r no td ] -> [ td r | td r ]\n\n\nleft [ u | u | u ] -> [ tl u | tl u | tl u ]\nleft [tl u | u no tl ] -> [ tl u | tl u ]\n\nleft [ d | d | d ] -> [ tl d | tl d | tl d ]\nleft [tl d | d no tl ] -> [ tl d | tl d ]\n\nleft [ l | l | l ] -> [ tl l | tl l | tl l ]\nleft [tl l | l no tl ] -> [ tl l | tl l ]\n\nleft [ r | r | r ] -> [ tl r | tl r | tl r ]\nleft [tl r | r no tl ] -> [ tl r | tl r ]\n\n\n\n\nright [ u | u | u ] -> [ tr u | tr u | tr u ]\nright [tr u | u no tr ] -> [ tr u | tr u ]\n\nright [ d | d | d ] -> [ tr d | tr d | tr d ]\nright [tr d | d no tr ] -> [ tr d | tr d ]\n\nright [ l | l | l ] -> [ tr l | tr l | tr l ]\nright [tr l | l no tr ] -> [ tr l | tr l ]\n\nright [ r | r | r ] -> [ tr r | tr r | tr r ]\nright [tr r | r no tr ] -> [ tr r | tr r ]\n\nup [direkt player] [ t u ] [ spawntile no temp | no spawntile ] -> [ direkt player] [ t u ] [ spawntile | spawntile temp ]\ndown [direkt player] [ t d ] [ spawntile no temp | no spawntile ] -> [ direkt player] [ t d ] [ spawntile | spawntile temp ]\nleft [direkt player] [ t l ] [ spawntile no temp | no spawntile ] -> [ direkt player] [ t l ] [ spawntile | spawntile temp ]\nright [direkt player] [ t r ] [ spawntile no temp | no spawntile ] -> [ direkt player] [ t r ] [ spawntile | spawntile temp ]\n\n[direkt] [player] [ t] -> [ direkt ] [player success ] [ t ]\n\n[direkt] [ player no success ] -> [ direkt ] [ player totenkopf no arrow ] again\n\n[direkt]->[]\n[success]->[]\n\n[t]->[ no arrow] again\n[temp]->[]\n\nup [action player u | arrow ] -> [ arrow | u player direkt ] again\ndown [action player d | arrow ] -> [ arrow | d player direkt ] again\nleft [action player l | arrow ] -> [ arrow | l player direkt ] again\nright [action player r | arrow ] -> [ arrow | r player direkt ] again\n\nrandom [spawntile fire] [no fire no totenkopf] -> [ spawntile fire ] [ totenkopf no arrow no spawntile] again\nrandom [totenkopf ] [no fire no totenkopf] -> [ totenkopf ] [ totenkopf no arrow no spawntile] again\nrandom [totenkopf ] [fire spawntile] -> [ totenkopf ] [ no arrow no fire] again\n\n[empty] -> []\n[ no fire no spawntile ] -> [ empty]\n\n==============\nWINCONDITIONS\n==============\nno empty\n\n=======\nLEVELS\n=======\n\nmessage Level 1/1\n\n2ffffffffff\nf.........f\nf.........f\nf..sssss..f\nf..sssss..f\nf..sssss..f\nf..sssss..f\nf..sssss..f\nf.......p.f\nf.........f\nfffffffffff\n\nmessage congrats\n", [1, 0, 0, 1, 1, 1, 0, 4, 3, 3, 0, 4, 1, 4, 0, 4, "undo", 4, "undo", 4, "undo", 4], "background fire t2:0,background fire:1,1,1,1,1,1,1,1,1,1,\n1,background empty:2,2,2,2,2,2,2,2,2,1,\n1,2,background spawntile u:3,background l spawntile:4,3,background r spawntile:5,background d spawntile:6,4,6,2,1,\n1,2,4,3,6,3,3,6,5,2,1,\n1,2,5,3,5,4,6,4,4,2,1,\n1,2,5,background l player spawntile:7,6,6,5,4,3,2,1,\n1,2,6,5,5,6,4,5,4,2,1,\n1,2,6,5,3,5,4,6,5,2,1,\n1,2,4,3,5,3,3,4,5,2,1,\n1,2,2,2,2,2,2,2,2,2,1,\n1,1,1,1,1,1,1,1,1,1,1,\n", 1, "1627894530268.055"] + "Expand, avoid the flames [also it's not always solvable]", + ["title Expand, avoid the flames [also it's not always solvable]\nauthor Stephen Lavelle\nhomepage www.increpare.com\nrun_rules_on_level_start\ncolor_palette 14\nbackground_color black\ntext_color orange\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nwall #\ndarkgreen\n..0..\n..0..\n..0..\n..0..\n..0..\n\ntotenkopf k\ngray\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nspawntile s\ndarkred\n\nfire f\nred yellow\n10101\n01010\n10101\n01010\n10101\n\nPlayer\nwhite\n0...0\n.....\n.....\n.....\n0...0\n\n\nu\nlightred \n.....\n..0..\n.0.0.\n.....\n.....\n\n0\nwhite\n.....\n.000.\n.000.\n.000.\n.....\n\nd\nyellow\n.....\n.....\n.0.0.\n..0..\n.....\n\n\n\nl\nlightgreen\n.....\n..0..\n.0...\n..0..\n.....\n\n\n\nr\nlightblue\n.....\n..0..\n...0.\n..0..\n.....\n\ntu\nred\n\ntd\nred\n\ntl\nred\n\ntr\nred\n\nmu\nyellow\n\nmd\nyellow\n\nml\nyellow\n\nmr\nyellow\n\ntemp\nblue\n\ndirekt \ntransparent\n\nt2 \ntransparent\n\nt3\ntransparent\n\nsuccess\ntransparent\n\nempty\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\nP = player\narrow = u or r or d or l\nt = tu or td or tl or tr\n2 = fire and t2\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nspawntile\nfire\nu,d,l,r\nPlayer,0, wall\ntu\ntd\ntl\ntr\nmu\nmd\nml\nmr\ntemp\ndirekt\nt2\nt3\ntotenkopf\nsuccess\nempty\n\n======\nRULES\n======\n\n[> player|fire]->cancel\n\n[spawntile no arrow ] -> [ spawntile random arrow ] again\n\nrandom [t2]->[up t3]\nrandom [stationary t3]->[t2]\n\n\n( down [ arrow | no arrow ] -> [> arrow| ] again\n+ down [ arrow | > arrow ] -> [ > arrow | > arrow ] again\n)\nup [ u | u | u ] -> [ tu u | tu u | tu u ]\nup [tu u | u no tu ] -> [ tu u | tu u ]\n\nup [ d | d | d ] -> [ tu d | tu d | tu d ]\nup [tu d | d no tu ] -> [ tu d | tu d ]\n\nup [ l | l | l ] -> [ tu l | tu l | tu l ]\nup [tu l | l no tu ] -> [ tu l | tu l ]\n\nup [ r | r | r ] -> [ tu r | tu r | tu r ]\nup [tu r | r no tu ] -> [ tu r | tu r ]\n\n\ndown [ u | u | u ] -> [ td u | td u | td u ]\ndown [td u | u no td ] -> [ td u | td u ]\n\ndown [ d | d | d ] -> [ td d | td d | td d ]\ndown [td d | d no td ] -> [ td d | td d ]\n\ndown [ l | l | l ] -> [ td l | td l | td l ]\ndown [td l | l no td ] -> [ td l | td l ]\n\ndown [ r | r | r ] -> [ td r | td r | td r ]\ndown [td r | r no td ] -> [ td r | td r ]\n\n\nleft [ u | u | u ] -> [ tl u | tl u | tl u ]\nleft [tl u | u no tl ] -> [ tl u | tl u ]\n\nleft [ d | d | d ] -> [ tl d | tl d | tl d ]\nleft [tl d | d no tl ] -> [ tl d | tl d ]\n\nleft [ l | l | l ] -> [ tl l | tl l | tl l ]\nleft [tl l | l no tl ] -> [ tl l | tl l ]\n\nleft [ r | r | r ] -> [ tl r | tl r | tl r ]\nleft [tl r | r no tl ] -> [ tl r | tl r ]\n\n\n\n\nright [ u | u | u ] -> [ tr u | tr u | tr u ]\nright [tr u | u no tr ] -> [ tr u | tr u ]\n\nright [ d | d | d ] -> [ tr d | tr d | tr d ]\nright [tr d | d no tr ] -> [ tr d | tr d ]\n\nright [ l | l | l ] -> [ tr l | tr l | tr l ]\nright [tr l | l no tr ] -> [ tr l | tr l ]\n\nright [ r | r | r ] -> [ tr r | tr r | tr r ]\nright [tr r | r no tr ] -> [ tr r | tr r ]\n\nup [direkt player] [ t u ] [ spawntile no temp | no spawntile ] -> [ direkt player] [ t u ] [ spawntile | spawntile temp ]\ndown [direkt player] [ t d ] [ spawntile no temp | no spawntile ] -> [ direkt player] [ t d ] [ spawntile | spawntile temp ]\nleft [direkt player] [ t l ] [ spawntile no temp | no spawntile ] -> [ direkt player] [ t l ] [ spawntile | spawntile temp ]\nright [direkt player] [ t r ] [ spawntile no temp | no spawntile ] -> [ direkt player] [ t r ] [ spawntile | spawntile temp ]\n\n[direkt] [player] [ t] -> [ direkt ] [player success ] [ t ]\n\n[direkt] [ player no success ] -> [ direkt ] [ player totenkopf no arrow ] again\n\n[direkt]->[]\n[success]->[]\n\n[t]->[ no arrow] again\n[temp]->[]\n\nup [action player u | arrow ] -> [ arrow | u player direkt ] again\ndown [action player d | arrow ] -> [ arrow | d player direkt ] again\nleft [action player l | arrow ] -> [ arrow | l player direkt ] again\nright [action player r | arrow ] -> [ arrow | r player direkt ] again\n\nrandom [spawntile fire] [no fire no totenkopf] -> [ spawntile fire ] [ totenkopf no arrow no spawntile] again\nrandom [totenkopf ] [no fire no totenkopf] -> [ totenkopf ] [ totenkopf no arrow no spawntile] again\nrandom [totenkopf ] [fire spawntile] -> [ totenkopf ] [ no arrow no fire] again\n\n[empty] -> []\n[ no fire no spawntile ] -> [ empty]\n\n==============\nWINCONDITIONS\n==============\nno empty\n\n=======\nLEVELS\n=======\n\nmessage Level 1/1\n\n2ffffffffff\nf.........f\nf.........f\nf..sssss..f\nf..sssss..f\nf..sssss..f\nf..sssss..f\nf..sssss..f\nf.......p.f\nf.........f\nfffffffffff\n\nmessage congrats\n",[1,0,0,1,1,1,0,4,3,3,0,4,1,4,0,4,"undo",4,"undo",4,"undo",4],"background fire t2:0,background fire:1,1,1,1,1,1,1,1,1,1,\n1,background empty:2,2,2,2,2,2,2,2,2,1,\n1,2,background spawntile u:3,background l spawntile:4,3,background r spawntile:5,background d spawntile:6,4,6,2,1,\n1,2,4,3,6,3,3,6,5,2,1,\n1,2,5,3,5,4,6,4,4,2,1,\n1,2,5,background l player spawntile:7,6,6,5,4,3,2,1,\n1,2,6,5,5,6,4,5,4,2,1,\n1,2,6,5,3,5,4,6,5,2,1,\n1,2,4,3,5,3,3,4,5,2,1,\n1,2,2,2,2,2,2,2,2,2,1,\n1,1,1,1,1,1,1,1,1,1,1,\n",1,"1627894530268.055"] ], [ - "Pupush", - ["title Pupush\nauthor increpare\nhomepage www.increpare.com\nnoaction\ntext_color lightgray\n\n========\nOBJECTS\n========\n\nBackground\ngreen GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue darkgreen\n.....\n.000.\n.0.0.\n.000.\n.....\n\nziel z\nDarkBlue\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\naktiviertesziel \nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nTarget_aktiviert\nyellow yellow\n11111\n10001\n10.01\n10001\n11111\n\n\nvWall1\ndarkbrown darkbrown brown\n0.0.0\n.1.1.\n0.0.0\n.1.1.\n2.2.2\n\nvWall2\ndarkbrown darkbrown brown\n.0.1.\n1.1.1\n.1.0.\n1.1.1\n.2.2.\n\nWall1\ndarkbrown darkbrown\n0.0.0\n.1.1.\n0.0.0\n.1.1.\n0.0.0\n\nWall2\ndarkbrown darkbrown\n.0.1.\n1.1.1\n.1.0.\n1.1.1\n.0.1.\n\nPlayer1\nBlack lightbrown lightred darkblue\n..0..\n.1.1.\n2.2.2\n.3.3.\n.....\n\nPlayer2\nBlack lightbrown blue darkblue\n.0.0.\n..1..\n.2.2.\n..3..\n.3.3.\n\n\nCrate1\nOrange Yellow\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\n\nCrate2\nOrange Yellow\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nTuer1\nBlack brown\n..0..\n.1.1.\n0.1.0\n.1.1.\n0.0.0\n\nTuer2\nBlack brown\n.0.0.\n0.1.0\n.1.1.\n0.1.0\n.0.0.\n\nTuer_Offen\nlightgreen transparent\n.000.\n01110\n01110\n01110\n00000\n\nblackbg\nblack\n\ntreppe r\ngray darkgray\n11111\n00000\n11111\n00000\n11111\n\ntreppe2 y\ndarkgray gray \n11111\n00000\n11111\n00000\n11111\n\n=======\nLEGEND\n=======\n\nPlayer = Player1 or player2\nCrate = Crate1 or Crate2\nWall = wall1 or wall2\ntuer = tuer1 or tuer2\n\n. = Background\n# = Wall1 and wall2\n$ = vwall1 and vwall2\n\nP = Player1 and player2\n\n* = Crate1 and Crate2\n@ = Crate1 and crate2 and Target\nO = Target\n\nq = crate1\nw = crate2\n\nt = tuer1 and tuer2 and Tuer_Offen\n\nb = blackbg\n\ngewicht1 = player1 or Crate1 \ngewicht2 = player2 or Crate2\ngewicht = player or crate\n\ntreppen = treppe or treppe2\n=======\nSOUNDS\n=======\n\nCrate1 MOVE 36772507\nCrate2 MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nziel\naktiviertesziel\nTarget\nTarget_aktiviert\ntreppe, treppe2\ntuer_offen\nplayer1, crate1, wall1, tuer1, vwall1\nplayer2, crate2, wall2, tuer2, vwall2\nblackbg\n\n======\nRULES\n======\n\n[ > Player1 | Crate1 ] -> [ > Player1 | > Crate1 ]\n[ > Player2 | Crate2 ] -> [ > Player2 | > Crate2 ]\n[ > crate1 | crate1 ] -> [ > crate1 | > crate1 ]\n[ > crate2 | crate2 ] -> [ > crate2 | > crate2 ]\n\n\nlate [ Target_aktiviert ] -> [ ]\nlate [ target gewicht ] -> [ target gewicht Target_aktiviert ]\n\nlate [tuer_offen no gewicht ] -> [ Tuer_Offen tuer1 tuer2]\n\nlate right [ gewicht target | | | | gewicht target ] [ Tuer1 tuer2 ] -> [ gewicht target | | | | gewicht target ] [ ] \n\nlate [aktiviertesziel]->[]\nlate [ ziel crate ] -> [ aktiviertesziel ziel crate ]\n\n==============\nWINCONDITIONS\n==============\nall ziel on crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 1\n\n#$$$$$$$#\n#.......#\n#.z.w.z.#\n#.......#\n#$$$.$$$#\n#...t...#\n#....p..#\n#.oq..o.#\n#.......#\n#########\n\nmessage Herzlichen Glueckwunsch / Congratulations bzw.\n\n(\n\nauszuprobieren\n\tteilweises Aufmachen\n 2 klötze\n)\n", [1, 0, 0, 3, 3, 1, 1, 1, 2, "undo", 3, 2, 1, 3, 3, 3, 0, 1, 1, 1, 1, 1, 2, 2, 3, 1, 0, 3, 3, 3, 3, 1, 1, 1, 1, 3, 0, 0, 3, 3, 3, "restart", 2, 1, 1, 3, 3, 3, 0, 1, 1, 0, 1, 1, 1, 1, 2, 3, 3, 2, 3, 0, 0, 0, 3, 0, 1, 2], "background wall1 wall2:0,0,0,0,0,0,0,0,0,\n0,background vwall1 vwall2:1,background:2,2,2,1,2,2,2,\n2,0,1,2,background ziel:3,2,1,2,2,\nbackground target:4,2,0,1,2,2,2,1,2,\nbackground crate1:5,2,2,0,1,2,background crate2:6,2,2,\nbackground tuer1 tuer2 tuer_offen:7,2,background player1:8,2,0,1,2,2,2,\n1,2,background player2:9,2,2,0,1,2,3,\n2,1,2,2,4,2,0,1,2,\n2,2,1,2,2,2,2,0,0,\n0,0,0,0,0,0,0,0,0,\n", 1, "1627892193346.9036"] + "Pupush", + ["title Pupush\nauthor increpare\nhomepage www.increpare.com\nnoaction\ntext_color lightgray\n\n========\nOBJECTS\n========\n\nBackground\ngreen GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue darkgreen\n.....\n.000.\n.0.0.\n.000.\n.....\n\nziel z\nDarkBlue\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\naktiviertesziel \nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nTarget_aktiviert\nyellow yellow\n11111\n10001\n10.01\n10001\n11111\n\n\nvWall1\ndarkbrown darkbrown brown\n0.0.0\n.1.1.\n0.0.0\n.1.1.\n2.2.2\n\nvWall2\ndarkbrown darkbrown brown\n.0.1.\n1.1.1\n.1.0.\n1.1.1\n.2.2.\n\nWall1\ndarkbrown darkbrown\n0.0.0\n.1.1.\n0.0.0\n.1.1.\n0.0.0\n\nWall2\ndarkbrown darkbrown\n.0.1.\n1.1.1\n.1.0.\n1.1.1\n.0.1.\n\nPlayer1\nBlack lightbrown lightred darkblue\n..0..\n.1.1.\n2.2.2\n.3.3.\n.....\n\nPlayer2\nBlack lightbrown blue darkblue\n.0.0.\n..1..\n.2.2.\n..3..\n.3.3.\n\n\nCrate1\nOrange Yellow\n0.0.0\n.....\n0...0\n.....\n0.0.0\n\n\nCrate2\nOrange Yellow\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nTuer1\nBlack brown\n..0..\n.1.1.\n0.1.0\n.1.1.\n0.0.0\n\nTuer2\nBlack brown\n.0.0.\n0.1.0\n.1.1.\n0.1.0\n.0.0.\n\nTuer_Offen\nlightgreen transparent\n.000.\n01110\n01110\n01110\n00000\n\nblackbg\nblack\n\ntreppe r\ngray darkgray\n11111\n00000\n11111\n00000\n11111\n\ntreppe2 y\ndarkgray gray \n11111\n00000\n11111\n00000\n11111\n\n=======\nLEGEND\n=======\n\nPlayer = Player1 or player2\nCrate = Crate1 or Crate2\nWall = wall1 or wall2\ntuer = tuer1 or tuer2\n\n. = Background\n# = Wall1 and wall2\n$ = vwall1 and vwall2\n\nP = Player1 and player2\n\n* = Crate1 and Crate2\n@ = Crate1 and crate2 and Target\nO = Target\n\nq = crate1\nw = crate2\n\nt = tuer1 and tuer2 and Tuer_Offen\n\nb = blackbg\n\ngewicht1 = player1 or Crate1 \ngewicht2 = player2 or Crate2\ngewicht = player or crate\n\ntreppen = treppe or treppe2\n=======\nSOUNDS\n=======\n\nCrate1 MOVE 36772507\nCrate2 MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nziel\naktiviertesziel\nTarget\nTarget_aktiviert\ntreppe, treppe2\ntuer_offen\nplayer1, crate1, wall1, tuer1, vwall1\nplayer2, crate2, wall2, tuer2, vwall2\nblackbg\n\n======\nRULES\n======\n\n[ > Player1 | Crate1 ] -> [ > Player1 | > Crate1 ]\n[ > Player2 | Crate2 ] -> [ > Player2 | > Crate2 ]\n[ > crate1 | crate1 ] -> [ > crate1 | > crate1 ]\n[ > crate2 | crate2 ] -> [ > crate2 | > crate2 ]\n\n\nlate [ Target_aktiviert ] -> [ ]\nlate [ target gewicht ] -> [ target gewicht Target_aktiviert ]\n\nlate [tuer_offen no gewicht ] -> [ Tuer_Offen tuer1 tuer2]\n\nlate right [ gewicht target | | | | gewicht target ] [ Tuer1 tuer2 ] -> [ gewicht target | | | | gewicht target ] [ ] \n\nlate [aktiviertesziel]->[]\nlate [ ziel crate ] -> [ aktiviertesziel ziel crate ]\n\n==============\nWINCONDITIONS\n==============\nall ziel on crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 1\n\n#$$$$$$$#\n#.......#\n#.z.w.z.#\n#.......#\n#$$$.$$$#\n#...t...#\n#....p..#\n#.oq..o.#\n#.......#\n#########\n\nmessage Herzlichen Glueckwunsch / Congratulations bzw.\n\n(\n\nauszuprobieren\n\tteilweises Aufmachen\n 2 klötze\n)\n",[1,0,0,3,3,1,1,1,2,"undo",3,2,1,3,3,3,0,1,1,1,1,1,2,2,3,1,0,3,3,3,3,1,1,1,1,3,0,0,3,3,3,"restart",2,1,1,3,3,3,0,1,1,0,1,1,1,1,2,3,3,2,3,0,0,0,3,0,1,2],"background wall1 wall2:0,0,0,0,0,0,0,0,0,\n0,background vwall1 vwall2:1,background:2,2,2,1,2,2,2,\n2,0,1,2,background ziel:3,2,1,2,2,\nbackground target:4,2,0,1,2,2,2,1,2,\nbackground crate1:5,2,2,0,1,2,background crate2:6,2,2,\nbackground tuer1 tuer2 tuer_offen:7,2,background player1:8,2,0,1,2,2,2,\n1,2,background player2:9,2,2,0,1,2,3,\n2,1,2,2,4,2,0,1,2,\n2,2,1,2,2,2,2,0,0,\n0,0,0,0,0,0,0,0,0,\n",1,"1627892193346.9036"] ], [ - "GAPFILLER / LUECKEFUELLER", - ["title GAPFILLER / LUECKEFUELLER \nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nrequire_player_movement\n\nbackground_color black\ntext_color white\n\n========\nOBJECTS\n========\n\nBackground\ngray\n\nempty\nblack\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkgray\n\nPlayer\nblack black black\n..1..\n11111\n.000.\n.101.\n.1.1.\n\n\npoo \nlightgray \n.....\n.000.\n.000.\n.000.\n.....\n\nlanded\ntransparent\n\n=======\nLEGEND\n=======\n\n\n. = Background\n# = Wall\np = Player\n* = Background\n@ = Background\nO = Background\n\n\ne = empty\n\nobstacle = player or wall or poo or empty\n\nl = landed\n\n=======\nSOUNDS\n=======\n\npoo MOVE 36772507\npoo create 68896304 \nendlevel 81920706\nendgame 70360302\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nempty\nlanded\nTarget\nPlayer, Wall, poo\n\n======\nRULES\n======\n\n\n\n\n[ > Player | poo | no obstacle ] -> [ | Player | poo ]\n[ > Player | no obstacle ] -> [ Poo | Player ]\n\n\n[ > player | poo ] -> [ > player | > poo ]\n[ > poo | poo ] -> [ > poo | > poo ]\n\nlate [ player ] -> [ player landed]\nlate [ poo ] -> [ poo landed]\n\n==============\nWINCONDITIONS\n==============\n\nAll background on obstacle\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 von 10\n\n#######\n#.....#\n#..#..#\n#.###.#\n#..#..#\n#..p..#\n#######\n\nmessage Level 2 von 10\n\n\nee######\nee#.OP.#\nee#.**.#\nee##.###\neee#.#ee\neee#.#ee\n####.#ee\n#....##e\n#.#...#e\n#...#.#e\n###...#e\nee#####e\n\nmessage Level 3 von 10\n\n\n#######\n##.####\n#....##\n##...##\n#..p.##\n#######\n\nmessage Level 4 von 10\n\n\n#######\n##...##\n##...##\n#..p..#\n#..#..#\n#######\n\nmessage Level 5 von 10\n\n\n#######\n##lll##\n##l#l##\n#llpll#\n##l#l##\n#######\n\n\nmessage Level 6 von 10\n\n#######\n##...##\n##.#.##\n#..p..#\n##.#.##\n####.##\n##.#.##\n#.....#\n##.#.##\n##...##\n#######\n\n\nmessage Level 7 von 10\n\n\n#######\n##.#.##\n#....##\n##...##\n#..p.##\n#######\n\n\nmessage Level 8 von 10\n\n#######\n#.....#\n#.#.#.#\n#.....#\n#.#.#.#\n#..p..#\n#######\n\n\n\nmessage Level 9 von 10\n\n#######\n##.#.##\n#.....#\n##.#.##\n#..p..#\n##.#.##\n#######\n\nmessage Level 10 von 10\n\n\n#########\n#.......#\n#.#.#.#.#\n#.......#\n#.#.#.#.#\n#...p...#\n#.#.#.#.#\n#.......#\n#########\n\nmessage Gratulation! Congratulations!\n\n\n\n\n\n\n\n\n\n\n\n\n(\n\n#######\n##lll##\n##l#l##\n#llpll#\n##l#l##\n#######\n\n\n\n\n###########\n#.........#\n#....P....#\n#.........#\n#..l...l..#\n#.........#\n#.........#\n#.........#\n###########\n\n\n###########\n#.........#\n#....P....#\n#.........#\n#..l...l..#\n#.........#\n#....l....#\n#.........#\n###########\n\n\n\n###########\n#.........#\n#....P....#\n#...e.....#\n#..l...l..#\n#.........#\n#....l....#\n#.........#\n###########\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\n\n####ee\n#.O#ee\n#..###\n#@P..#\n#..*.#\n#..###\n####ee\n\nmessage level 2 of 10\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\nmessage level 3 of 10\n\nee####eee\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\nmessage level 4 of 10\n\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\neeee####\n\nmessage level 5 of 10\n\ne#######\ne#.....#\ne#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\nmessage level 6 of 10\n\n######e#####\n#....###...#\n#.**.....#.#\n#.p.#OOO...#\n#...########\n#####eeeeeee\n\nmessage level 7 of 10\n\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*p*.#\n#.....#\n#######\n\nmessage level 8 of 10\n\n\nmessage level 9 of 10\n\n#####e\n#Op.##\n#.**.#\n##...#\ne##..#\nee##O#\neee###\n\nmessage level 10 of 10\n\neeeeee#####\neeeeee#O..#\neeeeee#O#.#\n#######O#.#\n#.p.*.*.*.#\n#.#.#.#.###\n#.......#ee\n#########ee\n\n#############\n#####...#####\n#####.p.#####\n#####...#####\n#...##.##...#\n#.l.......l.#\n#...#...#...#\n######.######\n#####...#####\n#####.l.#####\n#####...#####\n#############\n\n\n#############\n#####lll#####\n#####lpl#####\n#####lll#####\n######l######\n#############\n\n\n\n\n\n#######\n###l###\n##lll##\n#llpll#\n##lll##\n###l###\n#######\n\n\n#########\n#lllllll#\n#l##l##l#\n#l#lll#l#\n#lllplll#\n#l#lll#l#\n#l##l##l#\n#lllllll#\n#########\n\n\n#########\n#lllllll#\n#l##l##l#\n#l##l##l#\n#lllplll#\n#l##l##l#\n#l##l##l#\n#lllllll#\n#########\n\n#########\n#lllllll#\n#l##l##l#\n#l##l##l#\n#lllplll#\n#########\n\n\n###########\n##l#####l##\n#lllllllll#\n##l##l##l##\n##l##l##l##\n#llllpllll#\n##l#####l##\n###########\n\n########\n##l##l##\n#llllll#\n##l##l##\n##l##l##\n#lllpll#\n##l##l##\n########\n\n\n\n########\n##l##l##\n##llll##\n##l##l##\n##l##l##\n#lllpll#\n##l##l##\n########\n\n\n\n\n########\n##l##l##\n##llll##\n##l##l##\n##l##l##\n#lllpll#\n##l##l##\n########\n\n\n\n\n\n########\n########\n##llll##\n##l##l##\n##l##l##\n##llpl##\n########\n########\n\n########\n########\n##llll##\n##l##l##\n##l##l##\n#lllpl##\n########\n########\n\n\n\n########\n########\n##llll##\n##l##l##\n##l##l##\n#lllpl##\n########\n########\n)\n", [1, 0, 0, 3, 3, 2, 2, 2, 2, 2, 2, 3, 1, 1, 1, 0, 2, 2, 2, 0, 0, 2], "background wall:0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\nbackground:1,0,0,0,background landed poo:2,0,0,\n0,0,2,2,2,1,0,\nbackground landed player:3,2,2,2,0,0,2,\n0,2,0,0,0,background landed:4,0,\n1,0,0,2,2,2,2,\n2,2,4,1,1,0,0,\n0,0,1,0,0,0,4,\n0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\n", 11, "1627892223719.676"] + "GAPFILLER / LUECKEFUELLER", + ["title GAPFILLER / LUECKEFUELLER \nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nrequire_player_movement\n\nbackground_color black\ntext_color white\n\n========\nOBJECTS\n========\n\nBackground\ngray\n\nempty\nblack\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkgray\n\nPlayer\nblack black black\n..1..\n11111\n.000.\n.101.\n.1.1.\n\n\npoo \nlightgray \n.....\n.000.\n.000.\n.000.\n.....\n\nlanded\ntransparent\n\n=======\nLEGEND\n=======\n\n\n. = Background\n# = Wall\np = Player\n* = Background\n@ = Background\nO = Background\n\n\ne = empty\n\nobstacle = player or wall or poo or empty\n\nl = landed\n\n=======\nSOUNDS\n=======\n\npoo MOVE 36772507\npoo create 68896304 \nendlevel 81920706\nendgame 70360302\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nempty\nlanded\nTarget\nPlayer, Wall, poo\n\n======\nRULES\n======\n\n\n\n\n[ > Player | poo | no obstacle ] -> [ | Player | poo ]\n[ > Player | no obstacle ] -> [ Poo | Player ]\n\n\n[ > player | poo ] -> [ > player | > poo ]\n[ > poo | poo ] -> [ > poo | > poo ]\n\nlate [ player ] -> [ player landed]\nlate [ poo ] -> [ poo landed]\n\n==============\nWINCONDITIONS\n==============\n\nAll background on obstacle\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 von 10\n\n#######\n#.....#\n#..#..#\n#.###.#\n#..#..#\n#..p..#\n#######\n\nmessage Level 2 von 10\n\n\nee######\nee#.OP.#\nee#.**.#\nee##.###\neee#.#ee\neee#.#ee\n####.#ee\n#....##e\n#.#...#e\n#...#.#e\n###...#e\nee#####e\n\nmessage Level 3 von 10\n\n\n#######\n##.####\n#....##\n##...##\n#..p.##\n#######\n\nmessage Level 4 von 10\n\n\n#######\n##...##\n##...##\n#..p..#\n#..#..#\n#######\n\nmessage Level 5 von 10\n\n\n#######\n##lll##\n##l#l##\n#llpll#\n##l#l##\n#######\n\n\nmessage Level 6 von 10\n\n#######\n##...##\n##.#.##\n#..p..#\n##.#.##\n####.##\n##.#.##\n#.....#\n##.#.##\n##...##\n#######\n\n\nmessage Level 7 von 10\n\n\n#######\n##.#.##\n#....##\n##...##\n#..p.##\n#######\n\n\nmessage Level 8 von 10\n\n#######\n#.....#\n#.#.#.#\n#.....#\n#.#.#.#\n#..p..#\n#######\n\n\n\nmessage Level 9 von 10\n\n#######\n##.#.##\n#.....#\n##.#.##\n#..p..#\n##.#.##\n#######\n\nmessage Level 10 von 10\n\n\n#########\n#.......#\n#.#.#.#.#\n#.......#\n#.#.#.#.#\n#...p...#\n#.#.#.#.#\n#.......#\n#########\n\nmessage Gratulation! Congratulations!\n\n\n\n\n\n\n\n\n\n\n\n\n(\n\n#######\n##lll##\n##l#l##\n#llpll#\n##l#l##\n#######\n\n\n\n\n###########\n#.........#\n#....P....#\n#.........#\n#..l...l..#\n#.........#\n#.........#\n#.........#\n###########\n\n\n###########\n#.........#\n#....P....#\n#.........#\n#..l...l..#\n#.........#\n#....l....#\n#.........#\n###########\n\n\n\n###########\n#.........#\n#....P....#\n#...e.....#\n#..l...l..#\n#.........#\n#....l....#\n#.........#\n###########\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\n\n####ee\n#.O#ee\n#..###\n#@P..#\n#..*.#\n#..###\n####ee\n\nmessage level 2 of 10\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\nmessage level 3 of 10\n\nee####eee\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\nmessage level 4 of 10\n\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\neeee####\n\nmessage level 5 of 10\n\ne#######\ne#.....#\ne#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\nmessage level 6 of 10\n\n######e#####\n#....###...#\n#.**.....#.#\n#.p.#OOO...#\n#...########\n#####eeeeeee\n\nmessage level 7 of 10\n\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*p*.#\n#.....#\n#######\n\nmessage level 8 of 10\n\n\nmessage level 9 of 10\n\n#####e\n#Op.##\n#.**.#\n##...#\ne##..#\nee##O#\neee###\n\nmessage level 10 of 10\n\neeeeee#####\neeeeee#O..#\neeeeee#O#.#\n#######O#.#\n#.p.*.*.*.#\n#.#.#.#.###\n#.......#ee\n#########ee\n\n#############\n#####...#####\n#####.p.#####\n#####...#####\n#...##.##...#\n#.l.......l.#\n#...#...#...#\n######.######\n#####...#####\n#####.l.#####\n#####...#####\n#############\n\n\n#############\n#####lll#####\n#####lpl#####\n#####lll#####\n######l######\n#############\n\n\n\n\n\n#######\n###l###\n##lll##\n#llpll#\n##lll##\n###l###\n#######\n\n\n#########\n#lllllll#\n#l##l##l#\n#l#lll#l#\n#lllplll#\n#l#lll#l#\n#l##l##l#\n#lllllll#\n#########\n\n\n#########\n#lllllll#\n#l##l##l#\n#l##l##l#\n#lllplll#\n#l##l##l#\n#l##l##l#\n#lllllll#\n#########\n\n#########\n#lllllll#\n#l##l##l#\n#l##l##l#\n#lllplll#\n#########\n\n\n###########\n##l#####l##\n#lllllllll#\n##l##l##l##\n##l##l##l##\n#llllpllll#\n##l#####l##\n###########\n\n########\n##l##l##\n#llllll#\n##l##l##\n##l##l##\n#lllpll#\n##l##l##\n########\n\n\n\n########\n##l##l##\n##llll##\n##l##l##\n##l##l##\n#lllpll#\n##l##l##\n########\n\n\n\n\n########\n##l##l##\n##llll##\n##l##l##\n##l##l##\n#lllpll#\n##l##l##\n########\n\n\n\n\n\n########\n########\n##llll##\n##l##l##\n##l##l##\n##llpl##\n########\n########\n\n########\n########\n##llll##\n##l##l##\n##l##l##\n#lllpl##\n########\n########\n\n\n\n########\n########\n##llll##\n##l##l##\n##l##l##\n#lllpl##\n########\n########\n)\n",[1,0,0,3,3,2,2,2,2,2,2,3,1,1,1,0,2,2,2,0,0,2],"background wall:0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\nbackground:1,0,0,0,background landed poo:2,0,0,\n0,0,2,2,2,1,0,\nbackground landed player:3,2,2,2,0,0,2,\n0,2,0,0,0,background landed:4,0,\n1,0,0,2,2,2,2,\n2,2,4,1,1,0,0,\n0,0,1,0,0,0,4,\n0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\n",11,"1627892223719.676"] ], [ - "pushit", - ["title pushit\nauthor increpare\nhomepage www.increpare.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\nPoo\norange brown\n.0...\n..1..\n.000.\n.1111\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n+ = player and target\n\nobstacle = wall or player or crate or poo\npushable = crate or poo\n=======\nSOUNDS\n=======\n\npoo create 9134102\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, Poo\n\n======\nRULES\n======\n\n[ > Player | pushable | no obstacle ] -> [ poo | Player | pushable ]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 4\n\n#########\n#.......#\n#...*...#\n#...*...#\n#...*.p.#\n#...o...#\n#...o...#\n#...o...#\n#.......#\n#########\n\n\nmessage Level 2 of 4\n\n##############\n#............#\n#............#\n#....***.....#\n#............#\n#............#\n#....ooo..*..#\n#..p.ooo..*..#\n#....ooo..*..#\n#............#\n#............#\n#....***.....#\n#............#\n#............#\n##############\n\nmessage Level 3 of 4\n\n\n#########\n#.......#\n#..O*O..#\n#..*P*..#\n#..O*O..#\n#.......#\n#########\n\nmessage Level 4 of 4\n\n\n######\n#O..O#\n#P**.#\n#....#\n#....#\n#.**.#\n#O..O#\n######\n\nmessage Congrats! You can pushit!\n\n\n\n\n\n\n\n\n\n\n", [1, 0, 3, 0, 3, 3, 3, 2, 1, 1, 2, 3, 3, 1, 0, 3, 2, 1, 2, 1, 2, 1, 1, 1, 1, 0, 0, 0], "background wall:0,0,0,0,0,0,0,0,background:1,\n1,1,1,1,0,0,background crate:2,background player:3,background poo:4,\n4,1,0,0,1,background poo target:5,1,background target:6,1,\n0,0,1,2,4,2,1,0,0,\n1,5,4,background crate target:7,1,0,0,4,1,\n1,1,1,0,0,1,1,4,1,\n1,0,0,0,0,0,0,0,0,\n", 5, "1627892234377.7625"] + "pushit", + ["title pushit\nauthor increpare\nhomepage www.increpare.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\nPoo\norange brown\n.0...\n..1..\n.000.\n.1111\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n+ = player and target\n\nobstacle = wall or player or crate or poo\npushable = crate or poo\n=======\nSOUNDS\n=======\n\npoo create 9134102\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, Poo\n\n======\nRULES\n======\n\n[ > Player | pushable | no obstacle ] -> [ poo | Player | pushable ]\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 4\n\n#########\n#.......#\n#...*...#\n#...*...#\n#...*.p.#\n#...o...#\n#...o...#\n#...o...#\n#.......#\n#########\n\n\nmessage Level 2 of 4\n\n##############\n#............#\n#............#\n#....***.....#\n#............#\n#............#\n#....ooo..*..#\n#..p.ooo..*..#\n#....ooo..*..#\n#............#\n#............#\n#....***.....#\n#............#\n#............#\n##############\n\nmessage Level 3 of 4\n\n\n#########\n#.......#\n#..O*O..#\n#..*P*..#\n#..O*O..#\n#.......#\n#########\n\nmessage Level 4 of 4\n\n\n######\n#O..O#\n#P**.#\n#....#\n#....#\n#.**.#\n#O..O#\n######\n\nmessage Congrats! You can pushit!\n\n\n\n\n\n\n\n\n\n\n",[1,0,3,0,3,3,3,2,1,1,2,3,3,1,0,3,2,1,2,1,2,1,1,1,1,0,0,0],"background wall:0,0,0,0,0,0,0,0,background:1,\n1,1,1,1,0,0,background crate:2,background player:3,background poo:4,\n4,1,0,0,1,background poo target:5,1,background target:6,1,\n0,0,1,2,4,2,1,0,0,\n1,5,4,background crate target:7,1,0,0,4,1,\n1,1,1,0,0,1,1,4,1,\n1,0,0,0,0,0,0,0,0,\n",5,"1627892234377.7625"] ], [ - "AUTOHURDLER", - ["title AUTOHURDLER\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color gray\n\nrun_rules_on_level_start\nnoaction\n\n\ncolor_palette 13\n\n========\nOBJECTS\n========\n\nBackground\nlightgray gray\n11111\n11111\n11011\n11111\n11111\n\n\nTarget\nyellow transparent transparent\n11111\n11211\n12021\n11211\n11111\n\nWall\ndarkgray gray\n00000\n00000\n00100\n00000\n00000\n\nPlayer\nblack black black black\n.000.\n.111.\n22.22\n.333.\n.3.3.\n\nCrate\ndarkblue Yellow\n.000.\n0...0\n0...0\n0...0\n.000.\n\noncrate\nlightblue \n.000.\n0...0\n0...0\n0...0\n.000.\n\nteleport_up\ndarkred transparent\n11011\n10001\n00000\n11011\n11011\n\n\nteleport_down\ndarkred transparent\n11011\n11011\n00000\n10001\n11011\n\n\nteleport_left\ndarkred transparent\n11011\n10011\n00000\n10011\n11011\n\n\nteleport_right\ndarkred transparent\n11011\n11001\n00000\n11001\n11011\n\n\n\nteleport_bad\ndarkred transparent \n11111\n10101\n11011\n10101\n11111\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nobstacle = wall or crate\n+ = player and target\n\nteleport = teleport_up or teleport_down or teleport_left or teleport_right\nanytele = teleport or teleport_bad\n\n=======\nSOUNDS\n=======\n\nsfx1 19243905\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nteleport_up\nteleport_down\nteleport_left\nteleport_right\nteleport_bad\nTarget\nPlayer, Wall, Crate\noncrate\n\n======\nRULES\n======\n\n[ > player | crate ] -> [ > player | > crate ]\n[ > crate | crate ] -> [ > crate | > crate ]\n\n\n[ > crate | stationary obstacle ] -> [ crate | stationary obstacle ]\n[ > player | stationary obstacle ] -> cancel\n\n([ > player | obstacle | obstacle ] -> cancel)\n[ > player | wall ] -> cancel \n\nlate [ anytele ] -> []\nlate up [ crate | no obstacle ] -> [ crate | teleport_down ]\nlate down [ crate | no obstacle ] -> [ crate | teleport_up ]\nlate left [ crate | no obstacle ] -> [ crate | teleport_right ]\nlate right [ crate | no obstacle ] -> [ crate | teleport_left ]\n\nlate [ teleport_up teleport_down ] -> [ teleport_bad ]\nlate [ teleport_up teleport_left ] -> [ teleport_bad ]\nlate [ teleport_up teleport_right ] -> [ teleport_bad ]\nlate [ teleport_down teleport_left ] -> [ teleport_bad ]\nlate [ teleport_down teleport_right ] -> [ teleport_bad ]\nlate [ teleport_left teleport_right ] -> [ teleport_bad ]\n\nlate [ teleport_bad teleport_up ] -> [ teleport_bad ]\nlate [ teleport_bad teleport_down ] -> [ teleport_bad ]\nlate [ teleport_bad teleport_left ] -> [ teleport_bad ]\nlate [ teleport_bad teleport_right ] -> [ teleport_bad ]\n\nlate up [ teleport_up | crate | obstacle ] -> [teleport_bad|Crate|obstacle]\nlate down [ teleport_down | crate | obstacle ] -> [teleport_bad|Crate|obstacle]\nlate left [ teleport_left | crate | obstacle ] -> [teleport_bad|Crate|obstacle]\nlate right [ teleport_right | crate | obstacle ] -> [teleport_bad|Crate|obstacle]\n\nrandom late up [ teleport_up player | crate | no obstacle ] -> [ teleport_up | crate | Player ] sfx1\n+ late down [ teleport_down player | crate | no obstacle ] -> [ teleport_down | crate | Player ] sfx1\n+ late left [ teleport_left player | crate | no obstacle ] -> [ teleport_left | crate | Player ] sfx1\n+ late right [ teleport_right player | crate | no obstacle ] -> [ teleport_right | crate | Player ] sfx1\n\nlate [oncrate]->[]\nlate [ crate target] -> [crate target oncrate]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 4\n\n#########\n#.......#\n#.......#\n#..*o*..#\n#..o.o..#\n#..*o*..#\n#.......#\n#...p...#\n#########\n\nmessage level 2 of 4\n\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\nmessage level 3 of 4\n\n\n##########\n#........#\n#........#\n#..o**...#\n#..oo*...#\n#.p......#\n#........#\n##########\n\n\nmessage level 4 of 4\n\n#########\n#...#.p.#\n#..*o*..#\n#..o*o..#\n#..o*o..#\n#..*o*..#\n#...#...#\n#########\n\nmessage .CONGRATULATIONS. .AUTOHURDLER. .WE. .ARE. .SO. .PROUD. .OF. .YOU.\n\n", [0, 3, 1, 2, 2, 3, 3, 0, 3, 0, "undo", "undo", "undo", 1, 1, 0, 3, "undo", 3, 2, 2, 2, 1, 1, 1, 2, 3, 2, 2, 1, 1, 1, 1, 0, 3, 1, 2], "background wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,0,\n0,1,1,background teleport_right:2,1,1,2,1,0,\n0,1,background teleport_down:3,background crate:4,background target teleport_up:5,3,4,background player teleport_up:6,0,\n0,1,1,background target teleport_left:7,1,background target:8,background teleport_left:9,1,0,\n0,1,1,2,8,2,1,1,0,\n0,1,3,4,background teleport_bad:10,4,background teleport_up:11,1,0,\n0,1,1,9,1,9,1,1,0,\n0,0,0,0,0,0,0,0,0,\n", 1, "1627892250172.2253"] + "AUTOHURDLER", + ["title AUTOHURDLER\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color gray\n\nrun_rules_on_level_start\nnoaction\n\n\ncolor_palette 13\n\n========\nOBJECTS\n========\n\nBackground\nlightgray gray\n11111\n11111\n11011\n11111\n11111\n\n\nTarget\nyellow transparent transparent\n11111\n11211\n12021\n11211\n11111\n\nWall\ndarkgray gray\n00000\n00000\n00100\n00000\n00000\n\nPlayer\nblack black black black\n.000.\n.111.\n22.22\n.333.\n.3.3.\n\nCrate\ndarkblue Yellow\n.000.\n0...0\n0...0\n0...0\n.000.\n\noncrate\nlightblue \n.000.\n0...0\n0...0\n0...0\n.000.\n\nteleport_up\ndarkred transparent\n11011\n10001\n00000\n11011\n11011\n\n\nteleport_down\ndarkred transparent\n11011\n11011\n00000\n10001\n11011\n\n\nteleport_left\ndarkred transparent\n11011\n10011\n00000\n10011\n11011\n\n\nteleport_right\ndarkred transparent\n11011\n11001\n00000\n11001\n11011\n\n\n\nteleport_bad\ndarkred transparent \n11111\n10101\n11011\n10101\n11111\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nobstacle = wall or crate\n+ = player and target\n\nteleport = teleport_up or teleport_down or teleport_left or teleport_right\nanytele = teleport or teleport_bad\n\n=======\nSOUNDS\n=======\n\nsfx1 19243905\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nteleport_up\nteleport_down\nteleport_left\nteleport_right\nteleport_bad\nTarget\nPlayer, Wall, Crate\noncrate\n\n======\nRULES\n======\n\n[ > player | crate ] -> [ > player | > crate ]\n[ > crate | crate ] -> [ > crate | > crate ]\n\n\n[ > crate | stationary obstacle ] -> [ crate | stationary obstacle ]\n[ > player | stationary obstacle ] -> cancel\n\n([ > player | obstacle | obstacle ] -> cancel)\n[ > player | wall ] -> cancel \n\nlate [ anytele ] -> []\nlate up [ crate | no obstacle ] -> [ crate | teleport_down ]\nlate down [ crate | no obstacle ] -> [ crate | teleport_up ]\nlate left [ crate | no obstacle ] -> [ crate | teleport_right ]\nlate right [ crate | no obstacle ] -> [ crate | teleport_left ]\n\nlate [ teleport_up teleport_down ] -> [ teleport_bad ]\nlate [ teleport_up teleport_left ] -> [ teleport_bad ]\nlate [ teleport_up teleport_right ] -> [ teleport_bad ]\nlate [ teleport_down teleport_left ] -> [ teleport_bad ]\nlate [ teleport_down teleport_right ] -> [ teleport_bad ]\nlate [ teleport_left teleport_right ] -> [ teleport_bad ]\n\nlate [ teleport_bad teleport_up ] -> [ teleport_bad ]\nlate [ teleport_bad teleport_down ] -> [ teleport_bad ]\nlate [ teleport_bad teleport_left ] -> [ teleport_bad ]\nlate [ teleport_bad teleport_right ] -> [ teleport_bad ]\n\nlate up [ teleport_up | crate | obstacle ] -> [teleport_bad|Crate|obstacle]\nlate down [ teleport_down | crate | obstacle ] -> [teleport_bad|Crate|obstacle]\nlate left [ teleport_left | crate | obstacle ] -> [teleport_bad|Crate|obstacle]\nlate right [ teleport_right | crate | obstacle ] -> [teleport_bad|Crate|obstacle]\n\nrandom late up [ teleport_up player | crate | no obstacle ] -> [ teleport_up | crate | Player ] sfx1\n+ late down [ teleport_down player | crate | no obstacle ] -> [ teleport_down | crate | Player ] sfx1\n+ late left [ teleport_left player | crate | no obstacle ] -> [ teleport_left | crate | Player ] sfx1\n+ late right [ teleport_right player | crate | no obstacle ] -> [ teleport_right | crate | Player ] sfx1\n\nlate [oncrate]->[]\nlate [ crate target] -> [crate target oncrate]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 4\n\n#########\n#.......#\n#.......#\n#..*o*..#\n#..o.o..#\n#..*o*..#\n#.......#\n#...p...#\n#########\n\nmessage level 2 of 4\n\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\nmessage level 3 of 4\n\n\n##########\n#........#\n#........#\n#..o**...#\n#..oo*...#\n#.p......#\n#........#\n##########\n\n\nmessage level 4 of 4\n\n#########\n#...#.p.#\n#..*o*..#\n#..o*o..#\n#..o*o..#\n#..*o*..#\n#...#...#\n#########\n\nmessage .CONGRATULATIONS. .AUTOHURDLER. .WE. .ARE. .SO. .PROUD. .OF. .YOU.\n\n",[0,3,1,2,2,3,3,0,3,0,"undo","undo","undo",1,1,0,3,"undo",3,2,2,2,1,1,1,2,3,2,2,1,1,1,1,0,3,1,2],"background wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,0,\n0,1,1,background teleport_right:2,1,1,2,1,0,\n0,1,background teleport_down:3,background crate:4,background target teleport_up:5,3,4,background player teleport_up:6,0,\n0,1,1,background target teleport_left:7,1,background target:8,background teleport_left:9,1,0,\n0,1,1,2,8,2,1,1,0,\n0,1,3,4,background teleport_bad:10,4,background teleport_up:11,1,0,\n0,1,1,9,1,9,1,1,0,\n0,0,0,0,0,0,0,0,0,\n",1,"1627892250172.2253"] ], [ - "Snakey Snakey Makes A Sixy", - ["title Snakey Snakey Makes A Sixy\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nrequire_player_movement\n\ncolor_palette 5\n\n========\nOBJECTS\n========\n\nBackground\nblack black\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\n\nprev1 a\ndarkgreen\n.000.\n0...0\n0...0\n0...0\n.000.\n\nprev2 b\ndarkgreen\n.000.\n0...0\n0...0\n0...0\n.000.\n\nPlayer\ngreen\n.000.\n0...0\n0...0\n0...0\n.000.\n\n\n\n1\npurple\n.....\n.....\n..0..\n.....\n.....\n\n\n\n2\nred\n.....\n.0...\n.....\n...0.\n.....\n\n\n3\npink\n.....\n.0...\n..0..\n...0.\n.....\n\n\n4\nyellow\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\n5\nlightgreen\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\n\n6\ngreen\n.....\n.000.\n.....\n.000.\n.....\n\n\nc_up\nblack\n..0..\n.....\n.....\n.....\n.....\n\nc_down\nblack\n.....\n.....\n.....\n.....\n..0..\n\nc_left\nblack\n.....\n.....\n0....\n.....\n.....\n\nc_right\nblack\n.....\n.....\n....0\n.....\n.....\n\nsprt_0_0 l\n#69ff05 black\n.....\n.....\n..1.0\n....0\n....0\n\nsprt_1_0 k\n#69ff05\n.....\n.0000\n00000\n.000.\n00000\n\nsprt_2_0 j \n#69ff05 black\n.....\n.....\n0.1..\n0....\n0....\n\nsprt_3_0 h\n#000000\n.....\n.....\n..0..\n.....\n.....\n\nsprt_0_1 g\n#ff1463 black\n.....\n....0\n..10.\n.....\n.....\n\nsprt_1_1 f\n#69ff05 #ff1463 #22630a black\n01000\n10002\n1.322\n1....\n.....\n\nsprt_2_1 d\n#22630a\n0....\n000..\n000..\n00000\n..000\n\nsprt_3_1 s\n#22630a black\n.....\n.....\n..1..\n.....\n0....\n\nsprt_0_2 z\nwhite black\n.....\n.....\n..1..\n.....\n.....\n\nsprt_1_2 x\nwhite black\n.....\n0.0.0\n..1..\n0.0.0\n.....\n\nsprt_2_2 0\n#22630a black\n....0\n....0\n..1..\n.....\n.....\n\nsprt_3_2 v\n#22630a black\n0....\n0....\n001..\n000..\n000..\n\nsprt_0_3 9\n#22630a black\n..00.\n...00\n..1.0\n.....\n.....\n\nsprt_1_3 n\n#22630a\n.....\n0....\n00000\n.0000\n.....\n\nsprt_2_3 m\n#22630a\n....0\n..000\n00000\n000..\n.....\n\nsprt_3_3 8\n#22630a black\n00...\n0....\n..1..\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = Target\n\nprev = prev1 or prev2\n\n\nnum = 1 or 2 or 3 or 4 or 5 or 6\n\nc = c_up or c_down or c_left or c_right\n\nbody = player or prev\n\n=======\nSOUNDS\n=======\n \n\nsfx1 55932906\nsfx2 4305306\nsfx3 6823106\nsfx4 83937501\nsfx5 65854702\n\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\n1,2,3,4,5,6\nPlayer, Wall, prev1, prev2\nc_up\nc_down\nc_left\nc_right\nsprt_0_0, sprt_1_0, sprt_2_0, sprt_3_0, sprt_0_1, sprt_1_1, sprt_2_1, sprt_3_1, sprt_0_2, sprt_1_2, sprt_2_2, sprt_3_2, sprt_0_3, sprt_1_3, sprt_2_3, sprt_3_3\n\n======\nRULES\n======\n\n\n[no num]->[1]\n\n[> player | prev ] -> cancel\n\n[ prev1 | player ] -> [ > prev1 | player ]\n[ prev2 | prev1 ] -> [ > prev2 | prev1 ]\n\nlate [ player 1 ] [ prev1 1 ] [ prev2 1] -> [ player 2 ] [ prev1 ] [ prev2 ] sfx1 again\nlate [ player 2 ] [ prev1 2 ] [ prev2 2] -> [ player 3 ] [ prev1 ] [ prev2 ] sfx2 again\nlate [ player 3 ] [ prev1 3 ] [ prev2 3] -> [ player 4 ] [ prev1 ] [ prev2 ] sfx3 again\nlate [ player 4 ] [ prev1 4 ] [ prev2 4] -> [ player 5 ] [ prev1 ] [ prev2 ] sfx4 again\nlate [ player 5 ] [ prev1 5 ] [ prev2 5] -> sfx5 win\n\n\n\nlate [ c ] -> []\n\nlate right [ body | body ] -> [ body c_right | body c_left ]\nlate down [ body | body ] -> [ body c_down | body c_up ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.........\n.........\n.........\n.........\n....p....\n....a....\n....b....\n.........\n.........\n\nmessage You did it, snakey snakey! You made a sixy!\n\nlkjh\ngfds\nzx0v\n9nm8\n", [0, 0, 3, 2, 2, 4, 2, 1, 1, 0, 0, 3, 3, 2, 3, 0, 0, 0, 1, 1, 2, 3, 0, 0, 1, 2, 2, 2, 1, 1, 0, 3, 0, 1, 2, 2, 2, 1, 0, 3, 2, 1, 0, 3, 3, 2, 1, 1, "undo", "undo", 1, 1, 0, 3, 3, 0, 1, 2, 1, 1, 0, 3, 2, 1, 0, 3, 3, 2, 2, 1, 0, 1, 0, 3, 2, 3, 3, 3, 0, 1, 2, 3, 3, 0, 1, 2, 1, 0, 3, 2, 1, 1, 0, 3], "1 background:0,0,0,3 background:1,0,0,0,0,0,\n0,0,0,2 background:2,0,0,0,0,0,\n0,0,3 background c_down c_right prev1:3,1 background c_up prev2:4,1,0,0,0,0,\n0,0,1 background c_left player:5,2,0,0,0,0,0,\n0,2,0,2,2,0,0,0,0,\n0,2,2,1,0,2,0,0,0,\n0,0,0,2,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, "1627892275012.8281"] + "Snakey Snakey Makes A Sixy", + ["title Snakey Snakey Makes A Sixy\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\nrequire_player_movement\n\ncolor_palette 5\n\n========\nOBJECTS\n========\n\nBackground\nblack black\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\n\nprev1 a\ndarkgreen\n.000.\n0...0\n0...0\n0...0\n.000.\n\nprev2 b\ndarkgreen\n.000.\n0...0\n0...0\n0...0\n.000.\n\nPlayer\ngreen\n.000.\n0...0\n0...0\n0...0\n.000.\n\n\n\n1\npurple\n.....\n.....\n..0..\n.....\n.....\n\n\n\n2\nred\n.....\n.0...\n.....\n...0.\n.....\n\n\n3\npink\n.....\n.0...\n..0..\n...0.\n.....\n\n\n4\nyellow\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\n5\nlightgreen\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\n\n6\ngreen\n.....\n.000.\n.....\n.000.\n.....\n\n\nc_up\nblack\n..0..\n.....\n.....\n.....\n.....\n\nc_down\nblack\n.....\n.....\n.....\n.....\n..0..\n\nc_left\nblack\n.....\n.....\n0....\n.....\n.....\n\nc_right\nblack\n.....\n.....\n....0\n.....\n.....\n\nsprt_0_0 l\n#69ff05 black\n.....\n.....\n..1.0\n....0\n....0\n\nsprt_1_0 k\n#69ff05\n.....\n.0000\n00000\n.000.\n00000\n\nsprt_2_0 j \n#69ff05 black\n.....\n.....\n0.1..\n0....\n0....\n\nsprt_3_0 h\n#000000\n.....\n.....\n..0..\n.....\n.....\n\nsprt_0_1 g\n#ff1463 black\n.....\n....0\n..10.\n.....\n.....\n\nsprt_1_1 f\n#69ff05 #ff1463 #22630a black\n01000\n10002\n1.322\n1....\n.....\n\nsprt_2_1 d\n#22630a\n0....\n000..\n000..\n00000\n..000\n\nsprt_3_1 s\n#22630a black\n.....\n.....\n..1..\n.....\n0....\n\nsprt_0_2 z\nwhite black\n.....\n.....\n..1..\n.....\n.....\n\nsprt_1_2 x\nwhite black\n.....\n0.0.0\n..1..\n0.0.0\n.....\n\nsprt_2_2 0\n#22630a black\n....0\n....0\n..1..\n.....\n.....\n\nsprt_3_2 v\n#22630a black\n0....\n0....\n001..\n000..\n000..\n\nsprt_0_3 9\n#22630a black\n..00.\n...00\n..1.0\n.....\n.....\n\nsprt_1_3 n\n#22630a\n.....\n0....\n00000\n.0000\n.....\n\nsprt_2_3 m\n#22630a\n....0\n..000\n00000\n000..\n.....\n\nsprt_3_3 8\n#22630a black\n00...\n0....\n..1..\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = Target\n\nprev = prev1 or prev2\n\n\nnum = 1 or 2 or 3 or 4 or 5 or 6\n\nc = c_up or c_down or c_left or c_right\n\nbody = player or prev\n\n=======\nSOUNDS\n=======\n \n\nsfx1 55932906\nsfx2 4305306\nsfx3 6823106\nsfx4 83937501\nsfx5 65854702\n\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\n1,2,3,4,5,6\nPlayer, Wall, prev1, prev2\nc_up\nc_down\nc_left\nc_right\nsprt_0_0, sprt_1_0, sprt_2_0, sprt_3_0, sprt_0_1, sprt_1_1, sprt_2_1, sprt_3_1, sprt_0_2, sprt_1_2, sprt_2_2, sprt_3_2, sprt_0_3, sprt_1_3, sprt_2_3, sprt_3_3\n\n======\nRULES\n======\n\n\n[no num]->[1]\n\n[> player | prev ] -> cancel\n\n[ prev1 | player ] -> [ > prev1 | player ]\n[ prev2 | prev1 ] -> [ > prev2 | prev1 ]\n\nlate [ player 1 ] [ prev1 1 ] [ prev2 1] -> [ player 2 ] [ prev1 ] [ prev2 ] sfx1 again\nlate [ player 2 ] [ prev1 2 ] [ prev2 2] -> [ player 3 ] [ prev1 ] [ prev2 ] sfx2 again\nlate [ player 3 ] [ prev1 3 ] [ prev2 3] -> [ player 4 ] [ prev1 ] [ prev2 ] sfx3 again\nlate [ player 4 ] [ prev1 4 ] [ prev2 4] -> [ player 5 ] [ prev1 ] [ prev2 ] sfx4 again\nlate [ player 5 ] [ prev1 5 ] [ prev2 5] -> sfx5 win\n\n\n\nlate [ c ] -> []\n\nlate right [ body | body ] -> [ body c_right | body c_left ]\nlate down [ body | body ] -> [ body c_down | body c_up ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.........\n.........\n.........\n.........\n....p....\n....a....\n....b....\n.........\n.........\n\nmessage You did it, snakey snakey! You made a sixy!\n\nlkjh\ngfds\nzx0v\n9nm8\n",[0,0,3,2,2,4,2,1,1,0,0,3,3,2,3,0,0,0,1,1,2,3,0,0,1,2,2,2,1,1,0,3,0,1,2,2,2,1,0,3,2,1,0,3,3,2,1,1,"undo","undo",1,1,0,3,3,0,1,2,1,1,0,3,2,1,0,3,3,2,2,1,0,1,0,3,2,3,3,3,0,1,2,3,3,0,1,2,1,0,3,2,1,1,0,3],"1 background:0,0,0,3 background:1,0,0,0,0,0,\n0,0,0,2 background:2,0,0,0,0,0,\n0,0,3 background c_down c_right prev1:3,1 background c_up prev2:4,1,0,0,0,0,\n0,0,1 background c_left player:5,2,0,0,0,0,0,\n0,2,0,2,2,0,0,0,0,\n0,2,2,1,0,2,0,0,0,\n0,0,0,2,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,"1627892275012.8281"] ], [ - "Voitex Rasteriser [Demake of Vertex Dispenser Puzzle Mode]", - ["title Voitex Rasteriser [Demake of Vertex Dispenser Puzzle Mode]\nauthor increpare\nhomepage www.increpare.com\n\n(inspired by https://store.steampowered.com/app/102400/Vertex_Dispenser/ )\n\nrun_rules_on_level_start\n\nbackground_color darkblue\ntext_color lightgreen\n\ncolor_palette 1\n\n========\nOBJECTS\n========\n\nBackground\nblack black\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\n\nPlayer\ngray\n00.00\n0...0\n.....\n0...0\n00.00\n\n\n\n1\npurple\n.....\n.....\n..0..\n.....\n.....\n\n\n\n2\nred\n.....\n.0...\n.....\n...0.\n.....\n\n\n3\npink\n.....\n.0...\n..0..\n...0.\n.....\n\n\n4\nyellow\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\n5\nlightgreen\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\n\n6\ngreen\n.....\n.000.\n.....\n.000.\n.....\n\n\n\nplace \ndarkgray\n\nno1 \ntransparent\n\nno2\ntransparent\n\nno3\ntransparent\n\nno4\ntransparent\n\nno5\ntransparent\n\nno6\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = Target\n\n\n\nnum = 1 or 2 or 3 or 4 or 5 or 6\n\nnonum = no1 or no2 or no3 or no4 or no5 or no6\n\n=======\nSOUNDS\n=======\n \n\nsfx1 55932906\nsfx2 4305306\nsfx3 6823106\nsfx4 83937501\nsfx5 65854702\n\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nnum\nno1\nno2\nno3\nno4\nno5\nno6\nplace\nPlayer, Wall\n\n======\nRULES\n======\n\n\n[nonum] -> []\n[ 1 | place no num ] -> [ 1 | place no1 ]\n[ 2 | place no num ] -> [ 2 | place no2 ]\n[ 3 | place no num ] -> [ 3 | place no3 ]\n[ 4 | place no num ] -> [ 4 | place no4 ]\n[ 5 | place no num ] -> [ 5 | place no5 ]\n[ 6 | place no num ] -> [ 6 | place no6 ]\n\n[place no1 no2 no3 no4 no5 ] -> [ 6 ]\n[place no1 no2 no3 no4 ] -> [ 5 ] sfx5\n[place no1 no2 no3 ] -> [ 4 ] sfx4\n[place no1 no2 ] -> [ 3 ] sfx3\n[place no1 ] -> [ 2 ] sfx2\n[place ] -> [ 1 ] sfx1\n\n[action player no num] -> [ player action place ] again\n\n\n==============\nWINCONDITIONS\n==============\nsome 5\n\n=======\nLEVELS\n=======\n\n.........\n.........\n.........\n.........\n....p....\n.........\n.........\n.........\n.........\n\nmessage Congrats! If you liked this, check out the real Vertex Dispenser! :)\n\n11111111111\n12222222221\n12333333321\n12344444321\n12345554321\n12345654321\n12345554321\n12344444321\n12333333321\n12222222221\n11111111111\n", [0, 4, 3, 2, 4, 1, 4, 4, 1, 4, 2, 4, 3, 4, 2, 4, 1, 1, 4, 0, 4, 0, 3, 0, 4, 1, 4, 2, 4, 1, 4, 2, 4, 2, 4], "background:0,0,0,0,0,0,0,0,0,\n0,0,0,0,1 background:1,2 background:2,3 background player:3,0,0,\n0,0,0,1,2,3 background:4,1,0,0,\n0,0,0,2,1,2,0,0,0,\n0,0,0,1,2,1,2,0,0,\n0,0,0,0,1,0,0,0,0,\n0,0,0,0,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, "1627892333608.1028"] + "Voitex Rasteriser [Demake of Vertex Dispenser Puzzle Mode]", + ["title Voitex Rasteriser [Demake of Vertex Dispenser Puzzle Mode]\nauthor increpare\nhomepage www.increpare.com\n\n(inspired by https://store.steampowered.com/app/102400/Vertex_Dispenser/ )\n\nrun_rules_on_level_start\n\nbackground_color darkblue\ntext_color lightgreen\n\ncolor_palette 1\n\n========\nOBJECTS\n========\n\nBackground\nblack black\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\n\nPlayer\ngray\n00.00\n0...0\n.....\n0...0\n00.00\n\n\n\n1\npurple\n.....\n.....\n..0..\n.....\n.....\n\n\n\n2\nred\n.....\n.0...\n.....\n...0.\n.....\n\n\n3\npink\n.....\n.0...\n..0..\n...0.\n.....\n\n\n4\nyellow\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\n5\nlightgreen\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\n\n6\ngreen\n.....\n.000.\n.....\n.000.\n.....\n\n\n\nplace \ndarkgray\n\nno1 \ntransparent\n\nno2\ntransparent\n\nno3\ntransparent\n\nno4\ntransparent\n\nno5\ntransparent\n\nno6\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = Target\n\n\n\nnum = 1 or 2 or 3 or 4 or 5 or 6\n\nnonum = no1 or no2 or no3 or no4 or no5 or no6\n\n=======\nSOUNDS\n=======\n \n\nsfx1 55932906\nsfx2 4305306\nsfx3 6823106\nsfx4 83937501\nsfx5 65854702\n\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nnum\nno1\nno2\nno3\nno4\nno5\nno6\nplace\nPlayer, Wall\n\n======\nRULES\n======\n\n\n[nonum] -> []\n[ 1 | place no num ] -> [ 1 | place no1 ]\n[ 2 | place no num ] -> [ 2 | place no2 ]\n[ 3 | place no num ] -> [ 3 | place no3 ]\n[ 4 | place no num ] -> [ 4 | place no4 ]\n[ 5 | place no num ] -> [ 5 | place no5 ]\n[ 6 | place no num ] -> [ 6 | place no6 ]\n\n[place no1 no2 no3 no4 no5 ] -> [ 6 ]\n[place no1 no2 no3 no4 ] -> [ 5 ] sfx5\n[place no1 no2 no3 ] -> [ 4 ] sfx4\n[place no1 no2 ] -> [ 3 ] sfx3\n[place no1 ] -> [ 2 ] sfx2\n[place ] -> [ 1 ] sfx1\n\n[action player no num] -> [ player action place ] again\n\n\n==============\nWINCONDITIONS\n==============\nsome 5\n\n=======\nLEVELS\n=======\n\n.........\n.........\n.........\n.........\n....p....\n.........\n.........\n.........\n.........\n\nmessage Congrats! If you liked this, check out the real Vertex Dispenser! :)\n\n11111111111\n12222222221\n12333333321\n12344444321\n12345554321\n12345654321\n12345554321\n12344444321\n12333333321\n12222222221\n11111111111\n",[0,4,3,2,4,1,4,4,1,4,2,4,3,4,2,4,1,1,4,0,4,0,3,0,4,1,4,2,4,1,4,2,4,2,4],"background:0,0,0,0,0,0,0,0,0,\n0,0,0,0,1 background:1,2 background:2,3 background player:3,0,0,\n0,0,0,1,2,3 background:4,1,0,0,\n0,0,0,2,1,2,0,0,0,\n0,0,0,1,2,1,2,0,0,\n0,0,0,0,1,0,0,0,0,\n0,0,0,0,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,"1627892333608.1028"] ], [ - "Voitex Rasteriser 2 [2nd Demake of Vertex Dispenser Puzzle Mode]", - ["title Voitex Rasteriser 2 [2nd Demake of Vertex Dispenser Puzzle Mode]\nauthor increpare\nhomepage www.increpare.com\n\n(inspired by https://store.steampowered.com/app/102400/Vertex_Dispenser/ )\n\nrun_rules_on_level_start\n\nbackground_color darkblue\ntext_color red\n\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\n\nPlayer\ngray\n00.00\n0...0\n.....\n0...0\n00.00\n\n\nfixed\ndarkgreen\n\n\n1\npurple\n.....\n.....\n..0..\n.....\n.....\n\n\n\n2\nred\n.....\n..0..\n.....\n.....\n.....\n\n\n3\npink\n.....\n...0.\n.....\n.....\n.....\n\n\n4\nyellow\n.....\n.....\n...0.\n.....\n.....\n\n\n5\nlightgreen\n.....\n.....\n.....\n...0.\n.....\n\n\n6\ngreen\n.....\n.....\n.....\n..0..\n.....\n\n\n7\nblue\n.....\n.....\n.....\n.0...\n.....\n\n\n8\nlightblue\n.....\n.....\n.0...\n.....\n.....\n\n\n9\nwhite\n.....\n.0...\n.....\n.....\n.....\n\ntemp\nred\n\n\n\n\np1\npurple black darkgray\n.....\n.222.\n.202.\n.222.\n.....\n\n\n\np2\nred black darkgray\n.....\n.202.\n.212.\n.222.\n.....\n\n\np3\npink black darkgray\n.....\n.210.\n.212.\n.222.\n.....\n\n\np4\nyellow black darkgray\n.....\n.211.\n.210.\n.222.\n.....\n\n\np5\nlightgreen black darkgray\n.....\n.211.\n.211.\n.220.\n.....\n\n\np6\ngreen black darkgray\n.....\n.211.\n.211.\n.201.\n.....\n\n\np7\nblue black darkgray\n.....\n.211.\n.211.\n.011.\n.....\n\np8\nlightblue black darkgray\n.....\n.211.\n.011.\n.111.\n.....\n\n\np9\nwhite black darkgray\n.....\n.011.\n.111.\n.111.\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player \n\n\n\nnum = 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9\nplaced = p1 or p2 or p3 or p4 or p5 or p6 or p7 or p8 or p9\n\n\n=======\nSOUNDS\n=======\n \n\nsfx1 55932906\nsfx2 4305306\nsfx3 6823106\nsfx4 83937501\nsfx5 65854702\n\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n1\n2\n3\n4\n5\n6\n7\n8\n9\ntemp\nfixed\np1\np2\np3\np4\np5\np6\np7\np8\np9\nPlayer\n\n======\nRULES\n======\n\n[action player no 1 no fixed ] -> [ player action 1 p1 fixed temp]\n[action player no 2 no fixed ] -> [ player action 2 p2 fixed temp]\n[action player no 3 no fixed ] -> [ player action 3 p3 fixed temp]\n[action player no 4 no fixed ] -> [ player action 4 p4 fixed temp]\n[action player no 5 no fixed ] -> [ player action 5 p5 fixed temp]\n[action player no 6 no fixed ] -> [ player action 6 p6 fixed temp]\n[action player no 7 no fixed ] -> [ player action 7 p7 fixed temp]\n[action player no 8 no fixed ] -> [ player action 8 p8 fixed temp]\n[action player no 9 no fixed ] -> [ player action 9 p9 fixed temp]\n\n\nright [ action num temp | ] -> [ action num temp | > num ]\n+ [ perpendicular num | ] -> [ perpendicular num | num ]\n[orthogonal num]->[num]\n\n\nleft [ action num temp | ] -> [ action num temp | > num ]\n+ [ perpendicular num | ] -> [ perpendicular num | num ]\n[orthogonal num]->[num]\n\n\nup [ action num temp | ] -> [ action num temp | > num ]\n+ [ perpendicular num | ] -> [ perpendicular num | num ]\n[orthogonal num]->[num]\n\n\ndown [ action num temp | ] -> [ action num temp | > num ]\n+ [ perpendicular num | ] -> [ perpendicular num | num ]\n[orthogonal num]->[num]\n\n[temp]->[]\n\n==============\nWINCONDITIONS\n==============\nsome 9\n\n=======\nLEVELS\n=======\n\nmessage CAN YOU COUNT THE NINE COLUORS OF THE RAINBOW?\n\n...........\n...........\n...........\n...........\n...........\n.....p.....\n...........\n...........\n...........\n...........\n...........\n\nmessage TOP RAINBOW COLUOR COUNTING! If you liked this, check out the real Vertex Dispenser! :)\n\n", [0, 4, 3, 3, 4, 2, 2, 1, 4, 0, 4, 0, 0, 0, 4, 2, 4, 1, 4, 1, 4, 0, 4, 3, 4, 0, 4, 3, 4, 4, 3, 2, 4, 4, 3, 4, 2, 4, 4, 2, 4, 4], "background:0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n0,1 background:1,1 2 background:2,2,2 background:3,0,0,0,0,0,0,\n3,1 2 4 background:4,1 2 3 4 background fixed p1:5,1 2 3 4 background fixed p2:6,1 2 3 background:7,1,0,0,0,0,0,\n2 3 background:8,6,1 2 3 4 background fixed p4:9,1 2 3 4 background fixed p3:10,1 2 3 background fixed p1:11,2,2,1,0,0,0,\n8,10,5,6,7,1 2 background fixed p2:12,1 2 background fixed p1:13,1,0,0,0,\n3 background:14,1 3 4 background:15,9,1 2 3 4 background:16,11,7,2,1,0,0,0,\n0,1 4 background:17,1 2 4 background fixed p1:18,6,1 2 3 background fixed p3 player:19,1 3 background:20,0,0,0,0,0,\n0,1,2,7,8,14,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n", 1, "1627892374590.2808"] + "Voitex Rasteriser 2 [2nd Demake of Vertex Dispenser Puzzle Mode]", + ["title Voitex Rasteriser 2 [2nd Demake of Vertex Dispenser Puzzle Mode]\nauthor increpare\nhomepage www.increpare.com\n\n(inspired by https://store.steampowered.com/app/102400/Vertex_Dispenser/ )\n\nrun_rules_on_level_start\n\nbackground_color darkblue\ntext_color red\n\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\n\nPlayer\ngray\n00.00\n0...0\n.....\n0...0\n00.00\n\n\nfixed\ndarkgreen\n\n\n1\npurple\n.....\n.....\n..0..\n.....\n.....\n\n\n\n2\nred\n.....\n..0..\n.....\n.....\n.....\n\n\n3\npink\n.....\n...0.\n.....\n.....\n.....\n\n\n4\nyellow\n.....\n.....\n...0.\n.....\n.....\n\n\n5\nlightgreen\n.....\n.....\n.....\n...0.\n.....\n\n\n6\ngreen\n.....\n.....\n.....\n..0..\n.....\n\n\n7\nblue\n.....\n.....\n.....\n.0...\n.....\n\n\n8\nlightblue\n.....\n.....\n.0...\n.....\n.....\n\n\n9\nwhite\n.....\n.0...\n.....\n.....\n.....\n\ntemp\nred\n\n\n\n\np1\npurple black darkgray\n.....\n.222.\n.202.\n.222.\n.....\n\n\n\np2\nred black darkgray\n.....\n.202.\n.212.\n.222.\n.....\n\n\np3\npink black darkgray\n.....\n.210.\n.212.\n.222.\n.....\n\n\np4\nyellow black darkgray\n.....\n.211.\n.210.\n.222.\n.....\n\n\np5\nlightgreen black darkgray\n.....\n.211.\n.211.\n.220.\n.....\n\n\np6\ngreen black darkgray\n.....\n.211.\n.211.\n.201.\n.....\n\n\np7\nblue black darkgray\n.....\n.211.\n.211.\n.011.\n.....\n\np8\nlightblue black darkgray\n.....\n.211.\n.011.\n.111.\n.....\n\n\np9\nwhite black darkgray\n.....\n.011.\n.111.\n.111.\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player \n\n\n\nnum = 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9\nplaced = p1 or p2 or p3 or p4 or p5 or p6 or p7 or p8 or p9\n\n\n=======\nSOUNDS\n=======\n \n\nsfx1 55932906\nsfx2 4305306\nsfx3 6823106\nsfx4 83937501\nsfx5 65854702\n\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n1\n2\n3\n4\n5\n6\n7\n8\n9\ntemp\nfixed\np1\np2\np3\np4\np5\np6\np7\np8\np9\nPlayer\n\n======\nRULES\n======\n\n[action player no 1 no fixed ] -> [ player action 1 p1 fixed temp]\n[action player no 2 no fixed ] -> [ player action 2 p2 fixed temp]\n[action player no 3 no fixed ] -> [ player action 3 p3 fixed temp]\n[action player no 4 no fixed ] -> [ player action 4 p4 fixed temp]\n[action player no 5 no fixed ] -> [ player action 5 p5 fixed temp]\n[action player no 6 no fixed ] -> [ player action 6 p6 fixed temp]\n[action player no 7 no fixed ] -> [ player action 7 p7 fixed temp]\n[action player no 8 no fixed ] -> [ player action 8 p8 fixed temp]\n[action player no 9 no fixed ] -> [ player action 9 p9 fixed temp]\n\n\nright [ action num temp | ] -> [ action num temp | > num ]\n+ [ perpendicular num | ] -> [ perpendicular num | num ]\n[orthogonal num]->[num]\n\n\nleft [ action num temp | ] -> [ action num temp | > num ]\n+ [ perpendicular num | ] -> [ perpendicular num | num ]\n[orthogonal num]->[num]\n\n\nup [ action num temp | ] -> [ action num temp | > num ]\n+ [ perpendicular num | ] -> [ perpendicular num | num ]\n[orthogonal num]->[num]\n\n\ndown [ action num temp | ] -> [ action num temp | > num ]\n+ [ perpendicular num | ] -> [ perpendicular num | num ]\n[orthogonal num]->[num]\n\n[temp]->[]\n\n==============\nWINCONDITIONS\n==============\nsome 9\n\n=======\nLEVELS\n=======\n\nmessage CAN YOU COUNT THE NINE COLUORS OF THE RAINBOW?\n\n...........\n...........\n...........\n...........\n...........\n.....p.....\n...........\n...........\n...........\n...........\n...........\n\nmessage TOP RAINBOW COLUOR COUNTING! If you liked this, check out the real Vertex Dispenser! :)\n\n",[0,4,3,3,4,2,2,1,4,0,4,0,0,0,4,2,4,1,4,1,4,0,4,3,4,0,4,3,4,4,3,2,4,4,3,4,2,4,4,2,4,4],"background:0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n0,1 background:1,1 2 background:2,2,2 background:3,0,0,0,0,0,0,\n3,1 2 4 background:4,1 2 3 4 background fixed p1:5,1 2 3 4 background fixed p2:6,1 2 3 background:7,1,0,0,0,0,0,\n2 3 background:8,6,1 2 3 4 background fixed p4:9,1 2 3 4 background fixed p3:10,1 2 3 background fixed p1:11,2,2,1,0,0,0,\n8,10,5,6,7,1 2 background fixed p2:12,1 2 background fixed p1:13,1,0,0,0,\n3 background:14,1 3 4 background:15,9,1 2 3 4 background:16,11,7,2,1,0,0,0,\n0,1 4 background:17,1 2 4 background fixed p1:18,6,1 2 3 background fixed p3 player:19,1 3 background:20,0,0,0,0,0,\n0,1,2,7,8,14,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n",1,"1627892374590.2808"] ], [ - "All Green and Blue on Yellow", - ["title All Green and Blue on Yellow\nauthor increpare\nhomepage www.increpare.com\nnoaction\n\ncolor_palette 4\n\nbackground_color darkbrown\ntext_color orange\n\n\n(\nmany levels made with the puzzlescript level generators \n\nhttps://dekeyser.ch/puzzlescriptmis/\n\nor\n\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\n========\nOBJECTS\n========\n\nBackground\ngray\n\n\nTarget\nyellow\n.....\n.000.\n.000.\n.000.\n.....\n\nWall\ndarkBROWN \n\nPlayer\nred darkred\n..0..\n..1..\n01010\n..1..\n..0..\n\nCrateH \nblue Yellow transparent darkblue\n00000\n20002\n22322\n20002\n00000\n\n\n\nCrateV \ntransparent orange green darkgreen\n20002\n22022\n22322\n22022\n20002\n\n=======\nLEGEND\n=======\n\ncrate = crateh or cratev\n\n\n. = Background\n# = Wall\nP = Player\nh = crateh\nv = cratev\na = crateh and target\nm = cratev and target\nl = player and target\nO = Target\nobstacle = wall or player or crateh or cratev\n@ = cratev and target\n\n* = cratev\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\nhorizontal [ > Player | Cratev ] -> [ > Player | > Cratev ]\nvertical [ > Player | Crateh ] -> [ > Player | > Crateh ]\n\n[> crate | obstacle ] -> cancel\n\nhorizontal [ > Player | Crateh | no obstacle ] -> [ | Crateh | player ]\nvertical [ > Player | Cratev | no obstacle ] -> [ | Cratev | player ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 5\n(ok starting level?)\n######\n#.o###\n#h.###\n#...p#\n#.h..#\n#o.###\n######\n\n\nmessage Level 2 of 5\n(simple but ok!)\n######\n#....#\n#.ho.#\n#pva.#\n#.om.#\n#....#\n######\n\n\nmessage Level 3 of 5\n(pleasing - nicht so schwierig!)\n..m.\nom..\npava\n....\n\n\nmessage Level 4 of 5\n(middle-hard, but decent!)\n.#..\n.m..\n..va\n#.m.\np..o\n\n\nmessage Level 5 of 5\n\n(hard!)\n#.a.\nohv.\np.m.\naoh.\n..o.\n\n(\n\n\n######\n#..p.#\n#.va.#\n#.om.#\n#....#\n######\n\n)\n\n\n(\n\n==========\nGENERATION\n==========\n\nchoose 8 option 0.6 [Wall] -> []\n+[]->[]\n\nchoose 8 option 0.6 [No Obstacle] -> [Wall]\n+[]->[]\n\nchoose 2 option 0.5 [ no wall no crate no player ] [no wall no player no target ] -> [ crateh ] [ target]\n+ option 0.5 [ no wall no crate no player ] [no wall no player no target ] -> [ cratev ] [ target]\n\n\n\n\n==========\nGENERATION\n==========\n\n= randomly remove or add 20 walls with prob. 0.4\nchoose 4 option 0.5 [crate] -> [crateh]\n+ option 0.5 [crate]->[cratev]\n+ option 0.1 [ crate | no crate no wall no player] -> [ | crate] \n+ option 0.05 [ no crate no wall no player ] [ no target no wall ]-> [ crateh ] [ target]\n+ option 0.05 [ no crate no wall no player ] [no target no wall ]-> [ cratev] [target]\n+ option 0.05 [ player ] [ no player no crate no wall]->[] [player]\n+ option 0.1 [ crate ] [ target ]->[ no crate] [ ]\n\n\nchoose 2 option 0.5 [ wall]->[]\n+ option 0.6 []->[]\n+ option 0.3 [no wall no player ] -> [wall]\n\n\n\n)\n", [2, 3, 0, 1, 0, 0, 3, 3, 2, 2, 1, 2, 1, 0, 3, 0, 1, 2, 1, 0, 3, 0, 3, 0, 2, 2, 1, 0], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,background cratev:2,2,\n1,0,0,background crateh:3,background player:4,1,\nbackground target:5,1,0,0,1,5,\n5,background crateh target:6,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n", 3, "1627892394944.1912"] + "All Green and Blue on Yellow", + ["title All Green and Blue on Yellow\nauthor increpare\nhomepage www.increpare.com\nnoaction\n\ncolor_palette 4\n\nbackground_color darkbrown\ntext_color orange\n\n\n(\nmany levels made with the puzzlescript level generators \n\nhttps://dekeyser.ch/puzzlescriptmis/\n\nor\n\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\n========\nOBJECTS\n========\n\nBackground\ngray\n\n\nTarget\nyellow\n.....\n.000.\n.000.\n.000.\n.....\n\nWall\ndarkBROWN \n\nPlayer\nred darkred\n..0..\n..1..\n01010\n..1..\n..0..\n\nCrateH \nblue Yellow transparent darkblue\n00000\n20002\n22322\n20002\n00000\n\n\n\nCrateV \ntransparent orange green darkgreen\n20002\n22022\n22322\n22022\n20002\n\n=======\nLEGEND\n=======\n\ncrate = crateh or cratev\n\n\n. = Background\n# = Wall\nP = Player\nh = crateh\nv = cratev\na = crateh and target\nm = cratev and target\nl = player and target\nO = Target\nobstacle = wall or player or crateh or cratev\n@ = cratev and target\n\n* = cratev\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\nhorizontal [ > Player | Cratev ] -> [ > Player | > Cratev ]\nvertical [ > Player | Crateh ] -> [ > Player | > Crateh ]\n\n[> crate | obstacle ] -> cancel\n\nhorizontal [ > Player | Crateh | no obstacle ] -> [ | Crateh | player ]\nvertical [ > Player | Cratev | no obstacle ] -> [ | Cratev | player ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 5\n(ok starting level?)\n######\n#.o###\n#h.###\n#...p#\n#.h..#\n#o.###\n######\n\n\nmessage Level 2 of 5\n(simple but ok!)\n######\n#....#\n#.ho.#\n#pva.#\n#.om.#\n#....#\n######\n\n\nmessage Level 3 of 5\n(pleasing - nicht so schwierig!)\n..m.\nom..\npava\n....\n\n\nmessage Level 4 of 5\n(middle-hard, but decent!)\n.#..\n.m..\n..va\n#.m.\np..o\n\n\nmessage Level 5 of 5\n\n(hard!)\n#.a.\nohv.\np.m.\naoh.\n..o.\n\n(\n\n\n######\n#..p.#\n#.va.#\n#.om.#\n#....#\n######\n\n)\n\n\n(\n\n==========\nGENERATION\n==========\n\nchoose 8 option 0.6 [Wall] -> []\n+[]->[]\n\nchoose 8 option 0.6 [No Obstacle] -> [Wall]\n+[]->[]\n\nchoose 2 option 0.5 [ no wall no crate no player ] [no wall no player no target ] -> [ crateh ] [ target]\n+ option 0.5 [ no wall no crate no player ] [no wall no player no target ] -> [ cratev ] [ target]\n\n\n\n\n==========\nGENERATION\n==========\n\n= randomly remove or add 20 walls with prob. 0.4\nchoose 4 option 0.5 [crate] -> [crateh]\n+ option 0.5 [crate]->[cratev]\n+ option 0.1 [ crate | no crate no wall no player] -> [ | crate] \n+ option 0.05 [ no crate no wall no player ] [ no target no wall ]-> [ crateh ] [ target]\n+ option 0.05 [ no crate no wall no player ] [no target no wall ]-> [ cratev] [target]\n+ option 0.05 [ player ] [ no player no crate no wall]->[] [player]\n+ option 0.1 [ crate ] [ target ]->[ no crate] [ ]\n\n\nchoose 2 option 0.5 [ wall]->[]\n+ option 0.6 []->[]\n+ option 0.3 [no wall no player ] -> [wall]\n\n\n\n)\n",[2,3,0,1,0,0,3,3,2,2,1,2,1,0,3,0,1,2,1,0,3,0,3,0,2,2,1,0],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,background cratev:2,2,\n1,0,0,background crateh:3,background player:4,1,\nbackground target:5,1,0,0,1,5,\n5,background crateh target:6,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n",3,"1627892394944.1912"] ], [ - "ALL GREEN TO BLUE", - ["title ALL GREEN TO BLUE\nauthor increpare\nhomepage www.increpare.com\nbackground_color black\n\ncolor_palette 5\n\n(\nmany levels made with the puzzlescript level generators \n\nhttps://dekeyser.ch/puzzlescriptmis/\n\nor\n\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\n\n========\nOBJECTS\n========\n\nBackground\ngray\n\n\nWall\nBROWN \n\nbtile\nblack\n\nPlayer\npink\n.000.\n.0.0.\n00000\n.000.\n.0.0.\n\nCrateH \nblue Yellow transparent darkblue\n00000\n20002\n22322\n20002\n00000\n\n\n\nCrateV \ntransparent orange green darkgreen\n20002\n22022\n22322\n22022\n20002\n\n=======\nLEGEND\n=======\n\ncrate = crateh or cratev\n\n\n. = Background\n# = Wall\nP = Player\nh = crateh\nv = cratev\nobstacle = wall or player or crateh or cratev\n* = cratev\nO = background\n@ = cratev\n, = btile\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx1 58154305\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nbtile\n\n======\nRULES\n======\n\nhorizontal [ > Player | Cratev ] -> [ > Player | > Cratev ]\nvertical [ > Player | Crateh ] -> [ > Player | > Crateh ]\n\n[> crate | obstacle ] -> cancel\n\nhorizontal [ > Player | Crateh | no obstacle ] -> [ | Cratev | player ] sfx1\nvertical [ > Player | Cratev | no obstacle ] -> [ | Crateh | player ] sfx1\n\n==============\nWINCONDITIONS\n==============\n\nno cratev\n\n=======\nLEVELS\n=======\n\n\n(GUT)\n\n(ok 1. oder 2. Level)\n\nmessage Chapter 1/3 : Twistoban, Stage 1/3\n\n######\n#....#\n#.#p.#\n#.vv.#\n#..h.#\n#....#\n######\n\n\nmessage Chapter 1/3 : Twistoban, Stage 2/3\n\n(tricky!)\n\n,,,,,,#####\n,,,,,,#...#\n,,,,,,#.#.#\n#######.#v#\n#.p.v.v.v.#\n#.#.#.#.###\n#.......#,,\n#########,,\n\nmessage Chapter 1/3 : Twistoban, Stage 3/3\n\n(not bad 4/6)\n#####,\n#...##\n#.vp.#\n##vv.#\n,#.v.#\n,###.#\n,,,###\n\n\n\nmessage Chapter 2/3 : Gates, Stage 1/3\n\n\n(Gates 1)\n.h..\n.h..\n.h..\n.h..\nvh..\nph..\nvh..\n.h..\n.h..\n.h..\n.h..\n\nmessage Chapter 2/3 : Gates, Stage 2/3\n\n(gates 2)\n(hard, non-trivial)\n.h.\n.h.\n.h.\n.h.\nvh.\nph.\nvh.\n.h.\n.h.\n.h.\n.h.\n\n\n\n\nmessage Chapter 2/3 : Gates, Stage 3/3\n\n(fun to work through)\n.h.h.h.\n.h.h.h.\n.h.h.h.\n.h.h.h.\nph.h.v.\n.h.h.h.\n.h.h.h.\n.h.h.h.\n.h.h.h.\n\n\n\n\n\nmessage Chapter 3/3 : Claustrophobia, Stage 1/4\n\n\n(tells an ok story, 4/6)\n...\n.hv\nhh.\n..v\nph.\n\nmessage Chapter 3/3 : Claustrophobia, Stage 2/4\n\n(nice Stage! 5/6)\n.h.\nvh.\n.hv\nph.\n\nmessage Chapter 3/3 : Claustrophobia, Stage 3/4\n\n(hard / satisfying to solve 4/6)\n....h\nvhhv.\n.hpvh\n.h...\n\nmessage Chapter 3/3 : Claustrophobia, Stage 4/4\n\n(einfach aber spaß? 3/6)\n\n.h.\npv.\nvvv\n...\n\nmessage Epilogue\n\n.............\n.h.h.hvh.h.h.\n.h.h.h.h.h.h.\n.hvh.h.h.h.h.\n...h.h.h.h.h.\n.hvh.hvh.hvh.\n......p......\n.h.h.h.h.hvh.\n.h.h.h.h.h.h.\n.h.h.h.h.h.h.\n.hvhvh.h.h.h.\n.............\n\n\n", [0, 3, 0, 1, 2, 3, 3, 0, 3, 2], "background:0,0,0,0,\nbackground crateh:1,0,background cratev:2,0,\n0,0,0,1,\n1,2,0,1,\n1,1,1,1,\n1,1,0,0,\n0,0,0,0,\n0,0,0,0,\n0,0,0,0,\n1,background player:3,0,0,\n0,0,0,0,\n", 7, "1627892412039.6033"] + "ALL GREEN TO BLUE", + ["title ALL GREEN TO BLUE\nauthor increpare\nhomepage www.increpare.com\nbackground_color black\n\ncolor_palette 5\n\n(\nmany levels made with the puzzlescript level generators \n\nhttps://dekeyser.ch/puzzlescriptmis/\n\nor\n\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\n\n========\nOBJECTS\n========\n\nBackground\ngray\n\n\nWall\nBROWN \n\nbtile\nblack\n\nPlayer\npink\n.000.\n.0.0.\n00000\n.000.\n.0.0.\n\nCrateH \nblue Yellow transparent darkblue\n00000\n20002\n22322\n20002\n00000\n\n\n\nCrateV \ntransparent orange green darkgreen\n20002\n22022\n22322\n22022\n20002\n\n=======\nLEGEND\n=======\n\ncrate = crateh or cratev\n\n\n. = Background\n# = Wall\nP = Player\nh = crateh\nv = cratev\nobstacle = wall or player or crateh or cratev\n* = cratev\nO = background\n@ = cratev\n, = btile\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx1 58154305\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nbtile\n\n======\nRULES\n======\n\nhorizontal [ > Player | Cratev ] -> [ > Player | > Cratev ]\nvertical [ > Player | Crateh ] -> [ > Player | > Crateh ]\n\n[> crate | obstacle ] -> cancel\n\nhorizontal [ > Player | Crateh | no obstacle ] -> [ | Cratev | player ] sfx1\nvertical [ > Player | Cratev | no obstacle ] -> [ | Crateh | player ] sfx1\n\n==============\nWINCONDITIONS\n==============\n\nno cratev\n\n=======\nLEVELS\n=======\n\n\n(GUT)\n\n(ok 1. oder 2. Level)\n\nmessage Chapter 1/3 : Twistoban, Stage 1/3\n\n######\n#....#\n#.#p.#\n#.vv.#\n#..h.#\n#....#\n######\n\n\nmessage Chapter 1/3 : Twistoban, Stage 2/3\n\n(tricky!)\n\n,,,,,,#####\n,,,,,,#...#\n,,,,,,#.#.#\n#######.#v#\n#.p.v.v.v.#\n#.#.#.#.###\n#.......#,,\n#########,,\n\nmessage Chapter 1/3 : Twistoban, Stage 3/3\n\n(not bad 4/6)\n#####,\n#...##\n#.vp.#\n##vv.#\n,#.v.#\n,###.#\n,,,###\n\n\n\nmessage Chapter 2/3 : Gates, Stage 1/3\n\n\n(Gates 1)\n.h..\n.h..\n.h..\n.h..\nvh..\nph..\nvh..\n.h..\n.h..\n.h..\n.h..\n\nmessage Chapter 2/3 : Gates, Stage 2/3\n\n(gates 2)\n(hard, non-trivial)\n.h.\n.h.\n.h.\n.h.\nvh.\nph.\nvh.\n.h.\n.h.\n.h.\n.h.\n\n\n\n\nmessage Chapter 2/3 : Gates, Stage 3/3\n\n(fun to work through)\n.h.h.h.\n.h.h.h.\n.h.h.h.\n.h.h.h.\nph.h.v.\n.h.h.h.\n.h.h.h.\n.h.h.h.\n.h.h.h.\n\n\n\n\n\nmessage Chapter 3/3 : Claustrophobia, Stage 1/4\n\n\n(tells an ok story, 4/6)\n...\n.hv\nhh.\n..v\nph.\n\nmessage Chapter 3/3 : Claustrophobia, Stage 2/4\n\n(nice Stage! 5/6)\n.h.\nvh.\n.hv\nph.\n\nmessage Chapter 3/3 : Claustrophobia, Stage 3/4\n\n(hard / satisfying to solve 4/6)\n....h\nvhhv.\n.hpvh\n.h...\n\nmessage Chapter 3/3 : Claustrophobia, Stage 4/4\n\n(einfach aber spaß? 3/6)\n\n.h.\npv.\nvvv\n...\n\nmessage Epilogue\n\n.............\n.h.h.hvh.h.h.\n.h.h.h.h.h.h.\n.hvh.h.h.h.h.\n...h.h.h.h.h.\n.hvh.hvh.hvh.\n......p......\n.h.h.h.h.hvh.\n.h.h.h.h.h.h.\n.h.h.h.h.h.h.\n.hvhvh.h.h.h.\n.............\n\n\n",[0,3,0,1,2,3,3,0,3,2],"background:0,0,0,0,\nbackground crateh:1,0,background cratev:2,0,\n0,0,0,1,\n1,2,0,1,\n1,1,1,1,\n1,1,0,0,\n0,0,0,0,\n0,0,0,0,\n0,0,0,0,\n1,background player:3,0,0,\n0,0,0,0,\n",7,"1627892412039.6033"] ], [ - "5-junctions-maker / 5kreuzungenmacher", - ["title 5-junctions-maker / 5kreuzungenmacher\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nnoaction\n\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\n\na_up\nblack green\n..1..\n.111.\n11111\n..1..\n..1..\n\n\n\na_down\nblack blue\n..1..\n..1..\n11111\n.111.\n..1..\n\n\na_left\nblack pink\n..1..\n.11..\n11111\n.11..\n..1..\n\na_right\nblack red\n..1..\n..11.\n11111\n..11.\n..1..\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkblue\n00000\n0...0\n0...0\n0...0\n00000\n\nPlayer\nyellow\n00.00\n0...0\n.....\n0...0\n00.00\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\nquelle \nwhite \n00000\n00000\n00000\n00000\n00000\n\nquelle_kreuzung \nwhite\n.....\n.....\n..0..\n.....\n.....\n\nquelle_verbindung_n\nlightgray\n..0..\n..0..\n.....\n.....\n.....\n\nquelle_verbindung_s\nlightgray\n.....\n.....\n.....\n..0..\n..0..\n\nquelle_verbindung_e\nlightgray\n.....\n.....\n...00\n.....\n.....\n\nquelle_verbindung_w\nlightgray\n.....\n.....\n00...\n.....\n.....\n\ncounter 1\ndarkblue darkblue\n..0..\n..0..\n00100\n..0..\n..0..\n\ncounterfill\ngray lightgray\n..0..\n..0..\n00100\n..0..\n..0..\n\ndeckle\nblack\n\ntemp t\ngreen\n\n\n\ne_0_0 g \n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_1_0 h \n#8a8a8a white\n..0..\n..0..\n00100\n.....\n.....\n\ne_2_0 j \n#8a8a8a white\n..0..\n..0..\n00100\n.....\n.....\n\ne_3_0 k\n#8a8a8a white\n...0.\n...0.\n00010\n.....\n.....\n\ne_4_0 ?\n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_0_1 b\n#8a8a8a white\n..0..\n..0..\n001..\n..0..\n..0..\n\ne_1_1 n\nwhite\n0..0.\n0..0.\n0000.\n...0.\n0000.\n\ne_2_1 m \nwhite\n0000.\n0..0.\n0..0.\n0..0.\n0000.\n\ne_3_1 ,\nwhite\n0..0.\n0..0.\n0..0.\n0..0.\n0000.\n\ne_4_1 2\n#8a8a8a white\n..0..\n..0..\n..100\n..0..\n..0..\n\ne_0_2 3\n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_1_2 4\n#8a8a8a\n.....\n.....\n00000\n.....\n.....\n\ne_2_2 5\n#8a8a8a\n.....\n.....\n00000\n.....\n.....\n\ne_3_2 6\n#8a8a8a\n.....\n.....\n00000\n.....\n.....\n\ne_4_2 7\n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_0_3 8\n#8a8a8a\n..0..\n..0..\n..0..\n..0..\n..0..\n\ne_1_3 9\nwhite\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n00000\n\ne_2_3 0\nwhite\n.000.\n..0..\n..0..\n..0..\n.000.\n\ne_3_3 d\nwhite\n.00..\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n\ne_4_3 f\n#8a8a8a\n..0..\n..0..\n..0..\n..0..\n..0..\n\ne_0_4 w\n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_1_4 e\n#8a8a8a white\n.....\n.....\n00100\n..0..\n..0..\n\ne_2_4 y\n#8a8a8a white\n.....\n.....\n00100\n..0..\n..0..\n\ne_3_4 u\n#8a8a8a white\n.....\n.....\n00100\n..0..\n..0..\n\ne_4_4 i\n#8a8a8a white\n..0..\n..0..\n001..\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background and deckle\n# = Wall and deckle\n* = Crate and deckle\n@ = Crate and Target and deckle\nO = Target and deckle\na = a_up or a_down or a_left or a_right\ns = player and a_up and deckle\np = player and a_down and deckle\nq = player and a_left and deckle\nr = player and a_right and deckle\n\nz = a_up and deckle\nx = a_down and deckle\nc = a_left and deckle\nv = a_right and deckle\n\nl = quelle and deckle\nquelle_verbindung = quelle_verbindung_n or quelle_verbindung_s or quelle_verbindung_e or quelle_verbindung_w\n\n\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\na\ndeckle\nPlayer, Wall, Crate\nquelle\nquelle_verbindung_n\nquelle_verbindung_s\nquelle_verbindung_e\nquelle_verbindung_w\nquelle_kreuzung\ncounter\ncounterfill\ntemp\ng,h,j,k,e_4_0,b,n,m,e_3_1,2,3,4,5,6,7,8,9,0,d,f,w,e,t,y,u,i\n\n======\nRULES\n======\n\n[ > player | wall ] -> cancel\n[ > player | quelle ] -> cancel\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate up [ no quelle no wall | player ] -> [ a_up | player ]\nlate down [ no quelle no wall | player ] -> [ a_down | player ]\nlate left [ no quelle no wall | player ] -> [ a_left | player ]\nlate right [ no quelle no wall | player ] -> [ a_right | player ]\n\nlate [ quelle_verbindung ] -> []\nlate [ quelle_kreuzung ] -> []\n\nlate [ player ] -> [ player no a]\n\n\nlate up [ a_up | no wall no quelle no a_down ] -> [ a_up quelle_verbindung_n | quelle_verbindung_s]\nlate down [ a_down | no wall no quelle no a_up ] -> [ a_down quelle_verbindung_s | quelle_verbindung_n]\nlate left [ a_left | no wall no quelle no a_right ] -> [ a_left quelle_verbindung_w | quelle_verbindung_e]\nlate right [ a_right | no wall no quelle no a_left ] -> [ a_right quelle_verbindung_e | quelle_verbindung_w]\n\n\n\nlate up [ quelle | no a_down no wall ] -> [ quelle | quelle_kreuzung quelle_verbindung_s ]\nlate down [ quelle | no a_up no wall ] -> [ quelle | quelle_kreuzung quelle_verbindung_n ]\nlate left [ quelle | no a_right no wall ] -> [ quelle | quelle_kreuzung quelle_verbindung_e ]\nlate right [ quelle | no a_left no wall ] -> [ quelle | quelle_kreuzung quelle_verbindung_w ]\n\nlate left [ a_left quelle_kreuzung quelle_verbindung_w | no quelle_kreuzung quelle_verbindung_e ] -> [ a_left quelle_kreuzung quelle_verbindung_w | quelle_kreuzung quelle_verbindung_e ] \n+ late right [ a_right quelle_kreuzung quelle_verbindung_e | no quelle_kreuzung quelle_verbindung_w ] -> [ a_right quelle_kreuzung quelle_verbindung_e | quelle_kreuzung quelle_verbindung_w ] \n+ late up [ a_up quelle_kreuzung quelle_verbindung_n | no quelle_kreuzung quelle_verbindung_s ] -> [ a_up quelle_kreuzung quelle_verbindung_n | quelle_kreuzung quelle_verbindung_s ] \n+ late down [ a_down quelle_kreuzung quelle_verbindung_s | no quelle_kreuzung quelle_verbindung_n ] -> [ a_down quelle_kreuzung quelle_verbindung_s | quelle_kreuzung quelle_verbindung_n ] \n\nlate [ quelle_verbindung no quelle_kreuzung ] -> []\n\nlate left [ quelle_verbindung_w | no quelle_verbindung_e no quelle ] -> [ | ]\nlate right [ quelle_verbindung_e | no quelle_verbindung_w no quelle ] -> [ | ]\nlate up [ quelle_verbindung_n | no quelle_verbindung_s no quelle ] -> [ | ]\nlate down [ quelle_verbindung_s | no quelle_verbindung_n no quelle ] -> [ | ]\n\n\nlate [counterfill] -> []\n\nlate [ quelle_kreuzung quelle_verbindung_n quelle_verbindung_s quelle_verbindung_e quelle_verbindung_w no temp ] [ counter no counterfill ] -> [ quelle_kreuzung quelle_verbindung_n quelle_verbindung_s quelle_verbindung_e quelle_verbindung_w temp ] [ counter counterfill ]\n\nlate [ temp ] -> []\n\n==============\nWINCONDITIONS\n==============\n\nall counter on counterfill\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of/von 1\n\n....#################\n....#xxxxxxxxxzxcvzx#\n#####xxxxxxxxxzxcvzx#\n#...#xxxxxxxxzxxvzxx#\n#.1.#xxxxzxxxxvxxcvx#\n#...#xxvclvcxvxxxccx#\n#.1.#xxxxxxxxvzxcvzx#\n#...#xxxxzxxxzxzxzxx#\n#.1.#xxxxxxxxzxzxzxx#\n#...#xxxxxxxxzxxxzxx#\n#.1.#xxxxzcvxxxsccvx#\n#...#xxvclvcxvclvccx#\n#.1.#xxxxxvzxxxxcvzx#\n#...#xxxxzzxxxxzvzxx#\n#####xxxxxcvxxxzxcvx#\n....#xxxxxcvxxxzxcvx#\n....#################\n\n\nmessage Very smoothly is encarring thusly ensured / Reibungslos ist ein Verkehssystem so entwickelt\n\nghjk?\nbnm,2\n34567\nb90d2\nweyui\n\n\n\n\n\n", [2, 1, 1, 1, 1, 1, 1, 3, 3, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 3, 3, 1, 3, 0, 1, 2, 2, 2, 1, 0, 0, 3, 3, 2, 2, 2], "background deckle:0,0,background deckle wall:1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,\n0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,background counter counterfill:2,0,background counter:3,0,\n3,0,3,0,3,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,\n0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,a_down background deckle:4,4,4,4,a_right background deckle:5,5,5,5,5,5,5,4,4,4,4,1,1,4,4,\n4,4,a_right background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_s:6,a_up background deckle quelle_kreuzung quelle_verbindung_n quelle_verbindung_s:7,7,7,7,7,a_up background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_n:8,a_up background deckle:9,4,4,4,1,1,4,4,4,4,a_right background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_w:10,5,\n5,5,a_left background deckle:11,11,a_left background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_w:12,9,4,4,4,1,1,4,4,4,a_down background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_s:13,a_down background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_n quelle_verbindung_s quelle_verbindung_w:14,a_down background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_n quelle_verbindung_s:15,a_down background deckle quelle_kreuzung quelle_verbindung_n quelle_verbindung_s:16,background deckle player quelle_kreuzung quelle_verbindung_n:17,9,11,\n12,4,4,4,4,1,1,4,4,4,a_left background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_s quelle_verbindung_w:18,background deckle quelle:19,a_left background deckle quelle_kreuzung quelle_verbindung_n quelle_verbindung_w:20,11,11,4,6,19,a_down background deckle quelle_kreuzung quelle_verbindung_n:21,9,4,\n4,1,1,4,4,4,a_left background deckle quelle_kreuzung quelle_verbindung_s quelle_verbindung_w:22,a_up background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_n quelle_verbindung_w:23,9,5,5,5,a_right background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_s quelle_verbindung_w:24,a_up background deckle quelle_kreuzung quelle_verbindung_n quelle_verbindung_w:25,5,9,11,11,1,1,4,\n4,4,11,22,7,7,7,7,23,9,9,4,5,5,1,1,4,4,4,4,11,\n11,11,11,11,12,9,4,4,4,4,1,1,4,4,9,4,5,5,9,9,4,\n12,9,4,4,4,4,1,1,9,9,4,5,4,9,4,4,4,18,8,4,4,\n4,4,1,1,4,4,4,4,4,4,9,9,4,22,19,21,9,9,9,1,1,\n11,11,5,4,4,11,4,4,4,11,a_right background deckle quelle_kreuzung quelle_verbindung_w:26,11,5,4,4,1,1,5,5,9,11,\n11,5,9,9,9,11,11,5,9,11,11,1,1,9,9,4,5,11,9,4,4,\n4,5,11,9,4,5,5,1,1,4,4,4,4,4,4,4,4,4,4,4,4,\n4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n", 1, "1627892456324.3245"] + "5-junctions-maker / 5kreuzungenmacher", + ["title 5-junctions-maker / 5kreuzungenmacher\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nnoaction\n\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\n\na_up\nblack green\n..1..\n.111.\n11111\n..1..\n..1..\n\n\n\na_down\nblack blue\n..1..\n..1..\n11111\n.111.\n..1..\n\n\na_left\nblack pink\n..1..\n.11..\n11111\n.11..\n..1..\n\na_right\nblack red\n..1..\n..11.\n11111\n..11.\n..1..\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkblue\n00000\n0...0\n0...0\n0...0\n00000\n\nPlayer\nyellow\n00.00\n0...0\n.....\n0...0\n00.00\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\nquelle \nwhite \n00000\n00000\n00000\n00000\n00000\n\nquelle_kreuzung \nwhite\n.....\n.....\n..0..\n.....\n.....\n\nquelle_verbindung_n\nlightgray\n..0..\n..0..\n.....\n.....\n.....\n\nquelle_verbindung_s\nlightgray\n.....\n.....\n.....\n..0..\n..0..\n\nquelle_verbindung_e\nlightgray\n.....\n.....\n...00\n.....\n.....\n\nquelle_verbindung_w\nlightgray\n.....\n.....\n00...\n.....\n.....\n\ncounter 1\ndarkblue darkblue\n..0..\n..0..\n00100\n..0..\n..0..\n\ncounterfill\ngray lightgray\n..0..\n..0..\n00100\n..0..\n..0..\n\ndeckle\nblack\n\ntemp t\ngreen\n\n\n\ne_0_0 g \n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_1_0 h \n#8a8a8a white\n..0..\n..0..\n00100\n.....\n.....\n\ne_2_0 j \n#8a8a8a white\n..0..\n..0..\n00100\n.....\n.....\n\ne_3_0 k\n#8a8a8a white\n...0.\n...0.\n00010\n.....\n.....\n\ne_4_0 ?\n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_0_1 b\n#8a8a8a white\n..0..\n..0..\n001..\n..0..\n..0..\n\ne_1_1 n\nwhite\n0..0.\n0..0.\n0000.\n...0.\n0000.\n\ne_2_1 m \nwhite\n0000.\n0..0.\n0..0.\n0..0.\n0000.\n\ne_3_1 ,\nwhite\n0..0.\n0..0.\n0..0.\n0..0.\n0000.\n\ne_4_1 2\n#8a8a8a white\n..0..\n..0..\n..100\n..0..\n..0..\n\ne_0_2 3\n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_1_2 4\n#8a8a8a\n.....\n.....\n00000\n.....\n.....\n\ne_2_2 5\n#8a8a8a\n.....\n.....\n00000\n.....\n.....\n\ne_3_2 6\n#8a8a8a\n.....\n.....\n00000\n.....\n.....\n\ne_4_2 7\n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_0_3 8\n#8a8a8a\n..0..\n..0..\n..0..\n..0..\n..0..\n\ne_1_3 9\nwhite\n0.0.0\n0.0.0\n0.0.0\n0.0.0\n00000\n\ne_2_3 0\nwhite\n.000.\n..0..\n..0..\n..0..\n.000.\n\ne_3_3 d\nwhite\n.00..\n.0.0.\n.0.0.\n.0.0.\n.0.0.\n\ne_4_3 f\n#8a8a8a\n..0..\n..0..\n..0..\n..0..\n..0..\n\ne_0_4 w\n#8a8a8a white\n..0..\n..0..\n00100\n..0..\n..0..\n\ne_1_4 e\n#8a8a8a white\n.....\n.....\n00100\n..0..\n..0..\n\ne_2_4 y\n#8a8a8a white\n.....\n.....\n00100\n..0..\n..0..\n\ne_3_4 u\n#8a8a8a white\n.....\n.....\n00100\n..0..\n..0..\n\ne_4_4 i\n#8a8a8a white\n..0..\n..0..\n001..\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background and deckle\n# = Wall and deckle\n* = Crate and deckle\n@ = Crate and Target and deckle\nO = Target and deckle\na = a_up or a_down or a_left or a_right\ns = player and a_up and deckle\np = player and a_down and deckle\nq = player and a_left and deckle\nr = player and a_right and deckle\n\nz = a_up and deckle\nx = a_down and deckle\nc = a_left and deckle\nv = a_right and deckle\n\nl = quelle and deckle\nquelle_verbindung = quelle_verbindung_n or quelle_verbindung_s or quelle_verbindung_e or quelle_verbindung_w\n\n\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\na\ndeckle\nPlayer, Wall, Crate\nquelle\nquelle_verbindung_n\nquelle_verbindung_s\nquelle_verbindung_e\nquelle_verbindung_w\nquelle_kreuzung\ncounter\ncounterfill\ntemp\ng,h,j,k,e_4_0,b,n,m,e_3_1,2,3,4,5,6,7,8,9,0,d,f,w,e,t,y,u,i\n\n======\nRULES\n======\n\n[ > player | wall ] -> cancel\n[ > player | quelle ] -> cancel\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate up [ no quelle no wall | player ] -> [ a_up | player ]\nlate down [ no quelle no wall | player ] -> [ a_down | player ]\nlate left [ no quelle no wall | player ] -> [ a_left | player ]\nlate right [ no quelle no wall | player ] -> [ a_right | player ]\n\nlate [ quelle_verbindung ] -> []\nlate [ quelle_kreuzung ] -> []\n\nlate [ player ] -> [ player no a]\n\n\nlate up [ a_up | no wall no quelle no a_down ] -> [ a_up quelle_verbindung_n | quelle_verbindung_s]\nlate down [ a_down | no wall no quelle no a_up ] -> [ a_down quelle_verbindung_s | quelle_verbindung_n]\nlate left [ a_left | no wall no quelle no a_right ] -> [ a_left quelle_verbindung_w | quelle_verbindung_e]\nlate right [ a_right | no wall no quelle no a_left ] -> [ a_right quelle_verbindung_e | quelle_verbindung_w]\n\n\n\nlate up [ quelle | no a_down no wall ] -> [ quelle | quelle_kreuzung quelle_verbindung_s ]\nlate down [ quelle | no a_up no wall ] -> [ quelle | quelle_kreuzung quelle_verbindung_n ]\nlate left [ quelle | no a_right no wall ] -> [ quelle | quelle_kreuzung quelle_verbindung_e ]\nlate right [ quelle | no a_left no wall ] -> [ quelle | quelle_kreuzung quelle_verbindung_w ]\n\nlate left [ a_left quelle_kreuzung quelle_verbindung_w | no quelle_kreuzung quelle_verbindung_e ] -> [ a_left quelle_kreuzung quelle_verbindung_w | quelle_kreuzung quelle_verbindung_e ] \n+ late right [ a_right quelle_kreuzung quelle_verbindung_e | no quelle_kreuzung quelle_verbindung_w ] -> [ a_right quelle_kreuzung quelle_verbindung_e | quelle_kreuzung quelle_verbindung_w ] \n+ late up [ a_up quelle_kreuzung quelle_verbindung_n | no quelle_kreuzung quelle_verbindung_s ] -> [ a_up quelle_kreuzung quelle_verbindung_n | quelle_kreuzung quelle_verbindung_s ] \n+ late down [ a_down quelle_kreuzung quelle_verbindung_s | no quelle_kreuzung quelle_verbindung_n ] -> [ a_down quelle_kreuzung quelle_verbindung_s | quelle_kreuzung quelle_verbindung_n ] \n\nlate [ quelle_verbindung no quelle_kreuzung ] -> []\n\nlate left [ quelle_verbindung_w | no quelle_verbindung_e no quelle ] -> [ | ]\nlate right [ quelle_verbindung_e | no quelle_verbindung_w no quelle ] -> [ | ]\nlate up [ quelle_verbindung_n | no quelle_verbindung_s no quelle ] -> [ | ]\nlate down [ quelle_verbindung_s | no quelle_verbindung_n no quelle ] -> [ | ]\n\n\nlate [counterfill] -> []\n\nlate [ quelle_kreuzung quelle_verbindung_n quelle_verbindung_s quelle_verbindung_e quelle_verbindung_w no temp ] [ counter no counterfill ] -> [ quelle_kreuzung quelle_verbindung_n quelle_verbindung_s quelle_verbindung_e quelle_verbindung_w temp ] [ counter counterfill ]\n\nlate [ temp ] -> []\n\n==============\nWINCONDITIONS\n==============\n\nall counter on counterfill\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of/von 1\n\n....#################\n....#xxxxxxxxxzxcvzx#\n#####xxxxxxxxxzxcvzx#\n#...#xxxxxxxxzxxvzxx#\n#.1.#xxxxzxxxxvxxcvx#\n#...#xxvclvcxvxxxccx#\n#.1.#xxxxxxxxvzxcvzx#\n#...#xxxxzxxxzxzxzxx#\n#.1.#xxxxxxxxzxzxzxx#\n#...#xxxxxxxxzxxxzxx#\n#.1.#xxxxzcvxxxsccvx#\n#...#xxvclvcxvclvccx#\n#.1.#xxxxxvzxxxxcvzx#\n#...#xxxxzzxxxxzvzxx#\n#####xxxxxcvxxxzxcvx#\n....#xxxxxcvxxxzxcvx#\n....#################\n\n\nmessage Very smoothly is encarring thusly ensured / Reibungslos ist ein Verkehssystem so entwickelt\n\nghjk?\nbnm,2\n34567\nb90d2\nweyui\n\n\n\n\n\n",[2,1,1,1,1,1,1,3,3,0,0,0,0,0,1,1,1,0,1,1,1,2,2,2,2,2,2,2,1,0,0,0,0,0,0,3,3,1,3,0,1,2,2,2,1,0,0,3,3,2,2,2],"background deckle:0,0,background deckle wall:1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,\n0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,background counter counterfill:2,0,background counter:3,0,\n3,0,3,0,3,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,\n0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,a_down background deckle:4,4,4,4,a_right background deckle:5,5,5,5,5,5,5,4,4,4,4,1,1,4,4,\n4,4,a_right background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_s:6,a_up background deckle quelle_kreuzung quelle_verbindung_n quelle_verbindung_s:7,7,7,7,7,a_up background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_n:8,a_up background deckle:9,4,4,4,1,1,4,4,4,4,a_right background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_w:10,5,\n5,5,a_left background deckle:11,11,a_left background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_w:12,9,4,4,4,1,1,4,4,4,a_down background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_s:13,a_down background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_n quelle_verbindung_s quelle_verbindung_w:14,a_down background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_n quelle_verbindung_s:15,a_down background deckle quelle_kreuzung quelle_verbindung_n quelle_verbindung_s:16,background deckle player quelle_kreuzung quelle_verbindung_n:17,9,11,\n12,4,4,4,4,1,1,4,4,4,a_left background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_s quelle_verbindung_w:18,background deckle quelle:19,a_left background deckle quelle_kreuzung quelle_verbindung_n quelle_verbindung_w:20,11,11,4,6,19,a_down background deckle quelle_kreuzung quelle_verbindung_n:21,9,4,\n4,1,1,4,4,4,a_left background deckle quelle_kreuzung quelle_verbindung_s quelle_verbindung_w:22,a_up background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_n quelle_verbindung_w:23,9,5,5,5,a_right background deckle quelle_kreuzung quelle_verbindung_e quelle_verbindung_s quelle_verbindung_w:24,a_up background deckle quelle_kreuzung quelle_verbindung_n quelle_verbindung_w:25,5,9,11,11,1,1,4,\n4,4,11,22,7,7,7,7,23,9,9,4,5,5,1,1,4,4,4,4,11,\n11,11,11,11,12,9,4,4,4,4,1,1,4,4,9,4,5,5,9,9,4,\n12,9,4,4,4,4,1,1,9,9,4,5,4,9,4,4,4,18,8,4,4,\n4,4,1,1,4,4,4,4,4,4,9,9,4,22,19,21,9,9,9,1,1,\n11,11,5,4,4,11,4,4,4,11,a_right background deckle quelle_kreuzung quelle_verbindung_w:26,11,5,4,4,1,1,5,5,9,11,\n11,5,9,9,9,11,11,5,9,11,11,1,1,9,9,4,5,11,9,4,4,\n4,5,11,9,4,5,5,1,1,4,4,4,4,4,4,4,4,4,4,4,4,\n4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n",1,"1627892456324.3245"] ], [ - "NIGHTMARECROBAN", - ["title NIGHTMARECROBAN\nauthor increpare \nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnoaction\n\ncolor_palette 13\n\nbackground_color black\ntext_color darkblue\n\n(remixes of levels from david skinner's microban using https://dekeyser.ch/puzzlescriptmis/ )\n\n\n========\nOBJECTS\n========\n\nBackground\nblack black\n11111\n01111\n11101\n11111\n10111\n\n\nziel\nlightblue\n.....\n.000.\n.000.\n.000.\n.....\n\nWall\n darkblue darkgray\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nred\n00.00\n0...0\n.....\n0...0\n00.00\n\nCrate\nyellow\n.000.\n0...0\n0...0\n0...0\n.000.\n\n\np_u u\ngray\n.....\n..0..\n.0.0.\n.....\n.....\n\np_d d\ngray\n.....\n.....\n.0.0.\n..0..\n.....\n\np_l l \ngray\n.....\n..0..\n.0...\n..0..\n.....\n\np_r r\ngray\n.....\n..0..\n...0.\n..0..\n.....\n\ntick\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player and p_u\n* = Crate and p_u\nz = ziel and p_u\ntarget = ziel\no = ziel and p_u\n@ = crate and p_u and ziel\n\npfeil = p_d or p_u or p_l or p_r\n\nw = crate and p_u\ns = crate and p_d\na = crate and p_l\nt = crate and p_r\n\n\ni = crate and p_u and ziel\nk = crate and p_d and ziel\nj = crate and p_l and ziel\ny = crate and p_r and ziel\n\n\n\n1 = p_u and ziel\n2 = p_d and ziel\n3 = p_l and ziel\n4 = p_r and ziel\n\nobstacle = crate or wall or player\n\n\ninanimate = wall or Crate\n\n\n0 = player and p_l\n5 = player and p_r\n6 = ziel and player and p_d\n7 = player and p_u\n8 = player and p_d\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 11944102\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nziel\nPlayer, Wall, Crate\npfeil\ntick\n\n======\nRULES\n======\n\nup [ crate p_u tick | no inanimate ] -> [ p_u > crate | ]\ndown [ crate p_d tick | no inanimate ] -> [ p_d > crate | ]\nleft [ crate p_l tick | no inanimate ] -> [ p_l > crate | ]\nright [ crate p_r tick | no inanimate ] -> [ p_r > crate | ]\n\n[> crate | player ] -> [ > crate | > player ]\n[tick]->[]\n\n\n[ > player | crate ] -> [ > player | > crate > tick] again\n\n[ > obstacle | stationary obstacle ] -> cancel\n\n\nlate up [ crate p_u tick | inanimate ] -> [ p_u crate |inanimate ]\nlate down [ crate p_d tick | inanimate ] -> [ p_d crate | inanimate]\nlate left [ crate p_l tick | inanimate ] -> [ p_l crate | inanimate]\nlate right [ crate p_r tick | inanimate ] -> [ p_r crate | inanimate]\n\n\n==============\nWINCONDITIONS\n==============\n\nall crate on ziel\nno tick\n\n=======\nLEVELS\n=======\n\n\n\nmessage level 1 of 7\n(ok level 1)\n####..\n#lu#..\n#sl###\n#r8kr#\n#lll2#\n#dl###\n####..\n\n\nmessage level 2 of 7\n(ok level 2)\n######\n#lu3l#\n#a#rl#\n#rlkd#\n#wdrd#\n#84dl#\n######\n\n\n\nmessage level 3 of 7\n(easy, level 2isch)\n########\n#rwr4ud#\n#2ddidl#\n#u8lrua#\n#####ud#\n....####\n\n\nmessage level 4 of 7\n(tricky/meh, but ok level 3)\n..####...\n###rd####\n#8rrl1u4#\n#d#ls#wd#\n#llur#rr#\n#########\n\n\n\n\nmessage level 5 of 7\n(ok penultimate)\n######.#####\n#rlrk###rdl#\n#lsruru5d#r#\n#ua1#ld4lrr#\n#rru########\n#####.......\n\n\n\n(ok final level)\nmessage level 6 of 7\n\n.#######\n.#rddtr#\n.#d2dlr#\n##durwd#\n#dr1sdd#\n#lrkd6r#\n########\n\n\n(final)\nmessage level 7 of 7\n\n#######\n#lrrll#\n#u4w2r#\n#d13wa#\n#udt35#\n#3drtu#\n#uwllr#\n#######\n\n\n\n\nmessage You won. I'm so sorry!\n\n\n(\n\n==========\nGENERATION\n==========\n\n[pfeil]->[]\n\nchoose 2 [Crate][Target] -> [][]\nchoose 2 [No Wall No Player no crate ][No Wall No Player no target] -> [Crate][Target]\n\n\nchoose 200 option 0.2 [ no wall no pfeil ] -> [ p_u ]\n+ option 0.2 [ no wall no pfeil ] -> [ p_d ]\n+ option 0.2 [ no wall no pfeil ] -> [ p_l ]\n+ option 0.2 [ no wall no pfeil ] -> [ p_r ]\n\n\nchoose 1 [ player ] [ no player no wall no crate ] -> [ ] [ player ]\n\n)\n", [0, 1, 1, 0, 0, 3, 2, 3, 2, 0, 3, 2, "undo", 1, 2, 2, 2, 3, 0, 0, 1, 0, 1, 2, 3, 2, 2, 1, 0], "background:0,background wall:1,1,1,1,1,0,1,background p_d:2,\n2,background p_l:3,1,1,1,background p_r:4,1,3,1,\n1,4,4,background p_l player:5,background p_u:6,1,1,2,background crate p_l:7,\n2,4,1,1,1,background p_u ziel:8,1,1,1,\n0,1,6,background crate p_u:9,4,1,0,1,background p_r ziel:10,\n2,4,1,0,1,1,1,1,1,\n", 7, "1627892520679.5837"] + "NIGHTMARECROBAN", + ["title NIGHTMARECROBAN\nauthor increpare \nhomepage www.increpare.com\n\nrun_rules_on_level_start\nnoaction\n\ncolor_palette 13\n\nbackground_color black\ntext_color darkblue\n\n(remixes of levels from david skinner's microban using https://dekeyser.ch/puzzlescriptmis/ )\n\n\n========\nOBJECTS\n========\n\nBackground\nblack black\n11111\n01111\n11101\n11111\n10111\n\n\nziel\nlightblue\n.....\n.000.\n.000.\n.000.\n.....\n\nWall\n darkblue darkgray\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nred\n00.00\n0...0\n.....\n0...0\n00.00\n\nCrate\nyellow\n.000.\n0...0\n0...0\n0...0\n.000.\n\n\np_u u\ngray\n.....\n..0..\n.0.0.\n.....\n.....\n\np_d d\ngray\n.....\n.....\n.0.0.\n..0..\n.....\n\np_l l \ngray\n.....\n..0..\n.0...\n..0..\n.....\n\np_r r\ngray\n.....\n..0..\n...0.\n..0..\n.....\n\ntick\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player and p_u\n* = Crate and p_u\nz = ziel and p_u\ntarget = ziel\no = ziel and p_u\n@ = crate and p_u and ziel\n\npfeil = p_d or p_u or p_l or p_r\n\nw = crate and p_u\ns = crate and p_d\na = crate and p_l\nt = crate and p_r\n\n\ni = crate and p_u and ziel\nk = crate and p_d and ziel\nj = crate and p_l and ziel\ny = crate and p_r and ziel\n\n\n\n1 = p_u and ziel\n2 = p_d and ziel\n3 = p_l and ziel\n4 = p_r and ziel\n\nobstacle = crate or wall or player\n\n\ninanimate = wall or Crate\n\n\n0 = player and p_l\n5 = player and p_r\n6 = ziel and player and p_d\n7 = player and p_u\n8 = player and p_d\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 11944102\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nziel\nPlayer, Wall, Crate\npfeil\ntick\n\n======\nRULES\n======\n\nup [ crate p_u tick | no inanimate ] -> [ p_u > crate | ]\ndown [ crate p_d tick | no inanimate ] -> [ p_d > crate | ]\nleft [ crate p_l tick | no inanimate ] -> [ p_l > crate | ]\nright [ crate p_r tick | no inanimate ] -> [ p_r > crate | ]\n\n[> crate | player ] -> [ > crate | > player ]\n[tick]->[]\n\n\n[ > player | crate ] -> [ > player | > crate > tick] again\n\n[ > obstacle | stationary obstacle ] -> cancel\n\n\nlate up [ crate p_u tick | inanimate ] -> [ p_u crate |inanimate ]\nlate down [ crate p_d tick | inanimate ] -> [ p_d crate | inanimate]\nlate left [ crate p_l tick | inanimate ] -> [ p_l crate | inanimate]\nlate right [ crate p_r tick | inanimate ] -> [ p_r crate | inanimate]\n\n\n==============\nWINCONDITIONS\n==============\n\nall crate on ziel\nno tick\n\n=======\nLEVELS\n=======\n\n\n\nmessage level 1 of 7\n(ok level 1)\n####..\n#lu#..\n#sl###\n#r8kr#\n#lll2#\n#dl###\n####..\n\n\nmessage level 2 of 7\n(ok level 2)\n######\n#lu3l#\n#a#rl#\n#rlkd#\n#wdrd#\n#84dl#\n######\n\n\n\nmessage level 3 of 7\n(easy, level 2isch)\n########\n#rwr4ud#\n#2ddidl#\n#u8lrua#\n#####ud#\n....####\n\n\nmessage level 4 of 7\n(tricky/meh, but ok level 3)\n..####...\n###rd####\n#8rrl1u4#\n#d#ls#wd#\n#llur#rr#\n#########\n\n\n\n\nmessage level 5 of 7\n(ok penultimate)\n######.#####\n#rlrk###rdl#\n#lsruru5d#r#\n#ua1#ld4lrr#\n#rru########\n#####.......\n\n\n\n(ok final level)\nmessage level 6 of 7\n\n.#######\n.#rddtr#\n.#d2dlr#\n##durwd#\n#dr1sdd#\n#lrkd6r#\n########\n\n\n(final)\nmessage level 7 of 7\n\n#######\n#lrrll#\n#u4w2r#\n#d13wa#\n#udt35#\n#3drtu#\n#uwllr#\n#######\n\n\n\n\nmessage You won. I'm so sorry!\n\n\n(\n\n==========\nGENERATION\n==========\n\n[pfeil]->[]\n\nchoose 2 [Crate][Target] -> [][]\nchoose 2 [No Wall No Player no crate ][No Wall No Player no target] -> [Crate][Target]\n\n\nchoose 200 option 0.2 [ no wall no pfeil ] -> [ p_u ]\n+ option 0.2 [ no wall no pfeil ] -> [ p_d ]\n+ option 0.2 [ no wall no pfeil ] -> [ p_l ]\n+ option 0.2 [ no wall no pfeil ] -> [ p_r ]\n\n\nchoose 1 [ player ] [ no player no wall no crate ] -> [ ] [ player ]\n\n)\n",[0,1,1,0,0,3,2,3,2,0,3,2,"undo",1,2,2,2,3,0,0,1,0,1,2,3,2,2,1,0],"background:0,background wall:1,1,1,1,1,0,1,background p_d:2,\n2,background p_l:3,1,1,1,background p_r:4,1,3,1,\n1,4,4,background p_l player:5,background p_u:6,1,1,2,background crate p_l:7,\n2,4,1,1,1,background p_u ziel:8,1,1,1,\n0,1,6,background crate p_u:9,4,1,0,1,background p_r ziel:10,\n2,4,1,0,1,1,1,1,1,\n",7,"1627892520679.5837"] ], [ - "Scalesoban", - ["title Scalesoban\nauthor increpare - remix of David Skinner's Microban\nhomepage www.increpare.com\n\n(\n\ntaking the levels from an existing sokoban set and changing the rules\n\n)\n\ncolor_palette 6\n\ntext_color yellow\n\n========\nOBJECTS\n========\n\nBackground\nblack black black\n11111\n01111\n11201\n11111\n10111\n\n\nTarget\nblue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkred darkred\n00010\n11111\n01000\n11111\n00010\n\nPlayer\ngreen green green green\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\ntag\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\nobstacle = wall or crate\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ntag\n======\nRULES\n======\n\n(\n[ > Player | Crate ] -> [ > Player | > Crate ]\nrandom [ > player | > crate ] [ stationary crate ] -> [ > crate | > crate ] [ player ]\n)\n\n\n[ > player | wall ] -> cancel \n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n[ > crate | wall] -> cancel\n[ > crate | crate ] -> cancel\n\n[ > player | > crate ] [stationary crate] -> [> player | > crate ] [< crate ]\n\n[ > player | > crate | | < crate ] -> [ > player | > crate | | crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nno tag\n\n=======\nLEVELS\n=======\n\n\n\nmessage level 1 of 3\n\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\n\n\nmessage level 2 of 3\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\nmessage level 3 of 3\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n\n(\nimpossibly hard:\n\n\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\n)\n\nmessage congratulations!\n\n", [3, 0, 0, 1, 1, 1, 0, 1, 2, 2, 3, 2, 1, 0, 0, 1, 1, 2, 2, 3, 3], "background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,background target:2,1,\n1,0,0,0,background player:3,1,1,0,0,\n0,background crate target:4,1,1,1,background crate:5,1,1,1,\n0,1,0,0,0,1,0,1,0,\n0,0,1,0,1,1,1,1,1,\n", 5, "1627892538124.7505"] + "Scalesoban", + ["title Scalesoban\nauthor increpare - remix of David Skinner's Microban\nhomepage www.increpare.com\n\n(\n\ntaking the levels from an existing sokoban set and changing the rules\n\n)\n\ncolor_palette 6\n\ntext_color yellow\n\n========\nOBJECTS\n========\n\nBackground\nblack black black\n11111\n01111\n11201\n11111\n10111\n\n\nTarget\nblue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkred darkred\n00010\n11111\n01000\n11111\n00010\n\nPlayer\ngreen green green green\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\ntag\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\nobstacle = wall or crate\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ntag\n======\nRULES\n======\n\n(\n[ > Player | Crate ] -> [ > Player | > Crate ]\nrandom [ > player | > crate ] [ stationary crate ] -> [ > crate | > crate ] [ player ]\n)\n\n\n[ > player | wall ] -> cancel \n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n[ > crate | wall] -> cancel\n[ > crate | crate ] -> cancel\n\n[ > player | > crate ] [stationary crate] -> [> player | > crate ] [< crate ]\n\n[ > player | > crate | | < crate ] -> [ > player | > crate | | crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nno tag\n\n=======\nLEVELS\n=======\n\n\n\nmessage level 1 of 3\n\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\n\n\nmessage level 2 of 3\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\nmessage level 3 of 3\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n\n(\nimpossibly hard:\n\n\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\n)\n\nmessage congratulations!\n\n",[3,0,0,1,1,1,0,1,2,2,3,2,1,0,0,1,1,2,2,3,3],"background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,background target:2,1,\n1,0,0,0,background player:3,1,1,0,0,\n0,background crate target:4,1,1,1,background crate:5,1,1,1,\n0,1,0,0,0,1,0,1,0,\n0,0,1,0,1,1,1,1,1,\n",5,"1627892538124.7505"] ], [ - "Vexatious Match 3", - ["title Vexatious Match 3 \nauthor increpare [riff on something from Jack Lance's VEXT EDIT]\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nnorepeat_action\n\nbackground_color darkblue\n\n\n(\n\nHEAVILY INSPIRED BY VEXT EDIT by the inimitable https://twitter.com/Jack_L_Lance/status/1149348574750269440\n\nmade with the assistance of these two tools:\n\n\nhttps://dekeyser.ch/puzzlescriptmis/\n\n\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\n\nplacecursor\nlightblue\n0...0\n.....\n.....\n.....\n0...0\n\nselectcuror_top\ngray\n0...0\n.....\n.....\n.....\n.....\n\nselectcuror_bottom\ngray\n.....\n.....\n.....\n.....\n0...0\n\n\n1\nred\n.....\n.....\n..0..\n.....\n.....\n\n\n2\norange\n.....\n.0...\n.....\n...0.\n.....\n\n\n3\nyellow\n.....\n.0...\n..0..\n...0.\n.....\n\n4\ngreen\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\n5\nblue\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\n\n6\npink pink\n.....\n.010.\n.....\n.010.\n.....\n\n\n7\nyellow orange\n.....\n.010.\n..0..\n.010.\n.....\n\n\n8\nyellow orange\n.....\n.010.\n.1.1.\n.010.\n.....\n\n\n9\nyellow orange\n.....\n.010.\n.101.\n.010.\n.....\n\ntophighlight \ndarkgreen\n\nbottomhighlight\ndarkgray\n\nwintoken\nlightblue\n\ncursorglow_upper\nyellow\n0...0\n.....\n.....\n.....\n.....\n\ncursorglow_lower\nyellow\n.....\n.....\n.....\n.....\n0...0\n\n=======\nLEGEND\n=======\n\nplayer = selectcuror_top or selectcuror_bottom or placecursor\n. = Background\np = selectcuror_top\n\nnum = 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9\nbignum = 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 \n\n\n0 = selectcuror_top and 2\na = selectcuror_bottom and 4\nb = selectcuror_bottom and 2\nc = selectcuror_bottom\nd = selectcuror_top and 4\ne = selectcuror_bottom and 1\nf = selectcuror_top and 6\ng = selectcuror_bottom and 5\nh = selectcuror_top and 1 and cursorglow_upper\ni = selectcuror_bottom and 2 and cursorglow_lower\n! = selectcuror_top and 5\n\n\n=======\nSOUNDS\n=======\n\nsfx1 40752500 (match3)\nsfx2 72680706 (select)\nsfx3 69295706 (deselect)\nsfx4 99783507 (setzt)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ntophighlight, bottomhighlight\nwintoken\nPlayer\nnum\ncursorglow_upper, cursorglow_lower\n======\nRULES\n======\n\n[cursorglow_upper]->[]\n[cursorglow_lower]->[]\n\ndown [ action selectcuror_top num | selectcuror_bottom num ] -> [ placecursor tophighlight num | bottomhighlight num ] sfx2\n\n\n\ndown [ action placecursor num | ] [ tophighlight | bottomhighlight] -> [ selectcuror_top num | selectcuror_bottom ] [ | ] sfx3\n\ndown [ | action placecursor num ] [ tophighlight | bottomhighlight] -> [selectcuror_top | selectcuror_bottom num ] [ | ] sfx3\n\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 1 ] -> [ selectcuror_top num ] [ ] [ ] sfx3 sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 2 ] -> [ placecursor num ] [tophighlight num] [ bottomhighlight 1] sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 3 ] -> [ placecursor num ] [tophighlight num][ bottomhighlight 2] sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 4 ] -> [ placecursor num ] [tophighlight num][ bottomhighlight 3] sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 5 ] -> [ placecursor num ] [tophighlight num][ bottomhighlight 4] sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 6 ] -> [ placecursor num ] [tophighlight num][ bottomhighlight 5] sfx4\n\n\n\n(\n[wintoken]->[]\n\nlate [ 1|1|1]->[wintoken 1|wintoken 1|wintoken 1] sfx1 \nlate [ 2|2|2]->[wintoken 2|wintoken 2|wintoken 2] sfx1 \nlate [ 3|3|3]->[wintoken 3|wintoken 3|wintoken 3] sfx1 \nlate [ 4|4|4]->[wintoken 4|wintoken 4|wintoken 4] sfx1 \nlate [ 5|5|5]->[wintoken 5|wintoken 5|wintoken 5] sfx1 \nlate [ 6|6|6]->[wintoken 6|wintoken 6|wintoken 6] sfx1 \n\nlate [wintoken num]->[]\n)\n\n[wintoken num]->[]\n\nlate [ 1|1|1]->[wintoken 1|wintoken 1|wintoken 1] sfx1 again\nlate [ 2|2|2]->[wintoken 2|wintoken 2|wintoken 2] sfx1 again\nlate [ 3|3|3]->[wintoken 3|wintoken 3|wintoken 3] sfx1 again\nlate [ 4|4|4]->[wintoken 4|wintoken 4|wintoken 4] sfx1 again\nlate [ 5|5|5]->[wintoken 5|wintoken 5|wintoken 5] sfx1 again\nlate [ 6|6|6]->[wintoken 6|wintoken 6|wintoken 6] sfx1 again\n\n\n\n\nlate down [ selectcuror_top num | selectcuror_bottom num ] -> [ selectcuror_top num cursorglow_upper | selectcuror_bottom num cursorglow_lower]\n\nlate down [ tophighlight no num | bottomhighlight ] [ placecursor | ] -> [ | ] [ selectcuror_top | ] sfx3\nlate down [ tophighlight | bottomhighlight no num ] [ placecursor | ] -> [ | ] [ selectcuror_top | ] sfx3\n\nlate down [ tophighlight no num | bottomhighlight ] [ | placecursor ] -> [ | ] [ selectcuror_top | ] sfx3\nlate down [ tophighlight | bottomhighlight no num ] [ | placecursor] -> [ | ] [ selectcuror_top | ] sfx3\n\n\n\nlate [selectcuror_bottom]->[]\nlate down [ selectcuror_top|]->[selectcuror_top|selectcuror_bottom]\n\n\n==============\nWINCONDITIONS\n==============\n\nno num\n(some wintoken)\n\n=======\nLEVELS\n=======\n\nmessage Get three in a row to make them vanish. Clear the board to win.\n\nmessage level 1 of 5\n.......\n.......\n..123..\n.p456..\n.c.....\n.......\n\n\nmessage level 2 of 5\n.......\n.......\n...0...\n...i...\n.......\n.......\n\nmessage Level 3 of 5\n\n(messy but ok)\n.f.\n.6.\n...\n22.\n\n\n\nmessage Level 4 of 5\n\n22.5\n...5\np...\nc.55\n\nmessage Level 5 of 5\n(OK!)\np51\nc.5\n\n\nmessage The end :) Lesson Learned? You don't need to choose between being a numerator and being a denominator : you can be both!\n\n\n(\n...1...\n...2...\n...3...\n.p.4...\n...5...\n...6...\n\n\n66..\n.5p.\n.5c.\n33..\n\n....\n.p6.\n.c6.\n....\n\n\n...\n.f.\n.6.\n...\n\n...\n2.p\n266\n...\n\n5p1\n2c1\n\n16p\n.2c\n\n\n(easy but tractible?)\n\n3p1\t\n.c4\n\n\n501\n.c2\n\n\n\np61\nc.5\n\np61\nc.2\n\n.h6\n.i2\n\n4p3.\n3c..\n\n50..\n6c.1\n\n.p.\n...\n\n.p..\n....\n\n\n.p...\n.....\n\n\n\n.p....\n......\n\n46p\n2.c\n..4\n\n(hard?)\n.4f\n.1c\n..4\n\n\n5.d\n.4e\n..6\n\n..5\n..d\n..c\n3.6\n\n\n\n5.p\n..b\n2.3\n\n(hard?)\n.2p\n.4c\n...\n\n\n5.d\n.4e\n..6\n\n..5\n..d\n..c\n3.6\n\n\n\n.4p\n.4.\n...\n\n.......\n.......\n..6.p..\n..6....\n.......\n.......\n\n\n.......\n.......\n..6.p..\n..6....\n.......\n.......\n\n5p.\n..2\n2.3\n\n\n3p2\n.21\n23.\n\np.2\n.21\n...\n\n..p\n...\n...\n\n(hard?)\n62.\n4p5\n..4\n\n\n..p\n...\n...\n\n...\n..p\n...\n...\n\n....\n..p.\n....\n....\n\n......\n....p.\n..22..\n..11..\n......\n......\n\n\n(hard?)\n\n......\n....5p\n...1..\n......\n2.....\n2...5.\n\n\n\n5p1\n2c1\n\n)\n\n\n(\n\n\n==========\nGENERATION\n==========\n\n[num]->[]\n= remove one crate/target pair if it exists and add one\nchoose 1 option 0.1 []->[1]\n+ option 0.1 []->[2]\n+ option 0.1 []->[3]\n+ option 0.1 []->[4]\n+ option 0.1 []->[5]\n+ option 0.1 []->[6]\n\n)\n", [2, 1, 0, 3, 2, 0, 0, 3, 3, 4, 1, 2, 1, 0, 4, 3, 3, 4, 1, 4, 2, 4, 2, 4, 1, 0, 3, 0, 4, "undo", 2, 1, 4, 1, 2, 3, 4], "2 background:0,background:1,1,1,\n0,5 background:2,5 background selectcuror_top:3,background selectcuror_bottom:4,\n1,1,1,1,\n1,1,1,2,\n", 8, "1627892551428.3667"] + "Vexatious Match 3", + ["title Vexatious Match 3 \nauthor increpare [riff on something from Jack Lance's VEXT EDIT]\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nnorepeat_action\n\nbackground_color darkblue\n\n\n(\n\nHEAVILY INSPIRED BY VEXT EDIT by the inimitable https://twitter.com/Jack_L_Lance/status/1149348574750269440\n\nmade with the assistance of these two tools:\n\n\nhttps://dekeyser.ch/puzzlescriptmis/\n\n\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\n\nplacecursor\nlightblue\n0...0\n.....\n.....\n.....\n0...0\n\nselectcuror_top\ngray\n0...0\n.....\n.....\n.....\n.....\n\nselectcuror_bottom\ngray\n.....\n.....\n.....\n.....\n0...0\n\n\n1\nred\n.....\n.....\n..0..\n.....\n.....\n\n\n2\norange\n.....\n.0...\n.....\n...0.\n.....\n\n\n3\nyellow\n.....\n.0...\n..0..\n...0.\n.....\n\n4\ngreen\n.....\n.0.0.\n.....\n.0.0.\n.....\n\n\n5\nblue\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\n\n6\npink pink\n.....\n.010.\n.....\n.010.\n.....\n\n\n7\nyellow orange\n.....\n.010.\n..0..\n.010.\n.....\n\n\n8\nyellow orange\n.....\n.010.\n.1.1.\n.010.\n.....\n\n\n9\nyellow orange\n.....\n.010.\n.101.\n.010.\n.....\n\ntophighlight \ndarkgreen\n\nbottomhighlight\ndarkgray\n\nwintoken\nlightblue\n\ncursorglow_upper\nyellow\n0...0\n.....\n.....\n.....\n.....\n\ncursorglow_lower\nyellow\n.....\n.....\n.....\n.....\n0...0\n\n=======\nLEGEND\n=======\n\nplayer = selectcuror_top or selectcuror_bottom or placecursor\n. = Background\np = selectcuror_top\n\nnum = 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9\nbignum = 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 \n\n\n0 = selectcuror_top and 2\na = selectcuror_bottom and 4\nb = selectcuror_bottom and 2\nc = selectcuror_bottom\nd = selectcuror_top and 4\ne = selectcuror_bottom and 1\nf = selectcuror_top and 6\ng = selectcuror_bottom and 5\nh = selectcuror_top and 1 and cursorglow_upper\ni = selectcuror_bottom and 2 and cursorglow_lower\n! = selectcuror_top and 5\n\n\n=======\nSOUNDS\n=======\n\nsfx1 40752500 (match3)\nsfx2 72680706 (select)\nsfx3 69295706 (deselect)\nsfx4 99783507 (setzt)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ntophighlight, bottomhighlight\nwintoken\nPlayer\nnum\ncursorglow_upper, cursorglow_lower\n======\nRULES\n======\n\n[cursorglow_upper]->[]\n[cursorglow_lower]->[]\n\ndown [ action selectcuror_top num | selectcuror_bottom num ] -> [ placecursor tophighlight num | bottomhighlight num ] sfx2\n\n\n\ndown [ action placecursor num | ] [ tophighlight | bottomhighlight] -> [ selectcuror_top num | selectcuror_bottom ] [ | ] sfx3\n\ndown [ | action placecursor num ] [ tophighlight | bottomhighlight] -> [selectcuror_top | selectcuror_bottom num ] [ | ] sfx3\n\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 1 ] -> [ selectcuror_top num ] [ ] [ ] sfx3 sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 2 ] -> [ placecursor num ] [tophighlight num] [ bottomhighlight 1] sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 3 ] -> [ placecursor num ] [tophighlight num][ bottomhighlight 2] sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 4 ] -> [ placecursor num ] [tophighlight num][ bottomhighlight 3] sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 5 ] -> [ placecursor num ] [tophighlight num][ bottomhighlight 4] sfx4\n[ action placecursor no num ] [ tophighlight num ] [ bottomhighlight 6 ] -> [ placecursor num ] [tophighlight num][ bottomhighlight 5] sfx4\n\n\n\n(\n[wintoken]->[]\n\nlate [ 1|1|1]->[wintoken 1|wintoken 1|wintoken 1] sfx1 \nlate [ 2|2|2]->[wintoken 2|wintoken 2|wintoken 2] sfx1 \nlate [ 3|3|3]->[wintoken 3|wintoken 3|wintoken 3] sfx1 \nlate [ 4|4|4]->[wintoken 4|wintoken 4|wintoken 4] sfx1 \nlate [ 5|5|5]->[wintoken 5|wintoken 5|wintoken 5] sfx1 \nlate [ 6|6|6]->[wintoken 6|wintoken 6|wintoken 6] sfx1 \n\nlate [wintoken num]->[]\n)\n\n[wintoken num]->[]\n\nlate [ 1|1|1]->[wintoken 1|wintoken 1|wintoken 1] sfx1 again\nlate [ 2|2|2]->[wintoken 2|wintoken 2|wintoken 2] sfx1 again\nlate [ 3|3|3]->[wintoken 3|wintoken 3|wintoken 3] sfx1 again\nlate [ 4|4|4]->[wintoken 4|wintoken 4|wintoken 4] sfx1 again\nlate [ 5|5|5]->[wintoken 5|wintoken 5|wintoken 5] sfx1 again\nlate [ 6|6|6]->[wintoken 6|wintoken 6|wintoken 6] sfx1 again\n\n\n\n\nlate down [ selectcuror_top num | selectcuror_bottom num ] -> [ selectcuror_top num cursorglow_upper | selectcuror_bottom num cursorglow_lower]\n\nlate down [ tophighlight no num | bottomhighlight ] [ placecursor | ] -> [ | ] [ selectcuror_top | ] sfx3\nlate down [ tophighlight | bottomhighlight no num ] [ placecursor | ] -> [ | ] [ selectcuror_top | ] sfx3\n\nlate down [ tophighlight no num | bottomhighlight ] [ | placecursor ] -> [ | ] [ selectcuror_top | ] sfx3\nlate down [ tophighlight | bottomhighlight no num ] [ | placecursor] -> [ | ] [ selectcuror_top | ] sfx3\n\n\n\nlate [selectcuror_bottom]->[]\nlate down [ selectcuror_top|]->[selectcuror_top|selectcuror_bottom]\n\n\n==============\nWINCONDITIONS\n==============\n\nno num\n(some wintoken)\n\n=======\nLEVELS\n=======\n\nmessage Get three in a row to make them vanish. Clear the board to win.\n\nmessage level 1 of 5\n.......\n.......\n..123..\n.p456..\n.c.....\n.......\n\n\nmessage level 2 of 5\n.......\n.......\n...0...\n...i...\n.......\n.......\n\nmessage Level 3 of 5\n\n(messy but ok)\n.f.\n.6.\n...\n22.\n\n\n\nmessage Level 4 of 5\n\n22.5\n...5\np...\nc.55\n\nmessage Level 5 of 5\n(OK!)\np51\nc.5\n\n\nmessage The end :) Lesson Learned? You don't need to choose between being a numerator and being a denominator : you can be both!\n\n\n(\n...1...\n...2...\n...3...\n.p.4...\n...5...\n...6...\n\n\n66..\n.5p.\n.5c.\n33..\n\n....\n.p6.\n.c6.\n....\n\n\n...\n.f.\n.6.\n...\n\n...\n2.p\n266\n...\n\n5p1\n2c1\n\n16p\n.2c\n\n\n(easy but tractible?)\n\n3p1\t\n.c4\n\n\n501\n.c2\n\n\n\np61\nc.5\n\np61\nc.2\n\n.h6\n.i2\n\n4p3.\n3c..\n\n50..\n6c.1\n\n.p.\n...\n\n.p..\n....\n\n\n.p...\n.....\n\n\n\n.p....\n......\n\n46p\n2.c\n..4\n\n(hard?)\n.4f\n.1c\n..4\n\n\n5.d\n.4e\n..6\n\n..5\n..d\n..c\n3.6\n\n\n\n5.p\n..b\n2.3\n\n(hard?)\n.2p\n.4c\n...\n\n\n5.d\n.4e\n..6\n\n..5\n..d\n..c\n3.6\n\n\n\n.4p\n.4.\n...\n\n.......\n.......\n..6.p..\n..6....\n.......\n.......\n\n\n.......\n.......\n..6.p..\n..6....\n.......\n.......\n\n5p.\n..2\n2.3\n\n\n3p2\n.21\n23.\n\np.2\n.21\n...\n\n..p\n...\n...\n\n(hard?)\n62.\n4p5\n..4\n\n\n..p\n...\n...\n\n...\n..p\n...\n...\n\n....\n..p.\n....\n....\n\n......\n....p.\n..22..\n..11..\n......\n......\n\n\n(hard?)\n\n......\n....5p\n...1..\n......\n2.....\n2...5.\n\n\n\n5p1\n2c1\n\n)\n\n\n(\n\n\n==========\nGENERATION\n==========\n\n[num]->[]\n= remove one crate/target pair if it exists and add one\nchoose 1 option 0.1 []->[1]\n+ option 0.1 []->[2]\n+ option 0.1 []->[3]\n+ option 0.1 []->[4]\n+ option 0.1 []->[5]\n+ option 0.1 []->[6]\n\n)\n",[2,1,0,3,2,0,0,3,3,4,1,2,1,0,4,3,3,4,1,4,2,4,2,4,1,0,3,0,4,"undo",2,1,4,1,2,3,4],"2 background:0,background:1,1,1,\n0,5 background:2,5 background selectcuror_top:3,background selectcuror_bottom:4,\n1,1,1,1,\n1,1,1,2,\n",8,"1627892551428.3667"] ], [ - "SLIME VAT FILLER", - ["title SLIME VAT FILLER\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color darkgreen\ntext_color yellow\n\nrun_rules_on_level_start\n\ncolor_palette 1\n\n========\nOBJECTS\n========\n\nBackground\ndarkblue\n\nwall\nblue\n\nplayer\npink red\n.000.\n.000.\n00000\n.111.\n.1.1.\n\nblob\ngreen darkgreen\n.000.\n01110\n01110\n01110\n.000.\n\n\nblob_l\ngreen darkgreen\n.0000\n01111\n00101\n01111\n.0000\n\n\nblob_r\ngreen darkgreen\n0000.\n11110\n10100\n11110\n0000.\n\n\nblob_u\ngreen darkgreen\n.000.\n01010\n01110\n01010\n01110\n\n\nblob_d\ngreen darkgreen\n01110\n01010\n01110\n01010\n.000.\n\nblob_h\ngreen darkgreen\n00000\n11111\n10101\n11111\n00000\n\nblob_v\ngreen darkgreen\n01110\n01010\n01110\n01010\n01110\n\n\n\ntarget \nyellow\n0...0\n.....\n.....\n.....\n0...0\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = wall\nP = Player\nb = blob\nl = blob_l\nr = blob_r\nu = blob_u\nd = blob_d\nh = blob_h\nv = blob_v\nt = target\n\nk = player and target\n\n\n* = blob\n@ = blob and Target\nO = Target\n\n\n\ngoostuff = blob or blob_l or blob_r or blob_u or blob_d or blob_h or blob_v\n\nobstacle = wall or goostuff\n\n0 = blob_l and target\n\n=======\nSOUNDS\n=======\nsfx1 78001905\nsfx2 95814301\nendlevel 17589703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, wall, goostuff\nTarget\n\n======\nRULES\n======\n\n\n\n(was passiert, wenn man in der mitte ist? -_-)\n\n(2x1 -> 1x1 )\n\nright [ > player | blob_l | blob_r ] -> [ > player | | blob ] sfx2\nleft [ > player | blob_r | blob_l ] -> [ > player | | blob ] sfx2\nup [ > player | blob_d | blob_u ] -> [ > player | | blob ] sfx2\ndown [ > player | blob_u | blob_d ] -> [ > player | | blob ] sfx2\n\n\n( (n+1)x1 -> (n)x1 )\n\nright [ > player | blob_l | blob_h ] -> [ > player | | blob_l ] sfx2\nleft [ > player | blob_r | blob_h ] -> [ > player | | blob_r ] sfx2\nup [ > player | blob_d | blob_v ] -> [ > player | | blob_d ] sfx2\ndown [ > player | blob_u | blob_v ] -> [ > player | | blob_u ] sfx2\n\n\n\n(1x1 -> 2x1)\nright [ no obstacle | < player | blob ] -> [ player | blob_l | blob_r ] sfx1\nleft [ no obstacle | < player | blob ] -> [ player | blob_r | blob_l ] sfx1\nup [ no obstacle | < player | blob ] -> [ player | blob_d | blob_u ] sfx1\ndown [ no obstacle | < player | blob ] -> [ player | blob_u | blob_d ] sfx1\n\n\n\n( (n)x1 -> (n+1)x1)\nright [ no obstacle | < player | blob_l ] -> [ player | blob_l | blob_h ] sfx1\nleft [ no obstacle | < player | blob_r ] -> [ player | blob_r | blob_h ] sfx1\nup [ no obstacle | < player | blob_d ] -> [ player | blob_d | blob_v ] sfx1\ndown [ no obstacle | < player | blob_u ] -> [ player | blob_u | blob_v ] sfx1\n\n\n([ > player | blob ] -> [ > player | > blob ])\n\n[ > goostuff | wall ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nall blob on target\nall goostuff on target\n\n=======\nLEVELS\n=======\n\nmessage Get the slime into the yellow vats! Fill all the vats this way with slime!\n\nmessage level 1 of 10\n######\n#....#\n#.b..#\n#....#\n#p.t.#\n#....#\n######\n\n\nmessage level 2 of 10\n\n######\n#....#\n#.tt.#\n#.bb.#\n#....#\n#.p..#\n######\n\nmessage level 3 of 10\n\n######\n#....#\n#...b#\n#.b.t#\n#..t.#\n#p...#\n######\n\n\nmessage level 4 of 10\n\n(Easy but ok)\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\nmessage level 5 of 10\n\n(hardish)\n####..\n#@.#..\n#..###\n#.t..#\n#..b.#\n#p.###\n####..\n\nmessage level 6 of 10\n\n#########\n#.......#\n#.......#\n#.b.t...#\n#.b.pt..#\n#.b...t.#\n#.......#\n#.......#\n#########\n\nmessage level 7 of 10\n(hard)\n######\n#....#\n#.#p.#\n#.b.b#\n#.t.t#\n#....#\n######\n\n\nmessage level 8 of 10\n(good, medium-hard)\n#########\n#.......#\n#.......#\n#...t...#\n#..tpt..#\n#...t...#\n#.......#\n#...b...#\n#..b.b..#\n#...b...#\n#.......#\n#.......#\n#########\n\nmessage level 9 of 10\n(not so hard, but 75% chance of being amusing?)\n#########\n#...#...#\n#.p.b.t.#\n#.......#\n##b.t.b##\n#.......#\n#.t.b.t.#\n#...#...#\n#########\n\nmessage level 10 of 10\n\nmessage MY PASSPORT HAS EXPIRED. I need to take a new photo. NO SILLY FACES ALLOWED.\n(cripes!)\n#######\n##...##\n#.b.b.#\n#.t.t.#\n#..@..#\n##p..##\n#######\n\nmessage Congratulations - you got your new passport\n\n........\n........\n...##...\n..####..\n..####..\n...##...\n........\n..####..\n........\n..####..\n........\n........\n\nmessage The End\n\n\n(\n\n\n########\n#......#\n#.p....#\n#..bbt.#\n#.t....#\n#......#\n########\n\n\n(early level?)\n########\n#...0r.#\n#.O.p..#\n#.lr...#\n#####..#\n....####\n\n\n\n\n(too easy)\n..####...\n###..####\n#.t....@#\n#.#b.#..#\n#....#p.#\n#########\n\n#########\n#...#...#\n#...b.t.#\n#.......#\n##b.t.b##\n#.......#\n#.tpb.t.#\n#...#...#\n#########\n\n\n#########\n#...u...#\n#...d...#\n#b.lhr.b#\n#...u...#\n#.p.v...#\n#...d...#\n#########\n\n#########\n#...#...#\n#.t.u.t.#\n#...d...#\n##b.lhr##\n#...u...#\n#.t.d.t.#\n#p..#...#\n#########\n\n\n#######\n#..u..#\n#..d..#\n#b.lhr#\n#..u..#\n#p.d..#\n#######\n\n##########\n#..uuuu..#\n#..dddd..#\n#lhhrplhr#\n#..uuuu..#\n#..dddd..#\n##########\n\n#########\n#...#...#\n#...u.t.#\n#...d...#\n##b.0hr##\n#...u...#\n#.t.d.t.#\n#.p.#...#\n#########\n\n#########\n#.......#\n#.......#\n#...t...#\n#..tpt..#\n#...t...#\n#.......#\n#...b...#\n#..b.b..#\n#...b...#\n#.......#\n#.......#\n#########\n\n#########\n#.......#\n#...t...#\n#..t.t..#\n#...t...#\n#.......#\n#...p...#\n#.......#\n#...b...#\n#..b.b..#\n#...b...#\n#.......#\n#########\n\n\n\n#########\n#.......#\n#..ttt..#\n#..t.t..#\n#..ttt..#\n#.......#\n#...p...#\n#.......#\n#..bbb..#\n#..b.b..#\n#..bbb..#\n#.......#\n#########\n\n\n######\n#....#\n#.b..#\n#....#\n#p.t.#\n#....#\n######\n\n\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######.#####\n#....###...#\n#........#p#\n#.bt#.tb...#\n#...########\n#####.......\n\nmessage level 2 of 10\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*O.#\n##.*P*.#\n#..O*O.#\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\n\n\n\n######\n#....#\n#.b0r#\n#...t#\n#.p..#\n######\n\n\n\n########\n#......#\n#.b....#\n#..tp..#\n#......#\n#......#\n########\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.lr....#\n#.t..p..#\n#@......#\n#########\n\n\n(soll schwierig sein)\n#######\n##...##\n#.b.b.#\n#.t.t.#\n#..@..#\n##p..##\n#######\n\n)\n\n(\n\n\n\nchoose 1 option 0.1 [no wall]->[wall]\n+ option 0.1 [wall]->[no wall]\n+ option 0.1 [target] [ no target no wall ] -> [ ] [ target ]\n+ option 0.1 [ target ] [ blob ] [ no target no wall ] [ no obstacle ] -> [ ] [ ] [ target ] [ blob ]\n\n\n(\n[target]->[]\n[blob]->[]\n[player]->[]\n)\n(\nchoose 1 [no wall] -> [ player ]\nchoose 1 option 0.1 [ no target no wall ] [ no obstacle ] -> [ target ] [ blob ]\n)\n(\nchoose 1 option 0.1 [no target ] -> [ target ]\noption 0.1 [ target | no target no wall] ->[target | target]\n)\n\n(choose 10 option 0.1 right [ no wall|blob | no obstacle|no wall] -> [| blob_l | blob_r |]\n+ option 0.1 down [ no wall|blob | no obstacle | no wall ] -> [ |blob_u | blob_d |]\n+ option 0.1 right [no wall| no obstacle | blob_l |no wall] -> [| blob_l | blob_h |]\n+ option 0.1 down [no wall| no obstacle | blob_u |no wall] -> [ |blob_u | blob_v |]\n+ option 0.1 []->[])\n\n\nchoose 4 [no wall no target ] -> [ target ]r\n\n\n\n()()()()()()()()\n\n\nchoose 1 [ no obstacle ] -> [ player ]\n\nchoose 1 [ no obstacle ] ->[blob target ]\n\n\nchoose 1 [ no obstacle ] [no target ] ->[blob] [target ]\n\nchoose 10 option 0.1 right [ |blob | no obstacle|] -> [| blob_l | blob_r |]\n+ option 0.1 down [ |blob | no obstacle | ] -> [ |blob_u | blob_d |]\n+ option 0.1 right [| no obstacle | blob_l |] -> [| blob_l | blob_h |]\n+ option 0.1 down [| no obstacle | blob_u |] -> [ |blob_u | blob_v |]\n+ option 0.1 []->[]\n\n\nright [ wall | blob_l | blob_h | blob_h | blob_r ] -> [ wall | blob_l | blob_h | blob_r | ]\ndown [ wall | blob_u | blob_h | blob_h | blob_l ] -> [ wall | blob_u | blob_h | blob_l | ]\n\n\n\n\n\n\n)\n\n", [2, 2, 1, 2, 3, 4, 1, 2, 2, 3, 1, 3, 1, 0, 1, 2, 2, 3, 0, 2, 3, 0, 1, 3, 3, 3, 3, 0, 0, 3, 2, 1, 0, 0, 3, 0, 0, 1, 0, 0, 0, 2, 2, 1, 1, 1, "restart", 2, 2, 0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 3, 2, 0, 0, 0, 0, 1, 0, 0, 3, 3, 3, 3, 2, 2, 2, 2, 1, 2, 2, 0, 0, 0, 0, 3, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 2, 2, 0, 0, 3, 2, 2, 2, 1, 1, 0, 0, 0, 0], "background wall:0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background:1,1,1,1,\n1,1,1,1,1,1,1,0,0,\n1,1,1,1,1,1,1,1,1,\n1,1,0,0,1,1,1,background blob_u target:2,background blob_v:3,\n3,3,background blob_d:4,1,1,1,0,0,1,\n1,background blob target:5,background player:6,2,3,3,3,4,1,\n1,0,0,1,1,1,5,1,1,\n1,1,1,1,1,0,0,1,1,\n1,1,1,1,1,1,1,1,1,\n0,0,1,1,1,1,1,1,1,\n1,1,1,1,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,\n", 16, "1627892574193.6548"] + "SLIME VAT FILLER", + ["title SLIME VAT FILLER\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color darkgreen\ntext_color yellow\n\nrun_rules_on_level_start\n\ncolor_palette 1\n\n========\nOBJECTS\n========\n\nBackground\ndarkblue\n\nwall\nblue\n\nplayer\npink red\n.000.\n.000.\n00000\n.111.\n.1.1.\n\nblob\ngreen darkgreen\n.000.\n01110\n01110\n01110\n.000.\n\n\nblob_l\ngreen darkgreen\n.0000\n01111\n00101\n01111\n.0000\n\n\nblob_r\ngreen darkgreen\n0000.\n11110\n10100\n11110\n0000.\n\n\nblob_u\ngreen darkgreen\n.000.\n01010\n01110\n01010\n01110\n\n\nblob_d\ngreen darkgreen\n01110\n01010\n01110\n01010\n.000.\n\nblob_h\ngreen darkgreen\n00000\n11111\n10101\n11111\n00000\n\nblob_v\ngreen darkgreen\n01110\n01010\n01110\n01010\n01110\n\n\n\ntarget \nyellow\n0...0\n.....\n.....\n.....\n0...0\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = wall\nP = Player\nb = blob\nl = blob_l\nr = blob_r\nu = blob_u\nd = blob_d\nh = blob_h\nv = blob_v\nt = target\n\nk = player and target\n\n\n* = blob\n@ = blob and Target\nO = Target\n\n\n\ngoostuff = blob or blob_l or blob_r or blob_u or blob_d or blob_h or blob_v\n\nobstacle = wall or goostuff\n\n0 = blob_l and target\n\n=======\nSOUNDS\n=======\nsfx1 78001905\nsfx2 95814301\nendlevel 17589703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, wall, goostuff\nTarget\n\n======\nRULES\n======\n\n\n\n(was passiert, wenn man in der mitte ist? -_-)\n\n(2x1 -> 1x1 )\n\nright [ > player | blob_l | blob_r ] -> [ > player | | blob ] sfx2\nleft [ > player | blob_r | blob_l ] -> [ > player | | blob ] sfx2\nup [ > player | blob_d | blob_u ] -> [ > player | | blob ] sfx2\ndown [ > player | blob_u | blob_d ] -> [ > player | | blob ] sfx2\n\n\n( (n+1)x1 -> (n)x1 )\n\nright [ > player | blob_l | blob_h ] -> [ > player | | blob_l ] sfx2\nleft [ > player | blob_r | blob_h ] -> [ > player | | blob_r ] sfx2\nup [ > player | blob_d | blob_v ] -> [ > player | | blob_d ] sfx2\ndown [ > player | blob_u | blob_v ] -> [ > player | | blob_u ] sfx2\n\n\n\n(1x1 -> 2x1)\nright [ no obstacle | < player | blob ] -> [ player | blob_l | blob_r ] sfx1\nleft [ no obstacle | < player | blob ] -> [ player | blob_r | blob_l ] sfx1\nup [ no obstacle | < player | blob ] -> [ player | blob_d | blob_u ] sfx1\ndown [ no obstacle | < player | blob ] -> [ player | blob_u | blob_d ] sfx1\n\n\n\n( (n)x1 -> (n+1)x1)\nright [ no obstacle | < player | blob_l ] -> [ player | blob_l | blob_h ] sfx1\nleft [ no obstacle | < player | blob_r ] -> [ player | blob_r | blob_h ] sfx1\nup [ no obstacle | < player | blob_d ] -> [ player | blob_d | blob_v ] sfx1\ndown [ no obstacle | < player | blob_u ] -> [ player | blob_u | blob_v ] sfx1\n\n\n([ > player | blob ] -> [ > player | > blob ])\n\n[ > goostuff | wall ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nall blob on target\nall goostuff on target\n\n=======\nLEVELS\n=======\n\nmessage Get the slime into the yellow vats! Fill all the vats this way with slime!\n\nmessage level 1 of 10\n######\n#....#\n#.b..#\n#....#\n#p.t.#\n#....#\n######\n\n\nmessage level 2 of 10\n\n######\n#....#\n#.tt.#\n#.bb.#\n#....#\n#.p..#\n######\n\nmessage level 3 of 10\n\n######\n#....#\n#...b#\n#.b.t#\n#..t.#\n#p...#\n######\n\n\nmessage level 4 of 10\n\n(Easy but ok)\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\nmessage level 5 of 10\n\n(hardish)\n####..\n#@.#..\n#..###\n#.t..#\n#..b.#\n#p.###\n####..\n\nmessage level 6 of 10\n\n#########\n#.......#\n#.......#\n#.b.t...#\n#.b.pt..#\n#.b...t.#\n#.......#\n#.......#\n#########\n\nmessage level 7 of 10\n(hard)\n######\n#....#\n#.#p.#\n#.b.b#\n#.t.t#\n#....#\n######\n\n\nmessage level 8 of 10\n(good, medium-hard)\n#########\n#.......#\n#.......#\n#...t...#\n#..tpt..#\n#...t...#\n#.......#\n#...b...#\n#..b.b..#\n#...b...#\n#.......#\n#.......#\n#########\n\nmessage level 9 of 10\n(not so hard, but 75% chance of being amusing?)\n#########\n#...#...#\n#.p.b.t.#\n#.......#\n##b.t.b##\n#.......#\n#.t.b.t.#\n#...#...#\n#########\n\nmessage level 10 of 10\n\nmessage MY PASSPORT HAS EXPIRED. I need to take a new photo. NO SILLY FACES ALLOWED.\n(cripes!)\n#######\n##...##\n#.b.b.#\n#.t.t.#\n#..@..#\n##p..##\n#######\n\nmessage Congratulations - you got your new passport\n\n........\n........\n...##...\n..####..\n..####..\n...##...\n........\n..####..\n........\n..####..\n........\n........\n\nmessage The End\n\n\n(\n\n\n########\n#......#\n#.p....#\n#..bbt.#\n#.t....#\n#......#\n########\n\n\n(early level?)\n########\n#...0r.#\n#.O.p..#\n#.lr...#\n#####..#\n....####\n\n\n\n\n(too easy)\n..####...\n###..####\n#.t....@#\n#.#b.#..#\n#....#p.#\n#########\n\n#########\n#...#...#\n#...b.t.#\n#.......#\n##b.t.b##\n#.......#\n#.tpb.t.#\n#...#...#\n#########\n\n\n#########\n#...u...#\n#...d...#\n#b.lhr.b#\n#...u...#\n#.p.v...#\n#...d...#\n#########\n\n#########\n#...#...#\n#.t.u.t.#\n#...d...#\n##b.lhr##\n#...u...#\n#.t.d.t.#\n#p..#...#\n#########\n\n\n#######\n#..u..#\n#..d..#\n#b.lhr#\n#..u..#\n#p.d..#\n#######\n\n##########\n#..uuuu..#\n#..dddd..#\n#lhhrplhr#\n#..uuuu..#\n#..dddd..#\n##########\n\n#########\n#...#...#\n#...u.t.#\n#...d...#\n##b.0hr##\n#...u...#\n#.t.d.t.#\n#.p.#...#\n#########\n\n#########\n#.......#\n#.......#\n#...t...#\n#..tpt..#\n#...t...#\n#.......#\n#...b...#\n#..b.b..#\n#...b...#\n#.......#\n#.......#\n#########\n\n#########\n#.......#\n#...t...#\n#..t.t..#\n#...t...#\n#.......#\n#...p...#\n#.......#\n#...b...#\n#..b.b..#\n#...b...#\n#.......#\n#########\n\n\n\n#########\n#.......#\n#..ttt..#\n#..t.t..#\n#..ttt..#\n#.......#\n#...p...#\n#.......#\n#..bbb..#\n#..b.b..#\n#..bbb..#\n#.......#\n#########\n\n\n######\n#....#\n#.b..#\n#....#\n#p.t.#\n#....#\n######\n\n\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######.#####\n#....###...#\n#........#p#\n#.bt#.tb...#\n#...########\n#####.......\n\nmessage level 2 of 10\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*O.#\n##.*P*.#\n#..O*O.#\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\n\n\n\n######\n#....#\n#.b0r#\n#...t#\n#.p..#\n######\n\n\n\n########\n#......#\n#.b....#\n#..tp..#\n#......#\n#......#\n########\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.lr....#\n#.t..p..#\n#@......#\n#########\n\n\n(soll schwierig sein)\n#######\n##...##\n#.b.b.#\n#.t.t.#\n#..@..#\n##p..##\n#######\n\n)\n\n(\n\n\n\nchoose 1 option 0.1 [no wall]->[wall]\n+ option 0.1 [wall]->[no wall]\n+ option 0.1 [target] [ no target no wall ] -> [ ] [ target ]\n+ option 0.1 [ target ] [ blob ] [ no target no wall ] [ no obstacle ] -> [ ] [ ] [ target ] [ blob ]\n\n\n(\n[target]->[]\n[blob]->[]\n[player]->[]\n)\n(\nchoose 1 [no wall] -> [ player ]\nchoose 1 option 0.1 [ no target no wall ] [ no obstacle ] -> [ target ] [ blob ]\n)\n(\nchoose 1 option 0.1 [no target ] -> [ target ]\noption 0.1 [ target | no target no wall] ->[target | target]\n)\n\n(choose 10 option 0.1 right [ no wall|blob | no obstacle|no wall] -> [| blob_l | blob_r |]\n+ option 0.1 down [ no wall|blob | no obstacle | no wall ] -> [ |blob_u | blob_d |]\n+ option 0.1 right [no wall| no obstacle | blob_l |no wall] -> [| blob_l | blob_h |]\n+ option 0.1 down [no wall| no obstacle | blob_u |no wall] -> [ |blob_u | blob_v |]\n+ option 0.1 []->[])\n\n\nchoose 4 [no wall no target ] -> [ target ]r\n\n\n\n()()()()()()()()\n\n\nchoose 1 [ no obstacle ] -> [ player ]\n\nchoose 1 [ no obstacle ] ->[blob target ]\n\n\nchoose 1 [ no obstacle ] [no target ] ->[blob] [target ]\n\nchoose 10 option 0.1 right [ |blob | no obstacle|] -> [| blob_l | blob_r |]\n+ option 0.1 down [ |blob | no obstacle | ] -> [ |blob_u | blob_d |]\n+ option 0.1 right [| no obstacle | blob_l |] -> [| blob_l | blob_h |]\n+ option 0.1 down [| no obstacle | blob_u |] -> [ |blob_u | blob_v |]\n+ option 0.1 []->[]\n\n\nright [ wall | blob_l | blob_h | blob_h | blob_r ] -> [ wall | blob_l | blob_h | blob_r | ]\ndown [ wall | blob_u | blob_h | blob_h | blob_l ] -> [ wall | blob_u | blob_h | blob_l | ]\n\n\n\n\n\n\n)\n\n",[2,2,1,2,3,4,1,2,2,3,1,3,1,0,1,2,2,3,0,2,3,0,1,3,3,3,3,0,0,3,2,1,0,0,3,0,0,1,0,0,0,2,2,1,1,1,"restart",2,2,0,0,0,0,1,1,2,2,2,2,3,2,0,0,0,0,1,0,0,3,3,3,3,2,2,2,2,1,2,2,0,0,0,0,3,2,2,2,2,2,2,2,1,0,0,0,0,0,2,2,0,0,3,2,2,2,1,1,0,0,0,0],"background wall:0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background:1,1,1,1,\n1,1,1,1,1,1,1,0,0,\n1,1,1,1,1,1,1,1,1,\n1,1,0,0,1,1,1,background blob_u target:2,background blob_v:3,\n3,3,background blob_d:4,1,1,1,0,0,1,\n1,background blob target:5,background player:6,2,3,3,3,4,1,\n1,0,0,1,1,1,5,1,1,\n1,1,1,1,1,0,0,1,1,\n1,1,1,1,1,1,1,1,1,\n0,0,1,1,1,1,1,1,1,\n1,1,1,1,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,\n",16,"1627892574193.6548"] ], [ - "A CLEAR VIEW OF THE SKY", - ["title A CLEAR VIEW OF THE SKY\nauthor increpare\nhomepage www.increpare.com\n\nnorepeat_action\n\nrun_rules_on_level_start\n\ncolor_palette 2\n\nbackground_color #005784\ntext_color lightblue\n\n(uses https://github.com/increpare/Zersto-rungto generate levels)\n========\nOBJECTS\n========\n\nbackground\nblue\n\nlandbackground\ngreen\n\n\nwall \ndarkblue gray lightgray\n00000\n01110\n01110\n01110\n00000\n\nplayer_h\ntransparent\n.....\n..0..\n.000.\n..0..\n.....\n\n\nplayer_v\nyellow\n.....\n..0..\n.000.\n..0..\n.....\n\n\nfenster\n#005784\n\n\nfenster_up\n#1d3d60 lightblue\n00000\n.....\n.....\n.....\n.....\n\nfenster_down\ndarkblue #17669f\n.....\n.....\n.....\n.....\n11111\n\nfenster_left\n#1d3d60 #17669f\n1....\n1....\n1....\n1....\n1....\n\nfenster_right\n#1d3d60\n....0\n....0\n....0\n....0\n....0\n\nhtarget\norange\n.....\n.....\n00000\n.....\n.....\n\n\nvtarget\norange\n..0..\n..0..\n..0..\n..0..\n..0..\n\ninventar\ndarkblue\n\nbang\n yellow red\n...0.\n..00.\n.010.\n.00..\n.0...\n\nbang_schatten\ndarkgray\n...0.\n..00.\n.0.0.\n.00..\n.0...\n\nbond_u\ndarkblue gray lightgray\n.111.\n.....\n.....\n.....\n.....\n\n\n\nbond_d\ndarkblue gray lightgray\n.....\n.....\n.....\n.....\n.111.\n\n\n\nbond_l\ndarkblue gray lightgray\n.....\n1....\n1....\n1....\n.....\n\n\n\nbond_r\ndarkblue gray lightgray\n.....\n....1\n....1\n....1\n.....\n\n\n\n\ntl\ntransparent\n\nexploding\ntransparent\n\nexplosion\nred yellow\n.1.1.\n10.01\n..0..\n10.01\n.1.1.\n\nnofall\nred\n.0...\n.....\n.....\n.....\n.....\n\nfall\nlightblue\n.0...\n.....\n.....\n.....\n.....\n\n\nsky_darker 7\ndarkred darkblue\n01010\n10101\n01110\n10101\n01011\n\nsky_darker2 8\ndarkbrown black\n01010\n10101\n01110\n10101\n01011\n\n\nsky_darker4 0\nblack darkblue\n11010\n10111\n01010\n11101\n01011\n\nsky_darker3 9\nwhite black\n11111\n11101\n11111\n11111\n11111\n\nsky_darker7 w\nblack\n\nsky_pink 2\nred darkblue\n01010\n10101\n01110\n10101\n01011\n\nsky_orange 1\nred lightred\n01000\n10101\n00010\n01010\n00000\n\n\nsky_red 3\nred orange\n01010\n10101\n01010\n10101\n01010\n\nsky_yellow 4\nyellow red orange\n12121\n21212\n10001\n00000\n00000\n\nsky_purple 5 \nred blue\n01010\n11101\n01010\n10111\n01010\n\n\nsky_land 6\ndarkgreen green\n01010\n10101\n01010\n10101\n01010\n\n=======\nLEGEND\n=======\n\nplayer = player_h or player_v\ntarget = htarget or vtarget\n\n. = Background\n# = wall\nP = Player_h\nf = fenster\n\ng = landbackground\n\nobstacle = wall\n~ = tl and fenster\ni = inventar\nb = bang and inventar\nbond = bond_u or bond_d or bond_l or bond_r\n\nfallblocker = wall or fenster\nanimation = 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 or 0\n=======\nSOUNDS\n=======\n\nsfx0 55915302 (bang)\nsfx1 90167907 (other agains)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nlandbackground, inventar\nwall\nbond_u\nbond_d\nbond_l\nbond_r\nexplosion\ntarget\nPlayer, fenster, bang,bang_schatten\nfenster_up\nfenster_down\nfenster_left\nfenster_right\ntl\nexploding\nnofall\nfall\n1,2,3,4, 5, 6,7,8,9,0,w\n\n======\nRULES\n======\n\n\nup [fenster | no fenster ]-> [ fenster fenster_up | ]\ndown [fenster | no fenster ]-> [ fenster fenster_down | ]\nleft [fenster | no fenster ]-> [ fenster fenster_left | ]\nright [fenster | no fenster ]-> [ fenster fenster_right | ]\n\n[ tl no exploding ] [bond]->[ tl ] [ ]\ndown [ tl no exploding ] [wall | wall]->[tl][ wall bond_d | wall bond_u ]\nright [ tl no exploding ] [wall | wall]->[tl][ wall bond_r | wall bond_l ]\n\n[tl]->[tl exploding]\n\ndown [ wall no bond_d | fallblocker ] -> [ wall nofall | fallblocker ]\n(floodfill)\nup [nofall bond_u | ] -> [ nofall bond_u | nofall ]\n+ down [nofall bond_d | ] -> [ nofall bond_d | nofall ]\n+ left [nofall bond_l | ] -> [ nofall bond_l | nofall ]\n+ right [nofall bond_r | ] -> [ nofall bond_r | nofall ]\n\n\ndown [ wall no nofall | no fallblocker ] -> [ wall fall | ]\n\nup [fall bond_u | ] -> [ fall bond_u | fall ]\n+ down [fall bond_d | ] -> [ fall bond_d | fall ]\n+ left [fall bond_l | ] -> [ fall bond_l | fall ]\n+ right [fall bond_r | ] -> [ fall bond_r | fall ]\n\n[fall wall]->[down wall] sfx1 again\n\n[fall]->[]\n[nofall]->[]\n\n[up wall bond ] -> [ up wall up bond ]\n+ [down wall bond ] -> [ down wall down bond ]\n+ [left wall bond ] -> [ left wall left bond ]\n+ [right wall bond ] -> [ right wall right bond ]\n\n[target]->[]\n\n\n[horizontal player ] -> cancel\n(\n[up player_h ] -> [ up player_v ]\n[down player_h ] -> [ down player_v ]\n[left player_v ] -> [ left player_h ]\n[right player_v ] -> [ right player_h ]\n)\n\nright left down [ landbackground | no landbackground no fenster ] -> [ landbackground | landbackground no fenster ]\n\n\n[player_h ] -> [ player_h htarget ]\n[player_v ] -> [ player_v vtarget ]\n\nhorizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nvertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\nup [ bond_u | explosion ] -> [ | explosion ]\ndown [ bond_d | explosion ] -> [ | explosion ]\nleft [ bond_l | explosion ] -> [ | explosion ]\nright [ bond_r | explosion ] -> [ | explosion ]\n\n[explosion wall ] -> [ no bond ] sfx1 again\n\n[explosion ] -> [ ] again\n\n[action player ] [bang] -> [ player ] [ action bang_schatten ]\n\n[action bang_schatten ] [ target ]-> [ action bang_schatten ] [ explosion ] sfx0 again\n\n\nlate [target]->[]\n\nlate [player_h ] -> [ player_h htarget ]\nlate [player_v ] -> [ player_v vtarget ]\n\nlate horizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nlate vertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll wall on landbackground \n\n=======\nLEVELS\n=======\n\n\n(OK LEVELS)\n\n\n\n\nmessage All those ugly buildings blocking our view.\nmessage Let's DEMOLISH them to SAVE OUR SKY\n\nmessage level 1 of 13 : FACTORY\n(sehr einfach)\n~ffffffffffffff\nfif...........f\nfif...........f\nfif...........f\nfif....p......f\nfif.....#.....f\nfif...#.#.....f\nfif...#.###...f\nfbf...######..f\nfif..###...#..f\nfbfg.#...#.#..f\nfif..#...#.#..f\nfffffffffffffff\n\n\nmessage Ah, what a lovely view of the sky!\n\nmessage level 2 of 13 : Lop-sided Electricity Poll\n(actually ok?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif...#......f\nfif...##.....f\nfif...#......f\nfbf...##.....f\nfif....##....f\nfbfggggg#ggggf\nfif.....#....f\nffffffffffffff\n\n\n\n\nmessage level 3 of 13 : Water Pump\n(ok anfängerlevel?)\n~fffffffff\nfif...p..f\nfbf###...f\nfif#.###.f\nfbf#.##..f\nfif#.##..f\nfbf#gg##gf\nfif...#..f\nffffffffff\n\n\n\n\nmessage level 4 of 13 : Electricity Supply\n\n(einfach/gut?)\n~ffffffff\nfif###p#f\nfbf#.#.#f\nfbf#####f\nfbf##.#.f\nfifg####f\nfffffffff\n\n\nmessage level 5 of 13 : Water Font\n(hard)\n~fffffffffffff\nfifp....###..f\nfbf...#.#.#..f\nfbf...####...f\nfbf...##.##..f\nfifgg#g####ggf\nffffffffffffff\n\n\n\nmessage level 6 of 13 : Angry Goose\n(tricky + sieht gut aus)\n~ffffffffffff\nfifp##.####.f\nfbf.####.##.f\nfbf...##.#..f\nfbf...###...f\nfifgg##gggggf\nfffffffffffff\n\n\n\nmessage level 7 of 13 : Lean-to\n(nice/ok!)\n~fffffffffff\nfifp..#....f\nfif..##....f\nfbf.##.....f\nfif..#.....f\nfbf####....f\nfif...##...f\nfbfggg##gggf\nfif....##..f\nffffffffffff\n\n\n(medium-hard / fun! )\nmessage level 8 of 13 : Treehouse\n~fffffffffffffff\nfifp...........f\nfif........#...f\nfif........#...f\nfif.......####.f\nfbf.......#..#.f\nfif......#####.f\nfbf........#...f\nfif......###...f\nfbf......##....f\nfif.....##.....f\nfbfgggg#g#gggggf\nfif...####.....f\nffffffffffffffff\n\n\n\n\nmessage level 9 of 13 : Ugly Antenna\n(i had fun solving this)\n~fffffffffffff\nfifp.###.####f\nfbf..#.#....#f\nfif..#.##.###f\nfbf..#.###.#.f\nfif..####.##.f\nfbfggggg###ggf\nfif.....#....f\nffffffffffffff\n\n\n\n\nmessage level 10 of 13 : 60's Futuristic settlement\n(ok/interesting to solve!)\n~fffffffffff\nfbf##p.####f\nfif#...#..#f\nfbf#...####f\nfif######.#f\nfbf###.##.#f\nfifggg##gg#f\nfbf...#.#.#f\nfif...###..f\nffffffffffff\n\n\nmessage level 11 of 13 : Dystopic settlement\n(futuristic city - hardlevel?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..##......f\nfif..#.......f\nfbf..##.#.#..f\nfif..##.###..f\nfbf..###.###.f\nfif....#.##..f\nfbf....#.#...f\nfifggg####gggf\nffffffffffffff\n\n\nmessage level 12 of 13 : Space elevator\n(interesting? seemingly impossible?)\n~fffffffffffff\nfif#####p....f\nfif#.#.#.....f\nfif#.####....f\nfif#.##......f\nfif#g#gggggggf\nfif#.#.......f\nfif#.##......f\nfif#.#.......f\nfif#.##......f\nfbf#.#.......f\nfif#.###.....f\nfbf#.#.###.#.f\nfif#.###..##.f\nfbf##..####..f\nfif.#######..f\nffffffffffffff\n\n\n\n\nmessage level 13 of 13 : Building seeminly purposely constructed to block my view.\n\n(can't easily solve meh - could be ok final level? FINAL LEVEL)\n~fffffffffffffffff\nfif###p..........f\nfif#.##..........f\nfif####..........f\nfif...##.........f\nfif####..........f\nfif.#............f\nfif##............f\nfif###...........f\nfif..#...........f\nfif#####.........f\nfif...#.#.#......f\nfif######.#......f\nfif###..###......f\nfif#..###........f\nfif.....##.......f\nfifgggggg#gggggggf\nfif......###.....f\nfif.......##.....f\nfif.......##.....f\nfbf........##....f\nfif........##....f\nfbf.........##...f\nfif.........##...f\nfbf.........#####f\nfif............#.f\nffffffffffffffffff\n\n\nmessage Ahh, the sky is clear again, just in time for the sunset\n\n\n\n5555555555555555555\n5555522222222555555\n5552222222222222555\n5222222222222222225\n2222222111112222222\n2222211111111122222\n2221111133311111222\n2211111334331111112\n6666666666666666666\n6666666666666666666\n6666666666666666666\n\n\n\n\n22222222222222222222\n22222222222222222222\n22222222222222222222\n22222222222222222222\n22222221212122222222\n22221212121212122222\n22212121111121212222\n22121211111112121222\n66666666666666666666\n66666666666666666666\n66666666666666666666\n\n\n\n00000077777777000000\n00007777777777770000\n00077777777777777000\n07777777777777777770\n77777722222222777777\n77772222222222227777\n77722221111122222777\n77222211111112222277\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n88888888888888888888\n88888880000088888888\n88888000000000088888\n88800000000000000888\n88000000000000000088\n80000000000000000008\n00000000222000000000\n00000002222200000000\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwww000wwwwwwwww\nwwwww000222000wwwwww\n00000022222220000000\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n\n\nw9wwwwwwww9wwwwwwwww\nwwwwwwwwwwwwww9www9w\nwwww9wwwwwwwwwwwwwww\nwwwwwwwww9wwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwww9www\nw9wwwww9wwwww9wwwwww\nwwwwwwwwwwwwwwwwwwww\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\nmessage The End \n\n\n\n(\n\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf.....#....f\nfif....####..f\nfbf...##..#..f\nfif#.#..###..f\nfbf#####.##..f\nfif.#.####...f\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfbfp.........f\nfif....#.....f\nfbf....##....f\nfif....###...f\nfbf......#...f\nfif..######..f\nfbf...#.#.#..f\nfif.....####.f\nfbf....#.##..f\nfifgg#####gggf\nffffffffffffff\n\n(microscope?)\n~fffffffffffff\nfbfp.........f\nfif......##..f\nfbf.....##...f\nfif....##....f\nfbf....#.##..f\nfif....#.#...f\nfbf....####..f\nfif.......#..f\nfbf..######..f\nfifgg####ggggf\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.......#.f\nfif......#.#.f\nfif......#.##f\nfif......####f\nfbf....####.#f\nfifggggg#g##gf\nfbf...#####.#f\nfif....######f\nfbf..#.###...f\nfif.######...f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.....#...f\nfif......##..f\nfif....####..f\nfif....##.#..f\nfbf....###...f\nfifgg#g####ggf\nfbf..####.#..f\nfif..#####...f\nfbf..#######.f\nfif....#####.f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.....#...f\nfif....#.#...f\nfif....###...f\nfif...###..#.f\nfbf...#.####.f\nfifgggg##ggggf\nfbf...#####..f\nfif....####..f\nfbf..######..f\nfif..########f\nffffffffffffff\n\n\n\n\n~fffffffffff\nfbfp...#.#.f\nfif....#.##f\nfbf....###.f\nfif.###.###f\nfbf...###.#f\nfif.....##.f\nfbfggg###ggf\nfif...#####f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp...##..f\nfif.######.f\nfbf....#.#.f\nfif...###..f\nfbf...#.##.f\nfif....###.f\nfbfggg#gg#gf\nfif..######f\nffffffffffff\n\n(hard, but looks nice)\n~fffffffffff\nfbfp...#..#f\nfif....####f\nfbf.....#.#f\nfif...###..f\nfbf.....###f\nfif...###..f\nfbfg##g#g##f\nfif..######f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp..#.##.f\nfif...#.#..f\nfbf...#####f\nfif....#.#.f\nfbf....###.f\nfif...###..f\nfbfg###gg#gf\nfif.#.####.f\nffffffffffff\n\n~fffffffffff\nfifp.......f\nfif........f\nfif#.......f\nfbf###.....f\nfif#.##....f\nfbf##......f\nfif##......f\nfbf#.......f\nfif##.#....f\nfbf##.#....f\nfif.####...f\nfbf.#.####.f\nfif....#.#.f\nfbfgggg###gf\nfif....#...f\nffffffffffff\n\n\n\n(hard/unsolved)\n~fffffffffffff\nfifp...####..f\nfif.....##...f\nfbf....##....f\nfif...#.##...f\nfbf...#.#..#.f\nfif...####.#.f\nfbf....#.###.f\nfif....#.#...f\nfbfggg#######f\nfif..#...#...f\nfbf.######...f\nfif...###....f\nffffffffffffff\n\n\n(haard, pretty, unsolved)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf.....#....f\nfif....###...f\nfbf...#####..f\nfif.....#..#.f\nfbf.....####.f\nfif..#.#.#.#.f\nfbf.##.#.##..f\nfif..#.####.#f\nfbfgg##ggg#g#f\nfif...#######f\nffffffffffffff\n\n\n(haard, pretty, ,unsolved)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf...##..#..f\nfif.##.####..f\nfbf..##.#.#..f\nfif...#.###..f\nfbf...##.##..f\nfif....###...f\nfbf......#...f\nfif....######f\nfbfgg###ggg##f\nfif....#####.f\nffffffffffffff\n\n(haard ,unsolved)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfbf........f\nfif....###.f\nfbf.....###f\nfif......#.f\nfbf......#.f\nfif.....##.f\nfbf......##f\nfif....####f\nfbf....##..f\nfif...###..f\nfbf....##..f\nfifggg##gggf\nffffffffffff\n\n\n\n(too tired, don't want to solve)\n~ffffffffffffffffffffffffffffffffffffff\nfifp..................................f\nfif.......#...........................f\nfif.......#...........................f\nfif#.....##...........................f\nfif##...##............................f\nfif.####.#............................f\nfif....####...........................f\nfif....##.#...........................f\nfif.......##..........................f\nfif......####.........................f\nfif........#.#........................f\nfif.......####........................f\nfif.......#.##........................f\nfifggggggg#g##ggggggggggggggggggggggggf\nfif........####.......................f\nfif...........#.......................f\nfif........######.....................f\nfif........#.##.##....................f\nfif............##.....................f\nfbf..........####.....................f\nfif............####...................f\nfbf...........##.###..................f\nfif..............#.#..................f\nfbf................#..................f\nfif................###................f\nfffffffffffffffffffffffffffffffffffffff\n\n\n~fffffffffffff\nfbfp.#.......f\nfif..###.....f\nfbf..##......f\nfif...##.....f\nfbf..#.##....f\nfif.#####....f\nfbf...#.#..#.f\nfif....######f\nfbf.....#..#.f\nfifggggg##gggf\nffffffffffffff\n\n\n~fffffffffffff\nfifp.....##.#f\nfif.......#.#f\nfif.......#.#f\nfif.......###f\nfif.........#f\nfif.........#f\nfifggggggggg#f\nfif.......###f\nfif......##.#f\nfif.....###.#f\nfif.......###f\nfif.........#f\nfif.......###f\nfif......#..#f\nfif......####f\nfif.......#.#f\nfif........##f\nfif.......###f\nfif.........#f\nfif........##f\nfif.......###f\nfif........##f\nfif........##f\nfif.........#f\nfbf..##...###f\nfif..#...##.#f\nfbf..##....##f\nfif..###.###.f\nfbf...##.#...f\nfif...#####..f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif.........#f\nfif.......###f\nfif........##f\nfif........##f\nfif........##f\nfif.....##.##f\nfifgggggg#g##f\nfif.....#####f\nfif.........#f\nfif.....#####f\nfif.........#f\nfif...#######f\nfif.....#...#f\nfif......####f\nfif.........#f\nfif.......###f\nfif......##.#f\nfif.......#.#f\nfif.......###f\nfif......#..#f\nfif......####f\nfbf.........#f\nfif.......###f\nfbf.......#.#f\nfif.......##.f\nfbf.....###..f\nfif..#####...f\nffffffffffffff\n\n\n\n~fffffffffffffffffffffff\nfifp.................##f\nfif.................#.#f\nfif.................###f\nfif...................#f\nfif...................#f\nfif..................##f\nfifgggggggggggggggggg##f\nfif..................##f\nfif.................#.#f\nfif.................#.#f\nfif.............###.###f\nfif..............#.##.#f\nfif..............###..#f\nfif...............#.#.#f\nfbf...............#.###f\nfif...##....#.##..###.#f\nfbf...###.###..#.#.#.##f\nfif....####.#..#######.f\nfbf......########..#.#.f\nfif..........##......#.f\nffffffffffffffffffffffff\n\n\n\n~ffffffffffffffffff\nfif##p.....#######f\nfif##.......##...#f\nfif#..#.......####f\nfif######.....####f\nfbf#....##..###..#f\nfif######...#.#.##f\nfbfg#gg####g##ggggf\nfif.....#.#####...f\nfbf.....###.#.....f\nfif.......##......f\nfffffffffffffffffff\n\n\n\n~ffffffffffffffffff\nfif########p......f\nfif#.#.#.#........f\nfif#.#.#.#...#....f\nfif#.######.######f\nfbf#g##gg#######ggf\nfif#.#...##.#..##.f\nfbf###....#.###...f\nfif##.....###.....f\nfbf#....####......f\nfif.......#.......f\nfffffffffffffffffff\n\n\n\n~fffffffffffffffffffffff\nfifp.......############f\nfif......####.#.......#f\nfif......#.#.#.########f\nfif.......##.#.#......#f\nfbfggggggg#g##g########f\nfif......###.#.#.#.####f\nfbf........######...#..f\nfif.....###....#.......f\nfbf.......######.......f\nfif.....########.......f\nffffffffffffffffffffffff\n\n\n\n\n\n~fffffffffffffffffffffff\nfif###p########.##.####f\nfif#####..#.#...####..#f\nfif...#.###.##....#.###f\nfif#######..#.#########f\nfbf.#...#.#.######.#...f\nfifg#####g##g##ggggggggf\nfbf.....######.........f\nfif.......#..##........f\nfbf.........###........f\nfif..........###.......f\nffffffffffffffffffffffff\n\n\n\n\n~fffffffffffffffffffffff\nfif#########p....##....f\nfif#.#.#.##....###.....f\nfif#.#.#.#....#.####...f\nfif#.#.#.#....#.#..#...f\nfbf#g#g###gggg#g###ggggf\nfif####..#.#..###.#....f\nfbf...####.#..##.......f\nfif...##.#.##.#.#......f\nfbf....##########......f\nfif....#....##.#.......f\nffffffffffffffffffffffff\n\n\n\n(hard, haven't solved manually)\n~fffffffffffff\nfif###p......f\nfbf#.#.......f\nfif#.###.....f\nfbf#.#.##....f\nfif####g####gf\nfbf##.####...f\nfif.##..#....f\nffffffffffffff\n\n\n(too hard)\n~fffffffffffff\nfif#####p....f\nfif#.#.#.....f\nfif#.##.#....f\nfif#.#####...f\nfif#.##.#....f\nfif#g#gggggggf\nfif#.####....f\nfif#.#.#..##.f\nfif#.###.#.##f\nfbf##..#####.f\nfif.####.....f\nfbf...###....f\nfif....#.....f\nfbf....#.##..f\nfif....###...f\nffffffffffffff\n\n\n\n(hard, looks ok, but meh)\n~fffffffffffff\nfif###p#.....f\nfif##.##.....f\nfif##.#......f\nfif####......f\nfif#.#.......f\nfbf#.#.......f\nfif###.......f\nfbf#.##......f\nfif#.##......f\nfbf##g##gggggf\nfif.###......f\nfbf.#.##.....f\nfif...#......f\nfbf..###.#...f\nfif....####..f\nffffffffffffff\n\n\n(hard, looks ok, but meh)\n~fffffffffffff\nfif##p#......f\nfif####......f\nfif#.##......f\nfif#.#.......f\nfif#.#.......f\nfbf###.......f\nfif#.........f\nfbf###.......f\nfif#.........f\nfbf#####gggggf\nfif#.##.#....f\nfbf..##.##...f\nfif..#####...f\nfbf.....###..f\nfif...###....f\nffffffffffffff\n\n(hmmm! not sure!)\n~ffffffffffffffffffffffffffff\nfifp........................f\nfif.........................f\nfif.........................f\nfif.........................f\nfif....................##...f\nfif.....................##..f\nfif....................##...f\nfif...................###...f\nfif...................##....f\nfif.................####....f\nfifgggggggggggggggggggg###ggf\nfif...............######.##.f\nfif..................#.#....f\nfif..................####...f\nfif................####.#...f\nfif................###......f\nfif..................##.....f\nfif..................#.##...f\nfif................###.##...f\nfbf................#.#####..f\nfif...............##.#......f\nfbf................####.....f\nfif................##.......f\nfbf.............#####.......f\nfif.........#####...........f\nfffffffffffffffffffffffffffff\n\n\n\n(soll schwierig sein - will nicht lösen!)\n~fffffffffff\nfifp.......f\nfif........f\nfbf........f\nfif....#...f\nfbf..###...f\nfif....##..f\nfbf...#.#..f\nfif...#.##.f\nfbf...#.###f\nfif..###.##f\nfbf..#.###.f\nfifgggg##ggf\nffffffffffff\n\n\n(soll schwierig sein - ja zu schwierig)\n~ffffffffffff\nfif.........f\nfbf.p.......f\nfif...#.....f\nfbf...#.....f\nfif...###...f\nfbf...#.##..f\nfif.#####...f\nfbf..#..###.f\nfif...##..#.f\nfbf....####.f\nfifggggg##ggf\nfffffffffffff\n\n(hard - will nicht lösen )\n~fffffffffffff\nfifp.........f\nfif......#...f\nfif.....##...f\nfif....##....f\nfbf....#.##..f\nfif....###...f\nfbfgggg##ggggf\nfif...###....f\nfbf.....#....f\nfif....##....f\nffffffffffffff\n\n\n(should be hard?)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfif...##...f\nfbf..###...f\nfif.###....f\nfbf...##...f\nfif....#...f\nfbf..#.##..f\nfifgg##g#g.f\nfbf...#.#..f\nfif...###..f\nffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n(zeimlich einfach!)\n~fffffffffff\nfifp.#..#..f\nfif..##.#..f\nfbf...#.##.f\nfif...####.f\nfbf....##..f\nfif..###...f\nfbfgggg#gggf\nfif....#...f\nffffffffffff\n\n\n(simple/ok)\n~ffffffffff\nfifp.#..##f\nfbf..#####f\nfif..#.#.#f\nfbf...##..f\nfif..##...f\nfbfggg###gf\nfif..##...f\nfffffffffff\n\n\n(simple/ok)\n~fffffffffff\nfifp......#f\nfif......##f\nfbf......##f\nfif.....###f\nfbf.......#f\nfifgggggg##f\nfbf.....##.f\nfif...###..f\nffffffffffff\n\n\n\n\n(simple/ok / ok maybe nicer than ok! :] )\n~fffffffffff\nfifp....#..f\nfif...#.##.f\nfbf...###..f\nfif..###...f\nfbf...#....f\nfif...##...f\nfbfgggg##ggf\nfif....#...f\nffffffffffff\n\n\n\n\n\n\n\n(beautiful-looking? not fun to solve)\n~fffffffffff\nfbf########f\nfif##p...##f\nfbf##...#.#f\nfif#.#..###f\nfbf#.#...##f\nfif###g#g##f\nfbf#.######f\nfif....#.#.f\nffffffffffff\n\n\n\n\n\n\n\n(ok to solve!)\n~fffffffffff\nfbfp...####f\nfif....#..#f\nfbf....####f\nfif#.###..#f\nfbf#.#.####f\nfif####gg##f\nfbf.#.####.f\nfif....#.#.f\nffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n~fffffffffffff\nfifp...######f\nfif.......#.#f\nfif.........#f\nfif.......###f\nfif.......#.#f\nfif.....#####f\nfifgggggg##g#f\nfif......#.##f\nfif......#.##f\nfbf......#.##f\nfif......####f\nfbf......##.#f\nfif...#..#...f\nfbf..#####...f\nfif.....###..f\nffffffffffffff\n\n\n(dunno? schwierig)\n~fffffffffffff\nfbf#####p####f\nfif...####..#f\nfbf....#.####f\nfif.....#.#.#f\nfbf.....#.###f\nfif.....#.#.#f\nfbf.....#.#.#f\nfifgggg######f\nfbf......###.f\nfif....###...f\nffffffffffffff\n\n\n\n\n\n~fffffffffffff\nfifp..#.###..f\nfbf..##.#.#..f\nfbf...####...f\nfbf....##.#..f\nfifg##g#g##ggf\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif...#......f\nfif...###....f\nfbf....###...f\nfif.....#....f\nfbf....###...f\nfif...##.....f\nfbfgg##ggggggf\nfif.#####....f\nffffffffffffff\n\n\n\n~ffffffff\nfif....#f\nfif....#f\nfif....#f\nfif..###f\nfif....#f\nfif.p.##f\nfif....#f\nfif#.###f\nfif#..#.f\nfbf####.f\nfif#.#..f\nfbf#g#ggf\nfif###..f\nfbf..##.f\nfif###..f\nfbf#.##.f\nfif####.f\nfffffffff\n\n\n(Tricky)\n~fffffffffff\nfbfp.......f\nfif........f\nfbf...#....f\nfif...##...f\nfbf..#.#...f\nfif..#.###.f\nfbf.###.#..f\nfif...####.f\nffffffffffff\n\n\n~fffffffffff\nfbfp..##...f\nfif....##..f\nfbf...##...f\nfif...###..f\nfbf...#....f\nfif...###..f\nfbfggggg#ggf\nfif...####.f\nffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif...#......f\nfif...#......f\nfif...##.....f\nfbf....#.....f\nfif....##....f\nfbf.....#....f\nfif....###...f\nfbfggg#gg##ggf\nfif...####...f\nffffffffffffff\n\n\n\n\n~fffffffffff\nfifp...###.f\nfif...##.#.f\nfbf..#.###.f\nfif..###.#.f\nfbfggg####gf\nfif.....###f\nfbf...###..f\nfif...####.f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif.....#..f\nfif...###..f\nfif.....###f\nfbf....##..f\nfif...##...f\nfbf.#.##..#f\nfif.##.##.#f\nfbf#g#g#g##f\nfif########f\nfbf#......#f\nfif########f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif..#.....f\nfbf..##....f\nfif..###...f\nfbf..#.#...f\nfif..###...f\nfbfggg###ggf\nfif....#...f\nffffffffffff\n\n\n~fffffffffff\nfifp...##..f\nfif....###.f\nfif...##.#.f\nfif...#.#..f\nfbf...#.#..f\nfif...#.###f\nfbf..######f\nfifggg##gggf\nfbf....####f\nfif....#..#f\nfbf####.###f\nfif.#######f\nffffffffffff\n\n\n\n\n~ffffffffff\nfifp......f\nfif.......f\nfif.......f\nfif.......f\nfbf..###..f\nfif..#.#..f\nfbf.#.##..f\nfif.#####.f\nfbf...#...f\nfif.###...f\nfbfgg#g##gf\nfif..###..f\nfffffffffff\n\n\n\n~ffffffff\nfifp###.f\nfbf.#.##f\nfif.####f\nfbf.##..f\nfif..##.f\nfffffffff\n\n\n~fffffffffff\nfifp###....f\nfbf.#.##...f\nfbf.#.##...f\nfbf.#.##...f\nfifgggg##ggf\nffffffffffff\n\n\n~fffffffffff\nfifp...###.f\nfbf..#.#.#.f\nfbf..##.##.f\nfbf.#####..f\nfifgggg####f\nffffffffffff\n\n\n\n\n~fffffffffffff\nfifp...##.#..f\nfif....#.##..f\nfbf....#.##..f\nfif....#.##..f\nfbf....#.#.##f\nfif...######.f\nfbfggg#g##gggf\nfif..####....f\nfbf.....##...f\nfif...###....f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp....#....f\nfif.....#.#..f\nfif.....###..f\nfif...###.#..f\nfbfggg#g#####f\nfif....##.###f\nfbf...#.###..f\nfif...####...f\nfbf......##..f\nfif...#####..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp..#.#..f\nfbf...###..f\nfif....##..f\nfbfggg##gggf\nfif....#...f\nffffffffffff\n\n\n\n~fffffffffffff\nfifp...##....f\nfif.....#....f\nfif.....#....f\nfifggggg#ggggf\nfif#.####....f\nfif#.#..#....f\nfbf##.###....f\nfif.###.#####f\nfbf....#.#...f\nfif..######..f\nffffffffffffff\n\n\n~fffffffffff\nfifp...#.#.f\nfbf....###.f\nfif....##..f\nfbfggg#g###f\nfif...###..f\nffffffffffff\n\n\n~fffffffff\nfbfp##.#.f\nfif..#.#.f\nfbf..####f\nfif.###..f\nfbf...##.f\nfifggg#ggf\nffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif.......#..f\nfbf.......#..f\nfif.......#..f\nfbf....#####.f\nfif...####...f\nfbf.....#....f\nfifggggg##gggf\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif...#......f\nfbf..##......f\nfif...#.#....f\nfbf...###....f\nfif....#.....f\nfbf....##....f\nfif....####..f\nfbf.......##.f\nfifggg######gf\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif.#........f\nfbf.##.......f\nfif..#.......f\nfbf.###......f\nfif.#####....f\nfbf...#.##...f\nfif....#.##..f\nfbf....##.##.f\nfifggggg#####f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp....#....f\nfif.....#....f\nfbf.....#....f\nfif.....##...f\nfbf...##.#...f\nfif....#.#...f\nfbf....#.###.f\nfifgggg#g#gggf\nfbf...##.##..f\nfif....#####.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp..#......f\nfif...#......f\nfbf..###..#..f\nfif....####..f\nfbf.....#....f\nfif.....###..f\nfbf.....#.#..f\nfifggggg##gggf\nfbf...###.#.#f\nfif....######f\nffffffffffffff\n\n\n~fffffffffffff\nfifp..#......f\nfif...##.....f\nfbf...#..#...f\nfif..###.#...f\nfbf....#.#...f\nfif..######..f\nfbf.....#....f\nfif.....###..f\nfbfggggg#ggggf\nfif...#####..f\nffffffffffffff\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf#.........f\nfif#.........f\nfbf##........f\nfif.######...f\nfbf..#.#.#...f\nfif..##.##...f\nfbf..##.#.#..f\nfif...######.f\nffffffffffffff\n\n\n(hard)\n~fffffffffffff\nfifp...##....f\nfif....#.....f\nfbf....#.....f\nfif....##....f\nfbf....##....f\nfif..##.##...f\nfbf...#.#....f\nfifggg#g##gggf\nfbf..###.##..f\nfif....####..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp..#.#..f\nfif...###..f\nfif...##...f\nfbfgggg##ggf\nfif....##..f\nfbf...##...f\nfif....##..f\nffffffffffff\n\n\n(trivial)\n~fffffffffff\nfifp.....#.f\nfif.....##.f\nfif.....#..f\nfbf...###..f\nfif.####...f\nfbfggg##gggf\nfif....##..f\nffffffffffff\n\n\n(too easy)\n~fffffffffff\nfifp.......f\nfif.....#..f\nfif.....#..f\nfif.....#..f\nfbf.....#..f\nfif.....#..f\nfbf...####.f\nfifggg##g##f\nfbf.##.#...f\nfif..###...f\nffffffffffff\n\n\n\n(nice shape)\n~fffffffffff\nfifp.......f\nfif........f\nfif...#....f\nfif...##...f\nfbf....##..f\nfif...#.#..f\nfbf..#####.f\nfifgggg##ggf\nfbf....##..f\nfif...###..f\nffffffffffff\n\n(nice?/meh)\n~fffffffffff\nfifp.......f\nfif...#....f\nfif...#....f\nfif...##...f\nfbf....##..f\nfif....##..f\nfbf.....#..f\nfifgggg##ggf\nfbf..#.###.f\nfif.#####..f\nffffffffffff\n\n\n\n~fffffffffffff\nfifp#..#.#...f\nfif.####.#...f\nfbf..#.####..f\nfbf..#.##....f\nfbf.###.###..f\nfbf...#.#....f\nfbf...#####..f\nfifgggg######f\nffffffffffffff\n\n\n~fffffffffffff\nfifp....##..#f\nfif....#.#..#f\nfbf...##.####f\nfbf....####.#f\nfbf..##.#..##f\nfbf..##.#####f\nfbf...#####..f\nfifggg#g#ggggf\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.......#.f\nfif.....##.#.f\nfbf.....#.##.f\nfbf....#####.f\nfbf#......#..f\nfbf##.#######f\nfbf.##...##.#f\nfif.######..#f\nffffffffffffff\n\n\n~fffffffffffff\nfifp...###...f\nfif.##.#.##..f\nfbf..#.#####.f\nfbf..#..#....f\nfbf.#####....f\nfbf..#..##...f\nfbf..###.####f\nfifggg####g##f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..........f\nfif......#...f\nfbf...####...f\nfif...#.#....f\nfbf...####...f\nfif....#.##.#f\nfbf....##.###f\nfif...######.f\nfbf..##...##.f\nfif..######..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp.##....f\nfif...##...f\nfbf....##..f\nfif...#.##.f\nfbf...####.f\nfif...#..#.f\nfbf..####..f\nfifgggg##ggf\nfbf....#.#.f\nfif....####f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif....##..f\nfbf..##.#..f\nfif...#.##.f\nfbf...####.f\nfif...#..#.f\nfbf...###.#f\nfif....####f\nfbfgggg#g#gf\nfif..###...f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif....#...f\nfbf....##..f\nfif..###...f\nfbf..#.#..#f\nfif..##...#f\nfbf.####.##f\nfif...#.###f\nfbfggg#g#ggf\nfif...###..f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif....#...f\nfbf..###...f\nfif...#....f\nfbf##.##.#.f\nfif.##.####f\nfbf..##.##.f\nfif...###..f\nfbfggggg#ggf\nfif...###..f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif..#.....f\nfbf..##.##.f\nfif...###..f\nfbf..#.####f\nfif.##.#...f\nfbf..####..f\nfif...#.#..f\nfbfggg####gf\nfif...##...f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp.#.....f\nfif..#.....f\nfbf..#.#...f\nfif..###...f\nfbf...#.##.f\nfif...####.f\nfbf...##.#.f\nfif....##..f\nfbf...#.###f\nfif...#####f\nffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif......#...f\nfbf......##..f\nfif.....#.#..f\nfbf.....#.#..f\nfif...######.f\nfbf.....##...f\nfif#....##...f\nfbf###.###...f\nfif..#.##....f\nfbfgg##g###ggf\nfif...##.##..f\nfbf....#.###.f\nfif....###.#.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfbf.....#....f\nfif....##....f\nfbf....##....f\nfif.....##...f\nfbf....#.##..f\nfif....####..f\nfbf....#..##.f\nfif....#####.f\nfbf...##...#.f\nfifggg#g#####f\nfbf..#.#...#.f\nfif.########.f\nffffffffffffff\n\n\n\n\n\n\n\n~fffffffffff\nfifp.......f\nfif...#....f\nfbf...#.#..f\nfif...###..f\nfbf....##..f\nfif..###...f\nfbfgggg##ggf\nfif...##...f\nffffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.....#.f\nfbf....###f\nfif..#.##.f\nfbf#####..f\nfif.###...f\nfbf...#...f\nfif.####..f\nfffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.......f\nfbf..#.#..f\nfif.##.#..f\nfbf..###..f\nfif#..####f\nfbf####...f\nfif.#.#...f\nfffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.......f\nfbf..#..#.f\nfif.#####.f\nfbf...#.#.f\nfif.####..f\nfbf.##.##.f\nfif...##..f\nfffffffffff\n\n\n~fffffffffff\nfifp..###..f\nfbf.#.#.#..f\nfbf.#.##...f\nfbf.##.##..f\nfbf..#####.f\nffffffffffff\n\n\n~fffffffffff\nfifp.#.#.#.f\nfbf..###.#.f\nfif...#####f\nfbf..#..##.f\nfif..####..f\nffffffffffff\n\n\n~fffffffffff\nfifp..###.#f\nfbf...#.#.#f\nfif....####f\nfbf...##.##f\nfif...####.f\nffffffffffff\n\n\n\n~fffffffffff\nfifp..###..f\nfbf.#.#.#..f\nfif.#..##..f\nfbf#####...f\nfif..#####.f\nffffffffffff\n\n\n\n\n(figure giving tribute - meh?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif.....#.#..f\nfbf....####..f\nfif....#.#...f\nfbf....#.###.f\nfif.######...f\nfbf.....###..f\nfifgg####g#ggf\nffffffffffffff\n\n\n\n\n\n\n\n\n~fffffffffffff\nfbfp.#.......f\nfif..###.....f\nfbf..##......f\nfif...##.....f\nfbf..#.##....f\nfif.#####....f\nfbf...#.#..#.f\nfif....######f\nfbf.....#..#.f\nfifggggg##gggf\nffffffffffffff\n\n\n~fffffffffffffffffffffffffffffffffffffffffff\nfifp.####...##########.###################.f\nfbf....###.##....###.##.#.......####...#...f\nfbf...##.#.#######..###.#########..........f\nfbf......###.#..#...#.#####..#.............f\nfifggggggg##gggggggggg##gg#gg#gggggggggggggf\nffffffffffffffffffffffffffffffffffffffffffff\n\n\n(interesting!)\n~fffffffffff\nfbf####p###f\nfif#......#f\nfbf###....#f\nfif#.#...##f\nfbf#.##..##f\nfif###ggg##f\nfbf##..###.f\nfif.####.#.f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp#######f\nfif.#.###.#f\nfbf...#..##f\nfif######.#f\nfbf.###.###f\nfifggg###g#f\nfbf..###..#f\nfif..#.#...f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp#######f\nfif.#.###.#f\nfbf...#..##f\nfif######.#f\nfbf.###.###f\nfifggg###g#f\nfbf..###..#f\nfif..#.#...f\nffffffffffff\n\n\n\n~fffffffffffff\nfif##p.......f\nfif##........f\nfif#.........f\nfif##........f\nfif##........f\nfif#.........f\nfbf###gggggggf\nfif#.##......f\nfbf##.##.....f\nfif.###..#...f\nfbf..##..#...f\nfif...######.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.......##f\nfif.........#f\nfif.......###f\nfif.......#.#f\nfif......##.#f\nfif......#.##f\nfbf.....#####f\nfifggg####g#gf\nfbf..##.##...f\nfif.....###..f\nfbf.....#....f\nfif.....#....f\nffffffffffffff\n\n\n~fffffffffffff\nfif###p......f\nfif#.#.......f\nfif#.#.......f\nfif#.#.......f\nfif####.....#f\nfifggg#gggg##f\nfif...##....#f\nfif....###..#f\nfbf.....#.###f\nfif.....###..f\nffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n(bad)\n~fffffffffffff\nfifp..#......f\nfif...#......f\nfbf..##......f\nfif..##......f\nfbf..#####...f\nfif...#..##..f\nfbf....######f\nfif.....#..#.f\nfbfggggg##g#gf\nfif....###...f\nffffffffffffff\n\n\n(trivial)\n~fffffffffff\nfifp.#.....f\nfif..##....f\nfbf..###...f\nfif..#.....f\nfbf..####..f\nfif....#...f\nfbfggg##gggf\nfif....#...f\nffffffffffff\n\n(pretty trivial)\n~fffffffffff\nfifp.....#.f\nfif......#.f\nfbf...#.##.f\nfif...#.#..f\nfbf...###..f\nfif...##...f\nfbf....#...f\nfifgggg#gggf\nffffffffffff\n\n\n\n\n(fiine / easy )\n~fffffffffff\nfbfp.......f\nfif......#.f\nfbf......#.f\nfif.....##.f\nfbf....###.f\nfif....#...f\nfbf..###...f\nfif...##...f\nfbf...#.##.f\nfif...###..f\nffffffffffff\n\n\n(meh)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfbf........f\nfif........f\nfbf......#.f\nfif......##f\nfbf.....###f\nfif...###.#f\nfbf.....#.#f\nfif..######f\nfbf...#.#.#f\nfif....###.f\nfbf...##.#.f\nfifgg######f\nffffffffffff\n\n\n\n\n(pretty easy)\n~fffffffffff\nfbfp.......f\nfif........f\nfbf.....##.f\nfif......##f\nfbf.....##.f\nfif....#.##f\nfbf....####f\nfif...###..f\nfbf....##..f\nfif...##...f\nffffffffffff\n\n\n\n\n(easy/arbirtaray/pretty)\n~fffffffffffff\nfif.....p....f\nfif..#.#.....f\nfif..###.....f\nfif...#..#.#.f\nfif...#..###.f\nfbf...#...#..f\nfifg###...#..f\nfbf.#.....#..f\nfif.#.....#..f\nffffffffffffff\n\n\n\n(too trivial)\n~fffffffffffffffffffffffffffffffff\nfifp.............................f\nfif......#.......................f\nfif.....##.......................f\nfif.....##.......................f\nfif...####.......................f\nfif....#.#.......................f\nfif.....###......................f\nfif......#.......................f\nfif......#...#...................f\nfif.....######...................f\nfifggggggg####gggggggggggggggggggf\nfif..........#...................f\nfif..........#...................f\nfif..........##..................f\nfif..........##..................f\nfif.........###..................f\nfbf...........##.................f\nfif...........##.................f\nfbf............###.#.............f\nfif............######............f\nffffffffffffffffffffffffffffffffff\n\n\n(meh)\n~fffffffffffffffffffffffffffffffff\nfifp.............................f\nfif..............................f\nfif.........#....................f\nfif.........#....................f\nfif........###...................f\nfif..........#...................f\nfif.......#####..................f\nfif......##..###.................f\nfif.....##....##.................f\nfif.....#.....#..................f\nfifgggggggggg###gggggggggggggggggf\nfif...........##.................f\nfif...........#.#................f\nfif...........###................f\nfif............###...............f\nfif.............###..............f\nfbf...............###............f\nfif...............#.##...........f\nfbf...............##.............f\nfif...............#..............f\nffffffffffffffffffffffffffffffffff\n\n\n\n\n\n(meh)\n~fffffffffffffffffffffffffffffffffffffffffff\nfifp.##################.###################f\nfbf...#.#.##.##.##.#..#.#.#.##.#.....#.#.##f\nfif...#.#....##...#########.....######.#.#.f\nfbfgggggggggggggg##g#g##gggggggggg#ggggggggf\nfif...............#....##........###.......f\nffffffffffffffffffffffffffffffffffffffffffff\n\n\n(meh)\n~fffffffffffff\nfifp.........f\nfbf..........f\nfif......#...f\nfbf......#...f\nfif.....##...f\nfbf.....#....f\nfif....##....f\nffffffffffffff\n\n\n\n\n\n(looks good, but too easy?)\n~fffffffffff\nfbf########f\nfif#p.##..#f\nfbf###..###f\nfif#...####f\nfbf#####..#f\nfif#ggg####f\nfbf######.#f\nfif...##...f\nffffffffffff\n\n(trivial)\n~ffffffff\nfifp..##f\nfbf.#..#f\nfif.####f\nfbf.###.f\nfif..#..f\nfffffffff\n\n(trivial)\n~ffffffff\nfif#p...f\nfbf##.#.f\nfif####.f\nfbf..##.f\nfif.##..f\nfffffffff\n\n\n(Trivial)\n~ffffffff\nfifp..#.f\nfbf.#.##f\nfif.####f\nfbf.##.#f\nfif..#..f\nfffffffff\n\n\n(zu einfach)\n~ffffffffff\nfif##p.#..f\nfbf###.#..f\nfif#.###..f\nfbf#.##...f\nfif####...f\nfbfggg###gf\nfif...##..f\nfffffffffff\n\n\n(zu einfach?)\n~ffffffffff\nfifp...###f\nfbf....#.#f\nfif....###f\nfbf....#.#f\nfifgggg###f\nfbf####.##f\nfif.#####.f\nfffffffffff\n\n\n\n(meh)\n~fffffffffff\nfifp....###f\nfif....####f\nfbf....#..#f\nfif.#..####f\nfbfg#gg#gg#f\nfif.#######f\nfbf.....###f\nfif....##..f\nffffffffffff\n\n\n\n(meh)\n~fffffffffffff\nfif#####p....f\nfif#.##......f\nfif#.##......f\nfif#.#.##...#f\nfif#g#g###g##f\nfif####..#.##f\nfif##.####.##f\nfif....##.#.#f\nfbf.....#####f\nfif.....##.##f\nffffffffffffff\n\n\n(meh)\n~fffffffffffff\nfif###p......f\nfif#.#.......f\nfif#.##......f\nfif#.#.#...#.f\nfif#g#g##gg##f\nfif#.#.######f\nfif####..#.##f\nfif.#.#####.#f\nfbf....#.#.##f\nfif.....#####f\nffffffffffffff\n\n\n(trivial)\n~fffffffffffffffffffffff\nfif#########p.#########f\nfif#......#...#.......#f\nfif########....########f\nfif#.....#....##.#....#f\nfif#######gggg##g######f\nfif#.....###.#.####...#f\nfif#############.......f\nfif.#####...#..........f\nfbf.........##.........f\nfif..........##........f\nffffffffffffffffffffffff\n\n(trivial)\n~fffffffffffffffffffffff\nfif#######p#....#######f\nfif#.#.#.#.##....#.#.##f\nfif###.#.###..#..#.#.##f\nfif..#.#.#...###.######f\nfif########gg#g#g#gggg#f\nfif.##...##############f\nfif..#####..#...#.#.#..f\nfif..........####.#.#..f\nfbf..........##........f\nfif.........###........f\nffffffffffffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n(THE REST)\n\n(hard, couldn't solve myself)\n~fffffffffffffff\nfifp.........##f\nfif.........##.f\nfif.........###f\nfif........#..#f\nfbf........#.##f\nfif........#.#.f\nfbf.......#####f\nfif........#.##f\nfbf........#..#f\nfifggggggg##gggf\nfbf......##....f\nfif.....##.....f\nffffffffffffffff\n\n\n\n\n(solved first go, ok? ohne persönlichkeit) \n~fffffffffffff\nfbfp.......##f\nfif........#.f\nfbf........#.f\nfif.......##.f\nfbf......##..f\nfif.......#..f\nfbf......####f\nfif......##.#f\nfbf....###...f\nfif.....#....f\nffffffffffffff\n\n(too routine)\n~fffffffffffff\nfbfp.........f\nfif...#......f\nfbf...#......f\nfif..##......f\nfbf...##.....f\nfif.##.#.....f\nfbf..###.....f\nfif..#.##....f\nfbf....##....f\nfif.....##...f\nffffffffffffff\n\n(scheiße)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif..#.......f\nfbf..##......f\nfif...#......f\nfbf...##.....f\nfif....#.....f\nfbf....##....f\nfif.....#....f\nffffffffffffff\n\n\n(zu einfach/procedural?)\n~ffffffffffffff\nfifp..........f\nfif........#..f\nfif........#..f\nfbf.......###.f\nfif.......#.#.f\nfbf.......#...f\nfif.....###...f\nfbf......#....f\nfif......#....f\nfbf....###....f\nfif..####.....f\nfffffffffffffff\n\n\n\n\n\n(zu einfach)\n~fffffffffffff\nfbfp........#f\nfif.........#f\nfbf........##f\nfif.......###f\nfbf.......#..f\nfif.....###..f\nfbf.....#.#..f\nfif....###...f\nfbf....##....f\nfif.....#....f\nffffffffffffff\n\n(kein level)\n~fffffffffffff\nfif...p......f\nfif..........f\nfif..........f\nfif..#.......f\nfif..#.#####.f\nfif..#.....#.f\nfbf..#####.#.f\nfbf..#.....#.f\nfbf........#.f\nfbfgg.g#####gf\nfifgg.g#gggggf\nffffffffffffff\n\n(zu einfach)\n~ffffffffffffff\nfif...........f\nfif...........f\nfif...........f\nfif...p..#....f\nfif.#....#....f\nfif.#....#....f\nfif.#...##....f\nfif.#....##...f\nfbf.##....#...f\nfbfg.#..#.#...f\nfif..#..#.#...f\nfif..#..#.#...f\nfffffffffffffff\n\n\n\n\n\n(zu einfach?)\n~ffffffffff\nfif.......f\nfbf.#.#.#.f\nfif.#.#.#.f\nfbf.#####.f\nfif..#p#..f\nfbf.g###.gf\nfif.g.#g.gf\nfffffffffff\n\n(no level)\n~fffffffff\nfif...p..f\nfbf.g#.#.f\nfif.g###.f\nfbf....#.f\nfif...##.f\nfbfg..#..f\nfif...#..f\nffffffffff\n\n\n(no level)\nffffffff\nf......f\nf....#.f\nfg...#.f\nf..P.#.f\nf..#.#.f\nf..#.#.f\nf.##.#.f\nffffffff\n\n\n(zu einfach)\n~ffffffffff\nfifp....#.f\nfbf....###f\nfif.....##f\nfbf...###.f\nfif...##..f\nfbf...#...f\nfifg####ggf\nfffffffffff\n\n(kein Level)\n~fffffffffffff\nfif...p......f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbfg.........f\nfif..........f\nffffffffffffff\n\n\n\n(kein Level)\n~fffffffffffff\nfif#..p.#.#..f\nfbf########..f\nfbf#......#.#f\nfbf#.#####..#f\nfbf#.....#..#f\nfbf#..##.#..#f\nfbf#...#.#..#f\nfbf#####.####f\nfbf...#...#..f\nfbfg..#####..f\nfif....#.....f\nffffffffffffff\n\n\n\n\n\n(kein Level)\n~fffffffffffff\nfif...p......f\nfbf######....f\nfbf#....#....f\nfbf##........f\nfbf.#..###...f\nfbf.##.#.#...f\nfbf..#.#.#...f\nfbf..#.###...f\nfbf.##..#....f\nfbfg#...#....f\nfif.#...#....f\nffffffffffffff\n\n\n\n\n(kein Level)\n~fffffffffffff\nfif..........f\nfif.###......f\nfif.#.#...###f\nfif.###...#.#f\nfif.#...###..f\nfifg#.###....f\nfif.###.#....f\nfif.#..###...f\nfbf..p.#.#...f\nfbf...###....f\nfif...#.#....f\nffffffffffffff\n\n\n\n(zu einfach)\n~ffffffff\nfif##p..f\nfbf.####f\nfbf###.#f\nfbf...##f\nfif..##.f\nfffffffff\n\n(kein level)\n~fffffffffffff\nfbfp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..........f\nfif.....#....f\nfbf.....#....f\nfif....###...f\nfbf......#...f\nfif....###...f\nffffffffffffff\n\n(meh)\n~ffffffff\nfif##p..f\nfbf#....f\nfbf####.f\nfbf.##..f\nfif..#..f\nfffffffff\n\n(hmmm dunno -vllt zu einfach?)\n\n~fffffffffff\nfif#####p..f\nfbf##.####.f\nfbf##..##..f\nfbf.#..##..f\nfifggggg##gf\nffffffffffff\n\n(dunno?)\n~ffffffffffffffffff\nfifp............#.f\nfif............##.f\nfif.............##f\nfif..............#f\nfif..............#f\nfif............###f\nfif.........####.#f\nfbf...........##.#f\nfif..........##..#f\nfbf..........##...f\nfif.........###...f\nfbf........###....f\nfifgggggggg##gggggf\nfbf......###......f\nfif....#####......f\nfffffffffffffffffff\n\n(zu einfach)\n~ffffffff\nfif#p...f\nfbf#..#.f\nfbf####.f\nfbf..##.f\nfif..#..f\nfffffffff\n\n(boring!)\n~ffffffff\nfifp#.#.f\nfbf.###.f\nfif..##.f\nfbfg##ggf\nfif..#..f\nfffffffff\n\n(trivial)\n~fffffffffff\nfifp.....#.f\nfif......#.f\nfif......#.f\nfif.....##.f\nfbf.....#..f\nfif.....#..f\nfbfgggg##ggf\nfif....#...f\nffffffffffff\n\n(trivial)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif.......#..f\nfbf.......#..f\nfif......##..f\nfbf......##..f\nfif......#...f\nfbf.....##...f\nfifggggg#ggggf\nffffffffffffff\n\n\n(meh)\n~fffffffffff\nfifp.......f\nfif.#......f\nfbf.##.....f\nfif..#.....f\nfbf..##....f\nfif...#....f\nfbf...##...f\nfif....#...f\nffffffffffff\n\n\n(nicht interessant)\n~fffffffffffff\nfbfp.........f\nfif..........f\nfbf##........f\nfif#.........f\nfbf##........f\nfif#.........f\nfbf####......f\nfif.#.#......f\nfbf.###......f\nfif..###.#...f\nffffffffffffff\n\n(meh)\n~fffffffffffff\nfif#p........f\nfif##........f\nfif#.........f\nfif##........f\nfbf###.......f\nfif#.........f\nfbf##ggggggggf\nfif.##.......f\nfbf..#..#....f\nfif..#.###...f\nffffffffffffff\n\n\n\n\n\n\n\n\n(meh)\n~fffffffffffffffffffffffffffffffff\nfifp..............####...........f\nfbf..............#.#.#...........f\nfbf..............###.............f\nfbf.............###..#...........f\nfifggggggggggggggg#####ggggggggggf\nffffffffffffffffffffffffffffffffff\n\n\n\n(huh not so bad? but hard for some maybe? wait maybe i just solved by chance....)\n~fffffffffffff\nfifp......###f\nfif.#.#...#.#f\nfbf.#.##...##f\nfbf.####...##f\nfbf##..###.##f\nfbf######.#.#f\nfbf.....#####f\nfbf...###.##.f\nfbf...#.#....f\nfif....##....f\nffffffffffffff\n\n\n\nmessage level 5 of 10 : Gallows\n(hard - actually ok? medium difficulty?)\n~ffffffffffff\nfif.........f\nfifp.#......f\nfif..#......f\nfif..###....f\nfif..#......f\nfbf.####....f\nfif...###...f\nfbf...#.#...f\nfif.....#...f\nfbfggggg##ggf\nfif......##.f\nfffffffffffff\n\n\n\n\nmessage level 2 of 10 : ANTENNA 1\n(ok anfangerlevel?)\n~fffffffff\nfbfp#..#.f\nfif##..#.f\nfbf.#.##.f\nfif####.#f\nfbf#..###f\nfifggg#ggf\nffffffffff\n\n\n\nmessage level 3 of 10 : UFO\n(ok! / easy / Space invaders)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..#..#....f\nfif########..f\nfbf#.###..#..f\nfif.....####.f\nfbf..###.##..f\nfif....###...f\nffffffffffffff\n\n\n\n\n(\n(ok anfangerlevel)\n~fffffffff\nfbfp#..##f\nfif.##.##f\nfbf..###.f\nfif...###f\nfbf####..f\nfifggg#ggf\nffffffffff\n)\n\n\n\n\n(\n\n~fffffffffffff\nfifp.......#.f\nfif........##f\nfif........##f\nfif.........#f\nfbf.........#f\nfif.......###f\nfbf.......##.f\nfifggggggg##gf\nfbf.......#..f\nfif...#####..f\nffffffffffffff\n)\n\n\n(ok simple? NAH TOO SIMPLE)\n~ffffffffffffffffffffffffffff\nfifp........................f\nfif###......................f\nfif#.#......................f\nfif###......................f\nfif##.......................f\nfif##.......................f\nfif##.......................f\nfif#........................f\nfif##.......................f\nfif##.......................f\nfif##.......................f\nfif##..#.#..................f\nfif##.####..................f\nfif#####.#..................f\nfifgg#g#g#ggggggggggggggggggf\nfif..#.###..................f\nfif......##.................f\nfif......##.................f\nfif......#.#................f\nfif......####...............f\nfif.......#.#...............f\nfbf.......#.#...............f\nfif.....######..............f\nfbf.....#..#####.##.........f\nfif.........#.####..........f\nfffffffffffffffffffffffffffff\n\n\n\n\n(alien slug attack!)\nmessage level 6 of 10 : Alien Slug Attack\n~fffffffffffffffff\nfifp...####......f\nfbf....#####.....f\nfbf...##..##.....f\nfbf....#..##.....f\nfifgggggggg####ggf\nffffffffffffffffff\n\n\n\n\n\n(decent - middle-hard? -- too mich like final level? (difficulty/appearance-wise?)\n~fffffffffffffff\nfif#p..........f\nfif#...........f\nfif##..........f\nfif#...........f\nfbf###.........f\nfif#.#.........f\nfbf.##.#.......f\nfif..###.......f\nfbf...###......f\nfif....#...#...f\nfbfgggg######ggf\nfif......##....f\nffffffffffffffff\n)\n\n\n\n(fun to find the right points? MEH)\n~ffffffffffffffffffff\nfifp................f\nfif.................f\nfif...............##f\nfif................#f\nfif...............##f\nfif...............##f\nfif.............####f\nfif................#f\nfif..............###f\nfif...............##f\nfif................#f\nfif.........#.#...##f\nfif.........#.####.#f\nfif........####.####f\nfif............##...f\nfifgggggggg#######ggf\nfif........#..#.....f\nfif........######...f\nfif.........##......f\nfbf........##.......f\nfif.....####........f\nfbf......#..........f\nfif......#..........f\nfbf....###..........f\nfif.#######.........f\nfffffffffffffffffffff\n\n\n\n\n\n(wie ein gebäude aus - ziemlich einfach)\n~fffffffffffff\nfifp........#f\nfif........##f\nfif........##f\nfif........##f\nfbf.........#f\nfif.........#f\nfbfgggggggg##f\nfif......###.f\nfbf.......##.f\nfif....####..f\nffffffffffffff\n\n\n\n\n\n\n(nice/ok!)\n~ffffffffff\nfifp.....#f\nfbf.....##f\nfif....###f\nfbf....#.#f\nfif....###f\nfbfggg###gf\nfif..##...f\nfffffffffff\n\n\nmessage level 4 of 10 : Duck Tree\n(ducktree!)\n~fffffffffff\nfifp.##..##f\nfif.###.###f\nfbf...##.#.f\nfif..###.#.f\nfbf....####f\nfifgggg##ggf\nfbf....#...f\nfif....#...f\nffffffffffff\n\n\n\n)\n", [2, 2, 2, 2, 4], "background exploding fenster tl:0,background fenster fenster_right:1,1,1,1,1,1,1,1,background fenster:2,background fenster fenster_down:3,background inventar:4,\n4,background bang_schatten inventar:5,4,background bang inventar:6,4,6,4,background fenster fenster_up:7,2,background fenster fenster_left fenster_right:8,8,8,\n8,8,8,8,8,2,3,background:9,9,9,9,background htarget player_h:10,\n9,background landbackground:11,11,7,3,9,9,9,9,background htarget:12,background bond_r wall:13,11,\n11,7,3,9,9,9,9,background bond_d bond_r htarget wall:14,background bond_d bond_l bond_u wall:15,background bond_u landbackground wall:16,11,7,\n3,9,9,9,background bond_d wall:17,background bond_l bond_u htarget wall:18,background bond_d bond_r wall:19,background bond_r bond_u landbackground wall:20,11,7,3,9,\n9,9,9,12,background bond_d bond_l wall:21,background bond_d bond_l bond_u landbackground wall:22,20,7,3,9,9,9,\n9,12,9,11,background bond_l landbackground wall:23,7,3,9,9,9,9,12,\n9,11,11,7,3,9,9,9,9,12,9,11,\n11,7,2,background fenster fenster_left:24,24,24,24,24,24,24,24,2,\n", 16, "1627892617303.8054"] + "A CLEAR VIEW OF THE SKY", + ["title A CLEAR VIEW OF THE SKY\nauthor increpare\nhomepage www.increpare.com\n\nnorepeat_action\n\nrun_rules_on_level_start\n\ncolor_palette 2\n\nbackground_color #005784\ntext_color lightblue\n\n(uses https://github.com/increpare/Zersto-rungto generate levels)\n========\nOBJECTS\n========\n\nbackground\nblue\n\nlandbackground\ngreen\n\n\nwall \ndarkblue gray lightgray\n00000\n01110\n01110\n01110\n00000\n\nplayer_h\ntransparent\n.....\n..0..\n.000.\n..0..\n.....\n\n\nplayer_v\nyellow\n.....\n..0..\n.000.\n..0..\n.....\n\n\nfenster\n#005784\n\n\nfenster_up\n#1d3d60 lightblue\n00000\n.....\n.....\n.....\n.....\n\nfenster_down\ndarkblue #17669f\n.....\n.....\n.....\n.....\n11111\n\nfenster_left\n#1d3d60 #17669f\n1....\n1....\n1....\n1....\n1....\n\nfenster_right\n#1d3d60\n....0\n....0\n....0\n....0\n....0\n\nhtarget\norange\n.....\n.....\n00000\n.....\n.....\n\n\nvtarget\norange\n..0..\n..0..\n..0..\n..0..\n..0..\n\ninventar\ndarkblue\n\nbang\n yellow red\n...0.\n..00.\n.010.\n.00..\n.0...\n\nbang_schatten\ndarkgray\n...0.\n..00.\n.0.0.\n.00..\n.0...\n\nbond_u\ndarkblue gray lightgray\n.111.\n.....\n.....\n.....\n.....\n\n\n\nbond_d\ndarkblue gray lightgray\n.....\n.....\n.....\n.....\n.111.\n\n\n\nbond_l\ndarkblue gray lightgray\n.....\n1....\n1....\n1....\n.....\n\n\n\nbond_r\ndarkblue gray lightgray\n.....\n....1\n....1\n....1\n.....\n\n\n\n\ntl\ntransparent\n\nexploding\ntransparent\n\nexplosion\nred yellow\n.1.1.\n10.01\n..0..\n10.01\n.1.1.\n\nnofall\nred\n.0...\n.....\n.....\n.....\n.....\n\nfall\nlightblue\n.0...\n.....\n.....\n.....\n.....\n\n\nsky_darker 7\ndarkred darkblue\n01010\n10101\n01110\n10101\n01011\n\nsky_darker2 8\ndarkbrown black\n01010\n10101\n01110\n10101\n01011\n\n\nsky_darker4 0\nblack darkblue\n11010\n10111\n01010\n11101\n01011\n\nsky_darker3 9\nwhite black\n11111\n11101\n11111\n11111\n11111\n\nsky_darker7 w\nblack\n\nsky_pink 2\nred darkblue\n01010\n10101\n01110\n10101\n01011\n\nsky_orange 1\nred lightred\n01000\n10101\n00010\n01010\n00000\n\n\nsky_red 3\nred orange\n01010\n10101\n01010\n10101\n01010\n\nsky_yellow 4\nyellow red orange\n12121\n21212\n10001\n00000\n00000\n\nsky_purple 5 \nred blue\n01010\n11101\n01010\n10111\n01010\n\n\nsky_land 6\ndarkgreen green\n01010\n10101\n01010\n10101\n01010\n\n=======\nLEGEND\n=======\n\nplayer = player_h or player_v\ntarget = htarget or vtarget\n\n. = Background\n# = wall\nP = Player_h\nf = fenster\n\ng = landbackground\n\nobstacle = wall\n~ = tl and fenster\ni = inventar\nb = bang and inventar\nbond = bond_u or bond_d or bond_l or bond_r\n\nfallblocker = wall or fenster\nanimation = 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 or 0\n=======\nSOUNDS\n=======\n\nsfx0 55915302 (bang)\nsfx1 90167907 (other agains)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nlandbackground, inventar\nwall\nbond_u\nbond_d\nbond_l\nbond_r\nexplosion\ntarget\nPlayer, fenster, bang,bang_schatten\nfenster_up\nfenster_down\nfenster_left\nfenster_right\ntl\nexploding\nnofall\nfall\n1,2,3,4, 5, 6,7,8,9,0,w\n\n======\nRULES\n======\n\n\nup [fenster | no fenster ]-> [ fenster fenster_up | ]\ndown [fenster | no fenster ]-> [ fenster fenster_down | ]\nleft [fenster | no fenster ]-> [ fenster fenster_left | ]\nright [fenster | no fenster ]-> [ fenster fenster_right | ]\n\n[ tl no exploding ] [bond]->[ tl ] [ ]\ndown [ tl no exploding ] [wall | wall]->[tl][ wall bond_d | wall bond_u ]\nright [ tl no exploding ] [wall | wall]->[tl][ wall bond_r | wall bond_l ]\n\n[tl]->[tl exploding]\n\ndown [ wall no bond_d | fallblocker ] -> [ wall nofall | fallblocker ]\n(floodfill)\nup [nofall bond_u | ] -> [ nofall bond_u | nofall ]\n+ down [nofall bond_d | ] -> [ nofall bond_d | nofall ]\n+ left [nofall bond_l | ] -> [ nofall bond_l | nofall ]\n+ right [nofall bond_r | ] -> [ nofall bond_r | nofall ]\n\n\ndown [ wall no nofall | no fallblocker ] -> [ wall fall | ]\n\nup [fall bond_u | ] -> [ fall bond_u | fall ]\n+ down [fall bond_d | ] -> [ fall bond_d | fall ]\n+ left [fall bond_l | ] -> [ fall bond_l | fall ]\n+ right [fall bond_r | ] -> [ fall bond_r | fall ]\n\n[fall wall]->[down wall] sfx1 again\n\n[fall]->[]\n[nofall]->[]\n\n[up wall bond ] -> [ up wall up bond ]\n+ [down wall bond ] -> [ down wall down bond ]\n+ [left wall bond ] -> [ left wall left bond ]\n+ [right wall bond ] -> [ right wall right bond ]\n\n[target]->[]\n\n\n[horizontal player ] -> cancel\n(\n[up player_h ] -> [ up player_v ]\n[down player_h ] -> [ down player_v ]\n[left player_v ] -> [ left player_h ]\n[right player_v ] -> [ right player_h ]\n)\n\nright left down [ landbackground | no landbackground no fenster ] -> [ landbackground | landbackground no fenster ]\n\n\n[player_h ] -> [ player_h htarget ]\n[player_v ] -> [ player_v vtarget ]\n\nhorizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nvertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\nup [ bond_u | explosion ] -> [ | explosion ]\ndown [ bond_d | explosion ] -> [ | explosion ]\nleft [ bond_l | explosion ] -> [ | explosion ]\nright [ bond_r | explosion ] -> [ | explosion ]\n\n[explosion wall ] -> [ no bond ] sfx1 again\n\n[explosion ] -> [ ] again\n\n[action player ] [bang] -> [ player ] [ action bang_schatten ]\n\n[action bang_schatten ] [ target ]-> [ action bang_schatten ] [ explosion ] sfx0 again\n\n\nlate [target]->[]\n\nlate [player_h ] -> [ player_h htarget ]\nlate [player_v ] -> [ player_v vtarget ]\n\nlate horizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nlate vertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll wall on landbackground \n\n=======\nLEVELS\n=======\n\n\n(OK LEVELS)\n\n\n\n\nmessage All those ugly buildings blocking our view.\nmessage Let's DEMOLISH them to SAVE OUR SKY\n\nmessage level 1 of 13 : FACTORY\n(sehr einfach)\n~ffffffffffffff\nfif...........f\nfif...........f\nfif...........f\nfif....p......f\nfif.....#.....f\nfif...#.#.....f\nfif...#.###...f\nfbf...######..f\nfif..###...#..f\nfbfg.#...#.#..f\nfif..#...#.#..f\nfffffffffffffff\n\n\nmessage Ah, what a lovely view of the sky!\n\nmessage level 2 of 13 : Lop-sided Electricity Poll\n(actually ok?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif...#......f\nfif...##.....f\nfif...#......f\nfbf...##.....f\nfif....##....f\nfbfggggg#ggggf\nfif.....#....f\nffffffffffffff\n\n\n\n\nmessage level 3 of 13 : Water Pump\n(ok anfängerlevel?)\n~fffffffff\nfif...p..f\nfbf###...f\nfif#.###.f\nfbf#.##..f\nfif#.##..f\nfbf#gg##gf\nfif...#..f\nffffffffff\n\n\n\n\nmessage level 4 of 13 : Electricity Supply\n\n(einfach/gut?)\n~ffffffff\nfif###p#f\nfbf#.#.#f\nfbf#####f\nfbf##.#.f\nfifg####f\nfffffffff\n\n\nmessage level 5 of 13 : Water Font\n(hard)\n~fffffffffffff\nfifp....###..f\nfbf...#.#.#..f\nfbf...####...f\nfbf...##.##..f\nfifgg#g####ggf\nffffffffffffff\n\n\n\nmessage level 6 of 13 : Angry Goose\n(tricky + sieht gut aus)\n~ffffffffffff\nfifp##.####.f\nfbf.####.##.f\nfbf...##.#..f\nfbf...###...f\nfifgg##gggggf\nfffffffffffff\n\n\n\nmessage level 7 of 13 : Lean-to\n(nice/ok!)\n~fffffffffff\nfifp..#....f\nfif..##....f\nfbf.##.....f\nfif..#.....f\nfbf####....f\nfif...##...f\nfbfggg##gggf\nfif....##..f\nffffffffffff\n\n\n(medium-hard / fun! )\nmessage level 8 of 13 : Treehouse\n~fffffffffffffff\nfifp...........f\nfif........#...f\nfif........#...f\nfif.......####.f\nfbf.......#..#.f\nfif......#####.f\nfbf........#...f\nfif......###...f\nfbf......##....f\nfif.....##.....f\nfbfgggg#g#gggggf\nfif...####.....f\nffffffffffffffff\n\n\n\n\nmessage level 9 of 13 : Ugly Antenna\n(i had fun solving this)\n~fffffffffffff\nfifp.###.####f\nfbf..#.#....#f\nfif..#.##.###f\nfbf..#.###.#.f\nfif..####.##.f\nfbfggggg###ggf\nfif.....#....f\nffffffffffffff\n\n\n\n\nmessage level 10 of 13 : 60's Futuristic settlement\n(ok/interesting to solve!)\n~fffffffffff\nfbf##p.####f\nfif#...#..#f\nfbf#...####f\nfif######.#f\nfbf###.##.#f\nfifggg##gg#f\nfbf...#.#.#f\nfif...###..f\nffffffffffff\n\n\nmessage level 11 of 13 : Dystopic settlement\n(futuristic city - hardlevel?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..##......f\nfif..#.......f\nfbf..##.#.#..f\nfif..##.###..f\nfbf..###.###.f\nfif....#.##..f\nfbf....#.#...f\nfifggg####gggf\nffffffffffffff\n\n\nmessage level 12 of 13 : Space elevator\n(interesting? seemingly impossible?)\n~fffffffffffff\nfif#####p....f\nfif#.#.#.....f\nfif#.####....f\nfif#.##......f\nfif#g#gggggggf\nfif#.#.......f\nfif#.##......f\nfif#.#.......f\nfif#.##......f\nfbf#.#.......f\nfif#.###.....f\nfbf#.#.###.#.f\nfif#.###..##.f\nfbf##..####..f\nfif.#######..f\nffffffffffffff\n\n\n\n\nmessage level 13 of 13 : Building seeminly purposely constructed to block my view.\n\n(can't easily solve meh - could be ok final level? FINAL LEVEL)\n~fffffffffffffffff\nfif###p..........f\nfif#.##..........f\nfif####..........f\nfif...##.........f\nfif####..........f\nfif.#............f\nfif##............f\nfif###...........f\nfif..#...........f\nfif#####.........f\nfif...#.#.#......f\nfif######.#......f\nfif###..###......f\nfif#..###........f\nfif.....##.......f\nfifgggggg#gggggggf\nfif......###.....f\nfif.......##.....f\nfif.......##.....f\nfbf........##....f\nfif........##....f\nfbf.........##...f\nfif.........##...f\nfbf.........#####f\nfif............#.f\nffffffffffffffffff\n\n\nmessage Ahh, the sky is clear again, just in time for the sunset\n\n\n\n5555555555555555555\n5555522222222555555\n5552222222222222555\n5222222222222222225\n2222222111112222222\n2222211111111122222\n2221111133311111222\n2211111334331111112\n6666666666666666666\n6666666666666666666\n6666666666666666666\n\n\n\n\n22222222222222222222\n22222222222222222222\n22222222222222222222\n22222222222222222222\n22222221212122222222\n22221212121212122222\n22212121111121212222\n22121211111112121222\n66666666666666666666\n66666666666666666666\n66666666666666666666\n\n\n\n00000077777777000000\n00007777777777770000\n00077777777777777000\n07777777777777777770\n77777722222222777777\n77772222222222227777\n77722221111122222777\n77222211111112222277\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n88888888888888888888\n88888880000088888888\n88888000000000088888\n88800000000000000888\n88000000000000000088\n80000000000000000008\n00000000222000000000\n00000002222200000000\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwww000wwwwwwwww\nwwwww000222000wwwwww\n00000022222220000000\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n\n\nw9wwwwwwww9wwwwwwwww\nwwwwwwwwwwwwww9www9w\nwwww9wwwwwwwwwwwwwww\nwwwwwwwww9wwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwww9www\nw9wwwww9wwwww9wwwwww\nwwwwwwwwwwwwwwwwwwww\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\nmessage The End \n\n\n\n(\n\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf.....#....f\nfif....####..f\nfbf...##..#..f\nfif#.#..###..f\nfbf#####.##..f\nfif.#.####...f\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfbfp.........f\nfif....#.....f\nfbf....##....f\nfif....###...f\nfbf......#...f\nfif..######..f\nfbf...#.#.#..f\nfif.....####.f\nfbf....#.##..f\nfifgg#####gggf\nffffffffffffff\n\n(microscope?)\n~fffffffffffff\nfbfp.........f\nfif......##..f\nfbf.....##...f\nfif....##....f\nfbf....#.##..f\nfif....#.#...f\nfbf....####..f\nfif.......#..f\nfbf..######..f\nfifgg####ggggf\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.......#.f\nfif......#.#.f\nfif......#.##f\nfif......####f\nfbf....####.#f\nfifggggg#g##gf\nfbf...#####.#f\nfif....######f\nfbf..#.###...f\nfif.######...f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.....#...f\nfif......##..f\nfif....####..f\nfif....##.#..f\nfbf....###...f\nfifgg#g####ggf\nfbf..####.#..f\nfif..#####...f\nfbf..#######.f\nfif....#####.f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.....#...f\nfif....#.#...f\nfif....###...f\nfif...###..#.f\nfbf...#.####.f\nfifgggg##ggggf\nfbf...#####..f\nfif....####..f\nfbf..######..f\nfif..########f\nffffffffffffff\n\n\n\n\n~fffffffffff\nfbfp...#.#.f\nfif....#.##f\nfbf....###.f\nfif.###.###f\nfbf...###.#f\nfif.....##.f\nfbfggg###ggf\nfif...#####f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp...##..f\nfif.######.f\nfbf....#.#.f\nfif...###..f\nfbf...#.##.f\nfif....###.f\nfbfggg#gg#gf\nfif..######f\nffffffffffff\n\n(hard, but looks nice)\n~fffffffffff\nfbfp...#..#f\nfif....####f\nfbf.....#.#f\nfif...###..f\nfbf.....###f\nfif...###..f\nfbfg##g#g##f\nfif..######f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp..#.##.f\nfif...#.#..f\nfbf...#####f\nfif....#.#.f\nfbf....###.f\nfif...###..f\nfbfg###gg#gf\nfif.#.####.f\nffffffffffff\n\n~fffffffffff\nfifp.......f\nfif........f\nfif#.......f\nfbf###.....f\nfif#.##....f\nfbf##......f\nfif##......f\nfbf#.......f\nfif##.#....f\nfbf##.#....f\nfif.####...f\nfbf.#.####.f\nfif....#.#.f\nfbfgggg###gf\nfif....#...f\nffffffffffff\n\n\n\n(hard/unsolved)\n~fffffffffffff\nfifp...####..f\nfif.....##...f\nfbf....##....f\nfif...#.##...f\nfbf...#.#..#.f\nfif...####.#.f\nfbf....#.###.f\nfif....#.#...f\nfbfggg#######f\nfif..#...#...f\nfbf.######...f\nfif...###....f\nffffffffffffff\n\n\n(haard, pretty, unsolved)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf.....#....f\nfif....###...f\nfbf...#####..f\nfif.....#..#.f\nfbf.....####.f\nfif..#.#.#.#.f\nfbf.##.#.##..f\nfif..#.####.#f\nfbfgg##ggg#g#f\nfif...#######f\nffffffffffffff\n\n\n(haard, pretty, ,unsolved)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf...##..#..f\nfif.##.####..f\nfbf..##.#.#..f\nfif...#.###..f\nfbf...##.##..f\nfif....###...f\nfbf......#...f\nfif....######f\nfbfgg###ggg##f\nfif....#####.f\nffffffffffffff\n\n(haard ,unsolved)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfbf........f\nfif....###.f\nfbf.....###f\nfif......#.f\nfbf......#.f\nfif.....##.f\nfbf......##f\nfif....####f\nfbf....##..f\nfif...###..f\nfbf....##..f\nfifggg##gggf\nffffffffffff\n\n\n\n(too tired, don't want to solve)\n~ffffffffffffffffffffffffffffffffffffff\nfifp..................................f\nfif.......#...........................f\nfif.......#...........................f\nfif#.....##...........................f\nfif##...##............................f\nfif.####.#............................f\nfif....####...........................f\nfif....##.#...........................f\nfif.......##..........................f\nfif......####.........................f\nfif........#.#........................f\nfif.......####........................f\nfif.......#.##........................f\nfifggggggg#g##ggggggggggggggggggggggggf\nfif........####.......................f\nfif...........#.......................f\nfif........######.....................f\nfif........#.##.##....................f\nfif............##.....................f\nfbf..........####.....................f\nfif............####...................f\nfbf...........##.###..................f\nfif..............#.#..................f\nfbf................#..................f\nfif................###................f\nfffffffffffffffffffffffffffffffffffffff\n\n\n~fffffffffffff\nfbfp.#.......f\nfif..###.....f\nfbf..##......f\nfif...##.....f\nfbf..#.##....f\nfif.#####....f\nfbf...#.#..#.f\nfif....######f\nfbf.....#..#.f\nfifggggg##gggf\nffffffffffffff\n\n\n~fffffffffffff\nfifp.....##.#f\nfif.......#.#f\nfif.......#.#f\nfif.......###f\nfif.........#f\nfif.........#f\nfifggggggggg#f\nfif.......###f\nfif......##.#f\nfif.....###.#f\nfif.......###f\nfif.........#f\nfif.......###f\nfif......#..#f\nfif......####f\nfif.......#.#f\nfif........##f\nfif.......###f\nfif.........#f\nfif........##f\nfif.......###f\nfif........##f\nfif........##f\nfif.........#f\nfbf..##...###f\nfif..#...##.#f\nfbf..##....##f\nfif..###.###.f\nfbf...##.#...f\nfif...#####..f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif.........#f\nfif.......###f\nfif........##f\nfif........##f\nfif........##f\nfif.....##.##f\nfifgggggg#g##f\nfif.....#####f\nfif.........#f\nfif.....#####f\nfif.........#f\nfif...#######f\nfif.....#...#f\nfif......####f\nfif.........#f\nfif.......###f\nfif......##.#f\nfif.......#.#f\nfif.......###f\nfif......#..#f\nfif......####f\nfbf.........#f\nfif.......###f\nfbf.......#.#f\nfif.......##.f\nfbf.....###..f\nfif..#####...f\nffffffffffffff\n\n\n\n~fffffffffffffffffffffff\nfifp.................##f\nfif.................#.#f\nfif.................###f\nfif...................#f\nfif...................#f\nfif..................##f\nfifgggggggggggggggggg##f\nfif..................##f\nfif.................#.#f\nfif.................#.#f\nfif.............###.###f\nfif..............#.##.#f\nfif..............###..#f\nfif...............#.#.#f\nfbf...............#.###f\nfif...##....#.##..###.#f\nfbf...###.###..#.#.#.##f\nfif....####.#..#######.f\nfbf......########..#.#.f\nfif..........##......#.f\nffffffffffffffffffffffff\n\n\n\n~ffffffffffffffffff\nfif##p.....#######f\nfif##.......##...#f\nfif#..#.......####f\nfif######.....####f\nfbf#....##..###..#f\nfif######...#.#.##f\nfbfg#gg####g##ggggf\nfif.....#.#####...f\nfbf.....###.#.....f\nfif.......##......f\nfffffffffffffffffff\n\n\n\n~ffffffffffffffffff\nfif########p......f\nfif#.#.#.#........f\nfif#.#.#.#...#....f\nfif#.######.######f\nfbf#g##gg#######ggf\nfif#.#...##.#..##.f\nfbf###....#.###...f\nfif##.....###.....f\nfbf#....####......f\nfif.......#.......f\nfffffffffffffffffff\n\n\n\n~fffffffffffffffffffffff\nfifp.......############f\nfif......####.#.......#f\nfif......#.#.#.########f\nfif.......##.#.#......#f\nfbfggggggg#g##g########f\nfif......###.#.#.#.####f\nfbf........######...#..f\nfif.....###....#.......f\nfbf.......######.......f\nfif.....########.......f\nffffffffffffffffffffffff\n\n\n\n\n\n~fffffffffffffffffffffff\nfif###p########.##.####f\nfif#####..#.#...####..#f\nfif...#.###.##....#.###f\nfif#######..#.#########f\nfbf.#...#.#.######.#...f\nfifg#####g##g##ggggggggf\nfbf.....######.........f\nfif.......#..##........f\nfbf.........###........f\nfif..........###.......f\nffffffffffffffffffffffff\n\n\n\n\n~fffffffffffffffffffffff\nfif#########p....##....f\nfif#.#.#.##....###.....f\nfif#.#.#.#....#.####...f\nfif#.#.#.#....#.#..#...f\nfbf#g#g###gggg#g###ggggf\nfif####..#.#..###.#....f\nfbf...####.#..##.......f\nfif...##.#.##.#.#......f\nfbf....##########......f\nfif....#....##.#.......f\nffffffffffffffffffffffff\n\n\n\n(hard, haven't solved manually)\n~fffffffffffff\nfif###p......f\nfbf#.#.......f\nfif#.###.....f\nfbf#.#.##....f\nfif####g####gf\nfbf##.####...f\nfif.##..#....f\nffffffffffffff\n\n\n(too hard)\n~fffffffffffff\nfif#####p....f\nfif#.#.#.....f\nfif#.##.#....f\nfif#.#####...f\nfif#.##.#....f\nfif#g#gggggggf\nfif#.####....f\nfif#.#.#..##.f\nfif#.###.#.##f\nfbf##..#####.f\nfif.####.....f\nfbf...###....f\nfif....#.....f\nfbf....#.##..f\nfif....###...f\nffffffffffffff\n\n\n\n(hard, looks ok, but meh)\n~fffffffffffff\nfif###p#.....f\nfif##.##.....f\nfif##.#......f\nfif####......f\nfif#.#.......f\nfbf#.#.......f\nfif###.......f\nfbf#.##......f\nfif#.##......f\nfbf##g##gggggf\nfif.###......f\nfbf.#.##.....f\nfif...#......f\nfbf..###.#...f\nfif....####..f\nffffffffffffff\n\n\n(hard, looks ok, but meh)\n~fffffffffffff\nfif##p#......f\nfif####......f\nfif#.##......f\nfif#.#.......f\nfif#.#.......f\nfbf###.......f\nfif#.........f\nfbf###.......f\nfif#.........f\nfbf#####gggggf\nfif#.##.#....f\nfbf..##.##...f\nfif..#####...f\nfbf.....###..f\nfif...###....f\nffffffffffffff\n\n(hmmm! not sure!)\n~ffffffffffffffffffffffffffff\nfifp........................f\nfif.........................f\nfif.........................f\nfif.........................f\nfif....................##...f\nfif.....................##..f\nfif....................##...f\nfif...................###...f\nfif...................##....f\nfif.................####....f\nfifgggggggggggggggggggg###ggf\nfif...............######.##.f\nfif..................#.#....f\nfif..................####...f\nfif................####.#...f\nfif................###......f\nfif..................##.....f\nfif..................#.##...f\nfif................###.##...f\nfbf................#.#####..f\nfif...............##.#......f\nfbf................####.....f\nfif................##.......f\nfbf.............#####.......f\nfif.........#####...........f\nfffffffffffffffffffffffffffff\n\n\n\n(soll schwierig sein - will nicht lösen!)\n~fffffffffff\nfifp.......f\nfif........f\nfbf........f\nfif....#...f\nfbf..###...f\nfif....##..f\nfbf...#.#..f\nfif...#.##.f\nfbf...#.###f\nfif..###.##f\nfbf..#.###.f\nfifgggg##ggf\nffffffffffff\n\n\n(soll schwierig sein - ja zu schwierig)\n~ffffffffffff\nfif.........f\nfbf.p.......f\nfif...#.....f\nfbf...#.....f\nfif...###...f\nfbf...#.##..f\nfif.#####...f\nfbf..#..###.f\nfif...##..#.f\nfbf....####.f\nfifggggg##ggf\nfffffffffffff\n\n(hard - will nicht lösen )\n~fffffffffffff\nfifp.........f\nfif......#...f\nfif.....##...f\nfif....##....f\nfbf....#.##..f\nfif....###...f\nfbfgggg##ggggf\nfif...###....f\nfbf.....#....f\nfif....##....f\nffffffffffffff\n\n\n(should be hard?)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfif...##...f\nfbf..###...f\nfif.###....f\nfbf...##...f\nfif....#...f\nfbf..#.##..f\nfifgg##g#g.f\nfbf...#.#..f\nfif...###..f\nffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n(zeimlich einfach!)\n~fffffffffff\nfifp.#..#..f\nfif..##.#..f\nfbf...#.##.f\nfif...####.f\nfbf....##..f\nfif..###...f\nfbfgggg#gggf\nfif....#...f\nffffffffffff\n\n\n(simple/ok)\n~ffffffffff\nfifp.#..##f\nfbf..#####f\nfif..#.#.#f\nfbf...##..f\nfif..##...f\nfbfggg###gf\nfif..##...f\nfffffffffff\n\n\n(simple/ok)\n~fffffffffff\nfifp......#f\nfif......##f\nfbf......##f\nfif.....###f\nfbf.......#f\nfifgggggg##f\nfbf.....##.f\nfif...###..f\nffffffffffff\n\n\n\n\n(simple/ok / ok maybe nicer than ok! :] )\n~fffffffffff\nfifp....#..f\nfif...#.##.f\nfbf...###..f\nfif..###...f\nfbf...#....f\nfif...##...f\nfbfgggg##ggf\nfif....#...f\nffffffffffff\n\n\n\n\n\n\n\n(beautiful-looking? not fun to solve)\n~fffffffffff\nfbf########f\nfif##p...##f\nfbf##...#.#f\nfif#.#..###f\nfbf#.#...##f\nfif###g#g##f\nfbf#.######f\nfif....#.#.f\nffffffffffff\n\n\n\n\n\n\n\n(ok to solve!)\n~fffffffffff\nfbfp...####f\nfif....#..#f\nfbf....####f\nfif#.###..#f\nfbf#.#.####f\nfif####gg##f\nfbf.#.####.f\nfif....#.#.f\nffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n~fffffffffffff\nfifp...######f\nfif.......#.#f\nfif.........#f\nfif.......###f\nfif.......#.#f\nfif.....#####f\nfifgggggg##g#f\nfif......#.##f\nfif......#.##f\nfbf......#.##f\nfif......####f\nfbf......##.#f\nfif...#..#...f\nfbf..#####...f\nfif.....###..f\nffffffffffffff\n\n\n(dunno? schwierig)\n~fffffffffffff\nfbf#####p####f\nfif...####..#f\nfbf....#.####f\nfif.....#.#.#f\nfbf.....#.###f\nfif.....#.#.#f\nfbf.....#.#.#f\nfifgggg######f\nfbf......###.f\nfif....###...f\nffffffffffffff\n\n\n\n\n\n~fffffffffffff\nfifp..#.###..f\nfbf..##.#.#..f\nfbf...####...f\nfbf....##.#..f\nfifg##g#g##ggf\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif...#......f\nfif...###....f\nfbf....###...f\nfif.....#....f\nfbf....###...f\nfif...##.....f\nfbfgg##ggggggf\nfif.#####....f\nffffffffffffff\n\n\n\n~ffffffff\nfif....#f\nfif....#f\nfif....#f\nfif..###f\nfif....#f\nfif.p.##f\nfif....#f\nfif#.###f\nfif#..#.f\nfbf####.f\nfif#.#..f\nfbf#g#ggf\nfif###..f\nfbf..##.f\nfif###..f\nfbf#.##.f\nfif####.f\nfffffffff\n\n\n(Tricky)\n~fffffffffff\nfbfp.......f\nfif........f\nfbf...#....f\nfif...##...f\nfbf..#.#...f\nfif..#.###.f\nfbf.###.#..f\nfif...####.f\nffffffffffff\n\n\n~fffffffffff\nfbfp..##...f\nfif....##..f\nfbf...##...f\nfif...###..f\nfbf...#....f\nfif...###..f\nfbfggggg#ggf\nfif...####.f\nffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif...#......f\nfif...#......f\nfif...##.....f\nfbf....#.....f\nfif....##....f\nfbf.....#....f\nfif....###...f\nfbfggg#gg##ggf\nfif...####...f\nffffffffffffff\n\n\n\n\n~fffffffffff\nfifp...###.f\nfif...##.#.f\nfbf..#.###.f\nfif..###.#.f\nfbfggg####gf\nfif.....###f\nfbf...###..f\nfif...####.f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif.....#..f\nfif...###..f\nfif.....###f\nfbf....##..f\nfif...##...f\nfbf.#.##..#f\nfif.##.##.#f\nfbf#g#g#g##f\nfif########f\nfbf#......#f\nfif########f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif..#.....f\nfbf..##....f\nfif..###...f\nfbf..#.#...f\nfif..###...f\nfbfggg###ggf\nfif....#...f\nffffffffffff\n\n\n~fffffffffff\nfifp...##..f\nfif....###.f\nfif...##.#.f\nfif...#.#..f\nfbf...#.#..f\nfif...#.###f\nfbf..######f\nfifggg##gggf\nfbf....####f\nfif....#..#f\nfbf####.###f\nfif.#######f\nffffffffffff\n\n\n\n\n~ffffffffff\nfifp......f\nfif.......f\nfif.......f\nfif.......f\nfbf..###..f\nfif..#.#..f\nfbf.#.##..f\nfif.#####.f\nfbf...#...f\nfif.###...f\nfbfgg#g##gf\nfif..###..f\nfffffffffff\n\n\n\n~ffffffff\nfifp###.f\nfbf.#.##f\nfif.####f\nfbf.##..f\nfif..##.f\nfffffffff\n\n\n~fffffffffff\nfifp###....f\nfbf.#.##...f\nfbf.#.##...f\nfbf.#.##...f\nfifgggg##ggf\nffffffffffff\n\n\n~fffffffffff\nfifp...###.f\nfbf..#.#.#.f\nfbf..##.##.f\nfbf.#####..f\nfifgggg####f\nffffffffffff\n\n\n\n\n~fffffffffffff\nfifp...##.#..f\nfif....#.##..f\nfbf....#.##..f\nfif....#.##..f\nfbf....#.#.##f\nfif...######.f\nfbfggg#g##gggf\nfif..####....f\nfbf.....##...f\nfif...###....f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp....#....f\nfif.....#.#..f\nfif.....###..f\nfif...###.#..f\nfbfggg#g#####f\nfif....##.###f\nfbf...#.###..f\nfif...####...f\nfbf......##..f\nfif...#####..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp..#.#..f\nfbf...###..f\nfif....##..f\nfbfggg##gggf\nfif....#...f\nffffffffffff\n\n\n\n~fffffffffffff\nfifp...##....f\nfif.....#....f\nfif.....#....f\nfifggggg#ggggf\nfif#.####....f\nfif#.#..#....f\nfbf##.###....f\nfif.###.#####f\nfbf....#.#...f\nfif..######..f\nffffffffffffff\n\n\n~fffffffffff\nfifp...#.#.f\nfbf....###.f\nfif....##..f\nfbfggg#g###f\nfif...###..f\nffffffffffff\n\n\n~fffffffff\nfbfp##.#.f\nfif..#.#.f\nfbf..####f\nfif.###..f\nfbf...##.f\nfifggg#ggf\nffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif.......#..f\nfbf.......#..f\nfif.......#..f\nfbf....#####.f\nfif...####...f\nfbf.....#....f\nfifggggg##gggf\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif...#......f\nfbf..##......f\nfif...#.#....f\nfbf...###....f\nfif....#.....f\nfbf....##....f\nfif....####..f\nfbf.......##.f\nfifggg######gf\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif.#........f\nfbf.##.......f\nfif..#.......f\nfbf.###......f\nfif.#####....f\nfbf...#.##...f\nfif....#.##..f\nfbf....##.##.f\nfifggggg#####f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp....#....f\nfif.....#....f\nfbf.....#....f\nfif.....##...f\nfbf...##.#...f\nfif....#.#...f\nfbf....#.###.f\nfifgggg#g#gggf\nfbf...##.##..f\nfif....#####.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp..#......f\nfif...#......f\nfbf..###..#..f\nfif....####..f\nfbf.....#....f\nfif.....###..f\nfbf.....#.#..f\nfifggggg##gggf\nfbf...###.#.#f\nfif....######f\nffffffffffffff\n\n\n~fffffffffffff\nfifp..#......f\nfif...##.....f\nfbf...#..#...f\nfif..###.#...f\nfbf....#.#...f\nfif..######..f\nfbf.....#....f\nfif.....###..f\nfbfggggg#ggggf\nfif...#####..f\nffffffffffffff\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf#.........f\nfif#.........f\nfbf##........f\nfif.######...f\nfbf..#.#.#...f\nfif..##.##...f\nfbf..##.#.#..f\nfif...######.f\nffffffffffffff\n\n\n(hard)\n~fffffffffffff\nfifp...##....f\nfif....#.....f\nfbf....#.....f\nfif....##....f\nfbf....##....f\nfif..##.##...f\nfbf...#.#....f\nfifggg#g##gggf\nfbf..###.##..f\nfif....####..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp..#.#..f\nfif...###..f\nfif...##...f\nfbfgggg##ggf\nfif....##..f\nfbf...##...f\nfif....##..f\nffffffffffff\n\n\n(trivial)\n~fffffffffff\nfifp.....#.f\nfif.....##.f\nfif.....#..f\nfbf...###..f\nfif.####...f\nfbfggg##gggf\nfif....##..f\nffffffffffff\n\n\n(too easy)\n~fffffffffff\nfifp.......f\nfif.....#..f\nfif.....#..f\nfif.....#..f\nfbf.....#..f\nfif.....#..f\nfbf...####.f\nfifggg##g##f\nfbf.##.#...f\nfif..###...f\nffffffffffff\n\n\n\n(nice shape)\n~fffffffffff\nfifp.......f\nfif........f\nfif...#....f\nfif...##...f\nfbf....##..f\nfif...#.#..f\nfbf..#####.f\nfifgggg##ggf\nfbf....##..f\nfif...###..f\nffffffffffff\n\n(nice?/meh)\n~fffffffffff\nfifp.......f\nfif...#....f\nfif...#....f\nfif...##...f\nfbf....##..f\nfif....##..f\nfbf.....#..f\nfifgggg##ggf\nfbf..#.###.f\nfif.#####..f\nffffffffffff\n\n\n\n~fffffffffffff\nfifp#..#.#...f\nfif.####.#...f\nfbf..#.####..f\nfbf..#.##....f\nfbf.###.###..f\nfbf...#.#....f\nfbf...#####..f\nfifgggg######f\nffffffffffffff\n\n\n~fffffffffffff\nfifp....##..#f\nfif....#.#..#f\nfbf...##.####f\nfbf....####.#f\nfbf..##.#..##f\nfbf..##.#####f\nfbf...#####..f\nfifggg#g#ggggf\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.......#.f\nfif.....##.#.f\nfbf.....#.##.f\nfbf....#####.f\nfbf#......#..f\nfbf##.#######f\nfbf.##...##.#f\nfif.######..#f\nffffffffffffff\n\n\n~fffffffffffff\nfifp...###...f\nfif.##.#.##..f\nfbf..#.#####.f\nfbf..#..#....f\nfbf.#####....f\nfbf..#..##...f\nfbf..###.####f\nfifggg####g##f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..........f\nfif......#...f\nfbf...####...f\nfif...#.#....f\nfbf...####...f\nfif....#.##.#f\nfbf....##.###f\nfif...######.f\nfbf..##...##.f\nfif..######..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp.##....f\nfif...##...f\nfbf....##..f\nfif...#.##.f\nfbf...####.f\nfif...#..#.f\nfbf..####..f\nfifgggg##ggf\nfbf....#.#.f\nfif....####f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif....##..f\nfbf..##.#..f\nfif...#.##.f\nfbf...####.f\nfif...#..#.f\nfbf...###.#f\nfif....####f\nfbfgggg#g#gf\nfif..###...f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif....#...f\nfbf....##..f\nfif..###...f\nfbf..#.#..#f\nfif..##...#f\nfbf.####.##f\nfif...#.###f\nfbfggg#g#ggf\nfif...###..f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif....#...f\nfbf..###...f\nfif...#....f\nfbf##.##.#.f\nfif.##.####f\nfbf..##.##.f\nfif...###..f\nfbfggggg#ggf\nfif...###..f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif..#.....f\nfbf..##.##.f\nfif...###..f\nfbf..#.####f\nfif.##.#...f\nfbf..####..f\nfif...#.#..f\nfbfggg####gf\nfif...##...f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp.#.....f\nfif..#.....f\nfbf..#.#...f\nfif..###...f\nfbf...#.##.f\nfif...####.f\nfbf...##.#.f\nfif....##..f\nfbf...#.###f\nfif...#####f\nffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif......#...f\nfbf......##..f\nfif.....#.#..f\nfbf.....#.#..f\nfif...######.f\nfbf.....##...f\nfif#....##...f\nfbf###.###...f\nfif..#.##....f\nfbfgg##g###ggf\nfif...##.##..f\nfbf....#.###.f\nfif....###.#.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfbf.....#....f\nfif....##....f\nfbf....##....f\nfif.....##...f\nfbf....#.##..f\nfif....####..f\nfbf....#..##.f\nfif....#####.f\nfbf...##...#.f\nfifggg#g#####f\nfbf..#.#...#.f\nfif.########.f\nffffffffffffff\n\n\n\n\n\n\n\n~fffffffffff\nfifp.......f\nfif...#....f\nfbf...#.#..f\nfif...###..f\nfbf....##..f\nfif..###...f\nfbfgggg##ggf\nfif...##...f\nffffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.....#.f\nfbf....###f\nfif..#.##.f\nfbf#####..f\nfif.###...f\nfbf...#...f\nfif.####..f\nfffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.......f\nfbf..#.#..f\nfif.##.#..f\nfbf..###..f\nfif#..####f\nfbf####...f\nfif.#.#...f\nfffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.......f\nfbf..#..#.f\nfif.#####.f\nfbf...#.#.f\nfif.####..f\nfbf.##.##.f\nfif...##..f\nfffffffffff\n\n\n~fffffffffff\nfifp..###..f\nfbf.#.#.#..f\nfbf.#.##...f\nfbf.##.##..f\nfbf..#####.f\nffffffffffff\n\n\n~fffffffffff\nfifp.#.#.#.f\nfbf..###.#.f\nfif...#####f\nfbf..#..##.f\nfif..####..f\nffffffffffff\n\n\n~fffffffffff\nfifp..###.#f\nfbf...#.#.#f\nfif....####f\nfbf...##.##f\nfif...####.f\nffffffffffff\n\n\n\n~fffffffffff\nfifp..###..f\nfbf.#.#.#..f\nfif.#..##..f\nfbf#####...f\nfif..#####.f\nffffffffffff\n\n\n\n\n(figure giving tribute - meh?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif.....#.#..f\nfbf....####..f\nfif....#.#...f\nfbf....#.###.f\nfif.######...f\nfbf.....###..f\nfifgg####g#ggf\nffffffffffffff\n\n\n\n\n\n\n\n\n~fffffffffffff\nfbfp.#.......f\nfif..###.....f\nfbf..##......f\nfif...##.....f\nfbf..#.##....f\nfif.#####....f\nfbf...#.#..#.f\nfif....######f\nfbf.....#..#.f\nfifggggg##gggf\nffffffffffffff\n\n\n~fffffffffffffffffffffffffffffffffffffffffff\nfifp.####...##########.###################.f\nfbf....###.##....###.##.#.......####...#...f\nfbf...##.#.#######..###.#########..........f\nfbf......###.#..#...#.#####..#.............f\nfifggggggg##gggggggggg##gg#gg#gggggggggggggf\nffffffffffffffffffffffffffffffffffffffffffff\n\n\n(interesting!)\n~fffffffffff\nfbf####p###f\nfif#......#f\nfbf###....#f\nfif#.#...##f\nfbf#.##..##f\nfif###ggg##f\nfbf##..###.f\nfif.####.#.f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp#######f\nfif.#.###.#f\nfbf...#..##f\nfif######.#f\nfbf.###.###f\nfifggg###g#f\nfbf..###..#f\nfif..#.#...f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp#######f\nfif.#.###.#f\nfbf...#..##f\nfif######.#f\nfbf.###.###f\nfifggg###g#f\nfbf..###..#f\nfif..#.#...f\nffffffffffff\n\n\n\n~fffffffffffff\nfif##p.......f\nfif##........f\nfif#.........f\nfif##........f\nfif##........f\nfif#.........f\nfbf###gggggggf\nfif#.##......f\nfbf##.##.....f\nfif.###..#...f\nfbf..##..#...f\nfif...######.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.......##f\nfif.........#f\nfif.......###f\nfif.......#.#f\nfif......##.#f\nfif......#.##f\nfbf.....#####f\nfifggg####g#gf\nfbf..##.##...f\nfif.....###..f\nfbf.....#....f\nfif.....#....f\nffffffffffffff\n\n\n~fffffffffffff\nfif###p......f\nfif#.#.......f\nfif#.#.......f\nfif#.#.......f\nfif####.....#f\nfifggg#gggg##f\nfif...##....#f\nfif....###..#f\nfbf.....#.###f\nfif.....###..f\nffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n(bad)\n~fffffffffffff\nfifp..#......f\nfif...#......f\nfbf..##......f\nfif..##......f\nfbf..#####...f\nfif...#..##..f\nfbf....######f\nfif.....#..#.f\nfbfggggg##g#gf\nfif....###...f\nffffffffffffff\n\n\n(trivial)\n~fffffffffff\nfifp.#.....f\nfif..##....f\nfbf..###...f\nfif..#.....f\nfbf..####..f\nfif....#...f\nfbfggg##gggf\nfif....#...f\nffffffffffff\n\n(pretty trivial)\n~fffffffffff\nfifp.....#.f\nfif......#.f\nfbf...#.##.f\nfif...#.#..f\nfbf...###..f\nfif...##...f\nfbf....#...f\nfifgggg#gggf\nffffffffffff\n\n\n\n\n(fiine / easy )\n~fffffffffff\nfbfp.......f\nfif......#.f\nfbf......#.f\nfif.....##.f\nfbf....###.f\nfif....#...f\nfbf..###...f\nfif...##...f\nfbf...#.##.f\nfif...###..f\nffffffffffff\n\n\n(meh)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfbf........f\nfif........f\nfbf......#.f\nfif......##f\nfbf.....###f\nfif...###.#f\nfbf.....#.#f\nfif..######f\nfbf...#.#.#f\nfif....###.f\nfbf...##.#.f\nfifgg######f\nffffffffffff\n\n\n\n\n(pretty easy)\n~fffffffffff\nfbfp.......f\nfif........f\nfbf.....##.f\nfif......##f\nfbf.....##.f\nfif....#.##f\nfbf....####f\nfif...###..f\nfbf....##..f\nfif...##...f\nffffffffffff\n\n\n\n\n(easy/arbirtaray/pretty)\n~fffffffffffff\nfif.....p....f\nfif..#.#.....f\nfif..###.....f\nfif...#..#.#.f\nfif...#..###.f\nfbf...#...#..f\nfifg###...#..f\nfbf.#.....#..f\nfif.#.....#..f\nffffffffffffff\n\n\n\n(too trivial)\n~fffffffffffffffffffffffffffffffff\nfifp.............................f\nfif......#.......................f\nfif.....##.......................f\nfif.....##.......................f\nfif...####.......................f\nfif....#.#.......................f\nfif.....###......................f\nfif......#.......................f\nfif......#...#...................f\nfif.....######...................f\nfifggggggg####gggggggggggggggggggf\nfif..........#...................f\nfif..........#...................f\nfif..........##..................f\nfif..........##..................f\nfif.........###..................f\nfbf...........##.................f\nfif...........##.................f\nfbf............###.#.............f\nfif............######............f\nffffffffffffffffffffffffffffffffff\n\n\n(meh)\n~fffffffffffffffffffffffffffffffff\nfifp.............................f\nfif..............................f\nfif.........#....................f\nfif.........#....................f\nfif........###...................f\nfif..........#...................f\nfif.......#####..................f\nfif......##..###.................f\nfif.....##....##.................f\nfif.....#.....#..................f\nfifgggggggggg###gggggggggggggggggf\nfif...........##.................f\nfif...........#.#................f\nfif...........###................f\nfif............###...............f\nfif.............###..............f\nfbf...............###............f\nfif...............#.##...........f\nfbf...............##.............f\nfif...............#..............f\nffffffffffffffffffffffffffffffffff\n\n\n\n\n\n(meh)\n~fffffffffffffffffffffffffffffffffffffffffff\nfifp.##################.###################f\nfbf...#.#.##.##.##.#..#.#.#.##.#.....#.#.##f\nfif...#.#....##...#########.....######.#.#.f\nfbfgggggggggggggg##g#g##gggggggggg#ggggggggf\nfif...............#....##........###.......f\nffffffffffffffffffffffffffffffffffffffffffff\n\n\n(meh)\n~fffffffffffff\nfifp.........f\nfbf..........f\nfif......#...f\nfbf......#...f\nfif.....##...f\nfbf.....#....f\nfif....##....f\nffffffffffffff\n\n\n\n\n\n(looks good, but too easy?)\n~fffffffffff\nfbf########f\nfif#p.##..#f\nfbf###..###f\nfif#...####f\nfbf#####..#f\nfif#ggg####f\nfbf######.#f\nfif...##...f\nffffffffffff\n\n(trivial)\n~ffffffff\nfifp..##f\nfbf.#..#f\nfif.####f\nfbf.###.f\nfif..#..f\nfffffffff\n\n(trivial)\n~ffffffff\nfif#p...f\nfbf##.#.f\nfif####.f\nfbf..##.f\nfif.##..f\nfffffffff\n\n\n(Trivial)\n~ffffffff\nfifp..#.f\nfbf.#.##f\nfif.####f\nfbf.##.#f\nfif..#..f\nfffffffff\n\n\n(zu einfach)\n~ffffffffff\nfif##p.#..f\nfbf###.#..f\nfif#.###..f\nfbf#.##...f\nfif####...f\nfbfggg###gf\nfif...##..f\nfffffffffff\n\n\n(zu einfach?)\n~ffffffffff\nfifp...###f\nfbf....#.#f\nfif....###f\nfbf....#.#f\nfifgggg###f\nfbf####.##f\nfif.#####.f\nfffffffffff\n\n\n\n(meh)\n~fffffffffff\nfifp....###f\nfif....####f\nfbf....#..#f\nfif.#..####f\nfbfg#gg#gg#f\nfif.#######f\nfbf.....###f\nfif....##..f\nffffffffffff\n\n\n\n(meh)\n~fffffffffffff\nfif#####p....f\nfif#.##......f\nfif#.##......f\nfif#.#.##...#f\nfif#g#g###g##f\nfif####..#.##f\nfif##.####.##f\nfif....##.#.#f\nfbf.....#####f\nfif.....##.##f\nffffffffffffff\n\n\n(meh)\n~fffffffffffff\nfif###p......f\nfif#.#.......f\nfif#.##......f\nfif#.#.#...#.f\nfif#g#g##gg##f\nfif#.#.######f\nfif####..#.##f\nfif.#.#####.#f\nfbf....#.#.##f\nfif.....#####f\nffffffffffffff\n\n\n(trivial)\n~fffffffffffffffffffffff\nfif#########p.#########f\nfif#......#...#.......#f\nfif########....########f\nfif#.....#....##.#....#f\nfif#######gggg##g######f\nfif#.....###.#.####...#f\nfif#############.......f\nfif.#####...#..........f\nfbf.........##.........f\nfif..........##........f\nffffffffffffffffffffffff\n\n(trivial)\n~fffffffffffffffffffffff\nfif#######p#....#######f\nfif#.#.#.#.##....#.#.##f\nfif###.#.###..#..#.#.##f\nfif..#.#.#...###.######f\nfif########gg#g#g#gggg#f\nfif.##...##############f\nfif..#####..#...#.#.#..f\nfif..........####.#.#..f\nfbf..........##........f\nfif.........###........f\nffffffffffffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n(THE REST)\n\n(hard, couldn't solve myself)\n~fffffffffffffff\nfifp.........##f\nfif.........##.f\nfif.........###f\nfif........#..#f\nfbf........#.##f\nfif........#.#.f\nfbf.......#####f\nfif........#.##f\nfbf........#..#f\nfifggggggg##gggf\nfbf......##....f\nfif.....##.....f\nffffffffffffffff\n\n\n\n\n(solved first go, ok? ohne persönlichkeit) \n~fffffffffffff\nfbfp.......##f\nfif........#.f\nfbf........#.f\nfif.......##.f\nfbf......##..f\nfif.......#..f\nfbf......####f\nfif......##.#f\nfbf....###...f\nfif.....#....f\nffffffffffffff\n\n(too routine)\n~fffffffffffff\nfbfp.........f\nfif...#......f\nfbf...#......f\nfif..##......f\nfbf...##.....f\nfif.##.#.....f\nfbf..###.....f\nfif..#.##....f\nfbf....##....f\nfif.....##...f\nffffffffffffff\n\n(scheiße)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif..#.......f\nfbf..##......f\nfif...#......f\nfbf...##.....f\nfif....#.....f\nfbf....##....f\nfif.....#....f\nffffffffffffff\n\n\n(zu einfach/procedural?)\n~ffffffffffffff\nfifp..........f\nfif........#..f\nfif........#..f\nfbf.......###.f\nfif.......#.#.f\nfbf.......#...f\nfif.....###...f\nfbf......#....f\nfif......#....f\nfbf....###....f\nfif..####.....f\nfffffffffffffff\n\n\n\n\n\n(zu einfach)\n~fffffffffffff\nfbfp........#f\nfif.........#f\nfbf........##f\nfif.......###f\nfbf.......#..f\nfif.....###..f\nfbf.....#.#..f\nfif....###...f\nfbf....##....f\nfif.....#....f\nffffffffffffff\n\n(kein level)\n~fffffffffffff\nfif...p......f\nfif..........f\nfif..........f\nfif..#.......f\nfif..#.#####.f\nfif..#.....#.f\nfbf..#####.#.f\nfbf..#.....#.f\nfbf........#.f\nfbfgg.g#####gf\nfifgg.g#gggggf\nffffffffffffff\n\n(zu einfach)\n~ffffffffffffff\nfif...........f\nfif...........f\nfif...........f\nfif...p..#....f\nfif.#....#....f\nfif.#....#....f\nfif.#...##....f\nfif.#....##...f\nfbf.##....#...f\nfbfg.#..#.#...f\nfif..#..#.#...f\nfif..#..#.#...f\nfffffffffffffff\n\n\n\n\n\n(zu einfach?)\n~ffffffffff\nfif.......f\nfbf.#.#.#.f\nfif.#.#.#.f\nfbf.#####.f\nfif..#p#..f\nfbf.g###.gf\nfif.g.#g.gf\nfffffffffff\n\n(no level)\n~fffffffff\nfif...p..f\nfbf.g#.#.f\nfif.g###.f\nfbf....#.f\nfif...##.f\nfbfg..#..f\nfif...#..f\nffffffffff\n\n\n(no level)\nffffffff\nf......f\nf....#.f\nfg...#.f\nf..P.#.f\nf..#.#.f\nf..#.#.f\nf.##.#.f\nffffffff\n\n\n(zu einfach)\n~ffffffffff\nfifp....#.f\nfbf....###f\nfif.....##f\nfbf...###.f\nfif...##..f\nfbf...#...f\nfifg####ggf\nfffffffffff\n\n(kein Level)\n~fffffffffffff\nfif...p......f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbfg.........f\nfif..........f\nffffffffffffff\n\n\n\n(kein Level)\n~fffffffffffff\nfif#..p.#.#..f\nfbf########..f\nfbf#......#.#f\nfbf#.#####..#f\nfbf#.....#..#f\nfbf#..##.#..#f\nfbf#...#.#..#f\nfbf#####.####f\nfbf...#...#..f\nfbfg..#####..f\nfif....#.....f\nffffffffffffff\n\n\n\n\n\n(kein Level)\n~fffffffffffff\nfif...p......f\nfbf######....f\nfbf#....#....f\nfbf##........f\nfbf.#..###...f\nfbf.##.#.#...f\nfbf..#.#.#...f\nfbf..#.###...f\nfbf.##..#....f\nfbfg#...#....f\nfif.#...#....f\nffffffffffffff\n\n\n\n\n(kein Level)\n~fffffffffffff\nfif..........f\nfif.###......f\nfif.#.#...###f\nfif.###...#.#f\nfif.#...###..f\nfifg#.###....f\nfif.###.#....f\nfif.#..###...f\nfbf..p.#.#...f\nfbf...###....f\nfif...#.#....f\nffffffffffffff\n\n\n\n(zu einfach)\n~ffffffff\nfif##p..f\nfbf.####f\nfbf###.#f\nfbf...##f\nfif..##.f\nfffffffff\n\n(kein level)\n~fffffffffffff\nfbfp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..........f\nfif.....#....f\nfbf.....#....f\nfif....###...f\nfbf......#...f\nfif....###...f\nffffffffffffff\n\n(meh)\n~ffffffff\nfif##p..f\nfbf#....f\nfbf####.f\nfbf.##..f\nfif..#..f\nfffffffff\n\n(hmmm dunno -vllt zu einfach?)\n\n~fffffffffff\nfif#####p..f\nfbf##.####.f\nfbf##..##..f\nfbf.#..##..f\nfifggggg##gf\nffffffffffff\n\n(dunno?)\n~ffffffffffffffffff\nfifp............#.f\nfif............##.f\nfif.............##f\nfif..............#f\nfif..............#f\nfif............###f\nfif.........####.#f\nfbf...........##.#f\nfif..........##..#f\nfbf..........##...f\nfif.........###...f\nfbf........###....f\nfifgggggggg##gggggf\nfbf......###......f\nfif....#####......f\nfffffffffffffffffff\n\n(zu einfach)\n~ffffffff\nfif#p...f\nfbf#..#.f\nfbf####.f\nfbf..##.f\nfif..#..f\nfffffffff\n\n(boring!)\n~ffffffff\nfifp#.#.f\nfbf.###.f\nfif..##.f\nfbfg##ggf\nfif..#..f\nfffffffff\n\n(trivial)\n~fffffffffff\nfifp.....#.f\nfif......#.f\nfif......#.f\nfif.....##.f\nfbf.....#..f\nfif.....#..f\nfbfgggg##ggf\nfif....#...f\nffffffffffff\n\n(trivial)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif.......#..f\nfbf.......#..f\nfif......##..f\nfbf......##..f\nfif......#...f\nfbf.....##...f\nfifggggg#ggggf\nffffffffffffff\n\n\n(meh)\n~fffffffffff\nfifp.......f\nfif.#......f\nfbf.##.....f\nfif..#.....f\nfbf..##....f\nfif...#....f\nfbf...##...f\nfif....#...f\nffffffffffff\n\n\n(nicht interessant)\n~fffffffffffff\nfbfp.........f\nfif..........f\nfbf##........f\nfif#.........f\nfbf##........f\nfif#.........f\nfbf####......f\nfif.#.#......f\nfbf.###......f\nfif..###.#...f\nffffffffffffff\n\n(meh)\n~fffffffffffff\nfif#p........f\nfif##........f\nfif#.........f\nfif##........f\nfbf###.......f\nfif#.........f\nfbf##ggggggggf\nfif.##.......f\nfbf..#..#....f\nfif..#.###...f\nffffffffffffff\n\n\n\n\n\n\n\n\n(meh)\n~fffffffffffffffffffffffffffffffff\nfifp..............####...........f\nfbf..............#.#.#...........f\nfbf..............###.............f\nfbf.............###..#...........f\nfifggggggggggggggg#####ggggggggggf\nffffffffffffffffffffffffffffffffff\n\n\n\n(huh not so bad? but hard for some maybe? wait maybe i just solved by chance....)\n~fffffffffffff\nfifp......###f\nfif.#.#...#.#f\nfbf.#.##...##f\nfbf.####...##f\nfbf##..###.##f\nfbf######.#.#f\nfbf.....#####f\nfbf...###.##.f\nfbf...#.#....f\nfif....##....f\nffffffffffffff\n\n\n\nmessage level 5 of 10 : Gallows\n(hard - actually ok? medium difficulty?)\n~ffffffffffff\nfif.........f\nfifp.#......f\nfif..#......f\nfif..###....f\nfif..#......f\nfbf.####....f\nfif...###...f\nfbf...#.#...f\nfif.....#...f\nfbfggggg##ggf\nfif......##.f\nfffffffffffff\n\n\n\n\nmessage level 2 of 10 : ANTENNA 1\n(ok anfangerlevel?)\n~fffffffff\nfbfp#..#.f\nfif##..#.f\nfbf.#.##.f\nfif####.#f\nfbf#..###f\nfifggg#ggf\nffffffffff\n\n\n\nmessage level 3 of 10 : UFO\n(ok! / easy / Space invaders)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..#..#....f\nfif########..f\nfbf#.###..#..f\nfif.....####.f\nfbf..###.##..f\nfif....###...f\nffffffffffffff\n\n\n\n\n(\n(ok anfangerlevel)\n~fffffffff\nfbfp#..##f\nfif.##.##f\nfbf..###.f\nfif...###f\nfbf####..f\nfifggg#ggf\nffffffffff\n)\n\n\n\n\n(\n\n~fffffffffffff\nfifp.......#.f\nfif........##f\nfif........##f\nfif.........#f\nfbf.........#f\nfif.......###f\nfbf.......##.f\nfifggggggg##gf\nfbf.......#..f\nfif...#####..f\nffffffffffffff\n)\n\n\n(ok simple? NAH TOO SIMPLE)\n~ffffffffffffffffffffffffffff\nfifp........................f\nfif###......................f\nfif#.#......................f\nfif###......................f\nfif##.......................f\nfif##.......................f\nfif##.......................f\nfif#........................f\nfif##.......................f\nfif##.......................f\nfif##.......................f\nfif##..#.#..................f\nfif##.####..................f\nfif#####.#..................f\nfifgg#g#g#ggggggggggggggggggf\nfif..#.###..................f\nfif......##.................f\nfif......##.................f\nfif......#.#................f\nfif......####...............f\nfif.......#.#...............f\nfbf.......#.#...............f\nfif.....######..............f\nfbf.....#..#####.##.........f\nfif.........#.####..........f\nfffffffffffffffffffffffffffff\n\n\n\n\n(alien slug attack!)\nmessage level 6 of 10 : Alien Slug Attack\n~fffffffffffffffff\nfifp...####......f\nfbf....#####.....f\nfbf...##..##.....f\nfbf....#..##.....f\nfifgggggggg####ggf\nffffffffffffffffff\n\n\n\n\n\n(decent - middle-hard? -- too mich like final level? (difficulty/appearance-wise?)\n~fffffffffffffff\nfif#p..........f\nfif#...........f\nfif##..........f\nfif#...........f\nfbf###.........f\nfif#.#.........f\nfbf.##.#.......f\nfif..###.......f\nfbf...###......f\nfif....#...#...f\nfbfgggg######ggf\nfif......##....f\nffffffffffffffff\n)\n\n\n\n(fun to find the right points? MEH)\n~ffffffffffffffffffff\nfifp................f\nfif.................f\nfif...............##f\nfif................#f\nfif...............##f\nfif...............##f\nfif.............####f\nfif................#f\nfif..............###f\nfif...............##f\nfif................#f\nfif.........#.#...##f\nfif.........#.####.#f\nfif........####.####f\nfif............##...f\nfifgggggggg#######ggf\nfif........#..#.....f\nfif........######...f\nfif.........##......f\nfbf........##.......f\nfif.....####........f\nfbf......#..........f\nfif......#..........f\nfbf....###..........f\nfif.#######.........f\nfffffffffffffffffffff\n\n\n\n\n\n(wie ein gebäude aus - ziemlich einfach)\n~fffffffffffff\nfifp........#f\nfif........##f\nfif........##f\nfif........##f\nfbf.........#f\nfif.........#f\nfbfgggggggg##f\nfif......###.f\nfbf.......##.f\nfif....####..f\nffffffffffffff\n\n\n\n\n\n\n(nice/ok!)\n~ffffffffff\nfifp.....#f\nfbf.....##f\nfif....###f\nfbf....#.#f\nfif....###f\nfbfggg###gf\nfif..##...f\nfffffffffff\n\n\nmessage level 4 of 10 : Duck Tree\n(ducktree!)\n~fffffffffff\nfifp.##..##f\nfif.###.###f\nfbf...##.#.f\nfif..###.#.f\nfbf....####f\nfifgggg##ggf\nfbf....#...f\nfif....#...f\nffffffffffff\n\n\n\n)\n",[2,2,2,2,4],"background exploding fenster tl:0,background fenster fenster_right:1,1,1,1,1,1,1,1,background fenster:2,background fenster fenster_down:3,background inventar:4,\n4,background bang_schatten inventar:5,4,background bang inventar:6,4,6,4,background fenster fenster_up:7,2,background fenster fenster_left fenster_right:8,8,8,\n8,8,8,8,8,2,3,background:9,9,9,9,background htarget player_h:10,\n9,background landbackground:11,11,7,3,9,9,9,9,background htarget:12,background bond_r wall:13,11,\n11,7,3,9,9,9,9,background bond_d bond_r htarget wall:14,background bond_d bond_l bond_u wall:15,background bond_u landbackground wall:16,11,7,\n3,9,9,9,background bond_d wall:17,background bond_l bond_u htarget wall:18,background bond_d bond_r wall:19,background bond_r bond_u landbackground wall:20,11,7,3,9,\n9,9,9,12,background bond_d bond_l wall:21,background bond_d bond_l bond_u landbackground wall:22,20,7,3,9,9,9,\n9,12,9,11,background bond_l landbackground wall:23,7,3,9,9,9,9,12,\n9,11,11,7,3,9,9,9,9,12,9,11,\n11,7,2,background fenster fenster_left:24,24,24,24,24,24,24,24,2,\n",16,"1627892617303.8054"] ], [ - "A CLEAR VIEW OF THE SKY", - ["title A CLEAR VIEW OF THE SKY\nauthor increpare\nhomepage www.increpare.com\n\nnorepeat_action\n\nrun_rules_on_level_start\n\ncolor_palette 2\n\nbackground_color #005784\ntext_color lightblue\n\n(uses https://github.com/increpare/Zersto-rungto generate levels)\n========\nOBJECTS\n========\n\nbackground\nblue\n\nlandbackground\ngreen\n\n\nwall \ndarkblue gray lightgray\n00000\n01110\n01110\n01110\n00000\n\nplayer_h\ntransparent\n.....\n..0..\n.000.\n..0..\n.....\n\n\nplayer_v\nyellow\n.....\n..0..\n.000.\n..0..\n.....\n\n\nfenster\n#005784\n\n\nfenster_up\n#1d3d60 lightblue\n00000\n.....\n.....\n.....\n.....\n\nfenster_down\ndarkblue #17669f\n.....\n.....\n.....\n.....\n11111\n\nfenster_left\n#1d3d60 #17669f\n1....\n1....\n1....\n1....\n1....\n\nfenster_right\n#1d3d60\n....0\n....0\n....0\n....0\n....0\n\nhtarget\norange\n.....\n.....\n00000\n.....\n.....\n\n\nvtarget\norange\n..0..\n..0..\n..0..\n..0..\n..0..\n\ninventar\ndarkblue\n\nbang\n yellow red\n...0.\n..00.\n.010.\n.00..\n.0...\n\nbang_schatten\ndarkgray\n...0.\n..00.\n.0.0.\n.00..\n.0...\n\nbond_u\ndarkblue gray lightgray\n.111.\n.....\n.....\n.....\n.....\n\n\n\nbond_d\ndarkblue gray lightgray\n.....\n.....\n.....\n.....\n.111.\n\n\n\nbond_l\ndarkblue gray lightgray\n.....\n1....\n1....\n1....\n.....\n\n\n\nbond_r\ndarkblue gray lightgray\n.....\n....1\n....1\n....1\n.....\n\n\n\n\ntl\ntransparent\n\nexploding\ntransparent\n\nexplosion\nred yellow\n.1.1.\n10.01\n..0..\n10.01\n.1.1.\n\nnofall\nred\n.0...\n.....\n.....\n.....\n.....\n\nfall\nlightblue\n.0...\n.....\n.....\n.....\n.....\n\n\nsky_darker 7\ndarkred darkblue\n01010\n10101\n01110\n10101\n01011\n\nsky_darker2 8\ndarkbrown black\n01010\n10101\n01110\n10101\n01011\n\n\nsky_darker4 0\nblack darkblue\n11010\n10111\n01010\n11101\n01011\n\nsky_darker3 9\nwhite black\n11111\n11101\n11111\n11111\n11111\n\nsky_darker7 w\nblack\n\nsky_pink 2\nred darkblue\n01010\n10101\n01110\n10101\n01011\n\nsky_orange 1\nred lightred\n01000\n10101\n00010\n01010\n00000\n\n\nsky_red 3\nred orange\n01010\n10101\n01010\n10101\n01010\n\nsky_yellow 4\nyellow red orange\n12121\n21212\n10001\n00000\n00000\n\nsky_purple 5 \nred blue\n01010\n11101\n01010\n10111\n01010\n\n\nsky_land 6\ndarkgreen green\n01010\n10101\n01010\n10101\n01010\n\n=======\nLEGEND\n=======\n\nplayer = player_h or player_v\ntarget = htarget or vtarget\n\n. = Background\n# = wall\nP = Player_h\nf = fenster\n\ng = landbackground\n\nobstacle = wall\n~ = tl and fenster\ni = inventar\nb = bang and inventar\nbond = bond_u or bond_d or bond_l or bond_r\n\nfallblocker = wall or fenster\nanimation = 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 or 0\n=======\nSOUNDS\n=======\n\nsfx0 55915302 (bang)\nsfx1 90167907 (other agains)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nlandbackground, inventar\nwall\nbond_u\nbond_d\nbond_l\nbond_r\nexplosion\ntarget\nPlayer, fenster, bang,bang_schatten\nfenster_up\nfenster_down\nfenster_left\nfenster_right\ntl\nexploding\nnofall\nfall\n1,2,3,4, 5, 6,7,8,9,0,w\n\n======\nRULES\n======\n\n\nup [fenster | no fenster ]-> [ fenster fenster_up | ]\ndown [fenster | no fenster ]-> [ fenster fenster_down | ]\nleft [fenster | no fenster ]-> [ fenster fenster_left | ]\nright [fenster | no fenster ]-> [ fenster fenster_right | ]\n\n[ tl no exploding ] [bond]->[ tl ] [ ]\ndown [ tl no exploding ] [wall | wall]->[tl][ wall bond_d | wall bond_u ]\nright [ tl no exploding ] [wall | wall]->[tl][ wall bond_r | wall bond_l ]\n\n[tl]->[tl exploding]\n\ndown [ wall no bond_d | fallblocker ] -> [ wall nofall | fallblocker ]\n(floodfill)\nup [nofall bond_u | ] -> [ nofall bond_u | nofall ]\n+ down [nofall bond_d | ] -> [ nofall bond_d | nofall ]\n+ left [nofall bond_l | ] -> [ nofall bond_l | nofall ]\n+ right [nofall bond_r | ] -> [ nofall bond_r | nofall ]\n\n\ndown [ wall no nofall | no fallblocker ] -> [ wall fall | ]\n\nup [fall bond_u | ] -> [ fall bond_u | fall ]\n+ down [fall bond_d | ] -> [ fall bond_d | fall ]\n+ left [fall bond_l | ] -> [ fall bond_l | fall ]\n+ right [fall bond_r | ] -> [ fall bond_r | fall ]\n\n[fall wall]->[down wall] sfx1 again\n\n[fall]->[]\n[nofall]->[]\n\n[up wall bond ] -> [ up wall up bond ]\n+ [down wall bond ] -> [ down wall down bond ]\n+ [left wall bond ] -> [ left wall left bond ]\n+ [right wall bond ] -> [ right wall right bond ]\n\n[target]->[]\n\n\n[horizontal player ] -> cancel\n(\n[up player_h ] -> [ up player_v ]\n[down player_h ] -> [ down player_v ]\n[left player_v ] -> [ left player_h ]\n[right player_v ] -> [ right player_h ]\n)\n\nright left down [ landbackground | no landbackground no fenster ] -> [ landbackground | landbackground no fenster ]\n\n\n[player_h ] -> [ player_h htarget ]\n[player_v ] -> [ player_v vtarget ]\n\nhorizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nvertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\nup [ bond_u | explosion ] -> [ | explosion ]\ndown [ bond_d | explosion ] -> [ | explosion ]\nleft [ bond_l | explosion ] -> [ | explosion ]\nright [ bond_r | explosion ] -> [ | explosion ]\n\n[explosion wall ] -> [ no bond ] sfx1 again\n\n[explosion ] -> [ ] again\n\n[action player ] [bang] -> [ player ] [ action bang_schatten ]\n\n[action bang_schatten ] [ target ]-> [ action bang_schatten ] [ explosion ] sfx0 again\n\n\nlate [target]->[]\n\nlate [player_h ] -> [ player_h htarget ]\nlate [player_v ] -> [ player_v vtarget ]\n\nlate horizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nlate vertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll wall on landbackground \n\n=======\nLEVELS\n=======\n\n\n(OK LEVELS)\n\n\n\n\nmessage All those ugly buildings blocking our view.\nmessage Let's DEMOLISH them to SAVE OUR SKY\n\nmessage level 1 of 13 : FACTORY\n(sehr einfach)\n~ffffffffffffff\nfif...........f\nfif...........f\nfif...........f\nfif....p......f\nfif.....#.....f\nfif...#.#.....f\nfif...#.###...f\nfbf...######..f\nfif..###...#..f\nfbfg.#...#.#..f\nfif..#...#.#..f\nfffffffffffffff\n\n\nmessage Ah, what a lovely view of the sky!\n\nmessage level 2 of 13 : Lop-sided Electricity Poll\n(actually ok?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif...#......f\nfif...##.....f\nfif...#......f\nfbf...##.....f\nfif....##....f\nfbfggggg#ggggf\nfif.....#....f\nffffffffffffff\n\n\n\n\nmessage level 3 of 13 : Water Pump\n(ok anfängerlevel?)\n~fffffffff\nfif...p..f\nfbf###...f\nfif#.###.f\nfbf#.##..f\nfif#.##..f\nfbf#gg##gf\nfif...#..f\nffffffffff\n\n\n\n\nmessage level 4 of 13 : Electricity Supply\n\n(einfach/gut?)\n~ffffffff\nfif###p#f\nfbf#.#.#f\nfbf#####f\nfbf##.#.f\nfifg####f\nfffffffff\n\n\nmessage level 5 of 13 : Water Font\n(hard)\n~fffffffffffff\nfifp....###..f\nfbf...#.#.#..f\nfbf...####...f\nfbf...##.##..f\nfifgg#g####ggf\nffffffffffffff\n\n\n\nmessage level 6 of 13 : Angry Goose\n(tricky + sieht gut aus)\n~ffffffffffff\nfifp##.####.f\nfbf.####.##.f\nfbf...##.#..f\nfbf...###...f\nfifgg##gggggf\nfffffffffffff\n\n\n\nmessage level 7 of 13 : Lean-to\n(nice/ok!)\n~fffffffffff\nfifp..#....f\nfif..##....f\nfbf.##.....f\nfif..#.....f\nfbf####....f\nfif...##...f\nfbfggg##gggf\nfif....##..f\nffffffffffff\n\n\n(medium-hard / fun! )\nmessage level 8 of 13 : Treehouse\n~fffffffffffffff\nfifp...........f\nfif........#...f\nfif........#...f\nfif.......####.f\nfbf.......#..#.f\nfif......#####.f\nfbf........#...f\nfif......###...f\nfbf......##....f\nfif.....##.....f\nfbfgggg#g#gggggf\nfif...####.....f\nffffffffffffffff\n\n\n\n\nmessage level 9 of 13 : Ugly Antenna\n(i had fun solving this)\n~fffffffffffff\nfifp.###.####f\nfbf..#.#....#f\nfif..#.##.###f\nfbf..#.###.#.f\nfif..####.##.f\nfbfggggg###ggf\nfif.....#....f\nffffffffffffff\n\n\n\n\nmessage level 10 of 13 : 60's Futuristic settlement\n(ok/interesting to solve!)\n~fffffffffff\nfbf##p.####f\nfif#...#..#f\nfbf#...####f\nfif######.#f\nfbf###.##.#f\nfifggg##gg#f\nfbf...#.#.#f\nfif...###..f\nffffffffffff\n\n\nmessage level 11 of 13 : Dystopic settlement\n(futuristic city - hardlevel?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..##......f\nfif..#.......f\nfbf..##.#.#..f\nfif..##.###..f\nfbf..###.###.f\nfif....#.##..f\nfbf....#.#...f\nfifggg####gggf\nffffffffffffff\n\n\nmessage level 12 of 13 : Space elevator\n(interesting? seemingly impossible?)\n~fffffffffffff\nfif#####p....f\nfif#.#.#.....f\nfif#.####....f\nfif#.##......f\nfif#g#gggggggf\nfif#.#.......f\nfif#.##......f\nfif#.#.......f\nfif#.##......f\nfbf#.#.......f\nfif#.###.....f\nfbf#.#.###.#.f\nfif#.###..##.f\nfbf##..####..f\nfif.#######..f\nffffffffffffff\n\n\n\n\nmessage level 13 of 13 : Building seeminly purposely constructed to block my view.\n\n(can't easily solve meh - could be ok final level? FINAL LEVEL)\n~fffffffffffffffff\nfif###p..........f\nfif#.##..........f\nfif####..........f\nfif...##.........f\nfif####..........f\nfif.#............f\nfif##............f\nfif###...........f\nfif..#...........f\nfif#####.........f\nfif...#.#.#......f\nfif######.#......f\nfif###..###......f\nfif#..###........f\nfif.....##.......f\nfifgggggg#gggggggf\nfif......###.....f\nfif.......##.....f\nfif.......##.....f\nfbf........##....f\nfif........##....f\nfbf.........##...f\nfif.........##...f\nfbf.........#####f\nfif............#.f\nffffffffffffffffff\n\n\nmessage Ahh, the sky is clear again, just in time for the sunset\n\n\n\n5555555555555555555\n5555522222222555555\n5552222222222222555\n5222222222222222225\n2222222111112222222\n2222211111111122222\n2221111133311111222\n2211111334331111112\n6666666666666666666\n6666666666666666666\n6666666666666666666\n\n\n\n\n22222222222222222222\n22222222222222222222\n22222222222222222222\n22222222222222222222\n22222221212122222222\n22221212121212122222\n22212121111121212222\n22121211111112121222\n66666666666666666666\n66666666666666666666\n66666666666666666666\n\n\n\n00000077777777000000\n00007777777777770000\n00077777777777777000\n07777777777777777770\n77777722222222777777\n77772222222222227777\n77722221111122222777\n77222211111112222277\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n88888888888888888888\n88888880000088888888\n88888000000000088888\n88800000000000000888\n88000000000000000088\n80000000000000000008\n00000000222000000000\n00000002222200000000\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwww000wwwwwwwww\nwwwww000222000wwwwww\n00000022222220000000\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n\n\nw9wwwwwwww9wwwwwwwww\nwwwwwwwwwwwwww9www9w\nwwww9wwwwwwwwwwwwwww\nwwwwwwwww9wwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwww9www\nw9wwwww9wwwww9wwwwww\nwwwwwwwwwwwwwwwwwwww\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\nmessage The End \n\n\n\n(\n\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf.....#....f\nfif....####..f\nfbf...##..#..f\nfif#.#..###..f\nfbf#####.##..f\nfif.#.####...f\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfbfp.........f\nfif....#.....f\nfbf....##....f\nfif....###...f\nfbf......#...f\nfif..######..f\nfbf...#.#.#..f\nfif.....####.f\nfbf....#.##..f\nfifgg#####gggf\nffffffffffffff\n\n(microscope?)\n~fffffffffffff\nfbfp.........f\nfif......##..f\nfbf.....##...f\nfif....##....f\nfbf....#.##..f\nfif....#.#...f\nfbf....####..f\nfif.......#..f\nfbf..######..f\nfifgg####ggggf\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.......#.f\nfif......#.#.f\nfif......#.##f\nfif......####f\nfbf....####.#f\nfifggggg#g##gf\nfbf...#####.#f\nfif....######f\nfbf..#.###...f\nfif.######...f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.....#...f\nfif......##..f\nfif....####..f\nfif....##.#..f\nfbf....###...f\nfifgg#g####ggf\nfbf..####.#..f\nfif..#####...f\nfbf..#######.f\nfif....#####.f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.....#...f\nfif....#.#...f\nfif....###...f\nfif...###..#.f\nfbf...#.####.f\nfifgggg##ggggf\nfbf...#####..f\nfif....####..f\nfbf..######..f\nfif..########f\nffffffffffffff\n\n\n\n\n~fffffffffff\nfbfp...#.#.f\nfif....#.##f\nfbf....###.f\nfif.###.###f\nfbf...###.#f\nfif.....##.f\nfbfggg###ggf\nfif...#####f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp...##..f\nfif.######.f\nfbf....#.#.f\nfif...###..f\nfbf...#.##.f\nfif....###.f\nfbfggg#gg#gf\nfif..######f\nffffffffffff\n\n(hard, but looks nice)\n~fffffffffff\nfbfp...#..#f\nfif....####f\nfbf.....#.#f\nfif...###..f\nfbf.....###f\nfif...###..f\nfbfg##g#g##f\nfif..######f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp..#.##.f\nfif...#.#..f\nfbf...#####f\nfif....#.#.f\nfbf....###.f\nfif...###..f\nfbfg###gg#gf\nfif.#.####.f\nffffffffffff\n\n~fffffffffff\nfifp.......f\nfif........f\nfif#.......f\nfbf###.....f\nfif#.##....f\nfbf##......f\nfif##......f\nfbf#.......f\nfif##.#....f\nfbf##.#....f\nfif.####...f\nfbf.#.####.f\nfif....#.#.f\nfbfgggg###gf\nfif....#...f\nffffffffffff\n\n\n\n(hard/unsolved)\n~fffffffffffff\nfifp...####..f\nfif.....##...f\nfbf....##....f\nfif...#.##...f\nfbf...#.#..#.f\nfif...####.#.f\nfbf....#.###.f\nfif....#.#...f\nfbfggg#######f\nfif..#...#...f\nfbf.######...f\nfif...###....f\nffffffffffffff\n\n\n(haard, pretty, unsolved)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf.....#....f\nfif....###...f\nfbf...#####..f\nfif.....#..#.f\nfbf.....####.f\nfif..#.#.#.#.f\nfbf.##.#.##..f\nfif..#.####.#f\nfbfgg##ggg#g#f\nfif...#######f\nffffffffffffff\n\n\n(haard, pretty, ,unsolved)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf...##..#..f\nfif.##.####..f\nfbf..##.#.#..f\nfif...#.###..f\nfbf...##.##..f\nfif....###...f\nfbf......#...f\nfif....######f\nfbfgg###ggg##f\nfif....#####.f\nffffffffffffff\n\n(haard ,unsolved)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfbf........f\nfif....###.f\nfbf.....###f\nfif......#.f\nfbf......#.f\nfif.....##.f\nfbf......##f\nfif....####f\nfbf....##..f\nfif...###..f\nfbf....##..f\nfifggg##gggf\nffffffffffff\n\n\n\n(too tired, don't want to solve)\n~ffffffffffffffffffffffffffffffffffffff\nfifp..................................f\nfif.......#...........................f\nfif.......#...........................f\nfif#.....##...........................f\nfif##...##............................f\nfif.####.#............................f\nfif....####...........................f\nfif....##.#...........................f\nfif.......##..........................f\nfif......####.........................f\nfif........#.#........................f\nfif.......####........................f\nfif.......#.##........................f\nfifggggggg#g##ggggggggggggggggggggggggf\nfif........####.......................f\nfif...........#.......................f\nfif........######.....................f\nfif........#.##.##....................f\nfif............##.....................f\nfbf..........####.....................f\nfif............####...................f\nfbf...........##.###..................f\nfif..............#.#..................f\nfbf................#..................f\nfif................###................f\nfffffffffffffffffffffffffffffffffffffff\n\n\n~fffffffffffff\nfbfp.#.......f\nfif..###.....f\nfbf..##......f\nfif...##.....f\nfbf..#.##....f\nfif.#####....f\nfbf...#.#..#.f\nfif....######f\nfbf.....#..#.f\nfifggggg##gggf\nffffffffffffff\n\n\n~fffffffffffff\nfifp.....##.#f\nfif.......#.#f\nfif.......#.#f\nfif.......###f\nfif.........#f\nfif.........#f\nfifggggggggg#f\nfif.......###f\nfif......##.#f\nfif.....###.#f\nfif.......###f\nfif.........#f\nfif.......###f\nfif......#..#f\nfif......####f\nfif.......#.#f\nfif........##f\nfif.......###f\nfif.........#f\nfif........##f\nfif.......###f\nfif........##f\nfif........##f\nfif.........#f\nfbf..##...###f\nfif..#...##.#f\nfbf..##....##f\nfif..###.###.f\nfbf...##.#...f\nfif...#####..f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif.........#f\nfif.......###f\nfif........##f\nfif........##f\nfif........##f\nfif.....##.##f\nfifgggggg#g##f\nfif.....#####f\nfif.........#f\nfif.....#####f\nfif.........#f\nfif...#######f\nfif.....#...#f\nfif......####f\nfif.........#f\nfif.......###f\nfif......##.#f\nfif.......#.#f\nfif.......###f\nfif......#..#f\nfif......####f\nfbf.........#f\nfif.......###f\nfbf.......#.#f\nfif.......##.f\nfbf.....###..f\nfif..#####...f\nffffffffffffff\n\n\n\n~fffffffffffffffffffffff\nfifp.................##f\nfif.................#.#f\nfif.................###f\nfif...................#f\nfif...................#f\nfif..................##f\nfifgggggggggggggggggg##f\nfif..................##f\nfif.................#.#f\nfif.................#.#f\nfif.............###.###f\nfif..............#.##.#f\nfif..............###..#f\nfif...............#.#.#f\nfbf...............#.###f\nfif...##....#.##..###.#f\nfbf...###.###..#.#.#.##f\nfif....####.#..#######.f\nfbf......########..#.#.f\nfif..........##......#.f\nffffffffffffffffffffffff\n\n\n\n~ffffffffffffffffff\nfif##p.....#######f\nfif##.......##...#f\nfif#..#.......####f\nfif######.....####f\nfbf#....##..###..#f\nfif######...#.#.##f\nfbfg#gg####g##ggggf\nfif.....#.#####...f\nfbf.....###.#.....f\nfif.......##......f\nfffffffffffffffffff\n\n\n\n~ffffffffffffffffff\nfif########p......f\nfif#.#.#.#........f\nfif#.#.#.#...#....f\nfif#.######.######f\nfbf#g##gg#######ggf\nfif#.#...##.#..##.f\nfbf###....#.###...f\nfif##.....###.....f\nfbf#....####......f\nfif.......#.......f\nfffffffffffffffffff\n\n\n\n~fffffffffffffffffffffff\nfifp.......############f\nfif......####.#.......#f\nfif......#.#.#.########f\nfif.......##.#.#......#f\nfbfggggggg#g##g########f\nfif......###.#.#.#.####f\nfbf........######...#..f\nfif.....###....#.......f\nfbf.......######.......f\nfif.....########.......f\nffffffffffffffffffffffff\n\n\n\n\n\n~fffffffffffffffffffffff\nfif###p########.##.####f\nfif#####..#.#...####..#f\nfif...#.###.##....#.###f\nfif#######..#.#########f\nfbf.#...#.#.######.#...f\nfifg#####g##g##ggggggggf\nfbf.....######.........f\nfif.......#..##........f\nfbf.........###........f\nfif..........###.......f\nffffffffffffffffffffffff\n\n\n\n\n~fffffffffffffffffffffff\nfif#########p....##....f\nfif#.#.#.##....###.....f\nfif#.#.#.#....#.####...f\nfif#.#.#.#....#.#..#...f\nfbf#g#g###gggg#g###ggggf\nfif####..#.#..###.#....f\nfbf...####.#..##.......f\nfif...##.#.##.#.#......f\nfbf....##########......f\nfif....#....##.#.......f\nffffffffffffffffffffffff\n\n\n\n(hard, haven't solved manually)\n~fffffffffffff\nfif###p......f\nfbf#.#.......f\nfif#.###.....f\nfbf#.#.##....f\nfif####g####gf\nfbf##.####...f\nfif.##..#....f\nffffffffffffff\n\n\n(too hard)\n~fffffffffffff\nfif#####p....f\nfif#.#.#.....f\nfif#.##.#....f\nfif#.#####...f\nfif#.##.#....f\nfif#g#gggggggf\nfif#.####....f\nfif#.#.#..##.f\nfif#.###.#.##f\nfbf##..#####.f\nfif.####.....f\nfbf...###....f\nfif....#.....f\nfbf....#.##..f\nfif....###...f\nffffffffffffff\n\n\n\n(hard, looks ok, but meh)\n~fffffffffffff\nfif###p#.....f\nfif##.##.....f\nfif##.#......f\nfif####......f\nfif#.#.......f\nfbf#.#.......f\nfif###.......f\nfbf#.##......f\nfif#.##......f\nfbf##g##gggggf\nfif.###......f\nfbf.#.##.....f\nfif...#......f\nfbf..###.#...f\nfif....####..f\nffffffffffffff\n\n\n(hard, looks ok, but meh)\n~fffffffffffff\nfif##p#......f\nfif####......f\nfif#.##......f\nfif#.#.......f\nfif#.#.......f\nfbf###.......f\nfif#.........f\nfbf###.......f\nfif#.........f\nfbf#####gggggf\nfif#.##.#....f\nfbf..##.##...f\nfif..#####...f\nfbf.....###..f\nfif...###....f\nffffffffffffff\n\n(hmmm! not sure!)\n~ffffffffffffffffffffffffffff\nfifp........................f\nfif.........................f\nfif.........................f\nfif.........................f\nfif....................##...f\nfif.....................##..f\nfif....................##...f\nfif...................###...f\nfif...................##....f\nfif.................####....f\nfifgggggggggggggggggggg###ggf\nfif...............######.##.f\nfif..................#.#....f\nfif..................####...f\nfif................####.#...f\nfif................###......f\nfif..................##.....f\nfif..................#.##...f\nfif................###.##...f\nfbf................#.#####..f\nfif...............##.#......f\nfbf................####.....f\nfif................##.......f\nfbf.............#####.......f\nfif.........#####...........f\nfffffffffffffffffffffffffffff\n\n\n\n(soll schwierig sein - will nicht lösen!)\n~fffffffffff\nfifp.......f\nfif........f\nfbf........f\nfif....#...f\nfbf..###...f\nfif....##..f\nfbf...#.#..f\nfif...#.##.f\nfbf...#.###f\nfif..###.##f\nfbf..#.###.f\nfifgggg##ggf\nffffffffffff\n\n\n(soll schwierig sein - ja zu schwierig)\n~ffffffffffff\nfif.........f\nfbf.p.......f\nfif...#.....f\nfbf...#.....f\nfif...###...f\nfbf...#.##..f\nfif.#####...f\nfbf..#..###.f\nfif...##..#.f\nfbf....####.f\nfifggggg##ggf\nfffffffffffff\n\n(hard - will nicht lösen )\n~fffffffffffff\nfifp.........f\nfif......#...f\nfif.....##...f\nfif....##....f\nfbf....#.##..f\nfif....###...f\nfbfgggg##ggggf\nfif...###....f\nfbf.....#....f\nfif....##....f\nffffffffffffff\n\n\n(should be hard?)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfif...##...f\nfbf..###...f\nfif.###....f\nfbf...##...f\nfif....#...f\nfbf..#.##..f\nfifgg##g#g.f\nfbf...#.#..f\nfif...###..f\nffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n(zeimlich einfach!)\n~fffffffffff\nfifp.#..#..f\nfif..##.#..f\nfbf...#.##.f\nfif...####.f\nfbf....##..f\nfif..###...f\nfbfgggg#gggf\nfif....#...f\nffffffffffff\n\n\n(simple/ok)\n~ffffffffff\nfifp.#..##f\nfbf..#####f\nfif..#.#.#f\nfbf...##..f\nfif..##...f\nfbfggg###gf\nfif..##...f\nfffffffffff\n\n\n(simple/ok)\n~fffffffffff\nfifp......#f\nfif......##f\nfbf......##f\nfif.....###f\nfbf.......#f\nfifgggggg##f\nfbf.....##.f\nfif...###..f\nffffffffffff\n\n\n\n\n(simple/ok / ok maybe nicer than ok! :] )\n~fffffffffff\nfifp....#..f\nfif...#.##.f\nfbf...###..f\nfif..###...f\nfbf...#....f\nfif...##...f\nfbfgggg##ggf\nfif....#...f\nffffffffffff\n\n\n\n\n\n\n\n(beautiful-looking? not fun to solve)\n~fffffffffff\nfbf########f\nfif##p...##f\nfbf##...#.#f\nfif#.#..###f\nfbf#.#...##f\nfif###g#g##f\nfbf#.######f\nfif....#.#.f\nffffffffffff\n\n\n\n\n\n\n\n(ok to solve!)\n~fffffffffff\nfbfp...####f\nfif....#..#f\nfbf....####f\nfif#.###..#f\nfbf#.#.####f\nfif####gg##f\nfbf.#.####.f\nfif....#.#.f\nffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n~fffffffffffff\nfifp...######f\nfif.......#.#f\nfif.........#f\nfif.......###f\nfif.......#.#f\nfif.....#####f\nfifgggggg##g#f\nfif......#.##f\nfif......#.##f\nfbf......#.##f\nfif......####f\nfbf......##.#f\nfif...#..#...f\nfbf..#####...f\nfif.....###..f\nffffffffffffff\n\n\n(dunno? schwierig)\n~fffffffffffff\nfbf#####p####f\nfif...####..#f\nfbf....#.####f\nfif.....#.#.#f\nfbf.....#.###f\nfif.....#.#.#f\nfbf.....#.#.#f\nfifgggg######f\nfbf......###.f\nfif....###...f\nffffffffffffff\n\n\n\n\n\n~fffffffffffff\nfifp..#.###..f\nfbf..##.#.#..f\nfbf...####...f\nfbf....##.#..f\nfifg##g#g##ggf\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif...#......f\nfif...###....f\nfbf....###...f\nfif.....#....f\nfbf....###...f\nfif...##.....f\nfbfgg##ggggggf\nfif.#####....f\nffffffffffffff\n\n\n\n~ffffffff\nfif....#f\nfif....#f\nfif....#f\nfif..###f\nfif....#f\nfif.p.##f\nfif....#f\nfif#.###f\nfif#..#.f\nfbf####.f\nfif#.#..f\nfbf#g#ggf\nfif###..f\nfbf..##.f\nfif###..f\nfbf#.##.f\nfif####.f\nfffffffff\n\n\n(Tricky)\n~fffffffffff\nfbfp.......f\nfif........f\nfbf...#....f\nfif...##...f\nfbf..#.#...f\nfif..#.###.f\nfbf.###.#..f\nfif...####.f\nffffffffffff\n\n\n~fffffffffff\nfbfp..##...f\nfif....##..f\nfbf...##...f\nfif...###..f\nfbf...#....f\nfif...###..f\nfbfggggg#ggf\nfif...####.f\nffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif...#......f\nfif...#......f\nfif...##.....f\nfbf....#.....f\nfif....##....f\nfbf.....#....f\nfif....###...f\nfbfggg#gg##ggf\nfif...####...f\nffffffffffffff\n\n\n\n\n~fffffffffff\nfifp...###.f\nfif...##.#.f\nfbf..#.###.f\nfif..###.#.f\nfbfggg####gf\nfif.....###f\nfbf...###..f\nfif...####.f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif.....#..f\nfif...###..f\nfif.....###f\nfbf....##..f\nfif...##...f\nfbf.#.##..#f\nfif.##.##.#f\nfbf#g#g#g##f\nfif########f\nfbf#......#f\nfif########f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif..#.....f\nfbf..##....f\nfif..###...f\nfbf..#.#...f\nfif..###...f\nfbfggg###ggf\nfif....#...f\nffffffffffff\n\n\n~fffffffffff\nfifp...##..f\nfif....###.f\nfif...##.#.f\nfif...#.#..f\nfbf...#.#..f\nfif...#.###f\nfbf..######f\nfifggg##gggf\nfbf....####f\nfif....#..#f\nfbf####.###f\nfif.#######f\nffffffffffff\n\n\n\n\n~ffffffffff\nfifp......f\nfif.......f\nfif.......f\nfif.......f\nfbf..###..f\nfif..#.#..f\nfbf.#.##..f\nfif.#####.f\nfbf...#...f\nfif.###...f\nfbfgg#g##gf\nfif..###..f\nfffffffffff\n\n\n\n~ffffffff\nfifp###.f\nfbf.#.##f\nfif.####f\nfbf.##..f\nfif..##.f\nfffffffff\n\n\n~fffffffffff\nfifp###....f\nfbf.#.##...f\nfbf.#.##...f\nfbf.#.##...f\nfifgggg##ggf\nffffffffffff\n\n\n~fffffffffff\nfifp...###.f\nfbf..#.#.#.f\nfbf..##.##.f\nfbf.#####..f\nfifgggg####f\nffffffffffff\n\n\n\n\n~fffffffffffff\nfifp...##.#..f\nfif....#.##..f\nfbf....#.##..f\nfif....#.##..f\nfbf....#.#.##f\nfif...######.f\nfbfggg#g##gggf\nfif..####....f\nfbf.....##...f\nfif...###....f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp....#....f\nfif.....#.#..f\nfif.....###..f\nfif...###.#..f\nfbfggg#g#####f\nfif....##.###f\nfbf...#.###..f\nfif...####...f\nfbf......##..f\nfif...#####..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp..#.#..f\nfbf...###..f\nfif....##..f\nfbfggg##gggf\nfif....#...f\nffffffffffff\n\n\n\n~fffffffffffff\nfifp...##....f\nfif.....#....f\nfif.....#....f\nfifggggg#ggggf\nfif#.####....f\nfif#.#..#....f\nfbf##.###....f\nfif.###.#####f\nfbf....#.#...f\nfif..######..f\nffffffffffffff\n\n\n~fffffffffff\nfifp...#.#.f\nfbf....###.f\nfif....##..f\nfbfggg#g###f\nfif...###..f\nffffffffffff\n\n\n~fffffffff\nfbfp##.#.f\nfif..#.#.f\nfbf..####f\nfif.###..f\nfbf...##.f\nfifggg#ggf\nffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif.......#..f\nfbf.......#..f\nfif.......#..f\nfbf....#####.f\nfif...####...f\nfbf.....#....f\nfifggggg##gggf\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif...#......f\nfbf..##......f\nfif...#.#....f\nfbf...###....f\nfif....#.....f\nfbf....##....f\nfif....####..f\nfbf.......##.f\nfifggg######gf\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif.#........f\nfbf.##.......f\nfif..#.......f\nfbf.###......f\nfif.#####....f\nfbf...#.##...f\nfif....#.##..f\nfbf....##.##.f\nfifggggg#####f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp....#....f\nfif.....#....f\nfbf.....#....f\nfif.....##...f\nfbf...##.#...f\nfif....#.#...f\nfbf....#.###.f\nfifgggg#g#gggf\nfbf...##.##..f\nfif....#####.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp..#......f\nfif...#......f\nfbf..###..#..f\nfif....####..f\nfbf.....#....f\nfif.....###..f\nfbf.....#.#..f\nfifggggg##gggf\nfbf...###.#.#f\nfif....######f\nffffffffffffff\n\n\n~fffffffffffff\nfifp..#......f\nfif...##.....f\nfbf...#..#...f\nfif..###.#...f\nfbf....#.#...f\nfif..######..f\nfbf.....#....f\nfif.....###..f\nfbfggggg#ggggf\nfif...#####..f\nffffffffffffff\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf#.........f\nfif#.........f\nfbf##........f\nfif.######...f\nfbf..#.#.#...f\nfif..##.##...f\nfbf..##.#.#..f\nfif...######.f\nffffffffffffff\n\n\n(hard)\n~fffffffffffff\nfifp...##....f\nfif....#.....f\nfbf....#.....f\nfif....##....f\nfbf....##....f\nfif..##.##...f\nfbf...#.#....f\nfifggg#g##gggf\nfbf..###.##..f\nfif....####..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp..#.#..f\nfif...###..f\nfif...##...f\nfbfgggg##ggf\nfif....##..f\nfbf...##...f\nfif....##..f\nffffffffffff\n\n\n(trivial)\n~fffffffffff\nfifp.....#.f\nfif.....##.f\nfif.....#..f\nfbf...###..f\nfif.####...f\nfbfggg##gggf\nfif....##..f\nffffffffffff\n\n\n(too easy)\n~fffffffffff\nfifp.......f\nfif.....#..f\nfif.....#..f\nfif.....#..f\nfbf.....#..f\nfif.....#..f\nfbf...####.f\nfifggg##g##f\nfbf.##.#...f\nfif..###...f\nffffffffffff\n\n\n\n(nice shape)\n~fffffffffff\nfifp.......f\nfif........f\nfif...#....f\nfif...##...f\nfbf....##..f\nfif...#.#..f\nfbf..#####.f\nfifgggg##ggf\nfbf....##..f\nfif...###..f\nffffffffffff\n\n(nice?/meh)\n~fffffffffff\nfifp.......f\nfif...#....f\nfif...#....f\nfif...##...f\nfbf....##..f\nfif....##..f\nfbf.....#..f\nfifgggg##ggf\nfbf..#.###.f\nfif.#####..f\nffffffffffff\n\n\n\n~fffffffffffff\nfifp#..#.#...f\nfif.####.#...f\nfbf..#.####..f\nfbf..#.##....f\nfbf.###.###..f\nfbf...#.#....f\nfbf...#####..f\nfifgggg######f\nffffffffffffff\n\n\n~fffffffffffff\nfifp....##..#f\nfif....#.#..#f\nfbf...##.####f\nfbf....####.#f\nfbf..##.#..##f\nfbf..##.#####f\nfbf...#####..f\nfifggg#g#ggggf\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.......#.f\nfif.....##.#.f\nfbf.....#.##.f\nfbf....#####.f\nfbf#......#..f\nfbf##.#######f\nfbf.##...##.#f\nfif.######..#f\nffffffffffffff\n\n\n~fffffffffffff\nfifp...###...f\nfif.##.#.##..f\nfbf..#.#####.f\nfbf..#..#....f\nfbf.#####....f\nfbf..#..##...f\nfbf..###.####f\nfifggg####g##f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..........f\nfif......#...f\nfbf...####...f\nfif...#.#....f\nfbf...####...f\nfif....#.##.#f\nfbf....##.###f\nfif...######.f\nfbf..##...##.f\nfif..######..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp.##....f\nfif...##...f\nfbf....##..f\nfif...#.##.f\nfbf...####.f\nfif...#..#.f\nfbf..####..f\nfifgggg##ggf\nfbf....#.#.f\nfif....####f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif....##..f\nfbf..##.#..f\nfif...#.##.f\nfbf...####.f\nfif...#..#.f\nfbf...###.#f\nfif....####f\nfbfgggg#g#gf\nfif..###...f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif....#...f\nfbf....##..f\nfif..###...f\nfbf..#.#..#f\nfif..##...#f\nfbf.####.##f\nfif...#.###f\nfbfggg#g#ggf\nfif...###..f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif....#...f\nfbf..###...f\nfif...#....f\nfbf##.##.#.f\nfif.##.####f\nfbf..##.##.f\nfif...###..f\nfbfggggg#ggf\nfif...###..f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif..#.....f\nfbf..##.##.f\nfif...###..f\nfbf..#.####f\nfif.##.#...f\nfbf..####..f\nfif...#.#..f\nfbfggg####gf\nfif...##...f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp.#.....f\nfif..#.....f\nfbf..#.#...f\nfif..###...f\nfbf...#.##.f\nfif...####.f\nfbf...##.#.f\nfif....##..f\nfbf...#.###f\nfif...#####f\nffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif......#...f\nfbf......##..f\nfif.....#.#..f\nfbf.....#.#..f\nfif...######.f\nfbf.....##...f\nfif#....##...f\nfbf###.###...f\nfif..#.##....f\nfbfgg##g###ggf\nfif...##.##..f\nfbf....#.###.f\nfif....###.#.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfbf.....#....f\nfif....##....f\nfbf....##....f\nfif.....##...f\nfbf....#.##..f\nfif....####..f\nfbf....#..##.f\nfif....#####.f\nfbf...##...#.f\nfifggg#g#####f\nfbf..#.#...#.f\nfif.########.f\nffffffffffffff\n\n\n\n\n\n\n\n~fffffffffff\nfifp.......f\nfif...#....f\nfbf...#.#..f\nfif...###..f\nfbf....##..f\nfif..###...f\nfbfgggg##ggf\nfif...##...f\nffffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.....#.f\nfbf....###f\nfif..#.##.f\nfbf#####..f\nfif.###...f\nfbf...#...f\nfif.####..f\nfffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.......f\nfbf..#.#..f\nfif.##.#..f\nfbf..###..f\nfif#..####f\nfbf####...f\nfif.#.#...f\nfffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.......f\nfbf..#..#.f\nfif.#####.f\nfbf...#.#.f\nfif.####..f\nfbf.##.##.f\nfif...##..f\nfffffffffff\n\n\n~fffffffffff\nfifp..###..f\nfbf.#.#.#..f\nfbf.#.##...f\nfbf.##.##..f\nfbf..#####.f\nffffffffffff\n\n\n~fffffffffff\nfifp.#.#.#.f\nfbf..###.#.f\nfif...#####f\nfbf..#..##.f\nfif..####..f\nffffffffffff\n\n\n~fffffffffff\nfifp..###.#f\nfbf...#.#.#f\nfif....####f\nfbf...##.##f\nfif...####.f\nffffffffffff\n\n\n\n~fffffffffff\nfifp..###..f\nfbf.#.#.#..f\nfif.#..##..f\nfbf#####...f\nfif..#####.f\nffffffffffff\n\n\n\n\n(figure giving tribute - meh?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif.....#.#..f\nfbf....####..f\nfif....#.#...f\nfbf....#.###.f\nfif.######...f\nfbf.....###..f\nfifgg####g#ggf\nffffffffffffff\n\n\n\n\n\n\n\n\n~fffffffffffff\nfbfp.#.......f\nfif..###.....f\nfbf..##......f\nfif...##.....f\nfbf..#.##....f\nfif.#####....f\nfbf...#.#..#.f\nfif....######f\nfbf.....#..#.f\nfifggggg##gggf\nffffffffffffff\n\n\n~fffffffffffffffffffffffffffffffffffffffffff\nfifp.####...##########.###################.f\nfbf....###.##....###.##.#.......####...#...f\nfbf...##.#.#######..###.#########..........f\nfbf......###.#..#...#.#####..#.............f\nfifggggggg##gggggggggg##gg#gg#gggggggggggggf\nffffffffffffffffffffffffffffffffffffffffffff\n\n\n(interesting!)\n~fffffffffff\nfbf####p###f\nfif#......#f\nfbf###....#f\nfif#.#...##f\nfbf#.##..##f\nfif###ggg##f\nfbf##..###.f\nfif.####.#.f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp#######f\nfif.#.###.#f\nfbf...#..##f\nfif######.#f\nfbf.###.###f\nfifggg###g#f\nfbf..###..#f\nfif..#.#...f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp#######f\nfif.#.###.#f\nfbf...#..##f\nfif######.#f\nfbf.###.###f\nfifggg###g#f\nfbf..###..#f\nfif..#.#...f\nffffffffffff\n\n\n\n~fffffffffffff\nfif##p.......f\nfif##........f\nfif#.........f\nfif##........f\nfif##........f\nfif#.........f\nfbf###gggggggf\nfif#.##......f\nfbf##.##.....f\nfif.###..#...f\nfbf..##..#...f\nfif...######.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.......##f\nfif.........#f\nfif.......###f\nfif.......#.#f\nfif......##.#f\nfif......#.##f\nfbf.....#####f\nfifggg####g#gf\nfbf..##.##...f\nfif.....###..f\nfbf.....#....f\nfif.....#....f\nffffffffffffff\n\n\n~fffffffffffff\nfif###p......f\nfif#.#.......f\nfif#.#.......f\nfif#.#.......f\nfif####.....#f\nfifggg#gggg##f\nfif...##....#f\nfif....###..#f\nfbf.....#.###f\nfif.....###..f\nffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n(bad)\n~fffffffffffff\nfifp..#......f\nfif...#......f\nfbf..##......f\nfif..##......f\nfbf..#####...f\nfif...#..##..f\nfbf....######f\nfif.....#..#.f\nfbfggggg##g#gf\nfif....###...f\nffffffffffffff\n\n\n(trivial)\n~fffffffffff\nfifp.#.....f\nfif..##....f\nfbf..###...f\nfif..#.....f\nfbf..####..f\nfif....#...f\nfbfggg##gggf\nfif....#...f\nffffffffffff\n\n(pretty trivial)\n~fffffffffff\nfifp.....#.f\nfif......#.f\nfbf...#.##.f\nfif...#.#..f\nfbf...###..f\nfif...##...f\nfbf....#...f\nfifgggg#gggf\nffffffffffff\n\n\n\n\n(fiine / easy )\n~fffffffffff\nfbfp.......f\nfif......#.f\nfbf......#.f\nfif.....##.f\nfbf....###.f\nfif....#...f\nfbf..###...f\nfif...##...f\nfbf...#.##.f\nfif...###..f\nffffffffffff\n\n\n(meh)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfbf........f\nfif........f\nfbf......#.f\nfif......##f\nfbf.....###f\nfif...###.#f\nfbf.....#.#f\nfif..######f\nfbf...#.#.#f\nfif....###.f\nfbf...##.#.f\nfifgg######f\nffffffffffff\n\n\n\n\n(pretty easy)\n~fffffffffff\nfbfp.......f\nfif........f\nfbf.....##.f\nfif......##f\nfbf.....##.f\nfif....#.##f\nfbf....####f\nfif...###..f\nfbf....##..f\nfif...##...f\nffffffffffff\n\n\n\n\n(easy/arbirtaray/pretty)\n~fffffffffffff\nfif.....p....f\nfif..#.#.....f\nfif..###.....f\nfif...#..#.#.f\nfif...#..###.f\nfbf...#...#..f\nfifg###...#..f\nfbf.#.....#..f\nfif.#.....#..f\nffffffffffffff\n\n\n\n(too trivial)\n~fffffffffffffffffffffffffffffffff\nfifp.............................f\nfif......#.......................f\nfif.....##.......................f\nfif.....##.......................f\nfif...####.......................f\nfif....#.#.......................f\nfif.....###......................f\nfif......#.......................f\nfif......#...#...................f\nfif.....######...................f\nfifggggggg####gggggggggggggggggggf\nfif..........#...................f\nfif..........#...................f\nfif..........##..................f\nfif..........##..................f\nfif.........###..................f\nfbf...........##.................f\nfif...........##.................f\nfbf............###.#.............f\nfif............######............f\nffffffffffffffffffffffffffffffffff\n\n\n(meh)\n~fffffffffffffffffffffffffffffffff\nfifp.............................f\nfif..............................f\nfif.........#....................f\nfif.........#....................f\nfif........###...................f\nfif..........#...................f\nfif.......#####..................f\nfif......##..###.................f\nfif.....##....##.................f\nfif.....#.....#..................f\nfifgggggggggg###gggggggggggggggggf\nfif...........##.................f\nfif...........#.#................f\nfif...........###................f\nfif............###...............f\nfif.............###..............f\nfbf...............###............f\nfif...............#.##...........f\nfbf...............##.............f\nfif...............#..............f\nffffffffffffffffffffffffffffffffff\n\n\n\n\n\n(meh)\n~fffffffffffffffffffffffffffffffffffffffffff\nfifp.##################.###################f\nfbf...#.#.##.##.##.#..#.#.#.##.#.....#.#.##f\nfif...#.#....##...#########.....######.#.#.f\nfbfgggggggggggggg##g#g##gggggggggg#ggggggggf\nfif...............#....##........###.......f\nffffffffffffffffffffffffffffffffffffffffffff\n\n\n(meh)\n~fffffffffffff\nfifp.........f\nfbf..........f\nfif......#...f\nfbf......#...f\nfif.....##...f\nfbf.....#....f\nfif....##....f\nffffffffffffff\n\n\n\n\n\n(looks good, but too easy?)\n~fffffffffff\nfbf########f\nfif#p.##..#f\nfbf###..###f\nfif#...####f\nfbf#####..#f\nfif#ggg####f\nfbf######.#f\nfif...##...f\nffffffffffff\n\n(trivial)\n~ffffffff\nfifp..##f\nfbf.#..#f\nfif.####f\nfbf.###.f\nfif..#..f\nfffffffff\n\n(trivial)\n~ffffffff\nfif#p...f\nfbf##.#.f\nfif####.f\nfbf..##.f\nfif.##..f\nfffffffff\n\n\n(Trivial)\n~ffffffff\nfifp..#.f\nfbf.#.##f\nfif.####f\nfbf.##.#f\nfif..#..f\nfffffffff\n\n\n(zu einfach)\n~ffffffffff\nfif##p.#..f\nfbf###.#..f\nfif#.###..f\nfbf#.##...f\nfif####...f\nfbfggg###gf\nfif...##..f\nfffffffffff\n\n\n(zu einfach?)\n~ffffffffff\nfifp...###f\nfbf....#.#f\nfif....###f\nfbf....#.#f\nfifgggg###f\nfbf####.##f\nfif.#####.f\nfffffffffff\n\n\n\n(meh)\n~fffffffffff\nfifp....###f\nfif....####f\nfbf....#..#f\nfif.#..####f\nfbfg#gg#gg#f\nfif.#######f\nfbf.....###f\nfif....##..f\nffffffffffff\n\n\n\n(meh)\n~fffffffffffff\nfif#####p....f\nfif#.##......f\nfif#.##......f\nfif#.#.##...#f\nfif#g#g###g##f\nfif####..#.##f\nfif##.####.##f\nfif....##.#.#f\nfbf.....#####f\nfif.....##.##f\nffffffffffffff\n\n\n(meh)\n~fffffffffffff\nfif###p......f\nfif#.#.......f\nfif#.##......f\nfif#.#.#...#.f\nfif#g#g##gg##f\nfif#.#.######f\nfif####..#.##f\nfif.#.#####.#f\nfbf....#.#.##f\nfif.....#####f\nffffffffffffff\n\n\n(trivial)\n~fffffffffffffffffffffff\nfif#########p.#########f\nfif#......#...#.......#f\nfif########....########f\nfif#.....#....##.#....#f\nfif#######gggg##g######f\nfif#.....###.#.####...#f\nfif#############.......f\nfif.#####...#..........f\nfbf.........##.........f\nfif..........##........f\nffffffffffffffffffffffff\n\n(trivial)\n~fffffffffffffffffffffff\nfif#######p#....#######f\nfif#.#.#.#.##....#.#.##f\nfif###.#.###..#..#.#.##f\nfif..#.#.#...###.######f\nfif########gg#g#g#gggg#f\nfif.##...##############f\nfif..#####..#...#.#.#..f\nfif..........####.#.#..f\nfbf..........##........f\nfif.........###........f\nffffffffffffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n(THE REST)\n\n(hard, couldn't solve myself)\n~fffffffffffffff\nfifp.........##f\nfif.........##.f\nfif.........###f\nfif........#..#f\nfbf........#.##f\nfif........#.#.f\nfbf.......#####f\nfif........#.##f\nfbf........#..#f\nfifggggggg##gggf\nfbf......##....f\nfif.....##.....f\nffffffffffffffff\n\n\n\n\n(solved first go, ok? ohne persönlichkeit) \n~fffffffffffff\nfbfp.......##f\nfif........#.f\nfbf........#.f\nfif.......##.f\nfbf......##..f\nfif.......#..f\nfbf......####f\nfif......##.#f\nfbf....###...f\nfif.....#....f\nffffffffffffff\n\n(too routine)\n~fffffffffffff\nfbfp.........f\nfif...#......f\nfbf...#......f\nfif..##......f\nfbf...##.....f\nfif.##.#.....f\nfbf..###.....f\nfif..#.##....f\nfbf....##....f\nfif.....##...f\nffffffffffffff\n\n(scheiße)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif..#.......f\nfbf..##......f\nfif...#......f\nfbf...##.....f\nfif....#.....f\nfbf....##....f\nfif.....#....f\nffffffffffffff\n\n\n(zu einfach/procedural?)\n~ffffffffffffff\nfifp..........f\nfif........#..f\nfif........#..f\nfbf.......###.f\nfif.......#.#.f\nfbf.......#...f\nfif.....###...f\nfbf......#....f\nfif......#....f\nfbf....###....f\nfif..####.....f\nfffffffffffffff\n\n\n\n\n\n(zu einfach)\n~fffffffffffff\nfbfp........#f\nfif.........#f\nfbf........##f\nfif.......###f\nfbf.......#..f\nfif.....###..f\nfbf.....#.#..f\nfif....###...f\nfbf....##....f\nfif.....#....f\nffffffffffffff\n\n(kein level)\n~fffffffffffff\nfif...p......f\nfif..........f\nfif..........f\nfif..#.......f\nfif..#.#####.f\nfif..#.....#.f\nfbf..#####.#.f\nfbf..#.....#.f\nfbf........#.f\nfbfgg.g#####gf\nfifgg.g#gggggf\nffffffffffffff\n\n(zu einfach)\n~ffffffffffffff\nfif...........f\nfif...........f\nfif...........f\nfif...p..#....f\nfif.#....#....f\nfif.#....#....f\nfif.#...##....f\nfif.#....##...f\nfbf.##....#...f\nfbfg.#..#.#...f\nfif..#..#.#...f\nfif..#..#.#...f\nfffffffffffffff\n\n\n\n\n\n(zu einfach?)\n~ffffffffff\nfif.......f\nfbf.#.#.#.f\nfif.#.#.#.f\nfbf.#####.f\nfif..#p#..f\nfbf.g###.gf\nfif.g.#g.gf\nfffffffffff\n\n(no level)\n~fffffffff\nfif...p..f\nfbf.g#.#.f\nfif.g###.f\nfbf....#.f\nfif...##.f\nfbfg..#..f\nfif...#..f\nffffffffff\n\n\n(no level)\nffffffff\nf......f\nf....#.f\nfg...#.f\nf..P.#.f\nf..#.#.f\nf..#.#.f\nf.##.#.f\nffffffff\n\n\n(zu einfach)\n~ffffffffff\nfifp....#.f\nfbf....###f\nfif.....##f\nfbf...###.f\nfif...##..f\nfbf...#...f\nfifg####ggf\nfffffffffff\n\n(kein Level)\n~fffffffffffff\nfif...p......f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbfg.........f\nfif..........f\nffffffffffffff\n\n\n\n(kein Level)\n~fffffffffffff\nfif#..p.#.#..f\nfbf########..f\nfbf#......#.#f\nfbf#.#####..#f\nfbf#.....#..#f\nfbf#..##.#..#f\nfbf#...#.#..#f\nfbf#####.####f\nfbf...#...#..f\nfbfg..#####..f\nfif....#.....f\nffffffffffffff\n\n\n\n\n\n(kein Level)\n~fffffffffffff\nfif...p......f\nfbf######....f\nfbf#....#....f\nfbf##........f\nfbf.#..###...f\nfbf.##.#.#...f\nfbf..#.#.#...f\nfbf..#.###...f\nfbf.##..#....f\nfbfg#...#....f\nfif.#...#....f\nffffffffffffff\n\n\n\n\n(kein Level)\n~fffffffffffff\nfif..........f\nfif.###......f\nfif.#.#...###f\nfif.###...#.#f\nfif.#...###..f\nfifg#.###....f\nfif.###.#....f\nfif.#..###...f\nfbf..p.#.#...f\nfbf...###....f\nfif...#.#....f\nffffffffffffff\n\n\n\n(zu einfach)\n~ffffffff\nfif##p..f\nfbf.####f\nfbf###.#f\nfbf...##f\nfif..##.f\nfffffffff\n\n(kein level)\n~fffffffffffff\nfbfp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..........f\nfif.....#....f\nfbf.....#....f\nfif....###...f\nfbf......#...f\nfif....###...f\nffffffffffffff\n\n(meh)\n~ffffffff\nfif##p..f\nfbf#....f\nfbf####.f\nfbf.##..f\nfif..#..f\nfffffffff\n\n(hmmm dunno -vllt zu einfach?)\n\n~fffffffffff\nfif#####p..f\nfbf##.####.f\nfbf##..##..f\nfbf.#..##..f\nfifggggg##gf\nffffffffffff\n\n(dunno?)\n~ffffffffffffffffff\nfifp............#.f\nfif............##.f\nfif.............##f\nfif..............#f\nfif..............#f\nfif............###f\nfif.........####.#f\nfbf...........##.#f\nfif..........##..#f\nfbf..........##...f\nfif.........###...f\nfbf........###....f\nfifgggggggg##gggggf\nfbf......###......f\nfif....#####......f\nfffffffffffffffffff\n\n(zu einfach)\n~ffffffff\nfif#p...f\nfbf#..#.f\nfbf####.f\nfbf..##.f\nfif..#..f\nfffffffff\n\n(boring!)\n~ffffffff\nfifp#.#.f\nfbf.###.f\nfif..##.f\nfbfg##ggf\nfif..#..f\nfffffffff\n\n(trivial)\n~fffffffffff\nfifp.....#.f\nfif......#.f\nfif......#.f\nfif.....##.f\nfbf.....#..f\nfif.....#..f\nfbfgggg##ggf\nfif....#...f\nffffffffffff\n\n(trivial)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif.......#..f\nfbf.......#..f\nfif......##..f\nfbf......##..f\nfif......#...f\nfbf.....##...f\nfifggggg#ggggf\nffffffffffffff\n\n\n(meh)\n~fffffffffff\nfifp.......f\nfif.#......f\nfbf.##.....f\nfif..#.....f\nfbf..##....f\nfif...#....f\nfbf...##...f\nfif....#...f\nffffffffffff\n\n\n(nicht interessant)\n~fffffffffffff\nfbfp.........f\nfif..........f\nfbf##........f\nfif#.........f\nfbf##........f\nfif#.........f\nfbf####......f\nfif.#.#......f\nfbf.###......f\nfif..###.#...f\nffffffffffffff\n\n(meh)\n~fffffffffffff\nfif#p........f\nfif##........f\nfif#.........f\nfif##........f\nfbf###.......f\nfif#.........f\nfbf##ggggggggf\nfif.##.......f\nfbf..#..#....f\nfif..#.###...f\nffffffffffffff\n\n\n\n\n\n\n\n\n(meh)\n~fffffffffffffffffffffffffffffffff\nfifp..............####...........f\nfbf..............#.#.#...........f\nfbf..............###.............f\nfbf.............###..#...........f\nfifggggggggggggggg#####ggggggggggf\nffffffffffffffffffffffffffffffffff\n\n\n\n(huh not so bad? but hard for some maybe? wait maybe i just solved by chance....)\n~fffffffffffff\nfifp......###f\nfif.#.#...#.#f\nfbf.#.##...##f\nfbf.####...##f\nfbf##..###.##f\nfbf######.#.#f\nfbf.....#####f\nfbf...###.##.f\nfbf...#.#....f\nfif....##....f\nffffffffffffff\n\n\n\nmessage level 5 of 10 : Gallows\n(hard - actually ok? medium difficulty?)\n~ffffffffffff\nfif.........f\nfifp.#......f\nfif..#......f\nfif..###....f\nfif..#......f\nfbf.####....f\nfif...###...f\nfbf...#.#...f\nfif.....#...f\nfbfggggg##ggf\nfif......##.f\nfffffffffffff\n\n\n\n\nmessage level 2 of 10 : ANTENNA 1\n(ok anfangerlevel?)\n~fffffffff\nfbfp#..#.f\nfif##..#.f\nfbf.#.##.f\nfif####.#f\nfbf#..###f\nfifggg#ggf\nffffffffff\n\n\n\nmessage level 3 of 10 : UFO\n(ok! / easy / Space invaders)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..#..#....f\nfif########..f\nfbf#.###..#..f\nfif.....####.f\nfbf..###.##..f\nfif....###...f\nffffffffffffff\n\n\n\n\n(\n(ok anfangerlevel)\n~fffffffff\nfbfp#..##f\nfif.##.##f\nfbf..###.f\nfif...###f\nfbf####..f\nfifggg#ggf\nffffffffff\n)\n\n\n\n\n(\n\n~fffffffffffff\nfifp.......#.f\nfif........##f\nfif........##f\nfif.........#f\nfbf.........#f\nfif.......###f\nfbf.......##.f\nfifggggggg##gf\nfbf.......#..f\nfif...#####..f\nffffffffffffff\n)\n\n\n(ok simple? NAH TOO SIMPLE)\n~ffffffffffffffffffffffffffff\nfifp........................f\nfif###......................f\nfif#.#......................f\nfif###......................f\nfif##.......................f\nfif##.......................f\nfif##.......................f\nfif#........................f\nfif##.......................f\nfif##.......................f\nfif##.......................f\nfif##..#.#..................f\nfif##.####..................f\nfif#####.#..................f\nfifgg#g#g#ggggggggggggggggggf\nfif..#.###..................f\nfif......##.................f\nfif......##.................f\nfif......#.#................f\nfif......####...............f\nfif.......#.#...............f\nfbf.......#.#...............f\nfif.....######..............f\nfbf.....#..#####.##.........f\nfif.........#.####..........f\nfffffffffffffffffffffffffffff\n\n\n\n\n(alien slug attack!)\nmessage level 6 of 10 : Alien Slug Attack\n~fffffffffffffffff\nfifp...####......f\nfbf....#####.....f\nfbf...##..##.....f\nfbf....#..##.....f\nfifgggggggg####ggf\nffffffffffffffffff\n\n\n\n\n\n(decent - middle-hard? -- too mich like final level? (difficulty/appearance-wise?)\n~fffffffffffffff\nfif#p..........f\nfif#...........f\nfif##..........f\nfif#...........f\nfbf###.........f\nfif#.#.........f\nfbf.##.#.......f\nfif..###.......f\nfbf...###......f\nfif....#...#...f\nfbfgggg######ggf\nfif......##....f\nffffffffffffffff\n)\n\n\n\n(fun to find the right points? MEH)\n~ffffffffffffffffffff\nfifp................f\nfif.................f\nfif...............##f\nfif................#f\nfif...............##f\nfif...............##f\nfif.............####f\nfif................#f\nfif..............###f\nfif...............##f\nfif................#f\nfif.........#.#...##f\nfif.........#.####.#f\nfif........####.####f\nfif............##...f\nfifgggggggg#######ggf\nfif........#..#.....f\nfif........######...f\nfif.........##......f\nfbf........##.......f\nfif.....####........f\nfbf......#..........f\nfif......#..........f\nfbf....###..........f\nfif.#######.........f\nfffffffffffffffffffff\n\n\n\n\n\n(wie ein gebäude aus - ziemlich einfach)\n~fffffffffffff\nfifp........#f\nfif........##f\nfif........##f\nfif........##f\nfbf.........#f\nfif.........#f\nfbfgggggggg##f\nfif......###.f\nfbf.......##.f\nfif....####..f\nffffffffffffff\n\n\n\n\n\n\n(nice/ok!)\n~ffffffffff\nfifp.....#f\nfbf.....##f\nfif....###f\nfbf....#.#f\nfif....###f\nfbfggg###gf\nfif..##...f\nfffffffffff\n\n\nmessage level 4 of 10 : Duck Tree\n(ducktree!)\n~fffffffffff\nfifp.##..##f\nfif.###.###f\nfbf...##.#.f\nfif..###.#.f\nfbf....####f\nfifgggg##ggf\nfbf....#...f\nfif....#...f\nffffffffffff\n\n\n\n)\n", [2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 2, 0, 4, 2, 2, 4, 4, 0, "restart", 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4], "background exploding fenster tl:0,background fenster fenster_right:1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,background fenster:2,background fenster fenster_down:3,background inventar:4,4,4,4,4,4,4,4,4,background bang_schatten inventar:5,\n4,5,4,5,4,background fenster fenster_up:6,2,background fenster fenster_left fenster_right:7,7,7,7,7,7,7,\n7,7,7,7,7,7,7,7,2,3,background:8,8,background htarget:9,background bond_d wall:10,\nbackground bond_d bond_u landbackground wall:11,11,11,11,11,11,11,background bond_u landbackground wall:12,background landbackground wall:13,background bond_r landbackground wall:14,background landbackground:15,6,3,8,\n8,9,8,15,15,15,15,15,15,15,15,15,background bond_d bond_l landbackground wall:16,background bond_r bond_u landbackground wall:17,\n6,3,8,8,9,8,background bond_d landbackground wall:18,background bond_d bond_r bond_u landbackground wall:19,19,11,11,19,11,19,\n12,13,background bond_l bond_r landbackground wall:20,6,3,8,8,9,8,15,background bond_d bond_l bond_r landbackground wall:21,background bond_l bond_u landbackground wall:22,15,15,\nbackground bond_l landbackground wall:23,15,23,15,15,20,6,3,8,8,9,8,18,background bond_l bond_r bond_u landbackground wall:24,\n15,15,15,15,15,15,14,background bond_d bond_r landbackground wall:25,24,6,3,8,8,background htarget player_h:26,\n8,15,23,15,15,15,15,15,15,20,21,24,6,3,\n8,8,9,8,15,15,15,15,15,15,15,15,23,21,\n24,6,3,8,8,9,8,15,15,15,15,15,15,15,\n15,15,16,22,6,3,8,8,9,8,15,15,15,15,\n15,15,15,15,15,15,13,6,3,8,8,9,8,15,\n15,15,15,15,15,15,15,15,15,15,6,2,background fenster fenster_left:27,27,\n27,27,27,27,27,27,27,27,27,27,27,27,27,2,\n", 26, "1627892636599.9646"] + "A CLEAR VIEW OF THE SKY", + ["title A CLEAR VIEW OF THE SKY\nauthor increpare\nhomepage www.increpare.com\n\nnorepeat_action\n\nrun_rules_on_level_start\n\ncolor_palette 2\n\nbackground_color #005784\ntext_color lightblue\n\n(uses https://github.com/increpare/Zersto-rungto generate levels)\n========\nOBJECTS\n========\n\nbackground\nblue\n\nlandbackground\ngreen\n\n\nwall \ndarkblue gray lightgray\n00000\n01110\n01110\n01110\n00000\n\nplayer_h\ntransparent\n.....\n..0..\n.000.\n..0..\n.....\n\n\nplayer_v\nyellow\n.....\n..0..\n.000.\n..0..\n.....\n\n\nfenster\n#005784\n\n\nfenster_up\n#1d3d60 lightblue\n00000\n.....\n.....\n.....\n.....\n\nfenster_down\ndarkblue #17669f\n.....\n.....\n.....\n.....\n11111\n\nfenster_left\n#1d3d60 #17669f\n1....\n1....\n1....\n1....\n1....\n\nfenster_right\n#1d3d60\n....0\n....0\n....0\n....0\n....0\n\nhtarget\norange\n.....\n.....\n00000\n.....\n.....\n\n\nvtarget\norange\n..0..\n..0..\n..0..\n..0..\n..0..\n\ninventar\ndarkblue\n\nbang\n yellow red\n...0.\n..00.\n.010.\n.00..\n.0...\n\nbang_schatten\ndarkgray\n...0.\n..00.\n.0.0.\n.00..\n.0...\n\nbond_u\ndarkblue gray lightgray\n.111.\n.....\n.....\n.....\n.....\n\n\n\nbond_d\ndarkblue gray lightgray\n.....\n.....\n.....\n.....\n.111.\n\n\n\nbond_l\ndarkblue gray lightgray\n.....\n1....\n1....\n1....\n.....\n\n\n\nbond_r\ndarkblue gray lightgray\n.....\n....1\n....1\n....1\n.....\n\n\n\n\ntl\ntransparent\n\nexploding\ntransparent\n\nexplosion\nred yellow\n.1.1.\n10.01\n..0..\n10.01\n.1.1.\n\nnofall\nred\n.0...\n.....\n.....\n.....\n.....\n\nfall\nlightblue\n.0...\n.....\n.....\n.....\n.....\n\n\nsky_darker 7\ndarkred darkblue\n01010\n10101\n01110\n10101\n01011\n\nsky_darker2 8\ndarkbrown black\n01010\n10101\n01110\n10101\n01011\n\n\nsky_darker4 0\nblack darkblue\n11010\n10111\n01010\n11101\n01011\n\nsky_darker3 9\nwhite black\n11111\n11101\n11111\n11111\n11111\n\nsky_darker7 w\nblack\n\nsky_pink 2\nred darkblue\n01010\n10101\n01110\n10101\n01011\n\nsky_orange 1\nred lightred\n01000\n10101\n00010\n01010\n00000\n\n\nsky_red 3\nred orange\n01010\n10101\n01010\n10101\n01010\n\nsky_yellow 4\nyellow red orange\n12121\n21212\n10001\n00000\n00000\n\nsky_purple 5 \nred blue\n01010\n11101\n01010\n10111\n01010\n\n\nsky_land 6\ndarkgreen green\n01010\n10101\n01010\n10101\n01010\n\n=======\nLEGEND\n=======\n\nplayer = player_h or player_v\ntarget = htarget or vtarget\n\n. = Background\n# = wall\nP = Player_h\nf = fenster\n\ng = landbackground\n\nobstacle = wall\n~ = tl and fenster\ni = inventar\nb = bang and inventar\nbond = bond_u or bond_d or bond_l or bond_r\n\nfallblocker = wall or fenster\nanimation = 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 or 0\n=======\nSOUNDS\n=======\n\nsfx0 55915302 (bang)\nsfx1 90167907 (other agains)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nlandbackground, inventar\nwall\nbond_u\nbond_d\nbond_l\nbond_r\nexplosion\ntarget\nPlayer, fenster, bang,bang_schatten\nfenster_up\nfenster_down\nfenster_left\nfenster_right\ntl\nexploding\nnofall\nfall\n1,2,3,4, 5, 6,7,8,9,0,w\n\n======\nRULES\n======\n\n\nup [fenster | no fenster ]-> [ fenster fenster_up | ]\ndown [fenster | no fenster ]-> [ fenster fenster_down | ]\nleft [fenster | no fenster ]-> [ fenster fenster_left | ]\nright [fenster | no fenster ]-> [ fenster fenster_right | ]\n\n[ tl no exploding ] [bond]->[ tl ] [ ]\ndown [ tl no exploding ] [wall | wall]->[tl][ wall bond_d | wall bond_u ]\nright [ tl no exploding ] [wall | wall]->[tl][ wall bond_r | wall bond_l ]\n\n[tl]->[tl exploding]\n\ndown [ wall no bond_d | fallblocker ] -> [ wall nofall | fallblocker ]\n(floodfill)\nup [nofall bond_u | ] -> [ nofall bond_u | nofall ]\n+ down [nofall bond_d | ] -> [ nofall bond_d | nofall ]\n+ left [nofall bond_l | ] -> [ nofall bond_l | nofall ]\n+ right [nofall bond_r | ] -> [ nofall bond_r | nofall ]\n\n\ndown [ wall no nofall | no fallblocker ] -> [ wall fall | ]\n\nup [fall bond_u | ] -> [ fall bond_u | fall ]\n+ down [fall bond_d | ] -> [ fall bond_d | fall ]\n+ left [fall bond_l | ] -> [ fall bond_l | fall ]\n+ right [fall bond_r | ] -> [ fall bond_r | fall ]\n\n[fall wall]->[down wall] sfx1 again\n\n[fall]->[]\n[nofall]->[]\n\n[up wall bond ] -> [ up wall up bond ]\n+ [down wall bond ] -> [ down wall down bond ]\n+ [left wall bond ] -> [ left wall left bond ]\n+ [right wall bond ] -> [ right wall right bond ]\n\n[target]->[]\n\n\n[horizontal player ] -> cancel\n(\n[up player_h ] -> [ up player_v ]\n[down player_h ] -> [ down player_v ]\n[left player_v ] -> [ left player_h ]\n[right player_v ] -> [ right player_h ]\n)\n\nright left down [ landbackground | no landbackground no fenster ] -> [ landbackground | landbackground no fenster ]\n\n\n[player_h ] -> [ player_h htarget ]\n[player_v ] -> [ player_v vtarget ]\n\nhorizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nvertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\nup [ bond_u | explosion ] -> [ | explosion ]\ndown [ bond_d | explosion ] -> [ | explosion ]\nleft [ bond_l | explosion ] -> [ | explosion ]\nright [ bond_r | explosion ] -> [ | explosion ]\n\n[explosion wall ] -> [ no bond ] sfx1 again\n\n[explosion ] -> [ ] again\n\n[action player ] [bang] -> [ player ] [ action bang_schatten ]\n\n[action bang_schatten ] [ target ]-> [ action bang_schatten ] [ explosion ] sfx0 again\n\n\nlate [target]->[]\n\nlate [player_h ] -> [ player_h htarget ]\nlate [player_v ] -> [ player_v vtarget ]\n\nlate horizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nlate vertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll wall on landbackground \n\n=======\nLEVELS\n=======\n\n\n(OK LEVELS)\n\n\n\n\nmessage All those ugly buildings blocking our view.\nmessage Let's DEMOLISH them to SAVE OUR SKY\n\nmessage level 1 of 13 : FACTORY\n(sehr einfach)\n~ffffffffffffff\nfif...........f\nfif...........f\nfif...........f\nfif....p......f\nfif.....#.....f\nfif...#.#.....f\nfif...#.###...f\nfbf...######..f\nfif..###...#..f\nfbfg.#...#.#..f\nfif..#...#.#..f\nfffffffffffffff\n\n\nmessage Ah, what a lovely view of the sky!\n\nmessage level 2 of 13 : Lop-sided Electricity Poll\n(actually ok?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif...#......f\nfif...##.....f\nfif...#......f\nfbf...##.....f\nfif....##....f\nfbfggggg#ggggf\nfif.....#....f\nffffffffffffff\n\n\n\n\nmessage level 3 of 13 : Water Pump\n(ok anfängerlevel?)\n~fffffffff\nfif...p..f\nfbf###...f\nfif#.###.f\nfbf#.##..f\nfif#.##..f\nfbf#gg##gf\nfif...#..f\nffffffffff\n\n\n\n\nmessage level 4 of 13 : Electricity Supply\n\n(einfach/gut?)\n~ffffffff\nfif###p#f\nfbf#.#.#f\nfbf#####f\nfbf##.#.f\nfifg####f\nfffffffff\n\n\nmessage level 5 of 13 : Water Font\n(hard)\n~fffffffffffff\nfifp....###..f\nfbf...#.#.#..f\nfbf...####...f\nfbf...##.##..f\nfifgg#g####ggf\nffffffffffffff\n\n\n\nmessage level 6 of 13 : Angry Goose\n(tricky + sieht gut aus)\n~ffffffffffff\nfifp##.####.f\nfbf.####.##.f\nfbf...##.#..f\nfbf...###...f\nfifgg##gggggf\nfffffffffffff\n\n\n\nmessage level 7 of 13 : Lean-to\n(nice/ok!)\n~fffffffffff\nfifp..#....f\nfif..##....f\nfbf.##.....f\nfif..#.....f\nfbf####....f\nfif...##...f\nfbfggg##gggf\nfif....##..f\nffffffffffff\n\n\n(medium-hard / fun! )\nmessage level 8 of 13 : Treehouse\n~fffffffffffffff\nfifp...........f\nfif........#...f\nfif........#...f\nfif.......####.f\nfbf.......#..#.f\nfif......#####.f\nfbf........#...f\nfif......###...f\nfbf......##....f\nfif.....##.....f\nfbfgggg#g#gggggf\nfif...####.....f\nffffffffffffffff\n\n\n\n\nmessage level 9 of 13 : Ugly Antenna\n(i had fun solving this)\n~fffffffffffff\nfifp.###.####f\nfbf..#.#....#f\nfif..#.##.###f\nfbf..#.###.#.f\nfif..####.##.f\nfbfggggg###ggf\nfif.....#....f\nffffffffffffff\n\n\n\n\nmessage level 10 of 13 : 60's Futuristic settlement\n(ok/interesting to solve!)\n~fffffffffff\nfbf##p.####f\nfif#...#..#f\nfbf#...####f\nfif######.#f\nfbf###.##.#f\nfifggg##gg#f\nfbf...#.#.#f\nfif...###..f\nffffffffffff\n\n\nmessage level 11 of 13 : Dystopic settlement\n(futuristic city - hardlevel?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..##......f\nfif..#.......f\nfbf..##.#.#..f\nfif..##.###..f\nfbf..###.###.f\nfif....#.##..f\nfbf....#.#...f\nfifggg####gggf\nffffffffffffff\n\n\nmessage level 12 of 13 : Space elevator\n(interesting? seemingly impossible?)\n~fffffffffffff\nfif#####p....f\nfif#.#.#.....f\nfif#.####....f\nfif#.##......f\nfif#g#gggggggf\nfif#.#.......f\nfif#.##......f\nfif#.#.......f\nfif#.##......f\nfbf#.#.......f\nfif#.###.....f\nfbf#.#.###.#.f\nfif#.###..##.f\nfbf##..####..f\nfif.#######..f\nffffffffffffff\n\n\n\n\nmessage level 13 of 13 : Building seeminly purposely constructed to block my view.\n\n(can't easily solve meh - could be ok final level? FINAL LEVEL)\n~fffffffffffffffff\nfif###p..........f\nfif#.##..........f\nfif####..........f\nfif...##.........f\nfif####..........f\nfif.#............f\nfif##............f\nfif###...........f\nfif..#...........f\nfif#####.........f\nfif...#.#.#......f\nfif######.#......f\nfif###..###......f\nfif#..###........f\nfif.....##.......f\nfifgggggg#gggggggf\nfif......###.....f\nfif.......##.....f\nfif.......##.....f\nfbf........##....f\nfif........##....f\nfbf.........##...f\nfif.........##...f\nfbf.........#####f\nfif............#.f\nffffffffffffffffff\n\n\nmessage Ahh, the sky is clear again, just in time for the sunset\n\n\n\n5555555555555555555\n5555522222222555555\n5552222222222222555\n5222222222222222225\n2222222111112222222\n2222211111111122222\n2221111133311111222\n2211111334331111112\n6666666666666666666\n6666666666666666666\n6666666666666666666\n\n\n\n\n22222222222222222222\n22222222222222222222\n22222222222222222222\n22222222222222222222\n22222221212122222222\n22221212121212122222\n22212121111121212222\n22121211111112121222\n66666666666666666666\n66666666666666666666\n66666666666666666666\n\n\n\n00000077777777000000\n00007777777777770000\n00077777777777777000\n07777777777777777770\n77777722222222777777\n77772222222222227777\n77722221111122222777\n77222211111112222277\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n88888888888888888888\n88888880000088888888\n88888000000000088888\n88800000000000000888\n88000000000000000088\n80000000000000000008\n00000000222000000000\n00000002222200000000\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwww000wwwwwwwww\nwwwww000222000wwwwww\n00000022222220000000\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\n\n\nw9wwwwwwww9wwwwwwwww\nwwwwwwwwwwwwww9www9w\nwwww9wwwwwwwwwwwwwww\nwwwwwwwww9wwwwwwwwww\nwwwwwwwwwwwwwwwwwwww\nwwwwwwwwwwwwwwww9www\nw9wwwww9wwwww9wwwwww\nwwwwwwwwwwwwwwwwwwww\n88888888888888888888\n88888888888888888888\n88888888888888888888\n\nmessage The End \n\n\n\n(\n\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf.....#....f\nfif....####..f\nfbf...##..#..f\nfif#.#..###..f\nfbf#####.##..f\nfif.#.####...f\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfbfp.........f\nfif....#.....f\nfbf....##....f\nfif....###...f\nfbf......#...f\nfif..######..f\nfbf...#.#.#..f\nfif.....####.f\nfbf....#.##..f\nfifgg#####gggf\nffffffffffffff\n\n(microscope?)\n~fffffffffffff\nfbfp.........f\nfif......##..f\nfbf.....##...f\nfif....##....f\nfbf....#.##..f\nfif....#.#...f\nfbf....####..f\nfif.......#..f\nfbf..######..f\nfifgg####ggggf\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.......#.f\nfif......#.#.f\nfif......#.##f\nfif......####f\nfbf....####.#f\nfifggggg#g##gf\nfbf...#####.#f\nfif....######f\nfbf..#.###...f\nfif.######...f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.....#...f\nfif......##..f\nfif....####..f\nfif....##.#..f\nfbf....###...f\nfifgg#g####ggf\nfbf..####.#..f\nfif..#####...f\nfbf..#######.f\nfif....#####.f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.....#...f\nfif....#.#...f\nfif....###...f\nfif...###..#.f\nfbf...#.####.f\nfifgggg##ggggf\nfbf...#####..f\nfif....####..f\nfbf..######..f\nfif..########f\nffffffffffffff\n\n\n\n\n~fffffffffff\nfbfp...#.#.f\nfif....#.##f\nfbf....###.f\nfif.###.###f\nfbf...###.#f\nfif.....##.f\nfbfggg###ggf\nfif...#####f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp...##..f\nfif.######.f\nfbf....#.#.f\nfif...###..f\nfbf...#.##.f\nfif....###.f\nfbfggg#gg#gf\nfif..######f\nffffffffffff\n\n(hard, but looks nice)\n~fffffffffff\nfbfp...#..#f\nfif....####f\nfbf.....#.#f\nfif...###..f\nfbf.....###f\nfif...###..f\nfbfg##g#g##f\nfif..######f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp..#.##.f\nfif...#.#..f\nfbf...#####f\nfif....#.#.f\nfbf....###.f\nfif...###..f\nfbfg###gg#gf\nfif.#.####.f\nffffffffffff\n\n~fffffffffff\nfifp.......f\nfif........f\nfif#.......f\nfbf###.....f\nfif#.##....f\nfbf##......f\nfif##......f\nfbf#.......f\nfif##.#....f\nfbf##.#....f\nfif.####...f\nfbf.#.####.f\nfif....#.#.f\nfbfgggg###gf\nfif....#...f\nffffffffffff\n\n\n\n(hard/unsolved)\n~fffffffffffff\nfifp...####..f\nfif.....##...f\nfbf....##....f\nfif...#.##...f\nfbf...#.#..#.f\nfif...####.#.f\nfbf....#.###.f\nfif....#.#...f\nfbfggg#######f\nfif..#...#...f\nfbf.######...f\nfif...###....f\nffffffffffffff\n\n\n(haard, pretty, unsolved)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf.....#....f\nfif....###...f\nfbf...#####..f\nfif.....#..#.f\nfbf.....####.f\nfif..#.#.#.#.f\nfbf.##.#.##..f\nfif..#.####.#f\nfbfgg##ggg#g#f\nfif...#######f\nffffffffffffff\n\n\n(haard, pretty, ,unsolved)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf...##..#..f\nfif.##.####..f\nfbf..##.#.#..f\nfif...#.###..f\nfbf...##.##..f\nfif....###...f\nfbf......#...f\nfif....######f\nfbfgg###ggg##f\nfif....#####.f\nffffffffffffff\n\n(haard ,unsolved)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfbf........f\nfif....###.f\nfbf.....###f\nfif......#.f\nfbf......#.f\nfif.....##.f\nfbf......##f\nfif....####f\nfbf....##..f\nfif...###..f\nfbf....##..f\nfifggg##gggf\nffffffffffff\n\n\n\n(too tired, don't want to solve)\n~ffffffffffffffffffffffffffffffffffffff\nfifp..................................f\nfif.......#...........................f\nfif.......#...........................f\nfif#.....##...........................f\nfif##...##............................f\nfif.####.#............................f\nfif....####...........................f\nfif....##.#...........................f\nfif.......##..........................f\nfif......####.........................f\nfif........#.#........................f\nfif.......####........................f\nfif.......#.##........................f\nfifggggggg#g##ggggggggggggggggggggggggf\nfif........####.......................f\nfif...........#.......................f\nfif........######.....................f\nfif........#.##.##....................f\nfif............##.....................f\nfbf..........####.....................f\nfif............####...................f\nfbf...........##.###..................f\nfif..............#.#..................f\nfbf................#..................f\nfif................###................f\nfffffffffffffffffffffffffffffffffffffff\n\n\n~fffffffffffff\nfbfp.#.......f\nfif..###.....f\nfbf..##......f\nfif...##.....f\nfbf..#.##....f\nfif.#####....f\nfbf...#.#..#.f\nfif....######f\nfbf.....#..#.f\nfifggggg##gggf\nffffffffffffff\n\n\n~fffffffffffff\nfifp.....##.#f\nfif.......#.#f\nfif.......#.#f\nfif.......###f\nfif.........#f\nfif.........#f\nfifggggggggg#f\nfif.......###f\nfif......##.#f\nfif.....###.#f\nfif.......###f\nfif.........#f\nfif.......###f\nfif......#..#f\nfif......####f\nfif.......#.#f\nfif........##f\nfif.......###f\nfif.........#f\nfif........##f\nfif.......###f\nfif........##f\nfif........##f\nfif.........#f\nfbf..##...###f\nfif..#...##.#f\nfbf..##....##f\nfif..###.###.f\nfbf...##.#...f\nfif...#####..f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif.........#f\nfif.......###f\nfif........##f\nfif........##f\nfif........##f\nfif.....##.##f\nfifgggggg#g##f\nfif.....#####f\nfif.........#f\nfif.....#####f\nfif.........#f\nfif...#######f\nfif.....#...#f\nfif......####f\nfif.........#f\nfif.......###f\nfif......##.#f\nfif.......#.#f\nfif.......###f\nfif......#..#f\nfif......####f\nfbf.........#f\nfif.......###f\nfbf.......#.#f\nfif.......##.f\nfbf.....###..f\nfif..#####...f\nffffffffffffff\n\n\n\n~fffffffffffffffffffffff\nfifp.................##f\nfif.................#.#f\nfif.................###f\nfif...................#f\nfif...................#f\nfif..................##f\nfifgggggggggggggggggg##f\nfif..................##f\nfif.................#.#f\nfif.................#.#f\nfif.............###.###f\nfif..............#.##.#f\nfif..............###..#f\nfif...............#.#.#f\nfbf...............#.###f\nfif...##....#.##..###.#f\nfbf...###.###..#.#.#.##f\nfif....####.#..#######.f\nfbf......########..#.#.f\nfif..........##......#.f\nffffffffffffffffffffffff\n\n\n\n~ffffffffffffffffff\nfif##p.....#######f\nfif##.......##...#f\nfif#..#.......####f\nfif######.....####f\nfbf#....##..###..#f\nfif######...#.#.##f\nfbfg#gg####g##ggggf\nfif.....#.#####...f\nfbf.....###.#.....f\nfif.......##......f\nfffffffffffffffffff\n\n\n\n~ffffffffffffffffff\nfif########p......f\nfif#.#.#.#........f\nfif#.#.#.#...#....f\nfif#.######.######f\nfbf#g##gg#######ggf\nfif#.#...##.#..##.f\nfbf###....#.###...f\nfif##.....###.....f\nfbf#....####......f\nfif.......#.......f\nfffffffffffffffffff\n\n\n\n~fffffffffffffffffffffff\nfifp.......############f\nfif......####.#.......#f\nfif......#.#.#.########f\nfif.......##.#.#......#f\nfbfggggggg#g##g########f\nfif......###.#.#.#.####f\nfbf........######...#..f\nfif.....###....#.......f\nfbf.......######.......f\nfif.....########.......f\nffffffffffffffffffffffff\n\n\n\n\n\n~fffffffffffffffffffffff\nfif###p########.##.####f\nfif#####..#.#...####..#f\nfif...#.###.##....#.###f\nfif#######..#.#########f\nfbf.#...#.#.######.#...f\nfifg#####g##g##ggggggggf\nfbf.....######.........f\nfif.......#..##........f\nfbf.........###........f\nfif..........###.......f\nffffffffffffffffffffffff\n\n\n\n\n~fffffffffffffffffffffff\nfif#########p....##....f\nfif#.#.#.##....###.....f\nfif#.#.#.#....#.####...f\nfif#.#.#.#....#.#..#...f\nfbf#g#g###gggg#g###ggggf\nfif####..#.#..###.#....f\nfbf...####.#..##.......f\nfif...##.#.##.#.#......f\nfbf....##########......f\nfif....#....##.#.......f\nffffffffffffffffffffffff\n\n\n\n(hard, haven't solved manually)\n~fffffffffffff\nfif###p......f\nfbf#.#.......f\nfif#.###.....f\nfbf#.#.##....f\nfif####g####gf\nfbf##.####...f\nfif.##..#....f\nffffffffffffff\n\n\n(too hard)\n~fffffffffffff\nfif#####p....f\nfif#.#.#.....f\nfif#.##.#....f\nfif#.#####...f\nfif#.##.#....f\nfif#g#gggggggf\nfif#.####....f\nfif#.#.#..##.f\nfif#.###.#.##f\nfbf##..#####.f\nfif.####.....f\nfbf...###....f\nfif....#.....f\nfbf....#.##..f\nfif....###...f\nffffffffffffff\n\n\n\n(hard, looks ok, but meh)\n~fffffffffffff\nfif###p#.....f\nfif##.##.....f\nfif##.#......f\nfif####......f\nfif#.#.......f\nfbf#.#.......f\nfif###.......f\nfbf#.##......f\nfif#.##......f\nfbf##g##gggggf\nfif.###......f\nfbf.#.##.....f\nfif...#......f\nfbf..###.#...f\nfif....####..f\nffffffffffffff\n\n\n(hard, looks ok, but meh)\n~fffffffffffff\nfif##p#......f\nfif####......f\nfif#.##......f\nfif#.#.......f\nfif#.#.......f\nfbf###.......f\nfif#.........f\nfbf###.......f\nfif#.........f\nfbf#####gggggf\nfif#.##.#....f\nfbf..##.##...f\nfif..#####...f\nfbf.....###..f\nfif...###....f\nffffffffffffff\n\n(hmmm! not sure!)\n~ffffffffffffffffffffffffffff\nfifp........................f\nfif.........................f\nfif.........................f\nfif.........................f\nfif....................##...f\nfif.....................##..f\nfif....................##...f\nfif...................###...f\nfif...................##....f\nfif.................####....f\nfifgggggggggggggggggggg###ggf\nfif...............######.##.f\nfif..................#.#....f\nfif..................####...f\nfif................####.#...f\nfif................###......f\nfif..................##.....f\nfif..................#.##...f\nfif................###.##...f\nfbf................#.#####..f\nfif...............##.#......f\nfbf................####.....f\nfif................##.......f\nfbf.............#####.......f\nfif.........#####...........f\nfffffffffffffffffffffffffffff\n\n\n\n(soll schwierig sein - will nicht lösen!)\n~fffffffffff\nfifp.......f\nfif........f\nfbf........f\nfif....#...f\nfbf..###...f\nfif....##..f\nfbf...#.#..f\nfif...#.##.f\nfbf...#.###f\nfif..###.##f\nfbf..#.###.f\nfifgggg##ggf\nffffffffffff\n\n\n(soll schwierig sein - ja zu schwierig)\n~ffffffffffff\nfif.........f\nfbf.p.......f\nfif...#.....f\nfbf...#.....f\nfif...###...f\nfbf...#.##..f\nfif.#####...f\nfbf..#..###.f\nfif...##..#.f\nfbf....####.f\nfifggggg##ggf\nfffffffffffff\n\n(hard - will nicht lösen )\n~fffffffffffff\nfifp.........f\nfif......#...f\nfif.....##...f\nfif....##....f\nfbf....#.##..f\nfif....###...f\nfbfgggg##ggggf\nfif...###....f\nfbf.....#....f\nfif....##....f\nffffffffffffff\n\n\n(should be hard?)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfif...##...f\nfbf..###...f\nfif.###....f\nfbf...##...f\nfif....#...f\nfbf..#.##..f\nfifgg##g#g.f\nfbf...#.#..f\nfif...###..f\nffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n(zeimlich einfach!)\n~fffffffffff\nfifp.#..#..f\nfif..##.#..f\nfbf...#.##.f\nfif...####.f\nfbf....##..f\nfif..###...f\nfbfgggg#gggf\nfif....#...f\nffffffffffff\n\n\n(simple/ok)\n~ffffffffff\nfifp.#..##f\nfbf..#####f\nfif..#.#.#f\nfbf...##..f\nfif..##...f\nfbfggg###gf\nfif..##...f\nfffffffffff\n\n\n(simple/ok)\n~fffffffffff\nfifp......#f\nfif......##f\nfbf......##f\nfif.....###f\nfbf.......#f\nfifgggggg##f\nfbf.....##.f\nfif...###..f\nffffffffffff\n\n\n\n\n(simple/ok / ok maybe nicer than ok! :] )\n~fffffffffff\nfifp....#..f\nfif...#.##.f\nfbf...###..f\nfif..###...f\nfbf...#....f\nfif...##...f\nfbfgggg##ggf\nfif....#...f\nffffffffffff\n\n\n\n\n\n\n\n(beautiful-looking? not fun to solve)\n~fffffffffff\nfbf########f\nfif##p...##f\nfbf##...#.#f\nfif#.#..###f\nfbf#.#...##f\nfif###g#g##f\nfbf#.######f\nfif....#.#.f\nffffffffffff\n\n\n\n\n\n\n\n(ok to solve!)\n~fffffffffff\nfbfp...####f\nfif....#..#f\nfbf....####f\nfif#.###..#f\nfbf#.#.####f\nfif####gg##f\nfbf.#.####.f\nfif....#.#.f\nffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n~fffffffffffff\nfifp...######f\nfif.......#.#f\nfif.........#f\nfif.......###f\nfif.......#.#f\nfif.....#####f\nfifgggggg##g#f\nfif......#.##f\nfif......#.##f\nfbf......#.##f\nfif......####f\nfbf......##.#f\nfif...#..#...f\nfbf..#####...f\nfif.....###..f\nffffffffffffff\n\n\n(dunno? schwierig)\n~fffffffffffff\nfbf#####p####f\nfif...####..#f\nfbf....#.####f\nfif.....#.#.#f\nfbf.....#.###f\nfif.....#.#.#f\nfbf.....#.#.#f\nfifgggg######f\nfbf......###.f\nfif....###...f\nffffffffffffff\n\n\n\n\n\n~fffffffffffff\nfifp..#.###..f\nfbf..##.#.#..f\nfbf...####...f\nfbf....##.#..f\nfifg##g#g##ggf\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif...#......f\nfif...###....f\nfbf....###...f\nfif.....#....f\nfbf....###...f\nfif...##.....f\nfbfgg##ggggggf\nfif.#####....f\nffffffffffffff\n\n\n\n~ffffffff\nfif....#f\nfif....#f\nfif....#f\nfif..###f\nfif....#f\nfif.p.##f\nfif....#f\nfif#.###f\nfif#..#.f\nfbf####.f\nfif#.#..f\nfbf#g#ggf\nfif###..f\nfbf..##.f\nfif###..f\nfbf#.##.f\nfif####.f\nfffffffff\n\n\n(Tricky)\n~fffffffffff\nfbfp.......f\nfif........f\nfbf...#....f\nfif...##...f\nfbf..#.#...f\nfif..#.###.f\nfbf.###.#..f\nfif...####.f\nffffffffffff\n\n\n~fffffffffff\nfbfp..##...f\nfif....##..f\nfbf...##...f\nfif...###..f\nfbf...#....f\nfif...###..f\nfbfggggg#ggf\nfif...####.f\nffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif...#......f\nfif...#......f\nfif...##.....f\nfbf....#.....f\nfif....##....f\nfbf.....#....f\nfif....###...f\nfbfggg#gg##ggf\nfif...####...f\nffffffffffffff\n\n\n\n\n~fffffffffff\nfifp...###.f\nfif...##.#.f\nfbf..#.###.f\nfif..###.#.f\nfbfggg####gf\nfif.....###f\nfbf...###..f\nfif...####.f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif.....#..f\nfif...###..f\nfif.....###f\nfbf....##..f\nfif...##...f\nfbf.#.##..#f\nfif.##.##.#f\nfbf#g#g#g##f\nfif########f\nfbf#......#f\nfif########f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif..#.....f\nfbf..##....f\nfif..###...f\nfbf..#.#...f\nfif..###...f\nfbfggg###ggf\nfif....#...f\nffffffffffff\n\n\n~fffffffffff\nfifp...##..f\nfif....###.f\nfif...##.#.f\nfif...#.#..f\nfbf...#.#..f\nfif...#.###f\nfbf..######f\nfifggg##gggf\nfbf....####f\nfif....#..#f\nfbf####.###f\nfif.#######f\nffffffffffff\n\n\n\n\n~ffffffffff\nfifp......f\nfif.......f\nfif.......f\nfif.......f\nfbf..###..f\nfif..#.#..f\nfbf.#.##..f\nfif.#####.f\nfbf...#...f\nfif.###...f\nfbfgg#g##gf\nfif..###..f\nfffffffffff\n\n\n\n~ffffffff\nfifp###.f\nfbf.#.##f\nfif.####f\nfbf.##..f\nfif..##.f\nfffffffff\n\n\n~fffffffffff\nfifp###....f\nfbf.#.##...f\nfbf.#.##...f\nfbf.#.##...f\nfifgggg##ggf\nffffffffffff\n\n\n~fffffffffff\nfifp...###.f\nfbf..#.#.#.f\nfbf..##.##.f\nfbf.#####..f\nfifgggg####f\nffffffffffff\n\n\n\n\n~fffffffffffff\nfifp...##.#..f\nfif....#.##..f\nfbf....#.##..f\nfif....#.##..f\nfbf....#.#.##f\nfif...######.f\nfbfggg#g##gggf\nfif..####....f\nfbf.....##...f\nfif...###....f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp....#....f\nfif.....#.#..f\nfif.....###..f\nfif...###.#..f\nfbfggg#g#####f\nfif....##.###f\nfbf...#.###..f\nfif...####...f\nfbf......##..f\nfif...#####..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp..#.#..f\nfbf...###..f\nfif....##..f\nfbfggg##gggf\nfif....#...f\nffffffffffff\n\n\n\n~fffffffffffff\nfifp...##....f\nfif.....#....f\nfif.....#....f\nfifggggg#ggggf\nfif#.####....f\nfif#.#..#....f\nfbf##.###....f\nfif.###.#####f\nfbf....#.#...f\nfif..######..f\nffffffffffffff\n\n\n~fffffffffff\nfifp...#.#.f\nfbf....###.f\nfif....##..f\nfbfggg#g###f\nfif...###..f\nffffffffffff\n\n\n~fffffffff\nfbfp##.#.f\nfif..#.#.f\nfbf..####f\nfif.###..f\nfbf...##.f\nfifggg#ggf\nffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif.......#..f\nfbf.......#..f\nfif.......#..f\nfbf....#####.f\nfif...####...f\nfbf.....#....f\nfifggggg##gggf\nffffffffffffff\n\n\n\n\n~fffffffffffff\nfifp.........f\nfif...#......f\nfbf..##......f\nfif...#.#....f\nfbf...###....f\nfif....#.....f\nfbf....##....f\nfif....####..f\nfbf.......##.f\nfifggg######gf\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif.#........f\nfbf.##.......f\nfif..#.......f\nfbf.###......f\nfif.#####....f\nfbf...#.##...f\nfif....#.##..f\nfbf....##.##.f\nfifggggg#####f\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp....#....f\nfif.....#....f\nfbf.....#....f\nfif.....##...f\nfbf...##.#...f\nfif....#.#...f\nfbf....#.###.f\nfifgggg#g#gggf\nfbf...##.##..f\nfif....#####.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp..#......f\nfif...#......f\nfbf..###..#..f\nfif....####..f\nfbf.....#....f\nfif.....###..f\nfbf.....#.#..f\nfifggggg##gggf\nfbf...###.#.#f\nfif....######f\nffffffffffffff\n\n\n~fffffffffffff\nfifp..#......f\nfif...##.....f\nfbf...#..#...f\nfif..###.#...f\nfbf....#.#...f\nfif..######..f\nfbf.....#....f\nfif.....###..f\nfbfggggg#ggggf\nfif...#####..f\nffffffffffffff\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf#.........f\nfif#.........f\nfbf##........f\nfif.######...f\nfbf..#.#.#...f\nfif..##.##...f\nfbf..##.#.#..f\nfif...######.f\nffffffffffffff\n\n\n(hard)\n~fffffffffffff\nfifp...##....f\nfif....#.....f\nfbf....#.....f\nfif....##....f\nfbf....##....f\nfif..##.##...f\nfbf...#.#....f\nfifggg#g##gggf\nfbf..###.##..f\nfif....####..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp..#.#..f\nfif...###..f\nfif...##...f\nfbfgggg##ggf\nfif....##..f\nfbf...##...f\nfif....##..f\nffffffffffff\n\n\n(trivial)\n~fffffffffff\nfifp.....#.f\nfif.....##.f\nfif.....#..f\nfbf...###..f\nfif.####...f\nfbfggg##gggf\nfif....##..f\nffffffffffff\n\n\n(too easy)\n~fffffffffff\nfifp.......f\nfif.....#..f\nfif.....#..f\nfif.....#..f\nfbf.....#..f\nfif.....#..f\nfbf...####.f\nfifggg##g##f\nfbf.##.#...f\nfif..###...f\nffffffffffff\n\n\n\n(nice shape)\n~fffffffffff\nfifp.......f\nfif........f\nfif...#....f\nfif...##...f\nfbf....##..f\nfif...#.#..f\nfbf..#####.f\nfifgggg##ggf\nfbf....##..f\nfif...###..f\nffffffffffff\n\n(nice?/meh)\n~fffffffffff\nfifp.......f\nfif...#....f\nfif...#....f\nfif...##...f\nfbf....##..f\nfif....##..f\nfbf.....#..f\nfifgggg##ggf\nfbf..#.###.f\nfif.#####..f\nffffffffffff\n\n\n\n~fffffffffffff\nfifp#..#.#...f\nfif.####.#...f\nfbf..#.####..f\nfbf..#.##....f\nfbf.###.###..f\nfbf...#.#....f\nfbf...#####..f\nfifgggg######f\nffffffffffffff\n\n\n~fffffffffffff\nfifp....##..#f\nfif....#.#..#f\nfbf...##.####f\nfbf....####.#f\nfbf..##.#..##f\nfbf..##.#####f\nfbf...#####..f\nfifggg#g#ggggf\nffffffffffffff\n\n\n\n~fffffffffffff\nfifp.......#.f\nfif.....##.#.f\nfbf.....#.##.f\nfbf....#####.f\nfbf#......#..f\nfbf##.#######f\nfbf.##...##.#f\nfif.######..#f\nffffffffffffff\n\n\n~fffffffffffff\nfifp...###...f\nfif.##.#.##..f\nfbf..#.#####.f\nfbf..#..#....f\nfbf.#####....f\nfbf..#..##...f\nfbf..###.####f\nfifggg####g##f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..........f\nfif......#...f\nfbf...####...f\nfif...#.#....f\nfbf...####...f\nfif....#.##.#f\nfbf....##.###f\nfif...######.f\nfbf..##...##.f\nfif..######..f\nffffffffffffff\n\n\n\n~fffffffffff\nfifp.##....f\nfif...##...f\nfbf....##..f\nfif...#.##.f\nfbf...####.f\nfif...#..#.f\nfbf..####..f\nfifgggg##ggf\nfbf....#.#.f\nfif....####f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif....##..f\nfbf..##.#..f\nfif...#.##.f\nfbf...####.f\nfif...#..#.f\nfbf...###.#f\nfif....####f\nfbfgggg#g#gf\nfif..###...f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif....#...f\nfbf....##..f\nfif..###...f\nfbf..#.#..#f\nfif..##...#f\nfbf.####.##f\nfif...#.###f\nfbfggg#g#ggf\nfif...###..f\nffffffffffff\n\n\n\n\n~fffffffffff\nfifp.......f\nfif....#...f\nfbf..###...f\nfif...#....f\nfbf##.##.#.f\nfif.##.####f\nfbf..##.##.f\nfif...###..f\nfbfggggg#ggf\nfif...###..f\nffffffffffff\n\n\n\n~fffffffffff\nfifp.......f\nfif..#.....f\nfbf..##.##.f\nfif...###..f\nfbf..#.####f\nfif.##.#...f\nfbf..####..f\nfif...#.#..f\nfbfggg####gf\nfif...##...f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp.#.....f\nfif..#.....f\nfbf..#.#...f\nfif..###...f\nfbf...#.##.f\nfif...####.f\nfbf...##.#.f\nfif....##..f\nfbf...#.###f\nfif...#####f\nffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif......#...f\nfbf......##..f\nfif.....#.#..f\nfbf.....#.#..f\nfif...######.f\nfbf.....##...f\nfif#....##...f\nfbf###.###...f\nfif..#.##....f\nfbfgg##g###ggf\nfif...##.##..f\nfbf....#.###.f\nfif....###.#.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfbf.....#....f\nfif....##....f\nfbf....##....f\nfif.....##...f\nfbf....#.##..f\nfif....####..f\nfbf....#..##.f\nfif....#####.f\nfbf...##...#.f\nfifggg#g#####f\nfbf..#.#...#.f\nfif.########.f\nffffffffffffff\n\n\n\n\n\n\n\n~fffffffffff\nfifp.......f\nfif...#....f\nfbf...#.#..f\nfif...###..f\nfbf....##..f\nfif..###...f\nfbfgggg##ggf\nfif...##...f\nffffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.....#.f\nfbf....###f\nfif..#.##.f\nfbf#####..f\nfif.###...f\nfbf...#...f\nfif.####..f\nfffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.......f\nfbf..#.#..f\nfif.##.#..f\nfbf..###..f\nfif#..####f\nfbf####...f\nfif.#.#...f\nfffffffffff\n\n\n~ffffffffff\nfbfp......f\nfif.......f\nfbf..#..#.f\nfif.#####.f\nfbf...#.#.f\nfif.####..f\nfbf.##.##.f\nfif...##..f\nfffffffffff\n\n\n~fffffffffff\nfifp..###..f\nfbf.#.#.#..f\nfbf.#.##...f\nfbf.##.##..f\nfbf..#####.f\nffffffffffff\n\n\n~fffffffffff\nfifp.#.#.#.f\nfbf..###.#.f\nfif...#####f\nfbf..#..##.f\nfif..####..f\nffffffffffff\n\n\n~fffffffffff\nfifp..###.#f\nfbf...#.#.#f\nfif....####f\nfbf...##.##f\nfif...####.f\nffffffffffff\n\n\n\n~fffffffffff\nfifp..###..f\nfbf.#.#.#..f\nfif.#..##..f\nfbf#####...f\nfif..#####.f\nffffffffffff\n\n\n\n\n(figure giving tribute - meh?)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif.....#.#..f\nfbf....####..f\nfif....#.#...f\nfbf....#.###.f\nfif.######...f\nfbf.....###..f\nfifgg####g#ggf\nffffffffffffff\n\n\n\n\n\n\n\n\n~fffffffffffff\nfbfp.#.......f\nfif..###.....f\nfbf..##......f\nfif...##.....f\nfbf..#.##....f\nfif.#####....f\nfbf...#.#..#.f\nfif....######f\nfbf.....#..#.f\nfifggggg##gggf\nffffffffffffff\n\n\n~fffffffffffffffffffffffffffffffffffffffffff\nfifp.####...##########.###################.f\nfbf....###.##....###.##.#.......####...#...f\nfbf...##.#.#######..###.#########..........f\nfbf......###.#..#...#.#####..#.............f\nfifggggggg##gggggggggg##gg#gg#gggggggggggggf\nffffffffffffffffffffffffffffffffffffffffffff\n\n\n(interesting!)\n~fffffffffff\nfbf####p###f\nfif#......#f\nfbf###....#f\nfif#.#...##f\nfbf#.##..##f\nfif###ggg##f\nfbf##..###.f\nfif.####.#.f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp#######f\nfif.#.###.#f\nfbf...#..##f\nfif######.#f\nfbf.###.###f\nfifggg###g#f\nfbf..###..#f\nfif..#.#...f\nffffffffffff\n\n\n\n~fffffffffff\nfbfp#######f\nfif.#.###.#f\nfbf...#..##f\nfif######.#f\nfbf.###.###f\nfifggg###g#f\nfbf..###..#f\nfif..#.#...f\nffffffffffff\n\n\n\n~fffffffffffff\nfif##p.......f\nfif##........f\nfif#.........f\nfif##........f\nfif##........f\nfif#.........f\nfbf###gggggggf\nfif#.##......f\nfbf##.##.....f\nfif.###..#...f\nfbf..##..#...f\nfif...######.f\nffffffffffffff\n\n\n~fffffffffffff\nfifp.......##f\nfif.........#f\nfif.......###f\nfif.......#.#f\nfif......##.#f\nfif......#.##f\nfbf.....#####f\nfifggg####g#gf\nfbf..##.##...f\nfif.....###..f\nfbf.....#....f\nfif.....#....f\nffffffffffffff\n\n\n~fffffffffffff\nfif###p......f\nfif#.#.......f\nfif#.#.......f\nfif#.#.......f\nfif####.....#f\nfifggg#gggg##f\nfif...##....#f\nfif....###..#f\nfbf.....#.###f\nfif.....###..f\nffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n(bad)\n~fffffffffffff\nfifp..#......f\nfif...#......f\nfbf..##......f\nfif..##......f\nfbf..#####...f\nfif...#..##..f\nfbf....######f\nfif.....#..#.f\nfbfggggg##g#gf\nfif....###...f\nffffffffffffff\n\n\n(trivial)\n~fffffffffff\nfifp.#.....f\nfif..##....f\nfbf..###...f\nfif..#.....f\nfbf..####..f\nfif....#...f\nfbfggg##gggf\nfif....#...f\nffffffffffff\n\n(pretty trivial)\n~fffffffffff\nfifp.....#.f\nfif......#.f\nfbf...#.##.f\nfif...#.#..f\nfbf...###..f\nfif...##...f\nfbf....#...f\nfifgggg#gggf\nffffffffffff\n\n\n\n\n(fiine / easy )\n~fffffffffff\nfbfp.......f\nfif......#.f\nfbf......#.f\nfif.....##.f\nfbf....###.f\nfif....#...f\nfbf..###...f\nfif...##...f\nfbf...#.##.f\nfif...###..f\nffffffffffff\n\n\n(meh)\n~fffffffffff\nfifp.......f\nfif........f\nfif........f\nfbf........f\nfif........f\nfbf......#.f\nfif......##f\nfbf.....###f\nfif...###.#f\nfbf.....#.#f\nfif..######f\nfbf...#.#.#f\nfif....###.f\nfbf...##.#.f\nfifgg######f\nffffffffffff\n\n\n\n\n(pretty easy)\n~fffffffffff\nfbfp.......f\nfif........f\nfbf.....##.f\nfif......##f\nfbf.....##.f\nfif....#.##f\nfbf....####f\nfif...###..f\nfbf....##..f\nfif...##...f\nffffffffffff\n\n\n\n\n(easy/arbirtaray/pretty)\n~fffffffffffff\nfif.....p....f\nfif..#.#.....f\nfif..###.....f\nfif...#..#.#.f\nfif...#..###.f\nfbf...#...#..f\nfifg###...#..f\nfbf.#.....#..f\nfif.#.....#..f\nffffffffffffff\n\n\n\n(too trivial)\n~fffffffffffffffffffffffffffffffff\nfifp.............................f\nfif......#.......................f\nfif.....##.......................f\nfif.....##.......................f\nfif...####.......................f\nfif....#.#.......................f\nfif.....###......................f\nfif......#.......................f\nfif......#...#...................f\nfif.....######...................f\nfifggggggg####gggggggggggggggggggf\nfif..........#...................f\nfif..........#...................f\nfif..........##..................f\nfif..........##..................f\nfif.........###..................f\nfbf...........##.................f\nfif...........##.................f\nfbf............###.#.............f\nfif............######............f\nffffffffffffffffffffffffffffffffff\n\n\n(meh)\n~fffffffffffffffffffffffffffffffff\nfifp.............................f\nfif..............................f\nfif.........#....................f\nfif.........#....................f\nfif........###...................f\nfif..........#...................f\nfif.......#####..................f\nfif......##..###.................f\nfif.....##....##.................f\nfif.....#.....#..................f\nfifgggggggggg###gggggggggggggggggf\nfif...........##.................f\nfif...........#.#................f\nfif...........###................f\nfif............###...............f\nfif.............###..............f\nfbf...............###............f\nfif...............#.##...........f\nfbf...............##.............f\nfif...............#..............f\nffffffffffffffffffffffffffffffffff\n\n\n\n\n\n(meh)\n~fffffffffffffffffffffffffffffffffffffffffff\nfifp.##################.###################f\nfbf...#.#.##.##.##.#..#.#.#.##.#.....#.#.##f\nfif...#.#....##...#########.....######.#.#.f\nfbfgggggggggggggg##g#g##gggggggggg#ggggggggf\nfif...............#....##........###.......f\nffffffffffffffffffffffffffffffffffffffffffff\n\n\n(meh)\n~fffffffffffff\nfifp.........f\nfbf..........f\nfif......#...f\nfbf......#...f\nfif.....##...f\nfbf.....#....f\nfif....##....f\nffffffffffffff\n\n\n\n\n\n(looks good, but too easy?)\n~fffffffffff\nfbf########f\nfif#p.##..#f\nfbf###..###f\nfif#...####f\nfbf#####..#f\nfif#ggg####f\nfbf######.#f\nfif...##...f\nffffffffffff\n\n(trivial)\n~ffffffff\nfifp..##f\nfbf.#..#f\nfif.####f\nfbf.###.f\nfif..#..f\nfffffffff\n\n(trivial)\n~ffffffff\nfif#p...f\nfbf##.#.f\nfif####.f\nfbf..##.f\nfif.##..f\nfffffffff\n\n\n(Trivial)\n~ffffffff\nfifp..#.f\nfbf.#.##f\nfif.####f\nfbf.##.#f\nfif..#..f\nfffffffff\n\n\n(zu einfach)\n~ffffffffff\nfif##p.#..f\nfbf###.#..f\nfif#.###..f\nfbf#.##...f\nfif####...f\nfbfggg###gf\nfif...##..f\nfffffffffff\n\n\n(zu einfach?)\n~ffffffffff\nfifp...###f\nfbf....#.#f\nfif....###f\nfbf....#.#f\nfifgggg###f\nfbf####.##f\nfif.#####.f\nfffffffffff\n\n\n\n(meh)\n~fffffffffff\nfifp....###f\nfif....####f\nfbf....#..#f\nfif.#..####f\nfbfg#gg#gg#f\nfif.#######f\nfbf.....###f\nfif....##..f\nffffffffffff\n\n\n\n(meh)\n~fffffffffffff\nfif#####p....f\nfif#.##......f\nfif#.##......f\nfif#.#.##...#f\nfif#g#g###g##f\nfif####..#.##f\nfif##.####.##f\nfif....##.#.#f\nfbf.....#####f\nfif.....##.##f\nffffffffffffff\n\n\n(meh)\n~fffffffffffff\nfif###p......f\nfif#.#.......f\nfif#.##......f\nfif#.#.#...#.f\nfif#g#g##gg##f\nfif#.#.######f\nfif####..#.##f\nfif.#.#####.#f\nfbf....#.#.##f\nfif.....#####f\nffffffffffffff\n\n\n(trivial)\n~fffffffffffffffffffffff\nfif#########p.#########f\nfif#......#...#.......#f\nfif########....########f\nfif#.....#....##.#....#f\nfif#######gggg##g######f\nfif#.....###.#.####...#f\nfif#############.......f\nfif.#####...#..........f\nfbf.........##.........f\nfif..........##........f\nffffffffffffffffffffffff\n\n(trivial)\n~fffffffffffffffffffffff\nfif#######p#....#######f\nfif#.#.#.#.##....#.#.##f\nfif###.#.###..#..#.#.##f\nfif..#.#.#...###.######f\nfif########gg#g#g#gggg#f\nfif.##...##############f\nfif..#####..#...#.#.#..f\nfif..........####.#.#..f\nfbf..........##........f\nfif.........###........f\nffffffffffffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n(THE REST)\n\n(hard, couldn't solve myself)\n~fffffffffffffff\nfifp.........##f\nfif.........##.f\nfif.........###f\nfif........#..#f\nfbf........#.##f\nfif........#.#.f\nfbf.......#####f\nfif........#.##f\nfbf........#..#f\nfifggggggg##gggf\nfbf......##....f\nfif.....##.....f\nffffffffffffffff\n\n\n\n\n(solved first go, ok? ohne persönlichkeit) \n~fffffffffffff\nfbfp.......##f\nfif........#.f\nfbf........#.f\nfif.......##.f\nfbf......##..f\nfif.......#..f\nfbf......####f\nfif......##.#f\nfbf....###...f\nfif.....#....f\nffffffffffffff\n\n(too routine)\n~fffffffffffff\nfbfp.........f\nfif...#......f\nfbf...#......f\nfif..##......f\nfbf...##.....f\nfif.##.#.....f\nfbf..###.....f\nfif..#.##....f\nfbf....##....f\nfif.....##...f\nffffffffffffff\n\n(scheiße)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif..#.......f\nfbf..##......f\nfif...#......f\nfbf...##.....f\nfif....#.....f\nfbf....##....f\nfif.....#....f\nffffffffffffff\n\n\n(zu einfach/procedural?)\n~ffffffffffffff\nfifp..........f\nfif........#..f\nfif........#..f\nfbf.......###.f\nfif.......#.#.f\nfbf.......#...f\nfif.....###...f\nfbf......#....f\nfif......#....f\nfbf....###....f\nfif..####.....f\nfffffffffffffff\n\n\n\n\n\n(zu einfach)\n~fffffffffffff\nfbfp........#f\nfif.........#f\nfbf........##f\nfif.......###f\nfbf.......#..f\nfif.....###..f\nfbf.....#.#..f\nfif....###...f\nfbf....##....f\nfif.....#....f\nffffffffffffff\n\n(kein level)\n~fffffffffffff\nfif...p......f\nfif..........f\nfif..........f\nfif..#.......f\nfif..#.#####.f\nfif..#.....#.f\nfbf..#####.#.f\nfbf..#.....#.f\nfbf........#.f\nfbfgg.g#####gf\nfifgg.g#gggggf\nffffffffffffff\n\n(zu einfach)\n~ffffffffffffff\nfif...........f\nfif...........f\nfif...........f\nfif...p..#....f\nfif.#....#....f\nfif.#....#....f\nfif.#...##....f\nfif.#....##...f\nfbf.##....#...f\nfbfg.#..#.#...f\nfif..#..#.#...f\nfif..#..#.#...f\nfffffffffffffff\n\n\n\n\n\n(zu einfach?)\n~ffffffffff\nfif.......f\nfbf.#.#.#.f\nfif.#.#.#.f\nfbf.#####.f\nfif..#p#..f\nfbf.g###.gf\nfif.g.#g.gf\nfffffffffff\n\n(no level)\n~fffffffff\nfif...p..f\nfbf.g#.#.f\nfif.g###.f\nfbf....#.f\nfif...##.f\nfbfg..#..f\nfif...#..f\nffffffffff\n\n\n(no level)\nffffffff\nf......f\nf....#.f\nfg...#.f\nf..P.#.f\nf..#.#.f\nf..#.#.f\nf.##.#.f\nffffffff\n\n\n(zu einfach)\n~ffffffffff\nfifp....#.f\nfbf....###f\nfif.....##f\nfbf...###.f\nfif...##..f\nfbf...#...f\nfifg####ggf\nfffffffffff\n\n(kein Level)\n~fffffffffffff\nfif...p......f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbf..........f\nfbfg.........f\nfif..........f\nffffffffffffff\n\n\n\n(kein Level)\n~fffffffffffff\nfif#..p.#.#..f\nfbf########..f\nfbf#......#.#f\nfbf#.#####..#f\nfbf#.....#..#f\nfbf#..##.#..#f\nfbf#...#.#..#f\nfbf#####.####f\nfbf...#...#..f\nfbfg..#####..f\nfif....#.....f\nffffffffffffff\n\n\n\n\n\n(kein Level)\n~fffffffffffff\nfif...p......f\nfbf######....f\nfbf#....#....f\nfbf##........f\nfbf.#..###...f\nfbf.##.#.#...f\nfbf..#.#.#...f\nfbf..#.###...f\nfbf.##..#....f\nfbfg#...#....f\nfif.#...#....f\nffffffffffffff\n\n\n\n\n(kein Level)\n~fffffffffffff\nfif..........f\nfif.###......f\nfif.#.#...###f\nfif.###...#.#f\nfif.#...###..f\nfifg#.###....f\nfif.###.#....f\nfif.#..###...f\nfbf..p.#.#...f\nfbf...###....f\nfif...#.#....f\nffffffffffffff\n\n\n\n(zu einfach)\n~ffffffff\nfif##p..f\nfbf.####f\nfbf###.#f\nfbf...##f\nfif..##.f\nfffffffff\n\n(kein level)\n~fffffffffffff\nfbfp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..........f\nfif.....#....f\nfbf.....#....f\nfif....###...f\nfbf......#...f\nfif....###...f\nffffffffffffff\n\n(meh)\n~ffffffff\nfif##p..f\nfbf#....f\nfbf####.f\nfbf.##..f\nfif..#..f\nfffffffff\n\n(hmmm dunno -vllt zu einfach?)\n\n~fffffffffff\nfif#####p..f\nfbf##.####.f\nfbf##..##..f\nfbf.#..##..f\nfifggggg##gf\nffffffffffff\n\n(dunno?)\n~ffffffffffffffffff\nfifp............#.f\nfif............##.f\nfif.............##f\nfif..............#f\nfif..............#f\nfif............###f\nfif.........####.#f\nfbf...........##.#f\nfif..........##..#f\nfbf..........##...f\nfif.........###...f\nfbf........###....f\nfifgggggggg##gggggf\nfbf......###......f\nfif....#####......f\nfffffffffffffffffff\n\n(zu einfach)\n~ffffffff\nfif#p...f\nfbf#..#.f\nfbf####.f\nfbf..##.f\nfif..#..f\nfffffffff\n\n(boring!)\n~ffffffff\nfifp#.#.f\nfbf.###.f\nfif..##.f\nfbfg##ggf\nfif..#..f\nfffffffff\n\n(trivial)\n~fffffffffff\nfifp.....#.f\nfif......#.f\nfif......#.f\nfif.....##.f\nfbf.....#..f\nfif.....#..f\nfbfgggg##ggf\nfif....#...f\nffffffffffff\n\n(trivial)\n~fffffffffffff\nfifp.........f\nfif..........f\nfif..........f\nfif.......#..f\nfbf.......#..f\nfif......##..f\nfbf......##..f\nfif......#...f\nfbf.....##...f\nfifggggg#ggggf\nffffffffffffff\n\n\n(meh)\n~fffffffffff\nfifp.......f\nfif.#......f\nfbf.##.....f\nfif..#.....f\nfbf..##....f\nfif...#....f\nfbf...##...f\nfif....#...f\nffffffffffff\n\n\n(nicht interessant)\n~fffffffffffff\nfbfp.........f\nfif..........f\nfbf##........f\nfif#.........f\nfbf##........f\nfif#.........f\nfbf####......f\nfif.#.#......f\nfbf.###......f\nfif..###.#...f\nffffffffffffff\n\n(meh)\n~fffffffffffff\nfif#p........f\nfif##........f\nfif#.........f\nfif##........f\nfbf###.......f\nfif#.........f\nfbf##ggggggggf\nfif.##.......f\nfbf..#..#....f\nfif..#.###...f\nffffffffffffff\n\n\n\n\n\n\n\n\n(meh)\n~fffffffffffffffffffffffffffffffff\nfifp..............####...........f\nfbf..............#.#.#...........f\nfbf..............###.............f\nfbf.............###..#...........f\nfifggggggggggggggg#####ggggggggggf\nffffffffffffffffffffffffffffffffff\n\n\n\n(huh not so bad? but hard for some maybe? wait maybe i just solved by chance....)\n~fffffffffffff\nfifp......###f\nfif.#.#...#.#f\nfbf.#.##...##f\nfbf.####...##f\nfbf##..###.##f\nfbf######.#.#f\nfbf.....#####f\nfbf...###.##.f\nfbf...#.#....f\nfif....##....f\nffffffffffffff\n\n\n\nmessage level 5 of 10 : Gallows\n(hard - actually ok? medium difficulty?)\n~ffffffffffff\nfif.........f\nfifp.#......f\nfif..#......f\nfif..###....f\nfif..#......f\nfbf.####....f\nfif...###...f\nfbf...#.#...f\nfif.....#...f\nfbfggggg##ggf\nfif......##.f\nfffffffffffff\n\n\n\n\nmessage level 2 of 10 : ANTENNA 1\n(ok anfangerlevel?)\n~fffffffff\nfbfp#..#.f\nfif##..#.f\nfbf.#.##.f\nfif####.#f\nfbf#..###f\nfifggg#ggf\nffffffffff\n\n\n\nmessage level 3 of 10 : UFO\n(ok! / easy / Space invaders)\n~fffffffffffff\nfifp.........f\nfif..........f\nfbf..........f\nfif..........f\nfbf..#..#....f\nfif########..f\nfbf#.###..#..f\nfif.....####.f\nfbf..###.##..f\nfif....###...f\nffffffffffffff\n\n\n\n\n(\n(ok anfangerlevel)\n~fffffffff\nfbfp#..##f\nfif.##.##f\nfbf..###.f\nfif...###f\nfbf####..f\nfifggg#ggf\nffffffffff\n)\n\n\n\n\n(\n\n~fffffffffffff\nfifp.......#.f\nfif........##f\nfif........##f\nfif.........#f\nfbf.........#f\nfif.......###f\nfbf.......##.f\nfifggggggg##gf\nfbf.......#..f\nfif...#####..f\nffffffffffffff\n)\n\n\n(ok simple? NAH TOO SIMPLE)\n~ffffffffffffffffffffffffffff\nfifp........................f\nfif###......................f\nfif#.#......................f\nfif###......................f\nfif##.......................f\nfif##.......................f\nfif##.......................f\nfif#........................f\nfif##.......................f\nfif##.......................f\nfif##.......................f\nfif##..#.#..................f\nfif##.####..................f\nfif#####.#..................f\nfifgg#g#g#ggggggggggggggggggf\nfif..#.###..................f\nfif......##.................f\nfif......##.................f\nfif......#.#................f\nfif......####...............f\nfif.......#.#...............f\nfbf.......#.#...............f\nfif.....######..............f\nfbf.....#..#####.##.........f\nfif.........#.####..........f\nfffffffffffffffffffffffffffff\n\n\n\n\n(alien slug attack!)\nmessage level 6 of 10 : Alien Slug Attack\n~fffffffffffffffff\nfifp...####......f\nfbf....#####.....f\nfbf...##..##.....f\nfbf....#..##.....f\nfifgggggggg####ggf\nffffffffffffffffff\n\n\n\n\n\n(decent - middle-hard? -- too mich like final level? (difficulty/appearance-wise?)\n~fffffffffffffff\nfif#p..........f\nfif#...........f\nfif##..........f\nfif#...........f\nfbf###.........f\nfif#.#.........f\nfbf.##.#.......f\nfif..###.......f\nfbf...###......f\nfif....#...#...f\nfbfgggg######ggf\nfif......##....f\nffffffffffffffff\n)\n\n\n\n(fun to find the right points? MEH)\n~ffffffffffffffffffff\nfifp................f\nfif.................f\nfif...............##f\nfif................#f\nfif...............##f\nfif...............##f\nfif.............####f\nfif................#f\nfif..............###f\nfif...............##f\nfif................#f\nfif.........#.#...##f\nfif.........#.####.#f\nfif........####.####f\nfif............##...f\nfifgggggggg#######ggf\nfif........#..#.....f\nfif........######...f\nfif.........##......f\nfbf........##.......f\nfif.....####........f\nfbf......#..........f\nfif......#..........f\nfbf....###..........f\nfif.#######.........f\nfffffffffffffffffffff\n\n\n\n\n\n(wie ein gebäude aus - ziemlich einfach)\n~fffffffffffff\nfifp........#f\nfif........##f\nfif........##f\nfif........##f\nfbf.........#f\nfif.........#f\nfbfgggggggg##f\nfif......###.f\nfbf.......##.f\nfif....####..f\nffffffffffffff\n\n\n\n\n\n\n(nice/ok!)\n~ffffffffff\nfifp.....#f\nfbf.....##f\nfif....###f\nfbf....#.#f\nfif....###f\nfbfggg###gf\nfif..##...f\nfffffffffff\n\n\nmessage level 4 of 10 : Duck Tree\n(ducktree!)\n~fffffffffff\nfifp.##..##f\nfif.###.###f\nfbf...##.#.f\nfif..###.#.f\nfbf....####f\nfifgggg##ggf\nfbf....#...f\nfif....#...f\nffffffffffff\n\n\n\n)\n",[2,2,2,2,2,4,2,2,4,2,2,2,2,0,4,2,2,4,4,0,"restart",2,2,2,2,2,2,2,2,2,2,2,2,4,0,4,0,0,0,0,0,0,0,0,0,4],"background exploding fenster tl:0,background fenster fenster_right:1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,background fenster:2,background fenster fenster_down:3,background inventar:4,4,4,4,4,4,4,4,4,background bang_schatten inventar:5,\n4,5,4,5,4,background fenster fenster_up:6,2,background fenster fenster_left fenster_right:7,7,7,7,7,7,7,\n7,7,7,7,7,7,7,7,2,3,background:8,8,background htarget:9,background bond_d wall:10,\nbackground bond_d bond_u landbackground wall:11,11,11,11,11,11,11,background bond_u landbackground wall:12,background landbackground wall:13,background bond_r landbackground wall:14,background landbackground:15,6,3,8,\n8,9,8,15,15,15,15,15,15,15,15,15,background bond_d bond_l landbackground wall:16,background bond_r bond_u landbackground wall:17,\n6,3,8,8,9,8,background bond_d landbackground wall:18,background bond_d bond_r bond_u landbackground wall:19,19,11,11,19,11,19,\n12,13,background bond_l bond_r landbackground wall:20,6,3,8,8,9,8,15,background bond_d bond_l bond_r landbackground wall:21,background bond_l bond_u landbackground wall:22,15,15,\nbackground bond_l landbackground wall:23,15,23,15,15,20,6,3,8,8,9,8,18,background bond_l bond_r bond_u landbackground wall:24,\n15,15,15,15,15,15,14,background bond_d bond_r landbackground wall:25,24,6,3,8,8,background htarget player_h:26,\n8,15,23,15,15,15,15,15,15,20,21,24,6,3,\n8,8,9,8,15,15,15,15,15,15,15,15,23,21,\n24,6,3,8,8,9,8,15,15,15,15,15,15,15,\n15,15,16,22,6,3,8,8,9,8,15,15,15,15,\n15,15,15,15,15,15,13,6,3,8,8,9,8,15,\n15,15,15,15,15,15,15,15,15,15,6,2,background fenster fenster_left:27,27,\n27,27,27,27,27,27,27,27,27,27,27,27,27,2,\n",26,"1627892636599.9646"] ], [ - "BIAXIAL INVASION OF SATURN", - ["title BIAXIAL INVASION OF SATURN\nauthor increpare\nhomepage www.increpare.com\n\nnorepeat_action\n\nrun_rules_on_level_start\n\ncolor_palette 4\n\nbackground_color #540056\ntext_color #228f0a\n\n(uses https://github.com/increpare/Zersto-rungto generate levels)\n========\nOBJECTS\n========\n\nbackground\n#7a2f5d\n\nlandbackground\n#0b5359\n\n\nwall \n#3f2e3f #505352 lightgray\n00000\n01110\n01110\n01110\n00000\n\nplayer_h\npink\n.....\n..0..\n.000.\n..0..\n.....\n\n\nplayer_v\npink\n.....\n..0..\n.000.\n..0..\n.....\n\n\nfenster\n#540056\n\n\nfenster_up\n#4a083f lightblue\n00000\n.....\n.....\n.....\n.....\n\nfenster_down\ndarkblue #760070\n.....\n.....\n.....\n.....\n11111\n\nfenster_left\n#4a083f #760070\n1....\n1....\n1....\n1....\n1....\n\nfenster_right\n#4a083f\n....0\n....0\n....0\n....0\n....0\n\nhtarget\nlightgreen\n.....\n.....\n00000\n.....\n.....\n\n\nvtarget\nlightgreen\n..0..\n..0..\n..0..\n..0..\n..0..\n\ninventar\ndarkblue\n\nbang\n #289d69 #267400\n...0.\n..00.\n.010.\n.00..\n.0...\n\nbang_schatten\n#211121\n...0.\n..00.\n.0.0.\n.00..\n.0...\n\nbond_u\ndarkblue #505352 lightgray\n.111.\n.....\n.....\n.....\n.....\n\n\n\nbond_d\ndarkblue #505352 lightgray\n.....\n.....\n.....\n.....\n.111.\n\n\n\nbond_l\ndarkblue #505352 lightgray\n.....\n1....\n1....\n1....\n.....\n\n\n\nbond_r\ndarkblue #505352 lightgray\n.....\n....1\n....1\n....1\n.....\n\n\n\n\ntl\ntransparent\n\nexploding\ntransparent\n\nexplosion\n#267400 #228f0a\n.1.1.\n10.01\n..0..\n10.01\n.1.1.\n\nnofall\n#267400\n.0...\n.....\n.....\n.....\n.....\n\nfall\nlightblue\n.0...\n.....\n.....\n.....\n.....\n\n\nc1 1 \n#7a2f5d\n\nc2 2\n#0b5359\n\nc3 3\n#000000\n\nc4 4\n#000000 #ffffff\n00000\n01000\n00000\n00000\n00000\n\n=======\nLEGEND\n=======\n\nplayer = player_h or player_v\ntarget = htarget or vtarget\n\n. = Background\n# = wall\nP = Player_h\nf = fenster\n\ng = landbackground\n\nobstacle = wall\n~ = tl and fenster\ni = inventar\nb = bang and inventar\nbond = bond_u or bond_d or bond_l or bond_r\n\nfallblocker = wall or fenster\n\n=======\nSOUNDS\n=======\n\nsfx0 55915302 (bang)\nsfx1 90167907 (other agains)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nlandbackground, inventar\nwall\nbond_u\nbond_d\nbond_l\nbond_r\nexplosion\ntarget\nPlayer, fenster, bang,bang_schatten\nfenster_up\nfenster_down\nfenster_left\nfenster_right\ntl\nexploding\nnofall\nfall\nc1, c2, c3, c4\n\n======\nRULES\n======\n\n\nup [fenster | no fenster ]-> [ fenster fenster_up | ]\ndown [fenster | no fenster ]-> [ fenster fenster_down | ]\nleft [fenster | no fenster ]-> [ fenster fenster_left | ]\nright [fenster | no fenster ]-> [ fenster fenster_right | ]\n\n[ tl no exploding ] [bond]->[ tl ] [ ]\ndown [ tl no exploding ] [wall | wall]->[tl][ wall bond_d | wall bond_u ]\nright [ tl no exploding ] [wall | wall]->[tl][ wall bond_r | wall bond_l ]\n\n[tl]->[tl exploding]\n\ndown [ wall no bond_d | fallblocker ] -> [ wall nofall | fallblocker ]\n(floodfill)\nup [nofall bond_u | ] -> [ nofall bond_u | nofall ]\n+ down [nofall bond_d | ] -> [ nofall bond_d | nofall ]\n+ left [nofall bond_l | ] -> [ nofall bond_l | nofall ]\n+ right [nofall bond_r | ] -> [ nofall bond_r | nofall ]\n\n\ndown [ wall no nofall | no fallblocker ] -> [ wall fall | ]\n\nup [fall bond_u | ] -> [ fall bond_u | fall ]\n+ down [fall bond_d | ] -> [ fall bond_d | fall ]\n+ left [fall bond_l | ] -> [ fall bond_l | fall ]\n+ right [fall bond_r | ] -> [ fall bond_r | fall ]\n\n[fall wall]->[down wall] sfx1 again\n\n[fall]->[]\n[nofall]->[]\n\n[up wall bond ] -> [ up wall up bond ]\n+ [down wall bond ] -> [ down wall down bond ]\n+ [left wall bond ] -> [ left wall left bond ]\n+ [right wall bond ] -> [ right wall right bond ]\n\n[target]->[]\n\n\n\n[up player_h ] -> [ up player_v ]\n[down player_h ] -> [ down player_v ]\n[left player_v ] -> [ left player_h ]\n[right player_v ] -> [ right player_h ]\n\n\nright left down [ landbackground | no landbackground no fenster ] -> [ landbackground | landbackground no fenster ]\n\n\n[player_h ] -> [ player_h htarget ]\n[player_v ] -> [ player_v vtarget ]\n\nhorizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nvertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\nup [ bond_u | explosion ] -> [ | explosion ]\ndown [ bond_d | explosion ] -> [ | explosion ]\nleft [ bond_l | explosion ] -> [ | explosion ]\nright [ bond_r | explosion ] -> [ | explosion ]\n\n[explosion wall ] -> [ no bond ] sfx1 again\n\n[explosion ] -> [ ] again\n\n[action player ] [bang] -> [ player ] [ action bang_schatten ]\n\n[action bang_schatten ] [ target ]-> [ action bang_schatten ] [ explosion ] sfx0 again\n\n\nlate [target]->[]\n\nlate [player_h ] -> [ player_h htarget ]\nlate [player_v ] -> [ player_v vtarget ]\n\nlate horizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nlate vertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll wall on landbackground \n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 12\n\nmessage We have to damage the structures enough that they fall back into the toxic blue atmosphere.\n\nmessage We only have two attacks to do it in.\n\n\n(OK)\n~ffffffff\nfifp..#.f\nfbf.#.##f\nfif.###.f\nfbf#g###f\nfif###.#f\nfffffffff\n\n\nmessage Level 2 von 12\n\n\n(OK)\n~fffffffff\nfif##p.##f\nfif##...#f\nfbf.#..##f\nfifg##gg#f\nfbf..####f\nfif...###f\nffffffffff\n\n\nmessage Level 3 von 12\n\n\n(okish)\n~ffffffffff\nfif###p..#f\nfif#.#...#f\nfif#.#...#f\nfbf#..#.##f\nfif#gg###gf\nfbf##.##..f\nfif.###...f\nfffffffffff\n\n\nmessage Level 4 von 12\n\n\n\n(ok--? easyish?)\n~ffffffffff\nfif#p#..##f\nfif#.##.##f\nfif#.#.#.#f\nfbf#####g#f\nfif.#..###f\nfbf#####.#f\nfif...##..f\nfffffffffff\n\n\nmessage Level 5 von 12\n\n\n\n(ok! P EASY)\n~ffffffffff\nfifp######f\nfif##.##.#f\nfif....#.#f\nfbfgg#g###f\nfif###.##.f\nfbf#.#.##.f\nfif######.f\nfffffffffff\n\n\nmessage Level 6 von 12\n\n\n\n(ok also! p easy?)\n~ffffffffff\nfif#p#...#f\nfif#.##..#f\nfif####..#f\nfbf..#..##f\nfifg##g##gf\nfbf.####..f\nfif.#.#...f\nfffffffffff\n\n\nmessage Level 7 von 12\n\n\n\n(ok, pretty easy but not 100% easy)\n~fffffffffff\nfif#p......f\nfif##......f\nfif#.......f\nfif###.....f\nfbf.##...#.f\nfifg##gg###f\nfbf..####..f\nfif....#...f\nffffffffffff\n\n\nmessage Level 8 von 12\n\n\n(tricky?)\n~fffffffffffff\nfif#####p#...f\nfif##.#.##...f\nfif#..###....f\nfif....###.#.f\nfif.....#.###f\nfif.....###..f\nfbfgggg##ggggf\nfif.....#....f\nfbf.....#....f\nfif....###...f\nffffffffffffff\n\n\nmessage Level 9 von 12\n\n\n\n(medium OK)\n~fffffffffffff\nfif##########f\nfif#p#.#..#.#f\nfif#.##......f\nfif#g##ggggggf\nfif#.###.....f\nfif#.#....#..f\nfbf#.###..###f\nfif#.#.####.#f\nfbf##.##...##f\nfif.###.####.f\nffffffffffffff\n\n\nmessage Level 10 von 12\n\n\n\n(not too hard?)\n~fffffffffffffff\nfif###p.....###f\nfif##......##.#f\nfif##.......#.#f\nfif#gggggggg#g#f\nfif##......####f\nfif.##........#f\nfif##.#....####f\nfif.####......#f\nfbf..#.#.#.####f\nfif....#####..#f\nfbf......#..###f\nfif....######.#f\nffffffffffffffff\n\n\nmessage Level 11 von 12\n\n(ok? HARD NICE)\n~fffffffffffff\nfif####p...##f\nfif#.##...###f\nfif#.####...#f\nfif###g##g#g#f\nfif.##..#.#.#f\nfif..#.##.#.#f\nfbf...#.#.#.#f\nfif...#.#####f\nfbf..#####..#f\nfif.....#...#f\nffffffffffffff\n\n\nmessage Level 12 von 12\n\n(middle-hard, and nice!)\n~fffffffffffffffffffffff\nfif############p##.#...f\nfif#.#.#.#.#..#.#####..f\nfif#.#.#.#.#######.#...f\nfif#g#g#g###gg#gg##gg#gf\nfif#.#.#.#........#####f\nfif#.#.#####.......#.##f\nfif#.#.##..##........##f\nfif#.#.##..............f\nfif#.#.##..............f\nfif#.#.##..............f\nfif#.#.###.............f\nfif#.#.#.###...........f\nfif#.#.#.#.##..........f\nfif#.#.####............f\nfif####...#....#..#....f\nfif##.#####...#####....f\nfbf##.#..##.###.#......f\nfif.#....####.##.......f\nfbf##.......##.##......f\nfif.#.......#####......f\nffffffffffffffffffffffff\n\n\n\nmessage The people of Saturn are finally free! \n\nmessage Long live Saturn!\n\n3333333333333333\n3333331111333333\n3333311111133333\n3332211111122333\n3223311111133223\n3332222222222333\n3333311111133333\n3333331111333333\n3333333333333333\n\n\n3333333333333333333333\n3333333333333333333333\n3333333333333333333333\n3333333333333333333333\n3333333331111333333333\n3333333311111133333333\n3333332211111122333333\n3333223311111133223333\n3333332222222222333333\n3333333311111133333333\n3333333331111333333333\n3333333333333333333333\n3333333333333333333333\n3333333333333333333333\n3333333333333333333333\n\n\n\n\n\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333334333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333311113333333333333333333333333\n333333333333333333333333111111333333333333333333333333\n333333333333333333333322111111223333333333333333333333\n333333333333333333332233111111332233333333333333333333\n333333333333333333333322222222223333333333333333333333\n333333333333333333333333111111333333333333333333333333\n333333333333333333333333311113333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333343333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n\n\n\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333334333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333343333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333343333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333334333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333331111333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333311111133333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333332211111122333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333223311111133223333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333332222222222333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333311111133333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333331111333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333334333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333334333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333334333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333433333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n\n\nmessage THE END\n\n(\n(======\n\nHARD UNSOLVED\n)\n\n\n\n\n(hard! NOT YET SOLVED)\n~fffffffffffff\nfif#####p####f\nfif#.#.#.#..#f\nfif#.########f\nfif###g##ggg#f\nfif#.#.##.###f\nfif#.#.#....#f\nfbf######.###f\nfif.#..#.###.f\nfbf....###...f\nfif....##....f\nffffffffffffff\n\n(nah HARD NOT YET SOLVED)\n~fffffffffffff\nfif###p.#####f\nfif#.#..#.#.#f\nfif#.##.##.##f\nfif###ggggg##f\nfif#.##...#.#f\nfif###.#..#.#f\nfbf..###..###f\nfif###..#...#f\nfbf##########f\nfif#....###..f\nffffffffffffff\n\n\n(hard, not solved)\n~fffffffffffffffffffffff\nfif#######p..........##f\nfif#.#.#.##...........#f\nfif#.#.#.###..........#f\nfif#.#.#.#.##.........#f\nfif#g#g#g####ggggggggg#f\nfif#.#.#.#...........##f\nfif#.#.###............#f\nfif#.#.#..............#f\nfif#.#.###.........#..#f\nfif#.#.#.##.......##.##f\nfif#.#.##........#.####f\nfif#.###.........####..f\nfif####.##......#...###f\nfif...#####.....#######f\nfif###..#.#..........#.f\nfif########....#######.f\nfbf.#..#..###..#..#....f\nfif.....##.#....###....f\nfbf......###..#####....f\nfif.......#####........f\nffffffffffffffffffffffff\n\n\n\n~fffffffffffffffffffffffffffffffff\nfif.............................#f\nfif.............................#f\nfif............................##f\nfif.............................#f\nfif............................##f\nfif..........................#.##f\nfif..........................####f\nfif........................###.##f\nfif........................#.#.##f\nfif........................#.#.##f\nfif.................p......#.#.##f\nfif.....................#..#.##.#f\nfif....................###.##.#.#f\nfifggggggggggggggggg#######g#g#g#f\nfif..................#.#..#.#.###f\nfif...................###.#.#.#.#f\nfif..................##.#.#######f\nfif.................#.#.#.#..#.##f\nfif................##.#.######.#.f\nfif...............#.#.#.##..##...f\nfif..............####.###........f\nfif.......##.#....#.#.#..........f\nfif......#.#.##...#.####.........f\nfif..########.###.####...........f\nfif.......#.#.#.###..............f\nfif.........#####.###............f\nfbf............##..#.............f\nfif...............##.............f\nfbf.............##.###...........f\nfif.............#####............f\nffffffffffffffffffffffffffffffffff\n\n\n\n\n(=========\n\n\tUNACCOUNTED FOR\n \n)\n\n\n\n((too?) EASY)\n~fffffffffffff\nfif#p.#######f\nfif###..####.f\nfif.#####....f\nfif.....##...f\nfif.....#....f\nfif.....#....f\nfbf..#..#....f\nfifgg####ggggf\nfbf.....##...f\nfif.....#....f\nffffffffffffff\n\n(too easy)\n~fffffff\nfbfp###f\nfif..#.f\nfbf###.f\nfif#g##f\nffffffff\n\n\n\n\n\n\n\n\n\n(ok but h-only solution)\n~fffffffffff\nfif#p......f\nfif###.....f\nfbf..##....f\nfif...#..#.f\nfbf...####.f\nfif......##f\nfbf....####f\nfifggg##gggf\nffffffffffff\n\n(ok easy)\n~ffffffff\nfifp...#f\nfbf....#f\nfbf#.###f\nfbf##..#f\nfif.####f\nfffffffff\n\n(good tricky!)\n~ffffffff\nfifp#.##f\nfbf.##.#f\nfbf.#.##f\nfbf.###.f\nfif###ggf\nfffffffff\n\n(h only solution :[ )\n~ffffffffff\nfif#p....#f\nfif#....##f\nfif#.....#f\nfbf#g#gg##f\nfif######.f\nfbf#.#####f\nfif...#..#f\nfffffffffff\n\n(h-only solution)\n~ffffffffff\nfif#p...##f\nfif#...#.#f\nfif#..####f\nfbf###..#.f\nfifg#####gf\nfbf..##...f\nfif..##...f\nfffffffffff\n\n\n\n\n\n\n\n\n\n\n\n(too hard?)\n~fffffffffffff\nfif####p#.###f\nfif#.#.###..#f\nfif#.####.###f\nfif#.#...#..#f\nfbf#g#ggg####f\nfif#.#...#...f\nfbf#.#...#...f\nfif#####.####f\nfbf.####.#...f\nfif##..#####.f\nffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n(solvable only with bla)\n~fffffffffffffffffffffff\nfifp...................f\nfif....................f\nfif.#..................f\nfif.##.................f\nfif###.................f\nfif##..................f\nfif##..................f\nfif####................f\nfif.####...............f\nfif....#...............f\nfif....##..............f\nfif.....#..............f\nfif.....##.............f\nfif......##............f\nfifggggg#g#ggggggggggggf\nfif.....#.#............f\nfbf.....#######........f\nfif......#.#.####......f\nfbf........#.#.........f\nfif.........##.........f\nffffffffffffffffffffffff\n\n\n\n\n\n\n\n\n\n(h-only solution but ok?)\n~fffffffffffffff\nfif#####p......f\nfif#.#.#####...f\nfif#.#.#.#.....f\nfif#g#g#gggggggf\nfif#.#.##......f\nfif#.#.#.......f\nfif#.#.##......f\nfif#.#.#.......f\nfbf#.#.##......f\nfif####.#......f\nfbf##.#####.###f\nfif...#..######f\nffffffffffffffff\n\n\n(easy)\n~fffffffffffffff\nfif##p......#.#f\nfif#.......####f\nfif#.......#.##f\nfif#.#.....##.#f\nfif#g###ggg####f\nfif#.##......##f\nfif#.##...####.f\nfif####......#.f\nfbf##.#.#######f\nfif...##.#..##.f\nfbf..######....f\nfif.....####...f\nffffffffffffffff\n\n\n(Easy)\n~fffffffffffffff\nfif#p........##f\nfif#.........##f\nfif#........###f\nfif#.........##f\nfif###ggggggg##f\nfif.#........##f\nfif####....##.#f\nfif..#.#....###f\nfbf..#####..##.f\nfif.....##.#.##f\nfbf......#####.f\nfif......#...#.f\nffffffffffffffff\n\n\n(ok, though has h-only solution)\n~fffffffffffffffffffffff\nfif####################f\nfif#p#.#.#.#.#.#..#.#.#f\nfif#.#.#.#.###.#..#.#.#f\nfif#g#g#g###g#gggg#g#ggf\nfif#.#.#.##.........#..f\nfif#.#.#.##............f\nfif#.#.#.#.##..........f\nfif#.#.#.###...........f\nfif#.#.#.#.............f\nfif#.#.#.#.............f\nfif#.#.#.###...........f\nfif#.#.#.#.##..........f\nfif#.#.#.#.#...........f\nfif#.#.#.#.............f\nfif#.#.#.##............f\nfif#.######............f\nfbf#.#....##...........f\nfif#.#####.#...........f\nfbf####.######.###.....f\nfif.....#...######.....f\nffffffffffffffffffffffff\n\n\n\n\n)\n", [2, 4, 2, 2, 2, 2, 3, 4], "background exploding fenster tl:0,background fenster fenster_right:1,1,1,1,1,1,1,background fenster:2,background fenster fenster_down:3,background inventar:4,\n4,4,background bang_schatten inventar:5,4,5,4,background fenster fenster_up:6,2,background fenster fenster_left fenster_right:7,7,7,\n7,7,7,7,2,3,background:8,8,8,8,background landbackground:9,\nbackground htarget landbackground wall:10,background landbackground wall:11,6,3,8,8,8,8,9,background htarget landbackground:12,9,\n6,3,8,8,background bond_d wall:13,background bond_d bond_r bond_u wall:14,background bond_d bond_r bond_u landbackground wall:15,background bond_d bond_u htarget landbackground player_h wall:16,background bond_u landbackground wall:17,6,3,\n8,8,8,background bond_d bond_l wall:18,background bond_l bond_u landbackground wall:19,12,11,6,3,8,8,\n8,8,9,12,background bond_r landbackground wall:20,6,3,8,8,8,8,\n9,background bond_d bond_r htarget landbackground wall:21,19,6,3,8,8,13,background bond_d bond_u wall:22,background bond_d bond_u landbackground wall:23,background bond_l bond_u htarget landbackground wall:24,\n9,6,2,background fenster fenster_left:25,25,25,25,25,25,25,2,\n", 13, "1627892668524.9329"] + "BIAXIAL INVASION OF SATURN", + ["title BIAXIAL INVASION OF SATURN\nauthor increpare\nhomepage www.increpare.com\n\nnorepeat_action\n\nrun_rules_on_level_start\n\ncolor_palette 4\n\nbackground_color #540056\ntext_color #228f0a\n\n(uses https://github.com/increpare/Zersto-rungto generate levels)\n========\nOBJECTS\n========\n\nbackground\n#7a2f5d\n\nlandbackground\n#0b5359\n\n\nwall \n#3f2e3f #505352 lightgray\n00000\n01110\n01110\n01110\n00000\n\nplayer_h\npink\n.....\n..0..\n.000.\n..0..\n.....\n\n\nplayer_v\npink\n.....\n..0..\n.000.\n..0..\n.....\n\n\nfenster\n#540056\n\n\nfenster_up\n#4a083f lightblue\n00000\n.....\n.....\n.....\n.....\n\nfenster_down\ndarkblue #760070\n.....\n.....\n.....\n.....\n11111\n\nfenster_left\n#4a083f #760070\n1....\n1....\n1....\n1....\n1....\n\nfenster_right\n#4a083f\n....0\n....0\n....0\n....0\n....0\n\nhtarget\nlightgreen\n.....\n.....\n00000\n.....\n.....\n\n\nvtarget\nlightgreen\n..0..\n..0..\n..0..\n..0..\n..0..\n\ninventar\ndarkblue\n\nbang\n #289d69 #267400\n...0.\n..00.\n.010.\n.00..\n.0...\n\nbang_schatten\n#211121\n...0.\n..00.\n.0.0.\n.00..\n.0...\n\nbond_u\ndarkblue #505352 lightgray\n.111.\n.....\n.....\n.....\n.....\n\n\n\nbond_d\ndarkblue #505352 lightgray\n.....\n.....\n.....\n.....\n.111.\n\n\n\nbond_l\ndarkblue #505352 lightgray\n.....\n1....\n1....\n1....\n.....\n\n\n\nbond_r\ndarkblue #505352 lightgray\n.....\n....1\n....1\n....1\n.....\n\n\n\n\ntl\ntransparent\n\nexploding\ntransparent\n\nexplosion\n#267400 #228f0a\n.1.1.\n10.01\n..0..\n10.01\n.1.1.\n\nnofall\n#267400\n.0...\n.....\n.....\n.....\n.....\n\nfall\nlightblue\n.0...\n.....\n.....\n.....\n.....\n\n\nc1 1 \n#7a2f5d\n\nc2 2\n#0b5359\n\nc3 3\n#000000\n\nc4 4\n#000000 #ffffff\n00000\n01000\n00000\n00000\n00000\n\n=======\nLEGEND\n=======\n\nplayer = player_h or player_v\ntarget = htarget or vtarget\n\n. = Background\n# = wall\nP = Player_h\nf = fenster\n\ng = landbackground\n\nobstacle = wall\n~ = tl and fenster\ni = inventar\nb = bang and inventar\nbond = bond_u or bond_d or bond_l or bond_r\n\nfallblocker = wall or fenster\n\n=======\nSOUNDS\n=======\n\nsfx0 55915302 (bang)\nsfx1 90167907 (other agains)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nlandbackground, inventar\nwall\nbond_u\nbond_d\nbond_l\nbond_r\nexplosion\ntarget\nPlayer, fenster, bang,bang_schatten\nfenster_up\nfenster_down\nfenster_left\nfenster_right\ntl\nexploding\nnofall\nfall\nc1, c2, c3, c4\n\n======\nRULES\n======\n\n\nup [fenster | no fenster ]-> [ fenster fenster_up | ]\ndown [fenster | no fenster ]-> [ fenster fenster_down | ]\nleft [fenster | no fenster ]-> [ fenster fenster_left | ]\nright [fenster | no fenster ]-> [ fenster fenster_right | ]\n\n[ tl no exploding ] [bond]->[ tl ] [ ]\ndown [ tl no exploding ] [wall | wall]->[tl][ wall bond_d | wall bond_u ]\nright [ tl no exploding ] [wall | wall]->[tl][ wall bond_r | wall bond_l ]\n\n[tl]->[tl exploding]\n\ndown [ wall no bond_d | fallblocker ] -> [ wall nofall | fallblocker ]\n(floodfill)\nup [nofall bond_u | ] -> [ nofall bond_u | nofall ]\n+ down [nofall bond_d | ] -> [ nofall bond_d | nofall ]\n+ left [nofall bond_l | ] -> [ nofall bond_l | nofall ]\n+ right [nofall bond_r | ] -> [ nofall bond_r | nofall ]\n\n\ndown [ wall no nofall | no fallblocker ] -> [ wall fall | ]\n\nup [fall bond_u | ] -> [ fall bond_u | fall ]\n+ down [fall bond_d | ] -> [ fall bond_d | fall ]\n+ left [fall bond_l | ] -> [ fall bond_l | fall ]\n+ right [fall bond_r | ] -> [ fall bond_r | fall ]\n\n[fall wall]->[down wall] sfx1 again\n\n[fall]->[]\n[nofall]->[]\n\n[up wall bond ] -> [ up wall up bond ]\n+ [down wall bond ] -> [ down wall down bond ]\n+ [left wall bond ] -> [ left wall left bond ]\n+ [right wall bond ] -> [ right wall right bond ]\n\n[target]->[]\n\n\n\n[up player_h ] -> [ up player_v ]\n[down player_h ] -> [ down player_v ]\n[left player_v ] -> [ left player_h ]\n[right player_v ] -> [ right player_h ]\n\n\nright left down [ landbackground | no landbackground no fenster ] -> [ landbackground | landbackground no fenster ]\n\n\n[player_h ] -> [ player_h htarget ]\n[player_v ] -> [ player_v vtarget ]\n\nhorizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nvertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\nup [ bond_u | explosion ] -> [ | explosion ]\ndown [ bond_d | explosion ] -> [ | explosion ]\nleft [ bond_l | explosion ] -> [ | explosion ]\nright [ bond_r | explosion ] -> [ | explosion ]\n\n[explosion wall ] -> [ no bond ] sfx1 again\n\n[explosion ] -> [ ] again\n\n[action player ] [bang] -> [ player ] [ action bang_schatten ]\n\n[action bang_schatten ] [ target ]-> [ action bang_schatten ] [ explosion ] sfx0 again\n\n\nlate [target]->[]\n\nlate [player_h ] -> [ player_h htarget ]\nlate [player_v ] -> [ player_v vtarget ]\n\nlate horizontal [ htarget | no htarget no fenster ] -> [ htarget | htarget ]\nlate vertical [ vtarget | no vtarget no fenster ] -> [ vtarget | vtarget ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll wall on landbackground \n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 12\n\nmessage We have to damage the structures enough that they fall back into the toxic blue atmosphere.\n\nmessage We only have two attacks to do it in.\n\n\n(OK)\n~ffffffff\nfifp..#.f\nfbf.#.##f\nfif.###.f\nfbf#g###f\nfif###.#f\nfffffffff\n\n\nmessage Level 2 von 12\n\n\n(OK)\n~fffffffff\nfif##p.##f\nfif##...#f\nfbf.#..##f\nfifg##gg#f\nfbf..####f\nfif...###f\nffffffffff\n\n\nmessage Level 3 von 12\n\n\n(okish)\n~ffffffffff\nfif###p..#f\nfif#.#...#f\nfif#.#...#f\nfbf#..#.##f\nfif#gg###gf\nfbf##.##..f\nfif.###...f\nfffffffffff\n\n\nmessage Level 4 von 12\n\n\n\n(ok--? easyish?)\n~ffffffffff\nfif#p#..##f\nfif#.##.##f\nfif#.#.#.#f\nfbf#####g#f\nfif.#..###f\nfbf#####.#f\nfif...##..f\nfffffffffff\n\n\nmessage Level 5 von 12\n\n\n\n(ok! P EASY)\n~ffffffffff\nfifp######f\nfif##.##.#f\nfif....#.#f\nfbfgg#g###f\nfif###.##.f\nfbf#.#.##.f\nfif######.f\nfffffffffff\n\n\nmessage Level 6 von 12\n\n\n\n(ok also! p easy?)\n~ffffffffff\nfif#p#...#f\nfif#.##..#f\nfif####..#f\nfbf..#..##f\nfifg##g##gf\nfbf.####..f\nfif.#.#...f\nfffffffffff\n\n\nmessage Level 7 von 12\n\n\n\n(ok, pretty easy but not 100% easy)\n~fffffffffff\nfif#p......f\nfif##......f\nfif#.......f\nfif###.....f\nfbf.##...#.f\nfifg##gg###f\nfbf..####..f\nfif....#...f\nffffffffffff\n\n\nmessage Level 8 von 12\n\n\n(tricky?)\n~fffffffffffff\nfif#####p#...f\nfif##.#.##...f\nfif#..###....f\nfif....###.#.f\nfif.....#.###f\nfif.....###..f\nfbfgggg##ggggf\nfif.....#....f\nfbf.....#....f\nfif....###...f\nffffffffffffff\n\n\nmessage Level 9 von 12\n\n\n\n(medium OK)\n~fffffffffffff\nfif##########f\nfif#p#.#..#.#f\nfif#.##......f\nfif#g##ggggggf\nfif#.###.....f\nfif#.#....#..f\nfbf#.###..###f\nfif#.#.####.#f\nfbf##.##...##f\nfif.###.####.f\nffffffffffffff\n\n\nmessage Level 10 von 12\n\n\n\n(not too hard?)\n~fffffffffffffff\nfif###p.....###f\nfif##......##.#f\nfif##.......#.#f\nfif#gggggggg#g#f\nfif##......####f\nfif.##........#f\nfif##.#....####f\nfif.####......#f\nfbf..#.#.#.####f\nfif....#####..#f\nfbf......#..###f\nfif....######.#f\nffffffffffffffff\n\n\nmessage Level 11 von 12\n\n(ok? HARD NICE)\n~fffffffffffff\nfif####p...##f\nfif#.##...###f\nfif#.####...#f\nfif###g##g#g#f\nfif.##..#.#.#f\nfif..#.##.#.#f\nfbf...#.#.#.#f\nfif...#.#####f\nfbf..#####..#f\nfif.....#...#f\nffffffffffffff\n\n\nmessage Level 12 von 12\n\n(middle-hard, and nice!)\n~fffffffffffffffffffffff\nfif############p##.#...f\nfif#.#.#.#.#..#.#####..f\nfif#.#.#.#.#######.#...f\nfif#g#g#g###gg#gg##gg#gf\nfif#.#.#.#........#####f\nfif#.#.#####.......#.##f\nfif#.#.##..##........##f\nfif#.#.##..............f\nfif#.#.##..............f\nfif#.#.##..............f\nfif#.#.###.............f\nfif#.#.#.###...........f\nfif#.#.#.#.##..........f\nfif#.#.####............f\nfif####...#....#..#....f\nfif##.#####...#####....f\nfbf##.#..##.###.#......f\nfif.#....####.##.......f\nfbf##.......##.##......f\nfif.#.......#####......f\nffffffffffffffffffffffff\n\n\n\nmessage The people of Saturn are finally free! \n\nmessage Long live Saturn!\n\n3333333333333333\n3333331111333333\n3333311111133333\n3332211111122333\n3223311111133223\n3332222222222333\n3333311111133333\n3333331111333333\n3333333333333333\n\n\n3333333333333333333333\n3333333333333333333333\n3333333333333333333333\n3333333333333333333333\n3333333331111333333333\n3333333311111133333333\n3333332211111122333333\n3333223311111133223333\n3333332222222222333333\n3333333311111133333333\n3333333331111333333333\n3333333333333333333333\n3333333333333333333333\n3333333333333333333333\n3333333333333333333333\n\n\n\n\n\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333334333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333311113333333333333333333333333\n333333333333333333333333111111333333333333333333333333\n333333333333333333333322111111223333333333333333333333\n333333333333333333332233111111332233333333333333333333\n333333333333333333333322222222223333333333333333333333\n333333333333333333333333111111333333333333333333333333\n333333333333333333333333311113333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333343333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n333333333333333333333333333333333333333333333333333333\n\n\n\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333334333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333343333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333343333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333334333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333331111333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333311111133333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333332211111122333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333223311111133223333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333332222222222333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333311111133333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333331111333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333334333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333334333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333334333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333433333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333\n\n\nmessage THE END\n\n(\n(======\n\nHARD UNSOLVED\n)\n\n\n\n\n(hard! NOT YET SOLVED)\n~fffffffffffff\nfif#####p####f\nfif#.#.#.#..#f\nfif#.########f\nfif###g##ggg#f\nfif#.#.##.###f\nfif#.#.#....#f\nfbf######.###f\nfif.#..#.###.f\nfbf....###...f\nfif....##....f\nffffffffffffff\n\n(nah HARD NOT YET SOLVED)\n~fffffffffffff\nfif###p.#####f\nfif#.#..#.#.#f\nfif#.##.##.##f\nfif###ggggg##f\nfif#.##...#.#f\nfif###.#..#.#f\nfbf..###..###f\nfif###..#...#f\nfbf##########f\nfif#....###..f\nffffffffffffff\n\n\n(hard, not solved)\n~fffffffffffffffffffffff\nfif#######p..........##f\nfif#.#.#.##...........#f\nfif#.#.#.###..........#f\nfif#.#.#.#.##.........#f\nfif#g#g#g####ggggggggg#f\nfif#.#.#.#...........##f\nfif#.#.###............#f\nfif#.#.#..............#f\nfif#.#.###.........#..#f\nfif#.#.#.##.......##.##f\nfif#.#.##........#.####f\nfif#.###.........####..f\nfif####.##......#...###f\nfif...#####.....#######f\nfif###..#.#..........#.f\nfif########....#######.f\nfbf.#..#..###..#..#....f\nfif.....##.#....###....f\nfbf......###..#####....f\nfif.......#####........f\nffffffffffffffffffffffff\n\n\n\n~fffffffffffffffffffffffffffffffff\nfif.............................#f\nfif.............................#f\nfif............................##f\nfif.............................#f\nfif............................##f\nfif..........................#.##f\nfif..........................####f\nfif........................###.##f\nfif........................#.#.##f\nfif........................#.#.##f\nfif.................p......#.#.##f\nfif.....................#..#.##.#f\nfif....................###.##.#.#f\nfifggggggggggggggggg#######g#g#g#f\nfif..................#.#..#.#.###f\nfif...................###.#.#.#.#f\nfif..................##.#.#######f\nfif.................#.#.#.#..#.##f\nfif................##.#.######.#.f\nfif...............#.#.#.##..##...f\nfif..............####.###........f\nfif.......##.#....#.#.#..........f\nfif......#.#.##...#.####.........f\nfif..########.###.####...........f\nfif.......#.#.#.###..............f\nfif.........#####.###............f\nfbf............##..#.............f\nfif...............##.............f\nfbf.............##.###...........f\nfif.............#####............f\nffffffffffffffffffffffffffffffffff\n\n\n\n\n(=========\n\n\tUNACCOUNTED FOR\n \n)\n\n\n\n((too?) EASY)\n~fffffffffffff\nfif#p.#######f\nfif###..####.f\nfif.#####....f\nfif.....##...f\nfif.....#....f\nfif.....#....f\nfbf..#..#....f\nfifgg####ggggf\nfbf.....##...f\nfif.....#....f\nffffffffffffff\n\n(too easy)\n~fffffff\nfbfp###f\nfif..#.f\nfbf###.f\nfif#g##f\nffffffff\n\n\n\n\n\n\n\n\n\n(ok but h-only solution)\n~fffffffffff\nfif#p......f\nfif###.....f\nfbf..##....f\nfif...#..#.f\nfbf...####.f\nfif......##f\nfbf....####f\nfifggg##gggf\nffffffffffff\n\n(ok easy)\n~ffffffff\nfifp...#f\nfbf....#f\nfbf#.###f\nfbf##..#f\nfif.####f\nfffffffff\n\n(good tricky!)\n~ffffffff\nfifp#.##f\nfbf.##.#f\nfbf.#.##f\nfbf.###.f\nfif###ggf\nfffffffff\n\n(h only solution :[ )\n~ffffffffff\nfif#p....#f\nfif#....##f\nfif#.....#f\nfbf#g#gg##f\nfif######.f\nfbf#.#####f\nfif...#..#f\nfffffffffff\n\n(h-only solution)\n~ffffffffff\nfif#p...##f\nfif#...#.#f\nfif#..####f\nfbf###..#.f\nfifg#####gf\nfbf..##...f\nfif..##...f\nfffffffffff\n\n\n\n\n\n\n\n\n\n\n\n(too hard?)\n~fffffffffffff\nfif####p#.###f\nfif#.#.###..#f\nfif#.####.###f\nfif#.#...#..#f\nfbf#g#ggg####f\nfif#.#...#...f\nfbf#.#...#...f\nfif#####.####f\nfbf.####.#...f\nfif##..#####.f\nffffffffffffff\n\n\n\n\n\n\n\n\n\n\n\n\n\n(solvable only with bla)\n~fffffffffffffffffffffff\nfifp...................f\nfif....................f\nfif.#..................f\nfif.##.................f\nfif###.................f\nfif##..................f\nfif##..................f\nfif####................f\nfif.####...............f\nfif....#...............f\nfif....##..............f\nfif.....#..............f\nfif.....##.............f\nfif......##............f\nfifggggg#g#ggggggggggggf\nfif.....#.#............f\nfbf.....#######........f\nfif......#.#.####......f\nfbf........#.#.........f\nfif.........##.........f\nffffffffffffffffffffffff\n\n\n\n\n\n\n\n\n\n(h-only solution but ok?)\n~fffffffffffffff\nfif#####p......f\nfif#.#.#####...f\nfif#.#.#.#.....f\nfif#g#g#gggggggf\nfif#.#.##......f\nfif#.#.#.......f\nfif#.#.##......f\nfif#.#.#.......f\nfbf#.#.##......f\nfif####.#......f\nfbf##.#####.###f\nfif...#..######f\nffffffffffffffff\n\n\n(easy)\n~fffffffffffffff\nfif##p......#.#f\nfif#.......####f\nfif#.......#.##f\nfif#.#.....##.#f\nfif#g###ggg####f\nfif#.##......##f\nfif#.##...####.f\nfif####......#.f\nfbf##.#.#######f\nfif...##.#..##.f\nfbf..######....f\nfif.....####...f\nffffffffffffffff\n\n\n(Easy)\n~fffffffffffffff\nfif#p........##f\nfif#.........##f\nfif#........###f\nfif#.........##f\nfif###ggggggg##f\nfif.#........##f\nfif####....##.#f\nfif..#.#....###f\nfbf..#####..##.f\nfif.....##.#.##f\nfbf......#####.f\nfif......#...#.f\nffffffffffffffff\n\n\n(ok, though has h-only solution)\n~fffffffffffffffffffffff\nfif####################f\nfif#p#.#.#.#.#.#..#.#.#f\nfif#.#.#.#.###.#..#.#.#f\nfif#g#g#g###g#gggg#g#ggf\nfif#.#.#.##.........#..f\nfif#.#.#.##............f\nfif#.#.#.#.##..........f\nfif#.#.#.###...........f\nfif#.#.#.#.............f\nfif#.#.#.#.............f\nfif#.#.#.###...........f\nfif#.#.#.#.##..........f\nfif#.#.#.#.#...........f\nfif#.#.#.#.............f\nfif#.#.#.##............f\nfif#.######............f\nfbf#.#....##...........f\nfif#.#####.#...........f\nfbf####.######.###.....f\nfif.....#...######.....f\nffffffffffffffffffffffff\n\n\n\n\n)\n",[2,4,2,2,2,2,3,4],"background exploding fenster tl:0,background fenster fenster_right:1,1,1,1,1,1,1,background fenster:2,background fenster fenster_down:3,background inventar:4,\n4,4,background bang_schatten inventar:5,4,5,4,background fenster fenster_up:6,2,background fenster fenster_left fenster_right:7,7,7,\n7,7,7,7,2,3,background:8,8,8,8,background landbackground:9,\nbackground htarget landbackground wall:10,background landbackground wall:11,6,3,8,8,8,8,9,background htarget landbackground:12,9,\n6,3,8,8,background bond_d wall:13,background bond_d bond_r bond_u wall:14,background bond_d bond_r bond_u landbackground wall:15,background bond_d bond_u htarget landbackground player_h wall:16,background bond_u landbackground wall:17,6,3,\n8,8,8,background bond_d bond_l wall:18,background bond_l bond_u landbackground wall:19,12,11,6,3,8,8,\n8,8,9,12,background bond_r landbackground wall:20,6,3,8,8,8,8,\n9,background bond_d bond_r htarget landbackground wall:21,19,6,3,8,8,13,background bond_d bond_u wall:22,background bond_d bond_u landbackground wall:23,background bond_l bond_u htarget landbackground wall:24,\n9,6,2,background fenster fenster_left:25,25,25,25,25,25,25,2,\n",13,"1627892668524.9329"] ], [ - "sum three horizontally to 8!", - ["title sum three horizontally to 8!\nauthor increpare\nhomepage www.increpare.com\ncolor_palette 1\nbackground_color darkblue\ntext_color pink\n\n(anderer Quellcode für Level-Generation usw kann man hier finden\nhttps://github.com/increpare/sum-three-horizontally-to-8-\n)\n\nrun_rules_on_level_start\n\nnorepeat_action\n\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nwall\ndarkgray\n\nspawn \ntransparent\n\nplayer p\nwhite\n00...\n0....\n.....\n0....\n00...\n\n\nplayer_r \nwhite\n...00\n....0\n.....\n....0\n...00\n\n\ndeadplayer \ngray\n00...\n0....\n.....\n0....\n00...\n\n\ndeadplayer_r \ngray\n...00\n....0\n.....\n....0\n...00\n\nk1 1\nred darkred\n11111\n11111\n11011\n11111\n11111\n\n\nk2 2\ngreen darkgreen\n11111\n11101\n11111\n10111\n11111\n\n\nk3 3\nyellow lightbrown\n11111\n11101\n11011\n10111\n11111\n\n\n\nk4 4\nbrown darkbrown\n11111\n10101\n11111\n10101\n11111\n\nk5 5\nblue darkblue\n11111\n10101\n11011\n10101\n11111\n\nk6 6\npink purple\n11111\n10101\n10101\n10101\n11111\n\nspawnfall\ntransparent\n\ndokill\nblack\n00000\n0...0\n0...0\n0...0\n00000\n\ndokill2\nblack\n00000\n00000\n00.00\n00000\n00000\n\ntanwas\npurple\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n? = spawn\nk = k1 or k2 or k3 or k4 or k5 or k6\nko = k1 or k2 or k3 or k4 or k5 or k6\n\nq = k1 and player\nw = k2 and player\ne = k3 and player\nr = k4 and player\nt = k5 and player\ny = k6 and player\n\n=======\nSOUNDS\n=======\n\nsfx0 29634507 (schieben)\nsfx1 93386709 (leeren)\nstartlevel 61503707\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nwall,k\nplayer, player_r\ndeadplayer, deadplayer_r\nspawn\nspawnfall\ndokill\ndokill2\ntanwas\n\n======\nRULES\n======\n\n\nright [player deadplayer | player_r deadplayer_r ] -> [stationary player deadplayer | stationary player_r deadplayer_r ]\n\n[player_r]->[]\n\n[dokill][player]->[dokill][player spawnfall]\n[dokill2][player]->[dokill2][player spawnfall]\n\n[action player ] -> sfx0\n\n\nright [action player |]->[action player deadplayer|deadplayer_r]\n\nright [action player k1|k1]->cancel\nright [action player k2|k2]->cancel\nright [action player k3|k3]->cancel\nright [action player k4|k4]->cancel\nright [action player k5|k5]->cancel\nright [action player k6|k6]->cancel\nright [action player no k|no k]->cancel\n\n[> player | wall]->cancel\nright [> player ||wall]->cancel\n\ndown [ k | no k ] -> [ > k | ] again\n[> k | wall ] -> [ k | wall ]\n[> k | stationary ko ] -> [ k | ko ]\n\n[> k ] [ player ] -> [ > k ] [ player spawnfall]\n\n[moving k] [player no spawnfall]-> [ moving k ] [ player spawnfall]\n\n[player] [? no k]->[player spawnfall] [ ? random k] again\n\nright [action player k | ko ]->[tanwas player spawnfall ko | k] again\nright [action player k | no ko ]->[tanwas player spawnfall| k] again\nright [action player no ko | k ]->[tanwas player spawnfall k | ] again\n\n\n\n[dokill2 k]->[] again\n\n[dokill k]->[dokill2 k] again\n\n\nhorizontal [player no spawnfall] [ k1 | k1 | k6 ] -> [player no spawnfall] [ k1 dokill | k1 dokill | k6 dokill ]\nhorizontal [player no spawnfall] [ k1 | k2 | k5 ] -> [player no spawnfall] [ k1 dokill | k2 dokill | k5 dokill ]\nhorizontal [player no spawnfall] [ k1 | k3 | k4 ] -> [player no spawnfall] [ k1 dokill | k3 dokill | k4 dokill ]\nhorizontal [player no spawnfall] [ k1 | k4 | k3 ] -> [player no spawnfall] [ k1 dokill | k4 dokill | k3 dokill ]\nhorizontal [player no spawnfall] [ k1 | k5 | k2 ] -> [player no spawnfall] [ k1 dokill | k5 dokill | k2 dokill ]\nright [player no spawnfall] [ k1 | k6 | k1 ] -> [player no spawnfall] [ k1 dokill | k6 dokill | k1 dokill ]\nhorizontal [player no spawnfall] [ k2 | k1 | k5 ] -> [player no spawnfall] [ k2 dokill | k1 dokill | k5 dokill ]\nhorizontal [player no spawnfall] [ k2 | k2 | k4 ] -> [player no spawnfall] [ k2 dokill | k2 dokill | k4 dokill ]\nhorizontal [player no spawnfall] [ k2 | k3 | k3 ] -> [player no spawnfall] [ k2 dokill | k3 dokill | k3 dokill ]\nright [player no spawnfall] [ k2 | k4 | k2 ] -> [player no spawnfall] [ k2 dokill | k4 dokill | k2 dokill ]\nhorizontal [player no spawnfall] [ k3 | k1 | k4 ] -> [player no spawnfall] [ k3 dokill | k1 dokill | k4 dokill ]\nright [player no spawnfall] [ k3 | k2 | k3 ] -> [player no spawnfall] [ k3 dokill | k2 dokill | k3 dokill ]\n\nright [dokill][deadplayer|deadplayer_r]->[dokill][|] sfx1\n\n\n[tanwas]->[]\n\n[dokill]->again\n\nlate [ spawnfall]->[]\n\nlate right [ player | ] -> [ player|player_r]\n\n\n==============\nWINCONDITIONS\n==============\n\nno k\n\n=======\nLEVELS\n=======\n\nmessage If three numbers horizontally sum to eight, they vanish.\nmessage Each level has a unique solution\n\n\nmessage World 1/3 - One Move\nmessage World 1/3 - Level 1/4\n\n#############\n#p24.2..23.3#\n#############\n\n\nmessage World 1/3 - Level 2/4\n\n\n########\n#p.133.#\n#142352#\n########\n\n(\nLösung: (2,1) \nVerhältnis3: 9.000000\nStückzahl: 9\nErfolg: 1\nGesamt: 8\nInteressante: 1\nLösungstiefe: 0\n)\n\nmessage World 1/3 - Level 3/4\n\n#######\n#p.2..#\n#.132.#\n#.4114#\n#.4243#\n#.4324#\n#######\n\n(\nLösung: (0,1) \nVerhältnis3: 16.000000\nStückzahl: 16\nErfolg: 1\nGesamt: 17\nInteressante: 1\nLösungstiefe: 0\n)\n\n\nmessage World 1/3 - Level 4/4\n\n###########\n#p.15631..#\n#.2121244.#\n###########\n\n(\nLösung: (3,1) \nVerhältnis3: 12.000000\nStückzahl: 12\nErfolg: 1\nGesamt: 13\nInteressante: 1\nLösungstiefe: 0\n)\n\n\n\nmessage World 2/3 - Medium Land\nmessage World 2/3 - Level 1/4\n\n(easy but not 100% trivial)\n######\n#p...#\n#.1..#\n#13.1#\n#61.4#\n######\n\n(\nLösung: (1,1) (2,3) \nVerhältnis2: 0.090909\nStückzahl: 7\nErfolg: 1\nGesamt: 32\nInteressante: 11\nLösungstiefe: 1\n)\n\n\nmessage World 2/3 - Level 2/4\n\n(not hard! but non-trivial)\n\n###########\n#p4.4.4.4.#\n#.2.2.2.2.#\n#42.2.2.24#\n###########\n\n(\nuh, edited/doubled!\nLösung: (1,0) (2,2) \nVerhältnis2: 0.043478\nStückzahl: 7\nErfolg: 1\nGesamt: 61\nInteressante: 23\nLösungstiefe: 1\n)\n\n\n\n\nmessage World 2/3 - Level 3/4\n\n\n\n(pleasant to solve!)\n\n############\n#p..1..1124#\n#22.41.6225#\n############\n\n(\nLösung: (2,1) (5,1) (6,1) (6,1) \nVerhältnis2: 0.040000\nStückzahl: 13\nErfolg: 1\nGesamt: 142\nInteressante: 25\nLösungstiefe: 3\n)\n\n\nmessage World 2/3 - Level 4/4\n\n(nice! not obvious but can be rationalized)\n######\n#p...#\n#33.3#\n#32.2#\n#23.3#\n######\n\n(\nLösung: (2,1) (2,3) (2,3) \nVerhältnis2: 0.047619\nStückzahl: 9\nErfolg: 1\nGesamt: 69\nInteressante: 21\nLösungstiefe: 2\n)\n\nmessage World 3/3 - HARD WORLD\nmessage World 3/3 - Level 1/4\n\n\n(hard, maybe for after)\n############\n#q.11.2....#\n#6.15.14513#\n############\n\n(\nLösung: (6,1) (4,0) (0,1) \nVerhältnis2: 0.013333\nStückzahl: 12\nErfolg: 1\nGesamt: 420\nInteressante: 75\nLösungstiefe: 2\n)\n\nmessage World 3/3 - Level 2/4\n\n\n(I could figure it out!)\n\n######\n#p3.4#\n#3114#\n#2442#\n######\n\n(\nLösung: (2,1) (0,2) (2,2) \nVerhältnis2: 0.033333\nStückzahl: 10\nErfolg: 1\nGesamt: 76\nInteressante: 30\nLösungstiefe: 2\n)\n\nmessage World 3/3 - Level 3/4\n\n\n(hardish. try solve again yourself later)\n##############\n#p4.3.11.4..4#\n#13.1441.61.3#\n##############\n\n(\nLösung: (1,1) (3,1) (7,1) (10,1) \nVerhältnis2: 0.002688\nStückzahl: 15\nErfolg: 1\nGesamt: 2585\nInteressante: 372\nLösungstiefe: 3\n)\n\n\nmessage World 3/3 - Level 4/4\n\n(I could figure it out :] ) \n\n######\n#w.2.#\n#3.32#\n#3.33#\n#2.33#\n######\n(\nLösung: (1,0) (0,3) (0,3) \nVerhältnis2: 0.013158\nStückzahl: 11\nErfolg: 1\nGesamt: 225\nInteressante: 76\nLösungstiefe: 2\n)\n\n\n\nmessage You won!\n\nmessage [On the next screen the goal is to remove as many sixes as possible. How many can you get down to? ]\n\n\n#####################\n#11.1.1p.111..1.1.11#\n#11.1.1..111..1.1.11#\n#11.1.1..111..1.1.11#\n#11.1.1..111..1.1.11#\n#11.1.1..111..1.1.11#\n#11.1.1..111..1.1.11#\n#1216.621666216.6211#\n#12166622616216.6211#\n#1112612166621666211#\n#1122222222222222211#\n#1126162612612666211#\n#1126162612612616211#\n#1126666612612616211#\n#1122222222222222211#\n#1111111111111111111#\n#1443441443441443441#\n#1443441443441443441#\n#1443441443441443441#\n#1443441443441443441#\n#1111111111111111111#\n#####################\n", [3, 3, 2, 4], "background wall:0,0,0,0,0,0,\n0,background:1,1,background k3:2,2,0,\n0,1,1,2,background k2:3,0,\n0,1,background player:4,1,1,0,\n0,1,background player_r:5,3,2,0,\n0,0,0,0,0,0,\n", 19, "1627893119768.2104"] + "sum three horizontally to 8!", + ["title sum three horizontally to 8!\nauthor increpare\nhomepage www.increpare.com\ncolor_palette 1\nbackground_color darkblue\ntext_color pink\n\n(anderer Quellcode für Level-Generation usw kann man hier finden\nhttps://github.com/increpare/sum-three-horizontally-to-8-\n)\n\nrun_rules_on_level_start\n\nnorepeat_action\n\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nwall\ndarkgray\n\nspawn \ntransparent\n\nplayer p\nwhite\n00...\n0....\n.....\n0....\n00...\n\n\nplayer_r \nwhite\n...00\n....0\n.....\n....0\n...00\n\n\ndeadplayer \ngray\n00...\n0....\n.....\n0....\n00...\n\n\ndeadplayer_r \ngray\n...00\n....0\n.....\n....0\n...00\n\nk1 1\nred darkred\n11111\n11111\n11011\n11111\n11111\n\n\nk2 2\ngreen darkgreen\n11111\n11101\n11111\n10111\n11111\n\n\nk3 3\nyellow lightbrown\n11111\n11101\n11011\n10111\n11111\n\n\n\nk4 4\nbrown darkbrown\n11111\n10101\n11111\n10101\n11111\n\nk5 5\nblue darkblue\n11111\n10101\n11011\n10101\n11111\n\nk6 6\npink purple\n11111\n10101\n10101\n10101\n11111\n\nspawnfall\ntransparent\n\ndokill\nblack\n00000\n0...0\n0...0\n0...0\n00000\n\ndokill2\nblack\n00000\n00000\n00.00\n00000\n00000\n\ntanwas\npurple\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\n? = spawn\nk = k1 or k2 or k3 or k4 or k5 or k6\nko = k1 or k2 or k3 or k4 or k5 or k6\n\nq = k1 and player\nw = k2 and player\ne = k3 and player\nr = k4 and player\nt = k5 and player\ny = k6 and player\n\n=======\nSOUNDS\n=======\n\nsfx0 29634507 (schieben)\nsfx1 93386709 (leeren)\nstartlevel 61503707\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nwall,k\nplayer, player_r\ndeadplayer, deadplayer_r\nspawn\nspawnfall\ndokill\ndokill2\ntanwas\n\n======\nRULES\n======\n\n\nright [player deadplayer | player_r deadplayer_r ] -> [stationary player deadplayer | stationary player_r deadplayer_r ]\n\n[player_r]->[]\n\n[dokill][player]->[dokill][player spawnfall]\n[dokill2][player]->[dokill2][player spawnfall]\n\n[action player ] -> sfx0\n\n\nright [action player |]->[action player deadplayer|deadplayer_r]\n\nright [action player k1|k1]->cancel\nright [action player k2|k2]->cancel\nright [action player k3|k3]->cancel\nright [action player k4|k4]->cancel\nright [action player k5|k5]->cancel\nright [action player k6|k6]->cancel\nright [action player no k|no k]->cancel\n\n[> player | wall]->cancel\nright [> player ||wall]->cancel\n\ndown [ k | no k ] -> [ > k | ] again\n[> k | wall ] -> [ k | wall ]\n[> k | stationary ko ] -> [ k | ko ]\n\n[> k ] [ player ] -> [ > k ] [ player spawnfall]\n\n[moving k] [player no spawnfall]-> [ moving k ] [ player spawnfall]\n\n[player] [? no k]->[player spawnfall] [ ? random k] again\n\nright [action player k | ko ]->[tanwas player spawnfall ko | k] again\nright [action player k | no ko ]->[tanwas player spawnfall| k] again\nright [action player no ko | k ]->[tanwas player spawnfall k | ] again\n\n\n\n[dokill2 k]->[] again\n\n[dokill k]->[dokill2 k] again\n\n\nhorizontal [player no spawnfall] [ k1 | k1 | k6 ] -> [player no spawnfall] [ k1 dokill | k1 dokill | k6 dokill ]\nhorizontal [player no spawnfall] [ k1 | k2 | k5 ] -> [player no spawnfall] [ k1 dokill | k2 dokill | k5 dokill ]\nhorizontal [player no spawnfall] [ k1 | k3 | k4 ] -> [player no spawnfall] [ k1 dokill | k3 dokill | k4 dokill ]\nhorizontal [player no spawnfall] [ k1 | k4 | k3 ] -> [player no spawnfall] [ k1 dokill | k4 dokill | k3 dokill ]\nhorizontal [player no spawnfall] [ k1 | k5 | k2 ] -> [player no spawnfall] [ k1 dokill | k5 dokill | k2 dokill ]\nright [player no spawnfall] [ k1 | k6 | k1 ] -> [player no spawnfall] [ k1 dokill | k6 dokill | k1 dokill ]\nhorizontal [player no spawnfall] [ k2 | k1 | k5 ] -> [player no spawnfall] [ k2 dokill | k1 dokill | k5 dokill ]\nhorizontal [player no spawnfall] [ k2 | k2 | k4 ] -> [player no spawnfall] [ k2 dokill | k2 dokill | k4 dokill ]\nhorizontal [player no spawnfall] [ k2 | k3 | k3 ] -> [player no spawnfall] [ k2 dokill | k3 dokill | k3 dokill ]\nright [player no spawnfall] [ k2 | k4 | k2 ] -> [player no spawnfall] [ k2 dokill | k4 dokill | k2 dokill ]\nhorizontal [player no spawnfall] [ k3 | k1 | k4 ] -> [player no spawnfall] [ k3 dokill | k1 dokill | k4 dokill ]\nright [player no spawnfall] [ k3 | k2 | k3 ] -> [player no spawnfall] [ k3 dokill | k2 dokill | k3 dokill ]\n\nright [dokill][deadplayer|deadplayer_r]->[dokill][|] sfx1\n\n\n[tanwas]->[]\n\n[dokill]->again\n\nlate [ spawnfall]->[]\n\nlate right [ player | ] -> [ player|player_r]\n\n\n==============\nWINCONDITIONS\n==============\n\nno k\n\n=======\nLEVELS\n=======\n\nmessage If three numbers horizontally sum to eight, they vanish.\nmessage Each level has a unique solution\n\n\nmessage World 1/3 - One Move\nmessage World 1/3 - Level 1/4\n\n#############\n#p24.2..23.3#\n#############\n\n\nmessage World 1/3 - Level 2/4\n\n\n########\n#p.133.#\n#142352#\n########\n\n(\nLösung: (2,1) \nVerhältnis3: 9.000000\nStückzahl: 9\nErfolg: 1\nGesamt: 8\nInteressante: 1\nLösungstiefe: 0\n)\n\nmessage World 1/3 - Level 3/4\n\n#######\n#p.2..#\n#.132.#\n#.4114#\n#.4243#\n#.4324#\n#######\n\n(\nLösung: (0,1) \nVerhältnis3: 16.000000\nStückzahl: 16\nErfolg: 1\nGesamt: 17\nInteressante: 1\nLösungstiefe: 0\n)\n\n\nmessage World 1/3 - Level 4/4\n\n###########\n#p.15631..#\n#.2121244.#\n###########\n\n(\nLösung: (3,1) \nVerhältnis3: 12.000000\nStückzahl: 12\nErfolg: 1\nGesamt: 13\nInteressante: 1\nLösungstiefe: 0\n)\n\n\n\nmessage World 2/3 - Medium Land\nmessage World 2/3 - Level 1/4\n\n(easy but not 100% trivial)\n######\n#p...#\n#.1..#\n#13.1#\n#61.4#\n######\n\n(\nLösung: (1,1) (2,3) \nVerhältnis2: 0.090909\nStückzahl: 7\nErfolg: 1\nGesamt: 32\nInteressante: 11\nLösungstiefe: 1\n)\n\n\nmessage World 2/3 - Level 2/4\n\n(not hard! but non-trivial)\n\n###########\n#p4.4.4.4.#\n#.2.2.2.2.#\n#42.2.2.24#\n###########\n\n(\nuh, edited/doubled!\nLösung: (1,0) (2,2) \nVerhältnis2: 0.043478\nStückzahl: 7\nErfolg: 1\nGesamt: 61\nInteressante: 23\nLösungstiefe: 1\n)\n\n\n\n\nmessage World 2/3 - Level 3/4\n\n\n\n(pleasant to solve!)\n\n############\n#p..1..1124#\n#22.41.6225#\n############\n\n(\nLösung: (2,1) (5,1) (6,1) (6,1) \nVerhältnis2: 0.040000\nStückzahl: 13\nErfolg: 1\nGesamt: 142\nInteressante: 25\nLösungstiefe: 3\n)\n\n\nmessage World 2/3 - Level 4/4\n\n(nice! not obvious but can be rationalized)\n######\n#p...#\n#33.3#\n#32.2#\n#23.3#\n######\n\n(\nLösung: (2,1) (2,3) (2,3) \nVerhältnis2: 0.047619\nStückzahl: 9\nErfolg: 1\nGesamt: 69\nInteressante: 21\nLösungstiefe: 2\n)\n\nmessage World 3/3 - HARD WORLD\nmessage World 3/3 - Level 1/4\n\n\n(hard, maybe for after)\n############\n#q.11.2....#\n#6.15.14513#\n############\n\n(\nLösung: (6,1) (4,0) (0,1) \nVerhältnis2: 0.013333\nStückzahl: 12\nErfolg: 1\nGesamt: 420\nInteressante: 75\nLösungstiefe: 2\n)\n\nmessage World 3/3 - Level 2/4\n\n\n(I could figure it out!)\n\n######\n#p3.4#\n#3114#\n#2442#\n######\n\n(\nLösung: (2,1) (0,2) (2,2) \nVerhältnis2: 0.033333\nStückzahl: 10\nErfolg: 1\nGesamt: 76\nInteressante: 30\nLösungstiefe: 2\n)\n\nmessage World 3/3 - Level 3/4\n\n\n(hardish. try solve again yourself later)\n##############\n#p4.3.11.4..4#\n#13.1441.61.3#\n##############\n\n(\nLösung: (1,1) (3,1) (7,1) (10,1) \nVerhältnis2: 0.002688\nStückzahl: 15\nErfolg: 1\nGesamt: 2585\nInteressante: 372\nLösungstiefe: 3\n)\n\n\nmessage World 3/3 - Level 4/4\n\n(I could figure it out :] ) \n\n######\n#w.2.#\n#3.32#\n#3.33#\n#2.33#\n######\n(\nLösung: (1,0) (0,3) (0,3) \nVerhältnis2: 0.013158\nStückzahl: 11\nErfolg: 1\nGesamt: 225\nInteressante: 76\nLösungstiefe: 2\n)\n\n\n\nmessage You won!\n\nmessage [On the next screen the goal is to remove as many sixes as possible. How many can you get down to? ]\n\n\n#####################\n#11.1.1p.111..1.1.11#\n#11.1.1..111..1.1.11#\n#11.1.1..111..1.1.11#\n#11.1.1..111..1.1.11#\n#11.1.1..111..1.1.11#\n#11.1.1..111..1.1.11#\n#1216.621666216.6211#\n#12166622616216.6211#\n#1112612166621666211#\n#1122222222222222211#\n#1126162612612666211#\n#1126162612612616211#\n#1126666612612616211#\n#1122222222222222211#\n#1111111111111111111#\n#1443441443441443441#\n#1443441443441443441#\n#1443441443441443441#\n#1443441443441443441#\n#1111111111111111111#\n#####################\n",[3,3,2,4],"background wall:0,0,0,0,0,0,\n0,background:1,1,background k3:2,2,0,\n0,1,1,2,background k2:3,0,\n0,1,background player:4,1,1,0,\n0,1,background player_r:5,3,2,0,\n0,0,0,0,0,0,\n",19,"1627893119768.2104"] ], [ - "Schleimban", - ["title Schleimban\nauthor increpare [+ ein Level von David Skinners Microban]\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\n( One level taken from David Skinner's Microban - www.sneezingtiger.com/sokoban/levels/microbanText.html )\n\ntext_color lightblue\ncolor_palette 6\n\n========\nOBJECTS\n========\n\nBackground\nblack darkgray\n00000\n00000\n00100\n00000\n00000\n\nWall\ndarkgray gray darkblue\n00000\n01112\n01002\n01002\n02222\n\nwall_up\ndarkgray gray darkblue\n.1..2\n..00.\n.....\n.....\n.....\n\nwall_down\ndarkgray gray darkblue\n.....\n.....\n.....\n.....\n.1002\n\nwall_left\ndarkgray gray darkblue\n.....\n1....\n.0...\n.0...\n2....\n\nwall_right\ndarkgray gray darkblue\n.....\n....1\n....0\n....0\n.....\n\nTarget\nyellow\n.....\n.....\n..0..\n.....\n.....\n\n\nCrate\ngray darkblue\n.000.\n01110\n01.10\n01110\n.000.\n\nPlayer\ndarkred red black\n.000.\n01110\n01.10\n01110\n.000.\n\nplayer_up\ndarkred red\n0...0\n.....\n.....\n.....\n.....\n\nplayer_down\ndarkred red\n.....\n.....\n.....\n.....\n0...0\n\nplayer_left\ndarkred red\n0....\n.....\n.....\n.....\n0....\n\nplayer_right\ndarkred red\n....0\n.....\n.....\n.....\n....0\n\n\nplayer_up_o\ndarkred red\n01110\n.....\n.....\n.....\n.....\n\nplayer_down_o\ndarkred red\n.....\n.....\n.....\n.....\n01110\n\nplayer_left_o\ndarkred red\n0....\n1....\n1....\n1....\n0....\n\nplayer_right_o\ndarkred red\n....0\n....1\n....1\n....1\n....0\n\nplayer_ur\ndarkred red\n....1\n.....\n.....\n.....\n.....\n\nplayer_ul\ndarkred red\n1....\n.....\n.....\n.....\n.....\n\nplayer_dr\ndarkred red\n.....\n.....\n.....\n.....\n....1\n\nplayer_dl\ndarkred red\n.....\n.....\n.....\n.....\n1....\n\n\nok\ndarkred\n\n\n\nsprt_0_0 1\nblack\n\nsprt_1_0 2\nlightgray darkgray red lightred\n...01\n...01\n...00\n...22\n..223\n\nsprt_2_0 3\ndarkgray lightgray red lightred\n00001\n00001\n11111\n22222\n33332\n\nsprt_3_0 4\nred black\n11111\n11111\n11111\n11111\n01111\n\nsprt_4_0 5\nblack\n\nsprt_0_1 6\nlightgray red darkgray black\n33333\n33333\n00001\n22201\n22201\n\nsprt_1_1 7\nred lightred darkblue black\n30011\n00111\n01111\n11111\n11122\n\nsprt_2_1 8\nlightred darkblue\n00000\n00000\n00000\n00000\n00011\n\nsprt_3_1 9\nlightred red\n011..\n0011.\n00011\n00001\n00001\n\nsprt_4_1 0\nblack\n\nsprt_0_2 -\ndarkgray lightgray red\n00012\n00012\n00012\n00012\n00012\n\nsprt_1_2 =\nlightred darkblue\n00011\n00000\n00000\n00100\n00010\n\nsprt_2_2 q\nlightred darkblue\n00011\n00000\n00000\n00000\n00000\n\nsprt_3_2 w\nlightred red darkblue\n00001\n00000\n00000\n02000\n20000\n\nsprt_4_2 e\nred lightgray lightred darkgray\n0....\n0....\n00111\n20133\n20133\n\nsprt_0_3 r\ndarkgray lightgray red\n00012\n00012\n11112\n.....\n.....\n\nsprt_1_3 t\nlightred darkblue red\n00001\n00000\n20000\n22000\n.2200\n\nsprt_2_3 y\nlightred darkblue\n00001\n11110\n00000\n00000\n00000\n\nsprt_3_3 u\nlightred red\n00000\n00000\n00000\n00000\n00001\n\nsprt_4_3 i\nlightred red lightgray darkgray\n01233\n01233\n01233\n11222\n1....\n\nsprt_0_4 z\nblack\n\nsprt_1_4 x\nred lightgray darkgray\n..000\n..111\n..122\n..122\n..122\n\nsprt_2_4 a\nred lightgray darkgray\n00000\n11111\n22222\n22222\n22222\n\nsprt_3_4 s\nred lightgray darkgray\n00000\n11111\n22221\n22221\n22221\n\nsprt_4_4 d\nblack\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\nobstacle = crate or wall\nplayer_stick = player_up or player_down or player_left or player_right or player_up_o or player_down_o or player_left_o or player_right_o or player_ur or player_ul or player_dr or player_dl\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nok\nplayer_up,player_up_o\nplayer_down,player_down_o\nplayer_left,player_left_o\nplayer_right,player_right_o\nplayer_ur\nplayer_ul\nplayer_dr\nplayer_dl\n\nwall_up\nwall_down\nwall_left\nwall_right\n1,2,3,4,5,6,7,8,9,0,sprt_0_2,sprt_1_2,q,w,e,r,t,y,u,i,z,x,a,s,d\n\n======\nRULES\n======\n\nright [ wall | wall ] -> [wall_right wall | wall_left wall ]\ndown [ wall | wall ] -> [ wall_down wall | wall_up wall]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate [ player | obstacle ] -> [ player ok | obstacle ]\nlate [ player no ok ] -> cancel\nlate [ player ok ] -> [ player ]\n\nlate [player_stick]->[]\n\nlate down [ crate | player ] -> [ crate player_down | Player player_up_o]\nlate up [ crate | player ] -> [ crate player_up | Player player_down_o]\nlate left [ crate | player ] -> [ crate player_left | Player player_right_o]\nlate right [ crate | player ] -> [ crate player_right | Player player_left_o]\n\nlate up [ player | wall ]-> [player player_up_o|wall]\nlate down [ player | wall ]-> [player player_down_o|wall]\nlate left [ player | wall ]-> [player player_left_o|wall]\nlate right [ player | wall ]-> [player player_right_o|wall]\n\nlate [ player_up_o player_right_o ] -> [ player_up_o player_right_o player_ur]\nlate [ player_up_o player_left_o ] -> [ player_up_o player_left_o player_ul]\nlate [ player_down_o player_right_o ] -> [ player_down_o player_right_o player_dr]\nlate [ player_down_o player_left_o ] -> [ player_down_o player_left_o player_dl]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 von 5\n\n..#####..\n..#...#..\n..#.o.#..\n..#...#..\n####.####\n#.......#\n#...*...#\n#.......#\n#.......#\n#...p...#\n#########\n\n\nmessage Level 2 von 5 [ von Microban ]\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\nmessage Level 3 von 5\n\n#########\n#.......#\n#..o.o..#\n#.......#\n##.###.##\n#.......#\n#.*.p.*.#\n#...#...#\n#########\n\nmessage Level 4 von 5\n\n########\n#o.....#\n#p**...#\n##.....#\n.##....#\n..##...#\n...##..#\n....##o#\n.....###\n\nmessage Level 5 von 5\n\n\n#########\n#.......#\n#.....#.#\n#.......#\n#.....###\n#..**.oo#\n#....####\n#.p..#...\n######...\n\n\nmessage Herzlichen Glückwunsch!\n\n\n12345\n67890\n-=qwe\nrtyui\nzxasd\n\n\n(\n\n\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n#############\n#......##...#\n#...**..p.#.#\n#.....#oo...#\n#.....#######\n#######......\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#OOO...#\n#...########\n#####.......\n\n#########\n#.......#\n#..o.o..#\n#.......#\n##.###.##\n#.......#\n#.......#\n#.......#\n#.*.p.*.#\n#...#...#\n#########\n\n..#####..\n..#...#..\n..#.o.#..\n..#...#..\n####.####\n#.......#\n#...*...#\n#.......#\n#.......#\n#...p...#\n#########\n\n\n#######\n#.....#\n#.o.o.#\n#.....#\n##.#.##\n#.....#\n#.*.*.#\n#..p..#\n#######\n\n)\n", [3, 0, 0, 1, 1, 1, 0, 1, 2, 3, 2, 3], "background:0,background wall wall_down wall_right:1,background wall wall_down wall_up:2,2,2,background wall wall_right wall_up:3,0,background wall wall_left wall_right:4,0,\n0,0,4,1,background wall wall_left wall_up:5,0,background wall:6,background target:7,4,\n4,0,0,0,background crate:8,4,4,0,0,\nbackground player player_right_o:9,7,4,background wall wall_down wall_left:10,3,0,background wall wall_down:11,2,background wall wall_left wall_right wall_up:12,\n0,4,0,8,0,4,0,4,0,\n0,0,4,0,10,2,2,2,5,\n", 3, "1627893180878.8218"] + "Schleimban", + ["title Schleimban\nauthor increpare [+ ein Level von David Skinners Microban]\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\n( One level taken from David Skinner's Microban - www.sneezingtiger.com/sokoban/levels/microbanText.html )\n\ntext_color lightblue\ncolor_palette 6\n\n========\nOBJECTS\n========\n\nBackground\nblack darkgray\n00000\n00000\n00100\n00000\n00000\n\nWall\ndarkgray gray darkblue\n00000\n01112\n01002\n01002\n02222\n\nwall_up\ndarkgray gray darkblue\n.1..2\n..00.\n.....\n.....\n.....\n\nwall_down\ndarkgray gray darkblue\n.....\n.....\n.....\n.....\n.1002\n\nwall_left\ndarkgray gray darkblue\n.....\n1....\n.0...\n.0...\n2....\n\nwall_right\ndarkgray gray darkblue\n.....\n....1\n....0\n....0\n.....\n\nTarget\nyellow\n.....\n.....\n..0..\n.....\n.....\n\n\nCrate\ngray darkblue\n.000.\n01110\n01.10\n01110\n.000.\n\nPlayer\ndarkred red black\n.000.\n01110\n01.10\n01110\n.000.\n\nplayer_up\ndarkred red\n0...0\n.....\n.....\n.....\n.....\n\nplayer_down\ndarkred red\n.....\n.....\n.....\n.....\n0...0\n\nplayer_left\ndarkred red\n0....\n.....\n.....\n.....\n0....\n\nplayer_right\ndarkred red\n....0\n.....\n.....\n.....\n....0\n\n\nplayer_up_o\ndarkred red\n01110\n.....\n.....\n.....\n.....\n\nplayer_down_o\ndarkred red\n.....\n.....\n.....\n.....\n01110\n\nplayer_left_o\ndarkred red\n0....\n1....\n1....\n1....\n0....\n\nplayer_right_o\ndarkred red\n....0\n....1\n....1\n....1\n....0\n\nplayer_ur\ndarkred red\n....1\n.....\n.....\n.....\n.....\n\nplayer_ul\ndarkred red\n1....\n.....\n.....\n.....\n.....\n\nplayer_dr\ndarkred red\n.....\n.....\n.....\n.....\n....1\n\nplayer_dl\ndarkred red\n.....\n.....\n.....\n.....\n1....\n\n\nok\ndarkred\n\n\n\nsprt_0_0 1\nblack\n\nsprt_1_0 2\nlightgray darkgray red lightred\n...01\n...01\n...00\n...22\n..223\n\nsprt_2_0 3\ndarkgray lightgray red lightred\n00001\n00001\n11111\n22222\n33332\n\nsprt_3_0 4\nred black\n11111\n11111\n11111\n11111\n01111\n\nsprt_4_0 5\nblack\n\nsprt_0_1 6\nlightgray red darkgray black\n33333\n33333\n00001\n22201\n22201\n\nsprt_1_1 7\nred lightred darkblue black\n30011\n00111\n01111\n11111\n11122\n\nsprt_2_1 8\nlightred darkblue\n00000\n00000\n00000\n00000\n00011\n\nsprt_3_1 9\nlightred red\n011..\n0011.\n00011\n00001\n00001\n\nsprt_4_1 0\nblack\n\nsprt_0_2 -\ndarkgray lightgray red\n00012\n00012\n00012\n00012\n00012\n\nsprt_1_2 =\nlightred darkblue\n00011\n00000\n00000\n00100\n00010\n\nsprt_2_2 q\nlightred darkblue\n00011\n00000\n00000\n00000\n00000\n\nsprt_3_2 w\nlightred red darkblue\n00001\n00000\n00000\n02000\n20000\n\nsprt_4_2 e\nred lightgray lightred darkgray\n0....\n0....\n00111\n20133\n20133\n\nsprt_0_3 r\ndarkgray lightgray red\n00012\n00012\n11112\n.....\n.....\n\nsprt_1_3 t\nlightred darkblue red\n00001\n00000\n20000\n22000\n.2200\n\nsprt_2_3 y\nlightred darkblue\n00001\n11110\n00000\n00000\n00000\n\nsprt_3_3 u\nlightred red\n00000\n00000\n00000\n00000\n00001\n\nsprt_4_3 i\nlightred red lightgray darkgray\n01233\n01233\n01233\n11222\n1....\n\nsprt_0_4 z\nblack\n\nsprt_1_4 x\nred lightgray darkgray\n..000\n..111\n..122\n..122\n..122\n\nsprt_2_4 a\nred lightgray darkgray\n00000\n11111\n22222\n22222\n22222\n\nsprt_3_4 s\nred lightgray darkgray\n00000\n11111\n22221\n22221\n22221\n\nsprt_4_4 d\nblack\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\nobstacle = crate or wall\nplayer_stick = player_up or player_down or player_left or player_right or player_up_o or player_down_o or player_left_o or player_right_o or player_ur or player_ul or player_dr or player_dl\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nok\nplayer_up,player_up_o\nplayer_down,player_down_o\nplayer_left,player_left_o\nplayer_right,player_right_o\nplayer_ur\nplayer_ul\nplayer_dr\nplayer_dl\n\nwall_up\nwall_down\nwall_left\nwall_right\n1,2,3,4,5,6,7,8,9,0,sprt_0_2,sprt_1_2,q,w,e,r,t,y,u,i,z,x,a,s,d\n\n======\nRULES\n======\n\nright [ wall | wall ] -> [wall_right wall | wall_left wall ]\ndown [ wall | wall ] -> [ wall_down wall | wall_up wall]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate [ player | obstacle ] -> [ player ok | obstacle ]\nlate [ player no ok ] -> cancel\nlate [ player ok ] -> [ player ]\n\nlate [player_stick]->[]\n\nlate down [ crate | player ] -> [ crate player_down | Player player_up_o]\nlate up [ crate | player ] -> [ crate player_up | Player player_down_o]\nlate left [ crate | player ] -> [ crate player_left | Player player_right_o]\nlate right [ crate | player ] -> [ crate player_right | Player player_left_o]\n\nlate up [ player | wall ]-> [player player_up_o|wall]\nlate down [ player | wall ]-> [player player_down_o|wall]\nlate left [ player | wall ]-> [player player_left_o|wall]\nlate right [ player | wall ]-> [player player_right_o|wall]\n\nlate [ player_up_o player_right_o ] -> [ player_up_o player_right_o player_ur]\nlate [ player_up_o player_left_o ] -> [ player_up_o player_left_o player_ul]\nlate [ player_down_o player_right_o ] -> [ player_down_o player_right_o player_dr]\nlate [ player_down_o player_left_o ] -> [ player_down_o player_left_o player_dl]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 von 5\n\n..#####..\n..#...#..\n..#.o.#..\n..#...#..\n####.####\n#.......#\n#...*...#\n#.......#\n#.......#\n#...p...#\n#########\n\n\nmessage Level 2 von 5 [ von Microban ]\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\nmessage Level 3 von 5\n\n#########\n#.......#\n#..o.o..#\n#.......#\n##.###.##\n#.......#\n#.*.p.*.#\n#...#...#\n#########\n\nmessage Level 4 von 5\n\n########\n#o.....#\n#p**...#\n##.....#\n.##....#\n..##...#\n...##..#\n....##o#\n.....###\n\nmessage Level 5 von 5\n\n\n#########\n#.......#\n#.....#.#\n#.......#\n#.....###\n#..**.oo#\n#....####\n#.p..#...\n######...\n\n\nmessage Herzlichen Glückwunsch!\n\n\n12345\n67890\n-=qwe\nrtyui\nzxasd\n\n\n(\n\n\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n#############\n#......##...#\n#...**..p.#.#\n#.....#oo...#\n#.....#######\n#######......\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#OOO...#\n#...########\n#####.......\n\n#########\n#.......#\n#..o.o..#\n#.......#\n##.###.##\n#.......#\n#.......#\n#.......#\n#.*.p.*.#\n#...#...#\n#########\n\n..#####..\n..#...#..\n..#.o.#..\n..#...#..\n####.####\n#.......#\n#...*...#\n#.......#\n#.......#\n#...p...#\n#########\n\n\n#######\n#.....#\n#.o.o.#\n#.....#\n##.#.##\n#.....#\n#.*.*.#\n#..p..#\n#######\n\n)\n",[3,0,0,1,1,1,0,1,2,3,2,3],"background:0,background wall wall_down wall_right:1,background wall wall_down wall_up:2,2,2,background wall wall_right wall_up:3,0,background wall wall_left wall_right:4,0,\n0,0,4,1,background wall wall_left wall_up:5,0,background wall:6,background target:7,4,\n4,0,0,0,background crate:8,4,4,0,0,\nbackground player player_right_o:9,7,4,background wall wall_down wall_left:10,3,0,background wall wall_down:11,2,background wall wall_left wall_right wall_up:12,\n0,4,0,8,0,4,0,4,0,\n0,0,4,0,10,2,2,2,5,\n",3,"1627893180878.8218"] ], [ - "Legend of Swixero", - ["title Legend of Swixero\nauthor increpare\nhomepage www.increpare.com\ncolor_palette c64\nbackground_color darkblue\ntext_color green\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\ndarkgreen darkblue\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\ngreen\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ngray darkgray\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nred pink White Blue\n.000.\n01110\n22222\n.333.\n.3.3.\n\ndead\n#ff0000\n..0..\n0....\n...0.\n.....\n.0...\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\nflipped\ntransparent\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\nsfx1 26528702 (dead)\nsfx2 19029907 (flip)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ndead\nflipped\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n[ > Crate | Target no Crate ] -> [ > Crate | Target no Crate flipped] sfx2\n\nlate [ flipped] [ player target no flipped] -> [flipped] [ dead crate flipped] sfx1\nlate [flipped] [crate no target no flipped] -> [flipped] [target flipped]\nlate [flipped] [target no crate no flipped] -> [flipped] [crate flipped]\nlate [ flipped]->[]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage level 1 of 5\n(OK)\n######\n#.O###\n#..###\n#@P..#\n#..*.#\n#..###\n######\n\n(EZ)\n(can remove)(\n#######\n#....##\n#p**..#\n##..o.# \n###.o.#\n####..#\n#######)\n\n\n(ezish)\n(can remove)(\n###########\n#####.o...#\n#####.o.#.#\n#####.o.#.#\n#.p.*.*.*.#\n#.#.#.#.###\n#.......###\n###########)\n(\n###########\n#######o..#\n#######.#.#\n#######o#.#\n#.p.*.*o*.#\n#.#.#.#.###\n#.......###\n###########\n\n###########\n#######o..#\n#######.#.#\n#######...#\n##p.*.*o*.#\n###...#.###\n#...#.o.###\n###########\n)\n\nmessage level 2 of 5\n(INTERMEDIATE)\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\nmessage level 3 of 5\n(EASY/FUN)\n(keep it)\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n\n(fine)(\n#######\n##...##\n#.***.#\n#..p..#\n#.ooo.#\n##...##\n#######)\n\n\nmessage level 4 of 5\n(intermediate hard)\n(meh remove?)\n(#########\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########)\n\n(nice ideer)\n###########\n####.#.####\n####.#.####\n#.*.@.@.*.#\n#.#.....#.#\n#.o..p..o.#\n###########\n\n(zu schweirig)\n(#########\n####.####\n####.####\n#.*.@p*.#\n#.#...#.#\n#.o.@.o.#\n####.####\n####.####\n#########)\n\nmessage level 5 of 5\n(HARD)\n############\n#....###...#\n#.**.....#p#\n#.*.#ooo...#\n#...#...####\n############\n\n\n\nmessage congratulations!\n\n", [1, 0, 2, 3, 3, 1, 1, 0, 3, 0, 3, 0, 3, 0, 1, 2, 3, 2, 2, 2, 1, 1, 0, 0, 3], "background wall:0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,1,\n1,0,0,1,background crate:2,background target:3,background crate target:4,\n1,1,0,0,1,4,4,\n1,1,1,0,0,1,1,\n1,background player:5,4,1,0,0,1,\n1,1,4,1,1,0,0,\n0,0,0,0,0,0,0,\n", 5, "1627893213826.6091"] + "Legend of Swixero", + ["title Legend of Swixero\nauthor increpare\nhomepage www.increpare.com\ncolor_palette c64\nbackground_color darkblue\ntext_color green\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\ndarkgreen darkblue\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\ngreen\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ngray darkgray\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nred pink White Blue\n.000.\n01110\n22222\n.333.\n.3.3.\n\ndead\n#ff0000\n..0..\n0....\n...0.\n.....\n.0...\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\nflipped\ntransparent\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\nsfx1 26528702 (dead)\nsfx2 19029907 (flip)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ndead\nflipped\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n[ > Crate | Target no Crate ] -> [ > Crate | Target no Crate flipped] sfx2\n\nlate [ flipped] [ player target no flipped] -> [flipped] [ dead crate flipped] sfx1\nlate [flipped] [crate no target no flipped] -> [flipped] [target flipped]\nlate [flipped] [target no crate no flipped] -> [flipped] [crate flipped]\nlate [ flipped]->[]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage level 1 of 5\n(OK)\n######\n#.O###\n#..###\n#@P..#\n#..*.#\n#..###\n######\n\n(EZ)\n(can remove)(\n#######\n#....##\n#p**..#\n##..o.# \n###.o.#\n####..#\n#######)\n\n\n(ezish)\n(can remove)(\n###########\n#####.o...#\n#####.o.#.#\n#####.o.#.#\n#.p.*.*.*.#\n#.#.#.#.###\n#.......###\n###########)\n(\n###########\n#######o..#\n#######.#.#\n#######o#.#\n#.p.*.*o*.#\n#.#.#.#.###\n#.......###\n###########\n\n###########\n#######o..#\n#######.#.#\n#######...#\n##p.*.*o*.#\n###...#.###\n#...#.o.###\n###########\n)\n\nmessage level 2 of 5\n(INTERMEDIATE)\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\nmessage level 3 of 5\n(EASY/FUN)\n(keep it)\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n\n(fine)(\n#######\n##...##\n#.***.#\n#..p..#\n#.ooo.#\n##...##\n#######)\n\n\nmessage level 4 of 5\n(intermediate hard)\n(meh remove?)\n(#########\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########)\n\n(nice ideer)\n###########\n####.#.####\n####.#.####\n#.*.@.@.*.#\n#.#.....#.#\n#.o..p..o.#\n###########\n\n(zu schweirig)\n(#########\n####.####\n####.####\n#.*.@p*.#\n#.#...#.#\n#.o.@.o.#\n####.####\n####.####\n#########)\n\nmessage level 5 of 5\n(HARD)\n############\n#....###...#\n#.**.....#p#\n#.*.#ooo...#\n#...#...####\n############\n\n\n\nmessage congratulations!\n\n",[1,0,2,3,3,1,1,0,3,0,3,0,3,0,1,2,3,2,2,2,1,1,0,0,3],"background wall:0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,1,\n1,0,0,1,background crate:2,background target:3,background crate target:4,\n1,1,0,0,1,4,4,\n1,1,1,0,0,1,1,\n1,background player:5,4,1,0,0,1,\n1,1,4,1,1,0,0,\n0,0,0,0,0,0,0,\n",5,"1627893213826.6091"] ], [ - "Xorro The Chaos Warden", - ["title Xorro The Chaos Warden\nauthor increpare\nhomepage www.increpare.com\ncolor_palette 4\nbackground_color black\ntext_color lightgreen\n\n\n\n========\nOBJECTS\n========\n\nBackground\ndarkblue darkblue\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\n#5555aa\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ntransparent #880000\n00100\n00100\n11111\n00100\n00100\n\nPlayer\nlightgreen brown green green\n.0000\n0111.\n22222\n.333.\n.3.3.\n\ndead\n#ff0000\n..0..\n0....\n...0.\n.....\n.0...\n\nCrate\nbrown Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\nflippedh\ntransparent\n\nflippedv\ntransparent\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\nsfx1 26528702 (dead)\nsfx2 19029907 (flip)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer Crate\nTarget\nWall\ndead\nflippedh,flippedv\n\n======\nRULES\n======\n\n[ > player | wall ] -> cancel\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Player | Crate | Crate ] -> cancel\n\n([ > crate | wall] ->cancel)\n([ > crate wall] ->cancel)\n\nvertical [ > Crate | Target no Crate no wall ] -> [ | crate Target flippedh wall] sfx2\nhorizontal [ > Crate | Target no Crate no wall ] -> [ | crate Target flippedv wall] sfx2\n\nvertical [ > Crate | Target no Crate wall ] -> [ | crate Target flippedh no wall] sfx2\nhorizontal [ > Crate | Target no Crate wall ] -> [ | crate Target flippedv no wall] sfx2\n\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\n\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\n\n\nlate [flippedh]->[]\nlate [flippedv]->[]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage level 1 of 4\n\n(option. unconvinced)\n######\n#..#o#\n#.*#.#\n#p*.##\n#..o.#\n######\n\nmessage level 2 of 4\n(decent)\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n\nmessage level 3 of 4\n(hardish)\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n\nmessage level 4 of 4\n...........\n.....o.....\n.*o..###o*.\n..####.#...\n..#.*.*#...\n.o##.#.##o.\n...#*.*.#..\n...#.####..\n.*o###..o*.\n.....o.....\n.....p.....\n\nmessage Congratulations! Not only did you solve all the puzzles, but you did it while preserving order!\n\n", [1, 2, 1, 0, 1, 2, 3, 3, 1, 0, 0, 3], "background:0,0,0,background wall:1,1,1,1,1,\n1,1,1,0,0,1,1,0,\nbackground crate:2,0,0,0,1,1,0,background target:3,\n0,3,0,1,1,0,background player:4,0,\n0,0,1,1,0,background crate target:5,2,5,\n0,1,1,0,0,0,0,0,\n1,1,1,1,1,1,1,1,\n", 3, "1627893230650.995"] + "Xorro The Chaos Warden", + ["title Xorro The Chaos Warden\nauthor increpare\nhomepage www.increpare.com\ncolor_palette 4\nbackground_color black\ntext_color lightgreen\n\n\n\n========\nOBJECTS\n========\n\nBackground\ndarkblue darkblue\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\n#5555aa\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ntransparent #880000\n00100\n00100\n11111\n00100\n00100\n\nPlayer\nlightgreen brown green green\n.0000\n0111.\n22222\n.333.\n.3.3.\n\ndead\n#ff0000\n..0..\n0....\n...0.\n.....\n.0...\n\nCrate\nbrown Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\nflippedh\ntransparent\n\nflippedv\ntransparent\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\nsfx1 26528702 (dead)\nsfx2 19029907 (flip)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer Crate\nTarget\nWall\ndead\nflippedh,flippedv\n\n======\nRULES\n======\n\n[ > player | wall ] -> cancel\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Player | Crate | Crate ] -> cancel\n\n([ > crate | wall] ->cancel)\n([ > crate wall] ->cancel)\n\nvertical [ > Crate | Target no Crate no wall ] -> [ | crate Target flippedh wall] sfx2\nhorizontal [ > Crate | Target no Crate no wall ] -> [ | crate Target flippedv wall] sfx2\n\nvertical [ > Crate | Target no Crate wall ] -> [ | crate Target flippedh no wall] sfx2\nhorizontal [ > Crate | Target no Crate wall ] -> [ | crate Target flippedv no wall] sfx2\n\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\nlate horizontal [ flippedh | wall no flippedh] -> [flippedh | flippedh] sfx10\nlate horizontal [ flippedh | no wall no flippedh] -> [flippedh|wall flippedh] sfx10\n\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\nlate vertical [ flippedv| wall no flippedv] -> [flippedv| flippedv] sfx10\nlate vertical [ flippedv| no wall no flippedv] -> [flippedv|wall flippedv] sfx10\n\n\nlate [flippedh]->[]\nlate [flippedv]->[]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage level 1 of 4\n\n(option. unconvinced)\n######\n#..#o#\n#.*#.#\n#p*.##\n#..o.#\n######\n\nmessage level 2 of 4\n(decent)\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n\nmessage level 3 of 4\n(hardish)\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n\nmessage level 4 of 4\n...........\n.....o.....\n.*o..###o*.\n..####.#...\n..#.*.*#...\n.o##.#.##o.\n...#*.*.#..\n...#.####..\n.*o###..o*.\n.....o.....\n.....p.....\n\nmessage Congratulations! Not only did you solve all the puzzles, but you did it while preserving order!\n\n",[1,2,1,0,1,2,3,3,1,0,0,3],"background:0,0,0,background wall:1,1,1,1,1,\n1,1,1,0,0,1,1,0,\nbackground crate:2,0,0,0,1,1,0,background target:3,\n0,3,0,1,1,0,background player:4,0,\n0,0,1,1,0,background crate target:5,2,5,\n0,1,1,0,0,0,0,0,\n1,1,1,1,1,1,1,1,\n",3,"1627893230650.995"] ], [ - "Put the logs in the water, elephant!", - ["title Put the logs in the water, elephant! \nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #222034\ntext_color #cbdbfc\n\nnorepeat_action\n\n(thanks to pancelor + salty_horse for some good suggestions)\n\n========\nOBJECTS\n========\n\nelephantA_1 1\n#1f2f8d #5b6ee1 #cbdbfc\n.0000\n01111\n01111\n01111\n01111\n\nelephantA_2 2\n#1f2f8d #5b6ee1 #cbdbfc\n00000\n11111\n11111\n11111\n11111\n\nelephantA_3 3\n#1f2f8d #5b6ee1 #cbdbfc\n000..\n1110.\n11110\n11110\n11110\n\nelephantA_4 4\n#1f2f8d #5b6ee1 #cbdbfc\n11110\n01111\n11111\n11111\n00000\n\nelephantA_5 5\n#1f2f8d #5b6ee1 #cbdbfc\n11110\n11110\n11110\n11110\n21110\n\n\nelephantA_6 6\n#1f2f8d #5b6ee1 #cbdbfc\n01111\n01111\n01111\n01110\n01110\n\n \nelephantA_7 7\n#1f2f8d #5b6ee1 #cbdbfc\n11111\n11111\n11111\n11111\n00000\n\n\nelephantA_8 8\n#1f2f8d #5b6ee1 #cbdbfc\n11110\n11110\n11110\n01110\n01110\n\nelephantA_9 9\n#1f2f8d #5b6ee1 #cbdbfc\n02110\n01210\n01110\n01110\n01110\n\n\nelephantA_10 0\n#1f2f8d #5b6ee1 #cbdbfc\n01110\n01110\n00000\n01110\n00000\n\n\nelephantA_11 a\n#1f2f8d #5b6ee1 #cbdbfc\n01110\n01110\n01110\n01110\n.000.\n\n\nelephantA_12 s\n#1f2f8d #5b6ee1 #cbdbfc\n01110\n10001\n11111\n11111\n11111\n\nelephantB_11A\n#1f2f8d #5b6ee1 #cbdbfc\n..000\n.0110\n.0111\n.0111\n..000\n\nelephantB_11B\n#1f2f8d #5b6ee1 #cbdbfc\n01110\n01110\n11110\n1110.\n000..\n\nwater\n#45acc1 #57c8e0\n00000\n01000\n00000\n00010\n00000\n\n\nbackground\n#9badb7\n\nwall\n#323c39 #847e87\n00000\n01110\n01110\n01110\n00000\n(\nlog\n#450062 #6f238c #fc76d2\n.111.\n01121\n01111\n01111\n.000.\n)\nlog\n#482b08 #b4711f #f4a84b\n.000.\n01110\n01210\n01110\n.000.\n\nairlog\n#482b08 #b4711f #f4a84b\n.000.\n01110\n01210\n01110\n.000.\n\noob\ntransparent\n\n=======\nLEGEND\n=======\nelephant = elephantA_1 or elephantA_2 or elephantA_3 or elephantA_4 or elephantA_5 or elephantA_6 or elephantA_7 or elephantA_8 or elephantA_9 or elephantA_10 or elephantA_11 or elephantA_12 or elephantB_11A or elephantB_11B or airlog\nplayer = elephant\nobstacle= wall or log\nsolid = obstacle or player\n\n. = Background\n# = Wall\nP = Player\n* = log\n, = water\n; = oob\n@ = log and water\n\nanything = elephant or wall or player or log or water or oob\n=======\nSOUNDS\n=======\n\nsfx0 65393704 (cancel)\nsfx1 80573305 (pickup)\nsfx2 94577706 (drop)\n\nendlevel 31237103\nlog move 66615107\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nwater\nWall, log\nelephant, airlog\noob\n\n======\nRULES\n======\n\n\n\n[ > elephant | log ] -> [ > elephant | > log ]\n[ > log | log ] -> [ > log | > log ]\n\n[ > log | wall ]->cancel\n\n(suck up log if retracting trunk)\ndown [ action elephantA_4 | no log | log ] -> [ action elephantA_4 | airlog | ] sfx1\ndown [ action elephantA_4 | log | no log ] -> [ action elephantA_4 | airlog | ] sfx1\n(cancel retraction if overlaps)\nright [ action elephantA_4 ] [ log | elephantA_11 ] -> cancel sfx0\n\n(retract trunk)\nright [ action elephantA_4 ] [ | elephantA_11 ] -> [ elephantA_4 ] [ elephantB_11A | elephantB_11B ]\n\n(extend trunk)\nright [ action elephantA_4 ] [ elephantB_11A | elephantB_11B ] -> [ action elephantA_4 ] [ | elephantA_11 ]\n(drop log if extending trunk)\ndown [ action elephantA_4 | airlog | no obstacle ] -> [ elephantA_4 | | log ] sfx2\ndown [ action elephantA_4 | airlog | obstacle ] -> cancel sfx0\n\n( late [elephantA_10 water ] -> cancel )\nlate [elephantA_10 log]->cancel\n[> elephantA_10 | wall]->cancel\n\n==============\nWINCONDITIONS\n==============\nall water on log\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 8\n\n.....................\n.....................\n..#################..\n..#.........#.....#..\n..#.....123.#..,..#..\n..#...12s45.#.....#..\n..#...678.9.##.#.##..\n..#.*.0.0.a.......#..\n..#...............#..\n..#################..\n.....................\n.....................\n\nmessage What a good elephant!\n\nmessage level 2 of 8\n\n...............\n...............\n..........###..\n..#########,#..\n..#.........#..\n..#...123..##..\n..#.12s45..#...\n..#.678.9..#...\n..#.0.0.a*.#...\n..#........#...\n..##########...\n...............\n...............\n\nmessage I'm so proud of you elephant!\n\nmessage level 3 of 8\n\n................\n................\n..############..\n..#,.........#..\n..#########..#..\n...#.........#..\n...#...123...#..\n...#.12s45...#..\n...#.678.9.*.#..\n...#.0.0.a...#..\n...#.........#..\n...###########..\n................\n................\n\n(I don't like this level\n.................\n.................\n###############..\n#.............#..\n#.............#..\n#..123........#..\n#12s45***.....#..\n#678.9###.....#..\n#0.0.a,,,.....#..\n###############..)\n\n\nmessage How did you ever think of doing that, elephant?!\n\nmessage level 4 of 8\n\n...................\n...................\n..###############..\n..#.........#...#..\n..#...123.#...#.#..\n..#.12s45...#...#..\n..#.678.9.*.#...#..\n..#.0.0.a...#...#..\n..#.........#...#..\n..##.#.######.,.#..\n..#.............#..\n..###############..\n...................\n...................\n\nmessage I was not expecting that. Splendid work, elephant!\n\nmessage level 5 of 8\n\n...................\n...................\n..###############..\n..#..123........#..\n..#12s45........#..\n..#678.9........#..\n..#0.0.a*.*.....#..\n..#..#..###..#..#..\n..#.....,.,.....#..\n..###############..\n...................\n...................\n\n\nmessage How did you ever think of doing that, elephant?!\n\n\nmessage level 6 of 8\n\n(Difficulty 5843 I'm ok with this level - nice cyclish - recommend to include)\n...;;;;;;;;\n...;;;;;;;;\n..#######;;\n..#...,.#;;\n..#..123#;;\n..#12s45#;;\n..#678,9#;;\n..#0*0*a#;;\n..#.....#;;\n..#######;;\n...;;;;;;;;\n...;;;;;;;;\n\n\n\nmessage You really helped us out of a tight spot. Thanks, elephant!\n\n\nmessage level 7 of 8\n\n......................\n......................\n..##################..\n..#............#...#..\n..#...123....#.....#..\n..#.12s45......#...#..\n..#.678.9.*.#..#...#..\n..#.0.0.a......#...#..\n..#..........#.....#..\n..##.#.#########.,.#..\n..#................#..\n..#########........#..\n..........#........#..\n..........#........#..\n..........##########..\n......................\n......................\n\nmessage You're one dextrous elephant!\n\nmessage level 8 of 8\n\n;;;;;;;;;;;\n;;;;;;;;;;;\n;;#######;;\n;;#,....#;;\n;;#.*123#;;\n;;#12s45#;;\n;;#678#9#;;\n;;#0,0.a#;;\n;;#...*.#;;\n;;#######;;\n;;;;;;;;;;;\n;;;;;;;;;;;\n\nmessage Congratulations! You are the best elephant. And that's saying a lot!\n\n(\n(LEVELCAT:pleasing to solve)\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#,.123#;\n#12s45#;\n#678*9#;\n#0*0,a#;\n#.*..,#;\n#######;\n\n\n\n(kinda nice but no)\n;;;;;;;;\n;;;;;;;;\n#######;\n#..123#;\n#12s45#;\n#678@9#;\n#0*0@a#;\n#@@,@@#;\n#######;\n\n(sovling this level I just felt i missed something stupid)\n;;;;;;;;\n;;;;;;;;\n#######;\n#,.123#;\n#12s45#;\n#678@9#;\n#0.0*a#;\n#.....#;\n#######;\n\n(meh)\n;;;;;;;;\n;;;;;;;;\n#######;\n#.,123#;\n#12s45#;\n#678*9#;\n#0*0,a#;\n#.....#;\n#######;\n\n\n\n;;;;;;;;;;\n;;;;;;;;;;\n;#######;;\n##.....##;\n#...123.#;\n#.12s45.#;\n#.678.9.#;\n#.0.0.a.#;\n##.....##;\n;#######;;\n\n\n;;;;;;;;;\n;;;;;;;;;\n########;\n#...123#;\n#.12s45#;\n#.678.9#;\n#.0.0.a#;\n##.....#;\n;#######;\n\n;;;;;;;;;\n;;;;;;;;;\n########.\n#..123.#.\n#12s45.#.\n#678.9.#.\n#0.0.a.#.\n########.\n\n\n;;;;;;;;;\n;;;;;;;;;\n########.\n#...123#.\n#.12s45#.\n#.678.9#.\n#.0.0.a#.\n########.\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#.....#;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#######;\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#.....#;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#.....#;\n#######;\n\n(kinda like this level, needs to to be dextrous - next level better though)\n;;;;;;;;\n;;;;;;;;\n#######;\n#.,...#;\n#..123#;\n#12s45#;\n#678#9#;\n#0@0.a#;\n#....*#;\n#######;\n\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#.....#;\n#######;\n\n(difficulty 24828)\n\n.;;;;;;;\n.;;;;;;;\n#######;\n#..,..#;\n#..123#;\n#12s45#;\n#678*9#;\n#0.0,a#;\n#....*#;\n#######;\n\n\n(Difficulty 5843)\n.;;;;;;;\n.;;;;;;;\n#######;\n#...,.#;\n#..123#;\n#12s45#;\n#678,9#;\n#0*0*a#;\n#.....#;\n#######;\n\n\n\n(Difficulty 5843 I'm ok with this level - nice cyclish)\n.;;;;;;;\n.;;;;;;;\n#######;\n#...,.#;\n#..123#;\n#12s45#;\n#678,9#;\n#0*0*a#;\n#.....#;\n#######;\n\n\n(not as hard as other ones of this kind, but I was agble to solve it ^^ and it's not so bad? maybe not conceptual enough)\n.;;;;;;;\n.;;;;;;;\n#######;\n#...,.#;\n#.,123#;\n#12s45#;\n#678.9#;\n#0*0*a#;\n#.....#;\n#######;\n\n\n\n(difficulty ~5k - a bit too tricky?)\n.;;;;;;;\n.;;;;;;;\n#######;\n#.,...#;\n#,.123#;\n#12s45#;\n#678*9#;\n#0.0*a#;\n#.....#;\n#######;\n\n\n(silly + not hard, but maybe ok for a final level?)\n;;;;;;;;\n;;;;;;;;\n#######;\n#,*123#;\n#12s45#;\n#678@9#;\n#0@0.a#;\n#######;\n\n\n.;;;;;;;\n.;;;;;;;\n#######;\n#...,.#;\n#.,123#;\n#12s45#;\n#678.9#;\n#0*0*a#;\n#.....#;\n#######;\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#.....#;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#.....#;\n#######;\n\n;;;;;;;;;;\n;;;;;;;;;;\n#########;\n#.......#;\n#...123.#;\n#.12s45.#;\n#.678.9.#;\n#.0.0.a.#;\n#.......#;\n#########;\n\n\n(mildly satisfying but easy?)\n;;;;;;;;;;\n;;;;;;;;;;\n#########;\n#..#...##;\n##.#123,#;\n#.12s45##;\n#.678,9.#;\n#.0*0.a.#;\n#....*..#;\n#########;\n\n(kinda a nice trick but...also not so interesting)\n;;;;;;;;;\n;;;;;;;;;\n########;\n#,.....#;\n#,.123.#;\n#12s45.#;\n#678*9.#;\n#0*0.a.#;\n########;\n\n\n;;;;;;;;;;\n;;;;;;;;;;\n#########;\n#...123.#;\n#.12s45.#;\n#.678.9.#;\n#.0.0.a.#;\n#########;\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#######;\n\n\n;;;;;;;;\n;;;;;;;;\n;;#####;\n###123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#######;\n\n\n;;;;;;;;\n;;;;;;;;\n;;#####;\n###123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#######;\n\n\n;;;;;;;;;;\n;;;;;;;;;;\n#########;\n#.......#;\n#...123.#;\n#.12s45.#;\n#.678.9.#;\n#.0.0.a.#;\n#.......#;\n#########;\n\n;;;;;;;;;;;;;;;;;;\n;;;;;;;;;;;;;;;;;;\n#################;\n#.....123.......#;\n#...12s45.......#;\n#...678.9.......#;\n#...0.0.a.......#;\n#################;\n\n;;;;;;;;;;;;;;;;;;\n;;;;;;;;;;;;;;;;;;\n#################;\n#...............#;\n#.....123.......#;\n#...12s45.......#;\n#...678.9.......#;\n#...0.0.a.......#;\n#...............#;\n#################;\n\n.....................\n.....................\n..#################..\n..#.........#.....#..\n..#.....123.#..,..#..\n..#...12s45.#.....#..\n..#...678.9.##.#.##..\n..#.*.0.0.a.......#..\n..#...............#..\n..#################..\n.....................\n.....................\n)\n\n", [2, 3, 0, 0, 0, 3, 2, 1, 2, 0, 3, 3, 2, 4, 1, 0, 3, 3, 3, 3, 2, 3, 3, 3, 3, 2, 2, 0, 0, 0, 1, 0, 0, 3, 3, 4, 0, 4, 0, 1, 1, 2, 3, 2, 3], "background: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,background wall:1,1,1,1,1,1,1,1,\n1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,\n0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,\n0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,\n0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,\n0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,\n0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,\n0,0,0,1,0,1,1,1,1,0,0,0,0,1,background elephanta_1:2,background elephanta_6:3,background elephanta_10:4,0,0,0,1,0,\n0,0,0,1,0,0,0,0,1,background elephanta_2:5,background elephanta_7:6,0,1,0,0,1,0,0,0,0,1,0,\n0,0,0,background elephanta_1 wall:7,background elephanta_12:8,background elephanta_8 wall:9,4,0,0,1,1,0,0,0,0,1,0,0,0,0,background elephanta_2 wall:10,background elephanta_4:11,\n0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,background elephanta_3 wall:12,background elephanta_5 wall:13,background elephanta_9:14,background elephanta_11 wall:15,1,1,0,\n1,0,0,0,0,1,0,0,0,0,1,0,background log:16,0,0,0,0,0,0,0,0,0,\n1,0,0,0,0,1,0,0,0,0,0,0,background water:17,0,0,0,0,1,0,0,0,0,\n1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,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,\n", 19, "1627893532893.2812"] + "Put the logs in the water, elephant!", + ["title Put the logs in the water, elephant! \nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #222034\ntext_color #cbdbfc\n\nnorepeat_action\n\n(thanks to pancelor + salty_horse for some good suggestions)\n\n========\nOBJECTS\n========\n\nelephantA_1 1\n#1f2f8d #5b6ee1 #cbdbfc\n.0000\n01111\n01111\n01111\n01111\n\nelephantA_2 2\n#1f2f8d #5b6ee1 #cbdbfc\n00000\n11111\n11111\n11111\n11111\n\nelephantA_3 3\n#1f2f8d #5b6ee1 #cbdbfc\n000..\n1110.\n11110\n11110\n11110\n\nelephantA_4 4\n#1f2f8d #5b6ee1 #cbdbfc\n11110\n01111\n11111\n11111\n00000\n\nelephantA_5 5\n#1f2f8d #5b6ee1 #cbdbfc\n11110\n11110\n11110\n11110\n21110\n\n\nelephantA_6 6\n#1f2f8d #5b6ee1 #cbdbfc\n01111\n01111\n01111\n01110\n01110\n\n \nelephantA_7 7\n#1f2f8d #5b6ee1 #cbdbfc\n11111\n11111\n11111\n11111\n00000\n\n\nelephantA_8 8\n#1f2f8d #5b6ee1 #cbdbfc\n11110\n11110\n11110\n01110\n01110\n\nelephantA_9 9\n#1f2f8d #5b6ee1 #cbdbfc\n02110\n01210\n01110\n01110\n01110\n\n\nelephantA_10 0\n#1f2f8d #5b6ee1 #cbdbfc\n01110\n01110\n00000\n01110\n00000\n\n\nelephantA_11 a\n#1f2f8d #5b6ee1 #cbdbfc\n01110\n01110\n01110\n01110\n.000.\n\n\nelephantA_12 s\n#1f2f8d #5b6ee1 #cbdbfc\n01110\n10001\n11111\n11111\n11111\n\nelephantB_11A\n#1f2f8d #5b6ee1 #cbdbfc\n..000\n.0110\n.0111\n.0111\n..000\n\nelephantB_11B\n#1f2f8d #5b6ee1 #cbdbfc\n01110\n01110\n11110\n1110.\n000..\n\nwater\n#45acc1 #57c8e0\n00000\n01000\n00000\n00010\n00000\n\n\nbackground\n#9badb7\n\nwall\n#323c39 #847e87\n00000\n01110\n01110\n01110\n00000\n(\nlog\n#450062 #6f238c #fc76d2\n.111.\n01121\n01111\n01111\n.000.\n)\nlog\n#482b08 #b4711f #f4a84b\n.000.\n01110\n01210\n01110\n.000.\n\nairlog\n#482b08 #b4711f #f4a84b\n.000.\n01110\n01210\n01110\n.000.\n\noob\ntransparent\n\n=======\nLEGEND\n=======\nelephant = elephantA_1 or elephantA_2 or elephantA_3 or elephantA_4 or elephantA_5 or elephantA_6 or elephantA_7 or elephantA_8 or elephantA_9 or elephantA_10 or elephantA_11 or elephantA_12 or elephantB_11A or elephantB_11B or airlog\nplayer = elephant\nobstacle= wall or log\nsolid = obstacle or player\n\n. = Background\n# = Wall\nP = Player\n* = log\n, = water\n; = oob\n@ = log and water\n\nanything = elephant or wall or player or log or water or oob\n=======\nSOUNDS\n=======\n\nsfx0 65393704 (cancel)\nsfx1 80573305 (pickup)\nsfx2 94577706 (drop)\n\nendlevel 31237103\nlog move 66615107\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nwater\nWall, log\nelephant, airlog\noob\n\n======\nRULES\n======\n\n\n\n[ > elephant | log ] -> [ > elephant | > log ]\n[ > log | log ] -> [ > log | > log ]\n\n[ > log | wall ]->cancel\n\n(suck up log if retracting trunk)\ndown [ action elephantA_4 | no log | log ] -> [ action elephantA_4 | airlog | ] sfx1\ndown [ action elephantA_4 | log | no log ] -> [ action elephantA_4 | airlog | ] sfx1\n(cancel retraction if overlaps)\nright [ action elephantA_4 ] [ log | elephantA_11 ] -> cancel sfx0\n\n(retract trunk)\nright [ action elephantA_4 ] [ | elephantA_11 ] -> [ elephantA_4 ] [ elephantB_11A | elephantB_11B ]\n\n(extend trunk)\nright [ action elephantA_4 ] [ elephantB_11A | elephantB_11B ] -> [ action elephantA_4 ] [ | elephantA_11 ]\n(drop log if extending trunk)\ndown [ action elephantA_4 | airlog | no obstacle ] -> [ elephantA_4 | | log ] sfx2\ndown [ action elephantA_4 | airlog | obstacle ] -> cancel sfx0\n\n( late [elephantA_10 water ] -> cancel )\nlate [elephantA_10 log]->cancel\n[> elephantA_10 | wall]->cancel\n\n==============\nWINCONDITIONS\n==============\nall water on log\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 8\n\n.....................\n.....................\n..#################..\n..#.........#.....#..\n..#.....123.#..,..#..\n..#...12s45.#.....#..\n..#...678.9.##.#.##..\n..#.*.0.0.a.......#..\n..#...............#..\n..#################..\n.....................\n.....................\n\nmessage What a good elephant!\n\nmessage level 2 of 8\n\n...............\n...............\n..........###..\n..#########,#..\n..#.........#..\n..#...123..##..\n..#.12s45..#...\n..#.678.9..#...\n..#.0.0.a*.#...\n..#........#...\n..##########...\n...............\n...............\n\nmessage I'm so proud of you elephant!\n\nmessage level 3 of 8\n\n................\n................\n..############..\n..#,.........#..\n..#########..#..\n...#.........#..\n...#...123...#..\n...#.12s45...#..\n...#.678.9.*.#..\n...#.0.0.a...#..\n...#.........#..\n...###########..\n................\n................\n\n(I don't like this level\n.................\n.................\n###############..\n#.............#..\n#.............#..\n#..123........#..\n#12s45***.....#..\n#678.9###.....#..\n#0.0.a,,,.....#..\n###############..)\n\n\nmessage How did you ever think of doing that, elephant?!\n\nmessage level 4 of 8\n\n...................\n...................\n..###############..\n..#.........#...#..\n..#...123.#...#.#..\n..#.12s45...#...#..\n..#.678.9.*.#...#..\n..#.0.0.a...#...#..\n..#.........#...#..\n..##.#.######.,.#..\n..#.............#..\n..###############..\n...................\n...................\n\nmessage I was not expecting that. Splendid work, elephant!\n\nmessage level 5 of 8\n\n...................\n...................\n..###############..\n..#..123........#..\n..#12s45........#..\n..#678.9........#..\n..#0.0.a*.*.....#..\n..#..#..###..#..#..\n..#.....,.,.....#..\n..###############..\n...................\n...................\n\n\nmessage How did you ever think of doing that, elephant?!\n\n\nmessage level 6 of 8\n\n(Difficulty 5843 I'm ok with this level - nice cyclish - recommend to include)\n...;;;;;;;;\n...;;;;;;;;\n..#######;;\n..#...,.#;;\n..#..123#;;\n..#12s45#;;\n..#678,9#;;\n..#0*0*a#;;\n..#.....#;;\n..#######;;\n...;;;;;;;;\n...;;;;;;;;\n\n\n\nmessage You really helped us out of a tight spot. Thanks, elephant!\n\n\nmessage level 7 of 8\n\n......................\n......................\n..##################..\n..#............#...#..\n..#...123....#.....#..\n..#.12s45......#...#..\n..#.678.9.*.#..#...#..\n..#.0.0.a......#...#..\n..#..........#.....#..\n..##.#.#########.,.#..\n..#................#..\n..#########........#..\n..........#........#..\n..........#........#..\n..........##########..\n......................\n......................\n\nmessage You're one dextrous elephant!\n\nmessage level 8 of 8\n\n;;;;;;;;;;;\n;;;;;;;;;;;\n;;#######;;\n;;#,....#;;\n;;#.*123#;;\n;;#12s45#;;\n;;#678#9#;;\n;;#0,0.a#;;\n;;#...*.#;;\n;;#######;;\n;;;;;;;;;;;\n;;;;;;;;;;;\n\nmessage Congratulations! You are the best elephant. And that's saying a lot!\n\n(\n(LEVELCAT:pleasing to solve)\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#,.123#;\n#12s45#;\n#678*9#;\n#0*0,a#;\n#.*..,#;\n#######;\n\n\n\n(kinda nice but no)\n;;;;;;;;\n;;;;;;;;\n#######;\n#..123#;\n#12s45#;\n#678@9#;\n#0*0@a#;\n#@@,@@#;\n#######;\n\n(sovling this level I just felt i missed something stupid)\n;;;;;;;;\n;;;;;;;;\n#######;\n#,.123#;\n#12s45#;\n#678@9#;\n#0.0*a#;\n#.....#;\n#######;\n\n(meh)\n;;;;;;;;\n;;;;;;;;\n#######;\n#.,123#;\n#12s45#;\n#678*9#;\n#0*0,a#;\n#.....#;\n#######;\n\n\n\n;;;;;;;;;;\n;;;;;;;;;;\n;#######;;\n##.....##;\n#...123.#;\n#.12s45.#;\n#.678.9.#;\n#.0.0.a.#;\n##.....##;\n;#######;;\n\n\n;;;;;;;;;\n;;;;;;;;;\n########;\n#...123#;\n#.12s45#;\n#.678.9#;\n#.0.0.a#;\n##.....#;\n;#######;\n\n;;;;;;;;;\n;;;;;;;;;\n########.\n#..123.#.\n#12s45.#.\n#678.9.#.\n#0.0.a.#.\n########.\n\n\n;;;;;;;;;\n;;;;;;;;;\n########.\n#...123#.\n#.12s45#.\n#.678.9#.\n#.0.0.a#.\n########.\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#.....#;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#######;\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#.....#;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#.....#;\n#######;\n\n(kinda like this level, needs to to be dextrous - next level better though)\n;;;;;;;;\n;;;;;;;;\n#######;\n#.,...#;\n#..123#;\n#12s45#;\n#678#9#;\n#0@0.a#;\n#....*#;\n#######;\n\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#.....#;\n#######;\n\n(difficulty 24828)\n\n.;;;;;;;\n.;;;;;;;\n#######;\n#..,..#;\n#..123#;\n#12s45#;\n#678*9#;\n#0.0,a#;\n#....*#;\n#######;\n\n\n(Difficulty 5843)\n.;;;;;;;\n.;;;;;;;\n#######;\n#...,.#;\n#..123#;\n#12s45#;\n#678,9#;\n#0*0*a#;\n#.....#;\n#######;\n\n\n\n(Difficulty 5843 I'm ok with this level - nice cyclish)\n.;;;;;;;\n.;;;;;;;\n#######;\n#...,.#;\n#..123#;\n#12s45#;\n#678,9#;\n#0*0*a#;\n#.....#;\n#######;\n\n\n(not as hard as other ones of this kind, but I was agble to solve it ^^ and it's not so bad? maybe not conceptual enough)\n.;;;;;;;\n.;;;;;;;\n#######;\n#...,.#;\n#.,123#;\n#12s45#;\n#678.9#;\n#0*0*a#;\n#.....#;\n#######;\n\n\n\n(difficulty ~5k - a bit too tricky?)\n.;;;;;;;\n.;;;;;;;\n#######;\n#.,...#;\n#,.123#;\n#12s45#;\n#678*9#;\n#0.0*a#;\n#.....#;\n#######;\n\n\n(silly + not hard, but maybe ok for a final level?)\n;;;;;;;;\n;;;;;;;;\n#######;\n#,*123#;\n#12s45#;\n#678@9#;\n#0@0.a#;\n#######;\n\n\n.;;;;;;;\n.;;;;;;;\n#######;\n#...,.#;\n#.,123#;\n#12s45#;\n#678.9#;\n#0*0*a#;\n#.....#;\n#######;\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#.....#;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#.....#;\n#######;\n\n;;;;;;;;;;\n;;;;;;;;;;\n#########;\n#.......#;\n#...123.#;\n#.12s45.#;\n#.678.9.#;\n#.0.0.a.#;\n#.......#;\n#########;\n\n\n(mildly satisfying but easy?)\n;;;;;;;;;;\n;;;;;;;;;;\n#########;\n#..#...##;\n##.#123,#;\n#.12s45##;\n#.678,9.#;\n#.0*0.a.#;\n#....*..#;\n#########;\n\n(kinda a nice trick but...also not so interesting)\n;;;;;;;;;\n;;;;;;;;;\n########;\n#,.....#;\n#,.123.#;\n#12s45.#;\n#678*9.#;\n#0*0.a.#;\n########;\n\n\n;;;;;;;;;;\n;;;;;;;;;;\n#########;\n#...123.#;\n#.12s45.#;\n#.678.9.#;\n#.0.0.a.#;\n#########;\n\n\n;;;;;;;;\n;;;;;;;;\n#######;\n#..123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#######;\n\n\n;;;;;;;;\n;;;;;;;;\n;;#####;\n###123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#######;\n\n\n;;;;;;;;\n;;;;;;;;\n;;#####;\n###123#;\n#12s45#;\n#678.9#;\n#0.0.a#;\n#######;\n\n\n;;;;;;;;;;\n;;;;;;;;;;\n#########;\n#.......#;\n#...123.#;\n#.12s45.#;\n#.678.9.#;\n#.0.0.a.#;\n#.......#;\n#########;\n\n;;;;;;;;;;;;;;;;;;\n;;;;;;;;;;;;;;;;;;\n#################;\n#.....123.......#;\n#...12s45.......#;\n#...678.9.......#;\n#...0.0.a.......#;\n#################;\n\n;;;;;;;;;;;;;;;;;;\n;;;;;;;;;;;;;;;;;;\n#################;\n#...............#;\n#.....123.......#;\n#...12s45.......#;\n#...678.9.......#;\n#...0.0.a.......#;\n#...............#;\n#################;\n\n.....................\n.....................\n..#################..\n..#.........#.....#..\n..#.....123.#..,..#..\n..#...12s45.#.....#..\n..#...678.9.##.#.##..\n..#.*.0.0.a.......#..\n..#...............#..\n..#################..\n.....................\n.....................\n)\n\n",[2,3,0,0,0,3,2,1,2,0,3,3,2,4,1,0,3,3,3,3,2,3,3,3,3,2,2,0,0,0,1,0,0,3,3,4,0,4,0,1,1,2,3,2,3],"background: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,background wall:1,1,1,1,1,1,1,1,\n1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,\n0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,\n0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,\n0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,\n0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,\n0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,\n0,0,0,1,0,1,1,1,1,0,0,0,0,1,background elephanta_1:2,background elephanta_6:3,background elephanta_10:4,0,0,0,1,0,\n0,0,0,1,0,0,0,0,1,background elephanta_2:5,background elephanta_7:6,0,1,0,0,1,0,0,0,0,1,0,\n0,0,0,background elephanta_1 wall:7,background elephanta_12:8,background elephanta_8 wall:9,4,0,0,1,1,0,0,0,0,1,0,0,0,0,background elephanta_2 wall:10,background elephanta_4:11,\n0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,background elephanta_3 wall:12,background elephanta_5 wall:13,background elephanta_9:14,background elephanta_11 wall:15,1,1,0,\n1,0,0,0,0,1,0,0,0,0,1,0,background log:16,0,0,0,0,0,0,0,0,0,\n1,0,0,0,0,1,0,0,0,0,0,0,background water:17,0,0,0,0,1,0,0,0,0,\n1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,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,\n",19,"1627893532893.2812"] ], [ - "Pocket Gopher: Root-Shoot Nibbler", - ["title Pocket Gopher: Root-Shoot Nibbler\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color darkblue\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen darkblue\n00000\n00000\n00000\n00000\n00000\n\nnothingness ,\nblack\n\nfallen\nred\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nWall\ndarkred darkblue\n00000\n00010\n00000\n01000\n00000\n\n\nPlayer\nbrown black orange yellow \n.000.\n01010\n00100\n00300\n0...0\n\nPlayer_sad\nbrown black orange yellow blue\n.000.\n00000\n01010\n40100\n0...0\n\n\nvine_empty i\ngreen lightgreen\n.....\n..1..\n.101.\n..1..\n.....\n\n\n\nvine_n 1\ngreen lightgreen\n.101.\n.101.\n.101.\n..1..\n.....\n\nvine_s 2\ngreen lightgreen\n.....\n..1..\n.101.\n.101.\n.101.\n\nvine_e 3\ngreen lightgreen\n.....\n.1111\n10000\n.1111\n.....\n\n\nvine_w 4\ngreen lightgreen\n.....\n1111.\n00001\n1111.\n.....\n\nvine_ns 5\ngreen lightgreen\n.101.\n.101.\n.101.\n.101.\n.101.\n\nvine_ne 6\ngreen lightgreen\n.101.\n.1011\n.1000\n..111\n.....\n\n\nvine_nw 7\ngreen lightgreen\n.101.\n1101.\n0001.\n111..\n.....\n\n\nvine_se 8 \ngreen lightgreen\n.....\n..111\n.1000\n.1011\n.101.\n\n\nvine_sw 9\ngreen lightgreen\n.....\n111..\n0001.\n1101.\n.101.\n\n\nvine_ew 0\ngreen lightgreen\n.....\n11111\n00000\n11111\n.....\n\n\nvine_nse q\ngreen lightgreen\n.101.\n.1011\n.1000\n.1011\n.101.\n\n\nvine_nsw r\ngreen lightgreen\n.101.\n1101.\n0001.\n1101.\n.101.\n\nvine_new t\ngreen lightgreen\n.101.\n11011\n00000\n11111\n.....\n\nvine_sew y\ngreen lightgreen\n.....\n11111\n00000\n11011\n.101.\n\n\nvine_nsew u\ngreen lightgreen\n.101.\n11011\n00000\n11011\n.101.\n\nn\ntransparent\n\ns\ntransparent\n\ne\ntransparent\n\nw\ntransparent\n\nspawn\ntransparent\n\n=======\nLEGEND\n=======\n\nvine_end = vine_n or vine_s or vine_e or vine_w or vine_empty\nvine_body = vine_ns or vine_ne or vine_nw or vine_se or vine_sw or vine_ew or vine_nse or vine_nsw or vine_new or vine_sew or vine_nsew\n\n\no = nothingness and vine_n\nb = nothingness and vine_s\na = nothingness and vine_e\nd = nothingness and vine_w\nf = nothingness and vine_ns\ng = nothingness and vine_ne\nh = nothingness and vine_nw\nj = nothingness and vine_se\n- = nothingness and vine_sw\nk = nothingness and vine_ew\nl = nothingness and vine_nse\nz = nothingness and vine_nsw\nx = nothingness and vine_new\nc = nothingness and vine_sew\nm = nothingness and vine_nsew\n\nvine = vine_body or vine_end\n\nplant = vine_body or vine_end or Player\n\ndir = n or s or e or w\n. = Background\n# = Wall\nP = Player\n\noccupancy = wall or plant\n\n=======\nSOUNDS\n=======\n\nsfx0 86710504 (eat)\nsfx1 73200307 (move vine)\nendlevel 52752109\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nnothingness\nPlayer, Wall, vine,Player_sad\nn\ns\ne\nw\nspawn\nfallen\n\n======\nRULES\n======\n\n(don't forget about the case where you're chasing your tail)\n( [ > player | vine ] -> cancel )\n\n[ moving player ] -> again\n\n[vine_n]->[vine_n n]\n[vine_s]->[vine_s s]\n[vine_e]->[vine_e e]\n[vine_w]->[vine_w w]\n\n[vine_ns]->[vine_ns n s]\n[vine_ne]->[vine_ne n e]\n[vine_nw]->[vine_nw n w]\n\n[vine_se]->[vine_se s e]\n[vine_sw]->[vine_sw s w]\n\n[vine_ew]->[vine_ew e w]\n\n[vine_nse]->[vine_nse n s e]\n[vine_nsw]->[vine_nsw n s w]\n[vine_new]->[vine_new n e w]\n[vine_sew]->[vine_sew s e w]\n\n[vine_nsew]->[vine_nsew n s e w]\n\n[ > player | vine_end ] -> [ > player | no n no s no e no w ] sfx0 (munch)\n\n[ > player | vine_body ] -> [ > player | > vine_body ] sfx1\n\n[ > vine | vine ] -> [ > vine | > vine ]\n+ up [ n moving vine | vine ] -> [ n moving vine | moving vine ]\n+ down [ s moving vine | vine ] -> [ s moving vine | moving vine ]\n+ left [ w moving vine | vine ] -> [ w moving vine | moving vine ]\n+ right [ e moving vine | vine ] -> [ e moving vine | moving vine ]\n\n[ > vine | wall ] -> cancel\n[ > player | wall ] -> cancel\n[ > player | nothingness ] -> cancel\n\nup [ n | no s ] -> [ spawn | ]\ndown [ s | no n ] -> [ spawn | ]\nleft [ w | no e ] -> [ spawn | ]\nright [ e | no w ] -> [ spawn | ]\n\n[ n s e spawn ] -> [ vine_nse ]\n[ n s w spawn ] -> [ vine_nsw ]\n[ n e w spawn ] -> [ vine_new ]\n[ s e w spawn ] -> [ vine_sew ]\n\n[ n s spawn ] -> [ vine_ns ]\n[ n e spawn ] -> [ vine_ne ]\n[ n w spawn ] -> [ vine_nw ]\n\n[ s e spawn ] -> [ vine_se ]\n[ s w spawn ] -> [ vine_sw ]\n\n[ e w spawn ] -> [ vine_ew ]\n\n[ n spawn ] -> [ vine_n ]\n[ s spawn ] -> [ vine_s ]\n[ e spawn ] -> [ vine_e ]\n[ w spawn ] -> [ vine_w ]\n\n[ spawn ] -> [ vine_empty ]\n\n[dir]->[]\n\nlate [vine_n]->[vine_n n]\nlate [vine_s]->[vine_s s]\nlate [vine_e]->[vine_e e]\nlate [vine_w]->[vine_w w]\n\nlate [vine_ns]->[vine_ns n s]\nlate [vine_ne]->[vine_ne n e]\nlate [vine_nw]->[vine_nw n w]\n\nlate [vine_se]->[vine_se s e]\nlate [vine_sw]->[vine_sw s w]\n\nlate [vine_ew]->[vine_ew e w]\n\nlate [vine_nse]->[vine_nse n s e]\nlate [vine_nsw]->[vine_nsw n s w]\nlate [vine_new]->[vine_new n e w]\nlate [vine_sew]->[vine_sew s e w]\n\nlate [vine_nsew]->[vine_nsew n s e w]\n\nlate [ nothingness vine ] -> [nothingness vine fallen ]\n\nlate up [ n vine no fallen | vine ] -> [ n vine | no fallen vine ]\n+ late down [ s vine no fallen | vine ] -> [ s vine | no fallen vine ]\n+ late left [ w vine no fallen | vine ] -> [ w vine | no fallen vine ]\n+ late right [ e vine no fallen | vine ] -> [ e vine | no fallen vine ]\n\nlate [dir]->[]\n\nlate [fallen] [player]->[fallen][Player_sad]\n==============\nWINCONDITIONS\n==============\nno vine\n\n=======\nLEVELS\n=======\n\n\n\nmessage Level 1 of 5\n\nmessage I like eating roots, but only from the end.\n\n#############\n#...........#\n#....p......#\n#...........#\n#.2892.,,,,,#\n#.5555.,89..#\n#.6767.,11..#\n#......,....#\n#......,....#\n#############\n\n\nmessage Level 2 of 5\n\nmessage who starts eating roots from the middle? That's ridiculous.\n\n###########\n#.........#\n#.........#\n#....2....#\n#...amd...#\n#...,o,...#\n#...,b,...#\n#...amd...#\n#....1..2.#\n#......37.#\n#........p#\n###########\n\n\nmessage Level 3 of 5\nmessage Would you eat a banana from the middle? Why would you eat roots from the middle, then?!\n\n###########\n#.........#\n#.........#\n#...304...#\n#.........#\n#.2.222.2.#\n#.5.fff.5.#\n#.1.111.1.#\n#.........#\n#.p.304...#\n#.........#\n#.........#\n###########\n\n\nmessage Level 4 of 5\nmessage Would you read a book from the middle? You wouldn't; that's just stupid!\n\n#########\n#.......#\n#.,,,,,.#\n#.,jk-,.#\n#.,fbf,.#\n#.,fgh,.#\n#..1....#\n#....804#\n#....5p.#\n#....1..#\n#########\n\n\nmessage Level 5 of 5\nmessage Would you like to be born middle-aged and grow younger and older at the same time? NO YOU WOULDN'T!\n\n###########\n#.........#\n#.........#\n#...304...#\n#.........#\n#.2.bbb.2.#\n#.5.fff.5.#\n#.1.111.1.#\n#.........#\n#.p.304...#\n#.........#\n#.........#\n###########\n\nmessage Congratulations! You reached the end of the game, which is the best part!\n\n(\n\n###########\n#.........#\n#.........#\n#....2....#\n#...amd...#\n#...,o,...#\n#...,b,...#\n#...amd...#\n#....1..2.#\n#......37.#\n#........p#\n###########\n\n#############\n#...........#\n#...,,,bjd,.#\n#...ba-lhb,.#\n#.39fjzfjh,.#\n#..6mzgxz,,.#\n#..3hlcdo,,.#\n#.p.aho,,,,.#\n#...........#\n#############\n\n\n###########\n#.........#\n#.........#\n#..84.39..#\n#..1...1..#\n#...bbb...#\n#...fff...#\n#...111...#\n#..2...2..#\n#..64.37..#\n#....p....#\n#.........#\n###########\n\n#####################\n#...................#\n#...................#\n#.......j4.3-.......#\n#.......1...1.......#\n#...................#\n#.......2...2.......#\n#.......g4.3h.......#\n#...................#\n#...................#\n#.........2.........#\n#.........5.........#\n#.......30u04.......#\n#.........5.........#\n#.......p.1.........#\n#...................#\n#####################\n\n#####################\n#...................#\n#.......,,.,,.......#\n#......,j4.3-,......#\n#......,1...1,......#\n#...................#\n#......,2...2,......#\n#......,g4.3h,......#\n#.......,,.,,.......#\n#...................#\n#.........2.........#\n#.........5.........#\n#.......30u04.......#\n#.........5.........#\n#.......p.1.........#\n#...................#\n#####################\n\n##################\n#...........,....#\n#...........,....#\n#...........,....#\n#...........,....#\n#.......2...,....#e\n#......3u4..,....#\n#..309..1...,....#\n#....5......,..34#\n#..p.1..2...,,,.,#\n#......3u4.....,.#\n#.......1........#\n#................#\n#................#\n##################\n\n\n\n###############################################\n#.......................,...............,.....#\n#.......................,...............,.....#\n#......................2................,.....#\n#.....................p5.2..............,.....#\n#......................60780004.........,.....#\n#.......................,.5.............,.....#\n#.......................,.5.............,.....#\n#.......................,.5.............,.....#\n#.......................,.6000484.....39,.....#\n#.......................,......5.......5a4....#\n#.......................,......5.......5,.....#\n#.......................,......5.......5a4....#\n#.......................,......5.......5,.....#\n#.......................,......5.......5a4....#\n#.......................,......5.......5,.....#\n#.......................,......5.......5a4....#\n#.......................,......600000007,.....#\n#.......................,...............,.....#\n#.......................,,,,,,,,,,,,,,,,,.....#\n#.............................................#\n###############################################\n\n\n)\n", [0, 4, 2, 2, 1, 0, 0, 0, 1, 1], "background wall:0,0,0,0,0,0,0,0,0,\n0,0,0,background:1,1,1,1,1,1,\n1,1,1,0,0,1,background nothingness:2,2,2,\n2,1,1,1,1,0,0,1,2,\nbackground fallen nothingness vine_se:3,background fallen nothingness vine_ns:4,background fallen nothingness vine_n:5,background player_sad:6,1,1,1,0,0,\n1,2,background fallen nothingness vine_ew:7,background fallen nothingness vine_s:8,background fallen nothingness vine_ne:9,1,1,1,1,\n0,0,1,2,background fallen nothingness vine_sw:10,4,background fallen nothingness vine_nw:11,1,1,\n1,1,0,0,1,2,2,2,2,\nbackground vine_e:12,1,1,1,0,0,1,1,1,\n1,1,background vine_w:13,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,\n", 11, "1627893552932.8503"] + "Pocket Gopher: Root-Shoot Nibbler", + ["title Pocket Gopher: Root-Shoot Nibbler\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color darkblue\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen darkblue\n00000\n00000\n00000\n00000\n00000\n\nnothingness ,\nblack\n\nfallen\nred\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nWall\ndarkred darkblue\n00000\n00010\n00000\n01000\n00000\n\n\nPlayer\nbrown black orange yellow \n.000.\n01010\n00100\n00300\n0...0\n\nPlayer_sad\nbrown black orange yellow blue\n.000.\n00000\n01010\n40100\n0...0\n\n\nvine_empty i\ngreen lightgreen\n.....\n..1..\n.101.\n..1..\n.....\n\n\n\nvine_n 1\ngreen lightgreen\n.101.\n.101.\n.101.\n..1..\n.....\n\nvine_s 2\ngreen lightgreen\n.....\n..1..\n.101.\n.101.\n.101.\n\nvine_e 3\ngreen lightgreen\n.....\n.1111\n10000\n.1111\n.....\n\n\nvine_w 4\ngreen lightgreen\n.....\n1111.\n00001\n1111.\n.....\n\nvine_ns 5\ngreen lightgreen\n.101.\n.101.\n.101.\n.101.\n.101.\n\nvine_ne 6\ngreen lightgreen\n.101.\n.1011\n.1000\n..111\n.....\n\n\nvine_nw 7\ngreen lightgreen\n.101.\n1101.\n0001.\n111..\n.....\n\n\nvine_se 8 \ngreen lightgreen\n.....\n..111\n.1000\n.1011\n.101.\n\n\nvine_sw 9\ngreen lightgreen\n.....\n111..\n0001.\n1101.\n.101.\n\n\nvine_ew 0\ngreen lightgreen\n.....\n11111\n00000\n11111\n.....\n\n\nvine_nse q\ngreen lightgreen\n.101.\n.1011\n.1000\n.1011\n.101.\n\n\nvine_nsw r\ngreen lightgreen\n.101.\n1101.\n0001.\n1101.\n.101.\n\nvine_new t\ngreen lightgreen\n.101.\n11011\n00000\n11111\n.....\n\nvine_sew y\ngreen lightgreen\n.....\n11111\n00000\n11011\n.101.\n\n\nvine_nsew u\ngreen lightgreen\n.101.\n11011\n00000\n11011\n.101.\n\nn\ntransparent\n\ns\ntransparent\n\ne\ntransparent\n\nw\ntransparent\n\nspawn\ntransparent\n\n=======\nLEGEND\n=======\n\nvine_end = vine_n or vine_s or vine_e or vine_w or vine_empty\nvine_body = vine_ns or vine_ne or vine_nw or vine_se or vine_sw or vine_ew or vine_nse or vine_nsw or vine_new or vine_sew or vine_nsew\n\n\no = nothingness and vine_n\nb = nothingness and vine_s\na = nothingness and vine_e\nd = nothingness and vine_w\nf = nothingness and vine_ns\ng = nothingness and vine_ne\nh = nothingness and vine_nw\nj = nothingness and vine_se\n- = nothingness and vine_sw\nk = nothingness and vine_ew\nl = nothingness and vine_nse\nz = nothingness and vine_nsw\nx = nothingness and vine_new\nc = nothingness and vine_sew\nm = nothingness and vine_nsew\n\nvine = vine_body or vine_end\n\nplant = vine_body or vine_end or Player\n\ndir = n or s or e or w\n. = Background\n# = Wall\nP = Player\n\noccupancy = wall or plant\n\n=======\nSOUNDS\n=======\n\nsfx0 86710504 (eat)\nsfx1 73200307 (move vine)\nendlevel 52752109\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nnothingness\nPlayer, Wall, vine,Player_sad\nn\ns\ne\nw\nspawn\nfallen\n\n======\nRULES\n======\n\n(don't forget about the case where you're chasing your tail)\n( [ > player | vine ] -> cancel )\n\n[ moving player ] -> again\n\n[vine_n]->[vine_n n]\n[vine_s]->[vine_s s]\n[vine_e]->[vine_e e]\n[vine_w]->[vine_w w]\n\n[vine_ns]->[vine_ns n s]\n[vine_ne]->[vine_ne n e]\n[vine_nw]->[vine_nw n w]\n\n[vine_se]->[vine_se s e]\n[vine_sw]->[vine_sw s w]\n\n[vine_ew]->[vine_ew e w]\n\n[vine_nse]->[vine_nse n s e]\n[vine_nsw]->[vine_nsw n s w]\n[vine_new]->[vine_new n e w]\n[vine_sew]->[vine_sew s e w]\n\n[vine_nsew]->[vine_nsew n s e w]\n\n[ > player | vine_end ] -> [ > player | no n no s no e no w ] sfx0 (munch)\n\n[ > player | vine_body ] -> [ > player | > vine_body ] sfx1\n\n[ > vine | vine ] -> [ > vine | > vine ]\n+ up [ n moving vine | vine ] -> [ n moving vine | moving vine ]\n+ down [ s moving vine | vine ] -> [ s moving vine | moving vine ]\n+ left [ w moving vine | vine ] -> [ w moving vine | moving vine ]\n+ right [ e moving vine | vine ] -> [ e moving vine | moving vine ]\n\n[ > vine | wall ] -> cancel\n[ > player | wall ] -> cancel\n[ > player | nothingness ] -> cancel\n\nup [ n | no s ] -> [ spawn | ]\ndown [ s | no n ] -> [ spawn | ]\nleft [ w | no e ] -> [ spawn | ]\nright [ e | no w ] -> [ spawn | ]\n\n[ n s e spawn ] -> [ vine_nse ]\n[ n s w spawn ] -> [ vine_nsw ]\n[ n e w spawn ] -> [ vine_new ]\n[ s e w spawn ] -> [ vine_sew ]\n\n[ n s spawn ] -> [ vine_ns ]\n[ n e spawn ] -> [ vine_ne ]\n[ n w spawn ] -> [ vine_nw ]\n\n[ s e spawn ] -> [ vine_se ]\n[ s w spawn ] -> [ vine_sw ]\n\n[ e w spawn ] -> [ vine_ew ]\n\n[ n spawn ] -> [ vine_n ]\n[ s spawn ] -> [ vine_s ]\n[ e spawn ] -> [ vine_e ]\n[ w spawn ] -> [ vine_w ]\n\n[ spawn ] -> [ vine_empty ]\n\n[dir]->[]\n\nlate [vine_n]->[vine_n n]\nlate [vine_s]->[vine_s s]\nlate [vine_e]->[vine_e e]\nlate [vine_w]->[vine_w w]\n\nlate [vine_ns]->[vine_ns n s]\nlate [vine_ne]->[vine_ne n e]\nlate [vine_nw]->[vine_nw n w]\n\nlate [vine_se]->[vine_se s e]\nlate [vine_sw]->[vine_sw s w]\n\nlate [vine_ew]->[vine_ew e w]\n\nlate [vine_nse]->[vine_nse n s e]\nlate [vine_nsw]->[vine_nsw n s w]\nlate [vine_new]->[vine_new n e w]\nlate [vine_sew]->[vine_sew s e w]\n\nlate [vine_nsew]->[vine_nsew n s e w]\n\nlate [ nothingness vine ] -> [nothingness vine fallen ]\n\nlate up [ n vine no fallen | vine ] -> [ n vine | no fallen vine ]\n+ late down [ s vine no fallen | vine ] -> [ s vine | no fallen vine ]\n+ late left [ w vine no fallen | vine ] -> [ w vine | no fallen vine ]\n+ late right [ e vine no fallen | vine ] -> [ e vine | no fallen vine ]\n\nlate [dir]->[]\n\nlate [fallen] [player]->[fallen][Player_sad]\n==============\nWINCONDITIONS\n==============\nno vine\n\n=======\nLEVELS\n=======\n\n\n\nmessage Level 1 of 5\n\nmessage I like eating roots, but only from the end.\n\n#############\n#...........#\n#....p......#\n#...........#\n#.2892.,,,,,#\n#.5555.,89..#\n#.6767.,11..#\n#......,....#\n#......,....#\n#############\n\n\nmessage Level 2 of 5\n\nmessage who starts eating roots from the middle? That's ridiculous.\n\n###########\n#.........#\n#.........#\n#....2....#\n#...amd...#\n#...,o,...#\n#...,b,...#\n#...amd...#\n#....1..2.#\n#......37.#\n#........p#\n###########\n\n\nmessage Level 3 of 5\nmessage Would you eat a banana from the middle? Why would you eat roots from the middle, then?!\n\n###########\n#.........#\n#.........#\n#...304...#\n#.........#\n#.2.222.2.#\n#.5.fff.5.#\n#.1.111.1.#\n#.........#\n#.p.304...#\n#.........#\n#.........#\n###########\n\n\nmessage Level 4 of 5\nmessage Would you read a book from the middle? You wouldn't; that's just stupid!\n\n#########\n#.......#\n#.,,,,,.#\n#.,jk-,.#\n#.,fbf,.#\n#.,fgh,.#\n#..1....#\n#....804#\n#....5p.#\n#....1..#\n#########\n\n\nmessage Level 5 of 5\nmessage Would you like to be born middle-aged and grow younger and older at the same time? NO YOU WOULDN'T!\n\n###########\n#.........#\n#.........#\n#...304...#\n#.........#\n#.2.bbb.2.#\n#.5.fff.5.#\n#.1.111.1.#\n#.........#\n#.p.304...#\n#.........#\n#.........#\n###########\n\nmessage Congratulations! You reached the end of the game, which is the best part!\n\n(\n\n###########\n#.........#\n#.........#\n#....2....#\n#...amd...#\n#...,o,...#\n#...,b,...#\n#...amd...#\n#....1..2.#\n#......37.#\n#........p#\n###########\n\n#############\n#...........#\n#...,,,bjd,.#\n#...ba-lhb,.#\n#.39fjzfjh,.#\n#..6mzgxz,,.#\n#..3hlcdo,,.#\n#.p.aho,,,,.#\n#...........#\n#############\n\n\n###########\n#.........#\n#.........#\n#..84.39..#\n#..1...1..#\n#...bbb...#\n#...fff...#\n#...111...#\n#..2...2..#\n#..64.37..#\n#....p....#\n#.........#\n###########\n\n#####################\n#...................#\n#...................#\n#.......j4.3-.......#\n#.......1...1.......#\n#...................#\n#.......2...2.......#\n#.......g4.3h.......#\n#...................#\n#...................#\n#.........2.........#\n#.........5.........#\n#.......30u04.......#\n#.........5.........#\n#.......p.1.........#\n#...................#\n#####################\n\n#####################\n#...................#\n#.......,,.,,.......#\n#......,j4.3-,......#\n#......,1...1,......#\n#...................#\n#......,2...2,......#\n#......,g4.3h,......#\n#.......,,.,,.......#\n#...................#\n#.........2.........#\n#.........5.........#\n#.......30u04.......#\n#.........5.........#\n#.......p.1.........#\n#...................#\n#####################\n\n##################\n#...........,....#\n#...........,....#\n#...........,....#\n#...........,....#\n#.......2...,....#e\n#......3u4..,....#\n#..309..1...,....#\n#....5......,..34#\n#..p.1..2...,,,.,#\n#......3u4.....,.#\n#.......1........#\n#................#\n#................#\n##################\n\n\n\n###############################################\n#.......................,...............,.....#\n#.......................,...............,.....#\n#......................2................,.....#\n#.....................p5.2..............,.....#\n#......................60780004.........,.....#\n#.......................,.5.............,.....#\n#.......................,.5.............,.....#\n#.......................,.5.............,.....#\n#.......................,.6000484.....39,.....#\n#.......................,......5.......5a4....#\n#.......................,......5.......5,.....#\n#.......................,......5.......5a4....#\n#.......................,......5.......5,.....#\n#.......................,......5.......5a4....#\n#.......................,......5.......5,.....#\n#.......................,......5.......5a4....#\n#.......................,......600000007,.....#\n#.......................,...............,.....#\n#.......................,,,,,,,,,,,,,,,,,.....#\n#.............................................#\n###############################################\n\n\n)\n",[0,4,2,2,1,0,0,0,1,1],"background wall:0,0,0,0,0,0,0,0,0,\n0,0,0,background:1,1,1,1,1,1,\n1,1,1,0,0,1,background nothingness:2,2,2,\n2,1,1,1,1,0,0,1,2,\nbackground fallen nothingness vine_se:3,background fallen nothingness vine_ns:4,background fallen nothingness vine_n:5,background player_sad:6,1,1,1,0,0,\n1,2,background fallen nothingness vine_ew:7,background fallen nothingness vine_s:8,background fallen nothingness vine_ne:9,1,1,1,1,\n0,0,1,2,background fallen nothingness vine_sw:10,4,background fallen nothingness vine_nw:11,1,1,\n1,1,0,0,1,2,2,2,2,\nbackground vine_e:12,1,1,1,0,0,1,1,1,\n1,1,background vine_w:13,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,\n",11,"1627893552932.8503"] ], [ - "North Wind Simple Sailboat Buoy Collection", - ["(MOVEMENT SHOULD BE DETERMINED BY TARGET DIRECTION not current one)\n\ntitle North Wind Simple Sailboat Buoy Collection\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #255474\ntext_color #caa786\n\nnorepeat_action\nrun_rules_on_level_start\nagain_interval 0.4\nrealtime_interval 1\n( debug )\n( verbose_logging )\n\nnoundo\n\n========\nOBJECTS\n========\n\nbuoy b\n#ac3232 #847e87\n.....\n..10.\n..1..\n..0..\n.000.\n\nBackground\n#5fcde4 #48bbd3\n00000\n00100\n01010\n10001\n00000\n\nland\n#37946e #25855e\n00000\n01000\n00000\n00010\n00000\n\npontoon1 t\n#8d614c #9e7650\n00000\n10101\n10101\n00000\n.0.0.\n\npontoon2 y\n#8d614c #9e7650\n00000\n01010\n01010\n00000\n.0.0.\n\npontoon3 u\n#8d614c #9e7650\n00000\n01110\n00000\n01110\n00000\n\npontoon4 i\n#8d614c #9e7650\n01110\n00000\n01110\n00000\n01110\n\n\npontoon5 o\n#8d614c #9e7650\n01110\n00000\n01110\n00000\n0...0\n\nmountain1\n#16724c\n....0\n...00\n..000\n.0000\n00.0.\n\nmountain2\n#16724c\n00000\n00000\n00000\n00000\n0.0.0\n\nmountain3\n#16724c\n0....\n00...\n000..\n0000.\n.0.00\n\nmountain4\n#16724c\n.....\n.....\n..0..\n.000.\n00000\n\ntree\n#37946e #8d614c #16724c\n00000\n00200\n02220\n00100\n00000\n\nmountain_blue1\n#306082\n00000\n00000\n00000\n00000\n.....\n\nmountain_blue2\n#306082 #9badb7\n....1\n...11\n..110\n.0000\n00000\n\nmountain_blue3\n#306082 #9badb7\n1....\n11...\n101..\n0000.\n00000\n\n\nrock\n#255474 #306082 #3f7296 #4e7ea1 \n..13.\n.0112\n00121\n01102\n.000.\n\n\ncoast_n\n#37946e #25855e #caa786\n22222\n.222.\n.....\n.....\n.....\n\ncoast_ne\n#37946e #25855e #caa786 #5fcde4\n22223\n.2222\n...22\n...22\n....2\n\ncoast_e\n#37946e #25855e #caa786\n....2\n...22\n...22\n...22\n....2\n\ncoast_se\n#37946e #25855e #caa786 #5fcde4\n....2\n....2\n...22\n.2222\n22223\n\ncoast_s\n#37946e #25855e #caa786\n.....\n.....\n.....\n.222.\n22222\n\ncoast_sw\n#37946e #25855e #caa786 #5fcde4\n2....\n22...\n22...\n2222.\n32222\n\ncoast_w\n#37946e #25855e #caa786\n2....\n22...\n22...\n22...\n2....\n\ncoast_nw\n#37946e #25855e #caa786 #5fcde4\n32222\n2222.\n22...\n22...\n2....\n\nhouse1\n#caa786 #8d614c #9e7650\n..000\n..000\n11111\n00000\n00020\n\nhouse2\n#caa786 #8d614c #9e7650\n.....\n.....\n.....\n...1.\n..111\n\nhouse3\n#caa786 #8d614c #9e7650\n.....\n11111\n12121\n00000\n00000\n\nhouse4\n#caa786 #8d614c #9e7650\n.....\n..1..\n.111.\n.000.\n.020.\n\n\n\n\nPlayer\n#639bff\n.....\n.....\n..0..\n.....\n.....\n\nheading_n\ntransparent\n\nheading_ne\ntransparent\n\nheading_e\ntransparent\n\nheading_se\ntransparent\n\nheading_s\ntransparent\n\nheading_sw\ntransparent\n\nheading_w\ntransparent\n\nheading_nw\ntransparent\n\nwreck_1\n#667598 #a9b5d0 brown #639bff #ffffff #d2dde3\n.000.\n01310\n01140\n0145.\n.0054\n\nwreck_2\n#667598 #a9b5d0 brown #639bff #ffffff #d2dde3\n.000.\n01110\n.1110\n..110\n.2.0.\n\nhull_n_bow\n#667598 #a9b5d0 brown\n.000.\n01110\n01110\n01110\n01110\n\nhull_n_stern\n#667598 #a9b5d0 brown\n01110\n01110\n.000.\n.....\n.....\n\nhull_n_rl\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n.2...\n2....\n\nhull_n_rc\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n..2..\n..2..\n\nhull_n_rr\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n...2.\n....2\n\nhull_ne_bow\n#667598 #a9b5d0 brown\n.00..\n0110.\n11110\n11110\n1110.\n\nhull_ne_stern\n#667598 #a9b5d0 brown\n.0111\n.0111\n..011\n...00\n.....\n\n\n\nhull_ne_rl\n#667598 #a9b5d0 brown\n.....\n.....\n22...\n.....\n.....\n\nhull_ne_rc\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n.2...\n2....\n\nhull_ne_rr\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n..2..\n..2..\n\nhull_e_bow\n#667598 #a9b5d0 brown\n0000.\n11110\n11110\n11110\n0000.\n\nhull_e_stern\n#667598 #a9b5d0 brown\n...00\n..011\n..011\n..011\n...00\n\nhull_e_rl\n#667598 #a9b5d0 brown\n2....\n.2...\n.....\n.....\n.....\n\nhull_e_rc\n#667598 #a9b5d0 brown\n.....\n.....\n22...\n.....\n.....\n\nhull_e_rr\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n.2...\n2....\n\n\n\nhull_se_bow\n#667598 #a9b5d0 brown\n1110.\n11110\n11110\n0110.\n.00..\n\nhull_se_stern\n#667598 #a9b5d0 brown\n.....\n...00\n..011\n.0111\n.0111\n\n\nhull_se_rl\n#667598 #a9b5d0 brown\n..2..\n..2..\n.....\n.....\n.....\n\nhull_se_rc\n#667598 #a9b5d0 brown\n2....\n.2...\n.....\n.....\n.....\n\nhull_se_rr\n#667598 #a9b5d0 brown\n.....\n.....\n22...\n.....\n.....\n\n\nhull_s_bow\n#667598 #a9b5d0 brown\n01110\n01110\n01110\n01110\n.000.\n\nhull_s_stern\n#667598 #a9b5d0 brown\n.....\n.....\n.000.\n01110\n01110\n\n\nhull_s_rl\n#667598 #a9b5d0 brown\n....2\n...2.\n.....\n.....\n.....\n\nhull_s_rc\n#667598 #a9b5d0 brown\n..2..\n..2..\n.....\n.....\n.....\n\nhull_s_rr\n#667598 #a9b5d0 brown\n2....\n.2...\n.....\n.....\n.....\n\nhull_sw_bow\n#667598 #a9b5d0 brown\n.0111\n01111\n01111\n.0110\n..00.\n\nhull_sw_stern\n#667598 #a9b5d0 brown\n.....\n00...\n110..\n1110.\n1110.\n\n\nhull_sw_rl\n#667598 #a9b5d0 brown\n.....\n.....\n...22\n.....\n.....\n\nhull_sw_rc\n#667598 #a9b5d0 brown\n....2\n...2.\n.....\n.....\n.....\n\nhull_sw_rr\n#667598 #a9b5d0 brown\n..2..\n..2..\n.....\n.....\n.....\n\nhull_w_bow\n#667598 #a9b5d0 brown\n.0000\n01111\n01111\n01111\n.0000\n\nhull_w_stern\n#667598 #a9b5d0 brown\n00...\n110..\n110..\n110..\n00...\n\n\n\nhull_w_rl\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n...2.\n....2\n\nhull_w_rc\n#667598 #a9b5d0 brown\n.....\n.....\n...22\n.....\n.....\n\nhull_w_rr\n#667598 #a9b5d0 brown\n....2\n...2.\n.....\n.....\n.....\n\n\nhull_nw_bow\n#667598 #a9b5d0 brown\n..00.\n.0110\n01111\n01111\n.0111\n\nhull_nw_stern\n#667598 #a9b5d0 brown\n1110.\n1110.\n110..\n00...\n.....\n\n\n\nhull_nw_rl\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n..2..\n..2..\n\nhull_nw_rc\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n...2.\n....2\n\nhull_nw_rr\n#667598 #a9b5d0 brown\n.....\n.....\n...22\n.....\n.....\n\n\nhull_diag_nw\n#667598 #a9b5d0 brown\n.....\n.....\n....0\n...01\n..011\n\n\nhull_diag_ne\n#667598 #a9b5d0 brown\n.....\n.....\n0....\n10...\n110..\n\n\nhull_diag_se\n#667598 #a9b5d0 brown\n110..\n10...\n0....\n.....\n.....\n\n\n\n\n\nhull_diag_sw\n#667598 #a9b5d0 brown\n..011\n...01\n....0\n.....\n.....\n\nsail_n_1\n#d2dde3 white\n..01.\n..1..\n.....\n.....\n.....\n\nsail_n_2\n#d2dde3 white\n.....\n.....\n..1..\n.10..\n..1..\n\n\nsail_ne_1\n#d2dde3 white\n....0\n...11\n.....\n.....\n.....\n\nsail_ne_2\n#d2dde3 white\n1....\n.....\n.....\n.....\n.....\n\nsail_ne_3\n#d2dde3 white\n.....\n.....\n..1..\n.01..\n01...\n\nsail_e_1\n#d2dde3 white\n.....\n.....\n...10\n....1\n.....\n\nsail_e_2\n#d2dde3 white\n.....\n.....\n001..\n11...\n.....\n\n\nsail_se_1\n#d2dde3 white\n.....\n.....\n.....\n...1.\n...10\n\nsail_se_2\n#d2dde3 white\n....1\n.....\n.....\n.....\n.....\n\nsail_se_3\n#d2dde3 white\n0....\n10...\n.11..\n.....\n.....\n\n\n\nsail_s_1\n#d2dde3 white\n.....\n.....\n.....\n..1..\n.10..\n\nsail_s_2\n#d2dde3 white\n..1..\n..01.\n..1..\n.....\n.....\n\n\nsail_sw_1\n#d2dde3 white\n.....\n.....\n.....\n.1...\n01...\n\nsail_sw_2\n#d2dde3 white\n1....\n.....\n.....\n.....\n.....\n\nsail_sw_3\n#d2dde3 white\n....0\n...01\n..11.\n.....\n.....\n\n\n\n\nsail_w_1\n#d2dde3 white\n.....\n.....\n01...\n1....\n.....\n\nsail_w_2\n#d2dde3 white\n.....\n.....\n..100\n...11\n.....\n\n\nsail_nw_1\n#d2dde3 white\n0....\n11...\n.....\n.....\n.....\n\nsail_nw_2\n#d2dde3 white\n....1\n.....\n.....\n.....\n.....\n\nsail_nw_3\n#d2dde3 white\n.....\n.....\n..1..\n..10.\n...10\n\nrudderdir_l\ntransparent\n\nrudderdir_c\ntransparent\n\nrudderdir_r\ntransparent\n\nsail_direction_n\ntransparent\n\nsail_direction_ne\ntransparent\n\nsail_direction_e\ntransparent\n\nsail_direction_se\ntransparent\n\nsail_direction_s\ntransparent\n\nsail_direction_sw\ntransparent\n\nsail_direction_w\ntransparent\n\nsail_direction_nw\ntransparent\n\ntension_0\ntransparent\n\ntension_1\ntransparent\n\ntension_2\ntransparent\n\nsail_side_right\ntransparent\n\nsail_side_left\ntransparent\n\ncordslack_0\ntransparent\n\ncordslack_1\ntransparent\n\ncordslack_2\ntransparent\n\nsailcord_n\n#d0535f\n..0..\n..0..\n..0..\n.....\n.....\n\nsailcord_ne\n#d0535f\n....0\n...0.\n..0..\n.....\n.....\n\nsailcord_e\n#d0535f\n.....\n.....\n..000\n.....\n.....\n\nsailcord_se\n#d0535f\n.....\n.....\n..0..\n...0.\n....0\n\nsailcord_s\n#d0535f\n.....\n.....\n..0..\n..0..\n..0..\n\n\n\nsailcord_sw\n#d0535f\n.....\n.....\n..0..\n.0...\n0....\n\n\nsailcord_w\n#d0535f\n.....\n.....\n000..\n.....\n.....\n\n\n\nsailcord_nw\n#d0535f\n0....\n.0...\n..0..\n.....\n.....\n\n\nsailcord_ns\n#d0535f\n..0..\n..0..\n..0..\n..0..\n..0..\n\nsailcord_ew\n#d0535f\n.....\n.....\n00000\n.....\n.....\n\nsailcord_cordslack_south_1\n#d0535f\n.....\n.....\n..0..\n.0.0.\n..0..\n\nsailcord_cordslack_south_2\n#d0535f\n.....\n.....\n.000.\n0...0\n.000.\n\nsailcord_cordslack_south_left\n#d0535f\n.....\n.....\n.....\n..0..\n...00\n\nsailcord_cordslack_south_right\n#d0535f\n.....\n.....\n.....\n..0..\n00...\n\nagaining\ntransparent\n\nmovement_n\ntransparent\n\nmovement_ne\ntransparent\n\nmovement_e\ntransparent\n\nmovement_se\ntransparent\n\nmovement_s\ntransparent\n\nmovement_sw\ntransparent\n\nmovement_w\ntransparent\n\nmovement_nw\ntransparent\n\nmovement_target\ntransparent\n\nhasturned\ntransparent\n\ndomove\ntransparent\n\n=======\nLEGEND\n=======\n\nhouse = house1 or house2 or house3 or house4\ncoast = coast_n or coast_ne or coast_e or coast_se or coast_s or coast_sw or coast_w or coast_nw\n\n\nsailcord = sailcord_n or sailcord_ne or sailcord_e or sailcord_Se or sailcord_s or sailcord_Sw or sailcord_w or sailcord_nw or sailcord_cordslack_south_1 or sailcord_cordslack_south_2 or sailcord_cordslack_south_left or sailcord_cordslack_south_right or sailcord_ns or sailcord_ew\n\nrudder = hull_n_rl or hull_n_rc or hull_n_rr or hull_ne_rl or hull_ne_rc or hull_ne_rr or hull_e_rl or hull_e_rc or hull_e_rr or hull_se_rl or hull_se_rc or hull_se_rr or hull_s_rl or hull_s_rc or hull_s_rr or hull_sw_rl or hull_sw_rc or hull_sw_rr or hull_w_rl or hull_w_rc or hull_w_rr or hull_nw_rl or hull_nw_rc or hull_nw_rr \n\nhull = hull_n_bow or hull_n_stern or hull_ne_bow or hull_ne_stern or hull_e_bow or hull_e_stern or hull_se_bow or hull_se_stern or hull_s_bow or hull_s_stern or hull_nw_bow or hull_nw_stern or hull_w_bow or hull_w_stern or hull_sw_bow or hull_sw_stern or hull_diag_ne or hull_diag_se or hull_diag_sw or hull_diag_nw\n\nhull_stern = hull_n_stern or hull_ne_stern or hull_e_stern or hull_se_stern or hull_s_stern or hull_sw_stern or hull_w_stern or hull_nw_stern \n\nheading = heading_n or heading_ne or heading_e or heading_se or heading_s or heading_sw or heading_w or heading_nw\n\nrudderdir = rudderdir_l or rudderdir_c or rudderdir_r\n\nsail = sail_n_1 or sail_n_2 or sail_ne_1 or sail_ne_2 or sail_ne_3 or sail_e_1 or sail_e_2 or sail_se_1 or sail_se_2 or sail_se_3 or sail_s_1 or sail_s_2 or sail_sw_1 or sail_sw_2 or sail_sw_3 or sail_w_1 or sail_w_2 or sail_nw_1 or sail_nw_2 or sail_nw_3 \n\nsail_direction = sail_direction_n or sail_direction_ne or sail_direction_e or sail_direction_se or sail_direction_s or sail_direction_sw or sail_direction_w or sail_direction_nw \n\nmountain = mountain1 or mountain2 or mountain3 or mountain4\nmountain_blue = mountain_blue1 or mountain_blue2 or mountain_blue3\npontoon = pontoon1 or pontoon2 or pontoon3 or pontoon4 or pontoon5\n\nobstacle = land or rock or pontoon\n\ntension = tension_0 or tension_1 or tension_2\nsail_side = sail_side_right or sail_side_left\ncordslack = cordslack_0 or cordslack_1 or cordslack_2\nmovement = movement_n or movement_ne or movement_e or movement_se or movement_s or movement_sw or movement_w or movement_nw\n\nwreck = wreck_1 or wreck_2\n\n. = Background\nP = Player and heading_e and rudderdir_c and tension_2 and sail_side_left\n\nw = land and coast_n\ne = land and coast_ne\nd = land and coast_e\nc = land and coast_se\nx = land and coast_s\nz = land and coast_sw\na = land and coast_w\nq = land and coast_nw\ns = land \nf = house1 and land\ng = house2 and land\nh = house3 and land\nj = house4 and land\nv = mountain1 and land\n, = mountain2 and land\nn = mountain3 and land\nm = mountain4 and land\nl = mountain_blue1 and land and mountain1\n; = mountain_blue1 and land and mountain3\n' = mountain_blue2 and land \n# = mountain_blue3 and land \n- = tree and land\nr = rock\n\n=======\nSOUNDS\n=======\nsfx0 64788707 (tight)\nsfx1 92037307 (tighten sail)\nsfx2 6725507(loose )\nsfx3 72434302 (boat crash)\nsfx5 94572100 (pick up buoy)\nsfx6 23834907(rudder change)\nstartlevel 51979900\nendgame 68419109\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nland, rock, pontoon\nmountain_blue, tree\ncoast, house,mountain, buoy\nrudder\nhull\nwreck\nPlayer\nsailcord\nsail\nheading\nrudderdir\nsail_direction\ntension\nsail_side\ncordslack\nagaining\nmovement\nmovement_target\nhasturned\ndomove\n\n======\nRULES\n======\n\n(start of autotiling code- comment out for release version)\n\n( up [ land no coast | no land ] -> [ land coast_n |] )\n( down [ land no coast | no land ] -> [ land coast_s |] )\n( right [ land no coast | no land ] -> [ land coast_e |] )\n( left [ land no coast | no land ] -> [ land coast_w |] )\n\n( right [coast_n | no land] -> [ coast_ne |] sfx6 )\n( left [coast_n | no land] -> [ coast_nw | ] sfx6 )\n\n( right [coast_s | no land] -> [ coast_se |] )\n( left [coast_s | no land] -> [ coast_sw | ] )\n\n(end of autotiling code- comment out for release version)\n\n\n[ stationary player ] -> [ stationary player againing ]\n( [ moving player ]-> again )\n\n[hull]->[]\n[rudder]->[]\n[sail]->[]\n[cordslack]->[]\n[sailcord]->[]\n\n\n\n( [ action player heading_n ]-> [ player heading_ne ] )\n( [ action player heading_ne ]-> [ player heading_e ] )\n( [ action player heading_e ]-> [ player heading_se ] )\n( [ action player heading_se ]-> [ player heading_s ] )\n( [ action player heading_s ]-> [ player heading_sw ] )\n( [ action player heading_sw ]-> [ player heading_w ] )\n( [ action player heading_w ]-> [ player heading_nw ] )\n( [ action player heading_nw ]-> [ player heading_n ] )\n\n\n[ up player tension_2 ] -> [ player tension_1 ] sfx1\n[ up player tension_1 ] -> [ player tension_0 ] sfx2\n[ down player tension_0 ] -> [ player tension_1 ] sfx1\n[ down player tension_1 ] -> [ player tension_2 ] sfx0\n\n(calculate sail direction / cord slack)\n\n[ heading_n tension_2 sail_side_left ] -> [ heading_n tension_2 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_n tension_2 sail_side_right ] -> [ heading_n tension_2 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_n tension_1 sail_side_left ] -> [ heading_n tension_1 sail_side_left sail_direction_s cordslack_1 ]\n[ heading_n tension_1 sail_side_right ] -> [ heading_n tension_1 sail_side_right sail_direction_s cordslack_1 ]\n[ heading_n tension_0 sail_side_left ] -> [ heading_n tension_0 sail_side_left sail_direction_s cordslack_2 ]\n[ heading_n tension_0 sail_side_right ] -> [ heading_n tension_0 sail_side_right sail_direction_s cordslack_2 ]\n\n\n[ heading_ne tension_2 sail_side_left ] -> [ heading_ne tension_2 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_ne tension_2 sail_side_right ] -> [ heading_ne tension_2 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_ne tension_1 sail_side_left ] -> [ heading_ne tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_ne tension_1 sail_side_right ] -> [ heading_ne tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_ne tension_0 sail_side_left ] -> [ heading_ne tension_0 sail_side_right sail_direction_s cordslack_1 ]\n[ heading_ne tension_0 sail_side_right ] -> [ heading_ne tension_0 sail_side_right sail_direction_s cordslack_1 ]\n\n\n[ heading_e tension_2 sail_side_left ] -> [ heading_e tension_2 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_e tension_2 sail_side_right ] -> [ heading_e tension_2 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_e tension_1 sail_side_left ] -> [ heading_e tension_1 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_e tension_1 sail_side_right ] -> [ heading_e tension_1 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_e tension_0 sail_side_left ] -> [ heading_e tension_0 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_e tension_0 sail_side_right ] -> [ heading_e tension_0 sail_side_right sail_direction_s cordslack_0 ]\n\n\n[ heading_se tension_2 sail_side_left ] -> [ heading_se tension_2 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_se tension_2 sail_side_right ] -> [ heading_se tension_2 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_se tension_1 sail_side_left ] -> [ heading_se tension_1 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_se tension_1 sail_side_right ] -> [ heading_se tension_1 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_se tension_0 sail_side_left ] -> [ heading_se tension_0 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_se tension_0 sail_side_right ] -> [ heading_se tension_0 sail_side_right sail_direction_sw cordslack_0 ]\n\n[ heading_s tension_2 sail_side_left ] -> [ heading_s tension_2 sail_side_left sail_direction_n cordslack_0 ]\n[ heading_s tension_2 sail_side_right ] -> [ heading_s tension_2 sail_side_right sail_direction_n cordslack_0 ]\n[ heading_s tension_1 sail_side_left ] -> [ heading_s tension_1 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_s tension_1 sail_side_right ] -> [ heading_s tension_1 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_s tension_0 sail_side_left ] -> [ heading_s tension_0 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_s tension_0 sail_side_right ] -> [ heading_s tension_0 sail_side_right sail_direction_w cordslack_0 ]\n\n[ heading_sw tension_2 sail_side_left ] -> [ heading_sw tension_2 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_sw tension_2 sail_side_right ] -> [ heading_sw tension_2 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_sw tension_1 sail_side_left ] -> [ heading_sw tension_1 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_sw tension_1 sail_side_right ] -> [ heading_sw tension_1 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_sw tension_0 sail_side_left ] -> [ heading_sw tension_0 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_sw tension_0 sail_side_right ] -> [ heading_sw tension_0 sail_side_left sail_direction_se cordslack_0 ]\n\n[ heading_w tension_2 sail_side_left ] -> [ heading_w tension_2 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_w tension_2 sail_side_right ] -> [ heading_w tension_2 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_w tension_1 sail_side_left ] -> [ heading_w tension_1 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_w tension_1 sail_side_right ] -> [ heading_w tension_1 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_w tension_0 sail_side_left ] -> [ heading_w tension_0 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_w tension_0 sail_side_right ] -> [ heading_w tension_0 sail_side_left sail_direction_s cordslack_0 ]\n\n[ heading_nw tension_2 sail_side_left ] -> [ heading_nw tension_2 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_nw tension_2 sail_side_right ] -> [ heading_nw tension_2 sail_side_right sail_direction_se cordslack_0 ]\n[ heading_nw tension_1 sail_side_left ] -> [ heading_nw tension_1 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_nw tension_1 sail_side_right ] -> [ heading_nw tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_nw tension_0 sail_side_left ] -> [ heading_nw tension_0 sail_side_left sail_direction_s cordslack_1 ]\n[ heading_nw tension_0 sail_side_right ] -> [ heading_nw tension_0 sail_side_right sail_direction_s cordslack_1 ]\n\n\n\n(rudder steering)\n[ left player rudderdir_c ]->[player rudderdir_l] sfx6\n[ left player rudderdir_r ]->[player rudderdir_c] sfx6\n\n[ right player rudderdir_l ]->[player rudderdir_c] sfx6\n[ right player rudderdir_c ]->[player rudderdir_r] sfx6\n\n\n[ moving player ]->[player]\n\n(Calculating the movement direction! )\n\n( [againing heading_n sail_direction_n ] -> [againing heading_n sail_direction_n movement_n ] )\n( [againing heading_n sail_direction_ne ] -> [againing heading_n sail_direction_ne movement_n ] )\n( [againing heading_n sail_direction_e ] -> [againing heading_n sail_direction_e movement_n ] )\n( [againing heading_n sail_direction_se ] -> [againing heading_n sail_direction_se movement_n ] )\n[againing heading_n sail_direction_s rudderdir_l ] -> [againing heading_n sail_direction_s rudderdir_l domove ]\n[againing heading_n sail_direction_s rudderdir_r ] -> [againing heading_n sail_direction_s rudderdir_r domove ]\n( [againing heading_n sail_direction_sw ] -> [againing heading_n sail_direction_sw movement_n ] )\n( [againing heading_n sail_direction_w ] -> [againing heading_n sail_direction_w movement_n ] )\n( [againing heading_n sail_direction_nw ] -> [againing heading_n sail_direction_nw movement_n ] )\n\n( [againing heading_ne sail_direction_n ] -> [againing heading_ne sail_direction_n movement_ne ] )\n( [againing heading_ne sail_direction_ne ] -> [againing heading_ne sail_direction_ne movement_ne ] )\n( [againing heading_ne sail_direction_e ] -> [againing heading_ne sail_direction_e movement_ne ] )\n( [againing heading_ne sail_direction_se ] -> [againing heading_ne sail_direction_se movement_ne ] )\n( [againing heading_ne sail_direction_s ] -> [againing heading_ne sail_direction_s movement_ne ] )\n[againing heading_ne sail_direction_sw ] -> [againing heading_ne sail_direction_sw domove ]\n( [againing heading_ne sail_direction_w ] -> [againing heading_ne sail_direction_w movement_ne ] )\n( [againing heading_ne sail_direction_nw ] -> [againing heading_ne sail_direction_nw movement_ne ] )\n\n( [againing heading_e sail_direction_n ] -> [againing heading_e sail_direction_n movement_e ] )\n( [againing heading_e sail_direction_ne ] -> [againing heading_e sail_direction_ne movement_e ] )\n( [againing heading_e sail_direction_e ] -> [againing heading_e sail_direction_e movement_e ] )\n( [againing heading_e sail_direction_se ] -> [againing heading_e sail_direction_se movement_e ] )\n( [againing heading_e sail_direction_s ] -> [againing heading_e sail_direction_s movement_e ] )\n[againing heading_e sail_direction_sw ] -> [againing heading_e sail_direction_sw domove ]\n( [againing heading_e sail_direction_w ] -> [againing heading_e sail_direction_w movement_e ] )\n( [againing heading_e sail_direction_nw ] -> [againing heading_e sail_direction_nw movement_e ] )\n\n( [againing heading_se sail_direction_n ] -> [againing heading_se sail_direction_n movement_se ] )\n[againing heading_se sail_direction_ne ] -> [againing heading_se sail_direction_ne domove ]\n( [againing heading_se sail_direction_e ] -> [againing heading_se sail_direction_e movement_se ] )\n( [againing heading_se sail_direction_se ] -> [againing heading_se sail_direction_se movement_se ] )\n( [againing heading_se sail_direction_s ] -> [againing heading_se sail_direction_s movement_se ] )\n[againing heading_se sail_direction_sw ] -> [againing heading_se sail_direction_sw domove ]\n[againing heading_se sail_direction_w ] -> [againing heading_se sail_direction_w domove ]\n[againing heading_se sail_direction_nw ] -> [againing heading_se sail_direction_nw domove ]\n\n( [againing heading_s sail_direction_n ] -> [againing heading_s sail_direction_n movement_s ] )\n[againing heading_s sail_direction_ne ] -> [againing heading_s sail_direction_ne domove ]\n[againing heading_s sail_direction_e ] -> [againing heading_s sail_direction_e domove ]\n( [againing heading_s sail_direction_se ] -> [againing heading_s sail_direction_se movement_s ] )\n( [againing heading_s sail_direction_s ] -> [againing heading_s sail_direction_s movement_s ] )\n( [againing heading_s sail_direction_sw ] -> [againing heading_s sail_direction_sw movement_s ] )\n[againing heading_s sail_direction_w ] -> [againing heading_s sail_direction_w domove ]\n[againing heading_s sail_direction_nw ] -> [againing heading_s sail_direction_nw domove ]\n\n( [againing heading_sw sail_direction_n ] -> [againing heading_sw sail_direction_n movement_sw ] )\n[againing heading_sw sail_direction_ne ] -> [againing heading_sw sail_direction_ne domove ]\n[againing heading_sw sail_direction_e ] -> [againing heading_sw sail_direction_e domove ]\n[againing heading_sw sail_direction_se ] -> [againing heading_sw sail_direction_se domove ]\n( [againing heading_sw sail_direction_s ] -> [againing heading_sw sail_direction_s movement_sw ] )\n( [againing heading_sw sail_direction_sw ] -> [againing heading_sw sail_direction_sw movement_sw ] )\n( [againing heading_sw sail_direction_w ] -> [againing heading_sw sail_direction_w movement_sw ] )\n[againing heading_sw sail_direction_nw ] -> [againing heading_sw sail_direction_nw domove ]\n\n\n( [againing heading_w sail_direction_n ] -> [againing heading_w sail_direction_n movement_w ] )\n( [againing heading_w sail_direction_ne ] -> [againing heading_w sail_direction_ne movement_w ] )\n( [againing heading_w sail_direction_e ] -> [againing heading_w sail_direction_e movement_w ] )\n[againing heading_w sail_direction_se ] -> [againing heading_w sail_direction_se domove ]\n( [againing heading_w sail_direction_s ] -> [againing heading_w sail_direction_s movement_w ] )\n( [againing heading_w sail_direction_sw ] -> [againing heading_w sail_direction_sw movement_w ] )\n( [againing heading_w sail_direction_w ] -> [againing heading_w sail_direction_w movement_w ] )\n( [againing heading_w sail_direction_nw ] -> [againing heading_w sail_direction_nw movement_w ] )\n\n\n( [againing heading_nw sail_direction_n ] -> [againing heading_nw sail_direction_n movement_nw ] )\n( [againing heading_nw sail_direction_ne ] -> [againing heading_nw sail_direction_ne movement_nw ] )\n( [againing heading_nw sail_direction_e ] -> [againing heading_nw sail_direction_e movement_nw ] )\n[againing heading_nw sail_direction_se ] -> [againing heading_nw sail_direction_se domove ]\n( [againing heading_nw sail_direction_s ] -> [againing heading_nw sail_direction_s movement_nw ] )\n( [againing heading_nw sail_direction_sw ] -> [againing heading_nw sail_direction_sw movement_nw ] )\n( [againing heading_nw sail_direction_w ] -> [againing heading_nw sail_direction_w movement_nw ] )\n( [againing heading_nw sail_direction_nw ] -> [againing heading_nw sail_direction_nw movement_nw ] )\n\n(rudder rotation)\n\n[ domove no hasturned ] [ rudderdir_l heading_n ] -> [ domove hasturned ] [ rudderdir_l heading_nw ]\n[ domove no hasturned ] [ rudderdir_l heading_ne ] -> [ domove hasturned ] [ rudderdir_l heading_n ]\n[ domove no hasturned ] [ rudderdir_l heading_e ] -> [ domove hasturned ] [ rudderdir_l heading_ne ]\n[ domove no hasturned ] [ rudderdir_l heading_se ] -> [ domove hasturned ] [ rudderdir_l heading_e ]\n[ domove no hasturned ] [ rudderdir_l heading_s ] -> [ domove hasturned ] [ rudderdir_l heading_se ]\n[ domove no hasturned ] [ rudderdir_l heading_sw ] -> [ domove hasturned ] [ rudderdir_l heading_s ]\n[ domove no hasturned ] [ rudderdir_l heading_w ] -> [ domove hasturned ] [ rudderdir_l heading_sw ]\n[ domove no hasturned ] [ rudderdir_l heading_nw ] -> [ domove hasturned ] [ rudderdir_l heading_w ]\n\n[ domove no hasturned ] [ rudderdir_r heading_n ] -> [ domove hasturned ] [ rudderdir_r heading_ne ]\n[ domove no hasturned ] [ rudderdir_r heading_ne ] -> [ domove hasturned ] [ rudderdir_r heading_e ]\n[ domove no hasturned ] [ rudderdir_r heading_e ] -> [ domove hasturned ] [ rudderdir_r heading_se ]\n[ domove no hasturned ] [ rudderdir_r heading_se ] -> [ domove hasturned ] [ rudderdir_r heading_s ]\n[ domove no hasturned ] [ rudderdir_r heading_s ] -> [ domove hasturned ] [ rudderdir_r heading_sw ]\n[ domove no hasturned ] [ rudderdir_r heading_sw ] -> [ domove hasturned ] [ rudderdir_r heading_w ]\n[ domove no hasturned ] [ rudderdir_r heading_w ] -> [ domove hasturned ] [ rudderdir_r heading_nw ]\n[ domove no hasturned ] [ rudderdir_r heading_nw ] -> [ domove hasturned ] [ rudderdir_r heading_n ]\n\n[hasturned]->[]\n\n\n[ domove heading_n ] -> [ heading_n movement_n ]\n[ domove heading_ne ] -> [ heading_ne movement_ne ]\n[ domove heading_e ] -> [ heading_e movement_e ]\n[ domove heading_se ] -> [ heading_se movement_se ]\n[ domove heading_s ] -> [ heading_s movement_s ]\n[ domove heading_sw ] -> [ heading_sw movement_sw ]\n[ domove heading_w ] -> [ heading_w movement_w ]\n[ domove heading_nw ] -> [ heading_nw movement_nw ]\n\nright [ movement_ne | ] -> [ | movement_n ]\nright [ movement_se | ] -> [ | movement_s ]\nleft [ movement_nw | ] -> [ | movement_n ]\nleft [ movement_sw | ] -> [ | movement_s ]\n\nup [ movement_n | ] -> [ | movement_target ]\nright [ movement_e | ] -> [ | movement_target ]\ndown [ movement_s | ] -> [ | movement_target ]\nleft [ movement_w | ] -> [ | movement_target ]\n\n\n( [ movement_target ] [ player heading rudderdir tension sail_side sail_direction ] -> [ player heading rudderdir tension sail_side sail_direction] [] )\n\n(some bug(?) whereby I can't replace the above with the below)\n\nrandom [ movement_target ] [ player ] -> [ movement_target player ] []\nrandom [ movement_target ] [ heading ] -> [ movement_target heading ] []\nrandom [ movement_target ] [ rudderdir ] -> [ movement_target rudderdir ] []\nrandom [ movement_target ] [ tension ] -> [ movement_target tension ] []\nrandom [ movement_target ] [ sail_side ] -> [ movement_target sail_side ] []\nrandom [ movement_target ] [ sail_direction ] -> [ movement_target sail_direction ] []\nrandom [ movement_target]->[]\n\n\n(calculate sail direction / cord slack)\n\n[ heading_n tension_2 sail_side_left ] -> [ heading_n tension_2 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_n tension_2 sail_side_right ] -> [ heading_n tension_2 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_n tension_1 sail_side_left ] -> [ heading_n tension_1 sail_side_left sail_direction_s cordslack_1 ]\n[ heading_n tension_1 sail_side_right ] -> [ heading_n tension_1 sail_side_right sail_direction_s cordslack_1 ]\n[ heading_n tension_0 sail_side_left ] -> [ heading_n tension_0 sail_side_left sail_direction_s cordslack_2 ]\n[ heading_n tension_0 sail_side_right ] -> [ heading_n tension_0 sail_side_right sail_direction_s cordslack_2 ]\n\n\n[ heading_ne tension_2 sail_side_left ] -> [ heading_ne tension_2 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_ne tension_2 sail_side_right ] -> [ heading_ne tension_2 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_ne tension_1 sail_side_left ] -> [ heading_ne tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_ne tension_1 sail_side_right ] -> [ heading_ne tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_ne tension_0 sail_side_left ] -> [ heading_ne tension_0 sail_side_right sail_direction_s cordslack_1 ]\n[ heading_ne tension_0 sail_side_right ] -> [ heading_ne tension_0 sail_side_right sail_direction_s cordslack_1 ]\n\n\n[ heading_e tension_2 sail_side_left ] -> [ heading_e tension_2 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_e tension_2 sail_side_right ] -> [ heading_e tension_2 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_e tension_1 sail_side_left ] -> [ heading_e tension_1 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_e tension_1 sail_side_right ] -> [ heading_e tension_1 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_e tension_0 sail_side_left ] -> [ heading_e tension_0 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_e tension_0 sail_side_right ] -> [ heading_e tension_0 sail_side_right sail_direction_s cordslack_0 ]\n\n\n[ heading_se tension_2 sail_side_left ] -> [ heading_se tension_2 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_se tension_2 sail_side_right ] -> [ heading_se tension_2 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_se tension_1 sail_side_left ] -> [ heading_se tension_1 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_se tension_1 sail_side_right ] -> [ heading_se tension_1 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_se tension_0 sail_side_left ] -> [ heading_se tension_0 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_se tension_0 sail_side_right ] -> [ heading_se tension_0 sail_side_right sail_direction_sw cordslack_0 ]\n\n[ heading_s tension_2 sail_side_left ] -> [ heading_s tension_2 sail_side_left sail_direction_n cordslack_0 ]\n[ heading_s tension_2 sail_side_right ] -> [ heading_s tension_2 sail_side_right sail_direction_n cordslack_0 ]\n[ heading_s tension_1 sail_side_left ] -> [ heading_s tension_1 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_s tension_1 sail_side_right ] -> [ heading_s tension_1 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_s tension_0 sail_side_left ] -> [ heading_s tension_0 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_s tension_0 sail_side_right ] -> [ heading_s tension_0 sail_side_right sail_direction_w cordslack_0 ]\n\n[ heading_sw tension_2 sail_side_left ] -> [ heading_sw tension_2 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_sw tension_2 sail_side_right ] -> [ heading_sw tension_2 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_sw tension_1 sail_side_left ] -> [ heading_sw tension_1 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_sw tension_1 sail_side_right ] -> [ heading_sw tension_1 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_sw tension_0 sail_side_left ] -> [ heading_sw tension_0 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_sw tension_0 sail_side_right ] -> [ heading_sw tension_0 sail_side_left sail_direction_se cordslack_0 ]\n\n[ heading_w tension_2 sail_side_left ] -> [ heading_w tension_2 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_w tension_2 sail_side_right ] -> [ heading_w tension_2 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_w tension_1 sail_side_left ] -> [ heading_w tension_1 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_w tension_1 sail_side_right ] -> [ heading_w tension_1 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_w tension_0 sail_side_left ] -> [ heading_w tension_0 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_w tension_0 sail_side_right ] -> [ heading_w tension_0 sail_side_left sail_direction_s cordslack_0 ]\n\n[ heading_nw tension_2 sail_side_left ] -> [ heading_nw tension_2 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_nw tension_2 sail_side_right ] -> [ heading_nw tension_2 sail_side_right sail_direction_se cordslack_0 ]\n[ heading_nw tension_1 sail_side_left ] -> [ heading_nw tension_1 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_nw tension_1 sail_side_right ] -> [ heading_nw tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_nw tension_0 sail_side_left ] -> [ heading_nw tension_0 sail_side_left sail_direction_s cordslack_1 ]\n[ heading_nw tension_0 sail_side_right ] -> [ heading_nw tension_0 sail_side_right sail_direction_s cordslack_1 ]\n\n( [ heading_n ] -> again )\n\n(ship-drawing)\n(orthogonal hull drawing)\nup late [ | player heading_n ] -> [ hull_n_stern | hull_n_bow player heading_n ]\nright late [ | player heading_e ] -> [ hull_e_stern | hull_e_bow player heading_e ]\ndown late [ | player heading_s ] -> [ hull_s_stern | hull_s_bow player heading_s ]\nleft late [ | player heading_w ] -> [ hull_w_stern | hull_w_bow player heading_w ]\n\n(diagonal hull drawing)\nright late [ | player heading_ne ] -> [ hull_diag_nw heading_ne | hull_ne_bow player heading_ne ]\nup late [ | player heading_ne ] -> [ hull_diag_se | hull_ne_bow player heading_ne ]\nup late [ | hull_diag_nw heading_ne ] -> [ hull_ne_stern | hull_diag_nw ]\n\ndown late [ | player heading_se ] -> [ hull_diag_ne heading_se | hull_se_bow player heading_se ]\nright late [ | player heading_se ] -> [ hull_diag_sw | hull_se_bow player heading_se ]\nright late [ | hull_diag_ne heading_se ] -> [ hull_se_stern | hull_diag_ne ]\n\nleft late [ | player heading_sw ] -> [ hull_diag_se heading_sw | hull_sw_bow player heading_sw ]\ndown late [ | player heading_sw ] -> [ hull_diag_nw | hull_sw_bow player heading_sw ]\ndown late [ | hull_diag_se heading_sw ] -> [ hull_sw_stern | hull_diag_se ]\n\n\nup late [ | player heading_nw ] -> [ hull_diag_sw heading_nw | hull_nw_bow player heading_nw ]\nleft late [ | player heading_nw ] -> [ hull_diag_ne | hull_nw_bow player heading_nw ]\nleft late [ | hull_diag_sw heading_nw ] -> [ hull_nw_stern | hull_diag_sw ]\n\n\n(rudder drawing)\nlate [ rudderdir_l ] [ hull_n_stern ] -> [rudderdir_l ] [ hull_n_stern hull_n_rl ]\nlate [ rudderdir_c ] [ hull_n_stern ] -> [rudderdir_c ] [ hull_n_stern hull_n_rc ]\nlate [ rudderdir_r ] [ hull_n_stern ] -> [rudderdir_r ] [ hull_n_stern hull_n_rr ]\n\nlate [ rudderdir_l ] [ hull_ne_stern ] -> [rudderdir_l ] [ hull_ne_stern hull_ne_rl ]\nlate [ rudderdir_c ] [ hull_ne_stern ] -> [rudderdir_c ] [ hull_ne_stern hull_ne_rc ]\nlate [ rudderdir_r ] [ hull_ne_stern ] -> [rudderdir_r ] [ hull_ne_stern hull_ne_rr ]\n\nlate [ rudderdir_l ] [ hull_e_stern ] -> [rudderdir_l ] [ hull_e_stern hull_e_rl ]\nlate [ rudderdir_c ] [ hull_e_stern ] -> [rudderdir_c ] [ hull_e_stern hull_e_rc ]\nlate [ rudderdir_r ] [ hull_e_stern ] -> [rudderdir_r ] [ hull_e_stern hull_e_rr ]\n\nlate [ rudderdir_l ] [ hull_se_stern ] -> [rudderdir_l ] [ hull_se_stern hull_se_rl ]\nlate [ rudderdir_c ] [ hull_se_stern ] -> [rudderdir_c ] [ hull_se_stern hull_se_rc ]\nlate [ rudderdir_r ] [ hull_se_stern ] -> [rudderdir_r ] [ hull_se_stern hull_se_rr ]\n\nlate [ rudderdir_l ] [ hull_s_stern ] -> [rudderdir_l ] [ hull_s_stern hull_s_rl ]\nlate [ rudderdir_c ] [ hull_s_stern ] -> [rudderdir_c ] [ hull_s_stern hull_s_rc ]\nlate [ rudderdir_r ] [ hull_s_stern ] -> [rudderdir_r ] [ hull_s_stern hull_s_rr ]\n\nlate [ rudderdir_l ] [ hull_sw_stern ] -> [rudderdir_l ] [ hull_sw_stern hull_sw_rl ]\nlate [ rudderdir_c ] [ hull_sw_stern ] -> [rudderdir_c ] [ hull_sw_stern hull_sw_rc ]\nlate [ rudderdir_r ] [ hull_sw_stern ] -> [rudderdir_r ] [ hull_sw_stern hull_sw_rr ]\n\nlate [ rudderdir_l ] [ hull_w_stern ] -> [rudderdir_l ] [ hull_w_stern hull_w_rl ]\nlate [ rudderdir_c ] [ hull_w_stern ] -> [rudderdir_c ] [ hull_w_stern hull_w_rc ]\nlate [ rudderdir_r ] [ hull_w_stern ] -> [rudderdir_r ] [ hull_w_stern hull_w_rr ]\n\nlate [ rudderdir_l ] [ hull_nw_stern ] -> [rudderdir_l ] [ hull_nw_stern hull_nw_rl ]\nlate [ rudderdir_c ] [ hull_nw_stern ] -> [rudderdir_c ] [ hull_nw_stern hull_nw_rc ]\nlate [ rudderdir_r ] [ hull_nw_stern ] -> [rudderdir_r ] [ hull_nw_stern hull_nw_rr ]\n\n(sail-drawing)\n\nlate up [ sail_direction_n | ] -> [ sail_direction_n sail_n_1 | sail_n_2 ]\nlate right [ sail_direction_e | ] -> [ sail_direction_e sail_e_1 | sail_e_2 ]\nlate down [ sail_direction_s | ] -> [ sail_direction_s sail_s_1 | sail_s_2 ]\nlate left [ sail_direction_w | ] -> [ sail_direction_w sail_w_1 | sail_w_2 ]\n\nlate right [ sail_direction_ne | ] -> [sail_direction_ne sail_ne_1 | sail_ne_2]\nlate up [ sail_ne_2 | ] -> [sail_ne_2 | sail_ne_3 ]\n\nlate down [ sail_direction_se | ] -> [sail_direction_se sail_se_1 | sail_se_2]\nlate right [ sail_se_2 | ] -> [sail_se_2 | sail_se_3 ]\n\nlate down [ sail_direction_sw | ] -> [sail_direction_sw sail_sw_1 | sail_sw_2]\nlate left [ sail_sw_2 | ] -> [sail_sw_2 | sail_sw_3 ]\n\nlate left [ sail_direction_nw | ] -> [sail_direction_nw sail_nw_1 | sail_nw_2]\nlate up [ sail_nw_2 | ] -> [sail_nw_2 | sail_nw_3 ]\n\n\n(sailcord drawing omg I'm so sorry this is terrible)\n\nlate right [cordslack_1] [ sail_s_2 | hull_nw_stern ] -> [cordslack_1] [ sail_s_2 sailcord_cordslack_south_left | hull_nw_stern sailcord_sw ]\nlate right [cordslack_0] [ sail_s_2 | hull_nw_stern ] -> [cordslack_0] [ sail_s_2 sailcord_e | hull_nw_stern sailcord_w ]\n\n\nlate down [ hull_w_stern | sail_se_3 ] -> [ hull_w_stern sailcord_s | sail_se_3 sailcord_n ]\nlate [ sail_s_2 ] [ hull_w_stern ] -> [ sail_s_2 sailcord_ne ] [ hull_w_stern sailcord_sw ]\n\nlate down [ hull_sw_stern | sail_e_2 ] -> [ hull_sw_stern sailcord_s | sail_e_2 sailcord_n ] \nlate down [ hull_sw_stern | | sail_se_3 ] -> [ hull_sw_stern sailcord_s | sailcord_ns | sail_se_3 sailcord_n ] \nlate right [ sail_nw_3 | | hull_sw_stern ] -> [ sail_nw_3 sailcord_e | sailcord_ew | hull_sw_stern sailcord_w ]\n\nlate down [ cordslack_1 | sail_s_2 hull_n_stern ] -> [ cordslack_1 | sail_s_2 hull_n_stern cordslack_1 sailcord_cordslack_south_1 ]\nlate down [ cordslack_2 | sail_s_2 hull_n_stern ] -> [ cordslack_2 | sail_s_2 hull_n_stern sailcord_cordslack_south_2 ]\n\nlate right [ hull_s_stern | sail_ne_3 ] -> [ hull_s_stern sailcord_e | sail_ne_3 sailcord_w ]\nlate [ hull_s_stern ] [ sail_e_2 ] -> [ hull_s_stern sailcord_se ] [ sail_e_2 sailcord_nw ] \nlate right [ sail_nw_3 | hull_s_stern ] -> [ sail_nw_3 sailcord_e | hull_s_stern sailcord_w ]\nlate [ sail_w_2 ] [hull_s_stern ] -> [ sail_w_2 sailcord_ne ] [hull_s_stern sailcord_sw ]\n\nlate right [cordslack_1] [ hull_ne_stern | sail_s_2 ] -> [cordslack_1] [ hull_ne_stern sailcord_se | sail_s_2 sailcord_cordslack_south_right ]\nlate right [cordslack_0] [ hull_ne_stern | sail_s_2 ] -> [cordslack_0] [ hull_ne_stern sailcord_e | sail_s_2 sailcord_w ]\n\nlate [ hull_e_stern ] [ sail_s_2 ] -> [ hull_e_stern sailcord_se] [ sail_s_2 sailcord_nw ] \nlate down [hull_e_stern | sail_sw_3 ]->[hull_e_stern sailcord_s| sail_sw_3 sailcord_n]\n\nlate down [ hull_se_stern | sail_w_2 ] -> [ hull_se_stern sailcord_s | sail_w_2 sailcord_n ] \nlate down [ hull_se_stern | | sail_sw_3 ] -> [ hull_se_stern sailcord_s |sailcord_ns| sail_sw_3 sailcord_n ] \nlate right [hull_se_stern | | sail_ne_3 ] -> [hull_se_stern sailcord_e | sailcord_ew | sail_ne_3 sailcord_w ]\n\nlate [ againing ] ->[]\nlate [ movement ] ->[]\n\n\nlate [ hull obstacle ] [ player ] -> [ hull obstacle ] [ no player wreck_1 ] sfx3\nlate [ wreck_1 ] [hull_stern] -> [ wreck_1] [wreck_2]\nlate [wreck_1] [hull] ->[wreck_1] [no hull]\n\nlate [ hull buoy ] -> [ hull ] sfx5\n\n==============\nWINCONDITIONS\n==============\n\nno buoy\n\n=======\nLEVELS\n=======\n\n\nmessage The wind comes from the north. Press left and right to adjust rudder. Press up and down to adjust the sail tension. The goal is to collect all the buoys.\n\nmessage Lake 1 of 3 \n\nq-xxxxxxxxxxxxsj\nsd............zs\n-c.............a\nd..............i\nd..............u\nd..............i\nd..........b...u\nd..............i\nhe..p..........u\nsc.............i\nd..............a\nd..........b...a\nd..............a\nd.............qs\nd.............as\nswwwwwwwwwwwww'#\n\n\nmessage Lake 2 of 3 \n\nsssss-ssxxss--sssss-sxx--sss\nsshsxxxc..zxxxxxsgsxc..zssm'\nsjsc............afd.....zv,;\nssc.............zxc......ass\nsd..........b............zss\nsse.......................a-\nssd......qwe..............ss\nssc.......aswwwwwe.....b...a\n-d........z-sm'#mswe.......a\nsd.........zv,;l,n-d.......a\njd..p.......asxs-sxc......s-\njd.........qsc.zxc........a-\njd.........zc.............a-\n-se.......................as\nssc.............b....e...qss\nsd..................qje..ahs\nsse.................ahswwsss\nshswwe.qwwwwwwwe.qwwsssss-sc\nssss-swshjs--sjswm-smss-s-c.\n\n\nmessage Lake 3 of 3\n\nsssxxxxxxxxxxxxxxxxxxxshsjs-\nssc.....r.............zxjshs\nsc...r..........r.......zhgs\nd...........r............zfj\nd.........................zs\nd..p....r............r.....a\nd................r.........a\nd.......qwwwwwe............a\nd......qsxc...zwwwwe.......a\nd.....qhd.......zxjc.......a\nd....qjsc.........c....qe..a\nd...qssc..b..e.........d...a\nd..qm-d.....qse.......qd...a\nswwv,nse...qs-swwwwwwwj-wwws\n-s------wwws-s--s-j-s-ss-s--\n\n\nmessage Congratulations: you are the best sailer in the world!\n\n", ["tick", 2, 0, "tick", 1, "tick", "tick", 2, "tick", 0, "tick", 3, 3, "tick", 2, "tick", "tick", "tick", "tick", 1, "tick", 0, "tick", "tick", "tick", 3, "tick"], "background land:0,0,0,0,0,0,0,0,background land tree:1,0,background house4 land:2,2,2,1,0,0,0,0,0,0,0,2,0,background coast_e land:3,0,0,0,3,\n3,3,3,3,0,0,3,0,background house3 land:4,0,0,4,0,background coast_se land:5,background:6,background coast_ne land:7,3,5,6,6,6,6,6,7,5,6,7,0,\n0,0,0,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,background coast_n land:8,0,0,background coast_s land:9,6,6,6,6,6,6,\n6,6,6,6,6,6,6,6,6,8,1,1,9,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,\n7,0,0,9,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,8,0,5,6,6,6,6,6,\n6,6,6,6,6,6,6,6,6,6,background coast_nw land:10,0,9,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,\n6,8,4,9,6,6,6,6,6,10,6,6,6,6,6,6,6,6,6,6,8,2,0,background coast_sw land:11,6,6,6,background cordslack_0 hull_se_rr sailcord_s wreck_2:12,\nbackground coast_n land sail_w_2 sailcord_n:13,background coast_w land:14,11,6,6,6,6,6,6,6,6,8,0,0,9,6,6,6,6,background coast_ne cordslack_0 heading_se land rudderdir_r sail_direction_w sail_side_right sail_w_1 tension_1 wreck_1:15,0,1,11,6,10,11,6,6,\n6,6,8,1,1,9,6,6,background buoy:16,6,6,8,0,background land mountain1:17,14,0,5,6,6,6,6,8,1,1,9,6,6,6,\n6,6,8,background land mountain4:18,background land mountain2:19,0,5,6,6,6,6,6,8,0,0,9,6,6,6,6,6,8,background land mountain_blue2:20,background land mountain3 mountain_blue1:21,9,6,6,6,\n6,6,6,8,2,0,9,6,6,6,6,6,8,background land mountain_blue3:22,background land mountain1 mountain_blue1:23,0,11,6,6,6,6,6,7,0,0,0,14,11,\n6,6,6,8,18,19,1,9,6,6,16,6,6,6,8,0,background house2 land:24,background house1 land:25,9,6,6,6,7,0,background land mountain3:26,0,5,6,\n6,6,6,6,10,18,0,0,3,5,6,6,6,6,8,1,9,6,6,6,6,6,6,8,1,1,9,6,\n6,6,6,6,6,7,3,5,6,6,6,6,6,6,8,0,0,5,6,6,6,6,6,6,6,6,6,6,\n6,6,6,10,14,0,18,9,6,6,6,6,6,6,6,6,6,6,6,6,6,7,2,4,0,0,9,6,\n6,6,6,6,6,6,6,6,6,6,6,6,6,7,0,0,0,1,11,6,6,6,6,6,16,6,6,6,\n6,6,6,6,6,8,0,1,1,0,11,6,6,6,6,6,6,6,6,6,6,6,6,6,8,0,0,0,\n0,17,14,11,6,6,6,6,6,6,6,6,6,10,14,0,1,1,0,18,19,0,0,14,0,6,6,6,\n0,14,14,14,0,4,0,0,5,0,20,21,0,0,1,0,14,14,14,1,1,1,0,0,0,0,5,6,\n", 4, "1627893570488.5464"] + "North Wind Simple Sailboat Buoy Collection", + ["(MOVEMENT SHOULD BE DETERMINED BY TARGET DIRECTION not current one)\n\ntitle North Wind Simple Sailboat Buoy Collection\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #255474\ntext_color #caa786\n\nnorepeat_action\nrun_rules_on_level_start\nagain_interval 0.4\nrealtime_interval 1\n( debug )\n( verbose_logging )\n\nnoundo\n\n========\nOBJECTS\n========\n\nbuoy b\n#ac3232 #847e87\n.....\n..10.\n..1..\n..0..\n.000.\n\nBackground\n#5fcde4 #48bbd3\n00000\n00100\n01010\n10001\n00000\n\nland\n#37946e #25855e\n00000\n01000\n00000\n00010\n00000\n\npontoon1 t\n#8d614c #9e7650\n00000\n10101\n10101\n00000\n.0.0.\n\npontoon2 y\n#8d614c #9e7650\n00000\n01010\n01010\n00000\n.0.0.\n\npontoon3 u\n#8d614c #9e7650\n00000\n01110\n00000\n01110\n00000\n\npontoon4 i\n#8d614c #9e7650\n01110\n00000\n01110\n00000\n01110\n\n\npontoon5 o\n#8d614c #9e7650\n01110\n00000\n01110\n00000\n0...0\n\nmountain1\n#16724c\n....0\n...00\n..000\n.0000\n00.0.\n\nmountain2\n#16724c\n00000\n00000\n00000\n00000\n0.0.0\n\nmountain3\n#16724c\n0....\n00...\n000..\n0000.\n.0.00\n\nmountain4\n#16724c\n.....\n.....\n..0..\n.000.\n00000\n\ntree\n#37946e #8d614c #16724c\n00000\n00200\n02220\n00100\n00000\n\nmountain_blue1\n#306082\n00000\n00000\n00000\n00000\n.....\n\nmountain_blue2\n#306082 #9badb7\n....1\n...11\n..110\n.0000\n00000\n\nmountain_blue3\n#306082 #9badb7\n1....\n11...\n101..\n0000.\n00000\n\n\nrock\n#255474 #306082 #3f7296 #4e7ea1 \n..13.\n.0112\n00121\n01102\n.000.\n\n\ncoast_n\n#37946e #25855e #caa786\n22222\n.222.\n.....\n.....\n.....\n\ncoast_ne\n#37946e #25855e #caa786 #5fcde4\n22223\n.2222\n...22\n...22\n....2\n\ncoast_e\n#37946e #25855e #caa786\n....2\n...22\n...22\n...22\n....2\n\ncoast_se\n#37946e #25855e #caa786 #5fcde4\n....2\n....2\n...22\n.2222\n22223\n\ncoast_s\n#37946e #25855e #caa786\n.....\n.....\n.....\n.222.\n22222\n\ncoast_sw\n#37946e #25855e #caa786 #5fcde4\n2....\n22...\n22...\n2222.\n32222\n\ncoast_w\n#37946e #25855e #caa786\n2....\n22...\n22...\n22...\n2....\n\ncoast_nw\n#37946e #25855e #caa786 #5fcde4\n32222\n2222.\n22...\n22...\n2....\n\nhouse1\n#caa786 #8d614c #9e7650\n..000\n..000\n11111\n00000\n00020\n\nhouse2\n#caa786 #8d614c #9e7650\n.....\n.....\n.....\n...1.\n..111\n\nhouse3\n#caa786 #8d614c #9e7650\n.....\n11111\n12121\n00000\n00000\n\nhouse4\n#caa786 #8d614c #9e7650\n.....\n..1..\n.111.\n.000.\n.020.\n\n\n\n\nPlayer\n#639bff\n.....\n.....\n..0..\n.....\n.....\n\nheading_n\ntransparent\n\nheading_ne\ntransparent\n\nheading_e\ntransparent\n\nheading_se\ntransparent\n\nheading_s\ntransparent\n\nheading_sw\ntransparent\n\nheading_w\ntransparent\n\nheading_nw\ntransparent\n\nwreck_1\n#667598 #a9b5d0 brown #639bff #ffffff #d2dde3\n.000.\n01310\n01140\n0145.\n.0054\n\nwreck_2\n#667598 #a9b5d0 brown #639bff #ffffff #d2dde3\n.000.\n01110\n.1110\n..110\n.2.0.\n\nhull_n_bow\n#667598 #a9b5d0 brown\n.000.\n01110\n01110\n01110\n01110\n\nhull_n_stern\n#667598 #a9b5d0 brown\n01110\n01110\n.000.\n.....\n.....\n\nhull_n_rl\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n.2...\n2....\n\nhull_n_rc\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n..2..\n..2..\n\nhull_n_rr\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n...2.\n....2\n\nhull_ne_bow\n#667598 #a9b5d0 brown\n.00..\n0110.\n11110\n11110\n1110.\n\nhull_ne_stern\n#667598 #a9b5d0 brown\n.0111\n.0111\n..011\n...00\n.....\n\n\n\nhull_ne_rl\n#667598 #a9b5d0 brown\n.....\n.....\n22...\n.....\n.....\n\nhull_ne_rc\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n.2...\n2....\n\nhull_ne_rr\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n..2..\n..2..\n\nhull_e_bow\n#667598 #a9b5d0 brown\n0000.\n11110\n11110\n11110\n0000.\n\nhull_e_stern\n#667598 #a9b5d0 brown\n...00\n..011\n..011\n..011\n...00\n\nhull_e_rl\n#667598 #a9b5d0 brown\n2....\n.2...\n.....\n.....\n.....\n\nhull_e_rc\n#667598 #a9b5d0 brown\n.....\n.....\n22...\n.....\n.....\n\nhull_e_rr\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n.2...\n2....\n\n\n\nhull_se_bow\n#667598 #a9b5d0 brown\n1110.\n11110\n11110\n0110.\n.00..\n\nhull_se_stern\n#667598 #a9b5d0 brown\n.....\n...00\n..011\n.0111\n.0111\n\n\nhull_se_rl\n#667598 #a9b5d0 brown\n..2..\n..2..\n.....\n.....\n.....\n\nhull_se_rc\n#667598 #a9b5d0 brown\n2....\n.2...\n.....\n.....\n.....\n\nhull_se_rr\n#667598 #a9b5d0 brown\n.....\n.....\n22...\n.....\n.....\n\n\nhull_s_bow\n#667598 #a9b5d0 brown\n01110\n01110\n01110\n01110\n.000.\n\nhull_s_stern\n#667598 #a9b5d0 brown\n.....\n.....\n.000.\n01110\n01110\n\n\nhull_s_rl\n#667598 #a9b5d0 brown\n....2\n...2.\n.....\n.....\n.....\n\nhull_s_rc\n#667598 #a9b5d0 brown\n..2..\n..2..\n.....\n.....\n.....\n\nhull_s_rr\n#667598 #a9b5d0 brown\n2....\n.2...\n.....\n.....\n.....\n\nhull_sw_bow\n#667598 #a9b5d0 brown\n.0111\n01111\n01111\n.0110\n..00.\n\nhull_sw_stern\n#667598 #a9b5d0 brown\n.....\n00...\n110..\n1110.\n1110.\n\n\nhull_sw_rl\n#667598 #a9b5d0 brown\n.....\n.....\n...22\n.....\n.....\n\nhull_sw_rc\n#667598 #a9b5d0 brown\n....2\n...2.\n.....\n.....\n.....\n\nhull_sw_rr\n#667598 #a9b5d0 brown\n..2..\n..2..\n.....\n.....\n.....\n\nhull_w_bow\n#667598 #a9b5d0 brown\n.0000\n01111\n01111\n01111\n.0000\n\nhull_w_stern\n#667598 #a9b5d0 brown\n00...\n110..\n110..\n110..\n00...\n\n\n\nhull_w_rl\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n...2.\n....2\n\nhull_w_rc\n#667598 #a9b5d0 brown\n.....\n.....\n...22\n.....\n.....\n\nhull_w_rr\n#667598 #a9b5d0 brown\n....2\n...2.\n.....\n.....\n.....\n\n\nhull_nw_bow\n#667598 #a9b5d0 brown\n..00.\n.0110\n01111\n01111\n.0111\n\nhull_nw_stern\n#667598 #a9b5d0 brown\n1110.\n1110.\n110..\n00...\n.....\n\n\n\nhull_nw_rl\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n..2..\n..2..\n\nhull_nw_rc\n#667598 #a9b5d0 brown\n.....\n.....\n.....\n...2.\n....2\n\nhull_nw_rr\n#667598 #a9b5d0 brown\n.....\n.....\n...22\n.....\n.....\n\n\nhull_diag_nw\n#667598 #a9b5d0 brown\n.....\n.....\n....0\n...01\n..011\n\n\nhull_diag_ne\n#667598 #a9b5d0 brown\n.....\n.....\n0....\n10...\n110..\n\n\nhull_diag_se\n#667598 #a9b5d0 brown\n110..\n10...\n0....\n.....\n.....\n\n\n\n\n\nhull_diag_sw\n#667598 #a9b5d0 brown\n..011\n...01\n....0\n.....\n.....\n\nsail_n_1\n#d2dde3 white\n..01.\n..1..\n.....\n.....\n.....\n\nsail_n_2\n#d2dde3 white\n.....\n.....\n..1..\n.10..\n..1..\n\n\nsail_ne_1\n#d2dde3 white\n....0\n...11\n.....\n.....\n.....\n\nsail_ne_2\n#d2dde3 white\n1....\n.....\n.....\n.....\n.....\n\nsail_ne_3\n#d2dde3 white\n.....\n.....\n..1..\n.01..\n01...\n\nsail_e_1\n#d2dde3 white\n.....\n.....\n...10\n....1\n.....\n\nsail_e_2\n#d2dde3 white\n.....\n.....\n001..\n11...\n.....\n\n\nsail_se_1\n#d2dde3 white\n.....\n.....\n.....\n...1.\n...10\n\nsail_se_2\n#d2dde3 white\n....1\n.....\n.....\n.....\n.....\n\nsail_se_3\n#d2dde3 white\n0....\n10...\n.11..\n.....\n.....\n\n\n\nsail_s_1\n#d2dde3 white\n.....\n.....\n.....\n..1..\n.10..\n\nsail_s_2\n#d2dde3 white\n..1..\n..01.\n..1..\n.....\n.....\n\n\nsail_sw_1\n#d2dde3 white\n.....\n.....\n.....\n.1...\n01...\n\nsail_sw_2\n#d2dde3 white\n1....\n.....\n.....\n.....\n.....\n\nsail_sw_3\n#d2dde3 white\n....0\n...01\n..11.\n.....\n.....\n\n\n\n\nsail_w_1\n#d2dde3 white\n.....\n.....\n01...\n1....\n.....\n\nsail_w_2\n#d2dde3 white\n.....\n.....\n..100\n...11\n.....\n\n\nsail_nw_1\n#d2dde3 white\n0....\n11...\n.....\n.....\n.....\n\nsail_nw_2\n#d2dde3 white\n....1\n.....\n.....\n.....\n.....\n\nsail_nw_3\n#d2dde3 white\n.....\n.....\n..1..\n..10.\n...10\n\nrudderdir_l\ntransparent\n\nrudderdir_c\ntransparent\n\nrudderdir_r\ntransparent\n\nsail_direction_n\ntransparent\n\nsail_direction_ne\ntransparent\n\nsail_direction_e\ntransparent\n\nsail_direction_se\ntransparent\n\nsail_direction_s\ntransparent\n\nsail_direction_sw\ntransparent\n\nsail_direction_w\ntransparent\n\nsail_direction_nw\ntransparent\n\ntension_0\ntransparent\n\ntension_1\ntransparent\n\ntension_2\ntransparent\n\nsail_side_right\ntransparent\n\nsail_side_left\ntransparent\n\ncordslack_0\ntransparent\n\ncordslack_1\ntransparent\n\ncordslack_2\ntransparent\n\nsailcord_n\n#d0535f\n..0..\n..0..\n..0..\n.....\n.....\n\nsailcord_ne\n#d0535f\n....0\n...0.\n..0..\n.....\n.....\n\nsailcord_e\n#d0535f\n.....\n.....\n..000\n.....\n.....\n\nsailcord_se\n#d0535f\n.....\n.....\n..0..\n...0.\n....0\n\nsailcord_s\n#d0535f\n.....\n.....\n..0..\n..0..\n..0..\n\n\n\nsailcord_sw\n#d0535f\n.....\n.....\n..0..\n.0...\n0....\n\n\nsailcord_w\n#d0535f\n.....\n.....\n000..\n.....\n.....\n\n\n\nsailcord_nw\n#d0535f\n0....\n.0...\n..0..\n.....\n.....\n\n\nsailcord_ns\n#d0535f\n..0..\n..0..\n..0..\n..0..\n..0..\n\nsailcord_ew\n#d0535f\n.....\n.....\n00000\n.....\n.....\n\nsailcord_cordslack_south_1\n#d0535f\n.....\n.....\n..0..\n.0.0.\n..0..\n\nsailcord_cordslack_south_2\n#d0535f\n.....\n.....\n.000.\n0...0\n.000.\n\nsailcord_cordslack_south_left\n#d0535f\n.....\n.....\n.....\n..0..\n...00\n\nsailcord_cordslack_south_right\n#d0535f\n.....\n.....\n.....\n..0..\n00...\n\nagaining\ntransparent\n\nmovement_n\ntransparent\n\nmovement_ne\ntransparent\n\nmovement_e\ntransparent\n\nmovement_se\ntransparent\n\nmovement_s\ntransparent\n\nmovement_sw\ntransparent\n\nmovement_w\ntransparent\n\nmovement_nw\ntransparent\n\nmovement_target\ntransparent\n\nhasturned\ntransparent\n\ndomove\ntransparent\n\n=======\nLEGEND\n=======\n\nhouse = house1 or house2 or house3 or house4\ncoast = coast_n or coast_ne or coast_e or coast_se or coast_s or coast_sw or coast_w or coast_nw\n\n\nsailcord = sailcord_n or sailcord_ne or sailcord_e or sailcord_Se or sailcord_s or sailcord_Sw or sailcord_w or sailcord_nw or sailcord_cordslack_south_1 or sailcord_cordslack_south_2 or sailcord_cordslack_south_left or sailcord_cordslack_south_right or sailcord_ns or sailcord_ew\n\nrudder = hull_n_rl or hull_n_rc or hull_n_rr or hull_ne_rl or hull_ne_rc or hull_ne_rr or hull_e_rl or hull_e_rc or hull_e_rr or hull_se_rl or hull_se_rc or hull_se_rr or hull_s_rl or hull_s_rc or hull_s_rr or hull_sw_rl or hull_sw_rc or hull_sw_rr or hull_w_rl or hull_w_rc or hull_w_rr or hull_nw_rl or hull_nw_rc or hull_nw_rr \n\nhull = hull_n_bow or hull_n_stern or hull_ne_bow or hull_ne_stern or hull_e_bow or hull_e_stern or hull_se_bow or hull_se_stern or hull_s_bow or hull_s_stern or hull_nw_bow or hull_nw_stern or hull_w_bow or hull_w_stern or hull_sw_bow or hull_sw_stern or hull_diag_ne or hull_diag_se or hull_diag_sw or hull_diag_nw\n\nhull_stern = hull_n_stern or hull_ne_stern or hull_e_stern or hull_se_stern or hull_s_stern or hull_sw_stern or hull_w_stern or hull_nw_stern \n\nheading = heading_n or heading_ne or heading_e or heading_se or heading_s or heading_sw or heading_w or heading_nw\n\nrudderdir = rudderdir_l or rudderdir_c or rudderdir_r\n\nsail = sail_n_1 or sail_n_2 or sail_ne_1 or sail_ne_2 or sail_ne_3 or sail_e_1 or sail_e_2 or sail_se_1 or sail_se_2 or sail_se_3 or sail_s_1 or sail_s_2 or sail_sw_1 or sail_sw_2 or sail_sw_3 or sail_w_1 or sail_w_2 or sail_nw_1 or sail_nw_2 or sail_nw_3 \n\nsail_direction = sail_direction_n or sail_direction_ne or sail_direction_e or sail_direction_se or sail_direction_s or sail_direction_sw or sail_direction_w or sail_direction_nw \n\nmountain = mountain1 or mountain2 or mountain3 or mountain4\nmountain_blue = mountain_blue1 or mountain_blue2 or mountain_blue3\npontoon = pontoon1 or pontoon2 or pontoon3 or pontoon4 or pontoon5\n\nobstacle = land or rock or pontoon\n\ntension = tension_0 or tension_1 or tension_2\nsail_side = sail_side_right or sail_side_left\ncordslack = cordslack_0 or cordslack_1 or cordslack_2\nmovement = movement_n or movement_ne or movement_e or movement_se or movement_s or movement_sw or movement_w or movement_nw\n\nwreck = wreck_1 or wreck_2\n\n. = Background\nP = Player and heading_e and rudderdir_c and tension_2 and sail_side_left\n\nw = land and coast_n\ne = land and coast_ne\nd = land and coast_e\nc = land and coast_se\nx = land and coast_s\nz = land and coast_sw\na = land and coast_w\nq = land and coast_nw\ns = land \nf = house1 and land\ng = house2 and land\nh = house3 and land\nj = house4 and land\nv = mountain1 and land\n, = mountain2 and land\nn = mountain3 and land\nm = mountain4 and land\nl = mountain_blue1 and land and mountain1\n; = mountain_blue1 and land and mountain3\n' = mountain_blue2 and land \n# = mountain_blue3 and land \n- = tree and land\nr = rock\n\n=======\nSOUNDS\n=======\nsfx0 64788707 (tight)\nsfx1 92037307 (tighten sail)\nsfx2 6725507(loose )\nsfx3 72434302 (boat crash)\nsfx5 94572100 (pick up buoy)\nsfx6 23834907(rudder change)\nstartlevel 51979900\nendgame 68419109\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nland, rock, pontoon\nmountain_blue, tree\ncoast, house,mountain, buoy\nrudder\nhull\nwreck\nPlayer\nsailcord\nsail\nheading\nrudderdir\nsail_direction\ntension\nsail_side\ncordslack\nagaining\nmovement\nmovement_target\nhasturned\ndomove\n\n======\nRULES\n======\n\n(start of autotiling code- comment out for release version)\n\n( up [ land no coast | no land ] -> [ land coast_n |] )\n( down [ land no coast | no land ] -> [ land coast_s |] )\n( right [ land no coast | no land ] -> [ land coast_e |] )\n( left [ land no coast | no land ] -> [ land coast_w |] )\n\n( right [coast_n | no land] -> [ coast_ne |] sfx6 )\n( left [coast_n | no land] -> [ coast_nw | ] sfx6 )\n\n( right [coast_s | no land] -> [ coast_se |] )\n( left [coast_s | no land] -> [ coast_sw | ] )\n\n(end of autotiling code- comment out for release version)\n\n\n[ stationary player ] -> [ stationary player againing ]\n( [ moving player ]-> again )\n\n[hull]->[]\n[rudder]->[]\n[sail]->[]\n[cordslack]->[]\n[sailcord]->[]\n\n\n\n( [ action player heading_n ]-> [ player heading_ne ] )\n( [ action player heading_ne ]-> [ player heading_e ] )\n( [ action player heading_e ]-> [ player heading_se ] )\n( [ action player heading_se ]-> [ player heading_s ] )\n( [ action player heading_s ]-> [ player heading_sw ] )\n( [ action player heading_sw ]-> [ player heading_w ] )\n( [ action player heading_w ]-> [ player heading_nw ] )\n( [ action player heading_nw ]-> [ player heading_n ] )\n\n\n[ up player tension_2 ] -> [ player tension_1 ] sfx1\n[ up player tension_1 ] -> [ player tension_0 ] sfx2\n[ down player tension_0 ] -> [ player tension_1 ] sfx1\n[ down player tension_1 ] -> [ player tension_2 ] sfx0\n\n(calculate sail direction / cord slack)\n\n[ heading_n tension_2 sail_side_left ] -> [ heading_n tension_2 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_n tension_2 sail_side_right ] -> [ heading_n tension_2 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_n tension_1 sail_side_left ] -> [ heading_n tension_1 sail_side_left sail_direction_s cordslack_1 ]\n[ heading_n tension_1 sail_side_right ] -> [ heading_n tension_1 sail_side_right sail_direction_s cordslack_1 ]\n[ heading_n tension_0 sail_side_left ] -> [ heading_n tension_0 sail_side_left sail_direction_s cordslack_2 ]\n[ heading_n tension_0 sail_side_right ] -> [ heading_n tension_0 sail_side_right sail_direction_s cordslack_2 ]\n\n\n[ heading_ne tension_2 sail_side_left ] -> [ heading_ne tension_2 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_ne tension_2 sail_side_right ] -> [ heading_ne tension_2 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_ne tension_1 sail_side_left ] -> [ heading_ne tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_ne tension_1 sail_side_right ] -> [ heading_ne tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_ne tension_0 sail_side_left ] -> [ heading_ne tension_0 sail_side_right sail_direction_s cordslack_1 ]\n[ heading_ne tension_0 sail_side_right ] -> [ heading_ne tension_0 sail_side_right sail_direction_s cordslack_1 ]\n\n\n[ heading_e tension_2 sail_side_left ] -> [ heading_e tension_2 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_e tension_2 sail_side_right ] -> [ heading_e tension_2 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_e tension_1 sail_side_left ] -> [ heading_e tension_1 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_e tension_1 sail_side_right ] -> [ heading_e tension_1 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_e tension_0 sail_side_left ] -> [ heading_e tension_0 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_e tension_0 sail_side_right ] -> [ heading_e tension_0 sail_side_right sail_direction_s cordslack_0 ]\n\n\n[ heading_se tension_2 sail_side_left ] -> [ heading_se tension_2 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_se tension_2 sail_side_right ] -> [ heading_se tension_2 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_se tension_1 sail_side_left ] -> [ heading_se tension_1 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_se tension_1 sail_side_right ] -> [ heading_se tension_1 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_se tension_0 sail_side_left ] -> [ heading_se tension_0 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_se tension_0 sail_side_right ] -> [ heading_se tension_0 sail_side_right sail_direction_sw cordslack_0 ]\n\n[ heading_s tension_2 sail_side_left ] -> [ heading_s tension_2 sail_side_left sail_direction_n cordslack_0 ]\n[ heading_s tension_2 sail_side_right ] -> [ heading_s tension_2 sail_side_right sail_direction_n cordslack_0 ]\n[ heading_s tension_1 sail_side_left ] -> [ heading_s tension_1 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_s tension_1 sail_side_right ] -> [ heading_s tension_1 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_s tension_0 sail_side_left ] -> [ heading_s tension_0 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_s tension_0 sail_side_right ] -> [ heading_s tension_0 sail_side_right sail_direction_w cordslack_0 ]\n\n[ heading_sw tension_2 sail_side_left ] -> [ heading_sw tension_2 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_sw tension_2 sail_side_right ] -> [ heading_sw tension_2 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_sw tension_1 sail_side_left ] -> [ heading_sw tension_1 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_sw tension_1 sail_side_right ] -> [ heading_sw tension_1 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_sw tension_0 sail_side_left ] -> [ heading_sw tension_0 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_sw tension_0 sail_side_right ] -> [ heading_sw tension_0 sail_side_left sail_direction_se cordslack_0 ]\n\n[ heading_w tension_2 sail_side_left ] -> [ heading_w tension_2 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_w tension_2 sail_side_right ] -> [ heading_w tension_2 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_w tension_1 sail_side_left ] -> [ heading_w tension_1 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_w tension_1 sail_side_right ] -> [ heading_w tension_1 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_w tension_0 sail_side_left ] -> [ heading_w tension_0 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_w tension_0 sail_side_right ] -> [ heading_w tension_0 sail_side_left sail_direction_s cordslack_0 ]\n\n[ heading_nw tension_2 sail_side_left ] -> [ heading_nw tension_2 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_nw tension_2 sail_side_right ] -> [ heading_nw tension_2 sail_side_right sail_direction_se cordslack_0 ]\n[ heading_nw tension_1 sail_side_left ] -> [ heading_nw tension_1 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_nw tension_1 sail_side_right ] -> [ heading_nw tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_nw tension_0 sail_side_left ] -> [ heading_nw tension_0 sail_side_left sail_direction_s cordslack_1 ]\n[ heading_nw tension_0 sail_side_right ] -> [ heading_nw tension_0 sail_side_right sail_direction_s cordslack_1 ]\n\n\n\n(rudder steering)\n[ left player rudderdir_c ]->[player rudderdir_l] sfx6\n[ left player rudderdir_r ]->[player rudderdir_c] sfx6\n\n[ right player rudderdir_l ]->[player rudderdir_c] sfx6\n[ right player rudderdir_c ]->[player rudderdir_r] sfx6\n\n\n[ moving player ]->[player]\n\n(Calculating the movement direction! )\n\n( [againing heading_n sail_direction_n ] -> [againing heading_n sail_direction_n movement_n ] )\n( [againing heading_n sail_direction_ne ] -> [againing heading_n sail_direction_ne movement_n ] )\n( [againing heading_n sail_direction_e ] -> [againing heading_n sail_direction_e movement_n ] )\n( [againing heading_n sail_direction_se ] -> [againing heading_n sail_direction_se movement_n ] )\n[againing heading_n sail_direction_s rudderdir_l ] -> [againing heading_n sail_direction_s rudderdir_l domove ]\n[againing heading_n sail_direction_s rudderdir_r ] -> [againing heading_n sail_direction_s rudderdir_r domove ]\n( [againing heading_n sail_direction_sw ] -> [againing heading_n sail_direction_sw movement_n ] )\n( [againing heading_n sail_direction_w ] -> [againing heading_n sail_direction_w movement_n ] )\n( [againing heading_n sail_direction_nw ] -> [againing heading_n sail_direction_nw movement_n ] )\n\n( [againing heading_ne sail_direction_n ] -> [againing heading_ne sail_direction_n movement_ne ] )\n( [againing heading_ne sail_direction_ne ] -> [againing heading_ne sail_direction_ne movement_ne ] )\n( [againing heading_ne sail_direction_e ] -> [againing heading_ne sail_direction_e movement_ne ] )\n( [againing heading_ne sail_direction_se ] -> [againing heading_ne sail_direction_se movement_ne ] )\n( [againing heading_ne sail_direction_s ] -> [againing heading_ne sail_direction_s movement_ne ] )\n[againing heading_ne sail_direction_sw ] -> [againing heading_ne sail_direction_sw domove ]\n( [againing heading_ne sail_direction_w ] -> [againing heading_ne sail_direction_w movement_ne ] )\n( [againing heading_ne sail_direction_nw ] -> [againing heading_ne sail_direction_nw movement_ne ] )\n\n( [againing heading_e sail_direction_n ] -> [againing heading_e sail_direction_n movement_e ] )\n( [againing heading_e sail_direction_ne ] -> [againing heading_e sail_direction_ne movement_e ] )\n( [againing heading_e sail_direction_e ] -> [againing heading_e sail_direction_e movement_e ] )\n( [againing heading_e sail_direction_se ] -> [againing heading_e sail_direction_se movement_e ] )\n( [againing heading_e sail_direction_s ] -> [againing heading_e sail_direction_s movement_e ] )\n[againing heading_e sail_direction_sw ] -> [againing heading_e sail_direction_sw domove ]\n( [againing heading_e sail_direction_w ] -> [againing heading_e sail_direction_w movement_e ] )\n( [againing heading_e sail_direction_nw ] -> [againing heading_e sail_direction_nw movement_e ] )\n\n( [againing heading_se sail_direction_n ] -> [againing heading_se sail_direction_n movement_se ] )\n[againing heading_se sail_direction_ne ] -> [againing heading_se sail_direction_ne domove ]\n( [againing heading_se sail_direction_e ] -> [againing heading_se sail_direction_e movement_se ] )\n( [againing heading_se sail_direction_se ] -> [againing heading_se sail_direction_se movement_se ] )\n( [againing heading_se sail_direction_s ] -> [againing heading_se sail_direction_s movement_se ] )\n[againing heading_se sail_direction_sw ] -> [againing heading_se sail_direction_sw domove ]\n[againing heading_se sail_direction_w ] -> [againing heading_se sail_direction_w domove ]\n[againing heading_se sail_direction_nw ] -> [againing heading_se sail_direction_nw domove ]\n\n( [againing heading_s sail_direction_n ] -> [againing heading_s sail_direction_n movement_s ] )\n[againing heading_s sail_direction_ne ] -> [againing heading_s sail_direction_ne domove ]\n[againing heading_s sail_direction_e ] -> [againing heading_s sail_direction_e domove ]\n( [againing heading_s sail_direction_se ] -> [againing heading_s sail_direction_se movement_s ] )\n( [againing heading_s sail_direction_s ] -> [againing heading_s sail_direction_s movement_s ] )\n( [againing heading_s sail_direction_sw ] -> [againing heading_s sail_direction_sw movement_s ] )\n[againing heading_s sail_direction_w ] -> [againing heading_s sail_direction_w domove ]\n[againing heading_s sail_direction_nw ] -> [againing heading_s sail_direction_nw domove ]\n\n( [againing heading_sw sail_direction_n ] -> [againing heading_sw sail_direction_n movement_sw ] )\n[againing heading_sw sail_direction_ne ] -> [againing heading_sw sail_direction_ne domove ]\n[againing heading_sw sail_direction_e ] -> [againing heading_sw sail_direction_e domove ]\n[againing heading_sw sail_direction_se ] -> [againing heading_sw sail_direction_se domove ]\n( [againing heading_sw sail_direction_s ] -> [againing heading_sw sail_direction_s movement_sw ] )\n( [againing heading_sw sail_direction_sw ] -> [againing heading_sw sail_direction_sw movement_sw ] )\n( [againing heading_sw sail_direction_w ] -> [againing heading_sw sail_direction_w movement_sw ] )\n[againing heading_sw sail_direction_nw ] -> [againing heading_sw sail_direction_nw domove ]\n\n\n( [againing heading_w sail_direction_n ] -> [againing heading_w sail_direction_n movement_w ] )\n( [againing heading_w sail_direction_ne ] -> [againing heading_w sail_direction_ne movement_w ] )\n( [againing heading_w sail_direction_e ] -> [againing heading_w sail_direction_e movement_w ] )\n[againing heading_w sail_direction_se ] -> [againing heading_w sail_direction_se domove ]\n( [againing heading_w sail_direction_s ] -> [againing heading_w sail_direction_s movement_w ] )\n( [againing heading_w sail_direction_sw ] -> [againing heading_w sail_direction_sw movement_w ] )\n( [againing heading_w sail_direction_w ] -> [againing heading_w sail_direction_w movement_w ] )\n( [againing heading_w sail_direction_nw ] -> [againing heading_w sail_direction_nw movement_w ] )\n\n\n( [againing heading_nw sail_direction_n ] -> [againing heading_nw sail_direction_n movement_nw ] )\n( [againing heading_nw sail_direction_ne ] -> [againing heading_nw sail_direction_ne movement_nw ] )\n( [againing heading_nw sail_direction_e ] -> [againing heading_nw sail_direction_e movement_nw ] )\n[againing heading_nw sail_direction_se ] -> [againing heading_nw sail_direction_se domove ]\n( [againing heading_nw sail_direction_s ] -> [againing heading_nw sail_direction_s movement_nw ] )\n( [againing heading_nw sail_direction_sw ] -> [againing heading_nw sail_direction_sw movement_nw ] )\n( [againing heading_nw sail_direction_w ] -> [againing heading_nw sail_direction_w movement_nw ] )\n( [againing heading_nw sail_direction_nw ] -> [againing heading_nw sail_direction_nw movement_nw ] )\n\n(rudder rotation)\n\n[ domove no hasturned ] [ rudderdir_l heading_n ] -> [ domove hasturned ] [ rudderdir_l heading_nw ]\n[ domove no hasturned ] [ rudderdir_l heading_ne ] -> [ domove hasturned ] [ rudderdir_l heading_n ]\n[ domove no hasturned ] [ rudderdir_l heading_e ] -> [ domove hasturned ] [ rudderdir_l heading_ne ]\n[ domove no hasturned ] [ rudderdir_l heading_se ] -> [ domove hasturned ] [ rudderdir_l heading_e ]\n[ domove no hasturned ] [ rudderdir_l heading_s ] -> [ domove hasturned ] [ rudderdir_l heading_se ]\n[ domove no hasturned ] [ rudderdir_l heading_sw ] -> [ domove hasturned ] [ rudderdir_l heading_s ]\n[ domove no hasturned ] [ rudderdir_l heading_w ] -> [ domove hasturned ] [ rudderdir_l heading_sw ]\n[ domove no hasturned ] [ rudderdir_l heading_nw ] -> [ domove hasturned ] [ rudderdir_l heading_w ]\n\n[ domove no hasturned ] [ rudderdir_r heading_n ] -> [ domove hasturned ] [ rudderdir_r heading_ne ]\n[ domove no hasturned ] [ rudderdir_r heading_ne ] -> [ domove hasturned ] [ rudderdir_r heading_e ]\n[ domove no hasturned ] [ rudderdir_r heading_e ] -> [ domove hasturned ] [ rudderdir_r heading_se ]\n[ domove no hasturned ] [ rudderdir_r heading_se ] -> [ domove hasturned ] [ rudderdir_r heading_s ]\n[ domove no hasturned ] [ rudderdir_r heading_s ] -> [ domove hasturned ] [ rudderdir_r heading_sw ]\n[ domove no hasturned ] [ rudderdir_r heading_sw ] -> [ domove hasturned ] [ rudderdir_r heading_w ]\n[ domove no hasturned ] [ rudderdir_r heading_w ] -> [ domove hasturned ] [ rudderdir_r heading_nw ]\n[ domove no hasturned ] [ rudderdir_r heading_nw ] -> [ domove hasturned ] [ rudderdir_r heading_n ]\n\n[hasturned]->[]\n\n\n[ domove heading_n ] -> [ heading_n movement_n ]\n[ domove heading_ne ] -> [ heading_ne movement_ne ]\n[ domove heading_e ] -> [ heading_e movement_e ]\n[ domove heading_se ] -> [ heading_se movement_se ]\n[ domove heading_s ] -> [ heading_s movement_s ]\n[ domove heading_sw ] -> [ heading_sw movement_sw ]\n[ domove heading_w ] -> [ heading_w movement_w ]\n[ domove heading_nw ] -> [ heading_nw movement_nw ]\n\nright [ movement_ne | ] -> [ | movement_n ]\nright [ movement_se | ] -> [ | movement_s ]\nleft [ movement_nw | ] -> [ | movement_n ]\nleft [ movement_sw | ] -> [ | movement_s ]\n\nup [ movement_n | ] -> [ | movement_target ]\nright [ movement_e | ] -> [ | movement_target ]\ndown [ movement_s | ] -> [ | movement_target ]\nleft [ movement_w | ] -> [ | movement_target ]\n\n\n( [ movement_target ] [ player heading rudderdir tension sail_side sail_direction ] -> [ player heading rudderdir tension sail_side sail_direction] [] )\n\n(some bug(?) whereby I can't replace the above with the below)\n\nrandom [ movement_target ] [ player ] -> [ movement_target player ] []\nrandom [ movement_target ] [ heading ] -> [ movement_target heading ] []\nrandom [ movement_target ] [ rudderdir ] -> [ movement_target rudderdir ] []\nrandom [ movement_target ] [ tension ] -> [ movement_target tension ] []\nrandom [ movement_target ] [ sail_side ] -> [ movement_target sail_side ] []\nrandom [ movement_target ] [ sail_direction ] -> [ movement_target sail_direction ] []\nrandom [ movement_target]->[]\n\n\n(calculate sail direction / cord slack)\n\n[ heading_n tension_2 sail_side_left ] -> [ heading_n tension_2 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_n tension_2 sail_side_right ] -> [ heading_n tension_2 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_n tension_1 sail_side_left ] -> [ heading_n tension_1 sail_side_left sail_direction_s cordslack_1 ]\n[ heading_n tension_1 sail_side_right ] -> [ heading_n tension_1 sail_side_right sail_direction_s cordslack_1 ]\n[ heading_n tension_0 sail_side_left ] -> [ heading_n tension_0 sail_side_left sail_direction_s cordslack_2 ]\n[ heading_n tension_0 sail_side_right ] -> [ heading_n tension_0 sail_side_right sail_direction_s cordslack_2 ]\n\n\n[ heading_ne tension_2 sail_side_left ] -> [ heading_ne tension_2 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_ne tension_2 sail_side_right ] -> [ heading_ne tension_2 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_ne tension_1 sail_side_left ] -> [ heading_ne tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_ne tension_1 sail_side_right ] -> [ heading_ne tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_ne tension_0 sail_side_left ] -> [ heading_ne tension_0 sail_side_right sail_direction_s cordslack_1 ]\n[ heading_ne tension_0 sail_side_right ] -> [ heading_ne tension_0 sail_side_right sail_direction_s cordslack_1 ]\n\n\n[ heading_e tension_2 sail_side_left ] -> [ heading_e tension_2 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_e tension_2 sail_side_right ] -> [ heading_e tension_2 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_e tension_1 sail_side_left ] -> [ heading_e tension_1 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_e tension_1 sail_side_right ] -> [ heading_e tension_1 sail_side_right sail_direction_sw cordslack_0 ]\n[ heading_e tension_0 sail_side_left ] -> [ heading_e tension_0 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_e tension_0 sail_side_right ] -> [ heading_e tension_0 sail_side_right sail_direction_s cordslack_0 ]\n\n\n[ heading_se tension_2 sail_side_left ] -> [ heading_se tension_2 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_se tension_2 sail_side_right ] -> [ heading_se tension_2 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_se tension_1 sail_side_left ] -> [ heading_se tension_1 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_se tension_1 sail_side_right ] -> [ heading_se tension_1 sail_side_right sail_direction_w cordslack_0 ]\n[ heading_se tension_0 sail_side_left ] -> [ heading_se tension_0 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_se tension_0 sail_side_right ] -> [ heading_se tension_0 sail_side_right sail_direction_sw cordslack_0 ]\n\n[ heading_s tension_2 sail_side_left ] -> [ heading_s tension_2 sail_side_left sail_direction_n cordslack_0 ]\n[ heading_s tension_2 sail_side_right ] -> [ heading_s tension_2 sail_side_right sail_direction_n cordslack_0 ]\n[ heading_s tension_1 sail_side_left ] -> [ heading_s tension_1 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_s tension_1 sail_side_right ] -> [ heading_s tension_1 sail_side_right sail_direction_nw cordslack_0 ]\n[ heading_s tension_0 sail_side_left ] -> [ heading_s tension_0 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_s tension_0 sail_side_right ] -> [ heading_s tension_0 sail_side_right sail_direction_w cordslack_0 ]\n\n[ heading_sw tension_2 sail_side_left ] -> [ heading_sw tension_2 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_sw tension_2 sail_side_right ] -> [ heading_sw tension_2 sail_side_left sail_direction_ne cordslack_0 ]\n[ heading_sw tension_1 sail_side_left ] -> [ heading_sw tension_1 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_sw tension_1 sail_side_right ] -> [ heading_sw tension_1 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_sw tension_0 sail_side_left ] -> [ heading_sw tension_0 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_sw tension_0 sail_side_right ] -> [ heading_sw tension_0 sail_side_left sail_direction_se cordslack_0 ]\n\n[ heading_w tension_2 sail_side_left ] -> [ heading_w tension_2 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_w tension_2 sail_side_right ] -> [ heading_w tension_2 sail_side_left sail_direction_e cordslack_0 ]\n[ heading_w tension_1 sail_side_left ] -> [ heading_w tension_1 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_w tension_1 sail_side_right ] -> [ heading_w tension_1 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_w tension_0 sail_side_left ] -> [ heading_w tension_0 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_w tension_0 sail_side_right ] -> [ heading_w tension_0 sail_side_left sail_direction_s cordslack_0 ]\n\n[ heading_nw tension_2 sail_side_left ] -> [ heading_nw tension_2 sail_side_left sail_direction_se cordslack_0 ]\n[ heading_nw tension_2 sail_side_right ] -> [ heading_nw tension_2 sail_side_right sail_direction_se cordslack_0 ]\n[ heading_nw tension_1 sail_side_left ] -> [ heading_nw tension_1 sail_side_left sail_direction_s cordslack_0 ]\n[ heading_nw tension_1 sail_side_right ] -> [ heading_nw tension_1 sail_side_right sail_direction_s cordslack_0 ]\n[ heading_nw tension_0 sail_side_left ] -> [ heading_nw tension_0 sail_side_left sail_direction_s cordslack_1 ]\n[ heading_nw tension_0 sail_side_right ] -> [ heading_nw tension_0 sail_side_right sail_direction_s cordslack_1 ]\n\n( [ heading_n ] -> again )\n\n(ship-drawing)\n(orthogonal hull drawing)\nup late [ | player heading_n ] -> [ hull_n_stern | hull_n_bow player heading_n ]\nright late [ | player heading_e ] -> [ hull_e_stern | hull_e_bow player heading_e ]\ndown late [ | player heading_s ] -> [ hull_s_stern | hull_s_bow player heading_s ]\nleft late [ | player heading_w ] -> [ hull_w_stern | hull_w_bow player heading_w ]\n\n(diagonal hull drawing)\nright late [ | player heading_ne ] -> [ hull_diag_nw heading_ne | hull_ne_bow player heading_ne ]\nup late [ | player heading_ne ] -> [ hull_diag_se | hull_ne_bow player heading_ne ]\nup late [ | hull_diag_nw heading_ne ] -> [ hull_ne_stern | hull_diag_nw ]\n\ndown late [ | player heading_se ] -> [ hull_diag_ne heading_se | hull_se_bow player heading_se ]\nright late [ | player heading_se ] -> [ hull_diag_sw | hull_se_bow player heading_se ]\nright late [ | hull_diag_ne heading_se ] -> [ hull_se_stern | hull_diag_ne ]\n\nleft late [ | player heading_sw ] -> [ hull_diag_se heading_sw | hull_sw_bow player heading_sw ]\ndown late [ | player heading_sw ] -> [ hull_diag_nw | hull_sw_bow player heading_sw ]\ndown late [ | hull_diag_se heading_sw ] -> [ hull_sw_stern | hull_diag_se ]\n\n\nup late [ | player heading_nw ] -> [ hull_diag_sw heading_nw | hull_nw_bow player heading_nw ]\nleft late [ | player heading_nw ] -> [ hull_diag_ne | hull_nw_bow player heading_nw ]\nleft late [ | hull_diag_sw heading_nw ] -> [ hull_nw_stern | hull_diag_sw ]\n\n\n(rudder drawing)\nlate [ rudderdir_l ] [ hull_n_stern ] -> [rudderdir_l ] [ hull_n_stern hull_n_rl ]\nlate [ rudderdir_c ] [ hull_n_stern ] -> [rudderdir_c ] [ hull_n_stern hull_n_rc ]\nlate [ rudderdir_r ] [ hull_n_stern ] -> [rudderdir_r ] [ hull_n_stern hull_n_rr ]\n\nlate [ rudderdir_l ] [ hull_ne_stern ] -> [rudderdir_l ] [ hull_ne_stern hull_ne_rl ]\nlate [ rudderdir_c ] [ hull_ne_stern ] -> [rudderdir_c ] [ hull_ne_stern hull_ne_rc ]\nlate [ rudderdir_r ] [ hull_ne_stern ] -> [rudderdir_r ] [ hull_ne_stern hull_ne_rr ]\n\nlate [ rudderdir_l ] [ hull_e_stern ] -> [rudderdir_l ] [ hull_e_stern hull_e_rl ]\nlate [ rudderdir_c ] [ hull_e_stern ] -> [rudderdir_c ] [ hull_e_stern hull_e_rc ]\nlate [ rudderdir_r ] [ hull_e_stern ] -> [rudderdir_r ] [ hull_e_stern hull_e_rr ]\n\nlate [ rudderdir_l ] [ hull_se_stern ] -> [rudderdir_l ] [ hull_se_stern hull_se_rl ]\nlate [ rudderdir_c ] [ hull_se_stern ] -> [rudderdir_c ] [ hull_se_stern hull_se_rc ]\nlate [ rudderdir_r ] [ hull_se_stern ] -> [rudderdir_r ] [ hull_se_stern hull_se_rr ]\n\nlate [ rudderdir_l ] [ hull_s_stern ] -> [rudderdir_l ] [ hull_s_stern hull_s_rl ]\nlate [ rudderdir_c ] [ hull_s_stern ] -> [rudderdir_c ] [ hull_s_stern hull_s_rc ]\nlate [ rudderdir_r ] [ hull_s_stern ] -> [rudderdir_r ] [ hull_s_stern hull_s_rr ]\n\nlate [ rudderdir_l ] [ hull_sw_stern ] -> [rudderdir_l ] [ hull_sw_stern hull_sw_rl ]\nlate [ rudderdir_c ] [ hull_sw_stern ] -> [rudderdir_c ] [ hull_sw_stern hull_sw_rc ]\nlate [ rudderdir_r ] [ hull_sw_stern ] -> [rudderdir_r ] [ hull_sw_stern hull_sw_rr ]\n\nlate [ rudderdir_l ] [ hull_w_stern ] -> [rudderdir_l ] [ hull_w_stern hull_w_rl ]\nlate [ rudderdir_c ] [ hull_w_stern ] -> [rudderdir_c ] [ hull_w_stern hull_w_rc ]\nlate [ rudderdir_r ] [ hull_w_stern ] -> [rudderdir_r ] [ hull_w_stern hull_w_rr ]\n\nlate [ rudderdir_l ] [ hull_nw_stern ] -> [rudderdir_l ] [ hull_nw_stern hull_nw_rl ]\nlate [ rudderdir_c ] [ hull_nw_stern ] -> [rudderdir_c ] [ hull_nw_stern hull_nw_rc ]\nlate [ rudderdir_r ] [ hull_nw_stern ] -> [rudderdir_r ] [ hull_nw_stern hull_nw_rr ]\n\n(sail-drawing)\n\nlate up [ sail_direction_n | ] -> [ sail_direction_n sail_n_1 | sail_n_2 ]\nlate right [ sail_direction_e | ] -> [ sail_direction_e sail_e_1 | sail_e_2 ]\nlate down [ sail_direction_s | ] -> [ sail_direction_s sail_s_1 | sail_s_2 ]\nlate left [ sail_direction_w | ] -> [ sail_direction_w sail_w_1 | sail_w_2 ]\n\nlate right [ sail_direction_ne | ] -> [sail_direction_ne sail_ne_1 | sail_ne_2]\nlate up [ sail_ne_2 | ] -> [sail_ne_2 | sail_ne_3 ]\n\nlate down [ sail_direction_se | ] -> [sail_direction_se sail_se_1 | sail_se_2]\nlate right [ sail_se_2 | ] -> [sail_se_2 | sail_se_3 ]\n\nlate down [ sail_direction_sw | ] -> [sail_direction_sw sail_sw_1 | sail_sw_2]\nlate left [ sail_sw_2 | ] -> [sail_sw_2 | sail_sw_3 ]\n\nlate left [ sail_direction_nw | ] -> [sail_direction_nw sail_nw_1 | sail_nw_2]\nlate up [ sail_nw_2 | ] -> [sail_nw_2 | sail_nw_3 ]\n\n\n(sailcord drawing omg I'm so sorry this is terrible)\n\nlate right [cordslack_1] [ sail_s_2 | hull_nw_stern ] -> [cordslack_1] [ sail_s_2 sailcord_cordslack_south_left | hull_nw_stern sailcord_sw ]\nlate right [cordslack_0] [ sail_s_2 | hull_nw_stern ] -> [cordslack_0] [ sail_s_2 sailcord_e | hull_nw_stern sailcord_w ]\n\n\nlate down [ hull_w_stern | sail_se_3 ] -> [ hull_w_stern sailcord_s | sail_se_3 sailcord_n ]\nlate [ sail_s_2 ] [ hull_w_stern ] -> [ sail_s_2 sailcord_ne ] [ hull_w_stern sailcord_sw ]\n\nlate down [ hull_sw_stern | sail_e_2 ] -> [ hull_sw_stern sailcord_s | sail_e_2 sailcord_n ] \nlate down [ hull_sw_stern | | sail_se_3 ] -> [ hull_sw_stern sailcord_s | sailcord_ns | sail_se_3 sailcord_n ] \nlate right [ sail_nw_3 | | hull_sw_stern ] -> [ sail_nw_3 sailcord_e | sailcord_ew | hull_sw_stern sailcord_w ]\n\nlate down [ cordslack_1 | sail_s_2 hull_n_stern ] -> [ cordslack_1 | sail_s_2 hull_n_stern cordslack_1 sailcord_cordslack_south_1 ]\nlate down [ cordslack_2 | sail_s_2 hull_n_stern ] -> [ cordslack_2 | sail_s_2 hull_n_stern sailcord_cordslack_south_2 ]\n\nlate right [ hull_s_stern | sail_ne_3 ] -> [ hull_s_stern sailcord_e | sail_ne_3 sailcord_w ]\nlate [ hull_s_stern ] [ sail_e_2 ] -> [ hull_s_stern sailcord_se ] [ sail_e_2 sailcord_nw ] \nlate right [ sail_nw_3 | hull_s_stern ] -> [ sail_nw_3 sailcord_e | hull_s_stern sailcord_w ]\nlate [ sail_w_2 ] [hull_s_stern ] -> [ sail_w_2 sailcord_ne ] [hull_s_stern sailcord_sw ]\n\nlate right [cordslack_1] [ hull_ne_stern | sail_s_2 ] -> [cordslack_1] [ hull_ne_stern sailcord_se | sail_s_2 sailcord_cordslack_south_right ]\nlate right [cordslack_0] [ hull_ne_stern | sail_s_2 ] -> [cordslack_0] [ hull_ne_stern sailcord_e | sail_s_2 sailcord_w ]\n\nlate [ hull_e_stern ] [ sail_s_2 ] -> [ hull_e_stern sailcord_se] [ sail_s_2 sailcord_nw ] \nlate down [hull_e_stern | sail_sw_3 ]->[hull_e_stern sailcord_s| sail_sw_3 sailcord_n]\n\nlate down [ hull_se_stern | sail_w_2 ] -> [ hull_se_stern sailcord_s | sail_w_2 sailcord_n ] \nlate down [ hull_se_stern | | sail_sw_3 ] -> [ hull_se_stern sailcord_s |sailcord_ns| sail_sw_3 sailcord_n ] \nlate right [hull_se_stern | | sail_ne_3 ] -> [hull_se_stern sailcord_e | sailcord_ew | sail_ne_3 sailcord_w ]\n\nlate [ againing ] ->[]\nlate [ movement ] ->[]\n\n\nlate [ hull obstacle ] [ player ] -> [ hull obstacle ] [ no player wreck_1 ] sfx3\nlate [ wreck_1 ] [hull_stern] -> [ wreck_1] [wreck_2]\nlate [wreck_1] [hull] ->[wreck_1] [no hull]\n\nlate [ hull buoy ] -> [ hull ] sfx5\n\n==============\nWINCONDITIONS\n==============\n\nno buoy\n\n=======\nLEVELS\n=======\n\n\nmessage The wind comes from the north. Press left and right to adjust rudder. Press up and down to adjust the sail tension. The goal is to collect all the buoys.\n\nmessage Lake 1 of 3 \n\nq-xxxxxxxxxxxxsj\nsd............zs\n-c.............a\nd..............i\nd..............u\nd..............i\nd..........b...u\nd..............i\nhe..p..........u\nsc.............i\nd..............a\nd..........b...a\nd..............a\nd.............qs\nd.............as\nswwwwwwwwwwwww'#\n\n\nmessage Lake 2 of 3 \n\nsssss-ssxxss--sssss-sxx--sss\nsshsxxxc..zxxxxxsgsxc..zssm'\nsjsc............afd.....zv,;\nssc.............zxc......ass\nsd..........b............zss\nsse.......................a-\nssd......qwe..............ss\nssc.......aswwwwwe.....b...a\n-d........z-sm'#mswe.......a\nsd.........zv,;l,n-d.......a\njd..p.......asxs-sxc......s-\njd.........qsc.zxc........a-\njd.........zc.............a-\n-se.......................as\nssc.............b....e...qss\nsd..................qje..ahs\nsse.................ahswwsss\nshswwe.qwwwwwwwe.qwwsssss-sc\nssss-swshjs--sjswm-smss-s-c.\n\n\nmessage Lake 3 of 3\n\nsssxxxxxxxxxxxxxxxxxxxshsjs-\nssc.....r.............zxjshs\nsc...r..........r.......zhgs\nd...........r............zfj\nd.........................zs\nd..p....r............r.....a\nd................r.........a\nd.......qwwwwwe............a\nd......qsxc...zwwwwe.......a\nd.....qhd.......zxjc.......a\nd....qjsc.........c....qe..a\nd...qssc..b..e.........d...a\nd..qm-d.....qse.......qd...a\nswwv,nse...qs-swwwwwwwj-wwws\n-s------wwws-s--s-j-s-ss-s--\n\n\nmessage Congratulations: you are the best sailer in the world!\n\n",["tick",2,0,"tick",1,"tick","tick",2,"tick",0,"tick",3,3,"tick",2,"tick","tick","tick","tick",1,"tick",0,"tick","tick","tick",3,"tick"],"background land:0,0,0,0,0,0,0,0,background land tree:1,0,background house4 land:2,2,2,1,0,0,0,0,0,0,0,2,0,background coast_e land:3,0,0,0,3,\n3,3,3,3,0,0,3,0,background house3 land:4,0,0,4,0,background coast_se land:5,background:6,background coast_ne land:7,3,5,6,6,6,6,6,7,5,6,7,0,\n0,0,0,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,background coast_n land:8,0,0,background coast_s land:9,6,6,6,6,6,6,\n6,6,6,6,6,6,6,6,6,8,1,1,9,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,\n7,0,0,9,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,8,0,5,6,6,6,6,6,\n6,6,6,6,6,6,6,6,6,6,background coast_nw land:10,0,9,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,\n6,8,4,9,6,6,6,6,6,10,6,6,6,6,6,6,6,6,6,6,8,2,0,background coast_sw land:11,6,6,6,background cordslack_0 hull_se_rr sailcord_s wreck_2:12,\nbackground coast_n land sail_w_2 sailcord_n:13,background coast_w land:14,11,6,6,6,6,6,6,6,6,8,0,0,9,6,6,6,6,background coast_ne cordslack_0 heading_se land rudderdir_r sail_direction_w sail_side_right sail_w_1 tension_1 wreck_1:15,0,1,11,6,10,11,6,6,\n6,6,8,1,1,9,6,6,background buoy:16,6,6,8,0,background land mountain1:17,14,0,5,6,6,6,6,8,1,1,9,6,6,6,\n6,6,8,background land mountain4:18,background land mountain2:19,0,5,6,6,6,6,6,8,0,0,9,6,6,6,6,6,8,background land mountain_blue2:20,background land mountain3 mountain_blue1:21,9,6,6,6,\n6,6,6,8,2,0,9,6,6,6,6,6,8,background land mountain_blue3:22,background land mountain1 mountain_blue1:23,0,11,6,6,6,6,6,7,0,0,0,14,11,\n6,6,6,8,18,19,1,9,6,6,16,6,6,6,8,0,background house2 land:24,background house1 land:25,9,6,6,6,7,0,background land mountain3:26,0,5,6,\n6,6,6,6,10,18,0,0,3,5,6,6,6,6,8,1,9,6,6,6,6,6,6,8,1,1,9,6,\n6,6,6,6,6,7,3,5,6,6,6,6,6,6,8,0,0,5,6,6,6,6,6,6,6,6,6,6,\n6,6,6,10,14,0,18,9,6,6,6,6,6,6,6,6,6,6,6,6,6,7,2,4,0,0,9,6,\n6,6,6,6,6,6,6,6,6,6,6,6,6,7,0,0,0,1,11,6,6,6,6,6,16,6,6,6,\n6,6,6,6,6,8,0,1,1,0,11,6,6,6,6,6,6,6,6,6,6,6,6,6,8,0,0,0,\n0,17,14,11,6,6,6,6,6,6,6,6,6,10,14,0,1,1,0,18,19,0,0,14,0,6,6,6,\n0,14,14,14,0,4,0,0,5,0,20,21,0,0,1,0,14,14,14,1,1,1,0,0,0,0,5,6,\n",4,"1627893570488.5464"] ], [ - "It gets its Feet Wet", - ["title It gets its Feet Wet\nauthor increpare\nhomepage www.increpare.com\n\nnorepeat_action\ncolor_palette 4\n\n( debug )\n( verbose_logging )\n\n\n\n========\nOBJECTS\n========\n\nface_pixel_brown 1\nbrown\n\nface_pixel_black 2\nblack\n\nface_pixel_lightbrown 3\nlightbrown\n\nface_pixel_pink 4\npink\n\nleg_pixel_highlighted q\nlightbrown\n\nleg_pixel_unhighlighted w\nbrown\n\nBackground\nlightblue\n\n\n\nWall\ngreen\n\nplayer\ngreen\n\n\nlegswitchmarker\ntransparent\n\nobject1 o\ngray\n\nobject2 k\nlightgray\n\nobject3 l\ndarkgray\n\n\nnofallmarker \nred\n00...\n0....\n.....\n.....\n.....\n\nleggrounded\nred\n..0..\n..00.\n.....\n.....\n.....\n\ninactivelegair\nred\n.....\n.....\n.....\n.0...\n0....\n\nbodygrounded\nred\n....0\n....0\n.....\n.....\n.....\n\nbodyraisedtag\nred\n.....\n.....\n.....\n...0.\n....0\n\ndomoveleft\ntransparent\n\ndomoveright\ntransparent \n\ncanmoveleft\nyellow\n0....\n.....\n.....\n.....\n.....\n\ncanmoveright\nyellow\n....0\n.....\n.....\n.....\n.....\n\ncanmoveup\nyellow\n..0..\n.....\n.....\n.....\n.....\n\nwater c\nblue\n\n=======\nLEGEND\n=======\n\nface_pixel = face_pixel_brown or face_pixel_black or face_pixel_lightbrown or face_pixel_pink\n\nleg = leg_pixel_highlighted or leg_pixel_unhighlighted\nobject = object1 or object2 or object3\n\n\ngondola = leg or face_pixel\nobstacle = face_pixel or wall or leg or object\nnongondolaobject = wall or object\nnonactivegondola = face_pixel or leg_pixel_unhighlighted\n\nmovable = gondola or object\n\n. = Background\n# = Wall\nP = Player\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nwater\nPlayer, Wall,face_pixel,leg_pixel_highlighted, leg_pixel_unhighlighted, object\nlegswitchmarker\nnofallmarker\nleggrounded\nbodygrounded\nbodyraisedtag\ninactivelegair\ndomoveleft\ndomoveright\ncanmoveup\ncanmoveleft\ncanmoveright\n\n======\nRULES\n======\n\n[ movable ] -> [ movable canmoveleft canmoveright canmoveup ]\n\nright [ canmoveright | wall ] -> [ | wall ]\nright [ obstacle canmoveright | obstacle no canmoveright ] -> [ obstacle | obstacle ]\n+ [ object1 no canmoveright ] [object1 canmoveright ] -> [ object1 ] [ object1 ]\n+ [ object2 no canmoveright ] [object2 canmoveright ] -> [ object2 ] [ object2 ]\n+ [ object3 no canmoveright ] [object3 canmoveright ] -> [ object3 ] [ object3 ]\n+ [ nonactivegondola no canmoveright ] [nonactivegondola canmoveright ] -> [ nonactivegondola ] [ nonactivegondola ]\n+ [ leg_pixel_highlighted no canmoveright ] [leg_pixel_highlighted canmoveright ] -> [ leg_pixel_highlighted ] [ leg_pixel_highlighted ]\n\nleft [ canmoveleft | wall ] -> [ | wall ]\nleft [ obstacle canmoveleft | obstacle no canmoveleft ] -> [ obstacle | obstacle ]\n+ [ object1 no canmoveleft ] [object1 canmoveleft ] -> [ object1 ] [ object1 ]\n+ [ object2 no canmoveleft ] [object2 canmoveleft ] -> [ object2 ] [ object2 ]\n+ [ object3 no canmoveleft ] [object3 canmoveleft ] -> [ object3 ] [ object3 ]\n+ [ nonactivegondola no canmoveleft ] [nonactivegondola canmoveleft ] -> [ nonactivegondola ] [ nonactivegondola ]\n+ [ leg_pixel_highlighted no canmoveleft ] [leg_pixel_highlighted canmoveleft ] -> [ leg_pixel_highlighted ] [ leg_pixel_highlighted ]\n\n\nup [ canmoveup | wall ] -> [ | wall ]\nup [ obstacle canmoveup | obstacle no canmoveup ] -> [ obstacle | obstacle ]\n+ [ object1 no canmoveup ] [object1 canmoveup ] -> [ object1 ] [ object1 ]\n+ [ object2 no canmoveup ] [object2 canmoveup ] -> [ object2 ] [ object2 ]\n+ [ object3 no canmoveup ] [object3 canmoveup ] -> [ object3 ] [ object3 ]\n+ [ nonactivegondola no canmoveup ] [nonactivegondola canmoveup ] -> [ nonactivegondola ] [ nonactivegondola ]\n+ [ leg_pixel_highlighted no canmoveup ] [leg_pixel_highlighted canmoveup ] -> [ leg_pixel_highlighted ] [ leg_pixel_highlighted ]\n\ndown [ leg | nongondolaobject ] -> [ leg leggrounded | nongondolaobject ]\nup [ leggrounded | leg ] -> [ leggrounded | leg leggrounded ]\n[ leggrounded ] [ gondola ] -> [ leggrounded ] [ gondola bodygrounded ]\n\ndown [leg_pixel_unhighlighted | no obstacle ] [player] -> [leg_pixel_unhighlighted | ] [ player inactivelegair ]\n\n\n(inactive leg grounded if head resting on something)\n\ndown [ face_pixel | nongondolaobject ] [ leg_pixel_unhighlighted ] [player] -> [ face_pixel | nongondolaobject ] [ leg_pixel_unhighlighted leggrounded ] [ player no inactivelegair ]\n\n(distribute movements to leg parts)\n[stationary player ] [ gondola ] -> [stationary player ] [ down gondola ] again\n\n(if gondola is pushing into object during gravity phase, cancel turn)\ndown [down gondola | nongondolaobject ] -> [ gondola nofallmarker | nongondolaobject ] again\n[nofallmarker]->cancel\n\n\n(swap legs if you press action)\n[ action player ] [ leg_pixel_highlighted ] -> [ action player ] [ leg_pixel_unhighlighted legswitchmarker ] \n[ action player ] [ leg_pixel_unhighlighted no legswitchmarker] -> [ action player ] [ leg_pixel_highlighted legswitchmarker ] \n[legswitchmarker] -> []\n\n\n(propagate motion from player to leg parts)\n[orthogonal player] [ leg_pixel_highlighted ] -> [ orthogonal player ] [ orthogonal leg_pixel_highlighted ] again\n\n\n(raise leg)\nup [ up leg_pixel_highlighted | leg_pixel_highlighted | face_pixel_brown ] -> [ | leg_pixel_highlighted | face_pixel_brown ]\n\n(lower leg into empty space if leg not grounded)\ndown [orthogonal player] [ down leg_pixel_highlighted no leggrounded | no obstacle ] -> [ player] [ down leg_pixel_highlighted | leg_pixel_highlighted ]\n\n(lower leg, pushing body up)\n\n(if pushing down while current leg is grounded, and while you have headspace, push whole gondola up)\nup [down player] [ leggrounded canmoveup ] [ gondola no bodyraisedtag | no obstacle ] -> [down player] [ leggrounded canmoveup ] [ | stationary gondola bodyraisedtag]\n\ndown [bodyraisedtag] [leg_pixel_highlighted | no obstacle ] -> [bodyraisedtag] [ leg_pixel_highlighted | leg_pixel_highlighted ]\n\n[bodyraisedtag]->[]\n\n(if active leg cannot move in the direction it would want to, mark the other leg as honorarily airborn)\n[ left player ] [ leg_pixel_highlighted no canmoveleft ] -> [ left player inactivelegair ] [ leg_pixel_highlighted leggrounded ]\n[ right player ] [ leg_pixel_highlighted no canmoveright ] -> [ right player inactivelegair ] [ leg_pixel_highlighted leggrounded ]\n\n(if moving current *grounded* leg left while other leg in air, keep it stationary and move body right instead)\n[ left player inactivelegair ] [ leg_pixel_highlighted leggrounded ] [ nonactivegondola canmoveright ] -> [ left player inactivelegair ] [ leg_pixel_highlighted leggrounded ] [ nonactivegondola domoveright ]\n\n[ domoveright ] [ moving gondola] -> [ domoveright ] [ gondola]\n\nright [ domoveright gondola | no obstacle ] -> [ | gondola ]\n\n\n\n(if moving current *grounded* leg right while other leg in air, keep it stationary and move body left instead)\n[ right player inactivelegair ] [leg_pixel_highlighted leggrounded] [ nonactivegondola canmoveleft ] -> [ right player inactivelegair ] [leg_pixel_highlighted leggrounded] [ nonactivegondola domoveleft ]\n\n[ domoveleft ] [ moving gondola] -> [ domoveleft ] [ gondola]\n\nleft [ domoveleft gondola | no obstacle ] -> [ | gondola ]\n\n(restrict horizontal leg movement)\nlate up [leg_pixel_highlighted | no gondola ] -> cancel\nlate up [leg_pixel_highlighted | face_pixel_pink ] -> cancel\nlate up [leg_pixel_unhighlighted | no gondola ] -> cancel\nlate up [leg_pixel_unhighlighted | face_pixel_pink ] -> cancel\n\n(maximum leg length)\nlate down [ leg | leg | leg | leg | leg]->cancel\n\n\n\nlate [leggrounded]->[]\nlate [bodygrounded]->[]\nlate [inactivelegair]->[]\n\nlate [canmoveleft]->[]\nlate [canmoveright]->[]\nlate [ canmoveup ]->[]\n\n==============\nWINCONDITIONS\n==============\nsome gondola on water\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n................................................................\n................................................................\n................................................................\n..................................#.............................\n..............................................#..#..#...........\n#......................###......................................\n#...............................................................\n#...............................................................\n#..12121...........................###..#.......................\n#..13231...........................###........#..#..#...........\n#..11411.....................#.#...###..........................\n#..w...q...............##################################.....##\n#..w...q............#####################################ccccc##\n#..w...q.........########################################ccccc##\n#..w...q......###########################################ccccc##\n################################################################\n##p#############################################################\n\nmessage It dips its toes in the water.\n", [3, 0, 0, 3, 1, 2, 2, 2, 2, 0, 3, 3, 4, 0, 0, 0, 3, 4, 1, 1, 0, 3, 1, 4, 2, 2, 4, 3, 2, 2, 4, 0, 0, 4, 1], "background:0,0,0,0,0,background wall:1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,background player:2,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,background face_pixel_brown:3,3,3,0,0,0,0,1,1,0,0,0,0,0,0,0,0,background face_pixel_black:4,background face_pixel_lightbrown:5,3,background leg_pixel_unhighlighted:6,0,0,0,1,1,0,0,0,0,0,0,0,0,3,\n4,background face_pixel_pink:7,0,0,0,0,1,1,0,0,0,0,0,0,0,0,4,5,3,background leg_pixel_highlighted:8,8,8,8,1,1,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,\n1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,\n0,0,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,\n0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,\n1,1,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,\n1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,\n0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,\n1,0,0,0,0,1,0,0,0,0,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,1,0,1,\n1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,\n0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,background water:9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,1,1,0,0,0,0,\n0,0,0,0,0,0,0,0,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,\n", 1, "1627893596068.238"] + "It gets its Feet Wet", + ["title It gets its Feet Wet\nauthor increpare\nhomepage www.increpare.com\n\nnorepeat_action\ncolor_palette 4\n\n( debug )\n( verbose_logging )\n\n\n\n========\nOBJECTS\n========\n\nface_pixel_brown 1\nbrown\n\nface_pixel_black 2\nblack\n\nface_pixel_lightbrown 3\nlightbrown\n\nface_pixel_pink 4\npink\n\nleg_pixel_highlighted q\nlightbrown\n\nleg_pixel_unhighlighted w\nbrown\n\nBackground\nlightblue\n\n\n\nWall\ngreen\n\nplayer\ngreen\n\n\nlegswitchmarker\ntransparent\n\nobject1 o\ngray\n\nobject2 k\nlightgray\n\nobject3 l\ndarkgray\n\n\nnofallmarker \nred\n00...\n0....\n.....\n.....\n.....\n\nleggrounded\nred\n..0..\n..00.\n.....\n.....\n.....\n\ninactivelegair\nred\n.....\n.....\n.....\n.0...\n0....\n\nbodygrounded\nred\n....0\n....0\n.....\n.....\n.....\n\nbodyraisedtag\nred\n.....\n.....\n.....\n...0.\n....0\n\ndomoveleft\ntransparent\n\ndomoveright\ntransparent \n\ncanmoveleft\nyellow\n0....\n.....\n.....\n.....\n.....\n\ncanmoveright\nyellow\n....0\n.....\n.....\n.....\n.....\n\ncanmoveup\nyellow\n..0..\n.....\n.....\n.....\n.....\n\nwater c\nblue\n\n=======\nLEGEND\n=======\n\nface_pixel = face_pixel_brown or face_pixel_black or face_pixel_lightbrown or face_pixel_pink\n\nleg = leg_pixel_highlighted or leg_pixel_unhighlighted\nobject = object1 or object2 or object3\n\n\ngondola = leg or face_pixel\nobstacle = face_pixel or wall or leg or object\nnongondolaobject = wall or object\nnonactivegondola = face_pixel or leg_pixel_unhighlighted\n\nmovable = gondola or object\n\n. = Background\n# = Wall\nP = Player\n\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nwater\nPlayer, Wall,face_pixel,leg_pixel_highlighted, leg_pixel_unhighlighted, object\nlegswitchmarker\nnofallmarker\nleggrounded\nbodygrounded\nbodyraisedtag\ninactivelegair\ndomoveleft\ndomoveright\ncanmoveup\ncanmoveleft\ncanmoveright\n\n======\nRULES\n======\n\n[ movable ] -> [ movable canmoveleft canmoveright canmoveup ]\n\nright [ canmoveright | wall ] -> [ | wall ]\nright [ obstacle canmoveright | obstacle no canmoveright ] -> [ obstacle | obstacle ]\n+ [ object1 no canmoveright ] [object1 canmoveright ] -> [ object1 ] [ object1 ]\n+ [ object2 no canmoveright ] [object2 canmoveright ] -> [ object2 ] [ object2 ]\n+ [ object3 no canmoveright ] [object3 canmoveright ] -> [ object3 ] [ object3 ]\n+ [ nonactivegondola no canmoveright ] [nonactivegondola canmoveright ] -> [ nonactivegondola ] [ nonactivegondola ]\n+ [ leg_pixel_highlighted no canmoveright ] [leg_pixel_highlighted canmoveright ] -> [ leg_pixel_highlighted ] [ leg_pixel_highlighted ]\n\nleft [ canmoveleft | wall ] -> [ | wall ]\nleft [ obstacle canmoveleft | obstacle no canmoveleft ] -> [ obstacle | obstacle ]\n+ [ object1 no canmoveleft ] [object1 canmoveleft ] -> [ object1 ] [ object1 ]\n+ [ object2 no canmoveleft ] [object2 canmoveleft ] -> [ object2 ] [ object2 ]\n+ [ object3 no canmoveleft ] [object3 canmoveleft ] -> [ object3 ] [ object3 ]\n+ [ nonactivegondola no canmoveleft ] [nonactivegondola canmoveleft ] -> [ nonactivegondola ] [ nonactivegondola ]\n+ [ leg_pixel_highlighted no canmoveleft ] [leg_pixel_highlighted canmoveleft ] -> [ leg_pixel_highlighted ] [ leg_pixel_highlighted ]\n\n\nup [ canmoveup | wall ] -> [ | wall ]\nup [ obstacle canmoveup | obstacle no canmoveup ] -> [ obstacle | obstacle ]\n+ [ object1 no canmoveup ] [object1 canmoveup ] -> [ object1 ] [ object1 ]\n+ [ object2 no canmoveup ] [object2 canmoveup ] -> [ object2 ] [ object2 ]\n+ [ object3 no canmoveup ] [object3 canmoveup ] -> [ object3 ] [ object3 ]\n+ [ nonactivegondola no canmoveup ] [nonactivegondola canmoveup ] -> [ nonactivegondola ] [ nonactivegondola ]\n+ [ leg_pixel_highlighted no canmoveup ] [leg_pixel_highlighted canmoveup ] -> [ leg_pixel_highlighted ] [ leg_pixel_highlighted ]\n\ndown [ leg | nongondolaobject ] -> [ leg leggrounded | nongondolaobject ]\nup [ leggrounded | leg ] -> [ leggrounded | leg leggrounded ]\n[ leggrounded ] [ gondola ] -> [ leggrounded ] [ gondola bodygrounded ]\n\ndown [leg_pixel_unhighlighted | no obstacle ] [player] -> [leg_pixel_unhighlighted | ] [ player inactivelegair ]\n\n\n(inactive leg grounded if head resting on something)\n\ndown [ face_pixel | nongondolaobject ] [ leg_pixel_unhighlighted ] [player] -> [ face_pixel | nongondolaobject ] [ leg_pixel_unhighlighted leggrounded ] [ player no inactivelegair ]\n\n(distribute movements to leg parts)\n[stationary player ] [ gondola ] -> [stationary player ] [ down gondola ] again\n\n(if gondola is pushing into object during gravity phase, cancel turn)\ndown [down gondola | nongondolaobject ] -> [ gondola nofallmarker | nongondolaobject ] again\n[nofallmarker]->cancel\n\n\n(swap legs if you press action)\n[ action player ] [ leg_pixel_highlighted ] -> [ action player ] [ leg_pixel_unhighlighted legswitchmarker ] \n[ action player ] [ leg_pixel_unhighlighted no legswitchmarker] -> [ action player ] [ leg_pixel_highlighted legswitchmarker ] \n[legswitchmarker] -> []\n\n\n(propagate motion from player to leg parts)\n[orthogonal player] [ leg_pixel_highlighted ] -> [ orthogonal player ] [ orthogonal leg_pixel_highlighted ] again\n\n\n(raise leg)\nup [ up leg_pixel_highlighted | leg_pixel_highlighted | face_pixel_brown ] -> [ | leg_pixel_highlighted | face_pixel_brown ]\n\n(lower leg into empty space if leg not grounded)\ndown [orthogonal player] [ down leg_pixel_highlighted no leggrounded | no obstacle ] -> [ player] [ down leg_pixel_highlighted | leg_pixel_highlighted ]\n\n(lower leg, pushing body up)\n\n(if pushing down while current leg is grounded, and while you have headspace, push whole gondola up)\nup [down player] [ leggrounded canmoveup ] [ gondola no bodyraisedtag | no obstacle ] -> [down player] [ leggrounded canmoveup ] [ | stationary gondola bodyraisedtag]\n\ndown [bodyraisedtag] [leg_pixel_highlighted | no obstacle ] -> [bodyraisedtag] [ leg_pixel_highlighted | leg_pixel_highlighted ]\n\n[bodyraisedtag]->[]\n\n(if active leg cannot move in the direction it would want to, mark the other leg as honorarily airborn)\n[ left player ] [ leg_pixel_highlighted no canmoveleft ] -> [ left player inactivelegair ] [ leg_pixel_highlighted leggrounded ]\n[ right player ] [ leg_pixel_highlighted no canmoveright ] -> [ right player inactivelegair ] [ leg_pixel_highlighted leggrounded ]\n\n(if moving current *grounded* leg left while other leg in air, keep it stationary and move body right instead)\n[ left player inactivelegair ] [ leg_pixel_highlighted leggrounded ] [ nonactivegondola canmoveright ] -> [ left player inactivelegair ] [ leg_pixel_highlighted leggrounded ] [ nonactivegondola domoveright ]\n\n[ domoveright ] [ moving gondola] -> [ domoveright ] [ gondola]\n\nright [ domoveright gondola | no obstacle ] -> [ | gondola ]\n\n\n\n(if moving current *grounded* leg right while other leg in air, keep it stationary and move body left instead)\n[ right player inactivelegair ] [leg_pixel_highlighted leggrounded] [ nonactivegondola canmoveleft ] -> [ right player inactivelegair ] [leg_pixel_highlighted leggrounded] [ nonactivegondola domoveleft ]\n\n[ domoveleft ] [ moving gondola] -> [ domoveleft ] [ gondola]\n\nleft [ domoveleft gondola | no obstacle ] -> [ | gondola ]\n\n(restrict horizontal leg movement)\nlate up [leg_pixel_highlighted | no gondola ] -> cancel\nlate up [leg_pixel_highlighted | face_pixel_pink ] -> cancel\nlate up [leg_pixel_unhighlighted | no gondola ] -> cancel\nlate up [leg_pixel_unhighlighted | face_pixel_pink ] -> cancel\n\n(maximum leg length)\nlate down [ leg | leg | leg | leg | leg]->cancel\n\n\n\nlate [leggrounded]->[]\nlate [bodygrounded]->[]\nlate [inactivelegair]->[]\n\nlate [canmoveleft]->[]\nlate [canmoveright]->[]\nlate [ canmoveup ]->[]\n\n==============\nWINCONDITIONS\n==============\nsome gondola on water\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\n................................................................\n................................................................\n................................................................\n..................................#.............................\n..............................................#..#..#...........\n#......................###......................................\n#...............................................................\n#...............................................................\n#..12121...........................###..#.......................\n#..13231...........................###........#..#..#...........\n#..11411.....................#.#...###..........................\n#..w...q...............##################################.....##\n#..w...q............#####################################ccccc##\n#..w...q.........########################################ccccc##\n#..w...q......###########################################ccccc##\n################################################################\n##p#############################################################\n\nmessage It dips its toes in the water.\n",[3,0,0,3,1,2,2,2,2,0,3,3,4,0,0,0,3,4,1,1,0,3,1,4,2,2,4,3,2,2,4,0,0,4,1],"background:0,0,0,0,0,background wall:1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,background player:2,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,background face_pixel_brown:3,3,3,0,0,0,0,1,1,0,0,0,0,0,0,0,0,background face_pixel_black:4,background face_pixel_lightbrown:5,3,background leg_pixel_unhighlighted:6,0,0,0,1,1,0,0,0,0,0,0,0,0,3,\n4,background face_pixel_pink:7,0,0,0,0,1,1,0,0,0,0,0,0,0,0,4,5,3,background leg_pixel_highlighted:8,8,8,8,1,1,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,\n1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,\n0,0,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,\n0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,\n1,1,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,\n1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,\n0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,\n1,0,0,0,0,1,0,0,0,0,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,1,0,1,\n1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,\n0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,background water:9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,1,1,0,0,0,0,\n0,0,0,0,0,0,0,0,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,\n",1,"1627893596068.238"] ], [ - "Neoprenanzieher", - ["title Neoprenanzieher\nauthor increpare\nhomepage www.increpare.com\nnoaction\n(thanks to auditoriumjohnson + oeschmid + bvoq + plurmorant for testing)\n\nrun_rules_on_level_start\n\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\norange lightbrown\n11111\n10111\n11111\n11101\n11111\n\n\nrock\ngray darkgray\n00000\n00000\n01000\n00100\n00000\n\nPlayerbody_main\n#f9d9bb\n\nPlayerfeet\n#f9d9bb\n\nplayerhead\n#f9d9bb #5b6ee1 #d95763\n00000\n01010\n00000\n02220\n00000\n\nanzug_membran_schwarz\nblack \n\nanzug_membran_obenhalbschwarz\nblack\n00000\n00000\n00000\n.....\n.....\n\nanzug_membran_untenhalbschwarz\nblack\n.....\n.....\n00000\n00000\n00000\n\nanzuggesicht\nblack\n00000\n0...0\n0...0\n0...0\n00000\n\nanzug_l l\nblack darkgray\n.000.\n.000.\n100.1\n00000\n.0000\n\nanzug_r r\nblack darkgray\n.000.\n.000.\n1.001\n00000\n0000.\n\nanzug_band_dick\nblack darkgray\n1111.\n00000\n00000\n00001\n1111.\n\nanzug_band_dunn\nblack darkgray\n.....\n11111\n00000\n11111\n.....\n\n\nwater w\n#5b6ee1 lightblue\n11111\n11011\n10101\n01110\n11111\n\nhaligned\ntransparent\n\nziehbarrieredown\n#00ffff\n..0..\n.....\n.....\n.....\n.....\n\nziehbarriereup\nwhite\n....0\n.....\n.....\n.....\n.....\n\nmembrane_oben\nred\n.....\n....0\n.....\n.....\n.....\n\nmembrane_unten\nyellow\n.....\n.....\n....0\n.....\n.....\n\nziehend_nördlich\npink\n.....\n.....\n.....\n....0\n.....\n\nziehend_südlich\npurple\n.....\n.....\n.....\n.....\n....0\n\nanzugdehnen\ntransparent\n\n=======\nLEGEND\n=======\n\nziehend = ziehend_nördlich or ziehend_südlich\nanzug_membran = anzug_membran_schwarz or anzug_membran_obenhalbschwarz or anzug_membran_untenhalbschwarz \nziehbarriere = ziehbarrieredown or ziehbarriereup\nplayerbody = Playerbody_main\nplayer = Playerbody or playerhead or Playerfeet\nanzug_band = anzug_band_dick or anzug_band_dunn\nanzug = anzug_l or anzug_r or anzug_band\npushable = player or anzug_l or anzug_r\nnoplayerpushable = anzug_l or anzug_r\nanzugrand = anzug_l or anzug_r\nirgendangezug = anzug_membran or anzuggesicht\nanzugprop = rock \nmembrane = membrane_oben or membrane_unten\n. = Background\n# = rock\nP = Playerbody_main\nh = playerhead\nf = Playerfeet\nkanntrag = player or rock\n\n\n=======\nSOUNDS\n=======\n\nsfx0 83395901 (suit fit)\nsfx1 51989101 (waterstep)\n\n================\nCOLLISIONLAYERS\n================\n\nhaligned\nmembrane\nziehbarriere\nziehend\nanzugdehnen\n\nBackground\nwater\nPlayer, rock, anzug_l, anzug_r\nanzug_band, anzuggesicht\nanzug_membran\n\n======\nRULES\n======\n\n[player]->again\n\nhorizontal [ > player | anzug_membran_schwarz no player | no player ]->cancel \n\nright [ anzug_l | playerhead ziehend_nördlich no ziehbarriere | no ziehbarriere | anzug_r ] -> [ | playerhead anzuggesicht | | ] sfx0\nright [ anzug_l | no ziehbarriere | no ziehbarriere playerhead ziehend_nördlich| anzug_r ] -> [ | | playerhead anzuggesicht | ] sfx0\n\n(allow you to push band from middle if you are membranized and hitting it with a new part of your body)\nvertical [ > player anzug_membran_schwarz | no player anzug_band ] [anzug_l] [anzug_r] -> [ > player anzug_membran_schwarz | anzug_band ] [> anzug_l] [> anzug_r]\n\nright [anzug_l | right player ] -> [ right anzug_l | right player ]\nleft [anzug_r | left player ] -> [ left anzug_r | left player ]\n[ > player | rock ] -> cancel\n[ > player | anzugrand | ziehbarriere ] -> cancel\n[ > player | anzugrand | rock ] -> cancel\n\n[ > player | pushable ] -> [ > player | > pushable ]\n\nright [ horizontal anzug_l | | | stationary anzug_r ] -> [ horizontal anzug_l | | | horizontal anzug_r ]\nright [ stationary anzug_l | | | horizontal anzug_r ] -> [ horizontal anzug_l | | | horizontal anzug_r ]\nright [ vertical anzug_l | ... | stationary anzug_r ] -> [ vertical anzug_l | ... | vertical anzug_r ]\nright [ stationary anzug_l | ... | vertical anzug_r ] -> [ vertical anzug_l | ... | vertical anzug_r ]\n\n[ vertical anzug_l ] [ anzug_band ] -> [ vertical anzug_l ] [ vertical anzug_band ] \n\nright [ anzug_l | moving player | | player | anzug_r ] -> [ moving anzug_l | moving player | | player | moving anzug_r ]\n\n(start tracking membrane points)\ndown [ > anzug_band no kanntrag | kanntrag no anzug_membran ] -> [ > anzug_band | kanntrag membrane_oben ]\n[ up anzug_band membrane_oben ] -> [ up anzug_band ]\n\nup [ > anzug_band no kanntrag | kanntrag no anzug_membran ] -> [ > anzug_band | kanntrag membrane_unten ]\n[ down anzug_band membrane_unten ] -> [ down anzug_band ]\n\n\n[ stationary player ] [ anzug_l |...|anzug_r] -> [ stationary player ] [ > anzug_l | ...|< anzug_r]\n[ stationary player ] [ anzug_l | | |anzug_r] -> [ stationary player ] [ stationary anzug_l | | | stationary anzug_r]\n\n[ > anzugrand | ziehbarriere ] -> [ anzugrand | ziehbarriere ]\n\n(if player is pushing an anzugbarriere from the outside, cancel moveoment)\n\nhorizontal [ > player no anzug_membran | anzug_membran] ->cancel\n\n(ziehend moves with player)\n[ moving player ziehend ] -> [ moving player moving ziehend ]\n\n\n\n\n(going down to put things on)\ndown [ > player no ziehend | anzug_band ] -> [ > player > ziehend_nördlich | anzug_band ]\nup [ > player no ziehend | anzug_band ] -> [ > player > ziehend_südlich | anzug_band ]\n(going up to remove things)\nup [ > player anzug_band ziehend_nördlich ] -> [ > player anzug_band ]\ndown [ > player anzug_band ziehend_südlich ] -> [ > player anzug_band ]\n\n\n\n\nlate [ anzuggesicht ] [ playerhead no anzuggesicht ] -> [ anzuggesicht ] [ playerhead anzuggesicht ]\nlate [ anzuggesicht no playerhead ] -> [ ]\n\nlate right [ anzug_l | | anzug_r ] -> cancel\n\n(require suit to be horizontally aligned)\nlate right [anzug_l | ... | anzug_r ] -> [ anzug_l haligned | ... | anzug_r ]\nlate [anzug_l no haligned ] -> cancel\nlate [haligned ]->[]\n\nlate [ anzug_band]->[]\nlate right [anzug_l | | | anzug_r ] -> [anzug_l | anzug_band_dick | anzug_band_dick | anzug_r ] \nlate right [ anzug_l | no anzug_band ] -> [anzug_l | anzug_band_dunn ]\nlate right [ anzug_band_dunn| no anzug_r ] -> [ anzug_band_dunn| anzug_band_dunn]\n\n(draw membrane)\nlate [ anzug_membran ] -> []\nlate [ ziehbarriere ] -> []\n\n(down)\n\nlate down [ membrane_oben | no ziehbarrieredown ] -> [ membrane_oben | ziehbarrieredown ]\nlate down [ ziehbarrieredown | no ziehbarrieredown ] -> [ ziehbarrieredown | ziehbarrieredown ]\n\n\nlate down [ membrane_oben anzug_band ] -> [membrane_oben anzug_band anzug_membran_obenhalbschwarz]\nlate down [ membrane_oben no anzug_band ] -> [membrane_oben anzug_membran_schwarz]\nlate down [ anzug_membran_schwarz | ziehbarrieredown no anzug_membran_schwarz no anzug_band ] -> [anzug_membran_schwarz |anzug_membran_schwarz]\nlate down [ anzug_membran_schwarz | anzug_band ] -> [ anzug_membran_schwarz | anzug_band anzug_membran_obenhalbschwarz ]\n\n\n(and up)\n\nlate up [ membrane_unten | no ziehbarriereup ] -> [ membrane_unten | ziehbarriereup ]\nlate up [ ziehbarriereup | no ziehbarriereup ] -> [ ziehbarriereup | ziehbarriereup ]\n\nlate up [ membrane_unten anzug_band ] -> [membrane_unten anzug_band anzug_membran_untenhalbschwarz]\nlate up [ membrane_unten no anzug_band ] -> [membrane_unten anzug_membran_schwarz]\nlate up [ anzug_membran_schwarz | ziehbarriereup no anzug_membran_schwarz no anzug_band ] -> [anzug_membran_schwarz |anzug_membran_schwarz]\nlate up [ anzug_membran_schwarz | anzug_band ] -> [ anzug_membran_schwarz | anzug_band anzug_membran_untenhalbschwarz ]\n\n\n\n\n\nlate down [ player ziehend_südlich | player anzug_band no ziehend_südlich ] -> [ player ziehend_südlich | player anzug_band ziehend_südlich ]\nlate up [ player ziehend_nördlich | player anzug_band no ziehend_nördlich ] -> [ player ziehend_nördlich | player anzug_band ziehend_nördlich ]\n\n\n(tidy up ziehends that are north of band, but also remove them as they leave)\nlate down [ ziehend_nördlich | anzug_band ] -> [ |anzug_band]\nlate up [ ziehend_südlich | anzug_band ] -> [ |anzug_band]\n\n(draw suit on person)\nlate [ anzug_band ziehend_nördlich ] -> [ anzug_band ziehend_nördlich anzug_membran_untenhalbschwarz ]\nlate [ anzug_band ziehend_südlich ] -> [ anzug_band ziehend_südlich anzug_membran_obenhalbschwarz ]\nlate [ no anzug_band ziehend ] -> [ ziehend anzug_membran_schwarz ]\n\n(Draw stretched head bit)\n\nlate up [ playerhead no anzuggesicht ziehend_nördlich anzug_membran_schwarz | ] -> [ playerhead ziehend_nördlich anzug_membran_schwarz |anzugdehnen]\nlate up [ no anzug_band anzugdehnen | ] -> [ anzugdehnen | anzugdehnen ]\nlate [anzugdehnen no anzug_band ] -> [ anzugdehnen anzug_membran_schwarz ]\nlate [anzugdehnen anzug_band ] -> [ anzugdehnen anzug_membran_untenhalbschwarz ]\nlate [anzugdehnen ziehbarriere ]->cancel\nlate [anzugdehnen rock ]->cancel\nlate [anzugdehnen anzugrand ]->cancel\nlate [anzugdehnen]->[]\n\n(Draw stretched leg big)\n\nlate down [ Playerfeet ziehend_südlich anzug_membran_schwarz | ] -> [ Playerfeet ziehend_südlich anzug_membran_schwarz |anzugdehnen]\nlate down [ no anzug_band anzugdehnen | ] -> [ anzugdehnen | anzugdehnen ]\nlate [anzugdehnen no anzug_band ] -> [ anzugdehnen anzug_membran_schwarz ]\nlate [anzugdehnen anzug_band ] -> [ anzugdehnen anzug_membran_obenhalbschwarz ]\nlate [anzugdehnen ziehbarriere ]->cancel\nlate [anzugdehnen rock ]->cancel\nlate [anzugdehnen anzugrand ]->cancel\nlate [anzugdehnen]->[]\n\nlate [ anzuggesicht ] -> [ anzuggesicht no anzug_membran_schwarz ]\n\nlate horizontal [ziehbarriere ziehend anzug_band |no ziehbarriere ziehend ]-> cancel\nlate [ player no irgendangezug water ]->cancel\n\nlate [ player irgendangezug water ] -> sfx1\n\n\n(stop stretched bits from going OOB)\n\n==============\nWINCONDITIONS\n==============\nsome anzuggesicht\nall player on water\nsome anzuggesicht\n\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 1\n\nmessage Kann kaum warten in den See zu springen. Muss aber erst meinen Neoprenanzug anziehen...\n\n######################################\n##############..........##############\n############..............############\n#######......................#########\n######...........................#####\n######....................h.......####\n#####...................ppppp......###\n#####....................pfp........##\n#####....................p.p........##\n#####..............#.....f.f.........#\n#####.......#......#.................#\n#####..............#.......l..r......#\n#####................................#\n###ww................................#\n##wwwww..............................#\n##wwwwwww...........................##\n##wwwwwwwww.........................##\n#wwwwwwwwwwwww......................##\n#wwwwwwwwwwwwwwww...#####..........###\n#wwwwwwwwwwwwwwwwwwww#####......######\n#wwwwwwwwwwwwwwwwwwww#################\n#wwwwwwwwwwwwwwwwwwww#################\n##wwwwwwwwwwwwwwwwww##################\n###wwwwwwwwwwwwwww####################\n####wwwwwwwwwww#######################\n######################################\n\n\n\nmessage Scheisse! Das Wasser is so verdammt kalt!\n", [3, 3, 3, 2, 3, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 0, 0, 3, 3, 3, 2, 2, 2, 2, 1, 2, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 1, 1, 1, 3, 2, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 0, 0, 3, 3, 3, 2, 2, 2, 2, 1, 1, 2, 2, 1, 0, 2, 2, 0, 0, 2, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 3, 2, 2, 2, 2, 3, 3, 2, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 3, 3], "background rock: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,background water:1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,background:2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,\n1,1,1,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,2,2,2,2,2,\n2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,\n1,1,1,1,1,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,0,0,0,0,2,2,2,\n2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,0,0,0,0,2,2,2,anzug_l background:3,2,2,2,2,2,2,2,2,2,2,1,\n1,1,1,1,1,1,1,0,background rock ziehbarriereup:4,4,background ziehbarriereup:5,5,5,5,anzug_band_dunn anzug_membran_untenhalbschwarz background ziehbarriereup:6,anzug_membran_schwarz background:7,7,7,anzug_membran_schwarz background membrane_unten rock:8,2,2,2,2,2,2,1,1,1,1,1,1,1,1,0,0,0,2,2,\n2,2,anzug_band_dunn background:9,2,2,2,2,2,2,2,2,2,2,1,1,1,anzug_membran_schwarz background playerbody_main water ziehend_nördlich:10,1,1,1,1,0,0,2,2,2,2,2,9,2,2,2,2,2,2,2,2,2,\n2,2,1,1,10,10,10,anzug_membran_schwarz background playerfeet water ziehend_nördlich:11,1,0,0,2,2,2,2,2,anzug_membran_untenhalbschwarz background:12,7,7,7,7,7,7,7,7,7,7,7,anzug_membran_schwarz background water:13,anzug_membran_schwarz background playerhead water ziehend_nördlich:14,10,11,1,1,0,0,0,2,\n2,2,2,2,9,2,2,2,2,2,2,2,2,2,2,2,1,1,10,10,10,11,0,0,0,2,2,2,2,2,9,2,2,2,2,2,2,2,\n2,2,2,2,2,1,10,1,1,1,0,0,0,2,2,2,2,2,9,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,0,0,0,\n4,5,5,5,5,5,6,7,7,anzug_membran_schwarz background rock:15,15,8,2,2,2,2,2,2,2,1,1,1,1,0,0,0,0,2,2,2,2,2,anzug_r background:16,2,2,2,2,2,\n2,2,2,2,2,2,0,1,1,1,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,\n0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,\n0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,\n2,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", 2, "1627893621526.3992"] + "Neoprenanzieher", + ["title Neoprenanzieher\nauthor increpare\nhomepage www.increpare.com\nnoaction\n(thanks to auditoriumjohnson + oeschmid + bvoq + plurmorant for testing)\n\nrun_rules_on_level_start\n\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\norange lightbrown\n11111\n10111\n11111\n11101\n11111\n\n\nrock\ngray darkgray\n00000\n00000\n01000\n00100\n00000\n\nPlayerbody_main\n#f9d9bb\n\nPlayerfeet\n#f9d9bb\n\nplayerhead\n#f9d9bb #5b6ee1 #d95763\n00000\n01010\n00000\n02220\n00000\n\nanzug_membran_schwarz\nblack \n\nanzug_membran_obenhalbschwarz\nblack\n00000\n00000\n00000\n.....\n.....\n\nanzug_membran_untenhalbschwarz\nblack\n.....\n.....\n00000\n00000\n00000\n\nanzuggesicht\nblack\n00000\n0...0\n0...0\n0...0\n00000\n\nanzug_l l\nblack darkgray\n.000.\n.000.\n100.1\n00000\n.0000\n\nanzug_r r\nblack darkgray\n.000.\n.000.\n1.001\n00000\n0000.\n\nanzug_band_dick\nblack darkgray\n1111.\n00000\n00000\n00001\n1111.\n\nanzug_band_dunn\nblack darkgray\n.....\n11111\n00000\n11111\n.....\n\n\nwater w\n#5b6ee1 lightblue\n11111\n11011\n10101\n01110\n11111\n\nhaligned\ntransparent\n\nziehbarrieredown\n#00ffff\n..0..\n.....\n.....\n.....\n.....\n\nziehbarriereup\nwhite\n....0\n.....\n.....\n.....\n.....\n\nmembrane_oben\nred\n.....\n....0\n.....\n.....\n.....\n\nmembrane_unten\nyellow\n.....\n.....\n....0\n.....\n.....\n\nziehend_nördlich\npink\n.....\n.....\n.....\n....0\n.....\n\nziehend_südlich\npurple\n.....\n.....\n.....\n.....\n....0\n\nanzugdehnen\ntransparent\n\n=======\nLEGEND\n=======\n\nziehend = ziehend_nördlich or ziehend_südlich\nanzug_membran = anzug_membran_schwarz or anzug_membran_obenhalbschwarz or anzug_membran_untenhalbschwarz \nziehbarriere = ziehbarrieredown or ziehbarriereup\nplayerbody = Playerbody_main\nplayer = Playerbody or playerhead or Playerfeet\nanzug_band = anzug_band_dick or anzug_band_dunn\nanzug = anzug_l or anzug_r or anzug_band\npushable = player or anzug_l or anzug_r\nnoplayerpushable = anzug_l or anzug_r\nanzugrand = anzug_l or anzug_r\nirgendangezug = anzug_membran or anzuggesicht\nanzugprop = rock \nmembrane = membrane_oben or membrane_unten\n. = Background\n# = rock\nP = Playerbody_main\nh = playerhead\nf = Playerfeet\nkanntrag = player or rock\n\n\n=======\nSOUNDS\n=======\n\nsfx0 83395901 (suit fit)\nsfx1 51989101 (waterstep)\n\n================\nCOLLISIONLAYERS\n================\n\nhaligned\nmembrane\nziehbarriere\nziehend\nanzugdehnen\n\nBackground\nwater\nPlayer, rock, anzug_l, anzug_r\nanzug_band, anzuggesicht\nanzug_membran\n\n======\nRULES\n======\n\n[player]->again\n\nhorizontal [ > player | anzug_membran_schwarz no player | no player ]->cancel \n\nright [ anzug_l | playerhead ziehend_nördlich no ziehbarriere | no ziehbarriere | anzug_r ] -> [ | playerhead anzuggesicht | | ] sfx0\nright [ anzug_l | no ziehbarriere | no ziehbarriere playerhead ziehend_nördlich| anzug_r ] -> [ | | playerhead anzuggesicht | ] sfx0\n\n(allow you to push band from middle if you are membranized and hitting it with a new part of your body)\nvertical [ > player anzug_membran_schwarz | no player anzug_band ] [anzug_l] [anzug_r] -> [ > player anzug_membran_schwarz | anzug_band ] [> anzug_l] [> anzug_r]\n\nright [anzug_l | right player ] -> [ right anzug_l | right player ]\nleft [anzug_r | left player ] -> [ left anzug_r | left player ]\n[ > player | rock ] -> cancel\n[ > player | anzugrand | ziehbarriere ] -> cancel\n[ > player | anzugrand | rock ] -> cancel\n\n[ > player | pushable ] -> [ > player | > pushable ]\n\nright [ horizontal anzug_l | | | stationary anzug_r ] -> [ horizontal anzug_l | | | horizontal anzug_r ]\nright [ stationary anzug_l | | | horizontal anzug_r ] -> [ horizontal anzug_l | | | horizontal anzug_r ]\nright [ vertical anzug_l | ... | stationary anzug_r ] -> [ vertical anzug_l | ... | vertical anzug_r ]\nright [ stationary anzug_l | ... | vertical anzug_r ] -> [ vertical anzug_l | ... | vertical anzug_r ]\n\n[ vertical anzug_l ] [ anzug_band ] -> [ vertical anzug_l ] [ vertical anzug_band ] \n\nright [ anzug_l | moving player | | player | anzug_r ] -> [ moving anzug_l | moving player | | player | moving anzug_r ]\n\n(start tracking membrane points)\ndown [ > anzug_band no kanntrag | kanntrag no anzug_membran ] -> [ > anzug_band | kanntrag membrane_oben ]\n[ up anzug_band membrane_oben ] -> [ up anzug_band ]\n\nup [ > anzug_band no kanntrag | kanntrag no anzug_membran ] -> [ > anzug_band | kanntrag membrane_unten ]\n[ down anzug_band membrane_unten ] -> [ down anzug_band ]\n\n\n[ stationary player ] [ anzug_l |...|anzug_r] -> [ stationary player ] [ > anzug_l | ...|< anzug_r]\n[ stationary player ] [ anzug_l | | |anzug_r] -> [ stationary player ] [ stationary anzug_l | | | stationary anzug_r]\n\n[ > anzugrand | ziehbarriere ] -> [ anzugrand | ziehbarriere ]\n\n(if player is pushing an anzugbarriere from the outside, cancel moveoment)\n\nhorizontal [ > player no anzug_membran | anzug_membran] ->cancel\n\n(ziehend moves with player)\n[ moving player ziehend ] -> [ moving player moving ziehend ]\n\n\n\n\n(going down to put things on)\ndown [ > player no ziehend | anzug_band ] -> [ > player > ziehend_nördlich | anzug_band ]\nup [ > player no ziehend | anzug_band ] -> [ > player > ziehend_südlich | anzug_band ]\n(going up to remove things)\nup [ > player anzug_band ziehend_nördlich ] -> [ > player anzug_band ]\ndown [ > player anzug_band ziehend_südlich ] -> [ > player anzug_band ]\n\n\n\n\nlate [ anzuggesicht ] [ playerhead no anzuggesicht ] -> [ anzuggesicht ] [ playerhead anzuggesicht ]\nlate [ anzuggesicht no playerhead ] -> [ ]\n\nlate right [ anzug_l | | anzug_r ] -> cancel\n\n(require suit to be horizontally aligned)\nlate right [anzug_l | ... | anzug_r ] -> [ anzug_l haligned | ... | anzug_r ]\nlate [anzug_l no haligned ] -> cancel\nlate [haligned ]->[]\n\nlate [ anzug_band]->[]\nlate right [anzug_l | | | anzug_r ] -> [anzug_l | anzug_band_dick | anzug_band_dick | anzug_r ] \nlate right [ anzug_l | no anzug_band ] -> [anzug_l | anzug_band_dunn ]\nlate right [ anzug_band_dunn| no anzug_r ] -> [ anzug_band_dunn| anzug_band_dunn]\n\n(draw membrane)\nlate [ anzug_membran ] -> []\nlate [ ziehbarriere ] -> []\n\n(down)\n\nlate down [ membrane_oben | no ziehbarrieredown ] -> [ membrane_oben | ziehbarrieredown ]\nlate down [ ziehbarrieredown | no ziehbarrieredown ] -> [ ziehbarrieredown | ziehbarrieredown ]\n\n\nlate down [ membrane_oben anzug_band ] -> [membrane_oben anzug_band anzug_membran_obenhalbschwarz]\nlate down [ membrane_oben no anzug_band ] -> [membrane_oben anzug_membran_schwarz]\nlate down [ anzug_membran_schwarz | ziehbarrieredown no anzug_membran_schwarz no anzug_band ] -> [anzug_membran_schwarz |anzug_membran_schwarz]\nlate down [ anzug_membran_schwarz | anzug_band ] -> [ anzug_membran_schwarz | anzug_band anzug_membran_obenhalbschwarz ]\n\n\n(and up)\n\nlate up [ membrane_unten | no ziehbarriereup ] -> [ membrane_unten | ziehbarriereup ]\nlate up [ ziehbarriereup | no ziehbarriereup ] -> [ ziehbarriereup | ziehbarriereup ]\n\nlate up [ membrane_unten anzug_band ] -> [membrane_unten anzug_band anzug_membran_untenhalbschwarz]\nlate up [ membrane_unten no anzug_band ] -> [membrane_unten anzug_membran_schwarz]\nlate up [ anzug_membran_schwarz | ziehbarriereup no anzug_membran_schwarz no anzug_band ] -> [anzug_membran_schwarz |anzug_membran_schwarz]\nlate up [ anzug_membran_schwarz | anzug_band ] -> [ anzug_membran_schwarz | anzug_band anzug_membran_untenhalbschwarz ]\n\n\n\n\n\nlate down [ player ziehend_südlich | player anzug_band no ziehend_südlich ] -> [ player ziehend_südlich | player anzug_band ziehend_südlich ]\nlate up [ player ziehend_nördlich | player anzug_band no ziehend_nördlich ] -> [ player ziehend_nördlich | player anzug_band ziehend_nördlich ]\n\n\n(tidy up ziehends that are north of band, but also remove them as they leave)\nlate down [ ziehend_nördlich | anzug_band ] -> [ |anzug_band]\nlate up [ ziehend_südlich | anzug_band ] -> [ |anzug_band]\n\n(draw suit on person)\nlate [ anzug_band ziehend_nördlich ] -> [ anzug_band ziehend_nördlich anzug_membran_untenhalbschwarz ]\nlate [ anzug_band ziehend_südlich ] -> [ anzug_band ziehend_südlich anzug_membran_obenhalbschwarz ]\nlate [ no anzug_band ziehend ] -> [ ziehend anzug_membran_schwarz ]\n\n(Draw stretched head bit)\n\nlate up [ playerhead no anzuggesicht ziehend_nördlich anzug_membran_schwarz | ] -> [ playerhead ziehend_nördlich anzug_membran_schwarz |anzugdehnen]\nlate up [ no anzug_band anzugdehnen | ] -> [ anzugdehnen | anzugdehnen ]\nlate [anzugdehnen no anzug_band ] -> [ anzugdehnen anzug_membran_schwarz ]\nlate [anzugdehnen anzug_band ] -> [ anzugdehnen anzug_membran_untenhalbschwarz ]\nlate [anzugdehnen ziehbarriere ]->cancel\nlate [anzugdehnen rock ]->cancel\nlate [anzugdehnen anzugrand ]->cancel\nlate [anzugdehnen]->[]\n\n(Draw stretched leg big)\n\nlate down [ Playerfeet ziehend_südlich anzug_membran_schwarz | ] -> [ Playerfeet ziehend_südlich anzug_membran_schwarz |anzugdehnen]\nlate down [ no anzug_band anzugdehnen | ] -> [ anzugdehnen | anzugdehnen ]\nlate [anzugdehnen no anzug_band ] -> [ anzugdehnen anzug_membran_schwarz ]\nlate [anzugdehnen anzug_band ] -> [ anzugdehnen anzug_membran_obenhalbschwarz ]\nlate [anzugdehnen ziehbarriere ]->cancel\nlate [anzugdehnen rock ]->cancel\nlate [anzugdehnen anzugrand ]->cancel\nlate [anzugdehnen]->[]\n\nlate [ anzuggesicht ] -> [ anzuggesicht no anzug_membran_schwarz ]\n\nlate horizontal [ziehbarriere ziehend anzug_band |no ziehbarriere ziehend ]-> cancel\nlate [ player no irgendangezug water ]->cancel\n\nlate [ player irgendangezug water ] -> sfx1\n\n\n(stop stretched bits from going OOB)\n\n==============\nWINCONDITIONS\n==============\nsome anzuggesicht\nall player on water\nsome anzuggesicht\n\n\n=======\nLEVELS\n=======\n\nmessage Level 1 von 1\n\nmessage Kann kaum warten in den See zu springen. Muss aber erst meinen Neoprenanzug anziehen...\n\n######################################\n##############..........##############\n############..............############\n#######......................#########\n######...........................#####\n######....................h.......####\n#####...................ppppp......###\n#####....................pfp........##\n#####....................p.p........##\n#####..............#.....f.f.........#\n#####.......#......#.................#\n#####..............#.......l..r......#\n#####................................#\n###ww................................#\n##wwwww..............................#\n##wwwwwww...........................##\n##wwwwwwwww.........................##\n#wwwwwwwwwwwww......................##\n#wwwwwwwwwwwwwwww...#####..........###\n#wwwwwwwwwwwwwwwwwwww#####......######\n#wwwwwwwwwwwwwwwwwwww#################\n#wwwwwwwwwwwwwwwwwwww#################\n##wwwwwwwwwwwwwwwwww##################\n###wwwwwwwwwwwwwww####################\n####wwwwwwwwwww#######################\n######################################\n\n\n\nmessage Scheisse! Das Wasser is so verdammt kalt!\n",[3,3,3,2,3,2,1,1,1,1,1,1,1,2,2,1,0,0,3,3,3,2,2,2,2,1,2,1,0,0,0,0,0,3,0,0,0,0,0,1,1,1,1,3,2,3,3,3,3,2,2,2,2,3,3,3,2,2,2,1,1,1,1,1,1,0,0,3,3,3,2,2,2,2,1,1,2,2,1,0,2,2,0,0,2,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,1,1,1,0,0,0,0,3,2,2,2,2,3,3,2,3,3,3,3,3,2,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,3,3],"background rock: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,background water:1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,background:2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,\n1,1,1,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,2,2,2,2,2,\n2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,\n1,1,1,1,1,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,0,0,0,0,2,2,2,\n2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,0,0,0,0,2,2,2,anzug_l background:3,2,2,2,2,2,2,2,2,2,2,1,\n1,1,1,1,1,1,1,0,background rock ziehbarriereup:4,4,background ziehbarriereup:5,5,5,5,anzug_band_dunn anzug_membran_untenhalbschwarz background ziehbarriereup:6,anzug_membran_schwarz background:7,7,7,anzug_membran_schwarz background membrane_unten rock:8,2,2,2,2,2,2,1,1,1,1,1,1,1,1,0,0,0,2,2,\n2,2,anzug_band_dunn background:9,2,2,2,2,2,2,2,2,2,2,1,1,1,anzug_membran_schwarz background playerbody_main water ziehend_nördlich:10,1,1,1,1,0,0,2,2,2,2,2,9,2,2,2,2,2,2,2,2,2,\n2,2,1,1,10,10,10,anzug_membran_schwarz background playerfeet water ziehend_nördlich:11,1,0,0,2,2,2,2,2,anzug_membran_untenhalbschwarz background:12,7,7,7,7,7,7,7,7,7,7,7,anzug_membran_schwarz background water:13,anzug_membran_schwarz background playerhead water ziehend_nördlich:14,10,11,1,1,0,0,0,2,\n2,2,2,2,9,2,2,2,2,2,2,2,2,2,2,2,1,1,10,10,10,11,0,0,0,2,2,2,2,2,9,2,2,2,2,2,2,2,\n2,2,2,2,2,1,10,1,1,1,0,0,0,2,2,2,2,2,9,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,0,0,0,\n4,5,5,5,5,5,6,7,7,anzug_membran_schwarz background rock:15,15,8,2,2,2,2,2,2,2,1,1,1,1,0,0,0,0,2,2,2,2,2,anzug_r background:16,2,2,2,2,2,\n2,2,2,2,2,2,0,1,1,1,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,\n0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,\n0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,\n2,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",2,"1627893621526.3992"] ], [ - "Moved by leaves of grass", - ["title Moved by leaves of grass\nauthor increpare\nhomepage increpare.com\n\n(level shape from david skinner's microban)\n\n========\nOBJECTS\n========\n\nBackground\nGREEN\n\naltbg\ndarkblue\n\nplayer q\nlightgreen\n\nTarget w\ngreen\n\nWall1 1\nBROWN \n\nwall2 2\ndarkbrown\n\nwall3 3\nBlack \n\nwall4 4\nOrange \n\nwall5 5\nWhite \n\nwall6 6\nBlue\n\n\ncrate1 7\nOrange \n\ncrate2 8\norange\n\n\ncrate4 10\norange\n\n=======\nLEGEND\n=======\ncrate3 = wall3 or wall4 or wall5 or wall6\ncrate = crate1 or crate2 or crate3 or crate4 \n. = Background\n, =altbg\nO = Target\nf = crate1 and target\ne = target and player\nwall = wall1 or wall2\n=======\nSOUNDS\n=======\n\ncrate1 MOVE 36772507\ncrate2 MOVE 36772507\ncrate3 MOVE 36772507\ncrate4 MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\naltbg\nTarget\nPlayer, wall1, wall2, wall3, wall4, wall5, wall6, Crate1, crate2, crate3, crate4 \n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n[> crate| crate]->[> crate | > crate]\n+ [moving crate1 | stationary crate1 ]-> [moving crate1 | moving crate1]\n+ [moving crate2 | stationary crate2 ]-> [moving crate2 | moving crate2]\n+ [moving crate3 | stationary crate3 ]-> [moving crate3 | moving crate3]\n+ [moving crate4 | stationary crate4 ]-> [moving crate4 | moving crate4]\n\n[ > crate | wall ]-> [ crate | wall]\n[stationary crate1 ] [ moving crate1]-> [stationary crate1] [ stationary crate1]\n+[stationary crate2 ] [ moving crate2]-> [stationary crate2] [ stationary crate2]\n+[stationary crate3 ] [ moving crate3]-> [stationary crate3] [ stationary crate3]\n+[stationary crate4 ] [ moving crate4]-> [stationary crate4] [ stationary crate4]\n+ [ > crate | stationary crate ]->[stationary crate | stationary crate]\n+ [> player | wall] -> [ player | wall ]\n+ [> player | stationary player ] -> [ player | player ]\n+ [> player | stationary crate ] -> [ player | crate ]\n+ [ > crate | stationary player ]-> [ crate | player]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\n11121111211112111121..........\n22222222222222222222q....q....\n12111121111211112111...q....q.\n22222222222222222222..........\n11121111211112111121.q....q...\n11121.....wwwww11121..........\n22222q....e,,,w22222q....q....\n12111...q.w,.,w12111...q....q.\n22222.....w,,,w22222..........\n11121.q...wewww11121.q....q...\n11121..........111211112111121\n22222q....q....222222222222222\n12111...q....q.121111211112111\n22222..........222222222222222\n11121.q....q...111211112111121\n11121fffff.333...........11121\n22222f,,,fq444.q....q....22222\n12111f,.,f55555...q....q.12111\n22222f,,,f.666...........22222\n11121fffff.6.6..q....q...11121\n11121....................11121\n22222q....q....q....q....22222\n12111...q....q....q....q.12111\n22222....................22222\n11121.q....q....q....q...11121\n11121..........88888.....11121\n22222q....q....8...8q....22222\n12111...q....q.8..q8...q.12111\n22222..........8...8.....22222\n11121.q....q...88888.q...11121\n11121..........111211112111121\n22222q....q....222222222222222\n12111...q....q.121111211112111\n22222..........222222222222222\n11121.q....q...111211112111121\n11121111211112111121..........\n22222222222222222222q....q....\n12111121111211112111...q....q.\n22222222222222222222..........\n11121111211112111121.q....q...\n\nmessage: congratulations! you gone went and won it\n", [0, 1, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3], "background wall1:0,background wall2:1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,\n0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,\n1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,background:2,2,2,2,2,\nbackground crate1:3,3,3,3,3,background target:4,4,4,4,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,\n0,1,1,1,0,2,2,2,2,2,3,2,2,2,3,4,altbg background:5,5,5,4,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,0,1,1,1,0,0,1,0,1,0,2,2,2,2,2,3,2,2,2,3,4,5,2,5,4,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,1,1,0,1,1,2,2,2,2,2,\n3,2,2,2,3,4,5,5,5,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,0,1,1,\n0,1,0,1,0,2,2,2,2,2,3,3,3,3,3,background player target:6,4,4,4,4,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,6,6,6,6,4,2,2,2,2,background wall5:7,background player:8,8,2,8,2,\n8,2,2,8,2,8,2,2,8,2,2,2,2,2,2,0,1,0,1,0,0,1,1,1,0,4,5,5,5,4,\n2,2,background wall3:9,background wall4:10,7,background wall6:11,11,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,0,\n0,1,0,1,0,6,altbg background player:12,2,5,4,2,2,9,10,7,11,8,2,2,2,2,8,2,2,2,2,8,2,2,2,\n2,2,2,2,2,0,1,0,1,0,1,1,0,1,1,6,12,5,5,4,8,2,9,10,7,11,11,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,0,1,1,0,1,0,1,0,6,6,4,6,4,\n8,2,2,2,7,2,2,2,2,2,8,2,2,2,2,8,2,2,2,2,2,2,2,2,2,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,2,2,8,2,2,2,2,8,2,2,2,2,8,2,\n0,1,0,1,0,0,1,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,1,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,2,2,2,2,2,2,8,2,2,2,2,8,2,2,2,0,1,0,1,0,0,1,0,1,0,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,8,2,2,2,2,\nbackground crate2:13,13,13,13,13,2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,\n0,1,0,1,0,8,2,2,8,2,13,2,2,2,13,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,1,1,0,8,2,2,2,2,13,2,2,2,13,2,2,2,2,2,\n0,1,1,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,8,8,2,2,2,\n13,8,2,2,13,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n1,1,0,1,1,8,8,2,2,2,13,13,13,13,13,2,2,2,2,2,1,1,0,1,1,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,8,8,2,8,2,8,8,2,8,2,2,2,2,2,2,\n0,1,0,1,0,2,2,2,2,2,8,8,8,8,2,2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,8,8,2,2,2,8,2,2,2,2,2,2,2,2,2,\n0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,8,2,2,2,2,\n8,8,2,2,2,2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,8,2,2,2,2,8,8,2,2,2,2,2,2,2,2,1,1,0,1,1,1,1,0,1,1,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,8,2,2,2,2,8,8,2,8,2,2,2,2,2,2,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,8,2,2,2,2,\n", 1, "1627893692010.7708"] + "Moved by leaves of grass", + ["title Moved by leaves of grass\nauthor increpare\nhomepage increpare.com\n\n(level shape from david skinner's microban)\n\n========\nOBJECTS\n========\n\nBackground\nGREEN\n\naltbg\ndarkblue\n\nplayer q\nlightgreen\n\nTarget w\ngreen\n\nWall1 1\nBROWN \n\nwall2 2\ndarkbrown\n\nwall3 3\nBlack \n\nwall4 4\nOrange \n\nwall5 5\nWhite \n\nwall6 6\nBlue\n\n\ncrate1 7\nOrange \n\ncrate2 8\norange\n\n\ncrate4 10\norange\n\n=======\nLEGEND\n=======\ncrate3 = wall3 or wall4 or wall5 or wall6\ncrate = crate1 or crate2 or crate3 or crate4 \n. = Background\n, =altbg\nO = Target\nf = crate1 and target\ne = target and player\nwall = wall1 or wall2\n=======\nSOUNDS\n=======\n\ncrate1 MOVE 36772507\ncrate2 MOVE 36772507\ncrate3 MOVE 36772507\ncrate4 MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\naltbg\nTarget\nPlayer, wall1, wall2, wall3, wall4, wall5, wall6, Crate1, crate2, crate3, crate4 \n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n[> crate| crate]->[> crate | > crate]\n+ [moving crate1 | stationary crate1 ]-> [moving crate1 | moving crate1]\n+ [moving crate2 | stationary crate2 ]-> [moving crate2 | moving crate2]\n+ [moving crate3 | stationary crate3 ]-> [moving crate3 | moving crate3]\n+ [moving crate4 | stationary crate4 ]-> [moving crate4 | moving crate4]\n\n[ > crate | wall ]-> [ crate | wall]\n[stationary crate1 ] [ moving crate1]-> [stationary crate1] [ stationary crate1]\n+[stationary crate2 ] [ moving crate2]-> [stationary crate2] [ stationary crate2]\n+[stationary crate3 ] [ moving crate3]-> [stationary crate3] [ stationary crate3]\n+[stationary crate4 ] [ moving crate4]-> [stationary crate4] [ stationary crate4]\n+ [ > crate | stationary crate ]->[stationary crate | stationary crate]\n+ [> player | wall] -> [ player | wall ]\n+ [> player | stationary player ] -> [ player | player ]\n+ [> player | stationary crate ] -> [ player | crate ]\n+ [ > crate | stationary player ]-> [ crate | player]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\n11121111211112111121..........\n22222222222222222222q....q....\n12111121111211112111...q....q.\n22222222222222222222..........\n11121111211112111121.q....q...\n11121.....wwwww11121..........\n22222q....e,,,w22222q....q....\n12111...q.w,.,w12111...q....q.\n22222.....w,,,w22222..........\n11121.q...wewww11121.q....q...\n11121..........111211112111121\n22222q....q....222222222222222\n12111...q....q.121111211112111\n22222..........222222222222222\n11121.q....q...111211112111121\n11121fffff.333...........11121\n22222f,,,fq444.q....q....22222\n12111f,.,f55555...q....q.12111\n22222f,,,f.666...........22222\n11121fffff.6.6..q....q...11121\n11121....................11121\n22222q....q....q....q....22222\n12111...q....q....q....q.12111\n22222....................22222\n11121.q....q....q....q...11121\n11121..........88888.....11121\n22222q....q....8...8q....22222\n12111...q....q.8..q8...q.12111\n22222..........8...8.....22222\n11121.q....q...88888.q...11121\n11121..........111211112111121\n22222q....q....222222222222222\n12111...q....q.121111211112111\n22222..........222222222222222\n11121.q....q...111211112111121\n11121111211112111121..........\n22222222222222222222q....q....\n12111121111211112111...q....q.\n22222222222222222222..........\n11121111211112111121.q....q...\n\nmessage: congratulations! you gone went and won it\n",[0,1,0,0,0,0,0,3,3,3,3,3],"background wall1:0,background wall2:1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,\n0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,\n1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,background:2,2,2,2,2,\nbackground crate1:3,3,3,3,3,background target:4,4,4,4,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,\n0,1,1,1,0,2,2,2,2,2,3,2,2,2,3,4,altbg background:5,5,5,4,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,0,1,1,1,0,0,1,0,1,0,2,2,2,2,2,3,2,2,2,3,4,5,2,5,4,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,1,1,0,1,1,2,2,2,2,2,\n3,2,2,2,3,4,5,5,5,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,0,1,1,\n0,1,0,1,0,2,2,2,2,2,3,3,3,3,3,background player target:6,4,4,4,4,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,6,6,6,6,4,2,2,2,2,background wall5:7,background player:8,8,2,8,2,\n8,2,2,8,2,8,2,2,8,2,2,2,2,2,2,0,1,0,1,0,0,1,1,1,0,4,5,5,5,4,\n2,2,background wall3:9,background wall4:10,7,background wall6:11,11,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,0,\n0,1,0,1,0,6,altbg background player:12,2,5,4,2,2,9,10,7,11,8,2,2,2,2,8,2,2,2,2,8,2,2,2,\n2,2,2,2,2,0,1,0,1,0,1,1,0,1,1,6,12,5,5,4,8,2,9,10,7,11,11,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,0,1,1,0,1,0,1,0,6,6,4,6,4,\n8,2,2,2,7,2,2,2,2,2,8,2,2,2,2,8,2,2,2,2,2,2,2,2,2,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,2,2,8,2,2,2,2,8,2,2,2,2,8,2,\n0,1,0,1,0,0,1,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,1,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,2,2,2,2,2,2,8,2,2,2,2,8,2,2,2,0,1,0,1,0,0,1,0,1,0,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,8,2,2,2,2,\nbackground crate2:13,13,13,13,13,2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,\n0,1,0,1,0,8,2,2,8,2,13,2,2,2,13,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,1,1,0,8,2,2,2,2,13,2,2,2,13,2,2,2,2,2,\n0,1,1,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,8,8,2,2,2,\n13,8,2,2,13,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n1,1,0,1,1,8,8,2,2,2,13,13,13,13,13,2,2,2,2,2,1,1,0,1,1,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,8,8,2,8,2,8,8,2,8,2,2,2,2,2,2,\n0,1,0,1,0,2,2,2,2,2,8,8,8,8,2,2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,8,8,2,2,2,8,2,2,2,2,2,2,2,2,2,\n0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,8,2,2,2,2,\n8,8,2,2,2,2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,8,2,2,2,2,8,8,2,2,2,2,2,2,2,2,1,1,0,1,1,1,1,0,1,1,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,8,2,2,2,2,8,8,2,8,2,2,2,2,2,2,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,8,2,2,2,2,\n",1,"1627893692010.7708"] ], [ - "Place the crate on the targets", - ["title Place the crate on the targets\nauthor increpare\nhomepage increpare.com\n\n(level shape from david skinner's microban)\n\n========\nOBJECTS\n========\n\nBackground\nGREEN\n\ntarget\ndarkblue\n\ngrass q\nlightgreen\n\n\nWall1 1\nBROWN \n\nwall2 2\ndarkbrown\n\nplayer1 3\nBlack \n\nplayer2 4\nlightbrown \n\nplayer3 5\nWhite \n\nplayer4 6\nBlue\n\n\ncrate 8\norange\n\n=======\nLEGEND\n=======\nplayer = player1 or player2 or player3 or player4\n. = Background\n, = target\nO = Target\nwall = wall1 or wall2\n=======\nSOUNDS\n=======\n\ncrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ntarget\ngrass\nPlayer, wall1, wall2, player, crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate | crate ]->[> Crate|> crate ]\n\n[ > crate | wall ]->[ crate | wall ]\n[ > crate | stationary crate ]-> [ crate | crate ]\n[> player | wall ]-> cancel\n[> player | stationary crate ]->cancel\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\n11121111211112111121..........\n22222222222222222222q....q....\n12111121111211112111...q....q.\n22222222222222222222..........\n11121111211112111121.q....q...\n11121..........11121..........\n22222q....q,,,.22222q....q....\n12111...q..,.,.12111...q....q.\n22222......,,,.22222..........\n11121.q....q...11121.q....q...\n11121..........111211112111121\n22222q....q....222222222222222\n12111...q....q.121111211112111\n22222..........222222222222222\n11121.q....q...111211112111121\n11121......333...........11121\n22222q,,,.q444.q....q....22222\n12111.,.,.55555...q....q.12111\n22222.,,,..666...........22222\n11121..q...6.6..q....q...11121\n11121....................11121\n22222q....q....q....q....22222\n12111...q....q....q....q.12111\n22222....................22222\n11121.q....q....q....q...11121\n11121..........88888.....11121\n22222q....q....8...8q....22222\n12111...q....q.8..q8...q.12111\n22222..........8...8.....22222\n11121.q....q...88888.q...11121\n11121..........111211112111121\n22222q....q....222222222222222\n12111...q....q.121111211112111\n22222..........222222222222222\n11121.q....q...111211112111121\n11121111211112111121..........\n22222222222222222222q....q....\n12111121111211112111...q....q.\n22222222222222222222..........\n11121111211112111121.q....q...\n\nmessage congratulations to all of you!\n", [1, 1, 0, 0, 2, 2, 2, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1], "background wall1:0,background wall2:1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,\n0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,\n1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,background:2,background grass:3,2,2,2,\n2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,0,1,0,1,0,\n0,1,1,1,0,2,2,2,2,3,2,2,2,2,3,2,background target:4,4,4,2,2,2,2,2,3,2,2,2,2,3,\n2,2,2,2,3,0,1,1,1,0,0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,4,2,4,3,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,1,1,0,1,1,2,2,3,2,2,\n2,2,3,2,2,2,4,4,4,2,2,2,3,2,2,background crate:5,2,3,2,2,2,2,3,2,2,1,1,0,1,1,\n0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,2,2,2,2,\n2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,\n2,3,2,2,2,5,3,2,2,2,2,3,2,2,2,0,1,0,1,0,0,1,1,1,0,2,4,4,4,3,\n2,2,2,2,3,2,2,2,2,2,2,2,2,2,3,5,5,2,2,3,2,2,2,2,3,0,1,1,1,0,\n0,1,0,1,0,2,4,2,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background player3:6,5,5,2,2,2,\n2,2,2,2,2,0,1,0,1,0,1,1,0,1,1,2,4,4,4,2,2,2,3,2,2,2,2,2,2,2,\n2,2,background grass player1:7,background player2:8,6,background player4:9,9,3,2,2,2,2,3,2,2,1,1,0,1,1,0,1,0,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,background player1:10,8,6,9,2,2,2,2,2,2,2,2,2,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,3,2,2,2,2,3,10,8,6,9,9,5,5,5,\n0,1,0,1,0,0,1,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,2,2,2,2,3,\n2,2,2,2,background grass player3:11,2,2,2,2,5,0,1,1,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,0,1,0,1,0,0,1,0,1,0,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,2,2,3,2,2,2,2,3,2,2,2,2,3,2,5,\n1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,5,5,5,0,1,0,1,0,0,1,0,1,0,2,3,2,2,2,2,3,2,2,2,\n0,1,0,1,0,2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,0,1,0,1,0,2,3,2,2,2,\n2,2,2,2,3,2,2,2,2,3,0,1,1,1,0,2,2,2,2,3,2,2,2,2,3,2,2,2,2,3,\n0,1,1,1,0,2,2,2,2,3,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,2,2,3,2,2,2,2,3,2,2,\n1,1,0,1,1,2,2,3,2,2,2,2,3,2,2,2,2,3,2,2,1,1,0,1,1,2,2,3,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n0,1,0,1,0,2,2,2,2,2,2,3,2,2,2,2,3,2,2,2,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,3,2,2,2,2,2,2,2,3,2,2,2,2,3,\n0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,2,2,2,2,3,\n2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,2,2,2,2,2,2,2,3,2,2,2,2,3,2,2,1,1,0,1,1,1,1,0,1,1,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,2,2,3,2,2,2,2,2,2,2,2,2,2,2,2,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,2,2,2,2,\n", 1, "1627893701797.368"] + "Place the crate on the targets", + ["title Place the crate on the targets\nauthor increpare\nhomepage increpare.com\n\n(level shape from david skinner's microban)\n\n========\nOBJECTS\n========\n\nBackground\nGREEN\n\ntarget\ndarkblue\n\ngrass q\nlightgreen\n\n\nWall1 1\nBROWN \n\nwall2 2\ndarkbrown\n\nplayer1 3\nBlack \n\nplayer2 4\nlightbrown \n\nplayer3 5\nWhite \n\nplayer4 6\nBlue\n\n\ncrate 8\norange\n\n=======\nLEGEND\n=======\nplayer = player1 or player2 or player3 or player4\n. = Background\n, = target\nO = Target\nwall = wall1 or wall2\n=======\nSOUNDS\n=======\n\ncrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ntarget\ngrass\nPlayer, wall1, wall2, player, crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate | crate ]->[> Crate|> crate ]\n\n[ > crate | wall ]->[ crate | wall ]\n[ > crate | stationary crate ]-> [ crate | crate ]\n[> player | wall ]-> cancel\n[> player | stationary crate ]->cancel\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\n11121111211112111121..........\n22222222222222222222q....q....\n12111121111211112111...q....q.\n22222222222222222222..........\n11121111211112111121.q....q...\n11121..........11121..........\n22222q....q,,,.22222q....q....\n12111...q..,.,.12111...q....q.\n22222......,,,.22222..........\n11121.q....q...11121.q....q...\n11121..........111211112111121\n22222q....q....222222222222222\n12111...q....q.121111211112111\n22222..........222222222222222\n11121.q....q...111211112111121\n11121......333...........11121\n22222q,,,.q444.q....q....22222\n12111.,.,.55555...q....q.12111\n22222.,,,..666...........22222\n11121..q...6.6..q....q...11121\n11121....................11121\n22222q....q....q....q....22222\n12111...q....q....q....q.12111\n22222....................22222\n11121.q....q....q....q...11121\n11121..........88888.....11121\n22222q....q....8...8q....22222\n12111...q....q.8..q8...q.12111\n22222..........8...8.....22222\n11121.q....q...88888.q...11121\n11121..........111211112111121\n22222q....q....222222222222222\n12111...q....q.121111211112111\n22222..........222222222222222\n11121.q....q...111211112111121\n11121111211112111121..........\n22222222222222222222q....q....\n12111121111211112111...q....q.\n22222222222222222222..........\n11121111211112111121.q....q...\n\nmessage congratulations to all of you!\n",[1,1,0,0,2,2,2,2,3,2,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,1,1,1,1,1,1,1],"background wall1:0,background wall2:1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,\n0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,\n1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,background:2,background grass:3,2,2,2,\n2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,0,1,0,1,0,\n0,1,1,1,0,2,2,2,2,3,2,2,2,2,3,2,background target:4,4,4,2,2,2,2,2,3,2,2,2,2,3,\n2,2,2,2,3,0,1,1,1,0,0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,4,2,4,3,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,1,1,0,1,1,2,2,3,2,2,\n2,2,3,2,2,2,4,4,4,2,2,2,3,2,2,background crate:5,2,3,2,2,2,2,3,2,2,1,1,0,1,1,\n0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,2,2,2,2,\n2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,\n2,3,2,2,2,5,3,2,2,2,2,3,2,2,2,0,1,0,1,0,0,1,1,1,0,2,4,4,4,3,\n2,2,2,2,3,2,2,2,2,2,2,2,2,2,3,5,5,2,2,3,2,2,2,2,3,0,1,1,1,0,\n0,1,0,1,0,2,4,2,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background player3:6,5,5,2,2,2,\n2,2,2,2,2,0,1,0,1,0,1,1,0,1,1,2,4,4,4,2,2,2,3,2,2,2,2,2,2,2,\n2,2,background grass player1:7,background player2:8,6,background player4:9,9,3,2,2,2,2,3,2,2,1,1,0,1,1,0,1,0,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,background player1:10,8,6,9,2,2,2,2,2,2,2,2,2,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,3,2,2,2,2,3,10,8,6,9,9,5,5,5,\n0,1,0,1,0,0,1,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,2,2,2,2,3,\n2,2,2,2,background grass player3:11,2,2,2,2,5,0,1,1,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,0,1,0,1,0,0,1,0,1,0,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,2,2,3,2,2,2,2,3,2,2,2,2,3,2,5,\n1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,5,5,5,0,1,0,1,0,0,1,0,1,0,2,3,2,2,2,2,3,2,2,2,\n0,1,0,1,0,2,3,2,2,2,2,3,2,2,2,2,3,2,2,2,0,1,0,1,0,2,3,2,2,2,\n2,2,2,2,3,2,2,2,2,3,0,1,1,1,0,2,2,2,2,3,2,2,2,2,3,2,2,2,2,3,\n0,1,1,1,0,2,2,2,2,3,2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,2,2,3,2,2,2,2,3,2,2,\n1,1,0,1,1,2,2,3,2,2,2,2,3,2,2,2,2,3,2,2,1,1,0,1,1,2,2,3,2,2,\n2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n0,1,0,1,0,2,2,2,2,2,2,3,2,2,2,2,3,2,2,2,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,3,2,2,2,2,2,2,2,3,2,2,2,2,3,\n0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,2,2,2,2,3,\n2,2,2,2,2,2,2,2,2,2,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\n0,1,0,1,0,2,2,2,2,2,2,2,3,2,2,2,2,3,2,2,1,1,0,1,1,1,1,0,1,1,\n1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,2,2,3,2,2,2,2,2,2,2,2,2,2,2,2,\n0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,2,2,2,2,2,\n",1,"1627893701797.368"] ], [ - "Two-Step Pete", - ["title Two-Step Pete\nauthor increpare\nhomepage www.increpare.com\n\ncolor_palette 7\n(\nthanks to c00t00 for tips + feedback\nthanks to bvoq + marcosdon for the lovely solvers\n\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\nhttps://dekeyser.ch/puzzlescriptmis/\n)\n\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN \n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nBROWN \n\nPlayer\nBlue Blue Blue Blue yellow\n.000.\n.141.\n22222\n.333.\n.3.3.\n\nCrate\n#ee5555\n00000\n0...0\n0...0\n0...0\n00000\n\nlaststart\ntransparent\n\nlastup\ntransparent\n\nlastdown\ntransparent\n\nlastleft\ntransparent\n\nlastright\ntransparent\n\nspawncrate \ntransparent\n\n=======\nLEGEND\n=======\n\nlastany = lastup or lastdown or lastleft or lastright or laststart\n\n. = Background\n# = Wall\nP = Player and laststart\n* = Background\n@ = Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nlastany\nspawncrate\n\n======\nRULES\n======\n\n[ action player ] -> cancel\n\n[ > player | wall ] -> cancel\n[ > player | crate | wall ] -> cancel\n[ > player | crate | crate ] -> cancel\n\n\nup \t\t[ up player \tlastup \t\tno laststart ] -> [ up player \t\tspawncrate ]\ndown \t[ down player \tlastdown \tno laststart ] -> [ down player \tspawncrate ]\nleft \t[ left player \tlastleft \tno laststart ] -> [ left player \tspawncrate ]\nright \t[ right player \tlastright \tno laststart ] -> [ right player \tspawncrate ]\n\n[ lastany ] -> [ ]\n\nup \t\t[ up player \t| ] -> [ up player \t\t| lastup \t]\ndown \t[ down player \t| ] -> [ down player \t| lastdown \t]\nleft \t[ left player \t| ] -> [ left player \t| lastleft \t]\nright \t[ right player \t| ] -> [ right player \t| lastright ]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate [ spawncrate player ] -> cancel\nlate [ spawncrate ] -> [ crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nAll Crate on Target\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 8\n(klinda fun)\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n\n(kinda fun?)\n\nmessage level 2 of 8\n######\n#@.@.#\n#.@.@#\n#@.@.#\n#.@.@#\n#@p@.#\n#.@.@#\n######\n\n(ok?)\n\nmessage level 3 of 8\n#####\n#.@@#\n#@.@#\n#p@.#\n#####\n\n\n\nmessage level 4 of 8\n(fun! ship it)\n###########\n#####@#####\n####...####\n#####@#####\n##.#.p.#.##\n#@.@...@.@#\n##.#...#.##\n#####@#####\n####...####\n#####@#####\n###########\n\n\nmessage level 5 of 8\n( tricky + nice )\n#######\n#.@..@#\n#...@.#\n##.#p##\n#.....#\n#...@.#\n#######\n\nmessage level 6 of 8\n(is this the same as above? IDK )\n#######\n#.@#..#\n#...@.#\n##@#.##\n#.p...#\n#.@#..#\n#######\n\n\n\nmessage level 7 of 8\n(like this)\n#####\n#@p@#\n#@@@#\n#@..#\n#.@@#\n#####\n\n\nmessage level 8 of 8\n\n(hard not great but ok?)\n######\n#@.@@#\n#@@@@#\n#@@@.#\n#p.@@#\n######\n\nmessage congrats. sorry ab out that final level.\n(\n\n######\n#....#\n#....#\n##..##\n#p...#\n#....#\n######\n\n#######\n#..#..#\n#.....#\n##.#.##\n#.....#\n#..#p.#\n#######\n\n###########\n#####@#####\n####...####\n#####@#####\n##.#.p.#.##\n#@.@...@.@#\n##.#...#.##\n#####@#####\n####...####\n#####@#####\n###########\n\n(kinda nice)\n###########\n#####.#####\n##.#.p.#.##\n#@.@......#\n##.#...#.##\n#####.#####\n###########\n\n\n######\n#....#\n#....#\n#....#\n#.p..#\n######\n\n\n#####\n#p..#\n#...#\n#...#\n#...#\n#####\n\n#########\n####.####\n###...###\n##.....##\n#...p...#\n##.....##\n###...###\n####.####\n#########\n\n###########\n#####.#####\n####...####\n#####.#####\n##.#...#.##\n#.........#\n##.#...#.##\n#####p#####\n####...####\n#####.#####\n###########\n\n###########\n#####.#####\n##.#...#.##\n#.........#\n##.#..p#.##\n#####.#####\n###########\n\n(kinda hard kinda random but ok?)\n#####\n#@@.#\n#p@@#\n#@.@#\n#@.@#\n#####\n\n\n#######\n#.@...#\n#.@..@#\n##.#@##\n#...p.#\n#.....#\n#######\n\n\n(same trick as above? iiish)\n#######\n#..#..#\n#..@@@#\n##p#.##\n#######\n\n#######\n#..#..#\n#.....#\n##.#.##\n#.....#\n#..#p.#\n#######\n\n\n#########\n#...#...#\n#.......#\n#...#...#\n##.###.##\n#...#...#\n#.......#\n#...#..p#\n#########\n\nmessage congratulations!\n)\n", [2, 2, 2, 3, 0, 0, 0, 1, 1, 2, 2], "background wall:0,0,0,0,0,\n0,0,background target:1,background crate target:2,background lastdown player target:3,\nbackground:4,0,0,background crate:5,2,\n5,1,0,0,1,\n2,5,1,0,0,\n0,0,0,0,0,\n", 13, "1627893714599.114"] + "Two-Step Pete", + ["title Two-Step Pete\nauthor increpare\nhomepage www.increpare.com\n\ncolor_palette 7\n(\nthanks to c00t00 for tips + feedback\nthanks to bvoq + marcosdon for the lovely solvers\n\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\nhttps://dekeyser.ch/puzzlescriptmis/\n)\n\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN \n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nBROWN \n\nPlayer\nBlue Blue Blue Blue yellow\n.000.\n.141.\n22222\n.333.\n.3.3.\n\nCrate\n#ee5555\n00000\n0...0\n0...0\n0...0\n00000\n\nlaststart\ntransparent\n\nlastup\ntransparent\n\nlastdown\ntransparent\n\nlastleft\ntransparent\n\nlastright\ntransparent\n\nspawncrate \ntransparent\n\n=======\nLEGEND\n=======\n\nlastany = lastup or lastdown or lastleft or lastright or laststart\n\n. = Background\n# = Wall\nP = Player and laststart\n* = Background\n@ = Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nlastany\nspawncrate\n\n======\nRULES\n======\n\n[ action player ] -> cancel\n\n[ > player | wall ] -> cancel\n[ > player | crate | wall ] -> cancel\n[ > player | crate | crate ] -> cancel\n\n\nup \t\t[ up player \tlastup \t\tno laststart ] -> [ up player \t\tspawncrate ]\ndown \t[ down player \tlastdown \tno laststart ] -> [ down player \tspawncrate ]\nleft \t[ left player \tlastleft \tno laststart ] -> [ left player \tspawncrate ]\nright \t[ right player \tlastright \tno laststart ] -> [ right player \tspawncrate ]\n\n[ lastany ] -> [ ]\n\nup \t\t[ up player \t| ] -> [ up player \t\t| lastup \t]\ndown \t[ down player \t| ] -> [ down player \t| lastdown \t]\nleft \t[ left player \t| ] -> [ left player \t| lastleft \t]\nright \t[ right player \t| ] -> [ right player \t| lastright ]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate [ spawncrate player ] -> cancel\nlate [ spawncrate ] -> [ crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nAll Crate on Target\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 8\n(klinda fun)\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n\n(kinda fun?)\n\nmessage level 2 of 8\n######\n#@.@.#\n#.@.@#\n#@.@.#\n#.@.@#\n#@p@.#\n#.@.@#\n######\n\n(ok?)\n\nmessage level 3 of 8\n#####\n#.@@#\n#@.@#\n#p@.#\n#####\n\n\n\nmessage level 4 of 8\n(fun! ship it)\n###########\n#####@#####\n####...####\n#####@#####\n##.#.p.#.##\n#@.@...@.@#\n##.#...#.##\n#####@#####\n####...####\n#####@#####\n###########\n\n\nmessage level 5 of 8\n( tricky + nice )\n#######\n#.@..@#\n#...@.#\n##.#p##\n#.....#\n#...@.#\n#######\n\nmessage level 6 of 8\n(is this the same as above? IDK )\n#######\n#.@#..#\n#...@.#\n##@#.##\n#.p...#\n#.@#..#\n#######\n\n\n\nmessage level 7 of 8\n(like this)\n#####\n#@p@#\n#@@@#\n#@..#\n#.@@#\n#####\n\n\nmessage level 8 of 8\n\n(hard not great but ok?)\n######\n#@.@@#\n#@@@@#\n#@@@.#\n#p.@@#\n######\n\nmessage congrats. sorry ab out that final level.\n(\n\n######\n#....#\n#....#\n##..##\n#p...#\n#....#\n######\n\n#######\n#..#..#\n#.....#\n##.#.##\n#.....#\n#..#p.#\n#######\n\n###########\n#####@#####\n####...####\n#####@#####\n##.#.p.#.##\n#@.@...@.@#\n##.#...#.##\n#####@#####\n####...####\n#####@#####\n###########\n\n(kinda nice)\n###########\n#####.#####\n##.#.p.#.##\n#@.@......#\n##.#...#.##\n#####.#####\n###########\n\n\n######\n#....#\n#....#\n#....#\n#.p..#\n######\n\n\n#####\n#p..#\n#...#\n#...#\n#...#\n#####\n\n#########\n####.####\n###...###\n##.....##\n#...p...#\n##.....##\n###...###\n####.####\n#########\n\n###########\n#####.#####\n####...####\n#####.#####\n##.#...#.##\n#.........#\n##.#...#.##\n#####p#####\n####...####\n#####.#####\n###########\n\n###########\n#####.#####\n##.#...#.##\n#.........#\n##.#..p#.##\n#####.#####\n###########\n\n(kinda hard kinda random but ok?)\n#####\n#@@.#\n#p@@#\n#@.@#\n#@.@#\n#####\n\n\n#######\n#.@...#\n#.@..@#\n##.#@##\n#...p.#\n#.....#\n#######\n\n\n(same trick as above? iiish)\n#######\n#..#..#\n#..@@@#\n##p#.##\n#######\n\n#######\n#..#..#\n#.....#\n##.#.##\n#.....#\n#..#p.#\n#######\n\n\n#########\n#...#...#\n#.......#\n#...#...#\n##.###.##\n#...#...#\n#.......#\n#...#..p#\n#########\n\nmessage congratulations!\n)\n",[2,2,2,3,0,0,0,1,1,2,2],"background wall:0,0,0,0,0,\n0,0,background target:1,background crate target:2,background lastdown player target:3,\nbackground:4,0,0,background crate:5,2,\n5,1,0,0,1,\n2,5,1,0,0,\n0,0,0,0,0,\n",13,"1627893714599.114"] ], [ - "Microban x 10", - ["title Microban x 10\nauthor David Skinner, assembled by increpare\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\n\n\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\nGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\n DARKBROWN\n\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\nfill\ntransparent\n\nredzone r\nlightred\n.....\n.....\n..0..\n.....\n.....\n\nredPlayer\nred red red red\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nredcrate \n#ff0000 \n00000\n0...0\n0...0\n0...0\n00000\n\nyellowplayer\n#ffff00 #ffff00 #ffff00 #ffff00 \n.000.\n.111.\n22222\n.333.\n.3.3.\n\nyellowcrate \n#ffff00 \n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\ncanremove = player or crate or target\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nt = redzone and Player\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\nsfx0 7217302\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nfill\nredcrate\nredzone\nredplayer \nyellowplayer\nyellowcrate\n\n======\nRULES\n======\n\n[yellowplayer]->[]\n[yellowcrate]->[]\n[> player | Crate | no wall no crate ] -> [ > player | yellowplayer crate | no wall no crate yellowcrate ]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n\n\nlate [no wall] -> [fill]\n\nlate [target no crate fill]->[target]\nlate [fill| no wall no fill]->[|]\n\nlate [fill Player ]->[fill]\nlate [fill crate ]->[fill]\nlate [fill target ]->[fill]\nlate [fill]->[]\n\nlate [redplayer]->[]\nlate [redcrate]->[]\n\nlate [crate redzone]->cancel sfx0 \nlate [ player | crate | redzone ] -> [ player redplayer | crate redcrate | redzone ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage This is a compilation of 10 of my favourite levels from microban by David Skinner, where it turns out you can solve all of them simultaneously. Standard sokoban rules, with some helper visualisations.\n\nmessage levels 10 of 10\n\n\n###############################\n########rrrrrr#################\n########ro@@*t#rrrr###rrr######\n########r....r#r**.....#t######\n############rr#r*.#ooo..r######\n#ro#####rr#####rrr#############\n#..###r....*r#######rrrrr######\n#@p.r#r#..#*r#rrrrr#ro*or#root#\n#..*r#ro.o#tr#.o*or#r*o*r#r**r#\n#rr###########.*p*r#ro*or##.###\n####rrrr#...#r.o*or#r*o*r##.###\n####r#pr#...#rrrrrr#rrtrr##.###\n####r*@r###################.###\n####ro@r#o.r#o.r########r...###\n####rrrr#o#r#t**r#######r#..r##\n#########o#r##r..#######r..#r##\n###rp.*.*.*r###r.#########rrr##\n###r#.#.#.######o##############\n###rrrrrrr#####################\n###############################\n\n\n\nmessage congratulations x 10!\n\n", [3, 1, 2, 3, 2, 3, 0, 3, 0, "undo", 0, 3, 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 redzone:1,background:2,background crate target:3,2,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,background target:4,2,2,2,1,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background player:5,background crate:6,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,1,1,1,\n1,1,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,6,4,1,0,2,5,1,0,0,0,0,0,\n0,0,1,1,1,0,1,2,3,3,1,0,6,0,1,0,0,0,0,0,0,0,2,0,4,0,background player redzone:7,1,1,1,1,\n0,2,2,1,0,0,1,1,1,0,1,2,2,2,0,0,0,0,0,0,0,6,0,1,0,0,1,4,2,0,1,\n2,2,4,0,2,2,0,4,4,4,2,2,1,0,0,1,3,2,0,0,2,0,0,0,2,2,0,2,0,0,6,\n0,0,0,0,1,3,2,0,0,6,6,1,0,2,2,0,1,1,1,1,0,0,0,0,1,6,2,1,0,7,1,\n1,0,0,0,0,0,0,0,0,0,0,0,0,7,1,1,1,0,0,0,0,0,1,1,0,4,1,0,0,0,0,\n0,0,0,0,0,0,0,0,1,2,6,2,1,0,background player redplayer:8,background crate redcrate:9,1,0,0,0,0,0,0,1,1,1,1,0,1,4,2,\n4,1,0,1,6,2,1,0,0,0,0,0,1,6,6,1,0,1,6,6,2,1,0,0,1,2,2,4,0,0,0,\n0,1,6,2,1,0,1,background crate redcrate target yellowcrate:10,background player redplayer yellowplayer:11,4,1,0,0,0,0,0,0,0,0,0,0,1,2,0,0,0,1,1,1,1,1,\n0,0,0,0,0,0,0,0,0,0,0,2,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n2,4,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,2,4,0,1,4,6,4,6,1,0,0,\n0,0,0,0,0,0,0,0,1,2,2,0,1,6,3,2,4,1,0,0,0,0,0,0,0,0,0,0,1,0,2,\n0,1,10,11,4,6,1,0,0,0,0,0,0,0,0,0,0,7,1,1,0,1,1,1,1,1,1,0,1,1,1,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,\n1,1,0,0,0,0,2,2,2,1,0,0,0,0,0,0,0,0,0,0,4,6,2,2,2,2,2,2,0,1,0,\n0,0,0,0,0,0,0,0,0,4,6,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,7,1,\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,\n", 2, "1627893725475.1794"] + "Microban x 10", + ["title Microban x 10\nauthor David Skinner, assembled by increpare\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\n\n\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\nGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\n DARKBROWN\n\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\nfill\ntransparent\n\nredzone r\nlightred\n.....\n.....\n..0..\n.....\n.....\n\nredPlayer\nred red red red\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nredcrate \n#ff0000 \n00000\n0...0\n0...0\n0...0\n00000\n\nyellowplayer\n#ffff00 #ffff00 #ffff00 #ffff00 \n.000.\n.111.\n22222\n.333.\n.3.3.\n\nyellowcrate \n#ffff00 \n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\ncanremove = player or crate or target\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nt = redzone and Player\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\nsfx0 7217302\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nfill\nredcrate\nredzone\nredplayer \nyellowplayer\nyellowcrate\n\n======\nRULES\n======\n\n[yellowplayer]->[]\n[yellowcrate]->[]\n[> player | Crate | no wall no crate ] -> [ > player | yellowplayer crate | no wall no crate yellowcrate ]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n\n\nlate [no wall] -> [fill]\n\nlate [target no crate fill]->[target]\nlate [fill| no wall no fill]->[|]\n\nlate [fill Player ]->[fill]\nlate [fill crate ]->[fill]\nlate [fill target ]->[fill]\nlate [fill]->[]\n\nlate [redplayer]->[]\nlate [redcrate]->[]\n\nlate [crate redzone]->cancel sfx0 \nlate [ player | crate | redzone ] -> [ player redplayer | crate redcrate | redzone ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage This is a compilation of 10 of my favourite levels from microban by David Skinner, where it turns out you can solve all of them simultaneously. Standard sokoban rules, with some helper visualisations.\n\nmessage levels 10 of 10\n\n\n###############################\n########rrrrrr#################\n########ro@@*t#rrrr###rrr######\n########r....r#r**.....#t######\n############rr#r*.#ooo..r######\n#ro#####rr#####rrr#############\n#..###r....*r#######rrrrr######\n#@p.r#r#..#*r#rrrrr#ro*or#root#\n#..*r#ro.o#tr#.o*or#r*o*r#r**r#\n#rr###########.*p*r#ro*or##.###\n####rrrr#...#r.o*or#r*o*r##.###\n####r#pr#...#rrrrrr#rrtrr##.###\n####r*@r###################.###\n####ro@r#o.r#o.r########r...###\n####rrrr#o#r#t**r#######r#..r##\n#########o#r##r..#######r..#r##\n###rp.*.*.*r###r.#########rrr##\n###r#.#.#.######o##############\n###rrrrrrr#####################\n###############################\n\n\n\nmessage congratulations x 10!\n\n",[3,1,2,3,2,3,0,3,0,"undo",0,3,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 redzone:1,background:2,background crate target:3,2,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,background target:4,2,2,2,1,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background player:5,background crate:6,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,1,1,1,\n1,1,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,6,4,1,0,2,5,1,0,0,0,0,0,\n0,0,1,1,1,0,1,2,3,3,1,0,6,0,1,0,0,0,0,0,0,0,2,0,4,0,background player redzone:7,1,1,1,1,\n0,2,2,1,0,0,1,1,1,0,1,2,2,2,0,0,0,0,0,0,0,6,0,1,0,0,1,4,2,0,1,\n2,2,4,0,2,2,0,4,4,4,2,2,1,0,0,1,3,2,0,0,2,0,0,0,2,2,0,2,0,0,6,\n0,0,0,0,1,3,2,0,0,6,6,1,0,2,2,0,1,1,1,1,0,0,0,0,1,6,2,1,0,7,1,\n1,0,0,0,0,0,0,0,0,0,0,0,0,7,1,1,1,0,0,0,0,0,1,1,0,4,1,0,0,0,0,\n0,0,0,0,0,0,0,0,1,2,6,2,1,0,background player redplayer:8,background crate redcrate:9,1,0,0,0,0,0,0,1,1,1,1,0,1,4,2,\n4,1,0,1,6,2,1,0,0,0,0,0,1,6,6,1,0,1,6,6,2,1,0,0,1,2,2,4,0,0,0,\n0,1,6,2,1,0,1,background crate redcrate target yellowcrate:10,background player redplayer yellowplayer:11,4,1,0,0,0,0,0,0,0,0,0,0,1,2,0,0,0,1,1,1,1,1,\n0,0,0,0,0,0,0,0,0,0,0,2,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n2,4,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,2,4,0,1,4,6,4,6,1,0,0,\n0,0,0,0,0,0,0,0,1,2,2,0,1,6,3,2,4,1,0,0,0,0,0,0,0,0,0,0,1,0,2,\n0,1,10,11,4,6,1,0,0,0,0,0,0,0,0,0,0,7,1,1,0,1,1,1,1,1,1,0,1,1,1,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,\n1,1,0,0,0,0,2,2,2,1,0,0,0,0,0,0,0,0,0,0,4,6,2,2,2,2,2,2,0,1,0,\n0,0,0,0,0,0,0,0,0,4,6,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,7,1,\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,\n",2,"1627893725475.1794"] ], [ - "The Far Away Danish Pastry is always Deliciouser.", - ["title The Far Away Danish Pastry is always Deliciouser.\nauthor increpare [variant of Lexaloffle's Neko Puzzle]\nhomepage www.increpare.com\nbackground_color darkbrown\ntext_color yellow\n(\nAn inadequate but illustrative demake of one of my favourite puzzle games ever, by the extremely amicable Lexaloffle, and with his permission.\n\nwww.lexaloffle.com/neko.htm\n\nThe game proper has a lot of magic and love in it.\n)\n\n========\nOBJECTS\n========\n\nBackground .\ndarkbrown\n\nFruit F\nyellow orange red\n...0.\n0010.\n.121.\n.0100\n.0...\n\nPlayer P\nyellow red\n.111.\n10001\n11111\n01110\n0...0\n\n=======\nLEGEND\n=======\n\n=========\nSOUNDS\n=========\nendlevel 97301508\nstartgame 97301508\nendgame 97301508\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\nFruit\n\n======\nRULES\n======\n\n[ > Player | ... | Fruit ] -> [ | ... | > Player fruit ]\n\n[ player fruit ] -> [ player ]\n\n(if you're not sure what this line does, try removing it, and see what happens)\n[ > Player ] -> [ Player]\n\n==============\nWINCONDITIONS\n==============\nNo fruit\n\n=======\nLEVELS\n=======\n\n\nmessage level 1 of 8\n\n\n........\n....F.P.\nF.F.....\n........\nF...F...\n..F.F...\n........\n\nmessage level 2 of 8\n\n........\n...fff..\n..f.p...\n..ff.f..\n........\n..f.f...\n....f...\n\n\nmessage level 3 of 8\n\n........\n.f..ffff\n........\n.f....p.\n........\n........\n.....fff\n.......f\n\nmessage level 4 of 8\n\n........\nf...f...\nf..ff...\n........\n...pf...\n...ff.ff\n\nmessage level 5 of 8\n\n........\n........\n........\nf...f.f.\nf.f.p.ff\nf...f...\n.......f\n........\n\n\nmessage level 6 of 8\n(ok)\n.f......\n.f.ff...\n.f.fff.f\nfpff....\n.f.ffff.\n.f.f....\n.f......\n(\nmessage level 7 of 9 \n\nf.f....f\nf...f...\n.f....f.\n.f..p...\n........\nff..ff.f\n..fff..f\n..f...ff\n)\nmessage level 7 of 8\n(like this one )\n.ffpff.....f.\nff.f....f....\nff...........\n..f.........f\n.f...f......f\n.............\nf...f....f.f.\n\nmessage level 8 of 8\n(Acceptably hard final level)\nfff...f..f...f\n....f..f.f....\n.......p....f.\n......f..ff...\nf.....f......f\n..............\n.....fff....f.\n\n\n\n\n(\nmessage level 6 of 10\n(hard!)\n..ffff..\n..fp....\n........\nff......\n.f...fff\n...ff..f\n.f....f.\n.f.f.f..\n)\n\n\nmessage congratulations!\n\n", [3, 2, 1, 0, 3], "background:0,0,background fruit:1,0,0,0,0,1,1,1,0,1,0,\n0,1,0,0,1,0,0,0,0,1,0,0,0,\n0,0,1,0,0,0,0,0,1,1,0,0,0,\n1,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background player:2,0,0,0,0,0,0,0,\n0,0,0,0,1,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,1,1,0,0,\n", 13, "1627893739801.0737"] + "The Far Away Danish Pastry is always Deliciouser.", + ["title The Far Away Danish Pastry is always Deliciouser.\nauthor increpare [variant of Lexaloffle's Neko Puzzle]\nhomepage www.increpare.com\nbackground_color darkbrown\ntext_color yellow\n(\nAn inadequate but illustrative demake of one of my favourite puzzle games ever, by the extremely amicable Lexaloffle, and with his permission.\n\nwww.lexaloffle.com/neko.htm\n\nThe game proper has a lot of magic and love in it.\n)\n\n========\nOBJECTS\n========\n\nBackground .\ndarkbrown\n\nFruit F\nyellow orange red\n...0.\n0010.\n.121.\n.0100\n.0...\n\nPlayer P\nyellow red\n.111.\n10001\n11111\n01110\n0...0\n\n=======\nLEGEND\n=======\n\n=========\nSOUNDS\n=========\nendlevel 97301508\nstartgame 97301508\nendgame 97301508\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\nFruit\n\n======\nRULES\n======\n\n[ > Player | ... | Fruit ] -> [ | ... | > Player fruit ]\n\n[ player fruit ] -> [ player ]\n\n(if you're not sure what this line does, try removing it, and see what happens)\n[ > Player ] -> [ Player]\n\n==============\nWINCONDITIONS\n==============\nNo fruit\n\n=======\nLEVELS\n=======\n\n\nmessage level 1 of 8\n\n\n........\n....F.P.\nF.F.....\n........\nF...F...\n..F.F...\n........\n\nmessage level 2 of 8\n\n........\n...fff..\n..f.p...\n..ff.f..\n........\n..f.f...\n....f...\n\n\nmessage level 3 of 8\n\n........\n.f..ffff\n........\n.f....p.\n........\n........\n.....fff\n.......f\n\nmessage level 4 of 8\n\n........\nf...f...\nf..ff...\n........\n...pf...\n...ff.ff\n\nmessage level 5 of 8\n\n........\n........\n........\nf...f.f.\nf.f.p.ff\nf...f...\n.......f\n........\n\n\nmessage level 6 of 8\n(ok)\n.f......\n.f.ff...\n.f.fff.f\nfpff....\n.f.ffff.\n.f.f....\n.f......\n(\nmessage level 7 of 9 \n\nf.f....f\nf...f...\n.f....f.\n.f..p...\n........\nff..ff.f\n..fff..f\n..f...ff\n)\nmessage level 7 of 8\n(like this one )\n.ffpff.....f.\nff.f....f....\nff...........\n..f.........f\n.f...f......f\n.............\nf...f....f.f.\n\nmessage level 8 of 8\n(Acceptably hard final level)\nfff...f..f...f\n....f..f.f....\n.......p....f.\n......f..ff...\nf.....f......f\n..............\n.....fff....f.\n\n\n\n\n(\nmessage level 6 of 10\n(hard!)\n..ffff..\n..fp....\n........\nff......\n.f...fff\n...ff..f\n.f....f.\n.f.f.f..\n)\n\n\nmessage congratulations!\n\n",[3,2,1,0,3],"background:0,0,background fruit:1,0,0,0,0,1,1,1,0,1,0,\n0,1,0,0,1,0,0,0,0,1,0,0,0,\n0,0,1,0,0,0,0,0,1,1,0,0,0,\n1,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,background player:2,0,0,0,0,0,0,0,\n0,0,0,0,1,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,1,1,0,0,\n",13,"1627893739801.0737"] ], [ - "CŌDEX·LŪBRICUS", - ["title CŌDEX·LŪBRICUS\nauthor INCREPĀRE\nhomepage www.increpare.com\n\nagain_interval 0.1\n\nrun_rules_on_level_start\n\n\nbackground_color #523a2a\ntext_color #c19c4d\n\n( verbose_logging )\n\n(thanks to everyon on twitch for feedback + company as I was making this)\n========\nOBJECTS\n========\n\nBackground\n#ac763c #9b672f\n00000\n01010\n00000\n01010\n00000\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\ntargetfg1\n#ac763c #9b672f\n..111\n10101\n10101\n10101\n..111\n\n\ntargetfg2\n#9b672f #523a2a \n00111\n10101\n10101\n10101\n00111\n\nWall\n#8a6b3e #7d623a\n00000\n00000\n00100\n00000\n00000\n\nPlayer\n#8a6b3e #7d623a\n00000\n00000\n00100\n00000\n00000\n\nwall_highlight_top\n#c19c4d\n00000\n.....\n.....\n.....\n.....\n\nwall_highlight_bottom\n#523a2a\n.....\n.....\n.....\n.....\n00000\n\nwall_highlight_left\n#523a2a\n0....\n0....\n0....\n0....\n0....\n\nwall_highlight_right\n#c19c4d\n....0\n....0\n....0\n....0\n....0\n\n\nwall_highlight_topleft\n#8a6b3e\n0....\n.....\n.....\n.....\n.....\n\n\nwall_highlight_bottomright\n#8a6b3e\n.....\n.....\n.....\n.....\n....0\n\n\n(\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n)\nCrate1 1\n#9e564a \n00000\n00000\n00000\n00000\n00000\n\ncrate1_highlight_top\n#b76f63\n00000\n.....\n.....\n.....\n.....\n\ncrate1_highlight_bottom\n#743429\n.....\n.....\n.....\n.....\n00000\n\ncrate1_highlight_left\n#743429\n0....\n0....\n0....\n0....\n0....\n\ncrate1_highlight_right\n#b76f63\n....0\n....0\n....0\n....0\n....0\n\n\ncrate1_highlight_topleft\n#9e564a\n0....\n.....\n.....\n.....\n.....\n\n\ncrate1_highlight_bottomright\n#9e564a\n.....\n.....\n.....\n.....\n....0\n\n\nCrate2 2\n#4ca474 \n00000\n00000\n00000\n00000\n00000\n\n\n\ncrate2_highlight_top\n#6dd39c\n00000\n.....\n.....\n.....\n.....\n\ncrate2_highlight_bottom\n#2b6143\n.....\n.....\n.....\n.....\n00000\n\ncrate2_highlight_left\n#2b6143\n0....\n0....\n0....\n0....\n0....\n\ncrate2_highlight_right\n#6dd39c\n....0\n....0\n....0\n....0\n....0\n\n\ncrate2_highlight_topleft\n#4ca474\n0....\n.....\n.....\n.....\n.....\n\n\ncrate2_highlight_bottomright\n#4ca474\n.....\n.....\n.....\n.....\n....0\n\n\nslideright\ntransparent\n\nslidedown\ntransparent\n\nslideleft\ntransparent\n\nslideup\ntransparent\n\nnospawn ,\ntransparent\n\n\n=======\nLEGEND\n=======\n\n\ncrate = crate1 or crate2 \nslidetag = slideleft or slideup or slideright or slidedown\n\ncrate1_highlight = crate1_highlight_top or crate1_highlight_bottom or crate1_highlight_left or crate1_highlight_right or crate1_highlight_topleft or crate1_highlight_bottomright\n\ncrate2_highlight = crate2_highlight_top or crate2_highlight_bottom or crate2_highlight_left or crate2_highlight_right or crate2_highlight_topleft or crate2_highlight_bottomright\n\ncrate_highlight = crate1_highlight or crate2_highlight\n\nhighlight_left = wall_highlight_left or crate1_highlight_left or crate2_highlight_left\nhighlight_bottom = wall_highlight_bottom or crate1_highlight_bottom or crate2_highlight_bottom\n\n. = Background\n# = Wall\nP = Player and wall\n* = Crate1\n@ = Crate1 and Target\nO = Target and nospawn\nobs = wall or crate\n\n; = targetfg1 and nospawn\n: = targetfg2 and Target and nospawn\n\n=======\nSOUNDS\n=======\n\nsfx0 94813307 (push)\nsfx1 66342702 (delete)\nendlevel 61653300\nstartgame 5762303\nstartlevel 10793103\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\ntargetfg1, targetfg2\nPlayer\nWall, Crate\nwall_highlight_top,crate1_highlight_top,crate2_highlight_top\nwall_highlight_bottom,crate1_highlight_bottom,crate2_highlight_bottom\nwall_highlight_left,crate1_highlight_left,crate2_highlight_left\nwall_highlight_right,crate1_highlight_right,crate2_highlight_right\nwall_highlight_topleft,crate1_highlight_topleft,crate2_highlight_topleft\nwall_highlight_bottomright,crate1_highlight_bottomright,crate2_highlight_bottomright\nslidetag\nnospawn\n\n======\nRULES\n======\n\n\n\n\n[> player slidetag]->[> player]\n\n[ up player ] -> [ up player slideup ] again \n[ down player ] -> [ down player slidedown ] again \n[ left player ] -> [ left player slideleft ] again \n[ right player ] -> [ right player slideright ] again \n\n\n[ slideup ] [ crate ] -> [ slideup ] [ up crate ] again\n[ slidedown ] [ crate ] -> [ slidedown ] [ down crate ] again\n[ slideleft ] [ crate ] -> [ slideleft ] [ left crate ] again\n[ slideright ] [ crate ] -> [ slideright ] [ right crate ] again\n\n[ > crate | stationary obs ] -> [ crate | stationary obs ]\n+ [ moving crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ moving crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n\n [ target > crate ] -> [ target ] sfx1\n\n[moving player]->[player]\n\n(cosmetics start)\nlate [crate_highlight]->[]\n\n\nlate right [ no target | target ] -> [ targetfg1 | targetfg2 target]\n\nlate up [ wall | no wall ] -> [ wall wall_highlight_top |]\nlate down [ wall | no wall ] -> [ wall wall_highlight_bottom| ]\nlate left [ wall | no wall ] -> [ wall wall_highlight_left |]\nlate right [ wall | no wall ] -> [ wall wall_highlight_right |]\nlate [wall_highlight_top wall_highlight_left ] -> [wall_highlight_top wall_highlight_left wall_highlight_topleft]\nlate [wall_highlight_bottom wall_highlight_right ] -> [wall_highlight_bottom wall_highlight_right wall_highlight_bottomright]\n\nlate up [ crate1 | no crate1 ] -> [ crate1 crate1_highlight_top |]\nlate down [ crate1 | no crate1 ] -> [ crate1 crate1_highlight_bottom| ]\nlate left [ crate1 | no crate1 ] -> [ crate1 crate1_highlight_left |]\nlate right [ crate1 | no crate1 ] -> [ crate1 crate1_highlight_right |]\nlate [crate1_highlight_top crate1_highlight_left ] -> [crate1_highlight_top crate1_highlight_left crate1_highlight_topleft]\nlate [crate1_highlight_bottom crate1_highlight_right ] -> [crate1_highlight_bottom crate1_highlight_right crate1_highlight_bottomright]\n\nlate up [ crate2 | no crate2 ] -> [ crate2 crate2_highlight_top |]\nlate down [ crate2 | no crate2 ] -> [ crate2 crate2_highlight_bottom| ]\nlate left [ crate2 | no crate2 ] -> [ crate2 crate2_highlight_left |]\nlate right [ crate2 | no crate2 ] -> [ crate2 crate2_highlight_right |]\nlate [crate2_highlight_top crate2_highlight_left ] -> [crate2_highlight_top crate2_highlight_left crate2_highlight_topleft]\nlate [crate2_highlight_bottom crate2_highlight_right ] -> [crate2_highlight_bottom crate2_highlight_right crate2_highlight_bottomright]\n\n(cosmetics end)\n\n==============\nWINCONDITIONS\n==============\n\nno crate\n\n=======\nLEVELS\n=======\n \n \n(EASY)\n\nmessage DŪC·OMNIA·FIGŪRĀS·FORĀS\nmessage I·EX·XX·AETĀTIBUS\n\n(ok)\n(easy and not bad)\n#######p##\n#..#..####\n#1....,,,o\n#1..#.,,,o\n#2#...,,,o\n#.....####\n##########\n\nmessage II·EX·XX·AETĀTIBUS\n\n(ok)\n(Easyish)\n#######p##\n#.....####\n#.....####\n#1....####\n#1#22.,,,o\n#122..,,,o\n#.2...,,,o\n#.....####\n#.....####\n#.....####\n##########\n\nmessage III·EX·XX·AETĀTIBUS\n\n(ok)\n(kinda nice. not sooo strategic but i liked whne i got it)\n############p##\n#..........####\n#..........####\n#..........####\n#....#.....,,,o\n#..........,,,o\n#..........,,,o\n#..........####\n#...#......####\n#...1122222####\n###############\n\nmessage IV·EX·XX·AETĀTIBUS\n\n(chill)\n(decent)\n#######p##\n#.....####\n##....,,,o\n#.2.#.,,,o\n#.2...,,,o\n#..#11####\n##########\n\nmessage V·EX·XX·AETĀTIBUS\n\n(ok)\n(not so hard, and was fun to figure out)\n############p##\n#..........####\n#....#.....####\n#....122222####\n#......#...,,,o\n#..........,,,o\n#..........,,,o\n#.........#####\n#..........####\n#..........####\n###############\n\nmessage VI·EX·XX·AETĀTIBUS\n\n\n(easy enough, not bad)\n(also interesting shape!)\n############p##\n#..........####\n#.2..#.....,,,o\n#.22...#...,,,o\n#...11.....,,,o\n#...#1.....####\n###############\n\nmessage VII·EX·XX·AETĀTIBUS\n\n\n(late easy but fun)\n#######p##\n#...#.####\n#.....####\n#...2.####\n#...2.,,,o\n#...2.,,,o\n#..#..,,,o\n#.1...####\n#.11..####\n#.....####\n##########\n\nmessage VIII·EX·XX·AETĀTIBUS\n\n(decent + late-easy)\n(looks interesting/tractable, but I'm wrecked~)\n############p##\n#.....222..####\n#..1...#...,,,o\n#..1.....#.,,,o\n#...#......,,,o\n#..........####\n###############\n\nmessage IX·EX·XX·AETĀTIBUS\n\n(MEDIUM)\n\n\n(ok)\n(good fun level to analyse + solve)\n############p##\n#..........####\n##.........####\n#..........####\n#..........,,,o\n#...2......,,,o\n#..#2......,,,o\n#...2......####\n#..111111..####\n#.........#####\n###############\n\nmessage X·EX·XX·AETĀTIBUS\n\n(meh? take or leave?)\n(before i left 4)\n(not too hard. satisfying middle state?)\n############p##\n#....1111..####\n#.#...1..#.####\n#22........####\n#22.#......,,,o\n#.2........,,,o\n#..........,,,o\n#..........####\n#..........####\n#..........####\n###############\n\nmessage XI·EX·XX·AETĀTIBUS\n\n\n(fine)\n(ok but the second time was much harder)\n(not too hard and ok? / kinda fun!) \n#######p##\n#.22#.####\n#.22..####\n#.11..####\n#.1...,,,o\n#..#..,,,o\n#.....,,,o\n#.....####\n#.....####\n#.....####\n##########\n\nmessage XII·EX·XX·AETĀTIBUS\n\n(HARD)\n\n\n\n(dunno, felt a bit hard but without personality)\n(hardish but unsatisfying to solve when i got it)\n(pleasant)\n#######p##\n#.....####\n#...1.####\n#..21.####\n#..222,,,o\n#.#..2,,,o\n#.....,,,o\n#.....####\n#.....####\n#.....####\n##########\n\nmessage XIII·EX·XX·AETĀTIBUS\n\n\n(TOO HARD)\n\n(biut hard but ok)\n(no idea how to solve, but haven't tried too hard)\n############p##\n#..........####\n#.#........####\n#..........####\n#.......#..,,,o\n#........11,,,o\n#..........,,,o\n#..........####\n#2.........####\n#2....#....####\n###############\n\nmessage XIV·EX·XX·AETĀTIBUS\n\n\n\n(meh, could leave out - didn't solve it too intentionally and didn't care to remember why)\n(before i left #1)\n(too hard! don't wanna think - haven't solved)\n############p##\n#..........####\n#..........####\n#..........####\n##.........,,,o\n#..........,,,o\n#......1...,,,o\n#22...111..####\n#22.#..1...####\n#22.......#####\n###############\n\nmessage XV·EX·XX·AETĀTIBUS\n\n\n\n(meh ok? once i solved it I could set a memorable personal goal state ,but there's no reason to have expected that to be deducable)\n(before i left 3)\n(no patience for this)\n############p##\n##......2..####\n#...#.2222.####\n#.....2....####\n#..........,,,o\n#..........,,,o\n#..#....111,,,o\n#........11####\n#..........####\n#..........####\n###############\n\nmessage XVI·EX·XX·AETĀTIBUS\n\n\n(solved, but very lukewarm about it; not much memorable, just using heuristics to power through) \n(After i came back 1)\n(dunno)\n############p##\n#..........####\n#1#........####\n#11111.....####\n#11........,,,o\n#..........,,,o\n#...#......,,,o\n#......2...####\n#..#...2...####\n#......2...####\n###############\n\nmessage XVII·EX·XX·AETĀTIBUS\n\n(Very like another level, but maybe worse/more comlpicated)\n############p##\n#..........####\n#......#...####\n#..........####\n#..........,,,o\n#..........,,,o\n##.........,,,o\n#....11112.####\n#........2#####\n#........2.####\n###############\n\n\nmessage XVIII·EX·XX·AETĀTIBUS\n\n\n(decent, lots of fun manipulations if a bit aimless)\n(might be ok but brain feels sleepy)\n#######p##\n#..2..####\n##.2.#####\n#..2..####\n#.....,,,o\n#...#.,,,o\n#11#..,,,o\n#.....####\n##....####\n#.....####\n##########\n\nmessage XIX·EX·XX·AETĀTIBUS\n\n(solved.fine)\n(can't be bothered)\n(looks good, too tired to solve rn)\n#######p##\n#...#.####\n#.....####\n#.....####\n#22#..,,,o\n#21...,,,o\n#21...,,,o\n#.....####\n#.....####\n#.....####\n##########\n\nmessage XX·EX·XX·AETĀTIBUS\n\n\n(ok last level but a bit meh)\n(After i came back 2)\n(too complicated?)\n############p##\n#....#.....####\n#..........####\n#..........####\n#..111.#...,,,o\n#..2111....,,,o\n#.2221.....,,,o\n#22........####\n#..........####\n#..#.......####\n###############\n\nmessage OPTIMĒ·LŪSISTĪ!\n\n\n( (Easy, maybe too easy?) )\n( #######p## )\n( #.....#### )\n( #...11,,,o )\n( #.###1,,,o )\n( ##2#..,,,o )\n( #3....#### )\n( ########## )\n\n\n\n( (curious / p. nice even thoguh it has three pieces) )\n( #######p## )\n( ###3#.#### )\n( #.#3..,,,o )\n( #..1#.,,,o )\n( #..12.,,,o )\n( #..22.#### )\n( ########## )\n\n( (hard) )\n( #######p## )\n( #.....#### )\n( #..11##### )\n( #3.1..#### )\n( #3....,,,o )\n( #.....,,,o )\n( #2....,,,o )\n( #.#...#### )\n( #....##### )\n( #.....#### )\n( ########## )\n\n\n( #######p## )\n( #.....#### )\n( #..11##### )\n( #3.1..#### )\n( #3....,,,o )\n( #.....,,,o )\n( #2....,,,o )\n( #.#...#### )\n( #....##### )\n( #.....#### )\n( ########## )\n\n( #######p## )\n( #.....#### )\n( #.....,,,o )\n( #.....,,,o )\n( #.....,,,o )\n( #.....#### )\n( ########## )\n\n\n( #######p## )\n( #.....#### )\n( #.....#### )\n( #.....#### )\n( #.....,,,o )\n( #.....,,,o )\n( #.....,,,o )\n( #.....#### )\n( #.....#### )\n( #.....#### )\n( ########## )\n\n\n( ############p## )\n( #..........#### )\n( #..........,,,o )\n( #..........,,,o )\n( #..........,,,o )\n( #..........#### )\n( ############### )\n\n( ############p## )\n( #..........#### )\n( #..........#### )\n( #..........#### )\n( #..........,,,o )\n( #..........,,,o )\n( #..........,,,o )\n( #..........#### )\n( #..........#### )\n( #..........#### )\n( ############### )\n", [2, 3, 0, 3, 2, 3, 0, 0, 1, 1, 3, 2, 1, 0, 0, 3, 0, 1, 0, 3, 2], "background wall:0,background wall wall_highlight_right:1,1,1,1,1,1,1,1,1,0,background wall wall_highlight_bottom:2,background:3,3,3,\n3,3,3,3,3,3,background wall wall_highlight_top:4,2,3,3,3,3,3,3,3,\nbackground crate2 crate2_highlight_bottom crate2_highlight_left crate2_highlight_top crate2_highlight_topleft:5,3,4,2,3,3,3,3,3,3,background crate2 crate2_highlight_left crate2_highlight_top crate2_highlight_topleft:6,background crate2 crate2_highlight_bottom crate2_highlight_bottomright crate2_highlight_right:7,background wall wall_highlight_left wall_highlight_right wall_highlight_top wall_highlight_topleft:8,0,2,\n3,3,3,3,3,background crate2 crate2_highlight_left crate2_highlight_right crate2_highlight_top crate2_highlight_topleft:9,background crate2 crate2_highlight_bottom:10,3,3,4,0,background wall wall_highlight_bottom wall_highlight_bottomright wall_highlight_left wall_highlight_right:11,3,3,3,\n3,3,background crate2 crate2_highlight_bottom crate2_highlight_bottomright crate2_highlight_right crate2_highlight_top:12,3,3,4,2,3,3,3,3,3,3,3,3,\n3,4,2,3,3,background crate1 crate1_highlight_bottom crate1_highlight_left crate1_highlight_top crate1_highlight_topleft:13,background wall wall_highlight_bottom wall_highlight_bottomright wall_highlight_left wall_highlight_right wall_highlight_top wall_highlight_topleft:14,3,3,3,3,3,4,2,3,\n3,background crate1 crate1_highlight_top:15,background crate1 crate1_highlight_bottom crate1_highlight_left:16,3,3,3,3,3,4,2,3,3,background crate1 crate1_highlight_right crate1_highlight_top:17,background crate1:18,background crate1 crate1_highlight_bottom crate1_highlight_bottomright crate1_highlight_left crate1_highlight_right:19,\n3,3,3,3,4,2,3,3,3,background crate1 crate1_highlight_bottom crate1_highlight_bottomright crate1_highlight_right crate1_highlight_top:20,3,3,3,3,3,\n4,0,background wall wall_highlight_left:21,21,background wall wall_highlight_bottom wall_highlight_left:22,background nospawn:23,23,23,background wall wall_highlight_left wall_highlight_top wall_highlight_topleft:24,21,21,0,background player slidedown wall:25,0,0,\n2,23,23,23,4,0,0,0,0,0,0,2,background nospawn targetfg1:26,26,26,\n4,0,0,0,0,0,0,2,background nospawn target targetfg2:27,27,27,4,0,0,0,\n", 40, "1627893759466.7617"] + "CŌDEX·LŪBRICUS", + ["title CŌDEX·LŪBRICUS\nauthor INCREPĀRE\nhomepage www.increpare.com\n\nagain_interval 0.1\n\nrun_rules_on_level_start\n\n\nbackground_color #523a2a\ntext_color #c19c4d\n\n( verbose_logging )\n\n(thanks to everyon on twitch for feedback + company as I was making this)\n========\nOBJECTS\n========\n\nBackground\n#ac763c #9b672f\n00000\n01010\n00000\n01010\n00000\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\ntargetfg1\n#ac763c #9b672f\n..111\n10101\n10101\n10101\n..111\n\n\ntargetfg2\n#9b672f #523a2a \n00111\n10101\n10101\n10101\n00111\n\nWall\n#8a6b3e #7d623a\n00000\n00000\n00100\n00000\n00000\n\nPlayer\n#8a6b3e #7d623a\n00000\n00000\n00100\n00000\n00000\n\nwall_highlight_top\n#c19c4d\n00000\n.....\n.....\n.....\n.....\n\nwall_highlight_bottom\n#523a2a\n.....\n.....\n.....\n.....\n00000\n\nwall_highlight_left\n#523a2a\n0....\n0....\n0....\n0....\n0....\n\nwall_highlight_right\n#c19c4d\n....0\n....0\n....0\n....0\n....0\n\n\nwall_highlight_topleft\n#8a6b3e\n0....\n.....\n.....\n.....\n.....\n\n\nwall_highlight_bottomright\n#8a6b3e\n.....\n.....\n.....\n.....\n....0\n\n\n(\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n)\nCrate1 1\n#9e564a \n00000\n00000\n00000\n00000\n00000\n\ncrate1_highlight_top\n#b76f63\n00000\n.....\n.....\n.....\n.....\n\ncrate1_highlight_bottom\n#743429\n.....\n.....\n.....\n.....\n00000\n\ncrate1_highlight_left\n#743429\n0....\n0....\n0....\n0....\n0....\n\ncrate1_highlight_right\n#b76f63\n....0\n....0\n....0\n....0\n....0\n\n\ncrate1_highlight_topleft\n#9e564a\n0....\n.....\n.....\n.....\n.....\n\n\ncrate1_highlight_bottomright\n#9e564a\n.....\n.....\n.....\n.....\n....0\n\n\nCrate2 2\n#4ca474 \n00000\n00000\n00000\n00000\n00000\n\n\n\ncrate2_highlight_top\n#6dd39c\n00000\n.....\n.....\n.....\n.....\n\ncrate2_highlight_bottom\n#2b6143\n.....\n.....\n.....\n.....\n00000\n\ncrate2_highlight_left\n#2b6143\n0....\n0....\n0....\n0....\n0....\n\ncrate2_highlight_right\n#6dd39c\n....0\n....0\n....0\n....0\n....0\n\n\ncrate2_highlight_topleft\n#4ca474\n0....\n.....\n.....\n.....\n.....\n\n\ncrate2_highlight_bottomright\n#4ca474\n.....\n.....\n.....\n.....\n....0\n\n\nslideright\ntransparent\n\nslidedown\ntransparent\n\nslideleft\ntransparent\n\nslideup\ntransparent\n\nnospawn ,\ntransparent\n\n\n=======\nLEGEND\n=======\n\n\ncrate = crate1 or crate2 \nslidetag = slideleft or slideup or slideright or slidedown\n\ncrate1_highlight = crate1_highlight_top or crate1_highlight_bottom or crate1_highlight_left or crate1_highlight_right or crate1_highlight_topleft or crate1_highlight_bottomright\n\ncrate2_highlight = crate2_highlight_top or crate2_highlight_bottom or crate2_highlight_left or crate2_highlight_right or crate2_highlight_topleft or crate2_highlight_bottomright\n\ncrate_highlight = crate1_highlight or crate2_highlight\n\nhighlight_left = wall_highlight_left or crate1_highlight_left or crate2_highlight_left\nhighlight_bottom = wall_highlight_bottom or crate1_highlight_bottom or crate2_highlight_bottom\n\n. = Background\n# = Wall\nP = Player and wall\n* = Crate1\n@ = Crate1 and Target\nO = Target and nospawn\nobs = wall or crate\n\n; = targetfg1 and nospawn\n: = targetfg2 and Target and nospawn\n\n=======\nSOUNDS\n=======\n\nsfx0 94813307 (push)\nsfx1 66342702 (delete)\nendlevel 61653300\nstartgame 5762303\nstartlevel 10793103\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\ntargetfg1, targetfg2\nPlayer\nWall, Crate\nwall_highlight_top,crate1_highlight_top,crate2_highlight_top\nwall_highlight_bottom,crate1_highlight_bottom,crate2_highlight_bottom\nwall_highlight_left,crate1_highlight_left,crate2_highlight_left\nwall_highlight_right,crate1_highlight_right,crate2_highlight_right\nwall_highlight_topleft,crate1_highlight_topleft,crate2_highlight_topleft\nwall_highlight_bottomright,crate1_highlight_bottomright,crate2_highlight_bottomright\nslidetag\nnospawn\n\n======\nRULES\n======\n\n\n\n\n[> player slidetag]->[> player]\n\n[ up player ] -> [ up player slideup ] again \n[ down player ] -> [ down player slidedown ] again \n[ left player ] -> [ left player slideleft ] again \n[ right player ] -> [ right player slideright ] again \n\n\n[ slideup ] [ crate ] -> [ slideup ] [ up crate ] again\n[ slidedown ] [ crate ] -> [ slidedown ] [ down crate ] again\n[ slideleft ] [ crate ] -> [ slideleft ] [ left crate ] again\n[ slideright ] [ crate ] -> [ slideright ] [ right crate ] again\n\n[ > crate | stationary obs ] -> [ crate | stationary obs ]\n+ [ moving crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ moving crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n\n [ target > crate ] -> [ target ] sfx1\n\n[moving player]->[player]\n\n(cosmetics start)\nlate [crate_highlight]->[]\n\n\nlate right [ no target | target ] -> [ targetfg1 | targetfg2 target]\n\nlate up [ wall | no wall ] -> [ wall wall_highlight_top |]\nlate down [ wall | no wall ] -> [ wall wall_highlight_bottom| ]\nlate left [ wall | no wall ] -> [ wall wall_highlight_left |]\nlate right [ wall | no wall ] -> [ wall wall_highlight_right |]\nlate [wall_highlight_top wall_highlight_left ] -> [wall_highlight_top wall_highlight_left wall_highlight_topleft]\nlate [wall_highlight_bottom wall_highlight_right ] -> [wall_highlight_bottom wall_highlight_right wall_highlight_bottomright]\n\nlate up [ crate1 | no crate1 ] -> [ crate1 crate1_highlight_top |]\nlate down [ crate1 | no crate1 ] -> [ crate1 crate1_highlight_bottom| ]\nlate left [ crate1 | no crate1 ] -> [ crate1 crate1_highlight_left |]\nlate right [ crate1 | no crate1 ] -> [ crate1 crate1_highlight_right |]\nlate [crate1_highlight_top crate1_highlight_left ] -> [crate1_highlight_top crate1_highlight_left crate1_highlight_topleft]\nlate [crate1_highlight_bottom crate1_highlight_right ] -> [crate1_highlight_bottom crate1_highlight_right crate1_highlight_bottomright]\n\nlate up [ crate2 | no crate2 ] -> [ crate2 crate2_highlight_top |]\nlate down [ crate2 | no crate2 ] -> [ crate2 crate2_highlight_bottom| ]\nlate left [ crate2 | no crate2 ] -> [ crate2 crate2_highlight_left |]\nlate right [ crate2 | no crate2 ] -> [ crate2 crate2_highlight_right |]\nlate [crate2_highlight_top crate2_highlight_left ] -> [crate2_highlight_top crate2_highlight_left crate2_highlight_topleft]\nlate [crate2_highlight_bottom crate2_highlight_right ] -> [crate2_highlight_bottom crate2_highlight_right crate2_highlight_bottomright]\n\n(cosmetics end)\n\n==============\nWINCONDITIONS\n==============\n\nno crate\n\n=======\nLEVELS\n=======\n \n \n(EASY)\n\nmessage DŪC·OMNIA·FIGŪRĀS·FORĀS\nmessage I·EX·XX·AETĀTIBUS\n\n(ok)\n(easy and not bad)\n#######p##\n#..#..####\n#1....,,,o\n#1..#.,,,o\n#2#...,,,o\n#.....####\n##########\n\nmessage II·EX·XX·AETĀTIBUS\n\n(ok)\n(Easyish)\n#######p##\n#.....####\n#.....####\n#1....####\n#1#22.,,,o\n#122..,,,o\n#.2...,,,o\n#.....####\n#.....####\n#.....####\n##########\n\nmessage III·EX·XX·AETĀTIBUS\n\n(ok)\n(kinda nice. not sooo strategic but i liked whne i got it)\n############p##\n#..........####\n#..........####\n#..........####\n#....#.....,,,o\n#..........,,,o\n#..........,,,o\n#..........####\n#...#......####\n#...1122222####\n###############\n\nmessage IV·EX·XX·AETĀTIBUS\n\n(chill)\n(decent)\n#######p##\n#.....####\n##....,,,o\n#.2.#.,,,o\n#.2...,,,o\n#..#11####\n##########\n\nmessage V·EX·XX·AETĀTIBUS\n\n(ok)\n(not so hard, and was fun to figure out)\n############p##\n#..........####\n#....#.....####\n#....122222####\n#......#...,,,o\n#..........,,,o\n#..........,,,o\n#.........#####\n#..........####\n#..........####\n###############\n\nmessage VI·EX·XX·AETĀTIBUS\n\n\n(easy enough, not bad)\n(also interesting shape!)\n############p##\n#..........####\n#.2..#.....,,,o\n#.22...#...,,,o\n#...11.....,,,o\n#...#1.....####\n###############\n\nmessage VII·EX·XX·AETĀTIBUS\n\n\n(late easy but fun)\n#######p##\n#...#.####\n#.....####\n#...2.####\n#...2.,,,o\n#...2.,,,o\n#..#..,,,o\n#.1...####\n#.11..####\n#.....####\n##########\n\nmessage VIII·EX·XX·AETĀTIBUS\n\n(decent + late-easy)\n(looks interesting/tractable, but I'm wrecked~)\n############p##\n#.....222..####\n#..1...#...,,,o\n#..1.....#.,,,o\n#...#......,,,o\n#..........####\n###############\n\nmessage IX·EX·XX·AETĀTIBUS\n\n(MEDIUM)\n\n\n(ok)\n(good fun level to analyse + solve)\n############p##\n#..........####\n##.........####\n#..........####\n#..........,,,o\n#...2......,,,o\n#..#2......,,,o\n#...2......####\n#..111111..####\n#.........#####\n###############\n\nmessage X·EX·XX·AETĀTIBUS\n\n(meh? take or leave?)\n(before i left 4)\n(not too hard. satisfying middle state?)\n############p##\n#....1111..####\n#.#...1..#.####\n#22........####\n#22.#......,,,o\n#.2........,,,o\n#..........,,,o\n#..........####\n#..........####\n#..........####\n###############\n\nmessage XI·EX·XX·AETĀTIBUS\n\n\n(fine)\n(ok but the second time was much harder)\n(not too hard and ok? / kinda fun!) \n#######p##\n#.22#.####\n#.22..####\n#.11..####\n#.1...,,,o\n#..#..,,,o\n#.....,,,o\n#.....####\n#.....####\n#.....####\n##########\n\nmessage XII·EX·XX·AETĀTIBUS\n\n(HARD)\n\n\n\n(dunno, felt a bit hard but without personality)\n(hardish but unsatisfying to solve when i got it)\n(pleasant)\n#######p##\n#.....####\n#...1.####\n#..21.####\n#..222,,,o\n#.#..2,,,o\n#.....,,,o\n#.....####\n#.....####\n#.....####\n##########\n\nmessage XIII·EX·XX·AETĀTIBUS\n\n\n(TOO HARD)\n\n(biut hard but ok)\n(no idea how to solve, but haven't tried too hard)\n############p##\n#..........####\n#.#........####\n#..........####\n#.......#..,,,o\n#........11,,,o\n#..........,,,o\n#..........####\n#2.........####\n#2....#....####\n###############\n\nmessage XIV·EX·XX·AETĀTIBUS\n\n\n\n(meh, could leave out - didn't solve it too intentionally and didn't care to remember why)\n(before i left #1)\n(too hard! don't wanna think - haven't solved)\n############p##\n#..........####\n#..........####\n#..........####\n##.........,,,o\n#..........,,,o\n#......1...,,,o\n#22...111..####\n#22.#..1...####\n#22.......#####\n###############\n\nmessage XV·EX·XX·AETĀTIBUS\n\n\n\n(meh ok? once i solved it I could set a memorable personal goal state ,but there's no reason to have expected that to be deducable)\n(before i left 3)\n(no patience for this)\n############p##\n##......2..####\n#...#.2222.####\n#.....2....####\n#..........,,,o\n#..........,,,o\n#..#....111,,,o\n#........11####\n#..........####\n#..........####\n###############\n\nmessage XVI·EX·XX·AETĀTIBUS\n\n\n(solved, but very lukewarm about it; not much memorable, just using heuristics to power through) \n(After i came back 1)\n(dunno)\n############p##\n#..........####\n#1#........####\n#11111.....####\n#11........,,,o\n#..........,,,o\n#...#......,,,o\n#......2...####\n#..#...2...####\n#......2...####\n###############\n\nmessage XVII·EX·XX·AETĀTIBUS\n\n(Very like another level, but maybe worse/more comlpicated)\n############p##\n#..........####\n#......#...####\n#..........####\n#..........,,,o\n#..........,,,o\n##.........,,,o\n#....11112.####\n#........2#####\n#........2.####\n###############\n\n\nmessage XVIII·EX·XX·AETĀTIBUS\n\n\n(decent, lots of fun manipulations if a bit aimless)\n(might be ok but brain feels sleepy)\n#######p##\n#..2..####\n##.2.#####\n#..2..####\n#.....,,,o\n#...#.,,,o\n#11#..,,,o\n#.....####\n##....####\n#.....####\n##########\n\nmessage XIX·EX·XX·AETĀTIBUS\n\n(solved.fine)\n(can't be bothered)\n(looks good, too tired to solve rn)\n#######p##\n#...#.####\n#.....####\n#.....####\n#22#..,,,o\n#21...,,,o\n#21...,,,o\n#.....####\n#.....####\n#.....####\n##########\n\nmessage XX·EX·XX·AETĀTIBUS\n\n\n(ok last level but a bit meh)\n(After i came back 2)\n(too complicated?)\n############p##\n#....#.....####\n#..........####\n#..........####\n#..111.#...,,,o\n#..2111....,,,o\n#.2221.....,,,o\n#22........####\n#..........####\n#..#.......####\n###############\n\nmessage OPTIMĒ·LŪSISTĪ!\n\n\n( (Easy, maybe too easy?) )\n( #######p## )\n( #.....#### )\n( #...11,,,o )\n( #.###1,,,o )\n( ##2#..,,,o )\n( #3....#### )\n( ########## )\n\n\n\n( (curious / p. nice even thoguh it has three pieces) )\n( #######p## )\n( ###3#.#### )\n( #.#3..,,,o )\n( #..1#.,,,o )\n( #..12.,,,o )\n( #..22.#### )\n( ########## )\n\n( (hard) )\n( #######p## )\n( #.....#### )\n( #..11##### )\n( #3.1..#### )\n( #3....,,,o )\n( #.....,,,o )\n( #2....,,,o )\n( #.#...#### )\n( #....##### )\n( #.....#### )\n( ########## )\n\n\n( #######p## )\n( #.....#### )\n( #..11##### )\n( #3.1..#### )\n( #3....,,,o )\n( #.....,,,o )\n( #2....,,,o )\n( #.#...#### )\n( #....##### )\n( #.....#### )\n( ########## )\n\n( #######p## )\n( #.....#### )\n( #.....,,,o )\n( #.....,,,o )\n( #.....,,,o )\n( #.....#### )\n( ########## )\n\n\n( #######p## )\n( #.....#### )\n( #.....#### )\n( #.....#### )\n( #.....,,,o )\n( #.....,,,o )\n( #.....,,,o )\n( #.....#### )\n( #.....#### )\n( #.....#### )\n( ########## )\n\n\n( ############p## )\n( #..........#### )\n( #..........,,,o )\n( #..........,,,o )\n( #..........,,,o )\n( #..........#### )\n( ############### )\n\n( ############p## )\n( #..........#### )\n( #..........#### )\n( #..........#### )\n( #..........,,,o )\n( #..........,,,o )\n( #..........,,,o )\n( #..........#### )\n( #..........#### )\n( #..........#### )\n( ############### )\n",[2,3,0,3,2,3,0,0,1,1,3,2,1,0,0,3,0,1,0,3,2],"background wall:0,background wall wall_highlight_right:1,1,1,1,1,1,1,1,1,0,background wall wall_highlight_bottom:2,background:3,3,3,\n3,3,3,3,3,3,background wall wall_highlight_top:4,2,3,3,3,3,3,3,3,\nbackground crate2 crate2_highlight_bottom crate2_highlight_left crate2_highlight_top crate2_highlight_topleft:5,3,4,2,3,3,3,3,3,3,background crate2 crate2_highlight_left crate2_highlight_top crate2_highlight_topleft:6,background crate2 crate2_highlight_bottom crate2_highlight_bottomright crate2_highlight_right:7,background wall wall_highlight_left wall_highlight_right wall_highlight_top wall_highlight_topleft:8,0,2,\n3,3,3,3,3,background crate2 crate2_highlight_left crate2_highlight_right crate2_highlight_top crate2_highlight_topleft:9,background crate2 crate2_highlight_bottom:10,3,3,4,0,background wall wall_highlight_bottom wall_highlight_bottomright wall_highlight_left wall_highlight_right:11,3,3,3,\n3,3,background crate2 crate2_highlight_bottom crate2_highlight_bottomright crate2_highlight_right crate2_highlight_top:12,3,3,4,2,3,3,3,3,3,3,3,3,\n3,4,2,3,3,background crate1 crate1_highlight_bottom crate1_highlight_left crate1_highlight_top crate1_highlight_topleft:13,background wall wall_highlight_bottom wall_highlight_bottomright wall_highlight_left wall_highlight_right wall_highlight_top wall_highlight_topleft:14,3,3,3,3,3,4,2,3,\n3,background crate1 crate1_highlight_top:15,background crate1 crate1_highlight_bottom crate1_highlight_left:16,3,3,3,3,3,4,2,3,3,background crate1 crate1_highlight_right crate1_highlight_top:17,background crate1:18,background crate1 crate1_highlight_bottom crate1_highlight_bottomright crate1_highlight_left crate1_highlight_right:19,\n3,3,3,3,4,2,3,3,3,background crate1 crate1_highlight_bottom crate1_highlight_bottomright crate1_highlight_right crate1_highlight_top:20,3,3,3,3,3,\n4,0,background wall wall_highlight_left:21,21,background wall wall_highlight_bottom wall_highlight_left:22,background nospawn:23,23,23,background wall wall_highlight_left wall_highlight_top wall_highlight_topleft:24,21,21,0,background player slidedown wall:25,0,0,\n2,23,23,23,4,0,0,0,0,0,0,2,background nospawn targetfg1:26,26,26,\n4,0,0,0,0,0,0,2,background nospawn target targetfg2:27,27,27,4,0,0,0,\n",40,"1627893759466.7617"] ], [ - "Oh No My Dog Is About To Swallow A Piece Of Chocolate", - ["title Oh No My Dog Is About To Swallow A Piece Of Chocolate\nauthor increpare\nhomepage www.increpare.com\n\nkey_repeat_interval 0.1\nagain_interval 0.1\n\nbackground_color #1e432e\ntext_color #e06f8b\n\nnoaction\n\n( debug )\n( verbose_logging )\n\n\n\n========\nOBJECTS\n========\n\nBackground\n#345e46\n\n\nPlayer\n#31a2f2\n\ndogskin1\n#a46422\n00000\n00000\n00000\n00000\n00000\n\ndogskin2\n#a46422 #945718\n00000\n00000\n00010\n00010\n00010\n\ndogskin3\n#a46422 #392a16 #e3e2a8\n00000\n01121\n01112\n01111\n01111\n\ndogskin4\n#a46422\n.....\n....0\n...00\n..000\n.0000\n\ndogskin5\n#945718 #a46422 #e06f8b\n00001\n11111\n11111\n11111\n11112\n\ndogskin6\n#a46422 #e06f8b #e3e2a8\n00000\n00000\n00000\n11111\n.2.2.\n\ndogskin7\n#a46422 #e06f8b #e3e2a8\n00000\n00000\n00000\n11111\n2.2.2\n\ndogskin8\n#a46422 #392a16 #e06f8b #e3e2a8\n00011\n00011\n00000\n22222\n.3.3.\n\ndogskin9\n#a46422 #e06f8b\n00001\n00001\n00001\n00001\n00001\n\ndogskin10\n#a46422 #945718\n..000\n..000\n00000\n00000\n10000\n\ndogskin11\n#a46422 #e06f8b\n00001\n00000\n00000\n00000\n00000\n\ndogskin12\n#a42544 #e3e2a8 #e06f8b #a46422\n01010\n22222\n33333\n33333\n33333\n\ndogskin13\n#e3e2a8 #a42544 #e06f8b #a46422\n01010\n22222\n33333\n33333\n33333\n\ndogskin14\n#a42544 #e3e2a8 #e06f8b #a46422\n01.1.\n22222\n33333\n33333\n3333.\n\ndogskin15\n#945718 #a46422\n01111\n00111\n00111\n00011\n10011\n\ndogskin16\n#a46422 #945718\n00000\n00000\n00000\n00111\n01111\n\ndogskin17\n#a46422 #945718\n00000\n00000\n00000\n11111\n11111\n\ndogskin18\n#a46422 #945718\n00000\n00000\n00000\n11110\n11111\n\ndogskin19\n#a46422\n00000\n00000\n00000\n00000\n0000.\n\ndogskin20\n#a46422\n00000\n00000\n0000.\n0000.\n0000.\n\ndogskin21\n#a46422\n0000.\n0000.\n0000.\n0000.\n0000.\n\ndogskin22\n#a46422\n0000.\n0000.\n0000.\n00000\n00000\n\ndogskin23\n#a46422\n0000.\n0000.\n0000.\n.0000\n..000\n\ndeaddogskin\n#392a16 #a46422\n01110\n10101\n11011\n10101\n01110\n\ndogclosedskin1\n#a46422 #945718\n00000\n00000\n00000\n00000\n11111\n\ndogclosedskin2\n#a46422 #392a16 #945718\n00011\n00011\n00000\n00000\n22222\n\ndogclosedskin3\n#e06f8b #a46422\n00000\n11111\n11111\n11111\n11111\n\ndogclosedskin4\n#e06f8b #a46422\n00000\n11111\n11111\n11111\n1111.\n\n\nplayerskin1\n#4d0400 #973530 #d3abab #130800\n00000\n10101\n11110\n22211\n23211\n\nplayerskin2\n#4d0400 #973530\n0000.\n00000\n10000\n01000\n10000\n\nplayerskin3 (x2)\n#973530\n00000\n00000\n00000\n00000\n00000\n\nplayerskin4\n#973530 #4d0400\n00111\n01011\n00101\n00011\n0000.\n\nplayerskin5\n#800700 #973530 #db5fa0 #b13978\n.0000\n.1111\n22221\n33331\n.1111\n\nplayerskin7\n#973530\n0000.\n0000.\n0000.\n0000.\n0000.\n\nplayerskin8 (x2)\n#4a9022\n00000\n00000\n00000\n00000\n00000\n\nplayerskin9\n#4a9022 #367413\n00001\n00001\n00001\n00001\n00001\n\n(then 8,9,8)\n\nplayerskin10\n#973530 #800700\n00000\n11000\n00000\n11000\n00000\n\nplayerskin11\n#367413 #4a9022\n00001\n11111\n11111\n11111\n11111\n\nplayerskin12\n#4a9022 #367413\n00001\n00010\n00100\n00100\n01000\n\nplayerskin13\n#367413 #4a9022\n00000\n11111\n11111\n11111\n11111\n\nplayerskin14\n#367413 #4a9022\n01111\n11111\n11111\n11111\n11111\n\nplayerskin15 (x3)\n#31a2f2\n00000\n00000\n00000\n00000\n00000\n\nplayerskin16\n#31a2f2 #167ec8\n00001\n00011\n00111\n01111\n11111\n\n(15)\n\nplayerskin17\n#167ec8\n00000\n00000\n00000\n00000\n00000\n\n(15,17)\n\nplayerskin18\n#a44951 #930e19 #d3a1a5\n01010\n01010\n00000\n11111\n22222\n\nplayerskin19\n#a44951 #930e19 #d3a1a5\n00000\n00000\n00000\n11111\n22222\n\nplayerskin20\n#90383f #800711 #ac767b\n00000\n00000\n11111\n22222\n.....\n\nchocolateskin\n#5d2816 #8c5340 #1f0c06\n01111\n20001\n20001\n20001\n22220\n\n\nDogHead \npink\n\nDogNeck \nred\n\nDogBottom \npurple\n\ndumbbellskin1\n#2a425b #1b2632 #26384b\n.0.0.\n12020\n12020\n12020\n12020\n\ndumbbellskin2\n#1b2632 #26384b\n01010\n01010\n01010\n01010\n01010\n\ndumbbellskin3\n#1b2632 #26384b\n01010\n01010\n01010\n00000\n.0.0.\n\n\ndumbbellskin4\n#8b8b8b #c8c8c8 #777777\n00000\n11111\n00000\n22222\n22222\n\nchairskin1\n#8b4b09 #bc7a36 #a46422\n01111\n02222\n02222\n02222\n00000\n\nchairskin2\n#bc7a36 #a46422 #8b4b09\n0000.\n11110\n11101\n11101\n21101\n\nchairskin3 (x2)\n#8b4b09 #a46422 #bc7a36\n01121\n01121\n01121\n01121\n01121\n\nchairskin4\n#8b4b09 #a46422 #bc7a36\n01121\n01111\n01111\n01111\n00000\n\nchairskin5\n#bc7a36 #a46422 #8b4b09\n00000\n11111\n11111\n11111\n22222\n\nchairskin6\n#bc7a36 #a46422 #8b4b09\n00000\n11110\n11110\n11110\n22221\n\nchairskin7\n#8b4b09 #a46422 #bc7a36\n.0110\n.0111\n.0112\n.0112\n.0112\n\nchairskin8\n#8b4b09 #a46422 #bc7a36\n.0112\n.0112\n.0112\n.0112\n.0000\n\nchairskin9\n#8b4b09 #a46422 #bc7a36\n0110.\n0111.\n0112.\n0112.\n0112.\n\nchairskin10\n#8b4b09 #a46422 #bc7a36\n0112.\n0112.\n0112.\n0112.\n0000.\n\ntableskin1\n#bc7a36 #8b4b09 #a46422\n.0000\n12222\n12222\n12222\n12222\n\ntableskin2\n#bc7a36 #a46422\n00000\n11111\n11111\n11111\n11111\n\ntableskin3\n#bc7a36 #a46422\n0000.\n11100\n11110\n11110\n11110\n\ntableskin4\n#8b4b09 #a46422\n01111\n01111\n01111\n01111\n01111\n\ntableskin5\n#a46422\n00000\n00000\n00000\n00000\n00000\n\ntableskin6\n#a46422 #bc7a36\n00001\n00001\n00001\n00001\n00001\n\ntableskin7\n#8b4b09 #a46422\n01111\n01111\n01111\n00111\n.0000\n\ntableskin8\n#a46422 #8b4b09\n00000\n00000\n00000\n00000\n11111\n\ntableskin9\n#a46422 #bc7a36 #8b4b09\n00001\n00001\n00001\n00001\n2222.\n\ntableskin10\n#8b4b09 #a46422 #bc7a36\n00000\n00001\n00111\n00121\n00121\n\ntableskin11\n#8b4b09 #a46422 #bc7a36\n00121\n00121\n00121\n00121\n00121\n\ntableskin12\n#8b4b09 #a46422 #bc7a36\n00121\n00121\n00121\n00121\n.012.\n\nrightskin1\n#bc7a36 #a46422 #8b4b09\n.0000\n11111\n12111\n12111\n12111\n\nrightskin2\n#bc7a36 #a46422 #8b4b09\n00000\n11110\n11110\n11110\n22211\n\n\nrightskin3\n#a46422 #8b4b09 #bc7a36\n01001\n01000\n01002\n01002\n01002\n\n\nrightskin4\n#a46422 #8b4b09 #bc7a36\n01002\n01002\n01002\n01002\n01002\n\n\n\nrightskin5\n#a46422 #bc7a36 #8b4b09\n01111\n20000\n20000\n20000\n22222\n\n\n\nrightskin6\n#a46422 #8b4b09 #bc7a36\n01002\n00002\n00002\n00002\n11111\n\n\n\n\n\n\n\nDogTongue \n#a42544\n.....\n.....\n.....\n.....\n0....\n\n\n\nboundary\n#846610\n\n\n\npushable \n#24c1ca #0d9ea6\n00000\n01110\n01110\n01110\n00000\n\npushable_connection_up\nyellow\n..0..\n.....\n.....\n.....\n.....\n\npushable_connection_down\nyellow\n.....\n.....\n.....\n.....\n..0..\n\npushable_connection_left\nyellow\n.....\n.....\n0....\n.....\n.....\n\npushable_connection_right\nyellow\n.....\n.....\n....0\n.....\n.....\n\nchocolate\npink\n0....\n.....\n.....\n.....\n.....\n\ndogstretch \n#0000ff\n.....\n.0...\n.....\n.....\n.....\n\ncantcontract\n#ff0000\n.....\n.....\n.....\n...0.\n.....\n\ncancontracttoken\ntransparent\n\n\n=======\nLEGEND\n=======\n\n\nobstacle = pushable or doghead or dogneck or dogbottom or boundary or player\npushable_connection = pushable_connection_up or pushable_connection_down or pushable_connection_left or pushable_connection_right\n\ndogblock = DogHead or DogNeck or DogBottom\ndogblock_noneck = DogHead or DogNeck or DogBottom\n\npushable_piece_nodog = pushable \npushing_piece_nodog = pushable or Player\n\npushable_piece = pushable or dogblock\npushing_piece = pushable or dogblock or Player\n\n\nq = DogHead\na = DogNeck\nz = DogBottom \nd = DogTongue\nw = boundary\n\n( 1 = pushable and chocolate )\n\n2 = pushable and pushable_connection_up\n3 = pushable and pushable_connection_down\n4 = pushable and pushable_connection_left\n5 = pushable and pushable_connection_right\n\n6 = pushable and pushable_connection_up and pushable_connection_down\n7 = pushable and pushable_connection_up and pushable_connection_left\n8 = pushable and pushable_connection_up and pushable_connection_right\n\n9 = pushable and pushable_connection_down and pushable_connection_left\n0 = pushable and pushable_connection_down and pushable_connection_right\n\n- = pushable and pushable_connection_left and pushable_connection_right\n\n\n+ = pushable and pushable_connection_up and pushable_connection_down and pushable_connection_left \n! = pushable and pushable_connection_up and pushable_connection_down and pushable_connection_right\n\" = pushable and pushable_connection_up and pushable_connection_left and pushable_connection_right\n£ = pushable and pushable_connection_down and pushable_connection_left and pushable_connection_right\n\n$ = pushable and pushable_connection_up and pushable_connection_down and pushable_connection_left and pushable_connection_right\n\n. = Background\nP = Player\n\nα = player and playerskin1\nβ = player and playerskin2\nγ = player and playerskin3\nδ = player and playerskin4\nε = player and playerskin5\nζ = player and playerskin7\nη = player and playerskin8\nθ = player and playerskin9\nι = player and playerskin10\nκ = player and playerskin11\nλ = player and playerskin12\nμ = player and playerskin13\nν = player and playerskin14\nξ = player and playerskin15\nο = player and playerskin16\nπ = player and playerskin17\nρ = player and playerskin18\nσ = player and playerskin19\nτ = player and playerskin20\n\nplayerskins = playerskin1 or playerskin2 or playerskin3 or playerskin4 or playerskin5 or playerskin7 or playerskin8 or playerskin9 or playerskin10 or playerskin11 or playerskin12 or playerskin13 or playerskin14 or playerskin15 or playerskin16 or playerskin17 or playerskin18 or playerskin19 or playerskin20\n\ndumbbellskins = dumbbellskin1 or dumbbellskin2 or dumbbellskin3 or dumbbellskin4\n\nchairskins = chairskin1 or chairskin2 or chairskin3 or chairskin4 or chairskin5 or chairskin6 or chairskin7 or chairskin8 or chairskin9 or chairskin10\n\ntableskins = tableskin1 or tableskin2 or tableskin3 or tableskin4 or tableskin5 or tableskin6 or tableskin7 or tableskin8 or tableskin9 or tableskin10 or tableskin11 or tableskin12\n\nrightskins = rightskin1 or rightskin2 or rightskin3 or rightskin4 or rightskin5 or rightskin6\n\ndogskins = dogskin1 or dogskin2 or dogskin3 or dogskin4 or dogskin5 or dogskin6 or dogskin7 or dogskin8 or dogskin9 or dogskin10 or dogskin11 or dogskin12 or dogskin13 or dogskin14 or dogskin15 or dogskin16 or dogskin17 or dogskin18 or dogskin19 or dogskin20 or dogskin21 or dogskin22 or dogskin23 or deaddogskin or dogclosedskin1 or dogclosedskin2 or dogclosedskin3 or dogclosedskin4\n\n\nskins = playerskins or dumbbellskins or chairskins or tableskins or rightskins or chocolateskin or dogskins\n\n\nυ = dumbbellskin1 and pushable and pushable_connection_down\nφ = dumbbellskin1 and pushable and pushable_connection_down\nχ = dumbbellskin2 and pushable and pushable_connection_up and pushable_connection_right and pushable_connection_down\nψ = dumbbellskin4 and pushable and pushable_connection_left and pushable_connection_right\nω = dumbbellskin4 and pushable and pushable_connection_left and pushable_connection_right\nА = dumbbellskin2 and pushable and pushable_connection_up and pushable_connection_left and pushable_connection_down\nБ = dumbbellskin3 and pushable and pushable_connection_up\nВ = dumbbellskin3 and pushable and pushable_connection_up\n\nГ = chairskin1 and pushable and pushable_connection_right\nД = chairskin2 and pushable and pushable_connection_left and pushable_connection_down\nЕ = chairskin3 and pushable and pushable_connection_up and pushable_connection_down\nЁ = chairskin4 and pushable and pushable_connection_up and pushable_connection_down and pushable_connection_right\nЖ = chairskin5 and pushable and pushable_connection_left and pushable_connection_right\nЗ = chairskin6 and pushable and pushable_connection_left and pushable_connection_down\nИ = chairskin7 and pushable and pushable_connection_up and pushable_connection_down\nЙ = chairskin9 and pushable and pushable_connection_up and pushable_connection_down\nК = chairskin8 and pushable and pushable_connection_up \nЛ = chairskin10 and pushable and pushable_connection_up \n\nЩ = rightskin1 and pushable and pushable_connection_down and pushable_connection_right\nЪ = rightskin2 and pushable and pushable_connection_left\nЫ = rightskin3 and pushable and pushable_connection_up and pushable_connection_down\nЬ = rightskin4 and pushable and pushable_connection_up and pushable_connection_down\nЭ = rightskin5 and pushable and pushable_connection_right and pushable_connection_down\nЮ = rightskin6 and pushable and pushable_connection_left and pushable_connection_down and pushable_connection_up\n(ТУФХЦЧ)\n\nМ = tableskin1 and pushable and pushable_connection_down and pushable_connection_right\nН = tableskin2 and pushable and pushable_connection_left and pushable_connection_down and pushable_connection_right\nО = tableskin3 and pushable and pushable_connection_down and pushable_connection_left\nП = tableskin4 and pushable and pushable_connection_down and pushable_connection_right and pushable_connection_up\nР = tableskin5 and pushable and pushable_connection_down and pushable_connection_right and pushable_connection_up and pushable_connection_left\nС = tableskin6 and pushable and pushable_connection_down and pushable_connection_left and pushable_connection_up\nТ = tableskin7 and pushable and pushable_connection_up and pushable_connection_right\nУ = tableskin8 and pushable and pushable_connection_up and pushable_connection_right and pushable_connection_left and pushable_connection_down\nФ = tableskin9 and pushable and pushable_connection_up and pushable_connection_left\nХ = tableskin10 and pushable and pushable_connection_down and pushable_connection_up\nЦ = tableskin11 and pushable and pushable_connection_down and pushable_connection_up\nЧ = tableskin12 and pushable and pushable_connection_up\nШ = tableskin8 and pushable and pushable_connection_up and pushable_connection_right and pushable_connection_left\n\nЯ = chocolateskin and DogBottom and chocolate\n\n\n丁 = DogHead and dogskin1\n上 = doghead and dogskin2\n下 = doghead and dogskin3\n不 = doghead and dogskin4\n且 = doghead and dogskin5\n世 = doghead and dogskin6\n丙 = doghead and dogskin7\n並 = doghead and dogskin8\n中 = DogNeck and dogskin1\n丸 = DogNeck and dogskin9\n\n主 = DogBottom and dogskin10\n乂 = DogBottom and dogskin1\n乃 = DogBottom and dogskin11\n之 = DogBottom and dogskin12\n乎 = DogBottom and dogskin13\n九 = DogBottom and dogskin14\n也 = DogBottom and dogskin15\n事 = DogBottom and dogskin16\n二 = DogBottom and dogskin17\n五 = DogBottom and dogskin18\n亡 = DogBottom and dogskin19\n交 = DogBottom and dogskin20\n亦 = DogBottom and dogskin21\n京 = DogBottom and dogskin22\n亭 = DogBottom and dogskin23\n\n(丁上下不且世丙並\n中丸\n主乂乃之乎九也事二五亡交亦京亭人)\n\n\n(\n仕仙令以仰任伊伏伐伯似位佐何作佳使來侈侍俊俗俠信修俯俶倫假傅傍催傳傷傾僚儀優兄充光克兒入內兩八公兵其具典再冠冥冬凋凌出分切刑列初別利刻則劍力功助劭勉勒動務勞勸勿化匡匪千升卑南即卿厥厭去及友叔取受叛口古可史右合吉吊同名君吹呂周命和咸哉唐唱問啟善嗣嘉嘗嘯器嚴囊四回因困國園圓圖土在地坐垂垢垣城執基堂堅場塞增墨墳壁士壹夏夕外夙多夜大天夫奄奉奏女好如妍妙妾始姑委姜姿威婦嫡子孔字存孝孟孤孰學宅宇守安宗官宙定宜宣宮宰宴家容宿寂密富寐寒寓寔察寡寥實寧審寫寵寶寸封射將尊尋對少尹尺居履屬岡岩岫岱岳嵇川州工左巧巨己巾市布帝師席帳帶帷常平年并幸幾床府庭庶康庸廉廊廟廣建弁弊引弗弟弦弱張形彩彼往徊律後得徘從御微德心必忘忠念思性恃恐恥恬恭息悅悚悲情惟惠惡想惶惻意愚愛感慈慎慕慮慶懷懸懼戎成我戚戶房所扇手才扶承投抗抽招拜拱持指振捕接推搖摩操據攝收攸改政故效敕敢散敦敬文斡斬斯新方於施既日旦昃昆明易星映是時晉晚晝晦景暉暑曜曠曦曰曲更書最會月有服朗朝木本李杜束杯東杳杷松枇林果枝染柰根桐桓條梧棠植楚業極楹榮槐樂樓機橫次欣欲歌歡止正此步武歲歷歸殆殊殷殿毀母每比毛民氣水永求池沉沙沛河治法泰洛洞洪流浮浴海涇涼淑淡深淵清渠渭游湯溪溫滅滿漆漠漢潔潛澄濟火為烝烹焉無煌煒照煩熟熱營燭爵父牆牒牧物特犢猶猷獨獲獸玄率玉王玩珍珠理琴瑟璇璣璧環甘甚生用田甲男畏畝畫異當疏疑疲登發白百的皆皇皋盈益盛盜盟盡盤目直相省真眠眺睦瞻矜矢知矩短矯石碑碣磨磻祀祗祜神祭祿禍福禪禮禹禽秉秋秦移稅稱稷稼稽稿積穡空立竟章竭端競竹笑笙筆等筍答策筵箋箱箴節篤簡籍精糟糠糧約紈納紙紛素紡索紫累終組結絜給絲絳綏經維綺綿緣縣縻績續纓罔罪羅羊羌美羔群義羽習翔翠翦翳老者而耳耽聆聖聚聞聲職聽肆肥育背能腸膳臣臨自致與興舉舊舍良色芥若英茂草荒荷莊莫莽菜華萬落葉蒙蓋薄薪藍藏藝蘭處虛虞號虢虧蚤行衡衣表被裳製西要覆見規親觀解觴言訓設詠詩詳誅誌誚語誠誡說誰調談論諸謂謙謝謹譏譽讀讓谷豈象豫貌貞貢貴貽資賊賓賞賢賤賴贊赤起超趙足跡路踐躍身躬車軍軻載輕輦輶轂轉辨辭辰辱農近退逍逐途通造連逸逼運過遐道達遙遠遣適遵邇邈邑邙郡都酒釋重野量金釣鈞銀銘鐘鑒長門閏閒闕阜阮阿陋陛陟陪陰陳陶陽階隨隱隸雁雅集雞離難雨雲霄霜露霸靈青靜非靡面鞠韓音頓頗領願顙顛顧顰飄飛食飫飯飽養餐餘饑首馨馳駒駕駭騰騾驅驚驢驤骸體高鬱魄魏魚鱗鳥鳳鳴鶤麗黃黍黎默黜鼓龍\n)\n=======\nSOUNDS\n=======\n\npushable move 72882707\ndogblock move 25942907\nstartgame 38015704\nendlevel 9541904\n\n\n================\nCOLLISIONLAYERS\n================\n\npushable_connection_up\npushable_connection_down\npushable_connection_left\npushable_connection_right\nchocolate\ndogstretch\ncantcontract\ncancontracttoken\n\nPlayer, DogHead, DogNeck,DogBottom\n\npushable\n\nBackground\nboundary\n\nDogTongue\n(skins layer)\n\n\nskins\n\n\n======\nRULES\n======\n\n[player]->again\n\n\n(replace chocolate with pushable if moving horizontally)\n[ horizontal player ] [ chocolate chocolateskin DogBottom ] -> [ horizontal player ] [ chocolate chocolateskin pushable ]\n\n(replace chocolate with pushable if no dogbody below)\n\ndown [ chocolate chocolateskin DogBottom | no dogskin12 no dogskin13 no dogskin14 ] -> [ chocolate chocolateskin pushable | ]\n\n(DOG HEAD CONTRACT)\n\n(only contracts when player's not moving, and they're not in touch shouldn't be necessary but just in case)\n[ > player ] [dogblock ] -> [ > player ] [ dogblock cantcontract ]\ndown [ DogHead | DogBottom ] [ dogblock ] -> [ DogHead | DogBottom ] [dogblock cantcontract]\ndown [DogHead | pushable no chocolate ] -> [ doghead cantcontract | pushable ]\n[ DogHead cantcontract ] [ DogHead no cantcontract ] -> [DogHead cantcontract ] [DogHead cantcontract ]\n\nup [ DogBottom | pushable no chocolate ] -> [ DogBottom cantcontract | pushable ]\n\n\n[ DogBottom cantcontract ] [ DogBottom no cantcontract ] -> [DogBottom cantcontract ] [DogBottom cantcontract ]\n[ DogHead no cantcontract ] [ DogHead cantcontract ] -> [ DogHead cantcontract ] [ DogHead cantcontract ]\n\n(parity problem when head + body try to clamp shut when thyey're 1 distance away from eachother - give the head right of way)\ndown [ doghead no cantcontract | no dogblock | DogBottom no cantcontract ] -> [ doghead | | DogBottom cantcontract ] \n\n(and you neeed to repropagate)\n[ DogBottom cantcontract ] [ DogBottom no cantcontract ] -> [DogBottom cantcontract ] [DogBottom cantcontract ]\n[ DogHead no cantcontract ] [ DogHead cantcontract ] -> [ DogHead cantcontract ] [ DogHead cantcontract ]\n\n\n[DogHead no cantcontract ] -> [down DogHead ]\n[DogBottom no cantcontract ] -> [up DogBottom ]\n\ndown [ down doghead | DogNeck ] -> [ down doghead | no dogskins ]\nup [ up DogBottom | DogNeck ] -> [ up DogBottom | no dogskins ]\n\nlate [ cantcontract ] -> [ ]\n\n(SETUP FOR CONNECTIONS)\n( right [ pushable | pushable ] -> [ pushable pushable_connection_right | pushable pushable_connection_left ] )\n( down [ pushable | pushable ] -> [ pushable pushable_connection_down | pushable pushable_connection_up ] )\n\n\n(propagate movements)\n\n(propagate movements first ignoring dog)\n\n[ > pushing_piece_nodog | pushable_piece_nodog ] -> [ > pushing_piece_nodog | > pushable_piece_nodog ]\n+ up [ moving pushable pushable_connection_up | pushable pushable_connection_down ] -> [ moving pushable moving pushable_connection_up | moving pushable moving pushable_connection_down ]\n+ down [ moving pushable pushable_connection_down | pushable pushable_connection_up ] -> [ moving pushable moving pushable_connection_down | moving pushable moving pushable_connection_up ]\n+ left [ moving pushable pushable_connection_left | pushable pushable_connection_right ] -> [ moving pushable moving pushable_connection_left | moving pushable moving pushable_connection_right ]\n+ right [ moving pushable pushable_connection_right | pushable pushable_connection_left ] -> [ moving pushable moving pushable_connection_right | moving pushable moving pushable_connection_left ]\n\nvertical [> pushing_piece_nodog | DogBottom ] [ > pushing_piece_nodog | DogHead ] -> [> pushing_piece_nodog | > DogBottom ] [ > pushing_piece_nodog | > DogHead ]\n[moving DogHead ] [stationary DogHead ] -> [moving DogHead ] [moving DogHead]\n[moving DogBottom ] [stationary DogBottom ] -> [moving DogBottom ] [moving DogBottom]\n( allow to push chocolate into mouth)\n\n( right [ DogNeck | no obstacle | chocolateskin chocolate DogBottom | < pushing_piece ] -> [ DogNeck | chocolateskin chocolate DogBottom | | < pushable ] )\n\n(DOG NECK STRETCH)\n\n(either top is held stationary and bottom is moved down)\n(stationary pushable vs stationary obstacle because level boundary geometry can't access inside of mouth/small of back)\ndown [ stationary DogHead | stationary pushable no chocolate ] [ > pushing_piece_nodog | DogBottom ] -> [ dogstretch DogHead | pushable] [ > pushing_piece_nodog | > DogBottom ]\n\n\n(or bottom is held stationary and top is movedup)\ndown [ stationary pushable no chocolate | stationary DogBottom ] [ DogHead | < pushing_piece_nodog ] -> [ stationary pushable | dogstretch DogBottom ] [ < DogHead | < pushing_piece_nodog ]\n\n\n[ DogHead dogstretch | DogHead no dogstretch ] -> [ DogHead dogstretch | DogHead dogstretch ]\n[ DogBottom dogstretch | DogBottom no dogstretch ] -> [ DogBottom dogstretch | DogBottom dogstretch ]\n\n(DOG NECK SQEEZE)\n\n\n\n(either top is held stationary and bottom is moved up)\ndown [ stationary obstacle | stationary DogHead ] [ DogBottom | < pushing_piece_nodog] -> [ obstacle | DogHead cancontracttoken] [ < DogBottom | < pushing_piece_nodog ]\n\n\n(or bottom is held stationary and top is moved down)\ndown [ stationary DogBottom | stationary obstacle ] [ > pushing_piece_nodog | DogHead] -> [ DogBottom cancontracttoken | obstacle ] [ > pushing_piece_nodog | DogHead ]\n\nrandom right [cancontracttoken] [DogNeck | DogNeck ] -> [] [ no skins|no skins]\n[cancontracttoken]->[]\n\n(DOG NECK COMPRESS)\n\n[ > pushing_piece | pushable_piece no dogstretch ] -> [ > pushing_piece | > pushable_piece ]\n+ up [ moving pushable pushable_connection_up | pushable pushable_connection_down ] -> [ moving pushable moving pushable_connection_up | moving pushable moving pushable_connection_down ]\n+ down [ moving pushable pushable_connection_down | pushable pushable_connection_up ] -> [ moving pushable moving pushable_connection_down | moving pushable moving pushable_connection_up ]\n+ left [ moving pushable pushable_connection_left | pushable pushable_connection_right ] -> [ moving pushable moving pushable_connection_left | moving pushable moving pushable_connection_right ]\n+ right [ moving pushable pushable_connection_right | pushable pushable_connection_left ] -> [ moving pushable moving pushable_connection_right | moving pushable moving pushable_connection_left ]\n+ [ moving dogblock no dogstretch | stationary dogblock no dogstretch ] -> [ moving dogblock | moving dogblock ]\n\n[ > pushing_piece | stationary obstacle ] -> cancel\n\nup [ moving dogbottom | DogTongue ] -> [ moving DogBottom | moving DogTongue ]\nright [ pushable chocolate chocolateskin | moving DogTongue ] -> [moving pushable moving chocolate moving chocolateskin | moving DogTongue ]\n\nright [ stationary pushable | < pushable < chocolate < chocolateskin ] -> [ pushable | pushable chocolate chocolateskin ]\n\n[ moving DogBottom chocolate chocolateskin ] -> [ moving DogBottom moving chocolate moving chocolateskin]\n[ moving pushable chocolate chocolateskin ] -> [ moving pushable moving chocolate moving chocolateskin]\n\n\n[ moving pushable_piece skins ] -> [ moving pushable_piece moving skins ]\n[ moving Player playerskins ] -> [ moving Player moving playerskins ]\n\n(LATE)\n\nlate down [ dogskin4 | no DogNeck no obstacle ] [ dogskin5 | no DogNeck no obstacle ] -> [ dogskin4 | DogNeck ] [dogskin5 | DogNeck ]\n\n\nlate vertical [ DogNeck | no DogHead no DogBottom ] -> [ DogNeck | DogNeck ]\nlate right [ dogneck no dogskins | dogneck no dogskins ] -> [ 中 | 丸 ]\n(replace chocolate pushable with dogbottom)\n\nlate [chocolate chocolateskin pushable] -> [chocolate chocolateskin DogBottom]\n\n\n(move to start for visualisation purposes)\nlate [ dogstretch ] -> [ ]\n\n\n==============\nWINCONDITIONS\n==============\nno DogNeck\nno deaddogskin\n\n=======\nLEVELS\n=======\n\nmessage NO DON'T YOU DARE SWALLOW THAT\n\n\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........υ..υ.υ..υ.......................................w\nw........χψψа.χψψа.......................................w\nw........б..б.б..б.......................................w\nw..................................гд..............щъ....w\nw...................................е....мнннно....ы.....w\nw........................αβ.........е....пррррс....ь.....w\nw.......................γγδ.........ёжз..пррррс..эжю.....w\nw........................εζ.........и.й..пррррс..и.й.....w\nw........................ηη.........к.л..пррррс..к.л.....w\nw.............丁上下........θη..............пррррс..........w\nw.............不且世丙並......θη..............пррррс..........w\nw.............中丸.яd.....ικλ..............пррррс..........w\nw.........主乂乂乂乂乃之乎九......μν........гд....пррррс....щъ....w\nw.........也事二五乂亡.........ξο.........е....пррррс....ы.....w\nw.........交...亦..........ξπ.........е....пррррс....ь.....w\nw.........京...亭..........ξπ.........ёжз..тушшуф..эжю.....w\nw........................ξπ.........и.й...х..х...и.й.....w\nw.......................ρστ.........к.л...ц..ц...к.л.....w\nw.........................................ц..ц...........w\nw.........................................ч..ч...........w\nw........................................................w\nw........................................................w\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n\nmessage YOU ARE SUCH A SHITEHAWK OF A DOG\n\n(\n\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nw..........................гд............................w\nw...........................е............................w\nw...........................е............................w\nw...........................ёжз..........................w\nw...........................и.й..........................w\nw...........................к.л..........................w\nw.............................щъ.........................w\nw.............................ы..........................w\nw.............................ь..........................w\nw...........................эжю..........................w\nw....υ..υ...................и.й..........................w\nw....χψψа...................к.л..........................w\nw....б..б................................................w\nw........................................................w\nw..............αβ........................................w\nw.............γγδ........................................w\nw..............εζ........................................w\nw..............ηη........................................w\nw..............θη........................мнннно..........w\nw..............θη........................пррррс..........w\nw.............ικλ........................пррррс..........w\nw..............μν........................пррррс..........w\nw..............ξο........................пррррс..........w\nw..............ξπ........................пррррс..........w\nw..............ξπ........................пррррс..........w\nw..............ξπ........................пррррс..........w\nw............яρστ..................гд....пррррс....щъ....w\nw........丁上下........................е....пррррс....ы.....w\nw........不且世丙並......................е....пррррс....ь.....w\nw........中丸υ..υ.....................ёжз..тушшуф..эжю.....w\nw........中丸χψψа.....................и.й...х..х...и.й.....w\nw........中丸б.dб.....................к.л...ц..ц...к.л.....w\nw....主乂乂乂乂乃之乎九............................ц..ц...........w\nw....也事二五乂亡...............................ч..ч...........w\nw....交...亦...............................................w\nw....京...亭...............................................w\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n\n\n\n\n\n(move left and dog has bad time)\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nw..........................гд............................w\nw...........................е............................w\nw...........................е............................w\nw...........................ёжз..........................w\nw...........................и.й..........................w\nw...........................к.л..........................w\nw.............................щъ.........................w\nw.............................ы..........................w\nw.............................ь..........................w\nw...........................эжю..........................w\nw....υ..υ...................и.й..........................w\nw....χψψа...................к.л..........................w\nw....б..б................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw............αβ..........................................w\nw...........γγδ..........................................w\nw............εζ..........................мнннно..........w\nw............ηη..........................пррррс..........w\nw............θη..........................пррррс..........w\nw............θη..........................пррррс..........w\nw...........ικλ..........................пррррс..........w\nw............μν..........................пррррс..........w\nw............ξο..........................пррррс..........w\nw............ξπ..........................пррррс..........w\nw...........яξπ....................гд....пррррс....щъ....w\nw......丁上下...ξπ.....................е....пррррс....ы.....w\nw......不且世丙並ρστ.....................е....пррррс....ь.....w\nw......中丸..υ..υ.....................ёжз..тушшуф..эжю.....w\nw......中丸..χψψа.....................и.й...х..х...и.й.....w\nw......中丸..б..б.....................к.л...ц..ц...к.л.....w\nw..主乂乂乂乂乃之乎九..............................ц..ц...........w\nw..也事二五乂亡.................................ч..ч...........w\nw..交...亦.................................................w\nw..京...亭.................................................w\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n\n\n\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nw......丁上下.................гд............................w\nw......不且世丙並................е............................w\nw......中丸υ.яυ...............е............................w\nw......中丸χψψа..αβ...........ёжз..........................w\nw......中丸б..б.γγδ...........и.й..........................w\nw......中丸......εζ...........к.л..........................w\nw......中丸......ηη........................................w\nw..υ..υ中丸......θη........................................w\nw..χψψа中丸....щъθη........................................w\nw..б..б中丸....ыικλ........................................w\nw..主乂乂乂乂乃之乎九.ь.μν........................................w\nw..也事二五乂亡..эжю.ξο........................................w\nw..交...亦...и.й.ξπ........................................w\nw..京...亭...к.л.ξπ........................................w\nw..............ξπ........................................w\nw.............ρστ........................................w\nw........................................................w\nw........................................................w\nw........................................мнннно..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw..................................гд....пррррс....щъ....w\nw...................................е....пррррс....ы.....w\nw...................................е....пррррс....ь.....w\nw...................................ёжз..тушшуф..эжю.....w\nw...................................и.й...х..х...и.й.....w\nw...................................к.л...ц..ц...к.л.....w\nw.........................................ц..ц...........w\nw.........................................ч..ч...........w\nw........................................................w\nw........................................................w\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n\n)\n", [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1], "background boundary: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,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background dumbbellskin1 pushable pushable_connection_down:2,background dumbbellskin2 pushable pushable_connection_down pushable_connection_right pushable_connection_up:3,background dumbbellskin3 pushable pushable_connection_up:4,background dogbottom dogskin10:5,background dogbottom dogskin15:6,background dogbottom dogskin20:7,background dogbottom dogskin22:8,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,background dumbbellskin4 pushable pushable_connection_left pushable_connection_right:9,1,background dogbottom dogskin1:10,background dogbottom dogskin16:11,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,1,10,background dogbottom dogskin17:12,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,background dumbbellskin2 pushable pushable_connection_down pushable_connection_left pushable_connection_up:13,4,10,background dogbottom dogskin18:14,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,background doghead dogskin1:15,background doghead dogskin4:16,background dogneck dogskin1:17,17,17,17,17,17,17,17,17,17,\n17,17,10,10,background dogbottom dogskin21:18,background dogbottom dogskin23:19,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,background doghead dogskin2:20,background doghead dogskin5:21,background dogneck dogskin9:22,22,22,22,22,22,22,22,22,22,22,22,background dogbottom dogskin11:23,background dogbottom dogskin19:24,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,background doghead dogskin3:25,background doghead dogskin6:26,1,1,1,1,1,1,1,1,1,1,1,1,background dogbottom dogskin12:27,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background doghead dogskin7:28,1,1,1,1,1,1,1,1,1,1,1,background chocolate chocolateskin dogbottom:29,\nbackground dogbottom dogskin13:30,1,1,1,1,1,1,1,1,0,0,1,1,1,1,background player playerskin3:31,1,1,1,1,background player playerskin10:32,1,1,1,1,background doghead dogskin8:33,background player playerskin18:34,1,1,1,1,1,1,1,1,1,1,background dogtongue:35,background dogbottom dogskin14:36,1,1,1,1,1,1,1,1,0,0,1,1,1,background player playerskin1:37,31,background player playerskin5:38,background player playerskin8:39,background player playerskin9:40,40,\nbackground player playerskin11:41,background player playerskin13:42,background player playerskin15:43,43,43,43,background player playerskin19:44,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,background player playerskin2:45,background player playerskin4:46,background player playerskin7:47,39,39,39,background player playerskin12:48,background player playerskin14:49,background player playerskin16:50,background player playerskin17:51,51,51,background player playerskin20:52,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,3,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,13,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,background chairskin1 pushable pushable_connection_right:53,1,1,1,1,1,1,1,1,53,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background chairskin2 pushable pushable_connection_down pushable_connection_left:54,background chairskin3 pushable pushable_connection_down pushable_connection_up:55,55,background chairskin4 pushable pushable_connection_down pushable_connection_right pushable_connection_up:56,background chairskin7 pushable pushable_connection_down pushable_connection_up:57,background chairskin8 pushable pushable_connection_up:58,\n1,1,1,54,55,55,56,57,58,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background chairskin5 pushable pushable_connection_left pushable_connection_right:59,1,1,1,1,1,1,1,1,59,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background chairskin6 pushable pushable_connection_down pushable_connection_left:60,background chairskin9 pushable pushable_connection_down pushable_connection_up:61,background chairskin10 pushable pushable_connection_up:62,1,1,1,1,1,1,60,61,62,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_right tableskin1:63,background pushable pushable_connection_down pushable_connection_right pushable_connection_up tableskin4:64,64,64,64,64,64,64,64,64,64,background pushable pushable_connection_right pushable_connection_up tableskin7:65,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_left pushable_connection_right tableskin2:66,background pushable pushable_connection_down pushable_connection_left pushable_connection_right pushable_connection_up tableskin5:67,67,67,67,67,67,67,67,\n67,67,background pushable pushable_connection_down pushable_connection_left pushable_connection_right pushable_connection_up tableskin8:68,background pushable pushable_connection_down pushable_connection_up tableskin10:69,background pushable pushable_connection_down pushable_connection_up tableskin11:70,70,background pushable pushable_connection_up tableskin12:71,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,66,67,67,67,67,67,67,67,67,67,67,background pushable pushable_connection_left pushable_connection_right pushable_connection_up tableskin8:72,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,66,67,67,67,67,67,67,67,67,67,67,72,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,66,67,67,67,67,67,67,67,67,67,67,\n68,69,70,70,71,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_left tableskin3:73,background pushable pushable_connection_down pushable_connection_left pushable_connection_up tableskin6:74,74,74,74,74,74,74,74,74,74,background pushable pushable_connection_left pushable_connection_up tableskin9:75,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_right rightskin5:76,57,58,1,1,1,1,1,1,76,57,58,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,59,1,1,1,1,1,1,1,1,59,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_right rightskin1:77,background pushable pushable_connection_down pushable_connection_up rightskin3:78,background pushable pushable_connection_down pushable_connection_up rightskin4:79,background pushable pushable_connection_down pushable_connection_left pushable_connection_up rightskin6:80,61,62,1,1,1,77,78,79,80,61,62,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_left rightskin2:81,1,1,1,1,1,1,1,1,81,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 1, "1627893792808.8965"] + "Oh No My Dog Is About To Swallow A Piece Of Chocolate", + ["title Oh No My Dog Is About To Swallow A Piece Of Chocolate\nauthor increpare\nhomepage www.increpare.com\n\nkey_repeat_interval 0.1\nagain_interval 0.1\n\nbackground_color #1e432e\ntext_color #e06f8b\n\nnoaction\n\n( debug )\n( verbose_logging )\n\n\n\n========\nOBJECTS\n========\n\nBackground\n#345e46\n\n\nPlayer\n#31a2f2\n\ndogskin1\n#a46422\n00000\n00000\n00000\n00000\n00000\n\ndogskin2\n#a46422 #945718\n00000\n00000\n00010\n00010\n00010\n\ndogskin3\n#a46422 #392a16 #e3e2a8\n00000\n01121\n01112\n01111\n01111\n\ndogskin4\n#a46422\n.....\n....0\n...00\n..000\n.0000\n\ndogskin5\n#945718 #a46422 #e06f8b\n00001\n11111\n11111\n11111\n11112\n\ndogskin6\n#a46422 #e06f8b #e3e2a8\n00000\n00000\n00000\n11111\n.2.2.\n\ndogskin7\n#a46422 #e06f8b #e3e2a8\n00000\n00000\n00000\n11111\n2.2.2\n\ndogskin8\n#a46422 #392a16 #e06f8b #e3e2a8\n00011\n00011\n00000\n22222\n.3.3.\n\ndogskin9\n#a46422 #e06f8b\n00001\n00001\n00001\n00001\n00001\n\ndogskin10\n#a46422 #945718\n..000\n..000\n00000\n00000\n10000\n\ndogskin11\n#a46422 #e06f8b\n00001\n00000\n00000\n00000\n00000\n\ndogskin12\n#a42544 #e3e2a8 #e06f8b #a46422\n01010\n22222\n33333\n33333\n33333\n\ndogskin13\n#e3e2a8 #a42544 #e06f8b #a46422\n01010\n22222\n33333\n33333\n33333\n\ndogskin14\n#a42544 #e3e2a8 #e06f8b #a46422\n01.1.\n22222\n33333\n33333\n3333.\n\ndogskin15\n#945718 #a46422\n01111\n00111\n00111\n00011\n10011\n\ndogskin16\n#a46422 #945718\n00000\n00000\n00000\n00111\n01111\n\ndogskin17\n#a46422 #945718\n00000\n00000\n00000\n11111\n11111\n\ndogskin18\n#a46422 #945718\n00000\n00000\n00000\n11110\n11111\n\ndogskin19\n#a46422\n00000\n00000\n00000\n00000\n0000.\n\ndogskin20\n#a46422\n00000\n00000\n0000.\n0000.\n0000.\n\ndogskin21\n#a46422\n0000.\n0000.\n0000.\n0000.\n0000.\n\ndogskin22\n#a46422\n0000.\n0000.\n0000.\n00000\n00000\n\ndogskin23\n#a46422\n0000.\n0000.\n0000.\n.0000\n..000\n\ndeaddogskin\n#392a16 #a46422\n01110\n10101\n11011\n10101\n01110\n\ndogclosedskin1\n#a46422 #945718\n00000\n00000\n00000\n00000\n11111\n\ndogclosedskin2\n#a46422 #392a16 #945718\n00011\n00011\n00000\n00000\n22222\n\ndogclosedskin3\n#e06f8b #a46422\n00000\n11111\n11111\n11111\n11111\n\ndogclosedskin4\n#e06f8b #a46422\n00000\n11111\n11111\n11111\n1111.\n\n\nplayerskin1\n#4d0400 #973530 #d3abab #130800\n00000\n10101\n11110\n22211\n23211\n\nplayerskin2\n#4d0400 #973530\n0000.\n00000\n10000\n01000\n10000\n\nplayerskin3 (x2)\n#973530\n00000\n00000\n00000\n00000\n00000\n\nplayerskin4\n#973530 #4d0400\n00111\n01011\n00101\n00011\n0000.\n\nplayerskin5\n#800700 #973530 #db5fa0 #b13978\n.0000\n.1111\n22221\n33331\n.1111\n\nplayerskin7\n#973530\n0000.\n0000.\n0000.\n0000.\n0000.\n\nplayerskin8 (x2)\n#4a9022\n00000\n00000\n00000\n00000\n00000\n\nplayerskin9\n#4a9022 #367413\n00001\n00001\n00001\n00001\n00001\n\n(then 8,9,8)\n\nplayerskin10\n#973530 #800700\n00000\n11000\n00000\n11000\n00000\n\nplayerskin11\n#367413 #4a9022\n00001\n11111\n11111\n11111\n11111\n\nplayerskin12\n#4a9022 #367413\n00001\n00010\n00100\n00100\n01000\n\nplayerskin13\n#367413 #4a9022\n00000\n11111\n11111\n11111\n11111\n\nplayerskin14\n#367413 #4a9022\n01111\n11111\n11111\n11111\n11111\n\nplayerskin15 (x3)\n#31a2f2\n00000\n00000\n00000\n00000\n00000\n\nplayerskin16\n#31a2f2 #167ec8\n00001\n00011\n00111\n01111\n11111\n\n(15)\n\nplayerskin17\n#167ec8\n00000\n00000\n00000\n00000\n00000\n\n(15,17)\n\nplayerskin18\n#a44951 #930e19 #d3a1a5\n01010\n01010\n00000\n11111\n22222\n\nplayerskin19\n#a44951 #930e19 #d3a1a5\n00000\n00000\n00000\n11111\n22222\n\nplayerskin20\n#90383f #800711 #ac767b\n00000\n00000\n11111\n22222\n.....\n\nchocolateskin\n#5d2816 #8c5340 #1f0c06\n01111\n20001\n20001\n20001\n22220\n\n\nDogHead \npink\n\nDogNeck \nred\n\nDogBottom \npurple\n\ndumbbellskin1\n#2a425b #1b2632 #26384b\n.0.0.\n12020\n12020\n12020\n12020\n\ndumbbellskin2\n#1b2632 #26384b\n01010\n01010\n01010\n01010\n01010\n\ndumbbellskin3\n#1b2632 #26384b\n01010\n01010\n01010\n00000\n.0.0.\n\n\ndumbbellskin4\n#8b8b8b #c8c8c8 #777777\n00000\n11111\n00000\n22222\n22222\n\nchairskin1\n#8b4b09 #bc7a36 #a46422\n01111\n02222\n02222\n02222\n00000\n\nchairskin2\n#bc7a36 #a46422 #8b4b09\n0000.\n11110\n11101\n11101\n21101\n\nchairskin3 (x2)\n#8b4b09 #a46422 #bc7a36\n01121\n01121\n01121\n01121\n01121\n\nchairskin4\n#8b4b09 #a46422 #bc7a36\n01121\n01111\n01111\n01111\n00000\n\nchairskin5\n#bc7a36 #a46422 #8b4b09\n00000\n11111\n11111\n11111\n22222\n\nchairskin6\n#bc7a36 #a46422 #8b4b09\n00000\n11110\n11110\n11110\n22221\n\nchairskin7\n#8b4b09 #a46422 #bc7a36\n.0110\n.0111\n.0112\n.0112\n.0112\n\nchairskin8\n#8b4b09 #a46422 #bc7a36\n.0112\n.0112\n.0112\n.0112\n.0000\n\nchairskin9\n#8b4b09 #a46422 #bc7a36\n0110.\n0111.\n0112.\n0112.\n0112.\n\nchairskin10\n#8b4b09 #a46422 #bc7a36\n0112.\n0112.\n0112.\n0112.\n0000.\n\ntableskin1\n#bc7a36 #8b4b09 #a46422\n.0000\n12222\n12222\n12222\n12222\n\ntableskin2\n#bc7a36 #a46422\n00000\n11111\n11111\n11111\n11111\n\ntableskin3\n#bc7a36 #a46422\n0000.\n11100\n11110\n11110\n11110\n\ntableskin4\n#8b4b09 #a46422\n01111\n01111\n01111\n01111\n01111\n\ntableskin5\n#a46422\n00000\n00000\n00000\n00000\n00000\n\ntableskin6\n#a46422 #bc7a36\n00001\n00001\n00001\n00001\n00001\n\ntableskin7\n#8b4b09 #a46422\n01111\n01111\n01111\n00111\n.0000\n\ntableskin8\n#a46422 #8b4b09\n00000\n00000\n00000\n00000\n11111\n\ntableskin9\n#a46422 #bc7a36 #8b4b09\n00001\n00001\n00001\n00001\n2222.\n\ntableskin10\n#8b4b09 #a46422 #bc7a36\n00000\n00001\n00111\n00121\n00121\n\ntableskin11\n#8b4b09 #a46422 #bc7a36\n00121\n00121\n00121\n00121\n00121\n\ntableskin12\n#8b4b09 #a46422 #bc7a36\n00121\n00121\n00121\n00121\n.012.\n\nrightskin1\n#bc7a36 #a46422 #8b4b09\n.0000\n11111\n12111\n12111\n12111\n\nrightskin2\n#bc7a36 #a46422 #8b4b09\n00000\n11110\n11110\n11110\n22211\n\n\nrightskin3\n#a46422 #8b4b09 #bc7a36\n01001\n01000\n01002\n01002\n01002\n\n\nrightskin4\n#a46422 #8b4b09 #bc7a36\n01002\n01002\n01002\n01002\n01002\n\n\n\nrightskin5\n#a46422 #bc7a36 #8b4b09\n01111\n20000\n20000\n20000\n22222\n\n\n\nrightskin6\n#a46422 #8b4b09 #bc7a36\n01002\n00002\n00002\n00002\n11111\n\n\n\n\n\n\n\nDogTongue \n#a42544\n.....\n.....\n.....\n.....\n0....\n\n\n\nboundary\n#846610\n\n\n\npushable \n#24c1ca #0d9ea6\n00000\n01110\n01110\n01110\n00000\n\npushable_connection_up\nyellow\n..0..\n.....\n.....\n.....\n.....\n\npushable_connection_down\nyellow\n.....\n.....\n.....\n.....\n..0..\n\npushable_connection_left\nyellow\n.....\n.....\n0....\n.....\n.....\n\npushable_connection_right\nyellow\n.....\n.....\n....0\n.....\n.....\n\nchocolate\npink\n0....\n.....\n.....\n.....\n.....\n\ndogstretch \n#0000ff\n.....\n.0...\n.....\n.....\n.....\n\ncantcontract\n#ff0000\n.....\n.....\n.....\n...0.\n.....\n\ncancontracttoken\ntransparent\n\n\n=======\nLEGEND\n=======\n\n\nobstacle = pushable or doghead or dogneck or dogbottom or boundary or player\npushable_connection = pushable_connection_up or pushable_connection_down or pushable_connection_left or pushable_connection_right\n\ndogblock = DogHead or DogNeck or DogBottom\ndogblock_noneck = DogHead or DogNeck or DogBottom\n\npushable_piece_nodog = pushable \npushing_piece_nodog = pushable or Player\n\npushable_piece = pushable or dogblock\npushing_piece = pushable or dogblock or Player\n\n\nq = DogHead\na = DogNeck\nz = DogBottom \nd = DogTongue\nw = boundary\n\n( 1 = pushable and chocolate )\n\n2 = pushable and pushable_connection_up\n3 = pushable and pushable_connection_down\n4 = pushable and pushable_connection_left\n5 = pushable and pushable_connection_right\n\n6 = pushable and pushable_connection_up and pushable_connection_down\n7 = pushable and pushable_connection_up and pushable_connection_left\n8 = pushable and pushable_connection_up and pushable_connection_right\n\n9 = pushable and pushable_connection_down and pushable_connection_left\n0 = pushable and pushable_connection_down and pushable_connection_right\n\n- = pushable and pushable_connection_left and pushable_connection_right\n\n\n+ = pushable and pushable_connection_up and pushable_connection_down and pushable_connection_left \n! = pushable and pushable_connection_up and pushable_connection_down and pushable_connection_right\n\" = pushable and pushable_connection_up and pushable_connection_left and pushable_connection_right\n£ = pushable and pushable_connection_down and pushable_connection_left and pushable_connection_right\n\n$ = pushable and pushable_connection_up and pushable_connection_down and pushable_connection_left and pushable_connection_right\n\n. = Background\nP = Player\n\nα = player and playerskin1\nβ = player and playerskin2\nγ = player and playerskin3\nδ = player and playerskin4\nε = player and playerskin5\nζ = player and playerskin7\nη = player and playerskin8\nθ = player and playerskin9\nι = player and playerskin10\nκ = player and playerskin11\nλ = player and playerskin12\nμ = player and playerskin13\nν = player and playerskin14\nξ = player and playerskin15\nο = player and playerskin16\nπ = player and playerskin17\nρ = player and playerskin18\nσ = player and playerskin19\nτ = player and playerskin20\n\nplayerskins = playerskin1 or playerskin2 or playerskin3 or playerskin4 or playerskin5 or playerskin7 or playerskin8 or playerskin9 or playerskin10 or playerskin11 or playerskin12 or playerskin13 or playerskin14 or playerskin15 or playerskin16 or playerskin17 or playerskin18 or playerskin19 or playerskin20\n\ndumbbellskins = dumbbellskin1 or dumbbellskin2 or dumbbellskin3 or dumbbellskin4\n\nchairskins = chairskin1 or chairskin2 or chairskin3 or chairskin4 or chairskin5 or chairskin6 or chairskin7 or chairskin8 or chairskin9 or chairskin10\n\ntableskins = tableskin1 or tableskin2 or tableskin3 or tableskin4 or tableskin5 or tableskin6 or tableskin7 or tableskin8 or tableskin9 or tableskin10 or tableskin11 or tableskin12\n\nrightskins = rightskin1 or rightskin2 or rightskin3 or rightskin4 or rightskin5 or rightskin6\n\ndogskins = dogskin1 or dogskin2 or dogskin3 or dogskin4 or dogskin5 or dogskin6 or dogskin7 or dogskin8 or dogskin9 or dogskin10 or dogskin11 or dogskin12 or dogskin13 or dogskin14 or dogskin15 or dogskin16 or dogskin17 or dogskin18 or dogskin19 or dogskin20 or dogskin21 or dogskin22 or dogskin23 or deaddogskin or dogclosedskin1 or dogclosedskin2 or dogclosedskin3 or dogclosedskin4\n\n\nskins = playerskins or dumbbellskins or chairskins or tableskins or rightskins or chocolateskin or dogskins\n\n\nυ = dumbbellskin1 and pushable and pushable_connection_down\nφ = dumbbellskin1 and pushable and pushable_connection_down\nχ = dumbbellskin2 and pushable and pushable_connection_up and pushable_connection_right and pushable_connection_down\nψ = dumbbellskin4 and pushable and pushable_connection_left and pushable_connection_right\nω = dumbbellskin4 and pushable and pushable_connection_left and pushable_connection_right\nА = dumbbellskin2 and pushable and pushable_connection_up and pushable_connection_left and pushable_connection_down\nБ = dumbbellskin3 and pushable and pushable_connection_up\nВ = dumbbellskin3 and pushable and pushable_connection_up\n\nГ = chairskin1 and pushable and pushable_connection_right\nД = chairskin2 and pushable and pushable_connection_left and pushable_connection_down\nЕ = chairskin3 and pushable and pushable_connection_up and pushable_connection_down\nЁ = chairskin4 and pushable and pushable_connection_up and pushable_connection_down and pushable_connection_right\nЖ = chairskin5 and pushable and pushable_connection_left and pushable_connection_right\nЗ = chairskin6 and pushable and pushable_connection_left and pushable_connection_down\nИ = chairskin7 and pushable and pushable_connection_up and pushable_connection_down\nЙ = chairskin9 and pushable and pushable_connection_up and pushable_connection_down\nК = chairskin8 and pushable and pushable_connection_up \nЛ = chairskin10 and pushable and pushable_connection_up \n\nЩ = rightskin1 and pushable and pushable_connection_down and pushable_connection_right\nЪ = rightskin2 and pushable and pushable_connection_left\nЫ = rightskin3 and pushable and pushable_connection_up and pushable_connection_down\nЬ = rightskin4 and pushable and pushable_connection_up and pushable_connection_down\nЭ = rightskin5 and pushable and pushable_connection_right and pushable_connection_down\nЮ = rightskin6 and pushable and pushable_connection_left and pushable_connection_down and pushable_connection_up\n(ТУФХЦЧ)\n\nМ = tableskin1 and pushable and pushable_connection_down and pushable_connection_right\nН = tableskin2 and pushable and pushable_connection_left and pushable_connection_down and pushable_connection_right\nО = tableskin3 and pushable and pushable_connection_down and pushable_connection_left\nП = tableskin4 and pushable and pushable_connection_down and pushable_connection_right and pushable_connection_up\nР = tableskin5 and pushable and pushable_connection_down and pushable_connection_right and pushable_connection_up and pushable_connection_left\nС = tableskin6 and pushable and pushable_connection_down and pushable_connection_left and pushable_connection_up\nТ = tableskin7 and pushable and pushable_connection_up and pushable_connection_right\nУ = tableskin8 and pushable and pushable_connection_up and pushable_connection_right and pushable_connection_left and pushable_connection_down\nФ = tableskin9 and pushable and pushable_connection_up and pushable_connection_left\nХ = tableskin10 and pushable and pushable_connection_down and pushable_connection_up\nЦ = tableskin11 and pushable and pushable_connection_down and pushable_connection_up\nЧ = tableskin12 and pushable and pushable_connection_up\nШ = tableskin8 and pushable and pushable_connection_up and pushable_connection_right and pushable_connection_left\n\nЯ = chocolateskin and DogBottom and chocolate\n\n\n丁 = DogHead and dogskin1\n上 = doghead and dogskin2\n下 = doghead and dogskin3\n不 = doghead and dogskin4\n且 = doghead and dogskin5\n世 = doghead and dogskin6\n丙 = doghead and dogskin7\n並 = doghead and dogskin8\n中 = DogNeck and dogskin1\n丸 = DogNeck and dogskin9\n\n主 = DogBottom and dogskin10\n乂 = DogBottom and dogskin1\n乃 = DogBottom and dogskin11\n之 = DogBottom and dogskin12\n乎 = DogBottom and dogskin13\n九 = DogBottom and dogskin14\n也 = DogBottom and dogskin15\n事 = DogBottom and dogskin16\n二 = DogBottom and dogskin17\n五 = DogBottom and dogskin18\n亡 = DogBottom and dogskin19\n交 = DogBottom and dogskin20\n亦 = DogBottom and dogskin21\n京 = DogBottom and dogskin22\n亭 = DogBottom and dogskin23\n\n(丁上下不且世丙並\n中丸\n主乂乃之乎九也事二五亡交亦京亭人)\n\n\n(\n仕仙令以仰任伊伏伐伯似位佐何作佳使來侈侍俊俗俠信修俯俶倫假傅傍催傳傷傾僚儀優兄充光克兒入內兩八公兵其具典再冠冥冬凋凌出分切刑列初別利刻則劍力功助劭勉勒動務勞勸勿化匡匪千升卑南即卿厥厭去及友叔取受叛口古可史右合吉吊同名君吹呂周命和咸哉唐唱問啟善嗣嘉嘗嘯器嚴囊四回因困國園圓圖土在地坐垂垢垣城執基堂堅場塞增墨墳壁士壹夏夕外夙多夜大天夫奄奉奏女好如妍妙妾始姑委姜姿威婦嫡子孔字存孝孟孤孰學宅宇守安宗官宙定宜宣宮宰宴家容宿寂密富寐寒寓寔察寡寥實寧審寫寵寶寸封射將尊尋對少尹尺居履屬岡岩岫岱岳嵇川州工左巧巨己巾市布帝師席帳帶帷常平年并幸幾床府庭庶康庸廉廊廟廣建弁弊引弗弟弦弱張形彩彼往徊律後得徘從御微德心必忘忠念思性恃恐恥恬恭息悅悚悲情惟惠惡想惶惻意愚愛感慈慎慕慮慶懷懸懼戎成我戚戶房所扇手才扶承投抗抽招拜拱持指振捕接推搖摩操據攝收攸改政故效敕敢散敦敬文斡斬斯新方於施既日旦昃昆明易星映是時晉晚晝晦景暉暑曜曠曦曰曲更書最會月有服朗朝木本李杜束杯東杳杷松枇林果枝染柰根桐桓條梧棠植楚業極楹榮槐樂樓機橫次欣欲歌歡止正此步武歲歷歸殆殊殷殿毀母每比毛民氣水永求池沉沙沛河治法泰洛洞洪流浮浴海涇涼淑淡深淵清渠渭游湯溪溫滅滿漆漠漢潔潛澄濟火為烝烹焉無煌煒照煩熟熱營燭爵父牆牒牧物特犢猶猷獨獲獸玄率玉王玩珍珠理琴瑟璇璣璧環甘甚生用田甲男畏畝畫異當疏疑疲登發白百的皆皇皋盈益盛盜盟盡盤目直相省真眠眺睦瞻矜矢知矩短矯石碑碣磨磻祀祗祜神祭祿禍福禪禮禹禽秉秋秦移稅稱稷稼稽稿積穡空立竟章竭端競竹笑笙筆等筍答策筵箋箱箴節篤簡籍精糟糠糧約紈納紙紛素紡索紫累終組結絜給絲絳綏經維綺綿緣縣縻績續纓罔罪羅羊羌美羔群義羽習翔翠翦翳老者而耳耽聆聖聚聞聲職聽肆肥育背能腸膳臣臨自致與興舉舊舍良色芥若英茂草荒荷莊莫莽菜華萬落葉蒙蓋薄薪藍藏藝蘭處虛虞號虢虧蚤行衡衣表被裳製西要覆見規親觀解觴言訓設詠詩詳誅誌誚語誠誡說誰調談論諸謂謙謝謹譏譽讀讓谷豈象豫貌貞貢貴貽資賊賓賞賢賤賴贊赤起超趙足跡路踐躍身躬車軍軻載輕輦輶轂轉辨辭辰辱農近退逍逐途通造連逸逼運過遐道達遙遠遣適遵邇邈邑邙郡都酒釋重野量金釣鈞銀銘鐘鑒長門閏閒闕阜阮阿陋陛陟陪陰陳陶陽階隨隱隸雁雅集雞離難雨雲霄霜露霸靈青靜非靡面鞠韓音頓頗領願顙顛顧顰飄飛食飫飯飽養餐餘饑首馨馳駒駕駭騰騾驅驚驢驤骸體高鬱魄魏魚鱗鳥鳳鳴鶤麗黃黍黎默黜鼓龍\n)\n=======\nSOUNDS\n=======\n\npushable move 72882707\ndogblock move 25942907\nstartgame 38015704\nendlevel 9541904\n\n\n================\nCOLLISIONLAYERS\n================\n\npushable_connection_up\npushable_connection_down\npushable_connection_left\npushable_connection_right\nchocolate\ndogstretch\ncantcontract\ncancontracttoken\n\nPlayer, DogHead, DogNeck,DogBottom\n\npushable\n\nBackground\nboundary\n\nDogTongue\n(skins layer)\n\n\nskins\n\n\n======\nRULES\n======\n\n[player]->again\n\n\n(replace chocolate with pushable if moving horizontally)\n[ horizontal player ] [ chocolate chocolateskin DogBottom ] -> [ horizontal player ] [ chocolate chocolateskin pushable ]\n\n(replace chocolate with pushable if no dogbody below)\n\ndown [ chocolate chocolateskin DogBottom | no dogskin12 no dogskin13 no dogskin14 ] -> [ chocolate chocolateskin pushable | ]\n\n(DOG HEAD CONTRACT)\n\n(only contracts when player's not moving, and they're not in touch shouldn't be necessary but just in case)\n[ > player ] [dogblock ] -> [ > player ] [ dogblock cantcontract ]\ndown [ DogHead | DogBottom ] [ dogblock ] -> [ DogHead | DogBottom ] [dogblock cantcontract]\ndown [DogHead | pushable no chocolate ] -> [ doghead cantcontract | pushable ]\n[ DogHead cantcontract ] [ DogHead no cantcontract ] -> [DogHead cantcontract ] [DogHead cantcontract ]\n\nup [ DogBottom | pushable no chocolate ] -> [ DogBottom cantcontract | pushable ]\n\n\n[ DogBottom cantcontract ] [ DogBottom no cantcontract ] -> [DogBottom cantcontract ] [DogBottom cantcontract ]\n[ DogHead no cantcontract ] [ DogHead cantcontract ] -> [ DogHead cantcontract ] [ DogHead cantcontract ]\n\n(parity problem when head + body try to clamp shut when thyey're 1 distance away from eachother - give the head right of way)\ndown [ doghead no cantcontract | no dogblock | DogBottom no cantcontract ] -> [ doghead | | DogBottom cantcontract ] \n\n(and you neeed to repropagate)\n[ DogBottom cantcontract ] [ DogBottom no cantcontract ] -> [DogBottom cantcontract ] [DogBottom cantcontract ]\n[ DogHead no cantcontract ] [ DogHead cantcontract ] -> [ DogHead cantcontract ] [ DogHead cantcontract ]\n\n\n[DogHead no cantcontract ] -> [down DogHead ]\n[DogBottom no cantcontract ] -> [up DogBottom ]\n\ndown [ down doghead | DogNeck ] -> [ down doghead | no dogskins ]\nup [ up DogBottom | DogNeck ] -> [ up DogBottom | no dogskins ]\n\nlate [ cantcontract ] -> [ ]\n\n(SETUP FOR CONNECTIONS)\n( right [ pushable | pushable ] -> [ pushable pushable_connection_right | pushable pushable_connection_left ] )\n( down [ pushable | pushable ] -> [ pushable pushable_connection_down | pushable pushable_connection_up ] )\n\n\n(propagate movements)\n\n(propagate movements first ignoring dog)\n\n[ > pushing_piece_nodog | pushable_piece_nodog ] -> [ > pushing_piece_nodog | > pushable_piece_nodog ]\n+ up [ moving pushable pushable_connection_up | pushable pushable_connection_down ] -> [ moving pushable moving pushable_connection_up | moving pushable moving pushable_connection_down ]\n+ down [ moving pushable pushable_connection_down | pushable pushable_connection_up ] -> [ moving pushable moving pushable_connection_down | moving pushable moving pushable_connection_up ]\n+ left [ moving pushable pushable_connection_left | pushable pushable_connection_right ] -> [ moving pushable moving pushable_connection_left | moving pushable moving pushable_connection_right ]\n+ right [ moving pushable pushable_connection_right | pushable pushable_connection_left ] -> [ moving pushable moving pushable_connection_right | moving pushable moving pushable_connection_left ]\n\nvertical [> pushing_piece_nodog | DogBottom ] [ > pushing_piece_nodog | DogHead ] -> [> pushing_piece_nodog | > DogBottom ] [ > pushing_piece_nodog | > DogHead ]\n[moving DogHead ] [stationary DogHead ] -> [moving DogHead ] [moving DogHead]\n[moving DogBottom ] [stationary DogBottom ] -> [moving DogBottom ] [moving DogBottom]\n( allow to push chocolate into mouth)\n\n( right [ DogNeck | no obstacle | chocolateskin chocolate DogBottom | < pushing_piece ] -> [ DogNeck | chocolateskin chocolate DogBottom | | < pushable ] )\n\n(DOG NECK STRETCH)\n\n(either top is held stationary and bottom is moved down)\n(stationary pushable vs stationary obstacle because level boundary geometry can't access inside of mouth/small of back)\ndown [ stationary DogHead | stationary pushable no chocolate ] [ > pushing_piece_nodog | DogBottom ] -> [ dogstretch DogHead | pushable] [ > pushing_piece_nodog | > DogBottom ]\n\n\n(or bottom is held stationary and top is movedup)\ndown [ stationary pushable no chocolate | stationary DogBottom ] [ DogHead | < pushing_piece_nodog ] -> [ stationary pushable | dogstretch DogBottom ] [ < DogHead | < pushing_piece_nodog ]\n\n\n[ DogHead dogstretch | DogHead no dogstretch ] -> [ DogHead dogstretch | DogHead dogstretch ]\n[ DogBottom dogstretch | DogBottom no dogstretch ] -> [ DogBottom dogstretch | DogBottom dogstretch ]\n\n(DOG NECK SQEEZE)\n\n\n\n(either top is held stationary and bottom is moved up)\ndown [ stationary obstacle | stationary DogHead ] [ DogBottom | < pushing_piece_nodog] -> [ obstacle | DogHead cancontracttoken] [ < DogBottom | < pushing_piece_nodog ]\n\n\n(or bottom is held stationary and top is moved down)\ndown [ stationary DogBottom | stationary obstacle ] [ > pushing_piece_nodog | DogHead] -> [ DogBottom cancontracttoken | obstacle ] [ > pushing_piece_nodog | DogHead ]\n\nrandom right [cancontracttoken] [DogNeck | DogNeck ] -> [] [ no skins|no skins]\n[cancontracttoken]->[]\n\n(DOG NECK COMPRESS)\n\n[ > pushing_piece | pushable_piece no dogstretch ] -> [ > pushing_piece | > pushable_piece ]\n+ up [ moving pushable pushable_connection_up | pushable pushable_connection_down ] -> [ moving pushable moving pushable_connection_up | moving pushable moving pushable_connection_down ]\n+ down [ moving pushable pushable_connection_down | pushable pushable_connection_up ] -> [ moving pushable moving pushable_connection_down | moving pushable moving pushable_connection_up ]\n+ left [ moving pushable pushable_connection_left | pushable pushable_connection_right ] -> [ moving pushable moving pushable_connection_left | moving pushable moving pushable_connection_right ]\n+ right [ moving pushable pushable_connection_right | pushable pushable_connection_left ] -> [ moving pushable moving pushable_connection_right | moving pushable moving pushable_connection_left ]\n+ [ moving dogblock no dogstretch | stationary dogblock no dogstretch ] -> [ moving dogblock | moving dogblock ]\n\n[ > pushing_piece | stationary obstacle ] -> cancel\n\nup [ moving dogbottom | DogTongue ] -> [ moving DogBottom | moving DogTongue ]\nright [ pushable chocolate chocolateskin | moving DogTongue ] -> [moving pushable moving chocolate moving chocolateskin | moving DogTongue ]\n\nright [ stationary pushable | < pushable < chocolate < chocolateskin ] -> [ pushable | pushable chocolate chocolateskin ]\n\n[ moving DogBottom chocolate chocolateskin ] -> [ moving DogBottom moving chocolate moving chocolateskin]\n[ moving pushable chocolate chocolateskin ] -> [ moving pushable moving chocolate moving chocolateskin]\n\n\n[ moving pushable_piece skins ] -> [ moving pushable_piece moving skins ]\n[ moving Player playerskins ] -> [ moving Player moving playerskins ]\n\n(LATE)\n\nlate down [ dogskin4 | no DogNeck no obstacle ] [ dogskin5 | no DogNeck no obstacle ] -> [ dogskin4 | DogNeck ] [dogskin5 | DogNeck ]\n\n\nlate vertical [ DogNeck | no DogHead no DogBottom ] -> [ DogNeck | DogNeck ]\nlate right [ dogneck no dogskins | dogneck no dogskins ] -> [ 中 | 丸 ]\n(replace chocolate pushable with dogbottom)\n\nlate [chocolate chocolateskin pushable] -> [chocolate chocolateskin DogBottom]\n\n\n(move to start for visualisation purposes)\nlate [ dogstretch ] -> [ ]\n\n\n==============\nWINCONDITIONS\n==============\nno DogNeck\nno deaddogskin\n\n=======\nLEVELS\n=======\n\nmessage NO DON'T YOU DARE SWALLOW THAT\n\n\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw........υ..υ.υ..υ.......................................w\nw........χψψа.χψψа.......................................w\nw........б..б.б..б.......................................w\nw..................................гд..............щъ....w\nw...................................е....мнннно....ы.....w\nw........................αβ.........е....пррррс....ь.....w\nw.......................γγδ.........ёжз..пррррс..эжю.....w\nw........................εζ.........и.й..пррррс..и.й.....w\nw........................ηη.........к.л..пррррс..к.л.....w\nw.............丁上下........θη..............пррррс..........w\nw.............不且世丙並......θη..............пррррс..........w\nw.............中丸.яd.....ικλ..............пррррс..........w\nw.........主乂乂乂乂乃之乎九......μν........гд....пррррс....щъ....w\nw.........也事二五乂亡.........ξο.........е....пррррс....ы.....w\nw.........交...亦..........ξπ.........е....пррррс....ь.....w\nw.........京...亭..........ξπ.........ёжз..тушшуф..эжю.....w\nw........................ξπ.........и.й...х..х...и.й.....w\nw.......................ρστ.........к.л...ц..ц...к.л.....w\nw.........................................ц..ц...........w\nw.........................................ч..ч...........w\nw........................................................w\nw........................................................w\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n\nmessage YOU ARE SUCH A SHITEHAWK OF A DOG\n\n(\n\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nw..........................гд............................w\nw...........................е............................w\nw...........................е............................w\nw...........................ёжз..........................w\nw...........................и.й..........................w\nw...........................к.л..........................w\nw.............................щъ.........................w\nw.............................ы..........................w\nw.............................ь..........................w\nw...........................эжю..........................w\nw....υ..υ...................и.й..........................w\nw....χψψа...................к.л..........................w\nw....б..б................................................w\nw........................................................w\nw..............αβ........................................w\nw.............γγδ........................................w\nw..............εζ........................................w\nw..............ηη........................................w\nw..............θη........................мнннно..........w\nw..............θη........................пррррс..........w\nw.............ικλ........................пррррс..........w\nw..............μν........................пррррс..........w\nw..............ξο........................пррррс..........w\nw..............ξπ........................пррррс..........w\nw..............ξπ........................пррррс..........w\nw..............ξπ........................пррррс..........w\nw............яρστ..................гд....пррррс....щъ....w\nw........丁上下........................е....пррррс....ы.....w\nw........不且世丙並......................е....пррррс....ь.....w\nw........中丸υ..υ.....................ёжз..тушшуф..эжю.....w\nw........中丸χψψа.....................и.й...х..х...и.й.....w\nw........中丸б.dб.....................к.л...ц..ц...к.л.....w\nw....主乂乂乂乂乃之乎九............................ц..ц...........w\nw....也事二五乂亡...............................ч..ч...........w\nw....交...亦...............................................w\nw....京...亭...............................................w\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n\n\n\n\n\n(move left and dog has bad time)\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nw..........................гд............................w\nw...........................е............................w\nw...........................е............................w\nw...........................ёжз..........................w\nw...........................и.й..........................w\nw...........................к.л..........................w\nw.............................щъ.........................w\nw.............................ы..........................w\nw.............................ь..........................w\nw...........................эжю..........................w\nw....υ..υ...................и.й..........................w\nw....χψψа...................к.л..........................w\nw....б..б................................................w\nw........................................................w\nw........................................................w\nw........................................................w\nw............αβ..........................................w\nw...........γγδ..........................................w\nw............εζ..........................мнннно..........w\nw............ηη..........................пррррс..........w\nw............θη..........................пррррс..........w\nw............θη..........................пррррс..........w\nw...........ικλ..........................пррррс..........w\nw............μν..........................пррррс..........w\nw............ξο..........................пррррс..........w\nw............ξπ..........................пррррс..........w\nw...........яξπ....................гд....пррррс....щъ....w\nw......丁上下...ξπ.....................е....пррррс....ы.....w\nw......不且世丙並ρστ.....................е....пррррс....ь.....w\nw......中丸..υ..υ.....................ёжз..тушшуф..эжю.....w\nw......中丸..χψψа.....................и.й...х..х...и.й.....w\nw......中丸..б..б.....................к.л...ц..ц...к.л.....w\nw..主乂乂乂乂乃之乎九..............................ц..ц...........w\nw..也事二五乂亡.................................ч..ч...........w\nw..交...亦.................................................w\nw..京...亭.................................................w\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n\n\n\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\nw......丁上下.................гд............................w\nw......不且世丙並................е............................w\nw......中丸υ.яυ...............е............................w\nw......中丸χψψа..αβ...........ёжз..........................w\nw......中丸б..б.γγδ...........и.й..........................w\nw......中丸......εζ...........к.л..........................w\nw......中丸......ηη........................................w\nw..υ..υ中丸......θη........................................w\nw..χψψа中丸....щъθη........................................w\nw..б..б中丸....ыικλ........................................w\nw..主乂乂乂乂乃之乎九.ь.μν........................................w\nw..也事二五乂亡..эжю.ξο........................................w\nw..交...亦...и.й.ξπ........................................w\nw..京...亭...к.л.ξπ........................................w\nw..............ξπ........................................w\nw.............ρστ........................................w\nw........................................................w\nw........................................................w\nw........................................мнннно..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw........................................пррррс..........w\nw..................................гд....пррррс....щъ....w\nw...................................е....пррррс....ы.....w\nw...................................е....пррррс....ь.....w\nw...................................ёжз..тушшуф..эжю.....w\nw...................................и.й...х..х...и.й.....w\nw...................................к.л...ц..ц...к.л.....w\nw.........................................ц..ц...........w\nw.........................................ч..ч...........w\nw........................................................w\nw........................................................w\nwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww\n\n)\n",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,2,2,2,2,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1],"background boundary: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,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background dumbbellskin1 pushable pushable_connection_down:2,background dumbbellskin2 pushable pushable_connection_down pushable_connection_right pushable_connection_up:3,background dumbbellskin3 pushable pushable_connection_up:4,background dogbottom dogskin10:5,background dogbottom dogskin15:6,background dogbottom dogskin20:7,background dogbottom dogskin22:8,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,background dumbbellskin4 pushable pushable_connection_left pushable_connection_right:9,1,background dogbottom dogskin1:10,background dogbottom dogskin16:11,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,1,10,background dogbottom dogskin17:12,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,background dumbbellskin2 pushable pushable_connection_down pushable_connection_left pushable_connection_up:13,4,10,background dogbottom dogskin18:14,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,background doghead dogskin1:15,background doghead dogskin4:16,background dogneck dogskin1:17,17,17,17,17,17,17,17,17,17,\n17,17,10,10,background dogbottom dogskin21:18,background dogbottom dogskin23:19,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,background doghead dogskin2:20,background doghead dogskin5:21,background dogneck dogskin9:22,22,22,22,22,22,22,22,22,22,22,22,background dogbottom dogskin11:23,background dogbottom dogskin19:24,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,background doghead dogskin3:25,background doghead dogskin6:26,1,1,1,1,1,1,1,1,1,1,1,1,background dogbottom dogskin12:27,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background doghead dogskin7:28,1,1,1,1,1,1,1,1,1,1,1,background chocolate chocolateskin dogbottom:29,\nbackground dogbottom dogskin13:30,1,1,1,1,1,1,1,1,0,0,1,1,1,1,background player playerskin3:31,1,1,1,1,background player playerskin10:32,1,1,1,1,background doghead dogskin8:33,background player playerskin18:34,1,1,1,1,1,1,1,1,1,1,background dogtongue:35,background dogbottom dogskin14:36,1,1,1,1,1,1,1,1,0,0,1,1,1,background player playerskin1:37,31,background player playerskin5:38,background player playerskin8:39,background player playerskin9:40,40,\nbackground player playerskin11:41,background player playerskin13:42,background player playerskin15:43,43,43,43,background player playerskin19:44,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,background player playerskin2:45,background player playerskin4:46,background player playerskin7:47,39,39,39,background player playerskin12:48,background player playerskin14:49,background player playerskin16:50,background player playerskin17:51,51,51,background player playerskin20:52,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,3,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,13,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,background chairskin1 pushable pushable_connection_right:53,1,1,1,1,1,1,1,1,53,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background chairskin2 pushable pushable_connection_down pushable_connection_left:54,background chairskin3 pushable pushable_connection_down pushable_connection_up:55,55,background chairskin4 pushable pushable_connection_down pushable_connection_right pushable_connection_up:56,background chairskin7 pushable pushable_connection_down pushable_connection_up:57,background chairskin8 pushable pushable_connection_up:58,\n1,1,1,54,55,55,56,57,58,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background chairskin5 pushable pushable_connection_left pushable_connection_right:59,1,1,1,1,1,1,1,1,59,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background chairskin6 pushable pushable_connection_down pushable_connection_left:60,background chairskin9 pushable pushable_connection_down pushable_connection_up:61,background chairskin10 pushable pushable_connection_up:62,1,1,1,1,1,1,60,61,62,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_right tableskin1:63,background pushable pushable_connection_down pushable_connection_right pushable_connection_up tableskin4:64,64,64,64,64,64,64,64,64,64,background pushable pushable_connection_right pushable_connection_up tableskin7:65,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_left pushable_connection_right tableskin2:66,background pushable pushable_connection_down pushable_connection_left pushable_connection_right pushable_connection_up tableskin5:67,67,67,67,67,67,67,67,\n67,67,background pushable pushable_connection_down pushable_connection_left pushable_connection_right pushable_connection_up tableskin8:68,background pushable pushable_connection_down pushable_connection_up tableskin10:69,background pushable pushable_connection_down pushable_connection_up tableskin11:70,70,background pushable pushable_connection_up tableskin12:71,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,66,67,67,67,67,67,67,67,67,67,67,background pushable pushable_connection_left pushable_connection_right pushable_connection_up tableskin8:72,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,66,67,67,67,67,67,67,67,67,67,67,72,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,66,67,67,67,67,67,67,67,67,67,67,\n68,69,70,70,71,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_left tableskin3:73,background pushable pushable_connection_down pushable_connection_left pushable_connection_up tableskin6:74,74,74,74,74,74,74,74,74,74,background pushable pushable_connection_left pushable_connection_up tableskin9:75,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_right rightskin5:76,57,58,1,1,1,1,1,1,76,57,58,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,59,1,1,1,1,1,1,1,1,59,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_down pushable_connection_right rightskin1:77,background pushable pushable_connection_down pushable_connection_up rightskin3:78,background pushable pushable_connection_down pushable_connection_up rightskin4:79,background pushable pushable_connection_down pushable_connection_left pushable_connection_up rightskin6:80,61,62,1,1,1,77,78,79,80,61,62,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,background pushable pushable_connection_left rightskin2:81,1,1,1,1,1,1,1,1,81,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",1,"1627893792808.8965"] ], [ - "paint everything everywhere!", - ["title paint everything everywhere!\nauthor increpare + pancelor\nhomepage www.pancelor.com (increpare.com)\n\nbackground_color #db7f00\ntext_color #126a10\n\nagain_interval 0.05\nrun_rules_on_level_start\n( verbose_logging )\n\n========\nOBJECTS\n========\n\nBackground\n#ff00ff \ncanvas \n#F5ECE0 \n\nWall\n#51984f #ffb910\n00000\n01110\n01110\n01110\n00000\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate1Base\n#af101d\n00000\n0...0\n0...0\n0...0\n00000\n\nCrate1L0\n#af101d \n0....\n0.... \n0.... \n0.... \n0....\n\nCrate1R0\n#af101d \n....0\n....0\n....0\n....0\n....0\n\nCrate1U0\n#af101d \n00000\n.....\n.....\n.....\n.....\n\nCrate1D0\n#af101d \n.....\n.....\n.....\n.....\n00000\n\nCrate1Z0\n#af101d\n.....\n.....\n.....\n.....\n.....\n\nCrate2Base\n#7cecec \n00000\n0...0\n0...0\n0...0\n00000\n\nCrate2L0\n#7cecec \n0.... \n0.... \n0.... \n0.... \n0....\n\nCrate2R0\n#7cecec \n....0\n....0\n....0\n....0\n....0\n\n\nCrate2U0\n#7cecec \n00000\n.....\n.....\n.....\n.....\n\nCrate2D0\n#7cecec \n.....\n.....\n.....\n.....\n00000\n\nCrate2Z0\n#7cecec #F5ECE0\n.....\n.....\n.....\n.....\n.....\n\nPaint1\n#CC2936\n.....\n00000\n00000\n.....\n00000\n\nPaint2\n#2897B0\n....0\n....0\n.0000\n.00..\n000.0\n\nslideright\ntransparent\n\nslidedown\ntransparent\n\nslideleft\ntransparent\n\nslideup\ntransparent\n\nwinning\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background and canvas\n# = Wall\nP = Player\n1 = Crate1Base and canvas and paint1\n2 = Crate2Base and canvas and paint2\n\nCrate1=Crate1Base or Crate1L0 or Crate1R0 or Crate1U0 or Crate1D0 or Crate1Z0\nCrate2=Crate2Base or Crate2L0 or Crate2R0 or Crate2U0 or Crate2D0 or Crate2Z0\nCrateL=Crate1L0 or Crate2L0\nCrateR=Crate1R0 or Crate2R0\nCrateU=Crate1U0 or Crate2U0\nCrateD=Crate1D0 or Crate2D0\nCrateZ=Crate1Z0 or Crate2Z0\nCrate=Crate1 or Crate2\n\npaint=paint1 or paint2\nslidetag = slideleft or slideup or slideright or slidedown\nobs = wall or crate\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 30943107\n\n( sfx0 19998706 (paint1 ) )\n( sfx1 382306 (paint2 ) )\n\nsfx0 19045907\n( sfx0 129314260 )\n( sfx0 321260 )\n( sfx0 5212604 )\n( 1779703 )\n( 42076907 )\n( sfx1 56671706 )\nsfx1 99909509\n\nendlevel 74970903\n( endlevel 57283503 )\n( endlevel 34632303 )\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncanvas\npaint1\npaint2\nCrate1Base,Crate2Base\nPlayer\nWall, CrateZ\nCrateL\nCrateR\nCrateU\nCrateD\nslidetag\nwinning\n\n======\nRULES\n======\n\n(startup visuals)\n[Crate1Base] -> [Crate1L0 Crate1R0 Crate1U0 Crate1D0 Crate1Z0]\nleft [Crate1L0|Crate1R0]->[|]\nup [Crate1U0|Crate1D0]->[|]\n[Crate2Base] -> [Crate2L0 Crate2R0 Crate2U0 Crate2D0 Crate2Z0]\nleft [Crate2L0|Crate2R0]->[|]\nup [Crate2U0|Crate2D0]->[|]\n\n[player] -> [player wall winning]\n\n[> player slidetag]->[> player]\n\n[ up player ] -> [ player slideup ] again\n[ down player ] -> [ player slidedown ] again\n[ left player ] -> [ player slideleft ] again\n[ right player ] -> [ player slideright ] again\n\n[ slideup ] [ crate ] -> [ slideup ] [ up crate ] again\n[ slidedown ] [ crate ] -> [ slidedown ] [ down crate ] again\n[ slideleft ] [ crate ] -> [ slideleft ] [ left crate ] again\n[ slideright ] [ crate ] -> [ slideright ] [ right crate ] again\n\n[ > crate | stationary obs ] -> [ crate | stationary obs ]\n+ [ up crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ up crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n+ [ down crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ down crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n+ [ left crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ left crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n+ [ right crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ right crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n\n[> crate][winning] -> [> crate][]\n\nlate [ crate1 no paint1 ] -> [ crate1 paint1 ] sfx0\nlate [ crate2 no paint2 ] -> [ crate2 paint2 ] sfx1\n\n==============\nWINCONDITIONS\n==============\n\nall canvas on Paint1\nall canvas on Paint2\nsome winning\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 20\n(increpare:perfectly fine little level)\n(pancelor: these are both quite nice)\n######p\n#.....#\n#....##\n##.#.1#\n#..2..#\n#######\n\nmessage Level 2 of 20\n(increpare:also a perfectly fine little level)\n######p\n#.....#\n#.....#\n#..#..#\n#...###\n###1.2#\n#######\n\nmessage Level 3 of 20\n(increpare: level with rotational symmetry - this is somethign I repeat in some later levels - not sure if that means it's worth avoiding here)\n(pancelor: satisfying to fill all the corners. I went back and forth on whether to cut this level or not, but decided not to )\n###########p\n###.......##\n#.........##\n#......22..#\n#..11..22..#\n#..11......#\n##.........#\n##.......###\n############\n\nmessage Level 4 of 20\n(increpare: I kinda like this one)\n(pancelor: same! feels like a racetrack)\n###########p\n#11.#......#\n#11.#......#\n#......#.22#\n#......#.22#\n#...####...#\n#..........#\n#..........#\n############\n\nmessage Level 5 of 20\n(pancelor: i like it okay; i was a bit large IMO (made execution feel slow) -- I've compressed it a bit\n (increpare: kinda like this one?)\n #############p\n #11..........#\n #11..........#\n #....#.......#\n #....#.......#\n #..######....#\n #....####....#\n #....####....#\n #....####....#\n #....######..#\n #.......#....#\n #.......#....#\n #..........22#\n #..........22#\n ##############\n (pancelor: here's a variation that encourages some fun swirls:)\n p#############\n #11..........#\n #11..........#\n #.....#......#\n #.....#......#\n #.....###....#\n #..######....#\n #....####....#\n #....######..#\n #....###.....#\n #......#.....#\n #......#.....#\n #..........22#\n #..........22#\n ##############\n ) \n#############\n#22.........#\n#22.........#\n#....#......#\n#....#......#\n#..#####....#\n#....###....#\n#....#####..#\n#......#....#\n#......#....#\n#.........11#\n#.........11#\np############\n\nmessage Level 6 of 20\n(pancelor: really satisfying to play! lots of good swirling)\n(increpare: v. nice!)\np##############\n###11#####22###\n###....#....###\n###....#....###\n#....#####....#\n#....#####....#\n###.........###\n#####.....#####\n###############\n\n(\n(increpare: fine, maybe, but like other levels)\n(pancelor: I think this one introduces some new ideas in a nice small playground. you could probably figure them out in the next level too but I like that this one also exists)\n(pancelor: now that we have so many levels I think we should cut this)\n###########p\n#..........#\n#..........#\n#..........#\n#...111#...#\n#...1212...#\n#...1212...#\n#...#222...#\n#..........#\n#..........#\n#..........#\n############\n)\n\nmessage Level 7 of 20\n(pancelor: fun! based on your level (\"compressed it a bit\" above))\n(increpare: like it)\np########\n#......1#\n#.......#\n#..###..#\n#..###..#\n#..##...#\n#.......#\n#2.....##\n#########\n\nmessage Level 8 of 20\n(pancelor: not too hard)\n(increpare yeah fine!)\n#######p#\n##...####\n##....###\n##....2##\n##....2##\n##....2##\n##..#..##\n##.....##\n##1....##\n##11...##\n#########\n\nmessage Level 9 of 20\n(increpare: more involved version of the above. better?)\n(pancelor: I think both levels are good, but keep this one and cut the above one if you think we need to cut down on levels)\n#################p\n#................#\n#................#\n#................#\n#....1.111#......#\n#....1.121222....#\n#....111212.2....#\n#......#222.2....#\n#................#\n#................#\n#................#\n##################\n\n(\n(pancelor: ok? cut it for now b/c we have so many levels)\np########\n#......1#\n#.......#\n#..###..#\n#..###..#\n#..###..#\n#.......#\n#2..##..#\n#########\n)\n\n(\n(pancelor: ok? I like the feeling of stair-stepping)\n(increpare: easy + ok)\n#######p\n##....##\n#1....2#\n#11..22#\n#.1#.2.#\n#..#...#\n#......#\n#......#\n#......#\n#.....##\n##...###\n########\n)\n\nmessage Level 10 of 20\n(pancelor: a nice simple level that pretty clearly asks you to swap positions. I made this from one of your sketches:\n (bad because dead end)\n ######p\n ##....#\n #.....#\n #12...#\n #1##..#\n #######)\n \n (increpare:nice!)\np######\n#####.#\n##....#\n#.....#\n#....1#\n#.##21#\n#######\n\nmessage Level 11 of 20\n(increpare: decent level - has some satisfying block-pushing I think!)\n(pancelor: oh this is very cute -- one of my favorite levels! I like the way you need to them to help each other travel. I also like how it requires a lot of swapping -- swapping sides, swapping which piece goes left first. very nice)\n###########p\n###....#...#\n#..........#\n#.....#....#\n#111...#.22#\n############\n\nmessage Level 12 of 20\n(pancelor: based on a dead-end level you made; I liked the feeling of getting the triangles hooked together and then unhooking them.\n (increpare: solvabe but early+subtle dead end possible :[ )\n (pancelor: this one gave me a lot of trouble, until I read your comment about dead ends! then two more tries and I got it.)\n ##########p\n ##1.......#\n #11.......#\n #......#..#\n #.........#\n #.........#\n #.........#\n #.........#\n #..#......#\n #.......22#\n #.......2##\n ###########)\np#############\n##........####\n#..........1##\n#...#......11#\n#............#\n#............#\n#............#\n#22......#...#\n##2..........#\n####........##\n##############\n\nmessage Level 13 of 20\n(pancelor: an okay level, not particularly different but requires the brushes to support each other many times)\n(increpare:good)\n############p\n###111......#\n#...........#\n#...........#\n#...........#\n#......#....#\n#...#......2#\n##.........2#\n##.........2#\n##.........##\n#############\n\nmessage Level 14 of 20\n(pancelor: hard ish but maybe not too satisfying? the little 1x1 slot is hard to paint with the smaller brush -- probably will find it by brute force)\n(increpare: easy)\n############p#\n##1.....######\n#111111.....##\n#1...........#\n#............#\n#...#........#\n#..........2.#\n#..........22#\n#..........2##\n#....#.#######\n##############\n\n(\n(pancelor: an okay level, there's a cute reversal you have to do to paint the last square. not too hard)\n(increpare: ok!)\n###########\np#....#####\n##....22..#\n#....#211.#\n#....22...#\n#.........#\n#........##\n#........##\n###....####\n###########\n)\n\nmessage Level 15 of 20\n(increpare: a solid level! - strategic + no dead ends)\n(pancelor: really really nice! fun to swap them around.)\n#############p\n#######..#####\n#####......###\n###..........#\n#.....12.....#\n#...111222...#\n#...1....2...#\n#..........###\n###......#####\n#####..#######\n##############\n\nmessage Level 16 of 20\n(pancelor: an okay level, many fun little challenges to fill in the last corners of the board; none are too difficult)\n(increpare: way nicer than expected)\n##########p\n#.....1####\n#.....1111#\n#.......1.#\n#....#....#\n#.........#\n##........#\n#..#......#\n#.........#\n##...2....#\n####.2222##\n###########\n\nmessage Level 17 of 20\n(pancelor: maybe my favorite level?! a much harder variation of the my \"pretty clearly asks you to swap positions\" level. I think both levels can exist?)\n(pancelor: this one is hard because it goes through an easy-to-miss narrow chokepoint in state-space. the last couple moves are a bit tricky too)\n(increpare: nice!)\np########## \n##...###### \n#......#### \n#......#### \n##.....22## \n##.....22## \n####.....## \n####.....## \n##.......## \n##.....111# \n##.....111# \n###########\n\n(\n(pancelor: tricky, but sorta unfocused. probably feels brute-forcey)\n(increpare: pretty gruelling. maybe cut?)\n#############p\n#######....###\n###222......1#\n###......#..1#\n#...#........#\n#.....#......#\n###..........#\n######....####\n##############\n)\n\nmessage Level 18 of 20\n(pancelor: an okay level, about getting the two blocks to swap places)\n(increpare: I think this is hard but enjoyable?)\n###############p\n####.........22#\n##...........22#\n##.............#\n##............##\n###............#\n###............#\n#111...........#\n#111..........##\n#111........####\n################\n\nmessage Level 19 of 20\n(pancelor: a very thinky level; one of my favorite levels)\n(increpare pretty exhausting - i got it ish)\np###########\n#.........2#\n#.####...###\n#.#.####.###\n#.#......###\n#.###.##.###\n#.##......##\n#.....##..##\n#######1.###\n############\n\n(\n(pancelor: very hard but not in a satisfying way; the last corners are hard to hunt down. (the one square on the right side is kinda neat) idk I might cut this)\n###p################\n####################\n#########....#....##\n#########.........##\n###................#\n#............#.....#\n###................#\n##..............111#\n###...............1#\n#................11#\n###...............1#\n###222..........111#\n####################\n####################\n)\n\nmessage Level 20 of 20\n(increpare: I'm ok with this, but maybe too similar to the level I described as \"a solid level\" which I think is better)\n((pancelor: I like the concept :) but also: agreed on all points... idk I think it's a nice large+relaxing final level)\n#################p\n#######.....######\n#######.....######\n#####.......######\n#####.........####\n###...........####\n###.............##\n#...............##\n#................#\n#....111..222....#\n#.....1...2.2....#\n#.....1...222....#\n#.....1...2......#\n#....111..2......#\n#................#\n#................#\n##...............#\n##.............###\n####...........###\n####.........#####\n######.......#####\n######.....#######\n######.....#######\n##################\n\nmessage whoa! you painted everything! congratulations!\n\n\n\n(\n\n(increpare: has a dead end :[ )\n######p\n#....##\n#..222#\n#....##\n##...1#\n#######\n\n(pancelor: seems impossible? I assume it is, but if I write \"seems impossible\" on one of these and it turns out it's actually not then maybe we should include it)\n#############p\n######..######\n####......####\n####....2.####\n##......2...##\n##....22222.##\n#.......2....#\n#....11.2....#\n##...11.....##\n##..........##\n####......####\n####......####\n######..######\n##############\n\n(pancelor: seems impossible)\n###########p\n###......###\n###....2.###\n#......2...#\n#....22222.#\n#......2...#\n#...11.2...#\n#...11.....#\n#..........#\n###......###\n###......###\n############\n\n(pancelor: seems impossible)\n###############\n######...####p#\n####.......####\n####.......####\n##.......2...##\n##.......2...##\n#......22222..#\n#........2....#\n#.....11.2....#\n##....11.....##\n##...........##\n####.......####\n####.......####\n######...######\n###############\n\n(increpare: not as good as above level )\n(pancelor: fun! but yeah this is pretty similar to some earlier levels)\n##########p\n##.......##\n#.........#\n#..1...2..#\n#.111#222.#\n#..1...2..#\n#.........#\n##.......##\n########### \n\n(increpare: bad because dead end)\n(pancelor: cool level! unfortunate that there's a dead end)\n######p\n#..1.##\n##....#\n#.....#\n##22..#\n#######\n\n\n\n\n\n(increpare: )\n((pancelor: seems impossible ;) )\n###########p\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n###########p\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n######p\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n###########p\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n(increpare: )\n(pancelor: I like the level! and not just for the aesthetic haha. but it's similar to some other ones so I can see why you cut it)\n#################p\n#..............###\n#..............###\n#.....222........#\n#.....2.2.#......#\n#.....22222......#\n#......11111.....#\n#......#.1.1.....#\n#........111.....#\n###..............#\n###..............#\n##################\n\n(increpare: )\n(pancelor: seems impossible)\n##########p\n#11......##\n#1........#\n#.........#\n#.....#...#\n#.........#\n#.........#\n#...#.....#\n#.........#\n#........2#\n##......22#\n###########\n)\n\n\n\n\n\n(\n(pancelor: has a dead-end... in fact the reason I think it's cool is because of what you have to do to avoid the dead end! oh well)\np########\n#......1#\n#.......#\n#..###..#\n#..###..#\n#..###..#\n#.......#\n#2..#...#\n#########\n\n(pancelor: really tricky and feels different from most other levels, but probably just feels like brute force work to solve)\n(pancelor: I think this is beatable but I don't remember)\np#######################\n######22.....###########\n#####22.......##########\n####.2........##########\n###...........##########\n##...#........##########\n#........##...##########\n#........#...###########\n#.......#...############\n#......#...#############\n#.........##############\n#1.......###############\n#1......################\n########################\n########################\n########################\n########################\n\n(pancelor: no win)\n########p##\n###....####\n##.....####\n#.1....####\n#.1#22.####\n#.122..####\n#..2...####\n#......####\n#......####\n#.....#####\n#.##.######\n###########\n\n(pancelor: no win)\n###########p\n##...###.1##\n#.....#.111#\n#.....#..1.#\n##....#....#\n###........#\n##.........#\n#..........#\n#..........#\n#22........#\n#22........#\n##........##\n############\n\n(pancelor: no win)\n##############p\n#####.....#####\n####.......####\n##...........##\n#.............#\n#.............#\n#...........1.#\n#.22.......111#\n##22..###...1##\n###############\n\n(pancelor: fine? not terribly interesting)\np#######\n#..211.#\n#..#...#\n##....##\n##..#..#\n##.....#\n########\n\n(pancelor: REALLY SATSIFYING. but too simple...? todo: feed to MIS -- delete some walls?)\n###############\n##############p\n###############\n###############\n###..##########\n###..##########\n##1....2#######\n##1....2#######\n#####..########\n#####..########\n###############\n###############\n###############\n###############\n\n(pancelor: kinda cool? idk it's fine)\n############p#\n#222...1111###\n#.....#....###\n#..........###\n##......#....#\n##...........#\n##.........###\n##.........###\n##.........###\n##############\n (pancelor: it's essentially just this which isn't a new concept:\n p###########\n #222...1111#\n #.....#....#\n #..........#\n ####....####\n ############)\n\n(pancelor: unbeatable; can't get into the last corner. feed to MIS?)\n###########p##\n##.....2222###\n#............#\n#.......#....#\n#11........###\n####....######\n####....######\n###.....######\n#.......######\n##############\n\n(pancelor: not very unique; could cut this one. satisfying to play, I think. feels a bit like pacman)\n(pancelor: this turned into my 1x1 corridor maze level, so I cut this version)\np########\n#..2....#\n#..2....#\n#.#####.#\n#...#...#\n#.......#\n###....##\n#....#..#\n#.......#\n#.###...#\n#...1..##\n#...1..##\n#########\n\n(pancelor: not possible)\n###p################\n####################\n#................###\n#..................#\n#..................#\n#..........#.......#\n#..................#\n#..................#\n#.....#.......111..#\n#2..............1..#\n#222..........1.1..#\n#2............111###\n####################\n####################\n\n(pancelor: not possible)\n#############p\n#............#\n#............#\n#....222222..#\n#..2......2..#\n#..2......2..#\n#..2..##..2..#\n#..2...#..2..#\n#..2.#....2..#\n#..2.....12..#\n#..22222222..#\n#............#\n#............#\n##############\n\n(pancelor: not possible)\np###################\n####################\n####################\n#.........##########\n#.111111...#########\n#.1.............####\n#.1......11111...###\n#.1...#......1...###\n#.1..22#.....1...###\n#.1..2.##....1...###\n#.1.......##.1...###\n#.1......##..1...###\n#.11111......1...###\n#.....11111111...###\n#................###\n#####............###\n####################\n####################\n\n(pancelor: not possible)\n##########################p\n##.......................##\n##.......................##\n##.......................##\n##......2222222..........##\n##............2..........##\n##......11111.2...1......##\n##......1.2.1.2...1.......#\n#.......1.2...2...1.......#\n#.......1.22222...1.......#\n#.......1.........1.......#\n#.......11111111111.......#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n##.......................##\n###########################\n\n)\n\n", [1, 0, 3, 0, 1, 2, 3, 2, 1], "background player slideleft wall winning:0,background wall:1,1,1,1,1,1,1,1,1,1,\n1,1,1,background canvas:2,2,1,1,1,1,1,1,\n1,1,1,background canvas paint2:3,3,3,background canvas paint1 paint2:4,4,1,1,background canvas paint1:5,\nbackground canvas crate1l0 crate1u0 crate1z0 paint1:6,background canvas crate1d0 crate1l0 crate1z0 paint1:7,1,1,3,3,3,4,4,1,1,\n5,background canvas crate1u0 crate1z0 paint1:8,background canvas crate1d0 crate1z0 paint1:9,1,1,3,3,3,4,4,2,\nbackground canvas crate2l0 crate2u0 crate2z0 paint2:10,background canvas crate2d0 crate2l0 crate2z0 paint1 paint2:11,background canvas crate1r0 crate1u0 crate1z0 paint1:12,background canvas crate1d0 crate1r0 crate1z0 paint1:13,1,1,1,3,3,4,4,\n3,background canvas crate2r0 crate2u0 crate2z0 paint2:14,background canvas crate2d0 crate2r0 crate2z0 paint1 paint2:15,5,5,1,1,1,3,3,4,\n4,4,4,4,5,5,1,1,1,1,1,\n4,4,5,5,5,5,5,1,1,1,1,\n1,4,4,5,5,5,5,5,1,1,1,\n1,1,1,1,1,1,1,5,5,1,1,\n1,1,1,1,1,1,1,1,1,1,1,\n", 33, "1627893815569.176"] + "paint everything everywhere!", + ["title paint everything everywhere!\nauthor increpare + pancelor\nhomepage www.pancelor.com (increpare.com)\n\nbackground_color #db7f00\ntext_color #126a10\n\nagain_interval 0.05\nrun_rules_on_level_start\n( verbose_logging )\n\n========\nOBJECTS\n========\n\nBackground\n#ff00ff \ncanvas \n#F5ECE0 \n\nWall\n#51984f #ffb910\n00000\n01110\n01110\n01110\n00000\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate1Base\n#af101d\n00000\n0...0\n0...0\n0...0\n00000\n\nCrate1L0\n#af101d \n0....\n0.... \n0.... \n0.... \n0....\n\nCrate1R0\n#af101d \n....0\n....0\n....0\n....0\n....0\n\nCrate1U0\n#af101d \n00000\n.....\n.....\n.....\n.....\n\nCrate1D0\n#af101d \n.....\n.....\n.....\n.....\n00000\n\nCrate1Z0\n#af101d\n.....\n.....\n.....\n.....\n.....\n\nCrate2Base\n#7cecec \n00000\n0...0\n0...0\n0...0\n00000\n\nCrate2L0\n#7cecec \n0.... \n0.... \n0.... \n0.... \n0....\n\nCrate2R0\n#7cecec \n....0\n....0\n....0\n....0\n....0\n\n\nCrate2U0\n#7cecec \n00000\n.....\n.....\n.....\n.....\n\nCrate2D0\n#7cecec \n.....\n.....\n.....\n.....\n00000\n\nCrate2Z0\n#7cecec #F5ECE0\n.....\n.....\n.....\n.....\n.....\n\nPaint1\n#CC2936\n.....\n00000\n00000\n.....\n00000\n\nPaint2\n#2897B0\n....0\n....0\n.0000\n.00..\n000.0\n\nslideright\ntransparent\n\nslidedown\ntransparent\n\nslideleft\ntransparent\n\nslideup\ntransparent\n\nwinning\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background and canvas\n# = Wall\nP = Player\n1 = Crate1Base and canvas and paint1\n2 = Crate2Base and canvas and paint2\n\nCrate1=Crate1Base or Crate1L0 or Crate1R0 or Crate1U0 or Crate1D0 or Crate1Z0\nCrate2=Crate2Base or Crate2L0 or Crate2R0 or Crate2U0 or Crate2D0 or Crate2Z0\nCrateL=Crate1L0 or Crate2L0\nCrateR=Crate1R0 or Crate2R0\nCrateU=Crate1U0 or Crate2U0\nCrateD=Crate1D0 or Crate2D0\nCrateZ=Crate1Z0 or Crate2Z0\nCrate=Crate1 or Crate2\n\npaint=paint1 or paint2\nslidetag = slideleft or slideup or slideright or slidedown\nobs = wall or crate\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 30943107\n\n( sfx0 19998706 (paint1 ) )\n( sfx1 382306 (paint2 ) )\n\nsfx0 19045907\n( sfx0 129314260 )\n( sfx0 321260 )\n( sfx0 5212604 )\n( 1779703 )\n( 42076907 )\n( sfx1 56671706 )\nsfx1 99909509\n\nendlevel 74970903\n( endlevel 57283503 )\n( endlevel 34632303 )\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncanvas\npaint1\npaint2\nCrate1Base,Crate2Base\nPlayer\nWall, CrateZ\nCrateL\nCrateR\nCrateU\nCrateD\nslidetag\nwinning\n\n======\nRULES\n======\n\n(startup visuals)\n[Crate1Base] -> [Crate1L0 Crate1R0 Crate1U0 Crate1D0 Crate1Z0]\nleft [Crate1L0|Crate1R0]->[|]\nup [Crate1U0|Crate1D0]->[|]\n[Crate2Base] -> [Crate2L0 Crate2R0 Crate2U0 Crate2D0 Crate2Z0]\nleft [Crate2L0|Crate2R0]->[|]\nup [Crate2U0|Crate2D0]->[|]\n\n[player] -> [player wall winning]\n\n[> player slidetag]->[> player]\n\n[ up player ] -> [ player slideup ] again\n[ down player ] -> [ player slidedown ] again\n[ left player ] -> [ player slideleft ] again\n[ right player ] -> [ player slideright ] again\n\n[ slideup ] [ crate ] -> [ slideup ] [ up crate ] again\n[ slidedown ] [ crate ] -> [ slidedown ] [ down crate ] again\n[ slideleft ] [ crate ] -> [ slideleft ] [ left crate ] again\n[ slideright ] [ crate ] -> [ slideright ] [ right crate ] again\n\n[ > crate | stationary obs ] -> [ crate | stationary obs ]\n+ [ up crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ up crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n+ [ down crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ down crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n+ [ left crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ left crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n+ [ right crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ]\n+ [ right crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ]\n\n[> crate][winning] -> [> crate][]\n\nlate [ crate1 no paint1 ] -> [ crate1 paint1 ] sfx0\nlate [ crate2 no paint2 ] -> [ crate2 paint2 ] sfx1\n\n==============\nWINCONDITIONS\n==============\n\nall canvas on Paint1\nall canvas on Paint2\nsome winning\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 20\n(increpare:perfectly fine little level)\n(pancelor: these are both quite nice)\n######p\n#.....#\n#....##\n##.#.1#\n#..2..#\n#######\n\nmessage Level 2 of 20\n(increpare:also a perfectly fine little level)\n######p\n#.....#\n#.....#\n#..#..#\n#...###\n###1.2#\n#######\n\nmessage Level 3 of 20\n(increpare: level with rotational symmetry - this is somethign I repeat in some later levels - not sure if that means it's worth avoiding here)\n(pancelor: satisfying to fill all the corners. I went back and forth on whether to cut this level or not, but decided not to )\n###########p\n###.......##\n#.........##\n#......22..#\n#..11..22..#\n#..11......#\n##.........#\n##.......###\n############\n\nmessage Level 4 of 20\n(increpare: I kinda like this one)\n(pancelor: same! feels like a racetrack)\n###########p\n#11.#......#\n#11.#......#\n#......#.22#\n#......#.22#\n#...####...#\n#..........#\n#..........#\n############\n\nmessage Level 5 of 20\n(pancelor: i like it okay; i was a bit large IMO (made execution feel slow) -- I've compressed it a bit\n (increpare: kinda like this one?)\n #############p\n #11..........#\n #11..........#\n #....#.......#\n #....#.......#\n #..######....#\n #....####....#\n #....####....#\n #....####....#\n #....######..#\n #.......#....#\n #.......#....#\n #..........22#\n #..........22#\n ##############\n (pancelor: here's a variation that encourages some fun swirls:)\n p#############\n #11..........#\n #11..........#\n #.....#......#\n #.....#......#\n #.....###....#\n #..######....#\n #....####....#\n #....######..#\n #....###.....#\n #......#.....#\n #......#.....#\n #..........22#\n #..........22#\n ##############\n ) \n#############\n#22.........#\n#22.........#\n#....#......#\n#....#......#\n#..#####....#\n#....###....#\n#....#####..#\n#......#....#\n#......#....#\n#.........11#\n#.........11#\np############\n\nmessage Level 6 of 20\n(pancelor: really satisfying to play! lots of good swirling)\n(increpare: v. nice!)\np##############\n###11#####22###\n###....#....###\n###....#....###\n#....#####....#\n#....#####....#\n###.........###\n#####.....#####\n###############\n\n(\n(increpare: fine, maybe, but like other levels)\n(pancelor: I think this one introduces some new ideas in a nice small playground. you could probably figure them out in the next level too but I like that this one also exists)\n(pancelor: now that we have so many levels I think we should cut this)\n###########p\n#..........#\n#..........#\n#..........#\n#...111#...#\n#...1212...#\n#...1212...#\n#...#222...#\n#..........#\n#..........#\n#..........#\n############\n)\n\nmessage Level 7 of 20\n(pancelor: fun! based on your level (\"compressed it a bit\" above))\n(increpare: like it)\np########\n#......1#\n#.......#\n#..###..#\n#..###..#\n#..##...#\n#.......#\n#2.....##\n#########\n\nmessage Level 8 of 20\n(pancelor: not too hard)\n(increpare yeah fine!)\n#######p#\n##...####\n##....###\n##....2##\n##....2##\n##....2##\n##..#..##\n##.....##\n##1....##\n##11...##\n#########\n\nmessage Level 9 of 20\n(increpare: more involved version of the above. better?)\n(pancelor: I think both levels are good, but keep this one and cut the above one if you think we need to cut down on levels)\n#################p\n#................#\n#................#\n#................#\n#....1.111#......#\n#....1.121222....#\n#....111212.2....#\n#......#222.2....#\n#................#\n#................#\n#................#\n##################\n\n(\n(pancelor: ok? cut it for now b/c we have so many levels)\np########\n#......1#\n#.......#\n#..###..#\n#..###..#\n#..###..#\n#.......#\n#2..##..#\n#########\n)\n\n(\n(pancelor: ok? I like the feeling of stair-stepping)\n(increpare: easy + ok)\n#######p\n##....##\n#1....2#\n#11..22#\n#.1#.2.#\n#..#...#\n#......#\n#......#\n#......#\n#.....##\n##...###\n########\n)\n\nmessage Level 10 of 20\n(pancelor: a nice simple level that pretty clearly asks you to swap positions. I made this from one of your sketches:\n (bad because dead end)\n ######p\n ##....#\n #.....#\n #12...#\n #1##..#\n #######)\n \n (increpare:nice!)\np######\n#####.#\n##....#\n#.....#\n#....1#\n#.##21#\n#######\n\nmessage Level 11 of 20\n(increpare: decent level - has some satisfying block-pushing I think!)\n(pancelor: oh this is very cute -- one of my favorite levels! I like the way you need to them to help each other travel. I also like how it requires a lot of swapping -- swapping sides, swapping which piece goes left first. very nice)\n###########p\n###....#...#\n#..........#\n#.....#....#\n#111...#.22#\n############\n\nmessage Level 12 of 20\n(pancelor: based on a dead-end level you made; I liked the feeling of getting the triangles hooked together and then unhooking them.\n (increpare: solvabe but early+subtle dead end possible :[ )\n (pancelor: this one gave me a lot of trouble, until I read your comment about dead ends! then two more tries and I got it.)\n ##########p\n ##1.......#\n #11.......#\n #......#..#\n #.........#\n #.........#\n #.........#\n #.........#\n #..#......#\n #.......22#\n #.......2##\n ###########)\np#############\n##........####\n#..........1##\n#...#......11#\n#............#\n#............#\n#............#\n#22......#...#\n##2..........#\n####........##\n##############\n\nmessage Level 13 of 20\n(pancelor: an okay level, not particularly different but requires the brushes to support each other many times)\n(increpare:good)\n############p\n###111......#\n#...........#\n#...........#\n#...........#\n#......#....#\n#...#......2#\n##.........2#\n##.........2#\n##.........##\n#############\n\nmessage Level 14 of 20\n(pancelor: hard ish but maybe not too satisfying? the little 1x1 slot is hard to paint with the smaller brush -- probably will find it by brute force)\n(increpare: easy)\n############p#\n##1.....######\n#111111.....##\n#1...........#\n#............#\n#...#........#\n#..........2.#\n#..........22#\n#..........2##\n#....#.#######\n##############\n\n(\n(pancelor: an okay level, there's a cute reversal you have to do to paint the last square. not too hard)\n(increpare: ok!)\n###########\np#....#####\n##....22..#\n#....#211.#\n#....22...#\n#.........#\n#........##\n#........##\n###....####\n###########\n)\n\nmessage Level 15 of 20\n(increpare: a solid level! - strategic + no dead ends)\n(pancelor: really really nice! fun to swap them around.)\n#############p\n#######..#####\n#####......###\n###..........#\n#.....12.....#\n#...111222...#\n#...1....2...#\n#..........###\n###......#####\n#####..#######\n##############\n\nmessage Level 16 of 20\n(pancelor: an okay level, many fun little challenges to fill in the last corners of the board; none are too difficult)\n(increpare: way nicer than expected)\n##########p\n#.....1####\n#.....1111#\n#.......1.#\n#....#....#\n#.........#\n##........#\n#..#......#\n#.........#\n##...2....#\n####.2222##\n###########\n\nmessage Level 17 of 20\n(pancelor: maybe my favorite level?! a much harder variation of the my \"pretty clearly asks you to swap positions\" level. I think both levels can exist?)\n(pancelor: this one is hard because it goes through an easy-to-miss narrow chokepoint in state-space. the last couple moves are a bit tricky too)\n(increpare: nice!)\np########## \n##...###### \n#......#### \n#......#### \n##.....22## \n##.....22## \n####.....## \n####.....## \n##.......## \n##.....111# \n##.....111# \n###########\n\n(\n(pancelor: tricky, but sorta unfocused. probably feels brute-forcey)\n(increpare: pretty gruelling. maybe cut?)\n#############p\n#######....###\n###222......1#\n###......#..1#\n#...#........#\n#.....#......#\n###..........#\n######....####\n##############\n)\n\nmessage Level 18 of 20\n(pancelor: an okay level, about getting the two blocks to swap places)\n(increpare: I think this is hard but enjoyable?)\n###############p\n####.........22#\n##...........22#\n##.............#\n##............##\n###............#\n###............#\n#111...........#\n#111..........##\n#111........####\n################\n\nmessage Level 19 of 20\n(pancelor: a very thinky level; one of my favorite levels)\n(increpare pretty exhausting - i got it ish)\np###########\n#.........2#\n#.####...###\n#.#.####.###\n#.#......###\n#.###.##.###\n#.##......##\n#.....##..##\n#######1.###\n############\n\n(\n(pancelor: very hard but not in a satisfying way; the last corners are hard to hunt down. (the one square on the right side is kinda neat) idk I might cut this)\n###p################\n####################\n#########....#....##\n#########.........##\n###................#\n#............#.....#\n###................#\n##..............111#\n###...............1#\n#................11#\n###...............1#\n###222..........111#\n####################\n####################\n)\n\nmessage Level 20 of 20\n(increpare: I'm ok with this, but maybe too similar to the level I described as \"a solid level\" which I think is better)\n((pancelor: I like the concept :) but also: agreed on all points... idk I think it's a nice large+relaxing final level)\n#################p\n#######.....######\n#######.....######\n#####.......######\n#####.........####\n###...........####\n###.............##\n#...............##\n#................#\n#....111..222....#\n#.....1...2.2....#\n#.....1...222....#\n#.....1...2......#\n#....111..2......#\n#................#\n#................#\n##...............#\n##.............###\n####...........###\n####.........#####\n######.......#####\n######.....#######\n######.....#######\n##################\n\nmessage whoa! you painted everything! congratulations!\n\n\n\n(\n\n(increpare: has a dead end :[ )\n######p\n#....##\n#..222#\n#....##\n##...1#\n#######\n\n(pancelor: seems impossible? I assume it is, but if I write \"seems impossible\" on one of these and it turns out it's actually not then maybe we should include it)\n#############p\n######..######\n####......####\n####....2.####\n##......2...##\n##....22222.##\n#.......2....#\n#....11.2....#\n##...11.....##\n##..........##\n####......####\n####......####\n######..######\n##############\n\n(pancelor: seems impossible)\n###########p\n###......###\n###....2.###\n#......2...#\n#....22222.#\n#......2...#\n#...11.2...#\n#...11.....#\n#..........#\n###......###\n###......###\n############\n\n(pancelor: seems impossible)\n###############\n######...####p#\n####.......####\n####.......####\n##.......2...##\n##.......2...##\n#......22222..#\n#........2....#\n#.....11.2....#\n##....11.....##\n##...........##\n####.......####\n####.......####\n######...######\n###############\n\n(increpare: not as good as above level )\n(pancelor: fun! but yeah this is pretty similar to some earlier levels)\n##########p\n##.......##\n#.........#\n#..1...2..#\n#.111#222.#\n#..1...2..#\n#.........#\n##.......##\n########### \n\n(increpare: bad because dead end)\n(pancelor: cool level! unfortunate that there's a dead end)\n######p\n#..1.##\n##....#\n#.....#\n##22..#\n#######\n\n\n\n\n\n(increpare: )\n((pancelor: seems impossible ;) )\n###########p\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n###########p\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n######p\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n###########p\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n(increpare: )\n(pancelor: I like the level! and not just for the aesthetic haha. but it's similar to some other ones so I can see why you cut it)\n#################p\n#..............###\n#..............###\n#.....222........#\n#.....2.2.#......#\n#.....22222......#\n#......11111.....#\n#......#.1.1.....#\n#........111.....#\n###..............#\n###..............#\n##################\n\n(increpare: )\n(pancelor: seems impossible)\n##########p\n#11......##\n#1........#\n#.........#\n#.....#...#\n#.........#\n#.........#\n#...#.....#\n#.........#\n#........2#\n##......22#\n###########\n)\n\n\n\n\n\n(\n(pancelor: has a dead-end... in fact the reason I think it's cool is because of what you have to do to avoid the dead end! oh well)\np########\n#......1#\n#.......#\n#..###..#\n#..###..#\n#..###..#\n#.......#\n#2..#...#\n#########\n\n(pancelor: really tricky and feels different from most other levels, but probably just feels like brute force work to solve)\n(pancelor: I think this is beatable but I don't remember)\np#######################\n######22.....###########\n#####22.......##########\n####.2........##########\n###...........##########\n##...#........##########\n#........##...##########\n#........#...###########\n#.......#...############\n#......#...#############\n#.........##############\n#1.......###############\n#1......################\n########################\n########################\n########################\n########################\n\n(pancelor: no win)\n########p##\n###....####\n##.....####\n#.1....####\n#.1#22.####\n#.122..####\n#..2...####\n#......####\n#......####\n#.....#####\n#.##.######\n###########\n\n(pancelor: no win)\n###########p\n##...###.1##\n#.....#.111#\n#.....#..1.#\n##....#....#\n###........#\n##.........#\n#..........#\n#..........#\n#22........#\n#22........#\n##........##\n############\n\n(pancelor: no win)\n##############p\n#####.....#####\n####.......####\n##...........##\n#.............#\n#.............#\n#...........1.#\n#.22.......111#\n##22..###...1##\n###############\n\n(pancelor: fine? not terribly interesting)\np#######\n#..211.#\n#..#...#\n##....##\n##..#..#\n##.....#\n########\n\n(pancelor: REALLY SATSIFYING. but too simple...? todo: feed to MIS -- delete some walls?)\n###############\n##############p\n###############\n###############\n###..##########\n###..##########\n##1....2#######\n##1....2#######\n#####..########\n#####..########\n###############\n###############\n###############\n###############\n\n(pancelor: kinda cool? idk it's fine)\n############p#\n#222...1111###\n#.....#....###\n#..........###\n##......#....#\n##...........#\n##.........###\n##.........###\n##.........###\n##############\n (pancelor: it's essentially just this which isn't a new concept:\n p###########\n #222...1111#\n #.....#....#\n #..........#\n ####....####\n ############)\n\n(pancelor: unbeatable; can't get into the last corner. feed to MIS?)\n###########p##\n##.....2222###\n#............#\n#.......#....#\n#11........###\n####....######\n####....######\n###.....######\n#.......######\n##############\n\n(pancelor: not very unique; could cut this one. satisfying to play, I think. feels a bit like pacman)\n(pancelor: this turned into my 1x1 corridor maze level, so I cut this version)\np########\n#..2....#\n#..2....#\n#.#####.#\n#...#...#\n#.......#\n###....##\n#....#..#\n#.......#\n#.###...#\n#...1..##\n#...1..##\n#########\n\n(pancelor: not possible)\n###p################\n####################\n#................###\n#..................#\n#..................#\n#..........#.......#\n#..................#\n#..................#\n#.....#.......111..#\n#2..............1..#\n#222..........1.1..#\n#2............111###\n####################\n####################\n\n(pancelor: not possible)\n#############p\n#............#\n#............#\n#....222222..#\n#..2......2..#\n#..2......2..#\n#..2..##..2..#\n#..2...#..2..#\n#..2.#....2..#\n#..2.....12..#\n#..22222222..#\n#............#\n#............#\n##############\n\n(pancelor: not possible)\np###################\n####################\n####################\n#.........##########\n#.111111...#########\n#.1.............####\n#.1......11111...###\n#.1...#......1...###\n#.1..22#.....1...###\n#.1..2.##....1...###\n#.1.......##.1...###\n#.1......##..1...###\n#.11111......1...###\n#.....11111111...###\n#................###\n#####............###\n####################\n####################\n\n(pancelor: not possible)\n##########################p\n##.......................##\n##.......................##\n##.......................##\n##......2222222..........##\n##............2..........##\n##......11111.2...1......##\n##......1.2.1.2...1.......#\n#.......1.2...2...1.......#\n#.......1.22222...1.......#\n#.......1.........1.......#\n#.......11111111111.......#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n#.........................#\n##.......................##\n###########################\n\n)\n\n",[1,0,3,0,1,2,3,2,1],"background player slideleft wall winning:0,background wall:1,1,1,1,1,1,1,1,1,1,\n1,1,1,background canvas:2,2,1,1,1,1,1,1,\n1,1,1,background canvas paint2:3,3,3,background canvas paint1 paint2:4,4,1,1,background canvas paint1:5,\nbackground canvas crate1l0 crate1u0 crate1z0 paint1:6,background canvas crate1d0 crate1l0 crate1z0 paint1:7,1,1,3,3,3,4,4,1,1,\n5,background canvas crate1u0 crate1z0 paint1:8,background canvas crate1d0 crate1z0 paint1:9,1,1,3,3,3,4,4,2,\nbackground canvas crate2l0 crate2u0 crate2z0 paint2:10,background canvas crate2d0 crate2l0 crate2z0 paint1 paint2:11,background canvas crate1r0 crate1u0 crate1z0 paint1:12,background canvas crate1d0 crate1r0 crate1z0 paint1:13,1,1,1,3,3,4,4,\n3,background canvas crate2r0 crate2u0 crate2z0 paint2:14,background canvas crate2d0 crate2r0 crate2z0 paint1 paint2:15,5,5,1,1,1,3,3,4,\n4,4,4,4,5,5,1,1,1,1,1,\n4,4,5,5,5,5,5,1,1,1,1,\n1,4,4,5,5,5,5,5,1,1,1,\n1,1,1,1,1,1,1,5,5,1,1,\n1,1,1,1,1,1,1,1,1,1,1,\n",33,"1627893815569.176"] ], [ - "Putting Bicycle Helmets on Young Children", - ["title Putting Bicycle Helmets on Young Children\nauthor increpare\nhomepage www.increpare.com\n\ncolor_palette 4\n\nverbose_logging\nagain_interval 0.1\n\nnoaction\n\nbackground_color #4a7aff\ntext_color Yellow\n========\nOBJECTS\n========\n\nBackground\nlightblue\n\nsilhouette\n#98cce3\n\nPlayer\nOrange Orange Orange Orange\n..000\n..110\n0.111\n.0333\n..000\n\nhair\nYellow \n\nfixedhair\nYellow lightred\n00000\n00000\n00000\n01010\n11111\n\nskin\nlightred\n\nboundary\n#062fa1\n\nhelmet\nblue\n\nhelmetbg\n#4a7aff\n\n\n\nstrapsource_l\nblack\n00000\n00000\n.000.\n.000.\n.000.\n\nstrapsource_r\nblack\n00000\n00000\n.000.\n.000.\n.000.\n\nstrap\nblack\n.....\n00000\n00000\n00000\n.....\n\n\nconnectedhairto_n\nwhite\n..0..\n.....\n.....\n.....\n.....\n\nconnectedhairto_s\nwhite\n.....\n.....\n.....\n.....\n..0..\n\nconnectedhairto_e\nwhite\n.....\n.....\n....0\n.....\n.....\n\nconnectedhairto_w\nwhite\n.....\n.....\n0....\n.....\n.....\n\nconnected\nred\n.....\n.....\n..0..\n.....\n.....\n\neye1\nwhite\n\neye2\nblue\n\nmouth \nred\n\n\n\nzipper_l\nblack orange\n00111\n00111\n10111\n01111\n00111\n\n\nzipper_r\nblack orange\n00111\n00111\n10111\n01111\n00111\n\n\nzipper_l_retract\nblack orange\n00111\n00111\n10111\n01111\n00111\n\n\nzipper_r_retract\nblack orange\n00111\n00111\n10111\n01111\n00111\n\n\nstrapstart\nblack\n00000\n00000\n00000\n.....\n.....\n\n=======\nLEGEND\n=======\n\n\nstrapsource = strapsource_l or strapsource_r\nconnectedtotoken = connectedhairto_n or connectedhairto_s or connectedhairto_e or connectedhairto_w\n\nconnectedhairto_horizontal = connectedhairto_e or connectedhairto_w\nconnectedhairto_vertical = connectedhairto_n or connectedhairto_s\n\npushing = player or hair or helmet or strapsource\npushable = hair or helmet or strapsource\nobstacle = hair or helmet or strapsource or boundary or skin\n\nhelmetpiece = helmet or strapsource\n\nzipper = zipper_l or zipper_r or zipper_l_retract or zipper_r_retract\n\n. = Background\n, = boundary\n# = skin \n; = hair\nf = fixedhair and hair\nP = Player\nh = helmet\nl = strapsource_l\nr = strapsource_r\n~ = silhouette\ne = eye1 and skin\ng = eye2 and skin\nm = mouth and skin\n% = helmetbg\n\n=======\nSOUNDS\n=======\n\nsfx0 74339307 (snap)\nsfx1 50788707 (unsnap)\nsfx2 3464107 (zip)\nsfx3 54163106 (unzip)\nsfx4 27135507 (flip)\nendlevel 99085705\n\n================\nCOLLISIONLAYERS\n================\nconnectedhairto_n\nconnectedhairto_s\nconnectedhairto_e\nconnectedhairto_w\nconnected\n\n\nBackground\nhelmetbg\nsilhouette\nstrapstart\nPlayer, hair, skin, boundary, strap, helmet,strapsource, zipper_l , zipper_r,zipper_l_retract ,zipper_r_retract\nfixedhair\neye1,eye2, mouth\n\n======\nRULES\n======\n\n [connectedtotoken]->[]\n [connected ] ->[]\n \n \nrandom left [ zipper_l_retract strapstart | ] -> [ no strap strapsource_l no strap | Player ] sfx1\nrandom left [ zipper_l_retract | strapstart | ] -> [ no strap | strapsource_l no strap | Player ] sfx1\nrandom left [ zipper_l_retract | strap ] -> [ | zipper_l_retract ] sfx3\n\nrandom right [ zipper_r_retract strapstart | ] -> [ no strap strapsource_r no strap | Player ] sfx1\nrandom right [ zipper_r_retract | strapstart | ] -> [ no strap | strapsource_r no strap | Player ] sfx1\nrandom right [ zipper_r_retract | strap ] -> [ | zipper_r_retract ] sfx3\n\nrandom right [ zipper_r | strapsource_r ] [skin no helmetbg ]-> [zipper_l_retract | strapsource_r] [skin no helmetbg ]\nrandom right [ zipper_r | strapsource_r | ] -> [ strap | strap strapstart | Player ] sfx0\nrandom right [ zipper_r | obstacle ] -> [zipper_l_retract | obstacle] sfx4\nrandom right [ zipper_r | no obstacle ] -> [ strap | zipper_r ] sfx2\n\nrandom left [ zipper_l | strapsource_l ] [skin no helmetbg ]-> [zipper_r_retract | strapsource_l] [skin no helmetbg ]\nrandom left [ zipper_l | strapsource_l | ] -> [ strap | strap strapstart | Player ] sfx0\nrandom left [ zipper_l | obstacle ] -> [zipper_r_retract |obstacle ] sfx4\nrandom left [ zipper_l | no obstacle ] -> [ strap | zipper_l ] sfx2\n\n[ > Player | strapsource_l ] -> [|strapstart zipper_r] \n[ > Player | strapsource_r ] -> [| strapstart zipper_l] \n\n(propagate movements)\n[ > pushing | pushable ] -> [ > pushing | > pushable ]\n+ [ moving helmetpiece ] [stationary helmetpiece ] -> [moving helmetpiece ] [ moving helmetpiece ]\n\n\n\n(backwards propagation)\n\n( [ obstacle | )\n\n[ > pushable | stationary obstacle ] -> cancel\n\n[ moving helmet] [ helmetbg] ->[ moving helmet ] [ moving helmetbg ]\n\nlate [ fixedhair | hair ] -> [ fixedhair | hair connected ]\nlate right [fixedhair | no hair ] -> [ fixedhair | connectedhairto_w ]\nlate left [fixedhair | no hair ] -> [ fixedhair | connectedhairto_e ]\nlate down [fixedhair | no hair ] -> [ fixedhair | connectedhairto_n ]\nlate up [fixedhair | no hair ] -> [ fixedhair | connectedhairto_s ]\n\n\nlate [ hair connected | hair ] -> [ hair connected | hair connected ]\n+ late right [hair connected | no hair ] -> [ hair connected | connectedhairto_w ]\n+ late left [hair connected | no hair ] -> [ hair connected | connectedhairto_e ]\n+ late down [hair connected | no hair ] -> [ hair connected | connectedhairto_n ]\n+ late up [hair connected | no hair ] -> [ hair connected | connectedhairto_s ]\n\n+ late horizontal [hair no connected | connectedhairto_vertical ] -> [ hair connected | connectedhairto_vertical]\n+ late vertical [hair no connected | connectedhairto_horizontal ] -> [ hair connected | connectedhairto_horizontal]\n\nlate [hair no connected ] -> cancel\nlate [ fixedhair no hair ] -> cancel\n\nlate [zipper]->again\n==============\nWINCONDITIONS\n==============\n\nall skin on helmetbg\nno strapsource\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 3: Cycling back from the barber's.\n\n,,,,,,,,,,,,,,,,,,,,,,,,\n,......................,\n,......................,\n,......hh%hhhh%hh......,\n,.....hhh%hhhh%hhh.....,\n,....hhh%%%%%%%%hhh....,\n,....hh%%%%%%%%%%hh....,\n,...hhh%%%%%%%%%%hhh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,....l............r....,\n,......................,\n,......................,\n,..............;.......,\n,.........;;;;;........,\n,........;fffff;.......,\n,........;ee#ee;.......,\n,.........eg#ge........,\n,.p.......#####........,\n,.........#mmm#........,\n,........~#####~.......,\n,.......~.~~~~~.~......,\n,.......~.~~~~~.~......,\n,,,,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Level 2 of 3: Cycling to the playground.\n\n,,,,,,,,,,,,,,,,,,,,,,,,\n,......................,\n,......................,\n,......hh%hhhh%hh......,\n,.....hhh%hhhh%hhh.....,\n,....hhh%%%%%%%%hhh....,\n,....hh%%%%%%%%%%hh....,\n,...hhh%%%%%%%%%%hhh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,....l............r....,\n,..........;;;;........,\n,.......;;;.;;;........,\n,.......;;;;;;;;;;.....,\n,.......;;;;;;;;;;.....,\n,......;;;fffff;;;.....,\n,.......;;ee#ee;;.;....,\n,........;eg#ge;.......,\n,.p.......#####........,\n,.........#mmm#........,\n,........~#####~.......,\n,.......~.~~~~~.~......,\n,.......~.~~~~~.~......,\n,,,,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Level 3 of 3: Time to cycle to the barber's again.\n\n,,,,,,,,,,,,,,,,,,,,,,,,\n,......................,\n,......................,\n,......hh%hhhh%hh......,\n,.....hhh%hhhh%hhh.....,\n,....hhh%%%%%%%%hhh....,\n,....hh%%%%%%%%%%hh....,\n,...hhh%%%%%%%%%%hhh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,....l............r....,\n,......;...;;;;;.......,\n,.......;.;;.;.........,\n,.......;.;;;;;.;.;....,\n,.....;;;;;;;;;;;;.....,\n,...;;;;;;fffff;;;;....,\n,..;.;..;;ee#ee;;..;...,\n,...;;;;;;eg#ge;.;;....,\n,.p..;.;..#####..;;....,\n,.....;.;.#mmm#.;;.;...,\n,.....;;.~#####~;.;....,\n,....;.;~.~~~~~.~.;....,\n,.......~.~~~~~.~......,\n,,,,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Congratulations: you have completed the cycle.\n\n", [0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 3, 3, 3, 3, 0, 3, 0, 0, 0, 0, 0, 1, 0, 3, 3, 3, 2, 3, 1, 0, 0, 3, 3, 3], "background boundary: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,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\nbackground helmet:2,2,2,2,2,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n2,2,2,2,2,2,2,background strapsource_l:3,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,2,2,2,2,background helmetbg:4,4,4,4,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,2,2,2,4,4,4,4,4,4,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,2,2,4,4,4,4,4,4,4,1,1,background silhouette:5,5,0,0,1,1,1,1,1,\n1,1,1,1,1,1,4,4,4,4,background connectedhairto_e helmetbg:6,6,4,4,4,1,5,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,2,2,4,background connectedhairto_s helmetbg:7,background connected hair helmetbg:8,background connected fixedhair hair helmetbg:9,background connectedhairto_n eye1 helmetbg skin:10,background eye1 helmetbg skin:11,background helmetbg skin:12,background skin:13,13,5,5,0,0,1,\n1,1,1,1,1,1,1,1,1,1,2,2,4,background connectedhairto_e connectedhairto_s helmetbg player:14,8,9,10,background eye2 helmetbg skin:15,12,background mouth skin:16,13,5,5,0,\n0,1,1,1,1,1,1,1,1,1,1,1,2,2,7,8,8,9,background connectedhairto_n helmetbg skin:17,12,12,16,13,5,\n5,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,4,background connectedhairto_s connectedhairto_w helmetbg:18,8,9,10,15,12,16,\n13,5,5,0,0,1,1,1,1,1,1,1,1,1,1,1,4,4,4,background connectedhairto_e connectedhairto_s helmetbg:19,8,9,background connectedhairto_e connectedhairto_n eye1 helmetbg skin:20,11,\n12,13,13,5,5,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,7,8,8,8,\n8,background connectedhairto_n helmetbg:21,4,1,5,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,2,background connectedhairto_w helmetbg:22,\n22,22,22,4,4,1,1,5,5,0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,\n2,2,2,4,4,4,4,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,2,2,2,2,2,2,2,background strapsource_r:23,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,\n", 1, "1627893829074.0923"] + "Putting Bicycle Helmets on Young Children", + ["title Putting Bicycle Helmets on Young Children\nauthor increpare\nhomepage www.increpare.com\n\ncolor_palette 4\n\nverbose_logging\nagain_interval 0.1\n\nnoaction\n\nbackground_color #4a7aff\ntext_color Yellow\n========\nOBJECTS\n========\n\nBackground\nlightblue\n\nsilhouette\n#98cce3\n\nPlayer\nOrange Orange Orange Orange\n..000\n..110\n0.111\n.0333\n..000\n\nhair\nYellow \n\nfixedhair\nYellow lightred\n00000\n00000\n00000\n01010\n11111\n\nskin\nlightred\n\nboundary\n#062fa1\n\nhelmet\nblue\n\nhelmetbg\n#4a7aff\n\n\n\nstrapsource_l\nblack\n00000\n00000\n.000.\n.000.\n.000.\n\nstrapsource_r\nblack\n00000\n00000\n.000.\n.000.\n.000.\n\nstrap\nblack\n.....\n00000\n00000\n00000\n.....\n\n\nconnectedhairto_n\nwhite\n..0..\n.....\n.....\n.....\n.....\n\nconnectedhairto_s\nwhite\n.....\n.....\n.....\n.....\n..0..\n\nconnectedhairto_e\nwhite\n.....\n.....\n....0\n.....\n.....\n\nconnectedhairto_w\nwhite\n.....\n.....\n0....\n.....\n.....\n\nconnected\nred\n.....\n.....\n..0..\n.....\n.....\n\neye1\nwhite\n\neye2\nblue\n\nmouth \nred\n\n\n\nzipper_l\nblack orange\n00111\n00111\n10111\n01111\n00111\n\n\nzipper_r\nblack orange\n00111\n00111\n10111\n01111\n00111\n\n\nzipper_l_retract\nblack orange\n00111\n00111\n10111\n01111\n00111\n\n\nzipper_r_retract\nblack orange\n00111\n00111\n10111\n01111\n00111\n\n\nstrapstart\nblack\n00000\n00000\n00000\n.....\n.....\n\n=======\nLEGEND\n=======\n\n\nstrapsource = strapsource_l or strapsource_r\nconnectedtotoken = connectedhairto_n or connectedhairto_s or connectedhairto_e or connectedhairto_w\n\nconnectedhairto_horizontal = connectedhairto_e or connectedhairto_w\nconnectedhairto_vertical = connectedhairto_n or connectedhairto_s\n\npushing = player or hair or helmet or strapsource\npushable = hair or helmet or strapsource\nobstacle = hair or helmet or strapsource or boundary or skin\n\nhelmetpiece = helmet or strapsource\n\nzipper = zipper_l or zipper_r or zipper_l_retract or zipper_r_retract\n\n. = Background\n, = boundary\n# = skin \n; = hair\nf = fixedhair and hair\nP = Player\nh = helmet\nl = strapsource_l\nr = strapsource_r\n~ = silhouette\ne = eye1 and skin\ng = eye2 and skin\nm = mouth and skin\n% = helmetbg\n\n=======\nSOUNDS\n=======\n\nsfx0 74339307 (snap)\nsfx1 50788707 (unsnap)\nsfx2 3464107 (zip)\nsfx3 54163106 (unzip)\nsfx4 27135507 (flip)\nendlevel 99085705\n\n================\nCOLLISIONLAYERS\n================\nconnectedhairto_n\nconnectedhairto_s\nconnectedhairto_e\nconnectedhairto_w\nconnected\n\n\nBackground\nhelmetbg\nsilhouette\nstrapstart\nPlayer, hair, skin, boundary, strap, helmet,strapsource, zipper_l , zipper_r,zipper_l_retract ,zipper_r_retract\nfixedhair\neye1,eye2, mouth\n\n======\nRULES\n======\n\n [connectedtotoken]->[]\n [connected ] ->[]\n \n \nrandom left [ zipper_l_retract strapstart | ] -> [ no strap strapsource_l no strap | Player ] sfx1\nrandom left [ zipper_l_retract | strapstart | ] -> [ no strap | strapsource_l no strap | Player ] sfx1\nrandom left [ zipper_l_retract | strap ] -> [ | zipper_l_retract ] sfx3\n\nrandom right [ zipper_r_retract strapstart | ] -> [ no strap strapsource_r no strap | Player ] sfx1\nrandom right [ zipper_r_retract | strapstart | ] -> [ no strap | strapsource_r no strap | Player ] sfx1\nrandom right [ zipper_r_retract | strap ] -> [ | zipper_r_retract ] sfx3\n\nrandom right [ zipper_r | strapsource_r ] [skin no helmetbg ]-> [zipper_l_retract | strapsource_r] [skin no helmetbg ]\nrandom right [ zipper_r | strapsource_r | ] -> [ strap | strap strapstart | Player ] sfx0\nrandom right [ zipper_r | obstacle ] -> [zipper_l_retract | obstacle] sfx4\nrandom right [ zipper_r | no obstacle ] -> [ strap | zipper_r ] sfx2\n\nrandom left [ zipper_l | strapsource_l ] [skin no helmetbg ]-> [zipper_r_retract | strapsource_l] [skin no helmetbg ]\nrandom left [ zipper_l | strapsource_l | ] -> [ strap | strap strapstart | Player ] sfx0\nrandom left [ zipper_l | obstacle ] -> [zipper_r_retract |obstacle ] sfx4\nrandom left [ zipper_l | no obstacle ] -> [ strap | zipper_l ] sfx2\n\n[ > Player | strapsource_l ] -> [|strapstart zipper_r] \n[ > Player | strapsource_r ] -> [| strapstart zipper_l] \n\n(propagate movements)\n[ > pushing | pushable ] -> [ > pushing | > pushable ]\n+ [ moving helmetpiece ] [stationary helmetpiece ] -> [moving helmetpiece ] [ moving helmetpiece ]\n\n\n\n(backwards propagation)\n\n( [ obstacle | )\n\n[ > pushable | stationary obstacle ] -> cancel\n\n[ moving helmet] [ helmetbg] ->[ moving helmet ] [ moving helmetbg ]\n\nlate [ fixedhair | hair ] -> [ fixedhair | hair connected ]\nlate right [fixedhair | no hair ] -> [ fixedhair | connectedhairto_w ]\nlate left [fixedhair | no hair ] -> [ fixedhair | connectedhairto_e ]\nlate down [fixedhair | no hair ] -> [ fixedhair | connectedhairto_n ]\nlate up [fixedhair | no hair ] -> [ fixedhair | connectedhairto_s ]\n\n\nlate [ hair connected | hair ] -> [ hair connected | hair connected ]\n+ late right [hair connected | no hair ] -> [ hair connected | connectedhairto_w ]\n+ late left [hair connected | no hair ] -> [ hair connected | connectedhairto_e ]\n+ late down [hair connected | no hair ] -> [ hair connected | connectedhairto_n ]\n+ late up [hair connected | no hair ] -> [ hair connected | connectedhairto_s ]\n\n+ late horizontal [hair no connected | connectedhairto_vertical ] -> [ hair connected | connectedhairto_vertical]\n+ late vertical [hair no connected | connectedhairto_horizontal ] -> [ hair connected | connectedhairto_horizontal]\n\nlate [hair no connected ] -> cancel\nlate [ fixedhair no hair ] -> cancel\n\nlate [zipper]->again\n==============\nWINCONDITIONS\n==============\n\nall skin on helmetbg\nno strapsource\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 3: Cycling back from the barber's.\n\n,,,,,,,,,,,,,,,,,,,,,,,,\n,......................,\n,......................,\n,......hh%hhhh%hh......,\n,.....hhh%hhhh%hhh.....,\n,....hhh%%%%%%%%hhh....,\n,....hh%%%%%%%%%%hh....,\n,...hhh%%%%%%%%%%hhh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,....l............r....,\n,......................,\n,......................,\n,..............;.......,\n,.........;;;;;........,\n,........;fffff;.......,\n,........;ee#ee;.......,\n,.........eg#ge........,\n,.p.......#####........,\n,.........#mmm#........,\n,........~#####~.......,\n,.......~.~~~~~.~......,\n,.......~.~~~~~.~......,\n,,,,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Level 2 of 3: Cycling to the playground.\n\n,,,,,,,,,,,,,,,,,,,,,,,,\n,......................,\n,......................,\n,......hh%hhhh%hh......,\n,.....hhh%hhhh%hhh.....,\n,....hhh%%%%%%%%hhh....,\n,....hh%%%%%%%%%%hh....,\n,...hhh%%%%%%%%%%hhh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,....l............r....,\n,..........;;;;........,\n,.......;;;.;;;........,\n,.......;;;;;;;;;;.....,\n,.......;;;;;;;;;;.....,\n,......;;;fffff;;;.....,\n,.......;;ee#ee;;.;....,\n,........;eg#ge;.......,\n,.p.......#####........,\n,.........#mmm#........,\n,........~#####~.......,\n,.......~.~~~~~.~......,\n,.......~.~~~~~.~......,\n,,,,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Level 3 of 3: Time to cycle to the barber's again.\n\n,,,,,,,,,,,,,,,,,,,,,,,,\n,......................,\n,......................,\n,......hh%hhhh%hh......,\n,.....hhh%hhhh%hhh.....,\n,....hhh%%%%%%%%hhh....,\n,....hh%%%%%%%%%%hh....,\n,...hhh%%%%%%%%%%hhh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,...hh%%%%%%%%%%%%hh...,\n,....l............r....,\n,......;...;;;;;.......,\n,.......;.;;.;.........,\n,.......;.;;;;;.;.;....,\n,.....;;;;;;;;;;;;.....,\n,...;;;;;;fffff;;;;....,\n,..;.;..;;ee#ee;;..;...,\n,...;;;;;;eg#ge;.;;....,\n,.p..;.;..#####..;;....,\n,.....;.;.#mmm#.;;.;...,\n,.....;;.~#####~;.;....,\n,....;.;~.~~~~~.~.;....,\n,.......~.~~~~~.~......,\n,,,,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Congratulations: you have completed the cycle.\n\n",[0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,3,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,3,3,2,2,3,3,3,3,0,3,0,0,0,0,0,1,0,3,3,3,2,3,1,0,0,3,3,3],"background boundary: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,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\nbackground helmet:2,2,2,2,2,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n2,2,2,2,2,2,2,background strapsource_l:3,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,2,2,2,2,background helmetbg:4,4,4,4,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,2,2,2,4,4,4,4,4,4,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,2,2,4,4,4,4,4,4,4,1,1,background silhouette:5,5,0,0,1,1,1,1,1,\n1,1,1,1,1,1,4,4,4,4,background connectedhairto_e helmetbg:6,6,4,4,4,1,5,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,2,2,4,background connectedhairto_s helmetbg:7,background connected hair helmetbg:8,background connected fixedhair hair helmetbg:9,background connectedhairto_n eye1 helmetbg skin:10,background eye1 helmetbg skin:11,background helmetbg skin:12,background skin:13,13,5,5,0,0,1,\n1,1,1,1,1,1,1,1,1,1,2,2,4,background connectedhairto_e connectedhairto_s helmetbg player:14,8,9,10,background eye2 helmetbg skin:15,12,background mouth skin:16,13,5,5,0,\n0,1,1,1,1,1,1,1,1,1,1,1,2,2,7,8,8,9,background connectedhairto_n helmetbg skin:17,12,12,16,13,5,\n5,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,4,background connectedhairto_s connectedhairto_w helmetbg:18,8,9,10,15,12,16,\n13,5,5,0,0,1,1,1,1,1,1,1,1,1,1,1,4,4,4,background connectedhairto_e connectedhairto_s helmetbg:19,8,9,background connectedhairto_e connectedhairto_n eye1 helmetbg skin:20,11,\n12,13,13,5,5,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,7,8,8,8,\n8,background connectedhairto_n helmetbg:21,4,1,5,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,2,background connectedhairto_w helmetbg:22,\n22,22,22,4,4,1,1,5,5,0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,\n2,2,2,4,4,4,4,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,1,2,2,2,2,2,2,2,background strapsource_r:23,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,\n",1,"1627893829074.0923"] ], [ - "No! Don't eat that!", - ["title No! Don't eat that!\nauthor increpare\nhomepage www.increpare.com\nbackground_color #879fcf\n\nagain_interval 0.1\n\ntext_color #45283c\n\ncolor_palette 2\n\nnoaction\n( verbose_logging )\n\ndebug\nverbose_logging\n========\nOBJECTS\n========\n\nBackground\nblue\n\nTarget\ntransparent\n.....\n.000.\n.0.0.\n.000.\n.....\n\nPlayer\ntransparent\n\nCrate1 \n#c45509\n\n\nCrate2 \n#409437 \n\nbody1\n#31491a\n\nbody2\n#eec39a\n\nmaneye\n#eec39a #ffffff brown pink\n00000\n11111\n11121\n01113\n00000\n\nmannostrils\n#eec39a darkbrown\n00000\n00000\n00000\n11100\n00000\n\nmanmouth\n#eec39a red\n00000\n00000\n00011\n11111\n11111\n\nwall1 !\n#4b692f\n\nwall2 \"\n#eec39a\n\nwall3 £\n#ffffff\n\nwall4 $\n#d77bba\n\nwall5 %\n#d77bba #ffffff blue\n00000\n01220\n11221\n01110\n00000\n\n\neyeclose\n#d77bba black\n00000\n00000\n11111\n00000\n00000\n\nwall6 ;\n#d77bba #000000\n00000\n00000\n00000\n00000\n01010\n\n\nwall7 &\n#ac3232\n\n\nlevelbg -\n#45283c\n\n\n\n\nslideright\nred\n..0..\n..0..\n.....\n.....\n.....\n\nslidedown\nyellow\n.....\n.....\n.....\n..0..\n..0..\n\nslideleft\nwhite\n.....\n.....\n00...\n.....\n.....\n\nslideup\n#0000ff\n.....\n.....\n...00\n.....\n.....\n\n\n\n\n\n=======\nLEGEND\n=======\n\nwall = wall1 or wall2 or wall3 or wall4 or wall5 or wall6 or wall7\n\n1 = crate1 and levelbg\n2 = crate2 and levelbg\ncrate = crate1 or crate2\nslidetag = slideleft or slideup or slideright or slidedown\n. = levelbg\n# = wall4\nP = Player and Background\n* = Crate1 and levelbg\n@ = Crate1 and Target and levelbg\nO = Target \nobs = wall or crate\n, = Background\n3 = body1\n4 = body2\n5 = body1 and wall1\n6 = mannostrils\n7 = maneye\n8 = manmouth\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx0 60551707 (item destroyed)\n\n================\nCOLLISIONLAYERS\n================\n\nslidetag\n\nBackground\nlevelbg\nTarget\nPlayer\nbody1, body2, maneye, mannostrils, manmouth\nWall, Crate\neyeclose\n\n======\nRULES\n======\n\n(FRAME 1 STUFF)\n\n[ moving player ] [ slidetag ] -> [ moving player ] [] \n\n[ moving player ] [ wall ] -> [ moving player ] [ moving wall ] again\n[ > wall | stationary crate ] -> [ > wall | > crate ]\n\n[ moving crate1 | stationary crate1 ] -> [ moving crate1 | moving crate1 ]\n+ [moving crate2 | stationary crate2 ] -> [ moving crate2 | moving crate2 ]\n+ [ > crate1 | stationary crate2 ] -> [ > crate1 | > crate2 ]\n+ [ > crate2 | stationary crate1 ] -> [ > crate2 | > crate1 ]\n\nup [ > obs | ] -> [ > obs | slideup ]\ndown [ > obs | ] -> [ > obs | slidedown ]\nleft [ > obs | ] -> [ > obs | slideleft ]\nright [ > obs | ] -> [ > obs | slideright ]\n\n(FRAME 2+ STUFF)\n[ stationary player ] [ wall slideup ] -> [ stationary player ] [ down wall ] again\n[ stationary player ] [ wall slidedown ] -> [ stationary player ] [ up wall ] again\n[ stationary player ] [ wall slideleft ] -> [ stationary player ] [ right wall ] again\n[ stationary player ] [ wall slideright ] -> [ stationary player ] [ left wall ] again\n\n\n(prepropagation here - could be that during frame 2, crates get yanked back into palce)\n\n[ stationary player ] [ > wall | stationary crate ] ->[ stationary player ] [ > wall | > crate no slidetag]\n+ [ stationary player ] [ moving crate1 | stationary crate1 ] -> [ stationary player ] [ moving crate1 no slidetag | moving crate1 no slidetag]\n+ [ stationary player ] [ moving crate2 | stationary crate2 ] -> [ stationary player ] [ moving crate2 no slidetag | moving crate2 no slidetag]\n+ [ > crate1 | stationary crate2 ] -> [ > crate1 | > crate2 no slidetag]\n+ [ > crate2 | stationary crate1 ] -> [ > crate2 | > crate1 no slidetag]\n\n\n[eyeclose]->[]\n[stationary player] [slidetag] [ > wall5| ] -> [stationary player] [slidetag] [ > wall5| eyeclose ]\n\n[ stationary player ] [ crate slideup ] -> [ stationary player ] [ up crate up slideup ] again\n[ stationary player ] [ crate slidedown ] -> [ stationary player ] [ down crate down slidedown ] again\n[ stationary player ] [ crate slideleft ] -> [ stationary player ] [ left crate left slideleft ] again\n[ stationary player ] [ crate slideright ] -> [ stationary player ] [ right crate right slideright ] again\n\n[ > crate | | < wall ] -> [ crate no slidetag | | < wall ]\n[ > wall | crate ] -> [ > wall | > crate ]\n\n[ > crate | no obs | < crate ] [ > wall ] -> [ > crate | | stationary crate ] [ > wall ]\n\n[ > crate1 | stationary obs ] -> [ stationary crate1 no slidetag | stationary obs ]\n+[ > crate2 | stationary obs ] -> [ stationary crate2 no slidetag | stationary obs ]\n+[ moving crate1 | stationary crate1 ] -> [ stationary crate1 no slidetag | stationary crate1 no slidetag]\n+[ moving crate2 | stationary crate2 ] -> [ stationary crate2 no slidetag | stationary crate2 no slidetag]\n\n[moving wall4] [levelbg] -> [ moving wall4] [ moving levelbg]\n\n [target > crate] -> [target] sfx0\n \n==============\nWINCONDITIONS\n==============\n\nno crate\n\n=======\nLEVELS\n=======\n\n(BUGS)\n\n\nmessage Level 1 of 8 : No! Don't eat two snails!\n\n\n(v. simple but cute maybe? but open to trial + error solutions. ok for first level?)\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,444474,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,,\n,4444446,,$$$$$$%;,,,o\n,444448,,,$-----$&&,,o\n,444444,,,$-------,,,o\n,,4444,,,,$-------,,,o\n,,3333,,,,$22--1--,,,o\n,333333,,,$----1$&&,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n\nmessage Level 2 of 8 : Don't eat two boomerangs!\n\n(ok! beautiful baby!)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,o$$$oo,,,,,,,,,,,o\n,444444,,,o$-$%ooo,,,,,,,,,o\n,444474,,,o$-1$$;,,,,,,,,,,o\n,4444444,,o$-11$&&,,,,,,,,,o\n,4444446,,o$$----,,,,,,,,,,o\n,444448,,,oo$$---,,,,,,,,,,o\n,444444,,,oo$----,,,,,,,,,,o\n,,4444,,,,o$$---&&,,,,,,,,,o\n,,3333,,,,o$---2$,,,,,,,,,,o\n,333333,,,o$--22$,,,,,,,,,,o\n,333333,,,,$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Level 3 of 8 : No! Don't eat the soap dispenser!\n(easy and funish)\n,,,,,,,,,,,,,,,,,,,,,,,,,,p,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$11---$;,,,,,,,,,o\n,444474,,,$-1---$,,,,,,,,,,o\n,4444444,,$22--$&&,,,,,,,,,o\n,4444446,,$22----,,,,,,,,,,o\n,444448,,,$--$---,,,,,,,,,,o\n,444444,,,$------,,,,,,,,,,o\n,,4444,,,,$-----&&,,,,,,,,,o\n,,3333,,,,$-----$,,,,,,,,,,o\n,333333,,,$-----$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Level 4 of 8 : No! Don't eat the unripe acorn!\n(cute)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,p,,\n,,4444,,,,,,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,,,,,,\n,444474,,,,,,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,%,,,,,\n,4444446,,$$$$$$$$$$$$;,,,o\n,444448,,,$----------$&,,,o\n,444444,,,$-----------,,,,o\n,,4444,,,,$-----------,,,,o\n,,3333,,,,$----21-----,,,,o\n,333333,,,$----11$$--$&,,,o\n,333333,,,$$$$$$$$$$$$,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,\n,333333,,,$$$$$,,,,,,,,,,,,\n,333333,,,$$$$$,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n\n\n\nmessage Level 5 of 8 : No! Don't eat the sock!\n(Easyish/okish)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,p,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$---$-$;,,,,,,,,,o\n,444474,,,$--2$-$,,,,,,,,,,o\n,4444444,,$--221&&,,,,,,,,,o\n,4444446,,$-$----,,,,,,,,,,o\n,444448,,,$------,,,,,,,,,,o\n,444444,,,$$--$--,,,,,,,,,,o\n,,4444,,,,,$$$--&&,,,,,,,,,o\n,,3333,,,,,$$$$-$,,,,,,,,,,o\n,333333,,,,$$,$$$,,,,,,,,,,o\n,333333,,,,$$,,,,,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n\n\nmessage Level 6 of 8 : No! Don't eat the caterpillar!\n\n(absolutely ok early-intermediate)\n,,,,,,,,,,,,,,,,,,,,,,,,,p,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$$$$$$%,,,,,o\n,444444,,,$------1$--$;,,,,o\n,444474,,,$-$----$---$,,,,,o\n,4444444,,$----$---$-&&,,,,o\n,4444446,,$-$---------,,,,,o\n,444448,,,$-$------$--,,,,,o\n,444444,,,$-------$22-,,,,,o\n,,4444,,,,$------$22-&&,,,,o\n,,3333,,,,$----------$,,,,,o\n,333333,,,$----------$,,,,,o\n,333333,,,$$$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\nmessage Level 7 of 8 : No! Don't eat the caterpillar!\n\n\n(intermediate/actually ok!)\n,,,,,,,,,,,,,,,,,,,,,,,,p,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$$$$$$%,,,,,o\n,444444,,,$--$--$----$;,,,,o\n,444447,,,$----2222--$,,,,,o\n,4444444,,$----------&&,,,,o\n,4444446,,$---$-------,,,,,o\n,444448,,,$--------$--,,,,,o\n,444444,,,$-----------,,,,,o\n,,4444,,,,$$$$--$----&&,,,,o\n,,3333,,,,,,$----$-1-$,,,,,o\n,333333,,,,,$------11$,,,,,o\n,333333,,,,,$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n\nmessage Level 8 of 8 : No! Don't eat the kitchen sink!\n(pretty decent intermediate)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,p,\n,,4444,,,,$$$$$$$$$%,,,,,,,o\n,444444,,,$----$---$$$;,,,,o\n,444474,,,$--------$-$,,,,,o\n,4444444,,$----$-----&&,,,,o\n,4444446,,$-----------,,,,,o\n,444448,,,$-$---22----,,,,,o\n,444444,,,$------2----,,,,,o\n,,4444,,,,$----111-$-&&,,,,o\n,,3333,,,,$$----1$-$-$,,,,,o\n,333333,,,,$---------$,,,,,o\n,333333,,,,$$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(following line courtesy of SFTRABBIT)\nmessage They are for me to eat! \n\n\n\n\n\n\n\n\n\n\n(\n\nmessage Level 2 of 10\nmessage No! Don't eat that!\n(actually ok)\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,,\n,4444444,,$$$$$$%;,,,o\n,444444,,,$-2---&&,,,o\n,444444,,,$-$----,,,,o\n,,4444,,,,$--$---,,,,o\n,,3333,,,,$---$--,,,,o\n,333333,,,$1----&&,,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,,\n,4444444,,$$$$$$%;,,,o\n,444444,,,$-----$&&,,o\n,444444,,,$--$---,,,,o\n,,4444,,,,$--2$--,,,,o\n,,3333,,,,$1-----,,,,o\n,333333,,,$$----$&&,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n(ok-ish)\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,p,,,,,,\n,,4444,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,,\n,4444444,,$$$$$$%;,,,o\n,444444,,,$-$--$$&&,,o\n,444444,,,$-$--1-,,,,o\n,,4444,,,,$222-1-,,,,o\n,,3333,,,,$------,,,,o\n,333333,,,$-----$&&,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n\n(Ah p.trivial actually)\n(ok)\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,,$$$$$%,,,,,\n,444444,,,$---22$;,,,,\n,444444,,,$----$$,,,,o\n,4444444,,$---11&&,,,o\n,4444444,,$-$--1,,,,,o\n,444444,,,$----1,,,,,o\n,444444,,,$-----,,,,,o\n,,4444,,,,$-----&&,,,o\n,,3333,,,,$-----$,,,,o\n,333333,,,$-----$,,,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n\n\n\n(not too easy but meh)\n(too easy)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,,,,,,,,,,,,,,,p,,\n,444444,,,,,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,%,,,,,\n,4444444,,$$$$$$$$$$$$;,,,,\n,444444,,,$---$2222--$&,,,o\n,444444,,,$-----------,,,,o\n,,4444,,,,$--$--$-----,,,,o\n,,3333,,,,$-----------,,,,o\n,333333,,,$--------11$&,,,o\n,333333,,,$$$$$$$$$$$$,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,\n,333333,,,$$$$$,,,,,,,,,,,,\n,333333,,,$$$$$,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n\n\n\n(same idea basically)\n( ,,,,,,,,,,,,,,,,,,,,,,,,,,,, )\n( ,,,,,,,,,,,,,,,,,,,,,,,p,,,, )\n( ,,4444,,,,$$$$$$%,,,,,,,,,,o )\n( ,444444,,,$....#$;,,,,,,,,,o )\n( ,444444,,,$1....$,,,,,,,,,,o )\n( ,4444444,,$1.#..&&,,,,,,,,,o )\n( ,4444444,,$##...-,,,,,,,,,,o )\n( ,444444,,,$.##2.-,,,,,,,,,,o )\n( ,444444,,,$.#222-,,,,,,,,,,o )\n( ,,4444,,,,$.....&&,,,,,,,,,o )\n( ,,3333,,,,$..#..$,,,,,,,,,,o )\n( ,333333,,,$#..#.$,,,,,,,,,,o )\n( ,333333,,,$$$$$$$,,,,,,,,,,o )\n( ,333333,,,,$$$,,,,,,,,,,,,,o )\n( ,333333,,,$$$$$,,,,,,,,,,,,o )\n( ,333333,,,$$$$$,,,,,,,,,,,,, )\n( ,333333,,$$$\"$$$,,,,,,,,,,,, )\n( ,333333,,$$\"$$$$,,,,,,,,,,,, )\n( ,333355!!!!\"\"\"\"$,,,,,,,,,,,, )\n( ,333355!!!!\"\"\"\"$,,,$,,,,,,,, )\n( ,333355!!!!\"\"\"\"£$$$$,,,,,,,, )\n( ,333333,,,£££££$$$$$,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n\n\n(too linear)\n( ,,,,,,,,,,,,,,,,,,,,,,,p,,,, )\n( ,,,,,,,,,,,,,,,,,,,,,,,,,,,, )\n( ,,4444,,,,$$$$$$%,,,,,,,,,,o )\n( ,444444,,,$#....$;,,,,,,,,,o )\n( ,444444,,,$.#...$,,,,,,,,,,o )\n( ,4444444,,$.#..2&&,,,,,,,,,o )\n( ,4444444,,$#..22-,,,,,,,,,,o )\n( ,444444,,,$###.1-,,,,,,,,,,o )\n( ,444444,,,$....#-,,,,,,,,,,o )\n( ,,4444,,,,$...#.&&,,,,,,,,,o )\n( ,,3333,,,,$.....$,,,,,,,,,,o )\n( ,333333,,,$.#...$,,,,,,,,,,o )\n( ,333333,,,$$$$$$$,,,,,,,,,,o )\n( ,333333,,,,$$$,,,,,,,,,,,,,o )\n( ,333333,,,$$$$$,,,,,,,,,,,,o )\n( ,333333,,,$$$$$,,,,,,,,,,,,, )\n( ,333333,,$$$\"$$$,,,,,,,,,,,, )\n( ,333333,,$$\"$$$$,,,,,,,,,,,, )\n( ,333355!!!!\"\"\"\"$,,,,,,,,,,,, )\n( ,333355!!!!\"\"\"\"$,,,$,,,,,,,, )\n( ,333355!!!!\"\"\"\"£$$$$,,,,,,,, )\n( ,333333,,,£££££$$$$$,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n\n\n(very easy)\n,,,,,,,,,,,,,,,,,,,,,,,p,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$.2.#.$;,,,,,,,,,o\n,444444,,,$...##$,,,,,,,,,,o\n,4444444,,$..#.#&&,,,,,,,,,o\n,4444444,,$..#..-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,444444,,,$11...-,,,,,,,,,,o\n,,4444,,,,$11...&&,,,,,,,,,o\n,,3333,,,,$#..##$,,,,,,,,,,o\n,333333,,,$...#.$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n(medium actually maybe slightly ok)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,$$$$%,,,,,,,,,,,,o\n,444444,,,$---$;,,,,,,,,,,,o\n,444444,,,$$--$,,,,,,,,,,,,o\n,4444444,,$----$&&,,,,,,,,,o\n,4444444,,$.#...-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,,4444,,,,$....2&&,,,,,,,,,o\n,,3333,,,,$#11.##,,,,,,,,,,o\n,333333,,,,##1.#,,,,,,,,,,,o\n,333333,,,,,$$$$,,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(super tricky somehow but also trivial)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,p,,,\n,,4444,,,,,,$$$$%,,,,,,,,,,o\n,444444,,,,,$--$$;,,,,,,,,,o\n,444444,,,,,$1-2$,,,,,,,,,,o\n,4444444,,,,$1-2&&,,,,,,,,,o\n,4444444,,,,$112-,,,,,,,,,,o\n,444444,,,,,$$$--,,,,,,,,,,o\n,444444,,,,,,$---,,,,,,,,,,o\n,,4444,,,,,,,$--&&,,,,,,,,,o\n,,3333,,,,,,,$--$,,,,,,,,,,o\n,333333,,,,,,$--$,,,,,,,,,,o\n,333333,,,,,$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(Easyish)\n,,,,,,,,,,,,,,,,,,,,,,,p,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,,,,,$$%,,,,,,,,,,o\n,444444,,,,,,,$-$;,,,,,,,,,o\n,444444,,,,,,$$-$,,,,,,,,,,o\n,4444444,,,,,$--&&,,,,,,,,,o\n,4444444,,,,,$---,,,,,,,,,,o\n,444444,,,,,,$$1-,,,,,,,,,,o\n,444444,,,,$$$11-,,,,,,,,,,o\n,,4444,,,,$$----&&,,,,,,,,,o\n,,3333,,,,$----2$,,,,,,,,,,o\n,333333,,,$-$-$2$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n\n\n\n\n\n\n\n\n(ok/intermediatetricky)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,p,,,,\n,,4444,,,,$$$$$$$$$$$%,,,,,o\n,444444,,,$-----$----$;,,,,o\n,444444,,,$--------1-$,,,,,o\n,4444444,,$--$---1112&&,,,,o\n,4444444,,$------$----,,,,,o\n,444444,,,$-----$$----,,,,,o\n,444444,,,$-------$---,,,,,o\n,,4444,,,,$-----$----&&,,,,o\n,,3333,,,,$$---------$,,,,,o\n,333333,,,,$$--------$,,,,,o\n,333333,,,,,$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n(easy / okish?)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,p\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$111..$;,,,,,,,,,o\n,444444,,,$.1...$,,,,,,,,,,o\n,4444444,,$.....&&,,,,,,,,,o\n,4444444,,$.....-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,,4444,,,,$#....&&,,,,,,,,,o\n,,3333,,,,$....2$,,,,,,,,,,o\n,333333,,,$...#2$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(easy but maybe ok?)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,p\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$...11$;,,,,,,,,,o\n,444444,,,$....1$,,,,,,,,,,o\n,4444444,,$.....&&,,,,,,,,,o\n,4444444,,$.....-,,,,,,,,,,o\n,444444,,,$...#.-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,,4444,,,,$.....&&,,,,,,,,,o\n,,3333,,,,$..2..$,,,,,,,,,,o\n,333333,,,$.#2..$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(wtf is going on? hard to find the point to break out of the loop - maybe later on in game?)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,p\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$-----$$$,,,,,,,,o\n,444444,,,$-----$$;,,,,,,,,o\n,4444444,,$-----&&,,,,,,,,,o\n,4444444,,$------,,,,,,,,,,o\n,444444,,,$--1---,,,,,,,,,,o\n,444444,,$$$111--,,,,,,,,,,o\n,,4444,,,$---1--&&,,,,,,,,,o\n,,3333,,$$$$----$,,,,,,,,,,o\n,333333,$------2$,,,,,,,,,,o\n,333333,$$$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n(NO NO NONO NO NO NO NO. I had a ridiculously bad time and the solution was pretty trivial AND boring I just didn't see it like an idiot)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,p\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$$$$$$%,,,,,o\n,444444,,,$.....2222.$;,,,,o\n,444444,,,$.......2..$,,,,,o\n,4444444,,$......#...&&,,,,o\n,4444444,,$..........-,,,,,o\n,444444,,,$..........-,,,,,o\n,444444,,,$#11.......-,,,,,o\n,,4444,,,,$111.......&&,,,,o\n,,3333,,,,$.......#..$,,,,,o\n,333333,,,$..........$,,,,,o\n,333333,,,$$$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n)\n\n", [2, 0, 1, 3, 0, 2, 1, "restart", 0, 2, 1, 2, 0, 1, 3, 2, 1], "background: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,background body2:1,1,1,1,1,1,0,0,background body1:2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,\n1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,\n1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,1,\n1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,1,background maneye:3,\n1,1,1,1,1,2,2,2,2,2,2,2,2,background body1 wall1:4,4,4,2,2,2,2,2,0,0,0,1,1,1,\n1,background manmouth:5,1,0,0,2,2,2,2,2,2,2,4,4,4,2,2,2,2,2,0,0,0,0,0,1,background mannostrils:6,\n0,0,0,0,0,0,0,0,0,0,0,background wall1:7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,background wall4:8,8,7,7,7,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,\n8,8,8,0,8,8,8,8,7,7,7,background wall3:9,0,0,0,0,0,0,0,0,0,0,8,background levelbg:10,10,10,background crate2 levelbg:11,\n10,8,8,8,8,8,background wall2:12,12,12,12,9,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,\n8,8,8,8,12,8,12,12,12,9,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,8,\n8,8,8,8,8,12,12,12,9,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,8,0,\n8,8,8,8,12,12,12,9,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,8,0,0,\n0,8,8,8,8,9,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,8,0,0,0,\n0,0,0,0,8,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,8,8,0,0,0,0,\n0,0,0,8,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,8,8,0,0,0,0,0,\n0,0,8,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,background crate1 levelbg:13,8,0,0,0,0,0,0,\n8,8,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,13,13,8,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,background wall5:14,8,8,10,10,10,8,8,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,background player:15,0,0,0,background wall6:16,background wall7:17,0,0,0,17,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,\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,\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,\n0,0,0,0,0,0,0,background target:18,18,18,18,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 7, "1627893851172.3552"] + "No! Don't eat that!", + ["title No! Don't eat that!\nauthor increpare\nhomepage www.increpare.com\nbackground_color #879fcf\n\nagain_interval 0.1\n\ntext_color #45283c\n\ncolor_palette 2\n\nnoaction\n( verbose_logging )\n\ndebug\nverbose_logging\n========\nOBJECTS\n========\n\nBackground\nblue\n\nTarget\ntransparent\n.....\n.000.\n.0.0.\n.000.\n.....\n\nPlayer\ntransparent\n\nCrate1 \n#c45509\n\n\nCrate2 \n#409437 \n\nbody1\n#31491a\n\nbody2\n#eec39a\n\nmaneye\n#eec39a #ffffff brown pink\n00000\n11111\n11121\n01113\n00000\n\nmannostrils\n#eec39a darkbrown\n00000\n00000\n00000\n11100\n00000\n\nmanmouth\n#eec39a red\n00000\n00000\n00011\n11111\n11111\n\nwall1 !\n#4b692f\n\nwall2 \"\n#eec39a\n\nwall3 £\n#ffffff\n\nwall4 $\n#d77bba\n\nwall5 %\n#d77bba #ffffff blue\n00000\n01220\n11221\n01110\n00000\n\n\neyeclose\n#d77bba black\n00000\n00000\n11111\n00000\n00000\n\nwall6 ;\n#d77bba #000000\n00000\n00000\n00000\n00000\n01010\n\n\nwall7 &\n#ac3232\n\n\nlevelbg -\n#45283c\n\n\n\n\nslideright\nred\n..0..\n..0..\n.....\n.....\n.....\n\nslidedown\nyellow\n.....\n.....\n.....\n..0..\n..0..\n\nslideleft\nwhite\n.....\n.....\n00...\n.....\n.....\n\nslideup\n#0000ff\n.....\n.....\n...00\n.....\n.....\n\n\n\n\n\n=======\nLEGEND\n=======\n\nwall = wall1 or wall2 or wall3 or wall4 or wall5 or wall6 or wall7\n\n1 = crate1 and levelbg\n2 = crate2 and levelbg\ncrate = crate1 or crate2\nslidetag = slideleft or slideup or slideright or slidedown\n. = levelbg\n# = wall4\nP = Player and Background\n* = Crate1 and levelbg\n@ = Crate1 and Target and levelbg\nO = Target \nobs = wall or crate\n, = Background\n3 = body1\n4 = body2\n5 = body1 and wall1\n6 = mannostrils\n7 = maneye\n8 = manmouth\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx0 60551707 (item destroyed)\n\n================\nCOLLISIONLAYERS\n================\n\nslidetag\n\nBackground\nlevelbg\nTarget\nPlayer\nbody1, body2, maneye, mannostrils, manmouth\nWall, Crate\neyeclose\n\n======\nRULES\n======\n\n(FRAME 1 STUFF)\n\n[ moving player ] [ slidetag ] -> [ moving player ] [] \n\n[ moving player ] [ wall ] -> [ moving player ] [ moving wall ] again\n[ > wall | stationary crate ] -> [ > wall | > crate ]\n\n[ moving crate1 | stationary crate1 ] -> [ moving crate1 | moving crate1 ]\n+ [moving crate2 | stationary crate2 ] -> [ moving crate2 | moving crate2 ]\n+ [ > crate1 | stationary crate2 ] -> [ > crate1 | > crate2 ]\n+ [ > crate2 | stationary crate1 ] -> [ > crate2 | > crate1 ]\n\nup [ > obs | ] -> [ > obs | slideup ]\ndown [ > obs | ] -> [ > obs | slidedown ]\nleft [ > obs | ] -> [ > obs | slideleft ]\nright [ > obs | ] -> [ > obs | slideright ]\n\n(FRAME 2+ STUFF)\n[ stationary player ] [ wall slideup ] -> [ stationary player ] [ down wall ] again\n[ stationary player ] [ wall slidedown ] -> [ stationary player ] [ up wall ] again\n[ stationary player ] [ wall slideleft ] -> [ stationary player ] [ right wall ] again\n[ stationary player ] [ wall slideright ] -> [ stationary player ] [ left wall ] again\n\n\n(prepropagation here - could be that during frame 2, crates get yanked back into palce)\n\n[ stationary player ] [ > wall | stationary crate ] ->[ stationary player ] [ > wall | > crate no slidetag]\n+ [ stationary player ] [ moving crate1 | stationary crate1 ] -> [ stationary player ] [ moving crate1 no slidetag | moving crate1 no slidetag]\n+ [ stationary player ] [ moving crate2 | stationary crate2 ] -> [ stationary player ] [ moving crate2 no slidetag | moving crate2 no slidetag]\n+ [ > crate1 | stationary crate2 ] -> [ > crate1 | > crate2 no slidetag]\n+ [ > crate2 | stationary crate1 ] -> [ > crate2 | > crate1 no slidetag]\n\n\n[eyeclose]->[]\n[stationary player] [slidetag] [ > wall5| ] -> [stationary player] [slidetag] [ > wall5| eyeclose ]\n\n[ stationary player ] [ crate slideup ] -> [ stationary player ] [ up crate up slideup ] again\n[ stationary player ] [ crate slidedown ] -> [ stationary player ] [ down crate down slidedown ] again\n[ stationary player ] [ crate slideleft ] -> [ stationary player ] [ left crate left slideleft ] again\n[ stationary player ] [ crate slideright ] -> [ stationary player ] [ right crate right slideright ] again\n\n[ > crate | | < wall ] -> [ crate no slidetag | | < wall ]\n[ > wall | crate ] -> [ > wall | > crate ]\n\n[ > crate | no obs | < crate ] [ > wall ] -> [ > crate | | stationary crate ] [ > wall ]\n\n[ > crate1 | stationary obs ] -> [ stationary crate1 no slidetag | stationary obs ]\n+[ > crate2 | stationary obs ] -> [ stationary crate2 no slidetag | stationary obs ]\n+[ moving crate1 | stationary crate1 ] -> [ stationary crate1 no slidetag | stationary crate1 no slidetag]\n+[ moving crate2 | stationary crate2 ] -> [ stationary crate2 no slidetag | stationary crate2 no slidetag]\n\n[moving wall4] [levelbg] -> [ moving wall4] [ moving levelbg]\n\n [target > crate] -> [target] sfx0\n \n==============\nWINCONDITIONS\n==============\n\nno crate\n\n=======\nLEVELS\n=======\n\n(BUGS)\n\n\nmessage Level 1 of 8 : No! Don't eat two snails!\n\n\n(v. simple but cute maybe? but open to trial + error solutions. ok for first level?)\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,444474,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,,\n,4444446,,$$$$$$%;,,,o\n,444448,,,$-----$&&,,o\n,444444,,,$-------,,,o\n,,4444,,,,$-------,,,o\n,,3333,,,,$22--1--,,,o\n,333333,,,$----1$&&,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n\nmessage Level 2 of 8 : Don't eat two boomerangs!\n\n(ok! beautiful baby!)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,o$$$oo,,,,,,,,,,,o\n,444444,,,o$-$%ooo,,,,,,,,,o\n,444474,,,o$-1$$;,,,,,,,,,,o\n,4444444,,o$-11$&&,,,,,,,,,o\n,4444446,,o$$----,,,,,,,,,,o\n,444448,,,oo$$---,,,,,,,,,,o\n,444444,,,oo$----,,,,,,,,,,o\n,,4444,,,,o$$---&&,,,,,,,,,o\n,,3333,,,,o$---2$,,,,,,,,,,o\n,333333,,,o$--22$,,,,,,,,,,o\n,333333,,,,$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Level 3 of 8 : No! Don't eat the soap dispenser!\n(easy and funish)\n,,,,,,,,,,,,,,,,,,,,,,,,,,p,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$11---$;,,,,,,,,,o\n,444474,,,$-1---$,,,,,,,,,,o\n,4444444,,$22--$&&,,,,,,,,,o\n,4444446,,$22----,,,,,,,,,,o\n,444448,,,$--$---,,,,,,,,,,o\n,444444,,,$------,,,,,,,,,,o\n,,4444,,,,$-----&&,,,,,,,,,o\n,,3333,,,,$-----$,,,,,,,,,,o\n,333333,,,$-----$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\nmessage Level 4 of 8 : No! Don't eat the unripe acorn!\n(cute)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,p,,\n,,4444,,,,,,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,,,,,,\n,444474,,,,,,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,%,,,,,\n,4444446,,$$$$$$$$$$$$;,,,o\n,444448,,,$----------$&,,,o\n,444444,,,$-----------,,,,o\n,,4444,,,,$-----------,,,,o\n,,3333,,,,$----21-----,,,,o\n,333333,,,$----11$$--$&,,,o\n,333333,,,$$$$$$$$$$$$,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,\n,333333,,,$$$$$,,,,,,,,,,,,\n,333333,,,$$$$$,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n\n\n\nmessage Level 5 of 8 : No! Don't eat the sock!\n(Easyish/okish)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,p,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$---$-$;,,,,,,,,,o\n,444474,,,$--2$-$,,,,,,,,,,o\n,4444444,,$--221&&,,,,,,,,,o\n,4444446,,$-$----,,,,,,,,,,o\n,444448,,,$------,,,,,,,,,,o\n,444444,,,$$--$--,,,,,,,,,,o\n,,4444,,,,,$$$--&&,,,,,,,,,o\n,,3333,,,,,$$$$-$,,,,,,,,,,o\n,333333,,,,$$,$$$,,,,,,,,,,o\n,333333,,,,$$,,,,,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n\n\nmessage Level 6 of 8 : No! Don't eat the caterpillar!\n\n(absolutely ok early-intermediate)\n,,,,,,,,,,,,,,,,,,,,,,,,,p,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$$$$$$%,,,,,o\n,444444,,,$------1$--$;,,,,o\n,444474,,,$-$----$---$,,,,,o\n,4444444,,$----$---$-&&,,,,o\n,4444446,,$-$---------,,,,,o\n,444448,,,$-$------$--,,,,,o\n,444444,,,$-------$22-,,,,,o\n,,4444,,,,$------$22-&&,,,,o\n,,3333,,,,$----------$,,,,,o\n,333333,,,$----------$,,,,,o\n,333333,,,$$$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\nmessage Level 7 of 8 : No! Don't eat the caterpillar!\n\n\n(intermediate/actually ok!)\n,,,,,,,,,,,,,,,,,,,,,,,,p,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$$$$$$%,,,,,o\n,444444,,,$--$--$----$;,,,,o\n,444447,,,$----2222--$,,,,,o\n,4444444,,$----------&&,,,,o\n,4444446,,$---$-------,,,,,o\n,444448,,,$--------$--,,,,,o\n,444444,,,$-----------,,,,,o\n,,4444,,,,$$$$--$----&&,,,,o\n,,3333,,,,,,$----$-1-$,,,,,o\n,333333,,,,,$------11$,,,,,o\n,333333,,,,,$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n\nmessage Level 8 of 8 : No! Don't eat the kitchen sink!\n(pretty decent intermediate)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,p,\n,,4444,,,,$$$$$$$$$%,,,,,,,o\n,444444,,,$----$---$$$;,,,,o\n,444474,,,$--------$-$,,,,,o\n,4444444,,$----$-----&&,,,,o\n,4444446,,$-----------,,,,,o\n,444448,,,$-$---22----,,,,,o\n,444444,,,$------2----,,,,,o\n,,4444,,,,$----111-$-&&,,,,o\n,,3333,,,,$$----1$-$-$,,,,,o\n,333333,,,,$---------$,,,,,o\n,333333,,,,$$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(following line courtesy of SFTRABBIT)\nmessage They are for me to eat! \n\n\n\n\n\n\n\n\n\n\n(\n\nmessage Level 2 of 10\nmessage No! Don't eat that!\n(actually ok)\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,,\n,4444444,,$$$$$$%;,,,o\n,444444,,,$-2---&&,,,o\n,444444,,,$-$----,,,,o\n,,4444,,,,$--$---,,,,o\n,,3333,,,,$---$--,,,,o\n,333333,,,$1----&&,,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,,\n,4444444,,$$$$$$%;,,,o\n,444444,,,$-----$&&,,o\n,444444,,,$--$---,,,,o\n,,4444,,,,$--2$--,,,,o\n,,3333,,,,$1-----,,,,o\n,333333,,,$$----$&&,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n(ok-ish)\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,p,,,,,,\n,,4444,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,,\n,4444444,,$$$$$$%;,,,o\n,444444,,,$-$--$$&&,,o\n,444444,,,$-$--1-,,,,o\n,,4444,,,,$222-1-,,,,o\n,,3333,,,,$------,,,,o\n,333333,,,$-----$&&,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n\n(Ah p.trivial actually)\n(ok)\n,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,,$$$$$%,,,,,\n,444444,,,$---22$;,,,,\n,444444,,,$----$$,,,,o\n,4444444,,$---11&&,,,o\n,4444444,,$-$--1,,,,,o\n,444444,,,$----1,,,,,o\n,444444,,,$-----,,,,,o\n,,4444,,,,$-----&&,,,o\n,,3333,,,,$-----$,,,,o\n,333333,,,$-----$,,,,o\n,333333,,,$$$$$$$,,,,,\n,333333,,,,$$$,,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,,$$$$$,,,,,,,\n,333333,,$$$\"$$$,,,,,,\n,333333,,$$\"$$$$,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,\n,333355!!!!\"\"\"\"£$$$$,,\n,333333,,,£££££$$$$$,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,\n\n\n\n\n(not too easy but meh)\n(too easy)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,,,,,,,,,,,,,,,p,,\n,444444,,,,,,,,,,,,,,,,,,,,\n,444444,,,,,,,,,,,,,,,,,,,,\n,4444444,,,,,,,,,,,,,%,,,,,\n,4444444,,$$$$$$$$$$$$;,,,,\n,444444,,,$---$2222--$&,,,o\n,444444,,,$-----------,,,,o\n,,4444,,,,$--$--$-----,,,,o\n,,3333,,,,$-----------,,,,o\n,333333,,,$--------11$&,,,o\n,333333,,,$$$$$$$$$$$$,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,\n,333333,,,$$$$$,,,,,,,,,,,,\n,333333,,,$$$$$,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,\n\n\n\n(same idea basically)\n( ,,,,,,,,,,,,,,,,,,,,,,,,,,,, )\n( ,,,,,,,,,,,,,,,,,,,,,,,p,,,, )\n( ,,4444,,,,$$$$$$%,,,,,,,,,,o )\n( ,444444,,,$....#$;,,,,,,,,,o )\n( ,444444,,,$1....$,,,,,,,,,,o )\n( ,4444444,,$1.#..&&,,,,,,,,,o )\n( ,4444444,,$##...-,,,,,,,,,,o )\n( ,444444,,,$.##2.-,,,,,,,,,,o )\n( ,444444,,,$.#222-,,,,,,,,,,o )\n( ,,4444,,,,$.....&&,,,,,,,,,o )\n( ,,3333,,,,$..#..$,,,,,,,,,,o )\n( ,333333,,,$#..#.$,,,,,,,,,,o )\n( ,333333,,,$$$$$$$,,,,,,,,,,o )\n( ,333333,,,,$$$,,,,,,,,,,,,,o )\n( ,333333,,,$$$$$,,,,,,,,,,,,o )\n( ,333333,,,$$$$$,,,,,,,,,,,,, )\n( ,333333,,$$$\"$$$,,,,,,,,,,,, )\n( ,333333,,$$\"$$$$,,,,,,,,,,,, )\n( ,333355!!!!\"\"\"\"$,,,,,,,,,,,, )\n( ,333355!!!!\"\"\"\"$,,,$,,,,,,,, )\n( ,333355!!!!\"\"\"\"£$$$$,,,,,,,, )\n( ,333333,,,£££££$$$$$,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n\n\n(too linear)\n( ,,,,,,,,,,,,,,,,,,,,,,,p,,,, )\n( ,,,,,,,,,,,,,,,,,,,,,,,,,,,, )\n( ,,4444,,,,$$$$$$%,,,,,,,,,,o )\n( ,444444,,,$#....$;,,,,,,,,,o )\n( ,444444,,,$.#...$,,,,,,,,,,o )\n( ,4444444,,$.#..2&&,,,,,,,,,o )\n( ,4444444,,$#..22-,,,,,,,,,,o )\n( ,444444,,,$###.1-,,,,,,,,,,o )\n( ,444444,,,$....#-,,,,,,,,,,o )\n( ,,4444,,,,$...#.&&,,,,,,,,,o )\n( ,,3333,,,,$.....$,,,,,,,,,,o )\n( ,333333,,,$.#...$,,,,,,,,,,o )\n( ,333333,,,$$$$$$$,,,,,,,,,,o )\n( ,333333,,,,$$$,,,,,,,,,,,,,o )\n( ,333333,,,$$$$$,,,,,,,,,,,,o )\n( ,333333,,,$$$$$,,,,,,,,,,,,, )\n( ,333333,,$$$\"$$$,,,,,,,,,,,, )\n( ,333333,,$$\"$$$$,,,,,,,,,,,, )\n( ,333355!!!!\"\"\"\"$,,,,,,,,,,,, )\n( ,333355!!!!\"\"\"\"$,,,$,,,,,,,, )\n( ,333355!!!!\"\"\"\"£$$$$,,,,,,,, )\n( ,333333,,,£££££$$$$$,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n( ,333333,,,,,,,,,,,,,,,,,,,,, )\n\n\n(very easy)\n,,,,,,,,,,,,,,,,,,,,,,,p,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$.2.#.$;,,,,,,,,,o\n,444444,,,$...##$,,,,,,,,,,o\n,4444444,,$..#.#&&,,,,,,,,,o\n,4444444,,$..#..-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,444444,,,$11...-,,,,,,,,,,o\n,,4444,,,,$11...&&,,,,,,,,,o\n,,3333,,,,$#..##$,,,,,,,,,,o\n,333333,,,$...#.$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n(medium actually maybe slightly ok)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,p,,,,,\n,,4444,,,,$$$$%,,,,,,,,,,,,o\n,444444,,,$---$;,,,,,,,,,,,o\n,444444,,,$$--$,,,,,,,,,,,,o\n,4444444,,$----$&&,,,,,,,,,o\n,4444444,,$.#...-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,,4444,,,,$....2&&,,,,,,,,,o\n,,3333,,,,$#11.##,,,,,,,,,,o\n,333333,,,,##1.#,,,,,,,,,,,o\n,333333,,,,,$$$$,,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(super tricky somehow but also trivial)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,p,,,\n,,4444,,,,,,$$$$%,,,,,,,,,,o\n,444444,,,,,$--$$;,,,,,,,,,o\n,444444,,,,,$1-2$,,,,,,,,,,o\n,4444444,,,,$1-2&&,,,,,,,,,o\n,4444444,,,,$112-,,,,,,,,,,o\n,444444,,,,,$$$--,,,,,,,,,,o\n,444444,,,,,,$---,,,,,,,,,,o\n,,4444,,,,,,,$--&&,,,,,,,,,o\n,,3333,,,,,,,$--$,,,,,,,,,,o\n,333333,,,,,,$--$,,,,,,,,,,o\n,333333,,,,,$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(Easyish)\n,,,,,,,,,,,,,,,,,,,,,,,p,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,,,,,$$%,,,,,,,,,,o\n,444444,,,,,,,$-$;,,,,,,,,,o\n,444444,,,,,,$$-$,,,,,,,,,,o\n,4444444,,,,,$--&&,,,,,,,,,o\n,4444444,,,,,$---,,,,,,,,,,o\n,444444,,,,,,$$1-,,,,,,,,,,o\n,444444,,,,$$$11-,,,,,,,,,,o\n,,4444,,,,$$----&&,,,,,,,,,o\n,,3333,,,,$----2$,,,,,,,,,,o\n,333333,,,$-$-$2$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n\n\n\n\n\n\n\n\n(ok/intermediatetricky)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,p,,,,\n,,4444,,,,$$$$$$$$$$$%,,,,,o\n,444444,,,$-----$----$;,,,,o\n,444444,,,$--------1-$,,,,,o\n,4444444,,$--$---1112&&,,,,o\n,4444444,,$------$----,,,,,o\n,444444,,,$-----$$----,,,,,o\n,444444,,,$-------$---,,,,,o\n,,4444,,,,$-----$----&&,,,,o\n,,3333,,,,$$---------$,,,,,o\n,333333,,,,$$--------$,,,,,o\n,333333,,,,,$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n\n(easy / okish?)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,p\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$111..$;,,,,,,,,,o\n,444444,,,$.1...$,,,,,,,,,,o\n,4444444,,$.....&&,,,,,,,,,o\n,4444444,,$.....-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,,4444,,,,$#....&&,,,,,,,,,o\n,,3333,,,,$....2$,,,,,,,,,,o\n,333333,,,$...#2$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(easy but maybe ok?)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,p\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$...11$;,,,,,,,,,o\n,444444,,,$....1$,,,,,,,,,,o\n,4444444,,$.....&&,,,,,,,,,o\n,4444444,,$.....-,,,,,,,,,,o\n,444444,,,$...#.-,,,,,,,,,,o\n,444444,,,$.....-,,,,,,,,,,o\n,,4444,,,,$.....&&,,,,,,,,,o\n,,3333,,,,$..2..$,,,,,,,,,,o\n,333333,,,$.#2..$,,,,,,,,,,o\n,333333,,,$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n(wtf is going on? hard to find the point to break out of the loop - maybe later on in game?)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,p\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$%,,,,,,,,,,o\n,444444,,,$-----$$$,,,,,,,,o\n,444444,,,$-----$$;,,,,,,,,o\n,4444444,,$-----&&,,,,,,,,,o\n,4444444,,$------,,,,,,,,,,o\n,444444,,,$--1---,,,,,,,,,,o\n,444444,,$$$111--,,,,,,,,,,o\n,,4444,,,$---1--&&,,,,,,,,,o\n,,3333,,$$$$----$,,,,,,,,,,o\n,333333,$------2$,,,,,,,,,,o\n,333333,$$$$$$$$$,,,,,,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n\n\n(NO NO NONO NO NO NO NO. I had a ridiculously bad time and the solution was pretty trivial AND boring I just didn't see it like an idiot)\n,,,,,,,,,,,,,,,,,,,,,,,,,,,p\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,\n,,4444,,,,$$$$$$$$$$$%,,,,,o\n,444444,,,$.....2222.$;,,,,o\n,444444,,,$.......2..$,,,,,o\n,4444444,,$......#...&&,,,,o\n,4444444,,$..........-,,,,,o\n,444444,,,$..........-,,,,,o\n,444444,,,$#11.......-,,,,,o\n,,4444,,,,$111.......&&,,,,o\n,,3333,,,,$.......#..$,,,,,o\n,333333,,,$..........$,,,,,o\n,333333,,,$$$$$$$$$$$$,,,,,o\n,333333,,,,$$$,,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,o\n,333333,,,$$$$$,,,,,,,,,,,,,\n,333333,,$$$\"$$$,,,,,,,,,,,,\n,333333,,$$\"$$$$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,,,,,,,,,,\n,333355!!!!\"\"\"\"$,,,$,,,,,,,,\n,333355!!!!\"\"\"\"£$$$$,,,,,,,,\n,333333,,,£££££$$$$$,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n,333333,,,,,,,,,,,,,,,,,,,,,\n)\n\n",[2,0,1,3,0,2,1,"restart",0,2,1,2,0,1,3,2,1],"background: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,background body2:1,1,1,1,1,1,0,0,background body1:2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,\n1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,\n1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,1,\n1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,1,1,background maneye:3,\n1,1,1,1,1,2,2,2,2,2,2,2,2,background body1 wall1:4,4,4,2,2,2,2,2,0,0,0,1,1,1,\n1,background manmouth:5,1,0,0,2,2,2,2,2,2,2,4,4,4,2,2,2,2,2,0,0,0,0,0,1,background mannostrils:6,\n0,0,0,0,0,0,0,0,0,0,0,background wall1:7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,background wall4:8,8,7,7,7,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,\n8,8,8,0,8,8,8,8,7,7,7,background wall3:9,0,0,0,0,0,0,0,0,0,0,8,background levelbg:10,10,10,background crate2 levelbg:11,\n10,8,8,8,8,8,background wall2:12,12,12,12,9,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,\n8,8,8,8,12,8,12,12,12,9,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,8,\n8,8,8,8,8,12,12,12,9,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,8,0,\n8,8,8,8,12,12,12,9,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,8,0,0,\n0,8,8,8,8,9,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,8,0,0,0,\n0,0,0,0,8,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,8,8,0,0,0,0,\n0,0,0,8,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,8,8,0,0,0,0,0,\n0,0,8,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,background crate1 levelbg:13,8,0,0,0,0,0,0,\n8,8,8,0,0,0,0,0,0,0,0,0,0,8,10,10,10,13,13,8,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,background wall5:14,8,8,10,10,10,8,8,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,background player:15,0,0,0,background wall6:16,background wall7:17,0,0,0,17,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,\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,\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,\n0,0,0,0,0,0,0,background target:18,18,18,18,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",7,"1627893851172.3552"] ], [ - "Recondite Star Sector Sigma", - ["title Recondite Star Sector Sigma\nauthor increpare\nhomepage www.increpare.com\n\n========\nOBJECTS\n========\n\nhintergrund\nblack\n\n\nziel\npink\n..000\n.00..\n.0.0.\n..00.\n000..\n\nwand\nblack gray\n00000\n01010\n00000\n01010\n00000\n\nspieler\nred white\n..0..\n.000.\n.111.\n.111.\n01010\n\nKiste\nOrange Yellow\n.....\n.000.\n.0.0.\n.000.\n.....\n\ncrate c\norange yellow\n.....\n.000.\n.0.0.\n.000.\n.....\n\n=======\nLEGEND\n=======\n\nplayer = spieler\nbackground = hintergrund\n\n. = Background\n# = wand\nP = spieler\n* = kiste\nO = ziel\n\n\n=======\nSOUNDS\n=======\n\nkiste MOVE 74233307\nendlevel 35757708\nstartgame 52406508\nsfx0 23411703 (kiste auf ziel)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSpieler, wand, Kiste\nziel\ncrate\n======\nRULES\n======\n\n[ > Spieler | Kiste ] -> [ > Spieler | > Kiste ]\n[ > Spieler | crate ] -> [ > Spieler | > crate ]\n[ > crate | wand ]-> cancel\n[ > spieler | > kiste | ziel ] -> [ ziel | spieler | wand ] sfx0\n\nWINCONDITIONS\n==============\n\n( All Target on Crate )\nno Kiste\nall crate on ziel\n\n=======\nLEVELS\n=======\n\nmessage Sector 1 of 10: Headway \n(Easiesh but tricky first level?)\n######\n#o.###\n#p.###\n#.*..#\n#.*..#\n#..###\n######\n\nmessage Sector 2 of 10: Star-Hopper\n(medium-difficult but maybe ok first level?)\n############\n#....###..##\n#..o*.*..#.#\n#*.........#\n#p..########\n############\n\nmessage Sector 3 of 10: The dividing wall\n(also ok? quite similar? maybe easier?)\n######\n#...##\n#.*o##\n#p*..#\n#.*..#\n#..###\n######\n\nmessage Sector 4 of 10: The waiting room\n###########\n########..#\n########..#\n#######...#\n#........o#\n#.#*#*#.###\n#..*.p..###\n###########\n\n\nmessage Sector 5 of 10: The great pillar\n(good first level?)\n######\n#.*..#\n#.#..#\n#.**.#\n#..p.#\n#...o#\n######\n\n\nmessage Sector 6 of 10: The ceremony\n(good first level? at least a slightly different concept to the others)\n#########\n#.*...o.#\n#.#.*.#.#\n#...*.p.#\n#########\n\n\n(trivial)\n( ######### )\n( ###p.#### )\n( #.......# )\n( #.#**#*.# )\n( #.o..#..# )\n( ######### )\n\n\nmessage level 7 of 10: Ancient offering\n(intermediate. not so fun?)\n#########\n##o..####\n#.p**...#\n#.#.*..##\n#....#.##\n#########\n\nmessage Sector 8 of 10: The Constellation of the Rattlesnake \n\n(hardish? intermeidate :] )\n#########\n###..####\n#.o...*.#\n#.**.##.#\n#....#.p#\n#########\n\nmessage Sector 9 of 10: The site of return.\n\n(intermediate ok? not so interesting)\n#########\n###..####\n#..*....#\n#p*..*..#\n#.o.##.##\n#########\n\n\n\nmessage Sector 10 of 10: Normality\n\n#########\n###..####\n#.oc...o#\n#pc..c..#\n#.o.##.##\n#########\n\n\nmessage Congratulations! You have navigated the Recondite Star Sector Sigma. But nobody will ever believe what you saw.\n\n(\n\n[spieler]->[]\n[kiste]->[]\n[ziel]->[]\n\nchoose 2 option 0.5 [ wand | no wand ] -> [ | ]\nchoose 2 option 0.5 [ wand | no wand ] -> [ wand | wand ]\nchoose 2 [no kiste no wand no spieler ] -> [ kiste ]\nchoose 1 [no kiste no wand no spieler ] -> [ ziel ]\nchoose 1 [no kiste no wand no spieler ] -> [ spieler ]\n\n)\n\n", [0, 0, 1, 1, 1, 1, 0, 3, 2, 2, 2, 1, 1, 1, 0, 3, 2, 3, 3, 0, 2, 1, 1, 0, 3, 3, 2, 3, 0], "hintergrund wand:0,0,0,0,0,0,0,0,hintergrund:1,\n1,1,0,0,0,0,1,1,0,\n0,1,hintergrund kiste:2,1,1,0,0,1,0,\nhintergrund spieler:3,hintergrund ziel:4,0,0,0,1,0,0,0,\n0,0,1,0,1,0,0,0,1,\n1,1,0,0,0,0,0,0,0,\n", 15, "1627893876246.9329"] + "Recondite Star Sector Sigma", + ["title Recondite Star Sector Sigma\nauthor increpare\nhomepage www.increpare.com\n\n========\nOBJECTS\n========\n\nhintergrund\nblack\n\n\nziel\npink\n..000\n.00..\n.0.0.\n..00.\n000..\n\nwand\nblack gray\n00000\n01010\n00000\n01010\n00000\n\nspieler\nred white\n..0..\n.000.\n.111.\n.111.\n01010\n\nKiste\nOrange Yellow\n.....\n.000.\n.0.0.\n.000.\n.....\n\ncrate c\norange yellow\n.....\n.000.\n.0.0.\n.000.\n.....\n\n=======\nLEGEND\n=======\n\nplayer = spieler\nbackground = hintergrund\n\n. = Background\n# = wand\nP = spieler\n* = kiste\nO = ziel\n\n\n=======\nSOUNDS\n=======\n\nkiste MOVE 74233307\nendlevel 35757708\nstartgame 52406508\nsfx0 23411703 (kiste auf ziel)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSpieler, wand, Kiste\nziel\ncrate\n======\nRULES\n======\n\n[ > Spieler | Kiste ] -> [ > Spieler | > Kiste ]\n[ > Spieler | crate ] -> [ > Spieler | > crate ]\n[ > crate | wand ]-> cancel\n[ > spieler | > kiste | ziel ] -> [ ziel | spieler | wand ] sfx0\n\nWINCONDITIONS\n==============\n\n( All Target on Crate )\nno Kiste\nall crate on ziel\n\n=======\nLEVELS\n=======\n\nmessage Sector 1 of 10: Headway \n(Easiesh but tricky first level?)\n######\n#o.###\n#p.###\n#.*..#\n#.*..#\n#..###\n######\n\nmessage Sector 2 of 10: Star-Hopper\n(medium-difficult but maybe ok first level?)\n############\n#....###..##\n#..o*.*..#.#\n#*.........#\n#p..########\n############\n\nmessage Sector 3 of 10: The dividing wall\n(also ok? quite similar? maybe easier?)\n######\n#...##\n#.*o##\n#p*..#\n#.*..#\n#..###\n######\n\nmessage Sector 4 of 10: The waiting room\n###########\n########..#\n########..#\n#######...#\n#........o#\n#.#*#*#.###\n#..*.p..###\n###########\n\n\nmessage Sector 5 of 10: The great pillar\n(good first level?)\n######\n#.*..#\n#.#..#\n#.**.#\n#..p.#\n#...o#\n######\n\n\nmessage Sector 6 of 10: The ceremony\n(good first level? at least a slightly different concept to the others)\n#########\n#.*...o.#\n#.#.*.#.#\n#...*.p.#\n#########\n\n\n(trivial)\n( ######### )\n( ###p.#### )\n( #.......# )\n( #.#**#*.# )\n( #.o..#..# )\n( ######### )\n\n\nmessage level 7 of 10: Ancient offering\n(intermediate. not so fun?)\n#########\n##o..####\n#.p**...#\n#.#.*..##\n#....#.##\n#########\n\nmessage Sector 8 of 10: The Constellation of the Rattlesnake \n\n(hardish? intermeidate :] )\n#########\n###..####\n#.o...*.#\n#.**.##.#\n#....#.p#\n#########\n\nmessage Sector 9 of 10: The site of return.\n\n(intermediate ok? not so interesting)\n#########\n###..####\n#..*....#\n#p*..*..#\n#.o.##.##\n#########\n\n\n\nmessage Sector 10 of 10: Normality\n\n#########\n###..####\n#.oc...o#\n#pc..c..#\n#.o.##.##\n#########\n\n\nmessage Congratulations! You have navigated the Recondite Star Sector Sigma. But nobody will ever believe what you saw.\n\n(\n\n[spieler]->[]\n[kiste]->[]\n[ziel]->[]\n\nchoose 2 option 0.5 [ wand | no wand ] -> [ | ]\nchoose 2 option 0.5 [ wand | no wand ] -> [ wand | wand ]\nchoose 2 [no kiste no wand no spieler ] -> [ kiste ]\nchoose 1 [no kiste no wand no spieler ] -> [ ziel ]\nchoose 1 [no kiste no wand no spieler ] -> [ spieler ]\n\n)\n\n",[0,0,1,1,1,1,0,3,2,2,2,1,1,1,0,3,2,3,3,0,2,1,1,0,3,3,2,3,0],"hintergrund wand:0,0,0,0,0,0,0,0,hintergrund:1,\n1,1,0,0,0,0,1,1,0,\n0,1,hintergrund kiste:2,1,1,0,0,1,0,\nhintergrund spieler:3,hintergrund ziel:4,0,0,0,1,0,0,0,\n0,0,1,0,1,0,0,0,1,\n1,1,0,0,0,0,0,0,0,\n",15,"1627893876246.9329"] ], [ - "Crate Swarp", - ["title Crate Swarp\nauthor incurpareh\nhomepage www.increpare.com\n\ncolor_palette 6\n\ntext_color pink\n\n(levels generated with https://dekeyser.ch/puzzlescriptmis/ )\n\n========\nOBJECTS\n========\n\nBackground\npurple\n\nTarget1\ndarkred red\n.....\n.101.\n.101.\n.101.\n.....\n\nCrate1\nred lightred\n10101\n1...1\n1...1\n1...1\n10101\n\n\nTarget2\ndarkblue blue\n.....\n.111.\n.000.\n.111.\n.....\n\nCrate2\nblue lightblue\n11111\n0...0\n1...1\n0...0\n11111\n\n\nWall\nBROWN DARKBROWN BROWN\n10101\n02020\n10101\n02020\n10101\n\nPlayer\nBlack Orange White Blue\n00000\n01010\n00000\n0...0\n0...0\n\n\n\n=======\nLEGEND\n=======\n\ncrate = crate1 or Crate2\n\n. = Background\n# = Wall\nP = Player\nA = target1 and Crate2\nB = target2 and crate1\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 50239307\nplayer move 61796707\nendlevel 41475705\nstartgame 88984906\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget1, target2\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nall target1 on Crate1\nall target2 on crate2\n\n=======\nLEVELS\n=======\n\nmessage Lervel wan of ate\n#########\n###..####\n###..a..#\n#.b.....#\n#..p.#..#\n#########\n\nmessage Lervel tur of ate\n######\n#..###\n#....#\n#.abp#\n##...#\n######\n\n\nmessage Lervel twei of ate\n#########\n###..####\n#..a....#\n#....b..#\n###p.####\n#########\n\n\nmessage Lervel faw of ate\n#########\n###..####\n#...a.b.#\n#.......#\n#..p.####\n#########\n\nmessage Lervel fif of ate\n(Fascinating and good)\n########\n###..###\n#.a..b.#\n#..p...#\n#####..#\n########\n\nmessage Lervel shicks of ate\n#######\n##..###\n#...a.#\n#..b.p#\n##..###\n##..###\n#######\n\n\n\nmessage Lervel shebben of ate\n#######\n##..###\n##..###\n##.a..#\n#...b.#\n#..p###\n#######\n\nmessage Lervel ate of ate\n\n#######\n##..###\n#p...##\n#.ab.##\n##....#\n###...#\n#######\n\n\nmessage Crawngragurrarshuns!\n\n", [1, 1, 2, 1, 0, 3, 3, 3, 0, 1, 2, 1, 0, 2, 1, 1, 0, 3, 3], "background wall:0,0,0,0,0,0,0,\n0,0,background:1,1,0,0,0,\n0,1,1,1,1,1,0,\n0,background crate2:2,background player:3,background target2:4,1,1,0,\n0,0,background crate1 target1:5,1,0,0,0,\n0,0,1,1,0,0,0,\n0,0,0,0,0,0,0,\n", 11, "1627893891182.2898"] + "Crate Swarp", + ["title Crate Swarp\nauthor incurpareh\nhomepage www.increpare.com\n\ncolor_palette 6\n\ntext_color pink\n\n(levels generated with https://dekeyser.ch/puzzlescriptmis/ )\n\n========\nOBJECTS\n========\n\nBackground\npurple\n\nTarget1\ndarkred red\n.....\n.101.\n.101.\n.101.\n.....\n\nCrate1\nred lightred\n10101\n1...1\n1...1\n1...1\n10101\n\n\nTarget2\ndarkblue blue\n.....\n.111.\n.000.\n.111.\n.....\n\nCrate2\nblue lightblue\n11111\n0...0\n1...1\n0...0\n11111\n\n\nWall\nBROWN DARKBROWN BROWN\n10101\n02020\n10101\n02020\n10101\n\nPlayer\nBlack Orange White Blue\n00000\n01010\n00000\n0...0\n0...0\n\n\n\n=======\nLEGEND\n=======\n\ncrate = crate1 or Crate2\n\n. = Background\n# = Wall\nP = Player\nA = target1 and Crate2\nB = target2 and crate1\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 50239307\nplayer move 61796707\nendlevel 41475705\nstartgame 88984906\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget1, target2\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nall target1 on Crate1\nall target2 on crate2\n\n=======\nLEVELS\n=======\n\nmessage Lervel wan of ate\n#########\n###..####\n###..a..#\n#.b.....#\n#..p.#..#\n#########\n\nmessage Lervel tur of ate\n######\n#..###\n#....#\n#.abp#\n##...#\n######\n\n\nmessage Lervel twei of ate\n#########\n###..####\n#..a....#\n#....b..#\n###p.####\n#########\n\n\nmessage Lervel faw of ate\n#########\n###..####\n#...a.b.#\n#.......#\n#..p.####\n#########\n\nmessage Lervel fif of ate\n(Fascinating and good)\n########\n###..###\n#.a..b.#\n#..p...#\n#####..#\n########\n\nmessage Lervel shicks of ate\n#######\n##..###\n#...a.#\n#..b.p#\n##..###\n##..###\n#######\n\n\n\nmessage Lervel shebben of ate\n#######\n##..###\n##..###\n##.a..#\n#...b.#\n#..p###\n#######\n\nmessage Lervel ate of ate\n\n#######\n##..###\n#p...##\n#.ab.##\n##....#\n###...#\n#######\n\n\nmessage Crawngragurrarshuns!\n\n",[1,1,2,1,0,3,3,3,0,1,2,1,0,2,1,1,0,3,3],"background wall:0,0,0,0,0,0,0,\n0,0,background:1,1,0,0,0,\n0,1,1,1,1,1,0,\n0,background crate2:2,background player:3,background target2:4,1,1,0,\n0,0,background crate1 target1:5,1,0,0,0,\n0,0,1,1,0,0,0,\n0,0,0,0,0,0,0,\n",11,"1627893891182.2898"] ], [ - "NO FORBIDDEN SYMBOLS", - ["title NO FORBIDDEN SYMBOLS\nauthor increpare\nhomepage www.increpare.com\n\n========\nOBJECTS\n========\n\nBackground\nwhite\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\n\nPlayer\ngray gray gray gray\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\n#e22118\n\nhorizont\ntransparent\n\nvert\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 32154907\nstartgame 9465903\nendgame 73573102\nsfx0 27796903\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Crate\nhorizont\nvert\n\n======\nRULES\n======\n\n[horizont]->[]\n[vert]->[]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate horizontal [crate | crate | crate ] -> [ crate | crate horizont | crate ]\n\nlate vertical [ crate | crate horizont | crate ] -> [ | vert | ] again sfx0\nlate horizontal [crate | vert | crate ] -> [ | vert | ]\n\n==============\nWINCONDITIONS\n==============\n\nno crate\nno vert\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\n.......\n.......\n..*.*..\n.*.*.*.\n.......\n...p...\n.......\n\nmessage As you can see, this game is forbidden-symbol-free!\n\nmessage Thanks for playing! :)\n", [0, 0, 2, 1, 1, 1, 0, 3, 3], "background:0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\n0,0,background crate:1,background player:2,0,0,0,\n0,0,background crate horizont:3,1,0,0,0,\n0,0,1,0,0,0,0,\n0,0,0,1,0,0,0,\n0,0,0,0,0,0,0,\n", 1, "1627893988626.8167"] + "NO FORBIDDEN SYMBOLS", + ["title NO FORBIDDEN SYMBOLS\nauthor increpare\nhomepage www.increpare.com\n\n========\nOBJECTS\n========\n\nBackground\nwhite\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\n\nPlayer\ngray gray gray gray\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\n#e22118\n\nhorizont\ntransparent\n\nvert\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 32154907\nstartgame 9465903\nendgame 73573102\nsfx0 27796903\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Crate\nhorizont\nvert\n\n======\nRULES\n======\n\n[horizont]->[]\n[vert]->[]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate horizontal [crate | crate | crate ] -> [ crate | crate horizont | crate ]\n\nlate vertical [ crate | crate horizont | crate ] -> [ | vert | ] again sfx0\nlate horizontal [crate | vert | crate ] -> [ | vert | ]\n\n==============\nWINCONDITIONS\n==============\n\nno crate\nno vert\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 1\n\n.......\n.......\n..*.*..\n.*.*.*.\n.......\n...p...\n.......\n\nmessage As you can see, this game is forbidden-symbol-free!\n\nmessage Thanks for playing! :)\n",[0,0,2,1,1,1,0,3,3],"background:0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\n0,0,background crate:1,background player:2,0,0,0,\n0,0,background crate horizont:3,1,0,0,0,\n0,0,1,0,0,0,0,\n0,0,0,1,0,0,0,\n0,0,0,0,0,0,0,\n",1,"1627893988626.8167"] ], [ - "SWIMMING TIME!", - ["title SWIMMING TIME!\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\ncolor_palette 5\n\nrun_rules_on_level_start\n\nnorepeat_action\n\nagain_interval 0.2\n( debug )\n( verbose_logging )\n\nbackground_color #323c39\ntext_color #b4f7ff\n\n========\nOBJECTS\n========\n\nWall1 #\n#284580 #3b7ca9\n00000\n01010\n00000\n01010\n00000\n\nwall2 -\nbrown darkbrown\n11111\n00000\n11111\n00000\n11111\n\nBackground .\n#8b856e\n\ngoalarea ,\nlightblue\n\ntargetarea \n#8dc854\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\ntargetstrap\n#8dc854\n00000\n00000\n.....\n.....\n.....\n\nR0_Up 0\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\nR0_Down\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\nR0_Left\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\nR0_Right\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\n\nR1_Up 1\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR1_Down\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR1_Left\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR1_Right\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\n\nR2_Up 2\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR2_Down\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR2_Left\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR2_Right\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR3 3\n#e95db5 #e95db5\n.000.\n01110\n01110\n01110\n.000.\n\nConnector_Up\n#d9a066 #d9a066\n10001\n.000.\n.....\n.....\n.....\n\nConnector_Down\n#d9a066 #d9a066\n.....\n.....\n.....\n.000.\n10001\n\nConnector_Left\n#d9a066 #d9a066\n1....\n00...\n00...\n00...\n1....\n\nConnector_Right\n#d9a066 #d9a066\n....1\n...00\n...00\n...00\n....1\n\nMoved \ntransparent\n\nParent\ntransparent\n\nGrandParent\ntransparent\n\nNewRot\ntransparent\n\nNewRot2\ntransparent\n\nforce \ntransparent\n\nelephantbody_vanilla e\n#e9b886\n\nelephantbody_eye ;\n#e9b886 white brown\n00000\n01110\n01210\n01110\n00000\n\nelephantbody_hair h\nbrown #e9b886\n00000\n00000\n00000\n00000\n01010\n\nelephantbody_bs &\n#a1694e\n\nelephantbody_mouth '\n#e9b886 white red\n00000\n00000\n02220\n02220\n00000\n\nelephantbody_nose ~\n#e9b886 white black\n0....\n00...\n000..\n000..\n000..\n\n\nelephantbody_nose2 ?\n#e9b886 white black\n0....\n00...\n000..\n0000.\n00000\n\nelephantbody_nose3 %\n#e9b886\n00000\n.0000\n..000\n...00\n....0\n\nelephantbody_anchor a\n#d9a066\n\nelephant_armhighlight $\n#e9b886 #a1694e\n00001\n00001\n00001\n00001\n00001\n\nelephant_armhighlight2 !\n#e9b886 #a1694e\n00001\n00001\n10001\n10001\n11111\n\nelephant_reddot \"\n#e9b886 #e95db5\n00010\n00000\n00000\n00000\n00000\n\nendbarrier\ntransparent\n\nart y\npink\n\nart_eye u\npink white orange\n00000\n01110\n01210\n01210\n00000\n\n=======\nLEGEND\n=======\nwall = wall1 or wall2\nelephantbody = elephantbody_vanilla or elephantbody_anchor or elephantbody_eye or elephantbody_mouth or elephantbody_hair or elephantbody_nose or elephantbody_bs or elephantbody_nose2 or elephant_armhighlight or elephant_armhighlight2 or elephant_reddot or elephantbody_nose3\nR0 = R0_up or R0_down or R0_left or R0_right\nplayer = R0 or elephantbody\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} = endbarrier and goalarea\n=======\nSOUNDS\n=======\n\nsfx0 6951703\nendlevel 96389103\n\n================\nCOLLISIONLAYERS\n================\nBackground\ngoalarea\nMoved\nelephantbody\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\ntargetarea\nendbarrier\nart,art_eye\ntargetstrap\n\n======\nRULES\n======\n\n[stationary player ] -> [ left player ]\n\n[ connector ] -> [ ]\n\n[> elephantbody|wall]->cancel\n\n\n [ > R0 | wall ] -> cancel \n [ > R0 | R1 | wall ] -> cancel \n [ > R0 | R1 | R2 | wall ] -> cancel \n [ > R0 | R1 | R2 | R3 | wall ] -> cancel \n\n\n[ > R0 ] -> [ > R0 > force ]\n\n[ > R0 ] [ RobotPiece | wall ] -> [ > R0 ] [ RobotPiece < force| wall ]\n( [ > player | robotpiece | wall ] -> cancel )\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 ] -> [ RobotPiece Wall ] cancel\n[ > elephantbody | no elephantbody ] -> [ | elephantbody ]\n[RobotPiece elephantbody ] -> cancel\n\nright [elephantbody_anchor | no r0 ] -> cancel\n\n( [ > player | wall ] -> cancel )\n\n[targetarea]->[]\n[targetstrap]->[]\n\nright [||elephantbody_anchor|] -> [ targetarea|targetarea|elephantbody_anchor targetarea|targetarea]\n\ndown [ no targetarea | targetarea | no targetarea | ] -> [targetstrap targetarea | targetarea | targetarea | targetarea ]\n\n[goalarea RobotPiece no targetarea ] -> again sfx0 message AA! You can see his FUCKING DONG!\n\n\n==============\nWINCONDITIONS\n==============\n\nsome elephantbody_anchor on endbarrier\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\nmessage Cripes it just doesn't want to stay in a convenient position today.\n\n\n############################\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..........hh......,,,,},,,,\n#..........e;......,,,,},,,,\n#..........ee~.....,,,,},,,,\n#..........e'......,,,,},,,,\n#..........e.......,,,,},,,,\n#......#...e?......,,,,},,,,\n#..........$e......,,,,},,,,\n#..........$\"......,,,,},,,,\n#..........$e.3....,,,,},,,,\n#..........!e.2....,,,,},,,,\n#..........ee.1....,,,,},,,,\n#..........eea0....,,,,},,,,\n#..........%e&.....,,,,},,,,\n#...........e......,,,,},,,,\n#...........e......,,,,},,,,\n#...........e......,,,,},,,,\n#...........e......,,,,},,,,\n#...........ee.....,,,,},,,,\n#---------------------------\n\n\n\nmessage Time for a nice dip in the pool! Thanks for helping me adjust; that's what friends are for!\n\n\n\n", [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 0, 0, 1], "background wall1: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,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,background wall2:2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,\n1,1,background elephantbody_hair:3,background elephantbody_vanilla:4,4,4,4,4,background elephant_armhighlight:5,5,5,background elephant_armhighlight2:6,background elephantbody_vanilla targetarea targetstrap:7,background elephantbody_vanilla targetarea:8,background elephantbody_nose3 targetarea:9,background targetarea:10,1,1,1,1,1,1,1,1,2,0,1,1,\n1,1,1,1,1,1,1,3,background elephantbody_eye:11,4,background elephantbody_mouth:12,1,background elephantbody_nose2:13,4,background elephant_reddot:14,4,4,7,8,8,8,4,4,4,4,1,1,1,\n1,2,0,1,1,1,1,1,1,1,1,1,1,1,background elephantbody_nose:15,1,1,1,1,1,1,1,background targetarea targetstrap:16,background elephantbody_anchor targetarea:17,background elephantbody_bs targetarea:18,10,1,1,\n1,4,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,background connector_down connector_right r1_right targetarea targetstrap:19,\nbackground connector_up r0_up targetarea:20,10,10,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,background connector_left connector_right r2_right:21,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,background connector_left r3:22,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,2,0,background goalarea:23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,2,0,background endbarrier goalarea:24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,\n24,24,24,24,24,24,24,2,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,\n", 2, "1627893997860.5815"] + "SWIMMING TIME!", + ["title SWIMMING TIME!\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\ncolor_palette 5\n\nrun_rules_on_level_start\n\nnorepeat_action\n\nagain_interval 0.2\n( debug )\n( verbose_logging )\n\nbackground_color #323c39\ntext_color #b4f7ff\n\n========\nOBJECTS\n========\n\nWall1 #\n#284580 #3b7ca9\n00000\n01010\n00000\n01010\n00000\n\nwall2 -\nbrown darkbrown\n11111\n00000\n11111\n00000\n11111\n\nBackground .\n#8b856e\n\ngoalarea ,\nlightblue\n\ntargetarea \n#8dc854\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\ntargetstrap\n#8dc854\n00000\n00000\n.....\n.....\n.....\n\nR0_Up 0\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\nR0_Down\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\nR0_Left\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\nR0_Right\n#d9a066 #d9a066\n1111.\n00001\n00001\n00001\n1111.\n\n\nR1_Up 1\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR1_Down\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR1_Left\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR1_Right\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\n\nR2_Up 2\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR2_Down\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR2_Left\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR2_Right\n#d9a066 #d9a066\n.111.\n10001\n10001\n10001\n.111.\n\nR3 3\n#e95db5 #e95db5\n.000.\n01110\n01110\n01110\n.000.\n\nConnector_Up\n#d9a066 #d9a066\n10001\n.000.\n.....\n.....\n.....\n\nConnector_Down\n#d9a066 #d9a066\n.....\n.....\n.....\n.000.\n10001\n\nConnector_Left\n#d9a066 #d9a066\n1....\n00...\n00...\n00...\n1....\n\nConnector_Right\n#d9a066 #d9a066\n....1\n...00\n...00\n...00\n....1\n\nMoved \ntransparent\n\nParent\ntransparent\n\nGrandParent\ntransparent\n\nNewRot\ntransparent\n\nNewRot2\ntransparent\n\nforce \ntransparent\n\nelephantbody_vanilla e\n#e9b886\n\nelephantbody_eye ;\n#e9b886 white brown\n00000\n01110\n01210\n01110\n00000\n\nelephantbody_hair h\nbrown #e9b886\n00000\n00000\n00000\n00000\n01010\n\nelephantbody_bs &\n#a1694e\n\nelephantbody_mouth '\n#e9b886 white red\n00000\n00000\n02220\n02220\n00000\n\nelephantbody_nose ~\n#e9b886 white black\n0....\n00...\n000..\n000..\n000..\n\n\nelephantbody_nose2 ?\n#e9b886 white black\n0....\n00...\n000..\n0000.\n00000\n\nelephantbody_nose3 %\n#e9b886\n00000\n.0000\n..000\n...00\n....0\n\nelephantbody_anchor a\n#d9a066\n\nelephant_armhighlight $\n#e9b886 #a1694e\n00001\n00001\n00001\n00001\n00001\n\nelephant_armhighlight2 !\n#e9b886 #a1694e\n00001\n00001\n10001\n10001\n11111\n\nelephant_reddot \"\n#e9b886 #e95db5\n00010\n00000\n00000\n00000\n00000\n\nendbarrier\ntransparent\n\nart y\npink\n\nart_eye u\npink white orange\n00000\n01110\n01210\n01210\n00000\n\n=======\nLEGEND\n=======\nwall = wall1 or wall2\nelephantbody = elephantbody_vanilla or elephantbody_anchor or elephantbody_eye or elephantbody_mouth or elephantbody_hair or elephantbody_nose or elephantbody_bs or elephantbody_nose2 or elephant_armhighlight or elephant_armhighlight2 or elephant_reddot or elephantbody_nose3\nR0 = R0_up or R0_down or R0_left or R0_right\nplayer = R0 or elephantbody\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} = endbarrier and goalarea\n=======\nSOUNDS\n=======\n\nsfx0 6951703\nendlevel 96389103\n\n================\nCOLLISIONLAYERS\n================\nBackground\ngoalarea\nMoved\nelephantbody\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\ntargetarea\nendbarrier\nart,art_eye\ntargetstrap\n\n======\nRULES\n======\n\n[stationary player ] -> [ left player ]\n\n[ connector ] -> [ ]\n\n[> elephantbody|wall]->cancel\n\n\n [ > R0 | wall ] -> cancel \n [ > R0 | R1 | wall ] -> cancel \n [ > R0 | R1 | R2 | wall ] -> cancel \n [ > R0 | R1 | R2 | R3 | wall ] -> cancel \n\n\n[ > R0 ] -> [ > R0 > force ]\n\n[ > R0 ] [ RobotPiece | wall ] -> [ > R0 ] [ RobotPiece < force| wall ]\n( [ > player | robotpiece | wall ] -> cancel )\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 ] -> [ RobotPiece Wall ] cancel\n[ > elephantbody | no elephantbody ] -> [ | elephantbody ]\n[RobotPiece elephantbody ] -> cancel\n\nright [elephantbody_anchor | no r0 ] -> cancel\n\n( [ > player | wall ] -> cancel )\n\n[targetarea]->[]\n[targetstrap]->[]\n\nright [||elephantbody_anchor|] -> [ targetarea|targetarea|elephantbody_anchor targetarea|targetarea]\n\ndown [ no targetarea | targetarea | no targetarea | ] -> [targetstrap targetarea | targetarea | targetarea | targetarea ]\n\n[goalarea RobotPiece no targetarea ] -> again sfx0 message AA! You can see his FUCKING DONG!\n\n\n==============\nWINCONDITIONS\n==============\n\nsome elephantbody_anchor on endbarrier\n=======\nLEVELS\n=======\n\nmessage Level 1 of 1\n\nmessage Cripes it just doesn't want to stay in a convenient position today.\n\n\n############################\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..................,,,,},,,,\n#..........hh......,,,,},,,,\n#..........e;......,,,,},,,,\n#..........ee~.....,,,,},,,,\n#..........e'......,,,,},,,,\n#..........e.......,,,,},,,,\n#......#...e?......,,,,},,,,\n#..........$e......,,,,},,,,\n#..........$\"......,,,,},,,,\n#..........$e.3....,,,,},,,,\n#..........!e.2....,,,,},,,,\n#..........ee.1....,,,,},,,,\n#..........eea0....,,,,},,,,\n#..........%e&.....,,,,},,,,\n#...........e......,,,,},,,,\n#...........e......,,,,},,,,\n#...........e......,,,,},,,,\n#...........e......,,,,},,,,\n#...........ee.....,,,,},,,,\n#---------------------------\n\n\n\nmessage Time for a nice dip in the pool! Thanks for helping me adjust; that's what friends are for!\n\n\n\n",[1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,2,2,2,1,2,2,2,2,2,2,2,2,3,3,0,0,1],"background wall1: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,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,background wall2:2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,\n1,1,background elephantbody_hair:3,background elephantbody_vanilla:4,4,4,4,4,background elephant_armhighlight:5,5,5,background elephant_armhighlight2:6,background elephantbody_vanilla targetarea targetstrap:7,background elephantbody_vanilla targetarea:8,background elephantbody_nose3 targetarea:9,background targetarea:10,1,1,1,1,1,1,1,1,2,0,1,1,\n1,1,1,1,1,1,1,3,background elephantbody_eye:11,4,background elephantbody_mouth:12,1,background elephantbody_nose2:13,4,background elephant_reddot:14,4,4,7,8,8,8,4,4,4,4,1,1,1,\n1,2,0,1,1,1,1,1,1,1,1,1,1,1,background elephantbody_nose:15,1,1,1,1,1,1,1,background targetarea targetstrap:16,background elephantbody_anchor targetarea:17,background elephantbody_bs targetarea:18,10,1,1,\n1,4,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,background connector_down connector_right r1_right targetarea targetstrap:19,\nbackground connector_up r0_up targetarea:20,10,10,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,background connector_left connector_right r2_right:21,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,background connector_left r3:22,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,2,0,background goalarea:23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,2,0,background endbarrier goalarea:24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,\n24,24,24,24,24,24,24,2,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,23,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,0,23,23,23,23,\n23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,2,\n",2,"1627893997860.5815"] ], [ - "(NSFW / censored) Tugging a trapped XXX XXX out from under one's XXX", - ["title Tugging a trapped XXX XXX out from under one's XXX\nauthor increpare\nhomepage www.increpare.com\n\nnoaction\n\nbackground_color darkblue\n\ntext_color #ffffff\n\n(debug)\n(verbose_logging)\n\n========\nOBJECTS\n========\n\nBackground\n#ffffff\n\n\nskin\n#ffffff\n\ndarkskin\n#ffffff\n\nglans\n#ffffff\n\npants\n#ffffff\n\nselected\nyellow\n\n\nhair_core\nblack black\n00000\n00000\n00000\n00000\n00000\n\nhair_up\nblack black\n00000\n00000\n00000\n00000\n00000\n\n\nhair_down\nblack black\n00000\n00000\n00000\n00000\n00000\n\nhair_left\nblack black\n00000\n00000\n00000\n00000\n00000\n\n\nhair_right\nblack black\n00000\n00000\n00000\n00000\n00000\n\nhair_root\nblack black\n00000\n00000\n00000\n00000\n00000\n\nhair_end \nred\n00000\n00000\n00000\n00000\n00000\n\nretract\ntransparent\n\ndelve\ntransparent\n\nnewselection_horizontal\npink\n00000\n00000\n00000\n00000\n00000\n\n\nnewselection_vertical\nlightgreen\n00000\n00000\n00000\n00000\n00000\n\ninside\nred\n\nguide_up\nyellow\n00000\n00000\n00000\n00000\n00000\n\nguide_down\nyellow\n00000\n00000\n00000\n00000\n00000\n\nguide_left\nyellow\n00000\n00000\n00000\n00000\n00000\n\nguide_right\nyellow\n00000\n00000\n00000\n00000\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\nPlayer = selected\n\n& = inside and guide_down\n\n| = inside and guide_right\n\n{ = hair_core and hair_up and hair_end and inside and guide_down\n\\ = hair_core and hair_down and hair_end and inside and guide_down\n~ = hair_core and hair_up and hair_end and inside and guide_right\n` = hair_core and hair_left and hair_end and inside and guide_down\n¬ = hair_core and hair_right and hair_end and inside and guide_down\n\n} = hair_core and hair_up and hair_down and inside \n\n\n\nz = hair_core and hair_down and inside\nx = hair_core and hair_left and inside\nc = hair_core and hair_right and inside\n\n\nb = hair_core and hair_up and hair_left and inside\nn = hair_core and hair_up and hair_right and inside\n\nm = hair_core and hair_down and hair_left and inside\n: = hair_core and hair_down and hair_right and inside\n\n@ = hair_core and hair_left and hair_right and inside\n\n\n\n\n\n1 = hair_core and hair_up and hair_end\n2 = hair_core and hair_down\n3 = hair_core and hair_left \n4 = hair_core and hair_right\n\n\n5 = hair_core and hair_up and hair_down\n6 = hair_core and hair_up and hair_left\n7 = hair_core and hair_up and hair_right\n\n8 = hair_core and hair_down and hair_left\n9 = hair_core and hair_down and hair_right\n\n0 = hair_core and hair_left and hair_right\n\n\n\nq = hair_root and hair_up \nw = hair_root and hair_down \ne = hair_root and hair_left \nr = hair_root and hair_right \n\n\n\na = hair_core and hair_up and selected\ns = hair_core and hair_down and selected\nd = hair_core and hair_left and selected\nf = hair_core and hair_right and selected\n\n\ng = hair_core and hair_up and hair_down and selected\nh = hair_core and hair_up and hair_left and selected\nj = hair_core and hair_up and hair_right and selected\n\nk = hair_core and hair_down and hair_left and selected\nl = hair_core and hair_down and hair_right and selected\n\n; = hair_core and hair_left and hair_right and selected\n\n! = hair_core\n\n/ = hair_end and hair_down and hair_core \n\nhair_connection = hair_up or hair_down or hair_left or hair_right\n\nnewselection = newselection_horizontal or newselection_vertical\n\nguide = guide_up or guide_down or guide_left or guide_right\nwall = skin or glans or pants or darkskin\n\n# = skin\n% = darkskin\n\n\" = pants\n£ = glans\n\n=======\nSOUNDS\n=======\nstartlevel 3474903\nendlevel 99809305\nsfx0 22765907 (yank)\ncancel 68802704\nsfx1 53944706 (change selection)\n================\nCOLLISIONLAYERS\n================\n\nhair_end\nretract\ndelve\nguide\n\n\nnewselection_horizontal\nnewselection_vertical\n\nBackground\ninside\nselected\nWall\nhair_core, hair_root\nhair_up\nhair_down\nhair_left\nhair_right\n\n======\nRULES\n======\n\n[ down selected inside ] -> cancel\n[ left selected inside ] -> cancel\n[ right selected inside ] -> cancel\n\n\n [action player ] [hair_core no hair_connection | inside ] -> [action player ] [hair_core inside | inside ]\nup [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_up hair_core | hair_down ]\ndown [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_down hair_core | hair_up ]\nleft [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_left hair_core | hair_right ]\nright [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_right hair_core | hair_left ]\n\n[ down selected hair_end] -> cancel\n[ down selected hair_root] -> cancel\n\n(code for selected segment here)\n\ndown [ no selected | up selected | up selected ] -> [ no selected | selected newselection_horizontal | up selected ] sfx1\nup [ no selected | down selected | down selected ] -> [ no selected | selected newselection_horizontal | down selected ] sfx1\n\nleft [ no selected | right selected | right selected ] -> [ no selected | selected newselection_vertical | right selected ] sfx1\nright [ no selected | left selected | left selected ] -> [ no selected | selected newselection_vertical | left selected ] sfx1\n\n\n(if player is moving into an unconnected hair, then nope out)\nup [ > selected | hair_core no hair_down ] -> cancel\ndown [ > selected | hair_core no hair_up ] -> cancel\nleft [ > selected | hair_core no hair_right ] -> cancel\nright [ > selected | hair_core no hair_left ] -> cancel\n\n\n(removing existing selection)\n[ newselection ] [ selected ] -> [ newselection ] [ ]\n\n(grow new selection)\nright [ newselection_horizontal hair_right | ] -> [ newselection_horizontal hair_right | newselection_horizontal ]\nleft [ newselection_horizontal hair_left | ] -> [ newselection_horizontal hair_left | newselection_horizontal ]\n\nup [ newselection_vertical hair_up | ] -> [ newselection_vertical hair_up | newselection_vertical ]\ndown [ newselection_vertical hair_down | ] -> [ newselection_vertical hair_down | newselection_vertical ]\n\n\n\n[newselection]->[selected]\n\n\n\n\n\n(if player is reducing a lump, then remove some bits in the way )\n\t(either it's straight or it's bending away)\nleft [ > selected hair_left | hair_left hair_right hair_core ] -> [ > selected hair_left delve | ]\nleft [ > selected hair_left | hair_up hair_right hair_core ] -> [ > selected hair_up delve| ]\nleft [ > selected hair_left | hair_down hair_right hair_core ] -> [ > selected hair_down delve| ]\n\nright [ > selected hair_right | hair_right hair_left hair_core ] -> [ > selected hair_right delve | ]\nright [ > selected hair_right | hair_up hair_left hair_core ] -> [ > selected hair_up delve| ]\nright [ > selected hair_right | hair_down hair_left hair_core ] -> [ > selected hair_down delve| ]\n\n\n\ndown [ > selected hair_down | hair_down hair_up hair_core ] -> [ > selected hair_down delve | ]\ndown [ > selected hair_down | hair_right hair_up hair_core ] -> [ > selected hair_right delve| ]\ndown [ > selected hair_down | hair_left hair_up hair_core ] -> [ > selected hair_left delve| ]\n\n\n\nup [ > selected hair_up | hair_up hair_down hair_core ] -> [ > selected hair_up delve | ]\nup [ > selected hair_up | hair_right hair_down hair_core ] -> [ > selected hair_right delve| ]\nup [ > selected hair_up | hair_left hair_down hair_core ] -> [ > selected hair_left delve| ]\n\n(moves rest of hair with selection)\n[ > selected hair_connection hair_core ] -> [ > player > hair_connection > hair_core ]\n\n\n(if there's a gap, fill the gap)\nlate right [ hair_right | no hair_left | hair_left selected ] -> [ hair_right | hair_left hair_core hair_right retract| hair_left selected ]\nlate left [ hair_left | no hair_right | hair_right selected ] -> [ hair_left | hair_right hair_core hair_left retract| hair_right selected ]\nlate up [ hair_up | no hair_down | hair_down selected ] -> [ hair_up | hair_down hair_core hair_up retract| hair_down selected ]\nlate down [ hair_down | no hair_up | hair_up selected ] -> [ hair_down | hair_up hair_core hair_down retract| hair_up selected ]\n\n\nlate down [ retract ] [ hair_core hair_down | hair_core hair_up hair_end ] -> [] [ hair_core hair_end guide_down |] sfx0\n+late up [ retract ] [ hair_core hair_up | hair_core hair_down hair_end ] -> [] [ hair_core hair_end guide_up |] sfx0\n+late left [ retract ] [ hair_core hair_left | hair_core hair_right hair_end ] -> [] [ hair_core hair_end guide_left |] sfx0\n+late right [ retract ] [ hair_core hair_right | hair_core hair_left hair_end ] -> [] [ hair_core hair_end guide_right |] sfx0\n\nlate up [ delve ] [ hair_core hair_end guide_up | ] -> [] [ hair_core hair_up | hair_down hair_core hair_end] sfx0\n+late down [ delve ] [ hair_core hair_end guide_down | ] -> [] [ hair_core hair_down | hair_up hair_core hair_end] sfx0\n+late left [ delve ] [ hair_core hair_end guide_left | ] -> [] [ hair_core hair_left | hair_right hair_core hair_end] sfx0\n+late right [ delve ] [ hair_core hair_end guide_right | ] -> [] [ hair_core hair_right | hair_left hair_core hair_end] sfx0\n\nlate [hair_core wall ] -> cancel\n\n\n(Expand selection)\nlate up [ hair_up no selected | selected | selected ] -> [ hair_up selected | selected |selected ]\nlate down [ hair_down no selected | selected | selected ] -> [ hair_down selected | selected |selected ]\nlate left [ hair_left no selected | selected | selected ] -> [ hair_left selected | selected |selected ]\nlate right [ hair_right no selected | selected | selected ] -> [ hair_right selected | selected |selected ]\n\nlate [selected wall]->cancel\n\n\n==============\nWINCONDITIONS\n==============\n no hair_core on inside \n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"........\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"....908.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"....5.5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".9006.5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".5....5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".5...96.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".j;k.5..\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"...5.708............\"\"\"\"\"\"\"\n\"\".....5...5£££.£££...........\"\n\"..####q#.#}£££££££&#.######...\n\".#######.#}£££££££&#.#######..\n..#######.#}£££££££&#.#######..\n.########.#}£££££££&#.########.\n.########.#}£££££££&#.########.\n.#######..#}£££££££&#.########.\n.#######.#\\}£££££££&#.########.\n.#######.#}nm#####&&#.########.\n.#######.#n@b#####&&#.########.\n.#######..##########..########.\n.########..#########.#########.\n\nmessage Unnnh! So great!\n\nmessage Level 2 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"9000008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"5.....5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"5.....5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"7k.9006\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"9h.7008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"5908906\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"76.55..\"......\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"98.55...££.££..\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"...5706708£££££££..........\"\"\"\n\"\"..##q##.##}£££££££&#.######..\"\"\n\"\".#####.#:@b£££££££&#.#######.\"\"\n\"..#####.#n@m£££££££&#.#######..\"\n\".######.#:@b£££££££&#.########.\"\n\".######.#n@m£££££££&#.########.\"\n\".######..#:b£££££££&#.########.\"\n\".#######.#n@`#####&&#.########.\"\n\".#######..##########..########.\"\n\nmessage I feel so good!\n\nmessage Level 3 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"90008....908\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5...5....5.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5...5908.5.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"708.55.5.5.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"..5965.706.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"9065.7008..5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5..5....5.96\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5..7008.5.5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5.l;k.5.5.5..............\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"706.5.706.5.£££££.££££££...........\"\"\"\n\"\"..###q##.##}££££££££££££££|#.######..\"\"\n\"\".######.#:@b££££££££££££££|#.#######..\"\n\"..######.#n@m££££££££££££££|#.#######..\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######..##~||##########|||#.########.\"\n\".#########..################.#########.\"\n\n\nmessage I live for moments like this!\n\n\nmessage Level 4 of 5\n\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"900000008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"789890085\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".76769855\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".90085765\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".5.965906\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".78785708\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"..59678.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".lh7006.5......\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"..5.....96££.££.........\"\"\"\n\"\"..#q###.#nm£££££&#.#####..\"\"\n\"\".######.#:b£££££&#.######..\"\n\"..######.#nm£££££&#.######..\"\n\".#######.#:b£££££&#.#######.\"\n\".#######.#n`&###&&#.#######.\"\n\".#######..########..#######.\"\n\".########..######..########.\"\n\".#########.######.#########.\"\n\nmessage What a rush!\n\nmessage Level 5 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"...9008900008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"...5..55....5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"9006.965..906\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"789085.5985..\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\".76.5706576..\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\".lk.5.90698..........\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"...5706.70065££££.££££...........\"\"\"\n\"\"..##q#####.##}£££££££££&#.#######..\"\"\n\"\".########.#:@b£££££££££&#.########..\"\n\"..########.#n@m£££££££££&#.#########.\"\n\".#########.#:@b£££££££££&#.#########.\"\n\".#########.#n@m£££££££££&#.#########.\"\n\".#########.#:@b£££££££££&#.#########.\"\n\".#########.#n@m£££££££££&#.#########.\"\n\".#########.#:@b£££££££££&#.#########.\"\n\".#########.#~|||#######&&#.#########.\"\n\".##########.#############.##########.\"\n\nmessage Congratulations! You are XXX XXX yanking champion of the universe!\n(\n###########\n#ffffff008#\n#ffffff085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########nm#\n########:b#\n########nm#\n########:b#\n########{##\n###########\n###########\n\n\nmessage Level 1\n###########\n#........##\n#....908.##\n#....5.5.##\n#.9006.5.##\n#.5....5.##\n#.5...96.##\n#.j;k.5..##\n#...5.708##\n#...5...5##\n####q###}##\n########}##\n########}##\n########}##\n########}##\n########}##\n########}##\n########{##\n########&##\n########&##\n###########\n\nmessage Level 2\n###########\n###########\n##l;;;;;k##\n##5.....5##\n##5.....5##\n##78.9006##\n##96.7008##\n##ffffff6##\n##76.55..##\n##98.55..##\n##ffffff8##\n##q#####}##\n########}##\n########}##\n########}##\n########{##\n########&##\n########&##\n###########\n\nmessage Level 3\n###########\n#ffffff008#\n#ffffff085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########nm#\n########:b#\n########nm#\n########:b#\n########{##\n###########\n###########\n\n\nmessage Level 4\n##############\n#90008....908#\n#5...5....5.5#\n#5...5908.5.5#\n#708.55.5.5.5#\n#..5965.706.5#\n#9065.7008..5#\n#5..5....5.96#\n#5..7008.5.5##\n#5.l;k.5.5.5##\n#706.5.706.5##\n#####q#####}##\n##########:b&#\n##########n@m#\n##########:@b#\n##########n@m#\n##########:@b#\n##########n@m#\n##########:@b#\n##########n@m#\n##########:@b#\n##########n@m#\n###########¬b#\n##############\n\n(hard)\nmessage Level 5\n###############\n#...9008900008#\n#...5..55....5#\n#9006.965..906#\n#ffffff.5985..#\n#.76.5706576..#\n#.lk.5.90698..#\n#.5706.70065..#\n##q########}###\n###########}:m#\n###########}}}#\n###########nb}#\n###########:m}#\n###########}nb#\n###########n@m#\n###########:@b#\n###########~||#\n###############\n\n(\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#...........##\n#...........##\n#..../......##\n#####q#####&##\n##########&&&#\n##########&&&#\n##########&&&#\n##########&&&#\n##############\n\n###########\n#ffffff008#\n#ffffff085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########nm#\n########:b#\n########nm#\n########cb#\n###########\n\n\n###########\n#ffffff008#\n#ffffff085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########}##\n########}##\n########}##\n########1##\n###########\n\n\n###############\n#...9008900008#\n#...5..55....5#\n#9006.965..906#\n#ffffff.5985..#\n#.76.5706576..#\n#.lk.5.90698..#\n#.5706.70065..#\n##q########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########{###\n###########&###\n###########&###\n###############\n###############\n\n\n\n###########\n###########\n##l;;;;;k##\n##5.....5##\n##5.....5##\n##5.....5##\n##5.....5##\n##ffffff6##\n##76.55..##\n##98.55..##\n##ffffff8##\n##q#####}##\n########}##\n########}##\n########}##\n########{##\n###########\n\n\n########### \n#.........#\n#...9008..#\n#...5..5..#\n#...7896..#\n#....55...#\n#.lk.55...#\n#.5706708.#\n##q#####5##\n########5##\n########5##\n########1##\n########.##\n###########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.lk......#\n#.5{!.....#\n##q#####.##\n########.##\n########.##\n########.##\n########.##\n###########\n\n###########\n#.........#\n#..9008...#\n#..7k.5...#\n#...g.5...#\n#...g.708.#\n#.90h...5.#\n#.5.....5.#\n##q#####}##\n########}##\n########}##\n########}##\n########{##\n###########\n))\n", [1, 3, 2, 1, 0, 2, 2, 3, 0, 3, 1, 0, 0, 0, 1, 0, 3, 3, 1, 1, 3, 2, 2, 1, 3, 3, 2, 1, 3, 1, 3, 2, 3, 2, 0, 3, 3, 2, 1, 0, 1, 3, 1, 1], "background pants: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,background:1,1,1,1,\n1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,background skin:2,2,2,2,2,2,2,2,2,2,0,background hair_core hair_down hair_right:3,background hair_core hair_right hair_up:4,1,1,1,1,1,3,background hair_core hair_down hair_up:5,\n4,1,2,2,2,2,2,2,2,2,2,2,2,2,0,background hair_core hair_left hair_right:6,background hair_core hair_down hair_left:7,5,5,5,5,5,background hair_core hair_left hair_up:8,1,6,2,2,2,2,2,2,2,2,2,2,2,2,2,0,background hair_core hair_down hair_left selected:9,background hair_core hair_down hair_up selected:10,\n10,10,10,10,10,background hair_core hair_right hair_up selected:11,1,6,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,1,1,1,1,6,3,8,2,2,2,2,2,2,2,2,2,\n2,2,2,2,0,1,1,1,1,1,1,1,6,7,5,background hair_root hair_up:12,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,3,5,5,4,1,6,1,1,2,2,\n2,2,2,2,2,2,2,2,2,2,2,0,1,1,6,1,1,6,1,7,5,4,2,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,7,5,4,\n6,1,1,1,6,1,2,2,2,2,2,2,2,2,2,2,1,2,0,1,1,1,1,6,6,1,1,1,6,2,background hair_core hair_down hair_right inside:13,background hair_core hair_right hair_up inside:14,13,14,13,14,13,14,13,14,2,\n1,0,3,5,5,5,8,7,5,5,5,8,2,background hair_core hair_left hair_right inside:15,15,15,15,15,15,15,15,15,15,2,1,0,6,1,1,1,1,1,3,5,5,5,background hair_core hair_down hair_up inside:16,background hair_core hair_left hair_up inside:17,background hair_core hair_down hair_left inside:18,17,18,\n17,18,17,18,17,18,14,2,0,7,5,5,5,5,5,8,1,1,1,background glans:19,19,19,19,19,19,19,19,19,19,19,15,2,0,0,0,0,0,0,0,0,0,\n1,19,19,19,19,19,19,19,19,19,19,19,19,background guide_right hair_core hair_end hair_left inside:20,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,\n0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,\n19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,1,19,\n19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,\n0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,\n2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,\n19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,background guide_right inside:21,2,0,0,0,0,0,0,0,0,\n0,1,1,19,19,19,19,19,19,19,19,19,19,19,21,2,0,0,0,0,0,0,0,0,0,0,1,21,21,21,21,21,21,21,21,21,21,21,21,2,0,\n0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,\n2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,\n0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,\n2,2,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,1,2,2,\n2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,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,0,0,0,0,0,0,0,\n", 7, "1627894024137.8354"] + "Tugging a trapped pubic hair out from under one's foreskin", + ["title Tugging a trapped pubic hair out from under one's foreskin\nauthor increpare\nhomepage www.increpare.com\n\nnoaction\n\nbackground_color darkblue\n\ntext_color #d9a066\n\n(debug)\n(verbose_logging)\n\n========\nOBJECTS\n========\n\nBackground\n#306082\n\n\nskin\n#d9a066\n\ndarkskin\n#ba7d3f\n\nglans\n#d95763\n\npants\n#3f3f74\n\nselected\nyellow\n\n\nhair_core\nblack black\n.....\n..0..\n.010.\n..0..\n.....\n\nhair_up\nblack black\n.010.\n.010.\n.....\n.....\n.....\n\n\nhair_down\nblack black\n.....\n.....\n.....\n.010.\n.010.\n\nhair_left\nblack black\n.....\n00...\n11...\n00...\n.....\n\n\nhair_right\nblack black\n.....\n...00\n...11\n...00\n.....\n\nhair_root\nblack black\n.000.\n01110\n01110\n01110\n.000.\n\nhair_end \nred\n.....\n.....\n..0..\n.....\n.....\n\nretract\ntransparent\n\ndelve\ntransparent\n\nnewselection_horizontal\npink\n.....\n.....\n.000.\n.....\n.....\n\n\nnewselection_vertical\nlightgreen\n.....\n..0..\n..0..\n..0..\n.....\n\ninside\nred\n\nguide_up\nyellow\n..0..\n.....\n.....\n.....\n.....\n\nguide_down\nyellow\n.....\n.....\n.....\n.....\n..0..\n\nguide_left\nyellow\n.....\n.....\n0....\n.....\n.....\n\nguide_right\nyellow\n.....\n.....\n....0\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\nPlayer = selected\n\n& = inside and guide_down\n\n| = inside and guide_right\n\n{ = hair_core and hair_up and hair_end and inside and guide_down\n\\ = hair_core and hair_down and hair_end and inside and guide_down\n~ = hair_core and hair_up and hair_end and inside and guide_right\n` = hair_core and hair_left and hair_end and inside and guide_down\n¬ = hair_core and hair_right and hair_end and inside and guide_down\n\n} = hair_core and hair_up and hair_down and inside \n\n\n\nz = hair_core and hair_down and inside\nx = hair_core and hair_left and inside\nc = hair_core and hair_right and inside\n\n\nb = hair_core and hair_up and hair_left and inside\nn = hair_core and hair_up and hair_right and inside\n\nm = hair_core and hair_down and hair_left and inside\n: = hair_core and hair_down and hair_right and inside\n\n@ = hair_core and hair_left and hair_right and inside\n\n\n\n\n\n1 = hair_core and hair_up and hair_end\n2 = hair_core and hair_down\n3 = hair_core and hair_left \n4 = hair_core and hair_right\n\n\n5 = hair_core and hair_up and hair_down\n6 = hair_core and hair_up and hair_left\n7 = hair_core and hair_up and hair_right\n\n8 = hair_core and hair_down and hair_left\n9 = hair_core and hair_down and hair_right\n\n0 = hair_core and hair_left and hair_right\n\n\n\nq = hair_root and hair_up \nw = hair_root and hair_down \ne = hair_root and hair_left \nr = hair_root and hair_right \n\n\n\na = hair_core and hair_up and selected\ns = hair_core and hair_down and selected\nd = hair_core and hair_left and selected\nf = hair_core and hair_right and selected\n\n\ng = hair_core and hair_up and hair_down and selected\nh = hair_core and hair_up and hair_left and selected\nj = hair_core and hair_up and hair_right and selected\n\nk = hair_core and hair_down and hair_left and selected\nl = hair_core and hair_down and hair_right and selected\n\n; = hair_core and hair_left and hair_right and selected\n\n! = hair_core\n\n/ = hair_end and hair_down and hair_core \n\nhair_connection = hair_up or hair_down or hair_left or hair_right\n\nnewselection = newselection_horizontal or newselection_vertical\n\nguide = guide_up or guide_down or guide_left or guide_right\nwall = skin or glans or pants or darkskin\n\n# = skin\n% = darkskin\n\n\" = pants\n£ = glans\n\n=======\nSOUNDS\n=======\nstartlevel 3474903\nendlevel 99809305\nsfx0 22765907 (yank)\ncancel 68802704\nsfx1 53944706 (change selection)\n================\nCOLLISIONLAYERS\n================\n\nhair_end\nretract\ndelve\nguide\n\n\nnewselection_horizontal\nnewselection_vertical\n\nBackground\ninside\nselected\nWall\nhair_core, hair_root\nhair_up\nhair_down\nhair_left\nhair_right\n\n======\nRULES\n======\n\n[ down selected inside ] -> cancel\n[ left selected inside ] -> cancel\n[ right selected inside ] -> cancel\n\n\n [action player ] [hair_core no hair_connection | inside ] -> [action player ] [hair_core inside | inside ]\nup [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_up hair_core | hair_down ]\ndown [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_down hair_core | hair_up ]\nleft [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_left hair_core | hair_right ]\nright [action player ] [ hair_core no hair_connection | hair_end ] -> [action player ] [ hair_end hair_right hair_core | hair_left ]\n\n[ down selected hair_end] -> cancel\n[ down selected hair_root] -> cancel\n\n(code for selected segment here)\n\ndown [ no selected | up selected | up selected ] -> [ no selected | selected newselection_horizontal | up selected ] sfx1\nup [ no selected | down selected | down selected ] -> [ no selected | selected newselection_horizontal | down selected ] sfx1\n\nleft [ no selected | right selected | right selected ] -> [ no selected | selected newselection_vertical | right selected ] sfx1\nright [ no selected | left selected | left selected ] -> [ no selected | selected newselection_vertical | left selected ] sfx1\n\n\n(if player is moving into an unconnected hair, then nope out)\nup [ > selected | hair_core no hair_down ] -> cancel\ndown [ > selected | hair_core no hair_up ] -> cancel\nleft [ > selected | hair_core no hair_right ] -> cancel\nright [ > selected | hair_core no hair_left ] -> cancel\n\n\n(removing existing selection)\n[ newselection ] [ selected ] -> [ newselection ] [ ]\n\n(grow new selection)\nright [ newselection_horizontal hair_right | ] -> [ newselection_horizontal hair_right | newselection_horizontal ]\nleft [ newselection_horizontal hair_left | ] -> [ newselection_horizontal hair_left | newselection_horizontal ]\n\nup [ newselection_vertical hair_up | ] -> [ newselection_vertical hair_up | newselection_vertical ]\ndown [ newselection_vertical hair_down | ] -> [ newselection_vertical hair_down | newselection_vertical ]\n\n\n\n[newselection]->[selected]\n\n\n\n\n\n(if player is reducing a lump, then remove some bits in the way )\n\t(either it's straight or it's bending away)\nleft [ > selected hair_left | hair_left hair_right hair_core ] -> [ > selected hair_left delve | ]\nleft [ > selected hair_left | hair_up hair_right hair_core ] -> [ > selected hair_up delve| ]\nleft [ > selected hair_left | hair_down hair_right hair_core ] -> [ > selected hair_down delve| ]\n\nright [ > selected hair_right | hair_right hair_left hair_core ] -> [ > selected hair_right delve | ]\nright [ > selected hair_right | hair_up hair_left hair_core ] -> [ > selected hair_up delve| ]\nright [ > selected hair_right | hair_down hair_left hair_core ] -> [ > selected hair_down delve| ]\n\n\n\ndown [ > selected hair_down | hair_down hair_up hair_core ] -> [ > selected hair_down delve | ]\ndown [ > selected hair_down | hair_right hair_up hair_core ] -> [ > selected hair_right delve| ]\ndown [ > selected hair_down | hair_left hair_up hair_core ] -> [ > selected hair_left delve| ]\n\n\n\nup [ > selected hair_up | hair_up hair_down hair_core ] -> [ > selected hair_up delve | ]\nup [ > selected hair_up | hair_right hair_down hair_core ] -> [ > selected hair_right delve| ]\nup [ > selected hair_up | hair_left hair_down hair_core ] -> [ > selected hair_left delve| ]\n\n(moves rest of hair with selection)\n[ > selected hair_connection hair_core ] -> [ > player > hair_connection > hair_core ]\n\n\n(if there's a gap, fill the gap)\nlate right [ hair_right | no hair_left | hair_left selected ] -> [ hair_right | hair_left hair_core hair_right retract| hair_left selected ]\nlate left [ hair_left | no hair_right | hair_right selected ] -> [ hair_left | hair_right hair_core hair_left retract| hair_right selected ]\nlate up [ hair_up | no hair_down | hair_down selected ] -> [ hair_up | hair_down hair_core hair_up retract| hair_down selected ]\nlate down [ hair_down | no hair_up | hair_up selected ] -> [ hair_down | hair_up hair_core hair_down retract| hair_up selected ]\n\n\nlate down [ retract ] [ hair_core hair_down | hair_core hair_up hair_end ] -> [] [ hair_core hair_end guide_down |] sfx0\n+late up [ retract ] [ hair_core hair_up | hair_core hair_down hair_end ] -> [] [ hair_core hair_end guide_up |] sfx0\n+late left [ retract ] [ hair_core hair_left | hair_core hair_right hair_end ] -> [] [ hair_core hair_end guide_left |] sfx0\n+late right [ retract ] [ hair_core hair_right | hair_core hair_left hair_end ] -> [] [ hair_core hair_end guide_right |] sfx0\n\nlate up [ delve ] [ hair_core hair_end guide_up | ] -> [] [ hair_core hair_up | hair_down hair_core hair_end] sfx0\n+late down [ delve ] [ hair_core hair_end guide_down | ] -> [] [ hair_core hair_down | hair_up hair_core hair_end] sfx0\n+late left [ delve ] [ hair_core hair_end guide_left | ] -> [] [ hair_core hair_left | hair_right hair_core hair_end] sfx0\n+late right [ delve ] [ hair_core hair_end guide_right | ] -> [] [ hair_core hair_right | hair_left hair_core hair_end] sfx0\n\nlate [hair_core wall ] -> cancel\n\n\n(Expand selection)\nlate up [ hair_up no selected | selected | selected ] -> [ hair_up selected | selected |selected ]\nlate down [ hair_down no selected | selected | selected ] -> [ hair_down selected | selected |selected ]\nlate left [ hair_left no selected | selected | selected ] -> [ hair_left selected | selected |selected ]\nlate right [ hair_right no selected | selected | selected ] -> [ hair_right selected | selected |selected ]\n\nlate [selected wall]->cancel\n\n\n==============\nWINCONDITIONS\n==============\n no hair_core on inside \n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"........\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"....908.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"....5.5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".9006.5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".5....5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".5...96.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".j;k.5..\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"...5.708............\"\"\"\"\"\"\"\n\"\".....5...5£££.£££...........\"\n\"..####q#.#}£££££££&#.######...\n\".#######.#}£££££££&#.#######..\n..#######.#}£££££££&#.#######..\n.########.#}£££££££&#.########.\n.########.#}£££££££&#.########.\n.#######..#}£££££££&#.########.\n.#######.#\\}£££££££&#.########.\n.#######.#}nm#####&&#.########.\n.#######.#n@b#####&&#.########.\n.#######..##########..########.\n.########..#########.#########.\n\nmessage Unnnh! So great!\n\nmessage Level 2 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"9000008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"5.....5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"5.....5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"7k.9006\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"9h.7008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"5908906\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"76.55..\"......\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"\"98.55...££.££..\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"...5706708£££££££..........\"\"\"\n\"\"..##q##.##}£££££££&#.######..\"\"\n\"\".#####.#:@b£££££££&#.#######.\"\"\n\"..#####.#n@m£££££££&#.#######..\"\n\".######.#:@b£££££££&#.########.\"\n\".######.#n@m£££££££&#.########.\"\n\".######..#:b£££££££&#.########.\"\n\".#######.#n@`#####&&#.########.\"\n\".#######..##########..########.\"\n\nmessage I feel so good!\n\nmessage Level 3 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"90008....908\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5...5....5.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5...5908.5.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"708.55.5.5.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"..5965.706.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"9065.7008..5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5..5....5.96\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5..7008.5.5.\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"5.l;k.5.5.5..............\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"706.5.706.5.£££££.££££££...........\"\"\"\n\"\"..###q##.##}££££££££££££££|#.######..\"\"\n\"\".######.#:@b££££££££££££££|#.#######..\"\n\"..######.#n@m££££££££££££££|#.#######..\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######.#:@b££££££££££££££|#.########.\"\n\".#######.#n@m££££££££££££££|#.########.\"\n\".#######..##~||##########|||#.########.\"\n\".#########..################.#########.\"\n\n\nmessage I live for moments like this!\n\n\nmessage Level 4 of 5\n\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"900000008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"789890085\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".76769855\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".90085765\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".5.965906\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".78785708\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"..59678.5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\".lh7006.5......\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"..5.....96££.££.........\"\"\"\n\"\"..#q###.#nm£££££&#.#####..\"\"\n\"\".######.#:b£££££&#.######..\"\n\"..######.#nm£££££&#.######..\"\n\".#######.#:b£££££&#.#######.\"\n\".#######.#n`&###&&#.#######.\"\n\".#######..########..#######.\"\n\".########..######..########.\"\n\".#########.######.#########.\"\n\nmessage What a rush!\n\nmessage Level 5 of 5\n\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"...9008900008\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"...5..55....5\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"9006.965..906\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\"789085.5985..\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\".76.5706576..\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"\"\".lk.5.90698..........\"\"\"\"\"\"\"\"\"\"\"\"\"\n\"\"\"...5706.70065££££.££££...........\"\"\"\n\"\"..##q#####.##}£££££££££&#.#######..\"\"\n\"\".########.#:@b£££££££££&#.########..\"\n\"..########.#n@m£££££££££&#.#########.\"\n\".#########.#:@b£££££££££&#.#########.\"\n\".#########.#n@m£££££££££&#.#########.\"\n\".#########.#:@b£££££££££&#.#########.\"\n\".#########.#n@m£££££££££&#.#########.\"\n\".#########.#:@b£££££££££&#.#########.\"\n\".#########.#~|||#######&&#.#########.\"\n\".##########.#############.##########.\"\n\nmessage Congratulations! You are pubic hair yanking champion of the universe!\n(\n###########\n#900000008#\n#789890085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########nm#\n########:b#\n########nm#\n########:b#\n########{##\n###########\n###########\n\n\nmessage Level 1\n###########\n#........##\n#....908.##\n#....5.5.##\n#.9006.5.##\n#.5....5.##\n#.5...96.##\n#.j;k.5..##\n#...5.708##\n#...5...5##\n####q###}##\n########}##\n########}##\n########}##\n########}##\n########}##\n########}##\n########{##\n########&##\n########&##\n###########\n\nmessage Level 2\n###########\n###########\n##l;;;;;k##\n##5.....5##\n##5.....5##\n##78.9006##\n##96.7008##\n##5908906##\n##76.55..##\n##98.55..##\n##5706708##\n##q#####}##\n########}##\n########}##\n########}##\n########{##\n########&##\n########&##\n###########\n\nmessage Level 3\n###########\n#900000008#\n#789890085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########nm#\n########:b#\n########nm#\n########:b#\n########{##\n###########\n###########\n\n\nmessage Level 4\n##############\n#90008....908#\n#5...5....5.5#\n#5...5908.5.5#\n#708.55.5.5.5#\n#..5965.706.5#\n#9065.7008..5#\n#5..5....5.96#\n#5..7008.5.5##\n#5.l;k.5.5.5##\n#706.5.706.5##\n#####q#####}##\n##########:b&#\n##########n@m#\n##########:@b#\n##########n@m#\n##########:@b#\n##########n@m#\n##########:@b#\n##########n@m#\n##########:@b#\n##########n@m#\n###########¬b#\n##############\n\n(hard)\nmessage Level 5\n###############\n#...9008900008#\n#...5..55....5#\n#9006.965..906#\n#789085.5985..#\n#.76.5706576..#\n#.lk.5.90698..#\n#.5706.70065..#\n##q########}###\n###########}:m#\n###########}}}#\n###########nb}#\n###########:m}#\n###########}nb#\n###########n@m#\n###########:@b#\n###########~||#\n###############\n\n(\n##############\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#............#\n#...........##\n#...........##\n#..../......##\n#####q#####&##\n##########&&&#\n##########&&&#\n##########&&&#\n##########&&&#\n##############\n\n###########\n#900000008#\n#789890085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########nm#\n########:b#\n########nm#\n########cb#\n###########\n\n\n###########\n#900000008#\n#789890085#\n#.76769855#\n#.90085765#\n#.5.965906#\n#.78785708#\n#..59678.5#\n#.lh7006.5#\n#.5.....96#\n##q#####}##\n########}##\n########}##\n########}##\n########1##\n###########\n\n\n###############\n#...9008900008#\n#...5..55....5#\n#9006.965..906#\n#789085.5985..#\n#.76.5706576..#\n#.lk.5.90698..#\n#.5706.70065..#\n##q########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########}###\n###########{###\n###########&###\n###########&###\n###############\n###############\n\n\n\n###########\n###########\n##l;;;;;k##\n##5.....5##\n##5.....5##\n##5.....5##\n##5.....5##\n##5908906##\n##76.55..##\n##98.55..##\n##5706708##\n##q#####}##\n########}##\n########}##\n########}##\n########{##\n###########\n\n\n########### \n#.........#\n#...9008..#\n#...5..5..#\n#...7896..#\n#....55...#\n#.lk.55...#\n#.5706708.#\n##q#####5##\n########5##\n########5##\n########1##\n########.##\n###########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.lk......#\n#.5{!.....#\n##q#####.##\n########.##\n########.##\n########.##\n########.##\n###########\n\n###########\n#.........#\n#..9008...#\n#..7k.5...#\n#...g.5...#\n#...g.708.#\n#.90h...5.#\n#.5.....5.#\n##q#####}##\n########}##\n########}##\n########}##\n########{##\n###########\n))\n",[1,3,2,1,0,2,2,3,0,3,1,0,0,0,1,0,3,3,1,1,3,2,2,1,3,3,2,1,3,1,3,2,3,2,0,3,3,2,1,0,1,3,1,1],"background pants: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,background:1,1,1,1,\n1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,background skin:2,2,2,2,2,2,2,2,2,2,0,background hair_core hair_down hair_right:3,background hair_core hair_right hair_up:4,1,1,1,1,1,3,background hair_core hair_down hair_up:5,\n4,1,2,2,2,2,2,2,2,2,2,2,2,2,0,background hair_core hair_left hair_right:6,background hair_core hair_down hair_left:7,5,5,5,5,5,background hair_core hair_left hair_up:8,1,6,2,2,2,2,2,2,2,2,2,2,2,2,2,0,background hair_core hair_down hair_left selected:9,background hair_core hair_down hair_up selected:10,\n10,10,10,10,10,background hair_core hair_right hair_up selected:11,1,6,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,1,1,1,1,6,3,8,2,2,2,2,2,2,2,2,2,\n2,2,2,2,0,1,1,1,1,1,1,1,6,7,5,background hair_root hair_up:12,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,3,5,5,4,1,6,1,1,2,2,\n2,2,2,2,2,2,2,2,2,2,2,0,1,1,6,1,1,6,1,7,5,4,2,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,7,5,4,\n6,1,1,1,6,1,2,2,2,2,2,2,2,2,2,2,1,2,0,1,1,1,1,6,6,1,1,1,6,2,background hair_core hair_down hair_right inside:13,background hair_core hair_right hair_up inside:14,13,14,13,14,13,14,13,14,2,\n1,0,3,5,5,5,8,7,5,5,5,8,2,background hair_core hair_left hair_right inside:15,15,15,15,15,15,15,15,15,15,2,1,0,6,1,1,1,1,1,3,5,5,5,background hair_core hair_down hair_up inside:16,background hair_core hair_left hair_up inside:17,background hair_core hair_down hair_left inside:18,17,18,\n17,18,17,18,17,18,14,2,0,7,5,5,5,5,5,8,1,1,1,background glans:19,19,19,19,19,19,19,19,19,19,19,15,2,0,0,0,0,0,0,0,0,0,\n1,19,19,19,19,19,19,19,19,19,19,19,19,background guide_right hair_core hair_end hair_left inside:20,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,\n0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,\n19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,1,19,\n19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,\n0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,\n2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,\n19,19,19,19,19,19,19,2,2,0,0,0,0,0,0,0,0,0,1,19,19,19,19,19,19,19,19,19,19,19,19,background guide_right inside:21,2,0,0,0,0,0,0,0,0,\n0,1,1,19,19,19,19,19,19,19,19,19,19,19,21,2,0,0,0,0,0,0,0,0,0,0,1,21,21,21,21,21,21,21,21,21,21,21,21,2,0,\n0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,\n2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,\n0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,\n2,2,2,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,1,2,2,\n2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,\n0,0,0,0,0,1,1,1,1,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,0,0,0,0,0,0,0,\n",7,"1627894024137.8354"] ], [ - "REALTIME DOG MOUNTAIN RESCUE", - ["(\nTO DO LIST:\n\nDONE 1 - groundedness\nDONE 2 - raise unobstructed active leg, inactive leg grounded\nDONE 3 - lower ungrounded active leg into space \nDONE 4 - raise active leg (inactive leg ungrounded) = lower inactive leg + lower head\nDONE 5 - lower grounded active leg pushing the body up\nDONEISH 6 - walk forward (active grounded, inactive ungrounded)\n7 - walk back (active ungrounded, inactive grounded)\nDONE 8 - limit leg length\n\ncan walk = 'walking leg' higher than 'non-walking' one\n\nthanks to youAtExample for testing :]\n)\n\n\ntitle REALTIME DOG MOUNTAIN RESCUE\nauthor increpare\nhomepage www.increpare.com\n\nrealtime_interval 10\n\nrun_rules_on_level_start\n\nverbose_logging\n\nbackground_color #4953b4\ntext_color #cbdbfc\n\n========\nOBJECTS\n========\n\nBackground\n#8c95e6\n\nTarget\n#5fcde4\n\nWall\n#cbdbfc\n\n\nface_tl q\n#daab05 #aa5a1d\n.0000\n00000\n01001\n01001\n01001\n\n\nface_tr w\n#daab05 #000000\n000..\n0000.\n0110.\n0110.\n0000.\n\nface_bl a\n#daab05 #aa5a1d\n00110\n00000\n00000\n00000\n00000\n\n\nface_br \n#daab05 #f7cea7 #000000 #ac3232 #8c95e6\n00112\n01111\n01134\n00034\n00004\n\nleg_inactive e\nred\n\nfoot_inactive d\nred\n0000.\n00000\n00000\n00000\n00000\n\nleg_active r \nlightgreen\n\nfoot_active \nlightgreen\n0000.\n00000\n00000\n00000\n00000\n\nleg_bg \n#aa5a1d \n\nfoot_bg \n#aa5a1d \n0000.\n00000\n00000\n00000\n00000\n\nleg_fg \n#daab05 \n\nfoot_fg \n#daab05 \n0000.\n00000\n00000\n00000\n00000\n\n\n\n\nfoot_bg_outline\ntransparent #aa5a1d\n01010\n00000\n00001\n00000\n01010\n\n\n\n\nnope\n#ff0000 transparent\n01110\n10101\n11011\n10101\n01110\n\nok\n#99e550\n.....\n..0..\n.0.0.\n..0..\n.....\n\nactive_grounded\nyellow\n0....\n.....\n.....\n.....\n.....\n\ninactive_grounded\npurple\n.0...\n.....\n.....\n.....\n.....\n\n\nactive_foot_raise_obstructed\n#00ff00\n..0..\n.....\n.....\n.....\n.....\n\nmoved_inactive\n#0000ff\n...0.\n.....\n.....\n.....\n.....\n\nfrontlegforward \n#ff00ff\n.....\n0....\n.....\n.....\n.....\n\nrescue_head @\n#d77bba #8c95e6\n.000.\n00000\n00000\n00000\n.0000\n\nstarter_body }\n#d77bba\n\nrescue_body {\n#d77bba\n\nrescue_head_partial\n#d77bba #306082\n.010.\n01010\n10101\n01010\n.0101\n\nrescue_body_partial\n#d77bba #306082\n01010\n10101\n01010\n10101\n01010\n\nrescue_head_frozen\n#306082\n.000.\n00000\n00000\n00000\n.000.\n\n\nrescue_body_frozen\n#306082\n\nsadwuffed\ntransparent\n\n=======\nLEGEND\n=======\n\n\nplayer = face_Br \n\nface = face_tl or face_tr or face_bl or face_br\nlimb = leg_inactive or leg_active or foot_inactive or foot_active\nactive = leg_active or foot_active\ninactive = leg_inactive or foot_inactive\n\nlimb_fg = leg_fg or foot_fg\nlimb_bg = leg_Bg or foot_bg\n\nlimb_cosmetic = limb_fg or limb_bg\n\nfoot_outline = foot_bg_outline\n\ndog_not_active = face or inactive\ndog_not_inactive = face or active\ndog = face or active or inactive\n\n. = Background\n# = Wall\nP = Player and frontlegforward\nO = Target\n\nt = foot_inactive and leg_active and foot_bg_outline\nf = foot_active \nmoveconfirmation = nope or ok\n\ntags = inactive_grounded or active_grounded or active_foot_raise_obstructed or moved_inactive\n\nrescue = rescue_head or rescue_body or rescue_head_frozen or rescue_body_frozen or rescue_head_partial or rescue_body_partial or starter_body\n\n\" = sadwuffed and Wall\n=======\nSOUNDS\n=======\nsfx0 26832704 (partial freeze)\nsfx1 14141502 (freeze)\nsfx2 87054902 (head partial freeze)\nsfx3 37766702 (head full freeze)\nstartlevel 47855706\nendlevel 85788701\nsfx4 80124702 (found body)\n================\nCOLLISIONLAYERS\n================\n\nactive_grounded\ninactive_grounded\nactive_foot_raise_obstructed\nmoved_inactive\nfrontlegforward\n\n\nBackground\nTarget\nWall\nface\ninactive\nactive\nmoveconfirmation\nlimb_bg\nlimb_fg\n\nfoot_outline\n\nrescue\n\nsadwuffed\n\n======\nRULES\n======\n\n\nrandom right [stationary player ] [ rescue_head_partial | no starter_body no rescue_body no rescue_body_partial] -> [ stationary player ] [ rescue_head_frozen | ] sfx3\n+right [stationary player ] [ rescue_head | no starter_body no rescue_body no rescue_body_partial] -> [ stationary player ] [ rescue_head_partial | ] sfx2\n+right [stationary player ] [ rescue_body_partial | no starter_body no rescue_body no rescue_body_partial ] -> [ stationary player ] [ rescue_body_frozen | ] sfx1\n+right [stationary player ] [ rescue_body | no starter_body no rescue_body no rescue_body_partial ] -> [ stationary player ] [ rescue_body_partial | ] sfx0\n+[stationary player ] [ starter_body ] -> [ stationary player ] [ rescue_body ]\n\n[moveconfirmation]->[]\n\n(pressing action when you're right above a foot is the same as pressing up)\ndown [ action player | foot_inactive ] -> [ up player | foot_inactive ]\n\n\n\n(2 - raise unobstructed active leg, inactive leg grounded)\ndown [ up player no active_foot_raise_obstructed inactive_grounded| active | active ] [ foot_active ] -> [ up player | | active ] [ up foot_active ]\n\n(note to self: moved the following line up here from somewhere near the end. hope it doesn't break things, but if something breaks its probably this)\n(propagate foot movements to leg)\n[up foot_active ] [ leg_active ] -> [ up foot_active ] [ up leg_active ]\n\n(3 - lower ungrounded active leg into space)\nrandom down [ down player no active_grounded ] [ foot_active ] [ leg_active | no leg_active ] -> [ down player no active_grounded ][ down foot_active ] [ leg_active | leg_active ] \n\n\n\n\n(4 - raise active leg (inactive leg ungrounded) = lower inactive leg + lower head )\n\t(tell every non-active thing to move down)\ndown [ up player no inactive_grounded | active ] [ dog_not_active no player ] -> [ up player no inactive_grounded | active ] [ down dog_not_active ]\n\t(remove topmost active leg segment)\ndown [ up player no inactive_grounded | active ] -> [ | player ]\n\n(5 - lower grounded active leg pushing the body up)\ndown [ down player active_grounded ] [ dog_not_active no player ] -> [ down player active_grounded ] [ up dog_not_active ]\ndown [ | face_tr | down player active_grounded ] -> [ face_tr | player active_grounded | leg_active ]\n\n\n(6 - walk forward (active grounded, inactive ungrounded))\n\t(inactive foot has to be not just ungrounded, but above the active one (to ensure it can move without friction))\n down [ right player active_grounded ] [ foot_inactive | no leg_active ] -> cancel\n \n \n\t(first all faces try to move right)\n\t(remove movement if activity is wrong)\nright [ right player no active_grounded ] -> cancel\n( right [ right player inactive_grounded ] -> cancel )\n\n\n(toggle frontlegforward)\n[right player no frontlegforward active_grounded ] -> [ right player right frontlegforward active_grounded]\n[right player stationary frontlegforward active_grounded ] -> [ right player active_grounded]\n\n\t(move face)\n \n[ right player active_grounded ] [ face ] -> [ right player active_grounded no inactive_grounded ] [ right face ] \nright [ right face | no face ] -> [ | face moved_inactive ]\n\n(move back leg forward (inactive->active) )\nright [player moved_inactive ] [ leg_inactive | | ] -> [player moved_inactive ] [ | | leg_active ]\nright [player moved_inactive ] [ foot_inactive | | ] -> [player moved_inactive ] [ | | foot_active ]\n\n(turn active leg inactive (active->inactive))\ndown [ face_bl moved_inactive | leg_active ] -> [ face_bl moved_inactive | leg_inactive ]\ndown [ leg_inactive | leg_active ] -> [ leg_inactive | leg_inactive ]\nright [leg_inactive | foot_active ] -> [ leg_inactive | foot_inactive ]\n\n(remove moved tags)\n[moved_inactive]->[]\n\n(7 - walk back (active ungrounded, inactive grounded))\n\t(inactive foot has to be not just ungrounded, but above the active one (to ensure it can move without friction))\n down [ left player inactive_grounded ] [ foot_inactive leg_active ] -> cancel\n \n\t(first all faces try to move left)\n\t(remove movement if activity is wrong)\n\t(right [ right player no active_grounded ] -> cancel)\n\t(right [ right player inactive_grounded ] -> cancel)\n\n\n(toggle frontlegforward)\n[left player no frontlegforward inactive_grounded ] -> [ left player left frontlegforward inactive_grounded]\n[left player stationary frontlegforward inactive_grounded ] -> [ left player inactive_grounded ]\n\n\t(move face)\n[ left player inactive_grounded ] [ face ] -> [ left player inactive_grounded no active_grounded] [ left face ] \nleft [ left face | no face ] -> [ | face moved_inactive ]\n\n\n\t(move front leg back (active->inactive) )\nright [player moved_inactive ] [ | | leg_active ] -> [player moved_inactive ] [ leg_inactive | | ]\nright [player moved_inactive ] [ | | foot_active ] -> [player moved_inactive ] [ foot_inactive | | ]\n\n\n\t(turn inactive leg active (inactive->active))\ndown [ face_br moved_inactive | ] -> [ face_br moved_inactive | leg_active no leg_inactive]\ndown [ leg_active | leg_inactive ] -> [ leg_active | leg_active ]\n+ down [ leg_active | no leg_active | leg_inactive ] -> [ leg_active | leg_active | leg_active ]\nright [leg_active | foot_inactive ] -> [ leg_active | foot_active ]\n\n(10 - action to shrink)\n\t(can't schrink into back foot)\n\tdown[ action player | foot_inactive]->cancel\n\nrandom down [ action player | leg_active | no leg_active ] [ foot_active | ] -> [ action player | | leg_active ] [ | foot_active ]\ndown [ action player | leg_active ] -> [action player | ]\ndown [ action player] [ face_bl | leg_inactive ] -> [ action player ] [ face_bl|]\n[action player ] [ face no player ] -> [ action player ] [down face]\n[action player]->[down player]\n\ndown [ down player | no dog ] -> [ | player ]\n(remove moved tags)\n[moved_inactive]->[]\n\n\n\n[moving player]->[player]\n\n\n(if you have a frontlegforward, move it to player position)\nlate [ frontlegforward ] [ player no frontlegforward ] -> [] [ player frontlegforward ] \n\n(leg-drawing)\nlate [limb_cosmetic]->[]\n\nlate [ player frontlegforward ] [ leg_active ] -> [ player frontlegforward ] [ leg_active leg_fg ]\nlate [ player frontlegforward ] [ foot_active ] -> [ player frontlegforward ] [ foot_active foot_fg ]\n\nlate [ player frontlegforward ] [ leg_inactive ] -> [ player frontlegforward ] [ leg_inactive leg_bg ]\nlate [ player frontlegforward ] [ foot_inactive ] -> [ player frontlegforward ] [ foot_inactive foot_bg ]\n\n\nlate [ player no frontlegforward ] [ leg_active ] -> [ player ] [ leg_active leg_bg ]\nlate [ player no frontlegforward ] [ foot_active ] -> [ player ] [ foot_active foot_bg ]\n\nlate [ player no frontlegforward ] [ leg_inactive ] -> [ player ] [ leg_inactive leg_fg ]\nlate [ player no frontlegforward ] [ foot_inactive ] -> [ player ] [ foot_inactive foot_fg ]\n\n\n(draw inactive foot outline)\nlate [ foot_bg_outline ] [ foot_bg no foot_bg_outline ] -> [] [ foot_bg foot_bg_outline ] \n\n\n(remove tags)\nlate [ tags ] -> []\n \n(1 - groundedness)\nlate down [ player ] [ active | wall ] -> [ player active_grounded ] [ active | wall ]\nlate down [ player ] [ inactive | wall ] -> [ player inactive_grounded ] [ inactive | wall ]\nlate up [ player ] [foot_active | wall] -> [ player active_foot_raise_obstructed ] [foot_active | wall]\n\n(limit leg length to 5)\n( down [ leg_active | leg_active |leg_active |leg_active | leg_active | leg_active ] -> cancel )\n( down [ leg_inactive | leg_inactive |leg_inactive | leg_active |leg_inactive | leg_inactive ] -> cancel )\n\n\n(leg can't be shorter than 1)\nright [ player | foot_active ] -> cancel\n\n\n(collision)\nlate [dog wall ] -> cancel\n\nlate [dog | rescue_head ] -> win\nlate [dog | rescue_head_partial ] -> win\n\nlate [ dog | rescue_head_frozen ] [sadwuffed ]->[ dog | rescue_head_frozen ] [ ] sfx4 message sad wuff :(\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\nmessage Rescue 1 of 3 Rescue the body before it freezes!\n\"#######################################\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#...qw.................................#\n#...ap.................................#\n#...er.................................#\n#...etf....##......##.....##....@{{}...#\n########################################\n########################################\n\nmessage You rescued me! You're my doggy hero!\n\nmessage Rescue 2 of 3 [In case you didn't realize, you can press X to shrink]\n\"############################################\n#..........#####............................#\n#............#..............................#\n#............#..............................#\n#............#..............................#\n#............#..............................#\n#............#..............................#\n#............#..............................#\n#...........##..............................#\n#...........##..............................#\n###.qw......................................#\n#...ap......................................#\n#...er.............................#..@{{}..#\n##..etf..##................#.....############\n##############...........#.###..#############\n#################...###.#####################\n#################...#########################\n#############################################\n\nmessage My saviour! Are you an angel?\n\n\n\nmessage Rescue 3 of 3\n\n\n\"###################################################\n#######.....#............###.......................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######...................#........................#\n#######...................#........................#\n#######...................#........................#\n#######...................#........................#\n#######...############....#........................#\n#######......#########....#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#########....####.........#........................#\n#............###..........#........................#\n#............###.....######........................#\n#............##.............................@{{{{}.#\n#.qw.........##...........................##########\n#.ap.....######..........................###########\n#.er....########..............######################\n#.etf..################...##########################\n####################################################\n####################################################\n\nmessage Amazing! You have a great future ahead of you, hero rescue dog!\n\n(\n#...........................................\n#...........................................\n#...........................................\n#...........................................\n#...........##..............................\n#...........##..............................\n#...qw......................................\n#...ap......................................\n#...er.............................#..@{{{..\n##..etf..##................#.....###########\n##############...........#.###..############\n#################...###.####################\n#################...########################\n############################################\n############################################\n\n#...........................................\n#...........................................\n#...........................................\n#...........................................\n#...........##..............................\n##..........##..............................\n####qw......................................\n#...ap......................................\n#...er.............................#..@{{...\n##..etf..##................#.....###########\n##############...........#.###..############\n#################...###.####################\n#################...########################\n############################################\n############################################\n\n\n.......................\n.......................\n.......................\n.......................\n.......................\n............##.........\n....qw......##.........\n....ap.................\n....er.................\n....er.................\n##..etf..##............\n##....########.........\n#################...###\n#################...###\n#################...###\n#######################\n)\n", [0, 0, 3, 2, 2, 2, 3, 3, 2, 2, 2, 3, 2, 2, 0, 0, 1, 3, 4, 4, 2, 2, 2, 4, 4, 3, 3, 2, 2, 2, "tick", 3, 2, 2, 4, 4, 2, 2, 3, 3, 4, 2, 3, 3, 2, 2, 4, 2, 3, 3, 3, 2, 4, 2, 3, 2, 2, 2, 2, 2, 2, 4, 2, 2, 4, 2, 2, 2, 4, 4, 4, 4, 4, "tick", 4, 4, 4, 3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 2, 2, 2, 3, 1, 1, 2, 2, 2, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 0, 0, 0, 2, 2, 2, 1, 0, 0, 0, 1, 1, 0, 0, 2, 2, "tick", 3, 3, 1, 2, 1, 1, 3, 3, "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 3, "tick", 2, 2, 2, 2, 1, 2, 2, 2, 2, 3, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 0, 0, 0, 0], "background sadwuffed wall:0,background wall:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,background:2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,1,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background face_tl:3,background face_bl:4,background leg_bg leg_inactive:5,5,5,1,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,background face_tr:6,background face_br frontlegforward inactive_grounded:7,background leg_active leg_fg:8,8,background foot_bg foot_bg_outline foot_inactive leg_active leg_fg:9,8,8,8,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,\n2,2,background foot_active foot_fg:10,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,\n2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,2,2,2,\n2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,\n2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,\n1,1,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,\n1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background rescue_head:11,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background rescue_body:12,1,1,\n1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,12,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,12,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background rescue_body_partial:13,1,1,1,1,\n1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background rescue_body_frozen:14,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n", 7, "1627894053043.232"] + "REALTIME DOG MOUNTAIN RESCUE", + ["(\nTO DO LIST:\n\nDONE 1 - groundedness\nDONE 2 - raise unobstructed active leg, inactive leg grounded\nDONE 3 - lower ungrounded active leg into space \nDONE 4 - raise active leg (inactive leg ungrounded) = lower inactive leg + lower head\nDONE 5 - lower grounded active leg pushing the body up\nDONEISH 6 - walk forward (active grounded, inactive ungrounded)\n7 - walk back (active ungrounded, inactive grounded)\nDONE 8 - limit leg length\n\ncan walk = 'walking leg' higher than 'non-walking' one\n\nthanks to youAtExample for testing :]\n)\n\n\ntitle REALTIME DOG MOUNTAIN RESCUE\nauthor increpare\nhomepage www.increpare.com\n\nrealtime_interval 10\n\nrun_rules_on_level_start\n\nverbose_logging\n\nbackground_color #4953b4\ntext_color #cbdbfc\n\n========\nOBJECTS\n========\n\nBackground\n#8c95e6\n\nTarget\n#5fcde4\n\nWall\n#cbdbfc\n\n\nface_tl q\n#daab05 #aa5a1d\n.0000\n00000\n01001\n01001\n01001\n\n\nface_tr w\n#daab05 #000000\n000..\n0000.\n0110.\n0110.\n0000.\n\nface_bl a\n#daab05 #aa5a1d\n00110\n00000\n00000\n00000\n00000\n\n\nface_br \n#daab05 #f7cea7 #000000 #ac3232 #8c95e6\n00112\n01111\n01134\n00034\n00004\n\nleg_inactive e\nred\n\nfoot_inactive d\nred\n0000.\n00000\n00000\n00000\n00000\n\nleg_active r \nlightgreen\n\nfoot_active \nlightgreen\n0000.\n00000\n00000\n00000\n00000\n\nleg_bg \n#aa5a1d \n\nfoot_bg \n#aa5a1d \n0000.\n00000\n00000\n00000\n00000\n\nleg_fg \n#daab05 \n\nfoot_fg \n#daab05 \n0000.\n00000\n00000\n00000\n00000\n\n\n\n\nfoot_bg_outline\ntransparent #aa5a1d\n01010\n00000\n00001\n00000\n01010\n\n\n\n\nnope\n#ff0000 transparent\n01110\n10101\n11011\n10101\n01110\n\nok\n#99e550\n.....\n..0..\n.0.0.\n..0..\n.....\n\nactive_grounded\nyellow\n0....\n.....\n.....\n.....\n.....\n\ninactive_grounded\npurple\n.0...\n.....\n.....\n.....\n.....\n\n\nactive_foot_raise_obstructed\n#00ff00\n..0..\n.....\n.....\n.....\n.....\n\nmoved_inactive\n#0000ff\n...0.\n.....\n.....\n.....\n.....\n\nfrontlegforward \n#ff00ff\n.....\n0....\n.....\n.....\n.....\n\nrescue_head @\n#d77bba #8c95e6\n.000.\n00000\n00000\n00000\n.0000\n\nstarter_body }\n#d77bba\n\nrescue_body {\n#d77bba\n\nrescue_head_partial\n#d77bba #306082\n.010.\n01010\n10101\n01010\n.0101\n\nrescue_body_partial\n#d77bba #306082\n01010\n10101\n01010\n10101\n01010\n\nrescue_head_frozen\n#306082\n.000.\n00000\n00000\n00000\n.000.\n\n\nrescue_body_frozen\n#306082\n\nsadwuffed\ntransparent\n\n=======\nLEGEND\n=======\n\n\nplayer = face_Br \n\nface = face_tl or face_tr or face_bl or face_br\nlimb = leg_inactive or leg_active or foot_inactive or foot_active\nactive = leg_active or foot_active\ninactive = leg_inactive or foot_inactive\n\nlimb_fg = leg_fg or foot_fg\nlimb_bg = leg_Bg or foot_bg\n\nlimb_cosmetic = limb_fg or limb_bg\n\nfoot_outline = foot_bg_outline\n\ndog_not_active = face or inactive\ndog_not_inactive = face or active\ndog = face or active or inactive\n\n. = Background\n# = Wall\nP = Player and frontlegforward\nO = Target\n\nt = foot_inactive and leg_active and foot_bg_outline\nf = foot_active \nmoveconfirmation = nope or ok\n\ntags = inactive_grounded or active_grounded or active_foot_raise_obstructed or moved_inactive\n\nrescue = rescue_head or rescue_body or rescue_head_frozen or rescue_body_frozen or rescue_head_partial or rescue_body_partial or starter_body\n\n\" = sadwuffed and Wall\n=======\nSOUNDS\n=======\nsfx0 26832704 (partial freeze)\nsfx1 14141502 (freeze)\nsfx2 87054902 (head partial freeze)\nsfx3 37766702 (head full freeze)\nstartlevel 47855706\nendlevel 85788701\nsfx4 80124702 (found body)\n================\nCOLLISIONLAYERS\n================\n\nactive_grounded\ninactive_grounded\nactive_foot_raise_obstructed\nmoved_inactive\nfrontlegforward\n\n\nBackground\nTarget\nWall\nface\ninactive\nactive\nmoveconfirmation\nlimb_bg\nlimb_fg\n\nfoot_outline\n\nrescue\n\nsadwuffed\n\n======\nRULES\n======\n\n\nrandom right [stationary player ] [ rescue_head_partial | no starter_body no rescue_body no rescue_body_partial] -> [ stationary player ] [ rescue_head_frozen | ] sfx3\n+right [stationary player ] [ rescue_head | no starter_body no rescue_body no rescue_body_partial] -> [ stationary player ] [ rescue_head_partial | ] sfx2\n+right [stationary player ] [ rescue_body_partial | no starter_body no rescue_body no rescue_body_partial ] -> [ stationary player ] [ rescue_body_frozen | ] sfx1\n+right [stationary player ] [ rescue_body | no starter_body no rescue_body no rescue_body_partial ] -> [ stationary player ] [ rescue_body_partial | ] sfx0\n+[stationary player ] [ starter_body ] -> [ stationary player ] [ rescue_body ]\n\n[moveconfirmation]->[]\n\n(pressing action when you're right above a foot is the same as pressing up)\ndown [ action player | foot_inactive ] -> [ up player | foot_inactive ]\n\n\n\n(2 - raise unobstructed active leg, inactive leg grounded)\ndown [ up player no active_foot_raise_obstructed inactive_grounded| active | active ] [ foot_active ] -> [ up player | | active ] [ up foot_active ]\n\n(note to self: moved the following line up here from somewhere near the end. hope it doesn't break things, but if something breaks its probably this)\n(propagate foot movements to leg)\n[up foot_active ] [ leg_active ] -> [ up foot_active ] [ up leg_active ]\n\n(3 - lower ungrounded active leg into space)\nrandom down [ down player no active_grounded ] [ foot_active ] [ leg_active | no leg_active ] -> [ down player no active_grounded ][ down foot_active ] [ leg_active | leg_active ] \n\n\n\n\n(4 - raise active leg (inactive leg ungrounded) = lower inactive leg + lower head )\n\t(tell every non-active thing to move down)\ndown [ up player no inactive_grounded | active ] [ dog_not_active no player ] -> [ up player no inactive_grounded | active ] [ down dog_not_active ]\n\t(remove topmost active leg segment)\ndown [ up player no inactive_grounded | active ] -> [ | player ]\n\n(5 - lower grounded active leg pushing the body up)\ndown [ down player active_grounded ] [ dog_not_active no player ] -> [ down player active_grounded ] [ up dog_not_active ]\ndown [ | face_tr | down player active_grounded ] -> [ face_tr | player active_grounded | leg_active ]\n\n\n(6 - walk forward (active grounded, inactive ungrounded))\n\t(inactive foot has to be not just ungrounded, but above the active one (to ensure it can move without friction))\n down [ right player active_grounded ] [ foot_inactive | no leg_active ] -> cancel\n \n \n\t(first all faces try to move right)\n\t(remove movement if activity is wrong)\nright [ right player no active_grounded ] -> cancel\n( right [ right player inactive_grounded ] -> cancel )\n\n\n(toggle frontlegforward)\n[right player no frontlegforward active_grounded ] -> [ right player right frontlegforward active_grounded]\n[right player stationary frontlegforward active_grounded ] -> [ right player active_grounded]\n\n\t(move face)\n \n[ right player active_grounded ] [ face ] -> [ right player active_grounded no inactive_grounded ] [ right face ] \nright [ right face | no face ] -> [ | face moved_inactive ]\n\n(move back leg forward (inactive->active) )\nright [player moved_inactive ] [ leg_inactive | | ] -> [player moved_inactive ] [ | | leg_active ]\nright [player moved_inactive ] [ foot_inactive | | ] -> [player moved_inactive ] [ | | foot_active ]\n\n(turn active leg inactive (active->inactive))\ndown [ face_bl moved_inactive | leg_active ] -> [ face_bl moved_inactive | leg_inactive ]\ndown [ leg_inactive | leg_active ] -> [ leg_inactive | leg_inactive ]\nright [leg_inactive | foot_active ] -> [ leg_inactive | foot_inactive ]\n\n(remove moved tags)\n[moved_inactive]->[]\n\n(7 - walk back (active ungrounded, inactive grounded))\n\t(inactive foot has to be not just ungrounded, but above the active one (to ensure it can move without friction))\n down [ left player inactive_grounded ] [ foot_inactive leg_active ] -> cancel\n \n\t(first all faces try to move left)\n\t(remove movement if activity is wrong)\n\t(right [ right player no active_grounded ] -> cancel)\n\t(right [ right player inactive_grounded ] -> cancel)\n\n\n(toggle frontlegforward)\n[left player no frontlegforward inactive_grounded ] -> [ left player left frontlegforward inactive_grounded]\n[left player stationary frontlegforward inactive_grounded ] -> [ left player inactive_grounded ]\n\n\t(move face)\n[ left player inactive_grounded ] [ face ] -> [ left player inactive_grounded no active_grounded] [ left face ] \nleft [ left face | no face ] -> [ | face moved_inactive ]\n\n\n\t(move front leg back (active->inactive) )\nright [player moved_inactive ] [ | | leg_active ] -> [player moved_inactive ] [ leg_inactive | | ]\nright [player moved_inactive ] [ | | foot_active ] -> [player moved_inactive ] [ foot_inactive | | ]\n\n\n\t(turn inactive leg active (inactive->active))\ndown [ face_br moved_inactive | ] -> [ face_br moved_inactive | leg_active no leg_inactive]\ndown [ leg_active | leg_inactive ] -> [ leg_active | leg_active ]\n+ down [ leg_active | no leg_active | leg_inactive ] -> [ leg_active | leg_active | leg_active ]\nright [leg_active | foot_inactive ] -> [ leg_active | foot_active ]\n\n(10 - action to shrink)\n\t(can't schrink into back foot)\n\tdown[ action player | foot_inactive]->cancel\n\nrandom down [ action player | leg_active | no leg_active ] [ foot_active | ] -> [ action player | | leg_active ] [ | foot_active ]\ndown [ action player | leg_active ] -> [action player | ]\ndown [ action player] [ face_bl | leg_inactive ] -> [ action player ] [ face_bl|]\n[action player ] [ face no player ] -> [ action player ] [down face]\n[action player]->[down player]\n\ndown [ down player | no dog ] -> [ | player ]\n(remove moved tags)\n[moved_inactive]->[]\n\n\n\n[moving player]->[player]\n\n\n(if you have a frontlegforward, move it to player position)\nlate [ frontlegforward ] [ player no frontlegforward ] -> [] [ player frontlegforward ] \n\n(leg-drawing)\nlate [limb_cosmetic]->[]\n\nlate [ player frontlegforward ] [ leg_active ] -> [ player frontlegforward ] [ leg_active leg_fg ]\nlate [ player frontlegforward ] [ foot_active ] -> [ player frontlegforward ] [ foot_active foot_fg ]\n\nlate [ player frontlegforward ] [ leg_inactive ] -> [ player frontlegforward ] [ leg_inactive leg_bg ]\nlate [ player frontlegforward ] [ foot_inactive ] -> [ player frontlegforward ] [ foot_inactive foot_bg ]\n\n\nlate [ player no frontlegforward ] [ leg_active ] -> [ player ] [ leg_active leg_bg ]\nlate [ player no frontlegforward ] [ foot_active ] -> [ player ] [ foot_active foot_bg ]\n\nlate [ player no frontlegforward ] [ leg_inactive ] -> [ player ] [ leg_inactive leg_fg ]\nlate [ player no frontlegforward ] [ foot_inactive ] -> [ player ] [ foot_inactive foot_fg ]\n\n\n(draw inactive foot outline)\nlate [ foot_bg_outline ] [ foot_bg no foot_bg_outline ] -> [] [ foot_bg foot_bg_outline ] \n\n\n(remove tags)\nlate [ tags ] -> []\n \n(1 - groundedness)\nlate down [ player ] [ active | wall ] -> [ player active_grounded ] [ active | wall ]\nlate down [ player ] [ inactive | wall ] -> [ player inactive_grounded ] [ inactive | wall ]\nlate up [ player ] [foot_active | wall] -> [ player active_foot_raise_obstructed ] [foot_active | wall]\n\n(limit leg length to 5)\n( down [ leg_active | leg_active |leg_active |leg_active | leg_active | leg_active ] -> cancel )\n( down [ leg_inactive | leg_inactive |leg_inactive | leg_active |leg_inactive | leg_inactive ] -> cancel )\n\n\n(leg can't be shorter than 1)\nright [ player | foot_active ] -> cancel\n\n\n(collision)\nlate [dog wall ] -> cancel\n\nlate [dog | rescue_head ] -> win\nlate [dog | rescue_head_partial ] -> win\n\nlate [ dog | rescue_head_frozen ] [sadwuffed ]->[ dog | rescue_head_frozen ] [ ] sfx4 message sad wuff :(\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\nmessage Rescue 1 of 3 Rescue the body before it freezes!\n\"#######################################\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#......................................#\n#...qw.................................#\n#...ap.................................#\n#...er.................................#\n#...etf....##......##.....##....@{{}...#\n########################################\n########################################\n\nmessage You rescued me! You're my doggy hero!\n\nmessage Rescue 2 of 3 [In case you didn't realize, you can press X to shrink]\n\"############################################\n#..........#####............................#\n#............#..............................#\n#............#..............................#\n#............#..............................#\n#............#..............................#\n#............#..............................#\n#............#..............................#\n#...........##..............................#\n#...........##..............................#\n###.qw......................................#\n#...ap......................................#\n#...er.............................#..@{{}..#\n##..etf..##................#.....############\n##############...........#.###..#############\n#################...###.#####################\n#################...#########################\n#############################################\n\nmessage My saviour! Are you an angel?\n\n\n\nmessage Rescue 3 of 3\n\n\n\"###################################################\n#######.....#............###.......................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######.....#.............#........................#\n#######...................#........................#\n#######...................#........................#\n#######...................#........................#\n#######...................#........................#\n#######...############....#........................#\n#######......#########....#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#######......####.........#........................#\n#########....####.........#........................#\n#............###..........#........................#\n#............###.....######........................#\n#............##.............................@{{{{}.#\n#.qw.........##...........................##########\n#.ap.....######..........................###########\n#.er....########..............######################\n#.etf..################...##########################\n####################################################\n####################################################\n\nmessage Amazing! You have a great future ahead of you, hero rescue dog!\n\n(\n#...........................................\n#...........................................\n#...........................................\n#...........................................\n#...........##..............................\n#...........##..............................\n#...qw......................................\n#...ap......................................\n#...er.............................#..@{{{..\n##..etf..##................#.....###########\n##############...........#.###..############\n#################...###.####################\n#################...########################\n############################################\n############################################\n\n#...........................................\n#...........................................\n#...........................................\n#...........................................\n#...........##..............................\n##..........##..............................\n####qw......................................\n#...ap......................................\n#...er.............................#..@{{...\n##..etf..##................#.....###########\n##############...........#.###..############\n#################...###.####################\n#################...########################\n############################################\n############################################\n\n\n.......................\n.......................\n.......................\n.......................\n.......................\n............##.........\n....qw......##.........\n....ap.................\n....er.................\n....er.................\n##..etf..##............\n##....########.........\n#################...###\n#################...###\n#################...###\n#######################\n)\n",[0,0,3,2,2,2,3,3,2,2,2,3,2,2,0,0,1,3,4,4,2,2,2,4,4,3,3,2,2,2,"tick",3,2,2,4,4,2,2,3,3,4,2,3,3,2,2,4,2,3,3,3,2,4,2,3,2,2,2,2,2,2,4,2,2,4,2,2,2,4,4,4,4,4,"tick",4,4,4,3,2,2,2,2,2,2,2,2,1,0,2,2,2,3,1,1,2,2,2,0,0,0,0,0,0,4,4,4,4,4,0,0,0,2,2,2,1,0,0,0,1,1,0,0,2,2,"tick",3,3,1,2,1,1,3,3,"undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo",2,2,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,3,"tick",2,2,2,2,1,2,2,2,2,3,2,2,2,1,0,0,0,0,0,0,0,1,2,2,0,0,0,0],"background sadwuffed wall:0,background wall:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,background:2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,1,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background face_tl:3,background face_bl:4,background leg_bg leg_inactive:5,5,5,1,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,background face_tr:6,background face_br frontlegforward inactive_grounded:7,background leg_active leg_fg:8,8,background foot_bg foot_bg_outline foot_inactive leg_active leg_fg:9,8,8,8,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,\n2,2,background foot_active foot_fg:10,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,\n2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,2,2,2,\n2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,\n2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,\n1,1,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,\n1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background rescue_head:11,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background rescue_body:12,1,1,\n1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,12,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,2,12,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background rescue_body_partial:13,1,1,1,1,\n1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,background rescue_body_frozen:14,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n",7,"1627894053043.232"] ], [ - "You can't make this up!", - ["title You can't make this up!\nauthor increpare\nhomepage www.increpare.com\n\n\nbackground_color #b7885b\n\ntext_color black\n\n=======\nOBJECTS\n=======\n\nBackground\n#eec39a\n\nPlayer\n#99e550\n\ntopmarker\nred\n.....\n.....\n.....\n.....\n.....\n\nBox1\n#df7126\n\nBox2\n#5fcde4\n\nBox3\n#d77bba\n\nBox4\n#fbf236\n\nWall\n#b7885b\n\n======\nLEGEND\n======\n\n. = Background\n@ = Player\n1 = Box1\n2 = Box2\n3 = Box3\n4 = Box4\n# = Wall\nq = topmarker and 1\nw = topmarker and 2\ne = topmarker and 3\nr = topmarker and 4\n\nBox = Box1 or Box2 or Box3 or Box4\n\n======\nSOUNDS\n======\n\n===============\nCOLLISIONLAYERS\n===============\n\nBackground\nPlayer, Box, Wall\ntopmarker\n\n=====\nRULES\n=====\n\n[ > Player | Box ] -> [ > Player | > Box ]\n\n\n\n[ moving Box1 | Box1 ] -> [ moving Box1 | moving Box1 ]\n+ [ moving Box2 | Box2 ] -> [ moving Box2 | moving Box2 ]\n+ [ moving Box3 | Box3 ] -> [ moving Box3 | moving Box3 ]\n+ [ moving Box4 | Box4 ] -> [ moving Box4 | moving Box4 ]\n+ [ > Box | Box ] -> [ > Box | > Box ]\n\n\n\n[ > Box | Wall ] -> cancel\n\n[ moving box topmarker] ->[moving box moving topmarker]\n\nlate right [ topmarker box1 | | topmarker box2 | | topmarker box3 | player | topmarker box4 ] -> win\nlate right [ topmarker box1 | | topmarker box2 || | topmarker box3 | player | topmarker box4 ] -> win\n\n=============\nWINCONDITIONS\n=============\n\n======\nLEVELS\n======\n\nmessage Level 1 of 1 : You can't make this up!\n\n##################\n#................#\n#................#\n#................#\n#......w.........#\n#....eq2r........#\n#....3124...@....#\n#....3144........#\n#....3111........#\n#................#\n#................#\n#................#\n#................#\n##################\n\n\nmessage NVM I guess you can. \n", [2, 1, 1, 1, 1, 0, 0, 0, 1, 2, 2, 1, 2, 2, 2, 3, 3], "background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,background box3 topmarker:2,background box3:3,3,3,1,1,1,1,0,0,1,\n1,1,background box2 topmarker:4,background box2:5,5,1,background box1 topmarker:6,background box1:7,7,7,1,0,0,1,1,1,1,1,\n1,1,1,1,1,7,1,0,0,1,1,1,1,1,1,1,1,1,\n1,7,1,0,0,1,1,1,1,1,1,1,1,background player:8,background box4:9,1,1,0,\n0,1,1,1,1,1,1,1,background box4 topmarker:10,9,9,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 1, "1627894109796.508"] + "You can't make this up!", + ["title You can't make this up!\nauthor increpare\nhomepage www.increpare.com\n\n\nbackground_color #b7885b\n\ntext_color black\n\n=======\nOBJECTS\n=======\n\nBackground\n#eec39a\n\nPlayer\n#99e550\n\ntopmarker\nred\n.....\n.....\n.....\n.....\n.....\n\nBox1\n#df7126\n\nBox2\n#5fcde4\n\nBox3\n#d77bba\n\nBox4\n#fbf236\n\nWall\n#b7885b\n\n======\nLEGEND\n======\n\n. = Background\n@ = Player\n1 = Box1\n2 = Box2\n3 = Box3\n4 = Box4\n# = Wall\nq = topmarker and 1\nw = topmarker and 2\ne = topmarker and 3\nr = topmarker and 4\n\nBox = Box1 or Box2 or Box3 or Box4\n\n======\nSOUNDS\n======\n\n===============\nCOLLISIONLAYERS\n===============\n\nBackground\nPlayer, Box, Wall\ntopmarker\n\n=====\nRULES\n=====\n\n[ > Player | Box ] -> [ > Player | > Box ]\n\n\n\n[ moving Box1 | Box1 ] -> [ moving Box1 | moving Box1 ]\n+ [ moving Box2 | Box2 ] -> [ moving Box2 | moving Box2 ]\n+ [ moving Box3 | Box3 ] -> [ moving Box3 | moving Box3 ]\n+ [ moving Box4 | Box4 ] -> [ moving Box4 | moving Box4 ]\n+ [ > Box | Box ] -> [ > Box | > Box ]\n\n\n\n[ > Box | Wall ] -> cancel\n\n[ moving box topmarker] ->[moving box moving topmarker]\n\nlate right [ topmarker box1 | | topmarker box2 | | topmarker box3 | player | topmarker box4 ] -> win\nlate right [ topmarker box1 | | topmarker box2 || | topmarker box3 | player | topmarker box4 ] -> win\n\n=============\nWINCONDITIONS\n=============\n\n======\nLEVELS\n======\n\nmessage Level 1 of 1 : You can't make this up!\n\n##################\n#................#\n#................#\n#................#\n#......w.........#\n#....eq2r........#\n#....3124...@....#\n#....3144........#\n#....3111........#\n#................#\n#................#\n#................#\n#................#\n##################\n\n\nmessage NVM I guess you can. \n",[2,1,1,1,1,0,0,0,1,2,2,1,2,2,2,3,3],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,background box3 topmarker:2,background box3:3,3,3,1,1,1,1,0,0,1,\n1,1,background box2 topmarker:4,background box2:5,5,1,background box1 topmarker:6,background box1:7,7,7,1,0,0,1,1,1,1,1,\n1,1,1,1,1,7,1,0,0,1,1,1,1,1,1,1,1,1,\n1,7,1,0,0,1,1,1,1,1,1,1,1,background player:8,background box4:9,1,1,0,\n0,1,1,1,1,1,1,1,background box4 topmarker:10,9,9,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,\n1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",1,"1627894109796.508"] ], [ - "Explodoban", - ["title Explodoban\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #063421\n\ntext_color #c978e7\n\n========\nOBJECTS\n========\n\nBackground\n#145339\n\n\nTarget\n#063421\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\n#323c39 #807e7c #a9a8a7 #595652 #232d2a\n01112\n03331\n03331\n03331\n44444\n\n\n\nPlayer\n#1f1f1f #000000 #d6cd1c #414141 #8a1b1b\n.000.\n12320\n11000\n.111.\n44.44\n\n\nCrate\n#984fb3 #ae60cb #c978e7 #76428a #5f2d72\n01112\n3...1\n3...1\n3...1\n44440\n\nexplode_up\n#fbf236 #ac3232\n.....\n..0..\n.000.\n01110\n00110\n\nexplode_down\n#fbf236 #ac3232 \n01100\n01110\n.000.\n..0..\n.....\n\nexplode_left\n#fbf236 #ac3232\n...00\n..011\n.0011\n..010\n...00\n\nexplode_right\n#fbf236 #ac3232\n00...\n010..\n1100.\n110..\n00...\n\ndeadzone ,\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\n=======\nLEGEND\n=======\n\nexplode = explode_up or explode_down or explode_left or explode_right\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 33465106\nendlevel 83744503\nstartgame 92244503\nplayer action 18708701\nplayer move 254507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ndeadzone\nTarget\nPlayer, Wall, Crate\nexplode\n======\nRULES\n======\n\n[ explode]->[no explode]\n[ action Player | Crate ] -> [ action Player | > Crate ]\n\nup [ action Player | no wall ] -> [ action Player | explode_up ]\ndown [ action Player | no wall ] -> [ action Player | explode_down ]\nleft [ action Player | no wall ] -> [ action Player | explode_left ]\nright [ action Player | no wall ] -> [ action Player | explode_right ]\n\nlate [ explode Crate ] -> [crate]\nlate [explode] -> again\n\nlate [crate deadzone]->cancel\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 7 [you can press x to explode]\n(kinda cute)\n########\n#.o.@..#\n#.o*.*.#\n#....p.#\n#####..#\n########\n\nmessage Level 2 of 7 \n(kinda bad but i kinda like it)\n########\n#o@.o..#\n#.*..*.#\n#p.#...#\n########\n\nmessage Level 3 of 7 \n(pretty nice to figure out, and not hard)\n########\n#...oo.#\n#o**..p#\n#..*...#\n#####..#\n########\n\nmessage Level 4 of 7 \n#########\n#.......#\n#...@...#\n#.o.....#\n#.*..@..#\n#.p@....#\n#.......#\n#########\n\nmessage Level 5 of 7 \n(tricky but fine)\n########\n#...@.p#\n#.o*o..#\n#.*....#\n#####..#\n########\n\n\n\nmessage Level 6 of 7\n(middle-hard!)\n#########\n###..####\n#.....*p#\n#.#o*.o.#\n#....#..#\n#########\n\nmessage Level 7 of 7 \n(kinda tricky but also good!)\n########\n##..p..#\n##.*@*.#\n#o....##\n##....##\n###.#o##\n########\n\nmessage Congratulations!\n\n\n(\n\n(neither good nor trivial:)\n########\n#,.@..,#\n#,...@,#\n#,@...,#\n#,p*o.,#\n#,@...,#\n#,...@,#\n#,.@..,#\n########\n\n(meh)\n##########\n###......#\n#.....@..#\n#...@..*.#\n#.o....o.#\n#.*..@...#\n#.p@.....#\n#......###\n##########\n\n\n\n########\n#......#\n#...@..#\n#.o....#\n#.*..@.#\n#.p@...#\n#......#\n########\n\n\n####.####\n####@####\n##.....##\n##.....##\n##.....##\n.@.*o.*o.\n##.....##.\n##.....##\n##.p...##\n####@####\n####.####\n\n####.####\n####@####\n##.....##\n##.....##\n.@.*o*.o.\n##.....##\n##.p...##\n####@####\n####.####\n\n####.####\n####o####\n##.....##\n##..*..##\n.o.*@*.o.\n##..*..##\n##p....##\n####o####\n####.####\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*O.#\n##.*P*.#\n#..O*O.#\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(\n==========\nTRANSFORM\n==========\n[player]->[]\n[target]->[]\n[crate]->[]\n\nchoose 1 [ no wall] ->[ player]\nchoose 2 [ no wall no player]->[target]\nchoose 2 [no wall no player] ->[crate]\n\n\n))\n", [1, 1, 2, 1, 1, 0, 4, 2, 4, 1, 2, 1, 4], "background wall:0,0,0,0,0,0,0,0,background:1,\n1,1,0,0,0,1,0,1,0,\n0,1,background crate:2,background target:3,background player:4,0,0,1,1,\n1,1,0,0,0,1,1,0,0,\n0,0,1,3,1,0,0,0,2,\n1,1,0,0,0,0,0,0,0,\n", 11, "1627894122279.9321"] + "Explodoban", + ["title Explodoban\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #063421\n\ntext_color #c978e7\n\n========\nOBJECTS\n========\n\nBackground\n#145339\n\n\nTarget\n#063421\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\n#323c39 #807e7c #a9a8a7 #595652 #232d2a\n01112\n03331\n03331\n03331\n44444\n\n\n\nPlayer\n#1f1f1f #000000 #d6cd1c #414141 #8a1b1b\n.000.\n12320\n11000\n.111.\n44.44\n\n\nCrate\n#984fb3 #ae60cb #c978e7 #76428a #5f2d72\n01112\n3...1\n3...1\n3...1\n44440\n\nexplode_up\n#fbf236 #ac3232\n.....\n..0..\n.000.\n01110\n00110\n\nexplode_down\n#fbf236 #ac3232 \n01100\n01110\n.000.\n..0..\n.....\n\nexplode_left\n#fbf236 #ac3232\n...00\n..011\n.0011\n..010\n...00\n\nexplode_right\n#fbf236 #ac3232\n00...\n010..\n1100.\n110..\n00...\n\ndeadzone ,\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\n=======\nLEGEND\n=======\n\nexplode = explode_up or explode_down or explode_left or explode_right\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 33465106\nendlevel 83744503\nstartgame 92244503\nplayer action 18708701\nplayer move 254507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ndeadzone\nTarget\nPlayer, Wall, Crate\nexplode\n======\nRULES\n======\n\n[ explode]->[no explode]\n[ action Player | Crate ] -> [ action Player | > Crate ]\n\nup [ action Player | no wall ] -> [ action Player | explode_up ]\ndown [ action Player | no wall ] -> [ action Player | explode_down ]\nleft [ action Player | no wall ] -> [ action Player | explode_left ]\nright [ action Player | no wall ] -> [ action Player | explode_right ]\n\nlate [ explode Crate ] -> [crate]\nlate [explode] -> again\n\nlate [crate deadzone]->cancel\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 7 [you can press x to explode]\n(kinda cute)\n########\n#.o.@..#\n#.o*.*.#\n#....p.#\n#####..#\n########\n\nmessage Level 2 of 7 \n(kinda bad but i kinda like it)\n########\n#o@.o..#\n#.*..*.#\n#p.#...#\n########\n\nmessage Level 3 of 7 \n(pretty nice to figure out, and not hard)\n########\n#...oo.#\n#o**..p#\n#..*...#\n#####..#\n########\n\nmessage Level 4 of 7 \n#########\n#.......#\n#...@...#\n#.o.....#\n#.*..@..#\n#.p@....#\n#.......#\n#########\n\nmessage Level 5 of 7 \n(tricky but fine)\n########\n#...@.p#\n#.o*o..#\n#.*....#\n#####..#\n########\n\n\n\nmessage Level 6 of 7\n(middle-hard!)\n#########\n###..####\n#.....*p#\n#.#o*.o.#\n#....#..#\n#########\n\nmessage Level 7 of 7 \n(kinda tricky but also good!)\n########\n##..p..#\n##.*@*.#\n#o....##\n##....##\n###.#o##\n########\n\nmessage Congratulations!\n\n\n(\n\n(neither good nor trivial:)\n########\n#,.@..,#\n#,...@,#\n#,@...,#\n#,p*o.,#\n#,@...,#\n#,...@,#\n#,.@..,#\n########\n\n(meh)\n##########\n###......#\n#.....@..#\n#...@..*.#\n#.o....o.#\n#.*..@...#\n#.p@.....#\n#......###\n##########\n\n\n\n########\n#......#\n#...@..#\n#.o....#\n#.*..@.#\n#.p@...#\n#......#\n########\n\n\n####.####\n####@####\n##.....##\n##.....##\n##.....##\n.@.*o.*o.\n##.....##.\n##.....##\n##.p...##\n####@####\n####.####\n\n####.####\n####@####\n##.....##\n##.....##\n.@.*o*.o.\n##.....##\n##.p...##\n####@####\n####.####\n\n####.####\n####o####\n##.....##\n##..*..##\n.o.*@*.o.\n##..*..##\n##p....##\n####o####\n####.####\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*O.#\n##.*P*.#\n#..O*O.#\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(\n==========\nTRANSFORM\n==========\n[player]->[]\n[target]->[]\n[crate]->[]\n\nchoose 1 [ no wall] ->[ player]\nchoose 2 [ no wall no player]->[target]\nchoose 2 [no wall no player] ->[crate]\n\n\n))\n",[1,1,2,1,1,0,4,2,4,1,2,1,4],"background wall:0,0,0,0,0,0,0,0,background:1,\n1,1,0,0,0,1,0,1,0,\n0,1,background crate:2,background target:3,background player:4,0,0,1,1,\n1,1,0,0,0,1,1,0,0,\n0,0,1,3,1,0,0,0,2,\n1,1,0,0,0,0,0,0,0,\n",11,"1627894122279.9321"] ], [ - "Bicycle-Kick Football", - ["(Ziel = Tore = gerichtet!)\ntitle Bicycle-Kick Football\nauthor increpare\nhomepage www.increpare.com\n\n( verbose_logging )\nrun_rules_on_level_start\n\nbackground_color #305e12\ntext_color white\n\n========\nOBJECTS\n========\n\nBackground1\n#6a984d \n\nBackground2\n#87b769\n\ntarget_bg\ndarkgray\n\nTarget\n#cccccc #9d9d9d\n00000\n01.10\n0.1.0\n01.10\n00000\n\n\n\nWall\n#305e12 #305e12\n00000\n01000\n00000\n00010\n00000\n\nStehend\nBlack Orange blue white\n.000.\n.111.\n12221\n.333.\n.2.2.\n\nTritt_Ost\nBlack Orange blue white\n....2\n01232\n0123.\n0123.\n....2\n\nTritt_Nord\nBlack Orange blue white\n22..2\n.333.\n.222.\n.111.\n.000.\n\nTritt_West\nBlack Orange blue white\n2....\n.3210\n.3210\n23210\n2....\n\n\nTritt_Sud\nBlack Orange blue white\n.000.\n.111.\n.222.\n.333.\n2..22\n\nCrate\n#dbdbdb #fcfcfc \n.000.\n01110\n01110\n01110\n.000.\n\nost_bewegende\nred\n.....\n.....\n....0\n.....\n.....\n\nnord_bewegende\nred\n..0..\n.....\n.....\n.....\n.....\n\nsud_bewegende\nred\n.....\n.....\n.....\n.....\n..0..\n\nwest_bewegende\nred\n.....\n.....\n0....\n.....\n.....\n\nborder_up \n#a4c88d\n00000\n.....\n.....\n.....\n.....\n\n\nborder_up_right\n#a4c88d\n....0\n.....\n.....\n.....\n.....\n\n\nborder_right\n#a4c88d\n....0\n....0\n....0\n....0\n....0\n\n\nborder_down_right\n#a4c88d\n.....\n.....\n.....\n.....\n....0\n\n\nborder_down\n#a4c88d\n.....\n.....\n.....\n.....\n00000\n\n\nborder_down_left\n#a4c88d\n.....\n.....\n.....\n.....\n0....\n\n\nborder_left \n#a4c88d\n0....\n0....\n0....\n0....\n0....\n\n\nborder_up_left \n#a4c88d\n0....\n.....\n.....\n.....\n.....\n\n\n=======\nLEGEND\n=======\nbackground = Background1 or Background2\nborder = border_up or border_up_right or border_right or border_down_right or border_down or border_down_left or border_left or border_up_left\ntritt = Tritt_Ost or Tritt_Nord or Tritt_West or Tritt_Sud\nplayer = stehend or tritt\nbewegende = nord_bewegende or sud_bewegende or ost_bewegende or west_bewegende\n. = Background1\n# = Wall\nP = stehend\nt = Tritt_Ost\n* = Crate\n@ = Crate and Target and target_bg\nO = Target and target_bg\nobstacle = crate or player or wall\n\n=======\nSOUNDS\n=======\n\nsfx0 29072107 (kick)\nsfx1 83623707 (kickstart)\nsfx2 51785307 (animend)\n\nendlevel 99732902\nendgame 99732902\nstartlevel 24368106\n\n================\nCOLLISIONLAYERS\n================\n\nbewegende\n\nBackground1, Background2\nborder_up \nborder_up_right \nborder_right \nborder_down_right \nborder_down \nborder_down_left \nborder_left \nborder_up_left\ntarget_bg\nplayer, Wall, Crate\nTarget\n\n======\nRULES\n======\n\nright [ Background1 | Background1 | Background1 ] -> [ Background1 | Background2 | Background1 ]\n\nup [ wall | no wall] ->[ wall | border_down ]\ndown [ wall | no wall] ->[ wall | border_up ]\nleft [ wall | no wall] ->[ wall | border_right ]\nright [ wall | no wall] ->[ wall | border_left ]\n\n\nright [ no wall | no wall border_down ] -> [ border_down_right | border_down ]\ndown [border_down_right|no border_right]->[|] \n\n\nleft [ no wall | no wall border_down ] -> [ border_down_left | border_down ]\ndown [border_down_left|no border_left]->[|] \n\nright [ no wall | no wall border_up ] -> [ border_up_right | border_up ]\ndown [no border_right | border_up_right ] ->[|]\n\n\nleft [ no wall | no wall border_up ] -> [ border_up_left | border_up ]\ndown [no border_left | border_up_left ] ->[|]\n\nup [ nord_bewegende Crate | no obstacle ] -> [ > nord_bewegende > Crate | ]again\ndown [ sud_bewegende Crate | no obstacle ] -> [ > sud_bewegende > Crate | ]again\nleft [ west_bewegende Crate | no obstacle ] -> [ > west_bewegende > Crate | ]again\nright [ ost_bewegende Crate | no obstacle ] -> [ > ost_bewegende > Crate | ] again\n\n[tritt_sud ] -> [ Stehend ] sfx2\n[ tritt_west ] -> [ Tritt_Sud ] again\n\n[ tritt_nord ] -> [ Tritt_west ] again\n\n[ tritt_ost ] -> [ Tritt_Nord ] again\n\n[ action Stehend ] -> [ action Tritt_Ost ] again sfx1\n\nright [ Tritt_Ost | crate ] -> [ Tritt_Ost | up crate up nord_bewegende ] again sfx0\nup [ Tritt_nord | crate ] -> [ Tritt_nord | left crate left west_bewegende ] again sfx0\nleft [ Tritt_west | crate ] -> [ Tritt_west | down crate down sud_bewegende ] again sfx0\ndown [ Tritt_sud | crate ] -> [ Tritt_sud | right crate right ost_bewegende ] again sfx0\n\n\nup [ nord_bewegende | obstacle ] -> [ | obstacle ]\ndown [ sud_bewegende | obstacle ] -> [ | obstacle ]\nleft [ west_bewegende | obstacle ] -> [ | obstacle ]\nright [ ost_bewegende | obstacle ] -> [ | obstacle ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Crate on target\nno bewegende\nno tritt\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 6 - FOOTBALL FACT: The goal of football is to foot the ball in the goal (with X).\n#################\n#...#..........##\n#........#.....##\n#..............o#\n##..*.p.#......o#\n#..............o#\n#........#.....##\n#...#..........##\n#################\n\nmessage GOAAAAAL\n\nmessage Level 2 of 6 - FOOTBALL FACT: The goal only counts while the ball is in the net.\n(bad first level because no freedom)\n(ok)\n######\n#.O###\n#..###\n#oP..#\n#..**#\n#..###\n######\nmessage GOAAAAAL\n\nmessage Level 3 of 6 - FOOTBALL FACT: A single goal can be split into many pieces and spread around the field.\n(p. good! not hard)\n#########\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\nmessage GOAAAAAL\n\nmessage Level 4 of 6 - FOOTBALL FACT: A game of football consists of a single footballer and arbitrarily many balls.\n(not hard, kinda fun )\n######\n#.oo.#\n#.**.#\n#p...#\n#.**.#\n#.oo.#\n######\nmessage GOAAAAAL\n\nmessage Level 5 of 6 - FOOTBALL FACT: The only way to lose is to not take part.\n(not too hard, but fun :] )\n#########\n#######o#\n#######o#\n#######o#\n#p.*.*.*#\n#.#.#.#.#\n#.......#\n#########\n\n\nmessage GOAAAAAL\n\nmessage Level 6 of 6 : FOOTBALL FACT: A regulation football must fit within a 5x5 sprite.\n(possibly not as awful. but hard. kinda solved it by trial and error? but still hard?)\n#######\n#*.o.o#\n#.....#\n#..p..#\n#@...*#\n#######\nmessage GOAAAAAL\n\nmessage Congratulations! You are the bicycle kicking champion of the six nations!\n\n(\n(nobody wants to suffer this torture)\n(also p .hard, but smaller at least. you haven't solved yet! even with a solver it's pretty monstrous. best avoided / nixxed?)\n#######\n#@...@#\n#...o.#\n#.p...#\n#*...@#\n#######\n\n\n(also hard)\n#########\n#*..o..*#\n#.......#\n#.......#\n#p......#\n#.......#\n#@.....o#\n#########\n)\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(p. good!)\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*O.#\n##.*P*.#\n#..O*O.#\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(\n[player]->[]\n[crate]->[]\n[target]->[]\n\nchoose 2 option 0.5 [wall]->[]\n+ option 0.5 []->[]\n\nchoose 2 option 0.5 [no wall no player no target]->[wall]\n+ option 0.5 []->[]\n\nchoose 1 [ no wall]->[player]\nchoose 2 [no wall no player no crate]->[crate]\nchoose 2 [ no wall no player]->[target]\n\n)\n\n", [3, 0, 0, 4, 2, 2, 1, 3, 0, 4, 1, 4, 2, 4, 3, 0, 4, 0, 1, 1, 1, 2, 2, 1, 1, 1, 0, 4, 2, 3, 3, 0], "background1 wall:0,0,0,0,0,0,background2 wall:1,1,background2 border_down_right border_left border_up crate:2,\nbackground2 border_left border_right:3,background2 border_down border_left border_up_right:4,1,0,0,background1 border_down border_up crate:5,0,background1 border_down border_up target target_bg:6,0,\n1,background2 border_left border_up:7,background2 border_down_left border_up_left:8,background2 border_left stehend:9,background2 border_down border_up_left:10,1,0,background1 border_right border_up:11,background1 border_down_right border_up_right:12,\nbackground1 border_right:13,background1 border_down border_right target target_bg:14,0,1,1,background2 border_down border_up:15,1,1,1,\n0,0,background1 border_down_left border_up:16,background1 border_left:17,background1 border_down border_left:18,0,1,1,background2 border_right border_up:19,\nbackground2 border_right:20,background2 border_down border_right:21,1,0,0,0,0,0,0,\n", 7, "1627894148704.56"] + "Bicycle-Kick Football", + ["(Ziel = Tore = gerichtet!)\ntitle Bicycle-Kick Football\nauthor increpare\nhomepage www.increpare.com\n\n( verbose_logging )\nrun_rules_on_level_start\n\nbackground_color #305e12\ntext_color white\n\n========\nOBJECTS\n========\n\nBackground1\n#6a984d \n\nBackground2\n#87b769\n\ntarget_bg\ndarkgray\n\nTarget\n#cccccc #9d9d9d\n00000\n01.10\n0.1.0\n01.10\n00000\n\n\n\nWall\n#305e12 #305e12\n00000\n01000\n00000\n00010\n00000\n\nStehend\nBlack Orange blue white\n.000.\n.111.\n12221\n.333.\n.2.2.\n\nTritt_Ost\nBlack Orange blue white\n....2\n01232\n0123.\n0123.\n....2\n\nTritt_Nord\nBlack Orange blue white\n22..2\n.333.\n.222.\n.111.\n.000.\n\nTritt_West\nBlack Orange blue white\n2....\n.3210\n.3210\n23210\n2....\n\n\nTritt_Sud\nBlack Orange blue white\n.000.\n.111.\n.222.\n.333.\n2..22\n\nCrate\n#dbdbdb #fcfcfc \n.000.\n01110\n01110\n01110\n.000.\n\nost_bewegende\nred\n.....\n.....\n....0\n.....\n.....\n\nnord_bewegende\nred\n..0..\n.....\n.....\n.....\n.....\n\nsud_bewegende\nred\n.....\n.....\n.....\n.....\n..0..\n\nwest_bewegende\nred\n.....\n.....\n0....\n.....\n.....\n\nborder_up \n#a4c88d\n00000\n.....\n.....\n.....\n.....\n\n\nborder_up_right\n#a4c88d\n....0\n.....\n.....\n.....\n.....\n\n\nborder_right\n#a4c88d\n....0\n....0\n....0\n....0\n....0\n\n\nborder_down_right\n#a4c88d\n.....\n.....\n.....\n.....\n....0\n\n\nborder_down\n#a4c88d\n.....\n.....\n.....\n.....\n00000\n\n\nborder_down_left\n#a4c88d\n.....\n.....\n.....\n.....\n0....\n\n\nborder_left \n#a4c88d\n0....\n0....\n0....\n0....\n0....\n\n\nborder_up_left \n#a4c88d\n0....\n.....\n.....\n.....\n.....\n\n\n=======\nLEGEND\n=======\nbackground = Background1 or Background2\nborder = border_up or border_up_right or border_right or border_down_right or border_down or border_down_left or border_left or border_up_left\ntritt = Tritt_Ost or Tritt_Nord or Tritt_West or Tritt_Sud\nplayer = stehend or tritt\nbewegende = nord_bewegende or sud_bewegende or ost_bewegende or west_bewegende\n. = Background1\n# = Wall\nP = stehend\nt = Tritt_Ost\n* = Crate\n@ = Crate and Target and target_bg\nO = Target and target_bg\nobstacle = crate or player or wall\n\n=======\nSOUNDS\n=======\n\nsfx0 29072107 (kick)\nsfx1 83623707 (kickstart)\nsfx2 51785307 (animend)\n\nendlevel 99732902\nendgame 99732902\nstartlevel 24368106\n\n================\nCOLLISIONLAYERS\n================\n\nbewegende\n\nBackground1, Background2\nborder_up \nborder_up_right \nborder_right \nborder_down_right \nborder_down \nborder_down_left \nborder_left \nborder_up_left\ntarget_bg\nplayer, Wall, Crate\nTarget\n\n======\nRULES\n======\n\nright [ Background1 | Background1 | Background1 ] -> [ Background1 | Background2 | Background1 ]\n\nup [ wall | no wall] ->[ wall | border_down ]\ndown [ wall | no wall] ->[ wall | border_up ]\nleft [ wall | no wall] ->[ wall | border_right ]\nright [ wall | no wall] ->[ wall | border_left ]\n\n\nright [ no wall | no wall border_down ] -> [ border_down_right | border_down ]\ndown [border_down_right|no border_right]->[|] \n\n\nleft [ no wall | no wall border_down ] -> [ border_down_left | border_down ]\ndown [border_down_left|no border_left]->[|] \n\nright [ no wall | no wall border_up ] -> [ border_up_right | border_up ]\ndown [no border_right | border_up_right ] ->[|]\n\n\nleft [ no wall | no wall border_up ] -> [ border_up_left | border_up ]\ndown [no border_left | border_up_left ] ->[|]\n\nup [ nord_bewegende Crate | no obstacle ] -> [ > nord_bewegende > Crate | ]again\ndown [ sud_bewegende Crate | no obstacle ] -> [ > sud_bewegende > Crate | ]again\nleft [ west_bewegende Crate | no obstacle ] -> [ > west_bewegende > Crate | ]again\nright [ ost_bewegende Crate | no obstacle ] -> [ > ost_bewegende > Crate | ] again\n\n[tritt_sud ] -> [ Stehend ] sfx2\n[ tritt_west ] -> [ Tritt_Sud ] again\n\n[ tritt_nord ] -> [ Tritt_west ] again\n\n[ tritt_ost ] -> [ Tritt_Nord ] again\n\n[ action Stehend ] -> [ action Tritt_Ost ] again sfx1\n\nright [ Tritt_Ost | crate ] -> [ Tritt_Ost | up crate up nord_bewegende ] again sfx0\nup [ Tritt_nord | crate ] -> [ Tritt_nord | left crate left west_bewegende ] again sfx0\nleft [ Tritt_west | crate ] -> [ Tritt_west | down crate down sud_bewegende ] again sfx0\ndown [ Tritt_sud | crate ] -> [ Tritt_sud | right crate right ost_bewegende ] again sfx0\n\n\nup [ nord_bewegende | obstacle ] -> [ | obstacle ]\ndown [ sud_bewegende | obstacle ] -> [ | obstacle ]\nleft [ west_bewegende | obstacle ] -> [ | obstacle ]\nright [ ost_bewegende | obstacle ] -> [ | obstacle ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Crate on target\nno bewegende\nno tritt\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 6 - FOOTBALL FACT: The goal of football is to foot the ball in the goal (with X).\n#################\n#...#..........##\n#........#.....##\n#..............o#\n##..*.p.#......o#\n#..............o#\n#........#.....##\n#...#..........##\n#################\n\nmessage GOAAAAAL\n\nmessage Level 2 of 6 - FOOTBALL FACT: The goal only counts while the ball is in the net.\n(bad first level because no freedom)\n(ok)\n######\n#.O###\n#..###\n#oP..#\n#..**#\n#..###\n######\nmessage GOAAAAAL\n\nmessage Level 3 of 6 - FOOTBALL FACT: A single goal can be split into many pieces and spread around the field.\n(p. good! not hard)\n#########\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\nmessage GOAAAAAL\n\nmessage Level 4 of 6 - FOOTBALL FACT: A game of football consists of a single footballer and arbitrarily many balls.\n(not hard, kinda fun )\n######\n#.oo.#\n#.**.#\n#p...#\n#.**.#\n#.oo.#\n######\nmessage GOAAAAAL\n\nmessage Level 5 of 6 - FOOTBALL FACT: The only way to lose is to not take part.\n(not too hard, but fun :] )\n#########\n#######o#\n#######o#\n#######o#\n#p.*.*.*#\n#.#.#.#.#\n#.......#\n#########\n\n\nmessage GOAAAAAL\n\nmessage Level 6 of 6 : FOOTBALL FACT: A regulation football must fit within a 5x5 sprite.\n(possibly not as awful. but hard. kinda solved it by trial and error? but still hard?)\n#######\n#*.o.o#\n#.....#\n#..p..#\n#@...*#\n#######\nmessage GOAAAAAL\n\nmessage Congratulations! You are the bicycle kicking champion of the six nations!\n\n(\n(nobody wants to suffer this torture)\n(also p .hard, but smaller at least. you haven't solved yet! even with a solver it's pretty monstrous. best avoided / nixxed?)\n#######\n#@...@#\n#...o.#\n#.p...#\n#*...@#\n#######\n\n\n(also hard)\n#########\n#*..o..*#\n#.......#\n#.......#\n#p......#\n#.......#\n#@.....o#\n#########\n)\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(p. good!)\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*O.#\n##.*P*.#\n#..O*O.#\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(\n[player]->[]\n[crate]->[]\n[target]->[]\n\nchoose 2 option 0.5 [wall]->[]\n+ option 0.5 []->[]\n\nchoose 2 option 0.5 [no wall no player no target]->[wall]\n+ option 0.5 []->[]\n\nchoose 1 [ no wall]->[player]\nchoose 2 [no wall no player no crate]->[crate]\nchoose 2 [ no wall no player]->[target]\n\n)\n\n",[3,0,0,4,2,2,1,3,0,4,1,4,2,4,3,0,4,0,1,1,1,2,2,1,1,1,0,4,2,3,3,0],"background1 wall:0,0,0,0,0,0,background2 wall:1,1,background2 border_down_right border_left border_up crate:2,\nbackground2 border_left border_right:3,background2 border_down border_left border_up_right:4,1,0,0,background1 border_down border_up crate:5,0,background1 border_down border_up target target_bg:6,0,\n1,background2 border_left border_up:7,background2 border_down_left border_up_left:8,background2 border_left stehend:9,background2 border_down border_up_left:10,1,0,background1 border_right border_up:11,background1 border_down_right border_up_right:12,\nbackground1 border_right:13,background1 border_down border_right target target_bg:14,0,1,1,background2 border_down border_up:15,1,1,1,\n0,0,background1 border_down_left border_up:16,background1 border_left:17,background1 border_down border_left:18,0,1,1,background2 border_right border_up:19,\nbackground2 border_right:20,background2 border_down border_right:21,1,0,0,0,0,0,0,\n",7,"1627894148704.56"] ], [ - "Van-to-Mobile-Living-Space-Conversion Window-Frame-Installation", - ["title Van-to-Mobile-Living-Space-Conversion Window-Frame-Installation\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nbackground_color lightblue\n\ntext_color black\n\n(levels made with the assistance of PuzzlescriptMIS https://dekeyser.ch/puzzlescriptmis/ )\n\n(thanks an toombercazz für feedback)\n========\nOBJECTS\n========\n\nBackground\ngray\n\nsky ,\nlightblue\n\nTarget\nlightblue\n.000.\n00000\n00000\n00000\n.000.\n\nWall\ndarkgray\n\nfront1 a\n#697175 lightblue\n10000\n00000\n00000\n00000\n00000\n\nfront2 s\n#5bb4e0\n\nfront3a d\n#000000 lightblue\n11100\n11100\n11100\n11100\n11100\n\nfront3b f\n#697175 #000000\n00000\n00000\n11000\n11000\n11000\n\nwheel1 \n#697175 #000000\n00000\n00011\n00111\n01110\n01100\n\nwheel2 \n#697175 #000000\n00000\n11000\n11100\n01110\n00110\n\nwheel3 j\n#000000 #697175 #595652 lightblue\n30011\n30001\n33000\n33300\n22222\n \nwheel4 k\n#697175 #000000 #595652 lightblue\n00113\n01113\n11133\n11333\n22222\n\nroada l\n#595652 lightblue\n11111\n11111\n11111\n11111\n00000\n\n\nroadb ;\n#595652\n\nexhaust '\n#b2dcef #9badb7\n00000\n11111\n11111\n11111\n00000\n\nPlayer_G\n#99e550\n\n\n\nPlayer_B\n#639bff\n\neye_l\n#99e550 #ffffff #000000 #ec4353\n00000\n00100\n01210\n00103\n00000\n\neye_r\n#639bff #ffffff #000000 #ec4353\n00000\n00100\n01210\n30100\n00000\n\n\nCrate\nblack\n.000.\n0...0\n0...0\n0...0\n.000.\n\n=======\nLEGEND\n=======\n\ncosmetic = front1 or front2 or front3a or front3b or wheel1 or wheel2 or wheel3 or wheel4 or roada or roadb or exhaust\n\n\nplayer = Player_G or Player_B\neye = eye_l or eye_r\n\n. = Background\n# = Wall\nq = Player_G\nw = Player_B\n* = Crate\n@ = Crate and Target\nO = Target\n\ng = wheel1 and Wall\nh = wheel2 and Wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 16975107\nendlevel 87300305\nstartlevel 7208105\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nsky\nTarget\nPlayer, Wall, Crate\neye\ncosmetic\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Crate | Crate ] -> [ > Crate | > Crate ]\n\nlate [ eye ] ->[]\nlate [Player_G ]->[Player_G eye_l ]\nlate [Player_b ]->[Player_b eye_r ]\nlate right [ eye_l | no eye_r ] -> [ | ]\nlate right [ no eye_l | eye_r ] -> [ | ]\nlate down [ eye | eye ] -> [ eye | ]\n\nlate down [player_g no eye_l | player_g no eye_l ] -> cancel\n\nlate down [ no player_g | Player_G | no Player_G ] -> cancel\nlate down [ no player_b | Player_b | no Player_b ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 14 - I cut out the holes, now just to slot in the window frames!\n\n(possible first level, easy and requires you to take on both shapes)\n,,,,#########,\n,a###...o..##,\n,ss##......##,\n,ss##.*.*.###,\n,####.qw...##,\n,####.qwo..##,\n,####...#..##,\ndfgh#####gh#',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\nmessage Level 2 of 14 - It looks so much brighter now!\n(super easy but pleasing manouevre)\n,,,,,,#######,\n,,,,,##....##,\n,a####.....##,\n,ss##.*o...##,\n,ss##.qw...##,\n,####.qw...##,\n,####.o*...##,\ndfgh#####gh#',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\nmessage Level 3 of 14 - It makes the space look so much bigger.\n(easy, some satisfying manouevres!)\n,,,,#########,\n,a###......##,\n,ss##......##,\n,ss##.o**..##,\n,####.qw...##,\n,####oqw.#.##,\n,####..#...##,\ndfgh#####gh#',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\nmessage Level 4 of 14 - It's like a real house but I can put windows wherever I want!\n(late easy ok )\n,,,,,,,,,#######,\n,a##,,,,,#....##,\n,ss#,,####....##,\n,ss####o##....##,\n,####qw...*...##,\n,####qwo...*..##,\n,####.......#.##,\ndfghgh####ghgh#',\nlljkjklllljkjklll\n;;;;;;;;;;;;;;;;;\n\n\nmessage Level 5 of 14 - Stupid normie houses with their square-edged windows.\n(3552)\n(fine! late-easy)\n,,,,,#######,\n,,,,,#..#.##,\n,,,,,#..oo##,\n,,,,,#*...##,\n,a####...###,\n,ss#qw..*###,\n,ss#qw....##,\n,####.....##,\n,####.....##,\ndfgh#####gh',\nlljkllllljkll\n;;;;;;;;;;;;;\n\n\nmessage Level 6 of 14 - I can't wait to go curtain-shopping!\n(12442)\n(fun early intermediate)\n,,,,,,,######,\n,,,,,,##....#,\n,,,####.....#,\n,a##.....#..#,\n,ss#.*......#,\n,ss#.oqw*o.##,\n,####.qw..##,,\n,#####....#,,,\n,###,#..###,,,\ndfgh,#gh#',,,,\nlljklljkllllll\n;;;;;;;;;;;;;;\n\n\n\n\nmessage Level 7 of 14 - The view is stunning!\n\n(Early intermediate reduction of the fun part of 3718. I like it!)\n,,,,,,,,,,,,,,,\n,,,,,######,,,,\n,a####..o.####,\n,ss#......o.##,\n,ss#qw.*..*.##,\n,###qw.#....##,\n,########...##,\ndfgh,,,,##gh#',\nlljklllllljklll\n;;;;;;;;;;;;;;;\n\n\nmessage Level 8 of 14 - Safety first!\n(mmeehg ok? can cut tho. early-intermediate. )\n(6174)\n,,,,,######,,,\n,,,,##.##.#,,,\n,,,,#.....###,\n,a###..o...##,\n,ss##..*...##,\n,ss##qw..*.##,\n,####qwo##.##,\n,#####..##.##,\n,###,#..#####,\ndfgh,#gh#',,,,\nlljklljkllllll\n;;;;;;;;;;;;;;\n\n\nmessage Level 9 of 14 - If it's not perfect, I can always add more windows!\n(ok early intermediate, based on 2911)\n,,,,####,,,,,,\n,,,,#..##,,,,,\n,a###o..###,,,\n,ss##..*.o###,\n,ss##.qw**.##,\n,####.qw...##,\n,####...o..##,\ndfgh########',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\nmessage Level 10 of 14 - When I see a wall without a window I...I just feel pity.\n\n(25260)\n(hearly-hard. kind of solved by trial and error? but i can remember the concept at least?)\n,,,,,,#######,,\n,,,,,##..#..##,\n,,,,,#.......#,\n,a##,#.....*.#,\n,ss###.#.....#,\n,ss##..qw.#.##,\n,####.*qw.###,,\n,####.....#,,,,\n,####.o.o.#,,,,\ndfgh#####gh',,,\nlljkllllljkllll\n;;;;;;;;;;;;;;;\n\n\n\n\n\nmessage Level 11 of 14 - The window on a camper van is the window to its soul.\n(pretty nice? intermediate. otoh the key trick was...discovering some new state rather than deduction)\n(16261)\n,,,,,,,,###,,\n,,,,#####.##,\n,,,,#.##...#,\n,a###......#,\n,ss##..*...#,\n,ss##.oqw*.#,\n,####o.qw..#,\n,####..#..##,\n,####..#..#',\ndfgh####gh#,,\nlljklllljklll\n;;;;;;;;;;;;;\n\n\n\n\n\n\nmessage Level 12 of 14 - If you're building a double-decker camper van, remember to have windows on both levels! \n(intermediate. kinda fine? can solve it intentionally)\n(8577)\n\n,,########,,,\n,,#......###,\n,,#.......o#,\n,,#.*......#,\n,a####.#..##,\n,ss#.qw..o.#,\n,ss#.qw*...#,\n,###.#.....#,\n,###.....###,\ndfgh#######',\nlljklllljklll\n;;;;;;;;;;;;;\n\n\n\n\n\nmessage Level 13 of 14 - BRRRR goes my skull when I rest it against the windowpane.\n(fun late intermediate)\n,,,,,#######,,\n,a####...#.##,\n,ss#........#,\n,ss#.qw..*..#,\n,###.qw.*o..#,\n,###....#.o.#,\n,########..##,\ndfgh,,,,#gh#',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\n\n\n\nmessage Level 14 of 14 - These windows won't need updating!\n\n(intermediate. fine?)\n\n,a##,############,\n,ss###o......#.##,\n,ss##........*.##,\n,####qw.*..*...##,\n,####qw.##..o.o##,\n,####..###.....##,\ndfgh##gh,#gh##gh',\nlljklljklljklljkll\n;;;;;;;;;;;;;;;;;;\n\n\nmessage Congratulations!! You're a master of your craft!\n\n", [3, 3, 0, 3, 2, 0, 3, 3, 1, 2, 2, 3, 2, 3, 0], "background sky:0,0,0,0,0,0,0,background front3a:1,background roada:2,background roadb:3,0,0,background front1:4,background front2:5,5,\nbackground wall:6,6,background front3b:7,2,3,0,0,6,5,5,6,6,background wall wheel1:8,background wheel3:9,3,\n0,0,6,6,6,6,6,background wall wheel2:10,background wheel4:11,3,0,0,6,background:12,12,\n12,6,0,2,3,0,6,6,12,12,12,6,0,2,3,\n0,6,12,12,12,12,6,0,2,3,0,6,12,12,12,\n6,6,0,2,3,0,6,background target:13,12,12,12,6,6,2,3,\n0,6,12,background player_g:14,background eye_l player_g:15,12,12,6,2,3,0,6,6,background crate target:16,background eye_r player_b:17,\nbackground player_b:18,12,8,9,3,0,0,6,12,background crate:19,12,12,10,11,3,\n0,0,6,6,6,6,6,6,2,3,0,0,6,6,6,\n6,6,background exhaust:20,2,3,0,0,0,0,0,0,0,0,2,3,\n", 13, "1627894165909.7253"] + "Van-to-Mobile-Living-Space-Conversion Window-Frame-Installation", + ["title Van-to-Mobile-Living-Space-Conversion Window-Frame-Installation\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nbackground_color lightblue\n\ntext_color black\n\n(levels made with the assistance of PuzzlescriptMIS https://dekeyser.ch/puzzlescriptmis/ )\n\n(thanks an toombercazz für feedback)\n========\nOBJECTS\n========\n\nBackground\ngray\n\nsky ,\nlightblue\n\nTarget\nlightblue\n.000.\n00000\n00000\n00000\n.000.\n\nWall\ndarkgray\n\nfront1 a\n#697175 lightblue\n10000\n00000\n00000\n00000\n00000\n\nfront2 s\n#5bb4e0\n\nfront3a d\n#000000 lightblue\n11100\n11100\n11100\n11100\n11100\n\nfront3b f\n#697175 #000000\n00000\n00000\n11000\n11000\n11000\n\nwheel1 \n#697175 #000000\n00000\n00011\n00111\n01110\n01100\n\nwheel2 \n#697175 #000000\n00000\n11000\n11100\n01110\n00110\n\nwheel3 j\n#000000 #697175 #595652 lightblue\n30011\n30001\n33000\n33300\n22222\n \nwheel4 k\n#697175 #000000 #595652 lightblue\n00113\n01113\n11133\n11333\n22222\n\nroada l\n#595652 lightblue\n11111\n11111\n11111\n11111\n00000\n\n\nroadb ;\n#595652\n\nexhaust '\n#b2dcef #9badb7\n00000\n11111\n11111\n11111\n00000\n\nPlayer_G\n#99e550\n\n\n\nPlayer_B\n#639bff\n\neye_l\n#99e550 #ffffff #000000 #ec4353\n00000\n00100\n01210\n00103\n00000\n\neye_r\n#639bff #ffffff #000000 #ec4353\n00000\n00100\n01210\n30100\n00000\n\n\nCrate\nblack\n.000.\n0...0\n0...0\n0...0\n.000.\n\n=======\nLEGEND\n=======\n\ncosmetic = front1 or front2 or front3a or front3b or wheel1 or wheel2 or wheel3 or wheel4 or roada or roadb or exhaust\n\n\nplayer = Player_G or Player_B\neye = eye_l or eye_r\n\n. = Background\n# = Wall\nq = Player_G\nw = Player_B\n* = Crate\n@ = Crate and Target\nO = Target\n\ng = wheel1 and Wall\nh = wheel2 and Wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 16975107\nendlevel 87300305\nstartlevel 7208105\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nsky\nTarget\nPlayer, Wall, Crate\neye\ncosmetic\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Crate | Crate ] -> [ > Crate | > Crate ]\n\nlate [ eye ] ->[]\nlate [Player_G ]->[Player_G eye_l ]\nlate [Player_b ]->[Player_b eye_r ]\nlate right [ eye_l | no eye_r ] -> [ | ]\nlate right [ no eye_l | eye_r ] -> [ | ]\nlate down [ eye | eye ] -> [ eye | ]\n\nlate down [player_g no eye_l | player_g no eye_l ] -> cancel\n\nlate down [ no player_g | Player_G | no Player_G ] -> cancel\nlate down [ no player_b | Player_b | no Player_b ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 14 - I cut out the holes, now just to slot in the window frames!\n\n(possible first level, easy and requires you to take on both shapes)\n,,,,#########,\n,a###...o..##,\n,ss##......##,\n,ss##.*.*.###,\n,####.qw...##,\n,####.qwo..##,\n,####...#..##,\ndfgh#####gh#',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\nmessage Level 2 of 14 - It looks so much brighter now!\n(super easy but pleasing manouevre)\n,,,,,,#######,\n,,,,,##....##,\n,a####.....##,\n,ss##.*o...##,\n,ss##.qw...##,\n,####.qw...##,\n,####.o*...##,\ndfgh#####gh#',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\nmessage Level 3 of 14 - It makes the space look so much bigger.\n(easy, some satisfying manouevres!)\n,,,,#########,\n,a###......##,\n,ss##......##,\n,ss##.o**..##,\n,####.qw...##,\n,####oqw.#.##,\n,####..#...##,\ndfgh#####gh#',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\nmessage Level 4 of 14 - It's like a real house but I can put windows wherever I want!\n(late easy ok )\n,,,,,,,,,#######,\n,a##,,,,,#....##,\n,ss#,,####....##,\n,ss####o##....##,\n,####qw...*...##,\n,####qwo...*..##,\n,####.......#.##,\ndfghgh####ghgh#',\nlljkjklllljkjklll\n;;;;;;;;;;;;;;;;;\n\n\nmessage Level 5 of 14 - Stupid normie houses with their square-edged windows.\n(3552)\n(fine! late-easy)\n,,,,,#######,\n,,,,,#..#.##,\n,,,,,#..oo##,\n,,,,,#*...##,\n,a####...###,\n,ss#qw..*###,\n,ss#qw....##,\n,####.....##,\n,####.....##,\ndfgh#####gh',\nlljkllllljkll\n;;;;;;;;;;;;;\n\n\nmessage Level 6 of 14 - I can't wait to go curtain-shopping!\n(12442)\n(fun early intermediate)\n,,,,,,,######,\n,,,,,,##....#,\n,,,####.....#,\n,a##.....#..#,\n,ss#.*......#,\n,ss#.oqw*o.##,\n,####.qw..##,,\n,#####....#,,,\n,###,#..###,,,\ndfgh,#gh#',,,,\nlljklljkllllll\n;;;;;;;;;;;;;;\n\n\n\n\nmessage Level 7 of 14 - The view is stunning!\n\n(Early intermediate reduction of the fun part of 3718. I like it!)\n,,,,,,,,,,,,,,,\n,,,,,######,,,,\n,a####..o.####,\n,ss#......o.##,\n,ss#qw.*..*.##,\n,###qw.#....##,\n,########...##,\ndfgh,,,,##gh#',\nlljklllllljklll\n;;;;;;;;;;;;;;;\n\n\nmessage Level 8 of 14 - Safety first!\n(mmeehg ok? can cut tho. early-intermediate. )\n(6174)\n,,,,,######,,,\n,,,,##.##.#,,,\n,,,,#.....###,\n,a###..o...##,\n,ss##..*...##,\n,ss##qw..*.##,\n,####qwo##.##,\n,#####..##.##,\n,###,#..#####,\ndfgh,#gh#',,,,\nlljklljkllllll\n;;;;;;;;;;;;;;\n\n\nmessage Level 9 of 14 - If it's not perfect, I can always add more windows!\n(ok early intermediate, based on 2911)\n,,,,####,,,,,,\n,,,,#..##,,,,,\n,a###o..###,,,\n,ss##..*.o###,\n,ss##.qw**.##,\n,####.qw...##,\n,####...o..##,\ndfgh########',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\nmessage Level 10 of 14 - When I see a wall without a window I...I just feel pity.\n\n(25260)\n(hearly-hard. kind of solved by trial and error? but i can remember the concept at least?)\n,,,,,,#######,,\n,,,,,##..#..##,\n,,,,,#.......#,\n,a##,#.....*.#,\n,ss###.#.....#,\n,ss##..qw.#.##,\n,####.*qw.###,,\n,####.....#,,,,\n,####.o.o.#,,,,\ndfgh#####gh',,,\nlljkllllljkllll\n;;;;;;;;;;;;;;;\n\n\n\n\n\nmessage Level 11 of 14 - The window on a camper van is the window to its soul.\n(pretty nice? intermediate. otoh the key trick was...discovering some new state rather than deduction)\n(16261)\n,,,,,,,,###,,\n,,,,#####.##,\n,,,,#.##...#,\n,a###......#,\n,ss##..*...#,\n,ss##.oqw*.#,\n,####o.qw..#,\n,####..#..##,\n,####..#..#',\ndfgh####gh#,,\nlljklllljklll\n;;;;;;;;;;;;;\n\n\n\n\n\n\nmessage Level 12 of 14 - If you're building a double-decker camper van, remember to have windows on both levels! \n(intermediate. kinda fine? can solve it intentionally)\n(8577)\n\n,,########,,,\n,,#......###,\n,,#.......o#,\n,,#.*......#,\n,a####.#..##,\n,ss#.qw..o.#,\n,ss#.qw*...#,\n,###.#.....#,\n,###.....###,\ndfgh#######',\nlljklllljklll\n;;;;;;;;;;;;;\n\n\n\n\n\nmessage Level 13 of 14 - BRRRR goes my skull when I rest it against the windowpane.\n(fun late intermediate)\n,,,,,#######,,\n,a####...#.##,\n,ss#........#,\n,ss#.qw..*..#,\n,###.qw.*o..#,\n,###....#.o.#,\n,########..##,\ndfgh,,,,#gh#',\nlljkllllljklll\n;;;;;;;;;;;;;;\n\n\n\n\n\nmessage Level 14 of 14 - These windows won't need updating!\n\n(intermediate. fine?)\n\n,a##,############,\n,ss###o......#.##,\n,ss##........*.##,\n,####qw.*..*...##,\n,####qw.##..o.o##,\n,####..###.....##,\ndfgh##gh,#gh##gh',\nlljklljklljklljkll\n;;;;;;;;;;;;;;;;;;\n\n\nmessage Congratulations!! You're a master of your craft!\n\n",[3,3,0,3,2,0,3,3,1,2,2,3,2,3,0],"background sky:0,0,0,0,0,0,0,background front3a:1,background roada:2,background roadb:3,0,0,background front1:4,background front2:5,5,\nbackground wall:6,6,background front3b:7,2,3,0,0,6,5,5,6,6,background wall wheel1:8,background wheel3:9,3,\n0,0,6,6,6,6,6,background wall wheel2:10,background wheel4:11,3,0,0,6,background:12,12,\n12,6,0,2,3,0,6,6,12,12,12,6,0,2,3,\n0,6,12,12,12,12,6,0,2,3,0,6,12,12,12,\n6,6,0,2,3,0,6,background target:13,12,12,12,6,6,2,3,\n0,6,12,background player_g:14,background eye_l player_g:15,12,12,6,2,3,0,6,6,background crate target:16,background eye_r player_b:17,\nbackground player_b:18,12,8,9,3,0,0,6,12,background crate:19,12,12,10,11,3,\n0,0,6,6,6,6,6,6,2,3,0,0,6,6,6,\n6,6,background exhaust:20,2,3,0,0,0,0,0,0,0,0,2,3,\n",13,"1627894165909.7253"] ], [ - "The sponge what lights up the seafloor", - ["title The sponge what lights up the seafloor\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\n( verbose_logging )\n\nbackground_color #097ca9\n\ntext_color black\nnoaction\n========\nOBJECTS\n========\n\nBackground1\n#097ca9 #026f9a\n00000\n00000\n00100\n00000\n00000\n\n\nBackground2\n#097ca9 #026f9a\n00000\n00000\n00000\n00000\n00000\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\n#005373 #0a6284\n00000\n00000\n00000\n00000\n00000\n\n\nPlayer_tl\npink red\n01111\n1....\n1....\n1....\n1....\n\nPlayer_tr\npink red\n11110\n....1\n....1\n....1\n....1\n\nPlayer_bl\npink red\n1....\n1....\n1....\n1....\n01111\n\nPlayer_br\npink red\n....1\n....1\n....1\n....1\n11110\n\nsponge_thick\nyellow\n.000.\n00000\n00000\n00000\n.000.\n\nsponge_thin\nyellow\n.000.\n00000\n00000\n00000\n.000.\n\nCrate_tl \n#b685b5 #8a4288\n00000\n01111\n01111\n01111\n01111\n\nCrate_tr \n#b685b5 #8a4288\n00000\n11110\n11110\n11110\n11110\n\nCrate_bl \n#b685b5 #8a4288\n01111\n01111\n01111\n01111\n00000\n\nCrate_br \n#b685b5 #8a4288\n11110\n11110\n11110\n11110\n00000\n\nsponge_ok\n#ff00ff\n0....\n.....\n.....\n.....\n.....\n\ntargetlight\n#83e5f9 #27aeca\n.....\n.....\n..0..\n.....\n.....\n\nskin_tl_loose \n#d5d156 #d2b140 #af8c18\n.0000\n01212\n02121\n01212\n02121\n\n\nskin_tr_loose\n#d5d156 #d2b140 #af8c18\n0000.\n12120\n21210\n12120\n21210\n\nskin_bl_loose\n#d5d156 #d2b140 #af8c18\n01212\n02121\n01212\n02121\n.0000\n\nskin_br_loose\n#d2b140 #af8c18 #d5d156\n01012\n10102\n01012\n10102\n2222.\n\n\n\nskin_tl_tight\n#d5d156 #9b7907\n.0000\n01111\n01111\n01111\n01111\n\nskin_tr_tight\n#d5d156 #9b7907\n0000.\n11110\n11110\n11110\n11110\n\nskin_bl_tight\n#d5d156 #9b7907\n01111\n01111\n01111\n01111\n.0000\n\nskin_br_tight\n#9b7907 #d5d156\n00001\n00001\n00001\n00001\n1111.\n\nskin_n\n#d5d156\n00000\n.....\n.....\n.....\n.....\n\nskin_s\n#d5d156\n.....\n.....\n.....\n.....\n00000\n\nskin_e\n#d5d156\n....0\n....0\n....0\n....0\n....0\n\nskin_w\n#d5d156\n0....\n0....\n0....\n0....\n0....\n\nface_pressed_eye_l\n#ffffff #639bff\n.....\n..01.\n..00.\n.....\n.....\n\nface_pressed_eye_r\n#ffffff #639bff\n.....\n.01..\n.00..\n.....\n.....\n\nface_normal_eye_l\n#ffffff #639bff\n.....\n.....\n..01.\n..00.\n.....\n\n\nface_normal_eye_r\n#ffffff #639bff\n.....\n.....\n.01..\n.00..\n.....\n\nface_normal_mouth_l\n#000000\n.....\n...00\n....0\n.....\n.....\n\n\nface_normal_mouth_r\n#000000\n.....\n00...\n0....\n.....\n.....\n\nface_pressed_mouth\n#000000\n.....\n..0..\n..0..\n.....\n.....\n\nface_pressed_eyes_both\n#ffffff #639bff #097ca9\n.....\n.....\n01.01\n00.00\n.....\n\n\nface_pressed_horizont_full_l\n#ffffff #639bff #000000\n.....\n.00..\n.01.2\n....2\n.....\n\n\nface_pressed_horizont_full_r\n#ffffff #000000 #639bff\n.....\n..00.\n1.20.\n1....\n.....\n\nforcesponge\ntransparent\n\nhalttag\ntransparent\n\n=======\nLEGEND\n=======\n\nface = face_pressed_eye_l or face_pressed_eye_r or face_normal_eye_l or face_normal_eye_r or face_normal_mouth_l or face_normal_mouth_r or face_pressed_mouth or face_pressed_eyes_both or face_pressed_horizont_full_l or face_pressed_horizont_full_r\nplayer = Player_tl or Player_tr or Player_bl or Player_br\ncrate = Crate_tl or Crate_tr or Crate_bl or Crate_br\nsponge = sponge_thick or sponge_thin \nobstacle = sponge or wall or Crate\n. = Background1\n, = Background2\n# = Wall and Background1\nq = Player_tl and sponge_thin and Background1\nw = Player_tr and sponge_thin and Background1\ne = Player_bl and sponge_thin and Background1\nr = player_br and sponge_thin and Background1\nO = Target and Background1\nz = crate_tl and Target and Background1\nx = crate_tr and Target and Background1\nc = crate_bl and Target and Background1\nb = Crate_br and Target and Background1\na = Crate_tl and Background1\ns = Crate_tr and Background1\nd = Crate_bl and Background1\nf = Crate_br and Background1\n\nskin_flesh = skin_tl_loose or skin_tr_loose or skin_bl_loose or skin_br_loose or skin_tl_tight or skin_tr_tight or skin_bl_tight or skin_br_tight \n\nskin_barrier = skin_n or skin_s or skin_e or skin_W\n\n\nskin = skin_flesh or skin_Barrier\nbackground = Background1 or Background2\n=======\nSOUNDS\n=======\n\nCrate MOVE 2330507\nstartlevel 93226500\nendlevel 74584306\n================\nCOLLISIONLAYERS\n================\n\nplayer\nsponge_ok\n\n\nBackground1, Background2\n\nsponge, Wall, Crate\n\nTarget\n\nskin_flesh\nskin_n\nskin_s\nskin_e\nskin_w\n\n\nface\ntargetlight\n\nforcesponge\nhalttag\n\n======\nRULES\n======\n\n[moving player] -> again\n\n\n(drawing code begin)\n(\nright [action player] [ Player_tl | ] -> [action player] [ player_tl | Player_tr sponge_thin ]\ndown [action player] [ player_tl | ] -> [action player] [ player_tl | Player_bl sponge_thin]\ndown [action player] [ player_tr | ] -> [action player] [ player_tr | Player_br sponge_thin]\n\nright [action player] [ Crate_tl target| no Crate ] -> [action player] [ Crate_tl target| Crate_tr target ]\ndown [action player] [ Crate_tl target| no Crate] -> [action player] [ Crate_tl target| Crate_bl target]\ndown [action player] [ Crate_tr target|no Crate ] -> [action player] [ Crate_tr target| Crate_br target]\n\nright [action player] [ Crate_tl no target| no Crate ] -> [action player] [ Crate_tl no target| Crate_tr ]\ndown [action player] [ Crate_tl no target| no Crate] -> [action player] [ Crate_tl no target| Crate_bl ]\ndown [action player] [ Crate_tr no target|no Crate ] -> [action player] [ Crate_tr no target| Crate_br ]\n)\n(drawing code end)\n\n[sponge_ok]->[]\n[moving player sponge] -> [ moving player moving sponge]\n\n[ > sponge | Crate ] -> [ > sponge | > Crate ]\n\n\n(expanding sponge applies force)\n[ stationary player ] [ sponge_thick | crate player ] ->[ stationary player ] [ sponge_thick forcesponge| > crate player ]\n\n(propagate movements)\nright [moving Crate_tl | stationary Crate_tr ] -> [moving Crate_tl | moving Crate_tr ]\n+ right [ stationary Crate_tl | moving Crate_tr ] -> [moving Crate_tl | moving Crate_tr ] \n+ right [moving Crate_bl | stationary Crate_br ] -> [moving Crate_bl | moving Crate_br ] \n+ right [ stationary Crate_bl | moving Crate_br ] -> [moving Crate_bl | moving Crate_br ] \n\n+ down [ moving crate_tl | stationary crate_bl ] -> [ moving crate_tl | moving crate_bl ] \n+ down [ stationary crate_tl | moving crate_bl ] -> [ moving crate_tl | moving crate_bl ]\n+ down [ moving crate_tr | stationary crate_br ] -> [ moving crate_tr | moving crate_br ] \n+ down [ stationary crate_tr | moving crate_br ] -> [ moving crate_tr | moving crate_br ]\n\n+ [ > crate | stationary crate ] -> [ > crate | > crate ]\n\n\n(unpropagate movements)\n\n[ > crate | stationary obstacle ] -> [ crate | obstacle ]\n+ right [moving Crate_tl | stationary Crate_tr ] -> [ Crate_tl | Crate_tr ]\n+ right [ stationary Crate_tl | moving Crate_tr ] -> [ Crate_tl | Crate_tr ] \n+ right [moving Crate_bl | stationary Crate_br ] -> [ Crate_bl | Crate_br ] \n+ right [ stationary Crate_bl | moving Crate_br ] -> [ Crate_bl | Crate_br ] \n\n+ down [ moving crate_tl | stationary crate_bl ] -> [ crate_tl | crate_bl ] \n+ down [ stationary crate_tl | moving crate_bl ] -> [ crate_tl | crate_bl ]\n+ down [ moving crate_tr | stationary crate_br ] -> [ crate_tr | crate_br ] \n+ down [ stationary crate_tr | moving crate_br ] -> [ crate_tr | crate_br ]\n\n(add halt tag to allcrates)\n[moving crate]->[moving crate halttag]\n(remove halttags along propagation)\n[ sponge | crate halttag ] -> [ sponge | crate no halttag ]\n\n+ right [no halttag Crate_tl | halttag Crate_tr ] -> [ Crate_tl | Crate_tr ]\n+ right [ halttag Crate_tl | no halttag Crate_tr ] -> [ Crate_tl | Crate_tr ] \n+ right [no halttag Crate_bl | halttag Crate_br ] -> [ Crate_bl | Crate_br ] \n+ right [ halttag Crate_bl | no halttag Crate_br ] -> [ Crate_bl | Crate_br ] \n\n+ down [ no halttag crate_tl | halttag crate_bl ] -> [ crate_tl | crate_bl ] \n+ down [ halttag crate_tl | no halttag crate_bl ] -> [ crate_tl | crate_bl ]\n+ down [ no halttag crate_tr | halttag crate_br ] -> [ crate_tr | crate_br ] \n+ down [ halttag crate_tr | no halttag crate_br ] -> [ crate_tr | crate_br ]\n\n+ [ > crate no halttag | > crate halttag ] -> [ > crate | > crate ]\n\n[moving crate halttag]->[stationary crate]\n\n(squish sponge if necessary)\n[ > sponge_thin | > sponge_thin | stationary obstacle ] -> [ | sponge_thick | stationary obstacle ]\n\n[ no sponge | > sponge_thick | no sponge no obstacle ] -> [ | sponge_thin | sponge_thin ]\nlate [ sponge no player ] -> cancel\n\nlate [ sponge_thick player | no obstacle player] -> [ sponge_thin player | sponge_thin player ]\n\nlate [ sponge_thick | no sponge player ] -> [sponge_thick sponge_ok | player ]\n\nlate [sponge_thick no sponge_ok ]-> cancel\n\n(draw skin)\nlate [skin]->[]\nlate [Player_tl sponge_thick ] -> [Player_tl sponge_thick skin_tl_tight ]\nlate [Player_tr sponge_thick ] -> [Player_tr sponge_thick skin_tr_tight ]\nlate [Player_bl sponge_thick ] -> [Player_bl sponge_thick skin_bl_tight ]\nlate [Player_br sponge_thick ] -> [Player_br sponge_thick skin_br_tight ]\n\nlate [Player_tl sponge_thin ] -> [Player_tl sponge_thin skin_tl_loose ]\nlate [Player_tr sponge_thin ] -> [Player_tr sponge_thin skin_tr_loose ]\nlate [Player_bl sponge_thin ] -> [Player_bl sponge_thin skin_bl_loose ]\nlate [Player_br sponge_thin ] -> [Player_br sponge_thin skin_br_loose ]\n\nlate up [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_n | player no sponge ]\nlate down [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_s | player no sponge ]\nlate left [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_w | player no sponge ]\nlate right [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_e | player no sponge ]\n\n(draw face (eyes/mouth))\nlate [face]->[]\n\nlate right [ sponge_thick no face | sponge_thick no face ] -> [ sponge_thick face_pressed_horizont_full_l | sponge_thick face_pressed_horizont_full_r]\n\nlate down [ sponge_thick no face | sponge_thick no face ] -> [ sponge_thick face_pressed_eyes_both | sponge_thick face_pressed_mouth]\n\nlate right [ player_tl sponge_thick | no sponge ] -> [ player_tl sponge_thick face_pressed_eyes_both | no sponge ]\nlate left [ player_tr sponge_thick | no sponge ] -> [ player_tr sponge_thick face_pressed_eyes_both | no sponge ]\n\n\nlate right [ Player_tl sponge_thin no face ] -> [ player_tl sponge_thin face_normal_eye_l ]\nlate right [ Player_tl sponge_thick no face ] -> [ player_tl sponge_thick face_pressed_eye_l ]\n\nlate right [ Player_tr sponge_thin no face ] -> [ player_tr sponge_thin face_normal_eye_r ]\nlate right [ Player_tr sponge_thick no face ] -> [ player_tr sponge_thick face_pressed_eye_r ]\n\nlate right [player_bl sponge_thin no face | player_Br sponge_thin no face ] -> [player_bl sponge_thin face_normal_mouth_l | player_Br sponge_thin face_normal_mouth_r ]\n\nlate right [ player_bl sponge no face | no sponge ] -> [ player_bl sponge face_pressed_mouth |]\nlate left [ player_br sponge no face | no sponge ] -> [ player_br sponge face_pressed_mouth |]\n\nlate [ player_bl sponge_thick no face ] -> [ player_bl sponge_thick face_pressed_horizont_full_l ]\nlate [ player_bl sponge_thin no face ] -> [ player_bl sponge_thin face_normal_mouth_l ]\n\n\nlate [ player_br sponge_thick no face ] -> [ player_br sponge_thick face_pressed_horizont_full_r ]\nlate [ player_br sponge_thin no face ] -> [ player_br sponge_thin face_normal_mouth_r ]\n\n(place lights on fulfilled targets)\nlate [targetlight]->[]\nlate [crate Target ] -> [ crate target targetlight]\n\n\nlate [ forcesponge sponge_thick ]->cancel\nlate [forcesponge]->[]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 10 : \"I am yellow.\"\n\n(p.easy)\n,,,,,,,,#####\n#########...#\n#oo.........#\n#oozxzxas.qw#\n###cbcbdf.er#\n,,#.........#\n,,#######...#\n,,,,,,,,#####\n\n\n\n\nmessage Level 2 of 10 : \"You can sqeeze me.\"\n\n(pretty easy, but fun?)\n,,,,,,,,#####\n,,,,,,###...#\n#######.....#\n#..,..ooqw..#\n#.....ooer.##\n#.as..##oo.#,\n#.df..##oo##,\n#####.....#,,\n,,,,##....#,,\n,,,,,#as..#,,\n,,,,,#df..#,,\n,,,,,#....#,,\n,,,,,######,,\n\nmessage Level 3 of 10 : \"It doesn't hurt at all.\"\n########\n#......#\n#.##qw.#\n#.##er.#\n#.aszx.#\n#.dfcb.#\n#.oozx.#\n#.oocb.#\n#......#\n########\n\n\nmessage Level 4 of 10 : \"I like to make the lights go on.\"\n(borderline not cute but tolerable)\n\n######,,,,\n#oo..##,,,\n#oo...##,,\n#qwasas##,\n#erdfdf.##\n###......#\n,,##.....#\n,,,##....#\n,,,,##...#\n,,,,,##oo#\n,,,,,,#oo#\n,,,,,,####\n\n\nmessage Level 5 of 10 : \"It's dark here on the seabed.\"\n\n(too like original/)\n,,######,,,,\n###....#####\n#.......as.#\n#.......df.#\n#.#....#as.#\n#oo..oo#df.#\n#oo..oo#qw.#\n########er.#\n,,,,,,,#####\n\nmessage Level 6 of 10 : \"I wonder what colour my eyes are.\"\n(ok not too hard)\n,,,######\n,,##....#\n,,#.zx..#\n###.cb..#\n#.asooqw#\n#.dfooer#\n#.......#\n#########\n\n\n\n\n\nmessage Level 7 of 10 : \"Sometimes corpses fall down from the sky.\"\n\n(fine. slightly tricky)\n#####,,,\n#.oo#,,,\n#.oo#,,,\n#...#,,,\n#...#,,,\n#...####\n#zx....#\n#cb....#\n#...as.#\n#...df.#\n#...####\n#...#,,,\n#qw.#,,,\n#er.#,,,\n#####,,,\n\n\nmessage Level 8 of 10 : \"The lights twinkle as if to say 'Thank you, spongey!' \"\n(p ok! not super easy)\n,,,#########\n,,,#.ooooqw#\n,,,#.ooooer#\n,,,#.asas..#\n,,,#.dfdf..#\n#####..#####\n#......###,,\n#........#,,\n#..#.....#,,\n#.....#..#,,\n#........#,,\n##########,,\n\n\nmessage Level 9 of 10 : \"Am I the only yellow thing in the universe?\"\n(I like this one)\n,,,,###########\n,,,##...#...oo#\n,,##as......oo#\n,##.df#...qw..#\n##....#...er..#\n#.............#\n#...###..zx...#\n#....##..cb...#\n##....##......#\n,##....###.#..#\n,,##.......#..#\n,,,##.........#\n,,,,#####.....#\n,,,,,,,,###..##\n,,,,,,,,,,####,\n\n\nmessage Level 10 of 10 : \"It's lonely, here on the seabed.\"\n(fine/hardosh)\n.########.\n###.oo..##\n###.oo...#\n#..asas..#\n#oodfdfoo#\n#ooasasoo#\n#..dfdfqw#\n#...oo.er#\n##..oo..##\n.########.\n\nmessage The End : \"I hope I was a good sponge. Was I a good sponge?\"\n\n(\n########\n#......#\n#...as.#\n#..#df.#\n#..as..#\n##.df..#\n#aszxo.#\n#dfcbqw#\n#....er#\n########\n\n########\n#......#\n#......#\n#......#\n#..as..#\n##.df..#\n#aszxo.#\n#dfcbqw#\n#....er#\n########\n)\n\n\n(\n\n################\n#oo.....,....oo#\n#oo..........oo#\n#..##..as..##..#\n#..##..df..##..#\n#.....####.....#\n#....##..##....#\n#..as#....#as..#\n#..df#....#df..#\n#....##..##....#\n#.....####.....#\n#..##..as..##..#\n#..##..df..##..#\n#oo......qw..oo#\n#oo......er..oo#\n################\n\n############\n#..........#\n#..,..ooqw.#\n#.....ooer.#\n#.as..##oo.#\n#.df..##oo.#\n#####......#\n....##.....#\n.....#as...#\n.....#df...#\n.....#.....#\n.....#######\n\n\n)\n\n(\n(ok? doesn't involve fancy logic, just pushign things around, but that's ok sometimes?)\n.########.\n##......##\n#...oo.qw#\n#..axzser#\n#.ocfdbo.#\n#.ozsaxo.#\n#..dbcf..#\n#...oo...#\n##......##\n.########.\n)\n\n\n\n(\n(too easy)\n.########.\n##..oo..##\n#...oo...#\n#..asas..#\n#oodfdfoo#\n#ooasasoo#\n#..dfdfqw#\n#...oo.er#\n##..oo..##\n.########.\n\n)\n\n\n\n(above level is just better version of this even if uglier)\n(\n################\n#..............#\n#......qw......#\n#......er......#\n#..............#\n#......as......#\n#......df......#\n#......##......#\n#oo..........oo#\n#oo....as....oo#\n###...#df#...###\n,,#..........#,,\n,,#...#..#...#,,\n,,#...#..#...#,,\n,,#..##..##..#,,\n,,##.##..##.##,,\n,,,#.##..##.#,,,\n,,,#........#,,,\n,,,#........#,,,\n,,,##########,,,\n)\n", [2, 2, 2, 3, 2, 1, 1, 1, 0, 0, 1, 1, 1, 2, 2, 3, 2, 1, 1, 1, 3, 1, 2, 2, 3, 3, 2, 3, 0, 1, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 1, 1, 0, 1, 2, 2, 3, 0, 1, 2, 2, 1, 2, 1, 2, 3, 0, 3, 3, 3, 0, 3, 3, 2, 2, 2, 2, 1, 1, 0, 0, 3, 0, 0, 1, 1], "background2:0,0,0,0,background1 wall:1,1,1,1,1,0,0,0,0,0,0,\n0,0,0,1,1,background1:2,2,2,1,1,0,0,0,0,0,\n0,0,1,1,2,2,2,2,2,1,1,0,0,0,0,\n0,1,1,2,2,2,2,2,2,2,1,1,0,0,0,\n1,1,2,2,background1 crate_tl:3,background1 crate_bl:4,1,2,2,2,2,1,1,0,0,\n1,2,2,2,background1 crate_tr:5,background1 crate_br:6,1,1,2,2,2,2,1,0,0,\n1,2,2,background1 player_tl wall:7,background1 player_bl wall:8,2,1,1,1,2,2,2,1,0,0,\n1,2,2,background1 face_pressed_eyes_both player_tr skin_tr_tight sponge_ok sponge_thick:9,background1 face_pressed_mouth player_br skin_br_tight sponge_ok sponge_thick:10,2,2,2,1,1,2,2,1,0,0,\n1,1,2,2,2,2,2,2,2,1,2,2,1,1,0,\n1,2,2,2,2,2,background1 target:11,11,2,1,2,2,2,1,0,\n1,2,2,2,2,2,11,11,2,2,2,2,2,1,1,\n1,2,2,2,2,2,2,3,4,1,1,2,2,2,1,\n1,11,11,2,2,2,2,5,6,2,2,2,2,2,1,\n1,11,11,2,2,2,2,2,2,2,2,2,2,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,\n", 17, "1627894176777.0325"] + "The sponge what lights up the seafloor", + ["title The sponge what lights up the seafloor\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\n( verbose_logging )\n\nbackground_color #097ca9\n\ntext_color black\nnoaction\n========\nOBJECTS\n========\n\nBackground1\n#097ca9 #026f9a\n00000\n00000\n00100\n00000\n00000\n\n\nBackground2\n#097ca9 #026f9a\n00000\n00000\n00000\n00000\n00000\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\n#005373 #0a6284\n00000\n00000\n00000\n00000\n00000\n\n\nPlayer_tl\npink red\n01111\n1....\n1....\n1....\n1....\n\nPlayer_tr\npink red\n11110\n....1\n....1\n....1\n....1\n\nPlayer_bl\npink red\n1....\n1....\n1....\n1....\n01111\n\nPlayer_br\npink red\n....1\n....1\n....1\n....1\n11110\n\nsponge_thick\nyellow\n.000.\n00000\n00000\n00000\n.000.\n\nsponge_thin\nyellow\n.000.\n00000\n00000\n00000\n.000.\n\nCrate_tl \n#b685b5 #8a4288\n00000\n01111\n01111\n01111\n01111\n\nCrate_tr \n#b685b5 #8a4288\n00000\n11110\n11110\n11110\n11110\n\nCrate_bl \n#b685b5 #8a4288\n01111\n01111\n01111\n01111\n00000\n\nCrate_br \n#b685b5 #8a4288\n11110\n11110\n11110\n11110\n00000\n\nsponge_ok\n#ff00ff\n0....\n.....\n.....\n.....\n.....\n\ntargetlight\n#83e5f9 #27aeca\n.....\n.....\n..0..\n.....\n.....\n\nskin_tl_loose \n#d5d156 #d2b140 #af8c18\n.0000\n01212\n02121\n01212\n02121\n\n\nskin_tr_loose\n#d5d156 #d2b140 #af8c18\n0000.\n12120\n21210\n12120\n21210\n\nskin_bl_loose\n#d5d156 #d2b140 #af8c18\n01212\n02121\n01212\n02121\n.0000\n\nskin_br_loose\n#d2b140 #af8c18 #d5d156\n01012\n10102\n01012\n10102\n2222.\n\n\n\nskin_tl_tight\n#d5d156 #9b7907\n.0000\n01111\n01111\n01111\n01111\n\nskin_tr_tight\n#d5d156 #9b7907\n0000.\n11110\n11110\n11110\n11110\n\nskin_bl_tight\n#d5d156 #9b7907\n01111\n01111\n01111\n01111\n.0000\n\nskin_br_tight\n#9b7907 #d5d156\n00001\n00001\n00001\n00001\n1111.\n\nskin_n\n#d5d156\n00000\n.....\n.....\n.....\n.....\n\nskin_s\n#d5d156\n.....\n.....\n.....\n.....\n00000\n\nskin_e\n#d5d156\n....0\n....0\n....0\n....0\n....0\n\nskin_w\n#d5d156\n0....\n0....\n0....\n0....\n0....\n\nface_pressed_eye_l\n#ffffff #639bff\n.....\n..01.\n..00.\n.....\n.....\n\nface_pressed_eye_r\n#ffffff #639bff\n.....\n.01..\n.00..\n.....\n.....\n\nface_normal_eye_l\n#ffffff #639bff\n.....\n.....\n..01.\n..00.\n.....\n\n\nface_normal_eye_r\n#ffffff #639bff\n.....\n.....\n.01..\n.00..\n.....\n\nface_normal_mouth_l\n#000000\n.....\n...00\n....0\n.....\n.....\n\n\nface_normal_mouth_r\n#000000\n.....\n00...\n0....\n.....\n.....\n\nface_pressed_mouth\n#000000\n.....\n..0..\n..0..\n.....\n.....\n\nface_pressed_eyes_both\n#ffffff #639bff #097ca9\n.....\n.....\n01.01\n00.00\n.....\n\n\nface_pressed_horizont_full_l\n#ffffff #639bff #000000\n.....\n.00..\n.01.2\n....2\n.....\n\n\nface_pressed_horizont_full_r\n#ffffff #000000 #639bff\n.....\n..00.\n1.20.\n1....\n.....\n\nforcesponge\ntransparent\n\nhalttag\ntransparent\n\n=======\nLEGEND\n=======\n\nface = face_pressed_eye_l or face_pressed_eye_r or face_normal_eye_l or face_normal_eye_r or face_normal_mouth_l or face_normal_mouth_r or face_pressed_mouth or face_pressed_eyes_both or face_pressed_horizont_full_l or face_pressed_horizont_full_r\nplayer = Player_tl or Player_tr or Player_bl or Player_br\ncrate = Crate_tl or Crate_tr or Crate_bl or Crate_br\nsponge = sponge_thick or sponge_thin \nobstacle = sponge or wall or Crate\n. = Background1\n, = Background2\n# = Wall and Background1\nq = Player_tl and sponge_thin and Background1\nw = Player_tr and sponge_thin and Background1\ne = Player_bl and sponge_thin and Background1\nr = player_br and sponge_thin and Background1\nO = Target and Background1\nz = crate_tl and Target and Background1\nx = crate_tr and Target and Background1\nc = crate_bl and Target and Background1\nb = Crate_br and Target and Background1\na = Crate_tl and Background1\ns = Crate_tr and Background1\nd = Crate_bl and Background1\nf = Crate_br and Background1\n\nskin_flesh = skin_tl_loose or skin_tr_loose or skin_bl_loose or skin_br_loose or skin_tl_tight or skin_tr_tight or skin_bl_tight or skin_br_tight \n\nskin_barrier = skin_n or skin_s or skin_e or skin_W\n\n\nskin = skin_flesh or skin_Barrier\nbackground = Background1 or Background2\n=======\nSOUNDS\n=======\n\nCrate MOVE 2330507\nstartlevel 93226500\nendlevel 74584306\n================\nCOLLISIONLAYERS\n================\n\nplayer\nsponge_ok\n\n\nBackground1, Background2\n\nsponge, Wall, Crate\n\nTarget\n\nskin_flesh\nskin_n\nskin_s\nskin_e\nskin_w\n\n\nface\ntargetlight\n\nforcesponge\nhalttag\n\n======\nRULES\n======\n\n[moving player] -> again\n\n\n(drawing code begin)\n(\nright [action player] [ Player_tl | ] -> [action player] [ player_tl | Player_tr sponge_thin ]\ndown [action player] [ player_tl | ] -> [action player] [ player_tl | Player_bl sponge_thin]\ndown [action player] [ player_tr | ] -> [action player] [ player_tr | Player_br sponge_thin]\n\nright [action player] [ Crate_tl target| no Crate ] -> [action player] [ Crate_tl target| Crate_tr target ]\ndown [action player] [ Crate_tl target| no Crate] -> [action player] [ Crate_tl target| Crate_bl target]\ndown [action player] [ Crate_tr target|no Crate ] -> [action player] [ Crate_tr target| Crate_br target]\n\nright [action player] [ Crate_tl no target| no Crate ] -> [action player] [ Crate_tl no target| Crate_tr ]\ndown [action player] [ Crate_tl no target| no Crate] -> [action player] [ Crate_tl no target| Crate_bl ]\ndown [action player] [ Crate_tr no target|no Crate ] -> [action player] [ Crate_tr no target| Crate_br ]\n)\n(drawing code end)\n\n[sponge_ok]->[]\n[moving player sponge] -> [ moving player moving sponge]\n\n[ > sponge | Crate ] -> [ > sponge | > Crate ]\n\n\n(expanding sponge applies force)\n[ stationary player ] [ sponge_thick | crate player ] ->[ stationary player ] [ sponge_thick forcesponge| > crate player ]\n\n(propagate movements)\nright [moving Crate_tl | stationary Crate_tr ] -> [moving Crate_tl | moving Crate_tr ]\n+ right [ stationary Crate_tl | moving Crate_tr ] -> [moving Crate_tl | moving Crate_tr ] \n+ right [moving Crate_bl | stationary Crate_br ] -> [moving Crate_bl | moving Crate_br ] \n+ right [ stationary Crate_bl | moving Crate_br ] -> [moving Crate_bl | moving Crate_br ] \n\n+ down [ moving crate_tl | stationary crate_bl ] -> [ moving crate_tl | moving crate_bl ] \n+ down [ stationary crate_tl | moving crate_bl ] -> [ moving crate_tl | moving crate_bl ]\n+ down [ moving crate_tr | stationary crate_br ] -> [ moving crate_tr | moving crate_br ] \n+ down [ stationary crate_tr | moving crate_br ] -> [ moving crate_tr | moving crate_br ]\n\n+ [ > crate | stationary crate ] -> [ > crate | > crate ]\n\n\n(unpropagate movements)\n\n[ > crate | stationary obstacle ] -> [ crate | obstacle ]\n+ right [moving Crate_tl | stationary Crate_tr ] -> [ Crate_tl | Crate_tr ]\n+ right [ stationary Crate_tl | moving Crate_tr ] -> [ Crate_tl | Crate_tr ] \n+ right [moving Crate_bl | stationary Crate_br ] -> [ Crate_bl | Crate_br ] \n+ right [ stationary Crate_bl | moving Crate_br ] -> [ Crate_bl | Crate_br ] \n\n+ down [ moving crate_tl | stationary crate_bl ] -> [ crate_tl | crate_bl ] \n+ down [ stationary crate_tl | moving crate_bl ] -> [ crate_tl | crate_bl ]\n+ down [ moving crate_tr | stationary crate_br ] -> [ crate_tr | crate_br ] \n+ down [ stationary crate_tr | moving crate_br ] -> [ crate_tr | crate_br ]\n\n(add halt tag to allcrates)\n[moving crate]->[moving crate halttag]\n(remove halttags along propagation)\n[ sponge | crate halttag ] -> [ sponge | crate no halttag ]\n\n+ right [no halttag Crate_tl | halttag Crate_tr ] -> [ Crate_tl | Crate_tr ]\n+ right [ halttag Crate_tl | no halttag Crate_tr ] -> [ Crate_tl | Crate_tr ] \n+ right [no halttag Crate_bl | halttag Crate_br ] -> [ Crate_bl | Crate_br ] \n+ right [ halttag Crate_bl | no halttag Crate_br ] -> [ Crate_bl | Crate_br ] \n\n+ down [ no halttag crate_tl | halttag crate_bl ] -> [ crate_tl | crate_bl ] \n+ down [ halttag crate_tl | no halttag crate_bl ] -> [ crate_tl | crate_bl ]\n+ down [ no halttag crate_tr | halttag crate_br ] -> [ crate_tr | crate_br ] \n+ down [ halttag crate_tr | no halttag crate_br ] -> [ crate_tr | crate_br ]\n\n+ [ > crate no halttag | > crate halttag ] -> [ > crate | > crate ]\n\n[moving crate halttag]->[stationary crate]\n\n(squish sponge if necessary)\n[ > sponge_thin | > sponge_thin | stationary obstacle ] -> [ | sponge_thick | stationary obstacle ]\n\n[ no sponge | > sponge_thick | no sponge no obstacle ] -> [ | sponge_thin | sponge_thin ]\nlate [ sponge no player ] -> cancel\n\nlate [ sponge_thick player | no obstacle player] -> [ sponge_thin player | sponge_thin player ]\n\nlate [ sponge_thick | no sponge player ] -> [sponge_thick sponge_ok | player ]\n\nlate [sponge_thick no sponge_ok ]-> cancel\n\n(draw skin)\nlate [skin]->[]\nlate [Player_tl sponge_thick ] -> [Player_tl sponge_thick skin_tl_tight ]\nlate [Player_tr sponge_thick ] -> [Player_tr sponge_thick skin_tr_tight ]\nlate [Player_bl sponge_thick ] -> [Player_bl sponge_thick skin_bl_tight ]\nlate [Player_br sponge_thick ] -> [Player_br sponge_thick skin_br_tight ]\n\nlate [Player_tl sponge_thin ] -> [Player_tl sponge_thin skin_tl_loose ]\nlate [Player_tr sponge_thin ] -> [Player_tr sponge_thin skin_tr_loose ]\nlate [Player_bl sponge_thin ] -> [Player_bl sponge_thin skin_bl_loose ]\nlate [Player_br sponge_thin ] -> [Player_br sponge_thin skin_br_loose ]\n\nlate up [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_n | player no sponge ]\nlate down [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_s | player no sponge ]\nlate left [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_w | player no sponge ]\nlate right [ player sponge_thin | player no sponge ] -> [ player sponge_thin skin_e | player no sponge ]\n\n(draw face (eyes/mouth))\nlate [face]->[]\n\nlate right [ sponge_thick no face | sponge_thick no face ] -> [ sponge_thick face_pressed_horizont_full_l | sponge_thick face_pressed_horizont_full_r]\n\nlate down [ sponge_thick no face | sponge_thick no face ] -> [ sponge_thick face_pressed_eyes_both | sponge_thick face_pressed_mouth]\n\nlate right [ player_tl sponge_thick | no sponge ] -> [ player_tl sponge_thick face_pressed_eyes_both | no sponge ]\nlate left [ player_tr sponge_thick | no sponge ] -> [ player_tr sponge_thick face_pressed_eyes_both | no sponge ]\n\n\nlate right [ Player_tl sponge_thin no face ] -> [ player_tl sponge_thin face_normal_eye_l ]\nlate right [ Player_tl sponge_thick no face ] -> [ player_tl sponge_thick face_pressed_eye_l ]\n\nlate right [ Player_tr sponge_thin no face ] -> [ player_tr sponge_thin face_normal_eye_r ]\nlate right [ Player_tr sponge_thick no face ] -> [ player_tr sponge_thick face_pressed_eye_r ]\n\nlate right [player_bl sponge_thin no face | player_Br sponge_thin no face ] -> [player_bl sponge_thin face_normal_mouth_l | player_Br sponge_thin face_normal_mouth_r ]\n\nlate right [ player_bl sponge no face | no sponge ] -> [ player_bl sponge face_pressed_mouth |]\nlate left [ player_br sponge no face | no sponge ] -> [ player_br sponge face_pressed_mouth |]\n\nlate [ player_bl sponge_thick no face ] -> [ player_bl sponge_thick face_pressed_horizont_full_l ]\nlate [ player_bl sponge_thin no face ] -> [ player_bl sponge_thin face_normal_mouth_l ]\n\n\nlate [ player_br sponge_thick no face ] -> [ player_br sponge_thick face_pressed_horizont_full_r ]\nlate [ player_br sponge_thin no face ] -> [ player_br sponge_thin face_normal_mouth_r ]\n\n(place lights on fulfilled targets)\nlate [targetlight]->[]\nlate [crate Target ] -> [ crate target targetlight]\n\n\nlate [ forcesponge sponge_thick ]->cancel\nlate [forcesponge]->[]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 10 : \"I am yellow.\"\n\n(p.easy)\n,,,,,,,,#####\n#########...#\n#oo.........#\n#oozxzxas.qw#\n###cbcbdf.er#\n,,#.........#\n,,#######...#\n,,,,,,,,#####\n\n\n\n\nmessage Level 2 of 10 : \"You can sqeeze me.\"\n\n(pretty easy, but fun?)\n,,,,,,,,#####\n,,,,,,###...#\n#######.....#\n#..,..ooqw..#\n#.....ooer.##\n#.as..##oo.#,\n#.df..##oo##,\n#####.....#,,\n,,,,##....#,,\n,,,,,#as..#,,\n,,,,,#df..#,,\n,,,,,#....#,,\n,,,,,######,,\n\nmessage Level 3 of 10 : \"It doesn't hurt at all.\"\n########\n#......#\n#.##qw.#\n#.##er.#\n#.aszx.#\n#.dfcb.#\n#.oozx.#\n#.oocb.#\n#......#\n########\n\n\nmessage Level 4 of 10 : \"I like to make the lights go on.\"\n(borderline not cute but tolerable)\n\n######,,,,\n#oo..##,,,\n#oo...##,,\n#qwasas##,\n#erdfdf.##\n###......#\n,,##.....#\n,,,##....#\n,,,,##...#\n,,,,,##oo#\n,,,,,,#oo#\n,,,,,,####\n\n\nmessage Level 5 of 10 : \"It's dark here on the seabed.\"\n\n(too like original/)\n,,######,,,,\n###....#####\n#.......as.#\n#.......df.#\n#.#....#as.#\n#oo..oo#df.#\n#oo..oo#qw.#\n########er.#\n,,,,,,,#####\n\nmessage Level 6 of 10 : \"I wonder what colour my eyes are.\"\n(ok not too hard)\n,,,######\n,,##....#\n,,#.zx..#\n###.cb..#\n#.asooqw#\n#.dfooer#\n#.......#\n#########\n\n\n\n\n\nmessage Level 7 of 10 : \"Sometimes corpses fall down from the sky.\"\n\n(fine. slightly tricky)\n#####,,,\n#.oo#,,,\n#.oo#,,,\n#...#,,,\n#...#,,,\n#...####\n#zx....#\n#cb....#\n#...as.#\n#...df.#\n#...####\n#...#,,,\n#qw.#,,,\n#er.#,,,\n#####,,,\n\n\nmessage Level 8 of 10 : \"The lights twinkle as if to say 'Thank you, spongey!' \"\n(p ok! not super easy)\n,,,#########\n,,,#.ooooqw#\n,,,#.ooooer#\n,,,#.asas..#\n,,,#.dfdf..#\n#####..#####\n#......###,,\n#........#,,\n#..#.....#,,\n#.....#..#,,\n#........#,,\n##########,,\n\n\nmessage Level 9 of 10 : \"Am I the only yellow thing in the universe?\"\n(I like this one)\n,,,,###########\n,,,##...#...oo#\n,,##as......oo#\n,##.df#...qw..#\n##....#...er..#\n#.............#\n#...###..zx...#\n#....##..cb...#\n##....##......#\n,##....###.#..#\n,,##.......#..#\n,,,##.........#\n,,,,#####.....#\n,,,,,,,,###..##\n,,,,,,,,,,####,\n\n\nmessage Level 10 of 10 : \"It's lonely, here on the seabed.\"\n(fine/hardosh)\n.########.\n###.oo..##\n###.oo...#\n#..asas..#\n#oodfdfoo#\n#ooasasoo#\n#..dfdfqw#\n#...oo.er#\n##..oo..##\n.########.\n\nmessage The End : \"I hope I was a good sponge. Was I a good sponge?\"\n\n(\n########\n#......#\n#...as.#\n#..#df.#\n#..as..#\n##.df..#\n#aszxo.#\n#dfcbqw#\n#....er#\n########\n\n########\n#......#\n#......#\n#......#\n#..as..#\n##.df..#\n#aszxo.#\n#dfcbqw#\n#....er#\n########\n)\n\n\n(\n\n################\n#oo.....,....oo#\n#oo..........oo#\n#..##..as..##..#\n#..##..df..##..#\n#.....####.....#\n#....##..##....#\n#..as#....#as..#\n#..df#....#df..#\n#....##..##....#\n#.....####.....#\n#..##..as..##..#\n#..##..df..##..#\n#oo......qw..oo#\n#oo......er..oo#\n################\n\n############\n#..........#\n#..,..ooqw.#\n#.....ooer.#\n#.as..##oo.#\n#.df..##oo.#\n#####......#\n....##.....#\n.....#as...#\n.....#df...#\n.....#.....#\n.....#######\n\n\n)\n\n(\n(ok? doesn't involve fancy logic, just pushign things around, but that's ok sometimes?)\n.########.\n##......##\n#...oo.qw#\n#..axzser#\n#.ocfdbo.#\n#.ozsaxo.#\n#..dbcf..#\n#...oo...#\n##......##\n.########.\n)\n\n\n\n(\n(too easy)\n.########.\n##..oo..##\n#...oo...#\n#..asas..#\n#oodfdfoo#\n#ooasasoo#\n#..dfdfqw#\n#...oo.er#\n##..oo..##\n.########.\n\n)\n\n\n\n(above level is just better version of this even if uglier)\n(\n################\n#..............#\n#......qw......#\n#......er......#\n#..............#\n#......as......#\n#......df......#\n#......##......#\n#oo..........oo#\n#oo....as....oo#\n###...#df#...###\n,,#..........#,,\n,,#...#..#...#,,\n,,#...#..#...#,,\n,,#..##..##..#,,\n,,##.##..##.##,,\n,,,#.##..##.#,,,\n,,,#........#,,,\n,,,#........#,,,\n,,,##########,,,\n)\n",[2,2,2,3,2,1,1,1,0,0,1,1,1,2,2,3,2,1,1,1,3,1,2,2,3,3,2,3,0,1,0,1,1,0,0,0,3,0,0,0,0,1,1,0,1,2,2,3,0,1,2,2,1,2,1,2,3,0,3,3,3,0,3,3,2,2,2,2,1,1,0,0,3,0,0,1,1],"background2:0,0,0,0,background1 wall:1,1,1,1,1,0,0,0,0,0,0,\n0,0,0,1,1,background1:2,2,2,1,1,0,0,0,0,0,\n0,0,1,1,2,2,2,2,2,1,1,0,0,0,0,\n0,1,1,2,2,2,2,2,2,2,1,1,0,0,0,\n1,1,2,2,background1 crate_tl:3,background1 crate_bl:4,1,2,2,2,2,1,1,0,0,\n1,2,2,2,background1 crate_tr:5,background1 crate_br:6,1,1,2,2,2,2,1,0,0,\n1,2,2,background1 player_tl wall:7,background1 player_bl wall:8,2,1,1,1,2,2,2,1,0,0,\n1,2,2,background1 face_pressed_eyes_both player_tr skin_tr_tight sponge_ok sponge_thick:9,background1 face_pressed_mouth player_br skin_br_tight sponge_ok sponge_thick:10,2,2,2,1,1,2,2,1,0,0,\n1,1,2,2,2,2,2,2,2,1,2,2,1,1,0,\n1,2,2,2,2,2,background1 target:11,11,2,1,2,2,2,1,0,\n1,2,2,2,2,2,11,11,2,2,2,2,2,1,1,\n1,2,2,2,2,2,2,3,4,1,1,2,2,2,1,\n1,11,11,2,2,2,2,5,6,2,2,2,2,2,1,\n1,11,11,2,2,2,2,2,2,2,2,2,2,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,\n",17,"1627894176777.0325"] ], [ - "(censored version of NSFW game) Sexual Intercourse", - ["title Sexual Intercourse \nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nbackground_color #4e0606\n\nnoaction\n\nverbose_logging\n(thanks to ggn2 for testing)\n\n========\nOBJECTS\n========\n\nBackground\n#4e0606\n\nWall\n#730b15 #ab2a2a #a82934\n.000.\n00000\n00000\n00000\n.000.\n\n\nwall_n\n#730b15 #a82934\n00010\n...1.\n...1.\n...1.\n.....\n\n\nwall_s\n#730b15 #a82934\n.....\n...1.\n...1.\n...1.\n00010\n\n\nwall_e\n#730b15 #a82934\n....0\n.1111\n....0\n....0\n....0\n\n\nwall_w\n#730b15 #a82934\n0....\n1111.\n0....\n0....\n0....\n\nwall_blot\n#730b15\n.000.\n00000\n00000\n00000\n.000.\n\nwall_blot_ne\n#730b15 #a82934\n.000.\n11100\n00010\n00010\n.001.\n\nwall_blot_ne_sm\n#730b15 #a82934\n.000.\n00100\n00010\n00000\n.000.\n\nTarget\ntransparent pink pink\n01110\n12221\n12221\n12221\n01110\n\n\nCrate\nwhite white white\n00220\n01112\n10220\n01000\n00110\n\n\nplayer_hat\ngreen green green green green\n01110\n23432\n22221\n21111\n21111\n\n\n\n\nPlayer\ngreen green green green green\n01111\n01111\n01111\n01110\n20002\n\n\n\nattachment\ngreen green green green green\n01110\n23341\n23331\n22331\n02220\n\n\nconnection_nw\ngreen green green green green\n0....\n.....\n.....\n.....\n.....\n\n\nconnection_ne\ngreen green green green green\n....0\n.....\n.....\n.....\n.....\n\n\nconnection_sw\ngreen green green green green\n.....\n.....\n.....\n.....\n0....\n\n\nconnection_se\ngreen green green green green\n.....\n.....\n.....\n.....\n....0\n\nholding_domain\n#ff0000\n.....\n.....\n..0..\n.....\n.....\n\nplayer_start_location\ntransparent\n\n=======\nLEGEND\n=======\n\ncanpush = player or player_hat or attachment or Crate\npushable = crate\n\nself = player or player_hat or attachment\n\nobstacle = player or player_hat or attachment or Crate or wall\n\nconnection = connection_nw or connection_ne or connection_sw or connection_se\nconnectable = player or attachment\n\nwall_connection = wall_n or wall_s or wall_e or wall_w or wall_blot or wall_blot_ne or wall_blot_ne_sm\nwall_v = wall_n or wall_s\nwall_h = wall_w or wall_e\n. = Background\n# = Wall\nq = player_hat\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\na = attachment\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 39435507\nendlevel 98112905\nstartlevel 27288509\nsfx0 97643907 (rearrange)\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, player_hat, attachment, Wall, Crate\nwall_n\nwall_s\nwall_e\nwall_W\nwall_blot\nwall_blot_ne\nwall_blot_ne_sm\nholding_domain\nplayer_start_location\n\nconnection_nw\nconnection_ne\nconnection_sw\nconnection_se\n\n======\nRULES\n======\n\n[moving player]->[moving player player_start_location]\n\nright [ Wall no wall_e | wall no wall_w ] -> [ wall wall_e | wall wall_w ]\ndown [ Wall no wall_s | wall no wall_n ] -> [ wall wall_s | wall wall_n ]\n[wall_v wall_h no wall_blot ] -> [ wall_v wall_h wall_blot ]\n[wall_s wall_w no wall_blot_ne ] -> [ wall_s wall_w wall_blot_ne ]\n[wall_s wall_w wall_e ] -> [ wall_s wall_w wall_e no wall_blot_ne ]\n[wall no wall_connection ] -> [ wall wall_blot_ne_sm ]\n\n(editor stuff)\n(\n \n\tdown [no player_hat | action player ] -> [ action player_hat | action player no player_start_location ]\n \n \n\t(Draw holding domain)\n right [ | action player | ] -> [ holding_domain | action player holding_domain | holding_domain ]\n down [ no holding_domain | holding_domain | no holding_domain ] -> [ | holding_domain | holding_domain ]\n\t\n right [action player] [ holding_domain | holding_domain no player | holding_domain ] -> [action player] [ attachment holding_domain | holding_domain | holding_domain attachment ]\n \n [holding_domain]->[]\n)\n(end editor stuff)\n\n\n[ > player ] [ stationary self ] -> [ > player ] [ > self] \n\n[ > canpush | pushable ] -> [ > canpush | > pushable ]\n\n[ > canpush | stationary wall ] -> [ canpush | Wall ]\n[ > canpush | stationary canpush ] -> [ canpush | canpush ]\n[moving player ] [stationary attachment ] -> sfx0\n\n(Draw holding domain)\nlate right [ | player | ] -> [ holding_domain | player holding_domain | holding_domain ]\nlate down [ no holding_domain | holding_domain | no holding_domain ] -> [ | holding_domain | holding_domain ]\n\nlate [ attachment no holding_domain ] -> cancel\nlate [holding_domain]->[]\n\n\nlate down [player_hat | no player ] -> cancel\nlate [ player player_start_location ]->cancel\nlate [ player_start_location]->[]\n\n(cosmetics)\nlate [connection]->[]\nlate up [ connectable | no connectable ] -> [connectable | connection_sw connection_se ]\nlate down [ connectable | no connectable ] -> [connectable | connection_nw connection_ne ]\n\nlate left [ connection_sw | no connectable ] -> [ | ]\nlate left [ connection_nw | no connectable ] -> [ | ]\n\nlate right [ connection_se | no connectable ] -> [ | ]\nlate right [ connection_ne | no connectable ] -> [ | ]\n\nlate right [ | connection_nw ] -> [ connection_ne | connection_nw ]\n+ late right [ connection_ne | ] -> [ connection_ne | connection_nw ]\n\n+ late right [ | connection_sw ] -> [ connection_se | connection_sw ]\n+ late right [ connection_se | ] -> [ connection_se | connection_sw ]\n\n+ late down [ | connection_nw ] -> [ connection_sw | connection_nw ]\n+ late down [ connection_sw| ] -> [ connection_sw | connection_nw ]\n\n+ late down [ | connection_ne ] -> [ connection_se | connection_ne ]\n+ late down [ connection_se| ] -> [ connection_se | connection_ne ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 12 \n(chill level 2/3? not too hard)\n############\n#..........#\n#..........#\n#..........#\n#..........#\n#..o.o.....#\n##.#.#.##..#\n#.......#..#\n#..*.*.....#\n#..........#\n#...q......#\n#...p...####\n#..a.a..#...\n#.......#...\n#########...\n\nmessage Level 2 of 12 \n\n(not tooo hard but relies on shape manipulation)\n.#####....\n.#...#####\n.#...#...#\n##.......#\n#o....*..#\n#o...#*..#\n###..#.q.#\n..####.p.#\n.....#a.a#\n.....#####\n\n\nmessage Level 3 of 12 \n\n(ok possible first level)\n.###....\n.#o#....\n.#.#....\n.#.#####\n.#.....#\n.#.....#\n.#.....#\n##..*..#\n#.q.####\n#.p.#...\n#a.a#...\n#####...\n\n\n\nmessage Level 4 of 12 \n(super chill/not hard. don't put too early because assumes literacy, but don't leave too late)\n#######\n#ooooo#\n#.....#\n#..*..#\n#.*q*.#\n#.*p*.#\n#*a*a*#\n#.*.*.#\n#.....#\n#ooooo#\n#######\n\n\nmessage Level 5 of 12 \n\n(not tooo hard maybe? but p. good)\n.####..\n.#..##.\n.#..o#.\n.#...#.\n.#.@.#.\n.#.@.#.\n.#.@.#.\n##.*.##\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n#######\n\n\nmessage Level 6 of 12 \n(not hard. not too much manipulation)\n##########\n#........#\n#........#\n#..o.*o..#\n#..*.....#\n#.....*..#\n#..o*.oq.#\n#......p.#\n#.....a.a#\n##########\n\n\nmessage Level 7 of 12 \n\n(p. ok? medium-solvable, not hard)\n......#######\n#######.....#\n#.....#.....#\n#...........#\n#...**......#\n#.q.*.#ooo..#\n#.p...#######\n#a.a..#......\n#######......\n\n\nmessage Level 8 of 12 \n\n(enjoyed solving this - fun process)\n.#######.....\n.#oooq.##....\n.#...p..##...\n.#..a.a..##..\n.###..***.##.\n...##......##\n....##......#\n.....##.....#\n......##....#\n.......######\n\nmessage Level 9 of 12 \n(not too hard, kinda fine)\n.....####..\n.....#o.#..\n.....#o.###\n######....#\n#.q.......#\n#.p.......#\n#a.a.*.*..#\n#..#.#.####\n#......#...\n#......#...\n#......#...\n########...\n\nmessage Level 10 of 12 \n(slightly tricky but fun?)\n\n#########\n#.oo..q.#\n#.....p.#\n#....a.a#\n##**#####\n.#.....#.\n.#.....#.\n.#..#..#.\n.#.....#.\n.#.....#.\n.#.....#.\n.#######.\n\nmessage Level 11 of 12 \n(hardish, but satisfying + thinkthroughable shape manipulation)\n########\n#.#..q.#\n#....p.#\n#...a.a#\n#..#...#\n#..*@..#\n#..o@..#\n#......#\n########\n\nmessage Level 12 of 12 \n(for me super hard but for others possible)\n##########\n#..q.....#\n#..p.....#\n#.a.a....#\n##.*.#*..#\n.#o.o#...#\n.#########\n\nmessage Congratulations! You now know how to make babies!\n\n\n(\n\n....########.\n....#......#.\n....#.oo...#.\n....#.oo.q.#.\n....#....p.#.\n....#...a.a#.\n....##**####.\n.....#**#....\n######..####.\n#..........#.\n#...#......#.\n#.......#..#.\n#..........#.\n######.....#.\n.....#.....#.\n.....#.....#.\n.....#.....#.\n.....#.....#.\n.....#######.\n\n\n############\n#..........#\n#..........#\n#...**.....#\n#.q.*.#ooo.#\n#.p...######\n#a.a..#.....\n#######.....\n\n\n########\n#......#\n#.o.*o.#\n#.*....#\n#...q*.#\n#.o*po.#\n#..a.a.#\n########\n\n########\n#......#\n#.o*o..#\n#.*.*q.#\n#.o*op.#\n#...a.a#\n########\n\n\n.#####.\n.#..o#.\n.#.@.#.\n.#.@.#.\n.#.@.#.\n##.*.##\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n#######\n\n#######\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n##.*.##\n.#.@.#.\n.#.@.#.\n.#..o#.\n.#####.\n\n.....#######\n.....#.....#\n######.....#\n#o......q..#\n#.@@@*..p..#\n#......a.a.#\n######.....#\n.....#.....#\n.....#######\n\n\n##########\n#..q.....#\n#..p.....#\n#.a.a....#\n##.*.#*..#\n#.o.o#...#\n##########\n\n###########\n#...q.....#\n#...p.....#\n#..a.a....#\n#.#.*.#*..#\n#..o.o#...#\n###########\n\n\n..#####....\n###...#####\n#......*..#\n#.....#*..#\n#..#..#.q.#\n#..o.o#.p.#\n#######a.a#\n......#####\n\n########\n#......#\n#..q...#\n#..p...#\n#.a.a..#\n#......#\n#..#...#\n#..*@..#\n#..o@..#\n#......#\n########\n\n#######\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n#..#..#\n#..*@.#\n#..o@.#\n#.....#\n#######\n\n\n##########\n#........#\n#.#...q..#\n#.*@..p..#\n#.o@.a.a.#\n#........#\n##########\n\n\n################\n#..............#\n#........#.....#\n#..............#\n#..#......o....#\n#...*..q...o...#\n#...*..p.......#\n#.....a.a...#..#\n#..............#\n################\n\n\n#########\n#.......#\n#.......#\n#.q.....#\n#.p.....#\n#a.a....#\n#########\n\n\n###########\n#.........#\n#.........#\n#.........#\n#..q......#\n#..p......#\n#.a.a.....#\n#.........#\n###########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n)\n(\n====\nTRANSFORMATION\n====\n\n\nchoose 5 option 0.5 [no obstacle ]->[wall]\nchoose 2 [no obstacle]->[crate]\nchoose 2 [ no wall no player no player_hat no attachment ] -> [target]\n)\n", [0, 0, 3, 2, 3, 0, 0, 0, 2, 2, 2, 3, 0, 3, 3, 0, 0, 0, 3, 0, 1, 1, 0, 0, 0, 1, 2, 2, 3, 1, 1, 1, 2, 3, 0, 0, 1, 1, 2, 3, 0, 3, 2, 2, 0, 3, 3, 3, 1, 1, 2, 1, 1, 0, 1, 1, 2, 2, 1, 1, 0, 3, 3, 3, 3, 2, 3, 2, 2, 2, 2, 3, 2, 2, 3, 2, 2, 1, 1, 0, 1, 1, 2, 1, 0, 0, 2, 0, 3, 2, 3, 3, 2, 2, 2, 3, 0, 3, 3, 0, 3, 0, 0, 0, 0, 2, 2, 1, 1, 1, 1, 1, 0, 0, 2, 1, 1, 1, 2, 1, 3, 0, 0, 0, 3, 1, 2, 2, 3, 3, 3, 3, 0, 2, 3, 3, 3, 3, 2, 3, 3, 3, 0, 1, 0, 0, 3, 0, 0, 1, 0, 1, 1, 1, 2, 1], "background wall wall_blot wall_e wall_s:0,background wall wall_n wall_s:1,1,1,1,1,background wall wall_blot wall_e wall_n wall_s:2,1,1,1,1,1,\n1,1,background wall wall_blot wall_e wall_n:3,background wall wall_e wall_w:4,background:5,5,5,5,5,background wall wall_w:6,background crate:7,5,\n5,5,5,5,5,4,4,5,5,5,5,5,\n5,5,5,5,5,5,5,5,4,4,5,5,\n5,5,background target:8,background wall wall_blot_ne_sm:9,5,5,5,5,5,5,5,4,\n4,5,5,5,5,7,5,5,5,5,5,5,\n5,5,4,4,5,5,5,background player_hat:10,background connection_se player target:11,background connection_ne wall wall_blot_ne_sm:12,5,5,\n5,5,5,5,5,4,4,5,5,5,5,attachment background connection_sw:13,\nattachment background connection_nw:14,5,5,5,5,5,5,5,4,4,5,5,\n5,5,5,background wall wall_e:15,5,5,5,5,5,5,5,4,\n4,5,5,5,5,5,background wall wall_blot wall_blot_ne wall_s wall_w:16,background wall wall_n:17,5,5,5,0,\n1,1,background wall wall_blot wall_n wall_w:18,4,5,5,5,5,5,5,5,5,\n5,5,4,5,5,5,4,5,5,5,5,5,\n5,5,5,5,5,4,5,5,5,16,1,1,\n1,1,1,1,1,1,1,1,18,5,5,5,\n", 1, "1645642688116.959"] + "Sexual Intercourse", + ["title Sexual Intercourse \nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nbackground_color #4e0606\n\nnoaction\n\nverbose_logging\n(thanks to ggn2 for testing)\n\n========\nOBJECTS\n========\n\nBackground\n#4e0606\n\nWall\n#730b15 #ab2a2a #a82934\n.000.\n00000\n00000\n00000\n.000.\n\n\nwall_n\n#730b15 #a82934\n00010\n...1.\n...1.\n...1.\n.....\n\n\nwall_s\n#730b15 #a82934\n.....\n...1.\n...1.\n...1.\n00010\n\n\nwall_e\n#730b15 #a82934\n....0\n.1111\n....0\n....0\n....0\n\n\nwall_w\n#730b15 #a82934\n0....\n1111.\n0....\n0....\n0....\n\nwall_blot\n#730b15\n.000.\n00000\n00000\n00000\n.000.\n\nwall_blot_ne\n#730b15 #a82934\n.000.\n11100\n00010\n00010\n.001.\n\nwall_blot_ne_sm\n#730b15 #a82934\n.000.\n00100\n00010\n00000\n.000.\n\nTarget\ntransparent #e04eb2 #bf258e\n01110\n12221\n12221\n12221\n01110\n\n\nCrate\ntransparent #ffffff #e3e3e3\n00220\n01112\n10220\n01000\n00110\n\n\nplayer_hat\ntransparent #ebb176 #d9a066 #d86375 #d25165\n01110\n23432\n22221\n21111\n21111\n\n\n\n\nPlayer\n#d9a066 #ebb176 transparent\n01111\n01111\n01111\n01110\n20002\n\n\n\nattachment\ntransparent #ebb176 #c48d55 #d9a066 #f1bd88\n01110\n23341\n23331\n22331\n02220\n\n\nconnection_nw\n#d9a066\n0....\n.....\n.....\n.....\n.....\n\n\nconnection_ne\n#d9a066\n....0\n.....\n.....\n.....\n.....\n\n\nconnection_sw\n#d9a066\n.....\n.....\n.....\n.....\n0....\n\n\nconnection_se\n#d9a066\n.....\n.....\n.....\n.....\n....0\n\nholding_domain\n#ff0000\n.....\n.....\n..0..\n.....\n.....\n\nplayer_start_location\ntransparent\n\n=======\nLEGEND\n=======\n\ncanpush = player or player_hat or attachment or Crate\npushable = crate\n\nself = player or player_hat or attachment\n\nobstacle = player or player_hat or attachment or Crate or wall\n\nconnection = connection_nw or connection_ne or connection_sw or connection_se\nconnectable = player or attachment\n\nwall_connection = wall_n or wall_s or wall_e or wall_w or wall_blot or wall_blot_ne or wall_blot_ne_sm\nwall_v = wall_n or wall_s\nwall_h = wall_w or wall_e\n. = Background\n# = Wall\nq = player_hat\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\na = attachment\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 39435507\nendlevel 98112905\nstartlevel 27288509\nsfx0 97643907 (rearrange)\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, player_hat, attachment, Wall, Crate\nwall_n\nwall_s\nwall_e\nwall_W\nwall_blot\nwall_blot_ne\nwall_blot_ne_sm\nholding_domain\nplayer_start_location\n\nconnection_nw\nconnection_ne\nconnection_sw\nconnection_se\n\n======\nRULES\n======\n\n[moving player]->[moving player player_start_location]\n\nright [ Wall no wall_e | wall no wall_w ] -> [ wall wall_e | wall wall_w ]\ndown [ Wall no wall_s | wall no wall_n ] -> [ wall wall_s | wall wall_n ]\n[wall_v wall_h no wall_blot ] -> [ wall_v wall_h wall_blot ]\n[wall_s wall_w no wall_blot_ne ] -> [ wall_s wall_w wall_blot_ne ]\n[wall_s wall_w wall_e ] -> [ wall_s wall_w wall_e no wall_blot_ne ]\n[wall no wall_connection ] -> [ wall wall_blot_ne_sm ]\n\n(editor stuff)\n(\n \n\tdown [no player_hat | action player ] -> [ action player_hat | action player no player_start_location ]\n \n \n\t(Draw holding domain)\n right [ | action player | ] -> [ holding_domain | action player holding_domain | holding_domain ]\n down [ no holding_domain | holding_domain | no holding_domain ] -> [ | holding_domain | holding_domain ]\n\t\n right [action player] [ holding_domain | holding_domain no player | holding_domain ] -> [action player] [ attachment holding_domain | holding_domain | holding_domain attachment ]\n \n [holding_domain]->[]\n)\n(end editor stuff)\n\n\n[ > player ] [ stationary self ] -> [ > player ] [ > self] \n\n[ > canpush | pushable ] -> [ > canpush | > pushable ]\n\n[ > canpush | stationary wall ] -> [ canpush | Wall ]\n[ > canpush | stationary canpush ] -> [ canpush | canpush ]\n[moving player ] [stationary attachment ] -> sfx0\n\n(Draw holding domain)\nlate right [ | player | ] -> [ holding_domain | player holding_domain | holding_domain ]\nlate down [ no holding_domain | holding_domain | no holding_domain ] -> [ | holding_domain | holding_domain ]\n\nlate [ attachment no holding_domain ] -> cancel\nlate [holding_domain]->[]\n\n\nlate down [player_hat | no player ] -> cancel\nlate [ player player_start_location ]->cancel\nlate [ player_start_location]->[]\n\n(cosmetics)\nlate [connection]->[]\nlate up [ connectable | no connectable ] -> [connectable | connection_sw connection_se ]\nlate down [ connectable | no connectable ] -> [connectable | connection_nw connection_ne ]\n\nlate left [ connection_sw | no connectable ] -> [ | ]\nlate left [ connection_nw | no connectable ] -> [ | ]\n\nlate right [ connection_se | no connectable ] -> [ | ]\nlate right [ connection_ne | no connectable ] -> [ | ]\n\nlate right [ | connection_nw ] -> [ connection_ne | connection_nw ]\n+ late right [ connection_ne | ] -> [ connection_ne | connection_nw ]\n\n+ late right [ | connection_sw ] -> [ connection_se | connection_sw ]\n+ late right [ connection_se | ] -> [ connection_se | connection_sw ]\n\n+ late down [ | connection_nw ] -> [ connection_sw | connection_nw ]\n+ late down [ connection_sw| ] -> [ connection_sw | connection_nw ]\n\n+ late down [ | connection_ne ] -> [ connection_se | connection_ne ]\n+ late down [ connection_se| ] -> [ connection_se | connection_ne ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 12 \n(chill level 2/3? not too hard)\n############\n#..........#\n#..........#\n#..........#\n#..........#\n#..o.o.....#\n##.#.#.##..#\n#.......#..#\n#..*.*.....#\n#..........#\n#...q......#\n#...p...####\n#..a.a..#...\n#.......#...\n#########...\n\nmessage Level 2 of 12 \n\n(not tooo hard but relies on shape manipulation)\n.#####....\n.#...#####\n.#...#...#\n##.......#\n#o....*..#\n#o...#*..#\n###..#.q.#\n..####.p.#\n.....#a.a#\n.....#####\n\n\nmessage Level 3 of 12 \n\n(ok possible first level)\n.###....\n.#o#....\n.#.#....\n.#.#####\n.#.....#\n.#.....#\n.#.....#\n##..*..#\n#.q.####\n#.p.#...\n#a.a#...\n#####...\n\n\n\nmessage Level 4 of 12 \n(super chill/not hard. don't put too early because assumes literacy, but don't leave too late)\n#######\n#ooooo#\n#.....#\n#..*..#\n#.*q*.#\n#.*p*.#\n#*a*a*#\n#.*.*.#\n#.....#\n#ooooo#\n#######\n\n\nmessage Level 5 of 12 \n\n(not tooo hard maybe? but p. good)\n.####..\n.#..##.\n.#..o#.\n.#...#.\n.#.@.#.\n.#.@.#.\n.#.@.#.\n##.*.##\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n#######\n\n\nmessage Level 6 of 12 \n(not hard. not too much manipulation)\n##########\n#........#\n#........#\n#..o.*o..#\n#..*.....#\n#.....*..#\n#..o*.oq.#\n#......p.#\n#.....a.a#\n##########\n\n\nmessage Level 7 of 12 \n\n(p. ok? medium-solvable, not hard)\n......#######\n#######.....#\n#.....#.....#\n#...........#\n#...**......#\n#.q.*.#ooo..#\n#.p...#######\n#a.a..#......\n#######......\n\n\nmessage Level 8 of 12 \n\n(enjoyed solving this - fun process)\n.#######.....\n.#oooq.##....\n.#...p..##...\n.#..a.a..##..\n.###..***.##.\n...##......##\n....##......#\n.....##.....#\n......##....#\n.......######\n\nmessage Level 9 of 12 \n(not too hard, kinda fine)\n.....####..\n.....#o.#..\n.....#o.###\n######....#\n#.q.......#\n#.p.......#\n#a.a.*.*..#\n#..#.#.####\n#......#...\n#......#...\n#......#...\n########...\n\nmessage Level 10 of 12 \n(slightly tricky but fun?)\n\n#########\n#.oo..q.#\n#.....p.#\n#....a.a#\n##**#####\n.#.....#.\n.#.....#.\n.#..#..#.\n.#.....#.\n.#.....#.\n.#.....#.\n.#######.\n\nmessage Level 11 of 12 \n(hardish, but satisfying + thinkthroughable shape manipulation)\n########\n#.#..q.#\n#....p.#\n#...a.a#\n#..#...#\n#..*@..#\n#..o@..#\n#......#\n########\n\nmessage Level 12 of 12 \n(for me super hard but for others possible)\n##########\n#..q.....#\n#..p.....#\n#.a.a....#\n##.*.#*..#\n.#o.o#...#\n.#########\n\nmessage Congratulations! You now know how to make babies!\n\n\n(\n\n....########.\n....#......#.\n....#.oo...#.\n....#.oo.q.#.\n....#....p.#.\n....#...a.a#.\n....##**####.\n.....#**#....\n######..####.\n#..........#.\n#...#......#.\n#.......#..#.\n#..........#.\n######.....#.\n.....#.....#.\n.....#.....#.\n.....#.....#.\n.....#.....#.\n.....#######.\n\n\n############\n#..........#\n#..........#\n#...**.....#\n#.q.*.#ooo.#\n#.p...######\n#a.a..#.....\n#######.....\n\n\n########\n#......#\n#.o.*o.#\n#.*....#\n#...q*.#\n#.o*po.#\n#..a.a.#\n########\n\n########\n#......#\n#.o*o..#\n#.*.*q.#\n#.o*op.#\n#...a.a#\n########\n\n\n.#####.\n.#..o#.\n.#.@.#.\n.#.@.#.\n.#.@.#.\n##.*.##\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n#######\n\n#######\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n##.*.##\n.#.@.#.\n.#.@.#.\n.#..o#.\n.#####.\n\n.....#######\n.....#.....#\n######.....#\n#o......q..#\n#.@@@*..p..#\n#......a.a.#\n######.....#\n.....#.....#\n.....#######\n\n\n##########\n#..q.....#\n#..p.....#\n#.a.a....#\n##.*.#*..#\n#.o.o#...#\n##########\n\n###########\n#...q.....#\n#...p.....#\n#..a.a....#\n#.#.*.#*..#\n#..o.o#...#\n###########\n\n\n..#####....\n###...#####\n#......*..#\n#.....#*..#\n#..#..#.q.#\n#..o.o#.p.#\n#######a.a#\n......#####\n\n########\n#......#\n#..q...#\n#..p...#\n#.a.a..#\n#......#\n#..#...#\n#..*@..#\n#..o@..#\n#......#\n########\n\n#######\n#.....#\n#..q..#\n#..p..#\n#.a.a.#\n#.....#\n#..#..#\n#..*@.#\n#..o@.#\n#.....#\n#######\n\n\n##########\n#........#\n#.#...q..#\n#.*@..p..#\n#.o@.a.a.#\n#........#\n##########\n\n\n################\n#..............#\n#........#.....#\n#..............#\n#..#......o....#\n#...*..q...o...#\n#...*..p.......#\n#.....a.a...#..#\n#..............#\n################\n\n\n#########\n#.......#\n#.......#\n#.q.....#\n#.p.....#\n#a.a....#\n#########\n\n\n###########\n#.........#\n#.........#\n#.........#\n#..q......#\n#..p......#\n#.a.a.....#\n#.........#\n###########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n)\n(\n====\nTRANSFORMATION\n====\n\n\nchoose 5 option 0.5 [no obstacle ]->[wall]\nchoose 2 [no obstacle]->[crate]\nchoose 2 [ no wall no player no player_hat no attachment ] -> [target]\n)\n",[3,2,3,0,3,2,2,1,1,2,2,3,3,3,3,0,0,0,0,2,2,1,1,1,1,1,3,3,3,3,1,2,1],"background:0,0,0,background wall wall_blot wall_e wall_s:1,background wall wall_n wall_s:2,2,2,2,2,2,2,\nbackground wall wall_blot wall_e wall_n:3,0,0,0,background wall wall_e wall_w:4,0,0,0,0,0,0,\n0,4,0,0,0,4,0,0,0,0,0,\n0,0,4,0,0,0,4,0,background player_hat:5,background connection_se player:6,background connection_ne wall wall_blot_ne_sm:7,\n0,0,0,4,0,0,0,4,0,0,attachment background connection_sw:8,\nattachment background connection_nw:9,0,0,0,4,1,2,2,background wall wall_blot wall_n wall_w:10,0,0,\n0,background wall wall_blot_ne_sm:11,0,0,0,4,4,background target:12,12,0,0,\n0,0,0,0,0,0,4,4,0,0,0,\n0,0,0,1,2,2,2,10,background wall wall_blot wall_blot_ne wall_s wall_w:13,2,3,\n0,0,0,background crate:14,4,0,0,0,0,0,0,\n4,0,0,0,14,4,0,0,0,0,0,\n0,13,2,2,2,2,10,0,0,0,0,\n",17,"1627894223066.2476"] ], [ - "Attractor Net", - ["title Attractor Net\nauthor increpare\nhomepage www.increpare.com\n\n(require_player_movement)\n\n========\nOBJECTS\n========\n\nBackground\ndarkgray\n\nTarget\n#7eb44a\n00000\n00000\n00000\n00000\n00000\n\n\nWall\n#2c2c2c\n\nplayer1 1\nblue lightblue\n.0000\n01.1.\n0....\n01.1.\n0....\n\nplayer2 2\nblue lightblue\n00000\n.1.1.\n.....\n.1.1.\n.....\n\nplayer3 3\nblue lightblue\n0000.\n.1.10\n....0\n.1.10\n....0\n\nplayer4 4\nblue lightblue\n0....\n01.1.\n0....\n01.1.\n0....\n\nplayer5 5\nlightblue\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nplayer6 6\nlightblue blue\n....1\n.0.01\n....1\n.0.01\n....1\n\nplayer7 7\nblue lightblue\n0....\n01.1.\n0....\n01.1.\n.0000\n\nplayer8 8\nlightblue blue\n.....\n.0.0.\n.....\n.0.0.\n11111\n\nplayer9 9\nlightblue blue\n....1\n.0.01\n....1\n.0.01\n1111.\n\nCrate\n#ff6fd0 #d248a5 #ff3fc0\n.000.\n1.2.0\n12220\n1.2.0\n.111.\n\nouterwall \nblack\n\n\n=======\nLEGEND\n=======\n\nplayer = player1 or player2 or player3 or player4 or player5 or player6 or player7 or player8 or player9\n\na = player1 and crate\ns = player2 and crate\nd = player3 and crate\nf = player4 and crate\ng = player5 and crate\nh = player6 and crate\nj = player7 and crate\nk = player8 and crate\nl = player9 and Crate\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n, = outerwall and wall\n\n=======\nSOUNDS\n=======\n\nstartlevel 4424703\nendlevel 73919502\nCrate MOVE 99195907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nWall\nplayer\nCrate\nouterwall\n\n======\nRULES\n======\n\n[ > player | outerwall ] -> cancel\n\n[ > Player Crate ] -> [ > Player > Crate ]\n[ > crate | crate ] -> [ > crate | > crate ]\n\n[ > crate | wall ] -> [ crate | wall ]\n\n\n==============\nWINCONDITIONS\n==============\n\nall crate on Target\n\n=======\nLEVELS\n=======\n\n\nmessage level 1 of 10\n\n(level 1? not trivial!)\n,,,,,,,,,,,\n,#########,\n,#o.....o#,\n,#.......#,\n,#.......#,\n,#..*.*..#,\n,#..123..#,\n,#..456..#,\n,#..789..#,\n,#########,\n,,,,,,,,,,,\n\n\nmessage level 2 of 10\n\n(ok for a level 2?)\n,,,,,,,,,\n,o.....o,\n,.......,\n,..***..,\n,..123##,\n,..456..,\n,..789..,\n,......o,\n,,,,,,,,,\n\n\n\nmessage level 3 of 10\n(slightly harder level 1)\n,,,,,,,,\n,..#.#.,\n,.123.*,\n,.456..,\n,.789..,\n,.#...#,\n,#..#.o,\n,,,,,,,,\n\n\nmessage level 4 of 10\n\n\n(satisfying + not hard, but only given that i thought about it in advance)\n,,,,,,,,\n,.*....,\n,.123o.,\n,.456..,\n,.789.@,\n,...*..,\n,....o.,\n,,,,,,,,\n\n\nmessage level 5 of 10\n\n(Easy but maybe ok?)\n,,,,,,,,\n,.o@*o.,\n,.123..,\n,o456*.,\n,.j89*o,\n,......,\n,......,\n,,,,,,,,\n\n\nmessage level 6 of 10\n\n(not too hard with two crates)\n,,,,,,,,\n,.#.#.o,\n,.1s3..,\n,.456.#,\n,#789..,\n,...o#.,\n,...*..,\n,,,,,,,,\n\n\nmessage level 7 of 10\n\n(3175)\n(not too hard but I got stuck for a weird amount of time)\n,,,,,,,,,\n,...o...,\n,.123...,\n,.456##*,\n,.789.*.,\n,.......,\n,o......,\n,.......,\n,,,,,,,,,\n\n\n\n\nmessage level 8 of 10\n(nontrivial - arrange multiple pieces on your body to solve in the end)\n,,,,,,,,\n,..#..o,\n,.123..,\n,.45h..,\n,.7kl..,\n,..o...,\n,o..#..,\n,,,,,,,,\n\n\n\n\nmessage level 9 of 10\n(cute idea)\n,,,,,,,,\n,......,\n,.123.o,\n,.456.*,\n,.78k.o,\n,...*.o,\n,...@.@,\n,,,,,,,,\n\n\n\nmessage level 10 of 10\n(enjoyed solving this one)\n,,,,,,,,\n,....oo,\n,.1s3..,\n,.456#.,\n,.789.#,\n,#....*,\n,.*o...,\n,,,,,,,,\n\nmessage Congratulations! You are the most adroitly attractive entity in the known universe.\n\n(\nmessage level 11 of 11\n\n(very hard - needed a hint :'[ )\n,,,,,,,,\n,.o.o..,\n,.123..,\n,o456#.,\n,.789..,\n,..*.#.,\n,.*.*..,\n,,,,,,,,\n\n\n\n\n(wasn't able to solve)\n,,,,,,,,\n,.#...o,\n,.123..,\n,.4g6*.,\n,o789..,\n,...#..,\n,#@....,\n,,,,,,,,\n\n\n\n\n\n(too hard)\n,,,,,,,,\n,.*...o,\n,.123#.,\n,.456.#,\n,@789..,\n,..*##.,\n,.....o,\n,,,,,,,,\n\n(ok level 1?)\n,,,,,,,,\n,###..#,\n,.123.#,\n,.456..,\n,#789.#,\n,o....*,\n,......,\n,,,,,,,,\n\n\n,,,,,,,,\n,...#.o,\n,.123#.,\n,.456..,\n,.789..,\n,..#...,\n,o*#*#.,\n,,,,,,,,\n\n,,,,,,,,\n,......,\n,.123..,\n,.456..,\n,.789..,\n,......,\n,......,\n,,,,,,,,\n\n,,,,,,,,,\n,.......,\n,.123...,\n,.456...,\n,.789...,\n,.......,\n,.......,\n,.......,\n,,,,,,,,,\n\n\n\n,,,,,,,,,\n,.......,\n,.123...,\n,.456...,\n,.789...,\n,.......,\n,.......,\n,.......,\n,.......,\n,.......,\n,,,,,,,,,\n\n,,,,,,,,,,,\n,.........,\n,.123.....,\n,.456.....,\n,.789.....,\n,.........,\n,.........,\n,.........,\n,.........,\n,.........,\n,,,,,,,,,,,\n)\n\n(\n\n==========\nTRANSFORM\n==========\n\nchoose 5 option 0.5 [ no wall no player ] -> [ wall ]\n+ option 0.5 []->[]\n\nchoose 2 [ no wall no player ] -> [ target ]\nchoose 2 [ no wall ] -> [ crate ]\n\n)\n", [3, 2, 3, 1, 1, 1, 0, 0, 3, 3, 2, 2, 2, 3, 3, 0, 0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 0, 0, 1, 2, 3, 3, 0, 0, 2, 2, 0, 1, 1, 0, 3, 3, 3, 2, 2, 0, 1, 2, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 0, 0, 0, 3, 3, 3, 3, 3, 2, 2, 1, 0, 1, 2, 1, 0], "background outerwall wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,background target:2,1,0,\n0,1,background crate:3,background crate player1:4,background player4:5,background player7:6,1,1,0,\n0,1,1,background player2:7,background player5:8,background player8:9,1,1,0,\n0,2,1,background player3:10,background player6:11,background player9:12,1,1,0,\n0,1,1,background wall:13,1,1,1,1,0,\n0,1,1,13,1,1,1,1,0,\n0,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n", 13, "1627894355351.2"] + "Attractor Net", + ["title Attractor Net\nauthor increpare\nhomepage www.increpare.com\n\n(require_player_movement)\n\n========\nOBJECTS\n========\n\nBackground\ndarkgray\n\nTarget\n#7eb44a\n00000\n00000\n00000\n00000\n00000\n\n\nWall\n#2c2c2c\n\nplayer1 1\nblue lightblue\n.0000\n01.1.\n0....\n01.1.\n0....\n\nplayer2 2\nblue lightblue\n00000\n.1.1.\n.....\n.1.1.\n.....\n\nplayer3 3\nblue lightblue\n0000.\n.1.10\n....0\n.1.10\n....0\n\nplayer4 4\nblue lightblue\n0....\n01.1.\n0....\n01.1.\n0....\n\nplayer5 5\nlightblue\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nplayer6 6\nlightblue blue\n....1\n.0.01\n....1\n.0.01\n....1\n\nplayer7 7\nblue lightblue\n0....\n01.1.\n0....\n01.1.\n.0000\n\nplayer8 8\nlightblue blue\n.....\n.0.0.\n.....\n.0.0.\n11111\n\nplayer9 9\nlightblue blue\n....1\n.0.01\n....1\n.0.01\n1111.\n\nCrate\n#ff6fd0 #d248a5 #ff3fc0\n.000.\n1.2.0\n12220\n1.2.0\n.111.\n\nouterwall \nblack\n\n\n=======\nLEGEND\n=======\n\nplayer = player1 or player2 or player3 or player4 or player5 or player6 or player7 or player8 or player9\n\na = player1 and crate\ns = player2 and crate\nd = player3 and crate\nf = player4 and crate\ng = player5 and crate\nh = player6 and crate\nj = player7 and crate\nk = player8 and crate\nl = player9 and Crate\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n, = outerwall and wall\n\n=======\nSOUNDS\n=======\n\nstartlevel 4424703\nendlevel 73919502\nCrate MOVE 99195907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nWall\nplayer\nCrate\nouterwall\n\n======\nRULES\n======\n\n[ > player | outerwall ] -> cancel\n\n[ > Player Crate ] -> [ > Player > Crate ]\n[ > crate | crate ] -> [ > crate | > crate ]\n\n[ > crate | wall ] -> [ crate | wall ]\n\n\n==============\nWINCONDITIONS\n==============\n\nall crate on Target\n\n=======\nLEVELS\n=======\n\n\nmessage level 1 of 10\n\n(level 1? not trivial!)\n,,,,,,,,,,,\n,#########,\n,#o.....o#,\n,#.......#,\n,#.......#,\n,#..*.*..#,\n,#..123..#,\n,#..456..#,\n,#..789..#,\n,#########,\n,,,,,,,,,,,\n\n\nmessage level 2 of 10\n\n(ok for a level 2?)\n,,,,,,,,,\n,o.....o,\n,.......,\n,..***..,\n,..123##,\n,..456..,\n,..789..,\n,......o,\n,,,,,,,,,\n\n\n\nmessage level 3 of 10\n(slightly harder level 1)\n,,,,,,,,\n,..#.#.,\n,.123.*,\n,.456..,\n,.789..,\n,.#...#,\n,#..#.o,\n,,,,,,,,\n\n\nmessage level 4 of 10\n\n\n(satisfying + not hard, but only given that i thought about it in advance)\n,,,,,,,,\n,.*....,\n,.123o.,\n,.456..,\n,.789.@,\n,...*..,\n,....o.,\n,,,,,,,,\n\n\nmessage level 5 of 10\n\n(Easy but maybe ok?)\n,,,,,,,,\n,.o@*o.,\n,.123..,\n,o456*.,\n,.j89*o,\n,......,\n,......,\n,,,,,,,,\n\n\nmessage level 6 of 10\n\n(not too hard with two crates)\n,,,,,,,,\n,.#.#.o,\n,.1s3..,\n,.456.#,\n,#789..,\n,...o#.,\n,...*..,\n,,,,,,,,\n\n\nmessage level 7 of 10\n\n(3175)\n(not too hard but I got stuck for a weird amount of time)\n,,,,,,,,,\n,...o...,\n,.123...,\n,.456##*,\n,.789.*.,\n,.......,\n,o......,\n,.......,\n,,,,,,,,,\n\n\n\n\nmessage level 8 of 10\n(nontrivial - arrange multiple pieces on your body to solve in the end)\n,,,,,,,,\n,..#..o,\n,.123..,\n,.45h..,\n,.7kl..,\n,..o...,\n,o..#..,\n,,,,,,,,\n\n\n\n\nmessage level 9 of 10\n(cute idea)\n,,,,,,,,\n,......,\n,.123.o,\n,.456.*,\n,.78k.o,\n,...*.o,\n,...@.@,\n,,,,,,,,\n\n\n\nmessage level 10 of 10\n(enjoyed solving this one)\n,,,,,,,,\n,....oo,\n,.1s3..,\n,.456#.,\n,.789.#,\n,#....*,\n,.*o...,\n,,,,,,,,\n\nmessage Congratulations! You are the most adroitly attractive entity in the known universe.\n\n(\nmessage level 11 of 11\n\n(very hard - needed a hint :'[ )\n,,,,,,,,\n,.o.o..,\n,.123..,\n,o456#.,\n,.789..,\n,..*.#.,\n,.*.*..,\n,,,,,,,,\n\n\n\n\n(wasn't able to solve)\n,,,,,,,,\n,.#...o,\n,.123..,\n,.4g6*.,\n,o789..,\n,...#..,\n,#@....,\n,,,,,,,,\n\n\n\n\n\n(too hard)\n,,,,,,,,\n,.*...o,\n,.123#.,\n,.456.#,\n,@789..,\n,..*##.,\n,.....o,\n,,,,,,,,\n\n(ok level 1?)\n,,,,,,,,\n,###..#,\n,.123.#,\n,.456..,\n,#789.#,\n,o....*,\n,......,\n,,,,,,,,\n\n\n,,,,,,,,\n,...#.o,\n,.123#.,\n,.456..,\n,.789..,\n,..#...,\n,o*#*#.,\n,,,,,,,,\n\n,,,,,,,,\n,......,\n,.123..,\n,.456..,\n,.789..,\n,......,\n,......,\n,,,,,,,,\n\n,,,,,,,,,\n,.......,\n,.123...,\n,.456...,\n,.789...,\n,.......,\n,.......,\n,.......,\n,,,,,,,,,\n\n\n\n,,,,,,,,,\n,.......,\n,.123...,\n,.456...,\n,.789...,\n,.......,\n,.......,\n,.......,\n,.......,\n,.......,\n,,,,,,,,,\n\n,,,,,,,,,,,\n,.........,\n,.123.....,\n,.456.....,\n,.789.....,\n,.........,\n,.........,\n,.........,\n,.........,\n,.........,\n,,,,,,,,,,,\n)\n\n(\n\n==========\nTRANSFORM\n==========\n\nchoose 5 option 0.5 [ no wall no player ] -> [ wall ]\n+ option 0.5 []->[]\n\nchoose 2 [ no wall no player ] -> [ target ]\nchoose 2 [ no wall ] -> [ crate ]\n\n)\n",[3,2,3,1,1,1,0,0,3,3,2,2,2,3,3,0,0,0,1,1,2,2,2,3,3,3,0,0,1,2,3,3,0,0,2,2,0,1,1,0,3,3,3,2,2,0,1,2,3,3,2,2,2,1,1,1,1,1,0,0,0,3,3,3,3,3,2,2,1,0,1,2,1,0],"background outerwall wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,background target:2,1,0,\n0,1,background crate:3,background crate player1:4,background player4:5,background player7:6,1,1,0,\n0,1,1,background player2:7,background player5:8,background player8:9,1,1,0,\n0,2,1,background player3:10,background player6:11,background player9:12,1,1,0,\n0,1,1,background wall:13,1,1,1,1,0,\n0,1,1,13,1,1,1,1,0,\n0,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n",13,"1627894355351.2"] ], [ - "Yellow Box", - ["title Yellow Box\nauthor increpare\nhomepage www.increpare.com\ntext_color #b1aa11\nrun_rules_on_level_start\n\nbackground_color #373737\n\n========\nOBJECTS\n========\n\nBackground\n#6f727a\n\n\nPedestrian\n#823123 #4e88f1 #639bff #822c1d #4b193b #646464\n..0..\n.12..\n1.22.\n3.4.3\n.4.4.\n\nWall\n#373737\n\n\ncar_v\n#000000 #30823f #1e6a2b #85c6ca #41a352 #398144 #9fdadd #151515\n01110\n23334\n25554\n26664\n04447\n\n\ncar_h\n#000000 #30823f #1e6a2b #85c6ca #398144 #9fdadd #41a352 #151515\n01110\n23456\n23456\n23456\n06667\n\n\ncrash_n\n#000000 #30823f #ac3232 #1e6a2b #85c6ca #41a352 #398144 #823123 #4681eb #151515\n01120\n32445\n26762\n32885\n05859\n\ncrash_s\n#151515 #30823f #4681eb #000000 #1e6a2b #ac3232 #41a352 #398144 #823123 #85c6ca\n01213\n42256\n57875\n49956\n35663\n\ncrash_e\n#000000 #30823f #ac3232 #1e6a2b #398144 #41a352 #4681eb #823123 #85c6ca #151515\n01210\n32425\n66785\n36482\n95250\n\ncrash_w\n#000000 #30823f #ac3232 #151515 #85c6ca #398144 #4681eb #41a352 #1e6a2b #823123\n01213\n24567\n84966\n82527\n07270\n\nskid_n\n#545862 #6f727a\n0...0\n0...0\n....0\n.....\n.....\n\n\nskid_s\n#545862\n.....\n.....\n0....\n0...0\n0...0\n\n\nskid_e\n#545862\n...00\n.....\n.....\n.....\n..000\n\n\nskid_w\n#545862\n000..\n.....\n.....\n.....\n00...\n\n\n\nmoveup\n#ff0000\n..0..\n.....\n.....\n.....\n.....\n\nmovedown\n#ff0000\n.....\n.....\n.....\n.....\n..0..\n\nmoveleft \n#ff0000\n.....\n.....\n0....\n.....\n.....\n\nmoveright\n#ff0000\n.....\n.....\n....0\n.....\n.....\n\nplayer_1 1\n#b1aa11 #fbf236\n00000\n0.1..\n01.1.\n0...1\n01.1.\n \nplayer_2 2\n#b1aa11 #fbf236\n00000\n.1...\n1.1.1\n...1.\n1.1.1\n\nplayer_3 3\n#b1aa11 #fbf236\n00000\n1...0\n.1.10\n..1.0\n.1.10\n\nplayer_4 4\n#b1aa11 #fbf236\n0.1..\n01.1.\n0...1\n01.1.\n0.1..\n\nplayer_5 5\n#fbf236\n.0...\n0.0.0\n...0.\n0.0.0\n.0...\n\nplayer_6 6\n#fbf236 #b1aa11\n0...1\n.0.01\n..0.1\n.0.01\n0...1\n\nplayer_7 7\n#b1aa11 #fbf236\n01.1.\n0...1\n01.1.\n0.1..\n00000\n\nplayer_8 8\n#fbf236 #b1aa11\n0.0.0\n...0.\n0.0.0\n.0...\n11111\n\nplayer_9 9\n#fbf236 #b1aa11\n.0.01\n..0.1\n.0.01\n0...1\n11111\n\nplayer_q q\n#b1aa11 #fbf236\n00000\n01...\n0.1.1\n0..1.\n0.1.1\n\nplayer_w w\n#b1aa11 #fbf236\n00000\n1...0\n.1.10\n..1.0\n.1.10\n\nplayer_e e \n#b1aa11 #fbf236\n01...\n0.1.1\n0..1.\n0.1.1\n00000\n\nplayer_r r\n#fbf236 #b1aa11\n0...1\n.0.01\n..0.1\n.0.01\n11111\n\nplayer_t t\n#b1aa11 #fbf236 #868890\n00000\n01210\n02120\n01210\n00000\n\n=======\nLEGEND\n=======\nplayer = player_1 or player_2 or player_3 or player_4 or player_5 or player_6 or player_7 or player_8 or player_9 or player_q or player_w or player_e or player_r or player_t\nskid = skid_n or skid_s or skid_e or skid_w\n\ncrash = crash_n or crash_s or crash_e or crash_w\nmove = moveup or movedown or moveleft or moveright\ncar = car_h or car_v\n. = Background\n# = Wall\nP = Player_1\nc = car_h\nd = car_v\no = Pedestrian\n@ = player_1 and Pedestrian\nobstacle = car or Wall or crash\n\nz = player_1 and Pedestrian\nx = player_2 and Pedestrian\nb = player_3 and Pedestrian\nn = player_4 and Pedestrian\nm = player_5 and Pedestrian\n, = player_6 and Pedestrian\n' = player_7 and Pedestrian\n/ = player_8 and Pedestrian\n; = player_9 and Pedestrian\n\n=======\nSOUNDS\n=======\nsfx0 76358502 (crash)\nendlevel 61183702\nstartlevel 81279102\nshowmessage 42778506\n\nsfx1 11424307 (move vehicle)\n\n================\nCOLLISIONLAYERS\n================\n\nmove\nBackground\n\nskid_n\nskid_s\nskid_e\nskid_w\n\nplayer\n\nWall, car, Pedestrian, crash\n\n======\nRULES\n======\n\n\nup [ stationary moveup car | Wall ] -> [ car | wall] \ndown [ stationary movedown car | Wall ] -> [ car | wall] \nleft [ stationary moveleft car | Wall ] -> [ car | wall] \nright [ stationary moveright car | Wall ] -> [ car | wall] \n\n\nup [ stationary moveup car | car no moveup ] -> [ car | car] \ndown [ stationary movedown car | car no movedown ] -> [ car | car] \nleft [ stationary moveleft car | car no moveleft ] -> [ car | car] \nright [ stationary moveright car | car no moveright ] -> [ car | car] \n\n\nup [ stationary moveup car | Pedestrian ] -> [ skid_n | crash_s ] sfx0\ndown [ stationary movedown car | Pedestrian ] -> [ skid_s | crash_n ] sfx0\nleft [ stationary moveleft car | Pedestrian ] -> [ skid_w | crash_e ] sfx0\nright [ stationary moveright car | Pedestrian ] -> [ skid_e | crash_w ] sfx0\n\n\nup [ stationary moveup car | no obstacle ] -> [ | action moveup car ] again sfx1\ndown [ stationary movedown car | no obstacle ] -> [ | action movedown car ] again sfx1\nleft [ stationary moveleft car | no obstacle ] -> [ | action moveleft car ] again sfx1\nright [ stationary moveright car | no obstacle ] -> [ | action moveright car ] again sfx1\n\n\nup [ > player | car ] -> [ > player | movedown car_v ] again\ndown [ > player | car ] -> [ > player | moveup car_v ] again\nleft [ > player | car ] -> [ > player | moveright car_h ] again\nright [ > player | car ] -> [ > player | moveleft car_h ] again\n\n[ > player | wall ] -> cancel\n\nlate [ car move no player ] -> [ car ]\n\n==============\nWINCONDITIONS\n==============\n\nno Pedestrian\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 18 - Whatever vehicle moves into a yellow box remains in motion until it has left.\n\n(tolerable level 1)\n########\n#o.....#\n#.....c#\n#..qw..#\n#..er..#\n#......#\n#.c..o.#\n########\n\n\nmessage Level 2 of 18 - The laws of Road are inviolable\n(Easy!)\n#######\n#.c...#\n#.123o#\n#o456.#\n#.789.#\n#.c...#\n#######\n\n\nmessage Level 3 of 18 - Respect the yellow box!\n(fine easy engaging)\n###########\n#.........#\n#..c..o...#\n#.........#\n#.c..o..c.#\n#..123....#\n#..456....#\n#..789...o#\n#.........#\n#.........#\n###########\n\nmessage Level 4 of 18 - You ever feel like you're at a junction in life? \n(very slightly less easy)\n#######\n#...c.#\n#.12bc#\n#.456.#\n#.789.#\n#o....#\n#######\n\n\n\nmessage Level 5 of 18 - Yellow is my favourite colour!\n(not hard. medium-engaging)\n###########\n#.........#\n#..c....co#\n#.o123....#\n#..n56....#\n#..789....#\n#..c......#\n###########\n\nmessage Level 6 of 18 - Houserule: NO turning in the yellow box. \n(not too hard. kionda engaging)\n###########\n#.c..oc...#\n#.c.......#\n#..123....#\n#..456....#\n#..789..o.#\n#........o#\n###########\n\nmessage Level 7 of 18 - Prefer death to stalling in the middle of a yellow box.\n(i got it! humane! early intermediate)\n#######\n#.o..c#\n#cz2bc#\n#.45,.#\n#.789.#\n#o..cc#\n#######\n\nmessage Level 8 of 18 - I don't care if you're speeding.\n(interesting intermediate puzzler!)\n#######\n#.c...#\n#..c..#\n#o..c.#\n#.t...#\n##o#.o#\n#######\n\n\nmessage Level 9 of 18 - I ... I guess you can reverse through instead if you want?\n(Easy-intermediate + fun)\n#######\n#c.ccc#\n#o12bo#\n#cnm6c#\n#o789.#\n#.occo#\n#######\n\nmessage Level 10 of 18 - One car in, one car out!\n(not too trivial, netertaining to solve?)\n###########\n#.........#\n#.o.123o..#\n#...456c..#\n#.c.789...#\n#......o..#\n#...c..oc.#\n###########\n\nmessage Level 11 of 18 - Why are all cars green anyway?\n(fine. intermediate)\n#######\n#cc...#\n#.123.#\n#.456o#\n#c'8;c#\n#co.o.#\n#######\n\n\nmessage Level 12 of 18 - Pedestrians are p. dumb yeah.\n(fine)\n#######\n#c.cco#\n#.12bc#\n#o456.#\n#o'/9o#\n#ccocc#\n#######\n\nmessage Level 13 of 18 - No yellow boxes were harmed in the making of this game.\n(fine)\n#######\n#cc.cc#\n#c12bo#\n#on56.#\n#o7/;c#\n#.coc.#\n#######\n\nmessage Level 14 of 18 - Some days I'm big, some days I'm small. That's just life as a yellow box.\n(kinda fun later intermediate)\n###########\n#.........#\n#...c...c.#\n#..123....#\n#..456..o.#\n#..789oo.c#\n#...o...c.#\n###########\n\nmessage Level 15 of 18 - You can't outrun the yellow box!\n(not too hard. kinda fun)\n######\n#oocc#\n#1x3c#\n#4nmc#\n#789c#\n######\n\nmessage Level 16 of 18 - Sometimes I feel like cars wouldn't move at all if it wasn't for my gentle encouragement.\n(hardish but ok?)\n#######\n#c.coc#\n#czx3c#\n#cn56.#\n#c789o#\n#ooo.c#\n#######\n\nmessage Level 17 of 18 - I gained consciusness back when I was a bucket of paint. Rough year, that!\n(hardish - I like this level)\n######\n#cocc#\n#zx3c#\n#nm,c#\n#789c#\n######\n\nmessage Level 18 of 18 - Sometimes I wonder what the future has in store for a little yellow box like me?\n(challenging? ok last level?)\n######\n#...c#\n#123c#\n#4m,c#\n#789o#\n#coco#\n######\n\nmessage Congratulations! Your ferociousness has earned the respect of drivers and pedestrians alike across the globe.\n\n(CUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUT:)\n(\n########\n#oo....#\n#.c...c#\n#.ppp..#\n#.ppp..#\n#.pppo.#\n#.c....#\n########\n\n(trivial/boring)\n######\n#.coo#\n#.o..#\n#....#\n#.p..#\n#.cc.#\n######\n\n(should be ok but can't solve x| )\n#######\n#...o.#\n#.ppp.#\n#.ppp.#\n#cpppc#\n#....o#\n#######\n\n(should be interesting but can't solve)\n#######\n#c....#\n#.ppp.#\n#.ppp.#\n#.@@@c#\n#....c#\n#######\n\n\n(middle-hard, eeeh)\n#######\n#.ccco#\n#op@po#\n#.pp@.#\n#o@ppc#\n#ccocc#\n#######\n\n(didn't solve. dead end. meh)\n########\n#.....o#\n#..c..o#\n#..o.c.#\n#ppp...#\n#ppp...#\n#pppc..#\n########\n\n(didn't solve)\n########\n#......#\n#..c.o.#\n#...o..#\n#ppp.c.#\n#ppp.c.#\n#@p@.c.#\n########\n\n\n(cannae solve it -_- )\n########\n#.....o#\n#......#\n#..o..o#\n#ppp.o.#\n#ppp.cc#\n#ppp.cc#\n########\n\n(Easy)\n###########\n#....o.c..#\n#c.o...o.c#\n#..ppp...o#\n#..ppp....#\n#.cppp....#\n#.........#\n###########\n\n(trivial)\n###########\n#.........#\n#...ppp..c#\n#...ppp...#\n#...ppp.oc#\n#co....o..#\n#co.......#\n###########\n\n(too similar to other level)\n###########\n#.c.o.....#\n#...ppp...#\n#.c.pppco.#\n#.c.ppp...#\n#.........#\n#......oo.#\n###########\n\n\n(trivial)\n######\n#cooc#\n#ppp.#\n#pppo#\n#pppc#\n######\n\n(couldn't do - might've been interesting)\n######\n#ccoc#\n#p@pc#\n#p@po#\n#ppp.#\n######\n\n\n(coudlnt' figure out, but because of one person I couldn't figure out how to kill)\n######\n#coc.#\n#pppo#\n#p@@c#\n#pppc#\n######\n\n(interesting, but I can't solve!)\n######\n#cc.c#\n#p@pc#\n#p@po#\n#p@p.#\n######\n\n(looks fun. can't solve)\n######\n#..cc#\n#pp@c#\n#ppp.#\n#@@@.#\n#...c#\n######\n\n(don't like walls)\n########\n##.o...#\n#c..c..#\n#oo.cc.#\n#ppp.#.#\n#ppp...#\n#pp@...#\n########\n\n(dont' like this)\n########\n#.cooc.#\n#......#\n#c.....#\n#pppc..#\n#@pp...#\n#@pp...#\n########\n\n(meh. don't like walls)\n########\n#..#.c.#\n#......#\n#.coco.#\n#pp@...#\n#ppp.o##\n#pppc..#\n########\n\n(don't like walls)\n########\n#..o.c.#\n##.c...#\n#cco...#\n#ppp..##\n#ppp...#\n#pppoo.#\n########\n\n(don't like walls)\n########\n#.oo.o.#\n#cco..c#\n#......#\n#ppp..##\n#pppc..#\n#ppp.#.#\n########\n\n\n\n(damnit wanted to find interesting but reallly hard)\n#######\n#....o#\n#.@@p.#\n#.ppp.#\n#.ppp.#\n#.ccc.#\n#######\n\n(like other level but easier)\n######\n#.ccc#\n#@@@c#\n#@@@c#\n#pppc#\n######\n\n\n(too similar to others)\n######\n#c.cc#\n#@@p.#\n#@@@c#\n#pppc#\n######\n\n(CBA)\n######\n#oc..#\n#pp@o#\n#p@pc#\n#pppo#\n#.ccc#\n######\n\n\n(meh)\n######\n#cooc#\n#pppc#\n#ppp.#\n#pp@o#\n#c.oc#\n######\n\n\n###########\n#.........#\n#.........#\n#.........#\n#...ppp...#\n#...ppp...#\n#...ppp...#\n#.........#\n#.........#\n#.........#\n###########\n\n###########\n#.........#\n#.........#\n#..ppp....#\n#..ppp....#\n#..ppp....#\n#.........#\n###########\n\n\n###########\n#.........#\n#...ppp...#\n#...ppp...#\n#...ppp...#\n###########\n\n#################\n#...............#\n#......ppp......#\n#......ppp......#\n#......ppp......#\n#################\n\n###########\n#.........#\n#.........#\n#..ppp....#\n#..ppp....#\n#..ppp....#\n#.........#\n###########\n\n########\n#......#\n#......#\n#.ppp..#\n#.ppp..#\n#.ppp..#\n#......#\n########\n\n#######\n#.....#\n#.ppp.#\n#.ppp.#\n#.ppp.#\n#.....#\n#######\n\n######\n#....#\n#ppp.#\n#ppp.#\n#ppp.#\n######\n\n######\n#....#\n#ppp.#\n#ppp.#\n#ppp.#\n#....#\n######\n\n#########\n#.......#\n#.......#\n#.......#\n#.p.....#\n#.......#\n#########\n\n######\n#....#\n#....#\n#....#\n#.p..#\n#....#\n######\n\n########\n#......#\n#......#\n#......#\n#ppp...#\n#ppp...#\n#ppp...#\n########\n\n########\n#......#\n#......#\n#......#\n#ppp...#\n#ppp.cc#\n#ppp.cc#\n########\n\n########\n#oo..oo#\n#......#\n#......#\n#ppp...#\n#ppp.cc#\n#ppp.cc#\n########\n)\n", [3, 0, 3, 3, 3, 2, 2], "background wall:0,0,0,0,0,0,0,0,0,background:1,1,\n1,1,1,1,0,0,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,0,0,\n1,1,1,1,background car_v:2,background pedestrian:3,0,0,1,background car_h:4,1,\n1,1,1,0,0,1,1,1,1,3,1,\n0,0,1,1,1,background player_1:5,background pedestrian player_4:6,background player_7:7,0,0,1,\n1,1,background crash_s player_2:8,background player_5 skid_n:9,background player_8:10,0,0,1,2,1,background player_3:11,\nbackground player_6:12,background player_9:13,0,0,0,0,0,0,0,0,0,\n", 27, "1627894381565.9717"] + "Yellow Box", + ["title Yellow Box\nauthor increpare\nhomepage www.increpare.com\ntext_color #b1aa11\nrun_rules_on_level_start\n\nbackground_color #373737\n\n========\nOBJECTS\n========\n\nBackground\n#6f727a\n\n\nPedestrian\n#823123 #4e88f1 #639bff #822c1d #4b193b #646464\n..0..\n.12..\n1.22.\n3.4.3\n.4.4.\n\nWall\n#373737\n\n\ncar_v\n#000000 #30823f #1e6a2b #85c6ca #41a352 #398144 #9fdadd #151515\n01110\n23334\n25554\n26664\n04447\n\n\ncar_h\n#000000 #30823f #1e6a2b #85c6ca #398144 #9fdadd #41a352 #151515\n01110\n23456\n23456\n23456\n06667\n\n\ncrash_n\n#000000 #30823f #ac3232 #1e6a2b #85c6ca #41a352 #398144 #823123 #4681eb #151515\n01120\n32445\n26762\n32885\n05859\n\ncrash_s\n#151515 #30823f #4681eb #000000 #1e6a2b #ac3232 #41a352 #398144 #823123 #85c6ca\n01213\n42256\n57875\n49956\n35663\n\ncrash_e\n#000000 #30823f #ac3232 #1e6a2b #398144 #41a352 #4681eb #823123 #85c6ca #151515\n01210\n32425\n66785\n36482\n95250\n\ncrash_w\n#000000 #30823f #ac3232 #151515 #85c6ca #398144 #4681eb #41a352 #1e6a2b #823123\n01213\n24567\n84966\n82527\n07270\n\nskid_n\n#545862 #6f727a\n0...0\n0...0\n....0\n.....\n.....\n\n\nskid_s\n#545862\n.....\n.....\n0....\n0...0\n0...0\n\n\nskid_e\n#545862\n...00\n.....\n.....\n.....\n..000\n\n\nskid_w\n#545862\n000..\n.....\n.....\n.....\n00...\n\n\n\nmoveup\n#ff0000\n..0..\n.....\n.....\n.....\n.....\n\nmovedown\n#ff0000\n.....\n.....\n.....\n.....\n..0..\n\nmoveleft \n#ff0000\n.....\n.....\n0....\n.....\n.....\n\nmoveright\n#ff0000\n.....\n.....\n....0\n.....\n.....\n\nplayer_1 1\n#b1aa11 #fbf236\n00000\n0.1..\n01.1.\n0...1\n01.1.\n \nplayer_2 2\n#b1aa11 #fbf236\n00000\n.1...\n1.1.1\n...1.\n1.1.1\n\nplayer_3 3\n#b1aa11 #fbf236\n00000\n1...0\n.1.10\n..1.0\n.1.10\n\nplayer_4 4\n#b1aa11 #fbf236\n0.1..\n01.1.\n0...1\n01.1.\n0.1..\n\nplayer_5 5\n#fbf236\n.0...\n0.0.0\n...0.\n0.0.0\n.0...\n\nplayer_6 6\n#fbf236 #b1aa11\n0...1\n.0.01\n..0.1\n.0.01\n0...1\n\nplayer_7 7\n#b1aa11 #fbf236\n01.1.\n0...1\n01.1.\n0.1..\n00000\n\nplayer_8 8\n#fbf236 #b1aa11\n0.0.0\n...0.\n0.0.0\n.0...\n11111\n\nplayer_9 9\n#fbf236 #b1aa11\n.0.01\n..0.1\n.0.01\n0...1\n11111\n\nplayer_q q\n#b1aa11 #fbf236\n00000\n01...\n0.1.1\n0..1.\n0.1.1\n\nplayer_w w\n#b1aa11 #fbf236\n00000\n1...0\n.1.10\n..1.0\n.1.10\n\nplayer_e e \n#b1aa11 #fbf236\n01...\n0.1.1\n0..1.\n0.1.1\n00000\n\nplayer_r r\n#fbf236 #b1aa11\n0...1\n.0.01\n..0.1\n.0.01\n11111\n\nplayer_t t\n#b1aa11 #fbf236 #868890\n00000\n01210\n02120\n01210\n00000\n\n=======\nLEGEND\n=======\nplayer = player_1 or player_2 or player_3 or player_4 or player_5 or player_6 or player_7 or player_8 or player_9 or player_q or player_w or player_e or player_r or player_t\nskid = skid_n or skid_s or skid_e or skid_w\n\ncrash = crash_n or crash_s or crash_e or crash_w\nmove = moveup or movedown or moveleft or moveright\ncar = car_h or car_v\n. = Background\n# = Wall\nP = Player_1\nc = car_h\nd = car_v\no = Pedestrian\n@ = player_1 and Pedestrian\nobstacle = car or Wall or crash\n\nz = player_1 and Pedestrian\nx = player_2 and Pedestrian\nb = player_3 and Pedestrian\nn = player_4 and Pedestrian\nm = player_5 and Pedestrian\n, = player_6 and Pedestrian\n' = player_7 and Pedestrian\n/ = player_8 and Pedestrian\n; = player_9 and Pedestrian\n\n=======\nSOUNDS\n=======\nsfx0 76358502 (crash)\nendlevel 61183702\nstartlevel 81279102\nshowmessage 42778506\n\nsfx1 11424307 (move vehicle)\n\n================\nCOLLISIONLAYERS\n================\n\nmove\nBackground\n\nskid_n\nskid_s\nskid_e\nskid_w\n\nplayer\n\nWall, car, Pedestrian, crash\n\n======\nRULES\n======\n\n\nup [ stationary moveup car | Wall ] -> [ car | wall] \ndown [ stationary movedown car | Wall ] -> [ car | wall] \nleft [ stationary moveleft car | Wall ] -> [ car | wall] \nright [ stationary moveright car | Wall ] -> [ car | wall] \n\n\nup [ stationary moveup car | car no moveup ] -> [ car | car] \ndown [ stationary movedown car | car no movedown ] -> [ car | car] \nleft [ stationary moveleft car | car no moveleft ] -> [ car | car] \nright [ stationary moveright car | car no moveright ] -> [ car | car] \n\n\nup [ stationary moveup car | Pedestrian ] -> [ skid_n | crash_s ] sfx0\ndown [ stationary movedown car | Pedestrian ] -> [ skid_s | crash_n ] sfx0\nleft [ stationary moveleft car | Pedestrian ] -> [ skid_w | crash_e ] sfx0\nright [ stationary moveright car | Pedestrian ] -> [ skid_e | crash_w ] sfx0\n\n\nup [ stationary moveup car | no obstacle ] -> [ | action moveup car ] again sfx1\ndown [ stationary movedown car | no obstacle ] -> [ | action movedown car ] again sfx1\nleft [ stationary moveleft car | no obstacle ] -> [ | action moveleft car ] again sfx1\nright [ stationary moveright car | no obstacle ] -> [ | action moveright car ] again sfx1\n\n\nup [ > player | car ] -> [ > player | movedown car_v ] again\ndown [ > player | car ] -> [ > player | moveup car_v ] again\nleft [ > player | car ] -> [ > player | moveright car_h ] again\nright [ > player | car ] -> [ > player | moveleft car_h ] again\n\n[ > player | wall ] -> cancel\n\nlate [ car move no player ] -> [ car ]\n\n==============\nWINCONDITIONS\n==============\n\nno Pedestrian\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 18 - Whatever vehicle moves into a yellow box remains in motion until it has left.\n\n(tolerable level 1)\n########\n#o.....#\n#.....c#\n#..qw..#\n#..er..#\n#......#\n#.c..o.#\n########\n\n\nmessage Level 2 of 18 - The laws of Road are inviolable\n(Easy!)\n#######\n#.c...#\n#.123o#\n#o456.#\n#.789.#\n#.c...#\n#######\n\n\nmessage Level 3 of 18 - Respect the yellow box!\n(fine easy engaging)\n###########\n#.........#\n#..c..o...#\n#.........#\n#.c..o..c.#\n#..123....#\n#..456....#\n#..789...o#\n#.........#\n#.........#\n###########\n\nmessage Level 4 of 18 - You ever feel like you're at a junction in life? \n(very slightly less easy)\n#######\n#...c.#\n#.12bc#\n#.456.#\n#.789.#\n#o....#\n#######\n\n\n\nmessage Level 5 of 18 - Yellow is my favourite colour!\n(not hard. medium-engaging)\n###########\n#.........#\n#..c....co#\n#.o123....#\n#..n56....#\n#..789....#\n#..c......#\n###########\n\nmessage Level 6 of 18 - Houserule: NO turning in the yellow box. \n(not too hard. kionda engaging)\n###########\n#.c..oc...#\n#.c.......#\n#..123....#\n#..456....#\n#..789..o.#\n#........o#\n###########\n\nmessage Level 7 of 18 - Prefer death to stalling in the middle of a yellow box.\n(i got it! humane! early intermediate)\n#######\n#.o..c#\n#cz2bc#\n#.45,.#\n#.789.#\n#o..cc#\n#######\n\nmessage Level 8 of 18 - I don't care if you're speeding.\n(interesting intermediate puzzler!)\n#######\n#.c...#\n#..c..#\n#o..c.#\n#.t...#\n##o#.o#\n#######\n\n\nmessage Level 9 of 18 - I ... I guess you can reverse through instead if you want?\n(Easy-intermediate + fun)\n#######\n#c.ccc#\n#o12bo#\n#cnm6c#\n#o789.#\n#.occo#\n#######\n\nmessage Level 10 of 18 - One car in, one car out!\n(not too trivial, netertaining to solve?)\n###########\n#.........#\n#.o.123o..#\n#...456c..#\n#.c.789...#\n#......o..#\n#...c..oc.#\n###########\n\nmessage Level 11 of 18 - Why are all cars green anyway?\n(fine. intermediate)\n#######\n#cc...#\n#.123.#\n#.456o#\n#c'8;c#\n#co.o.#\n#######\n\n\nmessage Level 12 of 18 - Pedestrians are p. dumb yeah.\n(fine)\n#######\n#c.cco#\n#.12bc#\n#o456.#\n#o'/9o#\n#ccocc#\n#######\n\nmessage Level 13 of 18 - No yellow boxes were harmed in the making of this game.\n(fine)\n#######\n#cc.cc#\n#c12bo#\n#on56.#\n#o7/;c#\n#.coc.#\n#######\n\nmessage Level 14 of 18 - Some days I'm big, some days I'm small. That's just life as a yellow box.\n(kinda fun later intermediate)\n###########\n#.........#\n#...c...c.#\n#..123....#\n#..456..o.#\n#..789oo.c#\n#...o...c.#\n###########\n\nmessage Level 15 of 18 - You can't outrun the yellow box!\n(not too hard. kinda fun)\n######\n#oocc#\n#1x3c#\n#4nmc#\n#789c#\n######\n\nmessage Level 16 of 18 - Sometimes I feel like cars wouldn't move at all if it wasn't for my gentle encouragement.\n(hardish but ok?)\n#######\n#c.coc#\n#czx3c#\n#cn56.#\n#c789o#\n#ooo.c#\n#######\n\nmessage Level 17 of 18 - I gained consciusness back when I was a bucket of paint. Rough year, that!\n(hardish - I like this level)\n######\n#cocc#\n#zx3c#\n#nm,c#\n#789c#\n######\n\nmessage Level 18 of 18 - Sometimes I wonder what the future has in store for a little yellow box like me?\n(challenging? ok last level?)\n######\n#...c#\n#123c#\n#4m,c#\n#789o#\n#coco#\n######\n\nmessage Congratulations! Your ferociousness has earned the respect of drivers and pedestrians alike across the globe.\n\n(CUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUT:)\n(\n########\n#oo....#\n#.c...c#\n#.ppp..#\n#.ppp..#\n#.pppo.#\n#.c....#\n########\n\n(trivial/boring)\n######\n#.coo#\n#.o..#\n#....#\n#.p..#\n#.cc.#\n######\n\n(should be ok but can't solve x| )\n#######\n#...o.#\n#.ppp.#\n#.ppp.#\n#cpppc#\n#....o#\n#######\n\n(should be interesting but can't solve)\n#######\n#c....#\n#.ppp.#\n#.ppp.#\n#.@@@c#\n#....c#\n#######\n\n\n(middle-hard, eeeh)\n#######\n#.ccco#\n#op@po#\n#.pp@.#\n#o@ppc#\n#ccocc#\n#######\n\n(didn't solve. dead end. meh)\n########\n#.....o#\n#..c..o#\n#..o.c.#\n#ppp...#\n#ppp...#\n#pppc..#\n########\n\n(didn't solve)\n########\n#......#\n#..c.o.#\n#...o..#\n#ppp.c.#\n#ppp.c.#\n#@p@.c.#\n########\n\n\n(cannae solve it -_- )\n########\n#.....o#\n#......#\n#..o..o#\n#ppp.o.#\n#ppp.cc#\n#ppp.cc#\n########\n\n(Easy)\n###########\n#....o.c..#\n#c.o...o.c#\n#..ppp...o#\n#..ppp....#\n#.cppp....#\n#.........#\n###########\n\n(trivial)\n###########\n#.........#\n#...ppp..c#\n#...ppp...#\n#...ppp.oc#\n#co....o..#\n#co.......#\n###########\n\n(too similar to other level)\n###########\n#.c.o.....#\n#...ppp...#\n#.c.pppco.#\n#.c.ppp...#\n#.........#\n#......oo.#\n###########\n\n\n(trivial)\n######\n#cooc#\n#ppp.#\n#pppo#\n#pppc#\n######\n\n(couldn't do - might've been interesting)\n######\n#ccoc#\n#p@pc#\n#p@po#\n#ppp.#\n######\n\n\n(coudlnt' figure out, but because of one person I couldn't figure out how to kill)\n######\n#coc.#\n#pppo#\n#p@@c#\n#pppc#\n######\n\n(interesting, but I can't solve!)\n######\n#cc.c#\n#p@pc#\n#p@po#\n#p@p.#\n######\n\n(looks fun. can't solve)\n######\n#..cc#\n#pp@c#\n#ppp.#\n#@@@.#\n#...c#\n######\n\n(don't like walls)\n########\n##.o...#\n#c..c..#\n#oo.cc.#\n#ppp.#.#\n#ppp...#\n#pp@...#\n########\n\n(dont' like this)\n########\n#.cooc.#\n#......#\n#c.....#\n#pppc..#\n#@pp...#\n#@pp...#\n########\n\n(meh. don't like walls)\n########\n#..#.c.#\n#......#\n#.coco.#\n#pp@...#\n#ppp.o##\n#pppc..#\n########\n\n(don't like walls)\n########\n#..o.c.#\n##.c...#\n#cco...#\n#ppp..##\n#ppp...#\n#pppoo.#\n########\n\n(don't like walls)\n########\n#.oo.o.#\n#cco..c#\n#......#\n#ppp..##\n#pppc..#\n#ppp.#.#\n########\n\n\n\n(damnit wanted to find interesting but reallly hard)\n#######\n#....o#\n#.@@p.#\n#.ppp.#\n#.ppp.#\n#.ccc.#\n#######\n\n(like other level but easier)\n######\n#.ccc#\n#@@@c#\n#@@@c#\n#pppc#\n######\n\n\n(too similar to others)\n######\n#c.cc#\n#@@p.#\n#@@@c#\n#pppc#\n######\n\n(CBA)\n######\n#oc..#\n#pp@o#\n#p@pc#\n#pppo#\n#.ccc#\n######\n\n\n(meh)\n######\n#cooc#\n#pppc#\n#ppp.#\n#pp@o#\n#c.oc#\n######\n\n\n###########\n#.........#\n#.........#\n#.........#\n#...ppp...#\n#...ppp...#\n#...ppp...#\n#.........#\n#.........#\n#.........#\n###########\n\n###########\n#.........#\n#.........#\n#..ppp....#\n#..ppp....#\n#..ppp....#\n#.........#\n###########\n\n\n###########\n#.........#\n#...ppp...#\n#...ppp...#\n#...ppp...#\n###########\n\n#################\n#...............#\n#......ppp......#\n#......ppp......#\n#......ppp......#\n#################\n\n###########\n#.........#\n#.........#\n#..ppp....#\n#..ppp....#\n#..ppp....#\n#.........#\n###########\n\n########\n#......#\n#......#\n#.ppp..#\n#.ppp..#\n#.ppp..#\n#......#\n########\n\n#######\n#.....#\n#.ppp.#\n#.ppp.#\n#.ppp.#\n#.....#\n#######\n\n######\n#....#\n#ppp.#\n#ppp.#\n#ppp.#\n######\n\n######\n#....#\n#ppp.#\n#ppp.#\n#ppp.#\n#....#\n######\n\n#########\n#.......#\n#.......#\n#.......#\n#.p.....#\n#.......#\n#########\n\n######\n#....#\n#....#\n#....#\n#.p..#\n#....#\n######\n\n########\n#......#\n#......#\n#......#\n#ppp...#\n#ppp...#\n#ppp...#\n########\n\n########\n#......#\n#......#\n#......#\n#ppp...#\n#ppp.cc#\n#ppp.cc#\n########\n\n########\n#oo..oo#\n#......#\n#......#\n#ppp...#\n#ppp.cc#\n#ppp.cc#\n########\n)\n",[3,0,3,3,3,2,2],"background wall:0,0,0,0,0,0,0,0,0,background:1,1,\n1,1,1,1,0,0,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,0,0,\n1,1,1,1,background car_v:2,background pedestrian:3,0,0,1,background car_h:4,1,\n1,1,1,0,0,1,1,1,1,3,1,\n0,0,1,1,1,background player_1:5,background pedestrian player_4:6,background player_7:7,0,0,1,\n1,1,background crash_s player_2:8,background player_5 skid_n:9,background player_8:10,0,0,1,2,1,background player_3:11,\nbackground player_6:12,background player_9:13,0,0,0,0,0,0,0,0,0,\n",27,"1627894381565.9717"] ], [ - "Sokoban[Sokoban[Sokoban]]]", - ["title Sokoban[Sokoban[Sokoban]]]\nauthor increpare\nhomepage www.increpare.com\n\nrequire_player_movement\n\n========\nOBJECTS\n========\n\nBackground\ngray\n\nTarget\ndarkgray\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkgreen darkgreen\n00010\n11111\n01000\n11111\n00010\n\nPlayer1\ndarkblue darkblue darkblue darkblue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nred\n00000\n0...0\n0...0\n0...0\n00000\n\nPlayer2\nblue blue blue blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nPlayer3\nlightblue lightblue lightblue lightblue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\n\n=======\nLEGEND\n=======\n\nplayer = player1\nplayers = player1 or player2 or Player3\n\n. = Background\n# = Wall\n1 = Player1\n2 = player2 \n3 = player3\n* = Crate\n@ = Crate and Target\nO = Target\n\nobstacle = wall or crate \n=======\nSOUNDS\n=======\n\nsfx0 68966907 (Crate move 1)\nsfx1 27936307 (crate move 2)\nsfx2 35780507 (Crate move 3)\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayers, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | stationary Crate | no obstacle ] [stationary player2]-> [ | Player | Crate ] [> player2] sfx0\n[ > Player2 | stationary Crate | no obstacle ] [stationary player3] -> [ | Player2 | Crate ] [> player3] sfx1\n[ > player3 | stationary crate | no obstacle] -> [ | player3 | crate ] sfx2\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Levels 3 of 3\n\n##########\n#........#\n#........#\n#..*oo*..#\n#...3....#\n#........#\n##########\n#........#\n#........#\n#..*oo*..#\n#...2....#\n#........#\n##########\n#........#\n#........#\n#..*oo*..#\n#...1....#\n#........#\n##########\n\nmessage You did good doing good doing good!\n", [1, 1, 0, 3, 0, 3, 3, 2, 3, 2, 1, 1, 1, 0, 3, 2, 3, 0, 3, 0, 1], "background wall:0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,\nbackground:1,1,1,1,1,0,1,1,1,1,\n1,0,1,1,1,1,1,0,0,1,\n1,1,1,1,0,1,1,1,1,1,\n0,1,1,1,1,1,0,0,1,1,\nbackground crate:2,background player3:3,1,0,1,1,2,1,1,0,\n1,1,1,1,1,0,0,1,1,background target:4,\n1,1,0,1,1,4,1,1,0,1,\n2,4,1,1,0,0,1,1,4,1,\n1,0,1,1,background crate target:5,1,1,0,1,background player1:6,\n4,1,1,0,0,1,1,2,1,1,\n0,1,1,background player2:7,1,1,0,1,1,1,\n1,1,0,0,1,1,1,1,1,0,\n1,1,1,1,1,0,1,1,2,1,\n1,0,0,1,1,1,1,1,0,1,\n1,1,1,1,0,1,1,1,1,1,\n0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,\n", 1, "1627894393467.7576"] + "Sokoban[Sokoban[Sokoban]]]", + ["title Sokoban[Sokoban[Sokoban]]]\nauthor increpare\nhomepage www.increpare.com\n\nrequire_player_movement\n\n========\nOBJECTS\n========\n\nBackground\ngray\n\nTarget\ndarkgray\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkgreen darkgreen\n00010\n11111\n01000\n11111\n00010\n\nPlayer1\ndarkblue darkblue darkblue darkblue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nred\n00000\n0...0\n0...0\n0...0\n00000\n\nPlayer2\nblue blue blue blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nPlayer3\nlightblue lightblue lightblue lightblue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\n\n=======\nLEGEND\n=======\n\nplayer = player1\nplayers = player1 or player2 or Player3\n\n. = Background\n# = Wall\n1 = Player1\n2 = player2 \n3 = player3\n* = Crate\n@ = Crate and Target\nO = Target\n\nobstacle = wall or crate \n=======\nSOUNDS\n=======\n\nsfx0 68966907 (Crate move 1)\nsfx1 27936307 (crate move 2)\nsfx2 35780507 (Crate move 3)\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayers, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | stationary Crate | no obstacle ] [stationary player2]-> [ | Player | Crate ] [> player2] sfx0\n[ > Player2 | stationary Crate | no obstacle ] [stationary player3] -> [ | Player2 | Crate ] [> player3] sfx1\n[ > player3 | stationary crate | no obstacle] -> [ | player3 | crate ] sfx2\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Levels 3 of 3\n\n##########\n#........#\n#........#\n#..*oo*..#\n#...3....#\n#........#\n##########\n#........#\n#........#\n#..*oo*..#\n#...2....#\n#........#\n##########\n#........#\n#........#\n#..*oo*..#\n#...1....#\n#........#\n##########\n\nmessage You did good doing good doing good!\n",[1,1,0,3,0,3,3,2,3,2,1,1,1,0,3,2,3,0,3,0,1],"background wall:0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,\nbackground:1,1,1,1,1,0,1,1,1,1,\n1,0,1,1,1,1,1,0,0,1,\n1,1,1,1,0,1,1,1,1,1,\n0,1,1,1,1,1,0,0,1,1,\nbackground crate:2,background player3:3,1,0,1,1,2,1,1,0,\n1,1,1,1,1,0,0,1,1,background target:4,\n1,1,0,1,1,4,1,1,0,1,\n2,4,1,1,0,0,1,1,4,1,\n1,0,1,1,background crate target:5,1,1,0,1,background player1:6,\n4,1,1,0,0,1,1,2,1,1,\n0,1,1,background player2:7,1,1,0,1,1,1,\n1,1,0,0,1,1,1,1,1,0,\n1,1,1,1,1,0,1,1,2,1,\n1,0,0,1,1,1,1,1,0,1,\n1,1,1,1,0,1,1,1,1,1,\n0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,\n",1,"1627894393467.7576"] ], [ - "Varifocal Nightmare", - ["title Varifocal Nightmare\nauthor increpare\nhomepage www.increpare.com\n\ncolor_palette c64\n( verbose_logging )\n\ntext_color blue\n========\nOBJECTS\n========\n\nBackground\ndarkred\n\n\nTarget1a\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTarget1b\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTarget1c\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\nCrate1a\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\nCrate1b\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\nCrate1c\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\ntarget2a\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\ntarget2b\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\ntarget2c\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\ncrate2a\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\ncrate2b\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\ncrate2c\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\nWall\ndarkblue black\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange #999999 purple\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\n\n\n=======\nLEGEND\n=======\ntarget1 = Target1a or Target1b or Target1c\ntarget2 = target2a or target2b or target2c\ncrate1 = Crate1a or Crate1b or Crate1c\ncrate2 = crate2a or crate2b or crate2c\n\ncrate = crate1 or crate2\ntarget = target1 or target2\n. = Background\n# = Wall\nP = Player\n\n1 = Crate1a\n2 = crate1b \n3 = crate1c\n4 = Target1a\n5 = Target1b\n6 = Target1c\n\n7 = Target1a and Crate1a\n8 = Target1b and crate1b \n9 = Target1c and Crate1c\n\n\nq = Crate2a\nw = crate2b \ne = crate2c\nr = Target2a\nt = Target2b\ny = Target2c\n\nu = Target2a and Crate2a\ni = Target2b and crate2b \no = Target2c and Crate2c\n\n=======\nSOUNDS\n=======\nsfx0 10654107 (crate push)\nstartlevel 39415905\nendlevel 15587500\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget1, target2\nPlayer, crate1, crate2, wall\n\n======\nRULES\n======\n\n\n[ > player | Crate1a | no wall no crate ] [ target2a | no wall no target ] -> [ | player | crate1a ] [ | target2a ] sfx0\n[ > player | crate1b | no wall no crate ] [ target2b | no wall no target ] -> [ | player | crate1b ] [ | target2b ] sfx0\n[ > player | crate1c | no wall no crate ] [ target2c | no wall no target ] -> [ | player | crate1c ] [ | target2c ] sfx0\n[ > player | crate2a | no wall no crate ] [ target1a | no wall no target ] -> [ | player | crate2a ] [ | target1a ] sfx0\n[ > player | crate2b | no wall no crate ] [ target1b | no wall no target ] -> [ | player | crate2b ] [ | target1b ] sfx0\n[ > player | crate2c | no wall no crate ] [ target1c | no wall no target ] -> [ | player | crate2c ] [ | target1c ] sfx0\n\n[ > player | no wall no crate ] -> [ | player ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 5 Exits exist\n\n###########\n#....#....#\n#.#.1#.#.r#\n#243.#tqy.#\n#....#....#\n#56.p#we.p#\n###########\n\nmessage Level 2 of 5 Thus shut\n###########\n#..###..###\n#r.###1.###\n#pt..#p2..#\n#q.w.#4.5.#\n#..###..###\n###########\n\n\nmessage Level 3 of 5 Fist fits\n###########\n#.4.##.q.##\n#.1.p#.r.p#\n##.2.##.t.#\n###.5###.w#\n####.####.#\n###########\n\nmessage Level 4 of 5 Pest pets\n#########\n###..####\n#..8....#\n#.#.p#.1#\n#.4..#..#\n#########\n###..####\n#..i....#\n#.#.p#.r#\n#.q..#..#\n#########\n\nmessage Level 5 of 5 Best bets\n\n#############\n#######...###\n#######.#.###\n#....4p1..###\n#.#.#.#.#####\n#.2..9.5#...#\n#########.#.#\n###....qpr..#\n###.#.#.#.###\n###.t..o.w###\n#############\n\nmessage Congratulations Congratulasiont\n\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*O.#\n##.*P*.#\n#..O*O.#\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", [2, 1, 0, 0, 0, 1, 1, 2, 3, 3], "background wall:0,0,0,0,0,0,0,0,background target1a:1,background:2,0,\n0,0,0,0,2,2,background crate1b:3,0,0,0,0,\n2,background player:4,2,2,0,0,0,0,background crate1a:5,2,background target1b:6,\n2,0,0,0,0,0,0,0,0,0,background crate2a:7,\n2,0,0,0,0,0,2,2,background target2b:8,0,0,\n0,0,2,2,2,2,0,0,0,0,background player target2a:9,\n2,background crate2b:10,2,0,0,0,0,0,0,0,0,\n", 5, "1627894408429.9158"] + "Varifocal Nightmare", + ["title Varifocal Nightmare\nauthor increpare\nhomepage www.increpare.com\n\ncolor_palette c64\n( verbose_logging )\n\ntext_color blue\n========\nOBJECTS\n========\n\nBackground\ndarkred\n\n\nTarget1a\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTarget1b\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTarget1c\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\nCrate1a\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\nCrate1b\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\nCrate1c\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\ntarget2a\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\ntarget2b\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\n\ntarget2c\nred\n.....\n.000.\n.0.0.\n.000.\n.....\n\ncrate2a\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\ncrate2b\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\ncrate2c\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\nWall\ndarkblue black\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange #999999 purple\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\n\n\n=======\nLEGEND\n=======\ntarget1 = Target1a or Target1b or Target1c\ntarget2 = target2a or target2b or target2c\ncrate1 = Crate1a or Crate1b or Crate1c\ncrate2 = crate2a or crate2b or crate2c\n\ncrate = crate1 or crate2\ntarget = target1 or target2\n. = Background\n# = Wall\nP = Player\n\n1 = Crate1a\n2 = crate1b \n3 = crate1c\n4 = Target1a\n5 = Target1b\n6 = Target1c\n\n7 = Target1a and Crate1a\n8 = Target1b and crate1b \n9 = Target1c and Crate1c\n\n\nq = Crate2a\nw = crate2b \ne = crate2c\nr = Target2a\nt = Target2b\ny = Target2c\n\nu = Target2a and Crate2a\ni = Target2b and crate2b \no = Target2c and Crate2c\n\n=======\nSOUNDS\n=======\nsfx0 10654107 (crate push)\nstartlevel 39415905\nendlevel 15587500\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget1, target2\nPlayer, crate1, crate2, wall\n\n======\nRULES\n======\n\n\n[ > player | Crate1a | no wall no crate ] [ target2a | no wall no target ] -> [ | player | crate1a ] [ | target2a ] sfx0\n[ > player | crate1b | no wall no crate ] [ target2b | no wall no target ] -> [ | player | crate1b ] [ | target2b ] sfx0\n[ > player | crate1c | no wall no crate ] [ target2c | no wall no target ] -> [ | player | crate1c ] [ | target2c ] sfx0\n[ > player | crate2a | no wall no crate ] [ target1a | no wall no target ] -> [ | player | crate2a ] [ | target1a ] sfx0\n[ > player | crate2b | no wall no crate ] [ target1b | no wall no target ] -> [ | player | crate2b ] [ | target1b ] sfx0\n[ > player | crate2c | no wall no crate ] [ target1c | no wall no target ] -> [ | player | crate2c ] [ | target1c ] sfx0\n\n[ > player | no wall no crate ] -> [ | player ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 5 Exits exist\n\n###########\n#....#....#\n#.#.1#.#.r#\n#243.#tqy.#\n#....#....#\n#56.p#we.p#\n###########\n\nmessage Level 2 of 5 Thus shut\n###########\n#..###..###\n#r.###1.###\n#pt..#p2..#\n#q.w.#4.5.#\n#..###..###\n###########\n\n\nmessage Level 3 of 5 Fist fits\n###########\n#.4.##.q.##\n#.1.p#.r.p#\n##.2.##.t.#\n###.5###.w#\n####.####.#\n###########\n\nmessage Level 4 of 5 Pest pets\n#########\n###..####\n#..8....#\n#.#.p#.1#\n#.4..#..#\n#########\n###..####\n#..i....#\n#.#.p#.r#\n#.q..#..#\n#########\n\nmessage Level 5 of 5 Best bets\n\n#############\n#######...###\n#######.#.###\n#....4p1..###\n#.#.#.#.#####\n#.2..9.5#...#\n#########.#.#\n###....qpr..#\n###.#.#.#.###\n###.t..o.w###\n#############\n\nmessage Congratulations Congratulasiont\n\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*O.#\n##.*P*.#\n#..O*O.#\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",[2,1,0,0,0,1,1,2,3,3],"background wall:0,0,0,0,0,0,0,0,background target1a:1,background:2,0,\n0,0,0,0,2,2,background crate1b:3,0,0,0,0,\n2,background player:4,2,2,0,0,0,0,background crate1a:5,2,background target1b:6,\n2,0,0,0,0,0,0,0,0,0,background crate2a:7,\n2,0,0,0,0,0,2,2,background target2b:8,0,0,\n0,0,2,2,2,2,0,0,0,0,background player target2a:9,\n2,background crate2b:10,2,0,0,0,0,0,0,0,0,\n",5,"1627894408429.9158"] ], [ - "Gem Socketeer", - ["title Gem Socketeer \nauthor increpare\nhomepage www.increpare.com\n\n\n(many levels made with the assistance of marcos don's sokoban solver - https://marcosdon.github.io/PuzzleScriptWithSolver/editor.html )\n\n(thanks to ggn for feedback + testing!)\n\nbackground_color #04212a\ntext_color #d494de\n\nrun_rules_on_level_start\n( debug )\n(verbose_logging)\n\n========\nOBJECTS\n========\n\nBackground\n#2c7678 #26837d #226768\n00100\n01110\n11111\n01110\n00100\n\n\nbgtile_nw ;\n#26837d #226768 #2c7678\n00001\n00012\n00122\n01222\n12222\n\n\n\nbgtile_ne\n#226768 #26837d #2c7678\n01111\n20111\n22011\n22201\n22220\n\n\n\nbgtile_sw\n#226768 #2c7678 #26837d\n01111\n20111\n22011\n22201\n22220\n\n\n\nbgtile_se\n#2c7678 #226768 #26837d\n00001\n00012\n00122\n01222\n12222\n\n\n\ntarget_nw 1\n#ffe56f #ffd100 #d29500\n...00\n..112\n.112.\n112..\n12...\n\n\n\ntarget_ne 2\n#ffe56f #d29500 #ffd100\n00...\n120..\n.120.\n..120\n...12\n\n\n\ntarget_sw 3\n#ffd100 #d29500 #ffe56f\n01...\n02...\n102..\n.102.\n..102\n\n\ntarget_se 4\n#d29500 #ffd100 #ffe56f\n...01\n...01\n..210\n.210.\n210..\n\ntarget_ses {\n#d29500 #ffd100\n...01\n.....\n.....\n.....\n.....\n\ntarget_sws }\n#ffd100 #d29500\n01...\n.....\n.....\n.....\n.....\n\nplayer_nw 5\n#3c75ee #86c1ff #5d96ff #1447b6\n....0\n...01\n..020\n.0203\n03032\n\n\n\n\nplayer_ne 6\n#5d96ff #d6eaff #86c1ff\n0....\n10...\n010..\n2010.\n12020\n\n\n\n\nplayer_sw 7\n#1447b6 #002d8e #3c75ee\n01020\n.0102\n..010\n...01\n....0\n\n\n\n\n\nplayer_se 8\n#3c75ee #5d96ff #1447b6\n01010\n1010.\n010..\n20...\n0....\n\n\n\n\ncrate_nw q\n#f9d6ff #e29aee #eeb1f9 #ba4fca\n....0\n...01\n..010\n.0121\n01312\n\n\n\n\ncrate_ne w\n#f9d6ff #f6c1ff\n0....\n10...\n010..\n1010.\n01010\n\n\n\ncrate_sw e\n#ba4fca #ca66d9\n01010\n.0101\n..010\n...01\n....0\n\n\n\n\ncrate_se r\n#eeb1f9 #e29aee #f9d6ff #ca81d8 #ba4fca\n01231\n1031.\n431..\n31...\n1....\n\n\n\n\n\n\n\nwall_nw\n#8f6d56 #7b5b45 #5e422f\n....0\n...00\n..001\n.0012\n00121\n\n\nwall_ne\n#ab866d #7b5b45 #463326\n0....\n00...\n100..\n2100.\n12100\n\nwall_se\n#7b5b45 #8f6d56 #5e422f\n01022\n1022.\n022..\n22...\n2....\n\nwall_sw\n#463326 #7b5b45 #ab866d\n00121\n.0012\n..001\n...00\n....0\n\nwalljoin_downdiag\n#7b5b45\n0....\n.0...\n..0..\n...0.\n....0\n\nwalljoin_updiag\n#7b5b45\n....0\n...0.\n..0..\n.0...\n0....\n\n\n=======\nLEGEND\n=======\n\nplayer = player_nw or player_ne or player_sw or player_se\ncrate = crate_nw or crate_ne or crate_sw or crate_se\ntarget = target_nw or target_ne or target_sw or target_se\n\npusher_nw = player_nw or crate_nw\npusher_sw = player_sw or crate_sw\npusher_ne = player_ne or crate_ne\npusher_se = player_se or crate_se\n\nt = crate_nw and crate_se \ny = crate_ne and crate_sw\n\nu = crate_nw and player_se\ni = crate_ne and player_sw\no = crate_sw and player_ne\np = crate_se and player_nw\n\n! = wall_nw and player_se\n\" = wall_ne and player_sw\n£ = wall_sw and player_ne\n$ = wall_se and player_nw\n\n. = Background\n\na = wall_nw\ns = wall_ne\nd = wall_se \nf = wall_sw\n\ncollides_nw = wall_ne or wall_sw or crate_ne or crate_sw\ncollides_ne = wall_nw or wall_se or crate_nw or crate_se\ncollides_sw = wall_se or wall_nw or crate_se or crate_nw\ncollides_se = wall_sw or wall_ne or crate_sw or crate_ne\n\ng = target_nw and wall_se\nh = target_ne and wall_sw\nj = target_sw and wall_ne\nk = target_se and wall_nw\n\nl = wall_nw and wall_se and walljoin_updiag\nm = wall_ne and wall_sw and walljoin_downdiag\n\nz = crate_nw and target_nw\nx = crate_ne and target_ne\nc = crate_sw and target_sw\nb = crate_se and target_se\n\n\nn = crate_nw and wall_se\n, = crate_ne and wall_sw\n/ = crate_sw and wall_ne\n? = crate_se and wall_nw\n\n% = crate_nw and target_nw and player_se\n& = crate_ne and target_ne and player_sw\n* = crate_sw and target_sw and player_ne\n_ = crate_se and target_se and player_nw\n\n丁 = crate_nw and target_nw and player_se\n上 = crate_ne and target_ne and player_sw\n下 = crate_sw and target_sw and player_ne\n不 = crate_se and target_se and player_nw\n\n(丁上下不且世丙並\n中丸\n主乂乃之乎九也事二五亡交亦京亭人)\n\n=======\nSOUNDS\n=======\n\ncrate move 93772107\nendlevel 32556705\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbgtile_nw\nbgtile_ne\nbgtile_sw\nbgtile_se\n\nwall_se\nwall_sw\n\ncrate_sw\ncrate_se\nplayer_sw\nplayer_se\n\nwall_nw\nwall_ne\n\nwalljoin_downdiag\nwalljoin_updiag\n\ncrate_nw\ncrate_ne\nplayer_nw\nplayer_ne\n\n\ntarget_sw\ntarget_se\ntarget_sws\ntarget_ses\ntarget_nw\ntarget_ne\n\n======\nRULES\n======\n\n\n(drawing/spawning code. comment out later I guess)\nright [ player_nw | no player_ne ] -> [ player_nw | player_ne ]\nright [ crate_nw | no crate_ne ] -> [ crate_nw | crate_ne ]\nright [ target_nw | no target_ne ] -> [ target_nw | target_ne ]\nright [ wall_nw | no wall_ne ] -> [ wall_nw | wall_ne ]\n\ndown [ player_nw | no player_sw ] -> [ player_nw | player_sw ]\ndown [ crate_nw | no crate_sw ] -> [ crate_nw | crate_sw ]\ndown [ target_nw | no target_sw ] -> [ target_nw | target_sw ]\ndown [ wall_nw | no wall_sw ] -> [ wall_nw | wall_sw ]\n\n\nright [ player_sw | no player_se ] -> [ player_sw | player_se ]\nright [ crate_sw | no crate_se ] -> [ crate_sw | crate_se ]\nright [ target_sw | no target_se ] -> [ target_sw | target_se ]\nright [ wall_sw | no wall_se ] -> [ wall_sw | wall_se ]\n\ndown [ target_sw | no target_ses ] -> [ target_sw | target_ses ]\ndown [ target_se | no target_sws ] -> [ target_se | target_sws ]\n\n(wall mortar)\n\n[wall_se wall_nw ] -> [wall_se wall_nw walljoin_updiag ]\n[wall_ne wall_sw ] -> [wall_ne wall_sw walljoin_downdiag ]\n(end of spawning code)\n\n\nstartloop\n(side push)\n[ up pusher_nw stationary crate_se ] -> [ up pusher_nw up crate_se ]\n+ [ left pusher_nw stationary crate_se ] -> [ left pusher_nw left crate_se ]\n\n+ [ up pusher_ne stationary crate_sw ] -> [ up pusher_ne up crate_sw ]\n+ [ right pusher_ne stationary crate_sw ] -> [ right pusher_ne right crate_sw ]\n\n+ [ down pusher_sw stationary crate_ne ] -> [ down pusher_sw down crate_ne ]\n+ [ left pusher_sw stationary crate_ne ] -> [ left pusher_sw left crate_ne ]\n\n+ [ down pusher_se stationary crate_nw ] -> [ down pusher_se down crate_nw ]\n+ [ right pusher_se stationary crate_nw ] -> [ right pusher_se right crate_nw ]\n\n\n(direct centered push)\n+ up [ > pusher_nw | stationary crate_sw ] -> [ > pusher_nw | > crate_sw ]\n+ down [ > pusher_sw | stationary crate_nw ] -> [ > pusher_sw | > crate_nw ]\n+ right [ > pusher_ne | stationary crate_nw ] -> [ > pusher_ne | > crate_nw ]\n+ left [ > pusher_nw | stationary crate_ne ] -> [ > pusher_nw | > crate_ne ]\n\n\n(propagate motion through crate)\n+ right [ right crate_nw | stationary crate_ne ] -> [ right crate_nw | right crate_ne ]\n+ right [ crate_nw | right crate_ne ] -> [ right crate_nw | right crate_ne ]\n+ right [ right crate_sw | stationary crate_se ] -> [ right crate_sw | right crate_se ]\n+ right [ stationary crate_sw | right crate_se ] -> [ right crate_sw | right crate_se ]\n+ down [ stationary crate_ne | right crate_se ] -> [ right crate_ne | right crate_se ]\n+ down [ right crate_ne | stationary crate_se ] -> [ right crate_ne | right crate_se ]\n\n+ right [ left crate_nw | stationary crate_ne ] -> [ left crate_nw | left crate_ne ]\n+ right [ crate_nw | left crate_ne ] -> [ left crate_nw | left crate_ne ]\n+ right [ left crate_sw | stationary crate_se ] -> [ left crate_sw | left crate_se ]\n+ right [ stationary crate_sw | left crate_se ] -> [ left crate_sw | left crate_se ]\n+ down [ stationary crate_ne | left crate_se ] -> [ left crate_ne | left crate_se ]\n+ down [ left crate_ne | stationary crate_se ] -> [ left crate_ne | left crate_se ]\n\n+ right [ up crate_nw | stationary crate_ne ] -> [ up crate_nw | up crate_ne ]\n+ right [ crate_nw | up crate_ne ] -> [ up crate_nw | up crate_ne ]\n+ right [ up crate_sw | stationary crate_se ] -> [ up crate_sw | up crate_se ]\n+ right [ stationary crate_sw | up crate_se ] -> [ up crate_sw | up crate_se ]\n+ down [ stationary crate_ne | up crate_se ] -> [ up crate_ne | up crate_se ]\n+ down [ up crate_ne | stationary crate_se ] -> [ up crate_ne | up crate_se ]\n\n+ right [ down crate_nw | stationary crate_ne ] -> [ down crate_nw | down crate_ne ]\n+ right [ crate_nw | down crate_ne ] -> [ down crate_nw | down crate_ne ]\n+ right [ down crate_sw | stationary crate_se ] -> [ down crate_sw | down crate_se ]\n+ right [ stationary crate_sw | down crate_se ] -> [ down crate_sw | down crate_se ]\n+ down [ stationary crate_ne | down crate_se ] -> [ down crate_ne | down crate_se ]\n+ down [ down crate_ne | stationary crate_se ] -> [ down crate_ne | down crate_se ]\n\nendloop\n\n\n(if unresolved collisions, can remove all things because it's good)\nlate [ crate_nw collides_nw ] -> cancel\nlate [ crate_ne collides_ne ] -> cancel\nlate [ crate_sw collides_sw ] -> cancel\nlate [ crate_se collides_se] -> cancel\nlate [ player_nw collides_nw ] -> cancel\nlate [ player_ne collides_ne ] -> cancel\nlate [ player_sw collides_sw ] -> cancel\nlate [ player_se collides_se] -> cancel\n\ndown [ bgtile_nw | no bgtile_sw ] -> [ bgtile_nw | bgtile_sw ]\n+ down [ bgtile_sw | no bgtile_nw ] -> [ bgtile_sw | bgtile_nw ]\n\nright [ bgtile_nw | no bgtile_ne ] -> [ bgtile_nw | bgtile_ne ]\n+ right [ bgtile_ne | no bgtile_nw ] -> [ bgtile_ne | bgtile_nw ]\n\nright [ bgtile_sw | no bgtile_se ] -> [ bgtile_sw | bgtile_se ]\n+ right [ bgtile_se | no bgtile_sw ] -> [ bgtile_se | bgtile_sw ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\nAll Crate on Target\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 17\n;...................\n.........a..........\n........asas........\n.......amghls.......\n......amg21hls......\n.....amd3434fls.....\n....amd.{}{}.fls....\n...amd...as...fls...\n..amd...q,nw...fls..\n..fls...etyr...amd..\n...fls...er...amd...\n....fls..56..amd....\n.....fls.78.amd.....\n......fls..amd......\n.......flsamd.......\n........flmd........\n.........fd.........\n....................\n\n(Easyish - possible early level?)\n\nmessage Level 2 of 17\n;.....as......\n.....amls.....\n....amdfls....\n...amd..fls...\n..amd..qwfls..\n.amd.12er.fls.\namd..3412..fls\nfls..q}34..amd\n.fls.er{}.amd.\n..fls.56.amd..\n...fls78amd...\n....flsamd....\n.....flmd.....\n......fd......\n\n\nmessage Level 3 of 17\n(similar to above? no puzzle as such)\n;.......as.........\n.......amls........\n......amdfls.......\n.....amd..fls......\n....amd....fls.....\n...amd......fls....\n..amd...5....fls...\n.amd...aszx...fls..\n.fls...fnytx...fls.\n..fls...e1cb...amd.\n...fls...34}..amd..\n....fls..{}..amd...\n.....fls....amd....\n......fls..amd.....\n.......flsamd......\n........flmd.......\n.........fd........\n\nmessage Level 4 of 17\n\n;.......aas...\n.......amdls..\n......amd.fls.\n.....amd...fls\n....amd.qw..as\n...amd.12r.amd\n..amd.534.amd.\n.amd.128}amd..\namd.q34.amd...\nas..e{}amd....\nfls...amd.....\n.fls.amd......\n..flamd.......\n...fdd........\n\n\n\nmessage Level 5 of 17\n(easy but ok? level 2?)\n;.....as.......\n.....amls......\n.....fdfls.....\n.asasas.fls....\n.fdfdfd..fls...\n.as12..qw.fls..\n.fd312qyr56fls.\n.as124etw78amd.\n.fd34}.er.amd..\n.asa}as..amd...\n.fdfafd.amd....\n.....asamd.....\n.....flmd......\n......fd.......\n\n\nmessage Level 6 of 17\n\n(super trivial)\n;...aas.....\n...amdls....\n..amd.fls...\n.amd.qwfls..\namd..er.fls.\nas.125612fls\nfls347834.as\n.fl{}qw{}amd\n..flser.amd.\n...fls.amd..\n....flamd...\n.....fdd....\n\nmessage Level 7 of 17\n(nice level! level 2?)\n;.....as.......\n.....amls......\n....amdfls.....\n...amd..fls....\n..amd....fls...\n.amd..56..fls..\namd..a\"z...fls.\nfls..fn.z...fls\n.fls..e1....amd\n..fls..3...amd.\n...fls.{}.amd..\n....fls..amd...\n.....flsamd....\n......flmd.....\n.......fd......\n\n\n\n\nmessage Level 8 of 17\n(I like how this looks, it's otherwise a simple storeroom puzzle)\n(a bit tricky. push forward maybe)\n;.....as........as......\n.....amlaaaaaaaamls.....\n....amdflmddddlmdfls....\n...amd..fls..amd..fls...\n..amd....fd..fd....fls..\n.amd..qw.125612.qw..fls.\n.fls..er.347834.er..amd.\n..fls....a}..a}....amd..\n...fls..amd..fls..amd...\n....flsaalaaaaalsamd....\n.....flmddddddddlmd.....\n......fd........fd......\n\n\nmessage Level 9 of 17\n(meh but not actually the worst)\n;.....as............\n.....amls...........\n....amdfls..........\n...amd56fls.........\n..amd128.fls........\n.amd124..amd........\naas.34qwamd.........\nfdls{qy?md..........\n..flserfls..........\n...fls..fls..as.....\n....fls..flsamls....\n.....fls..flmdfls...\n......fls..fd..fls..\n......amd.......fls.\n.....amd.....as..fls\n....amd..as..fd..amd\n....fls..fd.....amd.\n.....fls.......amd..\n......fls..aasamd...\n.......flsamdlmd....\n........flmd.fd.....\n.........fd.........\n\nmessage Level 10 of 17\n\n(fine? not too hard? just have to work through it. not trial and errory )\n;.......as.......\n.......amls......\n......amdfls.....\n.....amd..fls....\n....amd.12.fls...\n...amd.q3qw.fls..\n..amd.12po12.fls.\n..fls.3qiq34.amd.\n...fls{}12{}amd..\n...amd..34.amd...\n..amd...{}amd....\n.af......amd.....\n..a.....amd......\n...a...amd.......\n....a.amd........\n.....afd.........\n.................\n\nmessage Level 11 of 17\n(fine?)\n;..............aas....\n..............amdls...\n.............amd.fls..\n............amd...fls.\n...........amd....amd.\n.......as.amd....amd..\n......amlamd..12amd...\n.....amdfdd..1.kmd....\n....amd.....12kmd.....\n...amd...qwajkmd......\n..amd...qyrflmd.......\n.amd...qyr..fls.......\n.fls...er...amd.......\n..fls..56..amd........\n...fls.78.amd.........\n....fls..amd..........\n.....flsamd...........\n......flmd............\n.......fd.............\n\n\n\nmessage Level 12 of 17\n(more space management than puzzle solving)\n;....a..............\n....a.a.............\n...a...a............\n..a.....a...........\n.a.......as.........\na.........ls........\n.a........fls.......\n..a......12fls......\n...a....q3qwfls.....\n....a..121212fls....\n....fls3q3q34.fls...\n.....fl{}12q}..fls..\n......fls34er...fls.\n.......fl{}..56..fls\n........fls..78..amd\n.........fls....amd.\n..........fls..amd..\n...........flsamd...\n............flmd....\n.............fd.....\n....................\n\nmessage Level 13 of 17\n(decent?)\n;...aas......\n...amdls.....\n..amd.fls....\n.amg2..als...\namd34..flls..\nas.56qw.fdls.\nfls78etw..fls\n.flas.er...as\n..flls..12amd\n...fls..3kmd.\n....fls.amd..\n.....flamd...\n......fdd....\n\n\n\nmessage Level 14 of 17\n(yeah fine swap-chambers = all good. intermediate?)\n;....aaaaas........\n....amddddls.......\n....as....fls......\n....as.....asaaas..\n....fls....almddls.\n...aaals...amd..fls\n..amdddg2..fd....as\n.amd..q34..qw...amd\namd...e{}.12r..amd.\nas....as..3kaaamd..\nfls..ams..{}lmdd...\n.flaamls.56.fls....\n..fdddas.78..as....\n......fls....as....\n.......flaaaaas....\n........fdddddd....\n\nmessage Level 15 of 17\n(kinda ok#? middle-intermediate)\n;....aas....\n....amdls...\n...amd.fls..\n..amd...fls.\n.amd12qw.fls\namd.312r..as\nfls.q35..amd\n.flse{78amd.\n..fls..amd..\n...flsamd...\n....flmd....\n.....fd.....\n\n\nmessage Level 16 of 17\n(hard but ok can be solved with brain)\n;...aas.....\n...amdls....\n..amd.fls...\n.amd...fls..\namd.q.1.fls.\nas...q...fls\nfls.1.5..amd\n.fls....amd.\n..fls..amd..\n...flsamd...\n....flmd....\n.....fd.....\n\n\n\nmessage Level 17 of 17\n(message also hard but i can solve these ok now?)\n;...aas.....\n...amdls....\n..amd.fls...\n.amd...fls..\namd.q.1.fls.\nas...5...fls\nfls.q.1..amd\n.fls....amd.\n..fls..amd..\n...flsamd...\n....flmd....\n.....fd.....\n\n\nmessage congrats for being good at socketing gems.\n\n\n(\nasasasas......\nfdfdfdfd......\nas....asasasas\nfd....fdfdfdfd\nas5612qw....as\nfd7834er....fd\nas..{}asasasas\nfd....fdfdfdfd\nasasasas......\nfdfdfdfd......\n\n\n\n......aaaaas.......\n.....amdfddls......\n....amd....fls.....\n...amd......fls....\n..amls..qw..amls...\n.amdfls.er.amdfls..\namd..fls12amd..fls.\nas....fd34fd....as.\nas.qw.125612qw..as.\nas.er.347834er..as.\nas....a.12a}....as.\nfls..amd34fls..amd.\n.flsamd.q}.flsamd..\n..flmd..er..flmd...\n...fls......amd....\n....fls....amd.....\n.....flaaaamd......\n......fddddd.......\n...................\n\n\n\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n\n\n\n.....................\n......aas............\n.....amdl.s..........\n....amd.f.ls.........\n....as....fls........\n....as.....asaaas....\n....fls....almddls...\n...aaals...amd..fls..\n..amdddg2..fd....as..\n.amd..q35.6qw...amd..\namd...e{7.12r..amd...\nas....as..3kaaamd....\nfls..aas..{}lmdd.....\n.flaamls....fls......\n..fdddas.....as......\n......fls....as......\n.......fl.s.amd......\n........f.lamd.......\n..........fdd........\n.....................\n\n....................\n............aaas....\n...........amddls...\n...aaaas..amd..fls..\n..amdddg2.fd....as..\n.amd..q346qw...amd..\namd...e{712r..amd...\nas....as.3kaaamd....\nfls..amd.{}dddd.....\n.flaamd.............\n..fddd..............\n....................\n\n....................\n....................\n....................\n....................\n.........as.........\n........amls..aaas..\n.......amdflsamddls.\n...aaaamd..flmd..fls\n..amdddg2...fd....as\n.amd..q3456.qw...amd\namd...e{}7812r..amd.\nas....as...3kaaamd..\nfls..amls..{mdddd...\n.flaamdflsamd.......\n..fddd..flmd........\n.........fd.........\n....................\n....................\n....................\n....................\n\n.......aas..........\n......amdls.........\n.....amd.fls........\n.....as...fls.......\n.....as....as.......\n.....fls...as.aaas..\n......flsqwasamddls.\n...aaaamde1hlmd..fls\n..amdddg2.34fd....as\n.amd..q3456}qw...amd\namd...e{}7812r..amd.\nas....as12.3kaaamd..\nfls..amljqwamdddd...\n.flaamda{}rfls......\n..fddd.as...fls.....\n.......as....as.....\n.......fls...as.....\n........fls.amd.....\n.........flamd......\n..........fdd.......\n\n.......aas..........\n......amdls.........\n.....amd.fls........\n.....as...fls.......\n.....as....as.......\n.....fls...as.aaas..\n......fls56asamddls.\n...aaaamd78flmd..fls\n..amdddd....fd....as\n.amd.....as.qw...amd\namd......fd.er..amd.\nas....as....aaaamd..\nfls..amls..amdddd...\n.flaamdas..fls......\n..fddd.as...fls.....\n.......as....as.....\n.......fls...as.....\n........fls.amd.....\n.........flamd......\n..........fdd.......\n\n(impossible)\n....aas......\n...amdls.....\n..amd.fls....\n.amg2..fls...\namd34..amls..\nas56}qwfdfls.\nfl\"8.etw..fls\n.flsaser...as\n..flmd..12amd\n...fls..3kmd.\n....fls.amd..\n.....flamd...\n......fdd....\n\n\n(trivial)\n....aas......\n...amdls.....\n..amd.fls....\n.amg2..fls...\namd34...fls..\nas.{}qw..fls.\nfls..etw..fls\n.fls56er...as\n..fl\"8..12amd\n...fls..3kmd.\n....fls.amd..\n.....flamd...\n......fdd....\n\n\n(trivial)\n....aas......\n...amdls.....\n..amd.fls....\n.amd.1.fls...\namd.....fls..\nas...5.q.fls.\nfls.q.....as.\n.fl..1...amd.\n..fls...amd..\n...fls.amd...\n....flamd....\n.....fdd.....\n.............\n\n....aas......\n...a..ls.....\n..a...fls....\n.a.....fls...\na...12qwfls..\na...312r.fls.\nfls.q356.a...\n.flse{78a....\n..fls..a.....\n...flsa......\n....fl.......\n.....f.......\n.............\n\n.....as......\n....amls.....\n...amdfls....\n..amd..fls...\n.amd12qwfls..\namd.312r.fls.\nfls.q356..as.\n.flse{78.amd.\n..fls...amd..\n...fls.amd...\n....flamd....\n.....fdd.....\n.............\n\n\n......as......\n.....amls.....\n....amdfls....\n...amd..fls...\n..amd....fls..\n.amd.12qw.fls.\namd..312r..fls\nfls..{34...amd\n.fls.e{}56amd.\n..fls...7!md..\n...fls..amd...\n....flsamd....\n.....flmd.....\n......fd......\n\n\n\n..............\n.....aas......\n....amdls.....\n...amd.fls....\n..amd...fls...\n.amd...qwfls..\n.as...a/r.fls.\n.fls.5£g2.amd.\n..fls7834amd..\n...fls.{amd...\n....flsamd....\n.....flmd.....\n......fd......\n..............\n\n..............\n.....aas......\n....amdls.....\n...amd.fls....\n..amd...fls...\n.amd...qwfls..\n.as...a/r.fas.\n.fls.5£g2..ad.\n..fls7834.a...\n...fls.{.a....\n....fls.a.....\n.....faa......\n.......d......\n..............\n\n..............\n.....aas......\n....amdls.....\n...amd.fls....\n..amd...fls...\n.amd...qwfls..\na.....a/r.fls.\n.a...5£g2..as.\n..a..7834.amd.\n...a...{}amd..\n....a...amd...\n.....a.amd....\n......a.d.....\n..............\n\n.......as............\n......amls...........\n.....am$£ls..........\n....amd78fls.........\n...amg2...as.........\n..amg24qwamd.........\n..flj4qy?md..........\n...fl}erfls..........\n....fls..fls..as.....\n.....fls..flsamls....\n......fls..flmdfls...\n.......fls..fd..fls..\n.......amd.......fls.\n......amd.....as..fls\n.....amd..as..fd..amd\n.....fls..fd.....amd.\n......fls.......amd..\n.......fls..aasamd...\n........flsamdlls....\n.........flmd.fdd....\n..........fd.........\n.....................\n\n\n\n.......as............\n......amls...........\n.....am$£ls..........\n....amg28fls.........\n...amg24..as.........\n..amd34qwamd.........\n..fls{qy?md..........\n...flserfls..........\n....fls..fls..as.....\n.....fls..flsamls....\n......fls..flmdfls...\n.......fls..fd..fls..\n........fls......fls.\n........amd...as..fls\n.......amd....fd..amd\n......amd..as....amd.\n......fls..fd...amd..\n.......fls....aamd...\n........fls..amdd....\n.........flsamd......\n..........flmd.......\n...........fd........\n\n\n....................\n.......1............\n......q.q...........\n.....1.1.1..........\n......q.q.q.........\n.......1.1..........\n........q...........\n...........5........\n....................\n....................\n\n\n(trivial)\n..........aas.....\n.....as..amdls....\n....amlsamd.fls...\n...amdflmd...fls..\n..amd..fd.qw..fls.\n.amd......etw56fls\n.fls......a/r78amd\n..fls.....fls.amd.\n..amd......flamd..\n.amd.....12.amd...\namd..as..34amd....\nfls..fg2.{amd.....\n.fls..34.amd......\n..fls.{}amd.......\n...fls.amd........\n....flamd.........\n.....fls..........\n......fd..........\n\n(dont' like)\n..........................\n.asasasasasas.............\n.fdfdfdfdfdfd.............\n.as........asasasasas.....\n.fd........fdfdfdfdfd.....\n.as..qwqw........56as.....\n.fd..erer........78fd.....\n.as..qw..as121212..as.....\n.fd..er..fd343434..fd.....\n.as......asa}a}a}asas.....\n.fd......fdfdfdfdfdfd.....\n.asasasasas...............\n.fdfdfdfdfd...............\n..........................\n\n\n\n..............aas...\n.............amdls..\n............amd.fls.\n...........amd...fls\n..........amd....amd\n......as.amd....amd.\n.....amlamd..12amd..\n....amdfdd..1jamd...\n...amd.....12amd....\n..amd...qwajamd.....\n.amd...qyrflmd......\namd...qyr..fls......\nfls...er...amd......\n.fls..56..amd.......\n..fls.78.amd........\n...fls..amd.........\n....flsamd..........\n.....flmd...........\n......fd............\n\n\n..............as....\n.............amls...\n............amdfls..\n...........amd..fls.\n..........amd....als\n......as.amd....amdd\n.....amlamd..12amd..\n....amdfdd..12kmd...\n...amd.....12kmd....\n..amd...qwajkmd.....\n.amd...qyrflmd......\namd...qyr..fls......\nfls...er...amd......\n.fls..56..amd.......\n..fls.78.amd........\n...fls..amd.........\n....flsamd..........\n.....flmd...........\n......fd............\n\n(actually fun to bop about in, but not hard)\n..................\n.....as...........\n....amls..........\n...amdfls.........\n..amd..fls........\n.amd....fls.......\n.fls..qw.fls......\n..flsqyr..fls.....\n..amder56..fls....\n.amd...7812.as....\namd..as..34amd....\nfls..fg2.{amd.....\n.fls..34.amd......\n..fls.{}amd.......\n...fls.amd........\n....flamd.........\n.....fdd..........\n..................\n\n(trivial)\n...........as.....\n....as....amls....\n...amls..amdfls...\n..amghlsamd..fls..\n.amd34flmd....fls.\n.fls{}.fd.....amd.\n..fls......qwamd..\n...fls.....e?md...\n....flszx..amd....\n.....fljb..fls....\n......fl}56.fls...\n.......fl\"8.amd...\n........flsamd....\n.........flmd.....\n..........fd......\n..................\n..................\n..................\n..................\n\n(early-intermediate. ugly)\n..................\n.....as...........\n....aas...........\n...amdls..........\n..amd.fls.........\n.amd...fls........\n.fls..qwfls.......\n..flsqyr.fls......\n..amder56.fls.....\n.amd...7812fls....\namd..as..34amd....\nfls..fg2.{amd.....\n.fls..34.amd......\n..fls.{}amd.......\n...fls.amd........\n....flamd.........\n.....fdd..........\n..................\n\n\n........as...\n....as.amls..\n...amlamdfls.\n..amghdd..fls\n.amd34.....as\n.as.{}56qwamd\n.flszx78e?md.\n..fljb...fls.\n...fl}...amd.\n....fls.amd..\n.....flamd...\n......fdd....\n.............\n\n.....asasasasas...\n.....fdfdfdfdfd...\n.asasas......as...\n.fdfdfd......fd...\n.as12..qw....as...\n.fd312qyr.56.fd...\n.as124etw.78.as...\n.fd34}.er....fd...\n.asa}as......as...\n.fdfdfd......fd...\n.....asasasasas...\n.....fdfdfdfdfd...\n\n......as.......\n.....amls......\n....amdfls.....\n...amd..fls....\n..amd....fls...\n.amd..56..fls..\namd..a\"ux..fls.\nfls..fnytx..fls\n.fls..e1cb..amd\n..fls..34}.amd.\n...fls.{}.amd..\n....fls..amd...\n.....flsamd....\n......flmd.....\n.......fd......\n\n......as.......\n.....amls......\n....amdfls.....\n...amd..fls....\n..amd....fls...\n.amd..56..fls..\namd..a\"1x..fls.\nfls..fny1x..fls\n.fls..e1cb..amd\n..fls..34}.amd.\n...fls.{}.amd..\n....fls..amd...\n.....flsamd....\n......flmd.....\n.......fd......\n\n\n....asas....\n...amdfls...\n..amg21hls..\n.amd3434fls.\namd.{}{}.fls\nfd...as...fd\nas..q,nw..as\nfls.erer.amd\n.fls....amd.\n..fls56amd..\n...fl\"!md...\n....fdfd....\n\n(unsolvable)\n....asas....\n...amdfls...\n..amg21hls..\n.amd3kj4fls.\namd.{}{}.fls\nfd...as...fd\nas..q,nw..as\nfls.erer.amd\n.fls....amd.\n..fls56amd..\n...fl\"!md...\n....fdfd....\n\n....asas....\n...amdfls...\n..amd..fls..\n.amd....fls.\namd...56.fls\nfd....78..fd\nas........as\nfls......amd\n.fls....amd.\n..fls..amd..\n...flsamd...\n....fdfd....\n\n\n(trivil)\n....asas....\n...asdfas...\n..asd..fas..\n.asd....fas.\nasd...56.fas\nfd.qw.78..fd\nas12tw....as\nflj12tw..amd\n.faj12r.amd.\n..faj4.amd..\n...fa}amd...\n....fdfd....\n\n\n\n(impossible)\n...as..as...\n..amlsamls..\n.amghlmdfls.\namd34fd..fls\nfls{}56qwamd\n.flszi8e?md.\n..fljb..fls.\n...fl}..amd.\n....flsamd..\n.....flmd...\n......fd....\n\n.....as......\n....amls.....\n...amdfls....\n..amd..fls...\n.amd.56.fls..\namd.a7zx.fls.\nfls.fnytx.fls\n.fls.e1cb.amd\n..fls.34}amd.\n...fls{}amd..\n....flsamd...\n.....flmd....\n......fd.....\n\n\n........as......\n.......amls.....\n....asamdfls....\n...amlmnw.fls...\n..amdfdetw.fls..\n.amd...a/p6amd..\n.fls...fl7amd...\n.amd...1hlmd....\namd.as.3kmd.....\nfls.fg2amd......\n.fls.3kmd.......\n..flsamd........\n...flmd.........\n....fd..........\n\n.......a........\n......a.a.......\n.....a...a......\n....a...5.a.....\n...a...q...a....\n..a...z.....a...\n.a...z.....a....\na...1...a.a.....\n.a.....a.a......\n..a...a.........\n...a.a..........\n....a...........\n................\n................\n................\n\n......a.......\n.....a.a......\n....a...a.....\n...a.....a....\n..a...1...a...\n.a...q.q...a..\na...1.5.1...a.\n.a...q.q...a..\n..a...1...a...\n...a.....a....\n..a.....a.....\n...a...a......\n....a.a.......\n.....a........\n..............\n\n...........a....\n..........a.a...\n.........a...a..\n........a...5.a.\n.......a...a...a\n........a.....a.\n.....a.a.....a..\n....a.a...1.a...\n...a.....1.a....\n..a.....1.a.....\n.a...q.a.a......\na...q...a.......\n.a...q...a......\n..a.....a.......\n...a...a........\n....a.a.........\n.....a..........\n................\n................\n\n................\n......a.........\n.....a.a........\n....a...a.......\n...a.....a......\n..a...q...a.....\n.a...1.1...a....\na...q.q.q...a...\n.a...1.1.1...a..\n..a...q.q...a...\n...a...1.5.a....\n....a.....a.....\n.....a...a......\n......a.a.......\n.......a........\n................\n................\n................\n\n.....a...........\n....a.a..........\n...a.5.a.........\n..a.1...a........\n.a.1.q.a.........\na...q.a..........\n.a.....a.........\n..a.a...a........\n...a.a...a.a.....\n......a...a.a....\n.......a.....a...\n......a.......a..\n.....a.....a...a.\n....a...a.....a..\n.....a.......a...\n......a...a.a....\n.......a.a.a.....\n........a........\n.................\n\n....a.a......\n...a.a.a.....\n..a.....a....\n.a...q...a...\na.1.q.....a..\n.a.5.....1.a.\n..a.a.a.a.a..\n...a.a.a.a...\n.............\n\n.......a......\n......a.a.....\n.....a...a....\n....a.....a...\n...a.1.a...a..\n....a.1.a...a.\n.....a.1.q.a..\n......a...a...\n.....a.q...a..\n....a...a...a.\n...a.q.....a..\n..a...a...a...\n.a.5.....a....\na...a...a.....\n.a.....a......\n..a...a.......\n...a.a........\n....a.........\n..............\n\n\n\n...as..as...\n..amlsamls..\n.amghlmdfls.\namd34fd..fls\nfls{}56qwamd\n.flszi8ermd.\n..fljb..fls.\n...fl}..amd.\n....flsamd..\n.....flmd...\n......fd....\n\n...as..as...\n..amlsamls..\n.amdflmdfls.\namd..fd..fls\nfls......amd\n.fls....amd.\n..fls...fls.\n...fls..amd.\n....flsamd..\n.....flmd...\n......fd....\n\n\n;...asas....\n...amdfls...\n..amd..fls..\n.amd....fls.\namd...56.fls\nfd.qw.78..fd\nas12tw....as\nflj12tw..amd\n.flj12r.amd.\n..flj4.amd..\n...fl}amd...\n....fdfd....\n\n...aas...\n..amdls..\n.amd.fls.\namq..5fls\nfd.q...as\nas1...amd\nfls1.amd.\n.flsamd..\n..fdfd...\n\n..asas..\n.amdfls.\namd..fls\nfd....fd\nas....as\nfls..amd\n.flsamd.\n..fdfd..\n\n....asas....\n...asdfas...\n..asd..fas..\n.asd....fas.\nasd......fas\nfd........fd\nas........as\nfas......asd\n.fas....asd.\n..fas..asd..\n...fasasd...\n....fdfd....\n\n...aa....\n..as.a...\n.amd..a..\namd....a.\nfd.....a.\nas....as.\nfls..amd.\n.flsamd..\n..fdfd...\n\n\nasasasas\nfdfdfdfd\nas....as\nfd....fd\nas....as\nfd....fd\nas....as\nfd....fd\nasasasas\nfdfdfdfd\n\n........a.........\n.......a.a........\n......a...a.......\n.....a.....a......\n....a.......a.....\n...a.........a....\n..a...........a...\n.a.............a..\na...............a.\n.a.............a..\n..a...........a...\n...a.........a....\n....a.......a.....\n.....a.....a......\n......a...a.......\n.......a.a........\n........a.........\n..................\n\n\n........\n..qw....\n.qytwqw.\n.etytyr.\n.12tyr..\n.34ep6..\n.{}.78..\n........\n........\n........\n\n\n\n........\n........\n........\n........\n.12qw...\n.34e5...\n.{}.....\n........\n........\n........\n\n........\n........\n........\n........\n.12qw...\n.34e5...\n.{}.....\n........\n........\n........\n)\n\n", [0, 2, 3, 0, 3, 2, 2, 3, 3, 2, 1, 1, 1, 2, 3, 1, 1, 3, 2, 2, 1, 2, 3, 0, 1, 1, 0, 2, 3, 0, 0, 3, 0, 0, 0, 1, 1, 0, 1, 1, 1, 2, 2, 2, 3, 2, "undo", 1, 2, 3, 3, 2, 3, 0], "background bgtile_nw:0,background bgtile_sw:1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,background bgtile_ne:2,background bgtile_se:3,\n2,3,2,3,2,background bgtile_se wall_nw:4,background bgtile_ne wall_sw:5,3,2,3,2,3,2,3,2,0,1,0,1,\n0,1,background bgtile_nw wall_nw:6,background bgtile_sw wall_ne wall_sw walljoin_downdiag:7,background bgtile_nw wall_nw wall_se walljoin_updiag:8,background bgtile_sw wall_sw:9,0,1,0,1,0,1,0,2,3,2,3,2,4,\nbackground bgtile_ne wall_ne wall_sw walljoin_downdiag:10,background bgtile_se wall_se:11,background bgtile_ne wall_ne:12,background bgtile_se wall_nw wall_se walljoin_updiag:13,5,3,2,3,2,3,2,0,1,0,1,6,7,background bgtile_nw wall_se:14,1,\n0,background bgtile_sw wall_ne:15,8,9,0,1,0,1,0,2,3,2,4,10,11,2,3,2,3,\n12,13,5,3,2,3,2,0,1,6,7,14,1,0,1,0,1,0,15,\n8,9,0,1,0,2,4,10,11,2,3,2,4,5,3,2,3,12,13,\n5,3,2,6,7,14,1,0,1,0,15,14,background bgtile_sw player_nw:16,background bgtile_nw player_sw:17,1,0,15,8,9,\n0,12,13,5,3,2,3,2,background bgtile_se target_nw:18,background bgtile_ne crate_nw target_sw:19,background bgtile_se crate_sw player_ne target_nw target_ses:20,background bgtile_ne player_se target_sw:21,background bgtile_se target_ses:22,2,3,12,13,5,0,\n15,8,9,0,1,0,background bgtile_sw crate_nw target_ne:23,background bgtile_nw crate_ne crate_sw target_se:24,background bgtile_sw crate_se target_ne target_sw target_sws:25,background bgtile_nw target_se target_ses:26,background bgtile_sw target_sws:27,0,1,6,7,14,2,3,12,\n13,5,3,2,background bgtile_se crate_ne:28,background bgtile_ne crate_se target_ne:29,background bgtile_se target_se:30,background bgtile_ne target_sws:31,3,2,4,10,11,2,0,1,0,15,8,\n9,0,1,0,1,background bgtile_nw crate_nw:32,background bgtile_sw crate_sw:33,6,7,14,1,0,2,3,2,3,12,13,5,\n3,2,3,background bgtile_ne crate_ne:34,background bgtile_se crate_se wall_nw:35,10,11,2,3,2,0,1,0,1,0,15,8,9,0,\n1,6,7,14,1,0,1,0,2,3,2,3,2,3,12,13,5,4,10,\n11,2,3,2,3,2,0,1,0,1,0,1,0,15,8,7,14,1,0,\n1,0,1,0,2,3,2,3,2,3,2,3,12,11,2,3,2,3,2,\n3,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,\n", 5, "1627894805419.4346"] + "Gem Socketeer", + ["title Gem Socketeer \nauthor increpare\nhomepage www.increpare.com\n\n\n(many levels made with the assistance of marcos don's sokoban solver - https://marcosdon.github.io/PuzzleScriptWithSolver/editor.html )\n\n(thanks to ggn for feedback + testing!)\n\nbackground_color #04212a\ntext_color #d494de\n\nrun_rules_on_level_start\n( debug )\n(verbose_logging)\n\n========\nOBJECTS\n========\n\nBackground\n#2c7678 #26837d #226768\n00100\n01110\n11111\n01110\n00100\n\n\nbgtile_nw ;\n#26837d #226768 #2c7678\n00001\n00012\n00122\n01222\n12222\n\n\n\nbgtile_ne\n#226768 #26837d #2c7678\n01111\n20111\n22011\n22201\n22220\n\n\n\nbgtile_sw\n#226768 #2c7678 #26837d\n01111\n20111\n22011\n22201\n22220\n\n\n\nbgtile_se\n#2c7678 #226768 #26837d\n00001\n00012\n00122\n01222\n12222\n\n\n\ntarget_nw 1\n#ffe56f #ffd100 #d29500\n...00\n..112\n.112.\n112..\n12...\n\n\n\ntarget_ne 2\n#ffe56f #d29500 #ffd100\n00...\n120..\n.120.\n..120\n...12\n\n\n\ntarget_sw 3\n#ffd100 #d29500 #ffe56f\n01...\n02...\n102..\n.102.\n..102\n\n\ntarget_se 4\n#d29500 #ffd100 #ffe56f\n...01\n...01\n..210\n.210.\n210..\n\ntarget_ses {\n#d29500 #ffd100\n...01\n.....\n.....\n.....\n.....\n\ntarget_sws }\n#ffd100 #d29500\n01...\n.....\n.....\n.....\n.....\n\nplayer_nw 5\n#3c75ee #86c1ff #5d96ff #1447b6\n....0\n...01\n..020\n.0203\n03032\n\n\n\n\nplayer_ne 6\n#5d96ff #d6eaff #86c1ff\n0....\n10...\n010..\n2010.\n12020\n\n\n\n\nplayer_sw 7\n#1447b6 #002d8e #3c75ee\n01020\n.0102\n..010\n...01\n....0\n\n\n\n\n\nplayer_se 8\n#3c75ee #5d96ff #1447b6\n01010\n1010.\n010..\n20...\n0....\n\n\n\n\ncrate_nw q\n#f9d6ff #e29aee #eeb1f9 #ba4fca\n....0\n...01\n..010\n.0121\n01312\n\n\n\n\ncrate_ne w\n#f9d6ff #f6c1ff\n0....\n10...\n010..\n1010.\n01010\n\n\n\ncrate_sw e\n#ba4fca #ca66d9\n01010\n.0101\n..010\n...01\n....0\n\n\n\n\ncrate_se r\n#eeb1f9 #e29aee #f9d6ff #ca81d8 #ba4fca\n01231\n1031.\n431..\n31...\n1....\n\n\n\n\n\n\n\nwall_nw\n#8f6d56 #7b5b45 #5e422f\n....0\n...00\n..001\n.0012\n00121\n\n\nwall_ne\n#ab866d #7b5b45 #463326\n0....\n00...\n100..\n2100.\n12100\n\nwall_se\n#7b5b45 #8f6d56 #5e422f\n01022\n1022.\n022..\n22...\n2....\n\nwall_sw\n#463326 #7b5b45 #ab866d\n00121\n.0012\n..001\n...00\n....0\n\nwalljoin_downdiag\n#7b5b45\n0....\n.0...\n..0..\n...0.\n....0\n\nwalljoin_updiag\n#7b5b45\n....0\n...0.\n..0..\n.0...\n0....\n\n\n=======\nLEGEND\n=======\n\nplayer = player_nw or player_ne or player_sw or player_se\ncrate = crate_nw or crate_ne or crate_sw or crate_se\ntarget = target_nw or target_ne or target_sw or target_se\n\npusher_nw = player_nw or crate_nw\npusher_sw = player_sw or crate_sw\npusher_ne = player_ne or crate_ne\npusher_se = player_se or crate_se\n\nt = crate_nw and crate_se \ny = crate_ne and crate_sw\n\nu = crate_nw and player_se\ni = crate_ne and player_sw\no = crate_sw and player_ne\np = crate_se and player_nw\n\n! = wall_nw and player_se\n\" = wall_ne and player_sw\n£ = wall_sw and player_ne\n$ = wall_se and player_nw\n\n. = Background\n\na = wall_nw\ns = wall_ne\nd = wall_se \nf = wall_sw\n\ncollides_nw = wall_ne or wall_sw or crate_ne or crate_sw\ncollides_ne = wall_nw or wall_se or crate_nw or crate_se\ncollides_sw = wall_se or wall_nw or crate_se or crate_nw\ncollides_se = wall_sw or wall_ne or crate_sw or crate_ne\n\ng = target_nw and wall_se\nh = target_ne and wall_sw\nj = target_sw and wall_ne\nk = target_se and wall_nw\n\nl = wall_nw and wall_se and walljoin_updiag\nm = wall_ne and wall_sw and walljoin_downdiag\n\nz = crate_nw and target_nw\nx = crate_ne and target_ne\nc = crate_sw and target_sw\nb = crate_se and target_se\n\n\nn = crate_nw and wall_se\n, = crate_ne and wall_sw\n/ = crate_sw and wall_ne\n? = crate_se and wall_nw\n\n% = crate_nw and target_nw and player_se\n& = crate_ne and target_ne and player_sw\n* = crate_sw and target_sw and player_ne\n_ = crate_se and target_se and player_nw\n\n丁 = crate_nw and target_nw and player_se\n上 = crate_ne and target_ne and player_sw\n下 = crate_sw and target_sw and player_ne\n不 = crate_se and target_se and player_nw\n\n(丁上下不且世丙並\n中丸\n主乂乃之乎九也事二五亡交亦京亭人)\n\n=======\nSOUNDS\n=======\n\ncrate move 93772107\nendlevel 32556705\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nbgtile_nw\nbgtile_ne\nbgtile_sw\nbgtile_se\n\nwall_se\nwall_sw\n\ncrate_sw\ncrate_se\nplayer_sw\nplayer_se\n\nwall_nw\nwall_ne\n\nwalljoin_downdiag\nwalljoin_updiag\n\ncrate_nw\ncrate_ne\nplayer_nw\nplayer_ne\n\n\ntarget_sw\ntarget_se\ntarget_sws\ntarget_ses\ntarget_nw\ntarget_ne\n\n======\nRULES\n======\n\n\n(drawing/spawning code. comment out later I guess)\nright [ player_nw | no player_ne ] -> [ player_nw | player_ne ]\nright [ crate_nw | no crate_ne ] -> [ crate_nw | crate_ne ]\nright [ target_nw | no target_ne ] -> [ target_nw | target_ne ]\nright [ wall_nw | no wall_ne ] -> [ wall_nw | wall_ne ]\n\ndown [ player_nw | no player_sw ] -> [ player_nw | player_sw ]\ndown [ crate_nw | no crate_sw ] -> [ crate_nw | crate_sw ]\ndown [ target_nw | no target_sw ] -> [ target_nw | target_sw ]\ndown [ wall_nw | no wall_sw ] -> [ wall_nw | wall_sw ]\n\n\nright [ player_sw | no player_se ] -> [ player_sw | player_se ]\nright [ crate_sw | no crate_se ] -> [ crate_sw | crate_se ]\nright [ target_sw | no target_se ] -> [ target_sw | target_se ]\nright [ wall_sw | no wall_se ] -> [ wall_sw | wall_se ]\n\ndown [ target_sw | no target_ses ] -> [ target_sw | target_ses ]\ndown [ target_se | no target_sws ] -> [ target_se | target_sws ]\n\n(wall mortar)\n\n[wall_se wall_nw ] -> [wall_se wall_nw walljoin_updiag ]\n[wall_ne wall_sw ] -> [wall_ne wall_sw walljoin_downdiag ]\n(end of spawning code)\n\n\nstartloop\n(side push)\n[ up pusher_nw stationary crate_se ] -> [ up pusher_nw up crate_se ]\n+ [ left pusher_nw stationary crate_se ] -> [ left pusher_nw left crate_se ]\n\n+ [ up pusher_ne stationary crate_sw ] -> [ up pusher_ne up crate_sw ]\n+ [ right pusher_ne stationary crate_sw ] -> [ right pusher_ne right crate_sw ]\n\n+ [ down pusher_sw stationary crate_ne ] -> [ down pusher_sw down crate_ne ]\n+ [ left pusher_sw stationary crate_ne ] -> [ left pusher_sw left crate_ne ]\n\n+ [ down pusher_se stationary crate_nw ] -> [ down pusher_se down crate_nw ]\n+ [ right pusher_se stationary crate_nw ] -> [ right pusher_se right crate_nw ]\n\n\n(direct centered push)\n+ up [ > pusher_nw | stationary crate_sw ] -> [ > pusher_nw | > crate_sw ]\n+ down [ > pusher_sw | stationary crate_nw ] -> [ > pusher_sw | > crate_nw ]\n+ right [ > pusher_ne | stationary crate_nw ] -> [ > pusher_ne | > crate_nw ]\n+ left [ > pusher_nw | stationary crate_ne ] -> [ > pusher_nw | > crate_ne ]\n\n\n(propagate motion through crate)\n+ right [ right crate_nw | stationary crate_ne ] -> [ right crate_nw | right crate_ne ]\n+ right [ crate_nw | right crate_ne ] -> [ right crate_nw | right crate_ne ]\n+ right [ right crate_sw | stationary crate_se ] -> [ right crate_sw | right crate_se ]\n+ right [ stationary crate_sw | right crate_se ] -> [ right crate_sw | right crate_se ]\n+ down [ stationary crate_ne | right crate_se ] -> [ right crate_ne | right crate_se ]\n+ down [ right crate_ne | stationary crate_se ] -> [ right crate_ne | right crate_se ]\n\n+ right [ left crate_nw | stationary crate_ne ] -> [ left crate_nw | left crate_ne ]\n+ right [ crate_nw | left crate_ne ] -> [ left crate_nw | left crate_ne ]\n+ right [ left crate_sw | stationary crate_se ] -> [ left crate_sw | left crate_se ]\n+ right [ stationary crate_sw | left crate_se ] -> [ left crate_sw | left crate_se ]\n+ down [ stationary crate_ne | left crate_se ] -> [ left crate_ne | left crate_se ]\n+ down [ left crate_ne | stationary crate_se ] -> [ left crate_ne | left crate_se ]\n\n+ right [ up crate_nw | stationary crate_ne ] -> [ up crate_nw | up crate_ne ]\n+ right [ crate_nw | up crate_ne ] -> [ up crate_nw | up crate_ne ]\n+ right [ up crate_sw | stationary crate_se ] -> [ up crate_sw | up crate_se ]\n+ right [ stationary crate_sw | up crate_se ] -> [ up crate_sw | up crate_se ]\n+ down [ stationary crate_ne | up crate_se ] -> [ up crate_ne | up crate_se ]\n+ down [ up crate_ne | stationary crate_se ] -> [ up crate_ne | up crate_se ]\n\n+ right [ down crate_nw | stationary crate_ne ] -> [ down crate_nw | down crate_ne ]\n+ right [ crate_nw | down crate_ne ] -> [ down crate_nw | down crate_ne ]\n+ right [ down crate_sw | stationary crate_se ] -> [ down crate_sw | down crate_se ]\n+ right [ stationary crate_sw | down crate_se ] -> [ down crate_sw | down crate_se ]\n+ down [ stationary crate_ne | down crate_se ] -> [ down crate_ne | down crate_se ]\n+ down [ down crate_ne | stationary crate_se ] -> [ down crate_ne | down crate_se ]\n\nendloop\n\n\n(if unresolved collisions, can remove all things because it's good)\nlate [ crate_nw collides_nw ] -> cancel\nlate [ crate_ne collides_ne ] -> cancel\nlate [ crate_sw collides_sw ] -> cancel\nlate [ crate_se collides_se] -> cancel\nlate [ player_nw collides_nw ] -> cancel\nlate [ player_ne collides_ne ] -> cancel\nlate [ player_sw collides_sw ] -> cancel\nlate [ player_se collides_se] -> cancel\n\ndown [ bgtile_nw | no bgtile_sw ] -> [ bgtile_nw | bgtile_sw ]\n+ down [ bgtile_sw | no bgtile_nw ] -> [ bgtile_sw | bgtile_nw ]\n\nright [ bgtile_nw | no bgtile_ne ] -> [ bgtile_nw | bgtile_ne ]\n+ right [ bgtile_ne | no bgtile_nw ] -> [ bgtile_ne | bgtile_nw ]\n\nright [ bgtile_sw | no bgtile_se ] -> [ bgtile_sw | bgtile_se ]\n+ right [ bgtile_se | no bgtile_sw ] -> [ bgtile_se | bgtile_sw ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\nAll Crate on Target\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 17\n;...................\n.........a..........\n........asas........\n.......amghls.......\n......amg21hls......\n.....amd3434fls.....\n....amd.{}{}.fls....\n...amd...as...fls...\n..amd...q,nw...fls..\n..fls...etyr...amd..\n...fls...er...amd...\n....fls..56..amd....\n.....fls.78.amd.....\n......fls..amd......\n.......flsamd.......\n........flmd........\n.........fd.........\n....................\n\n(Easyish - possible early level?)\n\nmessage Level 2 of 17\n;.....as......\n.....amls.....\n....amdfls....\n...amd..fls...\n..amd..qwfls..\n.amd.12er.fls.\namd..3412..fls\nfls..q}34..amd\n.fls.er{}.amd.\n..fls.56.amd..\n...fls78amd...\n....flsamd....\n.....flmd.....\n......fd......\n\n\nmessage Level 3 of 17\n(similar to above? no puzzle as such)\n;.......as.........\n.......amls........\n......amdfls.......\n.....amd..fls......\n....amd....fls.....\n...amd......fls....\n..amd...5....fls...\n.amd...aszx...fls..\n.fls...fnytx...fls.\n..fls...e1cb...amd.\n...fls...34}..amd..\n....fls..{}..amd...\n.....fls....amd....\n......fls..amd.....\n.......flsamd......\n........flmd.......\n.........fd........\n\nmessage Level 4 of 17\n\n;.......aas...\n.......amdls..\n......amd.fls.\n.....amd...fls\n....amd.qw..as\n...amd.12r.amd\n..amd.534.amd.\n.amd.128}amd..\namd.q34.amd...\nas..e{}amd....\nfls...amd.....\n.fls.amd......\n..flamd.......\n...fdd........\n\n\n\nmessage Level 5 of 17\n(easy but ok? level 2?)\n;.....as.......\n.....amls......\n.....fdfls.....\n.asasas.fls....\n.fdfdfd..fls...\n.as12..qw.fls..\n.fd312qyr56fls.\n.as124etw78amd.\n.fd34}.er.amd..\n.asa}as..amd...\n.fdfafd.amd....\n.....asamd.....\n.....flmd......\n......fd.......\n\n\nmessage Level 6 of 17\n\n(super trivial)\n;...aas.....\n...amdls....\n..amd.fls...\n.amd.qwfls..\namd..er.fls.\nas.125612fls\nfls347834.as\n.fl{}qw{}amd\n..flser.amd.\n...fls.amd..\n....flamd...\n.....fdd....\n\nmessage Level 7 of 17\n(nice level! level 2?)\n;.....as.......\n.....amls......\n....amdfls.....\n...amd..fls....\n..amd....fls...\n.amd..56..fls..\namd..a\"z...fls.\nfls..fn.z...fls\n.fls..e1....amd\n..fls..3...amd.\n...fls.{}.amd..\n....fls..amd...\n.....flsamd....\n......flmd.....\n.......fd......\n\n\n\n\nmessage Level 8 of 17\n(I like how this looks, it's otherwise a simple storeroom puzzle)\n(a bit tricky. push forward maybe)\n;.....as........as......\n.....amlaaaaaaaamls.....\n....amdflmddddlmdfls....\n...amd..fls..amd..fls...\n..amd....fd..fd....fls..\n.amd..qw.125612.qw..fls.\n.fls..er.347834.er..amd.\n..fls....a}..a}....amd..\n...fls..amd..fls..amd...\n....flsaalaaaaalsamd....\n.....flmddddddddlmd.....\n......fd........fd......\n\n\nmessage Level 9 of 17\n(meh but not actually the worst)\n;.....as............\n.....amls...........\n....amdfls..........\n...amd56fls.........\n..amd128.fls........\n.amd124..amd........\naas.34qwamd.........\nfdls{qy?md..........\n..flserfls..........\n...fls..fls..as.....\n....fls..flsamls....\n.....fls..flmdfls...\n......fls..fd..fls..\n......amd.......fls.\n.....amd.....as..fls\n....amd..as..fd..amd\n....fls..fd.....amd.\n.....fls.......amd..\n......fls..aasamd...\n.......flsamdlmd....\n........flmd.fd.....\n.........fd.........\n\nmessage Level 10 of 17\n\n(fine? not too hard? just have to work through it. not trial and errory )\n;.......as.......\n.......amls......\n......amdfls.....\n.....amd..fls....\n....amd.12.fls...\n...amd.q3qw.fls..\n..amd.12po12.fls.\n..fls.3qiq34.amd.\n...fls{}12{}amd..\n...amd..34.amd...\n..amd...{}amd....\n.af......amd.....\n..a.....amd......\n...a...amd.......\n....a.amd........\n.....afd.........\n.................\n\nmessage Level 11 of 17\n(fine?)\n;..............aas....\n..............amdls...\n.............amd.fls..\n............amd...fls.\n...........amd....amd.\n.......as.amd....amd..\n......amlamd..12amd...\n.....amdfdd..1.kmd....\n....amd.....12kmd.....\n...amd...qwajkmd......\n..amd...qyrflmd.......\n.amd...qyr..fls.......\n.fls...er...amd.......\n..fls..56..amd........\n...fls.78.amd.........\n....fls..amd..........\n.....flsamd...........\n......flmd............\n.......fd.............\n\n\n\nmessage Level 12 of 17\n(more space management than puzzle solving)\n;....a..............\n....a.a.............\n...a...a............\n..a.....a...........\n.a.......as.........\na.........ls........\n.a........fls.......\n..a......12fls......\n...a....q3qwfls.....\n....a..121212fls....\n....fls3q3q34.fls...\n.....fl{}12q}..fls..\n......fls34er...fls.\n.......fl{}..56..fls\n........fls..78..amd\n.........fls....amd.\n..........fls..amd..\n...........flsamd...\n............flmd....\n.............fd.....\n....................\n\nmessage Level 13 of 17\n(decent?)\n;...aas......\n...amdls.....\n..amd.fls....\n.amg2..als...\namd34..flls..\nas.56qw.fdls.\nfls78etw..fls\n.flas.er...as\n..flls..12amd\n...fls..3kmd.\n....fls.amd..\n.....flamd...\n......fdd....\n\n\n\nmessage Level 14 of 17\n(yeah fine swap-chambers = all good. intermediate?)\n;....aaaaas........\n....amddddls.......\n....as....fls......\n....as.....asaaas..\n....fls....almddls.\n...aaals...amd..fls\n..amdddg2..fd....as\n.amd..q34..qw...amd\namd...e{}.12r..amd.\nas....as..3kaaamd..\nfls..ams..{}lmdd...\n.flaamls.56.fls....\n..fdddas.78..as....\n......fls....as....\n.......flaaaaas....\n........fdddddd....\n\nmessage Level 15 of 17\n(kinda ok#? middle-intermediate)\n;....aas....\n....amdls...\n...amd.fls..\n..amd...fls.\n.amd12qw.fls\namd.312r..as\nfls.q35..amd\n.flse{78amd.\n..fls..amd..\n...flsamd...\n....flmd....\n.....fd.....\n\n\nmessage Level 16 of 17\n(hard but ok can be solved with brain)\n;...aas.....\n...amdls....\n..amd.fls...\n.amd...fls..\namd.q.1.fls.\nas...q...fls\nfls.1.5..amd\n.fls....amd.\n..fls..amd..\n...flsamd...\n....flmd....\n.....fd.....\n\n\n\nmessage Level 17 of 17\n(message also hard but i can solve these ok now?)\n;...aas.....\n...amdls....\n..amd.fls...\n.amd...fls..\namd.q.1.fls.\nas...5...fls\nfls.q.1..amd\n.fls....amd.\n..fls..amd..\n...flsamd...\n....flmd....\n.....fd.....\n\n\nmessage congrats for being good at socketing gems.\n\n\n(\nasasasas......\nfdfdfdfd......\nas....asasasas\nfd....fdfdfdfd\nas5612qw....as\nfd7834er....fd\nas..{}asasasas\nfd....fdfdfdfd\nasasasas......\nfdfdfdfd......\n\n\n\n......aaaaas.......\n.....amdfddls......\n....amd....fls.....\n...amd......fls....\n..amls..qw..amls...\n.amdfls.er.amdfls..\namd..fls12amd..fls.\nas....fd34fd....as.\nas.qw.125612qw..as.\nas.er.347834er..as.\nas....a.12a}....as.\nfls..amd34fls..amd.\n.flsamd.q}.flsamd..\n..flmd..er..flmd...\n...fls......amd....\n....fls....amd.....\n.....flaaaamd......\n......fddddd.......\n...................\n\n\n\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n\n\n\n.....................\n......aas............\n.....amdl.s..........\n....amd.f.ls.........\n....as....fls........\n....as.....asaaas....\n....fls....almddls...\n...aaals...amd..fls..\n..amdddg2..fd....as..\n.amd..q35.6qw...amd..\namd...e{7.12r..amd...\nas....as..3kaaamd....\nfls..aas..{}lmdd.....\n.flaamls....fls......\n..fdddas.....as......\n......fls....as......\n.......fl.s.amd......\n........f.lamd.......\n..........fdd........\n.....................\n\n....................\n............aaas....\n...........amddls...\n...aaaas..amd..fls..\n..amdddg2.fd....as..\n.amd..q346qw...amd..\namd...e{712r..amd...\nas....as.3kaaamd....\nfls..amd.{}dddd.....\n.flaamd.............\n..fddd..............\n....................\n\n....................\n....................\n....................\n....................\n.........as.........\n........amls..aaas..\n.......amdflsamddls.\n...aaaamd..flmd..fls\n..amdddg2...fd....as\n.amd..q3456.qw...amd\namd...e{}7812r..amd.\nas....as...3kaaamd..\nfls..amls..{mdddd...\n.flaamdflsamd.......\n..fddd..flmd........\n.........fd.........\n....................\n....................\n....................\n....................\n\n.......aas..........\n......amdls.........\n.....amd.fls........\n.....as...fls.......\n.....as....as.......\n.....fls...as.aaas..\n......flsqwasamddls.\n...aaaamde1hlmd..fls\n..amdddg2.34fd....as\n.amd..q3456}qw...amd\namd...e{}7812r..amd.\nas....as12.3kaaamd..\nfls..amljqwamdddd...\n.flaamda{}rfls......\n..fddd.as...fls.....\n.......as....as.....\n.......fls...as.....\n........fls.amd.....\n.........flamd......\n..........fdd.......\n\n.......aas..........\n......amdls.........\n.....amd.fls........\n.....as...fls.......\n.....as....as.......\n.....fls...as.aaas..\n......fls56asamddls.\n...aaaamd78flmd..fls\n..amdddd....fd....as\n.amd.....as.qw...amd\namd......fd.er..amd.\nas....as....aaaamd..\nfls..amls..amdddd...\n.flaamdas..fls......\n..fddd.as...fls.....\n.......as....as.....\n.......fls...as.....\n........fls.amd.....\n.........flamd......\n..........fdd.......\n\n(impossible)\n....aas......\n...amdls.....\n..amd.fls....\n.amg2..fls...\namd34..amls..\nas56}qwfdfls.\nfl\"8.etw..fls\n.flsaser...as\n..flmd..12amd\n...fls..3kmd.\n....fls.amd..\n.....flamd...\n......fdd....\n\n\n(trivial)\n....aas......\n...amdls.....\n..amd.fls....\n.amg2..fls...\namd34...fls..\nas.{}qw..fls.\nfls..etw..fls\n.fls56er...as\n..fl\"8..12amd\n...fls..3kmd.\n....fls.amd..\n.....flamd...\n......fdd....\n\n\n(trivial)\n....aas......\n...amdls.....\n..amd.fls....\n.amd.1.fls...\namd.....fls..\nas...5.q.fls.\nfls.q.....as.\n.fl..1...amd.\n..fls...amd..\n...fls.amd...\n....flamd....\n.....fdd.....\n.............\n\n....aas......\n...a..ls.....\n..a...fls....\n.a.....fls...\na...12qwfls..\na...312r.fls.\nfls.q356.a...\n.flse{78a....\n..fls..a.....\n...flsa......\n....fl.......\n.....f.......\n.............\n\n.....as......\n....amls.....\n...amdfls....\n..amd..fls...\n.amd12qwfls..\namd.312r.fls.\nfls.q356..as.\n.flse{78.amd.\n..fls...amd..\n...fls.amd...\n....flamd....\n.....fdd.....\n.............\n\n\n......as......\n.....amls.....\n....amdfls....\n...amd..fls...\n..amd....fls..\n.amd.12qw.fls.\namd..312r..fls\nfls..{34...amd\n.fls.e{}56amd.\n..fls...7!md..\n...fls..amd...\n....flsamd....\n.....flmd.....\n......fd......\n\n\n\n..............\n.....aas......\n....amdls.....\n...amd.fls....\n..amd...fls...\n.amd...qwfls..\n.as...a/r.fls.\n.fls.5£g2.amd.\n..fls7834amd..\n...fls.{amd...\n....flsamd....\n.....flmd.....\n......fd......\n..............\n\n..............\n.....aas......\n....amdls.....\n...amd.fls....\n..amd...fls...\n.amd...qwfls..\n.as...a/r.fas.\n.fls.5£g2..ad.\n..fls7834.a...\n...fls.{.a....\n....fls.a.....\n.....faa......\n.......d......\n..............\n\n..............\n.....aas......\n....amdls.....\n...amd.fls....\n..amd...fls...\n.amd...qwfls..\na.....a/r.fls.\n.a...5£g2..as.\n..a..7834.amd.\n...a...{}amd..\n....a...amd...\n.....a.amd....\n......a.d.....\n..............\n\n.......as............\n......amls...........\n.....am$£ls..........\n....amd78fls.........\n...amg2...as.........\n..amg24qwamd.........\n..flj4qy?md..........\n...fl}erfls..........\n....fls..fls..as.....\n.....fls..flsamls....\n......fls..flmdfls...\n.......fls..fd..fls..\n.......amd.......fls.\n......amd.....as..fls\n.....amd..as..fd..amd\n.....fls..fd.....amd.\n......fls.......amd..\n.......fls..aasamd...\n........flsamdlls....\n.........flmd.fdd....\n..........fd.........\n.....................\n\n\n\n.......as............\n......amls...........\n.....am$£ls..........\n....amg28fls.........\n...amg24..as.........\n..amd34qwamd.........\n..fls{qy?md..........\n...flserfls..........\n....fls..fls..as.....\n.....fls..flsamls....\n......fls..flmdfls...\n.......fls..fd..fls..\n........fls......fls.\n........amd...as..fls\n.......amd....fd..amd\n......amd..as....amd.\n......fls..fd...amd..\n.......fls....aamd...\n........fls..amdd....\n.........flsamd......\n..........flmd.......\n...........fd........\n\n\n....................\n.......1............\n......q.q...........\n.....1.1.1..........\n......q.q.q.........\n.......1.1..........\n........q...........\n...........5........\n....................\n....................\n\n\n(trivial)\n..........aas.....\n.....as..amdls....\n....amlsamd.fls...\n...amdflmd...fls..\n..amd..fd.qw..fls.\n.amd......etw56fls\n.fls......a/r78amd\n..fls.....fls.amd.\n..amd......flamd..\n.amd.....12.amd...\namd..as..34amd....\nfls..fg2.{amd.....\n.fls..34.amd......\n..fls.{}amd.......\n...fls.amd........\n....flamd.........\n.....fls..........\n......fd..........\n\n(dont' like)\n..........................\n.asasasasasas.............\n.fdfdfdfdfdfd.............\n.as........asasasasas.....\n.fd........fdfdfdfdfd.....\n.as..qwqw........56as.....\n.fd..erer........78fd.....\n.as..qw..as121212..as.....\n.fd..er..fd343434..fd.....\n.as......asa}a}a}asas.....\n.fd......fdfdfdfdfdfd.....\n.asasasasas...............\n.fdfdfdfdfd...............\n..........................\n\n\n\n..............aas...\n.............amdls..\n............amd.fls.\n...........amd...fls\n..........amd....amd\n......as.amd....amd.\n.....amlamd..12amd..\n....amdfdd..1jamd...\n...amd.....12amd....\n..amd...qwajamd.....\n.amd...qyrflmd......\namd...qyr..fls......\nfls...er...amd......\n.fls..56..amd.......\n..fls.78.amd........\n...fls..amd.........\n....flsamd..........\n.....flmd...........\n......fd............\n\n\n..............as....\n.............amls...\n............amdfls..\n...........amd..fls.\n..........amd....als\n......as.amd....amdd\n.....amlamd..12amd..\n....amdfdd..12kmd...\n...amd.....12kmd....\n..amd...qwajkmd.....\n.amd...qyrflmd......\namd...qyr..fls......\nfls...er...amd......\n.fls..56..amd.......\n..fls.78.amd........\n...fls..amd.........\n....flsamd..........\n.....flmd...........\n......fd............\n\n(actually fun to bop about in, but not hard)\n..................\n.....as...........\n....amls..........\n...amdfls.........\n..amd..fls........\n.amd....fls.......\n.fls..qw.fls......\n..flsqyr..fls.....\n..amder56..fls....\n.amd...7812.as....\namd..as..34amd....\nfls..fg2.{amd.....\n.fls..34.amd......\n..fls.{}amd.......\n...fls.amd........\n....flamd.........\n.....fdd..........\n..................\n\n(trivial)\n...........as.....\n....as....amls....\n...amls..amdfls...\n..amghlsamd..fls..\n.amd34flmd....fls.\n.fls{}.fd.....amd.\n..fls......qwamd..\n...fls.....e?md...\n....flszx..amd....\n.....fljb..fls....\n......fl}56.fls...\n.......fl\"8.amd...\n........flsamd....\n.........flmd.....\n..........fd......\n..................\n..................\n..................\n..................\n\n(early-intermediate. ugly)\n..................\n.....as...........\n....aas...........\n...amdls..........\n..amd.fls.........\n.amd...fls........\n.fls..qwfls.......\n..flsqyr.fls......\n..amder56.fls.....\n.amd...7812fls....\namd..as..34amd....\nfls..fg2.{amd.....\n.fls..34.amd......\n..fls.{}amd.......\n...fls.amd........\n....flamd.........\n.....fdd..........\n..................\n\n\n........as...\n....as.amls..\n...amlamdfls.\n..amghdd..fls\n.amd34.....as\n.as.{}56qwamd\n.flszx78e?md.\n..fljb...fls.\n...fl}...amd.\n....fls.amd..\n.....flamd...\n......fdd....\n.............\n\n.....asasasasas...\n.....fdfdfdfdfd...\n.asasas......as...\n.fdfdfd......fd...\n.as12..qw....as...\n.fd312qyr.56.fd...\n.as124etw.78.as...\n.fd34}.er....fd...\n.asa}as......as...\n.fdfdfd......fd...\n.....asasasasas...\n.....fdfdfdfdfd...\n\n......as.......\n.....amls......\n....amdfls.....\n...amd..fls....\n..amd....fls...\n.amd..56..fls..\namd..a\"ux..fls.\nfls..fnytx..fls\n.fls..e1cb..amd\n..fls..34}.amd.\n...fls.{}.amd..\n....fls..amd...\n.....flsamd....\n......flmd.....\n.......fd......\n\n......as.......\n.....amls......\n....amdfls.....\n...amd..fls....\n..amd....fls...\n.amd..56..fls..\namd..a\"1x..fls.\nfls..fny1x..fls\n.fls..e1cb..amd\n..fls..34}.amd.\n...fls.{}.amd..\n....fls..amd...\n.....flsamd....\n......flmd.....\n.......fd......\n\n\n....asas....\n...amdfls...\n..amg21hls..\n.amd3434fls.\namd.{}{}.fls\nfd...as...fd\nas..q,nw..as\nfls.erer.amd\n.fls....amd.\n..fls56amd..\n...fl\"!md...\n....fdfd....\n\n(unsolvable)\n....asas....\n...amdfls...\n..amg21hls..\n.amd3kj4fls.\namd.{}{}.fls\nfd...as...fd\nas..q,nw..as\nfls.erer.amd\n.fls....amd.\n..fls56amd..\n...fl\"!md...\n....fdfd....\n\n....asas....\n...amdfls...\n..amd..fls..\n.amd....fls.\namd...56.fls\nfd....78..fd\nas........as\nfls......amd\n.fls....amd.\n..fls..amd..\n...flsamd...\n....fdfd....\n\n\n(trivil)\n....asas....\n...asdfas...\n..asd..fas..\n.asd....fas.\nasd...56.fas\nfd.qw.78..fd\nas12tw....as\nflj12tw..amd\n.faj12r.amd.\n..faj4.amd..\n...fa}amd...\n....fdfd....\n\n\n\n(impossible)\n...as..as...\n..amlsamls..\n.amghlmdfls.\namd34fd..fls\nfls{}56qwamd\n.flszi8e?md.\n..fljb..fls.\n...fl}..amd.\n....flsamd..\n.....flmd...\n......fd....\n\n.....as......\n....amls.....\n...amdfls....\n..amd..fls...\n.amd.56.fls..\namd.a7zx.fls.\nfls.fnytx.fls\n.fls.e1cb.amd\n..fls.34}amd.\n...fls{}amd..\n....flsamd...\n.....flmd....\n......fd.....\n\n\n........as......\n.......amls.....\n....asamdfls....\n...amlmnw.fls...\n..amdfdetw.fls..\n.amd...a/p6amd..\n.fls...fl7amd...\n.amd...1hlmd....\namd.as.3kmd.....\nfls.fg2amd......\n.fls.3kmd.......\n..flsamd........\n...flmd.........\n....fd..........\n\n.......a........\n......a.a.......\n.....a...a......\n....a...5.a.....\n...a...q...a....\n..a...z.....a...\n.a...z.....a....\na...1...a.a.....\n.a.....a.a......\n..a...a.........\n...a.a..........\n....a...........\n................\n................\n................\n\n......a.......\n.....a.a......\n....a...a.....\n...a.....a....\n..a...1...a...\n.a...q.q...a..\na...1.5.1...a.\n.a...q.q...a..\n..a...1...a...\n...a.....a....\n..a.....a.....\n...a...a......\n....a.a.......\n.....a........\n..............\n\n...........a....\n..........a.a...\n.........a...a..\n........a...5.a.\n.......a...a...a\n........a.....a.\n.....a.a.....a..\n....a.a...1.a...\n...a.....1.a....\n..a.....1.a.....\n.a...q.a.a......\na...q...a.......\n.a...q...a......\n..a.....a.......\n...a...a........\n....a.a.........\n.....a..........\n................\n................\n\n................\n......a.........\n.....a.a........\n....a...a.......\n...a.....a......\n..a...q...a.....\n.a...1.1...a....\na...q.q.q...a...\n.a...1.1.1...a..\n..a...q.q...a...\n...a...1.5.a....\n....a.....a.....\n.....a...a......\n......a.a.......\n.......a........\n................\n................\n................\n\n.....a...........\n....a.a..........\n...a.5.a.........\n..a.1...a........\n.a.1.q.a.........\na...q.a..........\n.a.....a.........\n..a.a...a........\n...a.a...a.a.....\n......a...a.a....\n.......a.....a...\n......a.......a..\n.....a.....a...a.\n....a...a.....a..\n.....a.......a...\n......a...a.a....\n.......a.a.a.....\n........a........\n.................\n\n....a.a......\n...a.a.a.....\n..a.....a....\n.a...q...a...\na.1.q.....a..\n.a.5.....1.a.\n..a.a.a.a.a..\n...a.a.a.a...\n.............\n\n.......a......\n......a.a.....\n.....a...a....\n....a.....a...\n...a.1.a...a..\n....a.1.a...a.\n.....a.1.q.a..\n......a...a...\n.....a.q...a..\n....a...a...a.\n...a.q.....a..\n..a...a...a...\n.a.5.....a....\na...a...a.....\n.a.....a......\n..a...a.......\n...a.a........\n....a.........\n..............\n\n\n\n...as..as...\n..amlsamls..\n.amghlmdfls.\namd34fd..fls\nfls{}56qwamd\n.flszi8ermd.\n..fljb..fls.\n...fl}..amd.\n....flsamd..\n.....flmd...\n......fd....\n\n...as..as...\n..amlsamls..\n.amdflmdfls.\namd..fd..fls\nfls......amd\n.fls....amd.\n..fls...fls.\n...fls..amd.\n....flsamd..\n.....flmd...\n......fd....\n\n\n;...asas....\n...amdfls...\n..amd..fls..\n.amd....fls.\namd...56.fls\nfd.qw.78..fd\nas12tw....as\nflj12tw..amd\n.flj12r.amd.\n..flj4.amd..\n...fl}amd...\n....fdfd....\n\n...aas...\n..amdls..\n.amd.fls.\namq..5fls\nfd.q...as\nas1...amd\nfls1.amd.\n.flsamd..\n..fdfd...\n\n..asas..\n.amdfls.\namd..fls\nfd....fd\nas....as\nfls..amd\n.flsamd.\n..fdfd..\n\n....asas....\n...asdfas...\n..asd..fas..\n.asd....fas.\nasd......fas\nfd........fd\nas........as\nfas......asd\n.fas....asd.\n..fas..asd..\n...fasasd...\n....fdfd....\n\n...aa....\n..as.a...\n.amd..a..\namd....a.\nfd.....a.\nas....as.\nfls..amd.\n.flsamd..\n..fdfd...\n\n\nasasasas\nfdfdfdfd\nas....as\nfd....fd\nas....as\nfd....fd\nas....as\nfd....fd\nasasasas\nfdfdfdfd\n\n........a.........\n.......a.a........\n......a...a.......\n.....a.....a......\n....a.......a.....\n...a.........a....\n..a...........a...\n.a.............a..\na...............a.\n.a.............a..\n..a...........a...\n...a.........a....\n....a.......a.....\n.....a.....a......\n......a...a.......\n.......a.a........\n........a.........\n..................\n\n\n........\n..qw....\n.qytwqw.\n.etytyr.\n.12tyr..\n.34ep6..\n.{}.78..\n........\n........\n........\n\n\n\n........\n........\n........\n........\n.12qw...\n.34e5...\n.{}.....\n........\n........\n........\n\n........\n........\n........\n........\n.12qw...\n.34e5...\n.{}.....\n........\n........\n........\n)\n\n",[0,2,3,0,3,2,2,3,3,2,1,1,1,2,3,1,1,3,2,2,1,2,3,0,1,1,0,2,3,0,0,3,0,0,0,1,1,0,1,1,1,2,2,2,3,2,"undo",1,2,3,3,2,3,0],"background bgtile_nw:0,background bgtile_sw:1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,background bgtile_ne:2,background bgtile_se:3,\n2,3,2,3,2,background bgtile_se wall_nw:4,background bgtile_ne wall_sw:5,3,2,3,2,3,2,3,2,0,1,0,1,\n0,1,background bgtile_nw wall_nw:6,background bgtile_sw wall_ne wall_sw walljoin_downdiag:7,background bgtile_nw wall_nw wall_se walljoin_updiag:8,background bgtile_sw wall_sw:9,0,1,0,1,0,1,0,2,3,2,3,2,4,\nbackground bgtile_ne wall_ne wall_sw walljoin_downdiag:10,background bgtile_se wall_se:11,background bgtile_ne wall_ne:12,background bgtile_se wall_nw wall_se walljoin_updiag:13,5,3,2,3,2,3,2,0,1,0,1,6,7,background bgtile_nw wall_se:14,1,\n0,background bgtile_sw wall_ne:15,8,9,0,1,0,1,0,2,3,2,4,10,11,2,3,2,3,\n12,13,5,3,2,3,2,0,1,6,7,14,1,0,1,0,1,0,15,\n8,9,0,1,0,2,4,10,11,2,3,2,4,5,3,2,3,12,13,\n5,3,2,6,7,14,1,0,1,0,15,14,background bgtile_sw player_nw:16,background bgtile_nw player_sw:17,1,0,15,8,9,\n0,12,13,5,3,2,3,2,background bgtile_se target_nw:18,background bgtile_ne crate_nw target_sw:19,background bgtile_se crate_sw player_ne target_nw target_ses:20,background bgtile_ne player_se target_sw:21,background bgtile_se target_ses:22,2,3,12,13,5,0,\n15,8,9,0,1,0,background bgtile_sw crate_nw target_ne:23,background bgtile_nw crate_ne crate_sw target_se:24,background bgtile_sw crate_se target_ne target_sw target_sws:25,background bgtile_nw target_se target_ses:26,background bgtile_sw target_sws:27,0,1,6,7,14,2,3,12,\n13,5,3,2,background bgtile_se crate_ne:28,background bgtile_ne crate_se target_ne:29,background bgtile_se target_se:30,background bgtile_ne target_sws:31,3,2,4,10,11,2,0,1,0,15,8,\n9,0,1,0,1,background bgtile_nw crate_nw:32,background bgtile_sw crate_sw:33,6,7,14,1,0,2,3,2,3,12,13,5,\n3,2,3,background bgtile_ne crate_ne:34,background bgtile_se crate_se wall_nw:35,10,11,2,3,2,0,1,0,1,0,15,8,9,0,\n1,6,7,14,1,0,1,0,2,3,2,3,2,3,12,13,5,4,10,\n11,2,3,2,3,2,0,1,0,1,0,1,0,15,8,7,14,1,0,\n1,0,1,0,2,3,2,3,2,3,2,3,12,11,2,3,2,3,2,\n3,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,\n",5,"1627894805419.4346"] ], [ - "Empty loop test", - ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n\nstartloop\n\nendloop\n\n\n[ > Player | > Crate ] -> [ < Player | < Crate ]\n\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\n", [3, 2, 2, 1, 2, 1, 1, 0, 3], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,background player:2,\n1,0,0,1,0,background crate:3,\nbackground crate target:4,1,0,0,1,1,\n4,background target:5,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n", "1", "1628787178284.0164"] + "Empty loop test", + ["title Simple Block Pushing Game\nauthor David Skinner\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[ > Player | Crate ] -> [ > Player | > Crate ]\n\n\nstartloop\n\nendloop\n\n\n[ > Player | > Crate ] -> [ < Player | < Crate ]\n\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\n",[3,2,2,1,2,1,1,0,3],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,background player:2,\n1,0,0,1,0,background crate:3,\nbackground crate target:4,1,0,0,1,1,\n4,background target:5,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n","1","1628787178284.0164"] ], [ - "Loop example with both late and regular rules.", - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\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\nCrate1\nOrange \n00000\n0...0\n0...0\n0...0\n00000\n\nCrate2\nred \n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n\nO = Target\n1 = crate1\n2 = crate2\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate1, crate2\n\n======\nRULES\n======\n\nstartloop\nright [ crate1 | ] -> [ | crate2 ]\n\nlate left [ crate2 | ] -> [ | crate1 ]\n\nright [ crate2 | ] -> [ | crate1 ]\n\nlate left [ crate1 | ] -> [ | crate2 ]\nendloop\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\np..1............\n\n\n", [3], "background crate2:0,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n", 0, "1628792234693.525"] + "Loop example with both late and regular rules.", + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\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\nCrate1\nOrange \n00000\n0...0\n0...0\n0...0\n00000\n\nCrate2\nred \n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n\nO = Target\n1 = crate1\n2 = crate2\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate1, crate2\n\n======\nRULES\n======\n\nstartloop\nright [ crate1 | ] -> [ | crate2 ]\n\nlate left [ crate2 | ] -> [ | crate1 ]\n\nright [ crate2 | ] -> [ | crate1 ]\n\nlate left [ crate1 | ] -> [ | crate2 ]\nendloop\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\np..1............\n\n\n",[3],"background crate2:0,background:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n",0,"1628792234693.525"] ], [ `"right [ Player ] -> [ up Player ]" gets compiled to down #755`, - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nflag\nDarkBlue\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\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\nO = flag\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nflag\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nright [ crate ] [ stationary flag ] -> [ ] [ action flag]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\no*\n*.\n\n", [4], "background flag:0,background crate:1,\nbackground:2,2,\n", 0, "1629150419859.7258"] + ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nflag\nDarkBlue\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\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\nO = flag\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nflag\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nright [ crate ] [ stationary flag ] -> [ ] [ action flag]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\no*\n*.\n\n",[4],"background flag:0,background crate:1,\nbackground:2,2,\n",0,"1629150419859.7258"] ], [ "in sound section can't mention an object called horizontali - cf #757", - ["title Simple Block Pushing Game\nauthor David Skinner\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\n00000\n0...0\n0...0\n0...0\n00000\n\nhorizontali\nblue\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\nhorizontali move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nhorizontali\n\n======\nRULES\n======\n\n\n[ > Player | Crate ] -> [ > Player | > Crate ] sfx0 sfx1\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\n", [0, 1, 2, 2], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,background target:2,background player:3,\nbackground crate:4,0,0,2,1,1,\n1,1,0,0,0,0,\n1,4,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n", 0, "1629314889294.314"] - ], - - [ - "VEXT EDIT", - ["title VEXT EDIT\nauthor JACK\n\nrun_rules_on_level_start\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\n#eeeeee\n\nPlayerTarget1mark\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1mark\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nPlayerTarget1\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0Mark\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nWall0 \n#884400 #f00\n00000\n00000\n00000\n00000\n00000\n\nwalll0 \nBrown #f00\n1....\n1....\n1....\n1....\n1....\n\nWallr0 \nBrown #f00\n....1\n....1\n....1\n....1\n....1\n\nWalld0 \nBrown #f00\n.....\n.....\n.....\n.....\n11111\n\nWallu0 \nBrown #f00\n11111\n.....\n.....\n.....\n.....\n\nBlack\nblack\n\nwall0ghost\ntransparent\n\nWall0Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1 \n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall2\n#884400 #00f\n00000\n00000\n00000\n00000\n00000\n\nwalll2\nBrown #00f\n1....\n1....\n1....\n1....\n1....\n\nWallr2 \nBrown #00f\n....1\n....1\n....1\n....1\n....1\n\nWalld2 \nBrown #00f\n.....\n.....\n.....\n.....\n11111\n\nWallu2 \nBrown #00f\n11111\n.....\n.....\n.....\n.....\n\nwalll1 \nBrown #ff0\n1....\n1....\n1....\n1....\n1....\n\nWallr1 \nBrown #ff0\n....1\n....1\n....1\n....1\n....1\n\nWalld1 \nBrown #ff0\n.....\n.....\n.....\n.....\n11111\n\nWallu1 \nBrown #ff0\n11111\n.....\n.....\n.....\n.....\n\nCrate1Mark\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate1\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate01\ntransparent\n\nCrate0\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate0mark\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\ncrate0ghost\ntransparent\n\nPlayer1Mark\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nPlayer1\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nDed1Mark\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nDed1\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nCrated0\n#f80 #f00\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu0\n#f80 #f00\n.010.\n.010.\n.....\n.....\n.....\n\nCratel0\n#f80 #f00\n.....\n00...\n11...\n00...\n.....\n\nCrater0\n#f80 #f00\n.....\n...00\n...11\n...00\n.....\n\nCrated1\n#f80 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu1\n#f80 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nCratel1\n#f80 #ff0\n.....\n00...\n11...\n00...\n.....\n\nCrater1\n#f80 #ff0\n.....\n...00\n...11\n...00\n.....\n\n\nPit1Mark\nblack #bbbb00 white\n.111.\n10001\n10001\n10001\n.111.\n\n\nPit1\nblack #bbbb00 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\npit0ghost\ntransparent\n\nPit0\nblack #bb0000 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\n\npit0u\nblack #bb0000\n10001\n.....\n.....\n.....\n.....\n\npit0d\nblack #bb0000\n.....\n.....\n.....\n.....\n10001\n\npit0l\nblack #bb0000\n1....\n0....\n0....\n0....\n1....\n\npit0r\nblack #bb0000\n....1\n....0\n....0\n....0\n....1\n\npit1u\nblack #bbbb00\n10001\n.....\n.....\n.....\n.....\n\npit1d\nblack #bbbb00\n.....\n.....\n.....\n.....\n10001\n\npit1l\nblack #bbbb00\n1....\n0....\n0....\n0....\n1....\n\npit1r\nblack #bbbb00\n....1\n....0\n....0\n....0\n....1\n\nrim0u\n#b00\n.000.\n.....\n.....\n.....\n.....\n\nrim0l\n#b00\n.....\n0....\n0....\n0....\n.....\n\nrim0r\n#b00\n.....\n....0\n....0\n....0\n.....\n\nrim0d\n#b00\n.....\n.....\n.....\n.....\n.000.\n\nrim1u\n#bb0\n.000.\n.....\n.....\n.....\n.....\n\nrim1l\n#bb0\n.....\n0....\n0....\n0....\n.....\n\nrim1r\n#bb0\n.....\n....0\n....0\n....0\n.....\n\nrim1d\n#bb0\n.....\n.....\n.....\n.....\n.000.\n\nblackul\nblack\n0....\n.....\n.....\n.....\n.....\n\nblackur\nblack\n....0\n.....\n.....\n.....\n.....\n\nblackdl\nblack\n.....\n.....\n.....\n.....\n0....\n\nblackdr\nblack\n.....\n.....\n.....\n.....\n....0\n\nfell0\n#884400 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1mark\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfelld1\n#884400 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nfellu1\n#884400 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nfelll1\n#884400 #ff0\n.....\n00...\n11...\n00...\n.....\n\nfellr1\n#884400 #ff0\n.....\n...00\n...11\n...00\n.....\n\nfell0ghost\ntransparent\n\nsupported\ntransparent\n\nfellcant1\ntransparent\n\ncant1\ntransparent\n\ncant0\ntransparent\n\nfellcant0\ntransparent\n\ndead0a\ndarkred\n.....\n.0.0.\n.....\n.0.0.\n.....\n\ncursor0a\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\ncursor0b\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\n\n\ncursor2a\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\ncursor2b\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\none2mark\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2mark\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2mark\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none2\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0mark\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0mark\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0mark\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\nfour0\n#f00\n.0.0.\n.0.0.\n..00.\n...0.\n...0.\n\nfive0\n#f00\n.000.\n.0...\n.00..\n...0.\n.00..\n\nsix0\n#f00\n..00.\n.0...\n.00..\n.0.0.\n..0..\n\nseven0\n#f00\n.000.\n...0.\n...0.\n..0..\n..0..\n\ninf0\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\ninf0mark\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\n\ndecrement\ntransparent\n\nholding\ntransparent\n\nactiveb\n#f00\n.....\n.0.0.\n.....\n.....\n.....\n\nactive\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\nactivefell\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\npickeda0\ntransparent\n\npickedb0\ntransparent\n\npickeda2\ntransparent\n\npickedb2\ntransparent\n\nchosepink\n#ff22ff\n\nchosecyan\n#22ffff\n\npink\n#ff88ff\n\ncyan\n#88ffff\n\nplacemark\ntransparent\n\nactivecurse0\ntransparent\n\npartb\ntransparent\n\npartc\ntransparent\n\ncursor0mark\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\nwall2ghost\ntransparent\n\ncant2\ntransparent\n\nshowhere\ntransparent\n\nshowthis\ntransparent\n=======\nLEGEND\n=======\n\n` = Background\n& = Wall2 and wall1 and wall0\n# = Wall1\nX = Wall0\n+ = Wall0 and Wall1\nP = Player1 and active\n\nn = crate0 and crate1 and crate01\no = Crate1\n- = crate1 and crater1\n: = crate1 and crateu1\nL = crate1 and crater1 and crateu1\n0 = pit1\n! = crate0\n? = pit0\n/ = pit0 and pit1\n\n@ = one0 and pit0\nz = player1 and pit0\n\n| = black\n\n' = partb\n\" = partc\n\n~ = cursor2a\n_ = cursor2b\n\n1 = one0\n2 = two0\n3 = three0\n4 = four0\n5 = five0\n6 = six0\n7 = seven0\n8 = inf0\n\n[ = one2\n{ = two2\n] = three2\n> = wall2\nactiveab = active or activeb or activefell\npartbc = partb or partc\n\ny = target0\nu = Target1 and pit1\nt = Target1\nq = playertarget1\nr = player1\nb = cursor0a\nc = cursor0a and activecurse0\nk = cursor0b and activecurse0\ncurse0a = cursor0a or dead0a\ncurse0 = curse0a or cursor0b\ncurse2 = cursor2a or cursor2b\ncursor0 = cursor0a or cursor0b\n \nplayer = curse2 or activecurse0 or active or dead0a or activefell\ndead0 = dead0a\nx1 = player1 or crate1 or wall1 or target1 or playertarget1 or pit1\nx0 = crate0 or wall0 or pit0 or fell0\nxx = x0 or x1 or curse0\nx0ghost = crate0ghost or wall0ghost or pit0ghost or fell0ghost\ncratex1 = cratel1 or crater1 or crated1 or crateu1\nwallx2 = walll2 or wallr2 or walld2 or wallu2\nwallx1 = walll1 or wallr1 or walld1 or wallu1\nwallx0 = walll0 or wallr0 or walld0 or wallu0\nfellx1 = felll1 or fellr1 or felld1 or fellu1\npit0x = pit0l or pit0r or pit0d or pit0u\npit1x = pit1l or pit1r or pit1d or pit1u\ncrateorfell1 = crate1 or fell1\nplayerormark1 = player1 or player1mark\n\nx0mark = one0mark or two0mark or three0mark or cursor0mark or wall0mark or target0mark or crate0mark or inf0mark\nx1mark = player1mark or crate1mark or pit1mark or wall1mark or fell1mark or ded1mark or crate1mark or Target1mark or PlayerTarget1mark\nx2mark = one2mark or two2mark or three2mark\nxmark = x0mark or x1mark or x2mark\nnumber0 = one0 or two0 or three0 or four0 or five0 or six0 or seven0 or inf0\nnumber2 = one2 or two2 or three2\npicked = pickeda0 or pickedb0 or pickeda2 or pickedb2\n\npickable = player1 or pit1 or crate1 or number0 or wall1 or number2 or fell1 or ded1 or target0 or PlayerTarget1 or Target1\npickable2 = curse0a or pickable or wall0 or crate0 \n\nblackcorner = blackul or blackdl or blackur or blackdr\nrim0x = rim0l or rim0d or rim0u or rim0r\nrim1x = rim1l or rim1d or rim1u or rim1r \n=======\nSOUNDS\n=======\n\nSFX0 51304502\n\nsfx1 22108304\n\nSFX2 84700307\n\nSFX3 78571302\n\nSFX4 25131906\n\nSFX5 13408901\n\nSFX6 50704903\n\nSFX7 24622504\n\nSFX8 29744504\n\nSFX9 13344503\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\npink, chosepink\ncyan, chosecyan\n\n\nPit1,\npit1r\npit1l\npit1d\npit1u\npit0, pit0ghost\npit0r\npit0l\npit0d\npit0u\nblackul\nblackur\nblackdr\nblackdl\nTarget1, PlayerTarget1, target0\n\nfell1, ded1\nfelll1\nfellr1\nfelld1\nfellu1\n\ndead0a, fell0, fell0ghost\nrim0l \nrim0d \nrim0u \nrim0r\n\nrim1l \nrim1d \nrim1u \nrim1r \nPlayer1, Wall1, Crate1, \npit1mark\nfell1mark, ded1mark, target0mark\nTarget1mark, PlayerTarget1mark\nplayer1mark, crate1mark\nwall1mark\none0mark, two0mark, three0mark, wall0mark, inf0mark\none2mark, two2mark, three2mark\ncursor0mark, crate0mark\nnumber0, number2\ncratel1, walll1, \ncrater1, wallr1, \ncrated1, walld1, \ncrateu1, wallu1, \ncursor0, wall0, crate0, wall0ghost, crate0ghost\n walll0, cratel0\n wallr0, crater0\n walld0, crated0\n wallu0, crateu0\n crate01\n wall2, wall2ghost\n wallr2\n wallu2\n walll2\n walld2\n cursor2a, cursor2b\n \nfellcant1\nfellcant0\ncant0\ncant1\ncant2\nsupported\nactivefell\nactive, activeb\nactivecurse0\nholding\ndecrement\npickeda0, pickeda2\npickedb0, pickedb2\nplacemark\npartb partc\nshowthis\nshowhere\nblack\n\n======\nRULES\n======\n\n(Deal with action-----------------------------------------------------------------------------)\n\n[action activecurse0 curse0] -> [activecurse0 action curse0]\n\n(pick up ready icon)\ndown[action curse0a no holding pickable|number0] -> [curse0a holding pickable|number0 pickeda0] SFX9\ndown[action cursor0b no holding pickable|number0] -> [cursor0b holding pickable|number0 pickedb0] SFX9\ndown[action cursor2a no holding pickable2|number2] -> [cursor2a holding pickable2|number2 pickeda2] SFX9\ndown[action cursor2b no holding pickable2|number2] -> [cursor2b holding pickable2|number2 pickedb2] SFX9\n(switch to new ready icon)\ndown [action curse0a pickable| number0 no pickeda0][pickeda0] -> [curse0a pickable | number0 pickeda0][] SFX9\ndown [action cursor0b pickable| number0 no pickedb0][pickedb0] -> [cursor0b pickable | number0 pickedb0][] SFX9\ndown [action cursor2a pickable2| number2 no pickeda2][pickeda2] -> [cursor2a pickable2 | number2 pickeda2][] SFX9\ndown [action cursor2b pickable2| number2 no pickedb2][pickedb2] -> [cursor2b pickable2 | number2 pickedb2][] SFX9\n\n(put down ready icon)\ndown [action curse0 holding pickable| picked] -> [curse0 pickable|] SFX8\ndown [action cursor2a holding pickable2| pickeda2] -> [cursor2a pickable2|] SFX8\ndown [action cursor2b holding pickable2| pickedb2] -> [cursor2b pickable2|] SFX8\n\n(show mark)\nlate [xmark] -> []\nlate [showthis] -> []\nlate [showhere] -> []\n\nlate down [ | number0 pickeda0][curse0a] -> [showthis | number0 pickeda0][curse0a showhere]\nlate down [ | number0 pickedb0][cursor0b] -> [showthis | number0 pickedb0][cursor0b showhere]\nlate down [ | number2 pickeda2][cursor2a] -> [showthis | number2 pickeda2][cursor2a showhere]\nlate down [ | number2 pickedb2][cursor2b] -> [showthis | number2 pickedb2][cursor2b showhere]\nlate [showthis player1][showhere] -> [showthis player1][showhere player1mark]\nlate [showthis pit1][showhere] -> [showthis pit1][showhere pit1mark]\nlate [showthis crate1][showhere] -> [showthis crate1][showhere crate1mark]\nlate [showthis wall1][showhere] -> [showthis wall1][showhere wall1mark]\nlate [showthis one0][showhere] -> [showthis one0][showhere one0mark]\nlate [showthis two0][showhere] -> [showthis two0][showhere two0mark]\nlate [showthis three0][showhere] -> [showthis three0][showhere three0mark]\nlate [showthis one2][showhere] -> [showthis one2][showhere one2mark]\nlate [showthis two2][showhere] -> [showthis two2][showhere two2mark]\nlate [showthis three2][showhere] -> [showthis three2][showhere three2mark]\nlate [showthis wall0][showhere] -> [showthis wall0][showhere wall0mark]\nlate [showthis fell1][showhere] -> [showthis fell1][showhere fell1mark]\nlate [showthis ded1][showhere] -> [showthis ded1][showhere ded1mark]\nlate [showthis target0][showhere] -> [showthis target0][showhere target0mark]\nlate [showthis crate0][showhere] -> [showthis crate0][showhere crate0mark]\nlate [showthis cursor0][showhere] -> [showthis cursor0][showhere cursor0mark]\nlate [showthis inf0][showhere] -> [showthis inf0][showhere inf0mark]\nlate [showthis Target1][showhere] -> [showthis target1][showhere Target1mark]\nlate [showthis PlayerTarget1][showhere] -> [showthis PlayerTarget1][showhere PlayerTarget1mark]\n(connect cratemark)\nup [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crateu1 | crate1 crated1]\ndown [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crated1 | crate1 crateu1]\nleft [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark cratel1 | crate1 crater1]\nright [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crater1 | crate1 cratel1]\nup [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crateu1 | fell1 felld1]\ndown [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crated1 | fell1 fellu1]\nleft [action curse0 holding fell1mark no xx no number0 no number2| fell1] -> [action curse0 holding fell1mark cratel1 | fell1 fellr1]\nright [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crater1 | fell1 felll1]\n\n(place mark)\n[placemark] -> []\n\ndown [action curse0a holding xmark no x1 no number0][pickeda0 number0] -> [curse0a holding xmark placemark][pickeda0 decrement number0] SFX7\ndown [action cursor0b holding xmark no x1 no number0][pickedb0 number0] -> [cursor0b holding xmark placemark][pickedb0 decrement number0] SFX7\n\ndown [action cursor2a holding xmark no xx no number0 no number2][pickeda2 number2] -> [cursor2a holding xmark placemark][pickeda2 decrement number2] SFX7\ndown [action cursor2b holding xmark no xx no number0 no number2][pickedb2 number2] -> [cursor2b holding xmark placemark][pickedb2 decrement number2] SFX7\n\n\n\n[placemark player1mark] -> [placemark player1 player1mark]\n[placemark pit1mark] -> [placemark pit1 pit1mark]\n[placemark crate1mark] -> [placemark crate1 crate1mark]\n[placemark wall1mark] -> [placemark wall1 wall1mark]\n[placemark one0mark] -> [placemark one0 one0mark]\n[placemark two0mark] -> [placemark two0 two0mark]\n[placemark three0mark] -> [placemark three0 three0mark]\n[placemark one2mark] -> [placemark one2 one2mark]\n[placemark two2mark] -> [placemark two2 two2mark]\n[placemark three2mark] -> [placemark three2 three2mark]\n[placemark wall0mark] -> [placemark wall0 wall0mark]\n[placemark fell1mark] -> [placemark fell1 fell1mark]\n[placemark ded1mark] -> [placemark ded1 ded1mark]\n[placemark target0mark] -> [placemark target0 target0mark]\n[placemark crate0mark] -> [placemark crate0 crate0mark]\n[placemark Target1mark] -> [placemark target1 Target1mark]\n[placemark inf0mark] -> [placemark inf0 inf0mark]\n[placemark PlayerTarget1mark] -> [placemark playertarget1 PlayerTarget1mark]\ndown [placemark cursor0mark][curse0a|no one2] -> [ cursor0b cursor0mark][curse0a|]\n[placemark cursor0mark] -> [placemark cursor0a cursor0mark]\n\n(decrement number of placed item)\ndown [xmark holding cursor2a][pickable2|one2 decrement pickeda2] -> [xmark holding cursor2a][|one2 decrement pickeda2]\ndown [xmark holding cursor2b][pickable2|one2 decrement pickedb2] -> [xmark holding cursor2b][|one2 decrement pickedb2]\ndown [xmark holding curse0a][pickable|one0 decrement pickeda0] -> [xmark holding curse0a][|one0 decrement pickeda0]\ndown [xmark holding cursor0b][pickable|one0 decrement pickedb0] -> [xmark holding cursor0b][|one0 decrement pickedb0]\ndown [xmark holding cursor2a][|one2 decrement pickeda2] -> [cursor2a][|]\ndown [xmark holding cursor2b][|one2 decrement pickedb2] -> [cursor2b][|]\ndown [xmark holding cursor0a][|one0 decrement pickeda0] -> [cursor0a][|]\ndown [xmark holding cursor0b][|one0 decrement pickedb0] -> [cursor0b][|]\n[one0 decrement] -> []\n[two0 decrement] -> [one0]\n[three0 decrement] -> [two0]\n[four0 decrement] -> [three0]\n[five0 decrement] -> [four0]\n[six0 decrement] -> [five0]\n[seven0 decrement] -> [six0]\n[one2 decrement] -> []\n[two2 decrement] -> [one2]\n[three2 decrement] -> [two2]\n\n\n\n(player -> cursor)\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [player1 action active no wall0ghost no crate0ghost][partbc] -> [cursor0a player1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [ded1 action activefell no wall0ghost no crate0ghost][partbc] -> [cursor0a ded1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\n\n(cursor holding -> player)\ndown [action curse0a activecurse0 player1 holding xmark][| number0 pickeda0] -> [active player1][ | number0] SFX6\ndown [action curse0a activecurse0 ded1 holding xmark][| number0 pickeda0] -> [activefell ded1][ | number0] SFX6\ndown [action cursor0b activecurse0 player1 holding xmark][| number0 pickedb0] -> [active player1][ | number0] SFX6\ndown [action cursor0b activecurse0 ded1 holding xmark][| number0 pickedb0] -> [activefell ded1][ | number0] SFX6\n(empty cursor -> player)\n[action curse0 player1 activecurse0 no holding] -> [active player1] SFX6\n[action curse0 ded1 activecurse0 no holding] -> [activefell ded1] SFX6\n(red -> blue)\n[action cursor0a activecurse0 holding xmark][partc][pickeda0] -> [cursor0a cursor2a][partc][] SFX5\n[action cursor0a activecurse0 ][partc] -> [cursor0a cursor2a][partc] SFX5\n[action cursor0b activecurse0 holding xmark][partc][pickedb0] -> [cursor0b cursor2b][partc][] SFX5\n[action cursor0b activecurse0 ][partc] -> [cursor0b cursor2b][partc] SFX5\n(blue holding -> red)\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\nrandom down [action curse2 curse0 holding xmark][| number2 pickeda2] -> [activecurse0 cursor0a][ | number2] SFX6\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\n(empty blue -> red)\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\nrandom [action curse2 curse0 no holding] -> [activecurse0 cursor0a] SFX6\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\n\n\n[action player] -> SFX0\n[action curse0] -> SFX0\n\n(Aesthetic----------------------------------------------------------------------------------------)\n\n\n\n(ghosts)\n[player1 active][pit0] -> [player1 active][pit0ghost]\n[pit0ghost][cursor0] -> [pit0][cursor0]\n[player1 active][wall0] -> [player1 active][wall0ghost]\n[wall0ghost][cursor0] -> [wall0][cursor0]\n[player1 active][crate0] -> [player1 active][crate0ghost]\n[crate0ghost][cursor0] -> [crate0][cursor0]\n[player1 active][fell0] -> [player1 active][fell0ghost]\n[fell0ghost][cursor0] -> [fell0][cursor0]\n[curse0 activecurse0][wall2] -> [curse0 activecurse0][wall2ghost]\n[wall2ghost][curse2] -> [wall2][curse2]\n\n\n(wall boundaries)\n[wallx2] -> []\n[wallx1] -> []\n[wallx0] -> []\nup [wall2 | no wall2] -> [wall2 wallu2 | ]\ndown [wall2 | no wall2] -> [wall2 walld2 | ]\nleft [wall2 | no wall2] -> [wall2 walll2 | ]\nright [wall2 | no wall2] -> [wall2 wallr2 | ]\nup [wall1 | no wall1] -> [wall1 wallu1 | ]\ndown [wall1 | no wall1] -> [wall1 walld1 | ]\nleft [wall1 | no wall1] -> [wall1 walll1 | ]\nright [wall1 | no wall1] -> [wall1 wallr1 | ]\nup [wall0 | no wall0] -> [wall0 wallu0 | ]\ndown [wall0 | no wall0] -> [wall0 walld0 | ]\nleft [wall0 | no wall0] -> [wall0 walll0 | ]\nright [wall0 | no wall0] -> [wall0 wallr0 | ]\n\n(crate connectors)\nup [crateu0|] -> [crateu0 | crated0]\nright [crater0|] -> [crater0 | cratel0]\nup [crateu1|] -> [crateu1 | crated1]\nright [crater1|] -> [crater1 | cratel1]\n(pit connectors)\n[blackcorner] -> []\n[pit0x] -> [] \n[pit1x] -> [] \nup [pit1 | pit1] -> [pit1u pit1|pit1d pit1]\nright [pit1 | pit1] -> [pit1r pit1|pit1l pit1]\nup [pit0 | pit0] -> [pit0u pit0|pit0d pit0]\nright [pit0 | pit0] -> [pit0r pit0|pit0l pit0]\n[pit1u pit1r] -> [pit1u pit1r blackur]\n[pit1u pit1l] -> [pit1u pit1l blackul]\n[pit1d pit1r] -> [pit1d pit1r blackdr]\n[pit1d pit1l] -> [pit1d pit1l blackdl]\n[pit0u pit0r] -> [pit0u pit0r blackur]\n[pit0u pit0l] -> [pit0u pit0l blackul]\n[pit0d pit0r] -> [pit0d pit0r blackdr]\n[pit0d pit0l] -> [pit0d pit0l blackdl]\n[rim1x] -> []\n[rim0x] -> []\nup[pit0|no pit0] -> [pit0 rim0u|]\ndown[pit0|no pit0] -> [pit0 rim0d|]\nleft[pit0|no pit0] -> [pit0 rim0l|]\nright[pit0|no pit0] -> [pit0 rim0r|]\nup[pit1|no pit1] -> [pit1 rim1u|]\ndown[pit1|no pit1] -> [pit1 rim1d|]\nleft[pit1|no pit1] -> [pit1 rim1l|]\nright[pit1|no pit1] -> [pit1 rim1r|]\nlate [pink] -> []\nlate [cyan] -> []\nlate [chosepink] -> []\nlate [chosecyan] -> []\nlate down [pickable |number0] -> [pickable pink | number0 pink]\nlate down [pickable2 |number2] -> [pickable2 cyan | number2 cyan]\nlate up [pink picked|pink] -> [chosepink picked|chosepink ]\nlate up [cyan picked|cyan ] -> [chosecyan picked|chosecyan ]\n\n(Movement----------------------------------------------------------------------------------------)\n\n(move attached items)\n[moving activecurse0 curse0] -> [moving activecurse0 moving curse0]\n[moving active player1] -> [moving active moving player1]\n[moving activefell ded1] -> [moving activefell moving ded1]\n[moving curse0 holding] -> [moving curse0 moving holding]\n[moving curse2 holding] -> [moving curse2 moving holding]\n\n(reset and propogate cant)\n[cant0] -> []\n[cant1] -> []\n[cant2] -> []\n[fellcant0] -> []\n[fellcant1] -> []\n\n[black no cant0 no cant1 no cant2] -> [black cant0 cant1 cant2]\n[wall2 no cant2] -> [wall2 cant2]\n[wall1 no cant1] -> [wall1 cant1]\n[wall0 no cant0] -> [wall0 cant0]\n[number0] -> [number0 cant1]\n[number2] -> [number2 cant1]\n[no pit1 no fellcant1] -> [fellcant1]\n[no pit0 no fellcant0] -> [fellcant0]\n\n[> ded1][fell1|fellcant1] -> [> ded1][fell1 fellcant1 | fellcant1]\n+ [> ded1][ded1|fellcant1] -> [> ded1][ded1 fellcant1 | fellcant1]\n+ up[fellu1|fellcant1] -> [fellu1 fellcant1 | fellcant1]\n+ left[felll1|fellcant1] -> [felll1 fellcant1 | fellcant1]\n+ down[felld1|fellcant1] -> [felld1 fellcant1 | fellcant1]\n+ right[fellr1|fellcant1] -> [fellr1 fellcant1 | fellcant1]\n\n+ [> player1][crate1|cant1] -> [> player1][crate1 cant1 | cant1]\n+ [> player1][player1|cant1] -> [> player1][player1 cant1 | cant1]\n+ up[crateu1|cant1] -> [crateu1 cant1 | cant1]\n+ left[cratel1|cant1] -> [cratel1 cant1 | cant1]\n+ down[crated1|cant1] -> [crated1 cant1 | cant1]\n+ right[crater1|cant1] -> [crater1 cant1 | cant1]\n+ [crate1 crate0 cant0] -> [crate1 crate0 cant0 cant1]\n+ [crate1 crate0 cant1] -> [crate1 crate0 cant0 cant1]\n+ [> dead0][dead0|fellcant0] -> [> dead0][dead0 fellcant0 | fellcant0]\n+ [> cursor0][cursor0|cant0] -> [> cursor0][cursor0 cant0 | cant0]\n+ [> cursor0][crate0 | number0] -> [> cursor0][crate0 cant0| number0]\n+ [> cursor0][crate0|cant0] -> [> cursor0][crate0 cant0 | cant0]\n+ up[crateu0|cant0] -> [crateu0 cant0 | cant0]\n+ left[cratel0|cant0] -> [cratel0 cant0 | cant0]\n+ down[crated0|cant0] -> [crated0 cant0 | cant0]\n+ right[crater0|cant0] -> [crater0 cant0 | cant0]\n\n[> curse2 | wall2] -> [stationary curse2 | wall2]\n[> curse2 | black] -> [stationary curse2 | black]\n[cursor0 cant0] -> [stationary cursor0 cant0]\n[player1 cant1] -> [stationary player1 cant1]\n[ded1 fellcant1] -> [stationary ded1 fellcant1]\n[dead0 fellcant0] -> [stationary dead0 fellcant0]\n\n\n(propagate movement)\n\n[ > Ded1 | Fell1 no fellcant1] -> [ > Ded1 | > Fell1 ]\n\n[ > Cursor0 | Crate0 ] -> [ > Cursor0 | > Crate0 ]\n+ [ > Cursor0 | Cursor0 ] -> [ > Cursor0 | > Cursor0 ]\n+ [ > Crate0 | Crate0 ] -> [ > Crate0 | > Crate0 ]\n\n+ [ > Player1 | Crate1 ] -> [ > Player1 | > Crate1 ]\n+ [ > Player1 | Player1] -> [ > Player1 | > Player1 ]\n+ [ > Crate1 | Player1 ] -> [ > Crate1 | > Player1 ]\n+ [> crate1|crate1] -> [> crate1 | > crate1]\n+ up[moving crate1 crateu1|crate1] -> [moving crate1 crateu1 | moving crate1]\n+ left[moving crate1 cratel1|crate1] -> [moving crate1 cratel1 | moving crate1]\n+ down[moving crate1 crated1|crate1] -> [moving crate1 crated1 | moving crate1]\n+ right[moving crate1 crater1|crate1] -> [moving crate1 crater1 | moving crate1]\n \n\n[> fell1|fell1] -> [> fell1 | > fell1]\n+ up[moving fell1 fellu1|fell1] -> [moving fell1 fellu1 | moving fell1]\n+ left[moving fell1 felll1|fell1] -> [moving fell1 felll1 | moving fell1]\n+ down[moving fell1 felld1|fell1] -> [moving fell1 felld1 | moving fell1]\n+ right[moving fell1 fellr1|fell1] -> [moving fell1 fellr1 | moving fell1]\n\n[moving crate1 cratex1] -> [moving crate1 moving cratex1]\n[moving fell1 fellx1] -> [moving fell1 moving fellx1]\n[moving crate1 crate0ghost] -> [moving crate1 moving crate0ghost]\n\n[active stationary player1] -> [stationary active stationary player1]\n[activecurse0 stationary curse0] -> [stationary activecurse0 stationary curse0]\n[activefell stationary ded1] -> [stationary activefell stationary ded1]\n[stationary cursor0 activecurse0 holding] -> [stationary cursor0 activecurse0 stationary holding]\n[stationary curse2 holding] -> [stationary curse2 stationary holding]\n\n\n(falling)\nlate [supported] -> []\n\nlate [crate1 ded1] -> [crate1 supported ded1]\nlate [crate1 no pit1] -> [crate1 supported]\nlate [crate1 fell1] -> [crate1 fell1 supported]\n\n\nlate up[crateu1|supported] -> [crateu1 supported | supported]\n+ late left[cratel1|supported] -> [cratel1 supported | supported]\n+ late down[crated1|supported] -> [crated1 supported | supported]\n+ late right[crater1|supported] -> [crater1 supported | supported]\n\n\nlate [cursor0 pit0 no fell0] -> [pit0 dead0a]SFX3\nlate [player1 active pit1 no fell1 no ded1] -> [pit1 ded1 activefell]SFX3\nlate [player1 pit1 no fell1 no ded1] -> [pit1 ded1 ]SFX3\nlate [crate0 pit0 no supported] -> [pit0 fell0]SFX3\nlate [crate1 pit1 no supported] -> [pit1 fell1] SFX3\n\n\n\nlate [crateu1 no crate1 fell1] -> [fellu1 fell1]\nlate [cratel1 no crate1 fell1] -> [felll1 fell1]\nlate [crater1 no crate1 fell1] -> [fellr1 fell1]\nlate [crated1 no crate1 fell1] -> [felld1 fell1]\n\nlate [crateu1 no crate1] -> []\nlate [cratel1 no crate1] -> []\nlate [crater1 no crate1] -> []\nlate [crated1 no crate1] -> []\nlate up [crateu1 |no crate1] -> [|]\nlate left [cratel1 |no crate1] -> [|]\nlate right [crater1 |no crate1] -> [|]\nlate down [crated1 |no crate1] -> [|]\nlate [player1 ded1] -> [player1 ded1] SFX0\nlate [player1 ded1] -> cancel \n\n[moving crate0] -> SFX2\n[moving crate1] -> SFX2\n\n==============\nWINCONDITIONS\n==============\n\n\nAll target0 on crate0\nAll Target1 on Crateorfell1\nAll PlayerTarget1 on Playerormark1\nno Cursor0 on target1\nno cursor0 on PlayerTarget1\n\n=======\nLEVELS\n=======\n\nmessage Book 1: BASE\n\nmessage Page 1.1: GOAL\n\n#######\n#`````#\n#`p`t`#\n#`````#\n#`o`q`#\n#`````#\n#######\n\nmessage Page 1.2: TOOL\n\n#######\n#`t`o`#\n#t`-:`#\n#``tlo#\n#p````#\n#######\n\nmessage Page 1.3: HOLE\n\n########\n##``0`##\n#```0``#\n#``o0`t#\n#po:0``#\n#``:0`t#\n#```0``#\n##``0`##\n########\n\nmessage Page 1.4: FALL\n\n########\n#00u``0#\n#00po`0#\n#`000`0#\n#`00```#\n#`000``#\n#`000``#\n########\n\nmessage Book 2: EDIT\n\nmessage Page 2.1: MINI\n\n||||||||||\n|```````'|\n|`######`|\n|`#````#`|\n|`#``t`#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 2.2: FORM\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 2.3: PLUG\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#ro`o`#`|\n|`#####`#`|\n|`###`o`#`|\n|`#``oLo#`|\n|`#````##`|\n|`#`q####`|\n|`#######`|\n|`````````|\n|``c`0````|\n|````8````|\n|`````````|\n|||||||||||\n\nmessage Page 2.4: TRAP\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#``````#`|\n|`#``t```#`|\n|`#`tqt``#`|\n|`#``t```#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````16````|\n|``````````|\n||||||||||||\n\nmessage Book 3: DUAL\n\nmessage Page 3.1: CO-OP\n\n#######\n####qq#\n#po000#\n#`o000#\n###o``#\n###r`'#\n#######\n\nmessage Page 3.2: REST\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#`r00q#`|\n|`#######`|\n|`````````|\n|``c`o````|\n|````2````|\n|`````````|\n|||||||||||\nmessage Page 3.3: SAIL\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#0000q#`|\n|`#00000#`|\n|`#00000#`|\n|`#```00#`|\n|`#```00#`|\n|`#######`|\n|`````````|\n|``c`ro```|\n|````23```|\n|`````````|\n|||||||||||\n\nmessage Page 3.4: TWIN\n\n|||||||||||||||||||||\n|`````````+````````'|\n|`#######`+`#######`|\n|`#`````#`+`#`````#`|\n|`#```q`#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`q```#`|\n|`#`````#`+`#`````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````6````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Book 4: WHAT\n\nmessage Page 4.1: GUIS\n\n\n#######\n#q#``'#\n#``8#`#\n#`#p#`#\n#`#o#`#\n#`#1``#\n#######\n\nmessage Page 4.2: IDEA\n\n||||||||||\n|```````'|\n|`######`|\n|`#```t#`|\n|`#```t#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```31```|\n|````````|\n||||||||||\n\nmessage Page 4.3: FILL\n\n\n######\n#0poq#\n#0`70#\n#'000#\n#0000#\n######\n\nmessage Page 4.4: A LOT\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|``````'|\n|`c3o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Book 5: UHHH\n\nmessage Page 5.1: WALL\n\n||||||||||\n|```````'|\n|`######`|\n|`#t`#`#`|\n|`#````#`|\n|`##`o`#`|\n|x+xxxx+x|\n|`#````#`|\n|`#````#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 5.2: SAFE\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#xxxxx#`|\n|`#x```x#`|\n|`#x`t`x#`|\n|`#x```x#`|\n|`#xxxxx#`|\n|`#######`|\n|`````````|\n|`c`o1r```|\n|```111```|\n|`````````|\n|||||||||||\n\nmessage Page 5.3: LOCK\n\n|||||||||||||\n|o```'`xxxcx|\n|1``x```qx!x|\n|`1!````qx`x|\n|``1?x`xxx?x|\n|r``1````!`x|\n|````2`xxxxx|\n|||||||||||||\n\n\n\nmessage Page 5.4: POST\n\n+++++++++\n+p#```#q+\n+`#``'#3+\n+`#`1`#`+\n+`#`2`#`+\n+`#```#`+\n+`#```#`+\n+++++++++\nmessage Book 6: BLUE\n\nmessage Page 6.1: META\n\n||||||||||||\n|++++++++++|\n|+````\"```+|\n|+`######`+|\n|+`#````#`+|\n|+`#``t`#`+|\n|+`#````#`+|\n|+`######`+|\n|+````````+|\n|+```ro```+|\n|+````````+|\n|+````````+|\n|++++++++++|\n|``````````|\n|``~`1b````|\n|````{[````|\n|``````````|\n||||||||||||\n\nmessage Page 6.2: WILD\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`#######`+|\n|+`#0000q#`+|\n|+`#00000#`+|\n|+`#`0000#`+|\n|+`#`0000#`+|\n|+`#```00#`+|\n|+`#######`+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\nmessage Page 6.3: UH OH\n\n|||||||||||\n|+++++++++|\n|+``````\"+|\n|+`+++++`+|\n|+`+```+`+|\n|+`+`t`+`+|\n|+`+```+`+|\n|+`+```+`+|\n|+`+++++`+|\n|+```````+|\n|+```o```+|\n|+```````+|\n|+```````+|\n|+++++++++|\n|`````````|\n|`````````|\n|`~`1br```|\n|```][[```|\n|`````````|\n|||||||||||\n\nmessage Page 6.4: VARY\n\n|||||||||||||||||||||||\n|++++++++++&++++++++++|\n|+``````\"`x&x````````+|\n|+`######`x&x`######`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`#`qt`#`x&x`#`tq`#`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`######`x&x`######`+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|++++++++++&++++++++++|\n|``````````&``````````|\n|`~`r1ob```&`_`r1ob```|\n|```[{[[```&```[[[[```|\n|``````````&``````````|\n|||||||||||||||||||||||\n\nmessage Book 7: ?!?!\n\nmessage Page 7.1: EACH\n\n+++++++\n+````'+\n+`###`+\n+`#q#`+\n+`#0#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`###`+\n+`````+\n+``c``+\n+`r0o`+\n+``4``+\n+`````+\n+++++++\n\nmessage Page 7.2: HOLD\n\n&&&&&&&&&\n&`8```+`&\n&`{po`+`&\n&`\"```+t&\n&&&&&&&&&\n\nmessage Page 7.3: TRIP\n\n&&&&&&&\n&```\"`&\n&`o`!`&\n&`````&\n&+++++&\n&`r2b`&\n&`[[{~&\n&y```t&\n&&&&&&&\n\nmessage Page 7.4: PLAN\n\n\n|||||||||\n|```t```|\n|```````|\n|+++++++|\n|```````|\n|```````|\n|>>>>>>>|\n|```````|\n|```````|\n|+++++++|\n|```~```|\n|[[`2\"11|\n|[[`[`[[|\n|&&`&&&&|\n|&&bor&&|\n|||||||||\n\n\n\n\n\nmessage Book 8: (RE)STAR(TS)\n\n\nmessage Page 8.1: (IN)FORM(ED)\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 8.2: (EN)TWIN(ED)\n\n|||||||||||||||||||||\n|`````````+`````````|\n|`#######`+`#######`|\n|`#````q#`+`#`````#`|\n|`#`````#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`````#`|\n|`#`````#`+`#q````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````5````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Page 8.3: (ZE)ALOT(RY)\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|```````|\n|`c2o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Page 8.4: (BE)WILD(ER)\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`+++++++`+|\n|+`+0000q+`+|\n|+`+00000+`+|\n|+`+00000+`+|\n|+`+`0000+`+|\n|+`+```00+`+|\n|+`+++++++`+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", [0, 3, 0, 3, 2, 1, 1, 2, 2, 3, 0, 1, 0, 3, 3, 1, 2, 2, 2, 2, 3, 0, 0, 1, 0, 0, 3, 3, 0, 2, 2, 0, 3, 1, 0, 2, 2, 2, 1, 1, 1, 2], "background cant1 fellcant0 fellcant1 wall1:0,0,background cant1 fellcant0 fellcant1 wall1 wallr1:1,1,1,1,1,0,\n0,0,background cant1 fellcant0 fellcant1 wall1 walld1 wallr1:2,background fellcant0 fellcant1:3,3,3,3,3,\nbackground cant1 fellcant0 fellcant1 wall1 wallr1 wallu1:4,0,background cant1 fellcant0 fellcant1 wall1 walld1:5,3,3,3,3,3,\n3,3,background cant1 fellcant0 fellcant1 wall1 wallu1:6,5,3,3,3,3,\n3,3,3,6,5,background fellcant0 pit1 pit1d rim1l rim1r rim1u:7,background fellcant0 pit1 pit1d pit1u rim1l rim1r:8,8,\n8,8,activefell background ded1 fellcant0 pit1 pit1d pit1u rim1l rim1r:9,background fell1 fellcant0 pit1 pit1u rim1d rim1l rim1r:10,6,5,3,background crate1 crated1 fellcant0 fellcant1 supported:11,\nbackground crate1 crated1 crateu1 fellcant0 fellcant1 supported:12,background crate1 crateu1 fellcant0 fellcant1 supported:13,3,3,3,6,0,background cant1 fellcant0 fellcant1 wall1 walld1 walll1:14,\n3,background fellcant0 fellcant1 target1:15,3,15,3,background cant1 fellcant0 fellcant1 wall1 walll1 wallu1:16,0,0,\n0,background cant1 fellcant0 fellcant1 wall1 walll1:17,17,17,17,17,0,0,\n", 6, "1642084928380.6565"] - ], - [ - "VEXT EDIT B", - ["title VEXT EDIT\nauthor JACK\n\nrun_rules_on_level_start\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\n#eeeeee\n\nPlayerTarget1mark\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1mark\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nPlayerTarget1\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0Mark\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nWall0 \n#884400 #f00\n00000\n00000\n00000\n00000\n00000\n\nwalll0 \nBrown #f00\n1....\n1....\n1....\n1....\n1....\n\nWallr0 \nBrown #f00\n....1\n....1\n....1\n....1\n....1\n\nWalld0 \nBrown #f00\n.....\n.....\n.....\n.....\n11111\n\nWallu0 \nBrown #f00\n11111\n.....\n.....\n.....\n.....\n\nBlack\nblack\n\nwall0ghost\ntransparent\n\nWall0Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1 \n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall2\n#884400 #00f\n00000\n00000\n00000\n00000\n00000\n\nwalll2\nBrown #00f\n1....\n1....\n1....\n1....\n1....\n\nWallr2 \nBrown #00f\n....1\n....1\n....1\n....1\n....1\n\nWalld2 \nBrown #00f\n.....\n.....\n.....\n.....\n11111\n\nWallu2 \nBrown #00f\n11111\n.....\n.....\n.....\n.....\n\nwalll1 \nBrown #ff0\n1....\n1....\n1....\n1....\n1....\n\nWallr1 \nBrown #ff0\n....1\n....1\n....1\n....1\n....1\n\nWalld1 \nBrown #ff0\n.....\n.....\n.....\n.....\n11111\n\nWallu1 \nBrown #ff0\n11111\n.....\n.....\n.....\n.....\n\nCrate1Mark\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate1\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate01\ntransparent\n\nCrate0\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate0mark\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\ncrate0ghost\ntransparent\n\nPlayer1Mark\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nPlayer1\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nDed1Mark\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nDed1\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nCrated0\n#f80 #f00\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu0\n#f80 #f00\n.010.\n.010.\n.....\n.....\n.....\n\nCratel0\n#f80 #f00\n.....\n00...\n11...\n00...\n.....\n\nCrater0\n#f80 #f00\n.....\n...00\n...11\n...00\n.....\n\nCrated1\n#f80 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu1\n#f80 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nCratel1\n#f80 #ff0\n.....\n00...\n11...\n00...\n.....\n\nCrater1\n#f80 #ff0\n.....\n...00\n...11\n...00\n.....\n\n\nPit1Mark\nblack #bbbb00 white\n.111.\n10001\n10001\n10001\n.111.\n\n\nPit1\nblack #bbbb00 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\npit0ghost\ntransparent\n\nPit0\nblack #bb0000 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\n\npit0u\nblack #bb0000\n10001\n.....\n.....\n.....\n.....\n\npit0d\nblack #bb0000\n.....\n.....\n.....\n.....\n10001\n\npit0l\nblack #bb0000\n1....\n0....\n0....\n0....\n1....\n\npit0r\nblack #bb0000\n....1\n....0\n....0\n....0\n....1\n\npit1u\nblack #bbbb00\n10001\n.....\n.....\n.....\n.....\n\npit1d\nblack #bbbb00\n.....\n.....\n.....\n.....\n10001\n\npit1l\nblack #bbbb00\n1....\n0....\n0....\n0....\n1....\n\npit1r\nblack #bbbb00\n....1\n....0\n....0\n....0\n....1\n\nrim0u\n#b00\n.000.\n.....\n.....\n.....\n.....\n\nrim0l\n#b00\n.....\n0....\n0....\n0....\n.....\n\nrim0r\n#b00\n.....\n....0\n....0\n....0\n.....\n\nrim0d\n#b00\n.....\n.....\n.....\n.....\n.000.\n\nrim1u\n#bb0\n.000.\n.....\n.....\n.....\n.....\n\nrim1l\n#bb0\n.....\n0....\n0....\n0....\n.....\n\nrim1r\n#bb0\n.....\n....0\n....0\n....0\n.....\n\nrim1d\n#bb0\n.....\n.....\n.....\n.....\n.000.\n\nblackul\nblack\n0....\n.....\n.....\n.....\n.....\n\nblackur\nblack\n....0\n.....\n.....\n.....\n.....\n\nblackdl\nblack\n.....\n.....\n.....\n.....\n0....\n\nblackdr\nblack\n.....\n.....\n.....\n.....\n....0\n\nfell0\n#884400 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1mark\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfelld1\n#884400 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nfellu1\n#884400 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nfelll1\n#884400 #ff0\n.....\n00...\n11...\n00...\n.....\n\nfellr1\n#884400 #ff0\n.....\n...00\n...11\n...00\n.....\n\nfell0ghost\ntransparent\n\nsupported\ntransparent\n\nfellcant1\ntransparent\n\ncant1\ntransparent\n\ncant0\ntransparent\n\nfellcant0\ntransparent\n\ndead0a\ndarkred\n.....\n.0.0.\n.....\n.0.0.\n.....\n\ncursor0a\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\ncursor0b\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\n\n\ncursor2a\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\ncursor2b\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\none2mark\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2mark\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2mark\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none2\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0mark\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0mark\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0mark\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\nfour0\n#f00\n.0.0.\n.0.0.\n..00.\n...0.\n...0.\n\nfive0\n#f00\n.000.\n.0...\n.00..\n...0.\n.00..\n\nsix0\n#f00\n..00.\n.0...\n.00..\n.0.0.\n..0..\n\nseven0\n#f00\n.000.\n...0.\n...0.\n..0..\n..0..\n\ninf0\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\ninf0mark\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\n\ndecrement\ntransparent\n\nholding\ntransparent\n\nactiveb\n#f00\n.....\n.0.0.\n.....\n.....\n.....\n\nactive\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\nactivefell\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\npickeda0\ntransparent\n\npickedb0\ntransparent\n\npickeda2\ntransparent\n\npickedb2\ntransparent\n\nchosepink\n#ff22ff\n\nchosecyan\n#22ffff\n\npink\n#ff88ff\n\ncyan\n#88ffff\n\nplacemark\ntransparent\n\nactivecurse0\ntransparent\n\npartb\ntransparent\n\npartc\ntransparent\n\ncursor0mark\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\nwall2ghost\ntransparent\n\ncant2\ntransparent\n\nshowhere\ntransparent\n\nshowthis\ntransparent\n=======\nLEGEND\n=======\n\n` = Background\n& = Wall2 and wall1 and wall0\n# = Wall1\nX = Wall0\n+ = Wall0 and Wall1\nP = Player1 and active\n\nn = crate0 and crate1 and crate01\no = Crate1\n- = crate1 and crater1\n: = crate1 and crateu1\nL = crate1 and crater1 and crateu1\n0 = pit1\n! = crate0\n? = pit0\n/ = pit0 and pit1\n\n@ = one0 and pit0\nz = player1 and pit0\n\n| = black\n\n' = partb\n\" = partc\n\n~ = cursor2a\n_ = cursor2b\n\n1 = one0\n2 = two0\n3 = three0\n4 = four0\n5 = five0\n6 = six0\n7 = seven0\n8 = inf0\n\n[ = one2\n{ = two2\n] = three2\n> = wall2\nactiveab = active or activeb or activefell\npartbc = partb or partc\n\ny = target0\nu = Target1 and pit1\nt = Target1\nq = playertarget1\nr = player1\nb = cursor0a\nc = cursor0a and activecurse0\nk = cursor0b and activecurse0\ncurse0a = cursor0a or dead0a\ncurse0 = curse0a or cursor0b\ncurse2 = cursor2a or cursor2b\ncursor0 = cursor0a or cursor0b\n \nplayer = curse2 or activecurse0 or active or dead0a or activefell\ndead0 = dead0a\nx1 = player1 or crate1 or wall1 or target1 or playertarget1 or pit1\nx0 = crate0 or wall0 or pit0 or fell0\nxx = x0 or x1 or curse0\nx0ghost = crate0ghost or wall0ghost or pit0ghost or fell0ghost\ncratex1 = cratel1 or crater1 or crated1 or crateu1\nwallx2 = walll2 or wallr2 or walld2 or wallu2\nwallx1 = walll1 or wallr1 or walld1 or wallu1\nwallx0 = walll0 or wallr0 or walld0 or wallu0\nfellx1 = felll1 or fellr1 or felld1 or fellu1\npit0x = pit0l or pit0r or pit0d or pit0u\npit1x = pit1l or pit1r or pit1d or pit1u\ncrateorfell1 = crate1 or fell1\nplayerormark1 = player1 or player1mark\n\nx0mark = one0mark or two0mark or three0mark or cursor0mark or wall0mark or target0mark or crate0mark or inf0mark\nx1mark = player1mark or crate1mark or pit1mark or wall1mark or fell1mark or ded1mark or crate1mark or Target1mark or PlayerTarget1mark\nx2mark = one2mark or two2mark or three2mark\nxmark = x0mark or x1mark or x2mark\nnumber0 = one0 or two0 or three0 or four0 or five0 or six0 or seven0 or inf0\nnumber2 = one2 or two2 or three2\npicked = pickeda0 or pickedb0 or pickeda2 or pickedb2\n\npickable = player1 or pit1 or crate1 or number0 or wall1 or number2 or fell1 or ded1 or target0 or PlayerTarget1 or Target1\npickable2 = curse0a or pickable or wall0 or crate0 \n\nblackcorner = blackul or blackdl or blackur or blackdr\nrim0x = rim0l or rim0d or rim0u or rim0r\nrim1x = rim1l or rim1d or rim1u or rim1r \n=======\nSOUNDS\n=======\n\nSFX0 51304502\n\nsfx1 22108304\n\nSFX2 84700307\n\nSFX3 78571302\n\nSFX4 25131906\n\nSFX5 13408901\n\nSFX6 50704903\n\nSFX7 24622504\n\nSFX8 29744504\n\nSFX9 13344503\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\npink, chosepink\ncyan, chosecyan\n\n\nPit1,\npit1r\npit1l\npit1d\npit1u\npit0, pit0ghost\npit0r\npit0l\npit0d\npit0u\nblackul\nblackur\nblackdr\nblackdl\nTarget1, PlayerTarget1, target0\n\nfell1, ded1\nfelll1\nfellr1\nfelld1\nfellu1\n\ndead0a, fell0, fell0ghost\nrim0l \nrim0d \nrim0u \nrim0r\n\nrim1l \nrim1d \nrim1u \nrim1r \nPlayer1, Wall1, Crate1, \npit1mark\nfell1mark, ded1mark, target0mark\nTarget1mark, PlayerTarget1mark\nplayer1mark, crate1mark\nwall1mark\none0mark, two0mark, three0mark, wall0mark, inf0mark\none2mark, two2mark, three2mark\ncursor0mark, crate0mark\nnumber0, number2\ncratel1, walll1, \ncrater1, wallr1, \ncrated1, walld1, \ncrateu1, wallu1, \ncursor0, wall0, crate0, wall0ghost, crate0ghost\n walll0, cratel0\n wallr0, crater0\n walld0, crated0\n wallu0, crateu0\n crate01\n wall2, wall2ghost\n wallr2\n wallu2\n walll2\n walld2\n cursor2a, cursor2b\n \nfellcant1\nfellcant0\ncant0\ncant1\ncant2\nsupported\nactivefell\nactive, activeb\nactivecurse0\nholding\ndecrement\npickeda0, pickeda2\npickedb0, pickedb2\nplacemark\npartb partc\nshowthis\nshowhere\nblack\n\n======\nRULES\n======\n\n(Deal with action-----------------------------------------------------------------------------)\n\n[action activecurse0 curse0] -> [activecurse0 action curse0]\n\n(pick up ready icon)\ndown[action curse0a no holding pickable|number0] -> [curse0a holding pickable|number0 pickeda0] SFX9\ndown[action cursor0b no holding pickable|number0] -> [cursor0b holding pickable|number0 pickedb0] SFX9\ndown[action cursor2a no holding pickable2|number2] -> [cursor2a holding pickable2|number2 pickeda2] SFX9\ndown[action cursor2b no holding pickable2|number2] -> [cursor2b holding pickable2|number2 pickedb2] SFX9\n(switch to new ready icon)\ndown [action curse0a pickable| number0 no pickeda0][pickeda0] -> [curse0a pickable | number0 pickeda0][] SFX9\ndown [action cursor0b pickable| number0 no pickedb0][pickedb0] -> [cursor0b pickable | number0 pickedb0][] SFX9\ndown [action cursor2a pickable2| number2 no pickeda2][pickeda2] -> [cursor2a pickable2 | number2 pickeda2][] SFX9\ndown [action cursor2b pickable2| number2 no pickedb2][pickedb2] -> [cursor2b pickable2 | number2 pickedb2][] SFX9\n\n(put down ready icon)\ndown [action curse0 holding pickable| picked] -> [curse0 pickable|] SFX8\ndown [action cursor2a holding pickable2| pickeda2] -> [cursor2a pickable2|] SFX8\ndown [action cursor2b holding pickable2| pickedb2] -> [cursor2b pickable2|] SFX8\n\n(show mark)\nlate [xmark] -> []\nlate [showthis] -> []\nlate [showhere] -> []\n\nlate down [ | number0 pickeda0][curse0a] -> [showthis | number0 pickeda0][curse0a showhere]\nlate down [ | number0 pickedb0][cursor0b] -> [showthis | number0 pickedb0][cursor0b showhere]\nlate down [ | number2 pickeda2][cursor2a] -> [showthis | number2 pickeda2][cursor2a showhere]\nlate down [ | number2 pickedb2][cursor2b] -> [showthis | number2 pickedb2][cursor2b showhere]\nlate [showthis player1][showhere] -> [showthis player1][showhere player1mark]\nlate [showthis pit1][showhere] -> [showthis pit1][showhere pit1mark]\nlate [showthis crate1][showhere] -> [showthis crate1][showhere crate1mark]\nlate [showthis wall1][showhere] -> [showthis wall1][showhere wall1mark]\nlate [showthis one0][showhere] -> [showthis one0][showhere one0mark]\nlate [showthis two0][showhere] -> [showthis two0][showhere two0mark]\nlate [showthis three0][showhere] -> [showthis three0][showhere three0mark]\nlate [showthis one2][showhere] -> [showthis one2][showhere one2mark]\nlate [showthis two2][showhere] -> [showthis two2][showhere two2mark]\nlate [showthis three2][showhere] -> [showthis three2][showhere three2mark]\nlate [showthis wall0][showhere] -> [showthis wall0][showhere wall0mark]\nlate [showthis fell1][showhere] -> [showthis fell1][showhere fell1mark]\nlate [showthis ded1][showhere] -> [showthis ded1][showhere ded1mark]\nlate [showthis target0][showhere] -> [showthis target0][showhere target0mark]\nlate [showthis crate0][showhere] -> [showthis crate0][showhere crate0mark]\nlate [showthis cursor0][showhere] -> [showthis cursor0][showhere cursor0mark]\nlate [showthis inf0][showhere] -> [showthis inf0][showhere inf0mark]\nlate [showthis Target1][showhere] -> [showthis target1][showhere Target1mark]\nlate [showthis PlayerTarget1][showhere] -> [showthis PlayerTarget1][showhere PlayerTarget1mark]\n(connect cratemark)\nup [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crateu1 | crate1 crated1]\ndown [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crated1 | crate1 crateu1]\nleft [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark cratel1 | crate1 crater1]\nright [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crater1 | crate1 cratel1]\nup [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crateu1 | fell1 felld1]\ndown [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crated1 | fell1 fellu1]\nleft [action curse0 holding fell1mark no xx no number0 no number2| fell1] -> [action curse0 holding fell1mark cratel1 | fell1 fellr1]\nright [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crater1 | fell1 felll1]\n\n(place mark)\n[placemark] -> []\n\ndown [action curse0a holding xmark no x1 no number0][pickeda0 number0] -> [curse0a holding xmark placemark][pickeda0 decrement number0] SFX7\ndown [action cursor0b holding xmark no x1 no number0][pickedb0 number0] -> [cursor0b holding xmark placemark][pickedb0 decrement number0] SFX7\n\ndown [action cursor2a holding xmark no xx no number0 no number2][pickeda2 number2] -> [cursor2a holding xmark placemark][pickeda2 decrement number2] SFX7\ndown [action cursor2b holding xmark no xx no number0 no number2][pickedb2 number2] -> [cursor2b holding xmark placemark][pickedb2 decrement number2] SFX7\n\n\n\n[placemark player1mark] -> [placemark player1 player1mark]\n[placemark pit1mark] -> [placemark pit1 pit1mark]\n[placemark crate1mark] -> [placemark crate1 crate1mark]\n[placemark wall1mark] -> [placemark wall1 wall1mark]\n[placemark one0mark] -> [placemark one0 one0mark]\n[placemark two0mark] -> [placemark two0 two0mark]\n[placemark three0mark] -> [placemark three0 three0mark]\n[placemark one2mark] -> [placemark one2 one2mark]\n[placemark two2mark] -> [placemark two2 two2mark]\n[placemark three2mark] -> [placemark three2 three2mark]\n[placemark wall0mark] -> [placemark wall0 wall0mark]\n[placemark fell1mark] -> [placemark fell1 fell1mark]\n[placemark ded1mark] -> [placemark ded1 ded1mark]\n[placemark target0mark] -> [placemark target0 target0mark]\n[placemark crate0mark] -> [placemark crate0 crate0mark]\n[placemark Target1mark] -> [placemark target1 Target1mark]\n[placemark inf0mark] -> [placemark inf0 inf0mark]\n[placemark PlayerTarget1mark] -> [placemark playertarget1 PlayerTarget1mark]\ndown [placemark cursor0mark][curse0a|no one2] -> [ cursor0b cursor0mark][curse0a|]\n[placemark cursor0mark] -> [placemark cursor0a cursor0mark]\n\n(decrement number of placed item)\ndown [xmark holding cursor2a][pickable2|one2 decrement pickeda2] -> [xmark holding cursor2a][|one2 decrement pickeda2]\ndown [xmark holding cursor2b][pickable2|one2 decrement pickedb2] -> [xmark holding cursor2b][|one2 decrement pickedb2]\ndown [xmark holding curse0a][pickable|one0 decrement pickeda0] -> [xmark holding curse0a][|one0 decrement pickeda0]\ndown [xmark holding cursor0b][pickable|one0 decrement pickedb0] -> [xmark holding cursor0b][|one0 decrement pickedb0]\ndown [xmark holding cursor2a][|one2 decrement pickeda2] -> [cursor2a][|]\ndown [xmark holding cursor2b][|one2 decrement pickedb2] -> [cursor2b][|]\ndown [xmark holding cursor0a][|one0 decrement pickeda0] -> [cursor0a][|]\ndown [xmark holding cursor0b][|one0 decrement pickedb0] -> [cursor0b][|]\n[one0 decrement] -> []\n[two0 decrement] -> [one0]\n[three0 decrement] -> [two0]\n[four0 decrement] -> [three0]\n[five0 decrement] -> [four0]\n[six0 decrement] -> [five0]\n[seven0 decrement] -> [six0]\n[one2 decrement] -> []\n[two2 decrement] -> [one2]\n[three2 decrement] -> [two2]\n\n\n\n(player -> cursor)\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [player1 action active no wall0ghost no crate0ghost][partbc] -> [cursor0a player1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [ded1 action activefell no wall0ghost no crate0ghost][partbc] -> [cursor0a ded1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\n\n(cursor holding -> player)\ndown [action curse0a activecurse0 player1 holding xmark][| number0 pickeda0] -> [active player1][ | number0] SFX6\ndown [action curse0a activecurse0 ded1 holding xmark][| number0 pickeda0] -> [activefell ded1][ | number0] SFX6\ndown [action cursor0b activecurse0 player1 holding xmark][| number0 pickedb0] -> [active player1][ | number0] SFX6\ndown [action cursor0b activecurse0 ded1 holding xmark][| number0 pickedb0] -> [activefell ded1][ | number0] SFX6\n(empty cursor -> player)\n[action curse0 player1 activecurse0 no holding] -> [active player1] SFX6\n[action curse0 ded1 activecurse0 no holding] -> [activefell ded1] SFX6\n(red -> blue)\n[action cursor0a activecurse0 holding xmark][partc][pickeda0] -> [cursor0a cursor2a][partc][] SFX5\n[action cursor0a activecurse0 ][partc] -> [cursor0a cursor2a][partc] SFX5\n[action cursor0b activecurse0 holding xmark][partc][pickedb0] -> [cursor0b cursor2b][partc][] SFX5\n[action cursor0b activecurse0 ][partc] -> [cursor0b cursor2b][partc] SFX5\n(blue holding -> red)\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\nrandom down [action curse2 curse0 holding xmark][| number2 pickeda2] -> [activecurse0 cursor0a][ | number2] SFX6\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\n(empty blue -> red)\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\nrandom [action curse2 curse0 no holding] -> [activecurse0 cursor0a] SFX6\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\n\n\n[action player] -> SFX0\n[action curse0] -> SFX0\n\n(Aesthetic----------------------------------------------------------------------------------------)\n\n\n\n(ghosts)\n[player1 active][pit0] -> [player1 active][pit0ghost]\n[pit0ghost][cursor0] -> [pit0][cursor0]\n[player1 active][wall0] -> [player1 active][wall0ghost]\n[wall0ghost][cursor0] -> [wall0][cursor0]\n[player1 active][crate0] -> [player1 active][crate0ghost]\n[crate0ghost][cursor0] -> [crate0][cursor0]\n[player1 active][fell0] -> [player1 active][fell0ghost]\n[fell0ghost][cursor0] -> [fell0][cursor0]\n[curse0 activecurse0][wall2] -> [curse0 activecurse0][wall2ghost]\n[wall2ghost][curse2] -> [wall2][curse2]\n\n\n(wall boundaries)\n[wallx2] -> []\n[wallx1] -> []\n[wallx0] -> []\nup [wall2 | no wall2] -> [wall2 wallu2 | ]\ndown [wall2 | no wall2] -> [wall2 walld2 | ]\nleft [wall2 | no wall2] -> [wall2 walll2 | ]\nright [wall2 | no wall2] -> [wall2 wallr2 | ]\nup [wall1 | no wall1] -> [wall1 wallu1 | ]\ndown [wall1 | no wall1] -> [wall1 walld1 | ]\nleft [wall1 | no wall1] -> [wall1 walll1 | ]\nright [wall1 | no wall1] -> [wall1 wallr1 | ]\nup [wall0 | no wall0] -> [wall0 wallu0 | ]\ndown [wall0 | no wall0] -> [wall0 walld0 | ]\nleft [wall0 | no wall0] -> [wall0 walll0 | ]\nright [wall0 | no wall0] -> [wall0 wallr0 | ]\n\n(crate connectors)\nup [crateu0|] -> [crateu0 | crated0]\nright [crater0|] -> [crater0 | cratel0]\nup [crateu1|] -> [crateu1 | crated1]\nright [crater1|] -> [crater1 | cratel1]\n(pit connectors)\n[blackcorner] -> []\n[pit0x] -> [] \n[pit1x] -> [] \nup [pit1 | pit1] -> [pit1u pit1|pit1d pit1]\nright [pit1 | pit1] -> [pit1r pit1|pit1l pit1]\nup [pit0 | pit0] -> [pit0u pit0|pit0d pit0]\nright [pit0 | pit0] -> [pit0r pit0|pit0l pit0]\n[pit1u pit1r] -> [pit1u pit1r blackur]\n[pit1u pit1l] -> [pit1u pit1l blackul]\n[pit1d pit1r] -> [pit1d pit1r blackdr]\n[pit1d pit1l] -> [pit1d pit1l blackdl]\n[pit0u pit0r] -> [pit0u pit0r blackur]\n[pit0u pit0l] -> [pit0u pit0l blackul]\n[pit0d pit0r] -> [pit0d pit0r blackdr]\n[pit0d pit0l] -> [pit0d pit0l blackdl]\n[rim1x] -> []\n[rim0x] -> []\nup[pit0|no pit0] -> [pit0 rim0u|]\ndown[pit0|no pit0] -> [pit0 rim0d|]\nleft[pit0|no pit0] -> [pit0 rim0l|]\nright[pit0|no pit0] -> [pit0 rim0r|]\nup[pit1|no pit1] -> [pit1 rim1u|]\ndown[pit1|no pit1] -> [pit1 rim1d|]\nleft[pit1|no pit1] -> [pit1 rim1l|]\nright[pit1|no pit1] -> [pit1 rim1r|]\nlate [pink] -> []\nlate [cyan] -> []\nlate [chosepink] -> []\nlate [chosecyan] -> []\nlate down [pickable |number0] -> [pickable pink | number0 pink]\nlate down [pickable2 |number2] -> [pickable2 cyan | number2 cyan]\nlate up [pink picked|pink] -> [chosepink picked|chosepink ]\nlate up [cyan picked|cyan ] -> [chosecyan picked|chosecyan ]\n\n(Movement----------------------------------------------------------------------------------------)\n\n(move attached items)\n[moving activecurse0 curse0] -> [moving activecurse0 moving curse0]\n[moving active player1] -> [moving active moving player1]\n[moving activefell ded1] -> [moving activefell moving ded1]\n[moving curse0 holding] -> [moving curse0 moving holding]\n[moving curse2 holding] -> [moving curse2 moving holding]\n\n(reset and propogate cant)\n[cant0] -> []\n[cant1] -> []\n[cant2] -> []\n[fellcant0] -> []\n[fellcant1] -> []\n\n[black no cant0 no cant1 no cant2] -> [black cant0 cant1 cant2]\n[wall2 no cant2] -> [wall2 cant2]\n[wall1 no cant1] -> [wall1 cant1]\n[wall0 no cant0] -> [wall0 cant0]\n[number0] -> [number0 cant1]\n[number2] -> [number2 cant1]\n[no pit1 no fellcant1] -> [fellcant1]\n[no pit0 no fellcant0] -> [fellcant0]\n\n[> ded1][fell1|fellcant1] -> [> ded1][fell1 fellcant1 | fellcant1]\n+ [> ded1][ded1|fellcant1] -> [> ded1][ded1 fellcant1 | fellcant1]\n+ up[fellu1|fellcant1] -> [fellu1 fellcant1 | fellcant1]\n+ left[felll1|fellcant1] -> [felll1 fellcant1 | fellcant1]\n+ down[felld1|fellcant1] -> [felld1 fellcant1 | fellcant1]\n+ right[fellr1|fellcant1] -> [fellr1 fellcant1 | fellcant1]\n\n+ [> player1][crate1|cant1] -> [> player1][crate1 cant1 | cant1]\n+ [> player1][player1|cant1] -> [> player1][player1 cant1 | cant1]\n+ up[crateu1|cant1] -> [crateu1 cant1 | cant1]\n+ left[cratel1|cant1] -> [cratel1 cant1 | cant1]\n+ down[crated1|cant1] -> [crated1 cant1 | cant1]\n+ right[crater1|cant1] -> [crater1 cant1 | cant1]\n+ [crate1 crate0 cant0] -> [crate1 crate0 cant0 cant1]\n+ [crate1 crate0 cant1] -> [crate1 crate0 cant0 cant1]\n+ [> dead0][dead0|fellcant0] -> [> dead0][dead0 fellcant0 | fellcant0]\n+ [> cursor0][cursor0|cant0] -> [> cursor0][cursor0 cant0 | cant0]\n+ [> cursor0][crate0 | number0] -> [> cursor0][crate0 cant0| number0]\n+ [> cursor0][crate0|cant0] -> [> cursor0][crate0 cant0 | cant0]\n+ up[crateu0|cant0] -> [crateu0 cant0 | cant0]\n+ left[cratel0|cant0] -> [cratel0 cant0 | cant0]\n+ down[crated0|cant0] -> [crated0 cant0 | cant0]\n+ right[crater0|cant0] -> [crater0 cant0 | cant0]\n\n[> curse2 | wall2] -> [stationary curse2 | wall2]\n[> curse2 | black] -> [stationary curse2 | black]\n[cursor0 cant0] -> [stationary cursor0 cant0]\n[player1 cant1] -> [stationary player1 cant1]\n[ded1 fellcant1] -> [stationary ded1 fellcant1]\n[dead0 fellcant0] -> [stationary dead0 fellcant0]\n\n\n(propagate movement)\n\n[ > Ded1 | Fell1 no fellcant1] -> [ > Ded1 | > Fell1 ]\n\n[ > Cursor0 | Crate0 ] -> [ > Cursor0 | > Crate0 ]\n+ [ > Cursor0 | Cursor0 ] -> [ > Cursor0 | > Cursor0 ]\n+ [ > Crate0 | Crate0 ] -> [ > Crate0 | > Crate0 ]\n\n+ [ > Player1 | Crate1 ] -> [ > Player1 | > Crate1 ]\n+ [ > Player1 | Player1] -> [ > Player1 | > Player1 ]\n+ [ > Crate1 | Player1 ] -> [ > Crate1 | > Player1 ]\n+ [> crate1|crate1] -> [> crate1 | > crate1]\n+ up[moving crate1 crateu1|crate1] -> [moving crate1 crateu1 | moving crate1]\n+ left[moving crate1 cratel1|crate1] -> [moving crate1 cratel1 | moving crate1]\n+ down[moving crate1 crated1|crate1] -> [moving crate1 crated1 | moving crate1]\n+ right[moving crate1 crater1|crate1] -> [moving crate1 crater1 | moving crate1]\n \n\n[> fell1|fell1] -> [> fell1 | > fell1]\n+ up[moving fell1 fellu1|fell1] -> [moving fell1 fellu1 | moving fell1]\n+ left[moving fell1 felll1|fell1] -> [moving fell1 felll1 | moving fell1]\n+ down[moving fell1 felld1|fell1] -> [moving fell1 felld1 | moving fell1]\n+ right[moving fell1 fellr1|fell1] -> [moving fell1 fellr1 | moving fell1]\n\n[moving crate1 cratex1] -> [moving crate1 moving cratex1]\n[moving fell1 fellx1] -> [moving fell1 moving fellx1]\n[moving crate1 crate0ghost] -> [moving crate1 moving crate0ghost]\n\n[active stationary player1] -> [stationary active stationary player1]\n[activecurse0 stationary curse0] -> [stationary activecurse0 stationary curse0]\n[activefell stationary ded1] -> [stationary activefell stationary ded1]\n[stationary cursor0 activecurse0 holding] -> [stationary cursor0 activecurse0 stationary holding]\n[stationary curse2 holding] -> [stationary curse2 stationary holding]\n\n\n(falling)\nlate [supported] -> []\n\nlate [crate1 ded1] -> [crate1 supported ded1]\nlate [crate1 no pit1] -> [crate1 supported]\nlate [crate1 fell1] -> [crate1 fell1 supported]\n\n\nlate up[crateu1|supported] -> [crateu1 supported | supported]\n+ late left[cratel1|supported] -> [cratel1 supported | supported]\n+ late down[crated1|supported] -> [crated1 supported | supported]\n+ late right[crater1|supported] -> [crater1 supported | supported]\n\n\nlate [cursor0 pit0 no fell0] -> [pit0 dead0a]SFX3\nlate [player1 active pit1 no fell1 no ded1] -> [pit1 ded1 activefell]SFX3\nlate [player1 pit1 no fell1 no ded1] -> [pit1 ded1 ]SFX3\nlate [crate0 pit0 no supported] -> [pit0 fell0]SFX3\nlate [crate1 pit1 no supported] -> [pit1 fell1] SFX3\n\n\n\nlate [crateu1 no crate1 fell1] -> [fellu1 fell1]\nlate [cratel1 no crate1 fell1] -> [felll1 fell1]\nlate [crater1 no crate1 fell1] -> [fellr1 fell1]\nlate [crated1 no crate1 fell1] -> [felld1 fell1]\n\nlate [crateu1 no crate1] -> []\nlate [cratel1 no crate1] -> []\nlate [crater1 no crate1] -> []\nlate [crated1 no crate1] -> []\nlate up [crateu1 |no crate1] -> [|]\nlate left [cratel1 |no crate1] -> [|]\nlate right [crater1 |no crate1] -> [|]\nlate down [crated1 |no crate1] -> [|]\nlate [player1 ded1] -> [player1 ded1] SFX0\nlate [player1 ded1] -> cancel \n\n[moving crate0] -> SFX2\n[moving crate1] -> SFX2\n\n==============\nWINCONDITIONS\n==============\n\n\nAll target0 on crate0\nAll Target1 on Crateorfell1\nAll PlayerTarget1 on Playerormark1\nno Cursor0 on target1\nno cursor0 on PlayerTarget1\n\n=======\nLEVELS\n=======\n\nmessage Book 1: BASE\n\nmessage Page 1.1: GOAL\n\n#######\n#`````#\n#`p`t`#\n#`````#\n#`o`q`#\n#`````#\n#######\n\nmessage Page 1.2: TOOL\n\n#######\n#`t`o`#\n#t`-:`#\n#``tlo#\n#p````#\n#######\n\nmessage Page 1.3: HOLE\n\n########\n##``0`##\n#```0``#\n#``o0`t#\n#po:0``#\n#``:0`t#\n#```0``#\n##``0`##\n########\n\nmessage Page 1.4: FALL\n\n########\n#00u``0#\n#00po`0#\n#`000`0#\n#`00```#\n#`000``#\n#`000``#\n########\n\nmessage Book 2: EDIT\n\nmessage Page 2.1: MINI\n\n||||||||||\n|```````'|\n|`######`|\n|`#````#`|\n|`#``t`#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 2.2: FORM\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 2.3: PLUG\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#ro`o`#`|\n|`#####`#`|\n|`###`o`#`|\n|`#``oLo#`|\n|`#````##`|\n|`#`q####`|\n|`#######`|\n|`````````|\n|``c`0````|\n|````8````|\n|`````````|\n|||||||||||\n\nmessage Page 2.4: TRAP\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#``````#`|\n|`#``t```#`|\n|`#`tqt``#`|\n|`#``t```#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````16````|\n|``````````|\n||||||||||||\n\nmessage Book 3: DUAL\n\nmessage Page 3.1: CO-OP\n\n#######\n####qq#\n#po000#\n#`o000#\n###o``#\n###r`'#\n#######\n\nmessage Page 3.2: REST\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#`r00q#`|\n|`#######`|\n|`````````|\n|``c`o````|\n|````2````|\n|`````````|\n|||||||||||\nmessage Page 3.3: SAIL\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#0000q#`|\n|`#00000#`|\n|`#00000#`|\n|`#```00#`|\n|`#```00#`|\n|`#######`|\n|`````````|\n|``c`ro```|\n|````23```|\n|`````````|\n|||||||||||\n\nmessage Page 3.4: TWIN\n\n|||||||||||||||||||||\n|`````````+````````'|\n|`#######`+`#######`|\n|`#`````#`+`#`````#`|\n|`#```q`#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`q```#`|\n|`#`````#`+`#`````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````6````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Book 4: WHAT\n\nmessage Page 4.1: GUIS\n\n\n#######\n#q#``'#\n#``8#`#\n#`#p#`#\n#`#o#`#\n#`#1``#\n#######\n\nmessage Page 4.2: IDEA\n\n||||||||||\n|```````'|\n|`######`|\n|`#```t#`|\n|`#```t#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```31```|\n|````````|\n||||||||||\n\nmessage Page 4.3: FILL\n\n\n######\n#0poq#\n#0`70#\n#'000#\n#0000#\n######\n\nmessage Page 4.4: A LOT\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|``````'|\n|`c3o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Book 5: UHHH\n\nmessage Page 5.1: WALL\n\n||||||||||\n|```````'|\n|`######`|\n|`#t`#`#`|\n|`#````#`|\n|`##`o`#`|\n|x+xxxx+x|\n|`#````#`|\n|`#````#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 5.2: SAFE\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#xxxxx#`|\n|`#x```x#`|\n|`#x`t`x#`|\n|`#x```x#`|\n|`#xxxxx#`|\n|`#######`|\n|`````````|\n|`c`o1r```|\n|```111```|\n|`````````|\n|||||||||||\n\nmessage Page 5.3: LOCK\n\n|||||||||||||\n|o```'`xxxcx|\n|1``x```qx!x|\n|`1!````qx`x|\n|``1?x`xxx?x|\n|r``1````!`x|\n|````2`xxxxx|\n|||||||||||||\n\n\n\nmessage Page 5.4: POST\n\n+++++++++\n+p#```#q+\n+`#``'#3+\n+`#`1`#`+\n+`#`2`#`+\n+`#```#`+\n+`#```#`+\n+++++++++\nmessage Book 6: BLUE\n\nmessage Page 6.1: META\n\n||||||||||||\n|++++++++++|\n|+````\"```+|\n|+`######`+|\n|+`#````#`+|\n|+`#``t`#`+|\n|+`#````#`+|\n|+`######`+|\n|+````````+|\n|+```ro```+|\n|+````````+|\n|+````````+|\n|++++++++++|\n|``````````|\n|``~`1b````|\n|````{[````|\n|``````````|\n||||||||||||\n\nmessage Page 6.2: WILD\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`#######`+|\n|+`#0000q#`+|\n|+`#00000#`+|\n|+`#`0000#`+|\n|+`#`0000#`+|\n|+`#```00#`+|\n|+`#######`+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\nmessage Page 6.3: UH OH\n\n|||||||||||\n|+++++++++|\n|+``````\"+|\n|+`+++++`+|\n|+`+```+`+|\n|+`+`t`+`+|\n|+`+```+`+|\n|+`+```+`+|\n|+`+++++`+|\n|+```````+|\n|+```o```+|\n|+```````+|\n|+```````+|\n|+++++++++|\n|`````````|\n|`````````|\n|`~`1br```|\n|```][[```|\n|`````````|\n|||||||||||\n\nmessage Page 6.4: VARY\n\n|||||||||||||||||||||||\n|++++++++++&++++++++++|\n|+``````\"`x&x````````+|\n|+`######`x&x`######`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`#`qt`#`x&x`#`tq`#`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`######`x&x`######`+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|++++++++++&++++++++++|\n|``````````&``````````|\n|`~`r1ob```&`_`r1ob```|\n|```[{[[```&```[[[[```|\n|``````````&``````````|\n|||||||||||||||||||||||\n\nmessage Book 7: ?!?!\n\nmessage Page 7.1: EACH\n\n+++++++\n+````'+\n+`###`+\n+`#q#`+\n+`#0#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`###`+\n+`````+\n+``c``+\n+`r0o`+\n+``4``+\n+`````+\n+++++++\n\nmessage Page 7.2: HOLD\n\n&&&&&&&&&\n&`8```+`&\n&`{po`+`&\n&`\"```+t&\n&&&&&&&&&\n\nmessage Page 7.3: TRIP\n\n&&&&&&&\n&```\"`&\n&`o`!`&\n&`````&\n&+++++&\n&`r2b`&\n&`[[{~&\n&y```t&\n&&&&&&&\n\nmessage Page 7.4: PLAN\n\n\n|||||||||\n|```t```|\n|```````|\n|+++++++|\n|```````|\n|```````|\n|>>>>>>>|\n|```````|\n|```````|\n|+++++++|\n|```~```|\n|[[`2\"11|\n|[[`[`[[|\n|&&`&&&&|\n|&&bor&&|\n|||||||||\n\n\n\n\n\nmessage Book 8: (RE)STAR(TS)\n\n\nmessage Page 8.1: (IN)FORM(ED)\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 8.2: (EN)TWIN(ED)\n\n|||||||||||||||||||||\n|`````````+`````````|\n|`#######`+`#######`|\n|`#````q#`+`#`````#`|\n|`#`````#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`````#`|\n|`#`````#`+`#q````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````5````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Page 8.3: (ZE)ALOT(RY)\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|```````|\n|`c2o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Page 8.4: (BE)WILD(ER)\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`+++++++`+|\n|+`+0000q+`+|\n|+`+00000+`+|\n|+`+00000+`+|\n|+`+`0000+`+|\n|+`+```00+`+|\n|+`+++++++`+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", [0, 3, 3, 3, 2, 2, 4, 1, 0, 3, 4, 0, 0, 0, 0, 4, 3, 3, 2, 2, 2, 2, 1, 4, 0, 0, 0, 3, 0, 4, 2, 2, 2, 2, 3, 3, 4, 1, 4, 0, 0, 0, 0, 0, 4, 1, 2, 2, 2, 2, 2, 4, 0, 0, 0, 3, 0, 4, 4, 4, 1, 4, 2, 1, 0, 3, 3, 4, 2, 1, 0, 4, 1, 0, 0, 3, 3, 3, 2, 1, 1, 1, 3, 4, 2, 2, 1, 1, 1, 0, 3, 4, 3, 3, 2, 2, 2, 1, 2, 1, 4, 0, 0, 0, 3, 3, 0, 0, 0, 4, 3, 2, 2, 1, 0, 4, 1, 2, 1, 4, 3, 3, 0, 4, 2, 3, 0, 4, 2], "background black cant0 cant1 cant2 fellcant0 fellcant1:0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,background cant0 cant1 fellcant0 fellcant1 wall0 wall1 walll0 walll1 wallu0 wallu1:1,background cant0 cant1 fellcant0 fellcant1 wall0 wall1 walll0 walll1 wallr0 wallr1:2,2,2,2,\n2,2,2,2,2,2,2,2,background cant0 cant1 fellcant0 fellcant1 wall0 wall1 walld0 walld1 walll0 walll1:3,background fellcant0 fellcant1:4,4,4,4,\n0,0,background cant0 cant1 fellcant0 fellcant1 wall0 wall1 walld0 walld1 wallu0 wallu1:5,4,4,4,4,4,4,4,4,4,4,\n4,4,5,4,4,4,4,0,0,5,4,background cant1 fellcant0 fellcant1 wall1 walll1 wallu1:6,background cant1 fellcant0 fellcant1 wall1 walll1 wallr1:7,\n7,7,7,7,background cant1 fellcant0 fellcant1 wall1 walld1 walll1:8,4,4,4,4,5,4,4,4,\n4,0,0,5,4,background cant1 fellcant0 fellcant1 wall1 walld1 wallu1:9,background blackdr fellcant0 pit1 pit1d pit1r rim1l rim1u:10,background blackur fellcant0 pit1 pit1r pit1u rim1d rim1l:11,4,4,4,9,4,\n4,4,4,5,4,background cant1 cyan fellcant0 fellcant1 one0:12,background cant1 cyan fellcant0 fellcant1 one2:13,4,0,0,5,4,9,\nbackground blackdl blackdr fellcant0 pit1 pit1d pit1l pit1r rim1u:14,background blackdl blackdr blackul blackur fellcant0 pit1 pit1d pit1l pit1r pit1u:15,background blackdr blackur fellcant0 pit1 pit1d pit1r pit1u rim1l:16,11,4,9,4,background crate1 fellcant0 fellcant1 pink supported:17,background cant1 fellcant0 fellcant1 pink two0:18,4,5,4,4,\n4,4,0,0,5,4,9,14,15,15,background blackul blackur fellcant0 pit1 pit1l pit1r pit1u rim1d:19,4,9,\n4,4,4,4,5,4,4,4,4,0,0,5,4,\n9,background blackdl fellcant0 pit1 pit1d pit1l rim1r rim1u:20,15,15,15,11,background cant1 fellcant0 fellcant1 pink wall1 walld1 wallu1:21,18,4,4,4,5,4,\n4,4,4,0,0,5,background fellcant0 fellcant1 partc:22,9,background fellcant0 fellcant1 playertarget1:23,20,background blackdl blackul fellcant0 pit1 pit1d pit1l pit1u rim1r:24,24,background blackul fellcant0 pit1 pit1l pit1u rim1d rim1r:25,\n9,4,background fellcant0 fellcant1 player1:26,activecurse0 background cursor0a fellcant0 fellcant1:27,4,5,4,4,4,4,0,0,5,\n4,background cant1 fellcant0 fellcant1 wall1 wallr1 wallu1:28,7,7,7,7,7,background cant1 fellcant0 fellcant1 wall1 walld1 wallr1:29,4,4,4,4,5,\n4,4,4,4,0,0,5,4,4,4,4,4,4,\n4,4,4,4,4,4,5,4,4,4,4,0,0,\nbackground cant0 cant1 fellcant0 fellcant1 wall0 wall1 wallr0 wallr1 wallu0 wallu1:30,2,2,2,2,2,2,2,2,2,2,2,2,\nbackground cant0 cant1 fellcant0 fellcant1 wall0 wall1 walld0 walld1 wallr0 wallr1:31,4,4,4,4,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 49, "1642083700844.0618"] - ], - [ - "Undo and Real-time #796", - ["title Undo and Real-time\nrealtime_interval 0.25\n\n========\nOBJECTS\n========\n\nBackground .\nBlack\n\nPlayer @\nBlue\n\nThing *\nYellow\n\n=======\nLEGEND\n=======\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nThing\nPlayer\n\n======\nRULES \n====== \n\n[ Thing ] -> [ right Thing ] \n\n==============\nWINCONDITIONS\n============== \n\n======= \nLEVELS\n=======\n\nmessage Walk around a bit, then undo several times (usually, three is enough).\n\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.............@.......................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n\n\n\n\n\n", ["tick", 4, 4, 4, 1, 1, "tick", 1, "tick", "tick", "tick", "tick", "undo", "undo", "tick", "tick", "tick", "undo"], "background: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,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,background thing:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,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,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,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,background player: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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,\n", 1, "1642738088805.1099"] - ], - [ - "Cucumber Surprise", - ["title Cucumber Surprise\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #595652\ntext_color white\n\nagain_interval 0.01\n\n(thanks to bvoq for Puzzlescript+MIS https://dekeyser.ch/puzzlescriptmis/ also testing. also thanks to ggn and meepmeep13 for testing)\n\n========\nOBJECTS\n========\n\nBackground\n#595652 #696a6a\n00000\n00000\n00100\n00000\n00000\n\n\n\nziel\n#595652 #eec39a #d9a066 #e1b489\n.111.\n23331\n23331\n23331\n.222.\n\n\nwand\n#696a6a #847e87\n00010\n11111\n01000\n11111\n00010\n\n\nplayer\n#595652 #ac3232 #8a6f30 #5b6ee1\n.111.\n.222.\n.222.\n13331\n.1.1.\n\n\nkatze\n#000000 \n0..00\n.0.00\n.000.\n.0.0.\n.0.0.\n\ngurke\ntransparent #99e550 #6abe30\n00100\n02110\n02110\n02110\n00200\n\npush_up\ntransparent\n\npush_down\ntransparent\n\npush_left\ntransparent\n\npush_right\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\ng = gurke\np = player\n* = katze\n# = wand\n@ = katze and ziel\nO = ziel\nm = gurke and ziel\n\nobstacle = player or katze or wand or gurke\npush = push_up or push_down or push_left or push_right\n\n=======\nSOUNDS\n=======\n\nsfx0 23445905 (katzenschreck)\nstartgame 90870106\nstartlevel 90870106\nendlevel 78627300\ngurke move 70216507\nkatze move 45785907\n================\nCOLLISIONLAYERS\n================\n\nBackground\nziel\nPlayer, katze, gurke, wand\npush\n======\nRULES\n======\n\n[moving player] [ push ] -> [ moving player ] [ ]\n\nup [ push_up stationary katze | no obstacle ] -> [ | push_up action katze ] again\n+ down [ push_down stationary katze | no obstacle ] -> [ | push_down action katze ] again\n+ left [ push_left stationary katze | no obstacle ] -> [ | push_left action katze ] again\n+ right [ push_right stationary katze | no obstacle ] -> [ | push_right action katze ] again\n\n\n[ > Player | gurke | no obstacle ] -> [ > Player | > gurke | no obstacle ] again\n\n\n[ < player | katze ] -> [ < player | < katze ] again\n\nlate up [ gurke | katze | no obstacle] -> [ gurke | push_up katze | no obstacle] sfx0\nlate down [ gurke | katze | no obstacle] -> [ gurke | push_down katze | no obstacle] sfx0\nlate left [ gurke | katze | no obstacle] -> [ gurke | push_left katze | no obstacle] sfx0\nlate right [ gurke | katze | no obstacle] -> [ gurke | push_right katze | no obstacle] sfx0\n\nlate up [ gurke | katze ] -> [ gurke | push_up katze ]\nlate down [ gurke | katze ] -> [ gurke | push_down katze ]\nlate left [ gurke | katze ] -> [ gurke | push_left katze ]\nlate right [ gurke | katze ] -> [ gurke | push_right katze ]\n\n==============\nWINCONDITIONS\n==============\n\nall katze on ziel\n\n=======\nLEVELS\n=======\n\n(wanna hand make the first few levels)\n\n\nmessage Put your doting cats to bed.\nmessage Level 1/20 \n.....#####\n######...#\n#...o..#.#\n#.p..*o*.#\n##########\n\n\nmessage Who left that cucumber there?\nmessage Level 2/20 \n##########\n#........#\n#........#\n#.g.p.*.o#\n#........#\n#........#\n##########\n\nmessage Level 3/20\n(The only thing cats love more than you is hating cucumbers)\n(not so hard, could be an ok level 2)\n######\n#...o#\n#.#..#\n#*.g.#\n#..p.#\n#....#\n######\n\nmessage Level 4/20\n(almost trivial)\n#######\n#.o...#\n#..g..#\n#.o..p#\n#...*.#\n#.....#\n#..*..#\n#######\n\n\nmessage Level 5/20\n(easy enough - could be level 2?)\n.#######\n.#...*.#\n.#..*..#\n##.p.o.#\n#.g....#\n#o.....#\n########\n\n\n\nmessage Level 6/20\n(reasonable. could be level 2)\n..####...\n###..####\n#....p..#\n#.#.*#m.#\n#....#..#\n#########\n\n\nmessage Level 7/20\n(ok early level 1-2)\n######\n#o...#\n#.m.*#\n#....#\n#.*p.#\n######\n\n\n\nmessage Level 8/20\n(nice level. could be #2 or 3)\n..####.\n###o.##\n#..g..#\n#.#..##\n#*..p#.\n######.\n\n\nmessage Level 9/20\n(nice level. could be level 3/4)\n########\n#...*o.#\n#.*....#\n#..p.g.#\n#####.o#\n....####\n\n\n\n\nmessage Level 10/20\n(haven't solved this yet - tricky / hard to find the solution? but once I tried and concentrated I was able to ?)\n######\n#o..p#\n#.#..#\n#o.g.#\n#*...#\n#..*.#\n######\n\n\nmessage Level 11/20\n(ok late intermediate)\n######\n#po.o#\n#.#g.#\n#*...#\n#....#\n#.*..#\n######\n\n\n\nmessage Level 12/20\n( ok level, but not an ok first level )\n####..\n#*o#..\n#..###\n#.g.p#\n#....#\n#..###\n####..\n\n\nmessage Level 13/20\n(two gurkins! not hard! pleasing!)\n#######\n#...g.#\n#..#..#\n#....g#\n#.*#..#\n##....#\n#o..p.#\n#######\n\n\nmessage Level 14/20\n(ok latish intermediate!)\n#####.\n#o..##\n#....#\n##pg.#\n.##..#\n..##*#\n...###\n\n\nmessage Level 15/20\n(ok late intermediate level)\n#######\n#.o...#\n#..g..#\n#.#...#\n#.o.#.#\n#....*#\n#p.#.*#\n#######\n\n\n\n\n\nmessage Level 16/20\n(bit trial+errory. not high-concept)\n#######\n#.#p..#\n#.**..#\n#.#...#\n#...g##\n#....o#\n#o.#..#\n#######\n\n\nmessage Level 17/20\n(a bit tricky - the solution was not hard but finding it was a bit indirected / trial+errory)\n#######\n##o...#\n#.o#.*#\n#.....#\n#.##..#\n#..g..#\n#.*.p.#\n#######\n\n\n\nmessage Level 18/20\n(unsolved. wtf.)\n..######\n..#....#\n..#..g.#\n####.###\n#..o.##.\n#.#.p.#.\n#...#.#.\n###*..#.\n..#####.\n\n\n\n\nmessage Level 19/20\n(ok hardish level)\n....#########...\n#####..o.o..####\n#.g...#.#.#....#\n#...*...p...*..#\n################\n\n\nmessage Level 20/20\n(intermediate. pleasing)\n......#####\n......#...#\n......#.#.#\n#######g#.#\n#....p..o.#\n#o#*#.#.###\n#......*#..\n#########..\n\nmessage Congratulations. All the cats are in bed, having cucumbers nightmares.\n\n(\n( super hard. do not include)\n......#####\n......#...#\n......#.#.#\n#######.#.#\n#....**...#\n#.#m#.#.###\n#.....po#..\n#########..\n)\n", [1, 3, 3, 0, 1, 0, 2, 2, 3, 0, 1, 0, 0, 0, 2, 3, 0, 1, 2, 2, 2, 1, 1, 0, 3, 3, 2, 3, 0, 1, 0, 0, 0, 0], "background wand:0,0,0,0,0,0,0,\n0,0,0,background:1,1,1,1,\n1,0,0,background ziel:2,2,1,0,\n1,1,0,0,1,0,1,\n0,1,1,0,0,background player:3,1,\n1,1,1,1,0,0,1,\nbackground katze:4,background katze push_up:5,background gurke:6,1,1,0,0,\n0,0,0,0,0,0,0,\n", 35, "1645544413590.2168"] - ], - [ - "Chevron Lodger", - ["title Chevron Lodger\nauthor increpare\nhomepage www.increpare.com\n\n(verbose_logging)\n\ncolor_palette ega\n\nbackground_color #d3beaa\ntext_color #683d15\n(thanks to youAtExample for feedback)\n\n========\nOBJECTS\n========\n\nBackground\n#d3beaa #d3beaa\n00000\n00000\n00100\n00000\n00000\n\n\n\n\nWall\n#7b4b1d #7b4b1d\n00000\n00000\n00100\n00000\n00000\n\n\n\nPlayer_top 1\n#ee8b16\n..0..\n..0..\n.000.\n.000.\n00000\n\n\nplayer_middle 2\n#ee8b16\n\n\nplayer_bottom 3\n#ee8b16\n00000\n00.00\n00.00\n0...0\n0...0\n\n\n\nCrate_top\n#926c3f\n..0..\n..0..\n.000.\n.000.\n00000\n\n\n\ncrate_middle \n#926c3f\n\n\ncrate_bottom\n#926c3f\n00000\n00.00\n00.00\n0...0\n0...0\n\n\n\n\n\n=======\nLEGEND\n=======\n\nplayer = Player_top or player_middle or player_bottom\ncrate = Crate_top or crate_bottom or crate_middle\n\n. = Background\n# = Wall\n\na = crate_top\nb = crate_middle\nc = crate_bottom\n\nplayer_or_crate = player or crate\n\nobstacle = wall or player or crate\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx0 48406107 (snap)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n(level generation QOL things. can comment out later)\ndown [ playeR_top | no player] -> [ Player_top | player_bottom ]\ndown [ Crate_top | no player ] -> [ Crate_top | crate_bottom ]\n\n\ndown [ > player_bottom | Crate_top ] -> [ | player_middle ] sfx0\n\nup [ > player_top | crate_bottom ] -> [ | player_middle ] sfx0\n\nhorizontal [ > Player | Crate ] -> [ > Player | > Crate ]\n\n\n\ndown [ left Crate_top | stationary crate_bottom ] -> [ left Crate_top | left crate_bottom ]\n+ down [ stationary Crate_top | left crate_bottom ] -> [ left Crate_top | left crate_bottom ]\n+ horizontal [ > crate | stationary crate ] -> [ > crate | > crate ] \n\ndown [ right Crate_top | stationary crate_bottom ] -> [ right Crate_top | right crate_bottom ]\n+ down [ stationary Crate_top | right crate_bottom ] -> [ right Crate_top | right crate_bottom ]\n+ horizontal [ > crate | stationary crate ] -> [ > crate | > crate ] \n\n[ > player_or_crate | wall ] -> cancel\n\nlate vertical [ player_middle | crate_middle ] -> [ player_middle | player_middle ]\n\nlate down [ player_middle | crate_bottom ] -> [ player_middle | player_bottom ]\nlate up [ player_middle | crate_top ] -> [ player_middle | player_top ]\n\n==============\nWINCONDITIONS\n==============\n \nno crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 6\n\n(ok level 1)\n#######\n#.....#\n#.#...#\n#a....#\n#c..#.#\n#.1a..#\n#.3c..#\n#######\n\nmessage Level 2 of 6\n\n(ok level 2)\n#########\n#...a...#\n#...c1..#\n#.#.#3..#\n#...a...#\n#...c.a.#\n##..#.c.#\n#########\n\n\nmessage Level 3 of 6\n\n\n(ok level 2.5?)\n###########\n######...##\n######.#.##\n#####....##\n#####....1#\n#...a..#.3#\n#...c...a.#\n#..a....c.#\n#..c...####\n###########\n\n\n(\n(weirdly confusing - could be a level 2.5 ? but could be too similar to 3)\n#########\n#....1a.#\n#....3c.#\n#..#..#.#\n##......#\n#..aa...#\n#..cc...#\n#########\n)\n\nmessage Level 4 of 6\n\n(ok level 3? too similar to level 1 to follow it?)\n##########\n#........#\n#........#\n#..#.#...#\n#.a.1....#\n#.c.3#.#.#\n#..#..a..#\n#.....c..#\n##########\n\nmessage Level 5 of 6\n\n(NICE LEVEL I used my brain and solved it)\n###########\n#######...#\n#####.....#\n#####...a.#\n#.a1....c.#\n#.c3...#..#\n#.....a...#\n#.....c...#\n###########\n\nmessage Level 6 of 6\n\n(perfectly ok level! lots of nice considerations. good enough!)\n############\n#######....#\n######.....#\n######..a#.#\n######..c..#\n######.....#\n#...a.aa.#.#\n#.1.c.cc...#\n#.3......a.#\n###......c.#\n############\n\nmessage Congratulations. You know your chevrons well.\n\n(HARD. TRY AGAIN) \n(SOLVED IT DON'T LIKE IT)\n(#############\n#######.....#\n#######1....#\n#######3..#.#\n#######..#..#\n#######.a.a.#\n#.....a.c.c.#\n#.....c.....#\n#...a.....a.#\n#...c.....c.#\n#############\n\n)\n\n\n(\n(meh)\n#########\n#..a....#\n#..c..a.#\n#....1c.#\n#...a3#.#\n#...c...#\n#.......#\n#########\n)\n\n(\n(meh)\n#########\n#....a1.#\n##...c3.#\n#.#..#..#\n#....##.#\n#.#..a..#\n##...c..#\n##..##..#\n#.......#\n#..a....#\n#..c.a..#\n#.#.#c..#\n#.......#\n#########\n)\n\n((no: meh)\n(ok!)\n#####\n#.a.#\n#ac.#\n#c..#\n#..a#\n#..c#\n#..##\n#..a#\n#..c#\n#.a.#\n#1c.#\n#3..#\n#...#\n#####\n)\n(\n(Eeeh)\n#####\n#a..#\n#c.##\n#.a.#\n#.c.#\n#.a.#\n#.ca#\n#.1c#\n#.3a#\n#a.c#\n#ca.#\n#.c.#\n#...#\n#####\n)\n\n(\n(meh)\n#####\n#.a.#\n#1c.#\n#3..#\n#...#\n#.#.#\n#..##\n#...#\n#...#\n#.a.#\n#.c.#\n#aaa#\n#ccc#\n#####\n)\n(\n(too easy)\n#####\n#aa.#\n#cca#\n#1ac#\n#3c.#\n#...#\n#.a.#\n#.c.#\n#a..#\n#c..#\n#.#.#\n#.a.#\n#.c.#\n#####)\n\n(\n#############\n#######.....#\n#######.....#\n#######.....#\n#######.....#\n#######.....#\n#...........#\n#...........#\n#...........#\n#...........#\n#############\n\n)\n(\n(non trivial and has an idea but you can probably find better)\n#############\n#######..#..#\n#######.#...#\n#######....1#\n#######.a..3#\n#######.c.a.#\n#.#....a..c.#\n#......c....#\n#.....a...a.#\n#.....c...c##\n#############\n)\n\n\n(insoluble ? wtf? oh maybe old version that didn't transfer movements correctly)\n(#############\n########.a#.#\n#######a.c###\n#######c....#\n#######1....#\n#######3....#\n#.....a..#..#\n#....ac.....#\n#....c....a.#\n#.........c.#\n#############\n)\n(\n(meh)\n#############\n#######...1.#\n#######..a3.#\n#######..c..#\n#######.....#\n#######.....#\n#.....a.a...#\n#.....c.c..a#\n#.....a....c#\n#.....c....##\n#############\n)\n\n(meh)(\n#############\n#######..a..#\n#######.1c..#\n#######a3.a.#\n#######c..c.#\n#######a.##.#\n##.....c....#\n#...........#\n#.a.........#\n#.c.#.......#\n#############\n)\n\n(90% meh)\n(\n#############\n#######.#...#\n#######.....#\n#######....##\n#######...1.#\n#######.a.3.#\n#...aa.ac...#\n#...cc.c....#\n##.......a..#\n##.....##c..#\n#############)\n\n(meh)\n(\n#############\n#######.#...#\n#######.....#\n########.#.a#\n########aa1c#\n#######.cc3.#\n#....a......#\n#....c......#\n#.#.......a.#\n#.#.......c.#\n#############\n)\n\n(\n(meh)\n#############\n#######a.a..#\n#######c.c..#\n#######.a.#.#\n#######.c..##\n#######.....#\n#..........##\n#....#...a..#\n#....a...c.1#\n##...c..#..3#\n#############\n)\n\n\n\n(insoluble :[\n#############\n#######.a...#\n#######.c...#\n#######.#...#\n#######.....#\n#######..a..#\n#.a......c1##\n#.c.......3.#\n#...a....a..#\n#...c.#..c..#\n#############\n)\n(insoluble :[\n#############\n#######.#...#\n#######.....#\n#######..#..#\n#######.....#\n#######.....#\n#a#.1...a...#\n#c..3a..c.a.#\n#....c.a..c.#\n#......c....#\n#############\n)\n(insoluble :[\n#############\n#######..#..#\n########....#\n#######.1...#\n#######.3...#\n#######...a.#\n#.......aac.#\n#....a..cc.##\n#....ca.....#\n#.....c....##\n#############\n)\n(trivial\n#############\n#######.1...#\n########3...#\n#######.#...#\n#######..aa.#\n########.cca#\n#........a.c#\n##.......c..#\n#....#..a...#\n#.......c...#\n#############\n)\n(almost trivial\n#############\n#######...#.#\n#######.a...#\n#######.c...#\n#######.a...#\n#######.caa.#\n#.#.1....cc.#\n#...3....a..#\n#.#.a....c..#\n#.##c.......#\n#############\n)\n(trivial\n#############\n#######.....#\n#######.....#\n########..a.#\n#######.1.c.#\n#######.3...#\n#....a.#a...#\n#....c..c.a.#\n##...a.a..c.#\n#....c.c....#\n#############\n)\n(trivial\n#############\n#######.a...#\n#######.c...#\n#######.....#\n#######.....#\n#######.....#\n#......1aa..#\n#.....#3cc..#\n##..a.a.....#\n#...c.c.....#\n#############\n)\n\n(trivial\n#############\n#######.##..#\n#######.....#\n#######.a...#\n#######.c...#\n#######.....#\n#...a1....a.#\n#...c3....c.#\n#a......aa..#\n#c......cc..#\n#############\n)\n\n(\n(hard but also meh)\n#############\n########....#\n#######.a.1.#\n#######.c.3a#\n#######....c#\n#######...a.#\n#.....a..ac.#\n#.....c..c..#\n#........#a.#\n#.#.#.....c.#\n#############\n)\n(unsolvable :'[\n#############\n#######..#..#\n########....#\n#######.1...#\n#######.3...#\n#######...a.#\n#.......aac.#\n#....a..cc.##\n#....c.a....#\n#......c...##\n#############\n)\n\n((meh)\n(there's an idea to this level, which I like - could it be expanded?)\n#############\n########...##\n#######a..1a#\n#######c..3c#\n#######....a#\n#######....c#\n#aa.........#\n#cc.........#\n#...........#\n#...........#\n#############\n)\n\n(meh\n#############\n########....#\n#######.....#\n#######...#.#\n#######...a.#\n#######...ca#\n#........a.c#\n#...1....c.##\n#...3..a..a.#\n#......c..c.#\n#############\n)\n(Tricky?)\n(meh)\n(\n#############\n#######.....#\n#######.a...#\n#######.c..a#\n#######....c#\n#######.1..a#\n#.a.....3#.c#\n#.c.......a.#\n#.........c.#\n#........#.##\n#############\n)\n(\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#####\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#####\n\n#####\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#####\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n)\n(meh it's ok but I already have somethign like this?)\n(\n#########\n#.a.....#\n#.c.....#\n#...#.#1#\n#......3#\n#.#.a...#\n#..#c...#\n#########\n)\n(\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n##.....##\n##.....##\n###...###\n###...###\n####.####\n####.####\n#########\n\n(meh)\n#########\n#.#.....#\n#.a.....#\n#.....#.#\n#..#.#..#\n#..a1a..#\n#.......#\n##.....##\n##.....##\n###...###\n###...###\n####.####\n####.####\n#########\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.1..a.a..#\n#.3..b.b..#\n#....c.c..#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n)\n(meh)\n(\n#########\n###...###\n##.....##\n#.......#\n#.......#\n#.......#\n#.......#\n##aa1aa##\n##cc3cc##\n###aaa###\n###ccc###\n####a####\n####c####\n#########\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#...1...#\n#...3...#\n##aaaaa##\n##ccccc##\n###aaa###\n###ccc###\n####a####\n####c####\n#########\n\n#########\n#########\n####.####\n###...###\n##.....##\n#.......#\n#.......#\n##aa1aa##\n##cc3cc##\n###aaa###\n###ccc###\n####a####\n####c####\n#########\n)\n\n(\nTRANSFORM\n\nchoose 1 down [ no obstacle | no obstacle ] -> [ player_top | player_bottom ]\nchoose 5 down [ no obstacle | no obstacle ] -> [ crate_top | crate_bottom ]\nchoose 10 [ no crate no player ] -> [ wall ]\n\n----\n\n\n(choose 1 option 0.5 [ wall ] -> []\n+ option 0.5 [ no obstacle ] -> [ wall ])\n\nchoose 5 option 0.2 [ no obstacle ] -> [ wall ]\n+ option 0.2 []->[]\n\nchoose 5 down [ no obstacle | no obstacle ]-> [ crate_top | crate_bottom] \nchoose 1 down [ no obstacle | no obstacle ] -> [ player_top | player_bottom]\n(choose 1 down [ no obstacle | no obstacle ] [crate_top|crate_bottom]-> [ crate_top | crate_bottom] [|])\n\n)\n", [3, 2, 2, 1, 1, 1, 0, 3, 3, 2, 3, 3, 0, 0, 0, 3, 0, 3, 0, 3, 3, 2, 2, 2, 0, 1, 1, 3, 2, 2, 2, 1, 1, 0, 0, 1, 1, 2, 1, 1, 3, 3, 3, 3, 0, 0, 0, 0, 3, 3, 3, 2, 1, 2, 1, 1, 1, "undo", "undo", 3, 0, 1, 1, 2, 1, 1], "background wall:0,0,0,0,0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,0,0,0,0,0,\nbackground crate_top:2,background crate_bottom:3,1,1,0,0,0,0,0,background player_top:4,background player_middle:5,\n5,background player_bottom:6,0,0,0,0,0,1,1,1,1,\n0,0,0,1,1,1,1,1,1,0,0,\n0,1,1,1,1,1,1,0,0,1,1,\n1,1,0,1,1,0,0,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,\n1,0,0,0,0,0,0,0,0,0,0,\n", 9, "1645544442907.0366"] - ], - [ - "Two-Tone Tango", - ["title Two-Tone Tango\nauthor increpare\nhomepage www.increpare.com\n\nrequire_player_movement\n\n\n========\nOBJECTS\n========\n\nBackground\n#58875a\n\n\nTarget\ntransparent #b8ca58\n00000\n00100\n01110\n00100\n00000\n\n\nWall\n#906f80 #5f4351\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nlightblue\n\nFreund\n#355278\n\nCrate\n#b39b2a transparent\n00000\n01110\n01110\n01110\n00000\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nf = Freund\n* = Crate\n@ = Crate and Target\nO = Target\n\npusher = player or freund or crate\n\nblocker = player or freund or crate or wall\n=======\nSOUNDS\n=======\n\nCrate MOVE 26816907\nsfx1 15668107 (disconnect)\nsfx2 62739107 (connect)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, freund, Wall, Crate\n\n======\nRULES\n======\n\n[ up player | Freund ] -> [ up player | up Freund ]\n[ down player | Freund ] -> [ down player | down Freund ]\n[ left player | Freund ] -> [ left player | left Freund ]\n[ right player | Freund ] -> [ right player | right Freund ]\n\n\nvertical [ up freund | stationary freund ] -> [ up freund | up freund ]\nvertical [ down freund | stationary freund ] -> [ down freund | down freund ]\nvertical [ left freund | stationary freund ] -> [ left freund | left freund ]\nvertical [ right freund | stationary freund ] -> [ right freund | right freund ]\n\n(forward propagation)\n[ > pusher | Crate ] -> [ > pusher | > Crate ]\n\n\n(backwards propagation)\n\n[ > pusher | stationary blocker ] -> [ stationary pusher | stationary blocker ]\n+ vertical [ up freund | stationary freund ] -> [ stationary freund | stationary freund ]\n+ vertical [ down freund | stationary freund ] -> [ stationary freund | stationary freund ]\n+ vertical [ left freund | stationary freund ] -> [ stationary freund | stationary freund ]\n+ vertical [ right freund | stationary freund ] -> [ stationary freund | stationary freund ]\n\n(again forwards propagation)\n[ stationary pusher | > crate ] -> [ stationary pusher | stationary crate ]\n\n[stationary player ]-> cancel\n\n[ < player | stationary freund ] -> sfx1\n[ > player | | stationary freund ] -> sfx2\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1/8\n(could be ok level 1?)\n############\n#..........#\n#....*....o#\n#..f...p...#\n#..f#..p#..#\n############\n\n\nmessage Level 2/8\n(pleasant early)\n#######\n#..f..#\n#..f..#\n#o@...#\n#..p*.#\n#..p#.#\n##....#\n#######\n\n\nmessage Level 3/8\n(ok level 3? no 2)\n######\n#...o#\n##.f##\n#..f.#\n#..*.#\n#p...#\n#p...#\n######\n\n\nmessage Level 4/8\n(Really nice intermediate level!)\n#########\n#p..#...#\n#p....#.#\n#.*.....#\n#....f..#\n#...#f.o#\n#...#...#\n#########\n\n( (Easy but not bad. ok first level?) )\n( ###### )\n( #.#..# )\n( #.o..# )\n( #f...# )\n( #f.*p# )\n( #..*p# )\n( #...o# )\n( ###### )\n\n\n( (maybe ok early level? actually kinda tricky? maybe leave out?) )\n( ########## )\n( #..*...o.# )\n( #...f@...# )\n( #p..f....# )\n( #p..#....# )\n( ########## )\n\n( (p. easy. maybe for start of game. maybe leave out? not outstanding, just ok) )\n( ###### )\n( #o...# )\n( #..*o# )\n( #..p.# )\n( #.fp*# )\n( #.f..# )\n( #.*o.# )\n( ###### )\n\n\n( (easy but ok, maybe level 2-3? so lala) )\n( ########## )\n( #..f..o*.# )\n( #o.f..*p.# )\n( #@.....p.# )\n( ##.....### )\n( ########## )\n\n( (pretty ok? level 1 or 2? okish) )\n( ###### )\n( #..f.# )\n( #p.f.# )\n( #p*..# )\n( #.*.o# )\n( #...*# )\n( #o..o# )\n( ###### )\n\n\n( (Early hard. fine? not too memeorable meh) )\n( ###### )\n( #...o# )\n( #o.o*# )\n( #..f.# )\n( #**f.# )\n( #..p.# )\n( #..p.# )\n( ###### )\n\n\nmessage Level 5/8\n(a bit tricky but I could reason through it, OK)\n######\n#.#.p#\n#...p#\n#o..*#\n#.**o#\n#.f.o#\n#.f..#\n######\n\n\n\n\nmessage Level 6/8\n(late. pretty fun! nice to figure out / work through, if not exactly a lynchpin level)\n######\n#...o#\n#....#\n#...f#\n#..*f#\n#p**o#\n#p.o.#\n######\n\n\nmessage Level 7/8\n(INTERESTING intermediate. got stuck for a weird amount of time lol)\n######\n#o*.o#\n#p..f#\n#p*#f#\n#.*..#\n#....#\n#..o.#\n######\n\n\nmessage Level 8/8\n(funny! late intermediate/early late difficulty. definitely include)\n######\n#p...#\n#p...#\n##*.@#\n#f...#\n#fo..#\n#o.*.#\n######\n\nmessage Congratulations! You are the master of tango.\n\n( (got weirdly stuck for a while, but not hard - late early) )\n( ###### )\n( #...o# )\n( #p...# )\n( #p.@.# )\n( #..*.# )\n( #...f# )\n( #...f# )\n( ###### )\n\n( (ok intermediate? feel like I've solved it before though ,but dont' remmber the solution. maybe pass on this one?) )\n( ####### )\n( #.....# )\n( #.....# )\n( #....p# )\n( ##*..p# )\n( #..f@## )\n( #..f.o# )\n( ####### )\n\n( (easy but not appropriate for eearly game IMO. leave out) )\n( ########## )\n( #o.f...*p# )\n( #..f.o*.p# )\n( #........# )\n( ##.#.....# )\n( ########## )\n\n\n( (Easy ish but not so interesting/useful as intro level?) )\n( ######### )\n( #..o*f.o# )\n( #...*fo*# )\n( #p......# )\n( #p......# )\n( ######### )\n\n( (don't like can realize mistake at the end and need to backtrack) )\n( ########## )\n( ##..o..*p# )\n( #.......p# )\n( #...**.f.# )\n( ##..o.of.# )\n( ########## )\n\n( (trivial) )\n( ########## )\n( #.....po.# )\n( #f..*.p..# )\n( #f.....*.# )\n( #..@.o...# )\n( ########## )\n\n( (trivial) )\n( ########## )\n( #...*o..f# )\n( #...@.#.f# )\n( #p.....*.# )\n( #p......o# )\n( ########## )\n\n\n( (meh. not hard. not fun for me) )\n( ########## )\n( ##...pof.# )\n( #...*p.f.# )\n( #.o...*..# )\n( #..o...*.# )\n( ########## )\n\n\n\n( (perfectly chill/lovely/not hard. wtf? I guess i mistranscribed) )\n( ###### )\n( ##...# )\n( ##...# )\n( ##...# )\n( ##...# )\n( ##p..# )\n( #fp..# )\n( #f.*.# )\n( #o..## )\n( ###### )\n\n\n\n( (meh) )\n( ######### )\n( #....po.# )\n( #...#p..# )\n( ##*.....# )\n( #....f.## )\n( #...#f..# )\n( #...#.#.# )\n( ######### )\n\n( (could be ok as intermediate level? not sure it's conceptually sharp though, but I could solve it with my brain) )\n( ###### )\n( #....# )\n( #..o.# )\n( #p**f# )\n( #po*f# )\n( #..*o# )\n( #o..## )\n( ###### )\n\n\n( (trivialish/boring) )\n( ######## )\n( ####...# )\n( ####...# )\n( ####...# )\n( ####..p# )\n( ####*op# )\n( #f*....# )\n( #f.....# )\n( #o.....# )\n( #..o*..# )\n( ######## )\n\n( (trivialish/boring) )\n( ######## )\n( ####...# )\n( ####.op# )\n( ####.op# )\n( ####.*.# )\n( ####*..# )\n( #......# )\n( #f.....# )\n( #fo*...# )\n( #......# )\n( ######## )\n\n( (hard work, accidentally found solution. skip it) )\n( ######## )\n( ####...# )\n( ####...# )\n( ####...# )\n( ####.o.# )\n( ####.p.# )\n( #.f..p*# )\n( #.f..*.# )\n( #..o*.o# )\n( #......# )\n( ######## )\n\n( (trivial) )\n( ######## )\n( ####...# )\n( ####f..# )\n( ####fo.# )\n( ####...# )\n( ####.*.# )\n( #....o.# )\n( #.*..@p# )\n( #.....p# )\n( #......# )\n( ######## )\n\n\n\n( (trivial) )\n( ######## )\n( ####...# )\n( ####o*o# )\n( ####p..# )\n( ####p..# )\n( ####.*.# )\n( #...o.*# )\n( #.f....# )\n( #.f....# )\n( ######## )\n\n( (trivialish. leave it) )\n( ######## )\n( ####...# )\n( ####...# )\n( ####*o.# )\n( ####*..# )\n( ####...# )\n( #..f.*p# )\n( #..f..p# )\n( #....oo# )\n( ######## )\n\n( (can't figure it out. try solve again later. meh solved it what an anticlimax. screw this level.) )\n( ###### )\n( #f*o.# )\n( #f...# )\n( #*p*o# )\n( #.p*.# )\n( #oo..# )\n( #....# )\n( ###### )\n\n\n( \n\n\n########\n####...#\n####...#\n####...#\n####...#\n####...#\n#......#\n#......#\n#......#\n#......#\n########\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n##########\n\n############\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n\n##########\n######...#\n######...#\n######...#\n######...#\n######...#\n#........#\n#........#\n#........#\n##########\n\n########\n####...#\n####...#\n####...#\n####...#\n####...#\n#......#\n#......#\n#......#\n########\n)\n(transformation\n\nchoose 5 [ ] -> [ wall ]\nchoose 1 down [ no blocker | no blocker ] -> [ player | player ]\nchoose 1 down [ no blocker | no blocker ] -> [ freund | freund ]\nchoose 2 down [ no blocker ] -> [ crate ]\nchoose 2 down [ no wall no player no freund no target ] -> [ target ]\n)\n", [0, 2, 2, 1, 3, 0, 0, 0, 3, "restart", 0, 1, "restart", 2, 0, 1, 1, 1, 0, 0, 0, 3, 3, 2, 2, 1, 3, 2, 1, 0, 0, 0, 3, 3, 2, 1, 3, 2, 1, 2, 2, 1], "background wall:0,0,0,0,0,0,0,\n0,0,background:1,1,background crate target:2,1,1,\n0,0,0,1,1,background target:3,background crate:4,\nbackground player:5,5,0,0,1,1,1,\n1,1,1,0,0,1,1,\n1,1,0,1,0,0,1,\n1,1,background freund:6,6,1,0,0,\n0,0,0,0,0,0,0,\n", 3, "1645544569499.8286"] - ], - [ - "Hole-Stuffer", - ["title Hole-Stuffer\nauthor increpare\nhomepage www.increpare.com\n\n\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\n\nWall\n#493c2b #664b28\n00000\n01000\n00100\n00010\n00000\n \n\n\nPlayer\ngreen\n\n\n\nwintoken\ntransparent\n\nrandommoved\ntransparent\n\n\nplayer_1\n#2f484e #c62a6f #852e55 #af2f68\n01111\n23333\n23313\n23133\n23333\n\nplayer_2\n#c62a6f #af2f68 #852e55 #ffffff\n00000\n11211\n12021\n20302\n22022\n\nplayer_3\n#c62a6f #2f484e #af2f68\n00001\n22220\n20220\n22020\n22220\n\nplayer_4\n#852e55 #af2f68 #c62a6f\n01212\n01212\n01212\n01212\n01212\n\n\nplayer_5\n#852e55 #af2f68 #c62a6f #2f484e\n01212\n01212\n01212\n01112\n30003\n\n\n\ncrate\n#2f484e #fca556 #bd5d07 #eb8931\n01110\n23331\n23331\n23331\n02220\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = wall and randommoved\n\nobstacle = wall or crate\npusher = crate or player\n\n\nsprite_player = player_1 or player_2 or player_3 or player_4 or player_5 \n\n\nsprite = sprite_player \n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nwintoken\nrandommoved\nsprite\n\n\n======\nRULES\n======\n\n\n[ stationary randommoved ] [ > pusher | stationary Crate ] -> [ action randommoved] [ > pusher | > Crate ]\n\n[ action randommoved ] [ > pusher | stationary Crate ] -> cancel\n\n[ > pusher | wall ] -> cancel \n\n\n\nlate [ sprite ] -> []\n\n\nlate down [ no player | player | obstacle | obstacle | obstacle ] -> [ | player wintoken | obstacle | obstacle | obstacle ] again\n\n\n\n\nlate right [ player | player | player ] -> [ player player_1 | player player_2 | player player_3 ]\nlate down [ player_1 | | | ] -> [ player_1 | player_4 | player_4 | player_5 ]\nlate down [ player_3 | | | ] -> [ player_3 | player_4 | player_4 | player_5 ]\n==============\nWINCONDITIONS\n==============\n\nsome wintoken\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 4\n\n@###########\n#..........#\n#..........#\n#..........#\n#.ppp......#\n#.p.p......#\n#.p.p..***.#\n#.p.p......#\n#..........#\n#..........#\n############\n\nmessage Level 2 of 4\n\n\n@########\n#..ppp..#\n#..p.p..#\n#..p.p..#\n#..p.p..#\n#..***..#\n#.......#\n#.......#\n#########\n\n\nmessage Level 3 of 4\n\n@######\n#.....#\n#.....#\n#.....#\n#.....#\n#...*.#\n#ppp..#\n#p.p*.#\n#p.p..#\n#p.p*.#\n#######\n\nmessage Level 4 of 4\n\n@########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#..***..#\n#..ppp..#\n#..p.p..#\n#..p.p..#\n#..p.p..#\n#########\n\nmessage Congratulations, you aul hole-stuffer.\n\n\n\n", [3, 2, 2, 1, 1, 1, 0, 0, 1, 1, 2, 1, 1, 0, 3, 3, 3, 2, 1, 1, 2, 3, 3, 2, 1, 1, 0, 0, 1, 1, 3, 3, 0, 1, 1, 2, 2, 1, 3, 2, 1, 1], "background randommoved wall:0,background wall:1,1,1,1,1,1,1,1,\n1,background:2,2,2,2,background crate:3,2,2,1,\n1,2,2,2,background player player_1:4,background player player_4:5,5,background player player_5:6,1,\n1,2,2,2,background player player_2:7,2,2,3,1,\n1,2,2,2,background player player_3:8,5,5,6,1,\n1,2,2,2,2,2,2,2,1,\n1,2,2,2,2,3,2,2,1,\n1,2,2,2,2,2,2,2,1,\n1,1,1,1,1,1,1,1,1,\n", 3, "1645544598726.4905"] - ], - [ - "Wand Spinner", - ["title Wand Spinner\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #5b6ee1\n\n(thanks to bluemelon555 for the assistance, and ggn2, and bvoq )\n\n\n\n========\nOBJECTS\n========\n\nBackground\n#5b6ee1\n\ncrate\n#abb5f1 #5f4a18\n01110\n1...1\n1...1\n1...1\n01110\n\nTarget_h\ntransparent #c71fa9 transparent transparent\n00000\n11111\n22223\n11111\n00000\n\nTarget_v\ntransparent #c71fa9 transparent transparent\n01210\n01210\n01210\n01210\n01210\n\nWall\n#3f3f74\n\nPlayer\n#5b6ee1 #5fcde4 #000000\n01110\n12121\n11111\n11211\n01110\n\nstick_w 1\n#abb5f1 #323c39\n.....\n.....\n00111\n.....\n.....\n\nstick_nw 2\n#abb5f1 #323c39\n.....\n.0...\n..0..\n...1.\n....1\n\nstick_n 3\n#abb5f1 #323c39\n..0..\n..0..\n..1..\n..1..\n..1..\n\nstick_ne 4\n#ffffff #abb5f1 #323c39\n.....\n...1.\n..1..\n.2...\n2....\n\n\nstick_e 5\n#323c39 #abb5f1\n.....\n.....\n00011\n.....\n.....\n\n\nstick_se 6\n#323c39 #abb5f1\n0....\n.0...\n..1..\n...1.\n.....\n\nstick_s 7\n#323c39 #abb5f1\n..0..\n..0..\n..0..\n..1..\n..1..\n\nstick_sw 8\n#323c39 #abb5f1\n....0\n...0.\n..1..\n.1...\n.....\n\nmoved\ntransparent\n\ncon_ne\ntransparent\n\ncon_nw\ntransparent\n\ncon_se\ntransparent\n\ncon_sw\ntransparent\n\ntl\ntransparent\n\n\n\n=======\nLEGEND\n=======\nstick = stick_w or stick_nw or stick_n or stick_ne or stick_e or stick_se or stick_s or stick_sw\nstick_h = stick_e or stick_w\n\nstick_v = stick_n or stick_s\n\n. = Background\n# = Wall\nP = Player\n\n\n9 = target_h\n0 = Target_v\n\ntarget = target_h or Target_v\no = crate\nplayer_or_crate = player or crate\nstick_or_crate = stick or crate\nplayer_or_crate_or_stick = player or crate or stick\n\n@ = wall and tl\n\nobstacle = player or stick or crate or wall\n\na = target_v and stick_n\ns = target_v and stick_s\nd = target_h and stick_w\nf = target_h and stick_e\n\nz = target_v and stick_w\nx = target_v and stick_e\nc = target_h and stick_n\nb = target_h and stick_s\n\n=======\nSOUNDS\n=======\n\nstick move 12743307\nendlevel 58303907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, stick,crate\nmoved\ncon_ne, con_nw, con_se, con_sw\ntl\n\n\n======\nRULES\n======\n\n\n\n[ > player_or_crate | stick_or_crate ] -> [ > player_or_crate | > stick_or_crate ]\n\ndown [ left stick_n no moved | stick_s no moved ] -> [ left stick_nw moved | stick_se moved ]\n+ down [ right stick_n no moved | stick_s no moved ] -> [ right stick_ne moved | stick_sw moved ]\n+ down [ stick_n no moved | left stick_s no moved ] -> [ stick_ne moved | left stick_sw moved ]\n+ down [ stick_n no moved | right stick_s no moved ] -> [ stick_nw moved | right stick_se moved ]\n\n+ right [ down stick_w no moved | stick_e no moved ] -> [ down stick_sw moved | stick_ne moved ]\n+ right [ up stick_w no moved | stick_e no moved ] -> [ up stick_nw moved | stick_se moved ]\n+ right [ stick_w no moved | down stick_e no moved ] -> [ stick_nw moved | down stick_se moved ]\n+ right [ stick_w no moved | up stick_e no moved ] -> [ stick_sw moved | up stick_ne moved ]\n\n\n+ right [ right stick_nw no moved | ] -> [ right stick_n moved | right con_ne ]\n+ right [ up stick_nw no moved | ] -> [ right stick_n moved | right con_ne ]\n+ down [ right con_ne | stick_se ] -> [ | stick_s ]\n\n+ down [ down stick_nw no moved | ] -> [ down stick_w moved | down con_se ]\n+ down [ left stick_nw no moved | ] -> [ down stick_w moved | down con_se ]\n+ right [ down con_se | stick_se ] -> [ | stick_e ]\n\n+ left [ left stick_se no moved | ] -> [ left stick_s moved | left con_se ]\n+ left [ down stick_se no moved | ] -> [ left stick_s moved | left con_se ]\n+ up [ left con_se | stick_nw ] -> [ | stick_n ]\n\n+ up [ up stick_se no moved | ] -> [ up stick_e moved | up con_ne ]\n+ up [ right stick_se no moved | ] -> [ up stick_e moved | up con_ne ]\n+ left [ up con_ne | stick_nw ] -> [ | stick_w ]\n\n\n+ left [ left stick_ne no moved | ] -> [ left stick_n moved | left con_nw ]\n+ left [ up stick_ne no moved | ] -> [ left stick_n moved | left con_nw ]\n+ down [ left con_nw | stick_sw ] -> [ | stick_s ]\n\n+ down [ down stick_ne no moved | ] -> [ down stick_e moved | down con_se ]\n+ down [ right stick_ne no moved | ] -> [ down stick_e moved | down con_se ]\n+ left [ down con_se | stick_sw ] -> [ | stick_w ]\n\n+ right [ right stick_sw no moved | ] -> [ right stick_s moved | right con_sw ]\n+ right [ down stick_sw no moved | ] -> [ right stick_s moved | right con_sw ]\n+ up [ right con_sw | stick_ne ] -> [ | stick_n ]\n\n+ up [ up stick_sw no moved | ] -> [ up stick_w moved | up con_nw ]\n+ up [ left stick_sw no moved | ] -> [ up stick_w moved | up con_nw ]\n+ right [ up con_nw | stick_ne ] -> [ | stick_e ]\n\n\n+ [ stationary tl ] [ > crate | stationary stick_or_crate ] -> [ action tl ] [ > crate | > stick_or_crate ]\n+ [ action tl ] -> [ stationary tl ]\n\n+ [ stationary tl ] [ > stick | stationary stick_or_crate ] -> [ action tl ] [ > stick | > stick_or_crate ]\n+ [ action tl ] -> [ stationary tl ]\n\n[ > player_or_crate_or_stick | wall ] -> cancel\n\nlate [moved]->[]\n\n\n==============\nWINCONDITIONS\n==============\nall Target_h on stick_h \nall Target_v on stick_V\n\n=======\nLEVELS\n=======\n\n\nmessage 1 / 18\n(ok level 1?)\n@###..\n#..#..\n#..###\n#.399#\n#.7.p#\n#..###\n####..\n\n\nmessage 2 / 18\n(kinda easy but not bad?)\n@####.\n#0..##\n#03..#\n##7..#\n.##p.#\n..##.#\n...###\n\n\nmessage 3 / 18\n(easy but fun manipulation? could be level 1 but maybe too constrained?)\n@#####.\n#.3..##\n#.7..0#\n#993p0#\n#..7..#\n#######\n\n( (level 2?) )\n( @##### )\n( #99..# )\n( #.#..# )\n( #....# )\n( #.15.# )\n( #p...# )\n( ###### )\n\n\nmessage 4 / 18\n(ok late-early)\n@######\n#.3.p.#\n#.7..0#\n#1f9.0#\n#.....#\n#######\n\nmessage 5 / 18\n(could be ok easy level)\n.######\n.#99#.#\n@#.15.#\n#.3.#.#\n#pb9..#\n#######\n\nmessage 6 / 18\n(easy enough to think through?)\n@####.\n#..3##\n#.9b.#\n#df..#\n#p...#\n######\n\nmessage 7 / 18\n(simple-enough)\n@#####\n#..a.#\n#15s.#\n#..#0#\n#p..0#\n######\n\n\n\nmessage 8 / 18\n(late-easy kinda fine?)\n@######\n#.#.3.#\n#..0b9#\n#p.z5.#\n#...#.#\n#######\n\n( (not too hard but kinda fun?) )\n( @.#####.... )\n( ###99.##### )\n( #.99...33.# )\n( #.#...#77.# )\n( #.....#..p# )\n( ########### )\n\nmessage 9 / 18\n(reduced above. still solvable)\n.@####....\n##99.#####\n#99...33.#\n#....#77.#\n######..p#\n.....#####\n\nmessage 10 / 18\n@#####.#####\n#...3###.0.#\n#...7....0.#\n#####.p.df.#\n....########\n\nmessage 11 / 18\n(easy. feeling lukewarm about it)\n@######\n#.a...#\n#.s.#.#\n#015..#\n#0p#.##\n#######\n\n\nmessage 12 / 18\n(ok free early level?)\n@#######\n#.3....#\n#.7..99#\n#.3.p.0#\n#.7..#0#\n########\n\nmessage 13 / 18\n(not hard. kinda fun/silly)\n@########\n#p......#\n#.#.#a#.#\n#.15.s99#\n#.#.#.#.#\n#.......#\n#########\n\nmessage 14 / 18\n(ok-ish intermediate level)\n@######\n#.#03.#\n#.307.#\n#.7pc9#\n#99.7.#\n#######\n\n\nmessage 15 / 18\n(slightly tricky + fun trick to notice)\n@#####\n#..3.#\n#.#7.#\n#00.a#\n#0a.s#\n#.7p.#\n######\n\nmessage 16 / 18\n(intermediate?)\n@####.\n#.9c##\n#.9b0#\n#1530#\n#p.7.#\n######\n\nmessage 17 / 18\n(kinda chilll / ok!)\n@######\n#.....#\n#.zfc.#\n#.a.sp#\n#.bdx.#\n#.....#\n#######\n\nmessage 18 / 18\n(hardish but ok?)\n.@####\n##.3.#\n#.07.#\n#.0df#\n#p...#\n######\n\nmessage Congratulations! You've graduated from the college of magicians' assistants with flying colours! \n\n( (I like this level) )\n( @###### )\n( #.a.### )\n( #.sp### )\n( #.3.0.# )\n( #.7.0.# )\n( ####### )\n\n\n(( NOT BAD BUT )(Easyish. ok? not soo interesting) )\n( @###### )\n( #.99.## )\n( #..3.p# )\n( #.3b9.# )\n( #.7.### )\n( ####### )\n\n( (Easy but funish? ok level 2?) )\n( @###### )\n( #.3..p# )\n( #.799.# )\n( #.3...# )\n( #.799.# )\n( #.3...# )\n( #.799.# )\n( ####### )\n\n( (interesting goal, but too bloody hard. not solved but solution gawked at) )\n( @###### )\n( #0p3..# )\n( #0.730# )\n( ##1fb0# )\n( ###...# )\n( ####### )\n\n( (trivial) )\n( @###### )\n( ##.p3.# )\n( #df.7.# )\n( #9930.# )\n( #..70## )\n( ####### )\n\n( (meh tolerable but meh) )\n( @###### )\n( #p0..0# )\n( #.0330# )\n( #.377.# )\n( #9b.#.# )\n( ####### )\n\n( (trivial) )\n( @###### )\n( #.99.p# )\n( #.3.c9# )\n( #.7.7.# )\n( #.df.## )\n( ####### )\n\n( (meh) )\n( @######## )\n( ######### )\n( ###p99.## )\n( ###15..## )\n( ###..#### )\n( ####.#### )\n( ####.#### )\n( ####..### )\n( ##....### )\n( ##....### )\n( ######### )\n( ######### )\n\n( (same old) )\n( @###### )\n( #...30# )\n( #.0.70# )\n( #.z5..# )\n( #..#.p# )\n( ####### )\n\n( (same old) )\n( @######## )\n( #..3....# )\n( ##37....# )\n( #.7.p99## )\n( #...99.## )\n( ######### )\n\n( (same old) )\n( (not hard. ok?) )\n( @######## )\n( #.3.....# )\n( #.799.#p# )\n( #.3..99.# )\n( #.7.....# )\n( ######### )\n\n\n( (meh) )\n( (not hard) )\n( @###### )\n( #p.a..# )\n( #..s15# )\n( #.df..# )\n( #.99..# )\n( ####### )\n\n( (meh) )\n( (intermediate ok?) )\n( @##### )\n( #0...# )\n( #0#30# )\n( #..70# )\n( #151x# )\n( #p..0# )\n( ###### )\n\n\n( (meh trial and error solution) )\n( @##### )\n( #..3.# )\n( #0#7p# )\n( #0.3.# )\n( #0a7.# )\n( #0s..# )\n( ###### )\n\n( (trivial) )\n( @######## )\n( #...p...# )\n( #.3399..# )\n( #.773.00# )\n( #...7.00# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #.3.3...# )\n( #.79b.p.# )\n( #..99...# )\n( #..1599.# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #.3.....# )\n( #.b9.99.# )\n( #...3p15# )\n( #.997...# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #..p..3.# )\n( #....cb.# )\n( #....7c9# )\n( #.99..7.# )\n( ######### )\n\n\n\n\n( (fine? too easy maybe I have enough levels like this) )\n( @##### )\n( #....# )\n( #.#99# )\n( #1515# )\n( #p...# )\n( #.99.# )\n( ###### )\n\n( (kinda kludgy? YIP) )\n( @##### )\n( #...p# )\n( #.#0.# )\n( #150.# )\n( #.015# )\n( #.0..# )\n( ###### )\n\n( (eeh rests around a single mechanism. maybe if it were duplciated multiple times with a level, but not just once) )\n( @.#### )\n( ###..# )\n( #.15p# )\n( #1f90# )\n( #...0# )\n( ###### )\n\n\n\n( (meh driving game) INCOMPLETE BUT ALSO DON'T CARE)\n( @.####... )\n( ###..#### )\n( #.....3.# )\n( #.#..#7.# )\n( #....#.p# )\n( ######### )\n\n\n\n\n\n( @##### )\n( #....# )\n( #.#..# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( (trivial) )\n( @.###### )\n( ..#p99.# )\n( ..#.15.# )\n( ..##.### )\n( ...#.#.. )\n( ..##.#.. )\n( ###..#.. )\n( #....##. )\n( #.#...#. )\n( #...#.#. )\n( ###...#. )\n( ..#####. )\n\n\n\n((test level))\n( @.#####.... )\n( ###...##### )\n( #......33.# )\n( #.#...#77.# )\n( #.....#..p# )\n( ########### )\n\n\n( (meh, don't like that you can randomly need to backtrack if you do things in the wrong order. don't find it fun) )\n( @.#####.... )\n( ###...##### )\n( #......33.# )\n( #.#00.#77.# )\n( #..00.#..p# )\n( ########### )\n\n( (trivial but bad) )\n( @.####... )\n( ###..#### )\n( #..cc99.# )\n( #.#77#..# )\n( #p...#..# )\n( ######### )\n\n\n( @.#####... )\n( ###...#### )\n( #........# )\n( #.#...#..# )\n( #.....#..# )\n( ########## )\n\n\n( @.####... )\n( ###..#### )\n( #.......# )\n( #.#..#..# )\n( #....#..# )\n( ######### )\n\n( @####### )\n( #......# )\n( #......# )\n( #......# )\n( #####..# )\n( ....#### )\n\n\n\n( @####### )\n( .#.....# )\n( .#.....# )\n( ##.....# )\n( #......# )\n( #......# )\n( ######## )\n\n( (meh ok but not so tricky? too much walking about) )\n( @#####..##### )\n( #....####...# )\n( #.33......#.# )\n( #.77#9999...# )\n( #p..######### )\n( #####........ )\n\n( @#####.##### )\n( #....###...# )\n( #........#.# )\n( #...#......# )\n( #...######## )\n( #####....... )\n\n( (meh) )\n( @#### )\n( #990# )\n( #0.0# )\n( #099# )\n( #15.# )\n( #15.# )\n( #33.# )\n( #77.# )\n( #.p.# )\n( ##### )\n\n( @####### )\n( #990099# )\n( #..00..# )\n( #.3153.# )\n( #.7157.# )\n( #...p..# )\n( #......# )\n( ######## )\n\n( @##### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( @###### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( @########### )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( ############ )\n\n( @########### )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #.....15...# )\n( #......p...# )\n( #..........# )\n( #..........# )\n( #.........9# )\n( ############ )\n\n( (dunno!) )\n( @###### )\n( ##..### )\n( ##..### )\n( ##..### )\n( ##..### )\n( ##15### )\n( ##15### )\n( ##15### )\n( #.p...# )\n( #.....# )\n( #.99..# )\n( #.99..# )\n( #.99..# )\n( ####### )\n\n( @####....... )\n( #99..##....# )\n( #..99..##..# )\n( #........### )\n( ###........# )\n( ..##@...15.# )\n( ...#.@#..15# )\n( ...#..#@@.p# )\n( ...#.......# )\n( ...######### )\n\n( @##### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( (nice idea but hard also has a crate) )\n( @##### )\n( #99..# )\n( #o.df# )\n( #.p3.# )\n( #..7.# )\n( ###### )\n\n( @.###### )\n( ..#....# )\n( ..#....# )\n( ..##.### )\n( ...#.#.. )\n( ...#.#.. )\n( ####.#.. )\n( #....##. )\n( #.#...#. )\n( #...#.#. )\n( ###...#. )\n( ..#####. )\n\n\n\n( @####. )\n( #...## )\n( #....# )\n( ##...# )\n( .##..# )\n( ..##.# )\n( ...### )\n\n\n( @.....##### )\n( ......#...# )\n( ......#.#.# )\n( #######.#.# )\n( #.........# )\n( #.#.#.#.### )\n( #.......#.. )\n( #########.. )\n\n( @######## )\n( #.......# )\n( #.#.#.#.# )\n( #.......# )\n( #.#.#.#.# )\n( #.......# )\n( ######### )\n\n\n\n( @###.. )\n( #..#.. )\n( #..### )\n( #....# )\n( #....# )\n( #..### )\n( ####.. )\n\n\n( @######## )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #......p# )\n( #.9c....# )\n( #997.3a.# )\n( #....7s.# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #..p..3.# )\n( #....cb.# )\n( #....7c9# )\n( #.99..7.# )\n( ######### )\n\n( (fine/tricky but too like other levels) )\n( @##### )\n( ##30.# )\n( #.70.# )\n( #df..# )\n( #.p..# )\n( ###### )\n\n( @###### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( @############ )\n( #...........# )\n( #...........# )\n( #...........# )\n( #...........# )\n( ############# )\n\n( @######## )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( ######### )\n\n( @########### )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( ############ )\n\n( @.#####.... )\n( ###...##### )\n( #.........# )\n( #.#...#...# )\n( #.....#...# )\n( ########### )\n\n( @................ )\n( ................. )\n( ........9........ )\n( .....999......... )\n( ................. )\n( ......p.......... )\n( .3333.....2..4... )\n( .7777...15.68.... )\n( ................. )\n( ................. )\n( ................. )\n( ................. )\n\n(TRANSFORMATION\n==========\nTRANSFORM\n==========\n\n\nchoose 5 [ ] -> [ wall ]\nchoose 1 [ no wall ] -> [ player ]\n\nchoose 2 option 0.5 right [ no obstacle | no obstacle ] -> [ stick_w | stick_e ]\n+ option 0.5 up [ no obstacle | no obstacle ] -> [ stick_s | stick_n ]\n\n\nchoose 2 option 0.5 right [ no wall no player no target | no wall no player no target ] -> [ target_h | target_h ]\n+ option 0.5 up [ no wall no player no target | no wall no player no target ] -> [ target_v | target_v ]\n\n\n\n)\n\n", [2, 3, 3, 0, 0, 0, 2, 2, 2, 1, 1, 1, 1, 0, 0, 3, 3, 0, 3, 3, 2, 2, "undo", 2], "background tl wall:0,background wall:1,1,1,1,1,1,\nbackground:2,2,2,background target_h:3,1,1,1,\n2,background stick_w:4,3,1,1,background target_v:5,5,\nbackground stick_e:6,2,1,1,2,background stick_n:7,background stick_s target_h:8,\n4,1,1,2,2,background player target_h:9,6,\n1,1,1,1,1,1,1,\n", 27, "1645544636691.3945"] - ], - [ - "Acorn Scorchery Paradise", - ["title Acorn Scorchery Paradise\nauthor increpare\nhomepage www.increpare.com\n\n\nbackground_color #3f3f74\n\n========\nOBJECTS\n========\n\nBackground\n#3f3f74 #59598f\n00000\n00000\n00100\n00000\n00000\n\n\n\nTarget\norange transparent transparent\n00000\n01110\n01210\n01110\n00000\n\nWall\n#323c39\n00000\n00000\n00000\n00000\n00000\n\n\nPlayer\n#847e87 #a33c88\n00000\n01110\n00000\n..0..\n.0.0.\n\n\nCrate\n#3f3f74 lightgreen green\n.111.\n21112\n21112\n22222\n.222.\n\n\nCrate_HOT\n#3f3f74 #ff0018 #ac3232\n.111.\n21112\n21112\n22222\n.222.\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\ncrate_or_player = Crate or Player or Crate_HOT\nany_Crate = Crate or Crate_HOT\npush_obstacle = wall or crate or Crate_HOT\nobstacle = wall or crate or Crate_HOT or Player\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 34709107\nendlevel 27179907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, Crate_HOT\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate_hot ]\n\n[ > crate_or_player | stationary push_obstacle ] -> cancel\n\n[ stationary crate_hot ] [ ^ crate_hot ] -> [ crate ] [ ^ Crate_HOT ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on any_Crate\n\n=======\nLEVELS\n=======\n\nmessage 1/5\n(nice!)\n######\n#.#..#\n#.*@.#\n#.p..#\n##.o.#\n.#####\n\nmessage 2/5\n(fine)\n#####\n#o..#\n#o..#\n#**@#\n#.p.#\n#####\n\nmessage 3/5\n(lol)\n######\n#p...#\n#.*..#\n#o.@.#\n##.@.#\n.#####\n\nmessage 4/5\n(fine)\n#####\n#opo#\n#.*.#\n#.*.#\n#o*.#\n#####\n\n\n(youAtExample suggested 'vive of five' when I was looking for stupid homophones)\nmessage 5/5 \n(fiiineish)\n######\n#.o.o#\n#....#\n#.**.#\n#.p#.#\n######\n\n\n\nmessage Congratulations! You are the best Acorn Scorcherer in Acorn Scorchery Paradise!\n\n( (meh not sure) )\n( ..#### )\n( ###.o# )\n( #o*..# )\n( #.*..# )\n( #p.@.# )\n( ###### )\n\n( ##### )\n( #...# )\n( #...# )\n( #...# )\n( #...# )\n( ##### )\n\n\n( ###### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( ####### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( ###### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( ######### )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( ######### )\n\n( ######## )\n( #......# )\n( #......# )\n( #......# )\n( #......# )\n( #......# )\n( #......# )\n( ######## )\n\n\n\n(Transformation\n\nchoose 5 [ ] -> [ wall ]\nchoose 1 [ no wall ] -> [ player ]\nchoose 3 [ no obstacle ] -> [ crate ]\nchoose 3 [ no player no wall no target ] -> [ target ]\n\n)\n", [3, 0, 0, 2, 1, 0, 2, 1, 0, 2, 3, 0, 0, 2, 0, 2, 1, 0, 0, 3, 3, 2, 3, 0, 0, "restart", 0, 0, 0, 0, 2, 1, 0, 0, 3, 0, 3, 0, 2, 1, 2, 2, 1, 0, "restart", 1, 0, 2, 3, 0, 1, 2, 3, 3, 0, 2, 1, 1, 0, 0, 2, 3, "undo", "undo", "undo", 3, 0, 0, "restart", 1, 0, 0, 2, 3, 3, 0, 2, 1, 1, 0, 0, 2, 2, 3, 3, 0, 1, 0, 0, 3, 2, 1, 2, 2], "background wall:0,0,0,0,0,\n0,0,background crate target:1,background target:2,background crate:3,\nbackground:4,0,0,4,4,\n4,background player:5,0,0,4,\n4,background crate_hot target:6,4,0,0,\n0,0,0,0,0,\n", 3, "1645544663060.2773"] - ], - [ - "Match-Maker", - ["title Match-Maker\nauthor increpare\nhomepage www.increpare.com\n( debug )\n( verbose_logging )\nrun_rules_on_level_start\n\ncolor_palette c64\nbackground_color green\n\n========\nOBJECTS\n========\n\nBackground\ngreen\n\nWall\ndarkgreen\n\nPlayer\ndarkblue lightgray \n.000.\n01010\n00000\n01110\n.000.\n\nCrate\npurple\n.....\n.000.\n.000.\n.000.\n.....\n\nhands_up\npink\n.0.0.\n.....\n.....\n.....\n.....\n\nhands_down\npink\n.....\n.....\n.....\n.....\n.0.0.\n\nhands_left\npink\n.....\n0....\n.....\n0....\n.....\n\nhands_right\npink\n.....\n....0\n.....\n....0\n.....\n\ncon_up\ntransparent\n\ncon_down\ntransparent\n\ncon_left\ntransparent\n\ncon_right\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\no = Background\n@ = crate\nhands = hands_up or hands_down or hands_left or hands_right\n\nobstacle = player or crate or wall\n\nplayer_or_crate = player or crate\n\ncon = con_up or con_down or con_left or con_right\n\nw = crate and hands_up\ns = crate and hands_down \na = crate and hands_left\nd = crate and hands_right\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 35405507\nsfx0 3325507 (love)\nsfx1 48219704 (breakup)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nhands_up\nhands_down\nhands_left\nhands_right\ncon_up\ncon_down\ncon_left\ncon_right\n\n\n======\nRULES\n======\n\n\n\n[ > player_or_crate | crate ] -> [ > player_or_crate | > Crate ]\n[ > crate hands ] -> [ > crate > hands ]\n\n\n[ > crate | wall ] -> cancel\n\n[ > crate | no obstacle ] -> [ | crate ]\n[ > hands | no hands ] -> [ | hands ]\n\nup [ hands_up | no hands_down ] -> [|] sfx1\ndown [ hands_down | no hands_up ] -> [|] sfx1\nleft [ hands_left | no hands_right ] -> [|] sfx1\nright [ hands_right | no hands_left ] -> [|] sfx1\n\nright [ crate | crate ] -> [ crate con_right | crate con_left ]\ndown [ crate | crate ] -> [ crate con_down | crate con_up ]\n\n[no hands con_up no con_down no con_left no con_right ] -> [ action hands_up ]\n[no hands no con_up con_down no con_left no con_right ] -> [ action hands_down ]\n[no hands no con_up no con_down con_left no con_right ] -> [ action hands_left ]\n[no hands no con_up no con_down no con_left con_right ] -> [ action hands_right ]\n\n[con]->[]\n\nup [ hands_up | no hands_down ] -> [|]\ndown [ hands_down | no hands_up ] -> [|]\nleft [ hands_left | no hands_right ] -> [|]\nright [ hands_right | no hands_left ] -> [|] \n\n\n[ action hands ] -> sfx0\n\n==============\nWINCONDITIONS\n==============\n\nall crate on hands\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 9\n\n(easyish. ok?)\n######\n#*...#\n##..*#\n#..*.#\n#.*.p#\n######\n\n( (ok first level ish) )\n( ......#####. )\n( ......#...#. )\n( ###...#...#. )\n( #*#####...#. )\n( #.#dada**### )\n( #..**......# )\n( #.#dadada### )\n( #*########.. )\n( #.#......... )\n( #p#......... )\n( ###......... )\n\n\nmessage Level 2 of 9\n\n(ok?)\n.#####\n##..*#\n#..*p#\n#da.##\n#.#.#.\n#...#.\n#####.\n\nmessage Level 3 of 9\n(ok! early intermediate?)\n#######.\n#.p...#.\n#..***##\n###*...#\n..######\n\nmessage Level 4 of 9\n(late-early? pretty entertaining gestalt-wise)\n######\n#.s#.#\n#.w.*#\n#....#\n#..#*#\n#..**#\n#.p..#\n######\n\nmessage Level 5 of 9\n\n(ok? entertaining? slightly? ok level? ok let's say it's ok)\n########\n#..da..#\n#..***.#\n#p..*..#\n#####..#\n....####\n\n\nmessage Level 6 of 9\n(early-intermediate ok?)\n######\n#p...#\n#..da#\n#..*.#\n#*.*##\n#..*##\n#....#\n######\n\n\n\nmessage Level 7 of 9\n(early-intermediate? easy/likeable)\n#######\n#....##\n#.da..#\n#.##*.#\n#..#da#\n#p.*..#\n#######\n\nmessage Level 8 of 9\n(AH. OK? If I@m totally stuck it could be a last level? but not...a *good* one)\n(genuinely tricky. not solved yet)\n#######\n#.#...#\n#*s..s#\n#.w#*w#\n#..p..#\n#..####\n#######\n\n\nmessage Level 9 of 9\n(didnae solve)\n######\n#....#\n#.sda#\n#.w..#\n#*p**#\n#...*#\n######\n\nmessage Congratulations. That was really good!\n\n=======================\n(\n\n(consider pruning)\n(weirdly non-obvious :] )\n######\n#.#.##\n#*#.##\n#.p*.#\n#.*..#\n#.*.##\n######\n\n(consider pruning)\n(Easy but ok?)\n##########\n##..p..*.#\n#.**...###\n##.*.#..##\n#.#...####\n##########\n\n\n\n(consider pruning)\n(weirdly engaging)\n######\n#.#.##\n#.#.p#\n#*.s.#\n#..w.#\n#*..##\n######\n\n\n(I like it - late-easy!)\n##########\n#.#.######\n#..*p*...#\n#..#*#*###\n#........#\n##########\n\n(intermediate ok hmm)\n#######\n#.*...#\n#...#.#\n##*..##\n##*.#.#\n#.....#\n#p#.*.#\n#######\n\n(alternative version of above:)\n########\n#.*..###\n#...####\n##s.####\n##w.####\n#......#\n#p#..*.#\n########\n\n\n(early hard? I think it's ok? just separate the parts)\n(dunno how to solve)\n#######\n#.....#\n#da***#\n#*.*..#\n#.*p#.#\n#.#...#\n#.....#\n#######\n\n======================\n\n\n#######\n#.....#\n#.....#\n#.....#\n#ppp..#\n#ppp..#\n#ppp..#\n#######\n\n\n(too easily accidentally solvable? maybe/maybe not! ok level 2?)\n#######\n#.*...#\n#.#.###\n#p.s.##\n#.#w###\n#.*...#\n#######\n\n(simple? just tidying up)\n#########\n#..*.##.#\n##.*##..#\n#.....*##\n#****...#\n#.*##.p.#\n#..#.##.#\n#########\n\n\n(simple? ok intro?)\n######\n##.#.#\n#.#*##\n#**..#\n#..*.#\n##p..#\n######\n\n\n\n(ok!)\n######\n#...*#\n#da*.#\n#.p..#\n#.***#\n#.*..#\n######\n\n(intermediate eh)\n######\n#....#\n#.*.s#\n#.*.w#\n#***.#\n#*..p#\n######\n\n(early intermediate / meh)\n######\n#.da.#\n#.*..#\n#.*..#\n#****#\n#.p..#\n######\n\n(it's fine but is it fun? ok maybe a bit but not a lot)\n######\n#....#\n#.*..#\n#.***#\n#p.*.#\n#.**.#\n#*...#\n######\n\n(meh too mcuh work; couldn't remember the solution)\n(visually cute. bottom two blocks unnecessary?)\n######\n#....#\n#.**.#\n#.**.#\n#p*.*#\n#.da.#\n######\n\n(dunno. not awful. maybe I'm just tired.)\n######\n#....#\n#.*..#\n#da*.#\n#p**.#\n#.da.#\n######\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n######\n#....#\n#.#..#\n#....#\n#....#\n#....#\n######\n\n\n(meh?)\n######\n#.*..#\n#p#..#\n#.da.#\n#....#\n#.*..#\n######\n\n(yeah fine? no it's not)\n######\n#.*..#\n#.#*##\n#.*.##\n#p..##\n##.*.#\n######\n\n\n\n\n(not bad. easy but not bad)\n##########\n#....#.###\n#.....*.##\n####.*.*.#\n#.#.##*.p#\n##########\n\n(trivial)\n##########\n#....*..*#\n#...##*..#\n#.*....#.#\n#...p....#\n##########\n\n\n\n\n(easy but not terrible but not great)\n######\n#*..##\n##.*##\n#..*.#\n#....#\n#.#*p#\n##...#\n######\n\n(easy. not good not bad)\n######\n#..*.#\n####.#\n##..p#\n#.**.#\n#..#.#\n#..*.#\n######\n\n(early intermediate ok?)\n#########\n#..#..###\n###.*.*.#\n#..#..*##\n####.#*.#\n#.*.p..##\n#.*.....#\n#...#..##\n#########\n\n\n\n\n(boring)\n#######\n#.#...#\n#da...#\n#...*##\n#dap..#\n#..*#.#\n#######\n\n\n(trivialish/boring//routine)\n#######\n#*#*..#\n#....##\n#..da.#\n##..**#\n#.p.**#\n#.....#\n#######\n\n(trivialish/boring//routine)\n#######\n#da.#.#\n#..**.#\n#..**.#\n#.....#\n#*..p.#\n##*..##\n#######\n\n(kinda pleasing; nah)\n..####...\n###..####\n#..s.*..#\n#.#w.#.*#\n#....#p.#\n#########\n\n(ok intermediate. yeah but nah)\n########\n#.p....#\n#.s...*#\n#.w***.#\n#####..#\n....####\n\n(so lala intermediate)\n######.#####\n#.*..###...#\n#.da***..#.#\n#...#......#\n#.p.########\n#####.......\n\n(trivial)\n#######\n#.#...#\n#.s...#\n#.w*.##\n#..p..#\n#.###.#\n#..*..#\n#######\n\n\n(trivial)\n#######\n#.*.#.#\n#.#.#.#\n#...*.#\n##.s..#\n#.pw..#\n##.#.##\n#######\n\n\n\n(trivial)\n#######\n#...*.#\n##..#.#\n#..**.#\n#..#..#\n#.....#\n#.*p..#\n#######\n\n(trivial)\n######\n#....#\n#.s###\n#*w#.#\n#.p*.#\n#.*..#\n#.*..#\n######\n\n(trivial)\n######\n#....#\n#....#\n#*da##\n#*...#\n#p..*#\n##*..#\n######\n\n(ok but not good enoguh? or maybe yeah for an early level but I'm not sure)\n######\n#....#\n#..**#\n#.***#\n#*#.##\n#p...#\n#....#\n######\n\n(ok intermediate but also nah)\n######\n#....#\n#*#.*#\n###..#\n#..s.#\n#**w.#\n#.p..#\n######\n\n(trivial)\n######\n##.#.#\n##*da#\n#....#\n#.s..#\n#*w..#\n#.p..#\n######\n\n(trivial)\n######\n#.**.#\n#.**.#\n#..*.#\n#.p..#\n#..*##\n#....#\n######\n\n(meh)\n######\n#...s#\n#...w#\n#..*.#\n##s..#\n##w#*#\n#.p..#\n######\n\n(boring)\n######\n#...##\n#..**#\n#..*.#\n#.**.#\n#*..##\n#.p..#\n######\n\n(boring)\n######\n#.*..#\n##*..#\n#.**.#\n##.**#\n#.p..#\n##.###\n######\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n(boring)\n######\n#.da.#\n#.*..#\n#..**#\n#..*.#\n#..da#\n#.p..#\n######\n\n(boring)\n######\n#....#\n#...*#\n#s...#\n#w.da#\n#p***#\n#....#\n######\n\n(boring)\n######\n#....#\n#...*#\n#.sda#\n#pw..#\n#..s.#\n#.*w.#\n######\n\n(boring)\n######\n#....#\n#..**#\n#..**#\n#.p*.#\n#....#\n#da.*#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n##########\n\n(boring)\n##########\n#.#.*.#..#\n#.*.***.##\n#.#.....##\n#.##p.*..#\n##########\n\n(boring)\n##########\n####*..*.#\n#....#...#\n#.p***..##\n##...*.#.#\n##########\n\n(boring)\n##########\n#..#.#.#.#\n#*...da*.#\n#..da....#\n#p.###...#\n##########\n\n(boring)\n##########\n#....*s.##\n##da..w..#\n#..p#...##\n#*..##.#.#\n##########\n\n############\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n(boring)\n############\n#..#...**..#\n#.**.#*....#\n#....*.##.##\n##..#p.#...#\n############\n\n(boring)\n############\n#..#...#...#\n#.*..#..*s.#\n#p...#s##w.#\n#.#...w....#\n############\n\n(boring)\n############\n##.....da..#\n#...#s...*.#\n#.#p.w..#..#\n#.#.#...*.##\n############\n\n(not boring kinda funny but also nope)\n############\n#.....##...#\n##........##\n#*..*.#.*.*#\n#*.#p#..*.##\n############\n\n(boring)\n############\n#*.#.#...#.#\n#...da*....#\n#.##p.da...#\n#.##...#...#\n############\n\n(boring)\n############\n#*...*#.#..#\n#.#..*....##\n##...**.#..#\n#.#.p.*...##\n############\n\n(boring)\n############\n#....s.....#\n#..##w...s.#\n#.*p..#*#w.#\n#.#.#....###\n############\n\n(boring)\n############\n#..##.#....#\n#####*#.*..#\n#p#.s...*..#\n#...w.#.*#.#\n############\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n(boring)\n#######\n#.#..##\n#..**.#\n#...*##\n##...##\n##pda.#\n#..*..#\n#######\n\n\n(boring)\n#######\n#.....#\n#da...#\n#.*...#\n##*p..#\n#.*..*#\n##....#\n#######\n\n\n(boring)\n#######\n##...*#\n##....#\n#.....#\n#...*##\n#.***.#\n#p*..##\n#######\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n(meh)\n#######\n#.#..##\n#..**.#\n#...*##\n##...##\n##pda.#\n#..*..#\n#######\n\n(meh)\n#######\n#.*.s.#\n###.w##\n#.....#\n###.s.#\n#..pw*#\n#...#.#\n#######\n\n(ok but not great? meh?)\n#######\n#.....#\n#.....#\n#..da.#\n#.##*.#\n#..**.#\n#p.*#.#\n#######\n\n(trivial)\n#######\n##...*#\n#.*.#.#\n##....#\n#.p.#.#\n#.***.#\n#...*.#\n#######\n\n(easy not great?)\n#######\n#...###\n#.da*.#\n#.##..#\n#.....#\n#pda..#\n#...*.#\n#######\n\n(meh. intentionally solvable. but good? idk)\n#######\n#.s.s.#\n#.w*w.#\n#..*..#\n#....##\n#*p...#\n##*...#\n#######\n\n(trivial)\n#######\n#*....#\n#**...#\n#..s*##\n#..w..#\n#..s..#\n#p.w..#\n#######\n\n(trivial)\n#######\n#.....#\n#.....#\n#*....#\n#pda*.#\n#.#da.#\n#..**.#\n#######\n\n(trivial)\n#######\n#.....#\n#.....#\n#...**#\n#.#**.#\n#*pda.#\n#..#*.#\n#######\n\n(trivial kinda nice but trivial)\n#######\n##.#..#\n#.....#\n#..s..#\n#daw*.#\n#.#.s.#\n#.p.w*#\n#######\n\n(trivial)\n#######\n#.#...#\n#..**.#\n#..**##\n#**p.*#\n#*.#..#\n#.....#\n#######\n\n(trivial)\n#######\n#..*.##\n#s....#\n#w...*#\n#p..da#\n#...*.#\n#...*.#\n#######\n\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n######\n#....#\n#....#\n#....#\n######\n\n#####\n#...#\n#...#\n#...#\n#####\n\n########\n#......#\n#......#\n#......#\n#......#\n#......#\n#......#\n########\n\n(meh. actually ok to solve but not great?)\n########\n#.#*..*#\n#..***##\n#..s...#\n#.#w...#\n#..p#.##\n#...*.##\n########\n\n(meh)\n########\n#.*..*.#\n#.#.s*.#\n##..ws##\n#...*w.#\n#.p.#..#\n#......#\n########\n\n(trivial)\n########\n##.....#\n#.da...#\n##...###\n##.da.*#\n#sp....#\n#w.#..*#\n########\n\n(trivial)\n########\n#da....#\n#..*#..#\n#...#s.#\n#*#s.w.#\n#.pw.#.#\n#...#..#\n########\n\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n(trivial)\n#########\n#.......#\n#..s....#\n#.*w...##\n#.....###\n#dap.#.##\n#..#..*##\n##.....##\n#########\n\n(trivial)\n#########\n#..#..###\n###.*.*.#\n#..#..*##\n####p#*.#\n#.s....##\n#.w.....#\n#...#..##\n#########\n\n(boring)\n#########\n#..*....#\n#.#*....#\n#..da...#\n###....*#\n#.#p##..#\n#...*..##\n#....##.#\n#########\n\n(simplified a part of this and sent it to the top)\n#########\n#...#..##\n#.da##..#\n##..*...#\n#..*p...#\n#da.#...#\n#.#.#..##\n#....####\n#########\n\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n\n\n#######\n#.....#\n#.#.#.#\n#.....#\n##.#.##\n##...##\n#######\n\n#######\n#.....#\n#.#.#.#\n#.....#\n#.#.#.#\n#.....#\n#######\n\n########\n#.....##\n#.#.#.##\n#......#\n##.#.#.#\n##.....#\n########\n\n#########\n#.......#\n#.#.#.#.#\n#.......#\n#.#.#.#.#\n#.......#\n#########\n\n##########\n#.......##\n#.#.#.#.##\n#........#\n##.#.#.#.#\n##.......#\n##########\n\n#########\n#.......#\n#.#.#.#.#\n#.......#\n#.#.#.#.#\n#.......#\n#.#.#.#.#\n#.......#\n#########\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n########\n#......#\n#......#\n#......#\n#####..#\n....####\n\n\n\n(trivial)\n########\n#...da.#\n#.****.#\n#......#\n#####.p#\n....####\n\n(trivial)\n########\n#*.....#\n#****..#\n#p.*...#\n#####..#\n....####\n\n(trivial)\n########\n#......#\n#.*.*..#\n#.*da*.#\n#####.p#\n....####\n\n(trivial)\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#OOO...#\n#...########\n#####.......\n\n\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n..######\n..#.OOP#\n..#.**.#\n..##.###\n...#.#..\n...#.#..\n####.#..\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\n(hmm. ok? meh)\n..######\n..#...p#\n..#.*..#\n####*###\n#..*.##.\n#.#...#.\n#.*.#.#.\n###...#.\n..#####.\n\n(hmm. not good?)\n...###..\n...#.#..\n####*#..\n#.*..##.\n#.#*..#.\n#..*#.#.\n###..p#.\n..#####.\n\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\n\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\n\n(I kinda like it, but now that I'm such an EXPERT it just doesn't do it for me)\n(want to solve but haven't yet. has the look of an ok final level?)\n######\n##.###\n#...##\n#.**.#\n#**..#\n#p..*#\n#.*.##\n######\n\n\n(meh)\n(can't solve. could be ok though)\n######\n#..###\n#.**##\n#.**.#\n#p.*.#\n#*.#.#\n#....#\n######\n\n\n\n\n\n(trivial)\n(nope not solved but nope)\n#######\n#.#...#\n#.s..*#\n#.w*s.#\n#.#*w.#\n##..*.#\n#.#..p#\n#######\n\n(trivial)\n(nope not solved but nope)\n#######\n#..#*.#\n#.s**.#\n#.w.s.#\n#..*w.#\n#p...##\n#.##.##\n#######\n\n(meh I guess it might be ok but meh)\n(stuck)\n#######\n#..##.#\n#**...#\n#.*.#.#\n#.sp*.#\n##w.#.#\n#...#.#\n#######\n\n\n\n\n(didnae solve)\n######\n#....#\n#.sda#\n#.w..#\n#*p**#\n#...*#\n######\n)\n\n(\nTRANSFORMS\n\n\n[player]->[]\n[crate]->[]\n\n(choose 2 [ player ] -> [ no player ] )\n(choose 2 [ no player ] -> [ wall ])\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 1 option 0.5 right [ no obstacle | no obstacle ] -> [ crate hands_right | crate hands_left]\n+ option 0.5 down [ no obstacle | no obstacle ] -> [ crate hands_down | crate hands_up ]\n+ option 0.5 [ no obstacle | no obstacle] -> [crate| crate]\n\n)\n", [2, 2, 3, 3, 0, 1, 0, 3, 1, 2, 2, 2, 2, 2, 3, 0, 0, 0], "background wall:0,0,0,0,0,0,\n0,0,0,background:1,1,1,\nbackground crate:2,1,1,0,0,1,\n1,1,1,1,1,0,\n0,background crate hands_down:3,background crate hands_up:4,background player:5,1,1,\n1,0,0,2,3,4,\n0,0,1,0,0,0,\n0,0,0,0,0,0,\n", 11, "1645544739914.9763"] - ], - [ - "Pushy-V Pully-H", - ["title Pushy-V Pully-H\nauthor increpare\nhomepage www.increpare.com\nbackground_color darkgreen\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkgray\n\nPlayer\nblue\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nCrate\ngreen gray\n11111\n0...0\n0...0\n0...0\n11111\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nobstacle = player or crate or wall\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\nvertical [ > Player | Crate ] -> [ > Player | > Crate ]\nhorizontal [ < Player | Crate ] -> [ < Player | < Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 11\n\n.########\n##o.....#\n#...*...#\n#*o.o.*.#\n##.p..###\n.######..\n\nmessage level 2 of 11\n(level 1?)\n(soluble)\n#######\n#.....#\n#.O*#.#\n#.@@P.#\n#.....#\n#######\n\nmessage level 3 of 11\n....####.\n#####..##\n#.......#\n#.**.oo.#\n#.**.oo.#\n#...p...#\n#########\n\n\nmessage level 4 of 11\n#########\n#.....#p#\n#.o..*.@#\n#...@...#\n#...##..#\n#########\n\n\nmessage level 5 of 11\n(soluble)\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 6 of 11\n(soluble)\n.#####\n.#...#\n.#.O.#\n.#.@.#\n##.@.#\n#..*.#\n#..P.#\n######\n\nmessage level 7 of 11\n\n(soluble)\n####...\n#..####\n#.....#\n#.O*O.#\n#.*P*.#\n#.O*O.#\n#.....#\n#######\n\nmessage level 8 of 11\n#########\n#.......#\n#..*.*..#\n#.*ooo*.#\n#..opo..#\n#.*ooo*.#\n#..*.*..#\n#.......#\n#########\n\nmessage level 9 of 11\n#######\n#..#..#\n#*.#*.#\n#..#..#\n#..o..#\n##o.*.#\n.#op..#\n.######\n\nmessage level 10 of 11\n(soluble)\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\nmessage level 11 of 11\n########\n#......#\n#.#..#.#\n#..@@..#\n#.*o@..#\n#.#..#.#\n#..p...#\n########\n\nmessage Congratulations! You don't just push the push, you pull the pull!\n\n\n\n(\n\n\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n\n\n#############\n#...........#\n#...........#\n#...........#\n#..***.ooo..#\n#..*p*.o.o..#\n#..***.ooo..#\n#...........#\n#...........#\n#...........#\n#############\n)\n\n(\n#########\n#..o....#\n#...#p..#\n#*.*oo.*#\n#.......#\n#########\n)\n\n( ######### )\n( ##o.....# )\n( #...*...# )\n( #*o.o.*.# )\n( ##.p..#.# )\n( ######### )\n\n\n(\n(soluble)\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n)\n\n\n\n\n\n\n\n(\n\n(soluble)\n########\n#......#\n#.*O*O.#\n#PO*O*.#\n#.*O*O.#\n#......#\n########\n)\n\n(\n\n\n\n(insoluble)\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n(insoluble)\n#######\n#..@..#\n#..P.O#\n##*.###\n.#..#..\n.####..\n\n(insoluble)\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n\n(insoluble)\n#####.\n#...#.\n#O#.##\n#....#\n#O...#\n###.##\n#P**#.\n#...#.\n#####.\n\n\n(insoluble)\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\n(insoluble)\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#OOO...#\n#...########\n#####.......\n\n(insoluble)\n######\n#....#\n#.**.#\n#..*.#\n###..#\n.#O.##\n.#O.#.\n.#O.##\n.#...#\n.#.#.#\n.#.P.#\n.#####\n\n(insoluble)\n..######\n..#.OOP#\n..#.**.#\n..##.###\n...#.#..\n...#.#..\n####.#..\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\n\n\n(insoluble)\n.#####......\n.#...#......\n##.#.#..####\n#....####..#\n#.#......*O#\n#...#####*O#\n#####...#.P#\n........####\n\n\n(insoluble)\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\n\n\n\n\n(insoluble)\n...####\n..##PO#\n.##.*.#\n##..*.#\n#O...##\n######.\n\n(insoluble)\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\n\n(insoluble)\n#####...\n#...#...\n#.#P#...\n#...#...\n#.#*#...\n#...#...\n#.#*####\n#...OOO#\n###*##.#\n..#....#\n..######\n\n\n)\n\n(\n\nTRANSFORMATION\n\n[ player ] -> []\n[ crate ] -> []\n[ target ] -> []\n\nchoose 3 [ no wall ] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player no target ] -> [ target ]\n\n)\n", [0, 0, 2, 2, 1, 1, 0, 3, 2, 3, 3, 3, 3, 1, 0, 3, 0, 1, 1, 0, 0, 1, 1, 0, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 3, 3, 0, 3, 3, 2, 1, 1, 0, 1, 1, 0, 0, 0, 3, 1, 0, 0, 3, 3, 3, 2, 1, 2, 2, 2, 3, 2, 3, 0, 0, 0, 0, 1, 1, 2, 1, 1, 0, 0, 1, 3, 2, 3, 0, 1, 1, 1, 2, 2, 2, 2, 2, 0, 2, 3, 3, 3, 0, 1, 3, 3, 2, 1, 1, 0, 0, 0, 2, 0, 0], "background wall:0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,1,\n1,0,0,1,background target:2,background crate:3,background crate target:4,\n1,1,0,0,3,background player:5,2,\n1,2,1,0,0,1,2,\n3,4,3,1,0,0,1,\n1,1,1,1,1,0,0,\n0,0,0,0,0,0,0,\n", 19, "1645544759965.9036"] - ], - [ - "Crates move when you move", - ["title Crates move when you move\nauthor increpare\nhomepage www.increpare.com\n\n(\n\ntools used during creation:\n\nhttps://dekeyser.ch/puzzlescriptmis/\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\nnoaction\nbackground_color darkblue\n========\nOBJECTS\n========\n\nBackground\ndarkblue\n\n\nTarget\ndarkgreen\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkbrown\n\nPlayer\nOrange Orange Orange Orange\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nlightgreen\n00000\n0...0\n0...0\n0...0\n00000\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nobstacle = player or crate or wall\n\n=======\nSOUNDS\n=======\n\ncrate move 25044707\nsfx0 25044707\n\nendlevel 84712900\nstartlevel 16124700\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n======\nRULES\n======\n\n\n[ > Player ] [ Crate ] -> [ > Player ] [ > Crate ]\n\n\n\n[ > crate | no obstacle ] -> [ | > crate ] sfx0\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 10\n\n######\n#....#\n#...##\n#..*.#\n#..o.#\n#.p..#\n#....#\n######\n\n( ###### )\n( #*#..# )\n( #.p..# )\n( #..o.# )\n( #....# )\n( ###### )\n\nmessage Level 2 of 10\n######\n#.*.p#\n#.#.##\n#.o..#\n#.#..#\n######\n\nmessage Level 3 of 10\n..###..\n.##o##.\n##...##\n#*.p.o#\n##...##\n.##*##.\n..###..\n\n\n\nmessage Level 4 of 10\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\nmessage Level 5 of 10\n(kinda hard)\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage Level 6 of 10\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\nmessage Level 7 of 10\n######\n##*.##\n##@###\n##..##\n##..##\n##p.##\n##.###\n##o.##\n##..##\n######\n\n\nmessage Level 8 of 10\n#######\n#o...*#\n#o.p.*#\n#o...*#\n#######\n\nmessage Level 9 of 10\n#####.\n#P..##\n#O**.#\n##...#\n.##..#\n..##O#\n...###\n\nmessage Level 10 of 10\n(POSSIBLE to solve! Good final level?)\n######\n#....#\n#o.#p#\n#.#..#\n#.*.@#\n######\n\nmessage Congratulations! The crates learned from your your example and were all very succesful in their subsequent careers.\n\n(\n######\n#o#@.#\n#....#\n#.##*#\n#..p@#\n######\n\n(I solved this, but not intentionally)\n#######\n#.*...#\n#**...#\n#..p..#\n#...oo#\n#...o.#\n#######\n\n(fpfft no idea. haven't solved yet)\n######\n#..*.#\n#*#.##\n#..o.#\n##...#\n#..#.#\n#op#.#\n######\n\n(unsolved. too hard?)\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n####\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n####\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n)\n(\nTRANSFORMATION\n\n\nchoose 3 [ ] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player no target ] -> [ target ]\n\n)\n", [2, 1, 0, 1, 1, 2, "undo", 1, 2, 3, 3, 3, 0, 2], "background wall:0,0,0,0,0,background:1,0,1,\n1,1,0,1,0,1,background target:2,1,\n0,1,0,1,2,1,0,1,\n0,1,2,background crate:3,0,0,0,1,\n3,background player:4,1,0,0,1,1,1,\n3,0,0,0,0,0,0,0,\n", 11, "1645544790426.2693"] - ], - [ - "Resin-Caster", - ["title Resin-Caster\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color darkblue\n\n(\n\ntools used during creation:\n\nhttps://dekeyser.ch/puzzlescriptmis/\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\n========\nOBJECTS\n========\n\nBackground\ndarkblue\n\nWall\n#aa00ff\n.000.\n00000\n00000\n00000\n.000.\n\nPlayer\nOrange Orange Orange Orange\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate1\nred\n.000.\n00000\n00000\n00000\n.000.\n\n\nCrate2\nblue\n.000.\n00000\n00000\n00000\n.000.\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = crate1\n@ = crate2\n* = crate2\ncrate = crate1 or crate2\nobstacle = player or wall or Crate1\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, crate1, crate2\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate1 | crate2 ] -> [ | wall ]\n[ > crate2 | crate1 ] -> [ | wall ]\n\n==============\nWINCONDITIONS\n==============\n\nno crate\n\n=======\nLEVELS\n=======\n\nmessage When the two compounds are combined they set into a hard purple resin.\n\nmessage 1 of 10\n(fine!)\n######\n#....#\n#p@o.#\n#....#\n#@..o#\n######\n\nmessage 2 of 10\n(fine-ish?)\n#########\n#..o.@..#\n#..op@..#\n#########\n\nmessage 3 of 10\n(good hard level 1 or nice level 2)\n######\n#.@..#\n#..@.#\n#oo..#\n#.#.p#\n######\n\nmessage 4 of 10\n(ok? looks nice and has a solution that's not totally trivial but also not exactly something you can deduce without trying out - you won't necessarily know after the fact *why* the solkution is a solution)\n######\n#..o.#\n#.o@.#\n#o@..#\n#.p.@#\n######\n\nmessage 5 of 10\n(fine?)\n..####\n.##.o#\n##...#\n#..#.#\n#.@o.#\n#.p@.#\n######\n\nmessage 6 of 10\n(good intermediate)\n######\n#p...#\n#.o@@#\n#oo..#\n#.#@.#\n######\n\n\nmessage 7 of 10\n(kinda ok?)\n#######\n#.....#\n#...#.#\n#@#o@o#\n#.#.#.#\n#..p..#\n#######\n\nmessage 8 of 10\n(kinda fun?)\n######\n#@o.o#\n#.o.@#\n#@.@o#\n#.p..#\n######\n\n\nmessage 9 of 10\n(actually ok?)\n..####...\n###@.####\n#..@....#\n#.#.o#o.#\n#....#p.#\n#########\n\nmessage 10 of 10\n(had the solution spoiled but it's also fine :] )\n######\n#oo.@#\n#.@@o#\n#o.@.#\n#.p..#\n######\n\nmessage Congratulations! You're an exceptionally very competent resin-caster.\n\n(nice level, but maybe not include? not totally feeling it)\n( ###### )\n( #@.o.# )\n( #o.o.# )\n( #@o@.# )\n( #@..p# )\n( ###### )\n\n(eeeh it's fine but I solved it directly by avoiding doing the obvious thing which is BORING)\n( ###### )\n( #.o.p# )\n( #@@oo# )\n( #....# )\n( #@#..# )\n( ###### )\n\n(too much like other level)\n( ###### )\n( #@o.@# )\n( #...o# )\n( #o@o@# )\n( #p...# )\n( ###### )\n\n(kinda ok? I like the interlacing style. but not the best level of all time)\n( ###### )\n( #..@.# )\n( #o#@.# )\n( #.@..# )\n( #...o# )\n( #.o.p# )\n( ###### )\n\n(\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n####\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n####\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\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.*#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*O.#\n##.*P*.#\n#..O*O.#\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\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\n\n(\nTransformation\n\n[ player ] -> []\n[ crate ] -> []\n\n( choose 2 [ player ] -> [ ] )\n\nchoose 3 [ ] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate1 ]\nchoose 2 [ no obstacle ] -> [ crate2 ]\n\n)\n", [3, 0, 0, 1, 2, 0, 1, 1, 1, 2, 2, 3, 0, 1, 0, 3, 3, 1, 2, 2, 1, 1, 1, 0, 0, 3, 3, 3, 3, 3], "background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,0,1,\n1,background crate2:2,0,0,0,1,1,0,0,\n0,0,1,1,1,background player:3,1,1,1,\n0,1,1,0,background crate1:4,1,0,1,0,\n0,0,1,0,1,1,1,1,1,\n", 18, "1645544805711.4153"] - ], - [ - "pipe puffer", - ["title pipe puffer\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nbackground_color #472f37\n(verbose_logging)\n( debug )\n\n========\nOBJECTS\n========\n\nBackground\n#524740 #5a4f48\n00000\n01110\n01110\n01110\n00000\n\n\n\n\nWall\n#472f37\n\nwall_s\ntransparent transparent #291c21\n00000\n11111\n11111\n11111\n22222\n\n\nwall_n\n#5f454e transparent transparent\n00000\n11111\n11111\n11111\n22222\n\nwall_o\ntransparent transparent #5f454e\n01112\n01112\n01112\n01112\n01112\n\nwall_w\n#291c21 transparent transparent\n01112\n01112\n01112\n01112\n01112\n\nwall_nw\n#472f37\n0....\n.....\n.....\n.....\n.....\n\nwall_so\n#472f37\n.....\n.....\n.....\n.....\n....0\n\nPlayer\ntransparent #a69326 #cdb844 #e3d060 #bfaa38 #000000\n01230\n34233\n22522\n11241\n01230\n\n\nrohr_no e\n#005784 #006ea6 #524740 #acacac #cccccc #656d71\n00010 \n23431\n23540\n22330\n22220\n\nrohr_ns x\n#005784 #006ea6 #524740 #acacac #cccccc #e6e6e6 #656d71\n00010\n23452\n23652\n23452\n00010\n\nrohr_nw q\n#005784 #006ea6 #acacac #cccccc #e6e6e6 #524740 #656d71\n00010\n12345\n03645\n02255\n05555\n\n\nrohr_so c\n#524740 #005784 #e6e6e6 #006ea6 #acacac #cccccc #656d71\n00001\n00223\n04651\n04541\n11131\n\nrohr_sw z\n#005784 #524740 #006ea6 #e6e6e6 #cccccc #acacac #656d71\n01111\n23311\n04631\n05431\n00020\n\nrohr_ow a\n#005784 #524740 #006ea6 #e6e6e6 #cccccc #acacac #656d71\n01110\n23332\n04640\n05550\n01110\n\noutlet_n \n#005784 #006ea6 transparent #e6e6e6 #cccccc #acacac #656d71\n01000 \n23452\n22622\n22222\n22222\n\noutlet_s \ntransparent #cccccc #acacac #e6e6e6 #005784 #006ea6 #656d71\n00000\n00000\n00600\n02130\n44454\n\noutlet_o \ntransparent #005784 #e6e6e6 #006ea6 #cccccc #acacac #656d71\n00001\n00023\n00641\n00051\n00001\n\noutlet_w \n#005784 transparent #acacac #cccccc #006ea6 #e6e6e6 #656d71\n01111\n02111\n03611\n45111\n01111\n\ninlet\nblue\n.....\n.....\n..0..\n.....\n.....\n\npust_n\n#cccccc\n.000.\n0...0\n..0..\n..0..\n.....\n\n\npust_s\n#cccccc\n.....\n..0..\n..0..\n0...0\n.000.\n\npust_o\n#cccccc\n...0.\n....0\n.00.0\n....0\n...0.\n\npust_w\n#cccccc\n.0...\n0....\n0.00.\n0....\n.0...\n\n\n\nflow\nblue\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\nwall_überlagung = wall_s or wall_n or wall_o or wall_w or wall_nw or wall_so\n\nrohr = rohr_no or rohr_ns or rohr_nw or rohr_so or rohr_sw or rohr_ow\noutlet = outlet_n or outlet_s or outlet_o or outlet_w\n\nöffnung_n = rohr_no or rohr_ns or rohr_nw or outlet_n\nöffnung_s = rohr_ns or rohr_sw or rohr_so or outlet_s\nöffnung_o = rohr_no or rohr_so or rohr_ow or outlet_o\nöffnung_w = rohr_nw or rohr_sw or rohr_ow or outlet_w\n\nwall_thing = wall or outlet \n\nrohr_or_öffnung = rohr or outlet\n\n. = Background\n# = Wall\nP = Player\n\n1 = outlet_n and wall\n2 = outlet_s and wall\n3 = outlet_o and wall\n4 = outlet_w and wall\n\n5 = outlet_n and inlet and wall\n6 = outlet_s and inlet and wall\n7 = outlet_o and inlet and wall\n8 = outlet_w and inlet and wall\n\npust = pust_n or pust_s or pust_o or pust_w\n\nobstacle = wall_thing or rohr or player\n\nrohr_or_player = rohr or player\n\n=======\nSOUNDS\n=======\nsfx0 39858907 (pusten)\nsfx1 96276907 (rohrdurchpusten)\nrohr move 73985107 (rohrbewegen)\nstartlevel 38142502\nendlevel 45497300\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, rohr\nwall_s\nwall_n\nwall_o\nwall_w\nwall_nw\nwall_so\noutlet\ninlet\nflow\npust_n\npust_s\npust_o\npust_w\n\n======\nRULES\n======\n\nup [ wall | no wall_thing ] -> [ wall wall_n | ]\ndown [ wall | no wall_thing ] -> [ wall wall_s | ]\nleft [ wall | no wall_thing ] -> [ wall wall_w | ]\nright [ wall | no wall_thing ] -> [ wall wall_o | ]\n\n\n[ wall_s wall_o ] -> [ wall_s wall_o wall_so ]\n[ wall_n wall_w ] -> [ wall_n wall_w wall_nw ]\n\n[ > player | obstacle ] -> cancel\n[pust]->[]\n\nright [ | action player | ] -> [ pust_w | action player | pust_o ] again sfx0\nup [ | action player | ] -> [ pust_s | player | pust_n ] again\n\n\nright [ rohr_so pust_n | ] -> [ rohr_so | pust_o ] sfx1\n+ down [ rohr_so pust_w | ] -> [ rohr_so | pust_s ] sfx1\n\n+ up [ rohr_ns pust_n | ] -> [ rohr_ns | pust_n ] sfx1\n+ down [ rohr_ns pust_s | ] -> [ rohr_ns | pust_s ] sfx1\n\n+ left [ rohr_sw pust_n | ] -> [ rohr_sw | pust_w ] sfx1\n+ down [ rohr_sw pust_o | ] -> [ rohr_sw | pust_s ] sfx1\n\n+ right [ rohr_ow pust_o | ] -> [ rohr_ow | pust_o ] sfx1\n+ left [ rohr_ow pust_w | ] -> [ rohr_ow | pust_w ] sfx1\n\n+ right [ rohr_no pust_s | ] -> [ rohr_no | pust_o ] sfx1\n+ up [ rohr_no pust_w | ] -> [ rohr_no | pust_n ] sfx1\n\n+ left [ rohr_nw pust_s | ] -> [ rohr_nw | pust_w ] sfx1\n+ up [ rohr_nw pust_o | ] -> [ rohr_nw | pust_n ] sfx1\n\n[ pust_n rohr ] -> [ pust_n up rohr ]\n[ pust_s rohr ] -> [ pust_s down rohr ]\n[ pust_o rohr ] -> [ pust_o right rohr ]\n[ pust_w rohr ] -> [ pust_w left rohr ]\n\n[pust outlet ] -> [ outlet ]\n\n[ > rohr_or_player | rohr_or_player ] -> [ > rohr_or_player | > rohr_or_player ]\n\n( [ > Player | Crate ] -> [ > Player | > Crate ] )\n\nlate [flow]->[]\n\nlate [ inlet ] -> [ inlet flow ]\n\nlate up [ öffnung_n flow | öffnung_s no flow ] -> [ öffnung_n flow | öffnung_s flow ]\n+ late down [ öffnung_s flow | öffnung_n no flow ] -> [ öffnung_s flow | öffnung_n flow ]\n+ late right [ öffnung_o flow | öffnung_w no flow ] -> [ öffnung_o flow | öffnung_w flow ]\n+ late left [ öffnung_w flow | öffnung_o no flow ] -> [ öffnung_w flow | öffnung_o flow ]\n\n==============\nWINCONDITIONS\n==============\n\nall outlet on flow\n\n=======\nLEVELS\n=======\n\n\nmessage Oh no the factory is falling apart! Can the pipe puffer put it back together?\n\nmessage Level 1 of 8 \n\n(kinda like. fine. best of that kind of level?)\n####6##\n#.....#\n#.....4\n#.xea.#\n##....#\n##..p.#\n#######\n\nmessage Level 2 of 8\n(I like this)\n#######\n#.....#\n#.c.8.#\n#.xa..#\n#.x...#\n#.1.p.#\n#.....#\n#######\n\n( (jokey? not hard? intermediate?) )\n( ########### )\n( #.........# )\n( #...c.z...# )\n( #...xax...# )\n( #.caqxeaz.# )\n( #..x...x..# )\n( #.x.....x.# )\n( #.x.a.a.x.# )\n( #.x.....x.# )\n( #.x..p..x.# )\n( ##5#####1## )\n\n\nmessage Level 3 of 8\n\n###########\n#.....2####\n#..caaq6###\n#..x...x..#\n#..x...x..#\n#..x.a.x..#\n#..ea.aq..#\n#.........#\n#....p....#\n###########\n\n\nmessage Level 4 of 8\n#########\n#.......#\n#...c8..#\n#.6.e4..#\n#..x....#\n#.1.a...#\n#.x..cz.#\n#..p.15.#\n#.......#\n#########\n\n\n\n\n\nmessage Level 5 of 8\n(intermediate. multiple solutions. doesn't mandate the solution I like the most tho >:[ )\n###########\n#.........#\n#.p..7aaaz#\n#..c....x.#\n#........x#\n#........q#\n########1##\n\nmessage Level 6 of 8\n(tricky)\n#########....\n#.......#....\n#......c8####\n#......x#...#\n#......eaaz.#\n#..p.x......#\n#.........1.#\n#......######\n#......#.....\n########.....\n\nmessage Level 7 of 8\n( (or maybe not that hard?) hard)\n########\n#......#\n7aaaaaz#\n#....x.#\n##3...q#\n#.....##\n#.p.cz.#\n#..aqe.#\n#......#\n########\n\n\n\n\nmessage Level 8 of 8\n(not great but ok)\n########6##\n#.....#.x.#\n#.......x.#\n#.....caq.#\n#..a..eaz.#\n#...x..x..#\n#.....a.x.#\n#..p...cq.#\n#......x#.#\n#......x#.#\n#######1###\n\nmessage Thank you! The factory is back up and running. You are verily the premier pipe puffer!\n\n( (not sure if I want this or not) )\n( (fine, solvable wiht brain-usage. doesn't use puffing though sadface) )\n( ###6### )\n( #.....# )\n( #.#..a4 )\n( #...x.# )\n( #.ea..# )\n( ##p...# )\n( ####### )\n\n( (ok silly last level? ) )\n( ############## )\n( #............# )\n( #....6..2....# )\n( #...cq..ez...# )\n( #...ez...q...# )\n( #...cq..ez...# )\n( #...ez..cq...# )\n( #...cq..ez...# )\n( #...ez..cq...# )\n( #...cq..ez...# )\n( #...ez..cq...# )\n( #....1..5....# )\n( #.....p......# )\n( ############## )\n\n\n( ###6#### )\n( #......# )\n( #..a..a4 )\n( #....x.# )\n( #..ea..# )\n( ###p...# )\n( ######## )\n\n( (hard? not yet solved unsolvable lol) )\n( ###6### )\n( #.....# )\n( ##.x.a4 )\n( #.....# )\n( #.ea#.# )\n( #.p...# )\n( ####### )\n\n\n\n(\n(simple. pleasing)\n##62###\n##.x..#\n#.e...#\n#..q..#\n##....#\n.#p.###\n.####..\n\n(similarly simple/pleasing)\n###6##\n#....4\n##.a.#\n#.e..#\n#p...#\n######\n\n(whatever)\n###6##\n#..x.4\n#.ec.#\n#..q.#\n#p...#\n######\n\n(slightly harder)\n###6##\n#..x.4\n#.cq.#\n#.e..#\n#...p#\n######\n\n(fineish)\n###6##\n###.##\n#..a.4\n#..x.#\n#.e..#\n#..p.#\n######\n\n(i remember how to do this one, which is good, but it's alos not great)\n###62###\n#......#\n#..x#..#\n#...q..#\n#x.e...#\n#....p.#\n########\n\n\n( ###6## )\n( #..ea4 )\n( #....# )\n( #.p..# )\n( #....# )\n( ###### )\n\n( ###6## )\n( #..xc4 )\n( #..eq# )\n( #.p..# )\n( #....# )\n( ###### )\n\n\n( ##62## )\n( #.eq.# )\n( #....# )\n( #.p..# )\n( #....# )\n( ###### )\n\n( ##62### )\n( #.eq..# )\n( #.....# )\n( #.p...# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( ###62### )\n( #..xx..# )\n( #..eq..# )\n( #......# )\n( #......# )\n( #....p.# )\n( ######## )\n\n\n##62###\n#.xx..#\n#.eq..#\n#.p...#\n#.....#\n#.....#\n#######\n\n####6##\n#...ea4\n#.....#\n#.....#\n#.p...#\n#.....#\n#######\n\n####6##\n#...xc4\n#...eq#\n#.....#\n#.p...#\n#.....#\n#######\n\n###6###\n#..x..#\n#..eaa4\n#.....#\n#.p...#\n#.....#\n#######\n\n###62###\n#..eq..#\n#......#\n#.p....#\n#......#\n#......#\n########\n\n########\n#......#\n#......#\n#..62..#\n#..eq..#\n#.p....#\n########\n\n####6##\n#...ea4\n#.....#\n#.....#\n#.p...#\n#.....#\n#######\n\n#######\n#.....#\n#.cz..#\n#.x5p.#\n#.x2..#\n#.eq..#\n#.....#\n#######\n\n###6###\n#..ez.#\n#...ea4\n#.....#\n#.p...#\n#.....#\n#######\n\n\n\n(trivial)\n####6##\n#.....#\n#..x..4\n#..ea.#\n#.p...#\n#.....#\n#######\n\n\n####6##\n#.....#\n#..x..4\n#..ea.#\n#.p...#\n#.....#\n#######\n\n\n####6##\n#.....#\n#.c.q.#\n#p.a..4\n#.x.z.#\n#.....#\n#######\n\n##6##\n#...#\n#.p.#\n#...4\n#####\n\n.....\n.....\n.....\n.....\n.....\n\n\n( #########.... )\n( #.......6#### )\n( #.......x...# )\n( #...c.a.eaaz# )\n( #....p......# )\n( #...a.x.caaq# )\n( #.......x...# )\n( #.......1#### )\n( #########.... )\n\n\n( #########...... )\n( #.......6###### )\n( #.......x.....# )\n( #...c.a.eaaaaz# )\n( #....p........# )\n( #...a.x.caaaaq# )\n( #.......x.....# )\n( #.......1###### )\n( #########...... )\n\n\n( #########....... )\n( #.......6####### )\n( #.......x......# )\n( #..c.a..eaaaaz.# )\n( #...p..........# )\n( #..a.x..caaaaq.# )\n( #.......x......# )\n( #.......1####### )\n( #########....... )\n\n( #########....... )\n( #.......#....... )\n( #.......6####### )\n( #.......x......# )\n( #..c.a..eaaaaz.# )\n( #...p..........# )\n( #..a.x..caaaaq.# )\n( #.......x......# )\n( #.......1####### )\n( #.......#....... )\n( #########....... )\n\n( ################ )\n( #..............# )\n( #.......c8###### )\n( #.......x......# )\n( #..c.z..eaaaaz.# )\n( #...p..........# )\n( #..a.x..caaaaq.# )\n( #.......x......# )\n( #.......e4###### )\n( #..............# )\n( ################ )\n\n( ################ )\n( #..............# )\n( #.......c8###### )\n( #..c.z..x......# )\n( #...p...eaaaaz.# )\n( #..a.x.........# )\n( #.......caaaaq.# )\n( #..e.q..x......# )\n( #.......e4###### )\n( #..............# )\n( ################ )\n\n)\n\n(\ntransformation\n\n[player]->[]\n\nchoose 15 [ rohr ] [ no obstacle ] -> [ ] [ rohr ] \n(choose 1 [ player ] [ no obstacle ] -> [ ] [ player ])\n(choose 5 [ outlet ] [ wall ] -> [ wall ] [ outlet ]\nchoose 1 [ flow no outlet ] [ outlet no flow ] -> [ ] [ outlet flow ])\n\n\nchoose 1 [ no obstacle ] -> [ player ]\n\nchoose 10 option 0.5 [ no obstacle ] -> [ wall ]\n+ option 0.5 [] -> [ ]\n)\n\n\n\n", [0, 0, 2, 1, 0, 4, 3, 3, 0, 0, 0, 1, 1, 1, 3, 4, 0, 1, 1, 2, 4, 2, 4, 3, 2, 3, 2, 2, 1, 1, 0, 4, 4, 2, 3, 3, 3, 0, 3, 0, 0, 4, 2, 1, 1], "background wall:0,background wall wall_o:1,1,1,1,1,1,\n0,background wall wall_s:2,background:3,3,3,background rohr_ns:4,3,\n3,background wall wall_n:5,2,3,3,4,3,\nbackground outlet_n wall wall_n wall_nw wall_o wall_s wall_so wall_w:6,3,5,2,3,background flow rohr_so:7,3,\nbackground player:8,3,3,5,2,3,background flow inlet outlet_w wall wall_n wall_nw wall_o wall_s wall_so wall_w:9,\nbackground rohr_ow:10,3,3,3,5,2,3,\n3,3,3,3,3,5,0,\nbackground wall wall_w:11,11,11,11,11,11,0,\n", 4, "1645544832464.3308"] - ], - [ - "crate guardian", - ["title crate guardian\nauthor increpare\nhomepage www.increpare.com\nrun_rules_on_level_start\nbackground_color darkgreen\n\n(\n\nthanks to youatexample for some title advice\n\nother possible titles:\nīdōlum cistae sānctum\ngreat idol of the crates\ncrate idol\n\n\n)\n( verbose_logging )\n( debug )\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\n\n( Target1 )\n( #4b1116 )\n( ..... )\n( .000. )\n( .0.0. )\n( .000. )\n( ..... )\n\n\nTarget\ndarkblue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\n#1b2632\n\nPlayer\n#c8727a\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nCrate\n#746cc2\n00000\n0...0\n0...0\n0...0\n00000\n\n\nstatue2\nblue \n00.00\n.000.\n.000.\n00.00\n.0.0.\n\n\naura2\n#383185\n\n\n=======\nLEGEND\n=======\n\n\nstatue = statue2\npushable = crate or statue\npusher = crate or statue or player\naura = aura2\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nq = Target\n\n2 = statue2\n3 = crate and target\n4 = crate and target\n7 = statue2 and target\n8 = statue2 and target\n\nobstacle = crate or statue or wall or player\n0 = wall and aura2\n9 = aura2\na = statue2 and aura2\ne = target and aura2\nf = target and crate and aura2\n\nplayer_or_statue1_or_wall = player or wall\ncrate_or_wall = crate or wall\nj = player and aura2\nm = target and statue2 and aura2\n\n=======\nSOUNDS\n=======\n\nstatue2 move 95968304\nCrate MOVE 53883107\nendlevel 25071300\nstartlevel 46394106\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\naura2\nTarget\nPlayer, Wall, Crate, statue\n\n======\nRULES\n======\n\n[ > pusher | pushable ] -> [ > pusher | > pushable ]\n[ > pushable | wall ] -> cancel\n\nlate [ aura ] -> [ ]\n\nlate right [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\nlate down [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\n\nlate [ player_or_statue1_or_wall aura2 ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nall crate on target\n\n=======\nLEVELS\n=======\n\n\n\nmessage Level 1 of 6\n(ok level 1)\n.#######.\n.#.....#.\n.#..p..#.\n.#.....#.\n.#.***.#.\n.#.999.#.\n##.9a9.##\n#..999..#\n#..ooo..#\n#.......#\n##..#..##\n.#.....#.\n.#######.\n\nmessage Level 2 of 6\n(I dunno?)\n#######\n#.....#\n#..3..#\n#.9e9.#\n#.9a9.#\n#.999.#\n#..*..#\n#.....#\n#..p..#\n#.....#\n#######\n\nmessage Level 3 of 6\n.#######.\n.#.p...#.\n.#.***.#.\n##.999.##\n#..eme..#\n#..999..#\n#...#...#\n###...###\n..#####..\n\n\nmessage Level 4 of 6\n(OK)\n##########\n#........#\n#.*999...#\n#..9a9.o.#\n#.p9e90000\n#...*.0...\n#.....0...\n#######...\n\n\nmessage Level 5 of 6\n(OK)\n######....\n#....#....\n#....##...\n#ooo..##..\n#......##.\n##......##\n.##..999.#\n..##.9a9.#\n...##999.#\n...#.....#\n...#.***.#\n...#.....#\n...#..p..#\n...#.....#\n...#######\n\nmessage Level 6 of 6\n(ok final level! I used my brain and solved it)\n#########\n#...p...#\n#..o.o..#\n#.o***o.#\n#..*a*..#\n#.o***o.#\n#..o.o..#\n#.......#\n#########\n\nmessage Congratulations. You learned how to work with the guardian of the crates. She still keeps you at a distance, but you have earned her respect.\n\n( 00000000000 )\n( 0.........0 )\n( 0....p....0 )\n( 0...o.o...0 )\n( 0..o***o..0 )\n( 0...*a*...0 )\n( 0..o***o..0 )\n( 0...o.o...0 )\n( 0.........0 )\n( 0.........0 )\n( 00000000000 )\n\n( ####### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n\n( ######## )\n( #......# )\n( #......# )\n( #......# )\n( #..p...# )\n( #.pp...# )\n( #ppp...# )\n( ######## )\n\n(\n\nTransformations\n\nchoose 4 [] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ statue1 ]\nchoose 1 [ no obstacle ] -> [ statue2 ]\n\n\nright [ | statue1 | ] -> [ aura1 | aura1 statue1 | aura1 ]\nright [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\ndown [ no aura1 | aura1 | no aura1 ] -> [ aura1 | aura1 | aura1 ]\ndown [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\nchoose 1 [ no aura2 no obstacle ] -> [ player ]\n\nchoose 2 [no aura1 no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player ] -> [ target ]\n\n\nalt transform\n\n\nchoose 11 [ player ] -> [ no player ]\n\nchoose 4[ no player ] -> [ wall aura12 ]\n(choose 1 [ no wall | no obstacle | no wall ] -> [ | statue1| ]\nright [ | statue1 | ] -> [ aura1 | aura1 statue1 | aura1 ]\ndown [ no aura1 | aura1 | no aura1 ] -> [ aura1 | aura1 | aura1 ])\n\nchoose 1 [ no wall no aura1 no player | no obstacle no aura1 no player | no wall no aura1 no player ] -> [ |statue2| ]\nright [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\ndown [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\n(choose 1 [ no aura2 no obstacle ] -> [ player ])\n\nchoose 3 [no aura1 no obstacle ] -> [ crate ]\nchoose 3 [ no wall no player ] -> [ target ]\n\n[aura12 wall aura1] ->[aura1]\n[aura12 wall aura2] ->[aura2]\n\n\n==========\n\nchoose 5 [ player ] -> [ no player ]\n\nchoose 4[ no player ] -> [ wall ]\n\nchoose 1 [ no wall no player | no obstacle no player | no wall no player ] -> [ |statue2| ]\nright [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\ndown [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\n(choose 1 [ no aura2 no obstacle ] -> [ player ])\n\nchoose 3 [ no obstacle ] -> [ crate ]\nchoose 3 [ no wall no player ] -> [ target ]\n\n)\n\n", [2, 2, 3, 3, 2, 2, 1, 2, 2, 1, 1, 0, 2, 3, 3, 0, 1, 1, 2, 1, 3, 0, 1, 3, 0, 0, 0, 1, 2, 2, 3, 2, 1, 2, 1, 1, 0, 0, 2, 1, 1, 1, 3, 0, 0, 0, 1, 0, 0, 0, 0, 3, 3, 2], "background wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,0,\n0,1,1,aura2 background target:2,aura2 background crate:3,2,1,1,0,\n0,1,background player target:4,3,aura2 background statue2:5,3,background target:6,1,0,\n0,background crate:7,1,aura2 background:8,3,3,7,1,0,\n0,1,6,1,1,1,6,1,0,\n0,1,1,6,1,6,1,1,0,\n0,1,1,7,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n", 11, "1645544889350.864"] - ], - [ - "Don't let your goals slip away", - ["title Don't let your goals slip away\nauthor increpare [riff on david skinner's levels]\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\nbackground_color green\n\n\ncolor_palette 2\n========\nOBJECTS\n========\n\nBackground\nGREEN green\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nblack\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nDARKBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nlightgray lightgray lightgray lightgray\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange\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\nobstacle = crate or wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 78774307\ntarget move 81495507\nendlevel 52446100\nstartgame 73236703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n( [ > player | wall ] -> cancel )\n[ > player | crate | obstacle ] -> cancel\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > player | target ] -> [ > player | > target ] \n[ > target | target ] -> [ > target | > target ]\n[ > target | wall ] -> [ target | wall ]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 8\n\n(funny therefore good)\n####..\n#o*#..\n#..###\n#....#\n#.o*.#\n#.p###\n####..\n\n(meh)\n( ####.. )\n( #.o#.. )\n( #..### )\n( #o...# )\n( #*.*.# )\n( #.p### )\n( ####.. )\n\n\nmessage level 2 of 8\n\n\n(p. good!)\n..####...\n###..####\n#....*o.#\n#.#..#.o#\n#..*.#p.#\n#########\n\n( (Easy but funny) )\n( ###### )\n( #.*..# )\n( #.#.*# )\n( #....# )\n( #p*o.# )\n( #.oo.# )\n( ###### )\n\n\nmessage level 3 of 8\n\n(not bad)\n######\n##o..#\n#.#oo#\n#.*..#\n#.*..#\n#p*..#\n######\n\nmessage level 4 of 8\n\n########\n#...*..#\n#.o#.@p#\n#..*...#\n#####.o#\n....####\n\nmessage level 5 of 8\n\n\n\n(decent!)\n#####.\n#.*.##\n#.o.p#\n##.o.#\n.##.*#\n..##.#\n...###\n\nmessage level 6 of 8\n\n(fine right?)\n......###.\n#######o##\n#...*o...#\n#.#.#.#.##\n#.p.*...#.\n#########.\n\nmessage level 7 of 8\n(no idea. damnit spoiled but also ok.)\n####..\n#..#..\n#.*###\n#..*p#\n#..o.#\n#o.###\n####..\n\n\n\nmessage level 8 of 8\n(Tricky but also decent? involves fun manipulations)\n#######\n#..#..#\n#.o*o.#\n#.*p*##\n#.o*o.#\n#..#..#\n#######\n\n\nmessage Congratulations! You didn't let your goals run away from you.\n\n(transform\n\n[player]->[]\n[target]->[]\n[crate]->[]\n\nchoose 2 [] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player ] -> [ target ] \n\n)\n\n", [0, 0, "undo", "undo", 1, 0, 0, 3, 3, 3, 2, 1, 1, 0, 0, 1, 0, 0, "restart", 0, 0, 0, 2, 3, 3, 2, 1, 1, 2, 1, 0, 0, 0, 0, 0, 2, 0, 1, 1, 1, 3, 3, 3, "undo", "undo", 3, 3, 1, 1, 1, 2, 3, 0, 1, 1, "restart", 0, 0, 1, "restart", 3, 0, 0, 1, 1, 1, 1, "undo", 0, 1, 2, 2, 1, 2, 2, 1, 2, 2, 3, 3, 0, 2, 1, 1, 0, 0, 3, 3, 3, 3, 3, 1, 1], "background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,0,1,\n1,0,0,0,0,1,1,0,background player:2,\n0,background crate:3,1,1,1,0,1,1,1,\n0,1,background target:4,0,0,1,0,1,background crate target:5,\n0,0,1,0,1,1,1,1,1,\n", 3, "1645544970753.6125"] - ], - [ - "Eyeball-watching flowers bloom", - ["title Eyeball-watching flowers bloom\nauthor increpare\nhomepage www.increpare.com\n\n\n(thanks to bluemelon555 for title suggestions)\n\nbackground_color #094118\ntext_color #f7e26b\nrun_rules_on_level_start\n\nverbose_logging\n\n(debug)\n\n========\nOBJECTS\n========\n\nBackground\n#0f5321 #44891a\n00000\n01000\n01010\n00010\n00000\n\n\n\n\nWall_inactivated\ntransparent #44891a #a3ce27\n01110\n12121\n11211\n12121\n01110\n\n\n\nwall_activated =\ntransparent #e06f8b #a3ce27 #f7e26b\n01120\n21111\n11311\n11112\n02110\n\nwall_burnt\ntransparent #430006 #000000\n01210\n22222\n21221\n12222\n02210\n\n\nplayer_up\nwhite yellow red black\n10201\n02320\n00200\n00000\n.000.\n\n\nplayer_down\nwhite yellow red black\n.000.\n00000\n00200\n02320\n10201\n\n\nplayer_left\nwhite yellow red black\n1000.\n02000\n23200\n02000\n1000.\n\n\nplayer_right\nwhite yellow red black\n.0001\n00020\n00232\n00020\n.0001\n\n\nCrate\ntransparent #9d9d9d #bfbfbf #737373\n00120\n01112\n31112\n33111\n03330\n\n\nstrahlen\nyellow\n\nstrahlen_top\nyellow\n00000\n00000\n.....\n.....\n.....\n\nstrahlen_bottom\nyellow\n.....\n.....\n.....\n00000\n00000\n\nstrahlen_left\nyellow\n00...\n00...\n00...\n00...\n00...\n\nstrahlen_right\nyellow\n...00\n...00\n...00\n...00\n...00\n\n\nburnout\n#0f5321 #430006 #000000\n01210\n22222\n21221\n12222\n02210\n\n\n=======\nLEGEND\n=======\n\nplayer = player_up or player_down or player_left or player_right\nwall = Wall_inactivated or wall_activated\n. = Background\n# = Wall_inactivated\nstrahlen_all = strahlen or strahlen_top or strahlen_bottom or strahlen_left or strahlen_right\n\nP = Player_up\nq = player_down\nr = player_left\ns = player_right\n\n* = crate\no = background\n@ = background\n\nobstacle = crate or wall or player\nstrahlen_or_player = strahlen or player\n=======\nSOUNDS\n=======\n\nCrate MOVE 21697107\nendlevel 23649709\nstartlevel 40644309\nstartgame 98216309\n\nsfx0 94788500 (Blume)\n(58036508)\nsfx1 78837102 (burn)\n\nsfx2 94214904 (deadend)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nstrahlen_all\nPlayer, Wall, Crate, burnout, wall_burnt\n\n======\nRULES\n======\n\nup [ > player_up | wall_activated ] -> cancel \ndown [ > Player_down | wall_activated ] -> cancel \nleft [ > Player_left | wall_activated ] -> cancel \nright [ > Player_right | wall_activated ] -> cancel \n\n[wall_burnt] -> cancel sfx2\n\nup [ > Player | Crate | no obstacle ] -> [ | Player_up | Crate ]\ndown [ > Player | Crate | no obstacle ] -> [ | Player_down | Crate ]\nleft [ > Player | Crate | no obstacle ] -> [ | Player_left | Crate ]\nright [ > Player | Crate | no obstacle ] -> [ | Player_right | Crate ]\n\nup [ > Player | no obstacle ] -> [ | Player_up ]\ndown [ > Player | no obstacle ] -> [ | Player_down ]\nleft [ > Player | no obstacle ] -> [ | player_left ]\nright [ > Player | no obstacle ] -> [ | player_right ]\n\n[ up player ] -> [ player_up ]\n[ down player ] -> [ player_down ]\n[ left player ] -> [ player_left ]\n[ right player ] -> [ player_right ]\n\n[strahlen_all]->[]\nup [ player_up | no obstacle ] -> [ player_up | strahlen ]\ndown [ player_down | no obstacle ] -> [ player_down | strahlen ]\nleft [ player_left | no obstacle ] -> [ player_left | strahlen ]\nright [ player_right | no obstacle ] -> [ player_right | strahlen ]\n\n[ strahlen_or_player | strahlen | no strahlen no obstacle ]-> [ strahlen_or_player | strahlen | strahlen ]\n\n[ strahlen_or_player | strahlen | wall_activated ] -> [ strahlen_or_player | strahlen | wall_burnt ] sfx1\n[ strahlen_or_player | strahlen | Wall_inactivated ] -> [ strahlen_or_player | strahlen | wall_activated ] sfx0\n\n\nup [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_bottom ]\ndown [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_top ]\nleft [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_right ]\nright [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_left ]\n\n\nup [ player_up | no strahlen ]-> [ player_up| strahlen_bottom ]\ndown [ player_down | no strahlen ]-> [ player_down | strahlen_top]\nleft [ player_left | no strahlen ]-> [ player_left | strahlen_right ]\nright [ player_right | no strahlen ]-> [ player_right | strahlen_left ]\n\nup [ player_up | Wall_activated ] -> [ player_up | wall_burnt ] sfx1\nup [ player_up | Wall_inactivated ] -> [ player_up | wall_activated ] sfx0\ndown [ player_down | Wall_activated ] -> [ player_down | wall_burnt ] sfx1\ndown [ player_down | Wall_inactivated ] -> [ player_down | wall_activated ] sfx0\nleft [ player_left | Wall_activated ] -> [ player_left | wall_burnt ] sfx1\nleft [ player_left | Wall_inactivated ] -> [ player_left | wall_activated ] sfx0\nright [ player_right | Wall_activated ] -> [ player_right | wall_burnt ] sfx1\nright [ player_right | Wall_inactivated ] -> [ player_right | wall_activated ] sfx0\n\n==============\nWINCONDITIONS\n==============\n\nno Wall_inactivated\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 3\n\n.###.\n#...#\n#.q.#\n.###.\n\nmessage level 2 of 3\n\n\n(ok!)\n.####.\n#....#\n#.*..#\n#.p*.#\n#....#\n.####.\n\nmessage level 3 of 3\n\n(decent)\n.#####.\n#.....#\n#..*..#\n#.*p*.#\n#..*..#\n#.....#\n.#####.\n\nmessage Congratulations. The gardens look amazing.\n\n\n(\n(meh)\n.###.\n#...#\n#...#\n#.q.#\n.###.\n)\n(\n(meh)\n.####.\n#....#\n#.p..#\n#..*.#\n#....#\n.####.\n\n.#####.\n#.....#\n#.....#\n#..#..#\n#...*.#\n#...p.#\n.#####.\n\n(maybe ok? kinda cheated to find the solution but i could've figured it out!)\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#....q#\n.####=.\n\n(i could not solve this and I think that it's bad)\n.###.\n#...#\n#...#\n#...#\n#...#\n#.*.#\n#.p.#\n.###.\n\n\n.####.\n#....#\n#....#\n#....#\n#....#\n.####.\n\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n.#####.\n\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n.#####.\n\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n.#####.\n\n.######.\n#......#\n#......#\n#......#\n#......#\n#......#\n#......#\n#......#\n.######.\n)\n\n(Transform\n\n[player]->[]\n[crate]->[]\n\n\nchoose 2 [ ] -> [ wall_inactivated ]\n\nchoose 1 [ no obstacle ] -> [ player_up ]\n+ [ no obstacle ] -> [ player_down ]\n+ [ no obstacle ] -> [ player_left ] \n+ [ no obstacle ] -> [ player_right ]\n\nchoose 1 [ no obstacle ] -> [ crate ]\n\n[strahlen]->[]\nup [ player_up | no obstacle ] -> [ player_up | strahlen ]\ndown [ player_down | no obstacle ] -> [ player_down | strahlen ]\nleft [ player_left | no obstacle ] -> [ player_left | strahlen ]\nright [ player_right | no obstacle ] -> [ player_right | strahlen ]\n\n[ strahlen_or_player | strahlen | no strahlen no obstacle ]-> [ strahlen_or_player | strahlen | strahlen ]\n[ strahlen_or_player | strahlen | Wall_inactivated ] -> [ strahlen_or_player | strahlen | wall_activated ]\n\nup [ player_up | Wall_activated ] -> cancel\nup [ player_up | Wall_inactivated ] -> [ player_up | wall_activated ]\ndown [ player_down | Wall_inactivated ] -> [ player_down | wall_activated ]\nleft [ player_left | Wall_inactivated ] -> [ player_left | wall_activated ]\nright [ player_right | Wall_inactivated ] -> [ player_right | wall_activated ]\n\n\n)\n\n", [1, 2, 3, 3, 0, "undo", 0, 0, 3, 2, 3, 2, 1, 1, 0, 0, 1, 0, 1, 2, 3], "background:0,background wall_activated:1,1,1,background wall_inactivated:2,0,\n1,0,0,0,background crate:3,1,\n2,3,background player_right strahlen_right:4,0,0,2,\n2,0,background strahlen:5,0,0,2,\n2,0,5,0,0,1,\n0,2,background strahlen_left wall_burnt:6,1,1,0,\n", 3, "1645545001785.496"] - ], - [ - "Subway upholstry snot smearing championship", - ["title Subway upholstry snot smearing championship\nauthor increpare\nhomepage www.increpare.com\ncolor_palette 1\n\nrun_rules_on_level_start\n\nbackground_color #131316\ntext_color #6abe30\n========\nOBJECTS\n========\n\nBackground\n#5b6ee1 #639bff #ac3232\n00011\n10101\n12101\n20201\n10200\n\ntilled \n#6abe30 #5b6ee1\n01110\n01001\n10101\n10110\n01011\n\n\n\nWall\n#e7dcc0 #b478cb #e1ae5b #d77bba #76428a\n00000\n01220\n01330\n04330\n00000\n\nwallalt\n#e7dcc0 #e1ae5b #e15b5b #ab7722\n00000\n01120\n01120\n03330\n00000\n\n\n\nwallt\n#fdefd4 #e7dcc0 #42b7f0 #65dadf #54cf6f\n00000\n11111\n12231\n14231\n11111\n\nwallb\n#e7dcc0 #e96ff2 #780d80 #e442f0 #c2bb91\n00000\n01120\n02330\n00000\n44444\n\nwalltb\n#fdefd4 #e7dcc0 #6c1710 #ab1d11 #c2bb91\n00000\n11111\n12331\n11111\n44444\n\nwalltbalt\n#fdefd4 #e7dcc0 #fbf236 #fba736 #c2bb91\n00000\n11111\n12231\n11111\n44444\n\n\nPlayer\n#5b6ee1 #524b24 #eec39a #3f3f74 #000000\n01110\n02220\n23332\n03030\n04040\n\n\nCrate\ntransparent #99e550 #6abe30\n01110\n12221\n12221\n12221\n01110\n\nvoid ,\n#131316\n\n\n=======\nLEGEND\n=======\n\n\n. = Background\n# = Wall\n1 = wallt\n2 = wallb\n3 = walltb\n\n\nP = Player\n* = Crate and tilled\n@ = Crate and tilled\nO = Background\n\n\nwalls = Wall or wallt or wallb or walltb or wallalt or walltbalt\n\nwalls_or_void = walls or void\n\ngoodstate = walls_or_void or tilled\n=======\nSOUNDS\n=======\n\nCrate MOVE 41474107\nsfx0 3420907 (new snot)\nstartlevel 24347308\nendlevel 56675308\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ntilled\nPlayer, walls_or_void, Crate\n\n======\nRULES\n======\n\ndown [ no walls | walls | walls ] -> [ | wallt | walls ]\n\ndown [ walls | walls | no walls ] -> [ walls | wallb | ]\n\ndown [ no walls | walls | no walls ] -> [ | walltb | ]\n\ndown [ no wallalt | wall | wall | no wallalt ] -> [ | wall | wallalt | ] \n\nright [ no walltbalt | walltb | walltb | no walltbalt ] -> [ | walltbalt | walltb | ] \n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ < Player | Crate ] -> [ < Player | < Crate ]\n\nlate [ crate no tilled ] -> [ crate tilled ] sfx0\n\n==============\nWINCONDITIONS\n==============\n\nall Background on goodstate\n\n=======\nLEVELS\n=======\n\nmessage Go on, smear it ALL around!\n\nmessage Carriage 1 of 7\n(level 1)\n133331\n#p.*.#\n#*.1.#\n#..2.#\n#...*#\n233332\n\n\nmessage Carriage 2 of 7\n(level2)\n133331\n#....#\n#p.**#\n#.1**#\n232332\n\nmessage Carriage 3 of 7\n(slightly wholesome)\n13331,\n#...21\n#p...#\n21***#\n,21**#\n,,21.#\n,,,232\n\nmessage Carriage 4 of 7\n(I like this level! has personality)\n,,1331,,,\n132.*2331\n#.*.p...#\n#*3*.1*.#\n#.*..#..#\n233332332\n\n(\n(not actually taht scary, just need to use head a tiny amount)\n133331\n#.***#\n#*3**#\n#****#\n#....#\n#..p.#\n233332\n)\n\nmessage Carriage 5 of 7\n(pretty nice)\n133331\n#....#\n#.3p.#\n#..**#\n#****#\n#....#\n233332\n\n\nmessage Carriage 6 of 7\n(ok crate management?)\n133331,13331\n#*.*.232*.*#\n#p.....**3*#\n#...1....*.#\n#*.*#3333332\n23332,,,,,,,\n\nmessage Carriage 7 of 7\n(Decisions need to be made. ok conceptually?)\n,1313131,\n12.2*2.21\n#.*...*.#\n#3.3.3.3#\n#...*...#\n#3.3.3.3#\n#.*.p.*.#\n21.1.1.12\n,2323232,\n\nmessage All done! Very satisfying! \n\n(\n\n######\n#....#\n#.*.*#\n#p#.*#\n######\n\n\n######\n#p.*.#\n#*.#.#\n#..#.#\n#...*#\n######\n\n######\n#*.###\n#..#.#\n#p*#*#\n#...*#\n######)\n\n(\n\nTRANSFORM\n\n[ player ] -> []\n[ crate ] -> []\n\nchoose 4 [ ] - > [ wall ]\nchoose 1 [ no wall | no wall ] -> [ player | crate ]\n\n)\n", [1, 2, 3, 0, 1, 3, 3, 3, 3, 3, 2, 0, 1, 2, 3, 0, 1, 1, 1, 2, 1, 0, 3, 3, 1, 2, 2, 1, 1, 1, 3, 0, 0, 1, 3, 0, 0, 1, 2, 1, 1, 3, 2, 2, 3, 0, 2], "background void:0,background wallt:1,background wall:2,background wallalt:3,2,background wallb:4,0,background walltb:5,background tilled:6,\nbackground crate tilled:7,6,background walltbalt:8,1,4,7,5,6,5,\n8,6,6,7,7,8,5,6,6,\n7,background player:9,5,1,4,6,1,2,4,\n0,8,6,6,7,8,0,5,background:10,\n10,10,5,0,1,2,3,2,4,\n", 8, "1645545059102.073"] - ], - [ - "Double-Entry Bookkeeping Simulator#1", - ["title Double-Entry Bookkeeping Simulator\nauthor increpare\nhomepage www.increpare.com\n\n( verbose_logging )\nrun_rules_on_level_start\n\nbackground_color #404040\n\nagain_interval 0.1\n\n\n( Svelte Version für Simulieren \nhttps://www.puzzlescript.net/editor.html?hack=a52aae823542d184b57fc3301627a81a \n)\n\n========\nOBJECTS\n========\n\nBackground\n#404040\n\n\n\nWall\n#000000\n\n\nPlayer\ntransparent #ffffff\n01110\n01010\n11111\n00100\n01010\n\nblue_raw\n#1e88e5\n\n\nblue1 \n#003461 #1e88e5\n00100\n01100\n00100\n00100\n01110\n\nblue2 \n#003461 #1e88e5\n01100\n00010\n00100\n01000\n01110\n\nblue3 \n#003461 #1e88e5\n01100\n00010\n01100\n00010\n01100\n\nblue4 \n#003461 #1e88e5\n01000\n01000\n01010\n01110\n00010\n\nblue5 \n#003461 #1e88e5\n01110\n01000\n01100\n00010\n01100\n\nblue6 \n#003461 #1e88e5\n00100\n01000\n01100\n01010\n00100\n\nblue7 \n#003461 #1e88e5\n01110\n00010\n00010\n00100\n00100\n\nblue8 \n#003461 #1e88e5\n00100\n01010\n00100\n01010\n00100\n\nblue9 \n#003461 #1e88e5\n00110\n01010\n00110\n00010\n00010\n\nred_raw\n#d81b60\n\nred1 \n#56001f #d81b60\n00100\n01100\n00100\n00100\n01110\n\nred2 \n#56001f #d81b60\n01100\n00010\n00100\n01000\n01110\n\nred3 \n#56001f #d81b60\n01100\n00010\n01100\n00010\n01100\n\nred4 \n#56001f #d81b60\n01000\n01000\n01010\n01110\n00010\n\nred5 \n#56001f #d81b60\n01110\n01000\n01100\n00010\n01100\n\nred6 \n#56001f #d81b60\n00100\n01000\n01100\n01010\n00100\n\nred7 \n#56001f #d81b60\n01110\n00010\n00010\n00100\n00100\n\nred8 \n#56001f #d81b60\n00100\n01010\n00100\n01010\n00100\n\nred9 \n#56001f #d81b60\n00110\n01010\n00110\n00010\n00010\n\nonce\ntransparent\n\ncounted\nwhite\n.....\n.....\n.....\n...0.\n.....\n\ncounting\nyellow\n.....\n.0...\n.....\n.....\n.....\n\ndeleting\nyellow\n00000\n0...0\n0...0\n0...0\n00000\n\ndeleted\norange\n.....\n.....\n...0.\n.....\n.....\n\nwall1\n#000000 #1f1f1f\n00100\n01100\n00100\n00100\n01110\n\nwall2\n#000000 #1f1f1f\n01100\n00010\n00100\n01000\n01110\n\nwall3\n#000000 #1f1f1f\n01100\n00010\n01100\n00010\n01100\n\nwall4\n#000000 #1f1f1f\n01000\n01000\n01010\n01110\n00010\n\nwall5\n#000000 #1f1f1f\n01110\n01000\n01100\n00010\n01100\n\nwall6\n#000000 #1f1f1f\n00100\n01000\n01100\n01010\n00100\n\nwall7\n#000000 #1f1f1f\n01110\n00010\n00010\n00100\n00100\n\nwall8\n#000000 #1f1f1f\n00100\n01010\n00100\n01010\n00100\n\nwall9\n#000000 #1f1f1f\n00110\n01010\n00110\n00010\n00010\n\n=======\nLEGEND\n=======\n\nwalllabel = wall1 or wall2 or wall3 or wall4 or wall5 or wall6 or wall7 or wall8 or wall9\nred = red_raw or red1 or red2 or red3 or red4 or red5 or red6 or red7 or red8 or red9\n\nblue = blue_raw or blue1 or blue2 or blue3 or blue4 or blue5 or blue6 or blue7 or blue8 or blue9\n\nblue_other = blue\nred_other = red\n\ncoloured = red or blue\n\npushable = red or blue\n. = Background\n# = Wall\nP = Player\n* = red_raw\n@ = blue_raw\n\nobstacle = pushable or wall or player\n\n=======\nSOUNDS\n=======\n\nred move 76964107\nblue move 73247707\nsfx0 66382107 (destroy)\nsfx1 49518300 (destroy start)\n\nstartlevel 46354708\nendlevel 70029700\nstartgame 40047300\n\n================\nCOLLISIONLAYERS\n================\n\nonce, counted\ncounting\ndeleted\nBackground\nPlayer, Wall, pushable\ndeleting\nwalllabel\n\n======\nRULES\n======\n\n[ moving player ] [ deleted ] -> [ moving player ] [ ]\n\n[ blue no deleting ] -> [ blue_raw ]\n[ red no deleting ] -> [ red_raw ]\n\n[ > Player | pushable ] -> [ > Player | > pushable ]\n\n\nstartloop\n\nlate [ player no once no deleting ] [ blue no counted no deleting ] -> [ player once ] [ once blue ]\n\nlate [ once blue_raw no deleting ] -> [ counting blue1 counted ]\nlate [ once blue1 no deleting ] -> [ counting blue2 counted ]\nlate [ once blue2 no deleting ] -> [ counting blue3 counted ]\nlate [ once blue3 no deleting ] -> [ counting blue4 counted ]\nlate [ once blue4 no deleting ] -> [ counting blue5 counted ]\nlate [ once blue5 no deleting ] -> [ counting blue6 counted ]\nlate [ once blue6 no deleting ] -> [ counting blue7 counted ]\nlate [ once blue7 no deleting ] -> [ counting blue8 counted ]\nlate [ once blue8 no deleting ] -> [ counting blue9 counted ]\n\nlate [once]->[]\n\nlate [ counting blue no deleting | no counting blue_other no deleting ] -> [ counting blue | counting blue ]\nlate [counting]->[]\n\nendloop\n\n\nstartloop\nlate [ player no once ] [ red no counted no deleting ] -> [ player once ] [ once red ]\n\nlate [ once red_raw no deleting ] -> [ counting red1 counted ]\nlate [ once red1 no deleting ] -> [ counting red2 counted ]\nlate [ once red2 no deleting ] -> [ counting red3 counted ]\nlate [ once red3 no deleting ] -> [ counting red4 counted ]\nlate [ once red4 no deleting ] -> [ counting red5 counted ]\nlate [ once red5 no deleting ] -> [ counting red6 counted ]\nlate [ once red6 no deleting ] -> [ counting red7 counted ]\nlate [ once red7 no deleting ] -> [ counting red8 counted ]\nlate [ once red8 no deleting ] -> [ counting red9 counted ]\n\nlate [once]->[]\n\nlate [ counting red no deleting | no counting red_other no deleting ] -> [ counting red | counting red ]\nlate [counting]->[]\n\nendloop\n\n\nrandom late [ deleting red1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting red2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting red3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting red4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting red5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting red6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting red7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting red8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting red9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting blue1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting blue2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting blue3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting blue4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting blue5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting blue6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting blue7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting blue8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting blue9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting red1 | deleting blue1 ] -> [ wall wall1 deleted | wall wall1 deleted ] again sfx0\n+ late [ deleting red2 | deleting blue2 ] -> [ wall wall2 deleted | wall wall2 deleted ] again sfx0\n+ late [ deleting red3 | deleting blue3 ] -> [ wall wall3 deleted | wall wall3 deleted ] again sfx0\n+ late [ deleting red4 | deleting blue4 ] -> [ wall wall4 deleted | wall wall4 deleted ] again sfx0\n+ late [ deleting red5 | deleting blue5 ] -> [ wall wall5 deleted | wall wall5 deleted ] again sfx0\n+ late [ deleting red6 | deleting blue6 ] -> [ wall wall6 deleted | wall wall6 deleted ] again sfx0\n+ late [ deleting red7 | deleting blue7 ] -> [ wall wall7 deleted | wall wall7 deleted ] again sfx0\n+ late [ deleting red8 | deleting blue8 ] -> [ wall wall8 deleted | wall wall8 deleted ] again sfx0\n+ late [ deleting red9 | deleting blue9 ] -> [ wall wall9 deleted | wall wall9 deleted ] again sfx0\n\nlate [counted]->[]\n\n\nlate [ red1 | blue1 ] -> [ deleting red1 | deleting blue1 ] again sfx1 \nlate [ red2 | blue2 ] -> [ deleting red2 | deleting blue2 ] again sfx1 \nlate [ red3 | blue3 ] -> [ deleting red3 | deleting blue3 ] again sfx1 \nlate [ red4 | blue4 ] -> [ deleting red4 | deleting blue4 ] again sfx1 \nlate [ red5 | blue5 ] -> [ deleting red5 | deleting blue5 ] again sfx1 \nlate [ red6 | blue6 ] -> [ deleting red6 | deleting blue6 ] again sfx1 \nlate [ red7 | blue7 ] -> [ deleting red7 | deleting blue7 ] again sfx1 \nlate [ red8 | blue8 ] -> [ deleting red8 | deleting blue8 ] again sfx1 \nlate [ red9 | blue9 ] -> [ deleting red9 | deleting blue9 ] again sfx1 \n\nlate [ deleting red1 | no deleting red1 ] -> [ deleting red1 | deleting red1 ]\nlate [ deleting red2 | no deleting red2 ] -> [ deleting red2 | deleting red2 ]\nlate [ deleting red3 | no deleting red3 ] -> [ deleting red3 | deleting red3 ]\nlate [ deleting red4 | no deleting red4 ] -> [ deleting red4 | deleting red4 ]\nlate [ deleting red5 | no deleting red5 ] -> [ deleting red5 | deleting red5 ]\nlate [ deleting red6 | no deleting red6 ] -> [ deleting red6 | deleting red6 ]\nlate [ deleting red7 | no deleting red7 ] -> [ deleting red7 | deleting red7 ]\nlate [ deleting red8 | no deleting red8 ] -> [ deleting red8 | deleting red8 ]\nlate [ deleting red9 | no deleting red9 ] -> [ deleting red9 | deleting red9 ]\n\n\nlate [ deleting blue1 | no deleting blue1 ] -> [ deleting blue1 | deleting blue1 ]\nlate [ deleting blue2 | no deleting blue2 ] -> [ deleting blue2 | deleting blue2 ]\nlate [ deleting blue3 | no deleting blue3 ] -> [ deleting blue3 | deleting blue3 ]\nlate [ deleting blue4 | no deleting blue4 ] -> [ deleting blue4 | deleting blue4 ]\nlate [ deleting blue5 | no deleting blue5 ] -> [ deleting blue5 | deleting blue5 ]\nlate [ deleting blue6 | no deleting blue6 ] -> [ deleting blue6 | deleting blue6 ]\nlate [ deleting blue7 | no deleting blue7 ] -> [ deleting blue7 | deleting blue7 ]\nlate [ deleting blue8 | no deleting blue8 ] -> [ deleting blue8 | deleting blue8 ]\nlate [ deleting blue9 | no deleting blue9 ] -> [ deleting blue9 | deleting blue9 ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nno coloured\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 9\n\n(improved version?)\n.....######\n.....#....#\n....##..@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n\nmessage Level 2 of 9\n\n#######...\n#@#@#@#...\n#@#@#@#...\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n.....#p..#\n.....#####\n\n\n\n\n\nmessage Level 3 of 9\n(ok? not too hard)\n#######.\n#.....#.\n#..*.@#.\n####.###\n.#.....#\n.#.*.@.#\n.#..p..#\n####.###\n#..*.@#.\n#.....#.\n#######.\n\n\n\nmessage Level 4 of 9\n#######..\n#.....#..\n#...@.#..\n#...@.###\n#...@.#@#\n#.....#.#\n#.p..***#\n#.....#.#\n#...@.#.#\n#...@...#\n#...@.###\n#.....#..\n#######..\n\n\nmessage Level 5 of 9\n\n(Actually tricky? or a bit overwhelming maybe?)\n(requires silly batching. i like this)\n#########\n#...#...#\n#..***..#\n#.......#\n####.####\n#.......#\n#..@@@p.#\n#...#...#\n#########\n\nmessage Level 6 of 9\n(possibly ok? IDK? WE?)\n#########\n#.......#\n#.*..@.*#\n#..**..@#\n#..**.@@#\n#.*..*..#\n#..p....#\n#########\n\nmessage Level 7 of 9\n(p ok? solution involves knowing something, but maybe you just stumble through it without knowing the thing)\n\n#####..\n#@@@#..\n#@@@##.\n#@#.@##\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\nmessage Level 8 of 9\n(p. ok level)\n###########\n#.........#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.p.......#\n#.........#\n###########\n\nmessage Level 9 of 9\n(ok final level maybe?)\n(fixed version?)\n...####....\n####..#....\n#@..*.#....\n###...#....\n..#.*#####.\n..#.*#.p.#.\n..#****@@#.\n..#.@@...#.\n..#.@@...#.\n..#.#@...##\n..#.......#\n..####....#\n.....######\n\nmessage Congratulations. You have mastered all the numbers, from 1 up to 9!\n\n(DISCARD PILE::::)\n\n(BAD IDEAS FOR FIRST LEVEL END )\n(thje better version. maybe ok early level?)\n( ####### )\n( #..#..# )\n( #..*.p# )\n( #..*..# )\n( #.....# )\n( ###.### )\n( #.....# )\n( #..@..# )\n( #..@..# )\n( #..#..# )\n( ####### )\n\n\n( ########## )\n( #@...##### )\n( ##...##### )\n( ##...##### )\n( ##@..##### )\n( ###...#### )\n( ###...#### )\n( ###@..#### )\n( ####.....# )\n( ####.***.# )\n( ####..p..# )\n( ########## )\n\n\n( audio test level)\n( ############# )\n( #..@........# )\n( #..@....@@..# )\n( #..@....@@@.# )\n( #..@.@..@@@.# )\n( #.*....*....# )\n( #..*.*..***.# )\n( #..*....***.# )\n( #..*....*...# )\n( #....p......# )\n( #...........# )\n( ############# )\n\n(level 2/3?)\n( ########## )\n( #........# )\n( #.**.@@@.# )\n( #........# )\n( #...p....# )\n( #........# )\n( ########## )\n\n(ok early level? meh other level does this but better IMO)\n( ###### )\n( #....# )\n( #.@.*# )\n( #.@.*# )\n( ###.## )\n( #....# )\n( #..p.# )\n( #....# )\n( ###.## )\n( #.@.*# )\n( #.@.*# )\n( #....# )\n( ###### )\n\n(ok level I think?)\n( ############# )\n( ####@.*...### )\n( ######*##.### )\n( #.....*.....# )\n( #.@@@...@@@.# )\n( #...........# )\n( #.....p.....# )\n( #...........# )\n( ############# )\n\n(\n\n(needs a few more steps of indirection on the right)\n#########\n#####*###\n#...#*###\n#.**@*###\n#.......#\n#@@..@@.#\n####p...#\n#########\n\n##############\n#....##......#\n#....##*.....#\n#.....#*.....#\n#...**@*.....#\n#............#\n###@@....@@..#\n######.p.....#\n######.......#\n##############\n\n###########\n#**@@***@@#\n#**..***..#\n#.........#\n#.........#\n#...@.@.@.#\n#.p.......#\n#...@.@.@.#\n#.........#\n###########\n\n##############\n#...#........#\n*.@.#........#\n#.#####**....#\n#.##**@**....#\n#............#\n####...@.@.@.#\n...#.p@.@.@..#\n...#.........#\n...###########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##....p..#\n##########\n\n\n(damnit a shortcut/trivialisation)\n##########\n####..####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n#@..######\n##..######\n##.*######\n##..#.p.##\n##****@@##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n(pedagogical version of other level)\n#############\n#@@*#@@#@####\n#@@*#@*#@####\n###*##*#*####\n###.......*.#\n###.......*.#\n#########.*.#\n#########p..#\n#############\n\n##########\n#........#\n#...@....#\n#........#\n#...**.@.#\n#.@.**...#\n#........#\n#.p..@...#\n#........#\n##########\n\n\n.#########.\n.#@.######.\n.#..######.\n.#****...#.\n.#*.**.p.#.\n###.**...#.\n#...@@*@@#.\n#...@@...#.\n#...@@...#.\n#@@*@@*@@#.\n#...*....#.\n#...@....#.\n#...@....#.\n##########.\n\n##########\n##@.##...#\n##..##.p.#\n###***...#\n##..***@@#\n##..@@...#\n##..@@...#\n##...@...#\n##.......#\n##.......#\n##########\n\n#########\n#@.##...#\n#..##.p.#\n##****@@#\n#..@@...#\n#...@...#\n#.......#\n#.......#\n#########\n\n##########\n####*#####\n#@.#*.p.##\n##****@@##\n##.@@...*#\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n\n\n##########\n#..#######\n#..#######\n#..##.p.##\n##****@@##\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n############\n#....#######\n#....#*#####\n#....#*.p.##\n#*##****@@##\n#.##.@@...*#\n#@##.@@...##\n####.#@...##\n####.......#\n####.......#\n############\n\n.#########...\n.#..######...\n.#..######...\n.##......#...\n.#.....p.#...\n##.......#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n##########...\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.......#\n#......*#\n#.....@*#\n######.##\n#....#.*#\n#.p...@.#\n#.......#\n#########\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.p.....#\n#......*#\n#.....@*#\n#.......#\n#....@.*#\n#.......#\n#########\n\n(is this funnier than above? I don't think so but I@m not sure)\n###########\n#.........#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.p.......#\n#.........#\n###########\n\n(technically harder than above but also more work)\n################\n#..............#\n#..............#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#.p............#\n#..............#\n################\n\n\n#################\n#...............#\n#...............#\n#..@@@.@@@.@@@..#\n#...*...*...*...#\n#..@@@.@@@.@@@..#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#...............#\n#################\n\n#################\n#...............#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n...............\n...............\n..@@@.@@@.@@@..\n...*...*...*...\n..@@@.@@@.@@@..\n...............\n...............\n.......p.......\n...............\n...............\n\n..........@.@...\n..........@.@...\n..........@*@...\n.......@@@*.*@@@\n..........@.@...\n..........@.@...\n..........@.@...\n................\n................\n\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n########\n#......#\n#......#\n#..@.*.#\n#......#\n###..*##\n####.###\n#p.@...#\n#......#\n####.###\n#......#\n#......#\n########\n\n\n...################\n..................#\n....@.............#\n.....@............#\n.@.**.@...........#\n..@.**.@..........#\n...@.**...........#\n....@.**..........#\n......p*.@........#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#################\n\n.........\n.........\n.#.#.#.#.\n.@.*.@.*.\n.#.#.#.#.\n.@.*.@.*.\n*#@#*#@#*\n.........\n..p......\n\n\n..#.#.#.#..\n...........\n..#.#.#.#..\n...........\n..#.#.#.#..\n...p.......\n\n.#.#.#.#.\n.@.*.*.@.\n.#.#.#.#.\n.@.*.*.@.\n*#@#.#@#*\n..p......\n\n(meh)\n#########\n#...@####\n#..*.@###\n#@..*.@##\n##@..*.@#\n###@..*.#\n####@p..#\n#########\n\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n(meeeeh. I think not great? too long but also if short too randomo)\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n###########\n###########\n##...@#####\n##..*.@####\n##@..*.@###\n###@..*.###\n####@p....#\n#####.***.#\n#####.....#\n###########\n\n#########\n#...@####\n#..*.@###\n#@..*.###\n##@..*.##\n####..*.#\n#####...#\n######.p#\n#########\n\n...#.......\n....#......\n....@#.....\n.....@#....\n#@....@#...\n.#@..*.@#..\n..#@..*....\n...#@..*...\n....#.*.*..\n.......*...\n......p.*..\n.........*.\n...........\n\n( (kinda different from the above) )\n( (trivial) )\n( ####### )\n( #....## )\n( #....## )\n( #.*.@## )\n( ###.### )\n( #.....# )\n( #.*.@.# )\n( #..p..# )\n( ###.### )\n( #.*.@## )\n( #....## )\n( #....## )\n( ####### )\n\n\n#######\n#....##\n#....##\n#....##\n#....##\n#.*.@##\n###.###\n#.....#\n#.*.@.#\n#p....#\n###.###\n#.*.@##\n#....##\n#....##\n#....##\n#....##\n#######\n\n#######\n#....##\n#....##\n#....##\n#.@.*##\n#.@.*##\n###.###\n#.....#\n#.@.*.#\n#p....#\n###.###\n#.@.*##\n#.@.*##\n#....##\n#....##\n#....##\n#######\n\n###########\n###@.*..###\n#####*#.###\n.....*.....\n.@@@...@@@.\n.....p.....\n...........\n...........\n\n#############\n####.....####\n######.#.####\n#...........#\n#...........#\n#.....p.....#\n#...........#\n#############\n\n#######\n#.....#\n#.***.#\n#.....#\n###.###\n#.....#\n#.@@@p#\n#.....#\n#######\n\n....####\n....#..#\n....#..#\n#####..#\n#...#..#\n#..@..*#\n#...#p.#\n#####..#\n#..@..*#\n#......#\n######.#\n....#@.#\n....#..#\n....#.*#\n....#..#\n....####\n\n.#######.\n.#.....#.\n.#..*..#.\n.#.*.*.#.\n.#.*.*.#.\n.#.....#.\n.#.....#.\n###.#.###\n#@@.#.@@#\n#@@.#.@@#\n#@..#..@#\n#@.*#*.@#\n#@p.#..@#\n#########\n\n@....*\n.@..*.\n......\n.@..*.\n..p...\n\n..........\n.@@....**.\n.@@....**.\n...@..*...\n..........\n...@..*...\n.....p....\n..........\n\n\n(ok partition problem)\n(nah broken)\n.........\n.........\n.@.....@.\n.@.#*#.@.\n.@..*..@.\n.........\n....p....\n.........\n\n...............\n....@..#..@....\n.#..@.#*#.@..#.\n#*..@..*..@..*#\n.#..@.....@..#.\n.......p.......\n...............\n\n....####.....\n...#@.*......\n....##*#.....\n......*......\n.............\n..@@@.p.@@@..\n.............\n.............\n\n#######\n#.....#\n#.#.#.#\n#.@.*.#\n###.###\n.......\np.@.*..\n.......\n###.###\n#.@.*.#\n#.#.#.#\n#.....#\n#######\n\n######\n#...##\n#...##\n#...##\n#.@.*#\n###.##\n......\np.@.*.\n......\n###.##\n#.@.*#\n#...##\n#...##\n#...##\n######\n\n(trivial)\n(\n.........\n.........\n..**.@...\n.........\n....p....\n.........\n)\n\n\n\n............\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..*.*..*.*..\n.....p......\n............\n\n...........\n.....@.....\n.....@.....\n.....@.....\n.....@.....\n.....*.....\n.@@@@*@@@@.\n.....*.....\n.@@@@.@@@@.\n.....*.....\n...........\n.....p.....\n...........\n\n...........\n...........\n..###.###..\n..#*....#..\n..#.*...#..\n..###.###..\n..p.@.@....\n...........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n..........\n..........\n..........\n\n..........\n..........\n..####....\n..#*.@..p.\n..#.*@....\n..####....\n..........\n..........\n\n..........\n..........\n..####....\n..#*..@.p.\n..#.*.@...\n..####....\n..........\n..........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n####..####\n..........\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n..........\n\n.########.\n.#......#.\n.#.*..@.#.\n.#..*.@.#.\n####..####\n...p......\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n\n@@@@@@@@\n###@####\n........\n........\n.*.*.*..\n........\n.*.*.*..\n........\n.*.*.p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n...*....\n..***...\n...*....\n..***...\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n..***...\n..*.*...\n..***...\n........\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n..*.*...\n........\n..*.*...\n...@....\n..*.*...\n........\n..*.*p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n........\n........\n...*....\n..*.*...\n...*....\n..*.*...\n.*.@.*..\n...p....\n###*####\n########\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n#######\n##...##\n#.....#\n###.###\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#..p..#\n###.###\n#######\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n##################\n#####@#@#@########\n#####@#@#@########\n#####*#*#*########\n#@.........*....p#\n#..............*.#\n##############.*.#\n##############.*.#\n##############...#\n##################\n\n\n##############\n#@#@#@########\n#@#@#@########\n#*#*#*########\n#......*.p...#\n#..........*.#\n##########.*.#\n##########...#\n##############\n\n##########\n#@#@#@####\n#@#@#@####\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n######p..#\n##########\n\n#############\n###@#@#@#####\n###@#@#@#####\n###*#*#*#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#############\n###@#@#@#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#########\n###@#####\n#@....*p#\n#.....*.#\n#########\n\n...........\n...........\n....@@@....\n...........\n..@.***.@..\n..@.***.@..\n..@.***.@..\n...........\n.....p.....\n...........\n...........\n\n###########\n#.........#\n#.#..@..#.#\n#...@.@...#\n#..@***@..#\n#...***...#\n#..@***@..#\n#...@.@...#\n#.#..p..#.#\n#.........#\n###########\n\n#########\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(meeeh but in a pinch! but really, don't add it)\n#########\n##.....##\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(aaa kinda ok? has some stuff going on)\n#########\n#.......#\n#.*.@.*.#\n#..*@*..#\n#.@@*@@.#\n#..*@*..#\n#.*.@.*.#\n#...p...#\n#########\n\n#########\n#.......#\n#.@..**.#\n#.....*.#\n#..@....#\n#....@..#\n#.**....#\n#..*p.@.#\n#.....@.#\n#.@.*.@.#\n#.......#\n#########\n\n(doesn't have enough personality)\n#########\n#......p#\n#..@.@..#\n#.*.*.@.#\n#....*..#\n#.**..@.#\n#.**.*..#\n#.......#\n#########\n\n\n#########\n...#*#...\n.........\n##..*..##\n###...###\n####p####\n###...###\n##..@..##\n.........\n...#@#...\n#########\n\n\n\n#..#..#\n#..*.p#\n#.....#\n#..*..#\n###.###\n#..@..#\n#.....#\n#..@..#\n#..#..#\n\n...........\n.....*.....\n...........\n.....*.....\n....*.*....\n...*@@@*...\n....*.*....\n.....*.....\n...........\n.....p.....\n...........\n\n.......\n..*.*..\n.*@@@*.\n..*.*..\n...*...\n.......\n...p...\n.......\n)\n(\n....\n....\n....\n\n....\n....\n....\n....\n\n\n....\n....\n....\n....\n....\n\n\n.....\n.....\n.....\n.....\n.....\n\n......\n......\n......\n......\n......\n......\n\n##########\n#........#\n#.#....#.#\n#..*..*..#\n#...**..@#\n#...**.@@#\n#..*..@..#\n#.#.p*.#.#\n#.......##\n##########\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n##########\n\n###########\n#....#....#\n#.**.#.@@.#\n#.*..#..@.#\n#.........#\n####.p.####\n#.........#\n#.@..#..*.#\n#.@@.#.**.#\n#....#....#\n###########\n\n(solvable which is nice but also not good which is not nice)\n##########\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#........#\n#...p....#\n##########\n\n##########################\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#........................#\n#...........p............#\n##########################\n\n##########################\n#........................#\n#........................#\n#.........*..p...........#\n#........@@..............#\n#........***.............#\n#.......@@@@.............#\n#.......*****............#\n#......@@@@@@............#\n#......*******...........#\n#.....@@@@@@@@...........#\n#........................#\n#........................#\n#........................#\n#........................#\n#........................#\n##########################\n\n###########\n#.........#\n#.........#\n#..*@@@@..#\n#..*...*..#\n#..*.*.*..#\n#..*.@@*..#\n#..*......#\n#..@@@....#\n#.........#\n#....p....#\n#.........#\n###########\n\n####################\n#..................#\n#..................#\n#..................#\n#..................#\n#..***........@@@..#\n#..*.*........@.@..#\n#..***........@@@..#\n#..................#\n#..................#\n#.....p............#\n#..................#\n####################\n\n###########\n#.........#\n#.*.@@@@@.#\n#.*.@...@.#\n#.*...*.@.#\n#.*****.@.#\n#.........#\n#.........#\n#....p....#\n###*###@###\n###########\n\n...........\n##@@@@@@@##\n#####@#####\n#.........#\n#....*....#\n#...*.*...#\n#..*.@.*..#\n#...*.*...#\n#....*....#\n#.........#\n#....p....#\n#####*#####\n###########\n\n#######\n#@@@@@#\n##@@@##\n#.p...#\n#..@..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#.....#\n###*###\n#######\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n..###..\n.##*##.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n##@@@##\n##@@@#.\n.#####.\n\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n###.###\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n#######\n#*.*.*#\n#.*.*.#\n#*.*.*#\n#.@.@.#\n#@.@.@#\n#.@.@.#\n#..@..#\n#.....#\n#..p..#\n#.....#\n#######\n\n\n\n(ACTUAL CANDIDATE LEVELS)\n\n\n\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#.........#\n#.........#\n#....p....#\n#.........#\n###########\n\n\n(it is a level, but not amazing? but maybe ok? but I don't know? also repeats a mechanism from another level? but maybe better?)\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#....p....#\n#.........#\n#####.#####\n####*.***##\n#####****##\n###########\n\n##########\n#........#\n#.....p..#\n#........#\n#.....####\n#..#.....#\n#..#@....#\n#..#.....#\n##########\n\n\n\nmessage level 1 of 10\n\n####..\n#..#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 2 of 10\n\n######\n#....#\n#.#P.#\n#.*@.#\n#..@.#\n#....#\n######\n\nmessage level 3 of 10\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#....#P.#\n#########\n\nmessage level 4 of 10\n\n########\n#......#\n#..@@*P#\n#......#\n#####..#\n....####\n\nmessage level 5 of 10\n\n.#######\n.#.....#\n.#..*..#\n##.*P*.#\n#...*..#\n#......#\n########\n\nmessage level 6 of 10\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#......#\n#...########\n#####.......\n\n..######....\n###..**#####\n#.......@..#\n#.#..**#@@.#\n#......#.p.#\n############\n\nmessage level 7 of 10\n\n#######\n#.....#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..P..#\n#######\n\nmessage level 8 of 10\n\n..######\n..#...P#\n..#.**.#\n####.###\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\nmessage level 9 of 10\n\n#####.\n#...##\n#P**.#\n##...#\n.##..#\n..##.#\n...###\n\nmessage level 10 of 10\n\n......#####\n......#...#\n......#.#.#\n#######.#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\nmessage congratulations!\n\n\n#########\n#.......#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#...p...#\n#########\n\n......#####\n......#...#\n#######.#.#\n#.*.*.*.*.#\n#.#.#.#.###\n#....p..#..\n####@@@@#..\n...######..\n\n........#####\n........#...#\n#########.#.#\n#...*.*.*.*.#\n#.#.#.#.#.###\n#......p..#..\n######@@@@#..\n.....######..\n\n..........#####\n..........#...#\n..#########.#.#\n.##.*.@.@.@...#\n##*.#.#.#.#.###\n#*......p.....#\n###########.#.#\n..........#...#\n..........#####\n\n.......#####\n.......#...#\n########.#.#\n#*.....*.*.#\n##.#.#.#.###\n#@.@.@p....#\n########.#.#\n.......#...#\n.......#####\n)\n\n(\n..#########\n..#.......#\n..#.##..@.#\n..#.#@....#\n..#.....*.#\n..#.#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n \n.....######\n....##....#\n....#@..@.#\n....#.....#\n....#*#.*.#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n....#######\n....#.....#\n....#...@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n)\n\n", [1, 1, 1, 1, 3, 3, 0, 0, 3, 0, 3, 3, 3, 0, 0, 1, 1, 1, 2, 2, 2, 2, 3, 2, 1, 1, 3], "background:0,0,0,0,0,0,background wall:1,1,1,1,1,\n1,0,0,0,0,0,0,1,0,0,0,\n0,1,0,0,0,0,0,0,1,0,background wall wall3:2,\n2,2,1,0,0,0,0,0,0,1,0,\n2,2,2,1,0,0,1,1,1,1,1,\n1,1,0,1,1,1,1,1,background blue1:3,0,0,\n0,0,0,background player:4,0,1,1,0,0,0,0,\n1,0,1,0,0,0,1,1,0,0,0,\n0,0,0,1,0,0,0,1,1,0,background wall wall1:5,\n5,0,0,0,1,1,1,1,1,1,0,\n0,0,0,0,0,1,0,0,0,0,1,\n1,1,1,1,1,1,1,0,0,0,0,\n", 1, "1645545097375.3352"] - ], - [ - "Double-Entry Bookkeeping Simulator#2", - ["title Double-Entry Bookkeeping Simulator\nauthor increpare\nhomepage www.increpare.com\n\n( verbose_logging )\nrun_rules_on_level_start\n\nbackground_color #404040\n\nagain_interval 0.1\n\n\n( Svelte Version für Simulieren \nhttps://www.puzzlescript.net/editor.html?hack=a52aae823542d184b57fc3301627a81a \n)\n\n========\nOBJECTS\n========\n\nBackground\n#404040\n\n\n\nWall\n#000000\n\n\nPlayer\ntransparent #ffffff\n01110\n01010\n11111\n00100\n01010\n\nblue_raw\n#1e88e5\n\n\nblue1 \n#003461 #1e88e5\n00100\n01100\n00100\n00100\n01110\n\nblue2 \n#003461 #1e88e5\n01100\n00010\n00100\n01000\n01110\n\nblue3 \n#003461 #1e88e5\n01100\n00010\n01100\n00010\n01100\n\nblue4 \n#003461 #1e88e5\n01000\n01000\n01010\n01110\n00010\n\nblue5 \n#003461 #1e88e5\n01110\n01000\n01100\n00010\n01100\n\nblue6 \n#003461 #1e88e5\n00100\n01000\n01100\n01010\n00100\n\nblue7 \n#003461 #1e88e5\n01110\n00010\n00010\n00100\n00100\n\nblue8 \n#003461 #1e88e5\n00100\n01010\n00100\n01010\n00100\n\nblue9 \n#003461 #1e88e5\n00110\n01010\n00110\n00010\n00010\n\nred_raw\n#d81b60\n\nred1 \n#56001f #d81b60\n00100\n01100\n00100\n00100\n01110\n\nred2 \n#56001f #d81b60\n01100\n00010\n00100\n01000\n01110\n\nred3 \n#56001f #d81b60\n01100\n00010\n01100\n00010\n01100\n\nred4 \n#56001f #d81b60\n01000\n01000\n01010\n01110\n00010\n\nred5 \n#56001f #d81b60\n01110\n01000\n01100\n00010\n01100\n\nred6 \n#56001f #d81b60\n00100\n01000\n01100\n01010\n00100\n\nred7 \n#56001f #d81b60\n01110\n00010\n00010\n00100\n00100\n\nred8 \n#56001f #d81b60\n00100\n01010\n00100\n01010\n00100\n\nred9 \n#56001f #d81b60\n00110\n01010\n00110\n00010\n00010\n\nonce\ntransparent\n\ncounted\nwhite\n.....\n.....\n.....\n...0.\n.....\n\ncounting\nyellow\n.....\n.0...\n.....\n.....\n.....\n\ndeleting\nyellow\n00000\n0...0\n0...0\n0...0\n00000\n\ndeleted\norange\n.....\n.....\n...0.\n.....\n.....\n\nwall1\n#000000 #1f1f1f\n00100\n01100\n00100\n00100\n01110\n\nwall2\n#000000 #1f1f1f\n01100\n00010\n00100\n01000\n01110\n\nwall3\n#000000 #1f1f1f\n01100\n00010\n01100\n00010\n01100\n\nwall4\n#000000 #1f1f1f\n01000\n01000\n01010\n01110\n00010\n\nwall5\n#000000 #1f1f1f\n01110\n01000\n01100\n00010\n01100\n\nwall6\n#000000 #1f1f1f\n00100\n01000\n01100\n01010\n00100\n\nwall7\n#000000 #1f1f1f\n01110\n00010\n00010\n00100\n00100\n\nwall8\n#000000 #1f1f1f\n00100\n01010\n00100\n01010\n00100\n\nwall9\n#000000 #1f1f1f\n00110\n01010\n00110\n00010\n00010\n\n=======\nLEGEND\n=======\n\nwalllabel = wall1 or wall2 or wall3 or wall4 or wall5 or wall6 or wall7 or wall8 or wall9\nred = red_raw or red1 or red2 or red3 or red4 or red5 or red6 or red7 or red8 or red9\n\nblue = blue_raw or blue1 or blue2 or blue3 or blue4 or blue5 or blue6 or blue7 or blue8 or blue9\n\nblue_other = blue\nred_other = red\n\ncoloured = red or blue\n\npushable = red or blue\n. = Background\n# = Wall\nP = Player\n* = red_raw\n@ = blue_raw\n\nobstacle = pushable or wall or player\n\n=======\nSOUNDS\n=======\n\nred move 76964107\nblue move 73247707\nsfx0 66382107 (destroy)\nsfx1 49518300 (destroy start)\n\nstartlevel 46354708\nendlevel 70029700\nstartgame 40047300\n\n================\nCOLLISIONLAYERS\n================\n\nonce, counted\ncounting\ndeleted\nBackground\nPlayer, Wall, pushable\ndeleting\nwalllabel\n\n======\nRULES\n======\n\n[ moving player ] [ deleted ] -> [ moving player ] [ ]\n\n[ blue no deleting ] -> [ blue_raw ]\n[ red no deleting ] -> [ red_raw ]\n\n[ > Player | pushable ] -> [ > Player | > pushable ]\n\n\nstartloop\n\nlate [ player no once no deleting ] [ blue no counted no deleting ] -> [ player once ] [ once blue ]\n\nlate [ once blue_raw no deleting ] -> [ counting blue1 counted ]\nlate [ once blue1 no deleting ] -> [ counting blue2 counted ]\nlate [ once blue2 no deleting ] -> [ counting blue3 counted ]\nlate [ once blue3 no deleting ] -> [ counting blue4 counted ]\nlate [ once blue4 no deleting ] -> [ counting blue5 counted ]\nlate [ once blue5 no deleting ] -> [ counting blue6 counted ]\nlate [ once blue6 no deleting ] -> [ counting blue7 counted ]\nlate [ once blue7 no deleting ] -> [ counting blue8 counted ]\nlate [ once blue8 no deleting ] -> [ counting blue9 counted ]\n\nlate [once]->[]\n\nlate [ counting blue no deleting | no counting blue_other no deleting ] -> [ counting blue | counting blue ]\nlate [counting]->[]\n\nendloop\n\n\nstartloop\nlate [ player no once ] [ red no counted no deleting ] -> [ player once ] [ once red ]\n\nlate [ once red_raw no deleting ] -> [ counting red1 counted ]\nlate [ once red1 no deleting ] -> [ counting red2 counted ]\nlate [ once red2 no deleting ] -> [ counting red3 counted ]\nlate [ once red3 no deleting ] -> [ counting red4 counted ]\nlate [ once red4 no deleting ] -> [ counting red5 counted ]\nlate [ once red5 no deleting ] -> [ counting red6 counted ]\nlate [ once red6 no deleting ] -> [ counting red7 counted ]\nlate [ once red7 no deleting ] -> [ counting red8 counted ]\nlate [ once red8 no deleting ] -> [ counting red9 counted ]\n\nlate [once]->[]\n\nlate [ counting red no deleting | no counting red_other no deleting ] -> [ counting red | counting red ]\nlate [counting]->[]\n\nendloop\n\n\nrandom late [ deleting red1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting red2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting red3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting red4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting red5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting red6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting red7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting red8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting red9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting blue1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting blue2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting blue3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting blue4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting blue5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting blue6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting blue7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting blue8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting blue9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting red1 | deleting blue1 ] -> [ wall wall1 deleted | wall wall1 deleted ] again sfx0\n+ late [ deleting red2 | deleting blue2 ] -> [ wall wall2 deleted | wall wall2 deleted ] again sfx0\n+ late [ deleting red3 | deleting blue3 ] -> [ wall wall3 deleted | wall wall3 deleted ] again sfx0\n+ late [ deleting red4 | deleting blue4 ] -> [ wall wall4 deleted | wall wall4 deleted ] again sfx0\n+ late [ deleting red5 | deleting blue5 ] -> [ wall wall5 deleted | wall wall5 deleted ] again sfx0\n+ late [ deleting red6 | deleting blue6 ] -> [ wall wall6 deleted | wall wall6 deleted ] again sfx0\n+ late [ deleting red7 | deleting blue7 ] -> [ wall wall7 deleted | wall wall7 deleted ] again sfx0\n+ late [ deleting red8 | deleting blue8 ] -> [ wall wall8 deleted | wall wall8 deleted ] again sfx0\n+ late [ deleting red9 | deleting blue9 ] -> [ wall wall9 deleted | wall wall9 deleted ] again sfx0\n\nlate [counted]->[]\n\n\nlate [ red1 | blue1 ] -> [ deleting red1 | deleting blue1 ] again sfx1 \nlate [ red2 | blue2 ] -> [ deleting red2 | deleting blue2 ] again sfx1 \nlate [ red3 | blue3 ] -> [ deleting red3 | deleting blue3 ] again sfx1 \nlate [ red4 | blue4 ] -> [ deleting red4 | deleting blue4 ] again sfx1 \nlate [ red5 | blue5 ] -> [ deleting red5 | deleting blue5 ] again sfx1 \nlate [ red6 | blue6 ] -> [ deleting red6 | deleting blue6 ] again sfx1 \nlate [ red7 | blue7 ] -> [ deleting red7 | deleting blue7 ] again sfx1 \nlate [ red8 | blue8 ] -> [ deleting red8 | deleting blue8 ] again sfx1 \nlate [ red9 | blue9 ] -> [ deleting red9 | deleting blue9 ] again sfx1 \n\nlate [ deleting red1 | no deleting red1 ] -> [ deleting red1 | deleting red1 ]\nlate [ deleting red2 | no deleting red2 ] -> [ deleting red2 | deleting red2 ]\nlate [ deleting red3 | no deleting red3 ] -> [ deleting red3 | deleting red3 ]\nlate [ deleting red4 | no deleting red4 ] -> [ deleting red4 | deleting red4 ]\nlate [ deleting red5 | no deleting red5 ] -> [ deleting red5 | deleting red5 ]\nlate [ deleting red6 | no deleting red6 ] -> [ deleting red6 | deleting red6 ]\nlate [ deleting red7 | no deleting red7 ] -> [ deleting red7 | deleting red7 ]\nlate [ deleting red8 | no deleting red8 ] -> [ deleting red8 | deleting red8 ]\nlate [ deleting red9 | no deleting red9 ] -> [ deleting red9 | deleting red9 ]\n\n\nlate [ deleting blue1 | no deleting blue1 ] -> [ deleting blue1 | deleting blue1 ]\nlate [ deleting blue2 | no deleting blue2 ] -> [ deleting blue2 | deleting blue2 ]\nlate [ deleting blue3 | no deleting blue3 ] -> [ deleting blue3 | deleting blue3 ]\nlate [ deleting blue4 | no deleting blue4 ] -> [ deleting blue4 | deleting blue4 ]\nlate [ deleting blue5 | no deleting blue5 ] -> [ deleting blue5 | deleting blue5 ]\nlate [ deleting blue6 | no deleting blue6 ] -> [ deleting blue6 | deleting blue6 ]\nlate [ deleting blue7 | no deleting blue7 ] -> [ deleting blue7 | deleting blue7 ]\nlate [ deleting blue8 | no deleting blue8 ] -> [ deleting blue8 | deleting blue8 ]\nlate [ deleting blue9 | no deleting blue9 ] -> [ deleting blue9 | deleting blue9 ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nno coloured\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 9\n\n(improved version?)\n.....######\n.....#....#\n....##..@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n\nmessage Level 2 of 9\n\n#######...\n#@#@#@#...\n#@#@#@#...\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n.....#p..#\n.....#####\n\n\n\n\n\nmessage Level 3 of 9\n(ok? not too hard)\n#######.\n#.....#.\n#..*.@#.\n####.###\n.#.....#\n.#.*.@.#\n.#..p..#\n####.###\n#..*.@#.\n#.....#.\n#######.\n\n\n\nmessage Level 4 of 9\n#######..\n#.....#..\n#...@.#..\n#...@.###\n#...@.#@#\n#.....#.#\n#.p..***#\n#.....#.#\n#...@.#.#\n#...@...#\n#...@.###\n#.....#..\n#######..\n\n\nmessage Level 5 of 9\n\n(Actually tricky? or a bit overwhelming maybe?)\n(requires silly batching. i like this)\n#########\n#...#...#\n#..***..#\n#.......#\n####.####\n#.......#\n#..@@@p.#\n#...#...#\n#########\n\nmessage Level 6 of 9\n(possibly ok? IDK? WE?)\n#########\n#.......#\n#.*..@.*#\n#..**..@#\n#..**.@@#\n#.*..*..#\n#..p....#\n#########\n\nmessage Level 7 of 9\n(p ok? solution involves knowing something, but maybe you just stumble through it without knowing the thing)\n\n#####..\n#@@@#..\n#@@@##.\n#@#.@##\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\nmessage Level 8 of 9\n(p. ok level)\n###########\n#.........#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.p.......#\n#.........#\n###########\n\nmessage Level 9 of 9\n(ok final level maybe?)\n(fixed version?)\n...####....\n####..#....\n#@..*.#....\n###...#....\n..#.*#####.\n..#.*#.p.#.\n..#****@@#.\n..#.@@...#.\n..#.@@...#.\n..#.#@...##\n..#.......#\n..####....#\n.....######\n\nmessage Congratulations. You have mastered all the numbers, from 1 up to 9!\n\n(DISCARD PILE::::)\n\n(BAD IDEAS FOR FIRST LEVEL END )\n(thje better version. maybe ok early level?)\n( ####### )\n( #..#..# )\n( #..*.p# )\n( #..*..# )\n( #.....# )\n( ###.### )\n( #.....# )\n( #..@..# )\n( #..@..# )\n( #..#..# )\n( ####### )\n\n\n( ########## )\n( #@...##### )\n( ##...##### )\n( ##...##### )\n( ##@..##### )\n( ###...#### )\n( ###...#### )\n( ###@..#### )\n( ####.....# )\n( ####.***.# )\n( ####..p..# )\n( ########## )\n\n\n( audio test level)\n( ############# )\n( #..@........# )\n( #..@....@@..# )\n( #..@....@@@.# )\n( #..@.@..@@@.# )\n( #.*....*....# )\n( #..*.*..***.# )\n( #..*....***.# )\n( #..*....*...# )\n( #....p......# )\n( #...........# )\n( ############# )\n\n(level 2/3?)\n( ########## )\n( #........# )\n( #.**.@@@.# )\n( #........# )\n( #...p....# )\n( #........# )\n( ########## )\n\n(ok early level? meh other level does this but better IMO)\n( ###### )\n( #....# )\n( #.@.*# )\n( #.@.*# )\n( ###.## )\n( #....# )\n( #..p.# )\n( #....# )\n( ###.## )\n( #.@.*# )\n( #.@.*# )\n( #....# )\n( ###### )\n\n(ok level I think?)\n( ############# )\n( ####@.*...### )\n( ######*##.### )\n( #.....*.....# )\n( #.@@@...@@@.# )\n( #...........# )\n( #.....p.....# )\n( #...........# )\n( ############# )\n\n(\n\n(needs a few more steps of indirection on the right)\n#########\n#####*###\n#...#*###\n#.**@*###\n#.......#\n#@@..@@.#\n####p...#\n#########\n\n##############\n#....##......#\n#....##*.....#\n#.....#*.....#\n#...**@*.....#\n#............#\n###@@....@@..#\n######.p.....#\n######.......#\n##############\n\n###########\n#**@@***@@#\n#**..***..#\n#.........#\n#.........#\n#...@.@.@.#\n#.p.......#\n#...@.@.@.#\n#.........#\n###########\n\n##############\n#...#........#\n*.@.#........#\n#.#####**....#\n#.##**@**....#\n#............#\n####...@.@.@.#\n...#.p@.@.@..#\n...#.........#\n...###########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##....p..#\n##########\n\n\n(damnit a shortcut/trivialisation)\n##########\n####..####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n#@..######\n##..######\n##.*######\n##..#.p.##\n##****@@##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n(pedagogical version of other level)\n#############\n#@@*#@@#@####\n#@@*#@*#@####\n###*##*#*####\n###.......*.#\n###.......*.#\n#########.*.#\n#########p..#\n#############\n\n##########\n#........#\n#...@....#\n#........#\n#...**.@.#\n#.@.**...#\n#........#\n#.p..@...#\n#........#\n##########\n\n\n.#########.\n.#@.######.\n.#..######.\n.#****...#.\n.#*.**.p.#.\n###.**...#.\n#...@@*@@#.\n#...@@...#.\n#...@@...#.\n#@@*@@*@@#.\n#...*....#.\n#...@....#.\n#...@....#.\n##########.\n\n##########\n##@.##...#\n##..##.p.#\n###***...#\n##..***@@#\n##..@@...#\n##..@@...#\n##...@...#\n##.......#\n##.......#\n##########\n\n#########\n#@.##...#\n#..##.p.#\n##****@@#\n#..@@...#\n#...@...#\n#.......#\n#.......#\n#########\n\n##########\n####*#####\n#@.#*.p.##\n##****@@##\n##.@@...*#\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n\n\n##########\n#..#######\n#..#######\n#..##.p.##\n##****@@##\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n############\n#....#######\n#....#*#####\n#....#*.p.##\n#*##****@@##\n#.##.@@...*#\n#@##.@@...##\n####.#@...##\n####.......#\n####.......#\n############\n\n.#########...\n.#..######...\n.#..######...\n.##......#...\n.#.....p.#...\n##.......#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n##########...\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.......#\n#......*#\n#.....@*#\n######.##\n#....#.*#\n#.p...@.#\n#.......#\n#########\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.p.....#\n#......*#\n#.....@*#\n#.......#\n#....@.*#\n#.......#\n#########\n\n(is this funnier than above? I don't think so but I@m not sure)\n###########\n#.........#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.p.......#\n#.........#\n###########\n\n(technically harder than above but also more work)\n################\n#..............#\n#..............#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#.p............#\n#..............#\n################\n\n\n#################\n#...............#\n#...............#\n#..@@@.@@@.@@@..#\n#...*...*...*...#\n#..@@@.@@@.@@@..#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#...............#\n#################\n\n#################\n#...............#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n...............\n...............\n..@@@.@@@.@@@..\n...*...*...*...\n..@@@.@@@.@@@..\n...............\n...............\n.......p.......\n...............\n...............\n\n..........@.@...\n..........@.@...\n..........@*@...\n.......@@@*.*@@@\n..........@.@...\n..........@.@...\n..........@.@...\n................\n................\n\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n########\n#......#\n#......#\n#..@.*.#\n#......#\n###..*##\n####.###\n#p.@...#\n#......#\n####.###\n#......#\n#......#\n########\n\n\n...################\n..................#\n....@.............#\n.....@............#\n.@.**.@...........#\n..@.**.@..........#\n...@.**...........#\n....@.**..........#\n......p*.@........#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#################\n\n.........\n.........\n.#.#.#.#.\n.@.*.@.*.\n.#.#.#.#.\n.@.*.@.*.\n*#@#*#@#*\n.........\n..p......\n\n\n..#.#.#.#..\n...........\n..#.#.#.#..\n...........\n..#.#.#.#..\n...p.......\n\n.#.#.#.#.\n.@.*.*.@.\n.#.#.#.#.\n.@.*.*.@.\n*#@#.#@#*\n..p......\n\n(meh)\n#########\n#...@####\n#..*.@###\n#@..*.@##\n##@..*.@#\n###@..*.#\n####@p..#\n#########\n\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n(meeeeh. I think not great? too long but also if short too randomo)\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n###########\n###########\n##...@#####\n##..*.@####\n##@..*.@###\n###@..*.###\n####@p....#\n#####.***.#\n#####.....#\n###########\n\n#########\n#...@####\n#..*.@###\n#@..*.###\n##@..*.##\n####..*.#\n#####...#\n######.p#\n#########\n\n...#.......\n....#......\n....@#.....\n.....@#....\n#@....@#...\n.#@..*.@#..\n..#@..*....\n...#@..*...\n....#.*.*..\n.......*...\n......p.*..\n.........*.\n...........\n\n( (kinda different from the above) )\n( (trivial) )\n( ####### )\n( #....## )\n( #....## )\n( #.*.@## )\n( ###.### )\n( #.....# )\n( #.*.@.# )\n( #..p..# )\n( ###.### )\n( #.*.@## )\n( #....## )\n( #....## )\n( ####### )\n\n\n#######\n#....##\n#....##\n#....##\n#....##\n#.*.@##\n###.###\n#.....#\n#.*.@.#\n#p....#\n###.###\n#.*.@##\n#....##\n#....##\n#....##\n#....##\n#######\n\n#######\n#....##\n#....##\n#....##\n#.@.*##\n#.@.*##\n###.###\n#.....#\n#.@.*.#\n#p....#\n###.###\n#.@.*##\n#.@.*##\n#....##\n#....##\n#....##\n#######\n\n###########\n###@.*..###\n#####*#.###\n.....*.....\n.@@@...@@@.\n.....p.....\n...........\n...........\n\n#############\n####.....####\n######.#.####\n#...........#\n#...........#\n#.....p.....#\n#...........#\n#############\n\n#######\n#.....#\n#.***.#\n#.....#\n###.###\n#.....#\n#.@@@p#\n#.....#\n#######\n\n....####\n....#..#\n....#..#\n#####..#\n#...#..#\n#..@..*#\n#...#p.#\n#####..#\n#..@..*#\n#......#\n######.#\n....#@.#\n....#..#\n....#.*#\n....#..#\n....####\n\n.#######.\n.#.....#.\n.#..*..#.\n.#.*.*.#.\n.#.*.*.#.\n.#.....#.\n.#.....#.\n###.#.###\n#@@.#.@@#\n#@@.#.@@#\n#@..#..@#\n#@.*#*.@#\n#@p.#..@#\n#########\n\n@....*\n.@..*.\n......\n.@..*.\n..p...\n\n..........\n.@@....**.\n.@@....**.\n...@..*...\n..........\n...@..*...\n.....p....\n..........\n\n\n(ok partition problem)\n(nah broken)\n.........\n.........\n.@.....@.\n.@.#*#.@.\n.@..*..@.\n.........\n....p....\n.........\n\n...............\n....@..#..@....\n.#..@.#*#.@..#.\n#*..@..*..@..*#\n.#..@.....@..#.\n.......p.......\n...............\n\n....####.....\n...#@.*......\n....##*#.....\n......*......\n.............\n..@@@.p.@@@..\n.............\n.............\n\n#######\n#.....#\n#.#.#.#\n#.@.*.#\n###.###\n.......\np.@.*..\n.......\n###.###\n#.@.*.#\n#.#.#.#\n#.....#\n#######\n\n######\n#...##\n#...##\n#...##\n#.@.*#\n###.##\n......\np.@.*.\n......\n###.##\n#.@.*#\n#...##\n#...##\n#...##\n######\n\n(trivial)\n(\n.........\n.........\n..**.@...\n.........\n....p....\n.........\n)\n\n\n\n............\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..*.*..*.*..\n.....p......\n............\n\n...........\n.....@.....\n.....@.....\n.....@.....\n.....@.....\n.....*.....\n.@@@@*@@@@.\n.....*.....\n.@@@@.@@@@.\n.....*.....\n...........\n.....p.....\n...........\n\n...........\n...........\n..###.###..\n..#*....#..\n..#.*...#..\n..###.###..\n..p.@.@....\n...........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n..........\n..........\n..........\n\n..........\n..........\n..####....\n..#*.@..p.\n..#.*@....\n..####....\n..........\n..........\n\n..........\n..........\n..####....\n..#*..@.p.\n..#.*.@...\n..####....\n..........\n..........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n####..####\n..........\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n..........\n\n.########.\n.#......#.\n.#.*..@.#.\n.#..*.@.#.\n####..####\n...p......\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n\n@@@@@@@@\n###@####\n........\n........\n.*.*.*..\n........\n.*.*.*..\n........\n.*.*.p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n...*....\n..***...\n...*....\n..***...\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n..***...\n..*.*...\n..***...\n........\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n..*.*...\n........\n..*.*...\n...@....\n..*.*...\n........\n..*.*p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n........\n........\n...*....\n..*.*...\n...*....\n..*.*...\n.*.@.*..\n...p....\n###*####\n########\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n#######\n##...##\n#.....#\n###.###\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#..p..#\n###.###\n#######\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n##################\n#####@#@#@########\n#####@#@#@########\n#####*#*#*########\n#@.........*....p#\n#..............*.#\n##############.*.#\n##############.*.#\n##############...#\n##################\n\n\n##############\n#@#@#@########\n#@#@#@########\n#*#*#*########\n#......*.p...#\n#..........*.#\n##########.*.#\n##########...#\n##############\n\n##########\n#@#@#@####\n#@#@#@####\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n######p..#\n##########\n\n#############\n###@#@#@#####\n###@#@#@#####\n###*#*#*#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#############\n###@#@#@#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#########\n###@#####\n#@....*p#\n#.....*.#\n#########\n\n...........\n...........\n....@@@....\n...........\n..@.***.@..\n..@.***.@..\n..@.***.@..\n...........\n.....p.....\n...........\n...........\n\n###########\n#.........#\n#.#..@..#.#\n#...@.@...#\n#..@***@..#\n#...***...#\n#..@***@..#\n#...@.@...#\n#.#..p..#.#\n#.........#\n###########\n\n#########\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(meeeh but in a pinch! but really, don't add it)\n#########\n##.....##\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(aaa kinda ok? has some stuff going on)\n#########\n#.......#\n#.*.@.*.#\n#..*@*..#\n#.@@*@@.#\n#..*@*..#\n#.*.@.*.#\n#...p...#\n#########\n\n#########\n#.......#\n#.@..**.#\n#.....*.#\n#..@....#\n#....@..#\n#.**....#\n#..*p.@.#\n#.....@.#\n#.@.*.@.#\n#.......#\n#########\n\n(doesn't have enough personality)\n#########\n#......p#\n#..@.@..#\n#.*.*.@.#\n#....*..#\n#.**..@.#\n#.**.*..#\n#.......#\n#########\n\n\n#########\n...#*#...\n.........\n##..*..##\n###...###\n####p####\n###...###\n##..@..##\n.........\n...#@#...\n#########\n\n\n\n#..#..#\n#..*.p#\n#.....#\n#..*..#\n###.###\n#..@..#\n#.....#\n#..@..#\n#..#..#\n\n...........\n.....*.....\n...........\n.....*.....\n....*.*....\n...*@@@*...\n....*.*....\n.....*.....\n...........\n.....p.....\n...........\n\n.......\n..*.*..\n.*@@@*.\n..*.*..\n...*...\n.......\n...p...\n.......\n)\n(\n....\n....\n....\n\n....\n....\n....\n....\n\n\n....\n....\n....\n....\n....\n\n\n.....\n.....\n.....\n.....\n.....\n\n......\n......\n......\n......\n......\n......\n\n##########\n#........#\n#.#....#.#\n#..*..*..#\n#...**..@#\n#...**.@@#\n#..*..@..#\n#.#.p*.#.#\n#.......##\n##########\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n##########\n\n###########\n#....#....#\n#.**.#.@@.#\n#.*..#..@.#\n#.........#\n####.p.####\n#.........#\n#.@..#..*.#\n#.@@.#.**.#\n#....#....#\n###########\n\n(solvable which is nice but also not good which is not nice)\n##########\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#........#\n#...p....#\n##########\n\n##########################\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#........................#\n#...........p............#\n##########################\n\n##########################\n#........................#\n#........................#\n#.........*..p...........#\n#........@@..............#\n#........***.............#\n#.......@@@@.............#\n#.......*****............#\n#......@@@@@@............#\n#......*******...........#\n#.....@@@@@@@@...........#\n#........................#\n#........................#\n#........................#\n#........................#\n#........................#\n##########################\n\n###########\n#.........#\n#.........#\n#..*@@@@..#\n#..*...*..#\n#..*.*.*..#\n#..*.@@*..#\n#..*......#\n#..@@@....#\n#.........#\n#....p....#\n#.........#\n###########\n\n####################\n#..................#\n#..................#\n#..................#\n#..................#\n#..***........@@@..#\n#..*.*........@.@..#\n#..***........@@@..#\n#..................#\n#..................#\n#.....p............#\n#..................#\n####################\n\n###########\n#.........#\n#.*.@@@@@.#\n#.*.@...@.#\n#.*...*.@.#\n#.*****.@.#\n#.........#\n#.........#\n#....p....#\n###*###@###\n###########\n\n...........\n##@@@@@@@##\n#####@#####\n#.........#\n#....*....#\n#...*.*...#\n#..*.@.*..#\n#...*.*...#\n#....*....#\n#.........#\n#....p....#\n#####*#####\n###########\n\n#######\n#@@@@@#\n##@@@##\n#.p...#\n#..@..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#.....#\n###*###\n#######\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n..###..\n.##*##.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n##@@@##\n##@@@#.\n.#####.\n\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n###.###\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n#######\n#*.*.*#\n#.*.*.#\n#*.*.*#\n#.@.@.#\n#@.@.@#\n#.@.@.#\n#..@..#\n#.....#\n#..p..#\n#.....#\n#######\n\n\n\n(ACTUAL CANDIDATE LEVELS)\n\n\n\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#.........#\n#.........#\n#....p....#\n#.........#\n###########\n\n\n(it is a level, but not amazing? but maybe ok? but I don't know? also repeats a mechanism from another level? but maybe better?)\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#....p....#\n#.........#\n#####.#####\n####*.***##\n#####****##\n###########\n\n##########\n#........#\n#.....p..#\n#........#\n#.....####\n#..#.....#\n#..#@....#\n#..#.....#\n##########\n\n\n\nmessage level 1 of 10\n\n####..\n#..#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 2 of 10\n\n######\n#....#\n#.#P.#\n#.*@.#\n#..@.#\n#....#\n######\n\nmessage level 3 of 10\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#....#P.#\n#########\n\nmessage level 4 of 10\n\n########\n#......#\n#..@@*P#\n#......#\n#####..#\n....####\n\nmessage level 5 of 10\n\n.#######\n.#.....#\n.#..*..#\n##.*P*.#\n#...*..#\n#......#\n########\n\nmessage level 6 of 10\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#......#\n#...########\n#####.......\n\n..######....\n###..**#####\n#.......@..#\n#.#..**#@@.#\n#......#.p.#\n############\n\nmessage level 7 of 10\n\n#######\n#.....#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..P..#\n#######\n\nmessage level 8 of 10\n\n..######\n..#...P#\n..#.**.#\n####.###\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\nmessage level 9 of 10\n\n#####.\n#...##\n#P**.#\n##...#\n.##..#\n..##.#\n...###\n\nmessage level 10 of 10\n\n......#####\n......#...#\n......#.#.#\n#######.#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\nmessage congratulations!\n\n\n#########\n#.......#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#...p...#\n#########\n\n......#####\n......#...#\n#######.#.#\n#.*.*.*.*.#\n#.#.#.#.###\n#....p..#..\n####@@@@#..\n...######..\n\n........#####\n........#...#\n#########.#.#\n#...*.*.*.*.#\n#.#.#.#.#.###\n#......p..#..\n######@@@@#..\n.....######..\n\n..........#####\n..........#...#\n..#########.#.#\n.##.*.@.@.@...#\n##*.#.#.#.#.###\n#*......p.....#\n###########.#.#\n..........#...#\n..........#####\n\n.......#####\n.......#...#\n########.#.#\n#*.....*.*.#\n##.#.#.#.###\n#@.@.@p....#\n########.#.#\n.......#...#\n.......#####\n)\n\n(\n..#########\n..#.......#\n..#.##..@.#\n..#.#@....#\n..#.....*.#\n..#.#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n \n.....######\n....##....#\n....#@..@.#\n....#.....#\n....#*#.*.#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n....#######\n....#.....#\n....#...@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n)\n\n", [2, 0, 3, 2, 2, 1], "background:0,background wall:1,1,1,0,0,0,0,0,0,0,\n0,0,0,1,background blue1:2,1,0,0,0,0,0,\n0,0,0,0,0,1,0,1,1,1,1,\n1,1,1,1,1,0,1,1,0,0,0,\n0,background deleted wall wall6:3,0,0,0,0,1,0,1,0,background red1:4,\n0,3,3,3,3,3,1,0,1,0,1,\n0,0,0,1,1,3,3,3,3,0,1,\n1,1,1,1,1,1,0,3,3,0,0,\n0,0,1,0,0,0,0,1,0,0,background player:5,\n0,0,0,0,1,0,0,0,0,1,0,\n0,0,2,0,0,0,1,0,0,0,0,\n1,1,1,1,1,1,0,0,1,0,0,\n0,0,0,0,0,0,0,1,1,1,1,\n", 17, "1645545159763.6345"] - ], - [ - "short adventure in sticky wall land", - ["title short adventure in sticky wall land\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #1d4765\ntext_color #99e550\nrun_rules_on_level_start\n\n\n========\nOBJECTS\n========\n\nBackground\n#396c90 #457da4\n00000\n00000\n00100\n00000\n00000\n\n\nTarget\n#fbf236 transparent\n00100\n01110\n11111\n01110\n00100\n\n\nWall\n#99e550 #99e550 #99e550\n01110\n12221\n12221\n12221\n01110\n\nwall_grenze_N\n#6abe30\n00000\n.....\n.....\n.....\n.....\n\nwall_grenze_S\n#6abe30\n.....\n.....\n.....\n.....\n00000\n\nwall_grenze_O\n#6abe30\n....0\n....0\n....0\n....0\n....0\n\nwall_grenze_W\n#6abe30\n0....\n0....\n0....\n0....\n0....\n\nwall_grenze_NO\n#396c90\n....0\n.....\n.....\n.....\n.....\n\nwall_grenze_SO\n#396c90\n.....\n.....\n.....\n.....\n....0\n\nwall_grenze_SW\n#396c90\n.....\n.....\n.....\n.....\n0....\n\nwall_grenze_NW\n#396c90\n0....\n.....\n.....\n.....\n.....\n\nPlayer\ntransparent #b13030 #a96c30 #4e0b0b\n01110\n11110\n02220\n33333\n03030\n\n\nCrate\n#8f563b #743a1f #b4643d #b76640\n00000\n01220\n03120\n03310\n00000\n\n\n\n=======\nLEGEND\n=======\n\nwall_dekoration_ortho = wall_grenze_N or wall_grenze_S or wall_grenze_O or wall_grenze_W\n\nwall_dekoration_eck = wall_grenze_NW or wall_grenze_SW or wall_grenze_SO or wall_grenze_NO\n\nwall_dekoration = wall_dekoration_eck or wall_dekoration_ortho\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\nobstacle = crate or wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 76571107\nwall move 95423307\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nwall_grenze_N \nwall_grenze_S\nwall_grenze_O\nwall_grenze_W\nwall_grenze_NO\nwall_grenze_SO \nwall_grenze_SW\nwall_grenze_NW\nTarget\n\n======\nRULES\n======\n(\n[ > player | crate | obstacle ] -> cancel\n[ > player | wall ] -> cancel\n\n\n[ > Player | Crate | ] -> [ > Player | | Crate ]\n[ wall | > player | ] -> [ wall | wall | player ]\n\n)\n\n(it's very possible someone's come up with this set of rules already - but if they have I haven't seen it yet)\n\n[ > player | crate ] -> [ > player | > crate ]\n[ wall | > player ] -> [ > wall | > player ]\n\nlate [ wall_dekoration ] -> []\nlate up [ wall | no wall ] -> [ wall wall_grenze_N | ]\nlate down [ wall | no wall ] -> [ wall wall_grenze_S | ]\nlate right [ wall | no wall ] -> [ wall wall_grenze_O | ]\nlate left [ wall | no wall ] -> [ wall wall_grenze_W | ]\n\nlate [ wall_grenze_N wall_grenze_O ] -> [ wall_grenze_N wall_grenze_O wall_grenze_NO ]\nlate [ wall_grenze_S wall_grenze_O ] -> [ wall_grenze_S wall_grenze_O wall_grenze_SO ]\nlate [ wall_grenze_N wall_grenze_W ] -> [ wall_grenze_N wall_grenze_W wall_grenze_NW ]\nlate [ wall_grenze_S wall_grenze_W ] -> [ wall_grenze_S wall_grenze_W wall_grenze_SW ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 3\n\n(kinda like)\n.........\n.#######.\n.#..*..#.\n.#..p..#.\n.#..o..#.\n.#######.\n.........\n\nmessage Level 2 of 3\n\n\n(ok)\n........\n.####...\n.#.o#...\n.#..###.\n.#@p..#.\n.#..*.#.\n.#..###.\n.####...\n........\n\nmessage Level 3 of 3\n\n(mildly entertaining. possibly slightly harder?)\n.......\n.#####.\n.#.*.#.\n.#...#.\n.#.p.#.\n.#...#.\n.#.o.#.\n.#####.\n.......\n\nmessage Congratulations. Thank you for playing!\n\n(\n#..##\np...o\n.#..#\n..*.#\no*##.\n\n##.##\n.o.*#\n....#\n#*.o.\n#.p..\n\n...##\n.o.*#\n.....\n#*.o.\n##..p\n\n(haven't solved, don't like)\n#..##\n.o.*#\n.p...\n#*.o.\n##..#\n\n(better. still don't like though)\n#..#.\n.o.*#\n..p..\n#*.o.\n.#..#\n\n#....\n.o.*#\n#.p.#\n#*.o.\n....#\n\n(easy-ish, but ok? NO BAD)\n#.#..\n.o.*#\n..p..\n#*.o.\n..#.#\n\n\n....\n....\n....\n....\n\n\n.....\n.....\n.....\n.....\n.....\n\n.....\n.....\n.....\n.....\n.....\n\n.......\n.......\n.......\n.......\n.......\n.......\n.......\n\n.......\n.#####.\n.#.*.#.\n.#.p.#.\n.#.o.#.\n.#####.\n.......\n\n.........\n.#######.\n.#..*..#.\n.#..p..#.\n.#..o..#.\n.#######.\n.........\n\n.p..\no...\n.*@.\n#..#\n\n(possible to get to a dead end wtihout knowing really - so bad?)\n.....\n.o#..\n.*#*.\n.o#p.\n.....\n\n(ok, not so dead endy, but is it good? hardish)\n.....\n.opo.\n.*.*.\n.###.\n.....\n\n(easy but ok)\n.....\n.o#..\n.@#..\n.#*p.\n.....\n\n........\n.####...\n.#.o#...\n.#..###.\n.#@p..#.\n.#..*.#.\n.#..###.\n.####...\n........\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*O.#\n##.*P*.#\n#..O*O.#\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", [2, 3, 0, 3, 0, 0, 2, 1, 0, 2, 1, 2, 2, 3, 2, 2, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 1, 2, 1, 3, 0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 1, 0, 3, 0, 0, 0, 1, 1, 2, 2, 2, 2, 1, 1, 0, 0, "undo", "undo", "undo", 0, 1, 0, 3, 2, "undo", 2, 3, 1, 1, 2], "background:0,0,0,0,0,0,0,0,background wall wall_grenze_n wall_grenze_nw wall_grenze_s wall_grenze_sw wall_grenze_w:1,\n0,background wall wall_grenze_n wall_grenze_nw wall_grenze_w:2,background wall wall_grenze_o wall_grenze_w:3,background wall wall_grenze_s wall_grenze_sw wall_grenze_w:4,0,0,background wall wall_grenze_n wall_grenze_no wall_grenze_o wall_grenze_s wall_grenze_so:5,0,background wall wall_grenze_n wall_grenze_s:6,\nbackground player:7,5,0,0,0,background wall wall_grenze_n wall_grenze_no wall_grenze_nw wall_grenze_o wall_grenze_w:8,background wall wall_grenze_o:9,4,0,\n0,0,0,background crate:10,0,background target wall wall_grenze_n wall_grenze_no wall_grenze_o:11,background wall wall_grenze_o wall_grenze_s wall_grenze_so wall_grenze_sw wall_grenze_w:12,0,0,\n2,12,0,0,0,0,0,6,0,\n0,0,1,0,0,background wall wall_grenze_n wall_grenze_no wall_grenze_o:13,3,12,0,\n5,0,0,0,0,0,0,0,0,\n", 1, "1645545192906.1704"] - ], - [ - "[testing for recording through level-changes A] Level-Change test", - ["title Simple Block Pushing Game\nauthor David Skinner\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\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\n\nun\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n", [2, 1, 0, 3, 3, 3, 2, 1, 0, 1, 2, 2, "undo", 1, 2, 2, 3, 0, 1, 0, 3, 0, 0, 1, 2, 3, 2, 2, 3, 3, 3, 0, 1, 2, 1, 0, 0, 3, 2, 2, 1, 2, 3, 0, 0, 0, 1, 2], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,0,background crate:2,\nbackground crate target:3,1,0,0,1,1,\nbackground player target:4,3,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n", 0, "1645546672241.5308"] - ], - [ - "[testing for recording through level-changes B] Simple Block asdfsadf Game", - ["title Simple Block Pushing Game\nauthor David Skinner\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\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[ > 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\n", [2, 1, 0, 3, 3, 2, 1, 3, 3, 2, 1, 0, 1, 1, 2, 2, 3, 0, 1, 0, 3, 0, 0, 1, 2, 3, 2, 2, 3, 3, 0, 1, 2, 1, 0, 0], "background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,0,background crate:2,\nbackground target:3,1,0,0,1,background player:4,\nbackground crate target:5,5,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n", 0, "1645546774769.8335"] - ], - - [ - "[testing for recording through level-changes C] Don't asdlet your goals slip away", - ["title Don't let your goals slip away\nauthor increpare [riff on david skinner's levels]\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\nbackground_color green\n\n\ncolor_palette 2\n========\nOBJECTS\n========\n\nBackground\nGREEN green\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nblack\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nDARKBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nlightgray lightgray lightgray lightgray\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange\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\nobstacle = crate or wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 78774307\ntarget move 81495507\nendlevel 52446100\nstartgame 73236703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n( [ > player | wall ] -> cancel )\n[ > player | crate | obstacle ] -> cancel\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > player | target ] -> [ > player | > target ] \n[ > target | target ] -> [ > target | > target ]\n[ > target | wall ] -> [ target | wall ]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 8\n\n(funny therefore good)\n####..\n#o*#..\n#..###\n#....#\n#.o*.#\n#.p###\n####..\n\n(meh)\n( ####.. )\n( #.o#.. )\n( #..### )\n( #o...# )\n( #*.*.# )\n( #.p### )\n( ####.. )\n\n\n\n(p. good!)\n..####...\n###..####\n#....*o.#\n#.#..#.o#\n#..*.#p.#\n#########\n\n( (Easy but funny) )\n( ###### )\n( #.*..# )\n( #.#.*# )\n( #....# )\n( #p*o.# )\n( #.oo.# )\n( ###### )\n\n\nmessage level 3 of 8\n\n(not bad)\n######\n##o..#\n#.#oo#\n#.*..#\n#.*..#\n#p*..#\n######\n\nmessage level 4 of 8\n\n########\n#...*..#\n#.o#.@p#\n#..*...#\n#####.o#\n....####\n\nmessage level 5 of 8\n\n\n\n(decent!)\n#####.\n#.*.##\n#.o.p#\n##.o.#\n.##.*#\n..##.#\n...###\n\nmessage level 6 of 8\n\n(fine right?)\n......###.\n#######o##\n#...*o...#\n#.#.#.#.##\n#.p.*...#.\n#########.\n\nmessage level 7 of 8\n(no idea. damnit spoiled but also ok.)\n####..\n#..#..\n#.*###\n#..*p#\n#..o.#\n#o.###\n####..\n\n\n\nmessage level 8 of 8\n(Tricky but also decent? involves fun manipulations)\n#######\n#..#..#\n#.o*o.#\n#.*p*##\n#.o*o.#\n#..#..#\n#######\n\n\nmessage Congratulations! You didn't let your goals run away from you.\n\n(transform\n\n[player]->[]\n[target]->[]\n[crate]->[]\n\nchoose 2 [] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player ] -> [ target ] \n\n)\n\n", [0, 0, 0, 2, 3, 3, 2, 1, 1, 1, 2, 1, 0, 0, 0], "background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,0,1,\n1,0,0,0,background crate:2,1,1,0,0,\n0,0,1,1,1,2,1,1,1,\n0,1,background target:3,0,background player:4,1,0,1,0,\n3,0,1,0,1,1,1,1,1,\n", 1, "1645546878695.2927"] - ], - - [ - "Wallnut chasing mouse chasing cat chasing dog chasing man", - ["title Wallnut chasing mouse chasing cat chasing dog chasing man\nauthor Stingby12\nhomepage https://stingby12.itch.io/\n\nnoaction\nrun_rules_on_level_start\n\nkey_repeat_interval 0.2\nagain_interval 0.2\n\ncolor_palette 5\n\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\nDogIdle\nLightbrown Black Red\n.....\n0.0..\n101..\n02000\n.0000\n\nDogActiveL\nLightbrown Black Red\n0.0..\n101.0\n02000\n.0000\n.0..0\n\nDogActiveR\nLightbrown Black Red\n..0.0\n0.101\n00020\n0000.\n0..0.\n\nCatIdle\nGray Black White\n.....\n0.0..\n101..\n00000\n.0220\n\nCatActiveL\nGray Black White\n0.0..\n101.0\n00000\n.0220\n.0..0\n\nCatActiveR\nGray Black White\n..0.0\n0.101\n00000\n0220.\n0..0.\n\nMouseIdle\nGray DarkGray Pink\n.....\n.....\n.....\n100..\n.000.\n\nMouseActiveL\nGray DarkGray Pink\n.....\n.....\n.....\n100..\n.0022\n\nMouseActiveR\nGray DarkGray Pink\n.....\n.....\n.....\n..001\n2200.\n\nWallnutIdle\nYellow Orange Blue\n.....\n.....\n..0..\n.011.\n..1..\n\nWallnutActive\nYellow Orange Blue\n..0..\n.011.\n.212.\n.2.2.\n22.22\n\nCrate\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\n(--Anim--)\n\nPlayerAnim\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nDogAnimL\nLightbrown Black Red\n0.0..\n101.0\n02000\n.0000\n.0..0\n\nDogAnimR\nLightbrown Black Red\n..0.0\n0.101\n00020\n0000.\n0..0.\n\nCatAnimL\nGray Black White\n0.0..\n101.0\n00000\n.0220\n.0..0\n\nCatAnimR\nGray Black White\n..0.0\n0.101\n00000\n0220.\n0..0.\n\nMouseAnimL\nGray DarkGray Pink\n.....\n.....\n.....\n100..\n.0022\n\nMouseAnimR\nGray DarkGray Pink\n.....\n.....\n.....\n..001\n2200.\n\nWallnutAnim\nYellow Orange Blue\n..0..\n.011.\n.212.\n.2.2.\n22.22\n\nSpawner\ntransparent\n\nSpawnButton\ntransparent\n\nHordeButton\ntransparent\n\nGoL\ntransparent\n\nGoR\ntransparent\n\nDelete\ntransparent\n\nAscendButton\ntransparent\n\nPlayerAscending1\nBlack Orange White Blue Lightbrown\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nPlayerAscending2\nBlack Orange White Blue Lightbrown\n.000.\n21112\n.222.\n.333.\n.3.3.\n\nPlayerAscending3\nBlack Orange White Blue Lightbrown\n.000.\n24142\n.222.\n.333.\n.3.3.\n\nNextStep\ntransparent\n\nLight\nyellow\n00000\n00000\n00000\n00000\n00000\n\nLightL\nyellow\n...00\n...00\n...00\n...00\n...00\n\nLightR\nyellow\n00...\n00...\n00...\n00...\n00...\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nD = DogIdle\nC = CatIdle\nM = MouseIdle\nW = WallnutIdle\n* = Crate\n@ = Crate and Target\nO = Target\n\nDogActive = DogActiveL or DogActiveR\nCatActive = CatActiveL or CatActiveR\nMouseActive = MouseActiveL or MouseActiveR\n\nDog = DogIdle or DogActive\nCat = CatIdle or CatActive\nMouse = MouseIdle or MouseActive\nWallnut = WallnutIdle or WallnutActive\n\n(--Anim--)\n\n+ = PlayerAnim\n% = PlayerAnim and Spawner\n& = PlayerAscending3 and Light\n§ = Light\nµ = Light and SpawnButton\n£ = Light and Delete\n- = Spawner\n? = SpawnButton\n! = HordeButton\n< = GoL\n> = GoR\nX = Delete\n/ = AscendButton\n\nDogAnim = DogAnimL or DogAnimR\nCatAnim = CatAnimL or CatAnimR\nMouseAnim = MouseAnimL or MouseAnimR\n\nAscend = PlayerAscending1 or PlayerAscending2 or PlayerAscending3\n\nAnim = PlayerAnim or DogAnim or CatAnim or MouseAnim or WallnutAnim\n\n=======\nSOUNDS\n=======\n\nstartgame 13270509\nendlevel 22256108\nendgame 22256108\nrestart 94088302\nundo 87693501\n\nCrate MOVE 25943107\nCatIdle MOVE 25943107\nMouseIdle MOVE 25943107\nWallnutIdle MOVE 25943107\n\nsfx0 86992703\nDogActive MOVE 47565107\nCatActive MOVE 36092905\nMouseActive MOVE 20048306\nWallnutActive MOVE 18695302\n\n(--Anim--)\n\nDogAnim create 47565107\nDogAnim move 47565107\nCatAnim create 36092905\nCatAnim move 36092905\nMouseAnim create 20048306\nMouseAnim move 20048306\nWallnutAnim create 18695302\nWallnutAnim move 18695302\n\nPlayerAscending3 destroy 58002102\n\nsfx1 52296908\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Dog, Cat, Mouse, Wallnut, Wall, Crate\n\n(--Anim--)\n\nLight, LightL, LightR\nSpawner, SpawnButton, HordeButton, GoL, GoR, Delete, AscendButton\nPlayerAnim, Ascend, DogAnim, CatAnim, MouseAnim, WallnutAnim\nNextStep\n\n======\nRULES\n======\n\n[> Player | Crate] -> [> Player | > Crate]\n[> Player | CatIdle] -> [> Player | > CatIdle]\n[> Player | MouseIdle] -> [> Player | > MouseIdle]\n[> Player | WallnutIdle] -> [> Player | > WallnutIdle]\n\nright [DogActiveL | ... | Player] -> [DogActiveR | ... | Player]\nleft [DogActiveR | ... | Player] -> [DogActiveL | ... | Player]\nright [CatActiveL | ... | DogActive] -> [CatActiveR | ... | DogActive]\nleft [CatActiveR | ... | DogActive] -> [CatActiveL | ... | DogActive]\nright [MouseActiveL | ... | CatActive] -> [MouseActiveR | ... | CatActive]\nleft [MouseActiveR | ... | CatActive] -> [MouseActiveL | ... | CatActive]\n\n[DogActive | ... | Player] -> [> DogActive | ... | Player]\n[CatActive | ... | DogActive] -> [> CatActive | ... | DogActive]\n[MouseActive | ... | CatActive] -> [> MouseActive | ... | CatActive]\n[WallnutActive | ... | MouseActive] -> [> WallnutActive | ... | MouseActive]\n\nlate [DogIdle | Player] -> [DogActiveL | Player] sfx0\nlate [CatIdle | DogActive] -> [CatActiveL | DogActive] sfx0\nlate [MouseIdle | CatActive] -> [MouseActiveL | CatActive] sfx0\nlate [WallnutIdle | MouseActive] -> [WallnutActive | MouseActive] sfx0\n\n(--Anim--)\n\n[Anim] [GoL] -> [left Anim] [GoL] again\n[Anim] [GoR] -> [right Anim] [GoR] again\n[Anim Delete] -> [Delete] again\n[PlayerAscending3 Delete] -> [Delete] again\n\n[PlayerAscending3] -> [up PlayerAscending3] again\n\nlate [PlayerAnim SpawnButton] [GoR] [Spawner] -> [PlayerAnim SpawnButton] [GoR] [DogAnimR Spawner]\nlate [PlayerAnim SpawnButton] [GoL] [Spawner] -> [PlayerAnim SpawnButton] [GoL] [DogAnimL Spawner]\nlate [PlayerAscending3 SpawnButton] [Spawner] -> [PlayerAscending3 SpawnButton] [DogAnimR Spawner]\n\nlate [DogAnim HordeButton] [GoR] [Spawner] -> [DogAnim HordeButton] [GoR] [CatAnimR Spawner]\nlate [DogAnim HordeButton] [GoL] [Spawner] -> [DogAnim HordeButton] [GoL] [CatAnimL Spawner]\nlate [CatAnim HordeButton] [GoR] [Spawner] -> [CatAnim HordeButton] [GoR] [MouseAnimR Spawner]\nlate [CatAnim HordeButton] [GoL] [Spawner] -> [CatAnim HordeButton] [GoL] [MouseAnimL Spawner]\nlate [MouseAnim HordeButton] [Spawner] -> [MouseAnim HordeButton] [WallnutAnim Spawner]\n\nlate [Ascend AscendButton] -> [Ascend NextStep AscendButton] again\n\nlate [PlayerAnim AscendButton] -> [PlayerAscending1 AscendButton] again\n\n[PlayerAscending1 NextStep] -> [PlayerAscending2]\n[PlayerAscending2 NextStep] -> [PlayerAscending3] sfx1 win\n\nleft [Light | no Light] -> [Light | LightL]\nright [Light | no Light] -> [Light | LightR]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nNo DogIdle\nNo CatIdle\nNo MouseIdle\nNo WallnutIdle\n\n(--Anim--)\n\nNo Anim\nNo Ascend\n\n=======\nLEVELS\n=======\n\nmessage \"I wonder if I'll get chased by something today\"\nmessage Level 1a of 4\n\n#####.\n#...##\n#.#p.#\n#.*@.#\n#.o@.#\n#....#\n######\n\nmessage \"Oh just great\"\nmessage Level 1b of 4\n\n#####.\n#..d##\n#.#p.#\n#.*@.#\n#.o@.#\n#....#\n######\n\nmessage \"There's more following me ?\"\nmessage Level 1c of 4\n\n#####.\n#mcd##\n#.#p.#\n#.*@.#\n#.o@.#\n#....#\n######\n\nmessage \"I don't need anything please stop following me\"\nmessage Level 2 of 4\n\n####..\n#.o#..\n#..###\n#@p..#\n#..*d#\n#c.m##\n#####.\n\nmessage \"There's not way this wallnut can chase me\"\nmessage Level 3a of 4\n\n####.....\n#..###.#.\n#.d..#...\n##.#.###.\n.#.mp..#.\n.###.#w##\n...#...c#\n.#.###..#\n.....####\n\nmessage \"Okay nevermind\"\nmessage Level 3b of 4\n\n####.....\n#..###.#.\n#.w..#...\n##.#.###.\n.#.mp..#.\n.###.#d##\n...#...c#\n.#.###..#\n.....####\n\nmessage \"They'll never stop following me until I'm stuck\"\nmessage Level 4a of 4\n\n...#######\n####...#w#\n#..#.m.#.#\n#..d.*.o.#\n##c#.*.o.#\n.###.p.###\n...#####..\n\nmessage \"But I still have one last trick up my sleeve\"\nmessage Level 4b of 4\n\n.......###.\n...#####w#.\n####...#.##\n#..#.m.#...\n#..d.*oo.##\n##c#.*...#.\n.###.p.###.\n...#####...\n\n(--Anim--)\n\n.........\n....>....\n.........\n.........\n%.!.?...x\n.........\n.........\n\n.........\n....<....\n.........\n.........\nx...?.!.%\n.........\n.........\n\n.........\n....>....\n.........\n.........\n%!....?.x\n.........\n.........\n\n.........\n....>....\n.........\n.........\n+.../....\n.........\n.........\n\nmessage \"I ascend !\"\n\n....£....\n.>..§....\n....§....\n....§....\n-!..µ...x\n....&....\n....§....\n\nmessage \"Goodbyeeeee...\"\n\n", [1, 0, 0, 0, 3, 0, 1, 2, 2, 2, 3, 0, 3, 3, 2, 1, 0, 1, 2, 3, 0, 1, 1, 1, 1, 1, 0, 3, 2, 3, 3, 1, 0, 2, 0, 3, 2, 2, 1, 0, 3, 0, 3, 2, 3, 2, 3], "background:0,0,background wall:1,1,1,1,0,0,0,0,1,\n0,0,1,1,0,0,0,1,0,0,0,\n1,0,0,1,1,1,0,1,1,1,0,\n1,0,0,0,0,0,1,0,1,0,background mouseactiver:2,\n0,background crate:3,3,1,0,1,0,background catactiver:4,background dogactiver target:5,0,0,\n1,1,1,1,1,background player target:6,0,1,1,1,background wallnutidle:7,\n0,0,0,0,1,0,1,1,1,0,1,\n1,1,0,0,0,1,0,1,0,0,0,\n", 23, "1645578571689.1494"] - ], - [ - "Kettle, except something is off", - ["title Kettle, except something is off\nauthor Stingby12\nhomepage https://stingby12.itch.io/\n\ncolor_palette arnecolors\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(Moonwulk)\n\n[ up rpolice] -> [rpolice]\n[ down rpolice] -> [rpolice]\n[ left rpolice] -> [ left rpolice]\n\n[ down upolice] -> [ down upolice]\n[ left upolice] -> [upolice]\n[ right upolice] -> [upolice]\n\n[ up lpolice] -> [lpolice]\n[ down lpolice] -> [lpolice]\n[ right lpolice] -> [ right lpolice]\n\n[ up dpolice] -> [ up 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 You've been hit back by a smooth Kettle\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################\n\nmessage Area secure\nmessage What are these people in black doing ?!\n\n################\n#..............#\n#..............#\n#..............#\n#....kkkkkk....#\n#...lc..c.cj...#\n#...l......j...#\n#...lc.@tt.j...#\n#...l..t@tcj...#\n#...l..ttt.j...#\n#...lc..c..j...#\n#....iiiiii....#\n#..............#\n#..............#\n#..............#\n################\n\nmessage Area secure\nmessage We may be in trouble.\n\n##########\n#..k.....#\n#........#\n#..ltck.j#\n#..c..t..#\n#..t..c..#\n#l.ictj..#\n#........#\n#.....i..#\n##########\n\nmessage Area secure\nmessage KAW !\n\n###############\n#.............#\n#....k........#\n#......k......#\n#..l.c....k...#\n#......c.j....#\n#...l.@tt.c.j.#\n#.l.c.tt@.....#\n#.....t@t.....#\n#..l.c..c.j...#\n#.....i.......#\n#....i..i.....#\n#.............#\n#.............#\n###############\n\nmessage Area secure\nmessage Mickael Jackson was here.\nmessage Next time it will be Despacito.\n\n", [2, 0, 2, 0, 0, 1, 1, 1, 3, 3, 2, 1, 1, 0, 0, 1, 2, 1, 1, 0, 3, 3, 3, 3, 0, 1, 0, 0], "background wall:0,0,0,0,0,0,0,0,0,0,\n0,background:1,1,background rpolice:2,1,1,1,1,1,0,\n0,1,1,background crate:3,1,1,2,1,1,0,\n0,background dpolice:4,3,background upolice:5,1,background target:6,3,1,1,0,\n0,1,1,6,1,1,background lpolice:7,1,1,0,\n0,1,1,1,1,1,6,1,1,0,\n0,4,3,5,6,1,1,1,1,0,\n0,1,1,7,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,0,\n", 7, "1645562847734.9592"] - ], - [ - "Lightdown", - ["title Lightdown\nauthor Stingby12\nhomepage https://stingby12.itch.io/\n\nbackground_color #262626\n\nrun_rules_on_level_start\n\nkey_repeat_interval 0.3\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nPlayer\nWhite Black\n.000.\n01010\n00000\n01110\n.000.\n\nNormalWall\nWhite\n\nLightWall\nWhite Gray\n00000\n00100\n01110\n00100\n00000\n\nSolidWall\n#262626\n\nFakeWall\nTransparent\n\nLightCrate\nWhite #808080 Black\n.000.\n00100\n01010\n00100\n.000.\n\nNormalCrate\nWhite #808080 Black\n.000.\n00200\n02120\n00200\n.000.\n\nFakeCrate\nTransparent\n\nTarget\nWhite #808080\n.....\n.0.0.\n..1..\n.0.0.\n.....\n\nTargetActi\nWhite White\n.....\n.0.0.\n..1..\n.0.0.\n.....\n\nLightFew\nblack\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nLightMid\nblack\n.....\n.....\n.....\n.....\n.....\n\nLightFull\nblack\n.....\n.....\n.....\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n% = LightWall\n# = NormalWall and FakeWall\n- = SolidWall\n* = LightCrate\n@ = NormalCrate and FakeCrate\nx = Target\n\nLight = LightFull or LightMid or LightFew\nCrate = LightCrate or NormalCrate\nWall = NormalWall or LightWall or SolidWall\n\n=======\nSOUNDS\n=======\n\nstartgame 4133508\nendlevel 74089700\n\nCrate move 19432707\nrestart 14550505\n\nsfx0 10653902\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFakeWall\nNormalWall, LightWall\nTarget, TargetActi\nFakeCrate\nCrate\nLight\nSolidWall\nPlayer\n\n======\nRULES\n======\n\n(Clearing)\n[Light] -> []\n[TargetActi] -> [Target]\n\n(Basic movement)\n[> Player | Crate] -> [> Player | > Crate]\n[> Player | Wall] -> [Player | Wall]\n\n[> Player] [> Crate | Crate] -> [Player] [Crate | Crate]\n[> Player] [> Crate | Wall] -> [Player] [Crate | Wall]\n[> Crate FakeCrate | FakeCrate] -> [ | Crate FakeCrate] sfx0\n\n[> Crate FakeCrate] -> [> Crate > FakeCrate]\n\nlate [Target Crate] -> [TargetActi Crate]\nlate [Target FakeCrate] -> [TargetActi FakeCrate]\n\n(Lighting)\nlate [LightCrate] -> [LightFull LightCrate]\n+ late [LightWall] -> [LightFull LightWall]\n+ late [LightFull | no Light no SolidWall] -> [LightFull | LightMid]\n+ late [LightMid | no Light no SolidWall] -> [LightMid | LightFew]\n\n(Darkess effects)\nlate [NormalWall no Light] -> []\nlate [FakeWall Light] -> [FakeWall NormalWall Light]\n\nlate [NormalCrate no Light] -> []\nlate [FakeCrate Light] -> [FakeCrate NormalCrate Light]\n\n==============\nWINCONDITIONS\n==============\n\nNo Target\n\n=======\nLEVELS\n=======\n\nmessage It's so dark in here.\nmessage Maybe this lantern can help me find the way out.\n\nmessage Level 1 of 8\n\n###########\n#....#....#\n#...*#....#\n#p...#.*#x%\n#...*#....#\n#....#....#\n###########\n\nmessage Level 2 of 8\n\n#####%\n#....#\n#x.*.#\n#p####\n#x.*.#\n#....#\n#####%\n\nmessage Level 3 of 8\n\n.........\n.x...###.\n.x@.*p@#.\n.x...###.\n.........\n\nmessage Level 4 of 8\n\n########\n#.@@@@.#\n#..*.p.#\n#.xxxxx#\n########\n\nmessage Level 5 of 8\n\n.......\n.@.#.p.\n...#...\n.*.#.x.\n.......\n\nmessage Level 6 of 8\n\n.....######\n.....@@.xx%\n--*..@@pxx#\n.....@@.xx%\n.....######\n\nmessage Level 7 of 8\n\n###%#####%#####%###\n#.....#...*.#x.@..#\n#...@*#...*x#..*..#\n#p.x@x#...*.#x.@..#\n#...@*#...*x#..*..#\n#.....#...*.#x.@..#\n###%#####%#####%###\n\nmessage Level 8 of 8\n\n-######-\n##@@@@##\n#@xxxx@#\n#@x*xx@#\n#@xp*x@#\n#@xxxx@#\n##@@@@##\n-######-\n\nmessage I guess darkness is not that useless after all.\n\n", [0, 1, 1, 1, 1, 1, 1, 2, 3, 3, 2, 1, 2, 1, 0, 3, 0, 0, 1, 1, 2, 3, 2, 3, 3, 0, 0, 3, 1, 3, 2, "undo", 1, 2, 3, "undo", 0, 1, 1, 2, 3, 0, 3, 3, 3, 2, "undo", 0, 3, 1, 2, 2, 3, 3, 3, "undo", "undo", 1, 0, 0, 2, 3, 2, 2, 3, 3, 3, 3, 0, 0, 1, 0, 1, 2, 3, 2, 2, 2, 1, 1, 1, 0, 0, 3, "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", 2, "undo", 3, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 3, 2, 3, "undo", 1, 3, 2, "undo", 1, 2, 3, 3, 2, 3, 3, 1, "undo", "undo", "restart", 1, 1, 1, 1, 0, 1, 2, 3, 2, 2, 1, 1, 0, 3, 3, "undo", 2, 3, 3, 0, 3, "undo", 0, 3, 3, 2, 1, 2, 1, 0, 2, 1, 1, 0, 3, 3, 0, "undo", 0, 2, 1, 0, 0, 3, 3, "undo", 3, "undo", 0, 3, 3, 2, 3, 2, 1, 2, 1, 2, 1, 0, 0, 0, 1, 1, "undo", 1, 3, 1, 1, 2, 3, 2, 3, 2, 3, 0, 0, 0, 3, 3, 3, 3, 3, 2, 1], "background:0,0,background solidwall:1,0,0,0,0,1,0,0,0,\n0,0,0,0,0,0,0,background lightfew:2,0,0,background fakecrate:3,\n2,background lightmid:4,2,background fakewall:5,2,background fakecrate lightmid normalcrate:6,background lightcrate lightfull:7,background fakewall lightmid normalwall:8,5,3,background fakecrate lightfew normalcrate:9,\n6,background fakewall lightfew normalwall:10,5,0,0,2,5,5,background lightfew target:11,background player target:12,11,\n5,10,background lightmid target:13,11,13,10,8,background lightfull lightwall:14,8,14,8,\n", 13, "1645563041712.7258"] - ], - - - - [ - "I Need To Stop My Teleport Gun", - ["title I Need To Stop My Teleport Gun\nauthor duyaa\nhomepage https://confoundingcalendar.itch.io/\n\nagain_interval 0.1\nbackground_color #151244\ntext_color #f9cb60\n\n========\nOBJECTS\n========\n\nBackground \n#f9cb60 #f9960f #bc2f01\n00001\n01000\n00100\n00010\n10000\n\nSave\n#f9cb60 #f9960f #bc2f01\n01111\n10001\n10101\n10001\n11110\n\nSaveFinal\n#f9cb60 #f9960f #bc2f01\n01111\n10001\n10101\n10001\n11110\n\nPit\n#151244 #60117f #922a95\n00001\n01000\n00100\n00010\n10000\n\nPlayer\ntransparent #be7dbc #60117f #bc2f01\n03030\n02220\n21212\n02220\n02020\n\nDeadPlayer\ntransparent #be7dbc\n01010\n01110\n10101\n01110\n01010\n\nGun0\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n10000\n10000\n11111\n\nGun1\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n12000\n12000\n11111\n\nGun2\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n12300\n12300\n11111\n\nGun3\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n12340\n12340\n11111\n\nGun4\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n12345\n12345\n11111\n\nGunBroken1\n#f9cb60 #680703 #151244 #60117f #922a95 #be7dbc\n01010\n11111\n12145\n12345\n11111\n\nGunBroken2\n#f9cb60 #680703 #151244 #bc2f01 #922a95 #be7dbc\n01010\n11111\n11315\n12145\n11111\n\nGunBroken3\n#f9cb60 #680703 #bc2f01 #f9960f #be7dbc\n01110\n11211\n12321\n11214\n11111\n\nGunBroken4\n#f9cb60 #680703 #bc2f01 #f9960f\n01210\n12321\n23032\n12321\n11211\n\nGunBroken5\n#f9cb60 #680703 #bc2f01 #f9960f\n12321\n23032\n30003\n23032\n12321\n\nGunBroken6\n#f9cb60 #bc2f01 #f9960f\n12021\n20002\n00000\n20002\n12021\n\nGunBroken7\n#f9cb60 #f9960f\n10001\n00000\n00000\n00000\n10001\n\nGunBroken8\n#f9cb60\n00000\n00000\n00000\n00000\n00000\n\nBulletD\ntransparent #be7dbc #922a95 #60117f\n00300\n00200\n02120\n00200\n00000\n\nBulletL\ntransparent #be7dbc #922a95 #60117f\n00000\n00200\n02123\n00200\n00000\n\nBulletR\ntransparent #be7dbc #922a95 #60117f\n00000\n00200\n32120\n00200\n00000\n\nBulletU\ntransparent #be7dbc #922a95 #60117f\n00000\n00200\n02120\n00200\n00300\n\nCrate\n#7f6962 #680703\n00000\n01110\n01110\n01110\n00000\n\nCrateUL\n#7f6962 #680703 transparent\n22220\n22200\n22010\n20110\n00000\n\nCrateUR\n#7f6962 #680703 transparent\n02222\n00222\n01022\n01102\n00000\n\nCrateDL\n#7f6962 #680703 transparent\n00000\n20110\n22010\n22200\n22220\n\nCrateDR\n#7f6962 #680703 transparent\n00000\n01102\n01022\n00222\n02222\n\nTempGun\ntransparent\n\nBorderCheck\ntransparent\n\nTempTele\ntransparent\n\nSolutionCheck\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n: = Save\n; = SaveFinal\nX = Pit and BorderCheck\n# = Pit\nP = Player\nG = Gun0\n0 = Crate\n1 = CrateUL\n2 = CrateUR\n3 = CrateDL\n4 = CrateDR\n5 = CrateUL and Save\n6 = CrateUR and Save\n7 = CrateDL and Save\n8 = CrateDR and Save\nB = CrateUR and SolutionCheck\nd = BulletD\nr = BulletR\nl = BulletL\nu = BulletU\n\nGun = Gun0 or Gun1 or Gun2 or Gun3 or Gun4\nGunBroken = GunBroken1 or GunBroken2 or GunBroken3 or GunBroken4 or GunBroken5 or GunBroken6 or GunBroken7 or GunBroken8\nGunOrGunBroken = Gun or GunBroken\nObject = Crate or CrateUL or CrateUR or CrateDL or CrateDR\nBullet = BulletD or BulletL or BulletR or BulletU\n\n( for bullet colliding )\nObjectD = Crate or CrateDL or CrateDR\nObjectL = Crate or CrateUL or CrateDL\nObjectR = Crate or CrateUR or CrateDR or Gun\nObjectU = Crate or CrateUL or CrateUR\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSave, Pit, SaveFinal, SolutionCheck\nGun, GunBroken, Object\nPlayer\nDeadPlayer\nBulletD\nBulletL\nBulletR\nBulletU\nTempGun\nBorderCheck\nTempTele\n\n======\nRULES \n====== \n\n( gun charging )\n[GunOrGunBroken] -> [GunOrGunBroken TempGun]\n[Gun0 TempGun] -> [Gun1 no TempGun]\n[Gun1 TempGun] -> [Gun2 no TempGun]\n[Gun2 TempGun] -> [Gun3 no TempGun]\n[Gun3 TempGun] -> [Gun4 no TempGun]\nright [Gun4 TempGun | no ObjectR] -> [Gun0 BulletR no TempGun | ]\nright [Gun4 TempGun | ObjectR] -> [GunBroken1 no TempGun | ObjectR] again\n( gun breaking )\n[GunBroken1 TempGun] -> [GunBroken2 no TempGun] again\n[GunBroken2 TempGun] -> [GunBroken3 no TempGun] again\n[GunBroken3 TempGun] -> [GunBroken4 no TempGun] again\n[GunBroken4 TempGun] -> [GunBroken5 no TempGun] again\n[GunBroken5 TempGun] -> [GunBroken6 no TempGun] again\n[GunBroken6 TempGun] -> [GunBroken7 no TempGun] again\n[GunBroken7 TempGun] -> [GunBroken8 no TempGun] win\n\n( bullet moving )\n[Bullet BorderCheck] -> [Player TempTele BorderCheck]\n[BulletD][Gun] -> [down BulletD][Gun]\n[BulletL][Gun] -> [left BulletL][Gun]\n[BulletR][Gun] -> [right BulletR][Gun]\n[BulletU][Gun] -> [up BulletU][Gun]\n( bullet and object colliding )\ndown [> BulletD | ObjectD] -> [stationary Player < TempTele | ObjectD]\nlate [ BulletD CrateUL] -> [ BulletL CrateUL]\nlate [ BulletD CrateUR] -> [ BulletR CrateUR]\nleft [> BulletL | ObjectL] -> [stationary Player < TempTele | ObjectL]\nlate [ BulletL CrateUR] -> [ BulletU CrateUR]\nlate [ BulletL CrateDR] -> [ BulletD CrateDR]\nright [> BulletR | ObjectR] -> [stationary Player < TempTele | ObjectR]\nlate [ BulletR CrateUL] -> [BulletU CrateUL]\nlate [ BulletR CrateDL] -> [BulletD CrateDL]\nup [> BulletU | ObjectU] -> [stationary Player < TempTele | ObjectU]\nlate [BulletU CrateDL] -> [ BulletL CrateDL]\nlate [BulletU CrateDR] -> [ BulletR CrateDR]\n( teleport collision recoiling )\n[> TempTele Object] -> [> TempTele > Object]\n\n( teleportation happening )\n[Player no TempTele][TempTele] -> [][TempTele]\n[DeadPlayer no TempTele][TempTele] -> [] [TempTele]\n[TempTele] -> []\n\n( player, object normally moving )\n[> Player | Object] -> [> Player | > Object]\n[> Object | stationary Object] -> [> Object | > Object]\n( cannot push gun )\n[> Player | GunOrGunBroken] -> [stationary Player | GunOrGunBroken]\n[> Object | GunOrGunBroken] -> [stationary Object | GunOrGunBroken]\n[> Object | stationary Object] -> [stationary Object | Object]\n[> Player | stationary Object] -> [stationary Player | Object]\n( pit )\nlate [Player Pit] -> [DeadPlayer Pit]\n[> Object | Pit] -> [ | Pit]\n( checkpoint )\nlate [SolutionCheck Bullet][SaveFinal] -> [Bullet][Save]\nlate [Player Save] -> [Player] checkpoint\n\n==============\nWINCONDITIONS\n============== \n\n======= \nLEVELS\n=======\n\nmessage Press X to wait. \n\nXXXXXXXXXXXXXXXXXXXX\nX#4##..####3##.###.X\nX####.2.###1##.###3X\nX##.....#####:4#3#0X\nX##.4.#..####..####X\nX###...#.#####2#1##X\nX###.#...###4#####1X\nX.80.######.60#####X\nX#23###0..####...##X\nX#4.#3#4;0G.##.:0#3X\nX##...#.....##...##X\nX##.1.0###..#####..X\nX###..#B####23##0:1X\nX##0#.###.##41###4.X\nX###0:0.#4..213####X\nX####0.0#.....#0:1.X\nX0:..############1#X\nX#.2.###014.0#23###X\nX#..########1##2.0#X\nX####0######4##1###X\nX########2.10######X\nXXXXXXXXXXXXXXXXXXXX\n\nmessage I'm freeeeeeeee!\n\n", [4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 3, 2, 1, 4, 4, 4, 4, 4, 4, 4, 4, 0, 3, 2, 4, 4, 1, 1, 3, 0, 3, 1, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 4, "undo", "undo", 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, 2, 2, 3, 0, 2, 2, 3, 0, 3, 0, 2, 2, "undo", "undo", "undo", "undo", 3, 2, 3, 3, 0, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0], "background bordercheck pit:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background pit:1,1,1,1,1,1,background:2,1,1,1,1,1,1,1,1,background crate:3,1,\n1,1,1,0,0,background cratedr:4,1,1,1,1,1,background cratedr save:5,background crateur:6,background bulletr cratedr:7,1,1,1,1,background bulletu pit:8,1,\n6,2,2,1,1,0,0,1,1,2,2,1,1,3,background cratedl:9,2,2,2,1,3,\n1,1,2,2,2,1,1,0,0,1,1,2,4,2,2,2,1,1,2,background crateul:10,\n2,1,3,1,2,2,1,1,1,0,0,2,2,2,2,2,1,1,1,9,\n2,background bulletd:11,2,background player:12,2,3,background bulletl pit:13,1,1,3,1,0,0,2,6,2,1,2,2,1,\n1,1,1,3,1,1,3,2,1,1,1,1,1,0,0,1,2,2,2,1,\n2,1,3,4,2,1,background crateur solutioncheck:14,1,2,3,1,1,1,1,1,0,0,1,1,1,\n2,2,2,1,2,background savefinal:15,2,1,1,1,1,1,1,3,1,1,1,0,0,1,\n1,1,1,1,1,1,2,3,2,1,1,2,4,2,1,10,1,1,6,0,\n0,1,1,1,1,1,1,1,1,background gun2:16,2,2,1,1,2,2,13,4,1,1,\n2,0,0,9,10,1,1,1,1,2,1,2,2,2,1,1,2,2,1,2,\n1,1,10,0,0,1,1,1,1,1,4,background crateur save:17,1,1,1,1,6,4,6,2,\n1,3,10,4,3,0,0,1,1,background save:18,2,1,1,3,1,background bulletr pit:19,1,1,9,10,\n10,2,1,1,1,1,1,0,0,2,2,4,2,6,1,1,2,2,2,1,\n1,1,9,1,1,6,1,1,1,0,0,1,1,1,1,1,1,1,2,2,\n2,1,1,1,1,3,13,9,6,10,1,0,0,1,1,9,1,10,1,1,\n2,2,3,1,2,1,1,2,1,1,2,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,2,2,background bulletd cratedr:20,1,2,10,1,3,1,1,0,0,2,9,3,\n1,1,10,1,1,background bulletd cratedl:21,1,2,2,10,1,10,1,1,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 1, "1645578752808.7263"] - ], - [ - "City road builder", - ["title City road builder\nauthor Stingby12\nhomepage https://confoundingcalendar.itch.io/\n\nbackground_color #60117f\ntext_color #f9960f\n\nnoundo\nagain_interval 0.05\nrun_rules_on_level_start\n\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\n#151244\n\nHouseNeut\n#bc2f01\n.....\n.000.\n.000.\n.000.\n.....\n\nHouseWonrg\n#922a95\n.....\n.000.\n.000.\n.000.\n.....\n\nHouseRight\n#680703\n.....\n.000.\n.000.\n.000.\n.....\n\nIntersect\n#922a95\n.....\n..0..\n.000.\n..0..\n.....\n\nWall\n#60117f\n\nPlayer\n#f9cb60 #f9960f\n.....\n.0.0.\n..1..\n.0.0.\n.....\n\nPlayerDone\n#f9cb60 #f9960f\n.....\n.....\n..1..\n.....\n.....\n\nStartpos\n#be7dbc\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nPathL\n#f9960f\n.....\n.....\n000..\n.....\n.....\n\nPathR\n#f9960f\n.....\n.....\n..000\n.....\n.....\n\nPathU\n#f9960f\n..0..\n..0..\n..0..\n.....\n.....\n\nPathD\n#f9960f\n.....\n.....\n..0..\n..0..\n..0..\n\nCorner\ntransparent\n\nStraight\ntransparent\n\nCantmove\ntransparent (#be7dbc)\n.....\n.....\n..0..\n.....\n.....\n\nCornerWonrg\n#680703\n..0..\n.0.0.\n0...0\n.0.0.\n..0..\n\nCantWin\ntransparent\n\nWillWin\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nO = HouseNeut\n+ = Intersect\nP = Player and Startpos\n\nPath = PathL or PathR or PathU or PathD\nHouse = HouseNeut or HouseWonrg or HouseRight\nWonrg = HouseWonrg or HouseNeut or CornerWonrg\n\n=======\nSOUNDS\n=======\n\nendlevel 57894308\nstartgame 74954908\n\nsfx0 92660707\nsfx1 65428907\n\nsfx2 94788500\nsfx3 78837102\n\nsfx4 52715504\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n\nCorner\nStraight\n\nCornerWonrg\nStartpos\nHouse\nIntersect\n\nPathL\nPathR\nPathU\nPathD\n\nPlayer, PlayerDone\nWall\n\nCantmove\nCantWin\nWillWin\n\n======\nRULES\n======\n\n(clearing)\n[Cantmove no Path] -> []\n[Cantwin] -> []\n\n[WillWin] -> Win\n\n(check win conditions)\n[Player] [CornerWonrg] -> [Player CantWin] [CornerWonrg]\n[Player] [HouseNeut] -> [Player CantWin] [HouseNeut]\n[Player] [HouseWonrg] -> [Player CantWin] [HouseWonrg]\nup [up Player no CantWin|Startpos] -> [PathU|PathD PlayerDone WillWin]\ndown [down Player no CantWin|Startpos] -> [PathD|PathU PlayerDone WillWin]\nleft [left Player no CantWin|Startpos] -> [PathL|PathR PlayerDone WillWin]\nright [right Player no CantWin|Startpos] -> [PathR|PathL PlayerDone WillWin]\n[WillWin] -> again\n\n(moves)\n(forward move)\nright [right Player|no Wall no Cantmove] -> [PathR|PathL Player] sfx0\nright [no Wall no Cantmove|left Player] -> [Player PathR|PathL] sfx0\ndown [down Player|no Wall no Cantmove] -> [PathD|PathU Player] sfx0\ndown [no Wall no Cantmove|up Player] -> [Player PathD|PathU] sfx0\n(backwards undo moves)\nright [> Player PathR | PathL ] -> [|Player] sfx1\ndown [> Player PathD | PathU ] -> [|Player] sfx1\nleft [> Player PathL | PathR ] -> [|Player] sfx1\nup [> Player PathU | PathD ] -> [|Player] sfx1\n\n(VERY IMPORTANT)\n[> Player] -> [Player]\n[Path] -> [Path Cantmove]\n\n(paths)\n(straight)\nlate [PathL PathR] -> [PathL PathR Straight]\nlate [PathU PathD] -> [PathU PathD Straight]\n(corner)\nlate [PathL PathU] -> [PathL PathU Corner]\nlate [PathU PathR] -> [PathU PathR Corner]\nlate [PathR PathD] -> [PathR PathD Corner]\nlate [PathD PathL] -> [PathD PathL Corner]\n(can't turn on empty)\nlate [Corner no House no Intersect no CornerWonrg] -> [Corner CornerWonrg] sfx3\n[CornerWonrg no Corner] -> [] sfx4\n(clearing)\nlate [Straight PathL no PathR] -> [PathL] again\nlate [Straight PathR no PathL] -> [PathR] again\nlate [Straight PathU no PathD] -> [PathU] again\nlate [Straight PathD no PathU] -> [PathD] again\n\nlate [Corner PathL no PathU no PathD] -> [PathL] again\nlate [Corner PathR no PathU no PathD] -> [PathR] again\nlate [Corner PathU no PathL no PathR] -> [PathU] again\nlate [Corner PathD no PathL no PathR] -> [PathD] again\n\n(turning)\nlate [Corner HouseNeut] -> [Corner HouseRight] sfx2\nlate [Straight HouseNeut] -> [Straight HouseWonrg] sfx3\n[HouseRight no Corner] -> [HouseNeut] sfx4\n[HouseWonrg no Straight] -> [HouseNeut] sfx4\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\nmessage Build a road that turns at every houses, then return to his original position, forming a loop.\nmessage Move backwards to undo.\n\n++..+.+o+\n.........\n.o.+o....\n....+.o++\n.p.####..\n...####..\n.+.....o+\n...+.o..+\n+..+.+...\n\nmessage You are hired !\nmessage -- Made for The CONFOUNDING Calendar --\n\n", [0, 0, 0, 0, 3, 3, 3, 2, 2, 1, "undo", "undo", 3, 0, 0, 3, 3, 2, 2, 2, 3, 1, 0, 0, 0, 3, 3, 2, 2, 2, 1, 1, 1, 1, 0, 0, 3, 3, 1, 1, 2, 1, 1], "background intersect:0,background:1,1,1,1,1,1,1,0,\nbackground cantmove corner intersect pathd pathr:2,background cantmove pathd pathu straight:3,background cantmove housewonrg pathd pathu straight:4,3,background cantmove pathu startpos:5,1,0,1,1,\nbackground cantmove pathl pathr straight:6,1,background cantmove pathr player:7,1,1,1,1,1,1,\n6,1,background cantmove cantwin intersect pathl pathr straight:8,1,background wall:9,9,1,0,0,\nbackground cantmove intersect pathl pathr straight:10,1,background cantmove corner houseright pathd pathl:11,background cantmove corner intersect pathr pathu:12,9,9,1,1,1,\n6,1,1,6,9,9,1,background houseneut:13,0,\n10,1,1,background cantmove housewonrg pathl pathr straight:14,9,9,1,1,1,\n14,1,1,10,1,1,13,1,1,\nbackground cantmove corner intersect pathd pathl:15,3,3,background cantmove corner intersect pathl pathu:16,1,1,0,0,1,\n", 2, "1645569075149.173"] - ], - [ - "Every Star Needs a Tree", - ["title Every Star Needs a Tree\nauthor Toombler\nhomepage https://toombler.itch.io/\n\nbackground_color #60117f\ntext_color #be7dbc\n\nrun_rules_on_level_start\n\nrealtime_interval 0.05\n\nnoaction (remove this line to enable turning off the display with action)\n\n========\nOBJECTS\n========\n\n(\nPALETTE\n)\n\nCol1\n#151244\n\nCol2\n#60117f\n\nCol3\n#922a95\n\nCol4\n#be7dbc\n\nCol5\n#350828\n\nCol6\n#7f6962\n\nCol7\n#f9cb60\n\nCol8\n#f9960f\n\nCol9\n#bc2f01\n\nCol10\n#680703\n\n\n\n\n\nBackground\n#89228c #922a95\n00000\n01110\n01110\n01110\n00000\n\n\nWall\n#60117f\n\n\nPlayer\n#151244 #f9960f #be7dbc #151244\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nUnsatisfiedStar\n#f9960f\n0...0\n.000.\n.000.\n.000.\n0...0\n\nSatisfiedStar\n#f9cb60\n0...0\n.000.\n.000.\n.000.\n0...0\n\n\nTreeTrunk\n#151244\n0000.\n.0000\n0000.\n.0000\n.000.\n\nTreeTop\n#151244 #89228c\n11011\n10001\n00001\n10000\n10001\n\nProtectedTree\n#be7dbc (#f9960f )\n..0..\n.....\n0..0.\n.0...\n...0.\n\n\n\n\nTreeTrunkDissolveCopy\n#151244\n0000.\n.0000\n0000.\n.0000\n.000.\n\nTreeTopDissolveCopy\n#151244 #89228c\n11011\n10001\n00001\n10000\n10001\n\nDissolve0\n#89228c #922a95\n..0..\n0..1.\n.....\n.1...\n...0.\n\nDissolve1\n#89228c #922a95\n.00..\n0.11.\n..1..\n.1...\n..00.\n\nDissolve2\n#89228c #922a95\n.00..\n0.11.\n011..\n.1.00\n.000.\n\nDissolve3\n#89228c #922a95\n000..\n0.11.\n0111.\n.1.10\n.000.\n\nDissolve4\n#89228c #922a95\n00000\n01110\n01110\n01.10\n00000\n\n\nAboveTreeTop\ntransparent\n\n\nScoreStart\ntransparent\n\nScoreSatisfied\n#f9cb60\n.....\n.000.\n00000\n.000.\n.....\n\nScoreUnsatisfied\n#350828\n.....\n.000.\n00000\n.000.\n.....\n\nTempCountedStar\nblack\n\nScoreToggled\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n# = Wall\n\nS = UnsatisfiedStar\nX = SatisfiedStar\nstar = UnsatisfiedStar or SatisfiedStar\n\nT = TreeTrunk\nTree = TreeTrunk or TreeTop\n\nB = ScoreStart and wall\nScore = ScoreSatisfied or ScoreUnsatisfied\n\nDissolve = Dissolve0 or Dissolve1 or Dissolve2 or Dissolve3 or Dissolve4\nTreeDissolveCopy = TreeTrunkDissolveCopy or TreeTopDissolveCopy\n\nCol = Col1 or Col2 or Col3 or Col4 or Col5 or Col6 or Col7 or Col8 or Col9 or Col10\n\n=======\nSOUNDS\n=======\n\nstar MOVE 35528507 (36772507)\nPlayer move 63208907\n\n\nSatisfiedStar create 70313100\nUnsatisfiedStar create 55575100 (54449300) (59228107) (49933904) (15540904)\n\nstartgame 51532700 (75654300)\nendgame 38823100\n\n\nsfx1 78866304 (27218109) (89389102) (4099902) (67740500) (6235507)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nCol\nAboveTreeTop\n\nPlayer, UnsatisfiedStar, SatisfiedStar, TreeTrunk, Wall\n\nTreeTrunkDissolveCopy\nTreeTopDissolveCopy\nDissolve\n\nTreeTop\nProtectedTree\n\n\nTempCountedStar\nScoreToggled\nScoreStart\nScoreSatisfied, ScoreUnsatisfied\n\n\n======\nRULES\n======\n\n(push stars)\n[ > Player | Star ] -> [ > Player | > Star ]\n\n\n(dissolve animation)\n[ Dissolve4 TreeDissolveCopy ] -> []\n[ Dissolve3 ] -> [ Dissolve4 ]\n[ Dissolve2 ] -> [ Dissolve3 ]\n[ Dissolve1 ] -> [ Dissolve2 ]\n[ Dissolve0 ] -> [ Dissolve1 ]\n\n\n\n(stars protect trees below them)\nlate [ ProtectedTree ] -> []\nlate down [ Star | TreeTrunk ] -> [ Star | TreeTrunk ProtectedTree ]\nlate down [ ProtectedTree | TreeTrunk ] -> [ ProtectedTree | ProtectedTree TreeTrunk ]\n\n(stars kill unprotected trees)\nlate [ star | Treetrunk no ProtectedTree ] -> [ star | TreeTrunkDissolveCopy Dissolve0 ] sfx1\nlate [ TreeTop TreeTrunkDissolveCopy ] -> [ TreeTopDissolveCopy ]\n\n\n(tree top sprite)\nlate [ TreeTop ] -> []\nlate up [ TreeTrunk | no TreeTrunk ] -> [ TreeTrunk TreeTop | ]\n\n(check if stars have a tree)\nlate down [ UnsatisfiedStar | TreeTop ] -> [ SatisfiedStar | TreeTop ]\nlate down [ SatisfiedStar | no TreeTop ] -> [ UnsatisfiedStar | ] \n\n\n\n(score stuff)\nlate [ Score ] -> []\nlate right [ SatisfiedStar no TempCountedStar ][ ScoreStart | no Score ] -> [ SatisfiedStar TempCountedStar ][ ScoreStart | ScoreSatisfied ]\nlate right [ SatisfiedStar no TempCountedStar ][ Score | no Score ] -> [ SatisfiedStar TempCountedStar ][ Score | ScoreSatisfied ]\nlate right [ UnsatisfiedStar no TempCountedStar ][ ScoreStart | no Score ] -> [ UnsatisfiedStar TempCountedStar ][ ScoreStart | ScoreUnsatisfied ]\nlate right [ UnsatisfiedStar no TempCountedStar ][ Score | no Score ] -> [ UnsatisfiedStar TempCountedStar ][ Score | ScoreUnsatisfied ]\nlate [ TempCountedStar ] -> []\n\n[ action Player ][ ScoreStart no ScoreToggled ] -> [ Player ][ ScoreStart ScoreToggled ] \n[ action Player ][ ScoreStart ScoreToggled ] -> [ Player ][ ScoreStart ] \nlate [ Score ][ ScoreToggled ] -> [ ][ ScoreToggled ]\n\n\n==============\nWINCONDITIONS\n==============\n\nno UnsatisfiedStar\n\n\n=======\nLEVELS\n=======\n\n\n\n(things:\n- can't destroy from top\n- use star to free other star\n- use star to make path to other area\n- 4 high = can fit two stars\n)\n\n\n###################\n###################\n#######........####\n###...t.....t..##..\n###.x.t.....t..##s.\n####t##..s..t..##..\n....t.......t..#.s.\n....t.......t..#.s.\n..tttt#t#...t.##t..\n....#...#.p.t...t..\n#####s.s#..........\n#####...#t#########\n###################\n#####b#############\n###################\n\nmessage Thanks For Playing!\n\n(hold right\n................................\np.x.............................\n..t.tt.tt.t.t.t...tt.tt.t.t.t.t.\n................................\n..s.............................\n)\n\n(\n..........\n....s.....\n.t....s...\n.t.....t..\n.t.t.s.t..\n.t.t......\n...t..p...\n..........\n)\n\n\n\n\n\n\n\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", 1, "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", 0, "tick", "tick", "tick", 3, "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", 0, "tick", "tick", "tick", 3, "tick", 0, "tick", "tick", 1, "tick", "tick", "tick", "tick", 2, "tick", 1, "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", 1, "tick", 0, "tick", "tick", 3, "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", 0, "tick", "tick", "tick", 1, "tick", "tick", "tick", 3, "tick", "tick", 3, "tick", "tick", 2, "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", 2, "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "undo", "tick", "tick", "tick", "tick", "undo", "tick", "tick", "tick", "undo", "tick", "tick", "tick", "undo", "tick", "tick", "tick", "tick", "undo", "tick", "tick", "tick", "undo", "tick", "tick", "tick", "tick", "undo", "tick", "tick", "tick", "undo", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 2, "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", 1, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", 3, "tick", "tick", 2, "tick", 1, "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", 0, "tick", "tick", "tick", 1, "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", 1, "tick", "tick", 1, "tick", "tick", "tick", "tick", 2, "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", 1, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 3, "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 2, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", "tick", 3, "tick", "tick", 0, "tick", "tick", 0, "tick", 3, "tick", "tick", 0, "tick", "tick", 3, "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", "tick", "tick", 0, "tick", 1, "tick", "tick", "tick", 2, "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 3, "tick", 2, "tick", "tick", 1, "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background wall:0,0,0,0,0,0,background:1,1,1,1,0,0,0,0,0,0,0,0,0,\n0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,\nbackground treetop treetrunk:2,1,0,0,0,0,0,0,0,0,1,1,0,1,1,2,1,0,0,\n0,0,0,0,0,0,1,background satisfiedstar:3,background protectedtree treetop treetrunk:4,background protectedtree treetrunk:5,5,5,0,0,0,0,0,0,0,\n0,0,1,1,0,1,1,2,1,background unsatisfiedstar:6,1,0,background scorestart wall:7,0,0,0,0,2,background treetrunk:8,\n0,1,1,0,1,1,1,0,background scoresatisfied wall:9,0,0,0,1,1,1,1,1,1,2,\n1,6,1,0,9,0,0,0,1,1,1,1,1,1,0,0,0,0,0,\n9,0,0,0,1,1,1,1,1,1,1,1,3,4,0,9,0,0,0,\n1,1,1,1,1,1,1,1,1,0,0,background scoreunsatisfied wall:10,0,0,0,1,1,1,1,\n1,1,1,1,1,0,0,10,0,0,0,3,4,1,1,2,8,8,1,\n1,0,0,10,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,\n0,0,0,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,\n0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,\n3,4,5,1,0,0,0,0,0,0,0,1,1,1,1,1,1,6,1,\n0,0,0,0,0,0,0,1,1,1,1,1,1,background player:11,1,0,0,0,0,\n", 0, "1645569315086.5925"] - ], - [ - "Long Haul Space Flight", - ["title Long Haul Space Flight\nauthor pap4qlxxlevb\nbackground_color darkblue\ntext_color lightblue\n\n========\nOBJECTS\n========\n\nBackground\nlightgray gray\n00000\n00000\n00100\n00000\n00000\n\nTarget\n#ffff22 lightgray\n.....\n.000.\n.010.\n.000.\n.....\n\nWall\ndarkgray gray\n00000\n00000\n00000\n00000\n00000\n\nPlayer\nBlack Orange white darkblue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\nCrate\nlightblue #668899\n01110\n01110\n11111\n01110\n01010\n\nCryo\nblue lightgrey\n.....\n..0..\n.010.\n..0..\n.....\n\nDefunct\ngrey lightgray\n.....\n..0..\n.010.\n..0..\n.....\n\nThaw\nred lightgray\n.....\n.0.0.\n..1..\n.0.0.\n.....\n\nDthaw\ngrey lightgray\n.....\n.0.0.\n..1..\n.0.0.\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\nw = Wall\nP = Player\no = Crate\ns = Crate and Target\nx = Target\nc = Cryo\nt = Thaw\n\n=======\nSOUNDS\n=======\n\nPlayer move 81907\nCrate MOVE 96378700\nPlayer cantmove 16386304\nendlevel 55294100\nstartgame 5822103\ncrate create 49604100\nplayer create 59446908\n\n================\nCOLLISIONLAYERS\n================\n\nBackground, \nDefunct, dthaw\nTarget, Cryo, Thaw \nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nlate [ Player Cryo ] -> [ Crate Defunct]\n\nlate [ Crate Thaw ] -> [ Player Dthaw]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nsome Player\n\n=======\nLEVELS\n=======\n\nmessage \"It's gonna be a long, long flight. Make sure all our passengers are in their seats.\"\n\nmessage level 1 of 12\n\nwwwwwww\nwwwwxxw\nww.o..w\nwp.o.ow\nww.o..w\nwwwwxxw\nwwwwwww\n\nmessage \"Looks like someone's arrived late. Help them onboard, will ya?\"\n\nmessage level 2 of 12\n\nwwwwwww\nwwwwx.w\nww...ow\nwpp.c.w\nww....w\nwwww.xw\nwwwwwww\n\nmessage \"Honestly, you'd think people would have the decency to turn up to their cryonic space flight on time!\"\n\nmessage level 3 of 12\n\nwwwwwwwww\nwwwwxwwww\nww.o.o.ww\nwp.....xw\nww.p.c.ww\nwwwwxwwww\nwwwwwwwww\n\nmessage \"If they're gonna arrive late, they can at least help with packing everyone up.\"\n\nmessage level 4 of 12\n\nwwwwwwwww\nwpxw.c.xw\nw.p..o..w\nwp.w.cxww\nwwwwwwwww\n\nmessage \"They're lucky, they won't even feel the years pass. Not like us.\"\n\nmessage level 5 of 12\n\nwwwwwwww\nwxc..wxw\nwwo.p..w\nwwp.c..w\nwwo.p..w\nwx....xw\nwwwwwwww\n\n\nmessage \"From their perspective 75 years will pass in a blink of an eye.\"\n\nmessage level 6 of 12\n\nwwwwwwww\nwwxwwwww\nwwc..www\nww.oxwww\nwwpp..ww\nwwwwwwww\n\nmessage \"It'll be our grandkids who thaw them out on the other side.\"\n\nmessage level 7 of 12\n\nwwwwwww\nwt....w\nw.w.wpw\nw..c..w\nwow.w.w\nw....xw\nwwwwwww\n\nmessage \"I guess we're still lucky in our own way, winning the maintenance raffle.\"\n\nmessage level 8 of 12\n\nwwwwww\nww.cxw\nw.potw\nwto..w\nwxc.ww\nwwwwww\nwwwwww\nmessage \"I'd rather spend those 75 years in here than back on our ruined planet.\"\n\nmessage level 9 of 12\n\nwwwwwww\nwwt.o.w\nwwoww.w\nwp..x.w\nwwww.ww\nwwxc.ww\nwwwwwww\n\nmessage \"Wonder if they'll even remember us once they arrive...\"\n\nmessage level 10 of 12\n\nwwwwwwwwwww\nwwwww.wxx.w\nw....tw.cww\nw.o.w.w..ww\nwp.owt..cww\nw.o.w.w...w\nw....twxc.w\nwwwwwwwwwww\n\nmessage \" ... We've got a long trip ahead of us.\"\n\nmessage level 11 of 12\n\nwwwwww\nw....w\nwpoo.w\nw..o.w\nwwwtww\nwx...w\nwxxc.w\nwwwwww\n\nmessage \"If I am gonna grow old and die on this godforsaken ship...\"\n\nmessage level 12 of 12\n\nwwwwwwwwwwww\nwwwwwwww.www\nwwwwwwxw...w\nw.....twx.ww\nw.o.ww.ww.ww\nwpcow....t.w\nw.o.w.wwcc.w\nw....tw...xw\nwwwwwwwwwwww\n\nmessage \"...I'm glad I get to grow old with you.\"\n\nwwwwwww\nwwwwxxw\nwwpo..w\nw..o.ow\nwwpo..w\nwwwwxxw\nwwwwwww\n\nmessage The End :)\n\n\n", [3, 2, 1, 2, 3, 3, 3, 1, 0, 3, 0, 0, 2, 0, 3, 3, 3, 2, 2, 2, 3, 3, 0, 0, 0, 3, 2, 3, 3, 2, 3, 0, 0, 0, 2, "undo", 1, 2, 1, 1, 2, 2, 1, 1, 1, 0, 1, 0, 0, 0, 3, 3, 3, 2, 2, 3, 3, 2, 2, 3, 3, 3, 2, 3, 2, 1, 0, 0, 0, 1, 3, 0], "background wall:0,0,0,0,0,0,0,0,0,0,background:1,\n1,1,1,1,0,0,0,1,background crate:2,1,1,\n1,0,0,0,1,1,1,1,1,0,0,\n0,1,0,0,0,1,0,0,1,background dthaw:3,1,\nbackground thaw:4,1,3,0,0,0,0,0,1,0,0,\n0,0,background target:5,1,1,1,1,background crate target:6,0,0,6,\nbackground crate defunct:7,1,background defunct:8,1,8,0,0,1,0,0,0,\n1,1,0,0,0,0,0,0,0,0,0,\n", 29, "1645570541337.319"] - ], - [ - "Caramelban", - ["title Caramelban\nauthor Notan\nhomepage https://notaninart.itch.io/\nbackground_color #be7dbc\ntext_color #350828\nrun_rules_on_level_start\nnoaction\n\n========\nOBJECTS\n========\n\nPalette1\n#151244 #60117f #922a95 #be7dbc #350828\n01234\n12340\n23401\n34012\n40123\n\nPalette2\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n01234\n12340\n23401\n34012\n40123\n\nBackground\n#151244 #60117f #922a95 #be7dbc #350828\n33333\n33333\n33333\n33333\n33333\n\nTarget\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.5555\n.5..5\n.5..5\n.5555\n.....\n\nPlayerR\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.222.\n.2222\n.060.\n.666.\n.....\n\nPlayerL\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n..222\n.2222\n..060\n..666\n.....\n\nCaramel1\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.2222\n.2333\n.3322\n.2222\n.....\n\nCaramel2\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.1111\n.1222\n.2211\n.1111\n.....\n\nEdgeH\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.....\n.....\n.....\n.....\n.3333\n\nEdgeV\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n3....\n3....\n3....\n3....\n.....\n\nEdgeC\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.....\n.....\n.....\n.....\n3....\n\nStopCaramel\ntransparent\n\nStopH\ntransparent\n\nStopV\ntransparent\n\nStopC\ntransparent\n\nStretchUp\ntransparent\n\nStretchLeft\ntransparent\n\nStretchDown\ntransparent\n\nStretchRight\ntransparent\n\nWall\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.1222\n.2112\n.1212\n.1121\n.....\n\nWallH\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.....\n.....\n.....\n.....\n.2211\n\nWallV\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n1....\n1....\n2....\n2....\n.....\n\nWallC\n#151244 #60117f #922a95 #be7dbc #350828 #7f6962 #f9cb60 #f9960f #bc2f01 #680703\n.....\n.....\n.....\n.....\n2....\n\nWalkMarker\ntransparent\n\n=======\nLEGEND\n=======\n\nPalette = Palette1 or Palette2\nX = Palette1\nY = Palette2\n\nPlayer = PlayerR or PlayerL\nCaramel = Caramel1 or Caramel2\nObstacle = Wall or Caramel\n\nEdgeX = EdgeH and EdgeV\nEdge = EdgeH or EdgeV or EdgeC\n\nStopEdge = StopH or StopV or StopC\nStretch = StretchUp or StretchLeft or StretchDown or StretchRight\n\n. = Background\n# = Wall\nP = PlayerR\n* = Caramel1\n% = Caramel2\nT = Target\n\n=======\nSOUNDS\n=======\n\nsfx0 30084302 (walk)\nsfx1 50705900 (on target)\nsfx2 85057703 (stretch)\nsfx3 65493303 (stretch unused)\nsfx4 42598703 (stretch unused)\nsfx5 49655103 (stretch unused)\nUndo 21479104 (72060504 60450507)\nrestart 46704309\nstartgame 21069303\nclosemessage 21069303\n(startlevel 67233309)\nendlevel 32515109\n(endgame 21069303)\ntitlescreen 21069303\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWall\nWallH\nWallV\nWallC\nTarget\nPlayer\nCaramel\n\nStopCaramel\nWalkMarker\n\nEdgeH\nEdgeV\nEdgeC\n\nStretch\n\nStopH\nStopV\nStopC\n\nPalette\n\n======\nRULES \n======\n\n(turn)\n[ right player ] -> [ right playerR ]\n[ left player ] -> [ left playerL ]\n\n(stop player)\n[ > player | wall ] -> [ player | wall ]\n\n\n(move)\n\n(add stopCaramel to walls for convenience)\n[ wall ] -> [ wall stopCaramel ]\n\n(add stop marker to caramel cubes)\n[ > player ] [ caramel no stopCaramel | stopCaramel ] -> [ > player ] [ caramel stopCaramel | stopCaramel ]\n\n(stop player if its neighbor caramel cube has stopCaramel)\n[ > player | stopCaramel ] -> [ player | stopCaramel ]\n\n(walk sound)\n[ > player ] -> [ > player walkMarker ]\n\n(move player and caramel cubes)\n[ > player | caramel ] -> [ > player | > caramel ]\n[ > caramel | caramel ] -> [ > caramel | > caramel ]\n\n\n(add stop to edges)\nleft [ left player ] [ edgeV | stopCaramel ] -> [ left player ] [ edgeV stopV | stopCaramel ]\ndown [ down player ] [ edgeH | stopCaramel ] -> [ down player ] [ edgeH stopH | stopCaramel ]\n[ right player ] [ edgeV stopCaramel ] -> [ right player ] [ edgeV stopV stopCaramel ]\n[ up player ] [ edgeH stopCaramel ] -> [ up player ] [ edgeH stopH stopCaramel ]\n\n(add stopC)\nleft [ left player ] [ edgeC | wallH ] -> [ left player ] [ edgeC stopC | wallH ]\ndown [ down player ] [ edgeC | wallV ] -> [ down player ] [ edgeC stopC | wallV ]\n[ right player ] [ edgeC wallH ] -> [ right player ] [ edgeC stopC wallH ]\n[ up player ] [ edgeC wallV ] -> [ up player ] [ edgeC stopC wallV ]\n\n\n(propagate force from player to edges)\n[ left player edgeV no stopV ] -> [ left player left edgeV ]\n[ down player edgeH no stopH ] -> [ down player down edgeH ]\nright [ right player | edgeV no stopV ] -> [ right player | right edgeV ]\nup [ up player | edgeH no stopH ] -> [ up player | up edgeH ]\n\n(propagate force between edges)\n[ moving edgeV edgeC no stopC ] -> [ moving edgeV moving edgeC ]\n+ [ moving edgeH edgeC no stopC ] -> [ moving edgeH moving edgeC ]\n+ [ moving edgeC edgeV no stopV ] -> [ moving edgeC moving edgeV ]\n+ [ moving edgeC edgeH no stopH ] -> [ moving edgeC moving edgeH ]\n+ down [ moving edgeC | edgeV no stopV ] -> [ moving edgeC | moving edgeV ]\n+ left [ moving edgeC | edgeH no stopH ] -> [ moving edgeC | moving edgeH ]\n+ up [ moving edgeV | edgeC no stopC ] -> [ moving edgeV | moving edgeC ]\n+ right [ moving edgeH | edgeC no stopC ] -> [ moving edgeH | moving edgeC ]\n\n(propagate force from edges to caramel cubes)\nleft [ left edgeV | caramel ] -> [ left edgeV | left caramel ]\ndown [ down edgeH | caramel ] -> [ down edgeH | down caramel ]\n[ right edgeV caramel ] -> [ right edgeV right caramel ]\n[ up edgeH caramel ] -> [ up edgeH up caramel ]\n\n(add stretch)\n[ left edgeC stopV ] -> [ left edgeC stopV stretchLeft ]\n[ down edgeC stopH ] -> [ down edgeC stopH stretchDown ]\n[ right edgeC stopV ] -> [ right edgeC stopV stretchRight ]\n[ up edgeC stopH ] -> [ up edgeC stopH stretchUp ]\ndown [ left edgeC | stopV ] -> [ left edgeC stretchLeft | stopV ]\nleft [ down edgeC | stopH ] -> [ down edgeC stretchDown | stopH ]\ndown [ right edgeC | stopV ] -> [ right edgeC stretchRight | stopV ]\nleft [ up edgeC | stopH ] -> [ up edgeC stretchUp | stopH ]\n\n(stretch sound)\n[ stretch ] [ walkMarker ] -> [ stretch ] [ ] sfx2\n[ walkMarker ] -> [ ] sfx0\n\n(collapse edges moving against stopC)\n[ left edgeH stopC ] -> [ stopC ]\n[ down edgeV stopC ] -> [ stopC ]\nright [ right edgeH | stopC ] -> [ | stopC ]\nup [ up edgeV | stopC ] -> [ | stopC ]\n\n(collapse edges moving against walls)\nhorizontal [ > edgeH | wallH ] -> [ | wallH ]\nvertical [ > edgeV | wallV ] -> [ | wallV ]\n\n(collapse edges moving against stationary edges)\n[ > edgeH | stationary edgeH ] -> [ | stationary edgeH ]\n[ > edgeV | stationary edgeV ] -> [ | stationary edgeV ]\n\n\n(remove markers)\n[ stopCaramel ] -> [ ]\n[ stopEdge ] -> [ ]\n\n\n\n(connect walls)\nleft [ wall no wallV | wall ] -> [ wall wallV | wall ]\ndown [ wall no wallH | wall ] -> [ wall wallH | wall ]\ndown [ wallV no wallC | wallV ] -> [ wallV wallC | wallV ]\n\n(caramel on target?)\nlate [ caramel1 target ] -> [ caramel2 target ] sfx1\nlate [ caramel2 no target ] -> [ caramel1 ]\n\n(stretch edges)\nlate left [ stretchLeft | ] -> [ | edgeH ]\nlate down [ stretchDown | ] -> [ | edgeV ]\nlate [ stretchRight ] -> [ edgeH ]\nlate [ stretchUp ] -> [ edgeV ]\n\n(add edges around caramel cubes)\nlate [ caramel no edgeH ] -> [ caramel edgeH ]\nlate [ caramel no edgeV ] -> [ caramel edgeV ]\nlate up [ caramel | no edgeH ] -> [ caramel | edgeH ]\nlate right [ caramel | no edgeV ] -> [ caramel | edgeV ]\n\n(re-assign edgeC)\nlate [ edgeC ] -> [ ]\nlate [ edgeV no edgeC ] -> [ edgeV edgeC ]\nlate [ edgeH no edgeC ] -> [ edgeH edgeC ]\nlate up [ edgeV | no edge ] -> [ edgeV | edgeC ]\nlate right [ edgeH | no edge ] -> [ edgeH | edgeC ]\n\n\n==============\nWINCONDITIONS\n==============\n\nall target on caramel\n\n======= \nLEVELS\n=======\n\nMessage Sokoban + Caramel Cubes = Caramelban\n\n#####################\n#.......#####.......#\n#.......#####...#...#\n#....*...*.##.....t.#\n#.......##.##.....t.#\n#.......##..........#\n#...#...#####...p...#\n#.......#####.......#\n#####################\n\n\nMessage You win!\n\n\n\n", [1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 2, 1, 3, 3, 2, 1, 0, 1, 2, 2, 2, 0, 0, 0, 1, 1, 1, 2, 2, 3, 3, 0, 1, 2, 2, 2, 3, 3, 0, 0, 0, 0, 2, 1, 0, 0, 3, 3, 0, 3, 2, 1, 2, 3, 3, 3, 1, 1, 2, 1, 2, 2, 3, 3, 0, 0, 0, 3, 3, 3, 1, 1, 1, 0, 0, 0, 3, 2, 2, 0, 2, 2, 2, 1, 2, 2, 3, 0, 1, 0, 0, 3, 0, 3, 3, "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", "undo", 0, 1, 0, 0, 3, 3, 2, 1, 1, 1, 1, 3, 3, 3, 3, 2, 2, 2, 1, 0, 0, 1, 0, 3, 3, 1, 1, 1, 1, 1, 0, 0, 0, 3, 2, 3, "undo", 0, 3, 3, 2, 1, 3, 3, 3, 1, 2, 2, 3, 1, 2, 3, 1, 1, 1, 2, 0, 3, 3, 3, 3, 2, 2, 1, 0, 0, 0, 1, 0, 3, 3, 3, 3, 1, 1, 2, 1, 1, 1, 0, 3, 1, 1, 3, 3, 3, 1, 1, 0, 0, 3, 2, 0, 3, 2, 3, 3, 2, 3, 3, 3, 2, 0, 0, 1, 1, 0, 1, 0, 1, 1, 2, 2, 2, 3, 3, 0, 0, 1, 0, 1, 1, 3, 3, 3, 2, 3, 3, 3, 2, 0, 1, 1, 3, 3, 2], "background wall wallh:0,0,0,0,0,0,0,0,background wall:1,background wall wallv:2,background:3,3,3,3,3,3,3,2,2,3,3,\n3,3,3,3,3,2,2,3,3,3,3,3,3,3,2,2,3,3,3,3,3,\n1,3,2,2,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,2,\n2,background edgec edgeh:4,background caramel1 edgec edgeh edgev:5,3,3,3,3,3,2,background wall wallh wallv:6,background edgec wall wallh:7,background edgec edgev wall:8,background edgec edgeh edgev:9,0,0,0,0,2,background wall wallc wallh wallv:10,10,2,\n4,10,10,10,10,2,10,10,2,4,background edgec edgeh playerr:11,5,10,10,2,10,10,6,7,8,background edgec edgev:12,\n10,10,2,10,10,10,10,2,3,10,10,2,2,3,3,3,3,3,3,3,2,\n2,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,2,2,3,1,\n3,3,3,3,3,2,2,3,3,3,3,3,3,3,2,2,3,3,background target:13,13,3,\n3,3,2,2,3,3,3,3,3,3,3,2,6,0,0,0,0,0,0,0,2,\n", 1, "1645572641748.1404"] - ], - [ - "Paralelism", - ["title Paralelism\nauthor Stingby12 {Remix of Octat by Increpare}\nhomepage https://www.puzzlescript.net/play.html?p=7e1e5c5b3cd9de65085e46bfb0a8d002\n\nbackground_color #233F5C\ntext_color #C294FA\n\nnoundo\nrequire_player_movement\n\n(A port of a flash game I made. The original's here:\n\nhttp://ded.increpare.com/~locus/octat/\n\n)\n\n========\nOBJECTS\n========\n\nBackground\n#3F72A6\n.....\n.000.\n.000.\n.000.\n.....\n\nactivetile\n#60ADFA\n00000\n0...0\n0...0\n0...0\n00000\n\nTarget\n#634B80\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nHorPlayer\n#C294FA\n..0..\n.000.\n.000.\n.000.\n..0..\n\nOrtPlayer\n#C294FA\n.....\n.000.\n.000.\n.000.\n.....\n\nVerPlayer\n#C294FA\n.....\n.000.\n00000\n.000.\n.....\n\nvoid 0\n#233F5C\n\ntemp\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\nP = ortplayer and activetile\na = activetile\nx = Target\ny = target and activetile\nplayer = HorPlayer or VerPlayer or OrtPlayer\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nvoid\nactivetile\nplayer\ntemp\nTarget\n\n======\nRULES\n======\n\n[ > player | no activetile ] -> cancel\n\nhorizontal [> verplayer | ] -> [ | ortplayer ]\nhorizontal [> ortplayer | ] -> [ | horplayer ]\nhorizontal [> horplayer | ] -> [ | horplayer ]\n\nvertical [> horplayer | ] -> [ | ortplayer ]\nvertical [> ortplayer | ] -> [ | verplayer ]\nvertical [> verplayer | ] -> [ | verplayer ]\n\n[ activetile | ortplayer ] -> [ temp | ortplayer ]\n[ no temp | ortplayer ] -> [ activetile | ortplayer ]\n\nvertical [ activetile | horplayer ] -> [ temp | horplayer ]\nvertical [ no temp | horplayer] -> [ activetile | horplayer ]\n\nhorizontal [ activetile | verplayer ] -> [ temp | verplayer ]\nhorizontal [ no temp | verplayer] -> [ activetile | verplayer ]\n\n[ temp ] -> []\n\nlate [activetile void ] -> [ void ]\n\n==============\nWINCONDITIONS\n==============\n\nsome player on target\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 10\n\n..........\n..........\n..........\n..........\n..........\n.x...ap...\n..........\n..........\n..........\n..........\n\nmessage Level 2 of 10\n\n...........\n...........\n...........\n...........\n...........\n....xpa....\n...........\n...........\n...........\n...........\n\n\nmessage Level 3 of 10\n\n...........\n...........\n...........\n...........\naaaaaaa..aa\n..y....ap..\naaaaaaa..aa\n...........\n...........\n...........\n\nmessage Level 4 of 10\n\n...........\n...........\n...a.......\n..aaa......\n.aaaaa.....\naaayaaa.ap.\n.aaaaa.....\n..aaa......\n...a.......\n...........\n\nmessage Level 5 of 10\n\n.a.a.a.a.\n000000000\n..aaa....\n.xaaa.ap.\n..aaa....\n000000000\n.a.a.a.a.\n\nmessage Level 6 of 10\n\n.a.a.a.a.a.\n00000000000\n.a.a.a.a.a.\naxa.a.a.apa\n.a.a.a.a.a.\n00000000000\n.a.a.a.a.a.\n\nmessage Level 7 of 10\n\n0aaaa..00\n0aaaa...0\ny..aa..ap\n0aaaa...0\n0aaaa..00\n\nmessage Level 8 of 10\n\n....0000...\n.......0...\n..00.0.0...\n.a...ap.ax.\n..00.0.0...\n.......0...\n....0000...\n\nmessage Level 9 of 10\n\naaayaaa\na0a0a0a\n.......\n0a0a0a0\n.......\na0a0a0a\naaapaaa\n\nmessage Level 10 of 10\n\n..aa..aa0aaa.aaa0aaa.\n.a0a.a0...a..a0a0.a..\n.p0a.a...0a00aaa..a..\n.a0a.a0..0a00a0a.0a0.\n.aa...aa00a00a0a.0y0.\n\nmessage My white square brother will be proud of what I did !\n\n(\nmessage level 1 of 8\n\n..........\n..........\n..........\n..........\n..........\n.x...ap...\n..........\n..........\n..........\n..........\n\nmessage level 2 of 8\n\n...........\n...........\n...........\n...........\n...........\n....xpa....\n...........\n...........\n...........\n...........\n\n\nmessage level 3 of 8\n\n\n...........\n...........\n...........\n...........\n..a........\n.axaaap....\n..a........\n...........\n...........\n...........\n\nmessage level 4 of 8\n\n\n...........\n...........\n...a.......\n..a.a......\n.a.a.a.....\na.aya.a.ap.\n.a.a.a.....\n..a.a......\n...a.......\n...........\n\nmessage level 5 of 8\n\n\n...........\n...........\n...........\n...........\naaaaaaaaaaa\n...y..ap...\naaaaaaaaaaa\n...........\n...........\n...........\n\nmessage level 6 of 8\n\n\n000000....0\n000000..0.0\n000000..0..\n000000000..\n....A...0.0\n.AY.A...AAP\n....A...0.0\n000000000..\n000000..0..\n000000..0.0\n000000....0\n\nmessage level 7 of 8\n\n\n..AAA...000\n.AY.A...AP.\n..AAA...000\n\nmessage level 8 of 8\n\n\n0AAAA..00\n0AAAA..00\nYAAAA..AP\n0AAAA..00\n0AAAA..00\n\nmessage the end\n)\n\n", [3, 1, 0, 3, 2, 1, 2, 1, 1, 0, 0, 3, 1, 1, 1, 0, 1, 2, 3, 2, 1, 2, 2, 0, 3, 0, 1, 0, 3, 0, 3, 2, 1, 2, 1, 2, 0, 3, 0, 3, 0, 3, 2, 3, 0, 3, 1, 2, 3, 1, 0, 2, 1, 2], "background:0,activetile background ortplayer:1,0,0,0,0,0,activetile background:2,0,0,0,\n0,0,0,2,2,background void:3,2,3,0,0,0,\n0,3,2,3,0,0,3,0,0,0,2,\n0,3,3,0,3,0,3,2,3,3,0,\n2,0,2,0,3,3,3,3,0,3,3,\n3,0,0,0,2,0,0,0,0,0,0,\nbackground target:4,0,0,0,0,0,0,0,0,0,0,\n", 15, "1645572899761.3071"] - ], - [ - "Psyshic push", - ["title Psyshic push\nauthor Stingby12\nhomepage https://stingby12.itch.io/\n\ntext_color #DB524D\nbackground_color #6C478F\n\nrun_rules_on_level_start\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\n#6C478F\n\nWall\n#A163DB\n\nStopper\n#A163DB\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nPlayer\n#7BDB58\n.000.\n.000.\n00.00\n.000.\n.0.0.\n\nMovecheckL\n#5EA843\n.....\n.....\n.000.\n.....\n.....\n\nMovecheckR\n#5EA843\n.....\n.....\n.000.\n.....\n.....\n\nMovecheckU\n#5EA843\n.....\n..0..\n..0..\n..0..\n.....\n\nMovecheckD\n#5EA843\n.....\n..0..\n..0..\n..0..\n.....\n\nMovestop\n#7BDB58\n.....\n...0.\n.000.\n.0...\n.....\n\nTarget\n#8F2E2B\n.....\n.0.0.\n.000.\n.0.0.\n.....\n\nCrate\n#DB524D\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n+ = Player and Target\n* = Crate\n@ = Crate and Target\nO = Target\n% = Player and Stopper\nx = Stopper\n- = Player and Movestop\n8 = Crate and Movestop\ns = Movestop\n\nMovecheck = MovecheckL or MovecheckR or MovecheckU or MovecheckD\nBlocking = Crate or Wall or Stopper\nSightBlocking = Crate or Wall or Movestop\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx0 80929902 (Blocked)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget, Stopper, Movestop\nPlayer, Wall, Crate\nMovecheckL\nMovecheckR\nMovecheckU\nMovecheckD\n\n======\nRULES\n======\n\n(I tried to place a [...] in the basic push and ended up with something cool. I tried to ajust the code and ended up with something like this.)\n\nlate left [Player | no Movecheck no SightBlocking] -> [Player | MovecheckL]\nlate right [Player | no Movecheck no SightBlocking] -> [Player | MovecheckR]\nlate up [Player | no Movecheck no SightBlocking] -> [Player | MovecheckU]\nlate down [Player | no Movecheck no SightBlocking] -> [Player | MovecheckD]\n\nlate left [MovecheckL | no Movecheck no SightBlocking] -> [MovecheckL | MovecheckL]\nlate right [MovecheckR | no Movecheck no SightBlocking] -> [MovecheckR | MovecheckR]\nlate up [MovecheckU | no Movecheck no SightBlocking] -> [MovecheckU | MovecheckU]\nlate down [MovecheckD | no Movecheck no SightBlocking] -> [MovecheckD | MovecheckD]\n\n(This code generate 4 lines of Movechecks (one of each direction). These are blocked by a group called \"SightBlocking\")\n\n[> Player | ... | Movecheck | Crate] -> [Player | ... | Movecheck | > Crate]\n[> Player | Crate] -> [> Player | > Crate]\n[> Crate | Blocking] -> [Crate | Blocking] sfx0\n\n[Movecheck] -> []\n\n(Bottom code is the easiest to understand. Keep in mind that rule 149 and rule 150 are completly different.)\n(Rule 155 is just for clearing)\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nSome Target (ignore this rule)\n\n=======\nLEVELS\n=======\n\nmessage Cover all targets with crates.\n\nmessage Level 1 of 16\n\n(Surprise level that shows the main mechanic)\n#######\n#..*.o#\n#..*.o#\n#p.*.o#\n#..*.o#\n#..*.o#\n#######\n\nmessage Level 2 of 16\n\n(If you are directly next to the crate you can push and move at the same time.)\n#####\n#...#\n#...#\n#...#\n##*##\n#...#\n#.+.#\n#####\n\nmessage Level 3 of 16\n\n#######\n#.....#\n#o@@*p#\n#.....#\n#..####\n####...\n\nmessage Level 4 of 16\n\n.#######\n.#.....#\n.#.o*o.#\n##.*p*.#\n#..o*o.#\n#......#\n########\n\nmessage Level 5 of 16\n\n(Like this level design.)\n#########.\n#@......##\n#*......*#\n#@....*.@#\n#*......*#\n##....+.@#\n.#########\n\nmessage Level 6 of 16\n\n.######.\n##....##\n#@.*..*#\n#*..*.@#\n#@.*..*#\n#*.oo+@#\n########\n\nmessage Level 7 of 16\n\n..#####\n###@*@#\n#*....#\n#@.**.#\n#*....#\n#@....#\n##.o+.#\n.######\n\nmessage Level 8 of 16\n\n..#####..\n.##@*@##.\n##.....##\n#@.o*o.@#\n#*.*.*.*#\n#@.o*o.@#\n#*.....*#\n##..p..##\n.##*@*##.\n..#####..\n\nmessage Level 9 of 16\n\n....####\n.####..#\n.#.....#\n##.*xo.#\n#..*xo.#\n#..*xo.#\n#...#p.#\n########\n\nmessage Level 10 of 16\n\n(This is the old first level that uses the Blockers. I wanted an easier level for that.)\n####...\n#xx###.\n#o.*.##\n#ox*..#\n#ox*p.#\n#ox*..#\n#o.*.##\n#xx###.\n####...\n\nmessage Level 11 of 16\n\n#######\n#xxxxx#\n#xo*ox#\n#x*o*x#\n#x*o*x#\n#xo*ox#\n#xx%xx#\n#######\n\nmessage Level 12 of 16\n\n(I couldn't find anything simpler without chessing.)\n######...\n#*..o#...\n##.#.###.\n.#px8x.#.\n.###.#.#.\n...#.#.##\n...#...*#\n...######\n\nmessage Level 13 of 16\n\n####..\n#.o#..\n#..###\n#8...#\n#op*.#\n#..###\n####..\n\nmessage Level 14 of 16\n\n######\n#....#\n#....#\n#*88*#\n#....#\n#o+oo#\n######\n\nmessage Level 15 of 16\n\n#########..\n#oo*..*.###\n#+o8..8...#\n#oo*..8...#\n####..#####\n...####....\n\nmessage Level 16 of 16\n\n(Probably the last level I'll make.)\n.......###..\n########@##.\n#@......p.##\n#*..*..*..@#\n#@.s.oo.s.*#\n#*.s.oo.s.@#\n#@..*..*..*#\n#*........##\n########*##.\n.......###..\n\nmessage Great work, you pushed like it was nothing !\n\n", [2, 2, 2, 2, 3, 0, 0, 0, 1, 1, 0, 0, 3, 3, 1, 2, "undo", "undo", 2, 0, 3, 3, 2, 2, 1, 1, 3, 1, 2, 2, 2, 3, 1, 2, 3, 1, 1, 0, 0, 1, 3, 2, 0, 0, 3, 3, 1, 1, 2, 2, 2, 1, 1, 3, 3, 1, 1, 1, 1, 1, 0, 0, 3, 1, 2, 1, 0, 3], "background:0,background wall:1,1,1,1,1,1,1,1,0,0,1,\nbackground crate target:2,background crate:3,2,3,2,3,1,0,0,1,0,background movecheckl:4,\n3,0,3,0,1,0,0,1,background movechecku:5,background player:6,background movestop:7,7,\n0,0,1,0,0,1,0,background movecheckr:8,0,0,0,0,\n1,0,0,1,0,8,background target:9,9,0,0,1,0,\n0,1,0,3,9,9,0,0,1,0,1,1,\n0,0,0,0,0,3,1,1,1,2,0,0,\n7,7,0,0,3,1,1,1,0,0,0,0,\n0,0,1,1,0,1,1,2,3,2,3,1,\n1,0,0,0,1,1,1,1,1,1,0,0,\n", 32, "1645573610754.0828"] - ], - [ - "I wanna change my position", - ["title I wanna change my position\nauthor competor\nhomepage competor.itch.io\nbackground_color #2A0E3A\ntext_color #fe6c90\nrequire_player_movement\nrun_rules_on_level_start\nrealtime_interval 0.1\nagain_interval 0.08\n\n========\nOBJECTS\n========\n\nBackground\n#2A0E3A #2A073A #260E35 #2F0E3A\n01021\n21310\n10101\n01213\n23010\n\nTarget\n#F5F5F5\n.....\n.....\n..0..\n.....\n.....\n\nWall\n#F5F5F5 #FEAFC2 #fe6c90 #CD577B #87286a #6B1F54\n01112\n12223\n12223\n12223\n34445\n\n\nPlayer\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459 \n.121.\n.020.\n41214\n54445\n.5.5.\n\nanim_p1\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459 #2A0E3A\n66216\n60266\n41614\n64465\n65656\n\nanim_p2\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459 #2A0E3A\n66616\n60266\n61.64\n66466\n65656\n\nanim_p3\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459 #2A0E3A\n66.66\n6.2.6\n.1...\n6.4.6\n66.56\n\nanim_p4 \n#87286a #2A0E3A\n11..1\n....1\n.....\n10001\n11.11\n\nanim_p5 \n#87286a #2A0E3A\n1...1\n..0..\n.0.0.\n.000.\n1...1\n\nCrate\n#87286a\n.....\n.000.\n.0.0.\n.000.\n.....\n\nanim_c1\n#87286a\n.....\n..0..\n.0.0.\n.000.\n.....\n\nanim_c2\n#87286a\n.....\n.....\n.0.0.\n.000.\n.....\n\nanim_c3\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459\n.....\n..2..\n..2..\n.444.\n.....\n\nanim_c4\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459\n.....\n..2..\n.12.4\n.444.\n.5.5.\n\nanim_c5\n#F5F5F5 #FB6A8E #fe6c90 #d03791 #87286a #452459\n..2..\n.020.\n41.14\n.44.5\n.5.5.\n\nantiCrate\n#fe6c90 #d03791\n..1..\n.101.\n10.01\n.101.\n..1..\n\nmemory\ntransparent\n.....\n..0..\n.0.0.\n..0..\n.....\n\nanim0\n#2a0e3a\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim1\n#351149\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim2\n#401559\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim3\n#571d86\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim4\n#571d86\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim5\n#401559\n.000.\n0...0\n0...0\n0...0\n.000.\n\nanim6\n#351149\n.000.\n0...0\n0...0\n0...0\n.000.\n\nme\ntransparent\n.....\n.....\n..0..\n.....\n.....\n\nfloor\n#B08CC5 #B080B5 #B07CC5 #A575A5\n01021\n21310\n10101\n01213\n23010\n\n\n\ntargetWithCrates\ntransparent\ntargetWithoutCrates\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\n: = antiCrate\n; = antiCrate and Target\nO = Target\na = floor\nb = Player and floor\nc = Crate and floor\nd = Crate and Target and floor\ne = antiCrate and floor\nf = antiCrate and Target and floor\ng = Target and floor\nh = Crate and memory\n\n\n\ncrates = Crate or antiCrate\nobstacle = Wall or crates\nanims = anim0 or anim1 or anim2 or anim3 or anim4 or anim5 or anim6\nanimswap = anim_p1 or anim_p2 or anim_p3 or anim_p4 or anim_p5 or anim_c1 or anim_c2 or anim_c3 or anim_c4 or anim_c5\n=======\nSOUNDS\n=======\nrestart 53933706\nCrate move 36681907\nantiCrate move 36681907\n(Plates MOVE 209907)\nendlevel 7121610\nPlayer cantmove 53676504\ncancel 53676504\n\nsfx0 8992509 (falling)\nsfx1 87861307 (up)\nsfx2 65232307 (down)\nsfx3 93691109 (save)\nsfx4 24089507 (on crate)\nsfx5 14894304 \nsfx6 36681907 (on snow)\nsfx7 76479500 (show hint)\nsfx8 55581906 (hide hint)\nsfx9 98183507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\n\nfloor\n\nanims\n\nTarget\nPlayer, Wall, Crate,antiCrate\nanimswap\n\nmemory\nme\ntargetWithCrates,targetWithoutCrates\n\n======\nRULES\n======\n\n(sound init)\n[targetWithCrates] -> []\n[targetWithoutCrates]->[]\n[Target no crates] -> [Target targetWithoutCrates]\n[Target crates] -> [Target targetWithCrates crates]\n\n(push)\n[ > Player | Crate ] -> [ > Player | > Crate > me ]\n[ > Player | antiCrate ] -> [ > Player | > antiCrate ]\n[moving Crates][stationary Crate memory] -> [moving Crates][stationary Crate]\n\n(swap)\n[anim_p5][ anim_c5 ] -> [Crate][ Player ] \n[anim_p4][ anim_c4 ] -> [anim_p5][ anim_c5 ] again\n[anim_p3][ anim_c3 ] -> [anim_p4][ anim_c4 ] again\n[anim_p2][ anim_c2 ] -> [anim_p3][ anim_c3 ] again\n[anim_p1][ anim_c1 ] -> [anim_p2][ anim_c2 ] again\n[action Player no floor ][stationary Crate memory] -> [floor anim_p1][ anim_c1 ] sfx3 again\n[action Player floor ][stationary Crate memory] -> cancel \n\n\n(memory push)\n\n[ > crates memory ] -> [> crates]\n\n\n(sound)\nlate [Target targetWithCrates no crates] -> [Target] sfx8\nlate [Target targetWithoutCrates crates] -> [Target crates] sfx7\n\n(memory)\nlate [ me no crates ] -> []\nlate [ me ] -> [ memory ]\n\n\n(anim)\n[stationary Player][stationary anim6] -> [Player][action anim0]\n[stationary Player][stationary anim5] -> [Player][action anim6]\n[stationary Player][stationary anim4] -> [Player][action anim5]\n[stationary Player][stationary anim3] -> [Player][action anim4]\n[stationary Player][stationary anim2] -> [Player][action anim3]\n[stationary Player][stationary anim1] -> [Player][action anim2]\n[stationary Player][stationary anim0] -> [Player][action anim1]\n[memory no anims] -> [memory anim0]\nlate [anims no memory] -> []\n\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on crates\n\n=======\nLEVELS\n=======\nmessage Press X to swap.\n\naaa#####\naaa#...#\naaa#.o.#\n###.*..#\n#..p.###\n#.*.#aaa\n#o..#aaa\n#####aaa\n\nmessage You and the last crate you pushed are swapped.\n\naaaaaaaa\na######a\na#.po.#a\na#*##o#a\na#o##*#a\na#..*.#a\na######a\naaaaaaaa\n\nmessage You can swap only if the color of your standing tile is purple.\n\n.##..##.\n########\n##ga.g##\n.##cc##.\n.##ba##.\n##a.aa##\n########\n.##..##.\n\nmessage When you swapped, the color of your tile disappears.\n\naaaaaaaa\na######a\na#.pg.#a\na#*##g#a\na#g##*#a\na#..*.#a\na######a\naaaaaaaa\n\n\n..###...\n..#p##..\n.##*.##.\na#g.*g#a\na#g**g#a\na##aa##a\naa####aa\naaaaaaaa\n\n\n########\n#.*gg*.#\n#p####.#\n#.a#ga.#\n##cg#a##\n#..aa..#\n#.ca#a.#\n########\n\n\n.#####..\n.#g#g#..\n.#gpg#..\n.#*#*#..\n.#.#.#..\n.#*.*#..\n.#.#.#..\n.#####..\n\n\n######..\n#agcg###\n#accc.a#\n#agcg###\n##.#.#..\n.#g#b#..\n.#####..\n........\n\n\n########\n#aa#gcg#\n#c#aa#a#\n#aaca#c#\n##g#ba.#\n#a.a#.a#\n#aacgag#\n########\n\n\n########\n#..cg.p#\n#a####.#\n#c#..#c#\n#g#..#g#\n#.####*#\n#..aag.#\n########\n\n\nmessage Congrats!\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", 0, "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", 4, "tick", "tick", "tick", "tick", "tick", "tick", 1, "tick", "tick", 3, "tick", 2, "tick", "tick", 4, "tick", 1, "tick", 0, "tick", "tick", 0, "tick", 3, "tick", "tick", 3, "tick", "tick", 2, "tick", "tick", "tick", 1, "tick", "tick", "tick", 2, "tick", "tick", 2, "tick", "tick", "tick", "tick", "tick", "tick", "tick", 4, "tick", 3, "tick", 3, "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", 4, "tick", "tick", "tick", 1, "tick", "tick", 1, "tick", 1, "tick", "tick", "tick", 0, "tick", "tick", 1, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background wall:0,0,0,0,0,background:1,1,1,\n0,background floor:2,2,2,0,0,0,1,\n0,background floor player target targetwithoutcrates:3,anim2 background crate floor memory:4,background floor target targetwithoutcrates:5,background crate floor:6,5,0,1,\n0,2,2,6,0,0,0,1,\n0,background crate floor target targetwithcrates:7,2,5,6,2,0,1,\n0,0,2,0,0,0,0,1,\n1,0,2,0,1,1,1,1,\n1,0,0,0,1,1,1,1,\n", 11, "1645574132967.735"] - ], - [ - "Isle of Bloks", - ["title Isle of Bloks\n\ncolor_palette gameboycolour\n\nbackground_color #242b26\nkey_repeat_interval 0.12\nrealtime_interval 0.1\n========\nOBJECTS\n========\n(colors:\n#CADC9F - white\n#0f380f - dark\n#306230 - green\n#8bac0f - light green 1\n#9bbc0f - light green 2\n\ncustom \n#242b26 - black\n#3e4a40 - darkgray\n#4c5a4e\t- light darkgray\n#88a68d - gray\n#709277 - gray but slightly darker\n#ddebdf - white\n)\n\n\nbackground\n#3e4a40 #374239\n00000\n11000\n00000\n00011\n00000\n\nbground1\n#3e4a40 #374239\n00000\n11000\n00000\n00011\n00000\n\nbground2\n#3e4a40 #374239\n00000\n11000\n00000\n00011\n00000\n\nbground3\n#3e4a40 #374239\n11000\n00000\n00011\n00000\n00000\n\nbground4\n#3e4a40 #374239\n11000\n00000\n00011\n00000\n00000\n\nbground5\n#3e4a40 #374239\n00000\n00011\n00000\n00000\n11000\n\nbground6\n#3e4a40 #374239\n00000\n00011\n00000\n00000\n11000\n\nbground7\n#3e4a40 #374239\n00011\n00000\n00000\n11000\n00000\n\nbground8\n#3e4a40 #374239\n00011\n00000\n00000\n11000\n00000\n\nbground9\n#3e4a40 #374239\n00000\n00000\n11000\n00000\n00011\n\nbground10\n#3e4a40 #374239\n00000\n00000\n11000\n00000\n00011\n\nbground10anim\ntransparent\n\n(player animations)\n\nplayerStandR\n#ddebdf #242b26 #88a68d #709277\n00000\n00101\n22222\n33333\n.1.1.\n\nplayer1R\n#ddebdf #242b26 #88a68d #709277\n00000\n00101\n22222\n33333\n.1.1.\n\nanim1R\n#ddebdf #242b26 #88a68d\n00000\n00101\n22222\n22222\n.1.1.\n\nplayer2R\n#ddebdf #242b26 #88a68d #709277\n00000\n00101\n22222\n33333\n1...1\n\nanim2R\n#ddebdf #242b26 #88a68d\n00000\n00101\n22222\n22222\n1...1\n\nplayer1L\n#ddebdf #242b26 #88a68d #709277\n00000\n10100\n22222\n33333\n.1.1.\n\nanim1L\ntransparent\n\nplayer2L\n#ddebdf #242b26 #88a68d #709277 #FFFFFF\n00000\n10100\n22222\n33333\n1...1\n\nplayerswap1R\n#ddebdf #242b26 #88a68d #709277\n00000\n00000\n22222\n33333\n.1.1.\n\nplayerswap2R\n#ddebdf #242b26 #88a68d #709277 #FFFFFF\n44444\n00000\n00000\n22222\n33333\n\nanim2L\ntransparent\n\nplayerinactive\n#ddebdf #242b26 #88a68d #709277 #FFFFFF\n44444\n00000\n00000\n22222\n33333\n\n(player tops)\nplayerBoxTopInactive\n#88a68d\n.....\n.....\n.....\n.....\n00000\n\nplayerBoxTop\n#88a68d\n.....\n.....\n.....\n00000\n00000\n\nplayerTop\n#FFFFFF\n.....\n.....\n.....\n00000\n00000\n\nplayerTopInactive\n#FFFFFF\n.....\n.....\n.....\n.....\n00000\n\n(swap animations)\n\nplayerBoxInactive\n#ddebdf #242b26 #88a68d #709277\n22222\n33333\n33333\n33333\n33333\n\nplayerBoxSwapAnim1R\n#ddebdf #242b26 #88a68d #709277\n33333\n33333\n33333\n33333\n.1.1.\n\n(playerbox animations)\nplayerBox1R\n#ddebdf #242b26 #88a68d #709277\n33333\n33131\n33333\n33333\n.1.1.\n\nanimBox1R\ntransparent\n\nplayerBox2R\n#ddebdf #242b26 #88a68d #709277\n33333\n33131\n33333\n33333\n1...1\n\nanimBox2R\ntransparent\n\nplayerBox1L\n#ddebdf #242b26 #88a68d #709277\n33333\n13133\n33333\n33333\n.1.1.\n\nanimBox1L\ntransparent\n\nplayerBox2L\n#ddebdf #242b26 #88a68d #709277 #FFFFFF\n33333\n13133\n33333\n33333\n1...1\n\nanimBox2L\ntransparent\n()\n\n(------------------------------------------level elements)\nwall\ntransparent\n\nbox\n#242b26 #88a68d #709277 #3e4a40\n11111\n22222\n22222\n22222\n33333\n\nboxtop\n#242b26 #88a68d #709277\n.....\n.....\n.....\n11111\n11111\n\nbutton\n#242b26 #88a68d\n00000\n01110\n01010\n01110\n00000\n\npressedbutton\n#242b26 #88a68d\n00000\n01110\n01010\n01110\n00000\n\n(---------------------------------------island generation)\nland\n#CADC9F\n\ncornerLandTR\n#CADC9F #242b26\n00000\n00000\n00000\n00000\n10000\n\ncornerLandTL\n#CADC9F #242b26\n00000\n00000\n00000\n00000\n00001\n\ncornerLandDL\n#CADC9F #242b26\n0000.\n00000\n00000\n00000\n00000\n\ncornerLandDR\n#CADC9F #242b26\n.0000\n00000\n00000\n00000\n00000\n\ncliff\n#242b26 #242b26\n00000\n11111\n00000\n00000\n11111\n\ncornerCliffTR\n#242b26 #242b26\n10000\n01111\n00000\n10000\n.1111\n\ncornerCliffTL\n#242b26 #242b26\n00000\n11111\n00000\n00001\n1111.\n\n(----------------------------------transition objects)\nblackscreen1\n#242b26\n\nblackscreen2\n#242b26\n.000.\n00000\n00000\n00000\n.000.\n\nblackscreen3\n#242b26\n..0..\n.000.\n00000\n.000.\n..0..\n\nblackscreen4\n#242b26\n.....\n..0..\n.000.\n..0..\n.....\n\nblackscreen5\n#242b26\n.....\n.....\n..0..\n.....\n.....\n\noutscreen1\n#242b26\n0....\n0....\n0....\n0....\n0....\n\noutscreen2\n#242b26\n00...\n00...\n00...\n00...\n00...\n\noutscreen3\n#252b26\n000..\n000..\n000..\n000..\n000..\n\noutscreen4\n#252b26\n0000.\n0000.\n0000.\n0000.\n0000.\n\noutscreen5\n#252b26\n\n(--------------------------------------------decor)\ntreebase0\n#242b26 #88a68d #709277\n.....\n....1\n...10\n...0.\n.....\n\ntreebase1\n#242b26 #88a68d #709277\n.1122\n11122\n00022\n...00\n.....\n\ntreebase2\n#242b26 #88a68d #709277\n2....\n22...\n002..\n..0..\n.....\n\ntreestem1\n#88a68d #709277\n01.00\n.0001\n.0001\n.0011\n.0011\n\ntreecanopyMB\n#88a68d #709277 #242b26 #323b34\n33333\n33333\n33332\n22222\n122.0\n\ntreecanopyLB\n#88a68d #709277 #242b26 #323b34\n33333\n33333\n23333\n.2222\n..220\n\ntreecanopyLLB\n#88a68d #709277 #242b26 #323b34\n....3\n....2\n.....\n.....\n.....\n\ntreecanopyMM\n#88a68d #709277 #242b26 #323b34\n33333\n33333\n33333\n33333\n33333\n\ntreecanopyMT\n#323b34\n.....\n.....\n.....\n.000.\n00000\n\ntreecanopyLM\n#323b34\n...00\n..000\n.0000\n00000\n00000\n\ntreecanopyRM\n#323b34\n00...\n000..\n0000.\n00000\n00000\n\ntreecanopyRB\n#88a68d #709277 #242b26 #323b34\n33333\n33333\n23332\n2222.\n.22..\n\nbush\n#88a68d #709277 #242b26 #323b34\n00011\n00011\n00111\n21122\n.222.\n\nbushtop\n#88a68d #709277 #242b26 #323b34\n.....\n.....\n.001.\n00011\n00011\n\n(-----------------------------------------------------variables)\n(tracks buttons)\nbuttonState\ntransparent\n\nbuttonStateOff\ntransparent\n\n(------------------------------------------------------water?? tiles)\nshallowWater\n#a6c45d\n\nshallowWaterLRD\n#a6c45d\n.....\n.....\n00000\n00000\n00000\n\nshallowWaterBottom\n#a6c45d #323b34\n00000\n00000\n11111\n11111\n11111\n\nshallowWaterUp\n#a6c45d \n\nshallowWaterFull\n#a6c45d\n\n(---------------------------------------------------------smoke)\nsmoke1L\n#ddebdf\n.....\n.....\n..00.\n.00..\n..000\n\nsmoke2L\n#ddebdf\n.....\n.....\n.....\n.....\n000..\n\nsmoke1R\n#ddebdf\n.....\n.....\n00...\n.00..\n00...\n\nsmoke2R\n#ddebdf\n.....\n.....\n.....\n.....\n..000\n\nrestart1\n#CADC9F\n.000.\n.0.0.\n.0.0.\n.000.\n.....\n\nrestart2\n#CADC9F\n.000.\n.0...\n.00..\n.0...\n.....\n\nrestart3\n#ddebdf\n0.000\n..0..\n..000\n....0\n0.000\n\nrestart4\n#ddebdf\n.000.\n.0...\n.000.\n...0.\n.000.\n\nrestart5\n#ddebdf\n.00..\n.0.0.\n.00..\n.0.0.\n.0.0.\n\nrestartanim1\ntransparent\n\nrestartanim2\ntransparent\n\nrestartanim3\ntransparent\n\nrestartanim4\ntransparent\n\nrestartanim5\ntransparent\n=======\nLEGEND\n=======\n\nbgroundanim = bground1 or bground2 or bground3 or bground4 or bground5 or bground6 or bground7 or bground8 or bground9 or bground10 or bground10anim\n\nplayerbox = playerBox1R or playerBox2R or animBox1R or animBox2R or animBox1L or animBox2L or playerBox1L or playerBox2L\n\nplayer = player1R or player2R or anim1R or anim2R or player1L or anim1L or player2L or anim2L or playerBox\n\nplayerswapanim = playerswap1R or playerswap2R\nplayerboxswapanim = playerBoxSwapAnim1R\n\nblackscreen = blackscreen1 or blackscreen2 or blackscreen3 or blackscreen4 or blackscreen5\n\noutscreen = outscreen1 or outscreen2 or outscreen3 or outscreen4 or outscreen5\n\ncliffs = cliff or cornerCliffTR or cornerCliffTL\n\nground = land or cornerLandTR or cornerLandTL or cornerLandDL or cornerLandDR\n\ntree = treebase0 or treebase1 or treebase2\ntreedec = treestem1 or treecanopyMB or treecanopyLB or treecanopyLLB or treecanopyMM or treecanopyMT or treecanopyLM or treecanopyRM or treecanopyRB\n\nshallow = shallowWaterLRD or shallowWaterUp or shallowWater or shallowWaterFull\n\nsmoke = smoke1L or smoke2L or smoke1R or smoke2R\n\nrestart = restart1 or restart2 or restart3 or restart4 or restart5 or restartanim1 or restartanim2 or restartanim3 or restartanim4 or restartanim5\n\np = playerStandR and land and blackscreen1\n# = land and blackscreen1\nx = land and box and blackscreen1\no = button and land and blackscreen1\n. = background and blackscreen1\nl = land and treebase1 and blackscreen1\nc = bush and land and blackscreen1\ne = playerBoxInactive and land and blackscreen1\nw = buttonStateOff and blackscreen1\nm = shallowWaterLRD and blackscreen1\n1 = restart1\n2 = restart2\n\n=======\nSOUNDS\n=======\n\nsfx0 21839507\nsfx1 35644707\nsfx2 69260304\nsfx3 38107505\nbox move 20210107\nstartlevel 93909903\nsfx4 42654903\nsfx5 62394902\nrestart 16186705\nundo 44484905\n\n================\nCOLLISIONLAYERS\n================\nbackground\n(island decor layer)\nbgroundanim\nground,cliffs, shallowWaterBottom\nshallow, shallowWaterUp\n(tree layer)\ntree,treedec\n(decor layer)\nbush\n(interactive Layer)\nbutton,pressedbutton,buttonState,buttonStateOff\n(main layer)\nplayer,wall, box, playerStandR, playerBox, playerBoxInactive, playerswapanim,playerboxswapanim,playerinactive\n(\"3d\" layer)\nboxtop,playerBoxTop,playerBoxTopInactive, playerTop, playerTopInactive,bushtop\n(fx layer)\nsmoke, restart\n(fade in/out layer)\nblackscreen,outscreen\n\n\n======\nRULES\n======\n(gives control back to player)\n[playerStandR no blackscreen no outscreen]->[player1R]\n\n(----------------------------------------------transitions)\n(generates opening animation)\n[blackscreen5]->[]\n[blackscreen4]->[blackscreen5]\n[blackscreen3]->[blackscreen4]\n[blackscreen2]->[blackscreen3]\n[blackscreen1]->[blackscreen2]\n\n(background animation)\n[bground9]->[bground10anim]\n[bground8]->[bground9]\n[bground7]->[bground8]\n[bground6]->[bground7]\n[bground5]->[bground6]\n[bground4]->[bground5]\n[bground3]->[bground4]\n[bground2]->[bground3]\n[bground1]->[bground2]\n[bground10]->[bground1]\n[bground10anim]->[bground10]\n[background no bgroundanim]->[background bground1]\n\n(generates closing animation)\n[outscreen4] -> [outscreen5]\n[outscreen3] -> [outscreen4]\n[outscreen2] -> [outscreen3]\n[outscreen1] -> [outscreen2]\n[buttonState][background no outscreen] -> [buttonState][background outscreen1] sfx4\nlate [buttonState][player] -> [buttonState][playerStandR]\n\n(generates smoke animation)\n[smoke2R] -> []\n[smoke1R] -> [smoke2R]\n[smoke2L] -> []\n[smoke1L] -> [smoke2L]\n(----------------------------------------------------level)\n(generates decoration and walls)\nlate[background no ground] -> [background wall]\nlate up[wall no ground no shallowWater | ground ] -> [wall cliff |ground]\nlate up[box | no boxtop] -> [box | boxtop ]\nlate[bush no wall] -> [bush wall]\n(generates detailed cliffs)\nlate right[no ground no cliffs | cliff | cliffs no cornerCliffTR]-> [|cornerCliffTR|cliff]\nlate right[no ground no cliffs | cliff | ground no cornerCliffTR]-> [|cornerCliffTR|ground]\nlate right[ cliff | no ground no cliffs]-> [cornerCliffTL|]\n\ndown[shallowWaterLRD | no shallowWaterBottom no shallow no ground] -> [shallowWaterLRD | shallowWaterBottom]\ndown[shallowWaterLRD | shallowWaterLRD ] -> [shallowWaterLRD | shallowWaterFull]\ndown[shallowWaterFull | shallowWaterLRD ] -> [shallowWaterLRD | shallowWaterFull]\nlate up[shallowWaterFull | no shallow] -> [shallowWaterLRD | ]\n\n(for single-tile cliffs)\nlate horizontal[no cliffs no ground| cliffs | no cliffs no ground] -> [|cliff|]\n\n(generates detailed land)\nlate right[no ground | land | ground]-> [|cornerLandTR|ground]\nlate up [ ground\t| cornerLandTR | ground] -> [ground | land | ground]\nlate right[ ground | land | no ground]-> [ground|cornerLandTL|]\nlate up [ ground\t| cornerLandTL | ground] -> [ground | land | ground]\nlate up [ ground | cornerLandTL | no ground] -> [ground | cornerLandDL | ]\nlate up [ ground | cornerLandTR | no ground] -> [ground | cornerLandDR | ]\n\n(generates tree)\nright[no tree | treebase1 | no tree] -> [treebase0 | treebase1 | treebase2 ]\nup[ treebase1 | no treestem1 ] -> [ treebase1 | treestem1 ]\nup[ treestem1 | no treecanopyMB ] -> [ treestem1 | treecanopyMB ]\nright[ no treecanopyLB | treecanopyMB | no treecanopyRB ] -> [ treecanopyLB|treecanopyMB | treecanopyRB ]\nright[ no treecanopyLLB | treecanopyLB ] -> [ treecanopyLLB|treecanopyLB ]\nup[ treecanopyMB | no treecanopyMM ] -> [ treecanopyMB | treecanopyMM ]\nup[ treecanopyMM | no treecanopyMT ] -> [ treecanopyMM | treecanopyMT ]\nright[treecanopyMM | no treedec ] -> [treecanopyMM|treecanopyRM]\nleft[treecanopyMM | no treedec] -> [treecanopyMM | treecanopyLM]\n\n(generates tree collision)\n[treebase1] -> [treebase1 wall]\n\n(-----------------------------------------------------player)\n(steps left from facing right)\nleft [> player1R] -> [> anim1L]\nleft [> player2R] -> [> anim2L]\nright [> player1L] -> [> anim1R]\nright [> player2L] -> [> anim2R]\n\n(step animation)\nright up down[> player1R] -> [> anim1R]\nright up down[> player2R] -> [> anim2R]\n[> anim1R] -> [> player2R]sfx0\n[> anim2R] -> [> player1R]sfx1\n\nleft up down[> player1L] -> [> anim1L]\nleft up down[> player2L] -> [> anim2L]\n[> anim1L] -> [> player2L]sfx0\n[> anim2L] -> [> player1L]sfx1\n\n(---------------playerbox animations)\n\n(steps left from facing right)\nleft [> playerbox1R] -> [> animbox1L]\nleft [> playerbox2R] -> [> animbox2L]\nright [> playerbox1L] -> [> animbox1R]\nright [> playerbox2L] -> [> animbox2R]\n\n(step animation)\nright up down[> playerbox1R] -> [> animbox1R]\nright up down[> playerbox2R] -> [> animbox2R]\n[> animbox1R] -> [> playerbox2R]sfx0\n[> animbox2R] -> [> playerbox1R]sfx1\n\nleft up down[> playerbox1L] -> [> animbox1L]\nleft up down[> playerbox2L] -> [> animbox2L]\n[> animbox1L] -> [> playerbox2L]sfx0\n[> animbox2L] -> [> playerbox1L]sfx1\n\n(-----------------------------------)\n\n(pushes box)\n[> player | box] -> [> player | > box]\n[> player | playerBoxInactive] -> [> player | > playerBoxInactive]\n\n(pushes box into shallow)\n[ > box | shallow wall | ] -> [ smoke1L | land | smoke1R] sfx5\n[ > player | shallow wall | ] -> [ smoke1L | land | smoke1R] sfx5 \n\n(button)\n[> box | button] -> [> box | button]sfx2\n[> player | button] -> [> player | button]sfx2\n[> player | pressedbutton] -> [> player | pressedbutton]sfx2\n[box button] -> [box pressedbutton]\n[player button] -> [player pressedbutton]sfx2\n[playerStandR button] -> [playerStandR pressedbutton]\n[pressedbutton no player no box no playerStandR no playerbox] -> [button]\n\n(-----------------------------swap)\n\n(player -> box)\n[playerBoxSwapAnim1R]->[playerBox1R]\n[playerswap1R][playerTop][playerBoxInactive] -> [playerswap2R][playerTopInactive][playerBoxSwapAnim1R]\n[action player][playerBoxInactive] -> [playerswap1R][playerBoxInactive]sfx3\n\n(box -> player)\n[playerswap2R]->[playerBox1R]\n[playerswap1R][playerTop][playerBoxInactive] -> [playerswap2R][playerTopInactive][playerBoxSwapAnim1R]\n[action playerbox][playerswap2R] -> [playerBoxSwapAnim1R][playerswap1R]sfx3\n\n(manages extra tiles of movable entities)\n[boxtop] -> []\nlate up[box|no boxtop]->[box|boxtop]\n[playerBoxTop] -> []\nlate up[playerBox|no playerBoxTop]->[playerBox|playerBoxTop]\n[playerBoxTopInactive] -> []\nlate up[playerBoxInactive | ] -> [playerBoxInactive | playerBoxTopInactive]\n[playerTop] -> []\nlate up[playerStandR |no playerTop] -> [playerStandR | playerTop]\nlate up[player |no playerTop] -> [player | playerTop]\nlate up[bush | no bushtop] -> [bush | bushtop]\n\n\n(--------------------------------------------win condition)\n\n[buttonStateOff][pressedbutton][no button] -> [buttonState][pressedbutton][]\n[buttonState][button] -> [buttonStateOff][pressedbutton]\n[buttonState][player] -> [buttonState][playerStandR]\n==============\nWINCONDITIONS\n==============\nno buttonStateOff\nall buttonState on outscreen5\n\n=======\nLEVELS\n=======\nMessage WELCOME TO THE ISLE OF BLOKS\n\n(1)\nw..............\n...............\n...............\n.......##lc#...\n...cl#######...\n...####xo#o#...\n...#########...\n...#p###.......\n...###.........\n...............\n...............\n\nmessage NEW BOX+\n(2)\nw.............\n..............\n...###..c##...\n...#o#..co#...\n...####x###...\n...#x#..c##...\n...#p#..cx#...\n...###..###...\n..............\n..............\n\nmessage TOO MANY BOXES\n(3)\nw...............\n................\n..........cl....\n.....ox#xx#x....\n.....x#x##x#....\n.....#x#x##x....\n....cx####p#....\n................\n................\n\nmessage A HOLE NEW MECHANIC\n(4)\nw.............\n..............\n...###...#l#..\n...#x#xm###...\n...#p#...x#...\n...#o#..o##...\n..............\n..............\n\nmessage BUILD-A-BRIDGE\n(5)\nw.................\n..................\n..................\n....###.....#l#...\n....####m####x#...\n...###x...#x###...\n..o##p#...cc#.....\n...#####m##o#.....\n..................\n..................\n\nmessage BEWARE OF POTHOLES\n(6)\nw.................\n..................\n.......#o#........\n.......#m#........\n.......#cm........\n...o...###..#l....\n...#####x######...\n...m.#mm##mp#x#...\n...#######m..##...\n...##.............\n..................\n..................\n\nmessage HOLESOME\n(7)\nw.................\n..................\n...........####...\n...........#xx#...\n...........x###...\n...#mmmmmm##x#x#..\n...ommmmmm#x#p##..\n..................\n..................\n\nmessage HOTDOG STYLE\nw........................\n.....##.....##...........\n.....#######x######......\n...om#p#....m....#x#m#...\n......######x#######.....\n...........##.....##.....\n.........................\n\nmessage BOXING RING\n(8)\nw.............\n..............\n...mmmmmmmm...\n...mo####om...\n...m###x##m...\n...m#####xm...\n...m#x#p##m...\n...m###x##m...\n...mox###om...\n...mmmmmmmm...\n..............\n..............\n\n(11)\nmessage ISLE OF BOXES, OF BOXES AND BRIDGES\nw..................\n...................\n...................\n........#lc#o#.....\n...........###.....\n......mmmmm#x#.....\n...####mxmm###.....\n...#px#mmmmm.......\n...##x#....#####...\n...####....#x#o#...\n...........#####...\n...................\n...................\n\nmessage RING OF THE BOX\n(9)\nw..............\n...............\n...####.####...\n...#xo#m##p#...\n...####.####...\n...###...#x#...\n....m.....m....\n...###...###...\n...####.####...\n...#x##m##x#...\n...####.####...\n...............\n\nmessage CONSTRUCTION CREW\n(10)\nw....................\n.....................\n..........o.....#l...\n...####..c#.######...\n...##x####mm#x##x#...\n...###x#p#mmox##x#...\n...#o#####mm#x##x#...\n..........#.cc.......\n..........o..........\n.....................\n.....................\n", ["tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick", 0, "tick", 1, "tick", "tick", 1, "tick", 0, "tick", 1, "tick", 1, "tick", 0, "tick", 3, "tick", "tick", "tick", "tick", "tick", 4, "tick", "tick", 4, 0, "tick", "tick", 3, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "undo", "tick", "tick", 2, "tick", "tick", 2, "tick", 3, "tick", "tick", "tick", 2, "tick", 3, "tick", 2, "tick", 1, "tick", "tick", 0, "tick", 3, "tick", "tick", 3, "tick", 3, "tick", "tick", 3, "tick", 3, "tick", "tick", 3, 2, "tick", "tick", 2, "tick", 1, "tick", 0, "tick", 3, "tick", 0, 1, "tick", "tick", 1, "tick", 1, "tick", "tick", 1, "tick", "tick", "tick", "tick", 1, "tick", 0, "tick", 1, "tick", 2, "tick", "tick", 3, "tick", "tick", "tick", 1, "tick", 2, "tick", 3, "tick", 2, 1, "tick", "tick", 1, "tick", "tick", 1, "tick", "tick", 1, "tick", "tick", "tick", 3, "tick", "tick", "tick", 0, "tick", "tick", "tick", "tick", "tick", "tick", "tick", "tick"], "background bground3 buttonstateoff wall:0,background bground3 wall:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,background bground3 button land:2,background bground3 cornerlandtr:3,background bground3 cornerclifftr shallowwaterlrd wall:4,background bground3 cornerlanddr:5,3,background bground3 cornerclifftr wall:6,1,1,1,1,1,1,1,\nbackground bground3 land:7,background bground3 boxtop cliff wall:8,background bground3 box land:9,background bground3 cornerlandtl:10,background bground3 cornerclifftl wall:11,1,1,1,1,1,1,1,7,7,7,background bground3 cliff wall:12,1,1,\n1,1,1,1,1,1,7,7,7,12,1,1,1,1,5,7,7,7,\n7,7,7,12,1,1,1,1,2,background bground3 bushtop cliff shallowwaterlrd wall:13,background bground3 bush cornerlanddl wall:14,7,7,7,7,12,1,1,\n1,1,background bground3 cornerlanddl:15,7,background bground3 cornerclifftl shallowwaterlrd wall:16,15,7,7,10,11,1,1,1,1,1,1,1,1,\n7,background bground3 cliff shallowwaterlrd wall:17,background bground3 shallowwaterfull wall:18,background bground3 shallowwaterbottom wall:19,1,1,1,1,1,background bground3 treecanopyllb wall:20,1,1,7,3,6,1,1,1,\n1,1,background bground3 treecanopylm wall:21,background bground3 treecanopylb wall:22,1,background bground3 cornerlanddr treebase0:23,7,7,12,1,1,1,1,background bground3 treecanopymt wall:24,background bground3 treecanopymm wall:25,background bground3 treecanopymb wall:26,background bground3 treestem1 wall:27,background bground3 cornerlanddl treebase1 wall:28,\n7,7,3,6,1,1,1,1,background bground3 treecanopyrm wall:29,background bground3 treecanopyrb wall:30,1,background bground3 treebase2 wall:31,15,7,10,11,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n", 11, "1645574325242.0908"] - ], - [ - "SokokoS", - ["title SokokoS\nauthor Notan\nhomepage https://notaninart.itch.io\nbackground_color #350828\ntext_color #f9cb60\nnorepeat_action\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nPalette1\n#151244 #60117f #922a95 #be7dbc #350828\n01234\n12340\n23401\n34012\n40123\n\nPalette2\n#7f6962 #f9cb60 #f9960f #bc2f01 #680703\n01234\n12340\n23401\n34012\n40123\n\nBackground\n#350828\n\nWall\n#7f6962#680703\n00010\n11111\n01000\n11111\n00010\n\nPlayer\n#be7dbc #151244\n.000.\n01010\n01010\n00000\n.000.\n\nCrate\n#f9960f\n00000\n0...0\n0...0\n0...0\n00000\n\n\nPlayerGuide\n#be7dbc #151244\n.....\n.....\n..0..\n.....\n.....\n\nCrateGuide\n#f9960f\n.....\n.....\n..0..\n.....\n.....\n\nTarget\n#7f6962\n.....\n.000.\n.0.0.\n.000.\n.....\n\nMirror\n#f9cb60\n..0..\n..0..\n..0..\n..0..\n..0..\n\nMarker\ntransparent\n\n=======\nLEGEND\n=======\n\nObstacle = Crate or Wall\nGuide = PlayerGuide or CrateGuide\n\nPalette = Palette1 or Palette2\nX = Palette1\nY = Palette2\n\n. = Background\n# = Wall\nI = Mirror\nP = Player\n╋ = Crate\n╬ = Target\nH = Mirror and Wall\n& = Crate and Target\n@ = Crate and Wall\n\n=======\nSOUNDS\n=======\n\n\nsfx0 22463707 (walk)\nsfx1 67079507 (push 10471704)\nsfx2 03111065 (flip)\nsfx3 10471704 (walk unused)\nsfx4 41314507 (walk unused)\nsfx5 10471704 (push unused)\nUndo 21479104 (72060504 60450507)\nrestart 46704309\nstartgame 21069303\nclosemessage 21069303\n(startlevel 67233309)\nendlevel 32515109\n(endgame 21069303)\ntitlescreen 21069303\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPalette\nTarget, Wall\nGuide\nPlayer\nCrate\nMirror\nMarker\n\n======\nRULES \n======\n\n[ > player no obstacle | no obstacle ] -> [ | player ] sfx0\n[ > player no obstacle | crate no wall | no obstacle ] -> [ | player | crate ] sfx1\n[ > player ] -> [ player ]\n\n[ action player ] -> sfx2\n\nhorizontal [ action player ] [ no marker | mirror | no marker ] -> [ action player ] [ marker | mirror | marker ]\nright [ | marker no crate | ... | marker no crate | ] -> [ marker | | ... | | marker ]\n+ horizontal [ | marker crate | ... | marker no crate | ] -> [ marker | | ... | crate | marker ]\n+ right [ | marker crate | ... | marker crate | ] -> [ marker | crate | ... | crate | marker ]\n[ marker ] -> [ ]\n\nhorizontal [ action player | ... | mirror ] -> [ player | ... | marker mirror ]\nright [ | marker mirror | ] -> [ marker | mirror | marker ]\nright [ | marker no player | ... | marker no player | ] -> [ marker | | ... | | marker ]\n+ horizontal [ marker player | ... | marker ] -> [ | ... | player ]\n[ marker ] -> [ ]\n\nlate [ guide ] -> [ ]\nlate horizontal [ no marker | mirror | no marker ] -> [ marker | mirror | marker ]\nlate right [ | marker no crate | ... | marker no crate | ] -> [ marker | | ... | | marker ]\n+ late horizontal [ | marker crate | ... | marker no crate | ] -> [ marker | crate | ... | crateGuide | marker ]\n+ late right [ | marker crate | ... | marker crate | ] -> [ marker | crate CrateGuide | ... | crate crateGuide | marker ]\nlate [ marker ] -> [ ]\n\nlate horizontal [ player | ... | mirror ] -> [ player | ... | marker mirror ]\nlate right [ | marker mirror | ] -> [ marker | mirror | marker ]\nlate right [ | marker no player | ... | marker no player | ] -> [ marker | | ... | | marker ]\n+ late horizontal [ marker player | ... | marker ] -> [ player | ... | playerGuide ]\nlate [ marker ] -> [ ]\n\n==============\nWINCONDITIONS\n==============\n\nall target on crate\n\n======= \nLEVELS\n=======\n\n\nMessage Press X | X sserP\n\n\n(\n######h######\n##..╬.i╬...##\n##...╬i.╬..##\n######h##╋###\n#...##h##..##\n#.#.##h##..##\n#...#.h..#╋##\n#####.h.╋.╋.#\n#####.h##...#\n#...#.h##.#.#\n#.p.#.i.....#\n#...##h######\n######h######\n\n\n######h######\n##..╬.i╬...##\n##...╬i.╬..##\n######h##╋###\n######h##...#\n######h##...#\n#####.h..#╋##\n#####.h.╋.╋.#\n#####.h##...#\n#...#.h##.#.#\n#.p.#.i.....#\n#...##h######\n######h######\n)\n\n#######h#######\n####...i#╬╬####\n####..#i.╬╬####\n#######h#╋#####\n####..#h#.#####\n####.##h#.#####\n####...h.╋#####\n######.h.╋.╋..#\n######.h#..##.#\n##...#.h##.##.#\n##.p.#.i......#\n##...##h#######\n#######h#######\n\n\nMessage You win! | !niw ouY\n\n", [3, 4, 0, 0, 0, 1, 1, 4, 3, 2, 2, 2, 3, 3, 3, 3, 0, 0, 0, 3, 1, 2, 0, 3, 4, 0, 4, 1, 2, 0, 2, 3, 2, 2, 1, 1, 4, 0, 0, 0, 0, 1, 3, 2, 2, 2, 2, 3, 3, 3, 3, 0, 0, 0, 1, 0, 4, 1, 3, 3, 2, 4, 4, 0, 1, 1, 0, 0, 3, 4, 0, 0, 4, 1, 0, 3, 3, 2, 3, 2, 3, 3, 2, 2], "background wall: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,background crateguide wall:1,0,background:2,2,2,0,0,0,0,0,0,0,\n0,0,0,2,2,2,0,0,2,2,0,2,2,background crateguide:3,0,\n0,2,2,2,0,0,2,2,0,background playerguide:4,1,2,1,0,0,\n0,0,0,0,2,0,0,0,0,2,2,2,2,2,0,\n0,background mirror wall:5,background mirror:6,6,5,5,5,5,5,5,5,6,5,5,0,\n0,2,0,0,0,2,2,0,0,2,0,0,0,background target:7,7,\n2,background player:8,background crate:9,2,9,2,0,2,0,0,0,7,7,0,0,\n0,background crate wall:10,2,2,2,2,0,0,0,0,0,0,0,0,0,\n2,0,0,2,0,0,0,0,0,0,0,0,0,9,0,\n0,2,0,0,0,0,0,0,0,0,0,2,2,2,2,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n", 1, "1645642394866.7083"] - ], - [ - "rigid disablement applies to whole rule-groups", - ["title rigid disablement applies to whole rule-groups\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | crate ] -> [ > player | crate ]\n\n\n\nup [ > Player | Crate ] -> [ > Player | > Crate ] \n+ rigid horizontal [ > Player | Crate ] -> [ > Player | > Crate ] \n+ rigid down [ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.............\n.............\n.............\n.....*.......\n.....p.......\n........p*#..\n.............\n...*p........\n.......p.....\n.......*.....\n.............\n.............\n.............\n\n",[4],"background: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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,background crate:1,0,0,0,0,0,\n0,0,0,0,0,0,0,background player:2,0,0,0,0,0,\n0,0,0,1,2,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,2,1,0,0,0,\n0,0,0,0,0,2,0,0,0,0,0,0,0,\n0,0,0,0,0,1,0,0,0,0,0,0,0,\n0,0,0,0,0,background wall:3,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,0,0,0,0,0,\n",0,"1646700547379.7295"] - ], - [ - "rigid applies to movements even if the movements were already present in the cell before rule application [i.e. if the rule doesn't do anything]", - ["title rigid applies to movements even if the movements were already present in the cell before rule application [i.e. if the rule doesn't do anything]\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | crate ] -> [ > player | crate ]\n\n[ player | target ] -> [ > player | target ]\n\n+ right [ > Player | Crate ] -> [ > Player | > Crate ] \n+ left [ > Player | Crate ] -> [ > Player | > Crate ] \n\nup [ > Player | Crate ] -> [ > Player | > Crate ] \n+ rigid right [ > Player | Crate ] -> [ > Player | > Crate ] \n+ rigid left [ > Player | Crate ] -> [ > Player | > Crate ] \n+ down [ > Player | Crate ] -> [ > Player | > Crate ] \n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.............\n.............\n.....#.......\n.....*.o.....\n.....p.p.....\n...op...p*#..\n.............\n...*p...po...\n.....p.p.....\n.....o.*.....\n.............\n.............\n.............\n\n\n\n", [4], "background: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,\n0,0,0,0,0,0,0,background crate:1,0,0,0,0,0,\n0,0,0,0,0,background player target:2,0,background player:3,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,background wall:4,1,3,0,0,0,0,2,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,2,0,0,0,0,3,1,0,0,0,\n0,0,0,0,0,3,0,0,0,0,0,0,0,\n0,0,0,0,0,1,0,2,0,0,0,0,0,\n0,0,0,0,0,4,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,0,0,0,0,0,\n", 0, "1646645466460.093"] - ], - [ - "rigid applies to movements even if the movements are chagned by subsequent non-rigid rules in other groups", - ["title rigid applies to movements even if the movements are chagned by subsequent non-rigid rules in other groups\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nrigid right [ right Player ] -> [ up Player ] \n\n\n[ up Player ] -> [ left player ] \n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#p....\n........\n...p....\n........\n\n\n", [3], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\n0,0,0,0,0,background player:2,0,2,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646647163086.0168"] - ], - [ - "rigid applies to movements even if the objects are changed to different objects in the same layer", - ["title rigid applies to movements even if the objects are changed to different objects in the same layer\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nrigid [ Player ] -> [ left Player ] \n\n[ player ] -> [ crate ]\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#p....\n........\n...p....\n........\n\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\nbackground crate:2,0,2,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646647382066.4045"] - ], - [ - "rigid applies to movements even if they are removed and subsequently readded", - ["title rigid applies to movements even if they are removed and subsequently readded\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nrigid [ Player ] -> [ left Player ] \n\n[ crate | player ] -> [ crate | stationary player ]\n[ crate | player ] -> [ crate | < player ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#p....\n........\n...p....\n........\n\n\n", [3], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\n0,0,0,0,0,background player:2,0,2,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646647562594.771"] - ], - [ - "rigid applies to movements even if they are removed", - ["title rigid applies to movements even if they are removed (along with their objects) and subsequently readded\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nrigid [ Player ] -> [ left Player ] \n\n[ crate | player ] -> [ crate | ]\n[ crate | ] -> [ crate | < player ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#p....\n........\n...p....\n........\n\n\n", [3], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\n0,0,0,0,0,background player:2,0,2,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646647631710.7463"] - ], - [ - "rigid applies to movements even if the initial movement applied is an ACTION that is later changed to a movement", - ["title rigid applies to movements even if the initial movement applied is an ACTION that is later changed to a movement\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n\nrigid [ crate ] -> [ action crate ] \n\n\n[ action crate ] -> [ left crate ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n", [3], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\nbackground crate:2,0,2,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\nbackground player:3,0,0,0,0,0,0,0,\n", 0, "1646647810474.9294"] - ], - [ - "rigid applies to movements even if the initial movement applied is an STATIONARY that is later changed to a movement", - ["title rigid applies to movements even if the initial movement applied is an STATIONARY that is later changed to a movement\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid [ crate ] -> [ stationary crate ] \n\n\n[ stationary crate ] -> [ left crate ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,background crate:2,\n0,2,0,0,0,0,0,0,\n0,0,0,background player:3,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646647871326.5627"] - ], - [ - "rigid DOES NOT apply to objects if the rule is totally inert except for triggering SFX", - ["title rigid DOES NOT apply to objects if the rule is totally inert except for triggering SFX\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid right [ wall | crate ] -> [ wall | crate ] sfx0 \n\n\n[ up crate ] -> [ left crate ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,background crate:2,0,0,\n2,0,0,0,0,0,0,0,\n0,0,0,background player:3,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646648625330.979"] - ], - [ - "rigid DOES NOT apply to objects if a movement on the RHS is removed implicitly [by not mentioning a movement matched on the LHS]", - ["title rigid DOES NOT apply to objects if a movement on the RHS is removed implicitly [by not mentioning a movement matched on the LHS]\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid right [ wall | up crate ] -> [ wall | crate ] \n\n\n[ stationary crate ] -> [ left crate ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,0,\nbackground crate:2,2,0,0,0,0,0,0,\n0,0,0,background player:3,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646648958460.208"] - ], - [ - "rigid DOES apply to objects if a movement on the RHS is removed explicitly [by not mentioning a movement matched on the LHS]", - ["title rigid DOES apply to objects if a movement on the RHS is removed explicitly [by not mentioning a movement matched on the LHS]\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid right [ wall | up crate ] -> [ wall | stationary crate ] \n\n\n[ stationary crate ] -> [ left crate ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,background crate:2,\n0,2,0,0,0,0,0,0,\n0,0,0,background player:3,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646649072656.4766"] - ], - [ - "rigid DOES apply to objects if a movement on the RHS is removed explicitly, even if the object is replaced by another one on the same layer", - ["title rigid DOES apply to objects if a movement on the RHS is removed explicitly, even if the object is replaced by another one on the same layer\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid right [ wall | up crate ] -> [ wall | stationary crate ] \n\n\n[ stationary crate ] -> [ left player ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,0,0,0,background crate:2,\n0,2,0,0,0,0,0,0,\n0,0,0,background player:3,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646649296576.2854"] - ], - [ - "rigid DOES NOT apply to objects if a movement on the RHS is assigned, and later the object is replaced by an object on another layer", - ["title rigid DOES NOT apply to objects if a movement on the RHS is assigned, and later the object is replaced by an object on another layer\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall and target\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ crate ] -> [ up crate ]\n\nrigid right [ wall | up crate ] -> [ wall | down crate ] \n\n\n[ down crate ] -> [ left target ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n........\n..#*....\n.....p..\n...*....\n........\n\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,background target wall:1,0,0,0,0,\nbackground target:2,background crate:3,0,0,0,0,0,0,\n0,0,0,background player:4,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646649418277.2751"] - ], - [ - "misc rigid test", - ["title misc rigid test\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall \nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nTarget\n\n======\nRULES\n======\n\nrigid [ crate ] -> [ left crate ]\n\nright [ wall | crate ] -> [ wall | ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n........\n........\n..#*....\n.....p..\n...*....\n........\n........\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\nbackground wall:1,0,background crate:2,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,background player:3,0,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646698655056.5757"] - ], - [ - "rigid: even removing and re-adding an object doesn't remove the rigid tag from that position and layer.", - ["title rigid: even removing and re-adding an object doesn't remove the rigid tag from that position and layer.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall \nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nTarget\n\n======\nRULES\n======\n\nrigid [ crate ] -> [ left crate ]\n\ndown [ wall | crate ] -> [ wall | ]\n\ndown [ wall | ] -> [ wall | up crate ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n........\n...#....\n...*....\n.....p..\n...*....\n........\n........\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,background wall:1,background crate:2,\n0,2,0,0,0,0,0,0,\n0,0,0,0,0,0,background player:3,0,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646698763919.0374"] - ], - [ - "rigid: even a rigid rule removing an object marks the position/layer of the removed object as rigid.", - ["title rigid: even a rigid rule removing an object marks the position/layer of the removed object as rigid.\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall \nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nTarget\n\n======\nRULES\n======\n\n\n[ crate ] -> [ left crate ]\n\nrigid down [ wall | crate ] -> [ wall | ]\n\ndown [ wall | crate ] -> [ wall | right crate ]\n\ndown [ wall | no crate ] -> [ wall | up crate ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n........\n...#....\n...*....\n.....p..\n...*....\n........\n........\n\n", [4], "background:0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n0,0,background crate:1,0,0,0,background wall:2,0,\n0,0,0,0,0,0,1,0,\n0,0,0,0,0,0,background player:3,0,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n", 0, "1646699000524.8464"] - ], - [ - "One player, unlimited rigidbodies", - ["title One player, unlimited rigidbodies\nauthor increpare\nhomepage www.increpare.com\n\n(\n\nThis is a sample of \n\n- Unlimited rigid bodies\n- 1 Player (should be extendable)\n\nIt's made as an example for the extended rigid body tutorial here:\n\nhttps://www.puzzlescript.net/Documentation/rigidbodies.html\n\n)\n\n========\nOBJECTS\n========\n\nBackground\ngreen\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\nYellow orange\n00000\n01110\n01110\n01110\n00000\n\n\n(The directional overlays bellow establish connections between crates)\n\nCrate_U\norange\n.000.\n.....\n.....\n.....\n.....\n\nCrate_D\norange\n.....\n.....\n.....\n.....\n.000.\n\nCrate_L\norange\n.....\n0....\n0....\n0....\n.....\n\nCrate_R\norange\n.....\n....0\n....0\n....0\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n\nw = crate and Crate_U\nx = crate and Crate_D\na = crate and Crate_L\nd = crate and Crate_R\n\ne = crate and Crate_U and Crate_L\nz = crate and Crate_D and Crate_L\nq = crate and Crate_U and Crate_R\nc = crate and Crate_D and Crate_R\n\nr = crate and Crate_L and Crate_R\nt = crate and Crate_D and Crate_U\n\n1 = crate and Crate_D and Crate_L and Crate_R\n2 = crate and Crate_U and Crate_L and Crate_R\n3 = crate and Crate_U and Crate_D and Crate_L\n4 = crate and Crate_U and Crate_D and Crate_R\n\n0 = crate and Crate_U and Crate_D and Crate_L and Crate_R\n\n5 = crate\n\nCrate_Connection = Crate_U or Crate_D or Crate_L or Crate_R\n\nPusher = Player or Crate\nPushable = Crate or crate_connection\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nCrate_U\nCrate_D\nCrate_L\nCrate_R\n\n======\nRULES\n======\n\n(for making maps easily: uncomment out the other lines press action to discard all boundaries and recreate them)\n\n( [ action player ] [ crate_connection ] -> [ action player ] [ ] )\n( up [ action player ] [ crate | crate ] -> [ action player ] [ crate crate_u | crate crate_d ] )\n( right [ action player ] [ crate | crate ] -> [ action player ] [ crate crate_r | crate crate_l ] )\n\n[ > Pusher | Pushable ] -> [ > Pusher | > Pushable ]\n+ up [ moving crate Crate_U | crate ] -> [ moving crate Crate_U | moving crate ]\n+ down [ moving crate Crate_D | crate ] -> [ moving crate Crate_D | moving crate ]\n+ left [ moving crate Crate_L | crate ] -> [ moving crate Crate_L | moving crate ]\n+ right [ moving crate Crate_R | crate ] -> [ moving crate Crate_R | moving crate ]\n\n[ moving crate stationary crate_connection ] -> [ moving crate moving crate_connection ]\n\n[ > crate | wall ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n###############\n#.............#\n#..ca...ca.dz.#\n#.ce..d1e...w.#\n#.t....w......#\n#.w.d1a..5.5..#\n#....w....5...#\n#......dz.....#\n#...p...t..dz.#\n#..x..cre...w.#\n#..w..w...5...#\n#.............#\n###############\n",[1,1,2,3,3,2,3,2,3,3,0,0,0,0,0,3,0,1,1,1,1,2,1,1,0,0,3,0,3,2,3,3,3],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,\n1,background crate crate_d crate_r:2,background crate crate_d crate_u:3,background crate crate_u:4,1,1,1,1,1,1,0,0,1,2,background crate crate_l crate_u:5,\nbackground crate crate_r:6,1,1,1,1,1,1,1,0,0,1,background crate crate_l:7,1,background crate crate_d crate_l crate_r:8,4,\n1,1,1,1,1,1,0,0,1,6,1,7,1,1,1,\n1,1,1,1,0,0,1,8,4,1,1,1,1,1,1,\n1,1,0,0,2,5,1,1,1,1,1,1,background crate crate_d:9,4,1,\n0,0,7,1,1,1,1,1,1,1,1,1,1,0,0,\n1,1,1,1,1,2,4,1,1,1,1,0,0,1,background crate:10,\n1,6,background player:11,background crate crate_l crate_r:12,1,1,1,1,1,0,0,1,1,1,background crate crate_d crate_l:13,\n3,5,1,1,1,10,1,0,0,1,6,1,1,10,10,\n1,6,1,1,1,0,0,1,13,4,1,1,1,1,13,\n4,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",0,"1646701772316.744"] - ], - [ - "Many parallel players, unlimited rigidbodies", - ["title Many parallel players, unlimited rigidbodies\nauthor increpare\nhomepage www.increpare.com\n\nverbose_logging\n\n(\n\nThis is a sample of \n\n- Unlimited rigid bodies\n- 1 Player (should be extendable)\n\nIt's made as an example for the extended rigid body tutorial here:\n\nhttps://www.puzzlescript.net/Documentation/rigidbodies.html\n\n)\n\n========\nOBJECTS\n========\n\nBackground\ngreen\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 Crate\nYellow orange\n00000\n01110\n01110\n01110\n00000\n\n\n(The directional overlays bellow establish connections between crates)\n\n Crate_U\norange\n.000.\n.....\n.....\n.....\n.....\n\n Crate_D\norange\n.....\n.....\n.....\n.....\n.000.\n\n Crate_L\norange\n.....\n0....\n0....\n0....\n.....\n\n Crate_R\norange\n.....\n....0\n....0\n....0\n.....\n\nBLOCKED\nred\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n\nw = Crate and Crate_U\nx = Crate and Crate_D\na = Crate and Crate_L\nd = Crate and Crate_R\n\ne = Crate and Crate_U and Crate_L\nz = Crate and Crate_D and Crate_L\nq = Crate and Crate_U and Crate_R\nc = Crate and Crate_D and Crate_R\n\nr = Crate and Crate_L and Crate_R\nt = Crate and Crate_D and Crate_U\n\n1 = Crate and Crate_D and Crate_L and Crate_R\n2 = Crate and Crate_U and Crate_L and Crate_R\n3 = Crate and Crate_U and Crate_D and Crate_L\n4 = Crate and Crate_U and Crate_D and Crate_R\n\n0 = Crate and Crate_U and Crate_D and Crate_L and Crate_R\n\n5 = Crate\n\n Crate_Connection = Crate_U or Crate_D or Crate_L or Crate_R\n\nPusher = Player or Crate\nPushable = Crate \nSolid = Crate or Player\n\n=======\nSOUNDS\n=======\n\n Crate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\n Crate_U\n Crate_D\n Crate_L\n Crate_R\nBLOCKED\n\n======\nRULES\n======\n\n(For making maps easily: uncomment out the next few lines + press action to discard all boundaries and recreate them)\n\n( [ action player ] [ Crate_connection ] -> [ action player ] [ ] )\n( up [ action player ] [ Crate | Crate ] -> [ action player ] [ Crate Crate_u | Crate Crate_d ] )\n( right [ action player ] [ Crate | Crate ] -> [ action player ] [ Crate Crate_r | Crate Crate_l ] )\n\n\nstartloop\n\n(I'm using ACTION to mark 'BLOCKED's as old to allow the loop to exit once no new BLOCKEDs have been added)\n[ stationary BLOCKED ] -> [ action BLOCKED ]\n\n[ > Pusher | no BLOCKED Pushable ] -> [ > Pusher | > Pushable ]\n+ up [ moving Crate Crate_U | no BLOCKED Crate ] -> [ moving Crate Crate_U | moving Crate ]\n+ down [ moving Crate Crate_D | no BLOCKED Crate ] -> [ moving Crate Crate_D | moving Crate ]\n+ left [ moving Crate Crate_L | no BLOCKED Crate ] -> [ moving Crate Crate_L | moving Crate ]\n+ right [ moving Crate Crate_R | no BLOCKED Crate ] -> [ moving Crate Crate_R | moving Crate ]\n\n\n(If a crate can't move, we have to back-propagate the can't-move-ness, including possibly through players)\n[ > Solid | wall ] -> [ > Solid BLOCKED | wall ]\n\n[ no BLOCKED > Solid | BLOCKED Solid ] -> [ BLOCKED > Solid | BLOCKED Solid ]\n+ up [ BLOCKED Crate Crate_U | no BLOCKED Crate ] -> [ BLOCKED Crate Crate_U | BLOCKED Crate ]\n+ down [ BLOCKED Crate Crate_D | no BLOCKED Crate ] -> [ BLOCKED Crate Crate_D | BLOCKED Crate ]\n+ left [ BLOCKED Crate Crate_L | no BLOCKED Crate ] -> [ BLOCKED Crate Crate_L | BLOCKED Crate ]\n+ right [ BLOCKED Crate Crate_R | no BLOCKED Crate ] -> [ BLOCKED Crate Crate_R | BLOCKED Crate ]\n\n\n(Then we remove all movements from BLOCKED crates, along with the BLOCKED marker itself)\n[ BLOCKED moving Solid ] -> [ BLOCKED stationary Solid ]\n\n[ stationary BLOCKED ] [ moving crate ] -> [ stationary BLOCKED ] [ stationary crate ]\nendloop\n\n[ BLOCKED ] -> [ ]\n\n(To wrap it all up, move connections along with the crates themselves)\n[ moving Crate stationary Crate_connection ] -> [ moving Crate moving Crate_connection ]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n###############\n#..ca.........#\n#.ce....ca....#\n#.t...d1e.....#\n#.w....w......#\n#....d1ap5.dz.#\n#....pw...5.w5#\n#......dz.....#\n#.......t..dz.#\n#..x..cre...w.#\n#..w..w...5...#\n#.............#\n###############\n\n###############\n#..ca.........#\n#.ce....ca....#\n#.t...d1e.....#\n#.w....w......#\n#....d1ap5.dz.#\n#....pw...5.w5#\n#......dz.....#\n#.......t..dz.#\n#..x..cre...w.#\n#..w..w...5...#\n#.............#\n###############\n\n",[3,3,3,0,3,3,2,2,2,1,2,2,3,3,3,3,3,2,2,2,1,1,2,2,3,3,3,0,0,0,1,0,0,0,0,1,1,2,1,0,0,0,1,1,1,1,0,3,1,1,1,3,3,3,1,0,1,1,1],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,\nbackground crate crate_d crate_r:2,background crate crate_d crate_u:3,background crate crate_u:4,1,1,1,1,1,1,1,0,0,2,background crate crate_l crate_u:5,1,\n1,1,1,1,1,1,1,1,0,0,background crate crate_l:6,background player:7,1,1,1,\n1,1,1,background crate crate_d:8,4,1,0,0,1,background crate crate_r:9,1,1,1,1,1,\n1,1,1,1,0,0,1,background crate crate_d crate_l crate_r:10,4,1,1,1,1,1,1,\n1,1,0,0,2,5,7,1,1,1,1,1,1,2,4,\n0,0,6,1,1,1,1,1,1,9,1,background crate crate_l crate_r:11,1,0,0,\n1,1,1,9,1,1,1,background crate crate_d crate_l:12,3,5,1,0,0,1,1,\n1,10,4,1,1,1,1,1,1,0,0,1,1,1,6,\nbackground crate:13,13,1,1,1,1,13,0,0,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,9,1,1,1,\n1,9,1,0,0,1,1,1,13,12,4,1,1,1,12,\n4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",0,"1646703814545.0725"] - ], - [ - "Restart command on level start", - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nverbose_logging\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 player ] -> restart\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[2,1,0],"background wall:0,0,0,0,0,0,\n0,0,background:1,background crate:2,background player target:3,1,\n1,0,0,background target:4,1,1,\n1,1,0,0,0,0,\n1,2,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1646748136288.8362"] - ], - [ - "startloop stoploop vortex check", - ["title startloop stoploop vortex check\nauthor David Skinner\nhomepage www.puzzlescript.net\n\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\nstartloop\n[ > Player | Crate ] -> [ > Player | > Crate ] \n[ > Player | > Crate ] -> [ > Player | Crate ] \nendloop\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[0,1,2,3,2,2,3,1,1,2,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,background player:4,0,0,0,0,\n1,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1646748363863.9624"] - ], - [ - "Audio Test 1", - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\nCrate cantmove 34411705\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\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[2,1,0,3,3,3,2,1,0,1,2,2],"background wall:0,0,0,0,0,0,\n0,0,background:1,background crate:2,background target:3,1,\n1,0,0,3,1,1,\nbackground player:4,2,0,0,0,0,\n1,1,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n","0","1646875706306.7224",["36772507","36772507","36772507","34411705"]] - ], - [ - "Audio Test 2", - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nstartgame 1\nendgame 2\nstartlevel 3\nendlevel 4\ncrate move 5\ncrate cantmove 6\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\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[0,1,2,2,2],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,background target:2,background player:3,\nbackground crate:4,0,0,2,1,1,\n1,1,0,0,0,0,\n1,4,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n","0","1646876897098.8142",["5","5","6"]] - ], - [ - "Audio Test 3", - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\ntemp \nblack\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 1\nCrate cantmove 2\ncrate create 3\ncrate destroy 4\nplayer move 5\nplayer cantmove 6\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ntemp\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n[action player | no temp no crate ] -> [ action player | temp crate ]\n[action player | no temp crate ] -> [ action player | temp ]\n[temp]->[]\n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[2,1,0,1,4,0,3,2,2,4,3,0,1,1,1],"background wall:0,0,0,background crate:1,0,0,\n0,0,background:2,2,background crate target:3,2,\n2,0,0,background target:4,2,background player:5,\n2,2,0,0,0,0,\n2,2,0,0,2,2,\n0,2,2,0,2,2,\n2,0,0,0,0,2,\n",0,"1646877211807.3489",["5","5","1","5","6","3","4","5","5","1","5","1","5","3","4","5","5","1","5","2","6","2","6"]] - ], - [ - "aggregates in win conditions 1", - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\ncratedot\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ndotted = crate and cratedot\nk = cratedot\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ncratedot\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n[ > Player | cratedot ] -> [ > Player | > cratedot ] \n\n==============\nWINCONDITIONS\n==============\n\nall target on dotted\n\n=======\nLEVELS\n=======\n\npk@\n...\n\n.....\nkp..k\no*.*o\n.....\n\n....\no...\n",[0,1,2,3,3,2,3,0,0,3,2,1,2,1,1],"background:0,background target:1,0,0,\n0,0,0,0,\n",1,"1646902744672.2258",["36772507","36772507"]] - ], - [ - "aggregates in win conditions 2", - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\ncratedot\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ndotted = crate and cratedot\nk = cratedot\n&=dotted\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ncratedot\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n[ > Player | cratedot ] -> [ > Player | > cratedot ] \n\n==============\nWINCONDITIONS\n==============\n\nall dotted on target\n\n=======\nLEVELS\n=======\n\npk@\n...\n\n.....\nkp..&\no*..o\n.....\n\n....\no...\n",[3,3,3,0,3,2],"background:0,background target:1,0,0,\n0,0,0,0,\n",0,"1646902824835.6414",["36772507"]] - ], - [ - "aggregates in win conditions 3", - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\ncratedot\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ndotted = crate and cratedot\nk = cratedot\n&=dotted\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ncratedot\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n[ > Player | cratedot ] -> [ > Player | > cratedot ] \n\n==============\nWINCONDITIONS\n==============\n\nsome dotted\n\n=======\nLEVELS\n=======\n\npk@\n...\n\n.....\nkp..p\no*.oo\n.....\n\n....\no...\n",[0,1,2,3,3,2,2,1,1,0,2,3,0,3,0,1],"background:0,background target:1,0,0,\n0,0,0,0,\n",1,"1646903196185.7786",["36772507","36772507"]] - ], - [ - "aggregates in win conditions 4", - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\ncratedot\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ndotted = crate and cratedot\nk = cratedot\n&=dotted\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ncratedot\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nno dotted\n\n=======\nLEVELS\n=======\n\npk@\n...\n\n.....\n.p...\n.&&&.\n.....\n\n....\no...\n",[3,2,1,2,3,3,0,1,0,0,3,3,3,2,2,1,1,1],"background:0,background target:1,0,0,\n0,0,0,0,\n",0,"1646903268108.808",["36772507","36772507","36772507","36772507","36772507","36772507","36772507"]] - ], - [ - "aggregates in win conditions 5", - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\ncratedot\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ndotted = crate and cratedot\nk = cratedot\n&=dotted\nf = dotted and target\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ncratedot\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nno dotted on target\n\n=======\nLEVELS\n=======\n\npk@\n...\n\n.....\n.p...\n.&&&.\n.....\n\np.......\no.f.f.&.\n........\n\n\npk@\n...\n...\n",[3,3,3,2,1,1,0,3,3,"undo","undo","undo","undo","undo",0,3,3,2,1,3,0,3,3,2,1,1,0,1,1,1,3,2,"undo",1,2,0,3,2,0,3,2],"background player:0,background:1,1,\nbackground cratedot:2,1,1,\nbackground crate target:3,1,1,\n",2,"1646903377668.326",["36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507"]] - ], - [ - "aggregates in win conditions 6", - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\ncratedot\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ndotted = crate and cratedot\nk = cratedot\n&=dotted\nf = dotted and target\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ncratedot\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n[ > Player | cratedot ] -> [ > Player | > cratedot ] \n\n==============\nWINCONDITIONS\n==============\n\nall dotted on target\n\n=======\nLEVELS\n=======\n\n..p..\n...k.\n.ooo.\n.&&*.\n.....\n\n..p..\n...k.\n.ooo.\n#&&*.\n.....\n\n..p..\n...k.\n.ooo.\n.&&*.\n.....\n\npk@\n...\n...\n",[1,1,2,2,2,2,3,3,3,0,3,0,0,0,1,2,3,2,2,2,1,1,0,2,1,0,3,2,3,2,2,2,1,0,2,1,1,3,0,1,3,2,2,3,2,2,1,0,2,1,1,0,3,2,3,3,0,0,1,3,2,2,1,0],"background player:0,background:1,1,\nbackground cratedot:2,1,1,\nbackground crate target:3,1,1,\n",0,"1646903481599.992",["36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507"]] - ], - [ - "aggregates in win conditions 7", - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\ncratedot\norange\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\ndotted = crate and cratedot\nk = cratedot\n&=dotted\nf = dotted and target\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\ncratedot\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n[ > Player | cratedot ] -> [ > Player | > cratedot ] \n\n==============\nWINCONDITIONS\n==============\n\nall target on dotted\n\n=======\nLEVELS\n=======\n\n..p..\n...k.\n.ooo.\n.&&*.\n.....\n\n..p..\n...k.\n.ooo.\n#&&*.\n.....\n\n..p..\n...k.\n.ooo.\n.&&*.\n.....\n\npk@\n...\n...\n",[3,2,3,2,2,2,1,0,2,1,1,0,2,3,3,3,0,0,1,2,2,1,1,0,3,2,3,0,3,3,2,2,2,2,1,0,2,2,1,1,0,2,3,3,1,0,3,3,0,0,1,2,0,0,1,1,2,3,0,3,2,3,2,2,2,1,0],"background:0,0,0,0,0,\n0,0,background target:1,background crate cratedot:2,0,\nbackground player:3,0,1,2,0,\n0,background cratedot:4,1,background crate:5,0,\n0,0,0,0,0,\n",0,"1646903516649.6477",["36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507"]] - ], - [ - "double ellipsis simple test", - ["title double ellipsis simple test\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | > Player | > Player | ... | Crate | Crate | ... | Target | Target | Target | Target ] -> [ > Player | > Player | > Player | ... | > Crate | > Crate | ... | > Target | > Target | > Target | > Target ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\nppp**.oooo..\nppp**oooo...\nppp.**oooo..\nppp.**.oooo.\n\n#######\n#.....#\n#.....#\n#p.*.o#\n#.....#\n#.....#\n#######\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[3],"background:0,0,0,0,background player:1,1,1,1,1,1,1,1,\n1,1,1,1,background crate:2,2,0,0,2,2,2,2,\n0,background target:3,2,2,3,3,3,0,3,3,3,3,\n3,3,3,3,3,0,3,3,0,0,0,3,\n",0,"1647256697085.1719",["36772507"]] - ], - [ - "double ellipsis simple test #2", - ["title double ellipsis simple test\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | > Player | ... | Crate | Crate | ... | Target | Target | Target | Target ] -> [ > Player | > Player | > Player | ... | > Crate | > Crate | ... | > Target | > Target | > Target | > Target ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n....................\nppp**.oooo.**.......\n...**oooo**.........\n....**oooo**........\n....**.oooo.**......\n....................\n\n#######\n#.....#\n#.....#\n#p.*.o#\n#.....#\n#.....#\n#######\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,0,1,2,1,1,1,0,1,2,1,1,1,3,3,3,3,2,1,1,1,1,1,"undo",1,3,3,3,3,3,3,2,0,0,1,2,2,1,0,3,2,1,0,1,2,1,1,1,"undo",1,1,3,3,3,3,3,3,2,3,3,1,1,1,1,1,1,1,"undo",1,"undo"],"background:0,background target:1,1,1,0,0,0,1,1,1,1,0,0,1,1,1,1,0,0,background crate target:2,\n2,1,1,0,0,background crate:3,3,3,2,0,0,3,3,3,3,0,0,3,3,3,\n3,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,background player:4,0,0,0,0,0,4,0,0,0,0,0,4,0,0,0,\n0,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,\n",0,"1647256758831.4763",["36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507"]] - ], - [ - "double ellipsis simple test #3", - ["title double ellipsis simple test\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | > Player | ... | Crate | Crate | ... | Target | Target | Target | Target ] -> [ > Player | > Player | > Player | ... | > Crate | > Crate | ... | > Target | > Target | > Target | > Target ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n\n....................\n....................\n....................\n....................\n....................\n....................\n......****..........\nppp...****.........\nppp.................\nppp**.oooo.**.......\n...**oooo**.........\n....**oooo**........\n....**.oooo.**......\n....................\n.......****.........\n.......****.........\n.......****.........\n....................\n....................\n....................\n....................\n....................\n\n#######\n#.....#\n#.....#\n#p.*.o#\n#.....#\n#.....#\n#######\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[2,2,2,3,2,2,2,2,2,2,2,2,3,3,3,2,3,3,3,3,1,0,"undo",0,"undo",1,0,1,1,0,3,3,3,0,"undo",0,"undo",0,2,2,2,3,3,3,3,3,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,1,2],"background: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,\n0,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,background crate:1,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,\n0,background target:2,2,1,1,0,0,0,0,0,0,0,0,0,0,0,0,background player:3,3,3,\n1,1,0,2,2,2,0,0,1,1,1,0,0,0,0,0,0,0,0,3,\n3,3,1,background crate target:4,2,2,2,0,1,1,1,0,0,0,0,0,0,0,0,0,\n0,3,3,3,0,1,1,2,4,2,2,1,1,1,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,1,4,2,0,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,1,0,1,2,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,\n0,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,\n0,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,\n0,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",0,"1647256841954.48",["36772507","36772507","36772507","36772507","36772507","36772507","36772507","36772507"]] - ], - [ - "double ellipsis simple test #4", - ["title double ellipsis simple test\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | > Player | ... | Crate | Crate | ... | stationary Target | stationary Target | stationary Target | stationary Target ] -> [ > Player | > Player | > Player | ... | > Crate | > Crate | ... | > Target | > Target | > Target | > Target ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n\n....................\n....................\n....................\n....................\n....................\n....................\n......****..........\nppp...****.........\nppp.................\nppp**.oooo.**.......\n...**oooo**.........\n....**oooo**........\n....**.oooo.**......\n....................\n.......****.........\n.......****.........\n.......****.........\n....................\n....................\n....................\n....................\n....................\n\n#######\n#.....#\n#.....#\n#p.*.o#\n#.....#\n#.....#\n#######\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,0,1,1,1,0,3,"undo","undo","undo",1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,0,3,2,0,2,0,2,3,3,3,3,3,3,3,2,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,2,1,1,1,0,"undo",0,0],"background: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,\n0,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,background crate:1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,\n1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\nbackground target:2,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,\n0,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background crate target:3,3,2,2,0,1,1,1,background player:4,4,4,0,0,0,0,0,0,\n0,0,0,0,0,3,3,2,2,0,1,1,1,4,4,4,0,0,0,0,\n0,0,0,0,1,1,0,2,1,2,2,0,1,1,1,4,4,4,0,0,\n0,0,0,0,0,0,0,0,0,0,1,1,2,0,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,\n0,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,\n0,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,\n0,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",0,"1647256905962.6406",["36772507","36772507","36772507"]] - ], - [ - "double ellipsis simple test #5", - ["title double ellipsis simple test\nauthor David Skinner\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\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 | > Player | ... | Crate | Crate | ... | stationary Target | stationary Target | stationary Target | stationary Target ] -> [ > Player | > Player | > Player | ... | < Crate | < Crate | ... | > Target | > Target | > Target | > Target ] \n\n==============\nWINCONDITIONS\n==============\n\nall Target on Crate\n\n=======\nLEVELS\n=======\n\n\n....................\n....................\n....................\n....................\n....................\n....................\n......****..........\nppp...****.........\nppp.................\nppp**.oooo.**.......\n...**oooo**.........\n....**oooo**........\n....**.oooo.**......\n....................\n.......****.........\n.......****.........\n.......****.........\n....................\n....................\n....................\n....................\n....................\n\n#######\n#.....#\n#.....#\n#p.*.o#\n#.....#\n#.....#\n#######\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,0,"undo",0,3,3,3,3,3,3,3,3,0,3,0,0,0,0,0,0,0,0,0,0,2,2,2,1,2,2,2,2,2,2,2,2,1,1,1,1,1,2,2,1,1,1,1,0,"undo",1,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,3,0,3,3,3,3,3,2],"background: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,\n0,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,background crate:1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,background crate target:2,1,\n1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\nbackground target:3,2,1,0,0,0,0,0,0,0,0,0,0,background player:4,4,4,0,0,1,1,\n0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,4,4,4,0,1,\n1,0,0,3,3,3,3,0,1,0,1,1,0,0,0,0,0,4,4,4,\n0,0,1,1,3,3,0,3,0,0,1,0,1,1,0,0,0,0,0,0,\n0,0,0,0,1,1,0,3,0,0,3,0,1,1,1,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,1,0,3,0,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,\n0,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,\n0,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,\n0,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,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",0,"1647256954689.7512",["36772507","36772507","36772507","36772507","36772507"]] - ], - - [ - "Double-ellipsis testcase", - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\nb\nred\n0....\n0....\n00000\n0...0\n00000\n\nc\nblue\n00000\n0....\n0....\n0....\n00000\n\nd\nyellow\n....0\n....0\n00000\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nb\nc\nd\n\n======\nRULES\n======\n\n[ > Player | ... | b | ... | c ] [ d | ... | b | ... | c ] -> [ > Player | ... | b | ... | c ] [ up d | ... | b | ... | down c ]\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n...........\n...........\n...........\n.d.p..b.c..\n...........\n.d.b.c.....\n...........\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[3],"background:0,0,0,0,0,0,0,0,0,background d:1,0,\n1,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,b background:2,0,0,0,0,background player:3,0,\n0,0,0,0,0,0,0,0,background c:4,0,0,\n0,2,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,4,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n",0,"1647258256850.6755",[]] - ], - [ - "Double-ellipsis delicate test case", - ["title Simple Block Pushing Game\nauthor David Skinner\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n11111\n01111\n11101\n11111\n10111\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\n00000\n0...0\n0...0\n0...0\n00000\n\nb\nred\n0....\n0....\n00000\n0...0\n00000\n\nc\nblue\n00000\n0....\n0....\n0....\n00000\n\nd\nyellow\n....0\n....0\n00000\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=======\nSOUNDS\n=======\n\nCrate move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nb\nc\nd\n\n======\nRULES\n======\n\n[ > Player | ... | b | ... | c ] [ d | ... | b | ... | c ] -> [ Player | ... | b | ... | c ] [ up d | ... | b | ... | down c ]\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n...........\n...........\n...........\n.d.p..b.c..\n...........\n.d.b.c.....\n...........\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[3],"background:0,0,0,0,0,0,0,0,0,background d:1,0,\n0,1,0,0,0,0,0,0,0,0,0,\n0,0,background player:2,0,b background:3,0,0,0,0,0,0,\n0,0,0,0,0,0,0,background c:4,0,0,0,\n0,3,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,4,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,\n",0,"1647258285625.6372",[]] + ["title Simple Block Pushing Game\nauthor David Skinner\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\n00000\n0...0\n0...0\n0...0\n00000\n\nhorizontali\nblue\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\nhorizontali move 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\nhorizontali\n\n======\nRULES\n======\n\n\n[ > Player | Crate ] -> [ > Player | > Crate ] sfx0 sfx1\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\n",[0,1,2,2],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,background target:2,background player:3,\nbackground crate:4,0,0,2,1,1,\n1,1,0,0,0,0,\n1,4,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1629314889294.314"] + ], + +[ + "VEXT EDIT", + ["title VEXT EDIT\nauthor JACK\n\nrun_rules_on_level_start\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\n#eeeeee\n\nPlayerTarget1mark\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1mark\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nPlayerTarget1\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0Mark\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nWall0 \n#884400 #f00\n00000\n00000\n00000\n00000\n00000\n\nwalll0 \nBrown #f00\n1....\n1....\n1....\n1....\n1....\n\nWallr0 \nBrown #f00\n....1\n....1\n....1\n....1\n....1\n\nWalld0 \nBrown #f00\n.....\n.....\n.....\n.....\n11111\n\nWallu0 \nBrown #f00\n11111\n.....\n.....\n.....\n.....\n\nBlack\nblack\n\nwall0ghost\ntransparent\n\nWall0Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1 \n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall2\n#884400 #00f\n00000\n00000\n00000\n00000\n00000\n\nwalll2\nBrown #00f\n1....\n1....\n1....\n1....\n1....\n\nWallr2 \nBrown #00f\n....1\n....1\n....1\n....1\n....1\n\nWalld2 \nBrown #00f\n.....\n.....\n.....\n.....\n11111\n\nWallu2 \nBrown #00f\n11111\n.....\n.....\n.....\n.....\n\nwalll1 \nBrown #ff0\n1....\n1....\n1....\n1....\n1....\n\nWallr1 \nBrown #ff0\n....1\n....1\n....1\n....1\n....1\n\nWalld1 \nBrown #ff0\n.....\n.....\n.....\n.....\n11111\n\nWallu1 \nBrown #ff0\n11111\n.....\n.....\n.....\n.....\n\nCrate1Mark\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate1\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate01\ntransparent\n\nCrate0\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate0mark\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\ncrate0ghost\ntransparent\n\nPlayer1Mark\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nPlayer1\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nDed1Mark\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nDed1\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nCrated0\n#f80 #f00\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu0\n#f80 #f00\n.010.\n.010.\n.....\n.....\n.....\n\nCratel0\n#f80 #f00\n.....\n00...\n11...\n00...\n.....\n\nCrater0\n#f80 #f00\n.....\n...00\n...11\n...00\n.....\n\nCrated1\n#f80 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu1\n#f80 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nCratel1\n#f80 #ff0\n.....\n00...\n11...\n00...\n.....\n\nCrater1\n#f80 #ff0\n.....\n...00\n...11\n...00\n.....\n\n\nPit1Mark\nblack #bbbb00 white\n.111.\n10001\n10001\n10001\n.111.\n\n\nPit1\nblack #bbbb00 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\npit0ghost\ntransparent\n\nPit0\nblack #bb0000 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\n\npit0u\nblack #bb0000\n10001\n.....\n.....\n.....\n.....\n\npit0d\nblack #bb0000\n.....\n.....\n.....\n.....\n10001\n\npit0l\nblack #bb0000\n1....\n0....\n0....\n0....\n1....\n\npit0r\nblack #bb0000\n....1\n....0\n....0\n....0\n....1\n\npit1u\nblack #bbbb00\n10001\n.....\n.....\n.....\n.....\n\npit1d\nblack #bbbb00\n.....\n.....\n.....\n.....\n10001\n\npit1l\nblack #bbbb00\n1....\n0....\n0....\n0....\n1....\n\npit1r\nblack #bbbb00\n....1\n....0\n....0\n....0\n....1\n\nrim0u\n#b00\n.000.\n.....\n.....\n.....\n.....\n\nrim0l\n#b00\n.....\n0....\n0....\n0....\n.....\n\nrim0r\n#b00\n.....\n....0\n....0\n....0\n.....\n\nrim0d\n#b00\n.....\n.....\n.....\n.....\n.000.\n\nrim1u\n#bb0\n.000.\n.....\n.....\n.....\n.....\n\nrim1l\n#bb0\n.....\n0....\n0....\n0....\n.....\n\nrim1r\n#bb0\n.....\n....0\n....0\n....0\n.....\n\nrim1d\n#bb0\n.....\n.....\n.....\n.....\n.000.\n\nblackul\nblack\n0....\n.....\n.....\n.....\n.....\n\nblackur\nblack\n....0\n.....\n.....\n.....\n.....\n\nblackdl\nblack\n.....\n.....\n.....\n.....\n0....\n\nblackdr\nblack\n.....\n.....\n.....\n.....\n....0\n\nfell0\n#884400 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1mark\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfelld1\n#884400 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nfellu1\n#884400 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nfelll1\n#884400 #ff0\n.....\n00...\n11...\n00...\n.....\n\nfellr1\n#884400 #ff0\n.....\n...00\n...11\n...00\n.....\n\nfell0ghost\ntransparent\n\nsupported\ntransparent\n\nfellcant1\ntransparent\n\ncant1\ntransparent\n\ncant0\ntransparent\n\nfellcant0\ntransparent\n\ndead0a\ndarkred\n.....\n.0.0.\n.....\n.0.0.\n.....\n\ncursor0a\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\ncursor0b\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\n\n\ncursor2a\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\ncursor2b\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\none2mark\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2mark\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2mark\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none2\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0mark\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0mark\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0mark\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\nfour0\n#f00\n.0.0.\n.0.0.\n..00.\n...0.\n...0.\n\nfive0\n#f00\n.000.\n.0...\n.00..\n...0.\n.00..\n\nsix0\n#f00\n..00.\n.0...\n.00..\n.0.0.\n..0..\n\nseven0\n#f00\n.000.\n...0.\n...0.\n..0..\n..0..\n\ninf0\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\ninf0mark\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\n\ndecrement\ntransparent\n\nholding\ntransparent\n\nactiveb\n#f00\n.....\n.0.0.\n.....\n.....\n.....\n\nactive\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\nactivefell\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\npickeda0\ntransparent\n\npickedb0\ntransparent\n\npickeda2\ntransparent\n\npickedb2\ntransparent\n\nchosepink\n#ff22ff\n\nchosecyan\n#22ffff\n\npink\n#ff88ff\n\ncyan\n#88ffff\n\nplacemark\ntransparent\n\nactivecurse0\ntransparent\n\npartb\ntransparent\n\npartc\ntransparent\n\ncursor0mark\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\nwall2ghost\ntransparent\n\ncant2\ntransparent\n\nshowhere\ntransparent\n\nshowthis\ntransparent\n=======\nLEGEND\n=======\n\n` = Background\n& = Wall2 and wall1 and wall0\n# = Wall1\nX = Wall0\n+ = Wall0 and Wall1\nP = Player1 and active\n\nn = crate0 and crate1 and crate01\no = Crate1\n- = crate1 and crater1\n: = crate1 and crateu1\nL = crate1 and crater1 and crateu1\n0 = pit1\n! = crate0\n? = pit0\n/ = pit0 and pit1\n\n@ = one0 and pit0\nz = player1 and pit0\n\n| = black\n\n' = partb\n\" = partc\n\n~ = cursor2a\n_ = cursor2b\n\n1 = one0\n2 = two0\n3 = three0\n4 = four0\n5 = five0\n6 = six0\n7 = seven0\n8 = inf0\n\n[ = one2\n{ = two2\n] = three2\n> = wall2\nactiveab = active or activeb or activefell\npartbc = partb or partc\n\ny = target0\nu = Target1 and pit1\nt = Target1\nq = playertarget1\nr = player1\nb = cursor0a\nc = cursor0a and activecurse0\nk = cursor0b and activecurse0\ncurse0a = cursor0a or dead0a\ncurse0 = curse0a or cursor0b\ncurse2 = cursor2a or cursor2b\ncursor0 = cursor0a or cursor0b\n \nplayer = curse2 or activecurse0 or active or dead0a or activefell\ndead0 = dead0a\nx1 = player1 or crate1 or wall1 or target1 or playertarget1 or pit1\nx0 = crate0 or wall0 or pit0 or fell0\nxx = x0 or x1 or curse0\nx0ghost = crate0ghost or wall0ghost or pit0ghost or fell0ghost\ncratex1 = cratel1 or crater1 or crated1 or crateu1\nwallx2 = walll2 or wallr2 or walld2 or wallu2\nwallx1 = walll1 or wallr1 or walld1 or wallu1\nwallx0 = walll0 or wallr0 or walld0 or wallu0\nfellx1 = felll1 or fellr1 or felld1 or fellu1\npit0x = pit0l or pit0r or pit0d or pit0u\npit1x = pit1l or pit1r or pit1d or pit1u\ncrateorfell1 = crate1 or fell1\nplayerormark1 = player1 or player1mark\n\nx0mark = one0mark or two0mark or three0mark or cursor0mark or wall0mark or target0mark or crate0mark or inf0mark\nx1mark = player1mark or crate1mark or pit1mark or wall1mark or fell1mark or ded1mark or crate1mark or Target1mark or PlayerTarget1mark\nx2mark = one2mark or two2mark or three2mark\nxmark = x0mark or x1mark or x2mark\nnumber0 = one0 or two0 or three0 or four0 or five0 or six0 or seven0 or inf0\nnumber2 = one2 or two2 or three2\npicked = pickeda0 or pickedb0 or pickeda2 or pickedb2\n\npickable = player1 or pit1 or crate1 or number0 or wall1 or number2 or fell1 or ded1 or target0 or PlayerTarget1 or Target1\npickable2 = curse0a or pickable or wall0 or crate0 \n\nblackcorner = blackul or blackdl or blackur or blackdr\nrim0x = rim0l or rim0d or rim0u or rim0r\nrim1x = rim1l or rim1d or rim1u or rim1r \n=======\nSOUNDS\n=======\n\nSFX0 51304502\n\nsfx1 22108304\n\nSFX2 84700307\n\nSFX3 78571302\n\nSFX4 25131906\n\nSFX5 13408901\n\nSFX6 50704903\n\nSFX7 24622504\n\nSFX8 29744504\n\nSFX9 13344503\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\npink, chosepink\ncyan, chosecyan\n\n\nPit1,\npit1r\npit1l\npit1d\npit1u\npit0, pit0ghost\npit0r\npit0l\npit0d\npit0u\nblackul\nblackur\nblackdr\nblackdl\nTarget1, PlayerTarget1, target0\n\nfell1, ded1\nfelll1\nfellr1\nfelld1\nfellu1\n\ndead0a, fell0, fell0ghost\nrim0l \nrim0d \nrim0u \nrim0r\n\nrim1l \nrim1d \nrim1u \nrim1r \nPlayer1, Wall1, Crate1, \npit1mark\nfell1mark, ded1mark, target0mark\nTarget1mark, PlayerTarget1mark\nplayer1mark, crate1mark\nwall1mark\none0mark, two0mark, three0mark, wall0mark, inf0mark\none2mark, two2mark, three2mark\ncursor0mark, crate0mark\nnumber0, number2\ncratel1, walll1, \ncrater1, wallr1, \ncrated1, walld1, \ncrateu1, wallu1, \ncursor0, wall0, crate0, wall0ghost, crate0ghost\n walll0, cratel0\n wallr0, crater0\n walld0, crated0\n wallu0, crateu0\n crate01\n wall2, wall2ghost\n wallr2\n wallu2\n walll2\n walld2\n cursor2a, cursor2b\n \nfellcant1\nfellcant0\ncant0\ncant1\ncant2\nsupported\nactivefell\nactive, activeb\nactivecurse0\nholding\ndecrement\npickeda0, pickeda2\npickedb0, pickedb2\nplacemark\npartb partc\nshowthis\nshowhere\nblack\n\n======\nRULES\n======\n\n(Deal with action-----------------------------------------------------------------------------)\n\n[action activecurse0 curse0] -> [activecurse0 action curse0]\n\n(pick up ready icon)\ndown[action curse0a no holding pickable|number0] -> [curse0a holding pickable|number0 pickeda0] SFX9\ndown[action cursor0b no holding pickable|number0] -> [cursor0b holding pickable|number0 pickedb0] SFX9\ndown[action cursor2a no holding pickable2|number2] -> [cursor2a holding pickable2|number2 pickeda2] SFX9\ndown[action cursor2b no holding pickable2|number2] -> [cursor2b holding pickable2|number2 pickedb2] SFX9\n(switch to new ready icon)\ndown [action curse0a pickable| number0 no pickeda0][pickeda0] -> [curse0a pickable | number0 pickeda0][] SFX9\ndown [action cursor0b pickable| number0 no pickedb0][pickedb0] -> [cursor0b pickable | number0 pickedb0][] SFX9\ndown [action cursor2a pickable2| number2 no pickeda2][pickeda2] -> [cursor2a pickable2 | number2 pickeda2][] SFX9\ndown [action cursor2b pickable2| number2 no pickedb2][pickedb2] -> [cursor2b pickable2 | number2 pickedb2][] SFX9\n\n(put down ready icon)\ndown [action curse0 holding pickable| picked] -> [curse0 pickable|] SFX8\ndown [action cursor2a holding pickable2| pickeda2] -> [cursor2a pickable2|] SFX8\ndown [action cursor2b holding pickable2| pickedb2] -> [cursor2b pickable2|] SFX8\n\n(show mark)\nlate [xmark] -> []\nlate [showthis] -> []\nlate [showhere] -> []\n\nlate down [ | number0 pickeda0][curse0a] -> [showthis | number0 pickeda0][curse0a showhere]\nlate down [ | number0 pickedb0][cursor0b] -> [showthis | number0 pickedb0][cursor0b showhere]\nlate down [ | number2 pickeda2][cursor2a] -> [showthis | number2 pickeda2][cursor2a showhere]\nlate down [ | number2 pickedb2][cursor2b] -> [showthis | number2 pickedb2][cursor2b showhere]\nlate [showthis player1][showhere] -> [showthis player1][showhere player1mark]\nlate [showthis pit1][showhere] -> [showthis pit1][showhere pit1mark]\nlate [showthis crate1][showhere] -> [showthis crate1][showhere crate1mark]\nlate [showthis wall1][showhere] -> [showthis wall1][showhere wall1mark]\nlate [showthis one0][showhere] -> [showthis one0][showhere one0mark]\nlate [showthis two0][showhere] -> [showthis two0][showhere two0mark]\nlate [showthis three0][showhere] -> [showthis three0][showhere three0mark]\nlate [showthis one2][showhere] -> [showthis one2][showhere one2mark]\nlate [showthis two2][showhere] -> [showthis two2][showhere two2mark]\nlate [showthis three2][showhere] -> [showthis three2][showhere three2mark]\nlate [showthis wall0][showhere] -> [showthis wall0][showhere wall0mark]\nlate [showthis fell1][showhere] -> [showthis fell1][showhere fell1mark]\nlate [showthis ded1][showhere] -> [showthis ded1][showhere ded1mark]\nlate [showthis target0][showhere] -> [showthis target0][showhere target0mark]\nlate [showthis crate0][showhere] -> [showthis crate0][showhere crate0mark]\nlate [showthis cursor0][showhere] -> [showthis cursor0][showhere cursor0mark]\nlate [showthis inf0][showhere] -> [showthis inf0][showhere inf0mark]\nlate [showthis Target1][showhere] -> [showthis target1][showhere Target1mark]\nlate [showthis PlayerTarget1][showhere] -> [showthis PlayerTarget1][showhere PlayerTarget1mark]\n(connect cratemark)\nup [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crateu1 | crate1 crated1]\ndown [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crated1 | crate1 crateu1]\nleft [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark cratel1 | crate1 crater1]\nright [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crater1 | crate1 cratel1]\nup [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crateu1 | fell1 felld1]\ndown [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crated1 | fell1 fellu1]\nleft [action curse0 holding fell1mark no xx no number0 no number2| fell1] -> [action curse0 holding fell1mark cratel1 | fell1 fellr1]\nright [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crater1 | fell1 felll1]\n\n(place mark)\n[placemark] -> []\n\ndown [action curse0a holding xmark no x1 no number0][pickeda0 number0] -> [curse0a holding xmark placemark][pickeda0 decrement number0] SFX7\ndown [action cursor0b holding xmark no x1 no number0][pickedb0 number0] -> [cursor0b holding xmark placemark][pickedb0 decrement number0] SFX7\n\ndown [action cursor2a holding xmark no xx no number0 no number2][pickeda2 number2] -> [cursor2a holding xmark placemark][pickeda2 decrement number2] SFX7\ndown [action cursor2b holding xmark no xx no number0 no number2][pickedb2 number2] -> [cursor2b holding xmark placemark][pickedb2 decrement number2] SFX7\n\n\n\n[placemark player1mark] -> [placemark player1 player1mark]\n[placemark pit1mark] -> [placemark pit1 pit1mark]\n[placemark crate1mark] -> [placemark crate1 crate1mark]\n[placemark wall1mark] -> [placemark wall1 wall1mark]\n[placemark one0mark] -> [placemark one0 one0mark]\n[placemark two0mark] -> [placemark two0 two0mark]\n[placemark three0mark] -> [placemark three0 three0mark]\n[placemark one2mark] -> [placemark one2 one2mark]\n[placemark two2mark] -> [placemark two2 two2mark]\n[placemark three2mark] -> [placemark three2 three2mark]\n[placemark wall0mark] -> [placemark wall0 wall0mark]\n[placemark fell1mark] -> [placemark fell1 fell1mark]\n[placemark ded1mark] -> [placemark ded1 ded1mark]\n[placemark target0mark] -> [placemark target0 target0mark]\n[placemark crate0mark] -> [placemark crate0 crate0mark]\n[placemark Target1mark] -> [placemark target1 Target1mark]\n[placemark inf0mark] -> [placemark inf0 inf0mark]\n[placemark PlayerTarget1mark] -> [placemark playertarget1 PlayerTarget1mark]\ndown [placemark cursor0mark][curse0a|no one2] -> [ cursor0b cursor0mark][curse0a|]\n[placemark cursor0mark] -> [placemark cursor0a cursor0mark]\n\n(decrement number of placed item)\ndown [xmark holding cursor2a][pickable2|one2 decrement pickeda2] -> [xmark holding cursor2a][|one2 decrement pickeda2]\ndown [xmark holding cursor2b][pickable2|one2 decrement pickedb2] -> [xmark holding cursor2b][|one2 decrement pickedb2]\ndown [xmark holding curse0a][pickable|one0 decrement pickeda0] -> [xmark holding curse0a][|one0 decrement pickeda0]\ndown [xmark holding cursor0b][pickable|one0 decrement pickedb0] -> [xmark holding cursor0b][|one0 decrement pickedb0]\ndown [xmark holding cursor2a][|one2 decrement pickeda2] -> [cursor2a][|]\ndown [xmark holding cursor2b][|one2 decrement pickedb2] -> [cursor2b][|]\ndown [xmark holding cursor0a][|one0 decrement pickeda0] -> [cursor0a][|]\ndown [xmark holding cursor0b][|one0 decrement pickedb0] -> [cursor0b][|]\n[one0 decrement] -> []\n[two0 decrement] -> [one0]\n[three0 decrement] -> [two0]\n[four0 decrement] -> [three0]\n[five0 decrement] -> [four0]\n[six0 decrement] -> [five0]\n[seven0 decrement] -> [six0]\n[one2 decrement] -> []\n[two2 decrement] -> [one2]\n[three2 decrement] -> [two2]\n\n\n\n(player -> cursor)\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [player1 action active no wall0ghost no crate0ghost][partbc] -> [cursor0a player1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [ded1 action activefell no wall0ghost no crate0ghost][partbc] -> [cursor0a ded1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\n\n(cursor holding -> player)\ndown [action curse0a activecurse0 player1 holding xmark][| number0 pickeda0] -> [active player1][ | number0] SFX6\ndown [action curse0a activecurse0 ded1 holding xmark][| number0 pickeda0] -> [activefell ded1][ | number0] SFX6\ndown [action cursor0b activecurse0 player1 holding xmark][| number0 pickedb0] -> [active player1][ | number0] SFX6\ndown [action cursor0b activecurse0 ded1 holding xmark][| number0 pickedb0] -> [activefell ded1][ | number0] SFX6\n(empty cursor -> player)\n[action curse0 player1 activecurse0 no holding] -> [active player1] SFX6\n[action curse0 ded1 activecurse0 no holding] -> [activefell ded1] SFX6\n(red -> blue)\n[action cursor0a activecurse0 holding xmark][partc][pickeda0] -> [cursor0a cursor2a][partc][] SFX5\n[action cursor0a activecurse0 ][partc] -> [cursor0a cursor2a][partc] SFX5\n[action cursor0b activecurse0 holding xmark][partc][pickedb0] -> [cursor0b cursor2b][partc][] SFX5\n[action cursor0b activecurse0 ][partc] -> [cursor0b cursor2b][partc] SFX5\n(blue holding -> red)\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\nrandom down [action curse2 curse0 holding xmark][| number2 pickeda2] -> [activecurse0 cursor0a][ | number2] SFX6\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\n(empty blue -> red)\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\nrandom [action curse2 curse0 no holding] -> [activecurse0 cursor0a] SFX6\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\n\n\n[action player] -> SFX0\n[action curse0] -> SFX0\n\n(Aesthetic----------------------------------------------------------------------------------------)\n\n\n\n(ghosts)\n[player1 active][pit0] -> [player1 active][pit0ghost]\n[pit0ghost][cursor0] -> [pit0][cursor0]\n[player1 active][wall0] -> [player1 active][wall0ghost]\n[wall0ghost][cursor0] -> [wall0][cursor0]\n[player1 active][crate0] -> [player1 active][crate0ghost]\n[crate0ghost][cursor0] -> [crate0][cursor0]\n[player1 active][fell0] -> [player1 active][fell0ghost]\n[fell0ghost][cursor0] -> [fell0][cursor0]\n[curse0 activecurse0][wall2] -> [curse0 activecurse0][wall2ghost]\n[wall2ghost][curse2] -> [wall2][curse2]\n\n\n(wall boundaries)\n[wallx2] -> []\n[wallx1] -> []\n[wallx0] -> []\nup [wall2 | no wall2] -> [wall2 wallu2 | ]\ndown [wall2 | no wall2] -> [wall2 walld2 | ]\nleft [wall2 | no wall2] -> [wall2 walll2 | ]\nright [wall2 | no wall2] -> [wall2 wallr2 | ]\nup [wall1 | no wall1] -> [wall1 wallu1 | ]\ndown [wall1 | no wall1] -> [wall1 walld1 | ]\nleft [wall1 | no wall1] -> [wall1 walll1 | ]\nright [wall1 | no wall1] -> [wall1 wallr1 | ]\nup [wall0 | no wall0] -> [wall0 wallu0 | ]\ndown [wall0 | no wall0] -> [wall0 walld0 | ]\nleft [wall0 | no wall0] -> [wall0 walll0 | ]\nright [wall0 | no wall0] -> [wall0 wallr0 | ]\n\n(crate connectors)\nup [crateu0|] -> [crateu0 | crated0]\nright [crater0|] -> [crater0 | cratel0]\nup [crateu1|] -> [crateu1 | crated1]\nright [crater1|] -> [crater1 | cratel1]\n(pit connectors)\n[blackcorner] -> []\n[pit0x] -> [] \n[pit1x] -> [] \nup [pit1 | pit1] -> [pit1u pit1|pit1d pit1]\nright [pit1 | pit1] -> [pit1r pit1|pit1l pit1]\nup [pit0 | pit0] -> [pit0u pit0|pit0d pit0]\nright [pit0 | pit0] -> [pit0r pit0|pit0l pit0]\n[pit1u pit1r] -> [pit1u pit1r blackur]\n[pit1u pit1l] -> [pit1u pit1l blackul]\n[pit1d pit1r] -> [pit1d pit1r blackdr]\n[pit1d pit1l] -> [pit1d pit1l blackdl]\n[pit0u pit0r] -> [pit0u pit0r blackur]\n[pit0u pit0l] -> [pit0u pit0l blackul]\n[pit0d pit0r] -> [pit0d pit0r blackdr]\n[pit0d pit0l] -> [pit0d pit0l blackdl]\n[rim1x] -> []\n[rim0x] -> []\nup[pit0|no pit0] -> [pit0 rim0u|]\ndown[pit0|no pit0] -> [pit0 rim0d|]\nleft[pit0|no pit0] -> [pit0 rim0l|]\nright[pit0|no pit0] -> [pit0 rim0r|]\nup[pit1|no pit1] -> [pit1 rim1u|]\ndown[pit1|no pit1] -> [pit1 rim1d|]\nleft[pit1|no pit1] -> [pit1 rim1l|]\nright[pit1|no pit1] -> [pit1 rim1r|]\nlate [pink] -> []\nlate [cyan] -> []\nlate [chosepink] -> []\nlate [chosecyan] -> []\nlate down [pickable |number0] -> [pickable pink | number0 pink]\nlate down [pickable2 |number2] -> [pickable2 cyan | number2 cyan]\nlate up [pink picked|pink] -> [chosepink picked|chosepink ]\nlate up [cyan picked|cyan ] -> [chosecyan picked|chosecyan ]\n\n(Movement----------------------------------------------------------------------------------------)\n\n(move attached items)\n[moving activecurse0 curse0] -> [moving activecurse0 moving curse0]\n[moving active player1] -> [moving active moving player1]\n[moving activefell ded1] -> [moving activefell moving ded1]\n[moving curse0 holding] -> [moving curse0 moving holding]\n[moving curse2 holding] -> [moving curse2 moving holding]\n\n(reset and propogate cant)\n[cant0] -> []\n[cant1] -> []\n[cant2] -> []\n[fellcant0] -> []\n[fellcant1] -> []\n\n[black no cant0 no cant1 no cant2] -> [black cant0 cant1 cant2]\n[wall2 no cant2] -> [wall2 cant2]\n[wall1 no cant1] -> [wall1 cant1]\n[wall0 no cant0] -> [wall0 cant0]\n[number0] -> [number0 cant1]\n[number2] -> [number2 cant1]\n[no pit1 no fellcant1] -> [fellcant1]\n[no pit0 no fellcant0] -> [fellcant0]\n\n[> ded1][fell1|fellcant1] -> [> ded1][fell1 fellcant1 | fellcant1]\n+ [> ded1][ded1|fellcant1] -> [> ded1][ded1 fellcant1 | fellcant1]\n+ up[fellu1|fellcant1] -> [fellu1 fellcant1 | fellcant1]\n+ left[felll1|fellcant1] -> [felll1 fellcant1 | fellcant1]\n+ down[felld1|fellcant1] -> [felld1 fellcant1 | fellcant1]\n+ right[fellr1|fellcant1] -> [fellr1 fellcant1 | fellcant1]\n\n+ [> player1][crate1|cant1] -> [> player1][crate1 cant1 | cant1]\n+ [> player1][player1|cant1] -> [> player1][player1 cant1 | cant1]\n+ up[crateu1|cant1] -> [crateu1 cant1 | cant1]\n+ left[cratel1|cant1] -> [cratel1 cant1 | cant1]\n+ down[crated1|cant1] -> [crated1 cant1 | cant1]\n+ right[crater1|cant1] -> [crater1 cant1 | cant1]\n+ [crate1 crate0 cant0] -> [crate1 crate0 cant0 cant1]\n+ [crate1 crate0 cant1] -> [crate1 crate0 cant0 cant1]\n+ [> dead0][dead0|fellcant0] -> [> dead0][dead0 fellcant0 | fellcant0]\n+ [> cursor0][cursor0|cant0] -> [> cursor0][cursor0 cant0 | cant0]\n+ [> cursor0][crate0 | number0] -> [> cursor0][crate0 cant0| number0]\n+ [> cursor0][crate0|cant0] -> [> cursor0][crate0 cant0 | cant0]\n+ up[crateu0|cant0] -> [crateu0 cant0 | cant0]\n+ left[cratel0|cant0] -> [cratel0 cant0 | cant0]\n+ down[crated0|cant0] -> [crated0 cant0 | cant0]\n+ right[crater0|cant0] -> [crater0 cant0 | cant0]\n\n[> curse2 | wall2] -> [stationary curse2 | wall2]\n[> curse2 | black] -> [stationary curse2 | black]\n[cursor0 cant0] -> [stationary cursor0 cant0]\n[player1 cant1] -> [stationary player1 cant1]\n[ded1 fellcant1] -> [stationary ded1 fellcant1]\n[dead0 fellcant0] -> [stationary dead0 fellcant0]\n\n\n(propagate movement)\n\n[ > Ded1 | Fell1 no fellcant1] -> [ > Ded1 | > Fell1 ]\n\n[ > Cursor0 | Crate0 ] -> [ > Cursor0 | > Crate0 ]\n+ [ > Cursor0 | Cursor0 ] -> [ > Cursor0 | > Cursor0 ]\n+ [ > Crate0 | Crate0 ] -> [ > Crate0 | > Crate0 ]\n\n+ [ > Player1 | Crate1 ] -> [ > Player1 | > Crate1 ]\n+ [ > Player1 | Player1] -> [ > Player1 | > Player1 ]\n+ [ > Crate1 | Player1 ] -> [ > Crate1 | > Player1 ]\n+ [> crate1|crate1] -> [> crate1 | > crate1]\n+ up[moving crate1 crateu1|crate1] -> [moving crate1 crateu1 | moving crate1]\n+ left[moving crate1 cratel1|crate1] -> [moving crate1 cratel1 | moving crate1]\n+ down[moving crate1 crated1|crate1] -> [moving crate1 crated1 | moving crate1]\n+ right[moving crate1 crater1|crate1] -> [moving crate1 crater1 | moving crate1]\n \n\n[> fell1|fell1] -> [> fell1 | > fell1]\n+ up[moving fell1 fellu1|fell1] -> [moving fell1 fellu1 | moving fell1]\n+ left[moving fell1 felll1|fell1] -> [moving fell1 felll1 | moving fell1]\n+ down[moving fell1 felld1|fell1] -> [moving fell1 felld1 | moving fell1]\n+ right[moving fell1 fellr1|fell1] -> [moving fell1 fellr1 | moving fell1]\n\n[moving crate1 cratex1] -> [moving crate1 moving cratex1]\n[moving fell1 fellx1] -> [moving fell1 moving fellx1]\n[moving crate1 crate0ghost] -> [moving crate1 moving crate0ghost]\n\n[active stationary player1] -> [stationary active stationary player1]\n[activecurse0 stationary curse0] -> [stationary activecurse0 stationary curse0]\n[activefell stationary ded1] -> [stationary activefell stationary ded1]\n[stationary cursor0 activecurse0 holding] -> [stationary cursor0 activecurse0 stationary holding]\n[stationary curse2 holding] -> [stationary curse2 stationary holding]\n\n\n(falling)\nlate [supported] -> []\n\nlate [crate1 ded1] -> [crate1 supported ded1]\nlate [crate1 no pit1] -> [crate1 supported]\nlate [crate1 fell1] -> [crate1 fell1 supported]\n\n\nlate up[crateu1|supported] -> [crateu1 supported | supported]\n+ late left[cratel1|supported] -> [cratel1 supported | supported]\n+ late down[crated1|supported] -> [crated1 supported | supported]\n+ late right[crater1|supported] -> [crater1 supported | supported]\n\n\nlate [cursor0 pit0 no fell0] -> [pit0 dead0a]SFX3\nlate [player1 active pit1 no fell1 no ded1] -> [pit1 ded1 activefell]SFX3\nlate [player1 pit1 no fell1 no ded1] -> [pit1 ded1 ]SFX3\nlate [crate0 pit0 no supported] -> [pit0 fell0]SFX3\nlate [crate1 pit1 no supported] -> [pit1 fell1] SFX3\n\n\n\nlate [crateu1 no crate1 fell1] -> [fellu1 fell1]\nlate [cratel1 no crate1 fell1] -> [felll1 fell1]\nlate [crater1 no crate1 fell1] -> [fellr1 fell1]\nlate [crated1 no crate1 fell1] -> [felld1 fell1]\n\nlate [crateu1 no crate1] -> []\nlate [cratel1 no crate1] -> []\nlate [crater1 no crate1] -> []\nlate [crated1 no crate1] -> []\nlate up [crateu1 |no crate1] -> [|]\nlate left [cratel1 |no crate1] -> [|]\nlate right [crater1 |no crate1] -> [|]\nlate down [crated1 |no crate1] -> [|]\nlate [player1 ded1] -> [player1 ded1] SFX0\nlate [player1 ded1] -> cancel \n\n[moving crate0] -> SFX2\n[moving crate1] -> SFX2\n\n==============\nWINCONDITIONS\n==============\n\n\nAll target0 on crate0\nAll Target1 on Crateorfell1\nAll PlayerTarget1 on Playerormark1\nno Cursor0 on target1\nno cursor0 on PlayerTarget1\n\n=======\nLEVELS\n=======\n\nmessage Book 1: BASE\n\nmessage Page 1.1: GOAL\n\n#######\n#`````#\n#`p`t`#\n#`````#\n#`o`q`#\n#`````#\n#######\n\nmessage Page 1.2: TOOL\n\n#######\n#`t`o`#\n#t`-:`#\n#``tlo#\n#p````#\n#######\n\nmessage Page 1.3: HOLE\n\n########\n##``0`##\n#```0``#\n#``o0`t#\n#po:0``#\n#``:0`t#\n#```0``#\n##``0`##\n########\n\nmessage Page 1.4: FALL\n\n########\n#00u``0#\n#00po`0#\n#`000`0#\n#`00```#\n#`000``#\n#`000``#\n########\n\nmessage Book 2: EDIT\n\nmessage Page 2.1: MINI\n\n||||||||||\n|```````'|\n|`######`|\n|`#````#`|\n|`#``t`#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 2.2: FORM\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 2.3: PLUG\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#ro`o`#`|\n|`#####`#`|\n|`###`o`#`|\n|`#``oLo#`|\n|`#````##`|\n|`#`q####`|\n|`#######`|\n|`````````|\n|``c`0````|\n|````8````|\n|`````````|\n|||||||||||\n\nmessage Page 2.4: TRAP\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#``````#`|\n|`#``t```#`|\n|`#`tqt``#`|\n|`#``t```#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````16````|\n|``````````|\n||||||||||||\n\nmessage Book 3: DUAL\n\nmessage Page 3.1: CO-OP\n\n#######\n####qq#\n#po000#\n#`o000#\n###o``#\n###r`'#\n#######\n\nmessage Page 3.2: REST\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#`r00q#`|\n|`#######`|\n|`````````|\n|``c`o````|\n|````2````|\n|`````````|\n|||||||||||\nmessage Page 3.3: SAIL\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#0000q#`|\n|`#00000#`|\n|`#00000#`|\n|`#```00#`|\n|`#```00#`|\n|`#######`|\n|`````````|\n|``c`ro```|\n|````23```|\n|`````````|\n|||||||||||\n\nmessage Page 3.4: TWIN\n\n|||||||||||||||||||||\n|`````````+````````'|\n|`#######`+`#######`|\n|`#`````#`+`#`````#`|\n|`#```q`#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`q```#`|\n|`#`````#`+`#`````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````6````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Book 4: WHAT\n\nmessage Page 4.1: GUIS\n\n\n#######\n#q#``'#\n#``8#`#\n#`#p#`#\n#`#o#`#\n#`#1``#\n#######\n\nmessage Page 4.2: IDEA\n\n||||||||||\n|```````'|\n|`######`|\n|`#```t#`|\n|`#```t#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```31```|\n|````````|\n||||||||||\n\nmessage Page 4.3: FILL\n\n\n######\n#0poq#\n#0`70#\n#'000#\n#0000#\n######\n\nmessage Page 4.4: A LOT\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|``````'|\n|`c3o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Book 5: UHHH\n\nmessage Page 5.1: WALL\n\n||||||||||\n|```````'|\n|`######`|\n|`#t`#`#`|\n|`#````#`|\n|`##`o`#`|\n|x+xxxx+x|\n|`#````#`|\n|`#````#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 5.2: SAFE\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#xxxxx#`|\n|`#x```x#`|\n|`#x`t`x#`|\n|`#x```x#`|\n|`#xxxxx#`|\n|`#######`|\n|`````````|\n|`c`o1r```|\n|```111```|\n|`````````|\n|||||||||||\n\nmessage Page 5.3: LOCK\n\n|||||||||||||\n|o```'`xxxcx|\n|1``x```qx!x|\n|`1!````qx`x|\n|``1?x`xxx?x|\n|r``1````!`x|\n|````2`xxxxx|\n|||||||||||||\n\n\n\nmessage Page 5.4: POST\n\n+++++++++\n+p#```#q+\n+`#``'#3+\n+`#`1`#`+\n+`#`2`#`+\n+`#```#`+\n+`#```#`+\n+++++++++\nmessage Book 6: BLUE\n\nmessage Page 6.1: META\n\n||||||||||||\n|++++++++++|\n|+````\"```+|\n|+`######`+|\n|+`#````#`+|\n|+`#``t`#`+|\n|+`#````#`+|\n|+`######`+|\n|+````````+|\n|+```ro```+|\n|+````````+|\n|+````````+|\n|++++++++++|\n|``````````|\n|``~`1b````|\n|````{[````|\n|``````````|\n||||||||||||\n\nmessage Page 6.2: WILD\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`#######`+|\n|+`#0000q#`+|\n|+`#00000#`+|\n|+`#`0000#`+|\n|+`#`0000#`+|\n|+`#```00#`+|\n|+`#######`+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\nmessage Page 6.3: UH OH\n\n|||||||||||\n|+++++++++|\n|+``````\"+|\n|+`+++++`+|\n|+`+```+`+|\n|+`+`t`+`+|\n|+`+```+`+|\n|+`+```+`+|\n|+`+++++`+|\n|+```````+|\n|+```o```+|\n|+```````+|\n|+```````+|\n|+++++++++|\n|`````````|\n|`````````|\n|`~`1br```|\n|```][[```|\n|`````````|\n|||||||||||\n\nmessage Page 6.4: VARY\n\n|||||||||||||||||||||||\n|++++++++++&++++++++++|\n|+``````\"`x&x````````+|\n|+`######`x&x`######`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`#`qt`#`x&x`#`tq`#`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`######`x&x`######`+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|++++++++++&++++++++++|\n|``````````&``````````|\n|`~`r1ob```&`_`r1ob```|\n|```[{[[```&```[[[[```|\n|``````````&``````````|\n|||||||||||||||||||||||\n\nmessage Book 7: ?!?!\n\nmessage Page 7.1: EACH\n\n+++++++\n+````'+\n+`###`+\n+`#q#`+\n+`#0#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`###`+\n+`````+\n+``c``+\n+`r0o`+\n+``4``+\n+`````+\n+++++++\n\nmessage Page 7.2: HOLD\n\n&&&&&&&&&\n&`8```+`&\n&`{po`+`&\n&`\"```+t&\n&&&&&&&&&\n\nmessage Page 7.3: TRIP\n\n&&&&&&&\n&```\"`&\n&`o`!`&\n&`````&\n&+++++&\n&`r2b`&\n&`[[{~&\n&y```t&\n&&&&&&&\n\nmessage Page 7.4: PLAN\n\n\n|||||||||\n|```t```|\n|```````|\n|+++++++|\n|```````|\n|```````|\n|>>>>>>>|\n|```````|\n|```````|\n|+++++++|\n|```~```|\n|[[`2\"11|\n|[[`[`[[|\n|&&`&&&&|\n|&&bor&&|\n|||||||||\n\n\n\n\n\nmessage Book 8: (RE)STAR(TS)\n\n\nmessage Page 8.1: (IN)FORM(ED)\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 8.2: (EN)TWIN(ED)\n\n|||||||||||||||||||||\n|`````````+`````````|\n|`#######`+`#######`|\n|`#````q#`+`#`````#`|\n|`#`````#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`````#`|\n|`#`````#`+`#q````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````5````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Page 8.3: (ZE)ALOT(RY)\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|```````|\n|`c2o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Page 8.4: (BE)WILD(ER)\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`+++++++`+|\n|+`+0000q+`+|\n|+`+00000+`+|\n|+`+00000+`+|\n|+`+`0000+`+|\n|+`+```00+`+|\n|+`+++++++`+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",[0,3,0,3,2,1,1,2,2,3,0,1,0,3,3,1,2,2,2,2,3,0,0,1,0,0,3,3,0,2,2,0,3,1,0,2,2,2,1,1,1,2],"background cant1 fellcant0 fellcant1 wall1:0,0,background cant1 fellcant0 fellcant1 wall1 wallr1:1,1,1,1,1,0,\n0,0,background cant1 fellcant0 fellcant1 wall1 walld1 wallr1:2,background fellcant0 fellcant1:3,3,3,3,3,\nbackground cant1 fellcant0 fellcant1 wall1 wallr1 wallu1:4,0,background cant1 fellcant0 fellcant1 wall1 walld1:5,3,3,3,3,3,\n3,3,background cant1 fellcant0 fellcant1 wall1 wallu1:6,5,3,3,3,3,\n3,3,3,6,5,background fellcant0 pit1 pit1d rim1l rim1r rim1u:7,background fellcant0 pit1 pit1d pit1u rim1l rim1r:8,8,\n8,8,activefell background ded1 fellcant0 pit1 pit1d pit1u rim1l rim1r:9,background fell1 fellcant0 pit1 pit1u rim1d rim1l rim1r:10,6,5,3,background crate1 crated1 fellcant0 fellcant1 supported:11,\nbackground crate1 crated1 crateu1 fellcant0 fellcant1 supported:12,background crate1 crateu1 fellcant0 fellcant1 supported:13,3,3,3,6,0,background cant1 fellcant0 fellcant1 wall1 walld1 walll1:14,\n3,background fellcant0 fellcant1 target1:15,3,15,3,background cant1 fellcant0 fellcant1 wall1 walll1 wallu1:16,0,0,\n0,background cant1 fellcant0 fellcant1 wall1 walll1:17,17,17,17,17,0,0,\n",6,"1642084928380.6565"] +], +[ + "VEXT EDIT B", + ["title VEXT EDIT\nauthor JACK\n\nrun_rules_on_level_start\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\n#eeeeee\n\nPlayerTarget1mark\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1mark\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nPlayerTarget1\n#0f0 #ff0\n.000.\n.000.\n00100\n.000.\n.0.0.\n\nTarget1\n#0f0 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nTarget0Mark\n#0f0 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nWall0 \n#884400 #f00\n00000\n00000\n00000\n00000\n00000\n\nwalll0 \nBrown #f00\n1....\n1....\n1....\n1....\n1....\n\nWallr0 \nBrown #f00\n....1\n....1\n....1\n....1\n....1\n\nWalld0 \nBrown #f00\n.....\n.....\n.....\n.....\n11111\n\nWallu0 \nBrown #f00\n11111\n.....\n.....\n.....\n.....\n\nBlack\nblack\n\nwall0ghost\ntransparent\n\nWall0Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1Mark\n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall1 \n#884400 #ff0\n00000\n00000\n00000\n00000\n00000\n\nWall2\n#884400 #00f\n00000\n00000\n00000\n00000\n00000\n\nwalll2\nBrown #00f\n1....\n1....\n1....\n1....\n1....\n\nWallr2 \nBrown #00f\n....1\n....1\n....1\n....1\n....1\n\nWalld2 \nBrown #00f\n.....\n.....\n.....\n.....\n11111\n\nWallu2 \nBrown #00f\n11111\n.....\n.....\n.....\n.....\n\nwalll1 \nBrown #ff0\n1....\n1....\n1....\n1....\n1....\n\nWallr1 \nBrown #ff0\n....1\n....1\n....1\n....1\n....1\n\nWalld1 \nBrown #ff0\n.....\n.....\n.....\n.....\n11111\n\nWallu1 \nBrown #ff0\n11111\n.....\n.....\n.....\n.....\n\nCrate1Mark\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate1\n#f80 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate01\ntransparent\n\nCrate0\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nCrate0mark\n#f80 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\ncrate0ghost\ntransparent\n\nPlayer1Mark\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nPlayer1\n#884400 #f80 White #80f #f80\n.000.\n.414.\n33333\n.333.\n.3.3.\n\nDed1Mark\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nDed1\n#442200 #bb6600 White #408 Yellow\n.000.\n.111.\n33333\n.333.\n.3.3.\n\nCrated0\n#f80 #f00\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu0\n#f80 #f00\n.010.\n.010.\n.....\n.....\n.....\n\nCratel0\n#f80 #f00\n.....\n00...\n11...\n00...\n.....\n\nCrater0\n#f80 #f00\n.....\n...00\n...11\n...00\n.....\n\nCrated1\n#f80 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nCrateu1\n#f80 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nCratel1\n#f80 #ff0\n.....\n00...\n11...\n00...\n.....\n\nCrater1\n#f80 #ff0\n.....\n...00\n...11\n...00\n.....\n\n\nPit1Mark\nblack #bbbb00 white\n.111.\n10001\n10001\n10001\n.111.\n\n\nPit1\nblack #bbbb00 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\npit0ghost\ntransparent\n\nPit0\nblack #bb0000 #eeeeee\n.111.\n10001\n10001\n10001\n.111.\n\n\npit0u\nblack #bb0000\n10001\n.....\n.....\n.....\n.....\n\npit0d\nblack #bb0000\n.....\n.....\n.....\n.....\n10001\n\npit0l\nblack #bb0000\n1....\n0....\n0....\n0....\n1....\n\npit0r\nblack #bb0000\n....1\n....0\n....0\n....0\n....1\n\npit1u\nblack #bbbb00\n10001\n.....\n.....\n.....\n.....\n\npit1d\nblack #bbbb00\n.....\n.....\n.....\n.....\n10001\n\npit1l\nblack #bbbb00\n1....\n0....\n0....\n0....\n1....\n\npit1r\nblack #bbbb00\n....1\n....0\n....0\n....0\n....1\n\nrim0u\n#b00\n.000.\n.....\n.....\n.....\n.....\n\nrim0l\n#b00\n.....\n0....\n0....\n0....\n.....\n\nrim0r\n#b00\n.....\n....0\n....0\n....0\n.....\n\nrim0d\n#b00\n.....\n.....\n.....\n.....\n.000.\n\nrim1u\n#bb0\n.000.\n.....\n.....\n.....\n.....\n\nrim1l\n#bb0\n.....\n0....\n0....\n0....\n.....\n\nrim1r\n#bb0\n.....\n....0\n....0\n....0\n.....\n\nrim1d\n#bb0\n.....\n.....\n.....\n.....\n.000.\n\nblackul\nblack\n0....\n.....\n.....\n.....\n.....\n\nblackur\nblack\n....0\n.....\n.....\n.....\n.....\n\nblackdl\nblack\n.....\n.....\n.....\n.....\n0....\n\nblackdr\nblack\n.....\n.....\n.....\n.....\n....0\n\nfell0\n#884400 #f00\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfell1mark\n#884400 #ff0\n.....\n.000.\n.010.\n.000.\n.....\n\nfelld1\n#884400 #ff0\n.....\n.....\n.....\n.010.\n.010.\n\nfellu1\n#884400 #ff0\n.010.\n.010.\n.....\n.....\n.....\n\nfelll1\n#884400 #ff0\n.....\n00...\n11...\n00...\n.....\n\nfellr1\n#884400 #ff0\n.....\n...00\n...11\n...00\n.....\n\nfell0ghost\ntransparent\n\nsupported\ntransparent\n\nfellcant1\ntransparent\n\ncant1\ntransparent\n\ncant0\ntransparent\n\nfellcant0\ntransparent\n\ndead0a\ndarkred\n.....\n.0.0.\n.....\n.0.0.\n.....\n\ncursor0a\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\ncursor0b\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\n\n\ncursor2a\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\ncursor2b\n#00f\n0...0\n.....\n.....\n.....\n0...0\n\none2mark\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2mark\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2mark\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none2\n#00f\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo2\n#00f\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree2\n#00f\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0mark\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0mark\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0mark\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\none0\n#f00\n.00..\n..0..\n..0..\n..0..\n.000.\n\ntwo0\n#f00\n.00..\n...0.\n..0..\n.0...\n.000.\n\nthree0\n#f00\n.00..\n...0.\n..00.\n...0.\n.00..\n\nfour0\n#f00\n.0.0.\n.0.0.\n..00.\n...0.\n...0.\n\nfive0\n#f00\n.000.\n.0...\n.00..\n...0.\n.00..\n\nsix0\n#f00\n..00.\n.0...\n.00..\n.0.0.\n..0..\n\nseven0\n#f00\n.000.\n...0.\n...0.\n..0..\n..0..\n\ninf0\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\ninf0mark\n#f00\n.....\n00.00\n0.0.0\n00.00\n.....\n\n\ndecrement\ntransparent\n\nholding\ntransparent\n\nactiveb\n#f00\n.....\n.0.0.\n.....\n.....\n.....\n\nactive\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\nactivefell\n#ff0\n.....\n.0.0.\n.....\n.....\n.....\n\npickeda0\ntransparent\n\npickedb0\ntransparent\n\npickeda2\ntransparent\n\npickedb2\ntransparent\n\nchosepink\n#ff22ff\n\nchosecyan\n#22ffff\n\npink\n#ff88ff\n\ncyan\n#88ffff\n\nplacemark\ntransparent\n\nactivecurse0\ntransparent\n\npartb\ntransparent\n\npartc\ntransparent\n\ncursor0mark\n#f00\n00.00\n0...0\n.....\n0...0\n00.00\n\nwall2ghost\ntransparent\n\ncant2\ntransparent\n\nshowhere\ntransparent\n\nshowthis\ntransparent\n=======\nLEGEND\n=======\n\n` = Background\n& = Wall2 and wall1 and wall0\n# = Wall1\nX = Wall0\n+ = Wall0 and Wall1\nP = Player1 and active\n\nn = crate0 and crate1 and crate01\no = Crate1\n- = crate1 and crater1\n: = crate1 and crateu1\nL = crate1 and crater1 and crateu1\n0 = pit1\n! = crate0\n? = pit0\n/ = pit0 and pit1\n\n@ = one0 and pit0\nz = player1 and pit0\n\n| = black\n\n' = partb\n\" = partc\n\n~ = cursor2a\n_ = cursor2b\n\n1 = one0\n2 = two0\n3 = three0\n4 = four0\n5 = five0\n6 = six0\n7 = seven0\n8 = inf0\n\n[ = one2\n{ = two2\n] = three2\n> = wall2\nactiveab = active or activeb or activefell\npartbc = partb or partc\n\ny = target0\nu = Target1 and pit1\nt = Target1\nq = playertarget1\nr = player1\nb = cursor0a\nc = cursor0a and activecurse0\nk = cursor0b and activecurse0\ncurse0a = cursor0a or dead0a\ncurse0 = curse0a or cursor0b\ncurse2 = cursor2a or cursor2b\ncursor0 = cursor0a or cursor0b\n \nplayer = curse2 or activecurse0 or active or dead0a or activefell\ndead0 = dead0a\nx1 = player1 or crate1 or wall1 or target1 or playertarget1 or pit1\nx0 = crate0 or wall0 or pit0 or fell0\nxx = x0 or x1 or curse0\nx0ghost = crate0ghost or wall0ghost or pit0ghost or fell0ghost\ncratex1 = cratel1 or crater1 or crated1 or crateu1\nwallx2 = walll2 or wallr2 or walld2 or wallu2\nwallx1 = walll1 or wallr1 or walld1 or wallu1\nwallx0 = walll0 or wallr0 or walld0 or wallu0\nfellx1 = felll1 or fellr1 or felld1 or fellu1\npit0x = pit0l or pit0r or pit0d or pit0u\npit1x = pit1l or pit1r or pit1d or pit1u\ncrateorfell1 = crate1 or fell1\nplayerormark1 = player1 or player1mark\n\nx0mark = one0mark or two0mark or three0mark or cursor0mark or wall0mark or target0mark or crate0mark or inf0mark\nx1mark = player1mark or crate1mark or pit1mark or wall1mark or fell1mark or ded1mark or crate1mark or Target1mark or PlayerTarget1mark\nx2mark = one2mark or two2mark or three2mark\nxmark = x0mark or x1mark or x2mark\nnumber0 = one0 or two0 or three0 or four0 or five0 or six0 or seven0 or inf0\nnumber2 = one2 or two2 or three2\npicked = pickeda0 or pickedb0 or pickeda2 or pickedb2\n\npickable = player1 or pit1 or crate1 or number0 or wall1 or number2 or fell1 or ded1 or target0 or PlayerTarget1 or Target1\npickable2 = curse0a or pickable or wall0 or crate0 \n\nblackcorner = blackul or blackdl or blackur or blackdr\nrim0x = rim0l or rim0d or rim0u or rim0r\nrim1x = rim1l or rim1d or rim1u or rim1r \n=======\nSOUNDS\n=======\n\nSFX0 51304502\n\nsfx1 22108304\n\nSFX2 84700307\n\nSFX3 78571302\n\nSFX4 25131906\n\nSFX5 13408901\n\nSFX6 50704903\n\nSFX7 24622504\n\nSFX8 29744504\n\nSFX9 13344503\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\npink, chosepink\ncyan, chosecyan\n\n\nPit1,\npit1r\npit1l\npit1d\npit1u\npit0, pit0ghost\npit0r\npit0l\npit0d\npit0u\nblackul\nblackur\nblackdr\nblackdl\nTarget1, PlayerTarget1, target0\n\nfell1, ded1\nfelll1\nfellr1\nfelld1\nfellu1\n\ndead0a, fell0, fell0ghost\nrim0l \nrim0d \nrim0u \nrim0r\n\nrim1l \nrim1d \nrim1u \nrim1r \nPlayer1, Wall1, Crate1, \npit1mark\nfell1mark, ded1mark, target0mark\nTarget1mark, PlayerTarget1mark\nplayer1mark, crate1mark\nwall1mark\none0mark, two0mark, three0mark, wall0mark, inf0mark\none2mark, two2mark, three2mark\ncursor0mark, crate0mark\nnumber0, number2\ncratel1, walll1, \ncrater1, wallr1, \ncrated1, walld1, \ncrateu1, wallu1, \ncursor0, wall0, crate0, wall0ghost, crate0ghost\n walll0, cratel0\n wallr0, crater0\n walld0, crated0\n wallu0, crateu0\n crate01\n wall2, wall2ghost\n wallr2\n wallu2\n walll2\n walld2\n cursor2a, cursor2b\n \nfellcant1\nfellcant0\ncant0\ncant1\ncant2\nsupported\nactivefell\nactive, activeb\nactivecurse0\nholding\ndecrement\npickeda0, pickeda2\npickedb0, pickedb2\nplacemark\npartb partc\nshowthis\nshowhere\nblack\n\n======\nRULES\n======\n\n(Deal with action-----------------------------------------------------------------------------)\n\n[action activecurse0 curse0] -> [activecurse0 action curse0]\n\n(pick up ready icon)\ndown[action curse0a no holding pickable|number0] -> [curse0a holding pickable|number0 pickeda0] SFX9\ndown[action cursor0b no holding pickable|number0] -> [cursor0b holding pickable|number0 pickedb0] SFX9\ndown[action cursor2a no holding pickable2|number2] -> [cursor2a holding pickable2|number2 pickeda2] SFX9\ndown[action cursor2b no holding pickable2|number2] -> [cursor2b holding pickable2|number2 pickedb2] SFX9\n(switch to new ready icon)\ndown [action curse0a pickable| number0 no pickeda0][pickeda0] -> [curse0a pickable | number0 pickeda0][] SFX9\ndown [action cursor0b pickable| number0 no pickedb0][pickedb0] -> [cursor0b pickable | number0 pickedb0][] SFX9\ndown [action cursor2a pickable2| number2 no pickeda2][pickeda2] -> [cursor2a pickable2 | number2 pickeda2][] SFX9\ndown [action cursor2b pickable2| number2 no pickedb2][pickedb2] -> [cursor2b pickable2 | number2 pickedb2][] SFX9\n\n(put down ready icon)\ndown [action curse0 holding pickable| picked] -> [curse0 pickable|] SFX8\ndown [action cursor2a holding pickable2| pickeda2] -> [cursor2a pickable2|] SFX8\ndown [action cursor2b holding pickable2| pickedb2] -> [cursor2b pickable2|] SFX8\n\n(show mark)\nlate [xmark] -> []\nlate [showthis] -> []\nlate [showhere] -> []\n\nlate down [ | number0 pickeda0][curse0a] -> [showthis | number0 pickeda0][curse0a showhere]\nlate down [ | number0 pickedb0][cursor0b] -> [showthis | number0 pickedb0][cursor0b showhere]\nlate down [ | number2 pickeda2][cursor2a] -> [showthis | number2 pickeda2][cursor2a showhere]\nlate down [ | number2 pickedb2][cursor2b] -> [showthis | number2 pickedb2][cursor2b showhere]\nlate [showthis player1][showhere] -> [showthis player1][showhere player1mark]\nlate [showthis pit1][showhere] -> [showthis pit1][showhere pit1mark]\nlate [showthis crate1][showhere] -> [showthis crate1][showhere crate1mark]\nlate [showthis wall1][showhere] -> [showthis wall1][showhere wall1mark]\nlate [showthis one0][showhere] -> [showthis one0][showhere one0mark]\nlate [showthis two0][showhere] -> [showthis two0][showhere two0mark]\nlate [showthis three0][showhere] -> [showthis three0][showhere three0mark]\nlate [showthis one2][showhere] -> [showthis one2][showhere one2mark]\nlate [showthis two2][showhere] -> [showthis two2][showhere two2mark]\nlate [showthis three2][showhere] -> [showthis three2][showhere three2mark]\nlate [showthis wall0][showhere] -> [showthis wall0][showhere wall0mark]\nlate [showthis fell1][showhere] -> [showthis fell1][showhere fell1mark]\nlate [showthis ded1][showhere] -> [showthis ded1][showhere ded1mark]\nlate [showthis target0][showhere] -> [showthis target0][showhere target0mark]\nlate [showthis crate0][showhere] -> [showthis crate0][showhere crate0mark]\nlate [showthis cursor0][showhere] -> [showthis cursor0][showhere cursor0mark]\nlate [showthis inf0][showhere] -> [showthis inf0][showhere inf0mark]\nlate [showthis Target1][showhere] -> [showthis target1][showhere Target1mark]\nlate [showthis PlayerTarget1][showhere] -> [showthis PlayerTarget1][showhere PlayerTarget1mark]\n(connect cratemark)\nup [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crateu1 | crate1 crated1]\ndown [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crated1 | crate1 crateu1]\nleft [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark cratel1 | crate1 crater1]\nright [action curse0 holding crate1mark no x1 no number0| crate1] -> [action curse0 holding crate1mark crater1 | crate1 cratel1]\nup [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crateu1 | fell1 felld1]\ndown [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crated1 | fell1 fellu1]\nleft [action curse0 holding fell1mark no xx no number0 no number2| fell1] -> [action curse0 holding fell1mark cratel1 | fell1 fellr1]\nright [action curse0 holding fell1mark no xx no number0 no number2 | fell1] -> [action curse0 holding fell1mark crater1 | fell1 felll1]\n\n(place mark)\n[placemark] -> []\n\ndown [action curse0a holding xmark no x1 no number0][pickeda0 number0] -> [curse0a holding xmark placemark][pickeda0 decrement number0] SFX7\ndown [action cursor0b holding xmark no x1 no number0][pickedb0 number0] -> [cursor0b holding xmark placemark][pickedb0 decrement number0] SFX7\n\ndown [action cursor2a holding xmark no xx no number0 no number2][pickeda2 number2] -> [cursor2a holding xmark placemark][pickeda2 decrement number2] SFX7\ndown [action cursor2b holding xmark no xx no number0 no number2][pickedb2 number2] -> [cursor2b holding xmark placemark][pickedb2 decrement number2] SFX7\n\n\n\n[placemark player1mark] -> [placemark player1 player1mark]\n[placemark pit1mark] -> [placemark pit1 pit1mark]\n[placemark crate1mark] -> [placemark crate1 crate1mark]\n[placemark wall1mark] -> [placemark wall1 wall1mark]\n[placemark one0mark] -> [placemark one0 one0mark]\n[placemark two0mark] -> [placemark two0 two0mark]\n[placemark three0mark] -> [placemark three0 three0mark]\n[placemark one2mark] -> [placemark one2 one2mark]\n[placemark two2mark] -> [placemark two2 two2mark]\n[placemark three2mark] -> [placemark three2 three2mark]\n[placemark wall0mark] -> [placemark wall0 wall0mark]\n[placemark fell1mark] -> [placemark fell1 fell1mark]\n[placemark ded1mark] -> [placemark ded1 ded1mark]\n[placemark target0mark] -> [placemark target0 target0mark]\n[placemark crate0mark] -> [placemark crate0 crate0mark]\n[placemark Target1mark] -> [placemark target1 Target1mark]\n[placemark inf0mark] -> [placemark inf0 inf0mark]\n[placemark PlayerTarget1mark] -> [placemark playertarget1 PlayerTarget1mark]\ndown [placemark cursor0mark][curse0a|no one2] -> [ cursor0b cursor0mark][curse0a|]\n[placemark cursor0mark] -> [placemark cursor0a cursor0mark]\n\n(decrement number of placed item)\ndown [xmark holding cursor2a][pickable2|one2 decrement pickeda2] -> [xmark holding cursor2a][|one2 decrement pickeda2]\ndown [xmark holding cursor2b][pickable2|one2 decrement pickedb2] -> [xmark holding cursor2b][|one2 decrement pickedb2]\ndown [xmark holding curse0a][pickable|one0 decrement pickeda0] -> [xmark holding curse0a][|one0 decrement pickeda0]\ndown [xmark holding cursor0b][pickable|one0 decrement pickedb0] -> [xmark holding cursor0b][|one0 decrement pickedb0]\ndown [xmark holding cursor2a][|one2 decrement pickeda2] -> [cursor2a][|]\ndown [xmark holding cursor2b][|one2 decrement pickedb2] -> [cursor2b][|]\ndown [xmark holding cursor0a][|one0 decrement pickeda0] -> [cursor0a][|]\ndown [xmark holding cursor0b][|one0 decrement pickedb0] -> [cursor0b][|]\n[one0 decrement] -> []\n[two0 decrement] -> [one0]\n[three0 decrement] -> [two0]\n[four0 decrement] -> [three0]\n[five0 decrement] -> [four0]\n[six0 decrement] -> [five0]\n[seven0 decrement] -> [six0]\n[one2 decrement] -> []\n[two2 decrement] -> [one2]\n[three2 decrement] -> [two2]\n\n\n\n(player -> cursor)\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [player1 action active no wall0ghost no crate0ghost][partbc] -> [cursor0a player1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\nrandom [ded1 action activefell no wall0ghost no crate0ghost][partbc] -> [cursor0a ded1 activecurse0][partbc] SFX5\n[player1 action active no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b player1 activecurse0][curse0a][partbc] SFX5\n[ded1 action activefell no wall0ghost no crate0ghost][curse0a][partbc] -> [cursor0b ded1 activecurse0][curse0a][partbc] SFX5\n\n(cursor holding -> player)\ndown [action curse0a activecurse0 player1 holding xmark][| number0 pickeda0] -> [active player1][ | number0] SFX6\ndown [action curse0a activecurse0 ded1 holding xmark][| number0 pickeda0] -> [activefell ded1][ | number0] SFX6\ndown [action cursor0b activecurse0 player1 holding xmark][| number0 pickedb0] -> [active player1][ | number0] SFX6\ndown [action cursor0b activecurse0 ded1 holding xmark][| number0 pickedb0] -> [activefell ded1][ | number0] SFX6\n(empty cursor -> player)\n[action curse0 player1 activecurse0 no holding] -> [active player1] SFX6\n[action curse0 ded1 activecurse0 no holding] -> [activefell ded1] SFX6\n(red -> blue)\n[action cursor0a activecurse0 holding xmark][partc][pickeda0] -> [cursor0a cursor2a][partc][] SFX5\n[action cursor0a activecurse0 ][partc] -> [cursor0a cursor2a][partc] SFX5\n[action cursor0b activecurse0 holding xmark][partc][pickedb0] -> [cursor0b cursor2b][partc][] SFX5\n[action cursor0b activecurse0 ][partc] -> [cursor0b cursor2b][partc] SFX5\n(blue holding -> red)\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\nrandom down [action curse2 curse0 holding xmark][| number2 pickeda2] -> [activecurse0 cursor0a][ | number2] SFX6\ndown [action curse2 curse0 holding xmark][| number2 pickeda2][cursor0a] -> [activecurse0 cursor0b][ | number2][cursor0a] SFX6\n(empty blue -> red)\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\nrandom [action curse2 curse0 no holding] -> [activecurse0 cursor0a] SFX6\n[action curse2 curse0 no holding][cursor0a] -> [activecurse0 cursor0b][cursor0a] SFX6\n\n\n[action player] -> SFX0\n[action curse0] -> SFX0\n\n(Aesthetic----------------------------------------------------------------------------------------)\n\n\n\n(ghosts)\n[player1 active][pit0] -> [player1 active][pit0ghost]\n[pit0ghost][cursor0] -> [pit0][cursor0]\n[player1 active][wall0] -> [player1 active][wall0ghost]\n[wall0ghost][cursor0] -> [wall0][cursor0]\n[player1 active][crate0] -> [player1 active][crate0ghost]\n[crate0ghost][cursor0] -> [crate0][cursor0]\n[player1 active][fell0] -> [player1 active][fell0ghost]\n[fell0ghost][cursor0] -> [fell0][cursor0]\n[curse0 activecurse0][wall2] -> [curse0 activecurse0][wall2ghost]\n[wall2ghost][curse2] -> [wall2][curse2]\n\n\n(wall boundaries)\n[wallx2] -> []\n[wallx1] -> []\n[wallx0] -> []\nup [wall2 | no wall2] -> [wall2 wallu2 | ]\ndown [wall2 | no wall2] -> [wall2 walld2 | ]\nleft [wall2 | no wall2] -> [wall2 walll2 | ]\nright [wall2 | no wall2] -> [wall2 wallr2 | ]\nup [wall1 | no wall1] -> [wall1 wallu1 | ]\ndown [wall1 | no wall1] -> [wall1 walld1 | ]\nleft [wall1 | no wall1] -> [wall1 walll1 | ]\nright [wall1 | no wall1] -> [wall1 wallr1 | ]\nup [wall0 | no wall0] -> [wall0 wallu0 | ]\ndown [wall0 | no wall0] -> [wall0 walld0 | ]\nleft [wall0 | no wall0] -> [wall0 walll0 | ]\nright [wall0 | no wall0] -> [wall0 wallr0 | ]\n\n(crate connectors)\nup [crateu0|] -> [crateu0 | crated0]\nright [crater0|] -> [crater0 | cratel0]\nup [crateu1|] -> [crateu1 | crated1]\nright [crater1|] -> [crater1 | cratel1]\n(pit connectors)\n[blackcorner] -> []\n[pit0x] -> [] \n[pit1x] -> [] \nup [pit1 | pit1] -> [pit1u pit1|pit1d pit1]\nright [pit1 | pit1] -> [pit1r pit1|pit1l pit1]\nup [pit0 | pit0] -> [pit0u pit0|pit0d pit0]\nright [pit0 | pit0] -> [pit0r pit0|pit0l pit0]\n[pit1u pit1r] -> [pit1u pit1r blackur]\n[pit1u pit1l] -> [pit1u pit1l blackul]\n[pit1d pit1r] -> [pit1d pit1r blackdr]\n[pit1d pit1l] -> [pit1d pit1l blackdl]\n[pit0u pit0r] -> [pit0u pit0r blackur]\n[pit0u pit0l] -> [pit0u pit0l blackul]\n[pit0d pit0r] -> [pit0d pit0r blackdr]\n[pit0d pit0l] -> [pit0d pit0l blackdl]\n[rim1x] -> []\n[rim0x] -> []\nup[pit0|no pit0] -> [pit0 rim0u|]\ndown[pit0|no pit0] -> [pit0 rim0d|]\nleft[pit0|no pit0] -> [pit0 rim0l|]\nright[pit0|no pit0] -> [pit0 rim0r|]\nup[pit1|no pit1] -> [pit1 rim1u|]\ndown[pit1|no pit1] -> [pit1 rim1d|]\nleft[pit1|no pit1] -> [pit1 rim1l|]\nright[pit1|no pit1] -> [pit1 rim1r|]\nlate [pink] -> []\nlate [cyan] -> []\nlate [chosepink] -> []\nlate [chosecyan] -> []\nlate down [pickable |number0] -> [pickable pink | number0 pink]\nlate down [pickable2 |number2] -> [pickable2 cyan | number2 cyan]\nlate up [pink picked|pink] -> [chosepink picked|chosepink ]\nlate up [cyan picked|cyan ] -> [chosecyan picked|chosecyan ]\n\n(Movement----------------------------------------------------------------------------------------)\n\n(move attached items)\n[moving activecurse0 curse0] -> [moving activecurse0 moving curse0]\n[moving active player1] -> [moving active moving player1]\n[moving activefell ded1] -> [moving activefell moving ded1]\n[moving curse0 holding] -> [moving curse0 moving holding]\n[moving curse2 holding] -> [moving curse2 moving holding]\n\n(reset and propogate cant)\n[cant0] -> []\n[cant1] -> []\n[cant2] -> []\n[fellcant0] -> []\n[fellcant1] -> []\n\n[black no cant0 no cant1 no cant2] -> [black cant0 cant1 cant2]\n[wall2 no cant2] -> [wall2 cant2]\n[wall1 no cant1] -> [wall1 cant1]\n[wall0 no cant0] -> [wall0 cant0]\n[number0] -> [number0 cant1]\n[number2] -> [number2 cant1]\n[no pit1 no fellcant1] -> [fellcant1]\n[no pit0 no fellcant0] -> [fellcant0]\n\n[> ded1][fell1|fellcant1] -> [> ded1][fell1 fellcant1 | fellcant1]\n+ [> ded1][ded1|fellcant1] -> [> ded1][ded1 fellcant1 | fellcant1]\n+ up[fellu1|fellcant1] -> [fellu1 fellcant1 | fellcant1]\n+ left[felll1|fellcant1] -> [felll1 fellcant1 | fellcant1]\n+ down[felld1|fellcant1] -> [felld1 fellcant1 | fellcant1]\n+ right[fellr1|fellcant1] -> [fellr1 fellcant1 | fellcant1]\n\n+ [> player1][crate1|cant1] -> [> player1][crate1 cant1 | cant1]\n+ [> player1][player1|cant1] -> [> player1][player1 cant1 | cant1]\n+ up[crateu1|cant1] -> [crateu1 cant1 | cant1]\n+ left[cratel1|cant1] -> [cratel1 cant1 | cant1]\n+ down[crated1|cant1] -> [crated1 cant1 | cant1]\n+ right[crater1|cant1] -> [crater1 cant1 | cant1]\n+ [crate1 crate0 cant0] -> [crate1 crate0 cant0 cant1]\n+ [crate1 crate0 cant1] -> [crate1 crate0 cant0 cant1]\n+ [> dead0][dead0|fellcant0] -> [> dead0][dead0 fellcant0 | fellcant0]\n+ [> cursor0][cursor0|cant0] -> [> cursor0][cursor0 cant0 | cant0]\n+ [> cursor0][crate0 | number0] -> [> cursor0][crate0 cant0| number0]\n+ [> cursor0][crate0|cant0] -> [> cursor0][crate0 cant0 | cant0]\n+ up[crateu0|cant0] -> [crateu0 cant0 | cant0]\n+ left[cratel0|cant0] -> [cratel0 cant0 | cant0]\n+ down[crated0|cant0] -> [crated0 cant0 | cant0]\n+ right[crater0|cant0] -> [crater0 cant0 | cant0]\n\n[> curse2 | wall2] -> [stationary curse2 | wall2]\n[> curse2 | black] -> [stationary curse2 | black]\n[cursor0 cant0] -> [stationary cursor0 cant0]\n[player1 cant1] -> [stationary player1 cant1]\n[ded1 fellcant1] -> [stationary ded1 fellcant1]\n[dead0 fellcant0] -> [stationary dead0 fellcant0]\n\n\n(propagate movement)\n\n[ > Ded1 | Fell1 no fellcant1] -> [ > Ded1 | > Fell1 ]\n\n[ > Cursor0 | Crate0 ] -> [ > Cursor0 | > Crate0 ]\n+ [ > Cursor0 | Cursor0 ] -> [ > Cursor0 | > Cursor0 ]\n+ [ > Crate0 | Crate0 ] -> [ > Crate0 | > Crate0 ]\n\n+ [ > Player1 | Crate1 ] -> [ > Player1 | > Crate1 ]\n+ [ > Player1 | Player1] -> [ > Player1 | > Player1 ]\n+ [ > Crate1 | Player1 ] -> [ > Crate1 | > Player1 ]\n+ [> crate1|crate1] -> [> crate1 | > crate1]\n+ up[moving crate1 crateu1|crate1] -> [moving crate1 crateu1 | moving crate1]\n+ left[moving crate1 cratel1|crate1] -> [moving crate1 cratel1 | moving crate1]\n+ down[moving crate1 crated1|crate1] -> [moving crate1 crated1 | moving crate1]\n+ right[moving crate1 crater1|crate1] -> [moving crate1 crater1 | moving crate1]\n \n\n[> fell1|fell1] -> [> fell1 | > fell1]\n+ up[moving fell1 fellu1|fell1] -> [moving fell1 fellu1 | moving fell1]\n+ left[moving fell1 felll1|fell1] -> [moving fell1 felll1 | moving fell1]\n+ down[moving fell1 felld1|fell1] -> [moving fell1 felld1 | moving fell1]\n+ right[moving fell1 fellr1|fell1] -> [moving fell1 fellr1 | moving fell1]\n\n[moving crate1 cratex1] -> [moving crate1 moving cratex1]\n[moving fell1 fellx1] -> [moving fell1 moving fellx1]\n[moving crate1 crate0ghost] -> [moving crate1 moving crate0ghost]\n\n[active stationary player1] -> [stationary active stationary player1]\n[activecurse0 stationary curse0] -> [stationary activecurse0 stationary curse0]\n[activefell stationary ded1] -> [stationary activefell stationary ded1]\n[stationary cursor0 activecurse0 holding] -> [stationary cursor0 activecurse0 stationary holding]\n[stationary curse2 holding] -> [stationary curse2 stationary holding]\n\n\n(falling)\nlate [supported] -> []\n\nlate [crate1 ded1] -> [crate1 supported ded1]\nlate [crate1 no pit1] -> [crate1 supported]\nlate [crate1 fell1] -> [crate1 fell1 supported]\n\n\nlate up[crateu1|supported] -> [crateu1 supported | supported]\n+ late left[cratel1|supported] -> [cratel1 supported | supported]\n+ late down[crated1|supported] -> [crated1 supported | supported]\n+ late right[crater1|supported] -> [crater1 supported | supported]\n\n\nlate [cursor0 pit0 no fell0] -> [pit0 dead0a]SFX3\nlate [player1 active pit1 no fell1 no ded1] -> [pit1 ded1 activefell]SFX3\nlate [player1 pit1 no fell1 no ded1] -> [pit1 ded1 ]SFX3\nlate [crate0 pit0 no supported] -> [pit0 fell0]SFX3\nlate [crate1 pit1 no supported] -> [pit1 fell1] SFX3\n\n\n\nlate [crateu1 no crate1 fell1] -> [fellu1 fell1]\nlate [cratel1 no crate1 fell1] -> [felll1 fell1]\nlate [crater1 no crate1 fell1] -> [fellr1 fell1]\nlate [crated1 no crate1 fell1] -> [felld1 fell1]\n\nlate [crateu1 no crate1] -> []\nlate [cratel1 no crate1] -> []\nlate [crater1 no crate1] -> []\nlate [crated1 no crate1] -> []\nlate up [crateu1 |no crate1] -> [|]\nlate left [cratel1 |no crate1] -> [|]\nlate right [crater1 |no crate1] -> [|]\nlate down [crated1 |no crate1] -> [|]\nlate [player1 ded1] -> [player1 ded1] SFX0\nlate [player1 ded1] -> cancel \n\n[moving crate0] -> SFX2\n[moving crate1] -> SFX2\n\n==============\nWINCONDITIONS\n==============\n\n\nAll target0 on crate0\nAll Target1 on Crateorfell1\nAll PlayerTarget1 on Playerormark1\nno Cursor0 on target1\nno cursor0 on PlayerTarget1\n\n=======\nLEVELS\n=======\n\nmessage Book 1: BASE\n\nmessage Page 1.1: GOAL\n\n#######\n#`````#\n#`p`t`#\n#`````#\n#`o`q`#\n#`````#\n#######\n\nmessage Page 1.2: TOOL\n\n#######\n#`t`o`#\n#t`-:`#\n#``tlo#\n#p````#\n#######\n\nmessage Page 1.3: HOLE\n\n########\n##``0`##\n#```0``#\n#``o0`t#\n#po:0``#\n#``:0`t#\n#```0``#\n##``0`##\n########\n\nmessage Page 1.4: FALL\n\n########\n#00u``0#\n#00po`0#\n#`000`0#\n#`00```#\n#`000``#\n#`000``#\n########\n\nmessage Book 2: EDIT\n\nmessage Page 2.1: MINI\n\n||||||||||\n|```````'|\n|`######`|\n|`#````#`|\n|`#``t`#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 2.2: FORM\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 2.3: PLUG\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#ro`o`#`|\n|`#####`#`|\n|`###`o`#`|\n|`#``oLo#`|\n|`#````##`|\n|`#`q####`|\n|`#######`|\n|`````````|\n|``c`0````|\n|````8````|\n|`````````|\n|||||||||||\n\nmessage Page 2.4: TRAP\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#``````#`|\n|`#``t```#`|\n|`#`tqt``#`|\n|`#``t```#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````16````|\n|``````````|\n||||||||||||\n\nmessage Book 3: DUAL\n\nmessage Page 3.1: CO-OP\n\n#######\n####qq#\n#po000#\n#`o000#\n###o``#\n###r`'#\n#######\n\nmessage Page 3.2: REST\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#`r00q#`|\n|`#######`|\n|`````````|\n|``c`o````|\n|````2````|\n|`````````|\n|||||||||||\nmessage Page 3.3: SAIL\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#0000q#`|\n|`#00000#`|\n|`#00000#`|\n|`#```00#`|\n|`#```00#`|\n|`#######`|\n|`````````|\n|``c`ro```|\n|````23```|\n|`````````|\n|||||||||||\n\nmessage Page 3.4: TWIN\n\n|||||||||||||||||||||\n|`````````+````````'|\n|`#######`+`#######`|\n|`#`````#`+`#`````#`|\n|`#```q`#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`q```#`|\n|`#`````#`+`#`````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````6````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Book 4: WHAT\n\nmessage Page 4.1: GUIS\n\n\n#######\n#q#``'#\n#``8#`#\n#`#p#`#\n#`#o#`#\n#`#1``#\n#######\n\nmessage Page 4.2: IDEA\n\n||||||||||\n|```````'|\n|`######`|\n|`#```t#`|\n|`#```t#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```31```|\n|````````|\n||||||||||\n\nmessage Page 4.3: FILL\n\n\n######\n#0poq#\n#0`70#\n#'000#\n#0000#\n######\n\nmessage Page 4.4: A LOT\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|``````'|\n|`c3o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Book 5: UHHH\n\nmessage Page 5.1: WALL\n\n||||||||||\n|```````'|\n|`######`|\n|`#t`#`#`|\n|`#````#`|\n|`##`o`#`|\n|x+xxxx+x|\n|`#````#`|\n|`#````#`|\n|`#````#`|\n|`######`|\n|````````|\n|`c`ro```|\n|```11```|\n|````````|\n||||||||||\n\nmessage Page 5.2: SAFE\n\n|||||||||||\n|````````'|\n|`#######`|\n|`#xxxxx#`|\n|`#x```x#`|\n|`#x`t`x#`|\n|`#x```x#`|\n|`#xxxxx#`|\n|`#######`|\n|`````````|\n|`c`o1r```|\n|```111```|\n|`````````|\n|||||||||||\n\nmessage Page 5.3: LOCK\n\n|||||||||||||\n|o```'`xxxcx|\n|1``x```qx!x|\n|`1!````qx`x|\n|``1?x`xxx?x|\n|r``1````!`x|\n|````2`xxxxx|\n|||||||||||||\n\n\n\nmessage Page 5.4: POST\n\n+++++++++\n+p#```#q+\n+`#``'#3+\n+`#`1`#`+\n+`#`2`#`+\n+`#```#`+\n+`#```#`+\n+++++++++\nmessage Book 6: BLUE\n\nmessage Page 6.1: META\n\n||||||||||||\n|++++++++++|\n|+````\"```+|\n|+`######`+|\n|+`#````#`+|\n|+`#``t`#`+|\n|+`#````#`+|\n|+`######`+|\n|+````````+|\n|+```ro```+|\n|+````````+|\n|+````````+|\n|++++++++++|\n|``````````|\n|``~`1b````|\n|````{[````|\n|``````````|\n||||||||||||\n\nmessage Page 6.2: WILD\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`#######`+|\n|+`#0000q#`+|\n|+`#00000#`+|\n|+`#`0000#`+|\n|+`#`0000#`+|\n|+`#```00#`+|\n|+`#######`+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\nmessage Page 6.3: UH OH\n\n|||||||||||\n|+++++++++|\n|+``````\"+|\n|+`+++++`+|\n|+`+```+`+|\n|+`+`t`+`+|\n|+`+```+`+|\n|+`+```+`+|\n|+`+++++`+|\n|+```````+|\n|+```o```+|\n|+```````+|\n|+```````+|\n|+++++++++|\n|`````````|\n|`````````|\n|`~`1br```|\n|```][[```|\n|`````````|\n|||||||||||\n\nmessage Page 6.4: VARY\n\n|||||||||||||||||||||||\n|++++++++++&++++++++++|\n|+``````\"`x&x````````+|\n|+`######`x&x`######`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`#`qt`#`x&x`#`tq`#`+|\n|+`#````#`x&x`#````#`+|\n|+`#````#`x&x`#````#`+|\n|+`######`x&x`######`+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|+````````x&x````````+|\n|++++++++++&++++++++++|\n|``````````&``````````|\n|`~`r1ob```&`_`r1ob```|\n|```[{[[```&```[[[[```|\n|``````````&``````````|\n|||||||||||||||||||||||\n\nmessage Book 7: ?!?!\n\nmessage Page 7.1: EACH\n\n+++++++\n+````'+\n+`###`+\n+`#q#`+\n+`#0#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`#`#`+\n+`###`+\n+`````+\n+``c``+\n+`r0o`+\n+``4``+\n+`````+\n+++++++\n\nmessage Page 7.2: HOLD\n\n&&&&&&&&&\n&`8```+`&\n&`{po`+`&\n&`\"```+t&\n&&&&&&&&&\n\nmessage Page 7.3: TRIP\n\n&&&&&&&\n&```\"`&\n&`o`!`&\n&`````&\n&+++++&\n&`r2b`&\n&`[[{~&\n&y```t&\n&&&&&&&\n\nmessage Page 7.4: PLAN\n\n\n|||||||||\n|```t```|\n|```````|\n|+++++++|\n|```````|\n|```````|\n|>>>>>>>|\n|```````|\n|```````|\n|+++++++|\n|```~```|\n|[[`2\"11|\n|[[`[`[[|\n|&&`&&&&|\n|&&bor&&|\n|||||||||\n\n\n\n\n\nmessage Book 8: (RE)STAR(TS)\n\n\nmessage Page 8.1: (IN)FORM(ED)\n\n||||||||||||\n|`````````'|\n|`########`|\n|`#qo````#`|\n|`####```#`|\n|`#``````#`|\n|`#``````#`|\n|`#``````#`|\n|`########`|\n|``````````|\n|``c`ro````|\n|````18````|\n|``````````|\n||||||||||||\n\nmessage Page 8.2: (EN)TWIN(ED)\n\n|||||||||||||||||||||\n|`````````+`````````|\n|`#######`+`#######`|\n|`#````q#`+`#`````#`|\n|`#`````#`+`#`````#`|\n|`#``r``#`+`#``r``#`|\n|`#`````#`+`#`````#`|\n|`#`````#`+`#q````#`|\n|`#######`+`#######`|\n|`````````+`````````|\n|``c`o````+``k`o````|\n|````5````+````5````|\n|`````````+`````````|\n|||||||||||||||||||||\n\nmessage Page 8.3: (ZE)ALOT(RY)\n\n|||||||||\n|```````|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|`#``t#`|\n|`#####`|\n|```````|\n|`c2o2r`|\n|``1111`|\n|```````|\n|||||||||\n\nmessage Page 8.4: (BE)WILD(ER)\n\n|||||||||||||\n|+++++++++++|\n|+``````\"``+|\n|+`+++++++`+|\n|+`+0000q+`+|\n|+`+00000+`+|\n|+`+00000+`+|\n|+`+`0000+`+|\n|+`+```00+`+|\n|+`+++++++`+|\n|+`````````+|\n|+`````````+|\n|+++++++++++|\n|```````````|\n|`~`12rbo```|\n|```[{[[[```|\n|```````````|\n|||||||||||||\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",[0,3,3,3,2,2,4,1,0,3,4,0,0,0,0,4,3,3,2,2,2,2,1,4,0,0,0,3,0,4,2,2,2,2,3,3,4,1,4,0,0,0,0,0,4,1,2,2,2,2,2,4,0,0,0,3,0,4,4,4,1,4,2,1,0,3,3,4,2,1,0,4,1,0,0,3,3,3,2,1,1,1,3,4,2,2,1,1,1,0,3,4,3,3,2,2,2,1,2,1,4,0,0,0,3,3,0,0,0,4,3,2,2,1,0,4,1,2,1,4,3,3,0,4,2,3,0,4,2],"background black cant0 cant1 cant2 fellcant0 fellcant1:0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,background cant0 cant1 fellcant0 fellcant1 wall0 wall1 walll0 walll1 wallu0 wallu1:1,background cant0 cant1 fellcant0 fellcant1 wall0 wall1 walll0 walll1 wallr0 wallr1:2,2,2,2,\n2,2,2,2,2,2,2,2,background cant0 cant1 fellcant0 fellcant1 wall0 wall1 walld0 walld1 walll0 walll1:3,background fellcant0 fellcant1:4,4,4,4,\n0,0,background cant0 cant1 fellcant0 fellcant1 wall0 wall1 walld0 walld1 wallu0 wallu1:5,4,4,4,4,4,4,4,4,4,4,\n4,4,5,4,4,4,4,0,0,5,4,background cant1 fellcant0 fellcant1 wall1 walll1 wallu1:6,background cant1 fellcant0 fellcant1 wall1 walll1 wallr1:7,\n7,7,7,7,background cant1 fellcant0 fellcant1 wall1 walld1 walll1:8,4,4,4,4,5,4,4,4,\n4,0,0,5,4,background cant1 fellcant0 fellcant1 wall1 walld1 wallu1:9,background blackdr fellcant0 pit1 pit1d pit1r rim1l rim1u:10,background blackur fellcant0 pit1 pit1r pit1u rim1d rim1l:11,4,4,4,9,4,\n4,4,4,5,4,background cant1 cyan fellcant0 fellcant1 one0:12,background cant1 cyan fellcant0 fellcant1 one2:13,4,0,0,5,4,9,\nbackground blackdl blackdr fellcant0 pit1 pit1d pit1l pit1r rim1u:14,background blackdl blackdr blackul blackur fellcant0 pit1 pit1d pit1l pit1r pit1u:15,background blackdr blackur fellcant0 pit1 pit1d pit1r pit1u rim1l:16,11,4,9,4,background crate1 fellcant0 fellcant1 pink supported:17,background cant1 fellcant0 fellcant1 pink two0:18,4,5,4,4,\n4,4,0,0,5,4,9,14,15,15,background blackul blackur fellcant0 pit1 pit1l pit1r pit1u rim1d:19,4,9,\n4,4,4,4,5,4,4,4,4,0,0,5,4,\n9,background blackdl fellcant0 pit1 pit1d pit1l rim1r rim1u:20,15,15,15,11,background cant1 fellcant0 fellcant1 pink wall1 walld1 wallu1:21,18,4,4,4,5,4,\n4,4,4,0,0,5,background fellcant0 fellcant1 partc:22,9,background fellcant0 fellcant1 playertarget1:23,20,background blackdl blackul fellcant0 pit1 pit1d pit1l pit1u rim1r:24,24,background blackul fellcant0 pit1 pit1l pit1u rim1d rim1r:25,\n9,4,background fellcant0 fellcant1 player1:26,activecurse0 background cursor0a fellcant0 fellcant1:27,4,5,4,4,4,4,0,0,5,\n4,background cant1 fellcant0 fellcant1 wall1 wallr1 wallu1:28,7,7,7,7,7,background cant1 fellcant0 fellcant1 wall1 walld1 wallr1:29,4,4,4,4,5,\n4,4,4,4,0,0,5,4,4,4,4,4,4,\n4,4,4,4,4,4,5,4,4,4,4,0,0,\nbackground cant0 cant1 fellcant0 fellcant1 wall0 wall1 wallr0 wallr1 wallu0 wallu1:30,2,2,2,2,2,2,2,2,2,2,2,2,\nbackground cant0 cant1 fellcant0 fellcant1 wall0 wall1 walld0 walld1 wallr0 wallr1:31,4,4,4,4,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n",49,"1642083700844.0618"] + ], + [ + "Undo and Real-time #796", + ["title Undo and Real-time\nrealtime_interval 0.25\n\n========\nOBJECTS\n========\n\nBackground .\nBlack\n\nPlayer @\nBlue\n\nThing *\nYellow\n\n=======\nLEGEND\n=======\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nThing\nPlayer\n\n======\nRULES \n====== \n\n[ Thing ] -> [ right Thing ] \n\n==============\nWINCONDITIONS\n============== \n\n======= \nLEVELS\n=======\n\nmessage Walk around a bit, then undo several times (usually, three is enough).\n\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.............@.......................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n*.....................................................\n\n\n\n\n\n",["tick",4,4,4,1,1,"tick",1,"tick","tick","tick","tick","undo","undo","tick","tick","tick","undo"],"background: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,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,background thing:1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,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,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,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,background player: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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,\n",1,"1642738088805.1099"] + ], + [ + "Cucumber Surprise", + ["title Cucumber Surprise\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #595652\ntext_color white\n\nagain_interval 0.01\n\n(thanks to bvoq for Puzzlescript+MIS https://dekeyser.ch/puzzlescriptmis/ also testing. also thanks to ggn and meepmeep13 for testing)\n\n========\nOBJECTS\n========\n\nBackground\n#595652 #696a6a\n00000\n00000\n00100\n00000\n00000\n\n\n\nziel\n#595652 #eec39a #d9a066 #e1b489\n.111.\n23331\n23331\n23331\n.222.\n\n\nwand\n#696a6a #847e87\n00010\n11111\n01000\n11111\n00010\n\n\nplayer\n#595652 #ac3232 #8a6f30 #5b6ee1\n.111.\n.222.\n.222.\n13331\n.1.1.\n\n\nkatze\n#000000 \n0..00\n.0.00\n.000.\n.0.0.\n.0.0.\n\ngurke\ntransparent #99e550 #6abe30\n00100\n02110\n02110\n02110\n00200\n\npush_up\ntransparent\n\npush_down\ntransparent\n\npush_left\ntransparent\n\npush_right\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\ng = gurke\np = player\n* = katze\n# = wand\n@ = katze and ziel\nO = ziel\nm = gurke and ziel\n\nobstacle = player or katze or wand or gurke\npush = push_up or push_down or push_left or push_right\n\n=======\nSOUNDS\n=======\n\nsfx0 23445905 (katzenschreck)\nstartgame 90870106\nstartlevel 90870106\nendlevel 78627300\ngurke move 70216507\nkatze move 45785907\n================\nCOLLISIONLAYERS\n================\n\nBackground\nziel\nPlayer, katze, gurke, wand\npush\n======\nRULES\n======\n\n[moving player] [ push ] -> [ moving player ] [ ]\n\nup [ push_up stationary katze | no obstacle ] -> [ | push_up action katze ] again\n+ down [ push_down stationary katze | no obstacle ] -> [ | push_down action katze ] again\n+ left [ push_left stationary katze | no obstacle ] -> [ | push_left action katze ] again\n+ right [ push_right stationary katze | no obstacle ] -> [ | push_right action katze ] again\n\n\n[ > Player | gurke | no obstacle ] -> [ > Player | > gurke | no obstacle ] again\n\n\n[ < player | katze ] -> [ < player | < katze ] again\n\nlate up [ gurke | katze | no obstacle] -> [ gurke | push_up katze | no obstacle] sfx0\nlate down [ gurke | katze | no obstacle] -> [ gurke | push_down katze | no obstacle] sfx0\nlate left [ gurke | katze | no obstacle] -> [ gurke | push_left katze | no obstacle] sfx0\nlate right [ gurke | katze | no obstacle] -> [ gurke | push_right katze | no obstacle] sfx0\n\nlate up [ gurke | katze ] -> [ gurke | push_up katze ]\nlate down [ gurke | katze ] -> [ gurke | push_down katze ]\nlate left [ gurke | katze ] -> [ gurke | push_left katze ]\nlate right [ gurke | katze ] -> [ gurke | push_right katze ]\n\n==============\nWINCONDITIONS\n==============\n\nall katze on ziel\n\n=======\nLEVELS\n=======\n\n(wanna hand make the first few levels)\n\n\nmessage Put your doting cats to bed.\nmessage Level 1/20 \n.....#####\n######...#\n#...o..#.#\n#.p..*o*.#\n##########\n\n\nmessage Who left that cucumber there?\nmessage Level 2/20 \n##########\n#........#\n#........#\n#.g.p.*.o#\n#........#\n#........#\n##########\n\nmessage Level 3/20\n(The only thing cats love more than you is hating cucumbers)\n(not so hard, could be an ok level 2)\n######\n#...o#\n#.#..#\n#*.g.#\n#..p.#\n#....#\n######\n\nmessage Level 4/20\n(almost trivial)\n#######\n#.o...#\n#..g..#\n#.o..p#\n#...*.#\n#.....#\n#..*..#\n#######\n\n\nmessage Level 5/20\n(easy enough - could be level 2?)\n.#######\n.#...*.#\n.#..*..#\n##.p.o.#\n#.g....#\n#o.....#\n########\n\n\n\nmessage Level 6/20\n(reasonable. could be level 2)\n..####...\n###..####\n#....p..#\n#.#.*#m.#\n#....#..#\n#########\n\n\nmessage Level 7/20\n(ok early level 1-2)\n######\n#o...#\n#.m.*#\n#....#\n#.*p.#\n######\n\n\n\nmessage Level 8/20\n(nice level. could be #2 or 3)\n..####.\n###o.##\n#..g..#\n#.#..##\n#*..p#.\n######.\n\n\nmessage Level 9/20\n(nice level. could be level 3/4)\n########\n#...*o.#\n#.*....#\n#..p.g.#\n#####.o#\n....####\n\n\n\n\nmessage Level 10/20\n(haven't solved this yet - tricky / hard to find the solution? but once I tried and concentrated I was able to ?)\n######\n#o..p#\n#.#..#\n#o.g.#\n#*...#\n#..*.#\n######\n\n\nmessage Level 11/20\n(ok late intermediate)\n######\n#po.o#\n#.#g.#\n#*...#\n#....#\n#.*..#\n######\n\n\n\nmessage Level 12/20\n( ok level, but not an ok first level )\n####..\n#*o#..\n#..###\n#.g.p#\n#....#\n#..###\n####..\n\n\nmessage Level 13/20\n(two gurkins! not hard! pleasing!)\n#######\n#...g.#\n#..#..#\n#....g#\n#.*#..#\n##....#\n#o..p.#\n#######\n\n\nmessage Level 14/20\n(ok latish intermediate!)\n#####.\n#o..##\n#....#\n##pg.#\n.##..#\n..##*#\n...###\n\n\nmessage Level 15/20\n(ok late intermediate level)\n#######\n#.o...#\n#..g..#\n#.#...#\n#.o.#.#\n#....*#\n#p.#.*#\n#######\n\n\n\n\n\nmessage Level 16/20\n(bit trial+errory. not high-concept)\n#######\n#.#p..#\n#.**..#\n#.#...#\n#...g##\n#....o#\n#o.#..#\n#######\n\n\nmessage Level 17/20\n(a bit tricky - the solution was not hard but finding it was a bit indirected / trial+errory)\n#######\n##o...#\n#.o#.*#\n#.....#\n#.##..#\n#..g..#\n#.*.p.#\n#######\n\n\n\nmessage Level 18/20\n(unsolved. wtf.)\n..######\n..#....#\n..#..g.#\n####.###\n#..o.##.\n#.#.p.#.\n#...#.#.\n###*..#.\n..#####.\n\n\n\n\nmessage Level 19/20\n(ok hardish level)\n....#########...\n#####..o.o..####\n#.g...#.#.#....#\n#...*...p...*..#\n################\n\n\nmessage Level 20/20\n(intermediate. pleasing)\n......#####\n......#...#\n......#.#.#\n#######g#.#\n#....p..o.#\n#o#*#.#.###\n#......*#..\n#########..\n\nmessage Congratulations. All the cats are in bed, having cucumbers nightmares.\n\n(\n( super hard. do not include)\n......#####\n......#...#\n......#.#.#\n#######.#.#\n#....**...#\n#.#m#.#.###\n#.....po#..\n#########..\n)\n",[1,3,3,0,1,0,2,2,3,0,1,0,0,0,2,3,0,1,2,2,2,1,1,0,3,3,2,3,0,1,0,0,0,0],"background wand:0,0,0,0,0,0,0,\n0,0,0,background:1,1,1,1,\n1,0,0,background ziel:2,2,1,0,\n1,1,0,0,1,0,1,\n0,1,1,0,0,background player:3,1,\n1,1,1,1,0,0,1,\nbackground katze:4,background katze push_up:5,background gurke:6,1,1,0,0,\n0,0,0,0,0,0,0,\n",35,"1645544413590.2168"] + ], + [ + "Chevron Lodger", + ["title Chevron Lodger\nauthor increpare\nhomepage www.increpare.com\n\n(verbose_logging)\n\ncolor_palette ega\n\nbackground_color #d3beaa\ntext_color #683d15\n(thanks to youAtExample for feedback)\n\n========\nOBJECTS\n========\n\nBackground\n#d3beaa #d3beaa\n00000\n00000\n00100\n00000\n00000\n\n\n\n\nWall\n#7b4b1d #7b4b1d\n00000\n00000\n00100\n00000\n00000\n\n\n\nPlayer_top 1\n#ee8b16\n..0..\n..0..\n.000.\n.000.\n00000\n\n\nplayer_middle 2\n#ee8b16\n\n\nplayer_bottom 3\n#ee8b16\n00000\n00.00\n00.00\n0...0\n0...0\n\n\n\nCrate_top\n#926c3f\n..0..\n..0..\n.000.\n.000.\n00000\n\n\n\ncrate_middle \n#926c3f\n\n\ncrate_bottom\n#926c3f\n00000\n00.00\n00.00\n0...0\n0...0\n\n\n\n\n\n=======\nLEGEND\n=======\n\nplayer = Player_top or player_middle or player_bottom\ncrate = Crate_top or crate_bottom or crate_middle\n\n. = Background\n# = Wall\n\na = crate_top\nb = crate_middle\nc = crate_bottom\n\nplayer_or_crate = player or crate\n\nobstacle = wall or player or crate\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nsfx0 48406107 (snap)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n(level generation QOL things. can comment out later)\ndown [ playeR_top | no player] -> [ Player_top | player_bottom ]\ndown [ Crate_top | no player ] -> [ Crate_top | crate_bottom ]\n\n\ndown [ > player_bottom | Crate_top ] -> [ | player_middle ] sfx0\n\nup [ > player_top | crate_bottom ] -> [ | player_middle ] sfx0\n\nhorizontal [ > Player | Crate ] -> [ > Player | > Crate ]\n\n\n\ndown [ left Crate_top | stationary crate_bottom ] -> [ left Crate_top | left crate_bottom ]\n+ down [ stationary Crate_top | left crate_bottom ] -> [ left Crate_top | left crate_bottom ]\n+ horizontal [ > crate | stationary crate ] -> [ > crate | > crate ] \n\ndown [ right Crate_top | stationary crate_bottom ] -> [ right Crate_top | right crate_bottom ]\n+ down [ stationary Crate_top | right crate_bottom ] -> [ right Crate_top | right crate_bottom ]\n+ horizontal [ > crate | stationary crate ] -> [ > crate | > crate ] \n\n[ > player_or_crate | wall ] -> cancel\n\nlate vertical [ player_middle | crate_middle ] -> [ player_middle | player_middle ]\n\nlate down [ player_middle | crate_bottom ] -> [ player_middle | player_bottom ]\nlate up [ player_middle | crate_top ] -> [ player_middle | player_top ]\n\n==============\nWINCONDITIONS\n==============\n \nno crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 6\n\n(ok level 1)\n#######\n#.....#\n#.#...#\n#a....#\n#c..#.#\n#.1a..#\n#.3c..#\n#######\n\nmessage Level 2 of 6\n\n(ok level 2)\n#########\n#...a...#\n#...c1..#\n#.#.#3..#\n#...a...#\n#...c.a.#\n##..#.c.#\n#########\n\n\nmessage Level 3 of 6\n\n\n(ok level 2.5?)\n###########\n######...##\n######.#.##\n#####....##\n#####....1#\n#...a..#.3#\n#...c...a.#\n#..a....c.#\n#..c...####\n###########\n\n\n(\n(weirdly confusing - could be a level 2.5 ? but could be too similar to 3)\n#########\n#....1a.#\n#....3c.#\n#..#..#.#\n##......#\n#..aa...#\n#..cc...#\n#########\n)\n\nmessage Level 4 of 6\n\n(ok level 3? too similar to level 1 to follow it?)\n##########\n#........#\n#........#\n#..#.#...#\n#.a.1....#\n#.c.3#.#.#\n#..#..a..#\n#.....c..#\n##########\n\nmessage Level 5 of 6\n\n(NICE LEVEL I used my brain and solved it)\n###########\n#######...#\n#####.....#\n#####...a.#\n#.a1....c.#\n#.c3...#..#\n#.....a...#\n#.....c...#\n###########\n\nmessage Level 6 of 6\n\n(perfectly ok level! lots of nice considerations. good enough!)\n############\n#######....#\n######.....#\n######..a#.#\n######..c..#\n######.....#\n#...a.aa.#.#\n#.1.c.cc...#\n#.3......a.#\n###......c.#\n############\n\nmessage Congratulations. You know your chevrons well.\n\n(HARD. TRY AGAIN) \n(SOLVED IT DON'T LIKE IT)\n(#############\n#######.....#\n#######1....#\n#######3..#.#\n#######..#..#\n#######.a.a.#\n#.....a.c.c.#\n#.....c.....#\n#...a.....a.#\n#...c.....c.#\n#############\n\n)\n\n\n(\n(meh)\n#########\n#..a....#\n#..c..a.#\n#....1c.#\n#...a3#.#\n#...c...#\n#.......#\n#########\n)\n\n(\n(meh)\n#########\n#....a1.#\n##...c3.#\n#.#..#..#\n#....##.#\n#.#..a..#\n##...c..#\n##..##..#\n#.......#\n#..a....#\n#..c.a..#\n#.#.#c..#\n#.......#\n#########\n)\n\n((no: meh)\n(ok!)\n#####\n#.a.#\n#ac.#\n#c..#\n#..a#\n#..c#\n#..##\n#..a#\n#..c#\n#.a.#\n#1c.#\n#3..#\n#...#\n#####\n)\n(\n(Eeeh)\n#####\n#a..#\n#c.##\n#.a.#\n#.c.#\n#.a.#\n#.ca#\n#.1c#\n#.3a#\n#a.c#\n#ca.#\n#.c.#\n#...#\n#####\n)\n\n(\n(meh)\n#####\n#.a.#\n#1c.#\n#3..#\n#...#\n#.#.#\n#..##\n#...#\n#...#\n#.a.#\n#.c.#\n#aaa#\n#ccc#\n#####\n)\n(\n(too easy)\n#####\n#aa.#\n#cca#\n#1ac#\n#3c.#\n#...#\n#.a.#\n#.c.#\n#a..#\n#c..#\n#.#.#\n#.a.#\n#.c.#\n#####)\n\n(\n#############\n#######.....#\n#######.....#\n#######.....#\n#######.....#\n#######.....#\n#...........#\n#...........#\n#...........#\n#...........#\n#############\n\n)\n(\n(non trivial and has an idea but you can probably find better)\n#############\n#######..#..#\n#######.#...#\n#######....1#\n#######.a..3#\n#######.c.a.#\n#.#....a..c.#\n#......c....#\n#.....a...a.#\n#.....c...c##\n#############\n)\n\n\n(insoluble ? wtf? oh maybe old version that didn't transfer movements correctly)\n(#############\n########.a#.#\n#######a.c###\n#######c....#\n#######1....#\n#######3....#\n#.....a..#..#\n#....ac.....#\n#....c....a.#\n#.........c.#\n#############\n)\n(\n(meh)\n#############\n#######...1.#\n#######..a3.#\n#######..c..#\n#######.....#\n#######.....#\n#.....a.a...#\n#.....c.c..a#\n#.....a....c#\n#.....c....##\n#############\n)\n\n(meh)(\n#############\n#######..a..#\n#######.1c..#\n#######a3.a.#\n#######c..c.#\n#######a.##.#\n##.....c....#\n#...........#\n#.a.........#\n#.c.#.......#\n#############\n)\n\n(90% meh)\n(\n#############\n#######.#...#\n#######.....#\n#######....##\n#######...1.#\n#######.a.3.#\n#...aa.ac...#\n#...cc.c....#\n##.......a..#\n##.....##c..#\n#############)\n\n(meh)\n(\n#############\n#######.#...#\n#######.....#\n########.#.a#\n########aa1c#\n#######.cc3.#\n#....a......#\n#....c......#\n#.#.......a.#\n#.#.......c.#\n#############\n)\n\n(\n(meh)\n#############\n#######a.a..#\n#######c.c..#\n#######.a.#.#\n#######.c..##\n#######.....#\n#..........##\n#....#...a..#\n#....a...c.1#\n##...c..#..3#\n#############\n)\n\n\n\n(insoluble :[\n#############\n#######.a...#\n#######.c...#\n#######.#...#\n#######.....#\n#######..a..#\n#.a......c1##\n#.c.......3.#\n#...a....a..#\n#...c.#..c..#\n#############\n)\n(insoluble :[\n#############\n#######.#...#\n#######.....#\n#######..#..#\n#######.....#\n#######.....#\n#a#.1...a...#\n#c..3a..c.a.#\n#....c.a..c.#\n#......c....#\n#############\n)\n(insoluble :[\n#############\n#######..#..#\n########....#\n#######.1...#\n#######.3...#\n#######...a.#\n#.......aac.#\n#....a..cc.##\n#....ca.....#\n#.....c....##\n#############\n)\n(trivial\n#############\n#######.1...#\n########3...#\n#######.#...#\n#######..aa.#\n########.cca#\n#........a.c#\n##.......c..#\n#....#..a...#\n#.......c...#\n#############\n)\n(almost trivial\n#############\n#######...#.#\n#######.a...#\n#######.c...#\n#######.a...#\n#######.caa.#\n#.#.1....cc.#\n#...3....a..#\n#.#.a....c..#\n#.##c.......#\n#############\n)\n(trivial\n#############\n#######.....#\n#######.....#\n########..a.#\n#######.1.c.#\n#######.3...#\n#....a.#a...#\n#....c..c.a.#\n##...a.a..c.#\n#....c.c....#\n#############\n)\n(trivial\n#############\n#######.a...#\n#######.c...#\n#######.....#\n#######.....#\n#######.....#\n#......1aa..#\n#.....#3cc..#\n##..a.a.....#\n#...c.c.....#\n#############\n)\n\n(trivial\n#############\n#######.##..#\n#######.....#\n#######.a...#\n#######.c...#\n#######.....#\n#...a1....a.#\n#...c3....c.#\n#a......aa..#\n#c......cc..#\n#############\n)\n\n(\n(hard but also meh)\n#############\n########....#\n#######.a.1.#\n#######.c.3a#\n#######....c#\n#######...a.#\n#.....a..ac.#\n#.....c..c..#\n#........#a.#\n#.#.#.....c.#\n#############\n)\n(unsolvable :'[\n#############\n#######..#..#\n########....#\n#######.1...#\n#######.3...#\n#######...a.#\n#.......aac.#\n#....a..cc.##\n#....c.a....#\n#......c...##\n#############\n)\n\n((meh)\n(there's an idea to this level, which I like - could it be expanded?)\n#############\n########...##\n#######a..1a#\n#######c..3c#\n#######....a#\n#######....c#\n#aa.........#\n#cc.........#\n#...........#\n#...........#\n#############\n)\n\n(meh\n#############\n########....#\n#######.....#\n#######...#.#\n#######...a.#\n#######...ca#\n#........a.c#\n#...1....c.##\n#...3..a..a.#\n#......c..c.#\n#############\n)\n(Tricky?)\n(meh)\n(\n#############\n#######.....#\n#######.a...#\n#######.c..a#\n#######....c#\n#######.1..a#\n#.a.....3#.c#\n#.c.......a.#\n#.........c.#\n#........#.##\n#############\n)\n(\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#####\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#####\n\n#####\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#...#\n#####\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n)\n(meh it's ok but I already have somethign like this?)\n(\n#########\n#.a.....#\n#.c.....#\n#...#.#1#\n#......3#\n#.#.a...#\n#..#c...#\n#########\n)\n(\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n##.....##\n##.....##\n###...###\n###...###\n####.####\n####.####\n#########\n\n(meh)\n#########\n#.#.....#\n#.a.....#\n#.....#.#\n#..#.#..#\n#..a1a..#\n#.......#\n##.....##\n##.....##\n###...###\n###...###\n####.####\n####.####\n#########\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.1..a.a..#\n#.3..b.b..#\n#....c.c..#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n)\n(meh)\n(\n#########\n###...###\n##.....##\n#.......#\n#.......#\n#.......#\n#.......#\n##aa1aa##\n##cc3cc##\n###aaa###\n###ccc###\n####a####\n####c####\n#########\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#...1...#\n#...3...#\n##aaaaa##\n##ccccc##\n###aaa###\n###ccc###\n####a####\n####c####\n#########\n\n#########\n#########\n####.####\n###...###\n##.....##\n#.......#\n#.......#\n##aa1aa##\n##cc3cc##\n###aaa###\n###ccc###\n####a####\n####c####\n#########\n)\n\n(\nTRANSFORM\n\nchoose 1 down [ no obstacle | no obstacle ] -> [ player_top | player_bottom ]\nchoose 5 down [ no obstacle | no obstacle ] -> [ crate_top | crate_bottom ]\nchoose 10 [ no crate no player ] -> [ wall ]\n\n----\n\n\n(choose 1 option 0.5 [ wall ] -> []\n+ option 0.5 [ no obstacle ] -> [ wall ])\n\nchoose 5 option 0.2 [ no obstacle ] -> [ wall ]\n+ option 0.2 []->[]\n\nchoose 5 down [ no obstacle | no obstacle ]-> [ crate_top | crate_bottom] \nchoose 1 down [ no obstacle | no obstacle ] -> [ player_top | player_bottom]\n(choose 1 down [ no obstacle | no obstacle ] [crate_top|crate_bottom]-> [ crate_top | crate_bottom] [|])\n\n)\n",[3,2,2,1,1,1,0,3,3,2,3,3,0,0,0,3,0,3,0,3,3,2,2,2,0,1,1,3,2,2,2,1,1,0,0,1,1,2,1,1,3,3,3,3,0,0,0,0,3,3,3,2,1,2,1,1,1,"undo","undo",3,0,1,1,2,1,1],"background wall:0,0,0,0,0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,0,0,0,0,0,\nbackground crate_top:2,background crate_bottom:3,1,1,0,0,0,0,0,background player_top:4,background player_middle:5,\n5,background player_bottom:6,0,0,0,0,0,1,1,1,1,\n0,0,0,1,1,1,1,1,1,0,0,\n0,1,1,1,1,1,1,0,0,1,1,\n1,1,0,1,1,0,0,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,\n1,0,0,0,0,0,0,0,0,0,0,\n",9,"1645544442907.0366"] + ], + [ + "Two-Tone Tango", + ["title Two-Tone Tango\nauthor increpare\nhomepage www.increpare.com\n\nrequire_player_movement\n\n\n========\nOBJECTS\n========\n\nBackground\n#58875a\n\n\nTarget\ntransparent #b8ca58\n00000\n00100\n01110\n00100\n00000\n\n\nWall\n#906f80 #5f4351\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nlightblue\n\nFreund\n#355278\n\nCrate\n#b39b2a transparent\n00000\n01110\n01110\n01110\n00000\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nf = Freund\n* = Crate\n@ = Crate and Target\nO = Target\n\npusher = player or freund or crate\n\nblocker = player or freund or crate or wall\n=======\nSOUNDS\n=======\n\nCrate MOVE 26816907\nsfx1 15668107 (disconnect)\nsfx2 62739107 (connect)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, freund, Wall, Crate\n\n======\nRULES\n======\n\n[ up player | Freund ] -> [ up player | up Freund ]\n[ down player | Freund ] -> [ down player | down Freund ]\n[ left player | Freund ] -> [ left player | left Freund ]\n[ right player | Freund ] -> [ right player | right Freund ]\n\n\nvertical [ up freund | stationary freund ] -> [ up freund | up freund ]\nvertical [ down freund | stationary freund ] -> [ down freund | down freund ]\nvertical [ left freund | stationary freund ] -> [ left freund | left freund ]\nvertical [ right freund | stationary freund ] -> [ right freund | right freund ]\n\n(forward propagation)\n[ > pusher | Crate ] -> [ > pusher | > Crate ]\n\n\n(backwards propagation)\n\n[ > pusher | stationary blocker ] -> [ stationary pusher | stationary blocker ]\n+ vertical [ up freund | stationary freund ] -> [ stationary freund | stationary freund ]\n+ vertical [ down freund | stationary freund ] -> [ stationary freund | stationary freund ]\n+ vertical [ left freund | stationary freund ] -> [ stationary freund | stationary freund ]\n+ vertical [ right freund | stationary freund ] -> [ stationary freund | stationary freund ]\n\n(again forwards propagation)\n[ stationary pusher | > crate ] -> [ stationary pusher | stationary crate ]\n\n[stationary player ]-> cancel\n\n[ < player | stationary freund ] -> sfx1\n[ > player | | stationary freund ] -> sfx2\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1/8\n(could be ok level 1?)\n############\n#..........#\n#....*....o#\n#..f...p...#\n#..f#..p#..#\n############\n\n\nmessage Level 2/8\n(pleasant early)\n#######\n#..f..#\n#..f..#\n#o@...#\n#..p*.#\n#..p#.#\n##....#\n#######\n\n\nmessage Level 3/8\n(ok level 3? no 2)\n######\n#...o#\n##.f##\n#..f.#\n#..*.#\n#p...#\n#p...#\n######\n\n\nmessage Level 4/8\n(Really nice intermediate level!)\n#########\n#p..#...#\n#p....#.#\n#.*.....#\n#....f..#\n#...#f.o#\n#...#...#\n#########\n\n( (Easy but not bad. ok first level?) )\n( ###### )\n( #.#..# )\n( #.o..# )\n( #f...# )\n( #f.*p# )\n( #..*p# )\n( #...o# )\n( ###### )\n\n\n( (maybe ok early level? actually kinda tricky? maybe leave out?) )\n( ########## )\n( #..*...o.# )\n( #...f@...# )\n( #p..f....# )\n( #p..#....# )\n( ########## )\n\n( (p. easy. maybe for start of game. maybe leave out? not outstanding, just ok) )\n( ###### )\n( #o...# )\n( #..*o# )\n( #..p.# )\n( #.fp*# )\n( #.f..# )\n( #.*o.# )\n( ###### )\n\n\n( (easy but ok, maybe level 2-3? so lala) )\n( ########## )\n( #..f..o*.# )\n( #o.f..*p.# )\n( #@.....p.# )\n( ##.....### )\n( ########## )\n\n( (pretty ok? level 1 or 2? okish) )\n( ###### )\n( #..f.# )\n( #p.f.# )\n( #p*..# )\n( #.*.o# )\n( #...*# )\n( #o..o# )\n( ###### )\n\n\n( (Early hard. fine? not too memeorable meh) )\n( ###### )\n( #...o# )\n( #o.o*# )\n( #..f.# )\n( #**f.# )\n( #..p.# )\n( #..p.# )\n( ###### )\n\n\nmessage Level 5/8\n(a bit tricky but I could reason through it, OK)\n######\n#.#.p#\n#...p#\n#o..*#\n#.**o#\n#.f.o#\n#.f..#\n######\n\n\n\n\nmessage Level 6/8\n(late. pretty fun! nice to figure out / work through, if not exactly a lynchpin level)\n######\n#...o#\n#....#\n#...f#\n#..*f#\n#p**o#\n#p.o.#\n######\n\n\nmessage Level 7/8\n(INTERESTING intermediate. got stuck for a weird amount of time lol)\n######\n#o*.o#\n#p..f#\n#p*#f#\n#.*..#\n#....#\n#..o.#\n######\n\n\nmessage Level 8/8\n(funny! late intermediate/early late difficulty. definitely include)\n######\n#p...#\n#p...#\n##*.@#\n#f...#\n#fo..#\n#o.*.#\n######\n\nmessage Congratulations! You are the master of tango.\n\n( (got weirdly stuck for a while, but not hard - late early) )\n( ###### )\n( #...o# )\n( #p...# )\n( #p.@.# )\n( #..*.# )\n( #...f# )\n( #...f# )\n( ###### )\n\n( (ok intermediate? feel like I've solved it before though ,but dont' remmber the solution. maybe pass on this one?) )\n( ####### )\n( #.....# )\n( #.....# )\n( #....p# )\n( ##*..p# )\n( #..f@## )\n( #..f.o# )\n( ####### )\n\n( (easy but not appropriate for eearly game IMO. leave out) )\n( ########## )\n( #o.f...*p# )\n( #..f.o*.p# )\n( #........# )\n( ##.#.....# )\n( ########## )\n\n\n( (Easy ish but not so interesting/useful as intro level?) )\n( ######### )\n( #..o*f.o# )\n( #...*fo*# )\n( #p......# )\n( #p......# )\n( ######### )\n\n( (don't like can realize mistake at the end and need to backtrack) )\n( ########## )\n( ##..o..*p# )\n( #.......p# )\n( #...**.f.# )\n( ##..o.of.# )\n( ########## )\n\n( (trivial) )\n( ########## )\n( #.....po.# )\n( #f..*.p..# )\n( #f.....*.# )\n( #..@.o...# )\n( ########## )\n\n( (trivial) )\n( ########## )\n( #...*o..f# )\n( #...@.#.f# )\n( #p.....*.# )\n( #p......o# )\n( ########## )\n\n\n( (meh. not hard. not fun for me) )\n( ########## )\n( ##...pof.# )\n( #...*p.f.# )\n( #.o...*..# )\n( #..o...*.# )\n( ########## )\n\n\n\n( (perfectly chill/lovely/not hard. wtf? I guess i mistranscribed) )\n( ###### )\n( ##...# )\n( ##...# )\n( ##...# )\n( ##...# )\n( ##p..# )\n( #fp..# )\n( #f.*.# )\n( #o..## )\n( ###### )\n\n\n\n( (meh) )\n( ######### )\n( #....po.# )\n( #...#p..# )\n( ##*.....# )\n( #....f.## )\n( #...#f..# )\n( #...#.#.# )\n( ######### )\n\n( (could be ok as intermediate level? not sure it's conceptually sharp though, but I could solve it with my brain) )\n( ###### )\n( #....# )\n( #..o.# )\n( #p**f# )\n( #po*f# )\n( #..*o# )\n( #o..## )\n( ###### )\n\n\n( (trivialish/boring) )\n( ######## )\n( ####...# )\n( ####...# )\n( ####...# )\n( ####..p# )\n( ####*op# )\n( #f*....# )\n( #f.....# )\n( #o.....# )\n( #..o*..# )\n( ######## )\n\n( (trivialish/boring) )\n( ######## )\n( ####...# )\n( ####.op# )\n( ####.op# )\n( ####.*.# )\n( ####*..# )\n( #......# )\n( #f.....# )\n( #fo*...# )\n( #......# )\n( ######## )\n\n( (hard work, accidentally found solution. skip it) )\n( ######## )\n( ####...# )\n( ####...# )\n( ####...# )\n( ####.o.# )\n( ####.p.# )\n( #.f..p*# )\n( #.f..*.# )\n( #..o*.o# )\n( #......# )\n( ######## )\n\n( (trivial) )\n( ######## )\n( ####...# )\n( ####f..# )\n( ####fo.# )\n( ####...# )\n( ####.*.# )\n( #....o.# )\n( #.*..@p# )\n( #.....p# )\n( #......# )\n( ######## )\n\n\n\n( (trivial) )\n( ######## )\n( ####...# )\n( ####o*o# )\n( ####p..# )\n( ####p..# )\n( ####.*.# )\n( #...o.*# )\n( #.f....# )\n( #.f....# )\n( ######## )\n\n( (trivialish. leave it) )\n( ######## )\n( ####...# )\n( ####...# )\n( ####*o.# )\n( ####*..# )\n( ####...# )\n( #..f.*p# )\n( #..f..p# )\n( #....oo# )\n( ######## )\n\n( (can't figure it out. try solve again later. meh solved it what an anticlimax. screw this level.) )\n( ###### )\n( #f*o.# )\n( #f...# )\n( #*p*o# )\n( #.p*.# )\n( #oo..# )\n( #....# )\n( ###### )\n\n\n( \n\n\n########\n####...#\n####...#\n####...#\n####...#\n####...#\n#......#\n#......#\n#......#\n#......#\n########\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n##########\n\n############\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n\n##########\n######...#\n######...#\n######...#\n######...#\n######...#\n#........#\n#........#\n#........#\n##########\n\n########\n####...#\n####...#\n####...#\n####...#\n####...#\n#......#\n#......#\n#......#\n########\n)\n(transformation\n\nchoose 5 [ ] -> [ wall ]\nchoose 1 down [ no blocker | no blocker ] -> [ player | player ]\nchoose 1 down [ no blocker | no blocker ] -> [ freund | freund ]\nchoose 2 down [ no blocker ] -> [ crate ]\nchoose 2 down [ no wall no player no freund no target ] -> [ target ]\n)\n",[0,2,2,1,3,0,0,0,3,"restart",0,1,"restart",2,0,1,1,1,0,0,0,3,3,2,2,1,3,2,1,0,0,0,3,3,2,1,3,2,1,2,2,1],"background wall:0,0,0,0,0,0,0,\n0,0,background:1,1,background crate target:2,1,1,\n0,0,0,1,1,background target:3,background crate:4,\nbackground player:5,5,0,0,1,1,1,\n1,1,1,0,0,1,1,\n1,1,0,1,0,0,1,\n1,1,background freund:6,6,1,0,0,\n0,0,0,0,0,0,0,\n",3,"1645544569499.8286"] + ], + [ + "Hole-Stuffer", + ["title Hole-Stuffer\nauthor increpare\nhomepage www.increpare.com\n\n\n\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\n\nWall\n#493c2b #664b28\n00000\n01000\n00100\n00010\n00000\n \n\n\nPlayer\ngreen\n\n\n\nwintoken\ntransparent\n\nrandommoved\ntransparent\n\n\nplayer_1\n#2f484e #c62a6f #852e55 #af2f68\n01111\n23333\n23313\n23133\n23333\n\nplayer_2\n#c62a6f #af2f68 #852e55 #ffffff\n00000\n11211\n12021\n20302\n22022\n\nplayer_3\n#c62a6f #2f484e #af2f68\n00001\n22220\n20220\n22020\n22220\n\nplayer_4\n#852e55 #af2f68 #c62a6f\n01212\n01212\n01212\n01212\n01212\n\n\nplayer_5\n#852e55 #af2f68 #c62a6f #2f484e\n01212\n01212\n01212\n01112\n30003\n\n\n\ncrate\n#2f484e #fca556 #bd5d07 #eb8931\n01110\n23331\n23331\n23331\n02220\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = wall and randommoved\n\nobstacle = wall or crate\npusher = crate or player\n\n\nsprite_player = player_1 or player_2 or player_3 or player_4 or player_5 \n\n\nsprite = sprite_player \n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nwintoken\nrandommoved\nsprite\n\n\n======\nRULES\n======\n\n\n[ stationary randommoved ] [ > pusher | stationary Crate ] -> [ action randommoved] [ > pusher | > Crate ]\n\n[ action randommoved ] [ > pusher | stationary Crate ] -> cancel\n\n[ > pusher | wall ] -> cancel \n\n\n\nlate [ sprite ] -> []\n\n\nlate down [ no player | player | obstacle | obstacle | obstacle ] -> [ | player wintoken | obstacle | obstacle | obstacle ] again\n\n\n\n\nlate right [ player | player | player ] -> [ player player_1 | player player_2 | player player_3 ]\nlate down [ player_1 | | | ] -> [ player_1 | player_4 | player_4 | player_5 ]\nlate down [ player_3 | | | ] -> [ player_3 | player_4 | player_4 | player_5 ]\n==============\nWINCONDITIONS\n==============\n\nsome wintoken\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 4\n\n@###########\n#..........#\n#..........#\n#..........#\n#.ppp......#\n#.p.p......#\n#.p.p..***.#\n#.p.p......#\n#..........#\n#..........#\n############\n\nmessage Level 2 of 4\n\n\n@########\n#..ppp..#\n#..p.p..#\n#..p.p..#\n#..p.p..#\n#..***..#\n#.......#\n#.......#\n#########\n\n\nmessage Level 3 of 4\n\n@######\n#.....#\n#.....#\n#.....#\n#.....#\n#...*.#\n#ppp..#\n#p.p*.#\n#p.p..#\n#p.p*.#\n#######\n\nmessage Level 4 of 4\n\n@########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#..***..#\n#..ppp..#\n#..p.p..#\n#..p.p..#\n#..p.p..#\n#########\n\nmessage Congratulations, you aul hole-stuffer.\n\n\n\n",[3,2,2,1,1,1,0,0,1,1,2,1,1,0,3,3,3,2,1,1,2,3,3,2,1,1,0,0,1,1,3,3,0,1,1,2,2,1,3,2,1,1],"background randommoved wall:0,background wall:1,1,1,1,1,1,1,1,\n1,background:2,2,2,2,background crate:3,2,2,1,\n1,2,2,2,background player player_1:4,background player player_4:5,5,background player player_5:6,1,\n1,2,2,2,background player player_2:7,2,2,3,1,\n1,2,2,2,background player player_3:8,5,5,6,1,\n1,2,2,2,2,2,2,2,1,\n1,2,2,2,2,3,2,2,1,\n1,2,2,2,2,2,2,2,1,\n1,1,1,1,1,1,1,1,1,\n",3,"1645544598726.4905"] + ], + [ + "Wand Spinner", + ["title Wand Spinner\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #5b6ee1\n\n(thanks to bluemelon555 for the assistance, and ggn2, and bvoq )\n\n\n\n========\nOBJECTS\n========\n\nBackground\n#5b6ee1\n\ncrate\n#abb5f1 #5f4a18\n01110\n1...1\n1...1\n1...1\n01110\n\nTarget_h\ntransparent #c71fa9 transparent transparent\n00000\n11111\n22223\n11111\n00000\n\nTarget_v\ntransparent #c71fa9 transparent transparent\n01210\n01210\n01210\n01210\n01210\n\nWall\n#3f3f74\n\nPlayer\n#5b6ee1 #5fcde4 #000000\n01110\n12121\n11111\n11211\n01110\n\nstick_w 1\n#abb5f1 #323c39\n.....\n.....\n00111\n.....\n.....\n\nstick_nw 2\n#abb5f1 #323c39\n.....\n.0...\n..0..\n...1.\n....1\n\nstick_n 3\n#abb5f1 #323c39\n..0..\n..0..\n..1..\n..1..\n..1..\n\nstick_ne 4\n#ffffff #abb5f1 #323c39\n.....\n...1.\n..1..\n.2...\n2....\n\n\nstick_e 5\n#323c39 #abb5f1\n.....\n.....\n00011\n.....\n.....\n\n\nstick_se 6\n#323c39 #abb5f1\n0....\n.0...\n..1..\n...1.\n.....\n\nstick_s 7\n#323c39 #abb5f1\n..0..\n..0..\n..0..\n..1..\n..1..\n\nstick_sw 8\n#323c39 #abb5f1\n....0\n...0.\n..1..\n.1...\n.....\n\nmoved\ntransparent\n\ncon_ne\ntransparent\n\ncon_nw\ntransparent\n\ncon_se\ntransparent\n\ncon_sw\ntransparent\n\ntl\ntransparent\n\n\n\n=======\nLEGEND\n=======\nstick = stick_w or stick_nw or stick_n or stick_ne or stick_e or stick_se or stick_s or stick_sw\nstick_h = stick_e or stick_w\n\nstick_v = stick_n or stick_s\n\n. = Background\n# = Wall\nP = Player\n\n\n9 = target_h\n0 = Target_v\n\ntarget = target_h or Target_v\no = crate\nplayer_or_crate = player or crate\nstick_or_crate = stick or crate\nplayer_or_crate_or_stick = player or crate or stick\n\n@ = wall and tl\n\nobstacle = player or stick or crate or wall\n\na = target_v and stick_n\ns = target_v and stick_s\nd = target_h and stick_w\nf = target_h and stick_e\n\nz = target_v and stick_w\nx = target_v and stick_e\nc = target_h and stick_n\nb = target_h and stick_s\n\n=======\nSOUNDS\n=======\n\nstick move 12743307\nendlevel 58303907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, stick,crate\nmoved\ncon_ne, con_nw, con_se, con_sw\ntl\n\n\n======\nRULES\n======\n\n\n\n[ > player_or_crate | stick_or_crate ] -> [ > player_or_crate | > stick_or_crate ]\n\ndown [ left stick_n no moved | stick_s no moved ] -> [ left stick_nw moved | stick_se moved ]\n+ down [ right stick_n no moved | stick_s no moved ] -> [ right stick_ne moved | stick_sw moved ]\n+ down [ stick_n no moved | left stick_s no moved ] -> [ stick_ne moved | left stick_sw moved ]\n+ down [ stick_n no moved | right stick_s no moved ] -> [ stick_nw moved | right stick_se moved ]\n\n+ right [ down stick_w no moved | stick_e no moved ] -> [ down stick_sw moved | stick_ne moved ]\n+ right [ up stick_w no moved | stick_e no moved ] -> [ up stick_nw moved | stick_se moved ]\n+ right [ stick_w no moved | down stick_e no moved ] -> [ stick_nw moved | down stick_se moved ]\n+ right [ stick_w no moved | up stick_e no moved ] -> [ stick_sw moved | up stick_ne moved ]\n\n\n+ right [ right stick_nw no moved | ] -> [ right stick_n moved | right con_ne ]\n+ right [ up stick_nw no moved | ] -> [ right stick_n moved | right con_ne ]\n+ down [ right con_ne | stick_se ] -> [ | stick_s ]\n\n+ down [ down stick_nw no moved | ] -> [ down stick_w moved | down con_se ]\n+ down [ left stick_nw no moved | ] -> [ down stick_w moved | down con_se ]\n+ right [ down con_se | stick_se ] -> [ | stick_e ]\n\n+ left [ left stick_se no moved | ] -> [ left stick_s moved | left con_se ]\n+ left [ down stick_se no moved | ] -> [ left stick_s moved | left con_se ]\n+ up [ left con_se | stick_nw ] -> [ | stick_n ]\n\n+ up [ up stick_se no moved | ] -> [ up stick_e moved | up con_ne ]\n+ up [ right stick_se no moved | ] -> [ up stick_e moved | up con_ne ]\n+ left [ up con_ne | stick_nw ] -> [ | stick_w ]\n\n\n+ left [ left stick_ne no moved | ] -> [ left stick_n moved | left con_nw ]\n+ left [ up stick_ne no moved | ] -> [ left stick_n moved | left con_nw ]\n+ down [ left con_nw | stick_sw ] -> [ | stick_s ]\n\n+ down [ down stick_ne no moved | ] -> [ down stick_e moved | down con_se ]\n+ down [ right stick_ne no moved | ] -> [ down stick_e moved | down con_se ]\n+ left [ down con_se | stick_sw ] -> [ | stick_w ]\n\n+ right [ right stick_sw no moved | ] -> [ right stick_s moved | right con_sw ]\n+ right [ down stick_sw no moved | ] -> [ right stick_s moved | right con_sw ]\n+ up [ right con_sw | stick_ne ] -> [ | stick_n ]\n\n+ up [ up stick_sw no moved | ] -> [ up stick_w moved | up con_nw ]\n+ up [ left stick_sw no moved | ] -> [ up stick_w moved | up con_nw ]\n+ right [ up con_nw | stick_ne ] -> [ | stick_e ]\n\n\n+ [ stationary tl ] [ > crate | stationary stick_or_crate ] -> [ action tl ] [ > crate | > stick_or_crate ]\n+ [ action tl ] -> [ stationary tl ]\n\n+ [ stationary tl ] [ > stick | stationary stick_or_crate ] -> [ action tl ] [ > stick | > stick_or_crate ]\n+ [ action tl ] -> [ stationary tl ]\n\n[ > player_or_crate_or_stick | wall ] -> cancel\n\nlate [moved]->[]\n\n\n==============\nWINCONDITIONS\n==============\nall Target_h on stick_h \nall Target_v on stick_V\n\n=======\nLEVELS\n=======\n\n\nmessage 1 / 18\n(ok level 1?)\n@###..\n#..#..\n#..###\n#.399#\n#.7.p#\n#..###\n####..\n\n\nmessage 2 / 18\n(kinda easy but not bad?)\n@####.\n#0..##\n#03..#\n##7..#\n.##p.#\n..##.#\n...###\n\n\nmessage 3 / 18\n(easy but fun manipulation? could be level 1 but maybe too constrained?)\n@#####.\n#.3..##\n#.7..0#\n#993p0#\n#..7..#\n#######\n\n( (level 2?) )\n( @##### )\n( #99..# )\n( #.#..# )\n( #....# )\n( #.15.# )\n( #p...# )\n( ###### )\n\n\nmessage 4 / 18\n(ok late-early)\n@######\n#.3.p.#\n#.7..0#\n#1f9.0#\n#.....#\n#######\n\nmessage 5 / 18\n(could be ok easy level)\n.######\n.#99#.#\n@#.15.#\n#.3.#.#\n#pb9..#\n#######\n\nmessage 6 / 18\n(easy enough to think through?)\n@####.\n#..3##\n#.9b.#\n#df..#\n#p...#\n######\n\nmessage 7 / 18\n(simple-enough)\n@#####\n#..a.#\n#15s.#\n#..#0#\n#p..0#\n######\n\n\n\nmessage 8 / 18\n(late-easy kinda fine?)\n@######\n#.#.3.#\n#..0b9#\n#p.z5.#\n#...#.#\n#######\n\n( (not too hard but kinda fun?) )\n( @.#####.... )\n( ###99.##### )\n( #.99...33.# )\n( #.#...#77.# )\n( #.....#..p# )\n( ########### )\n\nmessage 9 / 18\n(reduced above. still solvable)\n.@####....\n##99.#####\n#99...33.#\n#....#77.#\n######..p#\n.....#####\n\nmessage 10 / 18\n@#####.#####\n#...3###.0.#\n#...7....0.#\n#####.p.df.#\n....########\n\nmessage 11 / 18\n(easy. feeling lukewarm about it)\n@######\n#.a...#\n#.s.#.#\n#015..#\n#0p#.##\n#######\n\n\nmessage 12 / 18\n(ok free early level?)\n@#######\n#.3....#\n#.7..99#\n#.3.p.0#\n#.7..#0#\n########\n\nmessage 13 / 18\n(not hard. kinda fun/silly)\n@########\n#p......#\n#.#.#a#.#\n#.15.s99#\n#.#.#.#.#\n#.......#\n#########\n\nmessage 14 / 18\n(ok-ish intermediate level)\n@######\n#.#03.#\n#.307.#\n#.7pc9#\n#99.7.#\n#######\n\n\nmessage 15 / 18\n(slightly tricky + fun trick to notice)\n@#####\n#..3.#\n#.#7.#\n#00.a#\n#0a.s#\n#.7p.#\n######\n\nmessage 16 / 18\n(intermediate?)\n@####.\n#.9c##\n#.9b0#\n#1530#\n#p.7.#\n######\n\nmessage 17 / 18\n(kinda chilll / ok!)\n@######\n#.....#\n#.zfc.#\n#.a.sp#\n#.bdx.#\n#.....#\n#######\n\nmessage 18 / 18\n(hardish but ok?)\n.@####\n##.3.#\n#.07.#\n#.0df#\n#p...#\n######\n\nmessage Congratulations! You've graduated from the college of magicians' assistants with flying colours! \n\n( (I like this level) )\n( @###### )\n( #.a.### )\n( #.sp### )\n( #.3.0.# )\n( #.7.0.# )\n( ####### )\n\n\n(( NOT BAD BUT )(Easyish. ok? not soo interesting) )\n( @###### )\n( #.99.## )\n( #..3.p# )\n( #.3b9.# )\n( #.7.### )\n( ####### )\n\n( (Easy but funish? ok level 2?) )\n( @###### )\n( #.3..p# )\n( #.799.# )\n( #.3...# )\n( #.799.# )\n( #.3...# )\n( #.799.# )\n( ####### )\n\n( (interesting goal, but too bloody hard. not solved but solution gawked at) )\n( @###### )\n( #0p3..# )\n( #0.730# )\n( ##1fb0# )\n( ###...# )\n( ####### )\n\n( (trivial) )\n( @###### )\n( ##.p3.# )\n( #df.7.# )\n( #9930.# )\n( #..70## )\n( ####### )\n\n( (meh tolerable but meh) )\n( @###### )\n( #p0..0# )\n( #.0330# )\n( #.377.# )\n( #9b.#.# )\n( ####### )\n\n( (trivial) )\n( @###### )\n( #.99.p# )\n( #.3.c9# )\n( #.7.7.# )\n( #.df.## )\n( ####### )\n\n( (meh) )\n( @######## )\n( ######### )\n( ###p99.## )\n( ###15..## )\n( ###..#### )\n( ####.#### )\n( ####.#### )\n( ####..### )\n( ##....### )\n( ##....### )\n( ######### )\n( ######### )\n\n( (same old) )\n( @###### )\n( #...30# )\n( #.0.70# )\n( #.z5..# )\n( #..#.p# )\n( ####### )\n\n( (same old) )\n( @######## )\n( #..3....# )\n( ##37....# )\n( #.7.p99## )\n( #...99.## )\n( ######### )\n\n( (same old) )\n( (not hard. ok?) )\n( @######## )\n( #.3.....# )\n( #.799.#p# )\n( #.3..99.# )\n( #.7.....# )\n( ######### )\n\n\n( (meh) )\n( (not hard) )\n( @###### )\n( #p.a..# )\n( #..s15# )\n( #.df..# )\n( #.99..# )\n( ####### )\n\n( (meh) )\n( (intermediate ok?) )\n( @##### )\n( #0...# )\n( #0#30# )\n( #..70# )\n( #151x# )\n( #p..0# )\n( ###### )\n\n\n( (meh trial and error solution) )\n( @##### )\n( #..3.# )\n( #0#7p# )\n( #0.3.# )\n( #0a7.# )\n( #0s..# )\n( ###### )\n\n( (trivial) )\n( @######## )\n( #...p...# )\n( #.3399..# )\n( #.773.00# )\n( #...7.00# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #.3.3...# )\n( #.79b.p.# )\n( #..99...# )\n( #..1599.# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #.3.....# )\n( #.b9.99.# )\n( #...3p15# )\n( #.997...# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #..p..3.# )\n( #....cb.# )\n( #....7c9# )\n( #.99..7.# )\n( ######### )\n\n\n\n\n( (fine? too easy maybe I have enough levels like this) )\n( @##### )\n( #....# )\n( #.#99# )\n( #1515# )\n( #p...# )\n( #.99.# )\n( ###### )\n\n( (kinda kludgy? YIP) )\n( @##### )\n( #...p# )\n( #.#0.# )\n( #150.# )\n( #.015# )\n( #.0..# )\n( ###### )\n\n( (eeh rests around a single mechanism. maybe if it were duplciated multiple times with a level, but not just once) )\n( @.#### )\n( ###..# )\n( #.15p# )\n( #1f90# )\n( #...0# )\n( ###### )\n\n\n\n( (meh driving game) INCOMPLETE BUT ALSO DON'T CARE)\n( @.####... )\n( ###..#### )\n( #.....3.# )\n( #.#..#7.# )\n( #....#.p# )\n( ######### )\n\n\n\n\n\n( @##### )\n( #....# )\n( #.#..# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( (trivial) )\n( @.###### )\n( ..#p99.# )\n( ..#.15.# )\n( ..##.### )\n( ...#.#.. )\n( ..##.#.. )\n( ###..#.. )\n( #....##. )\n( #.#...#. )\n( #...#.#. )\n( ###...#. )\n( ..#####. )\n\n\n\n((test level))\n( @.#####.... )\n( ###...##### )\n( #......33.# )\n( #.#...#77.# )\n( #.....#..p# )\n( ########### )\n\n\n( (meh, don't like that you can randomly need to backtrack if you do things in the wrong order. don't find it fun) )\n( @.#####.... )\n( ###...##### )\n( #......33.# )\n( #.#00.#77.# )\n( #..00.#..p# )\n( ########### )\n\n( (trivial but bad) )\n( @.####... )\n( ###..#### )\n( #..cc99.# )\n( #.#77#..# )\n( #p...#..# )\n( ######### )\n\n\n( @.#####... )\n( ###...#### )\n( #........# )\n( #.#...#..# )\n( #.....#..# )\n( ########## )\n\n\n( @.####... )\n( ###..#### )\n( #.......# )\n( #.#..#..# )\n( #....#..# )\n( ######### )\n\n( @####### )\n( #......# )\n( #......# )\n( #......# )\n( #####..# )\n( ....#### )\n\n\n\n( @####### )\n( .#.....# )\n( .#.....# )\n( ##.....# )\n( #......# )\n( #......# )\n( ######## )\n\n( (meh ok but not so tricky? too much walking about) )\n( @#####..##### )\n( #....####...# )\n( #.33......#.# )\n( #.77#9999...# )\n( #p..######### )\n( #####........ )\n\n( @#####.##### )\n( #....###...# )\n( #........#.# )\n( #...#......# )\n( #...######## )\n( #####....... )\n\n( (meh) )\n( @#### )\n( #990# )\n( #0.0# )\n( #099# )\n( #15.# )\n( #15.# )\n( #33.# )\n( #77.# )\n( #.p.# )\n( ##### )\n\n( @####### )\n( #990099# )\n( #..00..# )\n( #.3153.# )\n( #.7157.# )\n( #...p..# )\n( #......# )\n( ######## )\n\n( @##### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( @###### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( @########### )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( ############ )\n\n( @########### )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #.....15...# )\n( #......p...# )\n( #..........# )\n( #..........# )\n( #.........9# )\n( ############ )\n\n( (dunno!) )\n( @###### )\n( ##..### )\n( ##..### )\n( ##..### )\n( ##..### )\n( ##15### )\n( ##15### )\n( ##15### )\n( #.p...# )\n( #.....# )\n( #.99..# )\n( #.99..# )\n( #.99..# )\n( ####### )\n\n( @####....... )\n( #99..##....# )\n( #..99..##..# )\n( #........### )\n( ###........# )\n( ..##@...15.# )\n( ...#.@#..15# )\n( ...#..#@@.p# )\n( ...#.......# )\n( ...######### )\n\n( @##### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( (nice idea but hard also has a crate) )\n( @##### )\n( #99..# )\n( #o.df# )\n( #.p3.# )\n( #..7.# )\n( ###### )\n\n( @.###### )\n( ..#....# )\n( ..#....# )\n( ..##.### )\n( ...#.#.. )\n( ...#.#.. )\n( ####.#.. )\n( #....##. )\n( #.#...#. )\n( #...#.#. )\n( ###...#. )\n( ..#####. )\n\n\n\n( @####. )\n( #...## )\n( #....# )\n( ##...# )\n( .##..# )\n( ..##.# )\n( ...### )\n\n\n( @.....##### )\n( ......#...# )\n( ......#.#.# )\n( #######.#.# )\n( #.........# )\n( #.#.#.#.### )\n( #.......#.. )\n( #########.. )\n\n( @######## )\n( #.......# )\n( #.#.#.#.# )\n( #.......# )\n( #.#.#.#.# )\n( #.......# )\n( ######### )\n\n\n\n( @###.. )\n( #..#.. )\n( #..### )\n( #....# )\n( #....# )\n( #..### )\n( ####.. )\n\n\n( @######## )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #......p# )\n( #.9c....# )\n( #997.3a.# )\n( #....7s.# )\n( ######### )\n\n( (trivial) )\n( @######## )\n( #..p..3.# )\n( #....cb.# )\n( #....7c9# )\n( #.99..7.# )\n( ######### )\n\n( (fine/tricky but too like other levels) )\n( @##### )\n( ##30.# )\n( #.70.# )\n( #df..# )\n( #.p..# )\n( ###### )\n\n( @###### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( @############ )\n( #...........# )\n( #...........# )\n( #...........# )\n( #...........# )\n( ############# )\n\n( @######## )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( ######### )\n\n( @########### )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( #..........# )\n( ############ )\n\n( @.#####.... )\n( ###...##### )\n( #.........# )\n( #.#...#...# )\n( #.....#...# )\n( ########### )\n\n( @................ )\n( ................. )\n( ........9........ )\n( .....999......... )\n( ................. )\n( ......p.......... )\n( .3333.....2..4... )\n( .7777...15.68.... )\n( ................. )\n( ................. )\n( ................. )\n( ................. )\n\n(TRANSFORMATION\n==========\nTRANSFORM\n==========\n\n\nchoose 5 [ ] -> [ wall ]\nchoose 1 [ no wall ] -> [ player ]\n\nchoose 2 option 0.5 right [ no obstacle | no obstacle ] -> [ stick_w | stick_e ]\n+ option 0.5 up [ no obstacle | no obstacle ] -> [ stick_s | stick_n ]\n\n\nchoose 2 option 0.5 right [ no wall no player no target | no wall no player no target ] -> [ target_h | target_h ]\n+ option 0.5 up [ no wall no player no target | no wall no player no target ] -> [ target_v | target_v ]\n\n\n\n)\n\n",[2,3,3,0,0,0,2,2,2,1,1,1,1,0,0,3,3,0,3,3,2,2,"undo",2],"background tl wall:0,background wall:1,1,1,1,1,1,\nbackground:2,2,2,background target_h:3,1,1,1,\n2,background stick_w:4,3,1,1,background target_v:5,5,\nbackground stick_e:6,2,1,1,2,background stick_n:7,background stick_s target_h:8,\n4,1,1,2,2,background player target_h:9,6,\n1,1,1,1,1,1,1,\n",27,"1645544636691.3945"] + ], + [ + "Acorn Scorchery Paradise", + ["title Acorn Scorchery Paradise\nauthor increpare\nhomepage www.increpare.com\n\n\nbackground_color #3f3f74\n\n========\nOBJECTS\n========\n\nBackground\n#3f3f74 #59598f\n00000\n00000\n00100\n00000\n00000\n\n\n\nTarget\norange transparent transparent\n00000\n01110\n01210\n01110\n00000\n\nWall\n#323c39\n00000\n00000\n00000\n00000\n00000\n\n\nPlayer\n#847e87 #a33c88\n00000\n01110\n00000\n..0..\n.0.0.\n\n\nCrate\n#3f3f74 lightgreen green\n.111.\n21112\n21112\n22222\n.222.\n\n\nCrate_HOT\n#3f3f74 #ff0018 #ac3232\n.111.\n21112\n21112\n22222\n.222.\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\ncrate_or_player = Crate or Player or Crate_HOT\nany_Crate = Crate or Crate_HOT\npush_obstacle = wall or crate or Crate_HOT\nobstacle = wall or crate or Crate_HOT or Player\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 34709107\nendlevel 27179907\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, Crate_HOT\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate_hot ]\n\n[ > crate_or_player | stationary push_obstacle ] -> cancel\n\n[ stationary crate_hot ] [ ^ crate_hot ] -> [ crate ] [ ^ Crate_HOT ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on any_Crate\n\n=======\nLEVELS\n=======\n\nmessage 1/5\n(nice!)\n######\n#.#..#\n#.*@.#\n#.p..#\n##.o.#\n.#####\n\nmessage 2/5\n(fine)\n#####\n#o..#\n#o..#\n#**@#\n#.p.#\n#####\n\nmessage 3/5\n(lol)\n######\n#p...#\n#.*..#\n#o.@.#\n##.@.#\n.#####\n\nmessage 4/5\n(fine)\n#####\n#opo#\n#.*.#\n#.*.#\n#o*.#\n#####\n\n\n(youAtExample suggested 'vive of five' when I was looking for stupid homophones)\nmessage 5/5 \n(fiiineish)\n######\n#.o.o#\n#....#\n#.**.#\n#.p#.#\n######\n\n\n\nmessage Congratulations! You are the best Acorn Scorcherer in Acorn Scorchery Paradise!\n\n( (meh not sure) )\n( ..#### )\n( ###.o# )\n( #o*..# )\n( #.*..# )\n( #p.@.# )\n( ###### )\n\n( ##### )\n( #...# )\n( #...# )\n( #...# )\n( #...# )\n( ##### )\n\n\n( ###### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( ####### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( ###### )\n( #....# )\n( #....# )\n( #....# )\n( #....# )\n( ###### )\n\n( ######### )\n( #.......# )\n( #.......# )\n( #.......# )\n( #.......# )\n( ######### )\n\n( ######## )\n( #......# )\n( #......# )\n( #......# )\n( #......# )\n( #......# )\n( #......# )\n( ######## )\n\n\n\n(Transformation\n\nchoose 5 [ ] -> [ wall ]\nchoose 1 [ no wall ] -> [ player ]\nchoose 3 [ no obstacle ] -> [ crate ]\nchoose 3 [ no player no wall no target ] -> [ target ]\n\n)\n",[3,0,0,2,1,0,2,1,0,2,3,0,0,2,0,2,1,0,0,3,3,2,3,0,0,"restart",0,0,0,0,2,1,0,0,3,0,3,0,2,1,2,2,1,0,"restart",1,0,2,3,0,1,2,3,3,0,2,1,1,0,0,2,3,"undo","undo","undo",3,0,0,"restart",1,0,0,2,3,3,0,2,1,1,0,0,2,2,3,3,0,1,0,0,3,2,1,2,2],"background wall:0,0,0,0,0,\n0,0,background crate target:1,background target:2,background crate:3,\nbackground:4,0,0,4,4,\n4,background player:5,0,0,4,\n4,background crate_hot target:6,4,0,0,\n0,0,0,0,0,\n",3,"1645544663060.2773"] + ], + [ + "Match-Maker", + ["title Match-Maker\nauthor increpare\nhomepage www.increpare.com\n( debug )\n( verbose_logging )\nrun_rules_on_level_start\n\ncolor_palette c64\nbackground_color green\n\n========\nOBJECTS\n========\n\nBackground\ngreen\n\nWall\ndarkgreen\n\nPlayer\ndarkblue lightgray \n.000.\n01010\n00000\n01110\n.000.\n\nCrate\npurple\n.....\n.000.\n.000.\n.000.\n.....\n\nhands_up\npink\n.0.0.\n.....\n.....\n.....\n.....\n\nhands_down\npink\n.....\n.....\n.....\n.....\n.0.0.\n\nhands_left\npink\n.....\n0....\n.....\n0....\n.....\n\nhands_right\npink\n.....\n....0\n.....\n....0\n.....\n\ncon_up\ntransparent\n\ncon_down\ntransparent\n\ncon_left\ntransparent\n\ncon_right\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\no = Background\n@ = crate\nhands = hands_up or hands_down or hands_left or hands_right\n\nobstacle = player or crate or wall\n\nplayer_or_crate = player or crate\n\ncon = con_up or con_down or con_left or con_right\n\nw = crate and hands_up\ns = crate and hands_down \na = crate and hands_left\nd = crate and hands_right\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 35405507\nsfx0 3325507 (love)\nsfx1 48219704 (breakup)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nhands_up\nhands_down\nhands_left\nhands_right\ncon_up\ncon_down\ncon_left\ncon_right\n\n\n======\nRULES\n======\n\n\n\n[ > player_or_crate | crate ] -> [ > player_or_crate | > Crate ]\n[ > crate hands ] -> [ > crate > hands ]\n\n\n[ > crate | wall ] -> cancel\n\n[ > crate | no obstacle ] -> [ | crate ]\n[ > hands | no hands ] -> [ | hands ]\n\nup [ hands_up | no hands_down ] -> [|] sfx1\ndown [ hands_down | no hands_up ] -> [|] sfx1\nleft [ hands_left | no hands_right ] -> [|] sfx1\nright [ hands_right | no hands_left ] -> [|] sfx1\n\nright [ crate | crate ] -> [ crate con_right | crate con_left ]\ndown [ crate | crate ] -> [ crate con_down | crate con_up ]\n\n[no hands con_up no con_down no con_left no con_right ] -> [ action hands_up ]\n[no hands no con_up con_down no con_left no con_right ] -> [ action hands_down ]\n[no hands no con_up no con_down con_left no con_right ] -> [ action hands_left ]\n[no hands no con_up no con_down no con_left con_right ] -> [ action hands_right ]\n\n[con]->[]\n\nup [ hands_up | no hands_down ] -> [|]\ndown [ hands_down | no hands_up ] -> [|]\nleft [ hands_left | no hands_right ] -> [|]\nright [ hands_right | no hands_left ] -> [|] \n\n\n[ action hands ] -> sfx0\n\n==============\nWINCONDITIONS\n==============\n\nall crate on hands\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 9\n\n(easyish. ok?)\n######\n#*...#\n##..*#\n#..*.#\n#.*.p#\n######\n\n( (ok first level ish) )\n( ......#####. )\n( ......#...#. )\n( ###...#...#. )\n( #*#####...#. )\n( #.#dada**### )\n( #..**......# )\n( #.#dadada### )\n( #*########.. )\n( #.#......... )\n( #p#......... )\n( ###......... )\n\n\nmessage Level 2 of 9\n\n(ok?)\n.#####\n##..*#\n#..*p#\n#da.##\n#.#.#.\n#...#.\n#####.\n\nmessage Level 3 of 9\n(ok! early intermediate?)\n#######.\n#.p...#.\n#..***##\n###*...#\n..######\n\nmessage Level 4 of 9\n(late-early? pretty entertaining gestalt-wise)\n######\n#.s#.#\n#.w.*#\n#....#\n#..#*#\n#..**#\n#.p..#\n######\n\nmessage Level 5 of 9\n\n(ok? entertaining? slightly? ok level? ok let's say it's ok)\n########\n#..da..#\n#..***.#\n#p..*..#\n#####..#\n....####\n\n\nmessage Level 6 of 9\n(early-intermediate ok?)\n######\n#p...#\n#..da#\n#..*.#\n#*.*##\n#..*##\n#....#\n######\n\n\n\nmessage Level 7 of 9\n(early-intermediate? easy/likeable)\n#######\n#....##\n#.da..#\n#.##*.#\n#..#da#\n#p.*..#\n#######\n\nmessage Level 8 of 9\n(AH. OK? If I@m totally stuck it could be a last level? but not...a *good* one)\n(genuinely tricky. not solved yet)\n#######\n#.#...#\n#*s..s#\n#.w#*w#\n#..p..#\n#..####\n#######\n\n\nmessage Level 9 of 9\n(didnae solve)\n######\n#....#\n#.sda#\n#.w..#\n#*p**#\n#...*#\n######\n\nmessage Congratulations. That was really good!\n\n=======================\n(\n\n(consider pruning)\n(weirdly non-obvious :] )\n######\n#.#.##\n#*#.##\n#.p*.#\n#.*..#\n#.*.##\n######\n\n(consider pruning)\n(Easy but ok?)\n##########\n##..p..*.#\n#.**...###\n##.*.#..##\n#.#...####\n##########\n\n\n\n(consider pruning)\n(weirdly engaging)\n######\n#.#.##\n#.#.p#\n#*.s.#\n#..w.#\n#*..##\n######\n\n\n(I like it - late-easy!)\n##########\n#.#.######\n#..*p*...#\n#..#*#*###\n#........#\n##########\n\n(intermediate ok hmm)\n#######\n#.*...#\n#...#.#\n##*..##\n##*.#.#\n#.....#\n#p#.*.#\n#######\n\n(alternative version of above:)\n########\n#.*..###\n#...####\n##s.####\n##w.####\n#......#\n#p#..*.#\n########\n\n\n(early hard? I think it's ok? just separate the parts)\n(dunno how to solve)\n#######\n#.....#\n#da***#\n#*.*..#\n#.*p#.#\n#.#...#\n#.....#\n#######\n\n======================\n\n\n#######\n#.....#\n#.....#\n#.....#\n#ppp..#\n#ppp..#\n#ppp..#\n#######\n\n\n(too easily accidentally solvable? maybe/maybe not! ok level 2?)\n#######\n#.*...#\n#.#.###\n#p.s.##\n#.#w###\n#.*...#\n#######\n\n(simple? just tidying up)\n#########\n#..*.##.#\n##.*##..#\n#.....*##\n#****...#\n#.*##.p.#\n#..#.##.#\n#########\n\n\n(simple? ok intro?)\n######\n##.#.#\n#.#*##\n#**..#\n#..*.#\n##p..#\n######\n\n\n\n(ok!)\n######\n#...*#\n#da*.#\n#.p..#\n#.***#\n#.*..#\n######\n\n(intermediate eh)\n######\n#....#\n#.*.s#\n#.*.w#\n#***.#\n#*..p#\n######\n\n(early intermediate / meh)\n######\n#.da.#\n#.*..#\n#.*..#\n#****#\n#.p..#\n######\n\n(it's fine but is it fun? ok maybe a bit but not a lot)\n######\n#....#\n#.*..#\n#.***#\n#p.*.#\n#.**.#\n#*...#\n######\n\n(meh too mcuh work; couldn't remember the solution)\n(visually cute. bottom two blocks unnecessary?)\n######\n#....#\n#.**.#\n#.**.#\n#p*.*#\n#.da.#\n######\n\n(dunno. not awful. maybe I'm just tired.)\n######\n#....#\n#.*..#\n#da*.#\n#p**.#\n#.da.#\n######\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n######\n#....#\n#.#..#\n#....#\n#....#\n#....#\n######\n\n\n(meh?)\n######\n#.*..#\n#p#..#\n#.da.#\n#....#\n#.*..#\n######\n\n(yeah fine? no it's not)\n######\n#.*..#\n#.#*##\n#.*.##\n#p..##\n##.*.#\n######\n\n\n\n\n(not bad. easy but not bad)\n##########\n#....#.###\n#.....*.##\n####.*.*.#\n#.#.##*.p#\n##########\n\n(trivial)\n##########\n#....*..*#\n#...##*..#\n#.*....#.#\n#...p....#\n##########\n\n\n\n\n(easy but not terrible but not great)\n######\n#*..##\n##.*##\n#..*.#\n#....#\n#.#*p#\n##...#\n######\n\n(easy. not good not bad)\n######\n#..*.#\n####.#\n##..p#\n#.**.#\n#..#.#\n#..*.#\n######\n\n(early intermediate ok?)\n#########\n#..#..###\n###.*.*.#\n#..#..*##\n####.#*.#\n#.*.p..##\n#.*.....#\n#...#..##\n#########\n\n\n\n\n(boring)\n#######\n#.#...#\n#da...#\n#...*##\n#dap..#\n#..*#.#\n#######\n\n\n(trivialish/boring//routine)\n#######\n#*#*..#\n#....##\n#..da.#\n##..**#\n#.p.**#\n#.....#\n#######\n\n(trivialish/boring//routine)\n#######\n#da.#.#\n#..**.#\n#..**.#\n#.....#\n#*..p.#\n##*..##\n#######\n\n(kinda pleasing; nah)\n..####...\n###..####\n#..s.*..#\n#.#w.#.*#\n#....#p.#\n#########\n\n(ok intermediate. yeah but nah)\n########\n#.p....#\n#.s...*#\n#.w***.#\n#####..#\n....####\n\n(so lala intermediate)\n######.#####\n#.*..###...#\n#.da***..#.#\n#...#......#\n#.p.########\n#####.......\n\n(trivial)\n#######\n#.#...#\n#.s...#\n#.w*.##\n#..p..#\n#.###.#\n#..*..#\n#######\n\n\n(trivial)\n#######\n#.*.#.#\n#.#.#.#\n#...*.#\n##.s..#\n#.pw..#\n##.#.##\n#######\n\n\n\n(trivial)\n#######\n#...*.#\n##..#.#\n#..**.#\n#..#..#\n#.....#\n#.*p..#\n#######\n\n(trivial)\n######\n#....#\n#.s###\n#*w#.#\n#.p*.#\n#.*..#\n#.*..#\n######\n\n(trivial)\n######\n#....#\n#....#\n#*da##\n#*...#\n#p..*#\n##*..#\n######\n\n(ok but not good enoguh? or maybe yeah for an early level but I'm not sure)\n######\n#....#\n#..**#\n#.***#\n#*#.##\n#p...#\n#....#\n######\n\n(ok intermediate but also nah)\n######\n#....#\n#*#.*#\n###..#\n#..s.#\n#**w.#\n#.p..#\n######\n\n(trivial)\n######\n##.#.#\n##*da#\n#....#\n#.s..#\n#*w..#\n#.p..#\n######\n\n(trivial)\n######\n#.**.#\n#.**.#\n#..*.#\n#.p..#\n#..*##\n#....#\n######\n\n(meh)\n######\n#...s#\n#...w#\n#..*.#\n##s..#\n##w#*#\n#.p..#\n######\n\n(boring)\n######\n#...##\n#..**#\n#..*.#\n#.**.#\n#*..##\n#.p..#\n######\n\n(boring)\n######\n#.*..#\n##*..#\n#.**.#\n##.**#\n#.p..#\n##.###\n######\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n(boring)\n######\n#.da.#\n#.*..#\n#..**#\n#..*.#\n#..da#\n#.p..#\n######\n\n(boring)\n######\n#....#\n#...*#\n#s...#\n#w.da#\n#p***#\n#....#\n######\n\n(boring)\n######\n#....#\n#...*#\n#.sda#\n#pw..#\n#..s.#\n#.*w.#\n######\n\n(boring)\n######\n#....#\n#..**#\n#..**#\n#.p*.#\n#....#\n#da.*#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n##########\n\n(boring)\n##########\n#.#.*.#..#\n#.*.***.##\n#.#.....##\n#.##p.*..#\n##########\n\n(boring)\n##########\n####*..*.#\n#....#...#\n#.p***..##\n##...*.#.#\n##########\n\n(boring)\n##########\n#..#.#.#.#\n#*...da*.#\n#..da....#\n#p.###...#\n##########\n\n(boring)\n##########\n#....*s.##\n##da..w..#\n#..p#...##\n#*..##.#.#\n##########\n\n############\n#..........#\n#..........#\n#..........#\n#..........#\n############\n\n(boring)\n############\n#..#...**..#\n#.**.#*....#\n#....*.##.##\n##..#p.#...#\n############\n\n(boring)\n############\n#..#...#...#\n#.*..#..*s.#\n#p...#s##w.#\n#.#...w....#\n############\n\n(boring)\n############\n##.....da..#\n#...#s...*.#\n#.#p.w..#..#\n#.#.#...*.##\n############\n\n(not boring kinda funny but also nope)\n############\n#.....##...#\n##........##\n#*..*.#.*.*#\n#*.#p#..*.##\n############\n\n(boring)\n############\n#*.#.#...#.#\n#...da*....#\n#.##p.da...#\n#.##...#...#\n############\n\n(boring)\n############\n#*...*#.#..#\n#.#..*....##\n##...**.#..#\n#.#.p.*...##\n############\n\n(boring)\n############\n#....s.....#\n#..##w...s.#\n#.*p..#*#w.#\n#.#.#....###\n############\n\n(boring)\n############\n#..##.#....#\n#####*#.*..#\n#p#.s...*..#\n#...w.#.*#.#\n############\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n(boring)\n#######\n#.#..##\n#..**.#\n#...*##\n##...##\n##pda.#\n#..*..#\n#######\n\n\n(boring)\n#######\n#.....#\n#da...#\n#.*...#\n##*p..#\n#.*..*#\n##....#\n#######\n\n\n(boring)\n#######\n##...*#\n##....#\n#.....#\n#...*##\n#.***.#\n#p*..##\n#######\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n(meh)\n#######\n#.#..##\n#..**.#\n#...*##\n##...##\n##pda.#\n#..*..#\n#######\n\n(meh)\n#######\n#.*.s.#\n###.w##\n#.....#\n###.s.#\n#..pw*#\n#...#.#\n#######\n\n(ok but not great? meh?)\n#######\n#.....#\n#.....#\n#..da.#\n#.##*.#\n#..**.#\n#p.*#.#\n#######\n\n(trivial)\n#######\n##...*#\n#.*.#.#\n##....#\n#.p.#.#\n#.***.#\n#...*.#\n#######\n\n(easy not great?)\n#######\n#...###\n#.da*.#\n#.##..#\n#.....#\n#pda..#\n#...*.#\n#######\n\n(meh. intentionally solvable. but good? idk)\n#######\n#.s.s.#\n#.w*w.#\n#..*..#\n#....##\n#*p...#\n##*...#\n#######\n\n(trivial)\n#######\n#*....#\n#**...#\n#..s*##\n#..w..#\n#..s..#\n#p.w..#\n#######\n\n(trivial)\n#######\n#.....#\n#.....#\n#*....#\n#pda*.#\n#.#da.#\n#..**.#\n#######\n\n(trivial)\n#######\n#.....#\n#.....#\n#...**#\n#.#**.#\n#*pda.#\n#..#*.#\n#######\n\n(trivial kinda nice but trivial)\n#######\n##.#..#\n#.....#\n#..s..#\n#daw*.#\n#.#.s.#\n#.p.w*#\n#######\n\n(trivial)\n#######\n#.#...#\n#..**.#\n#..**##\n#**p.*#\n#*.#..#\n#.....#\n#######\n\n(trivial)\n#######\n#..*.##\n#s....#\n#w...*#\n#p..da#\n#...*.#\n#...*.#\n#######\n\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n######\n#....#\n#....#\n#....#\n######\n\n#####\n#...#\n#...#\n#...#\n#####\n\n########\n#......#\n#......#\n#......#\n#......#\n#......#\n#......#\n########\n\n(meh. actually ok to solve but not great?)\n########\n#.#*..*#\n#..***##\n#..s...#\n#.#w...#\n#..p#.##\n#...*.##\n########\n\n(meh)\n########\n#.*..*.#\n#.#.s*.#\n##..ws##\n#...*w.#\n#.p.#..#\n#......#\n########\n\n(trivial)\n########\n##.....#\n#.da...#\n##...###\n##.da.*#\n#sp....#\n#w.#..*#\n########\n\n(trivial)\n########\n#da....#\n#..*#..#\n#...#s.#\n#*#s.w.#\n#.pw.#.#\n#...#..#\n########\n\n\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n(trivial)\n#########\n#.......#\n#..s....#\n#.*w...##\n#.....###\n#dap.#.##\n#..#..*##\n##.....##\n#########\n\n(trivial)\n#########\n#..#..###\n###.*.*.#\n#..#..*##\n####p#*.#\n#.s....##\n#.w.....#\n#...#..##\n#########\n\n(boring)\n#########\n#..*....#\n#.#*....#\n#..da...#\n###....*#\n#.#p##..#\n#...*..##\n#....##.#\n#########\n\n(simplified a part of this and sent it to the top)\n#########\n#...#..##\n#.da##..#\n##..*...#\n#..*p...#\n#da.#...#\n#.#.#..##\n#....####\n#########\n\n\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n\n\n#######\n#.....#\n#.#.#.#\n#.....#\n##.#.##\n##...##\n#######\n\n#######\n#.....#\n#.#.#.#\n#.....#\n#.#.#.#\n#.....#\n#######\n\n########\n#.....##\n#.#.#.##\n#......#\n##.#.#.#\n##.....#\n########\n\n#########\n#.......#\n#.#.#.#.#\n#.......#\n#.#.#.#.#\n#.......#\n#########\n\n##########\n#.......##\n#.#.#.#.##\n#........#\n##.#.#.#.#\n##.......#\n##########\n\n#########\n#.......#\n#.#.#.#.#\n#.......#\n#.#.#.#.#\n#.......#\n#.#.#.#.#\n#.......#\n#########\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n########\n#......#\n#......#\n#......#\n#####..#\n....####\n\n\n\n(trivial)\n########\n#...da.#\n#.****.#\n#......#\n#####.p#\n....####\n\n(trivial)\n########\n#*.....#\n#****..#\n#p.*...#\n#####..#\n....####\n\n(trivial)\n########\n#......#\n#.*.*..#\n#.*da*.#\n#####.p#\n....####\n\n(trivial)\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#OOO...#\n#...########\n#####.......\n\n\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\n..######\n..#.OOP#\n..#.**.#\n..##.###\n...#.#..\n...#.#..\n####.#..\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\n(hmm. ok? meh)\n..######\n..#...p#\n..#.*..#\n####*###\n#..*.##.\n#.#...#.\n#.*.#.#.\n###...#.\n..#####.\n\n(hmm. not good?)\n...###..\n...#.#..\n####*#..\n#.*..##.\n#.#*..#.\n#..*#.#.\n###..p#.\n..#####.\n\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\n\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\n\n(I kinda like it, but now that I'm such an EXPERT it just doesn't do it for me)\n(want to solve but haven't yet. has the look of an ok final level?)\n######\n##.###\n#...##\n#.**.#\n#**..#\n#p..*#\n#.*.##\n######\n\n\n(meh)\n(can't solve. could be ok though)\n######\n#..###\n#.**##\n#.**.#\n#p.*.#\n#*.#.#\n#....#\n######\n\n\n\n\n\n(trivial)\n(nope not solved but nope)\n#######\n#.#...#\n#.s..*#\n#.w*s.#\n#.#*w.#\n##..*.#\n#.#..p#\n#######\n\n(trivial)\n(nope not solved but nope)\n#######\n#..#*.#\n#.s**.#\n#.w.s.#\n#..*w.#\n#p...##\n#.##.##\n#######\n\n(meh I guess it might be ok but meh)\n(stuck)\n#######\n#..##.#\n#**...#\n#.*.#.#\n#.sp*.#\n##w.#.#\n#...#.#\n#######\n\n\n\n\n(didnae solve)\n######\n#....#\n#.sda#\n#.w..#\n#*p**#\n#...*#\n######\n)\n\n(\nTRANSFORMS\n\n\n[player]->[]\n[crate]->[]\n\n(choose 2 [ player ] -> [ no player ] )\n(choose 2 [ no player ] -> [ wall ])\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 1 option 0.5 right [ no obstacle | no obstacle ] -> [ crate hands_right | crate hands_left]\n+ option 0.5 down [ no obstacle | no obstacle ] -> [ crate hands_down | crate hands_up ]\n+ option 0.5 [ no obstacle | no obstacle] -> [crate| crate]\n\n)\n",[2,2,3,3,0,1,0,3,1,2,2,2,2,2,3,0,0,0],"background wall:0,0,0,0,0,0,\n0,0,0,background:1,1,1,\nbackground crate:2,1,1,0,0,1,\n1,1,1,1,1,0,\n0,background crate hands_down:3,background crate hands_up:4,background player:5,1,1,\n1,0,0,2,3,4,\n0,0,1,0,0,0,\n0,0,0,0,0,0,\n",11,"1645544739914.9763"] + ], + [ + "Pushy-V Pully-H", + ["title Pushy-V Pully-H\nauthor increpare\nhomepage www.increpare.com\nbackground_color darkgreen\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkgray\n\nPlayer\nblue\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nCrate\ngreen gray\n11111\n0...0\n0...0\n0...0\n11111\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nobstacle = player or crate or wall\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\nvertical [ > Player | Crate ] -> [ > Player | > Crate ]\nhorizontal [ < Player | Crate ] -> [ < Player | < Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 11\n\n.########\n##o.....#\n#...*...#\n#*o.o.*.#\n##.p..###\n.######..\n\nmessage level 2 of 11\n(level 1?)\n(soluble)\n#######\n#.....#\n#.O*#.#\n#.@@P.#\n#.....#\n#######\n\nmessage level 3 of 11\n....####.\n#####..##\n#.......#\n#.**.oo.#\n#.**.oo.#\n#...p...#\n#########\n\n\nmessage level 4 of 11\n#########\n#.....#p#\n#.o..*.@#\n#...@...#\n#...##..#\n#########\n\n\nmessage level 5 of 11\n(soluble)\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 6 of 11\n(soluble)\n.#####\n.#...#\n.#.O.#\n.#.@.#\n##.@.#\n#..*.#\n#..P.#\n######\n\nmessage level 7 of 11\n\n(soluble)\n####...\n#..####\n#.....#\n#.O*O.#\n#.*P*.#\n#.O*O.#\n#.....#\n#######\n\nmessage level 8 of 11\n#########\n#.......#\n#..*.*..#\n#.*ooo*.#\n#..opo..#\n#.*ooo*.#\n#..*.*..#\n#.......#\n#########\n\nmessage level 9 of 11\n#######\n#..#..#\n#*.#*.#\n#..#..#\n#..o..#\n##o.*.#\n.#op..#\n.######\n\nmessage level 10 of 11\n(soluble)\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\nmessage level 11 of 11\n########\n#......#\n#.#..#.#\n#..@@..#\n#.*o@..#\n#.#..#.#\n#..p...#\n########\n\nmessage Congratulations! You don't just push the push, you pull the pull!\n\n\n\n(\n\n\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n\n\n#############\n#...........#\n#...........#\n#...........#\n#..***.ooo..#\n#..*p*.o.o..#\n#..***.ooo..#\n#...........#\n#...........#\n#...........#\n#############\n)\n\n(\n#########\n#..o....#\n#...#p..#\n#*.*oo.*#\n#.......#\n#########\n)\n\n( ######### )\n( ##o.....# )\n( #...*...# )\n( #*o.o.*.# )\n( ##.p..#.# )\n( ######### )\n\n\n(\n(soluble)\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n)\n\n\n\n\n\n\n\n(\n\n(soluble)\n########\n#......#\n#.*O*O.#\n#PO*O*.#\n#.*O*O.#\n#......#\n########\n)\n\n(\n\n\n\n(insoluble)\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\n(insoluble)\n#######\n#..@..#\n#..P.O#\n##*.###\n.#..#..\n.####..\n\n(insoluble)\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\n\n(insoluble)\n#####.\n#...#.\n#O#.##\n#....#\n#O...#\n###.##\n#P**#.\n#...#.\n#####.\n\n\n(insoluble)\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\n(insoluble)\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#OOO...#\n#...########\n#####.......\n\n(insoluble)\n######\n#....#\n#.**.#\n#..*.#\n###..#\n.#O.##\n.#O.#.\n.#O.##\n.#...#\n.#.#.#\n.#.P.#\n.#####\n\n(insoluble)\n..######\n..#.OOP#\n..#.**.#\n..##.###\n...#.#..\n...#.#..\n####.#..\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\n\n\n(insoluble)\n.#####......\n.#...#......\n##.#.#..####\n#....####..#\n#.#......*O#\n#...#####*O#\n#####...#.P#\n........####\n\n\n(insoluble)\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\n\n\n\n\n(insoluble)\n...####\n..##PO#\n.##.*.#\n##..*.#\n#O...##\n######.\n\n(insoluble)\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\n\n(insoluble)\n#####...\n#...#...\n#.#P#...\n#...#...\n#.#*#...\n#...#...\n#.#*####\n#...OOO#\n###*##.#\n..#....#\n..######\n\n\n)\n\n(\n\nTRANSFORMATION\n\n[ player ] -> []\n[ crate ] -> []\n[ target ] -> []\n\nchoose 3 [ no wall ] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player no target ] -> [ target ]\n\n)\n",[0,0,2,2,1,1,0,3,2,3,3,3,3,1,0,3,0,1,1,0,0,1,1,0,1,2,2,1,2,2,1,2,2,2,3,3,0,3,3,2,1,1,0,1,1,0,0,0,3,1,0,0,3,3,3,2,1,2,2,2,3,2,3,0,0,0,0,1,1,2,1,1,0,0,1,3,2,3,0,1,1,1,2,2,2,2,2,0,2,3,3,3,0,1,3,3,2,1,1,0,0,0,2,0,0],"background wall:0,0,0,0,0,0,0,\n0,0,background:1,1,1,1,1,\n1,0,0,1,background target:2,background crate:3,background crate target:4,\n1,1,0,0,3,background player:5,2,\n1,2,1,0,0,1,2,\n3,4,3,1,0,0,1,\n1,1,1,1,1,0,0,\n0,0,0,0,0,0,0,\n",19,"1645544759965.9036"] + ], + [ + "Crates move when you move", + ["title Crates move when you move\nauthor increpare\nhomepage www.increpare.com\n\n(\n\ntools used during creation:\n\nhttps://dekeyser.ch/puzzlescriptmis/\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\nnoaction\nbackground_color darkblue\n========\nOBJECTS\n========\n\nBackground\ndarkblue\n\n\nTarget\ndarkgreen\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\ndarkbrown\n\nPlayer\nOrange Orange Orange Orange\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nlightgreen\n00000\n0...0\n0...0\n0...0\n00000\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nobstacle = player or crate or wall\n\n=======\nSOUNDS\n=======\n\ncrate move 25044707\nsfx0 25044707\n\nendlevel 84712900\nstartlevel 16124700\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n======\nRULES\n======\n\n\n[ > Player ] [ Crate ] -> [ > Player ] [ > Crate ]\n\n\n\n[ > crate | no obstacle ] -> [ | > crate ] sfx0\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 10\n\n######\n#....#\n#...##\n#..*.#\n#..o.#\n#.p..#\n#....#\n######\n\n( ###### )\n( #*#..# )\n( #.p..# )\n( #..o.# )\n( #....# )\n( ###### )\n\nmessage Level 2 of 10\n######\n#.*.p#\n#.#.##\n#.o..#\n#.#..#\n######\n\nmessage Level 3 of 10\n..###..\n.##o##.\n##...##\n#*.p.o#\n##...##\n.##*##.\n..###..\n\n\n\nmessage Level 4 of 10\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\nmessage Level 5 of 10\n(kinda hard)\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage Level 6 of 10\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\nmessage Level 7 of 10\n######\n##*.##\n##@###\n##..##\n##..##\n##p.##\n##.###\n##o.##\n##..##\n######\n\n\nmessage Level 8 of 10\n#######\n#o...*#\n#o.p.*#\n#o...*#\n#######\n\nmessage Level 9 of 10\n#####.\n#P..##\n#O**.#\n##...#\n.##..#\n..##O#\n...###\n\nmessage Level 10 of 10\n(POSSIBLE to solve! Good final level?)\n######\n#....#\n#o.#p#\n#.#..#\n#.*.@#\n######\n\nmessage Congratulations! The crates learned from your your example and were all very succesful in their subsequent careers.\n\n(\n######\n#o#@.#\n#....#\n#.##*#\n#..p@#\n######\n\n(I solved this, but not intentionally)\n#######\n#.*...#\n#**...#\n#..p..#\n#...oo#\n#...o.#\n#######\n\n(fpfft no idea. haven't solved yet)\n######\n#..*.#\n#*#.##\n#..o.#\n##...#\n#..#.#\n#op#.#\n######\n\n(unsolved. too hard?)\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n####\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n####\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n)\n(\nTRANSFORMATION\n\n\nchoose 3 [ ] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player no target ] -> [ target ]\n\n)\n",[2,1,0,1,1,2,"undo",1,2,3,3,3,0,2],"background wall:0,0,0,0,0,background:1,0,1,\n1,1,0,1,0,1,background target:2,1,\n0,1,0,1,2,1,0,1,\n0,1,2,background crate:3,0,0,0,1,\n3,background player:4,1,0,0,1,1,1,\n3,0,0,0,0,0,0,0,\n",11,"1645544790426.2693"] + ], + [ + "Resin-Caster", + ["title Resin-Caster\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color darkblue\n\n(\n\ntools used during creation:\n\nhttps://dekeyser.ch/puzzlescriptmis/\nhttps://marcosdon.github.io/PuzzleScriptWithSolver/editor.html\n\n)\n\n========\nOBJECTS\n========\n\nBackground\ndarkblue\n\nWall\n#aa00ff\n.000.\n00000\n00000\n00000\n.000.\n\nPlayer\nOrange Orange Orange Orange\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate1\nred\n.000.\n00000\n00000\n00000\n.000.\n\n\nCrate2\nblue\n.000.\n00000\n00000\n00000\n.000.\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = crate1\n@ = crate2\n* = crate2\ncrate = crate1 or crate2\nobstacle = player or wall or Crate1\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, crate1, crate2\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate1 | crate2 ] -> [ | wall ]\n[ > crate2 | crate1 ] -> [ | wall ]\n\n==============\nWINCONDITIONS\n==============\n\nno crate\n\n=======\nLEVELS\n=======\n\nmessage When the two compounds are combined they set into a hard purple resin.\n\nmessage 1 of 10\n(fine!)\n######\n#....#\n#p@o.#\n#....#\n#@..o#\n######\n\nmessage 2 of 10\n(fine-ish?)\n#########\n#..o.@..#\n#..op@..#\n#########\n\nmessage 3 of 10\n(good hard level 1 or nice level 2)\n######\n#.@..#\n#..@.#\n#oo..#\n#.#.p#\n######\n\nmessage 4 of 10\n(ok? looks nice and has a solution that's not totally trivial but also not exactly something you can deduce without trying out - you won't necessarily know after the fact *why* the solkution is a solution)\n######\n#..o.#\n#.o@.#\n#o@..#\n#.p.@#\n######\n\nmessage 5 of 10\n(fine?)\n..####\n.##.o#\n##...#\n#..#.#\n#.@o.#\n#.p@.#\n######\n\nmessage 6 of 10\n(good intermediate)\n######\n#p...#\n#.o@@#\n#oo..#\n#.#@.#\n######\n\n\nmessage 7 of 10\n(kinda ok?)\n#######\n#.....#\n#...#.#\n#@#o@o#\n#.#.#.#\n#..p..#\n#######\n\nmessage 8 of 10\n(kinda fun?)\n######\n#@o.o#\n#.o.@#\n#@.@o#\n#.p..#\n######\n\n\nmessage 9 of 10\n(actually ok?)\n..####...\n###@.####\n#..@....#\n#.#.o#o.#\n#....#p.#\n#########\n\nmessage 10 of 10\n(had the solution spoiled but it's also fine :] )\n######\n#oo.@#\n#.@@o#\n#o.@.#\n#.p..#\n######\n\nmessage Congratulations! You're an exceptionally very competent resin-caster.\n\n(nice level, but maybe not include? not totally feeling it)\n( ###### )\n( #@.o.# )\n( #o.o.# )\n( #@o@.# )\n( #@..p# )\n( ###### )\n\n(eeeh it's fine but I solved it directly by avoiding doing the obvious thing which is BORING)\n( ###### )\n( #.o.p# )\n( #@@oo# )\n( #....# )\n( #@#..# )\n( ###### )\n\n(too much like other level)\n( ###### )\n( #@o.@# )\n( #...o# )\n( #o@o@# )\n( #p...# )\n( ###### )\n\n(kinda ok? I like the interlacing style. but not the best level of all time)\n( ###### )\n( #..@.# )\n( #o#@.# )\n( #.@..# )\n( #...o# )\n( #.o.p# )\n( ###### )\n\n(\n######\n#....#\n#....#\n#....#\n#....#\n######\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n\n####\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n#..#\n####\n\n\n######\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n#....#\n######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#######\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#######\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\n\n#########\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#.......#\n#########\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.*#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*O.#\n##.*P*.#\n#..O*O.#\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\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\n\n(\nTransformation\n\n[ player ] -> []\n[ crate ] -> []\n\n( choose 2 [ player ] -> [ ] )\n\nchoose 3 [ ] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate1 ]\nchoose 2 [ no obstacle ] -> [ crate2 ]\n\n)\n",[3,0,0,1,2,0,1,1,1,2,2,3,0,1,0,3,3,1,2,2,1,1,1,0,0,3,3,3,3,3],"background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,0,1,\n1,background crate2:2,0,0,0,1,1,0,0,\n0,0,1,1,1,background player:3,1,1,1,\n0,1,1,0,background crate1:4,1,0,1,0,\n0,0,1,0,1,1,1,1,1,\n",18,"1645544805711.4153"] + ], + [ + "pipe puffer", + ["title pipe puffer\nauthor increpare\nhomepage www.increpare.com\n\nrun_rules_on_level_start\n\nbackground_color #472f37\n(verbose_logging)\n( debug )\n\n========\nOBJECTS\n========\n\nBackground\n#524740 #5a4f48\n00000\n01110\n01110\n01110\n00000\n\n\n\n\nWall\n#472f37\n\nwall_s\ntransparent transparent #291c21\n00000\n11111\n11111\n11111\n22222\n\n\nwall_n\n#5f454e transparent transparent\n00000\n11111\n11111\n11111\n22222\n\nwall_o\ntransparent transparent #5f454e\n01112\n01112\n01112\n01112\n01112\n\nwall_w\n#291c21 transparent transparent\n01112\n01112\n01112\n01112\n01112\n\nwall_nw\n#472f37\n0....\n.....\n.....\n.....\n.....\n\nwall_so\n#472f37\n.....\n.....\n.....\n.....\n....0\n\nPlayer\ntransparent #a69326 #cdb844 #e3d060 #bfaa38 #000000\n01230\n34233\n22522\n11241\n01230\n\n\nrohr_no e\n#005784 #006ea6 #524740 #acacac #cccccc #656d71\n00010 \n23431\n23540\n22330\n22220\n\nrohr_ns x\n#005784 #006ea6 #524740 #acacac #cccccc #e6e6e6 #656d71\n00010\n23452\n23652\n23452\n00010\n\nrohr_nw q\n#005784 #006ea6 #acacac #cccccc #e6e6e6 #524740 #656d71\n00010\n12345\n03645\n02255\n05555\n\n\nrohr_so c\n#524740 #005784 #e6e6e6 #006ea6 #acacac #cccccc #656d71\n00001\n00223\n04651\n04541\n11131\n\nrohr_sw z\n#005784 #524740 #006ea6 #e6e6e6 #cccccc #acacac #656d71\n01111\n23311\n04631\n05431\n00020\n\nrohr_ow a\n#005784 #524740 #006ea6 #e6e6e6 #cccccc #acacac #656d71\n01110\n23332\n04640\n05550\n01110\n\noutlet_n \n#005784 #006ea6 transparent #e6e6e6 #cccccc #acacac #656d71\n01000 \n23452\n22622\n22222\n22222\n\noutlet_s \ntransparent #cccccc #acacac #e6e6e6 #005784 #006ea6 #656d71\n00000\n00000\n00600\n02130\n44454\n\noutlet_o \ntransparent #005784 #e6e6e6 #006ea6 #cccccc #acacac #656d71\n00001\n00023\n00641\n00051\n00001\n\noutlet_w \n#005784 transparent #acacac #cccccc #006ea6 #e6e6e6 #656d71\n01111\n02111\n03611\n45111\n01111\n\ninlet\nblue\n.....\n.....\n..0..\n.....\n.....\n\npust_n\n#cccccc\n.000.\n0...0\n..0..\n..0..\n.....\n\n\npust_s\n#cccccc\n.....\n..0..\n..0..\n0...0\n.000.\n\npust_o\n#cccccc\n...0.\n....0\n.00.0\n....0\n...0.\n\npust_w\n#cccccc\n.0...\n0....\n0.00.\n0....\n.0...\n\n\n\nflow\nblue\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\nwall_überlagung = wall_s or wall_n or wall_o or wall_w or wall_nw or wall_so\n\nrohr = rohr_no or rohr_ns or rohr_nw or rohr_so or rohr_sw or rohr_ow\noutlet = outlet_n or outlet_s or outlet_o or outlet_w\n\nöffnung_n = rohr_no or rohr_ns or rohr_nw or outlet_n\nöffnung_s = rohr_ns or rohr_sw or rohr_so or outlet_s\nöffnung_o = rohr_no or rohr_so or rohr_ow or outlet_o\nöffnung_w = rohr_nw or rohr_sw or rohr_ow or outlet_w\n\nwall_thing = wall or outlet \n\nrohr_or_öffnung = rohr or outlet\n\n. = Background\n# = Wall\nP = Player\n\n1 = outlet_n and wall\n2 = outlet_s and wall\n3 = outlet_o and wall\n4 = outlet_w and wall\n\n5 = outlet_n and inlet and wall\n6 = outlet_s and inlet and wall\n7 = outlet_o and inlet and wall\n8 = outlet_w and inlet and wall\n\npust = pust_n or pust_s or pust_o or pust_w\n\nobstacle = wall_thing or rohr or player\n\nrohr_or_player = rohr or player\n\n=======\nSOUNDS\n=======\nsfx0 39858907 (pusten)\nsfx1 96276907 (rohrdurchpusten)\nrohr move 73985107 (rohrbewegen)\nstartlevel 38142502\nendlevel 45497300\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, rohr\nwall_s\nwall_n\nwall_o\nwall_w\nwall_nw\nwall_so\noutlet\ninlet\nflow\npust_n\npust_s\npust_o\npust_w\n\n======\nRULES\n======\n\nup [ wall | no wall_thing ] -> [ wall wall_n | ]\ndown [ wall | no wall_thing ] -> [ wall wall_s | ]\nleft [ wall | no wall_thing ] -> [ wall wall_w | ]\nright [ wall | no wall_thing ] -> [ wall wall_o | ]\n\n\n[ wall_s wall_o ] -> [ wall_s wall_o wall_so ]\n[ wall_n wall_w ] -> [ wall_n wall_w wall_nw ]\n\n[ > player | obstacle ] -> cancel\n[pust]->[]\n\nright [ | action player | ] -> [ pust_w | action player | pust_o ] again sfx0\nup [ | action player | ] -> [ pust_s | player | pust_n ] again\n\n\nright [ rohr_so pust_n | ] -> [ rohr_so | pust_o ] sfx1\n+ down [ rohr_so pust_w | ] -> [ rohr_so | pust_s ] sfx1\n\n+ up [ rohr_ns pust_n | ] -> [ rohr_ns | pust_n ] sfx1\n+ down [ rohr_ns pust_s | ] -> [ rohr_ns | pust_s ] sfx1\n\n+ left [ rohr_sw pust_n | ] -> [ rohr_sw | pust_w ] sfx1\n+ down [ rohr_sw pust_o | ] -> [ rohr_sw | pust_s ] sfx1\n\n+ right [ rohr_ow pust_o | ] -> [ rohr_ow | pust_o ] sfx1\n+ left [ rohr_ow pust_w | ] -> [ rohr_ow | pust_w ] sfx1\n\n+ right [ rohr_no pust_s | ] -> [ rohr_no | pust_o ] sfx1\n+ up [ rohr_no pust_w | ] -> [ rohr_no | pust_n ] sfx1\n\n+ left [ rohr_nw pust_s | ] -> [ rohr_nw | pust_w ] sfx1\n+ up [ rohr_nw pust_o | ] -> [ rohr_nw | pust_n ] sfx1\n\n[ pust_n rohr ] -> [ pust_n up rohr ]\n[ pust_s rohr ] -> [ pust_s down rohr ]\n[ pust_o rohr ] -> [ pust_o right rohr ]\n[ pust_w rohr ] -> [ pust_w left rohr ]\n\n[pust outlet ] -> [ outlet ]\n\n[ > rohr_or_player | rohr_or_player ] -> [ > rohr_or_player | > rohr_or_player ]\n\n( [ > Player | Crate ] -> [ > Player | > Crate ] )\n\nlate [flow]->[]\n\nlate [ inlet ] -> [ inlet flow ]\n\nlate up [ öffnung_n flow | öffnung_s no flow ] -> [ öffnung_n flow | öffnung_s flow ]\n+ late down [ öffnung_s flow | öffnung_n no flow ] -> [ öffnung_s flow | öffnung_n flow ]\n+ late right [ öffnung_o flow | öffnung_w no flow ] -> [ öffnung_o flow | öffnung_w flow ]\n+ late left [ öffnung_w flow | öffnung_o no flow ] -> [ öffnung_w flow | öffnung_o flow ]\n\n==============\nWINCONDITIONS\n==============\n\nall outlet on flow\n\n=======\nLEVELS\n=======\n\n\nmessage Oh no the factory is falling apart! Can the pipe puffer put it back together?\n\nmessage Level 1 of 8 \n\n(kinda like. fine. best of that kind of level?)\n####6##\n#.....#\n#.....4\n#.xea.#\n##....#\n##..p.#\n#######\n\nmessage Level 2 of 8\n(I like this)\n#######\n#.....#\n#.c.8.#\n#.xa..#\n#.x...#\n#.1.p.#\n#.....#\n#######\n\n( (jokey? not hard? intermediate?) )\n( ########### )\n( #.........# )\n( #...c.z...# )\n( #...xax...# )\n( #.caqxeaz.# )\n( #..x...x..# )\n( #.x.....x.# )\n( #.x.a.a.x.# )\n( #.x.....x.# )\n( #.x..p..x.# )\n( ##5#####1## )\n\n\nmessage Level 3 of 8\n\n###########\n#.....2####\n#..caaq6###\n#..x...x..#\n#..x...x..#\n#..x.a.x..#\n#..ea.aq..#\n#.........#\n#....p....#\n###########\n\n\nmessage Level 4 of 8\n#########\n#.......#\n#...c8..#\n#.6.e4..#\n#..x....#\n#.1.a...#\n#.x..cz.#\n#..p.15.#\n#.......#\n#########\n\n\n\n\n\nmessage Level 5 of 8\n(intermediate. multiple solutions. doesn't mandate the solution I like the most tho >:[ )\n###########\n#.........#\n#.p..7aaaz#\n#..c....x.#\n#........x#\n#........q#\n########1##\n\nmessage Level 6 of 8\n(tricky)\n#########....\n#.......#....\n#......c8####\n#......x#...#\n#......eaaz.#\n#..p.x......#\n#.........1.#\n#......######\n#......#.....\n########.....\n\nmessage Level 7 of 8\n( (or maybe not that hard?) hard)\n########\n#......#\n7aaaaaz#\n#....x.#\n##3...q#\n#.....##\n#.p.cz.#\n#..aqe.#\n#......#\n########\n\n\n\n\nmessage Level 8 of 8\n(not great but ok)\n########6##\n#.....#.x.#\n#.......x.#\n#.....caq.#\n#..a..eaz.#\n#...x..x..#\n#.....a.x.#\n#..p...cq.#\n#......x#.#\n#......x#.#\n#######1###\n\nmessage Thank you! The factory is back up and running. You are verily the premier pipe puffer!\n\n( (not sure if I want this or not) )\n( (fine, solvable wiht brain-usage. doesn't use puffing though sadface) )\n( ###6### )\n( #.....# )\n( #.#..a4 )\n( #...x.# )\n( #.ea..# )\n( ##p...# )\n( ####### )\n\n( (ok silly last level? ) )\n( ############## )\n( #............# )\n( #....6..2....# )\n( #...cq..ez...# )\n( #...ez...q...# )\n( #...cq..ez...# )\n( #...ez..cq...# )\n( #...cq..ez...# )\n( #...ez..cq...# )\n( #...cq..ez...# )\n( #...ez..cq...# )\n( #....1..5....# )\n( #.....p......# )\n( ############## )\n\n\n( ###6#### )\n( #......# )\n( #..a..a4 )\n( #....x.# )\n( #..ea..# )\n( ###p...# )\n( ######## )\n\n( (hard? not yet solved unsolvable lol) )\n( ###6### )\n( #.....# )\n( ##.x.a4 )\n( #.....# )\n( #.ea#.# )\n( #.p...# )\n( ####### )\n\n\n\n(\n(simple. pleasing)\n##62###\n##.x..#\n#.e...#\n#..q..#\n##....#\n.#p.###\n.####..\n\n(similarly simple/pleasing)\n###6##\n#....4\n##.a.#\n#.e..#\n#p...#\n######\n\n(whatever)\n###6##\n#..x.4\n#.ec.#\n#..q.#\n#p...#\n######\n\n(slightly harder)\n###6##\n#..x.4\n#.cq.#\n#.e..#\n#...p#\n######\n\n(fineish)\n###6##\n###.##\n#..a.4\n#..x.#\n#.e..#\n#..p.#\n######\n\n(i remember how to do this one, which is good, but it's alos not great)\n###62###\n#......#\n#..x#..#\n#...q..#\n#x.e...#\n#....p.#\n########\n\n\n( ###6## )\n( #..ea4 )\n( #....# )\n( #.p..# )\n( #....# )\n( ###### )\n\n( ###6## )\n( #..xc4 )\n( #..eq# )\n( #.p..# )\n( #....# )\n( ###### )\n\n\n( ##62## )\n( #.eq.# )\n( #....# )\n( #.p..# )\n( #....# )\n( ###### )\n\n( ##62### )\n( #.eq..# )\n( #.....# )\n( #.p...# )\n( #.....# )\n( #.....# )\n( ####### )\n\n( ###62### )\n( #..xx..# )\n( #..eq..# )\n( #......# )\n( #......# )\n( #....p.# )\n( ######## )\n\n\n##62###\n#.xx..#\n#.eq..#\n#.p...#\n#.....#\n#.....#\n#######\n\n####6##\n#...ea4\n#.....#\n#.....#\n#.p...#\n#.....#\n#######\n\n####6##\n#...xc4\n#...eq#\n#.....#\n#.p...#\n#.....#\n#######\n\n###6###\n#..x..#\n#..eaa4\n#.....#\n#.p...#\n#.....#\n#######\n\n###62###\n#..eq..#\n#......#\n#.p....#\n#......#\n#......#\n########\n\n########\n#......#\n#......#\n#..62..#\n#..eq..#\n#.p....#\n########\n\n####6##\n#...ea4\n#.....#\n#.....#\n#.p...#\n#.....#\n#######\n\n#######\n#.....#\n#.cz..#\n#.x5p.#\n#.x2..#\n#.eq..#\n#.....#\n#######\n\n###6###\n#..ez.#\n#...ea4\n#.....#\n#.p...#\n#.....#\n#######\n\n\n\n(trivial)\n####6##\n#.....#\n#..x..4\n#..ea.#\n#.p...#\n#.....#\n#######\n\n\n####6##\n#.....#\n#..x..4\n#..ea.#\n#.p...#\n#.....#\n#######\n\n\n####6##\n#.....#\n#.c.q.#\n#p.a..4\n#.x.z.#\n#.....#\n#######\n\n##6##\n#...#\n#.p.#\n#...4\n#####\n\n.....\n.....\n.....\n.....\n.....\n\n\n( #########.... )\n( #.......6#### )\n( #.......x...# )\n( #...c.a.eaaz# )\n( #....p......# )\n( #...a.x.caaq# )\n( #.......x...# )\n( #.......1#### )\n( #########.... )\n\n\n( #########...... )\n( #.......6###### )\n( #.......x.....# )\n( #...c.a.eaaaaz# )\n( #....p........# )\n( #...a.x.caaaaq# )\n( #.......x.....# )\n( #.......1###### )\n( #########...... )\n\n\n( #########....... )\n( #.......6####### )\n( #.......x......# )\n( #..c.a..eaaaaz.# )\n( #...p..........# )\n( #..a.x..caaaaq.# )\n( #.......x......# )\n( #.......1####### )\n( #########....... )\n\n( #########....... )\n( #.......#....... )\n( #.......6####### )\n( #.......x......# )\n( #..c.a..eaaaaz.# )\n( #...p..........# )\n( #..a.x..caaaaq.# )\n( #.......x......# )\n( #.......1####### )\n( #.......#....... )\n( #########....... )\n\n( ################ )\n( #..............# )\n( #.......c8###### )\n( #.......x......# )\n( #..c.z..eaaaaz.# )\n( #...p..........# )\n( #..a.x..caaaaq.# )\n( #.......x......# )\n( #.......e4###### )\n( #..............# )\n( ################ )\n\n( ################ )\n( #..............# )\n( #.......c8###### )\n( #..c.z..x......# )\n( #...p...eaaaaz.# )\n( #..a.x.........# )\n( #.......caaaaq.# )\n( #..e.q..x......# )\n( #.......e4###### )\n( #..............# )\n( ################ )\n\n)\n\n(\ntransformation\n\n[player]->[]\n\nchoose 15 [ rohr ] [ no obstacle ] -> [ ] [ rohr ] \n(choose 1 [ player ] [ no obstacle ] -> [ ] [ player ])\n(choose 5 [ outlet ] [ wall ] -> [ wall ] [ outlet ]\nchoose 1 [ flow no outlet ] [ outlet no flow ] -> [ ] [ outlet flow ])\n\n\nchoose 1 [ no obstacle ] -> [ player ]\n\nchoose 10 option 0.5 [ no obstacle ] -> [ wall ]\n+ option 0.5 [] -> [ ]\n)\n\n\n\n",[0,0,2,1,0,4,3,3,0,0,0,1,1,1,3,4,0,1,1,2,4,2,4,3,2,3,2,2,1,1,0,4,4,2,3,3,3,0,3,0,0,4,2,1,1],"background wall:0,background wall wall_o:1,1,1,1,1,1,\n0,background wall wall_s:2,background:3,3,3,background rohr_ns:4,3,\n3,background wall wall_n:5,2,3,3,4,3,\nbackground outlet_n wall wall_n wall_nw wall_o wall_s wall_so wall_w:6,3,5,2,3,background flow rohr_so:7,3,\nbackground player:8,3,3,5,2,3,background flow inlet outlet_w wall wall_n wall_nw wall_o wall_s wall_so wall_w:9,\nbackground rohr_ow:10,3,3,3,5,2,3,\n3,3,3,3,3,5,0,\nbackground wall wall_w:11,11,11,11,11,11,0,\n",4,"1645544832464.3308"] + ], + [ + "crate guardian", + ["title crate guardian\nauthor increpare\nhomepage www.increpare.com\nrun_rules_on_level_start\nbackground_color darkgreen\n\n(\n\nthanks to youatexample for some title advice\n\nother possible titles:\nīdōlum cistae sānctum\ngreat idol of the crates\ncrate idol\n\n\n)\n( verbose_logging )\n( debug )\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\n\n( Target1 )\n( #4b1116 )\n( ..... )\n( .000. )\n( .0.0. )\n( .000. )\n( ..... )\n\n\nTarget\ndarkblue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\n#1b2632\n\nPlayer\n#c8727a\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nCrate\n#746cc2\n00000\n0...0\n0...0\n0...0\n00000\n\n\nstatue2\nblue \n00.00\n.000.\n.000.\n00.00\n.0.0.\n\n\naura2\n#383185\n\n\n=======\nLEGEND\n=======\n\n\nstatue = statue2\npushable = crate or statue\npusher = crate or statue or player\naura = aura2\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nq = Target\n\n2 = statue2\n3 = crate and target\n4 = crate and target\n7 = statue2 and target\n8 = statue2 and target\n\nobstacle = crate or statue or wall or player\n0 = wall and aura2\n9 = aura2\na = statue2 and aura2\ne = target and aura2\nf = target and crate and aura2\n\nplayer_or_statue1_or_wall = player or wall\ncrate_or_wall = crate or wall\nj = player and aura2\nm = target and statue2 and aura2\n\n=======\nSOUNDS\n=======\n\nstatue2 move 95968304\nCrate MOVE 53883107\nendlevel 25071300\nstartlevel 46394106\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\naura2\nTarget\nPlayer, Wall, Crate, statue\n\n======\nRULES\n======\n\n[ > pusher | pushable ] -> [ > pusher | > pushable ]\n[ > pushable | wall ] -> cancel\n\nlate [ aura ] -> [ ]\n\nlate right [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\nlate down [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\n\nlate [ player_or_statue1_or_wall aura2 ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nall crate on target\n\n=======\nLEVELS\n=======\n\n\n\nmessage Level 1 of 6\n(ok level 1)\n.#######.\n.#.....#.\n.#..p..#.\n.#.....#.\n.#.***.#.\n.#.999.#.\n##.9a9.##\n#..999..#\n#..ooo..#\n#.......#\n##..#..##\n.#.....#.\n.#######.\n\nmessage Level 2 of 6\n(I dunno?)\n#######\n#.....#\n#..3..#\n#.9e9.#\n#.9a9.#\n#.999.#\n#..*..#\n#.....#\n#..p..#\n#.....#\n#######\n\nmessage Level 3 of 6\n.#######.\n.#.p...#.\n.#.***.#.\n##.999.##\n#..eme..#\n#..999..#\n#...#...#\n###...###\n..#####..\n\n\nmessage Level 4 of 6\n(OK)\n##########\n#........#\n#.*999...#\n#..9a9.o.#\n#.p9e90000\n#...*.0...\n#.....0...\n#######...\n\n\nmessage Level 5 of 6\n(OK)\n######....\n#....#....\n#....##...\n#ooo..##..\n#......##.\n##......##\n.##..999.#\n..##.9a9.#\n...##999.#\n...#.....#\n...#.***.#\n...#.....#\n...#..p..#\n...#.....#\n...#######\n\nmessage Level 6 of 6\n(ok final level! I used my brain and solved it)\n#########\n#...p...#\n#..o.o..#\n#.o***o.#\n#..*a*..#\n#.o***o.#\n#..o.o..#\n#.......#\n#########\n\nmessage Congratulations. You learned how to work with the guardian of the crates. She still keeps you at a distance, but you have earned her respect.\n\n( 00000000000 )\n( 0.........0 )\n( 0....p....0 )\n( 0...o.o...0 )\n( 0..o***o..0 )\n( 0...*a*...0 )\n( 0..o***o..0 )\n( 0...o.o...0 )\n( 0.........0 )\n( 0.........0 )\n( 00000000000 )\n\n( ####### )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( #.....# )\n( ####### )\n\n\n( ######## )\n( #......# )\n( #......# )\n( #......# )\n( #..p...# )\n( #.pp...# )\n( #ppp...# )\n( ######## )\n\n(\n\nTransformations\n\nchoose 4 [] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ statue1 ]\nchoose 1 [ no obstacle ] -> [ statue2 ]\n\n\nright [ | statue1 | ] -> [ aura1 | aura1 statue1 | aura1 ]\nright [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\ndown [ no aura1 | aura1 | no aura1 ] -> [ aura1 | aura1 | aura1 ]\ndown [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\nchoose 1 [ no aura2 no obstacle ] -> [ player ]\n\nchoose 2 [no aura1 no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player ] -> [ target ]\n\n\nalt transform\n\n\nchoose 11 [ player ] -> [ no player ]\n\nchoose 4[ no player ] -> [ wall aura12 ]\n(choose 1 [ no wall | no obstacle | no wall ] -> [ | statue1| ]\nright [ | statue1 | ] -> [ aura1 | aura1 statue1 | aura1 ]\ndown [ no aura1 | aura1 | no aura1 ] -> [ aura1 | aura1 | aura1 ])\n\nchoose 1 [ no wall no aura1 no player | no obstacle no aura1 no player | no wall no aura1 no player ] -> [ |statue2| ]\nright [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\ndown [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\n(choose 1 [ no aura2 no obstacle ] -> [ player ])\n\nchoose 3 [no aura1 no obstacle ] -> [ crate ]\nchoose 3 [ no wall no player ] -> [ target ]\n\n[aura12 wall aura1] ->[aura1]\n[aura12 wall aura2] ->[aura2]\n\n\n==========\n\nchoose 5 [ player ] -> [ no player ]\n\nchoose 4[ no player ] -> [ wall ]\n\nchoose 1 [ no wall no player | no obstacle no player | no wall no player ] -> [ |statue2| ]\nright [ | statue2 | ] -> [ aura2 | aura2 statue2 | aura2 ]\ndown [ no aura2 | aura2 | no aura2 ] -> [ aura2 | aura2 | aura2 ]\n\n(choose 1 [ no aura2 no obstacle ] -> [ player ])\n\nchoose 3 [ no obstacle ] -> [ crate ]\nchoose 3 [ no wall no player ] -> [ target ]\n\n)\n\n",[2,2,3,3,2,2,1,2,2,1,1,0,2,3,3,0,1,1,2,1,3,0,1,3,0,0,0,1,2,2,3,2,1,2,1,1,0,0,2,1,1,1,3,0,0,0,1,0,0,0,0,3,3,2],"background wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,0,\n0,1,1,aura2 background target:2,aura2 background crate:3,2,1,1,0,\n0,1,background player target:4,3,aura2 background statue2:5,3,background target:6,1,0,\n0,background crate:7,1,aura2 background:8,3,3,7,1,0,\n0,1,6,1,1,1,6,1,0,\n0,1,1,6,1,6,1,1,0,\n0,1,1,7,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n",11,"1645544889350.864"] + ], + [ + "Don't let your goals slip away", + ["title Don't let your goals slip away\nauthor increpare [riff on david skinner's levels]\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\nbackground_color green\n\n\ncolor_palette 2\n========\nOBJECTS\n========\n\nBackground\nGREEN green\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nblack\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nDARKBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nlightgray lightgray lightgray lightgray\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange\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\nobstacle = crate or wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 78774307\ntarget move 81495507\nendlevel 52446100\nstartgame 73236703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n( [ > player | wall ] -> cancel )\n[ > player | crate | obstacle ] -> cancel\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > player | target ] -> [ > player | > target ] \n[ > target | target ] -> [ > target | > target ]\n[ > target | wall ] -> [ target | wall ]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 8\n\n(funny therefore good)\n####..\n#o*#..\n#..###\n#....#\n#.o*.#\n#.p###\n####..\n\n(meh)\n( ####.. )\n( #.o#.. )\n( #..### )\n( #o...# )\n( #*.*.# )\n( #.p### )\n( ####.. )\n\n\nmessage level 2 of 8\n\n\n(p. good!)\n..####...\n###..####\n#....*o.#\n#.#..#.o#\n#..*.#p.#\n#########\n\n( (Easy but funny) )\n( ###### )\n( #.*..# )\n( #.#.*# )\n( #....# )\n( #p*o.# )\n( #.oo.# )\n( ###### )\n\n\nmessage level 3 of 8\n\n(not bad)\n######\n##o..#\n#.#oo#\n#.*..#\n#.*..#\n#p*..#\n######\n\nmessage level 4 of 8\n\n########\n#...*..#\n#.o#.@p#\n#..*...#\n#####.o#\n....####\n\nmessage level 5 of 8\n\n\n\n(decent!)\n#####.\n#.*.##\n#.o.p#\n##.o.#\n.##.*#\n..##.#\n...###\n\nmessage level 6 of 8\n\n(fine right?)\n......###.\n#######o##\n#...*o...#\n#.#.#.#.##\n#.p.*...#.\n#########.\n\nmessage level 7 of 8\n(no idea. damnit spoiled but also ok.)\n####..\n#..#..\n#.*###\n#..*p#\n#..o.#\n#o.###\n####..\n\n\n\nmessage level 8 of 8\n(Tricky but also decent? involves fun manipulations)\n#######\n#..#..#\n#.o*o.#\n#.*p*##\n#.o*o.#\n#..#..#\n#######\n\n\nmessage Congratulations! You didn't let your goals run away from you.\n\n(transform\n\n[player]->[]\n[target]->[]\n[crate]->[]\n\nchoose 2 [] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player ] -> [ target ] \n\n)\n\n",[0,0,"undo","undo",1,0,0,3,3,3,2,1,1,0,0,1,0,0,"restart",0,0,0,2,3,3,2,1,1,2,1,0,0,0,0,0,2,0,1,1,1,3,3,3,"undo","undo",3,3,1,1,1,2,3,0,1,1,"restart",0,0,1,"restart",3,0,0,1,1,1,1,"undo",0,1,2,2,1,2,2,1,2,2,3,3,0,2,1,1,0,0,3,3,3,3,3,1,1],"background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,0,1,\n1,0,0,0,0,1,1,0,background player:2,\n0,background crate:3,1,1,1,0,1,1,1,\n0,1,background target:4,0,0,1,0,1,background crate target:5,\n0,0,1,0,1,1,1,1,1,\n",3,"1645544970753.6125"] + ], + [ + "Eyeball-watching flowers bloom", + ["title Eyeball-watching flowers bloom\nauthor increpare\nhomepage www.increpare.com\n\n\n(thanks to bluemelon555 for title suggestions)\n\nbackground_color #094118\ntext_color #f7e26b\nrun_rules_on_level_start\n\nverbose_logging\n\n(debug)\n\n========\nOBJECTS\n========\n\nBackground\n#0f5321 #44891a\n00000\n01000\n01010\n00010\n00000\n\n\n\n\nWall_inactivated\ntransparent #44891a #a3ce27\n01110\n12121\n11211\n12121\n01110\n\n\n\nwall_activated =\ntransparent #e06f8b #a3ce27 #f7e26b\n01120\n21111\n11311\n11112\n02110\n\nwall_burnt\ntransparent #430006 #000000\n01210\n22222\n21221\n12222\n02210\n\n\nplayer_up\nwhite yellow red black\n10201\n02320\n00200\n00000\n.000.\n\n\nplayer_down\nwhite yellow red black\n.000.\n00000\n00200\n02320\n10201\n\n\nplayer_left\nwhite yellow red black\n1000.\n02000\n23200\n02000\n1000.\n\n\nplayer_right\nwhite yellow red black\n.0001\n00020\n00232\n00020\n.0001\n\n\nCrate\ntransparent #9d9d9d #bfbfbf #737373\n00120\n01112\n31112\n33111\n03330\n\n\nstrahlen\nyellow\n\nstrahlen_top\nyellow\n00000\n00000\n.....\n.....\n.....\n\nstrahlen_bottom\nyellow\n.....\n.....\n.....\n00000\n00000\n\nstrahlen_left\nyellow\n00...\n00...\n00...\n00...\n00...\n\nstrahlen_right\nyellow\n...00\n...00\n...00\n...00\n...00\n\n\nburnout\n#0f5321 #430006 #000000\n01210\n22222\n21221\n12222\n02210\n\n\n=======\nLEGEND\n=======\n\nplayer = player_up or player_down or player_left or player_right\nwall = Wall_inactivated or wall_activated\n. = Background\n# = Wall_inactivated\nstrahlen_all = strahlen or strahlen_top or strahlen_bottom or strahlen_left or strahlen_right\n\nP = Player_up\nq = player_down\nr = player_left\ns = player_right\n\n* = crate\no = background\n@ = background\n\nobstacle = crate or wall or player\nstrahlen_or_player = strahlen or player\n=======\nSOUNDS\n=======\n\nCrate MOVE 21697107\nendlevel 23649709\nstartlevel 40644309\nstartgame 98216309\n\nsfx0 94788500 (Blume)\n(58036508)\nsfx1 78837102 (burn)\n\nsfx2 94214904 (deadend)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nstrahlen_all\nPlayer, Wall, Crate, burnout, wall_burnt\n\n======\nRULES\n======\n\nup [ > player_up | wall_activated ] -> cancel \ndown [ > Player_down | wall_activated ] -> cancel \nleft [ > Player_left | wall_activated ] -> cancel \nright [ > Player_right | wall_activated ] -> cancel \n\n[wall_burnt] -> cancel sfx2\n\nup [ > Player | Crate | no obstacle ] -> [ | Player_up | Crate ]\ndown [ > Player | Crate | no obstacle ] -> [ | Player_down | Crate ]\nleft [ > Player | Crate | no obstacle ] -> [ | Player_left | Crate ]\nright [ > Player | Crate | no obstacle ] -> [ | Player_right | Crate ]\n\nup [ > Player | no obstacle ] -> [ | Player_up ]\ndown [ > Player | no obstacle ] -> [ | Player_down ]\nleft [ > Player | no obstacle ] -> [ | player_left ]\nright [ > Player | no obstacle ] -> [ | player_right ]\n\n[ up player ] -> [ player_up ]\n[ down player ] -> [ player_down ]\n[ left player ] -> [ player_left ]\n[ right player ] -> [ player_right ]\n\n[strahlen_all]->[]\nup [ player_up | no obstacle ] -> [ player_up | strahlen ]\ndown [ player_down | no obstacle ] -> [ player_down | strahlen ]\nleft [ player_left | no obstacle ] -> [ player_left | strahlen ]\nright [ player_right | no obstacle ] -> [ player_right | strahlen ]\n\n[ strahlen_or_player | strahlen | no strahlen no obstacle ]-> [ strahlen_or_player | strahlen | strahlen ]\n\n[ strahlen_or_player | strahlen | wall_activated ] -> [ strahlen_or_player | strahlen | wall_burnt ] sfx1\n[ strahlen_or_player | strahlen | Wall_inactivated ] -> [ strahlen_or_player | strahlen | wall_activated ] sfx0\n\n\nup [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_bottom ]\ndown [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_top ]\nleft [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_right ]\nright [ strahlen_or_player | strahlen | no strahlen ]-> [ strahlen_or_player | strahlen | strahlen_left ]\n\n\nup [ player_up | no strahlen ]-> [ player_up| strahlen_bottom ]\ndown [ player_down | no strahlen ]-> [ player_down | strahlen_top]\nleft [ player_left | no strahlen ]-> [ player_left | strahlen_right ]\nright [ player_right | no strahlen ]-> [ player_right | strahlen_left ]\n\nup [ player_up | Wall_activated ] -> [ player_up | wall_burnt ] sfx1\nup [ player_up | Wall_inactivated ] -> [ player_up | wall_activated ] sfx0\ndown [ player_down | Wall_activated ] -> [ player_down | wall_burnt ] sfx1\ndown [ player_down | Wall_inactivated ] -> [ player_down | wall_activated ] sfx0\nleft [ player_left | Wall_activated ] -> [ player_left | wall_burnt ] sfx1\nleft [ player_left | Wall_inactivated ] -> [ player_left | wall_activated ] sfx0\nright [ player_right | Wall_activated ] -> [ player_right | wall_burnt ] sfx1\nright [ player_right | Wall_inactivated ] -> [ player_right | wall_activated ] sfx0\n\n==============\nWINCONDITIONS\n==============\n\nno Wall_inactivated\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 3\n\n.###.\n#...#\n#.q.#\n.###.\n\nmessage level 2 of 3\n\n\n(ok!)\n.####.\n#....#\n#.*..#\n#.p*.#\n#....#\n.####.\n\nmessage level 3 of 3\n\n(decent)\n.#####.\n#.....#\n#..*..#\n#.*p*.#\n#..*..#\n#.....#\n.#####.\n\nmessage Congratulations. The gardens look amazing.\n\n\n(\n(meh)\n.###.\n#...#\n#...#\n#.q.#\n.###.\n)\n(\n(meh)\n.####.\n#....#\n#.p..#\n#..*.#\n#....#\n.####.\n\n.#####.\n#.....#\n#.....#\n#..#..#\n#...*.#\n#...p.#\n.#####.\n\n(maybe ok? kinda cheated to find the solution but i could've figured it out!)\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#....q#\n.####=.\n\n(i could not solve this and I think that it's bad)\n.###.\n#...#\n#...#\n#...#\n#...#\n#.*.#\n#.p.#\n.###.\n\n\n.####.\n#....#\n#....#\n#....#\n#....#\n.####.\n\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n.#####.\n\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n.#####.\n\n.#####.\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n.#####.\n\n.######.\n#......#\n#......#\n#......#\n#......#\n#......#\n#......#\n#......#\n.######.\n)\n\n(Transform\n\n[player]->[]\n[crate]->[]\n\n\nchoose 2 [ ] -> [ wall_inactivated ]\n\nchoose 1 [ no obstacle ] -> [ player_up ]\n+ [ no obstacle ] -> [ player_down ]\n+ [ no obstacle ] -> [ player_left ] \n+ [ no obstacle ] -> [ player_right ]\n\nchoose 1 [ no obstacle ] -> [ crate ]\n\n[strahlen]->[]\nup [ player_up | no obstacle ] -> [ player_up | strahlen ]\ndown [ player_down | no obstacle ] -> [ player_down | strahlen ]\nleft [ player_left | no obstacle ] -> [ player_left | strahlen ]\nright [ player_right | no obstacle ] -> [ player_right | strahlen ]\n\n[ strahlen_or_player | strahlen | no strahlen no obstacle ]-> [ strahlen_or_player | strahlen | strahlen ]\n[ strahlen_or_player | strahlen | Wall_inactivated ] -> [ strahlen_or_player | strahlen | wall_activated ]\n\nup [ player_up | Wall_activated ] -> cancel\nup [ player_up | Wall_inactivated ] -> [ player_up | wall_activated ]\ndown [ player_down | Wall_inactivated ] -> [ player_down | wall_activated ]\nleft [ player_left | Wall_inactivated ] -> [ player_left | wall_activated ]\nright [ player_right | Wall_inactivated ] -> [ player_right | wall_activated ]\n\n\n)\n\n",[1,2,3,3,0,"undo",0,0,3,2,3,2,1,1,0,0,1,0,1,2,3],"background:0,background wall_activated:1,1,1,background wall_inactivated:2,0,\n1,0,0,0,background crate:3,1,\n2,3,background player_right strahlen_right:4,0,0,2,\n2,0,background strahlen:5,0,0,2,\n2,0,5,0,0,1,\n0,2,background strahlen_left wall_burnt:6,1,1,0,\n",3,"1645545001785.496"] + ], + [ + "Subway upholstry snot smearing championship", + ["title Subway upholstry snot smearing championship\nauthor increpare\nhomepage www.increpare.com\ncolor_palette 1\n\nrun_rules_on_level_start\n\nbackground_color #131316\ntext_color #6abe30\n========\nOBJECTS\n========\n\nBackground\n#5b6ee1 #639bff #ac3232\n00011\n10101\n12101\n20201\n10200\n\ntilled \n#6abe30 #5b6ee1\n01110\n01001\n10101\n10110\n01011\n\n\n\nWall\n#e7dcc0 #b478cb #e1ae5b #d77bba #76428a\n00000\n01220\n01330\n04330\n00000\n\nwallalt\n#e7dcc0 #e1ae5b #e15b5b #ab7722\n00000\n01120\n01120\n03330\n00000\n\n\n\nwallt\n#fdefd4 #e7dcc0 #42b7f0 #65dadf #54cf6f\n00000\n11111\n12231\n14231\n11111\n\nwallb\n#e7dcc0 #e96ff2 #780d80 #e442f0 #c2bb91\n00000\n01120\n02330\n00000\n44444\n\nwalltb\n#fdefd4 #e7dcc0 #6c1710 #ab1d11 #c2bb91\n00000\n11111\n12331\n11111\n44444\n\nwalltbalt\n#fdefd4 #e7dcc0 #fbf236 #fba736 #c2bb91\n00000\n11111\n12231\n11111\n44444\n\n\nPlayer\n#5b6ee1 #524b24 #eec39a #3f3f74 #000000\n01110\n02220\n23332\n03030\n04040\n\n\nCrate\ntransparent #99e550 #6abe30\n01110\n12221\n12221\n12221\n01110\n\nvoid ,\n#131316\n\n\n=======\nLEGEND\n=======\n\n\n. = Background\n# = Wall\n1 = wallt\n2 = wallb\n3 = walltb\n\n\nP = Player\n* = Crate and tilled\n@ = Crate and tilled\nO = Background\n\n\nwalls = Wall or wallt or wallb or walltb or wallalt or walltbalt\n\nwalls_or_void = walls or void\n\ngoodstate = walls_or_void or tilled\n=======\nSOUNDS\n=======\n\nCrate MOVE 41474107\nsfx0 3420907 (new snot)\nstartlevel 24347308\nendlevel 56675308\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ntilled\nPlayer, walls_or_void, Crate\n\n======\nRULES\n======\n\ndown [ no walls | walls | walls ] -> [ | wallt | walls ]\n\ndown [ walls | walls | no walls ] -> [ walls | wallb | ]\n\ndown [ no walls | walls | no walls ] -> [ | walltb | ]\n\ndown [ no wallalt | wall | wall | no wallalt ] -> [ | wall | wallalt | ] \n\nright [ no walltbalt | walltb | walltb | no walltbalt ] -> [ | walltbalt | walltb | ] \n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ < Player | Crate ] -> [ < Player | < Crate ]\n\nlate [ crate no tilled ] -> [ crate tilled ] sfx0\n\n==============\nWINCONDITIONS\n==============\n\nall Background on goodstate\n\n=======\nLEVELS\n=======\n\nmessage Go on, smear it ALL around!\n\nmessage Carriage 1 of 7\n(level 1)\n133331\n#p.*.#\n#*.1.#\n#..2.#\n#...*#\n233332\n\n\nmessage Carriage 2 of 7\n(level2)\n133331\n#....#\n#p.**#\n#.1**#\n232332\n\nmessage Carriage 3 of 7\n(slightly wholesome)\n13331,\n#...21\n#p...#\n21***#\n,21**#\n,,21.#\n,,,232\n\nmessage Carriage 4 of 7\n(I like this level! has personality)\n,,1331,,,\n132.*2331\n#.*.p...#\n#*3*.1*.#\n#.*..#..#\n233332332\n\n(\n(not actually taht scary, just need to use head a tiny amount)\n133331\n#.***#\n#*3**#\n#****#\n#....#\n#..p.#\n233332\n)\n\nmessage Carriage 5 of 7\n(pretty nice)\n133331\n#....#\n#.3p.#\n#..**#\n#****#\n#....#\n233332\n\n\nmessage Carriage 6 of 7\n(ok crate management?)\n133331,13331\n#*.*.232*.*#\n#p.....**3*#\n#...1....*.#\n#*.*#3333332\n23332,,,,,,,\n\nmessage Carriage 7 of 7\n(Decisions need to be made. ok conceptually?)\n,1313131,\n12.2*2.21\n#.*...*.#\n#3.3.3.3#\n#...*...#\n#3.3.3.3#\n#.*.p.*.#\n21.1.1.12\n,2323232,\n\nmessage All done! Very satisfying! \n\n(\n\n######\n#....#\n#.*.*#\n#p#.*#\n######\n\n\n######\n#p.*.#\n#*.#.#\n#..#.#\n#...*#\n######\n\n######\n#*.###\n#..#.#\n#p*#*#\n#...*#\n######)\n\n(\n\nTRANSFORM\n\n[ player ] -> []\n[ crate ] -> []\n\nchoose 4 [ ] - > [ wall ]\nchoose 1 [ no wall | no wall ] -> [ player | crate ]\n\n)\n",[1,2,3,0,1,3,3,3,3,3,2,0,1,2,3,0,1,1,1,2,1,0,3,3,1,2,2,1,1,1,3,0,0,1,3,0,0,1,2,1,1,3,2,2,3,0,2],"background void:0,background wallt:1,background wall:2,background wallalt:3,2,background wallb:4,0,background walltb:5,background tilled:6,\nbackground crate tilled:7,6,background walltbalt:8,1,4,7,5,6,5,\n8,6,6,7,7,8,5,6,6,\n7,background player:9,5,1,4,6,1,2,4,\n0,8,6,6,7,8,0,5,background:10,\n10,10,5,0,1,2,3,2,4,\n",8,"1645545059102.073"] + ], + [ + "Double-Entry Bookkeeping Simulator#1", + ["title Double-Entry Bookkeeping Simulator\nauthor increpare\nhomepage www.increpare.com\n\n( verbose_logging )\nrun_rules_on_level_start\n\nbackground_color #404040\n\nagain_interval 0.1\n\n\n( Svelte Version für Simulieren \nhttps://www.puzzlescript.net/editor.html?hack=a52aae823542d184b57fc3301627a81a \n)\n\n========\nOBJECTS\n========\n\nBackground\n#404040\n\n\n\nWall\n#000000\n\n\nPlayer\ntransparent #ffffff\n01110\n01010\n11111\n00100\n01010\n\nblue_raw\n#1e88e5\n\n\nblue1 \n#003461 #1e88e5\n00100\n01100\n00100\n00100\n01110\n\nblue2 \n#003461 #1e88e5\n01100\n00010\n00100\n01000\n01110\n\nblue3 \n#003461 #1e88e5\n01100\n00010\n01100\n00010\n01100\n\nblue4 \n#003461 #1e88e5\n01000\n01000\n01010\n01110\n00010\n\nblue5 \n#003461 #1e88e5\n01110\n01000\n01100\n00010\n01100\n\nblue6 \n#003461 #1e88e5\n00100\n01000\n01100\n01010\n00100\n\nblue7 \n#003461 #1e88e5\n01110\n00010\n00010\n00100\n00100\n\nblue8 \n#003461 #1e88e5\n00100\n01010\n00100\n01010\n00100\n\nblue9 \n#003461 #1e88e5\n00110\n01010\n00110\n00010\n00010\n\nred_raw\n#d81b60\n\nred1 \n#56001f #d81b60\n00100\n01100\n00100\n00100\n01110\n\nred2 \n#56001f #d81b60\n01100\n00010\n00100\n01000\n01110\n\nred3 \n#56001f #d81b60\n01100\n00010\n01100\n00010\n01100\n\nred4 \n#56001f #d81b60\n01000\n01000\n01010\n01110\n00010\n\nred5 \n#56001f #d81b60\n01110\n01000\n01100\n00010\n01100\n\nred6 \n#56001f #d81b60\n00100\n01000\n01100\n01010\n00100\n\nred7 \n#56001f #d81b60\n01110\n00010\n00010\n00100\n00100\n\nred8 \n#56001f #d81b60\n00100\n01010\n00100\n01010\n00100\n\nred9 \n#56001f #d81b60\n00110\n01010\n00110\n00010\n00010\n\nonce\ntransparent\n\ncounted\nwhite\n.....\n.....\n.....\n...0.\n.....\n\ncounting\nyellow\n.....\n.0...\n.....\n.....\n.....\n\ndeleting\nyellow\n00000\n0...0\n0...0\n0...0\n00000\n\ndeleted\norange\n.....\n.....\n...0.\n.....\n.....\n\nwall1\n#000000 #1f1f1f\n00100\n01100\n00100\n00100\n01110\n\nwall2\n#000000 #1f1f1f\n01100\n00010\n00100\n01000\n01110\n\nwall3\n#000000 #1f1f1f\n01100\n00010\n01100\n00010\n01100\n\nwall4\n#000000 #1f1f1f\n01000\n01000\n01010\n01110\n00010\n\nwall5\n#000000 #1f1f1f\n01110\n01000\n01100\n00010\n01100\n\nwall6\n#000000 #1f1f1f\n00100\n01000\n01100\n01010\n00100\n\nwall7\n#000000 #1f1f1f\n01110\n00010\n00010\n00100\n00100\n\nwall8\n#000000 #1f1f1f\n00100\n01010\n00100\n01010\n00100\n\nwall9\n#000000 #1f1f1f\n00110\n01010\n00110\n00010\n00010\n\n=======\nLEGEND\n=======\n\nwalllabel = wall1 or wall2 or wall3 or wall4 or wall5 or wall6 or wall7 or wall8 or wall9\nred = red_raw or red1 or red2 or red3 or red4 or red5 or red6 or red7 or red8 or red9\n\nblue = blue_raw or blue1 or blue2 or blue3 or blue4 or blue5 or blue6 or blue7 or blue8 or blue9\n\nblue_other = blue\nred_other = red\n\ncoloured = red or blue\n\npushable = red or blue\n. = Background\n# = Wall\nP = Player\n* = red_raw\n@ = blue_raw\n\nobstacle = pushable or wall or player\n\n=======\nSOUNDS\n=======\n\nred move 76964107\nblue move 73247707\nsfx0 66382107 (destroy)\nsfx1 49518300 (destroy start)\n\nstartlevel 46354708\nendlevel 70029700\nstartgame 40047300\n\n================\nCOLLISIONLAYERS\n================\n\nonce, counted\ncounting\ndeleted\nBackground\nPlayer, Wall, pushable\ndeleting\nwalllabel\n\n======\nRULES\n======\n\n[ moving player ] [ deleted ] -> [ moving player ] [ ]\n\n[ blue no deleting ] -> [ blue_raw ]\n[ red no deleting ] -> [ red_raw ]\n\n[ > Player | pushable ] -> [ > Player | > pushable ]\n\n\nstartloop\n\nlate [ player no once no deleting ] [ blue no counted no deleting ] -> [ player once ] [ once blue ]\n\nlate [ once blue_raw no deleting ] -> [ counting blue1 counted ]\nlate [ once blue1 no deleting ] -> [ counting blue2 counted ]\nlate [ once blue2 no deleting ] -> [ counting blue3 counted ]\nlate [ once blue3 no deleting ] -> [ counting blue4 counted ]\nlate [ once blue4 no deleting ] -> [ counting blue5 counted ]\nlate [ once blue5 no deleting ] -> [ counting blue6 counted ]\nlate [ once blue6 no deleting ] -> [ counting blue7 counted ]\nlate [ once blue7 no deleting ] -> [ counting blue8 counted ]\nlate [ once blue8 no deleting ] -> [ counting blue9 counted ]\n\nlate [once]->[]\n\nlate [ counting blue no deleting | no counting blue_other no deleting ] -> [ counting blue | counting blue ]\nlate [counting]->[]\n\nendloop\n\n\nstartloop\nlate [ player no once ] [ red no counted no deleting ] -> [ player once ] [ once red ]\n\nlate [ once red_raw no deleting ] -> [ counting red1 counted ]\nlate [ once red1 no deleting ] -> [ counting red2 counted ]\nlate [ once red2 no deleting ] -> [ counting red3 counted ]\nlate [ once red3 no deleting ] -> [ counting red4 counted ]\nlate [ once red4 no deleting ] -> [ counting red5 counted ]\nlate [ once red5 no deleting ] -> [ counting red6 counted ]\nlate [ once red6 no deleting ] -> [ counting red7 counted ]\nlate [ once red7 no deleting ] -> [ counting red8 counted ]\nlate [ once red8 no deleting ] -> [ counting red9 counted ]\n\nlate [once]->[]\n\nlate [ counting red no deleting | no counting red_other no deleting ] -> [ counting red | counting red ]\nlate [counting]->[]\n\nendloop\n\n\nrandom late [ deleting red1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting red2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting red3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting red4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting red5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting red6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting red7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting red8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting red9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting blue1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting blue2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting blue3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting blue4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting blue5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting blue6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting blue7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting blue8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting blue9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting red1 | deleting blue1 ] -> [ wall wall1 deleted | wall wall1 deleted ] again sfx0\n+ late [ deleting red2 | deleting blue2 ] -> [ wall wall2 deleted | wall wall2 deleted ] again sfx0\n+ late [ deleting red3 | deleting blue3 ] -> [ wall wall3 deleted | wall wall3 deleted ] again sfx0\n+ late [ deleting red4 | deleting blue4 ] -> [ wall wall4 deleted | wall wall4 deleted ] again sfx0\n+ late [ deleting red5 | deleting blue5 ] -> [ wall wall5 deleted | wall wall5 deleted ] again sfx0\n+ late [ deleting red6 | deleting blue6 ] -> [ wall wall6 deleted | wall wall6 deleted ] again sfx0\n+ late [ deleting red7 | deleting blue7 ] -> [ wall wall7 deleted | wall wall7 deleted ] again sfx0\n+ late [ deleting red8 | deleting blue8 ] -> [ wall wall8 deleted | wall wall8 deleted ] again sfx0\n+ late [ deleting red9 | deleting blue9 ] -> [ wall wall9 deleted | wall wall9 deleted ] again sfx0\n\nlate [counted]->[]\n\n\nlate [ red1 | blue1 ] -> [ deleting red1 | deleting blue1 ] again sfx1 \nlate [ red2 | blue2 ] -> [ deleting red2 | deleting blue2 ] again sfx1 \nlate [ red3 | blue3 ] -> [ deleting red3 | deleting blue3 ] again sfx1 \nlate [ red4 | blue4 ] -> [ deleting red4 | deleting blue4 ] again sfx1 \nlate [ red5 | blue5 ] -> [ deleting red5 | deleting blue5 ] again sfx1 \nlate [ red6 | blue6 ] -> [ deleting red6 | deleting blue6 ] again sfx1 \nlate [ red7 | blue7 ] -> [ deleting red7 | deleting blue7 ] again sfx1 \nlate [ red8 | blue8 ] -> [ deleting red8 | deleting blue8 ] again sfx1 \nlate [ red9 | blue9 ] -> [ deleting red9 | deleting blue9 ] again sfx1 \n\nlate [ deleting red1 | no deleting red1 ] -> [ deleting red1 | deleting red1 ]\nlate [ deleting red2 | no deleting red2 ] -> [ deleting red2 | deleting red2 ]\nlate [ deleting red3 | no deleting red3 ] -> [ deleting red3 | deleting red3 ]\nlate [ deleting red4 | no deleting red4 ] -> [ deleting red4 | deleting red4 ]\nlate [ deleting red5 | no deleting red5 ] -> [ deleting red5 | deleting red5 ]\nlate [ deleting red6 | no deleting red6 ] -> [ deleting red6 | deleting red6 ]\nlate [ deleting red7 | no deleting red7 ] -> [ deleting red7 | deleting red7 ]\nlate [ deleting red8 | no deleting red8 ] -> [ deleting red8 | deleting red8 ]\nlate [ deleting red9 | no deleting red9 ] -> [ deleting red9 | deleting red9 ]\n\n\nlate [ deleting blue1 | no deleting blue1 ] -> [ deleting blue1 | deleting blue1 ]\nlate [ deleting blue2 | no deleting blue2 ] -> [ deleting blue2 | deleting blue2 ]\nlate [ deleting blue3 | no deleting blue3 ] -> [ deleting blue3 | deleting blue3 ]\nlate [ deleting blue4 | no deleting blue4 ] -> [ deleting blue4 | deleting blue4 ]\nlate [ deleting blue5 | no deleting blue5 ] -> [ deleting blue5 | deleting blue5 ]\nlate [ deleting blue6 | no deleting blue6 ] -> [ deleting blue6 | deleting blue6 ]\nlate [ deleting blue7 | no deleting blue7 ] -> [ deleting blue7 | deleting blue7 ]\nlate [ deleting blue8 | no deleting blue8 ] -> [ deleting blue8 | deleting blue8 ]\nlate [ deleting blue9 | no deleting blue9 ] -> [ deleting blue9 | deleting blue9 ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nno coloured\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 9\n\n(improved version?)\n.....######\n.....#....#\n....##..@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n\nmessage Level 2 of 9\n\n#######...\n#@#@#@#...\n#@#@#@#...\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n.....#p..#\n.....#####\n\n\n\n\n\nmessage Level 3 of 9\n(ok? not too hard)\n#######.\n#.....#.\n#..*.@#.\n####.###\n.#.....#\n.#.*.@.#\n.#..p..#\n####.###\n#..*.@#.\n#.....#.\n#######.\n\n\n\nmessage Level 4 of 9\n#######..\n#.....#..\n#...@.#..\n#...@.###\n#...@.#@#\n#.....#.#\n#.p..***#\n#.....#.#\n#...@.#.#\n#...@...#\n#...@.###\n#.....#..\n#######..\n\n\nmessage Level 5 of 9\n\n(Actually tricky? or a bit overwhelming maybe?)\n(requires silly batching. i like this)\n#########\n#...#...#\n#..***..#\n#.......#\n####.####\n#.......#\n#..@@@p.#\n#...#...#\n#########\n\nmessage Level 6 of 9\n(possibly ok? IDK? WE?)\n#########\n#.......#\n#.*..@.*#\n#..**..@#\n#..**.@@#\n#.*..*..#\n#..p....#\n#########\n\nmessage Level 7 of 9\n(p ok? solution involves knowing something, but maybe you just stumble through it without knowing the thing)\n\n#####..\n#@@@#..\n#@@@##.\n#@#.@##\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\nmessage Level 8 of 9\n(p. ok level)\n###########\n#.........#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.p.......#\n#.........#\n###########\n\nmessage Level 9 of 9\n(ok final level maybe?)\n(fixed version?)\n...####....\n####..#....\n#@..*.#....\n###...#....\n..#.*#####.\n..#.*#.p.#.\n..#****@@#.\n..#.@@...#.\n..#.@@...#.\n..#.#@...##\n..#.......#\n..####....#\n.....######\n\nmessage Congratulations. You have mastered all the numbers, from 1 up to 9!\n\n(DISCARD PILE::::)\n\n(BAD IDEAS FOR FIRST LEVEL END )\n(thje better version. maybe ok early level?)\n( ####### )\n( #..#..# )\n( #..*.p# )\n( #..*..# )\n( #.....# )\n( ###.### )\n( #.....# )\n( #..@..# )\n( #..@..# )\n( #..#..# )\n( ####### )\n\n\n( ########## )\n( #@...##### )\n( ##...##### )\n( ##...##### )\n( ##@..##### )\n( ###...#### )\n( ###...#### )\n( ###@..#### )\n( ####.....# )\n( ####.***.# )\n( ####..p..# )\n( ########## )\n\n\n( audio test level)\n( ############# )\n( #..@........# )\n( #..@....@@..# )\n( #..@....@@@.# )\n( #..@.@..@@@.# )\n( #.*....*....# )\n( #..*.*..***.# )\n( #..*....***.# )\n( #..*....*...# )\n( #....p......# )\n( #...........# )\n( ############# )\n\n(level 2/3?)\n( ########## )\n( #........# )\n( #.**.@@@.# )\n( #........# )\n( #...p....# )\n( #........# )\n( ########## )\n\n(ok early level? meh other level does this but better IMO)\n( ###### )\n( #....# )\n( #.@.*# )\n( #.@.*# )\n( ###.## )\n( #....# )\n( #..p.# )\n( #....# )\n( ###.## )\n( #.@.*# )\n( #.@.*# )\n( #....# )\n( ###### )\n\n(ok level I think?)\n( ############# )\n( ####@.*...### )\n( ######*##.### )\n( #.....*.....# )\n( #.@@@...@@@.# )\n( #...........# )\n( #.....p.....# )\n( #...........# )\n( ############# )\n\n(\n\n(needs a few more steps of indirection on the right)\n#########\n#####*###\n#...#*###\n#.**@*###\n#.......#\n#@@..@@.#\n####p...#\n#########\n\n##############\n#....##......#\n#....##*.....#\n#.....#*.....#\n#...**@*.....#\n#............#\n###@@....@@..#\n######.p.....#\n######.......#\n##############\n\n###########\n#**@@***@@#\n#**..***..#\n#.........#\n#.........#\n#...@.@.@.#\n#.p.......#\n#...@.@.@.#\n#.........#\n###########\n\n##############\n#...#........#\n*.@.#........#\n#.#####**....#\n#.##**@**....#\n#............#\n####...@.@.@.#\n...#.p@.@.@..#\n...#.........#\n...###########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##....p..#\n##########\n\n\n(damnit a shortcut/trivialisation)\n##########\n####..####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n#@..######\n##..######\n##.*######\n##..#.p.##\n##****@@##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n(pedagogical version of other level)\n#############\n#@@*#@@#@####\n#@@*#@*#@####\n###*##*#*####\n###.......*.#\n###.......*.#\n#########.*.#\n#########p..#\n#############\n\n##########\n#........#\n#...@....#\n#........#\n#...**.@.#\n#.@.**...#\n#........#\n#.p..@...#\n#........#\n##########\n\n\n.#########.\n.#@.######.\n.#..######.\n.#****...#.\n.#*.**.p.#.\n###.**...#.\n#...@@*@@#.\n#...@@...#.\n#...@@...#.\n#@@*@@*@@#.\n#...*....#.\n#...@....#.\n#...@....#.\n##########.\n\n##########\n##@.##...#\n##..##.p.#\n###***...#\n##..***@@#\n##..@@...#\n##..@@...#\n##...@...#\n##.......#\n##.......#\n##########\n\n#########\n#@.##...#\n#..##.p.#\n##****@@#\n#..@@...#\n#...@...#\n#.......#\n#.......#\n#########\n\n##########\n####*#####\n#@.#*.p.##\n##****@@##\n##.@@...*#\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n\n\n##########\n#..#######\n#..#######\n#..##.p.##\n##****@@##\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n############\n#....#######\n#....#*#####\n#....#*.p.##\n#*##****@@##\n#.##.@@...*#\n#@##.@@...##\n####.#@...##\n####.......#\n####.......#\n############\n\n.#########...\n.#..######...\n.#..######...\n.##......#...\n.#.....p.#...\n##.......#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n##########...\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.......#\n#......*#\n#.....@*#\n######.##\n#....#.*#\n#.p...@.#\n#.......#\n#########\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.p.....#\n#......*#\n#.....@*#\n#.......#\n#....@.*#\n#.......#\n#########\n\n(is this funnier than above? I don't think so but I@m not sure)\n###########\n#.........#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.p.......#\n#.........#\n###########\n\n(technically harder than above but also more work)\n################\n#..............#\n#..............#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#.p............#\n#..............#\n################\n\n\n#################\n#...............#\n#...............#\n#..@@@.@@@.@@@..#\n#...*...*...*...#\n#..@@@.@@@.@@@..#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#...............#\n#################\n\n#################\n#...............#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n...............\n...............\n..@@@.@@@.@@@..\n...*...*...*...\n..@@@.@@@.@@@..\n...............\n...............\n.......p.......\n...............\n...............\n\n..........@.@...\n..........@.@...\n..........@*@...\n.......@@@*.*@@@\n..........@.@...\n..........@.@...\n..........@.@...\n................\n................\n\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n########\n#......#\n#......#\n#..@.*.#\n#......#\n###..*##\n####.###\n#p.@...#\n#......#\n####.###\n#......#\n#......#\n########\n\n\n...################\n..................#\n....@.............#\n.....@............#\n.@.**.@...........#\n..@.**.@..........#\n...@.**...........#\n....@.**..........#\n......p*.@........#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#################\n\n.........\n.........\n.#.#.#.#.\n.@.*.@.*.\n.#.#.#.#.\n.@.*.@.*.\n*#@#*#@#*\n.........\n..p......\n\n\n..#.#.#.#..\n...........\n..#.#.#.#..\n...........\n..#.#.#.#..\n...p.......\n\n.#.#.#.#.\n.@.*.*.@.\n.#.#.#.#.\n.@.*.*.@.\n*#@#.#@#*\n..p......\n\n(meh)\n#########\n#...@####\n#..*.@###\n#@..*.@##\n##@..*.@#\n###@..*.#\n####@p..#\n#########\n\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n(meeeeh. I think not great? too long but also if short too randomo)\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n###########\n###########\n##...@#####\n##..*.@####\n##@..*.@###\n###@..*.###\n####@p....#\n#####.***.#\n#####.....#\n###########\n\n#########\n#...@####\n#..*.@###\n#@..*.###\n##@..*.##\n####..*.#\n#####...#\n######.p#\n#########\n\n...#.......\n....#......\n....@#.....\n.....@#....\n#@....@#...\n.#@..*.@#..\n..#@..*....\n...#@..*...\n....#.*.*..\n.......*...\n......p.*..\n.........*.\n...........\n\n( (kinda different from the above) )\n( (trivial) )\n( ####### )\n( #....## )\n( #....## )\n( #.*.@## )\n( ###.### )\n( #.....# )\n( #.*.@.# )\n( #..p..# )\n( ###.### )\n( #.*.@## )\n( #....## )\n( #....## )\n( ####### )\n\n\n#######\n#....##\n#....##\n#....##\n#....##\n#.*.@##\n###.###\n#.....#\n#.*.@.#\n#p....#\n###.###\n#.*.@##\n#....##\n#....##\n#....##\n#....##\n#######\n\n#######\n#....##\n#....##\n#....##\n#.@.*##\n#.@.*##\n###.###\n#.....#\n#.@.*.#\n#p....#\n###.###\n#.@.*##\n#.@.*##\n#....##\n#....##\n#....##\n#######\n\n###########\n###@.*..###\n#####*#.###\n.....*.....\n.@@@...@@@.\n.....p.....\n...........\n...........\n\n#############\n####.....####\n######.#.####\n#...........#\n#...........#\n#.....p.....#\n#...........#\n#############\n\n#######\n#.....#\n#.***.#\n#.....#\n###.###\n#.....#\n#.@@@p#\n#.....#\n#######\n\n....####\n....#..#\n....#..#\n#####..#\n#...#..#\n#..@..*#\n#...#p.#\n#####..#\n#..@..*#\n#......#\n######.#\n....#@.#\n....#..#\n....#.*#\n....#..#\n....####\n\n.#######.\n.#.....#.\n.#..*..#.\n.#.*.*.#.\n.#.*.*.#.\n.#.....#.\n.#.....#.\n###.#.###\n#@@.#.@@#\n#@@.#.@@#\n#@..#..@#\n#@.*#*.@#\n#@p.#..@#\n#########\n\n@....*\n.@..*.\n......\n.@..*.\n..p...\n\n..........\n.@@....**.\n.@@....**.\n...@..*...\n..........\n...@..*...\n.....p....\n..........\n\n\n(ok partition problem)\n(nah broken)\n.........\n.........\n.@.....@.\n.@.#*#.@.\n.@..*..@.\n.........\n....p....\n.........\n\n...............\n....@..#..@....\n.#..@.#*#.@..#.\n#*..@..*..@..*#\n.#..@.....@..#.\n.......p.......\n...............\n\n....####.....\n...#@.*......\n....##*#.....\n......*......\n.............\n..@@@.p.@@@..\n.............\n.............\n\n#######\n#.....#\n#.#.#.#\n#.@.*.#\n###.###\n.......\np.@.*..\n.......\n###.###\n#.@.*.#\n#.#.#.#\n#.....#\n#######\n\n######\n#...##\n#...##\n#...##\n#.@.*#\n###.##\n......\np.@.*.\n......\n###.##\n#.@.*#\n#...##\n#...##\n#...##\n######\n\n(trivial)\n(\n.........\n.........\n..**.@...\n.........\n....p....\n.........\n)\n\n\n\n............\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..*.*..*.*..\n.....p......\n............\n\n...........\n.....@.....\n.....@.....\n.....@.....\n.....@.....\n.....*.....\n.@@@@*@@@@.\n.....*.....\n.@@@@.@@@@.\n.....*.....\n...........\n.....p.....\n...........\n\n...........\n...........\n..###.###..\n..#*....#..\n..#.*...#..\n..###.###..\n..p.@.@....\n...........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n..........\n..........\n..........\n\n..........\n..........\n..####....\n..#*.@..p.\n..#.*@....\n..####....\n..........\n..........\n\n..........\n..........\n..####....\n..#*..@.p.\n..#.*.@...\n..####....\n..........\n..........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n####..####\n..........\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n..........\n\n.########.\n.#......#.\n.#.*..@.#.\n.#..*.@.#.\n####..####\n...p......\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n\n@@@@@@@@\n###@####\n........\n........\n.*.*.*..\n........\n.*.*.*..\n........\n.*.*.p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n...*....\n..***...\n...*....\n..***...\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n..***...\n..*.*...\n..***...\n........\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n..*.*...\n........\n..*.*...\n...@....\n..*.*...\n........\n..*.*p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n........\n........\n...*....\n..*.*...\n...*....\n..*.*...\n.*.@.*..\n...p....\n###*####\n########\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n#######\n##...##\n#.....#\n###.###\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#..p..#\n###.###\n#######\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n##################\n#####@#@#@########\n#####@#@#@########\n#####*#*#*########\n#@.........*....p#\n#..............*.#\n##############.*.#\n##############.*.#\n##############...#\n##################\n\n\n##############\n#@#@#@########\n#@#@#@########\n#*#*#*########\n#......*.p...#\n#..........*.#\n##########.*.#\n##########...#\n##############\n\n##########\n#@#@#@####\n#@#@#@####\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n######p..#\n##########\n\n#############\n###@#@#@#####\n###@#@#@#####\n###*#*#*#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#############\n###@#@#@#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#########\n###@#####\n#@....*p#\n#.....*.#\n#########\n\n...........\n...........\n....@@@....\n...........\n..@.***.@..\n..@.***.@..\n..@.***.@..\n...........\n.....p.....\n...........\n...........\n\n###########\n#.........#\n#.#..@..#.#\n#...@.@...#\n#..@***@..#\n#...***...#\n#..@***@..#\n#...@.@...#\n#.#..p..#.#\n#.........#\n###########\n\n#########\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(meeeh but in a pinch! but really, don't add it)\n#########\n##.....##\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(aaa kinda ok? has some stuff going on)\n#########\n#.......#\n#.*.@.*.#\n#..*@*..#\n#.@@*@@.#\n#..*@*..#\n#.*.@.*.#\n#...p...#\n#########\n\n#########\n#.......#\n#.@..**.#\n#.....*.#\n#..@....#\n#....@..#\n#.**....#\n#..*p.@.#\n#.....@.#\n#.@.*.@.#\n#.......#\n#########\n\n(doesn't have enough personality)\n#########\n#......p#\n#..@.@..#\n#.*.*.@.#\n#....*..#\n#.**..@.#\n#.**.*..#\n#.......#\n#########\n\n\n#########\n...#*#...\n.........\n##..*..##\n###...###\n####p####\n###...###\n##..@..##\n.........\n...#@#...\n#########\n\n\n\n#..#..#\n#..*.p#\n#.....#\n#..*..#\n###.###\n#..@..#\n#.....#\n#..@..#\n#..#..#\n\n...........\n.....*.....\n...........\n.....*.....\n....*.*....\n...*@@@*...\n....*.*....\n.....*.....\n...........\n.....p.....\n...........\n\n.......\n..*.*..\n.*@@@*.\n..*.*..\n...*...\n.......\n...p...\n.......\n)\n(\n....\n....\n....\n\n....\n....\n....\n....\n\n\n....\n....\n....\n....\n....\n\n\n.....\n.....\n.....\n.....\n.....\n\n......\n......\n......\n......\n......\n......\n\n##########\n#........#\n#.#....#.#\n#..*..*..#\n#...**..@#\n#...**.@@#\n#..*..@..#\n#.#.p*.#.#\n#.......##\n##########\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n##########\n\n###########\n#....#....#\n#.**.#.@@.#\n#.*..#..@.#\n#.........#\n####.p.####\n#.........#\n#.@..#..*.#\n#.@@.#.**.#\n#....#....#\n###########\n\n(solvable which is nice but also not good which is not nice)\n##########\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#........#\n#...p....#\n##########\n\n##########################\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#........................#\n#...........p............#\n##########################\n\n##########################\n#........................#\n#........................#\n#.........*..p...........#\n#........@@..............#\n#........***.............#\n#.......@@@@.............#\n#.......*****............#\n#......@@@@@@............#\n#......*******...........#\n#.....@@@@@@@@...........#\n#........................#\n#........................#\n#........................#\n#........................#\n#........................#\n##########################\n\n###########\n#.........#\n#.........#\n#..*@@@@..#\n#..*...*..#\n#..*.*.*..#\n#..*.@@*..#\n#..*......#\n#..@@@....#\n#.........#\n#....p....#\n#.........#\n###########\n\n####################\n#..................#\n#..................#\n#..................#\n#..................#\n#..***........@@@..#\n#..*.*........@.@..#\n#..***........@@@..#\n#..................#\n#..................#\n#.....p............#\n#..................#\n####################\n\n###########\n#.........#\n#.*.@@@@@.#\n#.*.@...@.#\n#.*...*.@.#\n#.*****.@.#\n#.........#\n#.........#\n#....p....#\n###*###@###\n###########\n\n...........\n##@@@@@@@##\n#####@#####\n#.........#\n#....*....#\n#...*.*...#\n#..*.@.*..#\n#...*.*...#\n#....*....#\n#.........#\n#....p....#\n#####*#####\n###########\n\n#######\n#@@@@@#\n##@@@##\n#.p...#\n#..@..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#.....#\n###*###\n#######\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n..###..\n.##*##.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n##@@@##\n##@@@#.\n.#####.\n\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n###.###\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n#######\n#*.*.*#\n#.*.*.#\n#*.*.*#\n#.@.@.#\n#@.@.@#\n#.@.@.#\n#..@..#\n#.....#\n#..p..#\n#.....#\n#######\n\n\n\n(ACTUAL CANDIDATE LEVELS)\n\n\n\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#.........#\n#.........#\n#....p....#\n#.........#\n###########\n\n\n(it is a level, but not amazing? but maybe ok? but I don't know? also repeats a mechanism from another level? but maybe better?)\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#....p....#\n#.........#\n#####.#####\n####*.***##\n#####****##\n###########\n\n##########\n#........#\n#.....p..#\n#........#\n#.....####\n#..#.....#\n#..#@....#\n#..#.....#\n##########\n\n\n\nmessage level 1 of 10\n\n####..\n#..#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 2 of 10\n\n######\n#....#\n#.#P.#\n#.*@.#\n#..@.#\n#....#\n######\n\nmessage level 3 of 10\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#....#P.#\n#########\n\nmessage level 4 of 10\n\n########\n#......#\n#..@@*P#\n#......#\n#####..#\n....####\n\nmessage level 5 of 10\n\n.#######\n.#.....#\n.#..*..#\n##.*P*.#\n#...*..#\n#......#\n########\n\nmessage level 6 of 10\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#......#\n#...########\n#####.......\n\n..######....\n###..**#####\n#.......@..#\n#.#..**#@@.#\n#......#.p.#\n############\n\nmessage level 7 of 10\n\n#######\n#.....#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..P..#\n#######\n\nmessage level 8 of 10\n\n..######\n..#...P#\n..#.**.#\n####.###\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\nmessage level 9 of 10\n\n#####.\n#...##\n#P**.#\n##...#\n.##..#\n..##.#\n...###\n\nmessage level 10 of 10\n\n......#####\n......#...#\n......#.#.#\n#######.#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\nmessage congratulations!\n\n\n#########\n#.......#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#...p...#\n#########\n\n......#####\n......#...#\n#######.#.#\n#.*.*.*.*.#\n#.#.#.#.###\n#....p..#..\n####@@@@#..\n...######..\n\n........#####\n........#...#\n#########.#.#\n#...*.*.*.*.#\n#.#.#.#.#.###\n#......p..#..\n######@@@@#..\n.....######..\n\n..........#####\n..........#...#\n..#########.#.#\n.##.*.@.@.@...#\n##*.#.#.#.#.###\n#*......p.....#\n###########.#.#\n..........#...#\n..........#####\n\n.......#####\n.......#...#\n########.#.#\n#*.....*.*.#\n##.#.#.#.###\n#@.@.@p....#\n########.#.#\n.......#...#\n.......#####\n)\n\n(\n..#########\n..#.......#\n..#.##..@.#\n..#.#@....#\n..#.....*.#\n..#.#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n \n.....######\n....##....#\n....#@..@.#\n....#.....#\n....#*#.*.#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n....#######\n....#.....#\n....#...@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n)\n\n",[1,1,1,1,3,3,0,0,3,0,3,3,3,0,0,1,1,1,2,2,2,2,3,2,1,1,3],"background:0,0,0,0,0,0,background wall:1,1,1,1,1,\n1,0,0,0,0,0,0,1,0,0,0,\n0,1,0,0,0,0,0,0,1,0,background wall wall3:2,\n2,2,1,0,0,0,0,0,0,1,0,\n2,2,2,1,0,0,1,1,1,1,1,\n1,1,0,1,1,1,1,1,background blue1:3,0,0,\n0,0,0,background player:4,0,1,1,0,0,0,0,\n1,0,1,0,0,0,1,1,0,0,0,\n0,0,0,1,0,0,0,1,1,0,background wall wall1:5,\n5,0,0,0,1,1,1,1,1,1,0,\n0,0,0,0,0,1,0,0,0,0,1,\n1,1,1,1,1,1,1,0,0,0,0,\n",1,"1645545097375.3352"] + ], + [ + "Double-Entry Bookkeeping Simulator#2", + ["title Double-Entry Bookkeeping Simulator\nauthor increpare\nhomepage www.increpare.com\n\n( verbose_logging )\nrun_rules_on_level_start\n\nbackground_color #404040\n\nagain_interval 0.1\n\n\n( Svelte Version für Simulieren \nhttps://www.puzzlescript.net/editor.html?hack=a52aae823542d184b57fc3301627a81a \n)\n\n========\nOBJECTS\n========\n\nBackground\n#404040\n\n\n\nWall\n#000000\n\n\nPlayer\ntransparent #ffffff\n01110\n01010\n11111\n00100\n01010\n\nblue_raw\n#1e88e5\n\n\nblue1 \n#003461 #1e88e5\n00100\n01100\n00100\n00100\n01110\n\nblue2 \n#003461 #1e88e5\n01100\n00010\n00100\n01000\n01110\n\nblue3 \n#003461 #1e88e5\n01100\n00010\n01100\n00010\n01100\n\nblue4 \n#003461 #1e88e5\n01000\n01000\n01010\n01110\n00010\n\nblue5 \n#003461 #1e88e5\n01110\n01000\n01100\n00010\n01100\n\nblue6 \n#003461 #1e88e5\n00100\n01000\n01100\n01010\n00100\n\nblue7 \n#003461 #1e88e5\n01110\n00010\n00010\n00100\n00100\n\nblue8 \n#003461 #1e88e5\n00100\n01010\n00100\n01010\n00100\n\nblue9 \n#003461 #1e88e5\n00110\n01010\n00110\n00010\n00010\n\nred_raw\n#d81b60\n\nred1 \n#56001f #d81b60\n00100\n01100\n00100\n00100\n01110\n\nred2 \n#56001f #d81b60\n01100\n00010\n00100\n01000\n01110\n\nred3 \n#56001f #d81b60\n01100\n00010\n01100\n00010\n01100\n\nred4 \n#56001f #d81b60\n01000\n01000\n01010\n01110\n00010\n\nred5 \n#56001f #d81b60\n01110\n01000\n01100\n00010\n01100\n\nred6 \n#56001f #d81b60\n00100\n01000\n01100\n01010\n00100\n\nred7 \n#56001f #d81b60\n01110\n00010\n00010\n00100\n00100\n\nred8 \n#56001f #d81b60\n00100\n01010\n00100\n01010\n00100\n\nred9 \n#56001f #d81b60\n00110\n01010\n00110\n00010\n00010\n\nonce\ntransparent\n\ncounted\nwhite\n.....\n.....\n.....\n...0.\n.....\n\ncounting\nyellow\n.....\n.0...\n.....\n.....\n.....\n\ndeleting\nyellow\n00000\n0...0\n0...0\n0...0\n00000\n\ndeleted\norange\n.....\n.....\n...0.\n.....\n.....\n\nwall1\n#000000 #1f1f1f\n00100\n01100\n00100\n00100\n01110\n\nwall2\n#000000 #1f1f1f\n01100\n00010\n00100\n01000\n01110\n\nwall3\n#000000 #1f1f1f\n01100\n00010\n01100\n00010\n01100\n\nwall4\n#000000 #1f1f1f\n01000\n01000\n01010\n01110\n00010\n\nwall5\n#000000 #1f1f1f\n01110\n01000\n01100\n00010\n01100\n\nwall6\n#000000 #1f1f1f\n00100\n01000\n01100\n01010\n00100\n\nwall7\n#000000 #1f1f1f\n01110\n00010\n00010\n00100\n00100\n\nwall8\n#000000 #1f1f1f\n00100\n01010\n00100\n01010\n00100\n\nwall9\n#000000 #1f1f1f\n00110\n01010\n00110\n00010\n00010\n\n=======\nLEGEND\n=======\n\nwalllabel = wall1 or wall2 or wall3 or wall4 or wall5 or wall6 or wall7 or wall8 or wall9\nred = red_raw or red1 or red2 or red3 or red4 or red5 or red6 or red7 or red8 or red9\n\nblue = blue_raw or blue1 or blue2 or blue3 or blue4 or blue5 or blue6 or blue7 or blue8 or blue9\n\nblue_other = blue\nred_other = red\n\ncoloured = red or blue\n\npushable = red or blue\n. = Background\n# = Wall\nP = Player\n* = red_raw\n@ = blue_raw\n\nobstacle = pushable or wall or player\n\n=======\nSOUNDS\n=======\n\nred move 76964107\nblue move 73247707\nsfx0 66382107 (destroy)\nsfx1 49518300 (destroy start)\n\nstartlevel 46354708\nendlevel 70029700\nstartgame 40047300\n\n================\nCOLLISIONLAYERS\n================\n\nonce, counted\ncounting\ndeleted\nBackground\nPlayer, Wall, pushable\ndeleting\nwalllabel\n\n======\nRULES\n======\n\n[ moving player ] [ deleted ] -> [ moving player ] [ ]\n\n[ blue no deleting ] -> [ blue_raw ]\n[ red no deleting ] -> [ red_raw ]\n\n[ > Player | pushable ] -> [ > Player | > pushable ]\n\n\nstartloop\n\nlate [ player no once no deleting ] [ blue no counted no deleting ] -> [ player once ] [ once blue ]\n\nlate [ once blue_raw no deleting ] -> [ counting blue1 counted ]\nlate [ once blue1 no deleting ] -> [ counting blue2 counted ]\nlate [ once blue2 no deleting ] -> [ counting blue3 counted ]\nlate [ once blue3 no deleting ] -> [ counting blue4 counted ]\nlate [ once blue4 no deleting ] -> [ counting blue5 counted ]\nlate [ once blue5 no deleting ] -> [ counting blue6 counted ]\nlate [ once blue6 no deleting ] -> [ counting blue7 counted ]\nlate [ once blue7 no deleting ] -> [ counting blue8 counted ]\nlate [ once blue8 no deleting ] -> [ counting blue9 counted ]\n\nlate [once]->[]\n\nlate [ counting blue no deleting | no counting blue_other no deleting ] -> [ counting blue | counting blue ]\nlate [counting]->[]\n\nendloop\n\n\nstartloop\nlate [ player no once ] [ red no counted no deleting ] -> [ player once ] [ once red ]\n\nlate [ once red_raw no deleting ] -> [ counting red1 counted ]\nlate [ once red1 no deleting ] -> [ counting red2 counted ]\nlate [ once red2 no deleting ] -> [ counting red3 counted ]\nlate [ once red3 no deleting ] -> [ counting red4 counted ]\nlate [ once red4 no deleting ] -> [ counting red5 counted ]\nlate [ once red5 no deleting ] -> [ counting red6 counted ]\nlate [ once red6 no deleting ] -> [ counting red7 counted ]\nlate [ once red7 no deleting ] -> [ counting red8 counted ]\nlate [ once red8 no deleting ] -> [ counting red9 counted ]\n\nlate [once]->[]\n\nlate [ counting red no deleting | no counting red_other no deleting ] -> [ counting red | counting red ]\nlate [counting]->[]\n\nendloop\n\n\nrandom late [ deleting red1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting red2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting red3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting red4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting red5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting red6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting red7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting red8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting red9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting blue1 | deleted ] -> [ wall wall1 deleted | deleted ] again sfx0\n+ late [ deleting blue2 | deleted ] -> [ wall wall2 deleted | deleted ] again sfx0\n+ late [ deleting blue3 | deleted ] -> [ wall wall3 deleted | deleted ] again sfx0\n+ late [ deleting blue4 | deleted ] -> [ wall wall4 deleted | deleted ] again sfx0\n+ late [ deleting blue5 | deleted ] -> [ wall wall5 deleted | deleted ] again sfx0\n+ late [ deleting blue6 | deleted ] -> [ wall wall6 deleted | deleted ] again sfx0\n+ late [ deleting blue7 | deleted ] -> [ wall wall7 deleted | deleted ] again sfx0\n+ late [ deleting blue8 | deleted ] -> [ wall wall8 deleted | deleted ] again sfx0\n+ late [ deleting blue9 | deleted ] -> [ wall wall9 deleted | deleted ] again sfx0\n\nrandom late [ deleting red1 | deleting blue1 ] -> [ wall wall1 deleted | wall wall1 deleted ] again sfx0\n+ late [ deleting red2 | deleting blue2 ] -> [ wall wall2 deleted | wall wall2 deleted ] again sfx0\n+ late [ deleting red3 | deleting blue3 ] -> [ wall wall3 deleted | wall wall3 deleted ] again sfx0\n+ late [ deleting red4 | deleting blue4 ] -> [ wall wall4 deleted | wall wall4 deleted ] again sfx0\n+ late [ deleting red5 | deleting blue5 ] -> [ wall wall5 deleted | wall wall5 deleted ] again sfx0\n+ late [ deleting red6 | deleting blue6 ] -> [ wall wall6 deleted | wall wall6 deleted ] again sfx0\n+ late [ deleting red7 | deleting blue7 ] -> [ wall wall7 deleted | wall wall7 deleted ] again sfx0\n+ late [ deleting red8 | deleting blue8 ] -> [ wall wall8 deleted | wall wall8 deleted ] again sfx0\n+ late [ deleting red9 | deleting blue9 ] -> [ wall wall9 deleted | wall wall9 deleted ] again sfx0\n\nlate [counted]->[]\n\n\nlate [ red1 | blue1 ] -> [ deleting red1 | deleting blue1 ] again sfx1 \nlate [ red2 | blue2 ] -> [ deleting red2 | deleting blue2 ] again sfx1 \nlate [ red3 | blue3 ] -> [ deleting red3 | deleting blue3 ] again sfx1 \nlate [ red4 | blue4 ] -> [ deleting red4 | deleting blue4 ] again sfx1 \nlate [ red5 | blue5 ] -> [ deleting red5 | deleting blue5 ] again sfx1 \nlate [ red6 | blue6 ] -> [ deleting red6 | deleting blue6 ] again sfx1 \nlate [ red7 | blue7 ] -> [ deleting red7 | deleting blue7 ] again sfx1 \nlate [ red8 | blue8 ] -> [ deleting red8 | deleting blue8 ] again sfx1 \nlate [ red9 | blue9 ] -> [ deleting red9 | deleting blue9 ] again sfx1 \n\nlate [ deleting red1 | no deleting red1 ] -> [ deleting red1 | deleting red1 ]\nlate [ deleting red2 | no deleting red2 ] -> [ deleting red2 | deleting red2 ]\nlate [ deleting red3 | no deleting red3 ] -> [ deleting red3 | deleting red3 ]\nlate [ deleting red4 | no deleting red4 ] -> [ deleting red4 | deleting red4 ]\nlate [ deleting red5 | no deleting red5 ] -> [ deleting red5 | deleting red5 ]\nlate [ deleting red6 | no deleting red6 ] -> [ deleting red6 | deleting red6 ]\nlate [ deleting red7 | no deleting red7 ] -> [ deleting red7 | deleting red7 ]\nlate [ deleting red8 | no deleting red8 ] -> [ deleting red8 | deleting red8 ]\nlate [ deleting red9 | no deleting red9 ] -> [ deleting red9 | deleting red9 ]\n\n\nlate [ deleting blue1 | no deleting blue1 ] -> [ deleting blue1 | deleting blue1 ]\nlate [ deleting blue2 | no deleting blue2 ] -> [ deleting blue2 | deleting blue2 ]\nlate [ deleting blue3 | no deleting blue3 ] -> [ deleting blue3 | deleting blue3 ]\nlate [ deleting blue4 | no deleting blue4 ] -> [ deleting blue4 | deleting blue4 ]\nlate [ deleting blue5 | no deleting blue5 ] -> [ deleting blue5 | deleting blue5 ]\nlate [ deleting blue6 | no deleting blue6 ] -> [ deleting blue6 | deleting blue6 ]\nlate [ deleting blue7 | no deleting blue7 ] -> [ deleting blue7 | deleting blue7 ]\nlate [ deleting blue8 | no deleting blue8 ] -> [ deleting blue8 | deleting blue8 ]\nlate [ deleting blue9 | no deleting blue9 ] -> [ deleting blue9 | deleting blue9 ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\nno coloured\n\n=======\nLEVELS\n=======\n\n\nmessage Level 1 of 9\n\n(improved version?)\n.....######\n.....#....#\n....##..@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n\nmessage Level 2 of 9\n\n#######...\n#@#@#@#...\n#@#@#@#...\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n.....#p..#\n.....#####\n\n\n\n\n\nmessage Level 3 of 9\n(ok? not too hard)\n#######.\n#.....#.\n#..*.@#.\n####.###\n.#.....#\n.#.*.@.#\n.#..p..#\n####.###\n#..*.@#.\n#.....#.\n#######.\n\n\n\nmessage Level 4 of 9\n#######..\n#.....#..\n#...@.#..\n#...@.###\n#...@.#@#\n#.....#.#\n#.p..***#\n#.....#.#\n#...@.#.#\n#...@...#\n#...@.###\n#.....#..\n#######..\n\n\nmessage Level 5 of 9\n\n(Actually tricky? or a bit overwhelming maybe?)\n(requires silly batching. i like this)\n#########\n#...#...#\n#..***..#\n#.......#\n####.####\n#.......#\n#..@@@p.#\n#...#...#\n#########\n\nmessage Level 6 of 9\n(possibly ok? IDK? WE?)\n#########\n#.......#\n#.*..@.*#\n#..**..@#\n#..**.@@#\n#.*..*..#\n#..p....#\n#########\n\nmessage Level 7 of 9\n(p ok? solution involves knowing something, but maybe you just stumble through it without knowing the thing)\n\n#####..\n#@@@#..\n#@@@##.\n#@#.@##\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\nmessage Level 8 of 9\n(p. ok level)\n###########\n#.........#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.........#\n#....@.@..#\n#..*..@...#\n#....@.@..#\n#.p.......#\n#.........#\n###########\n\nmessage Level 9 of 9\n(ok final level maybe?)\n(fixed version?)\n...####....\n####..#....\n#@..*.#....\n###...#....\n..#.*#####.\n..#.*#.p.#.\n..#****@@#.\n..#.@@...#.\n..#.@@...#.\n..#.#@...##\n..#.......#\n..####....#\n.....######\n\nmessage Congratulations. You have mastered all the numbers, from 1 up to 9!\n\n(DISCARD PILE::::)\n\n(BAD IDEAS FOR FIRST LEVEL END )\n(thje better version. maybe ok early level?)\n( ####### )\n( #..#..# )\n( #..*.p# )\n( #..*..# )\n( #.....# )\n( ###.### )\n( #.....# )\n( #..@..# )\n( #..@..# )\n( #..#..# )\n( ####### )\n\n\n( ########## )\n( #@...##### )\n( ##...##### )\n( ##...##### )\n( ##@..##### )\n( ###...#### )\n( ###...#### )\n( ###@..#### )\n( ####.....# )\n( ####.***.# )\n( ####..p..# )\n( ########## )\n\n\n( audio test level)\n( ############# )\n( #..@........# )\n( #..@....@@..# )\n( #..@....@@@.# )\n( #..@.@..@@@.# )\n( #.*....*....# )\n( #..*.*..***.# )\n( #..*....***.# )\n( #..*....*...# )\n( #....p......# )\n( #...........# )\n( ############# )\n\n(level 2/3?)\n( ########## )\n( #........# )\n( #.**.@@@.# )\n( #........# )\n( #...p....# )\n( #........# )\n( ########## )\n\n(ok early level? meh other level does this but better IMO)\n( ###### )\n( #....# )\n( #.@.*# )\n( #.@.*# )\n( ###.## )\n( #....# )\n( #..p.# )\n( #....# )\n( ###.## )\n( #.@.*# )\n( #.@.*# )\n( #....# )\n( ###### )\n\n(ok level I think?)\n( ############# )\n( ####@.*...### )\n( ######*##.### )\n( #.....*.....# )\n( #.@@@...@@@.# )\n( #...........# )\n( #.....p.....# )\n( #...........# )\n( ############# )\n\n(\n\n(needs a few more steps of indirection on the right)\n#########\n#####*###\n#...#*###\n#.**@*###\n#.......#\n#@@..@@.#\n####p...#\n#########\n\n##############\n#....##......#\n#....##*.....#\n#.....#*.....#\n#...**@*.....#\n#............#\n###@@....@@..#\n######.p.....#\n######.......#\n##############\n\n###########\n#**@@***@@#\n#**..***..#\n#.........#\n#.........#\n#...@.@.@.#\n#.p.......#\n#...@.@.@.#\n#.........#\n###########\n\n##############\n#...#........#\n*.@.#........#\n#.#####**....#\n#.##**@**....#\n#............#\n####...@.@.@.#\n...#.p@.@.@..#\n...#.........#\n...###########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##...p...#\n##########\n\n\n##########\n###...####\n#@..*.####\n##....####\n##.#*#####\n##.#*...##\n##****..##\n##.@@...##\n##.@@.@.##\n##.#@.@.##\n##.......#\n##....p..#\n##########\n\n\n(damnit a shortcut/trivialisation)\n##########\n####..####\n#@..*.####\n##....####\n##.#*#####\n##.#*.p.##\n##****@@##\n##.@@...##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n\n##########\n#@..######\n##..######\n##.*######\n##..#.p.##\n##****@@##\n##.@@...##\n##.#@...##\n*........#\n##.......#\n##########\n\n(pedagogical version of other level)\n#############\n#@@*#@@#@####\n#@@*#@*#@####\n###*##*#*####\n###.......*.#\n###.......*.#\n#########.*.#\n#########p..#\n#############\n\n##########\n#........#\n#...@....#\n#........#\n#...**.@.#\n#.@.**...#\n#........#\n#.p..@...#\n#........#\n##########\n\n\n.#########.\n.#@.######.\n.#..######.\n.#****...#.\n.#*.**.p.#.\n###.**...#.\n#...@@*@@#.\n#...@@...#.\n#...@@...#.\n#@@*@@*@@#.\n#...*....#.\n#...@....#.\n#...@....#.\n##########.\n\n##########\n##@.##...#\n##..##.p.#\n###***...#\n##..***@@#\n##..@@...#\n##..@@...#\n##...@...#\n##.......#\n##.......#\n##########\n\n#########\n#@.##...#\n#..##.p.#\n##****@@#\n#..@@...#\n#...@...#\n#.......#\n#.......#\n#########\n\n##########\n####*#####\n#@.#*.p.##\n##****@@##\n##.@@...*#\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n\n\n##########\n#..#######\n#..#######\n#..##.p.##\n##****@@##\n##.@@...##\n##.#@...##\n##.......#\n##.......#\n##########\n\n############\n#....#######\n#....#*#####\n#....#*.p.##\n#*##****@@##\n#.##.@@...*#\n#@##.@@...##\n####.#@...##\n####.......#\n####.......#\n############\n\n.#########...\n.#..######...\n.#..######...\n.##......#...\n.#.....p.#...\n##.......#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n#........#...\n##########...\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.......#\n#......*#\n#.....@*#\n######.##\n#....#.*#\n#.p...@.#\n#.......#\n#########\n\n#########\n#.......#\n#....@@*#\n#.....@*#\n#.p.....#\n#......*#\n#.....@*#\n#.......#\n#....@.*#\n#.......#\n#########\n\n(is this funnier than above? I don't think so but I@m not sure)\n###########\n#.........#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.........#\n#.....@...#\n#..*.@@@..#\n#.....@...#\n#.p.......#\n#.........#\n###########\n\n(technically harder than above but also more work)\n################\n#..............#\n#..............#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#..*.@@.@@.@@..#\n#..............#\n#.p............#\n#..............#\n################\n\n\n#################\n#...............#\n#...............#\n#..@@@.@@@.@@@..#\n#...*...*...*...#\n#..@@@.@@@.@@@..#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#...............#\n#################\n\n#################\n#...............#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n...............\n...............\n..@@@.@@@.@@@..\n...*...*...*...\n..@@@.@@@.@@@..\n...............\n...............\n.......p.......\n...............\n...............\n\n..........@.@...\n..........@.@...\n..........@*@...\n.......@@@*.*@@@\n..........@.@...\n..........@.@...\n..........@.@...\n................\n................\n\n\n#################\n#...............#\n#...............#\n#...............#\n#...............#\n#...............#\n#..@.@.@.@.@.@..#\n#...@...@...@...#\n#..@.@.@.@.@.@..#\n#...............#\n#...*...*...*...#\n#...............#\n#...............#\n#.......p.......#\n#...............#\n#################\n\n########\n#......#\n#......#\n#..@.*.#\n#......#\n###..*##\n####.###\n#p.@...#\n#......#\n####.###\n#......#\n#......#\n########\n\n\n...################\n..................#\n....@.............#\n.....@............#\n.@.**.@...........#\n..@.**.@..........#\n...@.**...........#\n....@.**..........#\n......p*.@........#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#...............#\n..#################\n\n.........\n.........\n.#.#.#.#.\n.@.*.@.*.\n.#.#.#.#.\n.@.*.@.*.\n*#@#*#@#*\n.........\n..p......\n\n\n..#.#.#.#..\n...........\n..#.#.#.#..\n...........\n..#.#.#.#..\n...p.......\n\n.#.#.#.#.\n.@.*.*.@.\n.#.#.#.#.\n.@.*.*.@.\n*#@#.#@#*\n..p......\n\n(meh)\n#########\n#...@####\n#..*.@###\n#@..*.@##\n##@..*.@#\n###@..*.#\n####@p..#\n#########\n\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n(meeeeh. I think not great? too long but also if short too randomo)\n#############\n#...@########\n#..*.@#######\n#@..*.@######\n##@..*.@#####\n###@..*.#####\n####@..*.####\n######..*.###\n#######..*.##\n########..*.#\n#########...#\n##########.p#\n#############\n\n###########\n###########\n##...@#####\n##..*.@####\n##@..*.@###\n###@..*.###\n####@p....#\n#####.***.#\n#####.....#\n###########\n\n#########\n#...@####\n#..*.@###\n#@..*.###\n##@..*.##\n####..*.#\n#####...#\n######.p#\n#########\n\n...#.......\n....#......\n....@#.....\n.....@#....\n#@....@#...\n.#@..*.@#..\n..#@..*....\n...#@..*...\n....#.*.*..\n.......*...\n......p.*..\n.........*.\n...........\n\n( (kinda different from the above) )\n( (trivial) )\n( ####### )\n( #....## )\n( #....## )\n( #.*.@## )\n( ###.### )\n( #.....# )\n( #.*.@.# )\n( #..p..# )\n( ###.### )\n( #.*.@## )\n( #....## )\n( #....## )\n( ####### )\n\n\n#######\n#....##\n#....##\n#....##\n#....##\n#.*.@##\n###.###\n#.....#\n#.*.@.#\n#p....#\n###.###\n#.*.@##\n#....##\n#....##\n#....##\n#....##\n#######\n\n#######\n#....##\n#....##\n#....##\n#.@.*##\n#.@.*##\n###.###\n#.....#\n#.@.*.#\n#p....#\n###.###\n#.@.*##\n#.@.*##\n#....##\n#....##\n#....##\n#######\n\n###########\n###@.*..###\n#####*#.###\n.....*.....\n.@@@...@@@.\n.....p.....\n...........\n...........\n\n#############\n####.....####\n######.#.####\n#...........#\n#...........#\n#.....p.....#\n#...........#\n#############\n\n#######\n#.....#\n#.***.#\n#.....#\n###.###\n#.....#\n#.@@@p#\n#.....#\n#######\n\n....####\n....#..#\n....#..#\n#####..#\n#...#..#\n#..@..*#\n#...#p.#\n#####..#\n#..@..*#\n#......#\n######.#\n....#@.#\n....#..#\n....#.*#\n....#..#\n....####\n\n.#######.\n.#.....#.\n.#..*..#.\n.#.*.*.#.\n.#.*.*.#.\n.#.....#.\n.#.....#.\n###.#.###\n#@@.#.@@#\n#@@.#.@@#\n#@..#..@#\n#@.*#*.@#\n#@p.#..@#\n#########\n\n@....*\n.@..*.\n......\n.@..*.\n..p...\n\n..........\n.@@....**.\n.@@....**.\n...@..*...\n..........\n...@..*...\n.....p....\n..........\n\n\n(ok partition problem)\n(nah broken)\n.........\n.........\n.@.....@.\n.@.#*#.@.\n.@..*..@.\n.........\n....p....\n.........\n\n...............\n....@..#..@....\n.#..@.#*#.@..#.\n#*..@..*..@..*#\n.#..@.....@..#.\n.......p.......\n...............\n\n....####.....\n...#@.*......\n....##*#.....\n......*......\n.............\n..@@@.p.@@@..\n.............\n.............\n\n#######\n#.....#\n#.#.#.#\n#.@.*.#\n###.###\n.......\np.@.*..\n.......\n###.###\n#.@.*.#\n#.#.#.#\n#.....#\n#######\n\n######\n#...##\n#...##\n#...##\n#.@.*#\n###.##\n......\np.@.*.\n......\n###.##\n#.@.*#\n#...##\n#...##\n#...##\n######\n\n(trivial)\n(\n.........\n.........\n..**.@...\n.........\n....p....\n.........\n)\n\n\n\n............\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..@.@..@.@..\n...@....@...\n..@.@..@.@..\n............\n..*.*..*.*..\n.....p......\n............\n\n...........\n.....@.....\n.....@.....\n.....@.....\n.....@.....\n.....*.....\n.@@@@*@@@@.\n.....*.....\n.@@@@.@@@@.\n.....*.....\n...........\n.....p.....\n...........\n\n...........\n...........\n..###.###..\n..#*....#..\n..#.*...#..\n..###.###..\n..p.@.@....\n...........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n..........\n..........\n..........\n\n..........\n..........\n..####....\n..#*.@..p.\n..#.*@....\n..####....\n..........\n..........\n\n..........\n..........\n..####....\n..#*..@.p.\n..#.*.@...\n..####....\n..........\n..........\n\n..........\n..........\n..........\n...*..@p..\n....*.@...\n####..####\n..........\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n..........\n\n.########.\n.#......#.\n.#.*..@.#.\n.#..*.@.#.\n####..####\n...p......\n..........\n..###.##..\n..#.*.@#..\n..#...##..\n..######..\n\n@@@@@@@@\n###@####\n........\n........\n.*.*.*..\n........\n.*.*.*..\n........\n.*.*.p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n...*....\n..***...\n...*....\n..***...\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###@####\n........\n........\n..***...\n..*.*...\n..***...\n........\n.....p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n..*.*...\n........\n..*.*...\n...@....\n..*.*...\n........\n..*.*p..\n........\n###*####\n########\n\n@@@@@@@@\n###.####\n........\n........\n...*....\n..*.*...\n...*....\n..*.*...\n.*.@.*..\n...p....\n###*####\n########\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n#######\n##...##\n#.....#\n###.###\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#.....#\n#..p..#\n###.###\n#######\n\n#######\n##@@@##\n#@@@@@#\n###.###\n#.....#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n#######\n\n##################\n#####@#@#@########\n#####@#@#@########\n#####*#*#*########\n#@.........*....p#\n#..............*.#\n##############.*.#\n##############.*.#\n##############...#\n##################\n\n\n##############\n#@#@#@########\n#@#@#@########\n#*#*#*########\n#......*.p...#\n#..........*.#\n##########.*.#\n##########...#\n##############\n\n##########\n#@#@#@####\n#@#@#@####\n#*#*#*####\n#......*.#\n#......*.#\n######.*.#\n######p..#\n##########\n\n#############\n###@#@#@#####\n###@#@#@#####\n###*#*#*#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#############\n###@#@#@#####\n#@........*p#\n#.........*.#\n#########.*.#\n#########.*.#\n#########...#\n#############\n\n\n#########\n###@#####\n#@....*p#\n#.....*.#\n#########\n\n...........\n...........\n....@@@....\n...........\n..@.***.@..\n..@.***.@..\n..@.***.@..\n...........\n.....p.....\n...........\n...........\n\n###########\n#.........#\n#.#..@..#.#\n#...@.@...#\n#..@***@..#\n#...***...#\n#..@***@..#\n#...@.@...#\n#.#..p..#.#\n#.........#\n###########\n\n#########\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(meeeh but in a pinch! but really, don't add it)\n#########\n##.....##\n##..@..##\n##.@.@.##\n##@***@##\n#..***..#\n#.@***@.#\n#..@.@..#\n#...p...#\n#########\n\n(aaa kinda ok? has some stuff going on)\n#########\n#.......#\n#.*.@.*.#\n#..*@*..#\n#.@@*@@.#\n#..*@*..#\n#.*.@.*.#\n#...p...#\n#########\n\n#########\n#.......#\n#.@..**.#\n#.....*.#\n#..@....#\n#....@..#\n#.**....#\n#..*p.@.#\n#.....@.#\n#.@.*.@.#\n#.......#\n#########\n\n(doesn't have enough personality)\n#########\n#......p#\n#..@.@..#\n#.*.*.@.#\n#....*..#\n#.**..@.#\n#.**.*..#\n#.......#\n#########\n\n\n#########\n...#*#...\n.........\n##..*..##\n###...###\n####p####\n###...###\n##..@..##\n.........\n...#@#...\n#########\n\n\n\n#..#..#\n#..*.p#\n#.....#\n#..*..#\n###.###\n#..@..#\n#.....#\n#..@..#\n#..#..#\n\n...........\n.....*.....\n...........\n.....*.....\n....*.*....\n...*@@@*...\n....*.*....\n.....*.....\n...........\n.....p.....\n...........\n\n.......\n..*.*..\n.*@@@*.\n..*.*..\n...*...\n.......\n...p...\n.......\n)\n(\n....\n....\n....\n\n....\n....\n....\n....\n\n\n....\n....\n....\n....\n....\n\n\n.....\n.....\n.....\n.....\n.....\n\n......\n......\n......\n......\n......\n......\n\n##########\n#........#\n#.#....#.#\n#..*..*..#\n#...**..@#\n#...**.@@#\n#..*..@..#\n#.#.p*.#.#\n#.......##\n##########\n\n\n##########\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n#........#\n##########\n\n###########\n#....#....#\n#.**.#.@@.#\n#.*..#..@.#\n#.........#\n####.p.####\n#.........#\n#.@..#..*.#\n#.@@.#.**.#\n#....#....#\n###########\n\n(solvable which is nice but also not good which is not nice)\n##########\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#*.*.*.*.#\n#.@.@.@.@#\n#........#\n#...p....#\n##########\n\n##########################\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#*.*.*.*.*.*.*.*.*.*.*.*.#\n#.@.@.@.@.@.@.@.@.@.@.@.@#\n#........................#\n#...........p............#\n##########################\n\n##########################\n#........................#\n#........................#\n#.........*..p...........#\n#........@@..............#\n#........***.............#\n#.......@@@@.............#\n#.......*****............#\n#......@@@@@@............#\n#......*******...........#\n#.....@@@@@@@@...........#\n#........................#\n#........................#\n#........................#\n#........................#\n#........................#\n##########################\n\n###########\n#.........#\n#.........#\n#..*@@@@..#\n#..*...*..#\n#..*.*.*..#\n#..*.@@*..#\n#..*......#\n#..@@@....#\n#.........#\n#....p....#\n#.........#\n###########\n\n####################\n#..................#\n#..................#\n#..................#\n#..................#\n#..***........@@@..#\n#..*.*........@.@..#\n#..***........@@@..#\n#..................#\n#..................#\n#.....p............#\n#..................#\n####################\n\n###########\n#.........#\n#.*.@@@@@.#\n#.*.@...@.#\n#.*...*.@.#\n#.*****.@.#\n#.........#\n#.........#\n#....p....#\n###*###@###\n###########\n\n...........\n##@@@@@@@##\n#####@#####\n#.........#\n#....*....#\n#...*.*...#\n#..*.@.*..#\n#...*.*...#\n#....*....#\n#.........#\n#....p....#\n#####*#####\n###########\n\n#######\n#@@@@@#\n##@@@##\n#.p...#\n#..@..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#.....#\n###*###\n#######\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n..###..\n.##*##.\n###.###\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n##@@@##\n##@@@#.\n.#####.\n\n\n.#####.\n.#@@@#.\n.#@@@#.\n###.###\n###.###\n###.###\n#.*.*.#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..@..#\n#..p..#\n###*###\n..###..\n\n#######\n#*.*.*#\n#.*.*.#\n#*.*.*#\n#.@.@.#\n#@.@.@#\n#.@.@.#\n#..@..#\n#.....#\n#..p..#\n#.....#\n#######\n\n\n\n(ACTUAL CANDIDATE LEVELS)\n\n\n\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#.........#\n#.........#\n#....p....#\n#.........#\n###########\n\n\n(it is a level, but not amazing? but maybe ok? but I don't know? also repeats a mechanism from another level? but maybe better?)\n###########\n#..@...@..#\n#..@.*.@..#\n#..@...@..#\n#...@@@...#\n#.........#\n#....p....#\n#.........#\n#####.#####\n####*.***##\n#####****##\n###########\n\n##########\n#........#\n#.....p..#\n#........#\n#.....####\n#..#.....#\n#..#@....#\n#..#.....#\n##########\n\n\n\nmessage level 1 of 10\n\n####..\n#..#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 2 of 10\n\n######\n#....#\n#.#P.#\n#.*@.#\n#..@.#\n#....#\n######\n\nmessage level 3 of 10\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#....#P.#\n#########\n\nmessage level 4 of 10\n\n########\n#......#\n#..@@*P#\n#......#\n#####..#\n....####\n\nmessage level 5 of 10\n\n.#######\n.#.....#\n.#..*..#\n##.*P*.#\n#...*..#\n#......#\n########\n\nmessage level 6 of 10\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#......#\n#...########\n#####.......\n\n..######....\n###..**#####\n#.......@..#\n#.#..**#@@.#\n#......#.p.#\n############\n\nmessage level 7 of 10\n\n#######\n#.....#\n#..*..#\n#.*.*.#\n#..*..#\n#.*.*.#\n#..P..#\n#######\n\nmessage level 8 of 10\n\n..######\n..#...P#\n..#.**.#\n####.###\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\nmessage level 9 of 10\n\n#####.\n#...##\n#P**.#\n##...#\n.##..#\n..##.#\n...###\n\nmessage level 10 of 10\n\n......#####\n......#...#\n......#.#.#\n#######.#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\nmessage congratulations!\n\n\n#########\n#.......#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#.*.*.*.#\n#.#.#.#.#\n#.@.@.@.#\n#.#.#.#.#\n#...p...#\n#########\n\n......#####\n......#...#\n#######.#.#\n#.*.*.*.*.#\n#.#.#.#.###\n#....p..#..\n####@@@@#..\n...######..\n\n........#####\n........#...#\n#########.#.#\n#...*.*.*.*.#\n#.#.#.#.#.###\n#......p..#..\n######@@@@#..\n.....######..\n\n..........#####\n..........#...#\n..#########.#.#\n.##.*.@.@.@...#\n##*.#.#.#.#.###\n#*......p.....#\n###########.#.#\n..........#...#\n..........#####\n\n.......#####\n.......#...#\n########.#.#\n#*.....*.*.#\n##.#.#.#.###\n#@.@.@p....#\n########.#.#\n.......#...#\n.......#####\n)\n\n(\n..#########\n..#.......#\n..#.##..@.#\n..#.#@....#\n..#.....*.#\n..#.#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n \n.....######\n....##....#\n....#@..@.#\n....#.....#\n....#*#.*.#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n\n....#######\n....#.....#\n....#...@.#\n....#@....#\n....#...*.#\n....#*#...#\n#####.....#\n#...#.#####\n#.@@#...#..\n#....@.p#..\n#.**#...#..\n#########..\n)\n\n",[2,0,3,2,2,1],"background:0,background wall:1,1,1,0,0,0,0,0,0,0,\n0,0,0,1,background blue1:2,1,0,0,0,0,0,\n0,0,0,0,0,1,0,1,1,1,1,\n1,1,1,1,1,0,1,1,0,0,0,\n0,background deleted wall wall6:3,0,0,0,0,1,0,1,0,background red1:4,\n0,3,3,3,3,3,1,0,1,0,1,\n0,0,0,1,1,3,3,3,3,0,1,\n1,1,1,1,1,1,0,3,3,0,0,\n0,0,1,0,0,0,0,1,0,0,background player:5,\n0,0,0,0,1,0,0,0,0,1,0,\n0,0,2,0,0,0,1,0,0,0,0,\n1,1,1,1,1,1,0,0,1,0,0,\n0,0,0,0,0,0,0,1,1,1,1,\n",17,"1645545159763.6345"] + ], + [ + "short adventure in sticky wall land", + ["title short adventure in sticky wall land\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color #1d4765\ntext_color #99e550\nrun_rules_on_level_start\n\n\n========\nOBJECTS\n========\n\nBackground\n#396c90 #457da4\n00000\n00000\n00100\n00000\n00000\n\n\nTarget\n#fbf236 transparent\n00100\n01110\n11111\n01110\n00100\n\n\nWall\n#99e550 #99e550 #99e550\n01110\n12221\n12221\n12221\n01110\n\nwall_grenze_N\n#6abe30\n00000\n.....\n.....\n.....\n.....\n\nwall_grenze_S\n#6abe30\n.....\n.....\n.....\n.....\n00000\n\nwall_grenze_O\n#6abe30\n....0\n....0\n....0\n....0\n....0\n\nwall_grenze_W\n#6abe30\n0....\n0....\n0....\n0....\n0....\n\nwall_grenze_NO\n#396c90\n....0\n.....\n.....\n.....\n.....\n\nwall_grenze_SO\n#396c90\n.....\n.....\n.....\n.....\n....0\n\nwall_grenze_SW\n#396c90\n.....\n.....\n.....\n.....\n0....\n\nwall_grenze_NW\n#396c90\n0....\n.....\n.....\n.....\n.....\n\nPlayer\ntransparent #b13030 #a96c30 #4e0b0b\n01110\n11110\n02220\n33333\n03030\n\n\nCrate\n#8f563b #743a1f #b4643d #b76640\n00000\n01220\n03120\n03310\n00000\n\n\n\n=======\nLEGEND\n=======\n\nwall_dekoration_ortho = wall_grenze_N or wall_grenze_S or wall_grenze_O or wall_grenze_W\n\nwall_dekoration_eck = wall_grenze_NW or wall_grenze_SW or wall_grenze_SO or wall_grenze_NO\n\nwall_dekoration = wall_dekoration_eck or wall_dekoration_ortho\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\nobstacle = crate or wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 76571107\nwall move 95423307\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate\nwall_grenze_N \nwall_grenze_S\nwall_grenze_O\nwall_grenze_W\nwall_grenze_NO\nwall_grenze_SO \nwall_grenze_SW\nwall_grenze_NW\nTarget\n\n======\nRULES\n======\n(\n[ > player | crate | obstacle ] -> cancel\n[ > player | wall ] -> cancel\n\n\n[ > Player | Crate | ] -> [ > Player | | Crate ]\n[ wall | > player | ] -> [ wall | wall | player ]\n\n)\n\n(it's very possible someone's come up with this set of rules already - but if they have I haven't seen it yet)\n\n[ > player | crate ] -> [ > player | > crate ]\n[ wall | > player ] -> [ > wall | > player ]\n\nlate [ wall_dekoration ] -> []\nlate up [ wall | no wall ] -> [ wall wall_grenze_N | ]\nlate down [ wall | no wall ] -> [ wall wall_grenze_S | ]\nlate right [ wall | no wall ] -> [ wall wall_grenze_O | ]\nlate left [ wall | no wall ] -> [ wall wall_grenze_W | ]\n\nlate [ wall_grenze_N wall_grenze_O ] -> [ wall_grenze_N wall_grenze_O wall_grenze_NO ]\nlate [ wall_grenze_S wall_grenze_O ] -> [ wall_grenze_S wall_grenze_O wall_grenze_SO ]\nlate [ wall_grenze_N wall_grenze_W ] -> [ wall_grenze_N wall_grenze_W wall_grenze_NW ]\nlate [ wall_grenze_S wall_grenze_W ] -> [ wall_grenze_S wall_grenze_W wall_grenze_SW ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 3\n\n(kinda like)\n.........\n.#######.\n.#..*..#.\n.#..p..#.\n.#..o..#.\n.#######.\n.........\n\nmessage Level 2 of 3\n\n\n(ok)\n........\n.####...\n.#.o#...\n.#..###.\n.#@p..#.\n.#..*.#.\n.#..###.\n.####...\n........\n\nmessage Level 3 of 3\n\n(mildly entertaining. possibly slightly harder?)\n.......\n.#####.\n.#.*.#.\n.#...#.\n.#.p.#.\n.#...#.\n.#.o.#.\n.#####.\n.......\n\nmessage Congratulations. Thank you for playing!\n\n(\n#..##\np...o\n.#..#\n..*.#\no*##.\n\n##.##\n.o.*#\n....#\n#*.o.\n#.p..\n\n...##\n.o.*#\n.....\n#*.o.\n##..p\n\n(haven't solved, don't like)\n#..##\n.o.*#\n.p...\n#*.o.\n##..#\n\n(better. still don't like though)\n#..#.\n.o.*#\n..p..\n#*.o.\n.#..#\n\n#....\n.o.*#\n#.p.#\n#*.o.\n....#\n\n(easy-ish, but ok? NO BAD)\n#.#..\n.o.*#\n..p..\n#*.o.\n..#.#\n\n\n....\n....\n....\n....\n\n\n.....\n.....\n.....\n.....\n.....\n\n.....\n.....\n.....\n.....\n.....\n\n.......\n.......\n.......\n.......\n.......\n.......\n.......\n\n.......\n.#####.\n.#.*.#.\n.#.p.#.\n.#.o.#.\n.#####.\n.......\n\n.........\n.#######.\n.#..*..#.\n.#..p..#.\n.#..o..#.\n.#######.\n.........\n\n.p..\no...\n.*@.\n#..#\n\n(possible to get to a dead end wtihout knowing really - so bad?)\n.....\n.o#..\n.*#*.\n.o#p.\n.....\n\n(ok, not so dead endy, but is it good? hardish)\n.....\n.opo.\n.*.*.\n.###.\n.....\n\n(easy but ok)\n.....\n.o#..\n.@#..\n.#*p.\n.....\n\n........\n.####...\n.#.o#...\n.#..###.\n.#@p..#.\n.#..*.#.\n.#..###.\n.####...\n........\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*O.#\n##.*P*.#\n#..O*O.#\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",[2,3,0,3,0,0,2,1,0,2,1,2,2,3,2,2,1,1,1,1,1,1,0,0,0,0,0,0,3,3,3,3,3,3,3,3,2,2,1,2,1,3,0,0,0,0,1,1,2,2,2,2,1,0,3,0,0,0,1,1,2,2,2,2,1,1,0,0,"undo","undo","undo",0,1,0,3,2,"undo",2,3,1,1,2],"background:0,0,0,0,0,0,0,0,background wall wall_grenze_n wall_grenze_nw wall_grenze_s wall_grenze_sw wall_grenze_w:1,\n0,background wall wall_grenze_n wall_grenze_nw wall_grenze_w:2,background wall wall_grenze_o wall_grenze_w:3,background wall wall_grenze_s wall_grenze_sw wall_grenze_w:4,0,0,background wall wall_grenze_n wall_grenze_no wall_grenze_o wall_grenze_s wall_grenze_so:5,0,background wall wall_grenze_n wall_grenze_s:6,\nbackground player:7,5,0,0,0,background wall wall_grenze_n wall_grenze_no wall_grenze_nw wall_grenze_o wall_grenze_w:8,background wall wall_grenze_o:9,4,0,\n0,0,0,background crate:10,0,background target wall wall_grenze_n wall_grenze_no wall_grenze_o:11,background wall wall_grenze_o wall_grenze_s wall_grenze_so wall_grenze_sw wall_grenze_w:12,0,0,\n2,12,0,0,0,0,0,6,0,\n0,0,1,0,0,background wall wall_grenze_n wall_grenze_no wall_grenze_o:13,3,12,0,\n5,0,0,0,0,0,0,0,0,\n",1,"1645545192906.1704"] + ], + [ + "[testing for recording through level-changes A] Level-Change test", + ["title Simple Block Pushing Game\nauthor David Skinner\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\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\n\nun\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\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",[2,1,0,3,3,3,2,1,0,1,2,2,"undo",1,2,2,3,0,1,0,3,0,0,1,2,3,2,2,3,3,3,0,1,2,1,0,0,3,2,2,1,2,3,0,0,0,1,2],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,0,background crate:2,\nbackground crate target:3,1,0,0,1,1,\nbackground player target:4,3,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n",0,"1645546672241.5308"] + ], + [ + "[testing for recording through level-changes B] Simple Block asdfsadf Game", + ["title Simple Block Pushing Game\nauthor David Skinner\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\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[ > 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\n",[2,1,0,3,3,2,1,3,3,2,1,0,1,1,2,2,3,0,1,0,3,0,0,1,2,3,2,2,3,3,0,1,2,1,0,0],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,1,1,\n1,0,0,1,0,background crate:2,\nbackground target:3,1,0,0,1,background player:4,\nbackground crate target:5,5,1,0,0,1,\n1,1,1,1,0,0,\n0,0,0,0,0,0,\n",0,"1645546774769.8335"] + ], + +[ + "[testing for recording through level-changes C] Don't asdlet your goals slip away", + ["title Don't let your goals slip away\nauthor increpare [riff on david skinner's levels]\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\nbackground_color green\n\n\ncolor_palette 2\n========\nOBJECTS\n========\n\nBackground\nGREEN green\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nblack\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nDARKBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nlightgray lightgray lightgray lightgray\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange\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\nobstacle = crate or wall\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 78774307\ntarget move 81495507\nendlevel 52446100\nstartgame 73236703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n( [ > player | wall ] -> cancel )\n[ > player | crate | obstacle ] -> cancel\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > player | target ] -> [ > player | > target ] \n[ > target | target ] -> [ > target | > target ]\n[ > target | wall ] -> [ target | wall ]\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 8\n\n(funny therefore good)\n####..\n#o*#..\n#..###\n#....#\n#.o*.#\n#.p###\n####..\n\n(meh)\n( ####.. )\n( #.o#.. )\n( #..### )\n( #o...# )\n( #*.*.# )\n( #.p### )\n( ####.. )\n\n\n\n(p. good!)\n..####...\n###..####\n#....*o.#\n#.#..#.o#\n#..*.#p.#\n#########\n\n( (Easy but funny) )\n( ###### )\n( #.*..# )\n( #.#.*# )\n( #....# )\n( #p*o.# )\n( #.oo.# )\n( ###### )\n\n\nmessage level 3 of 8\n\n(not bad)\n######\n##o..#\n#.#oo#\n#.*..#\n#.*..#\n#p*..#\n######\n\nmessage level 4 of 8\n\n########\n#...*..#\n#.o#.@p#\n#..*...#\n#####.o#\n....####\n\nmessage level 5 of 8\n\n\n\n(decent!)\n#####.\n#.*.##\n#.o.p#\n##.o.#\n.##.*#\n..##.#\n...###\n\nmessage level 6 of 8\n\n(fine right?)\n......###.\n#######o##\n#...*o...#\n#.#.#.#.##\n#.p.*...#.\n#########.\n\nmessage level 7 of 8\n(no idea. damnit spoiled but also ok.)\n####..\n#..#..\n#.*###\n#..*p#\n#..o.#\n#o.###\n####..\n\n\n\nmessage level 8 of 8\n(Tricky but also decent? involves fun manipulations)\n#######\n#..#..#\n#.o*o.#\n#.*p*##\n#.o*o.#\n#..#..#\n#######\n\n\nmessage Congratulations! You didn't let your goals run away from you.\n\n(transform\n\n[player]->[]\n[target]->[]\n[crate]->[]\n\nchoose 2 [] -> [ wall ]\nchoose 1 [ no obstacle ] -> [ player ]\nchoose 2 [ no obstacle ] -> [ crate ]\nchoose 2 [ no wall no player ] -> [ target ] \n\n)\n\n",[0,0,0,2,3,3,2,1,1,1,2,1,0,0,0],"background:0,background wall:1,1,1,1,1,0,1,0,\n0,0,1,1,1,0,1,0,1,\n1,0,0,0,background crate:2,1,1,0,0,\n0,0,1,1,1,2,1,1,1,\n0,1,background target:3,0,background player:4,1,0,1,0,\n3,0,1,0,1,1,1,1,1,\n",1,"1645546878695.2927"] ], ]; diff --git a/src/tests/resources/testingFrameWork.js b/src/tests/resources/testingFrameWork.js index 1c4c28cb2..ad240f7d3 100644 --- a/src/tests/resources/testingFrameWork.js +++ b/src/tests/resources/testingFrameWork.js @@ -14,8 +14,6 @@ function runTest(dataarray) { var randomseed = dataarray[4]!==undefined ? dataarray[4] : null; - var audio_output = dataarray[5]!==undefined ? dataarray[5] : null; - if (targetlevel===undefined) { targetlevel=0; } @@ -46,21 +44,6 @@ function runTest(dataarray) { unitTesting=false; var levelString = convertLevelToString(); var success = levelString == dataarray[2]; - var success=true; - if (levelString !== dataarray[2]) { - success=false; - QUnit.assert.equal(levelString,dataarray[2],"Resulting level state is not the expected one."); - } - - if (audio_output!==null){ - //check if soundHistory array is same as audio_output - var audio_recorded = soundHistory.join(";"); - var audio_expected = audio_output.join(";"); - if (audio_recorded!=audio_expected){ - success=false; - QUnit.assert.equal(audio_recorded,audio_expected,"Audio output is not as expected"); - } - } if (success) { return true; } else { @@ -99,9 +82,9 @@ function runCompilationTest(dataarray) { } if (i_recorded0) { @@ -26,13 +23,6 @@ for (var i=0;i Date: Wed, 1 Mar 2023 14:23:04 +1100 Subject: [PATCH 119/122] Tidy up some PS+ comments --- goToken/accessToken.go | 115 -------------------------------- installing_on_windows_diary.txt | 41 ------------ src/js/parser.js | 21 ------ 3 files changed, 177 deletions(-) delete mode 100644 goToken/accessToken.go delete mode 100644 installing_on_windows_diary.txt diff --git a/goToken/accessToken.go b/goToken/accessToken.go deleted file mode 100644 index edb8b8c2e..000000000 --- a/goToken/accessToken.go +++ /dev/null @@ -1,115 +0,0 @@ -package main - -import ( - "bytes" - "crypto/tls" - "encoding/json" - "io/ioutil" - "net/http" - "os" - - "golang.org/x/crypto/acme/autocert" -) - -const ( - domain = "50.25.89.34.bc.googleusercontent.com" - - oauthURI = "https://github.com/login/oauth/access_token" - oauthClient = "5fe44fa4c9d29308052b" -) - -var ( - oauthSecret string -) - -type request struct { - ClientID string `json:"client_id"` - ClientSecret string `json:"client_secret"` - Code string `json:"code"` - State string `json:"state"` -} - -func handleAccessTokenRequest(w http.ResponseWriter, r *http.Request) { - r.ParseForm() - - code := r.Form.Get("code") - state := r.Form.Get("state") - if len(code) == 0 || len(state) == 0 { - w.WriteHeader(http.StatusBadRequest) - return - } - - origin := r.Header.Get("origin") - if origin != "https://dario-zubovic.github.io" { - w.WriteHeader(http.StatusBadGateway) - return - } - - req := request{ - ClientID: oauthClient, - ClientSecret: oauthSecret, - Code: code, - State: state, - } - - buf := &bytes.Buffer{} - err := json.NewEncoder(buf).Encode(&req) - if err != nil { - w.WriteHeader(http.StatusInternalServerError) - return - } - - request, err := http.NewRequest("POST", oauthURI, buf) - if err != nil { - w.WriteHeader(http.StatusInternalServerError) - return - } - - request.Header.Add("Accept", "application/json") - - response, err := http.DefaultClient.Do(request) - if err != nil { - w.WriteHeader(http.StatusInternalServerError) - return - } - - bytes, err := ioutil.ReadAll(response.Body) - if err != nil { - w.WriteHeader(http.StatusInternalServerError) - return - } - - w.Write(bytes) - w.WriteHeader(http.StatusOK) -} - -func main() { - oauthSecret = os.Args[1] - - certManager := autocert.Manager{ - Prompt: autocert.AcceptTOS, - Cache: autocert.DirCache("certs"), - // HostPolicy: autocert.HostWhitelist(domain), - } - - go http.ListenAndServe(":http", certManager.HTTPHandler(nil)) - - mux := http.NewServeMux() - - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(http.StatusOK) - }) - - mux.HandleFunc("/access_token", handleAccessTokenRequest) - - server := &http.Server{ - Addr: ":https", - Handler: mux, - TLSConfig: &tls.Config{ - GetCertificate: certManager.GetCertificate, - }, - } - - err := server.ListenAndServeTLS("", "") - panic(err) -} diff --git a/installing_on_windows_diary.txt b/installing_on_windows_diary.txt deleted file mode 100644 index f9121b114..000000000 --- a/installing_on_windows_diary.txt +++ /dev/null @@ -1,41 +0,0 @@ -Ok keeping track of what I do to get puzzlescript building on windows. - -1 - sync to github repo -2 - try opening the folder in vs code -3 - realize that the build scripts rely on the folder being called src and there being a parallel bin directory -*4 - move everything to a src directory in the github structure (probably breaking things on mac) -*5 - edited the ..gitignore file to take this into account -6 - try to run the non-compiled version (src/editor.html). Oh I can just run it in edge. Also chrome. Also firefox. (Much easier than on mac, where you need a http server). - - -what external tools does my bash script need? - -images/minimize needs pngcrush -https://www.npmjs.com/package/pngcrush - -css/concat uses concat -https://www.npmjs.com/package/concat - -closure.jar -https://www.npmjs.com/package/google-closure-compiler - -yuicompressor-2.4.8.jar -https://www.npmjs.com/package/ycssmin - -htmlcompressor-1.5.3.jar -https://www.npmjs.com/package/html-minifier-terser - -gzipper needs perl, lol -gzipper -https://www.npmjs.com/package/tar - -inliner -https://www.npmjs.com/package/inliner - -directory cp = ncp - -7 - install npm packages I'll probably need: -npm i tar html-minifier-terser ycssmin google-closure-compiler concat imagemin imagemin-pngcrush inliner ncp - - - diff --git a/src/js/parser.js b/src/js/parser.js index 975482c22..ef519063c 100644 --- a/src/js/parser.js +++ b/src/js/parser.js @@ -125,19 +125,6 @@ function logErrorNoLine(str,urgent) { } } -// PS+ -function logBetaMessage(str,urgent){ - if (compiling||urgent) { - var errorString = '' + str + ''; - if (errorStrings.indexOf(errorString) >= 0 && !urgent) { - //do nothing, duplicate error - } else { - consoleError(errorString); - errorStrings.push(errorString); - } - } -} - function blankLineHandle(state) { if (state.section === 'levels') { if (state.levels[state.levels.length - 1].length > 0) @@ -234,14 +221,6 @@ var codeMirrorFn = function() { logError(`You're talking about ${candname.toUpperCase()} but it's not defined anywhere.`, state.lineNumber); } - // PS+ not used - // function searchStringInArray(str, strArray) { - // for (var j = 0; j < strArray.length; j++) { - // if (strArray[j] === str) { return j; } - // } - // return -1; - // } - function registerOriginalCaseName(state,candname,mixedCase,lineNumber){ function escapeRegExp(str) { From 6b81a37659a5dc665b4b99e080826eff97e65fca Mon Sep 17 00:00:00 2001 From: david Date: Wed, 1 Mar 2023 18:47:36 +1100 Subject: [PATCH 120/122] Tweak parser PS+ comments --- src/js/parser.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/js/parser.js b/src/js/parser.js index ef519063c..cb462c72b 100644 --- a/src/js/parser.js +++ b/src/js/parser.js @@ -564,7 +564,7 @@ var codeMirrorFn = function() { objects_spritematrix: state.objects_spritematrix.concat([]), tokenIndex: state.tokenIndex, - // PS+ + // PS+ SECTION command argument if any currentSection: state.currentSection, current_line_wip_array: state.current_line_wip_array.concat([]), @@ -723,7 +723,7 @@ var codeMirrorFn = function() { if (sectionIndex == 0) { state.objects_section = 0; if (state.visitedSections.length > 1) { - // PS+ to fix x3 + // PS+ to fix for case_sensitive logError('section "' + state.section.toUpperCase() + '" must be the first section', state.lineNumber); } } else if (state.visitedSections.indexOf(sectionNames[sectionIndex - 1]) == -1) { @@ -817,26 +817,26 @@ var codeMirrorFn = function() { if (match_name == null) { stream.match(reg_notcommentstart, true); if (stream.pos>0){ - // PS+ to fix + // PS+ to fix for sprite size logWarning('Unknown junk in object section (possibly: sprites have to be 5 pixels wide and 5 pixels high exactly. Or maybe: the main names for objects have to be words containing only the letters a-z0.9 - if you want to call them something like ",", do it in the legend section).',state.lineNumber); } return 'ERROR'; } else { var candname = match_name[0].trim(); if (state.objects[candname] !== undefined) { - // PS+ to fix + // PS+ to fix for case_sensitive logError('Object "' + candname.toUpperCase() + '" defined multiple times.', state.lineNumber); return 'ERROR'; } for (var i=0;i=0) { - // PS+ to fix + // PS+ to fix for case_sensitive logWarning('You named an object "' + candname.toUpperCase() + '", but this is a keyword. Don\'t do that!', state.lineNumber); } @@ -956,9 +956,8 @@ var codeMirrorFn = function() { var o = state.objects[state.objects_candname]; spritematrix[spritematrix.length - 1] += ch; - // PS+ to fix + // PS+ to fix for sprite size if (spritematrix[spritematrix.length-1].length>state.sprite_size){ - // PS+ logWarning('Sprites must be 5 wide and 5 high.', state.lineNumber); //logError('Sprites must be ' + state.sprite_size + ' wide and ' + state.sprite_size + ' high.', state.lineNumber); stream.match(reg_notcommentstart, true); @@ -1333,7 +1332,8 @@ var codeMirrorFn = function() { } } // PS+ to fix - logError('Cannot add "' + candname + '" to a collision layer; it has not been declared.', state.lineNumber); + logError('Cannot add "' + candname.toUpperCase() + '" to a collision layer; it has not been declared.', state.lineNumber); + //logError('Cannot add "' + candname + '" to a collision layer; it has not been declared.', state.lineNumber); return []; }; if (candname.toLowerCase()==='background' ) { @@ -1365,7 +1365,7 @@ var codeMirrorFn = function() { } } if (foundOthers.length>0){ - // PS+ to fix + // PS+ to fix for case_sensitive var warningStr = 'Object "'+candname.toUpperCase()+'" included in multiple collision layers ( layers '; for (var i=0;i Date: Thu, 2 Mar 2023 16:41:38 +1100 Subject: [PATCH 121/122] New games_dat_plus for PS+ gallery Fix message parsing to match new PS+ Fix missing PS+ commands --- src/Gallery/index.html | 2 +- src/editor.html | 3 - src/games_dat_plus.js | 205 +++++++++++++++++++++++++++++++++++++++++ src/index.html | 2 +- src/js/compiler.js | 2 +- src/js/parser.js | 72 ++++++++------- 6 files changed, 246 insertions(+), 40 deletions(-) create mode 100644 src/games_dat_plus.js diff --git a/src/Gallery/index.html b/src/Gallery/index.html index 805af0838..be60e5fce 100644 --- a/src/Gallery/index.html +++ b/src/Gallery/index.html @@ -78,7 +78,7 @@ - + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/tests/resources/plus_errormessage_testdata.js b/src/tests/resources/plus_errormessage_testdata.js new file mode 100644 index 000000000..731d95c31 --- /dev/null +++ b/src/tests/resources/plus_errormessage_testdata.js @@ -0,0 +1,50 @@ + +var errormessage_testdata = [ + + + [ + "Sokobanana [Example ver.]", + ["title Sokobanana [Example ver.]\nauthor Tom Hermans [Auroriax]\nhomepage auroriax.itch.io\n\nagain_interval 0.085\nkey_repeat_interval 0.16\n\nbackground_color yellow \ntext_color black\n\nnoaction\nrun_rules_on_level_start\n\nsprite_size 12x12\n\nlevel_select\nlevel_select_solve_symbol *\n\n========\nOBJECTS\n========\nPlayer0 P\nwhite black\n............\n...000000...\n...000000...\n.0011001100.\n.0011001100.\n...000000...\n...000000...\n...00..00...\n...00..00...\n..000..000..\n.0000..0000.\n............\n\nPlayer90\nwhite black\n............\n.0.....00...\n.00....00...\n.0000001100.\n.0000001100.\n.....000000.\n.....000000.\n.0000001100.\n.0000001100.\n.00....00...\n.0.....00...\n............\n\nPlayer180\nwhite black\n............\n.0000..0000.\n..000..000..\n...00..00...\n...00..00...\n...000000...\n...000000...\n.0011001100.\n.0011001100.\n...000000...\n...000000...\n............\n\nPlayer270\nwhite black\n............\n...00.....0.\n...00....00.\n.0011000000.\n.0011000000.\n.000000.....\n.000000.....\n.0011000000.\n.0011000000.\n...00....00.\n...00.....0.\n............\n\nAnimateDone\ntransparent\n\nBackground .\n#A0A090\n\nBanana B\nyellow black\n............\n.......11...\n.......11...\n......000...\n.....0000...\n....00000...\n...0000000..\n...000.0000.\n...00...000.\n..000....00.\n.000.....0..\n............\n\nWall w\nyellow\n\nBox O\n#0080FF\n............\n............\n...000000...\n..00000000..\n..00000000..\n..00000000..\n..00000000..\n..00000000..\n..00000000..\n...000000...\n............\n............\n\nPit A\n#000000C0\n............\n............\n............\n............\n...000000...\n..00000000..\n..00000000..\n..00000000..\n..00000000..\n...000000...\n............\n............\n\nBigPit T\nBlack #808080\n............\n............\n............\n...000000...\n..00000000..\n.0000000000.\n.0000000000.\n.0000000000.\n..00000000..\n...000000...\n............\n............\n\nGoal G\n#00000080 #ffffff80\n110011001100\n110011001100\n001100110011\n001100110011\n110011001100\n110011001100\n001100110011\n001100110011\n110011001100\n110011001100\n001100110011\n001100110011\n\nActivatedGoal copy:Goal\nblack white\n\nDriftL\nTransparent\n\nDriftR\nTransparent\n\nDriftU\nTransparent\n\nDriftD\nTransparent\n\nDone\nTransparent\n\nBoxTarget S\nlightblue\n............\n...000000...\n..00000000..\n.00......00.\n.00......00.\n.00......00.\n.00......00.\n.00......00.\n.00......00.\n..00000000..\n...000000...\n............\n\nSignpost I\nbrown black\n............\n.0000000000.\n.0000000000.\n.0011110000.\n.0000000000.\n.0011111100.\n.0000000000.\n.....00.....\n.....00.....\n.....00.....\n.....00.....\n............\n\nOne\nblack\n............\n....0000....\n....0000....\n......00....\n......00....\n......00....\n......00....\n......00....\n......00....\n......00....\n......00....\n............\n\nTwo \nblack\n............\n....0000....\n...000000...\n..000..000..\n..000..000..\n......000...\n.....000....\n....000.....\n...000......\n..00000000..\n..00000000..\n............\n\nThree\nblack\n............\n...000000...\n..00000000..\n........00..\n........00..\n....000000..\n....000000..\n........00..\n........00..\n..00000000..\n...000000...\n............\n\nFour\nblack\n............\n......00....\n.....000....\n....0000....\n...00000....\n..000.00....\n..00..00....\n..00000000..\n..00000000..\n......00....\n......00....\n............\n\nAye\nblack\n............\n...000000...\n..00000000..\n..00....00..\n..00....00..\n..00000000..\n..00000000..\n..00....00..\n..00....00..\n..00....00..\n..00....00..\n............\n\nBee\nblack\n............\n..000000....\n..0000000...\n..00...00...\n..00...00...\n..0000000...\n..00000000..\n..00....00..\n..00....00..\n..00000000..\n..0000000...\n............\n\nCee\nblack\n............\n...0000000..\n..00000000..\n..000.......\n..00........\n..00........\n..00........\n..00........\n..000.......\n..00000000..\n...0000000..\n............\n\nSpaceTemp |\nblack\n\nSpace1\nblack white black black\n000000000000\n000003300000\n000003300000\n000000000000\n000000000000\n022000000000\n022000000000\n000000011000\n000000011000\n000000000000\n000000000000\n000000000000\n\nSpace2 copy:Space1\nblack black white black\n\nSpace3\nblack black black white\n\nMoon\nDarkgray Gray Lightgray\n............\n...222222...\n...222222...\n.2211222200.\n.2211222200.\n.1122112200.\n.1122112200.\n.2211220000.\n.2211220000.\n...000000...\n...000000...\n............\n\nMiniTrigger\nTransparent\n\nPlayerMini0\nWhite White transparent\n............\n............\n............\n...001100...\n...001100...\n...220022...\n...220022...\n...001100...\n...001100...\n............\n............\n............\n\nPlayerMini90 copy:PlayerMini0\nWhite transparent White\n\nVanishTrigger\nTransparent\n\nStar1\nYellow transparent transparent\n............\n.....22.....\n.....22.....\n.....11.....\n.....11.....\n.2211001122.\n.2211001122.\n.....11.....\n.....11.....\n.....22.....\n.....22.....\n............\n\nStar2 copy:Star1\nYellow Yellow transparent\n\nStar3 copy:Star1\nYellow Yellow Yellow\n\nStar4 copy:Star1\nYellow Yellow Yellow\n\nStar5 copy:Star1\nYellow Yellow Yellow\n\nStar6 copy:Star1\ntransparent yellow yellow\n\nStar7 copy:Star1\ntransparent transparent Yellow\n\nWMarker\ntransparent\n\nFMarker\ntransparent\n\n=======\nLEGEND\n=======\n(Level numbers)\n1 = Wall and One\n2 = Wall and Two\n3 = Wall and Three\n4 = Wall and Four\n\n[ = Wall and Aye\n] = Wall and Bee\n? = Wall and Cee\n\n(Game)\nPlayer = Player0 or Player90 or Player180 or Player270 or Star7\n\nDrift = DriftL or DriftR or DriftU or DriftD\nObstacle = Wall or Signpost\nDriftable = Player or Box\nCantWalkInto = Pit or Bigpit\n\nY = Box and BoxTarget\n} = Boxtarget and Pit\nZ = Box and Banana\n\n^ = SpaceTemp and BigPit\n/ = SpaceTemp and Moon\nK = SpaceTemp and VanishTrigger and Goal\nJ = SpaceTemp and MiniTrigger\n\n=======\nSOUNDS\n=======\nSFX0 70928908 (Falling down)\nSFX1 96485908 (Slide)\nSFX3 1461507 (Stop sliding)\nSFX4 72598508 (Star)\nSFX5 48186508 (Sound when hole fills up)\nEndlevel 96979508 \n\n================\nCOLLISIONLAYERS\n================\nBackground\nBanana, Goal, ActivatedGoal, Pit, BigPit, MiniTrigger\nBoxTarget, SpaceTemp, Space1, Space2, Space3\nPlayer0, Player90, Player180, Player270, Wall, Box, Signpost, Moon, PlayerMini0, PlayerMini90, Star1, Star2, Star3, Star4, Star5, Star6, Star7\nDrift, One, Two, Three, Four, Aye, Bee, Cee, VanishTrigger\nDone\nAnimateDone\nWMarker, FMarker\n\n======\nRULES\n======\n(Debug mode skip levels)\n[action player] -> [] win\n\n(Space generation)\n[SpaceTemp] -> [random Space1 random Space2 random Space3]\n\n(Can't go into pits, but can slide over them)\n[> Player | CantWalkInto] -> [ Player | CantWalkInto]\n[Player Pit no Drift no Star7] -> [Pit Star1] sfx0\n[Player BigPit no Drift no Star7] -> [BigPit Star1] sfx0\n\n(Box pushing, again is used to make boxes fill up the hole right away)\n[> Player | Box] -> [> Player | > Box] again\n\n(Boxes fill up holes)\n[Box Pit no Drift] -> [background] sfx5\n[Box BigPit no Drift no Star7] -> [BigPit background Star1] sfx0\n\n(Signs)\nup [> Player | Signpost] -> [Player | Signpost] message Slide over the peels to get to the goal. If there are boxes on the level, don't forget to push these to the designated squares. Press [Z] to undo a move, or [R] to restart the puzzle. Good luck!\n\n(Player moves, steps on banana, slide starts)\nleft [left Driftable | Banana] -> [Driftable DriftL | Banana ] SFX1\nright [right Driftable | Banana] -> [Driftable DriftR | Banana ] SFX1\nup [up Driftable | Banana] -> [Driftable DriftU | Banana ] SFX1\ndown [down Driftable | Banana] -> [Driftable DriftD | Banana ] SFX1\n\n(Drift compute)\nlate left [Driftable DriftL no Done | Driftable] -> [Driftable Done | DriftL Driftable] again\nlate left [Driftable DriftL no Done | no Obstacle] -> [ | Driftable DriftL Done] again\nlate left [Driftable DriftL Done | Obstacle] -> [Driftable | Obstacle] SFX3\n late right [Driftable DriftR no Done | Driftable] -> [Driftable Done | DriftR Driftable] again\n late right [Driftable DriftR no Done | no Obstacle] -> [ | Driftable DriftR Done] again\n late right [Driftable DriftR Done | Obstacle] -> [Driftable | Obstacle] SFX3\nlate up [Driftable DriftU no Done | Driftable] -> [Driftable Done | DriftU Driftable] again\nlate up [Driftable DriftU no Done | no Obstacle] -> [ | Driftable DriftU Done] again\nlate up [Driftable DriftU Done | Obstacle] -> [Driftable | Obstacle] SFX3\n late down [Driftable DriftD no Done | Driftable] -> [Driftable Done | DriftD Driftable] again\n late down [Driftable DriftD no Done | no Obstacle] -> [ | Driftable DriftD Done] again\n late down [Driftable DriftD Done | Obstacle] -> [Driftable | Obstacle] SFX3\n\n[Done] -> []\n\n(Get rid of drifters that haven't moved this turn and we don't we won't need anymore)\nlate [Driftable Drift no Done] -> [Driftable] SFX3 again\n\n(Ending)\nlate [Star1 no AnimateDone] [no moon] -> [Star2 AnimateDone] [no moon] again\nlate [Star1 no AnimateDone] [moon] -> [Star2 AnimateDone] [moon] SFX4 again\nlate [Star2 no AnimateDone] -> [Star3 AnimateDone] again\nlate [Star3 no AnimateDone] -> [Star4 AnimateDone] again\nlate [Star4 no AnimateDone] -> [Star5 AnimateDone] again\nlate [Star5 no AnimateDone] -> [Star6 AnimateDone] again\nlate [Star6 no AnimateDone] -> [Star7 AnimateDone] again\nlate [Star7 no AnimateDone] [no Moon] -> [] [no Moon]\n\nlate [PlayerMini90 no Animatedone] -> [PlayerMini0 Animatedone] again\nlate up [PlayerMini0 no Animatedone |] -> [ | PlayerMini90 Animatedone] again\nlate [Player Minitrigger] -> [PlayerMini0]\nlate [PlayerMini0 VanishTrigger] -> [VanishTrigger Star1]\n\n(Animation)\nlate [Player0 Drift no animatedone] -> [Player90 Drift AnimateDone]\nlate [Player90 Drift no animatedone] -> [Player180 Drift AnimateDone]\nlate [Player180 Drift no animatedone] -> [Player270 Drift AnimateDone]\nlate [Player270 Drift no animatedone] -> [Player0 Drift AnimateDone]\nlate [Player no Drift no Star7]-> [Player0]\nlate [AnimateDone] -> []\n\n(Check if all boxes are on a crate)\nlate [Goal] -> [ActivatedGoal]\nlate [BoxTarget no Box] [ActivatedGoal] -> [BoxTarget] [Goal]\n\n==============\nWINCONDITIONS\n==============\nSome Player on ActivatedGoal\nNo Drift on Player\nAll BoxTarget on Box\n\n=======\nLEVELS\n=======\n\nmessage Chapter I\n\nsection 1A Getting the Slip\n.p..i..w\nwww..b.w\n1[wwwgww\nwwwww..w\nw...t..w\nw.bttt.w\nww....ww\n\nsection 1B Slippery Trip \nwwwwwwwwwww\nww.....b..p\nwwbwbwb.w..\nww.......wb\nwg.wbwbwbw.\n.b.b.......\nwwbwbwwwwwb\n1].........\nwwwwwwwwwww\n\nsection 1C The Box and Banana\nso..p\ns....\n.wbw.\n.wo1.\n...?.\nw...g\n\nmessage Chapter II\n\nsection 2A Trashure Trove\nwwwwgwwww\n2[wwtw...\nwwww.....\nww..b...w\n.b.tb.wow\np...t...w\n\nsection 2B Newton's Cradle\nww....twwww\n...w.ot....\npbtgy.ts.ts\n...w..o..tw\nww.......tw\nwwwwwwwww2]\n\nsection 2C The Pit of Wit\nw....wwww\nw.wwbwwww\nw.wwtw2?w\nw.w.pwwww\nw.wo..o..\n.bss.ssw.\n.woot....\n.w..twwww\n...wgwwww\n\nmessage Chapter III\n\nsection 3A Banana Bonanza\n3[..ttt...\nw..oaba...\nw.p.aba.o.\nw...t.too.\nw...tgt...\n\nsection 3B Fruity Juices\n3]..wgww..w\nw..owawwo..\nw.ooaaaa.o.\nw...aaaaop.\nw..baaaab..\n\nsection 3C Tightrope Walk\nww....wwww\nww.oooww3?\naao.o.wwww\naa.o...www\naabttt.tga\naabb.p.www\n\nmessage Chapter IV\n\nsection 4A Slip 'n Slide\n4[wgwtst..w\nw..t..t..ow\nt..b.......\nst.btbbt...\nt..t..t.o..\n.p.o..b...t\n.b...tb..ts\n..wwwwwwwww\n\nsection 4B Banana Split\n4].....a..ww\nwwaww.ta..wg\n.o..t..at.w.\n.bb.t..a..ta\noo..t..a..op\ns...tb.a..ww\n\nsection 4C Banana Bunch\nw4?wstwwww\nwwwwtgwwww\nw..tb.t..w\nwo...b..sw\n...wb.t.p.\n....tw..o.\nww......ww\n\nsection Epilogue\nmessage Epilogue\n|||||||\n|||k|||\n|||||||\n|/|||||\n|||j|||\n|||||||\n|||||||\n||^^^||\n|^...^|\n^.....^\n...b...\n.......\n...p...\n.......\n\nmessage The End\n\nmessage Sokobanana by Tom Hermans (@Auroriax). Thanks for playing!\n",["line 319 : You named an object \"|\", but this is a keyword. Don't do that!","line 430 : You named an object \"[\", but this is a keyword. Don't do that!","line 431 : You named an object \"]\", but this is a keyword. Don't do that!","line 446 : You named an object \"^\", but this is a keyword. Don't do that!","line 495 : Commands should only appear at the end of rules, not in or before the pattern-detection/-replacement sections."],0] + ], + +[ + "PushTOOL v5", + ["title PushTOOL v5\nauthor Tom Hermans [@Auroriax]\nhomepage auroriax.itch.io\n\nbackground_color #111\ntext_color red\n\nlevel_select\n\n========\nOBJECTS\n========\n\nbackground .\n#444\n\nPlayer P\nPink\n.000.\n0.0.0\n00000\n00000\n.000.\n\nWall #\n#222\n\nRedCrate 1\nRed\n\nRedThrough 2\n#ff000088\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\nBlueCrate 4\nblue\n\nBlueThrough 5\n#1D57F788\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nNumberL\n#ffffffB0\n.....\n..0..\n.00..\n..0..\n.....\n\nNumberR\n#ffffffB0\n.....\n..0..\n..00.\n..0..\n.....\n\nNumberU\n#ffffffB0\n.....\n..0..\n.000.\n.....\n.....\n\nNumberD\n#ffffffB0\n.....\n.....\n.000.\n..0..\n.....\n\nZero\n#ffffff80\n.000.\n.0.0.\n.0.0.\n.0.0.\n.000.\n\nOne\nWhite #dddddd\n.00..\n..0..\n..0..\n..0..\n.111.\n\nTwo\nwhite #dddddd\n.000.\n...0.\n.000.\n.0...\n.111.\n\nThree\nwhite #dddddd\n.000.\n...0.\n..00.\n...0.\n.111.\n\nFour\nwhite #dddddd\n.0.0.\n.0.0.\n.000.\n...0.\n...1.\n\nFive\nwhite #dddddd\n.000.\n.0...\n.000.\n...0.\n.111.\n\nSix\nwhite #dddddd\n.000.\n.0...\n.000.\n.0.0.\n.111.\n\nLPullMarker\npink\n\nRPullMarker\npink\n\nUPullMarker\npink\n\nDPullMarker\npink\n\nDecreaseNr\nwhite\n\nIncreaseNr\nwhite\n\nExtrudingAllowed\ntransparent\n\n=======\nLEGEND\n=======\n\nCrates = RedCrate or BlueCrate\nThrough = RedThrough or BlueThrough\n\nPosNumber = One or Two or Three or Four or Five or Six\nNumber = Zero or PosNumber\nWasNumbers = NumberL or NumberR or NumberU or NumberD\n\nSymbol = Number or WasNumbers\n\nRedPropagation = RedCrate or RedThrough\nBluePropagation = BlueCrate or BlueThrough\n\nSolid = Wall or Crates\nSolidForRed = Wall or BlueCrate\nSolidForBlue = Wall or RedCrate\n\n! = RedThrough and BlueThrough\n? = Wall and RedThrough\n\" = Wall and BlueThrough\n\nPullMarker = LPullMarker or RPullMarker or UPullMarker or DPullMarker\n\nA = RedCrate and One\nB = RedCrate and Two\nC = RedCrate and Three\nD = RedCrate and Four\nE = RedCrate and Five\nF = RedCrate and Six\n\nV = BlueCrate and One\nW = BlueCrate and Two\nX = BlueCrate and Three\nY = BlueCrate and Four\nZ = BlueCrate and Five\n- = BlueCrate and Six\n\n=======\nSOUNDS\n=======\n\nsfx0 97827307 (Extruding)\nsfx1 65463107 (Detruding?)\nsfx2 4202507 (Pushing)\n\nendlevel 84411303\n\n================\nCOLLISIONLAYERS\n================\n\nbackground\nCrates Wall\nRedThrough\nBlueThrough\n\nPlayer \n\nNumber, WasNumbers\n\nIncreaseNr, DecreaseNr\nExtrudingAllowed\nPullMarker\n\n======\nRULES\n======\n\n[> Player | Wall] -> [Player | Wall]\n\nrandom [background] -> [background ExtrudingAllowed]\n\n(Push numbers inwards)\nright [> Player | Crates Number | Crates NumberL] -> [> Player | | Crates Number IncreaseNr] sfx1\nleft [> Player | Crates Number | Crates NumberR] -> [> Player | | Crates Number IncreaseNr] sfx1\nup [> Player | Crates Number | Crates NumberD] -> [> Player | | Crates Number IncreaseNr] sfx1\ndown [> Player | Crates Number | Crates NumberU] -> [> Player | | Crates Number IncreaseNr] sfx1\n\n(Is extruding allowed?)\n[ExtrudingAllowed] [RedCrate Number | > Player | RedCrate no Number] -> [] [RedCrate Number | > Player | RedCrate]\n[ExtrudingAllowed] [RedCrate no Number | > Player | RedCrate Number] -> [] [RedCrate | > Player | RedCrate Number]\n[ExtrudingAllowed] [RedCrate Number | > Player | RedCrate Number] -> [] [RedCrate Number | > Player | RedCrate Number]\n\n[ExtrudingAllowed] [BlueCrate Number | > Player | BlueCrate no Number] -> [] [BlueCrate Number | > Player | BlueCrate]\n[ExtrudingAllowed] [BlueCrate no Number | > Player | BlueCrate Number] -> [] [BlueCrate | > Player | BlueCrate Number]\n[ExtrudingAllowed] [BlueCrate Number | > Player | BlueCrate Number] -> [] [BlueCrate Number | > Player | BlueCrate Number]\n\n(Mark numbers for pull/extrude numbers out, actually handled in late rules)\nright [ExtrudingAllowed] [< Player no RedThrough | RedCrate PosNumber] -> [] [< Player | RedCrate PosNumber LPullMarker]\nleft [ExtrudingAllowed] [< Player no RedThrough | RedCrate PosNumber] -> [] [< Player | RedCrate PosNumber RPullMarker]\nup [ExtrudingAllowed] [< Player no RedThrough | RedCrate PosNumber] -> [] [< Player | RedCrate PosNumber DPullMarker]\ndown [ExtrudingAllowed] [< Player no RedThrough | RedCrate PosNumber] -> [] [< Player | RedCrate PosNumber UPullMarker]\n\nright [ExtrudingAllowed] [< Player no BlueThrough | BlueCrate PosNumber] -> [] [< Player | BlueCrate PosNumber LPullMarker]\nleft [ExtrudingAllowed] [< Player no BlueThrough | BlueCrate PosNumber] -> [] [< Player | BlueCrate PosNumber RPullMarker]\nup [ExtrudingAllowed] [< Player no BlueThrough | BlueCrate PosNumber] -> [] [< Player | BlueCrate PosNumber DPullMarker]\ndown [ExtrudingAllowed] [< Player no BlueThrough | BlueCrate PosNumber] -> [] [< Player | BlueCrate PosNumber UPullMarker]\n\n[ExtrudingAllowed] -> []\n\n(Increase numbers)\n[IncreaseNr Zero] -> [One]\n[IncreaseNr One] -> [Two]\n[IncreaseNr Two] -> [Three]\n[IncreaseNr Three] -> [Four]\n[IncreaseNr Four] -> [Five]\n[IncreaseNr Five] -> [Six]\n\n[IncreaseNr] -> []\n\n(Propagate movement)\n[> Player | Crates] -> [> Player | > Crates] sfx2\n\nstartloop\n[moving RedPropagation | stationary RedPropagation] -> [moving RedPropagation | moving RedPropagation]\n[moving BluePropagation | stationary BluePropagation] -> [moving BluePropagation | moving BluePropagation]\n[> RedCrate | stationary BlueCrate] -> [> RedCrate | > BlueCrate]\n[> BlueCrate | stationary RedCrate] -> [> BlueCrate | > RedCrate] \nendloop\n\n(Validate turn)\n[> Crates | Wall] -> cancel\n[moving Crates stationary Symbol] -> [moving Crates moving Symbol]\n\n[RedCrate RedThrough] -> cancel\n[BlueCrate BlueThrough] -> cancel\n\n(LATE RULES)\n(Actually do pulls if still relevant)\nlate right [no Player no Solid no RedThrough | Crates PosNumber LPullMarker] -> [ Crates PosNumber DecreaseNr | Crates NumberL] sfx0\nlate left [no Player no Solid no RedThrough | Crates PosNumber RPullMarker] -> [ Crates PosNumber DecreaseNr | Crates NumberR] sfx0\nlate up [no Player no Solid no RedThrough | Crates PosNumber DPullMarker] -> [ Crates PosNumber DecreaseNr | Crates NumberD] sfx0\nlate down [no Player no Solid no RedThrough | Crates PosNumber UPullMarker] -> [ Crates PosNumber DecreaseNr | Crates NumberU] sfx0\n\nlate [DecreaseNr One] -> [Zero]\nlate [DecreaseNr Two] -> [One]\nlate [DecreaseNr Three] -> [Two]\nlate [DecreaseNr Four] -> [Three]\nlate [DecreaseNr Five] -> [Four]\nlate [DecreaseNr Six] -> [Five]\n\n[DecreaseNr] -> []\n\nlate [PullMarker] -> []\n\n(Cleanup)\nlate [Player Crates] -> cancel\nlate [Symbol no Crates] -> []\n\n==============\nWINCONDITIONS\n==============\n\nNo PosNumber\nSome Number\n\n=======\nLEVELS\n=======\n\nsection 1A. Practice Path\n#########\n##p######\n##.######\n##..c..##\n#########\n#########\n\nsection 1B. Stuck in the Grid\n#######\n###...#\n#1#.#.#\n#1bp.x#\n#1#.#.#\n###...#\n#######\n(uurrd dllrr duuu)\n\nsection 1C. Ripping the Sticker\n#######\n###...#\n##....#\n##..p.#\n#.b...#\n#ac####\n#######\n(llurd rdlud rrulu ldruu ldldu rurdr)\n\nsection 1D. Switcharoo\n######\n#...p#\n#..c.#\n###w.#\n###..#\n######\n(dlduu lldru rdduu ldl)\n\nsection 2A. Unfolding Star\n#######\n#.....#\n#...p.#\n#..c..#\n#.b1b.#\n#..c..#\n#######\n(lduul dlduu ldddd rrllu ruuur dldlu rrrul dll)\n\nsection 2B. Twisty Pistons\n#############\n####.....####\n#1.#.....#.4#\n#11fp....-44#\n#1.#.....#.4#\n####.....####\n#############\n(rdldr urulu uldrl urrrd drlur uldld rddru lr)\n\nsection 2C. Shifty Staircase \n#######\n#.....#\n#.c...#\n#.22.p#\n#.d2c.#\n##...##\n#######\n(lullr rrdlr dldll urdlu drulr rr)\n\nsection 2D. Sifting & Shifting\n###############\n####.p.....####\n####.#...#.####\n#..1a2aba2a1..#\n#####.....#####\n#####.....#####\n###############\n(rdurd uldrl ddrdr rudll lludr uuuru rdlld ddrru dlulu uruld dddlu ruuur rdlru rrdul lllll du)\n\nsection 3A. Folded Couches\n########\n##....##\n#.....b#\n#x....c#\n#w.p...#\n########\n########\n(lrrru lllur rrlll drulu rdrur du)\n\nsection 3B. Surrounded Shape\n#########\n#.......#\n#.c111c.#\n#.....1.#\n#...#.1.#\n#....p1.#\n#.c111c.#\n#.......#\n#########\n(lllur drrru lulld lulur urdrr rruld lllld ldrdr uluur urdll urrrr ddddd drulu uuuul llldr rurrd rdld)\n\nsection 3C. Twisted Interjoin\n########\n##....##\n#p..c..#\n#..x!x.#\n#...c..#\n########\n(rrrll lddrr udlul urdrl dluur drudl ldrur urrdl lulur rdrdr ulrdl uddll uuuld rdrul ldlur rrddl rudll ludrr rudlu ldrll)\n\nsection 3D. Hollow Hole\n#########\n###...###\n##.....##\n#..ba2b.#\n#..2..a.#\n#p.a..2.#\n#..b2ab.#\n##.....##\n###...###\n#########\n(rlurr rdrul uurdu ulddl lurdr uurdr drddl dlurd dldlu luuur ldddr druru ruldu ruulu ldrdr dludr dldld lulur dldru lrdru rurul urulu luldr luldl dlddr udl)\n\nsection Credits\n\nmessage Game by Tom Hermans for the Thinky Puzzle Jam (2021).\nmessage The End! Thank you for playing.\n\n(section ?. Unearthed\n########\n#......#\n#......#\n#......#\n#..p...#\n#..#####\n#....###\n##..e.v#\n##..####\n########\n\nsection ?. Traffic\n\n############\n#####......#\n?2222.p....#\n?...2..5#..#\n?d..?..wv#.#\n???#?#######\n\n############\n#####......#\n#.....p....#\n#......5#..#\n#e2.#..wv#.#\n#?##########\n\n\n#############\n#...2.......#\n#..1a1p.4.4.#\n#..1.1..4v4.#\n#...........#\n#############\n\n\n#############\n#...2.......#\n#..1a1......#\n#..2.2.p454.#\n#..121..5.5.#\n#.......4v4.#\n#........5..#\n#############\n\n\n#######\n#.....#\n#.....#\n#.#.#.#\n#.....#\n#.....#\n##vvv##\n##...##\n##.p.##\n##d..##\n#######\n\n\n#########\n#.......#\n#...p...#\n#.......#\n#d......#\n####x####\n###444###\n\n\n########\n#.4....#\n?15....#\n?#\"#####\n?.5....#\n?.5....#\n?d5.#p##\n##\"##.##\n##w5..##\n#444...#\n########)",["line 192 : You named an object \"V\", but this is a keyword. Don't do that!"],0] + ], + + +[ + "Gridroots LD48 v2", + ["title Gridroots LD48 v2\nauthor Tom Hermans [@Auroriax]\n\nmouse_left Click\nmouse_drag Drag\nmouse_right EraserClick\nmouse_rdrag EraserDrag\n\nlevel_select\nlevel_select_solve_symbol *\n\nbackground_color #dddddd\ntext_color Red\n\nsprite_size 6\n\nrun_rules_on_level_start\n\n(Kitchen Sink font by Retroshark and Polyducks: https://polyducks.itch.io/kitchen-sink-textmode-font)\ncustom_font data:font/otf;base64,AAEAAAAMAIAAAwBARkZUTdIPUvwAACFMAAAAHE9TLzLNdgq4AAABSAAAAGBjbWFwzJGg2QAAAnQAAAFCZ2FzcP//AAMAACFEAAAACGdseWb0pAjvAAAEgAAAGIRoZWFkWkY0wwAAAMwAAAA2aGhlYQYCAoUAAAEEAAAAJGhtdHgPAAcAAAABqAAAAMxsb2NhJ6MhUAAAA7gAAADGbWF4cABtACoAAAEoAAAAIG5hbWWviqllAAAdBAAABB9wb3N0AGkANAAAISQAAAAgAAEAAAABAACn4hG5Xw889QALBAAAAAAAfFN4YwAAAAB8U3hjAAD/gAKAA4AAAAAIAAIAAAAAAAAAAQAAA4D/gAAAAwAAAAAAAoAAAQAAAAAAAAAAAAAAAAAAAAQAAQAAAGIAKAAKAAAAAAACAAAAAAAAAAAAAAAAAAAAAAACAwABkAAFAAQCAAIAAAD/wAIAAgAAAAIAADMAzAAAAAAEAAAAAAAAAKAAAIMAAHDgAAAAAAAAAABZQUwuAEAAIAB+A4D/gAAAA4AAgAAAAAEAAAAAAoADgAAAACAAAQMAAAADAAAAAwAAAAMAAAABAACAAAAAAAAAAAABAACAAIAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAIAAgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAMAAAADAAAAHAABAAAAAAA8AAMAAQAAABwABAAgAAAABAAEAAEAAAB+//8AAAAg////4wABAAAAAAAAAQYAAAEAAAAAAAAAAQIAAAACAAAAAAAAAAAAAAAAAAAAAQAAAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAmAFQAiAC2APoBEAEqAUQBeAGQAaYBtAHAAeICCgIgAk4CeAKiAsYC7AMKAz4DZAN2A5IDvgPSA/wEJARKBHQEmAS+BNgE8AUGBTAFSAVgBX4FpgW2BdgF+gYaBjYGYgaEBrYGyAbiBwgHLgdqB44HtgfIB+oH/ggiCC4IQghoCJAItgjeCP4JHAlGCWQJgAmkCcgJ4AoCCiAKQApoCpAKrgrSCvALCgswC1YLkAuwC9IL8AwEDCQMQgAAAAIBAAAAAYADgAADAAcAAAEzESMVMxUjAQCAgICAA4D9gICAAAIAgAIAAoADgAADAAcAABMzESMBMxEjgICAAYCAgAOA/oABgP6AAAACAAAAAAKAA4AAGwAfAAATMxEzETMRMxUjFTMVIxEjESMRIxEjNTM1IzUzFxUzNYCAgICAgICAgICAgICAgICAA4D/AAEA/wCAgID/AAEA/wABAICAgICAgAAAAAMAAAAAAoADgAAbAB8AIwAAATMVIRUhFTMVIxUzFSMVIzUhNSE1IzUzNSM1MwUzFSMFMxUjAQCAAQD/AICAgICA/wABAICAgID/AICAAgCAgAOAgICAgICAgICAgICAgICAgIAAAAAABwAAAAACgAOAAAMABwALAA8AEwAXABsAAAEzFSMhMxUjJTMRKwEzFSsBMxErATMVIyUzFSMCAICA/gCAgAGAgICAgICAgICAgIACAICAA4CAgID/AID/AICAgAAKAAAAAAKAA4AAAwAHAAsADwATABcAGwAfACMAJwAAEyEVISMzESMBMxUjBTMVKwEzESMBMxUjJTMVKwEzFSMpARUhJTMVI4ABAP8AgICAAYCAgP8AgICAgIABAICAAQCAgICAgP8AAQD/AAGAgIADgID/AAEAgICA/wABAICAgICAgIAAAAAAAgEAAgACAAOAAAUACQAAASERIzUjFTMVIwEAAQCAgICAA4D/AICAgAAAAAADAIAAAAIAA4AAAwAHAAsAAAEhFSEjMxEjMyEVIQEAAQD/AICAgIABAP8AA4CA/YCAAAAAAwCAAAACAAOAAAMABwALAAATIRUpATMRIykBFSGAAQD/AAEAgID/AAEA/wADgID9gIAAAAUAAAEAAoADgAADABcAGwAfACMAABEzFSMlMxUzFTMVIxUjFSM1IzUjNTM1MyUzFSMBMxUjJTMVI4CAAQCAgICAgICAgICAAQCAgP4AgIACAICAA4CAgICAgICAgICAgICA/oCAgIAAAQAAAIACgAMAAAsAAAEzESEVIREjESE1IQEAgAEA/wCA/wABAAMA/wCA/wABAIAAAgEA/4ACAAEAAAUACQAAASERIzUjFTMVIwEAAQCAgICAAQD/AICAgAAAAAABAAABgAKAAgAAAwAAESEVIQKA/YACAIAAAAAAAQEAAAABgACAAAMAACUzFSMBAICAgIAABQAAAAACgAOAAAMABwALAA8AEwAAATMVKwEzESsBMxUrATMRKwEzFSMCAICAgICAgICAgICAgICAA4CA/wCA/wCAAAAFAAAAAAKAA4AAAwAHAAsADwATAAATIRUhIzMRIwEzESMBMxUjAyEVIYABgP6AgICAAgCAgP8AgICAAYD+gAOAgP2AAoD9gAGAgP8AgAAAAAEAAAAAAoADgAAJAAATIREhFSE1IREjgAEAAQD9gAEAgAOA/QCAgAKAAAAABgAAAAACgAOAAAMABwALAA8AEwAbAAATIRUhIzMVIyUzESsBMxUrATMVKwEzFSEVITUzgAGA/oCAgIACAICAgICAgICAgIABgP2AgAOAgICA/wCAgICAgAAAAAAFAAAAAAKAA4AABQALAA8AEwAXAAARIREjNSEFMxEhNTMXMxEjJTMVIzMhFSECgID+AAGAgP8AgICAgP4AgICAAYD+gAOA/wCAgP8AgID/AICAgAAFAAAAAAKAA4AAAwAHAAsADwAZAAABMxUrATMVKwEzFSsBMxUjJTMRIzUhETMVIQIAgICAgICAgICAgIABgICA/gCAAYADgICAgICA/gCAAQCAAAAEAAAAAAKAA4AABwALAA8AEwAAESEVIRUhFSkBMxEjJTMVIzMhFSECgP4AAYD+AAIAgID+AICAgAGA/oADgICAgP6AgICAAAAEAAAAAAKAA4AAAwALAA8AEwAAEyEVISMzFSEVIREjATMRIykBFSGAAYD+gICAAYD+gIACAICA/oABgP6AA4CAgID+gAGA/oCAAAAAAwAAAAACgAOAAAcACwAPAAARIREjESEVIwUzESsBMxEjAoCA/oCAAYCAgICAgAOA/oABAICA/wD/AAAABwAAAAACgAOAAAMABwALAA8AEwAXABsAABMhFSEjMxEjATMRIykBFSEjMxEjATMRIykBFSGAAYD+gICAgAIAgID+gAGA/oCAgIACAICA/oABgP6AA4CA/wABAP8AgP8AAQD/AIAAAAAEAAAAAAKAA4AAAwAHAA8AEwAAEyEVISMzESMBMxEjNSE1IQEhFSGAAYD+gICAgAIAgID+gAGA/oABgP6AA4CA/oABgP2AgID/AIAAAgEAAIABgAKAAAMABwAAATMVIxEzFSMBAICAgIACgID/AIAAAwCA/4ABgAKAAAMACQANAAABMxUjAyERIzUjFTMVIwEAgICAAQCAgICAAoCA/wD/AICAgAAAAAAHAIAAAAKAA4AAAwAHAAsADwATABcAGwAAATMVKwEzFSsBMxUrATMVIzsBFSM7ARUjOwEVIwIAgICAgICAgICAgICAgICAgICAgIADgICAgICAgIAAAAAAAgAAAIACgAKAAAMABwAAESEVIREhFSECgP2AAoD9gAKAgP8AgAAAAAcAgAAAAoADgAADAAcACwAPABMAFwAbAAATMxUjOwEVIzsBFSM7ARUrATMVKwEzFSsBMxUjgICAgICAgICAgICAgICAgICAgICAA4CAgICAgICAAAYAAAAAAoADgAADAAcACwAPABMAFwAAEyEVISMzFSMlMxErATMVKwEzFSMVMxUjgAGA/oCAgIACAICAgICAgICAgIADgICAgP8AgICAgAAABAAAAAACgAOAAAMABwANABEAABMhFSEjMxEjATMRIREhASEVIYABgP6AgICAAgCA/oABAP6AAYD+gAOAgP2AAoD+gAEA/gCAAAAAAAQAAAAAAoADgAADAAcACwAXAAABMxUrATMVIyUzFSMhMxEhETMRIxEhESMBAICAgICAAQCAgP6AgAGAgID+gIADgICAgID/AAEA/YABAP8AAAAAAAMAAAAAAoADgAALAA8AEwAAESEVIREhFSERIRUhATMRIxUzESMCAP6AAYD+gAGA/gACAICAgIADgID/AID/AIADAP8AgP8AAAUAAAAAAoADgAADAAcACwAPABMAABMhFSEjMxEjATMVIxEzFSMpARUhgAGA/oCAgIACAICAgID+gAGA/oADgID9gAKAgP6AgIAAAAACAAAAAAKAA4AABwALAAARIRUhESEVIQEzESMCAP6AAYD+AAIAgIADgID9gIADAP2AAAAAAQAAAAACgAOAAAsAABEhFSERIRUhESEVIQKA/gABgP6AAgD9gAOAgP8AgP8AgAAAAQAAAAACgAOAAAkAABEhFSERIRUhESMCgP4AAYD+gIADgID/AID+gAAAAAAFAAAAAAKAA4AAAwAHAAsAEQAVAAATIRUhIzMRIwEzFSMFIREjESEDIRUhgAGA/oCAgIACAICA/wABgID/AIABgP6AA4CA/YACgICA/oABAP8AgAABAAAAAAKAA4AACwAAETMRIREzESMRIREjgAGAgID+gIADgP6AAYD8gAGA/oAAAAABAAAAAAKAA4AACwAAESEVIREhFSE1IREhAoD/AAEA/YABAP8AA4CA/YCAgAKAAAADAAAAAAKAA4AABQAJAA0AAAEhESMRIQEzESMzIRUhAQABgID/AP8AgICAAYD+gAOA/QACgP6A/wCAAAAFAAAAAAKAA4AABwALAA8AEwAXAAARMxEhFSERIwEzESsBMxUjFTMVIzsBESOAAQD/AIACAICAgICAgICAgIADgP6AgP6AA4D/AICAgP8AAAEAAAAAAoADgAAFAAARMxEhFSGAAgD9gAOA/QCAAAAAAwAAAAACgAOAAAcADwATAAARMxUzFSMRIwEzESMRIzUzBTMVI4CAgIACAICAgID/AICAA4CAgP2AA4D8gAKAgICAAAADAAAAAAKAA4AABwAPABMAABEzFTMRIxEjATMRIzUjETMlMxUjgICAgAIAgICAgP8AgIADgID/AP4AA4D8gIABAICAAAQAAAAAAoADgAADAAcACwAPAAATIRUhIzMRIwEzESMpARUhgAGA/oCAgIACAICA/oABgP6AA4CA/YACgP2AgAACAAAAAAKAA4AACQANAAARIRUhESEVIREjATMRIwIA/oABgP6AgAIAgIADgID/AID+gAMA/wAAAAYAAAAAAoADgAADAAcACwAPABMAFwAAEyEVISMzESMBMxErATMVIykBFSElMxUjgAGA/oCAgIACAICAgICA/wABAP8AAYCAgAOAgP2AAoD+AICAgIAAAAADAAAAAAKAA4AACQANABEAABEhFSERIRUhESMBMxEjFTMRIwIA/oABgP6AgAIAgICAgAOAgP8AgP6AAwD/AID+gAAAAAcAAAAAAoADgAADAAcACwAPABMAFwAbAAATIRUhIzMRIwEzFSMFIRUpATMRIyUzFSMzIRUhgAGA/oCAgIACAICA/oABgP6AAYCAgP4AgICAAYD+gAOAgP8AAQCAgID/AICAgAABAAAAAAKAA4AABwAAESEVIREjESECgP8AgP8AA4CA/QADAAADAAAAAAKAA4AAAwAHAAsAABEzESMBMxEjKQEVIYCAAgCAgP6AAYD+gAOA/QADAP0AgAAABQAAAAACgAOAAAMABwALAA8AEwAAETMRIwEzESMhMxEjATMRKwEzESOAgAIAgID+gICAAQCAgICAgAOA/oABgP6A/wABAP8A/wAAAAUAAAAAAoADgAADAAcACwAPABMAABEzESMBMxEjATMRIyEzFSMlMxUjgIABAICAAQCAgP6AgIABAICAA4D9AAMA/QADAP0AgICAAAAJAAAAAAKAA4AAAwAHAAsADwATABcAGwAfACMAABEzESMBMxEjITMVIyUzFSsBMxUrATMVIyUzFSMhMxEjATMRI4CAAgCAgP6AgIABAICAgICAgICAAQCAgP6AgIACAICAA4D/AAEA/wCAgICAgICA/wABAP8AAAAFAAAAAAKAA4AAAwAHAAsADwATAAARMxEjATMRIyEzFSMlMxUrATMRI4CAAgCAgP6AgIABAICAgICAA4D+gAGA/oCAgID+gAAFAAAAAAKAA4AABQAJAA0AEQAXAAARIREjNSEFMxUrATMVKwEzFSsBMxUhFSECgID+AAGAgICAgICAgICAgAIA/YADgP8AgICAgICAgAAAAAEAAAAAAYADgAAHAAARIRUhESEVIQGA/wABAP6AA4CA/YCAAAUAAAAAAoADgAADAAcACwAPABMAABEzFSM7AREjOwEVIzsBESM7ARUjgICAgICAgICAgICAgIADgID/AID/AIAAAAAAAQAAAAABgAOAAAcAABEhESE1IREhAYD+gAEA/wADgPyAgAKAAAAAAAUAAAIAAoADgAADAAcACwAPABMAAAEzFSsBMxUjJTMVIyEzFSMlMxUjAQCAgICAgAEAgID+gICAAgCAgAOAgICAgICAgAAAAAEAAAAAAoAAgAADAAA1IRUhAoD9gICAAAIBAAIAAgADgAAFAAkAAAEhFSMVIzsBFSMBAAEAgICAgIADgICAgAAEAAAAAAKAAoAAAwANABEAFQAAEyEVKQEzESM1IzUhNSEFMxUjMyEVIYABgP6AAYCAgID/AAGA/gCAgIABAP8AAoCA/gCAgICAgIAABAAAAAACgAOAAAsADwATABcAABEzETMVIxUzFSMVIwEhFSkBMxEjKQEVIYCAgICAgAEAAQD/AAEAgID/AAEA/wADgP6AgICAgAKAgP6AgAAFAAAAAAKAAoAAAwAHAAsADwATAAATIRUhIzMRIwEzFSMVMxUjKQEVIYABgP6AgICAAgCAgICA/oABgP6AAoCA/oABgICAgIAAAAAABAAAAAACgAOAAAsADwATABcAAAEzESM1IzUzNSM1MyUhFSEjMxEjMyEVIQIAgICAgICA/oABAP8AgICAgAEA/wADgPyAgICAgICA/oCAAAADAAAAAAKAAoAAAwANABEAABMhFSEjMxUhNTMRIRUjMyEVIYABgP6AgIABgID+AICAAYD+gAKAgICA/wCAgAAAAgAAAAACgAOAAAMADwAAASEVISMzFSEVIREjESM1MwEAAYD+gICAAYD+gICAgAOAgICA/gACAIAAAAAABAAA/4ACgAKAAAMADwATABcAABMhFSElMxEjNSE1ITUjNTMhMxEjEyEVIYABAP8AAYCAgP6AAYCAgP4AgICAAYD+gAKAgID9gICAgID/AP8AgAAAAwAAAAACgAOAAAcACwAPAAARMxEzFSMRIwEhFSkBMxEjgICAgAEAAQD/AAEAgIADgP6AgP6AAoCA/gAAAgAAAAACgAOAAAMADQAAATMVIwchESEVITUhESMBAICAgAEAAQD9gAEAgAOAgID+AICAAYAAAAAEAAD/gAKAA4AAAwAJAA0AEQAAATMVIwUhESMRIQEzFSMzIRUhAgCAgP8AAYCA/wD/AICAgAGA/oADgICA/YACAP6AgIAAAAAEAAAAAAKAA4AABwALAA8AEwAAETMRIRUhESMBIRUhFTMVIzsBESOAAQD/AIABgAEA/wCAgICAgAOA/oCA/oACgICAgP8AAAACAAAAAAKAA4AABQAJAAARIREjESEBIRUhAYCA/wABgAEA/wADgP0AAoD9gIAAAAAEAAAAAAKAAoAABQAJAA0AEQAAESEVIxEjATMVKwEzESMBMxEjAQCAgAGAgICAgIABAICAAoCA/gACgID+gAGA/gAAAAMAAAAAAoACgAAHAAsADwAAETMVMxUjESMBIRUpATMRI4CAgIABAAEA/wABAICAAoCAgP6AAoCA/gAAAAQAAAAAAoACgAADAAcACwAPAAATIRUhIzMRIwEzESMpARUhgAGA/oCAgIACAICA/oABgP6AAoCA/oABgP6AgAAEAAD/gAKAAoAACwAPABMAFwAAETMVMxUjFTMVIxEjASEVKQEzESMpARUhgICAgICAAQABAP8AAQCAgP8AAQD/AAKAgICAgP8AAwCA/oCAAAQAAP+AAoACgAADAA8AEwAXAAATIRUhJTMRIxEjNTM1IzUzITMRIzMhFSGAAQD/AAGAgICAgICA/gCAgIABAP8AAoCAgP0AAQCAgID+gIAAAwAAAAACgAKAAAcACwAPAAARMxUzFSMRIwEhFSkBMxUjgICAgAEAAQD/AAEAgIACgICA/oACgICAAAAABQAAAAACgAKAAAMABwALAA8AEwAAEyEVISMzFSMzIRUpATMVIykBFSGAAgD+AICAgIABgP6AAYCAgP4AAgD+AAKAgICAgIAAAgAAAAACgAMAAAsADwAAEzMVIRUhESMRIzUzEyEVIYCAAYD+gICAgIABgP6AAwCAgP6AAYCA/gCAAAAAAwAAAAACgAKAAAMABwALAAARMxEjATMRIykBFSGAgAIAgID+gAGA/oACgP4AAgD+AIAAAAUAAAAAAoACgAADAAcACwAPABMAABEzESMBMxEjITMRIwEzESsBMxUjgIACAICA/oCAgAEAgICAgIACgP8AAQD/AP8AAQD/AIAAAAAFAAAAAAKAAoAAAwAHAAsADwATAAARMxEjATMRIwEzESMhMxUjJTMVI4CAAQCAgAEAgID+gICAAQCAgAKA/gACAP4AAgD+AICAgAAACQAAAAACgAKAAAMABwALAA8AEwAXABsAHwAjAAARMxUjJTMVIyEzFSMlMxUrATMVKwEzFSMlMxUjITMVIyUzFSOAgAIAgID+gICAAQCAgICAgICAgAEAgID+gICAAgCAgAKAgICAgICAgICAgICAgAAAAAADAAD/gAKAAoAAAwALAA8AABEzESMBMxEjNSE1IQEhFSGAgAIAgID+gAGA/oABgP6AAoD+gAGA/YCAgP8AgAAAAwAAAAACgAKAAAcACwATAAARIRUjFSM1IQUzFSsBMxUhFSE1MwKAgID+gAEAgICAgAGA/YCAAoCAgICAgICAgAAAAAADAAAAAAIAA4AABQAJAA8AABMhFSERKwEzFSM7AREhFSGAAYD/AICAgICAgAEA/oADgID/AID/AIAAAAACAQAAAAGAA4AAAwAHAAABMxEjFTMRIwEAgICAgAOA/oCA/oAAAAAAAwAAAAACAAOAAAUACQAPAAARIREjESEBMxUrATMRITUhAYCA/wABgICAgID+gAEAA4D+gAEA/wCA/oCAAAAAAAQAAAIAAgADAAADAAcACwAPAAATMxUjJTMVIyEzFSMlMxUjgICAAQCAgP6AgIABAICAAwCAgICAgIAAAAAAGAEmAAEAAAAAAAAAAwAIAAEAAAAAAAEADAAmAAEAAAAAAAIABwBDAAEAAAAAAAMADABlAAEAAAAAAAQAFACcAAEAAAAAAAUACwDJAAEAAAAAAAYACwDtAAEAAAAAAAkAGAErAAEAAAAAAAoAJQGQAAEAAAAAAA0AGwHuAAEAAAAAAA4ANAJ0AAEAAAAAABMAGQLfAAMAAQQJAAAABgAAAAMAAQQJAAEAGAAMAAMAAQQJAAIADgAzAAMAAQQJAAMAGABLAAMAAQQJAAQAKAByAAMAAQQJAAUAFgCxAAMAAQQJAAYAFgDVAAMAAQQJAAkAMAD5AAMAAQQJAAoASgFEAAMAAQQJAA0ANgG2AAMAAQQJAA4AaAIKAAMAAQQJABMANAKpACgAYwApAAAoYykAAEsAaQB0AGMAaABlAG4AIABTAGkAbgBrAABLaXRjaGVuIFNpbmsAAFIAZQBnAHUAbABhAHIAAFJlZ3VsYXIAAEsAaQB0AGMAaABlAG4AIABTAGkAbgBrAABLaXRjaGVuIFNpbmsAAEsAaQB0AGMAaABlAG4AIABTAGkAbgBrACAAUgBlAGcAdQBsAGEAcgAAS2l0Y2hlbiBTaW5rIFJlZ3VsYXIAAFYAZQByAHMAaQBvAG4AIAAxAC4AMgAAVmVyc2lvbiAxLjIAAEsAaQB0AGMAaABlAG4AUwBpAG4AawAAS2l0Y2hlblNpbmsAAFIAZQB0AHIAbwBzAGgAYQByAGsAIABhAG4AZAAgAFAAbwBsAHkAZAB1AGMAawBzAABSZXRyb3NoYXJrIGFuZCBQb2x5ZHVja3MAAEEAIAA2AHgAOAAgAG0AbwBuAG8AcwBwAGEAYwBlACAAZgBvAG4AdAAgAGYAbwByACAAdABlAHgAdABtAG8AZABlACAAYQByAHQAAEEgNng4IG1vbm9zcGFjZSBmb250IGZvciB0ZXh0bW9kZSBhcnQAAEMAbwBtAG0AZQByAGMAaQBhAGwAIAB3AGkAdABoACAAYQB0AHQAcgBpAGIAdQB0AGkAbwBuAABDb21tZXJjaWFsIHdpdGggYXR0cmlidXRpb24AAGgAdAB0AHAAcwA6AC8ALwBwAG8AbAB5AGQAdQBjAGsAcwAuAGkAdABjAGgALgBpAG8ALwBrAGkAdABjAGgAZQBuAC0AcwBpAG4AawAtAHQAZQB4AHQAbQBvAGQAZQAtAGYAbwBuAHQAAGh0dHBzOi8vcG9seWR1Y2tzLml0Y2guaW8va2l0Y2hlbi1zaW5rLXRleHRtb2RlLWZvbnQAAFQAZQB4AHQAbQBvAGQAZQAgAGEAcgB0ACAAaQBzACAAdABoAGUAIABiAGUAcwB0ACEmOgAAVGV4dG1vZGUgYXJ0IGlzIHRoZSBiZXN0IQAAAAMAAAAAAAAAZgAzAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAB//8AAgAAAAEAAAAA2WhiNQAAAAB8U3hjAAAAAHxTeGM=\n\n========\nOBJECTS\n========\n\nBackground .\nWhite #eee\n000001\n000001\n000001\n000001\n000001\n111111\n\nUndrawable X\nWhite\n\nPlayer \nPink\n\nClick\ntransparent\n\nDrag\ntransparent\n\nEraserClick\ntransparent\n\nEraserDrag\ntransparent\n\nCursor\n#ff0000BB\n00..00\n0....0\n......\n......\n0....0\n00..00\n\nTrail\ntransparent\n\nEraserCursor\n#ff0000BB\n0.0.0.\n.....0\n0.....\n.....0\n0.....\n.0.0.0\n\nEraserTrail\ntransparent\n\nTree \ngray\n.0000.\n000000\n000000\n000000\n000000\n.0000.\n\nLineL A\ndarkgray\n......\n......\n000...\n000...\n......\n......\n\nLineR D\ndarkgray\n......\n......\n...000\n...000\n......\n......\n\nLineU Z\ndarkgray\n..00..\n..00..\n..00..\n......\n......\n......\n\nLineD S\ndarkgray\n......\n......\n......\n..00..\n..00..\n..00..\n\nDot\n#ffbbbb\n......\n......\n..00..\n..00..\n......\n......\n\nZero\nred\n.000..\n.0.0..\n.0.0..\n.0.0..\n.000..\n......\n\nOne\nred\n..0...\n.00...\n..0...\n..0...\n.000..\n......\n\nTwo\nred\n.000..\n...0..\n.000..\n.0....\n.000..\n......\n\nThree\nred\n.000..\n...0..\n..00..\n...0..\n.000..\n......\n\nFour\nred\n.0.0..\n.0.0..\n.000..\n...0..\n...0..\n......\n\nFive\nred\n.000..\n.0....\n.000..\n...0..\n.000..\n......\n\nSix\nred\n.000..\n.0....\n.000..\n.0.0..\n.000..\n......\n\nZeroCount\ntransparent\n\nOneCount\ntransparent\n\nTwoCount\ntransparent\n\nThreeCount\ntransparent\n\nFourCount\ntransparent\n\nFiveCount\ntransparent\n\nSixCount\ntransparent\n\nExcessCount\ntransparent\n\nDownChecker\nlightred\n......\n......\n......\n......\n......\n000000\n\nRightChecker\nlightred\n.....0\n.....0\n.....0\n.....0\n.....0\n.....0\n\nValidHint\nyellow\n\nError\nRed\n0....0\n.0..0.\n..00..\n..00..\n.0..0.\n0....0\n\nDownCrawler\ntransparent\n\nRightCrawler\ntransparent\n\nInit\ntransparent\n\nWinMarker\n#004400\n......\n....0.\n...0..\n0.0...\n.0....\n......\n\nWipeInitialLines\ntransparent\n\nLineCrawler copy:Background\n#eeeeee #ffffff\n\nCrawledTile copy:Background\n#eeeeee #ffffff\n\nEndOfRoot\nWhite\n0.0.0.\n.0.0.0\n0.0.0.\n.0.0.0\n0.0.0.\n.0.0.0\n\n=======\nLEGEND\n=======\n\nHorLine = LineL or LineR\nVerLine = LineU or LineD\nLine = HorLine or VerLine\n\nNumber = Zero or One or Two or Three or Four or Five or Six\nCounters = ZeroCount or OneCount or TwoCount or ThreeCount or FourCount or FiveCount or SixCount or ExcessCount\n\nCheckers = DownChecker or RightChecker\nCrawlers = RightCrawler or DownCrawler\n\nSprouters = Tree or EndOfRoot\nValidation = LineCrawler or CrawledTile\n\n/ = RightChecker and Undrawable\n\\ = DownChecker and Undrawable\nP = WipeInitialLines and Undrawable\n\n| = LineU and LineD\n- = LineL and LineR\nJ = LineU and LineL\nL = LineU and LineR\n? = LineD and LineL\nF = LineD and LineR\nB = Tree and LineL and LineR and LineD and Undrawable\n\nG = EndOfRoot and LineL and Undrawable\nN = EndOfRoot and LineR and Undrawable\nM = EndOfRoot and LineU and Undrawable\nV = EndOfRoot and LineD and Undrawable\nQ = EndOfRoot and LineL and LineR and Undrawable\nW = EndOfRoot and LineU and LineD and Undrawable\n\n=======\nSOUNDS\n=======\n\nsfx0 63127107 (Cursor placed)\nsfx1 59001707 (Eraser placed)\nsfx2 63689304 (Line drawn)\nsfx3 34279704 (Erasing)\nendlevel 14297108 (Win!)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nUndrawable\n\nLineCrawler\nCrawledTile\n\nTree\nLineL\nLineR\nLineU\nLineD\nDot\nPlayer\n\nEndOfRoot\n\nValidHint\nCheckers\nNumber\n\nCounters\nRightCrawler\nDownCrawler\n\nCursor\nTrail\nEraserCursor\nEraserTrail\n\nClick\nDrag\nEraserClick\nEraserDrag\nInit\nError\nWinMarker\nWipeInitialLines\n\n======\nRULES\n======\n\n(Win?)\n[WinMarker] -> [WinMarker] win (Whoo!)\n\n(First turn?)\nrandom [Background] -> [Background Init]\n[Init] [Cursor] -> [] [Cursor]\n[Init] [EraserCursor] -> [] [EraserCursor]\n\n(Prepare input)\n[Click] -> [Click] sfx0\n[Click] [Cursor] -> [Click] []\n[Click] [Trail] -> [Click] []\n[Click] [EraserCursor] -> [Click] []\n[Click] [EraserTrail] -> [Click] []\n\n[EraserClick] -> [EraserClick] sfx1\n[EraserClick] [EraserCursor] -> [EraserClick] []\n[EraserClick] [EraserTrail] -> [EraserClick] []\n[EraserClick] [Cursor] -> [EraserClick] []\n[EraserClick] [Trail] -> [EraserClick] []\n\n(Drawing)\n[Click] -> [Cursor Trail] sfx0 nosave\n[Cursor] [Trail | Drag] -> [> Cursor ] [ | Trail]\n\nleft [left Cursor no Undrawable no LineL | no Undrawable no LineR ] -> [left Cursor LineL | LineR] sfx2\nright [right Cursor no Undrawable no LineR | no Undrawable no LineL] -> [right Cursor LineR | LineL] sfx2\n\nup [up Cursor no Undrawable no LineU | no Undrawable no LineD ] -> [up Cursor LineU | LineD] sfx2\ndown [down Cursor no Undrawable no LineD | no Undrawable no LineU ] -> [down Cursor LineD | LineU] sfx2\n\n(Erasing)\n[EraserClick] -> [EraserCursor EraserTrail] sfx0 nosave\n[EraserCursor] [EraserTrail | EraserDrag] -> [> EraserCursor ] [ | EraserTrail]\n\nleft [left EraserCursor no Undrawable LineL | no Undrawable LineR ] -> [left EraserCursor | ] sfx3\nright [right EraserCursor no Undrawable LineR | no Undrawable LineL ] -> [right EraserCursor | ] sfx3\n\nup [up EraserCursor no Undrawable LineU | no Undrawable LineD ] -> [up EraserCursor | ] sfx3\ndown [down EraserCursor no Undrawable LineD | no Undrawable LineU] -> [down EraserCursor | ] sfx3\n\n(Cleanup)\n[Drag] -> []\n[EraserDrag] -> []\n[Error] -> []\n\n(Mark 90 degree corners and splits)\n[Dot] -> []\n\n[LineL LineU LineD no Tree] -> [LineL LineU LineD Error]\n[LineL LineR LineD no Tree] -> [LineL LineR LineD Error]\n[LineL LineR LineU no Tree] -> [LineL LineR LineU Error]\n[LineU LineD LineR no Tree] -> [LineU LineD LineR Error]\n\n[HorLine VerLine no Error] -> [HorLine VerLine Dot]\n\n(Counting)\n[ValidHint] -> []\n[Counters] -> []\n\n[RightChecker] -> [RightChecker RightCrawler]\n[DownChecker] -> [DownChecker DownCrawler]\n\nright [RightCrawler | ] -> [ | RightCrawler]\n+ down [DownCrawler | ] -> [ | DownCrawler]\n+ right [Checkers | ... | RightCrawler Dot] -> [action Checkers | ... | RightCrawler Dot]\n+ down [Checkers | ... | DownCrawler Dot] -> [action Checkers | ... | DownCrawler Dot]\n+ [action Checkers no Counters] -> [stationary Checkers OneCount]\n+ [action Checkers OneCount] -> [stationary Checkers TwoCount]\n+ [action Checkers TwoCount] -> [stationary Checkers ThreeCount]\n+ [action Checkers ThreeCount] -> [stationary Checkers FourCount]\n+ [action Checkers FourCount] -> [stationary Checkers FiveCount]\n+ [action Checkers FiveCount] -> [stationary Checkers SixCount]\n+ [action Checkers SixCount] -> [stationary Checkers ExcessCount]\n+ [action Checkers ExcessCount] -> [stationary Checkers ExcessCount]\n\n[Crawlers] -> []\n\n[Zero no Counters no ValidHint] -> [Zero ValidHint]\n[One OneCount no ValidHint] -> [One OneCount ValidHint]\n[Two TwoCount no ValidHint] -> [Two TwoCount ValidHint]\n[Three ThreeCount no ValidHint] -> [Three ThreeCount ValidHint]\n[Four FourCount no ValidHint] -> [Four FourCount ValidHint]\n[Five FiveCount no ValidHint] -> [Five FiveCount ValidHint]\n[Six SixCount no ValidHint] -> [Six SixCount ValidHint]\n\n(VALIDATION)\nrandom [WipeInitialLines] -> [WipeInitialLines WinMarker]\n[WinMarker] [Error] -> [] [Error]\n[WinMarker] [Init] -> [] [Init]\n\n[CrawledTile] -> []\n[LineCrawler] -> []\n\nright [WinMarker] [Tree LineR | ] -> [WinMarker] [Tree LineR | LineCrawler]\nleft [WinMarker] [Tree LineL | ] -> [WinMarker] [Tree LineL | LineCrawler]\ndown [WinMarker] [Tree LineD | ] -> [WinMarker] [Tree LineD | LineCrawler]\nup [WinMarker] [Tree LineU | ] -> [WinMarker] [Tree LineU | LineCrawler]\n\ndown [LineCrawler LineD | no CrawledTile no Tree] -> [CrawledTile LineD | LineCrawler]\n+ up [LineCrawler LineU | no CrawledTile no Tree] -> [CrawledTile LineU | LineCrawler]\n+ left [LineCrawler LineL | no CrawledTile no Tree] -> [CrawledTile LineL | LineCrawler]\n+ right [LineCrawler LineR | no CrawledTile no Tree] -> [CrawledTile LineR | LineCrawler]\n\n(Is there only one line object on the tiles the linecrawlers end on?)\n[WinMarker] [Tree] [LineCrawler LineL LineU] -> [] [Tree Error] [LineCrawler LineL LineU]\n[WinMarker] [Tree] [LineCrawler LineR LineU] -> [] [Tree Error] [LineCrawler LineR LineU]\n[WinMarker] [Tree] [LineCrawler LineR LineD] -> [] [Tree Error] [LineCrawler LineR LineD]\n[WinMarker] [Tree] [LineCrawler LineL LineD] -> [] [Tree Error] [LineCrawler LineL LineD]\n[WinMarker] [Tree] [LineCrawler LineL LineR] -> [] [Tree Error] [LineCrawler LineL LineR]\n[WinMarker] [Tree] [LineCrawler LineU LineD] -> [] [Tree Error] [LineCrawler LineU LineD]\n\n[WinMarker] [Background no Undrawable no Line] -> [] [Background]\n[WinMarker] [Background no Undrawable no Validation] -> [] [Background]\n[WinMarker] [Number no ValidHint] -> [] [Number]\n\n(Finish initialization)\n[Init] [Checkers no Number no Counters] -> [Init] [Checkers Zero]\n[Init] [Checkers no Number OneCount] -> [Init] [Checkers One]\n[Init] [Checkers no Number TwoCount] -> [Init] [Checkers Two]\n[Init] [Checkers no Number ThreeCount] -> [Init] [Checkers Three]\n[Init] [Checkers no Number FourCount] -> [Init] [Checkers Four]\n[Init] [Checkers no Number FiveCount] -> [Init] [Checkers Five]\n[Init] [Checkers no Number SixCount] -> [Init] [Checkers Six]\n\n[Init] [WipeInitialLines] [Line no Sprouters] -> [Init] [WipeInitialLines] []\n[Init] [Dot] -> [Init] []\n[Init] [Validation] -> [Init] []\n[Init] [ValidHint] -> [Init] []\n\n(Generate lines out of trees)\nright [Sprouters LineR | ] -> [Sprouters LineR | LineL]\nleft [Sprouters LineL | ] -> [Sprouters LineL | LineR]\ndown [Sprouters LineD | ] -> [Sprouters LineD | LineU]\nup [Sprouters LineU | ] -> [Sprouters LineU | LineD]\n\n[Init] -> []\n\n==============\nWINCONDITIONS\n==============\n(Handled via rules)\n\n=======\nLEVELS\n=======\n\nsection Explanation\nmessage 1/4: Round circles are trees. Roots can branch from this point. You can't add roots here yourself.\nmessage 2/4: Place one root (drawn as lines) on each tile. Roots can either be straight or a 90 degree turn. All roots must connect to the tree. (Three- or four-way crossings are not allowed.)\nmessage Controls: Drag left mouse button to place lines, drag right mouse button to remove them. [Z] to undo, [R] to restart.\n\nsection Tutorial 1\npxxxxxx\nx..b..x\nx.x.x.x\nx.x.x.x\nx.x.x.x\nx.x.x.x\nxxxxxxx\n\nsection Tutorial 2\nmessage 3/4: All roots must finish with a dead end: they cannot connect to other roots. (Sometimes, roots may already placed.)\nMessage 4/4: Rows or columns with a number must contain exactly that amount of 90 degree turns, marked with the red dots. (The tree also counts as a dot.)\nxxxxxxxx\nxxxxxxxx\nxxp\\\\\\xx\nxx/fbaxx\nxx/|l?xx\nxx/lazxx\nxxxxxxxx\nxxxxxxxx\n\nmessage Explanation complete, good luck with the rest of the game!\n\nsection [3x4] Bonsai\nmessage 1/10: Bonsai\nxxxxxxx\nxP\\\\\\\\x\nx/sfb?x\nx/lj||x\nx/d-jzx\nxxxxxxx\n\nsection [4x4] Conifer\nmessage 2/10: Conifer\nxxxxxxx\nxp\\\\\\\\x\nx/fb-?x\nx/|l?|x\nx/l?||x\nx/djzzx\nxxxxxxx\n\nsection [4x4] Pine\nmessage 3/10: Pine\nxxxxxxx\nxp\\\\\\\\x\nx/fb-?x\nx/||s|x\nx/||ljx\nx/zl-ax\nxxxxxxx\n\nsection [5x5] Cypress\nmessage 4/10: Cypress\nxxxxxxxx\nxp\\\\\\\\\\x\nx/n---?x\nx/f--?|x\nx/|fbj|x\nx/|zl-jx\nx/l---gx\nxxxxxxxx\n\nsection [5x5] Cedar\nmessage 5/10: Cedar\nxxxxxxxx\nxp\\\\\\\\\\x\nx/f---?x\nx/|f-a|x\nx/|lb-jx\nx/|djf?x\nx/l--jmx\nxxxxxxxx\n\nsection [5x5] Redwood\nmessage 6/10: Redwood\nxxxxxxxx\nxp\\\\\\\\\\x\nx/f-b-?x\nx/|fjv|x\nx/||fj|x\nx/|ljs|x\nx/l-aljx\nxxxxxxxx\n\nsection [5x5] Sequoia\nmessage 7/10: Sequoia\nxxxxxxxx\nxp\\\\\\\\\\x\nx/f--?sx\nx/|fam|x\nx/|l-?|x\nx/|fbj|x\nx/ljl-jx\nxxxxxxxx\n\nsection [5x5] Maple\nmessage 8/10: Maple\nxxxxxxxx\nxp\\\\\\\\\\x\nx/f-b-?x\nx/|fjfjx\nx/||slgx\nx/||l-?x\nx/zl--jx\nxxxxxxxx\n\nsection [5x6] Alder\nmessage 9/10: Alder\nxxxxxxxx\nxp\\\\\\\\\\x\nx/d---?x\nx/d--?|x\nx/d-?||x\nx/fbj||x\nx/|l-j|x\nx/l---jx\nxxxxxxxx\n\nsection [6x6] Aralia\nmessage 10/10: Aralia\nxxxxxxxxx\nxP\\\\\\\\\\\\x\nx/fb-?f?x\nx/||vlj|x\nx/|ljf?|x\nx/|f-j||x\nx/ljf-j|x\nx/n-jn-jx\nxxxxxxxxx\n\nmessage You've beaten the last normal puzzle, great job!\n\nsection Credits\n\nmessage Game by Tom Hermans for Ludum Dare 48. Kitchen Sink font by Retroshark and Polyducks. Thanks for playing!\n\nsection [6x6] Oleander\nmessage Extra 1/4: Oleander\nxxxxxxxxx\nxp\\\\\\\\\\\\x\nx/f----?x\nx/l-gf-jx\nx/fgfjf?x\nx/|fjnj|x\nx/|l-b?|x\nx/l--jljx\nxxxxxxxxx\n\nsection [7x5] Shrub\nmessage Extra 2/4: Shrub\nxxxxxxxxxx\nxp\\\\\\\\\\\\\\x\nx/f-----?x\nx/|f---?|x\nx/||fb?||x\nx/|lj|zz|x\nx/l-gl--jx\nxxxxxxxxxx\n\nsection [7x6] Oak\nmessage Extra 3/4: Oak\nxxxxxxxxxx\nxp\\\\\\\\\\\\\\x\nx/f?f---?x\nx/|ljf?v|x\nx/|f-jlj|x\nx/||fb--jx\nx/|lj|n-?x\nx/l-gl--jx\nxxxxxxxxxx\n\nsection [7x7] Yggdrasil\nmessage Extra 4/4: Yggdrasil\nxxxxxxxxxx\nxp\\\\\\\\\\\\\\x\nx/f-----?x\nx/|vf?f?|x\nx/|ljlj||x\nx/l--b-j|x\nx/f-?|n?|x\nx/|vwl-j|x\nx/ljl---jx\nxxxxxxxxxx\n\nmessage You've beaten the final extra puzzle, congrats!\n",["line 305 : You named an object \"|\", but this is a keyword. Don't do that!","line 316 : You named an object \"V\", but this is a keyword. Don't do that!"],0] + ], + + +[ + "Sokotron", + ["title Sokotron\nauthor Tom H.\nhomepage www.auroriax.com\n\nmouse_left Click\nmouse_right RClick\n\nrun_rules_on_level_start\n\nagain_interval .1\nrealtime_interval .5\n\nsprite_size 10\n\nbackground_color #151244\ntext_color #f9cb60 \n\n========\nOBJECTS\n========\n\nbackground .\n#350828\n\nplayer\ngreen\n\nwall #\n#680703\n\nRobot1Start\n#7f6962 transparent\n...0000...\n..001100..\n..011100..\n..001100..\n0000110000\n0000110000\n0.011110.0\n..000000..\n..00..00..\n..00..00..\n\nRobot1Down\n#922a95 #60117f\n...0000...\n..000000..\n..011110..\n..011110..\n0000000000\n0000000000\n0.000000.0\n..000000..\n..00..00..\n..00..00..\n\nRobot1Left\n#922a95 #60117f\n..00000...\n..000000..\n..111000..\n..111000..\n0000000000\n.000000000\n..000000..\n..000000..\n..00..00..\n.000.000..\n\nRobot1Up\n#922a95 #60117f\n..000000..\n..000000..\n..000000..\n0.000000.0\n0000000000\n0000000000\n..001100..\n..000000..\n..00..00..\n..00..00..\n\nRobot1Right\n#922a95 #60117f\n...00000..\n..000000..\n..000111..\n..000111..\n0000000000\n000000000.\n..000000..\n..000000..\n..00..00..\n..000.000.\n\nRobot2Start\n#7f6962 transparent\n...0000...\n..001100..\n..011110..\n..000110..\n0000110000\n0001100000\n0.011110.0\n..000000..\n..00..00..\n..00..00..\n\n\nRobot2Down copy:Robot1Down\n#922a95 #f9960f\n\nRobot2Left copy:Robot1Left\n#922a95 #f9960f\n\nRobot2Up copy:Robot1Up\n#922a95 #f9960f\n\nRobot2Right copy:Robot1Right\n#922a95 #f9960f\n\nControl1\n#7f6962\n..........\n....00....\n...000....\n..0000....\n....00....\n....00....\n....00....\n....00....\n..000000..\n..........\n\nControl2\n#7f6962\n..........\n...0000...\n..00..00..\n......00..\n.....000..\n....000...\n...000....\n..000.....\n..000000..\n..........\n\nCommandPanelR\ntransparent #f9960f\n0000000000\n0000000000\n0000011000\n0000011100\n0111111110\n0111111110\n0000011100\n0000011000\n0000000000\n0000000000\n\nCommandPanelU\ntransparent #f9960f\n0000000000\n0000110000\n0001111000\n0011111100\n0011111100\n0000110000\n0000110000\n0000110000\n0000110000\n0000000000\n\nCommandPanelL\ntransparent #f9960f\n0000000000\n0000000000\n0001100000\n0011100000\n0111111110\n0111111110\n0011100000\n0001100000\n0000000000\n0000000000\n\nCommandPanelD\ntransparent #f9960f\n0000000000\n0000110000\n0000110000\n0000110000\n0000110000\n0011111100\n0011111100\n0001111000\n0000110000\n0000000000\nYoyo\n#7f6962\n..........\n..........\n....00....\n...000....\n..0000....\n..0000....\n...000....\n....00....\n..........\n..........\n\nInit\ntransparent\n\nClick\ntransparent\n\nRClick\ntransparent\n\nPlayIdle\n#be7dbc #7f6962 \n..0000....\n..00000...\n..000000..\n..000000..\n..000000..\n..000000..\n..000001..\n..000011..\n..11111...\n..1111....\n\nPlayActive\n#f9960f\n..........\n..........\n..0000....\n..00000...\n..000000..\n..000000..\n..000000..\n..000000..\n..00000...\n..0000....\n\n\nActionToken\npink\n\nBreakpoint1R\n#922a95\n00......00\n00......00\n........00\n........00\n........00\n........00\n........00\n........00\n00......00\n00......00\n\nBreakpoint1L\n#922a95\n00......00\n00......00\n00........\n00........\n00........\n00........\n00........\n00........\n00......00\n00......00\n\nBreakpoint2R copy:Breakpoint1R\n#922a95\n\nBreakpoint2L copy:Breakpoint1L\n#922a95\n\nCrateStart O\n#922a95 #60117f\n..........\n.0......0.\n..........\n..1.1..1..\n..1.11.1..\n..1.1.11..\n..1.1..1..\n..........\n.0......0.\n..........\n\nCrate\n#f9cb60\n..000000..\n.00000000.\n00......00\n00......00\n00......00\n00......00\n00......00\n00......00\n.00000000.\n..000000..\n\nGoal G\n#922a95 #60117f\n.00000000.\n0........0\n0.111.1.10\n0.1.1.1.10\n0.111.1110\n0........0\n0...111..0\n0....1...0\n0....1...0\n.00000000.\n\nCmdBlocker\n#7f6962 \n..........\n.00....00.\n.000..000.\n..000000..\n...0000...\n...0000...\n..000000..\n.000..000.\n.00....00.\n..........\n\nLine\n#350828\n...0000...\n...0000...\n....00....\n....00....\n....00....\n....00....\n....00....\n....00....\n....00....\n....00....\n\nLineBot\n#350828\n....00....\n....00....\n....00....\n....00....\n....00....\n....00....\n....00....\n....00....\n..........\n..........\n\nNegativeFeedback copy:PlayIdle\n#f9960f #be7dbc\n\nRobot1MoveCheck\ntransparent\n\nRobot2MoveCheck\ntransparent\n\n=======\nLEGEND\n=======\n\nRobot1 = Robot1Down or Robot1Left or Robot1Up or Robot1Right\nRobot2 = Robot2Down or Robot2Left or Robot2Up or Robot2Right\n\nRobots = Robot1 or Robot2\n\nCommandPanel = CommandPanelR or CommandPanelU or CommandPanelL or CommandPanelD\n\nQ = Control1 and wall\nI = Control2 and wall\nY = Yoyo and wall\n\nControlOrigin = Control1 or Control2\n\nRightBreakpoint = Breakpoint1R or Breakpoint2R\nLeftBreakpoint = Breakpoint1L or Breakpoint2L\n\nBreakpoint1 = Breakpoint1R or Breakpoint1L\nBreakpoint2 = Breakpoint2R or Breakpoint2L\n\nBreakpoint = Breakpoint1 or Breakpoint2\n\n1 = Robot1Start\n2 = Robot2Start\n\nBotStart = Robot1Start or Robot2Start\n\nRobotStart = Robot1Start or Robot2Start\n\nP = PlayIdle and wall and Init\n\nW = Wall and CommandPanelU\nA = Wall and CommandPanelL\nS = Wall and CommandPanelD\nD = Wall and CommandPanelR\n\nL = Line and wall\nB = LineBot and wall\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n(Mandatory)\nbackground\nplayer\n\n(Markers)\nInit\nActionToken\nClick, RClick\nRobot1MoveCheck, Robot2MoveCheck\n\n(Objects)\nRobotStart, CrateStart, Goal\nRobots, Wall, Crate\n\n(Dashboard)\nPlayIdle, PlayActive\nControlOrigin, CommandPanel, Yoyo\nBreakpoint\nCmdBlocker\n\n(Decoration)\nLine, LineBot\nNegativeFeedback\n\n======\nRULES\n======\n\n(Clean up negative feedback)\n[NegativeFeedback] -> []\n\n(Toggle design > execute)\n[Click PlayIdle] -> [PlayActive ActionToken] (QQQ Realtime toggle stuff?)\n\n(Start up execute mode if activated)\nleft [ActionToken] [Control1 | ] -> [ActionToken] [Control1 | Breakpoint1R]\nleft [ActionToken] [Control2 | ] -> [ActionToken] [Control2 | Breakpoint2R]\n[ActionToken] [Robot1Start] -> [ActionToken] [Robot1Start Robot1Down]\n[ActionToken] [Robot2Start] -> [ActionToken] [Robot2Start Robot2Down]\n[ActionToken] [CrateStart] -> [ActionToken] [CrateStart Crate]\n\n[ActionToken] -> []\n\n(Toggle execute > design)\n[Click PlayActive] -> [PlayIdle ActionToken]\n\n[ActionToken] [Breakpoint1] -> [ActionToken] []\n[ActionToken] [Breakpoint2] -> [ActionToken] []\n[ActionToken] [Robot1] -> [ActionToken] []\n[ActionToken] [Robot2] -> [ActionToken] []\n[ActionToken] [Crate] -> [ActionToken] []\n[ActionToken] [CmdBlocker] -> [ActionToken] []\n\n[ActionToken] -> []\n\n(Design mode, change path)\nrandom [background] -> [background ActionToken]\n\n[Click CommandPanelU] [ActionToken] [PlayIdle] -> [CommandPanelL] [] [PlayIdle]\n[Click CommandPanelL] [ActionToken] [PlayIdle] -> [CommandPanelD] [] [PlayIdle]\n[Click CommandPanelD] [ActionToken] [PlayIdle] -> [CommandPanelR] [] [PlayIdle]\n[Click CommandPanelR] [ActionToken] [PlayIdle] -> [CommandPanelU] [] [PlayIdle]\n\n[RClick CommandPanelU] [ActionToken] [PlayIdle] -> [CommandPanelR] [] [PlayIdle]\n[RClick CommandPanelR] [ActionToken] [PlayIdle] -> [CommandPanelD] [] [PlayIdle]\n[RClick CommandPanelD] [ActionToken] [PlayIdle] -> [CommandPanelL] [] [PlayIdle]\n[RClick CommandPanelL] [ActionToken] [PlayIdle] -> [CommandPanelU] [] [PlayIdle]\n\n[ActionToken] -> []\n\n(Mouse Cleanup)\n[Click] [PlayIdle] -> [] [PlayIdle NegativeFeedback] again\n[RClick] -> []\n\n(Execute mode, move the breakpoint!)\n[RightBreakpoint] -> [right RightBreakpoint]\n[LeftBreakpoint] -> [left LeftBreakpoint]\n\n(Execute mode, move the bots)\n[Breakpoint1R CommandPanelR] [Robot1] -> [Breakpoint1R CommandPanelR] [right Robot1Right]\n[Breakpoint1R CommandPanelD] [Robot1] -> [Breakpoint1R CommandPanelD] [down Robot1Down]\n[Breakpoint1R CommandPanelL] [Robot1] -> [Breakpoint1R CommandPanelL] [left Robot1Left]\n[Breakpoint1R CommandPanelU] [Robot1] -> [Breakpoint1R CommandPanelU] [up Robot1Up]\n\n[Breakpoint2R CommandPanelR] [Robot2] -> [Breakpoint2R CommandPanelR] [right Robot2Right]\n[Breakpoint2R CommandPanelD] [Robot2] -> [Breakpoint2R CommandPanelD] [down Robot2Down]\n[Breakpoint2R CommandPanelL] [Robot2] -> [Breakpoint2R CommandPanelL] [left Robot2Left]\n[Breakpoint2R CommandPanelU] [Robot2] -> [Breakpoint2R CommandPanelU] [up Robot2Up]\n\n(Execute mode, Walking back stack, reverse movement)\n[Breakpoint1L CommandPanelR no CmdBlocker] [Robot1] -> [Breakpoint1L CommandPanelR] [left Robot1Right]\n[Breakpoint1L CommandPanelD no CmdBlocker] [Robot1] -> [Breakpoint1L CommandPanelD] [up Robot1Down]\n[Breakpoint1L CommandPanelL no CmdBlocker] [Robot1] -> [Breakpoint1L CommandPanelL] [right Robot1Left]\n[Breakpoint1L CommandPanelU no CmdBlocker] [Robot1] -> [Breakpoint1L CommandPanelU] [down Robot1Up]\n\n[Breakpoint2L CommandPanelR no CmdBlocker] [Robot2] -> [Breakpoint2L CommandPanelR] [left Robot2Right]\n[Breakpoint2L CommandPanelD no CmdBlocker] [Robot2] -> [Breakpoint2L CommandPanelD] [up Robot2Down]\n[Breakpoint2L CommandPanelL no CmdBlocker] [Robot2] -> [Breakpoint2L CommandPanelL] [right Robot2Left]\n[Breakpoint2L CommandPanelU no CmdBlocker] [Robot2] -> [Breakpoint2L CommandPanelU] [down Robot2Up]\n\n(Execute, cleanup blockers)\n[LeftBreakpoint CmdBlocker] -> [LeftBreakpoint]\n\n(Execute mode, Robots push crates)\n[> Robots | stationary Crate] -> [> Robots | > Crate]\n([> Crate | Crate] -> [> Crate | > Crate])\n([> Crate | BotStart] -> [Crate | BotStart] QQQ Really need this? )\n\n(Execute, Mark robots current position)\n[Robot1] -> [Robot1 Robot1MoveCheck]\n[Robot2] -> [Robot2 Robot2MoveCheck]\n\n(MOVEMENT HAPPENS HERE)\n\n(Execute, make sure if movement is blocked when going to the right gets skipped when going back)\nlate left [Robot1 Robot1MoveCheck] [Breakpoint1R | CommandPanel] -> [Robot1] [Breakpoint1R | CmdBlocker CommandPanel]\nlate left [Robot2 Robot2MoveCheck] [Breakpoint2R | CommandPanel] -> [Robot2] [Breakpoint2R | CmdBlocker CommandPanel]\n\nlate [Robot1MoveCheck] -> []\nlate [Robot2MoveCheck] -> []\n\n(Execute mode, Done moving? Flip breakpoint if at line end. Also make sure robots always end up as their starting position after completing all commands to catch any edge cases)\nlate left [Breakpoint1R Yoyo | ] -> [Yoyo | Breakpoint1L]\nlate right [Breakpoint1L ControlOrigin | ] [Robot1] [Robot1Start] -> [ControlOrigin | Breakpoint1R ] [] [Robot1Start Robot1]\n\nlate left [Breakpoint2R Yoyo | ] -> [Yoyo | Breakpoint2L]\nlate right [Breakpoint2L ControlOrigin | ] [Robot2] [Robot2Start] -> [ControlOrigin | Breakpoint2R ] [] [Robot2Start Robot2]\n\n==============\nWINCONDITIONS\n==============\n\nSome Crate\nAll Crate on Goal\n\n=======\nLEVELS\n=======\n\n....g......\n....o..g...\n...1..oo...\n.....2.....\n....g......\n#########l#\n#qdddddy#b#\n#idddddy#p#\n###########\n\nmessage Congrats!\n\n(Solution:\n\n#qsdwwwy###\n#iddwaay#p#\n\n)\n",["[PS+] Mouse object 'click' (for input 'mouse_left') could overlap with other objects on the same layer. Consider moving the object to its own layer.","[PS+] Mouse object 'rclick' (for input 'mouse_right') could overlap with other objects on the same layer. Consider moving the object to its own layer."],0] + ], + + +[ + "Magiciban v1", + ["title Magiciban v1\nauthor Tom Hermans [@Auroriax]\ntween_length 0.05\ntext_controls Arrows/WASD: Move Space: Select\\nZ: Undo R: Reset Esc: Lvl Select\\n For the Thinky Puzzle Jam 2\n\nbackground_color #2B1634\ntext_color #F5D1B3\n\nsprite_size 10\n\nnoaction\nrun_rules_on_level_start\n\nlevel_select\nlevel_select_lock\nlevel_select_unlocked_rollover 5\n\n(\nCome and see the great Sokoban magician Spades! As if by magic they shift the stage and move the rabbits below the floating hats to the audience's delight! Prepare for a jam-packed show that you'll never forget. \n\nThis is short Sokoban variant that is loosely based on the 15 Puzzle and Rosden's Sliding Ground. It was made for the Thinky Puzzle Jam 2.\n)\n\n(\nCOLOR SCHEMES\nhttps://www.schemecolor.com/magical-place.php\nhttps://www.schemecolor.com/magic-is-magic.php\nhttps://www.schemecolor.com/ethereal.php\n)\n\n========\nOBJECTS\n========\n\nbackground .\n#2B1634\n\nplayer white\nblack #F5D1B3 #F2EAF5\n..........\n..........\n....00....\n...0000...\n..010100..\n.00000200.\n.00022000.\n..000000..\n....00....\n...0000...\n\nTile t\n#C7305D transparent\n1000000001\n0000000000\n0000000000\n0000000000\n0000000000\n0000000000\n0000000000\n0000000000\n0000000000\n1000000001\n\nTileDeco1\n#E2A3B440\n..........\n..........\n......0...\n......00..\n..........\n..........\n.0........\n00........\n..........\n..........\n\nTileDeco2\n#E2A3B440\n..00......\n...0......\n..........\n..........\n..........\n..........\n......00..\n......0...\n..........\n..........\n\nAntiTile ,\n#3D2D5F\n..000000..\n.00000000.\n00......00\n00..00..00\n00.0000.00\n00.0000.00\n00..00..00\n00......00\n.00000000.\n..000000..\n\nAntiTileHor\n#3D2D5F\n..........\n..........\n0000000000\n0000000000\n...0..0...\n..0....0..\n0000000000\n0000000000\n..........\n..........\n\nAntiTileVer\n#3D2D5F\n..00..00..\n..00..00..\n..000.00..\n..00.000..\n..00..00..\n..00..00..\n..00.000..\n..000.00..\n..00..00..\n..00..00..\n\nFeedbackOrigin\ntransparent\n\nFeedbackU\n#F5D1B3 transparent\n..........\n..........\n..111111..\n...1111...\n....11....\n....00....\n...0000...\n..000000..\n..........\n..........\n\nFeedbackL\n#F5D1B3 transparent\n..........\n..........\n..1....0..\n..11..00..\n..111000..\n..111000..\n..11..00..\n..1....0..\n..........\n..........\n\nFeedbackR copy:FeedbackL\ntransparent #F5D1B3\n\nFeedbackD copy:FeedbackU\ntransparent #F5D1B3\n\nNormalRabbit\n#F2EAF5 black\n..........\n..........\n..00.00...\n..00000...\n..01010...\n..01010...\n..00000...\n..001000..\n..000000..\n...0..0...\n\nHappyRabbit\n#F2EAF5 black\n..........\n..........\n..00.00...\n..00000...\n..01010...\n..00000...\n..01010...\n..001000..\n..000000..\n...0..0...\n\nSurprisedRabbit\n#F2EAF5 black\n..........\n..00.00...\n..00000...\n..01010...\n..01010...\n..000000..\n..001000..\n..00000...\n...0..0...\n..........\n\nTarget\n#F5D1B3 #6752AF\n...111....\n...111....\n...000....\n..11111...\n..........\n..........\n..........\n..........\n..........\n..........\n\nTargetShadow copy:NormalRabbit\n#2B163440 #2B163460\n\nTemp\ntransparent\n=======\nLEGEND\n=======\np = player and tile\nb = NormalRabbit and tile\no = Target and TargetShadow and tile\n- = Target and TargetShadow\nv = Target and TargetShadow and NormalRabbit and Tile\n\nRabbit = NormalRabbit or HappyRabbit or SurprisedRabbit\nMustStayOnTile = Player or Rabbit\nFeedback = FeedbackU or FeedbackL or FeedbackR or FeedbackD\nAntiTiles = AntiTile or AntiTileHor or AntiTileVer\nDeco = TileDeco1 or TileDeco2\nShiftable = Player or Tile or Rabbit or Deco\n\n=======\nSOUNDS\n=======\n\nsfx1 4527907 (SHIFT!)\nsfx2 48808307 (Push!)\n\nplayer move horizontal 6491307\nplayer move vertical 6368107\n\nHappyRabbit Create 75743100\n\ncancel 94782507\n\nendlevel 16003308\n\n================\nCOLLISIONLAYERS\n================\nbackground\ntile AntiTiles\nDeco\n\nTargetShadow\nplayer Rabbit\n\nTarget\n\nFeedbackOrigin\nFeedback\nTemp\n\n======\nRULES\n======\n(Cleanup)\n[Feedback] -> []\n[FeedbackOrigin] -> []\n\n(Generate decoration for tiles)\nhorizontal [AntiTiles | AntiTile | AntiTiles] -> [AntiTiles | AntiTileHor | AntiTiles]\nvertical [AntiTiles | AntiTile | AntiTiles] -> [AntiTiles | AntiTileVer | AntiTiles]\n[Tile no Deco] -> [Tile random Deco]\n\n(Push boxes)\n[> Player | stationary Rabbit] -> [> Player | > Rabbit] sfx2\n\n(Blocking illegal movement)\n[> Player] [> Rabbit | no Tile] -> [Player] [Rabbit | ] cancel\n[> Player | AntiTiles] -> [Player | AntiTiles] cancel\n\n(Shifting)\n[> Player Tile | no tile no antitile] -> [> Player > Tile | ] sfx1\n[< tile | stationary tile] -> [< tile | < tile]\n[> tile stationary Shiftable] -> [> tile > Shiftable]\n\n(Create hints)\n[> Player stationary Tile | ] -> [> Player Tile | FeedbackOrigin]\n[> Player > Tile | ] -> [> Player > Tile | FeedbackOrigin]\n[stationary Player] -> [Player FeedbackOrigin]\n[action Player] -> [Player FeedbackOrigin]\n\nup [FeedbackOrigin | no Tile no antitiles] -> [FeedbackOrigin | action FeedbackU]\ndown [FeedbackOrigin | no Tile no antitiles] -> [FeedbackOrigin | action FeedbackD]\nleft [FeedbackOrigin | no Tile no antitiles] -> [FeedbackOrigin | action FeedbackL]\nright [FeedbackOrigin | no Tile no antitiles] -> [FeedbackOrigin | action FeedbackR]\n\nup [no Tile | > Player | no Tile] -> [| > Player action FeedbackD |]\ndown [no Tile | > Player | no Tile] -> [| > Player action FeedbackU |]\nleft [no Tile | > Player | no Tile] -> [| > Player action FeedbackR |]\nright [no Tile | > Player | no Tile] -> [| > Player action FeedbackL |]\n\n(Rabbit emotions)\n[stationary Rabbit no Target] -> [NormalRabbit]\n[> Rabbit | Target] -> [> HappyRabbit | target]\n[> Rabbit | no Target] -> [> SurprisedRabbit | ]\n\n(Require_player_movement)\n[moving Player] -> [moving Player Temp]\nlate [Player Temp] -> cancel\nlate [Temp] -> []\n\n==============\nWINCONDITIONS\n==============\n\nall target on Rabbit\nall Rabbit on target\nsome target\n\n=======\nLEVELS\n=======\n\nsection 0:00 Opening Act\n,,,,,,,,,\n,..ttotb,\n,,,,t,,,,\n,otttbt,.\n,,,,,,t,.\n,pt.t.t,.\n,,,,,,,,.\n\nsection 0:05 Levitation\n,,,,,,\n,opt.,\n,,ttt,\n.,tbt,\n.,,,,,\n(38 steps, 105 positions explored)\n(rrddl ululr rdrud ldrul ldurr dlulu rddlu rul)\n\nsection 0:13 Zig Zag Girl\n,,,,,,\n,tttt,\n,tt.t,\n,t.,t,\n,ttop,\n,tttb,\n,,,,,,\n(25 steps, 340 positions explored)\n(uulur dulld ldrdr drllu ldrul)\n\nsection 0:22 The Houdini Escape\n.,,,,,.\n.,tbt,.\n.,tpt,.\n.,o-o,.\n.,btb,.\n.,,,,,.\n(37 steps, 2675 positions explored)\n(dluur rddll uurrd dldlu rrdul ldrur uuldu ld)\n\nsection 0:29 Metamorphosis\n,,,,,,,\n,ot.tb,\n,tt,pt,\n,.,,,.,\n,tt,tt,\n,bt.to,\n,,,,,,,\n(39 steps, 328 positions explored)\n(rddld lrurd lllul uuurr ldlur rrdrd dldll uluu)\n\nsection 0:35 Zarrow Shuffle\n,,,,,,\n,...-,\n,..b.,\n,.p..,\n,t..,,\n,,,,,.\n(23 steps, 624 positions explored)\n(luudr urrdd lurdl urudl lur)\n\nsection 0:43 Quick-Change\n,,,,,,\n,b..b,\n,.--.,\n,p--.,\n,b..b,\n,,,,,,\n(39 steps, 110 positions explored)\n(lurdr rulul dldrr lldrr urulr ddlll uurul ddrd)\n\nsection 0:51 Faster than Magic\n,,,,,,,,\n,...b,b,\n,p--v.-,\n,t..b,.,\n,,,,,,,,\n(46 steps, 6303 positions explored)\n(drrll uurrl ldrru ldurd dlurl drrur ldllu dludr rrurr d)\n\nsection 1:02 Hat Foil Trick\n,,,,,,,\n,btttt,\n,tt-,t,\n,ttptt,\n,t,-tt,\n,ttttb,\n,,,,,,,\n(50 steps, 8332 positions explored)\n(dudrd lurrd luulu urrdd lddlr urduu lluur rddll luuld rdlur)\n\nsection 1:08 Origami Illusion\n,,,,..\n,tt,..\n,bbt,.\n,.tp.,\n.,too,\n..,tt,\n..,,,,\n(78 steps, 892 positions explored)\n(rdllu druul dlrrd rudld ruldu ulurd llurd lrrdr udldr uldru ulull drrdr dlurd luulu udldr urd)\n\nsection 1:11 Bending the Spoon\n,,,,,,,\n,,,ttb,\n,,pttb,\n,ttttb,\n,o-o,,,\n,,,,,,,\n(109 steps, 685 positions explored)\n(dduru lrurd rlldl udldr uldru lrurd urrdl luldu rurrd ulldr ruldd rluur dlldl lrrur rdluu rldlu rddll rdluu rdruu lrdru lddru llld)\n\nsection 1:15 Grand Finale\n,,,,,,\n,-..-,\n,tbb.,\n,tpb.,\n,ttt-,\n,,,,,,\n(88 steps, 42139 positions explored)\n(luudd rdrru uulll ddrul ddrrr uuldu lrrul rdldr dulld ruurd ludll ruudr rulrd lurdl lurdl rrldl uludr rul)\nmessage Tadaah! You win the game! Congrats.\n\nsection Credits\nmessage Game by Tom Hermans for the Thinky Puzzle Jam 2 in 2022.\nmessage Inspired by the 15 Puzzle and Rosden's Sliding Ground.\nmessage Main color palette \"Magical Place\" by Color Man\\nhttps://www.schemecolor.com/magical-place.php\nmessage Thank you for playing!\n\nsection Encore 1\nmessage Here are some extra difficult bonus puzzles that were scrapped for the base game.\n,,,,,,,,\n,b....b,\n,.,,,,.,\n,..--..,\n,p.--..,\n,.,,,,.,\n,b....b,\n,,,,,,,,\n(103 steps, 2250 positions explored)\n(duurd rrurr uddll rulll dluud rldrr urrdr duuuu lllll ddddd rrrrr uuudd dllll luuur luurr rrrdd dulld llldd rrrrr uullr ulr)\n\nsection Encore 2\n.,,,,,,,.\n,,tt,tt,,\n,ttb,tot,\n,tbt.tpo,\n,ttb,tot,\n,,tt,tt,,\n.,,,,,,,.\n(100 steps, 690823 positions explored)\n(lllld drulu rrrdr ullll uurdl drrru rdrll lldlu lurdr rrrrl llllu urdld rrrrd lulll lrrrr drudr udlul uurdr luldr uldru)\n",["line 228 : You named an object \"V\", but this is a keyword. Don't do that!","[PS+] Using tweens in a game that also has LATE rules is currently experimental! If you change objects that moved with LATE then tweens might not play!"],1] + ], + + +[ + "Sorting of Sorts v1", + ["case_sensitive\n\ntitle Sorting of Sorts v1\nauthor Tom H.\n\nmouse_left Click\nmouse_drag Drag\nmouse_up Release\n\nsprite_size 16\n\ntween_length 0.15\n\nbackground_color #5941A9\n\nrun_rules_on_level_start\n\nlevel_select\n\ntext_controls DRAG to create conveyors/sorters\\nCLICK on sorters for settings\\nZ: Undo R: Retry ESC: Levels\n\nruntime_metadata_twiddling\n(realtime is OFF by default and ON in execution mode, to ensure tweens aren't interrupted on canceled turns... Although this is likely an engine bug.)\n\n(TODO:\n- Fix issues with undo button object, then introduce it\n- More gimmicks, e.g. number gates, non-logic splitter (just toggling between directions each time a block passes), etc.\n- X block, should not be in final output, always takes the false path for splitters.\n- design mode: undo and restart buttons. Execute mode: Pause/fast forward buttons\n)\n\n(\nhttps://coolors.co/e5d4ed-6d72c3-5941a9-514f59-1d1128\nhttps://coolors.co/gradient-palette/6d72c3-5941a9?number=7\n)\n\n========\nOBJECTS\n========\n\nbackground .\n#E5D4ED #E5D4EDEE\n1111111111111111\n1000000000000001\n1000000000000001\n1000000000000001\n1000000000000001\n1000000000000001\n1000000000000001\n1000000000000001\n1000000000000001\n1000000000000001\n1000000000000001\n1000000000000001\n1000000000000001\n1000000000000001\n1000000000000001\n1111111111111111\n\nConsole ,\n#5941A9\n\nplayer\ngreen\n\nWall /\n#6D72C3\n\nClick\ntransparent\n\nDrag\ntransparent\n\nRelease\ntransparent\n\nPrevDrag\ntransparent\n\nMouseDownFirstTurn (rename this)\ntransparent\n\nMouseSameTileClick (rename this)\ntransparent\n\nPopupMenuTop\n#635AB6 #1D1128 #635AB6 white\n................\n................\n.....2....2.....\n....22....22....\n...2202222022...\n..220022220022..\n.22003000030322.\n.23030000003002.\n.10300000030301.\n.11000000000011.\n..110011110011..\n...1101111011...\n....11....11....\n.....1....1.....\n................\n................\n\nPopupMenuTopPressed copy:PopupMenuTop\n#635AB6 #635AB6 transparent #635AB6\n\nPopupMenuLeft\n#635AB6 #1D1128 #635AB6\n................\n................\n................\n................\n................\n..222222222222..\n..222222222222..\n..000000000000..\n..000000000000..\n..111111111111..\n..111111111111..\n................\n................\n................\n................\n................\n\nPopupMenuLeftPressed copy:PopupMenuLeft\n#635AB6 #635AB6 transparent\n\nPopupMenuRight\n#635AB6 #1D1128 #635AB6\n................\n......2222......\n......2222......\n......0000......\n......0000......\n..222200002222..\n..222200002222..\n..000000000000..\n..000000000000..\n..111100001111..\n..111100001111..\n......0000......\n......0000......\n......1111......\n......1111......\n................\n\nPopupMenuRightPressed copy:PopupMenuRight\n#635AB6 #635AB6 transparent\n\nPopupMenuDown\n#635AB6 #1D1128 #635AB6 white\n................\n................\n.....2....2.....\n....22....22....\n...2202222022...\n..220022223022..\n.22333000003022.\n.20000000030002.\n.10333000000001.\n.11000000033011.\n..110011110011..\n...1101111011...\n....11....11....\n.....1....1.....\n................\n................\n\nPopupMenuDownPressed copy:PopupMenuDown\n#635AB6 #635AB6 transparent #635AB6\n\nPopupMenuBackground\n#ffffffB0\n.00000000000000.\n0000000000000000\n0000000000000000\n0000000000000000\n0000000000000000\n0000000000000000\n0000000000000000\n0000000000000000\n0000000000000000\n0000000000000000\n0000000000000000\n0000000000000000\n0000000000000000\n0000000000000000\n0000000000000000\n.00000000000000.\n\nPopupMenuTarget\n#ffffffB0\n.00000000000000.\n0000000000000000\n0000000000000000\n0000000000000000\n0000000000000000\n0000000000000000\n0000000000000000\n0000000000000000\n0000000000000000\n0000000000000000\n0000000000000000\n0000000000000000\n0000000000000000\n0000000000000000\n0000000000000000\n.00000000000000.\n\nConditionPreview\nwhite\n................\n................\n................\n................\n................\n........00000...\n.......0.....0..\n.......0.....0..\n.....0.0.....0..\n..0.0..0.....0..\n...0...0.....0..\n.......0.....0..\n.......0.....0..\n........00000...\n................\n................\n\nCursor\nwhite\n000..........000\n0..............0\n0..............0\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n0..............0\n0..............0\n000..........000\n\nConveyorUpLeave\n#514F59 transparent transparent transparent\n.......00.......\n......0..0......\n.....0....0.....\n....0......0....\n...1........2...\n..1..........2..\n.1............2.\n1..............2\n1..............2\n.1............2.\n..1..........2..\n...1........2...\n....3......3....\n.....3....3.....\n......3..3......\n.......33.......\n\nConveyorLeftLeave copy:ConveyorUpLeave\ntransparent #514F59 transparent transparent\n\nConveyorRightLeave copy:ConveyorUpLeave\ntransparent transparent #514F59 transparent\n\nConveyorDownLeave copy:ConveyorUpLeave\ntransparent transparent transparent #514F59\n\nConveyorUpEnter\ntransparent transparent transparent #514F59 \n................\n....0......0....\n.....0....0.....\n......0..0......\n.1.....00.....2.\n..1..........2..\n...1........2...\n....1......2....\n....1......2....\n...1........2...\n..1..........2..\n.1.....33.....2.\n......3..3......\n.....3....3.....\n....3......3....\n................\n\nConveyorLeftEnter copy:ConveyorUpEnter\ntransparent transparent #514F59 transparent\n\nConveyorRightEnter copy:ConveyorUpEnter\ntransparent #514F59 transparent transparent\n\nConveyorDownEnter copy:ConveyorUpEnter\n#514F59 transparent transparent transparent\n\nTEnterCount\ntransparent\n\nTLeaveCount\ntransparent\n\nPChanged\n#514F59\n...............0\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n\nPEnd\n#514F59\n................\n................\n................\n................\n................\n................\n......0000......\n......0000......\n......0000......\n......0000......\n................\n................\n................\n................\n................\n................\n\nPLine\n#514F59\n................\n................\n................\n................\n................\n................\n................\n.......00.......\n.......00.......\n................\n................\n................\n................\n................\n................\n................\n\nPSplitter\n#514F59\n................\n................\n................\n................\n................\n................\n......0..0......\n.......0.0......\n........00......\n......0000......\n................\n................\n................\n................\n................\n................\n\nPJoiner\n#514F59\n................\n................\n................\n................\n................\n................\n.......00.......\n......0..0......\n......0..0......\n.......00.......\n................\n................\n................\n................\n................\n................\n\n\nPSpawnerIdle\n#514F59\n.00000000000000.\n0..............0\n0..............0\n0..............0\n0..............0\n0..............0\n0..............0\n0..............0\n0..............0\n0..............0\n0..............0\n0..............0\n0..............0\n0..............0\n0..............0\n.00000000000000.\n\nPSpawnerActive\ntransparent\n\nSplitterTrueUp\ngreen transparent transparent transparent\n...0...00......3\n0.0...0000..3.3.\n.0...000000..3..\n................\n................\n..1..........3..\n.11..........33.\n111..........333\n111..........333\n.11..........33.\n..1..........3..\n................\n................\n...1.222222....2\n1.1...2222..2.2.\n.1.....22....2..\n\nSplitterTrueLeft copy:SplitterTrueUp\ntransparent green transparent transparent\n\nSplitterTrueDown copy:SplitterTrueUp\ntransparent transparent green transparent\n\nSplitterTrueRight copy:SplitterTrueUp\ntransparent transparent transparent green\n\nSplitterFalseUp\nred transparent transparent transparent\n0.0....00...3.3.\n.0....0..0...3..\n0.0..0....0.3.3.\n................\n................\n..1..........3..\n.1............3.\n1..............3\n1..............3\n.1............3.\n..1..........3..\n................\n................\n.1.1.2....2..2.2\n..1...2..2....2.\n.1.1...22....2.2\n\nSplitterFalseLeft copy:SplitterFalseUp\ntransparent red transparent transparent\n\nSplitterFalseDown copy:SplitterFalseUp\ntransparent transparent red transparent\n\nSplitterFalseRight copy:SplitterFalseUp\ntransparent transparent transparent red\n\nSplitterOne\n#6D72C3 white \n................\n................\n................\n....00000000....\n...0000000000...\n...0010000000...\n...0001000100...\n...0000101100...\n...0001000100...\n...0010000100...\n...0000001110...\n...0011100000...\n....00000000....\n................\n................\n................\n\nSplitterTwo\n#6D72C3 white \n................\n................\n................\n....00000000....\n...0000000000...\n...0010000000...\n...0001001110...\n...0000100010...\n...0001001110...\n...0010001000...\n...0000001110...\n...0011100000...\n....00000000....\n................\n................\n................\n\nSplitterThree\n#6D72C3 white\n................\n................\n................\n....00000000....\n...0000000000...\n...0010000000...\n...0001001110...\n...0000100010...\n...0001001110...\n...0010000010...\n...0000001110...\n...0011100000...\n....00000000....\n................\n................\n................\n\nSplitterFour\n#6D72C3 white\n................\n................\n................\n....00000000....\n...0000000000...\n...0010000000...\n...0001001010...\n...0000101010...\n...0001001110...\n...0010000010...\n...0000000010...\n...0011100000...\n....00000000....\n................\n................\n................\n\nSplitterFive\n#6D72C3 white\n................\n................\n................\n....00000000....\n...0000000000...\n...0010000000...\n...0001001110...\n...0000101000...\n...0001001110...\n...0010000010...\n...0000001110...\n...0011100000...\n....00000000....\n................\n................\n................\n\nSplitterSix\n#6D72C3 white\n................\n................\n................\n....00000000....\n...0000000000...\n...0010000000...\n...0001001110...\n...0000101000...\n...0001001110...\n...0010001010...\n...0000001110...\n...0011100000...\n....00000000....\n................\n................\n................\n\nSplitterSeven\n#6D72C3 white\n................\n................\n................\n....00000000....\n...0000000000...\n...0010000000...\n...0001001110...\n...0000100010...\n...0001000100...\n...0010001000...\n...0000001000...\n...0011100000...\n....00000000....\n................\n................\n................\n\nSplitterEqualOne\n#5941A9 white\n................\n................\n................\n....00000000....\n...0000000000...\n...0000000000...\n...0000000100...\n...0111101100...\n...0000000100...\n...0111100100...\n...0000001110...\n...0000000000...\n....00000000....\n................\n................\n................\n\nSplitterEqualTwo\n#5941A9 white \n................\n................\n................\n....00000000....\n...0000000000...\n...0000000000...\n...0000001110...\n...0111100010...\n...0000001110...\n...0111101000...\n...0000001110...\n...0000000000...\n....00000000....\n................\n................\n................\n\nSplitterEqualThree\n#5941A9 white \n................\n................\n................\n....00000000....\n...0000000000...\n...0000000000...\n...0000001110...\n...0111100010...\n...0000001110...\n...0111100010...\n...0000001110...\n...0000000000...\n....00000000....\n................\n................\n................\n\nSplitterEqualFour\n#5941A9 white \n................\n................\n................\n....00000000....\n...0000000000...\n...0000000000...\n...0000001010...\n...0111101010...\n...0000001110...\n...0111100010...\n...0000000010...\n...0000000000...\n....00000000....\n................\n................\n................\n\nSplitterEqualFive\n#5941A9 white \n................\n................\n................\n....00000000....\n...0000000000...\n...0000000000...\n...0000001110...\n...0111101000...\n...0000001110...\n...0111100010...\n...0000001110...\n...0000000000...\n....00000000....\n................\n................\n................\n\nSplitterEqualSix\n#5941A9 white \n................\n................\n................\n....00000000....\n...0000000000...\n...0000000000...\n...0000001110...\n...0111101000...\n...0000001110...\n...0111101010...\n...0000001110...\n...0000000000...\n....00000000....\n................\n................\n................\n\nSplitterEqualSeven\n#5941A9 white \n................\n................\n................\n....00000000....\n...0000000000...\n...0000000000...\n...0000001110...\n...0111100010...\n...0000000100...\n...0111101000...\n...0000001000...\n...0000000000...\n....00000000....\n................\n................\n................\n\nTopLabelOne\n#1D112800 transparent\n................\n................\n.......0........\n......00........\n.......0........\n.......0........\n......000.......\n................\n................\n................\n.......1........\n......11........\n.......1........\n.......1........\n......111.......\n................\n\nTopLabelTwo\n#1D112800 transparent\n................\n................\n......000.......\n........0.......\n......000.......\n......0.........\n......000.......\n................\n................\n................\n......111.......\n........1.......\n......111.......\n......1.........\n......111.......\n................\n\nTopLabelThree\n#1D112800 transparent\n................\n................\n......000.......\n........0.......\n.......00.......\n........0.......\n......000.......\n................\n................\n................\n......111.......\n........1.......\n.......11.......\n........1.......\n......111.......\n................\n\nTopLabelFour\n#1D112800 transparent\n................\n................\n......0.0.......\n......0.0.......\n......000.......\n........0.......\n........0.......\n................\n................\n................\n......1.1.......\n......1.1.......\n......111.......\n........1.......\n........1.......\n................\n\nTopLabelFive\n#1D112800 transparent\n................\n................\n......000.......\n......0.........\n......000.......\n........0.......\n......000.......\n................\n................\n................\n......111.......\n......1.........\n......111.......\n........1.......\n......111.......\n................\n\nTopLabelSix\n#1D112800 transparent\n................\n................\n......000.......\n......0.........\n......000.......\n......0.0.......\n......000.......\n................\n................\n................\n......111.......\n......1.........\n......111.......\n......1.1.......\n......111.......\n................\n\nTopLabelSeven\n#1D112800 transparent\n................\n................\n......000.......\n........0.......\n.......0........\n......0.........\n......0.........\n................\n................\n................\n......111.......\n........1.......\n.......1........\n......1.........\n......1.........\n................\n\nBottomLabelOne copy:TopLabelOne\ntransparent #1D1128\n\nBottomLabelTwo copy:TopLabelTwo\ntransparent #1D1128\n\nBottomLabelThree copy:TopLabelThree\ntransparent #1D1128\n\nBottomLabelFour copy:TopLabelFour\ntransparent #1D1128\n\nBottomLabelFive copy:TopLabelFive\ntransparent #1D1128\n\nBottomLabelSix copy:TopLabelSix\ntransparent #1D1128\n\nBottomLabelSeven copy:TopLabelSeven\ntransparent #1D1128\n\nBottomLabelCorrect\n#6D72C3\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n.............0..\n..........0.0...\n...........0....\n................\n\nBottomLabelIncorrect\n#6D72C3\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n...........0.0..\n............0...\n...........0.0..\n................\n\nBoxOne\n#6D72C3 white\n................\n................\n...0000000000...\n..000000000000..\n..000000000000..\n..000000000000..\n..000000000000..\n..000000001000..\n..000000011000..\n..000000001000..\n..000000001000..\n..000000011100..\n..000000000000..\n...0000000000...\n................\n................\n\nBoxTwo\n#6A6ABF white\n................\n................\n...0000000000...\n..000000000000..\n..000000000000..\n..000000000000..\n..000000000000..\n..000000011100..\n..000000000100..\n..000000011100..\n..000000010000..\n..000000011100..\n..000000000000..\n...0000000000...\n................\n................\n\nBoxThree\n#6662BA white\n................\n................\n...0000000000...\n..000000000000..\n..000000000000..\n..000000000000..\n..000000000000..\n..000000011100..\n..000000000100..\n..000000001100..\n..000000000100..\n..000000011100..\n..000000000000..\n...0000000000...\n................\n................\n\nBoxFour\n#635AB6 white\n................\n................\n...0000000000...\n..000000000000..\n..000000000000..\n..000000000000..\n..000000000000..\n..000000010100..\n..000000010100..\n..000000011100..\n..000000000100..\n..000000000100..\n..000000000000..\n...0000000000...\n................\n................\n\nBoxFive\n#6051B2 white\n................\n................\n...0000000000...\n..000000000000..\n..000000000000..\n..000000000000..\n..000000000000..\n..000000011100..\n..000000010000..\n..000000011100..\n..000000000100..\n..000000011100..\n..000000000000..\n...0000000000...\n................\n................\n\nBoxSix\n#5C49AD white\n................\n................\n...0000000000...\n..000000000000..\n..000000000000..\n..000000000000..\n..000000000000..\n..000000011100..\n..000000010000..\n..000000011100..\n..000000010100..\n..000000011100..\n..000000000000..\n...0000000000...\n................\n................\n\nBoxSeven\n#5941A9 white\n................\n................\n...0000000000...\n..000000000000..\n..000000000000..\n..000000000000..\n..000000000000..\n..000000011100..\n..000000000100..\n..000000001000..\n..000000010000..\n..000000010000..\n..000000000000..\n...0000000000...\n................\n................\n\nSpawner\n#5941A9 #1D1128\n................\n................\n...0000000000...\n..0..........0..\n..0..........0..\n..0..........0..\n..0..........0..\n..0..........0..\n..0.111.1..1.0..\n..0..1..11.1.0..\n..0..1..1.11.0..\n..0.111.1..1.0..\n..0..........0..\n...0000000000...\n................\n................\n\nOutput\n#5941A9 #1D1128\n.00000000000000.\n0..............0\n0..............0\n0..............0\n0..............0\n0..............0\n0..............0\n0..............0\n0..............0\n0..............0\n0..111.1.1.111.0\n0..1.1.1.1..1..0\n0..1.1.1.1..1..0\n0..111.111..1..0\n0..............0\n.00000000000000.\n\nValidChecker\n#514F59\n\nMDesign\n#E5D4ED\n................\n................\n................\n................\n................\n................\n................\n................\n................\n.00.00..000.000.\n.0..0.0..0...0..\n.00.0.0..0...0..\n.0..0.0..0...0..\n.00.00..000..0..\n................\n................\n\nMExecute copy:MStart\n#E5D4ED\n\nMStart\n#E5D4ED\n................\n................\n................\n................\n................\n................\n................\n................\n................\n.000.0..000.0.0.\n.0.0.0..0.0.0.0.\n.000.0..000.000.\n.0...0..0.0..0..\n.0...00.0.0..0..\n................\n................\n\nMAbort copy:MDesign\n#E5D4ED\n\nMError\n#E5D4ED\n................\n................\n................\n................\n................\n................\n................\n................\n................\n.00.000.000.000.\n.0...0..0.0.0.0.\n.00..0..0.0.000.\n..0..0..0.0.0...\n.00..0..000.0...\n................\n................\n\nTRealtime\ntransparent\n\nTMouse\ntransparent\n\nTLevelStart\ntransparent\n\nInit\ntransparent\n\nStateHolder\ntransparent\n\nPlayButtonOff\n#6D72C3 #1D1128 #6D72C3\n................\n................\n....22222.......\n....222222......\n....0000022.....\n....00000022....\n....00000002....\n....00000000....\n....00000000....\n....00000000....\n....00000001....\n....00000011....\n....0000011.....\n....111111......\n....11111.......\n................\n\n\nPlayButtonOn copy:PlayButtonOff\n#E5D4ED #E5D4ED transparent\n\nUndoButtonVisible\n#6D72C3 #1D1128 #6D72C3\n22222222222222..\n222222222222222.\n1111111111111222\n1111111111111102\n....22.......100\n...220........00\n..2200........00\n.22000.......200\n2200002222222201\n2000002222222011\n100000111111111.\n11000011111111..\n.11000..........\n..1100..........\n...111..........\n....11..........\n\nUndoButtonInvisible\ntransparent\n\nBreakpoint\ntransparent transparent\n................\n.....000000.....\n......0000......\n.......00.......\n................\n................\n................\n................\n................\n................\n................\n................\n.......11.......\n......1111......\n.....111111.....\n................\n\nRetrievePoint copy:Breakpoint\ntransparent transparent\n\nShouldSaveTurn\ntransparent\n\nShouldDiscardTurn\ntransparent\n\n(DECORATIONS)\nDecoWallLU\n#5941A9 transparent transparent transparent\n0000........1111\n00............11\n0..............1\n0..............1\n................\n................\n................\n................\n................\n................\n................\n................\n2..............3\n2..............3\n22............33\n2222........3333\n\nDecoWallRU copy:DecoWallLU\ntransparent #5941A9 transparent transparent\n\nDecoWallLD copy:DecoWallLU\ntransparent transparent #5941A9 transparent\n\nDecoWallRD copy:DecoWallLU\ntransparent transparent transparent #5941A9\n\nConsoleWire\n#6D72C3\n.....000000.....\n.....000000.....\n.....000000.....\n.....000000.....\n......0000......\n......0000......\n......0000......\n......0000......\n.......00.......\n.......00.......\n.......00.......\n.......00.......\n................\n................\n................\n................\n\n\n=======\nLEGEND\n=======\nConveyorEnter = ConveyorRightEnter or ConveyorDownEnter or ConveyorLeftEnter or ConveyorUpEnter\nConveyorLeave = ConveyorUpLeave or ConveyorLeftLeave or ConveyorRightLeave or ConveyorDownLeave\nConveyor = ConveyorEnter or ConveyorLeave\n\nConveyorEnterNoRight = ConveyorLeftEnter or ConveyorUpEnter or ConveyorDownEnter\nConveyorEnterNoDown = ConveyorLeftEnter or ConveyorUpEnter or ConveyorRightEnter\nConveyorEnterNoLeft = ConveyorRightEnter or ConveyorUpEnter or ConveyorDownEnter\nConveyorEnterNoUp = ConveyorRightEnter or ConveyorLeftEnter or ConveyorDownEnter\n\nSplitterNumber = SplitterOne or SplitterTwo or SplitterThree or SplitterFour or SplitterFive or SplitterSix or SplitterSeven\nSplitterEqual = SplitterEqualOne or SplitterEqualTwo or SplitterEqualThree or SplitterEqualFour or SplitterEqualFive or SplitterEqualSix or SplitterEqualSeven\nSplitterDir = SplitterTrueUp or SplitterTrueLeft or SplitterTrueDown or SplitterTrueRight\nSplitterFalseDir = SplitterFalseUp or SplitterFalseLeft or SplitterFalseDown or SplitterFalseRight\nSplitterCondition = SplitterNumber or SplitterEqual\n\nBox = BoxOne or BoxTwo or BoxThree or BoxFour or BoxFive or BoxSix or BoxSeven\n\nSevenOrHigher = BoxSeven\nSixOrHigher = BoxSix or SevenOrHigher\nFiveOrHigher = BoxFive or SixOrHigher\nFourOrHigher = BoxFour or FiveOrHigher\nThreeOrHigher = BoxThree or FourOrHigher\nTwoOrHigher = BoxTwo or ThreeOrHigher\nOneOrHigher = Box\n\nConveyorForbidden = Wall or Console\n\nMode = MDesign or MExecute or MStart or MAbort or MError\nTurnType = TRealtime or TMouse or TLevelStart\n\nPlayButton = PlayButtonOff or PlayButtonOn\n\nTopLabel = TopLabelOne or TopLabelTwo or TopLabelThree or TopLabelFour or TopLabelFive or TopLabelSix or TopLabelSeven\n\nBottomLabel = BottomLabelOne or BottomLabelTwo or BottomLabelThree or BottomLabelFour or BottomLabelFive or BottomLabelSix or BottomLabelSeven\n\nMouseObject = Click or Drag or Release\n\nPath = PChanged or PEnd or PLine or PSplitter or PJoiner or PSpawnerIdle or PSpawnerActive\nCanRemove = PEnd or PJoiner\nCanExtend = PEnd or PLine or PSpawnerIdle\nCanJoin = PLine or PEnd or PJoiner\n\nDecoration = ConsoleWire or DecoWallLU or DecoWallRU or DecoWallLD or DecoWallRD\n\nPopUpMenu = PopupMenuTop or PopupMenuTopPressed or PopupMenuLeft or PopupMenuLeftPressed or PopupMenuRight or PopupMenuRightPressed or PopupMenuDown or PopupMenuDownPressed\n\nUndoButton = UndoButtonVisible or UndoButtonInvisible\n\nSaveState = ShouldSaveTurn or ShouldDiscardTurn\n\n} = PlayButtonOff and Console and Init\n\n| = Console and ConsoleWire\n\n- = Wall and DecoWallLU\n_ = Wall and DecoWallRU\n: = Wall and DecoWallLD\n; = Wall and DecoWallRD\n\n> = Spawner and PChanged\n< = Output\n\n1 = BoxOne and ValidChecker\n2 = BoxTwo and ValidChecker\n3 = BoxThree and ValidChecker\n4 = BoxFour and ValidChecker\n5 = BoxFive and ValidChecker\n6 = BoxSix and ValidChecker\n7 = BoxSeven and ValidChecker\n\n! = Console and BottomLabelOne\n@ = Console and BottomLabelTwo\n# = Console and BottomLabelThree\n$ = Console and BottomLabelFour\n% = Console and BottomLabelFive\n^ = Console and BottomLabelSix\n& = Console and BottomLabelSeven\n\n~ = StateHolder and Wall\n\n` = UndoButtonVisible and Console\n\nx = background (Indicates splitter positions for known solution)\n\n=======\nSOUNDS\n=======\n\nsfx0 6781907 (Laying conveyors)\nsfx1 90593107 (Removing conveyors)\nsfx2 56453301 (Starting play)\nsfx3 76292307 (Stopping play)\nsfx4 92663905 (Pop-up menu opens)\nsfx5 19596906 (Pop-up button pressed)\nsfx6 79769306 (Pop-up button released)\nsfx7 87824107 (Undo command)\nsfx9 47894305 (Sorted to TRUE path)\nsfx10 84358905 (Sorted to FALSE path)\n\nBox move right 20311907\nBox move up 75312907\nBox move left 56570507\nBox move down 79002507\n\nBreakpoint move right 60621502 (Box input)\nRetrievePoint move right 8459702 (Box output)\n\nendlevel 22497709\n\nundo 87824107 (QQQ Hmm, doesn't play on undo command?)\n\n(MError action 91404104)\n\n================\nCOLLISIONLAYERS\n================\nbackground\nplayer (qqq merge?)\n\nSpawner, Output\n\nPath\n\nConveyorUpEnter, ConveyorDownLeave\nConveyorLeftEnter, ConveyorRightLeave\nConveyorRightEnter, ConveyorLeftLeave\nConveyorDownEnter, ConveyorUpLeave\n\nValidChecker\nBox, Wall, Console\n\nCursor\n\nPopupMenuTarget\n\nSplitterDir\nSplitterFalseDir\nSplitterCondition\n\n(USER INTERFACE)\n\nPlayButton, TopLabel, Decoration\nBottomLabelCorrect, BottomLabelIncorrect\nBottomLabel\nBreakpoint\nRetrievePoint\nPopupMenuBackground\nPopupMenuTop, PopupMenuTopPressed\nPopupMenuLeft, PopupMenuLeftPressed\nPopupMenuRight, PopupMenuRightPressed\nPopupMenuDown, PopupMenuDownPressed\nUndoButton\nConditionPreview\n\n(LOGIC ONLY, no visuals)\nMode\nTurnType\nStateHolder\nSaveState\n\nClick\nDrag\nRelease\nPrevDrag\nInit\nMouseDownFirstTurn\nMouseSameTileClick\n\nTEnterCount\nTLeaveCount\n\n======\nRULES\n======\n\n(Cleanup states from last turn)\n[Mode] -> []\n[TurnType] -> []\n\n(Init object that will record whether or not the game should write to the undo stack)\n[StateHolder] -> [StateHolder ShouldDiscardTurn]\n\n(Determine turn type)\n[StateHolder] [MouseObject] -> [StateHolder TMouse] [MouseObject]\n[StateHolder] [Init] -> [StateHolder TLevelStart] []\n[StateHolder no TurnType] -> [StateHolder TRealtime]\n\n(Determine mode by checking/toggling play button state)\n[StateHolder] [Click stationary PlayButtonOff] [ShouldDiscardTurn] -> [StateHolder action MStart] [Click action PlayButtonOn] [ShouldSaveTurn] sfx2 realtime_interval 0.25\n[StateHolder] [Click stationary PlayButtonOn] -> [StateHolder action MAbort] [Click action PlayButtonOff] sfx3 realtime_interval wipe\n[StateHolder] [stationary PlayButtonOn] -> [StateHolder MExecute] [action PlayButtonOn]\n[StateHolder] [stationary PlayButtonOff] -> [StateHolder MDesign] [action PlayButtonOff]\n\n(Handle undo button clicks)\n[Click UndoButtonVisible] -> undo\n\n[action PlayButton] -> [stationary PlayButton] (Don't play tween)\n\n(DESIGN: Animate some buttons when pressed)\n[PopupMenuTopPressed] -> [PopupMenuTop]\n[PopupMenuLeftPressed] -> [PopupMenuLeft]\n[PopupMenuRightPressed] -> [PopupMenuRight]\n[PopupMenuDownPressed] -> [PopupMenuDown]\n\n[MDesign] [Click PopupMenuTop] -> [MDesign] [Click PopupMenuTopPressed] sfx5\n[MDesign] [Click PopupMenuLeft] -> [MDesign] [Click PopupMenuLeftPressed] sfx5\n[MDesign] [Click PopupMenuRight] -> [MDesign] [Click PopupMenuRightPressed] sfx5\n[MDesign] [Click PopupMenuDown] -> [MDesign] [Click PopupMenuDownPressed] sfx5\n\n(Handle mouse dragging)\n[MouseSameTileClick] -> []\n[Release MouseDownFirstTurn] -> [Release MouseSameTileClick]\n[MouseDownFirstTurn] -> []\n\n[Click] [Cursor] -> [Click] []\n[Click] [PrevDrag] -> [Click] []\n[Click] -> [Cursor MouseDownFirstTurn PrevDrag]\n\n[Cursor] [PrevDrag | Drag] -> [> Cursor ] [ | PrevDrag Drag]\n\n(Cancel realtime turns in design mode, for performance/tweening)\n[TRealtime] [MDesign] -> cancel\n[TMouse] [MExecute] -> cancel\n(QQQ Deal with MStart and MAbort?)\n\n(LEVELSTART: Create labels on the console)\nup [TLevelStart] [BoxOne | Console no TopLabel] -> [TLevelStart] [BoxOne | Console TopLabelOne]\nup [TLevelStart] [BoxTwo | Console no TopLabel] -> [TLevelStart] [BoxTwo | Console TopLabelTwo]\nup [TLevelStart] [BoxThree | Console no TopLabel] -> [TLevelStart] [BoxThree | Console TopLabelThree]\nup [TLevelStart] [BoxFour | Console no TopLabel] -> [TLevelStart] [BoxFour | Console TopLabelFour]\nup [TLevelStart] [BoxFive | Console no TopLabel] -> [TLevelStart] [BoxFive | Console TopLabelFive]\nup [TLevelStart] [BoxSix | Console no TopLabel] -> [TLevelStart] [BoxSix | Console TopLabelSix]\nup [TLevelStart] [BoxSeven | Console no TopLabel] -> [TLevelStart] [BoxFive | Console TopLabelSeven]\n(QQQ Also create the numbers for the CORRECT order)\n\n(DESIGN: Pressing popup button will record this turn)\n[MDesign] [PopUpMenu MouseSameTileClick] [ShouldDiscardTurn] -> [MDesign] [PopUpMenu MouseSameTileClick] [ShouldSaveTurn]\n\n(DESIGN: Pressing rotate popup button)\ndown [MDesign] [PopupMenuTop MouseSameTileClick | SplitterDir SplitterFalseDir] -> [MDesign] [PopupMenuTop | action SplitterDir action SplitterFalseDir] sfx6\n\n(QQQ Writing out all possible toggle combinations seems like overdoing it... is there an easier way?)\n[MDesign] [action SplitterTrueUp action SplitterFalseRight] -> [MDesign] [SplitterFalseUp SplitterTrueRight]\n[MDesign] [action SplitterTrueUp action SplitterFalseDown] -> [MDesign] [SplitterFalseUp SplitterTrueDown]\n[MDesign] [action SplitterTrueUp action SplitterFalseLeft] -> [MDesign] [SplitterFalseUp SplitterTrueLeft]\n\n[MDesign] [action SplitterTrueLeft action SplitterFalseRight] -> [MDesign] [SplitterFalseLeft SplitterTrueRight]\n[MDesign] [action SplitterTrueLeft action SplitterFalseDown] -> [MDesign] [SplitterFalseLeft SplitterTrueDown]\n[MDesign] [action SplitterTrueLeft action SplitterFalseUp] -> [MDesign] [SplitterFalseLeft SplitterTrueUp]\n\n[MDesign] [action SplitterTrueDown action SplitterFalseRight] -> [MDesign] [SplitterFalseDown SplitterTrueRight]\n[MDesign] [action SplitterTrueDown action SplitterFalseLeft] -> [MDesign] [SplitterFalseDown SplitterTrueLeft]\n[MDesign] [action SplitterTrueDown action SplitterFalseUp] -> [MDesign] [SplitterFalseDown SplitterTrueUp]\n\n[MDesign] [action SplitterTrueRight action SplitterFalseDown] -> [MDesign] [SplitterFalseRight SplitterTrueDown]\n[MDesign] [action SplitterTrueRight action SplitterFalseLeft] -> [MDesign] [SplitterFalseRight SplitterTrueLeft]\n[MDesign] [action SplitterTrueRight action SplitterFalseUp] -> [MDesign] [SplitterFalseRight SplitterTrueUp]\n\n(QQQ Still need to remove leftover action for splitters?)\n\n(DESIGN: Pressing plus popup button)\nleft [MDesign] [PopupMenuRight MouseSameTileClick | SplitterOne] -> [MDesign] [PopupMenuRight | SplitterTwo] sfx6\nleft [MDesign] [PopupMenuRight MouseSameTileClick | SplitterTwo] -> [MDesign] [PopupMenuRight | SplitterThree] sfx6\nleft [MDesign] [PopupMenuRight MouseSameTileClick | SplitterThree] -> [MDesign] [PopupMenuRight | SplitterFour] sfx6\nleft [MDesign] [PopupMenuRight MouseSameTileClick | SplitterFour] -> [MDesign] [PopupMenuRight | SplitterFive] sfx6\nleft [MDesign] [PopupMenuRight MouseSameTileClick | SplitterFive] -> [MDesign] [PopupMenuRight | SplitterSix] sfx6\nleft [MDesign] [PopupMenuRight MouseSameTileClick | SplitterSix] -> [MDesign] [PopupMenuRight | SplitterOne] sfx6\n(left [MDesign] [PopupMenuRight MouseSameTileClick | SplitterSeven] -> [MDesign] [PopupMenuRight | SplitterOne] sfx6)\n\nleft [MDesign] [PopupMenuRight MouseSameTileClick | SplitterEqualOne] -> [MDesign] [PopupMenuRight | SplitterEqualTwo] sfx6\nleft [MDesign] [PopupMenuRight MouseSameTileClick | SplitterEqualTwo] -> [MDesign] [PopupMenuRight | SplitterEqualThree] sfx6\nleft [MDesign] [PopupMenuRight MouseSameTileClick | SplitterEqualThree] -> [MDesign] [PopupMenuRight | SplitterEqualFour] sfx6\nleft [MDesign] [PopupMenuRight MouseSameTileClick | SplitterEqualFour] -> [MDesign] [PopupMenuRight | SplitterEqualFive] sfx6\nleft [MDesign] [PopupMenuRight MouseSameTileClick | SplitterEqualFive] -> [MDesign] [PopupMenuRight | SplitterEqualSix] sfx6\nleft [MDesign] [PopupMenuRight MouseSameTileClick | SplitterEqualSix] -> [MDesign] [PopupMenuRight | SplitterEqualOne] sfx6\n(left [MDesign] [PopupMenuRight MouseSameTileClick | SplitterEqualSeven] -> [MDesign] [PopupMenuRight | SplitterEqualOne] sfx6)\n\n(DESIGN: Pressing minus popup button)\nright [MDesign] [PopupMenuLeft MouseSameTileClick | SplitterOne] -> [MDesign] [PopupMenuLeft | SplitterSix] sfx6\nright [MDesign] [PopupMenuLeft MouseSameTileClick | SplitterTwo] -> [MDesign] [PopupMenuLeft | SplitterOne] sfx6\nright [MDesign] [PopupMenuLeft MouseSameTileClick | SplitterThree] -> [MDesign] [PopupMenuLeft | SplitterTwo] sfx6\nright [MDesign] [PopupMenuLeft MouseSameTileClick | SplitterFour] -> [MDesign] [PopupMenuLeft | SplitterThree] sfx6\nright [MDesign] [PopupMenuLeft MouseSameTileClick | SplitterFive] -> [MDesign] [PopupMenuLeft | SplitterFour] sfx6\nright [MDesign] [PopupMenuLeft MouseSameTileClick | SplitterSix] -> [MDesign] [PopupMenuLeft | SplitterFive] sfx6\n(right [MDesign] [PopupMenuLeft MouseSameTileClick | SplitterSeven] -> [MDesign] [PopupMenuLeft | SplitterSix] sfx6)\n\nright [MDesign] [PopupMenuLeft MouseSameTileClick | SplitterEqualOne] -> [MDesign] [PopupMenuLeft | SplitterEqualSix] sfx6\nright [MDesign] [PopupMenuLeft MouseSameTileClick | SplitterEqualTwo] -> [MDesign] [PopupMenuLeft | SplitterEqualOne] sfx6\nright [MDesign] [PopupMenuLeft MouseSameTileClick | SplitterEqualThree] -> [MDesign] [PopupMenuLeft | SplitterEqualTwo] sfx6\nright [MDesign] [PopupMenuLeft MouseSameTileClick | SplitterEqualFour] -> [MDesign] [PopupMenuLeft | SplitterEqualThree] sfx6\nright [MDesign] [PopupMenuLeft MouseSameTileClick | SplitterEqualFive] -> [MDesign] [PopupMenuLeft | SplitterEqualFour] sfx6\nright [MDesign] [PopupMenuLeft MouseSameTileClick | SplitterEqualSix] -> [MDesign] [PopupMenuLeft | SplitterEqualFive] sfx6\n(right [MDesign] [PopupMenuLeft MouseSameTileClick | SplitterEqualSeven] -> [MDesign] [PopupMenuLeft | SplitterEqualSix] sfx6)\n\n(DESIGN: Pressing higher/equal toggle button)\nup [MDesign] [PopupMenuDown MouseSameTileClick | stationary SplitterOne] -> [MDesign] [PopupMenuDown | action SplitterEqualOne] sfx6\nup [MDesign] [PopupMenuDown MouseSameTileClick | stationary SplitterEqualOne] -> [MDesign] [PopupMenuDown | action SplitterOne] sfx6\nup [MDesign] [PopupMenuDown MouseSameTileClick | stationary SplitterTwo] -> [MDesign] [PopupMenuDown | action SplitterEqualTwo] sfx6\nup [MDesign] [PopupMenuDown MouseSameTileClick | stationary SplitterEqualTwo] -> [MDesign] [PopupMenuDown | action SplitterTwo] sfx6\nup [MDesign] [PopupMenuDown MouseSameTileClick | stationary SplitterThree] -> [MDesign] [PopupMenuDown | action SplitterEqualThree] sfx6\nup [MDesign] [PopupMenuDown MouseSameTileClick | stationary SplitterEqualThree] -> [MDesign] [PopupMenuDown | action SplitterThree] sfx6\nup [MDesign] [PopupMenuDown MouseSameTileClick | stationary SplitterFour] -> [MDesign] [PopupMenuDown | action SplitterEqualFour] sfx6\nup [MDesign] [PopupMenuDown MouseSameTileClick | stationary SplitterEqualFour] -> [MDesign] [PopupMenuDown | action SplitterFour] sfx6\nup [MDesign] [PopupMenuDown MouseSameTileClick | stationary SplitterFive] -> [MDesign] [PopupMenuDown | action SplitterEqualFive] sfx6\nup [MDesign] [PopupMenuDown MouseSameTileClick | stationary SplitterEqualFive] -> [MDesign] [PopupMenuDown | action SplitterFive] sfx6\nup [MDesign] [PopupMenuDown MouseSameTileClick | stationary SplitterSix] -> [MDesign] [PopupMenuDown | action SplitterEqualSix] sfx6\nup [MDesign] [PopupMenuDown MouseSameTileClick | stationary SplitterEqualSix] -> [MDesign] [PopupMenuDown | action SplitterSix] sfx6\nup [MDesign] [PopupMenuDown MouseSameTileClick | stationary SplitterSeven] -> [MDesign] [PopupMenuDown | action SplitterEqualSeven] sfx6\nup [MDesign] [PopupMenuDown MouseSameTileClick | stationary SplitterEqualSeven] -> [MDesign] [PopupMenuDown | action SplitterSeven] sfx6\n\n(DESIGN: Open splitter submenu)\n[MDesign] [Release no PopUpMenu] [PopUpMenu] -> [MDesign] [Release] []\n[MDesign] [Drag] [PopUpMenu] -> [MDesign] [Drag] []\n[MDesign] [PopupMenuBackground no PopUpMenu] -> [MDesign] []\nup [MDesign] [PopupMenuTarget | no PopUpMenu] -> [MDesign] [ | ]\n\n[MDesign] [PSplitter MouseSameTileClick no PopUpMenu] -> [MDesign] [PSplitter action PopupMenuTarget up PopupMenuTop left PopupMenuLeft right PopupMenuRight down PopupMenuDown] sfx4 (Also prevents selecting splitters that might be under this button)\n[MDesign] [> PopUpMenu | ] -> [MDesign] [> PopUpMenu | action PopupMenuBackground]\n\n(DESIGN: Condition preview)\n[MDesign] [ConditionPreview] -> [MDesign] []\n\n(DESIGN: Condition preview for EQUAL splitters)\n[MDesign] [PopupMenuTarget SplitterEqualOne] [BoxOne] -> [MDesign] [PopupMenuTarget SplitterEqualOne] [BoxOne ConditionPreview]\n[MDesign] [PopupMenuTarget SplitterEqualTwo] [BoxTwo] -> [MDesign] [PopupMenuTarget SplitterEqualTwo] [BoxTwo ConditionPreview]\n[MDesign] [PopupMenuTarget SplitterEqualThree] [BoxThree] -> [MDesign] [PopupMenuTarget SplitterEqualThree] [BoxThree ConditionPreview]\n[MDesign] [PopupMenuTarget SplitterEqualFour] [BoxFour] -> [MDesign] [PopupMenuTarget SplitterEqualFour] [BoxFour ConditionPreview]\n[MDesign] [PopupMenuTarget SplitterEqualFive] [BoxFive] -> [MDesign] [PopupMenuTarget SplitterEqualFive] [BoxFive ConditionPreview]\n[MDesign] [PopupMenuTarget SplitterEqualSix] [BoxSix] -> [MDesign] [PopupMenuTarget SplitterEqualSix] [BoxSix ConditionPreview]\n[MDesign] [PopupMenuTarget SplitterEqualSeven] [BoxSeven] -> [MDesign] [PopupMenuTarget SplitterEqualSeven] [BoxSeven ConditionPreview]\n\n(DESIGN: Condition preview for >= splitters)\n[MDesign] [PopupMenuTarget SplitterOne] [OneOrHigher] -> [MDesign] [PopupMenuTarget SplitterOne] [OneOrHigher ConditionPreview]\n[MDesign] [PopupMenuTarget SplitterTwo] [TwoOrHigher] -> [MDesign] [PopupMenuTarget SplitterTwo] [TwoOrHigher ConditionPreview]\n[MDesign] [PopupMenuTarget SplitterThree] [ThreeOrHigher] -> [MDesign] [PopupMenuTarget SplitterThree] [ThreeOrHigher ConditionPreview]\n[MDesign] [PopupMenuTarget SplitterFour] [FourOrHigher] -> [MDesign] [PopupMenuTarget SplitterFour] [FourOrHigher ConditionPreview]\n[MDesign] [PopupMenuTarget SplitterFive] [FiveOrHigher] -> [MDesign] [PopupMenuTarget SplitterFive] [FiveOrHigher ConditionPreview]\n[MDesign] [PopupMenuTarget SplitterSix] [SixOrHigher] -> [MDesign] [PopupMenuTarget SplitterSix] [SixOrHigher ConditionPreview]\n[MDesign] [PopupMenuTarget SplitterSeven] [SevenOrHigher] -> [MDesign] [PopupMenuTarget SplitterSeven] [SevenOrHigher ConditionPreview]\n\n(DESIGN: Remove conveyors and branches)\nright [MDesign] [ConveyorRightLeave | < Cursor ConveyorRightEnter CanRemove] -> [MDesign] [PChanged | < Cursor PChanged] sfx1\nup [MDesign] [ConveyorUpLeave | < Cursor ConveyorUpEnter CanRemove] -> [MDesign] [PChanged | < Cursor PChanged] sfx1\ndown [MDesign] [ConveyorDownLeave | < Cursor ConveyorDownEnter CanRemove] -> [MDesign] [PChanged | < Cursor PChanged] sfx1\nleft [MDesign] [ConveyorLeftLeave | < Cursor ConveyorLeftEnter CanRemove] -> [MDesign] [PChanged | < Cursor PChanged] sfx1\n\n(DESIGN: Conveyor creation towards tiles without path)\nright [MDesign] [> Cursor CanExtend | no Path no ConveyorForbidden] -> [MDesign] [> Cursor ConveyorRightLeave PChanged SplitterTrueRight | ConveyorRightEnter PChanged] sfx0\nup [MDesign] [> Cursor CanExtend | no Path no ConveyorForbidden] -> [MDesign] [> Cursor ConveyorUpLeave PChanged SplitterTrueUp | ConveyorUpEnter PChanged] sfx0\ndown [MDesign] [> Cursor CanExtend | no Path no ConveyorForbidden] -> [MDesign] [> Cursor ConveyorDownLeave PChanged SplitterTrueDown | ConveyorDownEnter PChanged] sfx0\nleft [MDesign] [> Cursor CanExtend | no Path no ConveyorForbidden] -> [MDesign] [> Cursor ConveyorLeftLeave PChanged SplitterTrueLeft | ConveyorLeftEnter PChanged] sfx0\n\n(DESIGN: Conveyor creation towards tiles with a pre-existing path)\nright [MDesign] [> Cursor CanExtend no ConveyorRightLeave | CanJoin no ConveyorForbidden no ConveyorLeftLeave] -> [MDesign] [> Cursor ConveyorRightLeave PChanged SplitterTrueRight | ConveyorRightEnter PChanged] sfx0\nup [MDesign] [> Cursor CanExtend no ConveyorUpLeave | CanJoin no ConveyorForbidden no ConveyorDownLeave] -> [MDesign] [> Cursor ConveyorUpLeave PChanged SplitterTrueUp | ConveyorUpEnter PChanged] sfx0\ndown [MDesign] [> Cursor CanExtend no ConveyorDownLeave | CanJoin no ConveyorForbidden no ConveyorUpLeave] -> [MDesign] [> Cursor ConveyorDownLeave PChanged SplitterTrueDown | ConveyorDownEnter PChanged] sfx0\nleft [MDesign] [> Cursor CanExtend no ConveyorLeftLeave | CanJoin no ConveyorForbidden no ConveyorRightLeave] -> [MDesign] [> Cursor ConveyorLeftLeave PChanged SplitterTrueLeft | ConveyorLeftEnter PChanged] sfx0\n\n[MDesign] [ShouldDiscardTurn] [PChanged] -> [MDesign] [ShouldSaveTurn] [PChanged]\n\n(DESIGN: Count entering conveyors for changed tiles)\n(0: doesn't exist on tile. 1: right. 2: up. 3: left. 4: down.)\n[MDesign] [PChanged no TEnterCount stationary ConveyorEnter] -> [MDesign] [PChanged right TEnterCount action ConveyorEnter]\n[MDesign] [right TEnterCount stationary ConveyorEnter] -> [MDesign] [up TEnterCount action ConveyorEnter]\n[MDesign] [up TEnterCount stationary ConveyorEnter] -> [MDesign] [left TEnterCount action ConveyorEnter]\n[MDesign] [left TEnterCount stationary ConveyorEnter] -> [MDesign] [down TEnterCount action ConveyorEnter]\n\n(DESIGN: Count leaving conveyors for changed tiles)\n[MDesign] [PChanged no TLeaveCount stationary ConveyorLeave] -> [MDesign] [PChanged right TLeaveCount action ConveyorLeave]\n[MDesign] [right TLeaveCount stationary ConveyorLeave] -> [MDesign] [up TLeaveCount action ConveyorLeave]\n[MDesign] [up TLeaveCount stationary ConveyorLeave] -> [MDesign] [left TLeaveCount action ConveyorLeave]\n[MDesign] [left TLeaveCount stationary ConveyorLeave] -> [MDesign] [down TLeaveCount action ConveyorLeave]\n\n(DESIGN: Determine tile type based on entering/leaving conveyors)\n[MDesign] [stationary Spawner no TEnterCount right TLeaveCount PChanged] -> [MDesign] [action Spawner PSpawnerActive]\n[MDesign] [stationary Spawner no TEnterCount no TLeaveCount PChanged] -> [MDesign] [action Spawner PSpawnerIdle]\n\n[MDesign] [up TEnterCount no TLeaveCount] -> [MDesign] [PEnd]\n[MDesign] [left TEnterCount no TLeaveCount] -> [MDesign] [PEnd]\n[MDesign] [down TEnterCount no TLeaveCount] -> [MDesign] [PEnd]\n\n[MDesign] [up TEnterCount right TLeaveCount] -> [MDesign] [PJoiner]\n[MDesign] [left TEnterCount right TLeaveCount] -> [MDesign] [PJoiner]\n\n[MDesign] [right TEnterCount up TLeaveCount] -> [MDesign] [PSplitter]\n[MDesign] [right TEnterCount right TLeaveCount] -> [MDesign] [PLine]\n[MDesign] [right TEnterCount no TLeaveCount] -> [MDesign] [PEnd]\n[MDesign] [PChanged] -> [MDesign] [] (Nothing left, remove path marker)\n\n(DESIGN: Clean up counters)\n[MDesign] [TEnterCount] -> [MDesign] []\n[MDesign] [TLeaveCount] -> [MDesign] []\n[action Spawner] -> [Spawner]\n\n(DESIGN: Create/remove splitters where needed)\n[MDesign] [no PSplitter SplitterCondition] -> [MDesign] []\n[MDesign] [no PSplitter SplitterDir] -> [MDesign] []\n[MDesign] [no PSplitter SplitterFalseDir] -> [MDesign] []\n\n[MDesign] [PSplitter no SplitterCondition] [BoxFour] -> [MDesign] [PSplitter SplitterEqualFour] [BoxFour]\n[MDesign] [PSplitter no SplitterCondition] [BoxThree] -> [MDesign] [PSplitter SplitterEqualThree] [BoxThree]\n[MDesign] [PSplitter no SplitterCondition] -> [MDesign] [PSplitter SplitterEqualTwo]\n\n(DESIGN: For new/changed splitters, detect FALSE splitter direction)\n[MDesign] [no SplitterTrueUp no SplitterFalseDir SplitterDir ConveyorUpLeave] -> [MDesign] [SplitterFalseUp SplitterDir ConveyorUpLeave]\n[MDesign] [no SplitterTrueLeft no SplitterFalseDir SplitterDir ConveyorLeftLeave] -> [MDesign] [SplitterFalseLeft SplitterDir ConveyorLeftLeave]\n[MDesign] [no SplitterTrueDown no SplitterFalseDir SplitterDir ConveyorDownLeave] -> [MDesign] [SplitterFalseDown SplitterDir ConveyorDownLeave]\n[MDesign] [no SplitterTrueRight no SplitterFalseDir SplitterDir ConveyorRightLeave] -> [MDesign] [SplitterFalseRight SplitterDir ConveyorRightLeave]\n\n(START: Destroy editor UI)\n[MStart] [PopUpMenu] -> [MStart] []\n[MStart] [PopupMenuBackground] -> [MStart] []\n[MStart] [PopupMenuTarget] -> [MStart] []\n[MStart] [ConditionPreview] -> [MStart] []\n\n(START: Create breakpoint and put into correct position)\n[MStart] [PlayButton] -> [MStart] [PlayButton Breakpoint RetrievePoint]\nright [MStart] [Breakpoint no Box | ] -> [MStart] [ | Breakpoint]\nright [MStart] [RetrievePoint no Box | ] -> [MStart] [ | RetrievePoint]\n[MStart] [UndoButtonVisible] -> [MStart] [UndoButtonInvisible]\n\n(EXECUTE: Send boxes from breakpoint into level)\n[MExecute] [Breakpoint Box] [Spawner no Box] -> [MExecute] [right Breakpoint] [Spawner Box]\n\n(EXECUTE: Handle boxes on >= splitters)\n[MExecute] [SplitterOne Box] -> [MExecute] [SplitterOne action Box]\n[MExecute] [SplitterTwo TwoOrHigher] -> [MExecute] [SplitterTwo action TwoOrHigher]\n[MExecute] [SplitterThree ThreeOrHigher] -> [MExecute] [SplitterThree action ThreeOrHigher]\n[MExecute] [SplitterFour FourOrHigher] -> [MExecute] [SplitterFour action FourOrHigher]\n[MExecute] [SplitterFive FiveOrHigher] -> [MExecute] [SplitterFive action FiveOrHigher]\n[MExecute] [SplitterSix SixOrHigher] -> [MExecute] [SplitterSix action SixOrHigher]\n[MExecute] [SplitterSeven SevenOrHigher] -> [MExecute] [SplitterSeven action SevenOrHigher]\n\n(EXECUTE: Handle boxes on EQUAL splitters)\n[MExecute] [SplitterEqualOne BoxOne] -> [MExecute] [SplitterEqualOne action BoxOne]\n[MExecute] [SplitterEqualTwo BoxTwo] -> [MExecute] [SplitterEqualTwo action BoxTwo]\n[MExecute] [SplitterEqualThree BoxThree] -> [MExecute] [SplitterEqualThree action BoxThree]\n[MExecute] [SplitterEqualFour BoxFour] -> [MExecute] [SplitterEqualFour action BoxFour]\n[MExecute] [SplitterEqualFive BoxFive] -> [MExecute] [SplitterEqualFive action BoxFive]\n[MExecute] [SplitterEqualSix BoxSix] -> [MExecute] [SplitterEqualSix action BoxSix]\n[MExecute] [SplitterEqualSeven BoxSeven] -> [MExecute] [SplitterEqualSeven action BoxSeven]\n\n[MExecute] [Box SplitterCondition] -> [MExecute] [Box action SplitterCondition]\n\n(EXECUTE: Handle splitter FALSE path)\n[MExecute] [stationary Box SplitterFalseLeft] -> [MExecute] [left Box action SplitterFalseLeft] sfx10\n[MExecute] [stationary Box SplitterFalseUp] -> [MExecute] [up Box action SplitterFalseUp] sfx10\n[MExecute] [stationary Box SplitterFalseRight] -> [MExecute] [right Box action SplitterFalseRight] sfx10\n[MExecute] [stationary Box SplitterFalseDown] -> [MExecute] [down Box action SplitterFalseDown] sfx10\n\n(EXECUTE: Handle splitter TRUE path)\n[MExecute] [action Box SplitterTrueLeft] -> [MExecute] [left Box action SplitterTrueLeft] sfx9\n[MExecute] [action Box SplitterTrueUp] -> [MExecute] [up Box action SplitterTrueUp] sfx9\n[MExecute] [action Box SplitterTrueRight] -> [MExecute] [right Box action SplitterTrueRight] sfx9\n[MExecute] [action Box SplitterTrueDown] -> [MExecute] [down Box action SplitterTrueDown] sfx9\n\n(EXECUTE: Move boxes that are not on splitters)\n[MExecute] [stationary Box ConveyorRightLeave] -> [MExecute] [right Box ConveyorRightLeave]\n[MExecute] [stationary Box ConveyorDownLeave] -> [MExecute] [down Box ConveyorDownLeave]\n[MExecute] [stationary Box ConveyorLeftLeave] -> [MExecute] [left Box ConveyorLeftLeave]\n[MExecute] [stationary Box ConveyorUpLeave] -> [MExecute] [up Box ConveyorUpLeave]\n\n(EXECUTE: Boxes on OUT should go back)\n[MExecute] [Box Output] [RetrievePoint] -> [MExecute] [Output] [action Box right RetrievePoint]\n\n(EXECUTE: If box moved via output, mark if in/correct)\nup [MExecute] [right RetrievePoint BoxOne | BottomLabelOne] -> [MExecute] [right RetrievePoint BoxOne | BottomLabelOne BottomLabelCorrect]\nup [MExecute] [right RetrievePoint BoxTwo | BottomLabelTwo] -> [MExecute] [right RetrievePoint BoxTwo | BottomLabelTwo BottomLabelCorrect]\nup [MExecute] [right RetrievePoint BoxThree | BottomLabelThree] -> [MExecute] [right RetrievePoint BoxThree | BottomLabelThree BottomLabelCorrect]\nup [MExecute] [right RetrievePoint BoxFour | BottomLabelFour] -> [MExecute] [right RetrievePoint BoxFour | BottomLabelFour BottomLabelCorrect]\nup [MExecute] [right RetrievePoint BoxFive | BottomLabelFive] -> [MExecute] [right RetrievePoint BoxTwo | BottomLabelFive BottomLabelCorrect]\nup [MExecute] [right RetrievePoint BoxSix | BottomLabelSix] -> [MExecute] [right RetrievePoint BoxSix | BottomLabelSix BottomLabelCorrect]\nup [MExecute] [right RetrievePoint BoxSeven | BottomLabelSeven] -> [MExecute] [right RetrievePoint BoxSeven | BottomLabelSeven BottomLabelCorrect]\n\nup [MExecute] [right RetrievePoint Box | no BottomLabelCorrect] -> [MExecute] [right RetrievePoint Box | BottomLabelIncorrect]\n\n(EXECUTE/ERROR: Stop execution if no box moved)\n[MExecute] -> [action MError]\n[action MError] [moving Box] -> [MExecute] [moving Box]\n\n(ABORT: Destroy anything that shouldn't exist in design mode)\n[MAbort] [Box] -> [MAbort] []\n[MAbort] [Breakpoint] -> [MAbort] []\n[MAbort] [RetrievePoint] -> [MAbort] []\n[MAbort] [BottomLabelCorrect] -> [MAbort] []\n[MAbort] [BottomLabelIncorrect] -> [MAbort] []\n[MAbort] [UndoButtonInvisible] -> [MAbort] [UndoButtonVisible]\n\n(ABORT: Move boxes back where they belong)\ndown [MAbort] [TopLabelOne | no Box] -> [MAbort] [TopLabelOne | BoxOne]\ndown [MAbort] [TopLabelTwo | no Box] -> [MAbort] [TopLabelTwo | BoxTwo]\ndown [MAbort] [TopLabelThree | no Box] -> [MAbort] [TopLabelThree | BoxThree]\ndown [MAbort] [TopLabelFour | no Box] -> [MAbort] [TopLabelFour | BoxFour]\ndown [MAbort] [TopLabelFive | no Box] -> [MAbort] [TopLabelFive | BoxFive]\ndown [MAbort] [TopLabelSix | no Box] -> [MAbort] [TopLabelSix | BoxSix]\ndown [MAbort] [TopLabelSeven | no Box] -> [MAbort] [TopLabelSeven | BoxSeven]\n\n(Mark turn as nosave)\n[ShouldDiscardTurn] -> [] nosave\n[ShouldSaveTurn] -> []\n\n(Delete temp mouse objects)\n[Click] -> []\n[Drag] -> []\n[Release] -> []\n\n==============\nWINCONDITIONS\n==============\n\nsome BottomLabelCorrect\nall BottomLabel on BottomLabelCorrect\n\n=======\nLEVELS\n=======\n\nsection Help: Drawing\nmessage Drag a conveyor from IN to OUT with the MOUSE. Then click the PLAY button!\n\n-////////_\n//////////\n//////////\n/>..................x/.//.//\n//./....//\n//.////.//\n//......//\n:/~//////;\n,,|,!@#$,,\n,,},3241,,\n\nsection B: 321\n-////////_\n////....x.x.////\n//./..////\n//....////\n:/~//////;\n,,|,!@#,,,\n,,},321,,,\n\nsection C: 4213\n-////////_\n/>x.x................/\n///.//././\n/......../\n/././/././\n/......././/./....../\n/......../\n/......<./\n//......//\n:~///////;\n,|,!@#$%^,\n,},614352,\n\nsection H: 521364\n-////////_\n//......./\n/.....././\n/...><.../\n/./xx.x../\n/.......//\n:~///////;\n,|,!@#$%^,\n,},521364,\n\nsection I: 645321\n-////////_\n/.x....../\n/......../\n/.>....<./\n/.xx.x.../\n/......../\n:~///////;\n,|,!@#$%^,\n,},645321,\n\nsection Credits\nmessage Thank you for playing!\nmessage Game by Tom Hermans [@Auroriax] for the \"Thinky Games are for Everyone\" jam. Color palette generated using coolors.co.\n",["line 1375 : You named an object \"|\", but this is a keyword. Don't do that!","line 1382 : You named an object \">\", but this is a keyword. Don't do that!","line 1383 : You named an object \"<\", but this is a keyword. Don't do that!","line 1398 : You named an object \"^\", but this is a keyword. Don't do that!"],0] + ], + + +[ + "Gridblocked", + ["title Gridblocked\nauthor Tom Hermans [@Auroriax]\nhomepage auroriax.com\nbackground_color #222222\n\n(VERSION HISTORY:\nv4 - Fixes issue that multiple cursors could appear. Re-exported using engine version 1706\nv3 - Re-exported using engine version ~1694\nv2 - Fixes some minor graphical issues.\nv1 - Initial release\n)\n\n(If you want to work on the game or add more puzzles or something, note the following limitations:\n\n- Cars cannot start through portals. This can probably be implemented, but it requires a lot of lines of code, so I worked around it for the base game.\n- Blocks can only be stretched in one direction (you can have 2x1 or even 5x1 blocks, but NOT 2x2 blocks or other shapes like tetrominos).\n- Warps that transport blocks horizontally, can ONLY be placed on vertically moving blocks (not on horizontal blocks), and vice verca.\n\nHope this helps!\n)\n\nsprite_size 32\n\nlevel_select\nlevel_select_solve_symbol *\ncontinue_is_level_select\nlevel_select_lock\nlevel_select_unlocked_ahead 2\n\nmouse_left Click\nmouse_drag Drag\n\nrun_rules_on_level_start\n\n(Monogram by Datagoblin: https://datagoblin.itch.io/monogram)\ncustom_font data:font/otf;base64,AAEAAAAOAIAAAwBgRkZUTWdlp94AACgkAAAAHEdERUYAnQAkAAAn/AAAAChPUy8yhSVxUgAAAWgAAABWY21hcNRX7YMAAAKkAAABWmN2dCAAIgKIAAAEAAAAAARnYXNw//8AAQAAJ/QAAAAIZ2x5Zq/uhc8AAATkAAAgOGhlYWQOkNqhAAAA7AAAADZoaGVhBCwBBQAAASQAAAAkaG10eAfLA6IAAAHAAAAA5GxvY2G6A7H4AAAEBAAAAN5tYXhwALkAZQAAAUgAAAAgbmFtZW6O2q8AACUcAAABwnBvc3TXzlJDAAAm4AAAARMAAQAAAAEAADLOjtdfDzz1AB8EAAAAAADW7su9AAAAANbuy70AAP+AAYACqgAAAAgAAgAAAAAAAAABAAACqv+AAAABgAAAAAABgAABAAAAAAAAAAAAAAAAAAAABAABAAAAbgA0AAkAAAAAAAIAAAABAAEAAABAAC4AAAAAAAEBgAH0AAUACAKZAswAAACPApkCzAAAAesAMwEJAAACAAYJAAAAAAAAAAAAAwABAAIAAAAAAAAAADJ0dGYAQAAgMAADAP8AAAACqgCAAAAAAQAAAAAAAAF2ACIAAAAAAVUAAAGAAAAAgABAAAAAAAAAAAAAgACAAEAAQAAAAEAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQACAAEAAAAAAAIAAAAAAAAAAAACAAAAAQAAAAAAAAAAAAAMAAAADAAAAHAABAAAAAABUAAMAAQAAABwABAA4AAAACgAIAAIAAgB+AKkgrDAA//8AAAAgAKAgrDAA////4//C38DQbQABAAAAAAAAAAAAAAAAAQYAAAEAAAAAAAAAAQIAAAACAAAAAAAAAAAAAAAAAAAAAQAAAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlaQAAAABrAABqAAAAAAAAAGcAAAAAAAAAAAAAAABjAAAAAAAAAABiAAAAAAAAAAAAAAAAAAAAAGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiAogAAAAqACoAKgAqAEAAWACGALgA6gEmATYBUgFuAZoBtgHIAdwB6gIMAkICYAKUAswC8gMiA1QDdgO0A+oEAAQcBEYEZASMBLgE7gUaBUwFfAWkBcwF6gYgBkQGZgaIBrwG1gcAByoHWAd8B64H3AgYCDIIWAiECLAI7gkWCUgJYAmECZwJwAnSCeQKCAowClwKhAquCtYLBAsoC0oLdAugC74L5AwEDC4MVAx8DJwMygzuDRANNg1iDZgNxA3sDhAOIg5GDmQOZA56DqoO3A8KD0IPWg+aD6wP5BAcEBwAAAACACIAAAEyAqoAAwAHAC6xAQAvPLIHBADtMrEGBdw8sgMCAO0yALEDAC88sgUEAO0ysgcGAfw8sgECAO0yMxEhESczESMiARDuzMwCqv1WIgJmAAACAIAAAADAAcAAAwAPAAAzNTMVJz0EMx0EgEBAQEBAgEBAQEBAQEBAQEAAAAIAQAEAAQABwAAHAA8AABM9AjMdAiM9AjMdAsBAwEABAEBAQEBAQEBAQEBAQAAAAAIAAAAAAUABgAAdACMAADM1IxUjNSM1Mz0BIzUzNTMVMzUzFTMVIx0BMxUjFSc9ASMdAcBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgEBAQEAAAAAAAgAAAAABQAHAACMAJwAAMzUrATU7ATUjNSM1MzUzNTMVOwEVKwEVMxUzFSM1IxUzFSMVAzUjFYBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAQBAQAAAAAcAAAAAAUABwAAFAAsAEQAVABkAHQAjAAAhPQEzHQEhPQEzHQEDPQEzHQI1MxU9ATMVPQEzFT0CMx0BAQBA/sBAQEBAQEBAQEBAQEBAQEABQEBAQEDAQEBAQEBAQEBAQEBAQAAFAAAAAAFAAcAAAwAJACEAJwAtAAAhNTMVJzMVKwE1MyM9ASsBHQEjPQEzNTsBPQEzHQEzFSMVJyM9ATMVNysBNTsBAQBAwEBAQMBAQEBAQEBAQEBAwEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAQEBAQEAAAAABAIABAADAAcAABwAAEz0CMx0CgEABAEBAQEBAQAAAAAMAgAAAAQABwAADAA8AEwAAMzUzFScjPQQzHQMRNTMVwEBAQEBAQEBAQEBAQEBAQEBAAQBAQAAAAwBAAAAAwAHAAAMADwATAAAzNTMVPQUzHQQDIzUzQEBAQEBAQEBAQEBAQEBAQEBAQAFAQAAAAAADAEAAQAGAAYAAFwAbAB8AADc9ASMVIzUzNTM9ATMdATMVMxUjNSMdATc1MxUhIzUzwEBAQEBAQEBAQEBA/wBAQEBAQEBAQEBAQEBAQEBAQMBAQEAAAAAAAQAAAEABQAGAABMAADc9ASsBNTsBPQEzHQE7ARUrAR0BgEBAQEBAQEBAQEBAQEBAQEBAQEBAAAACAED/wADAAIAAAwAJAAAXNTMVPQIzHQFAQEBAQEBAQEBAQAABAAAAwAFAAQAACwAAATMVKwQ1OwIBAEBAQEBAQEBAQAEAQEAAAAAAAQCAAAAAwACAAAUAADM9ATMdAYBAQEBAQAAAAAUAAAAAAUABwAAFAAkADQARABcAADE9ATMdAT0BMxU9ATMVPQEzFT0CMx0BQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEAAAwAAAAABQAHAAAcAJwAvAAA3MxUrAjU7AT0CIxUjFSMVIz0EMx0CMzUzNTM1Mx0EAysCNTsCwEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAUBAAAAAAQAAAAABQAHAABkAACUzFSsENTsBPQMjNTM1Mx0FAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAABgAAAAABQAHAAAMAEQAVABkAHwAnAAARNTMVEzMVKwQ1MzUzFTMnNTMVPQEzFT0CMx0BJysCNTsCQMBAQEBAQEBAQEBAQEBAQEBAQEBAQAFAQED/AEBAQEBAQEBAQEBAQEBAQIBAAAAHAAAAAAFAAcAAAwALABEAFQAbACEAKQAAETUzFRMzFSsCNTsBPQEzHQEhIzUzNysBNTsBMT0BMx0BJysCNTsCQIBAQEBAQIBA/wBAQMBAQEBAQEBAQEBAQEABQEBA/wBAQEBAQEBAQEBAQEBAgEAAAgAAAAABQAHAABkAHwAAIT0CKwM9ATMVOwI9AjMdBgE9ATMdAQEAQEBAQEBAQEBA/wBAQEBAQEBAQEBAQEBAQEBAQAFAQEBAQAAAAAQAAAAAAUABwAAHAA8AEwApAAA3MxUrAjU7AT0CMx0CISM1MzcrAz0COwQVKwMVOwLAQEBAQECAQP8AQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAQEBAQEAAAAQAAAAAAUABwAAHAA0AHwAnAAA3MxUrAjU7AT0BMx0BISM9BDMdATsCFSsCFRMzFSsCNTPAQEBAQECAQP8AQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAUBAQAAAAAADAAAAAAFAAcAABwALABsAADM9AjMdAj0BMxU9AisDNTsEHQKAQEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAAAAAAAcAAAAAAUABwAAHAA0AEwAbACEAJwAvAAA3MxUrAjU7AT0BMx0BISM9ATMVNysCNTsCMT0BMx0BISM9ATMVNysCNTsCwEBAQEBAgED/AEBAwEBAQEBAQED/AEBAwEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAFAAAAAAFAAcAABwAZAB0AIwArAAA3MxUrAjU7AT0BKwI1OwI9ATMdBCEjNTM1Iz0BMxU3KwI1OwLAQEBAQECAQEBAQEBAQP8AQEBAQMBAQEBAQEBAQEBAQEBAQEBAQEBAQIBAQEBAQAAAAAACAIAAAADAAYAABQALAAAzPQEzHQEDPQEzHQGAQEBAQEBAQAEAQEBAQAAAAAMAQP/AAMABgAADAAkADwAAFzUzFRE9ATMdAQM9ATMdAUBAQEBAQEBAAUBAQEBA/wBAQEBAAAAABQAAAEABQAGAAAUACwAPABUAGwAAJTMVKwE1MSsBNTsBKwE1MzczFSsBNTczFSsBNQEAQEBAQEBAQIBAQEBAQEDAQEBAgEBAQEBAQEBAQEAAAAAAAgAAAIABQAFAAAsAFwAAJTMVKwQ1OwI3MxUrBDU7AgEAQEBAQEBAQEBAQEBAQEBAQEBAQMBAQIBAQAAABQAAAEABQAGAAAUACwAPABUAGwAANzMVKwE1NzMVKwE1MzUzFScrATU7ASsCNTsBQEBAQMBAQECAQEBAQEBAgEBAQECAQEBAQEBAQEBAQAAGAAAAAAFAAcAAAwAHAAsADwAVAB0AADM1MxUnNTMVJzUzFRc1MxU9AjMdAScrAjU7AoBAQEDAQIBAQEBAQEBAQEBAQIBAQMBAQIBAQEBAQEBAgEAAAAAABAAAAAABQAHAAAcAEwAnAC0AADczFSsCNTMrAT0EMx0DMyM1Iz0BMzUrATU7AhUzHQMnPQEjHQHAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAgAAAAABQAHAAB8AJwAAIT0BKwIdASM9BTMdAjsCPQIzHQUDKwI1OwIBAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAYBAAAAAAAIAAAAAAUABwAAJAC0AADczPQErAh0BMxcrAj0GOwMVMx0BIz0BKwIdATsCFTMdASMVwEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAFAAAAAAFAAcAAAwALAA8AGwAjAAABNTMVAzMVKwI1OwE1MxUhIz0EMx0DEysCNTsCAQBAgEBAQEBAgED/AEBAwEBAQEBAQAFAQED/AEBAQEBAQEBAQEBAQEABAEAAAAACAAAAAAFAAcAADwAnAAA3Mz0EKwIdBDMXKwI9BjsDFTMdBCMVwEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAEAAAAAAUABwAAlAAAlMxUrBD0GOwQVKwMdATsCFSsCHQE7AQEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAQAAAAABQAHAAB0AADE9BjsEFSsDHQE7AhUrAh0CQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAABQAAAAABQAHAAAMACwAXACMAKwAAATUzFQMzFSsCNTsBPQErATU7Ah0CISM9BDMdAxMrAjU7AgEAQIBAQEBAQIBAQEBAQP8AQEDAQEBAQEBAAUBAQP8AQEBAQEBAQEBAQEBAQEBAQEABAEAAAQAAAAABQAHAACMAACE9AisCHQIjPQYzHQI7Aj0CMx0GAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAQAAAAABQAHAAB8AACUzFSsENTsBPQQrATU7BBUrAR0EAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAADAAAAAAFAAcAABwAVABsAADczFSsCNTsBPQUzHQUhIz0BMxXAQEBAQECAQP8AQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAUAAAAAAUABwAADAB0AIQAlACkAACE1MxUhPQYzHQIzFTMVMxUjNSM1Ix0CEzUzFT0BMxU9ATMVAQBA/sBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAQBAQEBAQEBAQAAAAQAAAAABQAHAABcAACUzFSsEPQYzHQU7AQEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAIAAAAAAUABwAAVACcAACE9BCMVIzUzNTM1Mx0GIT0GMxUzFSMdBAEAQEBAQED+wEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAIAAAAAAUABwAARACcAACE9ASM1Mz0DMx0GIT0GMx0BMxUzFSM1Ix0DAQBAQED+wEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAQAAAAAAUABwAAHABMAHwAnAAA3MxUrAjU7AT0EMx0EISM9BDMdAxMrAjU7AsBAQEBAQIBA/wBAQMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAQBAAAAAAQAAAAABQAHAACEAADE9BjsDFTMdASM9ASsCHQE7AhUrAh0CQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAABAAA/8ABQAHAAAsAFwAjACsAAAUjNSsBNTsCFTMVJz0EMx0EISM9BDMdAxMrAjU7AgEAQEBAQEBAQEBA/wBAQMBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAAQBAAAIAAAAAAUABwAAHACkAACE9AjMdAiE9BjsDFTMdASM9ASsCHQE7AhUrAh0CAQBA/sBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAABwAAAAABQAHAAAMACwARABUAHQAjACsAAAE1MxUDMxUrAjU7AT0BMx0BISM1MzcrAjU7AisBPQEzFTcrAjU7AgEAQIBAQEBAQIBA/wBAQMBAQEBAQEDAQEDAQEBAQEBAAUBAQP8AQEBAQEBAQEBAQEBAQEAAAAAAAQAAAAABQAHAABcAADM9BSsBNTsEFSsBHQWAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAMAAAAAAUABwAAHABUAIwAANzMVKwI1OwE9BTMdBSEjPQUzHQTAQEBAQECAQP8AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAFAAAAAAFAAcAAAwAJAA8AGQAjAAAzNTMVPQIzHQErAT0BMxU3PQMzHQMhIz0DMx0CgEBAgEBAgED/AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAwAAAAABQAHAABEAIwAnAAAhNSM1Mz0EMx0GIT0GMx0EMxUjFTcjNTMBAEBAQP7AQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQIBAAAAAAAkAAAAAAUABwAAFAAsADwATABcAGwAfACUAKwAAIT0BMx0BIT0BMx0BNyM1Mwc1MxU3IzUzMTUzFSsBNTsBPQEzHQEhIz0BMxUBAED+wEDAQEDAQEBAQECAQECAQP8AQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAAAAFAAAAAAFAAcAACQANABEAFwAdAAAzPQMzHQMRNTMVKwE1OwE9ATMdASEjPQEzFYBAQIBAQIBA/wBAQEBAQEBAQEBAAQBAQEBAQEBAQEBAAAUAAAAAAUABwAANABEAFQAZACcAACUzFSsEPQEzFTsBJzUzFT0BMxU9ATMVPQErAzU7BB0BAQBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAABAIAAAAEAAcAAEwAAMyM9BjsBFSMdBDMVwEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAFAAAAAAFAAcAABQAJAA0AEQAXAAAhPQEzHQEnIzUzKwE1MysBNTMrAT0BMxUBAEBAQEBAQEBAQEBAQEBAQEBAgEBAQEBAQAABAEAAAADAAcAAEwAAMyM1Mz0EIzU7AR0GgEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAFAAABAAFAAcAAAwAHAAsADwATAAABNTMVITUzFTcjNTMHNTMVNyM1MwEAQP7AQMBAQMBAQEBAAQBAQEBAQEBAQEBAQAAAAAABAAAAAAFAAEAACwAAJTMVKwQ1OwIBAEBAQEBAQEBAQEBAQAACAEABQADAAcAAAwAHAAATNTMVJyM1M4BAQEBAAUBAQEBAAAACAAAAAAFAAUAAEwAfAAAhKwI1Iz0CMzU7Ax0EJzM9AisCHQIzAQBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAACAAAAAAFAAcAACwAjAAA3Mz0CKwIdAjMXKwI9BjMdATsCFTMdAiMVwEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAUAAAAAAUABQAADAAsADwAXAB8AACU1MxUHMxUrAjU7ATUzFSEjPQIzHQE3KwI1OwIBAECAQEBAQECAQP8AQEDAQEBAQEBAwEBAgEBAQEBAQEBAQIBAAAACAAAAAAFAAcAAFwAjAAAhKwI1Iz0CMzU7Aj0BMx0GJzM9AisCHQIzAQBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAMAAAAAAUABQAAHABkAIQAANzMVKwI1MysBPQIzFTsCNTMdASsDNysCNTsCwEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQIBAAAAAAAMAAAAAAUABwAATABcAHQAAMz0CIzUzPQEzHQE7ARUrAR0CEzUzFScrATU7AUBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQAFAQEBAQAAAAwAA/4ABQAFAAAcAHQApAAAXMxUrAjU7ATUrAjUjPQIzNTsDHQUnMz0CKwIdAjPAQEBAQECAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAgEBAQEBAQAACAAAAAAFAAcAACQAfAAAhPQMzHQMhPQYzHQE7AhUrAh0DAQBA/sBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAACAAAAAAFAAcAAAwAZAAATNTMVEzMVKwQ1OwE9AiM1OwEdA4BAQEBAQEBAQEBAQEBAAYBAQP7AQEBAQEBAQEBAQAAAAAQAAP+AAUABwAADAAsAGwAfAAABNTMVAzMVKwI1OwE9BCM1OwEdBSEjNTMBAECAQEBAQECAQEBA/wBAQAGAQED+QEBAQEBAQEBAQEBAQEBAQAAAAAQAAAAAAUABwAADABsAHwAjAAAhNTMVIT0GMx0DOwEVMxUjNSsBHQE3NTMVPQEzFQEAQP7AQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQMBAQEBAQAACAAAAAAFAAcAABwAXAAAlMxUrAjUzKwE9BCM1OwEdBAEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAACAAAAAAFAAUAACQAjAAAhPQMzHQMjPQMjHQMjPQQ7AxUjHQMBAEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAgAAAAABQAFAAAkAGwAAIT0DMx0DIT0EOwMVKwIdAwEAQP7AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAQAAAAAAUABQAAHAA8AFwAfAAA3MxUrAjU7AT0CMx0CISM9AjMdATcrAjU7AsBAQEBAQIBA/wBAQMBAQEBAQEBAQEBAQEBAQEBAQEBAQIBAAAAAAAEAAP+AAUABQAAjAAAVPQY7AxUzHQIjPQIrAh0COwIVKwIdAUBAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAACAAD/gAFAAUAAFwAjAAAFPQErAjUjPQIzNTsDHQYnMz0CKwIdAjMBAEBAQEBAQEBAQIBAQEBAQIBAQEBAQEBAQEBAQEBAQMBAQEBAQEAAAAMAAAAAAUABQAANABEAFwAAMT0EMxUzFSMdAjc1MxUnKwE1OwFAQEDAQEBAQEBAQEBAQEBAQEBAQMBAQEBAAAAFAAAAAAFAAUAACQANABUAGQAjAAA3MxUrAzU7AjUzFScrAjU7AisBNTM3MxUrAzU7AcBAQEBAQEBAgEBAQEBAQEBAwEBAwEBAQEBAQEBAQEBAQEBAQEBAQAAAAAIAAAAAAUABwAAHABsAACUzFSsCNTMrAT0CIzUzPQEzHQE7ARUrAR0BAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAIAAAAAAUABQAARABsAACErAjU7Aj0DMx0EJSM9AzMdAgEAQEBAQEBAQP8AQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAABQAAAAABQAFAAAMABwALABMAGwAAMzUzFT0BMxUrATU7AT0CMx0CISM9AjMdAYBAQIBAQIBA/wBAQEBAQEBAQEBAQEBAQEBAQEBAAAUAAAAAAUABQAADAAcAEQAXACEAADM1MxUjNTMVNz0DMx0DKwE9ATMVByM9AzMdAsBAwECAQIBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAJAAAAAAFAAUAAAwAHAAsADwATABcAGwAfACMAACE1MxUhNTMVNyM1Mwc1MxU3IzUzMTUzFSsBNTsBNTMVISM1MwEAQP7AQMBAQMBAQEBAQIBAQIBA/wBAQEBAQEBAQEBAQEBAQEBAQEBAAAADAAD/gAFAAUAABwAbACUAABczFSsCNTsBNSsCNTsCPQMzHQUlIz0DMx0CwEBAQEBAgEBAQEBAQED/AEBAQEBAQEBAQEBAQEBAQEBAgEBAQEBAQEAAAAAAAwAAAAABQAFAAA0AEQAfAAAlMxUrBDUzNTMVMyc1MxU9ASsCNTsEFSMVAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAFAEAAAAEAAcAAAwAJAA0AEwAXAAAzNTMVJyM9ATMVJyM1MzE9ATMdAT0BMxXAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgEBAAAABAIAAAADAAcAADwAAMz0GMx0GgEBAQEBAQEBAQEBAQEBAQAAFAEAAAAEAAcAAAwAJAA0AEwAXAAAzNTMVPQIzHQE9ATMVJyM9ATMVJyM1M0BAQEBAQEBAQEBAQEBAQEBAgEBAQEBAQEBAAAAEAAABQAFAAcAAAwAJAA0AEQAAETUzFTczFSsBNTM1MxUrATUzQIBAQECAQMBAQAFAQEBAQEBAQEAAAAACAIAAAADAAcAACwAPAAAzPQQzHQQDNTMVgEBAQEBAQEBAQEBAQEABgEBAAAMAAAAAAUABwAAbAB8AJwAAMzUjNSM9AjM1MzUzFTMVMxUjNSMdAjMVIxU3NTMVIz0CIx0CgEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQECAQEBAQEBAQEAAAAMAAAAAAUABwAADAB8AJQAAATUzFQMzFSsENTM9ASM1Mz0BMx0BOwEVKwEdATMTKwE1OwEBAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEABQEBA/wBAQEBAQEBAQEBAQEABQEAAAAAGAAAAQAFAAYAAAwAHABMAFwAbAB8AACU1MxUhNTMVNysCPQI7Ah0BIzUjFTc1MxUhIzUzAQBA/sBAwEBAQEBAQEBAgED/AEBAQEBAQEBAQEBAQEBAQIBAQEAAAAUAAAAAAUABwAAbAB8AIwAnACsAADM1KwE1OwE1KwE1OwE1MxU7ARUrARU7ARUrARURNTMVKwE1OwE1MxUhIzUzgEBAQEBAQEBAQEBAQEBAQEBAQIBAQIBA/wBAQEBAQEBAQEBAQEABQEBAQEBAQAACAIAAAADAAcAABwAPAAAzPQIzHQIDPQIzHQKAQEBAQEBAQEBAAQBAQEBAQEAAAAAIAAAAAAFAAcAACQANABUAGQAdACUAKQAzAAA3MxUrAzU7AjUzFScrAjU7AjE1MxUhIzU7ASsCNTsCKwE1MzczFSsDNTsBwEBAQEBAQECAQEBAQEBAQEBA/wBAQMBAQEBAQEDAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAIAQAGAAQABwAADAAcAABM1MxUjNTMVwEDAQAGAQEBAQAAAAAQAAAAAAUABwAAXACMAJwAvAAAzKwE1Iz0EMzU7AhUzHQQjFSc1Iz0CIx0CMxU3NSMVNzUjNSMVMxXAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgEBAQEAAAAAFAAAAAAFAAcAAAwAJAA0AIQAnAAABNTMVAzMVKwE1MzUzFSsBNSM1MzUjNTM1MxUzFSMVMxUjEysBNTsBAQBAgEBAQIBAwEBAQEBAQEBAQECAQEBAQAFAQED/AEBAQEBAQEBAQEBAQEABAEAAAAAAAAAOAK4AAQAAAAAAAAAPACAAAQAAAAAAAQAIAEIAAQAAAAAAAgAGAFkAAQAAAAAAAwAYAJIAAQAAAAAABAAIAL0AAQAAAAAABQAQAOgAAQAAAAAABgAIAQsAAwABBAkAAAAeAAAAAwABBAkAAQAQADAAAwABBAkAAgAMAEsAAwABBAkAAwAwAGAAAwABBAkABAAQAKsAAwABBAkABQAgAMYAAwABBAkABgAQAPkAVgBpAG4AaQBjAGkAdQBzAE0AZQBuAGUAegBpAG8AAFZpbmljaXVzTWVuZXppbwAAbQBvAG4AbwBnAHIAYQBtAABtb25vZ3JhbQAATQBlAGQAaQB1AG0AAE1lZGl1bQAAVgBpAG4AaQBjAGkAdQBzAE0AZQBuAGUAegBpAG8AOgBtAG8AbgBvAGcAcgBhAG0AAFZpbmljaXVzTWVuZXppbzptb25vZ3JhbQAAbQBvAG4AbwBnAHIAYQBtAABtb25vZ3JhbQAAVgBlAHIAcwBpAG8AbgAgADAAMAAxAC4AMAAwADAAIAAAVmVyc2lvbiAwMDEuMDAwIAAAbQBvAG4AbwBnAHIAYQBtAABtb25vZ3JhbQAAAAACAAAAAAAA/4AAMwAAAAAAAAAAAAAAAAAAAAAAAAAAAG4AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYABhAQIAowCEAIUAvQCWAOgAhgCOAIsBAwEEB3VuaTAwQTAERXVybwd1bmkzMDAwAAAAAAH//wAAAAEAAAAOAAAAGAAgAAAAAgABAAEAbQABAAQAAAACAAAAAQAAAAEAAAAAAAEAAAAAx/6w3wAAAADIeCtBAAAAANbuy70=\n\n========\nOBJECTS\n========\n\nInit\nwhite\n\nWall #\n#222222\n\nBackground .\n#555555\n\nTrail\ntransparent\n\nClick\nblue\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n...............................0\n\nDrag copy:Click\nyellow\n\nPrevDrag\ntransparent\n\nPlayer P\ntransparent\n\nTarget $\nwhite\n................................\n................................\n................................\n................................\n................................\n................................\n....................00..........\n....................000.........\n....................0000........\n....................00000.......\n....................000000......\n....................0000000.....\n....................00000000....\n....................000000000...\n......000000000000000000000000..\n......000000000000000000000000..\n......000000000000000000000000..\n......000000000000000000000000..\n....................000000000...\n....................00000000....\n....................0000000.....\n....................000000......\n....................00000.......\n....................0000........\n....................000.........\n....................00..........\n................................\n................................\n................................\n................................\n................................\n................................\n\nTargetCrate 0\nwhite #F02424 #a8a8a8\n................................\n................................\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111100111111001111110011111100\n01111100011111000111110001111100\n00111100001111000011110000111100\n00111100001111000011110000111100\n00111100001111000011110000111100\n00111100001111000011110000111100\n01111100011111000111110001111100\n11111100111111001111110011111100\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n22222222222222222222222222222222\n22222222222222222222222222222222\n22222222222222222222222222222222\n22222222222222222222222222222222\n................................\n................................\n\nHor1 1\n#a8a8a8 #000000\n................................\n................................\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n00000000000000000000000000000000\n00000000000000000000000000000000\n00000000000000000000000000000000\n00000000000000000000000000000000\n................................\n................................\n\nHor2 2 copy:Hor1\n#a8a8a8 #040404\n\nHor3 3 copy:Hor1\n#a8a8a8 #080808\n\nHor4 4 copy:Hor1\n#a8a8a8 #0b0b0b\n\nHor5 5 copy:Hor1\n#a8a8a8 #101010\n\nHor6 6 copy:Hor1\n#a8a8a8 #141414\n\nHor7 7 copy:Hor1\n#a8a8a8 #181818\n\nVer1 a\nWHITE\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n\nVer2 b copy:Ver1\n#fdfdfd\n\nVer3 c copy:Ver1\n#fbfbfb\n\nVer4 d copy:Ver1\n#f9f9f9\n\nVer5 e copy:Ver1\n#f7f7f7\n\nVer6 f copy:Ver1\n#f5f5f5\n\nVer7 g copy:Ver1\n#f3f3f3\n\nVer8 h copy:Ver1\n#f1f1f1\n\nCursor\nWhite #333333\n00000000................00000000\n01111110................01111110\n01111110................01111110\n01100000................00000110\n0110........................0110\n0110........................0110\n0110........................0110\n0000........................0000\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n0000........................0000\n0110........................0110\n0110........................0110\n0110........................0110\n01100000................00000110\n01111110................01111110\n01111110................01111110\n00000000................00000000\n\nWarp1\n#F02424 #555555 transparent transparent\n................................\n................................\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n................................\n\nWarp2 copy:Warp1\ntransparent transparent #F02424 #555555\n\nWarp3\n#F02424 #555555 transparent transparent\n................................\n................................\n11000000000000....22222222222233\n11000000000000....22222222222233\n1100000000000......2222222222233\n110000000000........222222222233\n11000000000..........22222222233\n1100000000............2222222233\n110000000..............222222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n110000000..............222222233\n1100000000............2222222233\n11000000000..........22222222233\n110000000000........222222222233\n1100000000000......2222222222233\n11000000000000....22222222222233\n11000000000000....22222222222233\n................................\n................................\n\nWarp4 copy:Warp3\ntransparent transparent #F02424 #555555\n\nWarpA\n#F02424 #555555 transparent transparent\n..3333333333333333333333333333..\n..3333333333333333333333333333..\n..2222222222222222222222222222..\n..2222222222222222222222222222..\n..2222222222222222222222222222..\n..2222222222222222222222222222..\n..2222222222222222222222222222..\n..2222222222222222222222222222..\n.........22222222222222.........\n..........222222222222..........\n...........2222222222...........\n............22222222............\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n............00000000............\n...........0000000000...........\n..........000000000000..........\n.........00000000000000.........\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..1111111111111111111111111111..\n..1111111111111111111111111111..\n\nWarpB copy:WarpA\ntransparent transparent #F02424 #555555\n\nWarpC\n#F02424 #555555 transparent transparent\n..3333333333333333333333333333..\n..3333333333333333333333333333..\n..2222222222222222222222222222..\n..2222222222222222222222222222..\n..2222222222222222222222222222..\n..2222222222222222222222222222..\n..2222222222222222222222222222..\n..2222222222222222222222222222..\n..2222222222222..2222222222222..\n..222222222222....222222222222..\n...2222222222......2222222222...\n....22222222........22222222....\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n....00000000........00000000....\n...0000000000......0000000000...\n..000000000000....000000000000..\n..0000000000000..0000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..1111111111111111111111111111..\n..1111111111111111111111111111..\n\nWarpD copy:WarpC\ntransparent transparent #F02424 #555555\n\nLeftEdge\n#555555 transparent white\n00000000000000000000000000000000\n00000000000000000000000000000000\n0000000.........................\n00000...........................\n0000............................\n000.............................\n000.............................\n00..............................\n00..............................\n00..............................\n00......22......................\n00.....222......................\n00....2222......................\n00....2222......................\n00....2222......................\n00....2222......................\n00.....222......................\n00......22......................\n00..............................\n00..............................\n00..............................\n001.............................\n001.............................\n0011............................\n00111...........................\n0001111.........................\n000.............................\n0000............................\n00000...........................\n0000000.........................\n00000000000000000000000000000000\n00000000000000000000000000000000\n\nLeftEdgeIndent copy:LeftEdge\ntransparent #a8a8a8 transparent\n\nRightEdge\n#555555 transparent white\n00000000000000000000000000000000\n00000000000000000000000000000000\n.........................0000000\n...........................00000\n............................0000\n.............................000\n.............................000\n..............................00\n..............................00\n..............................00\n......................22......00\n......................222.....00\n......................2222....00\n......................2222....00\n......................2222....00\n......................2222....00\n......................222.....00\n......................22......00\n..............................00\n..............................00\n..............................00\n.............................100\n.............................100\n............................1100\n...........................11100\n.........................1111000\n.............................000\n............................0000\n...........................00000\n.........................0000000\n00000000000000000000000000000000\n00000000000000000000000000000000\n\nRightEdgeIndent copy:RightEdge\ntransparent #a8a8a8 transparent\n\nTopEdge\n#555555 white black\n00000000000000000000000000000000\n00000000000000000000000000000000\n0000000..................0000000\n00000......................00000\n0000........................0000\n000..........................000\n000...........2222...........000\n00...........222222...........00\n00..........22222222..........00\n00..........22222222..........00\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n\nBottomEdge\n#555555 #00000060 black\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n............22222222............\n............22222222............\n.............222222.............\n..............2222..............\n..1..........................1..\n..1..........................1..\n..11........................11..\n..1111....................1111..\n..0111111111111111111111111110..\n..0111111111111111111111111110..\n..0011111111111111111111111100..\n..0000111111111111111111110000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n\nSign\ntransparent white\n................................\n................................\n................................\n................................\n....111111111111111111111111....\n..1111111111111111111111111111..\n.111111111111111111111111111111.\n.111100000000000000000000001111.\n11110000000000000000000000001111\n11100000000000000000000000000111\n11100000000000000000000000000111\n11100000000000000000000000000111\n11100000000000000000000000000111\n11100000000000000000000000000111\n11100000000000000000000000000111\n11100000000000000000000000000111\n11100000000000000000000000000111\n11100000000000000000000000000111\n11100000000000000000000000000111\n11100000000000000000000000000111\n11100000000000000000000000000111\n11100000000000000000000000000111\n11100000000000000000000000000111\n11110000000000000000000000001111\n.111100000000000000000000001111.\n.111111111111111111111111111111.\n..1111111111111111111111111111..\n....111111111111111111111111....\n................................\n................................\n................................\n................................\n\nSignOne\nwhite transparent\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n........000.......1111..........\n........0000.....111111.........\n..........00....111..111........\n..........00....11....11........\n..........00....11....11........\n..........00....11....11........\n..........00....11111111........\n..........00....11111111........\n..........00....11....11........\n..........00....11....11........\n........000000..11....11........\n........000000..11....11........\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n\nSignTwo\nwhite transparent\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n..........00....1111............\n.........0000...11111...........\n........000000..11..11..........\n........00..00..11..11..........\n............00..11..11..........\n...........000..11..111.........\n..........000...11111111........\n.........000....11111111........\n........000.....11....11........\n........00......11....11........\n........000000..1111111.........\n........000000...11111..........\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n\nSignThree\nwhite transparent \n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n........0000......1111..........\n........00000....11111..........\n...........000..111.............\n...........000..11..............\n..........000...11..............\n..........000...11..............\n...........000..11..............\n............00..11..............\n............00..11..............\n...........000..111.............\n........00000....11111..........\n........0000......1111..........\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n\nSignA copy:SignOne\ntransparent white\n\nSignB copy:SignTwo\ntransparent white\n\nSignC copy:SignThree\ntransparent white\n\nSignD\nwhite\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................000000..........\n................0000000.........\n................00...000........\n................00....00........\n................00....00........\n................00....00........\n................00....00........\n................00....00........\n................00....00........\n................00...000........\n................0000000.........\n................000000..........\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n\n\nSignE\nwhite\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................000000..........\n................000000..........\n................000.............\n................00..............\n................0000............\n................0000............\n................00..............\n................00..............\n................00..............\n................000.............\n................000000..........\n................000000..........\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n\nUndoButton\nwhite gray black\n................................\n................................\n......00000000000000000000......\n....000000000000000000000000....\n...00000000000000000000000000...\n...00000000000000000000000000...\n..0000002222222222222222000000..\n..0000002222222222222222200000..\n..0000000000000000000002220000..\n..0000000000000000000000220000..\n..0000000000000000000000220000..\n..0000000000000000000000220000..\n..0000000000220000000000220000..\n..0000000002220000000000220000..\n..0000000022220000000000220000..\n..0000000222220000000002220000..\n..0000002222222222222222200000..\n..0000002222222222222222000000..\n..0000000222220000000000000000..\n..0000000022220000000000000000..\n..0000000002220000000000000000..\n..0000000000220000000000000000..\n..1000000000000000000000000001..\n..1000000000000000000000000001..\n..1100000000000000000000000011..\n..1111000000000000000000001111..\n...11111111111111111111111111...\n...11111111111111111111111111...\n....111111111111111111111111....\n......11111111111111111111......\n................................\n................................\n\nUndoText\nwhite transparent\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n....00000000........1111111.....\n....00000000........11111111....\n..........00........11....11....\n.........000........11....11....\n........000.........11111111....\n.......000..........1111111.....\n......000...........11.111......\n.....000............11..111.....\n....00000000........11...111....\n....00000000........11....11....\n................................\n................................\n..000000000000....111111111111..\n................................\n................................\n................................\n\nRetryText copy:UndoText\ntransparent white\n\nRetryButton\nwhite gray black\n................................\n................................\n......00000000000000000000......\n....000000000000000000000000....\n...00000000000222220000000000...\n...00000000022222222200000000...\n..0000000002220000022200000000..\n..0000000022000000000220000000..\n..0000000220000000000022000000..\n..0000002200000000000002200000..\n..0000002200000000000002200000..\n..0000000000000000000000220000..\n..0000000000000000000000220000..\n..0000000000000000000000220000..\n..0000222222200000000000220000..\n..0000222222000000000000220000..\n..0000222220000000000002200000..\n..0000222200000000000002200000..\n..0000222220000000000022000000..\n..0000220022000000000220000000..\n..0000200002220000022200000000..\n..0000000000222222222000000000..\n..1000000000002222200000000001..\n..1000000000000000000000000001..\n..1100000000000000000000000011..\n..1111000000000000000000001111..\n...11111111111111111111111111...\n...11111111111111111111111111...\n....111111111111111111111111....\n......11111111111111111111......\n................................\n................................\n\nQuitButton\n#F02424 white white #F02424\n................................\n................................\n......33333333333333333333......\n....333333333333333333333333....\n...33300000000000000000000333...\n...33300000000000000000000333...\n..3300002200000000000022000033..\n..3300002220000000000222000033..\n..3300000222000000002220000033..\n..3300000022200000022200000033..\n..3300000002220000222000000033..\n..3300000000222002220000000033..\n..3300000000022222200000000033..\n..3300000000002222000000000033..\n..3300000000002222000000000033..\n..3300000000022222200000000033..\n..3300000000222002220000000033..\n..3300000002220000222000000033..\n..3300000022200000022200000033..\n..3300000222000000002220000033..\n..3300002220000000000222000033..\n..3300002200000000000022000033..\n..1000000000000000000000000001..\n..1000000000000000000000000001..\n..1100000000000000000000000011..\n..1111000000000000000000001111..\n...11111111111111111111111111...\n...11111111111111111111111111...\n....111111111111111111111111....\n......11111111111111111111......\n................................\n................................\n\nQuitText\nwhite\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n...00000...00000...00000........\n..000000..000000..000000........\n..00......00......00............\n..00......00......00............\n..0000....00000...00............\n..0000.....00000..00............\n..00..........00..00............\n..00..........00..00............\n..000000..000000..000000........\n...00000..00000....00000........\n................................\n................................\n00000000000000000000000000......\n................................\n................................\n................................\n\nWallTopLeft\n#222222 transparent transparent transparent\n0000........................1111\n00............................11\n0..............................1\n0..............................1\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n2..............................3\n22............................33\n\nWallTopRight copy:WallTopLeft\ntransparent #222222 transparent transparent\n\nWallBottomLeft copy:WallTopLeft\ntransparent transparent #222222 transparent\n\nWallBottomRight copy:WallTopLeft\ntransparent transparent transparent #222222\n\n\nCross\nred #000000FF\n................................\n................................\n........11............11........\n.......1111..........1111.......\n......110011........110011......\n.....11000011......11000011.....\n....1100000011....1100000011....\n....11000000011..11000000011....\n.....1100000001111000000011.....\n......11000000011000000011......\n.......110000000000000011.......\n........1100000000000011........\n.........11000000000011.........\n..........110000000011..........\n..........110000000011..........\n.........11000000000011.........\n........1100000000000011........\n.......110000000000000011.......\n......11000000011000000011......\n.....1100000001111000000011.....\n....11000000011..11000000011....\n....1100000011....1100000011....\n.....11000011......11000011.....\n......110011........110011......\n.......1111..........1111.......\n........11............11........\n................................\n................................\n................................\n................................\n................................\n................................\n\nStageEdge s\n#22222244 #22222288 #222222BB #222222 \n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n\nWarpEffectR copy:StageEdge\ntransparent #55555544 #55555588 #555555BB\n\nWarpEffectL\n#55555544 #55555588 #555555BB\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n\nWarpEffectU\n#55555544 #55555588 #555555BB\n22222222222222222222222222222222\n22222222222222222222222222222222\n11111111111111111111111111111111\n11111111111111111111111111111111\n00000000000000000000000000000000\n00000000000000000000000000000000\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n\nWarpEffectD\n#55555544 #55555588 #555555BB\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n00000000000000000000000000000000\n00000000000000000000000000000000\n11111111111111111111111111111111\n11111111111111111111111111111111\n22222222222222222222222222222222\n22222222222222222222222222222222\n\n=======\nLEGEND\n=======\n\nCantLeaveLevel = 1 or 2 or 3 or 4 or 5 or 6 or 7\nHorCrate = 0 or CantLeaveLevel\nVerCrate = a or b or c or d or e or f or g or h\n\nCrate = HorCrate or VerCrate\n\nHorEdge = LeftEdge or RightEdge\nIndent = LeftEdgeIndent or RightEdgeIndent\nVerEdge = TopEdge or BottomEdge\nEdge = HorEdge or VerEdge\n\nVerBlock = HorCrate or Wall\nHorBlock = VerCrate or Wall\n\nSolid = Wall or Crate\n\nLeftWarp = Warp2 or Warp4\nRightWarp = Warp1 or Warp3\nUpWarp = WarpA or WarpC\nDownWarp = WarpB or WarpD\n\nHorWarp = LeftWarp or RightWarp\nVerWarp = DownWarp or UpWarp\n\nWarpIn = Warp1 or Warp3 or WarpA or WarpC \nWarpOut = Warp2 or Warp4 or WarpB or WarpD \n\nWarp = WarpIn or WarpOut\n\nHorWarpable = VerWarp or HorEdge\nVerWarpable = HorWarp or VerEdge\nWarpable = Warp or Edge\n\n~ = a and Warp1\n` = a and Warp2\n% = a and Warp3\n+ = a and Warp4\n' = 1 and WarpA\n\" = 1 and WarpB\n@ = b and Warp1\nx = 2 and WarpA\n\n{ = Warp1 and Wall\n} = Warp2 and Wall\n/ = Warp3 and Wall\n\\ = Warp4 and Wall\n! = WarpA and Wall\n? = WarpB and Wall\n: = WarpC and Wall\n; = WarpD and Wall\n\nu = UndoButton and Wall\ni = UndoText and Wall\n\nr = RetryButton and Wall\nj = RetryText and Wall\n\nq = QuitButton and Wall\nn = QuitText and Wall\n\nã = Sign and SignOne and Wall\ná = Sign and SignOne and SignA and Wall\né = Sign and SignOne and SignB and Wall\ní = Sign and SignOne and SignC and Wall\n\nõ = Sign and SignTwo and Wall\nà = Sign and SignTwo and SignA and Wall\nè = Sign and SignTwo and SignB and Wall\nì = Sign and SignTwo and SignC and Wall\nò = Sign and SignTwo and SignD and Wall\n\nâ = Sign and SignThree and Wall\nä = Sign and SignThree and SignA and Wall\në = Sign and SignThree and SignB and Wall\nï = Sign and SignThree and SignC and Wall\nö = Sign and SignThree and SignD and Wall\nü = Sign and SignThree and SignE and Wall\n\nWarpEffect = WarpEffectR or WarpEffectL or WarpEffectU or WarpEffectD\n\n=========\nSOUNDS\n=========\n\nsfx0 85035307 (Placing cursor)\nsfx1 71905507 (Valid mode)\nsfx2 77591104 (cancel) \n\ncancel 77591104\nendlevel 92534500\n\nundo 71905507\nrestart 7017709\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall\n\nHorCrate\nVerCrate\n\nLeftEdgeIndent\nRightEdgeIndent\n\nWarpA\nWarpB\nWarpC\nWarpD\nWarp1\nWarp2\nWarp3\nWarp4\n\nTopEdge\nBottomEdge\nLeftEdge\nRightEdge\nInit\n\nStageEdge\nWarpEffect\n\nWallTopLeft, WallBottomLeft\nWallTopRight, WallBottomRight\n\nSign, UndoButton, UndoText, RetryButton, RetryText, QuitButton, QuitText\nSignOne, SignTwo, SignThree\nSignA, SignB, SignC, SignD, SignE\n\nCursor\nClick, Drag\nTrail\nPrevDrag\n\nCross\n\n======\nRULES\n======\n\n(Cleanup visuals from last round, if any)\n[Cross] -> []\n[WarpEffect] -> []\n[Indent] -> []\n\n(Attempt to check if this is the first turn)\nrandom [Background] -> [Background Init]\n[Init] [Cursor] -> [] [Cursor]\n\n(Initialization: generate block edges)\nleft [Init] [0 | no 0] -> [Init] [0 LeftEdge | ]\nright [Init] [0 | no 0] -> [Init] [0 RightEdge | ]\nleft [Init] [1 | no 1] -> [Init] [1 LeftEdge | ]\nright [Init] [1 | no 1] -> [Init] [1 RightEdge | ]\nleft [Init] [2 | no 2] -> [Init] [2 LeftEdge | ]\nright [Init] [2 | no 2] -> [Init] [2 RightEdge | ]\nleft [Init] [3 | no 3] -> [Init] [3 LeftEdge | ]\nright [Init] [3 | no 3] -> [Init] [3 RightEdge | ]\nleft [Init] [4 | no 4] -> [Init] [4 LeftEdge | ]\nright [Init] [4 | no 4] -> [Init] [4 RightEdge | ]\nleft [Init] [5 | no 5] -> [Init] [5 LeftEdge | ]\nright [Init] [5 | no 5] -> [Init] [5 RightEdge | ]\nleft [Init] [6 | no 6] -> [Init] [6 LeftEdge | ]\nright [Init] [6 | no 6] -> [Init] [6 RightEdge | ]\nleft [Init] [7 | no 7] -> [Init] [7 LeftEdge | ]\nright [Init] [7 | no 7] -> [Init] [7 RightEdge | ]\n\nup [Init] [a | no a] -> [Init] [a TopEdge | ]\ndown [Init] [a | no a] -> [Init] [a BottomEdge | ]\nup [Init] [b | no b] -> [Init] [b TopEdge | ]\ndown [Init] [b | no b] -> [Init] [b BottomEdge | ]\nup [Init] [c | no c] -> [Init] [c TopEdge | ]\ndown [Init] [c | no c] -> [Init] [c BottomEdge | ]\nup [Init] [d | no d] -> [Init] [d TopEdge | ]\ndown [Init] [d | no d] -> [Init] [d BottomEdge | ]\nup [Init] [e | no e] -> [Init] [e TopEdge | ]\ndown [Init] [e | no e] -> [Init] [e BottomEdge | ]\nup [Init] [f | no f] -> [Init] [f TopEdge | ]\ndown [Init] [f | no f] -> [Init] [f BottomEdge | ]\nup [Init] [g | no g] -> [Init] [g TopEdge | ]\ndown [Init] [g | no g] -> [Init] [g BottomEdge | ]\nup [Init] [h | no h] -> [Init] [h TopEdge | ]\ndown [Init] [h | no h] -> [Init] [h BottomEdge | ]\n\n(Generate wall edges)\ndown [Init] [Wall no VerWarp | no Wall] -> [Init] [Wall | WallTopLeft WallTopRight]\nup [Init] [Wall no VerWarp | no Wall] -> [Init] [Wall | WallBottomLeft WallBottomRight]\n\nleft [Init] [no Wall | WallTopRight] -> [Init] [ | ]\nleft [Init] [HorWarp | WallTopRight] -> [Init] [HorWarp | ]\nright [Init] [no Wall | WallTopLeft] -> [Init] [ | ]\nright [Init] [HorWarp | WallTopLeft] -> [Init] [HorWarp | ]\n\nleft [Init] [no Wall | WallBottomRight] -> [Init] [ | ]\nleft [Init] [HorWarp | WallBottomRight] -> [Init] [HorWarp | ]\nright [Init] [no Wall | WallBottomLeft] -> [Init] [ | ]\nright [Init] [HorWarp | WallBottomLeft] -> [Init] [HorWarp | ]\n\n[Init] -> []\n\n(Cleaning & Input handling)\n[Trail] -> []\n\n[Click UndoButton] -> undo\n[Click RetryButton] -> restart\n[Click QuitButton] -> quit\n\n[Click] [Cursor] -> [Click] []\n[Click] [PrevDrag] -> [Click] []\n[Click] -> [Cursor PrevDrag] sfx0 nosave\n\n[Cursor] [PrevDrag | Drag] -> [> Cursor ] [ | PrevDrag]\n[horizontal Cursor verCrate] -> [Cursor verCrate]\n[vertical Cursor horCrate] -> [Cursor horCrate]\n\n[horizontal Cursor horCrate] -> [horizontal Cursor horizontal horCrate] sfx1\n[vertical Cursor verCrate] -> [vertical Cursor vertical verCrate] sfx1\n\n[Click] -> []\n[Drag] -> []\n\n(Pass movement to all crates of the same type)\n(Horizontal)\nstartloop\n\n\n [> 0] [stationary 0] -> [> 0] [> 0]\n +[> 1] [stationary 1] -> [> 1] [> 1]\n +[> 2] [stationary 2] -> [> 2] [> 2]\n +[> 3] [stationary 3] -> [> 3] [> 3]\n +[> 4] [stationary 4] -> [> 4] [> 4]\n +[> 5] [stationary 5] -> [> 5] [> 5]\n +[> 6] [stationary 6] -> [> 6] [> 6]\n +[> 7] [stationary 7] -> [> 7] [> 7]\n \n (If moving a car would push another one, attempt to push that one too)\n +horizontal [> horCrate | stationary horCrate] -> [> horCrate | > horCrate]\n \n (If being pushed into a portal, attempt to push any block on the other side)\n +horizontal [> HorCrate | Warp1] [Warp2 | stationary HorCrate] -> [> HorCrate | Warp1] [Warp2 | > HorCrate]\n +horizontal [> HorCrate | Warp2] [Warp1 | stationary HorCrate] -> [> HorCrate | Warp2] [Warp1 | > HorCrate]\n +horizontal [> HorCrate | Warp3] [Warp4 | stationary HorCrate] -> [> HorCrate | Warp3] [Warp4 | > HorCrate]\n +horizontal [> HorCrate | Warp4] [Warp3 | stationary HorCrate] -> [> HorCrate | Warp4] [Warp3 | > HorCrate]\n \nendloop\n\n(Vertical)\nstartloop\n +[> a] [stationary a] -> [> a] [> a]\n +[> b] [stationary b] -> [> b] [> b]\n +[> c] [stationary c] -> [> c] [> c]\n +[> d] [stationary d] -> [> d] [> d]\n +[> e] [stationary e] -> [> e] [> e]\n +[> f] [stationary f] -> [> f] [> f]\n +[> g] [stationary g] -> [> g] [> g]\n +[> h] [stationary h] -> [> h] [> h]\n\n (If moving a car would push another one, attempt to push that one too)\n +vertical [> verCrate | stationary verCrate] -> [> verCrate | > verCrate]\n \n (If being pushed into a portal, attempt to push any block on the other side)\n +vertical [> VerCrate | WarpA] [WarpB | stationary VerCrate] -> [> VerCrate | WarpA] [WarpB | > VerCrate]\n +vertical [> VerCrate | WarpB] [WarpA | stationary VerCrate] -> [> VerCrate | WarpB] [WarpA | > VerCrate]\n +vertical [> VerCrate | WarpC] [WarpD | stationary VerCrate] -> [> VerCrate | WarpC] [WarpD | > VerCrate]\n +vertical [> VerCrate | WarpD] [WarpC | stationary VerCrate] -> [> VerCrate | WarpD] [WarpC | > VerCrate]\n\nendloop\n\n(Prevent moving cars with teleporters on them if there's currently a car partially sticking out of that portal)\nright [LeftWarp vertical VerCrate | HorCrate no LeftEdge] -> [LeftWarp VerCrate | HorCrate Cross]\nleft [RightWarp vertical VerCrate | HorCrate no RightEdge] -> [RightWarp VerCrate | HorCrate Cross]\n\ndown [UpWarp horizontal HorCrate | VerCrate no TopEdge] -> [UpWarp HorCrate | VerCrate Cross]\nup [DownWarp horizontal HorCrate | verCrate no BottomEdge] -> [DownWarp HorCrate | verCrate Cross]\n\n(Any crosses? Then the turn is invalid, stop all movement)\n[Cross] [> Crate] -> [Cross] [Crate]\n[Cross] [> Cursor] -> [Cross] [Cursor] sfx2\n\n(Move teleporters & edges that are attached to blocks)\n[> HorCrate VerWarp] -> [> HorCrate > VerWarp]\n[> VerCrate HorWarp] -> [> VerCrate > HorWarp]\n\n[> HorCrate HorEdge] -> [> HorCrate > HorEdge]\n[> VerCrate VerEdge] -> [> VerCrate > VerEdge]\n\n(Resolve movement for all non-teleporting crates that can move)\n[> HorCrate | No HorWarp No Crate] -> [ | HorCrate]\n[> VerCrate | No VerWarp No Crate] -> [ | VerCrate]\n\n(Push crates through teleporters, attempt to move cursor first)\nright [> horCrate > Cursor | Warp1] [Warp2 no horCrate] -> [ | Warp1] [Warp2 > horCrate > Cursor]\nleft [> horCrate > Cursor | Warp2] [Warp1 no horCrate] -> [ | Warp2] [Warp1 > horCrate > Cursor]\nright [> horCrate > Cursor | Warp3] [Warp4 no horCrate] -> [ | Warp3] [Warp4 > horCrate > Cursor]\nleft [> horCrate > Cursor | Warp4] [Warp3 no horCrate] -> [ | Warp4] [Warp3 > horCrate > Cursor]\n\nup [> verCrate > Cursor | WarpA] [WarpB no verCrate] -> [ | WarpA] [WarpB > verCrate > Cursor]\ndown [> verCrate > Cursor| WarpB] [WarpA no verCrate] -> [ | WarpB] [WarpA > verCrate > Cursor]\nup [> verCrate > Cursor| WarpC] [WarpD no verCrate] -> [ | WarpC] [WarpD > verCrate > Cursor]\ndown [> verCrate > Cursor| WarpD] [WarpC no verCrate] -> [ | WarpD] [WarpC > verCrate > Cursor]\n\n(Then attempt to push through teleporters normally)\nright [> horCrate | Warp1] [Warp2 no horCrate] -> [ | Warp1] [Warp2 > horCrate]\nleft [> horCrate | Warp2] [Warp1 no horCrate] -> [ | Warp2] [Warp1 > horCrate]\nright [> horCrate | Warp3] [Warp4 no horCrate] -> [ | Warp3] [Warp4 > horCrate]\nleft [> horCrate | Warp4] [Warp3 no horCrate] -> [ | Warp4] [Warp3 > horCrate]\n\nup [> verCrate | WarpA] [WarpB no verCrate] -> [ | WarpA] [WarpB > verCrate]\ndown [> verCrate | WarpB] [WarpA no verCrate] -> [ | WarpB] [WarpA > verCrate]\nup [> verCrate | WarpC] [WarpD no verCrate] -> [ | WarpC] [WarpD > verCrate]\ndown [> verCrate | WarpD] [WarpC no verCrate] -> [ | WarpD] [WarpC > verCrate]\n\n(Push warpable objects through teleporters)\nhorizontal [> HorWarpable | Warp1] [Warp2 | ] -> [ | Warp1] [Warp2 | HorWarpable]\nhorizontal [> HorWarpable | Warp2] [Warp1 | ] -> [ | Warp2] [Warp1 | HorWarpable]\nhorizontal [> HorWarpable | Warp3] [Warp4 | ] -> [ | Warp3] [Warp4 | HorWarpable]\nhorizontal [> HorWarpable | Warp4] [Warp3 | ] -> [ | Warp4] [Warp3 | HorWarpable]\n\nvertical [> VerWarpable | WarpA] [WarpB | ] -> [ | WarpA] [WarpB | VerWarpable]\nvertical [> VerWarpable | WarpB] [WarpA | ] -> [ | WarpB] [WarpA | VerWarpable]\nvertical [> VerWarpable | WarpC] [WarpD | ] -> [ | WarpC] [WarpD | VerWarpable]\nvertical [> VerWarpable | WarpD] [WarpC | ] -> [ | WarpD] [WarpC | VerWarpable]\n\n(MOVEMENT HAPPENS HERE)\n\n(Move validation)\nlate [Cursor no Crate] -> nosave\n\nlate [verCrate VerBlock] -> cancel\nlate [horCrate HorBlock] -> cancel\nlate [verCrate horCrate] -> cancel\nlate [CantLeaveLevel Target] -> cancel\n\n(For warped crates, create a nice effect)\nlate left [RightWarp | HorCrate no RightEdge] -> [RightWarp | HorCrate WarpEffectR]\nlate right [LeftWarp | HorCrate no LeftEdge] -> [LeftWarp | HorCrate WarpEffectL]\nlate up [DownWarp | VerCrate no BottomEdge] -> [DownWarp | VerCrate WarpEffectD]\nlate down [UpWarp | VerCrate no TopEdge] -> [UpWarp | VerCrate WarpEffectU]\n\nlate [LeftEdge no LeftEdgeIndent] -> [LeftEdge LeftEdgeIndent]\nlate [RightEdge no RightEdgeIndent] -> [RightEdge RightEdgeIndent]\n\n==============\nWINCONDITIONS\n==============\n\nAny Target\nAll Target on LeftEdge\n\n=======\nLEVELS\n=======\n\nsection CHAPTER 1\nmessage Chapter 1\nqn#########ã\n###......###\n###....b.###\n##}....b.$s#\n###.....a###\n###00...a{##\n###.....a###\n############\n\nsection 1a Gridlock\nqn#########á\n###2244.e###\n###.33.fe###\n##}.g..fe$s#\n###cg66b.###\n###c00ab.{##\n###c..a11###\nui########jr\n\nsection 1b Single-Lane\nqn#########é\n###00cdef{##\n##}..cdef/##\n##\\....e.$s#\n###g11...###\n###g.222.###\n###.33.44###\nui########jr\n\nsection 1c Horsepower\nqn####:####í\n###11..ga###\n###222.ga###\n###00..ga$s#\n###d.55g.###\n###d.efg.###\n###d.ef66###\nui#####;##jr\n\nsection CHAPTER 2\nmessage Chapter 2\nqn####!####õ\n##}...c../##\n###...c..###\n##\\...c..$s#\n###......###\n###00....{##\n###......###\nui####?###jr\n\nsection 2a Misdirection\nqn#!####:##à\n###111.af###\n###g44baf###\n###g00bhf$s#\n###c55bhd###\n###c.66.d###\n###222..d###\nui#;####?#jr\n\nsection 2b Freeway\nqn#####!###è\n###....dh###\n##}.111dh###\n###00fceg$s#\n###..fceg###\n###.a.333{##\n###.a....###\nui##?#####jr\n\nsection 2c Tridimensional\nqn###!:###ì\n###..44.###\n##\\666e./##\n###..bed###\n###00bed$s#\n##}33b77{##\n###..b11###\nui###?;##jr\n\nsection 2d Airbaggage\nqn#####:###ò\n###4422e.###\n##}11g.ea###\n###00gcba$s#\n###f.dcba###\n###f.d.66{##\n###333...###\nui##;#####jr\n\nsection CHAPTER 3\nmessage Chapter 3\nqn#########â\n###......###\n###a..00.###\n###`.....###\n###a.....$s#\n###......###\n###......{##\nui########jr\n\nsection 3a Convoi Exceptionnel\nqn#########ä\n###`66600###\n###a.....###\n###a.e...$s#\n###55e44f###\n###.c11df###\n###.c..d.{##\nui########jr\n\nsection 3b Carmageddon\nqn#########ë\n###66g.e.###\n###..g.eb###\n###a55.e@$s#\n###`.77.b###\n###a00h..###\n###44.h33###\nui########jr\n\nsection 3c Double Parked\nqn#########ï\n###b.6644###\n###b.d`gh###\n###.fd~gh$s#\n###efd.22###\n###e....c###\n###00...c###\nui########jr\n\nsection 3d Blue Sparks\nqn#########ö\n##\\a.f..h$s#\n###%ef66h###\n###.e55g.###\n###.1'.g.###\n###.3322.###\n###.4400.###\nui#?######jr\n\nsection 3e Tailgating\nqn#########ü\n###...2x.###\n##e.55gh.###\n##e00%gh.$s#\n##.\"1ag#####\n##77.+..####\n##66.333####\nui########jr\n\nsection EPILOGUE\nmessage Epilogue\n############\n###......###\n###......###\n###......###\n###00....$s#\n###......###\n###......###\n############\n\n############\n###..#######\n###....#####\n###......###\n###00....$s#\n###....#####\n###..#######\n############\n\n################\n################\n########.....###\n#######.......##\n######.........#\n########.....###\n#00..$.#.#.#.###\n########.#...###\n\nmessage Finally home, just in time for dinner!\n\nmessage THE END\n\nmessage Game by Tom Hermans. Font \"Monogram\" by Datagoblin. Thank you for playing!",["[PS+] Mouse object 'click' (for input 'mouse_left') could overlap with other objects on the same layer. Consider moving the object to its own layer.","[PS+] Mouse object 'drag' (for input 'mouse_drag') could overlap with other objects on the same layer. Consider moving the object to its own layer."],0] + ], + + +[ + "Kye.ps 8.150", + ["title Kye.ps 8.150\n(Note always before sharing set SOUND_VOL to 0.05 in the HTML)\n( Requires auroriax's Puzzlescript+ fork : https://auroriax.github.io/PuzzleScript/editor.html)\n\n(Note: thank @jcGyo for the movement help)\n\nauthor vexorian\nhomepage vexorian.com\n\n\ncase_sensitive\n\nagain_interval 0.00\n\nsprite_size 16\n\nbackground_color #c0c0c0\ntext_color #000000\n\n(debug)\n\nrealtime_interval 0.1\n\n(throttle_movement 0.01)\n\n\n(verbose_logging)\n(noaction)\n\n\nrun_rules_on_level_start\n\nlevel_select\n\n\n( Various notes about authorshp:\n\n* Kye is a game by Colin Garbutt, released on 1991 !\n* in releasing this puzzlescript port, I wanted to make a good cokmpilation of Kye levels. \n That's why I am including stuff from both Colin Garbutt and Colin Phipps. Colin Garbut released his levels as charity ware, and this game will also be charity ware. Colin Phipps released his levels in his site as (c) 2011 Creative Commons Attribution-ShareAlike 2.5 License. I am releasing my levels with the following zlib license that also includes the puzzlescript code.\n \n * Colin Phipps' python kye page: http://games.moria.org.uk/kye\n\n* Most of the sprites are exact copies of the ones used by Colin Garbut, some of them have slight modifications by me. But it's very small number.\n\n)\n\n(\nzlib License\n\nCopyright (c) 2021, Victor Hugo Soliz Kuncar\n\nThis software is provided 'as-is', without any express or implied\nwarranty. In no event will the authors be held liable for any damages\narising from the use of this software.\n\nPermission is granted to anyone to use this software for any purpose,\nincluding commercial applications, and to alter it and redistribute it\nfreely, subject to the following restrictions:\n\n1. The origin of this software must not be misrepresented; you must not\n claim that you wrote the original software. If you use this software\n in a product, an acknowledgment in the product documentation would be\n appreciated but is not required.\n2. Altered source versions must be plainly marked as such, and must not be\n misrepresented as being the original software.\n3. This notice may not be removed or altered from any source distribution.\n\n)\n\n\n\n\n========\nOBJECTS\n========\n\nBackground\nwhite\n\nPlayerN\n#000000 #00FF00\n.....000000.....\n...0000000000...\n..000011110000..\n.00011111111000.\n.00111111111100.\n0001111111111000\n0011111111111100\n0011111111111100\n0011111111111100\n0011111111111100\n0001111111111000\n.00111111111100.\n.00011111111000.\n..000011110000..\n...0000000000...\n.....000000.....\n\nPlayerL\n#000000 #00FF00\n.....000000.....\n...0000000000...\n..000011110000..\n.00011111111000.\n.00111111111100.\n0001111111111000\n0011111111111100\n0011111111111100\n0011111111111100\n0011111111111100\n0001111111111000\n.00111111111100.\n.00011111111000.\n..000011110000..\n...0000000000...\n.....000000.....\n\n\nPlayerR\n#000000 #00FF00\n.....000000.....\n...0000000000...\n..000011110000..\n.00011111111000.\n.00111111111100.\n0001111111111000\n0011111111111100\n0011111111111100\n0011111111111100\n0011111111111100\n0001111111111000\n.00111111111100.\n.00011111111000.\n..000011110000..\n...0000000000...\n.....000000.....\n\n\nPlayerU\n#000000 #00FF00\n.....000000.....\n...0000000000...\n..000011110000..\n.00011111111000.\n.00111111111100.\n0001111111111000\n0011111111111100\n0011111111111100\n0011111111111100\n0011111111111100\n0001111111111000\n.00111111111100.\n.00011111111000.\n..000011110000..\n...0000000000...\n.....000000.....\n\n\nPlayerD\n#000000 #00FF00\n.....000000.....\n...0000000000...\n..000011110000..\n.00011111111000.\n.00111111111100.\n0001111111111000\n0011111111111100\n0011111111111100\n0011111111111100\n0011111111111100\n0001111111111000\n.00111111111100.\n.00011111111000.\n..000011110000..\n...0000000000...\n.....000000.....\n\nDeathSprite1\n#000000 #00FF00\n.....000.00.....\n...00.000..00...\n..000.11.10.00..\n.0001..11.1...0.\n.0.111.111.11.0.\n0.011.111111100.\n..11111.11.11.00\n0...111111111100\n001.111.1..1.100\n0011111111.1.1..\n0..111.111111..0\n.00.11.1111.100.\n.00..11.111.000.\n..0000.111...0..\n...0.0..00000...\n.....000.00.....\n\nDeathSprite2\n#000000 #00FF00\n.....00.000.....\n.....00..0..0...\n..0000..1...00..\n.0..11.11.1.....\n..01.111.1.1.0..\n...1.1.111...0..\n0.11.1.1.111.1..\n..11........1...\n...1..1..1..110.\n...1.1.1..11..0.\n00...1111..11..0\n.00..11.11.1..0.\n.0.....1........\n....0.1111..0...\n...00.0.000.0...\n......0..00.....\n\n\n\n\n\nDiamond\n#00FFFF #000080 #008080 #0000FF \n................\n.......01.......\n......0011......\n.....000111.....\n....00001111....\n...0000011111...\n..000000111111..\n.00000001111111.\n.33333332222222.\n..333333222222..\n...3333322222...\n....33332222....\n.....333222.....\n......3322......\n.......32.......\n................\n\nDiamondSprite1\ntransparent\n\n\nDiamondSprite2\n#0000FF #008080 #000080 #00FFFF\n................\n.......01.......\n......0011......\n.....000111.....\n....00001111....\n...0000011111...\n..000000111111..\n.00000001111111.\n.33333332222222.\n..333333222222..\n...3333322222...\n....33332222....\n.....333222.....\n......3322......\n.......32.......\n................\n\n\nWallEmpty\n#C0C0C0\n\nWall____\n#C0C0C0 #ffffff #808080\n0000000000000000\n0000000000000000\n0000000000000000\n0001111111110000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0000222222222000\n0000000000000000\n0000000000000000\n0000000000000000\n\nWall1___\n#C0C0C0 #ffffff #808080\n0000000000000000\n0000000000000000\n0000000000000000\n0001111111110000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n.001000000002000\n.000222222222000\n..00000000000000\n...0000000000000\n.....00000000000\n\n\nWall13__\n#C0C0C0 #ffffff #808080\n0000000000000000\n0000000000000000\n0000000000000000\n0001111111110000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n.00100000000200.\n.00022222222200.\n..000000000000..\n...0000000000...\n.....000000.....\n\n\nWall_3__\n#C0C0C0 #ffffff #808080\n0000000000000000\n0000000000000000\n0000000000000000\n0001111111110000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n000100000000200.\n000022222222200.\n00000000000000..\n0000000000000...\n00000000000.....\n\nWall_3_9\n#C0C0C0 #ffffff #808080\n00000000000.....\n0000000000000...\n00000000000000..\n000111111111000.\n000100000000200.\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n000100000000200.\n000022222222200.\n00000000000000..\n0000000000000...\n00000000000.....\n\n\nWall___9\n#C0C0C0 #ffffff #808080\n00000000000.....\n0000000000000...\n00000000000000..\n000111111111000.\n000100000000200.\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0000222222222000\n0000000000000000\n0000000000000000\n0000000000000000\n\nWall1_7_\n#C0C0C0 #ffffff #808080\n.....00000000000\n...0000000000000\n..00000000000000\n.001111111110000\n.001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n.001000000002000\n.000222222222000\n..00000000000000\n...0000000000000\n.....00000000000\n\n\nWall__7_\n#C0C0C0 #ffffff #808080\n.....00000000000\n...0000000000000\n..00000000000000\n.001111111110000\n.001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0000222222222000\n0000000000000000\n0000000000000000\n0000000000000000\n\nWall__79\n#C0C0C0 #ffffff #808080\n.....000000.....\n...0000000000...\n..000000000000..\n.00111111111000.\n.00100000000200.\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0000222222222000\n0000000000000000\n0000000000000000\n0000000000000000\n\n\nEarth\n#000000 #FFFF00\n................\n..0.0.0.0.0.0...\n.0.0.0.0.0.0.0..\n..01111111111.0.\n.0.11111111110..\n..01111111111.0.\n.0.11111111110..\n..01111111111.0.\n.0.11111111110..\n..01111111111.0.\n.0.11111111110..\n..01111111111.0.\n.0.11111111110..\n..0.0.0.0.0.0.0.\n...0.0.0.0.0.0..\n................\n\n\nBlock\n#000000 #FFFF00\n................\n..000000000000..\n.00000000000000.\n.00111111111100.\n.00111111111100.\n.00111111111100.\n.00111111111100.\n.00111111111100.\n.00111111111100.\n.00111111111100.\n.00111111111100.\n.00111111111100.\n.00111111111100.\n.00000000000000.\n..000000000000..\n................\n\nTurnerClockwise\n#000000 #FFFF00 #FF0000\n................\n..000000000000..\n.00000000000000.\n.00111111111100.\n.00111211111100.\n.00112221111100.\n.00122222111100.\n.00222222211100.\n.00112221111100.\n.00112221112100.\n.00112222222100.\n.00111222221100.\n.00111111111100.\n.00000000000000.\n..000000000000..\n................\n\nTurnerAntiClockwise\n#000000 #FFFF00 #FF0000\n................\n..000000000000..\n.00000000000000.\n.00111111111100.\n.00111111211100.\n.00111112221100.\n.00111122222100.\n.00111222222200.\n.00111112221100.\n.00121112221100.\n.00122222221100.\n.00112222211100.\n.00111111111100.\n.00000000000000.\n..000000000000..\n................\n\n\n\n\nSquareArrowD\n#000000 #FFFF00 #FF0000\n................\n..000000000000..\n.00000000000000.\n.00111122111100.\n.00111122111100.\n.00111122111100.\n.00111122111100.\n.00222222222200.\n.00222222222200.\n.00122222222100.\n.00112222221100.\n.00111222211100.\n.00111122111100.\n.00000000000000.\n..000000000000..\n................\n\nSquareArrowL\n#000000 #FFFF00 #FF0000\n................\n..000000000000..\n.00000000000000.\n.00111122111100.\n.00111222111100.\n.00112222111100.\n.00122222111100.\n.00222222222200.\n.00222222222200.\n.00122222111100.\n.00112222111100.\n.00111222111100.\n.00111122111100.\n.00000000000000.\n..000000000000..\n................\n\nSquareArrowU\n#000000 #FFFF00 #FF0000\n................\n..000000000000..\n.00000000000000.\n.00111122111100.\n.00111222211100.\n.00112222221100.\n.00122222222100.\n.00222222222200.\n.00222222222200.\n.00111122111100.\n.00111122111100.\n.00111122111100.\n.00111122111100.\n.00000000000000.\n..000000000000..\n................\n\nSquareArrowR\n#000000 #FFFF00 #FF0000\n................\n..000000000000..\n.00000000000000.\n.00111122111100.\n.00111122211100.\n.00111122221100.\n.00111122222100.\n.00222222222200.\n.00222222222200.\n.00111122222100.\n.00111122221100.\n.00111122211100.\n.00111122111100.\n.00000000000000.\n..000000000000..\n................\n\nBouncerR\n#000000 #FFFF00 #FF0000\n................\n..00000000......\n.0000000000.....\n.00111112000....\n.001111122000...\n.0011111222000..\n.00111112222000.\n.00222222222200.\n.00222222222200.\n.00111112222000.\n.0011111222000..\n.001111122000...\n.00111112000....\n.0000000000.....\n..00000000......\n................\n\nBouncerL\n#000000 #FFFF00 #FF0000\n................\n......00000000..\n.....0000000000.\n....00021111100.\n...000221111100.\n..0002221111100.\n.00022221111100.\n.00222222222200.\n.00222222222200.\n.00022221111100.\n..0002221111100.\n...000221111100.\n....00021111100.\n.....0000000000.\n......00000000..\n................\n\n\nBouncerU\n#000000 #FFFF00 #FF0000\n................\n......0000......\n.....000000.....\n....00022000....\n...0002222000...\n..000222222000..\n.00022222222000.\n.00222222222200.\n.00111122111100.\n.00111122111100.\n.00111122111100.\n.00111122111100.\n.00111122111100.\n.00000000000000.\n..000000000000..\n................\n\nBouncerD\n#000000 #FFFF00 #FF0000\n................\n..000000000000..\n.00000000000000.\n.00111122111100.\n.00111122111100.\n.00111122111100.\n.00111122111100.\n.00111122111100.\n.00222222222200.\n.00022222222000.\n..000222222000..\n...0002222000...\n....00022000....\n.....000000.....\n......0000......\n................\n\nRoundBlock\n#000000 #FFFF00\n................\n......0000......\n....00000000....\n...0000110000...\n..000111111000..\n..001111111100..\n.00011111111000.\n.00111111111100.\n.00111111111100.\n.00011111111000.\n..001111111100..\n..000111111000..\n...0000110000...\n....00000000....\n......0000......\n................\n\nRoundArrowR\n#000000 #FFFF00 #FF0000\n................\n......0000......\n....00000000....\n...0000110000...\n..000111211000..\n..001111221100..\n.00011112222000.\n.00222222222200.\n.00222222222200.\n.00011112222000.\n..001111222100..\n..000111221000..\n...0000110000...\n....00000000....\n......0000......\n................\n\n\nRoundArrowU\n#000000 #FFFF00 #FF0000\n................\n......0000......\n....00000000....\n...0000220000...\n..000122221000..\n..001222222100..\n.00022222222000.\n.00122222222100.\n.00111122111100.\n.00011122111000.\n..001112211100..\n..000112211000..\n...0000220000...\n....00000000....\n......0000......\n................\n\n\nRoundArrowD\n#000000 #FFFF00 #FF0000\n................\n......0000......\n....00000000....\n...0000220000...\n..000112211000..\n..001112211100..\n.00011122111000.\n.00111122111100.\n.00122222222100.\n.00022222222000.\n..001222222100..\n..000122221000..\n...0000220000...\n....00000000....\n......0000......\n................\n\nRoundArrowL\n#000000 #FFFF00 #FF0000\n................\n......0000......\n....00000000....\n...0000110000...\n..000122111000..\n..001222111100..\n.00022221111000.\n.00222222222200.\n.00222222222200.\n.00022221111000.\n..001222111100..\n..000122111000..\n...0000110000...\n....00000000....\n......0000......\n................\n\nStickyV\n#000000 #FFFF00 #FF0000\n................\n..000000000000..\n.00000000000000.\n.00222222222200.\n.00222222222200.\n.00002222220000.\n..000011110000..\n....00111100....\n....00111100....\n..000011110000..\n.00002222220000.\n.00222222222200.\n.00222222222200.\n.00000000000000.\n..000000000000..\n................\n\nStickyH\n#000000 #FFFF00 #FF0000\n................\n..0000....0000..\n.000000..000000.\n.002200..002200.\n.00220000002200.\n.00222000022200.\n.00222111122200.\n.00222111122200.\n.00222111122200.\n.00222111122200.\n.00222000022200.\n.00220000002200.\n.002200..002200.\n.000000..000000.\n..0000....0000..\n................\n\n\nBlackHole\n#C0C0C0 #808080 #FFFFFF #000000 #ff0000\n0000000000000000\n0111111111111110\n0111111111111120\n0113433333343220\n0113333333333220\n0113333333333220\n0113333333333220\n0113333333333220\n0113333333333220\n0113343333343220\n0113333333333220\n0113333334333220\n0114333333333220\n0112222222222220\n0122222222222220\n0000000000000000\n\nBlackHoleSprite1\ntransparent\n\nBlackHoleSprite2\n#C0C0C0 #808080 #FFFFFF #000000 #ff0000\n................\n................\n................\n...3333333433...\n...4333333333...\n...3333333333...\n...3344333333...\n...3333333333...\n...3333333433...\n...4334333333...\n...3334343433...\n...3333333333...\n...3333333333...\n................\n................\n................\n\n\nBlackHoleSprite3\n#C0C0C0 #808080 #FFFFFF #000000 #ff0000\n................\n................\n................\n...3333333333...\n...3334333333...\n...3333333433...\n...3334333333...\n...3333333333...\n...3343333333...\n...3343333333...\n...4333334433...\n...3333333333...\n...3333333333...\n................\n................\n................\n\nBlackHoleSprite4\n#C0C0C0 #808080 #FFFFFF #000000 #ff0000\n................\n................\n................\n...3333333333...\n...3343333333...\n...3333343433...\n...3333333333...\n...3333433333...\n...3433333333...\n...3333333333...\n...3333344333...\n...3333333333...\n...3333333333...\n................\n................\n................\n\nDoorLR\n#ff0000 transparent #ff0000\n...........2....\n...........2....\n...........2....\n...........2....\n...........2....\n...........2....\n...........2....\n...........2....\n...........2....\n...........2....\n...........2....\n...........2....\n...........2....\n...........2....\n...........2....\n...........2....\n\n\nDoorLR1\n#ff0000 transparent #ff0000\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n\n\n\nDoorLR2\ntransparent #ff0000 #ff0000\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n\n\nDoorRL\ntransparent #ff0000 #ff0000\n....2...........\n....2...........\n....2...........\n....2...........\n....2...........\n....2...........\n....2...........\n....2...........\n....2...........\n....2...........\n....2...........\n....2...........\n....2...........\n....2...........\n....2...........\n....2...........\n\n\nDoorRL1\ntransparent #ff0000 #ff0000\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n\n\nDoorRL2\n#ff0000 transparent #ff0000\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n\nDoorDU\n#ff0000 transparent #ff0000\n................\n................\n................\n................\n2222222222222222\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n\n\nDoorDU1\n#ff0000 transparent #ff0000\n................\n................\n................\n................\n2222222222222222\n0101010101010101\n0101010101010101\n1010101010101010\n1010101010101010\n0101010101010101\n0101010101010101\n................\n................\n................\n................\n................\n\n\n\nDoorDU2\ntransparent #ff0000 #ff0000\n................\n................\n................\n................\n2222222222222222\n0101010101010101\n0101010101010101\n1010101010101010\n1010101010101010\n0101010101010101\n0101010101010101\n................\n................\n................\n................\n................\n\n\nDoorUD\ntransparent #ff0000 #ff0000\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n2222222222222222\n................\n................\n................\n................\n\n\nDoorUD1\ntransparent #ff0000 #ff0000\n................\n................\n................\n................\n................\n0101010101010101\n0101010101010101\n1010101010101010\n1010101010101010\n0101010101010101\n0101010101010101\n2222222222222222\n................\n................\n................\n................\n\nDoorUD2\n#ff0000 transparent #ff0000\n................\n................\n................\n................\n................\n0101010101010101\n0101010101010101\n1010101010101010\n1010101010101010\n0101010101010101\n0101010101010101\n2222222222222222\n................\n................\n................\n................\n\n\n\n\n\n\nBlackHoleBusy1\n#C0C0C0 #808080 #FFFFFF #000000 #ff0000 #00FFFF #0000FF\n0000000000000000\n0111111111111110\n0111111111111120\n0115565555555220\n0115566555655220\n0115555555656220\n0115565555555220\n0115555555555220\n0115556565555220\n0115655556556220\n0115566556556220\n0115555555555220\n0115555555555220\n0112222222222220\n0122222222222220\n0000000000000000\n\nBlackHoleBusy2\n#C0C0C0 #808080 #FFFFFF #000000 #ff0000 #FFFF00 #ff0000\n0000000000000000\n0111111111111110\n0111111111111120\n0115555555555220\n0115655555655220\n0115555565555220\n0115556555655220\n0115655555555220\n0115655555555220\n0115555555565220\n0116555665555220\n0115555665555220\n0115555555565220\n0112222222222220\n0122222222222220\n0000000000000000\n\n\nBlackHoleBusy3\n#C0C0C0 #808080 #FFFFFF #000000 #ff0000 #ff0000 #FFFF00\n0000000000000000\n0111111111111110\n0111111111111120\n0115556655555220\n0115555555555220\n0115665566565220\n0115555555555220\n0115665555555220\n0115555555555220\n0115566655655220\n0115655655555220\n0115555565555220\n0115555555555220\n0112222222222220\n0122222222222220\n0000000000000000\n\n\nBlackHoleBusy4\n#C0C0C0 #808080 #FFFFFF #000000 #ff0000 #800000 #F9F9F9\n0000000000000000\n0111111111111110\n0111111111111120\n0115555555555220\n0115655655655220\n0115556555655220\n0115555555555220\n0115565555555220\n0115556555655220\n0115555555555220\n0115565566565220\n0115555555565220\n0115555555555220\n0112222222222220\n0122222222222220\n0000000000000000\n\nBlackHoleBusy5\n#C0C0C0 #808080 #FFFFFF #000000 #ff0000 #800000 #F9F9F9\n0000000000000000\n0111111111111110\n0111111111111120\n0115555555555220\n0115655655655220\n0115556555655220\n0115555555555220\n0115565555555220\n0115556555655220\n0115555555555220\n0115565566565220\n0115555555565220\n0115555555555220\n0112222222222220\n0122222222222220\n0000000000000000\n\n(Ok this is messy to explain, but by taking the intersection of the three sprites, I have a placeable icon for the beast in the editor that will NOT be changed to an invalid sprite when I leave edit mode)\nGnasher\n#000000 #FF0000\n................\n................\n................\n..0..00..00..0..\n.00..........00.\n................\n................\n................\n................\n................\n................\n.00..........00.\n..0..00..00..0..\n................\n................\n................\n\nGnasher1\n#000000 #FF0000\n..000000000000..\n.00000000000000.\n.00..00..00..00.\n.00..00..00..00.\n.00..00..00..00.\n.11..........11.\n.11..........11.\n.11..........11.\n.11..........11.\n.11..........11.\n.11..........11.\n.00..00..00..00.\n.00..00..00..00.\n.00..00..00..00.\n.00000000000000.\n..000000000000..\n\nGnasher2\n#000000 #FF0000\n................\n................\n................\n..000000000000..\n.00000000000000.\n.00..00..00..00.\n.00..00..00..00.\n.00..00..00..00.\n.00..00..00..00.\n.00..00..00..00.\n.00..00..00..00.\n.00000000000000.\n..000000000000..\n................\n................\n................\n\nGnasher3\n#000000 #FF0000\n..000000000000..\n.00000000000000.\n.00..00..00..00.\n.00..00..00..00.\n.00..11..11..00.\n.11..........11.\n.11..........11.\n.11..........11.\n.11..........11.\n.11..........11.\n.11..........11.\n.00..11..11..00.\n.00..00..00..00.\n.00..00..00..00.\n.00000000000000.\n..000000000000..\n\n\n(This thing with the sprite intersections is both the smartest AND dumbest thing I've ever done )\nVirus\n#000000\n................\n................\n.......00.......\n................\n................\n.......0000000..\n........0000000.\n.............00.\n.............00.\n........0000000.\n.......0000000..\n................\n................\n.......00.......\n................\n................\n\n\nVirus1\n#000000\n................\n..0000000.......\n.00000000.......\n.00.............\n.00.............\n.0000000000000..\n..0000000000000.\n.............00.\n.............00.\n........0000000.\n.......0000000..\n.......00.......\n.......00.......\n.......00.......\n................\n................\n\nVirus2\n#000000\n................\n................\n.......00.......\n.......00.......\n.......00.......\n.......0000000..\n........0000000.\n.............00.\n.............00.\n..0000000000000.\n.0000000000000..\n.00.............\n.00.............\n.00000000.......\n..0000000.......\n................\n\nBlob\n#000000 #FF00FF\n................\n................\n................\n......0.........\n................\n...0............\n...0.1.....00...\n..00.01.1.000...\n.00010...11.0...\n.00.1111.11100..\n.00.11111...00..\n..00......0.0...\n...0.00..0......\n.....00.........\n................\n................\n\nBlob1\n#000000 #FF00FF\n................\n................\n....0000000.....\n...0000000000...\n...00111010000..\n...00111111100..\n...00111111000..\n..00001011000...\n.000100111100...\n.0011111111100..\n.0001111101100..\n..000011110100..\n...00001101000..\n.....00000000...\n......00000.....\n................\n\nBlob2\n#000000 #FF00FF\n................\n................\n.......000......\n......00000.....\n.....000100.....\n...000011100....\n..00010011000...\n..001011110000..\n.0001000111100..\n.0001111111100..\n.0001111110100..\n.0001100010100..\n..001000000000..\n..00000..0000...\n...000....00....\n................\n\nBlob3\n#000000 #FF00FF\n................\n................\n................\n...0000.........\n..000000........\n..0011000000....\n..00111000000...\n..000011100000..\n.0001011011100..\n.0011111011100..\n.0011111110000..\n.000110000000...\n..001000000.....\n..00000.........\n...000..........\n................\n\nTwister\n#000000 #FF00FF\n................\n.....0....0.....\n.....0....0.....\n................\n................\n.00...0000...00.\n.....000000.....\n.....001100.....\n.....001100.....\n.....000000.....\n.00...0000...00.\n................\n................\n.....0....0.....\n.....0....0.....\n................\n\nTwister1\n#000000 #FF00FF\n................\n.....000000.....\n.....000000.....\n.......00.......\n.......00.......\n.00...0000...00.\n.00..000000..00.\n.00000011000000.\n.00000011000000.\n.00..000000..00.\n.00...0000...00.\n.......00.......\n.......00.......\n.....000000.....\n.....000000.....\n................\n\n\nTwister2\n#000000 #FF00FF\n................\n....00....00....\n...000....000...\n..000......000..\n.00000....00000.\n.00.00000000.00.\n.....000000.....\n.....001100.....\n.....001100.....\n.....000000.....\n.00.00000000.00.\n.00000....00000.\n..000......000..\n...000....000...\n....00....00....\n................\n\n\nSpike\n#000000\n................\n................\n.......00.......\n.......00.......\n.......00.......\n.......00.......\n......0000......\n..000000000000..\n..000000000000..\n......0000......\n.......00.......\n.......00.......\n.......00.......\n.......00.......\n................\n................\n\n\nSpike1\n#000000\n.......00.......\n......0000......\n.....000000.....\n.......00.......\n.......00.......\n..0....00....0..\n.00...0000...00.\n0000000000000000\n0000000000000000\n.00...0000...00.\n..0....00....0..\n.......00.......\n.......00.......\n.....000000.....\n......0000......\n.......00.......\n\nSpike2\n#000000\n................\n................\n.......00.......\n......0000......\n.....000000.....\n....0..00..0....\n...00.0000.00...\n..000000000000..\n..000000000000..\n...00.0000.00...\n....0..00..0....\n.....000000.....\n......0000......\n.......00.......\n................\n................\n\n\nTimer9\n#000000 #FFFF00 #FF0000\n.... .... .... ....\n..000000000000..\n.00000000000000.\n.00111111111100.\n.00111111111100.\n.00111222211100.\n.00112211221100.\n.00112211221100.\n.00111222221100.\n.00111111221100.\n.00111112211100.\n.00111222111100.\n.00111111111100.\n.00000000000000.\n..000000000000..\n................\n\n\nTimer8\n#000000 #FFFF00 #FF0000\n................\n..000000.0.0....\n.0000000.....00.\n.00111111111100.\n.00111111111100.\n.00111222211100.\n.00112211221100.\n.00112211221100.\n.00111222211100.\n.00112211221100.\n.00112211221100.\n.00111222211100.\n.00111111111100.\n.00000000000000.\n..000000000000..\n................\n\nTimer7\n#000000 #FFFF00 #FF0000\n................\n..000000.0.0.0..\n.0000000........\n.001111111111.0.\n.001111111111...\n.001122222211.0.\n.001122112211...\n.001111112211...\n.00111112211100.\n.00111122111100.\n.00111221111100.\n.00111221111100.\n.00111111111100.\n.00000000000000.\n..000000000000..\n................\n\nTimer6\n#000000 #FFFF00 #FF0000\n................\n..000000.0.0.0..\n.0000000........\n.001111111111.0.\n.001111111111...\n.001111222111.0.\n.001112211111...\n.001122111111.0.\n.001122222111...\n.001122112211.0.\n.001122112211...\n.001112222111.0.\n.00111111111100.\n.00000000000000.\n..000000000000..\n................\n\nTimer5\n#000000 #FFFF00 #FF0000\n................\n..000000.0.0.0..\n.0000000........\n.001111111111.0.\n.001111111111...\n.001122222211.0.\n.001122111111...\n.001122222111.0.\n.001111112211...\n.001111112211.0.\n.001122112211...\n.001112222111.0.\n.001111111111...\n.000000000....0.\n..00000000..0...\n................\n\nTimer4\n#000000 #FFFF00 #FF0000\n................\n..000000.0.0.0..\n.0000000........\n.001111111111.0.\n.001111111111...\n.001111122211.0.\n.001111222211...\n.001112212211.0.\n.001122112211...\n.001122222221.0.\n.001111112211...\n.001111112211.0.\n.001111111111...\n.0000.........0.\n..000.0.0.0.0...\n................\n\nTimer3\n#000000 #FFFF00 #FF0000\n................\n..000000.0.0.0..\n.0000000........\n.001111111111.0.\n.001111111111...\n.001112222111.0.\n.001122112211...\n.001111112211.0.\n.001111222111...\n.001111112211.0.\n.001122112211...\n.001112222111.0.\n...1111111111...\n..............0.\n..0.0.0.0.0.0...\n................\n\n\nTimer2\n#000000 #FFFF00 #FF0000\n................\n..000000.0.0.0..\n.0000000........\n.001111111111.0.\n.001111111111...\n.001112222111.0.\n.001122112211...\n...1111112211.0.\n.0.1111222111...\n...1112211111.0.\n.0.1122112211...\n...1122222211.0.\n.0.1111111111...\n..............0.\n..0.0.0.0.0.0...\n................\n\nTimer1\n#000000 #FFFF00 #FF0000\n................\n..000000.0.0.0..\n..000000........\n...1111111111.0.\n.0.1111111111...\n...1111221111.0.\n.0.1122221111...\n...1111221111.0.\n.0.1111221111...\n...1111221111.0.\n.0.1111221111...\n...1122222211.0.\n.0.1111111111...\n..............0.\n..0.0.0.0.0.0...\n................\n\n\nTimer0\n#000000 #FFFF00 #FF0000\n................\n...0.0.0.0.0.0..\n.0..............\n...1111111111.0.\n.0.1111111111...\n...1112222111.0.\n.0.1122112211...\n...1122122211.0.\n.0.1122222211...\n...1122212211.0.\n.0.1122112211...\n...1112222111.0.\n.0.1111111111...\n..............0.\n..0.0.0.0.0.0...\n................\n\nAutoSliderSprite\n#000000 #FFFF00 #FF0000 #0000FF\n..000000000000..\n.00000000000000.\n0001111111111000\n0011111221111100\n0011111221111100\n0011111111111100\n0011111111111100\n0012211111122100\n0012211111122100\n0011111111111100\n0011111111111100\n0011111221111100\n0011111221111100\n0001111111111000\n.00000000000000.\n..000000000000..\n\nAutoSliderSpriteR\n#000000 #FFFF00 #FF0000 #0000FF\n................\n................\n................\n................\n................\n..........3.....\n..........33....\n......3333333...\n......3333333...\n..........33....\n..........3.....\n................\n................\n................\n................\n................\n\nAutoSliderSpriteL\n#000000 #FFFF00 #FF0000 #0000FF\n................\n................\n................\n................\n................\n.....3..........\n....33..........\n...3333333......\n...3333333......\n....33..........\n.....3..........\n................\n................\n................\n................\n................\n\nAutoSliderSpriteU\n#000000 #FFFF00 #FF0000 #0000FF\n................\n................\n................\n.......33.......\n......3333......\n.....333333.....\n.......33.......\n.......33.......\n.......33.......\n.......33.......\n................\n................\n................\n................\n................\n................\n\nAutoSliderSpriteD\n#000000 #FFFF00 #FF0000 #0000FF\n................\n................\n................\n................\n................\n................\n.......33.......\n.......33.......\n.......33.......\n.......33.......\n.....333333.....\n......3333......\n.......33.......\n................\n................\n................\n\nAutoSliderU\ntransparent\n\nAutoSliderD\ntransparent\n\nAutoSliderR\ntransparent\n\nAutoSliderL\ntransparent\n\n\nAutoRockySprite\n#000000 #FFFF00 #0000FF #FF0000\n....00000000....\n...0000000000...\n..000111111000..\n.00011122111000.\n0001111221111000\n0011111111111100\n0011111111111100\n0012211111122100\n0012211111122100\n0011111111111100\n0011111111111100\n0001111221111000\n.00011122111000.\n..000111111000..\n...0000000000...\n....00000000....\n\n\nAutoRockySpriteR\n#000000 #FFFF00 #0000FF #FF0000\n................\n................\n................\n................\n................\n..........3.....\n..........33....\n......3333333...\n......3333333...\n..........33....\n..........3.....\n................\n................\n................\n................\n................\n\nAutoRockySpriteL\n#000000 #FFFF00 #0000FF #FF0000\n................\n................\n................\n................\n................\n.....3..........\n....33..........\n...3333333......\n...3333333......\n....33..........\n.....3..........\n................\n................\n................\n................\n................\n\nAutoRockySpriteU\n#000000 #FFFF00 #0000FF #FF0000\n................\n................\n................\n.......33.......\n......3333......\n.....333333.....\n.......33.......\n.......33.......\n.......33.......\n.......33.......\n................\n................\n................\n................\n................\n................\n\nAutoRockySpriteD\n#000000 #FFFF00 #0000FF #FF0000\n................\n................\n................\n................\n................\n................\n.......33.......\n.......33.......\n.......33.......\n.......33.......\n.....333333.....\n......3333......\n.......33.......\n................\n................\n................\n\n\n\nAutoRockyR\ntransparent\n\nAutoRockyL\ntransparent\n\nAutoRockyU\ntransparent\n\nAutoRockyD\ntransparent\n\n\n\n\nTopLeft\ntransparent\n\nTic4_0\ntransparent\n\nTic4_1\ntransparent\n\nTic4_2\ntransparent\n\nTic4_3\ntransparent\n\n\nTic5_0\ntransparent\n\nTic5_1\ntransparent\n\nTic5_2\ntransparent\n\nTic5_3\ntransparent\n\nTic5_4\ntransparent\n\nTic3_0\ntransparent\n\nTic3_1\ntransparent\n\nTic3_2\ntransparent\n\n\n\n\nPendingMoveR\ntransparent\n\nPendingMoveL\ntransparent\n\nPendingMoveU\ntransparent\n\nPendingMoveD\ntransparent\n\nNever\ntransparent\n\nUNKNOWN\n#FF00FF\n\nGotAllDiamonds\ntransparent\n\nToR\ntransparent\n\nToL\ntransparent\n\nToU\ntransparent\n\nToD\ntransparent\n\n\nSlideR1\ntransparent\n\nSlideR2\ntransparent\n\nSlideL1\ntransparent\n\nSlideL2\ntransparent\n\nSlideU1\ntransparent\n\nSlideU2\ntransparent\n\nSlideD1\ntransparent\n\nSlideD2\ntransparent\n\n\nSpawnPoint\ntransparent\n\n\nThreeLives\ntransparent\n\nTwoLives\ntransparent\n\nOneLife\ntransparent\n\nRespawnSearch\nred\n\nKyeColumn\ntransparent\n\nKyeRow\ntransparent\n\nKyeLastSeenHere\ntransparent\n\nRealTime\ntransparent\n\n\nDieRoll1\ntransparent\n\nDieRoll2\ntransparent\n\nDieRoll3\ntransparent\n\nDieRoll4\ntransparent\n\nDieRoll5\ntransparent\n\nDieRoll6\ntransparent\n\nPlaceHolder1\ntransparent\n\nPlaceHolder2\ntransparent\n\nPlaceHolder3\ntransparent\n\n\nBlockedDoor\ntransparent\n\nFirstTic\ntransparent\n\nRow00\ntransparent\n\nRow01\ntransparent\n\nRow02\ntransparent\n\nRow03\ntransparent\n\nRow04\ntransparent\n\nRow05\ntransparent\n\nRow06\ntransparent\n\nRow07\ntransparent\n\nRow08\ntransparent\n\nRow09\ntransparent\n\nRow10\ntransparent\n\nRow11\ntransparent\n\nRow12\ntransparent\n\nRow13\ntransparent\n\nRow14\ntransparent\n\nRow15\ntransparent\n\nRow16\ntransparent\n\nRow17\ntransparent\n\nRow18\ntransparent\n\nAutoCountdown00\ntransparent\n\nAutoCountdown01\ntransparent\n\nAutoCountdown02\ntransparent\n\nAutoCountdown03\ntransparent\n\nAutoCountdown04\ntransparent\n\nAutoCountdown05\ntransparent\n\nAutoCountdown06\ntransparent\n\nAutoCountdown07\ntransparent\n\nAutoCountdown08\ntransparent\n\nAutoCountdown09\ntransparent\n\nAutoCountdown10\ntransparent\n\nAutoCountdown11\ntransparent\n\nAutoCountdown12\ntransparent\n\nAutoCountdown13\ntransparent\n\nAutoCountdown14\ntransparent\n\nAutoCountdown15\ntransparent\n\nAutoCountdown16\ntransparent\n\nAutoCountdown17\ntransparent\n\nAutoCountdown18\ntransparent\n\nAutoCountdown19\ntransparent\n\n\n\nColM0\ntransparent\n\nColM1\ntransparent\n\nColM2\ntransparent\n\nColM3\ntransparent\n\nKyeJustPushed\ntransparent\n\nForbidKyePush\ntransparent\n\nBouncerFlip\ntransparent\n\nBeastU\ntransparent\n\nBeastD\ntransparent\n\nBeastR\ntransparent\n\nBeastL\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n( = Background)\nK = Background and PlayerN\n\n* = Background and Diamond\n\n\n\n\n\n1 = Background and Wall1___\n2 = Background and Wall13__\n3 = Background and Wall_3__\n4 = Background and Wall1_7_\n5 = Background and Wall____\n6 = Background and Wall_3_9\n7 = Background and Wall__7_\n8 = Background and Wall__79\n9 = Background and Wall___9\n\n\nr = Background and SquareArrowR\nl = Background and SquareArrowL\nd = Background and SquareArrowD\nu = Background and SquareArrowU\n\nb = Background and Block\nB = Background and RoundBlock\ne = Background and Earth\n\n\n> = Background and RoundArrowR\n< = Background and RoundArrowL\n^ = Background and RoundArrowU\nv = Background and RoundArrowD\n\nc = Background and TurnerAntiClockwise\na = Background and TurnerClockwise\n\n\nS = Background and StickyH\ns = Background and StickyV\n\nU = Background and BouncerU\nD = Background and BouncerD\nL = Background and BouncerL\nR = Background and BouncerR\n\nH = BlackHole\n\nC = Background and Blob\n~ = Background and Virus\n[ = Background and Spike\nE = Background and Gnasher\nT = Background and Twister\n\nf = Background and DoorLR\ng = Background and DoorRL\nh = Background and DoorUD\ni = Background and DoorDU\n\n\nA = Background and AutoSliderSprite\nF = Background and AutoRockySprite\n\n} = Background and Timer3\n| = Background and Timer4\n{ = Background and Timer5\nz = Background and Timer6\ny = Background and Timer7\nx = Background and Timer8\nw = Background and Timer9\n\n\nKye = PlayerN or PlayerU or PlayerD or PlayerL or PlayerR\nplayer = Kye\n\n(Control how frequently things move or animate:)\n\nTicB4 = Tic4_0 or Tic4_1 or Tic4_2 or Tic4_3\nTicB5 = Tic5_0 or Tic5_1 or Tic5_2 or Tic5_3 or Tic5_4\nTicB3 = Tic3_0 or Tic3_1 or Tic3_2\n\nTicM2 = Tic4_0 or Tic4_2\nTicN2 = Tic4_1 or Tic4_3\n\nTicM5 = Tic5_0\n\nTicM4 = Tic4_0\n\nTicM1 = Tic4_0 or Tic4_1 or Tic4_2 or Tic4_3\n\nTicM3 = Tic3_0\n\nDiamondTic = TicM5\n\nKyeTic = TicM1\n\nBouncerTic = TicM5\nBeastTic = TicM5\n\n\n\n\nColumnModule = ColM0 or ColM1 or ColM2 or ColM3\n\nRowNumber = Row00 or Row01 or Row02 or Row03 or Row04 or Row05 or Row06 or Row07 or Row08 or Row09 or Row10 or Row11 or Row12 or Row13 or Row14 or Row15 or Row16 or Row17 or Row18\n\nAutoCountdown = AutoCountdown00 or AutoCountdown01 or AutoCountdown02 or AutoCountdown03 or AutoCountdown04 or AutoCountdown05 or AutoCountdown06 or AutoCountdown07 or AutoCountdown08 or AutoCountdown09 or AutoCountdown10 or AutoCountdown11 or AutoCountdown12 or AutoCountdown13 or AutoCountdown14 or AutoCountdown15 or AutoCountdown16 or AutoCountdown17 or AutoCountdown18 or AutoCountdown19\n\n\n\nMagnetQuickTic= TicM1\n\nMagnetL2Tic= BouncerTic\n\nArrowTic = TicM1\n\nDoorTic1 = Tic4_0\nDoorTic2 = Tic4_2\n\nBlackHoleConsumptionTic = TicM4\nBlackHoleConsumptionTicHalf = TicM2\n\nBlackHoleSpriteTic = TicM4\n\n(other classifications:)\n\nWall = Wall____ or Wall1___ or Wall13__ or Wall1_7_ or Wall_3__ or Wall_3_9 or Wall__7_ or Wall__79 or Wall___9\n\n\nDoorLRSprite = DoorLR1 or DoorLR2\nDoorRLSprite = DoorRL1 or DoorRL2\nDoorUDSprite = DoorUD1 or DoorUD2\nDoorDUSprite = DoorDU1 or DoorDU2\nDoorSprite = DoorLRSprite or DoorRLSprite or DoorUDSprite or DoorDUSprite\nDoor = DoorLR or DoorRL or DoorUD or DoorDU\n\n\nArrowR = SquareArrowR or RoundArrowR\nArrowL = SquareArrowL or RoundArrowL\nArrowU = SquareArrowU or RoundArrowU\nArrowD = SquareArrowD or RoundArrowD\n\nRoundArrow = RoundArrowR or RoundArrowL or RoundArrowU or RoundArrowD\nSquareArrow = SquareArrowR or SquareArrowL or SquareArrowU or SquareArrowD\n\nCorner9 = RoundBlock or Wall_3_9 or Wall__79 or Wall___9 or RoundArrow\nCorner7 = RoundBlock or Wall1_7_ or Wall__7_ or Wall__79 or RoundArrow\nCorner3 = RoundBlock or Wall13__ or Wall_3__ or Wall_3_9 or RoundArrow\nCorner1 = RoundBlock or Wall1___ or Wall13__ or Wall1_7_ or RoundArrow\n\nBouncer = BouncerR or BouncerL or BouncerU or BouncerD\n\nAutoSlider = AutoSliderU or AutoSliderD or AutoSliderL or AutoSliderR\nAutoRocky = AutoRockyU or AutoRockyD or AutoRockyL or AutoRockyR\nAutoSomething = AutoSlider or AutoRocky or AutoSliderSprite or AutoRockySprite\n\nArrow = SquareArrow or RoundArrow\n\nTurner = TurnerClockwise or TurnerAntiClockwise\n\nSticky = StickyV or StickyH\n\n\nBlob12 = Blob1 or Blob2\nBlob13 = Blob1 or Blob3\nBlob23 = Blob2 or Blob3\nBlobSprite = Blob1 or Blob2 or Blob3\n\nGnasherSprite = Gnasher1 or Gnasher2 or Gnasher3\n\n\nGnasher13 = Gnasher1 or Gnasher3\n\nVirusSprite = Virus1 or Virus2\nSpikeSprite = Spike1 or Spike2\nTwisterSprite = Twister1 or Twister2\n\nBeast = Gnasher or Blob or Virus or Twister or Spike\n\nBeastMove = BeastR or BeastL or BeastU or BeastD\nBeastV = BeastU or BeastD\nBeastH = BeastR or BeastL\nBeastRU = BeastR or BeastU\nBeastRD = BeastR or BeastD\nBeastLU = BeastL or BeastU\nBeastLD = BeastL or BeastD\n\nDieRoll1_2 = DieRoll1 or DieRoll2\nDieRoll3_4 = DieRoll3 or DieRoll4\n\nBeastFoolishMoveProb = DieRoll1 or DieRoll2 \n\nBlackHoleBusy = BlackHoleBusy1 or BlackHoleBusy2 or BlackHoleBusy3 or BlackHoleBusy4 or BlackHoleBusy5\n\nTimer = Timer0 or Timer1 or Timer2 or Timer3 or Timer4 or Timer5 or Timer6 or Timer7 or Timer8 or Timer9\n\nObject = Kye or Wall or Block or RoundBlock or Earth or Arrow or UNKNOWN or Diamond or Turner or Sticky or Bouncer or BlackHoleBusy or Beast or BlockedDoor or Timer or AutoSomething\nObjectOrBlackHole = Object or BlackHole\n\nKyePushable = Block or RoundBlock or Arrow or Turner or Sticky or Bouncer or Timer or AutoSomething\n\nBouncerPushable = KyePushable or BlackHoleBusy or Beast or Timer or AutoSomething\n\n(It's curious how Auto Slider/ Auto Rockys can't be manipulated with stickies )\n\nStickable = Block or RoundBlock or Arrow or Turner or Sticky or Bouncer or Beast\n\nNotStickableH = StickyH\nNotStickableV = StickyV\n\n\nQuickMagnetable = Block or RoundBlock or Arrow or Turner or Sticky or Timer\nMagnetableL2 = Bouncer or Beast\n\nDiamondSprite = DiamondSprite1 or DiamondSprite2\n\n\nBlackHoleSprite = BlackHoleSprite1 or BlackHoleSprite2 or BlackHoleSprite3 or BlackHoleSprite4\n\nAutoSliderArmSprite = AutoSliderSpriteU or AutoSliderSpriteD or AutoSliderSpriteL or AutoSliderSpriteR\n\nAutoRockyArmSprite = AutoRockySpriteU or AutoRockySpriteD or AutoRockySpriteL or AutoRockySpriteR\n\n\nDeathSprites = DeathSprite1 or DeathSprite2\n\nAltSprites = DiamondSprite or BlackHoleSprite or DeathSprites or WallEmpty or GnasherSprite or VirusSprite or BlobSprite or TwisterSprite or SpikeSprite or AutoSliderArmSprite or AutoRockyArmSprite\nTo = ToU or ToD or ToL or ToR\nSlide = SlideR1 or SlideL1 or SlideU1 or SlideD1 or SlideR2 or SlideL2 or SlideU2 or SlideD2\nSlideH = SlideR1 or SlideL1\nSlideV = SlideU1 or SlideD1\n\nPendingMove = PendingMoveL or PendingMoveR or PendingMoveU or PendingMoveD\n\nLives = ThreeLives or TwoLives or OneLife\n\nDieRoll = DieRoll1 or DieRoll2 or DieRoll3 or DieRoll4 or DieRoll5 or DieRoll6\n\nPlaceholder = PlaceHolder1 or PlaceHolder2 or PlaceHolder3\n\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nDoor\nDoorSprite\nBlackHole\nObject\nAltSprites\nTopLeft\nTicB3\nTicB4\nTicB5\nPendingMove\nNever\nGotAllDiamonds\nTo\nSlideR1\nSlideL1\nSlideU1\nSlideD1\nSlideR2\nSlideL2\nSlideU2\nSlideD2\nRowNumber\nColumnModule\nAutoCountdown\nSpawnPoint\nLives\nRealTime\nKyeLastSeenHere\nKyeColumn\nKyeRow\nDieRoll\nPlaceHolder1\nPlaceHolder2\nPlaceHolder3\nRespawnSearch\nFirstTic\nKyeJustPushed\nForbidKyePush\nBouncerFlip\nBeastL, BeastR\nBeastU, BeastD\n\n======\nRULES\n======\n\n( preconditions )\n( A late rule at the end will put these two objects together, even though many rules expect them to not be the same. This undoes the effect of that rule)\n[ BlackHole BlackHoleBusy ] -> [ BlackHoleBusy ]\n\n( Same with auto sliders, the idea here is that the editor uses AutoSliderSprite, no matter the direction, but for the game logic it is easier to treat it as a single object )\n[ AutoSliderSprite AutoSliderSpriteR ] -> [ AutoSliderR]\n[ AutoSliderSprite AutoSliderSpriteL ] -> [ AutoSliderL]\n[ AutoSliderSprite AutoSliderSpriteD ] -> [ AutoSliderD]\n[ AutoSliderSprite AutoSliderSpriteU ] -> [ AutoSliderU]\n[ AutoSliderSprite ] -> [ AutoSliderU]\n\n[ AutoRockySprite AutoRockySpriteR ] -> [ AutoRockyR]\n[ AutoRockySprite AutoRockySpriteL ] -> [ AutoRockyL]\n[ AutoRockySprite AutoRockySpriteD ] -> [ AutoRockyD]\n[ AutoRockySprite AutoRockySpriteU ] -> [ AutoRockyU]\n[ AutoRockySprite ] -> [ AutoRockyU]\n\n\n\n\n[ action Kye Door ] -> [ Kye Door ] checkpoint message Checkpoint Saved\n\n\n(Speed up )\n[ action Kye ] -> [ Kye ]\n\n\n(Ensure Doors are locked)\n[ Door no BlockedDoor no Kye ] -> [ Door BlockedDoor ]\n\n(Tic Helpers )\n[Kye] -> [ Kye FirstTic ]\n[ TopLeft ][ FirstTic ] -> [ TopLeft ][]\n\n[ TopLeft ] -> []\nup [ Background | ] -> [ action Background | ]\nleft [ Background | ] -> [ action Background | ]\n\n[ stationary Background ] -> [ Background TopLeft ]\n[ action Background ] -> [ stationary Background ]\n\n[ RealTime ] -> []\n[ TopLeft ][ stationary Kye ] -> [ TopLeft RealTime ][ Kye ]\n\n( Transfer the FirstTic property to the unique TopLeft cell)\n[ TopLeft no Kye ][ FirstTic Kye ] -> [ TopLeft FirstTic ][ Kye ]\n\n[ TicB4 no TopLeft ] -> [ ]\n[ RealTime Tic4_3 ] -> [ RealTime ]\n[ RealTime Tic4_2 ] -> [ RealTime Tic4_3 ]\n[ RealTime Tic4_1 ] -> [ RealTime Tic4_2 ]\n[ RealTime Tic4_0 ] -> [ RealTime Tic4_1 ]\n[ RealTime TopLeft no TicB4 ] -> [ RealTime TopLeft Tic4_0 ]\n\n[ TicB3 no TopLeft ] -> [ ]\n[ RealTime Tic3_2 ] -> [ RealTime ]\n[ RealTime Tic3_1 ] -> [ RealTime Tic3_2 ]\n[ RealTime Tic3_0 ] -> [ RealTime Tic3_1 ]\n[ RealTime TopLeft no TicB3 ] -> [ RealTime TopLeft Tic3_0 ]\n\n\n\n[ TicB5 no TopLeft ] -> [ ]\n[ RealTime Tic5_4 ] -> [ RealTime ]\n[ RealTime Tic5_3 ] -> [ RealTime Tic5_4 ]\n[ RealTime Tic5_2 ] -> [ RealTime Tic5_3 ]\n[ RealTime Tic5_1 ] -> [ RealTime Tic5_2 ]\n[ RealTime Tic5_0 ] -> [ RealTime Tic5_1 ]\n[ RealTime TopLeft no TicB5 ] -> [ RealTime TopLeft Tic5_0 ]\n\n(This fixes some issues)\n[ FirstTic RealTime ] -> [ FirstTic ]\n\n\n( stuff to do during the first tic)\n\n\n( : Number the freaking Rows)\n[ FirstTic TopLeft no Row00 ] -> [ FirstTic TopLeft Row00 ]\nright [FirstTic][ Row00 | no Row00 ] -> [FirstTic][ Row00 | Row00 ]\ndown [FirstTic][ Row00 | no Row01 ] -> [FirstTic][ Row00 | Row01 ]\ndown [FirstTic][ Row01 | no Row02 ] -> [FirstTic][ Row01 | Row02 ]\ndown [FirstTic][ Row02 | no Row03 ] -> [FirstTic][ Row02 | Row03 ]\ndown [FirstTic][ Row03 | no Row04 ] -> [FirstTic][ Row03 | Row04 ]\ndown [FirstTic][ Row04 | no Row05 ] -> [FirstTic][ Row04 | Row05 ]\ndown [FirstTic][ Row05 | no Row06 ] -> [FirstTic][ Row05 | Row06 ]\ndown [FirstTic][ Row06 | no Row07 ] -> [FirstTic][ Row06 | Row07 ]\ndown [FirstTic][ Row07 | no Row08 ] -> [FirstTic][ Row07 | Row08 ]\ndown [FirstTic][ Row08 | no Row09 ] -> [FirstTic][ Row08 | Row09 ]\ndown [FirstTic][ Row09 | no Row10 ] -> [FirstTic][ Row09 | Row10 ]\ndown [FirstTic][ Row10 | no Row11 ] -> [FirstTic][ Row10 | Row11 ]\ndown [FirstTic][ Row11 | no Row12 ] -> [FirstTic][ Row11 | Row12 ]\ndown [FirstTic][ Row12 | no Row13 ] -> [FirstTic][ Row12 | Row13 ]\ndown [FirstTic][ Row13 | no Row14 ] -> [FirstTic][ Row13 | Row14 ]\ndown [FirstTic][ Row14 | no Row15 ] -> [FirstTic][ Row14 | Row15 ]\ndown [FirstTic][ Row15 | no Row16 ] -> [FirstTic][ Row15 | Row16 ]\ndown [FirstTic][ Row16 | no Row17 ] -> [FirstTic][ Row16 | Row17 ]\ndown [FirstTic][ Row17 | no Row18 ] -> [FirstTic][ Row17 | Row18 ]\ndown [FirstTic][ Row18 | no Row18 ] -> [FirstTic][ Row18 | Row18 ]\n\n( : Number the colums)\n\n[ FirstTic TopLeft no ColM0 ] -> [ FirstTic TopLeft ColM0 ]\nstartloop\n right [ FirstTic ][ ColM0 | no ColM1 ] -> [ FirstTic ][ ColM0 | ColM1 ]\n right [ FirstTic ][ ColM1 | no ColM2 ] -> [ FirstTic ][ ColM1 | ColM2 ]\n right [ FirstTic ][ ColM2 | no ColM3 ] -> [ FirstTic ][ ColM2 | ColM3 ]\n right [ FirstTic ][ ColM3 | no ColM0 ] -> [ FirstTic ][ ColM3 | ColM0 ]\nendloop\ndown [FirstTic][ ColumnModule | no ColumnModule ] -> [FirstTic][ ColumnModule | ColumnModule ]\n\n\n( : Initial AutoSomething direction )\n( TODO: it is not random, it depends on horizontal position )\n[ FirstTic ][ AutoRocky ColM0 ] -> [ FirstTic ][ AutoRockyL ColM0 ]\n[ FirstTic ][ AutoRocky ColM1 ] -> [ FirstTic ][ AutoRockyU ColM1 ]\n[ FirstTic ][ AutoRocky ColM2 ] -> [ FirstTic ][ AutoRockyR ColM2 ]\n[ FirstTic ][ AutoRocky ColM3 ] -> [ FirstTic ][ AutoRockyD ColM3 ]\n\n[ FirstTic ][ AutoSlider ColM0 ] -> [ FirstTic ][ AutoSliderL ColM0 ]\n[ FirstTic ][ AutoSlider ColM1 ] -> [ FirstTic ][ AutoSliderU ColM1 ]\n[ FirstTic ][ AutoSlider ColM2 ] -> [ FirstTic ][ AutoSliderR ColM2 ]\n[ FirstTic ][ AutoSlider ColM3 ] -> [ FirstTic ][ AutoSliderD ColM3 ]\n\n\n\n\n\n( Rotate the Autos )\n[ RealTime BouncerTic ][ AutoRockyR ] -> [ RealTime BouncerTic ][ PlaceHolder1 ]\n[ RealTime BouncerTic ][ AutoRockyD ] -> [ RealTime BouncerTic ][ AutoRockyR ]\n[ RealTime BouncerTic ][ AutoRockyL ] -> [ RealTime BouncerTic ][ AutoRockyD ]\n[ RealTime BouncerTic ][ AutoRockyU ] -> [ RealTime BouncerTic ][ AutoRockyL ]\n [ PlaceHolder1 ] -> [ AutoRockyU ]\n\n\n[ RealTime BouncerTic ][ AutoSliderR ] -> [ RealTime BouncerTic ][ PlaceHolder1 ]\n[ RealTime BouncerTic ][ AutoSliderD ] -> [ RealTime BouncerTic ][ AutoSliderR ]\n[ RealTime BouncerTic ][ AutoSliderL ] -> [ RealTime BouncerTic ][ AutoSliderD ]\n[ RealTime BouncerTic ][ AutoSliderU ] -> [ RealTime BouncerTic ][ AutoSliderL ]\n [ PlaceHolder1 ] -> [ AutoSliderU ]\n\n\n( : Queued Kye Moves )\n\n[ up Kye ] -> [ PendingMoveU Kye ]\n[ down Kye ] -> [ PendingMoveD Kye ]\n[ right Kye ] -> [ PendingMoveR Kye ]\n[ left Kye ] -> [ PendingMoveL Kye ]\n\n[ RealTime KyeTic ][ Kye PendingMoveU ] -> [ RealTime KyeTic ][ up Kye]\n[ RealTime KyeTic ][ Kye PendingMoveD ] -> [ RealTime KyeTic ][ down Kye]\n[ RealTime KyeTic ][ Kye PendingMoveR ] -> [ RealTime KyeTic ][ right Kye]\n[ RealTime KyeTic ][ Kye PendingMoveL ] -> [ RealTime KyeTic ][ left Kye]\n\n( Mark the Spawn point)\n\n[ TopLeft ] -> [ action TopLeft ]\n[ action TopLeft ][ SpawnPoint ] -> [ TopLeft ][ SpawnPoint ]\n[ action TopLeft ][ Kye ] -> [ TopLeft ][ Kye SpawnPoint ThreeLives ]\n[ action TopLeft ] -> [ TopLeft SpawnPoint ThreeLives ] (whoops)\n\n\n\n\n(Arrow movement)\n\n[RealTime ArrowTic][ ArrowR ] -> [RealTime ArrowTic][ right ArrowR ]\n[RealTime ArrowTic][ ArrowL ] -> [RealTime ArrowTic][ left ArrowL ]\n[RealTime ArrowTic][ ArrowU ] -> [RealTime ArrowTic][ up ArrowU ]\n[RealTime ArrowTic][ ArrowD ] -> [RealTime ArrowTic][ down ArrowD ]\n\n( Bouncer movement )\n\n[RealTime BouncerTic][ BouncerR ] -> [ RealTime BouncerTic ][ right BouncerR ]\n[RealTime BouncerTic][ BouncerL ] -> [ RealTime BouncerTic ][ left BouncerL ]\n[RealTime BouncerTic][ BouncerU ] -> [ RealTime BouncerTic ][ up BouncerU ]\n[RealTime BouncerTic][ BouncerD ] -> [ RealTime BouncerTic ][ down BouncerD ]\n\n\n(Monster kill)\n[ Beast | Kye ] -> [ Beast | ]\n\n(Monster Movement)\n\n[ KyeColumn ] -> []\n[ KyeRow ] -> []\n[ Kye ] -> [ Kye KyeColumn KyeRow ]\nvertical [ KyeColumn | ... | no KyeColumn ] -> [ KyeColumn | ... | KyeColumn ]\nhorizontal [ KyeRow | ... | no KyeRow ] -> [ KyeRow | ... | KyeRow ]\n\n\nhorizontal [RealTime BeastTic][ stationary Beast no KyeColumn | ... | KyeColumn ] -> [RealTime BeastTic][ > Beast | ... | KyeColumn ]\n[RealTime BeastTic][ right Beast ] -> [RealTime BeastTic][ BeastR stationary Beast ]\n[RealTime BeastTic][ left Beast ] -> [RealTime BeastTic][ BeastL stationary Beast ]\n\nvertical [RealTime BeastTic][ stationary Beast no KyeRow | ... | KyeRow ] -> [RealTime BeastTic][ > Beast | ... | KyeRow ]\n[RealTime BeastTic][ up Beast ] -> [RealTime BeastTic][ BeastU stationary Beast ]\n[RealTime BeastTic][ down Beast ] -> [RealTime BeastTic][ BeastD stationary Beast ]\n\nup [ BeastU | Object ] -> [ | Object ]\ndown [ BeastD | Object ] -> [ | Object ]\nright [ BeastR | Object ] -> [ | Object ]\nleft [ BeastL | Object ] -> [ | Object ]\n\n\n[ RealTime BeastTic ][ Beast no BeastMove ] -> [ RealTime BeastTic ][ action Beast ]\n\n\nhorizontal [RealTime BeastTic][ action Beast no KyeColumn | ... | KyeColumn ] -> [RealTime BeastTic][ > Beast | ... | KyeColumn ]\n[RealTime BeastTic][ right Beast ] -> [RealTime BeastTic][ BeastR stationary Beast ]\n[RealTime BeastTic][ left Beast ] -> [RealTime BeastTic][ BeastL stationary Beast ]\n\nvertical [RealTime BeastTic][ action Beast no KyeRow | ... | KyeRow ] -> [RealTime BeastTic][ > Beast | ... | KyeRow ]\n[RealTime BeastTic][ up Beast ] -> [RealTime BeastTic][ BeastU stationary Beast ]\n[RealTime BeastTic][ down Beast ] -> [RealTime BeastTic][ BeastD stationary Beast ]\n\n\n[ BeastR BeastU ] -> [ random BeastRU ]\n[ BeastR BeastD ] -> [ random BeastRD ]\n[ BeastL BeastU ] -> [ random BeastLU ]\n[ BeastL BeastD ] -> [ random BeastLD ]\n\n\n\n\n\n[ BeastR Beast ] -> [ right Beast ]\n[ BeastL Beast ] -> [ left Beast ]\n[ BeastU Beast ] -> [ up Beast ]\n[ BeastD Beast ] -> [ down Beast ]\n\n\n\n( : Do a die roll )\n[ DieRoll ] -> []\n[RealTime BeastTic][ Beast no DieRoll ] -> [RealTime BeastTic][ Beast random DieRoll ]\n( : Roll again for the ones that have to move, add action tag )\n[ BeastFoolishMoveProb Beast ] -> [ Beast action BeastFoolishMoveProb ] \n[ stationary DieRoll ] -> []\n[ BeastFoolishMoveProb ] -> [ random DieRoll ]\n\n\n\n[ vertical Beast DieRoll1_2 ] -> [ left Beast ]\n[ vertical Beast DieRoll3_4 ] -> [ right Beast ]\n[ horizontal Beast DieRoll1_2 ] -> [ up Beast ]\n[ horizontal Beast DieRoll3_4 ] -> [ down Beast ]\n[ Beast DieRoll5 ] -> [ stationary Beast ]\n[ > Beast DieRoll6 ] -> [ < Beast ]\n\n\n\n[ DieRoll ] -> []\n\n\n\n\n(sticky logic)\n\nvertical [ StickyV | moving Stickable no NotStickableV ] -> [ StickyV | stationary Stickable ]\nvertical [ < StickyV | Stickable no NotStickableV ] -> [ < StickyV | < Stickable ]\n\nhorizontal [ StickyH | moving Stickable no NotStickableH ] -> [ StickyH | stationary Stickable ]\nhorizontal [ < StickyH | Stickable no NotStickableH ] -> [ < StickyH | < Stickable ]\n\n(Magnet logic)\n\nleft [ RealTime MagnetQuickTic ][ QuickMagnetable no NotStickableH | no ObjectOrBlackHole | StickyH ] -> [ RealTime MagnetQuickTic ][ > QuickMagnetable | | StickyH ]\nright [ RealTime MagnetQuickTic ][ QuickMagnetable no NotStickableH | no ObjectOrBlackHole | StickyH ] -> [ RealTime MagnetQuickTic ][ > QuickMagnetable | | StickyH ]\nup [ RealTime MagnetQuickTic ][ QuickMagnetable no NotStickableV | no ObjectOrBlackHole | StickyV ] -> [ RealTime MagnetQuickTic ][ > QuickMagnetable | | StickyV ]\ndown [ RealTime MagnetQuickTic ][ QuickMagnetable no NotStickableV | no ObjectOrBlackHole | StickyV ] -> [ RealTime MagnetQuickTic ][ > QuickMagnetable | | StickyV ]\n\n\nleft [ RealTime MagnetL2Tic ][ MagnetableL2 no NotStickableH | no ObjectOrBlackHole | StickyH ] -> [ RealTime MagnetL2Tic ][ > MagnetableL2 | | StickyH ]\nright [ RealTime MagnetL2Tic ][ MagnetableL2 no NotStickableH | no ObjectOrBlackHole | StickyH ] -> [ RealTime MagnetL2Tic ][ > MagnetableL2 | | StickyH ]\nup [ RealTime MagnetL2Tic ][ MagnetableL2 no NotStickableV | no ObjectOrBlackHole | StickyV ] -> [ RealTime MagnetL2Tic ][ > MagnetableL2 | | StickyV ]\ndown [ RealTime MagnetL2Tic ][ MagnetableL2 no NotStickableV | no ObjectOrBlackHole | StickyV ] -> [ RealTime MagnetL2Tic ][ > MagnetableL2 | | StickyV ]\n\n\n\n\n(attacted to Kye)\nhorizontal [RealTime MagnetQuickTic ][ StickyH | no ObjectOrBlackHole | Kye ] -> [RealTime MagnetQuickTic ][ > StickyH | | Kye ]\nvertical [RealTime MagnetQuickTic ][ StickyV | no ObjectOrBlackHole | Kye ] -> [RealTime MagnetQuickTic ][ > StickyV | | Kye ]\n\n\n( subtract countdowns )\n[ RealTime BouncerTic ][ AutoCountdown01 ] -> [ RealTime BouncerTic ][ AutoCountdown00 ]\n[ RealTime BouncerTic ][ AutoCountdown02 ] -> [ RealTime BouncerTic ][ AutoCountdown01 ]\n[ RealTime BouncerTic ][ AutoCountdown03 ] -> [ RealTime BouncerTic ][ AutoCountdown02 ]\n[ RealTime BouncerTic ][ AutoCountdown04 ] -> [ RealTime BouncerTic ][ AutoCountdown03 ]\n[ RealTime BouncerTic ][ AutoCountdown05 ] -> [ RealTime BouncerTic ][ AutoCountdown04 ]\n[ RealTime BouncerTic ][ AutoCountdown06 ] -> [ RealTime BouncerTic ][ AutoCountdown05 ]\n[ RealTime BouncerTic ][ AutoCountdown07 ] -> [ RealTime BouncerTic ][ AutoCountdown06 ]\n[ RealTime BouncerTic ][ AutoCountdown08 ] -> [ RealTime BouncerTic ][ AutoCountdown07 ]\n[ RealTime BouncerTic ][ AutoCountdown09 ] -> [ RealTime BouncerTic ][ AutoCountdown08 ]\n[ RealTime BouncerTic ][ AutoCountdown10 ] -> [ RealTime BouncerTic ][ AutoCountdown09 ]\n[ RealTime BouncerTic ][ AutoCountdown11 ] -> [ RealTime BouncerTic ][ AutoCountdown10 ]\n[ RealTime BouncerTic ][ AutoCountdown12 ] -> [ RealTime BouncerTic ][ AutoCountdown11 ]\n[ RealTime BouncerTic ][ AutoCountdown13 ] -> [ RealTime BouncerTic ][ AutoCountdown12 ]\n[ RealTime BouncerTic ][ AutoCountdown14 ] -> [ RealTime BouncerTic ][ AutoCountdown13 ]\n[ RealTime BouncerTic ][ AutoCountdown15 ] -> [ RealTime BouncerTic ][ AutoCountdown14 ]\n[ RealTime BouncerTic ][ AutoCountdown16 ] -> [ RealTime BouncerTic ][ AutoCountdown15 ]\n[ RealTime BouncerTic ][ AutoCountdown17 ] -> [ RealTime BouncerTic ][ AutoCountdown16 ]\n[ RealTime BouncerTic ][ AutoCountdown18 ] -> [ RealTime BouncerTic ][ AutoCountdown17 ]\n[ RealTime BouncerTic ][ AutoCountdown19 ] -> [ RealTime BouncerTic ][ AutoCountdown18 ]\n\n( create arrows )\nright [ RealTime BouncerTic ][ AutoSliderR AutoCountdown00 | no Object ] -> [ RealTime BouncerTic ][ AutoSliderR | SquareArrowR ]\nleft [ RealTime BouncerTic ][ AutoSliderL AutoCountdown00 | no Object ] -> [ RealTime BouncerTic ][ AutoSliderL | SquareArrowL ]\nup [ RealTime BouncerTic ][ AutoSliderU AutoCountdown00 | no Object ] -> [ RealTime BouncerTic ][ AutoSliderU | SquareArrowU ]\ndown [ RealTime BouncerTic ][ AutoSliderD AutoCountdown00 | no Object ] -> [ RealTime BouncerTic ][ AutoSliderD | SquareArrowD ]\n\nright [ RealTime BouncerTic ][ AutoRockyR AutoCountdown00 | no Object ] -> [ RealTime BouncerTic ][ AutoRockyR | RoundArrowR ]\nleft [ RealTime BouncerTic ][ AutoRockyL AutoCountdown00 | no Object ] -> [ RealTime BouncerTic ][ AutoRockyL | RoundArrowL ]\nup [ RealTime BouncerTic ][ AutoRockyU AutoCountdown00 | no Object ] -> [ RealTime BouncerTic ][ AutoRockyU | RoundArrowU ]\ndown [ RealTime BouncerTic ][ AutoRockyD AutoCountdown00 | no Object ] -> [ RealTime BouncerTic ][ AutoRockyD | RoundArrowD ]\n\n\n\n\n(turner logic)\nright [ right ArrowR | TurnerClockwise ] -> [ ArrowR ToD | TurnerClockwise ]\nleft [ left ArrowL | TurnerClockwise ] -> [ ArrowL ToU | TurnerClockwise ]\nup [ up ArrowU | TurnerClockwise ] -> [ ArrowU ToR | TurnerClockwise ]\ndown [ down ArrowD | TurnerClockwise ] -> [ ArrowD ToL | TurnerClockwise ]\n\nright [ right ArrowR | TurnerAntiClockwise ] -> [ ArrowR ToU | TurnerAntiClockwise ]\nleft [ left ArrowL | TurnerAntiClockwise ] -> [ ArrowL ToD | TurnerAntiClockwise ]\nup [ up ArrowU | TurnerAntiClockwise ] -> [ ArrowU ToL | TurnerAntiClockwise ]\ndown [ down ArrowD | TurnerAntiClockwise ] -> [ ArrowD ToR | TurnerAntiClockwise ]\n\n[ RoundArrow ToR ] -> [ RoundArrowR ]\n[ RoundArrow ToL ] -> [ RoundArrowL ]\n[ RoundArrow ToU ] -> [ RoundArrowU ]\n[ RoundArrow ToD ] -> [ RoundArrowD ]\n[ SquareArrow ToR ] -> [ SquareArrowR ]\n[ SquareArrow ToL ] -> [ SquareArrowL ]\n[ SquareArrow ToU ] -> [ SquareArrowU ]\n[ SquareArrow ToD ] -> [ SquareArrowD ]\n\n\n\n( Bouncer collision)\n(right [ > BouncerR | < BouncerL ] -> [ BouncerL | BouncerR ]\nleft [ > BouncerL | < BouncerR ] -> [ BouncerR | BouncerL ]\nup [ > BouncerU | < BouncerD ] -> [ BouncerD | BouncerU ]\ndown [ > BouncerD | < BouncerU ] -> [ BouncerD | BouncerU ])\n\n\n(Bouncer Bounce)\n\n[ BouncerFlip ] -> []\n\nright [ RealTime BouncerTic ][ right BouncerR | Object ] -> [ RealTime BouncerTic ][ right BouncerR BouncerFlip | Object ]\nleft [ RealTime BouncerTic ][ left BouncerL | Object ] -> [ RealTime BouncerTic ][ left BouncerL BouncerFlip | Object ]\nup [ RealTime BouncerTic ][ up BouncerU | Object ] -> [ RealTime BouncerTic ][ up BouncerU BouncerFlip | Object ]\ndown [ RealTime BouncerTic ][ down BouncerD | Object ] -> [ RealTime BouncerTic ][ down BouncerD BouncerFlip | Object ]\n\n\n(Bouncer Push)\nright [ RealTime BouncerTic ][ > BouncerR | BouncerPushable ] -> [ RealTime BouncerTic ][ BouncerR | > BouncerPushable ]\nleft [ RealTime BouncerTic ][ > BouncerL | BouncerPushable ] -> [ RealTime BouncerTic ][ BouncerL | > BouncerPushable ]\nup [ RealTime BouncerTic ][ > BouncerU | BouncerPushable ] -> [ RealTime BouncerTic ][ BouncerU | > BouncerPushable ]\ndown [ RealTime BouncerTic ][ > BouncerD | BouncerPushable ] -> [ RealTime BouncerTic ][ BouncerD | > BouncerPushable ]\n\n[ BouncerFlip BouncerR ] -> [ BouncerL ]\n[ BouncerFlip BouncerL ] -> [ BouncerR ]\n[ BouncerFlip BouncerU ] -> [ BouncerD ]\n[ BouncerFlip BouncerD ] -> [ BouncerU ]\n\n\n(Kye can push)\n\n[RealTime ArrowTic][ ForbidKyePush ] -> [ RealTime ArrowTic][]\n[RealTime ArrowTic][ > Arrow KyeJustPushed | no Object ] -> [ RealTime ArrowTic][ > Arrow ForbidKyePush | no Object ]\n\n[RealTime ArrowTic][ KyeJustPushed ] -> [ RealTime ArrowTic ][]\n\n[ ForbidKyePush ][ moving Kye ] -> [ ForbidKyePush ][ stationary Kye ]\n\n\n\n\n[ > Kye | KyePushable no ForbidKyePush | no Object ] -> [ > Kye | > KyePushable | ]\n(Sticky logic for Kye, must have priority)\nvertical [ < Kye | StickyV ] -> [ < Kye | < StickyV ]\nhorizontal [ < Kye | StickyH ] -> [ < Kye | < StickyH ]\n\n\n\n\n( Priority to Kye's movement )\n\n( : Enter door )\n\nright [ > Kye | DoorLR BlockedDoor ] -> [ | DoorLR Kye ]\nleft [ > Kye | DoorRL BlockedDoor ] -> [ | DoorRL Kye ]\nup [ > Kye | DoorDU BlockedDoor ] -> [ | DoorDU Kye ]\ndown [ > Kye | DoorUD BlockedDoor ] -> [ | DoorUD Kye ]\n\n\ndown [ down Kye | down KyePushable no ForbidKyePush | no Object ] -> [ | Kye | KyePushable KyeJustPushed ]\nright [ right Kye | right KyePushable no ForbidKyePush | no Object ] -> [ | Kye | KyePushable KyeJustPushed ]\nleft [ left Kye | left KyePushable no ForbidKyePush | no Object ] -> [ | Kye | KyePushable KyeJustPushed ]\nup [ up Kye | up KyePushable no ForbidKyePush | no Object ] -> [ | Kye | KyePushable KyeJustPushed ]\n\n\n\n[ > Kye | Earth ] -> [ | Kye ]\n[ > Kye | Diamond ] -> [ | Kye GotAllDiamonds ]\n[ GotAllDiamonds ][ Diamond ] -> [][Diamond ]\n\n[ GotAllDiamonds ] -> win\n\n\n[ > Kye | UNKNOWN ] -> [ | Kye ]\n\n\n( Blackhole swallow)\nlate [ RealTime no BlackHoleConsumptionTic ][ Object BlackHole ] -> [ RealTime BlackHoleConsumptionTic ][ BlackHoleBusy1 ]\nlate [ RealTime BlackHoleConsumptionTic ][ Object BlackHole ] -> [ RealTime BlackHoleConsumptionTic ][ BlackHoleBusy2 ]\n\n[ RealTime BlackHoleConsumptionTicHalf ][ BlackHoleBusy5 ] -> [ RealTime BlackHoleConsumptionTic ][ BlackHole ]\n[ RealTime BlackHoleConsumptionTic ][ BlackHoleBusy4 ] -> [ RealTime BlackHoleConsumptionTic ][ BlackHoleBusy5 ]\n[ RealTime BlackHoleConsumptionTic ][ BlackHoleBusy3 ] -> [ RealTime BlackHoleConsumptionTic ][ BlackHoleBusy4 ]\n[ RealTime BlackHoleConsumptionTic ][ BlackHoleBusy2 ] -> [ RealTime BlackHoleConsumptionTic ][ BlackHoleBusy3 ]\n[ RealTime BlackHoleConsumptionTic ][ stationary BlackHoleBusy1 ] -> [ RealTime BlackHoleConsumptionTic ][ BlackHoleBusy2 ]\n\n\n\n\n(slide logic)\n\n(this is to allow the slide logic to consider the black holes as objects, later the walls get removed)\n[ ArrowTic ][ BlackHole no Object ] -> [ ArrowTic ][ BlackHole Wall____]\n\n( - down )\n[ Slide ] -> []\ndown [ down RoundArrowD | Corner7 ] -> [ SlideL1 down RoundArrowD | Corner7 ]\ndown [ down RoundArrowD | Corner9 ] -> [ SlideR1 down RoundArrowD | Corner9 ]\n\nright [ SlideR1 | no Object ] -> [ SlideR1 | SlideR2 ]\nleft [ SlideL1 | no Object ] -> [ SlideL1 | SlideL2 ]\n\ndown [ SlideR2 | Object ] -> [ | Object ]\ndown [ SlideL2 | Object ] -> [ | Object ]\n\nright [ SlideR1 | no SlideR2 ] -> [ | ]\nleft [ SlideL1 | no SlideL2 ] -> [ | ]\n\n\n[ SlideL1 SlideR1 ] -> [ random SlideH ] (pick a random one)\n\nright [ down RoundArrowD SlideR1 | SlideR2 no Object ] -> [ | down RoundArrowD SlideR2 ]\nleft [ down RoundArrowD SlideL1 | SlideL2 no Object ] -> [ | down RoundArrowD SlideL2 ]\n\n( - right )\n[ Slide ] -> []\nright [ right RoundArrowR | Corner7 ] -> [ SlideU1 right RoundArrowR | Corner7 ]\nright [ right RoundArrowR | Corner1 ] -> [ SlideD1 right RoundArrowR | Corner1 ]\n\nup [ SlideU1 | no Object ] -> [ SlideU1 | SlideU2 ]\ndown [ SlideD1 | no Object ] -> [ SlideD1 | SlideD2 ]\n\nright [ SlideU2 | Object ] -> [ | Object ]\nright [ SlideD2 | Object ] -> [ | Object ]\n\nup [ SlideU1 | no SlideU2 ] -> [ | ]\ndown [ SlideD1 | no SlideD2 ] -> [ | ]\n\n\n[ SlideU1 SlideD1 ] -> [ random SlideV ] (pick a random one)\n\ndown [ right RoundArrowR SlideD1 | SlideD2 no Object ] -> [ | right RoundArrowR SlideD2 ]\nup [ right RoundArrowR SlideU1 | SlideU2 no Object ] -> [ | right RoundArrowR SlideU2 ]\n\n\n\n( - lef )\n[ Slide ] -> []\nleft [ left RoundArrowL | Corner9 ] -> [ SlideU1 left RoundArrowL | Corner9 ]\nleft [ left RoundArrowL | Corner3 ] -> [ SlideD1 left RoundArrowL | Corner3 ]\n\nup [ SlideU1 | no Object ] -> [ SlideU1 | SlideU2 ]\ndown [ SlideD1 | no Object ] -> [ SlideD1 | SlideD2 ]\n\nleft [ SlideU2 | Object ] -> [ | Object ]\nleft [ SlideD2 | Object ] -> [ | Object ]\n\nup [ SlideU1 | no SlideU2 ] -> [ | ]\ndown [ SlideD1 | no SlideD2 ] -> [ | ]\n\n\n[ SlideU1 SlideD1 ] -> [ random SlideV ] (pick a random one)\n\ndown [ left RoundArrowL SlideD1 | SlideD2 no Object ] -> [ | left RoundArrowL SlideD2 ]\nup [ left RoundArrowL SlideU1 | SlideU2 no Object ] -> [ | left RoundArrowL SlideU2 ]\n\n\n( - up )\n[ Slide ] -> []\nup [ up RoundArrowU | Corner1 ] -> [ SlideL1 up RoundArrowU | Corner1 ]\nup [ up RoundArrowU | Corner3 ] -> [ SlideR1 up RoundArrowU | Corner3 ]\n\nright [ SlideR1 | no Object ] -> [ SlideR1 | SlideR2 ]\nleft [ SlideL1 | no Object ] -> [ SlideL1 | SlideL2 ]\n\nup [ SlideR2 | Object ] -> [ | Object ]\nup [ SlideL2 | Object ] -> [ | Object ]\n\nright [ SlideR1 | no SlideR2 ] -> [ | ]\nleft [ SlideL1 | no SlideL2 ] -> [ | ]\n\n\n[ SlideL1 SlideR1 ] -> [ random SlideH ] (pick a random one)\n\nright [ up RoundArrowU SlideR1 | SlideR2 no Object ] -> [ | up RoundArrowU SlideR2 ]\nleft [ up RoundArrowU SlideL1 | SlideL2 no Object ] -> [ | up RoundArrowU SlideL2 ]\n\n\n[ArrowTic][ BlackHole Wall____ ] -> [ArrowTic][ BlackHole ]\n\n\n\n( death animation )\n( Normally BlackHole consumption is processed late, but for Kye's respawn to work it has to happen earlier)\n[ > Kye | BlackHole ] -> [ | BlackHole Wall____ ]\n[RealTime][ DeathSprite2 ] -> [RealTime][]\n[RealTime][ DeathSprite1 ] -> [RealTime][ DeathSprite2 ]\n\n( Respawn )\n( here action modifier on TopLeft cell means that we detected that Kye is gone )\n[ TopLeft ]-> [ action TopLeft ]\n[ action TopLeft ][ Kye ] -> [ TopLeft ][ Kye ]\n[ action TopLeft ][ KyeLastSeenHere no DeathSprites ] -> [ action TopLeft ][ KyeLastSeenHere DeathSprite1 ]\n[ action TopLeft ][ SpawnPoint ThreeLives ] -> [ TopLeft ][ RespawnSearch SpawnPoint TwoLives ]\n[ action TopLeft ][ SpawnPoint TwoLives ] -> [ TopLeft ][ RespawnSearch SpawnPoint OneLife ]\n[ action TopLeft ][ SpawnPoint OneLife ] -> [ TopLeft ][ RespawnSearch SpawnPoint ]\n[ RealTime action TopLeft ][ SpawnPoint no Lives ] -> [ TopLeft ][ SpawnPoint ](message Game Over [You can still undo])\n\n\nstartloop\n [ stationary TopLeft ][ RespawnSearch no Object ] -> [ action TopLeft ][ RespawnSearch PlayerN ]\n [ PlayerN ][ RespawnSearch ] -> [ PlayerN ][]\n \n [ RespawnSearch ] -> [ action RespawnSearch ]\n right [ action RespawnSearch | no RespawnSearch ] -> [ action RespawnSearch | RespawnSearch ]\n [ RespawnSearch ] -> [ action RespawnSearch ]\n up [ action RespawnSearch | no RespawnSearch ] -> [ action RespawnSearch | RespawnSearch ]\n [ RespawnSearch ] -> [ action RespawnSearch ]\n down [ action RespawnSearch | no RespawnSearch ] -> [ action RespawnSearch | RespawnSearch ]\n [ RespawnSearch ] -> [ action RespawnSearch ]\n left [ action RespawnSearch | no RespawnSearch ] -> [ action RespawnSearch | RespawnSearch ]\n\nendloop\n\n(Timer Blocks )\n( PS: I hate Timer Blocks, they are largely useless, if you want to make timers in Kye, it's better to create contraptions with pushers or arrows\n\n we need to do stuff every 30 tics, 30 = 5 * 2 * 3 . And you thought there was no \n use for maths)\n\n[ RealTime TicM5 TicM2 TicM3 no FirstTic ][ Timer0 ] -> [ RealTime TicM5 TicM2 TicM3 ][ ]\n[ RealTime TicM5 TicM2 TicM3 no FirstTic ][ Timer1 ] -> [ RealTime TicM5 TicM2 TicM3 ][ Timer0 ]\n[ RealTime TicM5 TicM2 TicM3 no FirstTic ][ Timer2 ] -> [ RealTime TicM5 TicM2 TicM3 ][ Timer1 ]\n[ RealTime TicM5 TicM2 TicM3 no FirstTic ][ Timer3 ] -> [ RealTime TicM5 TicM2 TicM3 ][ Timer2 ]\n[ RealTime TicM5 TicM2 TicM3 no FirstTic ][ Timer4 ] -> [ RealTime TicM5 TicM2 TicM3 ][ Timer3 ]\n[ RealTime TicM5 TicM2 TicM3 no FirstTic ][ Timer5 ] -> [ RealTime TicM5 TicM2 TicM3 ][ Timer4 ]\n[ RealTime TicM5 TicM2 TicM3 no FirstTic ][ Timer6 ] -> [ RealTime TicM5 TicM2 TicM3 ][ Timer5 ]\n[ RealTime TicM5 TicM2 TicM3 no FirstTic ][ Timer7 ] -> [ RealTime TicM5 TicM2 TicM3 ][ Timer6 ]\n[ RealTime TicM5 TicM2 TicM3 no FirstTic ][ Timer8 ] -> [ RealTime TicM5 TicM2 TicM3 ][ Timer7 ]\n[ RealTime TicM5 TicM2 TicM3 no FirstTic ][ Timer9 ] -> [ RealTime TicM5 TicM2 TicM3 ][ Timer8 ]\n\n\n( Block any movement towards door that's not the valid one already processeced above)\n[ > Object | Door ] -> [ Object | Door ]\n\n\n( Very important part of the rules, this one does the movement instead of puzzle script,\nthat way the order in which directions are evaluated is closer to original Kye's . There's\na lot of levels that implicitly require this sort of priority to be enforced. e.g SLIDERS and COUNTERS)\n\n( the priority SEEMS to be as follows: arrows before other objects, down has priority over right, right has priority over left and up is the worst )\n\n\n\n\n(someone good with programming please help me, my family is dying )\n\n\n\ndown [ down Arrow | no Object ] -> [ | Arrow ]\nstartloop\n\n down [ down Arrow | no Object ] -> [ | Arrow ]\n right[ right Arrow | no Object ] -> [ | Arrow ]\nendloop\n\nstartloop\n down [ down Arrow | no Object ] -> [ | Arrow ]\n right[ right Arrow | no Object ] -> [ | Arrow ]\n left [ left Arrow | no Object ] -> [ | Arrow ]\nendloop\n\nstartloop\n down [ down Arrow | no Object ] -> [ | Arrow ]\n right[ right Arrow | no Object ] -> [ | Arrow ]\n left [ left Arrow | no Object ] -> [ | Arrow ]\n up [ up Arrow | no Object ] -> [ | Arrow ]\nendloop\n\n\n\n\ndown [ down Object | no Object ] -> [ | Object ]\nstartloop\n\n down [ down Object | no Object ] -> [ | Object ]\n right[ right Object | no Object ] -> [ | Object ]\nendloop\n\nstartloop\n down [ down Object | no Object ] -> [ | Object ]\n right[ right Object | no Object ] -> [ | Object ]\n left [ left Object | no Object ] -> [ | Object ]\nendloop\n\n(I am going to programmer's hell)\nstartloop\n down [ down Object | no Object ] -> [ | Object ]\n right[ right Object | no Object ] -> [ | Object ]\n left [ left Object | no Object ] -> [ | Object ]\n up [ up Object | no Object ] -> [ | Object ]\nendloop\n\n\n\n( Reset the countdowns, depends on the row number. This is the worst)\nlate [ AutoCountdown no AutoSomething ] -> [] (get rid of unnecessary countdowns)\n\nlate [ AutoSomething Row00 no AutoCountdown ] -> [ AutoSomething Row00 AutoCountdown01 ]\nlate [ AutoSomething Row01 no AutoCountdown ] -> [ AutoSomething Row01 AutoCountdown02 ]\nlate [ AutoSomething Row02 no AutoCountdown ] -> [ AutoSomething Row02 AutoCountdown03 ]\nlate [ AutoSomething Row03 no AutoCountdown ] -> [ AutoSomething Row03 AutoCountdown04 ]\nlate [ AutoSomething Row04 no AutoCountdown ] -> [ AutoSomething Row04 AutoCountdown05 ]\nlate [ AutoSomething Row05 no AutoCountdown ] -> [ AutoSomething Row05 AutoCountdown06 ]\nlate [ AutoSomething Row06 no AutoCountdown ] -> [ AutoSomething Row06 AutoCountdown07 ]\nlate [ AutoSomething Row07 no AutoCountdown ] -> [ AutoSomething Row07 AutoCountdown08 ]\nlate [ AutoSomething Row08 no AutoCountdown ] -> [ AutoSomething Row08 AutoCountdown09 ]\nlate [ AutoSomething Row09 no AutoCountdown ] -> [ AutoSomething Row09 AutoCountdown10 ]\nlate [ AutoSomething Row10 no AutoCountdown ] -> [ AutoSomething Row10 AutoCountdown11 ]\nlate [ AutoSomething Row11 no AutoCountdown ] -> [ AutoSomething Row11 AutoCountdown12 ]\nlate [ AutoSomething Row12 no AutoCountdown ] -> [ AutoSomething Row12 AutoCountdown13 ]\nlate [ AutoSomething Row13 no AutoCountdown ] -> [ AutoSomething Row13 AutoCountdown14 ]\nlate [ AutoSomething Row14 no AutoCountdown ] -> [ AutoSomething Row14 AutoCountdown15 ]\nlate [ AutoSomething Row15 no AutoCountdown ] -> [ AutoSomething Row15 AutoCountdown16 ]\nlate [ AutoSomething Row16 no AutoCountdown ] -> [ AutoSomething Row16 AutoCountdown17 ]\nlate [ AutoSomething Row17 no AutoCountdown ] -> [ AutoSomething Row17 AutoCountdown18 ]\nlate [ AutoSomething Row18 no AutoCountdown ] -> [ AutoSomething Row18 AutoCountdown19 ]\n\n\nlate [ KyeLastSeenHere ] -> []\nlate [ Kye ] -> [ Kye KyeLastSeenHere ]\n\n\n( Wall decoration )\n\n(Fill borders with walls if they don't exist )\n[ FirstTic ][ TopLeft ] -> [ FirstTic ][ TopLeft action Wall____ ]\nright [ FirstTic ][ action Wall | ] -> [ FirstTic ][ Wall | action Wall____ ]\ndown [ FirstTic ][ action Wall | ] -> [ FirstTic ][ Wall | action Wall____ ]\nleft [ FirstTic ][ action Wall | ] -> [ FirstTic ][ Wall | action Wall____ ]\nup [ FirstTic ][ action Wall | ] -> [ FirstTic ][ Wall | action Wall____ ]\n[ FirstTic ][ action Wall ] -> [ FirstTic ][ Wall ]\n\n\n\n(Fix misplaced corners)\ndown [FirstTic][ Wall1___ | Wall ] -> [FirstTic][ Wall____ | Wall ]\ndown [FirstTic][ Wall13__ | Wall ] -> [FirstTic][ Wall_3__ | Wall ]\ndown [FirstTic][ Wall1_7_ | Wall ] -> [FirstTic][ Wall__7_ | Wall ]\nleft [FirstTic][ Wall1___ | Wall ] -> [FirstTic][ Wall____ | Wall ]\nleft [FirstTic][ Wall13__ | Wall ] -> [FirstTic][ Wall_3__ | Wall ]\nleft [FirstTic][ Wall1_7_ | Wall ] -> [FirstTic][ Wall__7_ | Wall ]\n\ndown [FirstTic][ Wall13__ | Wall ] -> [FirstTic][ Wall1___ | Wall ]\ndown [FirstTic][ Wall_3__ | Wall ] -> [FirstTic][ Wall____ | Wall ]\ndown [FirstTic][ Wall_3_9 | Wall ] -> [FirstTic][ Wall___9 | Wall ]\nright [FirstTic][ Wall13__ | Wall ] -> [FirstTic][ Wall1___ | Wall ]\nright [FirstTic][ Wall_3__ | Wall ] -> [FirstTic][ Wall____ | Wall ]\nright [FirstTic][ Wall_3_9 | Wall ] -> [FirstTic][ Wall___9 | Wall ]\n\nup [FirstTic][ Wall1_7_ | Wall ] -> [FirstTic][ Wall1___ | Wall ]\nup [FirstTic][ Wall__7_ | Wall ] -> [FirstTic][ Wall____ | Wall ]\nup [FirstTic][ Wall__79 | Wall ] -> [FirstTic][ Wall___9 | Wall ]\nleft [FirstTic][ Wall1_7_ | Wall ] -> [FirstTic][ Wall1___ | Wall ]\nleft [FirstTic][ Wall__7_ | Wall ] -> [FirstTic][ Wall____ | Wall ]\nleft [FirstTic][ Wall__79 | Wall ] -> [FirstTic][ Wall___9 | Wall ]\n\nup [FirstTic][ Wall_3_9 | Wall ] -> [FirstTic][ Wall_3__ | Wall ]\nup [FirstTic][ Wall__79 | Wall ] -> [FirstTic][ Wall__7_ | Wall ]\nup [FirstTic][ Wall___9 | Wall ] -> [FirstTic][ Wall____ | Wall ]\nright [FirstTic][ Wall_3_9 | Wall ] -> [FirstTic][ Wall_3__ | Wall ]\nright [FirstTic][ Wall__79 | Wall ] -> [FirstTic][ Wall__7_ | Wall ]\nright [FirstTic][ Wall___9 | Wall ] -> [FirstTic][ Wall____ | Wall ]\n\n\n\n[ FirstTic ][ Wall ] -> [ FirstTic ][ action Wall ]\nup [ FirstTic ][ action Wall | no Wall ] -> [ FirstTic ][ Wall | ]\ndown [ FirstTic ][ action Wall | no Wall ] -> [ FirstTic ][ Wall | ]\nright [ FirstTic ][ action Wall | no Wall ] -> [ FirstTic ][ Wall | ]\nleft [ FirstTic ][ action Wall | no Wall ] -> [ FirstTic ][ Wall | ]\n[ FirstTic ][ action Wall ] -> [ FirstTic ][ stationary Wall WallEmpty ]\n\nhorizontal [ FirstTic ][ Background no Wall | Background ] -> [ FirstTic ][ Background | action Background ]\nvertical [ FirstTic ][ action Background | WallEmpty ] -> [ FirstTic ][ action Background | ]\n[ FirstTic ][ action Wall ] -> [ FirstTic ][ stationary Wall ]\n\n\n\n\n(Animations)\nlate [ RealTime DiamondTic ][ DiamondSprite ] -> [ RealTime DiamondTic] [ ]\nlate [ Diamond no DiamondSprite ] -> [ Diamond random DiamondSprite ]\nlate [ DiamondSprite no Diamond ] -> []\n\nlate [ RealTime BlackHoleSpriteTic ][ BlackHoleSprite ] -> [ RealTime BlackHoleSpriteTic][ ]\nlate [ BlackHole no BlackHoleSprite ] -> [ BlackHole random BlackHoleSprite ]\nlate [ BlackHoleSprite no BlackHole] -> []\n\n\n( :Blob )\nlate [ BlobSprite no Blob ] -> []\nlate [ Blob no BlobSprite ] -> [ Blob random BlobSprite ]\n\n\nlate [ RealTime BeastTic ][ Blob1 ] -> [ RealTime BeastTic ][ PlaceHolder1 ]\nlate [ RealTime BeastTic ][ Blob2 ] -> [ RealTime BeastTic ][ PlaceHolder2 ]\nlate [ RealTime BeastTic ][ Blob3 ] -> [ RealTime BeastTic ][ PlaceHolder3 ]\n\nlate [ PlaceHolder1 ] -> [ random Blob23 ]\nlate [ PlaceHolder2 ] -> [ random Blob13 ]\nlate [ PlaceHolder3 ] -> [ random Blob12 ]\n\n( :Gnasher )\nlate [ GnasherSprite no Gnasher ] -> []\nlate [ Gnasher no GnasherSprite ] -> [ Gnasher random GnasherSprite ]\n\nlate [ RealTime BeastTic ][ Gnasher1 ] -> [ RealTime BeastTic ][ PlaceHolder1 ]\nlate [ RealTime BeastTic ][ Gnasher2 ] -> [ RealTime BeastTic ][ PlaceHolder2 ]\nlate [ RealTime BeastTic ][ Gnasher3 ] -> [ RealTime BeastTic ][ PlaceHolder3 ]\n\nlate [ PlaceHolder1 ] -> [ Gnasher2 ]\nlate [ PlaceHolder2 ] -> [ random Gnasher13 ]\nlate [ PlaceHolder3 ] -> [ Gnasher2 ]\n\n\n( :Virus)\nlate [ VirusSprite no Virus ] -> []\nlate [ Virus no VirusSprite ] -> [ Virus random VirusSprite ]\n\nlate [ RealTime BeastTic ][ Virus1 ] -> [ RealTime BeastTic ][ PlaceHolder1]\nlate [ RealTime BeastTic ][ Virus2 ] -> [ RealTime BeastTic ][ PlaceHolder2]\nlate [ PlaceHolder1 ] -> [ Virus2 ]\nlate [ PlaceHolder2 ] -> [ Virus1 ]\n\n( :Spike)\nlate [ SpikeSprite no Spike ] -> []\nlate [ Spike no SpikeSprite ] -> [ Spike random SpikeSprite ]\n\n\nlate [ RealTime BeastTic ][ Spike1 ] -> [ RealTime BeastTic ][ PlaceHolder1]\nlate [ RealTime BeastTic ][ Spike2 ] -> [ RealTime BeastTic ][ PlaceHolder2]\nlate [ PlaceHolder1 ] -> [ Spike2 ]\nlate [ PlaceHolder2 ] -> [ Spike1 ]\n\n( :Twister)\nlate [ TwisterSprite no Twister ] -> []\nlate [ Twister no TwisterSprite ] -> [ Twister random TwisterSprite ]\n\nlate [ RealTime BeastTic ][ Twister1 ] -> [ RealTime BeastTic ][ PlaceHolder1]\nlate [ RealTime BeastTic ][ Twister2 ] -> [ RealTime BeastTic ][ PlaceHolder2]\nlate [ PlaceHolder1 ] -> [ Twister2 ]\nlate [ PlaceHolder2 ] -> [ Twister1 ]\n\n( : Doors)\n\n[FirstTic][ DoorLR no DoorSprite ] -> [FirstTic][ DoorLR DoorLR1 ]\n[FirstTic][ DoorRL no DoorSprite ] -> [FirstTic][ DoorRL DoorRL1 ]\n[FirstTic][ DoorUD no DoorSprite ] -> [FirstTic][ DoorUD DoorUD1 ]\n[FirstTic][ DoorDU no DoorSprite ] -> [FirstTic][ DoorDU DoorDU1 ]\n\n\n( :DoorLR)\nlate [ RealTime TicM5 TicN2 ][ DoorLR ] -> [ RealTime TicM5 TicN2 ][ DoorLR DoorLR1 ]\nlate [ RealTime TicM5 TicM2 ][ DoorLR ] -> [ RealTime TicM5 TicM2 ][ DoorLR DoorLR2 ]\n\n( :DoorRL)\nlate [ RealTime TicM5 TicN2 ][ DoorRL ] -> [ RealTime TicM5 TicN2 ][ DoorRL DoorRL1 ]\nlate [ RealTime TicM5 TicM2 ][ DoorRL ] -> [ RealTime TicM5 TicM2 ][ DoorRL DoorRL2 ]\n\n( :DoorUD)\nlate [ RealTime TicM5 TicN2 ][ DoorUD ] -> [ RealTime TicM5 TicN2 ][ DoorUD DoorUD1 ]\nlate [ RealTime TicM5 TicM2 ][ DoorUD ] -> [ RealTime TicM5 TicM2 ][ DoorUD DoorUD2 ]\n\n( :DoorDU)\nlate [ RealTime TicM5 TicN2 ][ DoorDU ] -> [ RealTime TicM5 TicN2 ][ DoorDU DoorDU1 ]\nlate [ RealTime TicM5 TicM2 ][ DoorDU ] -> [ RealTime TicM5 TicM2 ][ DoorDU DoorDU2 ]\n\n(post conditions)\n( the idea of this rule is that this way there will always be a black hole whenever there is a busy black hole, this prevents the editor from removing the black hole when you save the level)\nlate [ BlackHoleBusy ] -> [ BlackHoleBusy BlackHole ]\n\nlate [AutoSliderU] -> [AutoSliderSprite AutoSliderSpriteU]\nlate [AutoSliderD] -> [AutoSliderSprite AutoSliderSpriteD]\nlate [AutoSliderR] -> [AutoSliderSprite AutoSliderSpriteR]\nlate [AutoSliderL] -> [AutoSliderSprite AutoSliderSpriteL]\n\nlate [AutoRockyU] -> [AutoRockySprite AutoRockySpriteU]\nlate [AutoRockyD] -> [AutoRockySprite AutoRockySpriteD]\nlate [AutoRockyR] -> [AutoRockySprite AutoRockySpriteR]\nlate [AutoRockyL] -> [AutoRockySprite AutoRockySpriteL]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n\n=======\nLEVELS\n=======\n\n\nsection FIRST\n\n(By Colin Garbut, default.kye)\n\n(It goes against the teneths of modern game design to unleash what are basically all of the game's objects [and definitely the \"core\" ones] in a single level and overwhelm the player like this. But Kye starts right next to the diamond, and the player can experiment if they want, and I have tons of memories experimenting with this level and fighting the monsters.\n\nI don't think I could ever make this game, which is supposed to be a compilation of all good things Kye, without starting it with this level. \n\nI keep flip flopping over whether it should be included as the first level or later, though. Let's include it as the first level for now... )\n\nMessage FIRST - Just get the diamond.\n\n555555555555555555555555555555\n5T...e.......K*..a....d.e...E5\n5....b.455556........a..b....5\n5....b.dvvvvd...........b....5\n5....b.dvvvvd..........ab....5\n5ebbbe.eeBBee.......c...ebbbe5\n5...............a............5\n5.8rre................a.ell8.5\n5.5>>e......s..S........e<<5.5\n5.5>>B..................B<<5.5\n5.5>>B...............b..B<<5.5\n5.5>>e......S..s.....U..e<<5.5\n5.2rre...............b..ell2.5\n5.................bRbb.......5\n5ebbbe.eeeeee..7555559..ebbbe5\n5....b.u^^^^u..5.....5..b....5\n5....b.u^^^^u..5.....5..b....5\n5....b.455556..5.....5..b....5\n5C...e.........e..[..e..e...~5\n555555555555555555555555555555\n\n\n\nsection BLOCK\n\n(By vexorian, for this game !)\nMessage BLOCK - Don't block yourself\n\n( In attempting to introduce the objects slowly, it occurred to me that there really aren't any good levels that introduce the block. We tend to take it for granted. The way earth interacts with blocks, it's basically a trope, but maybe someone actually needs to learn it? )\n\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555*ee555555555555555\n555555555555eee555555555555555\n555555555555e*e555555555555555\n5555555555.........55555555555\n5555555555.5555555.55555555555\n5555555555e5...eb.e55555555555\n55555555*eb.K.beb.e55555555555\n5555555555e5...eeb.*5555555555\n5555555555.55e5555555555555555\n5555555555...........555555555\n555555555555555ee*555555555555\n555555555555555*ee555555555555\n555555555555555eee555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n\n\nsection SLIDUX\n\n(By vexorian, for this game !)\n\n(Something I've wanted for this version of Kye was to have more 'thinky' levels. Kye levels tend to end up becoming huge messes in which you have to figure out a bunch of sub-puzzles and the order to solve those sub-puzzles. I blame this on the rather large 30x20 board [the game NEEDS a large board because arrow puzzles really do take this much room, but it's hard for level designers to avoid using ALL of the space ALL of the time.\n\nThis is a rather easy level but it also introduces the whole concept of Arrow blocks in a nice way.\n\n)\n\nMessage SLIDUX - Intro to Sliders.\n\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n5e*5555555555555555eee55555555\n5ee5.55555555555555e*e55555555\n5rrrb...........5.brrrd.555555\n5555..........5...5555d5555555\n55555555555.555....555d5555555\n55555.......555..K...e*5555555\n55555...5.5.555......5.5555555\n55555555.e..5e5....5.5555eee55\n55555555.ulle*55...5.eeeee*e55\n555555555555.e555.5555uu5eee55\n55555555555555555.u*e555555555\n55555555555555555.55.555555555\n55555555555555555...el55555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n\n\nsection ARROWSII\nMessage ARROWSII - It's a matter of space\n\n(This is the harder version [star challenge] of Xye's seventh tutorial, so yeah, made by vexorian )\n\n(I was looking for an introductiong to rockies. There's one in Phipps' tutorial set, but I think it's a bit boring. Other Rocky-based levels are way too overwhelming At the end porting the one from Xye seemed like the best I could do.)\n\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n55555555ve*ev555553<.555555555\n55555555v*e*v55553<<.555555555\n55555555ve*ev5553<<<.555555555\n55555555vvvvv553<<<8*e55555555\n55555555vvvvv53<<<75ee55555555\n5555555556v453ee45555555555555\n55555555..b......5vv5..5555555\n55555555....459...vv...5555555\n55555555......19..5e.K.5555555\n555555.........19.55...5555555\n555555eeeeeeeeee55555555555555\n555555eeeeeeeeee55555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n\n\n\n\nsection VAULTS\nMessage VAULTS - Magnets, how do they work?\n\n(by Colin Phipps , Beginner.kye)\n\n( I honestly really liked this level the first time i saw it, it's a rather cool way to introduce magnets. Some of my Xye levels basically copied the idea :/)\n\n555555555555555555555555555555\n5.........5*.....*5..........5\n5.........5..vvv..5..........5\n5.........5.*8b8*.5..........5\n5.........1553b1553..........5\n5............................5\n5............................5\n5............................5\n5...........79b79............5\n5........K..53b15............5\n5......s....5^^^5............5\n5...........5^^^5............5\n5.....756b455***556b459......5\n5.....5*****5***5*****5......5\n5.....15555555555555553......5\n5............................5\n5............................5\n5............................5\n5............................5\n555555555555555555555555555555\n\n\nsection DONTSLIDE\nmessage DONTSLIDE - dont let victory slide.\n\n(One of my favorite levels from Xye, which I eventually ported for vexkye.kye and I am now including here. Very small and simple. But serves as a prequel for DONTSLIDE again, which I like very much... )\n\n555555555555555555555555555555\n5............................5\n5............................5\n5............................5\n5...........bbbbb............5\n555559.................7555555\n5555559...............75555555\n55555559......K......755555555\n555555559...........7555555555\n5555555559.........75555555555\n55555555559.......755555555555\n555555555559.....7555555555555\n5555555555559.s.75555555555555\n55555555555559v755555555555555\n55555555555555v555555555555555\n55555555555555v555555555555555\n55555555555555v555555555555555\n55555555555553v155555555555555\n555555555555*e*e*5555555555555\n555555555555555555555555555555\n\n\n\nsection SECOND\nMessage SECOND - Not the second level anymore\n\n(By Colin Garbutt, Default.kye)\n\n(I honestly think the first three levels in shareware Kye were really good introductions for the game. But they are rather hard... Hopefully by now the player is more comfortable with these objects. They have access to an undo button anyway...)\n\n555555555555555555555555555555\n5*>>>>e...e.........e.......K5\n5>>>>>e...5.........5........5\n5555559...59.......75........5\n5.....5...559.....7555.79....5\n5.....5...5559...75555..5....5\n5.....1...55556e455555..5....5\n5*.....1..5553^^^15555..5....5\n5e5559..1.553^^^^^1555..5....5\n5*vvv.9..153^^^^^^^155..5....5\n5vvvvv59..1..........5..5....5\n5vvvv7559..1........*5s.5....5\n5vvv755559..1555555555555....5\n5vv45555559...3<<<<<<..*5....5\n5eee15555559.b<<<<<<<...5....5\n5....15eee559e9<<<<<<..*5...75\n5.....e^^e.....5555555555vv755\n5.....e^^e..............5v45e5\n5.....e*^e..............eeee*5\n555555555555555555555555555555\n\n\nsection SLIDE\n\nMessage SLIDE - Why are blocks round now?\n\n(By vexorian, vexkye.kye )\n\n( This is basically a xye level I made trying to make it as 'classic' as possible, avoiding Xye stuff and focusing on blocks and arrows. )\n\n555555555555555555555555555555\n55555555553*e*e155555555555555\n5555555555cvvvv<<<<55555555555\n5555555555cvvvv<<<<55555555555\n5555555555cvvvv<<<<55555555555\n5555555555cvvvv755555555555555\n55555555559vvv7555555555555555\n555555555556e45555555555555555\n5555555555..........5555555555\n5555555vv5.b.B...B..5555555555\n555555vvv5.......B..5555555555\n55555v**v5.......B..5555555555\n5558v*e*v5.......B..5555555555\n5555v***v5.......B..5555555555\n5555vvvvv5....K.....5555555555\n555559e4559.........5555555555\n555555>>>>2....79...155553eee5\n555555>>>>e....55...ellelle*e5\n555555>>>>8....55...755559eee5\n555555555555555555555555555555\n\nsection BOUNCERX\n\n(made be vexorian fro this game)\nmessage BOUNCERX - Enter the Bouncer\n\n( I am really happy with this level. It's my latest attempt to make a Bouncer tutorial, but also it requires an Eureka moment)\n\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555......db.555555\n555555555555555..5555du5555555\n5555.......5555..5555du5555555\n5555.R..b...e*5..5555du5555555\n5555.......5555..5555du5555555\n5555555555.....K.5555du5555555\n55555555555.55...5555du5555555\n55555555555.555555.deeue*55555\n55555555555........d5eu*e55555\n55555555555555b555.d5ee5555555\n55555555555555...U.d5555555555\n55555555555555.ellll5555555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n\nsection THETRAP\n\nmessage THETRAP - Monsters byte\n\n( Made by vexorian for this game )\n\n( I really like Kye's monsters. They have some charm to them. But they are a very problematic part of Kye's level design. And a problem with Phipps' and Garbutt's later levels is that there tend to always be sections with monsters in them. \n\nStill I firmly believe that the monsters are a foundational element for Kye's best puzzles. I am aiming towards only using them in a puzzley way. So I really avoided to include any of those levels in which the monsters are used in an \"arcade\" way. This level, for example technically introduces the monsters, but it is more of a turn-block tutorial... )\n\n555555555555555555555555555555\n5555555...55555555555555555555\n5555555ETC55s55......555555555\n555cdlllll55[55..a.c.555555555\n5555d55..............555555555\n5555e.......555..5555555555555\n5555*555.55.555..5555555555555\n5555e555.55.5......c55555..555\n5555e555.55.cl.l.l..555d5*e555\n5555..55.55.5..........e5e*555\n55555.55.55.........555.5*e555\n55555.5..5555.......555....555\n55555.55l5555.......c555555555\n55555.55e5555c..55555555555555\n55555....55555re.5555555555555\n5555555555555555.5555555555555\n555555555555.....5555555555555\n555555555555..K..5555555555555\n555555555555.....5555555555555\n555555555555555555555555555555\n\n\nsection GOALIE\n\nmessage GOALIE - Blocks with an expiration date\n\n( be vexorian, for this game )\n( I've seen this idea some multiple times. There's even a variation in Xye. I am reusing this idea but this time as a way to teach the mechanics of Timers. I probably mentioned it elsewhere, but I dislike timers. I do like this idea of joining forces with two arrows in order to block other arrows.\n\nA problem with this sort of level is that the Kye engine and (Kye.ps due to imitating it) allows to hit arrows mid-air, so it is quite possible for a Player to solve this kind of level in a non-thinky way and ever realize about the cool idea. I am trying to deal with this with the placement of the [8] timers, they aren't placed the same way as the rest, so if you try to hit one of them mid-air you will miss the other one. The only problem with this approach is that now the solution needs you to have really good dexterity in this one place.)\n\n\n\n\n\n\n\n\n\n555555555555555555555555555555\n555555555v55555555555v55555555\n55555v555{555v555v555x555v5555\n55555}555v555|555y555v555w5555\n55555v555{555v555v555z555v5555\n55555}555{555|H5Hy555z555x5555\n555............v............55\n555............*............55\n555.........................55\n555.........................55\n555.........................55\n555.......>*...K...*<.......55\n555.........................55\n555.........................55\n555.........................55\n555............*............55\n555.7.9.7.9.7.9^7.9.7.9.7.9.55\n555.5w5.5w5.5w5.5w5.5w5.5w5.55\n555H5*5H5*5H5*5H5*5H5*5H5*5H55\n555555555555555555555555555555\n\n\nsection LOCKPICKING\n\n(by me, for this game)\n\nmessage LOCKPICKING - Get through it.\n\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n5555555555eeeee155555555555555\n5555555555evvveee1555555555555\n5555555555eveve8ee155555555555\n5555555555e^^^e59e..5555555555\n5555555555^^^^^53.K.5555555555\n5555555555^^^^^5....5555555555\n555555555555^555....5555555555\n555555555555^lllll<75555555555\n555555555555555559^55555555555\n555555555555555553^15555555555\n55555555555555555^^^5555555555\n55555555555555555^^^5555555555\n55555555555555555^^^5555555555\n555555555555555555*55555555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n\n\n\n\n\n\n\n\n\nsection TIME\nmessage TIME - It's not a matter of time\n(made be vexorian vexkye.kye )\n\n( This one might be misplaced, but I think that the last level had turners but also monsters, the player probably needs to keep the turners in mind... Also technically introduces the timer blocks and the \"auto\" blocks. I hate both of the timer and auto blocks.\n\nIn my opinion. Kye Level design is a lot more cooler when you use arrows or bouncers to generate timing situations. The timer blocks are a bit redundant. Only useful if you want to save space. But most of the time, your level shouldn't be using that much space to begin with. \n\nAuto blocks have way too special rules regarding when to shoot. And really the only real use auto blocks have is to fill up the screen with arrows. It is really good for some puzzles. But my proble is that they are so hard to control . I think a block that just produces arrows constantly in one-direction is a much nicer way to do this. But this is a Kye port, not a Kye sequel (stay tuned :D))\n\n\n555555555555555555555555555555\n53.155553.2AA2.155555555553.15\n5c..........................a5\n59.455559.8ca8.4556a4555556.45\n55......2.1553.......153....a5\n53................5...c.....75\n5c..........................55\n59..........7555556.8.......55\n55........8.5*w..Ru.5.......55\n55.......K5.5**756u.2.......55\n55.759..453.1553..u....49...55\n55.5a2.................c5...55\n55.5...rrr8............43...55\n55.5.....U5.76}}............55\n55.2.c79..5.5.e}............55\n55.a..55..5.5ell............55\n55.5..15.43.5ell76..........55\n55....c5....5**75a..........55\n55c755555555555555555555559a55\n555555555555555555555555555555\n\nsection FOUR\n\nmessage FOUR - There are four directions, in this order: down , right, left, up.\n\n( by vexorian, vexkye.kye actually based off a puzzle I made for Xye, but the direction priority is a bit arbitrary, in Xye, the top arrow is actually red and the others are yellow, so it becoems a level about how red is faster. In Kye, it becomes a tutorial about how the author decided that down comes before right, left and up ... )\n\n(In a way, it makes sense? If it was gravity, down would be easier than the other directios? )\n\n555555555555555555555555555555\n555555555555555555555555555555\n555555555573vvvvv1555555555555\n55555555555>*****<555555555555\n555555555559>***<7555555555555\n55555555555555*555555555555555\n5555555555...5.5...55555555555\n5555555955.........55755555555\n55555>*195.........573*<555555\n55555>e*155...v...553*e<555555\n55555>*e**...>K<...**e*<555555\n55555>e*755...^...559*e<555555\n55555>*735.........519*<555555\n5555555355.........55155555555\n5555555555...5.5...55555555555\n55555555555555.555555555555555\n55555555555555*555555555555555\n55555555555573e195555555555555\n5555555555555*e*55555555555555\n555555555555555555555555555555\n\n\n\n\n\n\n\n\n\nsection SLIDER\n\nmessage SLIDER - Machines!\n\n(By Colin Garbutt, default.kye )\n\n( I love this level. It's probably the reason I care so much about Kye)\n\n555555555555555555555555555555\n5*vvvvvv5..re..5...e.K.5.b..*5\n59vvvvv73..re..56..5...5b..bb5\n559vvv73...re..5...5.755..b..5\n5.59v73....re..5e455.5.5.bb..5\n5..2v2.....re..5^^^5.5.5b....5\n5..Rve..8..re..56..5.5.555.555\n555559e1559re..5...5.5..e....5\n5.5.L.....5re..5e455.5.5.5...5\n5.555559e15559.5^^^5.5.5.55555\n5..5..eeeee..5.56..5.5.5.uL..5\n5..5....8....5.5...5.5.15u...5\n5..5....5....5.5e455.5..5u...5\n5..5....5....5.5...5.5e<5u...5\n5..5...759...5.56ee5.5e<5u...5\n5..16e45.56e43.5^^^5.5e<5u...5\n5..............5^^^5.5e<5u...5\n55ee555555555555^^^5.5..5u...5\n5*eeeeeeeeeeeeee^^^5.e..5u..*5\n555555555555555555555555555555\n\n\nsection THREESTEPSFLOW\n\nmessage THREESTEPSFLOW - Three steps but don't disturb it.\n\n( I always liked the shareware level COUNTERS, but it has many issues. Lots of people solve the level thinking it's a race against time. When in fact, it's about not disturbing the arrows. This level actually uses the COUNTERS layout but inside it has so many tasks that it makes it impossible to do it by just being faster than the arrows. )\n\n555555555555555555555555555555\n555555555555555555c55555555555\n5555c..............15555555555\n5..55.55..55..5e5a........c..5\n5K..5..55555555e5555555ll....5\n555.5..55555555eeeeeee5..5.555\n55.e5.555555555555555e5..5.TS5\n555u5...........a5555e5D.5.555\n5.c....555..555.ee5eee5555.555\n5......55555555d5e5e555555.TS5\n55555..555..555.5e5eee5d55.555\n5c..............5e555dee55.555\n55.755555555555a5e555e5e55.TS5\n5..c55ellllllllllleeee5e55.555\n55.555e5555555555555555eee...5\n5..555e5s555s555s555s55555...5\n55.1c5e5T555T555T555T5L....v.5\n5......................rr.c5.5\n55c5555555555555555555555555*5\n555555555555555555555555555555\n\n\nsection SOKYEBAN\nmessage SOKYEBAN - A bit of a Proof of concept.\n\n(Another thing you don't sere often in Kye level sets is actually-good block puzzles. Perhaps because the other elements have so much stuff that's way flashier, or maybe it's the lack of an undo button (fixed now). But there are many ways to include good sokoban puzzles in game. And this one is interesting, because it shows a very easy way to port any sokoban level in which all of the block targets in the solution lie in a line.)\n\n\n\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555*.1555555555c55555\n55555K.....5.*...........15555\n555559.b5b.5*.7555555556.c5555\n555555b..b.5553..........c5555\n555555.b.b4555>b>b>b>b>b.c5555\n555553.5.b.5559s8s8s8s8s.75555\n5555..b..b.1553.2.2.2.2..55555\n5555...b..b..............55555\n5555555555559.8.8.8.8.8..55555\n5555555555553s2s2s2s2s2s.15555\n555555555555>b>b>b>b>b>b.a5555\n5555555555559............a5555\n555555555555555555555556.a5555\n555555555555.*...........75555\n555555555555*.7555555555a55555\n555555555555555555555555555555\n555555555555555555555555555555\n\n\nsection ZOO\n\n( From Colin Garbutt, default.kye )\nmessage ZOO - Handle with care\n\n( I realized that as far as monster levels go, this is the best one from shareware kye )\n\n(I Added a diamond at a strategic position )\n\n555555555555555555555555555555\n5.e.........55T..b....b.5....5\n5.49eee*eeeeee.......b..e.K..5\n5..19[.....el5......b...5....5\n5...15555555555555555555555555\n5....5.ree..dd....s...ee..5E.5\n5ebe75.ruue.ddll..e...D5..5..5\n5eb.55..uu..ee....e..5C5.55v55\n5eb.555e5555555555555555.5.e.5\n5eb.55.....5*ee.Rb..R555.5.7.5\n5eb.15.bbbb5***e.5.....5.5.5.5\n5....5b....5555555.....5.5.5.5\n5.C..5.b....~e.........5.5.5.5\n5....5bbbbbbb5556...4555.5.5.5\n5555e5.......5S.......s5..e5.5\n5....5555555555555555555..e5.5\n5..eeee.........vvv...5...e5.5\n559<<*c53.2<<<<<5\n55555555559e5.4555553.e<<<<*<5\n555555a...2.2..eeee....8<<*<<5\n555555.........456c8...1555555\n555555.5..8.8.8c...5.....5e*e5\n555555...73.5.5....59....5*ee5\n555555.753c.2.2.db.559.45556e5\n555555.5.e......d..153Hrd....5\n555553.19^49.a8.d...5rbrbrb..5\n55555a..2^e5.75.d..c5.s.s.s8.5\n55555a...8*5.559c8..16.5.5.2.5\n55555a...153.15555...........5\n55555a.......B<<<5.75555555555\n5555555559..e<<<*5.55555555555\n555555555555555555555555555555\n\n\nsection PUZZLER\nmessage PUZZLER - Dealing with beasts between your puzzles\n(By Colin Phipps, python kye's default set)\n555555555555555555555555555555\n5..........5...*...5*....*5..5\n5..........5.......5......5..5\n5..K.......5vvvvvvv5.....b5..5\n5...s......59vvvvv75.T..b.5..5\n5..........559vvv755...b..5..5\n5555559.8.75556e4555bbb...5..5\n5*rrra5.5.5........5......5..5\n5...d55.5.5........5......5..5\n5...d55.5.5...~...b5......5..5\n5...d15.5.5......b.5......5..5\n5.L.d.5.5.5.....b..5vvvvvv5..5\n55556.2.5B5....b...59vvvvv5..5\n5....e..5v5bbbbb...559vvv75..5\n556.459.5v5....b...5556e453..5\n5b.b..5.5v5....b...5.........5\n5.b..b5.5v5....b...2.....c..c5\n5.b.b.5.5v2....b...e....755555\n5*....5.5ve....b.[.75555555555\n555555555555555555555555555555\n\n\nsection HUNTERX\n\nmessage HUNTERX - Featuring: Doors.\n\n(This was an old level 'HUNTER' also a modified version of a Xye level. I tweaked it further so that it is a bit harder. I also hope it is a proper way to introduce the concept of the doors.)\n\n555555555555555555555555555555\n55555...5...5...5.ee*e55555555\n55555.8.5.8.5.8.5e*.e.55555555\n55555.5.5.5.5.5.5..*..55555555\n55553.5.2.5.2.5.55555i55555555\n555.f.5...5...5.......55555555\n555.75555555555559.S5555555555\n555.13......g.5.K5.[5555555555\n555.........5.55h5.s5555555555\n555..8bbbbb.5..re5.45555555555\n555..5..CEb.15..55.......55555\n555..5*...b..55h53.4559..55555\n555..5ee..b...5.e*lll~5..55555\n555i55*e..b.....55~~~~5..55555\n555.5555556.....5555553..55555\n555....5.................55555\n555.5555hh5555555555555i555555\n555.5555hh5.5.5.5.5.5.5i555555\n555.......e..........[..555555\n555555555555555555555555555555\n\n\n\n\n\nsection DONTSLIDEAGAIN\nmessage DONTSLIDEAGAIN - Don't let victory slide (again)\n\n\n( After those huge levels , I hope this one is seeen as a good change of pace)\n555555555555555555555555555555\n555555555555......555555555555\n555555555555......555555555555\n555555555555..K...555555555555\n555555555555......555555555555\n5555555555555..b..555555555555\n555555555555......555555555555\n555555555555....s.555555555555\n5555555555559.....555555555555\n5555555555555.....555555555555\n55555555555559....555555555555\n55555555555555vvv7555555555555\n555555555555559v75555555555555\n555555555555555v55555555555555\n555555555555555v55555555555555\n555555555555555v55555555555555\n555555555555555v55555555555555\n555555555555555v55555555555555\n555555555555555*55555555555555\n555555555555555555555555555555\n\n\nsection TRICK\n( From Colin Phipps - quests.kye )\nmessage TRICK - Use your tools\n\n(A really nice Phipps level in my opinion, it's easy but requires you to exploit the objects, works great as a 'graduation' level )\n\n555555555555555555555555555555\n5K........e<<<<<5*....5......5\n5555559...8<<<<73.....5......5\n5*....5...5<<<<5......5..rdd.5\n5..>>>5...5eeee2......2..r*l.5\n5..>>>5...5....e.........uul.5\n5.>>>>2...5....7556e4555555555\n5..>>>e...556e43...b.........5\n55555556..5.^e^.elll....S....5\n5.....e...5..^.8<<.....7555555\n5*....8...5....5.7559..5.....5\n5....73...15555553..1555.....5\n555553..........2.......5...e5\n5.c....b...............1556.45\n5...8..D....7559..b........a.5\n55555..b...73<<5556b8....c...5\n5...2bbb.a.2<<.5....5556e45555\n5.C.b......eeeS5.~..5e^^u^e..5\n5*..8.bb...8...5.*..5.^^^^s.*5\n555555555555555555555555555555\n\n\n\nsection CASCADE\n\nmessage CASCADE - Catch them.\n\n( From Colin Phipps - quests.kye )\n\n( Gotta love the rare Phipps levels that don't have any monsters in them )\n\n\n555555555555555555555555555555\n5s>>>>>>>B2>>>ac<<<<<<<<<<<..5\n5Rb>>>>8>>>>>>ac<<<<<<<<<<<*S5\n555556e16e756e46e4555559.75555\n5.......re5............153...5\n5.......re5...K...........B..5\n5..45555553...............B..5\n5..B......................B..5\n5..b......................b..5\n5..b......................b..5\n5..b......................b..5\n5..b..B...................b..5\n5..B.........................5\n5............................5\n56..76..76..76..76..76..76..75\n5..B5..B5..B5..B5..B5..B5..B55\n5.8S5.8S5.8S5.8S5.8S5.8S5.8S55\n5b..5b..5b..5b..5b..5b..5b..55\n5*755*755*755*755*755*755*7555\n555555555555555555555555555555\n\n\nsection OBSCURE\nmessage OBSCURE - Can you move them?\n\n( Back in classic Kye days, I was OBSSESED with this glitch after I found it. I kept making really dumb levels in which you had to take a bouncer with you avoiding obstacles just so that the bouncer could push a black hole. Think about it, it's a very cool mechanic because it's one way to use Bouncers as a key. This is a level from vexkye.kye which I made with the intention of introducing the glitch in a normal way. )\n\n555555555555555555555555555555\n555555555555555555*5*5*5555555\n555555555555555555e5e5e5555555\n555555d153d5555555d5d5d5555555\n555555U...U5555555d5d5d5555555\n555555e...b5555555d5d5d5555555\n555555e.K.e5555553d2d2d1555555\n555555H...H13.s.2.e.e.e.555555\n555555H...H...R..H......555555\n555555H759H79........8.7555555\n5555555555553.b..5.5.5.5555555\n55555.b.b.b.b....[.[.5.5555555\n55555.........b..s.s.5.5555555\n555555555559..7556.5.2.5555555\n555555555555555e.e.e.ee5555555\n555555555555555*e45556^1555555\n5555555555555559ee553^^^555555\n5555555555555553*e53^^^^555555\n555555555555555ee*5^^^^^555555\n555555555555555555555555555555\n\n\n\nsection FILTER\nmessage FILTER - filter what?\n(Such a nice idea from Colin Phipps)\n\n555555555555555555555555555555\n5*.....1SE.ES55555555555555c55\n5c........c.................55\n53*.*.*.8.e.75b555555555559.55\n5*.*.*..5.e.5>>>>>>>ee.*<<5.55\n5.*.*.*.5.e.5>>>>>>>e..e<<5.55\n5*.*.*..5.e.5>>>>>>>e759<<5.55\n5.*.*.*U5.e.5eeeeeeeeH.1553.55\n5R..b..L5.e.16e4555553......c5\n5559e755a.e>>rr>>rr>>rr7555555\n55a3.153..ec5555555559U.....a5\n55.......c..5****l...155559.55\n55.7555559h53*^^^^e.....g.5.55\n55.5*.b..5*5**^^^^^ee...8K5.55\n55.5.Cb..153*^^^^^^^^e..5u5.55\n55.5..b..e..**********<.5C5.55\n55.15555555555555555556e153.55\n5a.........................e55\n555555555555555555555555555a55\n555555555555555555555555555555\n\n\n\nsection BANK VAULT\n\nmessage BANK VAULT - Defuse it\n\n( Colin Phipps, problem.kye)\n\n(I like this one, like a better version of DIAMOND)\n\n555555555555555555555555555555\n555d5*555.f.aaacacacacFcFa5**5\n555*2.153.c..............a5dl5\n553....*l.5c.*********...a5d.5\n5*.....46.5a.*<^^^^^^^...a5d*5\n556......*5a.*<.^^^b.....55ci5\n5r*....8..5a.*<....b.....553.5\n5556.8*5..5a.*<...bU.....53..5\n5*...5u5..5a.*<....*.B...2*.c5\n555555559i5c......H.........a5\n5v5v5v5v5v5a.*<......accc>*.a5\n5*5*5*5*5*5a.*<.......caa>*.c5\n5.2.2.2.2.5c.............>*.c5\n5K........5a.*<..........>*.a5\n5.........5a.*<..........>*.c5\n5.........5a.vvvvvvvvvvvv>*.c5\n5.8.8.8.8.5a.************>*.c5\n5*5*5*5*5*5a................c5\n5^5^5^5^5^5aaaacacacaaa..caa55\n555555555555555555555555555555\n\n\n\nsection SLIDERS\nmessage SLIDERS - Remember they're square\n\n( Colin Phipps. problem.kye)\n\n(These two levels make a nice pair)\n\n555555555555555555555555555555\n5*d5rrrrda5*rrda55a553......a5\n59d5rrrrda5rrrda55rrrrrr759.H5\n55d5rrrrda5559d555u79*8U5*5.55\n55d15556*13..5d55Eu555553e5.55\n5arrre.......2d55su55555re5.55\n55c56........elc55u55555re5.55\n5553.........7a555u5..15re5.55\n5....7559h46i55553u2c..2..2.55\n5i76h5es5.......f.ue.b.e..e.55\n5*5dd5e*155559..79u455556e5.55\n5d5dd5r.redel5..13.e......e.55\n5*2**5edelele5..g..7559eee8.55\n5.g..5releueu5..79.15c5uuu5.55\n5.f..56.455553..5a....5rul5.55\n5i8..5..........55.46.5.u*5.55\n5.5**5..........H5....15553.55\n5K5uu555556...455555a.......55\n5u5uu5*rr*.....*ll*55.....7a55\n555555555555555555555555555555\n\nsection ROUNDERS\nmessage ROUNDERS - They are round\n\n( Colin Phipps , problem.kye . I had to make a slight modification so that the level works in this version of kye. Changed the position of the black hole in the middle. My initial goal was to fix the game instead of modifying the level. But now I am pretty much convinced it is impossible to make the original version of this level work correctly in kye.ps without adding some really heavy rules that would make the performance much worse)\n\n555555555555555555555555555555\n5*5H*vvvvv5***5.2vvvvv13ee.e*5\n5>1H*vvvvv5vvv5.eeeeee<.e^>159vvv73vvv2.8^^^^^.e<^>>159e45vvvvvb15555559e>>ve5\n5>>>>15..56vvv9.U.....55e^>>>>2.e2vvvv5.7559L455e^>>>>e..e<<<>e5\n5>>>>>8.e8aaaa53...5..H59evve5\n5>>>>75..555553.BBB5...L5e<>e5\n5>>>755..5>*.....*<5...L5ee*e5\n5555555..556....4555.***556i45\n5a>>>a5..5>*.....*<5.*^^2<<*D5\n5^>8vv5..55556...455.^^^e<...5\n5^456v5..155>*...*<5U........5\n5^^2.*2....15556e45555555555<5\n5H^..ee..8...................5\n55556.8ac5...........455ESE6.5\n5>K.f.5555..................U5\n555555555555555555555555555555\n\nsection ROCKYV\nmessage ROCKYV - This was the last level in shareware kye.\n\n( From Colin Garbutt, default.kye )\n\n(Another one of those shareware kye levels that gets burn in your mind, since it was the last level included in the shareware, I assumed it was as hard as it gets. I really had to included for this reason, even though in reality this is only the beginning )\n\n755555555555555555555555555559\n5c.........w<<<<<<<<<<<e>e^a5.5\n5vvv>}.ee..}.5veL5^5Cb>ev^a5.5\n5ccc59..^s^^.5*e.5*5..c>e^a5.5\n555555555555559.755555559^43.5\n5C..5.H..B*B.13.1..13.*55^...5\n5...5.f.B.B..f..f..>*.*55...c5\n559.5.HB...B.79.7>*..8*55c.755\n555.5.755555553.1555555556.555\n555.5.53.*eec5.e*5553c553..3<5\n553.5.5..*ee.5Re^5c...53..3<<5\n55..5e2.4556.5^*.5..8.5c.2<<<5\n53.43...c15a.55555..5.5c*<<<<5\n5a....v..c5a.15553.73.2c.8<<<5\n59....e..c5a.......5a....59<<5\n55559cc79c5a.....8a55559a559<5\n155555555555555555555555555553\n\n\n\n\n\nsection POWER STATION\nmessage POWER STATION - Quantum Entanglement\n(By Colin Phipps, Problem.kye)\n\n(The concept in this one is so innovative)\n\n555555555555555555555555555555\n5555c553...53<<<5e.C.*.g.....5\n5c...c3....2<<<<2.BBB..79...*5\n5F..UH.....e<<<155..5****e.a2E...5....2.15\n5>>>13..5****e.......2.......5\n5>>>>d..555555.......*.eee8.75\n5>>>>e..5....5.......ellll5.55\n5>>>e.8.2....5a...........5.55\n5555553......55555555555555.55\n5.......8..753............2.15\n5..455555553.................5\n5.............76......45555555\n5.............5.......eeeee*S5\n5.........75553.......8<<<<>rrrra755555555559u755\n5d5..U555556*43......2<<<5u555\n5d5...5*b.............e8.5u555\n5d5...19.49..........755.2u155\n5d19...5.s>e..K.....7555.su.55\n5>>2...1556............1556.15\n5>>>b.....................b.*5\n5>>8.75555555555555555555556.5\n555553.........celllll......e5\n5>v<..BS*................156u5\n5rvu......................2*u5\n5rv.......................b*u5\n5>d.......................8*u5\n5ed......................456u5\n5errrrrrrrrrrrrrrrrrrrrrrrrru5\n555555555555555555555555555555\n\n\n\nsection DIAMOND\n\n555555555555555555555555555555\n5>>>>155.....e.155....2...8.*5\n5.>>>>15....8...15.......45..5\n5..>>>>2...75....2....9...2..5\n5K..eee...755.....e.755.....e5\n5555555555555555555555555555e5\n5..5*5........e..............5\n5..5d5........5......v.......5\n5..5e5....55555.....>vv......5\n5..5.......el*5....>>vvv.....5\n5..........5555...>>>vvvv....5\n5......79.....5..>>>>vvvvv...5\n5......13.....5.>>>>>*<<<<<..5\n5.............5..^^^^^<<<<...5\n5555..........5...^^^^<<<....5\n5*re.......5..5....^^^<<.....5\n55555....5e5..5.....^^<......5\n5........5u5..5......^.......5\n5........5*5..5..............5\n555555555555555555555555555555\n\n\n\nsection BLOCKS\n\n555555555555555555555555555555\n5>>>B.....5K.....vvv.........5\n5.>>B.....5.....vvvvv...s..S.5\n5..e.....*5....vvvvvvv.......5\n5e555555555....bvv*vvb.......5\n5.vvv.....5....bvvvvvb.......5\n5vvvvv....5....bbbbbbb.......5\n5vvvvvv...5..................5\n5BBBBBBBBB5.........R........5\n5.........5555559...7555555555\n5.55559...5......9.7.........5\n5.....15555......5e..8.......5\n55559..........b.15553..355555\n5...159........b.......3<<<<.5\n5......9.......b......3<<<<<.5\n5.......9............3<<<<<<.5\n5........9..........e<<<<<<<.5\n5....................9<<<<<<.5\n5........3............9<<<<<*5\n555555555555555555555555555555\n\nsection CIRCUS\n\n555555555555555555555555555555\n5.5*555eed......5....5.......5\n5.5v5Seeud......5vvvv5..rdd..5\n5v5v5bbbue......5vvvv5..r*l..5\n5v2e5............eeeeb..uul..5\n5ee.5............7555555555555\n5...155555555559.........5...5\n5......^......L5....K....5...5\n5559....75559.v1559......b...5\n5.55555555555ee...59.....b.C.5\n5...........59e...e5D....b...5\n5............556.453.....5...5\n5....45e9................5..*5\n5..8.e>^155...55555..755555555\n5..5..e<.*5...5de*5....evevev5\n5..15555555...ee555..5>eeeee<5\n5.........5..........5e^.^e^e5\n55bb5555555s555555eee5555555.5\n5*.........llll............>*5\n555555555555555555555555555555\n\nsection GALLERY\n\n555555555555555555555555555555\n5.......a..c..a..c..a..c..a..5\n5c..........................a5\n5*.8......................8.*5\n55.5......................5.55\n55~5......................5C55\n5555......................5555\n5K..a........................5\n5...c........................5\n5...a........................5\n5...c........................5\n5...a........................5\n5..re........................5\n5..el........................5\n5..re........................5\n5..el........................5\n5..re........................5\n5..el........................5\n5..re........................5\n555555555555555555555555555555\n\nsection TRAPPER\n\n555555555555555555555555555555\n5K................b.........*5\n5.b..bb.Rbb.......B..........5\n5.b...............b....T.....5\n5.b...............B..........5\n5.b...............b....E....*5\n5.b...............B..........5\n5.b...............b....C.....5\n5.c...............B..........5\n5.a...............b....[....*5\n5.c...............B..........5\n5.a...............b..........5\n5.....b...ed......B..........5\n5.....b...ue......b..........5\n5.B...............B.........*5\n5.B...U...el......b..........5\n5.B...b...re......B..........5\n5.B...b...........b..........5\n5.................B.........*5\n555555555555555555555555555555\n\nsection PINTPOT\n\n555555555555555555555555555555\n5K.............5.............5\n5.755555555559.5..bbbbbbbb...5\n5.5FFFFFFFFFF5.5..bC.........5\n5.*..........*.5..bC.........5\n5.*..........*.5..b..........5\n5.*..........*.5..b..........5\n5.*..........*.5..b****......5\n5.5..........5.5..bH.........5\n5.5..........5.5..b****......5\n5..9........7..5..b..........5\n5...9......7...5..b..........5\n5....9....7....5..b..........5\n5.....HHHH.....5..b..........5\n5..............5..bC.........5\n5ededededdeeddef..bC.........5\n5eedddddddedddd5..bC.........5\n5d.**d**d*d*dd*5..bbbbbbbb...5\n5**d.**.*.*.**.5.............5\n555555555555555555555555555555\n\nsection GETOUT\n\n555555555555555555555555555555\n5.......................B.EB.5\n5...e...................B....5\n5..6^4.a................B....5\n553^^^1.................B...*5\n53^^^^^15555555555559..4555555\n5^^^^^^^1...s..5>>>>5....eeT.5\n5^^^^*^^^5.....5>>>>2....e*..5\n555555555556...5>>>>e....ae..5\n5.2......ccc...5>>>79..8.79.75\n5c.............555553..5.55.55\n5..*a8.........5.......5.55.55\n5>>*a5.........5.......5.55.55\n5>**a5.K.....8.5.......5.55.55\n5>*453.......5.5.......5.55.55\n5>*a5........5.2.......5.55.55\n5>*a555556...5.........5.13.15\n5>*c.........5.8.......5....c5\n5ccc755555555555.......5cc..c5\n555555555555555555555555555555\n\nsection FALLIN\n\n555555555555555555555555555555\n5......f..5*e5>e..e.>e..e.>e*5\n5555h5.8..5ev5.e.>e..e.>e..e*5\n5..5.5.5..19e5.555555555555555\n5.C5.5.HT.*5.5..............K5\n5.55i5.15553.5...............5\n5.5..f.f.....5.......vvv.....5\n5i5..7h9.....f......vdddv....5\n5.5.75.5555i555.....d}}}d....5\n5...5.....5.5*5...>r*****l<..5\n59i5.5556.5.5.55.>r}*****}l<.5\n53.5.5....5.5..5.>r}*****}l<.5\n5..5.5.5555.16.5.>r}*****}l<.5\n59.5.5.5.......5..>r*****l<..5\n55.5...5*55555.5.............5\n55..55i55555.5.5....}}}}}....5\n55...........5.g....uuuuu.7555\n53i5555555h55.55....^^^^^.5ee5\n5.............g...........e*<5\n555555555555555555555555555555\n\nsection ADOORABLE\n\n555555555555555555555555555555\n5*5.........R*H*F*....1553..K5\n5.5...e...5553F**............5\n5.5555eeee5...*..............5\n5EBee.....5.......5.555s.55..5\n555555....5.......5..5.bl.5..5\n5S..r*<...5.......15.5....B..5\n555556.8..5........5.5....B..5\n5......5553........5d5...C5..5\n5..76..2.2.........Sd555553..5\n5*73.......8..BBB..5.5.......5\n553.e.~.e.45..B[B..5.5i8h8h8i5\n55...*s*...5..B*B..5.5h5h5h5i5\n55e.ESCS[.e5..B*B..a.5i5h5i5i5\n55...*s*...5..BBB..a.5i2h2h2i5\n559.e.T.e.73.......5.5.......5\n5.59.....73........5.5...v...5\n5..59.e.73.........5.5.v>*55************C*********55B5\n5.55********e*************55.5\n5.55****C**eCe************55.5\n5.55********e**********e**55.5\n5.55***********K******eCe*55.5\n5U55*******************e**55.5\n5.55*e********************55D5\n5>55eCe***e**********e****55.5\n5U55*e***eCe*******eeCe***55.5\n5.55******e*******eCee****55.5\n5.55***************e******55.5\n555555555555555555555555555555\n\n\n\n\nsection EXTERMINATE\n555555555555555555555555555555\n5*..}..eK5F2**2*****1555555c55\n555556.u45.c................55\n5[TTL....5.5.456.4555555559.55\n5TTTL....5.5..............a.55\n5TTTL....5.1c556.45555556.2.55\n5TTTL....5..................c5\n5TTTL....5c*5559.75555559.a..5\n5TTTL....55HHHH5H55555553.19.5\n5TTTL....2.....2...........5.5\n5[TTL....ww....L......L....5.5\n5TTTL....8.....8...........5.5\n5TTTL....5H5HHH5555555556.73.5\n5TTTL....55c..............5..5\n5TTTL....5c..455555HccH55a5.75\n5TTTL....5c...........H*155.55\n5TTTL....5H...............a.55\n5TTTL....55c..........c59...c5\n5[TTL....555ccc5559*75555c5F55\n555555555555555555555555555555\n\nsection CENTRAL.PROCESSING\n555555555555555555555555555555\n555555555555555555555555555c55\n5cl................l........55\n55.7a555559b755555555555559.55\n55.5......aC2CCCCCCCC15HHH5u55\n55.5.7559.5CbCCCCCCCCbe.S.5.55\n55.5.5aa2.159CCCCCCCCbe...5.55\n55.5.5^^e.a55559CbC7559...5.55\n55.5.5^^8.155*.5CbC5Ke5...2.55\n55.5.5^^5...a6.155556u5.....55\n55.5.5^^5c9.5....b.*b.2...8.55\n55.5.5^^155.2..C....b.ee..5.55\n55.5.5^^*55.e.......b..e..5u55\n55.5.15c*15.8.......bbbe..5.55\n55.a......5.5...T..b...ee.5.55\n55d55SE.8h5.5*....b*.C.eU.5.55\n55d2RRu.d.5.155555555555553.55\n55rrrruc**5..r..............c5\n55c5555*8*5c555555555555559A55\n555555555555555555555555555555\n\n\nsection TRACKWAY 2\n555555555555555555555555555555\n5*5553ES155555555c5.*vv5555c55\n5.2cdlllll........5.svv1c...55\n5.u.dLe4555555559.5..vv.5.8.55\n5.8.8...........5.5.5e455.5.55\n5.2.555555559...5.5>e.T.5.5.55\n5...5.......5...5.5.8...5.5.55\n5c..5..b....5...5.5.5BBB5.5.55\n55.a5.b.....5...5.5*5...5.5.55\n55.53....b..5..73.153e453.5.55\n55.2....b[b.5ih5a.........2.55\n55.f...b[*b.5..155556e455as.55\n55.8.s..bb..5....b......5aE.55\n55.159......5....b...C..5...c5\n55..a5....b.5..K.b.~.w.43.4555\n55c.55...b..5....b..76RRu.b.*5\n55E.1556h455555555553SE5u49.75\n55s...................rruc2.55\n555c55555555555555559.....f.55\n555555555555555555555555555555\n\nsection COLLECTOR\n555555555555555555555555555555\n55a1555a....................15\n55...a3....rrrrrrrrrrrrrrrrra5\n55.8.5..7555556ve49.....76..75\n55.5.5..2<<<15>ee^5.....5D..55\n55.5.5..e<<<*5>>>e5.....5...55\n55.5.5..8<<<75>*<<5.....5S..55\n55.5.5..15555555555.....5...15\n55.5.5......15.E.*5.....5...*5\n55.5.5......c5....5.....5D..75\n55.5.5a......5....5.....55H.55\n55.5556h459..5bbbb5.....555.55\n55.55L.b.R5..5....5.....5d5.55\n55.55U.*..5..16z453.....2e2.55\n55.55....75.............K...55\n55.55....15a................55\n55.55....s56....8z8.......8a55\n53.156...E2.....5s5.......1555\n5a..............555.........*5\n555555555555555555555555555555\n\n\n)\n\n\n\n\n",["[PS+] Please make sure that CASE_SENSITIVE is your topmost prelude flag. Sometimes this fixes errors with other prelude flags.","line 2330 : You named an object \">\", but this is a keyword. Don't do that!","line 2331 : You named an object \"<\", but this is a keyword. Don't do that!","line 2332 : You named an object \"^\", but this is a keyword. Don't do that!","line 2333 : You named an object \"V\", but this is a keyword. Don't do that!","line 2351 : You named an object \"[\", but this is a keyword. Don't do that!","line 2365 : You named an object \"|\", but this is a keyword. Don't do that!"],0] + ], +]; \ No newline at end of file diff --git a/src/tests/resources/plus_testdata.js b/src/tests/resources/plus_testdata.js new file mode 100644 index 000000000..c846e92a3 --- /dev/null +++ b/src/tests/resources/plus_testdata.js @@ -0,0 +1,92 @@ +var testdata = [ + + + [ + "Sokobanana [Example ver.]", + ["title Sokobanana [Example ver.]\nauthor Tom Hermans [Auroriax]\nhomepage auroriax.itch.io\n\nagain_interval 0.085\nkey_repeat_interval 0.16\n\nbackground_color yellow \ntext_color black\n\nnoaction\nrun_rules_on_level_start\n\nsprite_size 12x12\n\nlevel_select\nlevel_select_solve_symbol *\n\n========\nOBJECTS\n========\nPlayer0 P\nwhite black\n............\n...000000...\n...000000...\n.0011001100.\n.0011001100.\n...000000...\n...000000...\n...00..00...\n...00..00...\n..000..000..\n.0000..0000.\n............\n\nPlayer90\nwhite black\n............\n.0.....00...\n.00....00...\n.0000001100.\n.0000001100.\n.....000000.\n.....000000.\n.0000001100.\n.0000001100.\n.00....00...\n.0.....00...\n............\n\nPlayer180\nwhite black\n............\n.0000..0000.\n..000..000..\n...00..00...\n...00..00...\n...000000...\n...000000...\n.0011001100.\n.0011001100.\n...000000...\n...000000...\n............\n\nPlayer270\nwhite black\n............\n...00.....0.\n...00....00.\n.0011000000.\n.0011000000.\n.000000.....\n.000000.....\n.0011000000.\n.0011000000.\n...00....00.\n...00.....0.\n............\n\nAnimateDone\ntransparent\n\nBackground .\n#A0A090\n\nBanana B\nyellow black\n............\n.......11...\n.......11...\n......000...\n.....0000...\n....00000...\n...0000000..\n...000.0000.\n...00...000.\n..000....00.\n.000.....0..\n............\n\nWall w\nyellow\n\nBox O\n#0080FF\n............\n............\n...000000...\n..00000000..\n..00000000..\n..00000000..\n..00000000..\n..00000000..\n..00000000..\n...000000...\n............\n............\n\nPit A\n#000000C0\n............\n............\n............\n............\n...000000...\n..00000000..\n..00000000..\n..00000000..\n..00000000..\n...000000...\n............\n............\n\nBigPit T\nBlack #808080\n............\n............\n............\n...000000...\n..00000000..\n.0000000000.\n.0000000000.\n.0000000000.\n..00000000..\n...000000...\n............\n............\n\nGoal G\n#00000080 #ffffff80\n110011001100\n110011001100\n001100110011\n001100110011\n110011001100\n110011001100\n001100110011\n001100110011\n110011001100\n110011001100\n001100110011\n001100110011\n\nActivatedGoal copy:Goal\nblack white\n\nDriftL\nTransparent\n\nDriftR\nTransparent\n\nDriftU\nTransparent\n\nDriftD\nTransparent\n\nDone\nTransparent\n\nBoxTarget S\nlightblue\n............\n...000000...\n..00000000..\n.00......00.\n.00......00.\n.00......00.\n.00......00.\n.00......00.\n.00......00.\n..00000000..\n...000000...\n............\n\nSignpost I\nbrown black\n............\n.0000000000.\n.0000000000.\n.0011110000.\n.0000000000.\n.0011111100.\n.0000000000.\n.....00.....\n.....00.....\n.....00.....\n.....00.....\n............\n\nOne\nblack\n............\n....0000....\n....0000....\n......00....\n......00....\n......00....\n......00....\n......00....\n......00....\n......00....\n......00....\n............\n\nTwo \nblack\n............\n....0000....\n...000000...\n..000..000..\n..000..000..\n......000...\n.....000....\n....000.....\n...000......\n..00000000..\n..00000000..\n............\n\nThree\nblack\n............\n...000000...\n..00000000..\n........00..\n........00..\n....000000..\n....000000..\n........00..\n........00..\n..00000000..\n...000000...\n............\n\nFour\nblack\n............\n......00....\n.....000....\n....0000....\n...00000....\n..000.00....\n..00..00....\n..00000000..\n..00000000..\n......00....\n......00....\n............\n\nAye\nblack\n............\n...000000...\n..00000000..\n..00....00..\n..00....00..\n..00000000..\n..00000000..\n..00....00..\n..00....00..\n..00....00..\n..00....00..\n............\n\nBee\nblack\n............\n..000000....\n..0000000...\n..00...00...\n..00...00...\n..0000000...\n..00000000..\n..00....00..\n..00....00..\n..00000000..\n..0000000...\n............\n\nCee\nblack\n............\n...0000000..\n..00000000..\n..000.......\n..00........\n..00........\n..00........\n..00........\n..000.......\n..00000000..\n...0000000..\n............\n\nSpaceTemp |\nblack\n\nSpace1\nblack white black black\n000000000000\n000003300000\n000003300000\n000000000000\n000000000000\n022000000000\n022000000000\n000000011000\n000000011000\n000000000000\n000000000000\n000000000000\n\nSpace2 copy:Space1\nblack black white black\n\nSpace3\nblack black black white\n\nMoon\nDarkgray Gray Lightgray\n............\n...222222...\n...222222...\n.2211222200.\n.2211222200.\n.1122112200.\n.1122112200.\n.2211220000.\n.2211220000.\n...000000...\n...000000...\n............\n\nMiniTrigger\nTransparent\n\nPlayerMini0\nWhite White transparent\n............\n............\n............\n...001100...\n...001100...\n...220022...\n...220022...\n...001100...\n...001100...\n............\n............\n............\n\nPlayerMini90 copy:PlayerMini0\nWhite transparent White\n\nVanishTrigger\nTransparent\n\nStar1\nYellow transparent transparent\n............\n.....22.....\n.....22.....\n.....11.....\n.....11.....\n.2211001122.\n.2211001122.\n.....11.....\n.....11.....\n.....22.....\n.....22.....\n............\n\nStar2 copy:Star1\nYellow Yellow transparent\n\nStar3 copy:Star1\nYellow Yellow Yellow\n\nStar4 copy:Star1\nYellow Yellow Yellow\n\nStar5 copy:Star1\nYellow Yellow Yellow\n\nStar6 copy:Star1\ntransparent yellow yellow\n\nStar7 copy:Star1\ntransparent transparent Yellow\n\nWMarker\ntransparent\n\nFMarker\ntransparent\n\n=======\nLEGEND\n=======\n(Level numbers)\n1 = Wall and One\n2 = Wall and Two\n3 = Wall and Three\n4 = Wall and Four\n\n[ = Wall and Aye\n] = Wall and Bee\n? = Wall and Cee\n\n(Game)\nPlayer = Player0 or Player90 or Player180 or Player270 or Star7\n\nDrift = DriftL or DriftR or DriftU or DriftD\nObstacle = Wall or Signpost\nDriftable = Player or Box\nCantWalkInto = Pit or Bigpit\n\nY = Box and BoxTarget\n} = Boxtarget and Pit\nZ = Box and Banana\n\n^ = SpaceTemp and BigPit\n/ = SpaceTemp and Moon\nK = SpaceTemp and VanishTrigger and Goal\nJ = SpaceTemp and MiniTrigger\n\n=======\nSOUNDS\n=======\nSFX0 70928908 (Falling down)\nSFX1 96485908 (Slide)\nSFX3 1461507 (Stop sliding)\nSFX4 72598508 (Star)\nSFX5 48186508 (Sound when hole fills up)\nEndlevel 96979508 \n\n================\nCOLLISIONLAYERS\n================\nBackground\nBanana, Goal, ActivatedGoal, Pit, BigPit, MiniTrigger\nBoxTarget, SpaceTemp, Space1, Space2, Space3\nPlayer0, Player90, Player180, Player270, Wall, Box, Signpost, Moon, PlayerMini0, PlayerMini90, Star1, Star2, Star3, Star4, Star5, Star6, Star7\nDrift, One, Two, Three, Four, Aye, Bee, Cee, VanishTrigger\nDone\nAnimateDone\nWMarker, FMarker\n\n======\nRULES\n======\n(Debug mode skip levels)\n[action player] -> [] win\n\n(Space generation)\n[SpaceTemp] -> [random Space1 random Space2 random Space3]\n\n(Can't go into pits, but can slide over them)\n[> Player | CantWalkInto] -> [ Player | CantWalkInto]\n[Player Pit no Drift no Star7] -> [Pit Star1] sfx0\n[Player BigPit no Drift no Star7] -> [BigPit Star1] sfx0\n\n(Box pushing, again is used to make boxes fill up the hole right away)\n[> Player | Box] -> [> Player | > Box] again\n\n(Boxes fill up holes)\n[Box Pit no Drift] -> [background] sfx5\n[Box BigPit no Drift no Star7] -> [BigPit background Star1] sfx0\n\n(Signs)\nup [> Player | Signpost] -> [Player | Signpost] message Slide over the peels to get to the goal. If there are boxes on the level, don't forget to push these to the designated squares. Press [Z] to undo a move, or [R] to restart the puzzle. Good luck!\n\n(Player moves, steps on banana, slide starts)\nleft [left Driftable | Banana] -> [Driftable DriftL | Banana ] SFX1\nright [right Driftable | Banana] -> [Driftable DriftR | Banana ] SFX1\nup [up Driftable | Banana] -> [Driftable DriftU | Banana ] SFX1\ndown [down Driftable | Banana] -> [Driftable DriftD | Banana ] SFX1\n\n(Drift compute)\nlate left [Driftable DriftL no Done | Driftable] -> [Driftable Done | DriftL Driftable] again\nlate left [Driftable DriftL no Done | no Obstacle] -> [ | Driftable DriftL Done] again\nlate left [Driftable DriftL Done | Obstacle] -> [Driftable | Obstacle] SFX3\n late right [Driftable DriftR no Done | Driftable] -> [Driftable Done | DriftR Driftable] again\n late right [Driftable DriftR no Done | no Obstacle] -> [ | Driftable DriftR Done] again\n late right [Driftable DriftR Done | Obstacle] -> [Driftable | Obstacle] SFX3\nlate up [Driftable DriftU no Done | Driftable] -> [Driftable Done | DriftU Driftable] again\nlate up [Driftable DriftU no Done | no Obstacle] -> [ | Driftable DriftU Done] again\nlate up [Driftable DriftU Done | Obstacle] -> [Driftable | Obstacle] SFX3\n late down [Driftable DriftD no Done | Driftable] -> [Driftable Done | DriftD Driftable] again\n late down [Driftable DriftD no Done | no Obstacle] -> [ | Driftable DriftD Done] again\n late down [Driftable DriftD Done | Obstacle] -> [Driftable | Obstacle] SFX3\n\n[Done] -> []\n\n(Get rid of drifters that haven't moved this turn and we don't we won't need anymore)\nlate [Driftable Drift no Done] -> [Driftable] SFX3 again\n\n(Ending)\nlate [Star1 no AnimateDone] [no moon] -> [Star2 AnimateDone] [no moon] again\nlate [Star1 no AnimateDone] [moon] -> [Star2 AnimateDone] [moon] SFX4 again\nlate [Star2 no AnimateDone] -> [Star3 AnimateDone] again\nlate [Star3 no AnimateDone] -> [Star4 AnimateDone] again\nlate [Star4 no AnimateDone] -> [Star5 AnimateDone] again\nlate [Star5 no AnimateDone] -> [Star6 AnimateDone] again\nlate [Star6 no AnimateDone] -> [Star7 AnimateDone] again\nlate [Star7 no AnimateDone] [no Moon] -> [] [no Moon]\n\nlate [PlayerMini90 no Animatedone] -> [PlayerMini0 Animatedone] again\nlate up [PlayerMini0 no Animatedone |] -> [ | PlayerMini90 Animatedone] again\nlate [Player Minitrigger] -> [PlayerMini0]\nlate [PlayerMini0 VanishTrigger] -> [VanishTrigger Star1]\n\n(Animation)\nlate [Player0 Drift no animatedone] -> [Player90 Drift AnimateDone]\nlate [Player90 Drift no animatedone] -> [Player180 Drift AnimateDone]\nlate [Player180 Drift no animatedone] -> [Player270 Drift AnimateDone]\nlate [Player270 Drift no animatedone] -> [Player0 Drift AnimateDone]\nlate [Player no Drift no Star7]-> [Player0]\nlate [AnimateDone] -> []\n\n(Check if all boxes are on a crate)\nlate [Goal] -> [ActivatedGoal]\nlate [BoxTarget no Box] [ActivatedGoal] -> [BoxTarget] [Goal]\n\n==============\nWINCONDITIONS\n==============\nSome Player on ActivatedGoal\nNo Drift on Player\nAll BoxTarget on Box\n\n=======\nLEVELS\n=======\n\nmessage Chapter I\n\nsection 1A Getting the Slip\n.p..i..w\nwww..b.w\n1[wwwgww\nwwwww..w\nw...t..w\nw.bttt.w\nww....ww\n\nsection 1B Slippery Trip \nwwwwwwwwwww\nww.....b..p\nwwbwbwb.w..\nww.......wb\nwg.wbwbwbw.\n.b.b.......\nwwbwbwwwwwb\n1].........\nwwwwwwwwwww\n\nsection 1C The Box and Banana\nso..p\ns....\n.wbw.\n.wo1.\n...?.\nw...g\n\nmessage Chapter II\n\nsection 2A Trashure Trove\nwwwwgwwww\n2[wwtw...\nwwww.....\nww..b...w\n.b.tb.wow\np...t...w\n\nsection 2B Newton's Cradle\nww....twwww\n...w.ot....\npbtgy.ts.ts\n...w..o..tw\nww.......tw\nwwwwwwwww2]\n\nsection 2C The Pit of Wit\nw....wwww\nw.wwbwwww\nw.wwtw2?w\nw.w.pwwww\nw.wo..o..\n.bss.ssw.\n.woot....\n.w..twwww\n...wgwwww\n\nmessage Chapter III\n\nsection 3A Banana Bonanza\n3[..ttt...\nw..oaba...\nw.p.aba.o.\nw...t.too.\nw...tgt...\n\nsection 3B Fruity Juices\n3]..wgww..w\nw..owawwo..\nw.ooaaaa.o.\nw...aaaaop.\nw..baaaab..\n\nsection 3C Tightrope Walk\nww....wwww\nww.oooww3?\naao.o.wwww\naa.o...www\naabttt.tga\naabb.p.www\n\nmessage Chapter IV\n\nsection 4A Slip 'n Slide\n4[wgwtst..w\nw..t..t..ow\nt..b.......\nst.btbbt...\nt..t..t.o..\n.p.o..b...t\n.b...tb..ts\n..wwwwwwwww\n\nsection 4B Banana Split\n4].....a..ww\nwwaww.ta..wg\n.o..t..at.w.\n.bb.t..a..ta\noo..t..a..op\ns...tb.a..ww\n\nsection 4C Banana Bunch\nw4?wstwwww\nwwwwtgwwww\nw..tb.t..w\nwo...b..sw\n...wb.t.p.\n....tw..o.\nww......ww\n\nsection Epilogue\nmessage Epilogue\n|||||||\n|||k|||\n|||||||\n|/|||||\n|||j|||\n|||||||\n|||||||\n||^^^||\n|^...^|\n^.....^\n...b...\n.......\n...p...\n.......\n\nmessage The End\n\nmessage Sokobanana by Tom Hermans (@Auroriax). Thanks for playing!\n",[3,3,3,2,3,3,3,0,1,2],"background:0,background wall:1,background one wall:2,1,1,1,1,0,\n1,aye background wall:3,1,0,0,1,0,1,\n1,1,0,background banana:4,0,0,0,1,\n1,0,background bigpit:5,0,background signpost:6,0,1,1,\n5,5,0,0,4,activatedgoal background:7,0,0,\n5,background player0:8,0,0,1,0,0,0,\n1,1,1,1,1,1,1,1,\n",1,"1676840284686.27"] + ], + + +[ + "PushTOOL v5", + ["title PushTOOL v5\nauthor Tom Hermans [@Auroriax]\nhomepage auroriax.itch.io\n\nbackground_color #111\ntext_color red\n\nlevel_select\n\n========\nOBJECTS\n========\n\nbackground .\n#444\n\nPlayer P\nPink\n.000.\n0.0.0\n00000\n00000\n.000.\n\nWall #\n#222\n\nRedCrate 1\nRed\n\nRedThrough 2\n#ff000088\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\nBlueCrate 4\nblue\n\nBlueThrough 5\n#1D57F788\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\nNumberL\n#ffffffB0\n.....\n..0..\n.00..\n..0..\n.....\n\nNumberR\n#ffffffB0\n.....\n..0..\n..00.\n..0..\n.....\n\nNumberU\n#ffffffB0\n.....\n..0..\n.000.\n.....\n.....\n\nNumberD\n#ffffffB0\n.....\n.....\n.000.\n..0..\n.....\n\nZero\n#ffffff80\n.000.\n.0.0.\n.0.0.\n.0.0.\n.000.\n\nOne\nWhite #dddddd\n.00..\n..0..\n..0..\n..0..\n.111.\n\nTwo\nwhite #dddddd\n.000.\n...0.\n.000.\n.0...\n.111.\n\nThree\nwhite #dddddd\n.000.\n...0.\n..00.\n...0.\n.111.\n\nFour\nwhite #dddddd\n.0.0.\n.0.0.\n.000.\n...0.\n...1.\n\nFive\nwhite #dddddd\n.000.\n.0...\n.000.\n...0.\n.111.\n\nSix\nwhite #dddddd\n.000.\n.0...\n.000.\n.0.0.\n.111.\n\nLPullMarker\npink\n\nRPullMarker\npink\n\nUPullMarker\npink\n\nDPullMarker\npink\n\nDecreaseNr\nwhite\n\nIncreaseNr\nwhite\n\nExtrudingAllowed\ntransparent\n\n=======\nLEGEND\n=======\n\nCrates = RedCrate or BlueCrate\nThrough = RedThrough or BlueThrough\n\nPosNumber = One or Two or Three or Four or Five or Six\nNumber = Zero or PosNumber\nWasNumbers = NumberL or NumberR or NumberU or NumberD\n\nSymbol = Number or WasNumbers\n\nRedPropagation = RedCrate or RedThrough\nBluePropagation = BlueCrate or BlueThrough\n\nSolid = Wall or Crates\nSolidForRed = Wall or BlueCrate\nSolidForBlue = Wall or RedCrate\n\n! = RedThrough and BlueThrough\n? = Wall and RedThrough\n\" = Wall and BlueThrough\n\nPullMarker = LPullMarker or RPullMarker or UPullMarker or DPullMarker\n\nA = RedCrate and One\nB = RedCrate and Two\nC = RedCrate and Three\nD = RedCrate and Four\nE = RedCrate and Five\nF = RedCrate and Six\n\nV = BlueCrate and One\nW = BlueCrate and Two\nX = BlueCrate and Three\nY = BlueCrate and Four\nZ = BlueCrate and Five\n- = BlueCrate and Six\n\n=======\nSOUNDS\n=======\n\nsfx0 97827307 (Extruding)\nsfx1 65463107 (Detruding?)\nsfx2 4202507 (Pushing)\n\nendlevel 84411303\n\n================\nCOLLISIONLAYERS\n================\n\nbackground\nCrates Wall\nRedThrough\nBlueThrough\n\nPlayer \n\nNumber, WasNumbers\n\nIncreaseNr, DecreaseNr\nExtrudingAllowed\nPullMarker\n\n======\nRULES\n======\n\n[> Player | Wall] -> [Player | Wall]\n\nrandom [background] -> [background ExtrudingAllowed]\n\n(Push numbers inwards)\nright [> Player | Crates Number | Crates NumberL] -> [> Player | | Crates Number IncreaseNr] sfx1\nleft [> Player | Crates Number | Crates NumberR] -> [> Player | | Crates Number IncreaseNr] sfx1\nup [> Player | Crates Number | Crates NumberD] -> [> Player | | Crates Number IncreaseNr] sfx1\ndown [> Player | Crates Number | Crates NumberU] -> [> Player | | Crates Number IncreaseNr] sfx1\n\n(Is extruding allowed?)\n[ExtrudingAllowed] [RedCrate Number | > Player | RedCrate no Number] -> [] [RedCrate Number | > Player | RedCrate]\n[ExtrudingAllowed] [RedCrate no Number | > Player | RedCrate Number] -> [] [RedCrate | > Player | RedCrate Number]\n[ExtrudingAllowed] [RedCrate Number | > Player | RedCrate Number] -> [] [RedCrate Number | > Player | RedCrate Number]\n\n[ExtrudingAllowed] [BlueCrate Number | > Player | BlueCrate no Number] -> [] [BlueCrate Number | > Player | BlueCrate]\n[ExtrudingAllowed] [BlueCrate no Number | > Player | BlueCrate Number] -> [] [BlueCrate | > Player | BlueCrate Number]\n[ExtrudingAllowed] [BlueCrate Number | > Player | BlueCrate Number] -> [] [BlueCrate Number | > Player | BlueCrate Number]\n\n(Mark numbers for pull/extrude numbers out, actually handled in late rules)\nright [ExtrudingAllowed] [< Player no RedThrough | RedCrate PosNumber] -> [] [< Player | RedCrate PosNumber LPullMarker]\nleft [ExtrudingAllowed] [< Player no RedThrough | RedCrate PosNumber] -> [] [< Player | RedCrate PosNumber RPullMarker]\nup [ExtrudingAllowed] [< Player no RedThrough | RedCrate PosNumber] -> [] [< Player | RedCrate PosNumber DPullMarker]\ndown [ExtrudingAllowed] [< Player no RedThrough | RedCrate PosNumber] -> [] [< Player | RedCrate PosNumber UPullMarker]\n\nright [ExtrudingAllowed] [< Player no BlueThrough | BlueCrate PosNumber] -> [] [< Player | BlueCrate PosNumber LPullMarker]\nleft [ExtrudingAllowed] [< Player no BlueThrough | BlueCrate PosNumber] -> [] [< Player | BlueCrate PosNumber RPullMarker]\nup [ExtrudingAllowed] [< Player no BlueThrough | BlueCrate PosNumber] -> [] [< Player | BlueCrate PosNumber DPullMarker]\ndown [ExtrudingAllowed] [< Player no BlueThrough | BlueCrate PosNumber] -> [] [< Player | BlueCrate PosNumber UPullMarker]\n\n[ExtrudingAllowed] -> []\n\n(Increase numbers)\n[IncreaseNr Zero] -> [One]\n[IncreaseNr One] -> [Two]\n[IncreaseNr Two] -> [Three]\n[IncreaseNr Three] -> [Four]\n[IncreaseNr Four] -> [Five]\n[IncreaseNr Five] -> [Six]\n\n[IncreaseNr] -> []\n\n(Propagate movement)\n[> Player | Crates] -> [> Player | > Crates] sfx2\n\nstartloop\n[moving RedPropagation | stationary RedPropagation] -> [moving RedPropagation | moving RedPropagation]\n[moving BluePropagation | stationary BluePropagation] -> [moving BluePropagation | moving BluePropagation]\n[> RedCrate | stationary BlueCrate] -> [> RedCrate | > BlueCrate]\n[> BlueCrate | stationary RedCrate] -> [> BlueCrate | > RedCrate] \nendloop\n\n(Validate turn)\n[> Crates | Wall] -> cancel\n[moving Crates stationary Symbol] -> [moving Crates moving Symbol]\n\n[RedCrate RedThrough] -> cancel\n[BlueCrate BlueThrough] -> cancel\n\n(LATE RULES)\n(Actually do pulls if still relevant)\nlate right [no Player no Solid no RedThrough | Crates PosNumber LPullMarker] -> [ Crates PosNumber DecreaseNr | Crates NumberL] sfx0\nlate left [no Player no Solid no RedThrough | Crates PosNumber RPullMarker] -> [ Crates PosNumber DecreaseNr | Crates NumberR] sfx0\nlate up [no Player no Solid no RedThrough | Crates PosNumber DPullMarker] -> [ Crates PosNumber DecreaseNr | Crates NumberD] sfx0\nlate down [no Player no Solid no RedThrough | Crates PosNumber UPullMarker] -> [ Crates PosNumber DecreaseNr | Crates NumberU] sfx0\n\nlate [DecreaseNr One] -> [Zero]\nlate [DecreaseNr Two] -> [One]\nlate [DecreaseNr Three] -> [Two]\nlate [DecreaseNr Four] -> [Three]\nlate [DecreaseNr Five] -> [Four]\nlate [DecreaseNr Six] -> [Five]\n\n[DecreaseNr] -> []\n\nlate [PullMarker] -> []\n\n(Cleanup)\nlate [Player Crates] -> cancel\nlate [Symbol no Crates] -> []\n\n==============\nWINCONDITIONS\n==============\n\nNo PosNumber\nSome Number\n\n=======\nLEVELS\n=======\n\nsection 1A. Practice Path\n#########\n##p######\n##.######\n##..c..##\n#########\n#########\n\nsection 1B. Stuck in the Grid\n#######\n###...#\n#1#.#.#\n#1bp.x#\n#1#.#.#\n###...#\n#######\n(uurrd dllrr duuu)\n\nsection 1C. Ripping the Sticker\n#######\n###...#\n##....#\n##..p.#\n#.b...#\n#ac####\n#######\n(llurd rdlud rrulu ldruu ldldu rurdr)\n\nsection 1D. Switcharoo\n######\n#...p#\n#..c.#\n###w.#\n###..#\n######\n(dlduu lldru rdduu ldl)\n\nsection 2A. Unfolding Star\n#######\n#.....#\n#...p.#\n#..c..#\n#.b1b.#\n#..c..#\n#######\n(lduul dlduu ldddd rrllu ruuur dldlu rrrul dll)\n\nsection 2B. Twisty Pistons\n#############\n####.....####\n#1.#.....#.4#\n#11fp....-44#\n#1.#.....#.4#\n####.....####\n#############\n(rdldr urulu uldrl urrrd drlur uldld rddru lr)\n\nsection 2C. Shifty Staircase \n#######\n#.....#\n#.c...#\n#.22.p#\n#.d2c.#\n##...##\n#######\n(lullr rrdlr dldll urdlu drulr rr)\n\nsection 2D. Sifting & Shifting\n###############\n####.p.....####\n####.#...#.####\n#..1a2aba2a1..#\n#####.....#####\n#####.....#####\n###############\n(rdurd uldrl ddrdr rudll lludr uuuru rdlld ddrru dlulu uruld dddlu ruuur rdlru rrdul lllll du)\n\nsection 3A. Folded Couches\n########\n##....##\n#.....b#\n#x....c#\n#w.p...#\n########\n########\n(lrrru lllur rrlll drulu rdrur du)\n\nsection 3B. Surrounded Shape\n#########\n#.......#\n#.c111c.#\n#.....1.#\n#...#.1.#\n#....p1.#\n#.c111c.#\n#.......#\n#########\n(lllur drrru lulld lulur urdrr rruld lllld ldrdr uluur urdll urrrr ddddd drulu uuuul llldr rurrd rdld)\n\nsection 3C. Twisted Interjoin\n########\n##....##\n#p..c..#\n#..x!x.#\n#...c..#\n########\n(rrrll lddrr udlul urdrl dluur drudl ldrur urrdl lulur rdrdr ulrdl uddll uuuld rdrul ldlur rrddl rudll ludrr rudlu ldrll)\n\nsection 3D. Hollow Hole\n#########\n###...###\n##.....##\n#..ba2b.#\n#..2..a.#\n#p.a..2.#\n#..b2ab.#\n##.....##\n###...###\n#########\n(rlurr rdrul uurdu ulddl lurdr uurdr drddl dlurd dldlu luuur ldddr druru ruldu ruulu ldrdr dludr dldld lulur dldru lrdru rurul urulu luldr luldl dlddr udl)\n\nsection Credits\n\nmessage Game by Tom Hermans for the Thinky Puzzle Jam (2021).\nmessage The End! Thank you for playing.\n\n(section ?. Unearthed\n########\n#......#\n#......#\n#......#\n#..p...#\n#..#####\n#....###\n##..e.v#\n##..####\n########\n\nsection ?. Traffic\n\n############\n#####......#\n?2222.p....#\n?...2..5#..#\n?d..?..wv#.#\n???#?#######\n\n############\n#####......#\n#.....p....#\n#......5#..#\n#e2.#..wv#.#\n#?##########\n\n\n#############\n#...2.......#\n#..1a1p.4.4.#\n#..1.1..4v4.#\n#...........#\n#############\n\n\n#############\n#...2.......#\n#..1a1......#\n#..2.2.p454.#\n#..121..5.5.#\n#.......4v4.#\n#........5..#\n#############\n\n\n#######\n#.....#\n#.....#\n#.#.#.#\n#.....#\n#.....#\n##vvv##\n##...##\n##.p.##\n##d..##\n#######\n\n\n#########\n#.......#\n#...p...#\n#.......#\n#d......#\n####x####\n###444###\n\n\n########\n#.4....#\n?15....#\n?#\"#####\n?.5....#\n?.5....#\n?d5.#p##\n##\"##.##\n##w5..##\n#444...#\n########)",[2,2,3,3,3,1,1],"background wall:0,0,0,0,0,0,0,0,0,\n0,0,0,0,background:1,1,1,0,0,\n0,0,0,background player:2,0,0,0,0,0,\nbackground one redcrate:3,0,0,0,0,0,background numberl redcrate:4,0,0,\n0,0,0,4,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,\n",0,"1676839511297.1116"] + ], + + + [ + "Gridroots LD48 v2", + ["title Gridroots LD48 v2\nauthor Tom Hermans [@Auroriax]\n\nmouse_left Click\nmouse_drag Drag\nmouse_right EraserClick\nmouse_rdrag EraserDrag\n\nlevel_select\nlevel_select_solve_symbol *\n\nbackground_color #dddddd\ntext_color Red\n\nsprite_size 6\n\nrun_rules_on_level_start\n\n(Kitchen Sink font by Retroshark and Polyducks: https://polyducks.itch.io/kitchen-sink-textmode-font)\ncustom_font data:font/otf;base64,AAEAAAAMAIAAAwBARkZUTdIPUvwAACFMAAAAHE9TLzLNdgq4AAABSAAAAGBjbWFwzJGg2QAAAnQAAAFCZ2FzcP//AAMAACFEAAAACGdseWb0pAjvAAAEgAAAGIRoZWFkWkY0wwAAAMwAAAA2aGhlYQYCAoUAAAEEAAAAJGhtdHgPAAcAAAABqAAAAMxsb2NhJ6MhUAAAA7gAAADGbWF4cABtACoAAAEoAAAAIG5hbWWviqllAAAdBAAABB9wb3N0AGkANAAAISQAAAAgAAEAAAABAACn4hG5Xw889QALBAAAAAAAfFN4YwAAAAB8U3hjAAD/gAKAA4AAAAAIAAIAAAAAAAAAAQAAA4D/gAAAAwAAAAAAAoAAAQAAAAAAAAAAAAAAAAAAAAQAAQAAAGIAKAAKAAAAAAACAAAAAAAAAAAAAAAAAAAAAAACAwABkAAFAAQCAAIAAAD/wAIAAgAAAAIAADMAzAAAAAAEAAAAAAAAAKAAAIMAAHDgAAAAAAAAAABZQUwuAEAAIAB+A4D/gAAAA4AAgAAAAAEAAAAAAoADgAAAACAAAQMAAAADAAAAAwAAAAMAAAABAACAAAAAAAAAAAABAACAAIAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAIAAgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAMAAAADAAAAHAABAAAAAAA8AAMAAQAAABwABAAgAAAABAAEAAEAAAB+//8AAAAg////4wABAAAAAAAAAQYAAAEAAAAAAAAAAQIAAAACAAAAAAAAAAAAAAAAAAAAAQAAAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAmAFQAiAC2APoBEAEqAUQBeAGQAaYBtAHAAeICCgIgAk4CeAKiAsYC7AMKAz4DZAN2A5IDvgPSA/wEJARKBHQEmAS+BNgE8AUGBTAFSAVgBX4FpgW2BdgF+gYaBjYGYgaEBrYGyAbiBwgHLgdqB44HtgfIB+oH/ggiCC4IQghoCJAItgjeCP4JHAlGCWQJgAmkCcgJ4AoCCiAKQApoCpAKrgrSCvALCgswC1YLkAuwC9IL8AwEDCQMQgAAAAIBAAAAAYADgAADAAcAAAEzESMVMxUjAQCAgICAA4D9gICAAAIAgAIAAoADgAADAAcAABMzESMBMxEjgICAAYCAgAOA/oABgP6AAAACAAAAAAKAA4AAGwAfAAATMxEzETMRMxUjFTMVIxEjESMRIxEjNTM1IzUzFxUzNYCAgICAgICAgICAgICAgICAA4D/AAEA/wCAgID/AAEA/wABAICAgICAgAAAAAMAAAAAAoADgAAbAB8AIwAAATMVIRUhFTMVIxUzFSMVIzUhNSE1IzUzNSM1MwUzFSMFMxUjAQCAAQD/AICAgICA/wABAICAgID/AICAAgCAgAOAgICAgICAgICAgICAgICAgIAAAAAABwAAAAACgAOAAAMABwALAA8AEwAXABsAAAEzFSMhMxUjJTMRKwEzFSsBMxErATMVIyUzFSMCAICA/gCAgAGAgICAgICAgICAgIACAICAA4CAgID/AID/AICAgAAKAAAAAAKAA4AAAwAHAAsADwATABcAGwAfACMAJwAAEyEVISMzESMBMxUjBTMVKwEzESMBMxUjJTMVKwEzFSMpARUhJTMVI4ABAP8AgICAAYCAgP8AgICAgIABAICAAQCAgICAgP8AAQD/AAGAgIADgID/AAEAgICA/wABAICAgICAgIAAAAAAAgEAAgACAAOAAAUACQAAASERIzUjFTMVIwEAAQCAgICAA4D/AICAgAAAAAADAIAAAAIAA4AAAwAHAAsAAAEhFSEjMxEjMyEVIQEAAQD/AICAgIABAP8AA4CA/YCAAAAAAwCAAAACAAOAAAMABwALAAATIRUpATMRIykBFSGAAQD/AAEAgID/AAEA/wADgID9gIAAAAUAAAEAAoADgAADABcAGwAfACMAABEzFSMlMxUzFTMVIxUjFSM1IzUjNTM1MyUzFSMBMxUjJTMVI4CAAQCAgICAgICAgICAAQCAgP4AgIACAICAA4CAgICAgICAgICAgICA/oCAgIAAAQAAAIACgAMAAAsAAAEzESEVIREjESE1IQEAgAEA/wCA/wABAAMA/wCA/wABAIAAAgEA/4ACAAEAAAUACQAAASERIzUjFTMVIwEAAQCAgICAAQD/AICAgAAAAAABAAABgAKAAgAAAwAAESEVIQKA/YACAIAAAAAAAQEAAAABgACAAAMAACUzFSMBAICAgIAABQAAAAACgAOAAAMABwALAA8AEwAAATMVKwEzESsBMxUrATMRKwEzFSMCAICAgICAgICAgICAgICAA4CA/wCA/wCAAAAFAAAAAAKAA4AAAwAHAAsADwATAAATIRUhIzMRIwEzESMBMxUjAyEVIYABgP6AgICAAgCAgP8AgICAAYD+gAOAgP2AAoD9gAGAgP8AgAAAAAEAAAAAAoADgAAJAAATIREhFSE1IREjgAEAAQD9gAEAgAOA/QCAgAKAAAAABgAAAAACgAOAAAMABwALAA8AEwAbAAATIRUhIzMVIyUzESsBMxUrATMVKwEzFSEVITUzgAGA/oCAgIACAICAgICAgICAgIABgP2AgAOAgICA/wCAgICAgAAAAAAFAAAAAAKAA4AABQALAA8AEwAXAAARIREjNSEFMxEhNTMXMxEjJTMVIzMhFSECgID+AAGAgP8AgICAgP4AgICAAYD+gAOA/wCAgP8AgID/AICAgAAFAAAAAAKAA4AAAwAHAAsADwAZAAABMxUrATMVKwEzFSsBMxUjJTMRIzUhETMVIQIAgICAgICAgICAgIABgICA/gCAAYADgICAgICA/gCAAQCAAAAEAAAAAAKAA4AABwALAA8AEwAAESEVIRUhFSkBMxEjJTMVIzMhFSECgP4AAYD+AAIAgID+AICAgAGA/oADgICAgP6AgICAAAAEAAAAAAKAA4AAAwALAA8AEwAAEyEVISMzFSEVIREjATMRIykBFSGAAYD+gICAAYD+gIACAICA/oABgP6AA4CAgID+gAGA/oCAAAAAAwAAAAACgAOAAAcACwAPAAARIREjESEVIwUzESsBMxEjAoCA/oCAAYCAgICAgAOA/oABAICA/wD/AAAABwAAAAACgAOAAAMABwALAA8AEwAXABsAABMhFSEjMxEjATMRIykBFSEjMxEjATMRIykBFSGAAYD+gICAgAIAgID+gAGA/oCAgIACAICA/oABgP6AA4CA/wABAP8AgP8AAQD/AIAAAAAEAAAAAAKAA4AAAwAHAA8AEwAAEyEVISMzESMBMxEjNSE1IQEhFSGAAYD+gICAgAIAgID+gAGA/oABgP6AA4CA/oABgP2AgID/AIAAAgEAAIABgAKAAAMABwAAATMVIxEzFSMBAICAgIACgID/AIAAAwCA/4ABgAKAAAMACQANAAABMxUjAyERIzUjFTMVIwEAgICAAQCAgICAAoCA/wD/AICAgAAAAAAHAIAAAAKAA4AAAwAHAAsADwATABcAGwAAATMVKwEzFSsBMxUrATMVIzsBFSM7ARUjOwEVIwIAgICAgICAgICAgICAgICAgICAgIADgICAgICAgIAAAAAAAgAAAIACgAKAAAMABwAAESEVIREhFSECgP2AAoD9gAKAgP8AgAAAAAcAgAAAAoADgAADAAcACwAPABMAFwAbAAATMxUjOwEVIzsBFSM7ARUrATMVKwEzFSsBMxUjgICAgICAgICAgICAgICAgICAgICAA4CAgICAgICAAAYAAAAAAoADgAADAAcACwAPABMAFwAAEyEVISMzFSMlMxErATMVKwEzFSMVMxUjgAGA/oCAgIACAICAgICAgICAgIADgICAgP8AgICAgAAABAAAAAACgAOAAAMABwANABEAABMhFSEjMxEjATMRIREhASEVIYABgP6AgICAAgCA/oABAP6AAYD+gAOAgP2AAoD+gAEA/gCAAAAAAAQAAAAAAoADgAADAAcACwAXAAABMxUrATMVIyUzFSMhMxEhETMRIxEhESMBAICAgICAAQCAgP6AgAGAgID+gIADgICAgID/AAEA/YABAP8AAAAAAAMAAAAAAoADgAALAA8AEwAAESEVIREhFSERIRUhATMRIxUzESMCAP6AAYD+gAGA/gACAICAgIADgID/AID/AIADAP8AgP8AAAUAAAAAAoADgAADAAcACwAPABMAABMhFSEjMxEjATMVIxEzFSMpARUhgAGA/oCAgIACAICAgID+gAGA/oADgID9gAKAgP6AgIAAAAACAAAAAAKAA4AABwALAAARIRUhESEVIQEzESMCAP6AAYD+AAIAgIADgID9gIADAP2AAAAAAQAAAAACgAOAAAsAABEhFSERIRUhESEVIQKA/gABgP6AAgD9gAOAgP8AgP8AgAAAAQAAAAACgAOAAAkAABEhFSERIRUhESMCgP4AAYD+gIADgID/AID+gAAAAAAFAAAAAAKAA4AAAwAHAAsAEQAVAAATIRUhIzMRIwEzFSMFIREjESEDIRUhgAGA/oCAgIACAICA/wABgID/AIABgP6AA4CA/YACgICA/oABAP8AgAABAAAAAAKAA4AACwAAETMRIREzESMRIREjgAGAgID+gIADgP6AAYD8gAGA/oAAAAABAAAAAAKAA4AACwAAESEVIREhFSE1IREhAoD/AAEA/YABAP8AA4CA/YCAgAKAAAADAAAAAAKAA4AABQAJAA0AAAEhESMRIQEzESMzIRUhAQABgID/AP8AgICAAYD+gAOA/QACgP6A/wCAAAAFAAAAAAKAA4AABwALAA8AEwAXAAARMxEhFSERIwEzESsBMxUjFTMVIzsBESOAAQD/AIACAICAgICAgICAgIADgP6AgP6AA4D/AICAgP8AAAEAAAAAAoADgAAFAAARMxEhFSGAAgD9gAOA/QCAAAAAAwAAAAACgAOAAAcADwATAAARMxUzFSMRIwEzESMRIzUzBTMVI4CAgIACAICAgID/AICAA4CAgP2AA4D8gAKAgICAAAADAAAAAAKAA4AABwAPABMAABEzFTMRIxEjATMRIzUjETMlMxUjgICAgAIAgICAgP8AgIADgID/AP4AA4D8gIABAICAAAQAAAAAAoADgAADAAcACwAPAAATIRUhIzMRIwEzESMpARUhgAGA/oCAgIACAICA/oABgP6AA4CA/YACgP2AgAACAAAAAAKAA4AACQANAAARIRUhESEVIREjATMRIwIA/oABgP6AgAIAgIADgID/AID+gAMA/wAAAAYAAAAAAoADgAADAAcACwAPABMAFwAAEyEVISMzESMBMxErATMVIykBFSElMxUjgAGA/oCAgIACAICAgICA/wABAP8AAYCAgAOAgP2AAoD+AICAgIAAAAADAAAAAAKAA4AACQANABEAABEhFSERIRUhESMBMxEjFTMRIwIA/oABgP6AgAIAgICAgAOAgP8AgP6AAwD/AID+gAAAAAcAAAAAAoADgAADAAcACwAPABMAFwAbAAATIRUhIzMRIwEzFSMFIRUpATMRIyUzFSMzIRUhgAGA/oCAgIACAICA/oABgP6AAYCAgP4AgICAAYD+gAOAgP8AAQCAgID/AICAgAABAAAAAAKAA4AABwAAESEVIREjESECgP8AgP8AA4CA/QADAAADAAAAAAKAA4AAAwAHAAsAABEzESMBMxEjKQEVIYCAAgCAgP6AAYD+gAOA/QADAP0AgAAABQAAAAACgAOAAAMABwALAA8AEwAAETMRIwEzESMhMxEjATMRKwEzESOAgAIAgID+gICAAQCAgICAgAOA/oABgP6A/wABAP8A/wAAAAUAAAAAAoADgAADAAcACwAPABMAABEzESMBMxEjATMRIyEzFSMlMxUjgIABAICAAQCAgP6AgIABAICAA4D9AAMA/QADAP0AgICAAAAJAAAAAAKAA4AAAwAHAAsADwATABcAGwAfACMAABEzESMBMxEjITMVIyUzFSsBMxUrATMVIyUzFSMhMxEjATMRI4CAAgCAgP6AgIABAICAgICAgICAAQCAgP6AgIACAICAA4D/AAEA/wCAgICAgICA/wABAP8AAAAFAAAAAAKAA4AAAwAHAAsADwATAAARMxEjATMRIyEzFSMlMxUrATMRI4CAAgCAgP6AgIABAICAgICAA4D+gAGA/oCAgID+gAAFAAAAAAKAA4AABQAJAA0AEQAXAAARIREjNSEFMxUrATMVKwEzFSsBMxUhFSECgID+AAGAgICAgICAgICAgAIA/YADgP8AgICAgICAgAAAAAEAAAAAAYADgAAHAAARIRUhESEVIQGA/wABAP6AA4CA/YCAAAUAAAAAAoADgAADAAcACwAPABMAABEzFSM7AREjOwEVIzsBESM7ARUjgICAgICAgICAgICAgIADgID/AID/AIAAAAAAAQAAAAABgAOAAAcAABEhESE1IREhAYD+gAEA/wADgPyAgAKAAAAAAAUAAAIAAoADgAADAAcACwAPABMAAAEzFSsBMxUjJTMVIyEzFSMlMxUjAQCAgICAgAEAgID+gICAAgCAgAOAgICAgICAgAAAAAEAAAAAAoAAgAADAAA1IRUhAoD9gICAAAIBAAIAAgADgAAFAAkAAAEhFSMVIzsBFSMBAAEAgICAgIADgICAgAAEAAAAAAKAAoAAAwANABEAFQAAEyEVKQEzESM1IzUhNSEFMxUjMyEVIYABgP6AAYCAgID/AAGA/gCAgIABAP8AAoCA/gCAgICAgIAABAAAAAACgAOAAAsADwATABcAABEzETMVIxUzFSMVIwEhFSkBMxEjKQEVIYCAgICAgAEAAQD/AAEAgID/AAEA/wADgP6AgICAgAKAgP6AgAAFAAAAAAKAAoAAAwAHAAsADwATAAATIRUhIzMRIwEzFSMVMxUjKQEVIYABgP6AgICAAgCAgICA/oABgP6AAoCA/oABgICAgIAAAAAABAAAAAACgAOAAAsADwATABcAAAEzESM1IzUzNSM1MyUhFSEjMxEjMyEVIQIAgICAgICA/oABAP8AgICAgAEA/wADgPyAgICAgICA/oCAAAADAAAAAAKAAoAAAwANABEAABMhFSEjMxUhNTMRIRUjMyEVIYABgP6AgIABgID+AICAAYD+gAKAgICA/wCAgAAAAgAAAAACgAOAAAMADwAAASEVISMzFSEVIREjESM1MwEAAYD+gICAAYD+gICAgAOAgICA/gACAIAAAAAABAAA/4ACgAKAAAMADwATABcAABMhFSElMxEjNSE1ITUjNTMhMxEjEyEVIYABAP8AAYCAgP6AAYCAgP4AgICAAYD+gAKAgID9gICAgID/AP8AgAAAAwAAAAACgAOAAAcACwAPAAARMxEzFSMRIwEhFSkBMxEjgICAgAEAAQD/AAEAgIADgP6AgP6AAoCA/gAAAgAAAAACgAOAAAMADQAAATMVIwchESEVITUhESMBAICAgAEAAQD9gAEAgAOAgID+AICAAYAAAAAEAAD/gAKAA4AAAwAJAA0AEQAAATMVIwUhESMRIQEzFSMzIRUhAgCAgP8AAYCA/wD/AICAgAGA/oADgICA/YACAP6AgIAAAAAEAAAAAAKAA4AABwALAA8AEwAAETMRIRUhESMBIRUhFTMVIzsBESOAAQD/AIABgAEA/wCAgICAgAOA/oCA/oACgICAgP8AAAACAAAAAAKAA4AABQAJAAARIREjESEBIRUhAYCA/wABgAEA/wADgP0AAoD9gIAAAAAEAAAAAAKAAoAABQAJAA0AEQAAESEVIxEjATMVKwEzESMBMxEjAQCAgAGAgICAgIABAICAAoCA/gACgID+gAGA/gAAAAMAAAAAAoACgAAHAAsADwAAETMVMxUjESMBIRUpATMRI4CAgIABAAEA/wABAICAAoCAgP6AAoCA/gAAAAQAAAAAAoACgAADAAcACwAPAAATIRUhIzMRIwEzESMpARUhgAGA/oCAgIACAICA/oABgP6AAoCA/oABgP6AgAAEAAD/gAKAAoAACwAPABMAFwAAETMVMxUjFTMVIxEjASEVKQEzESMpARUhgICAgICAAQABAP8AAQCAgP8AAQD/AAKAgICAgP8AAwCA/oCAAAQAAP+AAoACgAADAA8AEwAXAAATIRUhJTMRIxEjNTM1IzUzITMRIzMhFSGAAQD/AAGAgICAgICA/gCAgIABAP8AAoCAgP0AAQCAgID+gIAAAwAAAAACgAKAAAcACwAPAAARMxUzFSMRIwEhFSkBMxUjgICAgAEAAQD/AAEAgIACgICA/oACgICAAAAABQAAAAACgAKAAAMABwALAA8AEwAAEyEVISMzFSMzIRUpATMVIykBFSGAAgD+AICAgIABgP6AAYCAgP4AAgD+AAKAgICAgIAAAgAAAAACgAMAAAsADwAAEzMVIRUhESMRIzUzEyEVIYCAAYD+gICAgIABgP6AAwCAgP6AAYCA/gCAAAAAAwAAAAACgAKAAAMABwALAAARMxEjATMRIykBFSGAgAIAgID+gAGA/oACgP4AAgD+AIAAAAUAAAAAAoACgAADAAcACwAPABMAABEzESMBMxEjITMRIwEzESsBMxUjgIACAICA/oCAgAEAgICAgIACgP8AAQD/AP8AAQD/AIAAAAAFAAAAAAKAAoAAAwAHAAsADwATAAARMxEjATMRIwEzESMhMxUjJTMVI4CAAQCAgAEAgID+gICAAQCAgAKA/gACAP4AAgD+AICAgAAACQAAAAACgAKAAAMABwALAA8AEwAXABsAHwAjAAARMxUjJTMVIyEzFSMlMxUrATMVKwEzFSMlMxUjITMVIyUzFSOAgAIAgID+gICAAQCAgICAgICAgAEAgID+gICAAgCAgAKAgICAgICAgICAgICAgAAAAAADAAD/gAKAAoAAAwALAA8AABEzESMBMxEjNSE1IQEhFSGAgAIAgID+gAGA/oABgP6AAoD+gAGA/YCAgP8AgAAAAwAAAAACgAKAAAcACwATAAARIRUjFSM1IQUzFSsBMxUhFSE1MwKAgID+gAEAgICAgAGA/YCAAoCAgICAgICAgAAAAAADAAAAAAIAA4AABQAJAA8AABMhFSERKwEzFSM7AREhFSGAAYD/AICAgICAgAEA/oADgID/AID/AIAAAAACAQAAAAGAA4AAAwAHAAABMxEjFTMRIwEAgICAgAOA/oCA/oAAAAAAAwAAAAACAAOAAAUACQAPAAARIREjESEBMxUrATMRITUhAYCA/wABgICAgID+gAEAA4D+gAEA/wCA/oCAAAAAAAQAAAIAAgADAAADAAcACwAPAAATMxUjJTMVIyEzFSMlMxUjgICAAQCAgP6AgIABAICAAwCAgICAgIAAAAAAGAEmAAEAAAAAAAAAAwAIAAEAAAAAAAEADAAmAAEAAAAAAAIABwBDAAEAAAAAAAMADABlAAEAAAAAAAQAFACcAAEAAAAAAAUACwDJAAEAAAAAAAYACwDtAAEAAAAAAAkAGAErAAEAAAAAAAoAJQGQAAEAAAAAAA0AGwHuAAEAAAAAAA4ANAJ0AAEAAAAAABMAGQLfAAMAAQQJAAAABgAAAAMAAQQJAAEAGAAMAAMAAQQJAAIADgAzAAMAAQQJAAMAGABLAAMAAQQJAAQAKAByAAMAAQQJAAUAFgCxAAMAAQQJAAYAFgDVAAMAAQQJAAkAMAD5AAMAAQQJAAoASgFEAAMAAQQJAA0ANgG2AAMAAQQJAA4AaAIKAAMAAQQJABMANAKpACgAYwApAAAoYykAAEsAaQB0AGMAaABlAG4AIABTAGkAbgBrAABLaXRjaGVuIFNpbmsAAFIAZQBnAHUAbABhAHIAAFJlZ3VsYXIAAEsAaQB0AGMAaABlAG4AIABTAGkAbgBrAABLaXRjaGVuIFNpbmsAAEsAaQB0AGMAaABlAG4AIABTAGkAbgBrACAAUgBlAGcAdQBsAGEAcgAAS2l0Y2hlbiBTaW5rIFJlZ3VsYXIAAFYAZQByAHMAaQBvAG4AIAAxAC4AMgAAVmVyc2lvbiAxLjIAAEsAaQB0AGMAaABlAG4AUwBpAG4AawAAS2l0Y2hlblNpbmsAAFIAZQB0AHIAbwBzAGgAYQByAGsAIABhAG4AZAAgAFAAbwBsAHkAZAB1AGMAawBzAABSZXRyb3NoYXJrIGFuZCBQb2x5ZHVja3MAAEEAIAA2AHgAOAAgAG0AbwBuAG8AcwBwAGEAYwBlACAAZgBvAG4AdAAgAGYAbwByACAAdABlAHgAdABtAG8AZABlACAAYQByAHQAAEEgNng4IG1vbm9zcGFjZSBmb250IGZvciB0ZXh0bW9kZSBhcnQAAEMAbwBtAG0AZQByAGMAaQBhAGwAIAB3AGkAdABoACAAYQB0AHQAcgBpAGIAdQB0AGkAbwBuAABDb21tZXJjaWFsIHdpdGggYXR0cmlidXRpb24AAGgAdAB0AHAAcwA6AC8ALwBwAG8AbAB5AGQAdQBjAGsAcwAuAGkAdABjAGgALgBpAG8ALwBrAGkAdABjAGgAZQBuAC0AcwBpAG4AawAtAHQAZQB4AHQAbQBvAGQAZQAtAGYAbwBuAHQAAGh0dHBzOi8vcG9seWR1Y2tzLml0Y2guaW8va2l0Y2hlbi1zaW5rLXRleHRtb2RlLWZvbnQAAFQAZQB4AHQAbQBvAGQAZQAgAGEAcgB0ACAAaQBzACAAdABoAGUAIABiAGUAcwB0ACEmOgAAVGV4dG1vZGUgYXJ0IGlzIHRoZSBiZXN0IQAAAAMAAAAAAAAAZgAzAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAB//8AAgAAAAEAAAAA2WhiNQAAAAB8U3hjAAAAAHxTeGM=\n\n========\nOBJECTS\n========\n\nBackground .\nWhite #eee\n000001\n000001\n000001\n000001\n000001\n111111\n\nUndrawable X\nWhite\n\nPlayer \nPink\n\nClick\ntransparent\n\nDrag\ntransparent\n\nEraserClick\ntransparent\n\nEraserDrag\ntransparent\n\nCursor\n#ff0000BB\n00..00\n0....0\n......\n......\n0....0\n00..00\n\nTrail\ntransparent\n\nEraserCursor\n#ff0000BB\n0.0.0.\n.....0\n0.....\n.....0\n0.....\n.0.0.0\n\nEraserTrail\ntransparent\n\nTree \ngray\n.0000.\n000000\n000000\n000000\n000000\n.0000.\n\nLineL A\ndarkgray\n......\n......\n000...\n000...\n......\n......\n\nLineR D\ndarkgray\n......\n......\n...000\n...000\n......\n......\n\nLineU Z\ndarkgray\n..00..\n..00..\n..00..\n......\n......\n......\n\nLineD S\ndarkgray\n......\n......\n......\n..00..\n..00..\n..00..\n\nDot\n#ffbbbb\n......\n......\n..00..\n..00..\n......\n......\n\nZero\nred\n.000..\n.0.0..\n.0.0..\n.0.0..\n.000..\n......\n\nOne\nred\n..0...\n.00...\n..0...\n..0...\n.000..\n......\n\nTwo\nred\n.000..\n...0..\n.000..\n.0....\n.000..\n......\n\nThree\nred\n.000..\n...0..\n..00..\n...0..\n.000..\n......\n\nFour\nred\n.0.0..\n.0.0..\n.000..\n...0..\n...0..\n......\n\nFive\nred\n.000..\n.0....\n.000..\n...0..\n.000..\n......\n\nSix\nred\n.000..\n.0....\n.000..\n.0.0..\n.000..\n......\n\nZeroCount\ntransparent\n\nOneCount\ntransparent\n\nTwoCount\ntransparent\n\nThreeCount\ntransparent\n\nFourCount\ntransparent\n\nFiveCount\ntransparent\n\nSixCount\ntransparent\n\nExcessCount\ntransparent\n\nDownChecker\nlightred\n......\n......\n......\n......\n......\n000000\n\nRightChecker\nlightred\n.....0\n.....0\n.....0\n.....0\n.....0\n.....0\n\nValidHint\nyellow\n\nError\nRed\n0....0\n.0..0.\n..00..\n..00..\n.0..0.\n0....0\n\nDownCrawler\ntransparent\n\nRightCrawler\ntransparent\n\nInit\ntransparent\n\nWinMarker\n#004400\n......\n....0.\n...0..\n0.0...\n.0....\n......\n\nWipeInitialLines\ntransparent\n\nLineCrawler copy:Background\n#eeeeee #ffffff\n\nCrawledTile copy:Background\n#eeeeee #ffffff\n\nEndOfRoot\nWhite\n0.0.0.\n.0.0.0\n0.0.0.\n.0.0.0\n0.0.0.\n.0.0.0\n\n=======\nLEGEND\n=======\n\nHorLine = LineL or LineR\nVerLine = LineU or LineD\nLine = HorLine or VerLine\n\nNumber = Zero or One or Two or Three or Four or Five or Six\nCounters = ZeroCount or OneCount or TwoCount or ThreeCount or FourCount or FiveCount or SixCount or ExcessCount\n\nCheckers = DownChecker or RightChecker\nCrawlers = RightCrawler or DownCrawler\n\nSprouters = Tree or EndOfRoot\nValidation = LineCrawler or CrawledTile\n\n/ = RightChecker and Undrawable\n\\ = DownChecker and Undrawable\nP = WipeInitialLines and Undrawable\n\n| = LineU and LineD\n- = LineL and LineR\nJ = LineU and LineL\nL = LineU and LineR\n? = LineD and LineL\nF = LineD and LineR\nB = Tree and LineL and LineR and LineD and Undrawable\n\nG = EndOfRoot and LineL and Undrawable\nN = EndOfRoot and LineR and Undrawable\nM = EndOfRoot and LineU and Undrawable\nV = EndOfRoot and LineD and Undrawable\nQ = EndOfRoot and LineL and LineR and Undrawable\nW = EndOfRoot and LineU and LineD and Undrawable\n\n=======\nSOUNDS\n=======\n\nsfx0 63127107 (Cursor placed)\nsfx1 59001707 (Eraser placed)\nsfx2 63689304 (Line drawn)\nsfx3 34279704 (Erasing)\nendlevel 14297108 (Win!)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nUndrawable\n\nLineCrawler\nCrawledTile\n\nTree\nLineL\nLineR\nLineU\nLineD\nDot\nPlayer\n\nEndOfRoot\n\nValidHint\nCheckers\nNumber\n\nCounters\nRightCrawler\nDownCrawler\n\nCursor\nTrail\nEraserCursor\nEraserTrail\n\nClick\nDrag\nEraserClick\nEraserDrag\nInit\nError\nWinMarker\nWipeInitialLines\n\n======\nRULES\n======\n\n(Win?)\n[WinMarker] -> [WinMarker] win (Whoo!)\n\n(First turn?)\nrandom [Background] -> [Background Init]\n[Init] [Cursor] -> [] [Cursor]\n[Init] [EraserCursor] -> [] [EraserCursor]\n\n(Prepare input)\n[Click] -> [Click] sfx0\n[Click] [Cursor] -> [Click] []\n[Click] [Trail] -> [Click] []\n[Click] [EraserCursor] -> [Click] []\n[Click] [EraserTrail] -> [Click] []\n\n[EraserClick] -> [EraserClick] sfx1\n[EraserClick] [EraserCursor] -> [EraserClick] []\n[EraserClick] [EraserTrail] -> [EraserClick] []\n[EraserClick] [Cursor] -> [EraserClick] []\n[EraserClick] [Trail] -> [EraserClick] []\n\n(Drawing)\n[Click] -> [Cursor Trail] sfx0 nosave\n[Cursor] [Trail | Drag] -> [> Cursor ] [ | Trail]\n\nleft [left Cursor no Undrawable no LineL | no Undrawable no LineR ] -> [left Cursor LineL | LineR] sfx2\nright [right Cursor no Undrawable no LineR | no Undrawable no LineL] -> [right Cursor LineR | LineL] sfx2\n\nup [up Cursor no Undrawable no LineU | no Undrawable no LineD ] -> [up Cursor LineU | LineD] sfx2\ndown [down Cursor no Undrawable no LineD | no Undrawable no LineU ] -> [down Cursor LineD | LineU] sfx2\n\n(Erasing)\n[EraserClick] -> [EraserCursor EraserTrail] sfx0 nosave\n[EraserCursor] [EraserTrail | EraserDrag] -> [> EraserCursor ] [ | EraserTrail]\n\nleft [left EraserCursor no Undrawable LineL | no Undrawable LineR ] -> [left EraserCursor | ] sfx3\nright [right EraserCursor no Undrawable LineR | no Undrawable LineL ] -> [right EraserCursor | ] sfx3\n\nup [up EraserCursor no Undrawable LineU | no Undrawable LineD ] -> [up EraserCursor | ] sfx3\ndown [down EraserCursor no Undrawable LineD | no Undrawable LineU] -> [down EraserCursor | ] sfx3\n\n(Cleanup)\n[Drag] -> []\n[EraserDrag] -> []\n[Error] -> []\n\n(Mark 90 degree corners and splits)\n[Dot] -> []\n\n[LineL LineU LineD no Tree] -> [LineL LineU LineD Error]\n[LineL LineR LineD no Tree] -> [LineL LineR LineD Error]\n[LineL LineR LineU no Tree] -> [LineL LineR LineU Error]\n[LineU LineD LineR no Tree] -> [LineU LineD LineR Error]\n\n[HorLine VerLine no Error] -> [HorLine VerLine Dot]\n\n(Counting)\n[ValidHint] -> []\n[Counters] -> []\n\n[RightChecker] -> [RightChecker RightCrawler]\n[DownChecker] -> [DownChecker DownCrawler]\n\nright [RightCrawler | ] -> [ | RightCrawler]\n+ down [DownCrawler | ] -> [ | DownCrawler]\n+ right [Checkers | ... | RightCrawler Dot] -> [action Checkers | ... | RightCrawler Dot]\n+ down [Checkers | ... | DownCrawler Dot] -> [action Checkers | ... | DownCrawler Dot]\n+ [action Checkers no Counters] -> [stationary Checkers OneCount]\n+ [action Checkers OneCount] -> [stationary Checkers TwoCount]\n+ [action Checkers TwoCount] -> [stationary Checkers ThreeCount]\n+ [action Checkers ThreeCount] -> [stationary Checkers FourCount]\n+ [action Checkers FourCount] -> [stationary Checkers FiveCount]\n+ [action Checkers FiveCount] -> [stationary Checkers SixCount]\n+ [action Checkers SixCount] -> [stationary Checkers ExcessCount]\n+ [action Checkers ExcessCount] -> [stationary Checkers ExcessCount]\n\n[Crawlers] -> []\n\n[Zero no Counters no ValidHint] -> [Zero ValidHint]\n[One OneCount no ValidHint] -> [One OneCount ValidHint]\n[Two TwoCount no ValidHint] -> [Two TwoCount ValidHint]\n[Three ThreeCount no ValidHint] -> [Three ThreeCount ValidHint]\n[Four FourCount no ValidHint] -> [Four FourCount ValidHint]\n[Five FiveCount no ValidHint] -> [Five FiveCount ValidHint]\n[Six SixCount no ValidHint] -> [Six SixCount ValidHint]\n\n(VALIDATION)\nrandom [WipeInitialLines] -> [WipeInitialLines WinMarker]\n[WinMarker] [Error] -> [] [Error]\n[WinMarker] [Init] -> [] [Init]\n\n[CrawledTile] -> []\n[LineCrawler] -> []\n\nright [WinMarker] [Tree LineR | ] -> [WinMarker] [Tree LineR | LineCrawler]\nleft [WinMarker] [Tree LineL | ] -> [WinMarker] [Tree LineL | LineCrawler]\ndown [WinMarker] [Tree LineD | ] -> [WinMarker] [Tree LineD | LineCrawler]\nup [WinMarker] [Tree LineU | ] -> [WinMarker] [Tree LineU | LineCrawler]\n\ndown [LineCrawler LineD | no CrawledTile no Tree] -> [CrawledTile LineD | LineCrawler]\n+ up [LineCrawler LineU | no CrawledTile no Tree] -> [CrawledTile LineU | LineCrawler]\n+ left [LineCrawler LineL | no CrawledTile no Tree] -> [CrawledTile LineL | LineCrawler]\n+ right [LineCrawler LineR | no CrawledTile no Tree] -> [CrawledTile LineR | LineCrawler]\n\n(Is there only one line object on the tiles the linecrawlers end on?)\n[WinMarker] [Tree] [LineCrawler LineL LineU] -> [] [Tree Error] [LineCrawler LineL LineU]\n[WinMarker] [Tree] [LineCrawler LineR LineU] -> [] [Tree Error] [LineCrawler LineR LineU]\n[WinMarker] [Tree] [LineCrawler LineR LineD] -> [] [Tree Error] [LineCrawler LineR LineD]\n[WinMarker] [Tree] [LineCrawler LineL LineD] -> [] [Tree Error] [LineCrawler LineL LineD]\n[WinMarker] [Tree] [LineCrawler LineL LineR] -> [] [Tree Error] [LineCrawler LineL LineR]\n[WinMarker] [Tree] [LineCrawler LineU LineD] -> [] [Tree Error] [LineCrawler LineU LineD]\n\n[WinMarker] [Background no Undrawable no Line] -> [] [Background]\n[WinMarker] [Background no Undrawable no Validation] -> [] [Background]\n[WinMarker] [Number no ValidHint] -> [] [Number]\n\n(Finish initialization)\n[Init] [Checkers no Number no Counters] -> [Init] [Checkers Zero]\n[Init] [Checkers no Number OneCount] -> [Init] [Checkers One]\n[Init] [Checkers no Number TwoCount] -> [Init] [Checkers Two]\n[Init] [Checkers no Number ThreeCount] -> [Init] [Checkers Three]\n[Init] [Checkers no Number FourCount] -> [Init] [Checkers Four]\n[Init] [Checkers no Number FiveCount] -> [Init] [Checkers Five]\n[Init] [Checkers no Number SixCount] -> [Init] [Checkers Six]\n\n[Init] [WipeInitialLines] [Line no Sprouters] -> [Init] [WipeInitialLines] []\n[Init] [Dot] -> [Init] []\n[Init] [Validation] -> [Init] []\n[Init] [ValidHint] -> [Init] []\n\n(Generate lines out of trees)\nright [Sprouters LineR | ] -> [Sprouters LineR | LineL]\nleft [Sprouters LineL | ] -> [Sprouters LineL | LineR]\ndown [Sprouters LineD | ] -> [Sprouters LineD | LineU]\nup [Sprouters LineU | ] -> [Sprouters LineU | LineD]\n\n[Init] -> []\n\n==============\nWINCONDITIONS\n==============\n(Handled via rules)\n\n=======\nLEVELS\n=======\n\nsection Explanation\nmessage 1/4: Round circles are trees. Roots can branch from this point. You can't add roots here yourself.\nmessage 2/4: Place one root (drawn as lines) on each tile. Roots can either be straight or a 90 degree turn. All roots must connect to the tree. (Three- or four-way crossings are not allowed.)\nmessage Controls: Drag left mouse button to place lines, drag right mouse button to remove them. [Z] to undo, [R] to restart.\n\nsection Tutorial 1\npxxxxxx\nx..b..x\nx.x.x.x\nx.x.x.x\nx.x.x.x\nx.x.x.x\nxxxxxxx\n\nsection Tutorial 2\nmessage 3/4: All roots must finish with a dead end: they cannot connect to other roots. (Sometimes, roots may already placed.)\nMessage 4/4: Rows or columns with a number must contain exactly that amount of 90 degree turns, marked with the red dots. (The tree also counts as a dot.)\nxxxxxxxx\nxxxxxxxx\nxxp\\\\\\xx\nxx/fbaxx\nxx/|l?xx\nxx/lazxx\nxxxxxxxx\nxxxxxxxx\n\nmessage Explanation complete, good luck with the rest of the game!\n\nsection [3x4] Bonsai\nmessage 1/10: Bonsai\nxxxxxxx\nxP\\\\\\\\x\nx/sfb?x\nx/lj||x\nx/d-jzx\nxxxxxxx\n\nsection [4x4] Conifer\nmessage 2/10: Conifer\nxxxxxxx\nxp\\\\\\\\x\nx/fb-?x\nx/|l?|x\nx/l?||x\nx/djzzx\nxxxxxxx\n\nsection [4x4] Pine\nmessage 3/10: Pine\nxxxxxxx\nxp\\\\\\\\x\nx/fb-?x\nx/||s|x\nx/||ljx\nx/zl-ax\nxxxxxxx\n\nsection [5x5] Cypress\nmessage 4/10: Cypress\nxxxxxxxx\nxp\\\\\\\\\\x\nx/n---?x\nx/f--?|x\nx/|fbj|x\nx/|zl-jx\nx/l---gx\nxxxxxxxx\n\nsection [5x5] Cedar\nmessage 5/10: Cedar\nxxxxxxxx\nxp\\\\\\\\\\x\nx/f---?x\nx/|f-a|x\nx/|lb-jx\nx/|djf?x\nx/l--jmx\nxxxxxxxx\n\nsection [5x5] Redwood\nmessage 6/10: Redwood\nxxxxxxxx\nxp\\\\\\\\\\x\nx/f-b-?x\nx/|fjv|x\nx/||fj|x\nx/|ljs|x\nx/l-aljx\nxxxxxxxx\n\nsection [5x5] Sequoia\nmessage 7/10: Sequoia\nxxxxxxxx\nxp\\\\\\\\\\x\nx/f--?sx\nx/|fam|x\nx/|l-?|x\nx/|fbj|x\nx/ljl-jx\nxxxxxxxx\n\nsection [5x5] Maple\nmessage 8/10: Maple\nxxxxxxxx\nxp\\\\\\\\\\x\nx/f-b-?x\nx/|fjfjx\nx/||slgx\nx/||l-?x\nx/zl--jx\nxxxxxxxx\n\nsection [5x6] Alder\nmessage 9/10: Alder\nxxxxxxxx\nxp\\\\\\\\\\x\nx/d---?x\nx/d--?|x\nx/d-?||x\nx/fbj||x\nx/|l-j|x\nx/l---jx\nxxxxxxxx\n\nsection [6x6] Aralia\nmessage 10/10: Aralia\nxxxxxxxxx\nxP\\\\\\\\\\\\x\nx/fb-?f?x\nx/||vlj|x\nx/|ljf?|x\nx/|f-j||x\nx/ljf-j|x\nx/n-jn-jx\nxxxxxxxxx\n\nmessage You've beaten the last normal puzzle, great job!\n\nsection Credits\n\nmessage Game by Tom Hermans for Ludum Dare 48. Kitchen Sink font by Retroshark and Polyducks. Thanks for playing!\n\nsection [6x6] Oleander\nmessage Extra 1/4: Oleander\nxxxxxxxxx\nxp\\\\\\\\\\\\x\nx/f----?x\nx/l-gf-jx\nx/fgfjf?x\nx/|fjnj|x\nx/|l-b?|x\nx/l--jljx\nxxxxxxxxx\n\nsection [7x5] Shrub\nmessage Extra 2/4: Shrub\nxxxxxxxxxx\nxp\\\\\\\\\\\\\\x\nx/f-----?x\nx/|f---?|x\nx/||fb?||x\nx/|lj|zz|x\nx/l-gl--jx\nxxxxxxxxxx\n\nsection [7x6] Oak\nmessage Extra 3/4: Oak\nxxxxxxxxxx\nxp\\\\\\\\\\\\\\x\nx/f?f---?x\nx/|ljf?v|x\nx/|f-jlj|x\nx/||fb--jx\nx/|lj|n-?x\nx/l-gl--jx\nxxxxxxxxxx\n\nsection [7x7] Yggdrasil\nmessage Extra 4/4: Yggdrasil\nxxxxxxxxxx\nxp\\\\\\\\\\\\\\x\nx/f-----?x\nx/|vf?f?|x\nx/|ljlj||x\nx/l--b-j|x\nx/f-?|n?|x\nx/|vwl-j|x\nx/ljl---jx\nxxxxxxxxxx\n\nmessage You've beaten the final extra puzzle, congrats!\n",[],"background undrawable:0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n0,0,background undrawable wipeinitiallines:1,background rightchecker two undrawable:2,2,background one rightchecker undrawable:3,0,0,\n0,0,background downchecker two undrawable:4,background liner:5,background:6,6,0,0,\n0,0,4,background lined linel liner tree undrawable:7,background lineu:8,6,0,0,\n0,0,background downchecker one undrawable:9,background linel:10,6,6,0,0,\n0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,\n","6","1676840368608.135"] + ], + + + [ + "Sokotron", + ["title Sokotron\nauthor Tom H.\nhomepage www.auroriax.com\n\nmouse_left Click\nmouse_right RClick\n\nrun_rules_on_level_start\n\nagain_interval .1\nrealtime_interval .5\n\nsprite_size 10\n\nbackground_color #151244\ntext_color #f9cb60 \n\n========\nOBJECTS\n========\n\nbackground .\n#350828\n\nplayer\ngreen\n\nwall #\n#680703\n\nRobot1Start\n#7f6962 transparent\n...0000...\n..001100..\n..011100..\n..001100..\n0000110000\n0000110000\n0.011110.0\n..000000..\n..00..00..\n..00..00..\n\nRobot1Down\n#922a95 #60117f\n...0000...\n..000000..\n..011110..\n..011110..\n0000000000\n0000000000\n0.000000.0\n..000000..\n..00..00..\n..00..00..\n\nRobot1Left\n#922a95 #60117f\n..00000...\n..000000..\n..111000..\n..111000..\n0000000000\n.000000000\n..000000..\n..000000..\n..00..00..\n.000.000..\n\nRobot1Up\n#922a95 #60117f\n..000000..\n..000000..\n..000000..\n0.000000.0\n0000000000\n0000000000\n..001100..\n..000000..\n..00..00..\n..00..00..\n\nRobot1Right\n#922a95 #60117f\n...00000..\n..000000..\n..000111..\n..000111..\n0000000000\n000000000.\n..000000..\n..000000..\n..00..00..\n..000.000.\n\nRobot2Start\n#7f6962 transparent\n...0000...\n..001100..\n..011110..\n..000110..\n0000110000\n0001100000\n0.011110.0\n..000000..\n..00..00..\n..00..00..\n\n\nRobot2Down copy:Robot1Down\n#922a95 #f9960f\n\nRobot2Left copy:Robot1Left\n#922a95 #f9960f\n\nRobot2Up copy:Robot1Up\n#922a95 #f9960f\n\nRobot2Right copy:Robot1Right\n#922a95 #f9960f\n\nControl1\n#7f6962\n..........\n....00....\n...000....\n..0000....\n....00....\n....00....\n....00....\n....00....\n..000000..\n..........\n\nControl2\n#7f6962\n..........\n...0000...\n..00..00..\n......00..\n.....000..\n....000...\n...000....\n..000.....\n..000000..\n..........\n\nCommandPanelR\ntransparent #f9960f\n0000000000\n0000000000\n0000011000\n0000011100\n0111111110\n0111111110\n0000011100\n0000011000\n0000000000\n0000000000\n\nCommandPanelU\ntransparent #f9960f\n0000000000\n0000110000\n0001111000\n0011111100\n0011111100\n0000110000\n0000110000\n0000110000\n0000110000\n0000000000\n\nCommandPanelL\ntransparent #f9960f\n0000000000\n0000000000\n0001100000\n0011100000\n0111111110\n0111111110\n0011100000\n0001100000\n0000000000\n0000000000\n\nCommandPanelD\ntransparent #f9960f\n0000000000\n0000110000\n0000110000\n0000110000\n0000110000\n0011111100\n0011111100\n0001111000\n0000110000\n0000000000\nYoyo\n#7f6962\n..........\n..........\n....00....\n...000....\n..0000....\n..0000....\n...000....\n....00....\n..........\n..........\n\nInit\ntransparent\n\nClick\ntransparent\n\nRClick\ntransparent\n\nPlayIdle\n#be7dbc #7f6962 \n..0000....\n..00000...\n..000000..\n..000000..\n..000000..\n..000000..\n..000001..\n..000011..\n..11111...\n..1111....\n\nPlayActive\n#f9960f\n..........\n..........\n..0000....\n..00000...\n..000000..\n..000000..\n..000000..\n..000000..\n..00000...\n..0000....\n\n\nActionToken\npink\n\nBreakpoint1R\n#922a95\n00......00\n00......00\n........00\n........00\n........00\n........00\n........00\n........00\n00......00\n00......00\n\nBreakpoint1L\n#922a95\n00......00\n00......00\n00........\n00........\n00........\n00........\n00........\n00........\n00......00\n00......00\n\nBreakpoint2R copy:Breakpoint1R\n#922a95\n\nBreakpoint2L copy:Breakpoint1L\n#922a95\n\nCrateStart O\n#922a95 #60117f\n..........\n.0......0.\n..........\n..1.1..1..\n..1.11.1..\n..1.1.11..\n..1.1..1..\n..........\n.0......0.\n..........\n\nCrate\n#f9cb60\n..000000..\n.00000000.\n00......00\n00......00\n00......00\n00......00\n00......00\n00......00\n.00000000.\n..000000..\n\nGoal G\n#922a95 #60117f\n.00000000.\n0........0\n0.111.1.10\n0.1.1.1.10\n0.111.1110\n0........0\n0...111..0\n0....1...0\n0....1...0\n.00000000.\n\nCmdBlocker\n#7f6962 \n..........\n.00....00.\n.000..000.\n..000000..\n...0000...\n...0000...\n..000000..\n.000..000.\n.00....00.\n..........\n\nLine\n#350828\n...0000...\n...0000...\n....00....\n....00....\n....00....\n....00....\n....00....\n....00....\n....00....\n....00....\n\nLineBot\n#350828\n....00....\n....00....\n....00....\n....00....\n....00....\n....00....\n....00....\n....00....\n..........\n..........\n\nNegativeFeedback copy:PlayIdle\n#f9960f #be7dbc\n\nRobot1MoveCheck\ntransparent\n\nRobot2MoveCheck\ntransparent\n\n=======\nLEGEND\n=======\n\nRobot1 = Robot1Down or Robot1Left or Robot1Up or Robot1Right\nRobot2 = Robot2Down or Robot2Left or Robot2Up or Robot2Right\n\nRobots = Robot1 or Robot2\n\nCommandPanel = CommandPanelR or CommandPanelU or CommandPanelL or CommandPanelD\n\nQ = Control1 and wall\nI = Control2 and wall\nY = Yoyo and wall\n\nControlOrigin = Control1 or Control2\n\nRightBreakpoint = Breakpoint1R or Breakpoint2R\nLeftBreakpoint = Breakpoint1L or Breakpoint2L\n\nBreakpoint1 = Breakpoint1R or Breakpoint1L\nBreakpoint2 = Breakpoint2R or Breakpoint2L\n\nBreakpoint = Breakpoint1 or Breakpoint2\n\n1 = Robot1Start\n2 = Robot2Start\n\nBotStart = Robot1Start or Robot2Start\n\nRobotStart = Robot1Start or Robot2Start\n\nP = PlayIdle and wall and Init\n\nW = Wall and CommandPanelU\nA = Wall and CommandPanelL\nS = Wall and CommandPanelD\nD = Wall and CommandPanelR\n\nL = Line and wall\nB = LineBot and wall\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n(Mandatory)\nbackground\nplayer\n\n(Markers)\nInit\nActionToken\nClick, RClick\nRobot1MoveCheck, Robot2MoveCheck\n\n(Objects)\nRobotStart, CrateStart, Goal\nRobots, Wall, Crate\n\n(Dashboard)\nPlayIdle, PlayActive\nControlOrigin, CommandPanel, Yoyo\nBreakpoint\nCmdBlocker\n\n(Decoration)\nLine, LineBot\nNegativeFeedback\n\n======\nRULES\n======\n\n(Clean up negative feedback)\n[NegativeFeedback] -> []\n\n(Toggle design > execute)\n[Click PlayIdle] -> [PlayActive ActionToken] (QQQ Realtime toggle stuff?)\n\n(Start up execute mode if activated)\nleft [ActionToken] [Control1 | ] -> [ActionToken] [Control1 | Breakpoint1R]\nleft [ActionToken] [Control2 | ] -> [ActionToken] [Control2 | Breakpoint2R]\n[ActionToken] [Robot1Start] -> [ActionToken] [Robot1Start Robot1Down]\n[ActionToken] [Robot2Start] -> [ActionToken] [Robot2Start Robot2Down]\n[ActionToken] [CrateStart] -> [ActionToken] [CrateStart Crate]\n\n[ActionToken] -> []\n\n(Toggle execute > design)\n[Click PlayActive] -> [PlayIdle ActionToken]\n\n[ActionToken] [Breakpoint1] -> [ActionToken] []\n[ActionToken] [Breakpoint2] -> [ActionToken] []\n[ActionToken] [Robot1] -> [ActionToken] []\n[ActionToken] [Robot2] -> [ActionToken] []\n[ActionToken] [Crate] -> [ActionToken] []\n[ActionToken] [CmdBlocker] -> [ActionToken] []\n\n[ActionToken] -> []\n\n(Design mode, change path)\nrandom [background] -> [background ActionToken]\n\n[Click CommandPanelU] [ActionToken] [PlayIdle] -> [CommandPanelL] [] [PlayIdle]\n[Click CommandPanelL] [ActionToken] [PlayIdle] -> [CommandPanelD] [] [PlayIdle]\n[Click CommandPanelD] [ActionToken] [PlayIdle] -> [CommandPanelR] [] [PlayIdle]\n[Click CommandPanelR] [ActionToken] [PlayIdle] -> [CommandPanelU] [] [PlayIdle]\n\n[RClick CommandPanelU] [ActionToken] [PlayIdle] -> [CommandPanelR] [] [PlayIdle]\n[RClick CommandPanelR] [ActionToken] [PlayIdle] -> [CommandPanelD] [] [PlayIdle]\n[RClick CommandPanelD] [ActionToken] [PlayIdle] -> [CommandPanelL] [] [PlayIdle]\n[RClick CommandPanelL] [ActionToken] [PlayIdle] -> [CommandPanelU] [] [PlayIdle]\n\n[ActionToken] -> []\n\n(Mouse Cleanup)\n[Click] [PlayIdle] -> [] [PlayIdle NegativeFeedback] again\n[RClick] -> []\n\n(Execute mode, move the breakpoint!)\n[RightBreakpoint] -> [right RightBreakpoint]\n[LeftBreakpoint] -> [left LeftBreakpoint]\n\n(Execute mode, move the bots)\n[Breakpoint1R CommandPanelR] [Robot1] -> [Breakpoint1R CommandPanelR] [right Robot1Right]\n[Breakpoint1R CommandPanelD] [Robot1] -> [Breakpoint1R CommandPanelD] [down Robot1Down]\n[Breakpoint1R CommandPanelL] [Robot1] -> [Breakpoint1R CommandPanelL] [left Robot1Left]\n[Breakpoint1R CommandPanelU] [Robot1] -> [Breakpoint1R CommandPanelU] [up Robot1Up]\n\n[Breakpoint2R CommandPanelR] [Robot2] -> [Breakpoint2R CommandPanelR] [right Robot2Right]\n[Breakpoint2R CommandPanelD] [Robot2] -> [Breakpoint2R CommandPanelD] [down Robot2Down]\n[Breakpoint2R CommandPanelL] [Robot2] -> [Breakpoint2R CommandPanelL] [left Robot2Left]\n[Breakpoint2R CommandPanelU] [Robot2] -> [Breakpoint2R CommandPanelU] [up Robot2Up]\n\n(Execute mode, Walking back stack, reverse movement)\n[Breakpoint1L CommandPanelR no CmdBlocker] [Robot1] -> [Breakpoint1L CommandPanelR] [left Robot1Right]\n[Breakpoint1L CommandPanelD no CmdBlocker] [Robot1] -> [Breakpoint1L CommandPanelD] [up Robot1Down]\n[Breakpoint1L CommandPanelL no CmdBlocker] [Robot1] -> [Breakpoint1L CommandPanelL] [right Robot1Left]\n[Breakpoint1L CommandPanelU no CmdBlocker] [Robot1] -> [Breakpoint1L CommandPanelU] [down Robot1Up]\n\n[Breakpoint2L CommandPanelR no CmdBlocker] [Robot2] -> [Breakpoint2L CommandPanelR] [left Robot2Right]\n[Breakpoint2L CommandPanelD no CmdBlocker] [Robot2] -> [Breakpoint2L CommandPanelD] [up Robot2Down]\n[Breakpoint2L CommandPanelL no CmdBlocker] [Robot2] -> [Breakpoint2L CommandPanelL] [right Robot2Left]\n[Breakpoint2L CommandPanelU no CmdBlocker] [Robot2] -> [Breakpoint2L CommandPanelU] [down Robot2Up]\n\n(Execute, cleanup blockers)\n[LeftBreakpoint CmdBlocker] -> [LeftBreakpoint]\n\n(Execute mode, Robots push crates)\n[> Robots | stationary Crate] -> [> Robots | > Crate]\n([> Crate | Crate] -> [> Crate | > Crate])\n([> Crate | BotStart] -> [Crate | BotStart] QQQ Really need this? )\n\n(Execute, Mark robots current position)\n[Robot1] -> [Robot1 Robot1MoveCheck]\n[Robot2] -> [Robot2 Robot2MoveCheck]\n\n(MOVEMENT HAPPENS HERE)\n\n(Execute, make sure if movement is blocked when going to the right gets skipped when going back)\nlate left [Robot1 Robot1MoveCheck] [Breakpoint1R | CommandPanel] -> [Robot1] [Breakpoint1R | CmdBlocker CommandPanel]\nlate left [Robot2 Robot2MoveCheck] [Breakpoint2R | CommandPanel] -> [Robot2] [Breakpoint2R | CmdBlocker CommandPanel]\n\nlate [Robot1MoveCheck] -> []\nlate [Robot2MoveCheck] -> []\n\n(Execute mode, Done moving? Flip breakpoint if at line end. Also make sure robots always end up as their starting position after completing all commands to catch any edge cases)\nlate left [Breakpoint1R Yoyo | ] -> [Yoyo | Breakpoint1L]\nlate right [Breakpoint1L ControlOrigin | ] [Robot1] [Robot1Start] -> [ControlOrigin | Breakpoint1R ] [] [Robot1Start Robot1]\n\nlate left [Breakpoint2R Yoyo | ] -> [Yoyo | Breakpoint2L]\nlate right [Breakpoint2L ControlOrigin | ] [Robot2] [Robot2Start] -> [ControlOrigin | Breakpoint2R ] [] [Robot2Start Robot2]\n\n==============\nWINCONDITIONS\n==============\n\nSome Crate\nAll Crate on Goal\n\n=======\nLEVELS\n=======\n\n....g......\n....o..g...\n...1..oo...\n.....2.....\n....g......\n#########l#\n#qdddddy#b#\n#idddddy#p#\n###########\n\nmessage Congrats!\n\n(Solution:\n\n#qsdwwwy###\n#iddwaay#p#\n\n)\n",["tick","tick"],"background:0,0,0,0,0,background wall:1,1,1,1,0,0,\n0,0,0,1,background control1 wall:2,background control2 wall:3,1,0,0,0,0,\n0,1,background commandpanelr wall:4,4,1,0,0,background robot1start:5,0,0,1,\n4,4,1,background goal:6,background cratestart:7,0,0,6,1,4,4,\n1,0,0,0,background robot2start:8,0,1,4,4,1,0,\n0,7,0,0,1,4,4,1,0,6,7,\n0,0,1,background wall yoyo:9,9,1,0,0,0,0,0,\n1,1,1,1,0,0,0,0,0,background line wall:10,background linebot wall:11,\nbackground init playidle wall:12,1,0,0,0,0,0,1,1,1,1,\n",0,"1676840537321.0671"] + ], + + + + [ + "Mouse Dragging Blocks", + ["title Mouse Dragging Blocks\nauthor Tom H.\nhomepage https://auroriax.github.io/PuzzleScript/Documentation/prelude.html#psplus\n\nverbose_logging (Don't forget to use the visual debugger to see how mouse objects are created at the start of the turn)\n\nmouse_left MouseClick\nmouse_drag MouseDrag\n(We don't use mouse_up here, instead we'll clean up the previous cursor whenever a new mouse_left object is detected. See the Rules.)\n\n========\nOBJECTS\n========\n\nbackground .\n#222\n\n(Even though we're not using it, every game requires a player defined)\nplayer\ngreen\n\nCursor\nblue\n00.00\n0...0\n.....\n0...0\n00.00\n\nDragTarget\nblue\n.....\n.....\n..0..\n.....\n.....\n\nMouseClick\npink\n0...0\n.0.0.\n.....\n.0.0.\n0...0\n\nMouseDrag\npink\n0..0.\n.0.0.\n..00.\n0000.\n.....\n\nBlockA A\nred\n\nBlockB B\norange\n\nBlockC C\ngreen\n\nWall #\n#111\n\nGoalA !\nred #222\n.....\n.111.\n.101.\n.111.\n.....\n\n=======\nLEGEND\n=======\nBlock = BlockA or BlockB or BlockC\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\nbackground\nMouseClick\nMouseDrag\nBlockA, BlockB, BlockC, Wall\nplayer\nGoalA\n\nDragTarget\nCursor\n\n======\nRULES\n======\n\n(Whenever mouse is clicked, create cursor at that position)\n[MouseClick] [Cursor] -> [MouseClick] []\n[MouseClick] [DragTarget] -> [MouseClick] []\n[MouseClick] -> [Cursor DragTarget]\n\n(When mouse is dragged, actually add movement to cursor in this direction)\n[Cursor] [DragTarget | MouseDrag] -> [> Cursor ] [ | DragTarget]\n\n(Pass movement onto block rigidly, so they can't break apart. See documentation on Rigid Bodies for more info.)\nrigid [> Cursor Block] -> [> Cursor > Block]\n+ rigid [moving a | a] -> [moving a | moving a]\n+ rigid [moving b | b] -> [moving b | moving b]\n+ rigid [moving c | c] -> [moving c | moving c]\n\n(Clean up for the start of the next turn, in case these were not cleaned up by the other rules)\n[MouseClick] -> []\n[MouseDrag] -> []\n\n==============\nWINCONDITIONS\n==============\n\nall BlockA on GoalA\n\n=======\nLEVELS\n=======\n\n#########\n#.....!!#\n#.aa..!.#\n#.a.b...#\n#...b...#\n#..cbc..#\n#..ccc..#\n#.......#\n#########\n",[],"background wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,1,1,0,\n0,1,background blocka:2,2,1,1,1,1,0,\n0,1,2,1,1,background blockc:3,3,1,0,\n0,1,1,background blockb:4,4,4,3,1,0,\n0,1,1,1,1,3,3,1,0,\n0,background goala:5,5,1,1,1,1,1,0,\n0,5,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,\n",0,"1676840450155.3018"] + ], + + + [ + "Nonogram", + ["title Nonogram\nauthor BoredMatt\nhomepage https://boredmatt.itch.io\n\nbackground_color white\ntext_color black\nsprite_size 8\n\nnoundo\n\nrun_rules_on_level_start\n\nmouse_left Click_L\nmouse_right Click_R\nmouse_drag Drag_L\nmouse_rdrag Drag_R\nmouse_up MouseUp_L\nmouse_rup MouseUp_R\n\n========\nOBJECTS\n========\n\nBackground\nwhite\n\nOne\nblack\n........\n...0....\n..00....\n...0....\n...0....\n..000...\n........\n........\n\nTwo\nblack\n........\n..000...\n....0...\n..000...\n..0.....\n..000...\n........\n........\n\nThree\nblack\n........\n..000...\n....0...\n...00...\n....0...\n..000...\n........\n........\n\nFour\nblack\n........\n..0.0...\n..0.0...\n..000...\n....0...\n....0...\n........\n........\n\nFive\nblack\n........\n..000...\n..0.....\n..000...\n....0...\n..000...\n........\n........\n\nSix\nblack\n........\n..000...\n..0.....\n..000...\n..0.0...\n..000...\n........\n........\n\nBorder_R\ngray\n.......0\n.......0\n.......0\n.......0\n.......0\n.......0\n.......0\n.......0\n\nBorder_D\ngray\n........\n........\n........\n........\n........\n........\n........\n00000000\n\nFull_Cell\nblack\n0000000.\n0000000.\n0000000.\n0000000.\n0000000.\n0000000.\n0000000.\n........\n\nEmpty_Mark\nred\n........\n.0...0..\n..0.0...\n...0....\n..0.0...\n.0...0..\n........\n........\n\nCell\ntransparent\n\nClick_L\ntransparent\n\nClick_R\ntransparent\n\nDrag_L\ntransparent\n\nDrag_R\ntransparent\n\nMouseUp_L\ntransparent\n\nMouseUp_R\ntransparent\n\nFill\ntransparent\n\nErase\ntransparent\n\nSquare\ntransparent\n\nPlayer\ntransparent\n\n=======\nLEGEND\n=======\n\nHint = One or Two or Three or Four or Five or Six\nClick = Click_L or Click_R\nDrag = Drag_L or Drag_R\nMouseUp = MouseUp_L or MouseUp_R\n\n- = Background\n. = Cell\n1 = One\n2 = Two\n3 = Three\n4 = Four\n5 = Five\n6 = Six\n# = Cell and Square\n\n=======\nSOUNDS\n=======\n\nendlevel 8778703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFill, Erase\n\nClick_L\nClick_R\nDrag_L\nDrag_R\nMouseUp_L\nMouseUp_R\n\nCell\nBorder_R\nBorder_D\nHint, Full_Cell, Empty_Mark\nSquare\nPlayer\n\n======\nRULES\n======\n\n(draw the grid)\nleft [Cell|] -> [Cell Border_R|Border_R]\nup [Cell|] -> [Cell Border_D|Border_D]\nleft [Border_D|] -> [Border_D|Border_D]\nup [Border_R|] -> [Border_R|Border_R]\n\n(exit fill or erase mode on mouse up event, delete the event)\n[MouseUp][Fill] -> [][]\n[MouseUp][Erase] -> [][]\n(ignore click or drag outside of the grid)\n[Click no Cell] -> []\n[Drag no Cell] -> []\n\n(enter fill or erase mode on click event, delete the event)\n[Cell Click_L no Full_Cell] -> [Cell Full_Cell Fill]\n[Cell Click_L Full_Cell] -> [Cell Erase]\n[Cell Click_R no Empty_Mark] -> [Cell Empty_Mark Fill]\n[Cell Click_R Empty_Mark] -> [Cell Erase]\n\n(fill or erase the cell depending on the mode on drag event, delete the event)\n[Drag_L][Fill] -> [Full_Cell][Fill]\n[Drag_R][Fill] -> [Empty_Mark][Fill]\n[Drag][Erase] -> [no Full_Cell no Empty_Mark][Erase]\n\n==============\nWINCONDITIONS\n==============\n\nall Square on Full_Cell\nall Full_Cell on Square\n\n=======\nLEVELS\n=======\n\n--15451\n-3.###.\n-3.###.\n-5#####\n-3.###.\n11.#.#.\n\n------11----\n------221---\n---23122264-\n-6..######..\n22.##....##.\n22.##....##.\n-2.......##.\n-3......###.\n-4....####..\n-2....##....\n--..........\n-2....##....\n-2....##....\n\n",[],"background:0,0,background border_d:1,1,background border_d two:2,2,1,1,1,1,1,1,\n1,background border_r:3,3,background border_d border_r:4,background border_d border_r six:5,background border_d border_r two:6,6,6,background border_d border_r three:7,background border_d border_r four:8,6,4,\n6,6,3,3,4,background border_d border_r cell:9,9,9,9,9,9,9,\n9,9,9,3,3,6,9,background border_d border_r cell square:10,10,9,9,9,\n9,9,9,9,3,3,7,10,10,10,9,9,\n9,9,9,9,9,3,3,background border_d border_r one:11,10,9,9,9,\n9,9,9,9,9,9,background border_r one:12,background border_r two:13,6,10,9,9,\n9,9,10,10,9,10,10,12,13,6,10,9,\n9,9,9,10,10,9,10,10,3,12,6,10,\n9,9,9,10,10,9,9,9,9,3,3,5,\n10,10,10,10,10,10,9,9,9,9,3,3,\n8,9,10,10,10,10,9,9,9,9,9,3,\n3,4,9,9,9,9,9,9,9,9,9,9,\n",1,"1676840465259.935"] + ], + + + + [ + "Sprite Cloning Example", + ["title Sprite Cloning Example\nauthor Tom Hermans [@Auroriax]\nhomepage https://auroriax.github.io/PuzzleScript/Documentation/objects.html#psplus\n\n========\nOBJECTS\n========\n\nBackground .\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\nBaseParasol P\ndarkgreen transparent brown\n..1..\n.000.\n00000\n..2..\n..2..\n\nBlueParasol B copy:BaseParasol\nblue darkblue brown\n\nRedParasol R copy:BaseParasol\nred darkred darkbrown\n\nPlayer o\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\n=======\nLEGEND\n=======\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, BaseParasol, BlueParasol\nRedParasol\n\n======\nRULES\n======\n\n(No rules, just walk around!)\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.......\n.p.o.r.\n.......\n.r..p..\n...b...\n.....b.\n.......\n\n",[],"background:0,0,0,0,0,0,0,\n0,background baseparasol:1,0,background redparasol:2,0,0,0,\n0,0,0,0,0,0,0,\n0,background player:3,0,0,background blueparasol:4,0,0,\n0,0,0,1,0,0,0,\n0,2,0,0,0,4,0,\n0,0,0,0,0,0,0,\n",0,"1676840485328.1628"] + ], + + +[ + "Runtime Metadata Twiddling v2", + ["title Runtime Metadata Twiddling v2\nauthor Tom H.\nhomepage https://auroriax.github.io/PuzzleScript/Documentation/plus_runtime_metadata_twiddling.html\n\nruntime_metadata_twiddling\nruntime_metadata_twiddling_debug\nrealtime_interval 0.2\n\nlevel_select\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\nPlayerNormal\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n...3.\n\nPlayerBlink\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3...\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\nSlowBtn s\nlightblue white\n00000\n00000\n01110\n00000\n00000\n\nFastBtn f\nred white\n00000\n00100\n01110\n00100\n00000\n\nZoomBtn z\nYellow Black\n00000\n01110\n01010\n01110\n00000\n\nFlickBtn t\nBrown white\n01010\n11111\n01010\n11111\n01010\n\nFastWalkBtn d\nlightbrown white\n00000\n01100\n01100\n01110\n00000\n\nDefaultBtn r\nPink White\n00000\n01100\n01010\n01100\n00000\n\nWipeButton B\nGray White\n00000\n01010\n00100\n01010\n00000\n\nUndoBlockButton U\ndarkgray White\n00000\n01100\n00010\n01100\n00000\n\nLightModeBtn L\nWhite\n\nDarkModeBtn N\nBlack\n\nConveyorRight -\nBlack White\n00000\n00100\n00010\n00100\n00000\n\nConveyorDown /\nlightred White\n00000\n00000\n01010\n00100\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = PlayerNormal\n* = Crate\n@ = Crate and Target\nO = Target\n\nPlayer = PlayerNormal or PlayerBlink\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nConveyorRight, ConveyorDown\nSlowBtn, FastBtn, ZoomBtn, DefaultBtn, FlickBtn, FastWalkBtn, WipeButton, UndoBlockButton, DarkModeBtn, LightModeBtn\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n(Basics)\n[ stationary PlayerNormal] -> [action PlayerBlink]\n[ stationary PlayerBlink] -> [action PlayerNormal]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Crate | Crate ] -> [ > Crate | > Crate ]\n\n(Conveyors: Not all conveyors move as fast)\n[ Player ConveyorRight] -> [right Player ConveyorRight] again again_interval 0.5\n[ Player ConveyorDown] -> [down Player ConveyorDown] again again_interval 0.1\n\n(Buttons)\n[> Player | SlowBtn] -> realtime_interval 0.5\n[> Player | FastBtn] -> realtime_interval 0.1\n\n[> Player | ZoomBtn] -> smoothscreen 5x5\n[> Player | FlickBtn] -> smoothscreen flick 5x5 3x3\n\n[> Player | FastWalkBtn] -> key_repeat_interval 0.05\n\n[> Player | LightModeBtn] -> background_color #DDDDDD\n[> Player | LightModeBtn] -> text_color #222222\n[> Player | LightModeBtn] -> message Light mode enabled!\n\n[> Player | DarkModeBtn] -> background_color #222222\n[> Player | DarkModeBtn] -> text_color #DDDDDD\n[> Player | DarkModeBtn] -> message Dark mode enabled!\n\n[> Player | UndoBlockButton] -> noundo true\n[> Player | UndoBlockButton] -> norestart true\n[> Player | UndoBlockButton] -> message Muhaha, I've stolen your ability to undo and restart!\n\n(Buttons with special meanings)\n(DEFAULT will set the value that this setting was at the beginning of the level)\n[> Player | DefaultBtn] -> realtime_interval default\n[> Player | DefaultBtn] -> key_repeat_interval default\n[> Player | DefaultBtn] -> smoothscreen default\n\n(WIPE will act as if the value was never set & removes it from the metadata)\n[> Player | WipeButton] -> realtime_interval wipe\n[> Player | WipeButton] -> key_repeat_interval wipe\n[> Player | WipeButton] -> smoothscreen wipe\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\nSome Crate\n\n=======\nLEVELS\n=======\n\nsection Testing Grounds\n...............\n.n.l.....----/.\n............./.\n.........s.f./.\n............./.\n.d.....p.......\n...............\n...............\n...............\n.u...z.t...b.r.\n...............\n\nsection Level 1\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nsection Level 2\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\n",["tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick","tick",0,"tick","tick",0,"tick",0,"tick",0,"tick",3,"tick","tick",3,"tick","tick","tick","tick","tick","tick","tick","tick","tick"],"background:0,0,0,0,0,0,0,0,0,0,0,0,background darkmodebtn:1,0,0,\n0,background fastwalkbtn:2,0,0,0,background undoblockbutton:3,0,0,0,0,0,0,0,0,0,\n0,0,0,0,background lightmodebtn:4,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,background zoombtn:5,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,background flickbtn:6,0,0,0,\n0,0,0,0,0,0,0,0,0,0,background conveyorright:7,0,background slowbtn:8,0,0,\n0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,\n0,0,7,0,background fastbtn:9,0,0,0,0,0,background wipebutton:10,0,0,7,0,\n0,0,0,0,0,0,0,0,0,background conveyordown:11,11,11,11,background playernormal:12,0,\n0,0,background defaultbtn:13,0,0,0,0,0,0,0,0,0,0,0,0,\n",0,"1676840635143.204"] + ], + + +[ + "Local Radius Example", + ["title Local Radius Example\nauthor Tom Hermans\nhomepage https://auroriax.github.io/PuzzleScript/Documentation/prelude.html#local_radius\n\nbackground_color #332222\n\nlocal_radius 2\nrun_rules_on_level_start\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\nGlobalCrate\nRed\n.000.\n0...0\n0...0\n0...0\n.000.\n\nRadiusIndicator\n#ff000040\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\nG = GlobalCrate\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, GlobalCrate\nRadiusIndicator\n\n======\nRULES\n======\n\n(Clean up radius visuals from last turn, globally)\nglobal [RadiusIndicator] -> []\n\n(Player pushes crates)\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > Player | GlobalCrate ] -> [ > Player | > GlobalCrate ]\n\n(Crates push crates, but only while in the player radius)\n[> Crate | Crate] -> [> Crate | > Crate ]\n\n(Rows of global crates can push each other, even outside of the player radius)\nglobal [> GlobalCrate | GlobalCrate] -> [> GlobalCrate | > GlobalCrate ]\n\n(Create a visualization of the radius for the next turn, after player has moved)\nlate [Player] -> [Player RadiusIndicator]\nlate [RadiusIndicator | no RadiusIndicator] -> [RadiusIndicator | RadiusIndicator]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n################\n#..............#\n#..gggg..***.o.#\n#..............#\n#...ggg...**.o.#\n#..............#\n##...gg.p..*.o.#\n##.............#\n################\n",[0,0,1,1,0,3,3,0,3],"background wall:0,0,0,0,0,0,0,0,0,0,background:1,1,1,1,1,0,\n0,0,0,1,1,1,1,1,1,1,0,0,1,background globalcrate:2,1,2,\n1,1,1,0,0,1,2,1,2,1,1,1,0,0,1,2,\n1,2,1,2,1,0,background radiusindicator wall:3,background radiusindicator:4,background globalcrate radiusindicator:5,4,4,1,2,1,0,3,\n4,4,4,4,1,1,1,0,3,4,background player radiusindicator:6,4,4,1,1,1,\n0,3,4,background crate radiusindicator:7,4,4,1,1,1,0,3,4,7,4,7,1,\n1,1,0,0,1,background crate:8,1,8,1,8,1,0,0,1,1,1,\n1,1,1,1,0,0,1,background target:9,1,9,1,9,1,0,0,1,\n1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,\n",0,"1676840671830.7517"] + ], + +[ + "Goto Level", + ["title Goto Level\nauthor TilmannR\nhomepage auroriax.github.io/PuzzleScript/Documentation/levels.html#section-and-goto\n\n========\nOBJECTS\n========\n\nbackground .\nblack \n\nwall #\nbrown darkbrown\n00010\n11111\n01000\n11111\n00010\n\nplayer p\nblack orange white blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\none 1 \nred \n..0..\n..0..\n..0..\n..0..\n..0..\n\ntwo 2\nyellow \n.000.\n...0.\n.000.\n.0...\n.000.\n\ntre 3\nblue \n.000.\n...0.\n.000.\n...0.\n.000.\n\nhub x\ngray\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nvictory ~\ngray\n..0..\n...0.\n00000\n...0.\n..0..\n\n=======\nLEGEND\n=======\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nbackground\none, two, tre, hub, victory\nplayer, wall\n\n======\nRULES \n====== \n\nlate [player one] -> Goto SECTION 1\nlate [player two] -> goto Section 2\nlate [player tre] -> GOTO section 3\nlate [player hub] -> goto hub\nlate [player victory] -> win\n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\nmessage Intro\n\n#########\n#.......#\n#.......#\n#..p.~..#\n#.......#\n#.......#\n#########\n\nsection Hub\n\n#########\n#.......#\n#.....1.#\n#.p...2.#\n#.....3.#\n#.......#\n#########\n\nsection Section 1\nmessage Section 1, two levels\n\n#########\n#.......#\n#.x.p.~.#\n#.......#\n#########\n#..1.1..#\n#########\n\n#########\n#.......#\n#.x.p.~.#\n#.......#\n#########\n#..1.2..#\n#########\n\ngoto Hub\n\nsection Section 2\nmessage Section 2, three levels\n\n#########\n#.......#\n#.x.p.~.#\n#.......#\n#########\n#..2.1..#\n#########\n\n#########\n#.......#\n#.x.p.~.#\n#.......#\n#########\n#..2.2..#\n#########\n\n#########\n#.......#\n#.x.p.~.#\n#.......#\n#########\n#..2.3..#\n#########\n\ngoto Hub\n\nsection Section 3\nmessage Section 3, one levels\n\n#########\n#.......#\n#.x.p.~.#\n#.......#\n#########\n#..3.1..#\n#########\n\ngoto Hub\n\n",[1],"background wall:0,0,0,0,0,0,0,0,background:1,\n1,1,1,1,0,0,1,1,background player:2,\n1,1,0,0,1,1,1,1,1,\n0,0,1,1,1,1,1,0,0,\n1,1,background victory:3,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",1,"1676841148678.9856"] + ], + + +[ + "My PS+ Game", + ["(\nHello there! \n\nThis is a special starting template for PuzzleScript Plus highlighting the most important differences from vanilla PuzzleScript. It's intended as a \"Hello World\" of sorts. So it's handy if you already know how vanilla PuzzleScript works before diving into this.\n\nIf you immediately want to working on a game instead, consider using the \"Basic\" or \"Blank Project\" example instead.\n\nFor more info, don't forget to check out the NEW EXAMPLES and the DOCS. Enjoy!\n)\n\ntitle My PS+ Game\nauthor My Name Here\nhomepage auroriax.github.io/PuzzleScript\n\ntween_length 0.03\nsmoothscreen 5x5\nlevel_select\nruntime_metadata_twiddling\ntext_controls Your PuzzleScript Plus journey starts here! \\nHello world!\n\n========\nOBJECTS\n========\n\nBackground \nLIGHTGRAY GRAY\n00010\n11111\n01000\n11111\n00010\n\nWall copy:Background\nDARKGRAY BLACK\n\nTarget \n#00000080\n\nPlayer \nBlue \n\nCrate \nOrange \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\nPlayer, Wall, Crate\nTarget\n\n======\nRULES \n====== \n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[action Player] -> background_color #222222\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate \n\n======= \nLEVELS\n=======\n\nsection Level 1\n#########\n#.......#\n#.....@.#\n#.P.*.O.#\n#.......#\n#.......#\n#########\n\nsection Level 2\n#########\n#.......#\n#..o....#\n#.o...*.#\n#....*p##\n#.....###\n#########\n\nsection Level 3\n#########\n#.......#\n##..o.#.#\n#.*.p.*.#\n#.#.o.#.#\n#.......#\n#########\n\n",[3,3,2,3,3,3,3,0,0,1],"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,background crate:2,2,1,1,0,0,1,background player target:3,\nbackground target:4,1,1,0,0,1,1,1,1,\n1,0,0,0,0,0,0,0,0,\n",0,"1676840897951.6162"] + ], + + +[ + "Level Select Microban", + ["title Level Select Microban\nauthor David Skinner\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\n\nlevel_select\nlevel_select_lock\nlevel_select_unlocked_ahead 3\nlevel_select_solve_symbol V\ncontinue_is_level_select\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\nsection Adding a level select\n\nmessage ADDING A LEVEL SELECT\nmessage To add a level select, first add the LEVEL_SELECT prelude flag.\nmessage To actually use the level select you need to add SECTIONS between your levels. See the source code of this project.\nmessage A section starts where it's defined. If you play until the next secion, the current section is marked as completed in the level select!\nmessage So one section can contain multiple levels or messages if desired. Like this one!\n\nsection Unlocking levels\n\nmessage UNLOCKING LEVELS\nmessage By default, you can play all sections from the start of the game.\nmessage You can limit this by adding the LEVEL_SELECT_LOCK flag. Now, if you finish a section, the next one becomes unlocked!\nmessage If you want more than one section ahead to be unlocked, set the LEVEL_SELECT_UNLOCKED_AHEAD prelude flag to a number.\n\nsection The title screen\n\nmessage THE TITLE SCREEN\nmessage If you have a level select, the title screen displays the option by default.\nmessage But if you add the CONTINUE_IS_LEVEL_SELECT flag, then pressing continue on the title screen will automatically toss players into the level select after starting.\nmessage Especially handy if your game has lots of short sections!\nmessage See more instructions here: dario-zubovic.github.io/PuzzleScript/Documentation/differences\nmessage The rest of this example is the Microban example, adapted to support level select. Press [Esc] to exit the level and enter level select.\n\nsection Level 1\n\nmessage level 1 of 10\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nsection Level 2\nmessage level 2 of 10\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\nsection Level 3\nmessage level 3 of 10\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\nsection Level 4\nmessage level 4 of 10\n\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\nsection Level 5\nmessage level 5 of 10\n\n.#######\n.#.....#\n.#.O*O.#\n##.*P*.#\n#..O*O.#\n#......#\n########\n\nsection Level 6\nmessage level 6 of 10\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#OOO...#\n#...########\n#####.......\n\nsection Level 7\nmessage level 7 of 10\n\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\nsection Level 8\nmessage level 8 of 10\n\n..######\n..#.OOP#\n..#.**.#\n..##.###\n...#.#..\n...#.#..\n####.#..\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\nsection Level 9\nmessage level 9 of 10\n\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\nsection Level 10\nmessage level 10 of 10\n\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\nmessage congratulations!\n\n",[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",16,"1676841183976.1018"] + ], + + +[ + "Magiciban v1", + ["title Magiciban v1\nauthor Tom Hermans [@Auroriax]\ntween_length 0.05\ntext_controls Arrows/WASD: Move Space: Select\\nZ: Undo R: Reset Esc: Lvl Select\\n For the Thinky Puzzle Jam 2\n\nbackground_color #2B1634\ntext_color #F5D1B3\n\nsprite_size 10\n\nnoaction\nrun_rules_on_level_start\n\nlevel_select\nlevel_select_lock\nlevel_select_unlocked_rollover 5\n\n(\nCome and see the great Sokoban magician Spades! As if by magic they shift the stage and move the rabbits below the floating hats to the audience's delight! Prepare for a jam-packed show that you'll never forget. \n\nThis is short Sokoban variant that is loosely based on the 15 Puzzle and Rosden's Sliding Ground. It was made for the Thinky Puzzle Jam 2.\n)\n\n(\nCOLOR SCHEMES\nhttps://www.schemecolor.com/magical-place.php\nhttps://www.schemecolor.com/magic-is-magic.php\nhttps://www.schemecolor.com/ethereal.php\n)\n\n========\nOBJECTS\n========\n\nbackground .\n#2B1634\n\nplayer white\nblack #F5D1B3 #F2EAF5\n..........\n..........\n....00....\n...0000...\n..010100..\n.00000200.\n.00022000.\n..000000..\n....00....\n...0000...\n\nTile t\n#C7305D transparent\n1000000001\n0000000000\n0000000000\n0000000000\n0000000000\n0000000000\n0000000000\n0000000000\n0000000000\n1000000001\n\nTileDeco1\n#E2A3B440\n..........\n..........\n......0...\n......00..\n..........\n..........\n.0........\n00........\n..........\n..........\n\nTileDeco2\n#E2A3B440\n..00......\n...0......\n..........\n..........\n..........\n..........\n......00..\n......0...\n..........\n..........\n\nAntiTile ,\n#3D2D5F\n..000000..\n.00000000.\n00......00\n00..00..00\n00.0000.00\n00.0000.00\n00..00..00\n00......00\n.00000000.\n..000000..\n\nAntiTileHor\n#3D2D5F\n..........\n..........\n0000000000\n0000000000\n...0..0...\n..0....0..\n0000000000\n0000000000\n..........\n..........\n\nAntiTileVer\n#3D2D5F\n..00..00..\n..00..00..\n..000.00..\n..00.000..\n..00..00..\n..00..00..\n..00.000..\n..000.00..\n..00..00..\n..00..00..\n\nFeedbackOrigin\ntransparent\n\nFeedbackU\n#F5D1B3 transparent\n..........\n..........\n..111111..\n...1111...\n....11....\n....00....\n...0000...\n..000000..\n..........\n..........\n\nFeedbackL\n#F5D1B3 transparent\n..........\n..........\n..1....0..\n..11..00..\n..111000..\n..111000..\n..11..00..\n..1....0..\n..........\n..........\n\nFeedbackR copy:FeedbackL\ntransparent #F5D1B3\n\nFeedbackD copy:FeedbackU\ntransparent #F5D1B3\n\nNormalRabbit\n#F2EAF5 black\n..........\n..........\n..00.00...\n..00000...\n..01010...\n..01010...\n..00000...\n..001000..\n..000000..\n...0..0...\n\nHappyRabbit\n#F2EAF5 black\n..........\n..........\n..00.00...\n..00000...\n..01010...\n..00000...\n..01010...\n..001000..\n..000000..\n...0..0...\n\nSurprisedRabbit\n#F2EAF5 black\n..........\n..00.00...\n..00000...\n..01010...\n..01010...\n..000000..\n..001000..\n..00000...\n...0..0...\n..........\n\nTarget\n#F5D1B3 #6752AF\n...111....\n...111....\n...000....\n..11111...\n..........\n..........\n..........\n..........\n..........\n..........\n\nTargetShadow copy:NormalRabbit\n#2B163440 #2B163460\n\nTemp\ntransparent\n=======\nLEGEND\n=======\np = player and tile\nb = NormalRabbit and tile\no = Target and TargetShadow and tile\n- = Target and TargetShadow\nv = Target and TargetShadow and NormalRabbit and Tile\n\nRabbit = NormalRabbit or HappyRabbit or SurprisedRabbit\nMustStayOnTile = Player or Rabbit\nFeedback = FeedbackU or FeedbackL or FeedbackR or FeedbackD\nAntiTiles = AntiTile or AntiTileHor or AntiTileVer\nDeco = TileDeco1 or TileDeco2\nShiftable = Player or Tile or Rabbit or Deco\n\n=======\nSOUNDS\n=======\n\nsfx1 4527907 (SHIFT!)\nsfx2 48808307 (Push!)\n\nplayer move horizontal 6491307\nplayer move vertical 6368107\n\nHappyRabbit Create 75743100\n\ncancel 94782507\n\nendlevel 16003308\n\n================\nCOLLISIONLAYERS\n================\nbackground\ntile AntiTiles\nDeco\n\nTargetShadow\nplayer Rabbit\n\nTarget\n\nFeedbackOrigin\nFeedback\nTemp\n\n======\nRULES\n======\n(Cleanup)\n[Feedback] -> []\n[FeedbackOrigin] -> []\n\n(Generate decoration for tiles)\nhorizontal [AntiTiles | AntiTile | AntiTiles] -> [AntiTiles | AntiTileHor | AntiTiles]\nvertical [AntiTiles | AntiTile | AntiTiles] -> [AntiTiles | AntiTileVer | AntiTiles]\n[Tile no Deco] -> [Tile random Deco]\n\n(Push boxes)\n[> Player | stationary Rabbit] -> [> Player | > Rabbit] sfx2\n\n(Blocking illegal movement)\n[> Player] [> Rabbit | no Tile] -> [Player] [Rabbit | ] cancel\n[> Player | AntiTiles] -> [Player | AntiTiles] cancel\n\n(Shifting)\n[> Player Tile | no tile no antitile] -> [> Player > Tile | ] sfx1\n[< tile | stationary tile] -> [< tile | < tile]\n[> tile stationary Shiftable] -> [> tile > Shiftable]\n\n(Create hints)\n[> Player stationary Tile | ] -> [> Player Tile | FeedbackOrigin]\n[> Player > Tile | ] -> [> Player > Tile | FeedbackOrigin]\n[stationary Player] -> [Player FeedbackOrigin]\n[action Player] -> [Player FeedbackOrigin]\n\nup [FeedbackOrigin | no Tile no antitiles] -> [FeedbackOrigin | action FeedbackU]\ndown [FeedbackOrigin | no Tile no antitiles] -> [FeedbackOrigin | action FeedbackD]\nleft [FeedbackOrigin | no Tile no antitiles] -> [FeedbackOrigin | action FeedbackL]\nright [FeedbackOrigin | no Tile no antitiles] -> [FeedbackOrigin | action FeedbackR]\n\nup [no Tile | > Player | no Tile] -> [| > Player action FeedbackD |]\ndown [no Tile | > Player | no Tile] -> [| > Player action FeedbackU |]\nleft [no Tile | > Player | no Tile] -> [| > Player action FeedbackR |]\nright [no Tile | > Player | no Tile] -> [| > Player action FeedbackL |]\n\n(Rabbit emotions)\n[stationary Rabbit no Target] -> [NormalRabbit]\n[> Rabbit | Target] -> [> HappyRabbit | target]\n[> Rabbit | no Target] -> [> SurprisedRabbit | ]\n\n(Require_player_movement)\n[moving Player] -> [moving Player Temp]\nlate [Player Temp] -> cancel\nlate [Temp] -> []\n\n==============\nWINCONDITIONS\n==============\n\nall target on Rabbit\nall Rabbit on target\nsome target\n\n=======\nLEVELS\n=======\n\nsection 0:00 Opening Act\n,,,,,,,,,\n,..ttotb,\n,,,,t,,,,\n,otttbt,.\n,,,,,,t,.\n,pt.t.t,.\n,,,,,,,,.\n\nsection 0:05 Levitation\n,,,,,,\n,opt.,\n,,ttt,\n.,tbt,\n.,,,,,\n(38 steps, 105 positions explored)\n(rrddl ululr rdrud ldrul ldurr dlulu rddlu rul)\n\nsection 0:13 Zig Zag Girl\n,,,,,,\n,tttt,\n,tt.t,\n,t.,t,\n,ttop,\n,tttb,\n,,,,,,\n(25 steps, 340 positions explored)\n(uulur dulld ldrdr drllu ldrul)\n\nsection 0:22 The Houdini Escape\n.,,,,,.\n.,tbt,.\n.,tpt,.\n.,o-o,.\n.,btb,.\n.,,,,,.\n(37 steps, 2675 positions explored)\n(dluur rddll uurrd dldlu rrdul ldrur uuldu ld)\n\nsection 0:29 Metamorphosis\n,,,,,,,\n,ot.tb,\n,tt,pt,\n,.,,,.,\n,tt,tt,\n,bt.to,\n,,,,,,,\n(39 steps, 328 positions explored)\n(rddld lrurd lllul uuurr ldlur rrdrd dldll uluu)\n\nsection 0:35 Zarrow Shuffle\n,,,,,,\n,...-,\n,..b.,\n,.p..,\n,t..,,\n,,,,,.\n(23 steps, 624 positions explored)\n(luudr urrdd lurdl urudl lur)\n\nsection 0:43 Quick-Change\n,,,,,,\n,b..b,\n,.--.,\n,p--.,\n,b..b,\n,,,,,,\n(39 steps, 110 positions explored)\n(lurdr rulul dldrr lldrr urulr ddlll uurul ddrd)\n\nsection 0:51 Faster than Magic\n,,,,,,,,\n,...b,b,\n,p--v.-,\n,t..b,.,\n,,,,,,,,\n(46 steps, 6303 positions explored)\n(drrll uurrl ldrru ldurd dlurl drrur ldllu dludr rrurr d)\n\nsection 1:02 Hat Foil Trick\n,,,,,,,\n,btttt,\n,tt-,t,\n,ttptt,\n,t,-tt,\n,ttttb,\n,,,,,,,\n(50 steps, 8332 positions explored)\n(dudrd lurrd luulu urrdd lddlr urduu lluur rddll luuld rdlur)\n\nsection 1:08 Origami Illusion\n,,,,..\n,tt,..\n,bbt,.\n,.tp.,\n.,too,\n..,tt,\n..,,,,\n(78 steps, 892 positions explored)\n(rdllu druul dlrrd rudld ruldu ulurd llurd lrrdr udldr uldru ulull drrdr dlurd luulu udldr urd)\n\nsection 1:11 Bending the Spoon\n,,,,,,,\n,,,ttb,\n,,pttb,\n,ttttb,\n,o-o,,,\n,,,,,,,\n(109 steps, 685 positions explored)\n(dduru lrurd rlldl udldr uldru lrurd urrdl luldu rurrd ulldr ruldd rluur dlldl lrrur rdluu rldlu rddll rdluu rdruu lrdru lddru llld)\n\nsection 1:15 Grand Finale\n,,,,,,\n,-..-,\n,tbb.,\n,tpb.,\n,ttt-,\n,,,,,,\n(88 steps, 42139 positions explored)\n(luudd rdrru uulll ddrul ddrrr uuldu lrrul rdldr dulld ruurd ludll ruudr rulrd lurdl lurdl rrldl uludr rul)\nmessage Tadaah! You win the game! Congrats.\n\nsection Credits\nmessage Game by Tom Hermans for the Thinky Puzzle Jam 2 in 2022.\nmessage Inspired by the 15 Puzzle and Rosden's Sliding Ground.\nmessage Main color palette \"Magical Place\" by Color Man\\nhttps://www.schemecolor.com/magical-place.php\nmessage Thank you for playing!\n\nsection Encore 1\nmessage Here are some extra difficult bonus puzzles that were scrapped for the base game.\n,,,,,,,,\n,b....b,\n,.,,,,.,\n,..--..,\n,p.--..,\n,.,,,,.,\n,b....b,\n,,,,,,,,\n(103 steps, 2250 positions explored)\n(duurd rrurr uddll rulll dluud rldrr urrdr duuuu lllll ddddd rrrrr uuudd dllll luuur luurr rrrdd dulld llldd rrrrr uullr ulr)\n\nsection Encore 2\n.,,,,,,,.\n,,tt,tt,,\n,ttb,tot,\n,tbt.tpo,\n,ttb,tot,\n,,tt,tt,,\n.,,,,,,,.\n(100 steps, 690823 positions explored)\n(lllld drulu rrrdr ullll uurdl drrru rdrll lldlu lurdr rrrrl llllu urdld rrrrd lulll lrrrr drudr udlul uurdr luldr uldru)\n",[3,3,3,3,3,0,0,1,1,1,1,3,3,0,0,1,1],"antitile background:0,antitilever background:1,1,1,1,1,0,antitilehor background:2,background feedbackl:3,\n2,background happyrabbit target targetshadow tile tiledeco2:4,2,background:5,2,2,background feedbackorigin player tile tiledeco2:6,2,background tile tiledeco1:7,\n2,5,2,2,7,0,7,2,background tile tiledeco2:8,\n2,2,8,7,7,2,8,2,2,\nbackground target targetshadow tile tiledeco2:9,0,7,0,7,2,2,background surprisedrabbit tile tiledeco2:10,2,\n7,7,7,2,2,5,2,1,1,\n1,0,0,1,0,5,5,5,5,\n",0,"1676841397847.0933"] + ], + +[ + "Gridblocked", + ["title Gridblocked\nauthor Tom Hermans [@Auroriax]\nhomepage auroriax.com\nbackground_color #222222\n\n(VERSION HISTORY:\nv4 - Fixes issue that multiple cursors could appear. Re-exported using engine version 1706\nv3 - Re-exported using engine version ~1694\nv2 - Fixes some minor graphical issues.\nv1 - Initial release\n)\n\n(If you want to work on the game or add more puzzles or something, note the following limitations:\n\n- Cars cannot start through portals. This can probably be implemented, but it requires a lot of lines of code, so I worked around it for the base game.\n- Blocks can only be stretched in one direction (you can have 2x1 or even 5x1 blocks, but NOT 2x2 blocks or other shapes like tetrominos).\n- Warps that transport blocks horizontally, can ONLY be placed on vertically moving blocks (not on horizontal blocks), and vice verca.\n\nHope this helps!\n)\n\nsprite_size 32\n\nlevel_select\nlevel_select_solve_symbol *\ncontinue_is_level_select\nlevel_select_lock\nlevel_select_unlocked_ahead 2\n\nmouse_left Click\nmouse_drag Drag\n\nrun_rules_on_level_start\n\n(Monogram by Datagoblin: https://datagoblin.itch.io/monogram)\ncustom_font data:font/otf;base64,AAEAAAAOAIAAAwBgRkZUTWdlp94AACgkAAAAHEdERUYAnQAkAAAn/AAAAChPUy8yhSVxUgAAAWgAAABWY21hcNRX7YMAAAKkAAABWmN2dCAAIgKIAAAEAAAAAARnYXNw//8AAQAAJ/QAAAAIZ2x5Zq/uhc8AAATkAAAgOGhlYWQOkNqhAAAA7AAAADZoaGVhBCwBBQAAASQAAAAkaG10eAfLA6IAAAHAAAAA5GxvY2G6A7H4AAAEBAAAAN5tYXhwALkAZQAAAUgAAAAgbmFtZW6O2q8AACUcAAABwnBvc3TXzlJDAAAm4AAAARMAAQAAAAEAADLOjtdfDzz1AB8EAAAAAADW7su9AAAAANbuy70AAP+AAYACqgAAAAgAAgAAAAAAAAABAAACqv+AAAABgAAAAAABgAABAAAAAAAAAAAAAAAAAAAABAABAAAAbgA0AAkAAAAAAAIAAAABAAEAAABAAC4AAAAAAAEBgAH0AAUACAKZAswAAACPApkCzAAAAesAMwEJAAACAAYJAAAAAAAAAAAAAwABAAIAAAAAAAAAADJ0dGYAQAAgMAADAP8AAAACqgCAAAAAAQAAAAAAAAF2ACIAAAAAAVUAAAGAAAAAgABAAAAAAAAAAAAAgACAAEAAQAAAAEAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQACAAEAAAAAAAIAAAAAAAAAAAACAAAAAQAAAAAAAAAAAAAMAAAADAAAAHAABAAAAAABUAAMAAQAAABwABAA4AAAACgAIAAIAAgB+AKkgrDAA//8AAAAgAKAgrDAA////4//C38DQbQABAAAAAAAAAAAAAAAAAQYAAAEAAAAAAAAAAQIAAAACAAAAAAAAAAAAAAAAAAAAAQAAAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlaQAAAABrAABqAAAAAAAAAGcAAAAAAAAAAAAAAABjAAAAAAAAAABiAAAAAAAAAAAAAAAAAAAAAGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiAogAAAAqACoAKgAqAEAAWACGALgA6gEmATYBUgFuAZoBtgHIAdwB6gIMAkICYAKUAswC8gMiA1QDdgO0A+oEAAQcBEYEZASMBLgE7gUaBUwFfAWkBcwF6gYgBkQGZgaIBrwG1gcAByoHWAd8B64H3AgYCDIIWAiECLAI7gkWCUgJYAmECZwJwAnSCeQKCAowClwKhAquCtYLBAsoC0oLdAugC74L5AwEDC4MVAx8DJwMygzuDRANNg1iDZgNxA3sDhAOIg5GDmQOZA56DqoO3A8KD0IPWg+aD6wP5BAcEBwAAAACACIAAAEyAqoAAwAHAC6xAQAvPLIHBADtMrEGBdw8sgMCAO0yALEDAC88sgUEAO0ysgcGAfw8sgECAO0yMxEhESczESMiARDuzMwCqv1WIgJmAAACAIAAAADAAcAAAwAPAAAzNTMVJz0EMx0EgEBAQEBAgEBAQEBAQEBAQEAAAAIAQAEAAQABwAAHAA8AABM9AjMdAiM9AjMdAsBAwEABAEBAQEBAQEBAQEBAQAAAAAIAAAAAAUABgAAdACMAADM1IxUjNSM1Mz0BIzUzNTMVMzUzFTMVIx0BMxUjFSc9ASMdAcBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgEBAQEAAAAAAAgAAAAABQAHAACMAJwAAMzUrATU7ATUjNSM1MzUzNTMVOwEVKwEVMxUzFSM1IxUzFSMVAzUjFYBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAQBAQAAAAAcAAAAAAUABwAAFAAsAEQAVABkAHQAjAAAhPQEzHQEhPQEzHQEDPQEzHQI1MxU9ATMVPQEzFT0CMx0BAQBA/sBAQEBAQEBAQEBAQEBAQEABQEBAQEDAQEBAQEBAQEBAQEBAQAAFAAAAAAFAAcAAAwAJACEAJwAtAAAhNTMVJzMVKwE1MyM9ASsBHQEjPQEzNTsBPQEzHQEzFSMVJyM9ATMVNysBNTsBAQBAwEBAQMBAQEBAQEBAQEBAwEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAQEBAQEAAAAABAIABAADAAcAABwAAEz0CMx0CgEABAEBAQEBAQAAAAAMAgAAAAQABwAADAA8AEwAAMzUzFScjPQQzHQMRNTMVwEBAQEBAQEBAQEBAQEBAQEBAAQBAQAAAAwBAAAAAwAHAAAMADwATAAAzNTMVPQUzHQQDIzUzQEBAQEBAQEBAQEBAQEBAQEBAQAFAQAAAAAADAEAAQAGAAYAAFwAbAB8AADc9ASMVIzUzNTM9ATMdATMVMxUjNSMdATc1MxUhIzUzwEBAQEBAQEBAQEBA/wBAQEBAQEBAQEBAQEBAQEBAQMBAQEAAAAAAAQAAAEABQAGAABMAADc9ASsBNTsBPQEzHQE7ARUrAR0BgEBAQEBAQEBAQEBAQEBAQEBAQEBAAAACAED/wADAAIAAAwAJAAAXNTMVPQIzHQFAQEBAQEBAQEBAQAABAAAAwAFAAQAACwAAATMVKwQ1OwIBAEBAQEBAQEBAQAEAQEAAAAAAAQCAAAAAwACAAAUAADM9ATMdAYBAQEBAQAAAAAUAAAAAAUABwAAFAAkADQARABcAADE9ATMdAT0BMxU9ATMVPQEzFT0CMx0BQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEAAAwAAAAABQAHAAAcAJwAvAAA3MxUrAjU7AT0CIxUjFSMVIz0EMx0CMzUzNTM1Mx0EAysCNTsCwEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAUBAAAAAAQAAAAABQAHAABkAACUzFSsENTsBPQMjNTM1Mx0FAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAABgAAAAABQAHAAAMAEQAVABkAHwAnAAARNTMVEzMVKwQ1MzUzFTMnNTMVPQEzFT0CMx0BJysCNTsCQMBAQEBAQEBAQEBAQEBAQEBAQEBAQAFAQED/AEBAQEBAQEBAQEBAQEBAQIBAAAAHAAAAAAFAAcAAAwALABEAFQAbACEAKQAAETUzFRMzFSsCNTsBPQEzHQEhIzUzNysBNTsBMT0BMx0BJysCNTsCQIBAQEBAQIBA/wBAQMBAQEBAQEBAQEBAQEABQEBA/wBAQEBAQEBAQEBAQEBAgEAAAgAAAAABQAHAABkAHwAAIT0CKwM9ATMVOwI9AjMdBgE9ATMdAQEAQEBAQEBAQEBA/wBAQEBAQEBAQEBAQEBAQEBAQAFAQEBAQAAAAAQAAAAAAUABwAAHAA8AEwApAAA3MxUrAjU7AT0CMx0CISM1MzcrAz0COwQVKwMVOwLAQEBAQECAQP8AQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAQEBAQEAAAAQAAAAAAUABwAAHAA0AHwAnAAA3MxUrAjU7AT0BMx0BISM9BDMdATsCFSsCFRMzFSsCNTPAQEBAQECAQP8AQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAUBAQAAAAAADAAAAAAFAAcAABwALABsAADM9AjMdAj0BMxU9AisDNTsEHQKAQEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAAAAAAAcAAAAAAUABwAAHAA0AEwAbACEAJwAvAAA3MxUrAjU7AT0BMx0BISM9ATMVNysCNTsCMT0BMx0BISM9ATMVNysCNTsCwEBAQEBAgED/AEBAwEBAQEBAQED/AEBAwEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAFAAAAAAFAAcAABwAZAB0AIwArAAA3MxUrAjU7AT0BKwI1OwI9ATMdBCEjNTM1Iz0BMxU3KwI1OwLAQEBAQECAQEBAQEBAQP8AQEBAQMBAQEBAQEBAQEBAQEBAQEBAQEBAQIBAQEBAQAAAAAACAIAAAADAAYAABQALAAAzPQEzHQEDPQEzHQGAQEBAQEBAQAEAQEBAQAAAAAMAQP/AAMABgAADAAkADwAAFzUzFRE9ATMdAQM9ATMdAUBAQEBAQEBAAUBAQEBA/wBAQEBAAAAABQAAAEABQAGAAAUACwAPABUAGwAAJTMVKwE1MSsBNTsBKwE1MzczFSsBNTczFSsBNQEAQEBAQEBAQIBAQEBAQEDAQEBAgEBAQEBAQEBAQEAAAAAAAgAAAIABQAFAAAsAFwAAJTMVKwQ1OwI3MxUrBDU7AgEAQEBAQEBAQEBAQEBAQEBAQEBAQMBAQIBAQAAABQAAAEABQAGAAAUACwAPABUAGwAANzMVKwE1NzMVKwE1MzUzFScrATU7ASsCNTsBQEBAQMBAQECAQEBAQEBAgEBAQECAQEBAQEBAQEBAQAAGAAAAAAFAAcAAAwAHAAsADwAVAB0AADM1MxUnNTMVJzUzFRc1MxU9AjMdAScrAjU7AoBAQEDAQIBAQEBAQEBAQEBAQIBAQMBAQIBAQEBAQEBAgEAAAAAABAAAAAABQAHAAAcAEwAnAC0AADczFSsCNTMrAT0EMx0DMyM1Iz0BMzUrATU7AhUzHQMnPQEjHQHAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAgAAAAABQAHAAB8AJwAAIT0BKwIdASM9BTMdAjsCPQIzHQUDKwI1OwIBAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAYBAAAAAAAIAAAAAAUABwAAJAC0AADczPQErAh0BMxcrAj0GOwMVMx0BIz0BKwIdATsCFTMdASMVwEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAFAAAAAAFAAcAAAwALAA8AGwAjAAABNTMVAzMVKwI1OwE1MxUhIz0EMx0DEysCNTsCAQBAgEBAQEBAgED/AEBAwEBAQEBAQAFAQED/AEBAQEBAQEBAQEBAQEABAEAAAAACAAAAAAFAAcAADwAnAAA3Mz0EKwIdBDMXKwI9BjsDFTMdBCMVwEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAEAAAAAAUABwAAlAAAlMxUrBD0GOwQVKwMdATsCFSsCHQE7AQEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAQAAAAABQAHAAB0AADE9BjsEFSsDHQE7AhUrAh0CQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAABQAAAAABQAHAAAMACwAXACMAKwAAATUzFQMzFSsCNTsBPQErATU7Ah0CISM9BDMdAxMrAjU7AgEAQIBAQEBAQIBAQEBAQP8AQEDAQEBAQEBAAUBAQP8AQEBAQEBAQEBAQEBAQEBAQEABAEAAAQAAAAABQAHAACMAACE9AisCHQIjPQYzHQI7Aj0CMx0GAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAQAAAAABQAHAAB8AACUzFSsENTsBPQQrATU7BBUrAR0EAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAADAAAAAAFAAcAABwAVABsAADczFSsCNTsBPQUzHQUhIz0BMxXAQEBAQECAQP8AQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAUAAAAAAUABwAADAB0AIQAlACkAACE1MxUhPQYzHQIzFTMVMxUjNSM1Ix0CEzUzFT0BMxU9ATMVAQBA/sBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAQBAQEBAQEBAQAAAAQAAAAABQAHAABcAACUzFSsEPQYzHQU7AQEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAIAAAAAAUABwAAVACcAACE9BCMVIzUzNTM1Mx0GIT0GMxUzFSMdBAEAQEBAQED+wEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAIAAAAAAUABwAARACcAACE9ASM1Mz0DMx0GIT0GMx0BMxUzFSM1Ix0DAQBAQED+wEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAQAAAAAAUABwAAHABMAHwAnAAA3MxUrAjU7AT0EMx0EISM9BDMdAxMrAjU7AsBAQEBAQIBA/wBAQMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAQBAAAAAAQAAAAABQAHAACEAADE9BjsDFTMdASM9ASsCHQE7AhUrAh0CQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAABAAA/8ABQAHAAAsAFwAjACsAAAUjNSsBNTsCFTMVJz0EMx0EISM9BDMdAxMrAjU7AgEAQEBAQEBAQEBA/wBAQMBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAAQBAAAIAAAAAAUABwAAHACkAACE9AjMdAiE9BjsDFTMdASM9ASsCHQE7AhUrAh0CAQBA/sBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAABwAAAAABQAHAAAMACwARABUAHQAjACsAAAE1MxUDMxUrAjU7AT0BMx0BISM1MzcrAjU7AisBPQEzFTcrAjU7AgEAQIBAQEBAQIBA/wBAQMBAQEBAQEDAQEDAQEBAQEBAAUBAQP8AQEBAQEBAQEBAQEBAQEAAAAAAAQAAAAABQAHAABcAADM9BSsBNTsEFSsBHQWAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAMAAAAAAUABwAAHABUAIwAANzMVKwI1OwE9BTMdBSEjPQUzHQTAQEBAQECAQP8AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAFAAAAAAFAAcAAAwAJAA8AGQAjAAAzNTMVPQIzHQErAT0BMxU3PQMzHQMhIz0DMx0CgEBAgEBAgED/AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAwAAAAABQAHAABEAIwAnAAAhNSM1Mz0EMx0GIT0GMx0EMxUjFTcjNTMBAEBAQP7AQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQIBAAAAAAAkAAAAAAUABwAAFAAsADwATABcAGwAfACUAKwAAIT0BMx0BIT0BMx0BNyM1Mwc1MxU3IzUzMTUzFSsBNTsBPQEzHQEhIz0BMxUBAED+wEDAQEDAQEBAQECAQECAQP8AQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAAAAFAAAAAAFAAcAACQANABEAFwAdAAAzPQMzHQMRNTMVKwE1OwE9ATMdASEjPQEzFYBAQIBAQIBA/wBAQEBAQEBAQEBAAQBAQEBAQEBAQEBAAAUAAAAAAUABwAANABEAFQAZACcAACUzFSsEPQEzFTsBJzUzFT0BMxU9ATMVPQErAzU7BB0BAQBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAABAIAAAAEAAcAAEwAAMyM9BjsBFSMdBDMVwEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAFAAAAAAFAAcAABQAJAA0AEQAXAAAhPQEzHQEnIzUzKwE1MysBNTMrAT0BMxUBAEBAQEBAQEBAQEBAQEBAQEBAgEBAQEBAQAABAEAAAADAAcAAEwAAMyM1Mz0EIzU7AR0GgEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAFAAABAAFAAcAAAwAHAAsADwATAAABNTMVITUzFTcjNTMHNTMVNyM1MwEAQP7AQMBAQMBAQEBAAQBAQEBAQEBAQEBAQAAAAAABAAAAAAFAAEAACwAAJTMVKwQ1OwIBAEBAQEBAQEBAQEBAQAACAEABQADAAcAAAwAHAAATNTMVJyM1M4BAQEBAAUBAQEBAAAACAAAAAAFAAUAAEwAfAAAhKwI1Iz0CMzU7Ax0EJzM9AisCHQIzAQBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAACAAAAAAFAAcAACwAjAAA3Mz0CKwIdAjMXKwI9BjMdATsCFTMdAiMVwEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAUAAAAAAUABQAADAAsADwAXAB8AACU1MxUHMxUrAjU7ATUzFSEjPQIzHQE3KwI1OwIBAECAQEBAQECAQP8AQEDAQEBAQEBAwEBAgEBAQEBAQEBAQIBAAAACAAAAAAFAAcAAFwAjAAAhKwI1Iz0CMzU7Aj0BMx0GJzM9AisCHQIzAQBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAMAAAAAAUABQAAHABkAIQAANzMVKwI1MysBPQIzFTsCNTMdASsDNysCNTsCwEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQIBAAAAAAAMAAAAAAUABwAATABcAHQAAMz0CIzUzPQEzHQE7ARUrAR0CEzUzFScrATU7AUBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQAFAQEBAQAAAAwAA/4ABQAFAAAcAHQApAAAXMxUrAjU7ATUrAjUjPQIzNTsDHQUnMz0CKwIdAjPAQEBAQECAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAgEBAQEBAQAACAAAAAAFAAcAACQAfAAAhPQMzHQMhPQYzHQE7AhUrAh0DAQBA/sBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAACAAAAAAFAAcAAAwAZAAATNTMVEzMVKwQ1OwE9AiM1OwEdA4BAQEBAQEBAQEBAQEBAAYBAQP7AQEBAQEBAQEBAQAAAAAQAAP+AAUABwAADAAsAGwAfAAABNTMVAzMVKwI1OwE9BCM1OwEdBSEjNTMBAECAQEBAQECAQEBA/wBAQAGAQED+QEBAQEBAQEBAQEBAQEBAQAAAAAQAAAAAAUABwAADABsAHwAjAAAhNTMVIT0GMx0DOwEVMxUjNSsBHQE3NTMVPQEzFQEAQP7AQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQMBAQEBAQAACAAAAAAFAAcAABwAXAAAlMxUrAjUzKwE9BCM1OwEdBAEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAACAAAAAAFAAUAACQAjAAAhPQMzHQMjPQMjHQMjPQQ7AxUjHQMBAEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAgAAAAABQAFAAAkAGwAAIT0DMx0DIT0EOwMVKwIdAwEAQP7AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAQAAAAAAUABQAAHAA8AFwAfAAA3MxUrAjU7AT0CMx0CISM9AjMdATcrAjU7AsBAQEBAQIBA/wBAQMBAQEBAQEBAQEBAQEBAQEBAQEBAQIBAAAAAAAEAAP+AAUABQAAjAAAVPQY7AxUzHQIjPQIrAh0COwIVKwIdAUBAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAACAAD/gAFAAUAAFwAjAAAFPQErAjUjPQIzNTsDHQYnMz0CKwIdAjMBAEBAQEBAQEBAQIBAQEBAQIBAQEBAQEBAQEBAQEBAQMBAQEBAQEAAAAMAAAAAAUABQAANABEAFwAAMT0EMxUzFSMdAjc1MxUnKwE1OwFAQEDAQEBAQEBAQEBAQEBAQEBAQMBAQEBAAAAFAAAAAAFAAUAACQANABUAGQAjAAA3MxUrAzU7AjUzFScrAjU7AisBNTM3MxUrAzU7AcBAQEBAQEBAgEBAQEBAQEBAwEBAwEBAQEBAQEBAQEBAQEBAQEBAQAAAAAIAAAAAAUABwAAHABsAACUzFSsCNTMrAT0CIzUzPQEzHQE7ARUrAR0BAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAIAAAAAAUABQAARABsAACErAjU7Aj0DMx0EJSM9AzMdAgEAQEBAQEBAQP8AQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAABQAAAAABQAFAAAMABwALABMAGwAAMzUzFT0BMxUrATU7AT0CMx0CISM9AjMdAYBAQIBAQIBA/wBAQEBAQEBAQEBAQEBAQEBAQEBAAAUAAAAAAUABQAADAAcAEQAXACEAADM1MxUjNTMVNz0DMx0DKwE9ATMVByM9AzMdAsBAwECAQIBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAJAAAAAAFAAUAAAwAHAAsADwATABcAGwAfACMAACE1MxUhNTMVNyM1Mwc1MxU3IzUzMTUzFSsBNTsBNTMVISM1MwEAQP7AQMBAQMBAQEBAQIBAQIBA/wBAQEBAQEBAQEBAQEBAQEBAQEBAAAADAAD/gAFAAUAABwAbACUAABczFSsCNTsBNSsCNTsCPQMzHQUlIz0DMx0CwEBAQEBAgEBAQEBAQED/AEBAQEBAQEBAQEBAQEBAQEBAgEBAQEBAQEAAAAAAAwAAAAABQAFAAA0AEQAfAAAlMxUrBDUzNTMVMyc1MxU9ASsCNTsEFSMVAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAFAEAAAAEAAcAAAwAJAA0AEwAXAAAzNTMVJyM9ATMVJyM1MzE9ATMdAT0BMxXAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgEBAAAABAIAAAADAAcAADwAAMz0GMx0GgEBAQEBAQEBAQEBAQEBAQAAFAEAAAAEAAcAAAwAJAA0AEwAXAAAzNTMVPQIzHQE9ATMVJyM9ATMVJyM1M0BAQEBAQEBAQEBAQEBAQEBAgEBAQEBAQEBAAAAEAAABQAFAAcAAAwAJAA0AEQAAETUzFTczFSsBNTM1MxUrATUzQIBAQECAQMBAQAFAQEBAQEBAQEAAAAACAIAAAADAAcAACwAPAAAzPQQzHQQDNTMVgEBAQEBAQEBAQEBAQEABgEBAAAMAAAAAAUABwAAbAB8AJwAAMzUjNSM9AjM1MzUzFTMVMxUjNSMdAjMVIxU3NTMVIz0CIx0CgEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQECAQEBAQEBAQEAAAAMAAAAAAUABwAADAB8AJQAAATUzFQMzFSsENTM9ASM1Mz0BMx0BOwEVKwEdATMTKwE1OwEBAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEABQEBA/wBAQEBAQEBAQEBAQEABQEAAAAAGAAAAQAFAAYAAAwAHABMAFwAbAB8AACU1MxUhNTMVNysCPQI7Ah0BIzUjFTc1MxUhIzUzAQBA/sBAwEBAQEBAQEBAgED/AEBAQEBAQEBAQEBAQEBAQIBAQEAAAAUAAAAAAUABwAAbAB8AIwAnACsAADM1KwE1OwE1KwE1OwE1MxU7ARUrARU7ARUrARURNTMVKwE1OwE1MxUhIzUzgEBAQEBAQEBAQEBAQEBAQEBAQIBAQIBA/wBAQEBAQEBAQEBAQEABQEBAQEBAQAACAIAAAADAAcAABwAPAAAzPQIzHQIDPQIzHQKAQEBAQEBAQEBAAQBAQEBAQEAAAAAIAAAAAAFAAcAACQANABUAGQAdACUAKQAzAAA3MxUrAzU7AjUzFScrAjU7AjE1MxUhIzU7ASsCNTsCKwE1MzczFSsDNTsBwEBAQEBAQECAQEBAQEBAQEBA/wBAQMBAQEBAQEDAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAIAQAGAAQABwAADAAcAABM1MxUjNTMVwEDAQAGAQEBAQAAAAAQAAAAAAUABwAAXACMAJwAvAAAzKwE1Iz0EMzU7AhUzHQQjFSc1Iz0CIx0CMxU3NSMVNzUjNSMVMxXAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgEBAQEAAAAAFAAAAAAFAAcAAAwAJAA0AIQAnAAABNTMVAzMVKwE1MzUzFSsBNSM1MzUjNTM1MxUzFSMVMxUjEysBNTsBAQBAgEBAQIBAwEBAQEBAQEBAQECAQEBAQAFAQED/AEBAQEBAQEBAQEBAQEABAEAAAAAAAAAOAK4AAQAAAAAAAAAPACAAAQAAAAAAAQAIAEIAAQAAAAAAAgAGAFkAAQAAAAAAAwAYAJIAAQAAAAAABAAIAL0AAQAAAAAABQAQAOgAAQAAAAAABgAIAQsAAwABBAkAAAAeAAAAAwABBAkAAQAQADAAAwABBAkAAgAMAEsAAwABBAkAAwAwAGAAAwABBAkABAAQAKsAAwABBAkABQAgAMYAAwABBAkABgAQAPkAVgBpAG4AaQBjAGkAdQBzAE0AZQBuAGUAegBpAG8AAFZpbmljaXVzTWVuZXppbwAAbQBvAG4AbwBnAHIAYQBtAABtb25vZ3JhbQAATQBlAGQAaQB1AG0AAE1lZGl1bQAAVgBpAG4AaQBjAGkAdQBzAE0AZQBuAGUAegBpAG8AOgBtAG8AbgBvAGcAcgBhAG0AAFZpbmljaXVzTWVuZXppbzptb25vZ3JhbQAAbQBvAG4AbwBnAHIAYQBtAABtb25vZ3JhbQAAVgBlAHIAcwBpAG8AbgAgADAAMAAxAC4AMAAwADAAIAAAVmVyc2lvbiAwMDEuMDAwIAAAbQBvAG4AbwBnAHIAYQBtAABtb25vZ3JhbQAAAAACAAAAAAAA/4AAMwAAAAAAAAAAAAAAAAAAAAAAAAAAAG4AAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYABhAQIAowCEAIUAvQCWAOgAhgCOAIsBAwEEB3VuaTAwQTAERXVybwd1bmkzMDAwAAAAAAH//wAAAAEAAAAOAAAAGAAgAAAAAgABAAEAbQABAAQAAAACAAAAAQAAAAEAAAAAAAEAAAAAx/6w3wAAAADIeCtBAAAAANbuy70=\n\n========\nOBJECTS\n========\n\nInit\nwhite\n\nWall #\n#222222\n\nBackground .\n#555555\n\nTrail\ntransparent\n\nClick\nblue\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n...............................0\n\nDrag copy:Click\nyellow\n\nPrevDrag\ntransparent\n\nPlayer P\ntransparent\n\nTarget $\nwhite\n................................\n................................\n................................\n................................\n................................\n................................\n....................00..........\n....................000.........\n....................0000........\n....................00000.......\n....................000000......\n....................0000000.....\n....................00000000....\n....................000000000...\n......000000000000000000000000..\n......000000000000000000000000..\n......000000000000000000000000..\n......000000000000000000000000..\n....................000000000...\n....................00000000....\n....................0000000.....\n....................000000......\n....................00000.......\n....................0000........\n....................000.........\n....................00..........\n................................\n................................\n................................\n................................\n................................\n................................\n\nTargetCrate 0\nwhite #F02424 #a8a8a8\n................................\n................................\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111100111111001111110011111100\n01111100011111000111110001111100\n00111100001111000011110000111100\n00111100001111000011110000111100\n00111100001111000011110000111100\n00111100001111000011110000111100\n01111100011111000111110001111100\n11111100111111001111110011111100\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n22222222222222222222222222222222\n22222222222222222222222222222222\n22222222222222222222222222222222\n22222222222222222222222222222222\n................................\n................................\n\nHor1 1\n#a8a8a8 #000000\n................................\n................................\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n11111111111111111111111111111111\n00000000000000000000000000000000\n00000000000000000000000000000000\n00000000000000000000000000000000\n00000000000000000000000000000000\n................................\n................................\n\nHor2 2 copy:Hor1\n#a8a8a8 #040404\n\nHor3 3 copy:Hor1\n#a8a8a8 #080808\n\nHor4 4 copy:Hor1\n#a8a8a8 #0b0b0b\n\nHor5 5 copy:Hor1\n#a8a8a8 #101010\n\nHor6 6 copy:Hor1\n#a8a8a8 #141414\n\nHor7 7 copy:Hor1\n#a8a8a8 #181818\n\nVer1 a\nWHITE\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n\nVer2 b copy:Ver1\n#fdfdfd\n\nVer3 c copy:Ver1\n#fbfbfb\n\nVer4 d copy:Ver1\n#f9f9f9\n\nVer5 e copy:Ver1\n#f7f7f7\n\nVer6 f copy:Ver1\n#f5f5f5\n\nVer7 g copy:Ver1\n#f3f3f3\n\nVer8 h copy:Ver1\n#f1f1f1\n\nCursor\nWhite #333333\n00000000................00000000\n01111110................01111110\n01111110................01111110\n01100000................00000110\n0110........................0110\n0110........................0110\n0110........................0110\n0000........................0000\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n0000........................0000\n0110........................0110\n0110........................0110\n0110........................0110\n01100000................00000110\n01111110................01111110\n01111110................01111110\n00000000................00000000\n\nWarp1\n#F02424 #555555 transparent transparent\n................................\n................................\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n................................\n\nWarp2 copy:Warp1\ntransparent transparent #F02424 #555555\n\nWarp3\n#F02424 #555555 transparent transparent\n................................\n................................\n11000000000000....22222222222233\n11000000000000....22222222222233\n1100000000000......2222222222233\n110000000000........222222222233\n11000000000..........22222222233\n1100000000............2222222233\n110000000..............222222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n11000000................22222233\n110000000..............222222233\n1100000000............2222222233\n11000000000..........22222222233\n110000000000........222222222233\n1100000000000......2222222222233\n11000000000000....22222222222233\n11000000000000....22222222222233\n................................\n................................\n\nWarp4 copy:Warp3\ntransparent transparent #F02424 #555555\n\nWarpA\n#F02424 #555555 transparent transparent\n..3333333333333333333333333333..\n..3333333333333333333333333333..\n..2222222222222222222222222222..\n..2222222222222222222222222222..\n..2222222222222222222222222222..\n..2222222222222222222222222222..\n..2222222222222222222222222222..\n..2222222222222222222222222222..\n.........22222222222222.........\n..........222222222222..........\n...........2222222222...........\n............22222222............\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n............00000000............\n...........0000000000...........\n..........000000000000..........\n.........00000000000000.........\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..1111111111111111111111111111..\n..1111111111111111111111111111..\n\nWarpB copy:WarpA\ntransparent transparent #F02424 #555555\n\nWarpC\n#F02424 #555555 transparent transparent\n..3333333333333333333333333333..\n..3333333333333333333333333333..\n..2222222222222222222222222222..\n..2222222222222222222222222222..\n..2222222222222222222222222222..\n..2222222222222222222222222222..\n..2222222222222222222222222222..\n..2222222222222222222222222222..\n..2222222222222..2222222222222..\n..222222222222....222222222222..\n...2222222222......2222222222...\n....22222222........22222222....\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n....00000000........00000000....\n...0000000000......0000000000...\n..000000000000....000000000000..\n..0000000000000..0000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n..1111111111111111111111111111..\n..1111111111111111111111111111..\n\nWarpD copy:WarpC\ntransparent transparent #F02424 #555555\n\nLeftEdge\n#555555 transparent white\n00000000000000000000000000000000\n00000000000000000000000000000000\n0000000.........................\n00000...........................\n0000............................\n000.............................\n000.............................\n00..............................\n00..............................\n00..............................\n00......22......................\n00.....222......................\n00....2222......................\n00....2222......................\n00....2222......................\n00....2222......................\n00.....222......................\n00......22......................\n00..............................\n00..............................\n00..............................\n001.............................\n001.............................\n0011............................\n00111...........................\n0001111.........................\n000.............................\n0000............................\n00000...........................\n0000000.........................\n00000000000000000000000000000000\n00000000000000000000000000000000\n\nLeftEdgeIndent copy:LeftEdge\ntransparent #a8a8a8 transparent\n\nRightEdge\n#555555 transparent white\n00000000000000000000000000000000\n00000000000000000000000000000000\n.........................0000000\n...........................00000\n............................0000\n.............................000\n.............................000\n..............................00\n..............................00\n..............................00\n......................22......00\n......................222.....00\n......................2222....00\n......................2222....00\n......................2222....00\n......................2222....00\n......................222.....00\n......................22......00\n..............................00\n..............................00\n..............................00\n.............................100\n.............................100\n............................1100\n...........................11100\n.........................1111000\n.............................000\n............................0000\n...........................00000\n.........................0000000\n00000000000000000000000000000000\n00000000000000000000000000000000\n\nRightEdgeIndent copy:RightEdge\ntransparent #a8a8a8 transparent\n\nTopEdge\n#555555 white black\n00000000000000000000000000000000\n00000000000000000000000000000000\n0000000..................0000000\n00000......................00000\n0000........................0000\n000..........................000\n000...........2222...........000\n00...........222222...........00\n00..........22222222..........00\n00..........22222222..........00\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n\nBottomEdge\n#555555 #00000060 black\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n............22222222............\n............22222222............\n.............222222.............\n..............2222..............\n..1..........................1..\n..1..........................1..\n..11........................11..\n..1111....................1111..\n..0111111111111111111111111110..\n..0111111111111111111111111110..\n..0011111111111111111111111100..\n..0000111111111111111111110000..\n..0000000000000000000000000000..\n..0000000000000000000000000000..\n\nSign\ntransparent white\n................................\n................................\n................................\n................................\n....111111111111111111111111....\n..1111111111111111111111111111..\n.111111111111111111111111111111.\n.111100000000000000000000001111.\n11110000000000000000000000001111\n11100000000000000000000000000111\n11100000000000000000000000000111\n11100000000000000000000000000111\n11100000000000000000000000000111\n11100000000000000000000000000111\n11100000000000000000000000000111\n11100000000000000000000000000111\n11100000000000000000000000000111\n11100000000000000000000000000111\n11100000000000000000000000000111\n11100000000000000000000000000111\n11100000000000000000000000000111\n11100000000000000000000000000111\n11100000000000000000000000000111\n11110000000000000000000000001111\n.111100000000000000000000001111.\n.111111111111111111111111111111.\n..1111111111111111111111111111..\n....111111111111111111111111....\n................................\n................................\n................................\n................................\n\nSignOne\nwhite transparent\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n........000.......1111..........\n........0000.....111111.........\n..........00....111..111........\n..........00....11....11........\n..........00....11....11........\n..........00....11....11........\n..........00....11111111........\n..........00....11111111........\n..........00....11....11........\n..........00....11....11........\n........000000..11....11........\n........000000..11....11........\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n\nSignTwo\nwhite transparent\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n..........00....1111............\n.........0000...11111...........\n........000000..11..11..........\n........00..00..11..11..........\n............00..11..11..........\n...........000..11..111.........\n..........000...11111111........\n.........000....11111111........\n........000.....11....11........\n........00......11....11........\n........000000..1111111.........\n........000000...11111..........\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n\nSignThree\nwhite transparent \n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n........0000......1111..........\n........00000....11111..........\n...........000..111.............\n...........000..11..............\n..........000...11..............\n..........000...11..............\n...........000..11..............\n............00..11..............\n............00..11..............\n...........000..111.............\n........00000....11111..........\n........0000......1111..........\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n\nSignA copy:SignOne\ntransparent white\n\nSignB copy:SignTwo\ntransparent white\n\nSignC copy:SignThree\ntransparent white\n\nSignD\nwhite\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................000000..........\n................0000000.........\n................00...000........\n................00....00........\n................00....00........\n................00....00........\n................00....00........\n................00....00........\n................00....00........\n................00...000........\n................0000000.........\n................000000..........\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n\n\nSignE\nwhite\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................000000..........\n................000000..........\n................000.............\n................00..............\n................0000............\n................0000............\n................00..............\n................00..............\n................00..............\n................000.............\n................000000..........\n................000000..........\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n\nUndoButton\nwhite gray black\n................................\n................................\n......00000000000000000000......\n....000000000000000000000000....\n...00000000000000000000000000...\n...00000000000000000000000000...\n..0000002222222222222222000000..\n..0000002222222222222222200000..\n..0000000000000000000002220000..\n..0000000000000000000000220000..\n..0000000000000000000000220000..\n..0000000000000000000000220000..\n..0000000000220000000000220000..\n..0000000002220000000000220000..\n..0000000022220000000000220000..\n..0000000222220000000002220000..\n..0000002222222222222222200000..\n..0000002222222222222222000000..\n..0000000222220000000000000000..\n..0000000022220000000000000000..\n..0000000002220000000000000000..\n..0000000000220000000000000000..\n..1000000000000000000000000001..\n..1000000000000000000000000001..\n..1100000000000000000000000011..\n..1111000000000000000000001111..\n...11111111111111111111111111...\n...11111111111111111111111111...\n....111111111111111111111111....\n......11111111111111111111......\n................................\n................................\n\nUndoText\nwhite transparent\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n....00000000........1111111.....\n....00000000........11111111....\n..........00........11....11....\n.........000........11....11....\n........000.........11111111....\n.......000..........1111111.....\n......000...........11.111......\n.....000............11..111.....\n....00000000........11...111....\n....00000000........11....11....\n................................\n................................\n..000000000000....111111111111..\n................................\n................................\n................................\n\nRetryText copy:UndoText\ntransparent white\n\nRetryButton\nwhite gray black\n................................\n................................\n......00000000000000000000......\n....000000000000000000000000....\n...00000000000222220000000000...\n...00000000022222222200000000...\n..0000000002220000022200000000..\n..0000000022000000000220000000..\n..0000000220000000000022000000..\n..0000002200000000000002200000..\n..0000002200000000000002200000..\n..0000000000000000000000220000..\n..0000000000000000000000220000..\n..0000000000000000000000220000..\n..0000222222200000000000220000..\n..0000222222000000000000220000..\n..0000222220000000000002200000..\n..0000222200000000000002200000..\n..0000222220000000000022000000..\n..0000220022000000000220000000..\n..0000200002220000022200000000..\n..0000000000222222222000000000..\n..1000000000002222200000000001..\n..1000000000000000000000000001..\n..1100000000000000000000000011..\n..1111000000000000000000001111..\n...11111111111111111111111111...\n...11111111111111111111111111...\n....111111111111111111111111....\n......11111111111111111111......\n................................\n................................\n\nQuitButton\n#F02424 white white #F02424\n................................\n................................\n......33333333333333333333......\n....333333333333333333333333....\n...33300000000000000000000333...\n...33300000000000000000000333...\n..3300002200000000000022000033..\n..3300002220000000000222000033..\n..3300000222000000002220000033..\n..3300000022200000022200000033..\n..3300000002220000222000000033..\n..3300000000222002220000000033..\n..3300000000022222200000000033..\n..3300000000002222000000000033..\n..3300000000002222000000000033..\n..3300000000022222200000000033..\n..3300000000222002220000000033..\n..3300000002220000222000000033..\n..3300000022200000022200000033..\n..3300000222000000002220000033..\n..3300002220000000000222000033..\n..3300002200000000000022000033..\n..1000000000000000000000000001..\n..1000000000000000000000000001..\n..1100000000000000000000000011..\n..1111000000000000000000001111..\n...11111111111111111111111111...\n...11111111111111111111111111...\n....111111111111111111111111....\n......11111111111111111111......\n................................\n................................\n\nQuitText\nwhite\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n...00000...00000...00000........\n..000000..000000..000000........\n..00......00......00............\n..00......00......00............\n..0000....00000...00............\n..0000.....00000..00............\n..00..........00..00............\n..00..........00..00............\n..000000..000000..000000........\n...00000..00000....00000........\n................................\n................................\n00000000000000000000000000......\n................................\n................................\n................................\n\nWallTopLeft\n#222222 transparent transparent transparent\n0000........................1111\n00............................11\n0..............................1\n0..............................1\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n2..............................3\n22............................33\n\nWallTopRight copy:WallTopLeft\ntransparent #222222 transparent transparent\n\nWallBottomLeft copy:WallTopLeft\ntransparent transparent #222222 transparent\n\nWallBottomRight copy:WallTopLeft\ntransparent transparent transparent #222222\n\n\nCross\nred #000000FF\n................................\n................................\n........11............11........\n.......1111..........1111.......\n......110011........110011......\n.....11000011......11000011.....\n....1100000011....1100000011....\n....11000000011..11000000011....\n.....1100000001111000000011.....\n......11000000011000000011......\n.......110000000000000011.......\n........1100000000000011........\n.........11000000000011.........\n..........110000000011..........\n..........110000000011..........\n.........11000000000011.........\n........1100000000000011........\n.......110000000000000011.......\n......11000000011000000011......\n.....1100000001111000000011.....\n....11000000011..11000000011....\n....1100000011....1100000011....\n.....11000011......11000011.....\n......110011........110011......\n.......1111..........1111.......\n........11............11........\n................................\n................................\n................................\n................................\n................................\n................................\n\nStageEdge s\n#22222244 #22222288 #222222BB #222222 \n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n........................00112233\n\nWarpEffectR copy:StageEdge\ntransparent #55555544 #55555588 #555555BB\n\nWarpEffectL\n#55555544 #55555588 #555555BB\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n221100..........................\n\nWarpEffectU\n#55555544 #55555588 #555555BB\n22222222222222222222222222222222\n22222222222222222222222222222222\n11111111111111111111111111111111\n11111111111111111111111111111111\n00000000000000000000000000000000\n00000000000000000000000000000000\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n\nWarpEffectD\n#55555544 #55555588 #555555BB\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n................................\n00000000000000000000000000000000\n00000000000000000000000000000000\n11111111111111111111111111111111\n11111111111111111111111111111111\n22222222222222222222222222222222\n22222222222222222222222222222222\n\n=======\nLEGEND\n=======\n\nCantLeaveLevel = 1 or 2 or 3 or 4 or 5 or 6 or 7\nHorCrate = 0 or CantLeaveLevel\nVerCrate = a or b or c or d or e or f or g or h\n\nCrate = HorCrate or VerCrate\n\nHorEdge = LeftEdge or RightEdge\nIndent = LeftEdgeIndent or RightEdgeIndent\nVerEdge = TopEdge or BottomEdge\nEdge = HorEdge or VerEdge\n\nVerBlock = HorCrate or Wall\nHorBlock = VerCrate or Wall\n\nSolid = Wall or Crate\n\nLeftWarp = Warp2 or Warp4\nRightWarp = Warp1 or Warp3\nUpWarp = WarpA or WarpC\nDownWarp = WarpB or WarpD\n\nHorWarp = LeftWarp or RightWarp\nVerWarp = DownWarp or UpWarp\n\nWarpIn = Warp1 or Warp3 or WarpA or WarpC \nWarpOut = Warp2 or Warp4 or WarpB or WarpD \n\nWarp = WarpIn or WarpOut\n\nHorWarpable = VerWarp or HorEdge\nVerWarpable = HorWarp or VerEdge\nWarpable = Warp or Edge\n\n~ = a and Warp1\n` = a and Warp2\n% = a and Warp3\n+ = a and Warp4\n' = 1 and WarpA\n\" = 1 and WarpB\n@ = b and Warp1\nx = 2 and WarpA\n\n{ = Warp1 and Wall\n} = Warp2 and Wall\n/ = Warp3 and Wall\n\\ = Warp4 and Wall\n! = WarpA and Wall\n? = WarpB and Wall\n: = WarpC and Wall\n; = WarpD and Wall\n\nu = UndoButton and Wall\ni = UndoText and Wall\n\nr = RetryButton and Wall\nj = RetryText and Wall\n\nq = QuitButton and Wall\nn = QuitText and Wall\n\nã = Sign and SignOne and Wall\ná = Sign and SignOne and SignA and Wall\né = Sign and SignOne and SignB and Wall\ní = Sign and SignOne and SignC and Wall\n\nõ = Sign and SignTwo and Wall\nà = Sign and SignTwo and SignA and Wall\nè = Sign and SignTwo and SignB and Wall\nì = Sign and SignTwo and SignC and Wall\nò = Sign and SignTwo and SignD and Wall\n\nâ = Sign and SignThree and Wall\nä = Sign and SignThree and SignA and Wall\në = Sign and SignThree and SignB and Wall\nï = Sign and SignThree and SignC and Wall\nö = Sign and SignThree and SignD and Wall\nü = Sign and SignThree and SignE and Wall\n\nWarpEffect = WarpEffectR or WarpEffectL or WarpEffectU or WarpEffectD\n\n=========\nSOUNDS\n=========\n\nsfx0 85035307 (Placing cursor)\nsfx1 71905507 (Valid mode)\nsfx2 77591104 (cancel) \n\ncancel 77591104\nendlevel 92534500\n\nundo 71905507\nrestart 7017709\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall\n\nHorCrate\nVerCrate\n\nLeftEdgeIndent\nRightEdgeIndent\n\nWarpA\nWarpB\nWarpC\nWarpD\nWarp1\nWarp2\nWarp3\nWarp4\n\nTopEdge\nBottomEdge\nLeftEdge\nRightEdge\nInit\n\nStageEdge\nWarpEffect\n\nWallTopLeft, WallBottomLeft\nWallTopRight, WallBottomRight\n\nSign, UndoButton, UndoText, RetryButton, RetryText, QuitButton, QuitText\nSignOne, SignTwo, SignThree\nSignA, SignB, SignC, SignD, SignE\n\nCursor\nClick, Drag\nTrail\nPrevDrag\n\nCross\n\n======\nRULES\n======\n\n(Cleanup visuals from last round, if any)\n[Cross] -> []\n[WarpEffect] -> []\n[Indent] -> []\n\n(Attempt to check if this is the first turn)\nrandom [Background] -> [Background Init]\n[Init] [Cursor] -> [] [Cursor]\n\n(Initialization: generate block edges)\nleft [Init] [0 | no 0] -> [Init] [0 LeftEdge | ]\nright [Init] [0 | no 0] -> [Init] [0 RightEdge | ]\nleft [Init] [1 | no 1] -> [Init] [1 LeftEdge | ]\nright [Init] [1 | no 1] -> [Init] [1 RightEdge | ]\nleft [Init] [2 | no 2] -> [Init] [2 LeftEdge | ]\nright [Init] [2 | no 2] -> [Init] [2 RightEdge | ]\nleft [Init] [3 | no 3] -> [Init] [3 LeftEdge | ]\nright [Init] [3 | no 3] -> [Init] [3 RightEdge | ]\nleft [Init] [4 | no 4] -> [Init] [4 LeftEdge | ]\nright [Init] [4 | no 4] -> [Init] [4 RightEdge | ]\nleft [Init] [5 | no 5] -> [Init] [5 LeftEdge | ]\nright [Init] [5 | no 5] -> [Init] [5 RightEdge | ]\nleft [Init] [6 | no 6] -> [Init] [6 LeftEdge | ]\nright [Init] [6 | no 6] -> [Init] [6 RightEdge | ]\nleft [Init] [7 | no 7] -> [Init] [7 LeftEdge | ]\nright [Init] [7 | no 7] -> [Init] [7 RightEdge | ]\n\nup [Init] [a | no a] -> [Init] [a TopEdge | ]\ndown [Init] [a | no a] -> [Init] [a BottomEdge | ]\nup [Init] [b | no b] -> [Init] [b TopEdge | ]\ndown [Init] [b | no b] -> [Init] [b BottomEdge | ]\nup [Init] [c | no c] -> [Init] [c TopEdge | ]\ndown [Init] [c | no c] -> [Init] [c BottomEdge | ]\nup [Init] [d | no d] -> [Init] [d TopEdge | ]\ndown [Init] [d | no d] -> [Init] [d BottomEdge | ]\nup [Init] [e | no e] -> [Init] [e TopEdge | ]\ndown [Init] [e | no e] -> [Init] [e BottomEdge | ]\nup [Init] [f | no f] -> [Init] [f TopEdge | ]\ndown [Init] [f | no f] -> [Init] [f BottomEdge | ]\nup [Init] [g | no g] -> [Init] [g TopEdge | ]\ndown [Init] [g | no g] -> [Init] [g BottomEdge | ]\nup [Init] [h | no h] -> [Init] [h TopEdge | ]\ndown [Init] [h | no h] -> [Init] [h BottomEdge | ]\n\n(Generate wall edges)\ndown [Init] [Wall no VerWarp | no Wall] -> [Init] [Wall | WallTopLeft WallTopRight]\nup [Init] [Wall no VerWarp | no Wall] -> [Init] [Wall | WallBottomLeft WallBottomRight]\n\nleft [Init] [no Wall | WallTopRight] -> [Init] [ | ]\nleft [Init] [HorWarp | WallTopRight] -> [Init] [HorWarp | ]\nright [Init] [no Wall | WallTopLeft] -> [Init] [ | ]\nright [Init] [HorWarp | WallTopLeft] -> [Init] [HorWarp | ]\n\nleft [Init] [no Wall | WallBottomRight] -> [Init] [ | ]\nleft [Init] [HorWarp | WallBottomRight] -> [Init] [HorWarp | ]\nright [Init] [no Wall | WallBottomLeft] -> [Init] [ | ]\nright [Init] [HorWarp | WallBottomLeft] -> [Init] [HorWarp | ]\n\n[Init] -> []\n\n(Cleaning & Input handling)\n[Trail] -> []\n\n[Click UndoButton] -> undo\n[Click RetryButton] -> restart\n[Click QuitButton] -> quit\n\n[Click] [Cursor] -> [Click] []\n[Click] [PrevDrag] -> [Click] []\n[Click] -> [Cursor PrevDrag] sfx0 nosave\n\n[Cursor] [PrevDrag | Drag] -> [> Cursor ] [ | PrevDrag]\n[horizontal Cursor verCrate] -> [Cursor verCrate]\n[vertical Cursor horCrate] -> [Cursor horCrate]\n\n[horizontal Cursor horCrate] -> [horizontal Cursor horizontal horCrate] sfx1\n[vertical Cursor verCrate] -> [vertical Cursor vertical verCrate] sfx1\n\n[Click] -> []\n[Drag] -> []\n\n(Pass movement to all crates of the same type)\n(Horizontal)\nstartloop\n\n\n [> 0] [stationary 0] -> [> 0] [> 0]\n +[> 1] [stationary 1] -> [> 1] [> 1]\n +[> 2] [stationary 2] -> [> 2] [> 2]\n +[> 3] [stationary 3] -> [> 3] [> 3]\n +[> 4] [stationary 4] -> [> 4] [> 4]\n +[> 5] [stationary 5] -> [> 5] [> 5]\n +[> 6] [stationary 6] -> [> 6] [> 6]\n +[> 7] [stationary 7] -> [> 7] [> 7]\n \n (If moving a car would push another one, attempt to push that one too)\n +horizontal [> horCrate | stationary horCrate] -> [> horCrate | > horCrate]\n \n (If being pushed into a portal, attempt to push any block on the other side)\n +horizontal [> HorCrate | Warp1] [Warp2 | stationary HorCrate] -> [> HorCrate | Warp1] [Warp2 | > HorCrate]\n +horizontal [> HorCrate | Warp2] [Warp1 | stationary HorCrate] -> [> HorCrate | Warp2] [Warp1 | > HorCrate]\n +horizontal [> HorCrate | Warp3] [Warp4 | stationary HorCrate] -> [> HorCrate | Warp3] [Warp4 | > HorCrate]\n +horizontal [> HorCrate | Warp4] [Warp3 | stationary HorCrate] -> [> HorCrate | Warp4] [Warp3 | > HorCrate]\n \nendloop\n\n(Vertical)\nstartloop\n +[> a] [stationary a] -> [> a] [> a]\n +[> b] [stationary b] -> [> b] [> b]\n +[> c] [stationary c] -> [> c] [> c]\n +[> d] [stationary d] -> [> d] [> d]\n +[> e] [stationary e] -> [> e] [> e]\n +[> f] [stationary f] -> [> f] [> f]\n +[> g] [stationary g] -> [> g] [> g]\n +[> h] [stationary h] -> [> h] [> h]\n\n (If moving a car would push another one, attempt to push that one too)\n +vertical [> verCrate | stationary verCrate] -> [> verCrate | > verCrate]\n \n (If being pushed into a portal, attempt to push any block on the other side)\n +vertical [> VerCrate | WarpA] [WarpB | stationary VerCrate] -> [> VerCrate | WarpA] [WarpB | > VerCrate]\n +vertical [> VerCrate | WarpB] [WarpA | stationary VerCrate] -> [> VerCrate | WarpB] [WarpA | > VerCrate]\n +vertical [> VerCrate | WarpC] [WarpD | stationary VerCrate] -> [> VerCrate | WarpC] [WarpD | > VerCrate]\n +vertical [> VerCrate | WarpD] [WarpC | stationary VerCrate] -> [> VerCrate | WarpD] [WarpC | > VerCrate]\n\nendloop\n\n(Prevent moving cars with teleporters on them if there's currently a car partially sticking out of that portal)\nright [LeftWarp vertical VerCrate | HorCrate no LeftEdge] -> [LeftWarp VerCrate | HorCrate Cross]\nleft [RightWarp vertical VerCrate | HorCrate no RightEdge] -> [RightWarp VerCrate | HorCrate Cross]\n\ndown [UpWarp horizontal HorCrate | VerCrate no TopEdge] -> [UpWarp HorCrate | VerCrate Cross]\nup [DownWarp horizontal HorCrate | verCrate no BottomEdge] -> [DownWarp HorCrate | verCrate Cross]\n\n(Any crosses? Then the turn is invalid, stop all movement)\n[Cross] [> Crate] -> [Cross] [Crate]\n[Cross] [> Cursor] -> [Cross] [Cursor] sfx2\n\n(Move teleporters & edges that are attached to blocks)\n[> HorCrate VerWarp] -> [> HorCrate > VerWarp]\n[> VerCrate HorWarp] -> [> VerCrate > HorWarp]\n\n[> HorCrate HorEdge] -> [> HorCrate > HorEdge]\n[> VerCrate VerEdge] -> [> VerCrate > VerEdge]\n\n(Resolve movement for all non-teleporting crates that can move)\n[> HorCrate | No HorWarp No Crate] -> [ | HorCrate]\n[> VerCrate | No VerWarp No Crate] -> [ | VerCrate]\n\n(Push crates through teleporters, attempt to move cursor first)\nright [> horCrate > Cursor | Warp1] [Warp2 no horCrate] -> [ | Warp1] [Warp2 > horCrate > Cursor]\nleft [> horCrate > Cursor | Warp2] [Warp1 no horCrate] -> [ | Warp2] [Warp1 > horCrate > Cursor]\nright [> horCrate > Cursor | Warp3] [Warp4 no horCrate] -> [ | Warp3] [Warp4 > horCrate > Cursor]\nleft [> horCrate > Cursor | Warp4] [Warp3 no horCrate] -> [ | Warp4] [Warp3 > horCrate > Cursor]\n\nup [> verCrate > Cursor | WarpA] [WarpB no verCrate] -> [ | WarpA] [WarpB > verCrate > Cursor]\ndown [> verCrate > Cursor| WarpB] [WarpA no verCrate] -> [ | WarpB] [WarpA > verCrate > Cursor]\nup [> verCrate > Cursor| WarpC] [WarpD no verCrate] -> [ | WarpC] [WarpD > verCrate > Cursor]\ndown [> verCrate > Cursor| WarpD] [WarpC no verCrate] -> [ | WarpD] [WarpC > verCrate > Cursor]\n\n(Then attempt to push through teleporters normally)\nright [> horCrate | Warp1] [Warp2 no horCrate] -> [ | Warp1] [Warp2 > horCrate]\nleft [> horCrate | Warp2] [Warp1 no horCrate] -> [ | Warp2] [Warp1 > horCrate]\nright [> horCrate | Warp3] [Warp4 no horCrate] -> [ | Warp3] [Warp4 > horCrate]\nleft [> horCrate | Warp4] [Warp3 no horCrate] -> [ | Warp4] [Warp3 > horCrate]\n\nup [> verCrate | WarpA] [WarpB no verCrate] -> [ | WarpA] [WarpB > verCrate]\ndown [> verCrate | WarpB] [WarpA no verCrate] -> [ | WarpB] [WarpA > verCrate]\nup [> verCrate | WarpC] [WarpD no verCrate] -> [ | WarpC] [WarpD > verCrate]\ndown [> verCrate | WarpD] [WarpC no verCrate] -> [ | WarpD] [WarpC > verCrate]\n\n(Push warpable objects through teleporters)\nhorizontal [> HorWarpable | Warp1] [Warp2 | ] -> [ | Warp1] [Warp2 | HorWarpable]\nhorizontal [> HorWarpable | Warp2] [Warp1 | ] -> [ | Warp2] [Warp1 | HorWarpable]\nhorizontal [> HorWarpable | Warp3] [Warp4 | ] -> [ | Warp3] [Warp4 | HorWarpable]\nhorizontal [> HorWarpable | Warp4] [Warp3 | ] -> [ | Warp4] [Warp3 | HorWarpable]\n\nvertical [> VerWarpable | WarpA] [WarpB | ] -> [ | WarpA] [WarpB | VerWarpable]\nvertical [> VerWarpable | WarpB] [WarpA | ] -> [ | WarpB] [WarpA | VerWarpable]\nvertical [> VerWarpable | WarpC] [WarpD | ] -> [ | WarpC] [WarpD | VerWarpable]\nvertical [> VerWarpable | WarpD] [WarpC | ] -> [ | WarpD] [WarpC | VerWarpable]\n\n(MOVEMENT HAPPENS HERE)\n\n(Move validation)\nlate [Cursor no Crate] -> nosave\n\nlate [verCrate VerBlock] -> cancel\nlate [horCrate HorBlock] -> cancel\nlate [verCrate horCrate] -> cancel\nlate [CantLeaveLevel Target] -> cancel\n\n(For warped crates, create a nice effect)\nlate left [RightWarp | HorCrate no RightEdge] -> [RightWarp | HorCrate WarpEffectR]\nlate right [LeftWarp | HorCrate no LeftEdge] -> [LeftWarp | HorCrate WarpEffectL]\nlate up [DownWarp | VerCrate no BottomEdge] -> [DownWarp | VerCrate WarpEffectD]\nlate down [UpWarp | VerCrate no TopEdge] -> [UpWarp | VerCrate WarpEffectU]\n\nlate [LeftEdge no LeftEdgeIndent] -> [LeftEdge LeftEdgeIndent]\nlate [RightEdge no RightEdgeIndent] -> [RightEdge RightEdgeIndent]\n\n==============\nWINCONDITIONS\n==============\n\nAny Target\nAll Target on LeftEdge\n\n=======\nLEVELS\n=======\n\nsection CHAPTER 1\nmessage Chapter 1\nqn#########ã\n###......###\n###....b.###\n##}....b.$s#\n###.....a###\n###00...a{##\n###.....a###\n############\n\nsection 1a Gridlock\nqn#########á\n###2244.e###\n###.33.fe###\n##}.g..fe$s#\n###cg66b.###\n###c00ab.{##\n###c..a11###\nui########jr\n\nsection 1b Single-Lane\nqn#########é\n###00cdef{##\n##}..cdef/##\n##\\....e.$s#\n###g11...###\n###g.222.###\n###.33.44###\nui########jr\n\nsection 1c Horsepower\nqn####:####í\n###11..ga###\n###222.ga###\n###00..ga$s#\n###d.55g.###\n###d.efg.###\n###d.ef66###\nui#####;##jr\n\nsection CHAPTER 2\nmessage Chapter 2\nqn####!####õ\n##}...c../##\n###...c..###\n##\\...c..$s#\n###......###\n###00....{##\n###......###\nui####?###jr\n\nsection 2a Misdirection\nqn#!####:##à\n###111.af###\n###g44baf###\n###g00bhf$s#\n###c55bhd###\n###c.66.d###\n###222..d###\nui#;####?#jr\n\nsection 2b Freeway\nqn#####!###è\n###....dh###\n##}.111dh###\n###00fceg$s#\n###..fceg###\n###.a.333{##\n###.a....###\nui##?#####jr\n\nsection 2c Tridimensional\nqn###!:###ì\n###..44.###\n##\\666e./##\n###..bed###\n###00bed$s#\n##}33b77{##\n###..b11###\nui###?;##jr\n\nsection 2d Airbaggage\nqn#####:###ò\n###4422e.###\n##}11g.ea###\n###00gcba$s#\n###f.dcba###\n###f.d.66{##\n###333...###\nui##;#####jr\n\nsection CHAPTER 3\nmessage Chapter 3\nqn#########â\n###......###\n###a..00.###\n###`.....###\n###a.....$s#\n###......###\n###......{##\nui########jr\n\nsection 3a Convoi Exceptionnel\nqn#########ä\n###`66600###\n###a.....###\n###a.e...$s#\n###55e44f###\n###.c11df###\n###.c..d.{##\nui########jr\n\nsection 3b Carmageddon\nqn#########ë\n###66g.e.###\n###..g.eb###\n###a55.e@$s#\n###`.77.b###\n###a00h..###\n###44.h33###\nui########jr\n\nsection 3c Double Parked\nqn#########ï\n###b.6644###\n###b.d`gh###\n###.fd~gh$s#\n###efd.22###\n###e....c###\n###00...c###\nui########jr\n\nsection 3d Blue Sparks\nqn#########ö\n##\\a.f..h$s#\n###%ef66h###\n###.e55g.###\n###.1'.g.###\n###.3322.###\n###.4400.###\nui#?######jr\n\nsection 3e Tailgating\nqn#########ü\n###...2x.###\n##e.55gh.###\n##e00%gh.$s#\n##.\"1ag#####\n##77.+..####\n##66.333####\nui########jr\n\nsection EPILOGUE\nmessage Epilogue\n############\n###......###\n###......###\n###......###\n###00....$s#\n###......###\n###......###\n############\n\n############\n###..#######\n###....#####\n###......###\n###00....$s#\n###....#####\n###..#######\n############\n\n################\n################\n########.....###\n#######.......##\n######.........#\n########.....###\n#00..$.#.#.#.###\n########.#...###\n\nmessage Finally home, just in time for dinner!\n\nmessage THE END\n\nmessage Game by Tom Hermans. Font \"Monogram\" by Datagoblin. Thank you for playing!",[3],"background quitbutton wall:0,background wall:1,1,1,1,1,1,1,background quittext wall:2,1,1,1,\n1,1,1,1,1,1,1,background wall warp2:3,1,1,1,1,\n1,background walltopleft:4,background:5,5,5,background leftedge leftedgeindent targetcrate:6,background wallbottomleft:7,1,1,5,5,5,\n5,background rightedge rightedgeindent targetcrate:8,5,1,1,5,5,5,5,5,5,1,\n1,5,5,5,5,5,5,1,1,5,background topedge ver2:9,background bottomedge ver2:10,\n5,5,5,1,1,background walltopright:11,5,5,background topedge ver1:12,background ver1:13,background bottomedge ver1 wallbottomright:14,1,\n1,1,1,background target:15,1,background wall warp1:16,1,1,1,1,1,background stageedge wallbottomright:17,\n1,1,1,1,background sign signone wall:18,1,1,1,1,1,1,1,\n",1,"1676841812979.3264"] + ], + + [ + "Kye.ps 8.150", + ["title Kye.ps 8.150\n(Note always before sharing set SOUND_VOL to 0.05 in the HTML)\n( Requires auroriax's Puzzlescript+ fork : https://auroriax.github.io/PuzzleScript/editor.html)\n\n(Note: thank @jcGyo for the movement help)\n\nauthor vexorian\nhomepage vexorian.com\n\n\ncase_sensitive\n\nagain_interval 0.00\n\nsprite_size 16\n\nbackground_color #c0c0c0\ntext_color #000000\n\n(debug)\n\n(throttle_movement 0.01)\n\n\n(verbose_logging)\n(noaction)\n\n\nrun_rules_on_level_start\n\nlevel_select\n\n\n( Various notes about authorshp:\n\n* Kye is a game by Colin Garbutt, released on 1991 !\n* in releasing this puzzlescript port, I wanted to make a good cokmpilation of Kye levels. \n That's why I am including stuff from both Colin Garbutt and Colin Phipps. Colin Garbut released his levels as charity ware, and this game will also be charity ware. Colin Phipps released his levels in his site as (c) 2011 Creative Commons Attribution-ShareAlike 2.5 License. I am releasing my levels with the following zlib license that also includes the puzzlescript code.\n \n * Colin Phipps' python kye page: http://games.moria.org.uk/kye\n\n* Most of the sprites are exact copies of the ones used by Colin Garbut, some of them have slight modifications by me. But it's very small number.\n\n)\n\n(\nzlib License\n\nCopyright (c) 2021, Victor Hugo Soliz Kuncar\n\nThis software is provided 'as-is', without any express or implied\nwarranty. In no event will the authors be held liable for any damages\narising from the use of this software.\n\nPermission is granted to anyone to use this software for any purpose,\nincluding commercial applications, and to alter it and redistribute it\nfreely, subject to the following restrictions:\n\n1. The origin of this software must not be misrepresented; you must not\n claim that you wrote the original software. If you use this software\n in a product, an acknowledgment in the product documentation would be\n appreciated but is not required.\n2. Altered source versions must be plainly marked as such, and must not be\n misrepresented as being the original software.\n3. This notice may not be removed or altered from any source distribution.\n\n)\n\n\n\n\n========\nOBJECTS\n========\n\nBackground\nwhite\n\nPlayerN\n#000000 #00FF00\n.....000000.....\n...0000000000...\n..000011110000..\n.00011111111000.\n.00111111111100.\n0001111111111000\n0011111111111100\n0011111111111100\n0011111111111100\n0011111111111100\n0001111111111000\n.00111111111100.\n.00011111111000.\n..000011110000..\n...0000000000...\n.....000000.....\n\nPlayerL\n#000000 #00FF00\n.....000000.....\n...0000000000...\n..000011110000..\n.00011111111000.\n.00111111111100.\n0001111111111000\n0011111111111100\n0011111111111100\n0011111111111100\n0011111111111100\n0001111111111000\n.00111111111100.\n.00011111111000.\n..000011110000..\n...0000000000...\n.....000000.....\n\n\nPlayerR\n#000000 #00FF00\n.....000000.....\n...0000000000...\n..000011110000..\n.00011111111000.\n.00111111111100.\n0001111111111000\n0011111111111100\n0011111111111100\n0011111111111100\n0011111111111100\n0001111111111000\n.00111111111100.\n.00011111111000.\n..000011110000..\n...0000000000...\n.....000000.....\n\n\nPlayerU\n#000000 #00FF00\n.....000000.....\n...0000000000...\n..000011110000..\n.00011111111000.\n.00111111111100.\n0001111111111000\n0011111111111100\n0011111111111100\n0011111111111100\n0011111111111100\n0001111111111000\n.00111111111100.\n.00011111111000.\n..000011110000..\n...0000000000...\n.....000000.....\n\n\nPlayerD\n#000000 #00FF00\n.....000000.....\n...0000000000...\n..000011110000..\n.00011111111000.\n.00111111111100.\n0001111111111000\n0011111111111100\n0011111111111100\n0011111111111100\n0011111111111100\n0001111111111000\n.00111111111100.\n.00011111111000.\n..000011110000..\n...0000000000...\n.....000000.....\n\nDeathSprite1\n#000000 #00FF00\n.....000.00.....\n...00.000..00...\n..000.11.10.00..\n.0001..11.1...0.\n.0.111.111.11.0.\n0.011.111111100.\n..11111.11.11.00\n0...111111111100\n001.111.1..1.100\n0011111111.1.1..\n0..111.111111..0\n.00.11.1111.100.\n.00..11.111.000.\n..0000.111...0..\n...0.0..00000...\n.....000.00.....\n\nDeathSprite2\n#000000 #00FF00\n.....00.000.....\n.....00..0..0...\n..0000..1...00..\n.0..11.11.1.....\n..01.111.1.1.0..\n...1.1.111...0..\n0.11.1.1.111.1..\n..11........1...\n...1..1..1..110.\n...1.1.1..11..0.\n00...1111..11..0\n.00..11.11.1..0.\n.0.....1........\n....0.1111..0...\n...00.0.000.0...\n......0..00.....\n\n\n\n\n\nDiamond\n#00FFFF #000080 #008080 #0000FF \n................\n.......01.......\n......0011......\n.....000111.....\n....00001111....\n...0000011111...\n..000000111111..\n.00000001111111.\n.33333332222222.\n..333333222222..\n...3333322222...\n....33332222....\n.....333222.....\n......3322......\n.......32.......\n................\n\nDiamondSprite1\ntransparent\n\n\nDiamondSprite2\n#0000FF #008080 #000080 #00FFFF\n................\n.......01.......\n......0011......\n.....000111.....\n....00001111....\n...0000011111...\n..000000111111..\n.00000001111111.\n.33333332222222.\n..333333222222..\n...3333322222...\n....33332222....\n.....333222.....\n......3322......\n.......32.......\n................\n\n\nWallEmpty\n#C0C0C0\n\nWall____\n#C0C0C0 #ffffff #808080\n0000000000000000\n0000000000000000\n0000000000000000\n0001111111110000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0000222222222000\n0000000000000000\n0000000000000000\n0000000000000000\n\nWall1___\n#C0C0C0 #ffffff #808080\n0000000000000000\n0000000000000000\n0000000000000000\n0001111111110000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n.001000000002000\n.000222222222000\n..00000000000000\n...0000000000000\n.....00000000000\n\n\nWall13__\n#C0C0C0 #ffffff #808080\n0000000000000000\n0000000000000000\n0000000000000000\n0001111111110000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n.00100000000200.\n.00022222222200.\n..000000000000..\n...0000000000...\n.....000000.....\n\n\nWall_3__\n#C0C0C0 #ffffff #808080\n0000000000000000\n0000000000000000\n0000000000000000\n0001111111110000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n000100000000200.\n000022222222200.\n00000000000000..\n0000000000000...\n00000000000.....\n\nWall_3_9\n#C0C0C0 #ffffff #808080\n00000000000.....\n0000000000000...\n00000000000000..\n000111111111000.\n000100000000200.\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n000100000000200.\n000022222222200.\n00000000000000..\n0000000000000...\n00000000000.....\n\n\nWall___9\n#C0C0C0 #ffffff #808080\n00000000000.....\n0000000000000...\n00000000000000..\n000111111111000.\n000100000000200.\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0000222222222000\n0000000000000000\n0000000000000000\n0000000000000000\n\nWall1_7_\n#C0C0C0 #ffffff #808080\n.....00000000000\n...0000000000000\n..00000000000000\n.001111111110000\n.001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n.001000000002000\n.000222222222000\n..00000000000000\n...0000000000000\n.....00000000000\n\n\nWall__7_\n#C0C0C0 #ffffff #808080\n.....00000000000\n...0000000000000\n..00000000000000\n.001111111110000\n.001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0000222222222000\n0000000000000000\n0000000000000000\n0000000000000000\n\nWall__79\n#C0C0C0 #ffffff #808080\n.....000000.....\n...0000000000...\n..000000000000..\n.00111111111000.\n.00100000000200.\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0001000000002000\n0000222222222000\n0000000000000000\n0000000000000000\n0000000000000000\n\n\nEarth\n#000000 #FFFF00\n................\n..0.0.0.0.0.0...\n.0.0.0.0.0.0.0..\n..01111111111.0.\n.0.11111111110..\n..01111111111.0.\n.0.11111111110..\n..01111111111.0.\n.0.11111111110..\n..01111111111.0.\n.0.11111111110..\n..01111111111.0.\n.0.11111111110..\n..0.0.0.0.0.0.0.\n...0.0.0.0.0.0..\n................\n\n\nBlock\n#000000 #FFFF00\n................\n..000000000000..\n.00000000000000.\n.00111111111100.\n.00111111111100.\n.00111111111100.\n.00111111111100.\n.00111111111100.\n.00111111111100.\n.00111111111100.\n.00111111111100.\n.00111111111100.\n.00111111111100.\n.00000000000000.\n..000000000000..\n................\n\nTurnerClockwise\n#000000 #FFFF00 #FF0000\n................\n..000000000000..\n.00000000000000.\n.00111111111100.\n.00111211111100.\n.00112221111100.\n.00122222111100.\n.00222222211100.\n.00112221111100.\n.00112221112100.\n.00112222222100.\n.00111222221100.\n.00111111111100.\n.00000000000000.\n..000000000000..\n................\n\nTurnerAntiClockwise\n#000000 #FFFF00 #FF0000\n................\n..000000000000..\n.00000000000000.\n.00111111111100.\n.00111111211100.\n.00111112221100.\n.00111122222100.\n.00111222222200.\n.00111112221100.\n.00121112221100.\n.00122222221100.\n.00112222211100.\n.00111111111100.\n.00000000000000.\n..000000000000..\n................\n\n\n\n\nSquareArrowD\n#000000 #FFFF00 #FF0000\n................\n..000000000000..\n.00000000000000.\n.00111122111100.\n.00111122111100.\n.00111122111100.\n.00111122111100.\n.00222222222200.\n.00222222222200.\n.00122222222100.\n.00112222221100.\n.00111222211100.\n.00111122111100.\n.00000000000000.\n..000000000000..\n................\n\nSquareArrowL\n#000000 #FFFF00 #FF0000\n................\n..000000000000..\n.00000000000000.\n.00111122111100.\n.00111222111100.\n.00112222111100.\n.00122222111100.\n.00222222222200.\n.00222222222200.\n.00122222111100.\n.00112222111100.\n.00111222111100.\n.00111122111100.\n.00000000000000.\n..000000000000..\n................\n\nSquareArrowU\n#000000 #FFFF00 #FF0000\n................\n..000000000000..\n.00000000000000.\n.00111122111100.\n.00111222211100.\n.00112222221100.\n.00122222222100.\n.00222222222200.\n.00222222222200.\n.00111122111100.\n.00111122111100.\n.00111122111100.\n.00111122111100.\n.00000000000000.\n..000000000000..\n................\n\nSquareArrowR\n#000000 #FFFF00 #FF0000\n................\n..000000000000..\n.00000000000000.\n.00111122111100.\n.00111122211100.\n.00111122221100.\n.00111122222100.\n.00222222222200.\n.00222222222200.\n.00111122222100.\n.00111122221100.\n.00111122211100.\n.00111122111100.\n.00000000000000.\n..000000000000..\n................\n\nBouncerR\n#000000 #FFFF00 #FF0000\n................\n..00000000......\n.0000000000.....\n.00111112000....\n.001111122000...\n.0011111222000..\n.00111112222000.\n.00222222222200.\n.00222222222200.\n.00111112222000.\n.0011111222000..\n.001111122000...\n.00111112000....\n.0000000000.....\n..00000000......\n................\n\nBouncerL\n#000000 #FFFF00 #FF0000\n................\n......00000000..\n.....0000000000.\n....00021111100.\n...000221111100.\n..0002221111100.\n.00022221111100.\n.00222222222200.\n.00222222222200.\n.00022221111100.\n..0002221111100.\n...000221111100.\n....00021111100.\n.....0000000000.\n......00000000..\n................\n\n\nBouncerU\n#000000 #FFFF00 #FF0000\n................\n......0000......\n.....000000.....\n....00022000....\n...0002222000...\n..000222222000..\n.00022222222000.\n.00222222222200.\n.00111122111100.\n.00111122111100.\n.00111122111100.\n.00111122111100.\n.00111122111100.\n.00000000000000.\n..000000000000..\n................\n\nBouncerD\n#000000 #FFFF00 #FF0000\n................\n..000000000000..\n.00000000000000.\n.00111122111100.\n.00111122111100.\n.00111122111100.\n.00111122111100.\n.00111122111100.\n.00222222222200.\n.00022222222000.\n..000222222000..\n...0002222000...\n....00022000....\n.....000000.....\n......0000......\n................\n\nRoundBlock\n#000000 #FFFF00\n................\n......0000......\n....00000000....\n...0000110000...\n..000111111000..\n..001111111100..\n.00011111111000.\n.00111111111100.\n.00111111111100.\n.00011111111000.\n..001111111100..\n..000111111000..\n...0000110000...\n....00000000....\n......0000......\n................\n\nRoundArrowR\n#000000 #FFFF00 #FF0000\n................\n......0000......\n....00000000....\n...0000110000...\n..000111211000..\n..001111221100..\n.00011112222000.\n.00222222222200.\n.00222222222200.\n.00011112222000.\n..001111222100..\n..000111221000..\n...0000110000...\n....00000000....\n......0000......\n................\n\n\nRoundArrowU\n#000000 #FFFF00 #FF0000\n................\n......0000......\n....00000000....\n...0000220000...\n..000122221000..\n..001222222100..\n.00022222222000.\n.00122222222100.\n.00111122111100.\n.00011122111000.\n..001112211100..\n..000112211000..\n...0000220000...\n....00000000....\n......0000......\n................\n\n\nRoundArrowD\n#000000 #FFFF00 #FF0000\n................\n......0000......\n....00000000....\n...0000220000...\n..000112211000..\n..001112211100..\n.00011122111000.\n.00111122111100.\n.00122222222100.\n.00022222222000.\n..001222222100..\n..000122221000..\n...0000220000...\n....00000000....\n......0000......\n................\n\nRoundArrowL\n#000000 #FFFF00 #FF0000\n................\n......0000......\n....00000000....\n...0000110000...\n..000122111000..\n..001222111100..\n.00022221111000.\n.00222222222200.\n.00222222222200.\n.00022221111000.\n..001222111100..\n..000122111000..\n...0000110000...\n....00000000....\n......0000......\n................\n\nStickyV\n#000000 #FFFF00 #FF0000\n................\n..000000000000..\n.00000000000000.\n.00222222222200.\n.00222222222200.\n.00002222220000.\n..000011110000..\n....00111100....\n....00111100....\n..000011110000..\n.00002222220000.\n.00222222222200.\n.00222222222200.\n.00000000000000.\n..000000000000..\n................\n\nStickyH\n#000000 #FFFF00 #FF0000\n................\n..0000....0000..\n.000000..000000.\n.002200..002200.\n.00220000002200.\n.00222000022200.\n.00222111122200.\n.00222111122200.\n.00222111122200.\n.00222111122200.\n.00222000022200.\n.00220000002200.\n.002200..002200.\n.000000..000000.\n..0000....0000..\n................\n\n\nBlackHole\n#C0C0C0 #808080 #FFFFFF #000000 #ff0000\n0000000000000000\n0111111111111110\n0111111111111120\n0113433333343220\n0113333333333220\n0113333333333220\n0113333333333220\n0113333333333220\n0113333333333220\n0113343333343220\n0113333333333220\n0113333334333220\n0114333333333220\n0112222222222220\n0122222222222220\n0000000000000000\n\nBlackHoleSprite1\ntransparent\n\nBlackHoleSprite2\n#C0C0C0 #808080 #FFFFFF #000000 #ff0000\n................\n................\n................\n...3333333433...\n...4333333333...\n...3333333333...\n...3344333333...\n...3333333333...\n...3333333433...\n...4334333333...\n...3334343433...\n...3333333333...\n...3333333333...\n................\n................\n................\n\n\nBlackHoleSprite3\n#C0C0C0 #808080 #FFFFFF #000000 #ff0000\n................\n................\n................\n...3333333333...\n...3334333333...\n...3333333433...\n...3334333333...\n...3333333333...\n...3343333333...\n...3343333333...\n...4333334433...\n...3333333333...\n...3333333333...\n................\n................\n................\n\nBlackHoleSprite4\n#C0C0C0 #808080 #FFFFFF #000000 #ff0000\n................\n................\n................\n...3333333333...\n...3343333333...\n...3333343433...\n...3333333333...\n...3333433333...\n...3433333333...\n...3333333333...\n...3333344333...\n...3333333333...\n...3333333333...\n................\n................\n................\n\nDoorLR\n#ff0000 transparent #ff0000\n...........2....\n...........2....\n...........2....\n...........2....\n...........2....\n...........2....\n...........2....\n...........2....\n...........2....\n...........2....\n...........2....\n...........2....\n...........2....\n...........2....\n...........2....\n...........2....\n\n\nDoorLR1\n#ff0000 transparent #ff0000\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n\n\n\nDoorLR2\ntransparent #ff0000 #ff0000\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n.....1100112....\n.....0011002....\n\n\nDoorRL\ntransparent #ff0000 #ff0000\n....2...........\n....2...........\n....2...........\n....2...........\n....2...........\n....2...........\n....2...........\n....2...........\n....2...........\n....2...........\n....2...........\n....2...........\n....2...........\n....2...........\n....2...........\n....2...........\n\n\nDoorRL1\ntransparent #ff0000 #ff0000\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n\n\nDoorRL2\n#ff0000 transparent #ff0000\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n....2110011.....\n....2001100.....\n\nDoorDU\n#ff0000 transparent #ff0000\n................\n................\n................\n................\n2222222222222222\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n\n\nDoorDU1\n#ff0000 transparent #ff0000\n................\n................\n................\n................\n2222222222222222\n0101010101010101\n0101010101010101\n1010101010101010\n1010101010101010\n0101010101010101\n0101010101010101\n................\n................\n................\n................\n................\n\n\n\nDoorDU2\ntransparent #ff0000 #ff0000\n................\n................\n................\n................\n2222222222222222\n0101010101010101\n0101010101010101\n1010101010101010\n1010101010101010\n0101010101010101\n0101010101010101\n................\n................\n................\n................\n................\n\n\nDoorUD\ntransparent #ff0000 #ff0000\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n................\n2222222222222222\n................\n................\n................\n................\n\n\nDoorUD1\ntransparent #ff0000 #ff0000\n................\n................\n................\n................\n................\n0101010101010101\n0101010101010101\n1010101010101010\n1010101010101010\n0101010101010101\n0101010101010101\n2222222222222222\n................\n................\n................\n................\n\nDoorUD2\n#ff0000 transparent #ff0000\n................\n................\n................\n................\n................\n0101010101010101\n0101010101010101\n1010101010101010\n1010101010101010\n0101010101010101\n0101010101010101\n2222222222222222\n................\n................\n................\n................\n\n\n\n\n\n\nBlackHoleBusy1\n#C0C0C0 #808080 #FFFFFF #000000 #ff0000 #00FFFF #0000FF\n0000000000000000\n0111111111111110\n0111111111111120\n0115565555555220\n0115566555655220\n0115555555656220\n0115565555555220\n0115555555555220\n0115556565555220\n0115655556556220\n0115566556556220\n0115555555555220\n0115555555555220\n0112222222222220\n0122222222222220\n0000000000000000\n\nBlackHoleBusy2\n#C0C0C0 #808080 #FFFFFF #000000 #ff0000 #FFFF00 #ff0000\n0000000000000000\n0111111111111110\n0111111111111120\n0115555555555220\n0115655555655220\n0115555565555220\n0115556555655220\n0115655555555220\n0115655555555220\n0115555555565220\n0116555665555220\n0115555665555220\n0115555555565220\n0112222222222220\n0122222222222220\n0000000000000000\n\n\nBlackHoleBusy3\n#C0C0C0 #808080 #FFFFFF #000000 #ff0000 #ff0000 #FFFF00\n0000000000000000\n0111111111111110\n0111111111111120\n0115556655555220\n0115555555555220\n0115665566565220\n0115555555555220\n0115665555555220\n0115555555555220\n0115566655655220\n0115655655555220\n0115555565555220\n0115555555555220\n0112222222222220\n0122222222222220\n0000000000000000\n\n\nBlackHoleBusy4\n#C0C0C0 #808080 #FFFFFF #000000 #ff0000 #800000 #F9F9F9\n0000000000000000\n0111111111111110\n0111111111111120\n0115555555555220\n0115655655655220\n0115556555655220\n0115555555555220\n0115565555555220\n0115556555655220\n0115555555555220\n0115565566565220\n0115555555565220\n0115555555555220\n0112222222222220\n0122222222222220\n0000000000000000\n\nBlackHoleBusy5\n#C0C0C0 #808080 #FFFFFF #000000 #ff0000 #800000 #F9F9F9\n0000000000000000\n0111111111111110\n0111111111111120\n0115555555555220\n0115655655655220\n0115556555655220\n0115555555555220\n0115565555555220\n0115556555655220\n0115555555555220\n0115565566565220\n0115555555565220\n0115555555555220\n0112222222222220\n0122222222222220\n0000000000000000\n\n(Ok this is messy to explain, but by taking the intersection of the three sprites, I have a placeable icon for the beast in the editor that will NOT be changed to an invalid sprite when I leave edit mode)\nGnasher\n#000000 #FF0000\n................\n................\n................\n..0..00..00..0..\n.00..........00.\n................\n................\n................\n................\n................\n................\n.00..........00.\n..0..00..00..0..\n................\n................\n................\n\nGnasher1\n#000000 #FF0000\n..000000000000..\n.00000000000000.\n.00..00..00..00.\n.00..00..00..00.\n.00..00..00..00.\n.11..........11.\n.11..........11.\n.11..........11.\n.11..........11.\n.11..........11.\n.11..........11.\n.00..00..00..00.\n.00..00..00..00.\n.00..00..00..00.\n.00000000000000.\n..000000000000..\n\nGnasher2\n#000000 #FF0000\n................\n................\n................\n..000000000000..\n.00000000000000.\n.00..00..00..00.\n.00..00..00..00.\n.00..00..00..00.\n.00..00..00..00.\n.00..00..00..00.\n.00..00..00..00.\n.00000000000000.\n..000000000000..\n................\n................\n................\n\nGnasher3\n#000000 #FF0000\n..000000000000..\n.00000000000000.\n.00..00..00..00.\n.00..00..00..00.\n.00..11..11..00.\n.11..........11.\n.11..........11.\n.11..........11.\n.11..........11.\n.11..........11.\n.11..........11.\n.00..11..11..00.\n.00..00..00..00.\n.00..00..00..00.\n.00000000000000.\n..000000000000..\n\n\n(This thing with the sprite intersections is both the smartest AND dumbest thing I've ever done )\nVirus\n#000000\n................\n................\n.......00.......\n................\n................\n.......0000000..\n........0000000.\n.............00.\n.............00.\n........0000000.\n.......0000000..\n................\n................\n.......00.......\n................\n................\n\n\nVirus1\n#000000\n................\n..0000000.......\n.00000000.......\n.00.............\n.00.............\n.0000000000000..\n..0000000000000.\n.............00.\n.............00.\n........0000000.\n.......0000000..\n.......00.......\n.......00.......\n.......00.......\n................\n................\n\nVirus2\n#000000\n................\n................\n.......00.......\n.......00.......\n.......00.......\n.......0000000..\n........0000000.\n.............00.\n.............00.\n..0000000000000.\n.0000000000000..\n.00.............\n.00.............\n.00000000.......\n..0000000.......\n................\n\nBlob\n#000000 #FF00FF\n................\n................\n................\n......0.........\n................\n...0............\n...0.1.....00...\n..00.01.1.000...\n.00010...11.0...\n.00.1111.11100..\n.00.11111...00..\n..00......0.0...\n...0.00..0......\n.....00.........\n................\n................\n\nBlob1\n#000000 #FF00FF\n................\n................\n....0000000.....\n...0000000000...\n...00111010000..\n...00111111100..\n...00111111000..\n..00001011000...\n.000100111100...\n.0011111111100..\n.0001111101100..\n..000011110100..\n...00001101000..\n.....00000000...\n......00000.....\n................\n\nBlob2\n#000000 #FF00FF\n................\n................\n.......000......\n......00000.....\n.....000100.....\n...000011100....\n..00010011000...\n..001011110000..\n.0001000111100..\n.0001111111100..\n.0001111110100..\n.0001100010100..\n..001000000000..\n..00000..0000...\n...000....00....\n................\n\nBlob3\n#000000 #FF00FF\n................\n................\n................\n...0000.........\n..000000........\n..0011000000....\n..00111000000...\n..000011100000..\n.0001011011100..\n.0011111011100..\n.0011111110000..\n.000110000000...\n..001000000.....\n..00000.........\n...000..........\n................\n\nTwister\n#000000 #FF00FF\n................\n.....0....0.....\n.....0....0.....\n................\n................\n.00...0000...00.\n.....000000.....\n.....001100.....\n.....001100.....\n.....000000.....\n.00...0000...00.\n................\n................\n.....0....0.....\n.....0....0.....\n................\n\nTwister1\n#000000 #FF00FF\n................\n.....000000.....\n.....000000.....\n.......00.......\n.......00.......\n.00...0000...00.\n.00..000000..00.\n.00000011000000.\n.00000011000000.\n.00..000000..00.\n.00...0000...00.\n.......00.......\n.......00.......\n.....000000.....\n.....000000.....\n................\n\n\nTwister2\n#000000 #FF00FF\n................\n....00....00....\n...000....000...\n..000......000..\n.00000....00000.\n.00.00000000.00.\n.....000000.....\n.....001100.....\n.....001100.....\n.....000000.....\n.00.00000000.00.\n.00000....00000.\n..000......000..\n...000....000...\n....00....00....\n................\n\n\nSpike\n#000000\n................\n................\n.......00.......\n.......00.......\n.......00.......\n.......00.......\n......0000......\n..000000000000..\n..000000000000..\n......0000......\n.......00.......\n.......00.......\n.......00.......\n.......00.......\n................\n................\n\n\nSpike1\n#000000\n.......00.......\n......0000......\n.....000000.....\n.......00.......\n.......00.......\n..0....00....0..\n.00...0000...00.\n0000000000000000\n0000000000000000\n.00...0000...00.\n..0....00....0..\n.......00.......\n.......00.......\n.....000000.....\n......0000......\n.......00.......\n\nSpike2\n#000000\n................\n................\n.......00.......\n......0000......\n.....000000.....\n....0..00..0....\n...00.0000.00...\n..000000000000..\n..000000000000..\n...00.0000.00...\n....0..00..0....\n.....000000.....\n......0000......\n.......00.......\n................\n................\n\n\nTimer9\n#000000 #FFFF00 #FF0000\n.... .... .... ....\n..000000000000..\n.00000000000000.\n.00111111111100.\n.00111111111100.\n.00111222211100.\n.00112211221100.\n.00112211221100.\n.00111222221100.\n.00111111221100.\n.00111112211100.\n.00111222111100.\n.00111111111100.\n.00000000000000.\n..000000000000..\n................\n\n\nTimer8\n#000000 #FFFF00 #FF0000\n................\n..000000.0.0....\n.0000000.....00.\n.00111111111100.\n.00111111111100.\n.00111222211100.\n.00112211221100.\n.00112211221100.\n.00111222211100.\n.00112211221100.\n.00112211221100.\n.00111222211100.\n.00111111111100.\n.00000000000000.\n..000000000000..\n................\n\nTimer7\n#000000 #FFFF00 #FF0000\n................\n..000000.0.0.0..\n.0000000........\n.001111111111.0.\n.001111111111...\n.001122222211.0.\n.001122112211...\n.001111112211...\n.00111112211100.\n.00111122111100.\n.00111221111100.\n.00111221111100.\n.00111111111100.\n.00000000000000.\n..000000000000..\n................\n\nTimer6\n#000000 #FFFF00 #FF0000\n................\n..000000.0.0.0..\n.0000000........\n.001111111111.0.\n.001111111111...\n.001111222111.0.\n.001112211111...\n.001122111111.0.\n.001122222111...\n.001122112211.0.\n.001122112211...\n.001112222111.0.\n.00111111111100.\n.00000000000000.\n..000000000000..\n................\n\nTimer5\n#000000 #FFFF00 #FF0000\n................\n..000000.0.0.0..\n.0000000........\n.001111111111.0.\n.001111111111...\n.001122222211.0.\n.001122111111...\n.001122222111.0.\n.001111112211...\n.001111112211.0.\n.001122112211...\n.001112222111.0.\n.001111111111...\n.000000000....0.\n..00000000..0...\n................\n\nTimer4\n#000000 #FFFF00 #FF0000\n................\n..000000.0.0.0..\n.0000000........\n.001111111111.0.\n.001111111111...\n.001111122211.0.\n.001111222211...\n.001112212211.0.\n.001122112211...\n.001122222221.0.\n.001111112211...\n.001111112211.0.\n.001111111111...\n.0000.........0.\n..000.0.0.0.0...\n................\n\nTimer3\n#000000 #FFFF00 #FF0000\n................\n..000000.0.0.0..\n.0000000........\n.001111111111.0.\n.001111111111...\n.001112222111.0.\n.001122112211...\n.001111112211.0.\n.001111222111...\n.001111112211.0.\n.001122112211...\n.001112222111.0.\n...1111111111...\n..............0.\n..0.0.0.0.0.0...\n................\n\n\nTimer2\n#000000 #FFFF00 #FF0000\n................\n..000000.0.0.0..\n.0000000........\n.001111111111.0.\n.001111111111...\n.001112222111.0.\n.001122112211...\n...1111112211.0.\n.0.1111222111...\n...1112211111.0.\n.0.1122112211...\n...1122222211.0.\n.0.1111111111...\n..............0.\n..0.0.0.0.0.0...\n................\n\nTimer1\n#000000 #FFFF00 #FF0000\n................\n..000000.0.0.0..\n..000000........\n...1111111111.0.\n.0.1111111111...\n...1111221111.0.\n.0.1122221111...\n...1111221111.0.\n.0.1111221111...\n...1111221111.0.\n.0.1111221111...\n...1122222211.0.\n.0.1111111111...\n..............0.\n..0.0.0.0.0.0...\n................\n\n\nTimer0\n#000000 #FFFF00 #FF0000\n................\n...0.0.0.0.0.0..\n.0..............\n...1111111111.0.\n.0.1111111111...\n...1112222111.0.\n.0.1122112211...\n...1122122211.0.\n.0.1122222211...\n...1122212211.0.\n.0.1122112211...\n...1112222111.0.\n.0.1111111111...\n..............0.\n..0.0.0.0.0.0...\n................\n\nAutoSliderSprite\n#000000 #FFFF00 #FF0000 #0000FF\n..000000000000..\n.00000000000000.\n0001111111111000\n0011111221111100\n0011111221111100\n0011111111111100\n0011111111111100\n0012211111122100\n0012211111122100\n0011111111111100\n0011111111111100\n0011111221111100\n0011111221111100\n0001111111111000\n.00000000000000.\n..000000000000..\n\nAutoSliderSpriteR\n#000000 #FFFF00 #FF0000 #0000FF\n................\n................\n................\n................\n................\n..........3.....\n..........33....\n......3333333...\n......3333333...\n..........33....\n..........3.....\n................\n................\n................\n................\n................\n\nAutoSliderSpriteL\n#000000 #FFFF00 #FF0000 #0000FF\n................\n................\n................\n................\n................\n.....3..........\n....33..........\n...3333333......\n...3333333......\n....33..........\n.....3..........\n................\n................\n................\n................\n................\n\nAutoSliderSpriteU\n#000000 #FFFF00 #FF0000 #0000FF\n................\n................\n................\n.......33.......\n......3333......\n.....333333.....\n.......33.......\n.......33.......\n.......33.......\n.......33.......\n................\n................\n................\n................\n................\n................\n\nAutoSliderSpriteD\n#000000 #FFFF00 #FF0000 #0000FF\n................\n................\n................\n................\n................\n................\n.......33.......\n.......33.......\n.......33.......\n.......33.......\n.....333333.....\n......3333......\n.......33.......\n................\n................\n................\n\nAutoSliderU\ntransparent\n\nAutoSliderD\ntransparent\n\nAutoSliderR\ntransparent\n\nAutoSliderL\ntransparent\n\n\nAutoRockySprite\n#000000 #FFFF00 #0000FF #FF0000\n....00000000....\n...0000000000...\n..000111111000..\n.00011122111000.\n0001111221111000\n0011111111111100\n0011111111111100\n0012211111122100\n0012211111122100\n0011111111111100\n0011111111111100\n0001111221111000\n.00011122111000.\n..000111111000..\n...0000000000...\n....00000000....\n\n\nAutoRockySpriteR\n#000000 #FFFF00 #0000FF #FF0000\n................\n................\n................\n................\n................\n..........3.....\n..........33....\n......3333333...\n......3333333...\n..........33....\n..........3.....\n................\n................\n................\n................\n................\n\nAutoRockySpriteL\n#000000 #FFFF00 #0000FF #FF0000\n................\n................\n................\n................\n................\n.....3..........\n....33..........\n...3333333......\n...3333333......\n....33..........\n.....3..........\n................\n................\n................\n................\n................\n\nAutoRockySpriteU\n#000000 #FFFF00 #0000FF #FF0000\n................\n................\n................\n.......33.......\n......3333......\n.....333333.....\n.......33.......\n.......33.......\n.......33.......\n.......33.......\n................\n................\n................\n................\n................\n................\n\nAutoRockySpriteD\n#000000 #FFFF00 #0000FF #FF0000\n................\n................\n................\n................\n................\n................\n.......33.......\n.......33.......\n.......33.......\n.......33.......\n.....333333.....\n......3333......\n.......33.......\n................\n................\n................\n\n\n\nAutoRockyR\ntransparent\n\nAutoRockyL\ntransparent\n\nAutoRockyU\ntransparent\n\nAutoRockyD\ntransparent\n\n\n\n\nTopLeft\ntransparent\n\nTic4_0\ntransparent\n\nTic4_1\ntransparent\n\nTic4_2\ntransparent\n\nTic4_3\ntransparent\n\n\nTic5_0\ntransparent\n\nTic5_1\ntransparent\n\nTic5_2\ntransparent\n\nTic5_3\ntransparent\n\nTic5_4\ntransparent\n\nTic3_0\ntransparent\n\nTic3_1\ntransparent\n\nTic3_2\ntransparent\n\n\n\n\nPendingMoveR\ntransparent\n\nPendingMoveL\ntransparent\n\nPendingMoveU\ntransparent\n\nPendingMoveD\ntransparent\n\nNever\ntransparent\n\nUNKNOWN\n#FF00FF\n\nGotAllDiamonds\ntransparent\n\nToR\ntransparent\n\nToL\ntransparent\n\nToU\ntransparent\n\nToD\ntransparent\n\n\nSlideR1\ntransparent\n\nSlideR2\ntransparent\n\nSlideL1\ntransparent\n\nSlideL2\ntransparent\n\nSlideU1\ntransparent\n\nSlideU2\ntransparent\n\nSlideD1\ntransparent\n\nSlideD2\ntransparent\n\n\nSpawnPoint\ntransparent\n\n\nThreeLives\ntransparent\n\nTwoLives\ntransparent\n\nOneLife\ntransparent\n\nRespawnSearch\nred\n\nKyeColumn\ntransparent\n\nKyeRow\ntransparent\n\nKyeLastSeenHere\ntransparent\n\nRealTime\ntransparent\n\n\nDieRoll1\ntransparent\n\nDieRoll2\ntransparent\n\nDieRoll3\ntransparent\n\nDieRoll4\ntransparent\n\nDieRoll5\ntransparent\n\nDieRoll6\ntransparent\n\nPlaceHolder1\ntransparent\n\nPlaceHolder2\ntransparent\n\nPlaceHolder3\ntransparent\n\n\nBlockedDoor\ntransparent\n\nFirstTic\ntransparent\n\nRow00\ntransparent\n\nRow01\ntransparent\n\nRow02\ntransparent\n\nRow03\ntransparent\n\nRow04\ntransparent\n\nRow05\ntransparent\n\nRow06\ntransparent\n\nRow07\ntransparent\n\nRow08\ntransparent\n\nRow09\ntransparent\n\nRow10\ntransparent\n\nRow11\ntransparent\n\nRow12\ntransparent\n\nRow13\ntransparent\n\nRow14\ntransparent\n\nRow15\ntransparent\n\nRow16\ntransparent\n\nRow17\ntransparent\n\nRow18\ntransparent\n\nAutoCountdown00\ntransparent\n\nAutoCountdown01\ntransparent\n\nAutoCountdown02\ntransparent\n\nAutoCountdown03\ntransparent\n\nAutoCountdown04\ntransparent\n\nAutoCountdown05\ntransparent\n\nAutoCountdown06\ntransparent\n\nAutoCountdown07\ntransparent\n\nAutoCountdown08\ntransparent\n\nAutoCountdown09\ntransparent\n\nAutoCountdown10\ntransparent\n\nAutoCountdown11\ntransparent\n\nAutoCountdown12\ntransparent\n\nAutoCountdown13\ntransparent\n\nAutoCountdown14\ntransparent\n\nAutoCountdown15\ntransparent\n\nAutoCountdown16\ntransparent\n\nAutoCountdown17\ntransparent\n\nAutoCountdown18\ntransparent\n\nAutoCountdown19\ntransparent\n\n\n\nColM0\ntransparent\n\nColM1\ntransparent\n\nColM2\ntransparent\n\nColM3\ntransparent\n\nKyeJustPushed\ntransparent\n\nForbidKyePush\ntransparent\n\nBouncerFlip\ntransparent\n\nBeastU\ntransparent\n\nBeastD\ntransparent\n\nBeastR\ntransparent\n\nBeastL\ntransparent\n\n=======\nLEGEND\n=======\n\n. = Background\n( = Background)\nK = Background and PlayerN\n\n* = Background and Diamond\n\n\n\n\n\n1 = Background and Wall1___\n2 = Background and Wall13__\n3 = Background and Wall_3__\n4 = Background and Wall1_7_\n5 = Background and Wall____\n6 = Background and Wall_3_9\n7 = Background and Wall__7_\n8 = Background and Wall__79\n9 = Background and Wall___9\n\n\nr = Background and SquareArrowR\nl = Background and SquareArrowL\nd = Background and SquareArrowD\nu = Background and SquareArrowU\n\nb = Background and Block\nB = Background and RoundBlock\ne = Background and Earth\n\n\n> = Background and RoundArrowR\n< = Background and RoundArrowL\n^ = Background and RoundArrowU\nv = Background and RoundArrowD\n\nc = Background and TurnerAntiClockwise\na = Background and TurnerClockwise\n\n\nS = Background and StickyH\ns = Background and StickyV\n\nU = Background and BouncerU\nD = Background and BouncerD\nL = Background and BouncerL\nR = Background and BouncerR\n\nH = BlackHole\n\nC = Background and Blob\n~ = Background and Virus\n[ = Background and Spike\nE = Background and Gnasher\nT = Background and Twister\n\nf = Background and DoorLR\ng = Background and DoorRL\nh = Background and DoorUD\ni = Background and DoorDU\n\n\nA = Background and AutoSliderSprite\nF = Background and AutoRockySprite\n\n} = Background and Timer3\n| = Background and Timer4\n{ = Background and Timer5\nz = Background and Timer6\ny = Background and Timer7\nx = Background and Timer8\nw = Background and Timer9\n\n\nKye = PlayerN or PlayerU or PlayerD or PlayerL or PlayerR\nplayer = Kye\n\n(Control how frequently things move or animate:)\n\nTicB4 = Tic4_0 or Tic4_1 or Tic4_2 or Tic4_3\nTicB5 = Tic5_0 or Tic5_1 or Tic5_2 or Tic5_3 or Tic5_4\nTicB3 = Tic3_0 or Tic3_1 or Tic3_2\n\nTicM2 = Tic4_0 or Tic4_2\nTicN2 = Tic4_1 or Tic4_3\n\nTicM5 = Tic5_0\n\nTicM4 = Tic4_0\n\nTicM1 = Tic4_0 or Tic4_1 or Tic4_2 or Tic4_3\n\nTicM3 = Tic3_0\n\nDiamondTic = TicM5\n\nKyeTic = TicM1\n\nBouncerTic = TicM5\nBeastTic = TicM5\n\n\n\n\nColumnModule = ColM0 or ColM1 or ColM2 or ColM3\n\nRowNumber = Row00 or Row01 or Row02 or Row03 or Row04 or Row05 or Row06 or Row07 or Row08 or Row09 or Row10 or Row11 or Row12 or Row13 or Row14 or Row15 or Row16 or Row17 or Row18\n\nAutoCountdown = AutoCountdown00 or AutoCountdown01 or AutoCountdown02 or AutoCountdown03 or AutoCountdown04 or AutoCountdown05 or AutoCountdown06 or AutoCountdown07 or AutoCountdown08 or AutoCountdown09 or AutoCountdown10 or AutoCountdown11 or AutoCountdown12 or AutoCountdown13 or AutoCountdown14 or AutoCountdown15 or AutoCountdown16 or AutoCountdown17 or AutoCountdown18 or AutoCountdown19\n\n\n\nMagnetQuickTic= TicM1\n\nMagnetL2Tic= BouncerTic\n\nArrowTic = TicM1\n\nDoorTic1 = Tic4_0\nDoorTic2 = Tic4_2\n\nBlackHoleConsumptionTic = TicM4\nBlackHoleConsumptionTicHalf = TicM2\n\nBlackHoleSpriteTic = TicM4\n\n(other classifications:)\n\nWall = Wall____ or Wall1___ or Wall13__ or Wall1_7_ or Wall_3__ or Wall_3_9 or Wall__7_ or Wall__79 or Wall___9\n\n\nDoorLRSprite = DoorLR1 or DoorLR2\nDoorRLSprite = DoorRL1 or DoorRL2\nDoorUDSprite = DoorUD1 or DoorUD2\nDoorDUSprite = DoorDU1 or DoorDU2\nDoorSprite = DoorLRSprite or DoorRLSprite or DoorUDSprite or DoorDUSprite\nDoor = DoorLR or DoorRL or DoorUD or DoorDU\n\n\nArrowR = SquareArrowR or RoundArrowR\nArrowL = SquareArrowL or RoundArrowL\nArrowU = SquareArrowU or RoundArrowU\nArrowD = SquareArrowD or RoundArrowD\n\nRoundArrow = RoundArrowR or RoundArrowL or RoundArrowU or RoundArrowD\nSquareArrow = SquareArrowR or SquareArrowL or SquareArrowU or SquareArrowD\n\nCorner9 = RoundBlock or Wall_3_9 or Wall__79 or Wall___9 or RoundArrow\nCorner7 = RoundBlock or Wall1_7_ or Wall__7_ or Wall__79 or RoundArrow\nCorner3 = RoundBlock or Wall13__ or Wall_3__ or Wall_3_9 or RoundArrow\nCorner1 = RoundBlock or Wall1___ or Wall13__ or Wall1_7_ or RoundArrow\n\nBouncer = BouncerR or BouncerL or BouncerU or BouncerD\n\nAutoSlider = AutoSliderU or AutoSliderD or AutoSliderL or AutoSliderR\nAutoRocky = AutoRockyU or AutoRockyD or AutoRockyL or AutoRockyR\nAutoSomething = AutoSlider or AutoRocky or AutoSliderSprite or AutoRockySprite\n\nArrow = SquareArrow or RoundArrow\n\nTurner = TurnerClockwise or TurnerAntiClockwise\n\nSticky = StickyV or StickyH\n\n\nBlob12 = Blob1 or Blob2\nBlob13 = Blob1 or Blob3\nBlob23 = Blob2 or Blob3\nBlobSprite = Blob1 or Blob2 or Blob3\n\nGnasherSprite = Gnasher1 or Gnasher2 or Gnasher3\n\n\nGnasher13 = Gnasher1 or Gnasher3\n\nVirusSprite = Virus1 or Virus2\nSpikeSprite = Spike1 or Spike2\nTwisterSprite = Twister1 or Twister2\n\nBeast = Gnasher or Blob or Virus or Twister or Spike\n\nBeastMove = BeastR or BeastL or BeastU or BeastD\nBeastV = BeastU or BeastD\nBeastH = BeastR or BeastL\nBeastRU = BeastR or BeastU\nBeastRD = BeastR or BeastD\nBeastLU = BeastL or BeastU\nBeastLD = BeastL or BeastD\n\nDieRoll1_2 = DieRoll1 or DieRoll2\nDieRoll3_4 = DieRoll3 or DieRoll4\n\nBeastFoolishMoveProb = DieRoll1 or DieRoll2 \n\nBlackHoleBusy = BlackHoleBusy1 or BlackHoleBusy2 or BlackHoleBusy3 or BlackHoleBusy4 or BlackHoleBusy5\n\nTimer = Timer0 or Timer1 or Timer2 or Timer3 or Timer4 or Timer5 or Timer6 or Timer7 or Timer8 or Timer9\n\nObject = Kye or Wall or Block or RoundBlock or Earth or Arrow or UNKNOWN or Diamond or Turner or Sticky or Bouncer or BlackHoleBusy or Beast or BlockedDoor or Timer or AutoSomething\nObjectOrBlackHole = Object or BlackHole\n\nKyePushable = Block or RoundBlock or Arrow or Turner or Sticky or Bouncer or Timer or AutoSomething\n\nBouncerPushable = KyePushable or BlackHoleBusy or Beast or Timer or AutoSomething\n\n(It's curious how Auto Slider/ Auto Rockys can't be manipulated with stickies )\n\nStickable = Block or RoundBlock or Arrow or Turner or Sticky or Bouncer or Beast\n\nNotStickableH = StickyH\nNotStickableV = StickyV\n\n\nQuickMagnetable = Block or RoundBlock or Arrow or Turner or Sticky or Timer\nMagnetableL2 = Bouncer or Beast\n\nDiamondSprite = DiamondSprite1 or DiamondSprite2\n\n\nBlackHoleSprite = BlackHoleSprite1 or BlackHoleSprite2 or BlackHoleSprite3 or BlackHoleSprite4\n\nAutoSliderArmSprite = AutoSliderSpriteU or AutoSliderSpriteD or AutoSliderSpriteL or AutoSliderSpriteR\n\nAutoRockyArmSprite = AutoRockySpriteU or AutoRockySpriteD or AutoRockySpriteL or AutoRockySpriteR\n\n\nDeathSprites = DeathSprite1 or DeathSprite2\n\nAltSprites = DiamondSprite or BlackHoleSprite or DeathSprites or WallEmpty or GnasherSprite or VirusSprite or BlobSprite or TwisterSprite or SpikeSprite or AutoSliderArmSprite or AutoRockyArmSprite\nTo = ToU or ToD or ToL or ToR\nSlide = SlideR1 or SlideL1 or SlideU1 or SlideD1 or SlideR2 or SlideL2 or SlideU2 or SlideD2\nSlideH = SlideR1 or SlideL1\nSlideV = SlideU1 or SlideD1\n\nPendingMove = PendingMoveL or PendingMoveR or PendingMoveU or PendingMoveD\n\nLives = ThreeLives or TwoLives or OneLife\n\nDieRoll = DieRoll1 or DieRoll2 or DieRoll3 or DieRoll4 or DieRoll5 or DieRoll6\n\nPlaceholder = PlaceHolder1 or PlaceHolder2 or PlaceHolder3\n\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nDoor\nDoorSprite\nBlackHole\nObject\nAltSprites\nTopLeft\nTicB3\nTicB4\nTicB5\nPendingMove\nNever\nGotAllDiamonds\nTo\nSlideR1\nSlideL1\nSlideU1\nSlideD1\nSlideR2\nSlideL2\nSlideU2\nSlideD2\nRowNumber\nColumnModule\nAutoCountdown\nSpawnPoint\nLives\nRealTime\nKyeLastSeenHere\nKyeColumn\nKyeRow\nDieRoll\nPlaceHolder1\nPlaceHolder2\nPlaceHolder3\nRespawnSearch\nFirstTic\nKyeJustPushed\nForbidKyePush\nBouncerFlip\nBeastL, BeastR\nBeastU, BeastD\n\n======\nRULES\n======\n\n( preconditions )\n( A late rule at the end will put these two objects together, even though many rules expect them to not be the same. This undoes the effect of that rule)\n[ BlackHole BlackHoleBusy ] -> [ BlackHoleBusy ]\n\n( Same with auto sliders, the idea here is that the editor uses AutoSliderSprite, no matter the direction, but for the game logic it is easier to treat it as a single object )\n[ AutoSliderSprite AutoSliderSpriteR ] -> [ AutoSliderR]\n[ AutoSliderSprite AutoSliderSpriteL ] -> [ AutoSliderL]\n[ AutoSliderSprite AutoSliderSpriteD ] -> [ AutoSliderD]\n[ AutoSliderSprite AutoSliderSpriteU ] -> [ AutoSliderU]\n[ AutoSliderSprite ] -> [ AutoSliderU]\n\n[ AutoRockySprite AutoRockySpriteR ] -> [ AutoRockyR]\n[ AutoRockySprite AutoRockySpriteL ] -> [ AutoRockyL]\n[ AutoRockySprite AutoRockySpriteD ] -> [ AutoRockyD]\n[ AutoRockySprite AutoRockySpriteU ] -> [ AutoRockyU]\n[ AutoRockySprite ] -> [ AutoRockyU]\n\n\n\n\n[ action Kye Door ] -> [ Kye Door ] checkpoint message Checkpoint Saved\n\n\n(Speed up )\n[ action Kye ] -> [ Kye ]\n\n\n(Ensure Doors are locked)\n[ Door no BlockedDoor no Kye ] -> [ Door BlockedDoor ]\n\n(Tic Helpers )\n[Kye] -> [ Kye FirstTic ]\n[ TopLeft ][ FirstTic ] -> [ TopLeft ][]\n\n[ TopLeft ] -> []\nup [ Background | ] -> [ action Background | ]\nleft [ Background | ] -> [ action Background | ]\n\n[ stationary Background ] -> [ Background TopLeft ]\n[ action Background ] -> [ stationary Background ]\n\n[ RealTime ] -> []\n[ TopLeft ][ stationary Kye ] -> [ TopLeft RealTime ][ Kye ]\n\n( Transfer the FirstTic property to the unique TopLeft cell)\n[ TopLeft no Kye ][ FirstTic Kye ] -> [ TopLeft FirstTic ][ Kye ]\n\n[ TicB4 no TopLeft ] -> [ ]\n[ RealTime Tic4_3 ] -> [ RealTime ]\n[ RealTime Tic4_2 ] -> [ RealTime Tic4_3 ]\n[ RealTime Tic4_1 ] -> [ RealTime Tic4_2 ]\n[ RealTime Tic4_0 ] -> [ RealTime Tic4_1 ]\n[ RealTime TopLeft no TicB4 ] -> [ RealTime TopLeft Tic4_0 ]\n\n[ TicB3 no TopLeft ] -> [ ]\n[ RealTime Tic3_2 ] -> [ RealTime ]\n[ RealTime Tic3_1 ] -> [ RealTime Tic3_2 ]\n[ RealTime Tic3_0 ] -> [ RealTime Tic3_1 ]\n[ RealTime TopLeft no TicB3 ] -> [ RealTime TopLeft Tic3_0 ]\n\n\n\n[ TicB5 no TopLeft ] -> [ ]\n[ RealTime Tic5_4 ] -> [ RealTime ]\n[ RealTime Tic5_3 ] -> [ RealTime Tic5_4 ]\n[ RealTime Tic5_2 ] -> [ RealTime Tic5_3 ]\n[ RealTime Tic5_1 ] -> [ RealTime Tic5_2 ]\n[ RealTime Tic5_0 ] -> [ RealTime Tic5_1 ]\n[ RealTime TopLeft no TicB5 ] -> [ RealTime TopLeft Tic5_0 ]\n\n(This fixes some issues)\n[ FirstTic RealTime ] -> [ FirstTic ]\n\n\n( stuff to do during the first tic)\n\n\n( : Number the freaking Rows)\n[ FirstTic TopLeft no Row00 ] -> [ FirstTic TopLeft Row00 ]\nright [FirstTic][ Row00 | no Row00 ] -> [FirstTic][ Row00 | Row00 ]\ndown [FirstTic][ Row00 | no Row01 ] -> [FirstTic][ Row00 | Row01 ]\ndown [FirstTic][ Row01 | no Row02 ] -> [FirstTic][ Row01 | Row02 ]\ndown [FirstTic][ Row02 | no Row03 ] -> [FirstTic][ Row02 | Row03 ]\ndown [FirstTic][ Row03 | no Row04 ] -> [FirstTic][ Row03 | Row04 ]\ndown [FirstTic][ Row04 | no Row05 ] -> [FirstTic][ Row04 | Row05 ]\ndown [FirstTic][ Row05 | no Row06 ] -> [FirstTic][ Row05 | Row06 ]\ndown [FirstTic][ Row06 | no Row07 ] -> [FirstTic][ Row06 | Row07 ]\ndown [FirstTic][ Row07 | no Row08 ] -> [FirstTic][ Row07 | Row08 ]\ndown [FirstTic][ Row08 | no Row09 ] -> [FirstTic][ Row08 | Row09 ]\ndown [FirstTic][ Row09 | no Row10 ] -> [FirstTic][ Row09 | Row10 ]\ndown [FirstTic][ Row10 | no Row11 ] -> [FirstTic][ Row10 | Row11 ]\ndown [FirstTic][ Row11 | no Row12 ] -> [FirstTic][ Row11 | Row12 ]\ndown [FirstTic][ Row12 | no Row13 ] -> [FirstTic][ Row12 | Row13 ]\ndown [FirstTic][ Row13 | no Row14 ] -> [FirstTic][ Row13 | Row14 ]\ndown [FirstTic][ Row14 | no Row15 ] -> [FirstTic][ Row14 | Row15 ]\ndown [FirstTic][ Row15 | no Row16 ] -> [FirstTic][ Row15 | Row16 ]\ndown [FirstTic][ Row16 | no Row17 ] -> [FirstTic][ Row16 | Row17 ]\ndown [FirstTic][ Row17 | no Row18 ] -> [FirstTic][ Row17 | Row18 ]\ndown [FirstTic][ Row18 | no Row18 ] -> [FirstTic][ Row18 | Row18 ]\n\n( : Number the colums)\n\n[ FirstTic TopLeft no ColM0 ] -> [ FirstTic TopLeft ColM0 ]\nstartloop\n right [ FirstTic ][ ColM0 | no ColM1 ] -> [ FirstTic ][ ColM0 | ColM1 ]\n right [ FirstTic ][ ColM1 | no ColM2 ] -> [ FirstTic ][ ColM1 | ColM2 ]\n right [ FirstTic ][ ColM2 | no ColM3 ] -> [ FirstTic ][ ColM2 | ColM3 ]\n right [ FirstTic ][ ColM3 | no ColM0 ] -> [ FirstTic ][ ColM3 | ColM0 ]\nendloop\ndown [FirstTic][ ColumnModule | no ColumnModule ] -> [FirstTic][ ColumnModule | ColumnModule ]\n\n\n( : Initial AutoSomething direction )\n( TODO: it is not random, it depends on horizontal position )\n[ FirstTic ][ AutoRocky ColM0 ] -> [ FirstTic ][ AutoRockyL ColM0 ]\n[ FirstTic ][ AutoRocky ColM1 ] -> [ FirstTic ][ AutoRockyU ColM1 ]\n[ FirstTic ][ AutoRocky ColM2 ] -> [ FirstTic ][ AutoRockyR ColM2 ]\n[ FirstTic ][ AutoRocky ColM3 ] -> [ FirstTic ][ AutoRockyD ColM3 ]\n\n[ FirstTic ][ AutoSlider ColM0 ] -> [ FirstTic ][ AutoSliderL ColM0 ]\n[ FirstTic ][ AutoSlider ColM1 ] -> [ FirstTic ][ AutoSliderU ColM1 ]\n[ FirstTic ][ AutoSlider ColM2 ] -> [ FirstTic ][ AutoSliderR ColM2 ]\n[ FirstTic ][ AutoSlider ColM3 ] -> [ FirstTic ][ AutoSliderD ColM3 ]\n\n\n\n\n\n( Rotate the Autos )\n[ RealTime BouncerTic ][ AutoRockyR ] -> [ RealTime BouncerTic ][ PlaceHolder1 ]\n[ RealTime BouncerTic ][ AutoRockyD ] -> [ RealTime BouncerTic ][ AutoRockyR ]\n[ RealTime BouncerTic ][ AutoRockyL ] -> [ RealTime BouncerTic ][ AutoRockyD ]\n[ RealTime BouncerTic ][ AutoRockyU ] -> [ RealTime BouncerTic ][ AutoRockyL ]\n [ PlaceHolder1 ] -> [ AutoRockyU ]\n\n\n[ RealTime BouncerTic ][ AutoSliderR ] -> [ RealTime BouncerTic ][ PlaceHolder1 ]\n[ RealTime BouncerTic ][ AutoSliderD ] -> [ RealTime BouncerTic ][ AutoSliderR ]\n[ RealTime BouncerTic ][ AutoSliderL ] -> [ RealTime BouncerTic ][ AutoSliderD ]\n[ RealTime BouncerTic ][ AutoSliderU ] -> [ RealTime BouncerTic ][ AutoSliderL ]\n [ PlaceHolder1 ] -> [ AutoSliderU ]\n\n\n( : Queued Kye Moves )\n\n[ up Kye ] -> [ PendingMoveU Kye ]\n[ down Kye ] -> [ PendingMoveD Kye ]\n[ right Kye ] -> [ PendingMoveR Kye ]\n[ left Kye ] -> [ PendingMoveL Kye ]\n\n[ RealTime KyeTic ][ Kye PendingMoveU ] -> [ RealTime KyeTic ][ up Kye]\n[ RealTime KyeTic ][ Kye PendingMoveD ] -> [ RealTime KyeTic ][ down Kye]\n[ RealTime KyeTic ][ Kye PendingMoveR ] -> [ RealTime KyeTic ][ right Kye]\n[ RealTime KyeTic ][ Kye PendingMoveL ] -> [ RealTime KyeTic ][ left Kye]\n\n( Mark the Spawn point)\n\n[ TopLeft ] -> [ action TopLeft ]\n[ action TopLeft ][ SpawnPoint ] -> [ TopLeft ][ SpawnPoint ]\n[ action TopLeft ][ Kye ] -> [ TopLeft ][ Kye SpawnPoint ThreeLives ]\n[ action TopLeft ] -> [ TopLeft SpawnPoint ThreeLives ] (whoops)\n\n\n\n\n(Arrow movement)\n\n[RealTime ArrowTic][ ArrowR ] -> [RealTime ArrowTic][ right ArrowR ]\n[RealTime ArrowTic][ ArrowL ] -> [RealTime ArrowTic][ left ArrowL ]\n[RealTime ArrowTic][ ArrowU ] -> [RealTime ArrowTic][ up ArrowU ]\n[RealTime ArrowTic][ ArrowD ] -> [RealTime ArrowTic][ down ArrowD ]\n\n( Bouncer movement )\n\n[RealTime BouncerTic][ BouncerR ] -> [ RealTime BouncerTic ][ right BouncerR ]\n[RealTime BouncerTic][ BouncerL ] -> [ RealTime BouncerTic ][ left BouncerL ]\n[RealTime BouncerTic][ BouncerU ] -> [ RealTime BouncerTic ][ up BouncerU ]\n[RealTime BouncerTic][ BouncerD ] -> [ RealTime BouncerTic ][ down BouncerD ]\n\n\n(Monster kill)\n[ Beast | Kye ] -> [ Beast | ]\n\n(Monster Movement)\n\n[ KyeColumn ] -> []\n[ KyeRow ] -> []\n[ Kye ] -> [ Kye KyeColumn KyeRow ]\nvertical [ KyeColumn | ... | no KyeColumn ] -> [ KyeColumn | ... | KyeColumn ]\nhorizontal [ KyeRow | ... | no KyeRow ] -> [ KyeRow | ... | KyeRow ]\n\n\nhorizontal [RealTime BeastTic][ stationary Beast no KyeColumn | ... | KyeColumn ] -> [RealTime BeastTic][ > Beast | ... | KyeColumn ]\n[RealTime BeastTic][ right Beast ] -> [RealTime BeastTic][ BeastR stationary Beast ]\n[RealTime BeastTic][ left Beast ] -> [RealTime BeastTic][ BeastL stationary Beast ]\n\nvertical [RealTime BeastTic][ stationary Beast no KyeRow | ... | KyeRow ] -> [RealTime BeastTic][ > Beast | ... | KyeRow ]\n[RealTime BeastTic][ up Beast ] -> [RealTime BeastTic][ BeastU stationary Beast ]\n[RealTime BeastTic][ down Beast ] -> [RealTime BeastTic][ BeastD stationary Beast ]\n\nup [ BeastU | Object ] -> [ | Object ]\ndown [ BeastD | Object ] -> [ | Object ]\nright [ BeastR | Object ] -> [ | Object ]\nleft [ BeastL | Object ] -> [ | Object ]\n\n\n[ RealTime BeastTic ][ Beast no BeastMove ] -> [ RealTime BeastTic ][ action Beast ]\n\n\nhorizontal [RealTime BeastTic][ action Beast no KyeColumn | ... | KyeColumn ] -> [RealTime BeastTic][ > Beast | ... | KyeColumn ]\n[RealTime BeastTic][ right Beast ] -> [RealTime BeastTic][ BeastR stationary Beast ]\n[RealTime BeastTic][ left Beast ] -> [RealTime BeastTic][ BeastL stationary Beast ]\n\nvertical [RealTime BeastTic][ action Beast no KyeRow | ... | KyeRow ] -> [RealTime BeastTic][ > Beast | ... | KyeRow ]\n[RealTime BeastTic][ up Beast ] -> [RealTime BeastTic][ BeastU stationary Beast ]\n[RealTime BeastTic][ down Beast ] -> [RealTime BeastTic][ BeastD stationary Beast ]\n\n\n[ BeastR BeastU ] -> [ random BeastRU ]\n[ BeastR BeastD ] -> [ random BeastRD ]\n[ BeastL BeastU ] -> [ random BeastLU ]\n[ BeastL BeastD ] -> [ random BeastLD ]\n\n\n\n\n\n[ BeastR Beast ] -> [ right Beast ]\n[ BeastL Beast ] -> [ left Beast ]\n[ BeastU Beast ] -> [ up Beast ]\n[ BeastD Beast ] -> [ down Beast ]\n\n\n\n( : Do a die roll )\n[ DieRoll ] -> []\n[RealTime BeastTic][ Beast no DieRoll ] -> [RealTime BeastTic][ Beast random DieRoll ]\n( : Roll again for the ones that have to move, add action tag )\n[ BeastFoolishMoveProb Beast ] -> [ Beast action BeastFoolishMoveProb ] \n[ stationary DieRoll ] -> []\n[ BeastFoolishMoveProb ] -> [ random DieRoll ]\n\n\n\n[ vertical Beast DieRoll1_2 ] -> [ left Beast ]\n[ vertical Beast DieRoll3_4 ] -> [ right Beast ]\n[ horizontal Beast DieRoll1_2 ] -> [ up Beast ]\n[ horizontal Beast DieRoll3_4 ] -> [ down Beast ]\n[ Beast DieRoll5 ] -> [ stationary Beast ]\n[ > Beast DieRoll6 ] -> [ < Beast ]\n\n\n\n[ DieRoll ] -> []\n\n\n\n\n(sticky logic)\n\nvertical [ StickyV | moving Stickable no NotStickableV ] -> [ StickyV | stationary Stickable ]\nvertical [ < StickyV | Stickable no NotStickableV ] -> [ < StickyV | < Stickable ]\n\nhorizontal [ StickyH | moving Stickable no NotStickableH ] -> [ StickyH | stationary Stickable ]\nhorizontal [ < StickyH | Stickable no NotStickableH ] -> [ < StickyH | < Stickable ]\n\n(Magnet logic)\n\nleft [ RealTime MagnetQuickTic ][ QuickMagnetable no NotStickableH | no ObjectOrBlackHole | StickyH ] -> [ RealTime MagnetQuickTic ][ > QuickMagnetable | | StickyH ]\nright [ RealTime MagnetQuickTic ][ QuickMagnetable no NotStickableH | no ObjectOrBlackHole | StickyH ] -> [ RealTime MagnetQuickTic ][ > QuickMagnetable | | StickyH ]\nup [ RealTime MagnetQuickTic ][ QuickMagnetable no NotStickableV | no ObjectOrBlackHole | StickyV ] -> [ RealTime MagnetQuickTic ][ > QuickMagnetable | | StickyV ]\ndown [ RealTime MagnetQuickTic ][ QuickMagnetable no NotStickableV | no ObjectOrBlackHole | StickyV ] -> [ RealTime MagnetQuickTic ][ > QuickMagnetable | | StickyV ]\n\n\nleft [ RealTime MagnetL2Tic ][ MagnetableL2 no NotStickableH | no ObjectOrBlackHole | StickyH ] -> [ RealTime MagnetL2Tic ][ > MagnetableL2 | | StickyH ]\nright [ RealTime MagnetL2Tic ][ MagnetableL2 no NotStickableH | no ObjectOrBlackHole | StickyH ] -> [ RealTime MagnetL2Tic ][ > MagnetableL2 | | StickyH ]\nup [ RealTime MagnetL2Tic ][ MagnetableL2 no NotStickableV | no ObjectOrBlackHole | StickyV ] -> [ RealTime MagnetL2Tic ][ > MagnetableL2 | | StickyV ]\ndown [ RealTime MagnetL2Tic ][ MagnetableL2 no NotStickableV | no ObjectOrBlackHole | StickyV ] -> [ RealTime MagnetL2Tic ][ > MagnetableL2 | | StickyV ]\n\n\n\n\n(attacted to Kye)\nhorizontal [RealTime MagnetQuickTic ][ StickyH | no ObjectOrBlackHole | Kye ] -> [RealTime MagnetQuickTic ][ > StickyH | | Kye ]\nvertical [RealTime MagnetQuickTic ][ StickyV | no ObjectOrBlackHole | Kye ] -> [RealTime MagnetQuickTic ][ > StickyV | | Kye ]\n\n\n( subtract countdowns )\n[ RealTime BouncerTic ][ AutoCountdown01 ] -> [ RealTime BouncerTic ][ AutoCountdown00 ]\n[ RealTime BouncerTic ][ AutoCountdown02 ] -> [ RealTime BouncerTic ][ AutoCountdown01 ]\n[ RealTime BouncerTic ][ AutoCountdown03 ] -> [ RealTime BouncerTic ][ AutoCountdown02 ]\n[ RealTime BouncerTic ][ AutoCountdown04 ] -> [ RealTime BouncerTic ][ AutoCountdown03 ]\n[ RealTime BouncerTic ][ AutoCountdown05 ] -> [ RealTime BouncerTic ][ AutoCountdown04 ]\n[ RealTime BouncerTic ][ AutoCountdown06 ] -> [ RealTime BouncerTic ][ AutoCountdown05 ]\n[ RealTime BouncerTic ][ AutoCountdown07 ] -> [ RealTime BouncerTic ][ AutoCountdown06 ]\n[ RealTime BouncerTic ][ AutoCountdown08 ] -> [ RealTime BouncerTic ][ AutoCountdown07 ]\n[ RealTime BouncerTic ][ AutoCountdown09 ] -> [ RealTime BouncerTic ][ AutoCountdown08 ]\n[ RealTime BouncerTic ][ AutoCountdown10 ] -> [ RealTime BouncerTic ][ AutoCountdown09 ]\n[ RealTime BouncerTic ][ AutoCountdown11 ] -> [ RealTime BouncerTic ][ AutoCountdown10 ]\n[ RealTime BouncerTic ][ AutoCountdown12 ] -> [ RealTime BouncerTic ][ AutoCountdown11 ]\n[ RealTime BouncerTic ][ AutoCountdown13 ] -> [ RealTime BouncerTic ][ AutoCountdown12 ]\n[ RealTime BouncerTic ][ AutoCountdown14 ] -> [ RealTime BouncerTic ][ AutoCountdown13 ]\n[ RealTime BouncerTic ][ AutoCountdown15 ] -> [ RealTime BouncerTic ][ AutoCountdown14 ]\n[ RealTime BouncerTic ][ AutoCountdown16 ] -> [ RealTime BouncerTic ][ AutoCountdown15 ]\n[ RealTime BouncerTic ][ AutoCountdown17 ] -> [ RealTime BouncerTic ][ AutoCountdown16 ]\n[ RealTime BouncerTic ][ AutoCountdown18 ] -> [ RealTime BouncerTic ][ AutoCountdown17 ]\n[ RealTime BouncerTic ][ AutoCountdown19 ] -> [ RealTime BouncerTic ][ AutoCountdown18 ]\n\n( create arrows )\nright [ RealTime BouncerTic ][ AutoSliderR AutoCountdown00 | no Object ] -> [ RealTime BouncerTic ][ AutoSliderR | SquareArrowR ]\nleft [ RealTime BouncerTic ][ AutoSliderL AutoCountdown00 | no Object ] -> [ RealTime BouncerTic ][ AutoSliderL | SquareArrowL ]\nup [ RealTime BouncerTic ][ AutoSliderU AutoCountdown00 | no Object ] -> [ RealTime BouncerTic ][ AutoSliderU | SquareArrowU ]\ndown [ RealTime BouncerTic ][ AutoSliderD AutoCountdown00 | no Object ] -> [ RealTime BouncerTic ][ AutoSliderD | SquareArrowD ]\n\nright [ RealTime BouncerTic ][ AutoRockyR AutoCountdown00 | no Object ] -> [ RealTime BouncerTic ][ AutoRockyR | RoundArrowR ]\nleft [ RealTime BouncerTic ][ AutoRockyL AutoCountdown00 | no Object ] -> [ RealTime BouncerTic ][ AutoRockyL | RoundArrowL ]\nup [ RealTime BouncerTic ][ AutoRockyU AutoCountdown00 | no Object ] -> [ RealTime BouncerTic ][ AutoRockyU | RoundArrowU ]\ndown [ RealTime BouncerTic ][ AutoRockyD AutoCountdown00 | no Object ] -> [ RealTime BouncerTic ][ AutoRockyD | RoundArrowD ]\n\n\n\n\n(turner logic)\nright [ right ArrowR | TurnerClockwise ] -> [ ArrowR ToD | TurnerClockwise ]\nleft [ left ArrowL | TurnerClockwise ] -> [ ArrowL ToU | TurnerClockwise ]\nup [ up ArrowU | TurnerClockwise ] -> [ ArrowU ToR | TurnerClockwise ]\ndown [ down ArrowD | TurnerClockwise ] -> [ ArrowD ToL | TurnerClockwise ]\n\nright [ right ArrowR | TurnerAntiClockwise ] -> [ ArrowR ToU | TurnerAntiClockwise ]\nleft [ left ArrowL | TurnerAntiClockwise ] -> [ ArrowL ToD | TurnerAntiClockwise ]\nup [ up ArrowU | TurnerAntiClockwise ] -> [ ArrowU ToL | TurnerAntiClockwise ]\ndown [ down ArrowD | TurnerAntiClockwise ] -> [ ArrowD ToR | TurnerAntiClockwise ]\n\n[ RoundArrow ToR ] -> [ RoundArrowR ]\n[ RoundArrow ToL ] -> [ RoundArrowL ]\n[ RoundArrow ToU ] -> [ RoundArrowU ]\n[ RoundArrow ToD ] -> [ RoundArrowD ]\n[ SquareArrow ToR ] -> [ SquareArrowR ]\n[ SquareArrow ToL ] -> [ SquareArrowL ]\n[ SquareArrow ToU ] -> [ SquareArrowU ]\n[ SquareArrow ToD ] -> [ SquareArrowD ]\n\n\n\n( Bouncer collision)\n(right [ > BouncerR | < BouncerL ] -> [ BouncerL | BouncerR ]\nleft [ > BouncerL | < BouncerR ] -> [ BouncerR | BouncerL ]\nup [ > BouncerU | < BouncerD ] -> [ BouncerD | BouncerU ]\ndown [ > BouncerD | < BouncerU ] -> [ BouncerD | BouncerU ])\n\n\n(Bouncer Bounce)\n\n[ BouncerFlip ] -> []\n\nright [ RealTime BouncerTic ][ right BouncerR | Object ] -> [ RealTime BouncerTic ][ right BouncerR BouncerFlip | Object ]\nleft [ RealTime BouncerTic ][ left BouncerL | Object ] -> [ RealTime BouncerTic ][ left BouncerL BouncerFlip | Object ]\nup [ RealTime BouncerTic ][ up BouncerU | Object ] -> [ RealTime BouncerTic ][ up BouncerU BouncerFlip | Object ]\ndown [ RealTime BouncerTic ][ down BouncerD | Object ] -> [ RealTime BouncerTic ][ down BouncerD BouncerFlip | Object ]\n\n\n(Bouncer Push)\nright [ RealTime BouncerTic ][ > BouncerR | BouncerPushable ] -> [ RealTime BouncerTic ][ BouncerR | > BouncerPushable ]\nleft [ RealTime BouncerTic ][ > BouncerL | BouncerPushable ] -> [ RealTime BouncerTic ][ BouncerL | > BouncerPushable ]\nup [ RealTime BouncerTic ][ > BouncerU | BouncerPushable ] -> [ RealTime BouncerTic ][ BouncerU | > BouncerPushable ]\ndown [ RealTime BouncerTic ][ > BouncerD | BouncerPushable ] -> [ RealTime BouncerTic ][ BouncerD | > BouncerPushable ]\n\n[ BouncerFlip BouncerR ] -> [ BouncerL ]\n[ BouncerFlip BouncerL ] -> [ BouncerR ]\n[ BouncerFlip BouncerU ] -> [ BouncerD ]\n[ BouncerFlip BouncerD ] -> [ BouncerU ]\n\n\n(Kye can push)\n\n[RealTime ArrowTic][ ForbidKyePush ] -> [ RealTime ArrowTic][]\n[RealTime ArrowTic][ > Arrow KyeJustPushed | no Object ] -> [ RealTime ArrowTic][ > Arrow ForbidKyePush | no Object ]\n\n[RealTime ArrowTic][ KyeJustPushed ] -> [ RealTime ArrowTic ][]\n\n[ ForbidKyePush ][ moving Kye ] -> [ ForbidKyePush ][ stationary Kye ]\n\n\n\n\n[ > Kye | KyePushable no ForbidKyePush | no Object ] -> [ > Kye | > KyePushable | ]\n(Sticky logic for Kye, must have priority)\nvertical [ < Kye | StickyV ] -> [ < Kye | < StickyV ]\nhorizontal [ < Kye | StickyH ] -> [ < Kye | < StickyH ]\n\n\n\n\n( Priority to Kye's movement )\n\n( : Enter door )\n\nright [ > Kye | DoorLR BlockedDoor ] -> [ | DoorLR Kye ]\nleft [ > Kye | DoorRL BlockedDoor ] -> [ | DoorRL Kye ]\nup [ > Kye | DoorDU BlockedDoor ] -> [ | DoorDU Kye ]\ndown [ > Kye | DoorUD BlockedDoor ] -> [ | DoorUD Kye ]\n\n\ndown [ down Kye | down KyePushable no ForbidKyePush | no Object ] -> [ | Kye | KyePushable KyeJustPushed ]\nright [ right Kye | right KyePushable no ForbidKyePush | no Object ] -> [ | Kye | KyePushable KyeJustPushed ]\nleft [ left Kye | left KyePushable no ForbidKyePush | no Object ] -> [ | Kye | KyePushable KyeJustPushed ]\nup [ up Kye | up KyePushable no ForbidKyePush | no Object ] -> [ | Kye | KyePushable KyeJustPushed ]\n\n\n\n[ > Kye | Earth ] -> [ | Kye ]\n[ > Kye | Diamond ] -> [ | Kye GotAllDiamonds ]\n[ GotAllDiamonds ][ Diamond ] -> [][Diamond ]\n\n[ GotAllDiamonds ] -> win\n\n\n[ > Kye | UNKNOWN ] -> [ | Kye ]\n\n\n( Blackhole swallow)\nlate [ RealTime no BlackHoleConsumptionTic ][ Object BlackHole ] -> [ RealTime BlackHoleConsumptionTic ][ BlackHoleBusy1 ]\nlate [ RealTime BlackHoleConsumptionTic ][ Object BlackHole ] -> [ RealTime BlackHoleConsumptionTic ][ BlackHoleBusy2 ]\n\n[ RealTime BlackHoleConsumptionTicHalf ][ BlackHoleBusy5 ] -> [ RealTime BlackHoleConsumptionTic ][ BlackHole ]\n[ RealTime BlackHoleConsumptionTic ][ BlackHoleBusy4 ] -> [ RealTime BlackHoleConsumptionTic ][ BlackHoleBusy5 ]\n[ RealTime BlackHoleConsumptionTic ][ BlackHoleBusy3 ] -> [ RealTime BlackHoleConsumptionTic ][ BlackHoleBusy4 ]\n[ RealTime BlackHoleConsumptionTic ][ BlackHoleBusy2 ] -> [ RealTime BlackHoleConsumptionTic ][ BlackHoleBusy3 ]\n[ RealTime BlackHoleConsumptionTic ][ stationary BlackHoleBusy1 ] -> [ RealTime BlackHoleConsumptionTic ][ BlackHoleBusy2 ]\n\n\n\n\n(slide logic)\n\n(this is to allow the slide logic to consider the black holes as objects, later the walls get removed)\n[ ArrowTic ][ BlackHole no Object ] -> [ ArrowTic ][ BlackHole Wall____]\n\n( - down )\n[ Slide ] -> []\ndown [ down RoundArrowD | Corner7 ] -> [ SlideL1 down RoundArrowD | Corner7 ]\ndown [ down RoundArrowD | Corner9 ] -> [ SlideR1 down RoundArrowD | Corner9 ]\n\nright [ SlideR1 | no Object ] -> [ SlideR1 | SlideR2 ]\nleft [ SlideL1 | no Object ] -> [ SlideL1 | SlideL2 ]\n\ndown [ SlideR2 | Object ] -> [ | Object ]\ndown [ SlideL2 | Object ] -> [ | Object ]\n\nright [ SlideR1 | no SlideR2 ] -> [ | ]\nleft [ SlideL1 | no SlideL2 ] -> [ | ]\n\n\n[ SlideL1 SlideR1 ] -> [ random SlideH ] (pick a random one)\n\nright [ down RoundArrowD SlideR1 | SlideR2 no Object ] -> [ | down RoundArrowD SlideR2 ]\nleft [ down RoundArrowD SlideL1 | SlideL2 no Object ] -> [ | down RoundArrowD SlideL2 ]\n\n( - right )\n[ Slide ] -> []\nright [ right RoundArrowR | Corner7 ] -> [ SlideU1 right RoundArrowR | Corner7 ]\nright [ right RoundArrowR | Corner1 ] -> [ SlideD1 right RoundArrowR | Corner1 ]\n\nup [ SlideU1 | no Object ] -> [ SlideU1 | SlideU2 ]\ndown [ SlideD1 | no Object ] -> [ SlideD1 | SlideD2 ]\n\nright [ SlideU2 | Object ] -> [ | Object ]\nright [ SlideD2 | Object ] -> [ | Object ]\n\nup [ SlideU1 | no SlideU2 ] -> [ | ]\ndown [ SlideD1 | no SlideD2 ] -> [ | ]\n\n\n[ SlideU1 SlideD1 ] -> [ random SlideV ] (pick a random one)\n\ndown [ right RoundArrowR SlideD1 | SlideD2 no Object ] -> [ | right RoundArrowR SlideD2 ]\nup [ right RoundArrowR SlideU1 | SlideU2 no Object ] -> [ | right RoundArrowR SlideU2 ]\n\n\n\n( - lef )\n[ Slide ] -> []\nleft [ left RoundArrowL | Corner9 ] -> [ SlideU1 left RoundArrowL | Corner9 ]\nleft [ left RoundArrowL | Corner3 ] -> [ SlideD1 left RoundArrowL | Corner3 ]\n\nup [ SlideU1 | no Object ] -> [ SlideU1 | SlideU2 ]\ndown [ SlideD1 | no Object ] -> [ SlideD1 | SlideD2 ]\n\nleft [ SlideU2 | Object ] -> [ | Object ]\nleft [ SlideD2 | Object ] -> [ | Object ]\n\nup [ SlideU1 | no SlideU2 ] -> [ | ]\ndown [ SlideD1 | no SlideD2 ] -> [ | ]\n\n\n[ SlideU1 SlideD1 ] -> [ random SlideV ] (pick a random one)\n\ndown [ left RoundArrowL SlideD1 | SlideD2 no Object ] -> [ | left RoundArrowL SlideD2 ]\nup [ left RoundArrowL SlideU1 | SlideU2 no Object ] -> [ | left RoundArrowL SlideU2 ]\n\n\n( - up )\n[ Slide ] -> []\nup [ up RoundArrowU | Corner1 ] -> [ SlideL1 up RoundArrowU | Corner1 ]\nup [ up RoundArrowU | Corner3 ] -> [ SlideR1 up RoundArrowU | Corner3 ]\n\nright [ SlideR1 | no Object ] -> [ SlideR1 | SlideR2 ]\nleft [ SlideL1 | no Object ] -> [ SlideL1 | SlideL2 ]\n\nup [ SlideR2 | Object ] -> [ | Object ]\nup [ SlideL2 | Object ] -> [ | Object ]\n\nright [ SlideR1 | no SlideR2 ] -> [ | ]\nleft [ SlideL1 | no SlideL2 ] -> [ | ]\n\n\n[ SlideL1 SlideR1 ] -> [ random SlideH ] (pick a random one)\n\nright [ up RoundArrowU SlideR1 | SlideR2 no Object ] -> [ | up RoundArrowU SlideR2 ]\nleft [ up RoundArrowU SlideL1 | SlideL2 no Object ] -> [ | up RoundArrowU SlideL2 ]\n\n\n[ArrowTic][ BlackHole Wall____ ] -> [ArrowTic][ BlackHole ]\n\n\n\n( death animation )\n( Normally BlackHole consumption is processed late, but for Kye's respawn to work it has to happen earlier)\n[ > Kye | BlackHole ] -> [ | BlackHole Wall____ ]\n[RealTime][ DeathSprite2 ] -> [RealTime][]\n[RealTime][ DeathSprite1 ] -> [RealTime][ DeathSprite2 ]\n\n( Respawn )\n( here action modifier on TopLeft cell means that we detected that Kye is gone )\n[ TopLeft ]-> [ action TopLeft ]\n[ action TopLeft ][ Kye ] -> [ TopLeft ][ Kye ]\n[ action TopLeft ][ KyeLastSeenHere no DeathSprites ] -> [ action TopLeft ][ KyeLastSeenHere DeathSprite1 ]\n[ action TopLeft ][ SpawnPoint ThreeLives ] -> [ TopLeft ][ RespawnSearch SpawnPoint TwoLives ]\n[ action TopLeft ][ SpawnPoint TwoLives ] -> [ TopLeft ][ RespawnSearch SpawnPoint OneLife ]\n[ action TopLeft ][ SpawnPoint OneLife ] -> [ TopLeft ][ RespawnSearch SpawnPoint ]\n[ RealTime action TopLeft ][ SpawnPoint no Lives ] -> [ TopLeft ][ SpawnPoint ](message Game Over [You can still undo])\n\n\nstartloop\n [ stationary TopLeft ][ RespawnSearch no Object ] -> [ action TopLeft ][ RespawnSearch PlayerN ]\n [ PlayerN ][ RespawnSearch ] -> [ PlayerN ][]\n \n [ RespawnSearch ] -> [ action RespawnSearch ]\n right [ action RespawnSearch | no RespawnSearch ] -> [ action RespawnSearch | RespawnSearch ]\n [ RespawnSearch ] -> [ action RespawnSearch ]\n up [ action RespawnSearch | no RespawnSearch ] -> [ action RespawnSearch | RespawnSearch ]\n [ RespawnSearch ] -> [ action RespawnSearch ]\n down [ action RespawnSearch | no RespawnSearch ] -> [ action RespawnSearch | RespawnSearch ]\n [ RespawnSearch ] -> [ action RespawnSearch ]\n left [ action RespawnSearch | no RespawnSearch ] -> [ action RespawnSearch | RespawnSearch ]\n\nendloop\n\n(Timer Blocks )\n( PS: I hate Timer Blocks, they are largely useless, if you want to make timers in Kye, it's better to create contraptions with pushers or arrows\n\n we need to do stuff every 30 tics, 30 = 5 * 2 * 3 . And you thought there was no \n use for maths)\n\n[ RealTime TicM5 TicM2 TicM3 no FirstTic ][ Timer0 ] -> [ RealTime TicM5 TicM2 TicM3 ][ ]\n[ RealTime TicM5 TicM2 TicM3 no FirstTic ][ Timer1 ] -> [ RealTime TicM5 TicM2 TicM3 ][ Timer0 ]\n[ RealTime TicM5 TicM2 TicM3 no FirstTic ][ Timer2 ] -> [ RealTime TicM5 TicM2 TicM3 ][ Timer1 ]\n[ RealTime TicM5 TicM2 TicM3 no FirstTic ][ Timer3 ] -> [ RealTime TicM5 TicM2 TicM3 ][ Timer2 ]\n[ RealTime TicM5 TicM2 TicM3 no FirstTic ][ Timer4 ] -> [ RealTime TicM5 TicM2 TicM3 ][ Timer3 ]\n[ RealTime TicM5 TicM2 TicM3 no FirstTic ][ Timer5 ] -> [ RealTime TicM5 TicM2 TicM3 ][ Timer4 ]\n[ RealTime TicM5 TicM2 TicM3 no FirstTic ][ Timer6 ] -> [ RealTime TicM5 TicM2 TicM3 ][ Timer5 ]\n[ RealTime TicM5 TicM2 TicM3 no FirstTic ][ Timer7 ] -> [ RealTime TicM5 TicM2 TicM3 ][ Timer6 ]\n[ RealTime TicM5 TicM2 TicM3 no FirstTic ][ Timer8 ] -> [ RealTime TicM5 TicM2 TicM3 ][ Timer7 ]\n[ RealTime TicM5 TicM2 TicM3 no FirstTic ][ Timer9 ] -> [ RealTime TicM5 TicM2 TicM3 ][ Timer8 ]\n\n\n( Block any movement towards door that's not the valid one already processeced above)\n[ > Object | Door ] -> [ Object | Door ]\n\n\n( Very important part of the rules, this one does the movement instead of puzzle script,\nthat way the order in which directions are evaluated is closer to original Kye's . There's\na lot of levels that implicitly require this sort of priority to be enforced. e.g SLIDERS and COUNTERS)\n\n( the priority SEEMS to be as follows: arrows before other objects, down has priority over right, right has priority over left and up is the worst )\n\n\n\n\n(someone good with programming please help me, my family is dying )\n\n\n\ndown [ down Arrow | no Object ] -> [ | Arrow ]\nstartloop\n\n down [ down Arrow | no Object ] -> [ | Arrow ]\n right[ right Arrow | no Object ] -> [ | Arrow ]\nendloop\n\nstartloop\n down [ down Arrow | no Object ] -> [ | Arrow ]\n right[ right Arrow | no Object ] -> [ | Arrow ]\n left [ left Arrow | no Object ] -> [ | Arrow ]\nendloop\n\nstartloop\n down [ down Arrow | no Object ] -> [ | Arrow ]\n right[ right Arrow | no Object ] -> [ | Arrow ]\n left [ left Arrow | no Object ] -> [ | Arrow ]\n up [ up Arrow | no Object ] -> [ | Arrow ]\nendloop\n\n\n\n\ndown [ down Object | no Object ] -> [ | Object ]\nstartloop\n\n down [ down Object | no Object ] -> [ | Object ]\n right[ right Object | no Object ] -> [ | Object ]\nendloop\n\nstartloop\n down [ down Object | no Object ] -> [ | Object ]\n right[ right Object | no Object ] -> [ | Object ]\n left [ left Object | no Object ] -> [ | Object ]\nendloop\n\n(I am going to programmer's hell)\nstartloop\n down [ down Object | no Object ] -> [ | Object ]\n right[ right Object | no Object ] -> [ | Object ]\n left [ left Object | no Object ] -> [ | Object ]\n up [ up Object | no Object ] -> [ | Object ]\nendloop\n\n\n\n( Reset the countdowns, depends on the row number. This is the worst)\nlate [ AutoCountdown no AutoSomething ] -> [] (get rid of unnecessary countdowns)\n\nlate [ AutoSomething Row00 no AutoCountdown ] -> [ AutoSomething Row00 AutoCountdown01 ]\nlate [ AutoSomething Row01 no AutoCountdown ] -> [ AutoSomething Row01 AutoCountdown02 ]\nlate [ AutoSomething Row02 no AutoCountdown ] -> [ AutoSomething Row02 AutoCountdown03 ]\nlate [ AutoSomething Row03 no AutoCountdown ] -> [ AutoSomething Row03 AutoCountdown04 ]\nlate [ AutoSomething Row04 no AutoCountdown ] -> [ AutoSomething Row04 AutoCountdown05 ]\nlate [ AutoSomething Row05 no AutoCountdown ] -> [ AutoSomething Row05 AutoCountdown06 ]\nlate [ AutoSomething Row06 no AutoCountdown ] -> [ AutoSomething Row06 AutoCountdown07 ]\nlate [ AutoSomething Row07 no AutoCountdown ] -> [ AutoSomething Row07 AutoCountdown08 ]\nlate [ AutoSomething Row08 no AutoCountdown ] -> [ AutoSomething Row08 AutoCountdown09 ]\nlate [ AutoSomething Row09 no AutoCountdown ] -> [ AutoSomething Row09 AutoCountdown10 ]\nlate [ AutoSomething Row10 no AutoCountdown ] -> [ AutoSomething Row10 AutoCountdown11 ]\nlate [ AutoSomething Row11 no AutoCountdown ] -> [ AutoSomething Row11 AutoCountdown12 ]\nlate [ AutoSomething Row12 no AutoCountdown ] -> [ AutoSomething Row12 AutoCountdown13 ]\nlate [ AutoSomething Row13 no AutoCountdown ] -> [ AutoSomething Row13 AutoCountdown14 ]\nlate [ AutoSomething Row14 no AutoCountdown ] -> [ AutoSomething Row14 AutoCountdown15 ]\nlate [ AutoSomething Row15 no AutoCountdown ] -> [ AutoSomething Row15 AutoCountdown16 ]\nlate [ AutoSomething Row16 no AutoCountdown ] -> [ AutoSomething Row16 AutoCountdown17 ]\nlate [ AutoSomething Row17 no AutoCountdown ] -> [ AutoSomething Row17 AutoCountdown18 ]\nlate [ AutoSomething Row18 no AutoCountdown ] -> [ AutoSomething Row18 AutoCountdown19 ]\n\n\nlate [ KyeLastSeenHere ] -> []\nlate [ Kye ] -> [ Kye KyeLastSeenHere ]\n\n\n( Wall decoration )\n\n(Fill borders with walls if they don't exist )\n[ FirstTic ][ TopLeft ] -> [ FirstTic ][ TopLeft action Wall____ ]\nright [ FirstTic ][ action Wall | ] -> [ FirstTic ][ Wall | action Wall____ ]\ndown [ FirstTic ][ action Wall | ] -> [ FirstTic ][ Wall | action Wall____ ]\nleft [ FirstTic ][ action Wall | ] -> [ FirstTic ][ Wall | action Wall____ ]\nup [ FirstTic ][ action Wall | ] -> [ FirstTic ][ Wall | action Wall____ ]\n[ FirstTic ][ action Wall ] -> [ FirstTic ][ Wall ]\n\n\n\n(Fix misplaced corners)\ndown [FirstTic][ Wall1___ | Wall ] -> [FirstTic][ Wall____ | Wall ]\ndown [FirstTic][ Wall13__ | Wall ] -> [FirstTic][ Wall_3__ | Wall ]\ndown [FirstTic][ Wall1_7_ | Wall ] -> [FirstTic][ Wall__7_ | Wall ]\nleft [FirstTic][ Wall1___ | Wall ] -> [FirstTic][ Wall____ | Wall ]\nleft [FirstTic][ Wall13__ | Wall ] -> [FirstTic][ Wall_3__ | Wall ]\nleft [FirstTic][ Wall1_7_ | Wall ] -> [FirstTic][ Wall__7_ | Wall ]\n\ndown [FirstTic][ Wall13__ | Wall ] -> [FirstTic][ Wall1___ | Wall ]\ndown [FirstTic][ Wall_3__ | Wall ] -> [FirstTic][ Wall____ | Wall ]\ndown [FirstTic][ Wall_3_9 | Wall ] -> [FirstTic][ Wall___9 | Wall ]\nright [FirstTic][ Wall13__ | Wall ] -> [FirstTic][ Wall1___ | Wall ]\nright [FirstTic][ Wall_3__ | Wall ] -> [FirstTic][ Wall____ | Wall ]\nright [FirstTic][ Wall_3_9 | Wall ] -> [FirstTic][ Wall___9 | Wall ]\n\nup [FirstTic][ Wall1_7_ | Wall ] -> [FirstTic][ Wall1___ | Wall ]\nup [FirstTic][ Wall__7_ | Wall ] -> [FirstTic][ Wall____ | Wall ]\nup [FirstTic][ Wall__79 | Wall ] -> [FirstTic][ Wall___9 | Wall ]\nleft [FirstTic][ Wall1_7_ | Wall ] -> [FirstTic][ Wall1___ | Wall ]\nleft [FirstTic][ Wall__7_ | Wall ] -> [FirstTic][ Wall____ | Wall ]\nleft [FirstTic][ Wall__79 | Wall ] -> [FirstTic][ Wall___9 | Wall ]\n\nup [FirstTic][ Wall_3_9 | Wall ] -> [FirstTic][ Wall_3__ | Wall ]\nup [FirstTic][ Wall__79 | Wall ] -> [FirstTic][ Wall__7_ | Wall ]\nup [FirstTic][ Wall___9 | Wall ] -> [FirstTic][ Wall____ | Wall ]\nright [FirstTic][ Wall_3_9 | Wall ] -> [FirstTic][ Wall_3__ | Wall ]\nright [FirstTic][ Wall__79 | Wall ] -> [FirstTic][ Wall__7_ | Wall ]\nright [FirstTic][ Wall___9 | Wall ] -> [FirstTic][ Wall____ | Wall ]\n\n\n\n[ FirstTic ][ Wall ] -> [ FirstTic ][ action Wall ]\nup [ FirstTic ][ action Wall | no Wall ] -> [ FirstTic ][ Wall | ]\ndown [ FirstTic ][ action Wall | no Wall ] -> [ FirstTic ][ Wall | ]\nright [ FirstTic ][ action Wall | no Wall ] -> [ FirstTic ][ Wall | ]\nleft [ FirstTic ][ action Wall | no Wall ] -> [ FirstTic ][ Wall | ]\n[ FirstTic ][ action Wall ] -> [ FirstTic ][ stationary Wall WallEmpty ]\n\nhorizontal [ FirstTic ][ Background no Wall | Background ] -> [ FirstTic ][ Background | action Background ]\nvertical [ FirstTic ][ action Background | WallEmpty ] -> [ FirstTic ][ action Background | ]\n[ FirstTic ][ action Wall ] -> [ FirstTic ][ stationary Wall ]\n\n\n\n\n(Animations)\nlate [ RealTime DiamondTic ][ DiamondSprite ] -> [ RealTime DiamondTic] [ ]\nlate [ Diamond no DiamondSprite ] -> [ Diamond random DiamondSprite ]\nlate [ DiamondSprite no Diamond ] -> []\n\nlate [ RealTime BlackHoleSpriteTic ][ BlackHoleSprite ] -> [ RealTime BlackHoleSpriteTic][ ]\nlate [ BlackHole no BlackHoleSprite ] -> [ BlackHole random BlackHoleSprite ]\nlate [ BlackHoleSprite no BlackHole] -> []\n\n\n( :Blob )\nlate [ BlobSprite no Blob ] -> []\nlate [ Blob no BlobSprite ] -> [ Blob random BlobSprite ]\n\n\nlate [ RealTime BeastTic ][ Blob1 ] -> [ RealTime BeastTic ][ PlaceHolder1 ]\nlate [ RealTime BeastTic ][ Blob2 ] -> [ RealTime BeastTic ][ PlaceHolder2 ]\nlate [ RealTime BeastTic ][ Blob3 ] -> [ RealTime BeastTic ][ PlaceHolder3 ]\n\nlate [ PlaceHolder1 ] -> [ random Blob23 ]\nlate [ PlaceHolder2 ] -> [ random Blob13 ]\nlate [ PlaceHolder3 ] -> [ random Blob12 ]\n\n( :Gnasher )\nlate [ GnasherSprite no Gnasher ] -> []\nlate [ Gnasher no GnasherSprite ] -> [ Gnasher random GnasherSprite ]\n\nlate [ RealTime BeastTic ][ Gnasher1 ] -> [ RealTime BeastTic ][ PlaceHolder1 ]\nlate [ RealTime BeastTic ][ Gnasher2 ] -> [ RealTime BeastTic ][ PlaceHolder2 ]\nlate [ RealTime BeastTic ][ Gnasher3 ] -> [ RealTime BeastTic ][ PlaceHolder3 ]\n\nlate [ PlaceHolder1 ] -> [ Gnasher2 ]\nlate [ PlaceHolder2 ] -> [ random Gnasher13 ]\nlate [ PlaceHolder3 ] -> [ Gnasher2 ]\n\n\n( :Virus)\nlate [ VirusSprite no Virus ] -> []\nlate [ Virus no VirusSprite ] -> [ Virus random VirusSprite ]\n\nlate [ RealTime BeastTic ][ Virus1 ] -> [ RealTime BeastTic ][ PlaceHolder1]\nlate [ RealTime BeastTic ][ Virus2 ] -> [ RealTime BeastTic ][ PlaceHolder2]\nlate [ PlaceHolder1 ] -> [ Virus2 ]\nlate [ PlaceHolder2 ] -> [ Virus1 ]\n\n( :Spike)\nlate [ SpikeSprite no Spike ] -> []\nlate [ Spike no SpikeSprite ] -> [ Spike random SpikeSprite ]\n\n\nlate [ RealTime BeastTic ][ Spike1 ] -> [ RealTime BeastTic ][ PlaceHolder1]\nlate [ RealTime BeastTic ][ Spike2 ] -> [ RealTime BeastTic ][ PlaceHolder2]\nlate [ PlaceHolder1 ] -> [ Spike2 ]\nlate [ PlaceHolder2 ] -> [ Spike1 ]\n\n( :Twister)\nlate [ TwisterSprite no Twister ] -> []\nlate [ Twister no TwisterSprite ] -> [ Twister random TwisterSprite ]\n\nlate [ RealTime BeastTic ][ Twister1 ] -> [ RealTime BeastTic ][ PlaceHolder1]\nlate [ RealTime BeastTic ][ Twister2 ] -> [ RealTime BeastTic ][ PlaceHolder2]\nlate [ PlaceHolder1 ] -> [ Twister2 ]\nlate [ PlaceHolder2 ] -> [ Twister1 ]\n\n( : Doors)\n\n[FirstTic][ DoorLR no DoorSprite ] -> [FirstTic][ DoorLR DoorLR1 ]\n[FirstTic][ DoorRL no DoorSprite ] -> [FirstTic][ DoorRL DoorRL1 ]\n[FirstTic][ DoorUD no DoorSprite ] -> [FirstTic][ DoorUD DoorUD1 ]\n[FirstTic][ DoorDU no DoorSprite ] -> [FirstTic][ DoorDU DoorDU1 ]\n\n\n( :DoorLR)\nlate [ RealTime TicM5 TicN2 ][ DoorLR ] -> [ RealTime TicM5 TicN2 ][ DoorLR DoorLR1 ]\nlate [ RealTime TicM5 TicM2 ][ DoorLR ] -> [ RealTime TicM5 TicM2 ][ DoorLR DoorLR2 ]\n\n( :DoorRL)\nlate [ RealTime TicM5 TicN2 ][ DoorRL ] -> [ RealTime TicM5 TicN2 ][ DoorRL DoorRL1 ]\nlate [ RealTime TicM5 TicM2 ][ DoorRL ] -> [ RealTime TicM5 TicM2 ][ DoorRL DoorRL2 ]\n\n( :DoorUD)\nlate [ RealTime TicM5 TicN2 ][ DoorUD ] -> [ RealTime TicM5 TicN2 ][ DoorUD DoorUD1 ]\nlate [ RealTime TicM5 TicM2 ][ DoorUD ] -> [ RealTime TicM5 TicM2 ][ DoorUD DoorUD2 ]\n\n( :DoorDU)\nlate [ RealTime TicM5 TicN2 ][ DoorDU ] -> [ RealTime TicM5 TicN2 ][ DoorDU DoorDU1 ]\nlate [ RealTime TicM5 TicM2 ][ DoorDU ] -> [ RealTime TicM5 TicM2 ][ DoorDU DoorDU2 ]\n\n(post conditions)\n( the idea of this rule is that this way there will always be a black hole whenever there is a busy black hole, this prevents the editor from removing the black hole when you save the level)\nlate [ BlackHoleBusy ] -> [ BlackHoleBusy BlackHole ]\n\nlate [AutoSliderU] -> [AutoSliderSprite AutoSliderSpriteU]\nlate [AutoSliderD] -> [AutoSliderSprite AutoSliderSpriteD]\nlate [AutoSliderR] -> [AutoSliderSprite AutoSliderSpriteR]\nlate [AutoSliderL] -> [AutoSliderSprite AutoSliderSpriteL]\n\nlate [AutoRockyU] -> [AutoRockySprite AutoRockySpriteU]\nlate [AutoRockyD] -> [AutoRockySprite AutoRockySpriteD]\nlate [AutoRockyR] -> [AutoRockySprite AutoRockySpriteR]\nlate [AutoRockyL] -> [AutoRockySprite AutoRockySpriteL]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n\n=======\nLEVELS\n=======\n\n\nsection FIRST\n\n(By Colin Garbut, default.kye)\n\n(It goes against the teneths of modern game design to unleash what are basically all of the game's objects [and definitely the \"core\" ones] in a single level and overwhelm the player like this. But Kye starts right next to the diamond, and the player can experiment if they want, and I have tons of memories experimenting with this level and fighting the monsters.\n\nI don't think I could ever make this game, which is supposed to be a compilation of all good things Kye, without starting it with this level. \n\nI keep flip flopping over whether it should be included as the first level or later, though. Let's include it as the first level for now... )\n\nMessage FIRST - Just get the diamond.\n\n555555555555555555555555555555\n5T...e.......K*..a....d.e...E5\n5....b.455556........a..b....5\n5....b.dvvvvd...........b....5\n5....b.dvvvvd..........ab....5\n5ebbbe.eeBBee.......c...ebbbe5\n5...............a............5\n5.8rre................a.ell8.5\n5.5>>e......s..S........e<<5.5\n5.5>>B..................B<<5.5\n5.5>>B...............b..B<<5.5\n5.5>>e......S..s.....U..e<<5.5\n5.2rre...............b..ell2.5\n5.................bRbb.......5\n5ebbbe.eeeeee..7555559..ebbbe5\n5....b.u^^^^u..5.....5..b....5\n5....b.u^^^^u..5.....5..b....5\n5....b.455556..5.....5..b....5\n5C...e.........e..[..e..e...~5\n555555555555555555555555555555\n\n\n\nsection BLOCK\n\n(By vexorian, for this game !)\nMessage BLOCK - Don't block yourself\n\n( In attempting to introduce the objects slowly, it occurred to me that there really aren't any good levels that introduce the block. We tend to take it for granted. The way earth interacts with blocks, it's basically a trope, but maybe someone actually needs to learn it? )\n\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555*ee555555555555555\n555555555555eee555555555555555\n555555555555e*e555555555555555\n5555555555.........55555555555\n5555555555.5555555.55555555555\n5555555555e5...eb.e55555555555\n55555555*eb.K.beb.e55555555555\n5555555555e5...eeb.*5555555555\n5555555555.55e5555555555555555\n5555555555...........555555555\n555555555555555ee*555555555555\n555555555555555*ee555555555555\n555555555555555eee555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n\n\nsection SLIDUX\n\n(By vexorian, for this game !)\n\n(Something I've wanted for this version of Kye was to have more 'thinky' levels. Kye levels tend to end up becoming huge messes in which you have to figure out a bunch of sub-puzzles and the order to solve those sub-puzzles. I blame this on the rather large 30x20 board [the game NEEDS a large board because arrow puzzles really do take this much room, but it's hard for level designers to avoid using ALL of the space ALL of the time.\n\nThis is a rather easy level but it also introduces the whole concept of Arrow blocks in a nice way.\n\n)\n\nMessage SLIDUX - Intro to Sliders.\n\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n5e*5555555555555555eee55555555\n5ee5.55555555555555e*e55555555\n5rrrb...........5.brrrd.555555\n5555..........5...5555d5555555\n55555555555.555....555d5555555\n55555.......555..K...e*5555555\n55555...5.5.555......5.5555555\n55555555.e..5e5....5.5555eee55\n55555555.ulle*55...5.eeeee*e55\n555555555555.e555.5555uu5eee55\n55555555555555555.u*e555555555\n55555555555555555.55.555555555\n55555555555555555...el55555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n\n\nsection ARROWSII\nMessage ARROWSII - It's a matter of space\n\n(This is the harder version [star challenge] of Xye's seventh tutorial, so yeah, made by vexorian )\n\n(I was looking for an introductiong to rockies. There's one in Phipps' tutorial set, but I think it's a bit boring. Other Rocky-based levels are way too overwhelming At the end porting the one from Xye seemed like the best I could do.)\n\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n55555555ve*ev555553<.555555555\n55555555v*e*v55553<<.555555555\n55555555ve*ev5553<<<.555555555\n55555555vvvvv553<<<8*e55555555\n55555555vvvvv53<<<75ee55555555\n5555555556v453ee45555555555555\n55555555..b......5vv5..5555555\n55555555....459...vv...5555555\n55555555......19..5e.K.5555555\n555555.........19.55...5555555\n555555eeeeeeeeee55555555555555\n555555eeeeeeeeee55555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n\n\n\n\nsection VAULTS\nMessage VAULTS - Magnets, how do they work?\n\n(by Colin Phipps , Beginner.kye)\n\n( I honestly really liked this level the first time i saw it, it's a rather cool way to introduce magnets. Some of my Xye levels basically copied the idea :/)\n\n555555555555555555555555555555\n5.........5*.....*5..........5\n5.........5..vvv..5..........5\n5.........5.*8b8*.5..........5\n5.........1553b1553..........5\n5............................5\n5............................5\n5............................5\n5...........79b79............5\n5........K..53b15............5\n5......s....5^^^5............5\n5...........5^^^5............5\n5.....756b455***556b459......5\n5.....5*****5***5*****5......5\n5.....15555555555555553......5\n5............................5\n5............................5\n5............................5\n5............................5\n555555555555555555555555555555\n\n\nsection DONTSLIDE\nmessage DONTSLIDE - dont let victory slide.\n\n(One of my favorite levels from Xye, which I eventually ported for vexkye.kye and I am now including here. Very small and simple. But serves as a prequel for DONTSLIDE again, which I like very much... )\n\n555555555555555555555555555555\n5............................5\n5............................5\n5............................5\n5...........bbbbb............5\n555559.................7555555\n5555559...............75555555\n55555559......K......755555555\n555555559...........7555555555\n5555555559.........75555555555\n55555555559.......755555555555\n555555555559.....7555555555555\n5555555555559.s.75555555555555\n55555555555559v755555555555555\n55555555555555v555555555555555\n55555555555555v555555555555555\n55555555555555v555555555555555\n55555555555553v155555555555555\n555555555555*e*e*5555555555555\n555555555555555555555555555555\n\n\n\nsection SECOND\nMessage SECOND - Not the second level anymore\n\n(By Colin Garbutt, Default.kye)\n\n(I honestly think the first three levels in shareware Kye were really good introductions for the game. But they are rather hard... Hopefully by now the player is more comfortable with these objects. They have access to an undo button anyway...)\n\n555555555555555555555555555555\n5*>>>>e...e.........e.......K5\n5>>>>>e...5.........5........5\n5555559...59.......75........5\n5.....5...559.....7555.79....5\n5.....5...5559...75555..5....5\n5.....1...55556e455555..5....5\n5*.....1..5553^^^15555..5....5\n5e5559..1.553^^^^^1555..5....5\n5*vvv.9..153^^^^^^^155..5....5\n5vvvvv59..1..........5..5....5\n5vvvv7559..1........*5s.5....5\n5vvv755559..1555555555555....5\n5vv45555559...3<<<<<<..*5....5\n5eee15555559.b<<<<<<<...5....5\n5....15eee559e9<<<<<<..*5...75\n5.....e^^e.....5555555555vv755\n5.....e^^e..............5v45e5\n5.....e*^e..............eeee*5\n555555555555555555555555555555\n\n\nsection SLIDE\n\nMessage SLIDE - Why are blocks round now?\n\n(By vexorian, vexkye.kye )\n\n( This is basically a xye level I made trying to make it as 'classic' as possible, avoiding Xye stuff and focusing on blocks and arrows. )\n\n555555555555555555555555555555\n55555555553*e*e155555555555555\n5555555555cvvvv<<<<55555555555\n5555555555cvvvv<<<<55555555555\n5555555555cvvvv<<<<55555555555\n5555555555cvvvv755555555555555\n55555555559vvv7555555555555555\n555555555556e45555555555555555\n5555555555..........5555555555\n5555555vv5.b.B...B..5555555555\n555555vvv5.......B..5555555555\n55555v**v5.......B..5555555555\n5558v*e*v5.......B..5555555555\n5555v***v5.......B..5555555555\n5555vvvvv5....K.....5555555555\n555559e4559.........5555555555\n555555>>>>2....79...155553eee5\n555555>>>>e....55...ellelle*e5\n555555>>>>8....55...755559eee5\n555555555555555555555555555555\n\nsection BOUNCERX\n\n(made be vexorian fro this game)\nmessage BOUNCERX - Enter the Bouncer\n\n( I am really happy with this level. It's my latest attempt to make a Bouncer tutorial, but also it requires an Eureka moment)\n\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555......db.555555\n555555555555555..5555du5555555\n5555.......5555..5555du5555555\n5555.R..b...e*5..5555du5555555\n5555.......5555..5555du5555555\n5555555555.....K.5555du5555555\n55555555555.55...5555du5555555\n55555555555.555555.deeue*55555\n55555555555........d5eu*e55555\n55555555555555b555.d5ee5555555\n55555555555555...U.d5555555555\n55555555555555.ellll5555555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n\nsection THETRAP\n\nmessage THETRAP - Monsters byte\n\n( Made by vexorian for this game )\n\n( I really like Kye's monsters. They have some charm to them. But they are a very problematic part of Kye's level design. And a problem with Phipps' and Garbutt's later levels is that there tend to always be sections with monsters in them. \n\nStill I firmly believe that the monsters are a foundational element for Kye's best puzzles. I am aiming towards only using them in a puzzley way. So I really avoided to include any of those levels in which the monsters are used in an \"arcade\" way. This level, for example technically introduces the monsters, but it is more of a turn-block tutorial... )\n\n555555555555555555555555555555\n5555555...55555555555555555555\n5555555ETC55s55......555555555\n555cdlllll55[55..a.c.555555555\n5555d55..............555555555\n5555e.......555..5555555555555\n5555*555.55.555..5555555555555\n5555e555.55.5......c55555..555\n5555e555.55.cl.l.l..555d5*e555\n5555..55.55.5..........e5e*555\n55555.55.55.........555.5*e555\n55555.5..5555.......555....555\n55555.55l5555.......c555555555\n55555.55e5555c..55555555555555\n55555....55555re.5555555555555\n5555555555555555.5555555555555\n555555555555.....5555555555555\n555555555555..K..5555555555555\n555555555555.....5555555555555\n555555555555555555555555555555\n\n\nsection GOALIE\n\nmessage GOALIE - Blocks with an expiration date\n\n( be vexorian, for this game )\n( I've seen this idea some multiple times. There's even a variation in Xye. I am reusing this idea but this time as a way to teach the mechanics of Timers. I probably mentioned it elsewhere, but I dislike timers. I do like this idea of joining forces with two arrows in order to block other arrows.\n\nA problem with this sort of level is that the Kye engine and (Kye.ps due to imitating it) allows to hit arrows mid-air, so it is quite possible for a Player to solve this kind of level in a non-thinky way and ever realize about the cool idea. I am trying to deal with this with the placement of the [8] timers, they aren't placed the same way as the rest, so if you try to hit one of them mid-air you will miss the other one. The only problem with this approach is that now the solution needs you to have really good dexterity in this one place.)\n\n\n\n\n\n\n\n\n\n555555555555555555555555555555\n555555555v55555555555v55555555\n55555v555{555v555v555x555v5555\n55555}555v555|555y555v555w5555\n55555v555{555v555v555z555v5555\n55555}555{555|H5Hy555z555x5555\n555............v............55\n555............*............55\n555.........................55\n555.........................55\n555.........................55\n555.......>*...K...*<.......55\n555.........................55\n555.........................55\n555.........................55\n555............*............55\n555.7.9.7.9.7.9^7.9.7.9.7.9.55\n555.5w5.5w5.5w5.5w5.5w5.5w5.55\n555H5*5H5*5H5*5H5*5H5*5H5*5H55\n555555555555555555555555555555\n\n\nsection LOCKPICKING\n\n(by me, for this game)\n\nmessage LOCKPICKING - Get through it.\n\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n5555555555eeeee155555555555555\n5555555555evvveee1555555555555\n5555555555eveve8ee155555555555\n5555555555e^^^e59e..5555555555\n5555555555^^^^^53.K.5555555555\n5555555555^^^^^5....5555555555\n555555555555^555....5555555555\n555555555555^lllll<75555555555\n555555555555555559^55555555555\n555555555555555553^15555555555\n55555555555555555^^^5555555555\n55555555555555555^^^5555555555\n55555555555555555^^^5555555555\n555555555555555555*55555555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n\n\n\n\n\n\n\n\n\nsection TIME\nmessage TIME - It's not a matter of time\n(made be vexorian vexkye.kye )\n\n( This one might be misplaced, but I think that the last level had turners but also monsters, the player probably needs to keep the turners in mind... Also technically introduces the timer blocks and the \"auto\" blocks. I hate both of the timer and auto blocks.\n\nIn my opinion. Kye Level design is a lot more cooler when you use arrows or bouncers to generate timing situations. The timer blocks are a bit redundant. Only useful if you want to save space. But most of the time, your level shouldn't be using that much space to begin with. \n\nAuto blocks have way too special rules regarding when to shoot. And really the only real use auto blocks have is to fill up the screen with arrows. It is really good for some puzzles. But my proble is that they are so hard to control . I think a block that just produces arrows constantly in one-direction is a much nicer way to do this. But this is a Kye port, not a Kye sequel (stay tuned :D))\n\n\n555555555555555555555555555555\n53.155553.2AA2.155555555553.15\n5c..........................a5\n59.455559.8ca8.4556a4555556.45\n55......2.1553.......153....a5\n53................5...c.....75\n5c..........................55\n59..........7555556.8.......55\n55........8.5*w..Ru.5.......55\n55.......K5.5**756u.2.......55\n55.759..453.1553..u....49...55\n55.5a2.................c5...55\n55.5...rrr8............43...55\n55.5.....U5.76}}............55\n55.2.c79..5.5.e}............55\n55.a..55..5.5ell............55\n55.5..15.43.5ell76..........55\n55....c5....5**75a..........55\n55c755555555555555555555559a55\n555555555555555555555555555555\n\nsection FOUR\n\nmessage FOUR - There are four directions, in this order: down , right, left, up.\n\n( by vexorian, vexkye.kye actually based off a puzzle I made for Xye, but the direction priority is a bit arbitrary, in Xye, the top arrow is actually red and the others are yellow, so it becoems a level about how red is faster. In Kye, it becomes a tutorial about how the author decided that down comes before right, left and up ... )\n\n(In a way, it makes sense? If it was gravity, down would be easier than the other directios? )\n\n555555555555555555555555555555\n555555555555555555555555555555\n555555555573vvvvv1555555555555\n55555555555>*****<555555555555\n555555555559>***<7555555555555\n55555555555555*555555555555555\n5555555555...5.5...55555555555\n5555555955.........55755555555\n55555>*195.........573*<555555\n55555>e*155...v...553*e<555555\n55555>*e**...>K<...**e*<555555\n55555>e*755...^...559*e<555555\n55555>*735.........519*<555555\n5555555355.........55155555555\n5555555555...5.5...55555555555\n55555555555555.555555555555555\n55555555555555*555555555555555\n55555555555573e195555555555555\n5555555555555*e*55555555555555\n555555555555555555555555555555\n\n\n\n\n\n\n\n\n\nsection SLIDER\n\nmessage SLIDER - Machines!\n\n(By Colin Garbutt, default.kye )\n\n( I love this level. It's probably the reason I care so much about Kye)\n\n555555555555555555555555555555\n5*vvvvvv5..re..5...e.K.5.b..*5\n59vvvvv73..re..56..5...5b..bb5\n559vvv73...re..5...5.755..b..5\n5.59v73....re..5e455.5.5.bb..5\n5..2v2.....re..5^^^5.5.5b....5\n5..Rve..8..re..56..5.5.555.555\n555559e1559re..5...5.5..e....5\n5.5.L.....5re..5e455.5.5.5...5\n5.555559e15559.5^^^5.5.5.55555\n5..5..eeeee..5.56..5.5.5.uL..5\n5..5....8....5.5...5.5.15u...5\n5..5....5....5.5e455.5..5u...5\n5..5....5....5.5...5.5e<5u...5\n5..5...759...5.56ee5.5e<5u...5\n5..16e45.56e43.5^^^5.5e<5u...5\n5..............5^^^5.5e<5u...5\n55ee555555555555^^^5.5..5u...5\n5*eeeeeeeeeeeeee^^^5.e..5u..*5\n555555555555555555555555555555\n\n\nsection THREESTEPSFLOW\n\nmessage THREESTEPSFLOW - Three steps but don't disturb it.\n\n( I always liked the shareware level COUNTERS, but it has many issues. Lots of people solve the level thinking it's a race against time. When in fact, it's about not disturbing the arrows. This level actually uses the COUNTERS layout but inside it has so many tasks that it makes it impossible to do it by just being faster than the arrows. )\n\n555555555555555555555555555555\n555555555555555555c55555555555\n5555c..............15555555555\n5..55.55..55..5e5a........c..5\n5K..5..55555555e5555555ll....5\n555.5..55555555eeeeeee5..5.555\n55.e5.555555555555555e5..5.TS5\n555u5...........a5555e5D.5.555\n5.c....555..555.ee5eee5555.555\n5......55555555d5e5e555555.TS5\n55555..555..555.5e5eee5d55.555\n5c..............5e555dee55.555\n55.755555555555a5e555e5e55.TS5\n5..c55ellllllllllleeee5e55.555\n55.555e5555555555555555eee...5\n5..555e5s555s555s555s55555...5\n55.1c5e5T555T555T555T5L....v.5\n5......................rr.c5.5\n55c5555555555555555555555555*5\n555555555555555555555555555555\n\n\nsection SOKYEBAN\nmessage SOKYEBAN - A bit of a Proof of concept.\n\n(Another thing you don't sere often in Kye level sets is actually-good block puzzles. Perhaps because the other elements have so much stuff that's way flashier, or maybe it's the lack of an undo button (fixed now). But there are many ways to include good sokoban puzzles in game. And this one is interesting, because it shows a very easy way to port any sokoban level in which all of the block targets in the solution lie in a line.)\n\n\n\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555555555555555555555\n555555555555*.1555555555c55555\n55555K.....5.*...........15555\n555559.b5b.5*.7555555556.c5555\n555555b..b.5553..........c5555\n555555.b.b4555>b>b>b>b>b.c5555\n555553.5.b.5559s8s8s8s8s.75555\n5555..b..b.1553.2.2.2.2..55555\n5555...b..b..............55555\n5555555555559.8.8.8.8.8..55555\n5555555555553s2s2s2s2s2s.15555\n555555555555>b>b>b>b>b>b.a5555\n5555555555559............a5555\n555555555555555555555556.a5555\n555555555555.*...........75555\n555555555555*.7555555555a55555\n555555555555555555555555555555\n555555555555555555555555555555\n\n\nsection ZOO\n\n( From Colin Garbutt, default.kye )\nmessage ZOO - Handle with care\n\n( I realized that as far as monster levels go, this is the best one from shareware kye )\n\n(I Added a diamond at a strategic position )\n\n555555555555555555555555555555\n5.e.........55T..b....b.5....5\n5.49eee*eeeeee.......b..e.K..5\n5..19[.....el5......b...5....5\n5...15555555555555555555555555\n5....5.ree..dd....s...ee..5E.5\n5ebe75.ruue.ddll..e...D5..5..5\n5eb.55..uu..ee....e..5C5.55v55\n5eb.555e5555555555555555.5.e.5\n5eb.55.....5*ee.Rb..R555.5.7.5\n5eb.15.bbbb5***e.5.....5.5.5.5\n5....5b....5555555.....5.5.5.5\n5.C..5.b....~e.........5.5.5.5\n5....5bbbbbbb5556...4555.5.5.5\n5555e5.......5S.......s5..e5.5\n5....5555555555555555555..e5.5\n5..eeee.........vvv...5...e5.5\n559<<*c53.2<<<<<5\n55555555559e5.4555553.e<<<<*<5\n555555a...2.2..eeee....8<<*<<5\n555555.........456c8...1555555\n555555.5..8.8.8c...5.....5e*e5\n555555...73.5.5....59....5*ee5\n555555.753c.2.2.db.559.45556e5\n555555.5.e......d..153Hrd....5\n555553.19^49.a8.d...5rbrbrb..5\n55555a..2^e5.75.d..c5.s.s.s8.5\n55555a...8*5.559c8..16.5.5.2.5\n55555a...153.15555...........5\n55555a.......B<<<5.75555555555\n5555555559..e<<<*5.55555555555\n555555555555555555555555555555\n\n\nsection PUZZLER\nmessage PUZZLER - Dealing with beasts between your puzzles\n(By Colin Phipps, python kye's default set)\n555555555555555555555555555555\n5..........5...*...5*....*5..5\n5..........5.......5......5..5\n5..K.......5vvvvvvv5.....b5..5\n5...s......59vvvvv75.T..b.5..5\n5..........559vvv755...b..5..5\n5555559.8.75556e4555bbb...5..5\n5*rrra5.5.5........5......5..5\n5...d55.5.5........5......5..5\n5...d55.5.5...~...b5......5..5\n5...d15.5.5......b.5......5..5\n5.L.d.5.5.5.....b..5vvvvvv5..5\n55556.2.5B5....b...59vvvvv5..5\n5....e..5v5bbbbb...559vvv75..5\n556.459.5v5....b...5556e453..5\n5b.b..5.5v5....b...5.........5\n5.b..b5.5v5....b...2.....c..c5\n5.b.b.5.5v2....b...e....755555\n5*....5.5ve....b.[.75555555555\n555555555555555555555555555555\n\n\nsection HUNTERX\n\nmessage HUNTERX - Featuring: Doors.\n\n(This was an old level 'HUNTER' also a modified version of a Xye level. I tweaked it further so that it is a bit harder. I also hope it is a proper way to introduce the concept of the doors.)\n\n555555555555555555555555555555\n55555...5...5...5.ee*e55555555\n55555.8.5.8.5.8.5e*.e.55555555\n55555.5.5.5.5.5.5..*..55555555\n55553.5.2.5.2.5.55555i55555555\n555.f.5...5...5.......55555555\n555.75555555555559.S5555555555\n555.13......g.5.K5.[5555555555\n555.........5.55h5.s5555555555\n555..8bbbbb.5..re5.45555555555\n555..5..CEb.15..55.......55555\n555..5*...b..55h53.4559..55555\n555..5ee..b...5.e*lll~5..55555\n555i55*e..b.....55~~~~5..55555\n555.5555556.....5555553..55555\n555....5.................55555\n555.5555hh5555555555555i555555\n555.5555hh5.5.5.5.5.5.5i555555\n555.......e..........[..555555\n555555555555555555555555555555\n\n\n\n\n\nsection DONTSLIDEAGAIN\nmessage DONTSLIDEAGAIN - Don't let victory slide (again)\n\n\n( After those huge levels , I hope this one is seeen as a good change of pace)\n555555555555555555555555555555\n555555555555......555555555555\n555555555555......555555555555\n555555555555..K...555555555555\n555555555555......555555555555\n5555555555555..b..555555555555\n555555555555......555555555555\n555555555555....s.555555555555\n5555555555559.....555555555555\n5555555555555.....555555555555\n55555555555559....555555555555\n55555555555555vvv7555555555555\n555555555555559v75555555555555\n555555555555555v55555555555555\n555555555555555v55555555555555\n555555555555555v55555555555555\n555555555555555v55555555555555\n555555555555555v55555555555555\n555555555555555*55555555555555\n555555555555555555555555555555\n\n\nsection TRICK\n( From Colin Phipps - quests.kye )\nmessage TRICK - Use your tools\n\n(A really nice Phipps level in my opinion, it's easy but requires you to exploit the objects, works great as a 'graduation' level )\n\n555555555555555555555555555555\n5K........e<<<<<5*....5......5\n5555559...8<<<<73.....5......5\n5*....5...5<<<<5......5..rdd.5\n5..>>>5...5eeee2......2..r*l.5\n5..>>>5...5....e.........uul.5\n5.>>>>2...5....7556e4555555555\n5..>>>e...556e43...b.........5\n55555556..5.^e^.elll....S....5\n5.....e...5..^.8<<.....7555555\n5*....8...5....5.7559..5.....5\n5....73...15555553..1555.....5\n555553..........2.......5...e5\n5.c....b...............1556.45\n5...8..D....7559..b........a.5\n55555..b...73<<5556b8....c...5\n5...2bbb.a.2<<.5....5556e45555\n5.C.b......eeeS5.~..5e^^u^e..5\n5*..8.bb...8...5.*..5.^^^^s.*5\n555555555555555555555555555555\n\n\n\nsection CASCADE\n\nmessage CASCADE - Catch them.\n\n( From Colin Phipps - quests.kye )\n\n( Gotta love the rare Phipps levels that don't have any monsters in them )\n\n\n555555555555555555555555555555\n5s>>>>>>>B2>>>ac<<<<<<<<<<<..5\n5Rb>>>>8>>>>>>ac<<<<<<<<<<<*S5\n555556e16e756e46e4555559.75555\n5.......re5............153...5\n5.......re5...K...........B..5\n5..45555553...............B..5\n5..B......................B..5\n5..b......................b..5\n5..b......................b..5\n5..b......................b..5\n5..b..B...................b..5\n5..B.........................5\n5............................5\n56..76..76..76..76..76..76..75\n5..B5..B5..B5..B5..B5..B5..B55\n5.8S5.8S5.8S5.8S5.8S5.8S5.8S55\n5b..5b..5b..5b..5b..5b..5b..55\n5*755*755*755*755*755*755*7555\n555555555555555555555555555555\n\n\nsection OBSCURE\nmessage OBSCURE - Can you move them?\n\n( Back in classic Kye days, I was OBSSESED with this glitch after I found it. I kept making really dumb levels in which you had to take a bouncer with you avoiding obstacles just so that the bouncer could push a black hole. Think about it, it's a very cool mechanic because it's one way to use Bouncers as a key. This is a level from vexkye.kye which I made with the intention of introducing the glitch in a normal way. )\n\n555555555555555555555555555555\n555555555555555555*5*5*5555555\n555555555555555555e5e5e5555555\n555555d153d5555555d5d5d5555555\n555555U...U5555555d5d5d5555555\n555555e...b5555555d5d5d5555555\n555555e.K.e5555553d2d2d1555555\n555555H...H13.s.2.e.e.e.555555\n555555H...H...R..H......555555\n555555H759H79........8.7555555\n5555555555553.b..5.5.5.5555555\n55555.b.b.b.b....[.[.5.5555555\n55555.........b..s.s.5.5555555\n555555555559..7556.5.2.5555555\n555555555555555e.e.e.ee5555555\n555555555555555*e45556^1555555\n5555555555555559ee553^^^555555\n5555555555555553*e53^^^^555555\n555555555555555ee*5^^^^^555555\n555555555555555555555555555555\n\n\n\nsection FILTER\nmessage FILTER - filter what?\n(Such a nice idea from Colin Phipps)\n\n555555555555555555555555555555\n5*.....1SE.ES55555555555555c55\n5c........c.................55\n53*.*.*.8.e.75b555555555559.55\n5*.*.*..5.e.5>>>>>>>ee.*<<5.55\n5.*.*.*.5.e.5>>>>>>>e..e<<5.55\n5*.*.*..5.e.5>>>>>>>e759<<5.55\n5.*.*.*U5.e.5eeeeeeeeH.1553.55\n5R..b..L5.e.16e4555553......c5\n5559e755a.e>>rr>>rr>>rr7555555\n55a3.153..ec5555555559U.....a5\n55.......c..5****l...155559.55\n55.7555559h53*^^^^e.....g.5.55\n55.5*.b..5*5**^^^^^ee...8K5.55\n55.5.Cb..153*^^^^^^^^e..5u5.55\n55.5..b..e..**********<.5C5.55\n55.15555555555555555556e153.55\n5a.........................e55\n555555555555555555555555555a55\n555555555555555555555555555555\n\n\n\nsection BANK VAULT\n\nmessage BANK VAULT - Defuse it\n\n( Colin Phipps, problem.kye)\n\n(I like this one, like a better version of DIAMOND)\n\n555555555555555555555555555555\n555d5*555.f.aaacacacacFcFa5**5\n555*2.153.c..............a5dl5\n553....*l.5c.*********...a5d.5\n5*.....46.5a.*<^^^^^^^...a5d*5\n556......*5a.*<.^^^b.....55ci5\n5r*....8..5a.*<....b.....553.5\n5556.8*5..5a.*<...bU.....53..5\n5*...5u5..5a.*<....*.B...2*.c5\n555555559i5c......H.........a5\n5v5v5v5v5v5a.*<......accc>*.a5\n5*5*5*5*5*5a.*<.......caa>*.c5\n5.2.2.2.2.5c.............>*.c5\n5K........5a.*<..........>*.a5\n5.........5a.*<..........>*.c5\n5.........5a.vvvvvvvvvvvv>*.c5\n5.8.8.8.8.5a.************>*.c5\n5*5*5*5*5*5a................c5\n5^5^5^5^5^5aaaacacacaaa..caa55\n555555555555555555555555555555\n\n\n\nsection SLIDERS\nmessage SLIDERS - Remember they're square\n\n( Colin Phipps. problem.kye)\n\n(These two levels make a nice pair)\n\n555555555555555555555555555555\n5*d5rrrrda5*rrda55a553......a5\n59d5rrrrda5rrrda55rrrrrr759.H5\n55d5rrrrda5559d555u79*8U5*5.55\n55d15556*13..5d55Eu555553e5.55\n5arrre.......2d55su55555re5.55\n55c56........elc55u55555re5.55\n5553.........7a555u5..15re5.55\n5....7559h46i55553u2c..2..2.55\n5i76h5es5.......f.ue.b.e..e.55\n5*5dd5e*155559..79u455556e5.55\n5d5dd5r.redel5..13.e......e.55\n5*2**5edelele5..g..7559eee8.55\n5.g..5releueu5..79.15c5uuu5.55\n5.f..56.455553..5a....5rul5.55\n5i8..5..........55.46.5.u*5.55\n5.5**5..........H5....15553.55\n5K5uu555556...455555a.......55\n5u5uu5*rr*.....*ll*55.....7a55\n555555555555555555555555555555\n\nsection ROUNDERS\nmessage ROUNDERS - They are round\n\n( Colin Phipps , problem.kye . I had to make a slight modification so that the level works in this version of kye. Changed the position of the black hole in the middle. My initial goal was to fix the game instead of modifying the level. But now I am pretty much convinced it is impossible to make the original version of this level work correctly in kye.ps without adding some really heavy rules that would make the performance much worse)\n\n555555555555555555555555555555\n5*5H*vvvvv5***5.2vvvvv13ee.e*5\n5>1H*vvvvv5vvv5.eeeeee<.e^>159vvv73vvv2.8^^^^^.e<^>>159e45vvvvvb15555559e>>ve5\n5>>>>15..56vvv9.U.....55e^>>>>2.e2vvvv5.7559L455e^>>>>e..e<<<>e5\n5>>>>>8.e8aaaa53...5..H59evve5\n5>>>>75..555553.BBB5...L5e<>e5\n5>>>755..5>*.....*<5...L5ee*e5\n5555555..556....4555.***556i45\n5a>>>a5..5>*.....*<5.*^^2<<*D5\n5^>8vv5..55556...455.^^^e<...5\n5^456v5..155>*...*<5U........5\n5^^2.*2....15556e45555555555<5\n5H^..ee..8...................5\n55556.8ac5...........455ESE6.5\n5>K.f.5555..................U5\n555555555555555555555555555555\n\nsection ROCKYV\nmessage ROCKYV - This was the last level in shareware kye.\n\n( From Colin Garbutt, default.kye )\n\n(Another one of those shareware kye levels that gets burn in your mind, since it was the last level included in the shareware, I assumed it was as hard as it gets. I really had to included for this reason, even though in reality this is only the beginning )\n\n755555555555555555555555555559\n5c.........w<<<<<<<<<<<e>e^a5.5\n5vvv>}.ee..}.5veL5^5Cb>ev^a5.5\n5ccc59..^s^^.5*e.5*5..c>e^a5.5\n555555555555559.755555559^43.5\n5C..5.H..B*B.13.1..13.*55^...5\n5...5.f.B.B..f..f..>*.*55...c5\n559.5.HB...B.79.7>*..8*55c.755\n555.5.755555553.1555555556.555\n555.5.53.*eec5.e*5553c553..3<5\n553.5.5..*ee.5Re^5c...53..3<<5\n55..5e2.4556.5^*.5..8.5c.2<<<5\n53.43...c15a.55555..5.5c*<<<<5\n5a....v..c5a.15553.73.2c.8<<<5\n59....e..c5a.......5a....59<<5\n55559cc79c5a.....8a55559a559<5\n155555555555555555555555555553\n\n\n\n\n\nsection POWER STATION\nmessage POWER STATION - Quantum Entanglement\n(By Colin Phipps, Problem.kye)\n\n(The concept in this one is so innovative)\n\n555555555555555555555555555555\n5555c553...53<<<5e.C.*.g.....5\n5c...c3....2<<<<2.BBB..79...*5\n5F..UH.....e<<<155..5****e.a2E...5....2.15\n5>>>13..5****e.......2.......5\n5>>>>d..555555.......*.eee8.75\n5>>>>e..5....5.......ellll5.55\n5>>>e.8.2....5a...........5.55\n5555553......55555555555555.55\n5.......8..753............2.15\n5..455555553.................5\n5.............76......45555555\n5.............5.......eeeee*S5\n5.........75553.......8<<<<>rrrra755555555559u755\n5d5..U555556*43......2<<<5u555\n5d5...5*b.............e8.5u555\n5d5...19.49..........755.2u155\n5d19...5.s>e..K.....7555.su.55\n5>>2...1556............1556.15\n5>>>b.....................b.*5\n5>>8.75555555555555555555556.5\n555553.........celllll......e5\n5>v<..BS*................156u5\n5rvu......................2*u5\n5rv.......................b*u5\n5>d.......................8*u5\n5ed......................456u5\n5errrrrrrrrrrrrrrrrrrrrrrrrru5\n555555555555555555555555555555\n\n\n\nsection DIAMOND\n\n555555555555555555555555555555\n5>>>>155.....e.155....2...8.*5\n5.>>>>15....8...15.......45..5\n5..>>>>2...75....2....9...2..5\n5K..eee...755.....e.755.....e5\n5555555555555555555555555555e5\n5..5*5........e..............5\n5..5d5........5......v.......5\n5..5e5....55555.....>vv......5\n5..5.......el*5....>>vvv.....5\n5..........5555...>>>vvvv....5\n5......79.....5..>>>>vvvvv...5\n5......13.....5.>>>>>*<<<<<..5\n5.............5..^^^^^<<<<...5\n5555..........5...^^^^<<<....5\n5*re.......5..5....^^^<<.....5\n55555....5e5..5.....^^<......5\n5........5u5..5......^.......5\n5........5*5..5..............5\n555555555555555555555555555555\n\n\n\nsection BLOCKS\n\n555555555555555555555555555555\n5>>>B.....5K.....vvv.........5\n5.>>B.....5.....vvvvv...s..S.5\n5..e.....*5....vvvvvvv.......5\n5e555555555....bvv*vvb.......5\n5.vvv.....5....bvvvvvb.......5\n5vvvvv....5....bbbbbbb.......5\n5vvvvvv...5..................5\n5BBBBBBBBB5.........R........5\n5.........5555559...7555555555\n5.55559...5......9.7.........5\n5.....15555......5e..8.......5\n55559..........b.15553..355555\n5...159........b.......3<<<<.5\n5......9.......b......3<<<<<.5\n5.......9............3<<<<<<.5\n5........9..........e<<<<<<<.5\n5....................9<<<<<<.5\n5........3............9<<<<<*5\n555555555555555555555555555555\n\nsection CIRCUS\n\n555555555555555555555555555555\n5.5*555eed......5....5.......5\n5.5v5Seeud......5vvvv5..rdd..5\n5v5v5bbbue......5vvvv5..r*l..5\n5v2e5............eeeeb..uul..5\n5ee.5............7555555555555\n5...155555555559.........5...5\n5......^......L5....K....5...5\n5559....75559.v1559......b...5\n5.55555555555ee...59.....b.C.5\n5...........59e...e5D....b...5\n5............556.453.....5...5\n5....45e9................5..*5\n5..8.e>^155...55555..755555555\n5..5..e<.*5...5de*5....evevev5\n5..15555555...ee555..5>eeeee<5\n5.........5..........5e^.^e^e5\n55bb5555555s555555eee5555555.5\n5*.........llll............>*5\n555555555555555555555555555555\n\nsection GALLERY\n\n555555555555555555555555555555\n5.......a..c..a..c..a..c..a..5\n5c..........................a5\n5*.8......................8.*5\n55.5......................5.55\n55~5......................5C55\n5555......................5555\n5K..a........................5\n5...c........................5\n5...a........................5\n5...c........................5\n5...a........................5\n5..re........................5\n5..el........................5\n5..re........................5\n5..el........................5\n5..re........................5\n5..el........................5\n5..re........................5\n555555555555555555555555555555\n\nsection TRAPPER\n\n555555555555555555555555555555\n5K................b.........*5\n5.b..bb.Rbb.......B..........5\n5.b...............b....T.....5\n5.b...............B..........5\n5.b...............b....E....*5\n5.b...............B..........5\n5.b...............b....C.....5\n5.c...............B..........5\n5.a...............b....[....*5\n5.c...............B..........5\n5.a...............b..........5\n5.....b...ed......B..........5\n5.....b...ue......b..........5\n5.B...............B.........*5\n5.B...U...el......b..........5\n5.B...b...re......B..........5\n5.B...b...........b..........5\n5.................B.........*5\n555555555555555555555555555555\n\nsection PINTPOT\n\n555555555555555555555555555555\n5K.............5.............5\n5.755555555559.5..bbbbbbbb...5\n5.5FFFFFFFFFF5.5..bC.........5\n5.*..........*.5..bC.........5\n5.*..........*.5..b..........5\n5.*..........*.5..b..........5\n5.*..........*.5..b****......5\n5.5..........5.5..bH.........5\n5.5..........5.5..b****......5\n5..9........7..5..b..........5\n5...9......7...5..b..........5\n5....9....7....5..b..........5\n5.....HHHH.....5..b..........5\n5..............5..bC.........5\n5ededededdeeddef..bC.........5\n5eedddddddedddd5..bC.........5\n5d.**d**d*d*dd*5..bbbbbbbb...5\n5**d.**.*.*.**.5.............5\n555555555555555555555555555555\n\nsection GETOUT\n\n555555555555555555555555555555\n5.......................B.EB.5\n5...e...................B....5\n5..6^4.a................B....5\n553^^^1.................B...*5\n53^^^^^15555555555559..4555555\n5^^^^^^^1...s..5>>>>5....eeT.5\n5^^^^*^^^5.....5>>>>2....e*..5\n555555555556...5>>>>e....ae..5\n5.2......ccc...5>>>79..8.79.75\n5c.............555553..5.55.55\n5..*a8.........5.......5.55.55\n5>>*a5.........5.......5.55.55\n5>**a5.K.....8.5.......5.55.55\n5>*453.......5.5.......5.55.55\n5>*a5........5.2.......5.55.55\n5>*a555556...5.........5.13.15\n5>*c.........5.8.......5....c5\n5ccc755555555555.......5cc..c5\n555555555555555555555555555555\n\nsection FALLIN\n\n555555555555555555555555555555\n5......f..5*e5>e..e.>e..e.>e*5\n5555h5.8..5ev5.e.>e..e.>e..e*5\n5..5.5.5..19e5.555555555555555\n5.C5.5.HT.*5.5..............K5\n5.55i5.15553.5...............5\n5.5..f.f.....5.......vvv.....5\n5i5..7h9.....f......vdddv....5\n5.5.75.5555i555.....d}}}d....5\n5...5.....5.5*5...>r*****l<..5\n59i5.5556.5.5.55.>r}*****}l<.5\n53.5.5....5.5..5.>r}*****}l<.5\n5..5.5.5555.16.5.>r}*****}l<.5\n59.5.5.5.......5..>r*****l<..5\n55.5...5*55555.5.............5\n55..55i55555.5.5....}}}}}....5\n55...........5.g....uuuuu.7555\n53i5555555h55.55....^^^^^.5ee5\n5.............g...........e*<5\n555555555555555555555555555555\n\nsection ADOORABLE\n\n555555555555555555555555555555\n5*5.........R*H*F*....1553..K5\n5.5...e...5553F**............5\n5.5555eeee5...*..............5\n5EBee.....5.......5.555s.55..5\n555555....5.......5..5.bl.5..5\n5S..r*<...5.......15.5....B..5\n555556.8..5........5.5....B..5\n5......5553........5d5...C5..5\n5..76..2.2.........Sd555553..5\n5*73.......8..BBB..5.5.......5\n553.e.~.e.45..B[B..5.5i8h8h8i5\n55...*s*...5..B*B..5.5h5h5h5i5\n55e.ESCS[.e5..B*B..a.5i5h5i5i5\n55...*s*...5..BBB..a.5i2h2h2i5\n559.e.T.e.73.......5.5.......5\n5.59.....73........5.5...v...5\n5..59.e.73.........5.5.v>*55************C*********55B5\n5.55********e*************55.5\n5.55****C**eCe************55.5\n5.55********e**********e**55.5\n5.55***********K******eCe*55.5\n5U55*******************e**55.5\n5.55*e********************55D5\n5>55eCe***e**********e****55.5\n5U55*e***eCe*******eeCe***55.5\n5.55******e*******eCee****55.5\n5.55***************e******55.5\n555555555555555555555555555555\n\n\n\n\nsection EXTERMINATE\n555555555555555555555555555555\n5*..}..eK5F2**2*****1555555c55\n555556.u45.c................55\n5[TTL....5.5.456.4555555559.55\n5TTTL....5.5..............a.55\n5TTTL....5.1c556.45555556.2.55\n5TTTL....5..................c5\n5TTTL....5c*5559.75555559.a..5\n5TTTL....55HHHH5H55555553.19.5\n5TTTL....2.....2...........5.5\n5[TTL....ww....L......L....5.5\n5TTTL....8.....8...........5.5\n5TTTL....5H5HHH5555555556.73.5\n5TTTL....55c..............5..5\n5TTTL....5c..455555HccH55a5.75\n5TTTL....5c...........H*155.55\n5TTTL....5H...............a.55\n5TTTL....55c..........c59...c5\n5[TTL....555ccc5559*75555c5F55\n555555555555555555555555555555\n\nsection CENTRAL.PROCESSING\n555555555555555555555555555555\n555555555555555555555555555c55\n5cl................l........55\n55.7a555559b755555555555559.55\n55.5......aC2CCCCCCCC15HHH5u55\n55.5.7559.5CbCCCCCCCCbe.S.5.55\n55.5.5aa2.159CCCCCCCCbe...5.55\n55.5.5^^e.a55559CbC7559...5.55\n55.5.5^^8.155*.5CbC5Ke5...2.55\n55.5.5^^5...a6.155556u5.....55\n55.5.5^^5c9.5....b.*b.2...8.55\n55.5.5^^155.2..C....b.ee..5.55\n55.5.5^^*55.e.......b..e..5u55\n55.5.15c*15.8.......bbbe..5.55\n55.a......5.5...T..b...ee.5.55\n55d55SE.8h5.5*....b*.C.eU.5.55\n55d2RRu.d.5.155555555555553.55\n55rrrruc**5..r..............c5\n55c5555*8*5c555555555555559A55\n555555555555555555555555555555\n\n\nsection TRACKWAY 2\n555555555555555555555555555555\n5*5553ES155555555c5.*vv5555c55\n5.2cdlllll........5.svv1c...55\n5.u.dLe4555555559.5..vv.5.8.55\n5.8.8...........5.5.5e455.5.55\n5.2.555555559...5.5>e.T.5.5.55\n5...5.......5...5.5.8...5.5.55\n5c..5..b....5...5.5.5BBB5.5.55\n55.a5.b.....5...5.5*5...5.5.55\n55.53....b..5..73.153e453.5.55\n55.2....b[b.5ih5a.........2.55\n55.f...b[*b.5..155556e455as.55\n55.8.s..bb..5....b......5aE.55\n55.159......5....b...C..5...c5\n55..a5....b.5..K.b.~.w.43.4555\n55c.55...b..5....b..76RRu.b.*5\n55E.1556h455555555553SE5u49.75\n55s...................rruc2.55\n555c55555555555555559.....f.55\n555555555555555555555555555555\n\nsection COLLECTOR\n555555555555555555555555555555\n55a1555a....................15\n55...a3....rrrrrrrrrrrrrrrrra5\n55.8.5..7555556ve49.....76..75\n55.5.5..2<<<15>ee^5.....5D..55\n55.5.5..e<<<*5>>>e5.....5...55\n55.5.5..8<<<75>*<<5.....5S..55\n55.5.5..15555555555.....5...15\n55.5.5......15.E.*5.....5...*5\n55.5.5......c5....5.....5D..75\n55.5.5a......5....5.....55H.55\n55.5556h459..5bbbb5.....555.55\n55.55L.b.R5..5....5.....5d5.55\n55.55U.*..5..16z453.....2e2.55\n55.55....75.............K...55\n55.55....15a................55\n55.55....s56....8z8.......8a55\n53.156...E2.....5s5.......1555\n5a..............555.........*5\n555555555555555555555555555555\n\n\n)\n\n\n\n\n",[],"Background ColM0 FirstTic Row00 Tic3_0 Tic4_0 Tic5_0 TopLeft Wall____:0,Background ColM0 KyeRow Row01 Wall____:1,Background ColM0 Row02 Wall____:2,Background ColM0 Row03 Wall____:3,Background ColM0 Row04 Wall____:4,Background ColM0 Row05 Wall____:5,Background ColM0 Row06 Wall____:6,Background ColM0 Row07 Wall____:7,Background ColM0 Row08 Wall____:8,Background ColM0 Row09 Wall____:9,Background ColM0 Row10 Wall____:10,Background ColM0 Row11 Wall____:11,Background ColM0 Row12 Wall____:12,Background ColM0 Row13 Wall____:13,Background ColM0 Row14 Wall____:14,Background ColM0 Row15 Wall____:15,Background ColM0 Row16 Wall____:16,Background ColM0 Row17 Wall____:17,Background ColM0 Row18 Wall____:18,18,Background ColM1 Row00 Wall____:19,Background ColM1 KyeRow Row01 Twister Twister1:20,Background ColM1 Row02:21,Background ColM1 Row03:22,Background ColM1 Row04:23,Background ColM1 Earth Row05:24,Background ColM1 Row06:25,Background ColM1 Row07:26,Background ColM1 Row08:27,Background ColM1 Row09:28,\nBackground ColM1 Row10:29,Background ColM1 Row11:30,Background ColM1 Row12:31,Background ColM1 Row13:32,Background ColM1 Earth Row14:33,Background ColM1 Row15:34,Background ColM1 Row16:35,Background ColM1 Row17:36,Background Blob Blob3 ColM1 Row18:37,Background ColM1 Row18 Wall____:38,Background ColM2 Row00 Wall____:39,Background ColM2 KyeRow Row01:40,Background ColM2 Row02:41,Background ColM2 Row03:42,Background ColM2 Row04:43,Background Block ColM2 Row05:44,Background ColM2 Row06:45,Background ColM2 Row07 Wall__79:46,Background ColM2 Row08 Wall____:47,Background ColM2 Row09 Wall____:48,Background ColM2 Row10 Wall____:49,Background ColM2 Row11 Wall____:50,Background ColM2 Row12 Wall13__:51,Background ColM2 Row13:52,Background Block ColM2 Row14:53,Background ColM2 Row15:54,Background ColM2 Row16:55,Background ColM2 Row17:56,Background ColM2 Row18:57,Background ColM2 Row18 Wall____:58,\nBackground ColM3 Row00 Wall____:59,Background ColM3 KyeRow Row01:60,Background ColM3 Row02:61,Background ColM3 Row03:62,Background ColM3 Row04:63,Background Block ColM3 Row05:64,Background ColM3 Row06:65,Background ColM3 Row07 SquareArrowR:66,Background ColM3 RoundArrowR Row08:67,Background ColM3 RoundArrowR Row09:68,Background ColM3 RoundArrowR Row10:69,Background ColM3 RoundArrowR Row11:70,Background ColM3 Row12 SquareArrowR:71,Background ColM3 Row13:72,Background Block ColM3 Row14:73,Background ColM3 Row15:74,Background ColM3 Row16:75,Background ColM3 Row17:76,Background ColM3 Row18:77,Background ColM3 Row18 Wall____:78,Background ColM0 Row00 Wall____:79,Background ColM0 KyeRow Row01:80,Background ColM0 Row02:81,Background ColM0 Row03:82,Background ColM0 Row04:83,Background Block ColM0 Row05:84,Background ColM0 Row06:85,Background ColM0 Row07 SquareArrowR:86,Background ColM0 RoundArrowR Row08:87,Background ColM0 RoundArrowR Row09:88,\nBackground ColM0 RoundArrowR Row10:89,Background ColM0 RoundArrowR Row11:90,Background ColM0 Row12 SquareArrowR:91,Background ColM0 Row13:92,Background Block ColM0 Row14:93,Background ColM0 Row15:94,Background ColM0 Row16:95,Background ColM0 Row17:96,Background ColM0 Row18:97,18,19,Background ColM1 Earth KyeRow Row01:98,Background Block ColM1 Row02:99,Background Block ColM1 Row03:100,Background Block ColM1 Row04:101,24,25,Background ColM1 Earth Row07:102,Background ColM1 Earth Row08:103,Background ColM1 RoundBlock Row09:104,Background ColM1 RoundBlock Row10:105,Background ColM1 Earth Row11:106,Background ColM1 Earth Row12:107,32,33,Background Block ColM1 Row15:108,Background Block ColM1 Row16:109,Background Block ColM1 Row17:110,Background ColM1 Earth Row18:111,38,\n39,40,41,42,43,Background ColM2 Row05:112,45,Background ColM2 Row07:113,Background ColM2 Row08:114,Background ColM2 Row09:115,Background ColM2 Row10:116,Background ColM2 Row11:117,Background ColM2 Row12:118,52,Background ColM2 Row14:119,54,55,56,57,58,59,60,Background ColM3 Row02 Wall1_7_:120,Background ColM3 Row03 SquareArrowD:121,Background ColM3 Row04 SquareArrowD:122,Background ColM3 Earth Row05:123,65,Background ColM3 Row07:124,Background ColM3 Row08:125,Background ColM3 Row09:126,\nBackground ColM3 Row10:127,Background ColM3 Row11:128,Background ColM3 Row12:129,72,Background ColM3 Earth Row14:130,Background ColM3 Row15 SquareArrowU:131,Background ColM3 Row16 SquareArrowU:132,Background ColM3 Row17 Wall1_7_:133,77,78,79,80,2,Background ColM0 RoundArrowD Row03:134,Background ColM0 RoundArrowD Row04:135,Background ColM0 Earth Row05:136,85,Background ColM0 Row07:137,Background ColM0 Row08:138,Background ColM0 Row09:139,Background ColM0 Row10:140,Background ColM0 Row11:141,Background ColM0 Row12:142,92,Background ColM0 Earth Row14:143,Background ColM0 RoundArrowU Row15:144,Background ColM0 RoundArrowU Row16:145,17,97,18,\n19,Background ColM1 KyeRow Row01:146,Background ColM1 Row02 Wall____:147,Background ColM1 RoundArrowD Row03:148,Background ColM1 RoundArrowD Row04:149,Background ColM1 RoundBlock Row05:150,25,26,27,28,29,30,31,32,33,Background ColM1 RoundArrowU Row15:151,Background ColM1 RoundArrowU Row16:152,Background ColM1 Row17 Wall____:153,Background ColM1 Row18:154,38,39,40,Background ColM2 Row02 Wall____:155,Background ColM2 RoundArrowD Row03:156,Background ColM2 RoundArrowD Row04:157,Background ColM2 RoundBlock Row05:158,45,113,114,115,\n116,117,118,52,Background ColM2 Earth Row14:159,Background ColM2 RoundArrowU Row15:160,Background ColM2 RoundArrowU Row16:161,Background ColM2 Row17 Wall____:162,57,58,59,60,Background ColM3 Row02 Wall____:163,Background ColM3 RoundArrowD Row03:164,Background ColM3 RoundArrowD Row04:165,123,65,124,125,126,127,128,129,72,130,Background ColM3 RoundArrowU Row15:166,Background ColM3 RoundArrowU Row16:167,Background ColM3 Row17 Wall____:168,77,78,\n79,80,Background ColM0 Row02 Wall_3_9:169,Background ColM0 Row03 SquareArrowD:170,Background ColM0 Row04 SquareArrowD:171,136,85,137,Background ColM0 Row08 StickyV:172,139,140,Background ColM0 Row11 StickyH:173,142,92,143,Background ColM0 Row15 SquareArrowU:174,Background ColM0 Row16 SquareArrowU:175,Background ColM0 Row17 Wall_3_9:176,97,18,Background ColM1 KyeColumn Row00 Wall____:177,Background ColM1 KyeColumn KyeLastSeenHere KyeRow PlayerN Row01 SpawnPoint ThreeLives:178,Background ColM1 KyeColumn Row02:179,Background ColM1 KyeColumn Row03:180,Background ColM1 KyeColumn Row04:181,Background ColM1 KyeColumn Row05:182,Background ColM1 KyeColumn Row06:183,Background ColM1 KyeColumn Row07:184,Background ColM1 KyeColumn Row08:185,Background ColM1 KyeColumn Row09:186,\nBackground ColM1 KyeColumn Row10:187,Background ColM1 KyeColumn Row11:188,Background ColM1 KyeColumn Row12:189,Background ColM1 KyeColumn Row13:190,Background ColM1 KyeColumn Row14:191,Background ColM1 KyeColumn Row15:192,Background ColM1 KyeColumn Row16:193,Background ColM1 KyeColumn Row17:194,Background ColM1 KyeColumn Row18:195,Background ColM1 KyeColumn Row18 Wall____:196,39,Background ColM2 Diamond DiamondSprite1 KyeRow Row01:197,41,42,43,112,45,113,114,115,116,117,118,52,119,54,55,56,57,58,\n59,60,61,62,63,Background ColM3 Row05:198,65,124,Background ColM3 Row08 StickyH:199,126,127,Background ColM3 Row11 StickyV:200,129,72,Background ColM3 Row14 Wall__7_:201,Background ColM3 Row15 Wall____:202,Background ColM3 Row16 Wall____:203,168,Background ColM3 Earth Row18:204,78,79,80,81,82,83,Background ColM0 Row05:205,Background ColM0 Row06 TurnerClockwise:206,137,138,139,\n140,141,142,92,14,94,95,96,97,18,19,Background ColM1 KyeRow Row01 TurnerClockwise:207,21,22,23,Background ColM1 Row05:208,25,26,27,28,29,30,31,32,Background ColM1 Row14 Wall____:209,34,35,36,154,38,\n39,40,41,42,43,112,45,113,114,115,116,117,118,Background Block ColM2 Row13:210,Background ColM2 Row14 Wall____:211,54,55,56,Background ColM2 Row18 Spike Spike1:212,58,59,60,61,62,63,198,65,124,125,126,\n127,128,129,Background BouncerR ColM3 Row13:213,Background ColM3 Row14 Wall____:214,74,75,76,77,78,79,80,81,82,83,Background ColM0 Row05 TurnerAntiClockwise:215,85,137,138,139,140,141,142,Background Block ColM0 Row13:216,14,94,95,96,97,18,\n19,146,Background ColM1 Row02 TurnerClockwise:217,22,23,208,25,26,27,28,Background Block ColM1 Row10:218,Background BouncerU ColM1 Row11:219,Background Block ColM1 Row12:220,Background Block ColM1 Row13:221,Background ColM1 Row14 Wall___9:222,Background ColM1 Row15 Wall____:223,Background ColM1 Row16 Wall____:224,153,111,38,39,Background ColM2 KyeRow Row01 SquareArrowD:225,41,42,43,112,45,Background ColM2 Row07 TurnerClockwise:226,114,115,\n116,117,118,52,119,54,55,56,57,58,59,60,61,62,Background ColM3 Row04 TurnerClockwise:227,198,65,124,125,126,127,128,129,72,Background ColM3 Row14:228,74,75,76,77,78,\n79,Background ColM0 Earth KyeRow Row01:229,Background Block ColM0 Row02:230,Background Block ColM0 Row03:231,Background Block ColM0 Row04:232,136,85,Background ColM0 Earth Row07:233,Background ColM0 Earth Row08:234,Background ColM0 RoundBlock Row09:235,Background ColM0 RoundBlock Row10:236,Background ColM0 Earth Row11:237,Background ColM0 Earth Row12:238,92,143,Background Block ColM0 Row15:239,Background Block ColM0 Row16:240,Background Block ColM0 Row17:241,Background ColM0 Earth Row18:242,18,19,146,21,22,23,Background Block ColM1 Row05:243,25,Background ColM1 Row07 SquareArrowL:244,Background ColM1 RoundArrowL Row08:245,Background ColM1 RoundArrowL Row09:246,\nBackground ColM1 RoundArrowL Row10:247,Background ColM1 RoundArrowL Row11:248,Background ColM1 Row12 SquareArrowL:249,32,Background Block ColM1 Row14:250,34,35,36,154,38,39,40,41,42,43,44,45,Background ColM2 Row07 SquareArrowL:251,Background ColM2 RoundArrowL Row08:252,Background ColM2 RoundArrowL Row09:253,Background ColM2 RoundArrowL Row10:254,Background ColM2 RoundArrowL Row11:255,Background ColM2 Row12 SquareArrowL:256,52,53,54,55,56,57,58,\n59,60,61,62,63,64,65,Background ColM3 Row07 Wall__79:257,Background ColM3 Row08 Wall____:258,Background ColM3 Row09 Wall____:259,Background ColM3 Row10 Wall____:260,Background ColM3 Row11 Wall____:261,Background ColM3 Row12 Wall13__:262,72,73,74,75,76,77,78,79,Background ColM0 Gnasher Gnasher1 KyeRow Row01:263,81,82,83,136,85,137,138,139,\n140,141,142,92,143,94,95,96,Background ColM0 Row18 Virus Virus2:264,18,19,Background ColM1 KyeRow Row01 Wall____:265,147,Background ColM1 Row03 Wall____:266,Background ColM1 Row04 Wall____:267,Background ColM1 Row05 Wall____:268,Background ColM1 Row06 Wall____:269,Background ColM1 Row07 Wall____:270,Background ColM1 Row08 Wall____:271,Background ColM1 Row09 Wall____:272,Background ColM1 Row10 Wall____:273,Background ColM1 Row11 Wall____:274,Background ColM1 Row12 Wall____:275,Background ColM1 Row13 Wall____:276,209,223,224,153,38,38,\n",1,"1676844549401.8708"] + ], +]; + diff --git a/src/tests/resources/wrapper.js b/src/tests/resources/wrapper.js index 899be0882..de9e1ccaf 100644 --- a/src/tests/resources/wrapper.js +++ b/src/tests/resources/wrapper.js @@ -19,9 +19,12 @@ var inputString; var outputString; function consolePrintFromRule(text){} -function consolePrint(text,urgent,linenumber,turnIndex) {} +function consolePrint(text,urgent,linenumber,turnIndex) { + if (urgent) + window.console.log(text); +} function consoleError(text) { -// window.console.log(text); + window.console.log(text); } function consoleCacheDump() {} diff --git a/src/tests/tests.html b/src/tests/tests.html index 8cb8f75a3..c42999142 100644 --- a/src/tests/tests.html +++ b/src/tests/tests.html @@ -2,7 +2,7 @@ - QUnit Tests for PuzzleScriptPlus + QUnit Tests for PuzzleScript